[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Desktop (please complete the following information):**\n - OS: [e.g. iOS]\n - Browser [e.g. chrome, safari]\n - Version [e.g. 22]\n\n**Smartphone (please complete the following information):**\n - Device: [e.g. iPhone6]\n - OS: [e.g. iOS8.1]\n - Browser [e.g. stock browser, safari]\n - Version [e.g. 22]\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/workflows/yarn-build-test.yml",
    "content": "name: Build and Test Next js (That working on my Computer 🫡)\non: pull_request\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    name: Build and Test\n    steps:\n      - uses: actions/checkout@v2\n        name: Check out repository\n      - uses: actions/setup-node@v1\n        name: Set up Node.js\n        with:\n          node-version: 14\n      - run: |\n          cd web-and-server\n          yarn\n          yarn build\n        name: Build and Test\n"
  },
  {
    "path": ".gitignore",
    "content": "thisMyPCApp/Desktop-win32-x64/\nthisMyPCApp/node_modules/\nthisMyPCServer/node_modules/\nthisMyPCWeb/node_modules/\nthisMyPCApp/ThisMyPC-win32-x64/\nthisMyPCWeb/firebase/node_modules/\nthisMyPCApp/ThisMyPC-win32-x64.zip\n.idea\n.vscode\n"
  },
  {
    "path": ".gitlab-ci.yml",
    "content": "    image: node:10.9.0\n\n    stages:\n      - build\n      - test\n\n    cache:\n      paths:\n        - thisMyPCWeb/node_modules\n        - thisMyPCApp/node_modules/\n        - thisMyPCServer/node_modules/\n\n    install_dependencies:\n      stage: build\n      script:\n        - git clone https://gitlab.com/supunlakmal/thismypc.git\n        - cd thismypc\n        - cd thisMyPCWeb\n        - npm i\n        - npm i -g @angular/cli\n        - ng build --prod --base-href /\n        - cd ..\n        - cd thisMyPCApp\n        - npm i\n        - cd ..\n        - cd thisMyPCServer\n        - npm i\n      artifacts:\n        paths:\n        - thisMyPCWeb/node_modules\n        - thisMyPCApp/node_modules/\n        - thisMyPCServer/node_modules/\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at supunlakmal61@gmail.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Supun Lakmal Abesekara\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# This My PC\n\n<div align=\"center\">\n    <a href=\"http://thismypc.com/\">\n        <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/logo/logo-mini.png\" crossorigin>\n    </a>\n</div>\n\n<br />\n\n<div align=\"center\">\n\n[![forthebadge](https://forthebadge.com/images/badges/made-with-javascript.svg)](http://thismypc.com/)\n<br />\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5b677e607def4466b8084eb76be4f0d7)](https://app.codacy.com/app/supunlakmal/thismypc?utm_source=github.com&utm_medium=referral&utm_content=supunlakmal/thismypc&utm_campaign=Badge_Grade_Dashboard)\n![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/supunlakmal/thismypc/graphs/commit-activity) [![Website thismypc.com](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](http://thismypc.com/) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/supunlakmal/thismypc/blob/master/LICENSE)\n[![Gitter](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/Thismypc/community)\n\n</div>\n\n> ThisMyPC provides a neat web interface that can be used for browsing your desktop drives from any device in your browser itself. With the help of NodeJs, the file details are displayed in JSON format that can then be easily displayed in web browsers.\n\n> The source code is open so that you can download the source code and set it up with ease if you would like to have your own exclusive environment.\n\n![Web Site System](https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/web_site_system.gif)\n\n## App Screenshots\n\n|                                                                                    Desktop App Login                                                                                     |                                                                                   Desktop App Open                                                                                   |                                                                                Web App computer hard drives                                                                                |                                                                             Web App computer hard drives Open                                                                              |\n| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-login.PNG\" title=\"Desktop App  Login \" width=\"100%\" crossorigin> | <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/app-home.PNG\" title=\"Desktop App Open\" width=\"100%\" crossorigin> | <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App  PC  Drivers\" width=\"100%\" crossorigin> | <img src=\"https://raw.githubusercontent.com/supunlakmal/thismypc/master/thisMyPCWeb/angular-deprecated/src/assets/images/screen/web-system.PNG\" title=\"Web App  PC  Drivers\" width=\"100%\" crossorigin> |\n\n## Folder Structure\n\n    .\n    ├── .github/ISSUE_TEMPLATE\n    ├── doc                          # All Api doc and gif files\n    ├── thisMyPCApp                  # Electron JS app folder\n    ├── thisMyPCServer               # Node JS MongoDB and Express JS server folder\n    ├── thisMyPCWeb                  # Angular website folder\n    ├── .gitignore\n    ├── .gitlab-ci.yml\n    ├── CODE_OF_CONDUCT.md\n    ├── LICENSE\n    └── README.md\n\n## What (This my pc) ?\n\nThe concept behind thismypc app was to transfer your computer folder and file information through a nodeJS server to the web end as JSON data.\n\n## Why (This my pc) ?\n\n- The app's responsive web interface helps you to browse file in any resolution device.\n- You can use source code for your own projects.\n- It works well in low bandwidth environments.\n\n## How to (Wiki) ?\n\nAll usage instruction and information update on [Github Wiki](https://github.com/supunlakmal/thismypc/wiki).\n\n## Developing\n\n### Platforms\n\n| Platform          | Status     |\n| ----------------- | ---------- |\n| Microsoft Windows | Developing |\n| Linux             | Pending    |\n| Mac os            | Pending    |\n| Android           | Developing |\n\n#### Built With\n\n- [Node JS](https://nodejs.org/en/)\n- [GraphQL](http://graphql.org)\n- [Express JS](https://expressjs.com/)\n- [Socket IO](https://socket.io/)\n- [Angular](https://angularjs.org/)\n- [Electron JS](https://electronjs.org/)\n- [Mongodb](https://www.mongodb.com/)\n- [React Native](https://facebook.github.io/react-native/)\n\n#### Clone Project\n\n```shell\ngit clone https://github.com/supunlakmal/thismypc.git\n```\n\n![git clone https://github.com/supunlakmal/thismypc.git](https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/gitClone.gif)\n\nThis Command will copy a full project to your local environment\n\n## Angular Project\n\n### Setting up Angular Project\n\n```shell\n    cd thisMyPCWeb\n    npm i\n```\n\n![Setting up Angular Project](https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/angularSetup.gif)\n\n`cd thisMyPCWeb` Move into angular Project Folder\n`npm i` install all dependency.\n\n### Run Angular Project\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n## Electron Project\n\n### Setting up Electron Project\n\n```shell\ncd thisMyPCApp\nnpm i\n```\n\n![ Setting up Electron Project](https://raw.githubusercontent.com/supunlakmal/thismypc/master/doc/gifAnimations/electronSetup.gif)\n\n`cd thisMyPCWeb` Move into Electron Project Folder\n`npm i` install all dependency.\n\n### Run Electron Project\n\nRun `npm run start` start electron app in debug mode\n\n## Node Server\n\n### Setting up Node Server\n\n```shell\ncd thisMyPCServer\nnpm i\n```\n\n`cd thisMyPCServer` Move into Node Project Folder\n`npm i` install all dependency.\n\n### Run Node Project\n\nRun `npm node index.js` to start node server\n\n## Graphql\n\n| URL             |\n| --------------- |\n| /api/v1/graphql |\n\n## REST API\n\n### API Reference\n\n- PC - Personal Computer\n- thismypc.com:5000 - This is Thismypc web site API url. You can use your own localhost server link instead default Link.\n- \":userID\" - User ID\n- \":computerKey\" - Computer Key\n\n### Web API\n\n| Web API                      | URL                                        | Description |\n| ---------------------------- | ------------------------------------------ | ----------- |\n| User Register                | /api/v1/user/register                      | -           |\n| User Login                   | /api/v1/user/login                         | -           |\n| User Logout                  | /api/v1/user/:userID/logout                | -           |\n| User Auth                    | /api/v1/user/authentication                | -           |\n| User Info                    | /api/v1/user/:userID                       | -           |\n| User Online PC List          | /api/v1/user/computer/online               | -           |\n| Public PC Access             | /api/v1/computer/public/access             | -           |\n| User PC List                 | /api/v1/user/computer                      | -           |\n| Update User Account          | /api/v1/user/update                        | -           |\n| Update User Password         | /api/v1/user/password/edit                 | -           |\n| Update User PC Public status | /api/v1/user/computer/public/status/update | -           |\n| Update User PC Public Key    | /api/v1/user/computer/public/key/update    | -           |\n\n### Web socket IO\n\n| Socket Name                    | Socket                 | Type | Description |\n| ------------------------------ | ---------------------- | ---- | ----------- |\n| Join Socket from Web           | joinFromWeb            | emit | -           |\n| Folder or Driver Open Request  | openFolder             | emit | -           |\n| PC access Requests             | pcAccessRequest        | emit | -           |\n| Get Hard Drive List            | hDDList                | on   | -           |\n| Folder or hard drive open data | openFolderRequestToWeb | on   | -           |\n\n### App API\n\n| APP API             | URL                                        | Description |\n| ------------------- | ------------------------------------------ | ----------- |\n| User Login From App | /api/v1/user/computer/login                | -           |\n| User Info           | /api/v1/user/:userID/computer/:computerKey | -           |\n| User Logout         | /api/v1/user/:userID/computer/logout       | -           |\n\n### App socket IO\n\n| Socket Name                             | Socket                | Type | Description |\n| --------------------------------------- | --------------------- | ---- | ----------- |\n| Join Socket from APP                    | joinFromApp           | emit | -           |\n| Send Hard Drive List                    | hDDList               | emit | -           |\n| Send Data inside Folder or Hard Drive   | sendOpenFolderRequest | emit | -           |\n| Send callback of Folder Create Function | folderCreateCallback  | emit | -           |\n| PC access user and data                 | pcAccessRequest       | on   | -           |\n| Folder or Hard drive open request       | openFolderRequest     | on   | -           |\n| Folder Validation                       | validateFolderName    | on   | -           |\n\n## Database\n\nMongoDB use as Database.\n\n## Licensing\n\nThe MIT License 2019 Supun Lakmal\n"
  },
  {
    "path": "thisMyPCApp/.eslintrc.js",
    "content": "module.exports = {\n  'env': {\n    'browser': true,\n    'commonjs': true,\n    'es6': true,\n  },\n  'extends': 'google',\n  'globals': {\n    'Atomics': 'readonly',\n    'SharedArrayBuffer': 'readonly',\n  },\n  'parserOptions': {\n    'ecmaVersion': 2018,\n  },\n  'rules': {\n  },\n};\n"
  },
  {
    "path": "thisMyPCApp/README.md",
    "content": "\n# This My PC\n\n<div align=\"center\">\n    <a href=\"http://thismypc.com/\">\n        <img src=\"../thisMyPCWeb/src/assets/images/logo/logo-mini.png\">\n    </a>\n</div>\n<br />\n\n\n\n### Electron JS\n\n\n```shell\nnpm i --save-dev electron\n```\n\n```shell\nnpm i electron-packager --save-dev\n```\n```shell\nnpm i electron-packager -g\n```\n\n```shell\nnpm i electron-reload\n```\n\n\n```shell\nnpm i node-fetch --save\n```\n\n\n\n####  Create  exe file  with  encrypt  source code\n\n```shell\nelectron-packager . --asar\n```\n\n\n#### Build   This MY PC  App  for  windose\n```shell\n npm  run  windose\n```\n\n\n- \"windose\": \"electron-packager . --asar --icon=assets/icon/icon.ico\"\n"
  },
  {
    "path": "thisMyPCApp/assets/css/home.css",
    "content": ".click-btn {\n    cursor: pointer;\n}\n\n.frontside .card,\n.backside .card {\n    min-height: 100%;\n}\n\n.frontside .card .card-title,\n.backside .card .card-title {\n    color: #007b5e !important;\n}\n\n.frontside .card .card-body img {\n    border-radius: 50%;\n    height: 120px;\n    width: 120px;\n}\n\n.progress {\n    width: 100%;\n}\n\n.progress-bar {\n    display: inline;\n    text-align: left;\n}\n\n.download-box {\n    padding: 20px\n}\n\nimg.logo {\n    width: 163px;\n}\n\n.top_alert_position .alert {\n    bottom: 10px;\n    position: fixed;\n    right: 10px;\n    z-index: 1;\n    z-index: 2000;\n}\n\n.mouse {\n    cursor: pointer;\n}\n\n.software_venison {\n    font-size: 14px;\n    color: gray;\n}\n\n.box {\n    border-radius: 3px;\n    border: 1px solid #DCDEE0;\n    font-size: 14px;\n    height: auto;\n    margin-bottom: 10px;\n    min-height: 60px;\n    padding: 10px 10px;\n    vertical-align: middle;\n    width: 100%;\n}\n\n.box:hover {\n    background-color: #f8f8f8;\n    border: 1px solid #1e88e5;\n}\n\n.box .card-subtitle {\n    font-size: 13px;\n}\n\n#remoteUserBox i {\n    color: #1e88e5;\n    font-size: 28px;\n}\n\n.app-store-icon {\n    color: #0080ff;\n    font-size: 20px;\n    line-height: 39px !important;\n}\n\n.app-store-text {\n    font-size: 14px;\n    line-height: 39px !important;\n}\n\n.app-store-model-header {\n    border: none;\n}\n\n.app-store-title {\n    font-size: 18px;\n    font-weight: 600;\n}\n\n.app-store-info {\n    color: #5f6368;\n    font-weight: 600;\n}\n\n.btn-circle {\n    width: 87px;\n    height: 30px;\n    padding: 5px 8px;\n    border-radius: 100px;\n    font-size: 14px;\n    line-height: 1.33;\n}"
  },
  {
    "path": "thisMyPCApp/assets/css/login.css",
    "content": "@import url(\"https://fonts.googleapis.com/css?family=Lato:300,400,700\");\n.logo {\n  width: 163px;\n}\n\n.nav-bar-bg {\n  background-color: #ffffff00 !important;\n  padding-bottom: 0px;\n  padding-left: 8%;\n  padding-right: 8%;\n  padding-top: 21px;\n  width: 100%;\n  z-index: 2;\n}\n\n.mouse {\n  cursor: pointer;\n}\n\n.top_alert_position {\n  position: fixed;\n  right: 10px;\n  top: 10px;\n  z-index: 1;\n  z-index: 2000;\n}\n\n.logo-modal {\n  width: 143px;\n}\n\n.green-btn {\n  background-color: #15CD72;\n  border: 1px solid #15CD72;\n  color: #ffffff !important;\n}\n\n.green-btn:hover {\n  background-color: #18e07c;\n  border: 1px solid #15CD72;\n  color: #ffffff !important;\n}\n\n.blue-btn {\n  background-color: #0080ff !important;\n  color: #ffffff !important;\n}\n\n.blue-text {\n  color: #0080ff !important;\n}\n\n.green-text {\n  color: #15CD72 !important;\n}\n\n.text-weight-600 {\n  font-weight: 600 !important;\n}\n\nbody {\n  background-image: url(\"../images/background_img.png\");\n  background-size: cover;\n  padding-bottom: 4%;\n}\n\n.left-box {\n  color: white;\n  padding-bottom: 11%;\n  padding-top: 11%;\n}\n\n.text-home-mini {\n  font-size: 35px;\n  font-weight: 400;\n}\n\n.text-home-max {\n  font-size: 70px;\n  font-weight: bold;\n}\n\n.text-home-how {\n  font-size: 35px;\n  font-weight: lighter;\n}\n\n.main-page-big-text {\n  color: #ffffff;\n  font-size: 42px;\n  font-weight: bold;\n  line-height: 48px;\n  padding-top: 30px;\n  text-align: center;\n}\n\n.main-page-mini-text {\n  color: rgba(196, 227, 255, 0.8);\n  font-size: 27px;\n  font-weight: 400;\n  line-height: 30px;\n  margin: -16px auto 16px auto;\n  max-width: 700px;\n  padding-top: 30px;\n  text-align: center;\n  text-transform: none;\n}\n\n.type-text {\n  -webkit-transition: all cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s;\n  background: #fff;\n  border: 1px solid #f1f1f1;\n  border-radius: 5px;\n  color: rgba(3, 27, 78, 0.7);\n  height: 48px;\n  max-width: 100%;\n  padding: 0 16px;\n  position: relative;\n  transition: all cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s;\n  width: 100%;\n}\n\n.type-text:focus {\n  border-color: #0069ff;\n  outline: none;\n}\n\n.form-col {\n  padding-top: 15px;\n}\n\n.error_message,\n.error_message a {\n  border-color: #ff4d4a;\n  color: #e53935;\n}\n\n.success_message,\n.warning_message,\n.error_message,\n.promo_message,\n.info_message,\n.resolved_message {\n  position: relative;\n  font-size: 15px;\n  max-width: 1290px;\n  margin: 0px auto 30px auto;\n  padding: 10px 24px 10px 10px;\n  text-align: left;\n  border-radius: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n\n.system-font {\n  color: #616366 !important;\n  font-size: 15px;\n}\n\n.site-font {\n  font-family: 'Lato', sans-serif;\n}\n\n.hddBox {\n  background-color: #ffffff;\n  color: #555555;\n  font-size: 14px;\n  font-weight: inherit;\n}\n\n.box {\n  border: 1px solid #DCDEE0;\n  border-radius: 3px;\n  height: auto;\n  margin-bottom: 10px;\n  padding: 10px 10px;\n  vertical-align: middle;\n}\n\n.card-box-title {\n  color: #9DA2A6;\n  font-size: 13px;\n  font-weight: 600;\n}\n\n.top-main-container {\n  padding: 0px 5% 0 5%;\n}\n\n#site-main-nav.onScrolled {\n  background: #fff !important;\n  position: fixed;\n}\n\n.hide {\n  display: none;\n}\n\n.show {\n  display: block;\n}\n\n.main_text {\n  color: #fff;\n  font-size: 30px;\n}\n\n.mini_text {\n  color: #fff;\n  font-size: 20px;\n}\n\n/**System Block**/\n.box-active {\n  border: 1px solid #1e88e5;\n  background-color: #f5f9ff;\n}\n\n.box:hover {\n  border: 1px solid #1e88e5;\n  background-color: #f8f8f8;\n}\n\n.folder-name {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/**System Block End**/\n/**\nAccount Block\n */\n#header2_left h1 {\n  color: #363B40;\n  font-size: 25px;\n  font-weight: 500;\n  line-height: 34px;\n  margin: 0px 0px 10px 0px;\n  text-transform: capitalize;\n}\n\n#pills-account-tab {\n  padding-left: 0px;\n}\n\n.pills-tab-account {\n  border-bottom: 1px solid #ebebeb;\n}\n\n.account-a {\n  color: #616366 !important;\n}\n\n.account-a.active {\n  color: #1e88e5 !important;\n}\n\n.account-box {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.header {\n  color: #363B40;\n  font-size: 25px;\n  font-weight: 500;\n  line-height: 34px;\n  margin: 0px 0px 10px 0px;\n  text-transform: capitalize;\n}\n\n.copyIcon {\n  font-size: 22px;\n  margin-left: 12px;\n}\n\n/* iPads (portrait and landscape) ----------- */\n@media only screen and (min-device-width: 768px) and (max-device-width: 1440px) {\n  /* Styles */\n  .text-home-mini {\n    font-size: 25px;\n    font-weight: 400;\n  }\n  .text-home-max {\n    font-size: 49px;\n    font-weight: bold;\n  }\n  .text-home-how {\n    font-size: 25px;\n    font-weight: lighter;\n  }\n}\n"
  },
  {
    "path": "thisMyPCApp/assets/js/home.js",
    "content": "\"use strict\";\nconst socket = io.connect(`http://localhost:5000`);\nconst remoteServer = `http://localhost:5000`;\nconst { ipcRenderer } = require(`electron`);\nconst os = require(`os`);\nconst fse = require(`fs-extra`);\nconst fs = require(`fs`);\n/* const splitFile = requi;re('split-file')*/\nconst $ = (window.jQuery = require(`jquery`));\nconst hddSpace = require(`hdd-space`);\nconst { machineIdSync } = require(`node-machine-id`);\n\nconst path = require(\"path\");\nconst screenshot = require('screenshot-desktop')\n\n\n\nconst computerID = machineIdSync({\n  original: true\n});\nconst computerID2 = machineIdSync();\n// console.log(pcID2);\nconst computerKey = computerID2 + computerID;\nlet userID = \"\";\nlet authentication_key = \"\";\nlet applicationKey = \"\";\n// folder created    mode\nconst desiredMode = 0o2775;\nconst homedir = os.homedir();\nlet userInfo = {};\nconst dir = `${homedir}/.thisMyPC`;\nfs.readFile(\n  `${dir}/thisMyPC.json`,\n  `utf8`,\n  /**\n   * @param  {object} err\n   * @param  {object} data\n   */\n  function readFileCallback(err, data) {\n    if (err) {\n      console.log(err);\n    } else {\n      userInfo = JSON.parse(data); // now it an object\n      console.log(userInfo);\n      userID = userInfo.userID;\n      authentication_key = userInfo.authentication_key;\n      applicationKey = userInfo.applicationKey;\n      class Home {\n        /**\n         *  constructor\n         */\n        constructor() {\n          this.homedir = os.homedir();\n        }\n        /**\n         * @param  {string} pathFile\n         * get  all file and folder  from path  as  list  to main  left side screen #file-dr-list\n         * @return {boolean}\n         */\n        isFile(pathFile) {\n          return fs.statSync(pathFile).isFile();\n        }\n        /**\n         * @param  {number} bytes\n         * @param  {string} si\n         * get  file all\n         * @return {string}\n         */\n        fileSize(bytes, si) {\n          const thresh = si ? 1000 : 1024;\n          if (Math.abs(bytes) < thresh) {\n            return `${bytes} B`;\n          }\n          const units = si\n            ? [`kB`, `MB`, `GB`, `TB`, `PB`, `EB`, `ZB`, `YB`]\n            : [`KiB`, `MiB`, `GiB`, `TiB`, `PiB`, `EiB`, `ZiB`, `YiB`];\n          let u = -1;\n          do {\n            bytes /= thresh;\n            ++u;\n          } while (Math.abs(bytes) >= thresh && u < units.length - 1);\n          return `${bytes.toFixed(1)} ${units[u]}`;\n        }\n        /**\n         * @param  {object} t\n         * @return {string}\n         */\n        timeStampToDateTimeText(t) {\n          return `${t.getFullYear()}-${t.getMonth()}-${t.getDay()} ${t.getHours()}:${t.getMinutes()}`;\n        }\n        /**\n         * @param  {string} pathFile\n         * @return {object}\n         */\n        fileInfo(pathFile) {\n          const property = {};\n          const info = fs.statSync(pathFile);\n          property.sizeText = this.fileSize(info.size, true);\n          property.birthTime = this.timeStampToDateTimeText(info.birthtime);\n          property.accessed = this.timeStampToDateTimeText(info.atime);\n          property.modified = this.timeStampToDateTimeText(info.mtime);\n          return property;\n        }\n\n        fileInfoByPath(pathFile) {\n          const info = fs.statSync(pathFile);\n          info.filename = path.basename(pathFile);\n          return info;\n        }\n        /**\n         * @param  {object} callback\n         */\n        getHDDList() {\n          return new Promise(resolve => {\n            hddSpace(\n              {\n                format: `auto`\n              },\n              function(info) {\n                resolve(info);\n              }\n            );\n          }).then(hDDList => {\n            return hDDList;\n          });\n        }\n        /**\n         * User Log Out\n         */\n        logOut() {}\n        /**\n         * get user  info\n         */\n        getUserInfo() {\n          fetch(\n            `${remoteServer}/api/v1/user/${userID}/computer/${computerKey}`,\n            {\n              method: \"GET\", // *GET, POST, PUT, DELETE, etc.\n              mode: \"cors\", // no-cors, cors, *same-origin\n              headers: {\n                \"Content-Type\": \"application/json; charset=utf-8\",\n                authentication_key: authentication_key\n              }\n            }\n          )\n            .then(response => response.json())\n            .then(function(response) {\n              if (response.status) {\n                $(\"#userName\").text(\n                  `${response.data.firstName} ${response.data.lastName}`\n                );\n              }\n            });\n        }\n        getPcInfo() {\n          const self = this;\n          console.log(`${os.totalmem()}${os.uptime()}`);\n          const pcInfo = {};\n          pcInfo.totalMemory = self.fileSize(os.totalmem(), true);\n          // calculate  PC use memory\n          pcInfo.useMemory = self.fileSize(os.totalmem() - os.freemem(), true);\n          return pcInfo;\n        }\n        /**\n         * Read all contend in given path\n         *\n         * @param {string} path\n         */\n        readFolder(path) {\n          return new Promise(resolve => {\n            fse.readdir(path, function(err, content) {\n              if (err) {\n                console.log(err);\n                resolve(false);\n              } else {\n                resolve(content);\n              }\n            });\n          }).then(data => {\n            return data;\n          });\n        }\n        /**\n         * check given path is file or  system file that cant access using this app\n         *\n         * @param {string} path\n         */\n        isThisFile(path) {\n          return new Promise(resolve => {\n            fse.ensureFile(path, err => {\n              if (err) {\n                resolve(false);\n              } else {\n                resolve(true);\n              }\n            });\n          }).then(result => {\n            return result;\n          });\n        }\n        /**\n         * Initialize  functions\n         */\n        install() {\n          this.getUserInfo();\n          this.logOut();\n\n       \n        }\n      }\n      const homeClass = new Home();\n      console.log(os);\n      console.log(os.platform());\n      homeClass.install();\n      socket.emit(\"joinFromApp\", {\n        data: {\n          userID: userID,\n          authentication_key: authentication_key,\n          pcKey: computerKey\n        }\n      });\n      /**\n       * @param  {} 'pcInfoRequest'\n       * @param  {} function(data)\n       * send pc  information  to web end\n       */\n      socket.on(\"pcInfoRequest\", function(data) {\n        socket.emit(\"pcInfo\", {\n          userID: userID,\n          authentication_key: authentication_key,\n          pcKey: computerKey,\n          pcInfo: homeClass.getPcInfo()\n        });\n      });\n      // this is  privet   message\n      socket.on(\"pcAccessRequest\", async function(data) {\n        console.log(data);\n        if (data.status) {\n          $(\"#remoteUserBox\").html(`\n<div class=\"row align-items-center\">\n<div class=\"col-2\"><i class=\"fas fa-circle-notch  fa-spin\"></i></div>\n<div class=\"col-10\">\n  <div class=\"font-weight-bolder\">\n  ${data.name} ${data.nameLast} \n  ${\n    data.userID === userID\n      ? '<span class=\"badge badge-pill badge-success\">You</span>'\n      : \"\"\n  }</div>\n                                        <div class=\"font-weight-light\">${\n                                          data.email\n                                        }</div></div>\n</div>\n`);\n          const hDDList = await homeClass.getHDDList();\n          socket.emit(\"hDDList\", {\n            userID: userID,\n            authentication_key: authentication_key,\n            computerKey: computerKey,\n            data: hDDList\n          });\n        } else {\n          $(\"#remoteUserBox\").html(`<div class=\"font-weight-bolder\">\n            User Not Available\n            </div>`);\n        }\n      });\n      socket.on(\"openFolderRequest\", async function(data) {\n        // homeClass.openFolderRequest(data, function (err, callback) {\n        const homedir = data.path;\n        const folderContent = await homeClass.readFolder(homedir);\n        if (folderContent) {\n          for (const file of folderContent) {\n            const path = homedir + \"\\\\\" + file;\n            // test if  path folder  or file\n            const folderSubContent = await homeClass.readFolder(path);\n            let sendEmit = true;\n            if (!folderSubContent) {\n              const ensureFile = await homeClass.isThisFile(path);\n              if (!ensureFile) {\n                sendEmit = false;\n              }\n            }\n            if (sendEmit) {\n              const fileObject = {};\n              const fileInfo = homeClass.fileInfo(path);\n              const filetype = homeClass.isFile(path);\n              fileObject.path = `${homedir}\\\\${file}`;\n              fileObject.file = filetype;\n              fileObject.fileName = file;\n              fileObject.fileInfo = fileInfo;\n              socket.emit(\"sendOpenFolderRequest\", {\n                userID: userID,\n                authentication_key: authentication_key,\n                pcKey: computerKey,\n                data: fileObject\n              });\n              console.log(\"new emit 2\", fileObject);\n            }\n          }\n        }\n      });\n      // validate folder name before  create\n      socket.on(\"validateFolderName\", function(data) {\n        console.log(data);\n        const dir = `${data.path}\\\\${data.createFolderName}`;\n        fs.stat(dir, function(err, stats) {\n          if (err) {\n            console.log(dir);\n            fse\n              .ensureDir(dir, desiredMode)\n              .then(() => {\n                console.log(\"success!\");\n                socket.emit(\"folderCreateCallback\", {\n                  userID: userID,\n                  authentication_key: authentication_key,\n                  computerKey: computerKey,\n                  data: {\n                    status: true,\n                    message: \"Folder Create Successful\"\n                  }\n                });\n              })\n              .catch(err => {});\n          } else {\n            if (stats.isDirectory()) {\n              socket.emit(\"folderCreateCallback\", {\n                userID: userID,\n                authentication_key: authentication_key,\n                computerKey: computerKey,\n                data: {\n                  status: false,\n                  message: \"Please try different folder name\"\n                }\n              });\n            }\n          }\n        });\n      });\n\n      /**\n       *  User Request File that need to send as array buffer\n       */\n\n      socket.on(\"downloadFileRequestToPC\", function(data) {\n        let block_size = 524288;\n        let buffer = fs.readFileSync(data.path);\n        const fileInfoGet = homeClass.fileInfoByPath(data.path);\n        let chunks = parseInt(fileInfoGet.size / block_size) - 1;\n        fileInfoGet.chunks = chunks > 0 ? chunks : 0;\n\n        socket.emit(\"downloadFileInfoRequestCallBack\", {\n          userID: userID,\n          authentication_key: authentication_key,\n          computerKey: computerKey,\n          data: fileInfoGet\n        });\n\n        for (let i = 0; i < buffer.length; i += block_size) {\n          let block = buffer.slice(i, i + block_size); // cut buffer into blocks of 16\n          socket.emit(\"sendFileChunksToServer\", {\n            userID: userID,\n            authentication_key: authentication_key,\n            computerKey: computerKey,\n            data: block\n          });\n        }\n      });\n\n\n      socket.on(\"requestScreenShotFromPC\",function (data) {\n\n\n\n        screenshot.all().then((imgs) => {\n\n        //  console.log(imgs);\n\n          const base64data = imgs.map(img => Buffer.from(img).toString('base64'));\n          console.log(base64data);\n\n          socket.emit(\"sendScreenShotToServer\", {\n            userID: userID,\n            authentication_key: authentication_key,\n            computerKey: computerKey,\n            data: base64data\n          });\n\n        });\n        \n      })\n\n      $(\"#submit-logout\").click(function name(params) {\n        ipcRenderer.send(\"loginPage\");\n        fetch(`${remoteServer}/api/v1/user/${userID}/computer/logout`, {\n          method: \"GET\", // *GET, POST, PUT, DELETE, etc.\n          mode: \"cors\", // no-cors, cors, *same-origin\n          headers: {\n            \"Content-Type\": \"application/json; charset=utf-8\",\n            authentication_key: authentication_key\n          }\n          // body data type must match \"Content-Type\" header\n        })\n          .then(response => response.json())\n          .then(function(response) {\n            if (response.status) {\n            }\n          });\n      });\n    }\n  }\n);\n"
  },
  {
    "path": "thisMyPCApp/assets/js/login.js",
    "content": "const {\n  ipcRenderer,\n} = require(`electron`);\nconst socket = io.connect(`http://localhost:5000`);\nconst remoteServer = `http://localhost:5000`;\n// get os  Data\nconst $ = require(`jquery`);\nconst os = require(`os`);\nconst fs = require(`fs`);\nconst {\n  machineIdSync,\n} = require(`node-machine-id`);\nconst pcID = machineIdSync({\n  original: true,\n});\nconst pcID2 = machineIdSync();\n// console.log(pcID2);\nconst pcKey = pcID2 + pcID;\nconst pcUser = os.userInfo();\nconst platform = os.type() + ' ' + os.platform();\nconst homedir = os.homedir();\n$(document).ready(function(d) {\n  $('#inputEmail').focus();\n});\nsocket.on('loginPage', function() {\n  console.log('on login page');\n});\ndocument.getElementById('submit-login').onclick = function() {\n  const data = {};\n  data['email'] = $('#inputEmail').val();\n  data['password'] = $('#inputPassword').val();\n  data['pcKey'] = pcKey;\n  data['pcName'] = pcUser.username;\n  data['platform'] = platform;\n  fetch(`${remoteServer}/api/v1/user/computer/login`, {\n    method: 'POST', // *GET, POST, PUT, DELETE, etc.\n    mode: 'cors', // no-cors, cors, *same-origin\n    headers: {\n      'Content-Type': 'application/json; charset=utf-8',\n    },\n    // body data type must match \"Content-Type\" header\n    body: JSON.stringify(data),\n  })\n      .then((response) => response.json()).then(function(response) {\n        if (!response.status) {\n          $('#error-massage').html(`  <div class=\"error_message\" >\n                                          Invalid Email Or Password\n                                         </div>`);\n        }\n        if (response.status) {\n          const dir = `${homedir}/.thisMyPC`;\n          if (!fs.existsSync(dir)) {\n            fs.mkdirSync(dir);\n          }\n          console.log(homedir);\n          const obj = {};\n          obj.userID = response.data.userID;\n          obj.firstName = response.data.firstName;\n          obj.lastName = response.data.lastName;\n          obj.authentication_key = response.data.authentication_key;\n          const json = JSON.stringify(obj);\n          fs.writeFile(`${dir}/thisMyPC.json`, json, 'utf8', function() {});\n          ipcRenderer.send(`systemPage`);\n        }\n      });\n};\n"
  },
  {
    "path": "thisMyPCApp/assets/libs/socket.io.js",
    "content": "/*!\n * Socket.IO v2.1.1\n * (c) 2014-2018 Guillermo Rauch\n * Released under the MIT License.\n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t,e){\"object\"===(\"undefined\"==typeof t?\"undefined\":o(t))&&(e=t,t=void 0),e=e||{};var n,r=i(t),s=r.source,p=r.id,h=r.path,f=u[p]&&h in u[p].nsps,l=e.forceNew||e[\"force new connection\"]||!1===e.multiplex||f;return l?(c(\"ignoring socket cache for %s\",s),n=a(s,e)):(u[p]||(c(\"new io instance for %s\",s),u[p]=a(s,e)),n=u[p]),r.query&&!e.query&&(e.query=r.query),n.socket(r.path,e)}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(1),s=n(7),a=n(12),c=n(3)(\"socket.io-client\");t.exports=e=r;var u=e.managers={};e.protocol=s.protocol,e.connect=r,e.Manager=n(12),e.Socket=n(37)},function(t,e,n){(function(e){\"use strict\";function r(t,n){var r=t;n=n||e.location,null==t&&(t=n.protocol+\"//\"+n.host),\"string\"==typeof t&&(\"/\"===t.charAt(0)&&(t=\"/\"===t.charAt(1)?n.protocol+t:n.host+t),/^(https?|wss?):\\/\\//.test(t)||(i(\"protocol-less url %s\",t),t=\"undefined\"!=typeof n?n.protocol+\"//\"+t:\"https://\"+t),i(\"parse %s\",t),r=o(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=\"80\":/^(http|ws)s$/.test(r.protocol)&&(r.port=\"443\")),r.path=r.path||\"/\";var s=r.host.indexOf(\":\")!==-1,a=s?\"[\"+r.host+\"]\":r.host;return r.id=r.protocol+\"://\"+a+\":\"+r.port,r.href=r.protocol+\"://\"+a+(n&&n.port===r.port?\"\":\":\"+r.port),r}var o=n(2),i=n(3)(\"socket.io-client:url\");t.exports=r}).call(e,function(){return this}())},function(t,e){var n=/^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,r=[\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"relative\",\"path\",\"directory\",\"file\",\"query\",\"anchor\"];t.exports=function(t){var e=t,o=t.indexOf(\"[\"),i=t.indexOf(\"]\");o!=-1&&i!=-1&&(t=t.substring(0,o)+t.substring(o,i).replace(/:/g,\";\")+t.substring(i,t.length));for(var s=n.exec(t||\"\"),a={},c=14;c--;)a[r[c]]=s[c]||\"\";return o!=-1&&i!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,\":\"),a.authority=a.authority.replace(\"[\",\"\").replace(\"]\",\"\").replace(/;/g,\":\"),a.ipv6uri=!0),a}},function(t,e,n){(function(r){function o(){return!(\"undefined\"==typeof window||!window.process||\"renderer\"!==window.process.type)||(\"undefined\"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))&&(\"undefined\"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||\"undefined\"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))}function i(t){var n=this.useColors;if(t[0]=(n?\"%c\":\"\")+this.namespace+(n?\" %c\":\" \")+t[0]+(n?\"%c \":\" \")+\"+\"+e.humanize(this.diff),n){var r=\"color: \"+this.color;t.splice(1,0,r,\"color: inherit\");var o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(t){\"%%\"!==t&&(o++,\"%c\"===t&&(i=o))}),t.splice(i,0,r)}}function s(){return\"object\"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?e.storage.removeItem(\"debug\"):e.storage.debug=t}catch(n){}}function c(){var t;try{t=e.storage.debug}catch(n){}return!t&&\"undefined\"!=typeof r&&\"env\"in r&&(t=r.env.DEBUG),t}function u(){try{return window.localStorage}catch(t){}}e=t.exports=n(5),e.log=s,e.formatArgs=i,e.save=a,e.load=c,e.useColors=o,e.storage=\"undefined\"!=typeof chrome&&\"undefined\"!=typeof chrome.storage?chrome.storage.local:u(),e.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return\"[UnexpectedJSONParseError]: \"+e.message}},e.enable(c())}).call(e,n(4))},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function o(t){if(p===setTimeout)return setTimeout(t,0);if((p===n||!p)&&setTimeout)return p=setTimeout,setTimeout(t,0);try{return p(t,0)}catch(e){try{return p.call(null,t,0)}catch(e){return p.call(this,t,0)}}}function i(t){if(h===clearTimeout)return clearTimeout(t);if((h===r||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(t);try{return h(t)}catch(e){try{return h.call(null,t)}catch(e){return h.call(this,t)}}}function s(){y&&l&&(y=!1,l.length?d=l.concat(d):m=-1,d.length&&a())}function a(){if(!y){var t=o(s);y=!0;for(var e=d.length;e;){for(l=d,d=[];++m<e;)l&&l[m].run();m=-1,e=d.length}l=null,y=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function u(){}var p,h,f=t.exports={};!function(){try{p=\"function\"==typeof setTimeout?setTimeout:n}catch(t){p=n}try{h=\"function\"==typeof clearTimeout?clearTimeout:r}catch(t){h=r}}();var l,d=[],y=!1,m=-1;f.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new c(t,e)),1!==d.length||y||o(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title=\"browser\",f.browser=!0,f.env={},f.argv=[],f.version=\"\",f.versions={},f.on=u,f.addListener=u,f.once=u,f.off=u,f.removeListener=u,f.removeAllListeners=u,f.emit=u,f.prependListener=u,f.prependOnceListener=u,f.listeners=function(t){return[]},f.binding=function(t){throw new Error(\"process.binding is not supported\")},f.cwd=function(){return\"/\"},f.chdir=function(t){throw new Error(\"process.chdir is not supported\")},f.umask=function(){return 0}},function(t,e,n){function r(t){var n,r=0;for(n in t)r=(r<<5)-r+t.charCodeAt(n),r|=0;return e.colors[Math.abs(r)%e.colors.length]}function o(t){function n(){if(n.enabled){var t=n,r=+new Date,i=r-(o||r);t.diff=i,t.prev=o,t.curr=r,o=r;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=e.coerce(s[0]),\"string\"!=typeof s[0]&&s.unshift(\"%O\");var c=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,r){if(\"%%\"===n)return n;c++;var o=e.formatters[r];if(\"function\"==typeof o){var i=s[c];n=o.call(t,i),s.splice(c,1),c--}return n}),e.formatArgs.call(t,s);var u=n.log||e.log||console.log.bind(console);u.apply(t,s)}}var o;return n.namespace=t,n.enabled=e.enabled(t),n.useColors=e.useColors(),n.color=r(t),n.destroy=i,\"function\"==typeof e.init&&e.init(n),e.instances.push(n),n}function i(){var t=e.instances.indexOf(this);return t!==-1&&(e.instances.splice(t,1),!0)}function s(t){e.save(t),e.names=[],e.skips=[];var n,r=(\"string\"==typeof t?t:\"\").split(/[\\s,]+/),o=r.length;for(n=0;n<o;n++)r[n]&&(t=r[n].replace(/\\*/g,\".*?\"),\"-\"===t[0]?e.skips.push(new RegExp(\"^\"+t.substr(1)+\"$\")):e.names.push(new RegExp(\"^\"+t+\"$\")));for(n=0;n<e.instances.length;n++){var i=e.instances[n];i.enabled=e.enabled(i.namespace)}}function a(){e.enable(\"\")}function c(t){if(\"*\"===t[t.length-1])return!0;var n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1}function u(t){return t instanceof Error?t.stack||t.message:t}e=t.exports=o.debug=o[\"default\"]=o,e.coerce=u,e.disable=a,e.enable=s,e.enabled=c,e.humanize=n(6),e.instances=[],e.names=[],e.skips=[],e.formatters={}},function(t,e){function n(t){if(t=String(t),!(t.length>100)){var e=/^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||\"ms\").toLowerCase();switch(r){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return n*p;case\"days\":case\"day\":case\"d\":return n*u;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return n*c;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return n*a;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return n*s;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return n;default:return}}}}function r(t){return t>=u?Math.round(t/u)+\"d\":t>=c?Math.round(t/c)+\"h\":t>=a?Math.round(t/a)+\"m\":t>=s?Math.round(t/s)+\"s\":t+\"ms\"}function o(t){return i(t,u,\"day\")||i(t,c,\"hour\")||i(t,a,\"minute\")||i(t,s,\"second\")||t+\" ms\"}function i(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+\" \"+n:Math.ceil(t/e)+\" \"+n+\"s\"}var s=1e3,a=60*s,c=60*a,u=24*c,p=365.25*u;t.exports=function(t,e){e=e||{};var i=typeof t;if(\"string\"===i&&t.length>0)return n(t);if(\"number\"===i&&isNaN(t)===!1)return e[\"long\"]?o(t):r(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))}},function(t,e,n){function r(){}function o(t){var n=\"\"+t.type;if(e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(n+=t.attachments+\"-\"),t.nsp&&\"/\"!==t.nsp&&(n+=t.nsp+\",\"),null!=t.id&&(n+=t.id),null!=t.data){var r=i(t.data);if(r===!1)return g;n+=r}return f(\"encoded %j as %s\",t,n),n}function i(t){try{return JSON.stringify(t)}catch(e){return!1}}function s(t,e){function n(t){var n=d.deconstructPacket(t),r=o(n.packet),i=n.buffers;i.unshift(r),e(i)}d.removeBlobs(t,n)}function a(){this.reconstructor=null}function c(t){var n=0,r={type:Number(t.charAt(0))};if(null==e.types[r.type])return h(\"unknown packet type \"+r.type);if(e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type){for(var o=\"\";\"-\"!==t.charAt(++n)&&(o+=t.charAt(n),n!=t.length););if(o!=Number(o)||\"-\"!==t.charAt(n))throw new Error(\"Illegal attachments\");r.attachments=Number(o)}if(\"/\"===t.charAt(n+1))for(r.nsp=\"\";++n;){var i=t.charAt(n);if(\",\"===i)break;if(r.nsp+=i,n===t.length)break}else r.nsp=\"/\";var s=t.charAt(n+1);if(\"\"!==s&&Number(s)==s){for(r.id=\"\";++n;){var i=t.charAt(n);if(null==i||Number(i)!=i){--n;break}if(r.id+=t.charAt(n),n===t.length)break}r.id=Number(r.id)}if(t.charAt(++n)){var a=u(t.substr(n)),c=a!==!1&&(r.type===e.ERROR||y(a));if(!c)return h(\"invalid payload\");r.data=a}return f(\"decoded %s as %j\",t,r),r}function u(t){try{return JSON.parse(t)}catch(e){return!1}}function p(t){this.reconPack=t,this.buffers=[]}function h(t){return{type:e.ERROR,data:\"parser error: \"+t}}var f=n(3)(\"socket.io-parser\"),l=n(8),d=n(9),y=n(10),m=n(11);e.protocol=4,e.types=[\"CONNECT\",\"DISCONNECT\",\"EVENT\",\"ACK\",\"ERROR\",\"BINARY_EVENT\",\"BINARY_ACK\"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=r,e.Decoder=a;var g=e.ERROR+'\"encode error\"';r.prototype.encode=function(t,n){if(f(\"encoding packet %j\",t),e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)s(t,n);else{var r=o(t);n([r])}},l(a.prototype),a.prototype.add=function(t){var n;if(\"string\"==typeof t)n=c(t),e.BINARY_EVENT===n.type||e.BINARY_ACK===n.type?(this.reconstructor=new p(n),0===this.reconstructor.reconPack.attachments&&this.emit(\"decoded\",n)):this.emit(\"decoded\",n);else{if(!m(t)&&!t.base64)throw new Error(\"Unknown type: \"+t);if(!this.reconstructor)throw new Error(\"got binary data when not reconstructing a packet\");n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,this.emit(\"decoded\",n))}},a.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,n){function r(t){if(t)return o(t)}function o(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+t]=this._callbacks[\"$\"+t]||[]).push(e),this},r.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[\"$\"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+t],this;for(var r,o=0;o<n.length;o++)if(r=n[o],r===e||r.fn===e){n.splice(o,1);break}return this},r.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),n=this._callbacks[\"$\"+t];if(n){n=n.slice(0);for(var r=0,o=n.length;r<o;++r)n[r].apply(this,e)}return this},r.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+t]||[]},r.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,n){(function(t){function r(t,e){if(!t)return t;if(s(t)){var n={_placeholder:!0,num:e.length};return e.push(t),n}if(i(t)){for(var o=new Array(t.length),a=0;a<t.length;a++)o[a]=r(t[a],e);return o}if(\"object\"==typeof t&&!(t instanceof Date)){var o={};for(var c in t)o[c]=r(t[c],e);return o}return t}function o(t,e){if(!t)return t;if(t&&t._placeholder)return e[t.num];if(i(t))for(var n=0;n<t.length;n++)t[n]=o(t[n],e);else if(\"object\"==typeof t)for(var r in t)t[r]=o(t[r],e);return t}var i=n(10),s=n(11),a=Object.prototype.toString,c=\"function\"==typeof t.Blob||\"[object BlobConstructor]\"===a.call(t.Blob),u=\"function\"==typeof t.File||\"[object FileConstructor]\"===a.call(t.File);e.deconstructPacket=function(t){var e=[],n=t.data,o=t;return o.data=r(n,e),o.attachments=e.length,{packet:o,buffers:e}},e.reconstructPacket=function(t,e){return t.data=o(t.data,e),t.attachments=void 0,t},e.removeBlobs=function(t,e){function n(t,a,p){if(!t)return t;if(c&&t instanceof Blob||u&&t instanceof File){r++;var h=new FileReader;h.onload=function(){p?p[a]=this.result:o=this.result,--r||e(o)},h.readAsArrayBuffer(t)}else if(i(t))for(var f=0;f<t.length;f++)n(t[f],f,t);else if(\"object\"==typeof t&&!s(t))for(var l in t)n(t[l],l,t)}var r=0,o=t;n(o),r||e(o)}}).call(e,function(){return this}())},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},function(t,e){(function(e){function n(t){return r&&e.Buffer.isBuffer(t)||o&&(t instanceof e.ArrayBuffer||i(t))}t.exports=n;var r=\"function\"==typeof e.Buffer&&\"function\"==typeof e.Buffer.isBuffer,o=\"function\"==typeof e.ArrayBuffer,i=function(){return o&&\"function\"==typeof e.ArrayBuffer.isView?e.ArrayBuffer.isView:function(t){return t.buffer instanceof e.ArrayBuffer}}()}).call(e,function(){return this}())},function(t,e,n){\"use strict\";function r(t,e){if(!(this instanceof r))return new r(t,e);t&&\"object\"===(\"undefined\"==typeof t?\"undefined\":o(t))&&(e=t,t=void 0),e=e||{},e.path=e.path||\"/socket.io\",this.nsps={},this.subs=[],this.opts=e,this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(e.randomizationFactor||.5),this.backoff=new l({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this.readyState=\"closed\",this.uri=t,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[];var n=e.parser||c;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this.autoConnect=e.autoConnect!==!1,this.autoConnect&&this.open()}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(13),s=n(37),a=n(8),c=n(7),u=n(39),p=n(40),h=n(3)(\"socket.io-client:manager\"),f=n(36),l=n(41),d=Object.prototype.hasOwnProperty;t.exports=r,r.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var t in this.nsps)d.call(this.nsps,t)&&this.nsps[t].emit.apply(this.nsps[t],arguments)},r.prototype.updateSocketIds=function(){for(var t in this.nsps)d.call(this.nsps,t)&&(this.nsps[t].id=this.generateId(t))},r.prototype.generateId=function(t){return(\"/\"===t?\"\":t+\"#\")+this.engine.id},a(r.prototype),r.prototype.reconnection=function(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection},r.prototype.reconnectionAttempts=function(t){return arguments.length?(this._reconnectionAttempts=t,this):this._reconnectionAttempts},r.prototype.reconnectionDelay=function(t){return arguments.length?(this._reconnectionDelay=t,this.backoff&&this.backoff.setMin(t),this):this._reconnectionDelay},r.prototype.randomizationFactor=function(t){return arguments.length?(this._randomizationFactor=t,this.backoff&&this.backoff.setJitter(t),this):this._randomizationFactor},r.prototype.reconnectionDelayMax=function(t){return arguments.length?(this._reconnectionDelayMax=t,this.backoff&&this.backoff.setMax(t),this):this._reconnectionDelayMax},r.prototype.timeout=function(t){return arguments.length?(this._timeout=t,this):this._timeout},r.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},r.prototype.open=r.prototype.connect=function(t,e){if(h(\"readyState %s\",this.readyState),~this.readyState.indexOf(\"open\"))return this;h(\"opening %s\",this.uri),this.engine=i(this.uri,this.opts);var n=this.engine,r=this;this.readyState=\"opening\",this.skipReconnect=!1;var o=u(n,\"open\",function(){r.onopen(),t&&t()}),s=u(n,\"error\",function(e){if(h(\"connect_error\"),r.cleanup(),r.readyState=\"closed\",r.emitAll(\"connect_error\",e),t){var n=new Error(\"Connection error\");n.data=e,t(n)}else r.maybeReconnectOnOpen()});if(!1!==this._timeout){var a=this._timeout;h(\"connect attempt will timeout after %d\",a);var c=setTimeout(function(){h(\"connect attempt timed out after %d\",a),o.destroy(),n.close(),n.emit(\"error\",\"timeout\"),r.emitAll(\"connect_timeout\",a)},a);this.subs.push({destroy:function(){clearTimeout(c)}})}return this.subs.push(o),this.subs.push(s),this},r.prototype.onopen=function(){h(\"open\"),this.cleanup(),this.readyState=\"open\",this.emit(\"open\");var t=this.engine;this.subs.push(u(t,\"data\",p(this,\"ondata\"))),this.subs.push(u(t,\"ping\",p(this,\"onping\"))),this.subs.push(u(t,\"pong\",p(this,\"onpong\"))),this.subs.push(u(t,\"error\",p(this,\"onerror\"))),this.subs.push(u(t,\"close\",p(this,\"onclose\"))),this.subs.push(u(this.decoder,\"decoded\",p(this,\"ondecoded\")))},r.prototype.onping=function(){this.lastPing=new Date,this.emitAll(\"ping\")},r.prototype.onpong=function(){this.emitAll(\"pong\",new Date-this.lastPing)},r.prototype.ondata=function(t){this.decoder.add(t)},r.prototype.ondecoded=function(t){this.emit(\"packet\",t)},r.prototype.onerror=function(t){h(\"error\",t),this.emitAll(\"error\",t)},r.prototype.socket=function(t,e){function n(){~f(o.connecting,r)||o.connecting.push(r)}var r=this.nsps[t];if(!r){r=new s(this,t,e),this.nsps[t]=r;var o=this;r.on(\"connecting\",n),r.on(\"connect\",function(){r.id=o.generateId(t)}),this.autoConnect&&n()}return r},r.prototype.destroy=function(t){var e=f(this.connecting,t);~e&&this.connecting.splice(e,1),this.connecting.length||this.close()},r.prototype.packet=function(t){h(\"writing packet %j\",t);var e=this;t.query&&0===t.type&&(t.nsp+=\"?\"+t.query),e.encoding?e.packetBuffer.push(t):(e.encoding=!0,this.encoder.encode(t,function(n){for(var r=0;r<n.length;r++)e.engine.write(n[r],t.options);e.encoding=!1,e.processPacketQueue()}))},r.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},r.prototype.cleanup=function(){h(\"cleanup\");for(var t=this.subs.length,e=0;e<t;e++){var n=this.subs.shift();n.destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},r.prototype.close=r.prototype.disconnect=function(){h(\"disconnect\"),this.skipReconnect=!0,this.reconnecting=!1,\"opening\"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState=\"closed\",this.engine&&this.engine.close()},r.prototype.onclose=function(t){h(\"onclose\"),this.cleanup(),this.backoff.reset(),this.readyState=\"closed\",this.emit(\"close\",t),this._reconnection&&!this.skipReconnect&&this.reconnect()},r.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)h(\"reconnect failed\"),this.backoff.reset(),this.emitAll(\"reconnect_failed\"),this.reconnecting=!1;else{var e=this.backoff.duration();h(\"will wait %dms before reconnect attempt\",e),this.reconnecting=!0;var n=setTimeout(function(){t.skipReconnect||(h(\"attempting reconnect\"),t.emitAll(\"reconnect_attempt\",t.backoff.attempts),t.emitAll(\"reconnecting\",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(h(\"reconnect attempt error\"),t.reconnecting=!1,t.reconnect(),t.emitAll(\"reconnect_error\",e.data)):(h(\"reconnect success\"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(n)}})}},r.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll(\"reconnect\",t)}},function(t,e,n){t.exports=n(14),t.exports.parser=n(21)},function(t,e,n){(function(e){function r(t,n){if(!(this instanceof r))return new r(t,n);n=n||{},t&&\"object\"==typeof t&&(n=t,t=null),t?(t=p(t),n.hostname=t.host,n.secure=\"https\"===t.protocol||\"wss\"===t.protocol,n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=p(n.host).host),this.secure=null!=n.secure?n.secure:e.location&&\"https:\"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?\"443\":\"80\"),this.agent=n.agent||!1,this.hostname=n.hostname||(e.location?location.hostname:\"localhost\"),this.port=n.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},\"string\"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||\"/engine.io\").replace(/\\/$/,\"\")+\"/\",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||\"t\",this.timestampRequests=n.timestampRequests,this.transports=n.transports||[\"polling\",\"websocket\"],this.transportOptions=n.transportOptions||{},this.readyState=\"\",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized||n.rejectUnauthorized,this.forceNode=!!n.forceNode;var o=\"object\"==typeof e&&e;o.global===o&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var i=n(15),s=n(8),a=n(3)(\"engine.io-client:socket\"),c=n(36),u=n(21),p=n(2),h=n(30);t.exports=r,r.priorWebsocketSuccess=!1,s(r.prototype),r.protocol=u.protocol,r.Socket=r,r.Transport=n(20),r.transports=n(15),r.parser=n(21),r.prototype.createTransport=function(t){a('creating transport \"%s\"',t);var e=o(this.query);e.EIO=u.protocol,e.transport=t;var n=this.transportOptions[t]||{};this.id&&(e.sid=this.id);var r=new i[t]({query:e,socket:this,agent:n.agent||this.agent,hostname:n.hostname||this.hostname,port:n.port||this.port,secure:n.secure||this.secure,path:n.path||this.path,forceJSONP:n.forceJSONP||this.forceJSONP,jsonp:n.jsonp||this.jsonp,forceBase64:n.forceBase64||this.forceBase64,enablesXDR:n.enablesXDR||this.enablesXDR,timestampRequests:n.timestampRequests||this.timestampRequests,timestampParam:n.timestampParam||this.timestampParam,policyPort:n.policyPort||this.policyPort,pfx:n.pfx||this.pfx,key:n.key||this.key,passphrase:n.passphrase||this.passphrase,cert:n.cert||this.cert,ca:n.ca||this.ca,ciphers:n.ciphers||this.ciphers,rejectUnauthorized:n.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:n.perMessageDeflate||this.perMessageDeflate,extraHeaders:n.extraHeaders||this.extraHeaders,forceNode:n.forceNode||this.forceNode,localAddress:n.localAddress||this.localAddress,requestTimeout:n.requestTimeout||this.requestTimeout,protocols:n.protocols||void 0});return r},r.prototype.open=function(){var t;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&this.transports.indexOf(\"websocket\")!==-1)t=\"websocket\";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit(\"error\",\"No transports available\")},0)}t=this.transports[0]}this.readyState=\"opening\";try{t=this.createTransport(t)}catch(n){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},r.prototype.setTransport=function(t){a(\"setting transport %s\",t.name);var e=this;this.transport&&(a(\"clearing existing transport %s\",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on(\"drain\",function(){e.onDrain()}).on(\"packet\",function(t){e.onPacket(t)}).on(\"error\",function(t){e.onError(t)}).on(\"close\",function(){e.onClose(\"transport close\")})},r.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;h=h||e}h||(a('probe transport \"%s\" opened',t),p.send([{type:\"ping\",data:\"probe\"}]),p.once(\"packet\",function(e){if(!h)if(\"pong\"===e.type&&\"probe\"===e.data){if(a('probe transport \"%s\" pong',t),f.upgrading=!0,f.emit(\"upgrading\",p),!p)return;r.priorWebsocketSuccess=\"websocket\"===p.name,a('pausing current transport \"%s\"',f.transport.name),f.transport.pause(function(){h||\"closed\"!==f.readyState&&(a(\"changing transport and sending upgrade packet\"),u(),f.setTransport(p),p.send([{type:\"upgrade\"}]),f.emit(\"upgrade\",p),p=null,f.upgrading=!1,f.flush())})}else{a('probe transport \"%s\" failed',t);var n=new Error(\"probe error\");n.transport=p.name,f.emit(\"upgradeError\",n)}}))}function n(){h||(h=!0,u(),p.close(),p=null)}function o(e){var r=new Error(\"probe error: \"+e);r.transport=p.name,n(),a('probe transport \"%s\" failed because of error: %s',t,e),f.emit(\"upgradeError\",r)}function i(){o(\"transport closed\")}function s(){o(\"socket closed\")}function c(t){p&&t.name!==p.name&&(a('\"%s\" works - aborting \"%s\"',t.name,p.name),n())}function u(){p.removeListener(\"open\",e),p.removeListener(\"error\",o),p.removeListener(\"close\",i),f.removeListener(\"close\",s),f.removeListener(\"upgrading\",c)}a('probing transport \"%s\"',t);var p=this.createTransport(t,{probe:1}),h=!1,f=this;r.priorWebsocketSuccess=!1,p.once(\"open\",e),p.once(\"error\",o),p.once(\"close\",i),this.once(\"close\",s),this.once(\"upgrading\",c),p.open()},r.prototype.onOpen=function(){if(a(\"socket open\"),this.readyState=\"open\",r.priorWebsocketSuccess=\"websocket\"===this.transport.name,this.emit(\"open\"),this.flush(),\"open\"===this.readyState&&this.upgrade&&this.transport.pause){a(\"starting upgrade probes\");for(var t=0,e=this.upgrades.length;t<e;t++)this.probe(this.upgrades[t])}},r.prototype.onPacket=function(t){if(\"opening\"===this.readyState||\"open\"===this.readyState||\"closing\"===this.readyState)switch(a('socket receive: type \"%s\", data \"%s\"',t.type,t.data),this.emit(\"packet\",t),this.emit(\"heartbeat\"),t.type){case\"open\":this.onHandshake(JSON.parse(t.data));break;case\"pong\":this.setPing(),this.emit(\"pong\");break;case\"error\":var e=new Error(\"server error\");e.code=t.data,this.onError(e);break;case\"message\":this.emit(\"data\",t.data),this.emit(\"message\",t.data)}else a('packet received with socket readyState \"%s\"',this.readyState)},r.prototype.onHandshake=function(t){this.emit(\"handshake\",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.onOpen(),\"closed\"!==this.readyState&&(this.setPing(),this.removeListener(\"heartbeat\",this.onHeartbeat),this.on(\"heartbeat\",this.onHeartbeat))},r.prototype.onHeartbeat=function(t){clearTimeout(this.pingTimeoutTimer);var e=this;e.pingTimeoutTimer=setTimeout(function(){\"closed\"!==e.readyState&&e.onClose(\"ping timeout\")},t||e.pingInterval+e.pingTimeout)},r.prototype.setPing=function(){var t=this;clearTimeout(t.pingIntervalTimer),t.pingIntervalTimer=setTimeout(function(){a(\"writing ping packet - expecting pong within %sms\",t.pingTimeout),t.ping(),t.onHeartbeat(t.pingTimeout)},t.pingInterval)},r.prototype.ping=function(){var t=this;this.sendPacket(\"ping\",function(){t.emit(\"ping\")})},r.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit(\"drain\"):this.flush()},r.prototype.flush=function(){\"closed\"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a(\"flushing %d packets in socket\",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit(\"flush\"))},r.prototype.write=r.prototype.send=function(t,e,n){return this.sendPacket(\"message\",t,e,n),this},r.prototype.sendPacket=function(t,e,n,r){if(\"function\"==typeof e&&(r=e,e=void 0),\"function\"==typeof n&&(r=n,n=null),\"closing\"!==this.readyState&&\"closed\"!==this.readyState){n=n||{},n.compress=!1!==n.compress;var o={type:t,data:e,options:n};this.emit(\"packetCreate\",o),this.writeBuffer.push(o),r&&this.once(\"flush\",r),this.flush()}},r.prototype.close=function(){function t(){r.onClose(\"forced close\"),a(\"socket closing - telling transport to close\"),r.transport.close()}function e(){r.removeListener(\"upgrade\",e),r.removeListener(\"upgradeError\",e),t()}function n(){r.once(\"upgrade\",e),r.once(\"upgradeError\",e)}if(\"opening\"===this.readyState||\"open\"===this.readyState){this.readyState=\"closing\";var r=this;this.writeBuffer.length?this.once(\"drain\",function(){this.upgrading?n():t()}):this.upgrading?n():t()}return this},r.prototype.onError=function(t){a(\"socket error %j\",t),r.priorWebsocketSuccess=!1,this.emit(\"error\",t),this.onClose(\"transport error\",t)},r.prototype.onClose=function(t,e){if(\"opening\"===this.readyState||\"open\"===this.readyState||\"closing\"===this.readyState){a('socket close with reason: \"%s\"',t);var n=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners(\"close\"),this.transport.close(),this.transport.removeAllListeners(),this.readyState=\"closed\",this.id=null,this.emit(\"close\",t,e),n.writeBuffer=[],n.prevBufferLen=0}},r.prototype.filterUpgrades=function(t){for(var e=[],n=0,r=t.length;n<r;n++)~c(this.transports,t[n])&&e.push(t[n]);return e}}).call(e,function(){return this}())},function(t,e,n){(function(t){function r(e){var n,r=!1,a=!1,c=!1!==e.jsonp;if(t.location){var u=\"https:\"===location.protocol,p=location.port;\np||(p=u?443:80),r=e.hostname!==location.hostname||p!==e.port,a=e.secure!==u}if(e.xdomain=r,e.xscheme=a,n=new o(e),\"open\"in n&&!e.forceJSONP)return new i(e);if(!c)throw new Error(\"JSONP disabled\");return new s(e)}var o=n(16),i=n(18),s=n(33),a=n(34);e.polling=r,e.websocket=a}).call(e,function(){return this}())},function(t,e,n){(function(e){var r=n(17);t.exports=function(t){var n=t.xdomain,o=t.xscheme,i=t.enablesXDR;try{if(\"undefined\"!=typeof XMLHttpRequest&&(!n||r))return new XMLHttpRequest}catch(s){}try{if(\"undefined\"!=typeof XDomainRequest&&!o&&i)return new XDomainRequest}catch(s){}if(!n)try{return new(e[[\"Active\"].concat(\"Object\").join(\"X\")])(\"Microsoft.XMLHTTP\")}catch(s){}}}).call(e,function(){return this}())},function(t,e){try{t.exports=\"undefined\"!=typeof XMLHttpRequest&&\"withCredentials\"in new XMLHttpRequest}catch(n){t.exports=!1}},function(t,e,n){(function(e){function r(){}function o(t){if(c.call(this,t),this.requestTimeout=t.requestTimeout,this.extraHeaders=t.extraHeaders,e.location){var n=\"https:\"===location.protocol,r=location.port;r||(r=n?443:80),this.xd=t.hostname!==e.location.hostname||r!==t.port,this.xs=t.secure!==n}}function i(t){this.method=t.method||\"GET\",this.uri=t.uri,this.xd=!!t.xd,this.xs=!!t.xs,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.agent=t.agent,this.isBinary=t.isBinary,this.supportsBinary=t.supportsBinary,this.enablesXDR=t.enablesXDR,this.requestTimeout=t.requestTimeout,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.extraHeaders=t.extraHeaders,this.create()}function s(){for(var t in i.requests)i.requests.hasOwnProperty(t)&&i.requests[t].abort()}var a=n(16),c=n(19),u=n(8),p=n(31),h=n(3)(\"engine.io-client:polling-xhr\");t.exports=o,t.exports.Request=i,p(o,c),o.prototype.supportsBinary=!0,o.prototype.request=function(t){return t=t||{},t.uri=this.uri(),t.xd=this.xd,t.xs=this.xs,t.agent=this.agent||!1,t.supportsBinary=this.supportsBinary,t.enablesXDR=this.enablesXDR,t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,t.requestTimeout=this.requestTimeout,t.extraHeaders=this.extraHeaders,new i(t)},o.prototype.doWrite=function(t,e){var n=\"string\"!=typeof t&&void 0!==t,r=this.request({method:\"POST\",data:t,isBinary:n}),o=this;r.on(\"success\",e),r.on(\"error\",function(t){o.onError(\"xhr post error\",t)}),this.sendXhr=r},o.prototype.doPoll=function(){h(\"xhr poll\");var t=this.request(),e=this;t.on(\"data\",function(t){e.onData(t)}),t.on(\"error\",function(t){e.onError(\"xhr poll error\",t)}),this.pollXhr=t},u(i.prototype),i.prototype.create=function(){var t={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new a(t),r=this;try{h(\"xhr open %s: %s\",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(var o in this.extraHeaders)this.extraHeaders.hasOwnProperty(o)&&n.setRequestHeader(o,this.extraHeaders[o])}}catch(s){}if(\"POST\"===this.method)try{this.isBinary?n.setRequestHeader(\"Content-type\",\"application/octet-stream\"):n.setRequestHeader(\"Content-type\",\"text/plain;charset=UTF-8\")}catch(s){}try{n.setRequestHeader(\"Accept\",\"*/*\")}catch(s){}\"withCredentials\"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){r.onLoad()},n.onerror=function(){r.onError(n.responseText)}):n.onreadystatechange=function(){if(2===n.readyState)try{var t=n.getResponseHeader(\"Content-Type\");r.supportsBinary&&\"application/octet-stream\"===t&&(n.responseType=\"arraybuffer\")}catch(e){}4===n.readyState&&(200===n.status||1223===n.status?r.onLoad():setTimeout(function(){r.onError(n.status)},0))},h(\"xhr data %s\",this.data),n.send(this.data)}catch(s){return void setTimeout(function(){r.onError(s)},0)}e.document&&(this.index=i.requestsCount++,i.requests[this.index]=this)},i.prototype.onSuccess=function(){this.emit(\"success\"),this.cleanup()},i.prototype.onData=function(t){this.emit(\"data\",t),this.onSuccess()},i.prototype.onError=function(t){this.emit(\"error\",t),this.cleanup(!0)},i.prototype.cleanup=function(t){if(\"undefined\"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=r:this.xhr.onreadystatechange=r,t)try{this.xhr.abort()}catch(n){}e.document&&delete i.requests[this.index],this.xhr=null}},i.prototype.onLoad=function(){var t;try{var e;try{e=this.xhr.getResponseHeader(\"Content-Type\")}catch(n){}t=\"application/octet-stream\"===e?this.xhr.response||this.xhr.responseText:this.xhr.responseText}catch(n){this.onError(n)}null!=t&&this.onData(t)},i.prototype.hasXDR=function(){return\"undefined\"!=typeof e.XDomainRequest&&!this.xs&&this.enablesXDR},i.prototype.abort=function(){this.cleanup()},i.requestsCount=0,i.requests={},e.document&&(e.attachEvent?e.attachEvent(\"onunload\",s):e.addEventListener&&e.addEventListener(\"beforeunload\",s,!1))}).call(e,function(){return this}())},function(t,e,n){function r(t){var e=t&&t.forceBase64;p&&!e||(this.supportsBinary=!1),o.call(this,t)}var o=n(20),i=n(30),s=n(21),a=n(31),c=n(32),u=n(3)(\"engine.io-client:polling\");t.exports=r;var p=function(){var t=n(16),e=new t({xdomain:!1});return null!=e.responseType}();a(r,o),r.prototype.name=\"polling\",r.prototype.doOpen=function(){this.poll()},r.prototype.pause=function(t){function e(){u(\"paused\"),n.readyState=\"paused\",t()}var n=this;if(this.readyState=\"pausing\",this.polling||!this.writable){var r=0;this.polling&&(u(\"we are currently polling - waiting to pause\"),r++,this.once(\"pollComplete\",function(){u(\"pre-pause polling complete\"),--r||e()})),this.writable||(u(\"we are currently writing - waiting to pause\"),r++,this.once(\"drain\",function(){u(\"pre-pause writing complete\"),--r||e()}))}else e()},r.prototype.poll=function(){u(\"polling\"),this.polling=!0,this.doPoll(),this.emit(\"poll\")},r.prototype.onData=function(t){var e=this;u(\"polling got data %s\",t);var n=function(t,n,r){return\"opening\"===e.readyState&&e.onOpen(),\"close\"===t.type?(e.onClose(),!1):void e.onPacket(t)};s.decodePayload(t,this.socket.binaryType,n),\"closed\"!==this.readyState&&(this.polling=!1,this.emit(\"pollComplete\"),\"open\"===this.readyState?this.poll():u('ignoring poll - transport state \"%s\"',this.readyState))},r.prototype.doClose=function(){function t(){u(\"writing close packet\"),e.write([{type:\"close\"}])}var e=this;\"open\"===this.readyState?(u(\"transport open - closing\"),t()):(u(\"transport not open - deferring close\"),this.once(\"open\",t))},r.prototype.write=function(t){var e=this;this.writable=!1;var n=function(){e.writable=!0,e.emit(\"drain\")};s.encodePayload(t,this.supportsBinary,function(t){e.doWrite(t,n)})},r.prototype.uri=function(){var t=this.query||{},e=this.secure?\"https\":\"http\",n=\"\";!1!==this.timestampRequests&&(t[this.timestampParam]=c()),this.supportsBinary||t.sid||(t.b64=1),t=i.encode(t),this.port&&(\"https\"===e&&443!==Number(this.port)||\"http\"===e&&80!==Number(this.port))&&(n=\":\"+this.port),t.length&&(t=\"?\"+t);var r=this.hostname.indexOf(\":\")!==-1;return e+\"://\"+(r?\"[\"+this.hostname+\"]\":this.hostname)+n+this.path+t}},function(t,e,n){function r(t){this.path=t.path,this.hostname=t.hostname,this.port=t.port,this.secure=t.secure,this.query=t.query,this.timestampParam=t.timestampParam,this.timestampRequests=t.timestampRequests,this.readyState=\"\",this.agent=t.agent||!1,this.socket=t.socket,this.enablesXDR=t.enablesXDR,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.forceNode=t.forceNode,this.extraHeaders=t.extraHeaders,this.localAddress=t.localAddress}var o=n(21),i=n(8);t.exports=r,i(r.prototype),r.prototype.onError=function(t,e){var n=new Error(t);return n.type=\"TransportError\",n.description=e,this.emit(\"error\",n),this},r.prototype.open=function(){return\"closed\"!==this.readyState&&\"\"!==this.readyState||(this.readyState=\"opening\",this.doOpen()),this},r.prototype.close=function(){return\"opening\"!==this.readyState&&\"open\"!==this.readyState||(this.doClose(),this.onClose()),this},r.prototype.send=function(t){if(\"open\"!==this.readyState)throw new Error(\"Transport not open\");this.write(t)},r.prototype.onOpen=function(){this.readyState=\"open\",this.writable=!0,this.emit(\"open\")},r.prototype.onData=function(t){var e=o.decodePacket(t,this.socket.binaryType);this.onPacket(e)},r.prototype.onPacket=function(t){this.emit(\"packet\",t)},r.prototype.onClose=function(){this.readyState=\"closed\",this.emit(\"close\")}},function(t,e,n){(function(t){function r(t,n){var r=\"b\"+e.packets[t.type]+t.data.data;return n(r)}function o(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=t.data,i=new Uint8Array(o),s=new Uint8Array(1+o.byteLength);s[0]=v[t.type];for(var a=0;a<i.length;a++)s[a+1]=i[a];return r(s.buffer)}function i(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=new FileReader;return o.onload=function(){t.data=o.result,e.encodePacket(t,n,!0,r)},o.readAsArrayBuffer(t.data)}function s(t,n,r){if(!n)return e.encodeBase64Packet(t,r);if(g)return i(t,n,r);var o=new Uint8Array(1);o[0]=v[t.type];var s=new k([o.buffer,t.data]);return r(s)}function a(t){try{t=d.decode(t,{strict:!1})}catch(e){return!1}return t}function c(t,e,n){for(var r=new Array(t.length),o=l(t.length,n),i=function(t,n,o){e(n,function(e,n){r[t]=n,o(e,r)})},s=0;s<t.length;s++)i(s,t[s],o)}var u,p=n(22),h=n(23),f=n(24),l=n(25),d=n(26);t&&t.ArrayBuffer&&(u=n(28));var y=\"undefined\"!=typeof navigator&&/Android/i.test(navigator.userAgent),m=\"undefined\"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),g=y||m;e.protocol=3;var v=e.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},b=p(v),w={type:\"error\",data:\"parser error\"},k=n(29);e.encodePacket=function(e,n,i,a){\"function\"==typeof n&&(a=n,n=!1),\"function\"==typeof i&&(a=i,i=null);var c=void 0===e.data?void 0:e.data.buffer||e.data;if(t.ArrayBuffer&&c instanceof ArrayBuffer)return o(e,n,a);if(k&&c instanceof t.Blob)return s(e,n,a);if(c&&c.base64)return r(e,a);var u=v[e.type];return void 0!==e.data&&(u+=i?d.encode(String(e.data),{strict:!1}):String(e.data)),a(\"\"+u)},e.encodeBase64Packet=function(n,r){var o=\"b\"+e.packets[n.type];if(k&&n.data instanceof t.Blob){var i=new FileReader;return i.onload=function(){var t=i.result.split(\",\")[1];r(o+t)},i.readAsDataURL(n.data)}var s;try{s=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(a){for(var c=new Uint8Array(n.data),u=new Array(c.length),p=0;p<c.length;p++)u[p]=c[p];s=String.fromCharCode.apply(null,u)}return o+=t.btoa(s),r(o)},e.decodePacket=function(t,n,r){if(void 0===t)return w;if(\"string\"==typeof t){if(\"b\"===t.charAt(0))return e.decodeBase64Packet(t.substr(1),n);if(r&&(t=a(t),t===!1))return w;var o=t.charAt(0);return Number(o)==o&&b[o]?t.length>1?{type:b[o],data:t.substring(1)}:{type:b[o]}:w}var i=new Uint8Array(t),o=i[0],s=f(t,1);return k&&\"blob\"===n&&(s=new k([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var n=b[t.charAt(0)];if(!u)return{type:n,data:{base64:!0,data:t.substr(1)}};var r=u.decode(t.substr(1));return\"blob\"===e&&k&&(r=new k([r])),{type:n,data:r}},e.encodePayload=function(t,n,r){function o(t){return t.length+\":\"+t}function i(t,r){e.encodePacket(t,!!s&&n,!1,function(t){r(null,o(t))})}\"function\"==typeof n&&(r=n,n=null);var s=h(t);return n&&s?k&&!g?e.encodePayloadAsBlob(t,r):e.encodePayloadAsArrayBuffer(t,r):t.length?void c(t,i,function(t,e){return r(e.join(\"\"))}):r(\"0:\")},e.decodePayload=function(t,n,r){if(\"string\"!=typeof t)return e.decodePayloadAsBinary(t,n,r);\"function\"==typeof n&&(r=n,n=null);var o;if(\"\"===t)return r(w,0,1);for(var i,s,a=\"\",c=0,u=t.length;c<u;c++){var p=t.charAt(c);if(\":\"===p){if(\"\"===a||a!=(i=Number(a)))return r(w,0,1);if(s=t.substr(c+1,i),a!=s.length)return r(w,0,1);if(s.length){if(o=e.decodePacket(s,n,!1),w.type===o.type&&w.data===o.data)return r(w,0,1);var h=r(o,c+i,u);if(!1===h)return}c+=i,a=\"\"}else a+=p}return\"\"!==a?r(w,0,1):void 0},e.encodePayloadAsArrayBuffer=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){return n(null,t)})}return t.length?void c(t,r,function(t,e){var r=e.reduce(function(t,e){var n;return n=\"string\"==typeof e?e.length:e.byteLength,t+n.toString().length+n+2},0),o=new Uint8Array(r),i=0;return e.forEach(function(t){var e=\"string\"==typeof t,n=t;if(e){for(var r=new Uint8Array(t.length),s=0;s<t.length;s++)r[s]=t.charCodeAt(s);n=r.buffer}e?o[i++]=0:o[i++]=1;for(var a=n.byteLength.toString(),s=0;s<a.length;s++)o[i++]=parseInt(a[s]);o[i++]=255;for(var r=new Uint8Array(n),s=0;s<r.length;s++)o[i++]=r[s]}),n(o.buffer)}):n(new ArrayBuffer(0))},e.encodePayloadAsBlob=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){var e=new Uint8Array(1);if(e[0]=1,\"string\"==typeof t){for(var r=new Uint8Array(t.length),o=0;o<t.length;o++)r[o]=t.charCodeAt(o);t=r.buffer,e[0]=0}for(var i=t instanceof ArrayBuffer?t.byteLength:t.size,s=i.toString(),a=new Uint8Array(s.length+1),o=0;o<s.length;o++)a[o]=parseInt(s[o]);if(a[s.length]=255,k){var c=new k([e.buffer,a.buffer,t]);n(null,c)}})}c(t,r,function(t,e){return n(new k(e))})},e.decodePayloadAsBinary=function(t,n,r){\"function\"==typeof n&&(r=n,n=null);for(var o=t,i=[];o.byteLength>0;){for(var s=new Uint8Array(o),a=0===s[0],c=\"\",u=1;255!==s[u];u++){if(c.length>310)return r(w,0,1);c+=s[u]}o=f(o,2+c.length),c=parseInt(c);var p=f(o,0,c);if(a)try{p=String.fromCharCode.apply(null,new Uint8Array(p))}catch(h){var l=new Uint8Array(p);p=\"\";for(var u=0;u<l.length;u++)p+=String.fromCharCode(l[u])}i.push(p),o=f(o,c)}var d=i.length;i.forEach(function(t,o){r(e.decodePacket(t,n,!0),o,d)})}}).call(e,function(){return this}())},function(t,e){t.exports=Object.keys||function(t){var e=[],n=Object.prototype.hasOwnProperty;for(var r in t)n.call(t,r)&&e.push(r);return e}},function(t,e,n){(function(e){function r(t){if(!t||\"object\"!=typeof t)return!1;if(o(t)){for(var n=0,i=t.length;n<i;n++)if(r(t[n]))return!0;return!1}if(\"function\"==typeof e.Buffer&&e.Buffer.isBuffer&&e.Buffer.isBuffer(t)||\"function\"==typeof e.ArrayBuffer&&t instanceof ArrayBuffer||s&&t instanceof Blob||a&&t instanceof File)return!0;if(t.toJSON&&\"function\"==typeof t.toJSON&&1===arguments.length)return r(t.toJSON(),!0);for(var c in t)if(Object.prototype.hasOwnProperty.call(t,c)&&r(t[c]))return!0;return!1}var o=n(10),i=Object.prototype.toString,s=\"function\"==typeof e.Blob||\"[object BlobConstructor]\"===i.call(e.Blob),a=\"function\"==typeof e.File||\"[object FileConstructor]\"===i.call(e.File);t.exports=r}).call(e,function(){return this}())},function(t,e){t.exports=function(t,e,n){var r=t.byteLength;if(e=e||0,n=n||r,t.slice)return t.slice(e,n);if(e<0&&(e+=r),n<0&&(n+=r),n>r&&(n=r),e>=r||e>=n||0===r)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(n-e),s=e,a=0;s<n;s++,a++)i[a]=o[s];return i.buffer}},function(t,e){function n(t,e,n){function o(t,r){if(o.count<=0)throw new Error(\"after called too many times\");--o.count,t?(i=!0,e(t),e=n):0!==o.count||i||e(null,r)}var i=!1;return n=n||r,o.count=t,0===t?e():o}function r(){}t.exports=n},function(t,e,n){var r;(function(t,o){!function(i){function s(t){for(var e,n,r=[],o=0,i=t.length;o<i;)e=t.charCodeAt(o++),e>=55296&&e<=56319&&o<i?(n=t.charCodeAt(o++),56320==(64512&n)?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--)):r.push(e);return r}function a(t){for(var e,n=t.length,r=-1,o=\"\";++r<n;)e=t[r],e>65535&&(e-=65536,o+=w(e>>>10&1023|55296),e=56320|1023&e),o+=w(e);return o}function c(t,e){if(t>=55296&&t<=57343){if(e)throw Error(\"Lone surrogate U+\"+t.toString(16).toUpperCase()+\" is not a scalar value\");return!1}return!0}function u(t,e){return w(t>>e&63|128)}function p(t,e){if(0==(4294967168&t))return w(t);var n=\"\";return 0==(4294965248&t)?n=w(t>>6&31|192):0==(4294901760&t)?(c(t,e)||(t=65533),n=w(t>>12&15|224),n+=u(t,6)):0==(4292870144&t)&&(n=w(t>>18&7|240),n+=u(t,12),n+=u(t,6)),n+=w(63&t|128)}function h(t,e){e=e||{};for(var n,r=!1!==e.strict,o=s(t),i=o.length,a=-1,c=\"\";++a<i;)n=o[a],c+=p(n,r);return c}function f(){if(b>=v)throw Error(\"Invalid byte index\");var t=255&g[b];if(b++,128==(192&t))return 63&t;throw Error(\"Invalid continuation byte\")}function l(t){var e,n,r,o,i;if(b>v)throw Error(\"Invalid byte index\");if(b==v)return!1;if(e=255&g[b],b++,0==(128&e))return e;if(192==(224&e)){if(n=f(),i=(31&e)<<6|n,i>=128)return i;throw Error(\"Invalid continuation byte\")}if(224==(240&e)){if(n=f(),r=f(),i=(15&e)<<12|n<<6|r,i>=2048)return c(i,t)?i:65533;throw Error(\"Invalid continuation byte\")}if(240==(248&e)&&(n=f(),r=f(),o=f(),i=(7&e)<<18|n<<12|r<<6|o,i>=65536&&i<=1114111))return i;throw Error(\"Invalid UTF-8 detected\")}function d(t,e){e=e||{};var n=!1!==e.strict;g=s(t),v=g.length,b=0;for(var r,o=[];(r=l(n))!==!1;)o.push(r);return a(o)}var y=\"object\"==typeof e&&e,m=(\"object\"==typeof t&&t&&t.exports==y&&t,\"object\"==typeof o&&o);m.global!==m&&m.window!==m||(i=m);var g,v,b,w=String.fromCharCode,k={version:\"2.1.2\",encode:h,decode:d};r=function(){return k}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))}(this)}).call(e,n(27)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){\"use strict\";for(var t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n=new Uint8Array(256),r=0;r<t.length;r++)n[t.charCodeAt(r)]=r;e.encode=function(e){var n,r=new Uint8Array(e),o=r.length,i=\"\";for(n=0;n<o;n+=3)i+=t[r[n]>>2],i+=t[(3&r[n])<<4|r[n+1]>>4],i+=t[(15&r[n+1])<<2|r[n+2]>>6],i+=t[63&r[n+2]];return o%3===2?i=i.substring(0,i.length-1)+\"=\":o%3===1&&(i=i.substring(0,i.length-2)+\"==\"),i},e.decode=function(t){var e,r,o,i,s,a=.75*t.length,c=t.length,u=0;\"=\"===t[t.length-1]&&(a--,\"=\"===t[t.length-2]&&a--);var p=new ArrayBuffer(a),h=new Uint8Array(p);for(e=0;e<c;e+=4)r=n[t.charCodeAt(e)],o=n[t.charCodeAt(e+1)],i=n[t.charCodeAt(e+2)],s=n[t.charCodeAt(e+3)],h[u++]=r<<2|o>>4,h[u++]=(15&o)<<4|i>>2,h[u++]=(3&i)<<6|63&s;return p}}()},function(t,e){(function(e){function n(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.buffer instanceof ArrayBuffer){var r=n.buffer;if(n.byteLength!==r.byteLength){var o=new Uint8Array(n.byteLength);o.set(new Uint8Array(r,n.byteOffset,n.byteLength)),r=o.buffer}t[e]=r}}}function r(t,e){e=e||{};var r=new i;n(t);for(var o=0;o<t.length;o++)r.append(t[o]);return e.type?r.getBlob(e.type):r.getBlob()}function o(t,e){return n(t),new Blob(t,e||{})}var i=e.BlobBuilder||e.WebKitBlobBuilder||e.MSBlobBuilder||e.MozBlobBuilder,s=function(){try{var t=new Blob([\"hi\"]);return 2===t.size}catch(e){return!1}}(),a=s&&function(){try{var t=new Blob([new Uint8Array([1,2])]);return 2===t.size}catch(e){return!1}}(),c=i&&i.prototype.append&&i.prototype.getBlob;t.exports=function(){return s?a?e.Blob:o:c?r:void 0}()}).call(e,function(){return this}())},function(t,e){e.encode=function(t){var e=\"\";for(var n in t)t.hasOwnProperty(n)&&(e.length&&(e+=\"&\"),e+=encodeURIComponent(n)+\"=\"+encodeURIComponent(t[n]));return e},e.decode=function(t){for(var e={},n=t.split(\"&\"),r=0,o=n.length;r<o;r++){var i=n[r].split(\"=\");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}},function(t,e){t.exports=function(t,e){var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e){\"use strict\";function n(t){var e=\"\";do e=s[t%a]+e,t=Math.floor(t/a);while(t>0);return e}function r(t){var e=0;for(p=0;p<t.length;p++)e=e*a+c[t.charAt(p)];return e}function o(){var t=n(+new Date);return t!==i?(u=0,i=t):t+\".\"+n(u++)}for(var i,s=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\".split(\"\"),a=64,c={},u=0,p=0;p<a;p++)c[s[p]]=p;o.encode=n,o.decode=r,t.exports=o},function(t,e,n){(function(e){function r(){}function o(t){i.call(this,t),this.query=this.query||{},a||(e.___eio||(e.___eio=[]),a=e.___eio),this.index=a.length;var n=this;a.push(function(t){n.onData(t)}),this.query.j=this.index,e.document&&e.addEventListener&&e.addEventListener(\"beforeunload\",function(){n.script&&(n.script.onerror=r)},!1)}var i=n(19),s=n(31);t.exports=o;var a,c=/\\n/g,u=/\\\\n/g;s(o,i),o.prototype.supportsBinary=!1,o.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),i.prototype.doClose.call(this)},o.prototype.doPoll=function(){var t=this,e=document.createElement(\"script\");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),e.async=!0,e.src=this.uri(),e.onerror=function(e){t.onError(\"jsonp poll error\",e)};var n=document.getElementsByTagName(\"script\")[0];n?n.parentNode.insertBefore(e,n):(document.head||document.body).appendChild(e),this.script=e;var r=\"undefined\"!=typeof navigator&&/gecko/i.test(navigator.userAgent);r&&setTimeout(function(){var t=document.createElement(\"iframe\");document.body.appendChild(t),document.body.removeChild(t)},100)},o.prototype.doWrite=function(t,e){function n(){r(),e()}function r(){if(o.iframe)try{o.form.removeChild(o.iframe)}catch(t){o.onError(\"jsonp polling iframe removal error\",t)}try{var e='<iframe src=\"javascript:0\" name=\"'+o.iframeId+'\">';i=document.createElement(e)}catch(t){i=document.createElement(\"iframe\"),i.name=o.iframeId,i.src=\"javascript:0\"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement(\"form\"),a=document.createElement(\"textarea\"),p=this.iframeId=\"eio_iframe_\"+this.index;s.className=\"socketio\",s.style.position=\"absolute\",s.style.top=\"-1000px\",s.style.left=\"-1000px\",s.target=p,s.method=\"POST\",s.setAttribute(\"accept-charset\",\"utf-8\"),a.name=\"d\",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),r(),t=t.replace(u,\"\\\\\\n\"),this.area.value=t.replace(c,\"\\\\n\");try{this.form.submit()}catch(h){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){\"complete\"===o.iframe.readyState&&n()}:this.iframe.onload=n}}).call(e,function(){return this}())},function(t,e,n){(function(e){function r(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=h&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(l=o),i.call(this,t)}var o,i=n(20),s=n(21),a=n(30),c=n(31),u=n(32),p=n(3)(\"engine.io-client:websocket\"),h=e.WebSocket||e.MozWebSocket;if(\"undefined\"==typeof window)try{o=n(35)}catch(f){}var l=h;l||\"undefined\"!=typeof window||(l=o),t.exports=r,c(r,i),r.prototype.name=\"websocket\",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,n={agent:this.agent,perMessageDeflate:this.perMessageDeflate};n.pfx=this.pfx,n.key=this.key,n.passphrase=this.passphrase,n.cert=this.cert,n.ca=this.ca,n.ciphers=this.ciphers,n.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(n.headers=this.extraHeaders),this.localAddress&&(n.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new l(t,e):new l(t):new l(t,e,n)}catch(r){return this.emit(\"error\",r)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType=\"nodebuffer\"):this.ws.binaryType=\"arraybuffer\",this.addEventListeners()}},r.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError(\"websocket error\",e)}},r.prototype.write=function(t){function n(){r.emit(\"flush\"),setTimeout(function(){r.writable=!0,r.emit(\"drain\")},0)}var r=this;this.writable=!1;for(var o=t.length,i=0,a=o;i<a;i++)!function(t){s.encodePacket(t,r.supportsBinary,function(i){if(!r.usingBrowserWebSocket){var s={};if(t.options&&(s.compress=t.options.compress),r.perMessageDeflate){var a=\"string\"==typeof i?e.Buffer.byteLength(i):i.length;a<r.perMessageDeflate.threshold&&(s.compress=!1)}}try{r.usingBrowserWebSocket?r.ws.send(i):r.ws.send(i,s)}catch(c){p(\"websocket closed before onclose event\")}--o||n()})}(t[i])},r.prototype.onClose=function(){i.prototype.onClose.call(this)},r.prototype.doClose=function(){\"undefined\"!=typeof this.ws&&this.ws.close()},r.prototype.uri=function(){var t=this.query||{},e=this.secure?\"wss\":\"ws\",n=\"\";this.port&&(\"wss\"===e&&443!==Number(this.port)||\"ws\"===e&&80!==Number(this.port))&&(n=\":\"+this.port),this.timestampRequests&&(t[this.timestampParam]=u()),this.supportsBinary||(t.b64=1),t=a.encode(t),t.length&&(t=\"?\"+t);var r=this.hostname.indexOf(\":\")!==-1;return e+\"://\"+(r?\"[\"+this.hostname+\"]\":this.hostname)+n+this.path+t},r.prototype.check=function(){return!(!l||\"__initialize\"in l&&this.name===r.prototype.name)}}).call(e,function(){return this}())},function(t,e){},function(t,e){var n=[].indexOf;t.exports=function(t,e){if(n)return t.indexOf(e);for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}},function(t,e,n){\"use strict\";function r(t,e,n){this.io=t,this.nsp=e,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.flags={},n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(7),s=n(8),a=n(38),c=n(39),u=n(40),p=n(3)(\"socket.io-client:socket\"),h=n(30),f=n(23);t.exports=e=r;var l={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},d=s.prototype.emit;s(r.prototype),r.prototype.subEvents=function(){if(!this.subs){var t=this.io;this.subs=[c(t,\"open\",u(this,\"onopen\")),c(t,\"packet\",u(this,\"onpacket\")),c(t,\"close\",u(this,\"onclose\"))]}},r.prototype.open=r.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),\"open\"===this.io.readyState&&this.onopen(),this.emit(\"connecting\"),this)},r.prototype.send=function(){var t=a(arguments);return t.unshift(\"message\"),this.emit.apply(this,t),this},r.prototype.emit=function(t){if(l.hasOwnProperty(t))return d.apply(this,arguments),this;var e=a(arguments),n={type:(void 0!==this.flags.binary?this.flags.binary:f(e))?i.BINARY_EVENT:i.EVENT,data:e};return n.options={},n.options.compress=!this.flags||!1!==this.flags.compress,\"function\"==typeof e[e.length-1]&&(p(\"emitting packet with ack id %d\",this.ids),this.acks[this.ids]=e.pop(),n.id=this.ids++),this.connected?this.packet(n):this.sendBuffer.push(n),this.flags={},this},r.prototype.packet=function(t){t.nsp=this.nsp,this.io.packet(t)},r.prototype.onopen=function(){if(p(\"transport is open - connecting\"),\"/\"!==this.nsp)if(this.query){var t=\"object\"===o(this.query)?h.encode(this.query):this.query;p(\"sending connect packet with query %s\",t),this.packet({type:i.CONNECT,query:t})}else this.packet({type:i.CONNECT})},r.prototype.onclose=function(t){p(\"close (%s)\",t),this.connected=!1,this.disconnected=!0,delete this.id,this.emit(\"disconnect\",t)},r.prototype.onpacket=function(t){var e=t.nsp===this.nsp,n=t.type===i.ERROR&&\"/\"===t.nsp;if(e||n)switch(t.type){case i.CONNECT:this.onconnect();break;case i.EVENT:this.onevent(t);break;case i.BINARY_EVENT:this.onevent(t);break;case i.ACK:this.onack(t);break;case i.BINARY_ACK:this.onack(t);break;case i.DISCONNECT:this.ondisconnect();break;case i.ERROR:this.emit(\"error\",t.data)}},r.prototype.onevent=function(t){var e=t.data||[];p(\"emitting event %j\",e),null!=t.id&&(p(\"attaching ack callback to event\"),e.push(this.ack(t.id))),this.connected?d.apply(this,e):this.receiveBuffer.push(e)},r.prototype.ack=function(t){var e=this,n=!1;return function(){if(!n){n=!0;var r=a(arguments);p(\"sending ack %j\",r),e.packet({type:f(r)?i.BINARY_ACK:i.ACK,id:t,data:r})}}},r.prototype.onack=function(t){var e=this.acks[t.id];\"function\"==typeof e?(p(\"calling ack %s with %j\",t.id,t.data),e.apply(this,t.data),delete this.acks[t.id]):p(\"bad ack %s\",t.id)},r.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit(\"connect\"),this.emitBuffered()},r.prototype.emitBuffered=function(){var t;for(t=0;t<this.receiveBuffer.length;t++)d.apply(this,this.receiveBuffer[t]);for(this.receiveBuffer=[],t=0;t<this.sendBuffer.length;t++)this.packet(this.sendBuffer[t]);this.sendBuffer=[]},r.prototype.ondisconnect=function(){p(\"server disconnect (%s)\",this.nsp),this.destroy(),this.onclose(\"io server disconnect\")},r.prototype.destroy=function(){if(this.subs){for(var t=0;t<this.subs.length;t++)this.subs[t].destroy();this.subs=null}this.io.destroy(this)},r.prototype.close=r.prototype.disconnect=function(){return this.connected&&(p(\"performing disconnect (%s)\",this.nsp),this.packet({type:i.DISCONNECT})),this.destroy(),this.connected&&this.onclose(\"io client disconnect\"),this},r.prototype.compress=function(t){return this.flags.compress=t,this},r.prototype.binary=function(t){return this.flags.binary=t,this}},function(t,e){function n(t,e){var n=[];e=e||0;for(var r=e||0;r<t.length;r++)n[r-e]=t[r];return n}t.exports=n},function(t,e){\"use strict\";function n(t,e,n){return t.on(e,n),{destroy:function(){t.removeListener(e,n)}}}t.exports=n},function(t,e){var n=[].slice;t.exports=function(t,e){if(\"string\"==typeof e&&(e=t[e]),\"function\"!=typeof e)throw new Error(\"bind() requires a function\");var r=n.call(arguments,2);return function(){return e.apply(t,r.concat(n.call(arguments)))}}},function(t,e){function n(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=n,n.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-n:t+n}return 0|Math.min(t,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(t){this.ms=t},n.prototype.setMax=function(t){this.max=t},n.prototype.setJitter=function(t){this.jitter=t}}])});\n//# sourceMappingURL=socket.io.js.map"
  },
  {
    "path": "thisMyPCApp/html/index.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"UTF-8\">\n    <title>ThisMyPC</title>\n    <!-- Bootstrap core CSS -->\n    <link href=\"../assets/libs/bootstrap/bootstrap.min.css\" rel=\"stylesheet\">\n    <!-- Custom styles for this template -->\n    <link href=\"../assets/css/home.css\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.5.0/css/all.css\"\n        integrity=\"sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU\" crossorigin=\"anonymous\">\n    <script src=\"../assets/libs/socket.io.js\"></script>\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"../assets/icon/logo.ico\">\n</head>\n\n<body>\n    <section>\n        <div class=\"container-fluid\">\n            <nav class=\"navbar navbar-expand-lg navbar-light nav-bar-bg\">\n                <a class=\"navbar-brand\" href=\"#\" style=\"cursor:default;\"><img class=\"logo\"\n                        src=\"../assets/images/logo/logo.png\" alt=\"logo\"> \n                </a>\n                <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarText\"\n                    aria-controls=\"navbarText\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n                    <span class=\"navbar-toggler-icon\"></span>\n                </button>\n                <div class=\"collapse navbar-collapse\" id=\"navbarText\">\n                    <ul class=\"navbar-nav mr-auto\">\n                    </ul>\n                    <span class=\"navbar-text\">\n                        <ul class=\"navbar-nav mr-auto\">\n                            <li class=\"nav-item active\">\n                                <div class=\"nav-link mouse\">\n                                    <div class=\"dropdown\">\n                                        <div id=\"dropdownMenuButton\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\n                                            aria-expanded=\"false\">\n                                            Welcome back, <span id=\"userName\"></span>! <i class=\"fas fa-angle-down\"></i>\n                                        </div>\n                                        <div class=\"dropdown-menu dropdown-menu-right system-font\"\n                                            aria-labelledby=\"dropdownMenuButton\">\n                                            <!--\n                  <div class=\"dropdown-divider\"></div>-->\n                                            <a class=\"dropdown-item\" href=\"#\" data-toggle=\"modal\"\n                                                data-target=\"#logout\">Logout</a>\n                                        </div>\n                                    </div>\n                                </div>\n                            </li>\n                        </ul>\n                    </span>\n                </div>\n            </nav>\n            <div class=\"row\">\n                <div class=\"col-md-12\" id=\"notifications_live\"></div>\n                <div class=\"col-md-12 top_alert_position\" id=\"notifications_api\">\n                </div>\n                <div class=\"col-md-12\">\n                    <div class=\"row\">\n                        <div class=\"col-xl-12\">\n                            <div class=\"row\">\n                                <div class=\"col-xl-4 col-md-4\">\n                                    <div class=\"box\">\n                                        <div class=\"card-subtitle font-weight-normal  text-muted\">Remote User</div>\n                                        <span id=\"remoteUserBox\">\n                                            <div class=\"font-weight-bolder\">User Not Available</div>\n                                        </span>\n                                    </div>\n                                </div>\n                                <div class=\"col-xl-4 col-md-4\"></div>\n                                <div class=\"col-xl-4 col-md-4\"></div>\n                            </div>\n                        </div>\n                        <div class=\"col-xl-12\">\n                            <span>\n                                <h3 class=\"mt-5 font-weight-light text-center\">More Option Coming Soon..</h3>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </section>\n    <!-- Modal -->\n    <!-- Modal -->\n    <div class=\"modal fade\" id=\"logout\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLabel\"\n        aria-hidden=\"true\">\n        <div class=\"modal-dialog\" role=\"document\">\n            <div class=\"modal-content\">\n                <div class=\"modal-header\">\n                    <h5 class=\"modal-title\" id=\"exampleModalLabel\">LogOut</h5>\n                    <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                        <span aria-hidden=\"true\">&times;</span>\n                    </button>\n                </div>\n                <div class=\"modal-body\">\n                    Are you sure you want to log out?\n                </div>\n                <div class=\"modal-footer\">\n                    <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Close\n                    </button>\n                    <button type=\"button\" class=\"btn btn-primary\" id=\"submit-logout\">LogOut\n                    </button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <script src=\"../assets/js/home.js\"></script>\n    <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js\"\n        integrity=\"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl\" crossorigin=\"anonymous\">\n        </script>\n</body>\n\n</html>"
  },
  {
    "path": "thisMyPCApp/html/login.html",
    "content": "<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n    <!-- Bootstrap core CSS -->\n    <link href=\"../assets/libs/bootstrap/bootstrap.min.css\" rel=\"stylesheet\">\n    <!-- Custom styles for this template -->\n    <link href=\"../assets/css/login.css\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.5.0/css/all.css\"\n    integrity=\"sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU\" crossorigin=\"anonymous\">\n    <script type=\"text/javascript\" src=\"../assets/libs/jquery-3.3.1.min.js\"></script>\n    <script src=\"../assets/libs/socket.io.js\"></script>\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"../assets/icon/logo.ico\">\n</head>\n\n<body>\n    <div class=\"container-fluid\">\n        <div class=\"row\">\n            <div class=\"col-xl-12 mt-5 text-center main_text\">ThisMyPC is a next-generation open source solution for remote computer.</div>\n        </div>\n        <div class=\"modal\" style=\"display: block;\">\n            <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-body\">\n                        <div class=\"row\">\n                            <div class=\"col-xl-12 text-center\">\n                                <img class=\"logo-modal\" src=\"../assets/images/logo/logo.png\" alt=\"logo\">\n                            </div>\n                            <div class=\"col-xl-12\">\n                                <form>\n                                    <div class=\"row\">\n                                        <div class=\"col-xl-12 form-col\" id=\"error-massage\">\n                                        </div>\n                                        <div class=\"col-xl-12 form-col\"><input type=\"text\" class=\"type-text\"\n                                                id=\"inputEmail\" placeholder=\"Email Address\" name=\"email\" required></div>\n                                        <div class=\"col-xl-12 form-col\"><input type=\"password\" class=\"type-text\"\n                                                id=\"inputPassword\" placeholder=\"Password\" name=\"password\" required>\n                                        </div>\n                                        <div class=\"col-xl-12 form-col\">\n                                            <button type=\"button\" class=\"btn btn-primary w-100 blue-btn \"\n                                                id=\"submit-login\">Login\n                                            </button>\n                                        </div>\n                                    </div>\n                                </form>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <script src=\"../assets/js/login.js\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "thisMyPCApp/log.txt",
    "content": "Some log\n"
  },
  {
    "path": "thisMyPCApp/main.js",
    "content": "'use strict';\nconst {\n  app,\n  BrowserWindow,\n  ipcMain,\n} = require('electron');\n// reload  application   while   coding\nrequire('electron-reload')(__dirname);\n// Keep a global reference of the window object, if you don't, the window will\n// be closed automatically when the JavaScript object is garbage collected.\nlet win;\n\n/**\n * Creat Window\n */\nfunction createWindow() {\n  // Create the browser window.\n  win = new BrowserWindow({\n    height: 600,\n    minHeight: 500,\n    minWidth: 500,\n    width: 900,\n    icon: 'assets/images/logo/logo-icon.png',\n    show: false,\n    /* , frame: false*/\n  });\n  // and load the index.html of the app.\n  win.loadFile('html/login.html');\n  // Open the DevTools.\nwin.webContents.openDevTools();\n\n  win.setMenu(null);\n  win.once('ready-to-show', () => {\n    win.show();\n  });\n}\n/**\n * Open System Page\n */\nipcMain.on('systemPage', () => {\n  win.loadFile('html/index.html');\n});\n\n/**\n * Open login Page\n */\nipcMain.on('loginPage', () => {\n  win.loadFile('html/login.html');\n});\n// This method will be called when Electron has finished\n// initialization and is ready to create browser windows.\n// Some APIs can only be used after this event occurs.\napp.on('ready', createWindow);\n// Quit when all windows are closed.\napp.on('window-all-closed', () => {\n  // On macOS it is common for applications and their menu bar\n  // to stay active until the user quits explicitly with Cmd + Q\n  if (process.platform !== 'darwin') {\n    app.quit();\n  }\n});\napp.on('activate', () => {\n  // On macOS it's common to re-create a window in the app when the\n  // dock icon is clicked and there are no other windows open.\n  if (win === null) {\n    createWindow();\n  }\n});\n// In this file you can include the rest of your app's specific main process\n// code. You can also put them in separate files and require them here.\n"
  },
  {
    "path": "thisMyPCApp/package.json",
    "content": "{\n  \"name\": \"ThisMyPC\",\n  \"version\": \"0.2.0\",\n  \"description\": \"This is Electron JS ,Node JS and Angular project (ThisMyPC)\",\n  \"main\": \"main.js\",\n  \"scripts\": {\n    \"start\": \"electron .\",\n    \"windose\": \"electron-packager . --asar --icon=assets/icon/logo.ico\",\n    \"package-win\": \"electron-packager . ThisMyPC --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icon/logo.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\\\"ThisMyPC\\\"\",\n    \"pack\": \"electron-builder --dir\",\n    \"dist\": \"electron-builder\"\n  },\n  \"author\": \"Supun Lakmal\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"@types/socket.io-client\": \"^1.4.32\",\n    \"electron\": \"^7.2.4\",\n    \"electron-builder\": \"^20.39.0\",\n    \"electron-packager\": \"^12.2.0\",\n    \"electron-winstaller\": \"^2.7.0\",\n    \"eslint\": \"^5.16.0\",\n    \"eslint-config-google\": \"^0.13.0\",\n    \"socket.io-client\": \"^2.2.0\"\n  },\n  \"dependencies\": {\n    \"electron-reload\": \"^1.5.0\",\n    \"electron-updater\": \"^4.0.6\",\n    \"file-api\": \"^0.10.4\",\n    \"fs-extra\": \"^7.0.1\",\n    \"hdd-space\": \"^1.2.0\",\n    \"jquery\": \"^3.5.0\",\n    \"junk\": \"^2.1.0\",\n    \"node-fetch\": \"^2.6.1\",\n    \"node-machine-id\": \"^1.1.10\",\n    \"screenshot-desktop\": \"^1.10.0\",\n    \"socket.io-stream\": \"^0.9.1\",\n    \"split-file\": \"^2.1.1\"\n  },\n  \"build\": {\n    \"appId\": \"com.thismypc.thismypc\",\n    \"productName\": \"This My PC\",\n    \"copyright\": \"Copyright © 2019 ${author}\",\n    \"target\": \"NSIS\",\n    \"directories\": {\n      \"output\": \"build\"\n    },\n    \"nsis\": {\n      \"allowToChangeInstallationDirectory\": true,\n      \"oneClick\": false\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCApp/setup.js",
    "content": "var electronInstaller = require('electron-winstaller');\nresultPromise = electronInstaller.createWindowsInstaller({\n    appDirectory: 'release-builds/ThisMyPC-win32-ia32',\n    outputDirectory: '',\n    authors: 'ThisMyPC',\n    exe: 'ThisMyPC.exe',\n\n});\n\nresultPromise.then(() => console.log(\"It worked!\"), (e) => console.log(`No dice: ${e.message}`));"
  },
  {
    "path": "thisMyPCServer/.eslintrc.js",
    "content": "module.exports = {\n  'env': {\n    'commonjs': true,\n    'es6': true,\n    'node': true,\n  },\n  'extends': 'google',\n  'globals': {\n    'Atomics': 'readonly',\n    'SharedArrayBuffer': 'readonly',\n  },\n  'parserOptions': {\n    'ecmaVersion': 2018,\n  },\n  'rules': {\n  },\n};\n"
  },
  {
    "path": "thisMyPCServer/.gitignore",
    "content": "node_modules/\n"
  },
  {
    "path": "thisMyPCServer/components/api.components.js",
    "content": "\n\n/**\n * User Class\n */\nclass ApiComponent {\n  constructor() {\n\n  }\n\n  respond(type, msg, data) {\n    const res = {};\n    res.data = data;\n    res.message = msg;\n    res.status = type;\n    return res;\n  }\n}\nmodule.exports = ApiComponent;\n"
  },
  {
    "path": "thisMyPCServer/components/computer.components.js",
    "content": "/**\n * User Module\n */\nconst PC = require('../models/pc');\nconst UserComponent = require('./user.components');\n// md5 encrypt\nconst md5 = require('js-md5');\n/**\n * User Class\n */\nclass ComputerComponent extends UserComponent {\n  constructor() {\n    super();\n    this.computerDbObject ={};\n    this.computer={};\n  }\n  deconstructionComputerObject() {\n    this.computerDbObject ={};\n    this.computer={};\n  }\n  async getComputerDataFromDBUsingUserID(userID) {\n    this.deconstructionComputerObject();\n    this.computerDbObject = await PC.getUser(userID);\n    return this;\n  }\n  /**\n * Get Computer information user ID and  computer Key\n */\n  async getComputerDataFromDBUsingUserIdAndComputerKey(userID, computerKey) {\n    this.deconstructionComputerObject();\n    this.computerDbObject = PC.getPCByUserIDAndPCKey(computerKey, userID);\n    return this;\n  }\n /**\n  * Get computer  Key\n  */\n  getComputerKey() {\n    this.computer.computerKey = this.computerDbObject.pcKey;\n    return this;\n  }\n  /**\n   * User ID\n   */\n  getUserID() {}\n  /**\n   * Computer  public access key that  alow to other user can use computer\n   */\n  getPublicAccessKey() {\n    this.computer.publicAccessKey = this.computerDbObject.publicAccessKey;\n    return this;\n  }\n  /**\n   * Public access status\n   */\n  getPublicAccessStatus() {}\n  /**\n   * Computer Name\n   */\n  getPcName() {}\n  /**\n   * Computer Platform\n   */\n  getPlatform() {}\n  /**\n   * Is  computer online\n   */\n  getPcOnline() {}\n  /**\n   * get computer authentication\n   */\n  getComputerAuthentication() {\n    this.computer.authentication_key = this.computerDbObject.authApp;\n    return this;\n  }\n  /**\n * Get  computer  user  information\n */\n  async getComputerUserInformation(userID) {\n    const userInformation = new UserComponent();\n    await userInformation.getUserDataFromDB(userID);\n    this.computer.userID = userInformation.userID('get');\n    this.computer.firstName = userInformation.userFirstName('get');\n    this.computer.lastName = userInformation.userLastName('get');\n    this.computer.email = userInformation.userEmail('get');\n    return this;\n  }\n  /**\n   *\n   * @param {Object} res\n   * @param {String} userID\n   * @param {String} authentication_key\n   * @param {String} computerKey\n   */\n  async authentication(res, userID, authentication_key, computerKey) {\n    if (!await PC.authApp(userID, authentication_key, computerKey)) {\n      res.status(401);\n      return res.json(this.respond(false, 'Invalid User', null));\n    }\n  }\n  /**\n   *\n   * @param {object} user  user information\n   * @param {*} pcKey  Computer key\n   * @return {object} new auth key\n   */\n  async updateAppUserAuth(user, pcKey) {\n    this.deconstructionComputerObject();\n    const date = new Date();\n    const input = {};\n    input.auth = md5(user._id + date + pcKey);\n    input.id = user._id;\n    const updateUserAuthApp = await PC.updateUserAuthApp(pcKey, input, {\n      new: true,\n    });\n    this.computerDbObject = updateUserAuthApp;\n  }\n  /**\n   * Get computer information\n   */\n  getComputer() {\n    return this.computer;\n  }\n\n  /**\n   * Get computer information\n   */\n  setComputer(data) {\n    this.deconstructionComputerObject();\n    this.computerDbObject = data;\n  }\n}\nmodule.exports = ComputerComponent;\n"
  },
  {
    "path": "thisMyPCServer/components/logger.js",
    "content": "'use strict';\n\n/**\n*  log class\n*  pattern - Singletons\n*/\nclass Logger {\n  /**\n  * @param {object} message\n  */\n  log(message) {\n    const timestamp = new Date().toISOString();\n    console.log(`${timestamp} - ${message}`);\n  }\n}\nmodule.exports = new Logger();\n"
  },
  {
    "path": "thisMyPCServer/components/user.components.js",
    "content": "/**\n * User Module\n */\nconst User = require('../models/user');\nconst ApiComponent = require('./api.components');\n/**\n * User Class\n */\nclass UserComponent extends ApiComponent {\n  constructor() {\n    super();\n    this.userDbObject = {};\n    this.user = {};\n  }\n  /**\n * Deconstruction user and  class object\n */\n  deconstructionUserObject() {\n    this.userDbObject = {};\n    this.user = {};\n    return this;\n  }\n  /**\n   * get User Data from DB\n   *\n   * @param {String} userID\n   */\n  async getUserDataFromDB(userID) {\n    this.deconstructionUserObject();\n    this.userDbObject = await User.getUser(userID);\n    return this;\n  }\n  /**\n   * Set User data from out side to class\n   *\n   * @param {Object} userData\n   */\n  setUserDataToClass(userData) {\n    this.deconstructionUserObject();\n    this.userDbObject = userData;\n    return this;\n  }\n  /**\n   * Get all user data\n   */\n  allUserData() {\n    return this.userDbObject;\n  }\n  /**\n * User first name\n */\n  userFirstName(type=false) {\n    this.user.firstName = this.userDbObject.name;\n    return type?this.userDbObject.name: this;\n  }\n  /**\n * User last name\n */\n  userLastName(type=false) {\n    this.user.lastName = this.userDbObject.nameLast;\n    return type?this.userDbObject.nameLast:this;\n  }\n  /**\n * User Email\n */\n  userEmail(type=false) {\n    this.user.email = this.userDbObject.email;\n    return type? this.userDbObject.email:this;\n  }\n  /**\n * User ID\n */\n  userID(type=false) {\n    this.user.userID = this.userDbObject._id;\n    return type? this.userDbObject._id:this;\n  }\n  /**\n   * Return constructed user Data\n   */\n  getUser() {\n    const userInformation = this.user;\n    this.user ={};\n    return userInformation;\n  }\n  /**\n   * get authentication data\n   */\n  getAuthenticationKey() {\n    this.user.authentication_key = this.userDbObject.auth;\n    return this;\n  }\n  /**\n *\n * @param {Object} res\n * @param {String} userID\n * @param {String} authentication_key\n */\n  async authentication(res, userID, authentication_key) {\n    if (!await User.authUser(userID, authentication_key)) {\n      res.status(401);\n      return res.json(this.respond(false, 'Invalid User', null));\n    }\n  }\n}\nmodule.exports = UserComponent;\n"
  },
  {
    "path": "thisMyPCServer/config/config.js",
    "content": "module.exports = {\n\tport:5000\n};\n"
  },
  {
    "path": "thisMyPCServer/config/db.js",
    "content": "let db = {\n  //Mongo DB\n  host: process.env.MONGO_DB_HOST, // web site  for  DB\n  dbName: process.env.MONGO_DB_NAME, //Data base name\n  password: process.env.MONGO_DB_PASSWORD,\n  user: process.env.MONGO_DB_USER,\n  mongodbType: process.env.MONGO_DB_TYPE, // atlas , localhost\n  parameter: \"?retryWrites=true&w=majority\", // parameters\n};\n\n// db connection Url\nlet url;\nif (db.mongodbType == \"atlas\") {\n  url = `mongodb+srv://${db.user}:${db.password}@${db.host}/${db.dbName}${db.parameter}`;\n}\n\nif (db.mongodbType == \"localhost\") {\n  url = `mongodb://${db.user}:${db.password}@${db.host}/${db.dbName}`;\n}\n\nmodule.exports = url;\n"
  },
  {
    "path": "thisMyPCServer/delete_code_from_index.txt",
    "content": "// admin module\nconst Admin = require('./models/admin');\n\n// this api  function    for  admin\n// create  app frp for app Store\napp.post('/admin/create/app', function(req, res) {\n  const limit = req.body.limit;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          const app = {};\n          app.appImageUrl = req.body.appImageUrl;\n          app.appInfo = req.body.appInfo;\n          app.appName = req.body.appName;\n          app.userID = req.body.userID;\n          app.version = req.body.version;\n          App.createApp(app, function(err, app) {});\n          res.status(200);\n          res.json(respond(true, 'Done', app));\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n// delete  app frp for app Store\napp.post('/admin/update/app/image', function(req, res) {\n  const id = req.body.id;\n  const image = req.files.image;\n  const imageName = image.name;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          const imagePath = 'assets/images/app/' + imageName;\n          image.mv('../' + imagePath, function(err) {\n            if (err) return res.status(500).send(err);\n            App.appImageUpdate(id, imagePath, {}, function(err, update) {});\n            res.status(200);\n            res.json(respond(true, 'Image Update Done', app));\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\napp.post('/admin/update/app', function(req, res) {\n  const id = req.body.id;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          App.appUpdateData(id, req.body, {}, function(err, data) {});\n          res.status(200);\n          res.json(respond(true, 'info Update Done', app));\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n// delete  app frp for app Store\napp.post('/admin/delete/app', function(req, res) {\n  const id = req.body.id;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          App.deleteApp(id, function(err, app) {});\n          res.status(200);\n          res.json(respond(true, 'Delete Done', app));\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n// get all  PC\napp.post('/admin/pc', function(req, res) {\n  const limit = req.body.limit;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          PC.getAllPC(limit, function(err, pc) {\n            if (user) {\n              res.status(200);\n              res.json(respond(true, 'All PC', pc));\n            } else {\n              res.status(401);\n              res.json(respond(false, 'Invalid User', null));\n            }\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n// get all  users\napp.post('/admin/users', function(req, res) {\n  const limit = req.body.limit;\n  const out = {};\n  out.auth = req.headers.token;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          User.getUsers(limit, function(err, user) {\n            if (user) {\n              res.status(200);\n              res.json(respond(true, 'All Users', user));\n            } else {\n              res.status(401);\n              res.json(respond(false, 'Invalid User', null));\n            }\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\napp.post('/admin/admin/create', function(req, res) {\n  const out = {};\n  out.auth = req.headers.token;\n  out.id = req.body.userID;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          Admin.searchAdmin(out.id, function(err, admin) {\n            if (!admin) {\n              Admin.createAdmin(out, function(err, admin) {\n                if (err) {\n                  throw err;\n                }\n                //  get user info  using   id\n                User.getUser(out.id, function(err, user) {\n                  if (user) {\n                    res.status(200);\n                    res.json(respond(true, ' New Admin', user));\n                  } else {\n                    res.status(401);\n                    res.json(respond(false, 'Invalid User', null));\n                  }\n                });\n              });\n            } else {\n              res.status(401);\n              res.json(respond(false, 'Admin  Already exit', null));\n            }\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\napp.post('/admin/user/status', function(req, res) {\n  const out = {};\n  out.auth = req.headers.token;\n  out.id = req.body.userID;\n  out.status = req.body.status;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          User.updateUserStatus(out.id, out, {}, function(err, user) {\n            User.getUser(out.id, function(err, userWithNewStatus) {\n              res.status(200);\n              res.json(respond(true, 'Status Update', userWithNewStatus));\n            });\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n//  create   software   version\napp.post('/admin/software/create', function(req, res) {\n  const out = {};\n  out.auth = req.headers.token;\n  out.status = req.body.status;\n  out.uID = req.headers.uid;\n  out.version = req.body.version;\n  out.versionKey = md5(req.body.version);\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          Software.getSoftware(out.versionKey, function(err, softwareIn) {\n            if (!softwareIn) {\n              Software.createSoftwareVersion(out, function(err, software) {\n                if (err) {\n                  throw err;\n                }\n                res.status(200);\n                res.json(respond(true, 'new Software ', software));\n              });\n            } else {\n              res.status(401);\n              res.json(respond(false, 'Software  Already exit', null));\n            }\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n//  get all   software   version\napp.post('/admin/software/all', function(req, res) {\n  const out = {};\n  out.auth = req.headers.token;\n  out.limit = req.body.limit;\n  out.uID = req.headers.uid;\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          Software.getSoftwares(out, function(err, software) {\n            res.status(200);\n            res.json(respond(software, true, 'All Software '));\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n// TODO  need to  complete\napp.post('/admin/software/notification', function(req, res) {\n  const out = {};\n  out.auth = req.headers.token;\n  out.status = req.body.status;\n  out.uID = req.headers.uid;\n  out.version = req.body.version;\n  out.versionKey = md5(req.body.version);\n  User.authUser(out.uID, out.auth, function(err, user) {\n    if (user) {\n      Admin.authAdmin(out.uID, function(err, admin) {\n        if (admin) {\n          Software.getSoftware(out.versionKey, function(err, softwareIn) {\n            if (!softwareIn) {\n              Software.createSoftwareVersion(out, function(err, software) {\n                if (err) {\n                  throw err;\n                }\n                res.status(200);\n                res.json(respond(true, 'new Software ', software));\n              });\n            } else {\n              res.status(401);\n              res.json(respond(false, 'Software  Already exit', null));\n            }\n          });\n        } else {\n          res.status(401);\n          res.json(respond(false, 'Authenticating Error Admin', null));\n        }\n      });\n    } else {\n      res.status(401);\n      res.json(respond(false, 'Authenticating Error', null));\n    }\n  });\n});\n\n\n  app.post('/pc/downloadFileRequest', function(req, res) {\n    const auth = req.headers.token;\n    const id = req.body.id;\n    const path = req.body.path;\n    const pcKeyPublic = req.body.pcKeyPublic;\n    User.authUser(id, auth, function(err, user) {\n      if (user) {\n        const output = {};\n        output.path = path;\n        getPCSocketID(user, pcKeyPublic, function(socket) {\n          io.sockets.to(socket).emit('downloadFileRequest', output);\n        });\n      }\n    });\n  });\n\n    // copy file  location ad paste file  location\n  socket.on('copyPasteToPC', function(input) {\n    const auth = input.auth;\n    const id = input.id;\n    User.authUser(id, auth, function(err, user) {\n      if (user) {\n        io.sockets.in(user.ioSocketID).emit('copyPasteToPCApp', input.data);\n      }\n    });\n  });\n  // copy  and paste  Done\n  socket.on('pasteDone', function(input) {\n    const auth = input.auth;\n    const id = input.id;\n    const pcKey = md5(input.pcKey);\n    PC.authApp(id, auth, pcKey, function(err, pc) {\n      User.getUser(id, function(err, user) {\n        if (user) {\n          roomID = user.ioSocketID;\n        }\n      });\n      if (pc) {\n        io.sockets.in(user.ioSocketID).emit('pasteDone', input.data);\n      }\n    });\n  });\n  // file  transfer\n  socket.on('uploadFileInfo_to_pc', function(input) {\n    const auth = input.auth;\n    const id = input.id;\n    User.authUser(id, auth, function(err, user) {\n      if (user) {\n        io.sockets.in(user.ioSocketID).emit('uploadFileInfo_from_web', input.data);\n      }\n    });\n  });\n  socket.on('uploadFile_chunk_to_pc', function(input) {\n    const auth = input.auth;\n    const id = input.id;\n    User.authUser(id, auth, function(err, user) {\n      if (user) {\n        io.sockets.in(user.ioSocketID).emit('uploadFile_chunk_from_web', input.data);\n      }\n    });\n  });\n  socket.on('fileSendingFromPc', function(input) {});"
  },
  {
    "path": "thisMyPCServer/example.env",
    "content": "MONGO_DB_HOST=\"\"\nMONGO_DB_NAME=\"\"\nMONGO_DB_PASSWORD=\"\"\nMONGO_DB_USER=\"\"\nMONGO_DB_TYPE=\"\"\n"
  },
  {
    "path": "thisMyPCServer/index.js",
    "content": "/*\n! TODO Do not send user auth key and other information to client side app\n*/\n\"use strict\";\nrequire(\"dotenv\").config();\n// https://javascript.info/async-await\nconst app = require(\"express\")();\nconst bodyParser = require(\"body-parser\");\n// MongoDb config variables\nconst db = require(\"./config/db\");\n// config  variables\nconst config = require(\"./config/config\");\n// const fileUpload = require('express-fileupload');\n// md5 encrypt\nconst md5 = require(\"js-md5\");\nconst mongoose = require(\"mongoose\");\n// validate inputs\nconst validator = require(\"validator\");\nconst graphqlHTTP = require(\"express-graphql\");\nconst { buildSchema } = require(\"graphql\");\n/**\n * components\n */\n// logger\nconst logger = require(\"./components/logger\");\n\n// MongoDB server connection Atlas\nmongoose.connect(`${db}`, {\n  useNewUrlParser: true,\n});\n// Set mongoose.Promise to any Promise implementation\nmongoose.Promise = Promise;\nconst http = require(\"http\").Server(app);\nconst io = require(\"socket.io\")(http);\n/**\n * REST api call  convert to  json object before send\n *\n * @param {object} type\n * @param {object} msg\n * @param {object} data\n * @return {object}\n */\nfunction respond(type, msg, data) {\n  const res = {};\n  res.data = data;\n  res.message = msg;\n  res.status = type;\n  return res;\n}\n/**\n * Mongo DB modules\n */\n// user module\nconst User = require(\"./models/user\");\n// software module\nconst Software = require(\"./models/software\");\n// pc  module\nconst PC = require(\"./models/pc\");\n// pc and user  module\nconst UserAndPC = require(\"./models/userAndPC\");\n// pc and PC Owner  module\nconst PcOwner = require(\"./models/PCOwner\");\napp.use(bodyParser.json());\napp.disable(\"x-powered-by\");\napp.use(function (req, res, next) {\n  res.header(\"Access-Control-Allow-Origin\", \"*\");\n  res.header(\n    \"Access-Control-Allow-Headers\",\n    \"Origin, X-Requested-With, Content-Type, Accept ,authentication_key ,userID\"\n  );\n  next();\n});\n/**\n * Import Component\n */\n/**\n * User Component\n */\nconst userComponent = require(\"./components/user.components\");\nconst computerComponent = require(\"./components/computer.components\");\n/**\n * GraphQL\n */\nconst schema = buildSchema(`\ntype Query {\n  user(userID: String!) : UserData,\n  userWebLogin(email:String! , password:String!) : userWebLoginData\n}\ntype userWebLoginData {\n  userID :String\n  firstName :String\n  lastName :String\n  email :String\n  authentication_key:String\n}\ntype UserData {\n  userID :String\n  firstName :String\n  lastName :String\n  email :String\n}\n`);\n/**\n * User login\n *\n * @param {Object} args\n */\nconst userWebLogin = async ({ email, password }) => {\n  // convert   password to  md54\n  password = md5(password);\n  const userLogin = await User.loginUser(email, password);\n  if (!userLogin) {\n    throw new Error(\"Invalid  User\");\n  }\n  const date = new Date();\n  userLogin.authentication_key = md5(userLogin._id + date);\n  const userClass = new userComponent();\n  await userClass.setUserDataToClass(\n    await User.updateUserAuth(userLogin._id, userLogin, {\n      new: true,\n    })\n  );\n  return userClass\n    .userEmail()\n    .userFirstName()\n    .userID()\n    .userLastName()\n    .getAuthenticationKey()\n    .getUser();\n};\n/**\n * User Information  by ID\n *\n * @param {object} args\n */\nconst getUserData = async (args, req) => {\n  const authentication_key = req.headers.authentication_key;\n  if (!(await User.authUser(args.userID, authentication_key))) {\n    throw new Error(\"Unauthenticated\");\n  }\n  const userID = args.userID;\n  const userClass = new userComponent();\n  await userClass.getUserDataFromDB(userID);\n  return userClass\n    .userEmail()\n    .userFirstName()\n    .userID()\n    .userLastName()\n    .getUser();\n};\n// Root resolver\nconst root = {\n  user: getUserData,\n  userWebLogin: userWebLogin,\n};\napp.use(\n  \"/api/v1/graphql\",\n  graphqlHTTP({\n    schema: schema,\n    rootValue: root,\n    graphiql: true,\n  })\n);\n// app.use(fileUpload());\n// server port ex-5000\nhttp.listen(process.env.PORT || config.port);\nlogger.log(`Sever start on Port ${config.port}`);\n/**\n * REST API V1\n */\n/**\n * API main end point\n */\napp.get(\"/api/\", async (req, res) => {\n  res.status(200).json(respond(true, \"REST API working\", null));\n});\n/**\n *  API variation end point\n */\napp.get(\"/api/v1/\", async (req, res) => {\n  res.status(200).json(respond(true, \"REST API working\", null));\n});\n/**\n * User information\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\n// TODO  authentication method\napp.get(\"/api/v1/user/:userID\", async (req, res) => {\n  // authentication  key from  headers\n  const authentication_key = req.headers.authentication_key;\n  // user ID\n  const userID = req.params.userID;\n  // user  class\n  const userClass = new userComponent();\n  const authentication = await userClass.authentication(\n    res,\n    userID,\n    authentication_key\n  );\n  if (authentication) {\n    return (res = authentication);\n  }\n  await userClass.getUserDataFromDB(userID);\n  userClass\n    .userID()\n    .userFirstName()\n    .userLastName()\n    .userEmail()\n    .getAuthenticationKey();\n  res.status(200).json(respond(true, \"User Information\", userClass.getUser()));\n});\n/**\n * User information\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\n// TODO  authentication method\napp.get(\"/api/v1/user/:userID/computer/:computerKey\", async (req, res) => {\n  // authentication  key from  headers\n  const authentication_key = req.headers.authentication_key;\n  // user ID\n  const userID = req.params.userID;\n  const computerKey = md5(req.params.computerKey);\n  const userClass = new userComponent();\n  const computerClass = new computerComponent();\n  const authentication = await computerClass.authentication(\n    res,\n    userID,\n    authentication_key,\n    computerKey\n  );\n  if (authentication) {\n    return (res = authentication);\n  }\n  // user Information\n  // user  class\n  await userClass.getUserDataFromDB(userID);\n  userClass\n    .userID()\n    .userFirstName()\n    .userLastName()\n    .userEmail()\n    .getAuthenticationKey();\n  res.status(200).json(respond(true, \"User Information\", userClass.getUser()));\n});\n/**\n * New user registration\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/register\", async (req, res) => {\n  const email = req.body.email;\n  const password = md5(req.body.password);\n  req.body.password = password;\n  const userData = req.body;\n  if (\n    req.body.email === \"\" ||\n    req.body.password === \"\" ||\n    req.body.firstName === \"\" ||\n    req.body.lastName === \"\"\n  ) {\n    res.status(401);\n    return res.json(\n      respond(false, \"username/password/first name/last name required\", null)\n    );\n  }\n  if (\n    !validator.isAlpha(req.body.firstName) ||\n    !validator.isAlpha(req.body.lastName)\n  ) {\n    res.status(401);\n    return res.json(\n      respond(false, \"First Name and Last Name need to be only string\", null)\n    );\n  }\n  if (!validator.isEmail(email)) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid Email\", null));\n  }\n  // search user by user name\n  const user = await User.searchEmailUser(email);\n  if (!user) {\n    const userClass = new userComponent();\n    // create  room id\n    const ioSocketID = md5(req.body.email + Date.now());\n    userData.ioSocketID = ioSocketID;\n    userData.authentication_key = md5(ioSocketID);\n    const newUser = await User.createUser(userData);\n    if (newUser) {\n      // user  class\n      userClass\n        .setUserDataToClass(newUser)\n        .userID()\n        .userFirstName()\n        .userLastName()\n        .userEmail()\n        .getAuthenticationKey();\n      res\n        .status(200)\n        .json(respond(true, \"User Information\", userClass.getUser()));\n    }\n  } else {\n    res.status(401);\n    res.json(respond(false, \"User  Already exit\", null));\n  }\n});\n/**\n * User logging {async}\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/login\", async (req, res) => {\n  const email = req.body.email;\n  const password = md5(req.body.password);\n  req.body.password = password;\n  if (req.body.email === \"\" || req.body.password === \"\") {\n    res.status(401);\n    return res.json(respond(false, \"username/password required\", null));\n  }\n  // wait till the promise resolves (*)\n  const userLogin = await User.loginUser(email, password);\n  if (userLogin) {\n    const userClass = new userComponent();\n    const date = new Date();\n    userLogin.authentication_key = md5(userLogin._id + date);\n    const user = await User.updateUserAuth(userLogin._id, userLogin, {\n      new: true,\n    });\n    userClass\n      .setUserDataToClass(user)\n      .userID()\n      .userFirstName()\n      .userLastName()\n      .userEmail()\n      .getAuthenticationKey();\n    res.status(200);\n    res.json(respond(true, \"User login information\", userClass.getUser()));\n  } else {\n    res.status(401);\n    res.json(respond(false, \"Invalid User\", null));\n  }\n});\n/**\n * Update user password\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/password/edit\", async (req, res) => {\n  // authentication  key from  headers\n  const authentication_key = req.headers.authentication_key;\n  const userID = req.body.userID;\n  const newPassword = md5(req.body.newPassword);\n  const password = md5(req.body.password);\n  if (!(await User.authUser(userID, authentication_key))) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  if (\n    req.body.password === \"\" ||\n    req.body.newPassword === \"\" ||\n    req.body.confirmNewPassword === \"\"\n  ) {\n    res.status(401);\n    return res.json(\n      respond(false, \"Password/New Password/Confirm Password required\", null)\n    );\n  }\n  if (req.body.newPassword !== req.body.confirmNewPassword) {\n    res.status(401);\n    return res.json(\n      respond(false, \"New Password and  Confirm Password not equal\", null)\n    );\n  }\n  const user = await User.passwordConfirm(userID, password);\n  if (!user) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  user.password = newPassword;\n  await User.updateUserPassword(userID, user, {});\n  res.status(200);\n  res.json(respond(true, \"Update Done\", null));\n});\n/**\n * update user information\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/update\", async (req, res) => {\n  // authentication  key from  headers\n  const authentication_key = req.headers.authentication_key;\n  const userID = req.body.userID;\n  if (!(await User.authUser(userID, authentication_key))) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  if (req.body.firstName === \"\" || req.body.lastName === \"\") {\n    res.status(401);\n    return res.json(respond(false, \"First name /Last name required\", null));\n  }\n  await User.updateUserInfo(userID, req.body, {});\n  res.status(200);\n  res.json(respond(true, \"Update Done\", null));\n});\n/**\n * User logout from web\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.get(\"/api/v1/user/:userID/logout\", async (req, res) => {\n  const userID = req.params.userID;\n  const authentication_key = req.headers.authentication_key;\n  if (!(await User.authUser(userID, authentication_key))) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  if (user) {\n    const out = {};\n    out.authentication_key = md5(userID + new Date()) + \"_logout\";\n    await User.updateUserAuth(userID, out, {});\n    res.status(200);\n    res.json(respond(true, \"logout!\", null));\n  } else {\n    res.status(401);\n    res.json(respond(true, \"Invalid User\", null));\n  }\n});\n/**\n * User logout from computer\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.get(\"/api/v1/user/:userID/computer/logout\", async (req, res) => {\n  const userID = req.params.userID;\n  const authentication_key = req.headers.authentication_key;\n  if (!(await User.authApp(userID, authentication_key))) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  if (user) {\n    const out = {};\n    out.authentication_key = md5(userID + new Date()) + \"_logout\";\n    await User.updateUserAuth(userID, out, {});\n    res.status(200);\n    res.json(respond(true, \"logout!\", null));\n  } else {\n    res.status(401);\n    res.json(respond(true, \"Invalid User\", null));\n  }\n});\n/**\n * Update allow pubic access status\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/computer/public/status/update\", async (req, res) => {\n  const authentication_key = req.headers.authentication_key;\n  const computerKey = req.body.computerKey;\n  const userID = req.body.userID;\n  const publicAccessStatus = req.body.status;\n  const user = await User.authUser(userID, authentication_key);\n  if (!user) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  let publicAccessKey = computerKey + Date.now();\n  if (publicAccessStatus === 1) {\n    publicAccessKey = md5(publicAccessKey);\n  } else {\n    publicAccessKey = md5(publicAccessKey);\n  }\n  const out = {};\n  out.publicAccessKey = publicAccessKey;\n  out.publicAccessStatus = publicAccessStatus;\n  const computerClassData = await PC.updatePublicAccessStatus(\n    computerKey,\n    out,\n    {\n      new: true,\n    }\n  );\n  if (computerClassData) {\n    const computerClass = new computerComponent();\n\n    computerClass.setComputer(computerClassData);\n    computerClass.getComputerAuthentication();\n    computerClass.getPublicAccessKey();\n    res.status(200);\n    res.json(respond(true, \"Update Done\", computerClass.getComputer()));\n  }\n});\n/**\n * Update user public key that allow to access other your computer.\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/computer/public/key/update\", async (req, res) => {\n  const authentication_key = req.headers.authentication_key;\n  const computerKey = req.body.computerKey;\n  const userID = req.body.userID;\n  const user = await User.authUser(userID, authentication_key);\n  if (!user) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  let publicAccessKey = computerKey + Date.now();\n  publicAccessKey = md5(publicAccessKey);\n  const out = {};\n  out.publicAccessKey = publicAccessKey;\n  const pc = await PC.newPublicAccessKey(pcID, out, {\n    new: true,\n  });\n  if (pc) {\n    res.status(200);\n    res.json(respond(true, \"Update Done\", out));\n  }\n});\n/**\n * Get user all online computers list\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/computer/online\", async (req, res) => {\n  const userID = req.body.userID;\n  const authentication_key = req.headers.authentication_key;\n  const user = await User.authUser(userID, authentication_key);\n  if (!user) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  const pc = await PC.getPCByUserIDOnline(userID);\n  if (pc) {\n    res.status(200);\n    res.json(respond(true, \"Computer  Information\", pc));\n  } else {\n    res.status(401);\n    res.json(respond(false, \"Invalid User\", null));\n  }\n});\n/**\n * Get all user computer names and IDs\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/computer\", async (req, res) => {\n  const userID = req.body.userID;\n  const authentication_key = req.headers.authentication_key;\n  const user = await User.authUser(userID, authentication_key);\n  if (!user) {\n    res.status(401);\n    return res.json(respond(false, \"Invalid User\", null));\n  }\n  const pc = await PC.getPCByUserID(userID);\n  if (pc) {\n    res.status(200);\n    res.json(respond(true, \"good call\", pc));\n  } else {\n    res.status(401);\n    res.json(respond(false, \"Invalid User\", null));\n  }\n});\n/**\n * User authentications\n *\n * @param  {json} req\n * req : Request\n * req->\n *\n * @param  {json} res\n * res:Respond\n * res<-\n */\napp.post(\"/api/v1/user/authentication\", async (req, res) => {\n  const userID = req.body.userID;\n  const authentication_key = req.headers.authentication_key;\n  const user = await User.authUser(userID, authentication_key);\n  if (user) {\n    res.status(200);\n    res.json(respond(true, \"good call\", null));\n  } else {\n    res.status(401);\n    res.json(respond(false, \"Invalid User\", null));\n  }\n});\nconst isValidFoldersName = (() => {\n  const rg1 = /^[^\\\\/:\\*\\?\"<>\\|]+$/; // forbidden characters \\ / : * ? \" < > |\n  const rg2 = /^\\./; // cannot start with dot (.)\n  const rg3 = /^(nul|prn|con|lpt[0-9]|com[0-9])(\\.|$)/i; // forbidden file names\n  return function isValidFoldersName(fname) {\n    return rg1.test(fname) && !rg2.test(fname) && !rg3.test(fname);\n  };\n})();\nio.on(\"connection\", (socket) => {\n  logger.log(socket.id);\n  // TODO this user  login from app need to add few   function to  it\n  socket.on(\"loginPage\", () => {});\n  // some  user  or  app get disconnected  from serve\n  socket.on(\"disconnect\", async () => {\n    const pc = await PC.getPCSocketID(socket.id);\n    if (pc) {\n      const pcInfo = {};\n      pcInfo.pcOnline = 0;\n      pcInfo.pcSocketID = socket.id;\n      await PC.updatePcOnlineStatus(pc._id, pcInfo, {});\n    } else {\n      const user = await User.getUserSocketId(socket.id);\n      if (user) {\n        const pc = await PC.getPCUsingID(user.userNowAccessPCID);\n        if (pc) {\n          const sendUserInfoToApp = {};\n          sendUserInfoToApp.status = false;\n          io.sockets\n            .to(pc.pcSocketID)\n            .emit(\"pcAccessRequest\", sendUserInfoToApp);\n        }\n      }\n    }\n  });\n  /**\n   *\n   * @param {object} user  user information\n   * @param {*} pcKey  Computer key\n   * @return {object} new auth key\n   */\n  async function updateAppUserAuth(user, pcKey) {\n    const date = new Date();\n    const input = {};\n    input.auth = md5(user._id + date + pcKey);\n    input.id = user._id;\n    const updateUserAuthApp = await PC.updateUserAuthApp(pcKey, input, {\n      new: true,\n    });\n    return updateUserAuthApp;\n  }\n  app.post(\"/api/v1/user/computer/login\", async (req, res) => {\n    const email = req.body.email;\n    // const key = req.body.appKey;\n    const password = md5(req.body.password);\n    const pcKey = md5(req.body.pcKey);\n    const pcName = req.body.pcName;\n    const platform = req.body.platform;\n    req.body.password = password;\n    if (req.body.email === \"\" || req.body.password === \"\") {\n      res.status(401);\n      return res.json(respond(false, \"username/password required\", null));\n    }\n    // const software = await Software.getActiveSoftware(key);\n    // if (software) {\n    const computerClass = new computerComponent();\n    const user = await User.loginUser(email, password);\n    if (user) {\n      //  set  if  user  got  new pc  key  or  update  if  got  old one\n      const pc = await PC.getPCByUserIDAndPCKey(pcKey, user._id);\n      if (pc) {\n        const pcInfo = {};\n        pcInfo.pcOnline = 1;\n        pcInfo.pcSocketID = socket.id;\n        await PC.updatePcOnlineStatus(pc._id, pcInfo, {});\n        const pcOwner = {};\n        pcOwner.pcID = pc._id;\n        pcOwner.pcKey = pcKey;\n        pcOwner.userID = user._id;\n        const pcOwnerData = await PcOwner.pcAndOwner(pcOwner);\n        if (pcOwnerData) {\n          const userInformation = await User.getUser(user._id);\n          await computerClass.updateAppUserAuth(user, pcKey);\n          computerClass.getComputerAuthentication();\n          await computerClass.getComputerUserInformation(user._id);\n          res.status(200);\n          res.json(respond(true, \"Hello!\", computerClass.getComputer()));\n        }\n      } else {\n        const pc = {};\n        pc.pcKey = pcKey;\n        pc.pcName = pcName;\n        pc.pcOnline = 1;\n        pc.pcSocketID = socket.id;\n        pc.platform = platform;\n        pc.publicAccessKey = md5(pcKey + Date.now());\n        pc.userID = user._id;\n        const pcData = await PC.createNewPC(pc);\n        if (pcData) {\n          const pcOwner = {};\n          pcOwner.pcID = pcData._id;\n          pcOwner.pcKey = pcKey;\n          pcOwner.userID = user._id;\n          const pcOwnerData = await PcOwner.pcAndOwner(pcOwner);\n          if (pcOwnerData) {\n            await computerClass.updateAppUserAuth(user, pcKey);\n            computerClass.getComputerAuthentication();\n            await computerClass.getComputerUserInformation(user._id);\n            res.status(200);\n            res.json(respond(true, \"Hello!\", computerClass.getComputer()));\n          }\n        }\n      }\n      socket.join(user.ioSocketID);\n    } else {\n      res.status(401);\n      res.json(respond(false, \"Invalid User\", null));\n    }\n    // } else {\n    //   res.status(401);\n    //   res.json(respond(false, 'This  software version  no  longer  work', null));\n    // }\n  });\n  // join user from  web\n  socket.on(\"joinFromWeb\", async (data) => {\n    //  logger.log(data);\n    const userID = data.data.userID;\n    const authentication_key = data.data.authentication_key;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      socket.join(user.ioSocketID);\n      // update user Current socket ID\n      const userData = {};\n      userData.userCurrentSocketId = socket.id;\n      await User.updateUserCurrentSocketId(user._id, userData, {});\n      // pulling data from app\n      io.sockets.in(user.ioSocketID).emit(\"getAppData\", {\n        data: \"start\",\n      });\n    }\n  });\n  // join user from  app\n  socket.on(\"joinFromApp\", async (data) => {\n    const authentication_key = data.data.authentication_key;\n    const userID = data.data.userID;\n    const pcKey = md5(data.data.pcKey);\n    const pc = await PC.authApp(userID, authentication_key, pcKey);\n    if (pc) {\n      const user = await User.getUser(userID);\n      if (user) {\n        socket.join(user.ioSocketID);\n        const pcData = await PC.getPC(pcKey);\n        if (pcData) {\n          const pcInfo = {};\n          pcInfo.pcSocketID = socket.id;\n          await PC.updatePcSocketID(pcData._id, pcInfo, {});\n        }\n      }\n    }\n  });\n  socket.on(\"pcAccessRequest\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcID = input.pcID;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      // logger.log(user);\n      const userInfo = {};\n      userInfo.pcID = pcID;\n      await User.updateUserNowAccessPCID(userID, userInfo, {});\n      const pc = await PC.getPCUsingID(pcID);\n      if (pc) {\n        //  logger.log(pc);\n        const sendUserInfoToApp = {};\n        sendUserInfoToApp.email = user.email;\n        sendUserInfoToApp.name = user.name;\n        sendUserInfoToApp.nameLast = user.nameLast;\n        sendUserInfoToApp.status = true;\n        sendUserInfoToApp.userID = user._id;\n        logger.log(pc.pcSocketID);\n        io.sockets.to(pc.pcSocketID).emit(\"pcAccessRequest\", sendUserInfoToApp);\n      }\n    }\n  });\n  /**\n   * get user socketID\n   *\n   * @param {object} pcData\n   * @param {object} user\n   * @param {callback} callback\n   */\n  async function getUserSocketID(pcData, user) {\n    const pc = await PC.getPC(pcData.pcKey);\n    if (pc) {\n      if (pc.publicAccessStatus === 1) {\n        const userAndPc = await UserAndPC.getUserAndPCUsingKey(\n          pc.publicAccessKey\n        );\n        if (userAndPc) {\n          const userData = await User.getUser(userAndPc.userID);\n          // data that need to return from function\n          return userData.ioSocketID;\n        } else {\n          return user.ioSocketID;\n        }\n      } else {\n        return user.ioSocketID;\n      }\n    }\n  }\n  /**\n   * Get owner pc  socket id  or public key socket id\n   *\n   * @param {object} user  user information\n   * @param {string} pcKeyPublic computer public access key\n   * @param {callback} callback\n   */\n  async function getPCSocketID(user, pcKeyPublic, callback) {\n    if (pcKeyPublic === \"\") {\n      const userPC = await PC.getPCUsingID(user.userNowAccessPCID);\n      return userPC.pcSocketID;\n    } else {\n      const pc = await PC.getPCPublicKey(pcKeyPublic);\n      if (pc.publicAccessStatus === 1) {\n        return pc.pcSocketID;\n      } else {\n        const userPC = PC.getPCUsingID(user.userNowAccessPCID);\n        return userPC.pcSocketID;\n      }\n    }\n  }\n  /**\n   * Request  Computer Hard drive list\n   */\n  socket.on(\"hDDList\", async (input) => {\n    console.log(input);\n    const userID = input.userID;\n    const authentication_key = input.authentication_key;\n    const computerKey = md5(input.computerKey);\n    const pc = await PC.authApp(userID, authentication_key, computerKey);\n    if (pc) {\n      const user = await User.getUser(userID);\n      if (user) {\n        // to  web\n        const socketID = await getUserSocketID(pc, user);\n        io.sockets.in(socketID).emit(\"hDDList\", input.data);\n      }\n    }\n  });\n  /**\n   * Request  computer information\n   */\n  socket.on(\"pcInfoRequest\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcID = input.pcID;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      const userInfo = {};\n      userInfo.pcID = pcID;\n      await User.updateUserNowAccessPCID(userID, userInfo, {});\n      const pc = await PC.getPCUsingID(pcID);\n      if (pc) {\n        const sendUserInfoToApp = {};\n        sendUserInfoToApp.email = user.email;\n        sendUserInfoToApp.name = user.name;\n        sendUserInfoToApp.nameLast = user.nameLast;\n        sendUserInfoToApp.status = true;\n        sendUserInfoToApp.userID = user._id;\n        io.sockets.to(pc.pcSocketID).emit(\"pcInfoRequest\", sendUserInfoToApp);\n      }\n    }\n  });\n  /**\n   *\n   */\n  socket.on(\"pcInfo\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKey = md5(input.pcKey);\n    const pc = await PC.authApp(userID, authentication_key, pcKey);\n    if (pc) {\n      const user = await User.getUser(userID);\n      if (user) {\n        // to  web\n        const socketID = await getUserSocketID(pc, user);\n        io.sockets.in(socketID).emit(\"pcInfo\", input.pcInfo);\n      }\n    }\n  });\n  /**\n   * Request for open folder\n   */\n  socket.on(\"openFolder\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKeyPublic = input.pcKeyPublic;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      const socket = await getPCSocketID(user, pcKeyPublic);\n      io.sockets.to(socket).emit(\"openFolderRequest\", input);\n    }\n  });\n  // from  pc\n  socket.on(\"sendOpenFolderRequest\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKey = md5(input.pcKey);\n    const pc = await PC.authApp(userID, authentication_key, pcKey);\n    if (pc) {\n      const user = await User.getUser(userID);\n      if (user) {\n        // to  web\n        const socketID = await getUserSocketID(pc, user);\n        io.sockets.in(socketID).emit(\"openFolderRequestToWeb\", input.data);\n      }\n    }\n  });\n  // get  access for  public pc key\n  /**\n   * User\n   */\n  app.post(\"/api/v1/computer/public/access\", async (req, res) => {\n    const authentication_key = req.headers.authentication_key;\n    const userID = req.body.userID;\n    const pcKeyPublic = req.body.pcKeyPublic;\n    const user = await User.authUser(userID, authentication_key);\n    if (!user) {\n      res.status(401);\n      return res.json(respond(false, \"Invalid User\", null));\n    }\n    const sendUserInfoToApp = {};\n    sendUserInfoToApp.email = user.email;\n    sendUserInfoToApp.name = user.name;\n    sendUserInfoToApp.nameLast = user.nameLast;\n    sendUserInfoToApp.userID = user._id;\n    const pcInfo = await PC.getPCPublicKey(pcKeyPublic);\n    if (pcInfo) {\n      if (pcInfo.publicAccessStatus === 1) {\n        const pc = {};\n        pc.pcKeyPublic = pcKeyPublic;\n        pc.userID = id;\n        await UserAndPC.createNewUserAndPC(pc);\n        io.sockets\n          .to(pcInfo.pcSocketID)\n          .emit(\"pcAccessRequest\", sendUserInfoToApp);\n      }\n    }\n  });\n  // validate folder name\n  app.post(\"/api/v1/user/computer/validateFolderName\", async (req, res) => {\n    const authentication_key = req.headers.authentication_key;\n    const createFolderName = req.body.createFolderName;\n    const userID = req.body.userID;\n    const path = req.body.path;\n    const pcKeyPublic = req.body.pcKeyPublic;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      res.status(200);\n      if (!isValidFoldersName(createFolderName)) {\n        res.json(\n          respond(\n            isValidFoldersName(createFolderName),\n            \"Invalid Folder name\",\n            null\n          )\n        );\n      } else {\n        res.json(respond(true, \"\", null));\n        const output = {};\n        output.path = path;\n        output.createFolderName = createFolderName;\n        const socket = await getPCSocketID(user, pcKeyPublic);\n        io.sockets.to(socket).emit(\"validateFolderName\", output);\n      }\n    }\n  });\n  // from  pc  send  information after create  folder\n  socket.on(\"folderCreateCallback\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const computerKey = md5(input.computerKey);\n    const computer = await PC.authApp(userID, authentication_key, computerKey);\n    if (computer) {\n      const user = await User.getUser(userID);\n      if (user) {\n        const socketID = await getUserSocketID(computer, user);\n        io.sockets.in(socketID).emit(\"folderCreateCallbackToWeb\", input.data);\n      }\n    }\n  });\n\n  // Download file request\n  socket.on(\"downloadFileRequest\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKeyPublic = input.pcKeyPublic;\n    const user = await User.authUser(userID, authentication_key);\n    if (user) {\n      const socket = await getPCSocketID(user, pcKeyPublic);\n      io.sockets.to(socket).emit(\"downloadFileRequestToPC\", input);\n    }\n  });\n\n  // Download file request\n  socket.on(\"downloadFileInfoRequestCallBack\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const computerKey = md5(input.computerKey);\n    const computer = await PC.authApp(userID, authentication_key, computerKey);\n    if (computer) {\n      const user = await User.getUser(userID);\n      if (user) {\n        const socketID = await getUserSocketID(computer, user);\n        io.sockets.in(socketID).emit(\"downloadFileInfoSendToWeb\", input.data);\n      }\n    }\n  });\n\n  //get data from app and send to web\n  socket.on(\"sendFileChunksToServer\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const computerKey = md5(input.computerKey);\n    const computer = await PC.authApp(userID, authentication_key, computerKey);\n    if (computer) {\n      const user = await User.getUser(userID);\n      if (user) {\n        const socketID = await getUserSocketID(computer, user);\n        io.sockets.in(socketID).emit(\"sendFileChunksToWeb\", input.data);\n      }\n    }\n  });\n\n  //requestScreenShot\n\n  socket.on(\"requestScreenShot\", async (input) => {\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKeyPublic = \"\";\n    const user = await User.authUser(userID, authentication_key);\n\n    if (user) {\n      const socket = await getPCSocketID(user, pcKeyPublic);\n\n      io.sockets.to(socket).emit(\"requestScreenShotFromPC\", input);\n    }\n  });\n\n  //sendScreenShotToServer\n\n  socket.on(\"sendScreenShotToServer\", async (input) => {\n    //  console.log(input.authentication_key,input.userID,input.computerKey);\n    const authentication_key = input.authentication_key;\n    const userID = input.userID;\n    const pcKey = md5(input.computerKey);\n\n    const pc = await PC.authApp(userID, authentication_key, pcKey);\n    if (pc) {\n      //  console.log(pc)\n      const user = await User.getUser(userID);\n      if (user) {\n        // to  web\n\n        //  console.log(user)\n        const socketID = await getUserSocketID(pc, user);\n        io.sockets.in(socketID).emit(\"sendScreenShotToWeb\", input.data);\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "thisMyPCServer/models/PCOwner.js",
    "content": "const mongoose = require('mongoose');\nconst PCOwner = mongoose.Schema({\n  userID: {\n    type: String,\n    required: true,\n  },\n  pcID: { // User Personal Computer ID\n    type: String,\n    required: true,\n  },\n  pcKey: { // Unique Key that belong to pc\n    type: String,\n    required: true,\n  },\n  status: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  loginDate: {\n    type: Date,\n    default: Date.now,\n  },\n});\nconst pCOwner = module.exports = mongoose.model('pcOwner', PCOwner);\n// create   PC and pc Owner\nmodule.exports.pcAndOwner = function(pcOwner) {\n  return new Promise((resolve,reject)=>{\n  pCOwner.create({\n    'userID': pcOwner.userID,\n    'pcID': pcOwner.pcID,\n    'pcKey': pcOwner.pcKey,\n  }, function (err, owner) {\n    resolve(owner);\n        });\n    }).then(result=>{return result;});\n};\n"
  },
  {
    "path": "thisMyPCServer/models/UserLog.js",
    "content": "const mongoose = require('mongoose');\nconst pcLog = mongoose.Schema({\n  userID: {\n    type: String,\n    required: true,\n  },\n  pcID: {\n    type: String,\n    required: true,\n  },\n  message: {\n    type: String,\n    required: true,\n  },\n  logDate: {\n    type: Date,\n    default: Date.now,\n  },\n});\nconst PCLog = module.exports = mongoose.model('pcAndlog', userAndPC);\n// create  PC Log\nmodule.exports.createPCLog = function(pc, callback) {\n  pcLog.create({\n    'userID': pc.userID,\n    'pcID': pc.pcID,\n    'message': pc.message,\n  }, callback);\n};\n//  get  pc log  using pc ID\nmodule.exports.getPCLog = function(pcID, callback) {\n  UserAndPC.find().where('pcID', pcID).exec(callback);\n};\n"
  },
  {
    "path": "thisMyPCServer/models/admin.js",
    "content": "const mongoose = require('mongoose');\n// db.createCollection('Admin')\nconst adminSchema = mongoose.Schema({\n  userID: {\n    type: String,\n    required: true,\n  },\n  status: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n});\nconst Admin = module.exports = mongoose.model('Admin', adminSchema);\n// creat  user\nmodule.exports.createAdmin = function(admin, callback) {\n  Admin.create({\n    'userID': admin.id,\n  }, callback);\n};\n// search  user\nmodule.exports.searchAdmin = function(id, callback) {\n  Admin.findOne().where({\n    'userID': id,\n    'status': 1,\n  }).exec(callback);\n};\n// auth  admin\nmodule.exports.authAdmin = function(id, callback) {\n  Admin.findOne().where({\n    'userID': id,\n  }).exec(callback);\n};\n"
  },
  {
    "path": "thisMyPCServer/models/appNotification.js",
    "content": "const mongoose = require('mongoose');\nconst appNotification = mongoose.Schema({\n  softWareID: {\n    type: String,\n    required: true,\n  },\n  message: {\n    type: String,\n    required: true,\n  },\n  messageType: {\n    type: String,\n    required: true,\n  },\n  softWareID: {\n    type: String,\n    required: true,\n  },\n  dismissible: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  status: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  addDate: {\n    type: Date,\n    default: Date.now,\n  },\n});\nconst AppNotification = module.exports = mongoose.model('userAndPC', appNotification);\n// create   notification\nmodule.exports.pcAndOwner = function(notification, callback) {\n  AppNotification.create({\n    'softWareID': notification.softWareID,\n    'message': notification.message,\n    'messageType': notification.messageType,\n    'dismissible': notification.dismissible,\n  }, callback);\n};\n"
  },
  {
    "path": "thisMyPCServer/models/pc.js",
    "content": "const mongoose = require('mongoose');\nconst pcSchema = mongoose.Schema({\n  pcKey: { // Personal Computer Unique Key\n    type: String,\n    required: true,\n  },\n  userID: { // User ID\n    type: String,\n    required: true,\n  },\n  status: { \n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  startDate: {\n    type: Date,\n    default: Date.now,\n  },\n  publicAccessKey: { //Personal computer Public Access Key\n    type: String,\n    default: Date.now,\n    unique: true,\n  },\n  publicAccessStatus: {\n    type: Number,\n    required: true,\n    default: 0, //\n  },\n  pcName: { // Person Computer name\n    type: String,\n  },\n  platform: { // Computer OS\n    type: String,\n  },\n  pcOnline: { // Computer offline online\n    type: Number,\n    required: true,\n    default: 0, //\n  },\n  pcSocketID: { // Computer  socket ID\n    type: String,\n  },\n  authApp: { // Auth key from App side\n    type: String,\n  },\n});\nconst PC = module.exports = mongoose.model('pc', pcSchema);\n// create   pc\nmodule.exports.createNewPC = function(pc) {\n  return new Promise((resolve,reject)=>{\n  PC.create({\n    'pcKey': pc.pcKey,\n    'userID': pc.userID,\n    'pcName': pc.pcName,\n    'platform': pc.platform,\n    'publicAccessKey': pc.publicAccessKey,\n    'pcOnline': pc.pcOnline,\n    'pcSocketID': pc.pcSocketID,\n  }, function (err, pc) {\n    resolve(pc);\n        });\n      }).then(result=>{return result;});\n};\n//  get  pc using _id\nmodule.exports.getPCUsingID = function(key) {\n  return new Promise((resolve,reject)=>{\n  PC.findOne().where('_id', key).exec(function (err, pc) {\n    resolve(pc);\n        });\n    }).then(result=>{return result;});\n};\n//  get all pc\nmodule.exports.getAllPC = function(limit, callback) {\n  PC.find(callback).limit(limit);\n};\n//  get  pc using pcKey\nmodule.exports.getPC = function(key) {\n  return new Promise((resolve,reject)=>{\n  PC.findOne().where('pcKey', key).exec(function (err, pc) {\n    resolve(pc);\n        });\n    }).then(result=>{return result;});\n}; //  get  pc using socket ID\nmodule.exports.getPCSocketID = function(pcSocketID) {\n  return new Promise((resolve,reject)=>{\n  PC.findOne().where('pcSocketID', pcSocketID).exec(function (err, pc) {\n    resolve(pc);\n        });\n    }).then(result=>{return result;});\n};\n//  get  pc using pcKey and user ID\nmodule.exports.getPCByUserIDAndPCKey = function(key, userID) {\n  return new Promise((resolve,reject)=>{\n  PC.findOne().where({\n    'pcKey': key,\n    'userID': userID,\n  }).exec(function (err, pc) {\n    resolve(pc);\n        });\n    }).then(result=>{return result;});\n};\n//  get all  pc using  user id\nmodule.exports.getPCByUserID = function(userID) {\n  return new Promise((resolve,reject)=>{\n  PC.find().where({\n    'userID': userID,\n    'status': 1,\n  }).exec(function (err, pc) {\n    resolve(pc);\n        });\n    }).then(result=>{return result;});\n};\n//  get all online  pc using  user id\nmodule.exports.getPCByUserIDOnline = function(userID) {\n  return new Promise((resolve,reject)=>{\n  PC.find().select('_id pcName platform email').where({\n    'userID': userID,\n    'status': 1,\n    'pcOnline': 1,\n  }).exec(function (err, pc) {\nresolve(pc);\n    });\n}).then(result=>{return result;});\n}; //  get   pc using  pc id\nmodule.exports.getPCByPCID = function(pcID, callback) {\n  PC.findOne().where({\n    'pcID': pcID,\n    'status': 1,\n  }).exec(callback);\n};\n//  generate public access key\nmodule.exports.newPublicAccessKey = function(pcID, pc) {\n  return new Promise((resolve,reject)=>{\n  const query = {\n    _id: pcID,\n  };\n  const update = {\n    publicAccessKey: pc.key,\n  };\n  PC.findOneAndUpdate(query, update, option, function (err , pc) {\n    resolve(pc);\n  });\n}).then(result=>{return result;});\n};\n//  update public access key access\nmodule.exports.updatePublicAccessStatus = function(pcID, pc, option) {\nreturn new Promise((resolve,reject)=>{\n  const query = {\n    _id: pcID,\n  };\n  const update = {\n    publicAccessStatus: pc.publicAccessStatus,\n    publicAccessKey: pc.publicAccessKey,\n  };\n  PC.findOneAndUpdate(query, update, option, function (err , pc) {\n    resolve(pc);\n  });\n}).then(result=>{return result;});\n};\n//  update PC  online status\nmodule.exports.updatePcOnlineStatus = function(pcID, pc, option) {\n  return new Promise((resolve,reject)=>{\n  const query = {\n    _id: pcID,\n  };\n  const update = {\n    pcOnline: pc.pcOnline,\n    pcSocketID: pc.pcSocketID,\n  };\n  PC.findOneAndUpdate(query, update, option, function (err , pc) {\n    resolve(pc);\n  });\n}).then(result=>{return result;});\n};\n//  update PC  socket ID\nmodule.exports.updatePcSocketID = function(pcID, pc, option) { \n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: pcID,\n  };\n  const update = {\n    pcSocketID: pc.pcSocketID,\n  };\n  PC.findOneAndUpdate(query, update, option, function (err , pc) {\n    resolve(pc);\n  });\n}).then(result=>{return result;});  \n};\n// user app update auth from pc key\nmodule.exports.updateUserAuthApp = function(pcKey, pc, option) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    pcKey: pcKey,\n    userID: pc.id,\n  };\n  const update = {\n    authApp: pc.auth,\n  };\n  PC.findOneAndUpdate(query, update, option, function (err , pc) {\n    resolve(pc);\n  });\n}).then(result=>{return result;});\n};\n// auth  App\nmodule.exports.authApp = function(id, auth, pcKey) {\n  return  new Promise((resolve, reject) => {\n  PC.findOne().where({\n    'userID': id,\n    'authApp': auth,\n    'pcKey': pcKey,\n  }).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n//  get  pc using public access key\nmodule.exports.getPCPublicKey = function(key) {\n  return  new Promise((resolve, reject) => {\n  PC.findOne().where('publicAccessKey', key).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// all active   user\nmodule.exports.countPC = function(callback) {\n  PC.findOne().where({\n    'status': 1,\n  }).count(callback);\n};"
  },
  {
    "path": "thisMyPCServer/models/software.js",
    "content": "const mongoose = require('mongoose');\nconst softwareSchema = mongoose.Schema({\n  version: {\n    type: String,\n    required: true,\n  },\n  versionKey: {\n    type: String,\n    required: true,\n  },\n  status: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  released_date: {\n    type: Date,\n    default: Date.now,\n  },\n});\nconst Software = module.exports = mongoose.model('software', softwareSchema);\n// create   software\nmodule.exports.createSoftwareVersion = function(software, callback) {\n  Software.create({\n    'version': software.version,\n    'versionKey': software.versionKey,\n    'status': software.status,\n  }, callback);\n};\n//  get  software using id\nmodule.exports.getSoftware = function(key, callback) {\n  Software.findOne().where('versionKey', key).exec(callback);\n};\n//  get active   software using id\nmodule.exports.getActiveSoftware = function(key) {\n  return new Promise((resolve,reject)=>{\n  Software.findOne().where({\n    'versionKey': key,\n    'status': 1,\n  }).exec(function (err, software) {\n    resolve(software);\n        });\n    }).then(result=>{return result;});\n};\n//  get  all software\nmodule.exports.getSoftwares = function(data, callback) {\n  Software.find(callback).limit(data.limit);\n};"
  },
  {
    "path": "thisMyPCServer/models/user.js",
    "content": "const mongoose = require('mongoose');\nconst userSchema = mongoose.Schema({\n  name: { // User name\n    type: String,\n    required: true,\n  },\n  nameLast: { // TODO Remove nameLast from next release\n    type: String,\n  },\n  email: { // User Email\n    type: String,\n    required: true,\n  },\n  password: { // User Password\n    type: String,\n    required: true,\n  },\n  created_date: { // User Account Created Date\n    type: Date,\n    default: Date.now,\n  },\n  last_login: { // User last Login to System\n    type: Date,\n    default: Date.now,\n  },\n  auth: { // User Auth key\n    type: String,\n  },\n  ioSocketID: { // TODO need to  remove  from next release\n    type: String,\n  },\n  authApp: {\n    type: String,\n  },\n  status: { // User Status 1,0\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  userNowAccessPCID: {// User currently accessing PC ID\n    type: String,\n  },\n  userCurrentSocketId: { // User current SocketID\n    type: String,\n  },\n});\nconst User = module.exports = mongoose.model('Users', userSchema);\n//  get  users\nmodule.exports.getUsers = function (limit, callback) {\n  User.find(callback).limit(limit);\n};\n//  get  user using id\nmodule.exports.getUser = function (id) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where('_id', id).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n}; //  get  user using id for  public  use\nmodule.exports.getUserPublic = function (id) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().select('_id name nameLast email').where('_id', id).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// search  user\nmodule.exports.searchEmailUser =  function (email) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where('email', email).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// login  user\nmodule.exports.loginUser =  function (email, password) {\n  return  new Promise((resolve, reject) => {\n    User.findOne().where({\n      'email': email,\n      'password': password,\n      'status': 1,\n    }).exec(function(err,result){\n      resolve(result);\n    });\n  }).then(result=>{return result});\n};\n// confirm user  password\nmodule.exports.passwordConfirm = function (id, password, callback) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where({\n    '_id': id,\n    'password': password,\n    'status': 1,\n  }).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// auth  user\nmodule.exports.authUser = function (id, auth) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where({\n    '_id': id,\n    'auth': auth,\n  }).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// auth  App\nmodule.exports.authApp = function (id, auth) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where({\n    '_id': id,\n    'authApp': auth,\n  }).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// create   user OLD\nmodule.exports.createUser = function (user) {\n  return  new Promise((resolve, reject) => {\n  User.create({\n    'name': user.firstName,\n    'nameLast': user.lastName,\n    'email': user.email,\n    'password': user.password,\n    'ioSocketID': user.ioSocketID,\n    'auth': user.authentication_key,\n  }, function(err,user){\n    resolve(user);\n  });\n}).then(user=>{return user});\n};\n//  update  user  info\nmodule.exports.updateUserInfo = function (id, user, option) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    name: user.firstName,\n    nameLast: user.lastName,\n  };\n  User.findOneAndUpdate(query, update, option, function(err,user){\n    resolve(user);\n  });\n}).then(user=>{return user});\n}; //  update  user  userCurrentSocketId\nmodule.exports.updateUserCurrentSocketId = function (id, user, option) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    userCurrentSocketId: user.userCurrentSocketId,\n  };\n  User.findOneAndUpdate(query, update, option, function(err,user){\n    resolve(user);\n  });\n}).then(user=>{return user});\n};\n//  get  user using SocketId\nmodule.exports.getUserSocketId = function (userCurrentSocketId) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().where('userCurrentSocketId', userCurrentSocketId).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n//  update  user  password\nmodule.exports.updateUserPassword = function (id, user, option) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    password: user.password,\n  };\n  User.findOneAndUpdate(query, update, option, function (err,data) { \n    resolve(data);\n   });\n } );\n};\n// user update auth\nmodule.exports.updateUserAuth = function (id, user, option) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    auth: user.authentication_key,\n  };\n  User.findOneAndUpdate(query, update, option, function (err , data) {\n    resolve(data);\n  });\n  });\n};\n// user update  status\nmodule.exports.updateUserStatus = function (id, user, option, callback) {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    status: user.status,\n  };\n  User.findOneAndUpdate(query, update, option, callback);\n}; // user update  current pc id\nmodule.exports.updateUserNowAccessPCID = function (id, user, option, callback) {\n  return  new Promise((resolve, reject) => {\n  const query = {\n    _id: id,\n  };\n  const update = {\n    userNowAccessPCID: user.pcID,\n  };\n  User.findOneAndUpdate(query, update, option, function (err,data) { resolve(data);  });\n  });\n};\n// user  info  (My account)\n// auth  user\nmodule.exports.userInfo = function (id, auth) {\n  return  new Promise((resolve, reject) => {\n  User.findOne().select({\n    name: 1,\n    email: 1,\n    status: 1,\n    nameLast: 1,\n  }).where({\n    '_id': id,\n    'auth': auth,\n  }).exec(function(err,result){\n    resolve(result);\n  });\n}).then(result=>{return result});\n};\n// all active   user\nmodule.exports.countUsers = function (callback) {\n  User.findOne().where({\n    'status': 1,\n  }).count(callback);\n};"
  },
  {
    "path": "thisMyPCServer/models/userAndPC.js",
    "content": "const mongoose = require('mongoose');\nconst userAndPC = mongoose.Schema({\n  userID: {\n    type: String,\n    required: true,\n  },\n  pcKeyPublic: { // Personal Computer public Access Key\n    type: String,\n    required: true,\n  },\n  status: {\n    type: Number,\n    required: true,\n    default: 1, //\n  },\n  released_date: {\n    type: Date,\n    default: Date.now,\n  },\n});\nconst UserAndPC = module.exports = mongoose.model('userAndPC', userAndPC);\n// create   User and pc public access\nmodule.exports.createNewUserAndPC = function(userPC, callback) {\n  return new Promise((resolve,reject)=>{\n  UserAndPC.create({\n    'userID': userPC.userID,\n    'pcKeyPublic': userPC.pcKeyPublic,\n  }, callback);\n});\n};\n//  get  pc  using pc key\nmodule.exports.getUserAndPCUsingKey = function(key) {\n  return new Promise((resolve,reject)=>{\n  UserAndPC.findOne().where('pcKeyPublic', key).exec(function (err, result) {\n    resolve(result);\n        });\n    }).then(result=>{return result;});\n};"
  },
  {
    "path": "thisMyPCServer/mongo.MD",
    "content": "# MongoDB Commands Cheatsheet\n\n\tdb.help()                    help on db methods\n\tdb.mycoll.help()             help on collection methods\n\tsh.help()                    sharding helpers\n\trs.help()                    replica set helpers\n\thelp admin                   administrative help\n\thelp connect                 connecting to a db help\n\thelp keys                    key shortcuts\n\thelp misc                    misc things to know\n\thelp mr                      mapreduce\n\n\tshow dbs                     show database names\n\tshow collections             show collections in current database\n\tshow users                   show users in current database\n\tshow profile                 show most recent system.profile entries with time >= 1ms\n\tshow logs                    show the accessible logger names\n\tshow log [name]              prints out the last segment of log in memory, 'global' is default\n\tuse <db_name>                set current database\n\tdb.foo.find()                list objects in collection foo\n\tdb.foo.find( { a : 1 } )     list objects in foo where a == 1\n\tit                           result of the last line evaluated; use to further iterate\n\tDBQuery.shellBatchSize = x   set default number of items to display on shell\n\texit                         quit the mongo shell\n\n\tdb.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]\n\tdb.auth(username, password)\n\tdb.cloneDatabase(fromhost)\n\tdb.commandHelp(name) returns the help for the command\n\tdb.copyDatabase(fromdb, todb, fromhost)\n\tdb.createCollection(name, { size : ..., capped : ..., max : ... } )\n\tdb.createUser(userDocument)\n\tdb.currentOp() displays currently executing operations in the db\n\tdb.dropDatabase()\n\tdb.eval() - deprecated\n\tdb.fsyncLock() flush data to disk and lock server for backups\n\tdb.fsyncUnlock() unlocks server following a db.fsyncLock()\n\tdb.getCollection(cname) same as db['cname'] or db.cname\n\tdb.getCollectionInfos([filter]) - returns a list that contains the names and options of the db's collections\n\tdb.getCollectionNames()\n\tdb.getLastError() - just returns the err msg string\n\tdb.getLastErrorObj() - return full status object\n\tdb.getLogComponents()\n\tdb.getMongo() get the server connection object\n\tdb.getMongo().setSlaveOk() allow queries on a replication slave server\n\tdb.getName()\n\tdb.getPrevError()\n\tdb.getProfilingLevel() - deprecated\n\tdb.getProfilingStatus() - returns if profiling is on and slow threshold\n\tdb.getReplicationInfo()\n\tdb.getSiblingDB(name) get the db at the same server as this one\n\tdb.getWriteConcern() - returns the write concern used for any operations on this db, inherited from server object if set\n\tdb.hostInfo() get details about the server's host\n\tdb.isMaster() check replica primary status\n\tdb.killOp(opid) kills the current operation in the db\n\tdb.listCommands() lists all the db commands\n\tdb.loadServerScripts() loads all the scripts in db.system.js\n\tdb.logout()\n\tdb.printCollectionStats()\n\tdb.printReplicationInfo()\n\tdb.printShardingStatus()\n\tdb.printSlaveReplicationInfo()\n\tdb.dropUser(username)\n\tdb.repairDatabase()\n\tdb.resetError()\n\tdb.runCommand(cmdObj) run a database command.  if cmdObj is a string, turns it into { cmdObj : 1 }\n\tdb.serverStatus()\n\tdb.setLogLevel(level,<component>)\n\tdb.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all\n\tdb.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the db\n\tdb.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the db\n\tdb.setVerboseShell(flag) display extra information in shell output\n\tdb.shutdownServer()\n\tdb.stats()\n\tdb.version() current version of the server\n\n\tdb.User.find().help() - show DBCursor help\n\tdb.User.bulkWrite( operations, <optional params> ) - bulk execute write operations, optional parameters are: w, wtimeout, j\n\tdb.User.count( query = {}, <optional params> ) - count the number of documents that matches the query, optional parameters are: limit, skip, hint, maxTimeMS\n\tdb.User.copyTo(newColl) - duplicates collection by copying all documents to newColl; no indexes are copied.\n\tdb.User.convertToCapped(maxBytes) - calls {convertToCapped:'User', size:maxBytes}} command\n\tdb.User.createIndex(keypattern[,options])\n\tdb.User.createIndexes([keypatterns], <options>)\n\tdb.User.dataSize()\n\tdb.User.deleteOne( filter, <optional params> ) - delete first matching document, optional parameters are: w, wtimeout, j\n\tdb.User.deleteMany( filter, <optional params> ) - delete all matching documents, optional parameters are: w, wtimeout, j\n\tdb.User.distinct( key, query, <optional params> ) - e.g. db.User.distinct( 'x' ), optional parameters are: maxTimeMS\n\tdb.User.drop() drop the collection\n\tdb.User.dropIndex(index) - e.g. db.User.dropIndex( \"indexName\" ) or db.User.dropIndex( { \"indexKey\" : 1 } )\n\tdb.User.dropIndexes()\n\tdb.User.ensureIndex(keypattern[,options]) - DEPRECATED, use createIndex() instead\n\tdb.User.explain().help() - show explain help\n\tdb.User.reIndex()\n\tdb.User.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.\n\t\t\t\t\t\t      e.g. db.User.find( {x:77} , {name:1, x:1} )\n\tdb.User.find(...).count()\n\tdb.User.find(...).limit(n)\n\tdb.User.find(...).skip(n)\n\tdb.User.find(...).sort(...)\n\tdb.User.findOne([query], [fields], [options], [readConcern])\n\tdb.User.findOneAndDelete( filter, <optional params> ) - delete first matching document, optional parameters are: projection, sort, maxTimeMS\n\tdb.User.findOneAndReplace( filter, replacement, <optional params> ) - replace first matching document, optional parameters are: projection, sort, maxTimeMS, upsert, returnNewDocument\n\tdb.User.findOneAndUpdate( filter, update, <optional params> ) - update first matching document, optional parameters are: projection, sort, maxTimeMS, upsert, returnNewDocument\n\tdb.User.getDB() get DB object associated with collection\n\tdb.User.getPlanCache() get query plan cache associated with collection\n\tdb.User.getIndexes()\n\tdb.User.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )\n\tdb.User.insert(obj)\n\tdb.User.insertOne( obj, <optional params> ) - insert a document, optional parameters are: w, wtimeout, j\n\tdb.User.insertMany( [objects], <optional params> ) - insert multiple documents, optional parameters are: w, wtimeout, j\n\tdb.User.mapReduce( mapFunction , reduceFunction , <optional params> )\n\tdb.User.aggregate( [pipeline], <optional params> ) - performs an aggregation on a collection; returns a cursor\n\tdb.User.remove(query)\n\tdb.User.replaceOne( filter, replacement, <optional params> ) - replace the first matching document, optional parameters are: upsert, w, wtimeout, j\n\tdb.User.renameCollection( newName , <dropTarget> ) renames the collection.\n\tdb.User.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name\n\tdb.User.save(obj)\n\tdb.User.stats({scale: N, indexDetails: true/false, indexDetailsKey: <index key>, indexDetailsName: <index name>})\n\tdb.User.storageSize() - includes free space allocated to this collection\n\tdb.User.totalIndexSize() - size in bytes of all the indexes\n\tdb.User.totalSize() - storage allocated for all data and indexes\n\tdb.User.update( query, object[, upsert_bool, multi_bool] ) - instead of two flags, you can pass an object with fields: upsert, multi\n\tdb.User.updateOne( filter, update, <optional params> ) - update the first matching document, optional parameters are: upsert, w, wtimeout, j\n\tdb.User.updateMany( filter, update, <optional params> ) - update all matching documents, optional parameters are: upsert, w, wtimeout, j\n\tdb.User.validate( <full> ) - SLOW\n\tdb.User.getShardVersion() - only for use with sharding\n\tdb.User.getShardDistribution() - prints statistics about data distribution in the cluster\n\tdb.User.getSplitKeysForChunks( <maxChunkSize> ) - calculates split points over all chunks and returns splitter function\n\tdb.User.getWriteConcern() - returns the write concern used for any operations on this collection, inherited from server/db if set\n\tdb.User.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the collection\n\tdb.User.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the collection\n\t\n"
  },
  {
    "path": "thisMyPCServer/package.json",
    "content": "{\n  \"name\": \"mid\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"start\": \"node index.js\"\n  },\n  \"author\": \"Supun\",\n  \"license\": \"ISC\",\n  \"dependencies\": {\n    \"body-parser\": \"^1.18.3\",\n    \"dotenv\": \"^10.0.0\",\n    \"express\": \"^4.16.4\",\n    \"express-fileupload\": \"^1.1.6\",\n    \"express-graphql\": \"^0.9.0\",\n    \"express-validator\": \"^5.3.1\",\n    \"graphql\": \"^14.4.2\",\n    \"js-md5\": \"^0.7.3\",\n    \"mongodb\": \"^3.5.5\",\n    \"mongoose\": \"^5.9.7\",\n    \"nodemailer\": \"^6.0.0\",\n    \"socket.io\": \"^2.1.1\",\n    \"validator\": \"^10.11.0\"\n  },\n  \"devDependencies\": {\n    \"eslint\": \"^5.16.0\",\n    \"eslint-config-google\": \"^0.13.0\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/.editorconfig",
    "content": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/.gitignore",
    "content": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n\n# dependencies\n/node_modules\n\n# profiling files\nchrome-profiler-events.json\nspeed-measure-plugin.json\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# System Files\n.DS_Store\nThumbs.db\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/README.md",
    "content": "# ThisMyPCWeb\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.1.4.\n\n## Development server\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n## Code scaffolding\n\nRun `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.\nng build --prod --base-href /\n## Running unit tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).\n\n## Further help\n\nTo get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"thisMyPCWeb\": {\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"projectType\": \"application\",\n      \"prefix\": \"app\",\n      \"schematics\": {},\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"outputPath\": \"dist\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"src/tsconfig.app.json\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ],\n            \"styles\": [\n              \"node_modules/bootstrap/dist/css/bootstrap.min.css\",\n              \"src/styles.css\"\n            ],\n            \"scripts\": [ \"node_modules/jquery/dist/jquery.min.js\"]\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"aot\": true,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true,\n              \"budgets\": [\n                {\n                  \"type\": \"initial\",\n                  \"maximumWarning\": \"2mb\",\n                  \"maximumError\": \"5mb\"\n                }\n              ]\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"thisMyPCWeb:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"thisMyPCWeb:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"thisMyPCWeb:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"src/tsconfig.spec.json\",\n            \"karmaConfig\": \"src/karma.conf.js\",\n            \"styles\": [\n              \"src/styles.css\"\n            ],\n            \"scripts\": [],\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ]\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"src/tsconfig.app.json\",\n              \"src/tsconfig.spec.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        }\n      }\n    },\n    \"thisMyPCWeb-e2e\": {\n      \"root\": \"e2e/\",\n      \"projectType\": \"application\",\n      \"prefix\": \"\",\n      \"architect\": {\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"thisMyPCWeb:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"thisMyPCWeb:serve:production\"\n            }\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": \"e2e/tsconfig.e2e.json\",\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"thisMyPCWeb\"\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/e2e/protractor.conf.js",
    "content": "// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib/config.ts\n\nconst { SpecReporter } = require('jasmine-spec-reporter');\n\nexports.config = {\n  allScriptsTimeout: 11000,\n  specs: [\n    './src/**/*.e2e-spec.ts'\n  ],\n  capabilities: {\n    'browserName': 'chrome'\n  },\n  directConnect: true,\n  baseUrl: 'http://localhost:4200/',\n  framework: 'jasmine',\n  jasmineNodeOpts: {\n    showColors: true,\n    defaultTimeoutInterval: 30000,\n    print: function() {}\n  },\n  onPrepare() {\n    require('ts-node').register({\n      project: require('path').join(__dirname, './tsconfig.e2e.json')\n    });\n    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));\n  }\n};"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/e2e/src/app.e2e-spec.ts",
    "content": "import { AppPage } from './app.po';\n\ndescribe('workspace-project App', () => {\n  let page: AppPage;\n\n  beforeEach(() => {\n    page = new AppPage();\n  });\n\n  it('should display welcome message', () => {\n    page.navigateTo();\n    expect(page.getTitleText()).toEqual('Welcome to thisMyPCWeb!');\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/e2e/src/app.po.ts",
    "content": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n  navigateTo() {\n    return browser.get('/');\n  }\n\n  getTitleText() {\n    return element(by.css('app-root h1')).getText();\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/e2e/tsconfig.e2e.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/app\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/package.json",
    "content": "{\n  \"name\": \"this-my-pcweb\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng build\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"e2e\": \"ng e2e\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"~7.1.0\",\n    \"@angular/common\": \"~7.1.0\",\n    \"@angular/compiler\": \"~7.1.0\",\n    \"@angular/core\": \"~7.1.0\",\n    \"@angular/forms\": \"~7.1.0\",\n    \"@angular/platform-browser\": \"~7.1.0\",\n    \"@angular/platform-browser-dynamic\": \"~7.1.0\",\n    \"@angular/router\": \"~7.1.0\",\n    \"@types/socket.io-client\": \"^1.4.32\",\n    \"bootstrap\": \"^4.3.1\",\n    \"core-js\": \"^2.6.9\",\n    \"express-fileupload\": \"^1.1.10\",\n    \"intro.js\": \"^2.9.3\",\n    \"jquery\": \"^3.4.1\",\n    \"ng-connection-service\": \"^1.0.4\",\n    \"rxjs\": \"~6.3.3\",\n    \"socket.io-client\": \"^2.2.0\",\n    \"tslib\": \"^1.9.0\",\n    \"zone.js\": \"^0.8.29\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"^0.901.0\",\n    \"@angular/cli\": \"~7.1.4\",\n    \"@angular/compiler-cli\": \"~7.1.0\",\n    \"@angular/language-service\": \"~7.1.0\",\n    \"@types/jasmine\": \"^2.8.16\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"~8.9.4\",\n    \"codelyzer\": \"~4.5.0\",\n    \"jasmine-core\": \"~2.99.1\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~3.1.1\",\n    \"karma-chrome-launcher\": \"~2.2.0\",\n    \"karma-coverage-istanbul-reporter\": \"^2.0.5\",\n    \"karma-jasmine\": \"~1.1.2\",\n    \"karma-jasmine-html-reporter\": \"^0.2.2\",\n    \"protractor\": \"~5.4.0\",\n    \"ts-node\": \"~7.0.0\",\n    \"tslint\": \"~5.11.0\",\n    \"typescript\": \"~3.1.6\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app-routing.module.ts",
    "content": "import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n  imports: [RouterModule.forRoot(routes)],\n  exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app.component.css",
    "content": ""
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app.component.html",
    "content": "<!--<app-home></app-home>-->\n<router-outlet></router-outlet>"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app.component.spec.ts",
    "content": "import { TestBed, async } from '@angular/core/testing';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { AppComponent } from './app.component';\n\ndescribe('AppComponent', () => {\n  beforeEach(async(() => {\n    TestBed.configureTestingModule({\n      imports: [\n        RouterTestingModule\n      ],\n      declarations: [\n        AppComponent\n      ],\n    }).compileComponents();\n  }));\n\n  it('should create the app', () => {\n    const fixture = TestBed.createComponent(AppComponent);\n    const app = fixture.debugElement.componentInstance;\n    expect(app).toBeTruthy();\n  });\n\n  it(`should have as title 'thisMyPCWeb'`, () => {\n    const fixture = TestBed.createComponent(AppComponent);\n    const app = fixture.debugElement.componentInstance;\n    expect(app.title).toEqual('thisMyPCWeb');\n  });\n\n  it('should render title in a h1 tag', () => {\n    const fixture = TestBed.createComponent(AppComponent);\n    fixture.detectChanges();\n    const compiled = fixture.debugElement.nativeElement;\n    expect(compiled.querySelector('h1').textContent).toContain('Welcome to thisMyPCWeb!');\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app.component.ts",
    "content": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'ThisMyPC';\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/app.module.ts",
    "content": "import {BrowserModule} from '@angular/platform-browser';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {AppRoutingModule} from './app-routing.module';\nimport {AppComponent} from './app.component';\nimport {HomeComponent} from './components/home/home.component';\nimport {HttpClientModule} from '@angular/common/http';\nimport {SystemComponent} from './components/system/system.component';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AccountComponent} from './components/account/account.component';\nimport {AuthGuard} from './guards/auth-guard.service';\n\n// todo  need to create  rout  guard  for  login\nconst appRoutes: Routes = [\n    {path: '', component: HomeComponent},\n    {path: 'login', component: HomeComponent},\n    {path: 'system', component: SystemComponent},\n    {path: 'account', component: AccountComponent},\n\n];\n\n@NgModule({\n    declarations: [\n        AppComponent,\n        HomeComponent,\n        SystemComponent,\n        AccountComponent\n    ],\n    imports: [RouterModule.forRoot(\n        appRoutes,\n        // {enableTracing: true} // <-- debugging purposes only it will show  big  console  log  data\n    ),\n        BrowserModule,\n        AppRoutingModule,\n        FormsModule,\n        HttpClientModule\n    ],\n\n    providers: [AuthGuard],\n    bootstrap: [AppComponent]\n})\nexport class AppModule {\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/auth/auth.guard.spec.ts",
    "content": "import { TestBed, async, inject } from '@angular/core/testing';\n\nimport { AuthGuard } from './auth.guard';\n\ndescribe('AuthGuard', () => {\n  beforeEach(() => {\n    TestBed.configureTestingModule({\n      providers: [AuthGuard]\n    });\n  });\n\n  it('should ...', inject([AuthGuard], (guard: AuthGuard) => {\n    expect(guard).toBeTruthy();\n  }));\n});\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/auth/auth.guard.ts",
    "content": "import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\n\nimport { AuthService }      from './auth.service';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n    constructor(private authService: AuthService, private router: Router) {}\n\n    canActivate(\n        next: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot): boolean {\n        let url: string = state.url;\n\n        return this.checkLogin(url);\n    }\n\n    checkLogin(url: string): boolean {\n        if (this.authService.isLoggedIn) { return true; }\n\n        // Store the attempted URL for redirecting\n        this.authService.redirectUrl = url;\n\n        // Navigate to the login page with extras\n        this.router.navigate(['/login']);\n        return false;\n    }\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/auth/auth.service.spec.ts",
    "content": "import { TestBed } from '@angular/core/testing';\n\nimport { AuthService } from './auth.service';\n\ndescribe('AuthService', () => {\n  beforeEach(() => TestBed.configureTestingModule({}));\n\n  it('should be created', () => {\n    const service: AuthService = TestBed.get(AuthService);\n    expect(service).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/auth/auth.service.ts",
    "content": "import { Injectable } from '@angular/core';\n\nimport { Observable, of } from 'rxjs';\nimport { tap, delay } from 'rxjs/operators';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class AuthService {\n    isLoggedIn = false;\n\n    // store the URL so we can redirect after logging in\n    redirectUrl: string;\n\n    login(): Observable<boolean> {\n\n\n        return of(true).pipe(\n            delay(1000),\n            tap(val => this.isLoggedIn = true)\n        );\n    }\n\n    logout(): void {\n        this.isLoggedIn = false;\n    }\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/account/account.component.css",
    "content": ""
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/account/account.component.html",
    "content": "<div class=\"alert {{alert.class}} alert-dismissible fade show top_alert_position\" role=\"alert\" *ngIf=\"alert.openAlert\">\n  <span [innerHTML]=\"alert.massage\"></span>\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n    <span aria-hidden=\"true\">&times;</span>\n  </button>\n</div>\n<section class=\"system-font site-font\">\n  <nav class=\"navbar navbar-expand-lg navbar-light nav-bar-bg\">\n    <a class=\"navbar-brand\" href=\"/system\"><img class=\"logo\" src=\"assets/images/logo/logo.png\" alt=\"logo\"></a>\n    <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarText\"\n      aria-controls=\"navbarText\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n      <span class=\"navbar-toggler-icon\"></span>\n    </button>\n    <div class=\"collapse navbar-collapse\" id=\"navbarText\">\n      <ul class=\"navbar-nav mr-auto\">\n      </ul>\n      <span class=\"navbar-text\">\n        <ul class=\"navbar-nav mr-auto\">\n          <li class=\"nav-item active\">\n            <div class=\"nav-link mouse\" data-toggle=\"modal\" data-target=\"#loginModal\">\n              <div class=\"dropdown\">\n                <div id=\"dropdownMenuButton\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n                  Welcome back, {{user.firstName}}! <i class=\"fas fa-angle-down\"></i>\n                </div>\n                <div class=\"dropdown-menu dropdown-menu-right system-font\" aria-labelledby=\"dropdownMenuButton\">\n                  <a class=\"dropdown-item\" href=\"/account\">Account</a>\n                  <a class=\"dropdown-item\" href=\"/system\">Computer</a>\n                  <div class=\"dropdown-divider\"></div>\n                  <a class=\"dropdown-item\" href=\"#\" (click)=\"logout()\">Logout</a>\n                </div>\n              </div>\n            </div>\n          </li>\n        </ul>\n      </span>\n    </div>\n  </nav>\n  <!--Nav end  -->\n  <div class=\"container\">\n    <div class=\"row \">\n      <div class=\"card-body col-xl-12\">\n        <div id=\"header2_left\">\n          <h1>\n            {{user.firstName}} {{user.lastName}}\n          </h1>\n          <span class=\"header2_details\">\n            {{user.email}}\n          </span>\n        </div>\n      </div>\n    </div>\n    <ul class=\"nav  mb-3 pills-tab-account\" id=\"pills-tab-account\" role=\"tablist\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link active account-a\" id=\"pills-account-tab\" data-toggle=\"pill\" href=\"#pills-account\" role=\"tab\"\n          aria-controls=\"pills-account\" aria-selected=\"true\">Account</a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link account-a\" id=\"pills-authentication-tab\" data-toggle=\"pill\" href=\"#pills-authentication\"\n          role=\"tab\" aria-controls=\"pills-authentication\" aria-selected=\"false\">Authentication</a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link account-a\" id=\"pills-myPC-tab\" data-toggle=\"pill\" href=\"#pills-myPC\" role=\"tab\"\n          aria-controls=\"pills-myPC\" aria-selected=\"false\">My Computer</a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link account-a\" id=\"pills-userLog-tab\" data-toggle=\"pill\" href=\"#pills-userLog\" role=\"tab\"\n          aria-controls=\"pills-userLog\" aria-selected=\"false\">User Log</a>\n      </li>\n    </ul>\n    <div class=\"tab-content\" id=\"pills-tabContent\">\n      <div class=\"tab-pane fade show active\" id=\"pills-account\" role=\"tabpanel\" aria-labelledby=\"pills-account-tab\">\n        <div class=\"row\">\n          <div class=\"col-xl-6 account-box\">\n            <div class=\"row\">\n              <form action=\"\" (submit)=\"onUpdate($event)\">\n                <div class=\"col-xl-12 form-col title header\">Your Detailes</div>\n                <div class=\"col-xl-12 form-col\">\n                  <div class=\"error_message\" *ngIf=\"error_message\">\n                    {{error_message_text}}\n                  </div>\n                </div>\n                <div class=\"col-xl-12 form-col \">\n                  <div class=\"row\">\n                    <div class=\"col-xl-6 \"><input type=\"text\" class=\"type-text\" placeholder=\"First Name\"\n                        [(ngModel)]=\"firstName\" name=\"firstName\" required value=\"{{user.firstName}}\"></div>\n                    <div class=\"col-xl-6\"><input type=\"text\" class=\"type-text\" placeholder=\"Last Name\"\n                        [(ngModel)]=\"lastName\" name=\"lastName\" value=\"{{user.lastName}}\"></div>\n                  </div>\n                </div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"submit\" class=\"btn btn-primary w-100 blue-btn \">Update Profile\n                  </button>\n                </div>\n              </form>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"tab-pane fade\" id=\"pills-authentication\" role=\"tabpanel\" aria-labelledby=\"pills-authentication-tab\">\n        <div class=\"row\">\n          <div class=\"col-xl-6 account-box\">\n            <div class=\"row\">\n              <form class=\"col-xl-12\" action=\"\" (submit)=\"onUpdatePassword($event)\">\n                <div class=\"col-xl-12 form-col title header\">Change Password</div>\n                <div class=\"col-xl-12 form-col\">\n                  <div class=\"error_message\" *ngIf=\"error_password\">\n                    {{error_password_text}}\n                  </div>\n                </div>\n                <div class=\"col-xl-12 form-col \"><input type=\"password\" class=\"type-text\" placeholder=\"Current Password\"\n                    [(ngModel)]=\"password\" name=\"password\" required></div>\n                <div class=\"col-xl-12 form-col\"><input type=\"password\" class=\"type-text\" placeholder=\"New Password\"\n                    [(ngModel)]=\"newPassword\" name=\"newPassword\"></div>\n                <div class=\"col-xl-12 form-col\"><input type=\"password\" class=\"type-text\"\n                    placeholder=\"Confirm New Password\" [(ngModel)]=\"confirmNewPassword\" name=\"confirmNewPassword\"></div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"submit\" class=\"btn btn-primary w-100 blue-btn \">Change Password\n                  </button>\n                </div>\n              </form>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"tab-pane fade\" id=\"pills-myPC\" role=\"tabpanel\" aria-labelledby=\"pills-myPC-tab\">\n        <div class=\"table-responsive\">\n          <table class=\"table table-hover\">\n            <thead>\n              <tr>\n                <th scope=\"col\">Status</th>\n                <th scope=\"col\">Computer</th>\n                <th scope=\"col\">Platform</th>\n                <th scope=\"col\">Allow Public</th>\n                <th scope=\"col\">Public access key</th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr *ngFor=\"let pc of pcs; let p = index;\">\n                <td><span *ngIf=\"pc.pcOnline===1\" class=\"badge badge-pill badge-success\">Online</span>\n                  <span *ngIf=\"pc.pcOnline===0 || pc.pcOnline ==='' \"\n                    class=\"badge badge-pill badge-danger\">Offline</span>\n                </td>\n                <td>{{pc.pcName}}</td>\n                <td>{{pc.platform}}</td>\n                <td>\n                  <div class=\"custom-control custom-switch\">\n                    <input (change)=\"allowPublic(pc._id,p, $event)\" type=\"checkbox\" class=\"custom-control-input\"\n                      id=\"customSwitch1{{pc._id}}\" [checked]=\"pc.publicAccessStatus===1\">\n                    <label class=\"custom-control-label\" for=\"customSwitch1{{pc._id}}\"></label>\n                  </div>\n                </td>\n                <td>\n                  <span *ngIf=\"pc.publicAccessStatus==0\"> No Public Access Key </span>\n                  <span *ngIf=\"pc.publicAccessStatus==1\">\n                    <div class=\"row\">\n                      <div class=\"col-xl-12\"> <input type=\"text\" class=\"type-text\" value=\"{{pc.publicAccessKey}}\"></div>\n                      <!--<div class=\"col-xl-1\"> <i class=\"far fa-copy copyIcon\"  data-toggle=\"tooltip\" data-placement=\"right\" title=\"Copy Public Access Key\"></i> </div>\n-->\n                    </div>\n                  </span>\n                </td>\n              </tr>\n            </tbody>\n          </table>\n        </div>\n      </div>\n      <div class=\"tab-pane fade \" id=\"pills-userLog\" role=\"tabpanel\" aria-labelledby=\"pills-account-tab\">User Log</div>\n      <!--      <div class=\"tab-pane fade \" id=\"pills-pcLog\" role=\"tabpanel\" aria-labelledby=\"pills-account-tab\">PC Log</div>-->\n    </div>\n  </div>\n</section>"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/account/account.component.spec.ts",
    "content": "import {\n  async,\n  ComponentFixture,\n  TestBed\n} from '@angular/core/testing';\nimport {\n  AccountComponent\n} from './account.component';\ndescribe('AccountComponent', () => {\n  let component: AccountComponent;\n  let fixture: ComponentFixture < AccountComponent > ;\n  beforeEach(async (() => {\n    TestBed.configureTestingModule({\n        declarations: [AccountComponent]\n      })\n      .compileComponents();\n  }));\n  beforeEach(() => {\n    fixture = TestBed.createComponent(AccountComponent);\n    component = fixture.componentInstance;\n    fixture.detectChanges();\n  });\n  it('should create', () => {\n    expect(component).toBeTruthy();\n  });\n});"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/account/account.component.ts",
    "content": "import {\n  Component,\n  OnInit\n} from '@angular/core';\nimport {\n  Router,\n  RouterModule,\n  Routes\n} from '@angular/router';\nimport {\n  HttpClient,\n  HttpHeaders\n} from '@angular/common/http';\nimport * as io from 'socket.io-client';\nimport * as $ from 'jquery';\nimport {\n  ConnectionService\n} from 'ng-connection-service';\nimport {config} from '../config/config'\n@Component({\n  selector: 'app-account',\n  templateUrl: './account.component.html',\n  styleUrls: ['./account.component.css']\n})\nexport class AccountComponent implements OnInit {\n  socket: SocketIOClient.Socket;\n  /**\n   * All My pc\n   */\n  pcs: any = [];\n  /**\n   * User Info\n   */\n  user: any = [];\n  firstName = '';\n  lastName = '';\n  /**\n   *\n   * Update user Password\n   */\n  password = '';\n  newPassword = '';\n  confirmNewPassword = '';\n  // alert\n  alert: any = [];\n  // test user is online or  offline\n  isConnected = true;\n  // todo  convert  all  errors  to  one  json object\n  error_message = false;\n  error_message_text = '';\n  error_password = false;\n  error_password_text = '';\n  // post Header\n  headers: any = '';\n  constructor(private http: HttpClient, private router: Router, private connectionService: ConnectionService) {\n    this.socket = io.connect(`${config.url}${config.port}`);\n    const self = this;\n    this.connectionService.monitor().subscribe(isConnected => {\n      this.isConnected = isConnected;\n      if (this.isConnected) {\n        self.alert.openAlert = true;\n        self.alert.class = 'alert-success';\n        self.alert.massage = ` <i class=\"fas fa-thumbs-up\"></i></i> <strong> Internet Connection  back Online..</strong> `;\n      } else {\n        self.alert.openAlert = true;\n        self.alert.class = 'alert-danger';\n        self.alert.massage = ` <i class=\"fas fa-sync-alt fa-spin\"></i> <strong> Internet Connection Lost..</strong> `;\n      }\n    });\n  }\n  ngOnInit() {\n    const self = this;\n    // send  user auth and  test\n    const sendData = {};\n    sendData['userID'] = sessionStorage.getItem('userID');\n    console.log(JSON.stringify(sendData));\n    self.headers = new HttpHeaders()\n      .set('Content-Type', 'application/json')\n      .set('authentication_key', sessionStorage.getItem('authentication_key') ? sessionStorage.getItem('authentication_key') : 'thismyPc');\n    const headers = self.headers;\n    self.http.post(`${config.url}${config.port}/api/v1/user/authentication`,\n        JSON.stringify(sendData), {\n          headers\n        })\n      .subscribe(\n        (val: any) => {},\n        response => {\n          // if offline\n          this.router.navigate(['/login']);\n        },\n        () => {\n          console.log('The POST observable is now completed.');\n        });\n        self.http.get(`${config.url}${config.port}/api/v1/user/${sendData['userID']}`,\n      {\n          headers\n        })\n      .subscribe(\n        (val: any) => {\n          self.user = val.data;\n          console.log(val);\n        },\n        response => {},\n        () => {});\n        self.http.post(`${config.url}${config.port}/api/v1/user/computer`,\n        JSON.stringify(sendData), {\n          headers\n        })\n      .subscribe(\n        (val: any) => {\n          self.pcs = val.data;\n          console.log(val);\n        },\n        response => {},\n        () => {});\n  }\n  onUpdate(e) {\n    e.preventDefault();\n    \n    const self = this;\n    const headers = self.headers;\n    //  alert(this.nameLast);\n    // todo  bug found on  system some tim the two variable  get as null  if user did not change\n    if (self.firstName === '' || self.lastName === '') {\n      self.error_message = true;\n      self.error_message_text = 'First name / Last name required';\n    } else {\n      const sendData = {};\n      sendData['lastName'] = self.lastName;\n      sendData['firstName'] = self.firstName;\n      sendData['userID'] = sessionStorage.getItem('userID');\n      self.http.post(`${config.url}${config.port}/api/v1/user/update`,\n          JSON.stringify(sendData), {\n            headers\n          })\n        .subscribe(\n          (val: any) => {\n            window.location.replace('/account');\n          },\n          response => {\n            this.error_message = true;\n            this.error_message_text = response.error.message;\n          },\n          () => {\n            //  console.log(\"The POST observable is now completed.\");\n          });\n    }\n  }\n  onUpdatePassword(e) {\n    e.preventDefault();\n\n    const self = this;\n    const headers = self.headers;\n\n    const sendData = {};\n    sendData['password'] = self.password;\n    sendData['newPassword'] = self.newPassword;\n    sendData['confirmNewPassword'] = self.confirmNewPassword;\n    sendData['userID'] = sessionStorage.getItem('userID');\n    self.http.post(`${config.url}${config.port}/api/v1/user/password/edit`,\n        JSON.stringify(sendData), {\n          headers\n        })\n      .subscribe(\n        (val: any) => {\n          window.location.replace('/account');\n        },\n        response => {\n          this.error_password = true;\n          this.error_password_text = response.error.message;\n        },\n        () => {\n          //  console.log(\"The POST observable is now completed.\");\n        });\n  }\n  \n  allowPublic(id, index, e) {\n    let status = 0;\n    const self = this;\n    if (e.target.checked) {\n      console.log(id);\n      //\n      status = 1;\n    } else {\n      status = 0;\n    }\n    const sendData = {};\n    sendData['userID'] = sessionStorage.getItem('userID');\n    sendData['computerKey'] = id;\n    sendData['status'] = status;\n    console.log(JSON.stringify(sendData));\n    const headers = self.headers;\n    self.http.post(`${config.url}${config.port}/api/v1/user/computer/public/status/update`,\n        JSON.stringify(sendData), {\n          headers\n        })\n      .subscribe(\n        (val: any) => {\n          self.pcs[index].publicAccessKey = val.data.publicAccessKey;\n          self.pcs[index].publicAccessStatus = status;\n        },\n        response => {},\n        () => {});\n  }\n  logout() {\n    const userID =   sessionStorage.getItem('userID');\n    const self = this;\n    const headers = self.headers;\n    self.http.get(`${config.url}${config.port}/api/v1/user/${userID}/logout`,\n         {\n          headers\n        })\n      .subscribe(\n        (val: any) => {\n          this.router.navigate(['/login']);\n        },\n        response => {\n          this.router.navigate(['/login']);\n        },\n        () => {\n          this.router.navigate(['/login']);\n        });\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/config/config.js",
    "content": "let config = {\n  \"url\": \"http://localhost\",\n  \"port\": \":5000\",\n}\nexport {\n  config\n}; // a list of exported variable"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/home/home.component.css",
    "content": ""
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/home/home.component.html",
    "content": "<section class=\"top-section\">\n  <nav class=\"navbar navbar-expand-lg navbar-dark  ftco-navbar-light nav-bar-bg\" id=\"site-main-nav\">\n    <!--<div class=\"container\">-->\n    <a class=\"navbar-brand\" href=\"#\">\n      <img class=\"logo hide\" id=\"blue-logo\" src=\"assets/images/logo/logo.png\" alt=\"logo\" style=\"width: 186px;\">\n      <img class=\"logo show\" id=\"white-logo\" src=\"assets/images/logo/logo_white.png\" alt=\"logo\">\n    </a>\n    <button class=\"navbar-toggler menu-btn\" type=\"button\" data-toggle=\"collapse\" data-target=\"#ftco-nav\"\n      aria-controls=\"ftco-nav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n      <span class=\"oi oi-menu\"></span> <i class=\"fas fa-bars \"></i>\n    </button>\n    <div class=\"collapse navbar-collapse\" id=\"ftco-nav\">\n      <ul class=\"navbar-nav ml-auto\">\n        <li class=\"nav-item\"><a href=\"https://github.com/supunlakmal/thismypc\" target=\"_blank\" class=\"nav-link\"><i\n              class=\"fab fa-github\" style=\"font-size: 20px;\"></i> Github</a></li>\n        <li class=\"nav-item\"><a href=\"https://gitter.im/Thismypc/community\" target=\"_blank\"\n            class=\"nav-link\">Community</a></li>\n        <li class=\"nav-item\"><a href=\"#about\" class=\"nav-link\">About</a></li>\n        <li class=\"nav-item\"><a href=\"#stack-block\" class=\"nav-link\">Tech stack</a></li>\n        <li class=\"nav-item\"><a href=\"#team\" class=\"nav-link\">Team</a></li>\n        <li class=\"nav-item\"><a href=\"#\" class=\"nav-link\" data-toggle=\"modal\" data-target=\"#loginModal\"\n            (click)=\"resetModel()\">Login</a></li>\n        <li class=\"nav-item cta\"><a href=\"#\" class=\"nav-link\" data-toggle=\"modal\" data-target=\"#registerModal\"\n            (click)=\"resetModel()\"><span>Sign Up</span></a></li>\n      </ul>\n    </div>\n    <!--</div>-->\n  </nav>\n  <!-- END nav -->\n  <div class=\"hero-wrap\">\n    <div class=\"overlay\"></div>\n    <div class=\"container-fluid\">\n      <div class=\"slider-text d-md-flex align-items-center\" data-scrollax-parent=\"true\">\n        <div class=\"one-forth pr-md-4 col-lg-6 col-md-6   align-self-md-center\">\n          <p class=\"mb-md-1 mb-sm-3 font-size-medium\"><strong>Welcome to the</strong>\n          </p>\n          <h1 class=\"mb-1\">Evolution of remote pc</h1>\n          <p class=\"mb-md-5 mb-sm-3\">Open Source Experimental Full Stack\n            Project </p>\n          <p><a href=\"ThisMyPC-win32-x64.zip\" class=\"btn btn-primary px-4 py-3\">Download\n              App</a><span class=\"ml-2 mouse\" > <a class=\"release_link\" href=\"https://github.com/supunlakmal/thismypc/releases/\" target=\"_blank\">Release\n              Note</a></span>\n          </p>\n          <div class=\"row platform mt-5 mb-2\">\n            <div class=\"col-xl-1 col-lg-1 col-2 mb-2\"><i class=\"fab fa-windows on-platform\"></i>\n              <i class=\"fas fa-check-circle platform-dev done-dev text-success\"></i></div>\n            <div class=\"col-xl-1 col-lg-1 col-2 mb-2\"><i class=\"fab fa-linux on-platform\"></i>\n              <i class=\"fas fas fa-sync-alt platform-dev pending-dev text-warning \"></i></div>\n            <div class=\"col-xl-1 col-lg-1 col-2 mb-2\"><i class=\"fab fa-apple on-platform\"></i>\n              <i class=\"fas fas fa-sync-alt platform-dev pending-dev text-warning \"></i></div>\n            <div class=\"col-xl-1 col-lg-1 col-2 mb-2\"><i class=\"fab fa-android on-platform\"></i>\n              <i class=\"fas fas fa-sync-alt platform-dev pending-dev text-warning \"></i></div>\n            <div class=\"col-xl-1 col-lg-1 col-2 mb-2\"><i class=\"fas fa-mobile-alt on-platform\"></i>\n              <i class=\"fas fas fa-sync-alt platform-dev pending-dev text-warning \"></i></div>\n          </div>\n        </div>\n        <div class=\"banner-img col-lg-6 col-md-6\">\n          <img class=\"img-fluid\" src=\"assets/images/header_img_1.png\" alt=\"banner\">\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<section id=\"about\" class=\"pt-5\">\n  <div class=\"container\">\n    <h2 class=\"pb-3 pt-2   mb-2 text-center pt-4 c-title-h\">About ThisMyPC</h2>\n    <p class=\"text-center\">\n      ThisMyPC is a next-generation open source solution for remote pc. It's a full stack based project that starts as\n      an experiment.<br> You can get the source code from GitHub and use for your own purpose.\n    </p>\n  </div>\n</section>\n<section id=\"world\" class=\"pt-5\">\n  <div class=\"container\">\n    <blockquote class=\"blockquote text-center\">\n      <p class=\"mb-0\">When we speak of free software, we are referring to freedom, not price.</p>\n      <footer class=\"blockquote-footer\">Richard M. Stallman </footer>\n    </blockquote>\n  </div>\n</section>\n<section id=\"stack-block\" class=\"pt-5\">\n  <div class=\"container\">\n    <div class=\"\">\n      <div class=\"container\">\n        <h2 class=\"pb-3 pt-2   border-c mb-5 text-center pt-4 c-title-h\">Technology Stack</h2>\n        <!--first section-->\n        <div class=\"row align-items-center how-it-works d-flex\">\n          <div class=\"col-2 text-center bottom d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">N</div>\n          </div>\n          <div class=\"col-9\">\n            <h5>Node.js</h5>\n            <p>Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.</p>\n          </div>\n        </div>\n        <!--path between 1-2-->\n        <div class=\"row timeline\">\n          <div class=\"col-2\">\n            <div class=\"corner top-right\"></div>\n          </div>\n          <div class=\"col-8\">\n            <hr />\n          </div>\n          <div class=\"col-2\">\n            <div class=\"corner left-bottom\"></div>\n          </div>\n        </div>\n        <!--second section-->\n        <div class=\"row align-items-center justify-content-end how-it-works d-flex\">\n          <div class=\"col-9 text-right\">\n            <h5>Angular</h5>\n            <p>Angular is a TypeScript-based open-source full-stack web application framework led by the\n              Angular Team at Google and by a community of individuals and corporations.</p>\n          </div>\n          <div class=\"col-2 text-center full d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">A</div>\n          </div>\n        </div>\n        <!--path between 2-3-->\n        <div class=\"row timeline\">\n          <div class=\"col-2\">\n            <div class=\"corner right-bottom\"></div>\n          </div>\n          <div class=\"col-8\">\n            <hr />\n          </div>\n          <div class=\"col-2\">\n            <div class=\"corner top-left\"></div>\n          </div>\n        </div>\n        <!--third section-->\n        <div class=\"row align-items-center how-it-works d-flex\">\n          <div class=\"col-2 text-center  full  full-new d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">E</div>\n          </div>\n          <div class=\"col-9\">\n            <h5>Electron.js</h5>\n            <p>Electron is an open-source framework developed and maintained by GitHub. Electron allows for\n              the development of desktop GUI applications using front and back end components originally\n              developed for web applications</p>\n          </div>\n        </div>\n        <!--path between 1-2-->\n        <div class=\"row timeline\">\n          <div class=\"col-2\">\n            <div class=\"corner top-right\"></div>\n          </div>\n          <div class=\"col-8\">\n            <hr />\n          </div>\n          <div class=\"col-2\">\n            <div class=\"corner left-bottom\"></div>\n          </div>\n        </div>\n        <!--second section-->\n        <div class=\"row align-items-center justify-content-end how-it-works d-flex\">\n          <div class=\"col-9 text-right\">\n            <h5>Express.js</h5>\n            <p>Express.js, or simply Express, is a web application framework for Node.js, released as free\n              and open-source software under the MIT License. It is designed for building web applications\n              and APIs.</p>\n          </div>\n          <div class=\"col-2 text-center full d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">E</div>\n          </div>\n        </div>\n        <!--path between 2-3-->\n        <div class=\"row timeline\">\n          <div class=\"col-2\">\n            <div class=\"corner right-bottom\"></div>\n          </div>\n          <div class=\"col-8\">\n            <hr />\n          </div>\n          <div class=\"col-2\">\n            <div class=\"corner top-left\"></div>\n          </div>\n        </div>\n        <!--third section-->\n        <div class=\"row align-items-center how-it-works d-flex\">\n          <div class=\"col-2 text-center  full  full-new d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">R</div>\n          </div>\n          <div class=\"col-9\">\n            <h5>React Native</h5>\n            <p>React Native · A framework for building native apps using React</p>\n          </div>\n        </div>\n        <!--path between 1-2-->\n        <div class=\"row timeline\">\n          <div class=\"col-2\">\n            <div class=\"corner top-right\"></div>\n          </div>\n          <div class=\"col-8\">\n            <hr />\n          </div>\n          <div class=\"col-2\">\n            <div class=\"corner left-bottom\"></div>\n          </div>\n        </div>\n        <!--second section-->\n        <div class=\"row align-items-center justify-content-end how-it-works d-flex\">\n          <div class=\"col-9 text-right\">\n            <h5>MongoDB</h5>\n            <p>MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL\n              database program, MongoDB uses JSON-like documents with schemata.</p>\n          </div>\n          <div class=\"col-2 text-center full d-inline-flex justify-content-center align-items-center\">\n            <div class=\"circle font-weight-bold\">M</div>\n          </div>\n        </div>\n        <!--path between 2-3-->\n      </div>\n    </div>\n  </div>\n</section>\n<section class=\"bg-light\" id=\"team\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-12 text-center pb-4\">\n        <h4 class=\"section-heading text-uppercase\">Our Amazing Contributors</h4>\n        <h6 class=\"section-subheading text-muted\">Make the World a Better Place.</h6>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/contributors/supun_abesekara.jpg\"\n            alt=\"Supun Abesekara\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/supun-lakmal/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Supun Abesekara</h4>\n          <p class=\"text-muted\">Full Stack Developer (MEAN Stack , PHP)</p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/contributors/sanjeevan_jeevaratnam.jpg\"\n            alt=\"Sanjeevan Jeevaratnam\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/sanjeevan-jeevaratnam-75a84862/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Sanjeevan Jeevaratnam</h4>\n          <p class=\"text-muted\">Full Stack Developer (MEAN Stack , PHP) | Android Developer </p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/contributors/shenal_de_mel.jpg\" alt=\"Shenal De Mel\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/shenal-de-mel-bb3b81179/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Shenal De Mel</h4>\n          <p class=\"text-muted\">Creative Graphic Designer </p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/contributors/Akhil-Gvs.jpg\" alt=\"Akhil Gvs\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/shenal-de-mel-bb3b81179/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Akhil Gvs</h4>\n          <p class=\"text-muted\">Full-stack Developer at S.A. Info Technology</p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/noUser.png\" alt=\"Tux Ubuntu\">\n          <h4><a class=\"linkd_in_link\" href=\"https://github.com/TuxUbuntu\">\n              <i class=\"fab fa-github\"></i>\n            </a>Tux Ubuntu</h4>\n          <p class=\"text-muted\">Software Engineer</p>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<section class=\"bg-light\" id=\"feedback\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-12 text-center pb-4\">\n        <h4 class=\"section-heading text-uppercase\">Feedback</h4>\n        <h6 class=\"section-subheading text-muted\">We all need people who will give us feedback. That’s how we\n          improve</h6>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/feedback/vihanga-yasith.jpg\" alt=\"Vihanga Yasith\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/vihanga-yasith-214205112/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Vihanga Yasith</h4>\n          <p class=\"text-muted\">Software Engineer</p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/feedback/chathuranga-kalana.jpg\"\n            alt=\"Chathuranga Kalana\">\n          <h4><a class=\"linkd_in_link\" href=\"https://www.linkedin.com/in/chathuranga-kalana-kurulugama-4228a785/\">\n              <i class=\"fab fa-linkedin-in\"></i>\n            </a> Chathuranga Kalana</h4>\n          <p class=\"text-muted\">Software Engineer Student </p>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/feedback/Jacob-Bogers.jfif\" alt=\"Jacob Bogers\">\n          <h4><a class=\"linkd_in_link\" href=\"https://github.com/jacobbogers\">\n              <i class=\"fab fa-github\"></i>\n            </a> Jacob Bogers</h4>\n        </div>\n      </div>\n      <div class=\"col-xl-4 col-lg-4 col-sm-6 col-12\">\n        <div class=\"team-member\">\n          <img class=\"mx-auto rounded-circle\" src=\"assets/images/feedback/aditya.jfif\" alt=\"adibro500\">\n          <h4><a class=\"linkd_in_link\" href=\"https://github.com/adibro500\">\n              <i class=\"fab fa-github\"></i>\n            </a> Aditya</h4>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<div class=\"modal fade\" id=\"loginModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalCenterTitle\"\n  aria-hidden=\"true\">\n  <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div class=\"row\">\n          <div class=\"col-xl-12 text-center\">\n            <img class=\"logo-modal\" src=\"assets/images/logo/logo.png\" alt=\"logo\">\n          </div>\n          <div class=\"col-xl-12\">\n            <form action=\"\" (submit)=\"onSubmit($event)\">\n              <div class=\"row\">\n                <div class=\"col-xl-12 form-col\">\n                  <div class=\"error_message\" *ngIf=\"error_message\">\n                    {{error_message_text}}\n                  </div>\n                </div>\n                <div class=\"col-xl-12 form-col\"><input type=\"text\" class=\"type-text\" placeholder=\"Email Address\"\n                    [(ngModel)]=\"email\" name=\"email\" required></div>\n                <div class=\"col-xl-12 form-col\"><input type=\"password\" class=\"type-text\" placeholder=\"Password\"\n                    [(ngModel)]=\"password\" name=\"password\" required></div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"submit\" class=\"btn btn-primary w-100 blue-btn \">Login\n                  </button>\n                </div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"button\" class=\"btn btn-secondary w-100\" data-dismiss=\"modal\">Close\n                  </button>\n                </div>\n              </div>\n            </form>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"modal fade\" id=\"registerModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalCenterTitle\"\n  aria-hidden=\"true\">\n  <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div class=\"row\">\n          <div class=\"col-xl-12 text-center\">\n            <img class=\"logo-modal\" src=\"assets/images/logo/logo.png\" alt=\"logo\">\n          </div>\n          <div class=\"col-xl-12\">\n            <form action=\"\" (submit)=\"onRegister($event)\">\n              <div class=\"row\">\n                <div class=\"col-xl-12 form-col\">\n                  <div class=\"error_message\" *ngIf=\"error_message\">\n                    {{error_message_text}}\n                  </div>\n                </div>\n                <div class=\"col-xl-12 form-col\"><input type=\"text\" class=\"type-text\" placeholder=\"First Name\"\n                    [(ngModel)]=\"firstName\" name=\"firstName\" required></div>\n                    <div class=\"col-xl-12 form-col\"><input type=\"text\" class=\"type-text\" placeholder=\"Last Name\"\n                      [(ngModel)]=\"lastName\" name=\"lastName\" required></div>\n                <div class=\"col-xl-12 form-col\"><input type=\"text\" class=\"type-text\" placeholder=\"Email Address\"\n                    [(ngModel)]=\"email\" name=\"email\" required></div>\n                <div class=\"col-xl-12 form-col\"><input type=\"password\" class=\"type-text\" placeholder=\"Password\"\n                    [(ngModel)]=\"password\" name=\"password\" required></div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"submit\" class=\"btn  w-100 green-btn \">Register\n                  </button>\n                </div>\n                <div class=\"col-xl-12 form-col\">\n                  <button type=\"button\" class=\"btn btn-secondary w-100\" data-dismiss=\"modal\">Close\n                  </button>\n                </div>\n              </div>\n            </form>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- Side  alert-->\n<div class=\"ol-modal ol-beh-fade\" id=\"contribute_alert\">\n  <aside class=\"featured-content-popup-interstitial\">\n    <div class=\"featured-content-popup-interstitial-chrome\">\n      <div class=\"featured-content-popup-interstitial-chrome-actions\">\n        <div class=\"featured-content-popup-interstitial-chrome-actions-action ol-close\">\n          <div class=\"featured-content-popup-interstitial-chrome-actions-action-media\">\n            <div class=\"featured-content-popup-interstitial-chrome-actions-action-media-object\">\n              <i class=\"fas fa-times\" id=\"close_contribute_alert\"></i>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"featured-content-popup-interstitial-media\">\n      <img alt=\"Isle of Pines, New Caledonia\" class=\"featured-content-popup-interstitial-media-object\"\n        src=\"assets/images/header_img_1.png\">\n    </div>\n    <div class=\"featured-content-popup-interstitial-main\">\n      <div class=\"featured-content-popup-interstitial-label\">\n        <span class=\"featured-content-popup-interstitial-label-title\">Want to contribute to open source?</span>\n        <span class=\"featured-content-popup-interstitial-label-description\">Whether it’s coding, testing, user interface\n          design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an\n          open source project.</span>\n      </div>\n      <div class=\"featured-content-popup-interstitial-actions\">\n        <div class=\"featured-content-popup-interstitial-actions-action ol-confirm\">\n          <div class=\"featured-content-popup-interstitial-actions-action-label\">\n            <span class=\"featured-content-popup-interstitial-actions-action-label-title\" data-toggle=\"modal\"\n              data-target=\"#contribute_alert_Modal\"><a\n                href=\"https://github.com/supunlakmal/thismypc\" target=\"_blank\" class=\"side-alert-text p-0 nav-link\"><i\n                  class=\"fab fa-github\" style=\"font-size: 20px;\"></i> Github / thismypc</a></span>\n          </div>\n        </div>\n      </div>\n    </div>\n  </aside>\n</div>\n<!-- Side  alert END-->\n<router-outlet></router-outlet>"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/home/home.component.spec.ts",
    "content": "import {\n  async,\n  ComponentFixture,\n  TestBed\n} from '@angular/core/testing';\nimport {\n  HomeComponent\n} from './home.component';\ndescribe('HomeComponent', () => {\n  let component: HomeComponent;\n  let fixture: ComponentFixture < HomeComponent > ;\n  beforeEach(async (() => {\n    TestBed.configureTestingModule({\n        declarations: [HomeComponent]\n      })\n      .compileComponents();\n  }));\n  beforeEach(() => {\n    fixture = TestBed.createComponent(HomeComponent);\n    component = fixture.componentInstance;\n    fixture.detectChanges();\n  });\n  it('should create', () => {\n    expect(component).toBeTruthy();\n  });\n});"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/home/home.component.ts",
    "content": "import {\n  Component,\n  OnInit\n} from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders\n} from '@angular/common/http';\nimport {\n  Router,\n  RouterModule,\n  Routes\n} from '@angular/router';\nimport * as $ from 'jquery';\nimport {config} from '../config/config'\n\n\n@Component({\n  selector: 'app-home',\n  templateUrl: './home.component.html',\n  styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n  password = '';\n  email = '';\n  firstName = '';\n  lastName = '';\n  error_message = false;\n  error_message_text = '';\n  \n  constructor(private http: HttpClient, private router: Router) {}\n  ngOnInit() {\n\n     const self = this;\n    \n    $(\"#close_contribute_alert\").click(function(d){\n      $(\"#contribute_alert\").remove();\n    });\n  }\n  resetModel() {\n    this.error_message = false;\n  }\n \n  onSubmit(e) {\n    e.preventDefault();\n    if (this.email === '' || this.password === '') {\n      this.error_message = true;\n      this.error_message_text = 'username/password required';\n    } else {\n      const sendData = {};\n      sendData['email'] = this.email;\n      sendData['password'] = this.password;\n      //  console.log(JSON.stringify(sendData));\n      const headers = new HttpHeaders()\n        .set('Content-Type', 'application/json');\n      this.http.post(`${config.url}${config.port}/api/v1/user/login`,\n          JSON.stringify(sendData), {\n            headers\n          })\n        .subscribe(\n          (val: any) => {\n            sessionStorage.setItem('firstName', val.data.firstName);\n            sessionStorage.setItem('lastName', val.data.lastName);\n            sessionStorage.setItem('authentication_key', val.data.authentication_key);\n            sessionStorage.setItem('userID', val.data.userID);\n          \n            //   this.router.navigate(['/system']); //  redirect  to  system\n            window.location.replace('/system');\n          },\n          response => {\n            this.error_message = true;\n            this.error_message_text = response.error.message;\n            //  console.log(\"POST call in error\", response);\n          },\n          () => {\n            //  console.log(\"The POST observable is now completed.\");\n          });\n    }\n  }\n  onRegister(e) {\n    e.preventDefault();\n    if (this.email === '' || this.password === '' || this.firstName === '' || this.lastName === '') {\n      this.error_message = true;\n      this.error_message_text = 'username/password/name required';\n    } else {\n      const sendData = {};\n      sendData['email'] = this.email;\n      sendData['password'] = this.password;\n      sendData['firstName'] = this.firstName;\n      sendData['lastName'] = this.lastName;\n      /// console.log(JSON.stringify(sendData));\n      const headers = new HttpHeaders()\n        .set('Content-Type', 'application/json');\n      this.http.post(`${config.url}${config.port}/api/v1/user/register`,\n          JSON.stringify(sendData), {\n            headers\n          })\n        .subscribe(\n          (val: any) => {\n            sessionStorage.setItem('firstName', val.data.firstName);\n            sessionStorage.setItem('lastName', val.data.lastName);\n            sessionStorage.setItem('authentication_key', val.data.authentication_key);\n            sessionStorage.setItem('userID', val.data.userID);\n            //   this.router.navigate(['/system']); //  redirect  to  system\n            window.location.replace('/system');\n          },\n          response => {\n            this.error_message = true;\n            this.error_message_text = response.error.message;\n            //  console.log(\"POST call in error\", response);\n          },\n          () => {\n            //  console.log(\"The POST observable is now completed.\");\n          });\n    }\n  }\n  \n}"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/system/system.component.css",
    "content": "\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/system/system.component.html",
    "content": "<div *ngIf=\"alert.openAlert\" class=\"alert {{alert.class}} alert-dismissible fade show top_alert_position\" role=\"alert\">\n  <span [innerHTML]=\"alert.massage\"></span>\n  <button aria-label=\"Close\" class=\"close\" data-dismiss=\"alert\" type=\"button\">\n    <span aria-hidden=\"true\">&times;</span>\n  </button>\n</div>\n<section class=\"system-font site-font\">\n  <!-- Nav -->\n  <nav class=\"navbar navbar-expand-lg navbar-light nav-bar-bg\">\n    <a class=\"navbar-brand\" href=\"/system\"><img class=\"logo\" src=\"assets/images/logo/logo.png\" alt=\"logo\"></a>\n    <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarText\"\n      aria-controls=\"navbarText\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n      <span class=\"navbar-toggler-icon\"></span>\n    </button>\n    <div class=\"collapse navbar-collapse\" id=\"navbarText\">\n      <ul class=\"navbar-nav mr-auto\">\n      </ul>\n      <span class=\"navbar-text\">\n        <ul class=\"navbar-nav mr-auto\">\n          <li class=\"nav-item\"><button type=\"button\" class=\"btn btn-primary btn-sm\"\n              onclick=\"introJs().start()\">Guide</button></li>\n          <li data-intro=\"You can manage all your pc,  your account password, etc\" data-step=\"4\"\n            class=\"nav-item active intro-step-4\">\n            <div class=\"nav-link mouse\">\n              <div class=\"dropdown\">\n                <div id=\"dropdownMenuButton\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n                  Welcome back, {{user.firstName}}! <i class=\"fas fa-angle-down\"></i>\n                </div>\n                <div class=\"dropdown-menu dropdown-menu-right system-font\" aria-labelledby=\"dropdownMenuButton\">\n                  <a class=\"dropdown-item\" href=\"/account\">Account</a>\n                  <a class=\"dropdown-item\" href=\"/system\">Computer</a>\n                  <div class=\"dropdown-divider\"></div>\n                  <a class=\"dropdown-item\" href=\"#\" (click)=\"logout()\">Logout</a>\n                </div>\n              </div>\n            </div>\n          </li>\n        </ul>\n      </span>\n    </div>\n  </nav>\n  <!--Nav end  -->\n  <div class=\"container\">\n    <div class=\"row \">\n      <div class=\"card-body col-xl-6 col-md-4 intro-step-1\" data-intro=\"List Down All Your Online Pc that Belong To your Account\"\n        data-step=\"1\">\n        <select *ngIf=\"(pcs | json) != '[]'\" name=\"\" id=\"\" class=\"type-text\" #pc (change)=\"selectPC(pc.value)\">\n          <option value=\"*\">Select Computer</option>\n          <option *ngFor=\"let pc of pcs; let p = index;\" [value]=\"pc._id\">\n            {{pc.pcName}}\n            {{pc.platform}}\n          </option>\n        </select>\n        <span *ngIf=\"(pcs | json) === '[]'\">Online Computer not available</span>\n      </div>\n      <div class=\" card-body col-xl-6 col-md-8 intro-step-2\" data-intro=\"You can Connect to another  pc using this Public PC Key\"\n        data-step=\"2\">\n        <form action=\"\" (submit)=\"getAccessToPC()\">\n          <div class=\"row\">\n            <div class=\"col-xl-8 col-md-8\"><input type=\"text\" name=\"publicPcKey\" [(ngModel)]=\"publicPcKey\" class=\"type-text\"\n                placeholder=\"Public Computer Key\"></div>\n            <div class=\"col-xl-4 col-md-4\">\n              <button type=\"submit\" class=\"btn btn-primary w-100 blue-btn btn-big \">Access Computer\n              </button>\n            </div>\n          </div>\n        </form>\n      </div>\n      <div class=\"card-body col-xl-12\" *ngIf=\"pcSelect\">\n        <div class=\"row\">\n          <div class=\"col-lg-2 col-md-2 col-sm-2 col-2\"><form action=\"\" (submit)=\"getPCScreenShot()\">\n      \n                <button type=\"submit\" class=\"btn btn-primary w-100 blue-btn btn-big \">Screen Shot\n                </button>\n       \n          </form></div>\n          <div class=\"col-lg-4 col-md-8 col-sm-8 col-12\">\n            <div class=\"row\">\n              <div class=\"col-5\"><i class=\"fas fa-memory\"></i> (Memory)</div>\n              <div class=\"col-7\"> {{pcInfoData.useMemory}} / {{pcInfoData.totalMemory}}    <i class=\"fas fa-sync mouse ml-2\" (click)=\"pcInfo()\"></i></div>\n            </div>\n          </div>\n        </div>\n      </div>\n        <div class=\"card-body  col-12\"  *ngIf=\"(breadcrumbObject | json) != '[]'\">\n<nav aria-label=\"breadcrumb\" >\n  <ol class=\"breadcrumb\">\n  <li class=\"breadcrumb-item\" *ngFor=\"let breadcrumb of breadcrumbObject; \"><div class=\"mouse\" (click)=\"openFolder(breadcrumb.path, breadcrumb.name)\">{{breadcrumb.name}}</div></li>\n  </ol>\n</nav>\n        </div>\n      <div class=\"card-body col-xl-12 intro-step-3\" data-intro=\"All the  hard drives list  down  here.\" data-step=\"3\">\n        <span class=\"card-box-title\">Driver List</span>\n        <div class=\"row\" *ngIf=\"(hDDList.parts | json) != '[]'\">\n          <div class=\"col-xl-3 col-sm-6 col-12 system-font    \" *ngFor=\"let hd of hDDList.parts; let i = index \">\n            <div class=\"hddBox box mouse main-hdd-box\" id=\"click_{{i}}\" (click)=\"openDrive(hd.letter ,i)\">\n              <div class=\"row \">\n                <div class=\"col-xl-12 \">\n                  <div class=\"row\">\n                    <div class=\"col-xl-1\">\n                      <i class=\"far fa-hdd\"></i>\n                    </div>\n                    <div class=\"col-xl-10\">\n                      <strong> {{hd.letter}} </strong>\n                      <br>\n                      {{hd.free}} free of {{hd.size}}\n                    </div>\n                  </div>\n                </div>\n                <div class=\"col-xl-12\">\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"row justify-content-between\" *ngIf=\"(folderList | json) != '[]'\">\n      <div class=\"col-xl-1 text-left\">\n        <div class=\"dropdown\">\n          <i class=\"fas fa-cog mouse\" id=\"folderMianDropDown\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\n            aria-expanded=\"false\"></i>\n          <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"folderMianDropDown\">\n            <a class=\"dropdown-item\" data-toggle=\"modal\" data-target=\"#createFolder\" href=\"#\">Create Folder </a>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"row\" *ngIf=\"(folderList | json) != '[]'\">\n      <div class=\"card-body col-xl-12\">\n        <div class=\"row\">\n          <div class=\"col-xl-3  \" *ngFor=\"let folder of folderList;  let e = index\">\n            <div class=\"box\">\n              <div class=\"row\">\n                <div class=\"col-xl-1\" (click)=\"openFolder(folder.path , folder.fileName)\">\n                  <i class=\"far fa-folder mouse\" *ngIf=\"!folder.file\"></i>\n                  <i class=\"far fa-file mouse\" *ngIf=\"folder.file\"></i>\n                </div>\n                <div class=\"col-xl-8 mouse folder-name\" *ngIf=\"!folder.file\" (click)=\"openFolder(folder.path , folder.fileName)\">\n                  {{folder.fileName}}\n                </div>\n                <div class=\"col-xl-8 mouse folder-name\" *ngIf=\"folder.file\" >\n                  {{folder.fileName}}\n                </div>\n                <div class=\"col-xl-1\">\n                  <div class=\"dropdown\">\n                    <i class=\"blue-text fas fa-angle-down mouse \" data-toggle=\"dropdown\" aria-haspopup=\"true\"\n                      aria-expanded=\"false\"></i>\n                    <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"dropdownMenuButton\">\n       \n       \n                      <div (click)=\"propertyFunction(folder)\" class=\"dropdown-item mouse \" data-toggle=\"modal\"\n                        data-target=\"#fileOrFolderProperty\">Property\n                      </div>\n\n                      \n                      <div (click)=\"downloadFile(folder)\" class=\"dropdown-item mouse \" *ngIf=\"folder.file\"  >Download\n                      \n                      </div>\n                      \n                    </div>\n                  </div>\n             \n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<!-- file  or  folder  property-->\n<div *ngIf=\"(property | json) != '[]'\" class=\"modal fade\" id=\"fileOrFolderProperty\" tabindex=\"-1\" role=\"dialog\"\n  aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">\n  <div class=\"modal-dialog  \" role=\"document\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h5 class=\"modal-title\"> {{property.fileName}}</h5><br>\n        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n          <span aria-hidden=\"true\">&times;</span>\n        </button>\n      </div>\n      <div class=\"modal-body\">\n        <ul class=\"list-group list-group-flush\">\n          <li class=\"list-group-item\">Size - {{property.fileInfo.sizeText}}</li>\n          <li class=\"list-group-item\">Created - {{property.fileInfo.birthTime}}</li>\n          <li class=\"list-group-item\">Accessed - {{property.fileInfo.accessed}}</li>\n          <li class=\"list-group-item\">Modified - {{property.fileInfo.modified}}</li>\n        </ul>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- Modal -->\n<div class=\"modal fade\" id=\"createFolder\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLabel\"\n  aria-hidden=\"true\">\n  <div class=\"modal-dialog \" role=\"document\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h5 class=\"modal-title\">Create Folder</h5><br>\n        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n          <span aria-hidden=\"true\">&times;</span>\n        </button>\n      </div>\n      <form action=\"\">\n        <div class=\"modal-body\">\n          <div class=\"row\">\n            <div class=\"col-xl-12 form-col\">\n              <input type=\"text\" id=\"folderName\" [(ngModel)]=\"createFolderName\" name=\"createFolderName\"\n                class=\"type-text\">\n            </div>\n            <div class=\"col-xl-12 form-col\">\n              <div class=\"error_message\" *ngIf=\"createFolderNameErrorMsg!=''\">\n                {{createFolderNameErrorMsg}}\n              </div>\n            </div>\n            <div class=\"col-xl-6 form-col\">\n              <div (click)=\"validateFolder($event)\" id=\"creteFolder-btn\"\n                class=\"btn btn-primary w-100 blue-btn btn-big \">Create\n              </div>\n            </div>\n            <div class=\"col-xl-6 form-col\">\n              <button type=\"button\" class=\"btn btn-secondary w-100 btn-big btn-big\" data-dismiss=\"modal\">Close\n              </button>\n            </div>\n          </div>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/system/system.component.spec.ts",
    "content": "import {\n  async,\n  ComponentFixture,\n  TestBed\n} from '@angular/core/testing';\nimport {\n  SystemComponent\n} from './system.component';\ndescribe('SystemComponent', () => {\n  let component: SystemComponent;\n  let fixture: ComponentFixture < SystemComponent > ;\n  beforeEach(async (() => {\n    TestBed.configureTestingModule({\n        declarations: [SystemComponent]\n      })\n      .compileComponents();\n  }));\n  beforeEach(() => {\n    fixture = TestBed.createComponent(SystemComponent);\n    component = fixture.componentInstance;\n    fixture.detectChanges();\n  });\n  it('should create', () => {\n    expect(component).toBeTruthy();\n  });\n});"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/components/system/system.component.ts",
    "content": "import {\n  Component,\n  OnInit\n} from '@angular/core';\nimport {\n  Router,\n  RouterModule,\n  Routes\n} from '@angular/router';\nimport {\n  HttpClient,\n  HttpHeaders\n} from '@angular/common/http';\nimport * as io from 'socket.io-client';\nimport * as $ from 'jquery';\nimport {\n  config\n} from '../config/config'\nimport {\n  ConnectionService\n} from 'ng-connection-service';\n@Component({\n  selector: 'app-system',\n  templateUrl: './system.component.html',\n  styleUrls: ['./system.component.css']\n})\nexport class SystemComponent implements OnInit {\n  socket: SocketIOClient.Socket;\n  // alert\n  alert: any = [];\n  // Hard Disk list\n  hDDList: any = [];\n  // folder list\n  folderList = [];\n  // folder  menu option\n  folderInfo: any = [];\n  // open folder or hhd path (name)\n  openFolderName = '';\n  // open folder or hhd path\n  openFolderPath = '';\n  //top breadcrumb folder\n  breadcrumbObject: any = [];\n  //  crete  folder  name\n  createFolderName = '';\n  //createFolderNameErrorMsg\n  createFolderNameErrorMsg = '';\n  /**\n   * User Info\n   */\n  user: any = [];\n  /*\n   * This  is  main  open  folder\n   * it can  be hdd  or  folder\n   *\n   * TODO  This  function need to be done*/\n  // test user is online or  offline\n  isConnected = true;\n  /**\n   * All My pc\n   */\n  pcs: any = [];\n  // other  one pc key\n  publicPcKey = '';\n  // folder  or  file  property (Info )\n  property: any = [];\n  //user selected PC  ID\n  selectedPC_ID = '';\n  // is  pc drop  down selected\n  pcSelect = false;\n  //pc info \n  pcInfoData: any = [];\n  // post Header\n  headers: any = '';\n\n  // file  download option\n  startDownload = false;\n  downloadFileSize = 0;\n  fileChunkStart = 0;\n  fileChunk = 0;\n  fileName = '';\n  fileDataArray = [];\n\n\n  /**\n   *\n   * param {HttpClient} http\n   * param {Router} router\n   */\n  constructor(private http: HttpClient, private router: Router, private connectionService: ConnectionService) {\n    const self = this;\n    self.socket = io.connect(`${config.url}${config.port}`);\n    self.connectionService.monitor().subscribe(isConnected => {\n      this.isConnected = isConnected;\n      if (this.isConnected) {\n        self.alert.openAlert = true;\n        self.alert.class = 'alert-success';\n        self.alert.massage = ` <i class=\"fas fa-thumbs-up\"></i></i> <strong> Internet Connection  back Online..</strong> `;\n      } else {\n        self.alert.openAlert = true;\n        self.alert.class = 'alert-danger';\n        self.alert.massage = ` <i class=\"fas fa-sync-alt fa-spin\"></i> <strong> Internet Connection Lost..</strong> `;\n      }\n    });\n  }\n  /**\n   * Top right corner alert\n   * \n   * @param  {object} e\n   */\n  processAlert(e) {\n    const self = this;\n    self.alert.openAlert = e;\n    self.alert.class = 'alert-primary';\n    self.alert.massage = ` <i class=\"fas fa-sync-alt fa-spin\"></i> <strong>Progress... </strong> `;\n  }\n  // TODO need to test this on linux and macOX\n  breadcrumb(path) {\n    const self = this;\n    self.breadcrumbObject = [];\n    //separate foldername and path\n    let customPathArray = path.split(\"//\\\\\");\n    //user click path\n    let clickPath = '';\n    customPathArray.forEach(function (name) {\n      clickPath = clickPath + name + '//\\\\';\n      let customPath: any = []\n      customPath.name = name;\n      customPath.path = clickPath;\n      self.breadcrumbObject.push(customPath)\n    });\n  }\n\n\n  // calculate download percentage\n  downloadPercentage(total, now) {\n    return (now / total) * 100;\n  }\n\n  ngOnInit() {\n    const self = this;\n    // send  user auth and  test\n    const sendData = {};\n    sendData['userID'] = sessionStorage.getItem('userID');\n    console.log(JSON.stringify(sendData));\n    self.headers = new HttpHeaders()\n      .set('Content-Type', 'application/json')\n      .set('authentication_key', sessionStorage.getItem('authentication_key') ? sessionStorage.getItem('authentication_key') : 'thismyPc');\n    const headers = self.headers;\n    self.http.post(`${config.url}${config.port}/api/v1/user/authentication`,\n      JSON.stringify(sendData), {\n      headers\n    })\n      .subscribe(\n        (val: any) => { },\n        response => {\n          // if offline\n          self.router.navigate(['/login']);\n        },\n        () => {\n          console.log('The POST observable is now completed.');\n        });\n    self.http.get(`${config.url}${config.port}/api/v1/user/${sendData['userID']}`, {\n      headers\n    })\n      .subscribe(\n        (val: any) => {\n          self.user = val.data;\n          console.log(val);\n        },\n        response => { },\n        () => { });\n    // app start\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    self.socket.emit('joinFromWeb', {\n      data: {\n        userID: userID,\n        authentication_key: authentication_key\n      }\n    });\n    self.socket.on('hDDList', function (data) {\n      self.hDDList = data;\n      console.log(data.parts);\n      self.processAlert(false);\n    });\n    self.socket.on('openFolderRequestToWeb', function (data) {\n      self.processAlert(false);\n      console.log(data, 'openlist');\n      self.folderList.push(data);\n    });\n    self.socket.on('pasteDone', function (data) {\n      self.alert.openAlert = true;\n      self.alert.class = 'alert-success';\n      self.alert.massage = ` <strong> Paste Done </strong> `;\n    });\n    //get data from pc\n    self.socket.on('sendScreenShotToWeb', function (data) {\n      console.log(data);\n\n      let html = \"\";\n      let count = 1;\n      data.forEach(function (entry) {\n        html += `<td>\n\n<h4>Screen ${count}</h4><br>\n<img style=\"width:100%\" src=\"data:image/png;base64,${entry}\" alt=\"Screen Shot\" /></td>`\n\n        count++;\n      });\n\n      let myWindow = window.open(\"\", \"newWindow\", \"width=1300\");\n      myWindow.document.write(`<table><tr>${html}</tr></table>`);\n\n    });\n\n\n    self.http.post(`${config.url}${config.port}/api/v1/user/computer/online`,\n      JSON.stringify(sendData), {\n      headers\n    })\n      .subscribe(\n        (val: any) => {\n          self.pcs = val.data;\n          console.log(val);\n        },\n        response => { },\n        () => { });\n    self.socket.on('folderCreateCallbackToWeb', function (data) {\n      self.alert.openAlert = true;\n      if (data.status) {\n        self.alert.class = 'alert-success';\n        self.alert.massage = ` <strong> ${data.message} </strong> `;\n      } else {\n        self.alert.class = 'alert-danger';\n        self.alert.massage = ` <strong> ${data.message}  </strong> `;\n      }\n    });\n    //  pcInfoRequest\n    self.socket.on('pcInfo', function (data) {\n      self.pcInfoData = data;\n      console.log(data);\n      self.processAlert(false);\n    });\n\n    self.socket.on('downloadFileInfoSendToWeb', function (data) {\n\n      self.fileChunkStart = 0;\n      self.fileDataArray = [];\n      self.startDownload = true;\n      self.downloadFileSize = data.size;\n      self.fileChunk = data.chunks;\n      self.fileName = data.filename;\n\n      self.alert.openAlert = true;\n      self.alert.class = 'alert-primary';\n      self.alert.massage = ` <strong> <i class=\"fas fa-sync-alt fa-spin\"></i> Download processing.. </strong> `;\n\n    });\n\n\n\n    self.socket.on('sendFileChunksToWeb', function (data) {\n      if (self.startDownload) {\n        let percentageCount = self.downloadPercentage(self.fileChunk, self.fileChunkStart);\n        self.alert.openAlert = true;\n        self.alert.class = 'alert-success';\n        self.alert.massage = ` <strong> <i class=\"fas fa-sync-alt fa-spin\"></i> ${percentageCount}%  Downloading.. </strong> `;\n\n        self.fileDataArray.push(data);\n        if (self.fileChunk == self.fileChunkStart) {\n          var a = document.createElement(\"a\");\n          document.body.appendChild(a);\n          // a.style = \"display: none\";\n          var blob = new Blob(self.fileDataArray);\n          var url = window.URL.createObjectURL(blob);\n          a.href = url;\n          a.download = self.fileName;\n          a.click();\n          window.URL.revokeObjectURL(url);\n          self.fileChunkStart = 0;\n          self.startDownload = false;\n          self.fileDataArray = [];\n          self.alert.openAlert = false;\n        }\n        self.fileChunkStart++;\n      }\n    });\n  }\n  /**\n   *\n   * param path\n   */\n  openDrive(path, i) {\n    this.processAlert(true);\n    // alert(this.publicPcKey);\n    const pcKeyPublic = this.publicPcKey;\n    // jquary code\n    $('.main-hdd-box').removeClass('box-active');\n    $('#click_' + i).addClass('box-active');\n    console.log(path);\n    this.openFolderName = path;\n    this.breadcrumb(path);\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    console.log(authentication_key);\n    this.folderList = [];\n    this.socket.emit('openFolder', {\n      path: path + '//',\n      authentication_key: authentication_key,\n      userID: userID,\n      pcKeyPublic: pcKeyPublic\n    });\n  }\n  openFolder(path, fileName) {\n    this.processAlert(true);\n    const pcKeyPublic = this.publicPcKey;\n    this.openFolderName = fileName;\n    this.breadcrumb(path);\n    this.openFolderPath = path;\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    this.folderList = [];\n    this.socket.emit('openFolder', {\n      path: path + '//',\n      authentication_key: authentication_key,\n      userID: userID,\n      pcKeyPublic: pcKeyPublic\n    });\n  }\n  // get file  or  folder  info  add    to  new  variable\n  fileOption(info) {\n    this.folderInfo = info;\n  }\n  // logout System\n  logout() {\n    const userID = sessionStorage.getItem('userID');\n    const self = this;\n    const headers = self.headers;\n    self.http.get(`${config.url}${config.port}/api/v1/user/${userID}/computer/logout`, {\n      headers\n    })\n      .subscribe(\n        (val: any) => {\n          this.router.navigate(['/login']);\n        },\n        response => {\n          this.router.navigate(['/login']);\n        },\n        () => {\n          this.router.navigate(['/login']);\n        });\n  }\n  // select Pc from drop down\n  selectPC(pcID) {\n    this.folderList = [];\n    this.hDDList = [];\n    this.openFolderName = '';\n    this.processAlert(true);\n    this.publicPcKey = '';\n    console.log(pcID);\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    this.socket.emit('pcAccessRequest', {\n      pcID: pcID,\n      authentication_key: authentication_key,\n      userID: userID\n    });\n    this.pcSelect = true;\n    this.selectedPC_ID = pcID;\n    this.socket.emit('pcInfoRequest', {\n      pcID: pcID,\n      authentication_key: authentication_key,\n      userID: userID\n    });\n  }\n  //  get  pc  information   \n  pcInfo() {\n    this.processAlert(true);\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    const pcID = this.selectedPC_ID;\n    this.socket.emit('pcInfoRequest', {\n      pcID: pcID,\n      authentication_key: authentication_key,\n      userID: userID\n    });\n  }\n  getAccessToPC() {\n    this.processAlert(true);\n    const self = this;\n    const headers = self.headers;\n    const sendData = {};\n    sendData['pcKeyPublic'] = this.publicPcKey;\n    sendData['userID'] = sessionStorage.getItem('userID');\n    console.log(JSON.stringify(sendData));\n    this.http.post(`${config.url}${config.port}/api/v1/computer/public/access`,\n      JSON.stringify(sendData), {\n      headers\n    })\n      .subscribe(\n        (val: any) => {\n          console.log(val);\n        },\n        response => { },\n        () => { });\n  }\n  // get screen shot  of pc\n  getPCScreenShot() {\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    const pcID = this.selectedPC_ID;\n    this.socket.emit('requestScreenShot', {\n      pcID: pcID,\n      authentication_key: authentication_key,\n      userID: userID\n    });\n  }\n\n\n  propertyFunction(e) {\n    this.property = e;\n  }\n  validateFolder(e) {\n    const sendData = {};\n    const self = this;\n    const headers = self.headers;\n    sendData['pcKeyPublic'] = self.publicPcKey;\n    sendData['userID'] = sessionStorage.getItem('userID');\n    sendData['createFolderName'] = self.createFolderName;\n    sendData['path'] = self.openFolderPath;\n    console.log(JSON.stringify(sendData));\n    this.http.post(`${config.url}${config.port}/api/v1/user/computer/validateFolderName`,\n      JSON.stringify(sendData), {\n      headers\n    })\n      .subscribe(\n        (val: any) => {\n          console.log(val);\n          this.createFolderNameErrorMsg = val.message;\n        },\n        response => { },\n        () => { });\n  }\n\n  // Request File to Download\n  downloadFile(folder) {\n    //this.processAlert(true);\n    const pcKeyPublic = this.publicPcKey;\n    const userID = sessionStorage.getItem('userID');\n    const authentication_key = sessionStorage.getItem('authentication_key');\n    this.socket.emit('downloadFileRequest', {\n      path: folder.path,\n      authentication_key: authentication_key,\n      userID: userID,\n      pcKeyPublic: pcKeyPublic\n    });\n  }\n\n\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/app/guards/auth-guard.service.ts",
    "content": "import {Injectable} from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router, Route} from '@angular/router';\nimport {\n    HttpClient,\n    HttpHeaders\n} from '@angular/common/http';\nimport {Observable} from 'rxjs';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n    constructor(private router: Router , private http: HttpClient) {\n    }\n\n    canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n\n        const sendData = {};\n        sendData['id'] = sessionStorage.getItem('id');\n        console.log(JSON.stringify(sendData));\n        const headers = new HttpHeaders()\n            .set('Content-Type', 'application/json')\n            .set('token', sessionStorage.getItem('auth') ? sessionStorage.getItem('auth') : 'thismyPc');\n        this.http.post('http://thismypc.com:5000/auth',\n            JSON.stringify(sendData), {\n                headers\n            })\n            .subscribe(\n                (val: any) => {\n                },\n                response => {\n                    // if offline\n          this.router.navigate(['/login']);\n                },\n                () => {\n                    console.log('The POST observable is now completed.');\n                });\n\n\n\n\n        //  if (this._authService.isAuthenticated()) {\n        return true;\n        // }\n\n        // navigate to login page\n        //  this._router.navigate(['/login']);\n        // you can save redirect url so after authing we can move them back to the page they requested\n        // return false;\n    }\n\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/css/introjs.css",
    "content": ".introjs-overlay {\n  position: absolute;\n  box-sizing: content-box;\n  z-index: 999999;\n  background-color: #000;\n  opacity: 0;\n  background: -moz-radial-gradient(center,ellipse farthest-corner,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%);\n  background: -webkit-gradient(radial,center center,0px,center center,100%,color-stop(0%,rgba(0,0,0,0.4)),color-stop(100%,rgba(0,0,0,0.9)));\n  background: -webkit-radial-gradient(center,ellipse farthest-corner,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%);\n  background: -o-radial-gradient(center,ellipse farthest-corner,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%);\n  background: -ms-radial-gradient(center,ellipse farthest-corner,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%);\n  background: radial-gradient(center,ellipse farthest-corner,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%);\n  filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000',endColorstr='#e6000000',GradientType=1)\";\n  -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)\";\n  filter: alpha(opacity=50);\n  -webkit-transition: all 0.3s ease-out;\n     -moz-transition: all 0.3s ease-out;\n      -ms-transition: all 0.3s ease-out;\n       -o-transition: all 0.3s ease-out;\n          transition: all 0.3s ease-out;\n}\n\n.introjs-fixParent {\n  z-index: auto !important;\n  opacity: 1.0 !important;\n  -webkit-transform: none !important;\n     -moz-transform: none !important;\n      -ms-transform: none !important;\n       -o-transform: none !important;\n          transform: none !important;\n}\n\n.introjs-showElement,\ntr.introjs-showElement > td,\ntr.introjs-showElement > th {\n  z-index: 9999999 !important;\n}\n\n.introjs-disableInteraction {\n  z-index: 99999999 !important;\n  position: absolute;\n  background-color: white;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n\n.introjs-relativePosition,\ntr.introjs-showElement > td,\ntr.introjs-showElement > th {\n  position: relative;\n}\n\n.introjs-helperLayer {\n  box-sizing: content-box;\n  position: absolute;\n  z-index: 9999998;\n  background-color: #FFF;\n  background-color: rgba(255,255,255,.9);\n  border: 1px solid #777;\n  border: 1px solid rgba(0,0,0,.5);\n  border-radius: 4px;\n  box-shadow: 0 2px 15px rgba(0,0,0,.4);\n  -webkit-transition: all 0.3s ease-out;\n     -moz-transition: all 0.3s ease-out;\n      -ms-transition: all 0.3s ease-out;\n       -o-transition: all 0.3s ease-out;\n          transition: all 0.3s ease-out;\n}\n\n.introjs-tooltipReferenceLayer {\n  box-sizing: content-box;\n  position: absolute;\n  visibility: hidden;\n  z-index: 100000000;\n  background-color: transparent;\n  -webkit-transition: all 0.3s ease-out;\n     -moz-transition: all 0.3s ease-out;\n      -ms-transition: all 0.3s ease-out;\n       -o-transition: all 0.3s ease-out;\n          transition: all 0.3s ease-out;\n}\n\n.introjs-helperLayer *,\n.introjs-helperLayer *:before,\n.introjs-helperLayer *:after {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n      -ms-box-sizing: content-box;\n       -o-box-sizing: content-box;\n          box-sizing: content-box;\n}\n\n.introjs-helperNumberLayer {\n  box-sizing: content-box;\n  position: absolute;\n  visibility: visible;\n  top: -16px;\n  left: -16px;\n  z-index: 9999999999 !important;\n  padding: 2px;\n  font-family: Arial, verdana, tahoma;\n  font-size: 13px;\n  font-weight: bold;\n  color: white;\n  text-align: center;\n  text-shadow: 1px 1px 1px rgba(0,0,0,.3);\n  background: #ff3019; /* Old browsers */\n  background: -webkit-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* Chrome10+,Safari5.1+ */\n  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff3019), color-stop(100%, #cf0404)); /* Chrome,Safari4+ */\n  background:    -moz-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* FF3.6+ */\n  background:     -ms-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* IE10+ */\n  background:      -o-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* Opera 11.10+ */\n  background:         linear-gradient(to bottom, #ff3019 0%, #cf0404 100%);  /* W3C */\n  width: 20px;\n  height:20px;\n  line-height: 20px;\n  border: 3px solid white;\n  border-radius: 50%;\n  filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0)\"; /* IE6-9 */\n  filter: \"progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000)\"; /* IE10 text shadows */\n  box-shadow: 0 2px 5px rgba(0,0,0,.4);\n}\n\n.introjs-arrow {\n  border: 5px solid transparent;\n  content:'';\n  position: absolute;\n}\n.introjs-arrow.top {\n  top: -10px;\n  border-bottom-color:white;\n}\n.introjs-arrow.top-right {\n  top: -10px;\n  right: 10px;\n  border-bottom-color:white;\n}\n.introjs-arrow.top-middle {\n  top: -10px;\n  left: 50%;\n  margin-left: -5px;\n  border-bottom-color:white;\n}\n.introjs-arrow.right {\n  right: -10px;\n  top: 10px;\n  border-left-color:white;\n}\n.introjs-arrow.right-bottom {\n  bottom:10px;\n  right: -10px;\n  border-left-color:white;\n}\n.introjs-arrow.bottom {\n  bottom: -10px;\n  border-top-color:white;\n}\n.introjs-arrow.bottom-right {\n  bottom: -10px;\n  right: 10px;\n  border-top-color:white;\n}\n.introjs-arrow.bottom-middle {\n  bottom: -10px;\n  left: 50%;\n  margin-left: -5px;\n  border-top-color:white;\n}\n.introjs-arrow.left {\n  left: -10px;\n  top: 10px;\n  border-right-color:white;\n}\n.introjs-arrow.left-bottom {\n  left: -10px;\n  bottom:10px;\n  border-right-color:white;\n}\n\n.introjs-tooltip {\n  box-sizing: content-box;\n  position: absolute;\n  visibility: visible;\n  padding: 10px;\n  background-color: white;\n  min-width: 200px;\n  max-width: 300px;\n  border-radius: 3px;\n  box-shadow: 0 1px 10px rgba(0,0,0,.4);\n  -webkit-transition: opacity 0.1s ease-out;\n     -moz-transition: opacity 0.1s ease-out;\n      -ms-transition: opacity 0.1s ease-out;\n       -o-transition: opacity 0.1s ease-out;\n          transition: opacity 0.1s ease-out;\n}\n\n.introjs-tooltipbuttons {\n  text-align: right;\n  white-space: nowrap;\n}\n\n/*\n Buttons style by http://nicolasgallagher.com/lab/css3-github-buttons/\n Changed by Afshin Mehrabani\n*/\n.introjs-button {\n  box-sizing: content-box;\n  position: relative;\n  overflow: visible;\n  display: inline-block;\n  padding: 0.3em 0.8em;\n  border: 1px solid #d4d4d4;\n  margin: 0;\n  text-decoration: none;\n  text-shadow: 1px 1px 0 #fff;\n  font: 11px/normal sans-serif;\n  color: #333;\n  white-space: nowrap;\n  cursor: pointer;\n  outline: none;\n  background-color: #ececec;\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#ececec));\n  background-image: -moz-linear-gradient(#f4f4f4, #ececec);\n  background-image: -o-linear-gradient(#f4f4f4, #ececec);\n  background-image: linear-gradient(#f4f4f4, #ececec);\n  -webkit-background-clip: padding;\n  -moz-background-clip: padding;\n  -o-background-clip: padding-box;\n  /*background-clip: padding-box;*/ /* commented out due to Opera 11.10 bug */\n  -webkit-border-radius: 0.2em;\n  -moz-border-radius: 0.2em;\n  border-radius: 0.2em;\n  /* IE hacks */\n  zoom: 1;\n  *display: inline;\n  margin-top: 10px;\n}\n\n.introjs-button:hover {\n  border-color: #bcbcbc;\n  text-decoration: none;\n  box-shadow: 0px 1px 1px #e3e3e3;\n}\n\n.introjs-button:focus,\n.introjs-button:active {\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ececec), to(#f4f4f4));\n  background-image: -moz-linear-gradient(#ececec, #f4f4f4);\n  background-image: -o-linear-gradient(#ececec, #f4f4f4);\n  background-image: linear-gradient(#ececec, #f4f4f4);\n}\n\n/* overrides extra padding on button elements in Firefox */\n.introjs-button::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\n.introjs-skipbutton {\n  box-sizing: content-box;\n  margin-right: 5px;\n  color: #7a7a7a;\n}\n\n.introjs-prevbutton {\n  -webkit-border-radius: 0.2em 0 0 0.2em;\n  -moz-border-radius: 0.2em 0 0 0.2em;\n  border-radius: 0.2em 0 0 0.2em;\n  border-right: none;\n}\n\n.introjs-prevbutton.introjs-fullbutton {\n  border: 1px solid #d4d4d4;\n  -webkit-border-radius: 0.2em;\n  -moz-border-radius: 0.2em;\n  border-radius: 0.2em;\n}\n\n.introjs-nextbutton {\n  -webkit-border-radius: 0 0.2em 0.2em 0;\n  -moz-border-radius: 0 0.2em 0.2em 0;\n  border-radius: 0 0.2em 0.2em 0;\n}\n\n.introjs-nextbutton.introjs-fullbutton {\n  -webkit-border-radius: 0.2em;\n  -moz-border-radius: 0.2em;\n  border-radius: 0.2em;\n}\n\n.introjs-disabled, .introjs-disabled:hover, .introjs-disabled:focus {\n  color: #9a9a9a;\n  border-color: #d4d4d4;\n  box-shadow: none;\n  cursor: default;\n  background-color: #f4f4f4;\n  background-image: none;\n  text-decoration: none;\n}\n\n.introjs-hidden {\n     display: none;\n}\n\n.introjs-bullets {\n  text-align: center;\n}\n.introjs-bullets ul {\n  box-sizing: content-box;\n  clear: both;\n  margin: 15px auto 0;\n  padding: 0;\n  display: inline-block;\n}\n.introjs-bullets ul li {\n  box-sizing: content-box;\n  list-style: none;\n  float: left;\n  margin: 0 2px;\n}\n.introjs-bullets ul li a {\n  box-sizing: content-box;\n  display: block;\n  width: 6px;\n  height: 6px;\n  background: #ccc;\n  border-radius: 10px;\n  -moz-border-radius: 10px;\n  -webkit-border-radius: 10px;\n  text-decoration: none;\n  cursor: pointer;\n}\n.introjs-bullets ul li a:hover {\n  background: #999;\n}\n.introjs-bullets ul li a.active {\n  background: #999;\n}\n\n.introjs-progress {\n  box-sizing: content-box;\n  overflow: hidden;\n  height: 10px;\n  margin: 10px 0 5px 0;\n  border-radius: 4px;\n  background-color: #ecf0f1\n}\n.introjs-progressbar {\n  box-sizing: content-box;\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 10px;\n  line-height: 10px;\n  text-align: center;\n  background-color: #08c;\n}\n\n.introjsFloatingElement {\n  position: absolute;\n  height: 0;\n  width: 0;\n  left: 50%;\n  top: 50%;\n}\n\n.introjs-fixedTooltip {\n  position: fixed;\n}\n\n.introjs-hint {\n  box-sizing: content-box;\n  position: absolute;\n  background: transparent;\n  width: 20px;\n  height: 15px;\n  cursor: pointer;\n}\n.introjs-hint:focus {\n    border: 0;\n    outline: 0;\n}\n.introjs-hidehint {\n  display: none;\n}\n\n.introjs-fixedhint {\n  position: fixed;\n}\n\n.introjs-hint:hover > .introjs-hint-pulse {\n  border: 5px solid rgba(60, 60, 60, 0.57);\n}\n\n.introjs-hint-pulse {\n  box-sizing: content-box;\n  width: 10px;\n  height: 10px;\n  border: 5px solid rgba(60, 60, 60, 0.27);\n  -webkit-border-radius: 30px;\n  -moz-border-radius: 30px;\n  border-radius: 30px;\n  background-color: rgba(136, 136, 136, 0.24);\n  z-index: 10;\n  position: absolute;\n  -webkit-transition: all 0.2s ease-out;\n     -moz-transition: all 0.2s ease-out;\n      -ms-transition: all 0.2s ease-out;\n       -o-transition: all 0.2s ease-out;\n          transition: all 0.2s ease-out;\n}\n.introjs-hint-no-anim .introjs-hint-dot {\n  -webkit-animation: none;\n  -moz-animation: none;\n  animation: none;\n}\n.introjs-hint-dot {\n  box-sizing: content-box;\n  border: 10px solid rgba(146, 146, 146, 0.36);\n  background: transparent;\n  -webkit-border-radius: 60px;\n  -moz-border-radius: 60px;\n  border-radius: 60px;\n  height: 50px;\n  width: 50px;\n  -webkit-animation: introjspulse 3s ease-out;\n  -moz-animation: introjspulse 3s ease-out;\n  animation: introjspulse 3s ease-out;\n  -webkit-animation-iteration-count: infinite;\n  -moz-animation-iteration-count: infinite;\n  animation-iteration-count: infinite;\n  position: absolute;\n  top: -25px;\n  left: -25px;\n  z-index: 1;\n  opacity: 0;\n}\n\n@-webkit-keyframes introjspulse {\n    0% {\n        -webkit-transform: scale(0);\n        opacity: 0.0;\n    }\n    25% {\n        -webkit-transform: scale(0);\n        opacity: 0.1;\n    }\n    50% {\n        -webkit-transform: scale(0.1);\n        opacity: 0.3;\n    }\n    75% {\n        -webkit-transform: scale(0.5);\n        opacity: 0.5;\n    }\n    100% {\n        -webkit-transform: scale(1);\n        opacity: 0.0;\n    }\n}\n\n@-moz-keyframes introjspulse {\n    0% {\n        -moz-transform: scale(0);\n        opacity: 0.0;\n    }\n    25% {\n        -moz-transform: scale(0);\n        opacity: 0.1;\n    }\n    50% {\n        -moz-transform: scale(0.1);\n        opacity: 0.3;\n    }\n    75% {\n        -moz-transform: scale(0.5);\n        opacity: 0.5;\n    }\n    100% {\n        -moz-transform: scale(1);\n        opacity: 0.0;\n    }\n}\n\n@keyframes introjspulse {\n    0% {\n        transform: scale(0);\n        opacity: 0.0;\n    }\n    25% {\n        transform: scale(0);\n        opacity: 0.1;\n    }\n    50% {\n        transform: scale(0.1);\n        opacity: 0.3;\n    }\n    75% {\n        transform: scale(0.5);\n        opacity: 0.5;\n    }\n    100% {\n        transform: scale(1);\n        opacity: 0.0;\n    }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/css/main.css",
    "content": "@import url(\"https://fonts.googleapis.com/css?family=Lato:300,400,700\");\nhtml {\n  scroll-behavior: smooth;\n}\n\n.logo {\n  width: 163px;\n}\n\n.nav-bar-bg {\n  background-color: #ffffff00 !important;\n  width: 100%;\n  z-index: 2;\n}\n\n.mouse {\n  cursor: pointer;\n}\n\n.top_alert_position {\n  position: fixed !important;\n  right: 10px;\n  top: 10px;\n  z-index: 1;\n  z-index: 2000;\n}\n\n.logo-modal {\n  width: 143px;\n}\n\n.green-btn {\n  background-color: #15CD72 !important;\n  border: 1px solid #15CD72;\n  color: #ffffff !important;\n}\n\n.green-btn:hover {\n  background-color: #18e07c;\n  border: 1px solid #15CD72;\n  color: #ffffff !important;\n}\n\n.blue-btn {\n  background-color: #0080ff !important;\n  color: #ffffff !important;\n}\n\n.blue-text {\n  color: #0080ff !important;\n}\n\n.green-text {\n  color: #15CD72 !important;\n}\n\n.text-weight-600 {\n  font-weight: 600 !important;\n}\n\n.top-section {\n  /* height           : 100vh; */\n  /*padding-bottom   : 4%;*/\n  background-image: url(\"../images/Bg.png\");\n  background-size: cover;\n}\n\n.right-box-main {\n  background-image: url(\"../images/Bg_img.png\");\n  background-position: bottom left;\n  background-repeat: no-repeat;\n  background-size: 80%;\n}\n\n.row-box {\n  /* height: 100vh; */\n}\n\n.left-box {\n  color: white;\n  padding-bottom: 11%;\n  padding-top: 11%;\n}\n\n.text-home-mini {\n  font-size: 35px;\n  font-weight: 400;\n}\n\n.text-home-max {\n  font-size: 70px;\n  font-weight: bold;\n}\n\n.text-home-how {\n  font-size: 35px;\n  font-weight: lighter;\n}\n\n.main-page-big-text {\n  color: #ffffff;\n  font-size: 42px;\n  font-weight: bold;\n  line-height: 48px;\n  padding-top: 30px;\n  text-align: center;\n}\n\n.main-page-mini-text {\n  color: rgba(196, 227, 255, 0.8);\n  font-size: 27px;\n  font-weight: 400;\n  line-height: 30px;\n  margin: -16px auto 16px auto;\n  max-width: 700px;\n  padding-top: 30px;\n  text-align: center;\n  text-transform: none;\n}\n\n.type-text {\n  -webkit-transition: all cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s;\n  background: #fff;\n  border-radius: 5px;\n  border: 1px solid #f1f1f1;\n  color: rgba(3, 27, 78, 0.7);\n  font-size: 1rem;\n  line-height: 1.5;\n  max-width: 100%;\n  padding: .375rem .75rem;\n  position: relative;\n  transition: all cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s;\n  width: 100%;\n}\n\n.type-text:focus {\n  border-color: #0069ff;\n  outline: none;\n}\n\n.form-col {\n  padding-top: 15px;\n}\n\n.error_message,\n.error_message a {\n  border-color: #ff4d4a;\n  color: #e53935;\n}\n\n.error_message,\n.info_message,\n.promo_message,\n.success_message,\n.warning_message,\n.resolved_message {\n  border-radius: 5px;\n  border-style: solid;\n  border-width: 1px;\n  font-size: 15px;\n  margin: 0px auto 30px auto;\n  max-width: 1290px;\n  padding: 10px 24px 10px 10px;\n  position: relative;\n  text-align: left;\n}\n\n.system-font {\n  color: #616366 !important;\n  font-size: 15px;\n}\n\n.site-font {\n  font-family: 'Lato', sans-serif;\n}\n\n.hddBox {\n  background-color: #ffffff;\n  color: #555555;\n  font-size: 14px;\n  font-weight: inherit;\n}\n\n.box {\n  border-radius: 3px;\n  border: 1px solid #DCDEE0;\n  height: auto;\n  margin-bottom: 10px;\n  padding: 10px 10px;\n  vertical-align: middle;\n}\n\n.card-box-title {\n  color: #9DA2A6;\n  font-size: 13px;\n  font-weight: 600;\n}\n\n.top-main-container {\n  padding: 0px 5% 0 5%;\n}\n\n#site-main-nav.onScrolled {\n  background: #fff !important;\n  border-bottom: 1px solid #0069ff;\n  position: fixed;\n  z-index: 10;\n}\n\n.hide {\n  display: none;\n}\n\n.show {\n  display: block;\n}\n\n.helpUs {\n  bottom: 0;\n  position: fixed;\n  right: 0;\n}\n\n/**System Block**/\n.box-active {\n  background-color: #f5f9ff;\n  border: 1px solid #1e88e5;\n}\n\n.box:hover {\n  background-color: #f8f8f8;\n  border: 1px solid #1e88e5;\n}\n\n.folder-name {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.breadcrumb li {\n  display: -webkit-inline-box;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n}\n\n/**System Block End**/\n/**\nAccount Block\n*/\n#header2_left h1 {\n  color: #363B40;\n  font-size: 25px;\n  font-weight: 500;\n  line-height: 34px;\n  margin: 0px 0px 10px 0px;\n  text-transform: capitalize;\n}\n\n#pills-account-tab {\n  padding-left: 0px;\n}\n\n.pills-tab-account {\n  border-bottom: 1px solid #ebebeb;\n}\n\n.account-a {\n  color: #616366 !important;\n}\n\n.account-a.active {\n  color: #1e88e5 !important;\n}\n\n.account-box {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.header {\n  color: #363B40;\n  font-size: 25px;\n  font-weight: 500;\n  line-height: 34px;\n  margin: 0px 0px 10px 0px;\n  text-transform: capitalize;\n}\n\n.copyIcon {\n  font-size: 22px;\n  margin-left: 12px;\n}\n\n/**\nAccount Block  End\n*/\n/**\nHome  block\n*/\n.platform .on-platform {\n  color: #ffffff;\n  font-size: 37px;\n}\n\n.platform .done-dev {\n  color: #ffffff;\n}\n\n.platform .platform-dev {\n  bottom: 2px;\n  font-size: 19px;\n  position: absolute;\n  right: 16px;\n}\n\n.circle {\n  background-color: #0080ff;\n  border-radius: 50%;\n  color: #fff;\n  max-height: 50px;\n  padding: 13px 20px;\n  z-index: 2;\n}\n\na.linkd_in_link {\n  font-size: 19px;\n}\n\n.full-new:after {\n  left: calc(50% - 0px) !important;\n}\n\n.how-it-works.row .col-2 {\n  -ms-flex-item-align: stretch;\n      -ms-grid-row-align: stretch;\n      align-self: stretch;\n}\n\n.how-it-works.row .col-2::after {\n  border-left: 3px solid #0080ff;\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n}\n\n.how-it-works.row .col-2.bottom::after {\n  height: 50%;\n  left: 50%;\n  top: 50%;\n}\n\n.how-it-works.row .col-2.full::after {\n  height: 100%;\n  left: calc(50% - 3px);\n}\n\n.how-it-works.row .col-2.top::after {\n  height: 50%;\n  left: 50%;\n  top: 0;\n}\n\n.timeline div {\n  height: 40px;\n  padding: 0;\n}\n\n.timeline hr {\n  border-top: 3px solid #0080ff;\n  margin: 0;\n  position: relative;\n  top: 17px;\n}\n\n.timeline .col-2 {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  overflow: hidden;\n}\n\n.timeline .corner {\n  border-radius: 15px;\n  border: 3px solid #0080ff;\n  position: relative;\n  width: 100%;\n}\n\n.timeline .top-right {\n  left: 50%;\n  top: -50%;\n}\n\n.timeline .left-bottom {\n  left: -50%;\n  top: calc(50% - 3px);\n}\n\n.timeline .top-left {\n  left: -50%;\n  top: -50%;\n}\n\n.timeline .right-bottom {\n  left: 50%;\n  top: calc(50% - 3px);\n}\n\n.count_box {\n  border-radius: 4px;\n  border: 1px solid #efefef;\n}\n\n.count_box .row {\n  padding: 20px;\n}\n\n#team {\n  padding-top: 100px;\n}\n\n.team-member {\n  margin-bottom: 50px;\n  text-align: center;\n}\n\n.team-member img {\n  border: 7px solid #fff;\n  height: 190px;\n  width: 190px;\n}\n\n#feedback .team-member img {\n  border: 7px solid #fff;\n  height: 150px;\n  width: 150px;\n}\n\n.onScrolled .nav-item a,\n.onScrolled .nav-item a span {\n  color: #0080ff !important;\n}\n\n.onScrolled .nav-item.cta > a {\n  border-left: 1px solid rgba(0, 128, 255, 0.7) !important;\n}\n\n.menu-btn {\n  border: unset;\n  outline: unset;\n  padding: 0px;\n  text-align: center;\n}\n\n.menu-btn:hover,\n.menu-btn:focus {\n  border: unset;\n  outline: unset;\n}\n\n.menu-btn i {\n  font-size: 33px;\n}\n\n.onScrolled .menu-btn i {\n  color: #0080ff;\n  font-size: 33px;\n}\n\n.c-title-h {\n  font-size: 25px !important;\n}\n\n.border-c {\n  border-top: 1px solid #dee2e659;\n}\n\n/*Slide Alert*/\n@-webkit-keyframes slideUp {\n  from {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n            transform: translateX(100%);\n  }\n  to {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n            transform: translateX(0);\n  }\n}\n@keyframes slideUp {\n  from {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n            transform: translateX(100%);\n  }\n  to {\n    opacity: 1;\n    -webkit-transform: translateX(0);\n            transform: translateX(0);\n  }\n}\n\n.featured-content-popup-interstitial {\n  -webkit-animation-duration: 3200ms;\n          animation-duration: 3200ms;\n  -webkit-animation-iteration-count: 1;\n          animation-iteration-count: 1;\n  -webkit-animation-name: slideUp;\n          animation-name: slideUp;\n  background-color: #fff;\n  border-radius: 8px;\n  bottom: 24px;\n  -webkit-box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.15);\n          box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.15);\n  color: #2a2a2a;\n  display: -ms-grid;\n  display: grid;\n  font-family: 'Roboto', sans-serif;\n  min-width: 180px;\n  overflow: hidden;\n  position: fixed;\n  right: 24px;\n  z-index: 9999;\n}\n\n@media screen and (max-width: 688px) {\n  .featured-content-popup-interstitial {\n    grid-auto-flow: row;\n    left: 24px;\n  }\n}\n\n@media screen and (min-width: 688px) {\n  .featured-content-popup-interstitial {\n    grid-auto-flow: column;\n    -ms-grid-columns: minmax(220px, 1fr);\n        grid-template-columns: minmax(220px, 1fr);\n    max-width: 640px;\n  }\n}\n\n.featured-content-popup-interstitial-actions {\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  display: -ms-grid;\n  display: grid;\n  grid-auto-flow: column;\n  grid-column-gap: 4px;\n  justify-items: end;\n}\n\n.featured-content-popup-interstitial-actions-action {\n  background-color: #0080ff;\n  border-color: #ffffff;\n  border-radius: 9999px;\n  border-style: solid;\n  border-width: 2px;\n  color: #08b7bb;\n  cursor: pointer;\n  padding: 8px 16px;\n  -webkit-transition: -webkit-filter 500ms ease;\n  transition: -webkit-filter 500ms ease;\n  transition: filter 500ms ease;\n  transition: filter 500ms ease, -webkit-filter 500ms ease;\n}\n\n.featured-content-popup-interstitial-actions-action:focus,\n.featured-content-popup-interstitial-actions-action:hover {\n  -webkit-filter: brightness(1.8);\n          filter: brightness(1.8);\n  outline: none;\n}\n\n.featured-content-popup-interstitial-actions-action-label-title {\n  color: #ffffff;\n  display: block;\n  font-size: 15px;\n  font-weight: 500;\n}\n\n.featured-content-popup-interstitial-chrome {\n  position: absolute;\n  right: 12px;\n  top: 12px;\n  z-index: 1;\n}\n\n.featured-content-popup-interstitial-chrome-actions {\n  -webkit-box-align: end;\n      -ms-flex-align: end;\n          align-items: end;\n  display: -ms-grid;\n  display: grid;\n  grid-auto-flow: column;\n  justify-items: end;\n}\n\n.featured-content-popup-interstitial-chrome-actions-action {\n  -ms-flex-line-pack: center;\n      align-content: center;\n  background-color: transparent;\n  border-width: 0;\n  color: #2a2a2a !important;\n  cursor: pointer;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  height: auto !important;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  line-height: inherit !important;\n  padding: 0 !important;\n  position: static !important;\n  -webkit-transition: color 500ms ease;\n  transition: color 500ms ease;\n  width: auto !important;\n}\n\n.featured-content-popup-interstitial-chrome-actions-action:focus,\n.featured-content-popup-interstitial-chrome-actions-action:hover {\n  color: #08b7bb;\n  border: none;\n  outline: none;\n}\n\n.featured-content-popup-interstitial-chrome-actions-action-media-object {\n  direction: ltr;\n  display: inline-block;\n  font-family: 'Material Icons', sans-serif;\n  font-size: 24px;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-height: 1;\n  text-transform: none;\n  white-space: nowrap;\n  word-wrap: normal;\n}\n\n.featured-content-popup-interstitial-label {\n  display: -ms-grid;\n  display: grid;\n  grid-auto-flow: row;\n  grid-row-gap: 6px;\n  justify-items: start;\n}\n\n.featured-content-popup-interstitial-label-description {\n  font-size: 13px;\n  line-height: 1.3em;\n  text-align: justify;\n}\n\n.featured-content-popup-interstitial-label-title {\n  font-size: 21px;\n}\n\n.featured-content-popup-interstitial-label-type {\n  background-color: #08b7bb;\n  border-radius: 4px;\n  color: #fff;\n  font-size: 12px;\n  line-height: 1em;\n  padding: 4px 6px;\n}\n\n.featured-content-popup-interstitial-main {\n  display: -ms-grid;\n  display: grid;\n  grid-auto-flow: row;\n  grid-row-gap: 24px;\n  padding: 24px;\n}\n\n.featured-content-popup-interstitial-media {\n  -webkit-box-align: stretch;\n      -ms-flex-align: stretch;\n          align-items: stretch;\n  display: -ms-grid;\n  display: grid;\n  overflow: hidden;\n}\n\n.featured-content-popup-interstitial-media-object {\n  display: block;\n  height: 204px;\n  max-height: 100%;\n  min-width: 100%;\n}\n\n/*Slide Alert END*/\n.side-alert-text {\n  color: #fff;\n}\n\n.ftco-navbar-light .navbar-nav > .nav-item > .nav-link {\n  color: #fff;\n  font-size: 14px;\n  font-weight: 400;\n  opacity: 1 !important;\n  padding-bottom: .9rem;\n  padding-left: 20px;\n  padding-right: 20px;\n  padding-top: .9rem;\n}\n\n.slider-text .font-size-medium {\n  font-size: 30px;\n}\n\n.slider-text p {\n  color: white;\n  font-size: 17px;\n  font-weight: 300;\n  line-height: 1.5;\n}\n\n.slider-text h1 {\n  color: #fff;\n  font-family: 'Lato', sans-serif;\n  font-size: 50px;\n  font-weight: 900;\n  line-height: 1.2;\n}\n\n.font-size-light {\n  font-size: 30px !important;\n}\n\n.slider-text .btn-primary {\n  -moz-border-radius: 30px;\n  -ms-border-radius: 30px;\n  -webkit-border-radius: 30px;\n  background: #fff !important;\n  border-radius: 30px;\n  border: 1px solid #fff !important;\n  color: #0031ff !important;\n  font-size: 17px;\n}\n\n.slider-text .btn-primary:hover,\n.slider-text .btn-primary:focus {\n  background: transparent !important;\n  color: #fff !important;\n}\n\n.ftco-navbar-light .navbar-nav > .nav-item.cta > a {\n  -moz-border-radius: 30px;\n  -ms-border-radius: 30px;\n  -webkit-border-radius: 30px;\n  border-left: 1px solid rgba(255, 255, 255, 0.6);\n  border-radius: 0px;\n  color: #fff;\n  margin-top: 4px;\n  padding-bottom: .5rem;\n  padding-left: 20px;\n  padding-right: 20px;\n  padding-top: .5rem;\n}\n\n.release_link {\n  color: #fff;\n}\n\n.release_link:hover {\n  color: #fff;\n}\n\n/**\nHome  block end\n*/\n@media only screen and (max-width: 991.98px) {\n  .slider-text h1 {\n    font-size: 40px;\n  }\n  .ftco-navbar-light {\n    position: relative;\n    top: 0;\n  }\n}\n\n@media only screen and (min-width: 991.98px) {\n  .one-forth {\n    padding-left: 8% !important;\n  }\n}\n\n@media only screen and (max-width: 767.98px) {\n  .slider-text .one-forth {\n    -ms-flex-item-align: unset;\n        -ms-grid-row-align: unset;\n        align-self: unset;\n    margin-top: 5%;\n    text-align: center;\n    width: 100% !important;\n  }\n}\n\n@media only screen and (min-device-width: 768px) and (max-device-width: 1440px) {\n  /* Styles */\n  .text-home-mini {\n    font-size: 25px;\n    font-weight: 400;\n  }\n  .text-home-max {\n    font-size: 49px;\n    font-weight: bold;\n  }\n  .text-home-how {\n    font-size: 25px;\n    font-weight: lighter;\n  }\n}\n\n@media (min-width: 320px) and (max-width: 768px) {\n  .ftco-navbar-light .navbar-nav > .nav-item.cta > a {\n    border-left: unset;\n  }\n  .onScrolled .nav-item.cta > a {\n    border-left: unset !important;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/fonts/flaticon/backup.txt",
    "content": "eyIxIjp7IklEIjoxLCJuYW1lIjoiTXkgaWNvbnMgY29sbGVjdGlvbiIsImJvb2ttYXJrX2lkIjoiZHpvejQ5Z2pvNjAwMDAwMCIsImNyZWF0ZWQiOm51bGwsInVwZGF0ZWQiOjE1MzM3MjE3MDcsImFjdGl2ZSI6MSwic291cmNlIjoibG9jYWwiLCJvcmRlciI6MCwiY29sb3IiOiIwMDAwMDAiLCJzdGF0dXMiOjF9LCJkem96NDlnam82MDAwMDAwIjpbeyJpZCI6MTYxNjIzLCJ0ZWFtIjowLCJuYW1lIjoiZ3VhcmFudGVlIiwiY29sb3IiOiIjMDAwMDAwIiwicHJlbWl1bSI6MCwic29ydCI6MX0seyJpZCI6NzcxNjAxLCJ0ZWFtIjowLCJuYW1lIjoic3VwcG9ydCIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjN9LHsiaWQiOjg4NDU1MywidGVhbSI6MCwibmFtZSI6InNoaWVsZCIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjJ9XX0="
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/fonts/flaticon/font/_flaticon.scss",
    "content": "    /*\n    Flaticon icon font: Flaticon\n    Creation date: 08/08/2018 11:48\n    */\n\n    @font-face {\n  font-family: \"Flaticon\";\n  src: url(\"./Flaticon.eot\");\n  src: url(\"./Flaticon.eot?#iefix\") format(\"embedded-opentype\"),\n       url(\"./Flaticon.woff\") format(\"woff\"),\n       url(\"./Flaticon.ttf\") format(\"truetype\"),\n       url(\"./Flaticon.svg#Flaticon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n  @font-face {\n    font-family: \"Flaticon\";\n    src: url(\"./Flaticon.svg#Flaticon\") format(\"svg\");\n  }\n}\n\n    .fi:before{\n        display: inline-block;\n  font-family: \"Flaticon\";\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  line-height: 1;\n  text-decoration: inherit;\n  text-rendering: optimizeLegibility;\n  text-transform: none;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  font-smoothing: antialiased;\n    }\n\n    .flaticon-guarantee:before { content: \"\\f100\"; }\n.flaticon-shield:before { content: \"\\f101\"; }\n.flaticon-support:before { content: \"\\f102\"; }\n    \n    $font-Flaticon-guarantee: \"\\f100\";\n    $font-Flaticon-shield: \"\\f101\";\n    $font-Flaticon-support: \"\\f102\";"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/fonts/flaticon/font/flaticon.css",
    "content": "\t/*\n  \tFlaticon icon font: Flaticon\n  \tCreation date: 08/08/2018 11:48\n  \t*/\n\n@font-face {\n  font-family: \"Flaticon\";\n  src: url(\"./Flaticon.eot\");\n  src: url(\"./Flaticon.eot?#iefix\") format(\"embedded-opentype\"),\n       url(\"./Flaticon.woff\") format(\"woff\"),\n       url(\"./Flaticon.ttf\") format(\"truetype\"),\n       url(\"./Flaticon.svg#Flaticon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n  @font-face {\n    font-family: \"Flaticon\";\n    src: url(\"./Flaticon.svg#Flaticon\") format(\"svg\");\n  }\n}\n\n[class^=\"flaticon-\"]:before, [class*=\" flaticon-\"]:before,\n[class^=\"flaticon-\"]:after, [class*=\" flaticon-\"]:after {   \n  font-family: Flaticon;\n        font-size: 20px;\nfont-style: normal;\nmargin-left: 20px;\n}\n\n.flaticon-guarantee:before { content: \"\\f100\"; }\n.flaticon-shield:before { content: \"\\f101\"; }\n.flaticon-support:before { content: \"\\f102\"; }"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/fonts/flaticon/font/flaticon.html",
    "content": "<!DOCTYPE html>\n<!--\n  Flaticon icon font: Flaticon\n  Creation date: 08/08/2018 11:48\n-->\n<html>\n<!DOCTYPE html>\n<html>\n\n<head>\n    <title>Flaticon WebFont</title>\n    <link href=\"http://fonts.googleapis.com/css?family=Varela+Round\" rel=\"stylesheet\" type=\"text/css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"flaticon.css\">\n    <meta charset=\"UTF-8\">\n    <style>\n    html, body, div, span, applet, object, iframe,\n    h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n    a, abbr, acronym, address, big, cite, code,\n    del, dfn, em, img, ins, kbd, q, s, samp,\n    small, strike, strong, sub, sup, tt, var,\n    b, u, i, center,\n    dl, dt, dd, ol, ul, li,\n    fieldset, form, label, legend,\n    table, caption, tbody, tfoot, thead, tr, th, td,\n    article, aside, canvas, details, embed, \n    figure, figcaption, footer, header, hgroup, \n    menu, nav, output, ruby, section, summary,\n    time, mark, audio, video {\n        margin: 0;\n        padding: 0;\n        border: 0;\n        font-size: 100%;\n        font: inherit;\n        vertical-align: baseline;\n    }\n    /* HTML5 display-role reset for older browsers */\n    article, aside, details, figcaption, figure, \n    footer, header, hgroup, menu, nav, section {\n        display: block;\n    }\n    body {\n        line-height: 1;\n    }\n    ol, ul {\n        list-style: none;\n    }\n    blockquote, q {\n        quotes: none;\n    }\n    blockquote:before, blockquote:after,\n    q:before, q:after {\n        content: '';\n        content: none;\n    }\n    table {\n        border-collapse: collapse;\n        border-spacing: 0;\n    }\n    body {\n        font-family: 'Varela Round', Helvetica, Arial, sans-serif;\n        font-size: 16px;\n        color: #222;\n    }\n    a {\n        color: #333;\n        border-bottom: 1px solid #a9fd00;\n        font-weight: bold;\n        text-decoration: none;\n    }\n    * {\n        -moz-box-sizing: border-box;\n        -webkit-box-sizing: border-box;\n        box-sizing: border-box;\n        margin: 0;\n        padding: 0;\n    }\n    [class^=\"flaticon-\"]:before, [class*=\" flaticon-\"]:before, [class^=\"flaticon-\"]:after, [class*=\" flaticon-\"]:after {\n        font-family: Flaticon;\n        font-size: 30px;\n        font-style: normal;\n        margin-left: 20px;\n        color: #333;\n    }\n    .wrapper {\n        max-width: 600px;\n        margin: auto;\n        padding: 0 1em;\n    }\n    .title {\n        font-size: 1.25em;\n        text-align: center;\n        margin-bottom: 1em;\n        text-transform: uppercase;\n    }\n    header {\n        text-align: center;\n        background-color: #222;\n        color: #fff;\n        padding: 1em;\n    }\n    header .logo {\n        width: 210px;\n        height: 38px;\n        display: inline-block;\n        vertical-align: middle;\n        margin-right: 1em;\n        border: none;\n    }\n    header strong {\n        font-size: 1.95em;\n        font-weight: bold;\n        vertical-align: middle;\n        margin-top: 5px;\n        display: inline-block;\n    }\n    .demo {\n        margin: 2em auto;\n        line-height: 1.25em;\n    }\n    .demo ul li {\n        margin-bottom: 1em;\n    }\n    .demo ul li .num {\n        color: #222;\n        border-radius: 20px;\n        display: inline-block;\n        width: 26px;\n        padding: 3px;\n        height: 26px;\n        text-align: center;\n        margin-right: 0.5em;\n        border: 1px solid #222;\n    }\n    .demo ul li code {\n        background-color: #222;\n        border-radius: 4px;\n        padding: 0.25em 0.5em;\n        display: inline-block;\n        color: #fff;\n        font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;\n        font-weight: lighter;\n        margin-top: 1em;\n        font-size: 0.8em;\n        word-break: break-all;\n    }\n    .demo ul li code.big {\n        padding: 1em;\n        font-size: 0.9em;\n    }\n    .demo ul li code .red {\n        color: #EF3159;\n    }\n    .demo ul li code .green {\n        color: #ACFF65;\n    }\n    .demo ul li code .yellow {\n        color: #FFFF99;\n    }\n    .demo ul li code .blue {\n        color: #99D3FF;\n    }\n    .demo ul li code .purple {\n        color: #A295FF;\n    }\n    .demo ul li code .dots {\n        margin-top: 0.5em;\n        display: block;\n    }\n    #glyphs {\n        border-bottom: 1px solid #ccc;\n        padding: 2em 0;\n        text-align: center;\n    }\n    .glyph {\n        display: inline-block;\n        width: 9em;\n        margin: 1em;\n        text-align: center;\n        vertical-align: top;\n        background: #FFF;\n    }\n    .glyph .glyph-icon {\n        padding: 10px;\n        display: block;\n        font-family:\"Flaticon\";\n        font-size: 64px;\n        line-height: 1;\n    }\n    .glyph .glyph-icon:before {\n        font-size: 64px;\n        color: #222;\n        margin-left: 0;\n    }\n    .class-name {\n        font-size: 0.65em;\n        background-color: #222;\n        color: #fff;\n        border-radius: 4px 4px 0 0;\n        padding: 0.5em;\n        color: #FFFF99;\n        font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;\n    }\n    .author-name {\n        font-size: 0.6em;\n        background-color: #fcfcfd;\n        border: 1px solid #DEDEE4;\n        border-top: 0;\n        border-radius: 0 0 4px 4px;\n        padding: 0.5em;\n    }\n    .class-name:last-child {\n        font-size: 10px;\n        color:#888;\n    }\n    .class-name:last-child a {\n        font-size: 10px;\n        color:#555;\n    }\n    .class-name:last-child a:hover {\n        color:#a9fd00;\n    }\n    .glyph > input {\n        display: block;\n        width: 100px;\n        margin: 5px auto;\n        text-align: center;\n        font-size: 12px;\n        cursor: text;\n    }\n    .glyph > input.icon-input {\n        font-family:\"Flaticon\";\n        font-size: 16px;\n        margin-bottom: 10px;\n    }\n    .attribution .title {\n        margin-top: 2em;\n    }\n    .attribution textarea {\n        background-color: #fcfcfd;\n        padding: 1em;\n        border: none;\n        box-shadow: none;\n        border: 1px solid #DEDEE4;\n        border-radius: 4px;\n        resize: none;\n        width: 100%;\n        height: 150px;\n        font-size: 0.8em;\n        font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;\n        -webkit-appearance: none;\n    }\n    .iconsuse {\n        margin: 2em auto;\n        text-align: center;\n        max-width: 1200px;\n    }\n    .iconsuse:after {\n        content: '';\n        display: table;\n        clear: both;\n    }\n    .iconsuse .image {\n        float: left;\n        width: 25%;\n        padding: 0 1em;\n    }\n    .iconsuse .image p {\n        margin-bottom: 1em;\n    }\n    .iconsuse .image span {\n        display: block;\n        font-size: 0.65em;\n        background-color: #222;\n        color: #fff;\n        border-radius: 4px;\n        padding: 0.5em;\n        color: #FFFF99;\n        margin-top: 1em;\n        font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;\n    }\n    #footer {\n        text-align: center;\n        background-color: #4C5B5C;\n        color: #7c9192;\n        padding: 1em;\n    }\n    #footer a {\n        border: none;\n        color: #a9fd00;\n        font-weight: normal;\n    }\n    @media (max-width: 960px) {\n        .iconsuse .image {\n            width: 50%;\n        }\n    }\n    @media (max-width: 560px) {\n        .iconsuse .image {\n            width: 100%;\n        }\n    }\n    </style>\n</head>\n\n<body class=\"characters-off\">\n\n    <header>\n        <a href=\"http://www.flaticon.com\" target=\"_blank\" class=\"logo\">\n            <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:a=\"http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/\" viewBox=\"0 0 560.875 102.036\" enable-background=\"new 0 0 560.875 102.036\" xml:space=\"preserve\">\n                <defs>\n                </defs>\n                <g>\n                    <g class=\"letters\">\n                        <path fill=\"#ffffff\" d=\"M141.596,29.675c0-3.777,2.985-6.767,6.764-6.767h34.438c3.426,0,6.15,2.728,6.15,6.15\n                        c0,3.43-2.724,6.149-6.15,6.149h-27.674v13.091h23.719c3.429,0,6.151,2.724,6.151,6.15c0,3.43-2.723,6.149-6.151,6.149h-23.719\n                        v17.574c0,3.773-2.986,6.761-6.764,6.761c-3.779,0-6.764-2.989-6.764-6.761V29.675z\"></path>\n                        <path fill=\"#ffffff\" d=\"M193.844,29.149c0-3.781,2.985-6.767,6.764-6.767c3.776,0,6.763,2.985,6.763,6.767v42.957h25.039\n                        c3.426,0,6.149,2.726,6.149,6.153c0,3.425-2.723,6.15-6.149,6.15h-31.802c-3.779,0-6.764-2.986-6.764-6.768V29.149z\"></path>\n                        <path fill=\"#ffffff\" d=\"M241.891,75.71l21.438-48.407c1.492-3.341,4.215-5.357,7.906-5.357h0.792\n                        c3.686,0,6.323,2.017,7.815,5.357l21.439,48.407c0.436,0.967,0.701,1.845,0.701,2.723c0,3.602-2.809,6.501-6.414,6.501\n                        c-3.161,0-5.269-1.845-6.499-4.655l-4.132-9.661h-27.059l-4.301,10.102c-1.144,2.631-3.426,4.214-6.237,4.214\n                        c-3.517,0-6.24-2.81-6.24-6.325C241.1,77.64,241.451,76.677,241.891,75.71z M279.932,58.666l-8.521-20.297l-8.526,20.297H279.932\n                        z\"></path>\n                        <path fill=\"#ffffff\" d=\"M314.864,35.387H301.86c-3.429,0-6.239-2.813-6.239-6.238c0-3.429,2.811-6.24,6.239-6.24h39.533\n                        c3.426,0,6.237,2.811,6.237,6.24c0,3.425-2.811,6.238-6.237,6.238h-13.001v42.785c0,3.773-2.99,6.761-6.764,6.761\n                        c-3.779,0-6.764-2.989-6.764-6.761V35.387z\"></path>\n                        <path fill=\"#A9FD00\" d=\"M352.615,29.149c0-3.781,2.985-6.767,6.767-6.767c3.774,0,6.761,2.985,6.761,6.767v49.024\n                        c0,3.773-2.987,6.761-6.761,6.761c-3.781,0-6.767-2.989-6.767-6.761V29.149z\"></path>\n                        <path fill=\"#A9FD00\" d=\"M374.132,53.836v-0.179c0-17.481,13.178-31.801,32.065-31.801c9.22,0,15.459,2.458,20.557,6.238\n                        c1.402,1.054,2.637,2.985,2.637,5.357c0,3.692-2.985,6.59-6.681,6.59c-1.845,0-3.071-0.702-4.044-1.319\n                        c-3.776-2.813-7.729-4.393-12.562-4.393c-10.364,0-17.831,8.611-17.831,19.154v0.173c0,10.542,7.291,19.329,17.831,19.329\n                        c5.715,0,9.492-1.756,13.359-4.834c1.049-0.874,2.458-1.491,4.039-1.491c3.429,0,6.325,2.813,6.325,6.236\n                        c0,2.106-1.056,3.78-2.282,4.834c-5.539,4.834-12.036,7.733-21.878,7.733C387.572,85.464,374.132,71.493,374.132,53.836z\"></path>\n                        <path fill=\"#A9FD00\" d=\"M433.009,53.836v-0.179c0-17.481,13.79-31.801,32.766-31.801c18.981,0,32.592,14.143,32.592,31.628v0.173\n                        c0,17.483-13.785,31.807-32.769,31.807C446.625,85.464,433.009,71.32,433.009,53.836z M484.224,53.836v-0.179\n                        c0-10.539-7.725-19.326-18.626-19.326c-10.893,0-18.449,8.611-18.449,19.154v0.173c0,10.542,7.73,19.329,18.626,19.329\n                        C476.676,72.986,484.224,64.378,484.224,53.836z\"></path>\n                        <path fill=\"#A9FD00\" d=\"M506.233,29.321c0-3.774,2.99-6.763,6.767-6.763h1.401c3.252,0,5.183,1.583,7.029,3.953l26.093,34.265\n                        V29.059c0-3.692,2.99-6.677,6.681-6.677c3.683,0,6.671,2.985,6.671,6.677v48.934c0,3.78-2.987,6.765-6.764,6.765h-0.436\n                        c-3.257,0-5.188-1.581-7.034-3.953l-27.056-35.492v32.944c0,3.687-2.985,6.676-6.678,6.676c-3.683,0-6.673-2.989-6.673-6.676\n                        V29.321z\"></path>\n                    </g>\n                    <g class=\"insignia\">\n                        <path fill=\"#ffffff\" d=\"M48.372,56.137h12.517l11.156-18.537H37.186L25.688,18.539h57.825L94.668,0H9.271\n                        C5.925,0,2.842,1.801,1.198,4.716c-1.644,2.907-1.593,6.482,0.134,9.343l50.38,83.501c1.678,2.781,4.689,4.476,7.938,4.476\n                        c3.246,0,6.257-1.695,7.935-4.476l2.898-4.804L48.372,56.137z\"></path>\n                        <g class=\"i\">\n                            <path fill=\"#A9FD00\" d=\"M93.575,18.539h0.031v0.004l21.652,0.004l2.705-4.488c1.727-2.861,1.778-6.436,0.133-9.343\n                            C116.454,1.801,113.371,0,110.026,0h-5.294L93.575,18.539z\"></path>\n                            <polygon fill=\"#A9FD00\" points=\"88.291,27.356 64.725,66.486 75.519,84.404 109.942,27.356\"></polygon>\n                        </g>\n                    </g>\n                </g>\n            </svg>\n        </a>\n        <strong>Font Demo</strong>\n    </header>\n\n\n    <section class=\"demo wrapper\">\n\n        <p class=\"title\">Instructions</p>\n\n        <ul>\n            <li>\n                <span class=\"num\">1</span>Copy the \"Fonts\" files and CSS files to your website CSS folder.\n            </li>\n            <li>\n                <span class=\"num\">2</span>Add the CSS link to your website source code on header.\n                <code class=\"big\">\n                    &lt;<span class=\"red\">head</span>&gt;\n                    <br/><span class=\"dots\">...</span>\n                    <br/>&lt;<span class=\"red\">link</span> <span class=\"green\">rel</span>=<span class=\"yellow\">\"stylesheet\"</span> <span class=\"green\">type</span>=<span class=\"yellow\">\"text/css\"</span> <span class=\"green\">href</span>=<span class=\"yellow\">\"your_website_domain/css_root/flaticon.css\"</span>&gt;\n                    <br/><span class=\"dots\">...</span>\n                    <br/>&lt;/<span class=\"red\">head</span>&gt;\n                </code>\n            </li>\n\n            <li>\n                <p>\n                    <span class=\"num\">3</span>Use the icon class on <code>\"<span class=\"blue\">display</span>:<span class=\"purple\"> inline</span>\"</code> elements:\n                    <br />\n                    Use example: <code>&lt;<span class=\"red\">i</span> <span class=\"green\">class</span>=<span class=\"yellow\">&quot;flaticon-airplane49&quot;</span>&gt;&lt;/<span class=\"red\">i</span>&gt;</code> or <code>&lt;<span class=\"red\">span</span> <span class=\"green\">class</span>=<span class=\"yellow\">&quot;flaticon-airplane49&quot;</span>&gt;&lt;/<span class=\"red\">span</span>&gt;</code>\n            </li>\n        </ul>\n\n    </section>\n\n\n\n\n   <section id=\"glyphs\">          \n    \n      \n        <div class=\"glyph\"><div class=\"glyph-icon flaticon-guarantee\"></div>\n            <div class=\"class-name\">.flaticon-guarantee</div>\n            <div class=\"author-name\">Author: <a data-file=\"001-guarantee\" href=\"https://www.flaticon.com/authors/becris\">Becris</a> </div> \n        </div>        \n        \n        <div class=\"glyph\"><div class=\"glyph-icon flaticon-shield\"></div>\n            <div class=\"class-name\">.flaticon-shield</div>\n            <div class=\"author-name\">Author: <a data-file=\"002-shield\" href=\"http://www.freepik.com\">Freepik</a> </div> \n        </div>        \n        \n        <div class=\"glyph\"><div class=\"glyph-icon flaticon-support\"></div>\n            <div class=\"class-name\">.flaticon-support</div>\n            <div class=\"author-name\">Author: <a data-file=\"003-support\" href=\"https://www.flaticon.com/authors/good-ware\">Good Ware</a> </div> \n        </div>        \n        \n\n    </section>\n\n\n\n    <section class=\"attribution wrapper\"   style=\"text-align:center;\">\n\n      <div class=\"title\">License and attribution:</div><div class=\"attrDiv\">Font generated by <a href=\"http://www.flaticon.com\">flaticon.com</a>. <div><p>Under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC</a>: <a data-file=\"001-guarantee\" href=\"https://www.flaticon.com/authors/becris\">Becris</a>, <a data-file=\"003-support\" href=\"https://www.flaticon.com/authors/good-ware\">Good Ware</a>, <a data-file=\"002-shield\" href=\"http://www.freepik.com\">Freepik</a></p>  </div>\n      </div>\n      <div class=\"title\">Copy the Attribution License:</div>\n\n    <textarea onclick=\"this.focus();this.select();\">Font generated by &lt;a href=&quot;http://www.flaticon.com&quot;&gt;flaticon.com&lt;/a&gt;. <p>Under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC</a>: <a data-file=\"001-guarantee\" href=\"https://www.flaticon.com/authors/becris\">Becris</a>, <a data-file=\"003-support\" href=\"https://www.flaticon.com/authors/good-ware\">Good Ware</a>, <a data-file=\"002-shield\" href=\"http://www.freepik.com\">Freepik</a></p>  \n     </textarea>\n\n    </section>\n\n    <section class=\"iconsuse\">\n\n          <div class=\"title\">Examples:</div>            \n             \n            <div class=\"image\">\n                <p>\n                    <i class=\"glyph-icon flaticon-guarantee\"></i> \n                    <span>&lt;i class=&quot;flaticon-guarantee&quot;&gt;&lt;/i&gt;</span>\n                </p>\n            </div>\n            \n            <div class=\"image\">\n                <p>\n                    <i class=\"glyph-icon flaticon-shield\"></i> \n                    <span>&lt;i class=&quot;flaticon-shield&quot;&gt;&lt;/i&gt;</span>\n                </p>\n            </div>\n            \n            <div class=\"image\">\n                <p>\n                    <i class=\"glyph-icon flaticon-support\"></i> \n                    <span>&lt;i class=&quot;flaticon-support&quot;&gt;&lt;/i&gt;</span>\n                </p>\n            </div>\n                       \n        </div>\n                            \n    </section>\n\n<div id=\"footer\">\n    <div>Generated by <a href=\"http://www.flaticon.com\">flaticon.com</a>\n    </div>\n</div>\n\n\n\n</body>\n</html>"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/assets/js/intro.js",
    "content": "/**\n * Intro.js v2.9.3\n * https://github.com/usablica/intro.js\n *\n * Copyright (C) 2017 Afshin Mehrabani (@afshinmeh)\n */\n\n(function(f) {\n    if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        module.exports = f();\n        // deprecated function\n        // @since 2.8.0\n        module.exports.introJs = function () {\n          console.warn('Deprecated: please use require(\"intro.js\") directly, instead of the introJs method of the function');\n          // introJs()\n          return f().apply(this, arguments);\n        };\n    } else if (typeof define === \"function\" && define.amd) {\n        define([], f);\n    } else {\n        var g;\n        if (typeof window !== \"undefined\") {\n            g = window;\n        } else if (typeof global !== \"undefined\") {\n            g = global;\n        } else if (typeof self !== \"undefined\") {\n            g = self;\n        } else {\n            g = this;\n        }\n        g.introJs = f();\n    }\n})(function () {\n  //Default config/variables\n  var VERSION = '2.9.3';\n\n  /**\n   * IntroJs main class\n   *\n   * @class IntroJs\n   */\n  function IntroJs(obj) {\n    this._targetElement = obj;\n    this._introItems = [];\n\n    this._options = {\n      /* Next button label in tooltip box */\n      nextLabel: 'Next &rarr;',\n      /* Previous button label in tooltip box */\n      prevLabel: '&larr; Back',\n      /* Skip button label in tooltip box */\n      skipLabel: 'Skip',\n      /* Done button label in tooltip box */\n      doneLabel: 'Done',\n      /* Hide previous button in the first step? Otherwise, it will be disabled button. */\n      hidePrev: false,\n      /* Hide next button in the last step? Otherwise, it will be disabled button. */\n      hideNext: false,\n      /* Default tooltip box position */\n      tooltipPosition: 'bottom',\n      /* Next CSS class for tooltip boxes */\n      tooltipClass: '',\n      /* CSS class that is added to the helperLayer */\n      highlightClass: '',\n      /* Close introduction when pressing Escape button? */\n      exitOnEsc: true,\n      /* Close introduction when clicking on overlay layer? */\n      exitOnOverlayClick: true,\n      /* Show step numbers in introduction? */\n      showStepNumbers: true,\n      /* Let user use keyboard to navigate the tour? */\n      keyboardNavigation: true,\n      /* Show tour control buttons? */\n      showButtons: true,\n      /* Show tour bullets? */\n      showBullets: true,\n      /* Show tour progress? */\n      showProgress: false,\n      /* Scroll to highlighted element? */\n      scrollToElement: true,\n      /*\n       * Should we scroll the tooltip or target element?\n       *\n       * Options are: 'element' or 'tooltip'\n       */\n      scrollTo: 'element',\n      /* Padding to add after scrolling when element is not in the viewport (in pixels) */\n      scrollPadding: 30,\n      /* Set the overlay opacity */\n      overlayOpacity: 0.8,\n      /* Precedence of positions, when auto is enabled */\n      positionPrecedence: [\"bottom\", \"top\", \"right\", \"left\"],\n      /* Disable an interaction with element? */\n      disableInteraction: false,\n      /* Set how much padding to be used around helper element */\n      helperElementPadding: 10,\n      /* Default hint position */\n      hintPosition: 'top-middle',\n      /* Hint button label */\n      hintButtonLabel: 'Got it',\n      /* Adding animation to hints? */\n      hintAnimation: true,\n      /* additional classes to put on the buttons */\n      buttonClass: \"introjs-button\"\n    };\n  }\n\n  /**\n   * Initiate a new introduction/guide from an element in the page\n   *\n   * @api private\n   * @method _introForElement\n   * @param {Object} targetElm\n   * @param {String} group\n   * @returns {Boolean} Success or not?\n   */\n  function _introForElement(targetElm, group) {\n    var allIntroSteps = targetElm.querySelectorAll(\"*[data-intro]\"),\n        introItems = [];\n\n    if (this._options.steps) {\n      //use steps passed programmatically\n      _forEach(this._options.steps, function (step) {\n        var currentItem = _cloneObject(step);\n\n        //set the step\n        currentItem.step = introItems.length + 1;\n\n        //use querySelector function only when developer used CSS selector\n        if (typeof (currentItem.element) === 'string') {\n          //grab the element with given selector from the page\n          currentItem.element = document.querySelector(currentItem.element);\n        }\n\n        //intro without element\n        if (typeof (currentItem.element) === 'undefined' || currentItem.element === null) {\n          var floatingElementQuery = document.querySelector(\".introjsFloatingElement\");\n\n          if (floatingElementQuery === null) {\n            floatingElementQuery = document.createElement('div');\n            floatingElementQuery.className = 'introjsFloatingElement';\n\n            document.body.appendChild(floatingElementQuery);\n          }\n\n          currentItem.element  = floatingElementQuery;\n          currentItem.position = 'floating';\n        }\n\n        currentItem.scrollTo = currentItem.scrollTo || this._options.scrollTo;\n\n        if (typeof (currentItem.disableInteraction) === 'undefined') {\n          currentItem.disableInteraction = this._options.disableInteraction;\n        }\n\n        if (currentItem.element !== null) {\n          introItems.push(currentItem);\n        }        \n      }.bind(this));\n\n    } else {\n      //use steps from data-* annotations\n      var elmsLength = allIntroSteps.length;\n      var disableInteraction;\n      \n      //if there's no element to intro\n      if (elmsLength < 1) {\n        return false;\n      }\n\n      _forEach(allIntroSteps, function (currentElement) {\n        \n        // PR #80\n        // start intro for groups of elements\n        if (group && (currentElement.getAttribute(\"data-intro-group\") !== group)) {\n          return;\n        }\n\n        // skip hidden elements\n        if (currentElement.style.display === 'none') {\n          return;\n        }\n\n        var step = parseInt(currentElement.getAttribute('data-step'), 10);\n\n        if (typeof (currentElement.getAttribute('data-disable-interaction')) !== 'undefined') {\n          disableInteraction = !!currentElement.getAttribute('data-disable-interaction');\n        } else {\n          disableInteraction = this._options.disableInteraction;\n        }\n\n        if (step > 0) {\n          introItems[step - 1] = {\n            element: currentElement,\n            intro: currentElement.getAttribute('data-intro'),\n            step: parseInt(currentElement.getAttribute('data-step'), 10),\n            tooltipClass: currentElement.getAttribute('data-tooltipclass'),\n            highlightClass: currentElement.getAttribute('data-highlightclass'),\n            position: currentElement.getAttribute('data-position') || this._options.tooltipPosition,\n            scrollTo: currentElement.getAttribute('data-scrollto') || this._options.scrollTo,\n            disableInteraction: disableInteraction\n          };\n        }\n      }.bind(this));\n\n      //next add intro items without data-step\n      //todo: we need a cleanup here, two loops are redundant\n      var nextStep = 0;\n\n      _forEach(allIntroSteps, function (currentElement) {\n        \n        // PR #80\n        // start intro for groups of elements\n        if (group && (currentElement.getAttribute(\"data-intro-group\") !== group)) {\n          return;\n        }\n        \n        if (currentElement.getAttribute('data-step') === null) {\n\n          while (true) {\n            if (typeof introItems[nextStep] === 'undefined') {\n              break;\n            } else {\n              nextStep++;\n            }\n          } \n\n          if (typeof (currentElement.getAttribute('data-disable-interaction')) !== 'undefined') {\n            disableInteraction = !!currentElement.getAttribute('data-disable-interaction');\n          } else {\n            disableInteraction = this._options.disableInteraction;\n          }\n\n          introItems[nextStep] = {\n            element: currentElement,\n            intro: currentElement.getAttribute('data-intro'),\n            step: nextStep + 1,\n            tooltipClass: currentElement.getAttribute('data-tooltipclass'),\n            highlightClass: currentElement.getAttribute('data-highlightclass'),\n            position: currentElement.getAttribute('data-position') || this._options.tooltipPosition,\n            scrollTo: currentElement.getAttribute('data-scrollto') || this._options.scrollTo,\n            disableInteraction: disableInteraction\n          };\n        }\n      }.bind(this));\n    }\n\n    //removing undefined/null elements\n    var tempIntroItems = [];\n    for (var z = 0; z < introItems.length; z++) {\n      if (introItems[z]) {\n        // copy non-falsy values to the end of the array\n        tempIntroItems.push(introItems[z]);  \n      } \n    }\n\n    introItems = tempIntroItems;\n\n    //Ok, sort all items with given steps\n    introItems.sort(function (a, b) {\n      return a.step - b.step;\n    });\n\n    //set it to the introJs object\n    this._introItems = introItems;\n\n    //add overlay layer to the page\n    if(_addOverlayLayer.call(this, targetElm)) {\n      //then, start the show\n      _nextStep.call(this);\n\n      if (this._options.keyboardNavigation) {\n        DOMEvent.on(window, 'keydown', _onKeyDown, this, true);\n      }\n      //for window resize\n      DOMEvent.on(window, 'resize', _onResize, this, true);\n    }\n    return false;\n  }\n\n  function _onResize () {\n    this.refresh.call(this);\n  }\n\n  /**\n  * on keyCode:\n  * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n  * This feature has been removed from the Web standards.\n  * Though some browsers may still support it, it is in\n  * the process of being dropped.\n  * Instead, you should use KeyboardEvent.code,\n  * if it's implemented.\n  *\n  * jQuery's approach is to test for\n  *   (1) e.which, then\n  *   (2) e.charCode, then\n  *   (3) e.keyCode\n  * https://github.com/jquery/jquery/blob/a6b0705294d336ae2f63f7276de0da1195495363/src/event.js#L638\n  *\n  * @param type var\n  * @return type\n  */\n  function _onKeyDown (e) {\n    var code = (e.code === null) ? e.which : e.code;\n\n    // if code/e.which is null\n    if (code === null) {\n      code = (e.charCode === null) ? e.keyCode : e.charCode;\n    }\n    \n    if ((code === 'Escape' || code === 27) && this._options.exitOnEsc === true) {\n      //escape key pressed, exit the intro\n      //check if exit callback is defined\n      _exitIntro.call(this, this._targetElement);\n    } else if (code === 'ArrowLeft' || code === 37) {\n      //left arrow\n      _previousStep.call(this);\n    } else if (code === 'ArrowRight' || code === 39) {\n      //right arrow\n      _nextStep.call(this);\n    } else if (code === 'Enter' || code === 13) {\n      //srcElement === ie\n      var target = e.target || e.srcElement;\n      if (target && target.className.match('introjs-prevbutton')) {\n        //user hit enter while focusing on previous button\n        _previousStep.call(this);\n      } else if (target && target.className.match('introjs-skipbutton')) {\n        //user hit enter while focusing on skip button\n        if (this._introItems.length - 1 === this._currentStep && typeof (this._introCompleteCallback) === 'function') {\n            this._introCompleteCallback.call(this);\n        }\n\n        _exitIntro.call(this, this._targetElement);\n      } else if (target && target.getAttribute('data-stepnumber')) {\n        // user hit enter while focusing on step bullet\n        target.click();\n      } else {\n        //default behavior for responding to enter\n        _nextStep.call(this);\n      }\n\n      //prevent default behaviour on hitting Enter, to prevent steps being skipped in some browsers\n      if(e.preventDefault) {\n        e.preventDefault();\n      } else {\n        e.returnValue = false;\n      }\n    }\n  }\n\n /*\n   * makes a copy of the object\n   * @api private\n   * @method _cloneObject\n  */\n  function _cloneObject(object) {\n      if (object === null || typeof (object) !== 'object' || typeof (object.nodeType) !== 'undefined') {\n        return object;\n      }\n      var temp = {};\n      for (var key in object) {\n        if (typeof(window.jQuery) !== 'undefined' && object[key] instanceof window.jQuery) {\n          temp[key] = object[key];\n        } else {\n          temp[key] = _cloneObject(object[key]);\n        }\n      }\n      return temp;\n  }\n  /**\n   * Go to specific step of introduction\n   *\n   * @api private\n   * @method _goToStep\n   */\n  function _goToStep(step) {\n    //because steps starts with zero\n    this._currentStep = step - 2;\n    if (typeof (this._introItems) !== 'undefined') {\n      _nextStep.call(this);\n    }\n  }\n\n  /**\n   * Go to the specific step of introduction with the explicit [data-step] number\n   *\n   * @api private\n   * @method _goToStepNumber\n   */\n  function _goToStepNumber(step) {\n    this._currentStepNumber = step;\n    if (typeof (this._introItems) !== 'undefined') {\n      _nextStep.call(this);\n    }\n  }\n\n  /**\n   * Go to next step on intro\n   *\n   * @api private\n   * @method _nextStep\n   */\n  function _nextStep() {\n    this._direction = 'forward';\n\n    if (typeof (this._currentStepNumber) !== 'undefined') {\n      _forEach(this._introItems, function (item, i) {\n        if( item.step === this._currentStepNumber ) {\n          this._currentStep = i - 1;\n          this._currentStepNumber = undefined;\n        }\n      }.bind(this));\n    }\n\n    if (typeof (this._currentStep) === 'undefined') {\n      this._currentStep = 0;\n    } else {\n      ++this._currentStep;\n    }\n\n    var nextStep = this._introItems[this._currentStep];\n    var continueStep = true;\n\n    if (typeof (this._introBeforeChangeCallback) !== 'undefined') {\n      continueStep = this._introBeforeChangeCallback.call(this, nextStep.element);\n    }\n\n    // if `onbeforechange` returned `false`, stop displaying the element\n    if (continueStep === false) {\n      --this._currentStep;\n      return false;\n    }\n\n    if ((this._introItems.length) <= this._currentStep) {\n      //end of the intro\n      //check if any callback is defined\n      if (typeof (this._introCompleteCallback) === 'function') {\n        this._introCompleteCallback.call(this);\n      }\n      _exitIntro.call(this, this._targetElement);\n      return;\n    }\n\n    _showElement.call(this, nextStep);\n  }\n\n  /**\n   * Go to previous step on intro\n   *\n   * @api private\n   * @method _previousStep\n   */\n  function _previousStep() {\n    this._direction = 'backward';\n\n    if (this._currentStep === 0) {\n      return false;\n    }\n\n    --this._currentStep;\n\n    var nextStep = this._introItems[this._currentStep];\n    var continueStep = true;\n\n    if (typeof (this._introBeforeChangeCallback) !== 'undefined') {\n      continueStep = this._introBeforeChangeCallback.call(this, nextStep.element);\n    }\n\n    // if `onbeforechange` returned `false`, stop displaying the element\n    if (continueStep === false) {\n      ++this._currentStep;\n      return false;\n    }\n\n    _showElement.call(this, nextStep);\n  }\n\n  /**\n   * Update placement of the intro objects on the screen\n   * @api private\n   */\n  function _refresh() {\n    // re-align intros\n    _setHelperLayerPosition.call(this, document.querySelector('.introjs-helperLayer'));\n    _setHelperLayerPosition.call(this, document.querySelector('.introjs-tooltipReferenceLayer'));\n    _setHelperLayerPosition.call(this, document.querySelector('.introjs-disableInteraction'));\n\n    // re-align tooltip\n    if(this._currentStep !== undefined && this._currentStep !== null) {\n      var oldHelperNumberLayer = document.querySelector('.introjs-helperNumberLayer'),\n        oldArrowLayer        = document.querySelector('.introjs-arrow'),\n        oldtooltipContainer  = document.querySelector('.introjs-tooltip');\n      _placeTooltip.call(this, this._introItems[this._currentStep].element, oldtooltipContainer, oldArrowLayer, oldHelperNumberLayer);\n    }\n\n    //re-align hints\n    _reAlignHints.call(this);\n    return this;\n  }\n\n  /**\n   * Exit from intro\n   *\n   * @api private\n   * @method _exitIntro\n   * @param {Object} targetElement\n   * @param {Boolean} force - Setting to `true` will skip the result of beforeExit callback\n   */\n  function _exitIntro(targetElement, force) {\n    var continueExit = true;\n\n    // calling onbeforeexit callback\n    //\n    // If this callback return `false`, it would halt the process\n    if (this._introBeforeExitCallback !== undefined) {\n      continueExit = this._introBeforeExitCallback.call(this);\n    }\n\n    // skip this check if `force` parameter is `true`\n    // otherwise, if `onbeforeexit` returned `false`, don't exit the intro\n    if (!force && continueExit === false) return;\n\n    //remove overlay layers from the page\n    var overlayLayers = targetElement.querySelectorAll('.introjs-overlay');\n\n    if (overlayLayers && overlayLayers.length) {\n      _forEach(overlayLayers, function (overlayLayer) {\n        overlayLayer.style.opacity = 0;\n        window.setTimeout(function () {\n          if (this.parentNode) {\n            this.parentNode.removeChild(this);\n          }\n        }.bind(overlayLayer), 500);\n      }.bind(this));\n    }\n\n    //remove all helper layers\n    var helperLayer = targetElement.querySelector('.introjs-helperLayer');\n    if (helperLayer) {\n      helperLayer.parentNode.removeChild(helperLayer);\n    }\n\n    var referenceLayer = targetElement.querySelector('.introjs-tooltipReferenceLayer');\n    if (referenceLayer) {\n      referenceLayer.parentNode.removeChild(referenceLayer);\n    }\n\n    //remove disableInteractionLayer\n    var disableInteractionLayer = targetElement.querySelector('.introjs-disableInteraction');\n    if (disableInteractionLayer) {\n      disableInteractionLayer.parentNode.removeChild(disableInteractionLayer);\n    }\n\n    //remove intro floating element\n    var floatingElement = document.querySelector('.introjsFloatingElement');\n    if (floatingElement) {\n      floatingElement.parentNode.removeChild(floatingElement);\n    }\n\n    _removeShowElement();\n\n    //remove `introjs-fixParent` class from the elements\n    var fixParents = document.querySelectorAll('.introjs-fixParent');\n    _forEach(fixParents, function (parent) {\n      _removeClass(parent, /introjs-fixParent/g);\n    });\n\n    //clean listeners\n    DOMEvent.off(window, 'keydown', _onKeyDown, this, true);\n    DOMEvent.off(window, 'resize', _onResize, this, true);\n\n    //check if any callback is defined\n    if (this._introExitCallback !== undefined) {\n      this._introExitCallback.call(this);\n    }\n\n    //set the step to zero\n    this._currentStep = undefined;\n  }\n\n  /**\n   * Render tooltip box in the page\n   *\n   * @api private\n   * @method _placeTooltip\n   * @param {HTMLElement} targetElement\n   * @param {HTMLElement} tooltipLayer\n   * @param {HTMLElement} arrowLayer\n   * @param {HTMLElement} helperNumberLayer\n   * @param {Boolean} hintMode\n   */\n  function _placeTooltip(targetElement, tooltipLayer, arrowLayer, helperNumberLayer, hintMode) {\n    var tooltipCssClass = '',\n        currentStepObj,\n        tooltipOffset,\n        targetOffset,\n        windowSize,\n        currentTooltipPosition;\n\n    hintMode = hintMode || false;\n\n    //reset the old style\n    tooltipLayer.style.top        = null;\n    tooltipLayer.style.right      = null;\n    tooltipLayer.style.bottom     = null;\n    tooltipLayer.style.left       = null;\n    tooltipLayer.style.marginLeft = null;\n    tooltipLayer.style.marginTop  = null;\n\n    arrowLayer.style.display = 'inherit';\n\n    if (typeof(helperNumberLayer) !== 'undefined' && helperNumberLayer !== null) {\n      helperNumberLayer.style.top  = null;\n      helperNumberLayer.style.left = null;\n    }\n\n    //prevent error when `this._currentStep` is undefined\n    if (!this._introItems[this._currentStep]) return;\n\n    //if we have a custom css class for each step\n    currentStepObj = this._introItems[this._currentStep];\n    if (typeof (currentStepObj.tooltipClass) === 'string') {\n      tooltipCssClass = currentStepObj.tooltipClass;\n    } else {\n      tooltipCssClass = this._options.tooltipClass;\n    }\n\n    tooltipLayer.className = ('introjs-tooltip ' + tooltipCssClass).replace(/^\\s+|\\s+$/g, '');\n    tooltipLayer.setAttribute('role', 'dialog');\n\n    currentTooltipPosition = this._introItems[this._currentStep].position;\n\n    // Floating is always valid, no point in calculating\n    if (currentTooltipPosition !== \"floating\") { \n      currentTooltipPosition = _determineAutoPosition.call(this, targetElement, tooltipLayer, currentTooltipPosition);\n    }\n\n    var tooltipLayerStyleLeft;\n    targetOffset  = _getOffset(targetElement);\n    tooltipOffset = _getOffset(tooltipLayer);\n    windowSize    = _getWinSize();\n\n    _addClass(tooltipLayer, 'introjs-' + currentTooltipPosition);\n\n    switch (currentTooltipPosition) {\n      case 'top-right-aligned':\n        arrowLayer.className      = 'introjs-arrow bottom-right';\n\n        var tooltipLayerStyleRight = 0;\n        _checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer);\n        tooltipLayer.style.bottom    = (targetOffset.height +  20) + 'px';\n        break;\n\n      case 'top-middle-aligned':\n        arrowLayer.className      = 'introjs-arrow bottom-middle';\n\n        var tooltipLayerStyleLeftRight = targetOffset.width / 2 - tooltipOffset.width / 2;\n\n        // a fix for middle aligned hints\n        if (hintMode) {\n          tooltipLayerStyleLeftRight += 5;\n        }\n\n        if (_checkLeft(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, tooltipLayer)) {\n          tooltipLayer.style.right = null;\n          _checkRight(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, windowSize, tooltipLayer);\n        }\n        tooltipLayer.style.bottom = (targetOffset.height + 20) + 'px';\n        break;\n\n      case 'top-left-aligned':\n      // top-left-aligned is the same as the default top\n      case 'top':\n        arrowLayer.className = 'introjs-arrow bottom';\n\n        tooltipLayerStyleLeft = (hintMode) ? 0 : 15;\n\n        _checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer);\n        tooltipLayer.style.bottom = (targetOffset.height +  20) + 'px';\n        break;\n      case 'right':\n        tooltipLayer.style.left = (targetOffset.width + 20) + 'px';\n        if (targetOffset.top + tooltipOffset.height > windowSize.height) {\n          // In this case, right would have fallen below the bottom of the screen.\n          // Modify so that the bottom of the tooltip connects with the target\n          arrowLayer.className = \"introjs-arrow left-bottom\";\n          tooltipLayer.style.top = \"-\" + (tooltipOffset.height - targetOffset.height - 20) + \"px\";\n        } else {\n          arrowLayer.className = 'introjs-arrow left';\n        }\n        break;\n      case 'left':\n        if (!hintMode && this._options.showStepNumbers === true) {\n          tooltipLayer.style.top = '15px';\n        }\n\n        if (targetOffset.top + tooltipOffset.height > windowSize.height) {\n          // In this case, left would have fallen below the bottom of the screen.\n          // Modify so that the bottom of the tooltip connects with the target\n          tooltipLayer.style.top = \"-\" + (tooltipOffset.height - targetOffset.height - 20) + \"px\";\n          arrowLayer.className = 'introjs-arrow right-bottom';\n        } else {\n          arrowLayer.className = 'introjs-arrow right';\n        }\n        tooltipLayer.style.right = (targetOffset.width + 20) + 'px';\n\n        break;\n      case 'floating':\n        arrowLayer.style.display = 'none';\n\n        //we have to adjust the top and left of layer manually for intro items without element\n        tooltipLayer.style.left   = '50%';\n        tooltipLayer.style.top    = '50%';\n        tooltipLayer.style.marginLeft = '-' + (tooltipOffset.width / 2)  + 'px';\n        tooltipLayer.style.marginTop  = '-' + (tooltipOffset.height / 2) + 'px';\n\n        if (typeof(helperNumberLayer) !== 'undefined' && helperNumberLayer !== null) {\n          helperNumberLayer.style.left = '-' + ((tooltipOffset.width / 2) + 18) + 'px';\n          helperNumberLayer.style.top  = '-' + ((tooltipOffset.height / 2) + 18) + 'px';\n        }\n\n        break;\n      case 'bottom-right-aligned':\n        arrowLayer.className      = 'introjs-arrow top-right';\n\n        tooltipLayerStyleRight = 0;\n        _checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer);\n        tooltipLayer.style.top    = (targetOffset.height +  20) + 'px';\n        break;\n\n      case 'bottom-middle-aligned':\n        arrowLayer.className      = 'introjs-arrow top-middle';\n\n        tooltipLayerStyleLeftRight = targetOffset.width / 2 - tooltipOffset.width / 2;\n\n        // a fix for middle aligned hints\n        if (hintMode) {\n          tooltipLayerStyleLeftRight += 5;\n        }\n\n        if (_checkLeft(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, tooltipLayer)) {\n          tooltipLayer.style.right = null;\n          _checkRight(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, windowSize, tooltipLayer);\n        }\n        tooltipLayer.style.top = (targetOffset.height + 20) + 'px';\n        break;\n\n      // case 'bottom-left-aligned':\n      // Bottom-left-aligned is the same as the default bottom\n      // case 'bottom':\n      // Bottom going to follow the default behavior\n      default:\n        arrowLayer.className = 'introjs-arrow top';\n\n        tooltipLayerStyleLeft = 0;\n        _checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer);\n        tooltipLayer.style.top    = (targetOffset.height +  20) + 'px';\n    }\n  }\n\n  /**\n   * Set tooltip left so it doesn't go off the right side of the window\n   *\n   * @return boolean true, if tooltipLayerStyleLeft is ok.  false, otherwise.\n   */\n  function _checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer) {\n    if (targetOffset.left + tooltipLayerStyleLeft + tooltipOffset.width > windowSize.width) {\n      // off the right side of the window\n      tooltipLayer.style.left = (windowSize.width - tooltipOffset.width - targetOffset.left) + 'px';\n      return false;\n    }\n    tooltipLayer.style.left = tooltipLayerStyleLeft + 'px';\n    return true;\n  }\n\n  /**\n   * Set tooltip right so it doesn't go off the left side of the window\n   *\n   * @return boolean true, if tooltipLayerStyleRight is ok.  false, otherwise.\n   */\n  function _checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer) {\n    if (targetOffset.left + targetOffset.width - tooltipLayerStyleRight - tooltipOffset.width < 0) {\n      // off the left side of the window\n      tooltipLayer.style.left = (-targetOffset.left) + 'px';\n      return false;\n    }\n    tooltipLayer.style.right = tooltipLayerStyleRight + 'px';\n    return true;\n  }\n\n  /**\n   * Determines the position of the tooltip based on the position precedence and availability\n   * of screen space.\n   *\n   * @param {Object}    targetElement\n   * @param {Object}    tooltipLayer\n   * @param {String}    desiredTooltipPosition\n   * @return {String}   calculatedPosition\n   */\n  function _determineAutoPosition(targetElement, tooltipLayer, desiredTooltipPosition) {\n\n    // Take a clone of position precedence. These will be the available\n    var possiblePositions = this._options.positionPrecedence.slice();\n\n    var windowSize = _getWinSize();\n    var tooltipHeight = _getOffset(tooltipLayer).height + 10;\n    var tooltipWidth = _getOffset(tooltipLayer).width + 20;\n    var targetElementRect = targetElement.getBoundingClientRect();\n\n    // If we check all the possible areas, and there are no valid places for the tooltip, the element\n    // must take up most of the screen real estate. Show the tooltip floating in the middle of the screen.\n    var calculatedPosition = \"floating\";\n\n    /*\n    * auto determine position \n    */\n\n    // Check for space below\n    if (targetElementRect.bottom + tooltipHeight + tooltipHeight > windowSize.height) {\n      _removeEntry(possiblePositions, \"bottom\");\n    }\n\n    // Check for space above\n    if (targetElementRect.top - tooltipHeight < 0) {\n      _removeEntry(possiblePositions, \"top\");\n    }\n\n    // Check for space to the right\n    if (targetElementRect.right + tooltipWidth > windowSize.width) {\n      _removeEntry(possiblePositions, \"right\");\n    }\n\n    // Check for space to the left\n    if (targetElementRect.left - tooltipWidth < 0) {\n      _removeEntry(possiblePositions, \"left\");\n    }\n\n    // @var {String}  ex: 'right-aligned'\n    var desiredAlignment = (function (pos) {\n      var hyphenIndex = pos.indexOf('-');\n      if (hyphenIndex !== -1) {\n        // has alignment\n        return pos.substr(hyphenIndex);\n      }\n      return '';\n    })(desiredTooltipPosition || '');\n\n    // strip alignment from position\n    if (desiredTooltipPosition) {\n      // ex: \"bottom-right-aligned\"\n      // should return 'bottom'\n      desiredTooltipPosition = desiredTooltipPosition.split('-')[0];\n    }\n\n    if (possiblePositions.length) {\n      if (desiredTooltipPosition !== \"auto\" &&\n          possiblePositions.indexOf(desiredTooltipPosition) > -1) {\n        // If the requested position is in the list, choose that\n        calculatedPosition = desiredTooltipPosition;\n      } else {\n        // Pick the first valid position, in order\n        calculatedPosition = possiblePositions[0];\n      }\n    }\n\n    // only top and bottom positions have optional alignments\n    if (['top', 'bottom'].indexOf(calculatedPosition) !== -1) {\n      calculatedPosition += _determineAutoAlignment(targetElementRect.left, tooltipWidth, windowSize, desiredAlignment);\n    }\n\n    return calculatedPosition;\n  }\n\n  /**\n  * auto-determine alignment\n  * @param {Integer}  offsetLeft\n  * @param {Integer}  tooltipWidth\n  * @param {Object}   windowSize\n  * @param {String}   desiredAlignment\n  * @return {String}  calculatedAlignment\n  */\n  function _determineAutoAlignment (offsetLeft, tooltipWidth, windowSize, desiredAlignment) {\n    var halfTooltipWidth = tooltipWidth / 2,\n      winWidth = Math.min(windowSize.width, window.screen.width),\n      possibleAlignments = ['-left-aligned', '-middle-aligned', '-right-aligned'],\n      calculatedAlignment = '';\n    \n    // valid left must be at least a tooltipWidth\n    // away from right side\n    if (winWidth - offsetLeft < tooltipWidth) {\n      _removeEntry(possibleAlignments, '-left-aligned');\n    }\n\n    // valid middle must be at least half \n    // width away from both sides\n    if (offsetLeft < halfTooltipWidth || \n      winWidth - offsetLeft < halfTooltipWidth) {\n      _removeEntry(possibleAlignments, '-middle-aligned');\n    }\n\n    // valid right must be at least a tooltipWidth\n    // width away from left side\n    if (offsetLeft < tooltipWidth) {\n      _removeEntry(possibleAlignments, '-right-aligned');\n    }\n\n    if (possibleAlignments.length) {\n      if (possibleAlignments.indexOf(desiredAlignment) !== -1) {\n        // the desired alignment is valid\n        calculatedAlignment = desiredAlignment;\n      } else {\n        // pick the first valid position, in order\n        calculatedAlignment = possibleAlignments[0];\n      }\n    } else {\n      // if screen width is too small \n      // for ANY alignment, middle is \n      // probably the best for visibility\n      calculatedAlignment = '-middle-aligned';\n    }\n\n    return calculatedAlignment;\n  }\n\n  /**\n   * Remove an entry from a string array if it's there, does nothing if it isn't there.\n   *\n   * @param {Array} stringArray\n   * @param {String} stringToRemove\n   */\n  function _removeEntry(stringArray, stringToRemove) {\n    if (stringArray.indexOf(stringToRemove) > -1) {\n      stringArray.splice(stringArray.indexOf(stringToRemove), 1);\n    }\n  }\n\n  /**\n   * Update the position of the helper layer on the screen\n   *\n   * @api private\n   * @method _setHelperLayerPosition\n   * @param {Object} helperLayer\n   */\n  function _setHelperLayerPosition(helperLayer) {\n    if (helperLayer) {\n      //prevent error when `this._currentStep` in undefined\n      if (!this._introItems[this._currentStep]) return;\n\n      var currentElement  = this._introItems[this._currentStep],\n          elementPosition = _getOffset(currentElement.element),\n          widthHeightPadding = this._options.helperElementPadding;\n\n      // If the target element is fixed, the tooltip should be fixed as well.\n      // Otherwise, remove a fixed class that may be left over from the previous\n      // step.\n      if (_isFixed(currentElement.element)) {\n        _addClass(helperLayer, 'introjs-fixedTooltip');\n      } else {\n        _removeClass(helperLayer, 'introjs-fixedTooltip');\n      }\n\n      if (currentElement.position === 'floating') {\n        widthHeightPadding = 0;\n      }\n\n      //set new position to helper layer\n      helperLayer.style.cssText = 'width: ' + (elementPosition.width  + widthHeightPadding)  + 'px; ' +\n                                        'height:' + (elementPosition.height + widthHeightPadding)  + 'px; ' +\n                                        'top:'    + (elementPosition.top    - widthHeightPadding / 2)   + 'px;' +\n                                        'left: '  + (elementPosition.left   - widthHeightPadding / 2)   + 'px;';\n\n    }\n  }\n\n  /**\n   * Add disableinteraction layer and adjust the size and position of the layer\n   *\n   * @api private\n   * @method _disableInteraction\n   */\n  function _disableInteraction() {\n    var disableInteractionLayer = document.querySelector('.introjs-disableInteraction');\n\n    if (disableInteractionLayer === null) {\n      disableInteractionLayer = document.createElement('div');\n      disableInteractionLayer.className = 'introjs-disableInteraction';\n      this._targetElement.appendChild(disableInteractionLayer);\n    }\n\n    _setHelperLayerPosition.call(this, disableInteractionLayer);\n  }\n\n  /**\n   * Setting anchors to behave like buttons\n   *\n   * @api private\n   * @method _setAnchorAsButton\n   */\n  function _setAnchorAsButton(anchor){\n    anchor.setAttribute('role', 'button');\n    anchor.tabIndex = 0;\n  }\n\n  /**\n   * Show an element on the page\n   *\n   * @api private\n   * @method _showElement\n   * @param {Object} targetElement\n   */\n  function _showElement(targetElement) {\n    if (typeof (this._introChangeCallback) !== 'undefined') {\n      this._introChangeCallback.call(this, targetElement.element);\n    }\n\n    var self = this,\n        oldHelperLayer = document.querySelector('.introjs-helperLayer'),\n        oldReferenceLayer = document.querySelector('.introjs-tooltipReferenceLayer'),\n        highlightClass = 'introjs-helperLayer',\n        nextTooltipButton,\n        prevTooltipButton,\n        skipTooltipButton,\n        scrollParent;\n\n    //check for a current step highlight class\n    if (typeof (targetElement.highlightClass) === 'string') {\n      highlightClass += (' ' + targetElement.highlightClass);\n    }\n    //check for options highlight class\n    if (typeof (this._options.highlightClass) === 'string') {\n      highlightClass += (' ' + this._options.highlightClass);\n    }\n\n    if (oldHelperLayer !== null) {\n      var oldHelperNumberLayer = oldReferenceLayer.querySelector('.introjs-helperNumberLayer'),\n          oldtooltipLayer      = oldReferenceLayer.querySelector('.introjs-tooltiptext'),\n          oldArrowLayer        = oldReferenceLayer.querySelector('.introjs-arrow'),\n          oldtooltipContainer  = oldReferenceLayer.querySelector('.introjs-tooltip');\n          \n      skipTooltipButton    = oldReferenceLayer.querySelector('.introjs-skipbutton');\n      prevTooltipButton    = oldReferenceLayer.querySelector('.introjs-prevbutton');\n      nextTooltipButton    = oldReferenceLayer.querySelector('.introjs-nextbutton');\n\n      //update or reset the helper highlight class\n      oldHelperLayer.className = highlightClass;\n      //hide the tooltip\n      oldtooltipContainer.style.opacity = 0;\n      oldtooltipContainer.style.display = \"none\";\n\n      if (oldHelperNumberLayer !== null) {\n        var lastIntroItem = this._introItems[(targetElement.step - 2 >= 0 ? targetElement.step - 2 : 0)];\n\n        if (lastIntroItem !== null && (this._direction === 'forward' && lastIntroItem.position === 'floating') || (this._direction === 'backward' && targetElement.position === 'floating')) {\n          oldHelperNumberLayer.style.opacity = 0;\n        }\n      }\n\n      // scroll to element\n      scrollParent = _getScrollParent( targetElement.element );\n\n      if (scrollParent !== document.body) {\n        // target is within a scrollable element\n        _scrollParentToElement(scrollParent, targetElement.element);\n      }\n\n      // set new position to helper layer\n      _setHelperLayerPosition.call(self, oldHelperLayer);\n      _setHelperLayerPosition.call(self, oldReferenceLayer);\n\n      //remove `introjs-fixParent` class from the elements\n      var fixParents = document.querySelectorAll('.introjs-fixParent');\n      _forEach(fixParents, function (parent) {\n        _removeClass(parent, /introjs-fixParent/g);\n      });\n      \n      //remove old classes if the element still exist\n      _removeShowElement();\n\n      //we should wait until the CSS3 transition is competed (it's 0.3 sec) to prevent incorrect `height` and `width` calculation\n      if (self._lastShowElementTimer) {\n        window.clearTimeout(self._lastShowElementTimer);\n      }\n\n      self._lastShowElementTimer = window.setTimeout(function() {\n        //set current step to the label\n        if (oldHelperNumberLayer !== null) {\n          oldHelperNumberLayer.innerHTML = targetElement.step;\n        }\n        //set current tooltip text\n        oldtooltipLayer.innerHTML = targetElement.intro;\n        //set the tooltip position\n        oldtooltipContainer.style.display = \"block\";\n        _placeTooltip.call(self, targetElement.element, oldtooltipContainer, oldArrowLayer, oldHelperNumberLayer);\n\n        //change active bullet\n        if (self._options.showBullets) {\n            oldReferenceLayer.querySelector('.introjs-bullets li > a.active').className = '';\n            oldReferenceLayer.querySelector('.introjs-bullets li > a[data-stepnumber=\"' + targetElement.step + '\"]').className = 'active';\n        }\n        oldReferenceLayer.querySelector('.introjs-progress .introjs-progressbar').style.cssText = 'width:' + _getProgress.call(self) + '%;';\n        oldReferenceLayer.querySelector('.introjs-progress .introjs-progressbar').setAttribute('aria-valuenow', _getProgress.call(self));\n\n        //show the tooltip\n        oldtooltipContainer.style.opacity = 1;\n        if (oldHelperNumberLayer) oldHelperNumberLayer.style.opacity = 1;\n\n        //reset button focus\n        if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null && /introjs-donebutton/gi.test(skipTooltipButton.className)) {\n          // skip button is now \"done\" button\n          skipTooltipButton.focus();\n        } else if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n          //still in the tour, focus on next\n          nextTooltipButton.focus();\n        }\n\n        // change the scroll of the window, if needed\n        _scrollTo.call(self, targetElement.scrollTo, targetElement, oldtooltipLayer);\n      }, 350);\n\n      // end of old element if-else condition\n    } else {\n      var helperLayer       = document.createElement('div'),\n          referenceLayer    = document.createElement('div'),\n          arrowLayer        = document.createElement('div'),\n          tooltipLayer      = document.createElement('div'),\n          tooltipTextLayer  = document.createElement('div'),\n          bulletsLayer      = document.createElement('div'),\n          progressLayer     = document.createElement('div'),\n          buttonsLayer      = document.createElement('div');\n\n      helperLayer.className = highlightClass;\n      referenceLayer.className = 'introjs-tooltipReferenceLayer';\n\n      // scroll to element\n      scrollParent = _getScrollParent( targetElement.element );\n\n      if (scrollParent !== document.body) {\n        // target is within a scrollable element\n        _scrollParentToElement(scrollParent, targetElement.element);\n      }\n\n      //set new position to helper layer\n      _setHelperLayerPosition.call(self, helperLayer);\n      _setHelperLayerPosition.call(self, referenceLayer);\n\n      //add helper layer to target element\n      this._targetElement.appendChild(helperLayer);\n      this._targetElement.appendChild(referenceLayer);\n\n      arrowLayer.className = 'introjs-arrow';\n\n      tooltipTextLayer.className = 'introjs-tooltiptext';\n      tooltipTextLayer.innerHTML = targetElement.intro;\n\n      bulletsLayer.className = 'introjs-bullets';\n\n      if (this._options.showBullets === false) {\n        bulletsLayer.style.display = 'none';\n      }\n\n      var ulContainer = document.createElement('ul');\n      ulContainer.setAttribute('role', 'tablist');\n\n      var anchorClick = function () {\n          self.goToStep(this.getAttribute('data-stepnumber'));\n      };\n\n      _forEach(this._introItems, function (item, i) {\n        var innerLi    = document.createElement('li');\n        var anchorLink = document.createElement('a');\n        \n        innerLi.setAttribute('role', 'presentation');\n        anchorLink.setAttribute('role', 'tab');\n\n        anchorLink.onclick = anchorClick;\n\n        if (i === (targetElement.step-1)) {\n          anchorLink.className = 'active';\n        } \n\n        _setAnchorAsButton(anchorLink);\n        anchorLink.innerHTML = \"&nbsp;\";\n        anchorLink.setAttribute('data-stepnumber', item.step);\n\n        innerLi.appendChild(anchorLink);\n        ulContainer.appendChild(innerLi);\n      });\n\n      bulletsLayer.appendChild(ulContainer);\n\n      progressLayer.className = 'introjs-progress';\n\n      if (this._options.showProgress === false) {\n        progressLayer.style.display = 'none';\n      }\n      var progressBar = document.createElement('div');\n      progressBar.className = 'introjs-progressbar';\n      progressBar.setAttribute('role', 'progress');\n      progressBar.setAttribute('aria-valuemin', 0);\n      progressBar.setAttribute('aria-valuemax', 100);\n      progressBar.setAttribute('aria-valuenow', _getProgress.call(this));\n      progressBar.style.cssText = 'width:' + _getProgress.call(this) + '%;';\n\n      progressLayer.appendChild(progressBar);\n\n      buttonsLayer.className = 'introjs-tooltipbuttons';\n      if (this._options.showButtons === false) {\n        buttonsLayer.style.display = 'none';\n      }\n\n      tooltipLayer.className = 'introjs-tooltip';\n      tooltipLayer.appendChild(tooltipTextLayer);\n      tooltipLayer.appendChild(bulletsLayer);\n      tooltipLayer.appendChild(progressLayer);\n\n      //add helper layer number\n      var helperNumberLayer = document.createElement('span');\n      if (this._options.showStepNumbers === true) {\n        helperNumberLayer.className = 'introjs-helperNumberLayer';\n        helperNumberLayer.innerHTML = targetElement.step;\n        referenceLayer.appendChild(helperNumberLayer);\n      }\n\n      tooltipLayer.appendChild(arrowLayer);\n      referenceLayer.appendChild(tooltipLayer);\n\n      //next button\n      nextTooltipButton = document.createElement('a');\n\n      nextTooltipButton.onclick = function() {\n        if (self._introItems.length - 1 !== self._currentStep) {\n          _nextStep.call(self);\n        }\n      };\n\n      _setAnchorAsButton(nextTooltipButton);\n      nextTooltipButton.innerHTML = this._options.nextLabel;\n\n      //previous button\n      prevTooltipButton = document.createElement('a');\n\n      prevTooltipButton.onclick = function() {\n        if (self._currentStep !== 0) {\n          _previousStep.call(self);\n        }\n      };\n\n      _setAnchorAsButton(prevTooltipButton);\n      prevTooltipButton.innerHTML = this._options.prevLabel;\n\n      //skip button\n      skipTooltipButton = document.createElement('a');\n      skipTooltipButton.className = this._options.buttonClass + ' introjs-skipbutton ';\n      _setAnchorAsButton(skipTooltipButton);\n      skipTooltipButton.innerHTML = this._options.skipLabel;\n\n      skipTooltipButton.onclick = function() {\n        if (self._introItems.length - 1 === self._currentStep && typeof (self._introCompleteCallback) === 'function') {\n          self._introCompleteCallback.call(self);\n        }\n\n        if (self._introItems.length - 1 !== self._currentStep && typeof (self._introExitCallback) === 'function') {\n          self._introExitCallback.call(self);\n        }\n\n        if (typeof(self._introSkipCallback) === 'function') {\n          self._introSkipCallback.call(self);\n        }\n\n        _exitIntro.call(self, self._targetElement);\n      };\n\n      buttonsLayer.appendChild(skipTooltipButton);\n\n      //in order to prevent displaying next/previous button always\n      if (this._introItems.length > 1) {\n        buttonsLayer.appendChild(prevTooltipButton);\n        buttonsLayer.appendChild(nextTooltipButton);\n      }\n\n      tooltipLayer.appendChild(buttonsLayer);\n\n      //set proper position\n      _placeTooltip.call(self, targetElement.element, tooltipLayer, arrowLayer, helperNumberLayer);\n\n      // change the scroll of the window, if needed\n      _scrollTo.call(this, targetElement.scrollTo, targetElement, tooltipLayer);\n\n      //end of new element if-else condition\n    }\n\n    // removing previous disable interaction layer\n    var disableInteractionLayer = self._targetElement.querySelector('.introjs-disableInteraction');\n    if (disableInteractionLayer) {\n      disableInteractionLayer.parentNode.removeChild(disableInteractionLayer);\n    }\n\n    //disable interaction\n    if (targetElement.disableInteraction) {\n      _disableInteraction.call(self);\n    }\n\n    // when it's the first step of tour\n    if (this._currentStep === 0 && this._introItems.length > 1) {\n      if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n        skipTooltipButton.className = this._options.buttonClass + ' introjs-skipbutton';\n      }\n      if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n        nextTooltipButton.className = this._options.buttonClass + ' introjs-nextbutton';\n      }\n\n      if (this._options.hidePrev === true) {\n        if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n          prevTooltipButton.className = this._options.buttonClass + ' introjs-prevbutton introjs-hidden';\n        }\n        if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n          _addClass(nextTooltipButton, 'introjs-fullbutton');\n        }\n      } else {\n        if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n          prevTooltipButton.className = this._options.buttonClass + ' introjs-prevbutton introjs-disabled';\n        }\n      }\n\n      if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n        skipTooltipButton.innerHTML = this._options.skipLabel;\n      }\n    } else if (this._introItems.length - 1 === this._currentStep || this._introItems.length === 1) {\n      // last step of tour\n      if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n        skipTooltipButton.innerHTML = this._options.doneLabel;\n        // adding donebutton class in addition to skipbutton\n        _addClass(skipTooltipButton, 'introjs-donebutton');\n      }\n      if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n        prevTooltipButton.className = this._options.buttonClass + ' introjs-prevbutton';\n      }\n\n      if (this._options.hideNext === true) {\n        if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n          nextTooltipButton.className = this._options.buttonClass + ' introjs-nextbutton introjs-hidden';\n        }\n        if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n          _addClass(prevTooltipButton, 'introjs-fullbutton');\n        }\n      } else {\n        if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n          nextTooltipButton.className = this._options.buttonClass + ' introjs-nextbutton introjs-disabled';\n        }\n      }\n    } else {\n      // steps between start and end\n      if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n        skipTooltipButton.className = this._options.buttonClass + ' introjs-skipbutton';\n      }\n      if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n        prevTooltipButton.className = this._options.buttonClass + ' introjs-prevbutton';\n      }\n      if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n        nextTooltipButton.className = this._options.buttonClass + ' introjs-nextbutton';\n      }\n      if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n        skipTooltipButton.innerHTML = this._options.skipLabel;\n      }\n    }\n\n    prevTooltipButton.setAttribute('role', 'button');\n    nextTooltipButton.setAttribute('role', 'button');\n    skipTooltipButton.setAttribute('role', 'button');\n\n    //Set focus on \"next\" button, so that hitting Enter always moves you onto the next step\n    if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n      nextTooltipButton.focus();\n    }\n\n    _setShowElement(targetElement);\n\n    if (typeof (this._introAfterChangeCallback) !== 'undefined') {\n      this._introAfterChangeCallback.call(this, targetElement.element);\n    }\n  }\n\n  /**\n   * To change the scroll of `window` after highlighting an element\n   *\n   * @api private\n   * @method _scrollTo\n   * @param {String} scrollTo\n   * @param {Object} targetElement\n   * @param {Object} tooltipLayer\n   */\n  function _scrollTo(scrollTo, targetElement, tooltipLayer) {\n    if (scrollTo === 'off') return;  \n    var rect;\n\n    if (!this._options.scrollToElement) return;\n\n    if (scrollTo === 'tooltip') {\n      rect = tooltipLayer.getBoundingClientRect();\n    } else {\n      rect = targetElement.element.getBoundingClientRect();\n    }\n\n    if (!_elementInViewport(targetElement.element)) {\n      var winHeight = _getWinSize().height;\n      var top = rect.bottom - (rect.bottom - rect.top);\n\n      // TODO (afshinm): do we need scroll padding now?\n      // I have changed the scroll option and now it scrolls the window to\n      // the center of the target element or tooltip.\n\n      if (top < 0 || targetElement.element.clientHeight > winHeight) {\n        window.scrollBy(0, rect.top - ((winHeight / 2) -  (rect.height / 2)) - this._options.scrollPadding); // 30px padding from edge to look nice\n\n      //Scroll down\n      } else {\n        window.scrollBy(0, rect.top - ((winHeight / 2) -  (rect.height / 2)) + this._options.scrollPadding); // 30px padding from edge to look nice\n      }\n    }\n  }\n\n  /**\n   * To remove all show element(s)\n   *\n   * @api private\n   * @method _removeShowElement\n   */\n  function _removeShowElement() {\n    var elms = document.querySelectorAll('.introjs-showElement');\n\n    _forEach(elms, function (elm) {\n      _removeClass(elm, /introjs-[a-zA-Z]+/g);\n    });\n  }\n\n  /**\n   * To set the show element\n   * This function set a relative (in most cases) position and changes the z-index\n   *\n   * @api private\n   * @method _setShowElement\n   * @param {Object} targetElement\n   */\n  function _setShowElement(targetElement) {\n    var parentElm;\n    // we need to add this show element class to the parent of SVG elements\n    // because the SVG elements can't have independent z-index\n    if (targetElement.element instanceof SVGElement) {\n      parentElm = targetElement.element.parentNode;\n\n      while (targetElement.element.parentNode !== null) {\n        if (!parentElm.tagName || parentElm.tagName.toLowerCase() === 'body') break;\n\n        if (parentElm.tagName.toLowerCase() === 'svg') {\n          _addClass(parentElm, 'introjs-showElement introjs-relativePosition');\n        }\n\n        parentElm = parentElm.parentNode;\n      }\n    }\n\n    _addClass(targetElement.element, 'introjs-showElement');\n\n    var currentElementPosition = _getPropValue(targetElement.element, 'position');\n    if (currentElementPosition !== 'absolute' &&\n        currentElementPosition !== 'relative' &&\n        currentElementPosition !== 'fixed') {\n      //change to new intro item\n      _addClass(targetElement.element, 'introjs-relativePosition');\n    }\n\n    parentElm = targetElement.element.parentNode;\n    while (parentElm !== null) {\n      if (!parentElm.tagName || parentElm.tagName.toLowerCase() === 'body') break;\n\n      //fix The Stacking Context problem.\n      //More detail: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context\n      var zIndex = _getPropValue(parentElm, 'z-index');\n      var opacity = parseFloat(_getPropValue(parentElm, 'opacity'));\n      var transform = _getPropValue(parentElm, 'transform') || _getPropValue(parentElm, '-webkit-transform') || _getPropValue(parentElm, '-moz-transform') || _getPropValue(parentElm, '-ms-transform') || _getPropValue(parentElm, '-o-transform');\n      if (/[0-9]+/.test(zIndex) || opacity < 1 || (transform !== 'none' && transform !== undefined)) {\n        _addClass(parentElm, 'introjs-fixParent');\n      }\n\n      parentElm = parentElm.parentNode;\n    }\n  }\n\n  /**\n  * Iterates arrays\n  *\n  * @param {Array} arr\n  * @param {Function} forEachFnc\n  * @param {Function} completeFnc\n  * @return {Null}\n  */\n  function _forEach(arr, forEachFnc, completeFnc) {\n    // in case arr is an empty query selector node list\n    if (arr) {\n      for (var i = 0, len = arr.length; i < len; i++) {\n        forEachFnc(arr[i], i);\n      }\n    }\n\n    if (typeof(completeFnc) === 'function') {\n      completeFnc();\n    }\n  }\n\n  /**\n  * Mark any object with an incrementing number\n  * used for keeping track of objects\n  *\n  * @param Object obj   Any object or DOM Element\n  * @param String key\n  * @return Object\n  */\n  var _stamp = (function () {\n    var keys = {};\n    return function stamp (obj, key) {\n      \n      // get group key\n      key = key || 'introjs-stamp';\n\n      // each group increments from 0\n      keys[key] = keys[key] || 0;\n\n      // stamp only once per object\n      if (obj[key] === undefined) {\n        // increment key for each new object\n        obj[key] = keys[key]++;\n      }\n\n      return obj[key];\n    };\n  })();\n\n  /**\n  * DOMEvent Handles all DOM events\n  *\n  * methods:\n  *\n  * on - add event handler\n  * off - remove event\n  */\n  var DOMEvent = (function () {\n    function DOMEvent () {\n      var events_key = 'introjs_event';\n      \n      /**\n      * Gets a unique ID for an event listener\n      *\n      * @param Object obj\n      * @param String type        event type\n      * @param Function listener\n      * @param Object context\n      * @return String\n      */\n      this._id = function (obj, type, listener, context) {\n        return type + _stamp(listener) + (context ? '_' + _stamp(context) : '');\n      };\n\n      /**\n      * Adds event listener\n      *\n      * @param Object obj\n      * @param String type        event type\n      * @param Function listener\n      * @param Object context\n      * @param Boolean useCapture\n      * @return null\n      */\n      this.on = function (obj, type, listener, context, useCapture) {\n        var id = this._id.apply(this, arguments),\n            handler = function (e) {\n              return listener.call(context || obj, e || window.event);\n            };\n\n        if ('addEventListener' in obj) {\n          obj.addEventListener(type, handler, useCapture);\n        } else if ('attachEvent' in obj) {\n          obj.attachEvent('on' + type, handler);\n        }\n\n        obj[events_key] = obj[events_key] || {};\n        obj[events_key][id] = handler;\n      };\n\n      /**\n      * Removes event listener\n      *\n      * @param Object obj\n      * @param String type        event type\n      * @param Function listener\n      * @param Object context\n      * @param Boolean useCapture\n      * @return null\n      */\n      this.off = function (obj, type, listener, context, useCapture) {\n        var id = this._id.apply(this, arguments),\n            handler = obj[events_key] && obj[events_key][id];\n\n        if (!handler) {\n          return;\n        }\n\n        if ('removeEventListener' in obj) {\n          obj.removeEventListener(type, handler, useCapture);\n        } else if ('detachEvent' in obj) {\n          obj.detachEvent('on' + type, handler);\n        }\n\n        obj[events_key][id] = null;\n      };\n    }\n\n    return new DOMEvent();\n  })();\n\n  /**\n   * Append a class to an element\n   *\n   * @api private\n   * @method _addClass\n   * @param {Object} element\n   * @param {String} className\n   * @returns null\n   */\n  function _addClass(element, className) {\n    if (element instanceof SVGElement) {\n      // svg\n      var pre = element.getAttribute('class') || '';\n\n      element.setAttribute('class', pre + ' ' + className);\n    } else {\n      if (element.classList !== undefined) {\n        // check for modern classList property\n        var classes = className.split(' ');\n        _forEach(classes, function (cls) {\n          element.classList.add( cls );\n        });\n      } else if (!element.className.match( className )) {\n        // check if element doesn't already have className\n        element.className += ' ' + className;\n      }\n    }\n  }\n\n  /**\n   * Remove a class from an element\n   *\n   * @api private\n   * @method _removeClass\n   * @param {Object} element\n   * @param {RegExp|String} classNameRegex can be regex or string\n   * @returns null\n   */\n  function _removeClass(element, classNameRegex) {\n    if (element instanceof SVGElement) {\n      var pre = element.getAttribute('class') || '';\n\n      element.setAttribute('class', pre.replace(classNameRegex, '').replace(/^\\s+|\\s+$/g, ''));\n    } else {\n      element.className = element.className.replace(classNameRegex, '').replace(/^\\s+|\\s+$/g, '');\n    }\n  }\n\n  /**\n   * Get an element CSS property on the page\n   * Thanks to JavaScript Kit: http://www.javascriptkit.com/dhtmltutors/dhtmlcascade4.shtml\n   *\n   * @api private\n   * @method _getPropValue\n   * @param {Object} element\n   * @param {String} propName\n   * @returns Element's property value\n   */\n  function _getPropValue (element, propName) {\n    var propValue = '';\n    if (element.currentStyle) { //IE\n      propValue = element.currentStyle[propName];\n    } else if (document.defaultView && document.defaultView.getComputedStyle) { //Others\n      propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n    }\n\n    //Prevent exception in IE\n    if (propValue && propValue.toLowerCase) {\n      return propValue.toLowerCase();\n    } else {\n      return propValue;\n    }\n  }\n\n  /**\n   * Checks to see if target element (or parents) position is fixed or not\n   *\n   * @api private\n   * @method _isFixed\n   * @param {Object} element\n   * @returns Boolean\n   */\n  function _isFixed (element) {\n    var p = element.parentNode;\n\n    if (!p || p.nodeName === 'HTML') {\n      return false;\n    }\n\n    if (_getPropValue(element, 'position') === 'fixed') {\n      return true;\n    }\n\n    return _isFixed(p);\n  }\n\n  /**\n   * Provides a cross-browser way to get the screen dimensions\n   * via: http://stackoverflow.com/questions/5864467/internet-explorer-innerheight\n   *\n   * @api private\n   * @method _getWinSize\n   * @returns {Object} width and height attributes\n   */\n  function _getWinSize() {\n    if (window.innerWidth !== undefined) {\n      return { width: window.innerWidth, height: window.innerHeight };\n    } else {\n      var D = document.documentElement;\n      return { width: D.clientWidth, height: D.clientHeight };\n    }\n  }\n\n  /**\n   * Check to see if the element is in the viewport or not\n   * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n   *\n   * @api private\n   * @method _elementInViewport\n   * @param {Object} el\n   */\n  function _elementInViewport(el) {\n    var rect = el.getBoundingClientRect();\n\n    return (\n      rect.top >= 0 &&\n      rect.left >= 0 &&\n      (rect.bottom+80) <= window.innerHeight && // add 80 to get the text right\n      rect.right <= window.innerWidth\n    );\n  }\n\n  /**\n   * Add overlay layer to the page\n   *\n   * @api private\n   * @method _addOverlayLayer\n   * @param {Object} targetElm\n   */\n  function _addOverlayLayer(targetElm) {\n    var overlayLayer = document.createElement('div'),\n        styleText = '',\n        self = this;\n\n    //set css class name\n    overlayLayer.className = 'introjs-overlay';\n\n    //check if the target element is body, we should calculate the size of overlay layer in a better way\n    if (!targetElm.tagName || targetElm.tagName.toLowerCase() === 'body') {\n      styleText += 'top: 0;bottom: 0; left: 0;right: 0;position: fixed;';\n      overlayLayer.style.cssText = styleText;\n    } else {\n      //set overlay layer position\n      var elementPosition = _getOffset(targetElm);\n      if (elementPosition) {\n        styleText += 'width: ' + elementPosition.width + 'px; height:' + elementPosition.height + 'px; top:' + elementPosition.top + 'px;left: ' + elementPosition.left + 'px;';\n        overlayLayer.style.cssText = styleText;\n      }\n    }\n\n    targetElm.appendChild(overlayLayer);\n\n    overlayLayer.onclick = function() {\n      if (self._options.exitOnOverlayClick === true) {\n        _exitIntro.call(self, targetElm);\n      }\n    };\n\n    window.setTimeout(function() {\n      styleText += 'opacity: ' + self._options.overlayOpacity.toString() + ';';\n      overlayLayer.style.cssText = styleText;\n    }, 10);\n\n    return true;\n  }\n\n  /**\n   * Removes open hint (tooltip hint)\n   *\n   * @api private\n   * @method _removeHintTooltip\n   */\n  function _removeHintTooltip() {\n    var tooltip = document.querySelector('.introjs-hintReference');\n\n    if (tooltip) {\n      var step = tooltip.getAttribute('data-step');\n      tooltip.parentNode.removeChild(tooltip);\n      return step;\n    }\n  }\n\n  /**\n   * Start parsing hint items\n   *\n   * @api private\n   * @param {Object} targetElm\n   * @method _startHint\n   */\n  function _populateHints(targetElm) {\n\n    this._introItems = [];\n\n    if (this._options.hints) {\n      _forEach(this._options.hints, function (hint) {\n        var currentItem = _cloneObject(hint);\n\n        if (typeof(currentItem.element) === 'string') {\n          //grab the element with given selector from the page\n          currentItem.element = document.querySelector(currentItem.element);\n        }\n\n        currentItem.hintPosition = currentItem.hintPosition || this._options.hintPosition;\n        currentItem.hintAnimation = currentItem.hintAnimation || this._options.hintAnimation;\n\n        if (currentItem.element !== null) {\n          this._introItems.push(currentItem);\n        }\n      }.bind(this));\n    } else {\n      var hints = targetElm.querySelectorAll('*[data-hint]');\n\n      if (!hints || !hints.length) {\n        return false;\n      }\n\n      //first add intro items with data-step\n      _forEach(hints, function (currentElement) {\n        // hint animation\n        var hintAnimation = currentElement.getAttribute('data-hintanimation');\n\n        if (hintAnimation) {\n          hintAnimation = (hintAnimation === 'true');\n        } else {\n          hintAnimation = this._options.hintAnimation;\n        }\n\n        this._introItems.push({\n          element: currentElement,\n          hint: currentElement.getAttribute('data-hint'),\n          hintPosition: currentElement.getAttribute('data-hintposition') || this._options.hintPosition,\n          hintAnimation: hintAnimation,\n          tooltipClass: currentElement.getAttribute('data-tooltipclass'),\n          position: currentElement.getAttribute('data-position') || this._options.tooltipPosition\n        });\n      }.bind(this));\n    }\n\n    _addHints.call(this);\n\n    /* \n    todo:\n    these events should be removed at some point \n    */\n    DOMEvent.on(document, 'click', _removeHintTooltip, this, false);\n    DOMEvent.on(window, 'resize', _reAlignHints, this, true);\n  }\n\n  /**\n   * Re-aligns all hint elements\n   *\n   * @api private\n   * @method _reAlignHints\n   */\n  function _reAlignHints() {\n    _forEach(this._introItems, function (item) {\n      if (typeof(item.targetElement) === 'undefined') {\n        return;\n      }\n\n      _alignHintPosition.call(this, item.hintPosition, item.element, item.targetElement);\n    }.bind(this));\n  }\n\n  /**\n  * Get a queryselector within the hint wrapper\n  *\n  * @param {String} selector\n  * @return {NodeList|Array}\n  */\n  function _hintQuerySelectorAll(selector) {\n    var hintsWrapper = document.querySelector('.introjs-hints');\n    return (hintsWrapper) ? hintsWrapper.querySelectorAll(selector) : [];\n  }\n\n  /**\n   * Hide a hint\n   *\n   * @api private\n   * @method _hideHint\n   */\n  function _hideHint(stepId) {\n    var hint = _hintQuerySelectorAll('.introjs-hint[data-step=\"' + stepId + '\"]')[0];\n    \n    _removeHintTooltip.call(this);\n\n    if (hint) {\n      _addClass(hint, 'introjs-hidehint');\n    }\n\n    // call the callback function (if any)\n    if (typeof (this._hintCloseCallback) !== 'undefined') {\n      this._hintCloseCallback.call(this, stepId);\n    }\n  }\n\n  /**\n   * Hide all hints\n   *\n   * @api private\n   * @method _hideHints\n   */\n  function _hideHints() {\n    var hints = _hintQuerySelectorAll('.introjs-hint');\n\n    _forEach(hints, function (hint) {\n      _hideHint.call(this, hint.getAttribute('data-step'));\n    }.bind(this));\n  }\n\n  /**\n   * Show all hints\n   *\n   * @api private\n   * @method _showHints\n   */\n  function _showHints() {\n    var hints = _hintQuerySelectorAll('.introjs-hint');\n\n    if (hints && hints.length) {\n      _forEach(hints, function (hint) {\n        _showHint.call(this, hint.getAttribute('data-step'));\n      }.bind(this));\n    } else {\n      _populateHints.call(this, this._targetElement);\n    }\n  }\n\n  /**\n   * Show a hint\n   *\n   * @api private\n   * @method _showHint\n   */\n  function _showHint(stepId) {\n    var hint = _hintQuerySelectorAll('.introjs-hint[data-step=\"' + stepId + '\"]')[0];\n\n    if (hint) {\n      _removeClass(hint, /introjs-hidehint/g);\n    }\n  }\n\n  /**\n   * Removes all hint elements on the page\n   * Useful when you want to destroy the elements and add them again (e.g. a modal or popup)\n   *\n   * @api private\n   * @method _removeHints\n   */\n  function _removeHints() {\n    var hints = _hintQuerySelectorAll('.introjs-hint');\n\n    _forEach(hints, function (hint) {\n      _removeHint.call(this, hint.getAttribute('data-step'));\n    }.bind(this));\n  }\n\n  /**\n   * Remove one single hint element from the page\n   * Useful when you want to destroy the element and add them again (e.g. a modal or popup)\n   * Use removeHints if you want to remove all elements.\n   *\n   * @api private\n   * @method _removeHint\n   */\n  function _removeHint(stepId) {\n    var hint = _hintQuerySelectorAll('.introjs-hint[data-step=\"' + stepId + '\"]')[0];\n\n    if (hint) {\n      hint.parentNode.removeChild(hint);\n    }\n  }\n\n  /**\n   * Add all available hints to the page\n   *\n   * @api private\n   * @method _addHints\n   */\n  function _addHints() {\n    var self = this;\n\n    var hintsWrapper = document.querySelector('.introjs-hints');\n\n    if (hintsWrapper === null) {\n      hintsWrapper = document.createElement('div');\n      hintsWrapper.className = 'introjs-hints';\n    }\n\n    /**\n    * Returns an event handler unique to the hint iteration\n    * \n    * @param {Integer} i\n    * @return {Function}\n    */\n    var getHintClick = function (i) {\n      return function(e) {\n        var evt = e ? e : window.event;\n        \n        if (evt.stopPropagation) {\n          evt.stopPropagation();\n        }\n\n        if (evt.cancelBubble !== null) {\n          evt.cancelBubble = true;\n        }\n\n        _showHintDialog.call(self, i);\n      };\n    };\n\n    _forEach(this._introItems, function(item, i) {\n      // avoid append a hint twice\n      if (document.querySelector('.introjs-hint[data-step=\"' + i + '\"]')) {\n        return;\n      }\n\n      var hint = document.createElement('a');\n      _setAnchorAsButton(hint);\n\n      hint.onclick = getHintClick(i);\n\n      hint.className = 'introjs-hint';\n\n      if (!item.hintAnimation) {\n        _addClass(hint, 'introjs-hint-no-anim');\n      }\n\n      // hint's position should be fixed if the target element's position is fixed\n      if (_isFixed(item.element)) {\n        _addClass(hint, 'introjs-fixedhint');\n      }\n\n      var hintDot = document.createElement('div');\n      hintDot.className = 'introjs-hint-dot';\n      var hintPulse = document.createElement('div');\n      hintPulse.className = 'introjs-hint-pulse';\n\n      hint.appendChild(hintDot);\n      hint.appendChild(hintPulse);\n      hint.setAttribute('data-step', i);\n\n      // we swap the hint element with target element\n      // because _setHelperLayerPosition uses `element` property\n      item.targetElement = item.element;\n      item.element = hint;\n\n      // align the hint position\n      _alignHintPosition.call(this, item.hintPosition, hint, item.targetElement);\n\n      hintsWrapper.appendChild(hint);\n    }.bind(this));\n\n    // adding the hints wrapper\n    document.body.appendChild(hintsWrapper);\n\n    // call the callback function (if any)\n    if (typeof (this._hintsAddedCallback) !== 'undefined') {\n      this._hintsAddedCallback.call(this);\n    }\n  }\n\n  /**\n   * Aligns hint position\n   *\n   * @api private\n   * @method _alignHintPosition\n   * @param {String} position\n   * @param {Object} hint\n   * @param {Object} element\n   */\n  function _alignHintPosition(position, hint, element) {\n    // get/calculate offset of target element\n    var offset = _getOffset.call(this, element);\n    var iconWidth = 20;\n    var iconHeight = 20;\n\n    // align the hint element\n    switch (position) {\n      default:\n      case 'top-left':\n        hint.style.left = offset.left + 'px';\n        hint.style.top = offset.top + 'px';\n        break;\n      case 'top-right':\n        hint.style.left = (offset.left + offset.width - iconWidth) + 'px';\n        hint.style.top = offset.top + 'px';\n        break;\n      case 'bottom-left':\n        hint.style.left = offset.left + 'px';\n        hint.style.top = (offset.top + offset.height - iconHeight) + 'px';\n        break;\n      case 'bottom-right':\n        hint.style.left = (offset.left + offset.width - iconWidth) + 'px';\n        hint.style.top = (offset.top + offset.height - iconHeight) + 'px';\n        break;\n      case 'middle-left':\n        hint.style.left = offset.left + 'px';\n        hint.style.top = (offset.top + (offset.height - iconHeight) / 2) + 'px';\n        break;\n      case 'middle-right':\n        hint.style.left = (offset.left + offset.width - iconWidth) + 'px';\n        hint.style.top = (offset.top + (offset.height - iconHeight) / 2) + 'px';\n        break;\n      case 'middle-middle':\n        hint.style.left = (offset.left + (offset.width - iconWidth) / 2) + 'px';\n        hint.style.top = (offset.top + (offset.height - iconHeight) / 2) + 'px';\n        break;\n      case 'bottom-middle':\n        hint.style.left = (offset.left + (offset.width - iconWidth) / 2) + 'px';\n        hint.style.top = (offset.top + offset.height - iconHeight) + 'px';\n        break;\n      case 'top-middle':\n        hint.style.left = (offset.left + (offset.width - iconWidth) / 2) + 'px';\n        hint.style.top = offset.top + 'px';\n        break;\n    }\n  }\n\n  /**\n   * Triggers when user clicks on the hint element\n   *\n   * @api private\n   * @method _showHintDialog\n   * @param {Number} stepId\n   */\n  function _showHintDialog(stepId) {\n    var hintElement = document.querySelector('.introjs-hint[data-step=\"' + stepId + '\"]');\n    var item = this._introItems[stepId];\n\n    // call the callback function (if any)\n    if (typeof (this._hintClickCallback) !== 'undefined') {\n      this._hintClickCallback.call(this, hintElement, item, stepId);\n    }\n\n    // remove all open tooltips\n    var removedStep = _removeHintTooltip.call(this);\n\n    // to toggle the tooltip\n    if (parseInt(removedStep, 10) === stepId) {\n      return;\n    }\n\n    var tooltipLayer = document.createElement('div');\n    var tooltipTextLayer = document.createElement('div');\n    var arrowLayer = document.createElement('div');\n    var referenceLayer = document.createElement('div');\n\n    tooltipLayer.className = 'introjs-tooltip';\n\n    tooltipLayer.onclick = function (e) {\n      //IE9 & Other Browsers\n      if (e.stopPropagation) {\n        e.stopPropagation();\n      }\n      //IE8 and Lower\n      else {\n        e.cancelBubble = true;\n      }\n    };\n\n    tooltipTextLayer.className = 'introjs-tooltiptext';\n\n    var tooltipWrapper = document.createElement('p');\n    tooltipWrapper.innerHTML = item.hint;\n\n    var closeButton = document.createElement('a');\n    closeButton.className = this._options.buttonClass;\n    closeButton.setAttribute('role', 'button');\n    closeButton.innerHTML = this._options.hintButtonLabel;\n    closeButton.onclick = _hideHint.bind(this, stepId);\n\n    tooltipTextLayer.appendChild(tooltipWrapper);\n    tooltipTextLayer.appendChild(closeButton);\n\n    arrowLayer.className = 'introjs-arrow';\n    tooltipLayer.appendChild(arrowLayer);\n\n    tooltipLayer.appendChild(tooltipTextLayer);\n\n    // set current step for _placeTooltip function\n    this._currentStep = hintElement.getAttribute('data-step');\n\n    // align reference layer position\n    referenceLayer.className = 'introjs-tooltipReferenceLayer introjs-hintReference';\n    referenceLayer.setAttribute('data-step', hintElement.getAttribute('data-step'));\n    _setHelperLayerPosition.call(this, referenceLayer);\n\n    referenceLayer.appendChild(tooltipLayer);\n    document.body.appendChild(referenceLayer);\n\n    //set proper position\n    _placeTooltip.call(this, hintElement, tooltipLayer, arrowLayer, null, true);\n  }\n\n  /**\n   * Get an element position on the page\n   * Thanks to `meouw`: http://stackoverflow.com/a/442474/375966\n   *\n   * @api private\n   * @method _getOffset\n   * @param {Object} element\n   * @returns Element's position info\n   */\n  function _getOffset(element) {\n    var body = document.body;\n    var docEl = document.documentElement;\n    var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n    var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n    var x = element.getBoundingClientRect();\n    return {\n      top: x.top + scrollTop,\n      width: x.width,\n      height: x.height,\n      left: x.left + scrollLeft\n    };\n  }\n\n  /**\n  * Find the nearest scrollable parent\n  * copied from https://stackoverflow.com/questions/35939886/find-first-scrollable-parent\n  *\n  * @param Element element\n  * @return Element\n  */\n  function _getScrollParent(element) {\n    var style = window.getComputedStyle(element);\n    var excludeStaticParent = (style.position === \"absolute\");\n    var overflowRegex = /(auto|scroll)/;\n\n    if (style.position === \"fixed\") return document.body;\n    \n    for (var parent = element; (parent = parent.parentElement);) {\n      style = window.getComputedStyle(parent);\n      if (excludeStaticParent && style.position === \"static\") {\n        continue;\n      }\n      if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n    }\n\n    return document.body;\n  }\n\n  /**\n  * scroll a scrollable element to a child element\n  *\n  * @param Element parent\n  * @param Element element\n  * @return Null\n  */\n  function _scrollParentToElement (parent, element) {\n    parent.scrollTop = element.offsetTop - parent.offsetTop;\n  }\n\n  /**\n   * Gets the current progress percentage\n   *\n   * @api private\n   * @method _getProgress\n   * @returns current progress percentage\n   */\n  function _getProgress() {\n    // Steps are 0 indexed\n    var currentStep = parseInt((this._currentStep + 1), 10);\n    return ((currentStep / this._introItems.length) * 100);\n  }\n\n  /**\n   * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1\n   * via: http://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically\n   *\n   * @param obj1\n   * @param obj2\n   * @returns obj3 a new object based on obj1 and obj2\n   */\n  function _mergeOptions(obj1,obj2) {\n    var obj3 = {},\n      attrname;\n    for (attrname in obj1) { obj3[attrname] = obj1[attrname]; }\n    for (attrname in obj2) { obj3[attrname] = obj2[attrname]; }\n    return obj3;\n  }\n\n  var introJs = function (targetElm) {\n    var instance;\n\n    if (typeof (targetElm) === 'object') {\n      //Ok, create a new instance\n      instance = new IntroJs(targetElm);\n\n    } else if (typeof (targetElm) === 'string') {\n      //select the target element with query selector\n      var targetElement = document.querySelector(targetElm);\n\n      if (targetElement) {\n        instance = new IntroJs(targetElement);\n      } else {\n        throw new Error('There is no element with given selector.');\n      }\n    } else {\n      instance = new IntroJs(document.body);\n    }\n    // add instance to list of _instances\n    // passing group to _stamp to increment\n    // from 0 onward somewhat reliably\n    introJs.instances[ _stamp(instance, 'introjs-instance') ] = instance;\n\n    return instance;\n  };\n\n  /**\n   * Current IntroJs version\n   *\n   * @property version\n   * @type String\n   */\n  introJs.version = VERSION;\n\n  /**\n  * key-val object helper for introJs instances\n  *\n  * @property instances\n  * @type Object\n  */\n  introJs.instances = {};\n\n  //Prototype\n  introJs.fn = IntroJs.prototype = {\n    clone: function () {\n      return new IntroJs(this);\n    },\n    setOption: function(option, value) {\n      this._options[option] = value;\n      return this;\n    },\n    setOptions: function(options) {\n      this._options = _mergeOptions(this._options, options);\n      return this;\n    },\n    start: function (group) {\n      _introForElement.call(this, this._targetElement, group);\n      return this;\n    },\n    goToStep: function(step) {\n      _goToStep.call(this, step);\n      return this;\n    },\n    addStep: function(options) {\n      if (!this._options.steps) {\n        this._options.steps = [];\n      }\n\n      this._options.steps.push(options);\n\n      return this;\n    },\n    addSteps: function(steps) {\n      if (!steps.length) return;\n\n      for(var index = 0; index < steps.length; index++) {\n        this.addStep(steps[index]);\n      }\n\n      return this;\n    },\n    goToStepNumber: function(step) {\n      _goToStepNumber.call(this, step);\n\n      return this;\n    },\n    nextStep: function() {\n      _nextStep.call(this);\n      return this;\n    },\n    previousStep: function() {\n      _previousStep.call(this);\n      return this;\n    },\n    exit: function(force) {\n      _exitIntro.call(this, this._targetElement, force);\n      return this;\n    },\n    refresh: function() {\n      _refresh.call(this);\n      return this;\n    },\n    onbeforechange: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introBeforeChangeCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onbeforechange was not a function');\n      }\n      return this;\n    },\n    onchange: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introChangeCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onchange was not a function.');\n      }\n      return this;\n    },\n    onafterchange: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introAfterChangeCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onafterchange was not a function');\n      }\n      return this;\n    },\n    oncomplete: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introCompleteCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for oncomplete was not a function.');\n      }\n      return this;\n    },\n    onhintsadded: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._hintsAddedCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onhintsadded was not a function.');\n      }\n      return this;\n    },\n    onhintclick: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._hintClickCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onhintclick was not a function.');\n      }\n      return this;\n    },\n    onhintclose: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._hintCloseCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onhintclose was not a function.');\n      }\n      return this;\n    },\n    onexit: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introExitCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onexit was not a function.');\n      }\n      return this;\n    },\n    onskip: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introSkipCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onskip was not a function.');\n      }\n      return this;\n    },\n    onbeforeexit: function(providedCallback) {\n      if (typeof (providedCallback) === 'function') {\n        this._introBeforeExitCallback = providedCallback;\n      } else {\n        throw new Error('Provided callback for onbeforeexit was not a function.');\n      }\n      return this;\n    },\n    addHints: function() {\n      _populateHints.call(this, this._targetElement);\n      return this;\n    },\n    hideHint: function (stepId) {\n      _hideHint.call(this, stepId);\n      return this;\n    },\n    hideHints: function () {\n      _hideHints.call(this);\n      return this;\n    },\n    showHint: function (stepId) {\n      _showHint.call(this, stepId);\n      return this;\n    },\n    showHints: function () {\n      _showHints.call(this);\n      return this;\n    },\n    removeHints: function () {\n      _removeHints.call(this);\n      return this;\n    },\n    removeHint: function (stepId) {\n      _removeHint.call(this, stepId);\n      return this;\n    },\n    showHintDialog: function (stepId) {\n      _showHintDialog.call(this, stepId);\n      return this;\n    }\n  };\n\n  return introJs;\n});\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/browserslist",
    "content": "# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n#\n# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed\n\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\nnot IE 9-11"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/environments/environment.ts",
    "content": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\">\n  <title>ThisMyPC | Open Source Remote PC Project</title>\n  <meta name=\"keywords\"\n  content=\"Remote Access,remote computer access\nremote computer access software,\nremote computer software,\nremote computer control,\nremote computer manager,\nremote computer access free,\nremote computer app,\nremote computer access programs,\nremote computer access windows 10,\nremote computer access mac,\nremote computer assistance,\nremote computer access online,\na remote computer is attempting to communicate,\nremote a computer,\na computer remote control,\nthe remote computer requires network level authentication,\nremote computer backup,\nremote computer definition,\nremote computer file access,\nof remote computer,\nof computer remote control,\nremote quantum computer,\nremote computer windows,\nremote with computer,\nworking with remote computer,\nrsync with remote computer,\nmining with remote compute,\nremote your computer,\nremote your computer from android,\nremote your computer from anywhere,\nremote access your computer,\nremote control your computer, Remote Computer, Software, Thismypc, this my pc , Evolution ,Browser Your pc from anywhere ,web, application, framework  ,angular ,electron  ,express ,nodejs , Open Source,  Experimental, Full Stack\">\n <meta name=\"description\"\n    content=\"ThisMyPC is a next-generation open source solution for remote pc. It's a full stack based project that starts as an experiment. You can get the source code from GitHub and use for your own purpose.\">\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <meta name=\"author\" content=\"Supun Lakmal\">\n  <meta name=\"og:author\" content=\"Supun Lakmal\">\n  <meta property='og:title' content='ThisMyPC | Open Source Remote PC Project' />\n  <meta property='og:image' content='http://thismypc.com/assets/images/Capture.PNG' />\n  <meta property='og:description'\n    content=\"ThisMyPC is a next-generation open source solution for remote pc. It's a full stack based project that starts as an experiment. You can get the source code from GitHub and use for your own purpose.\" />\n  <meta property='\n          og:url\n    ' content='http://thismypc.com' />\n  <meta name=\"twitter:card\" content=\"summary_large_image\" />\n  <meta name=\"twitter:creator\" content=\"@SupunLakmal4\" />\n  <meta name=\"twitter:title\" content=\"ThisMyPC | Open Source Remote PC Project\" />\n  <meta name=\"twitter:description\"\n    content=\"ThisMyPC is a next-generation open source solution for remote pc. It's a full stack based project that starts as an experiment. You can get the source code from GitHub and use for your own purpose.\">\n  <meta name=\"twitter:image\" content=\"http://thismypc.com/assets/images/Capture.PNG\" />\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n  <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css\"\n    integrity=\"sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO\" crossorigin=\"anonymous\">\n  <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.7.2/css/all.css\"\n    integrity=\"sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr\" crossorigin=\"anonymous\">\n  <link rel=\"stylesheet\" href=\"assets/css/main.css\">\n  <link rel=\"stylesheet\" href=\"assets/css/introjs.css\">\n  <script src=\"assets/js/jquery-3.3.1.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js\"\n    integrity=\"sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q\" crossorigin=\"anonymous\">\n  </script>\n  <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js\"\n    integrity=\"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl\" crossorigin=\"anonymous\">\n  </script>\n  <script src=\"assets/js/intro.js\"></script>\n</head>\n\n<body>\n  <app-root></app-root>\n  <!-- Global site tag (gtag.js) - Google Analytics -->\n  <script async src=\"https://www.googletagmanager.com/gtag/js?id=UA-80316939-2\"></script>\n  <script>\n    window.dataLayer = window.dataLayer || [];\n\n    function gtag() {\n      dataLayer.push(arguments);\n    }\n    gtag('js', new Date());\n    gtag('config', 'UA-80316939-2');\n  </script>\n  <script>\n    $(document).ready(function (params) {\n      $(window).scroll(function () {\n        $('#site-main-nav').toggleClass('onScrolled', $(this).scrollTop() > 300);\n        if ($(this).scrollTop() > 300) {\n          $('#blue-logo').removeClass('hide');\n          $('#blue-logo').addClass('show');\n          $('#white-logo').removeClass('show');\n          $('#white-logo').addClass('hide');\n        } else {\n          $('#blue-logo').addClass('hide');\n          $('#blue-logo').removeClass('show');\n          $('#white-logo').addClass('show');\n          $('#white-logo').removeClass('hide');\n        }\n      });\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, '../coverage'),\n      reports: ['html', 'lcovonly', 'text-summary'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false\n  });\n};"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/main.ts",
    "content": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n  enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule).catch(err => console.error(err));\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10, IE11, and Chrome <55 requires all of the following polyfills.\n *  This also includes Android Emulators with older versions of Chrome and Google Search/Googlebot\n */\n\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/weak-map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/** IE10 and IE11 requires the following for the Reflect API. */\n// import 'core-js/es6/reflect';\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags.ts';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n *  with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n *  (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/styles.css",
    "content": ""
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: any;\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting()\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/tsconfig.app.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/app\",\n    \"types\": []\n  },\n  \"exclude\": [\n    \"test.ts\",\n    \"**/*.spec.ts\"\n  ]\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/spec\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"test.ts\",\n    \"polyfills.ts\"\n  ],\n  \"include\": [\n    \"**/*.spec.ts\",\n    \"**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/src/tslint.json",
    "content": "{\n    \"extends\": \"../tslint.json\",\n    \"rules\": {\n        \"directive-selector\": [\n            true,\n            \"attribute\",\n            \"app\",\n            \"camelCase\"\n        ],\n        \"component-selector\": [\n            true,\n            \"element\",\n            \"app\",\n            \"kebab-case\"\n        ]\n    }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"angular(deprecated)/dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"module\": \"es2015\",\n    \"moduleResolution\": \"node\",\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"importHelpers\": true,\n    \"target\": \"es5\",\n    \"typeRoots\": [\"node_modules/@types\"],\n    \"lib\": [\"es2018\", \"dom\"]\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/angular-deprecated/tslint.json",
    "content": "{\n  \"rulesDirectory\": [\n    \"codelyzer\"\n  ],\n  \"rules\": {\n    \"arrow-return-shorthand\": true,\n    \"callable-types\": true,\n    \"class-name\": true,\n    \"comment-format\": [\n      true,\n      \"check-space\"\n    ],\n    \"curly\": true,\n    \"deprecation\": {\n      \"severity\": \"warn\"\n    },\n    \"eofline\": true,\n    \"forin\": true,\n    \"import-blacklist\": [\n      true,\n      \"rxjs/Rx\"\n    ],\n    \"import-spacing\": true,\n    \"indent\": [\n      true,\n      \"spaces\"\n    ],\n    \"interface-over-type-literal\": true,\n    \"label-position\": true,\n    \"max-line-length\": [\n      true,\n      140\n    ],\n    \"member-access\": false,\n    \"member-ordering\": [\n      true,\n      {\n        \"order\": [\n          \"static-field\",\n          \"instance-field\",\n          \"static-method\",\n          \"instance-method\"\n        ]\n      }\n    ],\n    \"no-arg\": true,\n    \"no-bitwise\": true,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"info\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-construct\": true,\n    \"no-debugger\": true,\n    \"no-duplicate-super\": true,\n    \"no-empty\": false,\n    \"no-empty-interface\": true,\n    \"no-eval\": true,\n    \"no-inferrable-types\": [\n      true,\n      \"ignore-params\"\n    ],\n    \"no-misused-new\": true,\n    \"no-non-null-assertion\": true,\n    \"no-redundant-jsdoc\": true,\n    \"no-shadowed-variable\": true,\n    \"no-string-literal\": false,\n    \"no-string-throw\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-trailing-whitespace\": true,\n    \"no-unnecessary-initializer\": true,\n    \"no-unused-expression\": true,\n    \"no-use-before-declare\": true,\n    \"no-var-keyword\": true,\n    \"object-literal-sort-keys\": false,\n    \"one-line\": [\n      true,\n      \"check-open-brace\",\n      \"check-catch\",\n      \"check-else\",\n      \"check-whitespace\"\n    ],\n    \"prefer-const\": true,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"radix\": true,\n    \"semicolon\": [\n      true,\n      \"always\"\n    ],\n    \"triple-equals\": [\n      true,\n      \"allow-null-check\"\n    ],\n    \"typedef-whitespace\": [\n      true,\n      {\n        \"call-signature\": \"nospace\",\n        \"index-signature\": \"nospace\",\n        \"parameter\": \"nospace\",\n        \"property-declaration\": \"nospace\",\n        \"variable-declaration\": \"nospace\"\n      }\n    ],\n    \"unified-signatures\": true,\n    \"variable-name\": false,\n    \"whitespace\": [\n      true,\n      \"check-branch\",\n      \"check-decl\",\n      \"check-operator\",\n      \"check-separator\",\n      \"check-type\"\n    ],\n    \"no-output-on-prefix\": true,\n    \"use-input-property-decorator\": true,\n    \"use-output-property-decorator\": true,\n    \"use-host-property-decorator\": true,\n    \"no-input-rename\": true,\n    \"no-output-rename\": true,\n    \"use-life-cycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"component-class-suffix\": true,\n    \"directive-class-suffix\": true\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n\n# testing\n/coverage\n\n# production\n/build\n/AdminLTE-3.1.0/node_modules\n\n# misc\n.DS_Store\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n"
  },
  {
    "path": "thisMyPCWeb/react_js/.storybook/main.js",
    "content": "module.exports = {\n  \"stories\": [\n    \"../src/**/*.stories.mdx\",\n    \"../src/**/*.stories.@(js|jsx|ts|tsx)\"\n  ],\n  \"addons\": [\n    \"@storybook/addon-links\",\n    \"@storybook/addon-essentials\",\n    \"@storybook/preset-create-react-app\"\n  ]\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/.storybook/preview.js",
    "content": "export const parameters = {\n  actions: { argTypesRegex: \"^on[A-Z].*\" },\n  controls: {\n    matchers: {\n      color: /(background|color)$/i,\n      date: /Date$/,\n    },\n  },\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.babelrc.js",
    "content": "module.exports = {\n  presets: [\n    [\n      '@babel/preset-env',\n      {\n        loose: true,\n        bugfixes: true,\n        modules: false,\n        exclude: ['transform-typeof-symbol']\n      }\n    ]\n  ]\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.browserslistrc",
    "content": "# https://github.com/browserslist/browserslist#readme\n\n>= 0.2%\nlast 2 major versions\nnot dead\nFirefox ESR\nEdge >= 16\nExplorer >= 10\niOS >= 9\nSafari >= 9\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.bundlewatch.config.json",
    "content": "{\n  \"files\": [\n    {\n      \"path\": \"./dist/css/adminlte.css\",\n      \"maxSize\": \"122.3 kB\"\n    },\n    {\n      \"path\": \"./dist/css/adminlte.min.css\",\n      \"maxSize\": \"116.5 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.components.css\",\n      \"maxSize\": \"27.2 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.components.min.css\",\n      \"maxSize\": \"26.5 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.core.css\",\n      \"maxSize\": \"69.2 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.core.min.css\",\n      \"maxSize\": \"65.4 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.extra-components.css\",\n      \"maxSize\": \"4.6 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.extra-components.min.css\",\n      \"maxSize\": \"4.5 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.pages.css\",\n      \"maxSize\": \"3.5 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.pages.min.css\",\n      \"maxSize\": \"3.1 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.plugins.css\",\n      \"maxSize\": \"21.8 kB\"\n    },\n    {\n      \"path\": \"./dist/css/alt/adminlte.plugins.min.css\",\n      \"maxSize\": \"21.2 kB\"\n    },\n    {\n      \"path\": \"./dist/js/adminlte.js\",\n      \"maxSize\": \"15.7 kB\"\n    },\n    {\n      \"path\": \"./dist/js/adminlte.min.js\",\n      \"maxSize\": \"10.5 kB\"\n    }\n  ]\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.editorconfig",
    "content": "# editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 2\nindent_style = space\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.eslintignore",
    "content": "**/*.min.js\n**/plugins/\n/dist/js/adminlte.js\n/docs/\n/docs_html/\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.eslintrc.json",
    "content": "{\n  \"root\": true,\n  \"extends\": [\n    \"plugin:compat/recommended\",\n    \"plugin:import/errors\",\n    \"plugin:import/warnings\",\n    \"plugin:unicorn/recommended\",\n    \"xo/esnext\",\n    \"xo/browser\"\n  ],\n  \"env\": {\n    \"jquery\": true\n  },\n  \"rules\": {\n    \"capitalized-comments\": \"off\",\n    \"eqeqeq\": \"off\",\n    \"indent\": [\n      \"error\",\n      2,\n      {\n        \"MemberExpression\": \"off\",\n        \"SwitchCase\": 1\n      }\n    ],\n    \"multiline-ternary\": [\n      \"error\",\n      \"always-multiline\"\n    ],\n    \"new-cap\": [\n      \"error\",\n      {\n        \"properties\": false\n      }\n    ],\n    \"no-eq-null\": \"off\",\n    \"no-negated-condition\": \"off\",\n    \"no-console\": \"error\",\n    \"object-curly-spacing\": [\n      \"error\",\n      \"always\"\n    ],\n    \"prefer-template\": \"error\",\n    \"prefer-named-capture-group\": \"off\",\n    \"semi\": [\n      \"error\",\n      \"never\"\n    ],\n    \"unicorn/filename-case\": \"off\",\n    \"unicorn/consistent-destructuring\": \"off\",\n    \"unicorn/no-array-callback-reference\": \"off\",\n    \"unicorn/no-array-for-each\": \"off\",\n    \"unicorn/no-for-loop\": \"off\",\n    \"unicorn/no-null\": \"off\",\n    \"unicorn/no-unused-properties\": \"error\",\n    \"unicorn/prefer-dom-node-append\": \"off\",\n    \"unicorn/prefer-dom-node-dataset\": \"off\",\n    \"unicorn/prefer-dom-node-remove\": \"off\",\n    \"unicorn/prefer-includes\": \"off\",\n    \"unicorn/prefer-number-properties\": \"off\",\n    \"unicorn/prefer-optional-catch-binding\": \"off\",\n    \"unicorn/prefer-query-selector\": \"off\",\n    \"unicorn/prefer-set-has\": \"off\",\n    \"unicorn/prevent-abbreviations\": \"off\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.gitattributes",
    "content": "# Enforce Unix newlines\n* text=auto eol=lf\n\n# Ignores for analysis is used to produce the language stats bar which displays the languages percentages\nplugins/* linguist-vendored=true\ndocs/* linguist-vendored=true"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.gitignore",
    "content": "# System / Log files\n*.DS_Store\n*.log\n\n# Archives\n*.zip\n\n# Sass Cache\n.sass-cache\n\n# Project files\n.idea\nnbproject\nnbproject/private\n.vscode/\n.vs/\n\n# Node / Bower\nnode_modules/\nbower_components/\n\n# Plugins\n/plugins/**/*.html\n/plugins/**/*.less\n/plugins/**/*.md\n/plugins/**/*.scss\n/plugins/**/*.ts\n/plugins/**/bower.json\n/plugins/**/package.json\n/plugins/**/webpack.config.js\n/plugins/**/demo/\n/plugins/**/demos/\n/plugins/**/dev/\n/plugins/**/example/\n/plugins/**/examples/\n/plugins/**/less/\n/plugins/**/test/\n/plugins/**/tests/\n/plugins/daterangepicker/website/\n/plugins/daterangepicker/drp.png\n/plugins/daterangepicker/moment.min.js\n/plugins/daterangepicker/package.js\n/plugins/daterangepicker/website.css\n/plugins/daterangepicker/website.js\n/plugins/jquery-ui/AUTHORS.txt\n/plugins/jquery-ui/external/jquery/jquery.js\n/plugins/inputmask/bindings/\n/plugins/flot/plugins/jquery*.js\n!/plugins/flot/plugins/jquery.flot.*.js\n!/plugins/**/LICENSE.md\n!/plugins/**/LICENSE.txt\n!/plugins/**/license.md\n!/plugins/**/license.txt\n!/plugins/**/LICENSE\n!/plugins/**/license\n!/plugins/**/COPYING\n\n\n# Docs\n/docs/_site/\n/docs/vendor/\n/docs/.bundle/\n/docs_html/\n.jekyll-cache/\n.jekyll-metadata\n\n# ETC\nTODO\ntest.html\nad.js\n/.cache/\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.gitpod.yml",
    "content": "tasks:\n  - init: npm install\n    command: npm run dev\nports:\n  - port: 3000\n    onOpen: open-preview\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.lgtm.yml",
    "content": "# https://lgtm.com/help/lgtm/customizing-file-classification\npath_classifiers:\n  plugins:\n    - plugins/\n\nextraction:\n  javascript:\n    # https://lgtm.com/help/lgtm/javascript-extraction#customizing-index\n    # The `index` step extracts information from the files in the codebase.\n    index:\n      # Specify a list of files and folders to exclude from extraction.\n      exclude:\n        - bower_components/\n        - docs/assets/js/plugins/\n        - plugins/\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.npmignore",
    "content": "/docs/\n/docs_html/\n/plugins/*\n!/plugins/flot-old/\n/.github/\n/.lgtm.yml\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.stylelintignore",
    "content": "**/*.html\n**/*.md\n**/*.min.css\n**/dist/\n**/docs_html/\n**/plugins/\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/.stylelintrc",
    "content": "{\n  \"extends\": [\n    \"stylelint-config-twbs-bootstrap/scss\"\n  ],\n  \"rules\": {\n    \"declaration-no-important\": null,\n    \"order/properties-order\": null,\n    \"selector-max-class\": null,\n    \"selector-max-combinators\": null,\n    \"selector-max-compound-selectors\": null,\n    \"selector-max-id\": null,\n    \"selector-max-specificity\": null,\n    \"selector-max-type\": null,\n    \"selector-no-qualifying-type\": null\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n- Using welcoming and inclusive language\n- Being respectful of differing viewpoints and experiences\n- Gracefully accepting constructive criticism\n- Focusing on what is best for the community\n- Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n- The use of sexualized language or imagery and unwelcome sexual attention or advances\n- Trolling, insulting/derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or electronic address, without explicit permission\n- Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at https://colorlib.com/wp/contact-us/. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct/>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014-2021 ColorlibHQ\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/README.md",
    "content": "# [AdminLTE - Bootstrap 4 Admin Dashboard](https://adminlte.io)\n\n[![npm version](https://img.shields.io/npm/v/admin-lte/latest.svg)](https://www.npmjs.com/package/admin-lte)\n[![Packagist](https://img.shields.io/packagist/v/almasaeed2010/adminlte.svg)](https://packagist.org/packages/almasaeed2010/adminlte)\n[![cdn version](https://data.jsdelivr.com/v1/package/npm/admin-lte/badge)](https://www.jsdelivr.com/package/npm/admin-lte)\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/from-referrer/)\n\n**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 4.6](https://getbootstrap.com/)** framework and also the JS/jQuery plugin.\nHighly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.\n\n**Preview on [AdminLTE.io](https://adminlte.io/themes/v3)**\n\n## Looking for Premium Templates?\n\nAdminLTE.io just opened a new premium templates page. Hand picked to ensure the best quality and the most affordable\nprices. Visit <https://adminlte.io/premium> for more information.\n\n![\"AdminLTE Presentation\"](https://adminlte.io/AdminLTE3.png \"AdminLTE Presentation\")\n\n**AdminLTE** has been carefully coded with clear comments in all of its JS, SCSS and HTML files.\nSCSS has been used to increase code customizability.\n\n## Quick start\nThere are multiple ways to install AdminLTE.\n\n### Download & Changelog:\nAlways Recommended to download from GitHub latest release [AdminLTE 3](https://github.com/ColorlibHQ/AdminLTE/releases/latest) for bug free and latest features.\\\nVisit the [releases](https://github.com/ColorlibHQ/AdminLTE/releases) page to view the changelog.\\\nLegacy Releases are [AdminLTE 2](https://github.com/ColorlibHQ/AdminLTE/releases/tag/v2.4.18) / [AdminLTE 1](https://github.com/ColorlibHQ/AdminLTE/releases/tag/1.3.1).\n\n## Stable release\n### Grab from [jsdelivr](https://www.jsdelivr.com/package/npm/admin-lte) CDN:\n_**Important Note**: You needed to add separately cdn links for plugins in your project._\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1/dist/js/adminlte.min.js\"></script>\n```\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1/dist/css/adminlte.min.css\">\n```\n### Using The Command Line:\n_**Important Note**: To install it via npm/Yarn, you need at least Node.js 10 or higher._\n#### Via npm\n```bash\nnpm install admin-lte@^3.1 --save\n```\n#### Via Yarn\n```bash\nyarn add admin-lte@^3.1\n```\n#### Via Composer\n```bash\ncomposer require \"almasaeed2010/adminlte=~3.1\"\n```\n#### Via Git\n```bash\ngit clone https://github.com/ColorlibHQ/AdminLTE.git\n```\n\n## Unstable release\n### Grab from [jsdelivr](https://www.jsdelivr.com/package/npm/admin-lte) CDN:\n_**Important Note**: You needed to add separately cdn links for plugins in your project._\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1.0/dist/js/adminlte.min.js\"></script>\n```\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1.0/dist/css/adminlte.min.css\">\n```\n### Using The Command Line:\n_**Important Note**: To install it via npm/Yarn, you need at least Node.js 10 or higher._\n#### Via npm\n```bash\nnpm install admin-lte@^3.1.0 --save\n```\n#### Via Yarn\n```bash\nyarn add admin-lte@^3.1.0\n```\n#### Via Composer\n```bash\ncomposer require \"almasaeed2010/adminlte=~3.1.0\"\n```\n#### Via Git\n```bash\ngit clone https://github.com/ColorlibHQ/AdminLTE.git\n```\n\n## Documentation\n\nVisit the [online documentation](https://adminlte.io/docs/3.1/) for the most\nupdated guide. Information will be added on a weekly basis.\n\n## Browsers support\n\n| [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png\" alt=\"IE / Edge\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>IE / Edge | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png\" alt=\"Firefox\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Firefox | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png\" alt=\"Chrome\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Chrome | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png\" alt=\"Safari\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Safari | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari-ios/safari-ios_48x48.png\" alt=\"iOS Safari\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>iOS Safari | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/samsung-internet/samsung-internet_48x48.png\" alt=\"Samsung\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Samsung | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png\" alt=\"Opera\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Opera | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/vivaldi/vivaldi_48x48.png\" alt=\"Vivaldi\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Vivaldi | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/electron/electron_48x48.png\" alt=\"Electron\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)<br/>Electron |\n| --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- |\n| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions\n\n### Compile dist files\n\nTo compile the dist files you need Node.js/npm, clone/download the repo then:\n\n1. `npm install` (install npm deps)\n2. _Optional:_ `npm run dev` (developer mode, autocompile with browsersync support for live demo)\n3. `npm run production` (compile css/js files)\n\n\n## Contributing\n\nPlease read through our [contributing guidelines](https://github.com/ColorlibHQ/AdminLTE/tree/master/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.\n\nEditor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/main/.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org/>.\n\n\n## License\n\nAdminLTE is an open source project by [AdminLTE.io](https://adminlte.io) that is licensed under [MIT](https://opensource.org/licenses/MIT).\nAdminLTE.io reserves the right to change the license of future releases.\n\n## Image Credits\n\n- [Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)\n- [Graphicsfuel](https://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/)\n- [Pickaface](https://pickaface.net/)\n- [Unsplash](https://unsplash.com/)\n- [Uifaces](http://uifaces.com/)\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/config/.eslintrc.json",
    "content": "{\n  \"env\": {\n    \"browser\": false,\n    \"node\": true\n  },\n  \"parserOptions\": {\n    \"sourceType\": \"script\"\n  },\n  \"extends\": \"../../.eslintrc.json\",\n  \"rules\": {\n    \"no-console\": \"off\",\n    \"strict\": \"error\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/config/postcss.config.js",
    "content": "'use strict'\n\nmodule.exports = {\n  map: {\n    inline: false,\n    annotation: true,\n    sourcesContent: true\n  },\n  plugins: [\n    require('postcss-scrollbar')({\n      edgeAutohide: true\n    }),\n    require('autoprefixer')({\n      cascade: false\n    })\n  ]\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/config/rollup.config.js",
    "content": "'use strict'\n\nconst { babel } = require('@rollup/plugin-babel')\n\nconst pkg = require('../../package')\nconst year = new Date().getFullYear()\nconst banner = `/*!\n * AdminLTE v${pkg.version} (${pkg.homepage})\n * Copyright 2014-${year} ${pkg.author}\n * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)\n */`\n\nmodule.exports = {\n  input: 'build/js/AdminLTE.js',\n  output: {\n    banner,\n    file: 'dist/js/adminlte.js',\n    format: 'umd',\n    globals: {\n      jquery: 'jQuery'\n    },\n    name: 'adminlte'\n  },\n  external: ['jquery'],\n  plugins: [\n    babel({\n      exclude: 'node_modules/**',\n      // Include the helpers in the bundle, at most one copy of each\n      babelHelpers: 'bundled'\n    })\n  ]\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/AdminLTE.js",
    "content": "import CardRefresh from './CardRefresh'\nimport CardWidget from './CardWidget'\nimport ControlSidebar from './ControlSidebar'\nimport DirectChat from './DirectChat'\nimport Dropdown from './Dropdown'\nimport ExpandableTable from './ExpandableTable'\nimport Fullscreen from './Fullscreen'\nimport IFrame from './IFrame'\nimport Layout from './Layout'\nimport PushMenu from './PushMenu'\nimport SidebarSearch from './SidebarSearch'\nimport NavbarSearch from './NavbarSearch'\nimport Toasts from './Toasts'\nimport TodoList from './TodoList'\nimport Treeview from './Treeview'\n\nexport {\n  CardRefresh,\n  CardWidget,\n  ControlSidebar,\n  DirectChat,\n  Dropdown,\n  ExpandableTable,\n  Fullscreen,\n  IFrame,\n  Layout,\n  PushMenu,\n  SidebarSearch,\n  NavbarSearch,\n  Toasts,\n  TodoList,\n  Treeview\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/CardRefresh.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE CardRefresh.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardRefresh'\nconst DATA_KEY = 'lte.cardrefresh'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_LOADED = `loaded${EVENT_KEY}`\nconst EVENT_OVERLAY_ADDED = `overlay.added${EVENT_KEY}`\nconst EVENT_OVERLAY_REMOVED = `overlay.removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\n\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_DATA_REFRESH = '[data-card-widget=\"card-refresh\"]'\n\nconst Default = {\n  source: '',\n  sourceSelector: '',\n  params: {},\n  trigger: SELECTOR_DATA_REFRESH,\n  content: '.card-body',\n  loadInContent: true,\n  loadOnInit: true,\n  responseType: '',\n  overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n  onLoadStart() {},\n  onLoadDone(response) {\n    return response\n  }\n}\n\nclass CardRefresh {\n  constructor(element, settings) {\n    this._element = element\n    this._parent = element.parents(SELECTOR_CARD).first()\n    this._settings = $.extend({}, Default, settings)\n    this._overlay = $(this._settings.overlayTemplate)\n\n    if (element.hasClass(CLASS_NAME_CARD)) {\n      this._parent = element\n    }\n\n    if (this._settings.source === '') {\n      throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.')\n    }\n  }\n\n  load() {\n    this._addOverlay()\n    this._settings.onLoadStart.call($(this))\n\n    $.get(this._settings.source, this._settings.params, response => {\n      if (this._settings.loadInContent) {\n        if (this._settings.sourceSelector !== '') {\n          response = $(response).find(this._settings.sourceSelector).html()\n        }\n\n        this._parent.find(this._settings.content).html(response)\n      }\n\n      this._settings.onLoadDone.call($(this), response)\n      this._removeOverlay()\n    }, this._settings.responseType !== '' && this._settings.responseType)\n\n    $(this._element).trigger($.Event(EVENT_LOADED))\n  }\n\n  _addOverlay() {\n    this._parent.append(this._overlay)\n    $(this._element).trigger($.Event(EVENT_OVERLAY_ADDED))\n  }\n\n  _removeOverlay() {\n    this._parent.find(this._overlay).remove()\n    $(this._element).trigger($.Event(EVENT_OVERLAY_REMOVED))\n  }\n\n  // Private\n\n  _init() {\n    $(this).find(this._settings.trigger).on('click', () => {\n      this.load()\n    })\n\n    if (this._settings.loadOnInit) {\n      this.load()\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    let data = $(this).data(DATA_KEY)\n    const _options = $.extend({}, Default, $(this).data())\n\n    if (!data) {\n      data = new CardRefresh($(this), _options)\n      $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n    }\n\n    if (typeof config === 'string' && /load/.test(config)) {\n      data[config]()\n    } else {\n      data._init($(this))\n    }\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_REFRESH, function (event) {\n  if (event) {\n    event.preventDefault()\n  }\n\n  CardRefresh._jQueryInterface.call($(this), 'load')\n})\n\n$(() => {\n  $(SELECTOR_DATA_REFRESH).each(function () {\n    CardRefresh._jQueryInterface.call($(this))\n  })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardRefresh._jQueryInterface\n$.fn[NAME].Constructor = CardRefresh\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return CardRefresh._jQueryInterface\n}\n\nexport default CardRefresh\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/CardWidget.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE CardWidget.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardWidget'\nconst DATA_KEY = 'lte.cardwidget'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\nconst CLASS_NAME_COLLAPSED = 'collapsed-card'\nconst CLASS_NAME_COLLAPSING = 'collapsing-card'\nconst CLASS_NAME_EXPANDING = 'expanding-card'\nconst CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'\nconst CLASS_NAME_MAXIMIZED = 'maximized-card'\n\nconst SELECTOR_DATA_REMOVE = '[data-card-widget=\"remove\"]'\nconst SELECTOR_DATA_COLLAPSE = '[data-card-widget=\"collapse\"]'\nconst SELECTOR_DATA_MAXIMIZE = '[data-card-widget=\"maximize\"]'\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_CARD_HEADER = '.card-header'\nconst SELECTOR_CARD_BODY = '.card-body'\nconst SELECTOR_CARD_FOOTER = '.card-footer'\n\nconst Default = {\n  animationSpeed: 'normal',\n  collapseTrigger: SELECTOR_DATA_COLLAPSE,\n  removeTrigger: SELECTOR_DATA_REMOVE,\n  maximizeTrigger: SELECTOR_DATA_MAXIMIZE,\n  collapseIcon: 'fa-minus',\n  expandIcon: 'fa-plus',\n  maximizeIcon: 'fa-expand',\n  minimizeIcon: 'fa-compress'\n}\n\nclass CardWidget {\n  constructor(element, settings) {\n    this._element = element\n    this._parent = element.parents(SELECTOR_CARD).first()\n\n    if (element.hasClass(CLASS_NAME_CARD)) {\n      this._parent = element\n    }\n\n    this._settings = $.extend({}, Default, settings)\n  }\n\n  collapse() {\n    this._parent.addClass(CLASS_NAME_COLLAPSING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n      .slideUp(this._settings.animationSpeed, () => {\n        this._parent.addClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_COLLAPSING)\n      })\n\n    this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.collapseIcon}`)\n      .addClass(this._settings.expandIcon)\n      .removeClass(this._settings.collapseIcon)\n\n    this._element.trigger($.Event(EVENT_COLLAPSED), this._parent)\n  }\n\n  expand() {\n    this._parent.addClass(CLASS_NAME_EXPANDING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n      .slideDown(this._settings.animationSpeed, () => {\n        this._parent.removeClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_EXPANDING)\n      })\n\n    this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.expandIcon}`)\n      .addClass(this._settings.collapseIcon)\n      .removeClass(this._settings.expandIcon)\n\n    this._element.trigger($.Event(EVENT_EXPANDED), this._parent)\n  }\n\n  remove() {\n    this._parent.slideUp()\n    this._element.trigger($.Event(EVENT_REMOVED), this._parent)\n  }\n\n  toggle() {\n    if (this._parent.hasClass(CLASS_NAME_COLLAPSED)) {\n      this.expand()\n      return\n    }\n\n    this.collapse()\n  }\n\n  maximize() {\n    this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.maximizeIcon}`)\n      .addClass(this._settings.minimizeIcon)\n      .removeClass(this._settings.maximizeIcon)\n    this._parent.css({\n      height: this._parent.height(),\n      width: this._parent.width(),\n      transition: 'all .15s'\n    }).delay(150).queue(function () {\n      const $element = $(this)\n\n      $element.addClass(CLASS_NAME_MAXIMIZED)\n      $('html').addClass(CLASS_NAME_MAXIMIZED)\n      if ($element.hasClass(CLASS_NAME_COLLAPSED)) {\n        $element.addClass(CLASS_NAME_WAS_COLLAPSED)\n      }\n\n      $element.dequeue()\n    })\n\n    this._element.trigger($.Event(EVENT_MAXIMIZED), this._parent)\n  }\n\n  minimize() {\n    this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.minimizeIcon}`)\n      .addClass(this._settings.maximizeIcon)\n      .removeClass(this._settings.minimizeIcon)\n    this._parent.css('cssText', `height: ${this._parent[0].style.height} !important; width: ${this._parent[0].style.width} !important; transition: all .15s;`\n    ).delay(10).queue(function () {\n      const $element = $(this)\n\n      $element.removeClass(CLASS_NAME_MAXIMIZED)\n      $('html').removeClass(CLASS_NAME_MAXIMIZED)\n      $element.css({\n        height: 'inherit',\n        width: 'inherit'\n      })\n      if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {\n        $element.removeClass(CLASS_NAME_WAS_COLLAPSED)\n      }\n\n      $element.dequeue()\n    })\n\n    this._element.trigger($.Event(EVENT_MINIMIZED), this._parent)\n  }\n\n  toggleMaximize() {\n    if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {\n      this.minimize()\n      return\n    }\n\n    this.maximize()\n  }\n\n  // Private\n\n  _init(card) {\n    this._parent = card\n\n    $(this).find(this._settings.collapseTrigger).click(() => {\n      this.toggle()\n    })\n\n    $(this).find(this._settings.maximizeTrigger).click(() => {\n      this.toggleMaximize()\n    })\n\n    $(this).find(this._settings.removeTrigger).click(() => {\n      this.remove()\n    })\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    let data = $(this).data(DATA_KEY)\n    const _options = $.extend({}, Default, $(this).data())\n\n    if (!data) {\n      data = new CardWidget($(this), _options)\n      $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n    }\n\n    if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) {\n      data[config]()\n    } else if (typeof config === 'object') {\n      data._init($(this))\n    }\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {\n  if (event) {\n    event.preventDefault()\n  }\n\n  CardWidget._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).on('click', SELECTOR_DATA_REMOVE, function (event) {\n  if (event) {\n    event.preventDefault()\n  }\n\n  CardWidget._jQueryInterface.call($(this), 'remove')\n})\n\n$(document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {\n  if (event) {\n    event.preventDefault()\n  }\n\n  CardWidget._jQueryInterface.call($(this), 'toggleMaximize')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardWidget._jQueryInterface\n$.fn[NAME].Constructor = CardWidget\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return CardWidget._jQueryInterface\n}\n\nexport default CardWidget\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/ControlSidebar.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE ControlSidebar.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'ControlSidebar'\nconst DATA_KEY = 'lte.controlsidebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\n\nconst SELECTOR_CONTROL_SIDEBAR = '.control-sidebar'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_FOOTER = '.main-footer'\n\nconst CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed'\nconst CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed'\nconst CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed'\nconst CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed'\nconst CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed'\nconst CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed'\nconst CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed'\nconst CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed'\nconst CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed'\nconst CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed'\n\nconst Default = {\n  controlsidebarSlide: true,\n  scrollbarTheme: 'os-theme-light',\n  scrollbarAutoHide: 'l',\n  target: SELECTOR_CONTROL_SIDEBAR\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass ControlSidebar {\n  constructor(element, config) {\n    this._element = element\n    this._config = config\n  }\n\n  // Public\n\n  collapse() {\n    const $body = $('body')\n    const $html = $('html')\n    const { target } = this._config\n\n    // Show the control sidebar\n    if (this._config.controlsidebarSlide) {\n      $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n      $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n        $(target).hide()\n        $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n        $(this).dequeue()\n      })\n    } else {\n      $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n    }\n\n    $(this._element).trigger($.Event(EVENT_COLLAPSED))\n  }\n\n  show() {\n    const $body = $('body')\n    const $html = $('html')\n\n    // Collapse the control sidebar\n    if (this._config.controlsidebarSlide) {\n      $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n      $(this._config.target).show().delay(10).queue(function () {\n        $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n          $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n          $(this).dequeue()\n        })\n        $(this).dequeue()\n      })\n    } else {\n      $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n    }\n\n    this._fixHeight()\n    this._fixScrollHeight()\n\n    $(this._element).trigger($.Event(EVENT_EXPANDED))\n  }\n\n  toggle() {\n    const $body = $('body')\n    const shouldClose = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n        $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n    if (shouldClose) {\n      // Close the control sidebar\n      this.collapse()\n    } else {\n      // Open the control sidebar\n      this.show()\n    }\n  }\n\n  // Private\n\n  _init() {\n    const $body = $('body')\n    const shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n        $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n    if (shouldNotHideAll) {\n      $(SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide()\n      $(this._config.target).css('display', 'block')\n    } else {\n      $(SELECTOR_CONTROL_SIDEBAR).hide()\n    }\n\n    this._fixHeight()\n    this._fixScrollHeight()\n\n    $(window).resize(() => {\n      this._fixHeight()\n      this._fixScrollHeight()\n    })\n\n    $(window).scroll(() => {\n      const $body = $('body')\n      const shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n          $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n      if (shouldFixHeight) {\n        this._fixScrollHeight()\n      }\n    })\n  }\n\n  _isNavbarFixed() {\n    const $body = $('body')\n    return (\n      $body.hasClass(CLASS_NAME_NAVBAR_FIXED) ||\n        $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) ||\n        $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) ||\n        $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) ||\n        $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED)\n    )\n  }\n\n  _isFooterFixed() {\n    const $body = $('body')\n    return (\n      $body.hasClass(CLASS_NAME_FOOTER_FIXED) ||\n        $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) ||\n        $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) ||\n        $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) ||\n        $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED)\n    )\n  }\n\n  _fixScrollHeight() {\n    const $body = $('body')\n    const $controlSidebar = $(this._config.target)\n\n    if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n      return\n    }\n\n    const heights = {\n      scroll: $(document).height(),\n      window: $(window).height(),\n      header: $(SELECTOR_HEADER).outerHeight(),\n      footer: $(SELECTOR_FOOTER).outerHeight()\n    }\n    const positions = {\n      bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll),\n      top: $(window).scrollTop()\n    }\n\n    const navbarFixed = this._isNavbarFixed() && $(SELECTOR_HEADER).css('position') === 'fixed'\n\n    const footerFixed = this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed'\n\n    const $controlsidebarContent = $(`${this._config.target}, ${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n    if (positions.top === 0 && positions.bottom === 0) {\n      $controlSidebar.css({\n        bottom: heights.footer,\n        top: heights.header\n      })\n      $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer))\n    } else if (positions.bottom <= heights.footer) {\n      if (footerFixed === false) {\n        const top = heights.header - positions.top\n        $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0)\n        $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom))\n      } else {\n        $controlSidebar.css('bottom', heights.footer)\n      }\n    } else if (positions.top <= heights.header) {\n      if (navbarFixed === false) {\n        $controlSidebar.css('top', heights.header - positions.top)\n        $controlsidebarContent.css('height', heights.window - (heights.header - positions.top))\n      } else {\n        $controlSidebar.css('top', heights.header)\n      }\n    } else if (navbarFixed === false) {\n      $controlSidebar.css('top', 0)\n      $controlsidebarContent.css('height', heights.window)\n    } else {\n      $controlSidebar.css('top', heights.header)\n    }\n\n    if (footerFixed && navbarFixed) {\n      $controlsidebarContent.css('height', '100%')\n      $controlSidebar.css('height', '')\n    } else if (footerFixed || navbarFixed) {\n      $controlsidebarContent.css('height', '100%')\n      $controlsidebarContent.css('height', '')\n    }\n  }\n\n  _fixHeight() {\n    const $body = $('body')\n    const $controlSidebar = $(`${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n    if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n      $controlSidebar.attr('style', '')\n      return\n    }\n\n    const heights = {\n      window: $(window).height(),\n      header: $(SELECTOR_HEADER).outerHeight(),\n      footer: $(SELECTOR_FOOTER).outerHeight()\n    }\n\n    let sidebarHeight = heights.window - heights.header\n\n    if (this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed') {\n      sidebarHeight = heights.window - heights.header - heights.footer\n    }\n\n    $controlSidebar.css('height', sidebarHeight)\n\n    if (typeof $.fn.overlayScrollbars !== 'undefined') {\n      $controlSidebar.overlayScrollbars({\n        className: this._config.scrollbarTheme,\n        sizeAutoCapable: true,\n        scrollbars: {\n          autoHide: this._config.scrollbarAutoHide,\n          clickScrolling: true\n        }\n      })\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(operation) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _options = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new ControlSidebar(this, _options)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (data[operation] === 'undefined') {\n        throw new Error(`${operation} is not a function`)\n      }\n\n      data[operation]()\n    })\n  }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n  event.preventDefault()\n\n  ControlSidebar._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).ready(() => {\n  ControlSidebar._jQueryInterface.call($(SELECTOR_DATA_TOGGLE), '_init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = ControlSidebar._jQueryInterface\n$.fn[NAME].Constructor = ControlSidebar\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return ControlSidebar._jQueryInterface\n}\n\nexport default ControlSidebar\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/DirectChat.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE DirectChat.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'DirectChat'\nconst DATA_KEY = 'lte.directchat'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"chat-pane-toggle\"]'\nconst SELECTOR_DIRECT_CHAT = '.direct-chat'\n\nconst CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass DirectChat {\n  constructor(element) {\n    this._element = element\n  }\n\n  toggle() {\n    $(this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN)\n    $(this._element).trigger($.Event(EVENT_TOGGLED))\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n\n      if (!data) {\n        data = new DirectChat($(this))\n        $(this).data(DATA_KEY, data)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n  if (event) {\n    event.preventDefault()\n  }\n\n  DirectChat._jQueryInterface.call($(this), 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = DirectChat._jQueryInterface\n$.fn[NAME].Constructor = DirectChat\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return DirectChat._jQueryInterface\n}\n\nexport default DirectChat\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/Dropdown.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE Dropdown.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Dropdown'\nconst DATA_KEY = 'lte.dropdown'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show'\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-toggle=\"dropdown\"]'\n\nconst CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'\n\n// TODO: this is unused; should be removed along with the extend?\nconst Default = {}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Dropdown {\n  constructor(element, config) {\n    this._config = config\n    this._element = element\n  }\n\n  // Public\n\n  toggleSubmenu() {\n    this._element.siblings().show().toggleClass('show')\n\n    if (!this._element.next().hasClass('show')) {\n      this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide()\n    }\n\n    this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', () => {\n      $('.dropdown-submenu .show').removeClass('show').hide()\n    })\n  }\n\n  fixPosition() {\n    const $element = $(SELECTOR_DROPDOWN_MENU_ACTIVE)\n\n    if ($element.length === 0) {\n      return\n    }\n\n    if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) {\n      $element.css({\n        left: 'inherit',\n        right: 0\n      })\n    } else {\n      $element.css({\n        left: 0,\n        right: 'inherit'\n      })\n    }\n\n    const offset = $element.offset()\n    const width = $element.width()\n    const visiblePart = $(window).width() - offset.left\n\n    if (offset.left < 0) {\n      $element.css({\n        left: 'inherit',\n        right: offset.left - 5\n      })\n    } else if (visiblePart < width) {\n      $element.css({\n        left: 'inherit',\n        right: 0\n      })\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _config = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new Dropdown($(this), _config)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (config === 'toggleSubmenu' || config === 'fixPosition') {\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(`${SELECTOR_DROPDOWN_MENU} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', function (event) {\n  event.preventDefault()\n  event.stopPropagation()\n\n  Dropdown._jQueryInterface.call($(this), 'toggleSubmenu')\n})\n\n$(`${SELECTOR_NAVBAR} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', event => {\n  event.preventDefault()\n\n  if ($(event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) {\n    return\n  }\n\n  setTimeout(function () {\n    Dropdown._jQueryInterface.call($(this), 'fixPosition')\n  }, 1)\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/ExpandableTable.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE ExpandableTable.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n  * Constants\n  * ====================================================\n  */\n\nconst NAME = 'ExpandableTable'\nconst DATA_KEY = 'lte.expandableTable'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n\nconst SELECTOR_TABLE = '.expandable-table'\nconst SELECTOR_EXPANDABLE_BODY = '.expandable-body'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"expandable-table\"]'\nconst SELECTOR_ARIA_ATTR = 'aria-expanded'\n\n/**\n  * Class Definition\n  * ====================================================\n  */\nclass ExpandableTable {\n  constructor(element, options) {\n    this._options = options\n    this._element = element\n  }\n\n  // Public\n\n  init() {\n    $(SELECTOR_DATA_TOGGLE).each((_, $header) => {\n      const $type = $($header).attr(SELECTOR_ARIA_ATTR)\n      const $body = $($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n      if ($type === 'true') {\n        $body.show()\n      } else if ($type === 'false') {\n        $body.hide()\n        $body.parent().parent().addClass('d-none')\n      }\n    })\n  }\n\n  toggleRow() {\n    const $element = this._element\n    const time = 500\n    const $type = $element.attr(SELECTOR_ARIA_ATTR)\n    const $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n\n    $body.stop()\n    if ($type === 'true') {\n      $body.slideUp(time, () => {\n        $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none')\n      })\n      $element.attr(SELECTOR_ARIA_ATTR, 'false')\n      $element.trigger($.Event(EVENT_COLLAPSED))\n    } else if ($type === 'false') {\n      $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none')\n      $body.slideDown(time)\n      $element.attr(SELECTOR_ARIA_ATTR, 'true')\n      $element.trigger($.Event(EVENT_EXPANDED))\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(operation) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n\n      if (!data) {\n        data = new ExpandableTable($(this))\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (typeof operation === 'string' && /init|toggleRow/.test(operation)) {\n        data[operation]()\n      }\n    })\n  }\n}\n\n/**\n  * Data API\n  * ====================================================\n  */\n$(SELECTOR_TABLE).ready(function () {\n  ExpandableTable._jQueryInterface.call($(this), 'init')\n})\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function () {\n  ExpandableTable._jQueryInterface.call($(this), 'toggleRow')\n})\n\n/**\n  * jQuery API\n  * ====================================================\n  */\n\n$.fn[NAME] = ExpandableTable._jQueryInterface\n$.fn[NAME].Constructor = ExpandableTable\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return ExpandableTable._jQueryInterface\n}\n\nexport default ExpandableTable\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/Fullscreen.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE Fullscreen.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Fullscreen'\nconst DATA_KEY = 'lte.fullscreen'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"fullscreen\"]'\nconst SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i`\n\nconst Default = {\n  minimizeIcon: 'fa-compress-arrows-alt',\n  maximizeIcon: 'fa-expand-arrows-alt'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Fullscreen {\n  constructor(_element, _options) {\n    this.element = _element\n    this.options = $.extend({}, Default, _options)\n  }\n\n  // Public\n\n  toggle() {\n    if (document.fullscreenElement ||\n      document.mozFullScreenElement ||\n      document.webkitFullscreenElement ||\n      document.msFullscreenElement) {\n      this.windowed()\n    } else {\n      this.fullscreen()\n    }\n  }\n\n  fullscreen() {\n    if (document.documentElement.requestFullscreen) {\n      document.documentElement.requestFullscreen()\n    } else if (document.documentElement.webkitRequestFullscreen) {\n      document.documentElement.webkitRequestFullscreen()\n    } else if (document.documentElement.msRequestFullscreen) {\n      document.documentElement.msRequestFullscreen()\n    }\n\n    $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon)\n  }\n\n  windowed() {\n    if (document.exitFullscreen) {\n      document.exitFullscreen()\n    } else if (document.webkitExitFullscreen) {\n      document.webkitExitFullscreen()\n    } else if (document.msExitFullscreen) {\n      document.msExitFullscreen()\n    }\n\n    $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon)\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    let data = $(this).data(DATA_KEY)\n\n    if (!data) {\n      data = $(this).data()\n    }\n\n    const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n    const plugin = new Fullscreen($(this), _options)\n\n    $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n    if (typeof config === 'string' && /toggle|fullscreen|windowed/.test(config)) {\n      plugin[config]()\n    } else {\n      plugin.init()\n    }\n  }\n}\n\n/**\n  * Data API\n  * ====================================================\n  */\n$(document).on('click', SELECTOR_DATA_WIDGET, function () {\n  Fullscreen._jQueryInterface.call($(this), 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Fullscreen._jQueryInterface\n$.fn[NAME].Constructor = Fullscreen\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Fullscreen._jQueryInterface\n}\n\nexport default Fullscreen\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/IFrame.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE IFrame.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'IFrame'\nconst DATA_KEY = 'lte.iframe'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"iframe\"]'\nconst SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget=\"iframe-close\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget=\"iframe-scrollleft\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget=\"iframe-scrollright\"]'\nconst SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget=\"iframe-fullscreen\"]'\nconst SELECTOR_CONTENT_WRAPPER = '.content-wrapper'\nconst SELECTOR_CONTENT_IFRAME = `${SELECTOR_CONTENT_WRAPPER} iframe`\nconst SELECTOR_TAB_NAV = `${SELECTOR_DATA_TOGGLE}.iframe-mode .nav`\nconst SELECTOR_TAB_NAVBAR_NAV = `${SELECTOR_DATA_TOGGLE}.iframe-mode .navbar-nav`\nconst SELECTOR_TAB_NAVBAR_NAV_ITEM = `${SELECTOR_TAB_NAVBAR_NAV} .nav-item`\nconst SELECTOR_TAB_NAVBAR_NAV_LINK = `${SELECTOR_TAB_NAVBAR_NAV} .nav-link`\nconst SELECTOR_TAB_CONTENT = `${SELECTOR_DATA_TOGGLE}.iframe-mode .tab-content`\nconst SELECTOR_TAB_EMPTY = `${SELECTOR_TAB_CONTENT} .tab-empty`\nconst SELECTOR_TAB_LOADING = `${SELECTOR_TAB_CONTENT} .tab-loading`\nconst SELECTOR_TAB_PANE = `${SELECTOR_TAB_CONTENT} .tab-pane`\nconst SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link'\nconst SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item'\nconst SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link'\nconst SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item'\nconst CLASS_NAME_IFRAME_MODE = 'iframe-mode'\nconst CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen'\n\nconst Default = {\n  onTabClick(item) {\n    return item\n  },\n  onTabChanged(item) {\n    return item\n  },\n  onTabCreated(item) {\n    return item\n  },\n  autoIframeMode: true,\n  autoItemActive: true,\n  autoShowNewTab: true,\n  allowDuplicates: false,\n  loadingScreen: true,\n  useNavbarItems: true,\n  scrollOffset: 40,\n  scrollBehaviorSwap: false,\n  iconMaximize: 'fa-expand',\n  iconMinimize: 'fa-compress'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass IFrame {\n  constructor(element, config) {\n    this._config = config\n    this._element = element\n\n    this._init()\n  }\n\n  // Public\n\n  onTabClick(item) {\n    this._config.onTabClick(item)\n  }\n\n  onTabChanged(item) {\n    this._config.onTabChanged(item)\n  }\n\n  onTabCreated(item) {\n    this._config.onTabCreated(item)\n  }\n\n  createTab(title, link, uniqueName, autoOpen) {\n    let tabId = `panel-${uniqueName}`\n    let navId = `tab-${uniqueName}`\n\n    if (this._config.allowDuplicates) {\n      tabId += `-${Math.floor(Math.random() * 1000)}`\n      navId += `-${Math.floor(Math.random() * 1000)}`\n    }\n\n    const newNavItem = `<li class=\"nav-item\" role=\"presentation\"><a href=\"#\" class=\"btn-iframe-close\" data-widget=\"iframe-close\" data-type=\"only-this\"><i class=\"fas fa-times\"></i></a><a class=\"nav-link\" data-toggle=\"row\" id=\"${navId}\" href=\"#${tabId}\" role=\"tab\" aria-controls=\"${tabId}\" aria-selected=\"false\">${title}</a></li>`\n    $(SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem)))\n\n    const newTabItem = `<div class=\"tab-pane fade\" id=\"${tabId}\" role=\"tabpanel\" aria-labelledby=\"${navId}\"><iframe src=\"${link}\"></iframe></div>`\n    $(SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem)))\n\n    if (autoOpen) {\n      if (this._config.loadingScreen) {\n        const $loadingScreen = $(SELECTOR_TAB_LOADING)\n        $loadingScreen.fadeIn()\n        $(`${tabId} iframe`).ready(() => {\n          if (typeof this._config.loadingScreen === 'number') {\n            this.switchTab(`#${navId}`)\n            setTimeout(() => {\n              $loadingScreen.fadeOut()\n            }, this._config.loadingScreen)\n          } else {\n            this.switchTab(`#${navId}`)\n            $loadingScreen.fadeOut()\n          }\n        })\n      } else {\n        this.switchTab(`#${navId}`)\n      }\n    }\n\n    this.onTabCreated($(`#${navId}`))\n  }\n\n  openTabSidebar(item, autoOpen = this._config.autoShowNewTab) {\n    let $item = $(item).clone()\n    if ($item.attr('href') === undefined) {\n      $item = $(item).parent('a').clone()\n    }\n\n    $item.find('.right, .search-path').remove()\n    let title = $item.find('p').text()\n    if (title === '') {\n      title = $item.text()\n    }\n\n    const link = $item.attr('href')\n    if (link === '#' || link === '' || link === undefined) {\n      return\n    }\n\n    const uniqueName = link.replace('./', '').replace(/[\"&'./:=?[\\]]/gi, '-').replace(/(--)/gi, '')\n    const navId = `tab-${uniqueName}`\n\n    if (!this._config.allowDuplicates && $(`#${navId}`).length > 0) {\n      return this.switchTab(`#${navId}`)\n    }\n\n    if ((!this._config.allowDuplicates && $(`#${navId}`).length === 0) || this._config.allowDuplicates) {\n      this.createTab(title, link, uniqueName, autoOpen)\n    }\n  }\n\n  switchTab(item) {\n    const $item = $(item)\n    const tabId = $item.attr('href')\n\n    $(SELECTOR_TAB_EMPTY).hide()\n    $(`${SELECTOR_TAB_NAVBAR_NAV} .active`).tab('dispose').removeClass('active')\n    this._fixHeight()\n\n    $item.tab('show')\n    $item.parents('li').addClass('active')\n    this.onTabChanged($item)\n\n    if (this._config.autoItemActive) {\n      this._setItemActive($(`${tabId} iframe`).attr('src'))\n    }\n  }\n\n  removeActiveTab(type, element) {\n    if (type == 'all') {\n      $(SELECTOR_TAB_NAVBAR_NAV_ITEM).remove()\n      $(SELECTOR_TAB_PANE).remove()\n      $(SELECTOR_TAB_EMPTY).show()\n    } else if (type == 'all-other') {\n      $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}:not(.active)`).remove()\n      $(`${SELECTOR_TAB_PANE}:not(.active)`).remove()\n    } else if (type == 'only-this') {\n      const $navClose = $(element)\n      const $navItem = $navClose.parent('.nav-item')\n      const $navItemParent = $navItem.parent()\n      const navItemIndex = $navItem.index()\n      const tabId = $navClose.siblings('.nav-link').attr('aria-controls')\n      $navItem.remove()\n      $(`#${tabId}`).remove()\n      if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n        $(SELECTOR_TAB_EMPTY).show()\n      } else {\n        const prevNavItemIndex = navItemIndex - 1\n        this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n      }\n    } else {\n      const $navItem = $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}.active`)\n      const $navItemParent = $navItem.parent()\n      const navItemIndex = $navItem.index()\n      $navItem.remove()\n      $(`${SELECTOR_TAB_PANE}.active`).remove()\n      if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n        $(SELECTOR_TAB_EMPTY).show()\n      } else {\n        const prevNavItemIndex = navItemIndex - 1\n        this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n      }\n    }\n  }\n\n  toggleFullscreen() {\n    if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n      $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize)\n      $('body').removeClass(CLASS_NAME_FULLSCREEN_MODE)\n      $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height('auto')\n      $(SELECTOR_CONTENT_WRAPPER).height('auto')\n      $(SELECTOR_CONTENT_IFRAME).height('auto')\n    } else {\n      $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize)\n      $('body').addClass(CLASS_NAME_FULLSCREEN_MODE)\n    }\n\n    $(window).trigger('resize')\n    this._fixHeight(true)\n  }\n\n  // Private\n\n  _init() {\n    if (window.frameElement && this._config.autoIframeMode) {\n      $('body').addClass(CLASS_NAME_IFRAME_MODE)\n    } else if ($(SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) {\n      if ($(SELECTOR_TAB_CONTENT).children().length > 2) {\n        const $el = $(`${SELECTOR_TAB_PANE}:first-child`)\n        $el.show()\n        this._setItemActive($el.find('iframe').attr('src'))\n      }\n\n      this._setupListeners()\n      this._fixHeight(true)\n    }\n  }\n\n  _navScroll(offset) {\n    const leftPos = $(SELECTOR_TAB_NAVBAR_NAV).scrollLeft()\n    $(SELECTOR_TAB_NAVBAR_NAV).animate({ scrollLeft: (leftPos + offset) }, 250, 'linear')\n  }\n\n  _setupListeners() {\n    $(window).on('resize', () => {\n      setTimeout(() => {\n        this._fixHeight()\n      }, 1)\n    })\n    $(document).on('click', `${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_SIDEBAR_SEARCH_ITEM}`, e => {\n      e.preventDefault()\n      this.openTabSidebar(e.target)\n    })\n\n    if (this._config.useNavbarItems) {\n      $(document).on('click', `${SELECTOR_HEADER_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`, e => {\n        e.preventDefault()\n        this.openTabSidebar(e.target)\n      })\n    }\n\n    $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n      e.preventDefault()\n      this.onTabClick(e.target)\n      this.switchTab(e.target)\n    })\n    $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n      e.preventDefault()\n      this.onTabClick(e.target)\n      this.switchTab(e.target)\n    })\n    $(document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, e => {\n      e.preventDefault()\n      let { target } = e\n\n      if (target.nodeName == 'I') {\n        target = e.target.offsetParent\n      }\n\n      this.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target)\n    })\n    $(document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, e => {\n      e.preventDefault()\n      this.toggleFullscreen()\n    })\n    let mousedown = false\n    let mousedownInterval = null\n    $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, e => {\n      e.preventDefault()\n      clearInterval(mousedownInterval)\n\n      let { scrollOffset } = this._config\n\n      if (!this._config.scrollBehaviorSwap) {\n        scrollOffset = -scrollOffset\n      }\n\n      mousedown = true\n      this._navScroll(scrollOffset)\n\n      mousedownInterval = setInterval(() => {\n        this._navScroll(scrollOffset)\n      }, 250)\n    })\n    $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, e => {\n      e.preventDefault()\n      clearInterval(mousedownInterval)\n\n      let { scrollOffset } = this._config\n\n      if (this._config.scrollBehaviorSwap) {\n        scrollOffset = -scrollOffset\n      }\n\n      mousedown = true\n      this._navScroll(scrollOffset)\n\n      mousedownInterval = setInterval(() => {\n        this._navScroll(scrollOffset)\n      }, 250)\n    })\n    $(document).on('mouseup', () => {\n      if (mousedown) {\n        mousedown = false\n        clearInterval(mousedownInterval)\n        mousedownInterval = null\n      }\n    })\n  }\n\n  _setItemActive(href) {\n    $(`${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`).removeClass('active')\n    $(SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active')\n\n    const $headerMenuItem = $(`${SELECTOR_HEADER_MENU_ITEM}[href$=\"${href}\"]`)\n    const $headerDropdownItem = $(`${SELECTOR_HEADER_DROPDOWN_ITEM}[href$=\"${href}\"]`)\n    const $sidebarMenuItem = $(`${SELECTOR_SIDEBAR_MENU_ITEM}[href$=\"${href}\"]`)\n\n    $headerMenuItem.each((i, e) => {\n      $(e).parent().addClass('active')\n    })\n    $headerDropdownItem.each((i, e) => {\n      $(e).addClass('active')\n    })\n    $sidebarMenuItem.each((i, e) => {\n      $(e).addClass('active')\n      $(e).parents('.nav-treeview').prevAll('.nav-link').addClass('active')\n    })\n  }\n\n  _fixHeight(tabEmpty = false) {\n    if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n      const windowHeight = $(window).height()\n      const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n      $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}, ${SELECTOR_CONTENT_IFRAME}`).height(windowHeight - navbarHeight)\n      $(SELECTOR_CONTENT_WRAPPER).height(windowHeight)\n    } else {\n      const contentWrapperHeight = parseFloat($(SELECTOR_CONTENT_WRAPPER).css('height'))\n      const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n      if (tabEmpty == true) {\n        setTimeout(() => {\n          $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height(contentWrapperHeight - navbarHeight)\n        }, 50)\n      } else {\n        $(SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - navbarHeight)\n      }\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(operation, ...args) {\n    let data = $(this).data(DATA_KEY)\n    const _options = $.extend({}, Default, $(this).data())\n\n    if (!data) {\n      data = new IFrame(this, _options)\n      $(this).data(DATA_KEY, data)\n    }\n\n    if (typeof operation === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(operation)) {\n      data[operation](...args)\n    }\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n  IFrame._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = IFrame._jQueryInterface\n$.fn[NAME].Constructor = IFrame\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return IFrame._jQueryInterface\n}\n\nexport default IFrame\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/Layout.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE Layout.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Layout'\nconst DATA_KEY = 'lte.layout'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_MAIN_SIDEBAR = '.main-sidebar'\nconst SELECTOR_SIDEBAR = '.main-sidebar .sidebar'\nconst SELECTOR_CONTENT = '.content-wrapper'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_FOOTER = '.main-footer'\nconst SELECTOR_PUSHMENU_BTN = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_LOGIN_BOX = '.login-box'\nconst SELECTOR_REGISTER_BOX = '.register-box'\nconst SELECTOR_PRELOADER = '.preloader'\n\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\n\nconst Default = {\n  scrollbarTheme: 'os-theme-light',\n  scrollbarAutoHide: 'l',\n  panelAutoHeight: true,\n  panelAutoHeightMode: 'min-height',\n  preloadDuration: 200,\n  loginRegisterAutoHeight: true\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Layout {\n  constructor(element, config) {\n    this._config = config\n    this._element = element\n  }\n\n  // Public\n\n  fixLayoutHeight(extra = null) {\n    const $body = $('body')\n    let controlSidebar = 0\n\n    if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') {\n      controlSidebar = $(SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight()\n    }\n\n    const heights = {\n      window: $(window).height(),\n      header: $(SELECTOR_HEADER).length > 0 ? $(SELECTOR_HEADER).outerHeight() : 0,\n      footer: $(SELECTOR_FOOTER).length > 0 ? $(SELECTOR_FOOTER).outerHeight() : 0,\n      sidebar: $(SELECTOR_SIDEBAR).length > 0 ? $(SELECTOR_SIDEBAR).height() : 0,\n      controlSidebar\n    }\n\n    const max = this._max(heights)\n    let offset = this._config.panelAutoHeight\n\n    if (offset === true) {\n      offset = 0\n    }\n\n    const $contentSelector = $(SELECTOR_CONTENT)\n\n    if (offset !== false) {\n      if (max === heights.controlSidebar) {\n        $contentSelector.css(this._config.panelAutoHeightMode, (max + offset))\n      } else if (max === heights.window) {\n        $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header - heights.footer)\n      } else {\n        $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header)\n      }\n\n      if (this._isFooterFixed()) {\n        $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer)\n      }\n    }\n\n    if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n      return\n    }\n\n    if (typeof $.fn.overlayScrollbars !== 'undefined') {\n      $(SELECTOR_SIDEBAR).overlayScrollbars({\n        className: this._config.scrollbarTheme,\n        sizeAutoCapable: true,\n        scrollbars: {\n          autoHide: this._config.scrollbarAutoHide,\n          clickScrolling: true\n        }\n      })\n    } else {\n      $(SELECTOR_SIDEBAR).css('overflow-y', 'auto')\n    }\n  }\n\n  fixLoginRegisterHeight() {\n    const $body = $('body')\n    const $selector = $(`${SELECTOR_LOGIN_BOX}, ${SELECTOR_REGISTER_BOX}`)\n\n    if ($selector.length === 0) {\n      $body.css('height', 'auto')\n      $('html').css('height', 'auto')\n    } else {\n      const boxHeight = $selector.height()\n\n      if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) {\n        $body.css(this._config.panelAutoHeightMode, boxHeight)\n      }\n    }\n  }\n\n  // Private\n\n  _init() {\n    // Activate layout height watcher\n    this.fixLayoutHeight()\n\n    if (this._config.loginRegisterAutoHeight === true) {\n      this.fixLoginRegisterHeight()\n    } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) {\n      setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight)\n    }\n\n    $(SELECTOR_SIDEBAR)\n      .on('collapsed.lte.treeview expanded.lte.treeview', () => {\n        this.fixLayoutHeight()\n      })\n\n    $(SELECTOR_MAIN_SIDEBAR)\n      .on('mouseenter mouseleave', () => {\n        if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n          this.fixLayoutHeight()\n        }\n      })\n\n    $(SELECTOR_PUSHMENU_BTN)\n      .on('collapsed.lte.pushmenu shown.lte.pushmenu', () => {\n        setTimeout(() => {\n          this.fixLayoutHeight()\n        }, 300)\n      })\n\n    $(SELECTOR_CONTROL_SIDEBAR_BTN)\n      .on('collapsed.lte.controlsidebar', () => {\n        this.fixLayoutHeight()\n      })\n      .on('expanded.lte.controlsidebar', () => {\n        this.fixLayoutHeight('control_sidebar')\n      })\n\n    $(window).resize(() => {\n      this.fixLayoutHeight()\n    })\n\n    setTimeout(() => {\n      $('body.hold-transition').removeClass('hold-transition')\n    }, 50)\n\n    setTimeout(() => {\n      const $preloader = $(SELECTOR_PRELOADER)\n      if ($preloader) {\n        $preloader.css('height', 0)\n        setTimeout(() => {\n          $preloader.children().hide()\n        }, 200)\n      }\n    }, this._config.preloadDuration)\n  }\n\n  _max(numbers) {\n    // Calculate the maximum number in a list\n    let max = 0\n\n    Object.keys(numbers).forEach(key => {\n      if (numbers[key] > max) {\n        max = numbers[key]\n      }\n    })\n\n    return max\n  }\n\n  _isFooterFixed() {\n    return $(SELECTOR_FOOTER).css('position') === 'fixed'\n  }\n\n  // Static\n\n  static _jQueryInterface(config = '') {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _options = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new Layout($(this), _options)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (config === 'init' || config === '') {\n        data._init()\n      } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n  Layout._jQueryInterface.call($('body'))\n})\n\n$(`${SELECTOR_SIDEBAR} a`)\n  .on('focusin', () => {\n    $(SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED)\n  })\n  .on('focusout', () => {\n    $(SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED)\n  })\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Layout._jQueryInterface\n$.fn[NAME].Constructor = Layout\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Layout._jQueryInterface\n}\n\nexport default Layout\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/NavbarSearch.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE NavbarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'NavbarSearch'\nconst DATA_KEY = 'lte.navbar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]'\nconst SELECTOR_SEARCH_BLOCK = '.navbar-search-block'\nconst SELECTOR_SEARCH_INPUT = '.form-control'\n\nconst CLASS_NAME_OPEN = 'navbar-search-open'\n\nconst Default = {\n  resetOnClose: true,\n  target: SELECTOR_SEARCH_BLOCK\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass NavbarSearch {\n  constructor(_element, _options) {\n    this._element = _element\n    this._config = $.extend({}, Default, _options)\n  }\n\n  // Public\n\n  open() {\n    $(this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN)\n    $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).focus()\n  }\n\n  close() {\n    $(this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN)\n\n    if (this._config.resetOnClose) {\n      $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).val('')\n    }\n  }\n\n  toggle() {\n    if ($(this._config.target).hasClass(CLASS_NAME_OPEN)) {\n      this.close()\n    } else {\n      this.open()\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(options) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _options = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new NavbarSearch(this, _options)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (!/toggle|close|open/.test(options)) {\n        throw new Error(`Undefined method ${options}`)\n      }\n\n      data[options]()\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n  event.preventDefault()\n\n  let button = $(event.currentTarget)\n\n  if (button.data('widget') !== 'navbar-search') {\n    button = button.closest(SELECTOR_TOGGLE_BUTTON)\n  }\n\n  NavbarSearch._jQueryInterface.call(button, 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = NavbarSearch._jQueryInterface\n$.fn[NAME].Constructor = NavbarSearch\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return NavbarSearch._jQueryInterface\n}\n\nexport default NavbarSearch\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/PushMenu.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE PushMenu.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'PushMenu'\nconst DATA_KEY = 'lte.pushmenu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_BODY = 'body'\nconst SELECTOR_OVERLAY = '#sidebar-overlay'\nconst SELECTOR_WRAPPER = '.wrapper'\n\nconst CLASS_NAME_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_OPEN = 'sidebar-open'\nconst CLASS_NAME_IS_OPENING = 'sidebar-is-opening'\nconst CLASS_NAME_CLOSED = 'sidebar-closed'\n\nconst Default = {\n  autoCollapseSize: 992,\n  enableRemember: false,\n  noTransitionAfterReload: true\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass PushMenu {\n  constructor(element, options) {\n    this._element = element\n    this._options = $.extend({}, Default, options)\n\n    if ($(SELECTOR_OVERLAY).length === 0) {\n      this._addOverlay()\n    }\n\n    this._init()\n  }\n\n  // Public\n\n  expand() {\n    const $bodySelector = $(SELECTOR_BODY)\n\n    if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n      $bodySelector.addClass(CLASS_NAME_OPEN)\n    }\n\n    $bodySelector.addClass(CLASS_NAME_IS_OPENING).removeClass(`${CLASS_NAME_COLLAPSED} ${CLASS_NAME_CLOSED}`).delay(50).queue(function () {\n      $bodySelector.removeClass(CLASS_NAME_IS_OPENING)\n      $(this).dequeue()\n    })\n\n    if (this._options.enableRemember) {\n      localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_OPEN)\n    }\n\n    $(this._element).trigger($.Event(EVENT_SHOWN))\n  }\n\n  collapse() {\n    const $bodySelector = $(SELECTOR_BODY)\n\n    if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n      $bodySelector.removeClass(CLASS_NAME_OPEN).addClass(CLASS_NAME_CLOSED)\n    }\n\n    $bodySelector.addClass(CLASS_NAME_COLLAPSED)\n\n    if (this._options.enableRemember) {\n      localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_COLLAPSED)\n    }\n\n    $(this._element).trigger($.Event(EVENT_COLLAPSED))\n  }\n\n  toggle() {\n    if ($(SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) {\n      this.expand()\n    } else {\n      this.collapse()\n    }\n  }\n\n  autoCollapse(resize = false) {\n    if (!this._options.autoCollapseSize) {\n      return\n    }\n\n    const $bodySelector = $(SELECTOR_BODY)\n\n    if ($(window).width() <= this._options.autoCollapseSize) {\n      if (!$bodySelector.hasClass(CLASS_NAME_OPEN)) {\n        this.collapse()\n      }\n    } else if (resize === true) {\n      if ($bodySelector.hasClass(CLASS_NAME_OPEN)) {\n        $bodySelector.removeClass(CLASS_NAME_OPEN)\n      } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) {\n        this.expand()\n      }\n    }\n  }\n\n  remember() {\n    if (!this._options.enableRemember) {\n      return\n    }\n\n    const $body = $('body')\n    const toggleState = localStorage.getItem(`remember${EVENT_KEY}`)\n\n    if (toggleState === CLASS_NAME_COLLAPSED) {\n      if (this._options.noTransitionAfterReload) {\n        $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n          $(this).removeClass('hold-transition')\n          $(this).dequeue()\n        })\n      } else {\n        $body.addClass(CLASS_NAME_COLLAPSED)\n      }\n    } else if (this._options.noTransitionAfterReload) {\n      $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n        $(this).removeClass('hold-transition')\n        $(this).dequeue()\n      })\n    } else {\n      $body.removeClass(CLASS_NAME_COLLAPSED)\n    }\n  }\n\n  // Private\n\n  _init() {\n    this.remember()\n    this.autoCollapse()\n\n    $(window).resize(() => {\n      this.autoCollapse(true)\n    })\n  }\n\n  _addOverlay() {\n    const overlay = $('<div />', {\n      id: 'sidebar-overlay'\n    })\n\n    overlay.on('click', () => {\n      this.collapse()\n    })\n\n    $(SELECTOR_WRAPPER).append(overlay)\n  }\n\n  // Static\n\n  static _jQueryInterface(operation) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _options = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new PushMenu(this, _options)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) {\n        data[operation]()\n      }\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n  event.preventDefault()\n\n  let button = event.currentTarget\n\n  if ($(button).data('widget') !== 'pushmenu') {\n    button = $(button).closest(SELECTOR_TOGGLE_BUTTON)\n  }\n\n  PushMenu._jQueryInterface.call($(button), 'toggle')\n})\n\n$(window).on('load', () => {\n  PushMenu._jQueryInterface.call($(SELECTOR_TOGGLE_BUTTON))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = PushMenu._jQueryInterface\n$.fn[NAME].Constructor = PushMenu\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return PushMenu._jQueryInterface\n}\n\nexport default PushMenu\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/SidebarSearch.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE SidebarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $, { trim } from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'SidebarSearch'\nconst DATA_KEY = 'lte.sidebar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_OPEN = 'sidebar-search-open'\nconst CLASS_NAME_ICON_SEARCH = 'fa-search'\nconst CLASS_NAME_ICON_CLOSE = 'fa-times'\nconst CLASS_NAME_HEADER = 'nav-header'\nconst CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results'\nconst CLASS_NAME_LIST_GROUP = 'list-group'\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"sidebar-search\"]'\nconst SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_NAV_TREEVIEW = '.nav-treeview'\nconst SELECTOR_SEARCH_INPUT = `${SELECTOR_DATA_WIDGET} .form-control`\nconst SELECTOR_SEARCH_BUTTON = `${SELECTOR_DATA_WIDGET} .btn`\nconst SELECTOR_SEARCH_ICON = `${SELECTOR_SEARCH_BUTTON} i`\nconst SELECTOR_SEARCH_LIST_GROUP = `.${CLASS_NAME_LIST_GROUP}`\nconst SELECTOR_SEARCH_RESULTS = `.${CLASS_NAME_SEARCH_RESULTS}`\nconst SELECTOR_SEARCH_RESULTS_GROUP = `${SELECTOR_SEARCH_RESULTS} .${CLASS_NAME_LIST_GROUP}`\n\nconst Default = {\n  arrowSign: '->',\n  minLength: 3,\n  maxResults: 7,\n  highlightName: true,\n  highlightPath: false,\n  highlightClass: 'text-light',\n  notFoundText: 'No element found!'\n}\n\nconst SearchItems = []\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass SidebarSearch {\n  constructor(_element, _options) {\n    this.element = _element\n    this.options = $.extend({}, Default, _options)\n    this.items = []\n  }\n\n  // Public\n\n  init() {\n    if ($(SELECTOR_DATA_WIDGET).length === 0) {\n      return\n    }\n\n    if ($(SELECTOR_DATA_WIDGET).next(SELECTOR_SEARCH_RESULTS).length === 0) {\n      $(SELECTOR_DATA_WIDGET).after(\n        $('<div />', { class: CLASS_NAME_SEARCH_RESULTS })\n      )\n    }\n\n    if ($(SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) {\n      $(SELECTOR_SEARCH_RESULTS).append(\n        $('<div />', { class: CLASS_NAME_LIST_GROUP })\n      )\n    }\n\n    this._addNotFound()\n\n    $(SELECTOR_SIDEBAR).children().each((i, child) => {\n      this._parseItem(child)\n    })\n  }\n\n  search() {\n    const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n    if (searchValue.length < this.options.minLength) {\n      $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n      this._addNotFound()\n      this.close()\n      return\n    }\n\n    const searchResults = SearchItems.filter(item => (item.name).toLowerCase().includes(searchValue))\n    const endResults = $(searchResults.slice(0, this.options.maxResults))\n    $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n\n    if (endResults.length === 0) {\n      this._addNotFound()\n    } else {\n      endResults.each((i, result) => {\n        $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(escape(result.name), escape(result.link), result.path))\n      })\n    }\n\n    this.open()\n  }\n\n  open() {\n    $(SELECTOR_DATA_WIDGET).parent().addClass(CLASS_NAME_OPEN)\n    $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE)\n  }\n\n  close() {\n    $(SELECTOR_DATA_WIDGET).parent().removeClass(CLASS_NAME_OPEN)\n    $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH)\n  }\n\n  toggle() {\n    if ($(SELECTOR_DATA_WIDGET).parent().hasClass(CLASS_NAME_OPEN)) {\n      this.close()\n    } else {\n      this.open()\n    }\n  }\n\n  // Private\n\n  _parseItem(item, path = []) {\n    if ($(item).hasClass(CLASS_NAME_HEADER)) {\n      return\n    }\n\n    const itemObject = {}\n    const navLink = $(item).clone().find(`> ${SELECTOR_NAV_LINK}`)\n    const navTreeview = $(item).clone().find(`> ${SELECTOR_NAV_TREEVIEW}`)\n\n    const link = navLink.attr('href')\n    const name = navLink.find('p').children().remove().end().text()\n\n    itemObject.name = this._trimText(name)\n    itemObject.link = link\n    itemObject.path = path\n\n    if (navTreeview.length === 0) {\n      SearchItems.push(itemObject)\n    } else {\n      const newPath = itemObject.path.concat([itemObject.name])\n      navTreeview.children().each((i, child) => {\n        this._parseItem(child, newPath)\n      })\n    }\n  }\n\n  _trimText(text) {\n    return trim(text.replace(/(\\r\\n|\\n|\\r)/gm, ' '))\n  }\n\n  _renderItem(name, link, path) {\n    path = path.join(` ${this.options.arrowSign} `)\n    name = unescape(name)\n\n    if (this.options.highlightName || this.options.highlightPath) {\n      const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n      const regExp = new RegExp(searchValue, 'gi')\n\n      if (this.options.highlightName) {\n        name = name.replace(\n          regExp,\n          str => {\n            return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n          }\n        )\n      }\n\n      if (this.options.highlightPath) {\n        path = path.replace(\n          regExp,\n          str => {\n            return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n          }\n        )\n      }\n    }\n\n    const groupItemElement = $('<a/>', {\n      href: link,\n      class: 'list-group-item'\n    })\n    const searchTitleElement = $('<div/>', {\n      class: 'search-title'\n    }).html(name)\n    const searchPathElement = $('<div/>', {\n      class: 'search-path'\n    }).html(path)\n\n    groupItemElement.append(searchTitleElement).append(searchPathElement)\n\n    return groupItemElement\n  }\n\n  _addNotFound() {\n    $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []))\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    let data = $(this).data(DATA_KEY)\n\n    if (!data) {\n      data = $(this).data()\n    }\n\n    const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n    const plugin = new SidebarSearch($(this), _options)\n\n    $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n    if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n      plugin[config]()\n    } else {\n      plugin.init()\n    }\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_SEARCH_BUTTON, event => {\n  event.preventDefault()\n\n  SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggle')\n})\n\n$(document).on('keyup', SELECTOR_SEARCH_INPUT, event => {\n  if (event.keyCode == 38) {\n    event.preventDefault()\n    $(SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus()\n    return\n  }\n\n  if (event.keyCode == 40) {\n    event.preventDefault()\n    $(SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus()\n    return\n  }\n\n  setTimeout(() => {\n    SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'search')\n  }, 100)\n})\n\n$(document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, event => {\n  const $focused = $(':focus')\n\n  if (event.keyCode == 38) {\n    event.preventDefault()\n\n    if ($focused.is(':first-child')) {\n      $focused.siblings().last().focus()\n    } else {\n      $focused.prev().focus()\n    }\n  }\n\n  if (event.keyCode == 40) {\n    event.preventDefault()\n\n    if ($focused.is(':last-child')) {\n      $focused.siblings().first().focus()\n    } else {\n      $focused.next().focus()\n    }\n  }\n})\n\n$(window).on('load', () => {\n  SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = SidebarSearch._jQueryInterface\n$.fn[NAME].Constructor = SidebarSearch\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return SidebarSearch._jQueryInterface\n}\n\nexport default SidebarSearch\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/Toasts.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE Toasts.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Toasts'\nconst DATA_KEY = 'lte.toasts'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_INIT = `init${EVENT_KEY}`\nconst EVENT_CREATED = `created${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'\nconst SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'\nconst SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'\nconst SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'\n\nconst CLASS_NAME_TOP_RIGHT = 'toasts-top-right'\nconst CLASS_NAME_TOP_LEFT = 'toasts-top-left'\nconst CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'\nconst CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'\n\nconst POSITION_TOP_RIGHT = 'topRight'\nconst POSITION_TOP_LEFT = 'topLeft'\nconst POSITION_BOTTOM_RIGHT = 'bottomRight'\nconst POSITION_BOTTOM_LEFT = 'bottomLeft'\n\nconst Default = {\n  position: POSITION_TOP_RIGHT,\n  fixed: true,\n  autohide: false,\n  autoremove: true,\n  delay: 1000,\n  fade: true,\n  icon: null,\n  image: null,\n  imageAlt: null,\n  imageHeight: '25px',\n  title: null,\n  subtitle: null,\n  close: true,\n  body: null,\n  class: null\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Toasts {\n  constructor(element, config) {\n    this._config = config\n    this._prepareContainer()\n\n    $('body').trigger($.Event(EVENT_INIT))\n  }\n\n  // Public\n\n  create() {\n    const toast = $('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>')\n\n    toast.data('autohide', this._config.autohide)\n    toast.data('animation', this._config.fade)\n\n    if (this._config.class) {\n      toast.addClass(this._config.class)\n    }\n\n    if (this._config.delay && this._config.delay != 500) {\n      toast.data('delay', this._config.delay)\n    }\n\n    const toastHeader = $('<div class=\"toast-header\">')\n\n    if (this._config.image != null) {\n      const toastImage = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)\n\n      if (this._config.imageHeight != null) {\n        toastImage.height(this._config.imageHeight).width('auto')\n      }\n\n      toastHeader.append(toastImage)\n    }\n\n    if (this._config.icon != null) {\n      toastHeader.append($('<i />').addClass('mr-2').addClass(this._config.icon))\n    }\n\n    if (this._config.title != null) {\n      toastHeader.append($('<strong />').addClass('mr-auto').html(this._config.title))\n    }\n\n    if (this._config.subtitle != null) {\n      toastHeader.append($('<small />').html(this._config.subtitle))\n    }\n\n    if (this._config.close == true) {\n      const toastClose = $('<button data-dismiss=\"toast\" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden=\"true\">&times;</span>')\n\n      if (this._config.title == null) {\n        toastClose.toggleClass('ml-2 ml-auto')\n      }\n\n      toastHeader.append(toastClose)\n    }\n\n    toast.append(toastHeader)\n\n    if (this._config.body != null) {\n      toast.append($('<div class=\"toast-body\" />').html(this._config.body))\n    }\n\n    $(this._getContainerId()).prepend(toast)\n\n    const $body = $('body')\n\n    $body.trigger($.Event(EVENT_CREATED))\n    toast.toast('show')\n\n    if (this._config.autoremove) {\n      toast.on('hidden.bs.toast', function () {\n        $(this).delay(200).remove()\n        $body.trigger($.Event(EVENT_REMOVED))\n      })\n    }\n  }\n\n  // Static\n\n  _getContainerId() {\n    if (this._config.position == POSITION_TOP_RIGHT) {\n      return SELECTOR_CONTAINER_TOP_RIGHT\n    }\n\n    if (this._config.position == POSITION_TOP_LEFT) {\n      return SELECTOR_CONTAINER_TOP_LEFT\n    }\n\n    if (this._config.position == POSITION_BOTTOM_RIGHT) {\n      return SELECTOR_CONTAINER_BOTTOM_RIGHT\n    }\n\n    if (this._config.position == POSITION_BOTTOM_LEFT) {\n      return SELECTOR_CONTAINER_BOTTOM_LEFT\n    }\n  }\n\n  _prepareContainer() {\n    if ($(this._getContainerId()).length === 0) {\n      const container = $('<div />').attr('id', this._getContainerId().replace('#', ''))\n      if (this._config.position == POSITION_TOP_RIGHT) {\n        container.addClass(CLASS_NAME_TOP_RIGHT)\n      } else if (this._config.position == POSITION_TOP_LEFT) {\n        container.addClass(CLASS_NAME_TOP_LEFT)\n      } else if (this._config.position == POSITION_BOTTOM_RIGHT) {\n        container.addClass(CLASS_NAME_BOTTOM_RIGHT)\n      } else if (this._config.position == POSITION_BOTTOM_LEFT) {\n        container.addClass(CLASS_NAME_BOTTOM_LEFT)\n      }\n\n      $('body').append(container)\n    }\n\n    if (this._config.fixed) {\n      $(this._getContainerId()).addClass('fixed')\n    } else {\n      $(this._getContainerId()).removeClass('fixed')\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(option, config) {\n    return this.each(function () {\n      const _options = $.extend({}, Default, config)\n      const toast = new Toasts($(this), _options)\n\n      if (option === 'create') {\n        toast[option]()\n      }\n    })\n  }\n}\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Toasts._jQueryInterface\n$.fn[NAME].Constructor = Toasts\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Toasts._jQueryInterface\n}\n\nexport default Toasts\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/TodoList.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE TodoList.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'TodoList'\nconst DATA_KEY = 'lte.todolist'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"todo-list\"]'\nconst CLASS_NAME_TODO_LIST_DONE = 'done'\n\nconst Default = {\n  onCheck(item) {\n    return item\n  },\n  onUnCheck(item) {\n    return item\n  }\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass TodoList {\n  constructor(element, config) {\n    this._config = config\n    this._element = element\n\n    this._init()\n  }\n\n  // Public\n\n  toggle(item) {\n    item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n    if (!$(item).prop('checked')) {\n      this.unCheck($(item))\n      return\n    }\n\n    this.check(item)\n  }\n\n  check(item) {\n    this._config.onCheck.call(item)\n  }\n\n  unCheck(item) {\n    this._config.onUnCheck.call(item)\n  }\n\n  // Private\n\n  _init() {\n    const $toggleSelector = this._element\n\n    $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n    $toggleSelector.on('change', 'input:checkbox', event => {\n      this.toggle($(event.target))\n    })\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n\n      if (!data) {\n        data = $(this).data()\n      }\n\n      const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n      const plugin = new TodoList($(this), _options)\n\n      $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n      if (config === 'init') {\n        plugin[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n  TodoList._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = TodoList._jQueryInterface\n$.fn[NAME].Constructor = TodoList\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return TodoList._jQueryInterface\n}\n\nexport default TodoList\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/js/Treeview.js",
    "content": "/**\n * --------------------------------------------\n * AdminLTE Treeview.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Treeview'\nconst DATA_KEY = 'lte.treeview'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst SELECTOR_LI = '.nav-item'\nconst SELECTOR_LINK = '.nav-link'\nconst SELECTOR_TREEVIEW_MENU = '.nav-treeview'\nconst SELECTOR_OPEN = '.menu-open'\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"treeview\"]'\n\nconst CLASS_NAME_OPEN = 'menu-open'\nconst CLASS_NAME_IS_OPENING = 'menu-is-opening'\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\n\nconst Default = {\n  trigger: `${SELECTOR_DATA_WIDGET} ${SELECTOR_LINK}`,\n  animationSpeed: 300,\n  accordion: true,\n  expandSidebar: false,\n  sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Treeview {\n  constructor(element, config) {\n    this._config = config\n    this._element = element\n  }\n\n  // Public\n\n  init() {\n    $(`${SELECTOR_LI}${SELECTOR_OPEN} ${SELECTOR_TREEVIEW_MENU}${SELECTOR_OPEN}`).css('display', 'block')\n    this._setupListeners()\n  }\n\n  expand(treeviewMenu, parentLi) {\n    const expandedEvent = $.Event(EVENT_EXPANDED)\n\n    if (this._config.accordion) {\n      const openMenuLi = parentLi.siblings(SELECTOR_OPEN).first()\n      const openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first()\n      this.collapse(openTreeview, openMenuLi)\n    }\n\n    parentLi.addClass(CLASS_NAME_IS_OPENING)\n    treeviewMenu.stop().slideDown(this._config.animationSpeed, () => {\n      parentLi.addClass(CLASS_NAME_OPEN)\n      $(this._element).trigger(expandedEvent)\n    })\n\n    if (this._config.expandSidebar) {\n      this._expandSidebar()\n    }\n  }\n\n  collapse(treeviewMenu, parentLi) {\n    const collapsedEvent = $.Event(EVENT_COLLAPSED)\n\n    parentLi.removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`)\n    treeviewMenu.stop().slideUp(this._config.animationSpeed, () => {\n      $(this._element).trigger(collapsedEvent)\n      treeviewMenu.find(`${SELECTOR_OPEN} > ${SELECTOR_TREEVIEW_MENU}`).slideUp()\n      treeviewMenu.find(SELECTOR_OPEN).removeClass(CLASS_NAME_OPEN)\n    })\n  }\n\n  toggle(event) {\n    const $relativeTarget = $(event.currentTarget)\n    const $parent = $relativeTarget.parent()\n\n    let treeviewMenu = $parent.find(`> ${SELECTOR_TREEVIEW_MENU}`)\n\n    if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n      if (!$parent.is(SELECTOR_LI)) {\n        treeviewMenu = $parent.parent().find(`> ${SELECTOR_TREEVIEW_MENU}`)\n      }\n\n      if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n        return\n      }\n    }\n\n    event.preventDefault()\n\n    const parentLi = $relativeTarget.parents(SELECTOR_LI).first()\n    const isOpen = parentLi.hasClass(CLASS_NAME_OPEN)\n\n    if (isOpen) {\n      this.collapse($(treeviewMenu), parentLi)\n    } else {\n      this.expand($(treeviewMenu), parentLi)\n    }\n  }\n\n  // Private\n\n  _setupListeners() {\n    const elementId = this._element.attr('id') !== undefined ? `#${this._element.attr('id')}` : ''\n    $(document).on('click', `${elementId}${this._config.trigger}`, event => {\n      this.toggle(event)\n    })\n  }\n\n  _expandSidebar() {\n    if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n      $(this._config.sidebarButtonSelector).PushMenu('expand')\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _options = $.extend({}, Default, $(this).data())\n\n      if (!data) {\n        data = new Treeview($(this), _options)\n        $(this).data(DATA_KEY, data)\n      }\n\n      if (config === 'init') {\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n  $(SELECTOR_DATA_WIDGET).each(function () {\n    Treeview._jQueryInterface.call($(this), 'init')\n  })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Treeview._jQueryInterface\n$.fn[NAME].Constructor = Treeview\n$.fn[NAME].noConflict = function () {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Treeview._jQueryInterface\n}\n\nexport default Treeview\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/.eslintrc.json",
    "content": "{\n  \"env\": {\n    \"browser\": false,\n    \"node\": true\n  },\n  \"parserOptions\": {\n    \"sourceType\": \"script\"\n  },\n  \"extends\": \"../../.eslintrc.json\",\n  \"rules\": {\n    \"no-console\": \"off\",\n    \"strict\": \"error\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/DocsPlugins.js",
    "content": "'use strict'\n\nconst Plugins = [\n  // AdminLTE Dist\n  {\n    from: 'dist/css/',\n    to: 'docs/assets/css/'\n  },\n  {\n    from: 'dist/js/',\n    to: 'docs/assets/js/'\n  },\n  // jQuery\n  {\n    from: 'node_modules/jquery/dist/',\n    to: 'docs/assets/plugins/jquery/'\n  },\n  // Popper\n  {\n    from: 'node_modules/popper.js/dist/',\n    to: 'docs/assets/plugins/popper/'\n  },\n  // Bootstrap\n  {\n    from: 'node_modules/bootstrap/dist/js/',\n    to: 'docs/assets/plugins/bootstrap/js/'\n  },\n  // Font Awesome\n  {\n    from: 'node_modules/@fortawesome/fontawesome-free/css/',\n    to: 'docs/assets/plugins/fontawesome-free/css/'\n  },\n  {\n    from: 'node_modules/@fortawesome/fontawesome-free/webfonts/',\n    to: 'docs/assets/plugins/fontawesome-free/webfonts/'\n  },\n  // overlayScrollbars\n  {\n    from: 'node_modules/overlayscrollbars/js/',\n    to: 'docs/assets/plugins/overlayScrollbars/js/'\n  },\n  {\n    from: 'node_modules/overlayscrollbars/css/',\n    to: 'docs/assets/plugins/overlayScrollbars/css/'\n  }\n]\n\nmodule.exports = Plugins\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/DocsPublish.js",
    "content": "#!/usr/bin/env node\n\n'use strict'\n\nconst path = require('path')\nconst fse = require('fs-extra')\nconst fs = require('fs')\nconst Plugins = require('./DocsPlugins')\n\nclass Publish {\n  constructor() {\n    this.options = {\n      verbose: false\n    }\n\n    this.getArguments()\n  }\n\n  getArguments() {\n    if (process.argv.length > 2) {\n      const arg = process.argv[2]\n      switch (arg) {\n        case '-v':\n        case '--verbose':\n          this.options.verbose = true\n          break\n        default:\n          throw new Error(`Unknown option ${arg}`)\n      }\n    }\n  }\n\n  run() {\n    // Publish files\n    Plugins.forEach(module => {\n      try {\n        fse.copySync(module.from, module.to, {\n          // Skip copying dot files\n          filter(src) {\n            return !path.basename(src).startsWith('.')\n          }\n        })\n\n        if (this.options.verbose) {\n          console.log(`Copied ${module.from} to ${module.to}`)\n        }\n      } catch (error) {\n        console.error(`Error: ${error}`)\n      }\n    })\n\n    const insertText = '---\\r\\nlayout: page\\r\\ntitle: \\r\\n---\\r\\n'\n\n    fs.writeFileSync('docs/how-to-contribute.md', insertText + fs.readFileSync('.github/CONTRIBUTING.md', 'utf8'))\n  }\n}\n\n(new Publish()).run()\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/Plugins.js",
    "content": "'use strict'\n\nconst Plugins = [\n  // jQuery\n  {\n    from: 'node_modules/jquery/dist',\n    to: 'plugins/jquery'\n  },\n  // Popper\n  {\n    from: 'node_modules/popper.js/dist',\n    to: 'plugins/popper'\n  },\n  // Bootstrap\n  {\n    from: 'node_modules/bootstrap/dist/js',\n    to: 'plugins/bootstrap/js'\n  },\n  // Font Awesome\n  {\n    from: 'node_modules/@fortawesome/fontawesome-free/css',\n    to: 'plugins/fontawesome-free/css'\n  },\n  {\n    from: 'node_modules/@fortawesome/fontawesome-free/webfonts',\n    to: 'plugins/fontawesome-free/webfonts'\n  },\n  // overlayScrollbars\n  {\n    from: 'node_modules/overlayscrollbars/js',\n    to: 'plugins/overlayScrollbars/js'\n  },\n  {\n    from: 'node_modules/overlayscrollbars/css',\n    to: 'plugins/overlayScrollbars/css'\n  },\n  // Chart.js\n  {\n    from: 'node_modules/chart.js/dist/',\n    to: 'plugins/chart.js'\n  },\n  // jQuery UI\n  {\n    from: 'node_modules/jquery-ui-dist/',\n    to: 'plugins/jquery-ui'\n  },\n  // Flot\n  {\n    from: 'node_modules/flot/dist/es5/',\n    to: 'plugins/flot'\n  },\n  {\n    from: 'node_modules/flot/source/',\n    to: 'plugins/flot/plugins'\n  },\n  // Summernote\n  {\n    from: 'node_modules/summernote/dist/',\n    to: 'plugins/summernote'\n  },\n  // Bootstrap Slider\n  {\n    from: 'node_modules/bootstrap-slider/dist/',\n    to: 'plugins/bootstrap-slider'\n  },\n  {\n    from: 'node_modules/bootstrap-slider/dist/css',\n    to: 'plugins/bootstrap-slider/css'\n  },\n  // Bootstrap Colorpicker\n  {\n    from: 'node_modules/bootstrap-colorpicker/dist/js',\n    to: 'plugins/bootstrap-colorpicker/js'\n  },\n  {\n    from: 'node_modules/bootstrap-colorpicker/dist/css',\n    to: 'plugins/bootstrap-colorpicker/css'\n  },\n  // Tempusdominus Bootstrap 4\n  {\n    from: 'node_modules/tempusdominus-bootstrap-4/build/js',\n    to: 'plugins/tempusdominus-bootstrap-4/js'\n  },\n  {\n    from: 'node_modules/tempusdominus-bootstrap-4/build/css',\n    to: 'plugins/tempusdominus-bootstrap-4/css'\n  },\n  // Moment\n  {\n    from: 'node_modules/moment/min',\n    to: 'plugins/moment'\n  },\n  {\n    from: 'node_modules/moment/locale',\n    to: 'plugins/moment/locale'\n  },\n  // FastClick\n  {\n    from: 'node_modules/fastclick/lib',\n    to: 'plugins/fastclick'\n  },\n  // Date Range Picker\n  {\n    from: 'node_modules/daterangepicker/',\n    to: 'plugins/daterangepicker'\n  },\n  // DataTables\n  {\n    from: 'node_modules/pdfmake/build',\n    to: 'plugins/pdfmake'\n  },\n  {\n    from: 'node_modules/jszip/dist',\n    to: 'plugins/jszip'\n  },\n  {\n    from: 'node_modules/datatables.net/js',\n    to: 'plugins/datatables'\n  },\n  {\n    from: 'node_modules/datatables.net-bs4/js',\n    to: 'plugins/datatables-bs4/js'\n  },\n  {\n    from: 'node_modules/datatables.net-bs4/css',\n    to: 'plugins/datatables-bs4/css'\n  },\n  {\n    from: 'node_modules/datatables.net-autofill/js',\n    to: 'plugins/datatables-autofill/js'\n  },\n  {\n    from: 'node_modules/datatables.net-autofill-bs4/js',\n    to: 'plugins/datatables-autofill/js'\n  },\n  {\n    from: 'node_modules/datatables.net-autofill-bs4/css',\n    to: 'plugins/datatables-autofill/css'\n  },\n  {\n    from: 'node_modules/datatables.net-buttons/js',\n    to: 'plugins/datatables-buttons/js'\n  },\n  {\n    from: 'node_modules/datatables.net-buttons-bs4/js',\n    to: 'plugins/datatables-buttons/js'\n  },\n  {\n    from: 'node_modules/datatables.net-buttons-bs4/css',\n    to: 'plugins/datatables-buttons/css'\n  },\n  {\n    from: 'node_modules/datatables.net-colreorder/js',\n    to: 'plugins/datatables-colreorder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-colreorder-bs4/js',\n    to: 'plugins/datatables-colreorder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-colreorder-bs4/css',\n    to: 'plugins/datatables-colreorder/css'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedcolumns/js',\n    to: 'plugins/datatables-fixedcolumns/js'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedcolumns-bs4/js',\n    to: 'plugins/datatables-fixedcolumns/js'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedcolumns-bs4/css',\n    to: 'plugins/datatables-fixedcolumns/css'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedheader/js',\n    to: 'plugins/datatables-fixedheader/js'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedheader-bs4/js',\n    to: 'plugins/datatables-fixedheader/js'\n  },\n  {\n    from: 'node_modules/datatables.net-fixedheader-bs4/css',\n    to: 'plugins/datatables-fixedheader/css'\n  },\n  {\n    from: 'node_modules/datatables.net-keytable/js',\n    to: 'plugins/datatables-keytable/js'\n  },\n  {\n    from: 'node_modules/datatables.net-keytable-bs4/js',\n    to: 'plugins/datatables-keytable/js'\n  },\n  {\n    from: 'node_modules/datatables.net-keytable-bs4/css',\n    to: 'plugins/datatables-keytable/css'\n  },\n  {\n    from: 'node_modules/datatables.net-responsive/js',\n    to: 'plugins/datatables-responsive/js'\n  },\n  {\n    from: 'node_modules/datatables.net-responsive-bs4/js',\n    to: 'plugins/datatables-responsive/js'\n  },\n  {\n    from: 'node_modules/datatables.net-responsive-bs4/css',\n    to: 'plugins/datatables-responsive/css'\n  },\n  {\n    from: 'node_modules/datatables.net-rowgroup/js',\n    to: 'plugins/datatables-rowgroup/js'\n  },\n  {\n    from: 'node_modules/datatables.net-rowgroup-bs4/js',\n    to: 'plugins/datatables-rowgroup/js'\n  },\n  {\n    from: 'node_modules/datatables.net-rowgroup-bs4/css',\n    to: 'plugins/datatables-rowgroup/css'\n  },\n  {\n    from: 'node_modules/datatables.net-rowreorder/js',\n    to: 'plugins/datatables-rowreorder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-rowreorder-bs4/js',\n    to: 'plugins/datatables-rowreorder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-rowreorder-bs4/css',\n    to: 'plugins/datatables-rowreorder/css'\n  },\n  {\n    from: 'node_modules/datatables.net-scroller/js',\n    to: 'plugins/datatables-scroller/js'\n  },\n  {\n    from: 'node_modules/datatables.net-scroller-bs4/js',\n    to: 'plugins/datatables-scroller/js'\n  },\n  {\n    from: 'node_modules/datatables.net-scroller-bs4/css',\n    to: 'plugins/datatables-scroller/css'\n  },\n  {\n    from: 'node_modules/datatables.net-searchbuilder/js',\n    to: 'plugins/datatables-searchbuilder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-searchbuilder-bs4/js',\n    to: 'plugins/datatables-searchbuilder/js'\n  },\n  {\n    from: 'node_modules/datatables.net-searchbuilder-bs4/css',\n    to: 'plugins/datatables-searchbuilder/css'\n  },\n  {\n    from: 'node_modules/datatables.net-searchpanes/js',\n    to: 'plugins/datatables-searchpanes/js'\n  },\n  {\n    from: 'node_modules/datatables.net-searchpanes-bs4/js',\n    to: 'plugins/datatables-searchpanes/js'\n  },\n  {\n    from: 'node_modules/datatables.net-searchpanes-bs4/css',\n    to: 'plugins/datatables-searchpanes/css'\n  },\n  {\n    from: 'node_modules/datatables.net-select/js',\n    to: 'plugins/datatables-select/js'\n  },\n  {\n    from: 'node_modules/datatables.net-select-bs4/js',\n    to: 'plugins/datatables-select/js'\n  },\n  {\n    from: 'node_modules/datatables.net-select-bs4/css',\n    to: 'plugins/datatables-select/css'\n  },\n\n  // Fullcalendar\n  {\n    from: 'node_modules/fullcalendar/',\n    to: 'plugins/fullcalendar'\n  },\n  // icheck bootstrap\n  {\n    from: 'node_modules/icheck-bootstrap/',\n    to: 'plugins/icheck-bootstrap'\n  },\n  // inputmask\n  {\n    from: 'node_modules/inputmask/dist/',\n    to: 'plugins/inputmask'\n  },\n  // ion-rangeslider\n  {\n    from: 'node_modules/ion-rangeslider/',\n    to: 'plugins/ion-rangeslider'\n  },\n  // JQVMap (jqvmap-novulnerability)\n  {\n    from: 'node_modules/jqvmap-novulnerability/dist/',\n    to: 'plugins/jqvmap'\n  },\n  // jQuery Mapael\n  {\n    from: 'node_modules/jquery-mapael/js/',\n    to: 'plugins/jquery-mapael'\n  },\n  // Raphael\n  {\n    from: 'node_modules/raphael/',\n    to: 'plugins/raphael'\n  },\n  // jQuery Mousewheel\n  {\n    from: 'node_modules/jquery-mousewheel/',\n    to: 'plugins/jquery-mousewheel'\n  },\n  // jQuery Knob\n  {\n    from: 'node_modules/jquery-knob-chif/dist/',\n    to: 'plugins/jquery-knob'\n  },\n  // pace-progress\n  {\n    from: 'node_modules/@lgaitan/pace-progress/dist/',\n    to: 'plugins/pace-progress'\n  },\n  // Select2\n  {\n    from: 'node_modules/select2/dist/',\n    to: 'plugins/select2'\n  },\n  {\n    from: 'node_modules/@ttskch/select2-bootstrap4-theme/dist/',\n    to: 'plugins/select2-bootstrap4-theme'\n  },\n  // Sparklines\n  {\n    from: 'node_modules/sparklines/source/',\n    to: 'plugins/sparklines'\n  },\n  // SweetAlert2\n  {\n    from: 'node_modules/sweetalert2/dist/',\n    to: 'plugins/sweetalert2'\n  },\n  {\n    from: 'node_modules/@sweetalert2/theme-bootstrap-4/',\n    to: 'plugins/sweetalert2-theme-bootstrap-4'\n  },\n  // Toastr\n  {\n    from: 'node_modules/toastr/build/',\n    to: 'plugins/toastr'\n  },\n  // jsGrid\n  {\n    from: 'node_modules/jsgrid/dist',\n    to: 'plugins/jsgrid'\n  },\n  {\n    from: 'node_modules/jsgrid/demos/db.js',\n    to: 'plugins/jsgrid/demos/db.js'\n  },\n  // flag-icon-css\n  {\n    from: 'node_modules/flag-icon-css/css',\n    to: 'plugins/flag-icon-css/css'\n  },\n  {\n    from: 'node_modules/flag-icon-css/flags',\n    to: 'plugins/flag-icon-css/flags'\n  },\n  // bootstrap4-duallistbox\n  {\n    from: 'node_modules/bootstrap4-duallistbox/dist',\n    to: 'plugins/bootstrap4-duallistbox/'\n  },\n  // filterizr\n  {\n    from: 'node_modules/filterizr/dist',\n    to: 'plugins/filterizr/'\n  },\n  // ekko-lightbox\n  {\n    from: 'node_modules/ekko-lightbox/dist',\n    to: 'plugins/ekko-lightbox/'\n  },\n  // bootstrap-switch\n  {\n    from: 'node_modules/bootstrap-switch/dist',\n    to: 'plugins/bootstrap-switch/'\n  },\n  // jQuery Validate\n  {\n    from: 'node_modules/jquery-validation/dist/',\n    to: 'plugins/jquery-validation'\n  },\n  // bs-custom-file-input\n  {\n    from: 'node_modules/bs-custom-file-input/dist/',\n    to: 'plugins/bs-custom-file-input'\n  },\n  // bs-stepper\n  {\n    from: 'node_modules/bs-stepper/dist/',\n    to: 'plugins/bs-stepper'\n  },\n  // CodeMirror\n  {\n    from: 'node_modules/codemirror/lib/',\n    to: 'plugins/codemirror'\n  },\n  {\n    from: 'node_modules/codemirror/addon/',\n    to: 'plugins/codemirror/addon'\n  },\n  {\n    from: 'node_modules/codemirror/keymap/',\n    to: 'plugins/codemirror/keymap'\n  },\n  {\n    from: 'node_modules/codemirror/mode/',\n    to: 'plugins/codemirror/mode'\n  },\n  {\n    from: 'node_modules/codemirror/theme/',\n    to: 'plugins/codemirror/theme'\n  },\n  // dropzonejs\n  {\n    from: 'node_modules/dropzone/dist/',\n    to: 'plugins/dropzone'\n  },\n  // uPlot\n  {\n    from: 'node_modules/uplot/dist/',\n    to: 'plugins/uplot'\n  }\n]\n\nmodule.exports = Plugins\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/Publish.js",
    "content": "#!/usr/bin/env node\n\n'use strict'\n\nconst path = require('path')\nconst fse = require('fs-extra')\nconst Plugins = require('./Plugins')\n\nclass Publish {\n  constructor() {\n    this.options = {\n      verbose: false\n    }\n\n    this.getArguments()\n  }\n\n  getArguments() {\n    if (process.argv.length > 2) {\n      const arg = process.argv[2]\n      switch (arg) {\n        case '-v':\n        case '--verbose':\n          this.options.verbose = true\n          break\n        default:\n          throw new Error(`Unknown option ${arg}`)\n      }\n    }\n  }\n\n  run() {\n    // Publish files\n    Plugins.forEach(module => {\n      const fseOptions = {\n        // Skip copying dot files\n        filter(src) {\n          return !path.basename(src).startsWith('.')\n        }\n      }\n\n      try {\n        if (fse.existsSync(module.from)) {\n          fse.copySync(module.from, module.to, fseOptions)\n        } else {\n          fse.copySync(module.from.replace('node_modules/', '../'), module.to, fseOptions)\n        }\n\n        if (this.options.verbose) {\n          console.log(`Copied ${module.from} to ${module.to}`)\n        }\n      } catch (error) {\n        console.error(`Error: ${error}`)\n      }\n    })\n  }\n}\n\n(new Publish()).run()\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/npm/vnu-jar.js",
    "content": "#!/usr/bin/env node\n\n/*!\n * Script to run vnu-jar if Java is available.\n * Copyright 2017-2021 The Bootstrap Authors\n * Copyright 2017-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n'use strict'\n\nconst childProcess = require('child_process')\nconst vnu = require('vnu-jar')\n\nchildProcess.exec('java -version', (error, stdout, stderr) => {\n  if (error) {\n    console.error('Skipping vnu-jar test; Java is missing.')\n    return\n  }\n\n  const is32bitJava = !/64-Bit/.test(stderr)\n\n  // vnu-jar accepts multiple ignores joined with a `|`.\n  // Also note that the ignores are regular expressions.\n  const ignores = [\n    // \"autocomplete\" is included in <button> and checkboxes and radio <input>s due to\n    // Firefox's non-standard autocomplete behavior - see https://bugzilla.mozilla.org/show_bug.cgi?id=654072\n    'Attribute “autocomplete” is only allowed when the input type is.*'\n  ].join('|')\n\n  const args = [\n    '-jar',\n    vnu,\n    '--asciiquotes',\n    '--skip-non-html',\n    // Ignore the language code warnings\n    '--no-langdetect',\n    '--Werror',\n    `--filterpattern \"${ignores}\"`,\n    './*.html',\n    'docs_html/',\n    'pages/'\n  ]\n\n  // For the 32-bit Java we need to pass `-Xss512k`\n  if (is32bitJava) {\n    args.splice(0, 0, '-Xss512k')\n  }\n\n  return childProcess.spawn('java', args, {\n    shell: true,\n    stdio: 'inherit'\n  })\n    .on('exit', process.exit)\n})\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_adminlte.raw.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n//\n// ------------------------------------------------------------------\n// This file is to be included in your custom SCSS. Before importing\n// this file, you should include your custom AdminLTE and Bootstrap\n// variables followed by bootstrap.scss and then this file. It's\n// ok to import this file without custom variables too!\n// NOTE: be sure to keep the license notice in the generated css.\n// ------------------------------------------------------------------\n\n//\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"bootstrap-variables\";\n@import \"variables\";\n@import \"variables-alt\";\n@import \"mixins\";\n\n@import \"parts/core\";\n@import \"parts/components\";\n@import \"parts/extra-components\";\n@import \"parts/pages\";\n@import \"parts/plugins\";\n@import \"parts/miscellaneous\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_alerts.scss",
    "content": "//\n// Component: Alert\n//\n\n.alert {\n  .icon {\n    margin-right: 10px;\n  }\n\n  .close {\n    color: $black;\n    opacity: .2;\n\n    &:hover {\n      opacity: .5;\n    }\n  }\n\n  a {\n    color: $white;\n    text-decoration: underline;\n  }\n}\n\n//Alert Variants\n@each $color, $value in $theme-colors {\n  .alert-#{$color} {\n    color: color-yiq($value);\n    background-color: $value;\n    border-color: darken($value, 5%);\n  }\n\n  .alert-default-#{$color} {\n    @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n  }\n}\n\n.dark-mode {\n  @each $color, $value in $theme-colors-alt {\n    .alert-#{$color} {\n      color: color-yiq($value);\n      background-color: $value;\n      border-color: darken($value, 5%);\n    }\n\n    .alert-default-#{$color} {\n      @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n    }\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_animation-effects.scss",
    "content": "//\n// Component: Animation\n//\n\n.animation {\n  &__shake {\n    animation: shake 1500ms;\n  }\n  &__wobble {\n    animation: wobble 1500ms;\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_bootstrap-variables.scss",
    "content": "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n), $grays);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n), $colors);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: #1f2d3d !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                                true !default;\n$enable-rounded:                              true !default;\n$enable-shadows:                              true !default;\n$enable-gradients:                            false !default;\n$enable-transitions:                          true !default;\n$enable-prefers-reduced-motion-media-query:   true !default;\n$enable-hover-media-query:                    false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:                         true !default;\n$enable-pointer-cursor-for-buttons:           true !default;\n$enable-print-styles:                         true !default;\n$enable-responsive-font-sizes:                false !default;\n$enable-validation-icons:                     true !default;\n$enable-deprecation-messages:                 true !default;\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n  0: 0,\n  1: ($spacer * .25),\n  2: ($spacer * .5),\n  3: $spacer,\n  4: ($spacer * 1.5),\n  5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                theme-color(\"primary\") !default;\n$link-decoration:           none !default;\n$link-hover-color:          darken($link-color, 15%) !default;\n$link-hover-decoration:     none !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           15px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                ($font-size-base * 1.25) !default;\n$font-size-sm:                ($font-size-base * .875) !default;\n\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      ($spacer / 2) !default;\n$headings-font-family:        inherit !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              inherit !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              ($font-size-base * 1.25) !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-bg:                    transparent !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $gray-300 !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n\n$table-dark-bg:               $gray-900 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($gray-900, 10%) !default;\n$table-dark-color:            $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-line-height:             $input-btn-line-height !default;\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              none !default;\n$btn-focus-width:             0 !default;\n$btn-focus-box-shadow:        none !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       none !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 0 0 rgba($black, 0) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     0 !default;\n$input-focus-box-shadow:                none !default;\n\n$input-placeholder-color:               lighten($gray-600, 15%) !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height-inner-half:               calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter:            calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-control-gutter:                 .5rem !default;\n$custom-control-spacer-x:               1rem !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $gray-300 !default;\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg:          $gray-200 !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   none !default;\n\n$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    none !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:    $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:  str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y:           .375rem !default;\n$custom-select-padding-x:          .75rem !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height:         $input-btn-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $white !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width:        $input-btn-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-box-shadow:    none !default;\n\n$custom-select-font-size-sm:        75% !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-font-size-lg:        125% !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $custom-select-focus-box-shadow !default;\n\n$custom-file-padding-y:             $input-btn-padding-y !default;\n$custom-file-padding-x:             $input-btn-padding-x !default;\n$custom-file-line-height:           $input-btn-line-height !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-btn-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $custom-select-focus-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n$custom-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n\n// Form validation\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-100 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-600 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y:                  ($spacer / 2) !default;\n$navbar-padding-x:                  ($spacer / 2) !default;\n\n$navbar-nav-link-padding-x:         1rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-dark-color:                 rgba($white, .75) !default;\n$navbar-dark-hover-color:           rgba($white, 1) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 0 !default; //$border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 ($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:           $font-size-sm !default;\n$tooltip-max-width:           200px !default;\n$tooltip-color:               $white !default;\n$tooltip-bg:                  $black !default;\n$tooltip-border-radius:        $border-radius !default;\n$tooltip-opacity:             .9 !default;\n$tooltip-padding-y:           .25rem !default;\n$tooltip-padding-x:           .5rem !default;\n$tooltip-margin:              0 !default;\n\n$tooltip-arrow-width:         .8rem !default;\n$tooltip-arrow-height:        .4rem !default;\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   $line-height-base !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:         1rem !default;\n\n$modal-dialog-margin:         .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-bg:               $white !default;\n$modal-content-border-color:     rgba($black, .2) !default;\n$modal-content-border-width:     $border-width !default;\n$modal-content-border-radius:    $border-radius-lg !default;\n$modal-content-box-shadow-xs:    0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:           $black !default;\n$modal-backdrop-opacity:      .5 !default;\n$modal-header-border-color:   $gray-200 !default;\n$modal-footer-border-color:   $modal-header-border-color !default;\n$modal-header-border-width:   $modal-content-border-width !default;\n$modal-footer-border-width:   $modal-header-border-width !default;\n$modal-header-padding:        1rem !default;\n\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-transition:                  transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                ($font-size-base * .75) !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n// List group\n\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color:            $white !default;\n$carousel-control-width:            15% !default;\n$carousel-control-opacity:          .5 !default;\n\n$carousel-indicator-width:          30px !default;\n$carousel-indicator-height:         3px !default;\n$carousel-indicator-spacer:         3px !default;\n$carousel-indicator-active-bg:      $white !default;\n\n$carousel-caption-width:            70% !default;\n$carousel-caption-color:            $white !default;\n\n$carousel-control-icon-width:       20px !default;\n\n$carousel-control-prev-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg:     str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition:               transform .6s ease !default;\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Printing\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_brand.scss",
    "content": "//\n// Component: Brand\n//\n\n.brand-link {\n  $brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y;\n  display: block;\n  font-size: $navbar-brand-font-size;\n  line-height: $line-height-lg;\n  padding: $brand-link-padding-y $sidebar-padding-x;\n  transition: width $transition-speed $transition-fn;\n  white-space: nowrap;\n\n  &:hover {\n    color: $white;\n    text-decoration: none;\n  }\n\n  .text-sm & {\n    font-size: inherit;\n  }\n\n  [class*=\"sidebar-dark\"] & {\n    border-bottom: 1px solid lighten($dark, 10%);\n\n    &,\n    .pushmenu {\n      color: rgba($white, .8);\n\n      &:hover {\n        color: $white;\n      }\n    }\n  }\n\n  [class*=\"sidebar-light\"] & {\n    border-bottom: 1px solid $gray-300;\n\n    &,\n    .pushmenu {\n      color: rgba($black, .8);\n\n      &:hover {\n        color: $black;\n      }\n    }\n  }\n\n  .pushmenu {\n    margin-right: $sidebar-padding-x;\n    font-size: $font-size-base;\n  }\n\n  .brand-link {\n    padding: 0;\n    border-bottom: none;\n  }\n\n  .brand-image {\n    float: left;\n    line-height: .8;\n    margin-left: .8rem;\n    margin-right: .5rem;\n    margin-top: -3px;\n    max-height: 33px;\n    width: auto;\n  }\n\n  .brand-image-xs {\n    float: left;\n    line-height: .8;\n    margin-top: -.1rem;\n    max-height: 33px;\n    width: auto;\n  }\n\n  .brand-image-xl {\n    line-height: .8;\n    max-height: 40px;\n    width: auto;\n\n    &.single {\n      margin-top: -.3rem;\n    }\n  }\n\n  &.text-sm,\n  .text-sm & {\n    .brand-image {\n      height: 29px;\n      margin-bottom: -.25rem;\n      margin-left: .95rem;\n      margin-top: -.25rem;\n    }\n\n    .brand-image-xs {\n      margin-top: -.2rem;\n      max-height: 29px;\n    }\n\n    .brand-image-xl {\n      margin-top: -.225rem;\n      max-height: 38px;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_buttons.scss",
    "content": "//\n// Component: Button\n//\n\n.btn {\n  &.disabled,\n  &:disabled {\n    cursor: not-allowed;\n  }\n\n  // Flat buttons\n  &.btn-flat {\n    @include border-radius(0);\n    border-width: 1px;\n    box-shadow: none;\n  }\n\n  // input file btn\n  &.btn-file {\n    overflow: hidden;\n    position: relative;\n\n    > input[type=\"file\"] {\n      background-color: $white;\n      cursor: inherit;\n      display: block;\n      font-size: 100px;\n      min-height: 100%;\n      min-width: 100%;\n      opacity: 0;\n      outline: none;\n      position: absolute;\n      right: 0;\n      text-align: right;\n      top: 0;\n    }\n  }\n\n  .text-sm & {\n    font-size: $font-size-sm !important;\n  }\n}\n\n// Button color variations\n.btn-default {\n  background-color: $button-default-background-color;\n  border-color: $button-default-border-color;\n  color: $button-default-color;\n\n  &:hover,\n  &:active,\n  &.hover {\n    background-color: darken($button-default-background-color, 5%);\n    color: darken($button-default-color, 10%);\n  }\n}\n\n// Application buttons\n.btn-app {\n  @include border-radius(3px);\n  background-color: $button-default-background-color;\n  border: 1px solid $button-default-border-color;\n  color: $gray-600;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n\n  // Icons within the btn\n  > .fa,\n  > .fas,\n  > .far,\n  > .fab,\n  > .fal,\n  > .fad,\n  > .svg-inline--fa,\n  > .ion {\n    display: block;\n    font-size: 20px;\n  }\n\n  > .svg-inline--fa {\n    margin: 0 auto;\n  }\n\n  &:hover {\n    background-color: $button-default-background-color;\n    border-color: darken($button-default-border-color, 20%);\n    color: $button-default-color;\n  }\n\n  &:active,\n  &:focus {\n    @include box-shadow(inset 0 3px 5px rgba($black, .125));\n  }\n\n  // The badge\n  > .badge {\n    font-size: 10px;\n    font-weight: 400;\n    position: absolute;\n    right: -10px;\n    top: -3px;\n  }\n}\n\n// Extra Button Size\n\n.btn-xs {\n  @include button-size($button-padding-y-xs, $button-padding-x-xs, $button-font-size-xs, $button-line-height-xs, $button-border-radius-xs);\n}\n\n.dark-mode {\n  .btn-default,\n  .btn-app {\n    background-color: lighten($dark, 2.5%);\n    color: $white;\n    border-color: $gray-600;\n\n    &:hover,\n    &:focus {\n      background-color: lighten($dark, 5%);\n      color: $gray-300;\n      border-color: lighten($gray-600, 2.5%);\n    }\n  }\n  .btn-light {\n    background-color: lighten($dark, 7.5%);\n    color: $white;\n    border-color: $gray-600;\n\n    &:hover,\n    &:focus {\n      background-color: lighten($dark, 10%);\n      color: $gray-300;\n      border-color: lighten($gray-600, 5%);\n    }\n  }\n\n  @each $color, $value in $theme-colors-alt {\n    .btn-#{$color} {\n      @include button-variant($value, $value);\n    }\n  }\n\n  @each $color, $value in $theme-colors-alt {\n    .btn-outline-#{$color} {\n      @include button-outline-variant($value);\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_callout.scss",
    "content": "//\n// Component: Callout\n//\n\n// Base styles (regardless of theme)\n.callout {\n  @if $enable-rounded {\n    @include border-radius($border-radius);\n  }\n\n  @if $enable-shadows {\n    box-shadow: map-get($elevations, 1);\n  } @else {\n    border: 1px solid $gray-300;\n  }\n\n  background-color: $white;\n  border-left: 5px solid $gray-200;\n  margin-bottom: map-get($spacers, 3);\n  padding: 1rem;\n\n  a {\n    color: $gray-700;\n    text-decoration: underline;\n\n    &:hover {\n      color: $gray-200;\n    }\n  }\n\n  p:last-child {\n    margin-bottom: 0;\n  }\n\n  // Themes for different contexts\n  &.callout-danger {\n    border-left-color: darken(theme-color(\"danger\"), 10%);\n  }\n\n  &.callout-warning {\n    border-left-color: darken(theme-color(\"warning\"), 10%);\n  }\n\n  &.callout-info {\n    border-left-color: darken(theme-color(\"info\"), 10%);\n  }\n\n  &.callout-success {\n    border-left-color: darken(theme-color(\"success\"), 10%);\n  }\n}\n\n.dark-mode {\n  .callout {\n    background-color: lighten($dark, 5%);\n\n    &.callout-danger {\n      border-left-color: lighten($danger-alt, 10%);\n    }\n\n    &.callout-warning {\n      border-left-color: lighten($warning-alt, 10%);\n    }\n\n    &.callout-info {\n      border-left-color: lighten($info-alt, 10%);\n    }\n\n    &.callout-success {\n      border-left-color: lighten($success-alt, 10%);\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_cards.scss",
    "content": "//\n// Component: Cards\n//\n\n// Color variants\n@each $name, $color in $theme-colors {\n  @include cards-variant($name, $color);\n}\n\n@each $name, $color in $colors {\n  @include cards-variant($name, $color);\n}\n\n.card {\n  @include box-shadow($card-shadow);\n  margin-bottom: map-get($spacers, 3);\n\n  &.bg-dark {\n    .card-header {\n      border-color: $card-dark-border-color;\n    }\n\n    &,\n    .card-body {\n      color: $white;\n    }\n  }\n\n  &.maximized-card {\n    height: 100% !important;\n    left: 0;\n    max-height: 100% !important;\n    max-width: 100% !important;\n    position: fixed;\n    top: 0;\n    width: 100% !important;\n    z-index: $zindex-modal-backdrop;\n\n    &.was-collapsed .card-body {\n      display: block !important;\n    }\n\n    .card-body {\n      overflow: auto;\n    }\n\n    [data-card-widgett=\"collapse\"] {\n      display: none;\n    }\n\n    .card-header,\n    .card-footer {\n      @include border-radius(0 !important);\n    }\n  }\n\n  // collapsed mode\n  &.collapsed-card {\n    .card-body,\n    .card-footer {\n      display: none;\n    }\n  }\n\n  .nav.flex-column {\n    > li {\n      border-bottom: 1px solid $card-border-color;\n      margin: 0;\n\n      &:last-of-type {\n        border-bottom: 0;\n      }\n    }\n  }\n\n  // fixed height to 300px\n  &.height-control {\n    .card-body {\n      max-height: 300px;\n      overflow: auto;\n    }\n  }\n\n  .border-right {\n    border-right: 1px solid $card-border-color;\n  }\n\n  .border-left {\n    border-left: 1px solid $card-border-color;\n  }\n\n  &.card-tabs {\n    &:not(.card-outline) {\n      > .card-header {\n        border-bottom: 0;\n\n        .nav-item {\n          &:first-child .nav-link {\n            border-left-color: transparent;\n          }\n        }\n      }\n    }\n\n    &.card-outline {\n      .nav-item {\n        border-bottom: 0;\n\n        &:first-child .nav-link {\n          border-left: 0;\n          margin-left: 0;\n        }\n      }\n    }\n\n    .card-tools {\n      margin: .3rem .5rem;\n    }\n\n    &:not(.expanding-card).collapsed-card {\n      .card-header {\n        border-bottom: 0;\n\n        .nav-tabs {\n          border-bottom: 0;\n\n          .nav-item {\n            margin-bottom: 0;\n          }\n        }\n      }\n    }\n\n    &.expanding-card {\n      .card-header {\n        .nav-tabs {\n          .nav-item {\n            margin-bottom: -1px;\n          }\n        }\n      }\n    }\n  }\n\n  &.card-outline-tabs {\n    border-top: 0;\n\n    .card-header {\n      .nav-item {\n        &:first-child .nav-link {\n          border-left: 0;\n          margin-left: 0;\n        }\n      }\n\n      a {\n        border-top: 3px solid transparent;\n\n        &:hover {\n          border-top: 3px solid $nav-tabs-border-color;\n        }\n\n        &.active {\n          &:hover {\n            margin-top: 0;\n          }\n        }\n      }\n    }\n\n    .card-tools {\n      margin: .5rem .5rem .3rem;\n    }\n\n    &:not(.expanding-card).collapsed-card .card-header {\n      border-bottom: 0;\n\n      .nav-tabs {\n        border-bottom: 0;\n\n        .nav-item {\n          margin-bottom: 0;\n        }\n      }\n    }\n\n    &.expanding-card {\n      .card-header {\n        .nav-tabs {\n          .nav-item {\n            margin-bottom: -1px;\n          }\n        }\n      }\n    }\n  }\n\n}\n\n// Maximized Card Body Scroll fix\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n// Add clearfix to header, body and footer\n.card-header,\n.card-body,\n.card-footer {\n  @include clearfix ();\n}\n\n// Box header\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid $card-border-color;\n  padding: (($card-spacer-y / 2) * 2) $card-spacer-x;\n  position: relative;\n\n  @if $enable-rounded {\n    @include border-top-radius($border-radius);\n  }\n\n  .collapsed-card & {\n    border-bottom: 0;\n  }\n\n  > .card-tools {\n    float: right;\n    margin-right: -$card-spacer-x / 2;\n\n    .input-group,\n    .nav,\n    .pagination {\n      margin-bottom: -$card-spacer-y / 2.5;\n      margin-top: -$card-spacer-y / 2.5;\n    }\n\n    [data-toggle=\"tooltip\"] {\n      position: relative;\n    }\n  }\n}\n\n.card-title {\n  float: left;\n  font-size: $card-title-font-size;\n  font-weight: $card-title-font-weight;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n\n// Box Tools Buttons\n.btn-tool {\n  background-color: transparent;\n  color: $gray-500;\n  font-size: $font-size-sm;\n  margin: -(($card-spacer-y / 2) * 2) 0;\n  padding: .25rem .5rem;\n\n  .btn-group.show &,\n  &:hover {\n    color: $gray-700;\n  }\n\n  .show &,\n  &:focus {\n    box-shadow: none !important;\n  }\n}\n\n.text-sm {\n  .card-title {\n    font-size: $card-title-font-size-sm;\n  }\n\n  .nav-link {\n    padding: $card-nav-link-padding-sm-y $card-nav-link-padding-sm-x;\n  }\n}\n\n// Box Body\n.card-body {\n  // @include border-radius-sides(0, 0, $border-radius, $border-radius);\n  // .no-header & {\n  //   @include border-top-radius($border-radius);\n  // }\n\n  // Tables within the box body\n  > .table {\n    margin-bottom: 0;\n\n    > thead > tr > th,\n    > thead > tr > td {\n      border-top-width: 0;\n    }\n  }\n\n  // Calendar within the box body\n  .fc {\n    margin-top: 5px;\n  }\n\n  .full-width-chart {\n    margin: -19px;\n  }\n\n  &.p-0 .full-width-chart {\n    margin: -9px;\n  }\n}\n\n.chart-legend {\n  @include list-unstyled ();\n  margin: 10px 0;\n\n  > li {\n    @media (max-width: map-get($grid-breakpoints, sm)) {\n      float: left;\n      margin-right: 10px;\n    }\n  }\n}\n\n// Comment Box\n.card-comments {\n  background-color: $gray-100;\n\n  .card-comment {\n    @include clearfix ();\n    border-bottom: 1px solid $gray-200;\n    padding: 8px 0;\n\n    &:last-of-type {\n      border-bottom: 0;\n    }\n\n    &:first-of-type {\n      padding-top: 0;\n    }\n\n    img {\n      height: $card-img-size;\n      width: $card-img-size;\n      float: left;\n    }\n  }\n\n  .comment-text {\n    color: lighten($gray-700, 20%);\n    margin-left: 40px;\n  }\n\n  .username {\n    color: $gray-700;\n    display: block;\n    font-weight: 600;\n  }\n\n  .text-muted {\n    font-size: 12px;\n    font-weight: 400;\n  }\n}\n\n// Widgets\n//-----------\n\n// Widget: TODO LIST\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n\n  // Todo list element\n  > li {\n    @include border-radius(2px);\n    background-color: $gray-100;\n    border-left: 2px solid $gray-200;\n    color: $gray-700;\n    margin-bottom: 2px;\n    padding: 10px;\n\n    &:last-of-type {\n      margin-bottom: 0;\n    }\n\n    > input[type=\"checkbox\"] {\n      margin: 0 10px 0 5px;\n    }\n\n    .text {\n      display: inline-block;\n      font-weight: 600;\n      margin-left: 5px;\n    }\n\n    // Time labels\n    .badge {\n      font-size: .7rem;\n      margin-left: 10px;\n    }\n\n    // Tools and options box\n    .tools {\n      color: theme-color(\"danger\");\n      display: none;\n      float: right;\n\n      // icons\n      > .fa,\n      > .fas,\n      > .far,\n      > .fab,\n      > .fal,\n      > .fad,\n      > .svg-inline--fa,\n      > .ion {\n        cursor: pointer;\n        margin-right: 5px;\n      }\n    }\n\n    &:hover .tools {\n      display: inline-block;\n    }\n\n    &.done {\n      color: darken($gray-500, 25%);\n\n      .text {\n        font-weight: 500;\n        text-decoration: line-through;\n      }\n\n      .badge {\n        background-color: $gray-500 !important;\n      }\n    }\n  }\n\n  // Color variants\n  @each $name, $color in $theme-colors {\n    .#{$name} {\n      border-left-color: $color;\n    }\n  }\n\n  @each $name, $color in $colors {\n    .#{$name} {\n      border-left-color: $color;\n    }\n  }\n\n  .handle {\n    cursor: move;\n    display: inline-block;\n    margin: 0 5px;\n  }\n}\n\n// END TODO WIDGET\n\n// Input in box\n.card-input {\n  max-width: 200px;\n}\n\n// Nav Tabs override\n.card-default {\n  .nav-item {\n    &:first-child .nav-link {\n      border-left: 0;\n    }\n  }\n}\n\n.dark-mode {\n\n  // Color variants\n  @each $name, $color in $theme-colors-alt {\n    @include cards-variant($name, $color);\n  }\n\n  @each $name, $color in $colors-alt {\n    @include cards-variant($name, $color);\n  }\n\n  .card {\n    background-color: $dark;\n    color: $white;\n\n    .card {\n      background-color: lighten($dark, 5%);\n      color: $white;\n    }\n    .nav.flex-column > li {\n      border-bottom-color: $gray-600;\n    }\n    .card-footer {\n      background-color: rgba($black, .1);\n    }\n    &.card-outline-tabs .card-header a:hover {\n      border-color: $gray-600;\n      border-bottom-color: transparent;\n    }\n    &:not(.card-outline) > .card-header a.active {\n      color: $white;\n    }\n  }\n\n  .card-comments {\n    background-color: lighten($dark, 1.25%);\n    .username {\n      color: $gray-400;\n    }\n    .card-comment {\n      border-bottom-color: lighten($dark, 7.5%);\n    }\n  }\n\n  .todo-list > li {\n    background-color: lighten($dark, 5%);\n    border-color: lighten($dark, 7.5%);\n    color: $white;\n  }\n\n  .todo-list {\n    @each $name, $color in $theme-colors-alt {\n      .#{$name} {\n        border-left-color: $color;\n      }\n    }\n\n    @each $name, $color in $colors-alt {\n      .#{$name} {\n        border-left-color: $color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_carousel.scss",
    "content": "//\n// Component: Carousel\n//\n\n.carousel-control-custom-icon {\n  .carousel-control-prev & {\n    margin-left: -20px;\n  }\n  .carousel-control-next & {\n    margin-right: 20px;\n  }\n\n  > .fa,\n  > .fas,\n  > .far,\n  > .fab,\n  > .fal,\n  > .fad,\n  > .svg-inline--fa,\n  > .ion {\n    display: inline-block;\n    font-size: 40px;\n    margin-top: -20px;\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_close.scss",
    "content": ".close {\n  float: right;\n  @include font-size($close-font-size);\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  opacity: .5;\n\n  // Override <a>'s hover style\n  @include hover() {\n    color: $close-color;\n    text-decoration: none;\n  }\n\n  &:not(:disabled):not(.disabled) {\n    @include hover-focus() {\n      opacity: .75;\n    }\n  }\n\n  &:focus {\n    outline: none;\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_colors.scss",
    "content": "//\n// Misc: Colors\n//\n\n// Background colors (theme colors)\n@each $name, $color in $theme-colors {\n  @include background-variant($name, $color);\n}\n\n// Background colors (colors)\n@each $name, $color in $colors {\n  @include background-variant($name, $color);\n}\n\n.bg-gray {\n  background-color: $gray-500;\n  color: color-yiq($gray-500);\n}\n\n.bg-gray-light {\n  background-color: lighten($gray-200, 3%);\n  color: color-yiq(lighten($gray-200, 3%)) !important;\n}\n\n.bg-black {\n  background-color: $black;\n  color: color-yiq($black) !important;\n}\n\n.bg-white {\n  background-color: $white;\n  color: color-yiq($white) !important;\n}\n\n// Gradient Background colors (theme colors)\n@each $name, $color in $theme-colors {\n  @include background-gradient-variant($name, $color);\n}\n\n// Gradient Background colors (colors)\n@each $name, $color in $colors {\n  @include background-gradient-variant($name, $color);\n}\n\n// Backgrund Color Disabled\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\n// Text muted hover\na.text-muted:hover {\n  color: theme-color(primary) !important;\n}\n\n// Link Styles\n.link-muted {\n  color: darken($gray-500, 30%);\n\n  &:hover,\n  &:focus {\n    color: darken($gray-500, 40%);\n  }\n}\n\n.link-black {\n  color: $gray-600;\n\n  &:hover,\n  &:focus {\n    color: lighten($gray-500, 20%);\n  }\n}\n\n// Accent colors (theme colors)\n@each $name, $color in $theme-colors {\n  @include accent-variant($name, $color);\n}\n\n// Accent colors (colors)\n@each $name, $color in $colors {\n  @include accent-variant($name, $color);\n}\n\n// Accent button override fix\n[class*=\"accent-\"] {\n  @each $name, $color in $theme-colors {\n    a.btn-#{$name} {\n      color: color-yiq($color);\n    }\n  }\n}\n\n.dark-mode {\n  .bg-light {\n    background-color: lighten($dark, 7.5%) !important;\n    color: $white !important;\n  }\n  .text-black,\n  .text-dark,\n  .link-black,\n  .link-dark {\n    color: $gray-400;\n  }\n\n  // Background colors (theme colors)\n  @each $name, $color in $theme-colors-alt {\n    @include background-variant($name, $color);\n  }\n\n  // Background colors (colors)\n  @each $name, $color in $colors-alt {\n    @include background-variant($name, $color);\n  }\n\n  // Gradient Background colors (theme colors)\n  @each $name, $color in $theme-colors-alt {\n    @include background-gradient-variant($name, $color);\n  }\n\n  // Gradient Background colors (colors)\n  @each $name, $color in $colors-alt {\n    @include background-gradient-variant($name, $color);\n  }\n\n  // Accent colors (theme colors)\n  @each $name, $color in $theme-colors-alt {\n    @include accent-variant($name, $color);\n  }\n\n  [class*=\"accent-\"] {\n    @each $name, $color in $theme-colors-alt {\n      a.btn-#{$name} {\n        color: color-yiq($color);\n      }\n    }\n  }\n\n  // Accent colors (colors)\n  @each $name, $color in $colors-alt {\n    @include accent-variant($name, $color);\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_control-sidebar.scss",
    "content": "//\n// Component: Control Sidebar\n//\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: $main-footer-height;\n  position: absolute;\n  top: $main-header-height;\n  z-index: $zindex-control-sidebar;\n\n  &,\n  &::before {\n    bottom: $main-footer-height;\n    display: none;\n    right: -$control-sidebar-width;\n    width: $control-sidebar-width;\n    @include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);\n  }\n\n  &::before {\n    content: \"\";\n    display: block;\n    position: fixed;\n    top: 0;\n    z-index: -1;\n  }\n}\n\nbody.text-sm {\n  .control-sidebar {\n    bottom: $main-footer-height-sm;\n    top: $main-header-height-sm;\n  }\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: $main-header-height-sm;\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: $main-footer-height-sm;\n}\n\n.control-sidebar-push-slide {\n  .content-wrapper,\n  .main-footer {\n    @include transition(margin-right $transition-speed $transition-fn);\n  }\n}\n\n// Control sidebar open state\n.control-sidebar-open {\n  .control-sidebar {\n    display: block;\n\n    &,\n    &::before {\n      right: 0;\n    }\n  }\n\n  &.control-sidebar-push,\n  &.control-sidebar-push-slide {\n    .content-wrapper,\n    .main-footer {\n      margin-right: $control-sidebar-width;\n    }\n  }\n}\n\n// Control sidebar slide over content state\n.control-sidebar-slide-open {\n  .control-sidebar {\n    display: block;\n\n    &,\n    &::before {\n      right: 0;\n      @include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);\n    }\n  }\n\n  &.control-sidebar-push,\n  &.control-sidebar-push-slide {\n    .content-wrapper,\n    .main-footer {\n      margin-right: $control-sidebar-width;\n    }\n  }\n}\n\n// Dark skin\n.control-sidebar-dark {\n  background-color: $sidebar-dark-bg;\n\n  &,\n  a,\n  .nav-link {\n    color: $sidebar-dark-color;\n  }\n\n  a:hover {\n    color: $sidebar-dark-hover-color;\n  }\n\n  // Headers and labels\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  label {\n    color: $sidebar-dark-hover-color;\n  }\n\n  // Tabs\n  .nav-tabs {\n    background-color: $sidebar-dark-hover-bg;\n    border-bottom: 0;\n    margin-bottom: 5px;\n\n    .nav-item {\n      margin: 0;\n    }\n\n    .nav-link {\n      border-radius: 0;\n      padding: 10px 20px;\n      position: relative;\n      text-align: center;\n\n      &,\n      &:hover,\n      &:active,\n      &:focus,\n      &.active {\n        border: 0;\n      }\n\n      &:hover,\n      &:active,\n      &:focus,\n      &.active {\n        border-bottom-color: transparent;\n        border-left-color: transparent;\n        border-top-color: transparent;\n        color: $sidebar-dark-hover-color;\n      }\n\n      &.active {\n        background-color: $sidebar-dark-bg;\n      }\n    }\n  }\n\n  .tab-pane {\n    padding: 10px 15px;\n  }\n}\n\n// Light skin\n.control-sidebar-light {\n  color: lighten($sidebar-light-color, 10%);\n\n  //  Background\n  background-color: $sidebar-light-bg;\n  border-left: $main-header-bottom-border;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_direct-chat.scss",
    "content": "//\n// Component: Direct Chat\n//\n\n.direct-chat {\n  .card-body {\n    overflow-x: hidden;\n    padding: 0;\n    position: relative;\n  }\n\n  &.chat-pane-open {\n    .direct-chat-contacts {\n      @include translate(0, 0);\n    }\n  }\n\n\n  &.timestamp-light {\n    .direct-chat-timestamp {\n      color: lighten(color-yiq($yiq-text-light), 10%);\n    }\n  }\n\n  &.timestamp-dark {\n    .direct-chat-timestamp {\n      color: darken(color-yiq($yiq-text-dark), 20%);\n    }\n  }\n}\n\n.direct-chat-messages {\n  @include translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  @include clearfix ();\n  margin-bottom: 10px;\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  @if $enable-rounded {\n    @include border-radius($border-radius-lg);\n  }\n\n  background-color: $direct-chat-default-msg-bg;\n  border: 1px solid $direct-chat-default-msg-border-color;\n  color: $direct-chat-default-font-color;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n\n  //Create the arrow\n  &::after,\n  &::before {\n    border: solid transparent;\n    border-right-color: $direct-chat-default-msg-border-color;\n    content: \" \";\n    height: 0;\n    pointer-events: none;\n    position: absolute;\n    right: 100%;\n    top: 15px;\n    width: 0;\n  }\n\n  &::after {\n    border-width: 5px;\n    margin-top: -5px;\n  }\n\n  &::before {\n    border-width: 6px;\n    margin-top: -6px;\n  }\n\n  .right & {\n    margin-left: 0;\n    margin-right: 50px;\n\n    &::after,\n    &::before {\n      border-left-color: $direct-chat-default-msg-border-color;\n      border-right-color: transparent;\n      left: 100%;\n      right: auto;\n    }\n  }\n}\n\n.direct-chat-img {\n  @include border-radius(50%);\n  float: left;\n  height: 40px;\n  width: 40px;\n\n  .right & {\n    float: right;\n  }\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: $font-size-sm;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: darken($gray-500, 25%);\n}\n\n//Direct chat contacts pane\n.direct-chat-contacts-open {\n  .direct-chat-contacts {\n    @include translate(0, 0);\n  }\n}\n\n.direct-chat-contacts {\n  @include translate(101%, 0);\n  background-color: $dark;\n  bottom: 0;\n  color: $white;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: $light;\n\n  .contacts-list-name {\n    color: $gray-700;\n  }\n\n  .contacts-list-date {\n    color: $gray-600;\n  }\n\n  .contacts-list-msg {\n    color: darken($gray-600, 10%);\n  }\n}\n\n//Contacts list -- for displaying contacts in direct chat contacts pane\n.contacts-list {\n  @include list-unstyled ();\n\n  > li {\n    @include clearfix ();\n    border-bottom: 1px solid rgba($black, .2);\n    margin: 0;\n    padding: 10px;\n\n    &:last-of-type {\n      border-bottom: 0;\n    }\n  }\n}\n\n.contacts-list-img {\n  @include border-radius(50%);\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: $white;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: $font-size-sm;\n}\n\n.contacts-list-date {\n  color: $gray-400;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: darken($gray-400, 10%);\n}\n\n// Color variants\n@each $name, $color in $theme-colors {\n  .direct-chat-#{$name} {\n    @include direct-chat-variant($color);\n  }\n}\n\n@each $name, $color in $colors {\n  .direct-chat-#{$name} {\n    @include direct-chat-variant($color);\n  }\n}\n\n.dark-mode {\n  .direct-chat-text {\n    background-color: lighten($dark, 7.5%);\n    border-color: lighten($dark, 10%);\n    color: $white;\n\n    &::after,\n    &::before {\n      border-right-color: lighten($dark, 10%);\n    }\n  }\n  .direct-chat-timestamp {\n    color: $gray-500;\n  }\n  .right > .direct-chat-text {\n    &::after,\n    &::before {\n      border-right-color: transparent;\n    }\n  }\n\n  // Color variants\n  @each $name, $color in $theme-colors-alt {\n    .direct-chat-#{$name} {\n      @include direct-chat-variant($color);\n    }\n  }\n\n  @each $name, $color in $colors-alt {\n    .direct-chat-#{$name} {\n      @include direct-chat-variant($color);\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_dropdown.scss",
    "content": "//\n// Component: Dropdown\n//\n\n// General Dropdown Rules\n//.dropdown-item {\n//  &:first-of-type {\n//    @include border-top-radius($border-radius);\n//  }\n//  &:last-of-type {\n//    @include border-bottom-radius($border-radius);\n//  }\n//}\n\n.text-sm {\n  .dropdown-menu {\n    font-size: $font-size-sm !important;\n  }\n\n  .dropdown-toggle::after {\n    vertical-align: .2rem;\n  }\n}\n\n.dropdown-item-title {\n  font-size: $font-size-base;\n  margin: 0;\n}\n\n.dropdown-icon {\n  &::after {\n    margin-left: 0;\n  }\n}\n\n// Dropdown Sizes\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n\n  .dropdown-divider {\n    margin: 0;\n  }\n\n  .dropdown-item {\n    padding: $dropdown-padding-y $dropdown-item-padding-x;\n  }\n\n  p {\n    margin: 0;\n    white-space: normal;\n  }\n}\n\n// Dropdown Submenu\n.dropdown-submenu {\n  position: relative;\n\n  > a::after {\n    @include caret-right ();\n    float: right;\n    margin-left: .5rem;\n    margin-top: .5rem;\n  }\n\n  > .dropdown-menu {\n    left: 100%;\n    margin-left: 0;\n    margin-top: 0;\n    top: 0;\n  }\n}\n\n// Dropdown Hover\n.dropdown-hover {\n  &:hover,\n  &.nav-item.dropdown:hover,\n  .dropdown-submenu:hover,\n  &.dropdown-submenu:hover {\n    > .dropdown-menu {\n      display: block;\n    }\n  }\n}\n\n\n// Dropdown Sizes\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n\n  .dropdown-divider {\n    margin: 0;\n  }\n\n  .dropdown-item {\n    padding: $dropdown-padding-y $dropdown-item-padding-x;\n  }\n\n  p {\n    margin: 0;\n    white-space: normal;\n  }\n}\n\n// Dropdown header and footer\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: $font-size-sm;\n  padding: .5rem $dropdown-item-padding-x;\n  text-align: center;\n}\n\n// Add fade animation to dropdown menus by appending\n// the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)\n.open:not(.dropup) > .animated-dropdown-menu {\n  @include animation(flipInX .7s both);\n  backface-visibility: visible !important;\n}\n\n// Fix dropdown menu in navbars\n.navbar-custom-menu > .navbar-nav {\n  > li {\n    position: relative;\n    > .dropdown-menu {\n      position: absolute;\n      right: 0;\n      left: auto;\n    }\n  }\n}\n\n@include media-breakpoint-down(sm) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n    > li {\n      position: static;\n      > .dropdown-menu {\n        position: absolute;\n        right: 5%;\n        left: auto;\n        border: 1px solid #ddd;\n        background-color: $white;\n      }\n    }\n  }\n}\n\n// User Menu\n.navbar-nav > .user-menu {\n  > .nav-link::after {\n    content: none;\n  }\n\n  > .dropdown-menu {\n    @include border-top-radius(0);\n    padding: 0;\n    width: 280px;\n\n    &,\n    > .user-body {\n      @include border-bottom-radius(4px);\n    }\n\n    // Header menu\n    > li.user-header {\n      height: 175px;\n      padding: 10px;\n      text-align: center;\n\n      // User image\n      > img {\n        z-index: 5;\n        height: 90px;\n        width: 90px;\n        border: 3px solid;\n        border-color: transparent;\n        border-color: rgba(255, 255, 255, .2);\n      }\n\n      > p {\n        z-index: 5;\n        font-size: 17px;\n        //text-shadow: 2px 2px 3px #333333;\n        margin-top: 10px;\n\n        > small {\n          display: block;\n          font-size: 12px;\n        }\n      }\n    }\n\n    // Menu Body\n    > .user-body {\n      @include clearfix ();\n      border-bottom: 1px solid $gray-700;\n      border-top: 1px solid $gray-300;\n      padding: 15px;\n\n      a {\n        @include media-breakpoint-up(sm) {\n          background-color: $white !important;\n          color: $gray-700 !important;\n        }\n      }\n    }\n\n    // Menu Footer\n    > .user-footer {\n      @include clearfix ();\n      background-color: $gray-100;\n      padding: 10px;\n\n      .btn-default {\n        color: $gray-600;\n\n        &:hover {\n          @include media-breakpoint-up(sm) {\n            background-color: $gray-100;\n          }\n        }\n      }\n    }\n  }\n\n  .user-image {\n    @include media-breakpoint-up(sm) {\n      float: none;\n      line-height: 10px;\n      margin-right: .4rem;\n      margin-top: -8px;\n    }\n\n    border-radius: 50%;\n    float: left;\n    height: $sidebar-user-image-width;\n    margin-right: 10px;\n    margin-top: -2px;\n    width: $sidebar-user-image-width;\n  }\n}\n\n.dark-mode {\n  .dropdown-menu {\n    background-color: $dark;\n    color: $white;\n  }\n  .dropdown-item {\n    color: $white;\n\n    &:focus,\n    &:hover {\n      background-color: lighten($dark, 5%);\n    }\n  }\n  .dropdown-divider {\n    border-color: $gray-600;\n  }\n\n  .navbar-nav > .user-menu > .dropdown-menu {\n    > .user-footer {\n      background-color: lighten($dark, 2.5%);\n      color: $white;\n\n      .btn-default {\n        color: $white;\n\n        &:hover,\n        &:focus {\n          background-color: lighten($dark, 5%);\n          color: $gray-300;\n        }\n        &:focus {\n          background-color: lighten($dark, 7.5%);\n        }\n      }\n    }\n    > .user-body {\n      border-color: $gray-600;\n    }\n    > .user-body a {\n      background-color: transparent !important;\n      color: $white !important;\n\n      &:hover,\n      &:focus {\n        color: $gray-400 !important;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_elevation.scss",
    "content": "//\n// Component: Elevation\n//\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n// Background colors (colors)\n@each $name, $value in $elevations {\n  .elevation-#{$name} {\n    box-shadow: $value !important;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_forms.scss",
    "content": "//\n// Component: Forms\n//\n\n.form-group {\n  &.has-icon {\n    position: relative;\n\n    .form-control {\n      padding-right: 35px;\n    }\n\n    .form-icon {\n      background-color: transparent;\n      border: 0;\n      cursor: pointer;\n      font-size: 1rem;\n      // margin-top: -3px;\n      padding: $input-btn-padding-y $input-btn-padding-x;\n      position: absolute;\n      right: 3px;\n      top: 0;\n    }\n  }\n}\n\n// Button groups\n.btn-group-vertical {\n  .btn {\n    &.btn-flat:first-of-type,\n    &.btn-flat:last-of-type {\n      @include border-radius(0);\n    }\n  }\n}\n\n// Support icons in form-control\n.form-control-feedback {\n  &.fa,\n  &.fas,\n  &.far,\n  &.fab,\n  &.fal,\n  &.fad,\n  &.svg-inline--fa,\n  &.ion {\n    line-height: $input-height;\n  }\n}\n\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback {\n  &.fa,\n  &.fas,\n  &.far,\n  &.fab,\n  &.fal,\n  &.fad,\n  &.svg-inline--fa,\n  &.ion {\n    line-height: $input-height-lg;\n  }\n}\n\n.form-group-lg {\n  .form-control + .form-control-feedback {\n    &.fa,\n    &.fas,\n    &.far,\n    &.fab,\n    &.fal,\n    &.fad,\n    &.svg-inline--fa,\n    &.ion {\n      line-height: $input-height-lg;\n    }\n  }\n}\n\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback {\n  &.fa,\n  &.fas,\n  &.far,\n  &.fab,\n  &.fal,\n  &.fad,\n  &.svg-inline--fa,\n  &.ion {\n    line-height: $input-height-sm;\n  }\n}\n\n.form-group-sm {\n  .form-control + .form-control-feedback {\n    &.fa,\n    &.fas,\n    &.far,\n    &.fab,\n    &.fal,\n    &.fad,\n    &.svg-inline--fa,\n    &.ion {\n      line-height: $input-height-sm;\n    }\n  }\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: $font-weight-bold;\n}\n\n.warning-feedback {\n  @include font-size($form-feedback-font-size);\n  color: theme-color(\"warning\");\n  display: none;\n  margin-top: $form-feedback-margin-top;\n  width: 100%;\n}\n\n.warning-tooltip {\n  @include border-radius($form-feedback-tooltip-border-radius);\n  @include font-size($form-feedback-tooltip-font-size);\n  background-color: rgba(theme-color(\"warning\"), $form-feedback-tooltip-opacity);\n  color: color-yiq(theme-color(\"warning\"));\n  display: none;\n  line-height: $form-feedback-tooltip-line-height;\n  margin-top: .1rem;\n  max-width: 100%; // Contain to parent when possible\n  padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control {\n  &.is-warning {\n    border-color: theme-color(\"warning\");\n\n    @if $enable-validation-icons {\n      // padding-right: $input-height-inner;\n      // background-image: none;\n      // background-repeat: no-repeat;\n      // background-position: center right $input-height-inner-quarter;\n      // background-size: $input-height-inner-half $input-height-inner-half;\n    }\n\n    &:focus {\n      border-color: theme-color(\"warning\");\n      box-shadow: 0 0 0 $input-focus-width rgba(theme-color(\"warning\"), .25);\n    }\n\n    ~ .warning-feedback,\n    ~ .warning-tooltip {\n      display: block;\n    }\n  }\n}\n\n// stylelint-disable-next-line selector-no-qualifying-type\ntextarea.form-control {\n  &.is-warning {\n    @if $enable-validation-icons {\n      padding-right: $input-height-inner;\n      background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n    }\n  }\n}\n\n.custom-select {\n  &.is-warning {\n    border-color: theme-color(\"warning\");\n\n    @if $enable-validation-icons {\n      // padding-right: $custom-select-feedback-icon-padding-right;\n      // background: $custom-select-background, none $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n    }\n\n    &:focus {\n      border-color: theme-color(\"warning\");\n      box-shadow: 0 0 0 $input-focus-width rgba(theme-color(\"warning\"), .25);\n    }\n\n    ~ .warning-feedback,\n    ~ .warning-tooltip {\n      display: block;\n    }\n  }\n}\n\n\n.form-control-file {\n  &.is-warning {\n    ~ .warning-feedback,\n    ~ .warning-tooltip {\n      display: block;\n    }\n  }\n}\n\n.form-check-input {\n  &.is-warning {\n    ~ .form-check-label {\n      color: theme-color(\"warning\");\n    }\n\n    ~ .warning-feedback,\n    ~ .warning-tooltip {\n      display: block;\n    }\n  }\n}\n\n.custom-control-input.is-warning {\n  ~ .custom-control-label {\n    color: theme-color(\"warning\");\n\n    &::before {\n      border-color: theme-color(\"warning\");\n    }\n  }\n\n  ~ .warning-feedback,\n  ~ .warning-tooltip {\n    display: block;\n  }\n\n  &:checked {\n    ~ .custom-control-label::before {\n      @include gradient-bg(lighten(theme-color(\"warning\"), 10%));\n      border-color: lighten(theme-color(\"warning\"), 10%);\n    }\n  }\n\n  &:focus {\n    ~ .custom-control-label::before {\n      box-shadow: 0 0 0 $input-focus-width rgba(theme-color(\"warning\"), .25);\n    }\n\n    &:not(:checked) ~ .custom-control-label::before {\n      border-color: theme-color(\"warning\");\n    }\n  }\n}\n\n// custom file\n.custom-file-input {\n  &.is-warning {\n    ~ .custom-file-label {\n      border-color: theme-color(\"warning\");\n    }\n\n    ~ .warning-feedback,\n    ~ .warning-tooltip {\n      display: block;\n    }\n\n    &:focus {\n      ~ .custom-file-label {\n        border-color: theme-color(\"warning\");\n        box-shadow: 0 0 0 $input-focus-width rgba(theme-color(\"warning\"), .25);\n      }\n    }\n  }\n}\n\n// body.text-sm support\nbody.text-sm {\n  .input-group-text {\n    font-size: $font-size-sm;\n  }\n}\n\n// custom .form-control styles\n.form-control,\n.custom-select {\n  &.form-control-border {\n    border-top: 0;\n    border-left: 0;\n    border-right: 0;\n    border-radius: 0;\n    box-shadow: inherit;\n\n    &.border-width-2 {\n      border-bottom-width: 2px;\n    }\n    &.border-width-3 {\n      border-bottom-width: 3px;\n    }\n  }\n}\n\n// custom switch color variations\n.custom-switch {\n  @each $name, $color in $theme-colors {\n    @include custom-switch-variant($name, $color);\n  }\n\n  @each $name, $color in $colors {\n    @include custom-switch-variant($name, $color);\n  }\n}\n\n// custom range color variations\n.custom-range {\n  @each $name, $color in $theme-colors {\n    @include custom-range-variant($name, $color);\n  }\n\n  @each $name, $color in $colors {\n    @include custom-range-variant($name, $color);\n  }\n}\n\n// custom control input variations\n@each $name, $color in $theme-colors {\n  @include custom-control-input-variant($name, $color);\n}\n\n@each $name, $color in $colors {\n  @include custom-control-input-variant($name, $color);\n}\n\n.custom-control-input-outline {\n  ~ .custom-control-label::before {\n    background-color: transparent !important;\n    box-shadow: none;\n  }\n  &:checked ~ .custom-control-label::before {\n    @include gradient-bg(transparent);\n  }\n}\n\n.navbar-dark {\n  .btn-navbar,\n  .form-control-navbar {\n    background-color: lighten($sidebar-dark-bg, 5%);\n    border: 1px solid lighten($sidebar-dark-bg, 15%);\n    color: lighten(color-yiq(lighten($sidebar-dark-bg, 5%)), 15%);\n  }\n  .btn-navbar {\n    &:hover {\n      background-color: lighten($sidebar-dark-bg, 7.5%);\n    }\n    &:focus {\n      background-color: lighten($sidebar-dark-bg, 10%);\n    }\n  }\n\n  .form-control-navbar + .input-group-prepend,\n  .form-control-navbar + .input-group-append {\n    > .btn-navbar {\n      background-color: lighten($sidebar-dark-bg, 5%);\n      color: $white;\n      border: 1px solid lighten($sidebar-dark-bg, 15%);\n      border-left: none;\n    }\n  }\n}\n\n.dark-mode {\n  .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n  .custom-select,\n  .custom-file-label,\n  .custom-file-label::after,\n  .custom-control-label::before,\n  .input-group-text {\n    background-color: $dark;\n    color: $white;\n  }\n  .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n  .custom-file-label,\n  .custom-file-label::after {\n    border-color: $gray-600;\n  }\n  select {\n    background-color: $dark;\n    color: $white;\n    border-color: $gray-600;\n  }\n\n  .input-group-text {\n    border-color: $gray-600;\n  }\n\n  .custom-control-input:disabled ~ .custom-control-label::before,\n  .custom-control-input[disabled] ~ .custom-control-label::before {\n    background-color: lighten($dark, 5%);\n    border-color: $gray-600;\n    color: $white;\n  }\n\n  .custom-range {\n    &::-webkit-slider-runnable-track {\n      background-color: lighten($dark, 7.5%);\n    }\n    &::-moz-range-track {\n      background-color: lighten($dark, 7.5%);\n    }\n    &::-ms-track {\n      background-color: lighten($dark, 7.5%);\n    }\n\n    @each $name, $color in $theme-colors-alt {\n      @include custom-range-variant($name, $color);\n    }\n\n    @each $name, $color in $colors-alt {\n      @include custom-range-variant($name, $color);\n    }\n  }\n\n  // custom switch color variations\n  .custom-switch {\n    @each $name, $color in $theme-colors-alt {\n      @include custom-switch-variant($name, $color);\n    }\n\n    @each $name, $color in $colors-alt {\n      @include custom-switch-variant($name, $color);\n    }\n  }\n\n  @each $name, $color in $theme-colors-alt {\n    @include custom-control-input-variant($name, $color);\n  }\n\n  @each $name, $color in $colors-alt {\n    @include custom-control-input-variant($name, $color);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_info-box.scss",
    "content": "//\n// Component: Info Box\n//\n\n.info-box {\n  @include box-shadow($card-shadow);\n  @include border-radius($border-radius);\n\n  background-color: $white;\n  display: flex;\n  margin-bottom: map-get($spacers, 3);\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n\n  .progress {\n    background-color: rgba($black, .125);\n    height: 2px;\n    margin: 5px 0;\n\n    .progress-bar {\n      background-color: $white;\n    }\n  }\n\n  .info-box-icon {\n    @if $enable-rounded {\n      border-radius: $border-radius;\n    }\n\n    align-items: center;\n    display: flex;\n    font-size: 1.875rem;\n    justify-content: center;\n    text-align: center;\n    width: 70px;\n\n    > img {\n      max-width: 100%;\n    }\n  }\n\n  .info-box-content {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    line-height: 1.8;\n    flex: 1;\n    padding: 0 10px;\n  }\n\n  .info-box-number {\n    display: block;\n    margin-top: .25rem;\n    font-weight: $font-weight-bold;\n  }\n\n  .progress-description,\n  .info-box-text {\n    display: block;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  @each $name, $color in $theme-colors {\n    .info-box {\n      .bg-#{$name},\n      .bg-gradient-#{$name} {\n        color: color-yiq($color);\n\n        .progress-bar {\n          background-color: color-yiq($color);\n        }\n      }\n    }\n  }\n\n  .info-box-more {\n    display: block;\n  }\n\n  .progress-description {\n    margin: 0;\n\n  }\n\n  @include media-breakpoint-up(md) {\n    .col-xl-2 &,\n    .col-lg-2 &,\n    .col-md-2 & {\n      .progress-description {\n        display: none;\n      }\n    }\n\n    .col-xl-3 &,\n    .col-lg-3 &,\n    .col-md-3 & {\n      .progress-description {\n        display: none;\n      }\n    }\n  }\n\n  @include media-breakpoint-up(lg) {\n    .col-xl-2 &,\n    .col-lg-2 &,\n    .col-md-2 & {\n      .progress-description {\n        @include font-size(.75rem);\n        display: block;\n      }\n    }\n\n    .col-xl-3 &,\n    .col-lg-3 &,\n    .col-md-3 & {\n      .progress-description {\n        @include font-size(.75rem);\n        display: block;\n      }\n    }\n  }\n\n  @include media-breakpoint-up(xl) {\n    .col-xl-2 &,\n    .col-lg-2 &,\n    .col-md-2 & {\n      .progress-description {\n        @include font-size(1rem);\n        display: block;\n      }\n    }\n\n    .col-xl-3 &,\n    .col-lg-3 &,\n    .col-md-3 & {\n      .progress-description {\n        @include font-size(1rem);\n        display: block;\n      }\n    }\n  }\n}\n\n.dark-mode {\n  .info-box {\n    background-color: $dark;\n    color: $white;\n    @each $name, $color in $theme-colors-alt {\n      .info-box {\n        .bg-#{$name},\n        .bg-gradient-#{$name} {\n          color: color-yiq($color);\n\n          .progress-bar {\n            background-color: color-yiq($color);\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_layout.scss",
    "content": "//\n// Core: Layout\n//\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n\n  .content-wrapper {\n    min-height: calc(100vh - #{$main-header-height} - #{$main-footer-height});\n  }\n\n  .layout-boxed & {\n    @include box-shadow(0 0 10 rgba($black, .3));\n\n    &,\n    &::before {\n      margin: 0 auto;\n      max-width: $boxed-layout-max-width;\n    }\n\n    .main-sidebar {\n      left: inherit;\n    }\n  }\n\n  @supports not (-webkit-touch-callout: none) {\n    .layout-fixed & .sidebar {\n      height: calc(100vh - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));\n    }\n    .layout-fixed.text-sm & .sidebar {\n      height: calc(100vh - (#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}));\n    }\n  }\n\n  .layout-navbar-fixed.layout-fixed & {\n    .control-sidebar {\n      top: $main-header-height;\n    }\n\n    .main-header.text-sm ~ .control-sidebar {\n      top: $main-header-height-sm;\n    }\n\n    .sidebar {\n      margin-top: $main-header-height;\n    }\n\n    .brand-link.text-sm ~ .sidebar {\n      margin-top: $main-header-height-sm;\n    }\n  }\n\n  .layout-navbar-fixed.layout-fixed.text-sm & {\n    .control-sidebar {\n      top: $main-header-height-sm;\n    }\n\n    .sidebar {\n      margin-top: $main-header-height-sm;\n    }\n  }\n\n  .layout-navbar-fixed.sidebar-mini.sidebar-collapse &,\n  .layout-navbar-fixed.sidebar-mini-md.sidebar-collapse &,\n  .layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse & {\n    .brand-link {\n      height: $main-header-height;\n      width: $sidebar-mini-width;\n\n      &.text-sm {\n        height: $main-header-height-sm;\n      }\n    }\n  }\n\n  .layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm &,\n  .layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm &,\n  .layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm & {\n    .brand-link {\n      height: $main-header-height-sm;\n    }\n  }\n\n  body:not(.layout-fixed).layout-navbar-fixed & {\n    .main-sidebar {\n      // margin-top: calc(#{$main-header-height} / -1);\n\n      // .sidebar {\n      //   margin-top: $main-header-height;\n      // }\n    }\n  }\n\n  body:not(.layout-fixed).layout-navbar-fixed.text-sm & {\n    .main-sidebar {\n      margin-top: calc(#{$main-header-height-sm} / -1);\n\n      .sidebar {\n        margin-top: $main-header-height-sm;\n      }\n    }\n  }\n\n  .layout-navbar-fixed & {\n    .control-sidebar {\n      top: 0;\n    }\n\n    a.anchor {\n      display: block;\n      position: relative;\n      top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);\n    }\n\n    .main-sidebar:hover {\n      .brand-link {\n        transition: width $transition-speed $transition-fn;\n        width: $sidebar-width;\n      }\n    }\n\n    .brand-link {\n      overflow: hidden;\n      position: fixed;\n      top: 0;\n      transition: width $transition-speed $transition-fn;\n      width: $sidebar-width;\n      z-index: $zindex-main-header + 1;\n    }\n\n    // Sidebar variants brand-link fix\n    @each $name, $color in $theme-colors {\n      .sidebar-dark-#{$name} .brand-link:not([class*=\"navbar\"]) {\n        background-color: $sidebar-dark-bg;\n      }\n\n      .sidebar-light-#{$name} .brand-link:not([class*=\"navbar\"]) {\n        background-color: $sidebar-light-bg;\n      }\n    }\n\n    .content-wrapper {\n      margin-top: $main-header-height;\n    }\n\n    .main-header.text-sm ~ .content-wrapper {\n      margin-top: $main-header-height-sm;\n    }\n\n    .main-header {\n      left: 0;\n      position: fixed;\n      right: 0;\n      top: 0;\n      z-index: $zindex-main-header - 1;\n    }\n  }\n\n  .layout-navbar-fixed.text-sm & {\n    .content-wrapper {\n      margin-top: $main-header-height-sm;\n    }\n  }\n\n  .layout-navbar-not-fixed & {\n    .brand-link {\n      position: static;\n    }\n\n    .sidebar,\n    .content-wrapper {\n      margin-top: 0;\n    }\n\n    .main-header {\n      position: static;\n    }\n  }\n\n  .layout-navbar-not-fixed.layout-fixed & {\n    .sidebar {\n      margin-top: 0;\n    }\n  }\n\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    @include media-breakpoint-up($breakpoint) {\n      $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n      .layout#{$infix}-navbar-fixed.layout-fixed & {\n        .control-sidebar {\n          top: $main-header-height;\n        }\n\n        .text-sm & .main-header ~ .control-sidebar,\n        .main-header.text-sm ~ .control-sidebar {\n          top: $main-header-height-sm;\n        }\n\n        .sidebar {\n          margin-top: $main-header-height;\n        }\n\n        .text-sm & .brand-link ~ .sidebar,\n        .brand-link.text-sm ~ .sidebar {\n          margin-top: $main-header-height-sm;\n        }\n      }\n\n      .layout#{$infix}-navbar-fixed.layout-fixed.text-sm & {\n        .control-sidebar {\n          top: $main-header-height-sm;\n        }\n\n        .sidebar {\n          margin-top: $main-header-height-sm;\n        }\n      }\n\n      .layout#{$infix}-navbar-fixed & {\n        .control-sidebar {\n          top: 0;\n        }\n\n        a.anchor {\n          display: block;\n          position: relative;\n          top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);\n        }\n\n        &.sidebar-collapse {\n          .brand-link {\n            height: $main-header-height;\n            transition: width $transition-speed $transition-fn;\n            width: $sidebar-mini-width;\n\n            .text-sm &,\n            &.text-sm {\n              height: $main-header-height-sm;\n            }\n          }\n\n          .main-sidebar:hover {\n            .brand-link {\n              transition: width $transition-speed $transition-fn;\n              width: $sidebar-width;\n            }\n          }\n        }\n\n        .brand-link {\n          overflow: hidden;\n          position: fixed;\n          top: 0;\n          transition: width $transition-speed $transition-fn;\n          width: $sidebar-width;\n          z-index: $zindex-main-header + 1;\n        }\n\n        // Sidebar variants brand-link fix\n        @each $name, $color in $theme-colors {\n          .sidebar-dark-#{$name} .brand-link:not([class*=\"navbar\"]) {\n            background-color: $sidebar-dark-bg;\n          }\n\n          .sidebar-light-#{$name} .brand-link:not([class*=\"navbar\"]) {\n            background-color: $sidebar-light-bg;\n          }\n        }\n\n        .content-wrapper {\n          margin-top: $main-header-height;\n        }\n\n        .text-sm & .main-header ~ .content-wrapper,\n        .main-header.text-sm ~ .content-wrapper {\n          margin-top: $main-header-height-sm;\n        }\n\n        .main-header {\n          left: 0;\n          position: fixed;\n          right: 0;\n          top: 0;\n          z-index: $zindex-main-sidebar - 1;\n        }\n      }\n\n      .layout#{$infix}-navbar-fixed.text-sm & {\n        .content-wrapper {\n          margin-top: $main-header-height-sm;\n        }\n      }\n\n      body:not(.layout-fixed).layout#{$infix}-navbar-fixed & {\n        // .main-sidebar {\n        //   margin-top: calc(#{$main-header-height} / -1);\n\n        //   .sidebar {\n        //     margin-top: $main-header-height;\n        //   }\n        // }\n      }\n\n      body:not(.layout-fixed).layout#{$infix}-navbar-fixed.text-sm & {\n        .main-sidebar {\n          margin-top: calc(#{$main-header-height-sm} / -1);\n\n          .sidebar {\n            margin-top: $main-header-height-sm;\n          }\n        }\n      }\n\n      .layout#{$infix}-navbar-not-fixed & {\n        .brand-link {\n          position: static;\n        }\n\n        .sidebar,\n        .content-wrapper {\n          margin-top: 0;\n        }\n\n        .main-header {\n          position: static;\n        }\n      }\n\n      .layout#{$infix}-navbar-not-fixed.layout-fixed & {\n        .sidebar {\n          margin-top: 0;\n        }\n      }\n    }\n  }\n\n  .layout-footer-fixed & {\n    .control-sidebar {\n      bottom: 0;\n    }\n\n    .main-footer {\n      bottom: 0;\n      left: 0;\n      position: fixed;\n      right: 0;\n      z-index: $zindex-main-footer;\n    }\n  }\n\n  .layout-footer-not-fixed & {\n    .main-footer {\n      position: static;\n    }\n\n    .content-wrapper {\n      margin-bottom: 0;\n    }\n  }\n\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    @include media-breakpoint-up($breakpoint) {\n      $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n      .layout#{$infix}-footer-fixed & {\n        .control-sidebar {\n          bottom: 0;\n        }\n\n        .main-footer {\n          bottom: 0;\n          left: 0;\n          position: fixed;\n          right: 0;\n          z-index: $zindex-main-footer;\n        }\n\n        .content-wrapper {\n          padding-bottom: $main-footer-height;\n        }\n      }\n\n      .layout#{$infix}-footer-not-fixed & {\n        .main-footer {\n          position: static;\n        }\n      }\n    }\n  }\n\n  .layout-top-nav & {\n    margin-left: 0;\n\n    .main-header {\n      .brand-image {\n        margin-top: -.5rem;\n        margin-right: .2rem;\n        height: 33px;\n      }\n    }\n\n    .main-sidebar {\n      bottom: inherit;\n      height: inherit;\n    }\n\n    .content-wrapper,\n    .main-header,\n    .main-footer {\n      margin-left: 0;\n    }\n  }\n}\n\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    &,\n    &::before {\n      margin-left: 0;\n    }\n  }\n}\n\nbody:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    @include media-breakpoint-up(md) {\n      @include transition(margin-left $transition-speed $transition-fn);\n\n      margin-left: $sidebar-width;\n\n      .sidebar-collapse & {\n        margin-left: 0;\n      }\n    }\n\n    @include media-breakpoint-down(md) {\n      margin-left: 0;\n    }\n  }\n}\n\n.sidebar-mini-md {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    @include media-breakpoint-up(md) {\n      @include transition(margin-left $transition-speed $transition-fn);\n\n      margin-left: $sidebar-width;\n\n      .sidebar-collapse & {\n        margin-left: $sidebar-mini-width;\n      }\n    }\n    @include media-breakpoint-down(md) {\n      margin-left: $sidebar-mini-width;\n    }\n    @include media-breakpoint-down(sm) {\n      margin-left: 0;\n    }\n  }\n}\n\n.sidebar-mini-xs {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    @include media-breakpoint-up(md) {\n      @include transition(margin-left $transition-speed $transition-fn);\n\n      margin-left: $sidebar-width;\n\n      .sidebar-collapse & {\n        margin-left: $sidebar-mini-width;\n      }\n    }\n    @include media-breakpoint-down(md) {\n      margin-left: $sidebar-mini-width;\n    }\n  }\n}\n\n.content-wrapper {\n  background-color: $main-bg;\n\n  > .content {\n    padding: $content-padding-y $content-padding-x;\n  }\n}\n\n.main-sidebar {\n  &,\n  &::before {\n    $local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn;\n    @include transition($local-sidebar-transition);\n    width: $sidebar-width;\n  }\n\n  .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) & {\n    &,\n    &::before {\n      box-shadow: none !important;\n    }\n  }\n\n  .sidebar-collapse & {\n    &,\n    &::before {\n      margin-left: -$sidebar-width;\n    }\n\n    .nav-sidebar.nav-child-indent .nav-treeview {\n      padding: 0;\n    }\n  }\n\n  @include media-breakpoint-down(sm) {\n    &,\n    &::before {\n      box-shadow: none !important;\n      margin-left: -$sidebar-width;\n    }\n\n    .sidebar-open & {\n      &,\n      &::before {\n        margin-left: 0;\n      }\n    }\n  }\n}\n\nbody:not(.layout-fixed) {\n  .main-sidebar {\n    height: inherit;\n    min-height: 100%;\n    position: absolute;\n    top: 0;\n\n    .sidebar {\n      overflow-y: auto;\n    }\n  }\n}\n\n.layout-fixed {\n  .brand-link {\n    width: $sidebar-width;\n  }\n\n  .main-sidebar {\n    bottom: 0;\n    float: none;\n    left: 0;\n    position: fixed;\n    top: 0;\n  }\n\n  .control-sidebar {\n    bottom: 0;\n    float: none;\n    position: fixed;\n    top: 0;\n\n    .control-sidebar-content {\n      height: calc(100vh - #{$main-header-height});\n      overflow-y: auto;\n      @include scrollbar-width-thin();\n    }\n  }\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed {\n    .main-sidebar {\n      height: inherit;\n    }\n  }\n}\n\n.main-footer {\n  background-color: $main-footer-bg;\n  border-top: $main-footer-border-top;\n  color: lighten($gray-700, 25%);\n  padding: $main-footer-padding;\n\n  .text-sm &,\n  &.text-sm {\n    padding: $main-footer-padding-sm;\n  }\n}\n\n.content-header {\n  padding: 15px $content-padding-x;\n\n  .text-sm & {\n    padding: 10px $content-padding-x;\n  }\n\n  h1 {\n    font-size: 1.8rem;\n    margin: 0;\n\n    .text-sm & {\n      font-size: 1.5rem;\n    }\n  }\n\n  .breadcrumb {\n    background-color: transparent;\n    line-height: 1.8rem;\n    margin-bottom: 0;\n    padding: 0;\n\n    .text-sm & {\n      line-height: 1.5rem;\n    }\n  }\n}\n\n\n.hold-transition {\n  .content-wrapper,\n  .main-header,\n  .main-sidebar,\n  .main-sidebar *,\n  .control-sidebar,\n  .control-sidebar *,\n  .main-footer {\n    transition: none !important;\n    animation-duration: 0s !important;\n  }\n}\n\n.dark-mode {\n  background-color: $dark-main-bg;\n  color: $white;\n\n  .wrapper {\n    .layout-navbar-fixed & {\n      @each $name, $color in $theme-colors-alt {\n        .sidebar-dark-#{$name} .brand-link:not([class*=\"navbar\"]) {\n          background-color: $sidebar-dark-bg;\n        }\n\n        .sidebar-light-#{$name} .brand-link:not([class*=\"navbar\"]) {\n          background-color: $sidebar-light-bg;\n        }\n      }\n    }\n\n    @each $breakpoint in map-keys($grid-breakpoints) {\n      @include media-breakpoint-up($breakpoint) {\n        $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n        .layout#{$infix}-navbar-fixed & {\n          @each $name, $color in $theme-colors-alt {\n            .sidebar-dark-#{$name} .brand-link:not([class*=\"navbar\"]) {\n              background-color: $sidebar-dark-bg;\n            }\n\n            .sidebar-light-#{$name} .brand-link:not([class*=\"navbar\"]) {\n              background-color: $sidebar-light-bg;\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .breadcrumb-item {\n    &.active,\n    + .breadcrumb-item::before {\n      color: $gray-500;\n    }\n  }\n  .main-footer {\n    background-color: $dark;\n    border-color: lighten($dark, 10%);\n  }\n  .content-wrapper {\n    background-color: lighten($dark, 7.5%);\n    color: $white;\n\n    .content-header {\n      color: $white;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_main-header.scss",
    "content": "//\n// Component: Main Header\n//\n\n.main-header {\n  border-bottom: $main-header-bottom-border;\n  z-index: $zindex-main-header;\n\n  .nav-link {\n    height: $nav-link-height;\n    position: relative;\n  }\n\n  .text-sm &,\n  &.text-sm {\n    .nav-link {\n      height: $nav-link-sm-height;\n      padding: $nav-link-sm-padding-y $nav-link-padding-x;\n\n      > .fa,\n      > .fas,\n      > .far,\n      > .fab,\n      > .fal,\n      > .fad,\n      > .svg-inline--fa,\n      > .ion {\n        font-size: $font-size-sm;\n      }\n    }\n\n  }\n\n  .navbar-nav {\n    .nav-item {\n      margin: 0;\n    }\n\n    &[class*=\"-right\"] {\n      .dropdown-menu {\n        left: auto;\n        margin-top: -3px;\n        right: 0;\n\n        @media (max-width: breakpoint-max(xs)) {\n          left: 0;\n          right: auto;\n        }\n      }\n    }\n  }\n\n  &.dropdown-legacy .dropdown-menu {\n    top: $nav-link-height + $navbar-padding-y;\n    margin-top: 0;\n  }\n}\n\n// Add this class to images within a nav-link\n.navbar-img {\n  height: $main-header-height / 2;\n  width: auto;\n}\n\n// Navbar badge\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n\n  + .input-group-append {\n    margin-left: 0;\n  }\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark {\n  .form-control-navbar,\n  .btn-navbar {\n    background-color: $main-header-dark-form-control-bg;\n    border-color: $main-header-dark-form-control-border-color;\n  }\n\n  .form-control-navbar {\n    &::placeholder {\n      color: $main-header-dark-placeholder-color;\n    }\n\n    + .input-group-append > .btn-navbar {\n      color: $main-header-dark-placeholder-color;\n    }\n\n    &:focus {\n      &,\n      + .input-group-append .btn-navbar {\n        background-color: $main-header-dark-form-control-focused-bg;\n        border-color: $main-header-dark-form-control-focused-border-color !important;\n        color: $main-header-dark-form-control-focused-color;\n      }\n    }\n  }\n}\n\n.navbar-light {\n  .form-control-navbar,\n  .btn-navbar {\n    background-color: $main-header-light-form-control-bg;\n    border-color: $main-header-light-form-control-border-color;\n  }\n\n  .form-control-navbar {\n    &::placeholder {\n      color: $main-header-light-placeholder-color;\n    }\n\n    + .input-group-append > .btn-navbar {\n      color: $main-header-light-placeholder-color;\n    }\n\n    &:focus {\n      &,\n      + .input-group-append .btn-navbar {\n        background-color: $main-header-light-form-control-focused-bg;\n        border-color: $main-header-light-form-control-focused-border-color !important;\n        color: $main-header-light-form-control-focused-color;\n      }\n    }\n  }\n\n  .navbar-search-block {\n    .form-control-navbar {\n      &:focus {\n        &,\n        + .input-group-append .btn-navbar {\n          color: $main-header-light-placeholder-color;\n        }\n      }\n    }\n  }\n}\n\n// Navbar Search\n.navbar-search-block {\n  position: absolute;\n  padding: 0 $nav-link-padding-x;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  justify-content: center;\n  flex-direction: column;\n  background-color: initial;\n\n  &.navbar-search-open {\n    display: flex;\n  }\n\n  .input-group {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_main-sidebar.scss",
    "content": "//\n// Component: Main Sidebar\n//\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: $zindex-main-sidebar;\n\n  // Remove Firefox Focusring\n  a {\n    &:-moz-focusring {\n      border: 0;\n      outline: none;\n    }\n  }\n\n}\n\n.sidebar {\n  height: calc(100% - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: $sidebar-padding-y;\n  padding-left: $sidebar-padding-x;\n  padding-right: $sidebar-padding-x;\n  padding-top: $sidebar-padding-y;\n  @include scrollbar-width-thin();\n}\n\n// Sidebar user panel\n.user-panel {\n  position: relative;\n\n  [class*=\"sidebar-dark\"] & {\n    border-bottom: 1px solid lighten($dark, 12%);\n  }\n\n  [class*=\"sidebar-light\"] & {\n    border-bottom: 1px solid $gray-300;\n  }\n\n  &,\n  .info {\n    overflow: hidden;\n    white-space: nowrap;\n  }\n\n  .image {\n    display: inline-block;\n    padding-left: $nav-link-padding-x - .2;\n  }\n\n  img {\n    height: auto;\n    width: $sidebar-user-image-width;\n  }\n\n  .info {\n    display: inline-block;\n    padding: 5px 5px 5px 10px;\n  }\n\n  .status,\n  .dropdown-menu {\n    font-size: $font-size-sm;\n  }\n}\n\n// Sidebar navigation menu\n.nav-sidebar {\n  // All levels\n  .nav-item {\n    > .nav-link {\n      margin-bottom: .2rem;\n\n      .right {\n        @include transition(transform $transition-fn $transition-speed);\n      }\n    }\n  }\n\n  .nav-link > .right,\n  .nav-link > p > .right {\n    position: absolute;\n    right: 1rem;\n    top: .7rem;\n\n    i,\n    span {\n      margin-left: .5rem;\n    }\n\n    &:nth-child(2) {\n      right: 2.2rem;\n    }\n  }\n\n  .menu-open {\n    > .nav-treeview {\n      display: block;\n    }\n  }\n\n  .menu-open,\n  .menu-is-opening {\n    > .nav-link {\n      i.right {\n        @include rotate(-90deg);\n      }\n    }\n  }\n\n  // First Level\n  > .nav-item {\n    margin-bottom: 0;\n\n    .nav-icon {\n      margin-left: .05rem;\n      font-size: 1.2rem;\n      margin-right: .2rem;\n      text-align: center;\n      width: $sidebar-nav-icon-width;\n\n      &.fa,\n      &.fas,\n      &.far,\n      &.fab,\n      &.fal,\n      &.fad,\n      &.svg-inline--fa,\n      &.ion {\n        font-size: 1.1rem;\n      }\n    }\n\n    .float-right {\n      margin-top: 3px;\n    }\n  }\n\n  // Tree view menu\n  .nav-treeview {\n    display: none;\n    list-style: none;\n    padding: 0;\n\n    > .nav-item {\n      > .nav-link {\n        > .nav-icon {\n          width: $sidebar-nav-icon-width;\n        }\n      }\n    }\n  }\n\n  &.nav-child-indent {\n    .nav-treeview {\n      transition: padding $transition-speed $transition-fn;\n      padding-left: 1rem;\n\n      .text-sm & {\n        padding-left: .5rem;\n      }\n    }\n\n    &.nav-legacy {\n      .nav-treeview {\n        .nav-treeview {\n          padding-left: 2rem;\n          margin-left: -1rem;\n\n          .text-sm & {\n            padding-left: 1rem;\n            margin-left: -.5rem;\n          }\n        }\n      }\n    }\n  }\n\n  .nav-header {\n    font-size: .9rem;\n    padding: $nav-link-padding-y ($nav-link-padding-y * 1.5);\n  }\n\n  .nav-link p {\n    display: inline;\n    margin: 0;\n    white-space: normal;\n  }\n}\n\n.sidebar-is-opening .nav-sidebar {\n  .nav-link p {\n    animation-name: fadeIn;\n    animation-duration: $transition-speed;\n    animation-fill-mode: both;\n  }\n}\n\n#sidebar-overlay {\n  @include media-breakpoint-down(md) {\n    .sidebar-open & {\n      display: block;\n    }\n  }\n\n  background-color: rgba($black, .1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: $zindex-main-sidebar - 1;\n}\n\n[class*=\"sidebar-light-\"] {\n  // Sidebar background color\n  background-color: $sidebar-light-bg;\n\n  // User Panel (resides in the sidebar)\n  .user-panel {\n    a:hover {\n      color: $sidebar-light-hover-color;\n    }\n\n    .status {\n      background-color: $sidebar-light-hover-bg;\n      color: $sidebar-light-color;\n\n      &:hover,\n      &:focus,\n      &:active {\n        background-color: darken($sidebar-light-hover-bg, 3%);\n        color: $sidebar-light-hover-color;\n      }\n    }\n\n    .dropdown-menu {\n      @include box-shadow(0 2px 4px rgba(0, 0, 0, .4));\n      border-color: darken($sidebar-light-hover-bg, 5%);\n    }\n\n    .dropdown-item {\n      color: $body-color;\n    }\n  }\n\n  // Sidebar Menu. First level links\n  .nav-sidebar > .nav-item {\n    // links\n    > .nav-link {\n      // border-left: 3px solid transparent;\n      &:active,\n      &:focus {\n        color: $sidebar-light-color;\n      }\n    }\n\n    // Hover and active states\n    &.menu-open > .nav-link,\n    &:hover > .nav-link {\n      background-color: $sidebar-light-hover-bg;\n      color: $sidebar-light-hover-color;\n    }\n\n    > .nav-link.active {\n      color: $sidebar-light-active-color;\n\n      @if $enable-shadows {\n        box-shadow: map-get($elevations, 1);\n      }\n    }\n\n    // First Level Submenu\n    > .nav-treeview {\n      background-color: $sidebar-light-submenu-bg;\n    }\n  }\n\n  // Section Heading\n  .nav-header {\n    background-color: inherit;\n    color: darken($sidebar-light-color, 5%);\n  }\n\n  // All links within the sidebar menu\n  .sidebar {\n    a {\n      color: $sidebar-light-color;\n\n      &:hover {\n        text-decoration: none;\n      }\n    }\n  }\n\n  // All submenus\n  .nav-treeview {\n    > .nav-item {\n      > .nav-link {\n        color: $sidebar-light-submenu-color;\n\n        &:hover,\n        &:focus {\n          background-color: $sidebar-light-submenu-hover-bg;\n          color: $sidebar-light-submenu-hover-color;\n        }\n      }\n\n      > .nav-link.active {\n        &,\n        &:hover {\n          background-color: $sidebar-light-submenu-active-bg;\n          color: $sidebar-light-submenu-active-color;\n        }\n      }\n\n      > .nav-link:hover {\n        background-color: $sidebar-light-submenu-hover-bg;\n      }\n    }\n  }\n\n  // Flat style\n  .nav-flat {\n    .nav-item {\n      .nav-treeview {\n        .nav-treeview {\n          border-color: $sidebar-light-submenu-active-bg;\n        }\n\n        > .nav-item {\n          > .nav-link {\n            &,\n            &.active {\n              border-color: $sidebar-light-submenu-active-bg;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n[class*=\"sidebar-dark-\"] {\n  // Sidebar background color\n  background-color: $sidebar-dark-bg;\n\n  // User Panel (resides in the sidebar)\n  .user-panel {\n    a:hover {\n      color: $sidebar-dark-hover-color;\n    }\n\n    .status {\n      background-color: $sidebar-dark-hover-bg;\n      color: $sidebar-dark-color;\n\n      &:hover,\n      &:focus,\n      &:active {\n        background-color: darken($sidebar-dark-hover-bg, 3%);\n        color: $sidebar-dark-hover-color;\n      }\n    }\n\n    .dropdown-menu {\n      @include box-shadow(0 2px 4px rgba(0, 0, 0, .4));\n      border-color: darken($sidebar-dark-hover-bg, 5%);\n    }\n\n    .dropdown-item {\n      color: $body-color;\n    }\n  }\n\n  // Sidebar Menu. First level links\n  .nav-sidebar > .nav-item {\n    // links\n    > .nav-link {\n      // border-left: 3px solid transparent;\n      &:active {\n        color: $sidebar-dark-color;\n      }\n    }\n\n    // Hover and active states\n    &.menu-open > .nav-link,\n    &:hover > .nav-link,\n    > .nav-link:focus  {\n      background-color: $sidebar-dark-hover-bg;\n      color: $sidebar-dark-hover-color;\n    }\n\n    > .nav-link.active {\n      color: $sidebar-dark-hover-color;\n\n      @if $enable-shadows {\n        box-shadow: map-get($elevations, 1);\n      }\n    }\n\n    // First Level Submenu\n    > .nav-treeview {\n      background-color: $sidebar-dark-submenu-bg;\n    }\n  }\n\n  // Section Heading\n  .nav-header {\n    background-color: inherit; //darken($sidebar-dark-bg, 3%);\n    color: lighten($sidebar-dark-color, 5%);\n  }\n\n  // All links within the sidebar menu\n  .sidebar {\n    a {\n      color: $sidebar-dark-color;\n\n      &:hover,\n      &:focus {\n        text-decoration: none;\n      }\n    }\n  }\n\n  // All submenus\n  .nav-treeview {\n    > .nav-item {\n      > .nav-link {\n        color: $sidebar-dark-submenu-color;\n\n        &:hover,\n        &:focus {\n          background-color: $sidebar-dark-submenu-hover-bg;\n          color: $sidebar-dark-submenu-hover-color;\n        }\n      }\n\n      > .nav-link.active {\n        &,\n        &:hover,\n        &:focus {\n          background-color: $sidebar-dark-submenu-active-bg;\n          color: $sidebar-dark-submenu-active-color;\n        }\n      }\n    }\n  }\n\n  // Flat Style\n  .nav-flat {\n    .nav-item {\n      .nav-treeview {\n        .nav-treeview {\n          border-color: $sidebar-dark-submenu-active-bg;\n        }\n\n        > .nav-item {\n          > .nav-link {\n            &,\n            &.active {\n              border-color: $sidebar-dark-submenu-active-bg;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n// Sidebar variants\n@each $name, $color in $theme-colors {\n  .sidebar-dark-#{$name},\n  .sidebar-light-#{$name} {\n    @include sidebar-color($color);\n  }\n}\n\n@each $name, $color in $colors {\n  .sidebar-dark-#{$name},\n  .sidebar-light-#{$name} {\n    @include sidebar-color($color);\n  }\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand),\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand),\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand),\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover,\n.sidebar-mini .main-sidebar.sidebar-focused,\n.sidebar-mini-md .main-sidebar.sidebar-focused,\n.sidebar-mini-xs .main-sidebar.sidebar-focused {\n  .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n    padding-left: 1rem;\n    margin-left: -.5rem;\n  }\n}\n\n// Nav Flat\n.nav-flat {\n  margin: (-$sidebar-padding-x / 2) (-$sidebar-padding-x) 0;\n\n  .nav-item {\n    > .nav-link {\n      border-radius: 0;\n      margin-bottom: 0;\n\n      > .nav-icon {\n        margin-left: .55rem;\n      }\n    }\n  }\n\n  &:not(.nav-child-indent) {\n    .nav-treeview {\n      .nav-item {\n        > .nav-link {\n          > .nav-icon {\n            margin-left: .4rem;\n          }\n        }\n      }\n    }\n  }\n\n  &.nav-child-indent {\n    .nav-treeview {\n      padding-left: 0;\n\n      .nav-icon {\n        margin-left: .85rem;\n      }\n\n      .nav-treeview {\n        border-left: .2rem solid;\n\n        .nav-icon {\n          margin-left: 1.15rem;\n        }\n\n        .nav-treeview {\n          .nav-icon {\n            margin-left: 1.45rem;\n          }\n\n          .nav-treeview {\n            .nav-icon {\n              margin-left: 1.75rem;\n            }\n\n            .nav-treeview {\n              .nav-icon {\n                margin-left: 2.05rem;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .sidebar-collapse &.nav-child-indent {\n    .nav-treeview {\n      .nav-icon {\n        margin-left: .55rem;\n      }\n\n      .nav-link {\n        padding-left: calc(#{$nav-link-padding-x} - .2rem);\n      }\n\n      .nav-treeview {\n        .nav-icon {\n          margin-left: .35rem;\n        }\n\n        .nav-treeview {\n          .nav-icon {\n            margin-left: .15rem;\n          }\n\n          .nav-treeview {\n            .nav-icon {\n              margin-left: -.15rem;\n            }\n\n            .nav-treeview {\n              .nav-icon {\n                margin-left: -.35rem;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover &,\n  .sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover &,\n  .sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover &,\n  .sidebar-mini .main-sidebar.sidebar-focused &,\n  .sidebar-mini-md .main-sidebar.sidebar-focused &,\n  .sidebar-mini-xs .main-sidebar.sidebar-focused & {\n    &.nav-compact.nav-sidebar .nav-treeview {\n      .nav-icon {\n        margin-left: .4rem;\n      }\n    }\n\n    &.nav-sidebar.nav-child-indent .nav-treeview {\n      .nav-icon {\n        margin-left: .85rem;\n      }\n\n      .nav-treeview {\n        .nav-icon {\n          margin-left: 1.15rem;\n        }\n\n        .nav-treeview {\n          .nav-icon {\n            margin-left: 1.45rem;\n          }\n\n          .nav-treeview {\n            .nav-icon {\n              margin-left: 1.75rem;\n            }\n\n            .nav-treeview {\n              .nav-icon {\n                margin-left: 2.05rem;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .nav-icon {\n    @include transition(margin-left $transition-fn $transition-speed);\n  }\n\n  .nav-treeview {\n    .nav-icon {\n      margin-left: -.2rem;\n    }\n  }\n\n  &.nav-sidebar > .nav-item {\n    .nav-treeview,\n    > .nav-treeview {\n      background-color: rgba($white, .05);\n\n      .nav-item {\n        > .nav-link {\n          border-left: .2rem solid;\n        }\n      }\n    }\n  }\n}\n\n.nav-legacy {\n  margin: (-$sidebar-padding-x / 2) (-$sidebar-padding-x) 0;\n\n  &.nav-sidebar .nav-item {\n    > .nav-link {\n      border-radius: 0;\n      margin-bottom: 0;\n\n      > .nav-icon {\n        margin-left: .55rem;\n\n        .text-sm & {\n          margin-left: .75rem;\n        }\n      }\n    }\n  }\n\n  &.nav-sidebar > .nav-item {\n    > .nav-link {\n      &.active {\n        background-color: inherit;\n        border-left: 3px solid transparent;\n        box-shadow: none;\n\n        > .nav-icon {\n          margin-left: calc(.55rem - 3px);\n\n          .text-sm & {\n            margin-left: calc(.75rem - 3px);\n          }\n        }\n      }\n    }\n  }\n\n  .text-sm &.nav-sidebar.nav-flat .nav-treeview {\n    .nav-item {\n      > .nav-link {\n        > .nav-icon {\n          margin-left: calc(.75rem - 3px);\n        }\n      }\n    }\n  }\n\n  .sidebar-mini &,\n  .sidebar-mini-md &,\n  .sidebar-mini-xs & {\n    > .nav-item .nav-link {\n      .nav-icon {\n        @include transition(margin-left $transition-fn $transition-speed);\n        margin-left: .6rem;\n\n      }\n    }\n  }\n\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover &.nav-child-indent,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover &.nav-child-indent,\n  .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini-xs.sidebar-collapse .main-sidebar:hover &.nav-child-indent {\n    .nav-treeview {\n      padding-left: 1rem;\n\n      .nav-treeview {\n        padding-left: 2rem;\n        margin-left: -1rem;\n      }\n    }\n  }\n\n  .sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,\n  .sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,\n  .sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,\n  .sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent {\n    .nav-treeview {\n      padding-left: .5rem;\n\n      .nav-treeview {\n        padding-left: 1rem;\n        margin-left: -.5rem;\n      }\n    }\n  }\n\n  .sidebar-mini.sidebar-collapse &,\n  .sidebar-mini-md.sidebar-collapse &,\n  .sidebar-mini-xs.sidebar-collapse & {\n    > .nav-item > .nav-link {\n      .nav-icon {\n        margin-left: .55rem;\n      }\n\n      &.active {\n        > .nav-icon{\n          margin-left: .36rem;\n        }\n      }\n    }\n\n    &.nav-child-indent {\n      .nav-treeview {\n        .nav-treeview {\n          padding-left: 0;\n          margin-left: 0;\n        }\n      }\n    }\n  }\n\n\n  .sidebar-mini.sidebar-collapse.text-sm &,\n  .sidebar-mini-md.sidebar-collapse.text-sm &,\n  .sidebar-mini-xs.sidebar-collapse.text-sm & {\n    > .nav-item > .nav-link {\n      .nav-icon {\n        margin-left: .75rem;\n      }\n\n      &.active {\n        > .nav-icon{\n          margin-left: calc(.75rem - 3px);\n        }\n      }\n    }\n  }\n\n  [class*=\"sidebar-dark\"] & {\n    &.nav-sidebar > .nav-item {\n      .nav-treeview,\n      > .nav-treeview {\n        background-color: rgba($white, .05);\n      }\n\n      > .nav-link.active {\n        color: $sidebar-dark-active-color;\n      }\n    }\n\n    .nav-treeview > .nav-item > .nav-link {\n      &.active,\n      &:focus,\n      &:hover {\n        background-color: transparent;\n        color: $sidebar-dark-active-color;\n      }\n    }\n  }\n\n  [class*=\"sidebar-light\"] & {\n    &.nav-sidebar > .nav-item {\n      .nav-treeview,\n      > .nav-treeview {\n        background-color: rgba($black, .05);\n      }\n\n      > .nav-link.active {\n        color: $sidebar-light-active-color;\n      }\n    }\n\n    .nav-treeview > .nav-item > .nav-link {\n      &.active,\n      &:focus,\n      &:hover {\n        background-color: transparent;\n        color: $sidebar-light-active-color;\n      }\n    }\n  }\n}\n\n\n.nav-collapse-hide-child {\n  .menu-open > .nav-treeview {\n    max-height: min-content;\n    animation-name: fadeIn;\n    animation-duration: $transition-speed;\n    animation-fill-mode: both;\n  }\n\n  .sidebar-collapse & {\n    .menu-open > .nav-treeview {\n      max-height: 0;\n      animation-name: fadeOut;\n      animation-duration: $transition-speed;\n      animation-fill-mode: both;\n    }\n  }\n\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &,\n  .sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover &,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover &,\n  .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused &,\n  .sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover & {\n    .menu-open > .nav-treeview {\n      max-height: min-content;\n      animation-name: fadeIn;\n      animation-duration: $transition-speed;\n      animation-fill-mode: both;\n    }\n  }\n}\n\n// Nav Compact\n.nav-compact {\n  .nav-link,\n  .nav-header {\n    padding-top: ($nav-link-padding-y / 2);\n    padding-bottom: ($nav-link-padding-y / 2);\n  }\n\n  .nav-header:not(:first-of-type) {\n    padding-top: ($nav-link-padding-y * 1.5);\n    padding-bottom: ($nav-link-padding-y / 2);\n  }\n\n  .nav-link > .right,\n  .nav-link > p > .right {\n    top: .465rem;\n  }\n\n  .text-sm & {\n    .nav-link > .right,\n    .nav-link > p > .right {\n      top: .7rem;\n    }\n  }\n}\n\n// Sidebar Form Control\n[class*=\"sidebar-dark\"] {\n  .form-control-sidebar,\n  .btn-sidebar {\n    background-color: lighten($sidebar-dark-bg, 5%);\n    border: 1px solid lighten($sidebar-dark-bg, 15%);\n    color: lighten(color-yiq(lighten($sidebar-dark-bg, 5%)), 15%);\n  }\n\n  .form-control-sidebar:focus,\n  .btn-sidebar:focus {\n    border: 1px solid lighten($sidebar-dark-bg, 30%);\n  }\n\n  .btn-sidebar:hover {\n    background-color: lighten($sidebar-dark-bg, 7.5%);\n  }\n\n  .btn-sidebar:focus {\n    background-color: lighten($sidebar-dark-bg, 10%);\n  }\n\n  .list-group-item {\n    background-color: lighten($sidebar-dark-bg, 7.5%);\n    border-color: lighten($sidebar-dark-bg, 15%);\n    color: $sidebar-dark-color;\n\n    &:hover {\n      background-color: lighten($sidebar-dark-bg, 10%);\n    }\n\n    &:focus {\n      background-color: lighten($sidebar-dark-bg, 12.5%);\n    }\n\n    .search-path {\n      color: $gray-500;\n    }\n  }\n}\n\n[class*=\"sidebar-light\"] {\n  .form-control-sidebar,\n  .btn-sidebar {\n    background-color: darken($sidebar-light-bg, 5%);\n    border: 1px solid darken($sidebar-light-bg, 15%);\n    color: color-yiq(darken($sidebar-light-bg, 5%));\n  }\n\n  .form-control-sidebar:focus,\n  .btn-sidebar:focus {\n    border: 1px solid darken($sidebar-light-bg, 30%);\n  }\n\n  .btn-sidebar:hover {\n    background-color: darken($sidebar-light-bg, 7.5%);\n  }\n\n  .btn-sidebar:focus {\n    background-color: darken($sidebar-light-bg, 10%);\n  }\n\n  .list-group-item {\n    border-color: darken($sidebar-light-bg, 15%);\n\n    &:hover {\n      background-color: darken($sidebar-light-bg, 7.5%);\n    }\n\n    &:focus {\n      background-color: darken($sidebar-light-bg, 10%);\n    }\n\n    .search-path {\n      color: $gray-600;\n    }\n  }\n}\n\n// Sidebar inline input-group fix\n.sidebar .form-inline .input-group {\n  width: 100%;\n  flex-wrap: nowrap;\n}\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n// Sidebar Collapse on Layout Boxed\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) {\n  &.sidebar-collapse .main-sidebar {\n    margin-left: 0;\n  }\n  .content-wrapper,\n  .main-header,\n  .main-footer {\n    z-index: 9999;\n    position: relative;\n  }\n}\n\n// Sidebar Search\n.sidebar-collapse {\n  .form-control-sidebar,\n  .form-control-sidebar ~ .input-group-append,\n  .sidebar-search-results {\n    display: none;\n  }\n}\n\n[data-widget=\"sidebar-search\"] {\n  input[type=\"search\"] {\n    &::-ms-clear,\n    &::-ms-reveal {\n      display: none;\n      width: 0;\n      height: 0;\n    }\n\n    &::-webkit-search-cancel-button,\n    &::-webkit-search-decoration,\n    &::-webkit-search-results-button,\n    &::-webkit-search-results-decoration {\n      display: none;\n    }\n  }\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n\n  .sidebar-search-open & {\n    display: inline-block;\n  }\n\n  .search-title {\n    margin-bottom: -.1rem;\n  }\n\n  .list-group {\n    position: absolute;\n    width: 100%;\n    z-index: $zindex-main-sidebar + 1;\n\n    > .list-group-item {\n      padding: $input-padding-y $input-padding-x;\n\n      &:-moz-focusring {\n        margin-top: 0;\n        border-left: 1px solid transparent;\n        border-top: 0;\n        border-bottom: 1px solid transparent;\n      }\n\n      &:first-child {\n        margin-top: 0;\n        border-top: 0;\n        @include border-top-radius(0);\n      }\n    }\n  }\n}\n\n.sidebar-search-results .search-path {\n  font-size: $small-font-size;\n}\n\n.sidebar-search-open {\n  .btn,\n  .form-control {\n    @include border-bottom-radius(0);\n  }\n}\n\n// Custom Area\n.sidebar-custom {\n  [class*=\"sidebar-dark\"] & {\n    border-top: 1px solid lighten($dark, 12%);\n  }\n\n  [class*=\"sidebar-light\"] & {\n    border-top: 1px solid $gray-300;\n  }\n}\n\n.layout-fixed {\n  &.sidebar-collapse {\n    .hide-on-collapse {\n      display: none;\n    }\n  }\n\n  &.sidebar-collapse:hover {\n    .hide-on-collapse {\n      display: block;\n    }\n  }\n\n  .main-sidebar-custom {\n    .sidebar {\n      height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height}) + #{$main-header-bottom-border-width}));\n    }\n\n    .sidebar-custom {\n      height: $sidebar-custom-height;\n      padding: $sidebar-custom-padding-x $sidebar-custom-padding-y;\n    }\n  }\n\n  .main-sidebar-custom-lg {\n    .sidebar {\n      height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height-lg}) + #{$main-header-bottom-border-width}));\n    }\n\n    .sidebar-custom {\n      height: $sidebar-custom-height-lg;\n    }\n  }\n\n  .main-sidebar-custom-xl {\n    .sidebar {\n      height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height-xl}) + #{$main-header-bottom-border-width}));\n    }\n\n    .sidebar-custom {\n      height: $sidebar-custom-height-xl;\n    }\n  }\n\n  .main-sidebar-custom,\n  .main-sidebar-custom-lg,\n  .main-sidebar-custom-xl {\n    .pos-right {\n      position: absolute;\n      right: .5rem;\n    }\n  }\n}\n\n.dark-mode {\n  @each $name, $color in $theme-colors-alt {\n    .sidebar-dark-#{$name},\n    .sidebar-light-#{$name} {\n      @include sidebar-color($color);\n    }\n  }\n\n  @each $name, $color in $colors-alt {\n    .sidebar-dark-#{$name},\n    .sidebar-light-#{$name} {\n      @include sidebar-color($color);\n    }\n  }\n\n  [class*=\"sidebar-light-\"] {\n    .sidebar {\n      a {\n        color: $sidebar-light-color;\n\n        &:hover {\n          text-decoration: none;\n        }\n      }\n    }\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_miscellaneous.scss",
    "content": "//\n// Misc: Miscellaneous\n//\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n// Description Blocks\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n\n  &.margin-bottom {\n    margin-bottom: 25px;\n  }\n\n  > .description-header {\n    font-size: 16px;\n    font-weight: 600;\n    margin: 0;\n    padding: 0;\n  }\n\n  > .description-text {\n    text-transform: uppercase;\n  }\n\n  // Description Block Extension\n  .description-icon {\n    font-size: 16px;\n  }\n}\n\n// List utility classes\n.list-group-unbordered {\n  > .list-group-item {\n    border-left: 0;\n    border-radius: 0;\n    border-right: 0;\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n\n.list-header {\n  color: $gray-600;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: $card-border-color;\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link {\n  > a {\n    color: $gray-600;\n    padding: 4px;\n\n    &:hover {\n      color: $gray-900;\n    }\n  }\n}\n\n// User block\n.user-block {\n  float: left;\n\n  img {\n    float: left;\n    height: 40px;\n    width: 40px;\n  }\n\n  .username,\n  .description,\n  .comment {\n    display: block;\n    margin-left: 50px;\n  }\n\n  .username {\n    font-size: 16px;\n    font-weight: 600;\n    margin-top: -1px;\n  }\n\n  .description {\n    color: $gray-600;\n    font-size: 13px;\n    margin-top: -3px;\n  }\n\n  &.user-block-sm {\n    img {\n      width: $img-size-sm;\n      height: $img-size-sm;\n    }\n\n    .username,\n    .description,\n    .comment {\n      margin-left: 40px;\n    }\n\n    .username {\n      font-size: 14px;\n    }\n  }\n}\n\n// Image sizes\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: $img-size-sm;\n  width: $img-size-sm;\n\n  + .img-push {\n    margin-left: $img-size-sm + $img-size-push;\n  }\n}\n\n.img-md {\n  width: $img-size-md;\n  height: $img-size-md;\n\n  + .img-push {\n    margin-left: $img-size-md + $img-size-push;\n  }\n}\n\n.img-lg {\n  width: $img-size-lg;\n  height: $img-size-lg;\n\n  + .img-push {\n    margin-left: $img-size-lg + $img-size-push;\n  }\n}\n\n// Image bordered\n.img-bordered {\n  border: 3px solid $gray-500;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid $gray-500;\n  padding: 2px;\n}\n\n// Rounded and Circle Images\n.img-rounded {\n  @include border-radius($border-radius);\n}\n\n.img-circle {\n  @include border-radius(50%);\n}\n\n// Image sizes\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n// Block sizes\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n// General attachemnt block\n.attachment-block {\n  background-color: $gray-100;\n  border: 1px solid $card-border-color;\n  margin-bottom: 10px;\n  padding: 5px;\n\n  .attachment-img {\n    float: left;\n    height: auto;\n    max-height: 100px;\n    max-width: 100px;\n  }\n\n  .attachment-pushed {\n    margin-left: 110px;\n  }\n\n  .attachment-heading {\n    margin: 0;\n  }\n\n  .attachment-text {\n    color: $gray-700;\n  }\n}\n\n// Overlays for Card, InfoBox & SmallBox\n.card,\n.overlay-wrapper,\n.info-box,\n.small-box {\n  // Box overlay for LOADING STATE effect\n  > .overlay,\n  > .loading-img {\n    height: 100%;\n    left: 0;\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  .overlay {\n    @include border-radius($border-radius);\n    align-items: center;\n    background-color: rgba($white, .7);\n    display: flex;\n    justify-content: center;\n    z-index: 50;\n\n    > .fa,\n    > .fas,\n    > .far,\n    > .fab,\n    > .fal,\n    > .fad,\n    > .svg-inline--fa,\n    > .ion {\n      color: $gray-800;\n    }\n\n    &.dark {\n      background-color: rgba($black, .5);\n\n      > .fa,\n      > .fas,\n      > .far,\n      > .fab,\n      > .fal,\n      > .fad,\n      > .svg-inline--fa,\n      > .ion {\n        color: $gray-400;\n      }\n    }\n  }\n}\n\n.tab-pane {\n  // Box overlay for LOADING STATE effect on Tab Panels\n  > .overlay-wrapper {\n    position: relative;\n    > .overlay {\n      border-top-left-radius: 0;\n      border-top-right-radius: 0;\n      flex-direction: column;\n      margin-top: -$card-spacer-x;\n      margin-left: -$card-spacer-x;\n      height: calc(100% + 2 * #{$card-spacer-x});\n      width: calc(100% + 2 * #{$card-spacer-x});\n\n      &.dark {\n        color: $white;\n      }\n    }\n  }\n}\n\n// Ribbon\n.ribbon-wrapper {\n  height: $ribbon-wrapper-size;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: $ribbon-wrapper-size;\n  z-index: 10;\n\n  &.ribbon-lg {\n    height: $ribbon-lg-wrapper-size;\n    width: $ribbon-lg-wrapper-size;\n\n    .ribbon {\n      right: $ribbon-lg-right;\n      top: $ribbon-lg-top;\n      width: $ribbon-lg-width;\n    }\n  }\n\n  &.ribbon-xl {\n    height: $ribbon-xl-wrapper-size;\n    width: $ribbon-xl-wrapper-size;\n\n    .ribbon {\n      right: $ribbon-xl-right;\n      top: $ribbon-xl-top;\n      width: $ribbon-xl-width;\n    }\n  }\n\n  .ribbon {\n    box-shadow: 0 0 $ribbon-border-size rgba($black, .3);\n    font-size: $ribbon-font-size;\n    line-height: $ribbon-line-height;\n    padding: $ribbon-padding;\n    position: relative;\n    right: $ribbon-right;\n    text-align: center;\n    text-shadow: 0 -1px 0 rgba($black, .4);\n    text-transform: uppercase;\n    top: $ribbon-top;\n    transform: rotate(45deg);\n    width: $ribbon-width;\n\n    &::before,\n    &::after {\n      border-left: $ribbon-border-size solid transparent;\n      border-right: $ribbon-border-size solid transparent;\n      border-top: $ribbon-border-size solid #9e9e9e;\n      bottom: -$ribbon-border-size;\n      content: \"\";\n      position: absolute;\n    }\n\n    &::before {\n      left: 0;\n    }\n\n    &::after {\n      right: 0;\n    }\n  }\n}\n\n// Scroll To Top\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: $zindex-control-sidebar + 1;\n\n  &:focus {\n    box-shadow: none;\n  }\n}\n\n// Pre\npre {\n  padding: .75rem;\n}\n\n// Blockquotes styles\nblockquote {\n  background-color: $white;\n  border-left: .7rem solid $primary;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n\n  .box & {\n    background-color: $gray-200;\n  }\n\n  p:last-child {\n    margin-bottom: 0;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    color: $primary;\n    font-size: 1.25rem;\n    font-weight: 600;\n  }\n\n  @each $color, $value in $theme-colors {\n    &.quote-#{$color} {\n      border-color: $value;\n\n      h1,\n      h2,\n      h3,\n      h4,\n      h5,\n      h6 {\n        color: $value;\n      }\n    }\n  }\n\n  @each $color, $value in $colors {\n    &.quote-#{$color} {\n      border-color: $value;\n\n      h1,\n      h2,\n      h3,\n      h4,\n      h5,\n      h6 {\n        color: $value;\n      }\n    }\n  }\n}\n\n\n// Tab Custom Content\n\n.tab-custom-content {\n  border-top: $nav-tabs-border-width solid $nav-tabs-border-color;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n\n// Badge BTN Style\n.badge-btn {\n  border-radius: $button-border-radius-xs;\n  font-size: $button-font-size-xs;\n  font-weight: 400;\n  padding: $button-padding-y-xs * 2 $button-padding-x-xs * 2;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode {\n  a:not(.btn):hover {\n    color: lighten($link-color, 10%);\n  }\n  .attachment-block {\n    background-color: lighten($dark, 3.75%);\n\n    .attachment-text {\n      color: $gray-400;\n    }\n  }\n  blockquote {\n    background-color: lighten($dark, 5%);\n\n    @each $color, $value in $theme-colors {\n      &.quote-#{$color} {\n        border-color: $value;\n\n        h1,\n        h2,\n        h3,\n        h4,\n        h5,\n        h6 {\n          color: $value;\n        }\n      }\n    }\n\n    @each $color, $value in $colors {\n      &.quote-#{$color} {\n        border-color: $value;\n\n        h1,\n        h2,\n        h3,\n        h4,\n        h5,\n        h6 {\n          color: $value;\n        }\n      }\n    }\n  }\n  .close,\n  .mailbox-attachment-close {\n    color: $gray-500;\n    text-shadow: 0 1px 0 $gray-700;\n  }\n  .tab-custom-content {\n    border-color: $gray-600;\n  }\n  .list-group-item {\n    background-color: $dark;\n    border-color: $gray-600;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_mixins.scss",
    "content": "//\n// General: Mixins\n//\n\n@import \"mixins/animations\";\n@import \"mixins/cards\";\n@import \"mixins/sidebar\";\n@import \"mixins/navbar\";\n@import \"mixins/accent\";\n@import \"mixins/custom-forms\";\n@import \"mixins/backgrounds\";\n@import \"mixins/direct-chat\";\n@import \"mixins/toasts\";\n@import \"mixins/touch-support\";\n@import \"mixins/miscellaneous\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_modals.scss",
    "content": "//\n// Component: Modals\n//\n\n// Overlay\n.modal-dialog {\n  .overlay {\n    display: flex;\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    margin: -$modal-content-border-width;\n    z-index: ($zindex-modal + 2);\n    justify-content: center;\n    align-items: center;\n    background-color: rgba($black, .7);\n    color: darken($gray-600, 2.5%);\n    @include border-radius($modal-content-border-radius);\n  }\n}\n\n\n// BG Color Variations Fixes\n.modal-content {\n  &.bg-warning {\n    .modal-header,\n    .modal-footer {\n      border-color: $gray-800;\n    }\n  }\n\n  &.bg-primary,\n  &.bg-secondary,\n  &.bg-info,\n  &.bg-danger,\n  &.bg-success, {\n    .close {\n      color: $white;\n      text-shadow: 0 1px 0 $black;\n    }\n  }\n}\n\n.dark-mode {\n  .modal-header,\n  .modal-footer {\n    border-color: $gray-600;\n  }\n  .modal-content {\n    background-color: $dark;\n\n    &.bg-warning {\n      .modal-header,\n      .modal-footer {\n        border-color: $gray-600;\n      }\n      .close {\n        color: $dark !important;\n        text-shadow: 0 1px 0 $gray-700 !important;\n      }\n    }\n\n    &.bg-primary,\n    &.bg-secondary,\n    &.bg-info,\n    &.bg-danger,\n    &.bg-success {\n      .modal-header,\n      .modal-footer {\n        border-color: $white;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_navs.scss",
    "content": "//\n// Component: Nav\n//\n\n.nav-pills {\n  .nav-link {\n    color: $gray-600;\n\n    &:not(.active):hover {\n      color: theme-color(\"primary\");\n    }\n  }\n\n  .nav-item {\n    &.dropdown.show {\n      .nav-link:hover {\n        color: $dropdown-link-active-color;\n      }\n    }\n  }\n}\n\n// Vertical Tabs\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n  .nav-link {\n    border-bottom-left-radius: $nav-tabs-border-radius;\n    border-top-right-radius: 0;\n    margin-right: -$nav-tabs-border-width;\n\n    @include hover-focus () {\n      border-color: $gray-200 transparent $gray-200 $gray-200;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    border-color: $gray-300 transparent $gray-300 $gray-300;\n  }\n\n  &.nav-tabs-right {\n    border-left: $nav-tabs-border-width solid $nav-tabs-border-color;\n    border-right: 0;\n\n    .nav-link {\n      border-bottom-left-radius: 0;\n      border-bottom-right-radius: $nav-tabs-border-radius;\n      border-top-left-radius: 0;\n      border-top-right-radius: $nav-tabs-border-radius;\n      margin-left: -$nav-tabs-border-width;\n\n      @include hover-focus () {\n        border-color: $gray-200 $gray-200 $gray-200 transparent;\n      }\n    }\n\n    .nav-link.active,\n    .nav-item.show .nav-link {\n      border-color: $gray-300 $gray-300 $gray-300 transparent;\n    }\n  }\n}\n\n.navbar-no-expand {\n  flex-direction: row;\n\n  .nav-link {\n    padding-left: $navbar-nav-link-padding-x;\n    padding-right: $navbar-nav-link-padding-x;\n  }\n\n  .dropdown-menu {\n    position: absolute;\n  }\n}\n\n// Color variants\n@each $color, $value in $theme-colors {\n  @if $color == dark or $color == light {\n    .navbar-#{$color} {\n      background-color: $value;\n      @if $color == dark {\n        border-color: lighten($dark, 10%);\n      }\n    }\n  }\n}\n\n@each $color, $value in $theme-colors {\n  @if $color != dark and $color != light {\n    @include navbar-variant($color, $value);\n  }\n}\n\n@each $color, $value in $colors {\n  @include navbar-variant($color, $value);\n}\n\n.dark-mode {\n  .nav-pills .nav-link {\n    color: $gray-400;\n  }\n\n  .nav-tabs {\n    border-color: lighten($dark, 15%);\n\n    .nav-link:focus,\n    .nav-link:hover {\n      border-color: lighten($dark, 15%);\n    }\n\n    .nav-item.show .nav-link,\n    .nav-link.active {\n      background-color: $dark;\n      border-color: lighten($dark, 15%) lighten($dark, 15%) transparent lighten($dark, 15%);\n      color: $white;\n    }\n\n    &.flex-column {\n      .nav-item.show .nav-link,\n      .nav-link {\n        &.active,\n        &:focus,\n        &:hover {\n          border-color: lighten($dark, 15%) transparent lighten($dark, 15%) lighten($dark, 15%);\n        }\n        &:focus,\n        &:hover {\n          background-color: lighten($dark, 5%);\n        }\n      }\n      &.nav-tabs-right {\n        border-color: lighten($dark, 15%);\n        .nav-link {\n          &.active,\n          &:focus,\n          &:hover {\n            border-color: lighten($dark, 15%) lighten($dark, 15%) lighten($dark, 15%) transparent;\n          }\n        }\n      }\n    }\n  }\n\n  // Color variants\n  @each $color, $value in $theme-colors-alt {\n    @if $color == dark or $color == light {\n      .navbar-#{$color} {\n        background-color: $value;\n        @if $color == dark {\n          border-color: lighten($dark, 10%);\n        }\n      }\n    }\n  }\n\n  @each $color, $value in $theme-colors-alt {\n    @if $color != dark and $color != light {\n      @include navbar-variant($color, $value);\n    }\n  }\n\n  @each $color, $value in $colors-alt {\n    @include navbar-variant($color, $value);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_pagination.scss",
    "content": "//\n// Component: Pagination\n//\n\n.pagination-month {\n  .page-item {\n    justify-self: stretch;\n\n    .page-link {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex-direction: column;\n      box-shadow: none;\n    }\n    &:first-child,\n    &:last-child {\n      .page-link {\n        height: 100%;\n        font-size: $font-size-lg;\n      }\n    }\n    .page-month {\n      margin-bottom: 0;\n      font-size: $font-size-lg;\n      font-weight: $font-weight-bold;\n    }\n    .page-year {\n      margin-bottom: 0;\n    }\n  }\n\n  &.pagination-lg {\n    .page-month {\n      font-size: ($font-size-lg * 1.25);\n    }\n  }\n  &.pagination-sm {\n    .page-month {\n      font-size: ($font-size-base);\n    }\n  }\n}\n\n.dark-mode {\n  .page-item {\n    &.disabled a,\n    &.disabled .page-link {\n      background-color: lighten($dark, 2.5%) !important;\n      border-color: $gray-600 !important;\n      color: $gray-600;\n    }\n\n    .page-link {\n      color: $primary-alt;\n    }\n\n    &.active {\n      .page-link {\n        background-color: $primary-alt;\n        color: $white;\n\n        &:hover,\n        &:focus {\n          color: $gray-400 !important;\n        }\n      }\n    }\n    &:not(.active) {\n      .page-link {\n        background-color: $dark;\n        border-color: $gray-600;\n\n        &:hover,\n        &:focus {\n          color: lighten($primary-alt, 5%);\n          background-color: lighten($dark, 5%);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_preloader.scss",
    "content": "//\n// Core: Preloader\n//\n\n.preloader {\n  display: flex;\n  background-color: $main-bg;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: $zindex-preloader;\n}\n\n.dark-mode {\n  .preloader {\n    background-color: $dark-main-bg;\n    color: $white;\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_print.scss",
    "content": "//\n// Misc: Print\n//\n\n@media print {\n  //Add to elements that you do not want to show when printing\n  .no-print {\n    display: none !important;\n  }\n\n  //Elements that we want to hide when printing\n  .main-sidebar,\n  .main-header,\n  .content-header {\n    @extend .no-print;\n  }\n\n  //This is the only element that should appear, so let's remove the margins\n  .content-wrapper,\n  .main-footer {\n    @include translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n\n  //Invoice printing\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n\n  //Make sure table content displays properly\n  .table-responsive {\n    overflow: auto;\n\n    > .table tr th,\n    > .table tr td {\n      white-space: normal !important;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_products.scss",
    "content": "//\n// Component: Products\n//\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n\n  > .item {\n    @include clearfix ();\n\n    @if $enable-rounded {\n      @include border-radius($border-radius);\n    }\n\n    background-color: $white;\n    padding: 10px 0;\n\n  }\n\n  .product-img {\n    float: left;\n\n    img {\n      height: 50px;\n      width: 50px;\n    }\n  }\n\n  .product-info {\n    margin-left: 60px;\n  }\n\n  .product-title {\n    font-weight: 600;\n  }\n\n  .product-description {\n    color: $gray-600;\n    display: block;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.product-list-in-card > .item {\n  @include border-radius(0);\n  border-bottom: 1px solid $card-border-color;\n\n  &:last-of-type {\n    border-bottom-width: 0;\n  }\n}\n\n\n.dark-mode {\n  .products-list > .item {\n    background-color: $dark;\n    color: $white;\n    border-bottom-color: $gray-600;\n  }\n\n  .product-description {\n    color: $gray-400;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_progress-bars.scss",
    "content": "//\n// Component: Progress Bar\n//\n\n//General CSS\n.progress {\n  @include box-shadow(none);\n  @include border-radius($progress-bar-border-radius);\n\n  // Vertical bars\n  &.vertical {\n    display: inline-block;\n    height: 200px;\n    margin-right: 10px;\n    position: relative;\n    width: 30px;\n\n    > .progress-bar {\n      bottom: 0;\n      position: absolute;\n      width: 100%;\n    }\n\n    //Sizes\n    &.sm,\n    &.progress-sm {\n      width: 20px;\n    }\n\n    &.xs,\n    &.progress-xs {\n      width: 10px;\n    }\n\n    &.xxs,\n    &.progress-xxs {\n      width: 3px;\n    }\n  }\n}\n\n.progress-group {\n  margin-bottom: map-get($spacers, 2);\n}\n\n// size variation\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n// Remove margins from progress bars when put in a table\n.table {\n  tr > td {\n    .progress {\n      margin: 0;\n    }\n  }\n}\n\n.dark-mode {\n  .progress {\n    background: lighten($dark, 7.5%);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_root.scss",
    "content": ".dark-mode {\n  :root {\n    // Custom variable values only support SassScript inside `#{}`.\n    @each $color, $value in $colors-alt {\n      --#{$color}: #{$value};\n    }\n\n    @each $color, $value in $theme-colors-alt {\n      --#{$color}: #{$value};\n    }\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_sidebar-mini.scss",
    "content": "//\n// Component: Sidebar Mini\n//\n\n// Logo style\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n\n  &.brand-image-xs {\n    left: 18px;\n    top: 12px;\n  }\n\n  &.brand-image-xl {\n    left: 12px;\n    top: 6px;\n  }\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n\n  &.brand-image-xl {\n    left: 16px;\n    top: 8px;\n  }\n}\n\n.brand-link {\n  &.logo-switch {\n    &::before {\n      content: \"\\00a0\";\n    }\n  }\n}\n\n// Add sidebar-mini class to the body tag to activate this feature\n.sidebar-mini {\n  @include media-breakpoint-up(lg) {\n    @include sidebar-mini-breakpoint ();\n  }\n}\n@include media-breakpoint-down(md) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-md {\n  @include media-breakpoint-up(md) {\n    @include sidebar-mini-breakpoint ();\n  }\n}\n@include media-breakpoint-down(sm) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs {\n  @include media-breakpoint-up(xs) {\n    @include sidebar-mini-breakpoint ();\n  }\n}\n\n.sidebar-mini,\n.sidebar-mini-md,\n.sidebar-mini-xs {\n  .main-sidebar {\n    .nav-child-indent .nav-treeview {\n      .nav-link {\n        width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1rem);\n      }\n\n      .nav-treeview {\n        .nav-link {\n          width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2rem);\n        }\n\n        .nav-treeview {\n          .nav-link {\n            width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 3rem);\n          }\n\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 4rem);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 5rem);\n              }\n            }\n          }\n        }\n      }\n    }\n    .nav-legacy {\n      .nav-link {\n        width: $sidebar-width;\n      }\n      &.nav-child-indent {\n        .nav-treeview {\n          .nav-link {\n            width: calc(#{$sidebar-width} - 1rem);\n          }\n\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - 1rem - 1rem);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - 1rem - 2rem);\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - 1rem - 3rem);\n                }\n\n                .nav-treeview {\n                  .nav-link {\n                    width: calc(#{$sidebar-width} - 1rem - 4rem);\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    .nav-flat {\n      .nav-link {\n        width: $sidebar-width;\n      }\n      &.nav-child-indent {\n        .nav-treeview {\n          .nav-link {\n            width: calc(#{$sidebar-width});\n          }\n\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - .2rem);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - .2rem * 2);\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - .2rem * 3);\n                }\n\n                .nav-treeview {\n                  .nav-link {\n                    width: calc(#{$sidebar-width} - .2rem * 4);\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    .nav-child-indent.nav-compact .nav-treeview {\n      .nav-link {\n        width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - .5rem);\n      }\n\n      .nav-treeview {\n        .nav-link {\n          width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1rem);\n        }\n\n        .nav-treeview {\n          .nav-link {\n            width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1.5rem);\n          }\n\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2rem);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2.5rem);\n              }\n            }\n          }\n        }\n      }\n    }\n    .nav-child-indent.nav-legacy.nav-compact {\n      .nav-link {\n        width: $sidebar-width;\n      }\n      .nav-treeview {\n        .nav-link {\n          width: calc(#{$sidebar-width} - .5rem);\n        }\n\n        .nav-treeview {\n          .nav-link {\n            width: calc(#{$sidebar-width} - .5rem * 2);\n          }\n\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - .5rem * 3);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - .5rem * 4);\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - .5rem * 5);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    .nav-link {\n      width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);\n      @include transition(width $transition-fn $transition-speed);\n    }\n  }\n}\n\n.sidebar-collapse {\n  &.sidebar-mini,\n  &.sidebar-mini-md,\n  &.sidebar-mini-xs {\n    .main-sidebar {\n      .nav-sidebar {\n        .nav-link {\n          width: $sidebar-mini-width - $sidebar-padding-x * 2;\n        }\n\n        &.nav-flat,\n        &.nav-legacy {\n          .nav-link {\n            width: $sidebar-mini-width;\n          }\n        }\n        &.nav-child-indent.nav-compact {\n          .nav-treeview {\n            padding-left: 0 !important;\n            margin-left: 0 !important;\n          }\n\n          .nav-link {\n            width: calc(#{$sidebar-mini-width} - #{$sidebar-padding-x} * 2);\n          }\n        }\n      }\n\n      &.sidebar-focused,\n      &:hover {\n        .nav-link {\n          width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);\n        }\n        .nav-header {\n          display: inline-block;\n        }\n\n        .nav-child-indent {\n          .nav-link {\n            width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);\n          }\n        }\n        .nav-legacy {\n          .nav-link {\n            width: $sidebar-width;\n          }\n          &.nav-child-indent {\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - 1rem);\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - 1rem - 1rem);\n                }\n\n                .nav-treeview {\n                  .nav-link {\n                    width: calc(#{$sidebar-width} - 1rem - 2rem);\n                  }\n\n                  .nav-treeview {\n                    .nav-link {\n                      width: calc(#{$sidebar-width} - 1rem - 3rem);\n                    }\n\n                    .nav-treeview {\n                      .nav-link {\n                        width: calc(#{$sidebar-width} - 1rem - 4rem);\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        .nav-flat {\n          .nav-link {\n            width: $sidebar-width;\n          }\n          &.nav-child-indent {\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width});\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - .2rem);\n                }\n\n                .nav-treeview {\n                  .nav-link {\n                    width: calc(#{$sidebar-width} - .2rem * 2);\n                  }\n\n                  .nav-treeview {\n                    .nav-link {\n                      width: calc(#{$sidebar-width} - .2rem * 3);\n                    }\n\n                    .nav-treeview {\n                      .nav-link {\n                        width: calc(#{$sidebar-width} - .2rem * 4);\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        .nav-child-indent.nav-compact {\n          .nav-link {\n            width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);\n          }\n        }\n        .nav-child-indent.nav-legacy.nav-compact {\n          .nav-link {\n            width: $sidebar-width;\n          }\n          .nav-treeview {\n            .nav-link {\n              width: calc(#{$sidebar-width} - .5rem);\n            }\n\n            .nav-treeview {\n              .nav-link {\n                width: calc(#{$sidebar-width} - .5rem * 2);\n              }\n\n              .nav-treeview {\n                .nav-link {\n                  width: calc(#{$sidebar-width} - .5rem * 3);\n                }\n\n                .nav-treeview {\n                  .nav-link {\n                    width: calc(#{$sidebar-width} - .5rem * 4);\n                  }\n\n                  .nav-treeview {\n                    .nav-link {\n                      width: calc(#{$sidebar-width} - .5rem * 5);\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        .sidebar {\n          @include scrollbar-width-thin();\n        }\n      }\n\n      .sidebar {\n        @include scrollbar-width-none();\n      }\n    }\n\n    .sidebar-no-expand.main-sidebar.sidebar-focused,\n    .sidebar-no-expand.main-sidebar:hover {\n      width: $sidebar-mini-width;\n\n      .nav-header {\n        display: none;\n      }\n\n      .brand-link {\n        width: $sidebar-mini-width !important;\n      }\n\n      .user-panel .image {\n        float: none !important;\n      }\n\n      .logo-xs {\n        animation-name: fadeIn;\n        animation-duration: $transition-speed;\n        animation-fill-mode: both;\n        visibility: visible;\n      }\n\n      .logo-xl {\n        animation-name: fadeOut;\n        animation-duration: $transition-speed;\n        animation-fill-mode: both;\n        visibility: hidden;\n      }\n\n      .nav-sidebar.nav-child-indent .nav-treeview {\n        padding-left: 0;\n      }\n\n      .brand-text,\n      .user-panel > .info,\n      .nav-sidebar .nav-link p {\n        margin-left: -10px;\n        animation-name: fadeOut;\n        animation-duration: $transition-speed;\n        animation-fill-mode: both;\n        visibility: hidden;\n        width: 0;\n      }\n\n      .nav-sidebar > .nav-item .nav-icon {\n        margin-right: 0;\n      }\n    }\n  }\n}\n\n.nav-sidebar {\n  position: relative;\n\n  &:hover {\n    overflow: visible;\n  }\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n\n  > .float-right {\n    margin-top: -7px;\n    position: absolute;\n    right: 10px;\n    top: 50%;\n  }\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  @include transition(margin-left $transition-speed linear, opacity $transition-speed ease, visibility $transition-speed ease);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_small-box.scss",
    "content": "//\n// Component: Small Box\n//\n\n.small-box {\n  @include border-radius($border-radius);\n  @include box-shadow($card-shadow);\n\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n\n  // content wrapper\n  > .inner {\n    padding: 10px;\n  }\n\n  > .small-box-footer {\n    background-color: rgba($black, .1);\n    color: rgba($white, .8);\n    display: block;\n    padding: 3px 0;\n    position: relative;\n    text-align: center;\n    text-decoration: none;\n    z-index: 10;\n\n    &:hover {\n      background-color: rgba($black, .15);\n      color: $white;\n    }\n  }\n\n  h3 {\n    @include font-size(2.2rem);\n    font-weight: 700;\n    margin: 0 0 10px;\n    padding: 0;\n    white-space: nowrap;\n  }\n\n  @include media-breakpoint-up(lg) {\n    .col-xl-2 &,\n    .col-lg-2 &,\n    .col-md-2 & {\n      h3 {\n        @include font-size(1.6rem);\n      }\n    }\n\n    .col-xl-3 &,\n    .col-lg-3 &,\n    .col-md-3 & {\n      h3 {\n        @include font-size(1.6rem);\n      }\n    }\n  }\n\n  @include media-breakpoint-up(xl) {\n    .col-xl-2 &,\n    .col-lg-2 &,\n    .col-md-2 & {\n      h3 {\n        @include font-size(2.2rem);\n      }\n    }\n\n    .col-xl-3 &,\n    .col-lg-3 &,\n    .col-md-3 & {\n      h3 {\n        @include font-size(2.2rem);\n      }\n    }\n  }\n\n  p {\n    font-size: 1rem;\n\n    > small {\n      color: $gray-100;\n      display: block;\n      font-size: .9rem;\n      margin-top: 5px;\n    }\n  }\n\n  h3,\n  p {\n    z-index: 5;\n  }\n\n  // the icon\n  .icon {\n    color: rgba($black, .15);\n    z-index: 0;\n\n    > i {\n      font-size: 90px;\n      position: absolute;\n      right: 15px;\n      top: 15px;\n      transition: transform $transition-speed linear;\n\n      &.fa,\n      &.fas,\n      &.far,\n      &.fab,\n      &.fal,\n      &.fad,\n      &.ion {\n        font-size: 70px;\n        top: 20px;\n      }\n    }\n\n    svg {\n      font-size: 70px;\n      position: absolute;\n      right: 15px;\n      top: 15px;\n      transition: transform $transition-speed linear;\n    }\n  }\n\n  // Small box hover state\n  &:hover {\n    text-decoration: none;\n\n    // Animate icons on small box hover\n    .icon {\n      > i {\n        &,\n        &.fa,\n        &.fas,\n        &.far,\n        &.fab,\n        &.fal,\n        &.fad,\n        &.ion {\n          transform: scale(1.1);\n        }\n      }\n      > svg {\n        transform: scale(1.1);\n      }\n    }\n  }\n}\n\n@include media-breakpoint-down(sm) {\n  // No need for icons on very small devices\n  .small-box {\n    text-align: center;\n\n    .icon {\n      display: none;\n    }\n\n    p {\n      font-size: 12px;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_social-widgets.scss",
    "content": "//\n// Component: Social Widgets\n//\n\n//General widget style\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n//User Widget Style 1\n.widget-user {\n\n  //User name container\n  .widget-user-header {\n    @if $enable-rounded {\n      @include border-top-radius($border-radius);\n    }\n\n    height: 135px;\n    padding: 1rem;\n    text-align: center;\n  }\n\n  //User name\n  .widget-user-username {\n    font-size: 25px;\n    font-weight: 300;\n    margin-bottom: 0;\n    margin-top: 0;\n    text-shadow: 0 1px 1px rgba($black, .2);\n  }\n\n  //User single line description\n  .widget-user-desc {\n    margin-top: 0;\n  }\n\n  //User image container\n  .widget-user-image {\n    left: 50%;\n    margin-left: -45px;\n    position: absolute;\n    top: 80px;\n\n    > img {\n      border: 3px solid $white;\n      height: auto;\n      width: 90px;\n    }\n  }\n\n  .card-footer {\n    padding-top: 50px;\n  }\n}\n\n//User Widget Style 2\n.widget-user-2 {\n\n  //User name container\n  .widget-user-header {\n    @include border-top-radius($border-radius);\n    padding: 1rem;\n  }\n\n  //User name\n  .widget-user-username {\n    font-size: 25px;\n    font-weight: 300;\n    margin-bottom: 5px;\n    margin-top: 5px;\n  }\n\n  //User single line description\n  .widget-user-desc {\n    margin-top: 0;\n  }\n\n  .widget-user-username,\n  .widget-user-desc {\n    margin-left: 75px;\n  }\n\n  //User image container\n  .widget-user-image {\n    > img {\n      float: left;\n      height: auto;\n      width: 65px;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_table.scss",
    "content": "//\n// Component: Table\n//\n\n.table {\n  &:not(.table-dark) {\n    color: inherit;\n  }\n\n  // fixed table head\n  &.table-head-fixed {\n    thead tr:nth-child(1) th {\n      background-color: $white;\n      border-bottom: 0;\n      box-shadow: inset 0 1px 0 $table-border-color, inset 0 -1px 0 $table-border-color;\n      position: sticky;\n      top: 0;\n      z-index: 10;\n    }\n\n    &.table-dark {\n      thead tr {\n        &:nth-child(1) th {\n          background-color: $table-dark-bg;\n          box-shadow: inset 0 1px 0 $table-dark-border-color, inset 0 -1px 0 $table-dark-border-color;\n        }\n      }\n    }\n  }\n\n  // no border\n  &.no-border {\n    &,\n    td,\n    th {\n      border: 0;\n    }\n  }\n\n  // .text-center in tables\n  &.text-center {\n    &,\n    td,\n    th {\n      text-align: center;\n    }\n  }\n\n  &.table-valign-middle {\n    thead > tr > th,\n    thead > tr > td,\n    tbody > tr > th,\n    tbody > tr > td {\n      vertical-align: middle;\n    }\n  }\n\n  .card-body.p-0 & {\n    thead > tr > th,\n    thead > tr > td,\n    tfoot > tr > th,\n    tfoot > tr > td,\n    tbody > tr > th,\n    tbody > tr > td {\n      &:first-of-type {\n        padding-left: map-get($spacers, 4);\n      }\n\n      &:last-of-type {\n        padding-right: map-get($spacers, 4);\n      }\n    }\n  }\n}\n\n// Expandable Table\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n\n  i.expandable-table-caret {\n    transition: transform $transition-speed linear;\n  }\n  &[aria-expanded=\"true\"] {\n    td i.expandable-table-caret {\n      // stylelint-disable selector-max-attribute\n      &[class*=\"right\"] {\n        transform: rotate(90deg);\n      }\n      &[class*=\"left\"] {\n        transform: rotate(-90deg);\n      }\n      // stylelint-enable selector-max-attribute\n    }\n  }\n}\n\n.expandable-body {\n  > td {\n    padding: 0 !important;\n    width: 100%;\n\n    > div,\n    > p {\n      padding: $table-cell-padding;\n    }\n  }\n\n  .table {\n    width: calc(100% - #{$table-cell-padding});\n    margin: 0 0 0 $table-cell-padding;\n\n    tr:first-child {\n      td,\n      th {\n        border-top: none;\n      }\n    }\n  }\n}\n\n.dark-mode {\n  .table-bordered {\n    &,\n    td,\n    th {\n      border-color: $gray-600;\n    }\n  }\n  .table-hover {\n    tbody tr:hover {\n      color: $gray-300;\n      background-color: lighten($dark, 2.5%);\n      border-color: $gray-600;\n    }\n  }\n  .table {\n    thead th {\n      border-bottom-color: $gray-600;\n    }\n    th,\n    td {\n      border-top-color: $gray-600;\n    }\n    &.table-head-fixed {\n      thead tr:nth-child(1) th {\n        background-color: lighten($dark, 5%);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_text.scss",
    "content": "//\n// Component: Text\n//\n\n// text modification\n.text-bold {\n  &,\n  &.table td,\n  &.table th {\n    font-weight: 700;\n  }\n}\n\n.text-xs {\n  font-size: $font-size-xs !important;\n}\n\n.text-sm {\n  font-size: $font-size-sm !important;\n}\n\n.text-md {\n  font-size: $font-size-base !important;\n}\n\n.text-lg {\n  font-size: $font-size-lg !important;\n}\n\n.text-xl {\n  font-size: $font-size-xl !important;\n}\n\n// text color variations\n@each $name, $color in $colors {\n  .text-#{$name} {\n    color: #{$color} !important;\n  }\n}\n\n.dark-mode {\n  .text-muted {\n    color: $gray-500 !important;\n  }\n\n  @each $name, $color in $colors-alt {\n    .text-#{$name} {\n      color: #{$color} !important;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_timeline.scss",
    "content": "//\n// Component: Timeline\n//\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n  // The line\n  &::before {\n    @include border-radius($border-radius);\n    background-color: $gray-300;\n    bottom: 0;\n    content: \"\";\n    left: 31px;\n    margin: 0;\n    position: absolute;\n    top: 0;\n    width: 4px;\n  }\n  // Element\n  > div {\n    &::before,\n    &::after {\n      content: \"\";\n      display: table;\n    }\n\n    margin-bottom: 15px;\n    margin-right: 10px;\n    position: relative;\n    // The content\n    > .timeline-item {\n      @include box-shadow($card-shadow);\n      @include border-radius($border-radius);\n      background-color: $white;\n      color: $gray-700;\n      margin-left: 60px;\n      margin-right: 15px;\n      margin-top: 0;\n      padding: 0;\n      position: relative;\n      // The time and header\n      > .time {\n        color: #999;\n        float: right;\n        font-size: 12px;\n        padding: 10px;\n      }\n      // Header\n      > .timeline-header {\n        border-bottom: 1px solid $card-border-color;\n        color: $gray-700;\n        font-size: 16px;\n        line-height: 1.1;\n        margin: 0;\n        padding: 10px;\n        // Link in header\n        > a {\n          font-weight: 600;\n        }\n      }\n      // Item body and footer\n      > .timeline-body,\n      > .timeline-footer {\n        padding: 10px;\n      }\n\n      > .timeline-body {\n        > img {\n          margin: 10px;\n        }\n        > dl,\n        ol,\n        ul {\n          margin: 0;\n        }\n      }\n\n      > .timeline-footer {\n        > a {\n          color: $white;\n        }\n      }\n    }\n    // The icons at line\n    > .fa,\n    > .fas,\n    > .far,\n    > .fab,\n    > .fal,\n    > .fad,\n    > .svg-inline--fa,\n    > .ion {\n      background-color: $gray-500;\n      border-radius: 50%;\n      font-size: 16px;\n      height: 30px;\n      left: 18px;\n      line-height: 30px;\n      position: absolute;\n      text-align: center;\n      top: 0;\n      width: 30px;\n    }\n    > .svg-inline--fa {\n      padding: 7px;\n    }\n  }\n  // Time label\n  > .time-label {\n    > span {\n      @include border-radius(4px);\n      background-color: $white;\n      display: inline-block;\n      font-weight: 600;\n      padding: 5px;\n    }\n  }\n}\n\n.timeline-inverse {\n  > div {\n    > .timeline-item {\n      @include box-shadow(none);\n      background-color: $gray-100;\n      border: 1px solid $gray-300;\n\n      > .timeline-header {\n        border-bottom-color: $gray-300;\n      }\n    }\n  }\n}\n\n.dark-mode {\n  .timeline {\n    &::before {\n      background-color: $gray-600;\n    }\n    > div > .timeline-item {\n      background-color: $dark;\n      color: $white;\n      border-color: $gray-600;\n\n      > .timeline-header {\n        color: $gray-400;\n        border-color: $gray-600;\n      }\n      > .time {\n        color: $gray-400;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_toasts.scss",
    "content": "//\n// Component: Toasts\n//\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: $zindex-toasts;\n\n  &.fixed {\n    position: fixed;\n  }\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: $zindex-toasts;\n\n  &.fixed {\n    position: fixed;\n  }\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: $zindex-toasts;\n\n  &.fixed {\n    position: fixed;\n  }\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: $zindex-toasts;\n\n  &.fixed {\n    position: fixed;\n  }\n}\n\n.dark-mode {\n  .toast {\n    background-color: rgba($dark, .85);\n    color: $white;\n\n    .toast-header {\n      background-color: rgba($dark, .7);\n      color: $gray-100;\n    }\n\n    @each $name, $color in $theme-colors-alt {\n      @include toast-variant($name, $color);\n    }\n\n    @each $name, $color in $colors-alt {\n      @include toast-variant($name, $color);\n    }\n  }\n}\n\n\n.toast {\n  @each $name, $color in $theme-colors {\n    @include toast-variant($name, $color);\n  }\n  @each $name, $color in $colors {\n    @include toast-variant($name, $color);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_users-list.scss",
    "content": "//\n// Component: Users List\n//\n\n.users-list {\n  @include list-unstyled ();\n\n  > li {\n    float: left;\n    padding: 10px;\n    text-align: center;\n    width: 25%;\n\n    img {\n      @include border-radius(50%);\n      height: auto;\n      max-width: 100%;\n    }\n\n    > a:hover {\n      &,\n      .users-list-name {\n        color: #999;\n      }\n    }\n  }\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: $gray-700;\n  font-size: $font-size-sm;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: darken($gray-500, 20%);\n  font-size: 12px;\n}\n\n.dark-mode {\n  .users-list-name {\n    color: $gray-400;\n  }\n  .users-list-date {\n    color: $gray-500;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_variables-alt.scss",
    "content": "//\n// Core: Variables for Dark Mode\n//\n\n// COLORS\n// --------------------------------------------------------\n\n// stylelint-disable\n// Gray color will be default in dark mode\n$white-alt:    $white !default;\n$gray-100-alt: $gray-100 !default;\n$gray-200-alt: $gray-200 !default;\n$gray-300-alt: $gray-300 !default;\n$gray-400-alt: $gray-400 !default;\n$gray-500-alt: $gray-500 !default;\n$gray-600-alt: $gray-600 !default;\n$gray-700-alt: $gray-700 !default;\n$gray-800-alt: $gray-800 !default;\n$gray-900-alt: $gray-900 !default;\n$black-alt:    $black !default;\n\n$grays-alt: () !default;\n$grays-alt: map-merge((\n  \"100\": $gray-100-alt,\n  \"200\": $gray-200-alt,\n  \"300\": $gray-300-alt,\n  \"400\": $gray-400-alt,\n  \"500\": $gray-500-alt,\n  \"600\": $gray-600-alt,\n  \"700\": $gray-700-alt,\n  \"800\": $gray-800-alt,\n  \"900\": $gray-900-alt\n), $grays-alt);\n\n// Below colors from bootwatch darkly\n$blue-alt:    #3f6791 !default;\n$indigo-alt:  #6610f2 !default;\n$purple-alt:  #6f42c1 !default;\n$pink-alt:    #e83e8c !default;\n$red-alt:     #e74c3c !default;\n$orange-alt:  #fd7e14 !default;\n$yellow-alt:  #f39c12 !default;\n$green-alt:   #00bc8c !default;\n$teal-alt:    #20c997 !default;\n$cyan-alt:    #3498db !default;\n\n// by darken function\n$lightblue-alt: lighten(#3c8dbc, 20%) !default;\n$navy-alt: lighten(#001f3f, 5%) !default;\n$olive-alt: lighten(#3d9970, 20%) !default;\n$lime-alt: lighten(#01ff70, 20%) !default;\n$fuchsia-alt: lighten(#f012be, 20%) !default;\n$maroon-alt: lighten(#d81b60, 20%) !default;\n$gray-x-light-alt: lighten(#d2d6de, 20%) !default;\n\n$colors-alt: () !default;\n$colors-alt: map-merge((\n  \"blue\":       $blue-alt,\n  \"indigo\":     $indigo-alt,\n  \"purple\":     $purple-alt,\n  \"pink\":       $pink-alt,\n  \"red\":        $red-alt,\n  \"orange\":     $orange-alt,\n  \"yellow\":     $yellow-alt,\n  \"green\":      $green-alt,\n  \"teal\":       $teal-alt,\n  \"cyan\":       $cyan-alt,\n  \"white\":      $white-alt,\n  \"gray\":       $gray-600-alt,\n  \"gray-dark\":  $gray-800-alt\n), $colors-alt);\n\n$primary-alt:       $blue-alt !default;\n$secondary-alt:     $gray-600-alt !default;\n$success-alt:       $green-alt !default;\n$info-alt:          $cyan-alt !default;\n$warning-alt:       $yellow-alt !default;\n$danger-alt:        $red-alt !default;\n$light-alt:         $gray-100-alt !default;\n$dark-alt:          $gray-800-alt !default;\n\n$theme-colors-alt: () !default;\n$theme-colors-alt: map-merge((\n  \"primary\":    $primary-alt,\n  \"secondary\":  $secondary-alt,\n  \"success\":    $success-alt,\n  \"info\":       $info-alt,\n  \"warning\":    $warning-alt,\n  \"danger\":     $danger-alt,\n  \"light\":      $light-alt,\n  \"dark\":       $dark-alt\n), $theme-colors-alt);\n\n$colors-alt: map-merge(\n  (\n    \"lightblue\": $lightblue-alt,\n    \"navy\": $navy-alt,\n    \"olive\": $olive-alt,\n    \"lime\": $lime-alt,\n    \"fuchsia\": $fuchsia-alt,\n    \"maroon\": $maroon-alt,\n  ),\n  $colors-alt\n);\n// stylelint-enable\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/_variables.scss",
    "content": "//\n// Core: Variables\n//\n\n// COLORS\n// --------------------------------------------------------\n$blue: #0073b7 !default;\n$lightblue: #3c8dbc !default;\n$navy: #001f3f !default;\n$teal: #39cccc !default;\n$olive: #3d9970 !default;\n$lime: #01ff70 !default;\n$orange: #ff851b !default;\n$fuchsia: #f012be !default;\n$purple: #605ca8 !default;\n$maroon: #d81b60 !default;\n$black: #111 !default;\n$gray-x-light: #d2d6de !default;\n\n$colors: map-merge(\n  (\n    \"lightblue\": $lightblue,\n    \"navy\": $navy,\n    \"olive\": $olive,\n    \"lime\": $lime,\n    \"fuchsia\": $fuchsia,\n    \"maroon\": $maroon,\n  ),\n  $colors\n);\n\n// LAYOUT\n// --------------------------------------------------------\n\n$font-size-root: 1rem !default;\n\n// Sidebar\n$sidebar-width: 250px !default;\n$sidebar-padding-x: .5rem !default;\n$sidebar-padding-y: 0 !default;\n$sidebar-custom-height: 4rem !default;\n$sidebar-custom-height-lg: 6rem !default;\n$sidebar-custom-height-xl: 8rem !default;\n$sidebar-custom-padding-x: .85rem !default;\n$sidebar-custom-padding-y: .5rem !default;\n\n// Boxed layout maximum width\n$boxed-layout-max-width: 1250px !default;\n\n// Body background (Affects main content background only)\n$main-bg: #f4f6f9 !default;\n\n$dark-main-bg: lighten($dark, 7.5%) !important;\n\n// Content padding\n$content-padding-y: 0 !default;\n$content-padding-x: $navbar-padding-x !default;\n\n// IMAGE SIZES\n// --------------------------------------------------------\n$img-size-sm: 1.875rem !default;\n$img-size-md: 3.75rem !default;\n$img-size-lg: 6.25rem !default;\n$img-size-push: .625rem !default;\n\n// MAIN HEADER\n// --------------------------------------------------------\n$main-header-bottom-border-width: $border-width !default;\n$main-header-bottom-border-color: $gray-300 !default;\n$main-header-bottom-border: $main-header-bottom-border-width solid $main-header-bottom-border-color !default;\n$main-header-link-padding-y: $navbar-padding-y !default;\n$main-header-height-inner: ($nav-link-height + ($main-header-link-padding-y * 2)) !default;\n$main-header-height: calc(#{$main-header-height-inner} + #{$main-header-bottom-border-width}) !default;\n$nav-link-sm-padding-y: .35rem !default;\n$nav-link-sm-height: ($font-size-sm * $line-height-sm + $nav-link-sm-padding-y * 1.785) !default;\n$main-header-height-sm-inner: ($nav-link-sm-height + ($main-header-link-padding-y * 2)) !default;\n$main-header-height-sm: calc(#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}) !default;\n\n\n// Main header skins\n$main-header-dark-form-control-bg: $gray-800 !default;\n$main-header-dark-form-control-focused-bg: $gray-700 !default;\n$main-header-dark-form-control-focused-color: $gray-400 !default;\n$main-header-dark-form-control-border-color: $gray-600 !default;\n$main-header-dark-form-control-focused-border-color: $gray-600 !default;\n$main-header-dark-placeholder-color: rgba($white, .6) !default;\n\n$main-header-light-form-control-bg: darken($gray-200, 5%) !default;\n$main-header-light-form-control-focused-bg: darken($gray-200, 7.5%) !default;\n$main-header-light-form-control-focused-color: $gray-400 !default;\n$main-header-light-form-control-border-color: $gray-400 !default;\n$main-header-light-form-control-focused-border-color: darken($gray-400, 2.5%) !default;\n$main-header-light-placeholder-color: rgba(0, 0, 0, .6) !default;\n\n// MAIN FOOTER\n// --------------------------------------------------------\n$main-footer-padding: 1rem !default;\n$main-footer-padding-sm: $main-footer-padding * .812 !default;\n$main-footer-border-top-width: 1px !default;\n$main-footer-border-top-color: $gray-300 !default;\n$main-footer-border-top: $main-footer-border-top-width solid $main-footer-border-top-color !default;\n$main-footer-height-inner: (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) !default;\n$main-footer-height: calc(#{$main-footer-height-inner} + #{$main-footer-border-top-width}) !default;\n$main-footer-height-sm-inner: (($font-size-sm * $line-height-base) + ($main-footer-padding-sm * 2)) !default;\n$main-footer-height-sm: calc(#{$main-footer-height-sm-inner} + #{$main-footer-border-top-width}) !default;\n$main-footer-bg: $white !default;\n\n// SIDEBAR SKINS\n// --------------------------------------------------------\n\n// Dark sidebar\n$sidebar-dark-bg: $dark !default;\n$sidebar-dark-hover-bg: rgba(255, 255, 255, .1) !default;\n$sidebar-dark-color: #c2c7d0 !default;\n$sidebar-dark-hover-color: $white !default;\n$sidebar-dark-active-color: $white !default;\n$sidebar-dark-submenu-bg: transparent !default;\n$sidebar-dark-submenu-color: #c2c7d0 !default;\n$sidebar-dark-submenu-hover-color: $white !default;\n$sidebar-dark-submenu-hover-bg: $sidebar-dark-hover-bg !default;\n$sidebar-dark-submenu-active-color: $sidebar-dark-bg !default;\n$sidebar-dark-submenu-active-bg: rgba(255, 255, 255, .9) !default;\n\n// Light sidebar\n$sidebar-light-bg: $white !default;\n$sidebar-light-hover-bg: rgba($black, .1) !default;\n$sidebar-light-color: $gray-800 !default;\n$sidebar-light-hover-color: $gray-900 !default;\n$sidebar-light-active-color: $black !default;\n$sidebar-light-submenu-bg: transparent !default;\n$sidebar-light-submenu-color: #777 !default;\n$sidebar-light-submenu-hover-color: $black !default;\n$sidebar-light-submenu-hover-bg: $sidebar-light-hover-bg !default;\n$sidebar-light-submenu-active-color: $sidebar-light-hover-color !default;\n$sidebar-light-submenu-active-bg: $sidebar-light-submenu-hover-bg !default;\n\n// SIDEBAR MINI\n// --------------------------------------------------------\n$sidebar-mini-width: ($nav-link-padding-x + $sidebar-padding-x + .8rem) * 2 !default;\n$sidebar-nav-icon-width: $sidebar-mini-width - (($sidebar-padding-x + $nav-link-padding-x) * 2) !default;\n$sidebar-user-image-width: $sidebar-nav-icon-width + ($nav-link-padding-x / 2) !default;\n\n// CONTROL SIDEBAR\n// --------------------------------------------------------\n$control-sidebar-width: $sidebar-width !default;\n\n// Cards\n// --------------------------------------------------------\n$card-border-color: $gray-100 !default;\n$card-dark-border-color: lighten($gray-900, 10%) !default;\n$card-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2) !default;\n$card-title-font-size: 1.1rem !default;\n$card-title-font-size-sm: 1rem !default;\n$card-title-font-weight: $font-weight-normal !default;\n$card-nav-link-padding-sm-y: .4rem !default;\n$card-nav-link-padding-sm-x: .8rem !default;\n$card-img-size: $img-size-sm !default;\n\n// PROGRESS BARS\n// --------------------------------------------------------\n$progress-bar-border-radius: 1px !default;\n\n// DIRECT CHAT\n// --------------------------------------------------------\n$direct-chat-default-msg-bg: $gray-x-light !default;\n$direct-chat-default-font-color: #444 !default;\n$direct-chat-default-msg-border-color: $gray-x-light !default;\n\n// Z-INDEX\n// --------------------------------------------------------\n$zindex-main-header: $zindex-fixed + 4 !default;\n$zindex-main-sidebar: $zindex-fixed + 8 !default;\n$zindex-main-footer: $zindex-fixed + 2 !default;\n$zindex-control-sidebar: $zindex-fixed + 1 !default;\n$zindex-toasts: $zindex-main-sidebar + 2 !default;\n$zindex-preloader: 9999 !default;\n\n// TRANSITIONS SETTINGS\n// --------------------------------------------------------\n\n// Transition global options\n$transition-speed: .3s !default;\n$transition-fn: ease-in-out !default;\n\n// TEXT\n// --------------------------------------------------------\n$font-size-xs: ($font-size-base * .75) !default;\n$font-size-xl: ($font-size-base * 2) !default;\n\n\n// BUTTON\n// --------------------------------------------------------\n$button-default-background-color: $gray-100 !default;\n$button-default-color: #444 !default;\n$button-default-border-color: #ddd !default;\n\n$button-padding-y-xs: .125rem !default;\n$button-padding-x-xs: .25rem !default;\n$button-line-height-xs: $line-height-sm !default;\n$button-font-size-xs: ($font-size-base * .75) !default;\n$button-border-radius-xs: .15rem !default;\n\n\n// ELEVATION\n// --------------------------------------------------------\n$elevations: ();\n$elevations: map-merge(\n  (\n    1: unquote(\"0 1px 3px \" + rgba($black, .12) + \", 0 1px 2px \" + rgba($black, .24)),\n    2: unquote(\"0 3px 6px \" + rgba($black, .16) + \", 0 3px 6px \" + rgba($black, .23)),\n    3: unquote(\"0 10px 20px \" + rgba($black, .19) + \", 0 6px 6px \" + rgba($black, .23)),\n    4: unquote(\"0 14px 28px \" + rgba($black, .25) + \", 0 10px 10px \" + rgba($black, .22)),\n    5: unquote(\"0 19px 38px \" + rgba($black, .3) + \", 0 15px 12px \" + rgba($black, .22)),\n  ),\n  $elevations\n);\n\n// RIBBON\n// --------------------------------------------------------\n$ribbon-border-size: 3px !default;\n$ribbon-line-height: 100% !default;\n$ribbon-padding: .375rem 0 !default;\n$ribbon-font-size: .8rem !default;\n$ribbon-width: 90px !default;\n$ribbon-wrapper-size: 70px !default;\n$ribbon-top: 10px !default;\n$ribbon-right: -2px !default;\n$ribbon-lg-wrapper-size: 120px !default;\n$ribbon-lg-width: 160px !default;\n$ribbon-lg-top: 26px !default;\n$ribbon-lg-right: 0 !default;\n$ribbon-xl-wrapper-size: 180px !default;\n$ribbon-xl-width: 240px !default;\n$ribbon-xl-top: 47px !default;\n$ribbon-xl-right: 4px !default;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/adminlte.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"bootstrap-variables\";\n@import \"~bootstrap/scss/bootstrap\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"variables\";\n@import \"variables-alt\";\n@import \"mixins\";\n\n@import \"parts/core\";\n@import \"parts/components\";\n@import \"parts/extra-components\";\n@import \"parts/pages\";\n@import \"parts/plugins\";\n@import \"parts/miscellaneous\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_accent.scss",
    "content": "//\n// Mixins: Accent\n//\n\n// Accent Variant\n@mixin accent-variant($name, $color) {\n  $link-color: $color;\n  .accent-#{$name} {\n    $link-hover-color: darken($color, 15%);\n    $pagination-active-bg: $color;\n    $pagination-active-border-color: $color;\n\n    .btn-link,\n    a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n    .nav-tabs .nav-link {\n      color: $link-color;\n\n      @include hover () {\n        color: $link-hover-color;\n      }\n    }\n\n    .dropdown-item {\n      &:active,\n      &.active {\n        background-color: $color;\n        color: color-yiq($color);\n      }\n    }\n\n    .custom-control-input:checked ~ .custom-control-label {\n      &::before {\n        background-color: $color;\n        border-color: darken($color, 20%);\n      }\n\n      &::after {\n        $new-color: color-yiq($color);\n        background-image: str-replace($custom-checkbox-indicator-icon-checked, str-replace(#{$custom-control-indicator-checked-color}, \"#\", \"%23\"), str-replace(#{$new-color}, \"#\", \"%23\"));\n      }\n    }\n\n    .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n    .custom-select:focus,\n    .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n    .custom-file-input:focus ~ .custom-file-label {\n      border-color: lighten($color, 25%);\n    }\n\n    .page-item {\n      .page-link {\n        color: $link-color;\n      }\n\n      &.active a,\n      &.active .page-link {\n        background-color: $pagination-active-bg;\n        border-color: $pagination-active-border-color;\n        color: $pagination-active-color;\n      }\n\n      &.disabled a,\n      &.disabled .page-link {\n        background-color: $pagination-disabled-bg;\n        border-color: $pagination-disabled-border-color;\n        color: $pagination-disabled-color;\n      }\n    }\n\n    [class*=\"sidebar-dark-\"] {\n      .sidebar {\n        a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n          color: $sidebar-dark-color;\n\n          @include hover () {\n            color: $sidebar-dark-hover-color;\n          }\n        }\n      }\n    }\n\n    [class*=\"sidebar-light-\"] {\n      .sidebar {\n        a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n          color: $sidebar-light-color;\n\n          @include hover () {\n            color: $sidebar-light-hover-color;\n          }\n        }\n      }\n    }\n  }\n  .dark-mode.accent-#{$name} {\n    .page-item {\n      .page-link {\n        &:hover,\n        &:focus {\n          color: lighten($link-color, 5%);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_animations.scss",
    "content": "//\n// Mixins: Animation\n//\n\n\n@keyframes flipInX {\n  0% {\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n\n  40% {\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n\n  60% {\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n\n  80% {\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n\n  100% {\n    transform: perspective(400px);\n  }\n}\n\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes shake {\n  0% {\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes wobble {\n  0% {\n    transform: none;\n  }\n\n  15% {\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n\n  30% {\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n\n  45% {\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n\n  60% {\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n\n  75% {\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n\n  100% {\n    transform: none;\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_backgrounds.scss",
    "content": "//\n// Mixins: Backgrounds\n//\n\n// Background Variant\n@mixin background-variant($name, $color) {\n  .bg-#{$name} {\n    background-color: #{$color} !important;\n\n    &,\n    > a {\n      color: color-yiq($color) !important;\n    }\n\n    &.btn {\n      &:hover {\n        border-color: darken($color, 10%);\n        color: darken(color-yiq($color), 7.5%);\n      }\n\n      &:not(:disabled):not(.disabled):active,\n      &:not(:disabled):not(.disabled).active,\n      &:active,\n      &.active {\n        background-color: darken($color, 10%) !important;\n        border-color: darken($color, 12.5%);\n        color: color-yiq(darken($color, 10%));\n      }\n    }\n  }\n}\n\n// Background Gradient Variant\n@mixin background-gradient-variant($name, $color) {\n  .bg-gradient-#{$name} {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n    color: color-yiq($color);\n\n    &.btn {\n      &.disabled,\n      &:disabled,\n      &:not(:disabled):not(.disabled):active,\n      &:not(:disabled):not(.disabled).active,\n      .show > &.dropdown-toggle {\n        background-image: none !important;\n      }\n\n      &:hover {\n        background: $color linear-gradient(180deg, mix($body-bg, darken($color, 7.5%), 15%), darken($color, 7.5%)) repeat-x !important;\n        border-color: darken($color, 10%);\n        color: darken(color-yiq($color), 7.5%);\n      }\n\n      &:not(:disabled):not(.disabled):active,\n      &:not(:disabled):not(.disabled).active,\n      &:active,\n      &.active {\n        background: $color linear-gradient(180deg, mix($body-bg, darken($color, 10%), 15%), darken($color, 10%)) repeat-x !important;\n        border-color: darken($color, 12.5%);\n        color: color-yiq(darken($color, 10%));\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_cards.scss",
    "content": "//\n// Mixins: Cards Variant\n//\n\n@mixin cards-variant($name, $color) {\n  .card-#{$name} {\n    &:not(.card-outline) {\n      > .card-header {\n        background-color: $color;\n\n        &,\n        a {\n          color: color-yiq($color);\n        }\n\n        a.active {\n          color: color-yiq($white);\n        }\n      }\n    }\n\n    &.card-outline {\n      border-top: 3px solid $color;\n    }\n\n    &.card-outline-tabs {\n      > .card-header {\n        a {\n          &:hover {\n            border-top: 3px solid $nav-tabs-border-color;\n          }\n\n          &.active {\n            border-top: 3px solid $color;\n          }\n        }\n      }\n    }\n  }\n\n  .bg-#{$name},\n  .bg-gradient-#{$name},\n  .card-#{$name}:not(.card-outline) {\n    > .card-header {\n      .btn-tool {\n        color: rgba(color-yiq($color), .8);\n\n        &:hover {\n          color: color-yiq($color);\n        }\n      }\n    }\n  }\n\n  .card.bg-#{$name},\n  .card.bg-gradient-#{$name} {\n    .bootstrap-datetimepicker-widget {\n      .table td,\n      .table th {\n        border: none;\n      }\n\n      table thead tr:first-child th:hover,\n      table td.day:hover,\n      table td.hour:hover,\n      table td.minute:hover,\n      table td.second:hover {\n        background-color: darken($color, 8%);\n        color: color-yiq($color);\n      }\n\n      table td.today::before {\n        border-bottom-color: color-yiq($color);\n      }\n\n      table td.active,\n      table td.active:hover {\n        background-color: lighten($color, 10%);\n        color: color-yiq($color);\n      }\n    }\n  }\n}\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_custom-forms.scss",
    "content": "//\n// Mixins: Custom Forms\n//\n\n// Custom Switch Variant\n@mixin custom-switch-variant($name, $color) {\n  &.custom-switch-off-#{$name} {\n    .custom-control-input ~ .custom-control-label::before {\n      background-color: #{$color};\n      border-color: darken($color, 20%);\n    }\n\n    .custom-control-input:focus ~ .custom-control-label::before {\n      box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);\n    }\n\n    .custom-control-input ~ .custom-control-label::after {\n      background-color: darken($color, 25%);\n    }\n  }\n\n  &.custom-switch-on-#{$name} {\n    .custom-control-input:checked ~ .custom-control-label::before {\n      background-color: #{$color};\n      border-color: darken($color, 20%);\n    }\n\n    .custom-control-input:checked:focus ~ .custom-control-label::before {\n      box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);\n    }\n\n    .custom-control-input:checked ~ .custom-control-label::after {\n      background-color: lighten($color, 30%);\n    }\n  }\n}\n\n// Custom Range Variant\n@mixin custom-range-variant($name, $color) {\n  &.custom-range-#{$name} {\n    &:focus {\n      outline: none;\n\n      &::-webkit-slider-thumb {\n        box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);\n      }\n\n      &::-moz-range-thumb     {\n        box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);\n      }\n\n      &::-ms-thumb            {\n        box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);\n      }\n    }\n\n    &::-webkit-slider-thumb {\n      background-color: $color;\n\n      &:active {\n        background-color: lighten($color, 35%);\n      }\n    }\n\n    &::-moz-range-thumb {\n      background-color: $color;\n\n      &:active {\n        background-color: lighten($color, 35%);\n      }\n    }\n\n    &::-ms-thumb {\n      background-color: $color;\n\n      &:active {\n        background-color: lighten($color, 35%);\n      }\n    }\n  }\n}\n\n\n// Custom Control Input Variant\n@mixin custom-control-input-variant($name, $color) {\n  $custom-control-indicator-checked-color: $color;\n  $custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\");\n  $custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\");\n\n  .custom-control-input-#{$name} {\n    &:checked ~ .custom-control-label::before {\n      border-color: $color;\n      @include gradient-bg($color);\n    }\n\n    &.custom-control-input-outline:checked {\n      &[type=\"checkbox\"] ~ .custom-control-label::after {\n        background-image: $custom-checkbox-indicator-icon-checked !important;\n      }\n      &[type=\"radio\"] ~ .custom-control-label::after {\n        background-image: $custom-radio-indicator-icon-checked !important;\n      }\n    }\n\n    &:focus ~ .custom-control-label::before {\n      // the mixin is not used here to make sure there is feedback\n      @if $enable-shadows {\n        box-shadow: $input-box-shadow, 0 0 0 $input-btn-focus-width rgba($color, .25);\n      } @else {\n        box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .25);\n      }\n    }\n\n    &:focus:not(:checked) ~ .custom-control-label::before {\n      border-color: lighten($color, 25%);\n    }\n\n    &:not(:disabled):active ~ .custom-control-label::before {\n      background-color: lighten($color, 35%);\n      border-color: lighten($color, 35%);\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_direct-chat.scss",
    "content": "//\n// Mixins: Direct Chat\n//\n\n// Direct Chat Variant\n@mixin direct-chat-variant($bg-color, $color: $white) {\n  .right > .direct-chat-text {\n    background-color: $bg-color;\n    border-color: $bg-color;\n    color: color-yiq($bg-color);\n\n    &::after,\n    &::before {\n      border-left-color: $bg-color;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_miscellaneous.scss",
    "content": "//\n// Mixins: Miscellaneous\n//\n\n// ETC\n@mixin translate($x, $y) {\n  transform: translate($x, $y);\n}\n\n// Different radius each side\n@mixin border-radius-sides($top-left, $top-right, $bottom-left, $bottom-right) {\n  border-radius: $top-left $top-right $bottom-left $bottom-right;\n}\n\n@mixin calc($property, $expression) {\n  #{$property}: calc(#{$expression});\n}\n\n@mixin rotate($value) {\n  transform: rotate($value);\n}\n\n@mixin animation($animation) {\n  animation: $animation;\n}\n\n// Gradient background\n@mixin gradient($color: #f5f5f5, $start: #eee, $stop: $white) {\n  background-color: $color;\n  background-image: gradient(linear, left bottom, left top, color-stop(0, $start), color-stop(1, $stop));\n}\n\n@mixin scrollbar-width-thin() {\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@mixin scrollbar-width-none() {\n  scrollbar-width: none;\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_navbar.scss",
    "content": "//\n// Mixins: Navbar\n//\n\n// Navbar Variant\n@mixin navbar-variant($name, $color) {\n  .navbar-#{$name} {\n    background-color: $color;\n    color: color-yiq($color);\n\n    &.navbar-light {\n      .form-control-navbar {\n        &::placeholder {\n          color: rgba($gray-800, .8);\n        }\n        &,\n        + .input-group-append > .btn-navbar {\n          background-color: darken($color, 4%);\n          border-color: darken($color, 9%);\n          color: rgba($gray-800, .8);\n        }\n\n        &:focus {\n          &::placeholder {\n            color: $gray-800;\n          }\n          &,\n          + .input-group-append .btn-navbar {\n            background-color: darken($color, 5%);\n            border-color: darken($color, 9%) !important;\n            color: $gray-800;\n          }\n        }\n      }\n    }\n    &.navbar-dark {\n      .form-control-navbar {\n        &::placeholder {\n          color: rgba($white, .8);\n        }\n        &,\n        + .input-group-append > .btn-navbar {\n          background-color: lighten($color, 4%);\n          border-color: lighten($color, 9%);\n          color: rgba($white, .8);\n        }\n\n        &:focus {\n          &::placeholder {\n            color: $white;\n          }\n          &,\n          + .input-group-append .btn-navbar {\n            background-color: lighten($color, 5%);\n            border-color: lighten($color, 9%) !important;\n            color: $white;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_sidebar.scss",
    "content": "//\n// Mixins: Sidebar\n//\n\n// Sidebar Color\n@mixin sidebar-color($color) {\n  .nav-sidebar > .nav-item {\n    > .nav-link.active {\n      background-color: $color;\n      color: color-yiq($color);\n    }\n  }\n\n  .nav-sidebar.nav-legacy > .nav-item {\n    > .nav-link.active {\n      border-color: $color;\n    }\n  }\n}\n\n// Sidebar Mini Breakpoints\n@mixin sidebar-mini-breakpoint() {\n  // A fix for text overflow while transitioning from sidebar mini to full sidebar\n  .nav-sidebar,\n  .nav-sidebar > .nav-header,\n  .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n\n  // When the sidebar is collapsed...\n  &.sidebar-collapse {\n    .d-hidden-mini {\n      display: none;\n    }\n\n    // Apply the new margins to the main content and footer\n    .content-wrapper,\n    .main-footer,\n    .main-header {\n      margin-left: $sidebar-mini-width !important;\n    }\n\n    // Make the sidebar headers\n    .nav-sidebar .nav-header {\n      display: none;\n    }\n\n    .nav-sidebar .nav-link p {\n      width: 0;\n      white-space: nowrap;\n    }\n\n    .sidebar .user-panel > .info,\n    .nav-sidebar .nav-link p,\n    .brand-text {\n      margin-left: -10px;\n      animation-name: fadeOut;\n      animation-duration: $transition-speed;\n      animation-fill-mode: both;\n      visibility: hidden;\n    }\n\n    .logo-xl {\n      animation-name: fadeOut;\n      animation-duration: $transition-speed;\n      animation-fill-mode: both;\n      visibility: hidden;\n    }\n\n    .logo-xs {\n      display: inline-block;\n      animation-name: fadeIn;\n      animation-duration: $transition-speed;\n      animation-fill-mode: both;\n      visibility: visible;\n    }\n\n    // Modify the sidebar to shrink instead of disappearing\n    .main-sidebar {\n      overflow-x: hidden;\n\n      &,\n      &::before {\n        // Don't go away! Just shrink\n        margin-left: 0;\n        width: $sidebar-mini-width;\n      }\n\n      .user-panel {\n        .image {\n          float: none;\n        }\n      }\n\n      &:hover,\n      &.sidebar-focused {\n        width: $sidebar-width;\n\n        .brand-link {\n          width: $sidebar-width;\n        }\n\n        .user-panel {\n          text-align: left;\n\n          .image {\n            float: left;\n          }\n        }\n\n        .user-panel > .info,\n        .nav-sidebar .nav-link p,\n        .brand-text,\n        .logo-xl {\n          display: inline-block;\n          margin-left: 0;\n          animation-name: fadeIn;\n          animation-duration: $transition-speed;\n          animation-fill-mode: both;\n          visibility: visible;\n        }\n\n        .logo-xs {\n          animation-name: fadeOut;\n          animation-duration: $transition-speed;\n          animation-fill-mode: both;\n          visibility: hidden;\n        }\n\n        .brand-image {\n          margin-right: .5rem;\n        }\n\n        // Make the sidebar links, menus, labels, badges\n        // and angle icons disappear\n        .sidebar-form,\n        .user-panel > .info {\n          display: block !important;\n          transform: translateZ(0);\n        }\n\n        .nav-sidebar > .nav-item > .nav-link > span {\n          display: inline-block !important;\n        }\n      }\n    }\n\n    // Make an element visible only when sidebar mini is active\n    .visible-sidebar-mini {\n      display: block !important;\n    }\n\n    &.layout-fixed {\n      .main-sidebar:hover {\n        .brand-link {\n          width: $sidebar-width;\n        }\n      }\n\n      .brand-link {\n        width: $sidebar-mini-width;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_toasts.scss",
    "content": "//\n// Mixins: Toasts\n//\n\n// Toast Variant\n@mixin toast-variant($name, $color) {\n  &.bg-#{$name} {\n    background-color: rgba($color, .9) !important;\n    @if (color-yiq($color) == $yiq-text-light) {\n\n      .close {\n        color: color-yiq($color);\n        text-shadow: 0 1px 0 $black;\n      }\n    }\n\n    .toast-header {\n      background-color: rgba($color, .85);\n      color: color-yiq($color);\n    }\n  }\n}\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/mixins/_touch-support.scss",
    "content": "//\n// Mixins: Touch Support\n//\n\n@mixin on-touch-device {\n  @media (hover: none) and (pointer: coarse) {\n    @content;\n  }\n}\n\n//\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_404_500_errors.scss",
    "content": "//\n// Pages: 400 and 500 error pages\n//\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n\n  @include media-breakpoint-down(sm) {\n    width: 100%;\n  }\n\n  //For the error number e.g: 404\n  > .headline {\n    float: left;\n    font-size: 100px;\n    font-weight: 300;\n\n    @include media-breakpoint-down(sm) {\n      float: none;\n      text-align: center;\n    }\n  }\n\n  //For the message\n  > .error-content {\n    display: block;\n    margin-left: 190px;\n\n    @include media-breakpoint-down(sm) {\n      margin-left: 0;\n    }\n\n    > h3 {\n      font-size: 25px;\n      font-weight: 300;\n\n      @include media-breakpoint-down(sm) {\n        text-align: center;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_e-commerce.scss",
    "content": "//\n// Pages: E-commerce\n//\n\n// product image\n.product-image {\n  @include img-fluid ();\n  width: 100%;\n}\n\n// product image thumbnails list\n.product-image-thumbs {\n  align-items: stretch;\n  display: flex;\n  margin-top: 2rem;\n}\n\n// product image thumbnail\n.product-image-thumb {\n  @include box-shadow($thumbnail-box-shadow);\n  @include border-radius($thumbnail-border-radius);\n\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 6.5rem + ($thumbnail-padding * 2);\n  padding: $thumbnail-padding * 2;\n\n  img {\n    @include img-fluid ();\n    align-self: center;\n  }\n\n  &:hover {\n    opacity: .5;\n  }\n}\n\n// product share\n.product-share {\n  a {\n    margin-right: .5rem;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_iframe.scss",
    "content": "body.iframe-mode {\n  .main-sidebar {\n    display: none;\n  }\n  .content-wrapper {\n    margin-left: 0 !important;\n    margin-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  .main-header,\n  .main-footer {\n    display: none;\n  }\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n\n  &.iframe-mode {\n    .btn-iframe-close {\n      color: $danger;\n      position: absolute;\n      line-height: 1;\n      right: .125rem;\n      top: .125rem;\n      z-index: 10;\n      visibility: hidden;\n\n      &:hover,\n      &:focus {\n        animation-name: fadeIn;\n        animation-duration: $transition-speed;\n        animation-fill-mode: both;\n        visibility: visible;\n      }\n\n      @include on-touch-device () {\n        visibility: visible;\n      }\n    }\n    .navbar-nav {\n      overflow-y: auto;\n      width: 100%;\n\n      .nav-link {\n        white-space: nowrap;\n      }\n      .nav-item {\n        position: relative;\n\n        &:hover,\n        &:focus {\n          .btn-iframe-close {\n            animation-name: fadeIn;\n            animation-duration: $transition-speed;\n            animation-fill-mode: both;\n            visibility: visible;\n\n            @include on-touch-device () {\n              visibility: visible;\n            }\n          }\n        }\n      }\n    }\n    .tab-content {\n      position: relative;\n    }\n    .tab-pane + .tab-empty {\n      display: none;\n    }\n    .tab-empty {\n      width: 100%;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n    }\n    .tab-loading {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      display: none;\n      background-color: $main-bg;\n\n      > div {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        width: 100%;\n        height: 100%;\n      }\n    }\n\n    iframe {\n      border: 0;\n      width: 100%;\n      height: 100%;\n      margin-bottom: -8px;\n\n      .content-wrapper {\n        padding-bottom: 0 !important;\n      }\n    }\n\n    body.iframe-mode-fullscreen & {\n      position: absolute;\n      left: 0;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      margin-left: 0 !important;\n      height: 100%;\n      min-height: 100%;\n      z-index: $zindex-main-sidebar + 10;\n    }\n  }\n}\n\n.permanent-btn-iframe-close {\n  .btn-iframe-close {\n    animation: none !important;\n    visibility: visible !important;\n    opacity: 1;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_invoice.scss",
    "content": "//\n// Pages: Invoice\n//\n\n.invoice {\n  background-color: $white;\n  border: 1px solid $card-border-color;\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode {\n  .invoice {\n    background-color: $dark;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_kanban.scss",
    "content": ".content-wrapper.kanban {\n  height: 1px;\n\n  .content {\n    height: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n\n    .container,\n    .container-fluid {\n      width: max-content;\n      display: flex;\n      align-items: stretch;\n    }\n  }\n  .content-header + .content {\n    height: calc(100% - ((2 * 15px) + (1.8rem * #{$headings-line-height})));\n  }\n\n  .card {\n    .card-body {\n      padding: .5rem;\n    }\n\n    &.card-row {\n      width: 340px;\n      display: inline-block;\n      margin: 0 .5rem;\n\n      &:first-child {\n        margin-left: 0;\n      }\n\n      .card-body {\n        height: calc(100% - (12px + (1.8rem * #{$headings-line-height}) + .5rem));\n        overflow-y: auto;\n      }\n\n      .card {\n        &:last-child {\n          margin-bottom: 0;\n          border-bottom-width: 1px;\n        }\n        .card-header {\n          padding: .5rem .75rem;\n        }\n        .card-body {\n          padding: .75rem;\n        }\n      }\n    }\n  }\n  .btn-tool {\n    &.btn-link {\n      text-decoration: underline;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_lockscreen.scss",
    "content": "//\n// Pages: Lock Screen\n//\n\n// ADD THIS CLASS TO THE <BODY> TAG\n.lockscreen {\n  background-color: $gray-200;\n\n  // User name [optional]\n  .lockscreen-name {\n    font-weight: 600;\n    text-align: center;\n  }\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n\n  a {\n    color: $gray-700;\n  }\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n\n// Will contain the image and the sign in form\n.lockscreen-item {\n  @include border-radius(4px);\n  background-color: $white;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n// User image\n.lockscreen-image {\n  @include border-radius(50%);\n  background-color: $white;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n\n  > img {\n    @include border-radius(50%);\n    height: 70px;\n    width: 70px;\n  }\n}\n\n// Contains the password input and the login button\n.lockscreen-credentials {\n  margin-left: 70px;\n\n  .form-control {\n    border: 0;\n  }\n\n  .btn {\n    background-color: $white;\n    border: 0;\n    padding: 0 10px;\n  }\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode {\n  .lockscreen-item {\n    background-color: $dark;\n  }\n  .lockscreen-logo a {\n    color: $white;\n  }\n  .lockscreen-credentials .btn {\n    background-color: $dark;\n  }\n  .lockscreen-image {\n    background-color: $gray-600;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_login_and_register.scss",
    "content": "//\n// Pages: Login & Register\n//\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n\n  a {\n    color: $gray-700;\n  }\n}\n\n.login-page,\n.register-page {\n  align-items: center;\n  background-color: $gray-200;\n  display: flex;\n  flex-direction: column;\n  height: 100vh;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n\n  @media (max-width: map-get($grid-breakpoints, sm)) {\n    margin-top: .5rem;\n    width: 90%;\n  }\n\n  .card {\n    margin-bottom: 0;\n  }\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: $white;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n\n  .input-group {\n    .form-control {\n      border-right: 0;\n\n      &:focus {\n        box-shadow: none;\n\n        ~ .input-group-prepend .input-group-text,\n        ~ .input-group-append .input-group-text {\n          border-color: $input-focus-border-color;\n        }\n      }\n\n      &.is-valid {\n        &:focus {\n          box-shadow: none;\n        }\n\n        ~ .input-group-prepend .input-group-text,\n        ~ .input-group-append .input-group-text {\n          border-color: $success;\n        }\n      }\n\n      &.is-invalid {\n        &:focus {\n          box-shadow: none;\n        }\n\n        ~ .input-group-append .input-group-text {\n          border-color: $danger;\n        }\n      }\n    }\n\n    .input-group-text {\n      background-color: transparent;\n      border-bottom-right-radius: $border-radius;\n      border-left: 0;\n      border-top-right-radius: $border-radius;\n      color: #777;\n      transition: $input-transition;\n    }\n  }\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode {\n  .login-card-body,\n  .register-card-body {\n    background-color: $dark;\n    border-color: $gray-600;\n    color: $white;\n  }\n  .login-logo,\n  .register-logo {\n    a {\n      color: $white;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_mailbox.scss",
    "content": "//\n// Pages: Mailbox\n//\n\n.mailbox-messages {\n  > .table {\n    margin: 0;\n  }\n}\n\n.mailbox-controls {\n  padding: 5px;\n\n  &.with-border {\n    border-bottom: 1px solid $card-border-color;\n  }\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid $card-border-color;\n  padding: 10px;\n\n  h3 {\n    font-size: 20px;\n    margin: 0;\n  }\n\n  h5 {\n    margin: 0;\n    padding: 5px 0 0;\n  }\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  @include list-unstyled ();\n  li {\n    border: 1px solid #eee;\n    float: left;\n    margin-bottom: 10px;\n    margin-right: 10px;\n    width: 200px;\n  }\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: $gray-100;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n\n  > span {\n    display: inline-block;\n    padding-top: .75rem;\n  }\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n\n  &.has-img {\n    padding: 0;\n\n    > img {\n      height: auto;\n      max-width: 100%;\n    }\n  }\n}\n\n.mailbox-attachment-close {\n  @extend .close;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_profile.scss",
    "content": "//\n// Pages: Profile\n//\n\n.profile-user-img {\n  border: 3px solid $gray-500;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid $gray-500;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n\n  &:last-of-type {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 0;\n  }\n\n  .user-block {\n    margin-bottom: 15px;\n    width: 100%;\n  }\n\n  .row {\n    width: 100%;\n  }\n}\n\n.dark-mode {\n  .post {\n    color: $white;\n    border-color: $gray-600;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/pages/_projects.scss",
    "content": "//\n// Pages: Projects\n//\n\n.projects {\n  td {\n    vertical-align: middle;\n  }\n\n  .list-inline {\n    margin-bottom: 0;\n  }\n\n  // table avatar\n  img.table-avatar,\n  .table-avatar img {\n    border-radius: 50%;\n    display: inline;\n    width: 2.5rem;\n  }\n\n  // project state\n  .project-state {\n    text-align: center;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_components.scss",
    "content": "//\n// Part: Components\n//\n\n@import \"../forms\";\n@import \"../progress-bars\";\n@import \"../cards\";\n@import \"../modals\";\n@import \"../toasts\";\n@import \"../buttons\";\n@import \"../callout\";\n@import \"../alerts\";\n@import \"../table\";\n@import \"../carousel\";\n@import \"../close\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_core.scss",
    "content": "//\n// Part: Core\n//\n\n@import \"../root\";\n@import \"../animation-effects\";\n@import \"../preloader\";\n@import \"../layout\";\n@import \"../main-header\";\n@import \"../brand\";\n@import \"../main-sidebar\";\n@import \"../sidebar-mini\";\n@import \"../control-sidebar\";\n@import \"../dropdown\";\n@import \"../navs\";\n@import \"../pagination\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_extra-components.scss",
    "content": "//\n// Part: Extra Components\n//\n\n@import \"../small-box\";\n@import \"../info-box\";\n@import \"../timeline\";\n@import \"../products\";\n@import \"../direct-chat\";\n@import \"../users-list\";\n@import \"../social-widgets\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_miscellaneous.scss",
    "content": "//\n// Part: Miscellaneous\n//\n\n@import \"../miscellaneous\";\n@import \"../print\";\n@import \"../text\";\n@import \"../elevation\";\n@import \"../colors\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_pages.scss",
    "content": "//\n// Part: Pages\n//\n\n@import \"../pages/mailbox\";\n@import \"../pages/lockscreen\";\n@import \"../pages/login_and_register\";\n@import \"../pages/404_500_errors\";\n@import \"../pages/invoice\";\n@import \"../pages/profile\";\n@import \"../pages/e-commerce\";\n@import \"../pages/projects\";\n@import \"../pages/iframe\";\n@import \"../pages/kanban\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/_plugins.scss",
    "content": "//\n// Part: Plugins\n//\n\n@import \"../plugins/mixins\";\n@import \"../plugins/fullcalendar\";\n@import \"../plugins/select2\";\n@import \"../plugins/bootstrap-slider\";\n@import \"../plugins/icheck-bootstrap\";\n@import \"../plugins/mapael\";\n@import \"../plugins/jqvmap\";\n@import \"../plugins/sweetalert2\";\n@import \"../plugins/toastr\";\n@import \"../plugins/pace\";\n@import \"../plugins/bootstrap-switch\";\n@import \"../plugins/miscellaneous\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/adminlte.components.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"../bootstrap-variables\";\n@import \"~bootstrap/scss/mixins\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"../variables\";\n@import \"../variables-alt\";\n@import \"../mixins\";\n\n@import \"components\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/adminlte.core.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Core\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"../bootstrap-variables\";\n@import \"~bootstrap/scss/bootstrap\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"../variables\";\n@import \"../variables-alt\";\n@import \"../mixins\";\n\n@import \"core\";\n@import \"miscellaneous\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/adminlte.extra-components.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Extra Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"../bootstrap-variables\";\n@import \"~bootstrap/scss/mixins\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"../variables\";\n@import \"../variables-alt\";\n@import \"../mixins\";\n\n@import \"extra-components\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/adminlte.pages.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Pages\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"../bootstrap-variables\";\n@import \"~bootstrap/scss/mixins\";\n@import \"~bootstrap/scss/close\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"../variables\";\n@import \"../variables-alt\";\n@import \"../mixins\";\n\n@import \"pages\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/parts/adminlte.plugins.scss",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Plugins\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n\n// Bootstrap\n// ---------------------------------------------------\n@import \"~bootstrap/scss/functions\";\n@import \"../bootstrap-variables\";\n@import \"~bootstrap/scss/mixins\";\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import \"../variables\";\n@import \"../variables-alt\";\n@import \"../mixins\";\n\n@import \"plugins\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_bootstrap-slider.scss",
    "content": "//\n// Plugin: Bootstrap Slider\n//\n\n// Tooltip fix\n.slider .tooltip.in {\n  opacity: $tooltip-opacity;\n}\n\n// Style override\n.slider {\n  &.slider-vertical {\n    height: 100%;\n  }\n  &.slider-horizontal {\n    width: 100%;\n  }\n}\n\n// Colors\n@each $name, $color in $theme-colors {\n  .slider-#{$name} .slider {\n    .slider-selection {\n      background: $color;\n    }\n  }\n}\n\n@each $name, $color in $colors {\n  .slider-#{$name} .slider {\n    .slider-selection {\n      background: $color;\n    }\n  }\n}\n\n.dark-mode {\n  .slider-track {\n    background-color: lighten($dark, 10%);\n    background-image: none;\n  }\n\n  @each $name, $color in $theme-colors-alt {\n    .slider-#{$name} .slider {\n      .slider-selection {\n        background: $color;\n      }\n    }\n  }\n\n  @each $name, $color in $colors-alt {\n    .slider-#{$name} .slider {\n      .slider-selection {\n        background: $color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_bootstrap-switch.scss",
    "content": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n\n$bootstrap-switch-border-radius: $btn-border-radius;\n$bootstrap-switch-handle-border-radius: .1rem;\n\n.bootstrap-switch {\n  border: $input-border-width solid $input-border-color;\n  border-radius: $bootstrap-switch-border-radius;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n\n  .bootstrap-switch-container {\n    border-radius: $bootstrap-switch-border-radius;\n    display: inline-block;\n    top: 0;\n    transform: translate3d(0, 0, 0);\n\n  }\n\n  &:focus-within {\n    box-shadow: $input-btn-focus-box-shadow;\n  }\n\n  .bootstrap-switch-handle-on,\n  .bootstrap-switch-handle-off,\n  .bootstrap-switch-label {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: table-cell;\n    font-size: 1rem;\n    font-weight: 500;\n    line-height: 1.2rem;\n    padding: .25rem .5rem;\n    vertical-align: middle;\n  }\n\n  .bootstrap-switch-handle-on,\n  .bootstrap-switch-handle-off {\n    text-align: center;\n    z-index: 1;\n\n    &.bootstrap-switch-default {\n      background: $gray-200;\n      color: color-yiq($gray-200);\n    }\n\n    @each $name, $color in $theme-colors {\n      &.bootstrap-switch-#{$name} {\n        background: $color;\n        color: color-yiq($color);\n      }\n    }\n\n    @each $name, $color in $colors {\n      &.bootstrap-switch-#{$name} {\n        background: $color;\n        color: color-yiq($color);\n      }\n    }\n  }\n\n  .bootstrap-switch-handle-on {\n    border-bottom-left-radius: $bootstrap-switch-handle-border-radius;\n    border-top-left-radius: $bootstrap-switch-handle-border-radius;\n  }\n\n  .bootstrap-switch-handle-off {\n    border-bottom-right-radius: $bootstrap-switch-handle-border-radius;\n    border-top-right-radius: $bootstrap-switch-handle-border-radius;\n  }\n\n  input[type='radio'],\n  input[type='checkbox'] {\n    filter: alpha(opacity=0);\n    left: 0;\n    margin: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    visibility: hidden;\n    z-index: -1;\n  }\n\n  &.bootstrap-switch-mini {\n    .bootstrap-switch-handle-on,\n    .bootstrap-switch-handle-off,\n    .bootstrap-switch-label {\n      font-size: .875rem;\n      line-height: 1.5;\n      padding: .1rem .3rem;\n    }\n  }\n\n  &.bootstrap-switch-small {\n    .bootstrap-switch-handle-on,\n    .bootstrap-switch-handle-off,\n    .bootstrap-switch-label {\n      font-size: .875rem;\n      line-height: 1.5;\n      padding: .2rem .4rem;\n    }\n  }\n\n  &.bootstrap-switch-large {\n    .bootstrap-switch-handle-on,\n    .bootstrap-switch-handle-off,\n    .bootstrap-switch-label {\n      font-size: 1.25rem;\n      line-height: 1.3333333rem;\n      padding: .3rem .5rem;\n    }\n  }\n\n  &.bootstrap-switch-disabled,\n  &.bootstrap-switch-readonly,\n  &.bootstrap-switch-indeterminate {\n    cursor: default;\n\n    .bootstrap-switch-handle-on,\n    .bootstrap-switch-handle-off,\n    .bootstrap-switch-label {\n      cursor: default;\n      filter: alpha(opacity=50);\n      opacity: .5;\n    }\n  }\n\n  &.bootstrap-switch-animate .bootstrap-switch-container {\n    transition: margin-left .5s;\n  }\n\n  &.bootstrap-switch-inverse {\n    .bootstrap-switch-handle-on {\n      border-radius: 0 $bootstrap-switch-handle-border-radius $bootstrap-switch-handle-border-radius 0;\n    }\n\n    .bootstrap-switch-handle-off {\n      border-radius: $bootstrap-switch-handle-border-radius 0 0 $bootstrap-switch-handle-border-radius;\n    }\n  }\n\n  // &.bootstrap-switch-focused {\n  //   border-color: $input-btn-focus-color;\n  //   box-shadow: $input-btn-focus-box-shadow;\n  //   outline: 0;\n  // }\n\n  &.bootstrap-switch-on .bootstrap-switch-label,\n  &.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n    border-bottom-right-radius: $bootstrap-switch-handle-border-radius;\n    border-top-right-radius: $bootstrap-switch-handle-border-radius;\n  }\n\n  &.bootstrap-switch-off .bootstrap-switch-label,\n  &.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n    border-bottom-left-radius: $bootstrap-switch-handle-border-radius;\n    border-top-left-radius: $bootstrap-switch-handle-border-radius;\n  }\n}\n\n.dark-mode {\n  .bootstrap-switch {\n    border-color: $gray-600;\n\n    .bootstrap-switch-handle-off.bootstrap-switch-default,\n    .bootstrap-switch-handle-on.bootstrap-switch-default {\n      background-color: lighten($dark, 2.5%);\n      color: $white;\n      border-color: lighten($dark, 7.5%);\n    }\n    .bootstrap-switch-handle-on,\n    .bootstrap-switch-handle-off {\n      @each $name, $color in $theme-colors-alt {\n        &.bootstrap-switch-#{$name} {\n          background: $color;\n          color: color-yiq($color);\n        }\n      }\n\n      @each $name, $color in $colors-alt {\n        &.bootstrap-switch-#{$name} {\n          background: $color;\n          color: color-yiq($color);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_fullcalendar.scss",
    "content": "//\n// Plugin: Full Calendar\n//\n\n// Buttons\n.fc-button {\n  background: $gray-100;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: $gray-700;\n\n  &:hover,\n  &:active,\n  &.hover {\n    background-color: #e9e9e9;\n  }\n}\n\n// Calendar title\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n// Calendar table header cells\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@include media-breakpoint-down(xs) {\n  .fc-toolbar {\n    flex-direction: column;\n\n    .fc-left {\n      order: 1;\n      margin-bottom: .5rem;\n    }\n\n    .fc-center {\n      order: 0;\n      margin-bottom: .375rem;\n    }\n\n    .fc-right {\n      order: 2;\n    }\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n\n  > li {\n    float: left;\n    font-size: 30px;\n    line-height: 30px;\n    margin-right: 5px;\n\n    .fa,\n    .fas,\n    .far,\n    .fab,\n    .fal,\n    .fad,\n    .svg-inline--fa,\n    .ion {\n      transition: transform linear .3s;\n\n      &:hover {\n        @include rotate(30deg);\n      }\n    }\n  }\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  @include box-shadow($card-shadow);\n\n  border-radius: $border-radius;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n\n  &:hover {\n    @include box-shadow(inset 0 0 90px rgba(0, 0, 0, 0.2));\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_icheck-bootstrap.scss",
    "content": "//\n// Plugin: iCheck Bootstrap\n//\n\n// iCheck colors (theme colors)\n@each $name, $color in $theme-colors {\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #{$color};\n  }\n\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n    border-color: #{$color};\n  }\n\n  .icheck-#{$name} > input:first-child:checked + label::before,\n  .icheck-#{$name} > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #{$color};\n    border-color: #{$color};\n  }\n}\n\n// iCheck colors (colors)\n@each $name, $color in $colors {\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #{$color};\n  }\n\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,\n  .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n    border-color: #{$color};\n  }\n\n  .icheck-#{$name} > input:first-child:checked + label::before,\n  .icheck-#{$name} > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #{$color};\n    border-color: #{$color};\n  }\n}\n\n.dark-mode {\n  [class*=\"icheck-\"] > input:first-child:not(:checked) {\n    + input[type=\"hidden\"] + label::before,\n    + label::before {\n      border-color: $gray-600;\n    }\n  }\n  // iCheck colors (theme colors)\n  @each $name, $color in $theme-colors-alt {\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n      border-color: #{$color};\n    }\n\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n      border-color: #{$color};\n    }\n\n    .icheck-#{$name} > input:first-child:checked + label::before,\n    .icheck-#{$name} > input:first-child:checked + input[type=\"hidden\"] + label::before {\n      background-color: #{$color};\n      border-color: #{$color};\n    }\n  }\n\n  // iCheck colors (colors)\n  @each $name, $color in $colors-alt {\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n      border-color: #{$color};\n    }\n\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,\n    .icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n      border-color: #{$color};\n    }\n\n    .icheck-#{$name} > input:first-child:checked + label::before,\n    .icheck-#{$name} > input:first-child:checked + input[type=\"hidden\"] + label::before {\n      background-color: #{$color};\n      border-color: #{$color};\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_jqvmap.scss",
    "content": "//\n// Plugins: JQVMap\n//\n\n// Zoom Button size fixes\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: $button-default-background-color;\n  border: 1px solid $button-default-border-color;\n  border-radius: $btn-border-radius;\n  color: $button-default-color;\n  height: 15px;\n  width: 15px;\n\n  &:hover,\n  &:active,\n  &.hover {\n    background-color: darken($button-default-background-color, 5%);\n    color: darken($button-default-color, 10%);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_mapael.scss",
    "content": "//\n// Plugins: jQuery Mapael\n//\n\n.mapael {\n  .map {\n    position: relative;\n  }\n\n  .mapTooltip {\n    @include reset-text();\n    @include border-radius($tooltip-border-radius);\n    @include font-size($tooltip-font-size);\n    background-color: $tooltip-bg;\n    color: $tooltip-color;\n    display: block;\n    max-width: $tooltip-max-width;\n    padding: $tooltip-padding-y $tooltip-padding-x;\n    position: absolute;\n    text-align: center;\n    word-wrap: break-word;\n    z-index: $zindex-tooltip;\n  }\n\n  .myLegend {\n    background-color: $gray-100;\n    border: 1px solid $gray-500;\n    padding: 10px;\n    width: 600px;\n  }\n\n  .zoomButton {\n    background-color: $button-default-background-color;\n    border: 1px solid $button-default-border-color;\n    border-radius: $btn-border-radius;\n    color: $button-default-color;\n    cursor: pointer;\n    font-weight: 700;\n    height: 16px;\n    left: 10px;\n    line-height: 14px;\n    padding-left: 1px;\n    position: absolute;\n    text-align: center;\n    top: 0;\n\n    user-select: none;\n    width: 16px;\n\n    &:hover,\n    &:active,\n    &.hover {\n      background-color: darken($button-default-background-color, 5%);\n      color: darken($button-default-color, 10%);\n    }\n  }\n\n  .zoomReset {\n    line-height: 12px;\n    top: 10px;\n  }\n\n  .zoomIn {\n    top: 30px;\n  }\n\n  .zoomOut {\n    top: 50px;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_miscellaneous.scss",
    "content": "//\n// Plugins: Miscellaneous\n// Old plugin codes\n//\n\n// _fix for sparkline tooltip\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n// jQueryUI\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: $gray-100;\n  border: 1px dashed $gray-300;\n  margin-bottom: 10px;\n}\n\n// Charts\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n\n.dark-mode {\n  .irs--flat .irs-line {\n    background-color: lighten($dark, 10%);\n  }\n  .jsgrid-edit-row > .jsgrid-cell,\n  .jsgrid-filter-row > .jsgrid-cell,\n  .jsgrid-grid-body, .jsgrid-grid-header,\n  .jsgrid-header-row > .jsgrid-header-cell,\n  .jsgrid-insert-row > .jsgrid-cell,\n  .jsgrid-row > .jsgrid-cell,\n  .jsgrid-alt-row > .jsgrid-cell {\n    border-color: $gray-600;\n  }\n  .jsgrid-header-row > .jsgrid-header-cell,\n  .jsgrid-row > .jsgrid-cell {\n    background-color: $dark;\n  }\n  .jsgrid-alt-row > .jsgrid-cell {\n    background-color: lighten($dark, 2.5%);\n  }\n  .jsgrid-selected-row > .jsgrid-cell {\n    background-color: lighten($dark, 5%);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_mixins.scss",
    "content": "//\n// General: Mixins\n//\n\n// Select2 Variant\n@mixin select2-variant($name, $color) {\n  .select2-#{$name} {\n\n    + .select2-container--default {\n      &.select2-container--open {\n        .select2-selection--single {\n          border-color: lighten($color, 25%);\n        }\n      }\n\n      &.select2-container--focus .select2-selection--single {\n        border-color: lighten($color, 25%);\n      }\n    }\n\n    .select2-container--default &,\n    .select2-container--default {\n      &.select2-dropdown,\n      .select2-dropdown,\n      .select2-search--inline {\n        .select2-search__field {\n          &:focus {\n            border: $input-border-width solid lighten($color, 25%);\n          }\n        }\n      }\n\n      .select2-results__option--highlighted {\n        background-color: $color;\n        color: color-yiq($color);\n\n        &[aria-selected] {\n          &,\n          &:hover {\n            background-color: darken($color, 3%);\n            color: color-yiq(darken($color, 3%));\n          }\n        }\n      }\n\n      //Multiple select\n      & {\n        .select2-selection--multiple {\n          &:focus {\n            border-color: lighten($color, 25%);\n          }\n\n          .select2-selection__choice {\n            background-color: $color;\n            border-color: darken($color, 5%);\n            color: color-yiq($color);\n          }\n\n          .select2-selection__choice__remove {\n            color: rgba(color-yiq($color), 0.7);\n\n            &:hover {\n              color: color-yiq($color);\n            }\n          }\n        }\n\n        &.select2-container--focus .select2-selection--multiple {\n          border-color: lighten($color, 25%);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_pace.scss",
    "content": "//\n// Plugin: Pace\n//\n\n.pace {\n  z-index: $zindex-main-sidebar + 10;\n\n  .pace-progress {\n    z-index: $zindex-main-sidebar + 11;\n  }\n\n  .pace-activity {\n    z-index: $zindex-main-sidebar + 12;\n  }\n}\n\n// Mixin\n@mixin pace-variant($name, $color) {\n  .pace-#{$name} {\n    .pace {\n      .pace-progress {\n        background: $color;\n      }\n    }\n  }\n\n  .pace-barber-shop-#{$name} {\n    .pace {\n      background: color-yiq($color);\n\n      .pace-progress {\n        background: $color;\n      }\n\n      .pace-activity {\n        background-image: linear-gradient(45deg, rgba(color-yiq($color), 0.2) 25%, transparent 25%, transparent 50%, rgba(color-yiq($color), 0.2) 50%, rgba(color-yiq($color), 0.2) 75%, transparent 75%, transparent);\n      }\n    }\n  }\n\n  .pace-big-counter-#{$name} {\n    .pace {\n      .pace-progress::after {\n        color: rgba($color, .19999999999999996);\n      }\n    }\n  }\n\n  .pace-bounce-#{$name} {\n    .pace {\n      .pace-activity {\n        background: $color;\n      }\n    }\n  }\n\n  .pace-center-atom-#{$name} {\n    .pace-progress {\n      height: 100px;\n      width: 80px;\n\n      &::before {\n        background: $color;\n        color: color-yiq($color);\n        font-size: .8rem;\n        line-height: .7rem;\n        padding-top: 17%;\n      }\n    }\n\n    .pace-activity {\n      border-color: $color;\n\n      &::after,\n      &::before {\n        border-color: $color;\n      }\n    }\n  }\n\n  .pace-center-circle-#{$name} {\n    .pace {\n      .pace-progress {\n        background: rgba($color, .8);\n        color: color-yiq($color);\n      }\n    }\n  }\n\n  .pace-center-radar-#{$name} {\n    .pace {\n      .pace-activity {\n        border-color: $color transparent transparent;\n      }\n\n      .pace-activity::before {\n        border-color: $color transparent transparent;\n      }\n    }\n  }\n\n  .pace-center-simple-#{$name} {\n    .pace {\n      background: color-yiq($color);\n      border-color: $color;\n\n      .pace-progress {\n        background: $color;\n      }\n    }\n  }\n\n  .pace-material-#{$name} {\n    .pace {\n      color: $color;\n    }\n  }\n\n  .pace-corner-indicator-#{$name} {\n    .pace {\n      .pace-activity {\n        background: $color;\n      }\n\n      .pace-activity::after,\n      .pace-activity::before {\n        border: 5px solid color-yiq($color);\n      }\n\n\n      .pace-activity::before {\n          border-right-color: rgba($color, .2);\n          border-left-color: rgba($color, .2);\n      }\n\n      .pace-activity::after {\n          border-top-color: rgba($color, .2);\n          border-bottom-color: rgba($color, .2);\n      }\n    }\n  }\n\n  .pace-fill-left-#{$name} {\n    .pace {\n      .pace-progress {\n        background-color: rgba($color, 0.19999999999999996);\n      }\n    }\n  }\n\n  .pace-flash-#{$name} {\n    .pace {\n      .pace-progress {\n        background: $color;\n      }\n\n      .pace-progress-inner {\n        box-shadow: 0 0 10px $color, 0 0 5px $color;\n      }\n\n      .pace-activity {\n        border-top-color: $color;\n        border-left-color: $color;\n      }\n    }\n  }\n\n  .pace-loading-bar-#{$name} {\n    .pace {\n      .pace-progress {\n        background: $color;\n        color: $color;\n        box-shadow: 120px 0 color-yiq($color), 240px 0 color-yiq($color);\n      }\n\n      .pace-activity {\n        box-shadow: inset 0 0 0 2px $color, inset 0 0 0 7px color-yiq($color);\n      }\n    }\n  }\n\n  .pace-mac-osx-#{$name} {\n    .pace {\n      .pace-progress {\n        background-color: $color;\n        box-shadow: inset -1px 0 $color, inset 0 -1px $color, inset 0 2px rgba(color-yiq($color), 0.5), inset 0 6px rgba(color-yiq($color), .3);\n      }\n\n      .pace-activity {\n        background-image: radial-gradient(rgba(color-yiq($color), .65) 0%, rgba(color-yiq($color), .15) 100%);\n        height: 12px;\n      }\n    }\n  }\n\n  .pace-progress-color-#{$name} {\n    .pace-progress {\n      color: $color;\n    }\n  }\n}\n\n\n@each $name, $color in $theme-colors {\n  @include pace-variant($name, $color);\n}\n\n@each $name, $color in $colors {\n  @include pace-variant($name, $color);\n}\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_select2.scss",
    "content": "//\n// Plugin: Select2\n//\n\n//Signle select\n// .select2-container--default,\n// .select2-selection {\n//   &.select2-container--focus,\n//   &:focus,\n//   &:active {\n//     outline: none;\n//   }\n// }\n\n.select2-container--default {\n  .select2-selection--single {\n    border: $input-border-width solid $input-border-color;\n    //border-radius: $input-radius;\n    padding: ($input-padding-y * 1.25) $input-padding-x;\n    height: $input-height;\n  }\n\n  &.select2-container--open {\n    .select2-selection--single {\n      border-color: lighten($primary, 25%);\n    }\n  }\n\n  & .select2-dropdown {\n    border: $input-border-width solid $input-border-color;\n    //border-radius: $input-radius;\n  }\n\n  & .select2-results__option {\n    padding: 6px 12px;\n    user-select: none;\n  }\n\n  & .select2-selection--single .select2-selection__rendered {\n    padding-left: 0;\n    //padding-right: 0;\n    height: auto;\n    margin-top: -3px;\n  }\n\n  &[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n    padding-right: 6px;\n    padding-left: 20px;\n  }\n\n  & .select2-selection--single .select2-selection__arrow {\n    height: 31px;\n    right: 6px;\n  }\n\n  & .select2-selection--single .select2-selection__arrow b {\n    margin-top: 0;\n  }\n\n  .select2-dropdown,\n  .select2-search--inline {\n    .select2-search__field {\n      border: $input-border-width solid $input-border-color;\n\n      &:focus {\n        outline: none;\n        border: $input-border-width solid $input-focus-border-color;\n      }\n    }\n  }\n\n  .select2-dropdown {\n    &.select2-dropdown--below {\n      border-top: 0;\n    }\n\n    &.select2-dropdown--above {\n      border-bottom: 0;\n    }\n  }\n\n  .select2-results__option {\n    &[aria-disabled='true'] {\n      color: $gray-600;\n    }\n\n    &[aria-selected='true'] {\n      $color: $gray-300;\n\n      background-color: $color;\n\n      &,\n      &:hover {\n        color: color-yiq($color);\n      }\n    }\n  }\n\n  .select2-results__option--highlighted {\n    $color: $primary;\n    background-color: $color;\n    color: color-yiq($color);\n\n    &[aria-selected] {\n      $color: darken($color, 3%);\n\n      &,\n      &:hover {\n        background-color: $color;\n        color: color-yiq($color);\n      }\n    }\n  }\n\n  //Multiple select\n  & {\n    .select2-selection--multiple {\n      border: $input-border-width solid $input-border-color;\n      min-height: $input-height;\n\n      &:focus {\n        border-color: $input-focus-border-color;\n      }\n\n      .select2-selection__rendered {\n        padding: 0 $input-padding-x / 2 $input-padding-y;\n        margin-bottom: -$input-padding-x / 2;\n\n        li:first-child.select2-search.select2-search--inline {\n          width: 100%;\n          margin-left: $input-padding-x / 2;\n\n          .select2-search__field {\n            width: 100% !important;\n          }\n        }\n\n\n        .select2-search.select2-search--inline {\n          .select2-search__field {\n            border: 0;\n            margin-top: 6px;\n          }\n        }\n      }\n\n      .select2-selection__choice {\n        background-color: $primary;\n        border-color: darken($primary, 5%);\n        color: color-yiq($primary);\n        padding: 0 10px;\n        margin-top: .31rem;\n      }\n\n      .select2-selection__choice__remove {\n        color: rgba(255, 255, 255, 0.7);\n        float: right;\n        margin-left: 5px;\n        margin-right: -2px;\n\n        &:hover {\n          color: $white;\n        }\n      }\n\n      .text-sm &,\n      &.text-sm {\n        .select2-search.select2-search--inline {\n          .select2-search__field {\n            margin-top: 8px;\n          }\n        }\n\n        .select2-selection__choice {\n          margin-top: .4rem;\n        }\n      }\n    }\n\n    &.select2-container--focus {\n      .select2-selection--single,\n      .select2-selection--multiple {\n        border-color: $input-focus-border-color;\n      }\n\n      .select2-search__field {\n        border: 0;\n      }\n    }\n  }\n\n  & .select2-selection--single .select2-selection__rendered li {\n    padding-right: 10px;\n  }\n\n  .input-group-prepend ~ & {\n    .select2-selection {\n      border-bottom-left-radius: 0;\n      border-top-left-radius: 0;\n    }\n  }\n\n  .input-group > &:not(:last-child) {\n    .select2-selection {\n      border-bottom-right-radius: 0;\n      border-top-right-radius: 0;\n    }\n  }\n}\n\n// Select2 Bootstrap4 Theme overrides\n.select2-container--bootstrap4 {\n  &.select2-container--focus .select2-selection {\n    box-shadow: none;\n  }\n}\n\n// text-sm / form-control-sm override\nselect.form-control-sm ~ {\n  .select2-container--default {\n    font-size: $font-size-sm;\n  }\n}\n\n.text-sm,\nselect.form-control-sm ~ {\n  .select2-container--default {\n    .select2-selection--single {\n      height: $input-height-sm;\n\n      .select2-selection__rendered {\n        margin-top: -.4rem;\n      }\n\n      .select2-selection__arrow {\n        top: -.12rem;\n      }\n    }\n\n    .select2-selection--multiple {\n      min-height: $input-height-sm;\n\n      .select2-selection__rendered {\n        padding: 0 $input-padding-x-sm / 2 $input-padding-y-sm;\n        margin-top: -($input-padding-x-sm / 5);\n\n        li:first-child.select2-search.select2-search--inline {\n          margin-left: $input-padding-x-sm / 2;\n        }\n\n        .select2-search.select2-search--inline {\n          .select2-search__field {\n            margin-top: 6px;\n          }\n        }\n      }\n    }\n  }\n}\n\n// Dropdown Fix inside maximized card\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n// Background colors (theme colors)\n@each $name, $color in $theme-colors {\n  @include select2-variant($name, $color);\n}\n\n// Background colors (colors)\n@each $name, $color in $colors {\n  @include select2-variant($name, $color);\n}\n\n.dark-mode {\n  .select2-selection {\n    background-color: $dark;\n    border-color: $gray-600;\n  }\n\n  .select2-container--disabled .select2-selection--single {\n    background-color: lighten($dark, 7.5%);\n  }\n\n  .select2-selection--single {\n    background-color: $dark;\n    border-color: $gray-600;\n\n    .select2-selection__rendered {\n      color: $white;\n    }\n  }\n  .select2-dropdown .select2-search__field,\n  .select2-search--inline .select2-search__field {\n    background-color: $dark;\n    border-color: $gray-600;\n    color: white;\n  }\n  .select2-dropdown {\n    background-color: $dark;\n    border-color: $gray-600;\n    color: white;\n  }\n  .select2-results__option[aria-selected=\"true\"] {\n    background-color: lighten($dark, 5%) !important;\n    color: $gray-300;\n  }\n  .select2-container .select2-search--inline .select2-search__field {\n    background-color: transparent;\n    color: $white;\n  }\n\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n    color: $white;\n  }\n\n  // Background colors (theme colors)\n  @each $name, $color in $theme-colors-alt {\n    @include select2-variant($name, $color);\n  }\n\n  // Background colors (colors)\n  @each $name, $color in $colors-alt {\n    @include select2-variant($name, $color);\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_sweetalert2.scss",
    "content": "//\n// Plugin: SweetAlert2\n//\n\n// Icon Colors\n.swal2-icon {\n  &.swal2-info {\n    border-color: ligthen($info, 20%);\n    color: $info;\n  }\n\n  &.swal2-warning {\n    border-color: ligthen($warning, 20%);\n    color: $warning;\n  }\n\n  &.swal2-error {\n    border-color: ligthen($danger, 20%);\n    color: $danger;\n  }\n\n  &.swal2-question {\n    border-color: ligthen($secondary, 20%);\n    color: $secondary;\n  }\n\n  &.swal2-success {\n    border-color: ligthen($success, 20%);\n    color: $success;\n\n    .swal2-success-ring {\n      border-color: ligthen($success, 20%);\n    }\n\n    [class^='swal2-success-line'] {\n      background-color: $success;\n    }\n  }\n}\n\n.dark-mode {\n  .swal2-popup {\n    background-color: $dark;\n    color: $gray-200;\n\n    .swal2-content,\n    .swal2-title {\n      color: $gray-200;\n    }\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/build/scss/plugins/_toastr.scss",
    "content": "//\n// Plugin: Toastr\n//\n\n// Background to FontAwesome Icons\n// #toast-container > .toast {\n//     background-image: none !important;\n// }\n// #toast-container > .toast .toast-message:before {\n//     font-family: 'Font Awesome 5 Free';\n//     font-size: 24px;\n//     font-weight: 900;\n//     line-height: 18px;\n//     float: left;\n//     color: $white;\n//     padding-right: 0.5em;\n//     margin: auto 0.5em auto -1.5em;\n// }\n// #toast-container > .toast-warning .toast-message:before {\n//     content: \"\\f06a\";\n// }\n// #toast-container > .toast-error .toast-message:before {\n//     content: \"\\f071\";\n// }\n// #toast-container > .toast-info .toast-message:before {\n//     content: \"\\f05a\";\n// }\n// #toast-container > .toast-success .toast-message:before {\n//     content: \"\\f058\";\n// }\n\n\n#toast-container {\n  // Background color\n  .toast {\n    background-color: $primary;\n  }\n\n  .toast-success {\n    background-color: $success;\n  }\n\n  .toast-error {\n    background-color: $danger;\n  }\n\n  .toast-info {\n    background-color: $info;\n  }\n\n  .toast-warning {\n    background-color: $warning;\n  }\n}\n\n// full width fix\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/composer.json",
    "content": "{\n  \"name\": \"almasaeed2010/adminlte\",\n  \"description\": \"AdminLTE - admin control panel and dashboard that's based on Bootstrap 4\",\n  \"homepage\": \"https://adminlte.io/\",\n  \"keywords\": [\n    \"css\",\n    \"js\",\n    \"less\",\n    \"responsive\",\n    \"back-end\",\n    \"template\",\n    \"theme\",\n    \"web\",\n    \"admin\"\n  ],\n  \"authors\": [\n    {\n      \"name\": \"Colorlib\"\n    }\n  ],\n  \"license\": \"MIT\",\n  \"support\": {\n    \"issues\": \"https://github.com/ColorlibHQ/AdminLTE/issues\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/adminlte.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #383f45;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #383f45;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: none;\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: none;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1f2d3d;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close, .alert-dismissible .mailbox-attachment-close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close, .modal-header .mailbox-attachment-close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #1f2d3d;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1f2d3d;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #1f2d3d;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-primary .mailbox-attachment-close, .modal-content.bg-secondary .close, .modal-content.bg-secondary .mailbox-attachment-close, .modal-content.bg-info .close, .modal-content.bg-info .mailbox-attachment-close, .modal-content.bg-danger .close, .modal-content.bg-danger .mailbox-attachment-close, .modal-content.bg-success .close, .modal-content.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close, .dark-mode .modal-content.bg-warning .mailbox-attachment-close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close, .dark-mode .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close, .dark-mode .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close, .dark-mode .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close, .dark-mode .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close, .dark-mode .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close, .dark-mode .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close, .dark-mode .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close, .dark-mode .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close, .dark-mode .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close, .dark-mode .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close, .dark-mode .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close, .dark-mode .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close, .dark-mode .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close, .dark-mode .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close, .dark-mode .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close, .dark-mode .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close, .dark-mode .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close, .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close, .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close, .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close, .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close, .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close, .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close, .toast.bg-lightblue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close, .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close, .toast.bg-olive .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close, .toast.bg-fuchsia .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close, .toast.bg-maroon .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close, .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close, .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close, .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close, .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close, .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close, .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close, .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close, .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close, .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close, .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n  box-shadow: none;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n  box-shadow: none;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n  box-shadow: none;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.dark-mode .btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close, .alert .mailbox-attachment-close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover, .alert .mailbox-attachment-close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #383f45, inset 0 -1px 0 #383f45;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus, .mailbox-attachment-close:focus {\n  outline: none;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  box-shadow: none;\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #30465f;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid,\n.content-wrapper.kanban .content .container-sm,\n.content-wrapper.kanban .content .container-md,\n.content-wrapper.kanban .content .container-lg,\n.content-wrapper.kanban .content .container-xl {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(2.25rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #1f2d3d;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #1f2d3d;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #1f2d3d;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #1f2d3d;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close, .dark-mode .mailbox-attachment-close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1f2d3d;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1f2d3d !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #1f2d3d !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/alt/adminlte.components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1f2d3d;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #1f2d3d;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-secondary .close, .modal-content.bg-info .close, .modal-content.bg-danger .close, .modal-content.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n  box-shadow: none;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n  box-shadow: none;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n  box-shadow: none;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.dark-mode .btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #383f45, inset 0 -1px 0 #383f45;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus {\n  outline: none;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n/*# sourceMappingURL=adminlte.components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/alt/adminlte.core.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Core\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #383f45;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #383f45;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: none;\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: none;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1f2d3d;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #1f2d3d;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1f2d3d;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1f2d3d !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #1f2d3d !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.core.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/alt/adminlte.extra-components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Extra Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  box-shadow: none;\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #30465f;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n/*# sourceMappingURL=adminlte.extra-components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/alt/adminlte.pages.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Pages\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n/*# sourceMappingURL=adminlte.pages.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/css/alt/adminlte.plugins.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Plugins\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(2.25rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #1f2d3d;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #1f2d3d;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #1f2d3d;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #1f2d3d;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.plugins.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/.eslintrc.json",
    "content": "{\n  \"root\": true,\n  \"parserOptions\": {\n    \"ecmaVersion\": 5,\n    \"sourceType\": \"script\"\n  },\n  \"env\": {\n    \"jquery\": true\n  },\n  \"extends\": [\n    \"plugin:unicorn/recommended\",\n    \"xo\",\n    \"xo/browser\"\n  ],\n  \"rules\": {\n    \"capitalized-comments\": \"off\",\n    \"indent\": [\n      \"error\",\n      2,\n      {\n        \"MemberExpression\": \"off\",\n        \"SwitchCase\": 1\n      }\n    ],\n    \"multiline-ternary\": [\n      \"error\",\n      \"always-multiline\"\n    ],\n    \"object-curly-spacing\": [\n      \"error\",\n      \"always\"\n    ],\n    \"semi\": [\n      \"error\",\n      \"never\"\n    ],\n    \"strict\": \"error\",\n    \"unicorn/no-array-for-each\": \"off\",\n    \"unicorn/no-for-loop\": \"off\",\n    \"unicorn/no-null\": \"off\",\n    \"unicorn/prefer-dataset\": \"off\",\n    \"unicorn/prefer-includes\": \"off\",\n    \"unicorn/prefer-node-append\": \"off\",\n    \"unicorn/prefer-query-selector\": \"off\",\n    \"unicorn/prefer-spread\": \"off\",\n    \"unicorn/prevent-abbreviations\": \"off\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/adminlte.js",
    "content": "/*!\n * AdminLTE v3.1.0 (https://adminlte.io)\n * Copyright 2014-2021 Colorlib <https://colorlib.com>\n * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {}, global.jQuery));\n}(this, (function (exports, $) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE CardRefresh.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$e = 'CardRefresh';\n  var DATA_KEY$e = 'lte.cardrefresh';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$e;\n  var JQUERY_NO_CONFLICT$e = $__default['default'].fn[NAME$e];\n  var EVENT_LOADED = \"loaded\" + EVENT_KEY$7;\n  var EVENT_OVERLAY_ADDED = \"overlay.added\" + EVENT_KEY$7;\n  var EVENT_OVERLAY_REMOVED = \"overlay.removed\" + EVENT_KEY$7;\n  var CLASS_NAME_CARD$1 = 'card';\n  var SELECTOR_CARD$1 = \".\" + CLASS_NAME_CARD$1;\n  var SELECTOR_DATA_REFRESH = '[data-card-widget=\"card-refresh\"]';\n  var Default$c = {\n    source: '',\n    sourceSelector: '',\n    params: {},\n    trigger: SELECTOR_DATA_REFRESH,\n    content: '.card-body',\n    loadInContent: true,\n    loadOnInit: true,\n    responseType: '',\n    overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n    onLoadStart: function onLoadStart() {},\n    onLoadDone: function onLoadDone(response) {\n      return response;\n    }\n  };\n\n  var CardRefresh = /*#__PURE__*/function () {\n    function CardRefresh(element, settings) {\n      this._element = element;\n      this._parent = element.parents(SELECTOR_CARD$1).first();\n      this._settings = $__default['default'].extend({}, Default$c, settings);\n      this._overlay = $__default['default'](this._settings.overlayTemplate);\n\n      if (element.hasClass(CLASS_NAME_CARD$1)) {\n        this._parent = element;\n      }\n\n      if (this._settings.source === '') {\n        throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.');\n      }\n    }\n\n    var _proto = CardRefresh.prototype;\n\n    _proto.load = function load() {\n      var _this = this;\n\n      this._addOverlay();\n\n      this._settings.onLoadStart.call($__default['default'](this));\n\n      $__default['default'].get(this._settings.source, this._settings.params, function (response) {\n        if (_this._settings.loadInContent) {\n          if (_this._settings.sourceSelector !== '') {\n            response = $__default['default'](response).find(_this._settings.sourceSelector).html();\n          }\n\n          _this._parent.find(_this._settings.content).html(response);\n        }\n\n        _this._settings.onLoadDone.call($__default['default'](_this), response);\n\n        _this._removeOverlay();\n      }, this._settings.responseType !== '' && this._settings.responseType);\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_LOADED));\n    };\n\n    _proto._addOverlay = function _addOverlay() {\n      this._parent.append(this._overlay);\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_OVERLAY_ADDED));\n    };\n\n    _proto._removeOverlay = function _removeOverlay() {\n      this._parent.find(this._overlay).remove();\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_OVERLAY_REMOVED));\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this2 = this;\n\n      $__default['default'](this).find(this._settings.trigger).on('click', function () {\n        _this2.load();\n      });\n\n      if (this._settings.loadOnInit) {\n        this.load();\n      }\n    } // Static\n    ;\n\n    CardRefresh._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$e);\n\n      var _options = $__default['default'].extend({}, Default$c, $__default['default'](this).data());\n\n      if (!data) {\n        data = new CardRefresh($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$e, typeof config === 'string' ? data : config);\n      }\n\n      if (typeof config === 'string' && /load/.test(config)) {\n        data[config]();\n      } else {\n        data._init($__default['default'](this));\n      }\n    };\n\n    return CardRefresh;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_REFRESH, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardRefresh._jQueryInterface.call($__default['default'](this), 'load');\n  });\n  $__default['default'](function () {\n    $__default['default'](SELECTOR_DATA_REFRESH).each(function () {\n      CardRefresh._jQueryInterface.call($__default['default'](this));\n    });\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$e] = CardRefresh._jQueryInterface;\n  $__default['default'].fn[NAME$e].Constructor = CardRefresh;\n\n  $__default['default'].fn[NAME$e].noConflict = function () {\n    $__default['default'].fn[NAME$e] = JQUERY_NO_CONFLICT$e;\n    return CardRefresh._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE CardWidget.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$d = 'CardWidget';\n  var DATA_KEY$d = 'lte.cardwidget';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$d;\n  var JQUERY_NO_CONFLICT$d = $__default['default'].fn[NAME$d];\n  var EVENT_EXPANDED$3 = \"expanded\" + EVENT_KEY$6;\n  var EVENT_COLLAPSED$4 = \"collapsed\" + EVENT_KEY$6;\n  var EVENT_MAXIMIZED = \"maximized\" + EVENT_KEY$6;\n  var EVENT_MINIMIZED = \"minimized\" + EVENT_KEY$6;\n  var EVENT_REMOVED$1 = \"removed\" + EVENT_KEY$6;\n  var CLASS_NAME_CARD = 'card';\n  var CLASS_NAME_COLLAPSED$1 = 'collapsed-card';\n  var CLASS_NAME_COLLAPSING = 'collapsing-card';\n  var CLASS_NAME_EXPANDING = 'expanding-card';\n  var CLASS_NAME_WAS_COLLAPSED = 'was-collapsed';\n  var CLASS_NAME_MAXIMIZED = 'maximized-card';\n  var SELECTOR_DATA_REMOVE = '[data-card-widget=\"remove\"]';\n  var SELECTOR_DATA_COLLAPSE = '[data-card-widget=\"collapse\"]';\n  var SELECTOR_DATA_MAXIMIZE = '[data-card-widget=\"maximize\"]';\n  var SELECTOR_CARD = \".\" + CLASS_NAME_CARD;\n  var SELECTOR_CARD_HEADER = '.card-header';\n  var SELECTOR_CARD_BODY = '.card-body';\n  var SELECTOR_CARD_FOOTER = '.card-footer';\n  var Default$b = {\n    animationSpeed: 'normal',\n    collapseTrigger: SELECTOR_DATA_COLLAPSE,\n    removeTrigger: SELECTOR_DATA_REMOVE,\n    maximizeTrigger: SELECTOR_DATA_MAXIMIZE,\n    collapseIcon: 'fa-minus',\n    expandIcon: 'fa-plus',\n    maximizeIcon: 'fa-expand',\n    minimizeIcon: 'fa-compress'\n  };\n\n  var CardWidget = /*#__PURE__*/function () {\n    function CardWidget(element, settings) {\n      this._element = element;\n      this._parent = element.parents(SELECTOR_CARD).first();\n\n      if (element.hasClass(CLASS_NAME_CARD)) {\n        this._parent = element;\n      }\n\n      this._settings = $__default['default'].extend({}, Default$b, settings);\n    }\n\n    var _proto = CardWidget.prototype;\n\n    _proto.collapse = function collapse() {\n      var _this = this;\n\n      this._parent.addClass(CLASS_NAME_COLLAPSING).children(SELECTOR_CARD_BODY + \", \" + SELECTOR_CARD_FOOTER).slideUp(this._settings.animationSpeed, function () {\n        _this._parent.addClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_COLLAPSING);\n      });\n\n      this._parent.find(\"> \" + SELECTOR_CARD_HEADER + \" \" + this._settings.collapseTrigger + \" .\" + this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon);\n\n      this._element.trigger($__default['default'].Event(EVENT_COLLAPSED$4), this._parent);\n    };\n\n    _proto.expand = function expand() {\n      var _this2 = this;\n\n      this._parent.addClass(CLASS_NAME_EXPANDING).children(SELECTOR_CARD_BODY + \", \" + SELECTOR_CARD_FOOTER).slideDown(this._settings.animationSpeed, function () {\n        _this2._parent.removeClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_EXPANDING);\n      });\n\n      this._parent.find(\"> \" + SELECTOR_CARD_HEADER + \" \" + this._settings.collapseTrigger + \" .\" + this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon);\n\n      this._element.trigger($__default['default'].Event(EVENT_EXPANDED$3), this._parent);\n    };\n\n    _proto.remove = function remove() {\n      this._parent.slideUp();\n\n      this._element.trigger($__default['default'].Event(EVENT_REMOVED$1), this._parent);\n    };\n\n    _proto.toggle = function toggle() {\n      if (this._parent.hasClass(CLASS_NAME_COLLAPSED$1)) {\n        this.expand();\n        return;\n      }\n\n      this.collapse();\n    };\n\n    _proto.maximize = function maximize() {\n      this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon);\n\n      this._parent.css({\n        height: this._parent.height(),\n        width: this._parent.width(),\n        transition: 'all .15s'\n      }).delay(150).queue(function () {\n        var $element = $__default['default'](this);\n        $element.addClass(CLASS_NAME_MAXIMIZED);\n        $__default['default']('html').addClass(CLASS_NAME_MAXIMIZED);\n\n        if ($element.hasClass(CLASS_NAME_COLLAPSED$1)) {\n          $element.addClass(CLASS_NAME_WAS_COLLAPSED);\n        }\n\n        $element.dequeue();\n      });\n\n      this._element.trigger($__default['default'].Event(EVENT_MAXIMIZED), this._parent);\n    };\n\n    _proto.minimize = function minimize() {\n      this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon);\n\n      this._parent.css('cssText', \"height: \" + this._parent[0].style.height + \" !important; width: \" + this._parent[0].style.width + \" !important; transition: all .15s;\").delay(10).queue(function () {\n        var $element = $__default['default'](this);\n        $element.removeClass(CLASS_NAME_MAXIMIZED);\n        $__default['default']('html').removeClass(CLASS_NAME_MAXIMIZED);\n        $element.css({\n          height: 'inherit',\n          width: 'inherit'\n        });\n\n        if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {\n          $element.removeClass(CLASS_NAME_WAS_COLLAPSED);\n        }\n\n        $element.dequeue();\n      });\n\n      this._element.trigger($__default['default'].Event(EVENT_MINIMIZED), this._parent);\n    };\n\n    _proto.toggleMaximize = function toggleMaximize() {\n      if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {\n        this.minimize();\n        return;\n      }\n\n      this.maximize();\n    } // Private\n    ;\n\n    _proto._init = function _init(card) {\n      var _this3 = this;\n\n      this._parent = card;\n      $__default['default'](this).find(this._settings.collapseTrigger).click(function () {\n        _this3.toggle();\n      });\n      $__default['default'](this).find(this._settings.maximizeTrigger).click(function () {\n        _this3.toggleMaximize();\n      });\n      $__default['default'](this).find(this._settings.removeTrigger).click(function () {\n        _this3.remove();\n      });\n    } // Static\n    ;\n\n    CardWidget._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$d);\n\n      var _options = $__default['default'].extend({}, Default$b, $__default['default'](this).data());\n\n      if (!data) {\n        data = new CardWidget($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$d, typeof config === 'string' ? data : config);\n      }\n\n      if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) {\n        data[config]();\n      } else if (typeof config === 'object') {\n        data._init($__default['default'](this));\n      }\n    };\n\n    return CardWidget;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_REMOVE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'remove');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'toggleMaximize');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$d] = CardWidget._jQueryInterface;\n  $__default['default'].fn[NAME$d].Constructor = CardWidget;\n\n  $__default['default'].fn[NAME$d].noConflict = function () {\n    $__default['default'].fn[NAME$d] = JQUERY_NO_CONFLICT$d;\n    return CardWidget._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE ControlSidebar.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$c = 'ControlSidebar';\n  var DATA_KEY$c = 'lte.controlsidebar';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$c;\n  var JQUERY_NO_CONFLICT$c = $__default['default'].fn[NAME$c];\n  var EVENT_COLLAPSED$3 = \"collapsed\" + EVENT_KEY$5;\n  var EVENT_EXPANDED$2 = \"expanded\" + EVENT_KEY$5;\n  var SELECTOR_CONTROL_SIDEBAR = '.control-sidebar';\n  var SELECTOR_CONTROL_SIDEBAR_CONTENT$1 = '.control-sidebar-content';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-widget=\"control-sidebar\"]';\n  var SELECTOR_HEADER$1 = '.main-header';\n  var SELECTOR_FOOTER$1 = '.main-footer';\n  var CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate';\n  var CLASS_NAME_CONTROL_SIDEBAR_OPEN$1 = 'control-sidebar-open';\n  var CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open';\n  var CLASS_NAME_LAYOUT_FIXED$1 = 'layout-fixed';\n  var CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed';\n  var CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed';\n  var CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed';\n  var CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed';\n  var CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed';\n  var CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed';\n  var CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed';\n  var CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed';\n  var CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed';\n  var CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed';\n  var Default$a = {\n    controlsidebarSlide: true,\n    scrollbarTheme: 'os-theme-light',\n    scrollbarAutoHide: 'l',\n    target: SELECTOR_CONTROL_SIDEBAR\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var ControlSidebar = /*#__PURE__*/function () {\n    function ControlSidebar(element, config) {\n      this._element = element;\n      this._config = config;\n    } // Public\n\n\n    var _proto = ControlSidebar.prototype;\n\n    _proto.collapse = function collapse() {\n      var $body = $__default['default']('body');\n      var $html = $__default['default']('html');\n      var target = this._config.target; // Show the control sidebar\n\n      if (this._config.controlsidebarSlide) {\n        $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n        $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n          $__default['default'](target).hide();\n          $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_COLLAPSED$3));\n    };\n\n    _proto.show = function show() {\n      var $body = $__default['default']('body');\n      var $html = $__default['default']('html'); // Collapse the control sidebar\n\n      if (this._config.controlsidebarSlide) {\n        $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n        $__default['default'](this._config.target).show().delay(10).queue(function () {\n          $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n            $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n            $__default['default'](this).dequeue();\n          });\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1);\n      }\n\n      this._fixHeight();\n\n      this._fixScrollHeight();\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_EXPANDED$2));\n    };\n\n    _proto.toggle = function toggle() {\n      var $body = $__default['default']('body');\n      var shouldClose = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n      if (shouldClose) {\n        // Close the control sidebar\n        this.collapse();\n      } else {\n        // Open the control sidebar\n        this.show();\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      var $body = $__default['default']('body');\n      var shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n      if (shouldNotHideAll) {\n        $__default['default'](SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide();\n        $__default['default'](this._config.target).css('display', 'block');\n      } else {\n        $__default['default'](SELECTOR_CONTROL_SIDEBAR).hide();\n      }\n\n      this._fixHeight();\n\n      this._fixScrollHeight();\n\n      $__default['default'](window).resize(function () {\n        _this._fixHeight();\n\n        _this._fixScrollHeight();\n      });\n      $__default['default'](window).scroll(function () {\n        var $body = $__default['default']('body');\n        var shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n        if (shouldFixHeight) {\n          _this._fixScrollHeight();\n        }\n      });\n    };\n\n    _proto._isNavbarFixed = function _isNavbarFixed() {\n      var $body = $__default['default']('body');\n      return $body.hasClass(CLASS_NAME_NAVBAR_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED);\n    };\n\n    _proto._isFooterFixed = function _isFooterFixed() {\n      var $body = $__default['default']('body');\n      return $body.hasClass(CLASS_NAME_FOOTER_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED);\n    };\n\n    _proto._fixScrollHeight = function _fixScrollHeight() {\n      var $body = $__default['default']('body');\n      var $controlSidebar = $__default['default'](this._config.target);\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) {\n        return;\n      }\n\n      var heights = {\n        scroll: $__default['default'](document).height(),\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER$1).outerHeight(),\n        footer: $__default['default'](SELECTOR_FOOTER$1).outerHeight()\n      };\n      var positions = {\n        bottom: Math.abs(heights.window + $__default['default'](window).scrollTop() - heights.scroll),\n        top: $__default['default'](window).scrollTop()\n      };\n      var navbarFixed = this._isNavbarFixed() && $__default['default'](SELECTOR_HEADER$1).css('position') === 'fixed';\n      var footerFixed = this._isFooterFixed() && $__default['default'](SELECTOR_FOOTER$1).css('position') === 'fixed';\n      var $controlsidebarContent = $__default['default'](this._config.target + \", \" + this._config.target + \" \" + SELECTOR_CONTROL_SIDEBAR_CONTENT$1);\n\n      if (positions.top === 0 && positions.bottom === 0) {\n        $controlSidebar.css({\n          bottom: heights.footer,\n          top: heights.header\n        });\n        $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer));\n      } else if (positions.bottom <= heights.footer) {\n        if (footerFixed === false) {\n          var top = heights.header - positions.top;\n          $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0);\n          $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom));\n        } else {\n          $controlSidebar.css('bottom', heights.footer);\n        }\n      } else if (positions.top <= heights.header) {\n        if (navbarFixed === false) {\n          $controlSidebar.css('top', heights.header - positions.top);\n          $controlsidebarContent.css('height', heights.window - (heights.header - positions.top));\n        } else {\n          $controlSidebar.css('top', heights.header);\n        }\n      } else if (navbarFixed === false) {\n        $controlSidebar.css('top', 0);\n        $controlsidebarContent.css('height', heights.window);\n      } else {\n        $controlSidebar.css('top', heights.header);\n      }\n\n      if (footerFixed && navbarFixed) {\n        $controlsidebarContent.css('height', '100%');\n        $controlSidebar.css('height', '');\n      } else if (footerFixed || navbarFixed) {\n        $controlsidebarContent.css('height', '100%');\n        $controlsidebarContent.css('height', '');\n      }\n    };\n\n    _proto._fixHeight = function _fixHeight() {\n      var $body = $__default['default']('body');\n      var $controlSidebar = $__default['default'](this._config.target + \" \" + SELECTOR_CONTROL_SIDEBAR_CONTENT$1);\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) {\n        $controlSidebar.attr('style', '');\n        return;\n      }\n\n      var heights = {\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER$1).outerHeight(),\n        footer: $__default['default'](SELECTOR_FOOTER$1).outerHeight()\n      };\n      var sidebarHeight = heights.window - heights.header;\n\n      if (this._isFooterFixed() && $__default['default'](SELECTOR_FOOTER$1).css('position') === 'fixed') {\n        sidebarHeight = heights.window - heights.header - heights.footer;\n      }\n\n      $controlSidebar.css('height', sidebarHeight);\n\n      if (typeof $__default['default'].fn.overlayScrollbars !== 'undefined') {\n        $controlSidebar.overlayScrollbars({\n          className: this._config.scrollbarTheme,\n          sizeAutoCapable: true,\n          scrollbars: {\n            autoHide: this._config.scrollbarAutoHide,\n            clickScrolling: true\n          }\n        });\n      }\n    } // Static\n    ;\n\n    ControlSidebar._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$c);\n\n        var _options = $__default['default'].extend({}, Default$a, $__default['default'](this).data());\n\n        if (!data) {\n          data = new ControlSidebar(this, _options);\n          $__default['default'](this).data(DATA_KEY$c, data);\n        }\n\n        if (data[operation] === 'undefined') {\n          throw new Error(operation + \" is not a function\");\n        }\n\n        data[operation]();\n      });\n    };\n\n    return ControlSidebar;\n  }();\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    ControlSidebar._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  $__default['default'](document).ready(function () {\n    ControlSidebar._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE$4), '_init');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$c] = ControlSidebar._jQueryInterface;\n  $__default['default'].fn[NAME$c].Constructor = ControlSidebar;\n\n  $__default['default'].fn[NAME$c].noConflict = function () {\n    $__default['default'].fn[NAME$c] = JQUERY_NO_CONFLICT$c;\n    return ControlSidebar._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE DirectChat.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$b = 'DirectChat';\n  var DATA_KEY$b = 'lte.directchat';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$b;\n  var JQUERY_NO_CONFLICT$b = $__default['default'].fn[NAME$b];\n  var EVENT_TOGGLED = \"toggled\" + EVENT_KEY$4;\n  var SELECTOR_DATA_TOGGLE$3 = '[data-widget=\"chat-pane-toggle\"]';\n  var SELECTOR_DIRECT_CHAT = '.direct-chat';\n  var CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open';\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var DirectChat = /*#__PURE__*/function () {\n    function DirectChat(element) {\n      this._element = element;\n    }\n\n    var _proto = DirectChat.prototype;\n\n    _proto.toggle = function toggle() {\n      $__default['default'](this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN);\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_TOGGLED));\n    } // Static\n    ;\n\n    DirectChat._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$b);\n\n        if (!data) {\n          data = new DirectChat($__default['default'](this));\n          $__default['default'](this).data(DATA_KEY$b, data);\n        }\n\n        data[config]();\n      });\n    };\n\n    return DirectChat;\n  }();\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$3, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    DirectChat._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$b] = DirectChat._jQueryInterface;\n  $__default['default'].fn[NAME$b].Constructor = DirectChat;\n\n  $__default['default'].fn[NAME$b].noConflict = function () {\n    $__default['default'].fn[NAME$b] = JQUERY_NO_CONFLICT$b;\n    return DirectChat._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Dropdown.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$a = 'Dropdown';\n  var DATA_KEY$a = 'lte.dropdown';\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var SELECTOR_NAVBAR = '.navbar';\n  var SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n  var SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show';\n  var SELECTOR_DROPDOWN_TOGGLE = '[data-toggle=\"dropdown\"]';\n  var CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'; // TODO: this is unused; should be removed along with the extend?\n\n  var Default$9 = {};\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Dropdown.prototype;\n\n    _proto.toggleSubmenu = function toggleSubmenu() {\n      this._element.siblings().show().toggleClass('show');\n\n      if (!this._element.next().hasClass('show')) {\n        this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide();\n      }\n\n      this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function () {\n        $__default['default']('.dropdown-submenu .show').removeClass('show').hide();\n      });\n    };\n\n    _proto.fixPosition = function fixPosition() {\n      var $element = $__default['default'](SELECTOR_DROPDOWN_MENU_ACTIVE);\n\n      if ($element.length === 0) {\n        return;\n      }\n\n      if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) {\n        $element.css({\n          left: 'inherit',\n          right: 0\n        });\n      } else {\n        $element.css({\n          left: 0,\n          right: 'inherit'\n        });\n      }\n\n      var offset = $element.offset();\n      var width = $element.width();\n      var visiblePart = $__default['default'](window).width() - offset.left;\n\n      if (offset.left < 0) {\n        $element.css({\n          left: 'inherit',\n          right: offset.left - 5\n        });\n      } else if (visiblePart < width) {\n        $element.css({\n          left: 'inherit',\n          right: 0\n        });\n      }\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$a);\n\n        var _config = $__default['default'].extend({}, Default$9, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Dropdown($__default['default'](this), _config);\n          $__default['default'](this).data(DATA_KEY$a, data);\n        }\n\n        if (config === 'toggleSubmenu' || config === 'fixPosition') {\n          data[config]();\n        }\n      });\n    };\n\n    return Dropdown;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](SELECTOR_DROPDOWN_MENU + \" \" + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggleSubmenu');\n  });\n  $__default['default'](SELECTOR_NAVBAR + \" \" + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) {\n    event.preventDefault();\n\n    if ($__default['default'](event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) {\n      return;\n    }\n\n    setTimeout(function () {\n      Dropdown._jQueryInterface.call($__default['default'](this), 'fixPosition');\n    }, 1);\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$a] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE ExpandableTable.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n    * Constants\n    * ====================================================\n    */\n\n  var NAME$9 = 'ExpandableTable';\n  var DATA_KEY$9 = 'lte.expandableTable';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$9;\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_EXPANDED$1 = \"expanded\" + EVENT_KEY$3;\n  var EVENT_COLLAPSED$2 = \"collapsed\" + EVENT_KEY$3;\n  var SELECTOR_TABLE = '.expandable-table';\n  var SELECTOR_EXPANDABLE_BODY = '.expandable-body';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-widget=\"expandable-table\"]';\n  var SELECTOR_ARIA_ATTR = 'aria-expanded';\n  /**\n    * Class Definition\n    * ====================================================\n    */\n\n  var ExpandableTable = /*#__PURE__*/function () {\n    function ExpandableTable(element, options) {\n      this._options = options;\n      this._element = element;\n    } // Public\n\n\n    var _proto = ExpandableTable.prototype;\n\n    _proto.init = function init() {\n      $__default['default'](SELECTOR_DATA_TOGGLE$2).each(function (_, $header) {\n        var $type = $__default['default']($header).attr(SELECTOR_ARIA_ATTR);\n        var $body = $__default['default']($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children();\n\n        if ($type === 'true') {\n          $body.show();\n        } else if ($type === 'false') {\n          $body.hide();\n          $body.parent().parent().addClass('d-none');\n        }\n      });\n    };\n\n    _proto.toggleRow = function toggleRow() {\n      var $element = this._element;\n      var time = 500;\n      var $type = $element.attr(SELECTOR_ARIA_ATTR);\n      var $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children();\n      $body.stop();\n\n      if ($type === 'true') {\n        $body.slideUp(time, function () {\n          $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none');\n        });\n        $element.attr(SELECTOR_ARIA_ATTR, 'false');\n        $element.trigger($__default['default'].Event(EVENT_COLLAPSED$2));\n      } else if ($type === 'false') {\n        $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none');\n        $body.slideDown(time);\n        $element.attr(SELECTOR_ARIA_ATTR, 'true');\n        $element.trigger($__default['default'].Event(EVENT_EXPANDED$1));\n      }\n    } // Static\n    ;\n\n    ExpandableTable._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$9);\n\n        if (!data) {\n          data = new ExpandableTable($__default['default'](this));\n          $__default['default'](this).data(DATA_KEY$9, data);\n        }\n\n        if (typeof operation === 'string' && /init|toggleRow/.test(operation)) {\n          data[operation]();\n        }\n      });\n    };\n\n    return ExpandableTable;\n  }();\n  /**\n    * Data API\n    * ====================================================\n    */\n\n\n  $__default['default'](SELECTOR_TABLE).ready(function () {\n    ExpandableTable._jQueryInterface.call($__default['default'](this), 'init');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$2, function () {\n    ExpandableTable._jQueryInterface.call($__default['default'](this), 'toggleRow');\n  });\n  /**\n    * jQuery API\n    * ====================================================\n    */\n\n  $__default['default'].fn[NAME$9] = ExpandableTable._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = ExpandableTable;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return ExpandableTable._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Fullscreen.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$8 = 'Fullscreen';\n  var DATA_KEY$8 = 'lte.fullscreen';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var SELECTOR_DATA_WIDGET$2 = '[data-widget=\"fullscreen\"]';\n  var SELECTOR_ICON = SELECTOR_DATA_WIDGET$2 + \" i\";\n  var Default$8 = {\n    minimizeIcon: 'fa-compress-arrows-alt',\n    maximizeIcon: 'fa-expand-arrows-alt'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Fullscreen = /*#__PURE__*/function () {\n    function Fullscreen(_element, _options) {\n      this.element = _element;\n      this.options = $__default['default'].extend({}, Default$8, _options);\n    } // Public\n\n\n    var _proto = Fullscreen.prototype;\n\n    _proto.toggle = function toggle() {\n      if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) {\n        this.windowed();\n      } else {\n        this.fullscreen();\n      }\n    };\n\n    _proto.fullscreen = function fullscreen() {\n      if (document.documentElement.requestFullscreen) {\n        document.documentElement.requestFullscreen();\n      } else if (document.documentElement.webkitRequestFullscreen) {\n        document.documentElement.webkitRequestFullscreen();\n      } else if (document.documentElement.msRequestFullscreen) {\n        document.documentElement.msRequestFullscreen();\n      }\n\n      $__default['default'](SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon);\n    };\n\n    _proto.windowed = function windowed() {\n      if (document.exitFullscreen) {\n        document.exitFullscreen();\n      } else if (document.webkitExitFullscreen) {\n        document.webkitExitFullscreen();\n      } else if (document.msExitFullscreen) {\n        document.msExitFullscreen();\n      }\n\n      $__default['default'](SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon);\n    } // Static\n    ;\n\n    Fullscreen._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$8);\n\n      if (!data) {\n        data = $__default['default'](this).data();\n      }\n\n      var _options = $__default['default'].extend({}, Default$8, typeof config === 'object' ? config : data);\n\n      var plugin = new Fullscreen($__default['default'](this), _options);\n      $__default['default'](this).data(DATA_KEY$8, typeof config === 'object' ? config : data);\n\n      if (typeof config === 'string' && /toggle|fullscreen|windowed/.test(config)) {\n        plugin[config]();\n      } else {\n        plugin.init();\n      }\n    };\n\n    return Fullscreen;\n  }();\n  /**\n    * Data API\n    * ====================================================\n    */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_WIDGET$2, function () {\n    Fullscreen._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$8] = Fullscreen._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = Fullscreen;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return Fullscreen._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE IFrame.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$7 = 'IFrame';\n  var DATA_KEY$7 = 'lte.iframe';\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var SELECTOR_DATA_TOGGLE$1 = '[data-widget=\"iframe\"]';\n  var SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget=\"iframe-close\"]';\n  var SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget=\"iframe-scrollleft\"]';\n  var SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget=\"iframe-scrollright\"]';\n  var SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget=\"iframe-fullscreen\"]';\n  var SELECTOR_CONTENT_WRAPPER = '.content-wrapper';\n  var SELECTOR_CONTENT_IFRAME = SELECTOR_CONTENT_WRAPPER + \" iframe\";\n  var SELECTOR_TAB_NAV = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .nav\";\n  var SELECTOR_TAB_NAVBAR_NAV = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .navbar-nav\";\n  var SELECTOR_TAB_NAVBAR_NAV_ITEM = SELECTOR_TAB_NAVBAR_NAV + \" .nav-item\";\n  var SELECTOR_TAB_NAVBAR_NAV_LINK = SELECTOR_TAB_NAVBAR_NAV + \" .nav-link\";\n  var SELECTOR_TAB_CONTENT = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .tab-content\";\n  var SELECTOR_TAB_EMPTY = SELECTOR_TAB_CONTENT + \" .tab-empty\";\n  var SELECTOR_TAB_LOADING = SELECTOR_TAB_CONTENT + \" .tab-loading\";\n  var SELECTOR_TAB_PANE = SELECTOR_TAB_CONTENT + \" .tab-pane\";\n  var SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link';\n  var SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item';\n  var SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link';\n  var SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item';\n  var CLASS_NAME_IFRAME_MODE = 'iframe-mode';\n  var CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen';\n  var Default$7 = {\n    onTabClick: function onTabClick(item) {\n      return item;\n    },\n    onTabChanged: function onTabChanged(item) {\n      return item;\n    },\n    onTabCreated: function onTabCreated(item) {\n      return item;\n    },\n    autoIframeMode: true,\n    autoItemActive: true,\n    autoShowNewTab: true,\n    allowDuplicates: false,\n    loadingScreen: true,\n    useNavbarItems: true,\n    scrollOffset: 40,\n    scrollBehaviorSwap: false,\n    iconMaximize: 'fa-expand',\n    iconMinimize: 'fa-compress'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var IFrame = /*#__PURE__*/function () {\n    function IFrame(element, config) {\n      this._config = config;\n      this._element = element;\n\n      this._init();\n    } // Public\n\n\n    var _proto = IFrame.prototype;\n\n    _proto.onTabClick = function onTabClick(item) {\n      this._config.onTabClick(item);\n    };\n\n    _proto.onTabChanged = function onTabChanged(item) {\n      this._config.onTabChanged(item);\n    };\n\n    _proto.onTabCreated = function onTabCreated(item) {\n      this._config.onTabCreated(item);\n    };\n\n    _proto.createTab = function createTab(title, link, uniqueName, autoOpen) {\n      var _this = this;\n\n      var tabId = \"panel-\" + uniqueName;\n      var navId = \"tab-\" + uniqueName;\n\n      if (this._config.allowDuplicates) {\n        tabId += \"-\" + Math.floor(Math.random() * 1000);\n        navId += \"-\" + Math.floor(Math.random() * 1000);\n      }\n\n      var newNavItem = \"<li class=\\\"nav-item\\\" role=\\\"presentation\\\"><a href=\\\"#\\\" class=\\\"btn-iframe-close\\\" data-widget=\\\"iframe-close\\\" data-type=\\\"only-this\\\"><i class=\\\"fas fa-times\\\"></i></a><a class=\\\"nav-link\\\" data-toggle=\\\"row\\\" id=\\\"\" + navId + \"\\\" href=\\\"#\" + tabId + \"\\\" role=\\\"tab\\\" aria-controls=\\\"\" + tabId + \"\\\" aria-selected=\\\"false\\\">\" + title + \"</a></li>\";\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem)));\n      var newTabItem = \"<div class=\\\"tab-pane fade\\\" id=\\\"\" + tabId + \"\\\" role=\\\"tabpanel\\\" aria-labelledby=\\\"\" + navId + \"\\\"><iframe src=\\\"\" + link + \"\\\"></iframe></div>\";\n      $__default['default'](SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem)));\n\n      if (autoOpen) {\n        if (this._config.loadingScreen) {\n          var $loadingScreen = $__default['default'](SELECTOR_TAB_LOADING);\n          $loadingScreen.fadeIn();\n          $__default['default'](tabId + \" iframe\").ready(function () {\n            if (typeof _this._config.loadingScreen === 'number') {\n              _this.switchTab(\"#\" + navId);\n\n              setTimeout(function () {\n                $loadingScreen.fadeOut();\n              }, _this._config.loadingScreen);\n            } else {\n              _this.switchTab(\"#\" + navId);\n\n              $loadingScreen.fadeOut();\n            }\n          });\n        } else {\n          this.switchTab(\"#\" + navId);\n        }\n      }\n\n      this.onTabCreated($__default['default'](\"#\" + navId));\n    };\n\n    _proto.openTabSidebar = function openTabSidebar(item, autoOpen) {\n      if (autoOpen === void 0) {\n        autoOpen = this._config.autoShowNewTab;\n      }\n\n      var $item = $__default['default'](item).clone();\n\n      if ($item.attr('href') === undefined) {\n        $item = $__default['default'](item).parent('a').clone();\n      }\n\n      $item.find('.right, .search-path').remove();\n      var title = $item.find('p').text();\n\n      if (title === '') {\n        title = $item.text();\n      }\n\n      var link = $item.attr('href');\n\n      if (link === '#' || link === '' || link === undefined) {\n        return;\n      }\n\n      var uniqueName = link.replace('./', '').replace(/[\"&'./:=?[\\]]/gi, '-').replace(/(--)/gi, '');\n      var navId = \"tab-\" + uniqueName;\n\n      if (!this._config.allowDuplicates && $__default['default'](\"#\" + navId).length > 0) {\n        return this.switchTab(\"#\" + navId);\n      }\n\n      if (!this._config.allowDuplicates && $__default['default'](\"#\" + navId).length === 0 || this._config.allowDuplicates) {\n        this.createTab(title, link, uniqueName, autoOpen);\n      }\n    };\n\n    _proto.switchTab = function switchTab(item) {\n      var $item = $__default['default'](item);\n      var tabId = $item.attr('href');\n      $__default['default'](SELECTOR_TAB_EMPTY).hide();\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV + \" .active\").tab('dispose').removeClass('active');\n\n      this._fixHeight();\n\n      $item.tab('show');\n      $item.parents('li').addClass('active');\n      this.onTabChanged($item);\n\n      if (this._config.autoItemActive) {\n        this._setItemActive($__default['default'](tabId + \" iframe\").attr('src'));\n      }\n    };\n\n    _proto.removeActiveTab = function removeActiveTab(type, element) {\n      if (type == 'all') {\n        $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM).remove();\n        $__default['default'](SELECTOR_TAB_PANE).remove();\n        $__default['default'](SELECTOR_TAB_EMPTY).show();\n      } else if (type == 'all-other') {\n        $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM + \":not(.active)\").remove();\n        $__default['default'](SELECTOR_TAB_PANE + \":not(.active)\").remove();\n      } else if (type == 'only-this') {\n        var $navClose = $__default['default'](element);\n        var $navItem = $navClose.parent('.nav-item');\n        var $navItemParent = $navItem.parent();\n        var navItemIndex = $navItem.index();\n        var tabId = $navClose.siblings('.nav-link').attr('aria-controls');\n        $navItem.remove();\n        $__default['default'](\"#\" + tabId).remove();\n\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length == $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).length) {\n          $__default['default'](SELECTOR_TAB_EMPTY).show();\n        } else {\n          var prevNavItemIndex = navItemIndex - 1;\n          this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'));\n        }\n      } else {\n        var _$navItem = $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM + \".active\");\n\n        var _$navItemParent = _$navItem.parent();\n\n        var _navItemIndex = _$navItem.index();\n\n        _$navItem.remove();\n\n        $__default['default'](SELECTOR_TAB_PANE + \".active\").remove();\n\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length == $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).length) {\n          $__default['default'](SELECTOR_TAB_EMPTY).show();\n        } else {\n          var _prevNavItemIndex = _navItemIndex - 1;\n\n          this.switchTab(_$navItemParent.children().eq(_prevNavItemIndex).find('a.nav-link'));\n        }\n      }\n    };\n\n    _proto.toggleFullscreen = function toggleFullscreen() {\n      if ($__default['default']('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n        $__default['default'](SELECTOR_DATA_TOGGLE_FULLSCREEN + \" i\").removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize);\n        $__default['default']('body').removeClass(CLASS_NAME_FULLSCREEN_MODE);\n        $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).height('auto');\n        $__default['default'](SELECTOR_CONTENT_WRAPPER).height('auto');\n        $__default['default'](SELECTOR_CONTENT_IFRAME).height('auto');\n      } else {\n        $__default['default'](SELECTOR_DATA_TOGGLE_FULLSCREEN + \" i\").removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize);\n        $__default['default']('body').addClass(CLASS_NAME_FULLSCREEN_MODE);\n      }\n\n      $__default['default'](window).trigger('resize');\n\n      this._fixHeight(true);\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      if (window.frameElement && this._config.autoIframeMode) {\n        $__default['default']('body').addClass(CLASS_NAME_IFRAME_MODE);\n      } else if ($__default['default'](SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) {\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length > 2) {\n          var $el = $__default['default'](SELECTOR_TAB_PANE + \":first-child\");\n          $el.show();\n\n          this._setItemActive($el.find('iframe').attr('src'));\n        }\n\n        this._setupListeners();\n\n        this._fixHeight(true);\n      }\n    };\n\n    _proto._navScroll = function _navScroll(offset) {\n      var leftPos = $__default['default'](SELECTOR_TAB_NAVBAR_NAV).scrollLeft();\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV).animate({\n        scrollLeft: leftPos + offset\n      }, 250, 'linear');\n    };\n\n    _proto._setupListeners = function _setupListeners() {\n      var _this2 = this;\n\n      $__default['default'](window).on('resize', function () {\n        setTimeout(function () {\n          _this2._fixHeight();\n        }, 1);\n      });\n      $__default['default'](document).on('click', SELECTOR_SIDEBAR_MENU_ITEM + \", \" + SELECTOR_SIDEBAR_SEARCH_ITEM, function (e) {\n        e.preventDefault();\n\n        _this2.openTabSidebar(e.target);\n      });\n\n      if (this._config.useNavbarItems) {\n        $__default['default'](document).on('click', SELECTOR_HEADER_MENU_ITEM + \", \" + SELECTOR_HEADER_DROPDOWN_ITEM, function (e) {\n          e.preventDefault();\n\n          _this2.openTabSidebar(e.target);\n        });\n      }\n\n      $__default['default'](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) {\n        e.preventDefault();\n\n        _this2.onTabClick(e.target);\n\n        _this2.switchTab(e.target);\n      });\n      $__default['default'](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) {\n        e.preventDefault();\n\n        _this2.onTabClick(e.target);\n\n        _this2.switchTab(e.target);\n      });\n      $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, function (e) {\n        e.preventDefault();\n        var target = e.target;\n\n        if (target.nodeName == 'I') {\n          target = e.target.offsetParent;\n        }\n\n        _this2.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target);\n      });\n      $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, function (e) {\n        e.preventDefault();\n\n        _this2.toggleFullscreen();\n      });\n      var mousedown = false;\n      var mousedownInterval = null;\n      $__default['default'](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, function (e) {\n        e.preventDefault();\n        clearInterval(mousedownInterval);\n        var scrollOffset = _this2._config.scrollOffset;\n\n        if (!_this2._config.scrollBehaviorSwap) {\n          scrollOffset = -scrollOffset;\n        }\n\n        mousedown = true;\n\n        _this2._navScroll(scrollOffset);\n\n        mousedownInterval = setInterval(function () {\n          _this2._navScroll(scrollOffset);\n        }, 250);\n      });\n      $__default['default'](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, function (e) {\n        e.preventDefault();\n        clearInterval(mousedownInterval);\n        var scrollOffset = _this2._config.scrollOffset;\n\n        if (_this2._config.scrollBehaviorSwap) {\n          scrollOffset = -scrollOffset;\n        }\n\n        mousedown = true;\n\n        _this2._navScroll(scrollOffset);\n\n        mousedownInterval = setInterval(function () {\n          _this2._navScroll(scrollOffset);\n        }, 250);\n      });\n      $__default['default'](document).on('mouseup', function () {\n        if (mousedown) {\n          mousedown = false;\n          clearInterval(mousedownInterval);\n          mousedownInterval = null;\n        }\n      });\n    };\n\n    _proto._setItemActive = function _setItemActive(href) {\n      $__default['default'](SELECTOR_SIDEBAR_MENU_ITEM + \", \" + SELECTOR_HEADER_DROPDOWN_ITEM).removeClass('active');\n      $__default['default'](SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active');\n      var $headerMenuItem = $__default['default'](SELECTOR_HEADER_MENU_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      var $headerDropdownItem = $__default['default'](SELECTOR_HEADER_DROPDOWN_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      var $sidebarMenuItem = $__default['default'](SELECTOR_SIDEBAR_MENU_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      $headerMenuItem.each(function (i, e) {\n        $__default['default'](e).parent().addClass('active');\n      });\n      $headerDropdownItem.each(function (i, e) {\n        $__default['default'](e).addClass('active');\n      });\n      $sidebarMenuItem.each(function (i, e) {\n        $__default['default'](e).addClass('active');\n        $__default['default'](e).parents('.nav-treeview').prevAll('.nav-link').addClass('active');\n      });\n    };\n\n    _proto._fixHeight = function _fixHeight(tabEmpty) {\n      if (tabEmpty === void 0) {\n        tabEmpty = false;\n      }\n\n      if ($__default['default']('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n        var windowHeight = $__default['default'](window).height();\n        var navbarHeight = $__default['default'](SELECTOR_TAB_NAV).outerHeight();\n        $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING + \", \" + SELECTOR_CONTENT_IFRAME).height(windowHeight - navbarHeight);\n        $__default['default'](SELECTOR_CONTENT_WRAPPER).height(windowHeight);\n      } else {\n        var contentWrapperHeight = parseFloat($__default['default'](SELECTOR_CONTENT_WRAPPER).css('height'));\n\n        var _navbarHeight = $__default['default'](SELECTOR_TAB_NAV).outerHeight();\n\n        if (tabEmpty == true) {\n          setTimeout(function () {\n            $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).height(contentWrapperHeight - _navbarHeight);\n          }, 50);\n        } else {\n          $__default['default'](SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - _navbarHeight);\n        }\n      }\n    } // Static\n    ;\n\n    IFrame._jQueryInterface = function _jQueryInterface(operation) {\n      var data = $__default['default'](this).data(DATA_KEY$7);\n\n      var _options = $__default['default'].extend({}, Default$7, $__default['default'](this).data());\n\n      if (!data) {\n        data = new IFrame(this, _options);\n        $__default['default'](this).data(DATA_KEY$7, data);\n      }\n\n      if (typeof operation === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(operation)) {\n        var _data;\n\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        (_data = data)[operation].apply(_data, args);\n      }\n    };\n\n    return IFrame;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    IFrame._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE$1));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$7] = IFrame._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = IFrame;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return IFrame._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Layout.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$6 = 'Layout';\n  var DATA_KEY$6 = 'lte.layout';\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var SELECTOR_HEADER = '.main-header';\n  var SELECTOR_MAIN_SIDEBAR = '.main-sidebar';\n  var SELECTOR_SIDEBAR$1 = '.main-sidebar .sidebar';\n  var SELECTOR_CONTENT = '.content-wrapper';\n  var SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content';\n  var SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget=\"control-sidebar\"]';\n  var SELECTOR_FOOTER = '.main-footer';\n  var SELECTOR_PUSHMENU_BTN = '[data-widget=\"pushmenu\"]';\n  var SELECTOR_LOGIN_BOX = '.login-box';\n  var SELECTOR_REGISTER_BOX = '.register-box';\n  var SELECTOR_PRELOADER = '.preloader';\n  var CLASS_NAME_SIDEBAR_COLLAPSED$1 = 'sidebar-collapse';\n  var CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused';\n  var CLASS_NAME_LAYOUT_FIXED = 'layout-fixed';\n  var CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open';\n  var CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open';\n  var Default$6 = {\n    scrollbarTheme: 'os-theme-light',\n    scrollbarAutoHide: 'l',\n    panelAutoHeight: true,\n    panelAutoHeightMode: 'min-height',\n    preloadDuration: 200,\n    loginRegisterAutoHeight: true\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Layout = /*#__PURE__*/function () {\n    function Layout(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Layout.prototype;\n\n    _proto.fixLayoutHeight = function fixLayoutHeight(extra) {\n      if (extra === void 0) {\n        extra = null;\n      }\n\n      var $body = $__default['default']('body');\n      var controlSidebar = 0;\n\n      if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') {\n        controlSidebar = $__default['default'](SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight();\n      }\n\n      var heights = {\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER).length > 0 ? $__default['default'](SELECTOR_HEADER).outerHeight() : 0,\n        footer: $__default['default'](SELECTOR_FOOTER).length > 0 ? $__default['default'](SELECTOR_FOOTER).outerHeight() : 0,\n        sidebar: $__default['default'](SELECTOR_SIDEBAR$1).length > 0 ? $__default['default'](SELECTOR_SIDEBAR$1).height() : 0,\n        controlSidebar: controlSidebar\n      };\n\n      var max = this._max(heights);\n\n      var offset = this._config.panelAutoHeight;\n\n      if (offset === true) {\n        offset = 0;\n      }\n\n      var $contentSelector = $__default['default'](SELECTOR_CONTENT);\n\n      if (offset !== false) {\n        if (max === heights.controlSidebar) {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset);\n        } else if (max === heights.window) {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header - heights.footer);\n        } else {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header);\n        }\n\n        if (this._isFooterFixed()) {\n          $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer);\n        }\n      }\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n        return;\n      }\n\n      if (typeof $__default['default'].fn.overlayScrollbars !== 'undefined') {\n        $__default['default'](SELECTOR_SIDEBAR$1).overlayScrollbars({\n          className: this._config.scrollbarTheme,\n          sizeAutoCapable: true,\n          scrollbars: {\n            autoHide: this._config.scrollbarAutoHide,\n            clickScrolling: true\n          }\n        });\n      } else {\n        $__default['default'](SELECTOR_SIDEBAR$1).css('overflow-y', 'auto');\n      }\n    };\n\n    _proto.fixLoginRegisterHeight = function fixLoginRegisterHeight() {\n      var $body = $__default['default']('body');\n      var $selector = $__default['default'](SELECTOR_LOGIN_BOX + \", \" + SELECTOR_REGISTER_BOX);\n\n      if ($selector.length === 0) {\n        $body.css('height', 'auto');\n        $__default['default']('html').css('height', 'auto');\n      } else {\n        var boxHeight = $selector.height();\n\n        if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) {\n          $body.css(this._config.panelAutoHeightMode, boxHeight);\n        }\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      // Activate layout height watcher\n      this.fixLayoutHeight();\n\n      if (this._config.loginRegisterAutoHeight === true) {\n        this.fixLoginRegisterHeight();\n      } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) {\n        setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight);\n      }\n\n      $__default['default'](SELECTOR_SIDEBAR$1).on('collapsed.lte.treeview expanded.lte.treeview', function () {\n        _this.fixLayoutHeight();\n      });\n      $__default['default'](SELECTOR_MAIN_SIDEBAR).on('mouseenter mouseleave', function () {\n        if ($__default['default']('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED$1)) {\n          _this.fixLayoutHeight();\n        }\n      });\n      $__default['default'](SELECTOR_PUSHMENU_BTN).on('collapsed.lte.pushmenu shown.lte.pushmenu', function () {\n        setTimeout(function () {\n          _this.fixLayoutHeight();\n        }, 300);\n      });\n      $__default['default'](SELECTOR_CONTROL_SIDEBAR_BTN).on('collapsed.lte.controlsidebar', function () {\n        _this.fixLayoutHeight();\n      }).on('expanded.lte.controlsidebar', function () {\n        _this.fixLayoutHeight('control_sidebar');\n      });\n      $__default['default'](window).resize(function () {\n        _this.fixLayoutHeight();\n      });\n      setTimeout(function () {\n        $__default['default']('body.hold-transition').removeClass('hold-transition');\n      }, 50);\n      setTimeout(function () {\n        var $preloader = $__default['default'](SELECTOR_PRELOADER);\n\n        if ($preloader) {\n          $preloader.css('height', 0);\n          setTimeout(function () {\n            $preloader.children().hide();\n          }, 200);\n        }\n      }, this._config.preloadDuration);\n    };\n\n    _proto._max = function _max(numbers) {\n      // Calculate the maximum number in a list\n      var max = 0;\n      Object.keys(numbers).forEach(function (key) {\n        if (numbers[key] > max) {\n          max = numbers[key];\n        }\n      });\n      return max;\n    };\n\n    _proto._isFooterFixed = function _isFooterFixed() {\n      return $__default['default'](SELECTOR_FOOTER).css('position') === 'fixed';\n    } // Static\n    ;\n\n    Layout._jQueryInterface = function _jQueryInterface(config) {\n      if (config === void 0) {\n        config = '';\n      }\n\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$6);\n\n        var _options = $__default['default'].extend({}, Default$6, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Layout($__default['default'](this), _options);\n          $__default['default'](this).data(DATA_KEY$6, data);\n        }\n\n        if (config === 'init' || config === '') {\n          data._init();\n        } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {\n          data[config]();\n        }\n      });\n    };\n\n    return Layout;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    Layout._jQueryInterface.call($__default['default']('body'));\n  });\n  $__default['default'](SELECTOR_SIDEBAR$1 + \" a\").on('focusin', function () {\n    $__default['default'](SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED);\n  }).on('focusout', function () {\n    $__default['default'](SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED);\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$6] = Layout._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Layout;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Layout._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE PushMenu.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$5 = 'PushMenu';\n  var DATA_KEY$5 = 'lte.pushmenu';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$5;\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var EVENT_COLLAPSED$1 = \"collapsed\" + EVENT_KEY$2;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$2;\n  var SELECTOR_TOGGLE_BUTTON$1 = '[data-widget=\"pushmenu\"]';\n  var SELECTOR_BODY = 'body';\n  var SELECTOR_OVERLAY = '#sidebar-overlay';\n  var SELECTOR_WRAPPER = '.wrapper';\n  var CLASS_NAME_COLLAPSED = 'sidebar-collapse';\n  var CLASS_NAME_OPEN$3 = 'sidebar-open';\n  var CLASS_NAME_IS_OPENING$1 = 'sidebar-is-opening';\n  var CLASS_NAME_CLOSED = 'sidebar-closed';\n  var Default$5 = {\n    autoCollapseSize: 992,\n    enableRemember: false,\n    noTransitionAfterReload: true\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var PushMenu = /*#__PURE__*/function () {\n    function PushMenu(element, options) {\n      this._element = element;\n      this._options = $__default['default'].extend({}, Default$5, options);\n\n      if ($__default['default'](SELECTOR_OVERLAY).length === 0) {\n        this._addOverlay();\n      }\n\n      this._init();\n    } // Public\n\n\n    var _proto = PushMenu.prototype;\n\n    _proto.expand = function expand() {\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if (this._options.autoCollapseSize && $__default['default'](window).width() <= this._options.autoCollapseSize) {\n        $bodySelector.addClass(CLASS_NAME_OPEN$3);\n      }\n\n      $bodySelector.addClass(CLASS_NAME_IS_OPENING$1).removeClass(CLASS_NAME_COLLAPSED + \" \" + CLASS_NAME_CLOSED).delay(50).queue(function () {\n        $bodySelector.removeClass(CLASS_NAME_IS_OPENING$1);\n        $__default['default'](this).dequeue();\n      });\n\n      if (this._options.enableRemember) {\n        localStorage.setItem(\"remember\" + EVENT_KEY$2, CLASS_NAME_OPEN$3);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_SHOWN));\n    };\n\n    _proto.collapse = function collapse() {\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if (this._options.autoCollapseSize && $__default['default'](window).width() <= this._options.autoCollapseSize) {\n        $bodySelector.removeClass(CLASS_NAME_OPEN$3).addClass(CLASS_NAME_CLOSED);\n      }\n\n      $bodySelector.addClass(CLASS_NAME_COLLAPSED);\n\n      if (this._options.enableRemember) {\n        localStorage.setItem(\"remember\" + EVENT_KEY$2, CLASS_NAME_COLLAPSED);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_COLLAPSED$1));\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) {\n        this.expand();\n      } else {\n        this.collapse();\n      }\n    };\n\n    _proto.autoCollapse = function autoCollapse(resize) {\n      if (resize === void 0) {\n        resize = false;\n      }\n\n      if (!this._options.autoCollapseSize) {\n        return;\n      }\n\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if ($__default['default'](window).width() <= this._options.autoCollapseSize) {\n        if (!$bodySelector.hasClass(CLASS_NAME_OPEN$3)) {\n          this.collapse();\n        }\n      } else if (resize === true) {\n        if ($bodySelector.hasClass(CLASS_NAME_OPEN$3)) {\n          $bodySelector.removeClass(CLASS_NAME_OPEN$3);\n        } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) {\n          this.expand();\n        }\n      }\n    };\n\n    _proto.remember = function remember() {\n      if (!this._options.enableRemember) {\n        return;\n      }\n\n      var $body = $__default['default']('body');\n      var toggleState = localStorage.getItem(\"remember\" + EVENT_KEY$2);\n\n      if (toggleState === CLASS_NAME_COLLAPSED) {\n        if (this._options.noTransitionAfterReload) {\n          $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n            $__default['default'](this).removeClass('hold-transition');\n            $__default['default'](this).dequeue();\n          });\n        } else {\n          $body.addClass(CLASS_NAME_COLLAPSED);\n        }\n      } else if (this._options.noTransitionAfterReload) {\n        $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n          $__default['default'](this).removeClass('hold-transition');\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.removeClass(CLASS_NAME_COLLAPSED);\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      this.remember();\n      this.autoCollapse();\n      $__default['default'](window).resize(function () {\n        _this.autoCollapse(true);\n      });\n    };\n\n    _proto._addOverlay = function _addOverlay() {\n      var _this2 = this;\n\n      var overlay = $__default['default']('<div />', {\n        id: 'sidebar-overlay'\n      });\n      overlay.on('click', function () {\n        _this2.collapse();\n      });\n      $__default['default'](SELECTOR_WRAPPER).append(overlay);\n    } // Static\n    ;\n\n    PushMenu._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _options = $__default['default'].extend({}, Default$5, $__default['default'](this).data());\n\n        if (!data) {\n          data = new PushMenu(this, _options);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) {\n          data[operation]();\n        }\n      });\n    };\n\n    return PushMenu;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_TOGGLE_BUTTON$1, function (event) {\n    event.preventDefault();\n    var button = event.currentTarget;\n\n    if ($__default['default'](button).data('widget') !== 'pushmenu') {\n      button = $__default['default'](button).closest(SELECTOR_TOGGLE_BUTTON$1);\n    }\n\n    PushMenu._jQueryInterface.call($__default['default'](button), 'toggle');\n  });\n  $__default['default'](window).on('load', function () {\n    PushMenu._jQueryInterface.call($__default['default'](SELECTOR_TOGGLE_BUTTON$1));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$5] = PushMenu._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = PushMenu;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return PushMenu._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE SidebarSearch.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$4 = 'SidebarSearch';\n  var DATA_KEY$4 = 'lte.sidebar-search';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var CLASS_NAME_OPEN$2 = 'sidebar-search-open';\n  var CLASS_NAME_ICON_SEARCH = 'fa-search';\n  var CLASS_NAME_ICON_CLOSE = 'fa-times';\n  var CLASS_NAME_HEADER = 'nav-header';\n  var CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results';\n  var CLASS_NAME_LIST_GROUP = 'list-group';\n  var SELECTOR_DATA_WIDGET$1 = '[data-widget=\"sidebar-search\"]';\n  var SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar';\n  var SELECTOR_NAV_LINK = '.nav-link';\n  var SELECTOR_NAV_TREEVIEW = '.nav-treeview';\n  var SELECTOR_SEARCH_INPUT$1 = SELECTOR_DATA_WIDGET$1 + \" .form-control\";\n  var SELECTOR_SEARCH_BUTTON = SELECTOR_DATA_WIDGET$1 + \" .btn\";\n  var SELECTOR_SEARCH_ICON = SELECTOR_SEARCH_BUTTON + \" i\";\n  var SELECTOR_SEARCH_LIST_GROUP = \".\" + CLASS_NAME_LIST_GROUP;\n  var SELECTOR_SEARCH_RESULTS = \".\" + CLASS_NAME_SEARCH_RESULTS;\n  var SELECTOR_SEARCH_RESULTS_GROUP = SELECTOR_SEARCH_RESULTS + \" .\" + CLASS_NAME_LIST_GROUP;\n  var Default$4 = {\n    arrowSign: '->',\n    minLength: 3,\n    maxResults: 7,\n    highlightName: true,\n    highlightPath: false,\n    highlightClass: 'text-light',\n    notFoundText: 'No element found!'\n  };\n  var SearchItems = [];\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var SidebarSearch = /*#__PURE__*/function () {\n    function SidebarSearch(_element, _options) {\n      this.element = _element;\n      this.options = $__default['default'].extend({}, Default$4, _options);\n      this.items = [];\n    } // Public\n\n\n    var _proto = SidebarSearch.prototype;\n\n    _proto.init = function init() {\n      var _this = this;\n\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).length === 0) {\n        return;\n      }\n\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).next(SELECTOR_SEARCH_RESULTS).length === 0) {\n        $__default['default'](SELECTOR_DATA_WIDGET$1).after($__default['default']('<div />', {\n          class: CLASS_NAME_SEARCH_RESULTS\n        }));\n      }\n\n      if ($__default['default'](SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) {\n        $__default['default'](SELECTOR_SEARCH_RESULTS).append($__default['default']('<div />', {\n          class: CLASS_NAME_LIST_GROUP\n        }));\n      }\n\n      this._addNotFound();\n\n      $__default['default'](SELECTOR_SIDEBAR).children().each(function (i, child) {\n        _this._parseItem(child);\n      });\n    };\n\n    _proto.search = function search() {\n      var _this2 = this;\n\n      var searchValue = $__default['default'](SELECTOR_SEARCH_INPUT$1).val().toLowerCase();\n\n      if (searchValue.length < this.options.minLength) {\n        $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).empty();\n\n        this._addNotFound();\n\n        this.close();\n        return;\n      }\n\n      var searchResults = SearchItems.filter(function (item) {\n        return item.name.toLowerCase().includes(searchValue);\n      });\n      var endResults = $__default['default'](searchResults.slice(0, this.options.maxResults));\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).empty();\n\n      if (endResults.length === 0) {\n        this._addNotFound();\n      } else {\n        endResults.each(function (i, result) {\n          $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).append(_this2._renderItem(escape(result.name), escape(result.link), result.path));\n        });\n      }\n\n      this.open();\n    };\n\n    _proto.open = function open() {\n      $__default['default'](SELECTOR_DATA_WIDGET$1).parent().addClass(CLASS_NAME_OPEN$2);\n      $__default['default'](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE);\n    };\n\n    _proto.close = function close() {\n      $__default['default'](SELECTOR_DATA_WIDGET$1).parent().removeClass(CLASS_NAME_OPEN$2);\n      $__default['default'](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH);\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).parent().hasClass(CLASS_NAME_OPEN$2)) {\n        this.close();\n      } else {\n        this.open();\n      }\n    } // Private\n    ;\n\n    _proto._parseItem = function _parseItem(item, path) {\n      var _this3 = this;\n\n      if (path === void 0) {\n        path = [];\n      }\n\n      if ($__default['default'](item).hasClass(CLASS_NAME_HEADER)) {\n        return;\n      }\n\n      var itemObject = {};\n      var navLink = $__default['default'](item).clone().find(\"> \" + SELECTOR_NAV_LINK);\n      var navTreeview = $__default['default'](item).clone().find(\"> \" + SELECTOR_NAV_TREEVIEW);\n      var link = navLink.attr('href');\n      var name = navLink.find('p').children().remove().end().text();\n      itemObject.name = this._trimText(name);\n      itemObject.link = link;\n      itemObject.path = path;\n\n      if (navTreeview.length === 0) {\n        SearchItems.push(itemObject);\n      } else {\n        var newPath = itemObject.path.concat([itemObject.name]);\n        navTreeview.children().each(function (i, child) {\n          _this3._parseItem(child, newPath);\n        });\n      }\n    };\n\n    _proto._trimText = function _trimText(text) {\n      return $.trim(text.replace(/(\\r\\n|\\n|\\r)/gm, ' '));\n    };\n\n    _proto._renderItem = function _renderItem(name, link, path) {\n      var _this4 = this;\n\n      path = path.join(\" \" + this.options.arrowSign + \" \");\n      name = unescape(name);\n\n      if (this.options.highlightName || this.options.highlightPath) {\n        var searchValue = $__default['default'](SELECTOR_SEARCH_INPUT$1).val().toLowerCase();\n        var regExp = new RegExp(searchValue, 'gi');\n\n        if (this.options.highlightName) {\n          name = name.replace(regExp, function (str) {\n            return \"<strong class=\\\"\" + _this4.options.highlightClass + \"\\\">\" + str + \"</strong>\";\n          });\n        }\n\n        if (this.options.highlightPath) {\n          path = path.replace(regExp, function (str) {\n            return \"<strong class=\\\"\" + _this4.options.highlightClass + \"\\\">\" + str + \"</strong>\";\n          });\n        }\n      }\n\n      var groupItemElement = $__default['default']('<a/>', {\n        href: link,\n        class: 'list-group-item'\n      });\n      var searchTitleElement = $__default['default']('<div/>', {\n        class: 'search-title'\n      }).html(name);\n      var searchPathElement = $__default['default']('<div/>', {\n        class: 'search-path'\n      }).html(path);\n      groupItemElement.append(searchTitleElement).append(searchPathElement);\n      return groupItemElement;\n    };\n\n    _proto._addNotFound = function _addNotFound() {\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []));\n    } // Static\n    ;\n\n    SidebarSearch._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$4);\n\n      if (!data) {\n        data = $__default['default'](this).data();\n      }\n\n      var _options = $__default['default'].extend({}, Default$4, typeof config === 'object' ? config : data);\n\n      var plugin = new SidebarSearch($__default['default'](this), _options);\n      $__default['default'](this).data(DATA_KEY$4, typeof config === 'object' ? config : data);\n\n      if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n        plugin[config]();\n      } else {\n        plugin.init();\n      }\n    };\n\n    return SidebarSearch;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_SEARCH_BUTTON, function (event) {\n    event.preventDefault();\n\n    SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'toggle');\n  });\n  $__default['default'](document).on('keyup', SELECTOR_SEARCH_INPUT$1, function (event) {\n    if (event.keyCode == 38) {\n      event.preventDefault();\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus();\n      return;\n    }\n\n    if (event.keyCode == 40) {\n      event.preventDefault();\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus();\n      return;\n    }\n\n    setTimeout(function () {\n      SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'search');\n    }, 100);\n  });\n  $__default['default'](document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, function (event) {\n    var $focused = $__default['default'](':focus');\n\n    if (event.keyCode == 38) {\n      event.preventDefault();\n\n      if ($focused.is(':first-child')) {\n        $focused.siblings().last().focus();\n      } else {\n        $focused.prev().focus();\n      }\n    }\n\n    if (event.keyCode == 40) {\n      event.preventDefault();\n\n      if ($focused.is(':last-child')) {\n        $focused.siblings().first().focus();\n      } else {\n        $focused.next().focus();\n      }\n    }\n  });\n  $__default['default'](window).on('load', function () {\n    SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'init');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$4] = SidebarSearch._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = SidebarSearch;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return SidebarSearch._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE NavbarSearch.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$3 = 'NavbarSearch';\n  var DATA_KEY$3 = 'lte.navbar-search';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]';\n  var SELECTOR_SEARCH_BLOCK = '.navbar-search-block';\n  var SELECTOR_SEARCH_INPUT = '.form-control';\n  var CLASS_NAME_OPEN$1 = 'navbar-search-open';\n  var Default$3 = {\n    resetOnClose: true,\n    target: SELECTOR_SEARCH_BLOCK\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var NavbarSearch = /*#__PURE__*/function () {\n    function NavbarSearch(_element, _options) {\n      this._element = _element;\n      this._config = $__default['default'].extend({}, Default$3, _options);\n    } // Public\n\n\n    var _proto = NavbarSearch.prototype;\n\n    _proto.open = function open() {\n      $__default['default'](this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN$1);\n      $__default['default'](this._config.target + \" \" + SELECTOR_SEARCH_INPUT).focus();\n    };\n\n    _proto.close = function close() {\n      $__default['default'](this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN$1);\n\n      if (this._config.resetOnClose) {\n        $__default['default'](this._config.target + \" \" + SELECTOR_SEARCH_INPUT).val('');\n      }\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._config.target).hasClass(CLASS_NAME_OPEN$1)) {\n        this.close();\n      } else {\n        this.open();\n      }\n    } // Static\n    ;\n\n    NavbarSearch._jQueryInterface = function _jQueryInterface(options) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$3);\n\n        var _options = $__default['default'].extend({}, Default$3, $__default['default'](this).data());\n\n        if (!data) {\n          data = new NavbarSearch(this, _options);\n          $__default['default'](this).data(DATA_KEY$3, data);\n        }\n\n        if (!/toggle|close|open/.test(options)) {\n          throw new Error(\"Undefined method \" + options);\n        }\n\n        data[options]();\n      });\n    };\n\n    return NavbarSearch;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_TOGGLE_BUTTON, function (event) {\n    event.preventDefault();\n    var button = $__default['default'](event.currentTarget);\n\n    if (button.data('widget') !== 'navbar-search') {\n      button = button.closest(SELECTOR_TOGGLE_BUTTON);\n    }\n\n    NavbarSearch._jQueryInterface.call(button, 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$3] = NavbarSearch._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = NavbarSearch;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return NavbarSearch._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Toasts.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$2 = 'Toasts';\n  var DATA_KEY$2 = 'lte.toasts';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$2;\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var EVENT_INIT = \"init\" + EVENT_KEY$1;\n  var EVENT_CREATED = \"created\" + EVENT_KEY$1;\n  var EVENT_REMOVED = \"removed\" + EVENT_KEY$1;\n  var SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight';\n  var SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft';\n  var SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight';\n  var SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft';\n  var CLASS_NAME_TOP_RIGHT = 'toasts-top-right';\n  var CLASS_NAME_TOP_LEFT = 'toasts-top-left';\n  var CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right';\n  var CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left';\n  var POSITION_TOP_RIGHT = 'topRight';\n  var POSITION_TOP_LEFT = 'topLeft';\n  var POSITION_BOTTOM_RIGHT = 'bottomRight';\n  var POSITION_BOTTOM_LEFT = 'bottomLeft';\n  var Default$2 = {\n    position: POSITION_TOP_RIGHT,\n    fixed: true,\n    autohide: false,\n    autoremove: true,\n    delay: 1000,\n    fade: true,\n    icon: null,\n    image: null,\n    imageAlt: null,\n    imageHeight: '25px',\n    title: null,\n    subtitle: null,\n    close: true,\n    body: null,\n    class: null\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Toasts = /*#__PURE__*/function () {\n    function Toasts(element, config) {\n      this._config = config;\n\n      this._prepareContainer();\n\n      $__default['default']('body').trigger($__default['default'].Event(EVENT_INIT));\n    } // Public\n\n\n    var _proto = Toasts.prototype;\n\n    _proto.create = function create() {\n      var toast = $__default['default']('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>');\n      toast.data('autohide', this._config.autohide);\n      toast.data('animation', this._config.fade);\n\n      if (this._config.class) {\n        toast.addClass(this._config.class);\n      }\n\n      if (this._config.delay && this._config.delay != 500) {\n        toast.data('delay', this._config.delay);\n      }\n\n      var toastHeader = $__default['default']('<div class=\"toast-header\">');\n\n      if (this._config.image != null) {\n        var toastImage = $__default['default']('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt);\n\n        if (this._config.imageHeight != null) {\n          toastImage.height(this._config.imageHeight).width('auto');\n        }\n\n        toastHeader.append(toastImage);\n      }\n\n      if (this._config.icon != null) {\n        toastHeader.append($__default['default']('<i />').addClass('mr-2').addClass(this._config.icon));\n      }\n\n      if (this._config.title != null) {\n        toastHeader.append($__default['default']('<strong />').addClass('mr-auto').html(this._config.title));\n      }\n\n      if (this._config.subtitle != null) {\n        toastHeader.append($__default['default']('<small />').html(this._config.subtitle));\n      }\n\n      if (this._config.close == true) {\n        var toastClose = $__default['default']('<button data-dismiss=\"toast\" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden=\"true\">&times;</span>');\n\n        if (this._config.title == null) {\n          toastClose.toggleClass('ml-2 ml-auto');\n        }\n\n        toastHeader.append(toastClose);\n      }\n\n      toast.append(toastHeader);\n\n      if (this._config.body != null) {\n        toast.append($__default['default']('<div class=\"toast-body\" />').html(this._config.body));\n      }\n\n      $__default['default'](this._getContainerId()).prepend(toast);\n      var $body = $__default['default']('body');\n      $body.trigger($__default['default'].Event(EVENT_CREATED));\n      toast.toast('show');\n\n      if (this._config.autoremove) {\n        toast.on('hidden.bs.toast', function () {\n          $__default['default'](this).delay(200).remove();\n          $body.trigger($__default['default'].Event(EVENT_REMOVED));\n        });\n      }\n    } // Static\n    ;\n\n    _proto._getContainerId = function _getContainerId() {\n      if (this._config.position == POSITION_TOP_RIGHT) {\n        return SELECTOR_CONTAINER_TOP_RIGHT;\n      }\n\n      if (this._config.position == POSITION_TOP_LEFT) {\n        return SELECTOR_CONTAINER_TOP_LEFT;\n      }\n\n      if (this._config.position == POSITION_BOTTOM_RIGHT) {\n        return SELECTOR_CONTAINER_BOTTOM_RIGHT;\n      }\n\n      if (this._config.position == POSITION_BOTTOM_LEFT) {\n        return SELECTOR_CONTAINER_BOTTOM_LEFT;\n      }\n    };\n\n    _proto._prepareContainer = function _prepareContainer() {\n      if ($__default['default'](this._getContainerId()).length === 0) {\n        var container = $__default['default']('<div />').attr('id', this._getContainerId().replace('#', ''));\n\n        if (this._config.position == POSITION_TOP_RIGHT) {\n          container.addClass(CLASS_NAME_TOP_RIGHT);\n        } else if (this._config.position == POSITION_TOP_LEFT) {\n          container.addClass(CLASS_NAME_TOP_LEFT);\n        } else if (this._config.position == POSITION_BOTTOM_RIGHT) {\n          container.addClass(CLASS_NAME_BOTTOM_RIGHT);\n        } else if (this._config.position == POSITION_BOTTOM_LEFT) {\n          container.addClass(CLASS_NAME_BOTTOM_LEFT);\n        }\n\n        $__default['default']('body').append(container);\n      }\n\n      if (this._config.fixed) {\n        $__default['default'](this._getContainerId()).addClass('fixed');\n      } else {\n        $__default['default'](this._getContainerId()).removeClass('fixed');\n      }\n    } // Static\n    ;\n\n    Toasts._jQueryInterface = function _jQueryInterface(option, config) {\n      return this.each(function () {\n        var _options = $__default['default'].extend({}, Default$2, config);\n\n        var toast = new Toasts($__default['default'](this), _options);\n\n        if (option === 'create') {\n          toast[option]();\n        }\n      });\n    };\n\n    return Toasts;\n  }();\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n\n  $__default['default'].fn[NAME$2] = Toasts._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Toasts;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Toasts._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE TodoList.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$1 = 'TodoList';\n  var DATA_KEY$1 = 'lte.todolist';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var SELECTOR_DATA_TOGGLE = '[data-widget=\"todo-list\"]';\n  var CLASS_NAME_TODO_LIST_DONE = 'done';\n  var Default$1 = {\n    onCheck: function onCheck(item) {\n      return item;\n    },\n    onUnCheck: function onUnCheck(item) {\n      return item;\n    }\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var TodoList = /*#__PURE__*/function () {\n    function TodoList(element, config) {\n      this._config = config;\n      this._element = element;\n\n      this._init();\n    } // Public\n\n\n    var _proto = TodoList.prototype;\n\n    _proto.toggle = function toggle(item) {\n      item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE);\n\n      if (!$__default['default'](item).prop('checked')) {\n        this.unCheck($__default['default'](item));\n        return;\n      }\n\n      this.check(item);\n    };\n\n    _proto.check = function check(item) {\n      this._config.onCheck.call(item);\n    };\n\n    _proto.unCheck = function unCheck(item) {\n      this._config.onUnCheck.call(item);\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      var $toggleSelector = this._element;\n      $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE);\n      $toggleSelector.on('change', 'input:checkbox', function (event) {\n        _this.toggle($__default['default'](event.target));\n      });\n    } // Static\n    ;\n\n    TodoList._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$1);\n\n        if (!data) {\n          data = $__default['default'](this).data();\n        }\n\n        var _options = $__default['default'].extend({}, Default$1, typeof config === 'object' ? config : data);\n\n        var plugin = new TodoList($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$1, typeof config === 'object' ? config : data);\n\n        if (config === 'init') {\n          plugin[config]();\n        }\n      });\n    };\n\n    return TodoList;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    TodoList._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$1] = TodoList._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = TodoList;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return TodoList._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Treeview.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME = 'Treeview';\n  var DATA_KEY = 'lte.treeview';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var EVENT_EXPANDED = \"expanded\" + EVENT_KEY;\n  var EVENT_COLLAPSED = \"collapsed\" + EVENT_KEY;\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY;\n  var SELECTOR_LI = '.nav-item';\n  var SELECTOR_LINK = '.nav-link';\n  var SELECTOR_TREEVIEW_MENU = '.nav-treeview';\n  var SELECTOR_OPEN = '.menu-open';\n  var SELECTOR_DATA_WIDGET = '[data-widget=\"treeview\"]';\n  var CLASS_NAME_OPEN = 'menu-open';\n  var CLASS_NAME_IS_OPENING = 'menu-is-opening';\n  var CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse';\n  var Default = {\n    trigger: SELECTOR_DATA_WIDGET + \" \" + SELECTOR_LINK,\n    animationSpeed: 300,\n    accordion: true,\n    expandSidebar: false,\n    sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Treeview = /*#__PURE__*/function () {\n    function Treeview(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Treeview.prototype;\n\n    _proto.init = function init() {\n      $__default['default'](\"\" + SELECTOR_LI + SELECTOR_OPEN + \" \" + SELECTOR_TREEVIEW_MENU + SELECTOR_OPEN).css('display', 'block');\n\n      this._setupListeners();\n    };\n\n    _proto.expand = function expand(treeviewMenu, parentLi) {\n      var _this = this;\n\n      var expandedEvent = $__default['default'].Event(EVENT_EXPANDED);\n\n      if (this._config.accordion) {\n        var openMenuLi = parentLi.siblings(SELECTOR_OPEN).first();\n        var openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first();\n        this.collapse(openTreeview, openMenuLi);\n      }\n\n      parentLi.addClass(CLASS_NAME_IS_OPENING);\n      treeviewMenu.stop().slideDown(this._config.animationSpeed, function () {\n        parentLi.addClass(CLASS_NAME_OPEN);\n        $__default['default'](_this._element).trigger(expandedEvent);\n      });\n\n      if (this._config.expandSidebar) {\n        this._expandSidebar();\n      }\n    };\n\n    _proto.collapse = function collapse(treeviewMenu, parentLi) {\n      var _this2 = this;\n\n      var collapsedEvent = $__default['default'].Event(EVENT_COLLAPSED);\n      parentLi.removeClass(CLASS_NAME_IS_OPENING + \" \" + CLASS_NAME_OPEN);\n      treeviewMenu.stop().slideUp(this._config.animationSpeed, function () {\n        $__default['default'](_this2._element).trigger(collapsedEvent);\n        treeviewMenu.find(SELECTOR_OPEN + \" > \" + SELECTOR_TREEVIEW_MENU).slideUp();\n        treeviewMenu.find(SELECTOR_OPEN).removeClass(CLASS_NAME_OPEN);\n      });\n    };\n\n    _proto.toggle = function toggle(event) {\n      var $relativeTarget = $__default['default'](event.currentTarget);\n      var $parent = $relativeTarget.parent();\n      var treeviewMenu = $parent.find(\"> \" + SELECTOR_TREEVIEW_MENU);\n\n      if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n        if (!$parent.is(SELECTOR_LI)) {\n          treeviewMenu = $parent.parent().find(\"> \" + SELECTOR_TREEVIEW_MENU);\n        }\n\n        if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n          return;\n        }\n      }\n\n      event.preventDefault();\n      var parentLi = $relativeTarget.parents(SELECTOR_LI).first();\n      var isOpen = parentLi.hasClass(CLASS_NAME_OPEN);\n\n      if (isOpen) {\n        this.collapse($__default['default'](treeviewMenu), parentLi);\n      } else {\n        this.expand($__default['default'](treeviewMenu), parentLi);\n      }\n    } // Private\n    ;\n\n    _proto._setupListeners = function _setupListeners() {\n      var _this3 = this;\n\n      var elementId = this._element.attr('id') !== undefined ? \"#\" + this._element.attr('id') : '';\n      $__default['default'](document).on('click', \"\" + elementId + this._config.trigger, function (event) {\n        _this3.toggle(event);\n      });\n    };\n\n    _proto._expandSidebar = function _expandSidebar() {\n      if ($__default['default']('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n        $__default['default'](this._config.sidebarButtonSelector).PushMenu('expand');\n      }\n    } // Static\n    ;\n\n    Treeview._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY);\n\n        var _options = $__default['default'].extend({}, Default, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Treeview($__default['default'](this), _options);\n          $__default['default'](this).data(DATA_KEY, data);\n        }\n\n        if (config === 'init') {\n          data[config]();\n        }\n      });\n    };\n\n    return Treeview;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    $__default['default'](SELECTOR_DATA_WIDGET).each(function () {\n      Treeview._jQueryInterface.call($__default['default'](this), 'init');\n    });\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME] = Treeview._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Treeview;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Treeview._jQueryInterface;\n  };\n\n  exports.CardRefresh = CardRefresh;\n  exports.CardWidget = CardWidget;\n  exports.ControlSidebar = ControlSidebar;\n  exports.DirectChat = DirectChat;\n  exports.Dropdown = Dropdown;\n  exports.ExpandableTable = ExpandableTable;\n  exports.Fullscreen = Fullscreen;\n  exports.IFrame = IFrame;\n  exports.Layout = Layout;\n  exports.NavbarSearch = NavbarSearch;\n  exports.PushMenu = PushMenu;\n  exports.SidebarSearch = SidebarSearch;\n  exports.Toasts = Toasts;\n  exports.TodoList = TodoList;\n  exports.Treeview = Treeview;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=adminlte.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/demo.js",
    "content": "/**\n * AdminLTE Demo Menu\n * ------------------\n * You should not use this file in production.\n * This file is for demo purposes only.\n */\n\n/* eslint-disable camelcase */\n\n(function ($) {\n  'use strict'\n\n  function capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1)\n  }\n\n  function createSkinBlock(colors, callback, noneSelected) {\n    var $block = $('<select />', {\n      class: noneSelected ? 'custom-select mb-3 border-0' : 'custom-select mb-3 text-light border-0 ' + colors[0].replace(/accent-|navbar-/, 'bg-')\n    })\n\n    if (noneSelected) {\n      var $default = $('<option />', {\n        text: 'None Selected'\n      })\n      if (callback) {\n        $default.on('click', callback)\n      }\n\n      $block.append($default)\n    }\n\n    colors.forEach(function (color) {\n      var $color = $('<option />', {\n        class: (typeof color === 'object' ? color.join(' ') : color).replace('navbar-', 'bg-').replace('accent-', 'bg-'),\n        text: capitalizeFirstLetter((typeof color === 'object' ? color.join(' ') : color).replace(/navbar-|accent-|bg-/, '').replace('-', ' '))\n      })\n\n      $block.append($color)\n\n      $color.data('color', color)\n\n      if (callback) {\n        $color.on('click', callback)\n      }\n    })\n\n    return $block\n  }\n\n  var $sidebar = $('.control-sidebar')\n  var $container = $('<div />', {\n    class: 'p-3 control-sidebar-content'\n  })\n\n  $sidebar.append($container)\n\n  // Checkboxes\n\n  $container.append(\n    '<h5>Customize AdminLTE</h5><hr class=\"mb-2\"/>'\n  )\n\n  var $dark_mode_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('dark-mode'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('dark-mode')\n    } else {\n      $('body').removeClass('dark-mode')\n    }\n  })\n  var $dark_mode_container = $('<div />', { class: 'mb-4' }).append($dark_mode_checkbox).append('<span>Dark Mode</span>')\n  $container.append($dark_mode_container)\n\n  $container.append('<h6>Header Options</h6>')\n  var $header_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-navbar-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-navbar-fixed')\n    } else {\n      $('body').removeClass('layout-navbar-fixed')\n    }\n  })\n  var $header_fixed_container = $('<div />', { class: 'mb-1' }).append($header_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($header_fixed_container)\n\n  var $dropdown_legacy_offset_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('dropdown-legacy'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('dropdown-legacy')\n    } else {\n      $('.main-header').removeClass('dropdown-legacy')\n    }\n  })\n  var $dropdown_legacy_offset_container = $('<div />', { class: 'mb-1' }).append($dropdown_legacy_offset_checkbox).append('<span>Dropdown Legacy Offset</span>')\n  $container.append($dropdown_legacy_offset_container)\n\n  var $no_border_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('border-bottom-0'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('border-bottom-0')\n    } else {\n      $('.main-header').removeClass('border-bottom-0')\n    }\n  })\n  var $no_border_container = $('<div />', { class: 'mb-4' }).append($no_border_checkbox).append('<span>No border</span>')\n  $container.append($no_border_container)\n\n  $container.append('<h6>Sidebar Options</h6>')\n\n  var $sidebar_collapsed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-collapse'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-collapse')\n      $(window).trigger('resize')\n    } else {\n      $('body').removeClass('sidebar-collapse')\n      $(window).trigger('resize')\n    }\n  })\n  var $sidebar_collapsed_container = $('<div />', { class: 'mb-1' }).append($sidebar_collapsed_checkbox).append('<span>Collapsed</span>')\n  $container.append($sidebar_collapsed_container)\n\n  $(document).on('collapsed.lte.pushmenu', '[data-widget=\"pushmenu\"]', function () {\n    $sidebar_collapsed_checkbox.prop('checked', true)\n  })\n  $(document).on('shown.lte.pushmenu', '[data-widget=\"pushmenu\"]', function () {\n    $sidebar_collapsed_checkbox.prop('checked', false)\n  })\n\n  var $sidebar_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-fixed')\n      $(window).trigger('resize')\n    } else {\n      $('body').removeClass('layout-fixed')\n      $(window).trigger('resize')\n    }\n  })\n  var $sidebar_fixed_container = $('<div />', { class: 'mb-1' }).append($sidebar_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($sidebar_fixed_container)\n\n  var $sidebar_mini_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini')\n    } else {\n      $('body').removeClass('sidebar-mini')\n    }\n  })\n  var $sidebar_mini_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_checkbox).append('<span>Sidebar Mini</span>')\n  $container.append($sidebar_mini_container)\n\n  var $sidebar_mini_md_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini-md'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini-md')\n    } else {\n      $('body').removeClass('sidebar-mini-md')\n    }\n  })\n  var $sidebar_mini_md_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_md_checkbox).append('<span>Sidebar Mini MD</span>')\n  $container.append($sidebar_mini_md_container)\n\n  var $sidebar_mini_xs_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini-xs'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini-xs')\n    } else {\n      $('body').removeClass('sidebar-mini-xs')\n    }\n  })\n  var $sidebar_mini_xs_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_xs_checkbox).append('<span>Sidebar Mini XS</span>')\n  $container.append($sidebar_mini_xs_container)\n\n  var $flat_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-flat'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-flat')\n    } else {\n      $('.nav-sidebar').removeClass('nav-flat')\n    }\n  })\n  var $flat_sidebar_container = $('<div />', { class: 'mb-1' }).append($flat_sidebar_checkbox).append('<span>Nav Flat Style</span>')\n  $container.append($flat_sidebar_container)\n\n  var $legacy_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-legacy'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-legacy')\n    } else {\n      $('.nav-sidebar').removeClass('nav-legacy')\n    }\n  })\n  var $legacy_sidebar_container = $('<div />', { class: 'mb-1' }).append($legacy_sidebar_checkbox).append('<span>Nav Legacy Style</span>')\n  $container.append($legacy_sidebar_container)\n\n  var $compact_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-compact'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-compact')\n    } else {\n      $('.nav-sidebar').removeClass('nav-compact')\n    }\n  })\n  var $compact_sidebar_container = $('<div />', { class: 'mb-1' }).append($compact_sidebar_checkbox).append('<span>Nav Compact</span>')\n  $container.append($compact_sidebar_container)\n\n  var $child_indent_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-child-indent'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-child-indent')\n    } else {\n      $('.nav-sidebar').removeClass('nav-child-indent')\n    }\n  })\n  var $child_indent_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_indent_sidebar_checkbox).append('<span>Nav Child Indent</span>')\n  $container.append($child_indent_sidebar_container)\n\n  var $child_hide_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-collapse-hide-child'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-collapse-hide-child')\n    } else {\n      $('.nav-sidebar').removeClass('nav-collapse-hide-child')\n    }\n  })\n  var $child_hide_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_hide_sidebar_checkbox).append('<span>Nav Child Hide on Collapse</span>')\n  $container.append($child_hide_sidebar_container)\n\n  var $no_expand_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-sidebar').hasClass('sidebar-no-expand'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-sidebar').addClass('sidebar-no-expand')\n    } else {\n      $('.main-sidebar').removeClass('sidebar-no-expand')\n    }\n  })\n  var $no_expand_sidebar_container = $('<div />', { class: 'mb-4' }).append($no_expand_sidebar_checkbox).append('<span>Disable Hover/Focus Auto-Expand</span>')\n  $container.append($no_expand_sidebar_container)\n\n  $container.append('<h6>Footer Options</h6>')\n  var $footer_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-footer-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-footer-fixed')\n    } else {\n      $('body').removeClass('layout-footer-fixed')\n    }\n  })\n  var $footer_fixed_container = $('<div />', { class: 'mb-4' }).append($footer_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($footer_fixed_container)\n\n  $container.append('<h6>Small Text Options</h6>')\n\n  var $text_sm_body_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('text-sm')\n    } else {\n      $('body').removeClass('text-sm')\n    }\n  })\n  var $text_sm_body_container = $('<div />', { class: 'mb-1' }).append($text_sm_body_checkbox).append('<span>Body</span>')\n  $container.append($text_sm_body_container)\n\n  var $text_sm_header_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('text-sm')\n    } else {\n      $('.main-header').removeClass('text-sm')\n    }\n  })\n  var $text_sm_header_container = $('<div />', { class: 'mb-1' }).append($text_sm_header_checkbox).append('<span>Navbar</span>')\n  $container.append($text_sm_header_container)\n\n  var $text_sm_brand_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.brand-link').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.brand-link').addClass('text-sm')\n    } else {\n      $('.brand-link').removeClass('text-sm')\n    }\n  })\n  var $text_sm_brand_container = $('<div />', { class: 'mb-1' }).append($text_sm_brand_checkbox).append('<span>Brand</span>')\n  $container.append($text_sm_brand_container)\n\n  var $text_sm_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('text-sm')\n    } else {\n      $('.nav-sidebar').removeClass('text-sm')\n    }\n  })\n  var $text_sm_sidebar_container = $('<div />', { class: 'mb-1' }).append($text_sm_sidebar_checkbox).append('<span>Sidebar Nav</span>')\n  $container.append($text_sm_sidebar_container)\n\n  var $text_sm_footer_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-footer').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-footer').addClass('text-sm')\n    } else {\n      $('.main-footer').removeClass('text-sm')\n    }\n  })\n  var $text_sm_footer_container = $('<div />', { class: 'mb-4' }).append($text_sm_footer_checkbox).append('<span>Footer</span>')\n  $container.append($text_sm_footer_container)\n\n  // Color Arrays\n\n  var navbar_dark_skins = [\n    'navbar-primary',\n    'navbar-secondary',\n    'navbar-info',\n    'navbar-success',\n    'navbar-danger',\n    'navbar-indigo',\n    'navbar-purple',\n    'navbar-pink',\n    'navbar-navy',\n    'navbar-lightblue',\n    'navbar-teal',\n    'navbar-cyan',\n    'navbar-dark',\n    'navbar-gray-dark',\n    'navbar-gray'\n  ]\n\n  var navbar_light_skins = [\n    'navbar-light',\n    'navbar-warning',\n    'navbar-white',\n    'navbar-orange'\n  ]\n\n  var sidebar_colors = [\n    'bg-primary',\n    'bg-warning',\n    'bg-info',\n    'bg-danger',\n    'bg-success',\n    'bg-indigo',\n    'bg-lightblue',\n    'bg-navy',\n    'bg-purple',\n    'bg-fuchsia',\n    'bg-pink',\n    'bg-maroon',\n    'bg-orange',\n    'bg-lime',\n    'bg-teal',\n    'bg-olive'\n  ]\n\n  var accent_colors = [\n    'accent-primary',\n    'accent-warning',\n    'accent-info',\n    'accent-danger',\n    'accent-success',\n    'accent-indigo',\n    'accent-lightblue',\n    'accent-navy',\n    'accent-purple',\n    'accent-fuchsia',\n    'accent-pink',\n    'accent-maroon',\n    'accent-orange',\n    'accent-lime',\n    'accent-teal',\n    'accent-olive'\n  ]\n\n  var sidebar_skins = [\n    'sidebar-dark-primary',\n    'sidebar-dark-warning',\n    'sidebar-dark-info',\n    'sidebar-dark-danger',\n    'sidebar-dark-success',\n    'sidebar-dark-indigo',\n    'sidebar-dark-lightblue',\n    'sidebar-dark-navy',\n    'sidebar-dark-purple',\n    'sidebar-dark-fuchsia',\n    'sidebar-dark-pink',\n    'sidebar-dark-maroon',\n    'sidebar-dark-orange',\n    'sidebar-dark-lime',\n    'sidebar-dark-teal',\n    'sidebar-dark-olive',\n    'sidebar-light-primary',\n    'sidebar-light-warning',\n    'sidebar-light-info',\n    'sidebar-light-danger',\n    'sidebar-light-success',\n    'sidebar-light-indigo',\n    'sidebar-light-lightblue',\n    'sidebar-light-navy',\n    'sidebar-light-purple',\n    'sidebar-light-fuchsia',\n    'sidebar-light-pink',\n    'sidebar-light-maroon',\n    'sidebar-light-orange',\n    'sidebar-light-lime',\n    'sidebar-light-teal',\n    'sidebar-light-olive'\n  ]\n\n  // Navbar Variants\n\n  $container.append('<h6>Navbar Variants</h6>')\n\n  var $navbar_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  var navbar_all_colors = navbar_dark_skins.concat(navbar_light_skins)\n  var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function () {\n    var color = $(this).data('color')\n    var $main_header = $('.main-header')\n    $main_header.removeClass('navbar-dark').removeClass('navbar-light')\n    navbar_all_colors.forEach(function (color) {\n      $main_header.removeClass(color)\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0 ')\n\n    if (navbar_dark_skins.indexOf(color) > -1) {\n      $main_header.addClass('navbar-dark')\n      $(this).parent().addClass(color).addClass('text-light')\n    } else {\n      $main_header.addClass('navbar-light')\n      $(this).parent().addClass(color)\n    }\n\n    $main_header.addClass(color)\n  })\n\n  var active_navbar_color = null\n  $('.main-header')[0].classList.forEach(function (className) {\n    if (navbar_all_colors.indexOf(className) > -1 && active_navbar_color === null) {\n      active_navbar_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  $navbar_variants_colors.find('option.' + active_navbar_color).prop('selected', true)\n  $navbar_variants_colors.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_navbar_color)\n\n  $navbar_variants.append($navbar_variants_colors)\n\n  $container.append($navbar_variants)\n\n  // Sidebar Colors\n\n  $container.append('<h6>Accent Color Variants</h6>')\n  var $accent_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($accent_variants)\n  $container.append(createSkinBlock(accent_colors, function () {\n    var color = $(this).data('color')\n    var accent_class = color\n    var $body = $('body')\n    accent_colors.forEach(function (skin) {\n      $body.removeClass(skin)\n    })\n\n    $body.addClass(accent_class)\n  }, true))\n\n  var active_accent_color = null\n  $('body')[0].classList.forEach(function (className) {\n    if (accent_colors.indexOf(className) > -1 && active_accent_color === null) {\n      active_accent_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  // $accent_variants.find('option.' + active_accent_color).prop('selected', true)\n  // $accent_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_accent_color)\n\n  $container.append('<h6>Dark Sidebar Variants</h6>')\n  var $sidebar_variants_dark = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($sidebar_variants_dark)\n  var $sidebar_dark_variants = createSkinBlock(sidebar_colors, function () {\n    var color = $(this).data('color')\n    var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '')\n    var $sidebar = $('.main-sidebar')\n    sidebar_skins.forEach(function (skin) {\n      $sidebar.removeClass(skin)\n      $sidebar_light_variants.removeClass(skin.replace('sidebar-dark-', 'bg-')).removeClass('text-light')\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)\n\n    $sidebar_light_variants.find('option').prop('selected', false)\n    $sidebar.addClass(sidebar_class)\n    $('.sidebar').removeClass('os-theme-dark').addClass('os-theme-light')\n  }, true)\n  $container.append($sidebar_dark_variants)\n\n  var active_sidebar_dark_color = null\n  $('.main-sidebar')[0].classList.forEach(function (className) {\n    var color = className.replace('sidebar-dark-', 'bg-')\n    if (sidebar_colors.indexOf(color) > -1 && active_sidebar_dark_color === null) {\n      active_sidebar_dark_color = color\n    }\n  })\n\n  $sidebar_dark_variants.find('option.' + active_sidebar_dark_color).prop('selected', true)\n  $sidebar_dark_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_dark_color)\n\n  $container.append('<h6>Light Sidebar Variants</h6>')\n  var $sidebar_variants_light = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($sidebar_variants_light)\n  var $sidebar_light_variants = createSkinBlock(sidebar_colors, function () {\n    var color = $(this).data('color')\n    var sidebar_class = 'sidebar-light-' + color.replace('bg-', '')\n    var $sidebar = $('.main-sidebar')\n    sidebar_skins.forEach(function (skin) {\n      $sidebar.removeClass(skin)\n      $sidebar_dark_variants.removeClass(skin.replace('sidebar-light-', 'bg-')).removeClass('text-light')\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)\n\n    $sidebar_dark_variants.find('option').prop('selected', false)\n    $sidebar.addClass(sidebar_class)\n    $('.sidebar').removeClass('os-theme-light').addClass('os-theme-dark')\n  }, true)\n  $container.append($sidebar_light_variants)\n\n  var active_sidebar_light_color = null\n  $('.main-sidebar')[0].classList.forEach(function (className) {\n    var color = className.replace('sidebar-light-', 'bg-')\n    if (sidebar_colors.indexOf(color) > -1 && active_sidebar_light_color === null) {\n      active_sidebar_light_color = color\n    }\n  })\n\n  if (active_sidebar_light_color !== null) {\n    $sidebar_light_variants.find('option.' + active_sidebar_light_color).prop('selected', true)\n    $sidebar_light_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_light_color)\n  }\n\n  var logo_skins = navbar_all_colors\n  $container.append('<h6>Brand Logo Variants</h6>')\n  var $logo_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($logo_variants)\n  var $clear_btn = $('<a />', {\n    href: '#'\n  }).text('clear').on('click', function (e) {\n    e.preventDefault()\n    var $logo = $('.brand-link')\n    logo_skins.forEach(function (skin) {\n      $logo.removeClass(skin)\n    })\n  })\n\n  var $brand_variants = createSkinBlock(logo_skins, function () {\n    var color = $(this).data('color')\n    var $logo = $('.brand-link')\n\n    if (color === 'navbar-light' || color === 'navbar-white') {\n      $logo.addClass('text-black')\n    } else {\n      $logo.removeClass('text-black')\n    }\n\n    logo_skins.forEach(function (skin) {\n      $logo.removeClass(skin)\n    })\n\n    if (color) {\n      $(this).parent().removeClass().addClass('custom-select mb-3 border-0').addClass(color).addClass(color !== 'navbar-light' && color !== 'navbar-white' ? 'text-light' : '')\n    } else {\n      $(this).parent().removeClass().addClass('custom-select mb-3 border-0')\n    }\n\n    $logo.addClass(color)\n  }, true).append($clear_btn)\n  $container.append($brand_variants)\n\n  var active_brand_color = null\n  $('.brand-link')[0].classList.forEach(function (className) {\n    if (logo_skins.indexOf(className) > -1 && active_brand_color === null) {\n      active_brand_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  if (active_brand_color) {\n    $brand_variants.find('option.' + active_brand_color).prop('selected', true)\n    $brand_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_brand_color)\n  }\n})(jQuery)\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/pages/dashboard.js",
    "content": "/*\n * Author: Abdullah A Almsaeed\n * Date: 4 Jan 2014\n * Description:\n *      This is a demo file used only for the main dashboard (index.html)\n **/\n\n/* global moment:false, Chart:false, Sparkline:false */\n\n$(function () {\n  'use strict'\n\n  // Make the dashboard widgets sortable Using jquery UI\n  $('.connectedSortable').sortable({\n    placeholder: 'sort-highlight',\n    connectWith: '.connectedSortable',\n    handle: '.card-header, .nav-tabs',\n    forcePlaceholderSize: true,\n    zIndex: 999999\n  })\n  $('.connectedSortable .card-header').css('cursor', 'move')\n\n  // jQuery UI sortable for the todo list\n  $('.todo-list').sortable({\n    placeholder: 'sort-highlight',\n    handle: '.handle',\n    forcePlaceholderSize: true,\n    zIndex: 999999\n  })\n\n  // bootstrap WYSIHTML5 - text editor\n  $('.textarea').summernote()\n\n  $('.daterange').daterangepicker({\n    ranges: {\n      Today: [moment(), moment()],\n      Yesterday: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\n      'Last 7 Days': [moment().subtract(6, 'days'), moment()],\n      'Last 30 Days': [moment().subtract(29, 'days'), moment()],\n      'This Month': [moment().startOf('month'), moment().endOf('month')],\n      'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\n    },\n    startDate: moment().subtract(29, 'days'),\n    endDate: moment()\n  }, function (start, end) {\n    // eslint-disable-next-line no-alert\n    alert('You chose: ' + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'))\n  })\n\n  /* jQueryKnob */\n  $('.knob').knob()\n\n  // jvectormap data\n  var visitorsData = {\n    US: 398, // USA\n    SA: 400, // Saudi Arabia\n    CA: 1000, // Canada\n    DE: 500, // Germany\n    FR: 760, // France\n    CN: 300, // China\n    AU: 700, // Australia\n    BR: 600, // Brazil\n    IN: 800, // India\n    GB: 320, // Great Britain\n    RU: 3000 // Russia\n  }\n  // World map by jvectormap\n  $('#world-map').vectorMap({\n    map: 'usa_en',\n    backgroundColor: 'transparent',\n    regionStyle: {\n      initial: {\n        fill: 'rgba(255, 255, 255, 0.7)',\n        'fill-opacity': 1,\n        stroke: 'rgba(0,0,0,.2)',\n        'stroke-width': 1,\n        'stroke-opacity': 1\n      }\n    },\n    series: {\n      regions: [{\n        values: visitorsData,\n        scale: ['#ffffff', '#0154ad'],\n        normalizeFunction: 'polynomial'\n      }]\n    },\n    onRegionLabelShow: function (e, el, code) {\n      if (typeof visitorsData[code] !== 'undefined') {\n        el.html(el.html() + ': ' + visitorsData[code] + ' new visitors')\n      }\n    }\n  })\n\n  // Sparkline charts\n  var sparkline1 = new Sparkline($('#sparkline-1')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n  var sparkline2 = new Sparkline($('#sparkline-2')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n  var sparkline3 = new Sparkline($('#sparkline-3')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n\n  sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021])\n  sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921])\n  sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21])\n\n  // The Calender\n  $('#calendar').datetimepicker({\n    format: 'L',\n    inline: true\n  })\n\n  // SLIMSCROLL FOR CHAT WIDGET\n  $('#chat-box').overlayScrollbars({\n    height: '250px'\n  })\n\n  /* Chart.js Charts */\n  // Sales chart\n  var salesChartCanvas = document.getElementById('revenue-chart-canvas').getContext('2d')\n  // $('#revenue-chart').get(0).getContext('2d');\n\n  var salesChartData = {\n    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        backgroundColor: 'rgba(60,141,188,0.9)',\n        borderColor: 'rgba(60,141,188,0.8)',\n        pointRadius: false,\n        pointColor: '#3b8bba',\n        pointStrokeColor: 'rgba(60,141,188,1)',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data: [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label: 'Electronics',\n        backgroundColor: 'rgba(210, 214, 222, 1)',\n        borderColor: 'rgba(210, 214, 222, 1)',\n        pointRadius: false,\n        pointColor: 'rgba(210, 214, 222, 1)',\n        pointStrokeColor: '#c1c7d1',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data: [65, 59, 80, 81, 56, 55, 40]\n      }\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines: {\n          display: false\n        }\n      }],\n      yAxes: [{\n        gridLines: {\n          display: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart(salesChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'line',\n    data: salesChartData,\n    options: salesChartOptions\n  })\n\n  // Donut Chart\n  var pieChartCanvas = $('#sales-chart-canvas').get(0).getContext('2d')\n  var pieData = {\n    labels: [\n      'Instore Sales',\n      'Download Sales',\n      'Mail-Order Sales'\n    ],\n    datasets: [\n      {\n        data: [30, 12, 20],\n        backgroundColor: ['#f56954', '#00a65a', '#f39c12']\n      }\n    ]\n  }\n  var pieOptions = {\n    legend: {\n      display: false\n    },\n    maintainAspectRatio: false,\n    responsive: true\n  }\n  // Create pie or douhnut chart\n  // You can switch between pie and douhnut using the method below.\n  // eslint-disable-next-line no-unused-vars\n  var pieChart = new Chart(pieChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'doughnut',\n    data: pieData,\n    options: pieOptions\n  })\n\n  // Sales graph chart\n  var salesGraphChartCanvas = $('#line-chart').get(0).getContext('2d')\n  // $('#revenue-chart').get(0).getContext('2d');\n\n  var salesGraphChartData = {\n    labels: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4', '2013 Q1', '2013 Q2'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        fill: false,\n        borderWidth: 2,\n        lineTension: 0,\n        spanGaps: true,\n        borderColor: '#efefef',\n        pointRadius: 3,\n        pointHoverRadius: 7,\n        pointColor: '#efefef',\n        pointBackgroundColor: '#efefef',\n        data: [2666, 2778, 4912, 3767, 6810, 5670, 4820, 15073, 10687, 8432]\n      }\n    ]\n  }\n\n  var salesGraphChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        ticks: {\n          fontColor: '#efefef'\n        },\n        gridLines: {\n          display: false,\n          color: '#efefef',\n          drawBorder: false\n        }\n      }],\n      yAxes: [{\n        ticks: {\n          stepSize: 5000,\n          fontColor: '#efefef'\n        },\n        gridLines: {\n          display: true,\n          color: '#efefef',\n          drawBorder: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesGraphChart = new Chart(salesGraphChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'line',\n    data: salesGraphChartData,\n    options: salesGraphChartOptions\n  })\n})\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/pages/dashboard2.js",
    "content": "/* global Chart:false */\n\n$(function () {\n  'use strict'\n\n  /* ChartJS\n   * -------\n   * Here we will create a few charts using ChartJS\n   */\n\n  //-----------------------\n  // - MONTHLY SALES CHART -\n  //-----------------------\n\n  // Get context with jQuery - using jQuery's .get() method.\n  var salesChartCanvas = $('#salesChart').get(0).getContext('2d')\n\n  var salesChartData = {\n    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        backgroundColor: 'rgba(60,141,188,0.9)',\n        borderColor: 'rgba(60,141,188,0.8)',\n        pointRadius: false,\n        pointColor: '#3b8bba',\n        pointStrokeColor: 'rgba(60,141,188,1)',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data: [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label: 'Electronics',\n        backgroundColor: 'rgba(210, 214, 222, 1)',\n        borderColor: 'rgba(210, 214, 222, 1)',\n        pointRadius: false,\n        pointColor: 'rgba(210, 214, 222, 1)',\n        pointStrokeColor: '#c1c7d1',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data: [65, 59, 80, 81, 56, 55, 40]\n      }\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines: {\n          display: false\n        }\n      }],\n      yAxes: [{\n        gridLines: {\n          display: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart(salesChartCanvas, {\n    type: 'line',\n    data: salesChartData,\n    options: salesChartOptions\n  }\n  )\n\n  //---------------------------\n  // - END MONTHLY SALES CHART -\n  //---------------------------\n\n  //-------------\n  // - PIE CHART -\n  //-------------\n  // Get context with jQuery - using jQuery's .get() method.\n  var pieChartCanvas = $('#pieChart').get(0).getContext('2d')\n  var pieData = {\n    labels: [\n      'Chrome',\n      'IE',\n      'FireFox',\n      'Safari',\n      'Opera',\n      'Navigator'\n    ],\n    datasets: [\n      {\n        data: [700, 500, 400, 600, 300, 100],\n        backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de']\n      }\n    ]\n  }\n  var pieOptions = {\n    legend: {\n      display: false\n    }\n  }\n  // Create pie or douhnut chart\n  // You can switch between pie and douhnut using the method below.\n  // eslint-disable-next-line no-unused-vars\n  var pieChart = new Chart(pieChartCanvas, {\n    type: 'doughnut',\n    data: pieData,\n    options: pieOptions\n  })\n\n  //-----------------\n  // - END PIE CHART -\n  //-----------------\n\n  /* jVector Maps\n   * ------------\n   * Create a world map with markers\n   */\n  $('#world-map-markers').mapael({\n    map: {\n      name: 'usa_states',\n      zoom: {\n        enabled: true,\n        maxLevel: 10\n      }\n    }\n  })\n\n  // $('#world-map-markers').vectorMap({\n  //   map              : 'world_en',\n  //   normalizeFunction: 'polynomial',\n  //   hoverOpacity     : 0.7,\n  //   hoverColor       : false,\n  //   backgroundColor  : 'transparent',\n  //   regionStyle      : {\n  //     initial      : {\n  //       fill            : 'rgba(210, 214, 222, 1)',\n  //       'fill-opacity'  : 1,\n  //       stroke          : 'none',\n  //       'stroke-width'  : 0,\n  //       'stroke-opacity': 1\n  //     },\n  //     hover        : {\n  //       'fill-opacity': 0.7,\n  //       cursor        : 'pointer'\n  //     },\n  //     selected     : {\n  //       fill: 'yellow'\n  //     },\n  //     selectedHover: {}\n  //   },\n  //   markerStyle      : {\n  //     initial: {\n  //       fill  : '#00a65a',\n  //       stroke: '#111'\n  //     }\n  //   },\n  //   markers          : [\n  //     {\n  //       latLng: [41.90, 12.45],\n  //       name  : 'Vatican City'\n  //     },\n  //     {\n  //       latLng: [43.73, 7.41],\n  //       name  : 'Monaco'\n  //     },\n  //     {\n  //       latLng: [-0.52, 166.93],\n  //       name  : 'Nauru'\n  //     },\n  //     {\n  //       latLng: [-8.51, 179.21],\n  //       name  : 'Tuvalu'\n  //     },\n  //     {\n  //       latLng: [43.93, 12.46],\n  //       name  : 'San Marino'\n  //     },\n  //     {\n  //       latLng: [47.14, 9.52],\n  //       name  : 'Liechtenstein'\n  //     },\n  //     {\n  //       latLng: [7.11, 171.06],\n  //       name  : 'Marshall Islands'\n  //     },\n  //     {\n  //       latLng: [17.3, -62.73],\n  //       name  : 'Saint Kitts and Nevis'\n  //     },\n  //     {\n  //       latLng: [3.2, 73.22],\n  //       name  : 'Maldives'\n  //     },\n  //     {\n  //       latLng: [35.88, 14.5],\n  //       name  : 'Malta'\n  //     },\n  //     {\n  //       latLng: [12.05, -61.75],\n  //       name  : 'Grenada'\n  //     },\n  //     {\n  //       latLng: [13.16, -61.23],\n  //       name  : 'Saint Vincent and the Grenadines'\n  //     },\n  //     {\n  //       latLng: [13.16, -59.55],\n  //       name  : 'Barbados'\n  //     },\n  //     {\n  //       latLng: [17.11, -61.85],\n  //       name  : 'Antigua and Barbuda'\n  //     },\n  //     {\n  //       latLng: [-4.61, 55.45],\n  //       name  : 'Seychelles'\n  //     },\n  //     {\n  //       latLng: [7.35, 134.46],\n  //       name  : 'Palau'\n  //     },\n  //     {\n  //       latLng: [42.5, 1.51],\n  //       name  : 'Andorra'\n  //     },\n  //     {\n  //       latLng: [14.01, -60.98],\n  //       name  : 'Saint Lucia'\n  //     },\n  //     {\n  //       latLng: [6.91, 158.18],\n  //       name  : 'Federated States of Micronesia'\n  //     },\n  //     {\n  //       latLng: [1.3, 103.8],\n  //       name  : 'Singapore'\n  //     },\n  //     {\n  //       latLng: [1.46, 173.03],\n  //       name  : 'Kiribati'\n  //     },\n  //     {\n  //       latLng: [-21.13, -175.2],\n  //       name  : 'Tonga'\n  //     },\n  //     {\n  //       latLng: [15.3, -61.38],\n  //       name  : 'Dominica'\n  //     },\n  //     {\n  //       latLng: [-20.2, 57.5],\n  //       name  : 'Mauritius'\n  //     },\n  //     {\n  //       latLng: [26.02, 50.55],\n  //       name  : 'Bahrain'\n  //     },\n  //     {\n  //       latLng: [0.33, 6.73],\n  //       name  : 'São Tomé and Príncipe'\n  //     }\n  //   ]\n  // })\n})\n\n// lgtm [js/unused-local-variable]\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/dist/js/pages/dashboard3.js",
    "content": "/* global Chart:false */\n\n$(function () {\n  'use strict'\n\n  var ticksStyle = {\n    fontColor: '#495057',\n    fontStyle: 'bold'\n  }\n\n  var mode = 'index'\n  var intersect = true\n\n  var $salesChart = $('#sales-chart')\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart($salesChart, {\n    type: 'bar',\n    data: {\n      labels: ['JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'],\n      datasets: [\n        {\n          backgroundColor: '#007bff',\n          borderColor: '#007bff',\n          data: [1000, 2000, 3000, 2500, 2700, 2500, 3000]\n        },\n        {\n          backgroundColor: '#ced4da',\n          borderColor: '#ced4da',\n          data: [700, 1700, 2700, 2000, 1800, 1500, 2000]\n        }\n      ]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips: {\n        mode: mode,\n        intersect: intersect\n      },\n      hover: {\n        mode: mode,\n        intersect: intersect\n      },\n      legend: {\n        display: false\n      },\n      scales: {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display: true,\n            lineWidth: '4px',\n            color: 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks: $.extend({\n            beginAtZero: true,\n\n            // Include a dollar sign in the ticks\n            callback: function (value) {\n              if (value >= 1000) {\n                value /= 1000\n                value += 'k'\n              }\n\n              return '$' + value\n            }\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display: true,\n          gridLines: {\n            display: false\n          },\n          ticks: ticksStyle\n        }]\n      }\n    }\n  })\n\n  var $visitorsChart = $('#visitors-chart')\n  // eslint-disable-next-line no-unused-vars\n  var visitorsChart = new Chart($visitorsChart, {\n    data: {\n      labels: ['18th', '20th', '22nd', '24th', '26th', '28th', '30th'],\n      datasets: [{\n        type: 'line',\n        data: [100, 120, 170, 167, 180, 177, 160],\n        backgroundColor: 'transparent',\n        borderColor: '#007bff',\n        pointBorderColor: '#007bff',\n        pointBackgroundColor: '#007bff',\n        fill: false\n        // pointHoverBackgroundColor: '#007bff',\n        // pointHoverBorderColor    : '#007bff'\n      },\n      {\n        type: 'line',\n        data: [60, 80, 70, 67, 80, 77, 100],\n        backgroundColor: 'tansparent',\n        borderColor: '#ced4da',\n        pointBorderColor: '#ced4da',\n        pointBackgroundColor: '#ced4da',\n        fill: false\n        // pointHoverBackgroundColor: '#ced4da',\n        // pointHoverBorderColor    : '#ced4da'\n      }]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips: {\n        mode: mode,\n        intersect: intersect\n      },\n      hover: {\n        mode: mode,\n        intersect: intersect\n      },\n      legend: {\n        display: false\n      },\n      scales: {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display: true,\n            lineWidth: '4px',\n            color: 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks: $.extend({\n            beginAtZero: true,\n            suggestedMax: 200\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display: true,\n          gridLines: {\n            display: false\n          },\n          ticks: ticksStyle\n        }]\n      }\n    }\n  })\n})\n\n// lgtm [js/unused-local-variable]\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/404.html",
    "content": "---\nlayout: default\ntitle: Error 404\n---\n\n  <div class=\"content-wrapper pt-5\">\n    <section class=\"content\">\n      <div class=\"error-page\">\n        <h2 class=\"headline text-warning\">404</h2>\n        <div class=\"error-content\">\n          <h3><i class=\"fas fa-exclamation-triangle text-warning\"></i> Oops! Page not found.</h3>\n          <p>\n            We could not find the page you were looking for.\n            Meanwhile, you may <a href=\"{% link index.md %}\">return to index</a>.\n          </p>\n        </div>\n      </div>\n    </section>\n  </div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/Gemfile",
    "content": "source 'https://rubygems.org'\n\ngroup :development, :test do\n  gem 'jekyll', '~> 4.2.0'\n  gem 'jekyll-seo-tag', '~> 2.7.1'\n  gem 'jekyll-sitemap', '~> 1.4.0'\n  gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform?\nend\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_config.yml",
    "content": "title: AdminLTE v3 Documentation\nversion: v3.1.0\ndescription: AdminLTE v3.1 Documentation\n\nbaseurl: /docs/3.1\nurl: https://adminlte.io\n\nplugins:\n  - jekyll-seo-tag\n  - jekyll-sitemap\n\nnavigation:\n  - title: Installation\n    url: index.html\n    icon: fas fa-microchip\n  - title: Dependencies & Plugins\n    url: dependencies.html\n    icon: fas fa-handshake\n  - title: Layout\n    url: layout.html\n    icon: fas fa-copy\n  - title: Components\n    icon: fas fa-th\n    url: components\n    subitems:\n      - title: Main Header\n        url: components/main-header.html\n      - title: Main Sidebar\n        url: components/main-sidebar.html\n      - title: Control Sidebar\n        url: components/control-sidebar.html\n      - title: Card\n        url: components/cards.html\n      - title: Small-/ Info-Box\n        url: components/boxes.html\n      - title: Direct Chat\n        url: components/direct-chat.html\n      - title: Timeline\n        url: components/timeline.html\n      - title: Ribbons\n        url: components/ribbons.html\n      - title: Miscellaneous\n        url: components/miscellaneous.html\n      - title: Plugins\n        url: components/plugins.html\n  - title: JavaScript\n    icon: fas fa-code\n    url: javascript\n    subitems:\n      - title: Layout\n        url: javascript/layout.html\n      - title: Push Menu\n        url: javascript/push-menu.html\n      - title: Treeview\n        url: javascript/treeview.html\n      - title: Card Widget\n        url: javascript/card-widget.html\n      - title: CardRefresh\n        url: javascript/card-refresh.html\n      - title: Control Sidebar\n        url: javascript/control-sidebar.html\n      - title: Direct Chat\n        url: javascript/direct-chat.html\n      - title: Todo List\n        url: javascript/todo-list.html\n      - title: Toasts\n        url: javascript/toasts.html\n      - title: Sidebar Search\n        url: javascript/sidebar-search.html\n      - title: Expandable Tables\n        url: javascript/expandable-tables.html\n      - title: IFrame\n        url: javascript/iframe.html\n      - title: Navbar Search\n        url: javascript/navbar-search.html\n  - title: Browser Support\n    url: browser-support.html\n    icon: fab fa-chrome\n  - title: Implementations\n    url: implementations.html\n    icon: fas fa-bookmark\n  - title: Additional Styles\n    url: additional-styles.html\n    icon: fas fa-mortar-pestle\n  - title: Upgrade Guide\n    url: upgrade-guide.html\n    icon: fas fa-hand-point-up\n  - title: Contributing Guide\n    url: how-to-contribute.html\n    icon: fas fa-hands-helping\n  - title: FAQ\n    url: faq.html\n    icon: fas fa-question-circle\n  - title: License\n    url: license.html\n    icon: fas fa-file-contract\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/foot.html",
    "content": "<script src=\"{{ '/assets/plugins/jquery/jquery.min.js' | prepend: site.baseurl }}\"></script>\n<script src=\"{{ '/assets/plugins/bootstrap/js/bootstrap.bundle.min.js' | prepend: site.baseurl }}\"></script>\n<script src=\"{{ '/assets/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js' | prepend: site.baseurl }}\"></script>\n<script src=\"{{ '/assets/js/adminlte.min.js' | prepend: site.baseurl }}\"></script>\n<script>\n  var toggleSwitch = document.querySelector('.theme-switch input[type=\"checkbox\"]');\n  var currentTheme = localStorage.getItem('theme');\n  var mainHeader = document.querySelector('.main-header');\n\n  if (currentTheme) {\n    if (currentTheme === 'dark') {\n      if (!document.body.classList.contains('dark-mode')) {\n        document.body.classList.add(\"dark-mode\");\n      }\n      if (mainHeader.classList.contains('navbar-light')) {\n        mainHeader.classList.add('navbar-dark');\n        mainHeader.classList.remove('navbar-light');\n      }\n      toggleSwitch.checked = true;\n    }\n  }\n\n  function switchTheme(e) {\n    if (e.target.checked) {\n      if (!document.body.classList.contains('dark-mode')) {\n        document.body.classList.add(\"dark-mode\");\n      }\n      if (mainHeader.classList.contains('navbar-light')) {\n        mainHeader.classList.add('navbar-dark');\n        mainHeader.classList.remove('navbar-light');\n      }\n      localStorage.setItem('theme', 'dark');\n    } else {\n      if (document.body.classList.contains('dark-mode')) {\n        document.body.classList.remove(\"dark-mode\");\n      }\n      if (mainHeader.classList.contains('navbar-dark')) {\n        mainHeader.classList.add('navbar-light');\n        mainHeader.classList.remove('navbar-dark');\n      }\n      localStorage.setItem('theme', 'light');\n    }\n  }\n\n  toggleSwitch.addEventListener('change', switchTheme, false);\n</script>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/footer.html",
    "content": "<footer class=\"main-footer\">\n  <div class=\"float-right d-none d-sm-inline\">\n    {{ site.version }}\n  </div>\n  <strong>Copyright &copy; 2014-{{ site.time | date: '%Y' }} <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n</footer>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/head.html",
    "content": "<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\">\n\n  {% seo %}\n\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <link rel=\"stylesheet\" href=\"{{ '/assets/plugins/fontawesome-free/css/all.min.css' | prepend: site.baseurl }}\">\n  <link rel=\"stylesheet\" href=\"{{ '/assets/plugins/overlayScrollbars/css/OverlayScrollbars.min.css' | prepend: site.baseurl }}\">\n  <link rel=\"stylesheet\" href=\"{{ '/assets/css/docs.css' | prepend: site.baseurl }}\">\n  <link rel=\"stylesheet\" href=\"{{ '/assets/css/highlighter.css' | prepend: site.baseurl }}\">\n  <link rel=\"stylesheet\" href=\"{{ '/assets/css/adminlte.min.css' | prepend: site.baseurl }}\">\n</head>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/navbar.html",
    "content": "<nav class=\"main-header navbar navbar-expand navbar-light\">\n  <ul class=\"navbar-nav\">\n    <li class=\"nav-item\">\n      <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\"><i class=\"fa fa-bars\"></i></a>\n    </li>\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link bg-info rounded dropdown-toggle\" href=\"#\" id=\"navbarVersionDropdown\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n        {{ site.version }}\n      </a>\n      <div class=\"dropdown-menu py-0\" aria-labelledby=\"navbarVersionDropdown\">\n        <a class=\"dropdown-item bg-info disabled\" href=\"#\">v3.1</a>\n        <a class=\"dropdown-item\" href=\"https://adminlte.io/docs/3.0/\">v3.0</a>\n        <div class=\"dropdown-divider\"></div>\n        <a class=\"dropdown-item\" href=\"https://adminlte.io/docs/2.4/installation\">v2.4</a>\n        <a class=\"dropdown-item\" href=\"https://adminlte.io/themes/AdminLTE/documentation/index.html\">&lt;= v2.3</a>\n      </div>\n    </li>\n  </ul>\n\n  <ul class=\"navbar-nav ml-auto\">\n    <!-- <li class=\"nav-item d-none d-sm-inline-block\">\n      <a href=\"index3.html\" class=\"nav-link\">Home</a>\n    </li> -->\n    <li class=\"nav-item\">\n      <div class=\"theme-switch-wrapper nav-link\">\n        <label class=\"theme-switch\" for=\"checkbox\">\n          <input type=\"checkbox\" id=\"checkbox\" />\n          <span class=\"slider round\"></span>\n        </label>\n      </div>\n    </li>\n    <!-- <li class=\"nav-item\">\n      <em class=\"nav-link\">Enable Dark Mode!</em>\n    </li> -->\n  </ul>\n\n  <!-- SEARCH FORM -->\n  <!-- <form class=\"form-check-inline ml-3\">\n    <div class=\"input-group input-group-sm\">\n      <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n      <div class=\"input-group-append\">\n        <button class=\"btn btn-navbar\" type=\"submit\">\n          <i class=\"fa fa-search\"></i>\n        </button>\n      </div>\n    </div>\n  </form> -->\n</nav>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/preloader.html",
    "content": "<div class=\"preloader flex-column justify-content-center align-items-center\">\n  <img class=\"animation__shake\" src=\"{{ '/assets/img/AdminLTELogo.png' | prepend: site.baseurl }}\" alt=\"AdminLTELogo\" height=\"60\" width=\"60\">\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_includes/sidebar.html",
    "content": "<aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n  <a href=\"{{ '/index.html' | prepend: site.baseurl }}\" class=\"brand-link logo-switch\">\n    <img src=\"{{ '/assets/img/logo-xs.png' | prepend: site.baseurl }}\" alt=\"AdminLTE Docs Logo Small\" class=\"brand-image-xl logo-xs\">\n    <img src=\"{{ '/assets/img/logo-xl.png' | prepend: site.baseurl }}\" alt=\"AdminLTE Docs Logo Large\" class=\"brand-image-xs logo-xl\" style=\"left: 12px\">\n  </a>\n  <div class=\"sidebar\">\n    <div class=\"form-inline mt-2\">\n      <div class=\"input-group\" data-widget=\"sidebar-search\">\n        <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-sidebar\">\n            <i class=\"fas fa-search fa-fw\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n    <nav class=\"mt-2\">\n      <ul class=\"nav nav-pills nav-sidebar nav-child-indent flex-column\" data-widget=\"treeview\" role=\"menu\">\n       {% for item in site.navigation -%}\n          {%- assign subitem_active = 'false' -%}\n          {%- for subitem in item.subitems -%}\n            {%- assign subitem_url = '/' | append: subitem.url -%}\n            {%- if subitem_url == page.url -%}\n              {%- assign subitem_active = 'true' -%}\n            {%- endif -%}\n          {%- endfor %}\n\n          <li class=\"nav-item{% if subitem_active == 'true' %} menu-open{% endif %}\">\n            {% if item.url == 'index.html' -%}\n              {%- assign item_url = '/' -%}\n            {%- else -%}\n              {%- assign item_url = '/' | append: item.url -%}\n            {%- endif %}\n\n            <a href=\"{% if item.url %}{{ item.url | prepend: \"/\" | prepend: site.baseurl }}{% else %}#{% endif %}\" class=\"nav-link{% if item_url == page.url %} active{% endif %}{% if subitem_active == 'true'%} active{% endif %}\">\n              <i class=\"nav-icon {{ item.icon }}\"></i>\n              <p>\n                {{ item.title }}\n                {% if item.subitems %}<i class=\"right fas fa-angle-left\"></i>{% endif %}\n              </p>\n            </a>\n\n            {% if item.subitems -%}\n              <ul class=\"nav nav-treeview\">\n              {% for subitem in item.subitems -%}\n                {%- assign subitem_url = '/' | append: subitem.url -%}\n                <li class=\"nav-item\">\n                  <a href=\"{{ subitem.url | prepend: \"/\" | prepend: site.baseurl }}\" class=\"nav-link{% if subitem_url == page.url %} active{% endif %}\">\n                    <i class=\"far fa-circle nav-icon\"></i>\n                    <p>{{ subitem.title }}</p>\n                  </a>\n                </li>\n              {%- endfor %}\n              </ul>\n            {%- endif %}\n          </li>\n       {% endfor %}\n      </ul>\n    </nav>\n  </div>\n</aside>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_layouts/default.html",
    "content": "<!DOCTYPE html>\n<html lang=\"{{ page.lang | default: site.lang | default: \"en\" }}\">\n\n  {%- include head.html -%}\n\n  <body class=\"hold-transition sidebar-mini layout-fixed layout-navbar-fixed\">\n    <div class=\"wrapper\">\n\n      {%- include preloader.html -%}\n\n      {%- include navbar.html -%}\n      {%- include sidebar.html -%}\n\n      {{ content }}\n\n      {%- include footer.html -%}\n    </div>\n\n    {% include foot.html -%}\n  </body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/_layouts/page.html",
    "content": "---\nlayout: default\n---\n\n<div class=\"content-wrapper px-4 py-2\">\n  {% if page.title and page.title != blank %}\n  <div class=\"content-header\">\n    <h1>{{ page.title }}</h1>\n  </div>\n  {% endif %}\n  <div class=\"content px-2\">\n    {{ content }}\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/additional-styles.md",
    "content": "---\nlayout: page\ntitle: Additional Styles / Custom Skin\n---\n\nIf you want to create additional styles like a company specific color for buttons, the background utility or something else you can simply create your own subversion of AdminLTE with the following SCSS template.\n\nIn this example we create a custom button class called `.btn-custom-color` with an extra button style and a custom class called `.my-custom-style`.\n\n```scss\n// Bootstrap\n// ---------------------------------------------------\n@import '~bootstrap/scss/functions';\n@import '~admin-lte/build/scss/bootstrap-variables';\n\n// Custom Theme Color START\n$custom-color: #00FF00;\n$theme-colors: map-merge((\n    'custom-color': $custom-color,\n), $theme-colors);\n// Custom Theme Color END\n\n// Variables and Mixins\n// ---------------------------------------------------\n@import '~admin-lte/build/scss/variables';\n@import '~admin-lte/build/scss/mixins';\n\n@import '~bootstrap/scss/bootstrap';\n\n@import '~admin-lte/build/scss/parts/core';\n@import '~admin-lte/build/scss/parts/components';\n@import '~admin-lte/build/scss/parts/extra-components';\n@import '~admin-lte/build/scss/parts/pages';\n@import '~admin-lte/build/scss/parts/plugins';\n@import '~admin-lte/build/scss/parts/miscellaneous';\n\n// Custom Style START\n.my-custom-style {\n  background-color: $custom-color;\n  padding: .5rem 0;\n}\n// Custom Style END\n```\n{: .max-height-300}\n\nYou can also create a skin on top of AdminLTE with the following SCSS template.\n\nIn this example we create a custom class called `.btn-custom-color` with a extra button style.\n\n```scss\n// Bootstrap\n// ---------------------------------------------------\n@import '~bootstrap/scss/functions';\n@import '~admin-lte/build/scss/bootstrap-variables';\n@import '~bootstrap/scss/mixins';\n\n$custom-color: #00FF00;\n\n.btn-custom-color {\n    @include button-variant($custom-color, $custom-color);\n}\n```\n\n\n> ##### Warning!\n> These examples are only raw SCSS templates, you will still need a SCSS -> CSS build script to compile the SCSS to CSS!\n{: .quote-warning}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/adminlte.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #383f45;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #383f45;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: none;\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: none;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1f2d3d;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close, .alert-dismissible .mailbox-attachment-close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close, .modal-header .mailbox-attachment-close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #1f2d3d;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1f2d3d;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #1f2d3d;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-primary .mailbox-attachment-close, .modal-content.bg-secondary .close, .modal-content.bg-secondary .mailbox-attachment-close, .modal-content.bg-info .close, .modal-content.bg-info .mailbox-attachment-close, .modal-content.bg-danger .close, .modal-content.bg-danger .mailbox-attachment-close, .modal-content.bg-success .close, .modal-content.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close, .dark-mode .modal-content.bg-warning .mailbox-attachment-close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close, .dark-mode .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close, .dark-mode .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close, .dark-mode .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close, .dark-mode .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close, .dark-mode .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close, .dark-mode .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close, .dark-mode .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close, .dark-mode .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close, .dark-mode .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close, .dark-mode .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close, .dark-mode .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close, .dark-mode .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close, .dark-mode .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close, .dark-mode .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close, .dark-mode .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close, .dark-mode .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close, .dark-mode .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close, .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close, .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close, .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close, .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close, .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close, .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close, .toast.bg-lightblue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close, .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close, .toast.bg-olive .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close, .toast.bg-fuchsia .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close, .toast.bg-maroon .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close, .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close, .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close, .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close, .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close, .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close, .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close, .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close, .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close, .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close, .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n  box-shadow: none;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n  box-shadow: none;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n  box-shadow: none;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.dark-mode .btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close, .alert .mailbox-attachment-close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover, .alert .mailbox-attachment-close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #383f45, inset 0 -1px 0 #383f45;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus, .mailbox-attachment-close:focus {\n  outline: none;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  box-shadow: none;\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #30465f;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid,\n.content-wrapper.kanban .content .container-sm,\n.content-wrapper.kanban .content .container-md,\n.content-wrapper.kanban .content .container-lg,\n.content-wrapper.kanban .content .container-xl {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(2.25rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #1f2d3d;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #1f2d3d;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #1f2d3d;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #1f2d3d;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close, .dark-mode .mailbox-attachment-close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1f2d3d;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1f2d3d !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #1f2d3d !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/alt/adminlte.components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1f2d3d;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #1f2d3d;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-secondary .close, .modal-content.bg-info .close, .modal-content.bg-danger .close, .modal-content.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n  box-shadow: none;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n  box-shadow: none;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n  box-shadow: none;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.dark-mode .btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #383f45, inset 0 -1px 0 #383f45;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus {\n  outline: none;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n/*# sourceMappingURL=adminlte.components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/alt/adminlte.core.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Core\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #383f45;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #383f45;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: none;\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: none;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1f2d3d;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #1f2d3d;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1f2d3d;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1f2d3d !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #1f2d3d !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.core.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/alt/adminlte.extra-components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Extra Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  box-shadow: none;\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #30465f;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n/*# sourceMappingURL=adminlte.extra-components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/alt/adminlte.pages.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Pages\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n/*# sourceMappingURL=adminlte.pages.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/alt/adminlte.plugins.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Plugins\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(2.25rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #1f2d3d;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #1f2d3d;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #1f2d3d;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #1f2d3d;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.plugins.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/docs.css",
    "content": ".max-height-300 pre {\n  max-height: 300px;\n}\n\n.theme-switch {\n  display: inline-block;\n  height: 24px;\n  position: relative;\n  width: 50px;\n}\n\n.theme-switch input {\n  display: none;\n}\n\n.slider {\n  background-color: #ccc;\n  bottom: 0;\n  cursor: pointer;\n  left: 0;\n  position: absolute;\n  right: 0;\n  top: 0;\n  transition: 400ms;\n}\n\n.slider::before {\n  background-color: #fff;\n  bottom: 4px;\n  content: \"\";\n  height: 16px;\n  left: 4px;\n  position: absolute;\n  transition: 400ms;\n  width: 16px;\n}\n\ninput:checked + .slider {\n  background-color: #66bb6a;\n}\n\ninput:checked + .slider::before {\n  transform: translateX(26px);\n}\n\n.slider.round {\n  border-radius: 34px;\n}\n\n.slider.round::before {\n  border-radius: 50%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/css/highlighter.css",
    "content": "pre .hll { background-color: #ffffcc }\npre  { background: #f0f0f0; }\npre .c { color: #60a0b0; font-style: italic } /* Comment */\npre .err { border: 1px solid #FF0000 } /* Error */\npre .k { color: #007020; font-weight: bold } /* Keyword */\npre .o { color: #666666 } /* Operator */\npre .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */\npre .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */\npre .cp { color: #007020 } /* Comment.Preproc */\npre .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */\npre .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */\npre .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */\npre .gd { color: #A00000 } /* Generic.Deleted */\npre .ge { font-style: italic } /* Generic.Emph */\npre .gr { color: #FF0000 } /* Generic.Error */\npre .gh { color: #000080; font-weight: bold } /* Generic.Heading */\npre .gi { color: #00A000 } /* Generic.Inserted */\npre .go { color: #888888 } /* Generic.Output */\npre .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */\npre .gs { font-weight: bold } /* Generic.Strong */\npre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\npre .gt { color: #0044DD } /* Generic.Traceback */\npre .kc { color: #007020; font-weight: bold } /* Keyword.Constant */\npre .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */\npre .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */\npre .kp { color: #007020 } /* Keyword.Pseudo */\npre .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */\npre .kt { color: #902000 } /* Keyword.Type */\npre .m { color: #40a070 } /* Literal.Number */\npre .s { color: #4070a0 } /* Literal.String */\npre .na { color: #4070a0 } /* Name.Attribute */\npre .nb { color: #007020 } /* Name.Builtin */\npre .nc { color: #0e84b5; font-weight: bold } /* Name.Class */\npre .no { color: #60add5 } /* Name.Constant */\npre .nd { color: #555555; font-weight: bold } /* Name.Decorator */\npre .ni { color: #d55537; font-weight: bold } /* Name.Entity */\npre .ne { color: #007020 } /* Name.Exception */\npre .nf { color: #06287e } /* Name.Function */\npre .nl { color: #002070; font-weight: bold } /* Name.Label */\npre .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */\npre .nt { color: #062873; font-weight: bold } /* Name.Tag */\npre .nv { color: #bb60d5 } /* Name.Variable */\npre .ow { color: #007020; font-weight: bold } /* Operator.Word */\npre .w { color: #bbbbbb } /* Text.Whitespace */\npre .mb { color: #40a070 } /* Literal.Number.Bin */\npre .mf { color: #40a070 } /* Literal.Number.Float */\npre .mh { color: #40a070 } /* Literal.Number.Hex */\npre .mi { color: #40a070 } /* Literal.Number.Integer */\npre .mo { color: #40a070 } /* Literal.Number.Oct */\npre .sa { color: #4070a0 } /* Literal.String.Affix */\npre .sb { color: #4070a0 } /* Literal.String.Backtick */\npre .sc { color: #4070a0 } /* Literal.String.Char */\npre .dl { color: #4070a0 } /* Literal.String.Delimiter */\npre .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */\npre .s2 { color: #4070a0 } /* Literal.String.Double */\npre .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */\npre .sh { color: #4070a0 } /* Literal.String.Heredoc */\npre .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */\npre .sx { color: #c65d09 } /* Literal.String.Other */\npre .sr { color: #235388 } /* Literal.String.Regex */\npre .s1 { color: #4070a0 } /* Literal.String.Single */\npre .ss { color: #517918 } /* Literal.String.Symbol */\npre .bp { color: #007020 } /* Name.Builtin.Pseudo */\npre .fm { color: #06287e } /* Name.Function.Magic */\npre .vc { color: #bb60d5 } /* Name.Variable.Class */\npre .vg { color: #bb60d5 } /* Name.Variable.Global */\npre .vi { color: #bb60d5 } /* Name.Variable.Instance */\npre .vm { color: #bb60d5 } /* Name.Variable.Magic */\npre .il { color: #40a070 } /* Literal.Number.Integer.Long */\n\n.highlight pre .hll { background-color: #49483e }\n.highlight pre  { background: #272822; color: #f8f8f2 }\n.highlight pre .c { color: #75715e } /* Comment */\n.highlight pre .err { color: #960050; background-color: #1e0010 } /* Error */\n.highlight pre .k { color: #66d9ef } /* Keyword */\n.highlight pre .l { color: #ae81ff } /* Literal */\n.highlight pre .n { color: #f8f8f2 } /* Name */\n.highlight pre .o { color: #f92672 } /* Operator */\n.highlight pre .p { color: #f8f8f2 } /* Punctuation */\n.highlight pre .ch { color: #75715e } /* Comment.Hashbang */\n.highlight pre .cm { color: #75715e } /* Comment.Multiline */\n.highlight pre .cp { color: #75715e } /* Comment.Preproc */\n.highlight pre .cpf { color: #75715e } /* Comment.PreprocFile */\n.highlight pre .c1 { color: #75715e } /* Comment.Single */\n.highlight pre .cs { color: #75715e } /* Comment.Special */\n.highlight pre .gd { color: #f92672 } /* Generic.Deleted */\n.highlight pre .ge { font-style: italic } /* Generic.Emph */\n.highlight pre .gi { color: #a6e22e } /* Generic.Inserted */\n.highlight pre .gs { font-weight: bold } /* Generic.Strong */\n.highlight pre .gu { color: #75715e } /* Generic.Subheading */\n.highlight pre .kc { color: #66d9ef } /* Keyword.Constant */\n.highlight pre .kd { color: #66d9ef } /* Keyword.Declaration */\n.highlight pre .kn { color: #f92672 } /* Keyword.Namespace */\n.highlight pre .kp { color: #66d9ef } /* Keyword.Pseudo */\n.highlight pre .kr { color: #66d9ef } /* Keyword.Reserved */\n.highlight pre .kt { color: #66d9ef } /* Keyword.Type */\n.highlight pre .ld { color: #e6db74 } /* Literal.Date */\n.highlight pre .m { color: #ae81ff } /* Literal.Number */\n.highlight pre .s { color: #e6db74 } /* Literal.String */\n.highlight pre .na { color: #a6e22e } /* Name.Attribute */\n.highlight pre .nb { color: #f8f8f2 } /* Name.Builtin */\n.highlight pre .nc { color: #a6e22e } /* Name.Class */\n.highlight pre .no { color: #66d9ef } /* Name.Constant */\n.highlight pre .nd { color: #a6e22e } /* Name.Decorator */\n.highlight pre .ni { color: #f8f8f2 } /* Name.Entity */\n.highlight pre .ne { color: #a6e22e } /* Name.Exception */\n.highlight pre .nf { color: #a6e22e } /* Name.Function */\n.highlight pre .nl { color: #f8f8f2 } /* Name.Label */\n.highlight pre .nn { color: #f8f8f2 } /* Name.Namespace */\n.highlight pre .nx { color: #a6e22e } /* Name.Other */\n.highlight pre .py { color: #f8f8f2 } /* Name.Property */\n.highlight pre .nt { color: #f92672 } /* Name.Tag */\n.highlight pre .nv { color: #f8f8f2 } /* Name.Variable */\n.highlight pre .ow { color: #f92672 } /* Operator.Word */\n.highlight pre .w { color: #f8f8f2 } /* Text.Whitespace */\n.highlight pre .mb { color: #ae81ff } /* Literal.Number.Bin */\n.highlight pre .mf { color: #ae81ff } /* Literal.Number.Float */\n.highlight pre .mh { color: #ae81ff } /* Literal.Number.Hex */\n.highlight pre .mi { color: #ae81ff } /* Literal.Number.Integer */\n.highlight pre .mo { color: #ae81ff } /* Literal.Number.Oct */\n.highlight pre .sa { color: #e6db74 } /* Literal.String.Affix */\n.highlight pre .sb { color: #e6db74 } /* Literal.String.Backtick */\n.highlight pre .sc { color: #e6db74 } /* Literal.String.Char */\n.highlight pre .dl { color: #e6db74 } /* Literal.String.Delimiter */\n.highlight pre .sd { color: #e6db74 } /* Literal.String.Doc */\n.highlight pre .s2 { color: #e6db74 } /* Literal.String.Double */\n.highlight pre .se { color: #ae81ff } /* Literal.String.Escape */\n.highlight pre .sh { color: #e6db74 } /* Literal.String.Heredoc */\n.highlight pre .si { color: #e6db74 } /* Literal.String.Interpol */\n.highlight pre .sx { color: #e6db74 } /* Literal.String.Other */\n.highlight pre .sr { color: #e6db74 } /* Literal.String.Regex */\n.highlight pre .s1 { color: #e6db74 } /* Literal.String.Single */\n.highlight pre .ss { color: #e6db74 } /* Literal.String.Symbol */\n.highlight pre .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */\n.highlight pre .fm { color: #a6e22e } /* Name.Function.Magic */\n.highlight pre .vc { color: #f8f8f2 } /* Name.Variable.Class */\n.highlight pre .vg { color: #f8f8f2 } /* Name.Variable.Global */\n.highlight pre .vi { color: #f8f8f2 } /* Name.Variable.Instance */\n.highlight pre .vm { color: #f8f8f2 } /* Name.Variable.Magic */\n.highlight pre .il { color: #ae81ff } /* Literal.Number.Integer.Long */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/js/adminlte.js",
    "content": "/*!\n * AdminLTE v3.1.0 (https://adminlte.io)\n * Copyright 2014-2021 Colorlib <https://colorlib.com>\n * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {}, global.jQuery));\n}(this, (function (exports, $) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE CardRefresh.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$e = 'CardRefresh';\n  var DATA_KEY$e = 'lte.cardrefresh';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$e;\n  var JQUERY_NO_CONFLICT$e = $__default['default'].fn[NAME$e];\n  var EVENT_LOADED = \"loaded\" + EVENT_KEY$7;\n  var EVENT_OVERLAY_ADDED = \"overlay.added\" + EVENT_KEY$7;\n  var EVENT_OVERLAY_REMOVED = \"overlay.removed\" + EVENT_KEY$7;\n  var CLASS_NAME_CARD$1 = 'card';\n  var SELECTOR_CARD$1 = \".\" + CLASS_NAME_CARD$1;\n  var SELECTOR_DATA_REFRESH = '[data-card-widget=\"card-refresh\"]';\n  var Default$c = {\n    source: '',\n    sourceSelector: '',\n    params: {},\n    trigger: SELECTOR_DATA_REFRESH,\n    content: '.card-body',\n    loadInContent: true,\n    loadOnInit: true,\n    responseType: '',\n    overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n    onLoadStart: function onLoadStart() {},\n    onLoadDone: function onLoadDone(response) {\n      return response;\n    }\n  };\n\n  var CardRefresh = /*#__PURE__*/function () {\n    function CardRefresh(element, settings) {\n      this._element = element;\n      this._parent = element.parents(SELECTOR_CARD$1).first();\n      this._settings = $__default['default'].extend({}, Default$c, settings);\n      this._overlay = $__default['default'](this._settings.overlayTemplate);\n\n      if (element.hasClass(CLASS_NAME_CARD$1)) {\n        this._parent = element;\n      }\n\n      if (this._settings.source === '') {\n        throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.');\n      }\n    }\n\n    var _proto = CardRefresh.prototype;\n\n    _proto.load = function load() {\n      var _this = this;\n\n      this._addOverlay();\n\n      this._settings.onLoadStart.call($__default['default'](this));\n\n      $__default['default'].get(this._settings.source, this._settings.params, function (response) {\n        if (_this._settings.loadInContent) {\n          if (_this._settings.sourceSelector !== '') {\n            response = $__default['default'](response).find(_this._settings.sourceSelector).html();\n          }\n\n          _this._parent.find(_this._settings.content).html(response);\n        }\n\n        _this._settings.onLoadDone.call($__default['default'](_this), response);\n\n        _this._removeOverlay();\n      }, this._settings.responseType !== '' && this._settings.responseType);\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_LOADED));\n    };\n\n    _proto._addOverlay = function _addOverlay() {\n      this._parent.append(this._overlay);\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_OVERLAY_ADDED));\n    };\n\n    _proto._removeOverlay = function _removeOverlay() {\n      this._parent.find(this._overlay).remove();\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_OVERLAY_REMOVED));\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this2 = this;\n\n      $__default['default'](this).find(this._settings.trigger).on('click', function () {\n        _this2.load();\n      });\n\n      if (this._settings.loadOnInit) {\n        this.load();\n      }\n    } // Static\n    ;\n\n    CardRefresh._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$e);\n\n      var _options = $__default['default'].extend({}, Default$c, $__default['default'](this).data());\n\n      if (!data) {\n        data = new CardRefresh($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$e, typeof config === 'string' ? data : config);\n      }\n\n      if (typeof config === 'string' && /load/.test(config)) {\n        data[config]();\n      } else {\n        data._init($__default['default'](this));\n      }\n    };\n\n    return CardRefresh;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_REFRESH, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardRefresh._jQueryInterface.call($__default['default'](this), 'load');\n  });\n  $__default['default'](function () {\n    $__default['default'](SELECTOR_DATA_REFRESH).each(function () {\n      CardRefresh._jQueryInterface.call($__default['default'](this));\n    });\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$e] = CardRefresh._jQueryInterface;\n  $__default['default'].fn[NAME$e].Constructor = CardRefresh;\n\n  $__default['default'].fn[NAME$e].noConflict = function () {\n    $__default['default'].fn[NAME$e] = JQUERY_NO_CONFLICT$e;\n    return CardRefresh._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE CardWidget.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$d = 'CardWidget';\n  var DATA_KEY$d = 'lte.cardwidget';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$d;\n  var JQUERY_NO_CONFLICT$d = $__default['default'].fn[NAME$d];\n  var EVENT_EXPANDED$3 = \"expanded\" + EVENT_KEY$6;\n  var EVENT_COLLAPSED$4 = \"collapsed\" + EVENT_KEY$6;\n  var EVENT_MAXIMIZED = \"maximized\" + EVENT_KEY$6;\n  var EVENT_MINIMIZED = \"minimized\" + EVENT_KEY$6;\n  var EVENT_REMOVED$1 = \"removed\" + EVENT_KEY$6;\n  var CLASS_NAME_CARD = 'card';\n  var CLASS_NAME_COLLAPSED$1 = 'collapsed-card';\n  var CLASS_NAME_COLLAPSING = 'collapsing-card';\n  var CLASS_NAME_EXPANDING = 'expanding-card';\n  var CLASS_NAME_WAS_COLLAPSED = 'was-collapsed';\n  var CLASS_NAME_MAXIMIZED = 'maximized-card';\n  var SELECTOR_DATA_REMOVE = '[data-card-widget=\"remove\"]';\n  var SELECTOR_DATA_COLLAPSE = '[data-card-widget=\"collapse\"]';\n  var SELECTOR_DATA_MAXIMIZE = '[data-card-widget=\"maximize\"]';\n  var SELECTOR_CARD = \".\" + CLASS_NAME_CARD;\n  var SELECTOR_CARD_HEADER = '.card-header';\n  var SELECTOR_CARD_BODY = '.card-body';\n  var SELECTOR_CARD_FOOTER = '.card-footer';\n  var Default$b = {\n    animationSpeed: 'normal',\n    collapseTrigger: SELECTOR_DATA_COLLAPSE,\n    removeTrigger: SELECTOR_DATA_REMOVE,\n    maximizeTrigger: SELECTOR_DATA_MAXIMIZE,\n    collapseIcon: 'fa-minus',\n    expandIcon: 'fa-plus',\n    maximizeIcon: 'fa-expand',\n    minimizeIcon: 'fa-compress'\n  };\n\n  var CardWidget = /*#__PURE__*/function () {\n    function CardWidget(element, settings) {\n      this._element = element;\n      this._parent = element.parents(SELECTOR_CARD).first();\n\n      if (element.hasClass(CLASS_NAME_CARD)) {\n        this._parent = element;\n      }\n\n      this._settings = $__default['default'].extend({}, Default$b, settings);\n    }\n\n    var _proto = CardWidget.prototype;\n\n    _proto.collapse = function collapse() {\n      var _this = this;\n\n      this._parent.addClass(CLASS_NAME_COLLAPSING).children(SELECTOR_CARD_BODY + \", \" + SELECTOR_CARD_FOOTER).slideUp(this._settings.animationSpeed, function () {\n        _this._parent.addClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_COLLAPSING);\n      });\n\n      this._parent.find(\"> \" + SELECTOR_CARD_HEADER + \" \" + this._settings.collapseTrigger + \" .\" + this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon);\n\n      this._element.trigger($__default['default'].Event(EVENT_COLLAPSED$4), this._parent);\n    };\n\n    _proto.expand = function expand() {\n      var _this2 = this;\n\n      this._parent.addClass(CLASS_NAME_EXPANDING).children(SELECTOR_CARD_BODY + \", \" + SELECTOR_CARD_FOOTER).slideDown(this._settings.animationSpeed, function () {\n        _this2._parent.removeClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_EXPANDING);\n      });\n\n      this._parent.find(\"> \" + SELECTOR_CARD_HEADER + \" \" + this._settings.collapseTrigger + \" .\" + this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon);\n\n      this._element.trigger($__default['default'].Event(EVENT_EXPANDED$3), this._parent);\n    };\n\n    _proto.remove = function remove() {\n      this._parent.slideUp();\n\n      this._element.trigger($__default['default'].Event(EVENT_REMOVED$1), this._parent);\n    };\n\n    _proto.toggle = function toggle() {\n      if (this._parent.hasClass(CLASS_NAME_COLLAPSED$1)) {\n        this.expand();\n        return;\n      }\n\n      this.collapse();\n    };\n\n    _proto.maximize = function maximize() {\n      this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon);\n\n      this._parent.css({\n        height: this._parent.height(),\n        width: this._parent.width(),\n        transition: 'all .15s'\n      }).delay(150).queue(function () {\n        var $element = $__default['default'](this);\n        $element.addClass(CLASS_NAME_MAXIMIZED);\n        $__default['default']('html').addClass(CLASS_NAME_MAXIMIZED);\n\n        if ($element.hasClass(CLASS_NAME_COLLAPSED$1)) {\n          $element.addClass(CLASS_NAME_WAS_COLLAPSED);\n        }\n\n        $element.dequeue();\n      });\n\n      this._element.trigger($__default['default'].Event(EVENT_MAXIMIZED), this._parent);\n    };\n\n    _proto.minimize = function minimize() {\n      this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon);\n\n      this._parent.css('cssText', \"height: \" + this._parent[0].style.height + \" !important; width: \" + this._parent[0].style.width + \" !important; transition: all .15s;\").delay(10).queue(function () {\n        var $element = $__default['default'](this);\n        $element.removeClass(CLASS_NAME_MAXIMIZED);\n        $__default['default']('html').removeClass(CLASS_NAME_MAXIMIZED);\n        $element.css({\n          height: 'inherit',\n          width: 'inherit'\n        });\n\n        if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {\n          $element.removeClass(CLASS_NAME_WAS_COLLAPSED);\n        }\n\n        $element.dequeue();\n      });\n\n      this._element.trigger($__default['default'].Event(EVENT_MINIMIZED), this._parent);\n    };\n\n    _proto.toggleMaximize = function toggleMaximize() {\n      if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {\n        this.minimize();\n        return;\n      }\n\n      this.maximize();\n    } // Private\n    ;\n\n    _proto._init = function _init(card) {\n      var _this3 = this;\n\n      this._parent = card;\n      $__default['default'](this).find(this._settings.collapseTrigger).click(function () {\n        _this3.toggle();\n      });\n      $__default['default'](this).find(this._settings.maximizeTrigger).click(function () {\n        _this3.toggleMaximize();\n      });\n      $__default['default'](this).find(this._settings.removeTrigger).click(function () {\n        _this3.remove();\n      });\n    } // Static\n    ;\n\n    CardWidget._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$d);\n\n      var _options = $__default['default'].extend({}, Default$b, $__default['default'](this).data());\n\n      if (!data) {\n        data = new CardWidget($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$d, typeof config === 'string' ? data : config);\n      }\n\n      if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) {\n        data[config]();\n      } else if (typeof config === 'object') {\n        data._init($__default['default'](this));\n      }\n    };\n\n    return CardWidget;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_REMOVE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'remove');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    CardWidget._jQueryInterface.call($__default['default'](this), 'toggleMaximize');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$d] = CardWidget._jQueryInterface;\n  $__default['default'].fn[NAME$d].Constructor = CardWidget;\n\n  $__default['default'].fn[NAME$d].noConflict = function () {\n    $__default['default'].fn[NAME$d] = JQUERY_NO_CONFLICT$d;\n    return CardWidget._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE ControlSidebar.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$c = 'ControlSidebar';\n  var DATA_KEY$c = 'lte.controlsidebar';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$c;\n  var JQUERY_NO_CONFLICT$c = $__default['default'].fn[NAME$c];\n  var EVENT_COLLAPSED$3 = \"collapsed\" + EVENT_KEY$5;\n  var EVENT_EXPANDED$2 = \"expanded\" + EVENT_KEY$5;\n  var SELECTOR_CONTROL_SIDEBAR = '.control-sidebar';\n  var SELECTOR_CONTROL_SIDEBAR_CONTENT$1 = '.control-sidebar-content';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-widget=\"control-sidebar\"]';\n  var SELECTOR_HEADER$1 = '.main-header';\n  var SELECTOR_FOOTER$1 = '.main-footer';\n  var CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate';\n  var CLASS_NAME_CONTROL_SIDEBAR_OPEN$1 = 'control-sidebar-open';\n  var CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open';\n  var CLASS_NAME_LAYOUT_FIXED$1 = 'layout-fixed';\n  var CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed';\n  var CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed';\n  var CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed';\n  var CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed';\n  var CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed';\n  var CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed';\n  var CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed';\n  var CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed';\n  var CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed';\n  var CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed';\n  var Default$a = {\n    controlsidebarSlide: true,\n    scrollbarTheme: 'os-theme-light',\n    scrollbarAutoHide: 'l',\n    target: SELECTOR_CONTROL_SIDEBAR\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var ControlSidebar = /*#__PURE__*/function () {\n    function ControlSidebar(element, config) {\n      this._element = element;\n      this._config = config;\n    } // Public\n\n\n    var _proto = ControlSidebar.prototype;\n\n    _proto.collapse = function collapse() {\n      var $body = $__default['default']('body');\n      var $html = $__default['default']('html');\n      var target = this._config.target; // Show the control sidebar\n\n      if (this._config.controlsidebarSlide) {\n        $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n        $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n          $__default['default'](target).hide();\n          $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_COLLAPSED$3));\n    };\n\n    _proto.show = function show() {\n      var $body = $__default['default']('body');\n      var $html = $__default['default']('html'); // Collapse the control sidebar\n\n      if (this._config.controlsidebarSlide) {\n        $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n        $__default['default'](this._config.target).show().delay(10).queue(function () {\n          $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n            $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE);\n            $__default['default'](this).dequeue();\n          });\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1);\n      }\n\n      this._fixHeight();\n\n      this._fixScrollHeight();\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_EXPANDED$2));\n    };\n\n    _proto.toggle = function toggle() {\n      var $body = $__default['default']('body');\n      var shouldClose = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n      if (shouldClose) {\n        // Close the control sidebar\n        this.collapse();\n      } else {\n        // Open the control sidebar\n        this.show();\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      var $body = $__default['default']('body');\n      var shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n      if (shouldNotHideAll) {\n        $__default['default'](SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide();\n        $__default['default'](this._config.target).css('display', 'block');\n      } else {\n        $__default['default'](SELECTOR_CONTROL_SIDEBAR).hide();\n      }\n\n      this._fixHeight();\n\n      this._fixScrollHeight();\n\n      $__default['default'](window).resize(function () {\n        _this._fixHeight();\n\n        _this._fixScrollHeight();\n      });\n      $__default['default'](window).scroll(function () {\n        var $body = $__default['default']('body');\n        var shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE);\n\n        if (shouldFixHeight) {\n          _this._fixScrollHeight();\n        }\n      });\n    };\n\n    _proto._isNavbarFixed = function _isNavbarFixed() {\n      var $body = $__default['default']('body');\n      return $body.hasClass(CLASS_NAME_NAVBAR_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED);\n    };\n\n    _proto._isFooterFixed = function _isFooterFixed() {\n      var $body = $__default['default']('body');\n      return $body.hasClass(CLASS_NAME_FOOTER_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED);\n    };\n\n    _proto._fixScrollHeight = function _fixScrollHeight() {\n      var $body = $__default['default']('body');\n      var $controlSidebar = $__default['default'](this._config.target);\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) {\n        return;\n      }\n\n      var heights = {\n        scroll: $__default['default'](document).height(),\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER$1).outerHeight(),\n        footer: $__default['default'](SELECTOR_FOOTER$1).outerHeight()\n      };\n      var positions = {\n        bottom: Math.abs(heights.window + $__default['default'](window).scrollTop() - heights.scroll),\n        top: $__default['default'](window).scrollTop()\n      };\n      var navbarFixed = this._isNavbarFixed() && $__default['default'](SELECTOR_HEADER$1).css('position') === 'fixed';\n      var footerFixed = this._isFooterFixed() && $__default['default'](SELECTOR_FOOTER$1).css('position') === 'fixed';\n      var $controlsidebarContent = $__default['default'](this._config.target + \", \" + this._config.target + \" \" + SELECTOR_CONTROL_SIDEBAR_CONTENT$1);\n\n      if (positions.top === 0 && positions.bottom === 0) {\n        $controlSidebar.css({\n          bottom: heights.footer,\n          top: heights.header\n        });\n        $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer));\n      } else if (positions.bottom <= heights.footer) {\n        if (footerFixed === false) {\n          var top = heights.header - positions.top;\n          $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0);\n          $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom));\n        } else {\n          $controlSidebar.css('bottom', heights.footer);\n        }\n      } else if (positions.top <= heights.header) {\n        if (navbarFixed === false) {\n          $controlSidebar.css('top', heights.header - positions.top);\n          $controlsidebarContent.css('height', heights.window - (heights.header - positions.top));\n        } else {\n          $controlSidebar.css('top', heights.header);\n        }\n      } else if (navbarFixed === false) {\n        $controlSidebar.css('top', 0);\n        $controlsidebarContent.css('height', heights.window);\n      } else {\n        $controlSidebar.css('top', heights.header);\n      }\n\n      if (footerFixed && navbarFixed) {\n        $controlsidebarContent.css('height', '100%');\n        $controlSidebar.css('height', '');\n      } else if (footerFixed || navbarFixed) {\n        $controlsidebarContent.css('height', '100%');\n        $controlsidebarContent.css('height', '');\n      }\n    };\n\n    _proto._fixHeight = function _fixHeight() {\n      var $body = $__default['default']('body');\n      var $controlSidebar = $__default['default'](this._config.target + \" \" + SELECTOR_CONTROL_SIDEBAR_CONTENT$1);\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) {\n        $controlSidebar.attr('style', '');\n        return;\n      }\n\n      var heights = {\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER$1).outerHeight(),\n        footer: $__default['default'](SELECTOR_FOOTER$1).outerHeight()\n      };\n      var sidebarHeight = heights.window - heights.header;\n\n      if (this._isFooterFixed() && $__default['default'](SELECTOR_FOOTER$1).css('position') === 'fixed') {\n        sidebarHeight = heights.window - heights.header - heights.footer;\n      }\n\n      $controlSidebar.css('height', sidebarHeight);\n\n      if (typeof $__default['default'].fn.overlayScrollbars !== 'undefined') {\n        $controlSidebar.overlayScrollbars({\n          className: this._config.scrollbarTheme,\n          sizeAutoCapable: true,\n          scrollbars: {\n            autoHide: this._config.scrollbarAutoHide,\n            clickScrolling: true\n          }\n        });\n      }\n    } // Static\n    ;\n\n    ControlSidebar._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$c);\n\n        var _options = $__default['default'].extend({}, Default$a, $__default['default'](this).data());\n\n        if (!data) {\n          data = new ControlSidebar(this, _options);\n          $__default['default'](this).data(DATA_KEY$c, data);\n        }\n\n        if (data[operation] === 'undefined') {\n          throw new Error(operation + \" is not a function\");\n        }\n\n        data[operation]();\n      });\n    };\n\n    return ControlSidebar;\n  }();\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    ControlSidebar._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  $__default['default'](document).ready(function () {\n    ControlSidebar._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE$4), '_init');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$c] = ControlSidebar._jQueryInterface;\n  $__default['default'].fn[NAME$c].Constructor = ControlSidebar;\n\n  $__default['default'].fn[NAME$c].noConflict = function () {\n    $__default['default'].fn[NAME$c] = JQUERY_NO_CONFLICT$c;\n    return ControlSidebar._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE DirectChat.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$b = 'DirectChat';\n  var DATA_KEY$b = 'lte.directchat';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$b;\n  var JQUERY_NO_CONFLICT$b = $__default['default'].fn[NAME$b];\n  var EVENT_TOGGLED = \"toggled\" + EVENT_KEY$4;\n  var SELECTOR_DATA_TOGGLE$3 = '[data-widget=\"chat-pane-toggle\"]';\n  var SELECTOR_DIRECT_CHAT = '.direct-chat';\n  var CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open';\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var DirectChat = /*#__PURE__*/function () {\n    function DirectChat(element) {\n      this._element = element;\n    }\n\n    var _proto = DirectChat.prototype;\n\n    _proto.toggle = function toggle() {\n      $__default['default'](this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN);\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_TOGGLED));\n    } // Static\n    ;\n\n    DirectChat._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$b);\n\n        if (!data) {\n          data = new DirectChat($__default['default'](this));\n          $__default['default'](this).data(DATA_KEY$b, data);\n        }\n\n        data[config]();\n      });\n    };\n\n    return DirectChat;\n  }();\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$3, function (event) {\n    if (event) {\n      event.preventDefault();\n    }\n\n    DirectChat._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$b] = DirectChat._jQueryInterface;\n  $__default['default'].fn[NAME$b].Constructor = DirectChat;\n\n  $__default['default'].fn[NAME$b].noConflict = function () {\n    $__default['default'].fn[NAME$b] = JQUERY_NO_CONFLICT$b;\n    return DirectChat._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Dropdown.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$a = 'Dropdown';\n  var DATA_KEY$a = 'lte.dropdown';\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var SELECTOR_NAVBAR = '.navbar';\n  var SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n  var SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show';\n  var SELECTOR_DROPDOWN_TOGGLE = '[data-toggle=\"dropdown\"]';\n  var CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'; // TODO: this is unused; should be removed along with the extend?\n\n  var Default$9 = {};\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Dropdown.prototype;\n\n    _proto.toggleSubmenu = function toggleSubmenu() {\n      this._element.siblings().show().toggleClass('show');\n\n      if (!this._element.next().hasClass('show')) {\n        this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide();\n      }\n\n      this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function () {\n        $__default['default']('.dropdown-submenu .show').removeClass('show').hide();\n      });\n    };\n\n    _proto.fixPosition = function fixPosition() {\n      var $element = $__default['default'](SELECTOR_DROPDOWN_MENU_ACTIVE);\n\n      if ($element.length === 0) {\n        return;\n      }\n\n      if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) {\n        $element.css({\n          left: 'inherit',\n          right: 0\n        });\n      } else {\n        $element.css({\n          left: 0,\n          right: 'inherit'\n        });\n      }\n\n      var offset = $element.offset();\n      var width = $element.width();\n      var visiblePart = $__default['default'](window).width() - offset.left;\n\n      if (offset.left < 0) {\n        $element.css({\n          left: 'inherit',\n          right: offset.left - 5\n        });\n      } else if (visiblePart < width) {\n        $element.css({\n          left: 'inherit',\n          right: 0\n        });\n      }\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$a);\n\n        var _config = $__default['default'].extend({}, Default$9, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Dropdown($__default['default'](this), _config);\n          $__default['default'](this).data(DATA_KEY$a, data);\n        }\n\n        if (config === 'toggleSubmenu' || config === 'fixPosition') {\n          data[config]();\n        }\n      });\n    };\n\n    return Dropdown;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](SELECTOR_DROPDOWN_MENU + \" \" + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggleSubmenu');\n  });\n  $__default['default'](SELECTOR_NAVBAR + \" \" + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) {\n    event.preventDefault();\n\n    if ($__default['default'](event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) {\n      return;\n    }\n\n    setTimeout(function () {\n      Dropdown._jQueryInterface.call($__default['default'](this), 'fixPosition');\n    }, 1);\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$a] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE ExpandableTable.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n    * Constants\n    * ====================================================\n    */\n\n  var NAME$9 = 'ExpandableTable';\n  var DATA_KEY$9 = 'lte.expandableTable';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$9;\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_EXPANDED$1 = \"expanded\" + EVENT_KEY$3;\n  var EVENT_COLLAPSED$2 = \"collapsed\" + EVENT_KEY$3;\n  var SELECTOR_TABLE = '.expandable-table';\n  var SELECTOR_EXPANDABLE_BODY = '.expandable-body';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-widget=\"expandable-table\"]';\n  var SELECTOR_ARIA_ATTR = 'aria-expanded';\n  /**\n    * Class Definition\n    * ====================================================\n    */\n\n  var ExpandableTable = /*#__PURE__*/function () {\n    function ExpandableTable(element, options) {\n      this._options = options;\n      this._element = element;\n    } // Public\n\n\n    var _proto = ExpandableTable.prototype;\n\n    _proto.init = function init() {\n      $__default['default'](SELECTOR_DATA_TOGGLE$2).each(function (_, $header) {\n        var $type = $__default['default']($header).attr(SELECTOR_ARIA_ATTR);\n        var $body = $__default['default']($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children();\n\n        if ($type === 'true') {\n          $body.show();\n        } else if ($type === 'false') {\n          $body.hide();\n          $body.parent().parent().addClass('d-none');\n        }\n      });\n    };\n\n    _proto.toggleRow = function toggleRow() {\n      var $element = this._element;\n      var time = 500;\n      var $type = $element.attr(SELECTOR_ARIA_ATTR);\n      var $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children();\n      $body.stop();\n\n      if ($type === 'true') {\n        $body.slideUp(time, function () {\n          $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none');\n        });\n        $element.attr(SELECTOR_ARIA_ATTR, 'false');\n        $element.trigger($__default['default'].Event(EVENT_COLLAPSED$2));\n      } else if ($type === 'false') {\n        $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none');\n        $body.slideDown(time);\n        $element.attr(SELECTOR_ARIA_ATTR, 'true');\n        $element.trigger($__default['default'].Event(EVENT_EXPANDED$1));\n      }\n    } // Static\n    ;\n\n    ExpandableTable._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$9);\n\n        if (!data) {\n          data = new ExpandableTable($__default['default'](this));\n          $__default['default'](this).data(DATA_KEY$9, data);\n        }\n\n        if (typeof operation === 'string' && /init|toggleRow/.test(operation)) {\n          data[operation]();\n        }\n      });\n    };\n\n    return ExpandableTable;\n  }();\n  /**\n    * Data API\n    * ====================================================\n    */\n\n\n  $__default['default'](SELECTOR_TABLE).ready(function () {\n    ExpandableTable._jQueryInterface.call($__default['default'](this), 'init');\n  });\n  $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE$2, function () {\n    ExpandableTable._jQueryInterface.call($__default['default'](this), 'toggleRow');\n  });\n  /**\n    * jQuery API\n    * ====================================================\n    */\n\n  $__default['default'].fn[NAME$9] = ExpandableTable._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = ExpandableTable;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return ExpandableTable._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Fullscreen.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$8 = 'Fullscreen';\n  var DATA_KEY$8 = 'lte.fullscreen';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var SELECTOR_DATA_WIDGET$2 = '[data-widget=\"fullscreen\"]';\n  var SELECTOR_ICON = SELECTOR_DATA_WIDGET$2 + \" i\";\n  var Default$8 = {\n    minimizeIcon: 'fa-compress-arrows-alt',\n    maximizeIcon: 'fa-expand-arrows-alt'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Fullscreen = /*#__PURE__*/function () {\n    function Fullscreen(_element, _options) {\n      this.element = _element;\n      this.options = $__default['default'].extend({}, Default$8, _options);\n    } // Public\n\n\n    var _proto = Fullscreen.prototype;\n\n    _proto.toggle = function toggle() {\n      if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) {\n        this.windowed();\n      } else {\n        this.fullscreen();\n      }\n    };\n\n    _proto.fullscreen = function fullscreen() {\n      if (document.documentElement.requestFullscreen) {\n        document.documentElement.requestFullscreen();\n      } else if (document.documentElement.webkitRequestFullscreen) {\n        document.documentElement.webkitRequestFullscreen();\n      } else if (document.documentElement.msRequestFullscreen) {\n        document.documentElement.msRequestFullscreen();\n      }\n\n      $__default['default'](SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon);\n    };\n\n    _proto.windowed = function windowed() {\n      if (document.exitFullscreen) {\n        document.exitFullscreen();\n      } else if (document.webkitExitFullscreen) {\n        document.webkitExitFullscreen();\n      } else if (document.msExitFullscreen) {\n        document.msExitFullscreen();\n      }\n\n      $__default['default'](SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon);\n    } // Static\n    ;\n\n    Fullscreen._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$8);\n\n      if (!data) {\n        data = $__default['default'](this).data();\n      }\n\n      var _options = $__default['default'].extend({}, Default$8, typeof config === 'object' ? config : data);\n\n      var plugin = new Fullscreen($__default['default'](this), _options);\n      $__default['default'](this).data(DATA_KEY$8, typeof config === 'object' ? config : data);\n\n      if (typeof config === 'string' && /toggle|fullscreen|windowed/.test(config)) {\n        plugin[config]();\n      } else {\n        plugin.init();\n      }\n    };\n\n    return Fullscreen;\n  }();\n  /**\n    * Data API\n    * ====================================================\n    */\n\n\n  $__default['default'](document).on('click', SELECTOR_DATA_WIDGET$2, function () {\n    Fullscreen._jQueryInterface.call($__default['default'](this), 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$8] = Fullscreen._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = Fullscreen;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return Fullscreen._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE IFrame.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$7 = 'IFrame';\n  var DATA_KEY$7 = 'lte.iframe';\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var SELECTOR_DATA_TOGGLE$1 = '[data-widget=\"iframe\"]';\n  var SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget=\"iframe-close\"]';\n  var SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget=\"iframe-scrollleft\"]';\n  var SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget=\"iframe-scrollright\"]';\n  var SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget=\"iframe-fullscreen\"]';\n  var SELECTOR_CONTENT_WRAPPER = '.content-wrapper';\n  var SELECTOR_CONTENT_IFRAME = SELECTOR_CONTENT_WRAPPER + \" iframe\";\n  var SELECTOR_TAB_NAV = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .nav\";\n  var SELECTOR_TAB_NAVBAR_NAV = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .navbar-nav\";\n  var SELECTOR_TAB_NAVBAR_NAV_ITEM = SELECTOR_TAB_NAVBAR_NAV + \" .nav-item\";\n  var SELECTOR_TAB_NAVBAR_NAV_LINK = SELECTOR_TAB_NAVBAR_NAV + \" .nav-link\";\n  var SELECTOR_TAB_CONTENT = SELECTOR_DATA_TOGGLE$1 + \".iframe-mode .tab-content\";\n  var SELECTOR_TAB_EMPTY = SELECTOR_TAB_CONTENT + \" .tab-empty\";\n  var SELECTOR_TAB_LOADING = SELECTOR_TAB_CONTENT + \" .tab-loading\";\n  var SELECTOR_TAB_PANE = SELECTOR_TAB_CONTENT + \" .tab-pane\";\n  var SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link';\n  var SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item';\n  var SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link';\n  var SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item';\n  var CLASS_NAME_IFRAME_MODE = 'iframe-mode';\n  var CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen';\n  var Default$7 = {\n    onTabClick: function onTabClick(item) {\n      return item;\n    },\n    onTabChanged: function onTabChanged(item) {\n      return item;\n    },\n    onTabCreated: function onTabCreated(item) {\n      return item;\n    },\n    autoIframeMode: true,\n    autoItemActive: true,\n    autoShowNewTab: true,\n    allowDuplicates: false,\n    loadingScreen: true,\n    useNavbarItems: true,\n    scrollOffset: 40,\n    scrollBehaviorSwap: false,\n    iconMaximize: 'fa-expand',\n    iconMinimize: 'fa-compress'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var IFrame = /*#__PURE__*/function () {\n    function IFrame(element, config) {\n      this._config = config;\n      this._element = element;\n\n      this._init();\n    } // Public\n\n\n    var _proto = IFrame.prototype;\n\n    _proto.onTabClick = function onTabClick(item) {\n      this._config.onTabClick(item);\n    };\n\n    _proto.onTabChanged = function onTabChanged(item) {\n      this._config.onTabChanged(item);\n    };\n\n    _proto.onTabCreated = function onTabCreated(item) {\n      this._config.onTabCreated(item);\n    };\n\n    _proto.createTab = function createTab(title, link, uniqueName, autoOpen) {\n      var _this = this;\n\n      var tabId = \"panel-\" + uniqueName;\n      var navId = \"tab-\" + uniqueName;\n\n      if (this._config.allowDuplicates) {\n        tabId += \"-\" + Math.floor(Math.random() * 1000);\n        navId += \"-\" + Math.floor(Math.random() * 1000);\n      }\n\n      var newNavItem = \"<li class=\\\"nav-item\\\" role=\\\"presentation\\\"><a href=\\\"#\\\" class=\\\"btn-iframe-close\\\" data-widget=\\\"iframe-close\\\" data-type=\\\"only-this\\\"><i class=\\\"fas fa-times\\\"></i></a><a class=\\\"nav-link\\\" data-toggle=\\\"row\\\" id=\\\"\" + navId + \"\\\" href=\\\"#\" + tabId + \"\\\" role=\\\"tab\\\" aria-controls=\\\"\" + tabId + \"\\\" aria-selected=\\\"false\\\">\" + title + \"</a></li>\";\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem)));\n      var newTabItem = \"<div class=\\\"tab-pane fade\\\" id=\\\"\" + tabId + \"\\\" role=\\\"tabpanel\\\" aria-labelledby=\\\"\" + navId + \"\\\"><iframe src=\\\"\" + link + \"\\\"></iframe></div>\";\n      $__default['default'](SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem)));\n\n      if (autoOpen) {\n        if (this._config.loadingScreen) {\n          var $loadingScreen = $__default['default'](SELECTOR_TAB_LOADING);\n          $loadingScreen.fadeIn();\n          $__default['default'](tabId + \" iframe\").ready(function () {\n            if (typeof _this._config.loadingScreen === 'number') {\n              _this.switchTab(\"#\" + navId);\n\n              setTimeout(function () {\n                $loadingScreen.fadeOut();\n              }, _this._config.loadingScreen);\n            } else {\n              _this.switchTab(\"#\" + navId);\n\n              $loadingScreen.fadeOut();\n            }\n          });\n        } else {\n          this.switchTab(\"#\" + navId);\n        }\n      }\n\n      this.onTabCreated($__default['default'](\"#\" + navId));\n    };\n\n    _proto.openTabSidebar = function openTabSidebar(item, autoOpen) {\n      if (autoOpen === void 0) {\n        autoOpen = this._config.autoShowNewTab;\n      }\n\n      var $item = $__default['default'](item).clone();\n\n      if ($item.attr('href') === undefined) {\n        $item = $__default['default'](item).parent('a').clone();\n      }\n\n      $item.find('.right, .search-path').remove();\n      var title = $item.find('p').text();\n\n      if (title === '') {\n        title = $item.text();\n      }\n\n      var link = $item.attr('href');\n\n      if (link === '#' || link === '' || link === undefined) {\n        return;\n      }\n\n      var uniqueName = link.replace('./', '').replace(/[\"&'./:=?[\\]]/gi, '-').replace(/(--)/gi, '');\n      var navId = \"tab-\" + uniqueName;\n\n      if (!this._config.allowDuplicates && $__default['default'](\"#\" + navId).length > 0) {\n        return this.switchTab(\"#\" + navId);\n      }\n\n      if (!this._config.allowDuplicates && $__default['default'](\"#\" + navId).length === 0 || this._config.allowDuplicates) {\n        this.createTab(title, link, uniqueName, autoOpen);\n      }\n    };\n\n    _proto.switchTab = function switchTab(item) {\n      var $item = $__default['default'](item);\n      var tabId = $item.attr('href');\n      $__default['default'](SELECTOR_TAB_EMPTY).hide();\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV + \" .active\").tab('dispose').removeClass('active');\n\n      this._fixHeight();\n\n      $item.tab('show');\n      $item.parents('li').addClass('active');\n      this.onTabChanged($item);\n\n      if (this._config.autoItemActive) {\n        this._setItemActive($__default['default'](tabId + \" iframe\").attr('src'));\n      }\n    };\n\n    _proto.removeActiveTab = function removeActiveTab(type, element) {\n      if (type == 'all') {\n        $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM).remove();\n        $__default['default'](SELECTOR_TAB_PANE).remove();\n        $__default['default'](SELECTOR_TAB_EMPTY).show();\n      } else if (type == 'all-other') {\n        $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM + \":not(.active)\").remove();\n        $__default['default'](SELECTOR_TAB_PANE + \":not(.active)\").remove();\n      } else if (type == 'only-this') {\n        var $navClose = $__default['default'](element);\n        var $navItem = $navClose.parent('.nav-item');\n        var $navItemParent = $navItem.parent();\n        var navItemIndex = $navItem.index();\n        var tabId = $navClose.siblings('.nav-link').attr('aria-controls');\n        $navItem.remove();\n        $__default['default'](\"#\" + tabId).remove();\n\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length == $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).length) {\n          $__default['default'](SELECTOR_TAB_EMPTY).show();\n        } else {\n          var prevNavItemIndex = navItemIndex - 1;\n          this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'));\n        }\n      } else {\n        var _$navItem = $__default['default'](SELECTOR_TAB_NAVBAR_NAV_ITEM + \".active\");\n\n        var _$navItemParent = _$navItem.parent();\n\n        var _navItemIndex = _$navItem.index();\n\n        _$navItem.remove();\n\n        $__default['default'](SELECTOR_TAB_PANE + \".active\").remove();\n\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length == $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).length) {\n          $__default['default'](SELECTOR_TAB_EMPTY).show();\n        } else {\n          var _prevNavItemIndex = _navItemIndex - 1;\n\n          this.switchTab(_$navItemParent.children().eq(_prevNavItemIndex).find('a.nav-link'));\n        }\n      }\n    };\n\n    _proto.toggleFullscreen = function toggleFullscreen() {\n      if ($__default['default']('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n        $__default['default'](SELECTOR_DATA_TOGGLE_FULLSCREEN + \" i\").removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize);\n        $__default['default']('body').removeClass(CLASS_NAME_FULLSCREEN_MODE);\n        $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).height('auto');\n        $__default['default'](SELECTOR_CONTENT_WRAPPER).height('auto');\n        $__default['default'](SELECTOR_CONTENT_IFRAME).height('auto');\n      } else {\n        $__default['default'](SELECTOR_DATA_TOGGLE_FULLSCREEN + \" i\").removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize);\n        $__default['default']('body').addClass(CLASS_NAME_FULLSCREEN_MODE);\n      }\n\n      $__default['default'](window).trigger('resize');\n\n      this._fixHeight(true);\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      if (window.frameElement && this._config.autoIframeMode) {\n        $__default['default']('body').addClass(CLASS_NAME_IFRAME_MODE);\n      } else if ($__default['default'](SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) {\n        if ($__default['default'](SELECTOR_TAB_CONTENT).children().length > 2) {\n          var $el = $__default['default'](SELECTOR_TAB_PANE + \":first-child\");\n          $el.show();\n\n          this._setItemActive($el.find('iframe').attr('src'));\n        }\n\n        this._setupListeners();\n\n        this._fixHeight(true);\n      }\n    };\n\n    _proto._navScroll = function _navScroll(offset) {\n      var leftPos = $__default['default'](SELECTOR_TAB_NAVBAR_NAV).scrollLeft();\n      $__default['default'](SELECTOR_TAB_NAVBAR_NAV).animate({\n        scrollLeft: leftPos + offset\n      }, 250, 'linear');\n    };\n\n    _proto._setupListeners = function _setupListeners() {\n      var _this2 = this;\n\n      $__default['default'](window).on('resize', function () {\n        setTimeout(function () {\n          _this2._fixHeight();\n        }, 1);\n      });\n      $__default['default'](document).on('click', SELECTOR_SIDEBAR_MENU_ITEM + \", \" + SELECTOR_SIDEBAR_SEARCH_ITEM, function (e) {\n        e.preventDefault();\n\n        _this2.openTabSidebar(e.target);\n      });\n\n      if (this._config.useNavbarItems) {\n        $__default['default'](document).on('click', SELECTOR_HEADER_MENU_ITEM + \", \" + SELECTOR_HEADER_DROPDOWN_ITEM, function (e) {\n          e.preventDefault();\n\n          _this2.openTabSidebar(e.target);\n        });\n      }\n\n      $__default['default'](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) {\n        e.preventDefault();\n\n        _this2.onTabClick(e.target);\n\n        _this2.switchTab(e.target);\n      });\n      $__default['default'](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) {\n        e.preventDefault();\n\n        _this2.onTabClick(e.target);\n\n        _this2.switchTab(e.target);\n      });\n      $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, function (e) {\n        e.preventDefault();\n        var target = e.target;\n\n        if (target.nodeName == 'I') {\n          target = e.target.offsetParent;\n        }\n\n        _this2.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target);\n      });\n      $__default['default'](document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, function (e) {\n        e.preventDefault();\n\n        _this2.toggleFullscreen();\n      });\n      var mousedown = false;\n      var mousedownInterval = null;\n      $__default['default'](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, function (e) {\n        e.preventDefault();\n        clearInterval(mousedownInterval);\n        var scrollOffset = _this2._config.scrollOffset;\n\n        if (!_this2._config.scrollBehaviorSwap) {\n          scrollOffset = -scrollOffset;\n        }\n\n        mousedown = true;\n\n        _this2._navScroll(scrollOffset);\n\n        mousedownInterval = setInterval(function () {\n          _this2._navScroll(scrollOffset);\n        }, 250);\n      });\n      $__default['default'](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, function (e) {\n        e.preventDefault();\n        clearInterval(mousedownInterval);\n        var scrollOffset = _this2._config.scrollOffset;\n\n        if (_this2._config.scrollBehaviorSwap) {\n          scrollOffset = -scrollOffset;\n        }\n\n        mousedown = true;\n\n        _this2._navScroll(scrollOffset);\n\n        mousedownInterval = setInterval(function () {\n          _this2._navScroll(scrollOffset);\n        }, 250);\n      });\n      $__default['default'](document).on('mouseup', function () {\n        if (mousedown) {\n          mousedown = false;\n          clearInterval(mousedownInterval);\n          mousedownInterval = null;\n        }\n      });\n    };\n\n    _proto._setItemActive = function _setItemActive(href) {\n      $__default['default'](SELECTOR_SIDEBAR_MENU_ITEM + \", \" + SELECTOR_HEADER_DROPDOWN_ITEM).removeClass('active');\n      $__default['default'](SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active');\n      var $headerMenuItem = $__default['default'](SELECTOR_HEADER_MENU_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      var $headerDropdownItem = $__default['default'](SELECTOR_HEADER_DROPDOWN_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      var $sidebarMenuItem = $__default['default'](SELECTOR_SIDEBAR_MENU_ITEM + \"[href$=\\\"\" + href + \"\\\"]\");\n      $headerMenuItem.each(function (i, e) {\n        $__default['default'](e).parent().addClass('active');\n      });\n      $headerDropdownItem.each(function (i, e) {\n        $__default['default'](e).addClass('active');\n      });\n      $sidebarMenuItem.each(function (i, e) {\n        $__default['default'](e).addClass('active');\n        $__default['default'](e).parents('.nav-treeview').prevAll('.nav-link').addClass('active');\n      });\n    };\n\n    _proto._fixHeight = function _fixHeight(tabEmpty) {\n      if (tabEmpty === void 0) {\n        tabEmpty = false;\n      }\n\n      if ($__default['default']('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n        var windowHeight = $__default['default'](window).height();\n        var navbarHeight = $__default['default'](SELECTOR_TAB_NAV).outerHeight();\n        $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING + \", \" + SELECTOR_CONTENT_IFRAME).height(windowHeight - navbarHeight);\n        $__default['default'](SELECTOR_CONTENT_WRAPPER).height(windowHeight);\n      } else {\n        var contentWrapperHeight = parseFloat($__default['default'](SELECTOR_CONTENT_WRAPPER).css('height'));\n\n        var _navbarHeight = $__default['default'](SELECTOR_TAB_NAV).outerHeight();\n\n        if (tabEmpty == true) {\n          setTimeout(function () {\n            $__default['default'](SELECTOR_TAB_EMPTY + \", \" + SELECTOR_TAB_LOADING).height(contentWrapperHeight - _navbarHeight);\n          }, 50);\n        } else {\n          $__default['default'](SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - _navbarHeight);\n        }\n      }\n    } // Static\n    ;\n\n    IFrame._jQueryInterface = function _jQueryInterface(operation) {\n      var data = $__default['default'](this).data(DATA_KEY$7);\n\n      var _options = $__default['default'].extend({}, Default$7, $__default['default'](this).data());\n\n      if (!data) {\n        data = new IFrame(this, _options);\n        $__default['default'](this).data(DATA_KEY$7, data);\n      }\n\n      if (typeof operation === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(operation)) {\n        var _data;\n\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        (_data = data)[operation].apply(_data, args);\n      }\n    };\n\n    return IFrame;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    IFrame._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE$1));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$7] = IFrame._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = IFrame;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return IFrame._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Layout.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$6 = 'Layout';\n  var DATA_KEY$6 = 'lte.layout';\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var SELECTOR_HEADER = '.main-header';\n  var SELECTOR_MAIN_SIDEBAR = '.main-sidebar';\n  var SELECTOR_SIDEBAR$1 = '.main-sidebar .sidebar';\n  var SELECTOR_CONTENT = '.content-wrapper';\n  var SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content';\n  var SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget=\"control-sidebar\"]';\n  var SELECTOR_FOOTER = '.main-footer';\n  var SELECTOR_PUSHMENU_BTN = '[data-widget=\"pushmenu\"]';\n  var SELECTOR_LOGIN_BOX = '.login-box';\n  var SELECTOR_REGISTER_BOX = '.register-box';\n  var SELECTOR_PRELOADER = '.preloader';\n  var CLASS_NAME_SIDEBAR_COLLAPSED$1 = 'sidebar-collapse';\n  var CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused';\n  var CLASS_NAME_LAYOUT_FIXED = 'layout-fixed';\n  var CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open';\n  var CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open';\n  var Default$6 = {\n    scrollbarTheme: 'os-theme-light',\n    scrollbarAutoHide: 'l',\n    panelAutoHeight: true,\n    panelAutoHeightMode: 'min-height',\n    preloadDuration: 200,\n    loginRegisterAutoHeight: true\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Layout = /*#__PURE__*/function () {\n    function Layout(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Layout.prototype;\n\n    _proto.fixLayoutHeight = function fixLayoutHeight(extra) {\n      if (extra === void 0) {\n        extra = null;\n      }\n\n      var $body = $__default['default']('body');\n      var controlSidebar = 0;\n\n      if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') {\n        controlSidebar = $__default['default'](SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight();\n      }\n\n      var heights = {\n        window: $__default['default'](window).height(),\n        header: $__default['default'](SELECTOR_HEADER).length > 0 ? $__default['default'](SELECTOR_HEADER).outerHeight() : 0,\n        footer: $__default['default'](SELECTOR_FOOTER).length > 0 ? $__default['default'](SELECTOR_FOOTER).outerHeight() : 0,\n        sidebar: $__default['default'](SELECTOR_SIDEBAR$1).length > 0 ? $__default['default'](SELECTOR_SIDEBAR$1).height() : 0,\n        controlSidebar: controlSidebar\n      };\n\n      var max = this._max(heights);\n\n      var offset = this._config.panelAutoHeight;\n\n      if (offset === true) {\n        offset = 0;\n      }\n\n      var $contentSelector = $__default['default'](SELECTOR_CONTENT);\n\n      if (offset !== false) {\n        if (max === heights.controlSidebar) {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset);\n        } else if (max === heights.window) {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header - heights.footer);\n        } else {\n          $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header);\n        }\n\n        if (this._isFooterFixed()) {\n          $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer);\n        }\n      }\n\n      if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n        return;\n      }\n\n      if (typeof $__default['default'].fn.overlayScrollbars !== 'undefined') {\n        $__default['default'](SELECTOR_SIDEBAR$1).overlayScrollbars({\n          className: this._config.scrollbarTheme,\n          sizeAutoCapable: true,\n          scrollbars: {\n            autoHide: this._config.scrollbarAutoHide,\n            clickScrolling: true\n          }\n        });\n      } else {\n        $__default['default'](SELECTOR_SIDEBAR$1).css('overflow-y', 'auto');\n      }\n    };\n\n    _proto.fixLoginRegisterHeight = function fixLoginRegisterHeight() {\n      var $body = $__default['default']('body');\n      var $selector = $__default['default'](SELECTOR_LOGIN_BOX + \", \" + SELECTOR_REGISTER_BOX);\n\n      if ($selector.length === 0) {\n        $body.css('height', 'auto');\n        $__default['default']('html').css('height', 'auto');\n      } else {\n        var boxHeight = $selector.height();\n\n        if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) {\n          $body.css(this._config.panelAutoHeightMode, boxHeight);\n        }\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      // Activate layout height watcher\n      this.fixLayoutHeight();\n\n      if (this._config.loginRegisterAutoHeight === true) {\n        this.fixLoginRegisterHeight();\n      } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) {\n        setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight);\n      }\n\n      $__default['default'](SELECTOR_SIDEBAR$1).on('collapsed.lte.treeview expanded.lte.treeview', function () {\n        _this.fixLayoutHeight();\n      });\n      $__default['default'](SELECTOR_MAIN_SIDEBAR).on('mouseenter mouseleave', function () {\n        if ($__default['default']('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED$1)) {\n          _this.fixLayoutHeight();\n        }\n      });\n      $__default['default'](SELECTOR_PUSHMENU_BTN).on('collapsed.lte.pushmenu shown.lte.pushmenu', function () {\n        setTimeout(function () {\n          _this.fixLayoutHeight();\n        }, 300);\n      });\n      $__default['default'](SELECTOR_CONTROL_SIDEBAR_BTN).on('collapsed.lte.controlsidebar', function () {\n        _this.fixLayoutHeight();\n      }).on('expanded.lte.controlsidebar', function () {\n        _this.fixLayoutHeight('control_sidebar');\n      });\n      $__default['default'](window).resize(function () {\n        _this.fixLayoutHeight();\n      });\n      setTimeout(function () {\n        $__default['default']('body.hold-transition').removeClass('hold-transition');\n      }, 50);\n      setTimeout(function () {\n        var $preloader = $__default['default'](SELECTOR_PRELOADER);\n\n        if ($preloader) {\n          $preloader.css('height', 0);\n          setTimeout(function () {\n            $preloader.children().hide();\n          }, 200);\n        }\n      }, this._config.preloadDuration);\n    };\n\n    _proto._max = function _max(numbers) {\n      // Calculate the maximum number in a list\n      var max = 0;\n      Object.keys(numbers).forEach(function (key) {\n        if (numbers[key] > max) {\n          max = numbers[key];\n        }\n      });\n      return max;\n    };\n\n    _proto._isFooterFixed = function _isFooterFixed() {\n      return $__default['default'](SELECTOR_FOOTER).css('position') === 'fixed';\n    } // Static\n    ;\n\n    Layout._jQueryInterface = function _jQueryInterface(config) {\n      if (config === void 0) {\n        config = '';\n      }\n\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$6);\n\n        var _options = $__default['default'].extend({}, Default$6, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Layout($__default['default'](this), _options);\n          $__default['default'](this).data(DATA_KEY$6, data);\n        }\n\n        if (config === 'init' || config === '') {\n          data._init();\n        } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {\n          data[config]();\n        }\n      });\n    };\n\n    return Layout;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    Layout._jQueryInterface.call($__default['default']('body'));\n  });\n  $__default['default'](SELECTOR_SIDEBAR$1 + \" a\").on('focusin', function () {\n    $__default['default'](SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED);\n  }).on('focusout', function () {\n    $__default['default'](SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED);\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$6] = Layout._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Layout;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Layout._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE PushMenu.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$5 = 'PushMenu';\n  var DATA_KEY$5 = 'lte.pushmenu';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$5;\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var EVENT_COLLAPSED$1 = \"collapsed\" + EVENT_KEY$2;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$2;\n  var SELECTOR_TOGGLE_BUTTON$1 = '[data-widget=\"pushmenu\"]';\n  var SELECTOR_BODY = 'body';\n  var SELECTOR_OVERLAY = '#sidebar-overlay';\n  var SELECTOR_WRAPPER = '.wrapper';\n  var CLASS_NAME_COLLAPSED = 'sidebar-collapse';\n  var CLASS_NAME_OPEN$3 = 'sidebar-open';\n  var CLASS_NAME_IS_OPENING$1 = 'sidebar-is-opening';\n  var CLASS_NAME_CLOSED = 'sidebar-closed';\n  var Default$5 = {\n    autoCollapseSize: 992,\n    enableRemember: false,\n    noTransitionAfterReload: true\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var PushMenu = /*#__PURE__*/function () {\n    function PushMenu(element, options) {\n      this._element = element;\n      this._options = $__default['default'].extend({}, Default$5, options);\n\n      if ($__default['default'](SELECTOR_OVERLAY).length === 0) {\n        this._addOverlay();\n      }\n\n      this._init();\n    } // Public\n\n\n    var _proto = PushMenu.prototype;\n\n    _proto.expand = function expand() {\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if (this._options.autoCollapseSize && $__default['default'](window).width() <= this._options.autoCollapseSize) {\n        $bodySelector.addClass(CLASS_NAME_OPEN$3);\n      }\n\n      $bodySelector.addClass(CLASS_NAME_IS_OPENING$1).removeClass(CLASS_NAME_COLLAPSED + \" \" + CLASS_NAME_CLOSED).delay(50).queue(function () {\n        $bodySelector.removeClass(CLASS_NAME_IS_OPENING$1);\n        $__default['default'](this).dequeue();\n      });\n\n      if (this._options.enableRemember) {\n        localStorage.setItem(\"remember\" + EVENT_KEY$2, CLASS_NAME_OPEN$3);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_SHOWN));\n    };\n\n    _proto.collapse = function collapse() {\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if (this._options.autoCollapseSize && $__default['default'](window).width() <= this._options.autoCollapseSize) {\n        $bodySelector.removeClass(CLASS_NAME_OPEN$3).addClass(CLASS_NAME_CLOSED);\n      }\n\n      $bodySelector.addClass(CLASS_NAME_COLLAPSED);\n\n      if (this._options.enableRemember) {\n        localStorage.setItem(\"remember\" + EVENT_KEY$2, CLASS_NAME_COLLAPSED);\n      }\n\n      $__default['default'](this._element).trigger($__default['default'].Event(EVENT_COLLAPSED$1));\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) {\n        this.expand();\n      } else {\n        this.collapse();\n      }\n    };\n\n    _proto.autoCollapse = function autoCollapse(resize) {\n      if (resize === void 0) {\n        resize = false;\n      }\n\n      if (!this._options.autoCollapseSize) {\n        return;\n      }\n\n      var $bodySelector = $__default['default'](SELECTOR_BODY);\n\n      if ($__default['default'](window).width() <= this._options.autoCollapseSize) {\n        if (!$bodySelector.hasClass(CLASS_NAME_OPEN$3)) {\n          this.collapse();\n        }\n      } else if (resize === true) {\n        if ($bodySelector.hasClass(CLASS_NAME_OPEN$3)) {\n          $bodySelector.removeClass(CLASS_NAME_OPEN$3);\n        } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) {\n          this.expand();\n        }\n      }\n    };\n\n    _proto.remember = function remember() {\n      if (!this._options.enableRemember) {\n        return;\n      }\n\n      var $body = $__default['default']('body');\n      var toggleState = localStorage.getItem(\"remember\" + EVENT_KEY$2);\n\n      if (toggleState === CLASS_NAME_COLLAPSED) {\n        if (this._options.noTransitionAfterReload) {\n          $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n            $__default['default'](this).removeClass('hold-transition');\n            $__default['default'](this).dequeue();\n          });\n        } else {\n          $body.addClass(CLASS_NAME_COLLAPSED);\n        }\n      } else if (this._options.noTransitionAfterReload) {\n        $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n          $__default['default'](this).removeClass('hold-transition');\n          $__default['default'](this).dequeue();\n        });\n      } else {\n        $body.removeClass(CLASS_NAME_COLLAPSED);\n      }\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      this.remember();\n      this.autoCollapse();\n      $__default['default'](window).resize(function () {\n        _this.autoCollapse(true);\n      });\n    };\n\n    _proto._addOverlay = function _addOverlay() {\n      var _this2 = this;\n\n      var overlay = $__default['default']('<div />', {\n        id: 'sidebar-overlay'\n      });\n      overlay.on('click', function () {\n        _this2.collapse();\n      });\n      $__default['default'](SELECTOR_WRAPPER).append(overlay);\n    } // Static\n    ;\n\n    PushMenu._jQueryInterface = function _jQueryInterface(operation) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _options = $__default['default'].extend({}, Default$5, $__default['default'](this).data());\n\n        if (!data) {\n          data = new PushMenu(this, _options);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) {\n          data[operation]();\n        }\n      });\n    };\n\n    return PushMenu;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_TOGGLE_BUTTON$1, function (event) {\n    event.preventDefault();\n    var button = event.currentTarget;\n\n    if ($__default['default'](button).data('widget') !== 'pushmenu') {\n      button = $__default['default'](button).closest(SELECTOR_TOGGLE_BUTTON$1);\n    }\n\n    PushMenu._jQueryInterface.call($__default['default'](button), 'toggle');\n  });\n  $__default['default'](window).on('load', function () {\n    PushMenu._jQueryInterface.call($__default['default'](SELECTOR_TOGGLE_BUTTON$1));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$5] = PushMenu._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = PushMenu;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return PushMenu._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE SidebarSearch.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$4 = 'SidebarSearch';\n  var DATA_KEY$4 = 'lte.sidebar-search';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var CLASS_NAME_OPEN$2 = 'sidebar-search-open';\n  var CLASS_NAME_ICON_SEARCH = 'fa-search';\n  var CLASS_NAME_ICON_CLOSE = 'fa-times';\n  var CLASS_NAME_HEADER = 'nav-header';\n  var CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results';\n  var CLASS_NAME_LIST_GROUP = 'list-group';\n  var SELECTOR_DATA_WIDGET$1 = '[data-widget=\"sidebar-search\"]';\n  var SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar';\n  var SELECTOR_NAV_LINK = '.nav-link';\n  var SELECTOR_NAV_TREEVIEW = '.nav-treeview';\n  var SELECTOR_SEARCH_INPUT$1 = SELECTOR_DATA_WIDGET$1 + \" .form-control\";\n  var SELECTOR_SEARCH_BUTTON = SELECTOR_DATA_WIDGET$1 + \" .btn\";\n  var SELECTOR_SEARCH_ICON = SELECTOR_SEARCH_BUTTON + \" i\";\n  var SELECTOR_SEARCH_LIST_GROUP = \".\" + CLASS_NAME_LIST_GROUP;\n  var SELECTOR_SEARCH_RESULTS = \".\" + CLASS_NAME_SEARCH_RESULTS;\n  var SELECTOR_SEARCH_RESULTS_GROUP = SELECTOR_SEARCH_RESULTS + \" .\" + CLASS_NAME_LIST_GROUP;\n  var Default$4 = {\n    arrowSign: '->',\n    minLength: 3,\n    maxResults: 7,\n    highlightName: true,\n    highlightPath: false,\n    highlightClass: 'text-light',\n    notFoundText: 'No element found!'\n  };\n  var SearchItems = [];\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var SidebarSearch = /*#__PURE__*/function () {\n    function SidebarSearch(_element, _options) {\n      this.element = _element;\n      this.options = $__default['default'].extend({}, Default$4, _options);\n      this.items = [];\n    } // Public\n\n\n    var _proto = SidebarSearch.prototype;\n\n    _proto.init = function init() {\n      var _this = this;\n\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).length === 0) {\n        return;\n      }\n\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).next(SELECTOR_SEARCH_RESULTS).length === 0) {\n        $__default['default'](SELECTOR_DATA_WIDGET$1).after($__default['default']('<div />', {\n          class: CLASS_NAME_SEARCH_RESULTS\n        }));\n      }\n\n      if ($__default['default'](SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) {\n        $__default['default'](SELECTOR_SEARCH_RESULTS).append($__default['default']('<div />', {\n          class: CLASS_NAME_LIST_GROUP\n        }));\n      }\n\n      this._addNotFound();\n\n      $__default['default'](SELECTOR_SIDEBAR).children().each(function (i, child) {\n        _this._parseItem(child);\n      });\n    };\n\n    _proto.search = function search() {\n      var _this2 = this;\n\n      var searchValue = $__default['default'](SELECTOR_SEARCH_INPUT$1).val().toLowerCase();\n\n      if (searchValue.length < this.options.minLength) {\n        $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).empty();\n\n        this._addNotFound();\n\n        this.close();\n        return;\n      }\n\n      var searchResults = SearchItems.filter(function (item) {\n        return item.name.toLowerCase().includes(searchValue);\n      });\n      var endResults = $__default['default'](searchResults.slice(0, this.options.maxResults));\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).empty();\n\n      if (endResults.length === 0) {\n        this._addNotFound();\n      } else {\n        endResults.each(function (i, result) {\n          $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).append(_this2._renderItem(escape(result.name), escape(result.link), result.path));\n        });\n      }\n\n      this.open();\n    };\n\n    _proto.open = function open() {\n      $__default['default'](SELECTOR_DATA_WIDGET$1).parent().addClass(CLASS_NAME_OPEN$2);\n      $__default['default'](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE);\n    };\n\n    _proto.close = function close() {\n      $__default['default'](SELECTOR_DATA_WIDGET$1).parent().removeClass(CLASS_NAME_OPEN$2);\n      $__default['default'](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH);\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](SELECTOR_DATA_WIDGET$1).parent().hasClass(CLASS_NAME_OPEN$2)) {\n        this.close();\n      } else {\n        this.open();\n      }\n    } // Private\n    ;\n\n    _proto._parseItem = function _parseItem(item, path) {\n      var _this3 = this;\n\n      if (path === void 0) {\n        path = [];\n      }\n\n      if ($__default['default'](item).hasClass(CLASS_NAME_HEADER)) {\n        return;\n      }\n\n      var itemObject = {};\n      var navLink = $__default['default'](item).clone().find(\"> \" + SELECTOR_NAV_LINK);\n      var navTreeview = $__default['default'](item).clone().find(\"> \" + SELECTOR_NAV_TREEVIEW);\n      var link = navLink.attr('href');\n      var name = navLink.find('p').children().remove().end().text();\n      itemObject.name = this._trimText(name);\n      itemObject.link = link;\n      itemObject.path = path;\n\n      if (navTreeview.length === 0) {\n        SearchItems.push(itemObject);\n      } else {\n        var newPath = itemObject.path.concat([itemObject.name]);\n        navTreeview.children().each(function (i, child) {\n          _this3._parseItem(child, newPath);\n        });\n      }\n    };\n\n    _proto._trimText = function _trimText(text) {\n      return $.trim(text.replace(/(\\r\\n|\\n|\\r)/gm, ' '));\n    };\n\n    _proto._renderItem = function _renderItem(name, link, path) {\n      var _this4 = this;\n\n      path = path.join(\" \" + this.options.arrowSign + \" \");\n      name = unescape(name);\n\n      if (this.options.highlightName || this.options.highlightPath) {\n        var searchValue = $__default['default'](SELECTOR_SEARCH_INPUT$1).val().toLowerCase();\n        var regExp = new RegExp(searchValue, 'gi');\n\n        if (this.options.highlightName) {\n          name = name.replace(regExp, function (str) {\n            return \"<strong class=\\\"\" + _this4.options.highlightClass + \"\\\">\" + str + \"</strong>\";\n          });\n        }\n\n        if (this.options.highlightPath) {\n          path = path.replace(regExp, function (str) {\n            return \"<strong class=\\\"\" + _this4.options.highlightClass + \"\\\">\" + str + \"</strong>\";\n          });\n        }\n      }\n\n      var groupItemElement = $__default['default']('<a/>', {\n        href: link,\n        class: 'list-group-item'\n      });\n      var searchTitleElement = $__default['default']('<div/>', {\n        class: 'search-title'\n      }).html(name);\n      var searchPathElement = $__default['default']('<div/>', {\n        class: 'search-path'\n      }).html(path);\n      groupItemElement.append(searchTitleElement).append(searchPathElement);\n      return groupItemElement;\n    };\n\n    _proto._addNotFound = function _addNotFound() {\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []));\n    } // Static\n    ;\n\n    SidebarSearch._jQueryInterface = function _jQueryInterface(config) {\n      var data = $__default['default'](this).data(DATA_KEY$4);\n\n      if (!data) {\n        data = $__default['default'](this).data();\n      }\n\n      var _options = $__default['default'].extend({}, Default$4, typeof config === 'object' ? config : data);\n\n      var plugin = new SidebarSearch($__default['default'](this), _options);\n      $__default['default'](this).data(DATA_KEY$4, typeof config === 'object' ? config : data);\n\n      if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n        plugin[config]();\n      } else {\n        plugin.init();\n      }\n    };\n\n    return SidebarSearch;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_SEARCH_BUTTON, function (event) {\n    event.preventDefault();\n\n    SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'toggle');\n  });\n  $__default['default'](document).on('keyup', SELECTOR_SEARCH_INPUT$1, function (event) {\n    if (event.keyCode == 38) {\n      event.preventDefault();\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus();\n      return;\n    }\n\n    if (event.keyCode == 40) {\n      event.preventDefault();\n      $__default['default'](SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus();\n      return;\n    }\n\n    setTimeout(function () {\n      SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'search');\n    }, 100);\n  });\n  $__default['default'](document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, function (event) {\n    var $focused = $__default['default'](':focus');\n\n    if (event.keyCode == 38) {\n      event.preventDefault();\n\n      if ($focused.is(':first-child')) {\n        $focused.siblings().last().focus();\n      } else {\n        $focused.prev().focus();\n      }\n    }\n\n    if (event.keyCode == 40) {\n      event.preventDefault();\n\n      if ($focused.is(':last-child')) {\n        $focused.siblings().first().focus();\n      } else {\n        $focused.next().focus();\n      }\n    }\n  });\n  $__default['default'](window).on('load', function () {\n    SidebarSearch._jQueryInterface.call($__default['default'](SELECTOR_DATA_WIDGET$1), 'init');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$4] = SidebarSearch._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = SidebarSearch;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return SidebarSearch._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE NavbarSearch.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$3 = 'NavbarSearch';\n  var DATA_KEY$3 = 'lte.navbar-search';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]';\n  var SELECTOR_SEARCH_BLOCK = '.navbar-search-block';\n  var SELECTOR_SEARCH_INPUT = '.form-control';\n  var CLASS_NAME_OPEN$1 = 'navbar-search-open';\n  var Default$3 = {\n    resetOnClose: true,\n    target: SELECTOR_SEARCH_BLOCK\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var NavbarSearch = /*#__PURE__*/function () {\n    function NavbarSearch(_element, _options) {\n      this._element = _element;\n      this._config = $__default['default'].extend({}, Default$3, _options);\n    } // Public\n\n\n    var _proto = NavbarSearch.prototype;\n\n    _proto.open = function open() {\n      $__default['default'](this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN$1);\n      $__default['default'](this._config.target + \" \" + SELECTOR_SEARCH_INPUT).focus();\n    };\n\n    _proto.close = function close() {\n      $__default['default'](this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN$1);\n\n      if (this._config.resetOnClose) {\n        $__default['default'](this._config.target + \" \" + SELECTOR_SEARCH_INPUT).val('');\n      }\n    };\n\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._config.target).hasClass(CLASS_NAME_OPEN$1)) {\n        this.close();\n      } else {\n        this.open();\n      }\n    } // Static\n    ;\n\n    NavbarSearch._jQueryInterface = function _jQueryInterface(options) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$3);\n\n        var _options = $__default['default'].extend({}, Default$3, $__default['default'](this).data());\n\n        if (!data) {\n          data = new NavbarSearch(this, _options);\n          $__default['default'](this).data(DATA_KEY$3, data);\n        }\n\n        if (!/toggle|close|open/.test(options)) {\n          throw new Error(\"Undefined method \" + options);\n        }\n\n        data[options]();\n      });\n    };\n\n    return NavbarSearch;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](document).on('click', SELECTOR_TOGGLE_BUTTON, function (event) {\n    event.preventDefault();\n    var button = $__default['default'](event.currentTarget);\n\n    if (button.data('widget') !== 'navbar-search') {\n      button = button.closest(SELECTOR_TOGGLE_BUTTON);\n    }\n\n    NavbarSearch._jQueryInterface.call(button, 'toggle');\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$3] = NavbarSearch._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = NavbarSearch;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return NavbarSearch._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Toasts.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$2 = 'Toasts';\n  var DATA_KEY$2 = 'lte.toasts';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$2;\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var EVENT_INIT = \"init\" + EVENT_KEY$1;\n  var EVENT_CREATED = \"created\" + EVENT_KEY$1;\n  var EVENT_REMOVED = \"removed\" + EVENT_KEY$1;\n  var SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight';\n  var SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft';\n  var SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight';\n  var SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft';\n  var CLASS_NAME_TOP_RIGHT = 'toasts-top-right';\n  var CLASS_NAME_TOP_LEFT = 'toasts-top-left';\n  var CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right';\n  var CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left';\n  var POSITION_TOP_RIGHT = 'topRight';\n  var POSITION_TOP_LEFT = 'topLeft';\n  var POSITION_BOTTOM_RIGHT = 'bottomRight';\n  var POSITION_BOTTOM_LEFT = 'bottomLeft';\n  var Default$2 = {\n    position: POSITION_TOP_RIGHT,\n    fixed: true,\n    autohide: false,\n    autoremove: true,\n    delay: 1000,\n    fade: true,\n    icon: null,\n    image: null,\n    imageAlt: null,\n    imageHeight: '25px',\n    title: null,\n    subtitle: null,\n    close: true,\n    body: null,\n    class: null\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Toasts = /*#__PURE__*/function () {\n    function Toasts(element, config) {\n      this._config = config;\n\n      this._prepareContainer();\n\n      $__default['default']('body').trigger($__default['default'].Event(EVENT_INIT));\n    } // Public\n\n\n    var _proto = Toasts.prototype;\n\n    _proto.create = function create() {\n      var toast = $__default['default']('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>');\n      toast.data('autohide', this._config.autohide);\n      toast.data('animation', this._config.fade);\n\n      if (this._config.class) {\n        toast.addClass(this._config.class);\n      }\n\n      if (this._config.delay && this._config.delay != 500) {\n        toast.data('delay', this._config.delay);\n      }\n\n      var toastHeader = $__default['default']('<div class=\"toast-header\">');\n\n      if (this._config.image != null) {\n        var toastImage = $__default['default']('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt);\n\n        if (this._config.imageHeight != null) {\n          toastImage.height(this._config.imageHeight).width('auto');\n        }\n\n        toastHeader.append(toastImage);\n      }\n\n      if (this._config.icon != null) {\n        toastHeader.append($__default['default']('<i />').addClass('mr-2').addClass(this._config.icon));\n      }\n\n      if (this._config.title != null) {\n        toastHeader.append($__default['default']('<strong />').addClass('mr-auto').html(this._config.title));\n      }\n\n      if (this._config.subtitle != null) {\n        toastHeader.append($__default['default']('<small />').html(this._config.subtitle));\n      }\n\n      if (this._config.close == true) {\n        var toastClose = $__default['default']('<button data-dismiss=\"toast\" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden=\"true\">&times;</span>');\n\n        if (this._config.title == null) {\n          toastClose.toggleClass('ml-2 ml-auto');\n        }\n\n        toastHeader.append(toastClose);\n      }\n\n      toast.append(toastHeader);\n\n      if (this._config.body != null) {\n        toast.append($__default['default']('<div class=\"toast-body\" />').html(this._config.body));\n      }\n\n      $__default['default'](this._getContainerId()).prepend(toast);\n      var $body = $__default['default']('body');\n      $body.trigger($__default['default'].Event(EVENT_CREATED));\n      toast.toast('show');\n\n      if (this._config.autoremove) {\n        toast.on('hidden.bs.toast', function () {\n          $__default['default'](this).delay(200).remove();\n          $body.trigger($__default['default'].Event(EVENT_REMOVED));\n        });\n      }\n    } // Static\n    ;\n\n    _proto._getContainerId = function _getContainerId() {\n      if (this._config.position == POSITION_TOP_RIGHT) {\n        return SELECTOR_CONTAINER_TOP_RIGHT;\n      }\n\n      if (this._config.position == POSITION_TOP_LEFT) {\n        return SELECTOR_CONTAINER_TOP_LEFT;\n      }\n\n      if (this._config.position == POSITION_BOTTOM_RIGHT) {\n        return SELECTOR_CONTAINER_BOTTOM_RIGHT;\n      }\n\n      if (this._config.position == POSITION_BOTTOM_LEFT) {\n        return SELECTOR_CONTAINER_BOTTOM_LEFT;\n      }\n    };\n\n    _proto._prepareContainer = function _prepareContainer() {\n      if ($__default['default'](this._getContainerId()).length === 0) {\n        var container = $__default['default']('<div />').attr('id', this._getContainerId().replace('#', ''));\n\n        if (this._config.position == POSITION_TOP_RIGHT) {\n          container.addClass(CLASS_NAME_TOP_RIGHT);\n        } else if (this._config.position == POSITION_TOP_LEFT) {\n          container.addClass(CLASS_NAME_TOP_LEFT);\n        } else if (this._config.position == POSITION_BOTTOM_RIGHT) {\n          container.addClass(CLASS_NAME_BOTTOM_RIGHT);\n        } else if (this._config.position == POSITION_BOTTOM_LEFT) {\n          container.addClass(CLASS_NAME_BOTTOM_LEFT);\n        }\n\n        $__default['default']('body').append(container);\n      }\n\n      if (this._config.fixed) {\n        $__default['default'](this._getContainerId()).addClass('fixed');\n      } else {\n        $__default['default'](this._getContainerId()).removeClass('fixed');\n      }\n    } // Static\n    ;\n\n    Toasts._jQueryInterface = function _jQueryInterface(option, config) {\n      return this.each(function () {\n        var _options = $__default['default'].extend({}, Default$2, config);\n\n        var toast = new Toasts($__default['default'](this), _options);\n\n        if (option === 'create') {\n          toast[option]();\n        }\n      });\n    };\n\n    return Toasts;\n  }();\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n\n  $__default['default'].fn[NAME$2] = Toasts._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Toasts;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Toasts._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE TodoList.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME$1 = 'TodoList';\n  var DATA_KEY$1 = 'lte.todolist';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var SELECTOR_DATA_TOGGLE = '[data-widget=\"todo-list\"]';\n  var CLASS_NAME_TODO_LIST_DONE = 'done';\n  var Default$1 = {\n    onCheck: function onCheck(item) {\n      return item;\n    },\n    onUnCheck: function onUnCheck(item) {\n      return item;\n    }\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var TodoList = /*#__PURE__*/function () {\n    function TodoList(element, config) {\n      this._config = config;\n      this._element = element;\n\n      this._init();\n    } // Public\n\n\n    var _proto = TodoList.prototype;\n\n    _proto.toggle = function toggle(item) {\n      item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE);\n\n      if (!$__default['default'](item).prop('checked')) {\n        this.unCheck($__default['default'](item));\n        return;\n      }\n\n      this.check(item);\n    };\n\n    _proto.check = function check(item) {\n      this._config.onCheck.call(item);\n    };\n\n    _proto.unCheck = function unCheck(item) {\n      this._config.onUnCheck.call(item);\n    } // Private\n    ;\n\n    _proto._init = function _init() {\n      var _this = this;\n\n      var $toggleSelector = this._element;\n      $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE);\n      $toggleSelector.on('change', 'input:checkbox', function (event) {\n        _this.toggle($__default['default'](event.target));\n      });\n    } // Static\n    ;\n\n    TodoList._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$1);\n\n        if (!data) {\n          data = $__default['default'](this).data();\n        }\n\n        var _options = $__default['default'].extend({}, Default$1, typeof config === 'object' ? config : data);\n\n        var plugin = new TodoList($__default['default'](this), _options);\n        $__default['default'](this).data(DATA_KEY$1, typeof config === 'object' ? config : data);\n\n        if (config === 'init') {\n          plugin[config]();\n        }\n      });\n    };\n\n    return TodoList;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on('load', function () {\n    TodoList._jQueryInterface.call($__default['default'](SELECTOR_DATA_TOGGLE));\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME$1] = TodoList._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = TodoList;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return TodoList._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Treeview.js\n   * License MIT\n   * --------------------------------------------\n   */\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  var NAME = 'Treeview';\n  var DATA_KEY = 'lte.treeview';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var EVENT_EXPANDED = \"expanded\" + EVENT_KEY;\n  var EVENT_COLLAPSED = \"collapsed\" + EVENT_KEY;\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY;\n  var SELECTOR_LI = '.nav-item';\n  var SELECTOR_LINK = '.nav-link';\n  var SELECTOR_TREEVIEW_MENU = '.nav-treeview';\n  var SELECTOR_OPEN = '.menu-open';\n  var SELECTOR_DATA_WIDGET = '[data-widget=\"treeview\"]';\n  var CLASS_NAME_OPEN = 'menu-open';\n  var CLASS_NAME_IS_OPENING = 'menu-is-opening';\n  var CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse';\n  var Default = {\n    trigger: SELECTOR_DATA_WIDGET + \" \" + SELECTOR_LINK,\n    animationSpeed: 300,\n    accordion: true,\n    expandSidebar: false,\n    sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n  };\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  var Treeview = /*#__PURE__*/function () {\n    function Treeview(element, config) {\n      this._config = config;\n      this._element = element;\n    } // Public\n\n\n    var _proto = Treeview.prototype;\n\n    _proto.init = function init() {\n      $__default['default'](\"\" + SELECTOR_LI + SELECTOR_OPEN + \" \" + SELECTOR_TREEVIEW_MENU + SELECTOR_OPEN).css('display', 'block');\n\n      this._setupListeners();\n    };\n\n    _proto.expand = function expand(treeviewMenu, parentLi) {\n      var _this = this;\n\n      var expandedEvent = $__default['default'].Event(EVENT_EXPANDED);\n\n      if (this._config.accordion) {\n        var openMenuLi = parentLi.siblings(SELECTOR_OPEN).first();\n        var openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first();\n        this.collapse(openTreeview, openMenuLi);\n      }\n\n      parentLi.addClass(CLASS_NAME_IS_OPENING);\n      treeviewMenu.stop().slideDown(this._config.animationSpeed, function () {\n        parentLi.addClass(CLASS_NAME_OPEN);\n        $__default['default'](_this._element).trigger(expandedEvent);\n      });\n\n      if (this._config.expandSidebar) {\n        this._expandSidebar();\n      }\n    };\n\n    _proto.collapse = function collapse(treeviewMenu, parentLi) {\n      var _this2 = this;\n\n      var collapsedEvent = $__default['default'].Event(EVENT_COLLAPSED);\n      parentLi.removeClass(CLASS_NAME_IS_OPENING + \" \" + CLASS_NAME_OPEN);\n      treeviewMenu.stop().slideUp(this._config.animationSpeed, function () {\n        $__default['default'](_this2._element).trigger(collapsedEvent);\n        treeviewMenu.find(SELECTOR_OPEN + \" > \" + SELECTOR_TREEVIEW_MENU).slideUp();\n        treeviewMenu.find(SELECTOR_OPEN).removeClass(CLASS_NAME_OPEN);\n      });\n    };\n\n    _proto.toggle = function toggle(event) {\n      var $relativeTarget = $__default['default'](event.currentTarget);\n      var $parent = $relativeTarget.parent();\n      var treeviewMenu = $parent.find(\"> \" + SELECTOR_TREEVIEW_MENU);\n\n      if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n        if (!$parent.is(SELECTOR_LI)) {\n          treeviewMenu = $parent.parent().find(\"> \" + SELECTOR_TREEVIEW_MENU);\n        }\n\n        if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n          return;\n        }\n      }\n\n      event.preventDefault();\n      var parentLi = $relativeTarget.parents(SELECTOR_LI).first();\n      var isOpen = parentLi.hasClass(CLASS_NAME_OPEN);\n\n      if (isOpen) {\n        this.collapse($__default['default'](treeviewMenu), parentLi);\n      } else {\n        this.expand($__default['default'](treeviewMenu), parentLi);\n      }\n    } // Private\n    ;\n\n    _proto._setupListeners = function _setupListeners() {\n      var _this3 = this;\n\n      var elementId = this._element.attr('id') !== undefined ? \"#\" + this._element.attr('id') : '';\n      $__default['default'](document).on('click', \"\" + elementId + this._config.trigger, function (event) {\n        _this3.toggle(event);\n      });\n    };\n\n    _proto._expandSidebar = function _expandSidebar() {\n      if ($__default['default']('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n        $__default['default'](this._config.sidebarButtonSelector).PushMenu('expand');\n      }\n    } // Static\n    ;\n\n    Treeview._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY);\n\n        var _options = $__default['default'].extend({}, Default, $__default['default'](this).data());\n\n        if (!data) {\n          data = new Treeview($__default['default'](this), _options);\n          $__default['default'](this).data(DATA_KEY, data);\n        }\n\n        if (config === 'init') {\n          data[config]();\n        }\n      });\n    };\n\n    return Treeview;\n  }();\n  /**\n   * Data API\n   * ====================================================\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    $__default['default'](SELECTOR_DATA_WIDGET).each(function () {\n      Treeview._jQueryInterface.call($__default['default'](this), 'init');\n    });\n  });\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $__default['default'].fn[NAME] = Treeview._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Treeview;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Treeview._jQueryInterface;\n  };\n\n  exports.CardRefresh = CardRefresh;\n  exports.CardWidget = CardWidget;\n  exports.ControlSidebar = ControlSidebar;\n  exports.DirectChat = DirectChat;\n  exports.Dropdown = Dropdown;\n  exports.ExpandableTable = ExpandableTable;\n  exports.Fullscreen = Fullscreen;\n  exports.IFrame = IFrame;\n  exports.Layout = Layout;\n  exports.NavbarSearch = NavbarSearch;\n  exports.PushMenu = PushMenu;\n  exports.SidebarSearch = SidebarSearch;\n  exports.Toasts = Toasts;\n  exports.TodoList = TodoList;\n  exports.Treeview = Treeview;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=adminlte.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/js/demo.js",
    "content": "/**\n * AdminLTE Demo Menu\n * ------------------\n * You should not use this file in production.\n * This file is for demo purposes only.\n */\n\n/* eslint-disable camelcase */\n\n(function ($) {\n  'use strict'\n\n  function capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1)\n  }\n\n  function createSkinBlock(colors, callback, noneSelected) {\n    var $block = $('<select />', {\n      class: noneSelected ? 'custom-select mb-3 border-0' : 'custom-select mb-3 text-light border-0 ' + colors[0].replace(/accent-|navbar-/, 'bg-')\n    })\n\n    if (noneSelected) {\n      var $default = $('<option />', {\n        text: 'None Selected'\n      })\n      if (callback) {\n        $default.on('click', callback)\n      }\n\n      $block.append($default)\n    }\n\n    colors.forEach(function (color) {\n      var $color = $('<option />', {\n        class: (typeof color === 'object' ? color.join(' ') : color).replace('navbar-', 'bg-').replace('accent-', 'bg-'),\n        text: capitalizeFirstLetter((typeof color === 'object' ? color.join(' ') : color).replace(/navbar-|accent-|bg-/, '').replace('-', ' '))\n      })\n\n      $block.append($color)\n\n      $color.data('color', color)\n\n      if (callback) {\n        $color.on('click', callback)\n      }\n    })\n\n    return $block\n  }\n\n  var $sidebar = $('.control-sidebar')\n  var $container = $('<div />', {\n    class: 'p-3 control-sidebar-content'\n  })\n\n  $sidebar.append($container)\n\n  // Checkboxes\n\n  $container.append(\n    '<h5>Customize AdminLTE</h5><hr class=\"mb-2\"/>'\n  )\n\n  var $dark_mode_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('dark-mode'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('dark-mode')\n    } else {\n      $('body').removeClass('dark-mode')\n    }\n  })\n  var $dark_mode_container = $('<div />', { class: 'mb-4' }).append($dark_mode_checkbox).append('<span>Dark Mode</span>')\n  $container.append($dark_mode_container)\n\n  $container.append('<h6>Header Options</h6>')\n  var $header_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-navbar-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-navbar-fixed')\n    } else {\n      $('body').removeClass('layout-navbar-fixed')\n    }\n  })\n  var $header_fixed_container = $('<div />', { class: 'mb-1' }).append($header_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($header_fixed_container)\n\n  var $dropdown_legacy_offset_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('dropdown-legacy'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('dropdown-legacy')\n    } else {\n      $('.main-header').removeClass('dropdown-legacy')\n    }\n  })\n  var $dropdown_legacy_offset_container = $('<div />', { class: 'mb-1' }).append($dropdown_legacy_offset_checkbox).append('<span>Dropdown Legacy Offset</span>')\n  $container.append($dropdown_legacy_offset_container)\n\n  var $no_border_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('border-bottom-0'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('border-bottom-0')\n    } else {\n      $('.main-header').removeClass('border-bottom-0')\n    }\n  })\n  var $no_border_container = $('<div />', { class: 'mb-4' }).append($no_border_checkbox).append('<span>No border</span>')\n  $container.append($no_border_container)\n\n  $container.append('<h6>Sidebar Options</h6>')\n\n  var $sidebar_collapsed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-collapse'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-collapse')\n      $(window).trigger('resize')\n    } else {\n      $('body').removeClass('sidebar-collapse')\n      $(window).trigger('resize')\n    }\n  })\n  var $sidebar_collapsed_container = $('<div />', { class: 'mb-1' }).append($sidebar_collapsed_checkbox).append('<span>Collapsed</span>')\n  $container.append($sidebar_collapsed_container)\n\n  $(document).on('collapsed.lte.pushmenu', '[data-widget=\"pushmenu\"]', function () {\n    $sidebar_collapsed_checkbox.prop('checked', true)\n  })\n  $(document).on('shown.lte.pushmenu', '[data-widget=\"pushmenu\"]', function () {\n    $sidebar_collapsed_checkbox.prop('checked', false)\n  })\n\n  var $sidebar_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-fixed')\n      $(window).trigger('resize')\n    } else {\n      $('body').removeClass('layout-fixed')\n      $(window).trigger('resize')\n    }\n  })\n  var $sidebar_fixed_container = $('<div />', { class: 'mb-1' }).append($sidebar_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($sidebar_fixed_container)\n\n  var $sidebar_mini_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini')\n    } else {\n      $('body').removeClass('sidebar-mini')\n    }\n  })\n  var $sidebar_mini_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_checkbox).append('<span>Sidebar Mini</span>')\n  $container.append($sidebar_mini_container)\n\n  var $sidebar_mini_md_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini-md'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini-md')\n    } else {\n      $('body').removeClass('sidebar-mini-md')\n    }\n  })\n  var $sidebar_mini_md_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_md_checkbox).append('<span>Sidebar Mini MD</span>')\n  $container.append($sidebar_mini_md_container)\n\n  var $sidebar_mini_xs_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('sidebar-mini-xs'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('sidebar-mini-xs')\n    } else {\n      $('body').removeClass('sidebar-mini-xs')\n    }\n  })\n  var $sidebar_mini_xs_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_xs_checkbox).append('<span>Sidebar Mini XS</span>')\n  $container.append($sidebar_mini_xs_container)\n\n  var $flat_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-flat'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-flat')\n    } else {\n      $('.nav-sidebar').removeClass('nav-flat')\n    }\n  })\n  var $flat_sidebar_container = $('<div />', { class: 'mb-1' }).append($flat_sidebar_checkbox).append('<span>Nav Flat Style</span>')\n  $container.append($flat_sidebar_container)\n\n  var $legacy_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-legacy'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-legacy')\n    } else {\n      $('.nav-sidebar').removeClass('nav-legacy')\n    }\n  })\n  var $legacy_sidebar_container = $('<div />', { class: 'mb-1' }).append($legacy_sidebar_checkbox).append('<span>Nav Legacy Style</span>')\n  $container.append($legacy_sidebar_container)\n\n  var $compact_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-compact'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-compact')\n    } else {\n      $('.nav-sidebar').removeClass('nav-compact')\n    }\n  })\n  var $compact_sidebar_container = $('<div />', { class: 'mb-1' }).append($compact_sidebar_checkbox).append('<span>Nav Compact</span>')\n  $container.append($compact_sidebar_container)\n\n  var $child_indent_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-child-indent'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-child-indent')\n    } else {\n      $('.nav-sidebar').removeClass('nav-child-indent')\n    }\n  })\n  var $child_indent_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_indent_sidebar_checkbox).append('<span>Nav Child Indent</span>')\n  $container.append($child_indent_sidebar_container)\n\n  var $child_hide_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('nav-collapse-hide-child'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('nav-collapse-hide-child')\n    } else {\n      $('.nav-sidebar').removeClass('nav-collapse-hide-child')\n    }\n  })\n  var $child_hide_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_hide_sidebar_checkbox).append('<span>Nav Child Hide on Collapse</span>')\n  $container.append($child_hide_sidebar_container)\n\n  var $no_expand_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-sidebar').hasClass('sidebar-no-expand'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-sidebar').addClass('sidebar-no-expand')\n    } else {\n      $('.main-sidebar').removeClass('sidebar-no-expand')\n    }\n  })\n  var $no_expand_sidebar_container = $('<div />', { class: 'mb-4' }).append($no_expand_sidebar_checkbox).append('<span>Disable Hover/Focus Auto-Expand</span>')\n  $container.append($no_expand_sidebar_container)\n\n  $container.append('<h6>Footer Options</h6>')\n  var $footer_fixed_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('layout-footer-fixed'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('layout-footer-fixed')\n    } else {\n      $('body').removeClass('layout-footer-fixed')\n    }\n  })\n  var $footer_fixed_container = $('<div />', { class: 'mb-4' }).append($footer_fixed_checkbox).append('<span>Fixed</span>')\n  $container.append($footer_fixed_container)\n\n  $container.append('<h6>Small Text Options</h6>')\n\n  var $text_sm_body_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('body').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('body').addClass('text-sm')\n    } else {\n      $('body').removeClass('text-sm')\n    }\n  })\n  var $text_sm_body_container = $('<div />', { class: 'mb-1' }).append($text_sm_body_checkbox).append('<span>Body</span>')\n  $container.append($text_sm_body_container)\n\n  var $text_sm_header_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-header').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('text-sm')\n    } else {\n      $('.main-header').removeClass('text-sm')\n    }\n  })\n  var $text_sm_header_container = $('<div />', { class: 'mb-1' }).append($text_sm_header_checkbox).append('<span>Navbar</span>')\n  $container.append($text_sm_header_container)\n\n  var $text_sm_brand_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.brand-link').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.brand-link').addClass('text-sm')\n    } else {\n      $('.brand-link').removeClass('text-sm')\n    }\n  })\n  var $text_sm_brand_container = $('<div />', { class: 'mb-1' }).append($text_sm_brand_checkbox).append('<span>Brand</span>')\n  $container.append($text_sm_brand_container)\n\n  var $text_sm_sidebar_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.nav-sidebar').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.nav-sidebar').addClass('text-sm')\n    } else {\n      $('.nav-sidebar').removeClass('text-sm')\n    }\n  })\n  var $text_sm_sidebar_container = $('<div />', { class: 'mb-1' }).append($text_sm_sidebar_checkbox).append('<span>Sidebar Nav</span>')\n  $container.append($text_sm_sidebar_container)\n\n  var $text_sm_footer_checkbox = $('<input />', {\n    type: 'checkbox',\n    value: 1,\n    checked: $('.main-footer').hasClass('text-sm'),\n    class: 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-footer').addClass('text-sm')\n    } else {\n      $('.main-footer').removeClass('text-sm')\n    }\n  })\n  var $text_sm_footer_container = $('<div />', { class: 'mb-4' }).append($text_sm_footer_checkbox).append('<span>Footer</span>')\n  $container.append($text_sm_footer_container)\n\n  // Color Arrays\n\n  var navbar_dark_skins = [\n    'navbar-primary',\n    'navbar-secondary',\n    'navbar-info',\n    'navbar-success',\n    'navbar-danger',\n    'navbar-indigo',\n    'navbar-purple',\n    'navbar-pink',\n    'navbar-navy',\n    'navbar-lightblue',\n    'navbar-teal',\n    'navbar-cyan',\n    'navbar-dark',\n    'navbar-gray-dark',\n    'navbar-gray'\n  ]\n\n  var navbar_light_skins = [\n    'navbar-light',\n    'navbar-warning',\n    'navbar-white',\n    'navbar-orange'\n  ]\n\n  var sidebar_colors = [\n    'bg-primary',\n    'bg-warning',\n    'bg-info',\n    'bg-danger',\n    'bg-success',\n    'bg-indigo',\n    'bg-lightblue',\n    'bg-navy',\n    'bg-purple',\n    'bg-fuchsia',\n    'bg-pink',\n    'bg-maroon',\n    'bg-orange',\n    'bg-lime',\n    'bg-teal',\n    'bg-olive'\n  ]\n\n  var accent_colors = [\n    'accent-primary',\n    'accent-warning',\n    'accent-info',\n    'accent-danger',\n    'accent-success',\n    'accent-indigo',\n    'accent-lightblue',\n    'accent-navy',\n    'accent-purple',\n    'accent-fuchsia',\n    'accent-pink',\n    'accent-maroon',\n    'accent-orange',\n    'accent-lime',\n    'accent-teal',\n    'accent-olive'\n  ]\n\n  var sidebar_skins = [\n    'sidebar-dark-primary',\n    'sidebar-dark-warning',\n    'sidebar-dark-info',\n    'sidebar-dark-danger',\n    'sidebar-dark-success',\n    'sidebar-dark-indigo',\n    'sidebar-dark-lightblue',\n    'sidebar-dark-navy',\n    'sidebar-dark-purple',\n    'sidebar-dark-fuchsia',\n    'sidebar-dark-pink',\n    'sidebar-dark-maroon',\n    'sidebar-dark-orange',\n    'sidebar-dark-lime',\n    'sidebar-dark-teal',\n    'sidebar-dark-olive',\n    'sidebar-light-primary',\n    'sidebar-light-warning',\n    'sidebar-light-info',\n    'sidebar-light-danger',\n    'sidebar-light-success',\n    'sidebar-light-indigo',\n    'sidebar-light-lightblue',\n    'sidebar-light-navy',\n    'sidebar-light-purple',\n    'sidebar-light-fuchsia',\n    'sidebar-light-pink',\n    'sidebar-light-maroon',\n    'sidebar-light-orange',\n    'sidebar-light-lime',\n    'sidebar-light-teal',\n    'sidebar-light-olive'\n  ]\n\n  // Navbar Variants\n\n  $container.append('<h6>Navbar Variants</h6>')\n\n  var $navbar_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  var navbar_all_colors = navbar_dark_skins.concat(navbar_light_skins)\n  var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function () {\n    var color = $(this).data('color')\n    var $main_header = $('.main-header')\n    $main_header.removeClass('navbar-dark').removeClass('navbar-light')\n    navbar_all_colors.forEach(function (color) {\n      $main_header.removeClass(color)\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0 ')\n\n    if (navbar_dark_skins.indexOf(color) > -1) {\n      $main_header.addClass('navbar-dark')\n      $(this).parent().addClass(color).addClass('text-light')\n    } else {\n      $main_header.addClass('navbar-light')\n      $(this).parent().addClass(color)\n    }\n\n    $main_header.addClass(color)\n  })\n\n  var active_navbar_color = null\n  $('.main-header')[0].classList.forEach(function (className) {\n    if (navbar_all_colors.indexOf(className) > -1 && active_navbar_color === null) {\n      active_navbar_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  $navbar_variants_colors.find('option.' + active_navbar_color).prop('selected', true)\n  $navbar_variants_colors.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_navbar_color)\n\n  $navbar_variants.append($navbar_variants_colors)\n\n  $container.append($navbar_variants)\n\n  // Sidebar Colors\n\n  $container.append('<h6>Accent Color Variants</h6>')\n  var $accent_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($accent_variants)\n  $container.append(createSkinBlock(accent_colors, function () {\n    var color = $(this).data('color')\n    var accent_class = color\n    var $body = $('body')\n    accent_colors.forEach(function (skin) {\n      $body.removeClass(skin)\n    })\n\n    $body.addClass(accent_class)\n  }, true))\n\n  var active_accent_color = null\n  $('body')[0].classList.forEach(function (className) {\n    if (accent_colors.indexOf(className) > -1 && active_accent_color === null) {\n      active_accent_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  // $accent_variants.find('option.' + active_accent_color).prop('selected', true)\n  // $accent_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_accent_color)\n\n  $container.append('<h6>Dark Sidebar Variants</h6>')\n  var $sidebar_variants_dark = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($sidebar_variants_dark)\n  var $sidebar_dark_variants = createSkinBlock(sidebar_colors, function () {\n    var color = $(this).data('color')\n    var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '')\n    var $sidebar = $('.main-sidebar')\n    sidebar_skins.forEach(function (skin) {\n      $sidebar.removeClass(skin)\n      $sidebar_light_variants.removeClass(skin.replace('sidebar-dark-', 'bg-')).removeClass('text-light')\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)\n\n    $sidebar_light_variants.find('option').prop('selected', false)\n    $sidebar.addClass(sidebar_class)\n    $('.sidebar').removeClass('os-theme-dark').addClass('os-theme-light')\n  }, true)\n  $container.append($sidebar_dark_variants)\n\n  var active_sidebar_dark_color = null\n  $('.main-sidebar')[0].classList.forEach(function (className) {\n    var color = className.replace('sidebar-dark-', 'bg-')\n    if (sidebar_colors.indexOf(color) > -1 && active_sidebar_dark_color === null) {\n      active_sidebar_dark_color = color\n    }\n  })\n\n  $sidebar_dark_variants.find('option.' + active_sidebar_dark_color).prop('selected', true)\n  $sidebar_dark_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_dark_color)\n\n  $container.append('<h6>Light Sidebar Variants</h6>')\n  var $sidebar_variants_light = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($sidebar_variants_light)\n  var $sidebar_light_variants = createSkinBlock(sidebar_colors, function () {\n    var color = $(this).data('color')\n    var sidebar_class = 'sidebar-light-' + color.replace('bg-', '')\n    var $sidebar = $('.main-sidebar')\n    sidebar_skins.forEach(function (skin) {\n      $sidebar.removeClass(skin)\n      $sidebar_dark_variants.removeClass(skin.replace('sidebar-light-', 'bg-')).removeClass('text-light')\n    })\n\n    $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)\n\n    $sidebar_dark_variants.find('option').prop('selected', false)\n    $sidebar.addClass(sidebar_class)\n    $('.sidebar').removeClass('os-theme-light').addClass('os-theme-dark')\n  }, true)\n  $container.append($sidebar_light_variants)\n\n  var active_sidebar_light_color = null\n  $('.main-sidebar')[0].classList.forEach(function (className) {\n    var color = className.replace('sidebar-light-', 'bg-')\n    if (sidebar_colors.indexOf(color) > -1 && active_sidebar_light_color === null) {\n      active_sidebar_light_color = color\n    }\n  })\n\n  if (active_sidebar_light_color !== null) {\n    $sidebar_light_variants.find('option.' + active_sidebar_light_color).prop('selected', true)\n    $sidebar_light_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_light_color)\n  }\n\n  var logo_skins = navbar_all_colors\n  $container.append('<h6>Brand Logo Variants</h6>')\n  var $logo_variants = $('<div />', {\n    class: 'd-flex'\n  })\n  $container.append($logo_variants)\n  var $clear_btn = $('<a />', {\n    href: '#'\n  }).text('clear').on('click', function (e) {\n    e.preventDefault()\n    var $logo = $('.brand-link')\n    logo_skins.forEach(function (skin) {\n      $logo.removeClass(skin)\n    })\n  })\n\n  var $brand_variants = createSkinBlock(logo_skins, function () {\n    var color = $(this).data('color')\n    var $logo = $('.brand-link')\n\n    if (color === 'navbar-light' || color === 'navbar-white') {\n      $logo.addClass('text-black')\n    } else {\n      $logo.removeClass('text-black')\n    }\n\n    logo_skins.forEach(function (skin) {\n      $logo.removeClass(skin)\n    })\n\n    if (color) {\n      $(this).parent().removeClass().addClass('custom-select mb-3 border-0').addClass(color).addClass(color !== 'navbar-light' && color !== 'navbar-white' ? 'text-light' : '')\n    } else {\n      $(this).parent().removeClass().addClass('custom-select mb-3 border-0')\n    }\n\n    $logo.addClass(color)\n  }, true).append($clear_btn)\n  $container.append($brand_variants)\n\n  var active_brand_color = null\n  $('.brand-link')[0].classList.forEach(function (className) {\n    if (logo_skins.indexOf(className) > -1 && active_brand_color === null) {\n      active_brand_color = className.replace('navbar-', 'bg-')\n    }\n  })\n\n  if (active_brand_color) {\n    $brand_variants.find('option.' + active_brand_color).prop('selected', true)\n    $brand_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_brand_color)\n  }\n})(jQuery)\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/js/pages/dashboard.js",
    "content": "/*\n * Author: Abdullah A Almsaeed\n * Date: 4 Jan 2014\n * Description:\n *      This is a demo file used only for the main dashboard (index.html)\n **/\n\n/* global moment:false, Chart:false, Sparkline:false */\n\n$(function () {\n  'use strict'\n\n  // Make the dashboard widgets sortable Using jquery UI\n  $('.connectedSortable').sortable({\n    placeholder: 'sort-highlight',\n    connectWith: '.connectedSortable',\n    handle: '.card-header, .nav-tabs',\n    forcePlaceholderSize: true,\n    zIndex: 999999\n  })\n  $('.connectedSortable .card-header').css('cursor', 'move')\n\n  // jQuery UI sortable for the todo list\n  $('.todo-list').sortable({\n    placeholder: 'sort-highlight',\n    handle: '.handle',\n    forcePlaceholderSize: true,\n    zIndex: 999999\n  })\n\n  // bootstrap WYSIHTML5 - text editor\n  $('.textarea').summernote()\n\n  $('.daterange').daterangepicker({\n    ranges: {\n      Today: [moment(), moment()],\n      Yesterday: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\n      'Last 7 Days': [moment().subtract(6, 'days'), moment()],\n      'Last 30 Days': [moment().subtract(29, 'days'), moment()],\n      'This Month': [moment().startOf('month'), moment().endOf('month')],\n      'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\n    },\n    startDate: moment().subtract(29, 'days'),\n    endDate: moment()\n  }, function (start, end) {\n    // eslint-disable-next-line no-alert\n    alert('You chose: ' + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'))\n  })\n\n  /* jQueryKnob */\n  $('.knob').knob()\n\n  // jvectormap data\n  var visitorsData = {\n    US: 398, // USA\n    SA: 400, // Saudi Arabia\n    CA: 1000, // Canada\n    DE: 500, // Germany\n    FR: 760, // France\n    CN: 300, // China\n    AU: 700, // Australia\n    BR: 600, // Brazil\n    IN: 800, // India\n    GB: 320, // Great Britain\n    RU: 3000 // Russia\n  }\n  // World map by jvectormap\n  $('#world-map').vectorMap({\n    map: 'usa_en',\n    backgroundColor: 'transparent',\n    regionStyle: {\n      initial: {\n        fill: 'rgba(255, 255, 255, 0.7)',\n        'fill-opacity': 1,\n        stroke: 'rgba(0,0,0,.2)',\n        'stroke-width': 1,\n        'stroke-opacity': 1\n      }\n    },\n    series: {\n      regions: [{\n        values: visitorsData,\n        scale: ['#ffffff', '#0154ad'],\n        normalizeFunction: 'polynomial'\n      }]\n    },\n    onRegionLabelShow: function (e, el, code) {\n      if (typeof visitorsData[code] !== 'undefined') {\n        el.html(el.html() + ': ' + visitorsData[code] + ' new visitors')\n      }\n    }\n  })\n\n  // Sparkline charts\n  var sparkline1 = new Sparkline($('#sparkline-1')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n  var sparkline2 = new Sparkline($('#sparkline-2')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n  var sparkline3 = new Sparkline($('#sparkline-3')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' })\n\n  sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021])\n  sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921])\n  sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21])\n\n  // The Calender\n  $('#calendar').datetimepicker({\n    format: 'L',\n    inline: true\n  })\n\n  // SLIMSCROLL FOR CHAT WIDGET\n  $('#chat-box').overlayScrollbars({\n    height: '250px'\n  })\n\n  /* Chart.js Charts */\n  // Sales chart\n  var salesChartCanvas = document.getElementById('revenue-chart-canvas').getContext('2d')\n  // $('#revenue-chart').get(0).getContext('2d');\n\n  var salesChartData = {\n    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        backgroundColor: 'rgba(60,141,188,0.9)',\n        borderColor: 'rgba(60,141,188,0.8)',\n        pointRadius: false,\n        pointColor: '#3b8bba',\n        pointStrokeColor: 'rgba(60,141,188,1)',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data: [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label: 'Electronics',\n        backgroundColor: 'rgba(210, 214, 222, 1)',\n        borderColor: 'rgba(210, 214, 222, 1)',\n        pointRadius: false,\n        pointColor: 'rgba(210, 214, 222, 1)',\n        pointStrokeColor: '#c1c7d1',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data: [65, 59, 80, 81, 56, 55, 40]\n      }\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines: {\n          display: false\n        }\n      }],\n      yAxes: [{\n        gridLines: {\n          display: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart(salesChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'line',\n    data: salesChartData,\n    options: salesChartOptions\n  })\n\n  // Donut Chart\n  var pieChartCanvas = $('#sales-chart-canvas').get(0).getContext('2d')\n  var pieData = {\n    labels: [\n      'Instore Sales',\n      'Download Sales',\n      'Mail-Order Sales'\n    ],\n    datasets: [\n      {\n        data: [30, 12, 20],\n        backgroundColor: ['#f56954', '#00a65a', '#f39c12']\n      }\n    ]\n  }\n  var pieOptions = {\n    legend: {\n      display: false\n    },\n    maintainAspectRatio: false,\n    responsive: true\n  }\n  // Create pie or douhnut chart\n  // You can switch between pie and douhnut using the method below.\n  // eslint-disable-next-line no-unused-vars\n  var pieChart = new Chart(pieChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'doughnut',\n    data: pieData,\n    options: pieOptions\n  })\n\n  // Sales graph chart\n  var salesGraphChartCanvas = $('#line-chart').get(0).getContext('2d')\n  // $('#revenue-chart').get(0).getContext('2d');\n\n  var salesGraphChartData = {\n    labels: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4', '2013 Q1', '2013 Q2'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        fill: false,\n        borderWidth: 2,\n        lineTension: 0,\n        spanGaps: true,\n        borderColor: '#efefef',\n        pointRadius: 3,\n        pointHoverRadius: 7,\n        pointColor: '#efefef',\n        pointBackgroundColor: '#efefef',\n        data: [2666, 2778, 4912, 3767, 6810, 5670, 4820, 15073, 10687, 8432]\n      }\n    ]\n  }\n\n  var salesGraphChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        ticks: {\n          fontColor: '#efefef'\n        },\n        gridLines: {\n          display: false,\n          color: '#efefef',\n          drawBorder: false\n        }\n      }],\n      yAxes: [{\n        ticks: {\n          stepSize: 5000,\n          fontColor: '#efefef'\n        },\n        gridLines: {\n          display: true,\n          color: '#efefef',\n          drawBorder: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesGraphChart = new Chart(salesGraphChartCanvas, { // lgtm[js/unused-local-variable]\n    type: 'line',\n    data: salesGraphChartData,\n    options: salesGraphChartOptions\n  })\n})\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/js/pages/dashboard2.js",
    "content": "/* global Chart:false */\n\n$(function () {\n  'use strict'\n\n  /* ChartJS\n   * -------\n   * Here we will create a few charts using ChartJS\n   */\n\n  //-----------------------\n  // - MONTHLY SALES CHART -\n  //-----------------------\n\n  // Get context with jQuery - using jQuery's .get() method.\n  var salesChartCanvas = $('#salesChart').get(0).getContext('2d')\n\n  var salesChartData = {\n    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label: 'Digital Goods',\n        backgroundColor: 'rgba(60,141,188,0.9)',\n        borderColor: 'rgba(60,141,188,0.8)',\n        pointRadius: false,\n        pointColor: '#3b8bba',\n        pointStrokeColor: 'rgba(60,141,188,1)',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data: [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label: 'Electronics',\n        backgroundColor: 'rgba(210, 214, 222, 1)',\n        borderColor: 'rgba(210, 214, 222, 1)',\n        pointRadius: false,\n        pointColor: 'rgba(210, 214, 222, 1)',\n        pointStrokeColor: '#c1c7d1',\n        pointHighlightFill: '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data: [65, 59, 80, 81, 56, 55, 40]\n      }\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio: false,\n    responsive: true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines: {\n          display: false\n        }\n      }],\n      yAxes: [{\n        gridLines: {\n          display: false\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart(salesChartCanvas, {\n    type: 'line',\n    data: salesChartData,\n    options: salesChartOptions\n  }\n  )\n\n  //---------------------------\n  // - END MONTHLY SALES CHART -\n  //---------------------------\n\n  //-------------\n  // - PIE CHART -\n  //-------------\n  // Get context with jQuery - using jQuery's .get() method.\n  var pieChartCanvas = $('#pieChart').get(0).getContext('2d')\n  var pieData = {\n    labels: [\n      'Chrome',\n      'IE',\n      'FireFox',\n      'Safari',\n      'Opera',\n      'Navigator'\n    ],\n    datasets: [\n      {\n        data: [700, 500, 400, 600, 300, 100],\n        backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de']\n      }\n    ]\n  }\n  var pieOptions = {\n    legend: {\n      display: false\n    }\n  }\n  // Create pie or douhnut chart\n  // You can switch between pie and douhnut using the method below.\n  // eslint-disable-next-line no-unused-vars\n  var pieChart = new Chart(pieChartCanvas, {\n    type: 'doughnut',\n    data: pieData,\n    options: pieOptions\n  })\n\n  //-----------------\n  // - END PIE CHART -\n  //-----------------\n\n  /* jVector Maps\n   * ------------\n   * Create a world map with markers\n   */\n  $('#world-map-markers').mapael({\n    map: {\n      name: 'usa_states',\n      zoom: {\n        enabled: true,\n        maxLevel: 10\n      }\n    }\n  })\n\n  // $('#world-map-markers').vectorMap({\n  //   map              : 'world_en',\n  //   normalizeFunction: 'polynomial',\n  //   hoverOpacity     : 0.7,\n  //   hoverColor       : false,\n  //   backgroundColor  : 'transparent',\n  //   regionStyle      : {\n  //     initial      : {\n  //       fill            : 'rgba(210, 214, 222, 1)',\n  //       'fill-opacity'  : 1,\n  //       stroke          : 'none',\n  //       'stroke-width'  : 0,\n  //       'stroke-opacity': 1\n  //     },\n  //     hover        : {\n  //       'fill-opacity': 0.7,\n  //       cursor        : 'pointer'\n  //     },\n  //     selected     : {\n  //       fill: 'yellow'\n  //     },\n  //     selectedHover: {}\n  //   },\n  //   markerStyle      : {\n  //     initial: {\n  //       fill  : '#00a65a',\n  //       stroke: '#111'\n  //     }\n  //   },\n  //   markers          : [\n  //     {\n  //       latLng: [41.90, 12.45],\n  //       name  : 'Vatican City'\n  //     },\n  //     {\n  //       latLng: [43.73, 7.41],\n  //       name  : 'Monaco'\n  //     },\n  //     {\n  //       latLng: [-0.52, 166.93],\n  //       name  : 'Nauru'\n  //     },\n  //     {\n  //       latLng: [-8.51, 179.21],\n  //       name  : 'Tuvalu'\n  //     },\n  //     {\n  //       latLng: [43.93, 12.46],\n  //       name  : 'San Marino'\n  //     },\n  //     {\n  //       latLng: [47.14, 9.52],\n  //       name  : 'Liechtenstein'\n  //     },\n  //     {\n  //       latLng: [7.11, 171.06],\n  //       name  : 'Marshall Islands'\n  //     },\n  //     {\n  //       latLng: [17.3, -62.73],\n  //       name  : 'Saint Kitts and Nevis'\n  //     },\n  //     {\n  //       latLng: [3.2, 73.22],\n  //       name  : 'Maldives'\n  //     },\n  //     {\n  //       latLng: [35.88, 14.5],\n  //       name  : 'Malta'\n  //     },\n  //     {\n  //       latLng: [12.05, -61.75],\n  //       name  : 'Grenada'\n  //     },\n  //     {\n  //       latLng: [13.16, -61.23],\n  //       name  : 'Saint Vincent and the Grenadines'\n  //     },\n  //     {\n  //       latLng: [13.16, -59.55],\n  //       name  : 'Barbados'\n  //     },\n  //     {\n  //       latLng: [17.11, -61.85],\n  //       name  : 'Antigua and Barbuda'\n  //     },\n  //     {\n  //       latLng: [-4.61, 55.45],\n  //       name  : 'Seychelles'\n  //     },\n  //     {\n  //       latLng: [7.35, 134.46],\n  //       name  : 'Palau'\n  //     },\n  //     {\n  //       latLng: [42.5, 1.51],\n  //       name  : 'Andorra'\n  //     },\n  //     {\n  //       latLng: [14.01, -60.98],\n  //       name  : 'Saint Lucia'\n  //     },\n  //     {\n  //       latLng: [6.91, 158.18],\n  //       name  : 'Federated States of Micronesia'\n  //     },\n  //     {\n  //       latLng: [1.3, 103.8],\n  //       name  : 'Singapore'\n  //     },\n  //     {\n  //       latLng: [1.46, 173.03],\n  //       name  : 'Kiribati'\n  //     },\n  //     {\n  //       latLng: [-21.13, -175.2],\n  //       name  : 'Tonga'\n  //     },\n  //     {\n  //       latLng: [15.3, -61.38],\n  //       name  : 'Dominica'\n  //     },\n  //     {\n  //       latLng: [-20.2, 57.5],\n  //       name  : 'Mauritius'\n  //     },\n  //     {\n  //       latLng: [26.02, 50.55],\n  //       name  : 'Bahrain'\n  //     },\n  //     {\n  //       latLng: [0.33, 6.73],\n  //       name  : 'São Tomé and Príncipe'\n  //     }\n  //   ]\n  // })\n})\n\n// lgtm [js/unused-local-variable]\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/js/pages/dashboard3.js",
    "content": "/* global Chart:false */\n\n$(function () {\n  'use strict'\n\n  var ticksStyle = {\n    fontColor: '#495057',\n    fontStyle: 'bold'\n  }\n\n  var mode = 'index'\n  var intersect = true\n\n  var $salesChart = $('#sales-chart')\n  // eslint-disable-next-line no-unused-vars\n  var salesChart = new Chart($salesChart, {\n    type: 'bar',\n    data: {\n      labels: ['JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'],\n      datasets: [\n        {\n          backgroundColor: '#007bff',\n          borderColor: '#007bff',\n          data: [1000, 2000, 3000, 2500, 2700, 2500, 3000]\n        },\n        {\n          backgroundColor: '#ced4da',\n          borderColor: '#ced4da',\n          data: [700, 1700, 2700, 2000, 1800, 1500, 2000]\n        }\n      ]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips: {\n        mode: mode,\n        intersect: intersect\n      },\n      hover: {\n        mode: mode,\n        intersect: intersect\n      },\n      legend: {\n        display: false\n      },\n      scales: {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display: true,\n            lineWidth: '4px',\n            color: 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks: $.extend({\n            beginAtZero: true,\n\n            // Include a dollar sign in the ticks\n            callback: function (value) {\n              if (value >= 1000) {\n                value /= 1000\n                value += 'k'\n              }\n\n              return '$' + value\n            }\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display: true,\n          gridLines: {\n            display: false\n          },\n          ticks: ticksStyle\n        }]\n      }\n    }\n  })\n\n  var $visitorsChart = $('#visitors-chart')\n  // eslint-disable-next-line no-unused-vars\n  var visitorsChart = new Chart($visitorsChart, {\n    data: {\n      labels: ['18th', '20th', '22nd', '24th', '26th', '28th', '30th'],\n      datasets: [{\n        type: 'line',\n        data: [100, 120, 170, 167, 180, 177, 160],\n        backgroundColor: 'transparent',\n        borderColor: '#007bff',\n        pointBorderColor: '#007bff',\n        pointBackgroundColor: '#007bff',\n        fill: false\n        // pointHoverBackgroundColor: '#007bff',\n        // pointHoverBorderColor    : '#007bff'\n      },\n      {\n        type: 'line',\n        data: [60, 80, 70, 67, 80, 77, 100],\n        backgroundColor: 'tansparent',\n        borderColor: '#ced4da',\n        pointBorderColor: '#ced4da',\n        pointBackgroundColor: '#ced4da',\n        fill: false\n        // pointHoverBackgroundColor: '#ced4da',\n        // pointHoverBorderColor    : '#ced4da'\n      }]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips: {\n        mode: mode,\n        intersect: intersect\n      },\n      hover: {\n        mode: mode,\n        intersect: intersect\n      },\n      legend: {\n        display: false\n      },\n      scales: {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display: true,\n            lineWidth: '4px',\n            color: 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks: $.extend({\n            beginAtZero: true,\n            suggestedMax: 200\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display: true,\n          gridLines: {\n            display: false\n          },\n          ticks: ticksStyle\n        }]\n      }\n    }\n  })\n})\n\n// lgtm [js/unused-local-variable]\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/bootstrap/js/bootstrap.bundle.js",
    "content": "/*!\n  * Bootstrap v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery));\n}(this, (function (exports, $) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n  var EVENT_CLOSE = \"close\" + EVENT_KEY;\n  var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_ALERT = 'alert';\n  var CLASS_NAME_FADE = 'fade';\n  var CLASS_NAME_SHOW = 'show';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Alert = /*#__PURE__*/function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n      $__default['default'](element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n      if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Alert._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Alert;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.6.0';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY$1, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = Button;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.6.0';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var DIRECTION_NEXT = 'next';\n  var DIRECTION_PREV = 'prev';\n  var DIRECTION_LEFT = 'left';\n  var DIRECTION_RIGHT = 'right';\n  var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n  var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n  var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n  var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n  var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n  var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n  var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n  var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n  var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n  var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n  var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n  var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var CLASS_NAME_CAROUSEL = 'carousel';\n  var CLASS_NAME_ACTIVE$1 = 'active';\n  var CLASS_NAME_SLIDE = 'slide';\n  var CLASS_NAME_RIGHT = 'carousel-item-right';\n  var CLASS_NAME_LEFT = 'carousel-item-left';\n  var CLASS_NAME_NEXT = 'carousel-item-next';\n  var CLASS_NAME_PREV = 'carousel-item-prev';\n  var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n  var SELECTOR_ACTIVE$1 = '.active';\n  var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n  var SELECTOR_ITEM = '.carousel-item';\n  var SELECTOR_ITEM_IMG = '.carousel-item img';\n  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n  var SELECTOR_INDICATORS = '.carousel-indicators';\n  var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n  var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Carousel = /*#__PURE__*/function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n\n      if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._updateInterval();\n\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $__default['default'](this._element).one(EVENT_SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'](this._element).off(EVENT_KEY$2);\n      $__default['default'].removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX;\n      this.touchDeltaX = 0; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(EVENT_MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === DIRECTION_NEXT;\n      var isPrevDirection = direction === DIRECTION_PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === DIRECTION_PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n      var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $__default['default'](this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n        $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n        }\n      }\n    };\n\n    _proto._updateInterval = function _updateInterval() {\n      var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n      if (elementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n        this._config.interval = elementInterval;\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval;\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === DIRECTION_NEXT) {\n        directionalClassName = CLASS_NAME_LEFT;\n        orderClassName = CLASS_NAME_NEXT;\n        eventDirectionName = DIRECTION_LEFT;\n      } else {\n        directionalClassName = CLASS_NAME_RIGHT;\n        orderClassName = CLASS_NAME_PREV;\n        eventDirectionName = DIRECTION_RIGHT;\n      }\n\n      if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      this._activeElement = nextElement;\n      var slidEvent = $__default['default'].Event(EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n        $__default['default'](nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $__default['default'](activeElement).addClass(directionalClassName);\n        $__default['default'](nextElement).addClass(directionalClassName);\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n          $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n          $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $__default['default'](_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n        $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n        this._isSliding = false;\n        $__default['default'](this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$2);\n\n        var _config = _extends({}, Default, $__default['default'](this).data());\n\n        if (typeof config === 'object') {\n          _config = _extends({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $__default['default'](this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $__default['default'](selector)[0];\n\n      if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n        return;\n      }\n\n      var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($__default['default'](target), config);\n\n      if (slideIndex) {\n        $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n    var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $__default['default'](carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.6.0';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n  var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n  var CLASS_NAME_SHOW$1 = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$3);\n\n        var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**!\n   * @fileOverview Kickass library to create and place poppers near their reference elements.\n   * @version 1.16.1\n   * @license\n   * Copyright (c) 2016 Federico Zivolo and contributors\n   *\n   * Permission is hereby granted, free of charge, to any person obtaining a copy\n   * of this software and associated documentation files (the \"Software\"), to deal\n   * in the Software without restriction, including without limitation the rights\n   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n   * copies of the Software, and to permit persons to whom the Software is\n   * furnished to do so, subject to the following conditions:\n   *\n   * The above copyright notice and this permission notice shall be included in all\n   * copies or substantial portions of the Software.\n   *\n   * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n   * SOFTWARE.\n   */\n  var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\n  var timeoutDuration = function () {\n    var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n    for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n      if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n        return 1;\n      }\n    }\n    return 0;\n  }();\n\n  function microtaskDebounce(fn) {\n    var called = false;\n    return function () {\n      if (called) {\n        return;\n      }\n      called = true;\n      window.Promise.resolve().then(function () {\n        called = false;\n        fn();\n      });\n    };\n  }\n\n  function taskDebounce(fn) {\n    var scheduled = false;\n    return function () {\n      if (!scheduled) {\n        scheduled = true;\n        setTimeout(function () {\n          scheduled = false;\n          fn();\n        }, timeoutDuration);\n      }\n    };\n  }\n\n  var supportsMicroTasks = isBrowser && window.Promise;\n\n  /**\n  * Create a debounced version of a method, that's asynchronously deferred\n  * but called in the minimum time possible.\n  *\n  * @method\n  * @memberof Popper.Utils\n  * @argument {Function} fn\n  * @returns {Function}\n  */\n  var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n  /**\n   * Check if the given variable is a function\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Any} functionToCheck - variable to check\n   * @returns {Boolean} answer to: is a function?\n   */\n  function isFunction(functionToCheck) {\n    var getType = {};\n    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n  }\n\n  /**\n   * Get CSS computed property of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Eement} element\n   * @argument {String} property\n   */\n  function getStyleComputedProperty(element, property) {\n    if (element.nodeType !== 1) {\n      return [];\n    }\n    // NOTE: 1 DOM access here\n    var window = element.ownerDocument.defaultView;\n    var css = window.getComputedStyle(element, null);\n    return property ? css[property] : css;\n  }\n\n  /**\n   * Returns the parentNode or the host of the element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} parent\n   */\n  function getParentNode(element) {\n    if (element.nodeName === 'HTML') {\n      return element;\n    }\n    return element.parentNode || element.host;\n  }\n\n  /**\n   * Returns the scrolling parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} scroll parent\n   */\n  function getScrollParent(element) {\n    // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n    if (!element) {\n      return document.body;\n    }\n\n    switch (element.nodeName) {\n      case 'HTML':\n      case 'BODY':\n        return element.ownerDocument.body;\n      case '#document':\n        return element.body;\n    }\n\n    // Firefox want us to check `-x` and `-y` variations as well\n\n    var _getStyleComputedProp = getStyleComputedProperty(element),\n        overflow = _getStyleComputedProp.overflow,\n        overflowX = _getStyleComputedProp.overflowX,\n        overflowY = _getStyleComputedProp.overflowY;\n\n    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n      return element;\n    }\n\n    return getScrollParent(getParentNode(element));\n  }\n\n  /**\n   * Returns the reference node of the reference object, or the reference object itself.\n   * @method\n   * @memberof Popper.Utils\n   * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n   * @returns {Element} parent\n   */\n  function getReferenceNode(reference) {\n    return reference && reference.referenceNode ? reference.referenceNode : reference;\n  }\n\n  var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\n  var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n  /**\n   * Determines if the browser is Internet Explorer\n   * @method\n   * @memberof Popper.Utils\n   * @param {Number} version to check\n   * @returns {Boolean} isIE\n   */\n  function isIE(version) {\n    if (version === 11) {\n      return isIE11;\n    }\n    if (version === 10) {\n      return isIE10;\n    }\n    return isIE11 || isIE10;\n  }\n\n  /**\n   * Returns the offset parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} offset parent\n   */\n  function getOffsetParent(element) {\n    if (!element) {\n      return document.documentElement;\n    }\n\n    var noOffsetParent = isIE(10) ? document.body : null;\n\n    // NOTE: 1 DOM access here\n    var offsetParent = element.offsetParent || null;\n    // Skip hidden elements which don't have an offsetParent\n    while (offsetParent === noOffsetParent && element.nextElementSibling) {\n      offsetParent = (element = element.nextElementSibling).offsetParent;\n    }\n\n    var nodeName = offsetParent && offsetParent.nodeName;\n\n    if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n      return element ? element.ownerDocument.documentElement : document.documentElement;\n    }\n\n    // .offsetParent will return the closest TH, TD or TABLE in case\n    // no offsetParent is present, I hate this job...\n    if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n      return getOffsetParent(offsetParent);\n    }\n\n    return offsetParent;\n  }\n\n  function isOffsetContainer(element) {\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY') {\n      return false;\n    }\n    return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n  }\n\n  /**\n   * Finds the root node (document, shadowDOM root) of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} node\n   * @returns {Element} root node\n   */\n  function getRoot(node) {\n    if (node.parentNode !== null) {\n      return getRoot(node.parentNode);\n    }\n\n    return node;\n  }\n\n  /**\n   * Finds the offset parent common to the two provided nodes\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element1\n   * @argument {Element} element2\n   * @returns {Element} common offset parent\n   */\n  function findCommonOffsetParent(element1, element2) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n      return document.documentElement;\n    }\n\n    // Here we make sure to give as \"start\" the element that comes first in the DOM\n    var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n    var start = order ? element1 : element2;\n    var end = order ? element2 : element1;\n\n    // Get common ancestor container\n    var range = document.createRange();\n    range.setStart(start, 0);\n    range.setEnd(end, 0);\n    var commonAncestorContainer = range.commonAncestorContainer;\n\n    // Both nodes are inside #document\n\n    if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n      if (isOffsetContainer(commonAncestorContainer)) {\n        return commonAncestorContainer;\n      }\n\n      return getOffsetParent(commonAncestorContainer);\n    }\n\n    // one of the nodes is inside shadowDOM, find which one\n    var element1root = getRoot(element1);\n    if (element1root.host) {\n      return findCommonOffsetParent(element1root.host, element2);\n    } else {\n      return findCommonOffsetParent(element1, getRoot(element2).host);\n    }\n  }\n\n  /**\n   * Gets the scroll value of the given element in the given side (top and left)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {String} side `top` or `left`\n   * @returns {number} amount of scrolled pixels\n   */\n  function getScroll(element) {\n    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n    var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      var html = element.ownerDocument.documentElement;\n      var scrollingElement = element.ownerDocument.scrollingElement || html;\n      return scrollingElement[upperSide];\n    }\n\n    return element[upperSide];\n  }\n\n  /*\n   * Sum or subtract the element scroll values (left and top) from a given rect object\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} rect - Rect object you want to change\n   * @param {HTMLElement} element - The element from the function reads the scroll values\n   * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n   * @return {Object} rect - The modifier rect object\n   */\n  function includeScroll(rect, element) {\n    var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var scrollTop = getScroll(element, 'top');\n    var scrollLeft = getScroll(element, 'left');\n    var modifier = subtract ? -1 : 1;\n    rect.top += scrollTop * modifier;\n    rect.bottom += scrollTop * modifier;\n    rect.left += scrollLeft * modifier;\n    rect.right += scrollLeft * modifier;\n    return rect;\n  }\n\n  /*\n   * Helper to detect borders of a given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {CSSStyleDeclaration} styles\n   * Result of `getStyleComputedProperty` on the given element\n   * @param {String} axis - `x` or `y`\n   * @return {number} borders - The borders size of the given axis\n   */\n\n  function getBordersSize(styles, axis) {\n    var sideA = axis === 'x' ? 'Left' : 'Top';\n    var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n    return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n  }\n\n  function getSize(axis, body, html, computedStyle) {\n    return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n  }\n\n  function getWindowSizes(document) {\n    var body = document.body;\n    var html = document.documentElement;\n    var computedStyle = isIE(10) && getComputedStyle(html);\n\n    return {\n      height: getSize('Height', body, html, computedStyle),\n      width: getSize('Width', body, html, computedStyle)\n    };\n  }\n\n  var classCallCheck = function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  };\n\n  var createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n\n\n\n\n  var defineProperty = function (obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  };\n\n  var _extends$1 = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  /**\n   * Given element offsets, generate an output similar to getBoundingClientRect\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} offsets\n   * @returns {Object} ClientRect like output\n   */\n  function getClientRect(offsets) {\n    return _extends$1({}, offsets, {\n      right: offsets.left + offsets.width,\n      bottom: offsets.top + offsets.height\n    });\n  }\n\n  /**\n   * Get bounding client rect of given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} element\n   * @return {Object} client rect\n   */\n  function getBoundingClientRect(element) {\n    var rect = {};\n\n    // IE10 10 FIX: Please, don't ask, the element isn't\n    // considered in DOM in some circumstances...\n    // This isn't reproducible in IE10 compatibility mode of IE11\n    try {\n      if (isIE(10)) {\n        rect = element.getBoundingClientRect();\n        var scrollTop = getScroll(element, 'top');\n        var scrollLeft = getScroll(element, 'left');\n        rect.top += scrollTop;\n        rect.left += scrollLeft;\n        rect.bottom += scrollTop;\n        rect.right += scrollLeft;\n      } else {\n        rect = element.getBoundingClientRect();\n      }\n    } catch (e) {}\n\n    var result = {\n      left: rect.left,\n      top: rect.top,\n      width: rect.right - rect.left,\n      height: rect.bottom - rect.top\n    };\n\n    // subtract scrollbar size from sizes\n    var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n    var width = sizes.width || element.clientWidth || result.width;\n    var height = sizes.height || element.clientHeight || result.height;\n\n    var horizScrollbar = element.offsetWidth - width;\n    var vertScrollbar = element.offsetHeight - height;\n\n    // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n    // we make this check conditional for performance reasons\n    if (horizScrollbar || vertScrollbar) {\n      var styles = getStyleComputedProperty(element);\n      horizScrollbar -= getBordersSize(styles, 'x');\n      vertScrollbar -= getBordersSize(styles, 'y');\n\n      result.width -= horizScrollbar;\n      result.height -= vertScrollbar;\n    }\n\n    return getClientRect(result);\n  }\n\n  function getOffsetRectRelativeToArbitraryNode(children, parent) {\n    var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var isIE10 = isIE(10);\n    var isHTML = parent.nodeName === 'HTML';\n    var childrenRect = getBoundingClientRect(children);\n    var parentRect = getBoundingClientRect(parent);\n    var scrollParent = getScrollParent(children);\n\n    var styles = getStyleComputedProperty(parent);\n    var borderTopWidth = parseFloat(styles.borderTopWidth);\n    var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n    // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n    if (fixedPosition && isHTML) {\n      parentRect.top = Math.max(parentRect.top, 0);\n      parentRect.left = Math.max(parentRect.left, 0);\n    }\n    var offsets = getClientRect({\n      top: childrenRect.top - parentRect.top - borderTopWidth,\n      left: childrenRect.left - parentRect.left - borderLeftWidth,\n      width: childrenRect.width,\n      height: childrenRect.height\n    });\n    offsets.marginTop = 0;\n    offsets.marginLeft = 0;\n\n    // Subtract margins of documentElement in case it's being used as parent\n    // we do this only on HTML because it's the only element that behaves\n    // differently when margins are applied to it. The margins are included in\n    // the box of the documentElement, in the other cases not.\n    if (!isIE10 && isHTML) {\n      var marginTop = parseFloat(styles.marginTop);\n      var marginLeft = parseFloat(styles.marginLeft);\n\n      offsets.top -= borderTopWidth - marginTop;\n      offsets.bottom -= borderTopWidth - marginTop;\n      offsets.left -= borderLeftWidth - marginLeft;\n      offsets.right -= borderLeftWidth - marginLeft;\n\n      // Attach marginTop and marginLeft because in some circumstances we may need them\n      offsets.marginTop = marginTop;\n      offsets.marginLeft = marginLeft;\n    }\n\n    if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n      offsets = includeScroll(offsets, parent);\n    }\n\n    return offsets;\n  }\n\n  function getViewportOffsetRectRelativeToArtbitraryNode(element) {\n    var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var html = element.ownerDocument.documentElement;\n    var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n    var width = Math.max(html.clientWidth, window.innerWidth || 0);\n    var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n    var scrollTop = !excludeScroll ? getScroll(html) : 0;\n    var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n    var offset = {\n      top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n      left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n      width: width,\n      height: height\n    };\n\n    return getClientRect(offset);\n  }\n\n  /**\n   * Check if the given element is fixed or is inside a fixed parent\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {Element} customContainer\n   * @returns {Boolean} answer to \"isFixed?\"\n   */\n  function isFixed(element) {\n    var nodeName = element.nodeName;\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      return false;\n    }\n    if (getStyleComputedProperty(element, 'position') === 'fixed') {\n      return true;\n    }\n    var parentNode = getParentNode(element);\n    if (!parentNode) {\n      return false;\n    }\n    return isFixed(parentNode);\n  }\n\n  /**\n   * Finds the first parent of an element that has a transformed property defined\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} first transformed parent or documentElement\n   */\n\n  function getFixedPositionOffsetParent(element) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element || !element.parentElement || isIE()) {\n      return document.documentElement;\n    }\n    var el = element.parentElement;\n    while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n      el = el.parentElement;\n    }\n    return el || document.documentElement;\n  }\n\n  /**\n   * Computed the boundaries limits and return them\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} popper\n   * @param {HTMLElement} reference\n   * @param {number} padding\n   * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n   * @param {Boolean} fixedPosition - Is in fixed position mode\n   * @returns {Object} Coordinates of the boundaries\n   */\n  function getBoundaries(popper, reference, padding, boundariesElement) {\n    var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n    // NOTE: 1 DOM access here\n\n    var boundaries = { top: 0, left: 0 };\n    var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n    // Handle viewport case\n    if (boundariesElement === 'viewport') {\n      boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n    } else {\n      // Handle other cases based on DOM element used as boundaries\n      var boundariesNode = void 0;\n      if (boundariesElement === 'scrollParent') {\n        boundariesNode = getScrollParent(getParentNode(reference));\n        if (boundariesNode.nodeName === 'BODY') {\n          boundariesNode = popper.ownerDocument.documentElement;\n        }\n      } else if (boundariesElement === 'window') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      } else {\n        boundariesNode = boundariesElement;\n      }\n\n      var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n      // In case of HTML, we need a different computation\n      if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n        var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n            height = _getWindowSizes.height,\n            width = _getWindowSizes.width;\n\n        boundaries.top += offsets.top - offsets.marginTop;\n        boundaries.bottom = height + offsets.top;\n        boundaries.left += offsets.left - offsets.marginLeft;\n        boundaries.right = width + offsets.left;\n      } else {\n        // for all the other DOM elements, this one is good\n        boundaries = offsets;\n      }\n    }\n\n    // Add paddings\n    padding = padding || 0;\n    var isPaddingNumber = typeof padding === 'number';\n    boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n    boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n    boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n    boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n    return boundaries;\n  }\n\n  function getArea(_ref) {\n    var width = _ref.width,\n        height = _ref.height;\n\n    return width * height;\n  }\n\n  /**\n   * Utility used to transform the `auto` placement to the placement with more\n   * available space.\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n    var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n    if (placement.indexOf('auto') === -1) {\n      return placement;\n    }\n\n    var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n    var rects = {\n      top: {\n        width: boundaries.width,\n        height: refRect.top - boundaries.top\n      },\n      right: {\n        width: boundaries.right - refRect.right,\n        height: boundaries.height\n      },\n      bottom: {\n        width: boundaries.width,\n        height: boundaries.bottom - refRect.bottom\n      },\n      left: {\n        width: refRect.left - boundaries.left,\n        height: boundaries.height\n      }\n    };\n\n    var sortedAreas = Object.keys(rects).map(function (key) {\n      return _extends$1({\n        key: key\n      }, rects[key], {\n        area: getArea(rects[key])\n      });\n    }).sort(function (a, b) {\n      return b.area - a.area;\n    });\n\n    var filteredAreas = sortedAreas.filter(function (_ref2) {\n      var width = _ref2.width,\n          height = _ref2.height;\n      return width >= popper.clientWidth && height >= popper.clientHeight;\n    });\n\n    var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n    var variation = placement.split('-')[1];\n\n    return computedPlacement + (variation ? '-' + variation : '');\n  }\n\n  /**\n   * Get offsets to the reference element\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} state\n   * @param {Element} popper - the popper element\n   * @param {Element} reference - the reference element (the popper will be relative to this)\n   * @param {Element} fixedPosition - is in fixed position mode\n   * @returns {Object} An object containing the offsets which will be applied to the popper\n   */\n  function getReferenceOffsets(state, popper, reference) {\n    var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n    return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n  }\n\n  /**\n   * Get the outer sizes of the given element (offset size + margins)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Object} object containing width and height properties\n   */\n  function getOuterSizes(element) {\n    var window = element.ownerDocument.defaultView;\n    var styles = window.getComputedStyle(element);\n    var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n    var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n    var result = {\n      width: element.offsetWidth + y,\n      height: element.offsetHeight + x\n    };\n    return result;\n  }\n\n  /**\n   * Get the opposite placement of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement\n   * @returns {String} flipped placement\n   */\n  function getOppositePlacement(placement) {\n    var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n    return placement.replace(/left|right|bottom|top/g, function (matched) {\n      return hash[matched];\n    });\n  }\n\n  /**\n   * Get offsets to the popper\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} position - CSS position the Popper will get applied\n   * @param {HTMLElement} popper - the popper element\n   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n   * @param {String} placement - one of the valid placement options\n   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n   */\n  function getPopperOffsets(popper, referenceOffsets, placement) {\n    placement = placement.split('-')[0];\n\n    // Get popper node sizes\n    var popperRect = getOuterSizes(popper);\n\n    // Add position, width and height to our offsets object\n    var popperOffsets = {\n      width: popperRect.width,\n      height: popperRect.height\n    };\n\n    // depending by the popper placement we have to compute its offsets slightly differently\n    var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n    var mainSide = isHoriz ? 'top' : 'left';\n    var secondarySide = isHoriz ? 'left' : 'top';\n    var measurement = isHoriz ? 'height' : 'width';\n    var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n    popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n    if (placement === secondarySide) {\n      popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n    } else {\n      popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n    }\n\n    return popperOffsets;\n  }\n\n  /**\n   * Mimics the `find` method of Array\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function find(arr, check) {\n    // use native find if supported\n    if (Array.prototype.find) {\n      return arr.find(check);\n    }\n\n    // use `filter` to obtain the same behavior of `find`\n    return arr.filter(check)[0];\n  }\n\n  /**\n   * Return the index of the matching object\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function findIndex(arr, prop, value) {\n    // use native findIndex if supported\n    if (Array.prototype.findIndex) {\n      return arr.findIndex(function (cur) {\n        return cur[prop] === value;\n      });\n    }\n\n    // use `find` + `indexOf` if `findIndex` isn't supported\n    var match = find(arr, function (obj) {\n      return obj[prop] === value;\n    });\n    return arr.indexOf(match);\n  }\n\n  /**\n   * Loop trough the list of modifiers and run them in order,\n   * each of them will then edit the data object.\n   * @method\n   * @memberof Popper.Utils\n   * @param {dataObject} data\n   * @param {Array} modifiers\n   * @param {String} ends - Optional modifier name used as stopper\n   * @returns {dataObject}\n   */\n  function runModifiers(modifiers, data, ends) {\n    var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n    modifiersToRun.forEach(function (modifier) {\n      if (modifier['function']) {\n        // eslint-disable-line dot-notation\n        console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n      }\n      var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n      if (modifier.enabled && isFunction(fn)) {\n        // Add properties to offsets to make them a complete clientRect object\n        // we do this before each modifier to make sure the previous one doesn't\n        // mess with these values\n        data.offsets.popper = getClientRect(data.offsets.popper);\n        data.offsets.reference = getClientRect(data.offsets.reference);\n\n        data = fn(data, modifier);\n      }\n    });\n\n    return data;\n  }\n\n  /**\n   * Updates the position of the popper, computing the new offsets and applying\n   * the new style.<br />\n   * Prefer `scheduleUpdate` over `update` because of performance reasons.\n   * @method\n   * @memberof Popper\n   */\n  function update() {\n    // if popper is destroyed, don't perform any further update\n    if (this.state.isDestroyed) {\n      return;\n    }\n\n    var data = {\n      instance: this,\n      styles: {},\n      arrowStyles: {},\n      attributes: {},\n      flipped: false,\n      offsets: {}\n    };\n\n    // compute reference element offsets\n    data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n    // store the computed placement inside `originalPlacement`\n    data.originalPlacement = data.placement;\n\n    data.positionFixed = this.options.positionFixed;\n\n    // compute the popper offsets\n    data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n    data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n    // run the modifiers\n    data = runModifiers(this.modifiers, data);\n\n    // the first `update` will call `onCreate` callback\n    // the other ones will call `onUpdate` callback\n    if (!this.state.isCreated) {\n      this.state.isCreated = true;\n      this.options.onCreate(data);\n    } else {\n      this.options.onUpdate(data);\n    }\n  }\n\n  /**\n   * Helper used to know if the given modifier is enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @returns {Boolean}\n   */\n  function isModifierEnabled(modifiers, modifierName) {\n    return modifiers.some(function (_ref) {\n      var name = _ref.name,\n          enabled = _ref.enabled;\n      return enabled && name === modifierName;\n    });\n  }\n\n  /**\n   * Get the prefixed supported property name\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} property (camelCase)\n   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n   */\n  function getSupportedPropertyName(property) {\n    var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n    var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n    for (var i = 0; i < prefixes.length; i++) {\n      var prefix = prefixes[i];\n      var toCheck = prefix ? '' + prefix + upperProp : property;\n      if (typeof document.body.style[toCheck] !== 'undefined') {\n        return toCheck;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * Destroys the popper.\n   * @method\n   * @memberof Popper\n   */\n  function destroy() {\n    this.state.isDestroyed = true;\n\n    // touch DOM only if `applyStyle` modifier is enabled\n    if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n      this.popper.removeAttribute('x-placement');\n      this.popper.style.position = '';\n      this.popper.style.top = '';\n      this.popper.style.left = '';\n      this.popper.style.right = '';\n      this.popper.style.bottom = '';\n      this.popper.style.willChange = '';\n      this.popper.style[getSupportedPropertyName('transform')] = '';\n    }\n\n    this.disableEventListeners();\n\n    // remove the popper if user explicitly asked for the deletion on destroy\n    // do not use `remove` because IE11 doesn't support it\n    if (this.options.removeOnDestroy) {\n      this.popper.parentNode.removeChild(this.popper);\n    }\n    return this;\n  }\n\n  /**\n   * Get the window associated with the element\n   * @argument {Element} element\n   * @returns {Window}\n   */\n  function getWindow(element) {\n    var ownerDocument = element.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView : window;\n  }\n\n  function attachToScrollParents(scrollParent, event, callback, scrollParents) {\n    var isBody = scrollParent.nodeName === 'BODY';\n    var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n    target.addEventListener(event, callback, { passive: true });\n\n    if (!isBody) {\n      attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n    }\n    scrollParents.push(target);\n  }\n\n  /**\n   * Setup needed event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function setupEventListeners(reference, options, state, updateBound) {\n    // Resize event listener on window\n    state.updateBound = updateBound;\n    getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n    // Scroll event listener on scroll parents\n    var scrollElement = getScrollParent(reference);\n    attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n    state.scrollElement = scrollElement;\n    state.eventsEnabled = true;\n\n    return state;\n  }\n\n  /**\n   * It will add resize/scroll events and start recalculating\n   * position of the popper element when they are triggered.\n   * @method\n   * @memberof Popper\n   */\n  function enableEventListeners() {\n    if (!this.state.eventsEnabled) {\n      this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n    }\n  }\n\n  /**\n   * Remove event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function removeEventListeners(reference, state) {\n    // Remove resize event listener on window\n    getWindow(reference).removeEventListener('resize', state.updateBound);\n\n    // Remove scroll event listener on scroll parents\n    state.scrollParents.forEach(function (target) {\n      target.removeEventListener('scroll', state.updateBound);\n    });\n\n    // Reset state\n    state.updateBound = null;\n    state.scrollParents = [];\n    state.scrollElement = null;\n    state.eventsEnabled = false;\n    return state;\n  }\n\n  /**\n   * It will remove resize/scroll events and won't recalculate popper position\n   * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n   * unless you call `update` method manually.\n   * @method\n   * @memberof Popper\n   */\n  function disableEventListeners() {\n    if (this.state.eventsEnabled) {\n      cancelAnimationFrame(this.scheduleUpdate);\n      this.state = removeEventListeners(this.reference, this.state);\n    }\n  }\n\n  /**\n   * Tells if a given input is a number\n   * @method\n   * @memberof Popper.Utils\n   * @param {*} input to check\n   * @return {Boolean}\n   */\n  function isNumeric(n) {\n    return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n  }\n\n  /**\n   * Set the style to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the style to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setStyles(element, styles) {\n    Object.keys(styles).forEach(function (prop) {\n      var unit = '';\n      // add unit if the value is numeric and is one of the following\n      if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n        unit = 'px';\n      }\n      element.style[prop] = styles[prop] + unit;\n    });\n  }\n\n  /**\n   * Set the attributes to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the attributes to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setAttributes(element, attributes) {\n    Object.keys(attributes).forEach(function (prop) {\n      var value = attributes[prop];\n      if (value !== false) {\n        element.setAttribute(prop, attributes[prop]);\n      } else {\n        element.removeAttribute(prop);\n      }\n    });\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} data.styles - List of style properties - values to apply to popper element\n   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The same data object\n   */\n  function applyStyle(data) {\n    // any property present in `data.styles` will be applied to the popper,\n    // in this way we can make the 3rd party modifiers add custom styles to it\n    // Be aware, modifiers could override the properties defined in the previous\n    // lines of this modifier!\n    setStyles(data.instance.popper, data.styles);\n\n    // any property present in `data.attributes` will be applied to the popper,\n    // they will be set as HTML attributes of the element\n    setAttributes(data.instance.popper, data.attributes);\n\n    // if arrowElement is defined and arrowStyles has some properties\n    if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n      setStyles(data.arrowElement, data.arrowStyles);\n    }\n\n    return data;\n  }\n\n  /**\n   * Set the x-placement attribute before everything else because it could be used\n   * to add margins to the popper margins needs to be calculated to get the\n   * correct popper offsets.\n   * @method\n   * @memberof Popper.modifiers\n   * @param {HTMLElement} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper\n   * @param {Object} options - Popper.js options\n   */\n  function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n    // compute reference element offsets\n    var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n    popper.setAttribute('x-placement', placement);\n\n    // Apply `position` to popper before anything else because\n    // without the position applied we can't guarantee correct computations\n    setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n    return options;\n  }\n\n  /**\n   * @function\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n   * @returns {Object} The popper's position offsets rounded\n   *\n   * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n   * good as it can be within reason.\n   * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n   *\n   * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n   * as well on High DPI screens).\n   *\n   * Firefox prefers no rounding for positioning and does not have blurriness on\n   * high DPI screens.\n   *\n   * Only horizontal placement and left/right values need to be considered.\n   */\n  function getRoundedOffsets(data, shouldRound) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n    var round = Math.round,\n        floor = Math.floor;\n\n    var noRound = function noRound(v) {\n      return v;\n    };\n\n    var referenceWidth = round(reference.width);\n    var popperWidth = round(popper.width);\n\n    var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n    var isVariation = data.placement.indexOf('-') !== -1;\n    var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n    var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n    var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n    var verticalToInteger = !shouldRound ? noRound : round;\n\n    return {\n      left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n      top: verticalToInteger(popper.top),\n      bottom: verticalToInteger(popper.bottom),\n      right: horizontalToInteger(popper.right)\n    };\n  }\n\n  var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeStyle(data, options) {\n    var x = options.x,\n        y = options.y;\n    var popper = data.offsets.popper;\n\n    // Remove this legacy support in Popper.js v2\n\n    var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'applyStyle';\n    }).gpuAcceleration;\n    if (legacyGpuAccelerationOption !== undefined) {\n      console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n    }\n    var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n    var offsetParent = getOffsetParent(data.instance.popper);\n    var offsetParentRect = getBoundingClientRect(offsetParent);\n\n    // Styles\n    var styles = {\n      position: popper.position\n    };\n\n    var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n    var sideA = x === 'bottom' ? 'top' : 'bottom';\n    var sideB = y === 'right' ? 'left' : 'right';\n\n    // if gpuAcceleration is set to `true` and transform is supported,\n    //  we use `translate3d` to apply the position to the popper we\n    // automatically use the supported prefixed version if needed\n    var prefixedProperty = getSupportedPropertyName('transform');\n\n    // now, let's make a step back and look at this code closely (wtf?)\n    // If the content of the popper grows once it's been positioned, it\n    // may happen that the popper gets misplaced because of the new content\n    // overflowing its reference element\n    // To avoid this problem, we provide two options (x and y), which allow\n    // the consumer to define the offset origin.\n    // If we position a popper on top of a reference element, we can set\n    // `x` to `top` to make the popper grow towards its top instead of\n    // its bottom.\n    var left = void 0,\n        top = void 0;\n    if (sideA === 'bottom') {\n      // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n      // and not the bottom of the html element\n      if (offsetParent.nodeName === 'HTML') {\n        top = -offsetParent.clientHeight + offsets.bottom;\n      } else {\n        top = -offsetParentRect.height + offsets.bottom;\n      }\n    } else {\n      top = offsets.top;\n    }\n    if (sideB === 'right') {\n      if (offsetParent.nodeName === 'HTML') {\n        left = -offsetParent.clientWidth + offsets.right;\n      } else {\n        left = -offsetParentRect.width + offsets.right;\n      }\n    } else {\n      left = offsets.left;\n    }\n    if (gpuAcceleration && prefixedProperty) {\n      styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n      styles[sideA] = 0;\n      styles[sideB] = 0;\n      styles.willChange = 'transform';\n    } else {\n      // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n      var invertTop = sideA === 'bottom' ? -1 : 1;\n      var invertLeft = sideB === 'right' ? -1 : 1;\n      styles[sideA] = top * invertTop;\n      styles[sideB] = left * invertLeft;\n      styles.willChange = sideA + ', ' + sideB;\n    }\n\n    // Attributes\n    var attributes = {\n      'x-placement': data.placement\n    };\n\n    // Update `data` attributes, styles and arrowStyles\n    data.attributes = _extends$1({}, attributes, data.attributes);\n    data.styles = _extends$1({}, styles, data.styles);\n    data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);\n\n    return data;\n  }\n\n  /**\n   * Helper used to know if the given modifier depends from another one.<br />\n   * It checks if the needed modifier is listed and enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @param {Array} modifiers - list of modifiers\n   * @param {String} requestingName - name of requesting modifier\n   * @param {String} requestedName - name of requested modifier\n   * @returns {Boolean}\n   */\n  function isModifierRequired(modifiers, requestingName, requestedName) {\n    var requesting = find(modifiers, function (_ref) {\n      var name = _ref.name;\n      return name === requestingName;\n    });\n\n    var isRequired = !!requesting && modifiers.some(function (modifier) {\n      return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n    });\n\n    if (!isRequired) {\n      var _requesting = '`' + requestingName + '`';\n      var requested = '`' + requestedName + '`';\n      console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n    }\n    return isRequired;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function arrow(data, options) {\n    var _data$offsets$arrow;\n\n    // arrow depends on keepTogether in order to work\n    if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n      return data;\n    }\n\n    var arrowElement = options.element;\n\n    // if arrowElement is a string, suppose it's a CSS selector\n    if (typeof arrowElement === 'string') {\n      arrowElement = data.instance.popper.querySelector(arrowElement);\n\n      // if arrowElement is not found, don't run the modifier\n      if (!arrowElement) {\n        return data;\n      }\n    } else {\n      // if the arrowElement isn't a query selector we must check that the\n      // provided DOM node is child of its popper node\n      if (!data.instance.popper.contains(arrowElement)) {\n        console.warn('WARNING: `arrow.element` must be child of its popper element!');\n        return data;\n      }\n    }\n\n    var placement = data.placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n    var len = isVertical ? 'height' : 'width';\n    var sideCapitalized = isVertical ? 'Top' : 'Left';\n    var side = sideCapitalized.toLowerCase();\n    var altSide = isVertical ? 'left' : 'top';\n    var opSide = isVertical ? 'bottom' : 'right';\n    var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n    //\n    // extends keepTogether behavior making sure the popper and its\n    // reference have enough pixels in conjunction\n    //\n\n    // top/left side\n    if (reference[opSide] - arrowElementSize < popper[side]) {\n      data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n    }\n    // bottom/right side\n    if (reference[side] + arrowElementSize > popper[opSide]) {\n      data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n    }\n    data.offsets.popper = getClientRect(data.offsets.popper);\n\n    // compute center of the popper\n    var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n    // Compute the sideValue using the updated popper offsets\n    // take popper margin in account because we don't have this info available\n    var css = getStyleComputedProperty(data.instance.popper);\n    var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n    var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n    var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n    // prevent arrowElement from being placed not contiguously to its popper\n    sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n    data.arrowElement = arrowElement;\n    data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n    return data;\n  }\n\n  /**\n   * Get the opposite placement variation of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement variation\n   * @returns {String} flipped placement variation\n   */\n  function getOppositeVariation(variation) {\n    if (variation === 'end') {\n      return 'start';\n    } else if (variation === 'start') {\n      return 'end';\n    }\n    return variation;\n  }\n\n  /**\n   * List of accepted placements to use as values of the `placement` option.<br />\n   * Valid placements are:\n   * - `auto`\n   * - `top`\n   * - `right`\n   * - `bottom`\n   * - `left`\n   *\n   * Each placement can have a variation from this list:\n   * - `-start`\n   * - `-end`\n   *\n   * Variations are interpreted easily if you think of them as the left to right\n   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n   * is right.<br />\n   * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n   *\n   * Some valid examples are:\n   * - `top-end` (on top of reference, right aligned)\n   * - `right-start` (on right of reference, top aligned)\n   * - `bottom` (on bottom, centered)\n   * - `auto-end` (on the side with more space available, alignment depends by placement)\n   *\n   * @static\n   * @type {Array}\n   * @enum {String}\n   * @readonly\n   * @method placements\n   * @memberof Popper\n   */\n  var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n  // Get rid of `auto` `auto-start` and `auto-end`\n  var validPlacements = placements.slice(3);\n\n  /**\n   * Given an initial placement, returns all the subsequent placements\n   * clockwise (or counter-clockwise).\n   *\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement - A valid placement (it accepts variations)\n   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n   * @returns {Array} placements including their variations\n   */\n  function clockwise(placement) {\n    var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var index = validPlacements.indexOf(placement);\n    var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n    return counter ? arr.reverse() : arr;\n  }\n\n  var BEHAVIORS = {\n    FLIP: 'flip',\n    CLOCKWISE: 'clockwise',\n    COUNTERCLOCKWISE: 'counterclockwise'\n  };\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function flip(data, options) {\n    // if `inner` modifier is enabled, we can't use the `flip` modifier\n    if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n      return data;\n    }\n\n    if (data.flipped && data.placement === data.originalPlacement) {\n      // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n      return data;\n    }\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n    var placement = data.placement.split('-')[0];\n    var placementOpposite = getOppositePlacement(placement);\n    var variation = data.placement.split('-')[1] || '';\n\n    var flipOrder = [];\n\n    switch (options.behavior) {\n      case BEHAVIORS.FLIP:\n        flipOrder = [placement, placementOpposite];\n        break;\n      case BEHAVIORS.CLOCKWISE:\n        flipOrder = clockwise(placement);\n        break;\n      case BEHAVIORS.COUNTERCLOCKWISE:\n        flipOrder = clockwise(placement, true);\n        break;\n      default:\n        flipOrder = options.behavior;\n    }\n\n    flipOrder.forEach(function (step, index) {\n      if (placement !== step || flipOrder.length === index + 1) {\n        return data;\n      }\n\n      placement = data.placement.split('-')[0];\n      placementOpposite = getOppositePlacement(placement);\n\n      var popperOffsets = data.offsets.popper;\n      var refOffsets = data.offsets.reference;\n\n      // using floor because the reference offsets may contain decimals we are not going to consider here\n      var floor = Math.floor;\n      var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n      var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n      var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n      var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n      var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n      var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n      // flip the variation if required\n      var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n      // flips variation if reference element overflows boundaries\n      var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n      // flips variation if popper content overflows boundaries\n      var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n      var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n      if (overlapsRef || overflowsBoundaries || flippedVariation) {\n        // this boolean to detect any flip loop\n        data.flipped = true;\n\n        if (overlapsRef || overflowsBoundaries) {\n          placement = flipOrder[index + 1];\n        }\n\n        if (flippedVariation) {\n          variation = getOppositeVariation(variation);\n        }\n\n        data.placement = placement + (variation ? '-' + variation : '');\n\n        // this object contains `position`, we want to preserve it along with\n        // any additional property we may add in the future\n        data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n        data = runModifiers(data.instance.modifiers, data, 'flip');\n      }\n    });\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function keepTogether(data) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var placement = data.placement.split('-')[0];\n    var floor = Math.floor;\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var side = isVertical ? 'right' : 'bottom';\n    var opSide = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    if (popper[side] < floor(reference[opSide])) {\n      data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n    }\n    if (popper[opSide] > floor(reference[side])) {\n      data.offsets.popper[opSide] = floor(reference[side]);\n    }\n\n    return data;\n  }\n\n  /**\n   * Converts a string containing value + unit into a px value number\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} str - Value + unit string\n   * @argument {String} measurement - `height` or `width`\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @returns {Number|String}\n   * Value in pixels, or original string if no values were extracted\n   */\n  function toValue(str, measurement, popperOffsets, referenceOffsets) {\n    // separate value from unit\n    var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n    var value = +split[1];\n    var unit = split[2];\n\n    // If it's not a number it's an operator, I guess\n    if (!value) {\n      return str;\n    }\n\n    if (unit.indexOf('%') === 0) {\n      var element = void 0;\n      switch (unit) {\n        case '%p':\n          element = popperOffsets;\n          break;\n        case '%':\n        case '%r':\n        default:\n          element = referenceOffsets;\n      }\n\n      var rect = getClientRect(element);\n      return rect[measurement] / 100 * value;\n    } else if (unit === 'vh' || unit === 'vw') {\n      // if is a vh or vw, we calculate the size based on the viewport\n      var size = void 0;\n      if (unit === 'vh') {\n        size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n      } else {\n        size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n      }\n      return size / 100 * value;\n    } else {\n      // if is an explicit pixel unit, we get rid of the unit and keep the value\n      // if is an implicit unit, it's px, and we return just the value\n      return value;\n    }\n  }\n\n  /**\n   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} offset\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @argument {String} basePlacement\n   * @returns {Array} a two cells array with x and y offsets in numbers\n   */\n  function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n    var offsets = [0, 0];\n\n    // Use height if placement is left or right and index is 0 otherwise use width\n    // in this way the first offset will use an axis and the second one\n    // will use the other one\n    var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n    // Split the offset string to obtain a list of values and operands\n    // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n    var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n      return frag.trim();\n    });\n\n    // Detect if the offset string contains a pair of values or a single one\n    // they could be separated by comma or space\n    var divider = fragments.indexOf(find(fragments, function (frag) {\n      return frag.search(/,|\\s/) !== -1;\n    }));\n\n    if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n      console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n    }\n\n    // If divider is found, we divide the list of values and operands to divide\n    // them by ofset X and Y.\n    var splitRegex = /\\s*,\\s*|\\s+/;\n    var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n    // Convert the values with units to absolute pixels to allow our computations\n    ops = ops.map(function (op, index) {\n      // Most of the units rely on the orientation of the popper\n      var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n      var mergeWithPrevious = false;\n      return op\n      // This aggregates any `+` or `-` sign that aren't considered operators\n      // e.g.: 10 + +5 => [10, +, +5]\n      .reduce(function (a, b) {\n        if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n          a[a.length - 1] = b;\n          mergeWithPrevious = true;\n          return a;\n        } else if (mergeWithPrevious) {\n          a[a.length - 1] += b;\n          mergeWithPrevious = false;\n          return a;\n        } else {\n          return a.concat(b);\n        }\n      }, [])\n      // Here we convert the string values into number values (in px)\n      .map(function (str) {\n        return toValue(str, measurement, popperOffsets, referenceOffsets);\n      });\n    });\n\n    // Loop trough the offsets arrays and execute the operations\n    ops.forEach(function (op, index) {\n      op.forEach(function (frag, index2) {\n        if (isNumeric(frag)) {\n          offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n        }\n      });\n    });\n    return offsets;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @argument {Number|String} options.offset=0\n   * The offset value as described in the modifier description\n   * @returns {Object} The data object, properly modified\n   */\n  function offset(data, _ref) {\n    var offset = _ref.offset;\n    var placement = data.placement,\n        _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var basePlacement = placement.split('-')[0];\n\n    var offsets = void 0;\n    if (isNumeric(+offset)) {\n      offsets = [+offset, 0];\n    } else {\n      offsets = parseOffset(offset, popper, reference, basePlacement);\n    }\n\n    if (basePlacement === 'left') {\n      popper.top += offsets[0];\n      popper.left -= offsets[1];\n    } else if (basePlacement === 'right') {\n      popper.top += offsets[0];\n      popper.left += offsets[1];\n    } else if (basePlacement === 'top') {\n      popper.left += offsets[0];\n      popper.top -= offsets[1];\n    } else if (basePlacement === 'bottom') {\n      popper.left += offsets[0];\n      popper.top += offsets[1];\n    }\n\n    data.popper = popper;\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function preventOverflow(data, options) {\n    var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n    // If offsetParent is the reference element, we really want to\n    // go one step up and use the next offsetParent as reference to\n    // avoid to make this modifier completely useless and look like broken\n    if (data.instance.reference === boundariesElement) {\n      boundariesElement = getOffsetParent(boundariesElement);\n    }\n\n    // NOTE: DOM access here\n    // resets the popper's position so that the document size can be calculated excluding\n    // the size of the popper element itself\n    var transformProp = getSupportedPropertyName('transform');\n    var popperStyles = data.instance.popper.style; // assignment to help minification\n    var top = popperStyles.top,\n        left = popperStyles.left,\n        transform = popperStyles[transformProp];\n\n    popperStyles.top = '';\n    popperStyles.left = '';\n    popperStyles[transformProp] = '';\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n    // NOTE: DOM access here\n    // restores the original style properties after the offsets have been computed\n    popperStyles.top = top;\n    popperStyles.left = left;\n    popperStyles[transformProp] = transform;\n\n    options.boundaries = boundaries;\n\n    var order = options.priority;\n    var popper = data.offsets.popper;\n\n    var check = {\n      primary: function primary(placement) {\n        var value = popper[placement];\n        if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n          value = Math.max(popper[placement], boundaries[placement]);\n        }\n        return defineProperty({}, placement, value);\n      },\n      secondary: function secondary(placement) {\n        var mainSide = placement === 'right' ? 'left' : 'top';\n        var value = popper[mainSide];\n        if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n          value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n        }\n        return defineProperty({}, mainSide, value);\n      }\n    };\n\n    order.forEach(function (placement) {\n      var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n      popper = _extends$1({}, popper, check[side](placement));\n    });\n\n    data.offsets.popper = popper;\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function shift(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var shiftvariation = placement.split('-')[1];\n\n    // if shift shiftvariation is specified, run the modifier\n    if (shiftvariation) {\n      var _data$offsets = data.offsets,\n          reference = _data$offsets.reference,\n          popper = _data$offsets.popper;\n\n      var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n      var side = isVertical ? 'left' : 'top';\n      var measurement = isVertical ? 'width' : 'height';\n\n      var shiftOffsets = {\n        start: defineProperty({}, side, reference[side]),\n        end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n      };\n\n      data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function hide(data) {\n    if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n      return data;\n    }\n\n    var refRect = data.offsets.reference;\n    var bound = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'preventOverflow';\n    }).boundaries;\n\n    if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === true) {\n        return data;\n      }\n\n      data.hide = true;\n      data.attributes['x-out-of-boundaries'] = '';\n    } else {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === false) {\n        return data;\n      }\n\n      data.hide = false;\n      data.attributes['x-out-of-boundaries'] = false;\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function inner(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n    var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n    popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n    data.placement = getOppositePlacement(placement);\n    data.offsets.popper = getClientRect(popper);\n\n    return data;\n  }\n\n  /**\n   * Modifier function, each modifier can have a function of this type assigned\n   * to its `fn` property.<br />\n   * These functions will be called on each update, this means that you must\n   * make sure they are performant enough to avoid performance bottlenecks.\n   *\n   * @function ModifierFn\n   * @argument {dataObject} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {dataObject} The data object, properly modified\n   */\n\n  /**\n   * Modifiers are plugins used to alter the behavior of your poppers.<br />\n   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n   * needed by the library.\n   *\n   * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n   * All the other properties are configurations that could be tweaked.\n   * @namespace modifiers\n   */\n  var modifiers = {\n    /**\n     * Modifier used to shift the popper on the start or end of its reference\n     * element.<br />\n     * It will read the variation of the `placement` property.<br />\n     * It can be one either `-end` or `-start`.\n     * @memberof modifiers\n     * @inner\n     */\n    shift: {\n      /** @prop {number} order=100 - Index used to define the order of execution */\n      order: 100,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: shift\n    },\n\n    /**\n     * The `offset` modifier can shift your popper on both its axis.\n     *\n     * It accepts the following units:\n     * - `px` or unit-less, interpreted as pixels\n     * - `%` or `%r`, percentage relative to the length of the reference element\n     * - `%p`, percentage relative to the length of the popper element\n     * - `vw`, CSS viewport width unit\n     * - `vh`, CSS viewport height unit\n     *\n     * For length is intended the main axis relative to the placement of the popper.<br />\n     * This means that if the placement is `top` or `bottom`, the length will be the\n     * `width`. In case of `left` or `right`, it will be the `height`.\n     *\n     * You can provide a single value (as `Number` or `String`), or a pair of values\n     * as `String` divided by a comma or one (or more) white spaces.<br />\n     * The latter is a deprecated method because it leads to confusion and will be\n     * removed in v2.<br />\n     * Additionally, it accepts additions and subtractions between different units.\n     * Note that multiplications and divisions aren't supported.\n     *\n     * Valid examples are:\n     * ```\n     * 10\n     * '10%'\n     * '10, 10'\n     * '10%, 10'\n     * '10 + 10%'\n     * '10 - 5vh + 3%'\n     * '-10px + 5vh, 5px - 6%'\n     * ```\n     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n     * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    offset: {\n      /** @prop {number} order=200 - Index used to define the order of execution */\n      order: 200,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: offset,\n      /** @prop {Number|String} offset=0\n       * The offset value as described in the modifier description\n       */\n      offset: 0\n    },\n\n    /**\n     * Modifier used to prevent the popper from being positioned outside the boundary.\n     *\n     * A scenario exists where the reference itself is not within the boundaries.<br />\n     * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n     * In this case we need to decide whether the popper should either:\n     *\n     * - detach from the reference and remain \"trapped\" in the boundaries, or\n     * - if it should ignore the boundary and \"escape with its reference\"\n     *\n     * When `escapeWithReference` is set to`true` and reference is completely\n     * outside its boundaries, the popper will overflow (or completely leave)\n     * the boundaries in order to remain attached to the edge of the reference.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    preventOverflow: {\n      /** @prop {number} order=300 - Index used to define the order of execution */\n      order: 300,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: preventOverflow,\n      /**\n       * @prop {Array} [priority=['left','right','top','bottom']]\n       * Popper will try to prevent overflow following these priorities by default,\n       * then, it could overflow on the left and on top of the `boundariesElement`\n       */\n      priority: ['left', 'right', 'top', 'bottom'],\n      /**\n       * @prop {number} padding=5\n       * Amount of pixel used to define a minimum distance between the boundaries\n       * and the popper. This makes sure the popper always has a little padding\n       * between the edges of its container\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='scrollParent'\n       * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n       * `viewport` or any DOM element.\n       */\n      boundariesElement: 'scrollParent'\n    },\n\n    /**\n     * Modifier used to make sure the reference and its popper stay near each other\n     * without leaving any gap between the two. Especially useful when the arrow is\n     * enabled and you want to ensure that it points to its reference element.\n     * It cares only about the first axis. You can still have poppers with margin\n     * between the popper and its reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    keepTogether: {\n      /** @prop {number} order=400 - Index used to define the order of execution */\n      order: 400,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: keepTogether\n    },\n\n    /**\n     * This modifier is used to move the `arrowElement` of the popper to make\n     * sure it is positioned between the reference element and its popper element.\n     * It will read the outer size of the `arrowElement` node to detect how many\n     * pixels of conjunction are needed.\n     *\n     * It has no effect if no `arrowElement` is provided.\n     * @memberof modifiers\n     * @inner\n     */\n    arrow: {\n      /** @prop {number} order=500 - Index used to define the order of execution */\n      order: 500,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: arrow,\n      /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n      element: '[x-arrow]'\n    },\n\n    /**\n     * Modifier used to flip the popper's placement when it starts to overlap its\n     * reference element.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     *\n     * **NOTE:** this modifier will interrupt the current update cycle and will\n     * restart it if it detects the need to flip the placement.\n     * @memberof modifiers\n     * @inner\n     */\n    flip: {\n      /** @prop {number} order=600 - Index used to define the order of execution */\n      order: 600,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: flip,\n      /**\n       * @prop {String|Array} behavior='flip'\n       * The behavior used to change the popper's placement. It can be one of\n       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n       * placements (with optional variations)\n       */\n      behavior: 'flip',\n      /**\n       * @prop {number} padding=5\n       * The popper will flip if it hits the edges of the `boundariesElement`\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='viewport'\n       * The element which will define the boundaries of the popper position.\n       * The popper will never be placed outside of the defined boundaries\n       * (except if `keepTogether` is enabled)\n       */\n      boundariesElement: 'viewport',\n      /**\n       * @prop {Boolean} flipVariations=false\n       * The popper will switch placement variation between `-start` and `-end` when\n       * the reference element overlaps its boundaries.\n       *\n       * The original placement should have a set variation.\n       */\n      flipVariations: false,\n      /**\n       * @prop {Boolean} flipVariationsByContent=false\n       * The popper will switch placement variation between `-start` and `-end` when\n       * the popper element overlaps its reference boundaries.\n       *\n       * The original placement should have a set variation.\n       */\n      flipVariationsByContent: false\n    },\n\n    /**\n     * Modifier used to make the popper flow toward the inner of the reference element.\n     * By default, when this modifier is disabled, the popper will be placed outside\n     * the reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    inner: {\n      /** @prop {number} order=700 - Index used to define the order of execution */\n      order: 700,\n      /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n      enabled: false,\n      /** @prop {ModifierFn} */\n      fn: inner\n    },\n\n    /**\n     * Modifier used to hide the popper when its reference element is outside of the\n     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n     * be used to hide with a CSS selector the popper when its reference is\n     * out of boundaries.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     * @memberof modifiers\n     * @inner\n     */\n    hide: {\n      /** @prop {number} order=800 - Index used to define the order of execution */\n      order: 800,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: hide\n    },\n\n    /**\n     * Computes the style that will be applied to the popper element to gets\n     * properly positioned.\n     *\n     * Note that this modifier will not touch the DOM, it just prepares the styles\n     * so that `applyStyle` modifier can apply it. This separation is useful\n     * in case you need to replace `applyStyle` with a custom implementation.\n     *\n     * This modifier has `850` as `order` value to maintain backward compatibility\n     * with previous versions of Popper.js. Expect the modifiers ordering method\n     * to change in future major versions of the library.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    computeStyle: {\n      /** @prop {number} order=850 - Index used to define the order of execution */\n      order: 850,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: computeStyle,\n      /**\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: true,\n      /**\n       * @prop {string} [x='bottom']\n       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n       * Change this if your popper should grow in a direction different from `bottom`\n       */\n      x: 'bottom',\n      /**\n       * @prop {string} [x='left']\n       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n       * Change this if your popper should grow in a direction different from `right`\n       */\n      y: 'right'\n    },\n\n    /**\n     * Applies the computed styles to the popper element.\n     *\n     * All the DOM manipulations are limited to this modifier. This is useful in case\n     * you want to integrate Popper.js inside a framework or view library and you\n     * want to delegate all the DOM manipulations to it.\n     *\n     * Note that if you disable this modifier, you must make sure the popper element\n     * has its position set to `absolute` before Popper.js can do its work!\n     *\n     * Just disable this modifier and define your own to achieve the desired effect.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    applyStyle: {\n      /** @prop {number} order=900 - Index used to define the order of execution */\n      order: 900,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: applyStyle,\n      /** @prop {Function} */\n      onLoad: applyStyleOnLoad,\n      /**\n       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: undefined\n    }\n  };\n\n  /**\n   * The `dataObject` is an object containing all the information used by Popper.js.\n   * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n   * @name dataObject\n   * @property {Object} data.instance The Popper.js instance\n   * @property {String} data.placement Placement applied to popper\n   * @property {String} data.originalPlacement Placement originally defined on init\n   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n   * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.boundaries Offsets of the popper boundaries\n   * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n   */\n\n  /**\n   * Default options provided to Popper.js constructor.<br />\n   * These can be overridden using the `options` argument of Popper.js.<br />\n   * To override an option, simply pass an object with the same\n   * structure of the `options` object, as the 3rd argument. For example:\n   * ```\n   * new Popper(ref, pop, {\n   *   modifiers: {\n   *     preventOverflow: { enabled: false }\n   *   }\n   * })\n   * ```\n   * @type {Object}\n   * @static\n   * @memberof Popper\n   */\n  var Defaults = {\n    /**\n     * Popper's placement.\n     * @prop {Popper.placements} placement='bottom'\n     */\n    placement: 'bottom',\n\n    /**\n     * Set this to true if you want popper to position it self in 'fixed' mode\n     * @prop {Boolean} positionFixed=false\n     */\n    positionFixed: false,\n\n    /**\n     * Whether events (resize, scroll) are initially enabled.\n     * @prop {Boolean} eventsEnabled=true\n     */\n    eventsEnabled: true,\n\n    /**\n     * Set to true if you want to automatically remove the popper when\n     * you call the `destroy` method.\n     * @prop {Boolean} removeOnDestroy=false\n     */\n    removeOnDestroy: false,\n\n    /**\n     * Callback called when the popper is created.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onCreate}\n     */\n    onCreate: function onCreate() {},\n\n    /**\n     * Callback called when the popper is updated. This callback is not called\n     * on the initialization/creation of the popper, but only on subsequent\n     * updates.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onUpdate}\n     */\n    onUpdate: function onUpdate() {},\n\n    /**\n     * List of modifiers used to modify the offsets before they are applied to the popper.\n     * They provide most of the functionalities of Popper.js.\n     * @prop {modifiers}\n     */\n    modifiers: modifiers\n  };\n\n  /**\n   * @callback onCreate\n   * @param {dataObject} data\n   */\n\n  /**\n   * @callback onUpdate\n   * @param {dataObject} data\n   */\n\n  // Utils\n  // Methods\n  var Popper = function () {\n    /**\n     * Creates a new Popper.js instance.\n     * @class Popper\n     * @param {Element|referenceObject} reference - The reference element used to position the popper\n     * @param {Element} popper - The HTML / XML element used as the popper\n     * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n     * @return {Object} instance - The generated Popper.js instance\n     */\n    function Popper(reference, popper) {\n      var _this = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      classCallCheck(this, Popper);\n\n      this.scheduleUpdate = function () {\n        return requestAnimationFrame(_this.update);\n      };\n\n      // make update() debounced, so that it only runs at most once-per-tick\n      this.update = debounce(this.update.bind(this));\n\n      // with {} we create a new object with the options inside it\n      this.options = _extends$1({}, Popper.Defaults, options);\n\n      // init state\n      this.state = {\n        isDestroyed: false,\n        isCreated: false,\n        scrollParents: []\n      };\n\n      // get reference and popper elements (allow jQuery wrappers)\n      this.reference = reference && reference.jquery ? reference[0] : reference;\n      this.popper = popper && popper.jquery ? popper[0] : popper;\n\n      // Deep merge modifiers options\n      this.options.modifiers = {};\n      Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n        _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n      });\n\n      // Refactoring modifiers' list (Object => Array)\n      this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n        return _extends$1({\n          name: name\n        }, _this.options.modifiers[name]);\n      })\n      // sort the modifiers by order\n      .sort(function (a, b) {\n        return a.order - b.order;\n      });\n\n      // modifiers have the ability to execute arbitrary code when Popper.js get inited\n      // such code is executed in the same order of its modifier\n      // they could add new properties to their options configuration\n      // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n      this.modifiers.forEach(function (modifierOptions) {\n        if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n          modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n        }\n      });\n\n      // fire the first update to position the popper in the right place\n      this.update();\n\n      var eventsEnabled = this.options.eventsEnabled;\n      if (eventsEnabled) {\n        // setup event listeners, they will take care of update the position in specific situations\n        this.enableEventListeners();\n      }\n\n      this.state.eventsEnabled = eventsEnabled;\n    }\n\n    // We can't use class properties because they don't get listed in the\n    // class prototype and break stuff like Sinon stubs\n\n\n    createClass(Popper, [{\n      key: 'update',\n      value: function update$$1() {\n        return update.call(this);\n      }\n    }, {\n      key: 'destroy',\n      value: function destroy$$1() {\n        return destroy.call(this);\n      }\n    }, {\n      key: 'enableEventListeners',\n      value: function enableEventListeners$$1() {\n        return enableEventListeners.call(this);\n      }\n    }, {\n      key: 'disableEventListeners',\n      value: function disableEventListeners$$1() {\n        return disableEventListeners.call(this);\n      }\n\n      /**\n       * Schedules an update. It will run on the next UI update available.\n       * @method scheduleUpdate\n       * @memberof Popper\n       */\n\n\n      /**\n       * Collection of utilities useful when writing custom modifiers.\n       * Starting from version 1.7, this method is available only if you\n       * include `popper-utils.js` before `popper.js`.\n       *\n       * **DEPRECATION**: This way to access PopperUtils is deprecated\n       * and will be removed in v2! Use the PopperUtils module directly instead.\n       * Due to the high instability of the methods contained in Utils, we can't\n       * guarantee them to follow semver. Use them at your own risk!\n       * @static\n       * @private\n       * @type {Object}\n       * @deprecated since version 1.8\n       * @member Utils\n       * @memberof Popper\n       */\n\n    }]);\n    return Popper;\n  }();\n\n  /**\n   * The `referenceObject` is an object that provides an interface compatible with Popper.js\n   * and lets you use it as replacement of a real DOM node.<br />\n   * You can use this method to position a popper relatively to a set of coordinates\n   * in case you don't have a DOM node to use as reference.\n   *\n   * ```\n   * new Popper(referenceObject, popperNode);\n   * ```\n   *\n   * NB: This feature isn't supported in Internet Explorer 10.\n   * @name referenceObject\n   * @property {Function} data.getBoundingClientRect\n   * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n   * @property {number} data.clientWidth\n   * An ES6 getter that will return the width of the virtual reference element.\n   * @property {number} data.clientHeight\n   * An ES6 getter that will return the height of the virtual reference element.\n   */\n\n\n  Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n  Popper.placements = placements;\n  Popper.Defaults = Defaults;\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.6.0';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n  var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n  var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n  var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n  var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n  var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW$2 = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$4);\n      $__default['default'](this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.6.0';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n  var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n  var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n  var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n  var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n  var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n  var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n  var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n  var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n  var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n  var CLASS_NAME_BACKDROP = 'modal-backdrop';\n  var CLASS_NAME_OPEN = 'modal-open';\n  var CLASS_NAME_FADE$1 = 'fade';\n  var CLASS_NAME_SHOW$3 = 'show';\n  var CLASS_NAME_STATIC = 'modal-static';\n  var SELECTOR_DIALOG = '.modal-dialog';\n  var SELECTOR_MODAL_BODY = '.modal-body';\n  var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n  var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n  var SELECTOR_STICKY_CONTENT = '.sticky-top';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(SELECTOR_DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n        relatedTarget: relatedTarget\n      });\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n        $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n          if ($__default['default'](event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n      $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $__default['default'](htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `EVENT_CLICK_DATA_API` event that should remain\n       */\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'].removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n      var _this3 = this;\n\n      var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n      $__default['default'](this._element).trigger(hideEventPrevented);\n\n      if (hideEventPrevented.isDefaultPrevented()) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n      $__default['default'](this._element).off(Util.TRANSITION_END);\n      $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n        _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n        if (!isModalOverflowing) {\n          $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n            _this3._element.style.overflowY = '';\n          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n        }\n      }).emulateTransitionEnd(modalTransitionDuration);\n\n      this._element.focus();\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this4 = this;\n\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n        modalBody.scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this4._config.focus) {\n          _this4._element.focus();\n        }\n\n        _this4._isTransitioning = false;\n        $__default['default'](_this4._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this5 = this;\n\n      $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n      .on(EVENT_FOCUSIN, function (event) {\n        if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n          _this5._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this6.hide();\n          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            _this6._triggerBackdropTransition();\n          }\n        });\n      } else if (!this._isShown) {\n        $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this7 = this;\n\n      if (this._isShown) {\n        $__default['default'](window).on(EVENT_RESIZE, function (event) {\n          return _this7.handleUpdate(event);\n        });\n      } else {\n        $__default['default'](window).off(EVENT_RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this8 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n        _this8._resetAdjustments();\n\n        _this8._resetScrollbar();\n\n        $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $__default['default'](this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this9 = this;\n\n      var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = CLASS_NAME_BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $__default['default'](this._backdrop).appendTo(document.body);\n        $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n          if (_this9._ignoreBackdropClick) {\n            _this9._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this9._config.backdrop === 'static') {\n            _this9._triggerBackdropTransition();\n          } else {\n            _this9.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n        var callbackRemove = function callbackRemove() {\n          _this9._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this10 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n        $__default['default'](fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $__default['default'](element).css('padding-right');\n          $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $__default['default'](stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $__default['default'](element).css('margin-right');\n          $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $__default['default'](document.body).css('padding-right');\n        $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n      $__default['default'](fixedContent).each(function (index, element) {\n        var padding = $__default['default'](element).data('padding-right');\n        $__default['default'](element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n      $__default['default'](elements).each(function (index, element) {\n        var margin = $__default['default'](element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $__default['default'](document.body).data('padding-right');\n      $__default['default'](document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n    var _this11 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(EVENT_HIDDEN$2, function () {\n        if ($__default['default'](_this11).is(':visible')) {\n          _this11.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($__default['default'](target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = Modal;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n  };\n  /**\n   * A pattern that recognizes a commonly useful subset of URLs that are safe.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, len = regExp.length; i < len; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.6.0';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    customClass: '(string|function)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object',\n    popperConfig: '(null|object)'\n  };\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    customClass: '',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist,\n    popperConfig: null\n  };\n  var HOVER_STATE_SHOW = 'show';\n  var HOVER_STATE_OUT = 'out';\n  var Event = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var CLASS_NAME_FADE$2 = 'fade';\n  var CLASS_NAME_SHOW$4 = 'show';\n  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n  var SELECTOR_ARROW = '.arrow';\n  var TRIGGER_HOVER = 'hover';\n  var TRIGGER_FOCUS = 'focus';\n  var TRIGGER_CLICK = 'click';\n  var TRIGGER_MANUAL = 'manual';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tooltip = /*#__PURE__*/function () {\n    function Tooltip(element, config) {\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $__default['default'](event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $__default['default'](event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n      $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n      $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n      if (this.tip) {\n        $__default['default'](this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($__default['default'](this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $__default['default'](this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $__default['default'](tip).appendTo(container);\n        }\n\n        $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));\n        $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n        $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HOVER_STATE_OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $__default['default'](this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n\n      if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$__default['default'](content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($__default['default'](content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getPopperConfig = function _getPopperConfig(attachment) {\n      var _this3 = this;\n\n      var defaultBsConfig = {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: SELECTOR_ARROW\n          },\n          preventOverflow: {\n            boundariesElement: this.config.boundary\n          }\n        },\n        onCreate: function onCreate(data) {\n          if (data.originalPlacement !== data.placement) {\n            _this3._handlePopperPlacementChange(data);\n          }\n        },\n        onUpdate: function onUpdate(data) {\n          return _this3._handlePopperPlacementChange(data);\n        }\n      };\n      return _extends({}, defaultBsConfig, this.config.popperConfig);\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this4 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $__default['default'](this.config.container);\n      }\n\n      return $__default['default'](document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this5 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n            return _this5.toggle(event);\n          });\n        } else if (trigger !== TRIGGER_MANUAL) {\n          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n          $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n            return _this5._enter(event);\n          }).on(eventOut, _this5.config.selector, function (event) {\n            return _this5._leave(event);\n          });\n        }\n      });\n\n      this._hideModalHandler = function () {\n        if (_this5.element) {\n          _this5.hide();\n        }\n      };\n\n      $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n      if (this.config.selector) {\n        this.config = _extends({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n      }\n\n      if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n        context._hoverState = HOVER_STATE_SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $__default['default'](this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      this.tip = popperData.instance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $element.data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.6.0';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _extends({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var CLASS_NAME_FADE$3 = 'fade';\n  var CLASS_NAME_SHOW$5 = 'show';\n  var SELECTOR_TITLE = '.popover-header';\n  var SELECTOR_CONTENT = '.popover-body';\n  var Event$1 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Popover = /*#__PURE__*/function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n      $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $__default['default'](this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$1;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = Popover;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.6.0';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n  var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n  var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n  var CLASS_NAME_ACTIVE$2 = 'active';\n  var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n  var SELECTOR_NAV_LINKS = '.nav-link';\n  var SELECTOR_NAV_ITEMS = '.nav-item';\n  var SELECTOR_LIST_ITEMS = '.list-group-item';\n  var SELECTOR_DROPDOWN = '.dropdown';\n  var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n  var METHOD_OFFSET = 'offset';\n  var METHOD_POSITION = 'position';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var ScrollSpy = /*#__PURE__*/function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$8);\n      $__default['default'](this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n        var id = $__default['default'](config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $__default['default'](config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n        $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n        $link.addClass(CLASS_NAME_ACTIVE$2);\n      } else {\n        // Set triggered link as active\n        $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);\n      }\n\n      $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(CLASS_NAME_ACTIVE$2);\n      }).forEach(function (node) {\n        return node.classList.remove(CLASS_NAME_ACTIVE$2);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $__default['default'](this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $__default['default'](scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = ScrollSpy;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.6.0';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$9;\n  var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$9;\n  var EVENT_SHOW$3 = \"show\" + EVENT_KEY$9;\n  var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$9;\n  var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$7;\n  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n  var CLASS_NAME_ACTIVE$3 = 'active';\n  var CLASS_NAME_DISABLED$1 = 'disabled';\n  var CLASS_NAME_FADE$4 = 'fade';\n  var CLASS_NAME_SHOW$6 = 'show';\n  var SELECTOR_DROPDOWN$1 = '.dropdown';\n  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n  var SELECTOR_ACTIVE$2 = '.active';\n  var SELECTOR_ACTIVE_UL = '> li > .active';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tab = /*#__PURE__*/function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;\n        previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {\n        relatedTarget: this._element\n      });\n      var showEvent = $__default['default'].Event(EVENT_SHOW$3, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $__default['default'](previous).trigger(hideEvent);\n      }\n\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {\n          relatedTarget: previous\n        });\n        $__default['default'](previous).trigger(hiddenEvent);\n        $__default['default'](_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);\n        var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(CLASS_NAME_FADE$4)) {\n        element.classList.add(CLASS_NAME_SHOW$6);\n      }\n\n      if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n        var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));\n          $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $__default['default'](this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($__default['default'](this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$9] = Tab._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = Tab;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.6.0';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$a;\n  var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$a;\n  var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$a;\n  var EVENT_SHOW$4 = \"show\" + EVENT_KEY$a;\n  var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$a;\n  var CLASS_NAME_FADE$5 = 'fade';\n  var CLASS_NAME_HIDE = 'hide';\n  var CLASS_NAME_SHOW$7 = 'show';\n  var CLASS_NAME_SHOWING = 'showing';\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"toast\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Toast = /*#__PURE__*/function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$4);\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE$5);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n        _this._element.classList.add(CLASS_NAME_SHOW$7);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN$4);\n\n        if (_this._config.autohide) {\n          _this._timeout = setTimeout(function () {\n            _this.hide();\n          }, _this._config.delay);\n        }\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE);\n\n      Util.reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide() {\n      if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$4);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._close();\n    };\n\n    _proto.dispose = function dispose() {\n      this._clearTimeout();\n\n      if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        this._element.classList.remove(CLASS_NAME_SHOW$7);\n      }\n\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1);\n      $__default['default'].removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this2 = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n        return _this2.hide();\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this3 = this;\n\n      var complete = function complete() {\n        _this3._element.classList.add(CLASS_NAME_HIDE);\n\n        $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4);\n      };\n\n      this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._clearTimeout = function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$a] = Toast._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Toast;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n  exports.Util = Util;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.bundle.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/bootstrap/js/bootstrap.js",
    "content": "/*!\n  * Bootstrap v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n}(this, (function (exports, $, Popper) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n  var EVENT_CLOSE = \"close\" + EVENT_KEY;\n  var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_ALERT = 'alert';\n  var CLASS_NAME_FADE = 'fade';\n  var CLASS_NAME_SHOW = 'show';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Alert = /*#__PURE__*/function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n      $__default['default'](element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n      if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Alert._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Alert;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.6.0';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY$1, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = Button;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.6.0';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var DIRECTION_NEXT = 'next';\n  var DIRECTION_PREV = 'prev';\n  var DIRECTION_LEFT = 'left';\n  var DIRECTION_RIGHT = 'right';\n  var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n  var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n  var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n  var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n  var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n  var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n  var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n  var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n  var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n  var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n  var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n  var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var CLASS_NAME_CAROUSEL = 'carousel';\n  var CLASS_NAME_ACTIVE$1 = 'active';\n  var CLASS_NAME_SLIDE = 'slide';\n  var CLASS_NAME_RIGHT = 'carousel-item-right';\n  var CLASS_NAME_LEFT = 'carousel-item-left';\n  var CLASS_NAME_NEXT = 'carousel-item-next';\n  var CLASS_NAME_PREV = 'carousel-item-prev';\n  var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n  var SELECTOR_ACTIVE$1 = '.active';\n  var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n  var SELECTOR_ITEM = '.carousel-item';\n  var SELECTOR_ITEM_IMG = '.carousel-item img';\n  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n  var SELECTOR_INDICATORS = '.carousel-indicators';\n  var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n  var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Carousel = /*#__PURE__*/function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n\n      if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._updateInterval();\n\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $__default['default'](this._element).one(EVENT_SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'](this._element).off(EVENT_KEY$2);\n      $__default['default'].removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX;\n      this.touchDeltaX = 0; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(EVENT_MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === DIRECTION_NEXT;\n      var isPrevDirection = direction === DIRECTION_PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === DIRECTION_PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n      var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $__default['default'](this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n        $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n        }\n      }\n    };\n\n    _proto._updateInterval = function _updateInterval() {\n      var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n      if (elementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n        this._config.interval = elementInterval;\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval;\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === DIRECTION_NEXT) {\n        directionalClassName = CLASS_NAME_LEFT;\n        orderClassName = CLASS_NAME_NEXT;\n        eventDirectionName = DIRECTION_LEFT;\n      } else {\n        directionalClassName = CLASS_NAME_RIGHT;\n        orderClassName = CLASS_NAME_PREV;\n        eventDirectionName = DIRECTION_RIGHT;\n      }\n\n      if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      this._activeElement = nextElement;\n      var slidEvent = $__default['default'].Event(EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n        $__default['default'](nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $__default['default'](activeElement).addClass(directionalClassName);\n        $__default['default'](nextElement).addClass(directionalClassName);\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n          $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n          $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $__default['default'](_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n        $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n        this._isSliding = false;\n        $__default['default'](this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$2);\n\n        var _config = _extends({}, Default, $__default['default'](this).data());\n\n        if (typeof config === 'object') {\n          _config = _extends({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $__default['default'](this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $__default['default'](selector)[0];\n\n      if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n        return;\n      }\n\n      var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($__default['default'](target), config);\n\n      if (slideIndex) {\n        $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n    var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $__default['default'](carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.6.0';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n  var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n  var CLASS_NAME_SHOW$1 = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$3);\n\n        var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.6.0';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n  var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n  var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n  var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n  var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n  var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW$2 = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper__default['default'] === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$4);\n      $__default['default'](this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.6.0';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n  var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n  var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n  var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n  var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n  var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n  var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n  var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n  var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n  var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n  var CLASS_NAME_BACKDROP = 'modal-backdrop';\n  var CLASS_NAME_OPEN = 'modal-open';\n  var CLASS_NAME_FADE$1 = 'fade';\n  var CLASS_NAME_SHOW$3 = 'show';\n  var CLASS_NAME_STATIC = 'modal-static';\n  var SELECTOR_DIALOG = '.modal-dialog';\n  var SELECTOR_MODAL_BODY = '.modal-body';\n  var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n  var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n  var SELECTOR_STICKY_CONTENT = '.sticky-top';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(SELECTOR_DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n        relatedTarget: relatedTarget\n      });\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n        $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n          if ($__default['default'](event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n      $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $__default['default'](htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `EVENT_CLICK_DATA_API` event that should remain\n       */\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'].removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n      var _this3 = this;\n\n      var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n      $__default['default'](this._element).trigger(hideEventPrevented);\n\n      if (hideEventPrevented.isDefaultPrevented()) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n      $__default['default'](this._element).off(Util.TRANSITION_END);\n      $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n        _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n        if (!isModalOverflowing) {\n          $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n            _this3._element.style.overflowY = '';\n          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n        }\n      }).emulateTransitionEnd(modalTransitionDuration);\n\n      this._element.focus();\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this4 = this;\n\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n        modalBody.scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this4._config.focus) {\n          _this4._element.focus();\n        }\n\n        _this4._isTransitioning = false;\n        $__default['default'](_this4._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this5 = this;\n\n      $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n      .on(EVENT_FOCUSIN, function (event) {\n        if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n          _this5._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this6.hide();\n          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            _this6._triggerBackdropTransition();\n          }\n        });\n      } else if (!this._isShown) {\n        $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this7 = this;\n\n      if (this._isShown) {\n        $__default['default'](window).on(EVENT_RESIZE, function (event) {\n          return _this7.handleUpdate(event);\n        });\n      } else {\n        $__default['default'](window).off(EVENT_RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this8 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n        _this8._resetAdjustments();\n\n        _this8._resetScrollbar();\n\n        $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $__default['default'](this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this9 = this;\n\n      var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = CLASS_NAME_BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $__default['default'](this._backdrop).appendTo(document.body);\n        $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n          if (_this9._ignoreBackdropClick) {\n            _this9._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this9._config.backdrop === 'static') {\n            _this9._triggerBackdropTransition();\n          } else {\n            _this9.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n        var callbackRemove = function callbackRemove() {\n          _this9._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this10 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n        $__default['default'](fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $__default['default'](element).css('padding-right');\n          $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $__default['default'](stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $__default['default'](element).css('margin-right');\n          $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $__default['default'](document.body).css('padding-right');\n        $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n      $__default['default'](fixedContent).each(function (index, element) {\n        var padding = $__default['default'](element).data('padding-right');\n        $__default['default'](element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n      $__default['default'](elements).each(function (index, element) {\n        var margin = $__default['default'](element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $__default['default'](document.body).data('padding-right');\n      $__default['default'](document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n    var _this11 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(EVENT_HIDDEN$2, function () {\n        if ($__default['default'](_this11).is(':visible')) {\n          _this11.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($__default['default'](target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = Modal;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n  };\n  /**\n   * A pattern that recognizes a commonly useful subset of URLs that are safe.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, len = regExp.length; i < len; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.6.0';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    customClass: '(string|function)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object',\n    popperConfig: '(null|object)'\n  };\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    customClass: '',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist,\n    popperConfig: null\n  };\n  var HOVER_STATE_SHOW = 'show';\n  var HOVER_STATE_OUT = 'out';\n  var Event = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var CLASS_NAME_FADE$2 = 'fade';\n  var CLASS_NAME_SHOW$4 = 'show';\n  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n  var SELECTOR_ARROW = '.arrow';\n  var TRIGGER_HOVER = 'hover';\n  var TRIGGER_FOCUS = 'focus';\n  var TRIGGER_CLICK = 'click';\n  var TRIGGER_MANUAL = 'manual';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tooltip = /*#__PURE__*/function () {\n    function Tooltip(element, config) {\n      if (typeof Popper__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $__default['default'](event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $__default['default'](event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n      $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n      $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n      if (this.tip) {\n        $__default['default'](this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($__default['default'](this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $__default['default'](this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $__default['default'](tip).appendTo(container);\n        }\n\n        $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));\n        $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n        $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HOVER_STATE_OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $__default['default'](this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n\n      if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$__default['default'](content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($__default['default'](content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getPopperConfig = function _getPopperConfig(attachment) {\n      var _this3 = this;\n\n      var defaultBsConfig = {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: SELECTOR_ARROW\n          },\n          preventOverflow: {\n            boundariesElement: this.config.boundary\n          }\n        },\n        onCreate: function onCreate(data) {\n          if (data.originalPlacement !== data.placement) {\n            _this3._handlePopperPlacementChange(data);\n          }\n        },\n        onUpdate: function onUpdate(data) {\n          return _this3._handlePopperPlacementChange(data);\n        }\n      };\n      return _extends({}, defaultBsConfig, this.config.popperConfig);\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this4 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $__default['default'](this.config.container);\n      }\n\n      return $__default['default'](document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this5 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n            return _this5.toggle(event);\n          });\n        } else if (trigger !== TRIGGER_MANUAL) {\n          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n          $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n            return _this5._enter(event);\n          }).on(eventOut, _this5.config.selector, function (event) {\n            return _this5._leave(event);\n          });\n        }\n      });\n\n      this._hideModalHandler = function () {\n        if (_this5.element) {\n          _this5.hide();\n        }\n      };\n\n      $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n      if (this.config.selector) {\n        this.config = _extends({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n      }\n\n      if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n        context._hoverState = HOVER_STATE_SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $__default['default'](this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      this.tip = popperData.instance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $element.data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.6.0';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _extends({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var CLASS_NAME_FADE$3 = 'fade';\n  var CLASS_NAME_SHOW$5 = 'show';\n  var SELECTOR_TITLE = '.popover-header';\n  var SELECTOR_CONTENT = '.popover-body';\n  var Event$1 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Popover = /*#__PURE__*/function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n      $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $__default['default'](this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$1;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = Popover;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.6.0';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n  var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n  var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n  var CLASS_NAME_ACTIVE$2 = 'active';\n  var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n  var SELECTOR_NAV_LINKS = '.nav-link';\n  var SELECTOR_NAV_ITEMS = '.nav-item';\n  var SELECTOR_LIST_ITEMS = '.list-group-item';\n  var SELECTOR_DROPDOWN = '.dropdown';\n  var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n  var METHOD_OFFSET = 'offset';\n  var METHOD_POSITION = 'position';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var ScrollSpy = /*#__PURE__*/function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$8);\n      $__default['default'](this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n        var id = $__default['default'](config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $__default['default'](config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n        $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n        $link.addClass(CLASS_NAME_ACTIVE$2);\n      } else {\n        // Set triggered link as active\n        $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);\n      }\n\n      $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(CLASS_NAME_ACTIVE$2);\n      }).forEach(function (node) {\n        return node.classList.remove(CLASS_NAME_ACTIVE$2);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $__default['default'](this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $__default['default'](scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = ScrollSpy;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.6.0';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$9;\n  var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$9;\n  var EVENT_SHOW$3 = \"show\" + EVENT_KEY$9;\n  var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$9;\n  var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$7;\n  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n  var CLASS_NAME_ACTIVE$3 = 'active';\n  var CLASS_NAME_DISABLED$1 = 'disabled';\n  var CLASS_NAME_FADE$4 = 'fade';\n  var CLASS_NAME_SHOW$6 = 'show';\n  var SELECTOR_DROPDOWN$1 = '.dropdown';\n  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n  var SELECTOR_ACTIVE$2 = '.active';\n  var SELECTOR_ACTIVE_UL = '> li > .active';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tab = /*#__PURE__*/function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;\n        previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {\n        relatedTarget: this._element\n      });\n      var showEvent = $__default['default'].Event(EVENT_SHOW$3, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $__default['default'](previous).trigger(hideEvent);\n      }\n\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {\n          relatedTarget: previous\n        });\n        $__default['default'](previous).trigger(hiddenEvent);\n        $__default['default'](_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);\n        var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(CLASS_NAME_FADE$4)) {\n        element.classList.add(CLASS_NAME_SHOW$6);\n      }\n\n      if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n        var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));\n          $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $__default['default'](this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($__default['default'](this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$9] = Tab._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = Tab;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.6.0';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$a;\n  var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$a;\n  var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$a;\n  var EVENT_SHOW$4 = \"show\" + EVENT_KEY$a;\n  var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$a;\n  var CLASS_NAME_FADE$5 = 'fade';\n  var CLASS_NAME_HIDE = 'hide';\n  var CLASS_NAME_SHOW$7 = 'show';\n  var CLASS_NAME_SHOWING = 'showing';\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"toast\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Toast = /*#__PURE__*/function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$4);\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE$5);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n        _this._element.classList.add(CLASS_NAME_SHOW$7);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN$4);\n\n        if (_this._config.autohide) {\n          _this._timeout = setTimeout(function () {\n            _this.hide();\n          }, _this._config.delay);\n        }\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE);\n\n      Util.reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide() {\n      if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$4);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._close();\n    };\n\n    _proto.dispose = function dispose() {\n      this._clearTimeout();\n\n      if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        this._element.classList.remove(CLASS_NAME_SHOW$7);\n      }\n\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1);\n      $__default['default'].removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this2 = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n        return _this2.hide();\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this3 = this;\n\n      var complete = function complete() {\n        _this3._element.classList.add(CLASS_NAME_HIDE);\n\n        $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4);\n      };\n\n      this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._clearTimeout = function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$a] = Toast._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Toast;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n  exports.Util = Util;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/all.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/brands.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/fontawesome.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/regular.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/solid.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/svg-with-js.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nsvg:not(:root).svg-inline--fa {\n  overflow: visible; }\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -.125em; }\n  .svg-inline--fa.fa-lg {\n    vertical-align: -.225em; }\n  .svg-inline--fa.fa-w-1 {\n    width: 0.0625em; }\n  .svg-inline--fa.fa-w-2 {\n    width: 0.125em; }\n  .svg-inline--fa.fa-w-3 {\n    width: 0.1875em; }\n  .svg-inline--fa.fa-w-4 {\n    width: 0.25em; }\n  .svg-inline--fa.fa-w-5 {\n    width: 0.3125em; }\n  .svg-inline--fa.fa-w-6 {\n    width: 0.375em; }\n  .svg-inline--fa.fa-w-7 {\n    width: 0.4375em; }\n  .svg-inline--fa.fa-w-8 {\n    width: 0.5em; }\n  .svg-inline--fa.fa-w-9 {\n    width: 0.5625em; }\n  .svg-inline--fa.fa-w-10 {\n    width: 0.625em; }\n  .svg-inline--fa.fa-w-11 {\n    width: 0.6875em; }\n  .svg-inline--fa.fa-w-12 {\n    width: 0.75em; }\n  .svg-inline--fa.fa-w-13 {\n    width: 0.8125em; }\n  .svg-inline--fa.fa-w-14 {\n    width: 0.875em; }\n  .svg-inline--fa.fa-w-15 {\n    width: 0.9375em; }\n  .svg-inline--fa.fa-w-16 {\n    width: 1em; }\n  .svg-inline--fa.fa-w-17 {\n    width: 1.0625em; }\n  .svg-inline--fa.fa-w-18 {\n    width: 1.125em; }\n  .svg-inline--fa.fa-w-19 {\n    width: 1.1875em; }\n  .svg-inline--fa.fa-w-20 {\n    width: 1.25em; }\n  .svg-inline--fa.fa-pull-left {\n    margin-right: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-pull-right {\n    margin-left: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-border {\n    height: 1.5em; }\n  .svg-inline--fa.fa-li {\n    width: 2em; }\n  .svg-inline--fa.fa-fw {\n    width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -.125em;\n  width: 1em; }\n  .fa-layers svg.svg-inline--fa {\n    -webkit-transform-origin: center center;\n            transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n  display: inline-block;\n  position: absolute;\n  text-align: center; }\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center; }\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  line-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: .25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left; }\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-top-left {\n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em; }\n\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em; }\n\n.fa-inverse {\n  color: #fff; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black; }\n\n.fad.fa-inverse {\n  color: #fff; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/fontawesome-free/css/v4-shims.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa.fa-glass:before {\n  content: \"\\f000\"; }\n\n.fa.fa-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-o:before {\n  content: \"\\f005\"; }\n\n.fa.fa-remove:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-close:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-gear:before {\n  content: \"\\f013\"; }\n\n.fa.fa-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-trash-o:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-o:before {\n  content: \"\\f15b\"; }\n\n.fa.fa-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-clock-o:before {\n  content: \"\\f017\"; }\n\n.fa.fa-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-down:before {\n  content: \"\\f358\"; }\n\n.fa.fa-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-up:before {\n  content: \"\\f35b\"; }\n\n.fa.fa-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-play-circle-o:before {\n  content: \"\\f144\"; }\n\n.fa.fa-repeat:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-rotate-right:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-refresh:before {\n  content: \"\\f021\"; }\n\n.fa.fa-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dedent:before {\n  content: \"\\f03b\"; }\n\n.fa.fa-video-camera:before {\n  content: \"\\f03d\"; }\n\n.fa.fa-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-picture-o:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-photo:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-pencil:before {\n  content: \"\\f303\"; }\n\n.fa.fa-map-marker:before {\n  content: \"\\f3c5\"; }\n\n.fa.fa-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pencil-square-o:before {\n  content: \"\\f044\"; }\n\n.fa.fa-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-share-square-o:before {\n  content: \"\\f14d\"; }\n\n.fa.fa-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-square-o:before {\n  content: \"\\f14a\"; }\n\n.fa.fa-arrows:before {\n  content: \"\\f0b2\"; }\n\n.fa.fa-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-circle-o:before {\n  content: \"\\f057\"; }\n\n.fa.fa-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-circle-o:before {\n  content: \"\\f058\"; }\n\n.fa.fa-mail-forward:before {\n  content: \"\\f064\"; }\n\n.fa.fa-expand:before {\n  content: \"\\f424\"; }\n\n.fa.fa-compress:before {\n  content: \"\\f422\"; }\n\n.fa.fa-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-warning:before {\n  content: \"\\f071\"; }\n\n.fa.fa-calendar:before {\n  content: \"\\f073\"; }\n\n.fa.fa-arrows-v:before {\n  content: \"\\f338\"; }\n\n.fa.fa-arrows-h:before {\n  content: \"\\f337\"; }\n\n.fa.fa-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart:before {\n  content: \"\\f080\"; }\n\n.fa.fa-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart-o:before {\n  content: \"\\f080\"; }\n\n.fa.fa-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gears:before {\n  content: \"\\f085\"; }\n\n.fa.fa-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-up:before {\n  content: \"\\f164\"; }\n\n.fa.fa-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-down:before {\n  content: \"\\f165\"; }\n\n.fa.fa-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-heart-o:before {\n  content: \"\\f004\"; }\n\n.fa.fa-sign-out:before {\n  content: \"\\f2f5\"; }\n\n.fa.fa-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin-square:before {\n  content: \"\\f08c\"; }\n\n.fa.fa-thumb-tack:before {\n  content: \"\\f08d\"; }\n\n.fa.fa-external-link:before {\n  content: \"\\f35d\"; }\n\n.fa.fa-sign-in:before {\n  content: \"\\f2f6\"; }\n\n.fa.fa-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lemon-o:before {\n  content: \"\\f094\"; }\n\n.fa.fa-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-square-o:before {\n  content: \"\\f0c8\"; }\n\n.fa.fa-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bookmark-o:before {\n  content: \"\\f02e\"; }\n\n.fa.fa-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-feed:before {\n  content: \"\\f09e\"; }\n\n.fa.fa-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hdd-o:before {\n  content: \"\\f0a0\"; }\n\n.fa.fa-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-right:before {\n  content: \"\\f0a4\"; }\n\n.fa.fa-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-left:before {\n  content: \"\\f0a5\"; }\n\n.fa.fa-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-up:before {\n  content: \"\\f0a6\"; }\n\n.fa.fa-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-down:before {\n  content: \"\\f0a7\"; }\n\n.fa.fa-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa.fa-group:before {\n  content: \"\\f0c0\"; }\n\n.fa.fa-chain:before {\n  content: \"\\f0c1\"; }\n\n.fa.fa-scissors:before {\n  content: \"\\f0c4\"; }\n\n.fa.fa-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-files-o:before {\n  content: \"\\f0c5\"; }\n\n.fa.fa-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-floppy-o:before {\n  content: \"\\f0c7\"; }\n\n.fa.fa-navicon:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-reorder:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus:before {\n  content: \"\\f0d5\"; }\n\n.fa.fa-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-money:before {\n  content: \"\\f3d1\"; }\n\n.fa.fa-unsorted:before {\n  content: \"\\f0dc\"; }\n\n.fa.fa-sort-desc:before {\n  content: \"\\f0dd\"; }\n\n.fa.fa-sort-asc:before {\n  content: \"\\f0de\"; }\n\n.fa.fa-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin:before {\n  content: \"\\f0e1\"; }\n\n.fa.fa-rotate-left:before {\n  content: \"\\f0e2\"; }\n\n.fa.fa-legal:before {\n  content: \"\\f0e3\"; }\n\n.fa.fa-tachometer:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-dashboard:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comment-o:before {\n  content: \"\\f075\"; }\n\n.fa.fa-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comments-o:before {\n  content: \"\\f086\"; }\n\n.fa.fa-flash:before {\n  content: \"\\f0e7\"; }\n\n.fa.fa-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste:before {\n  content: \"\\f328\"; }\n\n.fa.fa-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lightbulb-o:before {\n  content: \"\\f0eb\"; }\n\n.fa.fa-exchange:before {\n  content: \"\\f362\"; }\n\n.fa.fa-cloud-download:before {\n  content: \"\\f381\"; }\n\n.fa.fa-cloud-upload:before {\n  content: \"\\f382\"; }\n\n.fa.fa-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-o:before {\n  content: \"\\f0f3\"; }\n\n.fa.fa-cutlery:before {\n  content: \"\\f2e7\"; }\n\n.fa.fa-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-text-o:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-building-o:before {\n  content: \"\\f1ad\"; }\n\n.fa.fa-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hospital-o:before {\n  content: \"\\f0f8\"; }\n\n.fa.fa-tablet:before {\n  content: \"\\f3fa\"; }\n\n.fa.fa-mobile:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-mobile-phone:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-o:before {\n  content: \"\\f111\"; }\n\n.fa.fa-mail-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa.fa-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-o:before {\n  content: \"\\f07b\"; }\n\n.fa.fa-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-open-o:before {\n  content: \"\\f07c\"; }\n\n.fa.fa-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-smile-o:before {\n  content: \"\\f118\"; }\n\n.fa.fa-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-frown-o:before {\n  content: \"\\f119\"; }\n\n.fa.fa-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-meh-o:before {\n  content: \"\\f11a\"; }\n\n.fa.fa-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-keyboard-o:before {\n  content: \"\\f11c\"; }\n\n.fa.fa-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-flag-o:before {\n  content: \"\\f024\"; }\n\n.fa.fa-mail-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa.fa-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-o:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-empty:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-full:before {\n  content: \"\\f089\"; }\n\n.fa.fa-code-fork:before {\n  content: \"\\f126\"; }\n\n.fa.fa-chain-broken:before {\n  content: \"\\f127\"; }\n\n.fa.fa-shield:before {\n  content: \"\\f3ed\"; }\n\n.fa.fa-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-o:before {\n  content: \"\\f133\"; }\n\n.fa.fa-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ticket:before {\n  content: \"\\f3ff\"; }\n\n.fa.fa-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-minus-square-o:before {\n  content: \"\\f146\"; }\n\n.fa.fa-level-up:before {\n  content: \"\\f3bf\"; }\n\n.fa.fa-level-down:before {\n  content: \"\\f3be\"; }\n\n.fa.fa-pencil-square:before {\n  content: \"\\f14b\"; }\n\n.fa.fa-external-link-square:before {\n  content: \"\\f360\"; }\n\n.fa.fa-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-eur:before {\n  content: \"\\f153\"; }\n\n.fa.fa-euro:before {\n  content: \"\\f153\"; }\n\n.fa.fa-gbp:before {\n  content: \"\\f154\"; }\n\n.fa.fa-usd:before {\n  content: \"\\f155\"; }\n\n.fa.fa-dollar:before {\n  content: \"\\f155\"; }\n\n.fa.fa-inr:before {\n  content: \"\\f156\"; }\n\n.fa.fa-rupee:before {\n  content: \"\\f156\"; }\n\n.fa.fa-jpy:before {\n  content: \"\\f157\"; }\n\n.fa.fa-cny:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rmb:before {\n  content: \"\\f157\"; }\n\n.fa.fa-yen:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rub:before {\n  content: \"\\f158\"; }\n\n.fa.fa-ruble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-rouble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-krw:before {\n  content: \"\\f159\"; }\n\n.fa.fa-won:before {\n  content: \"\\f159\"; }\n\n.fa.fa-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin:before {\n  content: \"\\f15a\"; }\n\n.fa.fa-file-text:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-sort-alpha-asc:before {\n  content: \"\\f15d\"; }\n\n.fa.fa-sort-alpha-desc:before {\n  content: \"\\f881\"; }\n\n.fa.fa-sort-amount-asc:before {\n  content: \"\\f160\"; }\n\n.fa.fa-sort-amount-desc:before {\n  content: \"\\f884\"; }\n\n.fa.fa-sort-numeric-asc:before {\n  content: \"\\f162\"; }\n\n.fa.fa-sort-numeric-desc:before {\n  content: \"\\f886\"; }\n\n.fa.fa-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play:before {\n  content: \"\\f167\"; }\n\n.fa.fa-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square:before {\n  content: \"\\f171\"; }\n\n.fa.fa-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-long-arrow-down:before {\n  content: \"\\f309\"; }\n\n.fa.fa-long-arrow-up:before {\n  content: \"\\f30c\"; }\n\n.fa.fa-long-arrow-left:before {\n  content: \"\\f30a\"; }\n\n.fa.fa-long-arrow-right:before {\n  content: \"\\f30b\"; }\n\n.fa.fa-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip:before {\n  content: \"\\f184\"; }\n\n.fa.fa-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sun-o:before {\n  content: \"\\f185\"; }\n\n.fa.fa-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-moon-o:before {\n  content: \"\\f186\"; }\n\n.fa.fa-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right:before {\n  content: \"\\f35a\"; }\n\n.fa.fa-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-left:before {\n  content: \"\\f359\"; }\n\n.fa.fa-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dot-circle-o:before {\n  content: \"\\f192\"; }\n\n.fa.fa-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-try:before {\n  content: \"\\f195\"; }\n\n.fa.fa-turkish-lira:before {\n  content: \"\\f195\"; }\n\n.fa.fa-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-plus-square-o:before {\n  content: \"\\f0fe\"; }\n\n.fa.fa-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-institution:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-bank:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-mortar-board:before {\n  content: \"\\f19d\"; }\n\n.fa.fa-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa.fa-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-automobile:before {\n  content: \"\\f1b9\"; }\n\n.fa.fa-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-o:before {\n  content: \"\\f0e0\"; }\n\n.fa.fa-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o:before {\n  content: \"\\f1c1\"; }\n\n.fa.fa-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-word-o:before {\n  content: \"\\f1c2\"; }\n\n.fa.fa-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-excel-o:before {\n  content: \"\\f1c3\"; }\n\n.fa.fa-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\"; }\n\n.fa.fa-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-image-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-photo-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-picture-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-archive-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-zip-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-audio-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-sound-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-video-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-movie-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-code-o:before {\n  content: \"\\f1c9\"; }\n\n.fa.fa-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-buoy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-saver:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-support:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-circle-o-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa.fa-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-resistance:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge:before {\n  content: \"\\f1d1\"; }\n\n.fa.fa-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat:before {\n  content: \"\\f1d7\"; }\n\n.fa.fa-send:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paper-plane-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-send-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-thin:before {\n  content: \"\\f111\"; }\n\n.fa.fa-header:before {\n  content: \"\\f1dc\"; }\n\n.fa.fa-sliders:before {\n  content: \"\\f1de\"; }\n\n.fa.fa-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-futbol-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-soccer-ball-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o:before {\n  content: \"\\f1ea\"; }\n\n.fa.fa-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o:before {\n  content: \"\\f1f6\"; }\n\n.fa.fa-trash:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eyedropper:before {\n  content: \"\\f1fb\"; }\n\n.fa.fa-area-chart:before {\n  content: \"\\f1fe\"; }\n\n.fa.fa-pie-chart:before {\n  content: \"\\f200\"; }\n\n.fa.fa-line-chart:before {\n  content: \"\\f201\"; }\n\n.fa.fa-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-cc:before {\n  content: \"\\f20a\"; }\n\n.fa.fa-ils:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-shekel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-sheqel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-meanpath:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-diamond:before {\n  content: \"\\f3a5\"; }\n\n.fa.fa-intersex:before {\n  content: \"\\f224\"; }\n\n.fa.fa-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-official:before {\n  content: \"\\f09a\"; }\n\n.fa.fa-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hotel:before {\n  content: \"\\f236\"; }\n\n.fa.fa-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc:before {\n  content: \"\\f23b\"; }\n\n.fa.fa-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-battery-4:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery-3:before {\n  content: \"\\f241\"; }\n\n.fa.fa-battery-2:before {\n  content: \"\\f242\"; }\n\n.fa.fa-battery-1:before {\n  content: \"\\f243\"; }\n\n.fa.fa-battery-0:before {\n  content: \"\\f244\"; }\n\n.fa.fa-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o:before {\n  content: \"\\f249\"; }\n\n.fa.fa-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o:before {\n  content: \"\\f254\"; }\n\n.fa.fa-hourglass-1:before {\n  content: \"\\f251\"; }\n\n.fa.fa-hourglass-2:before {\n  content: \"\\f252\"; }\n\n.fa.fa-hourglass-3:before {\n  content: \"\\f253\"; }\n\n.fa.fa-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-rock-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-grab-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-paper-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-stop-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-scissors-o:before {\n  content: \"\\f257\"; }\n\n.fa.fa-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-lizard-o:before {\n  content: \"\\f258\"; }\n\n.fa.fa-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-spock-o:before {\n  content: \"\\f259\"; }\n\n.fa.fa-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-pointer-o:before {\n  content: \"\\f25a\"; }\n\n.fa.fa-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-peace-o:before {\n  content: \"\\f25b\"; }\n\n.fa.fa-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-television:before {\n  content: \"\\f26c\"; }\n\n.fa.fa-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o:before {\n  content: \"\\f271\"; }\n\n.fa.fa-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-minus-o:before {\n  content: \"\\f272\"; }\n\n.fa.fa-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-times-o:before {\n  content: \"\\f273\"; }\n\n.fa.fa-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-check-o:before {\n  content: \"\\f274\"; }\n\n.fa.fa-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-map-o:before {\n  content: \"\\f279\"; }\n\n.fa.fa-commenting:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-commenting-o:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo:before {\n  content: \"\\f27d\"; }\n\n.fa.fa-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card-alt:before {\n  content: \"\\f09d\"; }\n\n.fa.fa-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o:before {\n  content: \"\\f28b\"; }\n\n.fa.fa-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-stop-circle-o:before {\n  content: \"\\f28d\"; }\n\n.fa.fa-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt:before {\n  content: \"\\f368\"; }\n\n.fa.fa-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-question-circle-o:before {\n  content: \"\\f059\"; }\n\n.fa.fa-volume-control-phone:before {\n  content: \"\\f2a0\"; }\n\n.fa.fa-asl-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa.fa-deafness:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-hard-of-hearing:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-signing:before {\n  content: \"\\f2a7\"; }\n\n.fa.fa-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-circle:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-handshake-o:before {\n  content: \"\\f2b5\"; }\n\n.fa.fa-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-open-o:before {\n  content: \"\\f2b6\"; }\n\n.fa.fa-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-book-o:before {\n  content: \"\\f2b9\"; }\n\n.fa.fa-vcard:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-card-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-vcard-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-circle-o:before {\n  content: \"\\f2bd\"; }\n\n.fa.fa-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-o:before {\n  content: \"\\f007\"; }\n\n.fa.fa-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-id-card-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-thermometer-4:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer-3:before {\n  content: \"\\f2c8\"; }\n\n.fa.fa-thermometer-2:before {\n  content: \"\\f2c9\"; }\n\n.fa.fa-thermometer-1:before {\n  content: \"\\f2ca\"; }\n\n.fa.fa-thermometer-0:before {\n  content: \"\\f2cb\"; }\n\n.fa.fa-bathtub:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-s15:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle:before {\n  content: \"\\f410\"; }\n\n.fa.fa-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-close-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast:before {\n  content: \"\\f2da\"; }\n\n.fa.fa-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-snowflake-o:before {\n  content: \"\\f2dc\"; }\n\n.fa.fa-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cab:before {\n  content: \"\\f1ba\"; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/jquery/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/jquery/jquery.slim.js",
    "content": "/*!\n * jQuery JavaScript Library v3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/overlayScrollbars/css/OverlayScrollbars.css",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n/*\nOVERLAY SCROLLBARS CORE:\n*/\n\nhtml.os-html,\nhtml.os-html > .os-host {\n    display: block;\n    overflow: hidden;\n    box-sizing: border-box;\n    height: 100% !important;\n    width: 100% !important;\n    min-width: 100% !important;\n    min-height: 100% !important;\n    margin: 0 !important;\n    position: absolute !important; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n}\nhtml.os-html > .os-host > .os-padding {\n    position: absolute; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n}\nbody.os-dragging,\nbody.os-dragging * {\n    cursor: default;\n}\n.os-host,\n.os-host-textarea {\n    position: relative;\n    overflow: visible !important;\n    -webkit-box-orient: vertical;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: column;\n            flex-direction: column;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start;\n    -ms-flex-line-pack: start;\n        align-content: flex-start;\n    -webkit-box-align: start;\n        -ms-flex-align: start;\n                -ms-grid-row-align: flex-start;\n            align-items: flex-start;\n}\n.os-host-flexbox {\n    overflow: hidden !important;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n}\n.os-host-flexbox > .os-size-auto-observer {\n    height: inherit !important;\n}\n.os-host-flexbox > .os-content-glue {\n    -webkit-box-flex: 1;\n        -ms-flex-positive: 1;\n            flex-grow: 1;\n    -ms-flex-negative: 0;\n        flex-shrink: 0;\n}\n.os-host-flexbox > .os-size-auto-observer,\n.os-host-flexbox > .os-content-glue {\n    min-height: 0;\n    min-width: 0;\n    -webkit-box-flex: 0;\n        -ms-flex-positive: 0;\n            flex-grow: 0;\n    -ms-flex-negative: 1;\n        flex-shrink: 1;\n    -ms-flex-preferred-size: auto;\n        flex-basis: auto;\n}\n#os-dummy-scrollbar-size {\n    position: fixed;\n    opacity: 0;\n    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';\n    visibility: hidden;\n    overflow: scroll;\n    height: 500px;\n    width: 500px;\n}\n#os-dummy-scrollbar-size > div {\n    width: 200%;\n    height: 200%; \n    margin: 10px 0;\n}\n/* fix restricted measuring */\n#os-dummy-scrollbar-size:before,\n#os-dummy-scrollbar-size:after,\n.os-content:before,\n.os-content:after {\n    content: '';\n    display: table;\n    width: 0.01px;\n    height: 0.01px;\n    line-height: 0;\n    font-size: 0;\n    flex-grow: 0;\n    flex-shrink: 0;\n    visibility: hidden;\n}\n#os-dummy-scrollbar-size,\n.os-viewport {\n    -ms-overflow-style: scrollbar !important;\n}\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size,\n.os-viewport-native-scrollbars-invisible.os-viewport {\n    scrollbar-width: none !important;\n}\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar,\n.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar,\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar-corner,\n.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar-corner {\n    display: none !important;\n    width: 0px !important;\n    height: 0px !important;\n    visibility: hidden !important;\n    background: transparent !important;\n}\n.os-content-glue {\n    box-sizing: inherit;\n    max-height: 100%;\n    max-width: 100%;\n    width: 100%;\n    pointer-events: none;\n}\n.os-padding {\n    box-sizing: inherit;\n    direction: inherit;\n    position: absolute;\n    overflow: visible;\n    padding: 0;\n    margin: 0;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    width: auto !important;\n    height: auto !important;\n\tz-index: 0;\n}\n.os-host-overflow > .os-padding {\n    overflow: hidden;\n}\n.os-viewport {\n    direction: inherit !important;\n    box-sizing: inherit !important;\n    resize: none !important;\n    outline: none !important;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    padding: 0;\n    margin: 0;\n    -webkit-overflow-scrolling: touch;\n}\n.os-content-arrange {\n    position: absolute;\n    z-index: -1;\n    min-height: 1px;\n    min-width: 1px;\n    pointer-events: none;\n}\n.os-content {\n    direction: inherit;\n    box-sizing: border-box !important;\n    position: relative;\n    display: block;\n    height: 100%;\n    width: 100%;\n    height: 100%;\n    width: 100%;\n    visibility: visible;\n}\n.os-content > .os-textarea {\n    box-sizing: border-box !important;\n    direction: inherit !important;\n    background: transparent !important;\n    outline: 0px none transparent !important;\n    overflow: hidden !important;\n    position: absolute !important;\n    display: block !important;\n    top: 0 !important;\n    left: 0 !important;\n    margin: 0 !important;\n    border-radius: 0px !important;\n    float: none !important;\n    -webkit-filter: none !important;\n            filter: none !important;\n    border: none !important;\n    resize: none !important;\n    -webkit-transform: none !important;\n            transform: none !important;\n    max-width: none !important;\n    max-height: none !important;\n    box-shadow: none !important;\n    -webkit-perspective: none !important;\n            perspective: none !important;\n    opacity: 1 !important;\n    z-index: 1 !important;\n    clip: auto !important;\n    vertical-align: baseline !important;\n    padding: 0px;\n}\n.os-host-rtl > .os-padding > .os-viewport > .os-content > .os-textarea {\n    right: 0 !important;\n}\n.os-content > .os-textarea-cover {\n    z-index: -1;\n    pointer-events: none;\n}\n.os-content > .os-textarea[wrap='off'] {\n    white-space: pre !important;\n    margin: 0px !important;\n}\n.os-text-inherit {\n    font-family: inherit;\n    font-size: inherit;\n    font-weight: inherit;\n    font-style: inherit;\n    font-variant: inherit;\n    text-transform: inherit;\n    text-decoration: inherit;\n    text-indent: inherit;\n    text-align: inherit;\n    text-shadow: inherit;\n    text-overflow: inherit;\n    letter-spacing: inherit;\n    word-spacing: inherit;\n    line-height: inherit;\n    unicode-bidi: inherit;\n    direction: inherit;\n    color: inherit;\n    cursor: text;\n}\n.os-resize-observer,\n.os-resize-observer-host {\n    box-sizing: inherit;\n    display: block;\n    visibility: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    overflow: hidden;\n    pointer-events: none;\n    z-index: -1;\n}\n.os-resize-observer-host {\n    padding: inherit;\n    border: inherit;\n    border-color: transparent;\n    border-style: solid;\n    box-sizing: border-box;\n}\n.os-resize-observer-host.observed {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n}\n.os-resize-observer-host > .os-resize-observer,\n.os-resize-observer-host.observed > .os-resize-observer {\n    height: 200%;\n    width: 200%;\n    padding: inherit;\n    border: inherit;\n    margin: 0;\n    display: block;\n    box-sizing: content-box;\n}\n.os-resize-observer-host.observed > .os-resize-observer,\n.os-resize-observer-host.observed > .os-resize-observer:before {\n    display: flex;\n    position: relative;\n    flex-grow: 1;\n    flex-shrink: 0;\n    flex-basis: auto;\n    box-sizing: border-box;\n}\n.os-resize-observer-host.observed > .os-resize-observer:before {\n    content: '';\n    box-sizing: content-box;\n    padding: inherit;\n    border: inherit;\n    margin: 0;\n}\n.os-size-auto-observer {\n    box-sizing: inherit !important;\n    height: 100%;\n    width: inherit;\n    max-width: 1px;\n    position: relative;\n    float: left;\n    max-height: 1px;\n    overflow: hidden;\n    z-index: -1;\n    padding: 0;\n    margin: 0;\n    pointer-events: none;\n    -webkit-box-flex: inherit;\n        -ms-flex-positive: inherit;\n            flex-grow: inherit;\n    -ms-flex-negative: 0;\n        flex-shrink: 0;\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n}\n.os-size-auto-observer > .os-resize-observer {\n    width: 1000%;\n    height: 1000%;\n    min-height: 1px;\n    min-width: 1px;\n}\n.os-resize-observer-item {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    overflow: hidden;\n    z-index: -1;\n    opacity: 0;\n    direction: ltr !important;\n    -webkit-box-flex: 0 !important;\n    -ms-flex: none !important;\n    flex: none !important;\n}\n.os-resize-observer-item-final {\n    position: absolute;\n    left: 0;\n    top: 0;\n    -webkit-transition: none !important;\n    transition: none !important;\n    -webkit-box-flex: 0 !important;\n    -ms-flex: none !important;\n    flex: none !important;\n}\n.os-resize-observer {\n    -webkit-animation-duration: 0.001s;\n    animation-duration: 0.001s;\n    -webkit-animation-name: os-resize-observer-dummy-animation;\n    animation-name: os-resize-observer-dummy-animation;\n}\nobject.os-resize-observer {\n    box-sizing: border-box !important;\n}\n@-webkit-keyframes os-resize-observer-dummy-animation {\n    from {\n        z-index: 0;\n    }\n    to {\n        z-index: -1;\n    }\n}\n@keyframes os-resize-observer-dummy-animation {\n    from {\n        z-index: 0;\n    }\n    to {\n        z-index: -1;\n    }\n}\n\n/*\nCUSTOM SCROLLBARS AND CORNER CORE:\n*/\n\n.os-host-transition > .os-scrollbar,\n.os-host-transition > .os-scrollbar-corner {\n    -webkit-transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n    transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n}\nhtml.os-html > .os-host > .os-scrollbar {\n    position: absolute; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n    z-index: 999999; /* highest z-index of the page */\n}\n.os-scrollbar,\n.os-scrollbar-corner {\n    position: absolute;\n    opacity: 1;\n    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';\n    z-index: 1;\n}\n.os-scrollbar-corner {\n    bottom: 0;\n    right: 0;\n}\n.os-scrollbar {\n    pointer-events: none;\n}\n.os-scrollbar-track {\n    pointer-events: auto;\n    position: relative;\n    height: 100%;\n    width: 100%;\n    padding: 0 !important;\n    border: none !important;\n}\n.os-scrollbar-handle {\n    pointer-events: auto;\n    position: absolute;\n    width: 100%;\n    height: 100%;\n}\n.os-scrollbar-handle-off,\n.os-scrollbar-track-off {\n    pointer-events: none;\n}\n.os-scrollbar.os-scrollbar-unusable,\n.os-scrollbar.os-scrollbar-unusable * {\n    pointer-events: none !important;\n}\n.os-scrollbar.os-scrollbar-unusable .os-scrollbar-handle {\n    opacity: 0 !important;\n}\n.os-scrollbar-horizontal {\n    bottom: 0;\n    left: 0;\n}\n.os-scrollbar-vertical {\n    top: 0;\n    right: 0;\n}\n.os-host-rtl > .os-scrollbar-horizontal {\n    right: 0;\n}\n.os-host-rtl > .os-scrollbar-vertical {\n    right: auto;\n    left: 0;\n}\n.os-host-rtl > .os-scrollbar-corner {\n    right: auto;\n    left: 0;\n}\n.os-scrollbar-auto-hidden,\n.os-padding + .os-scrollbar-corner,\n.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-corner,\n.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal,\n.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-corner,\n.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical,\n.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical + .os-scrollbar-corner,\n.os-scrollbar-horizontal + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner,\n.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner {\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n}\n.os-scrollbar-corner-resize-both {\n    cursor: nwse-resize;\n}\n.os-host-rtl > .os-scrollbar-corner-resize-both {\n    cursor: nesw-resize;\n}\n.os-scrollbar-corner-resize-horizontal {\n    cursor: ew-resize;\n}\n.os-scrollbar-corner-resize-vertical {\n    cursor: ns-resize;\n}\n.os-dragging .os-scrollbar-corner.os-scrollbar-corner-resize {\n    cursor: default;\n}\n.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-vertical {\n    top: 0;\n    bottom: 0;\n}\n.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-horizontal,\n.os-host-rtl.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-horizontal {\n    right: 0;\n    left: 0;\n}\n.os-scrollbar:hover,\n.os-scrollbar-corner.os-scrollbar-corner-resize {\n    opacity: 1 !important;\n    visibility: visible !important;\n}\n.os-scrollbar-corner.os-scrollbar-corner-resize {\n    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB3aWR0aD0iMTAiICAgaGVpZ2h0PSIxMCIgICB2ZXJzaW9uPSIxLjEiPiAgPGcgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTEwNDIuMzYyMikiICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eTowLjQ5NDExNzY1O2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDcuNDI0MjE4NywxMDQyLjM2MjIgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjYgLTEuMzEwMTU2MiwxLjMxMDIgMCwwLjI5OSAwLjEwNDM0MTksMC41NzEgMC4yNzI5NDkyLDAuNzkxNSAwLjIwOTEwMjQsMC4xNDEzIDAuNDY1NjIwNiwwLjIxODQgMC43MzY5NjI5LDAuMjE4NCAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NiAxLjMxMDE1NjMsLTEuMzEwMiAwLC0wLjI3MTMgLTAuMDc3MDkzLC0wLjUyNzggLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0MSwtMC4xNjg2IC0wLjQ5MjU0NDMsLTAuMjcyOSAtMC43OTE1NTI4LC0wLjI3MjkgeiBtIDAsMy4wODQzIGMgLTAuNzIzNTc5MiwwIC0xLjMxMDE1NjIsMC41ODY2IC0xLjMxMDE1NjIsMS4zMTAyIDAsMC4yOTkgMC4xMDQzNDE5LDAuNTcxIDAuMjcyOTQ5MiwwLjc5MTUgMC4yMDkxMDI0LDAuMTQxMyAwLjQ2NTYyMDYsMC4yMTg0IDAuNzM2OTYyOSwwLjIxODQgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjYgMS4zMTAxNTYzLC0xLjMxMDIgMCwtMC4yNzEzIC0wLjA3NzA5MywtMC41Mjc4IC0wLjIxODM1OTQsLTAuNzM2OSAtMC4yMjA0OTQxLC0wLjE2ODYgLTAuNDkyNTQ0MywtMC4yNzMgLTAuNzkxNTUyOCwtMC4yNzMgeiBtIC0zLjA4NDMyNjEsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NiAtMS4zMTAxNTYzLDEuMzEwMiAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MSAwLjI3Mjk0OTIsMC43OTE1IDAuMjA5MTAyNCwwLjE0MTMgMC40NjU2MjA3LDAuMjE4NCAwLjczNjk2MjksMC4yMTg0IDAuNzIzNTc5MywwIDEuMzEwMTU2MywtMC41ODY2IDEuMzEwMTU2MywtMS4zMTAyIDAsLTAuMjcxMyAtMC4wNzcwOTMsLTAuNTI3OCAtMC4yMTgzNTk0LC0wLjczNjkgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzMgLTAuNzkxNTUyNywtMC4yNzMgeiBtIC0zLjAyOTczNjQsMy4wMjk4IEMgMC41ODY1NzY5MywxMDQ4LjQ3NjMgMCwxMDQ5LjA2MjggMCwxMDQ5Ljc4NjQgYyAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyMiwwLjc5MTYgMC4yMDkxMDIyOSwwLjE0MTIgMC40NjU2MjA2NSwwLjIxODMgMC43MzY5NjI4OCwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHogbSAzLjAyOTczNjQsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NSAtMS4zMTAxNTYzLDEuMzEwMSAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyLDAuNzkxNiAwLjIwOTEwMjQsMC4xNDEyIDAuNDY1NjIwNywwLjIxODMgMC43MzY5NjI5LDAuMjE4MyAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NSAxLjMxMDE1NjMsLTEuMzEwMSAwLC0wLjI3MTQgLTAuMDc3MDkzLC0wLjUyNzkgLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzI5IC0wLjc5MTU1MjcsLTAuMjcyOSB6IG0gMy4wODQzMjYxLDAgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjUgLTEuMzEwMTU2MiwxLjMxMDEgMCwwLjI5OSAwLjEwNDM0MTksMC41NzExIDAuMjcyOTQ5MiwwLjc5MTYgMC4yMDkxMDI0LDAuMTQxMiAwLjQ2NTYyMDYsMC4yMTgzIDAuNzM2OTYyOSwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHoiLz4gIDwvZz4gIDxnICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDguMjE1NzcxNSwwLjI3Mjk0OTIyIGMgMC4xNDEyNjY3LDAuMjA5MTAyMjkgMC4yMTgzNTk0LDAuNDY1NjIwNjUgMC4yMTgzNTk0LDAuNzM2OTYyODggMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDc2IC0wLjIwNTUxNzYsLTAuNzk3Nzk2NTkgLTAuNTE4NjAzNSwtMS4wMzcyMDY5OCB6IG0gMCwzLjA4NDMyNjE4IGMgMC4xNDEyNjY3LDAuMjA5MTAyMyAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MiAtMS4zMTAxNTYzLDEuMzEwMTU2MiAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTkzIDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAtMy4wODQzMjYyLDAgYyAwLjE0MTI2NjcsMC4yMDkxMDIzIDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYyIC0xLjMxMDE1NjMsMS4zMTAxNTYyIC0wLjI3MTM0MjIsMCAtMC41Mjc4NjA1LC0wLjA3NzA5MyAtMC43MzY5NjI5LC0wLjIxODM1OTMgMC4yMzk0MTA0LDAuMzEzMDg1OSAwLjYxMjYzNjMsMC41MTg2MDM1IDEuMDM3MjA3MSwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYyLC0wLjU4NjU3NyAxLjMxMDE1NjIsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NSwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogTSAyLjEwMTcwOSw2LjM4NzAxMTcgYyAwLjE0MTI2NjcsMC4yMDkxMDI0IDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYzIC0xLjMxMDE1NjMsMS4zMTAxNTYzIC0wLjI3MTM0MjIzLDAgLTAuNTI3ODYwNTksLTAuMDc3MDkzIC0wLjczNjk2Mjg4LC0wLjIxODM1OTQgMC4yMzk0MTAzOSwwLjMxMzA4NTkgMC42MTI2MzYyMiwwLjUxODYwMzUgMS4wMzcyMDY5OCwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAzLjAyOTczNjMsMCBjIDAuMTQxMjY2NywwLjIwOTEwMjQgMC4yMTgzNTk0LDAuNDY1NjIwNiAwLjIxODM1OTQsMC43MzY5NjI5IDAsMC43MjM1NzkzIC0wLjU4NjU3NywxLjMxMDE1NjMgLTEuMzEwMTU2MywxLjMxMDE1NjMgLTAuMjcxMzQyMiwwIC0wLjUyNzg2MDUsLTAuMDc3MDkzIC0wLjczNjk2MjksLTAuMjE4MzU5NCAwLjIzOTQxMDQsMC4zMTMwODU5IDAuNjEyNjM2MywwLjUxODYwMzUgMS4wMzcyMDcxLDAuNTE4NjAzNSAwLjcyMzU3OTMsMCAxLjMxMDE1NjIsLTAuNTg2NTc3IDEuMzEwMTU2MiwtMS4zMTAxNTYzIDAsLTAuNDI0NTcwOCAtMC4yMDU1MTc1LC0wLjc5Nzc5NjYgLTAuNTE4NjAzNSwtMS4wMzcyMDcgeiBtIDMuMDg0MzI2MiwwIGMgMC4xNDEyNjY3LDAuMjA5MTAyNCAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHoiIC8+ICA8L2c+PC9zdmc+);\n    background-repeat: no-repeat;\n    background-position: 100% 100%;\n    pointer-events: auto !important;\n}\n.os-host-rtl > .os-scrollbar-corner.os-scrollbar-corner-resize {\n    -webkit-transform: scale(-1, 1);\n    transform: scale(-1, 1);\n}\n.os-host-overflow {\n    overflow: hidden !important;\n}\n.os-host-overflow-x {\n} \n.os-host-overflow-y {\n} \n\n/*\nTHEMES:\n*/\n\n/* NONE THEME: */\n.os-theme-none > .os-scrollbar-horizontal,\n.os-theme-none > .os-scrollbar-vertical,\n.os-theme-none > .os-scrollbar-corner {\n    display: none !important;\n}\n.os-theme-none > .os-scrollbar-corner-resize {\n    display: block !important;\n    min-width: 10px;\n    min-height: 10px;\n}\n/* DARK & LIGHT THEME: */\n.os-theme-dark > .os-scrollbar-horizontal,\n.os-theme-light > .os-scrollbar-horizontal {\n    right: 10px;\n    height: 10px;\n}\n.os-theme-dark > .os-scrollbar-vertical,\n.os-theme-light > .os-scrollbar-vertical {\n    bottom: 10px;\n    width: 10px;\n}\n.os-theme-dark.os-host-rtl > .os-scrollbar-horizontal,\n.os-theme-light.os-host-rtl > .os-scrollbar-horizontal {\n    left: 10px;\n    right: 0;\n}\n.os-theme-dark > .os-scrollbar-corner,\n.os-theme-light > .os-scrollbar-corner {\n    height: 10px;\n    width: 10px;\n}\n.os-theme-dark > .os-scrollbar-corner,\n.os-theme-light > .os-scrollbar-corner {\n    background-color: transparent;\n}\n.os-theme-dark > .os-scrollbar,\n.os-theme-light > .os-scrollbar {\n    padding: 2px;\n    box-sizing: border-box;\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar.os-scrollbar-unusable,\n.os-theme-light > .os-scrollbar.os-scrollbar-unusable {\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track {\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle {\n    min-width: 30px;\n}\n.os-theme-dark > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle {\n    min-height: 30px;\n}\n.os-theme-dark.os-host-transition > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light.os-host-transition > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    -webkit-transition: background-color 0.3s;\n    transition: background-color 0.3s;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track {\n    border-radius: 10px;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(0, 0, 0, 0.4);\n}\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(255, 255, 255, 0.4);\n}\n.os-theme-dark > .os-scrollbar:hover > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(0, 0, 0, .55);\n}\n.os-theme-light > .os-scrollbar:hover > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(255, 255, 255, .55);\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle.active {\n    background: rgba(0, 0, 0, .7);\n}\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle.active {\n    background: rgba(255, 255, 255, .7);\n}\n.os-theme-dark > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    content: '';\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    display: block;\n}\n.os-theme-dark.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-dark.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    display: none;\n}\n.os-theme-dark > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-horizontal .os-scrollbar-handle:before {\n    top: -6px;\n    bottom: -2px;\n}\n.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    left: -6px;\n    right: -2px;\n}\n.os-host-rtl.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-host-rtl.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    right: -6px;\n    left: -2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/overlayScrollbars/js/OverlayScrollbars.js",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n(function (global, factory) {\n    if (typeof define === 'function' && define.amd)\n        define(function () { return factory(global, global.document, undefined); });\n    else if (typeof module === 'object' && typeof module.exports === 'object')\n        module.exports = factory(global, global.document, undefined);\n    else\n        factory(global, global.document, undefined);\n}(typeof window !== 'undefined' ? window : this,\n    function (window, document, undefined) {\n        'use strict';\n        var PLUGINNAME = 'OverlayScrollbars';\n        var TYPES = {\n            o: 'object',\n            f: 'function',\n            a: 'array',\n            s: 'string',\n            b: 'boolean',\n            n: 'number',\n            u: 'undefined',\n            z: 'null'\n            //d : 'date',\n            //e : 'error',\n            //r : 'regexp',\n            //y : 'symbol'\n        };\n        var LEXICON = {\n            c: 'class',\n            s: 'style',\n            i: 'id',\n            l: 'length',\n            p: 'prototype',\n            ti: 'tabindex',\n            oH: 'offsetHeight',\n            cH: 'clientHeight',\n            sH: 'scrollHeight',\n            oW: 'offsetWidth',\n            cW: 'clientWidth',\n            sW: 'scrollWidth',\n            hOP: 'hasOwnProperty',\n            bCR: 'getBoundingClientRect'\n        };\n        var VENDORS = (function () {\n            //https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\n            var jsCache = {};\n            var cssCache = {};\n            var cssPrefixes = ['-webkit-', '-moz-', '-o-', '-ms-'];\n            var jsPrefixes = ['WebKit', 'Moz', 'O', 'MS'];\n            function firstLetterToUpper(str) {\n                return str.charAt(0).toUpperCase() + str.slice(1);\n            }\n\n            return {\n                _cssPrefixes: cssPrefixes,\n                _jsPrefixes: jsPrefixes,\n                _cssProperty: function (name) {\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var uppercasedName = firstLetterToUpper(name);\n                    var elmStyle = document.createElement('div')[LEXICON.s];\n                    var resultPossibilities;\n                    var i = 0;\n                    var v;\n                    var currVendorWithoutDashes;\n\n                    for (; i < cssPrefixes.length; i++) {\n                        currVendorWithoutDashes = cssPrefixes[i].replace(/-/g, '');\n                        resultPossibilities = [\n                            name, //transition\n                            cssPrefixes[i] + name, //-webkit-transition\n                            currVendorWithoutDashes + uppercasedName, //webkitTransition\n                            firstLetterToUpper(currVendorWithoutDashes) + uppercasedName //WebkitTransition\n                        ];\n                        for (v = 0; v < resultPossibilities[LEXICON.l]; v++) {\n                            if (elmStyle[resultPossibilities[v]] !== undefined) {\n                                result = resultPossibilities[v];\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _cssPropertyValue: function (property, values, suffix) {\n                    var name = property + ' ' + values;\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var dummyStyle = document.createElement('div')[LEXICON.s];\n                    var possbleValues = values.split(' ');\n                    var preparedSuffix = suffix || '';\n                    var i = 0;\n                    var v = -1;\n                    var prop;\n\n                    for (; i < possbleValues[LEXICON.l]; i++) {\n                        for (; v < VENDORS._cssPrefixes[LEXICON.l]; v++) {\n                            prop = v < 0 ? possbleValues[i] : VENDORS._cssPrefixes[v] + possbleValues[i];\n                            dummyStyle.cssText = property + ':' + prop + preparedSuffix;\n                            if (dummyStyle[LEXICON.l]) {\n                                result = prop;\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _jsAPI: function (name, isInterface, fallback) {\n                    var i = 0;\n                    var result = jsCache[name];\n\n                    if (!jsCache[LEXICON.hOP](name)) {\n                        result = window[name];\n                        for (; i < jsPrefixes[LEXICON.l]; i++)\n                            result = result || window[(isInterface ? jsPrefixes[i] : jsPrefixes[i].toLowerCase()) + firstLetterToUpper(name)];\n                        jsCache[name] = result;\n                    }\n                    return result || fallback;\n                }\n            }\n        })();\n        var COMPATIBILITY = (function () {\n            function windowSize(x) {\n                return x ? window.innerWidth || document.documentElement[LEXICON.cW] || document.body[LEXICON.cW] : window.innerHeight || document.documentElement[LEXICON.cH] || document.body[LEXICON.cH];\n            }\n            function bind(func, thisObj) {\n                if (typeof func != TYPES.f) {\n                    throw \"Can't bind function!\";\n                    // closest thing possible to the ECMAScript 5\n                    // internal IsCallable function\n                    //throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n                }\n                var proto = LEXICON.p;\n                var aArgs = Array[proto].slice.call(arguments, 2);\n                var fNOP = function () { };\n                var fBound = function () { return func.apply(this instanceof fNOP ? this : thisObj, aArgs.concat(Array[proto].slice.call(arguments))); };\n\n                if (func[proto])\n                    fNOP[proto] = func[proto]; // Function.prototype doesn't have a prototype property\n                fBound[proto] = new fNOP();\n\n                return fBound;\n            }\n\n            return {\n                /**\n                 * Gets the current window width.\n                 * @returns {Number|number} The current window width in pixel.\n                 */\n                wW: bind(windowSize, 0, true),\n\n                /**\n                 * Gets the current window height.\n                 * @returns {Number|number} The current window height in pixel.\n                 */\n                wH: bind(windowSize, 0),\n\n                /**\n                 * Gets the MutationObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The MutationsObserver Object or undefined.\n                 */\n                mO: bind(VENDORS._jsAPI, 0, 'MutationObserver', true),\n\n                /**\n                 * Gets the ResizeObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The ResizeObserver Object or undefined.\n                 */\n                rO: bind(VENDORS._jsAPI, 0, 'ResizeObserver', true),\n\n                /**\n                 * Gets the RequestAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The RequestAnimationFrame method or it's corresponding polyfill.\n                 */\n                rAF: bind(VENDORS._jsAPI, 0, 'requestAnimationFrame', false, function (func) { return window.setTimeout(func, 1000 / 60); }),\n\n                /**\n                 * Gets the CancelAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The CancelAnimationFrame method or it's corresponding polyfill.\n                 */\n                cAF: bind(VENDORS._jsAPI, 0, 'cancelAnimationFrame', false, function (id) { return window.clearTimeout(id); }),\n\n                /**\n                 * Gets the current time.\n                 * @returns {number} The current time.\n                 */\n                now: function () {\n                    return Date.now && Date.now() || new Date().getTime();\n                },\n\n                /**\n                 * Stops the propagation of the given event.\n                 * @param event The event of which the propagation shall be stoped.\n                 */\n                stpP: function (event) {\n                    if (event.stopPropagation)\n                        event.stopPropagation();\n                    else\n                        event.cancelBubble = true;\n                },\n\n                /**\n                 * Prevents the default action of the given event.\n                 * @param event The event of which the default action shall be prevented.\n                 */\n                prvD: function (event) {\n                    if (event.preventDefault && event.cancelable)\n                        event.preventDefault();\n                    else\n                        event.returnValue = false;\n                },\n\n                /**\n                 * Gets the pageX and pageY values of the given mouse event.\n                 * @param event The mouse event of which the pageX and pageX shall be got.\n                 * @returns {{x: number, y: number}} x = pageX value, y = pageY value.\n                 */\n                page: function (event) {\n                    event = event.originalEvent || event;\n\n                    var strPage = 'page';\n                    var strClient = 'client';\n                    var strX = 'X';\n                    var strY = 'Y';\n                    var target = event.target || event.srcElement || document;\n                    var eventDoc = target.ownerDocument || document;\n                    var doc = eventDoc.documentElement;\n                    var body = eventDoc.body;\n\n                    //if touch event return return pageX/Y of it\n                    if (event.touches !== undefined) {\n                        var touch = event.touches[0];\n                        return {\n                            x: touch[strPage + strX],\n                            y: touch[strPage + strY]\n                        }\n                    }\n\n                    // Calculate pageX/Y if not native supported\n                    if (!event[strPage + strX] && event[strClient + strX] && event[strClient + strX] != null) {\n\n                        return {\n                            x: event[strClient + strX] +\n                                (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n                                (doc && doc.clientLeft || body && body.clientLeft || 0),\n                            y: event[strClient + strY] +\n                                (doc && doc.scrollTop || body && body.scrollTop || 0) -\n                                (doc && doc.clientTop || body && body.clientTop || 0)\n                        }\n                    }\n                    return {\n                        x: event[strPage + strX],\n                        y: event[strPage + strY]\n                    };\n                },\n\n                /**\n                 * Gets the clicked mouse button of the given mouse event.\n                 * @param event The mouse event of which the clicked button shal be got.\n                 * @returns {number} The number of the clicked mouse button. (0 : none | 1 : leftButton | 2 : middleButton | 3 : rightButton)\n                 */\n                mBtn: function (event) {\n                    var button = event.button;\n                    if (!event.which && button !== undefined)\n                        return (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n                    else\n                        return event.which;\n                },\n\n                /**\n                 * Checks whether a item is in the given array and returns its index.\n                 * @param item The item of which the position in the array shall be determined.\n                 * @param arr The array.\n                 * @returns {number} The zero based index of the item or -1 if the item isn't in the array.\n                 */\n                inA: function (item, arr) {\n                    for (var i = 0; i < arr[LEXICON.l]; i++)\n                        //Sometiems in IE a \"SCRIPT70\" Permission denied error occurs if HTML elements in a iFrame are compared\n                        try {\n                            if (arr[i] === item)\n                                return i;\n                        }\n                        catch (e) { }\n                    return -1;\n                },\n\n                /**\n                 * Returns true if the given value is a array.\n                 * @param arr The potential array.\n                 * @returns {boolean} True if the given value is a array, false otherwise.\n                 */\n                isA: function (arr) {\n                    var def = Array.isArray;\n                    return def ? def(arr) : this.type(arr) == TYPES.a;\n                },\n\n                /**\n                 * Determine the internal JavaScript [[Class]] of the given object.\n                 * @param obj The object of which the type shall be determined.\n                 * @returns {string} The type of the given object.\n                 */\n                type: function (obj) {\n                    if (obj === undefined)\n                        return obj + '';\n                    if (obj === null)\n                        return obj + '';\n                    return Object[LEXICON.p].toString.call(obj).replace(/^\\[object (.+)\\]$/, '$1').toLowerCase();\n                },\n\n\n                bind: bind\n\n                /**\n                 * Gets the vendor-prefixed CSS property by the given name.\n                 * For example the given name is \"transform\" and you're using a old Firefox browser then the returned value would be \"-moz-transform\".\n                 * If the browser doesn't need a vendor-prefix, then the returned string is the given name.\n                 * If the browser doesn't support the given property name at all (not even with a vendor-prefix) the returned value is null.\n                 * @param propName The unprefixed CSS property name.\n                 * @returns {string|null} The vendor-prefixed CSS property or null if the browser doesn't support the given CSS property.\n\n                cssProp: function(propName) {\n                    return VENDORS._cssProperty(propName);\n                }\n                */\n            }\n        })();\n\n\n        var MATH = Math;\n        var JQUERY = window.jQuery;\n        var EASING = (function () {\n            var _easingsMath = {\n                p: MATH.PI,\n                c: MATH.cos,\n                s: MATH.sin,\n                w: MATH.pow,\n                t: MATH.sqrt,\n                n: MATH.asin,\n                a: MATH.abs,\n                o: 1.70158\n            };\n\n            /*\n             x : current percent (0 - 1),\n             t : current time (duration * percent),\n             b : start value (from),\n             c : end value (to),\n             d : duration\n\n             easingName : function(x, t, b, c, d) { return easedValue; }\n             */\n\n            return {\n                swing: function (x, t, b, c, d) {\n                    return 0.5 - _easingsMath.c(x * _easingsMath.p) / 2;\n                },\n                linear: function (x, t, b, c, d) {\n                    return x;\n                },\n                easeInQuad: function (x, t, b, c, d) {\n                    return c * (t /= d) * t + b;\n                },\n                easeOutQuad: function (x, t, b, c, d) {\n                    return -c * (t /= d) * (t - 2) + b;\n                },\n                easeInOutQuad: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t + b : -c / 2 * ((--t) * (t - 2) - 1) + b;\n                },\n                easeInCubic: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t + b;\n                },\n                easeOutCubic: function (x, t, b, c, d) {\n                    return c * ((t = t / d - 1) * t * t + 1) + b;\n                },\n                easeInOutCubic: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t + b : c / 2 * ((t -= 2) * t * t + 2) + b;\n                },\n                easeInQuart: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t * t + b;\n                },\n                easeOutQuart: function (x, t, b, c, d) {\n                    return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n                },\n                easeInOutQuart: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t + b : -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n                },\n                easeInQuint: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t * t * t + b;\n                },\n                easeOutQuint: function (x, t, b, c, d) {\n                    return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n                },\n                easeInOutQuint: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t * t + b : c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n                },\n                easeInSine: function (x, t, b, c, d) {\n                    return -c * _easingsMath.c(t / d * (_easingsMath.p / 2)) + c + b;\n                },\n                easeOutSine: function (x, t, b, c, d) {\n                    return c * _easingsMath.s(t / d * (_easingsMath.p / 2)) + b;\n                },\n                easeInOutSine: function (x, t, b, c, d) {\n                    return -c / 2 * (_easingsMath.c(_easingsMath.p * t / d) - 1) + b;\n                },\n                easeInExpo: function (x, t, b, c, d) {\n                    return (t == 0) ? b : c * _easingsMath.w(2, 10 * (t / d - 1)) + b;\n                },\n                easeOutExpo: function (x, t, b, c, d) {\n                    return (t == d) ? b + c : c * (-_easingsMath.w(2, -10 * t / d) + 1) + b;\n                },\n                easeInOutExpo: function (x, t, b, c, d) {\n                    if (t == 0) return b;\n                    if (t == d) return b + c;\n                    if ((t /= d / 2) < 1) return c / 2 * _easingsMath.w(2, 10 * (t - 1)) + b;\n                    return c / 2 * (-_easingsMath.w(2, -10 * --t) + 2) + b;\n                },\n                easeInCirc: function (x, t, b, c, d) {\n                    return -c * (_easingsMath.t(1 - (t /= d) * t) - 1) + b;\n                },\n                easeOutCirc: function (x, t, b, c, d) {\n                    return c * _easingsMath.t(1 - (t = t / d - 1) * t) + b;\n                },\n                easeInOutCirc: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? -c / 2 * (_easingsMath.t(1 - t * t) - 1) + b : c / 2 * (_easingsMath.t(1 - (t -= 2) * t) + 1) + b;\n                },\n                easeInElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    return -(a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b;\n                },\n                easeOutElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b;\n                    if ((t /= d) == 1) return b + c;\n                    if (!p) p = d * .3;\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    return a * _easingsMath.w(2, -10 * t) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) + c + b;\n                },\n                easeInOutElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b;\n                    if ((t /= d / 2) == 2) return b + c;\n                    if (!p) p = d * (.3 * 1.5);\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    if (t < 1) return -.5 * (a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b;\n                    return a * _easingsMath.w(2, -10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) * .5 + c + b;\n                },\n                easeInBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return c * (t /= d) * t * ((s + 1) * t - s) + b;\n                },\n                easeOutBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n                },\n                easeInOutBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return ((t /= d / 2) < 1) ? c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b : c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n                },\n                easeInBounce: function (x, t, b, c, d) {\n                    return c - this.easeOutBounce(x, d - t, 0, c, d) + b;\n                },\n                easeOutBounce: function (x, t, b, c, d) {\n                    var o = 7.5625;\n                    if ((t /= d) < (1 / 2.75)) {\n                        return c * (o * t * t) + b;\n                    } else if (t < (2 / 2.75)) {\n                        return c * (o * (t -= (1.5 / 2.75)) * t + .75) + b;\n                    } else if (t < (2.5 / 2.75)) {\n                        return c * (o * (t -= (2.25 / 2.75)) * t + .9375) + b;\n                    } else {\n                        return c * (o * (t -= (2.625 / 2.75)) * t + .984375) + b;\n                    }\n                },\n                easeInOutBounce: function (x, t, b, c, d) {\n                    return (t < d / 2) ? this.easeInBounce(x, t * 2, 0, c, d) * .5 + b : this.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;\n                }\n            };\n            /*\n             *\n             * TERMS OF USE - EASING EQUATIONS\n             * \n             * Open source under the BSD License. \n             * \n             * Copyright Â© 2001 Robert Penner\n             * All rights reserved.\n             * \n             * Redistribution and use in source and binary forms, with or without modification, \n             * are permitted provided that the following conditions are met:\n             * \n             * Redistributions of source code must retain the above copyright notice, this list of \n             * conditions and the following disclaimer.\n             * Redistributions in binary form must reproduce the above copyright notice, this list \n             * of conditions and the following disclaimer in the documentation and/or other materials \n             * provided with the distribution.\n             * \n             * Neither the name of the author nor the names of contributors may be used to endorse \n             * or promote products derived from this software without specific prior written permission.\n             * \n             * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n             * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n             * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n             *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n             *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n             *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n             * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n             *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n             * OF THE POSSIBILITY OF SUCH DAMAGE. \n             *\n             */\n        })();\n        var FRAMEWORK = (function () {\n            var _rnothtmlwhite = (/[^\\x20\\t\\r\\n\\f]+/g);\n            var _strSpace = ' ';\n            var _strEmpty = '';\n            var _strScrollLeft = 'scrollLeft';\n            var _strScrollTop = 'scrollTop';\n            var _animations = [];\n            var _type = COMPATIBILITY.type;\n            var _cssNumber = {\n                animationIterationCount: true,\n                columnCount: true,\n                fillOpacity: true,\n                flexGrow: true,\n                flexShrink: true,\n                fontWeight: true,\n                lineHeight: true,\n                opacity: true,\n                order: true,\n                orphans: true,\n                widows: true,\n                zIndex: true,\n                zoom: true\n            };\n\n            function extend() {\n                var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {},\n                    i = 1,\n                    length = arguments[LEXICON.l],\n                    deep = false;\n\n                // Handle a deep copy situation\n                if (_type(target) == TYPES.b) {\n                    deep = target;\n                    target = arguments[1] || {};\n                    // skip the boolean and the target\n                    i = 2;\n                }\n\n                // Handle case when target is a string or something (possible in deep copy)\n                if (_type(target) != TYPES.o && !_type(target) == TYPES.f) {\n                    target = {};\n                }\n\n                // extend jQuery itself if only one argument is passed\n                if (length === i) {\n                    target = FakejQuery;\n                    --i;\n                }\n\n                for (; i < length; i++) {\n                    // Only deal with non-null/undefined values\n                    if ((options = arguments[i]) != null) {\n                        // Extend the base object\n                        for (name in options) {\n                            src = target[name];\n                            copy = options[name];\n\n                            // Prevent never-ending loop\n                            if (target === copy) {\n                                continue;\n                            }\n\n                            // Recurse if we're merging plain objects or arrays\n                            if (deep && copy && (isPlainObject(copy) || (copyIsArray = COMPATIBILITY.isA(copy)))) {\n                                if (copyIsArray) {\n                                    copyIsArray = false;\n                                    clone = src && COMPATIBILITY.isA(src) ? src : [];\n\n                                } else {\n                                    clone = src && isPlainObject(src) ? src : {};\n                                }\n\n                                // Never move original objects, clone them\n                                target[name] = extend(deep, clone, copy);\n\n                                // Don't bring in undefined values\n                            } else if (copy !== undefined) {\n                                target[name] = copy;\n                            }\n                        }\n                    }\n                }\n\n                // Return the modified object\n                return target;\n            };\n\n            function inArray(item, arr, fromIndex) {\n                for (var i = fromIndex || 0; i < arr[LEXICON.l]; i++)\n                    if (arr[i] === item)\n                        return i;\n                return -1;\n            }\n\n            function isFunction(obj) {\n                return _type(obj) == TYPES.f;\n            };\n\n            function isEmptyObject(obj) {\n                for (var name in obj)\n                    return false;\n                return true;\n            };\n\n            function isPlainObject(obj) {\n                if (!obj || _type(obj) != TYPES.o)\n                    return false;\n\n                var key;\n                var proto = LEXICON.p;\n                var hasOwnProperty = Object[proto].hasOwnProperty;\n                var hasOwnConstructor = hasOwnProperty.call(obj, 'constructor');\n                var hasIsPrototypeOf = obj.constructor && obj.constructor[proto] && hasOwnProperty.call(obj.constructor[proto], 'isPrototypeOf');\n\n                if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n                    return false;\n                }\n\n\n                for (key in obj) { /**/ }\n\n                return _type(key) == TYPES.u || hasOwnProperty.call(obj, key);\n            };\n\n            function each(obj, callback) {\n                var i = 0;\n\n                if (isArrayLike(obj)) {\n                    for (; i < obj[LEXICON.l]; i++) {\n                        if (callback.call(obj[i], i, obj[i]) === false)\n                            break;\n                    }\n                }\n                else {\n                    for (i in obj) {\n                        if (callback.call(obj[i], i, obj[i]) === false)\n                            break;\n                    }\n                }\n\n                return obj;\n            };\n\n            function isArrayLike(obj) {\n                var length = !!obj && [LEXICON.l] in obj && obj[LEXICON.l];\n                var t = _type(obj);\n                return isFunction(t) ? false : (t == TYPES.a || length === 0 || _type(length) == TYPES.n && length > 0 && (length - 1) in obj);\n            }\n\n            function stripAndCollapse(value) {\n                var tokens = value.match(_rnothtmlwhite) || [];\n                return tokens.join(_strSpace);\n            }\n\n            function matches(elem, selector) {\n                var nodeList = (elem.parentNode || document).querySelectorAll(selector) || [];\n                var i = nodeList[LEXICON.l];\n\n                while (i--)\n                    if (nodeList[i] == elem)\n                        return true;\n\n                return false;\n            }\n\n            function insertAdjacentElement(el, strategy, child) {\n                if (COMPATIBILITY.isA(child)) {\n                    for (var i = 0; i < child[LEXICON.l]; i++)\n                        insertAdjacentElement(el, strategy, child[i]);\n                }\n                else if (_type(child) == TYPES.s)\n                    el.insertAdjacentHTML(strategy, child);\n                else\n                    el.insertAdjacentElement(strategy, child.nodeType ? child : child[0]);\n            }\n\n            function setCSSVal(el, prop, val) {\n                try {\n                    if (el[LEXICON.s][prop] !== undefined)\n                        el[LEXICON.s][prop] = parseCSSVal(prop, val);\n                } catch (e) { }\n            }\n\n            function parseCSSVal(prop, val) {\n                if (!_cssNumber[prop.toLowerCase()] && _type(val) == TYPES.n)\n                    val += 'px';\n                return val;\n            }\n\n            function startNextAnimationInQ(animObj, removeFromQ) {\n                var index;\n                var nextAnim;\n                if (removeFromQ !== false)\n                    animObj.q.splice(0, 1);\n                if (animObj.q[LEXICON.l] > 0) {\n                    nextAnim = animObj.q[0];\n                    animate(animObj.el, nextAnim.props, nextAnim.duration, nextAnim.easing, nextAnim.complete, true);\n                }\n                else {\n                    index = inArray(animObj, _animations);\n                    if (index > -1)\n                        _animations.splice(index, 1);\n                }\n            }\n\n            function setAnimationValue(el, prop, value) {\n                if (prop === _strScrollLeft || prop === _strScrollTop)\n                    el[prop] = value;\n                else\n                    setCSSVal(el, prop, value);\n            }\n\n            function animate(el, props, options, easing, complete, guaranteedNext) {\n                var hasOptions = isPlainObject(options);\n                var from = {};\n                var to = {};\n                var i = 0;\n                var key;\n                var animObj;\n                var start;\n                var progress;\n                var step;\n                var specialEasing;\n                var duration;\n                if (hasOptions) {\n                    easing = options.easing;\n                    start = options.start;\n                    progress = options.progress;\n                    step = options.step;\n                    specialEasing = options.specialEasing;\n                    complete = options.complete;\n                    duration = options.duration;\n                }\n                else\n                    duration = options;\n                specialEasing = specialEasing || {};\n                duration = duration || 400;\n                easing = easing || 'swing';\n                guaranteedNext = guaranteedNext || false;\n\n                for (; i < _animations[LEXICON.l]; i++) {\n                    if (_animations[i].el === el) {\n                        animObj = _animations[i];\n                        break;\n                    }\n                }\n\n                if (!animObj) {\n                    animObj = {\n                        el: el,\n                        q: []\n                    };\n                    _animations.push(animObj);\n                }\n\n                for (key in props) {\n                    if (key === _strScrollLeft || key === _strScrollTop)\n                        from[key] = el[key];\n                    else\n                        from[key] = FakejQuery(el).css(key);\n                }\n\n                for (key in from) {\n                    if (from[key] !== props[key] && props[key] !== undefined)\n                        to[key] = props[key];\n                }\n\n                if (!isEmptyObject(to)) {\n                    var timeNow;\n                    var end;\n                    var percent;\n                    var fromVal;\n                    var toVal;\n                    var easedVal;\n                    var timeStart;\n                    var frame;\n                    var elapsed;\n                    var qPos = guaranteedNext ? 0 : inArray(qObj, animObj.q);\n                    var qObj = {\n                        props: to,\n                        duration: hasOptions ? options : duration,\n                        easing: easing,\n                        complete: complete\n                    };\n                    if (qPos === -1) {\n                        qPos = animObj.q[LEXICON.l];\n                        animObj.q.push(qObj);\n                    }\n\n                    if (qPos === 0) {\n                        if (duration > 0) {\n                            timeStart = COMPATIBILITY.now();\n                            frame = function () {\n                                timeNow = COMPATIBILITY.now();\n                                elapsed = (timeNow - timeStart);\n                                end = qObj.stop || elapsed >= duration;\n                                percent = 1 - ((MATH.max(0, timeStart + duration - timeNow) / duration) || 0);\n\n                                for (key in to) {\n                                    fromVal = parseFloat(from[key]);\n                                    toVal = parseFloat(to[key]);\n                                    easedVal = (toVal - fromVal) * EASING[specialEasing[key] || easing](percent, percent * duration, 0, 1, duration) + fromVal;\n                                    setAnimationValue(el, key, easedVal);\n                                    if (isFunction(step)) {\n                                        step(easedVal, {\n                                            elem: el,\n                                            prop: key,\n                                            start: fromVal,\n                                            now: easedVal,\n                                            end: toVal,\n                                            pos: percent,\n                                            options: {\n                                                easing: easing,\n                                                speacialEasing: specialEasing,\n                                                duration: duration,\n                                                complete: complete,\n                                                step: step\n                                            },\n                                            startTime: timeStart\n                                        });\n                                    }\n                                }\n\n                                if (isFunction(progress))\n                                    progress({}, percent, MATH.max(0, duration - elapsed));\n\n                                if (end) {\n                                    startNextAnimationInQ(animObj);\n                                    if (isFunction(complete))\n                                        complete();\n                                }\n                                else\n                                    qObj.frame = COMPATIBILITY.rAF()(frame);\n                            };\n                            qObj.frame = COMPATIBILITY.rAF()(frame);\n                        }\n                        else {\n                            for (key in to)\n                                setAnimationValue(el, key, to[key]);\n                            startNextAnimationInQ(animObj);\n                        }\n                    }\n                }\n                else if (guaranteedNext)\n                    startNextAnimationInQ(animObj);\n            }\n\n            function stop(el, clearQ, jumpToEnd) {\n                var animObj;\n                var qObj;\n                var key;\n                var i = 0;\n                for (; i < _animations[LEXICON.l]; i++) {\n                    animObj = _animations[i];\n                    if (animObj.el === el) {\n                        if (animObj.q[LEXICON.l] > 0) {\n                            qObj = animObj.q[0];\n                            qObj.stop = true;\n                            COMPATIBILITY.cAF()(qObj.frame);\n                            animObj.q.splice(0, 1);\n\n                            if (jumpToEnd)\n                                for (key in qObj.props)\n                                    setAnimationValue(el, key, qObj.props[key]);\n\n                            if (clearQ)\n                                animObj.q = [];\n                            else\n                                startNextAnimationInQ(animObj, false);\n                        }\n                        break;\n                    }\n                }\n            }\n\n            function elementIsVisible(el) {\n                return !!(el[LEXICON.oW] || el[LEXICON.oH] || el.getClientRects()[LEXICON.l]);\n            }\n\n            function FakejQuery(selector) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var base = new FakejQuery();\n                var elements = selector;\n                var i = 0;\n                var elms;\n                var el;\n\n                if (_type(selector) == TYPES.s) {\n                    elements = [];\n                    if (selector.charAt(0) === '<') {\n                        el = document.createElement('div');\n                        el.innerHTML = selector;\n                        elms = el.children;\n                    }\n                    else {\n                        elms = document.querySelectorAll(selector);\n                    }\n\n                    for (; i < elms[LEXICON.l]; i++)\n                        elements.push(elms[i]);\n                }\n\n                if (elements) {\n                    if (_type(elements) != TYPES.s && (!isArrayLike(elements) || elements === window || elements === elements.self))\n                        elements = [elements];\n\n                    for (i = 0; i < elements[LEXICON.l]; i++)\n                        base[i] = elements[i];\n\n                    base[LEXICON.l] = elements[LEXICON.l];\n                }\n\n                return base;\n            };\n\n            FakejQuery[LEXICON.p] = {\n\n                //EVENTS:\n\n                on: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n\n                    var eventNameLength = eventName[LEXICON.l];\n                    var i = 0;\n                    var el;\n                    return this.each(function () {\n                        el = this;\n                        try {\n                            if (el.addEventListener) {\n                                for (; i < eventNameLength; i++)\n                                    el.addEventListener(eventName[i], handler);\n                            }\n                            else if (el.detachEvent) {\n                                for (; i < eventNameLength; i++)\n                                    el.attachEvent('on' + eventName[i], handler);\n                            }\n                        } catch (e) { }\n                    });\n                },\n\n                off: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n\n                    var eventNameLength = eventName[LEXICON.l];\n                    var i = 0;\n                    var el;\n                    return this.each(function () {\n                        el = this;\n                        try {\n                            if (el.removeEventListener) {\n                                for (; i < eventNameLength; i++)\n                                    el.removeEventListener(eventName[i], handler);\n                            }\n                            else if (el.detachEvent) {\n                                for (; i < eventNameLength; i++)\n                                    el.detachEvent('on' + eventName[i], handler);\n                            }\n                        } catch (e) { }\n                    });\n                },\n\n                one: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n                    return this.each(function () {\n                        var el = FakejQuery(this);\n                        FakejQuery.each(eventName, function (i, oneEventName) {\n                            var oneHandler = function (e) {\n                                handler.call(this, e);\n                                el.off(oneEventName, oneHandler);\n                            };\n                            el.on(oneEventName, oneHandler);\n                        });\n                    });\n                },\n\n                trigger: function (eventName) {\n                    var el;\n                    var event;\n                    return this.each(function () {\n                        el = this;\n                        if (document.createEvent) {\n                            event = document.createEvent('HTMLEvents');\n                            event.initEvent(eventName, true, false);\n                            el.dispatchEvent(event);\n                        }\n                        else {\n                            el.fireEvent('on' + eventName);\n                        }\n                    });\n                },\n\n                //DOM NODE INSERTING / REMOVING:\n\n                append: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'beforeend', child); });\n                },\n\n                prepend: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'afterbegin', child); });\n                },\n\n                before: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'beforebegin', child); });\n                },\n\n                after: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'afterend', child); });\n                },\n\n                remove: function () {\n                    return this.each(function () {\n                        var el = this;\n                        var parentNode = el.parentNode;\n                        if (parentNode != null)\n                            parentNode.removeChild(el);\n                    });\n                },\n\n                unwrap: function () {\n                    var parents = [];\n                    var i;\n                    var el;\n                    var parent;\n\n                    this.each(function () {\n                        parent = this.parentNode;\n                        if (inArray(parent, parents) === - 1)\n                            parents.push(parent);\n                    });\n\n                    for (i = 0; i < parents[LEXICON.l]; i++) {\n                        el = parents[i];\n                        parent = el.parentNode;\n                        while (el.firstChild)\n                            parent.insertBefore(el.firstChild, el);\n                        parent.removeChild(el);\n                    }\n\n                    return this;\n                },\n\n                wrapAll: function (wrapperHTML) {\n                    var i;\n                    var nodes = this;\n                    var wrapper = FakejQuery(wrapperHTML)[0];\n                    var deepest = wrapper;\n                    var parent = nodes[0].parentNode;\n                    var previousSibling = nodes[0].previousSibling;\n                    while (deepest.childNodes[LEXICON.l] > 0)\n                        deepest = deepest.childNodes[0];\n\n                    for (i = 0; nodes[LEXICON.l] - i; deepest.firstChild === nodes[0] && i++)\n                        deepest.appendChild(nodes[i]);\n\n                    var nextSibling = previousSibling ? previousSibling.nextSibling : parent.firstChild;\n                    parent.insertBefore(wrapper, nextSibling);\n\n                    return this;\n                },\n\n                wrapInner: function (wrapperHTML) {\n                    return this.each(function () {\n                        var el = FakejQuery(this);\n                        var contents = el.contents();\n\n                        if (contents[LEXICON.l])\n                            contents.wrapAll(wrapperHTML);\n                        else\n                            el.append(wrapperHTML);\n                    });\n                },\n\n                wrap: function (wrapperHTML) {\n                    return this.each(function () { FakejQuery(this).wrapAll(wrapperHTML); });\n                },\n\n\n                //DOM NODE MANIPULATION / INFORMATION:\n\n                css: function (styles, val) {\n                    var el;\n                    var key;\n                    var cptStyle;\n                    var getCptStyle = window.getComputedStyle;\n                    if (_type(styles) == TYPES.s) {\n                        if (val === undefined) {\n                            el = this[0];\n                            cptStyle = getCptStyle ? getCptStyle(el, null) : el.currentStyle[styles];\n\n                            //https://bugzilla.mozilla.org/show_bug.cgi?id=548397 can be null sometimes if iframe with display: none (firefox only!)\n                            return getCptStyle ? cptStyle != null ? cptStyle.getPropertyValue(styles) : el[LEXICON.s][styles] : cptStyle;\n                        }\n                        else {\n                            return this.each(function () {\n                                setCSSVal(this, styles, val);\n                            });\n                        }\n                    }\n                    else {\n                        return this.each(function () {\n                            for (key in styles)\n                                setCSSVal(this, key, styles[key]);\n                        });\n                    }\n                },\n\n                hasClass: function (className) {\n                    var elem, i = 0;\n                    var classNamePrepared = _strSpace + className + _strSpace;\n                    var classList;\n\n                    while ((elem = this[i++])) {\n                        classList = elem.classList;\n                        if (classList && classList.contains(className))\n                            return true;\n                        else if (elem.nodeType === 1 && (_strSpace + stripAndCollapse(elem.className + _strEmpty) + _strSpace).indexOf(classNamePrepared) > -1)\n                            return true;\n                    }\n\n                    return false;\n                },\n\n                addClass: function (className) {\n                    var classes;\n                    var elem;\n                    var cur;\n                    var curValue;\n                    var clazz;\n                    var finalValue;\n                    var supportClassList;\n                    var elmClassList;\n                    var i = 0;\n                    var v = 0;\n\n                    if (className) {\n                        classes = className.match(_rnothtmlwhite) || [];\n\n                        while ((elem = this[i++])) {\n                            elmClassList = elem.classList;\n                            if (supportClassList === undefined)\n                                supportClassList = elmClassList !== undefined;\n\n                            if (supportClassList) {\n                                while ((clazz = classes[v++]))\n                                    elmClassList.add(clazz);\n                            }\n                            else {\n                                curValue = elem.className + _strEmpty;\n                                cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace);\n\n                                if (cur) {\n                                    while ((clazz = classes[v++]))\n                                        if (cur.indexOf(_strSpace + clazz + _strSpace) < 0)\n                                            cur += clazz + _strSpace;\n\n                                    finalValue = stripAndCollapse(cur);\n                                    if (curValue !== finalValue)\n                                        elem.className = finalValue;\n                                }\n                            }\n                        }\n                    }\n\n                    return this;\n                },\n\n                removeClass: function (className) {\n                    var classes;\n                    var elem;\n                    var cur;\n                    var curValue;\n                    var clazz;\n                    var finalValue;\n                    var supportClassList;\n                    var elmClassList;\n                    var i = 0;\n                    var v = 0;\n\n                    if (className) {\n                        classes = className.match(_rnothtmlwhite) || [];\n\n                        while ((elem = this[i++])) {\n                            elmClassList = elem.classList;\n                            if (supportClassList === undefined)\n                                supportClassList = elmClassList !== undefined;\n\n                            if (supportClassList) {\n                                while ((clazz = classes[v++]))\n                                    elmClassList.remove(clazz);\n                            }\n                            else {\n                                curValue = elem.className + _strEmpty;\n                                cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace);\n\n                                if (cur) {\n                                    while ((clazz = classes[v++]))\n                                        while (cur.indexOf(_strSpace + clazz + _strSpace) > -1)\n                                            cur = cur.replace(_strSpace + clazz + _strSpace, _strSpace);\n\n                                    finalValue = stripAndCollapse(cur);\n                                    if (curValue !== finalValue)\n                                        elem.className = finalValue;\n                                }\n                            }\n                        }\n                    }\n\n                    return this;\n                },\n\n                hide: function () {\n                    return this.each(function () { this[LEXICON.s].display = 'none'; });\n                },\n\n                show: function () {\n                    return this.each(function () { this[LEXICON.s].display = 'block'; });\n                },\n\n                attr: function (attrName, value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el.getAttribute(attrName);\n                        el.setAttribute(attrName, value);\n                    }\n                    return this;\n                },\n\n                removeAttr: function (attrName) {\n                    return this.each(function () { this.removeAttribute(attrName); });\n                },\n\n                offset: function () {\n                    var el = this[0];\n                    var rect = el[LEXICON.bCR]();\n                    var scrollLeft = window.pageXOffset || document.documentElement[_strScrollLeft];\n                    var scrollTop = window.pageYOffset || document.documentElement[_strScrollTop];\n                    return {\n                        top: rect.top + scrollTop,\n                        left: rect.left + scrollLeft\n                    };\n                },\n\n                position: function () {\n                    var el = this[0];\n                    return {\n                        top: el.offsetTop,\n                        left: el.offsetLeft\n                    };\n                },\n\n                scrollLeft: function (value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el[_strScrollLeft];\n                        el[_strScrollLeft] = value;\n                    }\n                    return this;\n                },\n\n                scrollTop: function (value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el[_strScrollTop];\n                        el[_strScrollTop] = value;\n                    }\n                    return this;\n                },\n\n                val: function (value) {\n                    var el = this[0];\n                    if (!value)\n                        return el.value;\n                    el.value = value;\n                    return this;\n                },\n\n\n                //DOM TRAVERSAL / FILTERING:\n\n                first: function () {\n                    return this.eq(0);\n                },\n\n                last: function () {\n                    return this.eq(-1);\n                },\n\n                eq: function (index) {\n                    return FakejQuery(this[index >= 0 ? index : this[LEXICON.l] + index]);\n                },\n\n                find: function (selector) {\n                    var children = [];\n                    var i;\n                    this.each(function () {\n                        var el = this;\n                        var ch = el.querySelectorAll(selector);\n                        for (i = 0; i < ch[LEXICON.l]; i++)\n                            children.push(ch[i]);\n                    });\n                    return FakejQuery(children);\n                },\n\n                children: function (selector) {\n                    var children = [];\n                    var el;\n                    var ch;\n                    var i;\n\n                    this.each(function () {\n                        ch = this.children;\n                        for (i = 0; i < ch[LEXICON.l]; i++) {\n                            el = ch[i];\n                            if (selector) {\n                                if ((el.matches && el.matches(selector)) || matches(el, selector))\n                                    children.push(el);\n                            }\n                            else\n                                children.push(el);\n                        }\n                    });\n                    return FakejQuery(children);\n                },\n\n                parent: function (selector) {\n                    var parents = [];\n                    var parent;\n                    this.each(function () {\n                        parent = this.parentNode;\n                        if (selector ? FakejQuery(parent).is(selector) : true)\n                            parents.push(parent);\n                    });\n                    return FakejQuery(parents);\n                },\n\n                is: function (selector) {\n\n                    var el;\n                    var i;\n                    for (i = 0; i < this[LEXICON.l]; i++) {\n                        el = this[i];\n                        if (selector === ':visible')\n                            return elementIsVisible(el);\n                        if (selector === ':hidden')\n                            return !elementIsVisible(el);\n                        if ((el.matches && el.matches(selector)) || matches(el, selector))\n                            return true;\n                    }\n                    return false;\n                },\n\n                contents: function () {\n                    var contents = [];\n                    var childs;\n                    var i;\n\n                    this.each(function () {\n                        childs = this.childNodes;\n                        for (i = 0; i < childs[LEXICON.l]; i++)\n                            contents.push(childs[i]);\n                    });\n\n                    return FakejQuery(contents);\n                },\n\n                each: function (callback) {\n                    return each(this, callback);\n                },\n\n\n                //ANIMATION:\n\n                animate: function (props, duration, easing, complete) {\n                    return this.each(function () { animate(this, props, duration, easing, complete); });\n                },\n\n                stop: function (clearQ, jump) {\n                    return this.each(function () { stop(this, clearQ, jump); });\n                }\n            };\n\n            extend(FakejQuery, {\n                extend: extend,\n                inArray: inArray,\n                isEmptyObject: isEmptyObject,\n                isPlainObject: isPlainObject,\n                each: each\n            });\n\n            return FakejQuery;\n        })();\n        var INSTANCES = (function () {\n            var _targets = [];\n            var _instancePropertyString = '__overlayScrollbars__';\n\n            /**\n             * Register, unregister or get a certain (or all) instances.\n             * Register: Pass the target and the instance.\n             * Unregister: Pass the target and null.\n             * Get Instance: Pass the target from which the instance shall be got.\n             * Get Targets: Pass no arguments.\n             * @param target The target to which the instance shall be registered / from which the instance shall be unregistered / the instance shall be got\n             * @param instance The instance.\n             * @returns {*|void} Returns the instance from the given target.\n             */\n            return function (target, instance) {\n                var argLen = arguments[LEXICON.l];\n                if (argLen < 1) {\n                    //return all targets\n                    return _targets;\n                }\n                else {\n                    if (instance) {\n                        //register instance\n                        target[_instancePropertyString] = instance;\n                        _targets.push(target);\n                    }\n                    else {\n                        var index = COMPATIBILITY.inA(target, _targets);\n                        if (index > -1) {\n                            if (argLen > 1) {\n                                //unregister instance\n                                delete target[_instancePropertyString];\n                                _targets.splice(index, 1);\n                            }\n                            else {\n                                //get instance from target\n                                return _targets[index][_instancePropertyString];\n                            }\n                        }\n                    }\n                }\n            }\n        })();\n        var PLUGIN = (function () {\n            var _plugin;\n            var _pluginsGlobals;\n            var _pluginsAutoUpdateLoop;\n            var _pluginsExtensions = [];\n            var _pluginsOptions = (function () {\n                var type = COMPATIBILITY.type;\n                var possibleTemplateTypes = [\n                    TYPES.b, //boolean\n                    TYPES.n, //number\n                    TYPES.s, //string\n                    TYPES.a, //array\n                    TYPES.o, //object\n                    TYPES.f, //function\n                    TYPES.z  //null\n                ];\n                var restrictedStringsSplit = ' ';\n                var restrictedStringsPossibilitiesSplit = ':';\n                var classNameAllowedValues = [TYPES.z, TYPES.s];\n                var numberAllowedValues = TYPES.n;\n                var booleanNullAllowedValues = [TYPES.z, TYPES.b];\n                var booleanTrueTemplate = [true, TYPES.b];\n                var booleanFalseTemplate = [false, TYPES.b];\n                var callbackTemplate = [null, [TYPES.z, TYPES.f]];\n                var updateOnLoadTemplate = [['img'], [TYPES.s, TYPES.a, TYPES.z]];\n                var inheritedAttrsTemplate = [['style', 'class'], [TYPES.s, TYPES.a, TYPES.z]];\n                var resizeAllowedValues = 'n:none b:both h:horizontal v:vertical';\n                var overflowBehaviorAllowedValues = 'v-h:visible-hidden v-s:visible-scroll s:scroll h:hidden';\n                var scrollbarsVisibilityAllowedValues = 'v:visible h:hidden a:auto';\n                var scrollbarsAutoHideAllowedValues = 'n:never s:scroll l:leave m:move';\n                var optionsDefaultsAndTemplate = {\n                    className: ['os-theme-dark', classNameAllowedValues],                //null || string\n                    resize: ['none', resizeAllowedValues],                               //none || both  || horizontal || vertical || n || b || h || v\n                    sizeAutoCapable: booleanTrueTemplate,                                //true || false\n                    clipAlways: booleanTrueTemplate,                                     //true || false\n                    normalizeRTL: booleanTrueTemplate,                                   //true || false\n                    paddingAbsolute: booleanFalseTemplate,                               //true || false\n                    autoUpdate: [null, booleanNullAllowedValues],                        //true || false || null\n                    autoUpdateInterval: [33, numberAllowedValues],                       //number\n                    updateOnLoad: updateOnLoadTemplate,                                  //string || array || null\n                    nativeScrollbarsOverlaid: {\n                        showNativeScrollbars: booleanFalseTemplate,                      //true || false\n                        initialize: booleanTrueTemplate                                  //true || false\n                    },\n                    overflowBehavior: {\n                        x: ['scroll', overflowBehaviorAllowedValues],                    //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                        y: ['scroll', overflowBehaviorAllowedValues]                     //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                    },\n                    scrollbars: {\n                        visibility: ['auto', scrollbarsVisibilityAllowedValues],         //visible || hidden || auto || v || h || a\n                        autoHide: ['never', scrollbarsAutoHideAllowedValues],            //never || scroll || leave || move || n || s || l || m\n                        autoHideDelay: [800, numberAllowedValues],                       //number\n                        dragScrolling: booleanTrueTemplate,                              //true || false\n                        clickScrolling: booleanFalseTemplate,                            //true || false\n                        touchSupport: booleanTrueTemplate,                               //true || false\n                        snapHandle: booleanFalseTemplate                                 //true || false\n                    },\n                    textarea: {\n                        dynWidth: booleanFalseTemplate,                                  //true || false\n                        dynHeight: booleanFalseTemplate,                                 //true || false\n                        inheritedAttrs: inheritedAttrsTemplate                           //string || array || null\n                    },\n                    callbacks: {\n                        onInitialized: callbackTemplate,                                 //null || function\n                        onInitializationWithdrawn: callbackTemplate,                     //null || function\n                        onDestroyed: callbackTemplate,                                   //null || function\n                        onScrollStart: callbackTemplate,                                 //null || function\n                        onScroll: callbackTemplate,                                      //null || function\n                        onScrollStop: callbackTemplate,                                  //null || function\n                        onOverflowChanged: callbackTemplate,                             //null || function\n                        onOverflowAmountChanged: callbackTemplate,                       //null || function\n                        onDirectionChanged: callbackTemplate,                            //null || function\n                        onContentSizeChanged: callbackTemplate,                          //null || function\n                        onHostSizeChanged: callbackTemplate,                             //null || function\n                        onUpdated: callbackTemplate                                      //null || function\n                    }\n                };\n                var convert = function (template) {\n                    var recursive = function (obj) {\n                        var key;\n                        var val;\n                        var valType;\n                        for (key in obj) {\n                            if (!obj[LEXICON.hOP](key))\n                                continue;\n                            val = obj[key];\n                            valType = type(val);\n                            if (valType == TYPES.a)\n                                obj[key] = val[template ? 1 : 0];\n                            else if (valType == TYPES.o)\n                                obj[key] = recursive(val);\n                        }\n                        return obj;\n                    };\n                    return recursive(FRAMEWORK.extend(true, {}, optionsDefaultsAndTemplate));\n                };\n\n                return {\n                    _defaults: convert(),\n\n                    _template: convert(true),\n\n                    /**\n                     * Validates the passed object by the passed template.\n                     * @param obj The object which shall be validated.\n                     * @param template The template which defines the allowed values and types.\n                     * @param writeErrors True if errors shall be logged to the console.\n                     * @param diffObj If a object is passed then only valid differences to this object will be returned.\n                     * @returns {{}} A object which contains two objects called \"default\" and \"prepared\" which contains only the valid properties of the passed original object and discards not different values compared to the passed diffObj.\n                     */\n                    _validate: function (obj, template, writeErrors, diffObj) {\n                        var validatedOptions = {};\n                        var validatedOptionsPrepared = {};\n                        var objectCopy = FRAMEWORK.extend(true, {}, obj);\n                        var inArray = FRAMEWORK.inArray;\n                        var isEmptyObj = FRAMEWORK.isEmptyObject;\n                        var checkObjectProps = function (data, template, diffData, validatedOptions, validatedOptionsPrepared, prevPropName) {\n                            for (var prop in template) {\n                                if (template[LEXICON.hOP](prop) && data[LEXICON.hOP](prop)) {\n                                    var isValid = false;\n                                    var isDiff = false;\n                                    var templateValue = template[prop];\n                                    var templateValueType = type(templateValue);\n                                    var templateIsComplex = templateValueType == TYPES.o;\n                                    var templateTypes = !COMPATIBILITY.isA(templateValue) ? [templateValue] : templateValue;\n                                    var dataDiffValue = diffData[prop];\n                                    var dataValue = data[prop];\n                                    var dataValueType = type(dataValue);\n                                    var propPrefix = prevPropName ? prevPropName + '.' : '';\n                                    var error = \"The option \\\"\" + propPrefix + prop + \"\\\" wasn't set, because\";\n                                    var errorPossibleTypes = [];\n                                    var errorRestrictedStrings = [];\n                                    var restrictedStringValuesSplit;\n                                    var restrictedStringValuesPossibilitiesSplit;\n                                    var isRestrictedValue;\n                                    var mainPossibility;\n                                    var currType;\n                                    var i;\n                                    var v;\n                                    var j;\n\n                                    dataDiffValue = dataDiffValue === undefined ? {} : dataDiffValue;\n\n                                    //if the template has a object as value, it means that the options are complex (verschachtelt)\n                                    if (templateIsComplex && dataValueType == TYPES.o) {\n                                        validatedOptions[prop] = {};\n                                        validatedOptionsPrepared[prop] = {};\n                                        checkObjectProps(dataValue, templateValue, dataDiffValue, validatedOptions[prop], validatedOptionsPrepared[prop], propPrefix + prop);\n                                        FRAMEWORK.each([data, validatedOptions, validatedOptionsPrepared], function (index, value) {\n                                            if (isEmptyObj(value[prop])) {\n                                                delete value[prop];\n                                            }\n                                        });\n                                    }\n                                    else if (!templateIsComplex) {\n                                        for (i = 0; i < templateTypes[LEXICON.l]; i++) {\n                                            currType = templateTypes[i];\n                                            templateValueType = type(currType);\n                                            //if currtype is string and starts with restrictedStringPrefix and end with restrictedStringSuffix\n                                            isRestrictedValue = templateValueType == TYPES.s && inArray(currType, possibleTemplateTypes) === -1;\n                                            if (isRestrictedValue) {\n                                                errorPossibleTypes.push(TYPES.s);\n\n                                                //split it into a array which contains all possible values for example: [\"y:yes\", \"n:no\", \"m:maybe\"]\n                                                restrictedStringValuesSplit = currType.split(restrictedStringsSplit);\n                                                errorRestrictedStrings = errorRestrictedStrings.concat(restrictedStringValuesSplit);\n                                                for (v = 0; v < restrictedStringValuesSplit[LEXICON.l]; v++) {\n                                                    //split the possible values into their possibiliteis for example: [\"y\", \"yes\"] -> the first is always the mainPossibility\n                                                    restrictedStringValuesPossibilitiesSplit = restrictedStringValuesSplit[v].split(restrictedStringsPossibilitiesSplit);\n                                                    mainPossibility = restrictedStringValuesPossibilitiesSplit[0];\n                                                    for (j = 0; j < restrictedStringValuesPossibilitiesSplit[LEXICON.l]; j++) {\n                                                        //if any possibility matches with the dataValue, its valid\n                                                        if (dataValue === restrictedStringValuesPossibilitiesSplit[j]) {\n                                                            isValid = true;\n                                                            break;\n                                                        }\n                                                    }\n                                                    if (isValid)\n                                                        break;\n                                                }\n                                            }\n                                            else {\n                                                errorPossibleTypes.push(currType);\n\n                                                if (dataValueType === currType) {\n                                                    isValid = true;\n                                                    break;\n                                                }\n                                            }\n                                        }\n\n                                        if (isValid) {\n                                            isDiff = dataValue !== dataDiffValue;\n\n                                            if (isDiff)\n                                                validatedOptions[prop] = dataValue;\n\n                                            if (isRestrictedValue ? inArray(dataDiffValue, restrictedStringValuesPossibilitiesSplit) < 0 : isDiff)\n                                                validatedOptionsPrepared[prop] = isRestrictedValue ? mainPossibility : dataValue;\n                                        }\n                                        else if (writeErrors) {\n                                            console.warn(error + \" it doesn't accept the type [ \" + dataValueType.toUpperCase() + \" ] with the value of \\\"\" + dataValue + \"\\\".\\r\\n\" +\n                                                \"Accepted types are: [ \" + errorPossibleTypes.join(', ').toUpperCase() + \" ].\" +\n                                                (errorRestrictedStrings[length] > 0 ? \"\\r\\nValid strings are: [ \" + errorRestrictedStrings.join(', ').split(restrictedStringsPossibilitiesSplit).join(', ') + \" ].\" : ''));\n                                        }\n                                        delete data[prop];\n                                    }\n                                }\n                            }\n                        };\n                        checkObjectProps(objectCopy, template, diffObj || {}, validatedOptions, validatedOptionsPrepared);\n\n                        //add values which aren't specified in the template to the finished validated object to prevent them from being discarded\n                        /*\n                        if(keepForeignProps) {\n                            FRAMEWORK.extend(true, validatedOptions, objectCopy);\n                            FRAMEWORK.extend(true, validatedOptionsPrepared, objectCopy);\n                        }\n                        */\n\n                        if (!isEmptyObj(objectCopy) && writeErrors)\n                            console.warn('The following options are discarded due to invalidity:\\r\\n' + window.JSON.stringify(objectCopy, null, 2));\n\n                        return {\n                            _default: validatedOptions,\n                            _prepared: validatedOptionsPrepared\n                        };\n                    }\n                }\n            }());\n\n            /**\n             * Initializes the object which contains global information about the plugin and each instance of it.\n             */\n            function initOverlayScrollbarsStatics() {\n                if (!_pluginsGlobals)\n                    _pluginsGlobals = new OverlayScrollbarsGlobals(_pluginsOptions._defaults);\n                if (!_pluginsAutoUpdateLoop)\n                    _pluginsAutoUpdateLoop = new OverlayScrollbarsAutoUpdateLoop(_pluginsGlobals);\n            }\n\n            /**\n             * The global object for the OverlayScrollbars objects. It contains resources which every OverlayScrollbars object needs. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @param defaultOptions\n             * @constructor\n             */\n            function OverlayScrollbarsGlobals(defaultOptions) {\n                var _base = this;\n                var strOverflow = 'overflow';\n                var strHidden = 'hidden';\n                var strScroll = 'scroll';\n                var bodyElement = FRAMEWORK('body');\n                var scrollbarDummyElement = FRAMEWORK('<div id=\"os-dummy-scrollbar-size\"><div></div></div>');\n                var scrollbarDummyElement0 = scrollbarDummyElement[0];\n                var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));\n\n                bodyElement.append(scrollbarDummyElement);\n                scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)\n\n                var nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement0);\n                var nativeScrollbarIsOverlaid = {\n                    x: nativeScrollbarSize.x === 0,\n                    y: nativeScrollbarSize.y === 0\n                };\n                var msie = (function () {\n                    var ua = window.navigator.userAgent;\n                    var strIndexOf = 'indexOf';\n                    var strSubString = 'substring';\n                    var msie = ua[strIndexOf]('MSIE ');\n                    var trident = ua[strIndexOf]('Trident/');\n                    var edge = ua[strIndexOf]('Edge/');\n                    var rv = ua[strIndexOf]('rv:');\n                    var result;\n                    var parseIntFunc = parseInt;\n\n                    // IE 10 or older => return version number\n                    if (msie > 0)\n                        result = parseIntFunc(ua[strSubString](msie + 5, ua[strIndexOf]('.', msie)), 10);\n\n                    // IE 11 => return version number\n                    else if (trident > 0)\n                        result = parseIntFunc(ua[strSubString](rv + 3, ua[strIndexOf]('.', rv)), 10);\n\n                    // Edge (IE 12+) => return version number\n                    else if (edge > 0)\n                        result = parseIntFunc(ua[strSubString](edge + 5, ua[strIndexOf]('.', edge)), 10);\n\n                    // other browser\n                    return result;\n                })();\n\n                FRAMEWORK.extend(_base, {\n                    defaultOptions: defaultOptions,\n                    msie: msie,\n                    autoUpdateLoop: false,\n                    autoUpdateRecommended: !COMPATIBILITY.mO(),\n                    nativeScrollbarSize: nativeScrollbarSize,\n                    nativeScrollbarIsOverlaid: nativeScrollbarIsOverlaid,\n                    nativeScrollbarStyling: (function () {\n                        var result = false;\n                        scrollbarDummyElement.addClass('os-viewport-native-scrollbars-invisible');\n                        try {\n                            result = (scrollbarDummyElement.css('scrollbar-width') === 'none' && (msie > 9 || !msie)) || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';\n                        } catch (ex) { }\n\n                        //fix opera bug: scrollbar styles will only appear if overflow value is scroll or auto during the activation of the style.\n                        //and set overflow to scroll\n                        //scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();\n                        //return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;\n\n                        return result;\n                    })(),\n                    overlayScrollbarDummySize: { x: 30, y: 30 },\n                    cssCalc: VENDORS._cssPropertyValue('width', 'calc', '(1px)') || null,\n                    restrictedMeasuring: (function () {\n                        //https://bugzilla.mozilla.org/show_bug.cgi?id=1439305\n                        //since 1.11.0 always false -> fixed via CSS (hopefully)\n                        scrollbarDummyElement.css(strOverflow, strHidden);\n                        var scrollSize = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        scrollbarDummyElement.css(strOverflow, 'visible');\n                        var scrollSize2 = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        return (scrollSize.w - scrollSize2.w) !== 0 || (scrollSize.h - scrollSize2.h) !== 0;\n                    })(),\n                    rtlScrollBehavior: (function () {\n                        scrollbarDummyElement.css({ 'overflow-y': strHidden, 'overflow-x': strScroll, 'direction': 'rtl' }).scrollLeft(0);\n                        var dummyContainerOffset = scrollbarDummyElement.offset();\n                        var dummyContainerChildOffset = dummyContainerChild.offset();\n                        //https://github.com/KingSora/OverlayScrollbars/issues/187\n                        scrollbarDummyElement.scrollLeft(-999);\n                        var dummyContainerChildOffsetAfterScroll = dummyContainerChild.offset();\n                        return {\n                            //origin direction = determines if the zero scroll position is on the left or right side\n                            //'i' means 'invert' (i === true means that the axis must be inverted to be correct)\n                            //true = on the left side\n                            //false = on the right side\n                            i: dummyContainerOffset.left === dummyContainerChildOffset.left,\n                            //negative = determines if the maximum scroll is positive or negative\n                            //'n' means 'negate' (n === true means that the axis must be negated to be correct)\n                            //true = negative\n                            //false = positive\n                            n: dummyContainerChildOffset.left !== dummyContainerChildOffsetAfterScroll.left\n                        };\n                    })(),\n                    supportTransform: !!VENDORS._cssProperty('transform'),\n                    supportTransition: !!VENDORS._cssProperty('transition'),\n                    supportPassiveEvents: (function () {\n                        var supportsPassive = false;\n                        try {\n                            window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n                                get: function () {\n                                    supportsPassive = true;\n                                }\n                            }));\n                        } catch (e) { }\n                        return supportsPassive;\n                    })(),\n                    supportResizeObserver: !!COMPATIBILITY.rO(),\n                    supportMutationObserver: !!COMPATIBILITY.mO()\n                });\n\n                scrollbarDummyElement.removeAttr(LEXICON.s).remove();\n\n                //Catch zoom event:\n                (function () {\n                    if (nativeScrollbarIsOverlaid.x && nativeScrollbarIsOverlaid.y)\n                        return;\n\n                    var abs = MATH.abs;\n                    var windowWidth = COMPATIBILITY.wW();\n                    var windowHeight = COMPATIBILITY.wH();\n                    var windowDpr = getWindowDPR();\n                    var onResize = function () {\n                        if (INSTANCES().length > 0) {\n                            var newW = COMPATIBILITY.wW();\n                            var newH = COMPATIBILITY.wH();\n                            var deltaW = newW - windowWidth;\n                            var deltaH = newH - windowHeight;\n\n                            if (deltaW === 0 && deltaH === 0)\n                                return;\n\n                            var deltaWRatio = MATH.round(newW / (windowWidth / 100.0));\n                            var deltaHRatio = MATH.round(newH / (windowHeight / 100.0));\n                            var absDeltaW = abs(deltaW);\n                            var absDeltaH = abs(deltaH);\n                            var absDeltaWRatio = abs(deltaWRatio);\n                            var absDeltaHRatio = abs(deltaHRatio);\n                            var newDPR = getWindowDPR();\n\n                            var deltaIsBigger = absDeltaW > 2 && absDeltaH > 2;\n                            var difference = !differenceIsBiggerThanOne(absDeltaWRatio, absDeltaHRatio);\n                            var dprChanged = newDPR !== windowDpr && windowDpr > 0;\n                            var isZoom = deltaIsBigger && difference && dprChanged;\n                            var oldScrollbarSize = _base.nativeScrollbarSize;\n                            var newScrollbarSize;\n\n                            if (isZoom) {\n                                bodyElement.append(scrollbarDummyElement);\n                                newScrollbarSize = _base.nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement[0]);\n                                scrollbarDummyElement.remove();\n                                if (oldScrollbarSize.x !== newScrollbarSize.x || oldScrollbarSize.y !== newScrollbarSize.y) {\n                                    FRAMEWORK.each(INSTANCES(), function () {\n                                        if (INSTANCES(this))\n                                            INSTANCES(this).update('zoom');\n                                    });\n                                }\n                            }\n\n                            windowWidth = newW;\n                            windowHeight = newH;\n                            windowDpr = newDPR;\n                        }\n                    };\n\n                    function differenceIsBiggerThanOne(valOne, valTwo) {\n                        var absValOne = abs(valOne);\n                        var absValTwo = abs(valTwo);\n                        return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\n                    }\n\n                    function getWindowDPR() {\n                        var dDPI = window.screen.deviceXDPI || 0;\n                        var sDPI = window.screen.logicalXDPI || 1;\n                        return window.devicePixelRatio || (dDPI / sDPI);\n                    }\n\n                    FRAMEWORK(window).on('resize', onResize);\n                })();\n\n                function calcNativeScrollbarSize(measureElement) {\n                    return {\n                        x: measureElement[LEXICON.oH] - measureElement[LEXICON.cH],\n                        y: measureElement[LEXICON.oW] - measureElement[LEXICON.cW]\n                    };\n                }\n            }\n\n            /**\n             * The object which manages the auto update loop for all OverlayScrollbars objects. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @constructor\n             */\n            function OverlayScrollbarsAutoUpdateLoop(globals) {\n                var _base = this;\n                var _inArray = FRAMEWORK.inArray;\n                var _getNow = COMPATIBILITY.now;\n                var _strAutoUpdate = 'autoUpdate';\n                var _strAutoUpdateInterval = _strAutoUpdate + 'Interval';\n                var _strLength = LEXICON.l;\n                var _loopingInstances = [];\n                var _loopingInstancesIntervalCache = [];\n                var _loopIsActive = false;\n                var _loopIntervalDefault = 33;\n                var _loopInterval = _loopIntervalDefault;\n                var _loopTimeOld = _getNow();\n                var _loopID;\n\n\n                /**\n                 * The auto update loop which will run every 50 milliseconds or less if the update interval of a instance is lower than 50 milliseconds.\n                 */\n                var loop = function () {\n                    if (_loopingInstances[_strLength] > 0 && _loopIsActive) {\n                        _loopID = COMPATIBILITY.rAF()(function () {\n                            loop();\n                        });\n                        var timeNew = _getNow();\n                        var timeDelta = timeNew - _loopTimeOld;\n                        var lowestInterval;\n                        var instance;\n                        var instanceOptions;\n                        var instanceAutoUpdateAllowed;\n                        var instanceAutoUpdateInterval;\n                        var now;\n\n                        if (timeDelta > _loopInterval) {\n                            _loopTimeOld = timeNew - (timeDelta % _loopInterval);\n                            lowestInterval = _loopIntervalDefault;\n                            for (var i = 0; i < _loopingInstances[_strLength]; i++) {\n                                instance = _loopingInstances[i];\n                                if (instance !== undefined) {\n                                    instanceOptions = instance.options();\n                                    instanceAutoUpdateAllowed = instanceOptions[_strAutoUpdate];\n                                    instanceAutoUpdateInterval = MATH.max(1, instanceOptions[_strAutoUpdateInterval]);\n                                    now = _getNow();\n\n                                    if ((instanceAutoUpdateAllowed === true || instanceAutoUpdateAllowed === null) && (now - _loopingInstancesIntervalCache[i]) > instanceAutoUpdateInterval) {\n                                        instance.update('auto');\n                                        _loopingInstancesIntervalCache[i] = new Date(now += instanceAutoUpdateInterval);\n                                    }\n\n                                    lowestInterval = MATH.max(1, MATH.min(lowestInterval, instanceAutoUpdateInterval));\n                                }\n                            }\n                            _loopInterval = lowestInterval;\n                        }\n                    } else {\n                        _loopInterval = _loopIntervalDefault;\n                    }\n                };\n\n                /**\n                 * Add OverlayScrollbars instance to the auto update loop. Only successful if the instance isn't already added.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.add = function (instance) {\n                    if (_inArray(instance, _loopingInstances) === -1) {\n                        _loopingInstances.push(instance);\n                        _loopingInstancesIntervalCache.push(_getNow());\n                        if (_loopingInstances[_strLength] > 0 && !_loopIsActive) {\n                            _loopIsActive = true;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            loop();\n                        }\n                    }\n                };\n\n                /**\n                 * Remove OverlayScrollbars instance from the auto update loop. Only successful if the instance was added before.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.remove = function (instance) {\n                    var index = _inArray(instance, _loopingInstances);\n                    if (index > -1) {\n                        //remove from loopingInstances list\n                        _loopingInstancesIntervalCache.splice(index, 1);\n                        _loopingInstances.splice(index, 1);\n\n                        //correct update loop behavior\n                        if (_loopingInstances[_strLength] === 0 && _loopIsActive) {\n                            _loopIsActive = false;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            if (_loopID !== undefined) {\n                                COMPATIBILITY.cAF()(_loopID);\n                                _loopID = -1;\n                            }\n                        }\n                    }\n                };\n            }\n\n            /**\n             * A object which manages the scrollbars visibility of the target element.\n             * @param pluginTargetElement The element from which the scrollbars shall be hidden.\n             * @param options The custom options.\n             * @param extensions The custom extensions.\n             * @param globals\n             * @param autoUpdateLoop\n             * @returns {*}\n             * @constructor\n             */\n            function OverlayScrollbarsInstance(pluginTargetElement, options, extensions, globals, autoUpdateLoop) {\n                //shortcuts\n                var type = COMPATIBILITY.type;\n                var inArray = FRAMEWORK.inArray;\n                var each = FRAMEWORK.each;\n\n                //make correct instanceof\n                var _base = new _plugin();\n                var _frameworkProto = FRAMEWORK[LEXICON.p];\n\n                //if passed element is no HTML element: skip and return\n                if (!isHTMLElement(pluginTargetElement))\n                    return;\n\n                //if passed element is already initialized: set passed options if there are any and return its instance\n                if (INSTANCES(pluginTargetElement)) {\n                    var inst = INSTANCES(pluginTargetElement);\n                    inst.options(options);\n                    return inst;\n                }\n\n                //globals:\n                var _nativeScrollbarIsOverlaid;\n                var _overlayScrollbarDummySize;\n                var _rtlScrollBehavior;\n                var _autoUpdateRecommended;\n                var _msieVersion;\n                var _nativeScrollbarStyling;\n                var _cssCalc;\n                var _nativeScrollbarSize;\n                var _supportTransition;\n                var _supportTransform;\n                var _supportPassiveEvents;\n                var _supportResizeObserver;\n                var _supportMutationObserver;\n                var _restrictedMeasuring;\n\n                //general readonly:\n                var _initialized;\n                var _destroyed;\n                var _isTextarea;\n                var _isBody;\n                var _documentMixed;\n                var _domExists;\n\n                //general:\n                var _isBorderBox;\n                var _sizeAutoObserverAdded;\n                var _paddingX;\n                var _paddingY;\n                var _borderX;\n                var _borderY;\n                var _marginX;\n                var _marginY;\n                var _isRTL;\n                var _sleeping;\n                var _contentBorderSize = {};\n                var _scrollHorizontalInfo = {};\n                var _scrollVerticalInfo = {};\n                var _viewportSize = {};\n                var _nativeScrollbarMinSize = {};\n\n                //naming:\t\n                var _strMinusHidden = '-hidden';\n                var _strMarginMinus = 'margin-';\n                var _strPaddingMinus = 'padding-';\n                var _strBorderMinus = 'border-';\n                var _strTop = 'top';\n                var _strRight = 'right';\n                var _strBottom = 'bottom';\n                var _strLeft = 'left';\n                var _strMinMinus = 'min-';\n                var _strMaxMinus = 'max-';\n                var _strWidth = 'width';\n                var _strHeight = 'height';\n                var _strFloat = 'float';\n                var _strEmpty = '';\n                var _strAuto = 'auto';\n                var _strSync = 'sync';\n                var _strScroll = 'scroll';\n                var _strHundredPercent = '100%';\n                var _strX = 'x';\n                var _strY = 'y';\n                var _strDot = '.';\n                var _strSpace = ' ';\n                var _strScrollbar = 'scrollbar';\n                var _strMinusHorizontal = '-horizontal';\n                var _strMinusVertical = '-vertical';\n                var _strScrollLeft = _strScroll + 'Left';\n                var _strScrollTop = _strScroll + 'Top';\n                var _strMouseTouchDownEvent = 'mousedown touchstart';\n                var _strMouseTouchUpEvent = 'mouseup touchend touchcancel';\n                var _strMouseTouchMoveEvent = 'mousemove touchmove';\n                var _strMouseEnter = 'mouseenter';\n                var _strMouseLeave = 'mouseleave';\n                var _strKeyDownEvent = 'keydown';\n                var _strKeyUpEvent = 'keyup';\n                var _strSelectStartEvent = 'selectstart';\n                var _strTransitionEndEvent = 'transitionend webkitTransitionEnd oTransitionEnd';\n                var _strResizeObserverProperty = '__overlayScrollbarsRO__';\n\n                //class names:\t\n                var _cassNamesPrefix = 'os-';\n                var _classNameHTMLElement = _cassNamesPrefix + 'html';\n                var _classNameHostElement = _cassNamesPrefix + 'host';\n                var _classNameHostElementForeign = _classNameHostElement + '-foreign';\n                var _classNameHostTextareaElement = _classNameHostElement + '-textarea';\n                var _classNameHostScrollbarHorizontalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusHorizontal + _strMinusHidden;\n                var _classNameHostScrollbarVerticalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusVertical + _strMinusHidden;\n                var _classNameHostTransition = _classNameHostElement + '-transition';\n                var _classNameHostRTL = _classNameHostElement + '-rtl';\n                var _classNameHostResizeDisabled = _classNameHostElement + '-resize-disabled';\n                var _classNameHostScrolling = _classNameHostElement + '-scrolling';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflowX = _classNameHostOverflow + '-x';\n                var _classNameHostOverflowY = _classNameHostOverflow + '-y';\n                var _classNameTextareaElement = _cassNamesPrefix + 'textarea';\n                var _classNameTextareaCoverElement = _classNameTextareaElement + '-cover';\n                var _classNamePaddingElement = _cassNamesPrefix + 'padding';\n                var _classNameViewportElement = _cassNamesPrefix + 'viewport';\n                var _classNameViewportNativeScrollbarsInvisible = _classNameViewportElement + '-native-scrollbars-invisible';\n                var _classNameViewportNativeScrollbarsOverlaid = _classNameViewportElement + '-native-scrollbars-overlaid';\n                var _classNameContentElement = _cassNamesPrefix + 'content';\n                var _classNameContentArrangeElement = _cassNamesPrefix + 'content-arrange';\n                var _classNameContentGlueElement = _cassNamesPrefix + 'content-glue';\n                var _classNameSizeAutoObserverElement = _cassNamesPrefix + 'size-auto-observer';\n                var _classNameResizeObserverElement = _cassNamesPrefix + 'resize-observer';\n                var _classNameResizeObserverItemElement = _cassNamesPrefix + 'resize-observer-item';\n                var _classNameResizeObserverItemFinalElement = _classNameResizeObserverItemElement + '-final';\n                var _classNameTextInherit = _cassNamesPrefix + 'text-inherit';\n                var _classNameScrollbar = _cassNamesPrefix + _strScrollbar;\n                var _classNameScrollbarTrack = _classNameScrollbar + '-track';\n                var _classNameScrollbarTrackOff = _classNameScrollbarTrack + '-off';\n                var _classNameScrollbarHandle = _classNameScrollbar + '-handle';\n                var _classNameScrollbarHandleOff = _classNameScrollbarHandle + '-off';\n                var _classNameScrollbarUnusable = _classNameScrollbar + '-unusable';\n                var _classNameScrollbarAutoHidden = _classNameScrollbar + '-' + _strAuto + _strMinusHidden;\n                var _classNameScrollbarCorner = _classNameScrollbar + '-corner';\n                var _classNameScrollbarCornerResize = _classNameScrollbarCorner + '-resize';\n                var _classNameScrollbarCornerResizeB = _classNameScrollbarCornerResize + '-both';\n                var _classNameScrollbarCornerResizeH = _classNameScrollbarCornerResize + _strMinusHorizontal;\n                var _classNameScrollbarCornerResizeV = _classNameScrollbarCornerResize + _strMinusVertical;\n                var _classNameScrollbarHorizontal = _classNameScrollbar + _strMinusHorizontal;\n                var _classNameScrollbarVertical = _classNameScrollbar + _strMinusVertical;\n                var _classNameDragging = _cassNamesPrefix + 'dragging';\n                var _classNameThemeNone = _cassNamesPrefix + 'theme-none';\n                var _classNamesDynamicDestroy = [\n                    _classNameViewportNativeScrollbarsInvisible,\n                    _classNameViewportNativeScrollbarsOverlaid,\n                    _classNameScrollbarTrackOff,\n                    _classNameScrollbarHandleOff,\n                    _classNameScrollbarUnusable,\n                    _classNameScrollbarAutoHidden,\n                    _classNameScrollbarCornerResize,\n                    _classNameScrollbarCornerResizeB,\n                    _classNameScrollbarCornerResizeH,\n                    _classNameScrollbarCornerResizeV,\n                    _classNameDragging].join(_strSpace);\n\n                //callbacks:\t\n                var _callbacksInitQeueue = [];\n\n                //attrs viewport shall inherit from target\t\n                var _viewportAttrsFromTarget = [LEXICON.ti];\n\n                //options:\t\n                var _defaultOptions;\n                var _currentOptions;\n                var _currentPreparedOptions;\n\n                //extensions:\t\n                var _extensions = {};\n                var _extensionsPrivateMethods = 'added removed on contract';\n\n                //update\t\n                var _lastUpdateTime;\n                var _swallowedUpdateHints = {};\n                var _swallowedUpdateTimeout;\n                var _swallowUpdateLag = 42;\n                var _updateOnLoadEventName = 'load';\n                var _updateOnLoadElms = [];\n\n                //DOM elements:\t\n                var _windowElement;\n                var _documentElement;\n                var _htmlElement;\n                var _bodyElement;\n                var _targetElement;                     //the target element of this OverlayScrollbars object\t\n                var _hostElement;                       //the host element of this OverlayScrollbars object -> may be the same as targetElement\t\n                var _sizeAutoObserverElement;           //observes size auto changes\t\n                var _sizeObserverElement;               //observes size and padding changes\t\n                var _paddingElement;                    //manages the padding\t\n                var _viewportElement;                   //is the viewport of our scrollbar model\t\n                var _contentElement;                    //the element which holds the content\t\n                var _contentArrangeElement;             //is needed for correct sizing of the content element (only if native scrollbars are overlays)\t\n                var _contentGlueElement;                //has always the size of the content element\t\n                var _textareaCoverElement;              //only applied if target is a textarea element. Used for correct size calculation and for prevention of uncontrolled scrolling\t\n                var _scrollbarCornerElement;\n                var _scrollbarHorizontalElement;\n                var _scrollbarHorizontalTrackElement;\n                var _scrollbarHorizontalHandleElement;\n                var _scrollbarVerticalElement;\n                var _scrollbarVerticalTrackElement;\n                var _scrollbarVerticalHandleElement;\n                var _windowElementNative;\n                var _documentElementNative;\n                var _targetElementNative;\n                var _hostElementNative;\n                var _sizeAutoObserverElementNative;\n                var _sizeObserverElementNative;\n                var _paddingElementNative;\n                var _viewportElementNative;\n                var _contentElementNative;\n\n                //Cache:\t\n                var _hostSizeCache;\n                var _contentScrollSizeCache;\n                var _arrangeContentSizeCache;\n                var _hasOverflowCache;\n                var _hideOverflowCache;\n                var _widthAutoCache;\n                var _heightAutoCache;\n                var _cssBoxSizingCache;\n                var _cssPaddingCache;\n                var _cssBorderCache;\n                var _cssMarginCache;\n                var _cssDirectionCache;\n                var _cssDirectionDetectedCache;\n                var _paddingAbsoluteCache;\n                var _clipAlwaysCache;\n                var _contentGlueSizeCache;\n                var _overflowBehaviorCache;\n                var _overflowAmountCache;\n                var _ignoreOverlayScrollbarHidingCache;\n                var _autoUpdateCache;\n                var _sizeAutoCapableCache;\n                var _contentElementScrollSizeChangeDetectedCache;\n                var _hostElementSizeChangeDetectedCache;\n                var _scrollbarsVisibilityCache;\n                var _scrollbarsAutoHideCache;\n                var _scrollbarsClickScrollingCache;\n                var _scrollbarsDragScrollingCache;\n                var _resizeCache;\n                var _normalizeRTLCache;\n                var _classNameCache;\n                var _oldClassName;\n                var _textareaAutoWrappingCache;\n                var _textareaInfoCache;\n                var _textareaSizeCache;\n                var _textareaDynHeightCache;\n                var _textareaDynWidthCache;\n                var _bodyMinSizeCache;\n                var _updateAutoCache = {};\n\n                //MutationObserver:\t\n                var _mutationObserverHost;\n                var _mutationObserverContent;\n                var _mutationObserverHostCallback;\n                var _mutationObserverContentCallback;\n                var _mutationObserversConnected;\n                var _mutationObserverAttrsTextarea = ['wrap', 'cols', 'rows'];\n                var _mutationObserverAttrsHost = [LEXICON.i, LEXICON.c, LEXICON.s, 'open'].concat(_viewportAttrsFromTarget);\n\n                //events:\t\n                var _destroyEvents = [];\n\n                //textarea:\t\n                var _textareaHasFocus;\n\n                //scrollbars:\t\n                var _scrollbarsAutoHideTimeoutId;\n                var _scrollbarsAutoHideMoveTimeoutId;\n                var _scrollbarsAutoHideDelay;\n                var _scrollbarsAutoHideNever;\n                var _scrollbarsAutoHideScroll;\n                var _scrollbarsAutoHideMove;\n                var _scrollbarsAutoHideLeave;\n                var _scrollbarsHandleHovered;\n                var _scrollbarsHandlesDefineScrollPos;\n\n                //resize\t\n                var _resizeNone;\n                var _resizeBoth;\n                var _resizeHorizontal;\n                var _resizeVertical;\n\n\n                //==== Event Listener ====//\t\n\n                /**\t\n                 * Adds or removes a event listener from the given element. \t\n                 * @param element The element to which the event listener shall be applied or removed.\t\n                 * @param eventNames The name(s) of the events.\t\n                 * @param listener The method which shall be called.\t\n                 * @param remove True if the handler shall be removed, false or undefined if the handler shall be added.\t\n                 * @param passiveOrOptions The options for the event.\n                 */\n                function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {\n                    var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);\n                    var method = remove ? 'removeEventListener' : 'addEventListener';\n                    var onOff = remove ? 'off' : 'on';\n                    var events = collected ? false : eventNames.split(_strSpace)\n                    var i = 0;\n\n                    var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);\n                    var passive = (_supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive) : passiveOrOptions)) || false;\n                    var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);\n                    var nativeParam = _supportPassiveEvents ? {\n                        passive: passive,\n                        capture: capture,\n                    } : capture;\n\n                    if (collected) {\n                        for (; i < eventNames[LEXICON.l]; i++)\n                            setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);\n                    }\n                    else {\n                        for (; i < events[LEXICON.l]; i++) {\n                            if(_supportPassiveEvents) {\n                                element[0][method](events[i], listener, nativeParam);\n                            }\n                            else {\n                                element[onOff](events[i], listener);\n                            }     \n                        }\n                    }\n                }\n\n\n                function addDestroyEventListener(element, eventNames, listener, passive) {\n                    setupResponsiveEventListener(element, eventNames, listener, false, passive);\n                    _destroyEvents.push(COMPATIBILITY.bind(setupResponsiveEventListener, 0, element, eventNames, listener, true, passive));\n                }\n\n                //==== Resize Observer ====//\n\n                /**\n                 * Adds or removes a resize observer from the given element.\n                 * @param targetElement The element to which the resize observer shall be added or removed.\n                 * @param onElementResizedCallback The callback which is fired every time the resize observer registers a size change or false / undefined if the resizeObserver shall be removed.\n                 */\n                function setupResizeObserver(targetElement, onElementResizedCallback) {\n                    if (targetElement) {\n                        var resizeObserver = COMPATIBILITY.rO();\n                        var strAnimationStartEvent = 'animationstart mozAnimationStart webkitAnimationStart MSAnimationStart';\n                        var strChildNodes = 'childNodes';\n                        var constScroll = 3333333;\n                        var callback = function () {\n                            targetElement[_strScrollTop](constScroll)[_strScrollLeft](_isRTL ? _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll : constScroll);\n                            onElementResizedCallback();\n                        };\n                        //add resize observer:\n                        if (onElementResizedCallback) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.addClass('observed').append(generateDiv(_classNameResizeObserverElement)).contents()[0];\n                                var observer = element[_strResizeObserverProperty] = new resizeObserver(callback);\n                                observer.observe(element);\n                            }\n                            else {\n                                if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                                    targetElement.prepend(\n                                        generateDiv(_classNameResizeObserverElement,\n                                            generateDiv({ c: _classNameResizeObserverItemElement, dir: 'ltr' },\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv(_classNameResizeObserverItemFinalElement)\n                                                ) +\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv({ c: _classNameResizeObserverItemFinalElement, style: 'width: 200%; height: 200%' })\n                                                )\n                                            )\n                                        )\n                                    );\n\n                                    var observerElement = targetElement[0][strChildNodes][0][strChildNodes][0];\n                                    var shrinkElement = FRAMEWORK(observerElement[strChildNodes][1]);\n                                    var expandElement = FRAMEWORK(observerElement[strChildNodes][0]);\n                                    var expandElementChild = FRAMEWORK(expandElement[0][strChildNodes][0]);\n                                    var widthCache = observerElement[LEXICON.oW];\n                                    var heightCache = observerElement[LEXICON.oH];\n                                    var isDirty;\n                                    var rAFId;\n                                    var currWidth;\n                                    var currHeight;\n                                    var factor = 2;\n                                    var nativeScrollbarSize = globals.nativeScrollbarSize; //care don't make changes to this object!!!\n                                    var reset = function () {\n                                        /*\n                                         var sizeResetWidth = observerElement[LEXICON.oW] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var sizeResetHeight = observerElement[LEXICON.oH] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var expandChildCSS = {};\n                                         expandChildCSS[_strWidth] = sizeResetWidth;\n                                         expandChildCSS[_strHeight] = sizeResetHeight;\n                                         expandElementChild.css(expandChildCSS);\n\n\n                                         expandElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         shrinkElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         */\n                                        expandElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                        shrinkElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                    };\n                                    var onResized = function () {\n                                        rAFId = 0;\n                                        if (!isDirty)\n                                            return;\n\n                                        widthCache = currWidth;\n                                        heightCache = currHeight;\n                                        callback();\n                                    };\n                                    var onScroll = function (event) {\n                                        currWidth = observerElement[LEXICON.oW];\n                                        currHeight = observerElement[LEXICON.oH];\n                                        isDirty = currWidth != widthCache || currHeight != heightCache;\n\n                                        if (event && isDirty && !rAFId) {\n                                            COMPATIBILITY.cAF()(rAFId);\n                                            rAFId = COMPATIBILITY.rAF()(onResized);\n                                        }\n                                        else if (!event)\n                                            onResized();\n\n                                        reset();\n                                        if (event) {\n                                            COMPATIBILITY.prvD(event);\n                                            COMPATIBILITY.stpP(event);\n                                        }\n                                        return false;\n                                    };\n                                    var expandChildCSS = {};\n                                    var observerElementCSS = {};\n\n                                    setTopRightBottomLeft(observerElementCSS, _strEmpty, [\n                                        -((nativeScrollbarSize.y + 1) * factor),\n                                        nativeScrollbarSize.x * -factor,\n                                        nativeScrollbarSize.y * -factor,\n                                        -((nativeScrollbarSize.x + 1) * factor)\n                                    ]);\n\n                                    FRAMEWORK(observerElement).css(observerElementCSS);\n                                    expandElement.on(_strScroll, onScroll);\n                                    shrinkElement.on(_strScroll, onScroll);\n                                    targetElement.on(strAnimationStartEvent, function () {\n                                        onScroll(false);\n                                    });\n                                    //lets assume that the divs will never be that large and a constant value is enough\n                                    expandChildCSS[_strWidth] = constScroll;\n                                    expandChildCSS[_strHeight] = constScroll;\n                                    expandElementChild.css(expandChildCSS);\n\n                                    reset();\n                                }\n                                else {\n                                    var attachEvent = _documentElementNative.attachEvent;\n                                    var isIE = _msieVersion !== undefined;\n                                    if (attachEvent) {\n                                        targetElement.prepend(generateDiv(_classNameResizeObserverElement));\n                                        findFirst(targetElement, _strDot + _classNameResizeObserverElement)[0].attachEvent('onresize', callback);\n                                    }\n                                    else {\n                                        var obj = _documentElementNative.createElement(TYPES.o);\n                                        obj.setAttribute(LEXICON.ti, '-1');\n                                        obj.setAttribute(LEXICON.c, _classNameResizeObserverElement);\n                                        obj.onload = function () {\n                                            var wnd = this.contentDocument.defaultView;\n                                            wnd.addEventListener('resize', callback);\n                                            wnd.document.documentElement.style.display = 'none';\n                                        };\n                                        obj.type = 'text/html';\n                                        if (isIE)\n                                            targetElement.prepend(obj);\n                                        obj.data = 'about:blank';\n                                        if (!isIE)\n                                            targetElement.prepend(obj);\n                                        targetElement.on(strAnimationStartEvent, callback);\n                                    }\n                                }\n                            }\n\n                            if (targetElement[0] === _sizeObserverElementNative) {\n                                var directionChanged = function () {\n                                    var dir = _hostElement.css('direction');\n                                    var css = {};\n                                    var scrollLeftValue = 0;\n                                    var result = false;\n                                    if (dir !== _cssDirectionDetectedCache) {\n                                        if (dir === 'ltr') {\n                                            css[_strLeft] = 0;\n                                            css[_strRight] = _strAuto;\n                                            scrollLeftValue = constScroll;\n                                        }\n                                        else {\n                                            css[_strLeft] = _strAuto;\n                                            css[_strRight] = 0;\n                                            scrollLeftValue = _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll;\n                                        }\n                                        //execution order is important for IE!!!\n                                        _sizeObserverElement.children().eq(0).css(css);\n                                        _sizeObserverElement[_strScrollLeft](scrollLeftValue)[_strScrollTop](constScroll);\n                                        _cssDirectionDetectedCache = dir;\n                                        result = true;\n                                    }\n                                    return result;\n                                };\n                                directionChanged();\n                                addDestroyEventListener(targetElement, _strScroll, function (event) {\n                                    if (directionChanged())\n                                        update();\n                                    COMPATIBILITY.prvD(event);\n                                    COMPATIBILITY.stpP(event);\n                                    return false;\n                                });\n                            }\n                        }\n                        //remove resize observer:\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                var resizeObserverObj = element[_strResizeObserverProperty];\n                                if (resizeObserverObj) {\n                                    resizeObserverObj.disconnect();\n                                    delete element[_strResizeObserverProperty];\n                                }\n                            }\n                            else {\n                                remove(targetElement.children(_strDot + _classNameResizeObserverElement).eq(0));\n                            }\n                        }\n                    }\n                }\n\n                /**\n                 * Freezes or unfreezes the given resize observer.\n                 * @param targetElement The element to which the target resize observer is applied.\n                 * @param freeze True if the resize observer shall be frozen, false otherwise.\n                 \n                function freezeResizeObserver(targetElement, freeze) {\n                    if (targetElement !== undefined) {\n                        if(freeze) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].unobserve(element);\n                            }\n                            else {\n                                targetElement = targetElement.children(_strDot + _classNameResizeObserverElement).eq(0);\n                                var w = targetElement.css(_strWidth);\n                                var h = targetElement.css(_strHeight);\n                                var css = {};\n                                css[_strWidth] = w;\n                                css[_strHeight] = h;\n                                targetElement.css(css);\n                            }\n                        }\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].observe(element);\n                            }\n                            else {\n                                var css = { };\n                                css[_strHeight] = _strEmpty;\n                                css[_strWidth] = _strEmpty;\n                                targetElement.children(_strDot + _classNameResizeObserverElement).eq(0).css(css);\n                            }\n                        }\n                    }\n                }\n                */\n\n\n                //==== Mutation Observers ====//\n\n                /**\n                 * Creates MutationObservers for the host and content Element if they are supported.\n                 */\n                function createMutationObservers() {\n                    if (_supportMutationObserver) {\n                        var mutationObserverContentLag = 11;\n                        var mutationObserver = COMPATIBILITY.mO();\n                        var contentLastUpdate = COMPATIBILITY.now();\n                        var mutationTarget;\n                        var mutationAttrName;\n                        var mutationIsClass;\n                        var oldMutationVal;\n                        var newClassVal;\n                        var hostClassNameRegex;\n                        var contentTimeout;\n                        var now;\n                        var sizeAuto;\n                        var action;\n\n                        _mutationObserverHostCallback = function (mutations) {\n\n                            var doUpdate = false;\n                            var doUpdateForce = false;\n                            var mutation;\n                            var mutatedAttrs = [];\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    mutationTarget = mutation.target;\n                                    mutationAttrName = mutation.attributeName;\n                                    mutationIsClass = mutationAttrName === LEXICON.c;\n                                    oldMutationVal = mutation.oldValue;\n                                    newClassVal = mutationTarget.className;\n\n                                    if (_domExists && mutationIsClass && !doUpdateForce) {\n                                        // if old class value contains _classNameHostElementForeign and new class value doesn't\n                                        if (oldMutationVal.indexOf(_classNameHostElementForeign) > -1 && newClassVal.indexOf(_classNameHostElementForeign) < 0) {\n                                            hostClassNameRegex = createHostClassNameRegExp(true);\n                                            _hostElementNative.className = newClassVal.split(_strSpace).concat(oldMutationVal.split(_strSpace).filter(function (name) {\n                                                return name.match(hostClassNameRegex);\n                                            })).join(_strSpace);\n                                            doUpdate = doUpdateForce = true;\n                                        }\n                                    }\n\n                                    if (!doUpdate) {\n                                        doUpdate = mutationIsClass\n                                            ? hostClassNamesChanged(oldMutationVal, newClassVal)\n                                            : mutationAttrName === LEXICON.s\n                                                ? oldMutationVal !== mutationTarget[LEXICON.s].cssText\n                                                : true;\n                                    }\n\n                                    mutatedAttrs.push(mutationAttrName);\n                                });\n\n                                updateViewportAttrsFromTarget(mutatedAttrs);\n\n                                if (doUpdate)\n                                    _base.update(doUpdateForce || _strAuto);\n                            }\n                            return doUpdate;\n                        };\n                        _mutationObserverContentCallback = function (mutations) {\n                            var doUpdate = false;\n                            var mutation;\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    doUpdate = isUnknownMutation(mutation);\n                                    return !doUpdate;\n                                });\n\n                                if (doUpdate) {\n                                    now = COMPATIBILITY.now();\n                                    sizeAuto = (_heightAutoCache || _widthAutoCache);\n                                    action = function () {\n                                        if (!_destroyed) {\n                                            contentLastUpdate = now;\n\n                                            //if cols, rows or wrap attr was changed\n                                            if (_isTextarea)\n                                                textareaUpdate();\n\n                                            if (sizeAuto)\n                                                update();\n                                            else\n                                                _base.update(_strAuto);\n                                        }\n                                    };\n                                    clearTimeout(contentTimeout);\n                                    if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)\n                                        action();\n                                    else\n                                        contentTimeout = setTimeout(action, mutationObserverContentLag);\n                                }\n                            }\n                            return doUpdate;\n                        }\n\n                        _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);\n                        _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);\n                    }\n                }\n\n                /**\n                 * Connects the MutationObservers if they are supported.\n                 */\n                function connectMutationObservers() {\n                    if (_supportMutationObserver && !_mutationObserversConnected) {\n                        _mutationObserverHost.observe(_hostElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            attributeFilter: _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserverContent.observe(_isTextarea ? _targetElementNative : _contentElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            subtree: !_isTextarea,\n                            childList: !_isTextarea,\n                            characterData: !_isTextarea,\n                            attributeFilter: _isTextarea ? _mutationObserverAttrsTextarea : _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserversConnected = true;\n                    }\n                }\n\n                /**\n                 * Disconnects the MutationObservers if they are supported.\n                 */\n                function disconnectMutationObservers() {\n                    if (_supportMutationObserver && _mutationObserversConnected) {\n                        _mutationObserverHost.disconnect();\n                        _mutationObserverContent.disconnect();\n\n                        _mutationObserversConnected = false;\n                    }\n                }\n\n\n                //==== Events of elements ====//\n\n                /**\n                 * This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!\n                 * It refreshes the hostResizedEventArgs and the hostSizeResizeCache.\n                 * If there are any size changes, the update method gets called.\n                 */\n                function hostOnResized() {\n                    if (!_sleeping) {\n                        var changed;\n                        var hostSize = {\n                            w: _sizeObserverElementNative[LEXICON.sW],\n                            h: _sizeObserverElementNative[LEXICON.sH]\n                        };\n\n                        changed = checkCache(hostSize, _hostElementSizeChangeDetectedCache);\n                        _hostElementSizeChangeDetectedCache = hostSize;\n                        if (changed)\n                            update({ _hostSizeChanged: true });\n                    }\n                }\n\n                /**\n                 * The mouse enter event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseEnter() {\n                    if (_scrollbarsAutoHideLeave)\n                        refreshScrollbarsAutoHide(true);\n                }\n\n                /**\n                 * The mouse leave event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseLeave() {\n                    if (_scrollbarsAutoHideLeave && !_bodyElement.hasClass(_classNameDragging))\n                        refreshScrollbarsAutoHide(false);\n                }\n\n                /**\n                 * The mouse move event of the host element. This event is only needed for the autoHide \"move\" feature.\n                 */\n                function hostOnMouseMove() {\n                    if (_scrollbarsAutoHideMove) {\n                        refreshScrollbarsAutoHide(true);\n                        clearTimeout(_scrollbarsAutoHideMoveTimeoutId);\n                        _scrollbarsAutoHideMoveTimeoutId = setTimeout(function () {\n                            if (_scrollbarsAutoHideMove && !_destroyed)\n                                refreshScrollbarsAutoHide(false);\n                        }, 100);\n                    }\n                }\n\n                /**\n                 * Prevents text from deselection if attached to the document element on the mousedown event of a DOM element.\n                 * @param event The select start event.\n                 */\n                function documentOnSelectStart(event) {\n                    COMPATIBILITY.prvD(event);\n                    return false;\n                }\n\n                /**\t\n                 * A callback which will be called after a element has loaded.\t\n                 */\n                function updateOnLoadCallback(event) {\n                    var elm = FRAMEWORK(event.target);\n\n                    eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                        if (elm.is(updateOnLoadSelector)) {\n                            update({ _contentSizeChanged: true });\n                        }\n                    });\n                }\n\n                /**\n                * Adds or removes mouse & touch events of the host element. (for handling auto-hiding of the scrollbars)\n                * @param destroy Indicates whether the events shall be added or removed.\n                */\n                function setupHostMouseTouchEvents(destroy) {\n                    if (!destroy)\n                        setupHostMouseTouchEvents(true);\n\n                    setupResponsiveEventListener(_hostElement,\n                        _strMouseTouchMoveEvent.split(_strSpace)[0],\n                        hostOnMouseMove,\n                        (!_scrollbarsAutoHideMove || destroy), true);\n                    setupResponsiveEventListener(_hostElement,\n                        [_strMouseEnter, _strMouseLeave],\n                        [hostOnMouseEnter, hostOnMouseLeave],\n                        (!_scrollbarsAutoHideLeave || destroy), true);\n\n                    //if the plugin is initialized and the mouse is over the host element, make the scrollbars visible\n                    if (!_initialized && !destroy)\n                        _hostElement.one('mouseover', hostOnMouseEnter);\n                }\n\n\n                //==== Update Detection ====//\n\n                /**\n                 * Measures the min width and min height of the body element and refreshes the related cache.\n                 * @returns {boolean} True if the min width or min height has changed, false otherwise.\n                 */\n                function bodyMinSizeChanged() {\n                    var bodyMinSize = {};\n                    if (_isBody && _contentArrangeElement) {\n                        bodyMinSize.w = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strWidth));\n                        bodyMinSize.h = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strHeight));\n                        bodyMinSize.c = checkCache(bodyMinSize, _bodyMinSizeCache);\n                        bodyMinSize.f = true; //flag for \"measured at least once\"\n                    }\n                    _bodyMinSizeCache = bodyMinSize;\n                    return !!bodyMinSize.c;\n                }\n\n                /**\n                 * Returns true if the class names really changed (new class without plugin host prefix)\n                 * @param oldClassNames The old ClassName string or array.\n                 * @param newClassNames The new ClassName string or array.\n                 * @returns {boolean} True if the class names has really changed, false otherwise.\n                 */\n                function hostClassNamesChanged(oldClassNames, newClassNames) {\n                    var currClasses = typeof newClassNames == TYPES.s ? newClassNames.split(_strSpace) : [];\n                    var oldClasses = typeof oldClassNames == TYPES.s ? oldClassNames.split(_strSpace) : [];\n                    var diff = getArrayDifferences(oldClasses, currClasses);\n\n                    // remove none theme from diff list to prevent update\n                    var idx = inArray(_classNameThemeNone, diff);\n                    var i;\n                    var regex;\n\n                    if (idx > -1)\n                        diff.splice(idx, 1);\n\n                    if (diff[LEXICON.l] > 0) {\n                        regex = createHostClassNameRegExp(true, true);\n                        for (i = 0; i < diff.length; i++) {\n                            if (!diff[i].match(regex)) {\n                                return true;\n                            }\n                        }\n                    }\n                    return false;\n                }\n\n                /**\n                 * Returns true if the given mutation is not from a from the plugin generated element. If the target element is a textarea the mutation is always unknown.\n                 * @param mutation The mutation which shall be checked.\n                 * @returns {boolean} True if the mutation is from a unknown element, false otherwise.\n                 */\n                function isUnknownMutation(mutation) {\n                    var attributeName = mutation.attributeName;\n                    var mutationTarget = mutation.target;\n                    var mutationType = mutation.type;\n                    var strClosest = 'closest';\n\n                    if (mutationTarget === _contentElementNative)\n                        return attributeName === null;\n                    if (mutationType === 'attributes' && (attributeName === LEXICON.c || attributeName === LEXICON.s) && !_isTextarea) {\n                        //ignore className changes by the plugin\t\n                        if (attributeName === LEXICON.c && FRAMEWORK(mutationTarget).hasClass(_classNameHostElement))\n                            return hostClassNamesChanged(mutation.oldValue, mutationTarget.className);\n\n                        //only do it of browser support it natively\t\n                        if (typeof mutationTarget[strClosest] != TYPES.f)\n                            return true;\n                        if (mutationTarget[strClosest](_strDot + _classNameResizeObserverElement) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbar) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbarCorner) !== null)\n                            return false;\n                    }\n                    return true;\n                }\n\n                /**\n                 * Returns true if the content size was changed since the last time this method was called.\n                 * @returns {boolean} True if the content size was changed, false otherwise.\n                 */\n                function updateAutoContentSizeChanged() {\n                    if (_sleeping)\n                        return false;\n\n                    var contentMeasureElement = getContentMeasureElement();\n                    var textareaValueLength = _isTextarea && _widthAutoCache && !_textareaAutoWrappingCache ? _targetElement.val().length : 0;\n                    var setCSS = !_mutationObserversConnected && _widthAutoCache && !_isTextarea;\n                    var css = {};\n                    var float;\n                    var bodyMinSizeC;\n                    var changed;\n                    var contentElementScrollSize;\n\n                    if (setCSS) {\n                        float = _contentElement.css(_strFloat);\n                        css[_strFloat] = _isRTL ? _strRight : _strLeft;\n                        css[_strWidth] = _strAuto;\n                        _contentElement.css(css);\n                    }\n                    contentElementScrollSize = {\n                        w: contentMeasureElement[LEXICON.sW] + textareaValueLength,\n                        h: contentMeasureElement[LEXICON.sH] + textareaValueLength\n                    };\n                    if (setCSS) {\n                        css[_strFloat] = float;\n                        css[_strWidth] = _strHundredPercent;\n                        _contentElement.css(css);\n                    }\n\n                    bodyMinSizeC = bodyMinSizeChanged();\n                    changed = checkCache(contentElementScrollSize, _contentElementScrollSizeChangeDetectedCache);\n\n                    _contentElementScrollSizeChangeDetectedCache = contentElementScrollSize;\n\n                    return changed || bodyMinSizeC;\n                }\n\n                /**\n                 * Returns true when a attribute which the MutationObserver would observe has changed.  \n                 * @returns {boolean} True if one of the attributes which a MutationObserver would observe has changed, false or undefined otherwise.\n                 */\n                function meaningfulAttrsChanged() {\n                    if (_sleeping || _mutationObserversConnected)\n                        return;\n\n                    var elem;\n                    var curr;\n                    var cache;\n                    var changedAttrs = [];\n                    var checks = [\n                        {\n                            _elem: _hostElement,\n                            _attrs: _mutationObserverAttrsHost.concat(':visible')\n                        },\n                        {\n                            _elem: _isTextarea ? _targetElement : undefined,\n                            _attrs: _mutationObserverAttrsTextarea\n                        }\n                    ];\n\n                    each(checks, function (index, check) {\n                        elem = check._elem;\n                        if (elem) {\n                            each(check._attrs, function (index, attr) {\n                                curr = attr.charAt(0) === ':' ? elem.is(attr) : elem.attr(attr);\n                                cache = _updateAutoCache[attr];\n\n                                if (checkCache(curr, cache)) {\n                                    changedAttrs.push(attr);\n                                }\n\n                                _updateAutoCache[attr] = curr;\n                            });\n                        }\n                    });\n\n                    updateViewportAttrsFromTarget(changedAttrs);\n\n                    return changedAttrs[LEXICON.l] > 0;\n                }\n\n                /**\n                 * Checks is a CSS Property of a child element is affecting the scroll size of the content.\n                 * @param propertyName The CSS property name.\n                 * @returns {boolean} True if the property is affecting the content scroll size, false otherwise.\n                 */\n                function isSizeAffectingCSSProperty(propertyName) {\n                    if (!_initialized)\n                        return true;\n                    var flexGrow = 'flex-grow';\n                    var flexShrink = 'flex-shrink';\n                    var flexBasis = 'flex-basis';\n                    var affectingPropsX = [\n                        _strWidth,\n                        _strMinMinus + _strWidth,\n                        _strMaxMinus + _strWidth,\n                        _strMarginMinus + _strLeft,\n                        _strMarginMinus + _strRight,\n                        _strLeft,\n                        _strRight,\n                        'font-weight',\n                        'word-spacing',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsXContentBox = [\n                        _strPaddingMinus + _strLeft,\n                        _strPaddingMinus + _strRight,\n                        _strBorderMinus + _strLeft + _strWidth,\n                        _strBorderMinus + _strRight + _strWidth\n                    ];\n                    var affectingPropsY = [\n                        _strHeight,\n                        _strMinMinus + _strHeight,\n                        _strMaxMinus + _strHeight,\n                        _strMarginMinus + _strTop,\n                        _strMarginMinus + _strBottom,\n                        _strTop,\n                        _strBottom,\n                        'line-height',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsYContentBox = [\n                        _strPaddingMinus + _strTop,\n                        _strPaddingMinus + _strBottom,\n                        _strBorderMinus + _strTop + _strWidth,\n                        _strBorderMinus + _strBottom + _strWidth\n                    ];\n                    var _strS = 's';\n                    var _strVS = 'v-s';\n                    var checkX = _overflowBehaviorCache.x === _strS || _overflowBehaviorCache.x === _strVS;\n                    var checkY = _overflowBehaviorCache.y === _strS || _overflowBehaviorCache.y === _strVS;\n                    var sizeIsAffected = false;\n                    var checkPropertyName = function (arr, name) {\n                        for (var i = 0; i < arr[LEXICON.l]; i++) {\n                            if (arr[i] === name)\n                                return true;\n                        }\n                        return false;\n                    };\n\n                    if (checkY) {\n                        sizeIsAffected = checkPropertyName(affectingPropsY, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsYContentBox, propertyName);\n                    }\n                    if (checkX && !sizeIsAffected) {\n                        sizeIsAffected = checkPropertyName(affectingPropsX, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsXContentBox, propertyName);\n                    }\n                    return sizeIsAffected;\n                }\n\n\n                //==== Update ====//\n\n                /**\n                 * Sets the attribute values of the viewport element to the values from the target element.\n                 * The value of a attribute is only set if the attribute is whitelisted.\n                 * @attrs attrs The array of attributes which shall be set or undefined if all whitelisted shall be set.\n                 */\n                function updateViewportAttrsFromTarget(attrs) {\n                    attrs = attrs || _viewportAttrsFromTarget;\n                    each(attrs, function (index, attr) {\n                        if (COMPATIBILITY.inA(attr, _viewportAttrsFromTarget) > -1) {\n                            var targetAttr = _targetElement.attr(attr);\n                            if (type(targetAttr) == TYPES.s) {\n                                _viewportElement.attr(attr, targetAttr);\n                            }\n                            else {\n                                _viewportElement.removeAttr(attr);\n                            }\n                        }\n                    });\n                }\n\n                /**\n                 * Updates the variables and size of the textarea element, and manages the scroll on new line or new character.\n                 */\n                function textareaUpdate() {\n                    if (!_sleeping) {\n                        var wrapAttrOff = !_textareaAutoWrappingCache;\n                        var minWidth = _viewportSize.w;\n                        var minHeight = _viewportSize.h;\n                        var css = {};\n                        var doMeasure = _widthAutoCache || wrapAttrOff;\n                        var origWidth;\n                        var width;\n                        var origHeight;\n                        var height;\n\n                        //reset min size\n                        css[_strMinMinus + _strWidth] = _strEmpty;\n                        css[_strMinMinus + _strHeight] = _strEmpty;\n\n                        //set width auto\n                        css[_strWidth] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure width\n                        origWidth = _targetElementNative[LEXICON.oW];\n                        width = doMeasure ? MATH.max(origWidth, _targetElementNative[LEXICON.sW] - 1) : 1;\n                        /*width += (_widthAutoCache ? _marginX + (!_isBorderBox ? wrapAttrOff ? 0 : _paddingX + _borderX : 0) : 0);*/\n\n                        //set measured width\n                        css[_strWidth] = _widthAutoCache ? _strAuto /*width*/ : _strHundredPercent;\n                        css[_strMinMinus + _strWidth] = _strHundredPercent;\n\n                        //set height auto\n                        css[_strHeight] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure height\n                        origHeight = _targetElementNative[LEXICON.oH];\n                        height = MATH.max(origHeight, _targetElementNative[LEXICON.sH] - 1);\n\n                        //append correct size values\n                        css[_strWidth] = width;\n                        css[_strHeight] = height;\n                        _textareaCoverElement.css(css);\n\n                        //apply min width / min height to prevent textarea collapsing\n                        css[_strMinMinus + _strWidth] = minWidth /*+ (!_isBorderBox && _widthAutoCache ? _paddingX + _borderX : 0)*/;\n                        css[_strMinMinus + _strHeight] = minHeight /*+ (!_isBorderBox && _heightAutoCache ? _paddingY + _borderY : 0)*/;\n                        _targetElement.css(css);\n\n                        return {\n                            _originalWidth: origWidth,\n                            _originalHeight: origHeight,\n                            _dynamicWidth: width,\n                            _dynamicHeight: height\n                        };\n                    }\n                }\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param updateHints A objects which contains hints for this update:\n                 * {\n                 *   _hostSizeChanged : boolean,\n                 *   _contentSizeChanged : boolean,\n                 *   _force : boolean,                             == preventSwallowing\n                 *   _changedOptions : { },                        == preventSwallowing && preventSleep\n                *  }\n                 */\n                function update(updateHints) {\n                    clearTimeout(_swallowedUpdateTimeout);\n                    updateHints = updateHints || {};\n                    _swallowedUpdateHints._hostSizeChanged |= updateHints._hostSizeChanged;\n                    _swallowedUpdateHints._contentSizeChanged |= updateHints._contentSizeChanged;\n                    _swallowedUpdateHints._force |= updateHints._force;\n\n                    var now = COMPATIBILITY.now();\n                    var hostSizeChanged = !!_swallowedUpdateHints._hostSizeChanged;\n                    var contentSizeChanged = !!_swallowedUpdateHints._contentSizeChanged;\n                    var force = !!_swallowedUpdateHints._force;\n                    var changedOptions = updateHints._changedOptions;\n                    var swallow = _swallowUpdateLag > 0 && _initialized && !_destroyed && !force && !changedOptions && (now - _lastUpdateTime) < _swallowUpdateLag && (!_heightAutoCache && !_widthAutoCache);\n                    var displayIsHidden;\n\n                    if (swallow)\n                        _swallowedUpdateTimeout = setTimeout(update, _swallowUpdateLag);\n\n                    //abort update due to:\n                    //destroyed\n                    //swallowing\n                    //sleeping\n                    //host is hidden or has false display\n                    if (_destroyed || swallow || (_sleeping && !changedOptions) || (_initialized && !force && (displayIsHidden = _hostElement.is(':hidden'))) || _hostElement.css('display') === 'inline')\n                        return;\n\n                    _lastUpdateTime = now;\n                    _swallowedUpdateHints = {};\n\n                    //if scrollbar styling is possible and native scrollbars aren't overlaid the scrollbar styling will be applied which hides the native scrollbars completely.\n                    if (_nativeScrollbarStyling && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                        //native scrollbars are hidden, so change the values to zero\n                        _nativeScrollbarSize.x = 0;\n                        _nativeScrollbarSize.y = 0;\n                    }\n                    else {\n                        //refresh native scrollbar size (in case of zoom)\n                        _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    }\n\n                    // Scrollbar padding is needed for firefox, because firefox hides scrollbar automatically if the size of the div is too small.\n                    // The calculation: [scrollbar size +3 *3]\n                    // (+3 because of possible decoration e.g. borders, margins etc., but only if native scrollbar is NOT a overlaid scrollbar)\n                    // (*3 because (1)increase / (2)decrease -button and (3)resize handle)\n                    _nativeScrollbarMinSize = {\n                        x: (_nativeScrollbarSize.x + (_nativeScrollbarIsOverlaid.x ? 0 : 3)) * 3,\n                        y: (_nativeScrollbarSize.y + (_nativeScrollbarIsOverlaid.y ? 0 : 3)) * 3\n                    };\n\n                    changedOptions = changedOptions || {};\n                    //freezeResizeObserver(_sizeObserverElement, true);\n                    //freezeResizeObserver(_sizeAutoObserverElement, true);\n\n                    var checkCacheAutoForce = function () {\n                        return checkCache.apply(this, [].slice.call(arguments).concat([force]));\n                    };\n\n                    //save current scroll offset\n                    var currScroll = {\n                        x: _viewportElement[_strScrollLeft](),\n                        y: _viewportElement[_strScrollTop]()\n                    };\n\n                    var currentPreparedOptionsScrollbars = _currentPreparedOptions.scrollbars;\n                    var currentPreparedOptionsTextarea = _currentPreparedOptions.textarea;\n\n                    //scrollbars visibility:\n                    var scrollbarsVisibility = currentPreparedOptionsScrollbars.visibility;\n                    var scrollbarsVisibilityChanged = checkCacheAutoForce(scrollbarsVisibility, _scrollbarsVisibilityCache);\n\n                    //scrollbars autoHide:\n                    var scrollbarsAutoHide = currentPreparedOptionsScrollbars.autoHide;\n                    var scrollbarsAutoHideChanged = checkCacheAutoForce(scrollbarsAutoHide, _scrollbarsAutoHideCache);\n\n                    //scrollbars click scrolling\n                    var scrollbarsClickScrolling = currentPreparedOptionsScrollbars.clickScrolling;\n                    var scrollbarsClickScrollingChanged = checkCacheAutoForce(scrollbarsClickScrolling, _scrollbarsClickScrollingCache);\n\n                    //scrollbars drag scrolling\n                    var scrollbarsDragScrolling = currentPreparedOptionsScrollbars.dragScrolling;\n                    var scrollbarsDragScrollingChanged = checkCacheAutoForce(scrollbarsDragScrolling, _scrollbarsDragScrollingCache);\n\n                    //className\n                    var className = _currentPreparedOptions.className;\n                    var classNameChanged = checkCacheAutoForce(className, _classNameCache);\n\n                    //resize\n                    var resize = _currentPreparedOptions.resize;\n                    var resizeChanged = checkCacheAutoForce(resize, _resizeCache) && !_isBody; //body can't be resized since the window itself acts as resize possibility.\n\n                    //paddingAbsolute\n                    var paddingAbsolute = _currentPreparedOptions.paddingAbsolute;\n                    var paddingAbsoluteChanged = checkCacheAutoForce(paddingAbsolute, _paddingAbsoluteCache);\n\n                    //clipAlways\n                    var clipAlways = _currentPreparedOptions.clipAlways;\n                    var clipAlwaysChanged = checkCacheAutoForce(clipAlways, _clipAlwaysCache);\n\n                    //sizeAutoCapable\n                    var sizeAutoCapable = _currentPreparedOptions.sizeAutoCapable && !_isBody; //body can never be size auto, because it shall be always as big as the viewport.\n                    var sizeAutoCapableChanged = checkCacheAutoForce(sizeAutoCapable, _sizeAutoCapableCache);\n\n                    //showNativeScrollbars\n                    var ignoreOverlayScrollbarHiding = _currentPreparedOptions.nativeScrollbarsOverlaid.showNativeScrollbars;\n                    var ignoreOverlayScrollbarHidingChanged = checkCacheAutoForce(ignoreOverlayScrollbarHiding, _ignoreOverlayScrollbarHidingCache);\n\n                    //autoUpdate\n                    var autoUpdate = _currentPreparedOptions.autoUpdate;\n                    var autoUpdateChanged = checkCacheAutoForce(autoUpdate, _autoUpdateCache);\n\n                    //overflowBehavior\n                    var overflowBehavior = _currentPreparedOptions.overflowBehavior;\n                    var overflowBehaviorChanged = checkCacheAutoForce(overflowBehavior, _overflowBehaviorCache, force);\n\n                    //dynWidth:\n                    var textareaDynWidth = currentPreparedOptionsTextarea.dynWidth;\n                    var textareaDynWidthChanged = checkCacheAutoForce(_textareaDynWidthCache, textareaDynWidth);\n\n                    //dynHeight:\n                    var textareaDynHeight = currentPreparedOptionsTextarea.dynHeight;\n                    var textareaDynHeightChanged = checkCacheAutoForce(_textareaDynHeightCache, textareaDynHeight);\n\n                    //scrollbars visibility\n                    _scrollbarsAutoHideNever = scrollbarsAutoHide === 'n';\n                    _scrollbarsAutoHideScroll = scrollbarsAutoHide === 's';\n                    _scrollbarsAutoHideMove = scrollbarsAutoHide === 'm';\n                    _scrollbarsAutoHideLeave = scrollbarsAutoHide === 'l';\n\n                    //scrollbars autoHideDelay\n                    _scrollbarsAutoHideDelay = currentPreparedOptionsScrollbars.autoHideDelay;\n\n                    //old className\n                    _oldClassName = _classNameCache;\n\n                    //resize\n                    _resizeNone = resize === 'n';\n                    _resizeBoth = resize === 'b';\n                    _resizeHorizontal = resize === 'h';\n                    _resizeVertical = resize === 'v';\n\n                    //normalizeRTL\n                    _normalizeRTLCache = _currentPreparedOptions.normalizeRTL;\n\n                    //ignore overlay scrollbar hiding\n                    ignoreOverlayScrollbarHiding = ignoreOverlayScrollbarHiding && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y);\n\n                    //refresh options cache\n                    _scrollbarsVisibilityCache = scrollbarsVisibility;\n                    _scrollbarsAutoHideCache = scrollbarsAutoHide;\n                    _scrollbarsClickScrollingCache = scrollbarsClickScrolling;\n                    _scrollbarsDragScrollingCache = scrollbarsDragScrolling;\n                    _classNameCache = className;\n                    _resizeCache = resize;\n                    _paddingAbsoluteCache = paddingAbsolute;\n                    _clipAlwaysCache = clipAlways;\n                    _sizeAutoCapableCache = sizeAutoCapable;\n                    _ignoreOverlayScrollbarHidingCache = ignoreOverlayScrollbarHiding;\n                    _autoUpdateCache = autoUpdate;\n                    _overflowBehaviorCache = extendDeep({}, overflowBehavior);\n                    _textareaDynWidthCache = textareaDynWidth;\n                    _textareaDynHeightCache = textareaDynHeight;\n                    _hasOverflowCache = _hasOverflowCache || { x: false, y: false };\n\n                    //set correct class name to the host element\n                    if (classNameChanged) {\n                        removeClass(_hostElement, _oldClassName + _strSpace + _classNameThemeNone);\n                        addClass(_hostElement, className !== undefined && className !== null && className.length > 0 ? className : _classNameThemeNone);\n                    }\n\n                    //set correct auto Update\n                    if (autoUpdateChanged) {\n                        if (autoUpdate === true || (autoUpdate === null && _autoUpdateRecommended)) {\n                            disconnectMutationObservers();\n                            autoUpdateLoop.add(_base);\n                        }\n                        else {\n                            autoUpdateLoop.remove(_base);\n                            connectMutationObservers();\n                        }\n                    }\n\n                    //activate or deactivate size auto capability\n                    if (sizeAutoCapableChanged) {\n                        if (sizeAutoCapable) {\n                            if (_contentGlueElement) {\n                                _contentGlueElement.show();\n                            }\n                            else {\n                                _contentGlueElement = FRAMEWORK(generateDiv(_classNameContentGlueElement));\n                                _paddingElement.before(_contentGlueElement);\n                            }\n                            if (_sizeAutoObserverAdded) {\n                                _sizeAutoObserverElement.show();\n                            }\n                            else {\n                                _sizeAutoObserverElement = FRAMEWORK(generateDiv(_classNameSizeAutoObserverElement));\n                                _sizeAutoObserverElementNative = _sizeAutoObserverElement[0];\n\n                                _contentGlueElement.before(_sizeAutoObserverElement);\n                                var oldSize = { w: -1, h: -1 };\n                                setupResizeObserver(_sizeAutoObserverElement, function () {\n                                    var newSize = {\n                                        w: _sizeAutoObserverElementNative[LEXICON.oW],\n                                        h: _sizeAutoObserverElementNative[LEXICON.oH]\n                                    };\n                                    if (checkCache(newSize, oldSize)) {\n                                        if (_initialized && (_heightAutoCache && newSize.h > 0) || (_widthAutoCache && newSize.w > 0)) {\n                                            update();\n                                        }\n                                        else if (_initialized && (!_heightAutoCache && newSize.h === 0) || (!_widthAutoCache && newSize.w === 0)) {\n                                            update();\n                                        }\n                                    }\n                                    oldSize = newSize;\n                                });\n                                _sizeAutoObserverAdded = true;\n                                //fix heightAuto detector bug if height is fixed but contentHeight is 0.\n                                //the probability this bug will ever happen is very very low, thats why its ok if we use calc which isn't supported in IE8.\n                                if (_cssCalc !== null)\n                                    _sizeAutoObserverElement.css(_strHeight, _cssCalc + '(100% + 1px)');\n                            }\n                        }\n                        else {\n                            if (_sizeAutoObserverAdded)\n                                _sizeAutoObserverElement.hide();\n                            if (_contentGlueElement)\n                                _contentGlueElement.hide();\n                        }\n                    }\n\n                    //if force, update all resizeObservers too\n                    if (force) {\n                        _sizeObserverElement.find('*').trigger(_strScroll);\n                        if (_sizeAutoObserverAdded)\n                            _sizeAutoObserverElement.find('*').trigger(_strScroll);\n                    }\n\n                    //display hidden:\n                    displayIsHidden = displayIsHidden === undefined ? _hostElement.is(':hidden') : displayIsHidden;\n\n                    //textarea AutoWrapping:\n                    var textareaAutoWrapping = _isTextarea ? _targetElement.attr('wrap') !== 'off' : false;\n                    var textareaAutoWrappingChanged = checkCacheAutoForce(textareaAutoWrapping, _textareaAutoWrappingCache);\n\n                    //detect direction:\n                    var cssDirection = _hostElement.css('direction');\n                    var cssDirectionChanged = checkCacheAutoForce(cssDirection, _cssDirectionCache);\n\n                    //detect box-sizing:\n                    var boxSizing = _hostElement.css('box-sizing');\n                    var boxSizingChanged = checkCacheAutoForce(boxSizing, _cssBoxSizingCache);\n\n                    //detect padding:\n                    var padding = getTopRightBottomLeftHost(_strPaddingMinus);\n\n                    //width + height auto detecting var:\n                    var sizeAutoObserverElementBCRect;\n                    //exception occurs in IE8 sometimes (unknown exception)\n                    try {\n                        sizeAutoObserverElementBCRect = _sizeAutoObserverAdded ? _sizeAutoObserverElementNative[LEXICON.bCR]() : null;\n                    } catch (ex) {\n                        return;\n                    }\n\n                    _isRTL = cssDirection === 'rtl';\n                    _isBorderBox = (boxSizing === 'border-box');\n                    var isRTLLeft = _isRTL ? _strLeft : _strRight;\n                    var isRTLRight = _isRTL ? _strRight : _strLeft;\n\n                    //detect width auto:\n                    var widthAutoResizeDetection = false;\n                    var widthAutoObserverDetection = (_sizeAutoObserverAdded && (_hostElement.css(_strFloat) !== 'none' /*|| _isTextarea */)) ? (MATH.round(sizeAutoObserverElementBCRect.right - sizeAutoObserverElementBCRect.left) === 0) && (!paddingAbsolute ? (_hostElementNative[LEXICON.cW] - _paddingX) > 0 : true) : false;\n                    if (sizeAutoCapable && !widthAutoObserverDetection) {\n                        var tmpCurrHostWidth = _hostElementNative[LEXICON.oW];\n                        var tmpCurrContentGlueWidth = _contentGlueElement.css(_strWidth);\n                        _contentGlueElement.css(_strWidth, _strAuto);\n\n                        var tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                        _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                        widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        if (!widthAutoResizeDetection) {\n                            _contentGlueElement.css(_strWidth, tmpCurrHostWidth + 1);\n                            tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                            _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                            widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        }\n                    }\n                    var widthAuto = (widthAutoObserverDetection || widthAutoResizeDetection) && sizeAutoCapable && !displayIsHidden;\n                    var widthAutoChanged = checkCacheAutoForce(widthAuto, _widthAutoCache);\n                    var wasWidthAuto = !widthAuto && _widthAutoCache;\n\n                    //detect height auto:\n                    var heightAuto = _sizeAutoObserverAdded && sizeAutoCapable && !displayIsHidden ? (MATH.round(sizeAutoObserverElementBCRect.bottom - sizeAutoObserverElementBCRect.top) === 0) /* && (!paddingAbsolute && (_msieVersion > 9 || !_msieVersion) ? true : true) */ : false;\n                    var heightAutoChanged = checkCacheAutoForce(heightAuto, _heightAutoCache);\n                    var wasHeightAuto = !heightAuto && _heightAutoCache;\n\n                    //detect border:\n                    //we need the border only if border box and auto size\n                    var updateBorderX = (widthAuto && _isBorderBox) || !_isBorderBox;\n                    var updateBorderY = (heightAuto && _isBorderBox) || !_isBorderBox;\n                    var border = getTopRightBottomLeftHost(_strBorderMinus, '-' + _strWidth, !updateBorderX, !updateBorderY)\n\n                    //detect margin:\n                    var margin = getTopRightBottomLeftHost(_strMarginMinus);\n\n                    //vars to apply correct css\n                    var contentElementCSS = {};\n                    var contentGlueElementCSS = {};\n\n                    //funcs\n                    var getHostSize = function () {\n                        //has to be clientSize because offsetSize respect borders\n                        return {\n                            w: _hostElementNative[LEXICON.cW],\n                            h: _hostElementNative[LEXICON.cH]\n                        };\n                    };\n                    var getViewportSize = function () {\n                        //viewport size is padding container because it never has padding, margin and a border\n                        //determine zoom rounding error -> sometimes scrollWidth/Height is smaller than clientWidth/Height\n                        //if this happens add the difference to the viewportSize to compensate the rounding error\n                        return {\n                            w: _paddingElementNative[LEXICON.oW] + MATH.max(0, _contentElementNative[LEXICON.cW] - _contentElementNative[LEXICON.sW]),\n                            h: _paddingElementNative[LEXICON.oH] + MATH.max(0, _contentElementNative[LEXICON.cH] - _contentElementNative[LEXICON.sH])\n                        };\n                    };\n\n                    //set info for padding\n                    var paddingAbsoluteX = _paddingX = padding.l + padding.r;\n                    var paddingAbsoluteY = _paddingY = padding.t + padding.b;\n                    paddingAbsoluteX *= paddingAbsolute ? 1 : 0;\n                    paddingAbsoluteY *= paddingAbsolute ? 1 : 0;\n                    padding.c = checkCacheAutoForce(padding, _cssPaddingCache);\n\n                    //set info for border\n                    _borderX = border.l + border.r;\n                    _borderY = border.t + border.b;\n                    border.c = checkCacheAutoForce(border, _cssBorderCache);\n\n                    //set info for margin\n                    _marginX = margin.l + margin.r;\n                    _marginY = margin.t + margin.b;\n                    margin.c = checkCacheAutoForce(margin, _cssMarginCache);\n\n                    //refresh cache\n                    _textareaAutoWrappingCache = textareaAutoWrapping;\n                    _cssDirectionCache = cssDirection;\n                    _cssBoxSizingCache = boxSizing;\n                    _widthAutoCache = widthAuto;\n                    _heightAutoCache = heightAuto;\n                    _cssPaddingCache = padding;\n                    _cssBorderCache = border;\n                    _cssMarginCache = margin;\n\n                    //IEFix direction changed\n                    if (cssDirectionChanged && _sizeAutoObserverAdded)\n                        _sizeAutoObserverElement.css(_strFloat, isRTLRight);\n\n                    //apply padding:\n                    if (padding.c || cssDirectionChanged || paddingAbsoluteChanged || widthAutoChanged || heightAutoChanged || boxSizingChanged || sizeAutoCapableChanged) {\n                        var paddingElementCSS = {};\n                        var textareaCSS = {};\n                        var paddingValues = [padding.t, padding.r, padding.b, padding.l];\n\n                        setTopRightBottomLeft(contentGlueElementCSS, _strMarginMinus, [-padding.t, -padding.r, -padding.b, -padding.l]);\n                        if (paddingAbsolute) {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty, paddingValues);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus);\n                        }\n                        else {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus, paddingValues);\n                        }\n\n                        _paddingElement.css(paddingElementCSS);\n                        _targetElement.css(textareaCSS);\n                    }\n\n                    //viewport size is padding container because it never has padding, margin and a border.\n                    _viewportSize = getViewportSize();\n\n                    //update Textarea\n                    var textareaSize = _isTextarea ? textareaUpdate() : false;\n                    var textareaSizeChanged = _isTextarea && checkCacheAutoForce(textareaSize, _textareaSizeCache);\n                    var textareaDynOrigSize = _isTextarea && textareaSize ? {\n                        w: textareaDynWidth ? textareaSize._dynamicWidth : textareaSize._originalWidth,\n                        h: textareaDynHeight ? textareaSize._dynamicHeight : textareaSize._originalHeight\n                    } : {};\n                    _textareaSizeCache = textareaSize;\n\n                    //fix height auto / width auto in cooperation with current padding & boxSizing behavior:\n                    if (heightAuto && (heightAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c)) {\n                        contentElementCSS[_strHeight] = _strAuto;\n                    }\n                    else if (heightAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strHeight] = _strHundredPercent;\n                    }\n                    if (widthAuto && (widthAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c || cssDirectionChanged)) {\n                        contentElementCSS[_strWidth] = _strAuto;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strHundredPercent; //IE Fix\n                    }\n                    else if (widthAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strWidth] = _strHundredPercent;\n                        contentElementCSS[_strFloat] = _strEmpty;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strEmpty; //IE Fix\n                    }\n                    if (widthAuto) {\n                        //textareaDynOrigSize.w || _strAuto :: doesnt works because applied margin will shift width\n                        contentGlueElementCSS[_strWidth] = _strAuto;\n\n                        contentElementCSS[_strWidth] = VENDORS._cssPropertyValue(_strWidth, 'max-content intrinsic') || _strAuto;\n                        contentElementCSS[_strFloat] = isRTLRight;\n                    }\n                    else {\n                        contentGlueElementCSS[_strWidth] = _strEmpty;\n                    }\n                    if (heightAuto) {\n                        //textareaDynOrigSize.h || _contentElementNative[LEXICON.cH] :: use for anti scroll jumping\n                        contentGlueElementCSS[_strHeight] = textareaDynOrigSize.h || _contentElementNative[LEXICON.cH];\n                    }\n                    else {\n                        contentGlueElementCSS[_strHeight] = _strEmpty;\n                    }\n                    if (sizeAutoCapable)\n                        _contentGlueElement.css(contentGlueElementCSS);\n                    _contentElement.css(contentElementCSS);\n\n                    //CHECKPOINT HERE ~\n                    contentElementCSS = {};\n                    contentGlueElementCSS = {};\n\n                    //if [content(host) client / scroll size, or target element direction, or content(host) max-sizes] changed, or force is true\n                    if (hostSizeChanged || contentSizeChanged || textareaSizeChanged || cssDirectionChanged || boxSizingChanged || paddingAbsoluteChanged || widthAutoChanged || widthAuto || heightAutoChanged || heightAuto || ignoreOverlayScrollbarHidingChanged || overflowBehaviorChanged || clipAlwaysChanged || resizeChanged || scrollbarsVisibilityChanged || scrollbarsAutoHideChanged || scrollbarsDragScrollingChanged || scrollbarsClickScrollingChanged || textareaDynWidthChanged || textareaDynHeightChanged || textareaAutoWrappingChanged) {\n                        var strOverflow = 'overflow';\n                        var strOverflowX = strOverflow + '-x';\n                        var strOverflowY = strOverflow + '-y';\n                        var strHidden = 'hidden';\n                        var strVisible = 'visible';\n\n                        //Reset the viewport (very important for natively overlaid scrollbars and zoom change\n                        //don't change the overflow prop as it is very expensive and affects performance !A LOT!\n                        if (!_nativeScrollbarStyling) {\n                            var viewportElementResetCSS = {};\n                            var resetXTmp = _hasOverflowCache.y && _hideOverflowCache.ys && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.y ? _viewportElement.css(isRTLLeft) : -_nativeScrollbarSize.y) : 0;\n                            var resetBottomTmp = _hasOverflowCache.x && _hideOverflowCache.xs && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.x ? _viewportElement.css(_strBottom) : -_nativeScrollbarSize.x) : 0;\n                            setTopRightBottomLeft(viewportElementResetCSS, _strEmpty);\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n\n                        //measure several sizes:\n                        var contentMeasureElement = getContentMeasureElement();\n                        //in Firefox content element has to have overflow hidden, else element margins aren't calculated properly, this element prevents this bug, but only if scrollbars aren't overlaid\n                        var contentSize = {\n                            //use clientSize because natively overlaidScrollbars add borders\n                            w: textareaDynOrigSize.w || contentMeasureElement[LEXICON.cW],\n                            h: textareaDynOrigSize.h || contentMeasureElement[LEXICON.cH]\n                        };\n                        var scrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH]\n                        };\n\n                        //apply the correct viewport style and measure viewport size\n                        if (!_nativeScrollbarStyling) {\n                            viewportElementResetCSS[_strBottom] = wasHeightAuto ? _strEmpty : resetBottomTmp;\n                            viewportElementResetCSS[isRTLLeft] = wasWidthAuto ? _strEmpty : resetXTmp;\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n                        _viewportSize = getViewportSize();\n\n                        //measure and correct several sizes\n                        var hostSize = getHostSize();\n                        var hostAbsoluteRectSize = {\n                            w: hostSize.w - _marginX - _borderX - (_isBorderBox ? 0 : _paddingX),\n                            h: hostSize.h - _marginY - _borderY - (_isBorderBox ? 0 : _paddingY)\n                        };\n                        var contentGlueSize = {\n                            //client/scrollSize + AbsolutePadding -> because padding is only applied to the paddingElement if its absolute, so you have to add it manually\n                            //hostSize is clientSize -> so padding should be added manually, right? FALSE! Because content glue is inside hostElement, so we don't have to worry about padding\n                            w: MATH.max((widthAuto ? contentSize.w : scrollSize.w) + paddingAbsoluteX, hostAbsoluteRectSize.w),\n                            h: MATH.max((heightAuto ? contentSize.h : scrollSize.h) + paddingAbsoluteY, hostAbsoluteRectSize.h)\n                        };\n                        contentGlueSize.c = checkCacheAutoForce(contentGlueSize, _contentGlueSizeCache);\n                        _contentGlueSizeCache = contentGlueSize;\n\n                        //apply correct contentGlue size\n                        if (sizeAutoCapable) {\n                            //size contentGlue correctly to make sure the element has correct size if the sizing switches to auto\n                            if (contentGlueSize.c || (heightAuto || widthAuto)) {\n                                contentGlueElementCSS[_strWidth] = contentGlueSize.w;\n                                contentGlueElementCSS[_strHeight] = contentGlueSize.h;\n\n                                //textarea-sizes are already calculated correctly at this point\n                                if (!_isTextarea) {\n                                    contentSize = {\n                                        //use clientSize because natively overlaidScrollbars add borders\n                                        w: contentMeasureElement[LEXICON.cW],\n                                        h: contentMeasureElement[LEXICON.cH]\n                                    };\n                                }\n                            }\n                            var textareaCoverCSS = {};\n                            var setContentGlueElementCSSfunction = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var wh = scrollbarVars._w_h;\n                                var strWH = scrollbarVars._width_height;\n                                var autoSize = horizontal ? widthAuto : heightAuto;\n                                var borderSize = horizontal ? _borderX : _borderY;\n                                var paddingSize = horizontal ? _paddingX : _paddingY;\n                                var marginSize = horizontal ? _marginX : _marginY;\n                                var viewportSize = _viewportSize[wh] - borderSize - marginSize - (_isBorderBox ? 0 : paddingSize);\n\n                                //make contentGlue size -1 if element is not auto sized, to make sure that a resize event happens when the element shrinks\n                                if (!autoSize || (!autoSize && border.c))\n                                    contentGlueElementCSS[strWH] = hostAbsoluteRectSize[wh] - 1;\n\n                                //if size is auto and host is smaller than size as min size, make content glue size -1 to make sure size changes will be detected (this is only needed if padding is 0)\n                                if (autoSize && (contentSize[wh] < viewportSize) && (horizontal && _isTextarea ? !textareaAutoWrapping : true)) {\n                                    if (_isTextarea)\n                                        textareaCoverCSS[strWH] = parseToZeroOrNumber(_textareaCoverElement.css(strWH)) - 1;\n                                    contentGlueElementCSS[strWH] -= 1;\n                                }\n\n                                //make sure content glue size is at least 1\n                                if (contentSize[wh] > 0)\n                                    contentGlueElementCSS[strWH] = MATH.max(1, contentGlueElementCSS[strWH]);\n                            };\n                            setContentGlueElementCSSfunction(true);\n                            setContentGlueElementCSSfunction(false);\n\n                            if (_isTextarea)\n                                _textareaCoverElement.css(textareaCoverCSS);\n                            _contentGlueElement.css(contentGlueElementCSS);\n                        }\n                        if (widthAuto)\n                            contentElementCSS[_strWidth] = _strHundredPercent;\n                        if (widthAuto && !_isBorderBox && !_mutationObserversConnected)\n                            contentElementCSS[_strFloat] = 'none';\n\n                        //apply and reset content style\n                        _contentElement.css(contentElementCSS);\n                        contentElementCSS = {};\n\n                        //measure again, but this time all correct sizes:\n                        var contentScrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH],\n                        };\n                        contentScrollSize.c = contentSizeChanged = checkCacheAutoForce(contentScrollSize, _contentScrollSizeCache);\n                        _contentScrollSizeCache = contentScrollSize;\n\n                        //refresh viewport size after correct measuring\n                        _viewportSize = getViewportSize();\n\n                        hostSize = getHostSize();\n                        hostSizeChanged = checkCacheAutoForce(hostSize, _hostSizeCache);\n                        _hostSizeCache = hostSize;\n\n                        var hideOverflowForceTextarea = _isTextarea && (_viewportSize.w === 0 || _viewportSize.h === 0);\n                        var previousOverflowAmount = _overflowAmountCache;\n                        var overflowBehaviorIsVS = {};\n                        var overflowBehaviorIsVH = {};\n                        var overflowBehaviorIsS = {};\n                        var overflowAmount = {};\n                        var hasOverflow = {};\n                        var hideOverflow = {};\n                        var canScroll = {};\n                        var viewportRect = _paddingElementNative[LEXICON.bCR]();\n                        var setOverflowVariables = function (horizontal) {\n                            var scrollbarVars = getScrollbarVars(horizontal);\n                            var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                            var xyI = scrollbarVarsInverted._x_y;\n                            var xy = scrollbarVars._x_y;\n                            var wh = scrollbarVars._w_h;\n                            var widthHeight = scrollbarVars._width_height;\n                            var scrollMax = _strScroll + scrollbarVars._Left_Top + 'Max';\n                            var fractionalOverflowAmount = viewportRect[widthHeight] ? MATH.abs(viewportRect[widthHeight] - _viewportSize[wh]) : 0;\n                            var checkFractionalOverflowAmount = previousOverflowAmount && previousOverflowAmount[xy] > 0 && _viewportElementNative[scrollMax] === 0;\n                            overflowBehaviorIsVS[xy] = overflowBehavior[xy] === 'v-s';\n                            overflowBehaviorIsVH[xy] = overflowBehavior[xy] === 'v-h';\n                            overflowBehaviorIsS[xy] = overflowBehavior[xy] === 's';\n                            overflowAmount[xy] = MATH.max(0, MATH.round((contentScrollSize[wh] - _viewportSize[wh]) * 100) / 100);\n                            overflowAmount[xy] *= (hideOverflowForceTextarea || (checkFractionalOverflowAmount && fractionalOverflowAmount > 0 && fractionalOverflowAmount < 1)) ? 0 : 1;\n                            hasOverflow[xy] = overflowAmount[xy] > 0;\n\n                            //hideOverflow:\n                            //x || y : true === overflow is hidden by \"overflow: scroll\" OR \"overflow: hidden\"\n                            //xs || ys : true === overflow is hidden by \"overflow: scroll\"\n                            hideOverflow[xy] = overflowBehaviorIsVS[xy] || overflowBehaviorIsVH[xy] ? (hasOverflow[xyI] && !overflowBehaviorIsVS[xyI] && !overflowBehaviorIsVH[xyI]) : hasOverflow[xy];\n                            hideOverflow[xy + 's'] = hideOverflow[xy] ? (overflowBehaviorIsS[xy] || overflowBehaviorIsVS[xy]) : false;\n\n                            canScroll[xy] = hasOverflow[xy] && hideOverflow[xy + 's'];\n                        };\n                        setOverflowVariables(true);\n                        setOverflowVariables(false);\n\n                        overflowAmount.c = checkCacheAutoForce(overflowAmount, _overflowAmountCache);\n                        _overflowAmountCache = overflowAmount;\n                        hasOverflow.c = checkCacheAutoForce(hasOverflow, _hasOverflowCache);\n                        _hasOverflowCache = hasOverflow;\n                        hideOverflow.c = checkCacheAutoForce(hideOverflow, _hideOverflowCache);\n                        _hideOverflowCache = hideOverflow;\n\n                        //if native scrollbar is overlay at x OR y axis, prepare DOM\n                        if (_nativeScrollbarIsOverlaid.x || _nativeScrollbarIsOverlaid.y) {\n                            var borderDesign = 'px solid transparent';\n                            var contentArrangeElementCSS = {};\n                            var arrangeContent = {};\n                            var arrangeChanged = force;\n                            var setContentElementCSS;\n\n                            if (hasOverflow.x || hasOverflow.y) {\n                                arrangeContent.w = _nativeScrollbarIsOverlaid.y && hasOverflow.y ? contentScrollSize.w + _overlayScrollbarDummySize.y : _strEmpty;\n                                arrangeContent.h = _nativeScrollbarIsOverlaid.x && hasOverflow.x ? contentScrollSize.h + _overlayScrollbarDummySize.x : _strEmpty;\n                                arrangeChanged = checkCacheAutoForce(arrangeContent, _arrangeContentSizeCache);\n                                _arrangeContentSizeCache = arrangeContent;\n                            }\n\n                            if (hasOverflow.c || hideOverflow.c || contentScrollSize.c || cssDirectionChanged || widthAutoChanged || heightAutoChanged || widthAuto || heightAuto || ignoreOverlayScrollbarHidingChanged) {\n                                contentElementCSS[_strMarginMinus + isRTLRight] = contentElementCSS[_strBorderMinus + isRTLRight] = _strEmpty;\n                                setContentElementCSS = function (horizontal) {\n                                    var scrollbarVars = getScrollbarVars(horizontal);\n                                    var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                    var xy = scrollbarVars._x_y;\n                                    var strDirection = horizontal ? _strBottom : isRTLLeft;\n                                    var invertedAutoSize = horizontal ? heightAuto : widthAuto;\n\n                                    if (_nativeScrollbarIsOverlaid[xy] && hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                        contentElementCSS[_strMarginMinus + strDirection] = invertedAutoSize ? (ignoreOverlayScrollbarHiding ? _strEmpty : _overlayScrollbarDummySize[xy]) : _strEmpty;\n                                        contentElementCSS[_strBorderMinus + strDirection] = ((horizontal ? !invertedAutoSize : true) && !ignoreOverlayScrollbarHiding) ? (_overlayScrollbarDummySize[xy] + borderDesign) : _strEmpty;\n                                    }\n                                    else {\n                                        arrangeContent[scrollbarVarsInverted._w_h] =\n                                            contentElementCSS[_strMarginMinus + strDirection] =\n                                            contentElementCSS[_strBorderMinus + strDirection] = _strEmpty;\n                                        arrangeChanged = true;\n                                    }\n                                };\n\n                                if (_nativeScrollbarStyling) {\n                                    addRemoveClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible, !ignoreOverlayScrollbarHiding)\n                                }\n                                else {\n                                    setContentElementCSS(true);\n                                    setContentElementCSS(false);\n                                }\n                            }\n                            if (ignoreOverlayScrollbarHiding) {\n                                arrangeContent.w = arrangeContent.h = _strEmpty;\n                                arrangeChanged = true;\n                            }\n                            if (arrangeChanged && !_nativeScrollbarStyling) {\n                                contentArrangeElementCSS[_strWidth] = hideOverflow.y ? arrangeContent.w : _strEmpty;\n                                contentArrangeElementCSS[_strHeight] = hideOverflow.x ? arrangeContent.h : _strEmpty;\n\n                                if (!_contentArrangeElement) {\n                                    _contentArrangeElement = FRAMEWORK(generateDiv(_classNameContentArrangeElement));\n                                    _viewportElement.prepend(_contentArrangeElement);\n                                }\n                                _contentArrangeElement.css(contentArrangeElementCSS);\n                            }\n                            _contentElement.css(contentElementCSS);\n                        }\n\n                        var viewportElementCSS = {};\n                        var paddingElementCSS = {};\n                        var setViewportCSS;\n                        if (hostSizeChanged || hasOverflow.c || hideOverflow.c || contentScrollSize.c || overflowBehaviorChanged || boxSizingChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged || clipAlwaysChanged || heightAutoChanged) {\n                            viewportElementCSS[isRTLRight] = _strEmpty;\n                            setViewportCSS = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                var xy = scrollbarVars._x_y;\n                                var XY = scrollbarVars._X_Y;\n                                var strDirection = horizontal ? _strBottom : isRTLLeft;\n\n                                var reset = function () {\n                                    viewportElementCSS[strDirection] = _strEmpty;\n                                    _contentBorderSize[scrollbarVarsInverted._w_h] = 0;\n                                };\n                                if (hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                    viewportElementCSS[strOverflow + XY] = _strScroll;\n                                    if (ignoreOverlayScrollbarHiding || _nativeScrollbarStyling) {\n                                        reset();\n                                    }\n                                    else {\n                                        viewportElementCSS[strDirection] = -(_nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[xy] : _nativeScrollbarSize[xy]);\n                                        _contentBorderSize[scrollbarVarsInverted._w_h] = _nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[scrollbarVarsInverted._x_y] : 0;\n                                    }\n                                } else {\n                                    viewportElementCSS[strOverflow + XY] = _strEmpty;\n                                    reset();\n                                }\n                            };\n                            setViewportCSS(true);\n                            setViewportCSS(false);\n\n                            // if the scroll container is too small and if there is any overflow with no overlay scrollbar (and scrollbar styling isn't possible), \n                            // make viewport element greater in size (Firefox hide Scrollbars fix)\n                            // because firefox starts hiding scrollbars on too small elements\n                            // with this behavior the overflow calculation may be incorrect or the scrollbars would appear suddenly\n                            // https://bugzilla.mozilla.org/show_bug.cgi?id=292284\n                            if (!_nativeScrollbarStyling\n                                && (_viewportSize.h < _nativeScrollbarMinSize.x || _viewportSize.w < _nativeScrollbarMinSize.y)\n                                && ((hasOverflow.x && hideOverflow.x && !_nativeScrollbarIsOverlaid.x) || (hasOverflow.y && hideOverflow.y && !_nativeScrollbarIsOverlaid.y))) {\n                                viewportElementCSS[_strPaddingMinus + _strTop] = _nativeScrollbarMinSize.x;\n                                viewportElementCSS[_strMarginMinus + _strTop] = -_nativeScrollbarMinSize.x;\n\n                                viewportElementCSS[_strPaddingMinus + isRTLRight] = _nativeScrollbarMinSize.y;\n                                viewportElementCSS[_strMarginMinus + isRTLRight] = -_nativeScrollbarMinSize.y;\n                            }\n                            else {\n                                viewportElementCSS[_strPaddingMinus + _strTop] =\n                                    viewportElementCSS[_strMarginMinus + _strTop] =\n                                    viewportElementCSS[_strPaddingMinus + isRTLRight] =\n                                    viewportElementCSS[_strMarginMinus + isRTLRight] = _strEmpty;\n                            }\n                            viewportElementCSS[_strPaddingMinus + isRTLLeft] =\n                                viewportElementCSS[_strMarginMinus + isRTLLeft] = _strEmpty;\n\n                            //if there is any overflow (x OR y axis) and this overflow shall be hidden, make overflow hidden, else overflow visible\n                            if ((hasOverflow.x && hideOverflow.x) || (hasOverflow.y && hideOverflow.y) || hideOverflowForceTextarea) {\n                                //only hide if is Textarea\n                                if (_isTextarea && hideOverflowForceTextarea) {\n                                    paddingElementCSS[strOverflowX] =\n                                        paddingElementCSS[strOverflowY] = strHidden;\n                                }\n                            }\n                            else {\n                                if (!clipAlways || (overflowBehaviorIsVH.x || overflowBehaviorIsVS.x || overflowBehaviorIsVH.y || overflowBehaviorIsVS.y)) {\n                                    //only un-hide if Textarea\n                                    if (_isTextarea) {\n                                        paddingElementCSS[strOverflowX] =\n                                            paddingElementCSS[strOverflowY] = _strEmpty;\n                                    }\n                                    viewportElementCSS[strOverflowX] =\n                                        viewportElementCSS[strOverflowY] = strVisible;\n                                }\n                            }\n\n                            _paddingElement.css(paddingElementCSS);\n                            _viewportElement.css(viewportElementCSS);\n                            viewportElementCSS = {};\n\n                            //force soft redraw in webkit because without the scrollbars will may appear because DOM wont be redrawn under special conditions\n                            if ((hasOverflow.c || boxSizingChanged || widthAutoChanged || heightAutoChanged) && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                                var elementStyle = _contentElementNative[LEXICON.s];\n                                var dump;\n                                elementStyle.webkitTransform = 'scale(1)';\n                                elementStyle.display = 'run-in';\n                                dump = _contentElementNative[LEXICON.oH];\n                                elementStyle.display = _strEmpty; //|| dump; //use dump to prevent it from deletion if minify\n                                elementStyle.webkitTransform = _strEmpty;\n                            }\n                            /*\n                            //force hard redraw in webkit if native overlaid scrollbars shall appear\n                            if (ignoreOverlayScrollbarHidingChanged && ignoreOverlayScrollbarHiding) {\n                                _hostElement.hide();\n                                var dump = _hostElementNative[LEXICON.oH];\n                                _hostElement.show();\n                            }\n                            */\n                        }\n\n                        //change to direction RTL and width auto Bugfix in Webkit\n                        //without this fix, the DOM still thinks the scrollbar is LTR and thus the content is shifted to the left\n                        contentElementCSS = {};\n                        if (cssDirectionChanged || widthAutoChanged || heightAutoChanged) {\n                            if (_isRTL && widthAuto) {\n                                var floatTmp = _contentElement.css(_strFloat);\n                                var posLeftWithoutFloat = MATH.round(_contentElement.css(_strFloat, _strEmpty).css(_strLeft, _strEmpty).position().left);\n                                _contentElement.css(_strFloat, floatTmp);\n                                var posLeftWithFloat = MATH.round(_contentElement.position().left);\n\n                                if (posLeftWithoutFloat !== posLeftWithFloat)\n                                    contentElementCSS[_strLeft] = posLeftWithoutFloat;\n                            }\n                            else {\n                                contentElementCSS[_strLeft] = _strEmpty;\n                            }\n                        }\n                        _contentElement.css(contentElementCSS);\n\n                        //handle scroll position\n                        if (_isTextarea && contentSizeChanged) {\n                            var textareaInfo = getTextareaInfo();\n                            if (textareaInfo) {\n                                var textareaRowsChanged = _textareaInfoCache === undefined ? true : textareaInfo._rows !== _textareaInfoCache._rows;\n                                var cursorRow = textareaInfo._cursorRow;\n                                var cursorCol = textareaInfo._cursorColumn;\n                                var widestRow = textareaInfo._widestRow;\n                                var lastRow = textareaInfo._rows;\n                                var lastCol = textareaInfo._columns;\n                                var cursorPos = textareaInfo._cursorPosition;\n                                var cursorMax = textareaInfo._cursorMax;\n                                var cursorIsLastPosition = (cursorPos >= cursorMax && _textareaHasFocus);\n                                var textareaScrollAmount = {\n                                    x: (!textareaAutoWrapping && (cursorCol === lastCol && cursorRow === widestRow)) ? _overflowAmountCache.x : -1,\n                                    y: (textareaAutoWrapping ? cursorIsLastPosition || textareaRowsChanged && (previousOverflowAmount ? (currScroll.y === previousOverflowAmount.y) : false) : (cursorIsLastPosition || textareaRowsChanged) && cursorRow === lastRow) ? _overflowAmountCache.y : -1\n                                };\n                                currScroll.x = textareaScrollAmount.x > -1 ? (_isRTL && _normalizeRTLCache && _rtlScrollBehavior.i ? 0 : textareaScrollAmount.x) : currScroll.x; //if inverted, scroll to 0 -> normalized this means to max scroll offset.\n                                currScroll.y = textareaScrollAmount.y > -1 ? textareaScrollAmount.y : currScroll.y;\n                            }\n                            _textareaInfoCache = textareaInfo;\n                        }\n                        if (_isRTL && _rtlScrollBehavior.i && _nativeScrollbarIsOverlaid.y && hasOverflow.x && _normalizeRTLCache)\n                            currScroll.x += _contentBorderSize.w || 0;\n                        if (widthAuto)\n                            _hostElement[_strScrollLeft](0);\n                        if (heightAuto)\n                            _hostElement[_strScrollTop](0);\n                        _viewportElement[_strScrollLeft](currScroll.x)[_strScrollTop](currScroll.y);\n\n                        //scrollbars management:\n                        var scrollbarsVisibilityVisible = scrollbarsVisibility === 'v';\n                        var scrollbarsVisibilityHidden = scrollbarsVisibility === 'h';\n                        var scrollbarsVisibilityAuto = scrollbarsVisibility === 'a';\n                        var refreshScrollbarsVisibility = function (showX, showY) {\n                            showY = showY === undefined ? showX : showY;\n                            refreshScrollbarAppearance(true, showX, canScroll.x)\n                            refreshScrollbarAppearance(false, showY, canScroll.y)\n                        };\n\n                        //manage class name which indicates scrollable overflow\n                        addRemoveClass(_hostElement, _classNameHostOverflow, hideOverflow.x || hideOverflow.y);\n                        addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);\n                        addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);\n\n                        //add or remove rtl class name for styling purposes except when its body, then the scrollbar stays\n                        if (cssDirectionChanged && !_isBody) {\n                            addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);\n                        }\n\n                        //manage the resize feature (CSS3 resize \"polyfill\" for this plugin)\n                        if (_isBody)\n                            addClass(_hostElement, _classNameHostResizeDisabled);\n                        if (resizeChanged) {\n                            addRemoveClass(_hostElement, _classNameHostResizeDisabled, _resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResize, !_resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeB, _resizeBoth);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeH, _resizeHorizontal);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeV, _resizeVertical);\n                        }\n\n                        //manage the scrollbars general visibility + the scrollbar interactivity (unusable class name)\n                        if (scrollbarsVisibilityChanged || overflowBehaviorChanged || hideOverflow.c || hasOverflow.c || ignoreOverlayScrollbarHidingChanged) {\n                            if (ignoreOverlayScrollbarHiding) {\n                                if (ignoreOverlayScrollbarHidingChanged) {\n                                    removeClass(_hostElement, _classNameHostScrolling);\n                                    if (ignoreOverlayScrollbarHiding) {\n                                        refreshScrollbarsVisibility(false);\n                                    }\n                                }\n                            }\n                            else if (scrollbarsVisibilityAuto) {\n                                refreshScrollbarsVisibility(canScroll.x, canScroll.y);\n                            }\n                            else if (scrollbarsVisibilityVisible) {\n                                refreshScrollbarsVisibility(true);\n                            }\n                            else if (scrollbarsVisibilityHidden) {\n                                refreshScrollbarsVisibility(false);\n                            }\n                        }\n\n                        //manage the scrollbars auto hide feature (auto hide them after specific actions)\n                        if (scrollbarsAutoHideChanged || ignoreOverlayScrollbarHidingChanged) {\n                            setupHostMouseTouchEvents(!_scrollbarsAutoHideLeave && !_scrollbarsAutoHideMove);\n                            refreshScrollbarsAutoHide(_scrollbarsAutoHideNever, !_scrollbarsAutoHideNever);\n                        }\n\n                        //manage scrollbars handle length & offset - don't remove!\n                        if (hostSizeChanged || overflowAmount.c || heightAutoChanged || widthAutoChanged || resizeChanged || boxSizingChanged || paddingAbsoluteChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged) {\n                            refreshScrollbarHandleLength(true);\n                            refreshScrollbarHandleOffset(true);\n                            refreshScrollbarHandleLength(false);\n                            refreshScrollbarHandleOffset(false);\n                        }\n\n                        //manage interactivity\n                        if (scrollbarsClickScrollingChanged)\n                            refreshScrollbarsInteractive(true, scrollbarsClickScrolling);\n                        if (scrollbarsDragScrollingChanged)\n                            refreshScrollbarsInteractive(false, scrollbarsDragScrolling);\n\n                        //callbacks:\n                        dispatchCallback('onDirectionChanged', {\n                            isRTL: _isRTL,\n                            dir: cssDirection\n                        }, cssDirectionChanged);\n                        dispatchCallback('onHostSizeChanged', {\n                            width: _hostSizeCache.w,\n                            height: _hostSizeCache.h\n                        }, hostSizeChanged);\n                        dispatchCallback('onContentSizeChanged', {\n                            width: _contentScrollSizeCache.w,\n                            height: _contentScrollSizeCache.h\n                        }, contentSizeChanged);\n                        dispatchCallback('onOverflowChanged', {\n                            x: hasOverflow.x,\n                            y: hasOverflow.y,\n                            xScrollable: hideOverflow.xs,\n                            yScrollable: hideOverflow.ys,\n                            clipped: hideOverflow.x || hideOverflow.y\n                        }, hasOverflow.c || hideOverflow.c);\n                        dispatchCallback('onOverflowAmountChanged', {\n                            x: overflowAmount.x,\n                            y: overflowAmount.y\n                        }, overflowAmount.c);\n                    }\n\n                    //fix body min size\n                    if (_isBody && _bodyMinSizeCache && (_hasOverflowCache.c || _bodyMinSizeCache.c)) {\n                        //its possible that no min size was measured until now, because the content arrange element was just added now, in this case, measure now the min size.\n                        if (!_bodyMinSizeCache.f)\n                            bodyMinSizeChanged();\n                        if (_nativeScrollbarIsOverlaid.y && _hasOverflowCache.x)\n                            _contentElement.css(_strMinMinus + _strWidth, _bodyMinSizeCache.w + _overlayScrollbarDummySize.y);\n                        if (_nativeScrollbarIsOverlaid.x && _hasOverflowCache.y)\n                            _contentElement.css(_strMinMinus + _strHeight, _bodyMinSizeCache.h + _overlayScrollbarDummySize.x);\n                        _bodyMinSizeCache.c = false;\n                    }\n\n                    if (_initialized && changedOptions.updateOnLoad) {\n                        updateElementsOnLoad();\n                    }\n\n                    //freezeResizeObserver(_sizeObserverElement, false);\n                    //freezeResizeObserver(_sizeAutoObserverElement, false);\n\n                    dispatchCallback('onUpdated', { forced: force });\n                }\n\n                /**\n                 * Updates the found elements of which the load event shall be handled.\n                 */\n                function updateElementsOnLoad() {\n                    if (!_isTextarea) {\n                        eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                            _contentElement.find(updateOnLoadSelector).each(function (i, el) {\n                                // if element doesn't have a updateOnLoadCallback applied\n                                if (COMPATIBILITY.inA(el, _updateOnLoadElms) < 0) {\n                                    _updateOnLoadElms.push(el);\n                                    FRAMEWORK(el)\n                                        .off(_updateOnLoadEventName, updateOnLoadCallback)\n                                        .on(_updateOnLoadEventName, updateOnLoadCallback);\n                                }\n                            });\n                        });\n                    }\n                }\n\n                //==== Options ====//\n\n                /**\n                 * Sets new options but doesn't call the update method.\n                 * @param newOptions The object which contains the new options.\n                 * @returns {*} A object which contains the changed options.\n                 */\n                function setOptions(newOptions) {\n                    var validatedOpts = _pluginsOptions._validate(newOptions, _pluginsOptions._template, true, _currentOptions)\n\n                    _currentOptions = extendDeep({}, _currentOptions, validatedOpts._default);\n                    _currentPreparedOptions = extendDeep({}, _currentPreparedOptions, validatedOpts._prepared);\n\n                    return validatedOpts._prepared;\n                }\n\n\n                //==== Structure ====//\n\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupStructureDOM(destroy) {\n                    var strParent = 'parent';\n                    var classNameResizeObserverHost = 'os-resize-observer-host';\n                    var classNameTextareaElementFull = _classNameTextareaElement + _strSpace + _classNameTextInherit;\n                    var textareaClass = _isTextarea ? _strSpace + _classNameTextInherit : _strEmpty;\n                    var adoptAttrs = _currentPreparedOptions.textarea.inheritedAttrs;\n                    var adoptAttrsMap = {};\n                    var applyAdoptedAttrs = function () {\n                        var applyAdoptedAttrsElm = destroy ? _targetElement : _hostElement;\n                        each(adoptAttrsMap, function (key, value) {\n                            if (type(value) == TYPES.s) {\n                                if (key == LEXICON.c)\n                                    applyAdoptedAttrsElm.addClass(value);\n                                else\n                                    applyAdoptedAttrsElm.attr(key, value);\n                            }\n                        });\n                    };\n                    var hostElementClassNames = [\n                        _classNameHostElement,\n                        _classNameHostElementForeign,\n                        _classNameHostTextareaElement,\n                        _classNameHostResizeDisabled,\n                        _classNameHostRTL,\n                        _classNameHostScrollbarHorizontalHidden,\n                        _classNameHostScrollbarVerticalHidden,\n                        _classNameHostTransition,\n                        _classNameHostScrolling,\n                        _classNameHostOverflow,\n                        _classNameHostOverflowX,\n                        _classNameHostOverflowY,\n                        _classNameThemeNone,\n                        _classNameTextareaElement,\n                        _classNameTextInherit,\n                        _classNameCache].join(_strSpace);\n                    var hostElementCSS = {};\n\n                    //get host element as first element, because that's the most upper element and required for the other elements\n                    _hostElement = _hostElement || (_isTextarea ? (_domExists ? _targetElement[strParent]()[strParent]()[strParent]()[strParent]() : FRAMEWORK(generateDiv(_classNameHostTextareaElement))) : _targetElement);\n                    _contentElement = _contentElement || selectOrGenerateDivByClass(_classNameContentElement + textareaClass);\n                    _viewportElement = _viewportElement || selectOrGenerateDivByClass(_classNameViewportElement + textareaClass);\n                    _paddingElement = _paddingElement || selectOrGenerateDivByClass(_classNamePaddingElement + textareaClass);\n                    _sizeObserverElement = _sizeObserverElement || selectOrGenerateDivByClass(classNameResizeObserverHost);\n                    _textareaCoverElement = _textareaCoverElement || (_isTextarea ? selectOrGenerateDivByClass(_classNameTextareaCoverElement) : undefined);\n\n                    //add this class to workaround class changing issues with UI frameworks especially Vue\n                    if (_domExists)\n                        addClass(_hostElement, _classNameHostElementForeign);\n\n                    //on destroy, remove all generated class names from the host element before collecting the adopted attributes \n                    //to prevent adopting generated class names\n                    if (destroy)\n                        removeClass(_hostElement, hostElementClassNames);\n\n                    //collect all adopted attributes\n                    adoptAttrs = type(adoptAttrs) == TYPES.s ? adoptAttrs.split(_strSpace) : adoptAttrs;\n                    if (COMPATIBILITY.isA(adoptAttrs) && _isTextarea) {\n                        each(adoptAttrs, function (i, v) {\n                            if (type(v) == TYPES.s) {\n                                adoptAttrsMap[v] = destroy ? _hostElement.attr(v) : _targetElement.attr(v);\n                            }\n                        });\n                    }\n\n                    if (!destroy) {\n                        if (_isTextarea) {\n                            if (!_currentPreparedOptions.sizeAutoCapable) {\n                                hostElementCSS[_strWidth] = _targetElement.css(_strWidth);\n                                hostElementCSS[_strHeight] = _targetElement.css(_strHeight);\n                            }\n\n                            if (!_domExists)\n                                _targetElement.addClass(_classNameTextInherit).wrap(_hostElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _hostElement = _targetElement[strParent]().css(hostElementCSS);\n                        }\n\n                        if (!_domExists) {\n                            //add the correct class to the target element\n                            addClass(_targetElement, _isTextarea ? classNameTextareaElementFull : _classNameHostElement);\n\n                            //wrap the content into the generated elements to create the required DOM\n                            _hostElement.wrapInner(_contentElement)\n                                .wrapInner(_viewportElement)\n                                .wrapInner(_paddingElement)\n                                .prepend(_sizeObserverElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _contentElement = findFirst(_hostElement, _strDot + _classNameContentElement);\n                            _viewportElement = findFirst(_hostElement, _strDot + _classNameViewportElement);\n                            _paddingElement = findFirst(_hostElement, _strDot + _classNamePaddingElement);\n\n                            if (_isTextarea) {\n                                _contentElement.prepend(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_nativeScrollbarStyling)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible);\n                        if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsOverlaid);\n                        if (_isBody)\n                            addClass(_htmlElement, _classNameHTMLElement);\n\n                        _sizeObserverElementNative = _sizeObserverElement[0];\n                        _hostElementNative = _hostElement[0];\n                        _paddingElementNative = _paddingElement[0];\n                        _viewportElementNative = _viewportElement[0];\n                        _contentElementNative = _contentElement[0];\n\n                        updateViewportAttrsFromTarget();\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            //clear size observer\n                            _sizeObserverElement.children().remove();\n\n                            //remove the style property and classes from already generated elements\n                            each([_paddingElement, _viewportElement, _contentElement, _textareaCoverElement], function (i, elm) {\n                                if (elm) {\n                                    removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                                }\n                            });\n\n                            //add classes to the host element which was removed previously to match the expected DOM\n                            addClass(_hostElement, _isTextarea ? _classNameHostTextareaElement : _classNameHostElement);\n                        }\n                        else {\n                            //remove size observer\n                            remove(_sizeObserverElement);\n\n                            //unwrap the content to restore DOM\n                            _contentElement.contents()\n                                .unwrap()\n                                .unwrap()\n                                .unwrap();\n\n                            if (_isTextarea) {\n                                _targetElement.unwrap();\n                                remove(_hostElement);\n                                remove(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_isTextarea)\n                            _targetElement.removeAttr(LEXICON.s);\n\n                        if (_isBody)\n                            removeClass(_htmlElement, _classNameHTMLElement);\n                    }\n                }\n\n                /**\n                 * Adds or removes all wrapper elements interactivity events.\n                 * @param destroy Indicates whether the Events shall be added or removed.\n                 */\n                function setupStructureEvents() {\n                    var textareaKeyDownRestrictedKeyCodes = [\n                        112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123,    //F1 to F12\n                        33, 34,                                                   //page up, page down\n                        37, 38, 39, 40,                                           //left, up, right, down arrows\n                        16, 17, 18, 19, 20, 144                                   //Shift, Ctrl, Alt, Pause, CapsLock, NumLock\n                    ];\n                    var textareaKeyDownKeyCodesList = [];\n                    var textareaUpdateIntervalID;\n                    var scrollStopTimeoutId;\n                    var scrollStopDelay = 175;\n                    var strFocus = 'focus';\n\n                    function updateTextarea(doClearInterval) {\n                        textareaUpdate();\n                        _base.update(_strAuto);\n                        if (doClearInterval && _autoUpdateRecommended)\n                            clearInterval(textareaUpdateIntervalID);\n                    }\n                    function textareaOnScroll(event) {\n                        _targetElement[_strScrollLeft](_rtlScrollBehavior.i && _normalizeRTLCache ? 9999999 : 0);\n                        _targetElement[_strScrollTop](0);\n                        COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                        return false;\n                    }\n                    function textareaOnDrop(event) {\n                        setTimeout(function () {\n                            if (!_destroyed)\n                                updateTextarea();\n                        }, 50);\n                    }\n                    function textareaOnFocus() {\n                        _textareaHasFocus = true;\n                        addClass(_hostElement, strFocus);\n                    }\n                    function textareaOnFocusout() {\n                        _textareaHasFocus = false;\n                        textareaKeyDownKeyCodesList = [];\n                        removeClass(_hostElement, strFocus);\n                        updateTextarea(true);\n                    }\n                    function textareaOnKeyDown(event) {\n                        var keyCode = event.keyCode;\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l]) {\n                                updateTextarea();\n                                textareaUpdateIntervalID = setInterval(updateTextarea, 1000 / 60);\n                            }\n                            if (inArray(keyCode, textareaKeyDownKeyCodesList) < 0)\n                                textareaKeyDownKeyCodesList.push(keyCode);\n                        }\n                    }\n                    function textareaOnKeyUp(event) {\n                        var keyCode = event.keyCode;\n                        var index = inArray(keyCode, textareaKeyDownKeyCodesList);\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (index > -1)\n                                textareaKeyDownKeyCodesList.splice(index, 1);\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l])\n                                updateTextarea(true);\n                        }\n                    }\n                    function contentOnTransitionEnd(event) {\n                        if (_autoUpdateCache === true)\n                            return;\n                        event = event.originalEvent || event;\n                        if (isSizeAffectingCSSProperty(event.propertyName))\n                            _base.update(_strAuto);\n                    }\n                    function viewportOnScroll(event) {\n                        if (!_sleeping) {\n                            if (scrollStopTimeoutId !== undefined)\n                                clearTimeout(scrollStopTimeoutId);\n                            else {\n                                if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                    refreshScrollbarsAutoHide(true);\n\n                                if (!nativeOverlayScrollbarsAreActive())\n                                    addClass(_hostElement, _classNameHostScrolling);\n\n                                dispatchCallback('onScrollStart', event);\n                            }\n\n                            //if a scrollbars handle gets dragged, the mousemove event is responsible for refreshing the handle offset\n                            //because if CSS scroll-snap is used, the handle offset gets only refreshed on every snap point\n                            //this looks laggy & clunky, it looks much better if the offset refreshes with the mousemove\n                            if (!_scrollbarsHandlesDefineScrollPos) {\n                                refreshScrollbarHandleOffset(true);\n                                refreshScrollbarHandleOffset(false);\n                            }\n                            dispatchCallback('onScroll', event);\n\n                            scrollStopTimeoutId = setTimeout(function () {\n                                if (!_destroyed) {\n                                    //OnScrollStop:\n                                    clearTimeout(scrollStopTimeoutId);\n                                    scrollStopTimeoutId = undefined;\n\n                                    if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                        refreshScrollbarsAutoHide(false);\n\n                                    if (!nativeOverlayScrollbarsAreActive())\n                                        removeClass(_hostElement, _classNameHostScrolling);\n\n                                    dispatchCallback('onScrollStop', event);\n                                }\n                            }, scrollStopDelay);\n                        }\n                    }\n\n\n                    if (_isTextarea) {\n                        if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                            addDestroyEventListener(_targetElement, 'input', updateTextarea);\n                        }\n                        else {\n                            addDestroyEventListener(_targetElement,\n                                [_strKeyDownEvent, _strKeyUpEvent],\n                                [textareaOnKeyDown, textareaOnKeyUp]);\n                        }\n\n                        addDestroyEventListener(_targetElement,\n                            [_strScroll, 'drop', strFocus, strFocus + 'out'],\n                            [textareaOnScroll, textareaOnDrop, textareaOnFocus, textareaOnFocusout]);\n                    }\n                    else {\n                        addDestroyEventListener(_contentElement, _strTransitionEndEvent, contentOnTransitionEnd);\n                    }\n                    addDestroyEventListener(_viewportElement, _strScroll, viewportOnScroll, true);\n                }\n\n\n                //==== Scrollbars ====//\n\n                /**\n                 * Builds or destroys all scrollbar DOM elements (scrollbar, track, handle)\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarsDOM(destroy) {\n                    var selectOrGenerateScrollbarDOM = function (isHorizontal) {\n                        var scrollbarClassName = isHorizontal ? _classNameScrollbarHorizontal : _classNameScrollbarVertical;\n                        var scrollbar = selectOrGenerateDivByClass(_classNameScrollbar + _strSpace + scrollbarClassName, true);\n                        var track = selectOrGenerateDivByClass(_classNameScrollbarTrack, scrollbar);\n                        var handle = selectOrGenerateDivByClass(_classNameScrollbarHandle, scrollbar);\n\n                        if (!_domExists && !destroy) {\n                            scrollbar.append(track);\n                            track.append(handle);\n                        }\n\n                        return {\n                            _scrollbar: scrollbar,\n                            _track: track,\n                            _handle: handle\n                        };\n                    };\n                    function resetScrollbarDOM(isHorizontal) {\n                        var scrollbarVars = getScrollbarVars(isHorizontal);\n                        var scrollbar = scrollbarVars._scrollbar;\n                        var track = scrollbarVars._track;\n                        var handle = scrollbarVars._handle;\n\n                        if (_domExists && _initialized) {\n                            each([scrollbar, track, handle], function (i, elm) {\n                                removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                            });\n                        }\n                        else {\n                            remove(scrollbar || selectOrGenerateScrollbarDOM(isHorizontal)._scrollbar);\n                        }\n                    }\n                    var horizontalElements;\n                    var verticalElements;\n\n                    if (!destroy) {\n                        horizontalElements = selectOrGenerateScrollbarDOM(true);\n                        verticalElements = selectOrGenerateScrollbarDOM();\n\n                        _scrollbarHorizontalElement = horizontalElements._scrollbar;\n                        _scrollbarHorizontalTrackElement = horizontalElements._track;\n                        _scrollbarHorizontalHandleElement = horizontalElements._handle;\n                        _scrollbarVerticalElement = verticalElements._scrollbar;\n                        _scrollbarVerticalTrackElement = verticalElements._track;\n                        _scrollbarVerticalHandleElement = verticalElements._handle;\n\n                        if (!_domExists) {\n                            _paddingElement.after(_scrollbarVerticalElement);\n                            _paddingElement.after(_scrollbarHorizontalElement);\n                        }\n                    }\n                    else {\n                        resetScrollbarDOM(true);\n                        resetScrollbarDOM();\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar interactivity events. (track and handle dragging, clicking, scrolling)\n                 * @param isHorizontal True if the target scrollbar is the horizontal scrollbar, false if the target scrollbar is the vertical scrollbar.\n                 */\n                function setupScrollbarEvents(isHorizontal) {\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var xy = scrollbarVars._x_y;\n                    var XY = scrollbarVars._X_Y;\n                    var scroll = _strScroll + scrollbarVars._Left_Top;\n                    var strActive = 'active';\n                    var strSnapHandle = 'snapHandle';\n                    var strClickEvent = 'click';\n                    var scrollDurationFactor = 1;\n                    var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl\n                    var trackTimeout;\n                    var mouseDownScroll;\n                    var mouseDownOffset;\n                    var mouseDownInvertedScale;\n\n                    function getPointerPosition(event) {\n                        return _msieVersion && insideIFrame ? event['screen' + XY] : COMPATIBILITY.page(event)[xy]; //use screen coordinates in EDGE & IE because the page values are incorrect in frames.\n                    }\n                    function getPreparedScrollbarsOption(name) {\n                        return _currentPreparedOptions.scrollbars[name];\n                    }\n                    function increaseTrackScrollAmount() {\n                        scrollDurationFactor = 0.5;\n                    }\n                    function decreaseTrackScrollAmount() {\n                        scrollDurationFactor = 1;\n                    }\n                    function stopClickEventPropagation(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function documentKeyDown(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            increaseTrackScrollAmount();\n                    }\n                    function documentKeyUp(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            decreaseTrackScrollAmount();\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed || nativeOverlayScrollbarsAreActive() || !_scrollbarsDragScrollingCache || (isTouchEvent && !getPreparedScrollbarsOption('touchSupport')) ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var trackLength = scrollbarVarsInfo._trackLength;\n                            var handleLength = scrollbarVarsInfo._handleLength;\n                            var scrollRange = scrollbarVarsInfo._maxScroll;\n                            var scrollRaw = (getPointerPosition(event) - mouseDownOffset) * mouseDownInvertedScale;\n                            var scrollDeltaPercent = scrollRaw / (trackLength - handleLength);\n                            var scrollDelta = (scrollRange * scrollDeltaPercent);\n                            scrollDelta = isFinite(scrollDelta) ? scrollDelta : 0;\n                            if (_isRTL && isHorizontal && !_rtlScrollBehavior.i)\n                                scrollDelta *= -1;\n\n                            _viewportElement[scroll](MATH.round(mouseDownScroll + scrollDelta));\n\n                            if (_scrollbarsHandlesDefineScrollPos)\n                                refreshScrollbarHandleOffset(isHorizontal, mouseDownScroll + scrollDelta);\n\n                            if (!_supportPassiveEvents)\n                                COMPATIBILITY.prvD(event);\n                        }\n                        else\n                            documentMouseTouchUp(event);\n                    }\n                    function documentMouseTouchUp(event) {\n                        event = event || event.originalEvent;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],\n                            true);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });\n                        });\n                        \n                            \n                        if (_scrollbarsHandlesDefineScrollPos)\n                            refreshScrollbarHandleOffset(isHorizontal, true);\n\n                        _scrollbarsHandlesDefineScrollPos = false;\n                        removeClass(_bodyElement, _classNameDragging);\n                        removeClass(scrollbarVars._handle, strActive);\n                        removeClass(scrollbarVars._track, strActive);\n                        removeClass(scrollbarVars._scrollbar, strActive);\n\n                        mouseDownScroll = undefined;\n                        mouseDownOffset = undefined;\n                        mouseDownInvertedScale = 1;\n\n                        decreaseTrackScrollAmount();\n\n                        if (trackTimeout !== undefined) {\n                            _base.scrollStop();\n                            clearTimeout(trackTimeout);\n                            trackTimeout = undefined;\n                        }\n\n                        if (event) {\n                            var rect = _hostElementNative[LEXICON.bCR]();\n                            var mouseInsideHost = event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;\n\n                            //if mouse is outside host element\n                            if (!mouseInsideHost)\n                                hostOnMouseLeave();\n\n                            if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                refreshScrollbarsAutoHide(false);\n                        }\n                    }\n                    function onHandleMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event))\n                            onHandleMouseTouchDownAction(event);\n                    }\n                    function onHandleMouseTouchDownAction(event) {\n                        mouseDownScroll = _viewportElement[scroll]();\n                        mouseDownScroll = isNaN(mouseDownScroll) ? 0 : mouseDownScroll;\n                        if (_isRTL && isHorizontal && !_rtlScrollBehavior.n || !_isRTL)\n                            mouseDownScroll = mouseDownScroll < 0 ? 0 : mouseDownScroll;\n\n                        mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                        mouseDownOffset = getPointerPosition(event);\n\n                        _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                        addClass(_bodyElement, _classNameDragging);\n                        addClass(scrollbarVars._handle, strActive);\n                        addClass(scrollbarVars._scrollbar, strActive);\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentOnSelectStart]);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });\n                        });\n                        \n\n                        if (_msieVersion || !_documentMixed)\n                            COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function onTrackMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);\n                            var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);\n                            var scrollBaseDuration = 270 * handleToViewportRatio;\n                            var scrollFirstIterationDelay = 400 * handleToViewportRatio;\n                            var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];\n                            var ctrlKey = event.ctrlKey;\n                            var instantScroll = event.shiftKey;\n                            var instantScrollTransition = instantScroll && ctrlKey;\n                            var isFirstIteration = true;\n                            var easing = 'linear';\n                            var decreaseScroll;\n                            var finishedCondition;\n                            var scrollActionFinsished = function (transition) {\n                                if (_scrollbarsHandlesDefineScrollPos)\n                                    refreshScrollbarHandleOffset(isHorizontal, transition);\n                            };\n                            var scrollActionInstantFinished = function () {\n                                scrollActionFinsished();\n                                onHandleMouseTouchDownAction(event);\n                            };\n                            var scrollAction = function () {\n                                if (!_destroyed) {\n                                    var mouseOffset = (mouseDownOffset - trackOffset) * mouseDownInvertedScale;\n                                    var handleOffset = scrollbarVarsInfo._handleOffset;\n                                    var trackLength = scrollbarVarsInfo._trackLength;\n                                    var handleLength = scrollbarVarsInfo._handleLength;\n                                    var scrollRange = scrollbarVarsInfo._maxScroll;\n                                    var currScroll = scrollbarVarsInfo._currentScroll;\n                                    var scrollDuration = scrollBaseDuration * scrollDurationFactor;\n                                    var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;\n                                    var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent\n                                    var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);\n                                    var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;\n                                    var scrollObj = {};\n                                    var animationObj = {\n                                        easing: easing,\n                                        step: function (now) {\n                                            if (_scrollbarsHandlesDefineScrollPos) {\n                                                _viewportElement[scroll](now); //https://github.com/jquery/jquery/issues/4340\n                                                refreshScrollbarHandleOffset(isHorizontal, now);\n                                            }\n                                        }\n                                    };\n                                    instantScrollPosition = isFinite(instantScrollPosition) ? instantScrollPosition : 0;\n                                    instantScrollPosition = _isRTL && isHorizontal && !_rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n\n                                    //_base.scrollStop();\n\n                                    if (instantScroll) {\n                                        _viewportElement[scroll](instantScrollPosition); //scroll instantly to new position\n                                        if (instantScrollTransition) {\n                                            //get the scroll position after instant scroll (in case CSS Snap Points are used) to get the correct snapped scroll position\n                                            //and the animation stops at the correct point\n                                            instantScrollPosition = _viewportElement[scroll]();\n                                            //scroll back to the position before instant scrolling so animation can be performed\n                                            _viewportElement[scroll](currScroll);\n\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.n ? -instantScrollPosition : instantScrollPosition;\n\n                                            scrollObj[xy] = instantScrollPosition;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: 130,\n                                                complete: scrollActionInstantFinished\n                                            }));\n                                        }\n                                        else\n                                            scrollActionInstantFinished();\n                                    }\n                                    else {\n                                        decreaseScroll = isFirstIteration ? decreaseScrollCondition : decreaseScroll;\n                                        finishedCondition = rtlIsNormal\n                                            ? (decreaseScroll ? handleOffset + handleLength >= mouseOffset : handleOffset <= mouseOffset)\n                                            : (decreaseScroll ? handleOffset <= mouseOffset : handleOffset + handleLength >= mouseOffset);\n\n                                        if (finishedCondition) {\n                                            clearTimeout(trackTimeout);\n                                            _base.scrollStop();\n                                            trackTimeout = undefined;\n                                            scrollActionFinsished(true);\n                                        }\n                                        else {\n                                            trackTimeout = setTimeout(scrollAction, timeoutDelay);\n\n                                            scrollObj[xy] = (decreaseScroll ? '-=' : '+=') + scrollDistance;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: scrollDuration\n                                            }));\n                                        }\n                                        isFirstIteration = false;\n                                    }\n                                }\n                            };\n                            if (ctrlKey)\n                                increaseTrackScrollAmount();\n\n                            mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                            mouseDownOffset = COMPATIBILITY.page(event)[xy];\n\n                            _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                            addClass(_bodyElement, _classNameDragging);\n                            addClass(scrollbarVars._track, strActive);\n                            addClass(scrollbarVars._scrollbar, strActive);\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                                [documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart]);\n\n                            scrollAction();\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    }\n                    function onTrackMouseTouchEnter(event) {\n                        //make sure both scrollbars will stay visible if one scrollbar is hovered if autoHide is \"scroll\" or \"move\".\n                        _scrollbarsHandleHovered = true;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(true);\n                    }\n                    function onTrackMouseTouchLeave(event) {\n                        _scrollbarsHandleHovered = false;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(false);\n                    }\n                    function onScrollbarMouseTouchDown(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n\n                    addDestroyEventListener(scrollbarVars._handle,\n                        _strMouseTouchDownEvent,\n                        onHandleMouseTouchDown);\n                    addDestroyEventListener(scrollbarVars._track,\n                        [_strMouseTouchDownEvent, _strMouseEnter, _strMouseLeave],\n                        [onTrackMouseTouchDown, onTrackMouseTouchEnter, onTrackMouseTouchLeave]);\n                    addDestroyEventListener(scrollbarVars._scrollbar,\n                        _strMouseTouchDownEvent,\n                        onScrollbarMouseTouchDown);\n\n                    if (_supportTransition) {\n                        addDestroyEventListener(scrollbarVars._scrollbar, _strTransitionEndEvent, function (event) {\n                            if (event.target !== scrollbarVars._scrollbar[0])\n                                return;\n                            refreshScrollbarHandleLength(isHorizontal);\n                            refreshScrollbarHandleOffset(isHorizontal);\n                        });\n                    }\n                }\n\n                /**\n                 * Shows or hides the given scrollbar and applied a class name which indicates if the scrollbar is scrollable or not.\n                 * @param isHorizontal True if the horizontal scrollbar is the target, false if the vertical scrollbar is the target.\n                 * @param shallBeVisible True if the scrollbar shall be shown, false if hidden.\n                 * @param canScroll True if the scrollbar is scrollable, false otherwise.\n                 */\n                function refreshScrollbarAppearance(isHorizontal, shallBeVisible, canScroll) {\n                    var scrollbarHiddenClassName = isHorizontal ? _classNameHostScrollbarHorizontalHidden : _classNameHostScrollbarVerticalHidden;\n                    var scrollbarElement = isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement;\n\n                    addRemoveClass(_hostElement, scrollbarHiddenClassName, !shallBeVisible);\n                    addRemoveClass(scrollbarElement, _classNameScrollbarUnusable, !canScroll);\n                }\n\n                /**\n                 * Autoshows / autohides both scrollbars with.\n                 * @param shallBeVisible True if the scrollbars shall be autoshown (only the case if they are hidden by a autohide), false if the shall be auto hidden.\n                 * @param delayfree True if the scrollbars shall be hidden without a delay, false or undefined otherwise.\n                 */\n                function refreshScrollbarsAutoHide(shallBeVisible, delayfree) {\n                    clearTimeout(_scrollbarsAutoHideTimeoutId);\n                    if (shallBeVisible) {\n                        //if(_hasOverflowCache.x && _hideOverflowCache.xs)\n                        removeClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                        //if(_hasOverflowCache.y && _hideOverflowCache.ys)\n                        removeClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                    }\n                    else {\n                        var anyActive;\n                        var strActive = 'active';\n                        var hide = function () {\n                            if (!_scrollbarsHandleHovered && !_destroyed) {\n                                anyActive = _scrollbarHorizontalHandleElement.hasClass(strActive) || _scrollbarVerticalHandleElement.hasClass(strActive);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                            }\n                        };\n                        if (_scrollbarsAutoHideDelay > 0 && delayfree !== true)\n                            _scrollbarsAutoHideTimeoutId = setTimeout(hide, _scrollbarsAutoHideDelay);\n                        else\n                            hide();\n                    }\n                }\n\n                /**\n                 * Refreshes the handle length of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 */\n                function refreshScrollbarHandleLength(isHorizontal) {\n                    var handleCSS = {};\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var digit = 1000000;\n                    //get and apply intended handle length\n                    var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);\n                    handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit\n\n                    if (!nativeOverlayScrollbarsAreActive())\n                        scrollbarVars._handle.css(handleCSS);\n\n                    //measure the handle length to respect min & max length\n                    scrollbarVarsInfo._handleLength = scrollbarVars._handle[0]['offset' + scrollbarVars._Width_Height];\n                    scrollbarVarsInfo._handleLengthRatio = handleRatio;\n                }\n\n                /**\n                 * Refreshes the handle offset of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 * @param scrollOrTransition The scroll position of the given scrollbar axis to which the handle shall be moved or a boolean which indicates whether a transition shall be applied. If undefined or boolean if the current scroll-offset is taken. (if isHorizontal ? scrollLeft : scrollTop)\n                 */\n                function refreshScrollbarHandleOffset(isHorizontal, scrollOrTransition) {\n                    var transition = type(scrollOrTransition) == TYPES.b;\n                    var transitionDuration = 250;\n                    var isRTLisHorizontal = _isRTL && isHorizontal;\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var strTranslateBrace = 'translate(';\n                    var strTransform = VENDORS._cssProperty('transform');\n                    var strTransition = VENDORS._cssProperty('transition');\n                    var nativeScroll = isHorizontal ? _viewportElement[_strScrollLeft]() : _viewportElement[_strScrollTop]();\n                    var currentScroll = scrollOrTransition === undefined || transition ? nativeScroll : scrollOrTransition;\n\n                    //measure the handle length to respect min & max length\n                    var handleLength = scrollbarVarsInfo._handleLength;\n                    var trackLength = scrollbarVars._track[0]['offset' + scrollbarVars._Width_Height];\n                    var handleTrackDiff = trackLength - handleLength;\n                    var handleCSS = {};\n                    var transformOffset;\n                    var translateValue;\n\n                    //DONT use the variable '_contentScrollSizeCache[scrollbarVars._w_h]' instead of '_viewportElement[0]['scroll' + scrollbarVars._Width_Height]'\n                    // because its a bit behind during the small delay when content size updates\n                    //(delay = mutationObserverContentLag, if its 0 then this var could be used)\n                    var maxScroll = (_viewportElementNative[_strScroll + scrollbarVars._Width_Height] - _viewportElementNative['client' + scrollbarVars._Width_Height]) * (_rtlScrollBehavior.n && isRTLisHorizontal ? -1 : 1); //* -1 if rtl scroll max is negative\n                    var getScrollRatio = function (base) {\n                        return isNaN(base / maxScroll) ? 0 : MATH.max(0, MATH.min(1, base / maxScroll));\n                    };\n                    var getHandleOffset = function (scrollRatio) {\n                        var offset = handleTrackDiff * scrollRatio;\n                        offset = isNaN(offset) ? 0 : offset;\n                        offset = (isRTLisHorizontal && !_rtlScrollBehavior.i) ? (trackLength - handleLength - offset) : offset;\n                        offset = MATH.max(0, offset);\n                        return offset;\n                    };\n                    var scrollRatio = getScrollRatio(nativeScroll);\n                    var unsnappedScrollRatio = getScrollRatio(currentScroll);\n                    var handleOffset = getHandleOffset(unsnappedScrollRatio);\n                    var snappedHandleOffset = getHandleOffset(scrollRatio);\n\n                    scrollbarVarsInfo._maxScroll = maxScroll;\n                    scrollbarVarsInfo._currentScroll = nativeScroll;\n                    scrollbarVarsInfo._currentScrollRatio = scrollRatio;\n\n                    if (_supportTransform) {\n                        transformOffset = isRTLisHorizontal ? -(trackLength - handleLength - handleOffset) : handleOffset; //in px\n                        //transformOffset = (transformOffset / trackLength * 100) * (trackLength / handleLength); //in %\n                        translateValue = isHorizontal ? strTranslateBrace + transformOffset + 'px, 0)' : strTranslateBrace + '0, ' + transformOffset + 'px)';\n\n                        handleCSS[strTransform] = translateValue;\n\n                        //apply or clear up transition\n                        if (_supportTransition)\n                            handleCSS[strTransition] = transition && MATH.abs(handleOffset - scrollbarVarsInfo._handleOffset) > 1 ? getCSSTransitionString(scrollbarVars._handle) + ', ' + (strTransform + _strSpace + transitionDuration + 'ms') : _strEmpty;\n                    }\n                    else\n                        handleCSS[scrollbarVars._left_top] = handleOffset;\n\n\n                    //only apply css if offset has changed and overflow exists.\n                    if (!nativeOverlayScrollbarsAreActive()) {\n                        scrollbarVars._handle.css(handleCSS);\n\n                        //clear up transition\n                        if (_supportTransform && _supportTransition && transition) {\n                            scrollbarVars._handle.one(_strTransitionEndEvent, function () {\n                                if (!_destroyed)\n                                    scrollbarVars._handle.css(strTransition, _strEmpty);\n                            });\n                        }\n                    }\n\n                    scrollbarVarsInfo._handleOffset = handleOffset;\n                    scrollbarVarsInfo._snappedHandleOffset = snappedHandleOffset;\n                    scrollbarVarsInfo._trackLength = trackLength;\n                }\n\n                /**\n                 * Refreshes the interactivity of the given scrollbar element.\n                 * @param isTrack True if the track element is the target, false if the handle element is the target.\n                 * @param value True for interactivity false for no interactivity.\n                 */\n                function refreshScrollbarsInteractive(isTrack, value) {\n                    var action = value ? 'removeClass' : 'addClass';\n                    var element1 = isTrack ? _scrollbarHorizontalTrackElement : _scrollbarHorizontalHandleElement;\n                    var element2 = isTrack ? _scrollbarVerticalTrackElement : _scrollbarVerticalHandleElement;\n                    var className = isTrack ? _classNameScrollbarTrackOff : _classNameScrollbarHandleOff;\n\n                    element1[action](className);\n                    element2[action](className);\n                }\n\n                /**\n                 * Returns a object which is used for fast access for specific variables.\n                 * @param isHorizontal True if the horizontal scrollbar vars shall be accessed, false if the vertical scrollbar vars shall be accessed.\n                 * @returns {{wh: string, WH: string, lt: string, _wh: string, _lt: string, t: *, h: *, c: {}, s: *}}\n                 */\n                function getScrollbarVars(isHorizontal) {\n                    return {\n                        _width_height: isHorizontal ? _strWidth : _strHeight,\n                        _Width_Height: isHorizontal ? 'Width' : 'Height',\n                        _left_top: isHorizontal ? _strLeft : _strTop,\n                        _Left_Top: isHorizontal ? 'Left' : 'Top',\n                        _x_y: isHorizontal ? _strX : _strY,\n                        _X_Y: isHorizontal ? 'X' : 'Y',\n                        _w_h: isHorizontal ? 'w' : 'h',\n                        _l_t: isHorizontal ? 'l' : 't',\n                        _track: isHorizontal ? _scrollbarHorizontalTrackElement : _scrollbarVerticalTrackElement,\n                        _handle: isHorizontal ? _scrollbarHorizontalHandleElement : _scrollbarVerticalHandleElement,\n                        _scrollbar: isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement,\n                        _info: isHorizontal ? _scrollHorizontalInfo : _scrollVerticalInfo\n                    };\n                }\n\n\n                //==== Scrollbar Corner ====//\n\n                /**\n                 * Builds or destroys the scrollbar corner DOM element.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarCornerDOM(destroy) {\n                    _scrollbarCornerElement = _scrollbarCornerElement || selectOrGenerateDivByClass(_classNameScrollbarCorner, true);\n\n                    if (!destroy) {\n                        if (!_domExists) {\n                            _hostElement.append(_scrollbarCornerElement);\n                        }\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            removeClass(_scrollbarCornerElement.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                        }\n                        else {\n                            remove(_scrollbarCornerElement);\n                        }\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar corner interactivity events.\n                 */\n                function setupScrollbarCornerEvents() {\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var mouseDownPosition = {};\n                    var mouseDownSize = {};\n                    var mouseDownInvertedScale = {};\n                    var reconnectMutationObserver;\n\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var pageOffset = getCoordinates(event);\n                            var hostElementCSS = {};\n                            if (_resizeHorizontal || _resizeBoth)\n                                hostElementCSS[_strWidth] = (mouseDownSize.w + (pageOffset.x - mouseDownPosition.x) * mouseDownInvertedScale.x);\n                            if (_resizeVertical || _resizeBoth)\n                                hostElementCSS[_strHeight] = (mouseDownSize.h + (pageOffset.y - mouseDownPosition.y) * mouseDownInvertedScale.y);\n                            _hostElement.css(hostElementCSS);\n                            COMPATIBILITY.stpP(event);\n                        }\n                        else {\n                            documentMouseTouchUp(event);\n                        }\n                    }\n                    function documentMouseTouchUp(event) {\n                        var eventIsTrusted = event !== undefined;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                            [documentOnSelectStart, documentDragMove, documentMouseTouchUp],\n                            true);\n\n                        removeClass(_bodyElement, _classNameDragging);\n                        if (_scrollbarCornerElement.releaseCapture)\n                            _scrollbarCornerElement.releaseCapture();\n\n                        if (eventIsTrusted) {\n                            if (reconnectMutationObserver)\n                                connectMutationObservers();\n                            _base.update(_strAuto);\n                        }\n                        reconnectMutationObserver = false;\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function getCoordinates(event) {\n                        return _msieVersion && insideIFrame ? { x: event.screenX, y: event.screenY } : COMPATIBILITY.page(event);\n                    }\n\n                    addDestroyEventListener(_scrollbarCornerElement, _strMouseTouchDownEvent, function (event) {\n                        if (onMouseTouchDownContinue(event) && !_resizeNone) {\n                            if (_mutationObserversConnected) {\n                                reconnectMutationObserver = true;\n                                disconnectMutationObservers();\n                            }\n\n                            mouseDownPosition = getCoordinates(event);\n\n                            mouseDownSize.w = _hostElementNative[LEXICON.oW] - (!_isBorderBox ? _paddingX : 0);\n                            mouseDownSize.h = _hostElementNative[LEXICON.oH] - (!_isBorderBox ? _paddingY : 0);\n                            mouseDownInvertedScale = getHostElementInvertedScale();\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                                [documentOnSelectStart, documentDragMove, documentMouseTouchUp]);\n\n                            addClass(_bodyElement, _classNameDragging);\n                            if (_scrollbarCornerElement.setCapture)\n                                _scrollbarCornerElement.setCapture();\n\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    });\n                }\n\n\n                //==== Utils ====//\n\n                /**\n                 * Calls the callback with the given name. The Context of this callback is always _base (this).\n                 * @param name The name of the target which shall be called.\n                 * @param args The args with which the callback shall be called.\n                 * @param dependent Boolean which decides whether the callback shall be fired, undefined is like a \"true\" value.\n                 */\n                function dispatchCallback(name, args, dependent) {\n                    if (dependent === false)\n                        return;\n                    if (_initialized) {\n                        var callback = _currentPreparedOptions.callbacks[name];\n                        var extensionOnName = name;\n                        var ext;\n\n                        if (extensionOnName.substr(0, 2) === 'on')\n                            extensionOnName = extensionOnName.substr(2, 1).toLowerCase() + extensionOnName.substr(3);\n\n                        if (type(callback) == TYPES.f)\n                            callback.call(_base, args);\n\n                        each(_extensions, function () {\n                            ext = this;\n                            if (type(ext.on) == TYPES.f)\n                                ext.on(extensionOnName, args);\n                        });\n                    }\n                    else if (!_destroyed)\n                        _callbacksInitQeueue.push({ n: name, a: args });\n                }\n\n                /**\n                 * Sets the \"top, right, bottom, left\" properties, with a given prefix, of the given css object.\n                 * @param targetCSSObject The css object to which the values shall be applied.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param values A array of values which shall be applied to the \"top, right, bottom, left\" -properties. The array order is [top, right, bottom, left].\n                 * If this argument is undefined the value '' (empty string) will be applied to all properties.\n                 */\n                function setTopRightBottomLeft(targetCSSObject, prefix, values) {\n                    prefix = prefix || _strEmpty;\n                    values = values || [_strEmpty, _strEmpty, _strEmpty, _strEmpty];\n\n                    targetCSSObject[prefix + _strTop] = values[0];\n                    targetCSSObject[prefix + _strRight] = values[1];\n                    targetCSSObject[prefix + _strBottom] = values[2];\n                    targetCSSObject[prefix + _strLeft] = values[3];\n                }\n\n                /**\n                 * Gets the \"top, right, bottom, left\" CSS properties of the CSS property with the given prefix from the host element.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param suffix The suffix of the \"top, right, bottom, left\" css properties. (example: 'border-' is a valid prefix with '-width' is a valid suffix)\n                 * @param zeroX True if the x axis shall be 0.\n                 * @param zeroY True if the y axis shall be 0.\n                 * @returns {{}} The object which contains the numbers of the read CSS properties.\n                 */\n                function getTopRightBottomLeftHost(prefix, suffix, zeroX, zeroY) {\n                    suffix = suffix || _strEmpty;\n                    prefix = prefix || _strEmpty;\n                    return {\n                        t: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strTop + suffix)),\n                        r: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strRight + suffix)),\n                        b: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strBottom + suffix)),\n                        l: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strLeft + suffix))\n                    };\n                }\n\n                /**\n                 * Returns the computed CSS transition string from the given element.\n                 * @param element The element from which the transition string shall be returned.\n                 * @returns {string} The CSS transition string from the given element.\n                 */\n                function getCSSTransitionString(element) {\n                    var transitionStr = VENDORS._cssProperty('transition');\n                    var assembledValue = element.css(transitionStr);\n                    if (assembledValue)\n                        return assembledValue;\n                    var regExpString = '\\\\s*(' + '([^,(]+(\\\\(.+?\\\\))?)+' + ')[\\\\s,]*';\n                    var regExpMain = new RegExp(regExpString);\n                    var regExpValidate = new RegExp('^(' + regExpString + ')+$');\n                    var properties = 'property duration timing-function delay'.split(' ');\n                    var result = [];\n                    var strResult;\n                    var valueArray;\n                    var i = 0;\n                    var j;\n                    var splitCssStyleByComma = function (str) {\n                        strResult = [];\n                        if (!str.match(regExpValidate))\n                            return str;\n                        while (str.match(regExpMain)) {\n                            strResult.push(RegExp.$1);\n                            str = str.replace(regExpMain, _strEmpty);\n                        }\n\n                        return strResult;\n                    };\n                    for (; i < properties[LEXICON.l]; i++) {\n                        valueArray = splitCssStyleByComma(element.css(transitionStr + '-' + properties[i]));\n                        for (j = 0; j < valueArray[LEXICON.l]; j++)\n                            result[j] = (result[j] ? result[j] + _strSpace : _strEmpty) + valueArray[j];\n                    }\n                    return result.join(', ');\n                }\n\n                /**\n                 * Generates a Regular Expression which matches with a string which starts with 'os-host'.\n                 * @param {boolean} withCurrClassNameOption The Regular Expression also matches if the string is the current ClassName option (multiple values splitted by space possible).\n                 * @param {boolean} withOldClassNameOption The Regular Expression also matches if the string is the old ClassName option (multiple values splitted by space possible).\n                 */\n                function createHostClassNameRegExp(withCurrClassNameOption, withOldClassNameOption) {\n                    var i;\n                    var split;\n                    var appendix;\n                    var appendClasses = function (classes, condition) {\n                        appendix = '';\n                        if (condition && typeof classes == TYPES.s) {\n                            split = classes.split(_strSpace);\n                            for (i = 0; i < split[LEXICON.l]; i++)\n                                appendix += '|' + split[i] + '$';\n                            // split[i].replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') for escaping regex characters\n                        }\n                        return appendix;\n                    };\n\n                    return new RegExp(\n                        '(^' + _classNameHostElement + '([-_].+|)$)' +\n                        appendClasses(_classNameCache, withCurrClassNameOption) +\n                        appendClasses(_oldClassName, withOldClassNameOption), 'g');\n                }\n\n                /**\n                 * Calculates the host-elements inverted scale. (invertedScale = 1 / scale)\n                 * @returns {{x: number, y: number}} The scale of the host-element.\n                 */\n                function getHostElementInvertedScale() {\n                    var rect = _paddingElementNative[LEXICON.bCR]();\n                    return {\n                        x: _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,\n                        y: _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1\n                    };\n                }\n\n                /**\n                 * Checks whether the given object is a HTMLElement.\n                 * @param o The object which shall be checked.\n                 * @returns {boolean} True the given object is a HTMLElement, false otherwise.\n                 */\n                function isHTMLElement(o) {\n                    var strOwnerDocument = 'ownerDocument';\n                    var strHTMLElement = 'HTMLElement';\n                    var wnd = o && o[strOwnerDocument] ? (o[strOwnerDocument].parentWindow || window) : window;\n                    return (\n                        typeof wnd[strHTMLElement] == TYPES.o ? o instanceof wnd[strHTMLElement] : //DOM2\n                            o && typeof o == TYPES.o && o !== null && o.nodeType === 1 && typeof o.nodeName == TYPES.s\n                    );\n                }\n\n                /**\n                 * Compares 2 arrays and returns the differences between them as a array.\n                 * @param a1 The first array which shall be compared.\n                 * @param a2 The second array which shall be compared.\n                 * @returns {Array} The differences between the two arrays.\n                 */\n                function getArrayDifferences(a1, a2) {\n                    var a = [];\n                    var diff = [];\n                    var i;\n                    var k;\n                    for (i = 0; i < a1.length; i++)\n                        a[a1[i]] = true;\n                    for (i = 0; i < a2.length; i++) {\n                        if (a[a2[i]])\n                            delete a[a2[i]];\n                        else\n                            a[a2[i]] = true;\n                    }\n                    for (k in a)\n                        diff.push(k);\n                    return diff;\n                }\n\n                /**\n                 * Returns Zero or the number to which the value can be parsed.\n                 * @param value The value which shall be parsed.\n                 * @param toFloat Indicates whether the number shall be parsed to a float.\n                 */\n                function parseToZeroOrNumber(value, toFloat) {\n                    var num = toFloat ? parseFloat(value) : parseInt(value, 10);\n                    return isNaN(num) ? 0 : num;\n                }\n\n                /**\n                 * Gets several information of the textarea and returns them as a object or undefined if the browser doesn't support it.\n                 * @returns {{cursorRow: Number, cursorCol, rows: Number, cols: number, wRow: number, pos: number, max : number}} or undefined if not supported.\n                 */\n                function getTextareaInfo() {\n                    //read needed values\n                    var textareaCursorPosition = _targetElementNative.selectionStart;\n                    if (textareaCursorPosition === undefined)\n                        return;\n\n                    var textareaValue = _targetElement.val();\n                    var textareaLength = textareaValue[LEXICON.l];\n                    var textareaRowSplit = textareaValue.split('\\n');\n                    var textareaLastRow = textareaRowSplit[LEXICON.l];\n                    var textareaCurrentCursorRowSplit = textareaValue.substr(0, textareaCursorPosition).split('\\n');\n                    var widestRow = 0;\n                    var textareaLastCol = 0;\n                    var cursorRow = textareaCurrentCursorRowSplit[LEXICON.l];\n                    var cursorCol = textareaCurrentCursorRowSplit[textareaCurrentCursorRowSplit[LEXICON.l] - 1][LEXICON.l];\n                    var rowCols;\n                    var i;\n\n                    //get widest Row and the last column of the textarea\n                    for (i = 0; i < textareaRowSplit[LEXICON.l]; i++) {\n                        rowCols = textareaRowSplit[i][LEXICON.l];\n                        if (rowCols > textareaLastCol) {\n                            widestRow = i + 1;\n                            textareaLastCol = rowCols;\n                        }\n                    }\n\n                    return {\n                        _cursorRow: cursorRow, //cursorRow\n                        _cursorColumn: cursorCol, //cursorCol\n                        _rows: textareaLastRow, //rows\n                        _columns: textareaLastCol, //cols\n                        _widestRow: widestRow, //wRow\n                        _cursorPosition: textareaCursorPosition, //pos\n                        _cursorMax: textareaLength //max\n                    };\n                }\n\n                /**\n                 * Determines whether native overlay scrollbars are active.\n                 * @returns {boolean} True if native overlay scrollbars are active, false otherwise.\n                 */\n                function nativeOverlayScrollbarsAreActive() {\n                    return (_ignoreOverlayScrollbarHidingCache && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y));\n                }\n\n                /**\n                 * Gets the element which is used to measure the content size.\n                 * @returns {*} TextareaCover if target element is textarea else the ContentElement.\n                 */\n                function getContentMeasureElement() {\n                    return _isTextarea ? _textareaCoverElement[0] : _contentElementNative;\n                }\n\n                /**\n                 * Generates a string which represents a HTML div with the given classes or attributes.\n                 * @param classesOrAttrs The class of the div as string or a object which represents the attributes of the div. (The class attribute can also be written as \"className\".)\n                 * @param content The content of the div as string.\n                 * @returns {string} The concated string which represents a HTML div and its content.\n                 */\n                function generateDiv(classesOrAttrs, content) {\n                    return '<div ' + (classesOrAttrs ? type(classesOrAttrs) == TYPES.s ?\n                        'class=\"' + classesOrAttrs + '\"' :\n                        (function () {\n                            var key;\n                            var attrs = _strEmpty;\n                            if (FRAMEWORK.isPlainObject(classesOrAttrs)) {\n                                for (key in classesOrAttrs)\n                                    attrs += (key === 'c' ? 'class' : key) + '=\"' + classesOrAttrs[key] + '\" ';\n                            }\n                            return attrs;\n                        })() :\n                        _strEmpty) +\n                        '>' +\n                        (content || _strEmpty) +\n                        '</div>';\n                }\n\n                /**\n                 * Selects or generates a div with the given class attribute.\n                 * @param className The class names (divided by spaces) of the div which shall be selected or generated.\n                 * @param selectParentOrOnlyChildren The parent element from which of the element shall be selected. (if undefined or boolean its hostElement)\n                 * If its a boolean it decides whether only the children of the host element shall be selected.\n                 * @returns {*} The generated or selected element.\n                 */\n                function selectOrGenerateDivByClass(className, selectParentOrOnlyChildren) {\n                    var onlyChildren = type(selectParentOrOnlyChildren) == TYPES.b;\n                    var selectParent = onlyChildren ? _hostElement : (selectParentOrOnlyChildren || _hostElement);\n\n                    return (_domExists && !selectParent[LEXICON.l])\n                        ? null\n                        : _domExists\n                            ? selectParent[onlyChildren ? 'children' : 'find'](_strDot + className.replace(/\\s/g, _strDot)).eq(0)\n                            : FRAMEWORK(generateDiv(className))\n                }\n\n                /**\n                 * Gets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be got.\n                 * @param path The property of which the value shall be got.\n                 * @returns {*} Returns the value of the searched property or undefined of the property wasn't found.\n                 */\n                function getObjectPropVal(obj, path) {\n                    var splits = path.split(_strDot);\n                    var i = 0;\n                    var val;\n                    for (; i < splits.length; i++) {\n                        if (!obj[LEXICON.hOP](splits[i]))\n                            return;\n                        val = obj[splits[i]];\n                        if (i < splits.length && type(val) == TYPES.o)\n                            obj = val;\n                    }\n                    return val;\n                }\n\n                /**\n                 * Sets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be set.\n                 * @param path The property of which the value shall be set.\n                 * @param val The value of the property which shall be set.\n                 */\n                function setObjectPropVal(obj, path, val) {\n                    var splits = path.split(_strDot);\n                    var splitsLength = splits.length;\n                    var i = 0;\n                    var extendObj = {};\n                    var extendObjRoot = extendObj;\n                    for (; i < splitsLength; i++)\n                        extendObj = extendObj[splits[i]] = i + 1 < splitsLength ? {} : val;\n                    FRAMEWORK.extend(obj, extendObjRoot, true);\n                }\n\n                /**\t\n                 * Runs a action for each selector inside the updateOnLoad option.\t\n                 * @param {Function} action The action for each updateOnLoad selector, the arguments the function takes is the index and the value (the selector).\t\n                 */\n                function eachUpdateOnLoad(action) {\n                    var updateOnLoad = _currentPreparedOptions.updateOnLoad;\n                    updateOnLoad = type(updateOnLoad) == TYPES.s ? updateOnLoad.split(_strSpace) : updateOnLoad;\n\n                    if (COMPATIBILITY.isA(updateOnLoad) && !_destroyed) {\n                        each(updateOnLoad, action);\n                    }\n                }\n\n\n                //==== Utils Cache ====//\n\n                /**\n                 * Compares two values or objects and returns true if they aren't equal.\n                 * @param current The first value or object which shall be compared.\n                 * @param cache The second value or object which shall be compared.\n                 * @param force If true the returned value is always true.\n                 * @returns {boolean} True if both values or objects aren't equal or force is true, false otherwise.\n                 */\n                function checkCache(current, cache, force) {\n                    if (force)\n                        return force;\n                    if (type(current) == TYPES.o && type(cache) == TYPES.o) {\n                        for (var prop in current) {\n                            if (prop !== 'c') {\n                                if (current[LEXICON.hOP](prop) && cache[LEXICON.hOP](prop)) {\n                                    if (checkCache(current[prop], cache[prop]))\n                                        return true;\n                                }\n                                else {\n                                    return true;\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        return current !== cache;\n                    }\n                    return false;\n                }\n\n\n                //==== Shortcuts ====//\n\n                /**\n                 * jQuery extend method shortcut with a appended \"true\" as first argument.\n                 */\n                function extendDeep() {\n                    return FRAMEWORK.extend.apply(this, [true].concat([].slice.call(arguments)));\n                }\n\n                /**\n                 * jQuery addClass method shortcut.\n                 */\n                function addClass(el, classes) {\n                    return _frameworkProto.addClass.call(el, classes);\n                }\n\n                /**\n                 * jQuery removeClass method shortcut.\n                 */\n                function removeClass(el, classes) {\n                    return _frameworkProto.removeClass.call(el, classes);\n                }\n\n                /**\n                 * Adds or removes the given classes dependent on the boolean value. True for add, false for remove.\n                 */\n                function addRemoveClass(el, classes, doAdd) {\n                    return doAdd ? addClass(el, classes) : removeClass(el, classes);\n                }\n\n                /**\n                 * jQuery remove method shortcut.\n                 */\n                function remove(el) {\n                    return _frameworkProto.remove.call(el);\n                }\n\n                /**\n                 * Finds the first child element with the given selector of the given element.\n                 * @param el The root element from which the selector shall be valid.\n                 * @param selector The selector of the searched element.\n                 * @returns {*} The first element which is a child of the given element and matches the givens selector.\n                 */\n                function findFirst(el, selector) {\n                    return _frameworkProto.find.call(el, selector).eq(0);\n                }\n\n\n                //==== API ====//\n\n                /**\n                 * Puts the instance to sleep. It wont respond to any changes in the DOM and won't update. Scrollbar Interactivity is also disabled as well as the resize handle.\n                 * This behavior can be reset by calling the update method.\n                 */\n                _base.sleep = function () {\n                    _sleeping = true;\n                };\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param force True if every property shall be updated and the cache shall be ignored.\n                 * !INTERNAL USAGE! : force can be a string \"auto\", \"sync\" or \"zoom\" too\n                 * if \"auto\" then before a real update the content size and host element attributes gets checked, and if they changed only then the update method will be called.\n                 * if \"sync\" then the async update process (MutationObserver or UpdateLoop) gets synchronized and a corresponding update takes place if one was needed due to pending changes.\n                 * if \"zoom\" then a update takes place where it's assumed that content and host size changed\n                 * @returns {boolean|undefined} \n                 * If force is \"sync\" then a boolean is returned which indicates whether a update was needed due to pending changes.\n                 * If force is \"auto\" then a boolean is returned whether a update was needed due to attribute or size changes.\n                 * undefined otherwise.\n                 */\n                _base.update = function (force) {\n                    if (_destroyed)\n                        return;\n\n                    var attrsChanged;\n                    var contentSizeC;\n                    var isString = type(force) == TYPES.s;\n                    var doUpdateAuto;\n                    var mutHost;\n                    var mutContent;\n\n                    if (isString) {\n                        if (force === _strAuto) {\n                            attrsChanged = meaningfulAttrsChanged();\n                            contentSizeC = updateAutoContentSizeChanged();\n                            doUpdateAuto = attrsChanged || contentSizeC;\n                            if (doUpdateAuto) {\n                                update({\n                                    _contentSizeChanged: contentSizeC,\n                                    _changedOptions: _initialized ? undefined : _currentPreparedOptions\n                                });\n                            }\n                        }\n                        else if (force === _strSync) {\n                            if (_mutationObserversConnected) {\n                                mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());\n                                mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());\n                            }\n                            else {\n                                mutHost = _base.update(_strAuto);\n                            }\n                        }\n                        else if (force === 'zoom') {\n                            update({\n                                _hostSizeChanged: true,\n                                _contentSizeChanged: true\n                            });\n                        }\n                    }\n                    else {\n                        force = _sleeping || force;\n                        _sleeping = false;\n                        if (!_base.update(_strSync) || force)\n                            update({ _force: force });\n                    }\n\n                    updateElementsOnLoad();\n\n                    return doUpdateAuto || mutHost || mutContent;\n                };\n\n                /**\n                 Gets or sets the current options. The update method will be called automatically if new options were set.\n                 * @param newOptions If new options are given, then the new options will be set, if new options aren't given (undefined or a not a plain object) then the current options will be returned.\n                 * @param value If new options is a property path string, then this value will be used to set the option to which the property path string leads.\n                 * @returns {*}\n                 */\n                _base.options = function (newOptions, value) {\n                    var option = {};\n                    var changedOps;\n\n                    //return current options if newOptions are undefined or empty\n                    if (FRAMEWORK.isEmptyObject(newOptions) || !FRAMEWORK.isPlainObject(newOptions)) {\n                        if (type(newOptions) == TYPES.s) {\n                            if (arguments.length > 1) {\n                                setObjectPropVal(option, newOptions, value);\n                                changedOps = setOptions(option);\n                            }\n                            else\n                                return getObjectPropVal(_currentOptions, newOptions);\n                        }\n                        else\n                            return _currentOptions;\n                    }\n                    else {\n                        changedOps = setOptions(newOptions);\n                    }\n\n                    if (!FRAMEWORK.isEmptyObject(changedOps)) {\n                        update({ _changedOptions: changedOps });\n                    }\n                };\n\n                /**\n                 * Restore the DOM, disconnects all observers, remove all resize observers and put the instance to sleep.\n                 */\n                _base.destroy = function () {\n                    if (_destroyed)\n                        return;\n\n                    //remove this instance from auto update loop\n                    autoUpdateLoop.remove(_base);\n\n                    //disconnect all mutation observers\n                    disconnectMutationObservers();\n\n                    //remove all resize observers\n                    setupResizeObserver(_sizeObserverElement);\n                    setupResizeObserver(_sizeAutoObserverElement);\n\n                    //remove all extensions\n                    for (var extName in _extensions)\n                        _base.removeExt(extName);\n\n                    //remove all 'destroy' events\n                    while (_destroyEvents[LEXICON.l] > 0)\n                        _destroyEvents.pop()();\n\n                    //remove all events from host element\n                    setupHostMouseTouchEvents(true);\n\n                    //remove all helper / detection elements\n                    if (_contentGlueElement)\n                        remove(_contentGlueElement);\n                    if (_contentArrangeElement)\n                        remove(_contentArrangeElement);\n                    if (_sizeAutoObserverAdded)\n                        remove(_sizeAutoObserverElement);\n\n                    //remove all generated DOM\n                    setupScrollbarsDOM(true);\n                    setupScrollbarCornerDOM(true);\n                    setupStructureDOM(true);\n\n                    //remove all generated image load events\n                    for (var i = 0; i < _updateOnLoadElms[LEXICON.l]; i++)\n                        FRAMEWORK(_updateOnLoadElms[i]).off(_updateOnLoadEventName, updateOnLoadCallback);\n                    _updateOnLoadElms = undefined;\n\n                    _destroyed = true;\n                    _sleeping = true;\n\n                    //remove this instance from the instances list\n                    INSTANCES(pluginTargetElement, 0);\n                    dispatchCallback('onDestroyed');\n\n                    //remove all properties and methods\n                    //for (var property in _base)\n                    //    delete _base[property];\n                    //_base = undefined;\n                };\n\n                /**\n                 * Scrolls to a given position or element.\n                 * @param coordinates\n                 * 1. Can be \"coordinates\" which looks like:\n                 *    { x : ?, y : ? } OR          Object with x and y properties\n                 *    { left : ?, top : ? } OR     Object with left and top properties\n                 *    { l : ?, t : ? } OR          Object with l and t properties\n                 *    [ ?, ? ] OR                  Array where the first two element are the coordinates (first is x, second is y)\n                 *    ?                            A single value which stays for both axis\n                 *    A value can be a number, a string or a calculation.\n                 *\n                 *    Operators:\n                 *    [NONE]  The current scroll will be overwritten by the value.\n                 *    '+='    The value will be added to the current scroll offset\n                 *    '-='    The value will be subtracted from the current scroll offset\n                 *    '*='    The current scroll wil be multiplicated by the value.\n                 *    '/='    The current scroll wil be divided by the value.\n                 *\n                 *    Units:\n                 *    [NONE]  The value is the final scroll amount.                   final = (value * 1)\n                 *    'px'    Same as none\n                 *    '%'     The value is dependent on the current scroll value.     final = ((currentScrollValue / 100) * value)\n                 *    'vw'    The value is multiplicated by the viewport width.       final = (value * viewportWidth)\n                 *    'vh'    The value is multiplicated by the viewport height.      final = (value * viewportHeight)\n                 *\n                 *    example final values:\n                 *    200, '200px', '50%', '1vw', '1vh', '+=200', '/=1vw', '*=2px', '-=5vh', '+=33%', '+= 50% - 2px', '-= 1vw - 50%'\n                 *\n                 * 2. Can be a HTML or jQuery element:\n                 *    The final scroll offset is the offset (without margin) of the given HTML / jQuery element.\n                 *\n                 * 3. Can be a object with a HTML or jQuery element with additional settings:\n                 *    {\n                 *      el : [HTMLElement, jQuery element],             MUST be specified, else this object isn't valid.\n                 *      scroll : [string, array, object],               Default value is 'always'.\n                 *      block : [string, array, object],                Default value is 'begin'.\n                 *      margin : [number, boolean, array, object]       Default value is false.\n                 *    }\n                 *\n                 *    Possible scroll settings are:\n                 *    'always'      Scrolls always.\n                 *    'ifneeded'    Scrolls only if the element isnt fully in view.\n                 *    'never'       Scrolls never.\n                 *\n                 *    Possible block settings are:\n                 *    'begin'   Both axis shall be docked to the \"begin\" edge. - The element will be docked to the top and left edge of the viewport.\n                 *    'end'     Both axis shall be docked to the \"end\" edge. - The element will be docked to the bottom and right edge of the viewport. (If direction is RTL to the bottom and left edge.)\n                 *    'center'  Both axis shall be docked to \"center\". - The element will be centered in the viewport.\n                 *    'nearest' The element will be docked to the nearest edge(s).\n                 *\n                 *    Possible margin settings are: -- The actual margin of the element wont be affect, this option affects only the final scroll offset.\n                 *    [BOOLEAN]                                         If true the css margin of the element will be used, if false no margin will be used.\n                 *    [NUMBER]                                          The margin will be used for all edges.\n                 *\n                 * @param duration The duration of the scroll animation, OR a jQuery animation configuration object.\n                 * @param easing The animation easing.\n                 * @param complete The animation complete callback.\n                 * @returns {{\n                 *   position: {x: number, y: number},\n                 *   ratio: {x: number, y: number},\n                 *   max: {x: number, y: number},\n                 *   handleOffset: {x: number, y: number},\n                 *   handleLength: {x: number, y: number},\n                 *   handleLengthRatio: {x: number, y: number}, t\n                 *   rackLength: {x: number, y: number},\n                 *   isRTL: boolean,\n                 *   isRTLNormalized: boolean\n                 *  }}\n                 */\n                _base.scroll = function (coordinates, duration, easing, complete) {\n                    if (arguments.length === 0 || coordinates === undefined) {\n                        var infoX = _scrollHorizontalInfo;\n                        var infoY = _scrollVerticalInfo;\n                        var normalizeInvert = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.i;\n                        var normalizeNegate = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.n;\n                        var scrollX = infoX._currentScroll;\n                        var scrollXRatio = infoX._currentScrollRatio;\n                        var maxScrollX = infoX._maxScroll;\n                        scrollXRatio = normalizeInvert ? 1 - scrollXRatio : scrollXRatio;\n                        scrollX = normalizeInvert ? maxScrollX - scrollX : scrollX;\n                        scrollX *= normalizeNegate ? -1 : 1;\n                        maxScrollX *= normalizeNegate ? -1 : 1;\n\n                        return {\n                            position: {\n                                x: scrollX,\n                                y: infoY._currentScroll\n                            },\n                            ratio: {\n                                x: scrollXRatio,\n                                y: infoY._currentScrollRatio\n                            },\n                            max: {\n                                x: maxScrollX,\n                                y: infoY._maxScroll\n                            },\n                            handleOffset: {\n                                x: infoX._handleOffset,\n                                y: infoY._handleOffset\n                            },\n                            handleLength: {\n                                x: infoX._handleLength,\n                                y: infoY._handleLength\n                            },\n                            handleLengthRatio: {\n                                x: infoX._handleLengthRatio,\n                                y: infoY._handleLengthRatio\n                            },\n                            trackLength: {\n                                x: infoX._trackLength,\n                                y: infoY._trackLength\n                            },\n                            snappedHandleOffset: {\n                                x: infoX._snappedHandleOffset,\n                                y: infoY._snappedHandleOffset\n                            },\n                            isRTL: _isRTL,\n                            isRTLNormalized: _normalizeRTLCache\n                        };\n                    }\n\n                    _base.update(_strSync);\n\n                    var normalizeRTL = _normalizeRTLCache;\n                    var coordinatesXAxisProps = [_strX, _strLeft, 'l'];\n                    var coordinatesYAxisProps = [_strY, _strTop, 't'];\n                    var coordinatesOperators = ['+=', '-=', '*=', '/='];\n                    var durationIsObject = type(duration) == TYPES.o;\n                    var completeCallback = durationIsObject ? duration.complete : complete;\n                    var i;\n                    var finalScroll = {};\n                    var specialEasing = {};\n                    var doScrollLeft;\n                    var doScrollTop;\n                    var animationOptions;\n                    var strEnd = 'end';\n                    var strBegin = 'begin';\n                    var strCenter = 'center';\n                    var strNearest = 'nearest';\n                    var strAlways = 'always';\n                    var strNever = 'never';\n                    var strIfNeeded = 'ifneeded';\n                    var strLength = LEXICON.l;\n                    var settingsAxis;\n                    var settingsScroll;\n                    var settingsBlock;\n                    var settingsMargin;\n                    var finalElement;\n                    var elementObjSettingsAxisValues = [_strX, _strY, 'xy', 'yx'];\n                    var elementObjSettingsBlockValues = [strBegin, strEnd, strCenter, strNearest];\n                    var elementObjSettingsScrollValues = [strAlways, strNever, strIfNeeded];\n                    var coordinatesIsElementObj = coordinates[LEXICON.hOP]('el');\n                    var possibleElement = coordinatesIsElementObj ? coordinates.el : coordinates;\n                    var possibleElementIsJQuery = possibleElement instanceof FRAMEWORK || JQUERY ? possibleElement instanceof JQUERY : false;\n                    var possibleElementIsHTMLElement = possibleElementIsJQuery ? false : isHTMLElement(possibleElement);\n                    var updateScrollbarInfos = function () {\n                        if (doScrollLeft)\n                            refreshScrollbarHandleOffset(true);\n                        if (doScrollTop)\n                            refreshScrollbarHandleOffset(false);\n                    };\n                    var proxyCompleteCallback = type(completeCallback) != TYPES.f ? undefined : function () {\n                        updateScrollbarInfos();\n                        completeCallback();\n                    };\n                    function checkSettingsStringValue(currValue, allowedValues) {\n                        for (i = 0; i < allowedValues[strLength]; i++) {\n                            if (currValue === allowedValues[i])\n                                return true;\n                        }\n                        return false;\n                    }\n                    function getRawScroll(isX, coordinates) {\n                        var coordinateProps = isX ? coordinatesXAxisProps : coordinatesYAxisProps;\n                        coordinates = type(coordinates) == TYPES.s || type(coordinates) == TYPES.n ? [coordinates, coordinates] : coordinates;\n\n                        if (COMPATIBILITY.isA(coordinates))\n                            return isX ? coordinates[0] : coordinates[1];\n                        else if (type(coordinates) == TYPES.o) {\n                            //decides RTL normalization \"hack\" with .n\n                            //normalizeRTL = type(coordinates.n) == TYPES.b ? coordinates.n : normalizeRTL; \n                            for (i = 0; i < coordinateProps[strLength]; i++)\n                                if (coordinateProps[i] in coordinates)\n                                    return coordinates[coordinateProps[i]];\n                        }\n                    }\n                    function getFinalScroll(isX, rawScroll) {\n                        var isString = type(rawScroll) == TYPES.s;\n                        var operator;\n                        var amount;\n                        var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;\n                        var currScroll = scrollInfo._currentScroll;\n                        var maxScroll = scrollInfo._maxScroll;\n                        var mult = ' * ';\n                        var finalValue;\n                        var isRTLisX = _isRTL && isX;\n                        var normalizeShortcuts = isRTLisX && _rtlScrollBehavior.n && !normalizeRTL;\n                        var strReplace = 'replace';\n                        var evalFunc = eval;\n                        var possibleOperator;\n                        if (isString) {\n                            //check operator\n                            if (rawScroll[strLength] > 2) {\n                                possibleOperator = rawScroll.substr(0, 2);\n                                if (inArray(possibleOperator, coordinatesOperators) > -1)\n                                    operator = possibleOperator;\n                            }\n\n                            //calculate units and shortcuts\n                            rawScroll = operator ? rawScroll.substr(2) : rawScroll;\n                            rawScroll = rawScroll\n                            [strReplace](/min/g, 0) //'min' = 0%\n                            [strReplace](/</g, 0)   //'<'   = 0%\n                            [strReplace](/max/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)    //'max' = 100%\n                            [strReplace](/>/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)      //'>'   = 100%\n                            [strReplace](/px/g, _strEmpty)\n                            [strReplace](/%/g, mult + (maxScroll * (isRTLisX && _rtlScrollBehavior.n ? -1 : 1) / 100.0))\n                            [strReplace](/vw/g, mult + _viewportSize.w)\n                            [strReplace](/vh/g, mult + _viewportSize.h);\n                            amount = parseToZeroOrNumber(isNaN(rawScroll) ? parseToZeroOrNumber(evalFunc(rawScroll), true).toFixed() : rawScroll);\n                        }\n                        else {\n                            amount = rawScroll;\n                        }\n\n                        if (amount !== undefined && !isNaN(amount) && type(amount) == TYPES.n) {\n                            var normalizeIsRTLisX = normalizeRTL && isRTLisX;\n                            var operatorCurrScroll = currScroll * (normalizeIsRTLisX && _rtlScrollBehavior.n ? -1 : 1);\n                            var invert = normalizeIsRTLisX && _rtlScrollBehavior.i;\n                            var negate = normalizeIsRTLisX && _rtlScrollBehavior.n;\n                            operatorCurrScroll = invert ? (maxScroll - operatorCurrScroll) : operatorCurrScroll;\n                            switch (operator) {\n                                case '+=':\n                                    finalValue = operatorCurrScroll + amount;\n                                    break;\n                                case '-=':\n                                    finalValue = operatorCurrScroll - amount;\n                                    break;\n                                case '*=':\n                                    finalValue = operatorCurrScroll * amount;\n                                    break;\n                                case '/=':\n                                    finalValue = operatorCurrScroll / amount;\n                                    break;\n                                default:\n                                    finalValue = amount;\n                                    break;\n                            }\n                            finalValue = invert ? maxScroll - finalValue : finalValue;\n                            finalValue *= negate ? -1 : 1;\n                            finalValue = isRTLisX && _rtlScrollBehavior.n ? MATH.min(0, MATH.max(maxScroll, finalValue)) : MATH.max(0, MATH.min(maxScroll, finalValue));\n                        }\n                        return finalValue === currScroll ? undefined : finalValue;\n                    }\n                    function getPerAxisValue(value, valueInternalType, defaultValue, allowedValues) {\n                        var resultDefault = [defaultValue, defaultValue];\n                        var valueType = type(value);\n                        var valueArrLength;\n                        var valueArrItem;\n\n                        //value can be [ string, or array of two strings ]\n                        if (valueType == valueInternalType) {\n                            value = [value, value];\n                        }\n                        else if (valueType == TYPES.a) {\n                            valueArrLength = value[strLength];\n                            if (valueArrLength > 2 || valueArrLength < 1)\n                                value = resultDefault;\n                            else {\n                                if (valueArrLength === 1)\n                                    value[1] = defaultValue;\n                                for (i = 0; i < valueArrLength; i++) {\n                                    valueArrItem = value[i];\n                                    if (type(valueArrItem) != valueInternalType || !checkSettingsStringValue(valueArrItem, allowedValues)) {\n                                        value = resultDefault;\n                                        break;\n                                    }\n                                }\n                            }\n                        }\n                        else if (valueType == TYPES.o)\n                            value = [value[_strX] || defaultValue, value[_strY] || defaultValue];\n                        else\n                            value = resultDefault;\n                        return { x: value[0], y: value[1] };\n                    }\n                    function generateMargin(marginTopRightBottomLeftArray) {\n                        var result = [];\n                        var currValue;\n                        var currValueType;\n                        var valueDirections = [_strTop, _strRight, _strBottom, _strLeft];\n                        for (i = 0; i < marginTopRightBottomLeftArray[strLength]; i++) {\n                            if (i === valueDirections[strLength])\n                                break;\n                            currValue = marginTopRightBottomLeftArray[i];\n                            currValueType = type(currValue);\n                            if (currValueType == TYPES.b)\n                                result.push(currValue ? parseToZeroOrNumber(finalElement.css(_strMarginMinus + valueDirections[i])) : 0);\n                            else\n                                result.push(currValueType == TYPES.n ? currValue : 0);\n                        }\n                        return result;\n                    }\n\n                    if (possibleElementIsJQuery || possibleElementIsHTMLElement) {\n                        //get settings\n                        var margin = coordinatesIsElementObj ? coordinates.margin : 0;\n                        var axis = coordinatesIsElementObj ? coordinates.axis : 0;\n                        var scroll = coordinatesIsElementObj ? coordinates.scroll : 0;\n                        var block = coordinatesIsElementObj ? coordinates.block : 0;\n                        var marginDefault = [0, 0, 0, 0];\n                        var marginType = type(margin);\n                        var marginLength;\n                        finalElement = possibleElementIsJQuery ? possibleElement : FRAMEWORK(possibleElement);\n\n                        if (finalElement[strLength] > 0) {\n                            //margin can be [ boolean, number, array of 2, array of 4, object ]\n                            if (marginType == TYPES.n || marginType == TYPES.b)\n                                margin = generateMargin([margin, margin, margin, margin]);\n                            else if (marginType == TYPES.a) {\n                                marginLength = margin[strLength];\n                                if (marginLength === 2)\n                                    margin = generateMargin([margin[0], margin[1], margin[0], margin[1]]);\n                                else if (marginLength >= 4)\n                                    margin = generateMargin(margin);\n                                else\n                                    margin = marginDefault;\n                            }\n                            else if (marginType == TYPES.o)\n                                margin = generateMargin([margin[_strTop], margin[_strRight], margin[_strBottom], margin[_strLeft]]);\n                            else\n                                margin = marginDefault;\n\n                            //block = type(block) === TYPES.b ? block ? [ strNearest, strBegin ] : [ strNearest, strEnd ] : block;\n                            settingsAxis = checkSettingsStringValue(axis, elementObjSettingsAxisValues) ? axis : 'xy';\n                            settingsScroll = getPerAxisValue(scroll, TYPES.s, strAlways, elementObjSettingsScrollValues);\n                            settingsBlock = getPerAxisValue(block, TYPES.s, strBegin, elementObjSettingsBlockValues);\n                            settingsMargin = margin;\n\n                            var viewportScroll = {\n                                l: _scrollHorizontalInfo._currentScroll,\n                                t: _scrollVerticalInfo._currentScroll\n                            };\n                            // use padding element instead of viewport element because padding element has never padding, margin or position applied.\n                            var viewportOffset = _paddingElement.offset();\n\n                            //get coordinates\n                            var elementOffset = finalElement.offset();\n                            var doNotScroll = {\n                                x: settingsScroll.x == strNever || settingsAxis == _strY,\n                                y: settingsScroll.y == strNever || settingsAxis == _strX\n                            };\n                            elementOffset[_strTop] -= settingsMargin[0];\n                            elementOffset[_strLeft] -= settingsMargin[3];\n                            var elementScrollCoordinates = {\n                                x: MATH.round(elementOffset[_strLeft] - viewportOffset[_strLeft] + viewportScroll.l),\n                                y: MATH.round(elementOffset[_strTop] - viewportOffset[_strTop] + viewportScroll.t)\n                            };\n                            if (_isRTL) {\n                                if (!_rtlScrollBehavior.n && !_rtlScrollBehavior.i)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + viewportScroll.l);\n                                if (_rtlScrollBehavior.n && normalizeRTL)\n                                    elementScrollCoordinates.x *= -1;\n                                if (_rtlScrollBehavior.i && normalizeRTL)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + (_scrollHorizontalInfo._maxScroll - viewportScroll.l));\n                            }\n\n                            //measuring is required\n                            if (settingsBlock.x != strBegin || settingsBlock.y != strBegin || settingsScroll.x == strIfNeeded || settingsScroll.y == strIfNeeded || _isRTL) {\n                                var measuringElm = finalElement[0];\n                                var rawElementSize = _supportTransform ? measuringElm[LEXICON.bCR]() : {\n                                    width: measuringElm[LEXICON.oW],\n                                    height: measuringElm[LEXICON.oH]\n                                };\n                                var elementSize = {\n                                    w: rawElementSize[_strWidth] + settingsMargin[3] + settingsMargin[1],\n                                    h: rawElementSize[_strHeight] + settingsMargin[0] + settingsMargin[2]\n                                };\n                                var finalizeBlock = function (isX) {\n                                    var vars = getScrollbarVars(isX);\n                                    var wh = vars._w_h;\n                                    var lt = vars._left_top;\n                                    var xy = vars._x_y;\n                                    var blockIsEnd = settingsBlock[xy] == (isX ? _isRTL ? strBegin : strEnd : strEnd);\n                                    var blockIsCenter = settingsBlock[xy] == strCenter;\n                                    var blockIsNearest = settingsBlock[xy] == strNearest;\n                                    var scrollNever = settingsScroll[xy] == strNever;\n                                    var scrollIfNeeded = settingsScroll[xy] == strIfNeeded;\n                                    var vpSize = _viewportSize[wh];\n                                    var vpOffset = viewportOffset[lt];\n                                    var elSize = elementSize[wh];\n                                    var elOffset = elementOffset[lt];\n                                    var divide = blockIsCenter ? 2 : 1;\n                                    var elementCenterOffset = elOffset + (elSize / 2);\n                                    var viewportCenterOffset = vpOffset + (vpSize / 2);\n                                    var isInView =\n                                        elSize <= vpSize\n                                        && elOffset >= vpOffset\n                                        && elOffset + elSize <= vpOffset + vpSize;\n\n                                    if (scrollNever)\n                                        doNotScroll[xy] = true;\n                                    else if (!doNotScroll[xy]) {\n                                        if (blockIsNearest || scrollIfNeeded) {\n                                            doNotScroll[xy] = scrollIfNeeded ? isInView : false;\n                                            blockIsEnd = elSize < vpSize ? elementCenterOffset > viewportCenterOffset : elementCenterOffset < viewportCenterOffset;\n                                        }\n                                        elementScrollCoordinates[xy] -= blockIsEnd || blockIsCenter ? ((vpSize / divide) - (elSize / divide)) * (isX && _isRTL && normalizeRTL ? -1 : 1) : 0;\n                                    }\n                                };\n                                finalizeBlock(true);\n                                finalizeBlock(false);\n                            }\n\n                            if (doNotScroll.y)\n                                delete elementScrollCoordinates.y;\n                            if (doNotScroll.x)\n                                delete elementScrollCoordinates.x;\n\n                            coordinates = elementScrollCoordinates;\n                        }\n                    }\n\n                    finalScroll[_strScrollLeft] = getFinalScroll(true, getRawScroll(true, coordinates));\n                    finalScroll[_strScrollTop] = getFinalScroll(false, getRawScroll(false, coordinates));\n                    doScrollLeft = finalScroll[_strScrollLeft] !== undefined;\n                    doScrollTop = finalScroll[_strScrollTop] !== undefined;\n\n                    if ((doScrollLeft || doScrollTop) && (duration > 0 || durationIsObject)) {\n                        if (durationIsObject) {\n                            duration.complete = proxyCompleteCallback;\n                            _viewportElement.animate(finalScroll, duration);\n                        }\n                        else {\n                            animationOptions = {\n                                duration: duration,\n                                complete: proxyCompleteCallback\n                            };\n                            if (COMPATIBILITY.isA(easing) || FRAMEWORK.isPlainObject(easing)) {\n                                specialEasing[_strScrollLeft] = easing[0] || easing.x;\n                                specialEasing[_strScrollTop] = easing[1] || easing.y;\n                                animationOptions.specialEasing = specialEasing;\n                            }\n                            else {\n                                animationOptions.easing = easing;\n                            }\n                            _viewportElement.animate(finalScroll, animationOptions);\n                        }\n                    }\n                    else {\n                        if (doScrollLeft)\n                            _viewportElement[_strScrollLeft](finalScroll[_strScrollLeft]);\n                        if (doScrollTop)\n                            _viewportElement[_strScrollTop](finalScroll[_strScrollTop]);\n                        updateScrollbarInfos();\n                    }\n                };\n\n                /**\n                 * Stops all scroll animations.\n                 * @returns {*} The current OverlayScrollbars instance (for chaining).\n                 */\n                _base.scrollStop = function (param1, param2, param3) {\n                    _viewportElement.stop(param1, param2, param3);\n                    return _base;\n                };\n\n                /**\n                 * Returns all relevant elements.\n                 * @param elementName The name of the element which shall be returned.\n                 * @returns {{target: *, host: *, padding: *, viewport: *, content: *, scrollbarHorizontal: {scrollbar: *, track: *, handle: *}, scrollbarVertical: {scrollbar: *, track: *, handle: *}, scrollbarCorner: *} | *}\n                 */\n                _base.getElements = function (elementName) {\n                    var obj = {\n                        target: _targetElementNative,\n                        host: _hostElementNative,\n                        padding: _paddingElementNative,\n                        viewport: _viewportElementNative,\n                        content: _contentElementNative,\n                        scrollbarHorizontal: {\n                            scrollbar: _scrollbarHorizontalElement[0],\n                            track: _scrollbarHorizontalTrackElement[0],\n                            handle: _scrollbarHorizontalHandleElement[0]\n                        },\n                        scrollbarVertical: {\n                            scrollbar: _scrollbarVerticalElement[0],\n                            track: _scrollbarVerticalTrackElement[0],\n                            handle: _scrollbarVerticalHandleElement[0]\n                        },\n                        scrollbarCorner: _scrollbarCornerElement[0]\n                    };\n                    return type(elementName) == TYPES.s ? getObjectPropVal(obj, elementName) : obj;\n                };\n\n                /**\n                 * Returns a object which describes the current state of this instance.\n                 * @param stateProperty A specific property from the state object which shall be returned.\n                 * @returns {{widthAuto, heightAuto, overflowAmount, hideOverflow, hasOverflow, contentScrollSize, viewportSize, hostSize, autoUpdate} | *}\n                 */\n                _base.getState = function (stateProperty) {\n                    function prepare(obj) {\n                        if (!FRAMEWORK.isPlainObject(obj))\n                            return obj;\n                        var extended = extendDeep({}, obj);\n                        var changePropertyName = function (from, to) {\n                            if (extended[LEXICON.hOP](from)) {\n                                extended[to] = extended[from];\n                                delete extended[from];\n                            }\n                        };\n                        changePropertyName('w', _strWidth); //change w to width\n                        changePropertyName('h', _strHeight); //change h to height\n                        delete extended.c; //delete c (the 'changed' prop)\n                        return extended;\n                    };\n                    var obj = {\n                        destroyed: !!prepare(_destroyed),\n                        sleeping: !!prepare(_sleeping),\n                        autoUpdate: prepare(!_mutationObserversConnected),\n                        widthAuto: prepare(_widthAutoCache),\n                        heightAuto: prepare(_heightAutoCache),\n                        padding: prepare(_cssPaddingCache),\n                        overflowAmount: prepare(_overflowAmountCache),\n                        hideOverflow: prepare(_hideOverflowCache),\n                        hasOverflow: prepare(_hasOverflowCache),\n                        contentScrollSize: prepare(_contentScrollSizeCache),\n                        viewportSize: prepare(_viewportSize),\n                        hostSize: prepare(_hostSizeCache),\n                        documentMixed: prepare(_documentMixed)\n                    };\n                    return type(stateProperty) == TYPES.s ? getObjectPropVal(obj, stateProperty) : obj;\n                };\n\n                /**\n                 * Gets all or specific extension instance.\n                 * @param extName The name of the extension from which the instance shall be got.\n                 * @returns {{}} The instance of the extension with the given name or undefined if the instance couldn't be found.\n                 */\n                _base.ext = function (extName) {\n                    var result;\n                    var privateMethods = _extensionsPrivateMethods.split(' ');\n                    var i = 0;\n                    if (type(extName) == TYPES.s) {\n                        if (_extensions[LEXICON.hOP](extName)) {\n                            result = extendDeep({}, _extensions[extName]);\n                            for (; i < privateMethods.length; i++)\n                                delete result[privateMethods[i]];\n                        }\n                    }\n                    else {\n                        result = {};\n                        for (i in _extensions)\n                            result[i] = extendDeep({}, _base.ext(i));\n                    }\n                    return result;\n                };\n\n                /**\n                 * Adds a extension to this instance.\n                 * @param extName The name of the extension which shall be added.\n                 * @param extensionOptions The extension options which shall be used.\n                 * @returns {{}} The instance of the added extension or undefined if the extension couldn't be added properly.\n                 */\n                _base.addExt = function (extName, extensionOptions) {\n                    var registeredExtensionObj = _plugin.extension(extName);\n                    var instance;\n                    var instanceAdded;\n                    var instanceContract;\n                    var contractResult;\n                    var contractFulfilled = true;\n                    if (registeredExtensionObj) {\n                        if (!_extensions[LEXICON.hOP](extName)) {\n                            instance = registeredExtensionObj.extensionFactory.call(_base,\n                                extendDeep({}, registeredExtensionObj.defaultOptions),\n                                FRAMEWORK,\n                                COMPATIBILITY);\n\n                            if (instance) {\n                                instanceContract = instance.contract;\n                                if (type(instanceContract) == TYPES.f) {\n                                    contractResult = instanceContract(window);\n                                    contractFulfilled = type(contractResult) == TYPES.b ? contractResult : contractFulfilled;\n                                }\n                                if (contractFulfilled) {\n                                    _extensions[extName] = instance;\n                                    instanceAdded = instance.added;\n                                    if (type(instanceAdded) == TYPES.f)\n                                        instanceAdded(extensionOptions);\n\n                                    return _base.ext(extName);\n                                }\n                            }\n                        }\n                        else\n                            return _base.ext(extName);\n                    }\n                    else\n                        console.warn(\"A extension with the name \\\"\" + extName + \"\\\" isn't registered.\");\n                };\n\n                /**\n                 * Removes a extension from this instance.\n                 * @param extName The name of the extension which shall be removed.\n                 * @returns {boolean} True if the extension was removed, false otherwise e.g. if the extension wasn't added before.\n                 */\n                _base.removeExt = function (extName) {\n                    var instance = _extensions[extName];\n                    var instanceRemoved;\n                    if (instance) {\n                        delete _extensions[extName];\n\n                        instanceRemoved = instance.removed;\n                        if (type(instanceRemoved) == TYPES.f)\n                            instanceRemoved();\n\n                        return true;\n                    }\n                    return false;\n                };\n\n                /**\n                 * Constructs the plugin.\n                 * @param targetElement The element to which the plugin shall be applied.\n                 * @param options The initial options of the plugin.\n                 * @param extensions The extension(s) which shall be added right after the initialization.\n                 * @returns {boolean} True if the plugin was successfully initialized, false otherwise.\n                 */\n                function construct(targetElement, options, extensions) {\n                    _defaultOptions = globals.defaultOptions;\n                    _nativeScrollbarStyling = globals.nativeScrollbarStyling;\n                    _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    _nativeScrollbarIsOverlaid = extendDeep({}, globals.nativeScrollbarIsOverlaid);\n                    _overlayScrollbarDummySize = extendDeep({}, globals.overlayScrollbarDummySize);\n                    _rtlScrollBehavior = extendDeep({}, globals.rtlScrollBehavior);\n\n                    //parse & set options but don't update\n                    setOptions(extendDeep({}, _defaultOptions, options));\n\n                    _cssCalc = globals.cssCalc;\n                    _msieVersion = globals.msie;\n                    _autoUpdateRecommended = globals.autoUpdateRecommended;\n                    _supportTransition = globals.supportTransition;\n                    _supportTransform = globals.supportTransform;\n                    _supportPassiveEvents = globals.supportPassiveEvents;\n                    _supportResizeObserver = globals.supportResizeObserver;\n                    _supportMutationObserver = globals.supportMutationObserver;\n                    _restrictedMeasuring = globals.restrictedMeasuring;\n                    _documentElement = FRAMEWORK(targetElement.ownerDocument);\n                    _documentElementNative = _documentElement[0];\n                    _windowElement = FRAMEWORK(_documentElementNative.defaultView || _documentElementNative.parentWindow);\n                    _windowElementNative = _windowElement[0];\n                    _htmlElement = findFirst(_documentElement, 'html');\n                    _bodyElement = findFirst(_htmlElement, 'body');\n                    _targetElement = FRAMEWORK(targetElement);\n                    _targetElementNative = _targetElement[0];\n                    _isTextarea = _targetElement.is('textarea');\n                    _isBody = _targetElement.is('body');\n                    _documentMixed = _documentElementNative !== document;\n\n                    /* On a div Element The if checks only whether:\n                     * - the targetElement has the class \"os-host\"\n                     * - the targetElement has a a child with the class \"os-padding\"\n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-host\" element is the targetElement)\n                     *\n                     *  <div class=\"os-host\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding\">\n                     *          <div class=\"os-viewport\">\n                     *              <div class=\"os-content\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     *\n                     * =====================================================================================\n                     * \n                     * On a Textarea Element The if checks only whether:\n                     * - the targetElement has the class \"os-textarea\" \n                     * - the targetElement is inside a element with the class \"os-content\" \n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-textarea\" (textarea) element is the targetElement)\n                     *\n                     *  <div class=\"os-host-textarea\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding os-text-inherit\">\n                     *          <div class=\"os-viewport os-text-inherit\">\n                     *              <div class=\"os-content os-text-inherit\">\n                     *                  <div class=\"os-textarea-cover\"></div>\n                     *                  <textarea class=\"os-textarea os-text-inherit\"></textarea>\n                     *              </div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     */\n                    _domExists = _isTextarea\n                        ? _targetElement.hasClass(_classNameTextareaElement) && _targetElement.parent().hasClass(_classNameContentElement)\n                        : _targetElement.hasClass(_classNameHostElement) && _targetElement.children(_strDot + _classNamePaddingElement)[LEXICON.l];\n\n                    var initBodyScroll;\n                    var bodyMouseTouchDownListener;\n\n                    //check if the plugin hasn't to be initialized\n                    if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y && !_currentPreparedOptions.nativeScrollbarsOverlaid.initialize) {\n                        dispatchCallback('onInitializationWithdrawn');\n                        if (_domExists) {\n                            setupStructureDOM(true);\n                            setupScrollbarsDOM(true);\n                            setupScrollbarCornerDOM(true);\n                        }\n\n                        _destroyed = true;\n                        _sleeping = true;\n\n                        return _base;\n                    }\n\n                    if (_isBody) {\n                        initBodyScroll = {};\n                        initBodyScroll.l = MATH.max(_targetElement[_strScrollLeft](), _htmlElement[_strScrollLeft](), _windowElement[_strScrollLeft]());\n                        initBodyScroll.t = MATH.max(_targetElement[_strScrollTop](), _htmlElement[_strScrollTop](), _windowElement[_strScrollTop]());\n\n                        bodyMouseTouchDownListener = function () {\n                            _viewportElement.removeAttr(LEXICON.ti);\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, true, true);\n                        }\n                    }\n\n                    //build OverlayScrollbars DOM\n                    setupStructureDOM();\n                    setupScrollbarsDOM();\n                    setupScrollbarCornerDOM();\n\n                    //create OverlayScrollbars events\n                    setupStructureEvents();\n                    setupScrollbarEvents(true);\n                    setupScrollbarEvents(false);\n                    setupScrollbarCornerEvents();\n\n                    //create mutation observers\n                    createMutationObservers();\n\n                    //build resize observer for the host element\n                    setupResizeObserver(_sizeObserverElement, hostOnResized);\n\n                    if (_isBody) {\n                        //apply the body scroll to handle it right in the update method\n                        _viewportElement[_strScrollLeft](initBodyScroll.l)[_strScrollTop](initBodyScroll.t);\n\n                        //set the focus on the viewport element so you dont have to click on the page to use keyboard keys (up / down / space) for scrolling\n                        if (document.activeElement == targetElement && _viewportElementNative.focus) {\n                            //set a tabindex to make the viewportElement focusable\n                            _viewportElement.attr(LEXICON.ti, '-1');\n                            _viewportElementNative.focus();\n\n                            /* the tabindex has to be removed due to;\n                             * If you set the tabindex attribute on an <div>, then its child content cannot be scrolled with the arrow keys unless you set tabindex on the content, too\n                             * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n                             */\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, false, true);\n                        }\n                    }\n\n                    //update for the first time & initialize cache\n                    _base.update(_strAuto);\n\n                    //the plugin is initialized now!\n                    _initialized = true;\n                    dispatchCallback('onInitialized');\n\n                    //call all callbacks which would fire before the initialized was complete\n                    each(_callbacksInitQeueue, function (index, value) { dispatchCallback(value.n, value.a); });\n                    _callbacksInitQeueue = [];\n\n                    //add extensions\n                    if (type(extensions) == TYPES.s)\n                        extensions = [extensions];\n                    if (COMPATIBILITY.isA(extensions))\n                        each(extensions, function (index, value) { _base.addExt(value); });\n                    else if (FRAMEWORK.isPlainObject(extensions))\n                        each(extensions, function (key, value) { _base.addExt(key, value); });\n\n                    //add the transition class for transitions AFTER the first update & AFTER the applied extensions (for preventing unwanted transitions)\n                    setTimeout(function () {\n                        if (_supportTransition && !_destroyed)\n                            addClass(_hostElement, _classNameHostTransition);\n                    }, 333);\n\n                    return _base;\n                }\n\n                if (_plugin.valid(construct(pluginTargetElement, options, extensions))) {\n                    INSTANCES(pluginTargetElement, _base);\n                }\n\n                return _base;\n            }\n\n            /**\n             * Initializes a new OverlayScrollbarsInstance object or changes options if already initialized or returns the current instance.\n             * @param pluginTargetElements The elements to which the Plugin shall be initialized.\n             * @param options The custom options with which the plugin shall be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*}\n             */\n            _plugin = window[PLUGINNAME] = function (pluginTargetElements, options, extensions) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var arr = [];\n                var optsIsPlainObj = FRAMEWORK.isPlainObject(options);\n                var inst;\n                var result;\n\n                //pluginTargetElements is null or undefined\n                if (!pluginTargetElements)\n                    return optsIsPlainObj || !options ? result : arr;\n\n                /*\n                   pluginTargetElements will be converted to:\n                   1. A jQueryElement Array\n                   2. A HTMLElement Array\n                   3. A Array with a single HTML Element\n                   so pluginTargetElements is always a array.\n                */\n                pluginTargetElements = pluginTargetElements[LEXICON.l] != undefined ? pluginTargetElements : [pluginTargetElements[0] || pluginTargetElements];\n                initOverlayScrollbarsStatics();\n\n                if (pluginTargetElements[LEXICON.l] > 0) {\n                    if (optsIsPlainObj) {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = v;\n                            if (inst !== undefined)\n                                arr.push(OverlayScrollbarsInstance(inst, options, extensions, _pluginsGlobals, _pluginsAutoUpdateLoop));\n                        });\n                    }\n                    else {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = INSTANCES(v);\n                            if ((options === '!' && _plugin.valid(inst)) || (COMPATIBILITY.type(options) == TYPES.f && options(v, inst)))\n                                arr.push(inst);\n                            else if (options === undefined)\n                                arr.push(inst);\n                        });\n                    }\n                    result = arr[LEXICON.l] === 1 ? arr[0] : arr;\n                }\n                return result;\n            };\n\n            /**\n             * Returns a object which contains global information about the plugin and each instance of it.\n             * The returned object is just a copy, that means that changes to the returned object won't have any effect to the original object.\n             */\n            _plugin.globals = function () {\n                initOverlayScrollbarsStatics();\n                var globals = FRAMEWORK.extend(true, {}, _pluginsGlobals);\n                delete globals['msie'];\n                return globals;\n            };\n\n            /**\n             * Gets or Sets the default options for each new plugin initialization.\n             * @param newDefaultOptions The object with which the default options shall be extended.\n             */\n            _plugin.defaultOptions = function (newDefaultOptions) {\n                initOverlayScrollbarsStatics();\n                var currDefaultOptions = _pluginsGlobals.defaultOptions;\n                if (newDefaultOptions === undefined)\n                    return FRAMEWORK.extend(true, {}, currDefaultOptions);\n\n                //set the new default options\n                _pluginsGlobals.defaultOptions = FRAMEWORK.extend(true, {}, currDefaultOptions, _pluginsOptions._validate(newDefaultOptions, _pluginsOptions._template, true, currDefaultOptions)._default);\n            };\n\n            /**\n             * Checks whether the passed instance is a non-destroyed OverlayScrollbars instance.\n             * @param osInstance The potential OverlayScrollbars instance which shall be checked.\n             * @returns {boolean} True if the passed value is a non-destroyed OverlayScrollbars instance, false otherwise.\n             */\n            _plugin.valid = function (osInstance) {\n                return osInstance instanceof _plugin && !osInstance.getState().destroyed;\n            };\n\n            /**\n             * Registers, Unregisters or returns a extension.\n             * Register: Pass the name and the extension. (defaultOptions is optional)\n             * Unregister: Pass the name and anything except a function as extension parameter.\n             * Get extension: Pass the name of the extension which shall be got.\n             * Get all extensions: Pass no arguments.\n             * @param extensionName The name of the extension which shall be registered, unregistered or returned.\n             * @param extension A function which generates the instance of the extension or anything other to remove a already registered extension.\n             * @param defaultOptions The default options which shall be used for the registered extension.\n             */\n            _plugin.extension = function (extensionName, extension, defaultOptions) {\n                var extNameTypeString = COMPATIBILITY.type(extensionName) == TYPES.s;\n                var argLen = arguments[LEXICON.l];\n                var i = 0;\n                if (argLen < 1 || !extNameTypeString) {\n                    //return a copy of all extension objects\n                    return FRAMEWORK.extend(true, { length: _pluginsExtensions[LEXICON.l] }, _pluginsExtensions);\n                }\n                else if (extNameTypeString) {\n                    if (COMPATIBILITY.type(extension) == TYPES.f) {\n                        //register extension\n                        _pluginsExtensions.push({\n                            name: extensionName,\n                            extensionFactory: extension,\n                            defaultOptions: defaultOptions\n                        });\n                    }\n                    else {\n                        for (; i < _pluginsExtensions[LEXICON.l]; i++) {\n                            if (_pluginsExtensions[i].name === extensionName) {\n                                if (argLen > 1)\n                                    _pluginsExtensions.splice(i, 1); //remove extension\n                                else\n                                    return FRAMEWORK.extend(true, {}, _pluginsExtensions[i]); //return extension with the given name\n                            }\n                        }\n                    }\n                }\n            };\n\n            return _plugin;\n        })();\n\n        if (JQUERY && JQUERY.fn) {\n            /**\n             * The jQuery initialization interface.\n             * @param options The initial options for the construction of the plugin. To initialize the plugin, this option has to be a object! If it isn't a object, the instance(s) are returned and the plugin wont be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*} After initialization it returns the jQuery element array, else it returns the instance(s) of the elements which are selected.\n             */\n            JQUERY.fn.overlayScrollbars = function (options, extensions) {\n                var _elements = this;\n                if (JQUERY.isPlainObject(options)) {\n                    JQUERY.each(_elements, function () { PLUGIN(this, options, extensions); });\n                    return _elements;\n                }\n                else\n                    return PLUGIN(_elements, options);\n            };\n        }\n        return PLUGIN;\n    }\n));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/overlayScrollbars/js/jquery.overlayScrollbars.js",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n(function (global, factory) {\n    if (typeof define === 'function' && define.amd)\n        define(['jquery'], function (framework) { return factory(global, global.document, undefined, framework); });\n    else if (typeof module === 'object' && typeof module.exports === 'object')\n        module.exports = factory(global, global.document, undefined, require('jquery'));\n    else\n        factory(global, global.document, undefined, global.jQuery);\n}(typeof window !== 'undefined' ? window : this,\n    function (window, document, undefined, framework) {\n        'use strict';\n        var PLUGINNAME = 'OverlayScrollbars';\n        var TYPES = {\n            o: 'object',\n            f: 'function',\n            a: 'array',\n            s: 'string',\n            b: 'boolean',\n            n: 'number',\n            u: 'undefined',\n            z: 'null'\n            //d : 'date',\n            //e : 'error',\n            //r : 'regexp',\n            //y : 'symbol'\n        };\n        var LEXICON = {\n            c: 'class',\n            s: 'style',\n            i: 'id',\n            l: 'length',\n            p: 'prototype',\n            ti: 'tabindex',\n            oH: 'offsetHeight',\n            cH: 'clientHeight',\n            sH: 'scrollHeight',\n            oW: 'offsetWidth',\n            cW: 'clientWidth',\n            sW: 'scrollWidth',\n            hOP: 'hasOwnProperty',\n            bCR: 'getBoundingClientRect'\n        };\n        var VENDORS = (function () {\n            //https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\n            var jsCache = {};\n            var cssCache = {};\n            var cssPrefixes = ['-webkit-', '-moz-', '-o-', '-ms-'];\n            var jsPrefixes = ['WebKit', 'Moz', 'O', 'MS'];\n            function firstLetterToUpper(str) {\n                return str.charAt(0).toUpperCase() + str.slice(1);\n            }\n\n            return {\n                _cssPrefixes: cssPrefixes,\n                _jsPrefixes: jsPrefixes,\n                _cssProperty: function (name) {\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var uppercasedName = firstLetterToUpper(name);\n                    var elmStyle = document.createElement('div')[LEXICON.s];\n                    var resultPossibilities;\n                    var i = 0;\n                    var v;\n                    var currVendorWithoutDashes;\n\n                    for (; i < cssPrefixes.length; i++) {\n                        currVendorWithoutDashes = cssPrefixes[i].replace(/-/g, '');\n                        resultPossibilities = [\n                            name, //transition\n                            cssPrefixes[i] + name, //-webkit-transition\n                            currVendorWithoutDashes + uppercasedName, //webkitTransition\n                            firstLetterToUpper(currVendorWithoutDashes) + uppercasedName //WebkitTransition\n                        ];\n                        for (v = 0; v < resultPossibilities[LEXICON.l]; v++) {\n                            if (elmStyle[resultPossibilities[v]] !== undefined) {\n                                result = resultPossibilities[v];\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _cssPropertyValue: function (property, values, suffix) {\n                    var name = property + ' ' + values;\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var dummyStyle = document.createElement('div')[LEXICON.s];\n                    var possbleValues = values.split(' ');\n                    var preparedSuffix = suffix || '';\n                    var i = 0;\n                    var v = -1;\n                    var prop;\n\n                    for (; i < possbleValues[LEXICON.l]; i++) {\n                        for (; v < VENDORS._cssPrefixes[LEXICON.l]; v++) {\n                            prop = v < 0 ? possbleValues[i] : VENDORS._cssPrefixes[v] + possbleValues[i];\n                            dummyStyle.cssText = property + ':' + prop + preparedSuffix;\n                            if (dummyStyle[LEXICON.l]) {\n                                result = prop;\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _jsAPI: function (name, isInterface, fallback) {\n                    var i = 0;\n                    var result = jsCache[name];\n\n                    if (!jsCache[LEXICON.hOP](name)) {\n                        result = window[name];\n                        for (; i < jsPrefixes[LEXICON.l]; i++)\n                            result = result || window[(isInterface ? jsPrefixes[i] : jsPrefixes[i].toLowerCase()) + firstLetterToUpper(name)];\n                        jsCache[name] = result;\n                    }\n                    return result || fallback;\n                }\n            }\n        })();\n        var COMPATIBILITY = (function () {\n            function windowSize(x) {\n                return x ? window.innerWidth || document.documentElement[LEXICON.cW] || document.body[LEXICON.cW] : window.innerHeight || document.documentElement[LEXICON.cH] || document.body[LEXICON.cH];\n            }\n            function bind(func, thisObj) {\n                if (typeof func != TYPES.f) {\n                    throw \"Can't bind function!\";\n                    // closest thing possible to the ECMAScript 5\n                    // internal IsCallable function\n                    //throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n                }\n                var proto = LEXICON.p;\n                var aArgs = Array[proto].slice.call(arguments, 2);\n                var fNOP = function () { };\n                var fBound = function () { return func.apply(this instanceof fNOP ? this : thisObj, aArgs.concat(Array[proto].slice.call(arguments))); };\n\n                if (func[proto])\n                    fNOP[proto] = func[proto]; // Function.prototype doesn't have a prototype property\n                fBound[proto] = new fNOP();\n\n                return fBound;\n            }\n\n            return {\n                /**\n                 * Gets the current window width.\n                 * @returns {Number|number} The current window width in pixel.\n                 */\n                wW: bind(windowSize, 0, true),\n\n                /**\n                 * Gets the current window height.\n                 * @returns {Number|number} The current window height in pixel.\n                 */\n                wH: bind(windowSize, 0),\n\n                /**\n                 * Gets the MutationObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The MutationsObserver Object or undefined.\n                 */\n                mO: bind(VENDORS._jsAPI, 0, 'MutationObserver', true),\n\n                /**\n                 * Gets the ResizeObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The ResizeObserver Object or undefined.\n                 */\n                rO: bind(VENDORS._jsAPI, 0, 'ResizeObserver', true),\n\n                /**\n                 * Gets the RequestAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The RequestAnimationFrame method or it's corresponding polyfill.\n                 */\n                rAF: bind(VENDORS._jsAPI, 0, 'requestAnimationFrame', false, function (func) { return window.setTimeout(func, 1000 / 60); }),\n\n                /**\n                 * Gets the CancelAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The CancelAnimationFrame method or it's corresponding polyfill.\n                 */\n                cAF: bind(VENDORS._jsAPI, 0, 'cancelAnimationFrame', false, function (id) { return window.clearTimeout(id); }),\n\n                /**\n                 * Gets the current time.\n                 * @returns {number} The current time.\n                 */\n                now: function () {\n                    return Date.now && Date.now() || new Date().getTime();\n                },\n\n                /**\n                 * Stops the propagation of the given event.\n                 * @param event The event of which the propagation shall be stoped.\n                 */\n                stpP: function (event) {\n                    if (event.stopPropagation)\n                        event.stopPropagation();\n                    else\n                        event.cancelBubble = true;\n                },\n\n                /**\n                 * Prevents the default action of the given event.\n                 * @param event The event of which the default action shall be prevented.\n                 */\n                prvD: function (event) {\n                    if (event.preventDefault && event.cancelable)\n                        event.preventDefault();\n                    else\n                        event.returnValue = false;\n                },\n\n                /**\n                 * Gets the pageX and pageY values of the given mouse event.\n                 * @param event The mouse event of which the pageX and pageX shall be got.\n                 * @returns {{x: number, y: number}} x = pageX value, y = pageY value.\n                 */\n                page: function (event) {\n                    event = event.originalEvent || event;\n\n                    var strPage = 'page';\n                    var strClient = 'client';\n                    var strX = 'X';\n                    var strY = 'Y';\n                    var target = event.target || event.srcElement || document;\n                    var eventDoc = target.ownerDocument || document;\n                    var doc = eventDoc.documentElement;\n                    var body = eventDoc.body;\n\n                    //if touch event return return pageX/Y of it\n                    if (event.touches !== undefined) {\n                        var touch = event.touches[0];\n                        return {\n                            x: touch[strPage + strX],\n                            y: touch[strPage + strY]\n                        }\n                    }\n\n                    // Calculate pageX/Y if not native supported\n                    if (!event[strPage + strX] && event[strClient + strX] && event[strClient + strX] != null) {\n\n                        return {\n                            x: event[strClient + strX] +\n                                (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n                                (doc && doc.clientLeft || body && body.clientLeft || 0),\n                            y: event[strClient + strY] +\n                                (doc && doc.scrollTop || body && body.scrollTop || 0) -\n                                (doc && doc.clientTop || body && body.clientTop || 0)\n                        }\n                    }\n                    return {\n                        x: event[strPage + strX],\n                        y: event[strPage + strY]\n                    };\n                },\n\n                /**\n                 * Gets the clicked mouse button of the given mouse event.\n                 * @param event The mouse event of which the clicked button shal be got.\n                 * @returns {number} The number of the clicked mouse button. (0 : none | 1 : leftButton | 2 : middleButton | 3 : rightButton)\n                 */\n                mBtn: function (event) {\n                    var button = event.button;\n                    if (!event.which && button !== undefined)\n                        return (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n                    else\n                        return event.which;\n                },\n\n                /**\n                 * Checks whether a item is in the given array and returns its index.\n                 * @param item The item of which the position in the array shall be determined.\n                 * @param arr The array.\n                 * @returns {number} The zero based index of the item or -1 if the item isn't in the array.\n                 */\n                inA: function (item, arr) {\n                    for (var i = 0; i < arr[LEXICON.l]; i++)\n                        //Sometiems in IE a \"SCRIPT70\" Permission denied error occurs if HTML elements in a iFrame are compared\n                        try {\n                            if (arr[i] === item)\n                                return i;\n                        }\n                        catch (e) { }\n                    return -1;\n                },\n\n                /**\n                 * Returns true if the given value is a array.\n                 * @param arr The potential array.\n                 * @returns {boolean} True if the given value is a array, false otherwise.\n                 */\n                isA: function (arr) {\n                    var def = Array.isArray;\n                    return def ? def(arr) : this.type(arr) == TYPES.a;\n                },\n\n                /**\n                 * Determine the internal JavaScript [[Class]] of the given object.\n                 * @param obj The object of which the type shall be determined.\n                 * @returns {string} The type of the given object.\n                 */\n                type: function (obj) {\n                    if (obj === undefined)\n                        return obj + '';\n                    if (obj === null)\n                        return obj + '';\n                    return Object[LEXICON.p].toString.call(obj).replace(/^\\[object (.+)\\]$/, '$1').toLowerCase();\n                },\n\n\n                bind: bind\n\n                /**\n                 * Gets the vendor-prefixed CSS property by the given name.\n                 * For example the given name is \"transform\" and you're using a old Firefox browser then the returned value would be \"-moz-transform\".\n                 * If the browser doesn't need a vendor-prefix, then the returned string is the given name.\n                 * If the browser doesn't support the given property name at all (not even with a vendor-prefix) the returned value is null.\n                 * @param propName The unprefixed CSS property name.\n                 * @returns {string|null} The vendor-prefixed CSS property or null if the browser doesn't support the given CSS property.\n\n                cssProp: function(propName) {\n                    return VENDORS._cssProperty(propName);\n                }\n                */\n            }\n        })();\n\n        var MATH = Math;\n        var JQUERY = framework;\n        var EASING = framework.easing;\n        var FRAMEWORK = framework;\n        var INSTANCES = (function () {\n            var _targets = [];\n            var _instancePropertyString = '__overlayScrollbars__';\n\n            /**\n             * Register, unregister or get a certain (or all) instances.\n             * Register: Pass the target and the instance.\n             * Unregister: Pass the target and null.\n             * Get Instance: Pass the target from which the instance shall be got.\n             * Get Targets: Pass no arguments.\n             * @param target The target to which the instance shall be registered / from which the instance shall be unregistered / the instance shall be got\n             * @param instance The instance.\n             * @returns {*|void} Returns the instance from the given target.\n             */\n            return function (target, instance) {\n                var argLen = arguments[LEXICON.l];\n                if (argLen < 1) {\n                    //return all targets\n                    return _targets;\n                }\n                else {\n                    if (instance) {\n                        //register instance\n                        target[_instancePropertyString] = instance;\n                        _targets.push(target);\n                    }\n                    else {\n                        var index = COMPATIBILITY.inA(target, _targets);\n                        if (index > -1) {\n                            if (argLen > 1) {\n                                //unregister instance\n                                delete target[_instancePropertyString];\n                                _targets.splice(index, 1);\n                            }\n                            else {\n                                //get instance from target\n                                return _targets[index][_instancePropertyString];\n                            }\n                        }\n                    }\n                }\n            }\n        })();\n        var PLUGIN = (function () {\n            var _plugin;\n            var _pluginsGlobals;\n            var _pluginsAutoUpdateLoop;\n            var _pluginsExtensions = [];\n            var _pluginsOptions = (function () {\n                var type = COMPATIBILITY.type;\n                var possibleTemplateTypes = [\n                    TYPES.b, //boolean\n                    TYPES.n, //number\n                    TYPES.s, //string\n                    TYPES.a, //array\n                    TYPES.o, //object\n                    TYPES.f, //function\n                    TYPES.z  //null\n                ];\n                var restrictedStringsSplit = ' ';\n                var restrictedStringsPossibilitiesSplit = ':';\n                var classNameAllowedValues = [TYPES.z, TYPES.s];\n                var numberAllowedValues = TYPES.n;\n                var booleanNullAllowedValues = [TYPES.z, TYPES.b];\n                var booleanTrueTemplate = [true, TYPES.b];\n                var booleanFalseTemplate = [false, TYPES.b];\n                var callbackTemplate = [null, [TYPES.z, TYPES.f]];\n                var updateOnLoadTemplate = [['img'], [TYPES.s, TYPES.a, TYPES.z]];\n                var inheritedAttrsTemplate = [['style', 'class'], [TYPES.s, TYPES.a, TYPES.z]];\n                var resizeAllowedValues = 'n:none b:both h:horizontal v:vertical';\n                var overflowBehaviorAllowedValues = 'v-h:visible-hidden v-s:visible-scroll s:scroll h:hidden';\n                var scrollbarsVisibilityAllowedValues = 'v:visible h:hidden a:auto';\n                var scrollbarsAutoHideAllowedValues = 'n:never s:scroll l:leave m:move';\n                var optionsDefaultsAndTemplate = {\n                    className: ['os-theme-dark', classNameAllowedValues],                //null || string\n                    resize: ['none', resizeAllowedValues],                               //none || both  || horizontal || vertical || n || b || h || v\n                    sizeAutoCapable: booleanTrueTemplate,                                //true || false\n                    clipAlways: booleanTrueTemplate,                                     //true || false\n                    normalizeRTL: booleanTrueTemplate,                                   //true || false\n                    paddingAbsolute: booleanFalseTemplate,                               //true || false\n                    autoUpdate: [null, booleanNullAllowedValues],                        //true || false || null\n                    autoUpdateInterval: [33, numberAllowedValues],                       //number\n                    updateOnLoad: updateOnLoadTemplate,                                  //string || array || null\n                    nativeScrollbarsOverlaid: {\n                        showNativeScrollbars: booleanFalseTemplate,                      //true || false\n                        initialize: booleanTrueTemplate                                  //true || false\n                    },\n                    overflowBehavior: {\n                        x: ['scroll', overflowBehaviorAllowedValues],                    //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                        y: ['scroll', overflowBehaviorAllowedValues]                     //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                    },\n                    scrollbars: {\n                        visibility: ['auto', scrollbarsVisibilityAllowedValues],         //visible || hidden || auto || v || h || a\n                        autoHide: ['never', scrollbarsAutoHideAllowedValues],            //never || scroll || leave || move || n || s || l || m\n                        autoHideDelay: [800, numberAllowedValues],                       //number\n                        dragScrolling: booleanTrueTemplate,                              //true || false\n                        clickScrolling: booleanFalseTemplate,                            //true || false\n                        touchSupport: booleanTrueTemplate,                               //true || false\n                        snapHandle: booleanFalseTemplate                                 //true || false\n                    },\n                    textarea: {\n                        dynWidth: booleanFalseTemplate,                                  //true || false\n                        dynHeight: booleanFalseTemplate,                                 //true || false\n                        inheritedAttrs: inheritedAttrsTemplate                           //string || array || null\n                    },\n                    callbacks: {\n                        onInitialized: callbackTemplate,                                 //null || function\n                        onInitializationWithdrawn: callbackTemplate,                     //null || function\n                        onDestroyed: callbackTemplate,                                   //null || function\n                        onScrollStart: callbackTemplate,                                 //null || function\n                        onScroll: callbackTemplate,                                      //null || function\n                        onScrollStop: callbackTemplate,                                  //null || function\n                        onOverflowChanged: callbackTemplate,                             //null || function\n                        onOverflowAmountChanged: callbackTemplate,                       //null || function\n                        onDirectionChanged: callbackTemplate,                            //null || function\n                        onContentSizeChanged: callbackTemplate,                          //null || function\n                        onHostSizeChanged: callbackTemplate,                             //null || function\n                        onUpdated: callbackTemplate                                      //null || function\n                    }\n                };\n                var convert = function (template) {\n                    var recursive = function (obj) {\n                        var key;\n                        var val;\n                        var valType;\n                        for (key in obj) {\n                            if (!obj[LEXICON.hOP](key))\n                                continue;\n                            val = obj[key];\n                            valType = type(val);\n                            if (valType == TYPES.a)\n                                obj[key] = val[template ? 1 : 0];\n                            else if (valType == TYPES.o)\n                                obj[key] = recursive(val);\n                        }\n                        return obj;\n                    };\n                    return recursive(FRAMEWORK.extend(true, {}, optionsDefaultsAndTemplate));\n                };\n\n                return {\n                    _defaults: convert(),\n\n                    _template: convert(true),\n\n                    /**\n                     * Validates the passed object by the passed template.\n                     * @param obj The object which shall be validated.\n                     * @param template The template which defines the allowed values and types.\n                     * @param writeErrors True if errors shall be logged to the console.\n                     * @param diffObj If a object is passed then only valid differences to this object will be returned.\n                     * @returns {{}} A object which contains two objects called \"default\" and \"prepared\" which contains only the valid properties of the passed original object and discards not different values compared to the passed diffObj.\n                     */\n                    _validate: function (obj, template, writeErrors, diffObj) {\n                        var validatedOptions = {};\n                        var validatedOptionsPrepared = {};\n                        var objectCopy = FRAMEWORK.extend(true, {}, obj);\n                        var inArray = FRAMEWORK.inArray;\n                        var isEmptyObj = FRAMEWORK.isEmptyObject;\n                        var checkObjectProps = function (data, template, diffData, validatedOptions, validatedOptionsPrepared, prevPropName) {\n                            for (var prop in template) {\n                                if (template[LEXICON.hOP](prop) && data[LEXICON.hOP](prop)) {\n                                    var isValid = false;\n                                    var isDiff = false;\n                                    var templateValue = template[prop];\n                                    var templateValueType = type(templateValue);\n                                    var templateIsComplex = templateValueType == TYPES.o;\n                                    var templateTypes = !COMPATIBILITY.isA(templateValue) ? [templateValue] : templateValue;\n                                    var dataDiffValue = diffData[prop];\n                                    var dataValue = data[prop];\n                                    var dataValueType = type(dataValue);\n                                    var propPrefix = prevPropName ? prevPropName + '.' : '';\n                                    var error = \"The option \\\"\" + propPrefix + prop + \"\\\" wasn't set, because\";\n                                    var errorPossibleTypes = [];\n                                    var errorRestrictedStrings = [];\n                                    var restrictedStringValuesSplit;\n                                    var restrictedStringValuesPossibilitiesSplit;\n                                    var isRestrictedValue;\n                                    var mainPossibility;\n                                    var currType;\n                                    var i;\n                                    var v;\n                                    var j;\n\n                                    dataDiffValue = dataDiffValue === undefined ? {} : dataDiffValue;\n\n                                    //if the template has a object as value, it means that the options are complex (verschachtelt)\n                                    if (templateIsComplex && dataValueType == TYPES.o) {\n                                        validatedOptions[prop] = {};\n                                        validatedOptionsPrepared[prop] = {};\n                                        checkObjectProps(dataValue, templateValue, dataDiffValue, validatedOptions[prop], validatedOptionsPrepared[prop], propPrefix + prop);\n                                        FRAMEWORK.each([data, validatedOptions, validatedOptionsPrepared], function (index, value) {\n                                            if (isEmptyObj(value[prop])) {\n                                                delete value[prop];\n                                            }\n                                        });\n                                    }\n                                    else if (!templateIsComplex) {\n                                        for (i = 0; i < templateTypes[LEXICON.l]; i++) {\n                                            currType = templateTypes[i];\n                                            templateValueType = type(currType);\n                                            //if currtype is string and starts with restrictedStringPrefix and end with restrictedStringSuffix\n                                            isRestrictedValue = templateValueType == TYPES.s && inArray(currType, possibleTemplateTypes) === -1;\n                                            if (isRestrictedValue) {\n                                                errorPossibleTypes.push(TYPES.s);\n\n                                                //split it into a array which contains all possible values for example: [\"y:yes\", \"n:no\", \"m:maybe\"]\n                                                restrictedStringValuesSplit = currType.split(restrictedStringsSplit);\n                                                errorRestrictedStrings = errorRestrictedStrings.concat(restrictedStringValuesSplit);\n                                                for (v = 0; v < restrictedStringValuesSplit[LEXICON.l]; v++) {\n                                                    //split the possible values into their possibiliteis for example: [\"y\", \"yes\"] -> the first is always the mainPossibility\n                                                    restrictedStringValuesPossibilitiesSplit = restrictedStringValuesSplit[v].split(restrictedStringsPossibilitiesSplit);\n                                                    mainPossibility = restrictedStringValuesPossibilitiesSplit[0];\n                                                    for (j = 0; j < restrictedStringValuesPossibilitiesSplit[LEXICON.l]; j++) {\n                                                        //if any possibility matches with the dataValue, its valid\n                                                        if (dataValue === restrictedStringValuesPossibilitiesSplit[j]) {\n                                                            isValid = true;\n                                                            break;\n                                                        }\n                                                    }\n                                                    if (isValid)\n                                                        break;\n                                                }\n                                            }\n                                            else {\n                                                errorPossibleTypes.push(currType);\n\n                                                if (dataValueType === currType) {\n                                                    isValid = true;\n                                                    break;\n                                                }\n                                            }\n                                        }\n\n                                        if (isValid) {\n                                            isDiff = dataValue !== dataDiffValue;\n\n                                            if (isDiff)\n                                                validatedOptions[prop] = dataValue;\n\n                                            if (isRestrictedValue ? inArray(dataDiffValue, restrictedStringValuesPossibilitiesSplit) < 0 : isDiff)\n                                                validatedOptionsPrepared[prop] = isRestrictedValue ? mainPossibility : dataValue;\n                                        }\n                                        else if (writeErrors) {\n                                            console.warn(error + \" it doesn't accept the type [ \" + dataValueType.toUpperCase() + \" ] with the value of \\\"\" + dataValue + \"\\\".\\r\\n\" +\n                                                \"Accepted types are: [ \" + errorPossibleTypes.join(', ').toUpperCase() + \" ].\" +\n                                                (errorRestrictedStrings[length] > 0 ? \"\\r\\nValid strings are: [ \" + errorRestrictedStrings.join(', ').split(restrictedStringsPossibilitiesSplit).join(', ') + \" ].\" : ''));\n                                        }\n                                        delete data[prop];\n                                    }\n                                }\n                            }\n                        };\n                        checkObjectProps(objectCopy, template, diffObj || {}, validatedOptions, validatedOptionsPrepared);\n\n                        //add values which aren't specified in the template to the finished validated object to prevent them from being discarded\n                        /*\n                        if(keepForeignProps) {\n                            FRAMEWORK.extend(true, validatedOptions, objectCopy);\n                            FRAMEWORK.extend(true, validatedOptionsPrepared, objectCopy);\n                        }\n                        */\n\n                        if (!isEmptyObj(objectCopy) && writeErrors)\n                            console.warn('The following options are discarded due to invalidity:\\r\\n' + window.JSON.stringify(objectCopy, null, 2));\n\n                        return {\n                            _default: validatedOptions,\n                            _prepared: validatedOptionsPrepared\n                        };\n                    }\n                }\n            }());\n\n            /**\n             * Initializes the object which contains global information about the plugin and each instance of it.\n             */\n            function initOverlayScrollbarsStatics() {\n                if (!_pluginsGlobals)\n                    _pluginsGlobals = new OverlayScrollbarsGlobals(_pluginsOptions._defaults);\n                if (!_pluginsAutoUpdateLoop)\n                    _pluginsAutoUpdateLoop = new OverlayScrollbarsAutoUpdateLoop(_pluginsGlobals);\n            }\n\n            /**\n             * The global object for the OverlayScrollbars objects. It contains resources which every OverlayScrollbars object needs. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @param defaultOptions\n             * @constructor\n             */\n            function OverlayScrollbarsGlobals(defaultOptions) {\n                var _base = this;\n                var strOverflow = 'overflow';\n                var strHidden = 'hidden';\n                var strScroll = 'scroll';\n                var bodyElement = FRAMEWORK('body');\n                var scrollbarDummyElement = FRAMEWORK('<div id=\"os-dummy-scrollbar-size\"><div></div></div>');\n                var scrollbarDummyElement0 = scrollbarDummyElement[0];\n                var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));\n\n                bodyElement.append(scrollbarDummyElement);\n                scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)\n\n                var nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement0);\n                var nativeScrollbarIsOverlaid = {\n                    x: nativeScrollbarSize.x === 0,\n                    y: nativeScrollbarSize.y === 0\n                };\n                var msie = (function () {\n                    var ua = window.navigator.userAgent;\n                    var strIndexOf = 'indexOf';\n                    var strSubString = 'substring';\n                    var msie = ua[strIndexOf]('MSIE ');\n                    var trident = ua[strIndexOf]('Trident/');\n                    var edge = ua[strIndexOf]('Edge/');\n                    var rv = ua[strIndexOf]('rv:');\n                    var result;\n                    var parseIntFunc = parseInt;\n\n                    // IE 10 or older => return version number\n                    if (msie > 0)\n                        result = parseIntFunc(ua[strSubString](msie + 5, ua[strIndexOf]('.', msie)), 10);\n\n                    // IE 11 => return version number\n                    else if (trident > 0)\n                        result = parseIntFunc(ua[strSubString](rv + 3, ua[strIndexOf]('.', rv)), 10);\n\n                    // Edge (IE 12+) => return version number\n                    else if (edge > 0)\n                        result = parseIntFunc(ua[strSubString](edge + 5, ua[strIndexOf]('.', edge)), 10);\n\n                    // other browser\n                    return result;\n                })();\n\n                FRAMEWORK.extend(_base, {\n                    defaultOptions: defaultOptions,\n                    msie: msie,\n                    autoUpdateLoop: false,\n                    autoUpdateRecommended: !COMPATIBILITY.mO(),\n                    nativeScrollbarSize: nativeScrollbarSize,\n                    nativeScrollbarIsOverlaid: nativeScrollbarIsOverlaid,\n                    nativeScrollbarStyling: (function () {\n                        var result = false;\n                        scrollbarDummyElement.addClass('os-viewport-native-scrollbars-invisible');\n                        try {\n                            result = (scrollbarDummyElement.css('scrollbar-width') === 'none' && (msie > 9 || !msie)) || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';\n                        } catch (ex) { }\n\n                        //fix opera bug: scrollbar styles will only appear if overflow value is scroll or auto during the activation of the style.\n                        //and set overflow to scroll\n                        //scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();\n                        //return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;\n\n                        return result;\n                    })(),\n                    overlayScrollbarDummySize: { x: 30, y: 30 },\n                    cssCalc: VENDORS._cssPropertyValue('width', 'calc', '(1px)') || null,\n                    restrictedMeasuring: (function () {\n                        //https://bugzilla.mozilla.org/show_bug.cgi?id=1439305\n                        //since 1.11.0 always false -> fixed via CSS (hopefully)\n                        scrollbarDummyElement.css(strOverflow, strHidden);\n                        var scrollSize = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        scrollbarDummyElement.css(strOverflow, 'visible');\n                        var scrollSize2 = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        return (scrollSize.w - scrollSize2.w) !== 0 || (scrollSize.h - scrollSize2.h) !== 0;\n                    })(),\n                    rtlScrollBehavior: (function () {\n                        scrollbarDummyElement.css({ 'overflow-y': strHidden, 'overflow-x': strScroll, 'direction': 'rtl' }).scrollLeft(0);\n                        var dummyContainerOffset = scrollbarDummyElement.offset();\n                        var dummyContainerChildOffset = dummyContainerChild.offset();\n                        //https://github.com/KingSora/OverlayScrollbars/issues/187\n                        scrollbarDummyElement.scrollLeft(-999);\n                        var dummyContainerChildOffsetAfterScroll = dummyContainerChild.offset();\n                        return {\n                            //origin direction = determines if the zero scroll position is on the left or right side\n                            //'i' means 'invert' (i === true means that the axis must be inverted to be correct)\n                            //true = on the left side\n                            //false = on the right side\n                            i: dummyContainerOffset.left === dummyContainerChildOffset.left,\n                            //negative = determines if the maximum scroll is positive or negative\n                            //'n' means 'negate' (n === true means that the axis must be negated to be correct)\n                            //true = negative\n                            //false = positive\n                            n: dummyContainerChildOffset.left !== dummyContainerChildOffsetAfterScroll.left\n                        };\n                    })(),\n                    supportTransform: !!VENDORS._cssProperty('transform'),\n                    supportTransition: !!VENDORS._cssProperty('transition'),\n                    supportPassiveEvents: (function () {\n                        var supportsPassive = false;\n                        try {\n                            window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n                                get: function () {\n                                    supportsPassive = true;\n                                }\n                            }));\n                        } catch (e) { }\n                        return supportsPassive;\n                    })(),\n                    supportResizeObserver: !!COMPATIBILITY.rO(),\n                    supportMutationObserver: !!COMPATIBILITY.mO()\n                });\n\n                scrollbarDummyElement.removeAttr(LEXICON.s).remove();\n\n                //Catch zoom event:\n                (function () {\n                    if (nativeScrollbarIsOverlaid.x && nativeScrollbarIsOverlaid.y)\n                        return;\n\n                    var abs = MATH.abs;\n                    var windowWidth = COMPATIBILITY.wW();\n                    var windowHeight = COMPATIBILITY.wH();\n                    var windowDpr = getWindowDPR();\n                    var onResize = function () {\n                        if (INSTANCES().length > 0) {\n                            var newW = COMPATIBILITY.wW();\n                            var newH = COMPATIBILITY.wH();\n                            var deltaW = newW - windowWidth;\n                            var deltaH = newH - windowHeight;\n\n                            if (deltaW === 0 && deltaH === 0)\n                                return;\n\n                            var deltaWRatio = MATH.round(newW / (windowWidth / 100.0));\n                            var deltaHRatio = MATH.round(newH / (windowHeight / 100.0));\n                            var absDeltaW = abs(deltaW);\n                            var absDeltaH = abs(deltaH);\n                            var absDeltaWRatio = abs(deltaWRatio);\n                            var absDeltaHRatio = abs(deltaHRatio);\n                            var newDPR = getWindowDPR();\n\n                            var deltaIsBigger = absDeltaW > 2 && absDeltaH > 2;\n                            var difference = !differenceIsBiggerThanOne(absDeltaWRatio, absDeltaHRatio);\n                            var dprChanged = newDPR !== windowDpr && windowDpr > 0;\n                            var isZoom = deltaIsBigger && difference && dprChanged;\n                            var oldScrollbarSize = _base.nativeScrollbarSize;\n                            var newScrollbarSize;\n\n                            if (isZoom) {\n                                bodyElement.append(scrollbarDummyElement);\n                                newScrollbarSize = _base.nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement[0]);\n                                scrollbarDummyElement.remove();\n                                if (oldScrollbarSize.x !== newScrollbarSize.x || oldScrollbarSize.y !== newScrollbarSize.y) {\n                                    FRAMEWORK.each(INSTANCES(), function () {\n                                        if (INSTANCES(this))\n                                            INSTANCES(this).update('zoom');\n                                    });\n                                }\n                            }\n\n                            windowWidth = newW;\n                            windowHeight = newH;\n                            windowDpr = newDPR;\n                        }\n                    };\n\n                    function differenceIsBiggerThanOne(valOne, valTwo) {\n                        var absValOne = abs(valOne);\n                        var absValTwo = abs(valTwo);\n                        return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\n                    }\n\n                    function getWindowDPR() {\n                        var dDPI = window.screen.deviceXDPI || 0;\n                        var sDPI = window.screen.logicalXDPI || 1;\n                        return window.devicePixelRatio || (dDPI / sDPI);\n                    }\n\n                    FRAMEWORK(window).on('resize', onResize);\n                })();\n\n                function calcNativeScrollbarSize(measureElement) {\n                    return {\n                        x: measureElement[LEXICON.oH] - measureElement[LEXICON.cH],\n                        y: measureElement[LEXICON.oW] - measureElement[LEXICON.cW]\n                    };\n                }\n            }\n\n            /**\n             * The object which manages the auto update loop for all OverlayScrollbars objects. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @constructor\n             */\n            function OverlayScrollbarsAutoUpdateLoop(globals) {\n                var _base = this;\n                var _inArray = FRAMEWORK.inArray;\n                var _getNow = COMPATIBILITY.now;\n                var _strAutoUpdate = 'autoUpdate';\n                var _strAutoUpdateInterval = _strAutoUpdate + 'Interval';\n                var _strLength = LEXICON.l;\n                var _loopingInstances = [];\n                var _loopingInstancesIntervalCache = [];\n                var _loopIsActive = false;\n                var _loopIntervalDefault = 33;\n                var _loopInterval = _loopIntervalDefault;\n                var _loopTimeOld = _getNow();\n                var _loopID;\n\n\n                /**\n                 * The auto update loop which will run every 50 milliseconds or less if the update interval of a instance is lower than 50 milliseconds.\n                 */\n                var loop = function () {\n                    if (_loopingInstances[_strLength] > 0 && _loopIsActive) {\n                        _loopID = COMPATIBILITY.rAF()(function () {\n                            loop();\n                        });\n                        var timeNew = _getNow();\n                        var timeDelta = timeNew - _loopTimeOld;\n                        var lowestInterval;\n                        var instance;\n                        var instanceOptions;\n                        var instanceAutoUpdateAllowed;\n                        var instanceAutoUpdateInterval;\n                        var now;\n\n                        if (timeDelta > _loopInterval) {\n                            _loopTimeOld = timeNew - (timeDelta % _loopInterval);\n                            lowestInterval = _loopIntervalDefault;\n                            for (var i = 0; i < _loopingInstances[_strLength]; i++) {\n                                instance = _loopingInstances[i];\n                                if (instance !== undefined) {\n                                    instanceOptions = instance.options();\n                                    instanceAutoUpdateAllowed = instanceOptions[_strAutoUpdate];\n                                    instanceAutoUpdateInterval = MATH.max(1, instanceOptions[_strAutoUpdateInterval]);\n                                    now = _getNow();\n\n                                    if ((instanceAutoUpdateAllowed === true || instanceAutoUpdateAllowed === null) && (now - _loopingInstancesIntervalCache[i]) > instanceAutoUpdateInterval) {\n                                        instance.update('auto');\n                                        _loopingInstancesIntervalCache[i] = new Date(now += instanceAutoUpdateInterval);\n                                    }\n\n                                    lowestInterval = MATH.max(1, MATH.min(lowestInterval, instanceAutoUpdateInterval));\n                                }\n                            }\n                            _loopInterval = lowestInterval;\n                        }\n                    } else {\n                        _loopInterval = _loopIntervalDefault;\n                    }\n                };\n\n                /**\n                 * Add OverlayScrollbars instance to the auto update loop. Only successful if the instance isn't already added.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.add = function (instance) {\n                    if (_inArray(instance, _loopingInstances) === -1) {\n                        _loopingInstances.push(instance);\n                        _loopingInstancesIntervalCache.push(_getNow());\n                        if (_loopingInstances[_strLength] > 0 && !_loopIsActive) {\n                            _loopIsActive = true;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            loop();\n                        }\n                    }\n                };\n\n                /**\n                 * Remove OverlayScrollbars instance from the auto update loop. Only successful if the instance was added before.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.remove = function (instance) {\n                    var index = _inArray(instance, _loopingInstances);\n                    if (index > -1) {\n                        //remove from loopingInstances list\n                        _loopingInstancesIntervalCache.splice(index, 1);\n                        _loopingInstances.splice(index, 1);\n\n                        //correct update loop behavior\n                        if (_loopingInstances[_strLength] === 0 && _loopIsActive) {\n                            _loopIsActive = false;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            if (_loopID !== undefined) {\n                                COMPATIBILITY.cAF()(_loopID);\n                                _loopID = -1;\n                            }\n                        }\n                    }\n                };\n            }\n\n            /**\n             * A object which manages the scrollbars visibility of the target element.\n             * @param pluginTargetElement The element from which the scrollbars shall be hidden.\n             * @param options The custom options.\n             * @param extensions The custom extensions.\n             * @param globals\n             * @param autoUpdateLoop\n             * @returns {*}\n             * @constructor\n             */\n            function OverlayScrollbarsInstance(pluginTargetElement, options, extensions, globals, autoUpdateLoop) {\n                //shortcuts\n                var type = COMPATIBILITY.type;\n                var inArray = FRAMEWORK.inArray;\n                var each = FRAMEWORK.each;\n\n                //make correct instanceof\n                var _base = new _plugin();\n                var _frameworkProto = FRAMEWORK[LEXICON.p];\n\n                //if passed element is no HTML element: skip and return\n                if (!isHTMLElement(pluginTargetElement))\n                    return;\n\n                //if passed element is already initialized: set passed options if there are any and return its instance\n                if (INSTANCES(pluginTargetElement)) {\n                    var inst = INSTANCES(pluginTargetElement);\n                    inst.options(options);\n                    return inst;\n                }\n\n                //globals:\n                var _nativeScrollbarIsOverlaid;\n                var _overlayScrollbarDummySize;\n                var _rtlScrollBehavior;\n                var _autoUpdateRecommended;\n                var _msieVersion;\n                var _nativeScrollbarStyling;\n                var _cssCalc;\n                var _nativeScrollbarSize;\n                var _supportTransition;\n                var _supportTransform;\n                var _supportPassiveEvents;\n                var _supportResizeObserver;\n                var _supportMutationObserver;\n                var _restrictedMeasuring;\n\n                //general readonly:\n                var _initialized;\n                var _destroyed;\n                var _isTextarea;\n                var _isBody;\n                var _documentMixed;\n                var _domExists;\n\n                //general:\n                var _isBorderBox;\n                var _sizeAutoObserverAdded;\n                var _paddingX;\n                var _paddingY;\n                var _borderX;\n                var _borderY;\n                var _marginX;\n                var _marginY;\n                var _isRTL;\n                var _sleeping;\n                var _contentBorderSize = {};\n                var _scrollHorizontalInfo = {};\n                var _scrollVerticalInfo = {};\n                var _viewportSize = {};\n                var _nativeScrollbarMinSize = {};\n\n                //naming:\t\n                var _strMinusHidden = '-hidden';\n                var _strMarginMinus = 'margin-';\n                var _strPaddingMinus = 'padding-';\n                var _strBorderMinus = 'border-';\n                var _strTop = 'top';\n                var _strRight = 'right';\n                var _strBottom = 'bottom';\n                var _strLeft = 'left';\n                var _strMinMinus = 'min-';\n                var _strMaxMinus = 'max-';\n                var _strWidth = 'width';\n                var _strHeight = 'height';\n                var _strFloat = 'float';\n                var _strEmpty = '';\n                var _strAuto = 'auto';\n                var _strSync = 'sync';\n                var _strScroll = 'scroll';\n                var _strHundredPercent = '100%';\n                var _strX = 'x';\n                var _strY = 'y';\n                var _strDot = '.';\n                var _strSpace = ' ';\n                var _strScrollbar = 'scrollbar';\n                var _strMinusHorizontal = '-horizontal';\n                var _strMinusVertical = '-vertical';\n                var _strScrollLeft = _strScroll + 'Left';\n                var _strScrollTop = _strScroll + 'Top';\n                var _strMouseTouchDownEvent = 'mousedown touchstart';\n                var _strMouseTouchUpEvent = 'mouseup touchend touchcancel';\n                var _strMouseTouchMoveEvent = 'mousemove touchmove';\n                var _strMouseEnter = 'mouseenter';\n                var _strMouseLeave = 'mouseleave';\n                var _strKeyDownEvent = 'keydown';\n                var _strKeyUpEvent = 'keyup';\n                var _strSelectStartEvent = 'selectstart';\n                var _strTransitionEndEvent = 'transitionend webkitTransitionEnd oTransitionEnd';\n                var _strResizeObserverProperty = '__overlayScrollbarsRO__';\n\n                //class names:\t\n                var _cassNamesPrefix = 'os-';\n                var _classNameHTMLElement = _cassNamesPrefix + 'html';\n                var _classNameHostElement = _cassNamesPrefix + 'host';\n                var _classNameHostElementForeign = _classNameHostElement + '-foreign';\n                var _classNameHostTextareaElement = _classNameHostElement + '-textarea';\n                var _classNameHostScrollbarHorizontalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusHorizontal + _strMinusHidden;\n                var _classNameHostScrollbarVerticalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusVertical + _strMinusHidden;\n                var _classNameHostTransition = _classNameHostElement + '-transition';\n                var _classNameHostRTL = _classNameHostElement + '-rtl';\n                var _classNameHostResizeDisabled = _classNameHostElement + '-resize-disabled';\n                var _classNameHostScrolling = _classNameHostElement + '-scrolling';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflowX = _classNameHostOverflow + '-x';\n                var _classNameHostOverflowY = _classNameHostOverflow + '-y';\n                var _classNameTextareaElement = _cassNamesPrefix + 'textarea';\n                var _classNameTextareaCoverElement = _classNameTextareaElement + '-cover';\n                var _classNamePaddingElement = _cassNamesPrefix + 'padding';\n                var _classNameViewportElement = _cassNamesPrefix + 'viewport';\n                var _classNameViewportNativeScrollbarsInvisible = _classNameViewportElement + '-native-scrollbars-invisible';\n                var _classNameViewportNativeScrollbarsOverlaid = _classNameViewportElement + '-native-scrollbars-overlaid';\n                var _classNameContentElement = _cassNamesPrefix + 'content';\n                var _classNameContentArrangeElement = _cassNamesPrefix + 'content-arrange';\n                var _classNameContentGlueElement = _cassNamesPrefix + 'content-glue';\n                var _classNameSizeAutoObserverElement = _cassNamesPrefix + 'size-auto-observer';\n                var _classNameResizeObserverElement = _cassNamesPrefix + 'resize-observer';\n                var _classNameResizeObserverItemElement = _cassNamesPrefix + 'resize-observer-item';\n                var _classNameResizeObserverItemFinalElement = _classNameResizeObserverItemElement + '-final';\n                var _classNameTextInherit = _cassNamesPrefix + 'text-inherit';\n                var _classNameScrollbar = _cassNamesPrefix + _strScrollbar;\n                var _classNameScrollbarTrack = _classNameScrollbar + '-track';\n                var _classNameScrollbarTrackOff = _classNameScrollbarTrack + '-off';\n                var _classNameScrollbarHandle = _classNameScrollbar + '-handle';\n                var _classNameScrollbarHandleOff = _classNameScrollbarHandle + '-off';\n                var _classNameScrollbarUnusable = _classNameScrollbar + '-unusable';\n                var _classNameScrollbarAutoHidden = _classNameScrollbar + '-' + _strAuto + _strMinusHidden;\n                var _classNameScrollbarCorner = _classNameScrollbar + '-corner';\n                var _classNameScrollbarCornerResize = _classNameScrollbarCorner + '-resize';\n                var _classNameScrollbarCornerResizeB = _classNameScrollbarCornerResize + '-both';\n                var _classNameScrollbarCornerResizeH = _classNameScrollbarCornerResize + _strMinusHorizontal;\n                var _classNameScrollbarCornerResizeV = _classNameScrollbarCornerResize + _strMinusVertical;\n                var _classNameScrollbarHorizontal = _classNameScrollbar + _strMinusHorizontal;\n                var _classNameScrollbarVertical = _classNameScrollbar + _strMinusVertical;\n                var _classNameDragging = _cassNamesPrefix + 'dragging';\n                var _classNameThemeNone = _cassNamesPrefix + 'theme-none';\n                var _classNamesDynamicDestroy = [\n                    _classNameViewportNativeScrollbarsInvisible,\n                    _classNameViewportNativeScrollbarsOverlaid,\n                    _classNameScrollbarTrackOff,\n                    _classNameScrollbarHandleOff,\n                    _classNameScrollbarUnusable,\n                    _classNameScrollbarAutoHidden,\n                    _classNameScrollbarCornerResize,\n                    _classNameScrollbarCornerResizeB,\n                    _classNameScrollbarCornerResizeH,\n                    _classNameScrollbarCornerResizeV,\n                    _classNameDragging].join(_strSpace);\n\n                //callbacks:\t\n                var _callbacksInitQeueue = [];\n\n                //attrs viewport shall inherit from target\t\n                var _viewportAttrsFromTarget = [LEXICON.ti];\n\n                //options:\t\n                var _defaultOptions;\n                var _currentOptions;\n                var _currentPreparedOptions;\n\n                //extensions:\t\n                var _extensions = {};\n                var _extensionsPrivateMethods = 'added removed on contract';\n\n                //update\t\n                var _lastUpdateTime;\n                var _swallowedUpdateHints = {};\n                var _swallowedUpdateTimeout;\n                var _swallowUpdateLag = 42;\n                var _updateOnLoadEventName = 'load';\n                var _updateOnLoadElms = [];\n\n                //DOM elements:\t\n                var _windowElement;\n                var _documentElement;\n                var _htmlElement;\n                var _bodyElement;\n                var _targetElement;                     //the target element of this OverlayScrollbars object\t\n                var _hostElement;                       //the host element of this OverlayScrollbars object -> may be the same as targetElement\t\n                var _sizeAutoObserverElement;           //observes size auto changes\t\n                var _sizeObserverElement;               //observes size and padding changes\t\n                var _paddingElement;                    //manages the padding\t\n                var _viewportElement;                   //is the viewport of our scrollbar model\t\n                var _contentElement;                    //the element which holds the content\t\n                var _contentArrangeElement;             //is needed for correct sizing of the content element (only if native scrollbars are overlays)\t\n                var _contentGlueElement;                //has always the size of the content element\t\n                var _textareaCoverElement;              //only applied if target is a textarea element. Used for correct size calculation and for prevention of uncontrolled scrolling\t\n                var _scrollbarCornerElement;\n                var _scrollbarHorizontalElement;\n                var _scrollbarHorizontalTrackElement;\n                var _scrollbarHorizontalHandleElement;\n                var _scrollbarVerticalElement;\n                var _scrollbarVerticalTrackElement;\n                var _scrollbarVerticalHandleElement;\n                var _windowElementNative;\n                var _documentElementNative;\n                var _targetElementNative;\n                var _hostElementNative;\n                var _sizeAutoObserverElementNative;\n                var _sizeObserverElementNative;\n                var _paddingElementNative;\n                var _viewportElementNative;\n                var _contentElementNative;\n\n                //Cache:\t\n                var _hostSizeCache;\n                var _contentScrollSizeCache;\n                var _arrangeContentSizeCache;\n                var _hasOverflowCache;\n                var _hideOverflowCache;\n                var _widthAutoCache;\n                var _heightAutoCache;\n                var _cssBoxSizingCache;\n                var _cssPaddingCache;\n                var _cssBorderCache;\n                var _cssMarginCache;\n                var _cssDirectionCache;\n                var _cssDirectionDetectedCache;\n                var _paddingAbsoluteCache;\n                var _clipAlwaysCache;\n                var _contentGlueSizeCache;\n                var _overflowBehaviorCache;\n                var _overflowAmountCache;\n                var _ignoreOverlayScrollbarHidingCache;\n                var _autoUpdateCache;\n                var _sizeAutoCapableCache;\n                var _contentElementScrollSizeChangeDetectedCache;\n                var _hostElementSizeChangeDetectedCache;\n                var _scrollbarsVisibilityCache;\n                var _scrollbarsAutoHideCache;\n                var _scrollbarsClickScrollingCache;\n                var _scrollbarsDragScrollingCache;\n                var _resizeCache;\n                var _normalizeRTLCache;\n                var _classNameCache;\n                var _oldClassName;\n                var _textareaAutoWrappingCache;\n                var _textareaInfoCache;\n                var _textareaSizeCache;\n                var _textareaDynHeightCache;\n                var _textareaDynWidthCache;\n                var _bodyMinSizeCache;\n                var _updateAutoCache = {};\n\n                //MutationObserver:\t\n                var _mutationObserverHost;\n                var _mutationObserverContent;\n                var _mutationObserverHostCallback;\n                var _mutationObserverContentCallback;\n                var _mutationObserversConnected;\n                var _mutationObserverAttrsTextarea = ['wrap', 'cols', 'rows'];\n                var _mutationObserverAttrsHost = [LEXICON.i, LEXICON.c, LEXICON.s, 'open'].concat(_viewportAttrsFromTarget);\n\n                //events:\t\n                var _destroyEvents = [];\n\n                //textarea:\t\n                var _textareaHasFocus;\n\n                //scrollbars:\t\n                var _scrollbarsAutoHideTimeoutId;\n                var _scrollbarsAutoHideMoveTimeoutId;\n                var _scrollbarsAutoHideDelay;\n                var _scrollbarsAutoHideNever;\n                var _scrollbarsAutoHideScroll;\n                var _scrollbarsAutoHideMove;\n                var _scrollbarsAutoHideLeave;\n                var _scrollbarsHandleHovered;\n                var _scrollbarsHandlesDefineScrollPos;\n\n                //resize\t\n                var _resizeNone;\n                var _resizeBoth;\n                var _resizeHorizontal;\n                var _resizeVertical;\n\n\n                //==== Event Listener ====//\t\n\n                /**\t\n                 * Adds or removes a event listener from the given element. \t\n                 * @param element The element to which the event listener shall be applied or removed.\t\n                 * @param eventNames The name(s) of the events.\t\n                 * @param listener The method which shall be called.\t\n                 * @param remove True if the handler shall be removed, false or undefined if the handler shall be added.\t\n                 * @param passiveOrOptions The options for the event.\n                 */\n                function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {\n                    var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);\n                    var method = remove ? 'removeEventListener' : 'addEventListener';\n                    var onOff = remove ? 'off' : 'on';\n                    var events = collected ? false : eventNames.split(_strSpace)\n                    var i = 0;\n\n                    var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);\n                    var passive = (_supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive) : passiveOrOptions)) || false;\n                    var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);\n                    var nativeParam = _supportPassiveEvents ? {\n                        passive: passive,\n                        capture: capture,\n                    } : capture;\n\n                    if (collected) {\n                        for (; i < eventNames[LEXICON.l]; i++)\n                            setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);\n                    }\n                    else {\n                        for (; i < events[LEXICON.l]; i++) {\n                            if(_supportPassiveEvents) {\n                                element[0][method](events[i], listener, nativeParam);\n                            }\n                            else {\n                                element[onOff](events[i], listener);\n                            }     \n                        }\n                    }\n                }\n\n\n                function addDestroyEventListener(element, eventNames, listener, passive) {\n                    setupResponsiveEventListener(element, eventNames, listener, false, passive);\n                    _destroyEvents.push(COMPATIBILITY.bind(setupResponsiveEventListener, 0, element, eventNames, listener, true, passive));\n                }\n\n                //==== Resize Observer ====//\n\n                /**\n                 * Adds or removes a resize observer from the given element.\n                 * @param targetElement The element to which the resize observer shall be added or removed.\n                 * @param onElementResizedCallback The callback which is fired every time the resize observer registers a size change or false / undefined if the resizeObserver shall be removed.\n                 */\n                function setupResizeObserver(targetElement, onElementResizedCallback) {\n                    if (targetElement) {\n                        var resizeObserver = COMPATIBILITY.rO();\n                        var strAnimationStartEvent = 'animationstart mozAnimationStart webkitAnimationStart MSAnimationStart';\n                        var strChildNodes = 'childNodes';\n                        var constScroll = 3333333;\n                        var callback = function () {\n                            targetElement[_strScrollTop](constScroll)[_strScrollLeft](_isRTL ? _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll : constScroll);\n                            onElementResizedCallback();\n                        };\n                        //add resize observer:\n                        if (onElementResizedCallback) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.addClass('observed').append(generateDiv(_classNameResizeObserverElement)).contents()[0];\n                                var observer = element[_strResizeObserverProperty] = new resizeObserver(callback);\n                                observer.observe(element);\n                            }\n                            else {\n                                if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                                    targetElement.prepend(\n                                        generateDiv(_classNameResizeObserverElement,\n                                            generateDiv({ c: _classNameResizeObserverItemElement, dir: 'ltr' },\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv(_classNameResizeObserverItemFinalElement)\n                                                ) +\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv({ c: _classNameResizeObserverItemFinalElement, style: 'width: 200%; height: 200%' })\n                                                )\n                                            )\n                                        )\n                                    );\n\n                                    var observerElement = targetElement[0][strChildNodes][0][strChildNodes][0];\n                                    var shrinkElement = FRAMEWORK(observerElement[strChildNodes][1]);\n                                    var expandElement = FRAMEWORK(observerElement[strChildNodes][0]);\n                                    var expandElementChild = FRAMEWORK(expandElement[0][strChildNodes][0]);\n                                    var widthCache = observerElement[LEXICON.oW];\n                                    var heightCache = observerElement[LEXICON.oH];\n                                    var isDirty;\n                                    var rAFId;\n                                    var currWidth;\n                                    var currHeight;\n                                    var factor = 2;\n                                    var nativeScrollbarSize = globals.nativeScrollbarSize; //care don't make changes to this object!!!\n                                    var reset = function () {\n                                        /*\n                                         var sizeResetWidth = observerElement[LEXICON.oW] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var sizeResetHeight = observerElement[LEXICON.oH] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var expandChildCSS = {};\n                                         expandChildCSS[_strWidth] = sizeResetWidth;\n                                         expandChildCSS[_strHeight] = sizeResetHeight;\n                                         expandElementChild.css(expandChildCSS);\n\n\n                                         expandElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         shrinkElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         */\n                                        expandElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                        shrinkElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                    };\n                                    var onResized = function () {\n                                        rAFId = 0;\n                                        if (!isDirty)\n                                            return;\n\n                                        widthCache = currWidth;\n                                        heightCache = currHeight;\n                                        callback();\n                                    };\n                                    var onScroll = function (event) {\n                                        currWidth = observerElement[LEXICON.oW];\n                                        currHeight = observerElement[LEXICON.oH];\n                                        isDirty = currWidth != widthCache || currHeight != heightCache;\n\n                                        if (event && isDirty && !rAFId) {\n                                            COMPATIBILITY.cAF()(rAFId);\n                                            rAFId = COMPATIBILITY.rAF()(onResized);\n                                        }\n                                        else if (!event)\n                                            onResized();\n\n                                        reset();\n                                        if (event) {\n                                            COMPATIBILITY.prvD(event);\n                                            COMPATIBILITY.stpP(event);\n                                        }\n                                        return false;\n                                    };\n                                    var expandChildCSS = {};\n                                    var observerElementCSS = {};\n\n                                    setTopRightBottomLeft(observerElementCSS, _strEmpty, [\n                                        -((nativeScrollbarSize.y + 1) * factor),\n                                        nativeScrollbarSize.x * -factor,\n                                        nativeScrollbarSize.y * -factor,\n                                        -((nativeScrollbarSize.x + 1) * factor)\n                                    ]);\n\n                                    FRAMEWORK(observerElement).css(observerElementCSS);\n                                    expandElement.on(_strScroll, onScroll);\n                                    shrinkElement.on(_strScroll, onScroll);\n                                    targetElement.on(strAnimationStartEvent, function () {\n                                        onScroll(false);\n                                    });\n                                    //lets assume that the divs will never be that large and a constant value is enough\n                                    expandChildCSS[_strWidth] = constScroll;\n                                    expandChildCSS[_strHeight] = constScroll;\n                                    expandElementChild.css(expandChildCSS);\n\n                                    reset();\n                                }\n                                else {\n                                    var attachEvent = _documentElementNative.attachEvent;\n                                    var isIE = _msieVersion !== undefined;\n                                    if (attachEvent) {\n                                        targetElement.prepend(generateDiv(_classNameResizeObserverElement));\n                                        findFirst(targetElement, _strDot + _classNameResizeObserverElement)[0].attachEvent('onresize', callback);\n                                    }\n                                    else {\n                                        var obj = _documentElementNative.createElement(TYPES.o);\n                                        obj.setAttribute(LEXICON.ti, '-1');\n                                        obj.setAttribute(LEXICON.c, _classNameResizeObserverElement);\n                                        obj.onload = function () {\n                                            var wnd = this.contentDocument.defaultView;\n                                            wnd.addEventListener('resize', callback);\n                                            wnd.document.documentElement.style.display = 'none';\n                                        };\n                                        obj.type = 'text/html';\n                                        if (isIE)\n                                            targetElement.prepend(obj);\n                                        obj.data = 'about:blank';\n                                        if (!isIE)\n                                            targetElement.prepend(obj);\n                                        targetElement.on(strAnimationStartEvent, callback);\n                                    }\n                                }\n                            }\n\n                            if (targetElement[0] === _sizeObserverElementNative) {\n                                var directionChanged = function () {\n                                    var dir = _hostElement.css('direction');\n                                    var css = {};\n                                    var scrollLeftValue = 0;\n                                    var result = false;\n                                    if (dir !== _cssDirectionDetectedCache) {\n                                        if (dir === 'ltr') {\n                                            css[_strLeft] = 0;\n                                            css[_strRight] = _strAuto;\n                                            scrollLeftValue = constScroll;\n                                        }\n                                        else {\n                                            css[_strLeft] = _strAuto;\n                                            css[_strRight] = 0;\n                                            scrollLeftValue = _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll;\n                                        }\n                                        //execution order is important for IE!!!\n                                        _sizeObserverElement.children().eq(0).css(css);\n                                        _sizeObserverElement[_strScrollLeft](scrollLeftValue)[_strScrollTop](constScroll);\n                                        _cssDirectionDetectedCache = dir;\n                                        result = true;\n                                    }\n                                    return result;\n                                };\n                                directionChanged();\n                                addDestroyEventListener(targetElement, _strScroll, function (event) {\n                                    if (directionChanged())\n                                        update();\n                                    COMPATIBILITY.prvD(event);\n                                    COMPATIBILITY.stpP(event);\n                                    return false;\n                                });\n                            }\n                        }\n                        //remove resize observer:\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                var resizeObserverObj = element[_strResizeObserverProperty];\n                                if (resizeObserverObj) {\n                                    resizeObserverObj.disconnect();\n                                    delete element[_strResizeObserverProperty];\n                                }\n                            }\n                            else {\n                                remove(targetElement.children(_strDot + _classNameResizeObserverElement).eq(0));\n                            }\n                        }\n                    }\n                }\n\n                /**\n                 * Freezes or unfreezes the given resize observer.\n                 * @param targetElement The element to which the target resize observer is applied.\n                 * @param freeze True if the resize observer shall be frozen, false otherwise.\n                 \n                function freezeResizeObserver(targetElement, freeze) {\n                    if (targetElement !== undefined) {\n                        if(freeze) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].unobserve(element);\n                            }\n                            else {\n                                targetElement = targetElement.children(_strDot + _classNameResizeObserverElement).eq(0);\n                                var w = targetElement.css(_strWidth);\n                                var h = targetElement.css(_strHeight);\n                                var css = {};\n                                css[_strWidth] = w;\n                                css[_strHeight] = h;\n                                targetElement.css(css);\n                            }\n                        }\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].observe(element);\n                            }\n                            else {\n                                var css = { };\n                                css[_strHeight] = _strEmpty;\n                                css[_strWidth] = _strEmpty;\n                                targetElement.children(_strDot + _classNameResizeObserverElement).eq(0).css(css);\n                            }\n                        }\n                    }\n                }\n                */\n\n\n                //==== Mutation Observers ====//\n\n                /**\n                 * Creates MutationObservers for the host and content Element if they are supported.\n                 */\n                function createMutationObservers() {\n                    if (_supportMutationObserver) {\n                        var mutationObserverContentLag = 11;\n                        var mutationObserver = COMPATIBILITY.mO();\n                        var contentLastUpdate = COMPATIBILITY.now();\n                        var mutationTarget;\n                        var mutationAttrName;\n                        var mutationIsClass;\n                        var oldMutationVal;\n                        var newClassVal;\n                        var hostClassNameRegex;\n                        var contentTimeout;\n                        var now;\n                        var sizeAuto;\n                        var action;\n\n                        _mutationObserverHostCallback = function (mutations) {\n\n                            var doUpdate = false;\n                            var doUpdateForce = false;\n                            var mutation;\n                            var mutatedAttrs = [];\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    mutationTarget = mutation.target;\n                                    mutationAttrName = mutation.attributeName;\n                                    mutationIsClass = mutationAttrName === LEXICON.c;\n                                    oldMutationVal = mutation.oldValue;\n                                    newClassVal = mutationTarget.className;\n\n                                    if (_domExists && mutationIsClass && !doUpdateForce) {\n                                        // if old class value contains _classNameHostElementForeign and new class value doesn't\n                                        if (oldMutationVal.indexOf(_classNameHostElementForeign) > -1 && newClassVal.indexOf(_classNameHostElementForeign) < 0) {\n                                            hostClassNameRegex = createHostClassNameRegExp(true);\n                                            _hostElementNative.className = newClassVal.split(_strSpace).concat(oldMutationVal.split(_strSpace).filter(function (name) {\n                                                return name.match(hostClassNameRegex);\n                                            })).join(_strSpace);\n                                            doUpdate = doUpdateForce = true;\n                                        }\n                                    }\n\n                                    if (!doUpdate) {\n                                        doUpdate = mutationIsClass\n                                            ? hostClassNamesChanged(oldMutationVal, newClassVal)\n                                            : mutationAttrName === LEXICON.s\n                                                ? oldMutationVal !== mutationTarget[LEXICON.s].cssText\n                                                : true;\n                                    }\n\n                                    mutatedAttrs.push(mutationAttrName);\n                                });\n\n                                updateViewportAttrsFromTarget(mutatedAttrs);\n\n                                if (doUpdate)\n                                    _base.update(doUpdateForce || _strAuto);\n                            }\n                            return doUpdate;\n                        };\n                        _mutationObserverContentCallback = function (mutations) {\n                            var doUpdate = false;\n                            var mutation;\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    doUpdate = isUnknownMutation(mutation);\n                                    return !doUpdate;\n                                });\n\n                                if (doUpdate) {\n                                    now = COMPATIBILITY.now();\n                                    sizeAuto = (_heightAutoCache || _widthAutoCache);\n                                    action = function () {\n                                        if (!_destroyed) {\n                                            contentLastUpdate = now;\n\n                                            //if cols, rows or wrap attr was changed\n                                            if (_isTextarea)\n                                                textareaUpdate();\n\n                                            if (sizeAuto)\n                                                update();\n                                            else\n                                                _base.update(_strAuto);\n                                        }\n                                    };\n                                    clearTimeout(contentTimeout);\n                                    if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)\n                                        action();\n                                    else\n                                        contentTimeout = setTimeout(action, mutationObserverContentLag);\n                                }\n                            }\n                            return doUpdate;\n                        }\n\n                        _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);\n                        _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);\n                    }\n                }\n\n                /**\n                 * Connects the MutationObservers if they are supported.\n                 */\n                function connectMutationObservers() {\n                    if (_supportMutationObserver && !_mutationObserversConnected) {\n                        _mutationObserverHost.observe(_hostElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            attributeFilter: _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserverContent.observe(_isTextarea ? _targetElementNative : _contentElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            subtree: !_isTextarea,\n                            childList: !_isTextarea,\n                            characterData: !_isTextarea,\n                            attributeFilter: _isTextarea ? _mutationObserverAttrsTextarea : _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserversConnected = true;\n                    }\n                }\n\n                /**\n                 * Disconnects the MutationObservers if they are supported.\n                 */\n                function disconnectMutationObservers() {\n                    if (_supportMutationObserver && _mutationObserversConnected) {\n                        _mutationObserverHost.disconnect();\n                        _mutationObserverContent.disconnect();\n\n                        _mutationObserversConnected = false;\n                    }\n                }\n\n\n                //==== Events of elements ====//\n\n                /**\n                 * This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!\n                 * It refreshes the hostResizedEventArgs and the hostSizeResizeCache.\n                 * If there are any size changes, the update method gets called.\n                 */\n                function hostOnResized() {\n                    if (!_sleeping) {\n                        var changed;\n                        var hostSize = {\n                            w: _sizeObserverElementNative[LEXICON.sW],\n                            h: _sizeObserverElementNative[LEXICON.sH]\n                        };\n\n                        changed = checkCache(hostSize, _hostElementSizeChangeDetectedCache);\n                        _hostElementSizeChangeDetectedCache = hostSize;\n                        if (changed)\n                            update({ _hostSizeChanged: true });\n                    }\n                }\n\n                /**\n                 * The mouse enter event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseEnter() {\n                    if (_scrollbarsAutoHideLeave)\n                        refreshScrollbarsAutoHide(true);\n                }\n\n                /**\n                 * The mouse leave event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseLeave() {\n                    if (_scrollbarsAutoHideLeave && !_bodyElement.hasClass(_classNameDragging))\n                        refreshScrollbarsAutoHide(false);\n                }\n\n                /**\n                 * The mouse move event of the host element. This event is only needed for the autoHide \"move\" feature.\n                 */\n                function hostOnMouseMove() {\n                    if (_scrollbarsAutoHideMove) {\n                        refreshScrollbarsAutoHide(true);\n                        clearTimeout(_scrollbarsAutoHideMoveTimeoutId);\n                        _scrollbarsAutoHideMoveTimeoutId = setTimeout(function () {\n                            if (_scrollbarsAutoHideMove && !_destroyed)\n                                refreshScrollbarsAutoHide(false);\n                        }, 100);\n                    }\n                }\n\n                /**\n                 * Prevents text from deselection if attached to the document element on the mousedown event of a DOM element.\n                 * @param event The select start event.\n                 */\n                function documentOnSelectStart(event) {\n                    COMPATIBILITY.prvD(event);\n                    return false;\n                }\n\n                /**\t\n                 * A callback which will be called after a element has loaded.\t\n                 */\n                function updateOnLoadCallback(event) {\n                    var elm = FRAMEWORK(event.target);\n\n                    eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                        if (elm.is(updateOnLoadSelector)) {\n                            update({ _contentSizeChanged: true });\n                        }\n                    });\n                }\n\n                /**\n                * Adds or removes mouse & touch events of the host element. (for handling auto-hiding of the scrollbars)\n                * @param destroy Indicates whether the events shall be added or removed.\n                */\n                function setupHostMouseTouchEvents(destroy) {\n                    if (!destroy)\n                        setupHostMouseTouchEvents(true);\n\n                    setupResponsiveEventListener(_hostElement,\n                        _strMouseTouchMoveEvent.split(_strSpace)[0],\n                        hostOnMouseMove,\n                        (!_scrollbarsAutoHideMove || destroy), true);\n                    setupResponsiveEventListener(_hostElement,\n                        [_strMouseEnter, _strMouseLeave],\n                        [hostOnMouseEnter, hostOnMouseLeave],\n                        (!_scrollbarsAutoHideLeave || destroy), true);\n\n                    //if the plugin is initialized and the mouse is over the host element, make the scrollbars visible\n                    if (!_initialized && !destroy)\n                        _hostElement.one('mouseover', hostOnMouseEnter);\n                }\n\n\n                //==== Update Detection ====//\n\n                /**\n                 * Measures the min width and min height of the body element and refreshes the related cache.\n                 * @returns {boolean} True if the min width or min height has changed, false otherwise.\n                 */\n                function bodyMinSizeChanged() {\n                    var bodyMinSize = {};\n                    if (_isBody && _contentArrangeElement) {\n                        bodyMinSize.w = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strWidth));\n                        bodyMinSize.h = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strHeight));\n                        bodyMinSize.c = checkCache(bodyMinSize, _bodyMinSizeCache);\n                        bodyMinSize.f = true; //flag for \"measured at least once\"\n                    }\n                    _bodyMinSizeCache = bodyMinSize;\n                    return !!bodyMinSize.c;\n                }\n\n                /**\n                 * Returns true if the class names really changed (new class without plugin host prefix)\n                 * @param oldClassNames The old ClassName string or array.\n                 * @param newClassNames The new ClassName string or array.\n                 * @returns {boolean} True if the class names has really changed, false otherwise.\n                 */\n                function hostClassNamesChanged(oldClassNames, newClassNames) {\n                    var currClasses = typeof newClassNames == TYPES.s ? newClassNames.split(_strSpace) : [];\n                    var oldClasses = typeof oldClassNames == TYPES.s ? oldClassNames.split(_strSpace) : [];\n                    var diff = getArrayDifferences(oldClasses, currClasses);\n\n                    // remove none theme from diff list to prevent update\n                    var idx = inArray(_classNameThemeNone, diff);\n                    var i;\n                    var regex;\n\n                    if (idx > -1)\n                        diff.splice(idx, 1);\n\n                    if (diff[LEXICON.l] > 0) {\n                        regex = createHostClassNameRegExp(true, true);\n                        for (i = 0; i < diff.length; i++) {\n                            if (!diff[i].match(regex)) {\n                                return true;\n                            }\n                        }\n                    }\n                    return false;\n                }\n\n                /**\n                 * Returns true if the given mutation is not from a from the plugin generated element. If the target element is a textarea the mutation is always unknown.\n                 * @param mutation The mutation which shall be checked.\n                 * @returns {boolean} True if the mutation is from a unknown element, false otherwise.\n                 */\n                function isUnknownMutation(mutation) {\n                    var attributeName = mutation.attributeName;\n                    var mutationTarget = mutation.target;\n                    var mutationType = mutation.type;\n                    var strClosest = 'closest';\n\n                    if (mutationTarget === _contentElementNative)\n                        return attributeName === null;\n                    if (mutationType === 'attributes' && (attributeName === LEXICON.c || attributeName === LEXICON.s) && !_isTextarea) {\n                        //ignore className changes by the plugin\t\n                        if (attributeName === LEXICON.c && FRAMEWORK(mutationTarget).hasClass(_classNameHostElement))\n                            return hostClassNamesChanged(mutation.oldValue, mutationTarget.className);\n\n                        //only do it of browser support it natively\t\n                        if (typeof mutationTarget[strClosest] != TYPES.f)\n                            return true;\n                        if (mutationTarget[strClosest](_strDot + _classNameResizeObserverElement) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbar) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbarCorner) !== null)\n                            return false;\n                    }\n                    return true;\n                }\n\n                /**\n                 * Returns true if the content size was changed since the last time this method was called.\n                 * @returns {boolean} True if the content size was changed, false otherwise.\n                 */\n                function updateAutoContentSizeChanged() {\n                    if (_sleeping)\n                        return false;\n\n                    var contentMeasureElement = getContentMeasureElement();\n                    var textareaValueLength = _isTextarea && _widthAutoCache && !_textareaAutoWrappingCache ? _targetElement.val().length : 0;\n                    var setCSS = !_mutationObserversConnected && _widthAutoCache && !_isTextarea;\n                    var css = {};\n                    var float;\n                    var bodyMinSizeC;\n                    var changed;\n                    var contentElementScrollSize;\n\n                    if (setCSS) {\n                        float = _contentElement.css(_strFloat);\n                        css[_strFloat] = _isRTL ? _strRight : _strLeft;\n                        css[_strWidth] = _strAuto;\n                        _contentElement.css(css);\n                    }\n                    contentElementScrollSize = {\n                        w: contentMeasureElement[LEXICON.sW] + textareaValueLength,\n                        h: contentMeasureElement[LEXICON.sH] + textareaValueLength\n                    };\n                    if (setCSS) {\n                        css[_strFloat] = float;\n                        css[_strWidth] = _strHundredPercent;\n                        _contentElement.css(css);\n                    }\n\n                    bodyMinSizeC = bodyMinSizeChanged();\n                    changed = checkCache(contentElementScrollSize, _contentElementScrollSizeChangeDetectedCache);\n\n                    _contentElementScrollSizeChangeDetectedCache = contentElementScrollSize;\n\n                    return changed || bodyMinSizeC;\n                }\n\n                /**\n                 * Returns true when a attribute which the MutationObserver would observe has changed.  \n                 * @returns {boolean} True if one of the attributes which a MutationObserver would observe has changed, false or undefined otherwise.\n                 */\n                function meaningfulAttrsChanged() {\n                    if (_sleeping || _mutationObserversConnected)\n                        return;\n\n                    var elem;\n                    var curr;\n                    var cache;\n                    var changedAttrs = [];\n                    var checks = [\n                        {\n                            _elem: _hostElement,\n                            _attrs: _mutationObserverAttrsHost.concat(':visible')\n                        },\n                        {\n                            _elem: _isTextarea ? _targetElement : undefined,\n                            _attrs: _mutationObserverAttrsTextarea\n                        }\n                    ];\n\n                    each(checks, function (index, check) {\n                        elem = check._elem;\n                        if (elem) {\n                            each(check._attrs, function (index, attr) {\n                                curr = attr.charAt(0) === ':' ? elem.is(attr) : elem.attr(attr);\n                                cache = _updateAutoCache[attr];\n\n                                if (checkCache(curr, cache)) {\n                                    changedAttrs.push(attr);\n                                }\n\n                                _updateAutoCache[attr] = curr;\n                            });\n                        }\n                    });\n\n                    updateViewportAttrsFromTarget(changedAttrs);\n\n                    return changedAttrs[LEXICON.l] > 0;\n                }\n\n                /**\n                 * Checks is a CSS Property of a child element is affecting the scroll size of the content.\n                 * @param propertyName The CSS property name.\n                 * @returns {boolean} True if the property is affecting the content scroll size, false otherwise.\n                 */\n                function isSizeAffectingCSSProperty(propertyName) {\n                    if (!_initialized)\n                        return true;\n                    var flexGrow = 'flex-grow';\n                    var flexShrink = 'flex-shrink';\n                    var flexBasis = 'flex-basis';\n                    var affectingPropsX = [\n                        _strWidth,\n                        _strMinMinus + _strWidth,\n                        _strMaxMinus + _strWidth,\n                        _strMarginMinus + _strLeft,\n                        _strMarginMinus + _strRight,\n                        _strLeft,\n                        _strRight,\n                        'font-weight',\n                        'word-spacing',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsXContentBox = [\n                        _strPaddingMinus + _strLeft,\n                        _strPaddingMinus + _strRight,\n                        _strBorderMinus + _strLeft + _strWidth,\n                        _strBorderMinus + _strRight + _strWidth\n                    ];\n                    var affectingPropsY = [\n                        _strHeight,\n                        _strMinMinus + _strHeight,\n                        _strMaxMinus + _strHeight,\n                        _strMarginMinus + _strTop,\n                        _strMarginMinus + _strBottom,\n                        _strTop,\n                        _strBottom,\n                        'line-height',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsYContentBox = [\n                        _strPaddingMinus + _strTop,\n                        _strPaddingMinus + _strBottom,\n                        _strBorderMinus + _strTop + _strWidth,\n                        _strBorderMinus + _strBottom + _strWidth\n                    ];\n                    var _strS = 's';\n                    var _strVS = 'v-s';\n                    var checkX = _overflowBehaviorCache.x === _strS || _overflowBehaviorCache.x === _strVS;\n                    var checkY = _overflowBehaviorCache.y === _strS || _overflowBehaviorCache.y === _strVS;\n                    var sizeIsAffected = false;\n                    var checkPropertyName = function (arr, name) {\n                        for (var i = 0; i < arr[LEXICON.l]; i++) {\n                            if (arr[i] === name)\n                                return true;\n                        }\n                        return false;\n                    };\n\n                    if (checkY) {\n                        sizeIsAffected = checkPropertyName(affectingPropsY, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsYContentBox, propertyName);\n                    }\n                    if (checkX && !sizeIsAffected) {\n                        sizeIsAffected = checkPropertyName(affectingPropsX, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsXContentBox, propertyName);\n                    }\n                    return sizeIsAffected;\n                }\n\n\n                //==== Update ====//\n\n                /**\n                 * Sets the attribute values of the viewport element to the values from the target element.\n                 * The value of a attribute is only set if the attribute is whitelisted.\n                 * @attrs attrs The array of attributes which shall be set or undefined if all whitelisted shall be set.\n                 */\n                function updateViewportAttrsFromTarget(attrs) {\n                    attrs = attrs || _viewportAttrsFromTarget;\n                    each(attrs, function (index, attr) {\n                        if (COMPATIBILITY.inA(attr, _viewportAttrsFromTarget) > -1) {\n                            var targetAttr = _targetElement.attr(attr);\n                            if (type(targetAttr) == TYPES.s) {\n                                _viewportElement.attr(attr, targetAttr);\n                            }\n                            else {\n                                _viewportElement.removeAttr(attr);\n                            }\n                        }\n                    });\n                }\n\n                /**\n                 * Updates the variables and size of the textarea element, and manages the scroll on new line or new character.\n                 */\n                function textareaUpdate() {\n                    if (!_sleeping) {\n                        var wrapAttrOff = !_textareaAutoWrappingCache;\n                        var minWidth = _viewportSize.w;\n                        var minHeight = _viewportSize.h;\n                        var css = {};\n                        var doMeasure = _widthAutoCache || wrapAttrOff;\n                        var origWidth;\n                        var width;\n                        var origHeight;\n                        var height;\n\n                        //reset min size\n                        css[_strMinMinus + _strWidth] = _strEmpty;\n                        css[_strMinMinus + _strHeight] = _strEmpty;\n\n                        //set width auto\n                        css[_strWidth] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure width\n                        origWidth = _targetElementNative[LEXICON.oW];\n                        width = doMeasure ? MATH.max(origWidth, _targetElementNative[LEXICON.sW] - 1) : 1;\n                        /*width += (_widthAutoCache ? _marginX + (!_isBorderBox ? wrapAttrOff ? 0 : _paddingX + _borderX : 0) : 0);*/\n\n                        //set measured width\n                        css[_strWidth] = _widthAutoCache ? _strAuto /*width*/ : _strHundredPercent;\n                        css[_strMinMinus + _strWidth] = _strHundredPercent;\n\n                        //set height auto\n                        css[_strHeight] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure height\n                        origHeight = _targetElementNative[LEXICON.oH];\n                        height = MATH.max(origHeight, _targetElementNative[LEXICON.sH] - 1);\n\n                        //append correct size values\n                        css[_strWidth] = width;\n                        css[_strHeight] = height;\n                        _textareaCoverElement.css(css);\n\n                        //apply min width / min height to prevent textarea collapsing\n                        css[_strMinMinus + _strWidth] = minWidth /*+ (!_isBorderBox && _widthAutoCache ? _paddingX + _borderX : 0)*/;\n                        css[_strMinMinus + _strHeight] = minHeight /*+ (!_isBorderBox && _heightAutoCache ? _paddingY + _borderY : 0)*/;\n                        _targetElement.css(css);\n\n                        return {\n                            _originalWidth: origWidth,\n                            _originalHeight: origHeight,\n                            _dynamicWidth: width,\n                            _dynamicHeight: height\n                        };\n                    }\n                }\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param updateHints A objects which contains hints for this update:\n                 * {\n                 *   _hostSizeChanged : boolean,\n                 *   _contentSizeChanged : boolean,\n                 *   _force : boolean,                             == preventSwallowing\n                 *   _changedOptions : { },                        == preventSwallowing && preventSleep\n                *  }\n                 */\n                function update(updateHints) {\n                    clearTimeout(_swallowedUpdateTimeout);\n                    updateHints = updateHints || {};\n                    _swallowedUpdateHints._hostSizeChanged |= updateHints._hostSizeChanged;\n                    _swallowedUpdateHints._contentSizeChanged |= updateHints._contentSizeChanged;\n                    _swallowedUpdateHints._force |= updateHints._force;\n\n                    var now = COMPATIBILITY.now();\n                    var hostSizeChanged = !!_swallowedUpdateHints._hostSizeChanged;\n                    var contentSizeChanged = !!_swallowedUpdateHints._contentSizeChanged;\n                    var force = !!_swallowedUpdateHints._force;\n                    var changedOptions = updateHints._changedOptions;\n                    var swallow = _swallowUpdateLag > 0 && _initialized && !_destroyed && !force && !changedOptions && (now - _lastUpdateTime) < _swallowUpdateLag && (!_heightAutoCache && !_widthAutoCache);\n                    var displayIsHidden;\n\n                    if (swallow)\n                        _swallowedUpdateTimeout = setTimeout(update, _swallowUpdateLag);\n\n                    //abort update due to:\n                    //destroyed\n                    //swallowing\n                    //sleeping\n                    //host is hidden or has false display\n                    if (_destroyed || swallow || (_sleeping && !changedOptions) || (_initialized && !force && (displayIsHidden = _hostElement.is(':hidden'))) || _hostElement.css('display') === 'inline')\n                        return;\n\n                    _lastUpdateTime = now;\n                    _swallowedUpdateHints = {};\n\n                    //if scrollbar styling is possible and native scrollbars aren't overlaid the scrollbar styling will be applied which hides the native scrollbars completely.\n                    if (_nativeScrollbarStyling && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                        //native scrollbars are hidden, so change the values to zero\n                        _nativeScrollbarSize.x = 0;\n                        _nativeScrollbarSize.y = 0;\n                    }\n                    else {\n                        //refresh native scrollbar size (in case of zoom)\n                        _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    }\n\n                    // Scrollbar padding is needed for firefox, because firefox hides scrollbar automatically if the size of the div is too small.\n                    // The calculation: [scrollbar size +3 *3]\n                    // (+3 because of possible decoration e.g. borders, margins etc., but only if native scrollbar is NOT a overlaid scrollbar)\n                    // (*3 because (1)increase / (2)decrease -button and (3)resize handle)\n                    _nativeScrollbarMinSize = {\n                        x: (_nativeScrollbarSize.x + (_nativeScrollbarIsOverlaid.x ? 0 : 3)) * 3,\n                        y: (_nativeScrollbarSize.y + (_nativeScrollbarIsOverlaid.y ? 0 : 3)) * 3\n                    };\n\n                    changedOptions = changedOptions || {};\n                    //freezeResizeObserver(_sizeObserverElement, true);\n                    //freezeResizeObserver(_sizeAutoObserverElement, true);\n\n                    var checkCacheAutoForce = function () {\n                        return checkCache.apply(this, [].slice.call(arguments).concat([force]));\n                    };\n\n                    //save current scroll offset\n                    var currScroll = {\n                        x: _viewportElement[_strScrollLeft](),\n                        y: _viewportElement[_strScrollTop]()\n                    };\n\n                    var currentPreparedOptionsScrollbars = _currentPreparedOptions.scrollbars;\n                    var currentPreparedOptionsTextarea = _currentPreparedOptions.textarea;\n\n                    //scrollbars visibility:\n                    var scrollbarsVisibility = currentPreparedOptionsScrollbars.visibility;\n                    var scrollbarsVisibilityChanged = checkCacheAutoForce(scrollbarsVisibility, _scrollbarsVisibilityCache);\n\n                    //scrollbars autoHide:\n                    var scrollbarsAutoHide = currentPreparedOptionsScrollbars.autoHide;\n                    var scrollbarsAutoHideChanged = checkCacheAutoForce(scrollbarsAutoHide, _scrollbarsAutoHideCache);\n\n                    //scrollbars click scrolling\n                    var scrollbarsClickScrolling = currentPreparedOptionsScrollbars.clickScrolling;\n                    var scrollbarsClickScrollingChanged = checkCacheAutoForce(scrollbarsClickScrolling, _scrollbarsClickScrollingCache);\n\n                    //scrollbars drag scrolling\n                    var scrollbarsDragScrolling = currentPreparedOptionsScrollbars.dragScrolling;\n                    var scrollbarsDragScrollingChanged = checkCacheAutoForce(scrollbarsDragScrolling, _scrollbarsDragScrollingCache);\n\n                    //className\n                    var className = _currentPreparedOptions.className;\n                    var classNameChanged = checkCacheAutoForce(className, _classNameCache);\n\n                    //resize\n                    var resize = _currentPreparedOptions.resize;\n                    var resizeChanged = checkCacheAutoForce(resize, _resizeCache) && !_isBody; //body can't be resized since the window itself acts as resize possibility.\n\n                    //paddingAbsolute\n                    var paddingAbsolute = _currentPreparedOptions.paddingAbsolute;\n                    var paddingAbsoluteChanged = checkCacheAutoForce(paddingAbsolute, _paddingAbsoluteCache);\n\n                    //clipAlways\n                    var clipAlways = _currentPreparedOptions.clipAlways;\n                    var clipAlwaysChanged = checkCacheAutoForce(clipAlways, _clipAlwaysCache);\n\n                    //sizeAutoCapable\n                    var sizeAutoCapable = _currentPreparedOptions.sizeAutoCapable && !_isBody; //body can never be size auto, because it shall be always as big as the viewport.\n                    var sizeAutoCapableChanged = checkCacheAutoForce(sizeAutoCapable, _sizeAutoCapableCache);\n\n                    //showNativeScrollbars\n                    var ignoreOverlayScrollbarHiding = _currentPreparedOptions.nativeScrollbarsOverlaid.showNativeScrollbars;\n                    var ignoreOverlayScrollbarHidingChanged = checkCacheAutoForce(ignoreOverlayScrollbarHiding, _ignoreOverlayScrollbarHidingCache);\n\n                    //autoUpdate\n                    var autoUpdate = _currentPreparedOptions.autoUpdate;\n                    var autoUpdateChanged = checkCacheAutoForce(autoUpdate, _autoUpdateCache);\n\n                    //overflowBehavior\n                    var overflowBehavior = _currentPreparedOptions.overflowBehavior;\n                    var overflowBehaviorChanged = checkCacheAutoForce(overflowBehavior, _overflowBehaviorCache, force);\n\n                    //dynWidth:\n                    var textareaDynWidth = currentPreparedOptionsTextarea.dynWidth;\n                    var textareaDynWidthChanged = checkCacheAutoForce(_textareaDynWidthCache, textareaDynWidth);\n\n                    //dynHeight:\n                    var textareaDynHeight = currentPreparedOptionsTextarea.dynHeight;\n                    var textareaDynHeightChanged = checkCacheAutoForce(_textareaDynHeightCache, textareaDynHeight);\n\n                    //scrollbars visibility\n                    _scrollbarsAutoHideNever = scrollbarsAutoHide === 'n';\n                    _scrollbarsAutoHideScroll = scrollbarsAutoHide === 's';\n                    _scrollbarsAutoHideMove = scrollbarsAutoHide === 'm';\n                    _scrollbarsAutoHideLeave = scrollbarsAutoHide === 'l';\n\n                    //scrollbars autoHideDelay\n                    _scrollbarsAutoHideDelay = currentPreparedOptionsScrollbars.autoHideDelay;\n\n                    //old className\n                    _oldClassName = _classNameCache;\n\n                    //resize\n                    _resizeNone = resize === 'n';\n                    _resizeBoth = resize === 'b';\n                    _resizeHorizontal = resize === 'h';\n                    _resizeVertical = resize === 'v';\n\n                    //normalizeRTL\n                    _normalizeRTLCache = _currentPreparedOptions.normalizeRTL;\n\n                    //ignore overlay scrollbar hiding\n                    ignoreOverlayScrollbarHiding = ignoreOverlayScrollbarHiding && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y);\n\n                    //refresh options cache\n                    _scrollbarsVisibilityCache = scrollbarsVisibility;\n                    _scrollbarsAutoHideCache = scrollbarsAutoHide;\n                    _scrollbarsClickScrollingCache = scrollbarsClickScrolling;\n                    _scrollbarsDragScrollingCache = scrollbarsDragScrolling;\n                    _classNameCache = className;\n                    _resizeCache = resize;\n                    _paddingAbsoluteCache = paddingAbsolute;\n                    _clipAlwaysCache = clipAlways;\n                    _sizeAutoCapableCache = sizeAutoCapable;\n                    _ignoreOverlayScrollbarHidingCache = ignoreOverlayScrollbarHiding;\n                    _autoUpdateCache = autoUpdate;\n                    _overflowBehaviorCache = extendDeep({}, overflowBehavior);\n                    _textareaDynWidthCache = textareaDynWidth;\n                    _textareaDynHeightCache = textareaDynHeight;\n                    _hasOverflowCache = _hasOverflowCache || { x: false, y: false };\n\n                    //set correct class name to the host element\n                    if (classNameChanged) {\n                        removeClass(_hostElement, _oldClassName + _strSpace + _classNameThemeNone);\n                        addClass(_hostElement, className !== undefined && className !== null && className.length > 0 ? className : _classNameThemeNone);\n                    }\n\n                    //set correct auto Update\n                    if (autoUpdateChanged) {\n                        if (autoUpdate === true || (autoUpdate === null && _autoUpdateRecommended)) {\n                            disconnectMutationObservers();\n                            autoUpdateLoop.add(_base);\n                        }\n                        else {\n                            autoUpdateLoop.remove(_base);\n                            connectMutationObservers();\n                        }\n                    }\n\n                    //activate or deactivate size auto capability\n                    if (sizeAutoCapableChanged) {\n                        if (sizeAutoCapable) {\n                            if (_contentGlueElement) {\n                                _contentGlueElement.show();\n                            }\n                            else {\n                                _contentGlueElement = FRAMEWORK(generateDiv(_classNameContentGlueElement));\n                                _paddingElement.before(_contentGlueElement);\n                            }\n                            if (_sizeAutoObserverAdded) {\n                                _sizeAutoObserverElement.show();\n                            }\n                            else {\n                                _sizeAutoObserverElement = FRAMEWORK(generateDiv(_classNameSizeAutoObserverElement));\n                                _sizeAutoObserverElementNative = _sizeAutoObserverElement[0];\n\n                                _contentGlueElement.before(_sizeAutoObserverElement);\n                                var oldSize = { w: -1, h: -1 };\n                                setupResizeObserver(_sizeAutoObserverElement, function () {\n                                    var newSize = {\n                                        w: _sizeAutoObserverElementNative[LEXICON.oW],\n                                        h: _sizeAutoObserverElementNative[LEXICON.oH]\n                                    };\n                                    if (checkCache(newSize, oldSize)) {\n                                        if (_initialized && (_heightAutoCache && newSize.h > 0) || (_widthAutoCache && newSize.w > 0)) {\n                                            update();\n                                        }\n                                        else if (_initialized && (!_heightAutoCache && newSize.h === 0) || (!_widthAutoCache && newSize.w === 0)) {\n                                            update();\n                                        }\n                                    }\n                                    oldSize = newSize;\n                                });\n                                _sizeAutoObserverAdded = true;\n                                //fix heightAuto detector bug if height is fixed but contentHeight is 0.\n                                //the probability this bug will ever happen is very very low, thats why its ok if we use calc which isn't supported in IE8.\n                                if (_cssCalc !== null)\n                                    _sizeAutoObserverElement.css(_strHeight, _cssCalc + '(100% + 1px)');\n                            }\n                        }\n                        else {\n                            if (_sizeAutoObserverAdded)\n                                _sizeAutoObserverElement.hide();\n                            if (_contentGlueElement)\n                                _contentGlueElement.hide();\n                        }\n                    }\n\n                    //if force, update all resizeObservers too\n                    if (force) {\n                        _sizeObserverElement.find('*').trigger(_strScroll);\n                        if (_sizeAutoObserverAdded)\n                            _sizeAutoObserverElement.find('*').trigger(_strScroll);\n                    }\n\n                    //display hidden:\n                    displayIsHidden = displayIsHidden === undefined ? _hostElement.is(':hidden') : displayIsHidden;\n\n                    //textarea AutoWrapping:\n                    var textareaAutoWrapping = _isTextarea ? _targetElement.attr('wrap') !== 'off' : false;\n                    var textareaAutoWrappingChanged = checkCacheAutoForce(textareaAutoWrapping, _textareaAutoWrappingCache);\n\n                    //detect direction:\n                    var cssDirection = _hostElement.css('direction');\n                    var cssDirectionChanged = checkCacheAutoForce(cssDirection, _cssDirectionCache);\n\n                    //detect box-sizing:\n                    var boxSizing = _hostElement.css('box-sizing');\n                    var boxSizingChanged = checkCacheAutoForce(boxSizing, _cssBoxSizingCache);\n\n                    //detect padding:\n                    var padding = getTopRightBottomLeftHost(_strPaddingMinus);\n\n                    //width + height auto detecting var:\n                    var sizeAutoObserverElementBCRect;\n                    //exception occurs in IE8 sometimes (unknown exception)\n                    try {\n                        sizeAutoObserverElementBCRect = _sizeAutoObserverAdded ? _sizeAutoObserverElementNative[LEXICON.bCR]() : null;\n                    } catch (ex) {\n                        return;\n                    }\n\n                    _isRTL = cssDirection === 'rtl';\n                    _isBorderBox = (boxSizing === 'border-box');\n                    var isRTLLeft = _isRTL ? _strLeft : _strRight;\n                    var isRTLRight = _isRTL ? _strRight : _strLeft;\n\n                    //detect width auto:\n                    var widthAutoResizeDetection = false;\n                    var widthAutoObserverDetection = (_sizeAutoObserverAdded && (_hostElement.css(_strFloat) !== 'none' /*|| _isTextarea */)) ? (MATH.round(sizeAutoObserverElementBCRect.right - sizeAutoObserverElementBCRect.left) === 0) && (!paddingAbsolute ? (_hostElementNative[LEXICON.cW] - _paddingX) > 0 : true) : false;\n                    if (sizeAutoCapable && !widthAutoObserverDetection) {\n                        var tmpCurrHostWidth = _hostElementNative[LEXICON.oW];\n                        var tmpCurrContentGlueWidth = _contentGlueElement.css(_strWidth);\n                        _contentGlueElement.css(_strWidth, _strAuto);\n\n                        var tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                        _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                        widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        if (!widthAutoResizeDetection) {\n                            _contentGlueElement.css(_strWidth, tmpCurrHostWidth + 1);\n                            tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                            _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                            widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        }\n                    }\n                    var widthAuto = (widthAutoObserverDetection || widthAutoResizeDetection) && sizeAutoCapable && !displayIsHidden;\n                    var widthAutoChanged = checkCacheAutoForce(widthAuto, _widthAutoCache);\n                    var wasWidthAuto = !widthAuto && _widthAutoCache;\n\n                    //detect height auto:\n                    var heightAuto = _sizeAutoObserverAdded && sizeAutoCapable && !displayIsHidden ? (MATH.round(sizeAutoObserverElementBCRect.bottom - sizeAutoObserverElementBCRect.top) === 0) /* && (!paddingAbsolute && (_msieVersion > 9 || !_msieVersion) ? true : true) */ : false;\n                    var heightAutoChanged = checkCacheAutoForce(heightAuto, _heightAutoCache);\n                    var wasHeightAuto = !heightAuto && _heightAutoCache;\n\n                    //detect border:\n                    //we need the border only if border box and auto size\n                    var updateBorderX = (widthAuto && _isBorderBox) || !_isBorderBox;\n                    var updateBorderY = (heightAuto && _isBorderBox) || !_isBorderBox;\n                    var border = getTopRightBottomLeftHost(_strBorderMinus, '-' + _strWidth, !updateBorderX, !updateBorderY)\n\n                    //detect margin:\n                    var margin = getTopRightBottomLeftHost(_strMarginMinus);\n\n                    //vars to apply correct css\n                    var contentElementCSS = {};\n                    var contentGlueElementCSS = {};\n\n                    //funcs\n                    var getHostSize = function () {\n                        //has to be clientSize because offsetSize respect borders\n                        return {\n                            w: _hostElementNative[LEXICON.cW],\n                            h: _hostElementNative[LEXICON.cH]\n                        };\n                    };\n                    var getViewportSize = function () {\n                        //viewport size is padding container because it never has padding, margin and a border\n                        //determine zoom rounding error -> sometimes scrollWidth/Height is smaller than clientWidth/Height\n                        //if this happens add the difference to the viewportSize to compensate the rounding error\n                        return {\n                            w: _paddingElementNative[LEXICON.oW] + MATH.max(0, _contentElementNative[LEXICON.cW] - _contentElementNative[LEXICON.sW]),\n                            h: _paddingElementNative[LEXICON.oH] + MATH.max(0, _contentElementNative[LEXICON.cH] - _contentElementNative[LEXICON.sH])\n                        };\n                    };\n\n                    //set info for padding\n                    var paddingAbsoluteX = _paddingX = padding.l + padding.r;\n                    var paddingAbsoluteY = _paddingY = padding.t + padding.b;\n                    paddingAbsoluteX *= paddingAbsolute ? 1 : 0;\n                    paddingAbsoluteY *= paddingAbsolute ? 1 : 0;\n                    padding.c = checkCacheAutoForce(padding, _cssPaddingCache);\n\n                    //set info for border\n                    _borderX = border.l + border.r;\n                    _borderY = border.t + border.b;\n                    border.c = checkCacheAutoForce(border, _cssBorderCache);\n\n                    //set info for margin\n                    _marginX = margin.l + margin.r;\n                    _marginY = margin.t + margin.b;\n                    margin.c = checkCacheAutoForce(margin, _cssMarginCache);\n\n                    //refresh cache\n                    _textareaAutoWrappingCache = textareaAutoWrapping;\n                    _cssDirectionCache = cssDirection;\n                    _cssBoxSizingCache = boxSizing;\n                    _widthAutoCache = widthAuto;\n                    _heightAutoCache = heightAuto;\n                    _cssPaddingCache = padding;\n                    _cssBorderCache = border;\n                    _cssMarginCache = margin;\n\n                    //IEFix direction changed\n                    if (cssDirectionChanged && _sizeAutoObserverAdded)\n                        _sizeAutoObserverElement.css(_strFloat, isRTLRight);\n\n                    //apply padding:\n                    if (padding.c || cssDirectionChanged || paddingAbsoluteChanged || widthAutoChanged || heightAutoChanged || boxSizingChanged || sizeAutoCapableChanged) {\n                        var paddingElementCSS = {};\n                        var textareaCSS = {};\n                        var paddingValues = [padding.t, padding.r, padding.b, padding.l];\n\n                        setTopRightBottomLeft(contentGlueElementCSS, _strMarginMinus, [-padding.t, -padding.r, -padding.b, -padding.l]);\n                        if (paddingAbsolute) {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty, paddingValues);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus);\n                        }\n                        else {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus, paddingValues);\n                        }\n\n                        _paddingElement.css(paddingElementCSS);\n                        _targetElement.css(textareaCSS);\n                    }\n\n                    //viewport size is padding container because it never has padding, margin and a border.\n                    _viewportSize = getViewportSize();\n\n                    //update Textarea\n                    var textareaSize = _isTextarea ? textareaUpdate() : false;\n                    var textareaSizeChanged = _isTextarea && checkCacheAutoForce(textareaSize, _textareaSizeCache);\n                    var textareaDynOrigSize = _isTextarea && textareaSize ? {\n                        w: textareaDynWidth ? textareaSize._dynamicWidth : textareaSize._originalWidth,\n                        h: textareaDynHeight ? textareaSize._dynamicHeight : textareaSize._originalHeight\n                    } : {};\n                    _textareaSizeCache = textareaSize;\n\n                    //fix height auto / width auto in cooperation with current padding & boxSizing behavior:\n                    if (heightAuto && (heightAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c)) {\n                        contentElementCSS[_strHeight] = _strAuto;\n                    }\n                    else if (heightAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strHeight] = _strHundredPercent;\n                    }\n                    if (widthAuto && (widthAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c || cssDirectionChanged)) {\n                        contentElementCSS[_strWidth] = _strAuto;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strHundredPercent; //IE Fix\n                    }\n                    else if (widthAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strWidth] = _strHundredPercent;\n                        contentElementCSS[_strFloat] = _strEmpty;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strEmpty; //IE Fix\n                    }\n                    if (widthAuto) {\n                        //textareaDynOrigSize.w || _strAuto :: doesnt works because applied margin will shift width\n                        contentGlueElementCSS[_strWidth] = _strAuto;\n\n                        contentElementCSS[_strWidth] = VENDORS._cssPropertyValue(_strWidth, 'max-content intrinsic') || _strAuto;\n                        contentElementCSS[_strFloat] = isRTLRight;\n                    }\n                    else {\n                        contentGlueElementCSS[_strWidth] = _strEmpty;\n                    }\n                    if (heightAuto) {\n                        //textareaDynOrigSize.h || _contentElementNative[LEXICON.cH] :: use for anti scroll jumping\n                        contentGlueElementCSS[_strHeight] = textareaDynOrigSize.h || _contentElementNative[LEXICON.cH];\n                    }\n                    else {\n                        contentGlueElementCSS[_strHeight] = _strEmpty;\n                    }\n                    if (sizeAutoCapable)\n                        _contentGlueElement.css(contentGlueElementCSS);\n                    _contentElement.css(contentElementCSS);\n\n                    //CHECKPOINT HERE ~\n                    contentElementCSS = {};\n                    contentGlueElementCSS = {};\n\n                    //if [content(host) client / scroll size, or target element direction, or content(host) max-sizes] changed, or force is true\n                    if (hostSizeChanged || contentSizeChanged || textareaSizeChanged || cssDirectionChanged || boxSizingChanged || paddingAbsoluteChanged || widthAutoChanged || widthAuto || heightAutoChanged || heightAuto || ignoreOverlayScrollbarHidingChanged || overflowBehaviorChanged || clipAlwaysChanged || resizeChanged || scrollbarsVisibilityChanged || scrollbarsAutoHideChanged || scrollbarsDragScrollingChanged || scrollbarsClickScrollingChanged || textareaDynWidthChanged || textareaDynHeightChanged || textareaAutoWrappingChanged) {\n                        var strOverflow = 'overflow';\n                        var strOverflowX = strOverflow + '-x';\n                        var strOverflowY = strOverflow + '-y';\n                        var strHidden = 'hidden';\n                        var strVisible = 'visible';\n\n                        //Reset the viewport (very important for natively overlaid scrollbars and zoom change\n                        //don't change the overflow prop as it is very expensive and affects performance !A LOT!\n                        if (!_nativeScrollbarStyling) {\n                            var viewportElementResetCSS = {};\n                            var resetXTmp = _hasOverflowCache.y && _hideOverflowCache.ys && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.y ? _viewportElement.css(isRTLLeft) : -_nativeScrollbarSize.y) : 0;\n                            var resetBottomTmp = _hasOverflowCache.x && _hideOverflowCache.xs && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.x ? _viewportElement.css(_strBottom) : -_nativeScrollbarSize.x) : 0;\n                            setTopRightBottomLeft(viewportElementResetCSS, _strEmpty);\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n\n                        //measure several sizes:\n                        var contentMeasureElement = getContentMeasureElement();\n                        //in Firefox content element has to have overflow hidden, else element margins aren't calculated properly, this element prevents this bug, but only if scrollbars aren't overlaid\n                        var contentSize = {\n                            //use clientSize because natively overlaidScrollbars add borders\n                            w: textareaDynOrigSize.w || contentMeasureElement[LEXICON.cW],\n                            h: textareaDynOrigSize.h || contentMeasureElement[LEXICON.cH]\n                        };\n                        var scrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH]\n                        };\n\n                        //apply the correct viewport style and measure viewport size\n                        if (!_nativeScrollbarStyling) {\n                            viewportElementResetCSS[_strBottom] = wasHeightAuto ? _strEmpty : resetBottomTmp;\n                            viewportElementResetCSS[isRTLLeft] = wasWidthAuto ? _strEmpty : resetXTmp;\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n                        _viewportSize = getViewportSize();\n\n                        //measure and correct several sizes\n                        var hostSize = getHostSize();\n                        var hostAbsoluteRectSize = {\n                            w: hostSize.w - _marginX - _borderX - (_isBorderBox ? 0 : _paddingX),\n                            h: hostSize.h - _marginY - _borderY - (_isBorderBox ? 0 : _paddingY)\n                        };\n                        var contentGlueSize = {\n                            //client/scrollSize + AbsolutePadding -> because padding is only applied to the paddingElement if its absolute, so you have to add it manually\n                            //hostSize is clientSize -> so padding should be added manually, right? FALSE! Because content glue is inside hostElement, so we don't have to worry about padding\n                            w: MATH.max((widthAuto ? contentSize.w : scrollSize.w) + paddingAbsoluteX, hostAbsoluteRectSize.w),\n                            h: MATH.max((heightAuto ? contentSize.h : scrollSize.h) + paddingAbsoluteY, hostAbsoluteRectSize.h)\n                        };\n                        contentGlueSize.c = checkCacheAutoForce(contentGlueSize, _contentGlueSizeCache);\n                        _contentGlueSizeCache = contentGlueSize;\n\n                        //apply correct contentGlue size\n                        if (sizeAutoCapable) {\n                            //size contentGlue correctly to make sure the element has correct size if the sizing switches to auto\n                            if (contentGlueSize.c || (heightAuto || widthAuto)) {\n                                contentGlueElementCSS[_strWidth] = contentGlueSize.w;\n                                contentGlueElementCSS[_strHeight] = contentGlueSize.h;\n\n                                //textarea-sizes are already calculated correctly at this point\n                                if (!_isTextarea) {\n                                    contentSize = {\n                                        //use clientSize because natively overlaidScrollbars add borders\n                                        w: contentMeasureElement[LEXICON.cW],\n                                        h: contentMeasureElement[LEXICON.cH]\n                                    };\n                                }\n                            }\n                            var textareaCoverCSS = {};\n                            var setContentGlueElementCSSfunction = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var wh = scrollbarVars._w_h;\n                                var strWH = scrollbarVars._width_height;\n                                var autoSize = horizontal ? widthAuto : heightAuto;\n                                var borderSize = horizontal ? _borderX : _borderY;\n                                var paddingSize = horizontal ? _paddingX : _paddingY;\n                                var marginSize = horizontal ? _marginX : _marginY;\n                                var viewportSize = _viewportSize[wh] - borderSize - marginSize - (_isBorderBox ? 0 : paddingSize);\n\n                                //make contentGlue size -1 if element is not auto sized, to make sure that a resize event happens when the element shrinks\n                                if (!autoSize || (!autoSize && border.c))\n                                    contentGlueElementCSS[strWH] = hostAbsoluteRectSize[wh] - 1;\n\n                                //if size is auto and host is smaller than size as min size, make content glue size -1 to make sure size changes will be detected (this is only needed if padding is 0)\n                                if (autoSize && (contentSize[wh] < viewportSize) && (horizontal && _isTextarea ? !textareaAutoWrapping : true)) {\n                                    if (_isTextarea)\n                                        textareaCoverCSS[strWH] = parseToZeroOrNumber(_textareaCoverElement.css(strWH)) - 1;\n                                    contentGlueElementCSS[strWH] -= 1;\n                                }\n\n                                //make sure content glue size is at least 1\n                                if (contentSize[wh] > 0)\n                                    contentGlueElementCSS[strWH] = MATH.max(1, contentGlueElementCSS[strWH]);\n                            };\n                            setContentGlueElementCSSfunction(true);\n                            setContentGlueElementCSSfunction(false);\n\n                            if (_isTextarea)\n                                _textareaCoverElement.css(textareaCoverCSS);\n                            _contentGlueElement.css(contentGlueElementCSS);\n                        }\n                        if (widthAuto)\n                            contentElementCSS[_strWidth] = _strHundredPercent;\n                        if (widthAuto && !_isBorderBox && !_mutationObserversConnected)\n                            contentElementCSS[_strFloat] = 'none';\n\n                        //apply and reset content style\n                        _contentElement.css(contentElementCSS);\n                        contentElementCSS = {};\n\n                        //measure again, but this time all correct sizes:\n                        var contentScrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH],\n                        };\n                        contentScrollSize.c = contentSizeChanged = checkCacheAutoForce(contentScrollSize, _contentScrollSizeCache);\n                        _contentScrollSizeCache = contentScrollSize;\n\n                        //refresh viewport size after correct measuring\n                        _viewportSize = getViewportSize();\n\n                        hostSize = getHostSize();\n                        hostSizeChanged = checkCacheAutoForce(hostSize, _hostSizeCache);\n                        _hostSizeCache = hostSize;\n\n                        var hideOverflowForceTextarea = _isTextarea && (_viewportSize.w === 0 || _viewportSize.h === 0);\n                        var previousOverflowAmount = _overflowAmountCache;\n                        var overflowBehaviorIsVS = {};\n                        var overflowBehaviorIsVH = {};\n                        var overflowBehaviorIsS = {};\n                        var overflowAmount = {};\n                        var hasOverflow = {};\n                        var hideOverflow = {};\n                        var canScroll = {};\n                        var viewportRect = _paddingElementNative[LEXICON.bCR]();\n                        var setOverflowVariables = function (horizontal) {\n                            var scrollbarVars = getScrollbarVars(horizontal);\n                            var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                            var xyI = scrollbarVarsInverted._x_y;\n                            var xy = scrollbarVars._x_y;\n                            var wh = scrollbarVars._w_h;\n                            var widthHeight = scrollbarVars._width_height;\n                            var scrollMax = _strScroll + scrollbarVars._Left_Top + 'Max';\n                            var fractionalOverflowAmount = viewportRect[widthHeight] ? MATH.abs(viewportRect[widthHeight] - _viewportSize[wh]) : 0;\n                            var checkFractionalOverflowAmount = previousOverflowAmount && previousOverflowAmount[xy] > 0 && _viewportElementNative[scrollMax] === 0;\n                            overflowBehaviorIsVS[xy] = overflowBehavior[xy] === 'v-s';\n                            overflowBehaviorIsVH[xy] = overflowBehavior[xy] === 'v-h';\n                            overflowBehaviorIsS[xy] = overflowBehavior[xy] === 's';\n                            overflowAmount[xy] = MATH.max(0, MATH.round((contentScrollSize[wh] - _viewportSize[wh]) * 100) / 100);\n                            overflowAmount[xy] *= (hideOverflowForceTextarea || (checkFractionalOverflowAmount && fractionalOverflowAmount > 0 && fractionalOverflowAmount < 1)) ? 0 : 1;\n                            hasOverflow[xy] = overflowAmount[xy] > 0;\n\n                            //hideOverflow:\n                            //x || y : true === overflow is hidden by \"overflow: scroll\" OR \"overflow: hidden\"\n                            //xs || ys : true === overflow is hidden by \"overflow: scroll\"\n                            hideOverflow[xy] = overflowBehaviorIsVS[xy] || overflowBehaviorIsVH[xy] ? (hasOverflow[xyI] && !overflowBehaviorIsVS[xyI] && !overflowBehaviorIsVH[xyI]) : hasOverflow[xy];\n                            hideOverflow[xy + 's'] = hideOverflow[xy] ? (overflowBehaviorIsS[xy] || overflowBehaviorIsVS[xy]) : false;\n\n                            canScroll[xy] = hasOverflow[xy] && hideOverflow[xy + 's'];\n                        };\n                        setOverflowVariables(true);\n                        setOverflowVariables(false);\n\n                        overflowAmount.c = checkCacheAutoForce(overflowAmount, _overflowAmountCache);\n                        _overflowAmountCache = overflowAmount;\n                        hasOverflow.c = checkCacheAutoForce(hasOverflow, _hasOverflowCache);\n                        _hasOverflowCache = hasOverflow;\n                        hideOverflow.c = checkCacheAutoForce(hideOverflow, _hideOverflowCache);\n                        _hideOverflowCache = hideOverflow;\n\n                        //if native scrollbar is overlay at x OR y axis, prepare DOM\n                        if (_nativeScrollbarIsOverlaid.x || _nativeScrollbarIsOverlaid.y) {\n                            var borderDesign = 'px solid transparent';\n                            var contentArrangeElementCSS = {};\n                            var arrangeContent = {};\n                            var arrangeChanged = force;\n                            var setContentElementCSS;\n\n                            if (hasOverflow.x || hasOverflow.y) {\n                                arrangeContent.w = _nativeScrollbarIsOverlaid.y && hasOverflow.y ? contentScrollSize.w + _overlayScrollbarDummySize.y : _strEmpty;\n                                arrangeContent.h = _nativeScrollbarIsOverlaid.x && hasOverflow.x ? contentScrollSize.h + _overlayScrollbarDummySize.x : _strEmpty;\n                                arrangeChanged = checkCacheAutoForce(arrangeContent, _arrangeContentSizeCache);\n                                _arrangeContentSizeCache = arrangeContent;\n                            }\n\n                            if (hasOverflow.c || hideOverflow.c || contentScrollSize.c || cssDirectionChanged || widthAutoChanged || heightAutoChanged || widthAuto || heightAuto || ignoreOverlayScrollbarHidingChanged) {\n                                contentElementCSS[_strMarginMinus + isRTLRight] = contentElementCSS[_strBorderMinus + isRTLRight] = _strEmpty;\n                                setContentElementCSS = function (horizontal) {\n                                    var scrollbarVars = getScrollbarVars(horizontal);\n                                    var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                    var xy = scrollbarVars._x_y;\n                                    var strDirection = horizontal ? _strBottom : isRTLLeft;\n                                    var invertedAutoSize = horizontal ? heightAuto : widthAuto;\n\n                                    if (_nativeScrollbarIsOverlaid[xy] && hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                        contentElementCSS[_strMarginMinus + strDirection] = invertedAutoSize ? (ignoreOverlayScrollbarHiding ? _strEmpty : _overlayScrollbarDummySize[xy]) : _strEmpty;\n                                        contentElementCSS[_strBorderMinus + strDirection] = ((horizontal ? !invertedAutoSize : true) && !ignoreOverlayScrollbarHiding) ? (_overlayScrollbarDummySize[xy] + borderDesign) : _strEmpty;\n                                    }\n                                    else {\n                                        arrangeContent[scrollbarVarsInverted._w_h] =\n                                            contentElementCSS[_strMarginMinus + strDirection] =\n                                            contentElementCSS[_strBorderMinus + strDirection] = _strEmpty;\n                                        arrangeChanged = true;\n                                    }\n                                };\n\n                                if (_nativeScrollbarStyling) {\n                                    addRemoveClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible, !ignoreOverlayScrollbarHiding)\n                                }\n                                else {\n                                    setContentElementCSS(true);\n                                    setContentElementCSS(false);\n                                }\n                            }\n                            if (ignoreOverlayScrollbarHiding) {\n                                arrangeContent.w = arrangeContent.h = _strEmpty;\n                                arrangeChanged = true;\n                            }\n                            if (arrangeChanged && !_nativeScrollbarStyling) {\n                                contentArrangeElementCSS[_strWidth] = hideOverflow.y ? arrangeContent.w : _strEmpty;\n                                contentArrangeElementCSS[_strHeight] = hideOverflow.x ? arrangeContent.h : _strEmpty;\n\n                                if (!_contentArrangeElement) {\n                                    _contentArrangeElement = FRAMEWORK(generateDiv(_classNameContentArrangeElement));\n                                    _viewportElement.prepend(_contentArrangeElement);\n                                }\n                                _contentArrangeElement.css(contentArrangeElementCSS);\n                            }\n                            _contentElement.css(contentElementCSS);\n                        }\n\n                        var viewportElementCSS = {};\n                        var paddingElementCSS = {};\n                        var setViewportCSS;\n                        if (hostSizeChanged || hasOverflow.c || hideOverflow.c || contentScrollSize.c || overflowBehaviorChanged || boxSizingChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged || clipAlwaysChanged || heightAutoChanged) {\n                            viewportElementCSS[isRTLRight] = _strEmpty;\n                            setViewportCSS = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                var xy = scrollbarVars._x_y;\n                                var XY = scrollbarVars._X_Y;\n                                var strDirection = horizontal ? _strBottom : isRTLLeft;\n\n                                var reset = function () {\n                                    viewportElementCSS[strDirection] = _strEmpty;\n                                    _contentBorderSize[scrollbarVarsInverted._w_h] = 0;\n                                };\n                                if (hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                    viewportElementCSS[strOverflow + XY] = _strScroll;\n                                    if (ignoreOverlayScrollbarHiding || _nativeScrollbarStyling) {\n                                        reset();\n                                    }\n                                    else {\n                                        viewportElementCSS[strDirection] = -(_nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[xy] : _nativeScrollbarSize[xy]);\n                                        _contentBorderSize[scrollbarVarsInverted._w_h] = _nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[scrollbarVarsInverted._x_y] : 0;\n                                    }\n                                } else {\n                                    viewportElementCSS[strOverflow + XY] = _strEmpty;\n                                    reset();\n                                }\n                            };\n                            setViewportCSS(true);\n                            setViewportCSS(false);\n\n                            // if the scroll container is too small and if there is any overflow with no overlay scrollbar (and scrollbar styling isn't possible), \n                            // make viewport element greater in size (Firefox hide Scrollbars fix)\n                            // because firefox starts hiding scrollbars on too small elements\n                            // with this behavior the overflow calculation may be incorrect or the scrollbars would appear suddenly\n                            // https://bugzilla.mozilla.org/show_bug.cgi?id=292284\n                            if (!_nativeScrollbarStyling\n                                && (_viewportSize.h < _nativeScrollbarMinSize.x || _viewportSize.w < _nativeScrollbarMinSize.y)\n                                && ((hasOverflow.x && hideOverflow.x && !_nativeScrollbarIsOverlaid.x) || (hasOverflow.y && hideOverflow.y && !_nativeScrollbarIsOverlaid.y))) {\n                                viewportElementCSS[_strPaddingMinus + _strTop] = _nativeScrollbarMinSize.x;\n                                viewportElementCSS[_strMarginMinus + _strTop] = -_nativeScrollbarMinSize.x;\n\n                                viewportElementCSS[_strPaddingMinus + isRTLRight] = _nativeScrollbarMinSize.y;\n                                viewportElementCSS[_strMarginMinus + isRTLRight] = -_nativeScrollbarMinSize.y;\n                            }\n                            else {\n                                viewportElementCSS[_strPaddingMinus + _strTop] =\n                                    viewportElementCSS[_strMarginMinus + _strTop] =\n                                    viewportElementCSS[_strPaddingMinus + isRTLRight] =\n                                    viewportElementCSS[_strMarginMinus + isRTLRight] = _strEmpty;\n                            }\n                            viewportElementCSS[_strPaddingMinus + isRTLLeft] =\n                                viewportElementCSS[_strMarginMinus + isRTLLeft] = _strEmpty;\n\n                            //if there is any overflow (x OR y axis) and this overflow shall be hidden, make overflow hidden, else overflow visible\n                            if ((hasOverflow.x && hideOverflow.x) || (hasOverflow.y && hideOverflow.y) || hideOverflowForceTextarea) {\n                                //only hide if is Textarea\n                                if (_isTextarea && hideOverflowForceTextarea) {\n                                    paddingElementCSS[strOverflowX] =\n                                        paddingElementCSS[strOverflowY] = strHidden;\n                                }\n                            }\n                            else {\n                                if (!clipAlways || (overflowBehaviorIsVH.x || overflowBehaviorIsVS.x || overflowBehaviorIsVH.y || overflowBehaviorIsVS.y)) {\n                                    //only un-hide if Textarea\n                                    if (_isTextarea) {\n                                        paddingElementCSS[strOverflowX] =\n                                            paddingElementCSS[strOverflowY] = _strEmpty;\n                                    }\n                                    viewportElementCSS[strOverflowX] =\n                                        viewportElementCSS[strOverflowY] = strVisible;\n                                }\n                            }\n\n                            _paddingElement.css(paddingElementCSS);\n                            _viewportElement.css(viewportElementCSS);\n                            viewportElementCSS = {};\n\n                            //force soft redraw in webkit because without the scrollbars will may appear because DOM wont be redrawn under special conditions\n                            if ((hasOverflow.c || boxSizingChanged || widthAutoChanged || heightAutoChanged) && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                                var elementStyle = _contentElementNative[LEXICON.s];\n                                var dump;\n                                elementStyle.webkitTransform = 'scale(1)';\n                                elementStyle.display = 'run-in';\n                                dump = _contentElementNative[LEXICON.oH];\n                                elementStyle.display = _strEmpty; //|| dump; //use dump to prevent it from deletion if minify\n                                elementStyle.webkitTransform = _strEmpty;\n                            }\n                            /*\n                            //force hard redraw in webkit if native overlaid scrollbars shall appear\n                            if (ignoreOverlayScrollbarHidingChanged && ignoreOverlayScrollbarHiding) {\n                                _hostElement.hide();\n                                var dump = _hostElementNative[LEXICON.oH];\n                                _hostElement.show();\n                            }\n                            */\n                        }\n\n                        //change to direction RTL and width auto Bugfix in Webkit\n                        //without this fix, the DOM still thinks the scrollbar is LTR and thus the content is shifted to the left\n                        contentElementCSS = {};\n                        if (cssDirectionChanged || widthAutoChanged || heightAutoChanged) {\n                            if (_isRTL && widthAuto) {\n                                var floatTmp = _contentElement.css(_strFloat);\n                                var posLeftWithoutFloat = MATH.round(_contentElement.css(_strFloat, _strEmpty).css(_strLeft, _strEmpty).position().left);\n                                _contentElement.css(_strFloat, floatTmp);\n                                var posLeftWithFloat = MATH.round(_contentElement.position().left);\n\n                                if (posLeftWithoutFloat !== posLeftWithFloat)\n                                    contentElementCSS[_strLeft] = posLeftWithoutFloat;\n                            }\n                            else {\n                                contentElementCSS[_strLeft] = _strEmpty;\n                            }\n                        }\n                        _contentElement.css(contentElementCSS);\n\n                        //handle scroll position\n                        if (_isTextarea && contentSizeChanged) {\n                            var textareaInfo = getTextareaInfo();\n                            if (textareaInfo) {\n                                var textareaRowsChanged = _textareaInfoCache === undefined ? true : textareaInfo._rows !== _textareaInfoCache._rows;\n                                var cursorRow = textareaInfo._cursorRow;\n                                var cursorCol = textareaInfo._cursorColumn;\n                                var widestRow = textareaInfo._widestRow;\n                                var lastRow = textareaInfo._rows;\n                                var lastCol = textareaInfo._columns;\n                                var cursorPos = textareaInfo._cursorPosition;\n                                var cursorMax = textareaInfo._cursorMax;\n                                var cursorIsLastPosition = (cursorPos >= cursorMax && _textareaHasFocus);\n                                var textareaScrollAmount = {\n                                    x: (!textareaAutoWrapping && (cursorCol === lastCol && cursorRow === widestRow)) ? _overflowAmountCache.x : -1,\n                                    y: (textareaAutoWrapping ? cursorIsLastPosition || textareaRowsChanged && (previousOverflowAmount ? (currScroll.y === previousOverflowAmount.y) : false) : (cursorIsLastPosition || textareaRowsChanged) && cursorRow === lastRow) ? _overflowAmountCache.y : -1\n                                };\n                                currScroll.x = textareaScrollAmount.x > -1 ? (_isRTL && _normalizeRTLCache && _rtlScrollBehavior.i ? 0 : textareaScrollAmount.x) : currScroll.x; //if inverted, scroll to 0 -> normalized this means to max scroll offset.\n                                currScroll.y = textareaScrollAmount.y > -1 ? textareaScrollAmount.y : currScroll.y;\n                            }\n                            _textareaInfoCache = textareaInfo;\n                        }\n                        if (_isRTL && _rtlScrollBehavior.i && _nativeScrollbarIsOverlaid.y && hasOverflow.x && _normalizeRTLCache)\n                            currScroll.x += _contentBorderSize.w || 0;\n                        if (widthAuto)\n                            _hostElement[_strScrollLeft](0);\n                        if (heightAuto)\n                            _hostElement[_strScrollTop](0);\n                        _viewportElement[_strScrollLeft](currScroll.x)[_strScrollTop](currScroll.y);\n\n                        //scrollbars management:\n                        var scrollbarsVisibilityVisible = scrollbarsVisibility === 'v';\n                        var scrollbarsVisibilityHidden = scrollbarsVisibility === 'h';\n                        var scrollbarsVisibilityAuto = scrollbarsVisibility === 'a';\n                        var refreshScrollbarsVisibility = function (showX, showY) {\n                            showY = showY === undefined ? showX : showY;\n                            refreshScrollbarAppearance(true, showX, canScroll.x)\n                            refreshScrollbarAppearance(false, showY, canScroll.y)\n                        };\n\n                        //manage class name which indicates scrollable overflow\n                        addRemoveClass(_hostElement, _classNameHostOverflow, hideOverflow.x || hideOverflow.y);\n                        addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);\n                        addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);\n\n                        //add or remove rtl class name for styling purposes except when its body, then the scrollbar stays\n                        if (cssDirectionChanged && !_isBody) {\n                            addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);\n                        }\n\n                        //manage the resize feature (CSS3 resize \"polyfill\" for this plugin)\n                        if (_isBody)\n                            addClass(_hostElement, _classNameHostResizeDisabled);\n                        if (resizeChanged) {\n                            addRemoveClass(_hostElement, _classNameHostResizeDisabled, _resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResize, !_resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeB, _resizeBoth);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeH, _resizeHorizontal);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeV, _resizeVertical);\n                        }\n\n                        //manage the scrollbars general visibility + the scrollbar interactivity (unusable class name)\n                        if (scrollbarsVisibilityChanged || overflowBehaviorChanged || hideOverflow.c || hasOverflow.c || ignoreOverlayScrollbarHidingChanged) {\n                            if (ignoreOverlayScrollbarHiding) {\n                                if (ignoreOverlayScrollbarHidingChanged) {\n                                    removeClass(_hostElement, _classNameHostScrolling);\n                                    if (ignoreOverlayScrollbarHiding) {\n                                        refreshScrollbarsVisibility(false);\n                                    }\n                                }\n                            }\n                            else if (scrollbarsVisibilityAuto) {\n                                refreshScrollbarsVisibility(canScroll.x, canScroll.y);\n                            }\n                            else if (scrollbarsVisibilityVisible) {\n                                refreshScrollbarsVisibility(true);\n                            }\n                            else if (scrollbarsVisibilityHidden) {\n                                refreshScrollbarsVisibility(false);\n                            }\n                        }\n\n                        //manage the scrollbars auto hide feature (auto hide them after specific actions)\n                        if (scrollbarsAutoHideChanged || ignoreOverlayScrollbarHidingChanged) {\n                            setupHostMouseTouchEvents(!_scrollbarsAutoHideLeave && !_scrollbarsAutoHideMove);\n                            refreshScrollbarsAutoHide(_scrollbarsAutoHideNever, !_scrollbarsAutoHideNever);\n                        }\n\n                        //manage scrollbars handle length & offset - don't remove!\n                        if (hostSizeChanged || overflowAmount.c || heightAutoChanged || widthAutoChanged || resizeChanged || boxSizingChanged || paddingAbsoluteChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged) {\n                            refreshScrollbarHandleLength(true);\n                            refreshScrollbarHandleOffset(true);\n                            refreshScrollbarHandleLength(false);\n                            refreshScrollbarHandleOffset(false);\n                        }\n\n                        //manage interactivity\n                        if (scrollbarsClickScrollingChanged)\n                            refreshScrollbarsInteractive(true, scrollbarsClickScrolling);\n                        if (scrollbarsDragScrollingChanged)\n                            refreshScrollbarsInteractive(false, scrollbarsDragScrolling);\n\n                        //callbacks:\n                        dispatchCallback('onDirectionChanged', {\n                            isRTL: _isRTL,\n                            dir: cssDirection\n                        }, cssDirectionChanged);\n                        dispatchCallback('onHostSizeChanged', {\n                            width: _hostSizeCache.w,\n                            height: _hostSizeCache.h\n                        }, hostSizeChanged);\n                        dispatchCallback('onContentSizeChanged', {\n                            width: _contentScrollSizeCache.w,\n                            height: _contentScrollSizeCache.h\n                        }, contentSizeChanged);\n                        dispatchCallback('onOverflowChanged', {\n                            x: hasOverflow.x,\n                            y: hasOverflow.y,\n                            xScrollable: hideOverflow.xs,\n                            yScrollable: hideOverflow.ys,\n                            clipped: hideOverflow.x || hideOverflow.y\n                        }, hasOverflow.c || hideOverflow.c);\n                        dispatchCallback('onOverflowAmountChanged', {\n                            x: overflowAmount.x,\n                            y: overflowAmount.y\n                        }, overflowAmount.c);\n                    }\n\n                    //fix body min size\n                    if (_isBody && _bodyMinSizeCache && (_hasOverflowCache.c || _bodyMinSizeCache.c)) {\n                        //its possible that no min size was measured until now, because the content arrange element was just added now, in this case, measure now the min size.\n                        if (!_bodyMinSizeCache.f)\n                            bodyMinSizeChanged();\n                        if (_nativeScrollbarIsOverlaid.y && _hasOverflowCache.x)\n                            _contentElement.css(_strMinMinus + _strWidth, _bodyMinSizeCache.w + _overlayScrollbarDummySize.y);\n                        if (_nativeScrollbarIsOverlaid.x && _hasOverflowCache.y)\n                            _contentElement.css(_strMinMinus + _strHeight, _bodyMinSizeCache.h + _overlayScrollbarDummySize.x);\n                        _bodyMinSizeCache.c = false;\n                    }\n\n                    if (_initialized && changedOptions.updateOnLoad) {\n                        updateElementsOnLoad();\n                    }\n\n                    //freezeResizeObserver(_sizeObserverElement, false);\n                    //freezeResizeObserver(_sizeAutoObserverElement, false);\n\n                    dispatchCallback('onUpdated', { forced: force });\n                }\n\n                /**\n                 * Updates the found elements of which the load event shall be handled.\n                 */\n                function updateElementsOnLoad() {\n                    if (!_isTextarea) {\n                        eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                            _contentElement.find(updateOnLoadSelector).each(function (i, el) {\n                                // if element doesn't have a updateOnLoadCallback applied\n                                if (COMPATIBILITY.inA(el, _updateOnLoadElms) < 0) {\n                                    _updateOnLoadElms.push(el);\n                                    FRAMEWORK(el)\n                                        .off(_updateOnLoadEventName, updateOnLoadCallback)\n                                        .on(_updateOnLoadEventName, updateOnLoadCallback);\n                                }\n                            });\n                        });\n                    }\n                }\n\n                //==== Options ====//\n\n                /**\n                 * Sets new options but doesn't call the update method.\n                 * @param newOptions The object which contains the new options.\n                 * @returns {*} A object which contains the changed options.\n                 */\n                function setOptions(newOptions) {\n                    var validatedOpts = _pluginsOptions._validate(newOptions, _pluginsOptions._template, true, _currentOptions)\n\n                    _currentOptions = extendDeep({}, _currentOptions, validatedOpts._default);\n                    _currentPreparedOptions = extendDeep({}, _currentPreparedOptions, validatedOpts._prepared);\n\n                    return validatedOpts._prepared;\n                }\n\n\n                //==== Structure ====//\n\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupStructureDOM(destroy) {\n                    var strParent = 'parent';\n                    var classNameResizeObserverHost = 'os-resize-observer-host';\n                    var classNameTextareaElementFull = _classNameTextareaElement + _strSpace + _classNameTextInherit;\n                    var textareaClass = _isTextarea ? _strSpace + _classNameTextInherit : _strEmpty;\n                    var adoptAttrs = _currentPreparedOptions.textarea.inheritedAttrs;\n                    var adoptAttrsMap = {};\n                    var applyAdoptedAttrs = function () {\n                        var applyAdoptedAttrsElm = destroy ? _targetElement : _hostElement;\n                        each(adoptAttrsMap, function (key, value) {\n                            if (type(value) == TYPES.s) {\n                                if (key == LEXICON.c)\n                                    applyAdoptedAttrsElm.addClass(value);\n                                else\n                                    applyAdoptedAttrsElm.attr(key, value);\n                            }\n                        });\n                    };\n                    var hostElementClassNames = [\n                        _classNameHostElement,\n                        _classNameHostElementForeign,\n                        _classNameHostTextareaElement,\n                        _classNameHostResizeDisabled,\n                        _classNameHostRTL,\n                        _classNameHostScrollbarHorizontalHidden,\n                        _classNameHostScrollbarVerticalHidden,\n                        _classNameHostTransition,\n                        _classNameHostScrolling,\n                        _classNameHostOverflow,\n                        _classNameHostOverflowX,\n                        _classNameHostOverflowY,\n                        _classNameThemeNone,\n                        _classNameTextareaElement,\n                        _classNameTextInherit,\n                        _classNameCache].join(_strSpace);\n                    var hostElementCSS = {};\n\n                    //get host element as first element, because that's the most upper element and required for the other elements\n                    _hostElement = _hostElement || (_isTextarea ? (_domExists ? _targetElement[strParent]()[strParent]()[strParent]()[strParent]() : FRAMEWORK(generateDiv(_classNameHostTextareaElement))) : _targetElement);\n                    _contentElement = _contentElement || selectOrGenerateDivByClass(_classNameContentElement + textareaClass);\n                    _viewportElement = _viewportElement || selectOrGenerateDivByClass(_classNameViewportElement + textareaClass);\n                    _paddingElement = _paddingElement || selectOrGenerateDivByClass(_classNamePaddingElement + textareaClass);\n                    _sizeObserverElement = _sizeObserverElement || selectOrGenerateDivByClass(classNameResizeObserverHost);\n                    _textareaCoverElement = _textareaCoverElement || (_isTextarea ? selectOrGenerateDivByClass(_classNameTextareaCoverElement) : undefined);\n\n                    //add this class to workaround class changing issues with UI frameworks especially Vue\n                    if (_domExists)\n                        addClass(_hostElement, _classNameHostElementForeign);\n\n                    //on destroy, remove all generated class names from the host element before collecting the adopted attributes \n                    //to prevent adopting generated class names\n                    if (destroy)\n                        removeClass(_hostElement, hostElementClassNames);\n\n                    //collect all adopted attributes\n                    adoptAttrs = type(adoptAttrs) == TYPES.s ? adoptAttrs.split(_strSpace) : adoptAttrs;\n                    if (COMPATIBILITY.isA(adoptAttrs) && _isTextarea) {\n                        each(adoptAttrs, function (i, v) {\n                            if (type(v) == TYPES.s) {\n                                adoptAttrsMap[v] = destroy ? _hostElement.attr(v) : _targetElement.attr(v);\n                            }\n                        });\n                    }\n\n                    if (!destroy) {\n                        if (_isTextarea) {\n                            if (!_currentPreparedOptions.sizeAutoCapable) {\n                                hostElementCSS[_strWidth] = _targetElement.css(_strWidth);\n                                hostElementCSS[_strHeight] = _targetElement.css(_strHeight);\n                            }\n\n                            if (!_domExists)\n                                _targetElement.addClass(_classNameTextInherit).wrap(_hostElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _hostElement = _targetElement[strParent]().css(hostElementCSS);\n                        }\n\n                        if (!_domExists) {\n                            //add the correct class to the target element\n                            addClass(_targetElement, _isTextarea ? classNameTextareaElementFull : _classNameHostElement);\n\n                            //wrap the content into the generated elements to create the required DOM\n                            _hostElement.wrapInner(_contentElement)\n                                .wrapInner(_viewportElement)\n                                .wrapInner(_paddingElement)\n                                .prepend(_sizeObserverElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _contentElement = findFirst(_hostElement, _strDot + _classNameContentElement);\n                            _viewportElement = findFirst(_hostElement, _strDot + _classNameViewportElement);\n                            _paddingElement = findFirst(_hostElement, _strDot + _classNamePaddingElement);\n\n                            if (_isTextarea) {\n                                _contentElement.prepend(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_nativeScrollbarStyling)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible);\n                        if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsOverlaid);\n                        if (_isBody)\n                            addClass(_htmlElement, _classNameHTMLElement);\n\n                        _sizeObserverElementNative = _sizeObserverElement[0];\n                        _hostElementNative = _hostElement[0];\n                        _paddingElementNative = _paddingElement[0];\n                        _viewportElementNative = _viewportElement[0];\n                        _contentElementNative = _contentElement[0];\n\n                        updateViewportAttrsFromTarget();\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            //clear size observer\n                            _sizeObserverElement.children().remove();\n\n                            //remove the style property and classes from already generated elements\n                            each([_paddingElement, _viewportElement, _contentElement, _textareaCoverElement], function (i, elm) {\n                                if (elm) {\n                                    removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                                }\n                            });\n\n                            //add classes to the host element which was removed previously to match the expected DOM\n                            addClass(_hostElement, _isTextarea ? _classNameHostTextareaElement : _classNameHostElement);\n                        }\n                        else {\n                            //remove size observer\n                            remove(_sizeObserverElement);\n\n                            //unwrap the content to restore DOM\n                            _contentElement.contents()\n                                .unwrap()\n                                .unwrap()\n                                .unwrap();\n\n                            if (_isTextarea) {\n                                _targetElement.unwrap();\n                                remove(_hostElement);\n                                remove(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_isTextarea)\n                            _targetElement.removeAttr(LEXICON.s);\n\n                        if (_isBody)\n                            removeClass(_htmlElement, _classNameHTMLElement);\n                    }\n                }\n\n                /**\n                 * Adds or removes all wrapper elements interactivity events.\n                 * @param destroy Indicates whether the Events shall be added or removed.\n                 */\n                function setupStructureEvents() {\n                    var textareaKeyDownRestrictedKeyCodes = [\n                        112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123,    //F1 to F12\n                        33, 34,                                                   //page up, page down\n                        37, 38, 39, 40,                                           //left, up, right, down arrows\n                        16, 17, 18, 19, 20, 144                                   //Shift, Ctrl, Alt, Pause, CapsLock, NumLock\n                    ];\n                    var textareaKeyDownKeyCodesList = [];\n                    var textareaUpdateIntervalID;\n                    var scrollStopTimeoutId;\n                    var scrollStopDelay = 175;\n                    var strFocus = 'focus';\n\n                    function updateTextarea(doClearInterval) {\n                        textareaUpdate();\n                        _base.update(_strAuto);\n                        if (doClearInterval && _autoUpdateRecommended)\n                            clearInterval(textareaUpdateIntervalID);\n                    }\n                    function textareaOnScroll(event) {\n                        _targetElement[_strScrollLeft](_rtlScrollBehavior.i && _normalizeRTLCache ? 9999999 : 0);\n                        _targetElement[_strScrollTop](0);\n                        COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                        return false;\n                    }\n                    function textareaOnDrop(event) {\n                        setTimeout(function () {\n                            if (!_destroyed)\n                                updateTextarea();\n                        }, 50);\n                    }\n                    function textareaOnFocus() {\n                        _textareaHasFocus = true;\n                        addClass(_hostElement, strFocus);\n                    }\n                    function textareaOnFocusout() {\n                        _textareaHasFocus = false;\n                        textareaKeyDownKeyCodesList = [];\n                        removeClass(_hostElement, strFocus);\n                        updateTextarea(true);\n                    }\n                    function textareaOnKeyDown(event) {\n                        var keyCode = event.keyCode;\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l]) {\n                                updateTextarea();\n                                textareaUpdateIntervalID = setInterval(updateTextarea, 1000 / 60);\n                            }\n                            if (inArray(keyCode, textareaKeyDownKeyCodesList) < 0)\n                                textareaKeyDownKeyCodesList.push(keyCode);\n                        }\n                    }\n                    function textareaOnKeyUp(event) {\n                        var keyCode = event.keyCode;\n                        var index = inArray(keyCode, textareaKeyDownKeyCodesList);\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (index > -1)\n                                textareaKeyDownKeyCodesList.splice(index, 1);\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l])\n                                updateTextarea(true);\n                        }\n                    }\n                    function contentOnTransitionEnd(event) {\n                        if (_autoUpdateCache === true)\n                            return;\n                        event = event.originalEvent || event;\n                        if (isSizeAffectingCSSProperty(event.propertyName))\n                            _base.update(_strAuto);\n                    }\n                    function viewportOnScroll(event) {\n                        if (!_sleeping) {\n                            if (scrollStopTimeoutId !== undefined)\n                                clearTimeout(scrollStopTimeoutId);\n                            else {\n                                if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                    refreshScrollbarsAutoHide(true);\n\n                                if (!nativeOverlayScrollbarsAreActive())\n                                    addClass(_hostElement, _classNameHostScrolling);\n\n                                dispatchCallback('onScrollStart', event);\n                            }\n\n                            //if a scrollbars handle gets dragged, the mousemove event is responsible for refreshing the handle offset\n                            //because if CSS scroll-snap is used, the handle offset gets only refreshed on every snap point\n                            //this looks laggy & clunky, it looks much better if the offset refreshes with the mousemove\n                            if (!_scrollbarsHandlesDefineScrollPos) {\n                                refreshScrollbarHandleOffset(true);\n                                refreshScrollbarHandleOffset(false);\n                            }\n                            dispatchCallback('onScroll', event);\n\n                            scrollStopTimeoutId = setTimeout(function () {\n                                if (!_destroyed) {\n                                    //OnScrollStop:\n                                    clearTimeout(scrollStopTimeoutId);\n                                    scrollStopTimeoutId = undefined;\n\n                                    if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                        refreshScrollbarsAutoHide(false);\n\n                                    if (!nativeOverlayScrollbarsAreActive())\n                                        removeClass(_hostElement, _classNameHostScrolling);\n\n                                    dispatchCallback('onScrollStop', event);\n                                }\n                            }, scrollStopDelay);\n                        }\n                    }\n\n\n                    if (_isTextarea) {\n                        if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                            addDestroyEventListener(_targetElement, 'input', updateTextarea);\n                        }\n                        else {\n                            addDestroyEventListener(_targetElement,\n                                [_strKeyDownEvent, _strKeyUpEvent],\n                                [textareaOnKeyDown, textareaOnKeyUp]);\n                        }\n\n                        addDestroyEventListener(_targetElement,\n                            [_strScroll, 'drop', strFocus, strFocus + 'out'],\n                            [textareaOnScroll, textareaOnDrop, textareaOnFocus, textareaOnFocusout]);\n                    }\n                    else {\n                        addDestroyEventListener(_contentElement, _strTransitionEndEvent, contentOnTransitionEnd);\n                    }\n                    addDestroyEventListener(_viewportElement, _strScroll, viewportOnScroll, true);\n                }\n\n\n                //==== Scrollbars ====//\n\n                /**\n                 * Builds or destroys all scrollbar DOM elements (scrollbar, track, handle)\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarsDOM(destroy) {\n                    var selectOrGenerateScrollbarDOM = function (isHorizontal) {\n                        var scrollbarClassName = isHorizontal ? _classNameScrollbarHorizontal : _classNameScrollbarVertical;\n                        var scrollbar = selectOrGenerateDivByClass(_classNameScrollbar + _strSpace + scrollbarClassName, true);\n                        var track = selectOrGenerateDivByClass(_classNameScrollbarTrack, scrollbar);\n                        var handle = selectOrGenerateDivByClass(_classNameScrollbarHandle, scrollbar);\n\n                        if (!_domExists && !destroy) {\n                            scrollbar.append(track);\n                            track.append(handle);\n                        }\n\n                        return {\n                            _scrollbar: scrollbar,\n                            _track: track,\n                            _handle: handle\n                        };\n                    };\n                    function resetScrollbarDOM(isHorizontal) {\n                        var scrollbarVars = getScrollbarVars(isHorizontal);\n                        var scrollbar = scrollbarVars._scrollbar;\n                        var track = scrollbarVars._track;\n                        var handle = scrollbarVars._handle;\n\n                        if (_domExists && _initialized) {\n                            each([scrollbar, track, handle], function (i, elm) {\n                                removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                            });\n                        }\n                        else {\n                            remove(scrollbar || selectOrGenerateScrollbarDOM(isHorizontal)._scrollbar);\n                        }\n                    }\n                    var horizontalElements;\n                    var verticalElements;\n\n                    if (!destroy) {\n                        horizontalElements = selectOrGenerateScrollbarDOM(true);\n                        verticalElements = selectOrGenerateScrollbarDOM();\n\n                        _scrollbarHorizontalElement = horizontalElements._scrollbar;\n                        _scrollbarHorizontalTrackElement = horizontalElements._track;\n                        _scrollbarHorizontalHandleElement = horizontalElements._handle;\n                        _scrollbarVerticalElement = verticalElements._scrollbar;\n                        _scrollbarVerticalTrackElement = verticalElements._track;\n                        _scrollbarVerticalHandleElement = verticalElements._handle;\n\n                        if (!_domExists) {\n                            _paddingElement.after(_scrollbarVerticalElement);\n                            _paddingElement.after(_scrollbarHorizontalElement);\n                        }\n                    }\n                    else {\n                        resetScrollbarDOM(true);\n                        resetScrollbarDOM();\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar interactivity events. (track and handle dragging, clicking, scrolling)\n                 * @param isHorizontal True if the target scrollbar is the horizontal scrollbar, false if the target scrollbar is the vertical scrollbar.\n                 */\n                function setupScrollbarEvents(isHorizontal) {\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var xy = scrollbarVars._x_y;\n                    var XY = scrollbarVars._X_Y;\n                    var scroll = _strScroll + scrollbarVars._Left_Top;\n                    var strActive = 'active';\n                    var strSnapHandle = 'snapHandle';\n                    var strClickEvent = 'click';\n                    var scrollDurationFactor = 1;\n                    var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl\n                    var trackTimeout;\n                    var mouseDownScroll;\n                    var mouseDownOffset;\n                    var mouseDownInvertedScale;\n\n                    function getPointerPosition(event) {\n                        return _msieVersion && insideIFrame ? event['screen' + XY] : COMPATIBILITY.page(event)[xy]; //use screen coordinates in EDGE & IE because the page values are incorrect in frames.\n                    }\n                    function getPreparedScrollbarsOption(name) {\n                        return _currentPreparedOptions.scrollbars[name];\n                    }\n                    function increaseTrackScrollAmount() {\n                        scrollDurationFactor = 0.5;\n                    }\n                    function decreaseTrackScrollAmount() {\n                        scrollDurationFactor = 1;\n                    }\n                    function stopClickEventPropagation(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function documentKeyDown(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            increaseTrackScrollAmount();\n                    }\n                    function documentKeyUp(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            decreaseTrackScrollAmount();\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed || nativeOverlayScrollbarsAreActive() || !_scrollbarsDragScrollingCache || (isTouchEvent && !getPreparedScrollbarsOption('touchSupport')) ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var trackLength = scrollbarVarsInfo._trackLength;\n                            var handleLength = scrollbarVarsInfo._handleLength;\n                            var scrollRange = scrollbarVarsInfo._maxScroll;\n                            var scrollRaw = (getPointerPosition(event) - mouseDownOffset) * mouseDownInvertedScale;\n                            var scrollDeltaPercent = scrollRaw / (trackLength - handleLength);\n                            var scrollDelta = (scrollRange * scrollDeltaPercent);\n                            scrollDelta = isFinite(scrollDelta) ? scrollDelta : 0;\n                            if (_isRTL && isHorizontal && !_rtlScrollBehavior.i)\n                                scrollDelta *= -1;\n\n                            _viewportElement[scroll](MATH.round(mouseDownScroll + scrollDelta));\n\n                            if (_scrollbarsHandlesDefineScrollPos)\n                                refreshScrollbarHandleOffset(isHorizontal, mouseDownScroll + scrollDelta);\n\n                            if (!_supportPassiveEvents)\n                                COMPATIBILITY.prvD(event);\n                        }\n                        else\n                            documentMouseTouchUp(event);\n                    }\n                    function documentMouseTouchUp(event) {\n                        event = event || event.originalEvent;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],\n                            true);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });\n                        });\n                        \n                            \n                        if (_scrollbarsHandlesDefineScrollPos)\n                            refreshScrollbarHandleOffset(isHorizontal, true);\n\n                        _scrollbarsHandlesDefineScrollPos = false;\n                        removeClass(_bodyElement, _classNameDragging);\n                        removeClass(scrollbarVars._handle, strActive);\n                        removeClass(scrollbarVars._track, strActive);\n                        removeClass(scrollbarVars._scrollbar, strActive);\n\n                        mouseDownScroll = undefined;\n                        mouseDownOffset = undefined;\n                        mouseDownInvertedScale = 1;\n\n                        decreaseTrackScrollAmount();\n\n                        if (trackTimeout !== undefined) {\n                            _base.scrollStop();\n                            clearTimeout(trackTimeout);\n                            trackTimeout = undefined;\n                        }\n\n                        if (event) {\n                            var rect = _hostElementNative[LEXICON.bCR]();\n                            var mouseInsideHost = event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;\n\n                            //if mouse is outside host element\n                            if (!mouseInsideHost)\n                                hostOnMouseLeave();\n\n                            if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                refreshScrollbarsAutoHide(false);\n                        }\n                    }\n                    function onHandleMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event))\n                            onHandleMouseTouchDownAction(event);\n                    }\n                    function onHandleMouseTouchDownAction(event) {\n                        mouseDownScroll = _viewportElement[scroll]();\n                        mouseDownScroll = isNaN(mouseDownScroll) ? 0 : mouseDownScroll;\n                        if (_isRTL && isHorizontal && !_rtlScrollBehavior.n || !_isRTL)\n                            mouseDownScroll = mouseDownScroll < 0 ? 0 : mouseDownScroll;\n\n                        mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                        mouseDownOffset = getPointerPosition(event);\n\n                        _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                        addClass(_bodyElement, _classNameDragging);\n                        addClass(scrollbarVars._handle, strActive);\n                        addClass(scrollbarVars._scrollbar, strActive);\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentOnSelectStart]);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });\n                        });\n                        \n\n                        if (_msieVersion || !_documentMixed)\n                            COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function onTrackMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);\n                            var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);\n                            var scrollBaseDuration = 270 * handleToViewportRatio;\n                            var scrollFirstIterationDelay = 400 * handleToViewportRatio;\n                            var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];\n                            var ctrlKey = event.ctrlKey;\n                            var instantScroll = event.shiftKey;\n                            var instantScrollTransition = instantScroll && ctrlKey;\n                            var isFirstIteration = true;\n                            var easing = 'linear';\n                            var decreaseScroll;\n                            var finishedCondition;\n                            var scrollActionFinsished = function (transition) {\n                                if (_scrollbarsHandlesDefineScrollPos)\n                                    refreshScrollbarHandleOffset(isHorizontal, transition);\n                            };\n                            var scrollActionInstantFinished = function () {\n                                scrollActionFinsished();\n                                onHandleMouseTouchDownAction(event);\n                            };\n                            var scrollAction = function () {\n                                if (!_destroyed) {\n                                    var mouseOffset = (mouseDownOffset - trackOffset) * mouseDownInvertedScale;\n                                    var handleOffset = scrollbarVarsInfo._handleOffset;\n                                    var trackLength = scrollbarVarsInfo._trackLength;\n                                    var handleLength = scrollbarVarsInfo._handleLength;\n                                    var scrollRange = scrollbarVarsInfo._maxScroll;\n                                    var currScroll = scrollbarVarsInfo._currentScroll;\n                                    var scrollDuration = scrollBaseDuration * scrollDurationFactor;\n                                    var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;\n                                    var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent\n                                    var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);\n                                    var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;\n                                    var scrollObj = {};\n                                    var animationObj = {\n                                        easing: easing,\n                                        step: function (now) {\n                                            if (_scrollbarsHandlesDefineScrollPos) {\n                                                _viewportElement[scroll](now); //https://github.com/jquery/jquery/issues/4340\n                                                refreshScrollbarHandleOffset(isHorizontal, now);\n                                            }\n                                        }\n                                    };\n                                    instantScrollPosition = isFinite(instantScrollPosition) ? instantScrollPosition : 0;\n                                    instantScrollPosition = _isRTL && isHorizontal && !_rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n\n                                    //_base.scrollStop();\n\n                                    if (instantScroll) {\n                                        _viewportElement[scroll](instantScrollPosition); //scroll instantly to new position\n                                        if (instantScrollTransition) {\n                                            //get the scroll position after instant scroll (in case CSS Snap Points are used) to get the correct snapped scroll position\n                                            //and the animation stops at the correct point\n                                            instantScrollPosition = _viewportElement[scroll]();\n                                            //scroll back to the position before instant scrolling so animation can be performed\n                                            _viewportElement[scroll](currScroll);\n\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.n ? -instantScrollPosition : instantScrollPosition;\n\n                                            scrollObj[xy] = instantScrollPosition;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: 130,\n                                                complete: scrollActionInstantFinished\n                                            }));\n                                        }\n                                        else\n                                            scrollActionInstantFinished();\n                                    }\n                                    else {\n                                        decreaseScroll = isFirstIteration ? decreaseScrollCondition : decreaseScroll;\n                                        finishedCondition = rtlIsNormal\n                                            ? (decreaseScroll ? handleOffset + handleLength >= mouseOffset : handleOffset <= mouseOffset)\n                                            : (decreaseScroll ? handleOffset <= mouseOffset : handleOffset + handleLength >= mouseOffset);\n\n                                        if (finishedCondition) {\n                                            clearTimeout(trackTimeout);\n                                            _base.scrollStop();\n                                            trackTimeout = undefined;\n                                            scrollActionFinsished(true);\n                                        }\n                                        else {\n                                            trackTimeout = setTimeout(scrollAction, timeoutDelay);\n\n                                            scrollObj[xy] = (decreaseScroll ? '-=' : '+=') + scrollDistance;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: scrollDuration\n                                            }));\n                                        }\n                                        isFirstIteration = false;\n                                    }\n                                }\n                            };\n                            if (ctrlKey)\n                                increaseTrackScrollAmount();\n\n                            mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                            mouseDownOffset = COMPATIBILITY.page(event)[xy];\n\n                            _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                            addClass(_bodyElement, _classNameDragging);\n                            addClass(scrollbarVars._track, strActive);\n                            addClass(scrollbarVars._scrollbar, strActive);\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                                [documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart]);\n\n                            scrollAction();\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    }\n                    function onTrackMouseTouchEnter(event) {\n                        //make sure both scrollbars will stay visible if one scrollbar is hovered if autoHide is \"scroll\" or \"move\".\n                        _scrollbarsHandleHovered = true;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(true);\n                    }\n                    function onTrackMouseTouchLeave(event) {\n                        _scrollbarsHandleHovered = false;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(false);\n                    }\n                    function onScrollbarMouseTouchDown(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n\n                    addDestroyEventListener(scrollbarVars._handle,\n                        _strMouseTouchDownEvent,\n                        onHandleMouseTouchDown);\n                    addDestroyEventListener(scrollbarVars._track,\n                        [_strMouseTouchDownEvent, _strMouseEnter, _strMouseLeave],\n                        [onTrackMouseTouchDown, onTrackMouseTouchEnter, onTrackMouseTouchLeave]);\n                    addDestroyEventListener(scrollbarVars._scrollbar,\n                        _strMouseTouchDownEvent,\n                        onScrollbarMouseTouchDown);\n\n                    if (_supportTransition) {\n                        addDestroyEventListener(scrollbarVars._scrollbar, _strTransitionEndEvent, function (event) {\n                            if (event.target !== scrollbarVars._scrollbar[0])\n                                return;\n                            refreshScrollbarHandleLength(isHorizontal);\n                            refreshScrollbarHandleOffset(isHorizontal);\n                        });\n                    }\n                }\n\n                /**\n                 * Shows or hides the given scrollbar and applied a class name which indicates if the scrollbar is scrollable or not.\n                 * @param isHorizontal True if the horizontal scrollbar is the target, false if the vertical scrollbar is the target.\n                 * @param shallBeVisible True if the scrollbar shall be shown, false if hidden.\n                 * @param canScroll True if the scrollbar is scrollable, false otherwise.\n                 */\n                function refreshScrollbarAppearance(isHorizontal, shallBeVisible, canScroll) {\n                    var scrollbarHiddenClassName = isHorizontal ? _classNameHostScrollbarHorizontalHidden : _classNameHostScrollbarVerticalHidden;\n                    var scrollbarElement = isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement;\n\n                    addRemoveClass(_hostElement, scrollbarHiddenClassName, !shallBeVisible);\n                    addRemoveClass(scrollbarElement, _classNameScrollbarUnusable, !canScroll);\n                }\n\n                /**\n                 * Autoshows / autohides both scrollbars with.\n                 * @param shallBeVisible True if the scrollbars shall be autoshown (only the case if they are hidden by a autohide), false if the shall be auto hidden.\n                 * @param delayfree True if the scrollbars shall be hidden without a delay, false or undefined otherwise.\n                 */\n                function refreshScrollbarsAutoHide(shallBeVisible, delayfree) {\n                    clearTimeout(_scrollbarsAutoHideTimeoutId);\n                    if (shallBeVisible) {\n                        //if(_hasOverflowCache.x && _hideOverflowCache.xs)\n                        removeClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                        //if(_hasOverflowCache.y && _hideOverflowCache.ys)\n                        removeClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                    }\n                    else {\n                        var anyActive;\n                        var strActive = 'active';\n                        var hide = function () {\n                            if (!_scrollbarsHandleHovered && !_destroyed) {\n                                anyActive = _scrollbarHorizontalHandleElement.hasClass(strActive) || _scrollbarVerticalHandleElement.hasClass(strActive);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                            }\n                        };\n                        if (_scrollbarsAutoHideDelay > 0 && delayfree !== true)\n                            _scrollbarsAutoHideTimeoutId = setTimeout(hide, _scrollbarsAutoHideDelay);\n                        else\n                            hide();\n                    }\n                }\n\n                /**\n                 * Refreshes the handle length of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 */\n                function refreshScrollbarHandleLength(isHorizontal) {\n                    var handleCSS = {};\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var digit = 1000000;\n                    //get and apply intended handle length\n                    var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);\n                    handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit\n\n                    if (!nativeOverlayScrollbarsAreActive())\n                        scrollbarVars._handle.css(handleCSS);\n\n                    //measure the handle length to respect min & max length\n                    scrollbarVarsInfo._handleLength = scrollbarVars._handle[0]['offset' + scrollbarVars._Width_Height];\n                    scrollbarVarsInfo._handleLengthRatio = handleRatio;\n                }\n\n                /**\n                 * Refreshes the handle offset of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 * @param scrollOrTransition The scroll position of the given scrollbar axis to which the handle shall be moved or a boolean which indicates whether a transition shall be applied. If undefined or boolean if the current scroll-offset is taken. (if isHorizontal ? scrollLeft : scrollTop)\n                 */\n                function refreshScrollbarHandleOffset(isHorizontal, scrollOrTransition) {\n                    var transition = type(scrollOrTransition) == TYPES.b;\n                    var transitionDuration = 250;\n                    var isRTLisHorizontal = _isRTL && isHorizontal;\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var strTranslateBrace = 'translate(';\n                    var strTransform = VENDORS._cssProperty('transform');\n                    var strTransition = VENDORS._cssProperty('transition');\n                    var nativeScroll = isHorizontal ? _viewportElement[_strScrollLeft]() : _viewportElement[_strScrollTop]();\n                    var currentScroll = scrollOrTransition === undefined || transition ? nativeScroll : scrollOrTransition;\n\n                    //measure the handle length to respect min & max length\n                    var handleLength = scrollbarVarsInfo._handleLength;\n                    var trackLength = scrollbarVars._track[0]['offset' + scrollbarVars._Width_Height];\n                    var handleTrackDiff = trackLength - handleLength;\n                    var handleCSS = {};\n                    var transformOffset;\n                    var translateValue;\n\n                    //DONT use the variable '_contentScrollSizeCache[scrollbarVars._w_h]' instead of '_viewportElement[0]['scroll' + scrollbarVars._Width_Height]'\n                    // because its a bit behind during the small delay when content size updates\n                    //(delay = mutationObserverContentLag, if its 0 then this var could be used)\n                    var maxScroll = (_viewportElementNative[_strScroll + scrollbarVars._Width_Height] - _viewportElementNative['client' + scrollbarVars._Width_Height]) * (_rtlScrollBehavior.n && isRTLisHorizontal ? -1 : 1); //* -1 if rtl scroll max is negative\n                    var getScrollRatio = function (base) {\n                        return isNaN(base / maxScroll) ? 0 : MATH.max(0, MATH.min(1, base / maxScroll));\n                    };\n                    var getHandleOffset = function (scrollRatio) {\n                        var offset = handleTrackDiff * scrollRatio;\n                        offset = isNaN(offset) ? 0 : offset;\n                        offset = (isRTLisHorizontal && !_rtlScrollBehavior.i) ? (trackLength - handleLength - offset) : offset;\n                        offset = MATH.max(0, offset);\n                        return offset;\n                    };\n                    var scrollRatio = getScrollRatio(nativeScroll);\n                    var unsnappedScrollRatio = getScrollRatio(currentScroll);\n                    var handleOffset = getHandleOffset(unsnappedScrollRatio);\n                    var snappedHandleOffset = getHandleOffset(scrollRatio);\n\n                    scrollbarVarsInfo._maxScroll = maxScroll;\n                    scrollbarVarsInfo._currentScroll = nativeScroll;\n                    scrollbarVarsInfo._currentScrollRatio = scrollRatio;\n\n                    if (_supportTransform) {\n                        transformOffset = isRTLisHorizontal ? -(trackLength - handleLength - handleOffset) : handleOffset; //in px\n                        //transformOffset = (transformOffset / trackLength * 100) * (trackLength / handleLength); //in %\n                        translateValue = isHorizontal ? strTranslateBrace + transformOffset + 'px, 0)' : strTranslateBrace + '0, ' + transformOffset + 'px)';\n\n                        handleCSS[strTransform] = translateValue;\n\n                        //apply or clear up transition\n                        if (_supportTransition)\n                            handleCSS[strTransition] = transition && MATH.abs(handleOffset - scrollbarVarsInfo._handleOffset) > 1 ? getCSSTransitionString(scrollbarVars._handle) + ', ' + (strTransform + _strSpace + transitionDuration + 'ms') : _strEmpty;\n                    }\n                    else\n                        handleCSS[scrollbarVars._left_top] = handleOffset;\n\n\n                    //only apply css if offset has changed and overflow exists.\n                    if (!nativeOverlayScrollbarsAreActive()) {\n                        scrollbarVars._handle.css(handleCSS);\n\n                        //clear up transition\n                        if (_supportTransform && _supportTransition && transition) {\n                            scrollbarVars._handle.one(_strTransitionEndEvent, function () {\n                                if (!_destroyed)\n                                    scrollbarVars._handle.css(strTransition, _strEmpty);\n                            });\n                        }\n                    }\n\n                    scrollbarVarsInfo._handleOffset = handleOffset;\n                    scrollbarVarsInfo._snappedHandleOffset = snappedHandleOffset;\n                    scrollbarVarsInfo._trackLength = trackLength;\n                }\n\n                /**\n                 * Refreshes the interactivity of the given scrollbar element.\n                 * @param isTrack True if the track element is the target, false if the handle element is the target.\n                 * @param value True for interactivity false for no interactivity.\n                 */\n                function refreshScrollbarsInteractive(isTrack, value) {\n                    var action = value ? 'removeClass' : 'addClass';\n                    var element1 = isTrack ? _scrollbarHorizontalTrackElement : _scrollbarHorizontalHandleElement;\n                    var element2 = isTrack ? _scrollbarVerticalTrackElement : _scrollbarVerticalHandleElement;\n                    var className = isTrack ? _classNameScrollbarTrackOff : _classNameScrollbarHandleOff;\n\n                    element1[action](className);\n                    element2[action](className);\n                }\n\n                /**\n                 * Returns a object which is used for fast access for specific variables.\n                 * @param isHorizontal True if the horizontal scrollbar vars shall be accessed, false if the vertical scrollbar vars shall be accessed.\n                 * @returns {{wh: string, WH: string, lt: string, _wh: string, _lt: string, t: *, h: *, c: {}, s: *}}\n                 */\n                function getScrollbarVars(isHorizontal) {\n                    return {\n                        _width_height: isHorizontal ? _strWidth : _strHeight,\n                        _Width_Height: isHorizontal ? 'Width' : 'Height',\n                        _left_top: isHorizontal ? _strLeft : _strTop,\n                        _Left_Top: isHorizontal ? 'Left' : 'Top',\n                        _x_y: isHorizontal ? _strX : _strY,\n                        _X_Y: isHorizontal ? 'X' : 'Y',\n                        _w_h: isHorizontal ? 'w' : 'h',\n                        _l_t: isHorizontal ? 'l' : 't',\n                        _track: isHorizontal ? _scrollbarHorizontalTrackElement : _scrollbarVerticalTrackElement,\n                        _handle: isHorizontal ? _scrollbarHorizontalHandleElement : _scrollbarVerticalHandleElement,\n                        _scrollbar: isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement,\n                        _info: isHorizontal ? _scrollHorizontalInfo : _scrollVerticalInfo\n                    };\n                }\n\n\n                //==== Scrollbar Corner ====//\n\n                /**\n                 * Builds or destroys the scrollbar corner DOM element.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarCornerDOM(destroy) {\n                    _scrollbarCornerElement = _scrollbarCornerElement || selectOrGenerateDivByClass(_classNameScrollbarCorner, true);\n\n                    if (!destroy) {\n                        if (!_domExists) {\n                            _hostElement.append(_scrollbarCornerElement);\n                        }\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            removeClass(_scrollbarCornerElement.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                        }\n                        else {\n                            remove(_scrollbarCornerElement);\n                        }\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar corner interactivity events.\n                 */\n                function setupScrollbarCornerEvents() {\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var mouseDownPosition = {};\n                    var mouseDownSize = {};\n                    var mouseDownInvertedScale = {};\n                    var reconnectMutationObserver;\n\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var pageOffset = getCoordinates(event);\n                            var hostElementCSS = {};\n                            if (_resizeHorizontal || _resizeBoth)\n                                hostElementCSS[_strWidth] = (mouseDownSize.w + (pageOffset.x - mouseDownPosition.x) * mouseDownInvertedScale.x);\n                            if (_resizeVertical || _resizeBoth)\n                                hostElementCSS[_strHeight] = (mouseDownSize.h + (pageOffset.y - mouseDownPosition.y) * mouseDownInvertedScale.y);\n                            _hostElement.css(hostElementCSS);\n                            COMPATIBILITY.stpP(event);\n                        }\n                        else {\n                            documentMouseTouchUp(event);\n                        }\n                    }\n                    function documentMouseTouchUp(event) {\n                        var eventIsTrusted = event !== undefined;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                            [documentOnSelectStart, documentDragMove, documentMouseTouchUp],\n                            true);\n\n                        removeClass(_bodyElement, _classNameDragging);\n                        if (_scrollbarCornerElement.releaseCapture)\n                            _scrollbarCornerElement.releaseCapture();\n\n                        if (eventIsTrusted) {\n                            if (reconnectMutationObserver)\n                                connectMutationObservers();\n                            _base.update(_strAuto);\n                        }\n                        reconnectMutationObserver = false;\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function getCoordinates(event) {\n                        return _msieVersion && insideIFrame ? { x: event.screenX, y: event.screenY } : COMPATIBILITY.page(event);\n                    }\n\n                    addDestroyEventListener(_scrollbarCornerElement, _strMouseTouchDownEvent, function (event) {\n                        if (onMouseTouchDownContinue(event) && !_resizeNone) {\n                            if (_mutationObserversConnected) {\n                                reconnectMutationObserver = true;\n                                disconnectMutationObservers();\n                            }\n\n                            mouseDownPosition = getCoordinates(event);\n\n                            mouseDownSize.w = _hostElementNative[LEXICON.oW] - (!_isBorderBox ? _paddingX : 0);\n                            mouseDownSize.h = _hostElementNative[LEXICON.oH] - (!_isBorderBox ? _paddingY : 0);\n                            mouseDownInvertedScale = getHostElementInvertedScale();\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                                [documentOnSelectStart, documentDragMove, documentMouseTouchUp]);\n\n                            addClass(_bodyElement, _classNameDragging);\n                            if (_scrollbarCornerElement.setCapture)\n                                _scrollbarCornerElement.setCapture();\n\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    });\n                }\n\n\n                //==== Utils ====//\n\n                /**\n                 * Calls the callback with the given name. The Context of this callback is always _base (this).\n                 * @param name The name of the target which shall be called.\n                 * @param args The args with which the callback shall be called.\n                 * @param dependent Boolean which decides whether the callback shall be fired, undefined is like a \"true\" value.\n                 */\n                function dispatchCallback(name, args, dependent) {\n                    if (dependent === false)\n                        return;\n                    if (_initialized) {\n                        var callback = _currentPreparedOptions.callbacks[name];\n                        var extensionOnName = name;\n                        var ext;\n\n                        if (extensionOnName.substr(0, 2) === 'on')\n                            extensionOnName = extensionOnName.substr(2, 1).toLowerCase() + extensionOnName.substr(3);\n\n                        if (type(callback) == TYPES.f)\n                            callback.call(_base, args);\n\n                        each(_extensions, function () {\n                            ext = this;\n                            if (type(ext.on) == TYPES.f)\n                                ext.on(extensionOnName, args);\n                        });\n                    }\n                    else if (!_destroyed)\n                        _callbacksInitQeueue.push({ n: name, a: args });\n                }\n\n                /**\n                 * Sets the \"top, right, bottom, left\" properties, with a given prefix, of the given css object.\n                 * @param targetCSSObject The css object to which the values shall be applied.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param values A array of values which shall be applied to the \"top, right, bottom, left\" -properties. The array order is [top, right, bottom, left].\n                 * If this argument is undefined the value '' (empty string) will be applied to all properties.\n                 */\n                function setTopRightBottomLeft(targetCSSObject, prefix, values) {\n                    prefix = prefix || _strEmpty;\n                    values = values || [_strEmpty, _strEmpty, _strEmpty, _strEmpty];\n\n                    targetCSSObject[prefix + _strTop] = values[0];\n                    targetCSSObject[prefix + _strRight] = values[1];\n                    targetCSSObject[prefix + _strBottom] = values[2];\n                    targetCSSObject[prefix + _strLeft] = values[3];\n                }\n\n                /**\n                 * Gets the \"top, right, bottom, left\" CSS properties of the CSS property with the given prefix from the host element.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param suffix The suffix of the \"top, right, bottom, left\" css properties. (example: 'border-' is a valid prefix with '-width' is a valid suffix)\n                 * @param zeroX True if the x axis shall be 0.\n                 * @param zeroY True if the y axis shall be 0.\n                 * @returns {{}} The object which contains the numbers of the read CSS properties.\n                 */\n                function getTopRightBottomLeftHost(prefix, suffix, zeroX, zeroY) {\n                    suffix = suffix || _strEmpty;\n                    prefix = prefix || _strEmpty;\n                    return {\n                        t: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strTop + suffix)),\n                        r: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strRight + suffix)),\n                        b: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strBottom + suffix)),\n                        l: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strLeft + suffix))\n                    };\n                }\n\n                /**\n                 * Returns the computed CSS transition string from the given element.\n                 * @param element The element from which the transition string shall be returned.\n                 * @returns {string} The CSS transition string from the given element.\n                 */\n                function getCSSTransitionString(element) {\n                    var transitionStr = VENDORS._cssProperty('transition');\n                    var assembledValue = element.css(transitionStr);\n                    if (assembledValue)\n                        return assembledValue;\n                    var regExpString = '\\\\s*(' + '([^,(]+(\\\\(.+?\\\\))?)+' + ')[\\\\s,]*';\n                    var regExpMain = new RegExp(regExpString);\n                    var regExpValidate = new RegExp('^(' + regExpString + ')+$');\n                    var properties = 'property duration timing-function delay'.split(' ');\n                    var result = [];\n                    var strResult;\n                    var valueArray;\n                    var i = 0;\n                    var j;\n                    var splitCssStyleByComma = function (str) {\n                        strResult = [];\n                        if (!str.match(regExpValidate))\n                            return str;\n                        while (str.match(regExpMain)) {\n                            strResult.push(RegExp.$1);\n                            str = str.replace(regExpMain, _strEmpty);\n                        }\n\n                        return strResult;\n                    };\n                    for (; i < properties[LEXICON.l]; i++) {\n                        valueArray = splitCssStyleByComma(element.css(transitionStr + '-' + properties[i]));\n                        for (j = 0; j < valueArray[LEXICON.l]; j++)\n                            result[j] = (result[j] ? result[j] + _strSpace : _strEmpty) + valueArray[j];\n                    }\n                    return result.join(', ');\n                }\n\n                /**\n                 * Generates a Regular Expression which matches with a string which starts with 'os-host'.\n                 * @param {boolean} withCurrClassNameOption The Regular Expression also matches if the string is the current ClassName option (multiple values splitted by space possible).\n                 * @param {boolean} withOldClassNameOption The Regular Expression also matches if the string is the old ClassName option (multiple values splitted by space possible).\n                 */\n                function createHostClassNameRegExp(withCurrClassNameOption, withOldClassNameOption) {\n                    var i;\n                    var split;\n                    var appendix;\n                    var appendClasses = function (classes, condition) {\n                        appendix = '';\n                        if (condition && typeof classes == TYPES.s) {\n                            split = classes.split(_strSpace);\n                            for (i = 0; i < split[LEXICON.l]; i++)\n                                appendix += '|' + split[i] + '$';\n                            // split[i].replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') for escaping regex characters\n                        }\n                        return appendix;\n                    };\n\n                    return new RegExp(\n                        '(^' + _classNameHostElement + '([-_].+|)$)' +\n                        appendClasses(_classNameCache, withCurrClassNameOption) +\n                        appendClasses(_oldClassName, withOldClassNameOption), 'g');\n                }\n\n                /**\n                 * Calculates the host-elements inverted scale. (invertedScale = 1 / scale)\n                 * @returns {{x: number, y: number}} The scale of the host-element.\n                 */\n                function getHostElementInvertedScale() {\n                    var rect = _paddingElementNative[LEXICON.bCR]();\n                    return {\n                        x: _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,\n                        y: _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1\n                    };\n                }\n\n                /**\n                 * Checks whether the given object is a HTMLElement.\n                 * @param o The object which shall be checked.\n                 * @returns {boolean} True the given object is a HTMLElement, false otherwise.\n                 */\n                function isHTMLElement(o) {\n                    var strOwnerDocument = 'ownerDocument';\n                    var strHTMLElement = 'HTMLElement';\n                    var wnd = o && o[strOwnerDocument] ? (o[strOwnerDocument].parentWindow || window) : window;\n                    return (\n                        typeof wnd[strHTMLElement] == TYPES.o ? o instanceof wnd[strHTMLElement] : //DOM2\n                            o && typeof o == TYPES.o && o !== null && o.nodeType === 1 && typeof o.nodeName == TYPES.s\n                    );\n                }\n\n                /**\n                 * Compares 2 arrays and returns the differences between them as a array.\n                 * @param a1 The first array which shall be compared.\n                 * @param a2 The second array which shall be compared.\n                 * @returns {Array} The differences between the two arrays.\n                 */\n                function getArrayDifferences(a1, a2) {\n                    var a = [];\n                    var diff = [];\n                    var i;\n                    var k;\n                    for (i = 0; i < a1.length; i++)\n                        a[a1[i]] = true;\n                    for (i = 0; i < a2.length; i++) {\n                        if (a[a2[i]])\n                            delete a[a2[i]];\n                        else\n                            a[a2[i]] = true;\n                    }\n                    for (k in a)\n                        diff.push(k);\n                    return diff;\n                }\n\n                /**\n                 * Returns Zero or the number to which the value can be parsed.\n                 * @param value The value which shall be parsed.\n                 * @param toFloat Indicates whether the number shall be parsed to a float.\n                 */\n                function parseToZeroOrNumber(value, toFloat) {\n                    var num = toFloat ? parseFloat(value) : parseInt(value, 10);\n                    return isNaN(num) ? 0 : num;\n                }\n\n                /**\n                 * Gets several information of the textarea and returns them as a object or undefined if the browser doesn't support it.\n                 * @returns {{cursorRow: Number, cursorCol, rows: Number, cols: number, wRow: number, pos: number, max : number}} or undefined if not supported.\n                 */\n                function getTextareaInfo() {\n                    //read needed values\n                    var textareaCursorPosition = _targetElementNative.selectionStart;\n                    if (textareaCursorPosition === undefined)\n                        return;\n\n                    var textareaValue = _targetElement.val();\n                    var textareaLength = textareaValue[LEXICON.l];\n                    var textareaRowSplit = textareaValue.split('\\n');\n                    var textareaLastRow = textareaRowSplit[LEXICON.l];\n                    var textareaCurrentCursorRowSplit = textareaValue.substr(0, textareaCursorPosition).split('\\n');\n                    var widestRow = 0;\n                    var textareaLastCol = 0;\n                    var cursorRow = textareaCurrentCursorRowSplit[LEXICON.l];\n                    var cursorCol = textareaCurrentCursorRowSplit[textareaCurrentCursorRowSplit[LEXICON.l] - 1][LEXICON.l];\n                    var rowCols;\n                    var i;\n\n                    //get widest Row and the last column of the textarea\n                    for (i = 0; i < textareaRowSplit[LEXICON.l]; i++) {\n                        rowCols = textareaRowSplit[i][LEXICON.l];\n                        if (rowCols > textareaLastCol) {\n                            widestRow = i + 1;\n                            textareaLastCol = rowCols;\n                        }\n                    }\n\n                    return {\n                        _cursorRow: cursorRow, //cursorRow\n                        _cursorColumn: cursorCol, //cursorCol\n                        _rows: textareaLastRow, //rows\n                        _columns: textareaLastCol, //cols\n                        _widestRow: widestRow, //wRow\n                        _cursorPosition: textareaCursorPosition, //pos\n                        _cursorMax: textareaLength //max\n                    };\n                }\n\n                /**\n                 * Determines whether native overlay scrollbars are active.\n                 * @returns {boolean} True if native overlay scrollbars are active, false otherwise.\n                 */\n                function nativeOverlayScrollbarsAreActive() {\n                    return (_ignoreOverlayScrollbarHidingCache && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y));\n                }\n\n                /**\n                 * Gets the element which is used to measure the content size.\n                 * @returns {*} TextareaCover if target element is textarea else the ContentElement.\n                 */\n                function getContentMeasureElement() {\n                    return _isTextarea ? _textareaCoverElement[0] : _contentElementNative;\n                }\n\n                /**\n                 * Generates a string which represents a HTML div with the given classes or attributes.\n                 * @param classesOrAttrs The class of the div as string or a object which represents the attributes of the div. (The class attribute can also be written as \"className\".)\n                 * @param content The content of the div as string.\n                 * @returns {string} The concated string which represents a HTML div and its content.\n                 */\n                function generateDiv(classesOrAttrs, content) {\n                    return '<div ' + (classesOrAttrs ? type(classesOrAttrs) == TYPES.s ?\n                        'class=\"' + classesOrAttrs + '\"' :\n                        (function () {\n                            var key;\n                            var attrs = _strEmpty;\n                            if (FRAMEWORK.isPlainObject(classesOrAttrs)) {\n                                for (key in classesOrAttrs)\n                                    attrs += (key === 'c' ? 'class' : key) + '=\"' + classesOrAttrs[key] + '\" ';\n                            }\n                            return attrs;\n                        })() :\n                        _strEmpty) +\n                        '>' +\n                        (content || _strEmpty) +\n                        '</div>';\n                }\n\n                /**\n                 * Selects or generates a div with the given class attribute.\n                 * @param className The class names (divided by spaces) of the div which shall be selected or generated.\n                 * @param selectParentOrOnlyChildren The parent element from which of the element shall be selected. (if undefined or boolean its hostElement)\n                 * If its a boolean it decides whether only the children of the host element shall be selected.\n                 * @returns {*} The generated or selected element.\n                 */\n                function selectOrGenerateDivByClass(className, selectParentOrOnlyChildren) {\n                    var onlyChildren = type(selectParentOrOnlyChildren) == TYPES.b;\n                    var selectParent = onlyChildren ? _hostElement : (selectParentOrOnlyChildren || _hostElement);\n\n                    return (_domExists && !selectParent[LEXICON.l])\n                        ? null\n                        : _domExists\n                            ? selectParent[onlyChildren ? 'children' : 'find'](_strDot + className.replace(/\\s/g, _strDot)).eq(0)\n                            : FRAMEWORK(generateDiv(className))\n                }\n\n                /**\n                 * Gets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be got.\n                 * @param path The property of which the value shall be got.\n                 * @returns {*} Returns the value of the searched property or undefined of the property wasn't found.\n                 */\n                function getObjectPropVal(obj, path) {\n                    var splits = path.split(_strDot);\n                    var i = 0;\n                    var val;\n                    for (; i < splits.length; i++) {\n                        if (!obj[LEXICON.hOP](splits[i]))\n                            return;\n                        val = obj[splits[i]];\n                        if (i < splits.length && type(val) == TYPES.o)\n                            obj = val;\n                    }\n                    return val;\n                }\n\n                /**\n                 * Sets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be set.\n                 * @param path The property of which the value shall be set.\n                 * @param val The value of the property which shall be set.\n                 */\n                function setObjectPropVal(obj, path, val) {\n                    var splits = path.split(_strDot);\n                    var splitsLength = splits.length;\n                    var i = 0;\n                    var extendObj = {};\n                    var extendObjRoot = extendObj;\n                    for (; i < splitsLength; i++)\n                        extendObj = extendObj[splits[i]] = i + 1 < splitsLength ? {} : val;\n                    FRAMEWORK.extend(obj, extendObjRoot, true);\n                }\n\n                /**\t\n                 * Runs a action for each selector inside the updateOnLoad option.\t\n                 * @param {Function} action The action for each updateOnLoad selector, the arguments the function takes is the index and the value (the selector).\t\n                 */\n                function eachUpdateOnLoad(action) {\n                    var updateOnLoad = _currentPreparedOptions.updateOnLoad;\n                    updateOnLoad = type(updateOnLoad) == TYPES.s ? updateOnLoad.split(_strSpace) : updateOnLoad;\n\n                    if (COMPATIBILITY.isA(updateOnLoad) && !_destroyed) {\n                        each(updateOnLoad, action);\n                    }\n                }\n\n\n                //==== Utils Cache ====//\n\n                /**\n                 * Compares two values or objects and returns true if they aren't equal.\n                 * @param current The first value or object which shall be compared.\n                 * @param cache The second value or object which shall be compared.\n                 * @param force If true the returned value is always true.\n                 * @returns {boolean} True if both values or objects aren't equal or force is true, false otherwise.\n                 */\n                function checkCache(current, cache, force) {\n                    if (force)\n                        return force;\n                    if (type(current) == TYPES.o && type(cache) == TYPES.o) {\n                        for (var prop in current) {\n                            if (prop !== 'c') {\n                                if (current[LEXICON.hOP](prop) && cache[LEXICON.hOP](prop)) {\n                                    if (checkCache(current[prop], cache[prop]))\n                                        return true;\n                                }\n                                else {\n                                    return true;\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        return current !== cache;\n                    }\n                    return false;\n                }\n\n\n                //==== Shortcuts ====//\n\n                /**\n                 * jQuery extend method shortcut with a appended \"true\" as first argument.\n                 */\n                function extendDeep() {\n                    return FRAMEWORK.extend.apply(this, [true].concat([].slice.call(arguments)));\n                }\n\n                /**\n                 * jQuery addClass method shortcut.\n                 */\n                function addClass(el, classes) {\n                    return _frameworkProto.addClass.call(el, classes);\n                }\n\n                /**\n                 * jQuery removeClass method shortcut.\n                 */\n                function removeClass(el, classes) {\n                    return _frameworkProto.removeClass.call(el, classes);\n                }\n\n                /**\n                 * Adds or removes the given classes dependent on the boolean value. True for add, false for remove.\n                 */\n                function addRemoveClass(el, classes, doAdd) {\n                    return doAdd ? addClass(el, classes) : removeClass(el, classes);\n                }\n\n                /**\n                 * jQuery remove method shortcut.\n                 */\n                function remove(el) {\n                    return _frameworkProto.remove.call(el);\n                }\n\n                /**\n                 * Finds the first child element with the given selector of the given element.\n                 * @param el The root element from which the selector shall be valid.\n                 * @param selector The selector of the searched element.\n                 * @returns {*} The first element which is a child of the given element and matches the givens selector.\n                 */\n                function findFirst(el, selector) {\n                    return _frameworkProto.find.call(el, selector).eq(0);\n                }\n\n\n                //==== API ====//\n\n                /**\n                 * Puts the instance to sleep. It wont respond to any changes in the DOM and won't update. Scrollbar Interactivity is also disabled as well as the resize handle.\n                 * This behavior can be reset by calling the update method.\n                 */\n                _base.sleep = function () {\n                    _sleeping = true;\n                };\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param force True if every property shall be updated and the cache shall be ignored.\n                 * !INTERNAL USAGE! : force can be a string \"auto\", \"sync\" or \"zoom\" too\n                 * if \"auto\" then before a real update the content size and host element attributes gets checked, and if they changed only then the update method will be called.\n                 * if \"sync\" then the async update process (MutationObserver or UpdateLoop) gets synchronized and a corresponding update takes place if one was needed due to pending changes.\n                 * if \"zoom\" then a update takes place where it's assumed that content and host size changed\n                 * @returns {boolean|undefined} \n                 * If force is \"sync\" then a boolean is returned which indicates whether a update was needed due to pending changes.\n                 * If force is \"auto\" then a boolean is returned whether a update was needed due to attribute or size changes.\n                 * undefined otherwise.\n                 */\n                _base.update = function (force) {\n                    if (_destroyed)\n                        return;\n\n                    var attrsChanged;\n                    var contentSizeC;\n                    var isString = type(force) == TYPES.s;\n                    var doUpdateAuto;\n                    var mutHost;\n                    var mutContent;\n\n                    if (isString) {\n                        if (force === _strAuto) {\n                            attrsChanged = meaningfulAttrsChanged();\n                            contentSizeC = updateAutoContentSizeChanged();\n                            doUpdateAuto = attrsChanged || contentSizeC;\n                            if (doUpdateAuto) {\n                                update({\n                                    _contentSizeChanged: contentSizeC,\n                                    _changedOptions: _initialized ? undefined : _currentPreparedOptions\n                                });\n                            }\n                        }\n                        else if (force === _strSync) {\n                            if (_mutationObserversConnected) {\n                                mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());\n                                mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());\n                            }\n                            else {\n                                mutHost = _base.update(_strAuto);\n                            }\n                        }\n                        else if (force === 'zoom') {\n                            update({\n                                _hostSizeChanged: true,\n                                _contentSizeChanged: true\n                            });\n                        }\n                    }\n                    else {\n                        force = _sleeping || force;\n                        _sleeping = false;\n                        if (!_base.update(_strSync) || force)\n                            update({ _force: force });\n                    }\n\n                    updateElementsOnLoad();\n\n                    return doUpdateAuto || mutHost || mutContent;\n                };\n\n                /**\n                 Gets or sets the current options. The update method will be called automatically if new options were set.\n                 * @param newOptions If new options are given, then the new options will be set, if new options aren't given (undefined or a not a plain object) then the current options will be returned.\n                 * @param value If new options is a property path string, then this value will be used to set the option to which the property path string leads.\n                 * @returns {*}\n                 */\n                _base.options = function (newOptions, value) {\n                    var option = {};\n                    var changedOps;\n\n                    //return current options if newOptions are undefined or empty\n                    if (FRAMEWORK.isEmptyObject(newOptions) || !FRAMEWORK.isPlainObject(newOptions)) {\n                        if (type(newOptions) == TYPES.s) {\n                            if (arguments.length > 1) {\n                                setObjectPropVal(option, newOptions, value);\n                                changedOps = setOptions(option);\n                            }\n                            else\n                                return getObjectPropVal(_currentOptions, newOptions);\n                        }\n                        else\n                            return _currentOptions;\n                    }\n                    else {\n                        changedOps = setOptions(newOptions);\n                    }\n\n                    if (!FRAMEWORK.isEmptyObject(changedOps)) {\n                        update({ _changedOptions: changedOps });\n                    }\n                };\n\n                /**\n                 * Restore the DOM, disconnects all observers, remove all resize observers and put the instance to sleep.\n                 */\n                _base.destroy = function () {\n                    if (_destroyed)\n                        return;\n\n                    //remove this instance from auto update loop\n                    autoUpdateLoop.remove(_base);\n\n                    //disconnect all mutation observers\n                    disconnectMutationObservers();\n\n                    //remove all resize observers\n                    setupResizeObserver(_sizeObserverElement);\n                    setupResizeObserver(_sizeAutoObserverElement);\n\n                    //remove all extensions\n                    for (var extName in _extensions)\n                        _base.removeExt(extName);\n\n                    //remove all 'destroy' events\n                    while (_destroyEvents[LEXICON.l] > 0)\n                        _destroyEvents.pop()();\n\n                    //remove all events from host element\n                    setupHostMouseTouchEvents(true);\n\n                    //remove all helper / detection elements\n                    if (_contentGlueElement)\n                        remove(_contentGlueElement);\n                    if (_contentArrangeElement)\n                        remove(_contentArrangeElement);\n                    if (_sizeAutoObserverAdded)\n                        remove(_sizeAutoObserverElement);\n\n                    //remove all generated DOM\n                    setupScrollbarsDOM(true);\n                    setupScrollbarCornerDOM(true);\n                    setupStructureDOM(true);\n\n                    //remove all generated image load events\n                    for (var i = 0; i < _updateOnLoadElms[LEXICON.l]; i++)\n                        FRAMEWORK(_updateOnLoadElms[i]).off(_updateOnLoadEventName, updateOnLoadCallback);\n                    _updateOnLoadElms = undefined;\n\n                    _destroyed = true;\n                    _sleeping = true;\n\n                    //remove this instance from the instances list\n                    INSTANCES(pluginTargetElement, 0);\n                    dispatchCallback('onDestroyed');\n\n                    //remove all properties and methods\n                    //for (var property in _base)\n                    //    delete _base[property];\n                    //_base = undefined;\n                };\n\n                /**\n                 * Scrolls to a given position or element.\n                 * @param coordinates\n                 * 1. Can be \"coordinates\" which looks like:\n                 *    { x : ?, y : ? } OR          Object with x and y properties\n                 *    { left : ?, top : ? } OR     Object with left and top properties\n                 *    { l : ?, t : ? } OR          Object with l and t properties\n                 *    [ ?, ? ] OR                  Array where the first two element are the coordinates (first is x, second is y)\n                 *    ?                            A single value which stays for both axis\n                 *    A value can be a number, a string or a calculation.\n                 *\n                 *    Operators:\n                 *    [NONE]  The current scroll will be overwritten by the value.\n                 *    '+='    The value will be added to the current scroll offset\n                 *    '-='    The value will be subtracted from the current scroll offset\n                 *    '*='    The current scroll wil be multiplicated by the value.\n                 *    '/='    The current scroll wil be divided by the value.\n                 *\n                 *    Units:\n                 *    [NONE]  The value is the final scroll amount.                   final = (value * 1)\n                 *    'px'    Same as none\n                 *    '%'     The value is dependent on the current scroll value.     final = ((currentScrollValue / 100) * value)\n                 *    'vw'    The value is multiplicated by the viewport width.       final = (value * viewportWidth)\n                 *    'vh'    The value is multiplicated by the viewport height.      final = (value * viewportHeight)\n                 *\n                 *    example final values:\n                 *    200, '200px', '50%', '1vw', '1vh', '+=200', '/=1vw', '*=2px', '-=5vh', '+=33%', '+= 50% - 2px', '-= 1vw - 50%'\n                 *\n                 * 2. Can be a HTML or jQuery element:\n                 *    The final scroll offset is the offset (without margin) of the given HTML / jQuery element.\n                 *\n                 * 3. Can be a object with a HTML or jQuery element with additional settings:\n                 *    {\n                 *      el : [HTMLElement, jQuery element],             MUST be specified, else this object isn't valid.\n                 *      scroll : [string, array, object],               Default value is 'always'.\n                 *      block : [string, array, object],                Default value is 'begin'.\n                 *      margin : [number, boolean, array, object]       Default value is false.\n                 *    }\n                 *\n                 *    Possible scroll settings are:\n                 *    'always'      Scrolls always.\n                 *    'ifneeded'    Scrolls only if the element isnt fully in view.\n                 *    'never'       Scrolls never.\n                 *\n                 *    Possible block settings are:\n                 *    'begin'   Both axis shall be docked to the \"begin\" edge. - The element will be docked to the top and left edge of the viewport.\n                 *    'end'     Both axis shall be docked to the \"end\" edge. - The element will be docked to the bottom and right edge of the viewport. (If direction is RTL to the bottom and left edge.)\n                 *    'center'  Both axis shall be docked to \"center\". - The element will be centered in the viewport.\n                 *    'nearest' The element will be docked to the nearest edge(s).\n                 *\n                 *    Possible margin settings are: -- The actual margin of the element wont be affect, this option affects only the final scroll offset.\n                 *    [BOOLEAN]                                         If true the css margin of the element will be used, if false no margin will be used.\n                 *    [NUMBER]                                          The margin will be used for all edges.\n                 *\n                 * @param duration The duration of the scroll animation, OR a jQuery animation configuration object.\n                 * @param easing The animation easing.\n                 * @param complete The animation complete callback.\n                 * @returns {{\n                 *   position: {x: number, y: number},\n                 *   ratio: {x: number, y: number},\n                 *   max: {x: number, y: number},\n                 *   handleOffset: {x: number, y: number},\n                 *   handleLength: {x: number, y: number},\n                 *   handleLengthRatio: {x: number, y: number}, t\n                 *   rackLength: {x: number, y: number},\n                 *   isRTL: boolean,\n                 *   isRTLNormalized: boolean\n                 *  }}\n                 */\n                _base.scroll = function (coordinates, duration, easing, complete) {\n                    if (arguments.length === 0 || coordinates === undefined) {\n                        var infoX = _scrollHorizontalInfo;\n                        var infoY = _scrollVerticalInfo;\n                        var normalizeInvert = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.i;\n                        var normalizeNegate = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.n;\n                        var scrollX = infoX._currentScroll;\n                        var scrollXRatio = infoX._currentScrollRatio;\n                        var maxScrollX = infoX._maxScroll;\n                        scrollXRatio = normalizeInvert ? 1 - scrollXRatio : scrollXRatio;\n                        scrollX = normalizeInvert ? maxScrollX - scrollX : scrollX;\n                        scrollX *= normalizeNegate ? -1 : 1;\n                        maxScrollX *= normalizeNegate ? -1 : 1;\n\n                        return {\n                            position: {\n                                x: scrollX,\n                                y: infoY._currentScroll\n                            },\n                            ratio: {\n                                x: scrollXRatio,\n                                y: infoY._currentScrollRatio\n                            },\n                            max: {\n                                x: maxScrollX,\n                                y: infoY._maxScroll\n                            },\n                            handleOffset: {\n                                x: infoX._handleOffset,\n                                y: infoY._handleOffset\n                            },\n                            handleLength: {\n                                x: infoX._handleLength,\n                                y: infoY._handleLength\n                            },\n                            handleLengthRatio: {\n                                x: infoX._handleLengthRatio,\n                                y: infoY._handleLengthRatio\n                            },\n                            trackLength: {\n                                x: infoX._trackLength,\n                                y: infoY._trackLength\n                            },\n                            snappedHandleOffset: {\n                                x: infoX._snappedHandleOffset,\n                                y: infoY._snappedHandleOffset\n                            },\n                            isRTL: _isRTL,\n                            isRTLNormalized: _normalizeRTLCache\n                        };\n                    }\n\n                    _base.update(_strSync);\n\n                    var normalizeRTL = _normalizeRTLCache;\n                    var coordinatesXAxisProps = [_strX, _strLeft, 'l'];\n                    var coordinatesYAxisProps = [_strY, _strTop, 't'];\n                    var coordinatesOperators = ['+=', '-=', '*=', '/='];\n                    var durationIsObject = type(duration) == TYPES.o;\n                    var completeCallback = durationIsObject ? duration.complete : complete;\n                    var i;\n                    var finalScroll = {};\n                    var specialEasing = {};\n                    var doScrollLeft;\n                    var doScrollTop;\n                    var animationOptions;\n                    var strEnd = 'end';\n                    var strBegin = 'begin';\n                    var strCenter = 'center';\n                    var strNearest = 'nearest';\n                    var strAlways = 'always';\n                    var strNever = 'never';\n                    var strIfNeeded = 'ifneeded';\n                    var strLength = LEXICON.l;\n                    var settingsAxis;\n                    var settingsScroll;\n                    var settingsBlock;\n                    var settingsMargin;\n                    var finalElement;\n                    var elementObjSettingsAxisValues = [_strX, _strY, 'xy', 'yx'];\n                    var elementObjSettingsBlockValues = [strBegin, strEnd, strCenter, strNearest];\n                    var elementObjSettingsScrollValues = [strAlways, strNever, strIfNeeded];\n                    var coordinatesIsElementObj = coordinates[LEXICON.hOP]('el');\n                    var possibleElement = coordinatesIsElementObj ? coordinates.el : coordinates;\n                    var possibleElementIsJQuery = possibleElement instanceof FRAMEWORK || JQUERY ? possibleElement instanceof JQUERY : false;\n                    var possibleElementIsHTMLElement = possibleElementIsJQuery ? false : isHTMLElement(possibleElement);\n                    var updateScrollbarInfos = function () {\n                        if (doScrollLeft)\n                            refreshScrollbarHandleOffset(true);\n                        if (doScrollTop)\n                            refreshScrollbarHandleOffset(false);\n                    };\n                    var proxyCompleteCallback = type(completeCallback) != TYPES.f ? undefined : function () {\n                        updateScrollbarInfos();\n                        completeCallback();\n                    };\n                    function checkSettingsStringValue(currValue, allowedValues) {\n                        for (i = 0; i < allowedValues[strLength]; i++) {\n                            if (currValue === allowedValues[i])\n                                return true;\n                        }\n                        return false;\n                    }\n                    function getRawScroll(isX, coordinates) {\n                        var coordinateProps = isX ? coordinatesXAxisProps : coordinatesYAxisProps;\n                        coordinates = type(coordinates) == TYPES.s || type(coordinates) == TYPES.n ? [coordinates, coordinates] : coordinates;\n\n                        if (COMPATIBILITY.isA(coordinates))\n                            return isX ? coordinates[0] : coordinates[1];\n                        else if (type(coordinates) == TYPES.o) {\n                            //decides RTL normalization \"hack\" with .n\n                            //normalizeRTL = type(coordinates.n) == TYPES.b ? coordinates.n : normalizeRTL; \n                            for (i = 0; i < coordinateProps[strLength]; i++)\n                                if (coordinateProps[i] in coordinates)\n                                    return coordinates[coordinateProps[i]];\n                        }\n                    }\n                    function getFinalScroll(isX, rawScroll) {\n                        var isString = type(rawScroll) == TYPES.s;\n                        var operator;\n                        var amount;\n                        var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;\n                        var currScroll = scrollInfo._currentScroll;\n                        var maxScroll = scrollInfo._maxScroll;\n                        var mult = ' * ';\n                        var finalValue;\n                        var isRTLisX = _isRTL && isX;\n                        var normalizeShortcuts = isRTLisX && _rtlScrollBehavior.n && !normalizeRTL;\n                        var strReplace = 'replace';\n                        var evalFunc = eval;\n                        var possibleOperator;\n                        if (isString) {\n                            //check operator\n                            if (rawScroll[strLength] > 2) {\n                                possibleOperator = rawScroll.substr(0, 2);\n                                if (inArray(possibleOperator, coordinatesOperators) > -1)\n                                    operator = possibleOperator;\n                            }\n\n                            //calculate units and shortcuts\n                            rawScroll = operator ? rawScroll.substr(2) : rawScroll;\n                            rawScroll = rawScroll\n                            [strReplace](/min/g, 0) //'min' = 0%\n                            [strReplace](/</g, 0)   //'<'   = 0%\n                            [strReplace](/max/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)    //'max' = 100%\n                            [strReplace](/>/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)      //'>'   = 100%\n                            [strReplace](/px/g, _strEmpty)\n                            [strReplace](/%/g, mult + (maxScroll * (isRTLisX && _rtlScrollBehavior.n ? -1 : 1) / 100.0))\n                            [strReplace](/vw/g, mult + _viewportSize.w)\n                            [strReplace](/vh/g, mult + _viewportSize.h);\n                            amount = parseToZeroOrNumber(isNaN(rawScroll) ? parseToZeroOrNumber(evalFunc(rawScroll), true).toFixed() : rawScroll);\n                        }\n                        else {\n                            amount = rawScroll;\n                        }\n\n                        if (amount !== undefined && !isNaN(amount) && type(amount) == TYPES.n) {\n                            var normalizeIsRTLisX = normalizeRTL && isRTLisX;\n                            var operatorCurrScroll = currScroll * (normalizeIsRTLisX && _rtlScrollBehavior.n ? -1 : 1);\n                            var invert = normalizeIsRTLisX && _rtlScrollBehavior.i;\n                            var negate = normalizeIsRTLisX && _rtlScrollBehavior.n;\n                            operatorCurrScroll = invert ? (maxScroll - operatorCurrScroll) : operatorCurrScroll;\n                            switch (operator) {\n                                case '+=':\n                                    finalValue = operatorCurrScroll + amount;\n                                    break;\n                                case '-=':\n                                    finalValue = operatorCurrScroll - amount;\n                                    break;\n                                case '*=':\n                                    finalValue = operatorCurrScroll * amount;\n                                    break;\n                                case '/=':\n                                    finalValue = operatorCurrScroll / amount;\n                                    break;\n                                default:\n                                    finalValue = amount;\n                                    break;\n                            }\n                            finalValue = invert ? maxScroll - finalValue : finalValue;\n                            finalValue *= negate ? -1 : 1;\n                            finalValue = isRTLisX && _rtlScrollBehavior.n ? MATH.min(0, MATH.max(maxScroll, finalValue)) : MATH.max(0, MATH.min(maxScroll, finalValue));\n                        }\n                        return finalValue === currScroll ? undefined : finalValue;\n                    }\n                    function getPerAxisValue(value, valueInternalType, defaultValue, allowedValues) {\n                        var resultDefault = [defaultValue, defaultValue];\n                        var valueType = type(value);\n                        var valueArrLength;\n                        var valueArrItem;\n\n                        //value can be [ string, or array of two strings ]\n                        if (valueType == valueInternalType) {\n                            value = [value, value];\n                        }\n                        else if (valueType == TYPES.a) {\n                            valueArrLength = value[strLength];\n                            if (valueArrLength > 2 || valueArrLength < 1)\n                                value = resultDefault;\n                            else {\n                                if (valueArrLength === 1)\n                                    value[1] = defaultValue;\n                                for (i = 0; i < valueArrLength; i++) {\n                                    valueArrItem = value[i];\n                                    if (type(valueArrItem) != valueInternalType || !checkSettingsStringValue(valueArrItem, allowedValues)) {\n                                        value = resultDefault;\n                                        break;\n                                    }\n                                }\n                            }\n                        }\n                        else if (valueType == TYPES.o)\n                            value = [value[_strX] || defaultValue, value[_strY] || defaultValue];\n                        else\n                            value = resultDefault;\n                        return { x: value[0], y: value[1] };\n                    }\n                    function generateMargin(marginTopRightBottomLeftArray) {\n                        var result = [];\n                        var currValue;\n                        var currValueType;\n                        var valueDirections = [_strTop, _strRight, _strBottom, _strLeft];\n                        for (i = 0; i < marginTopRightBottomLeftArray[strLength]; i++) {\n                            if (i === valueDirections[strLength])\n                                break;\n                            currValue = marginTopRightBottomLeftArray[i];\n                            currValueType = type(currValue);\n                            if (currValueType == TYPES.b)\n                                result.push(currValue ? parseToZeroOrNumber(finalElement.css(_strMarginMinus + valueDirections[i])) : 0);\n                            else\n                                result.push(currValueType == TYPES.n ? currValue : 0);\n                        }\n                        return result;\n                    }\n\n                    if (possibleElementIsJQuery || possibleElementIsHTMLElement) {\n                        //get settings\n                        var margin = coordinatesIsElementObj ? coordinates.margin : 0;\n                        var axis = coordinatesIsElementObj ? coordinates.axis : 0;\n                        var scroll = coordinatesIsElementObj ? coordinates.scroll : 0;\n                        var block = coordinatesIsElementObj ? coordinates.block : 0;\n                        var marginDefault = [0, 0, 0, 0];\n                        var marginType = type(margin);\n                        var marginLength;\n                        finalElement = possibleElementIsJQuery ? possibleElement : FRAMEWORK(possibleElement);\n\n                        if (finalElement[strLength] > 0) {\n                            //margin can be [ boolean, number, array of 2, array of 4, object ]\n                            if (marginType == TYPES.n || marginType == TYPES.b)\n                                margin = generateMargin([margin, margin, margin, margin]);\n                            else if (marginType == TYPES.a) {\n                                marginLength = margin[strLength];\n                                if (marginLength === 2)\n                                    margin = generateMargin([margin[0], margin[1], margin[0], margin[1]]);\n                                else if (marginLength >= 4)\n                                    margin = generateMargin(margin);\n                                else\n                                    margin = marginDefault;\n                            }\n                            else if (marginType == TYPES.o)\n                                margin = generateMargin([margin[_strTop], margin[_strRight], margin[_strBottom], margin[_strLeft]]);\n                            else\n                                margin = marginDefault;\n\n                            //block = type(block) === TYPES.b ? block ? [ strNearest, strBegin ] : [ strNearest, strEnd ] : block;\n                            settingsAxis = checkSettingsStringValue(axis, elementObjSettingsAxisValues) ? axis : 'xy';\n                            settingsScroll = getPerAxisValue(scroll, TYPES.s, strAlways, elementObjSettingsScrollValues);\n                            settingsBlock = getPerAxisValue(block, TYPES.s, strBegin, elementObjSettingsBlockValues);\n                            settingsMargin = margin;\n\n                            var viewportScroll = {\n                                l: _scrollHorizontalInfo._currentScroll,\n                                t: _scrollVerticalInfo._currentScroll\n                            };\n                            // use padding element instead of viewport element because padding element has never padding, margin or position applied.\n                            var viewportOffset = _paddingElement.offset();\n\n                            //get coordinates\n                            var elementOffset = finalElement.offset();\n                            var doNotScroll = {\n                                x: settingsScroll.x == strNever || settingsAxis == _strY,\n                                y: settingsScroll.y == strNever || settingsAxis == _strX\n                            };\n                            elementOffset[_strTop] -= settingsMargin[0];\n                            elementOffset[_strLeft] -= settingsMargin[3];\n                            var elementScrollCoordinates = {\n                                x: MATH.round(elementOffset[_strLeft] - viewportOffset[_strLeft] + viewportScroll.l),\n                                y: MATH.round(elementOffset[_strTop] - viewportOffset[_strTop] + viewportScroll.t)\n                            };\n                            if (_isRTL) {\n                                if (!_rtlScrollBehavior.n && !_rtlScrollBehavior.i)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + viewportScroll.l);\n                                if (_rtlScrollBehavior.n && normalizeRTL)\n                                    elementScrollCoordinates.x *= -1;\n                                if (_rtlScrollBehavior.i && normalizeRTL)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + (_scrollHorizontalInfo._maxScroll - viewportScroll.l));\n                            }\n\n                            //measuring is required\n                            if (settingsBlock.x != strBegin || settingsBlock.y != strBegin || settingsScroll.x == strIfNeeded || settingsScroll.y == strIfNeeded || _isRTL) {\n                                var measuringElm = finalElement[0];\n                                var rawElementSize = _supportTransform ? measuringElm[LEXICON.bCR]() : {\n                                    width: measuringElm[LEXICON.oW],\n                                    height: measuringElm[LEXICON.oH]\n                                };\n                                var elementSize = {\n                                    w: rawElementSize[_strWidth] + settingsMargin[3] + settingsMargin[1],\n                                    h: rawElementSize[_strHeight] + settingsMargin[0] + settingsMargin[2]\n                                };\n                                var finalizeBlock = function (isX) {\n                                    var vars = getScrollbarVars(isX);\n                                    var wh = vars._w_h;\n                                    var lt = vars._left_top;\n                                    var xy = vars._x_y;\n                                    var blockIsEnd = settingsBlock[xy] == (isX ? _isRTL ? strBegin : strEnd : strEnd);\n                                    var blockIsCenter = settingsBlock[xy] == strCenter;\n                                    var blockIsNearest = settingsBlock[xy] == strNearest;\n                                    var scrollNever = settingsScroll[xy] == strNever;\n                                    var scrollIfNeeded = settingsScroll[xy] == strIfNeeded;\n                                    var vpSize = _viewportSize[wh];\n                                    var vpOffset = viewportOffset[lt];\n                                    var elSize = elementSize[wh];\n                                    var elOffset = elementOffset[lt];\n                                    var divide = blockIsCenter ? 2 : 1;\n                                    var elementCenterOffset = elOffset + (elSize / 2);\n                                    var viewportCenterOffset = vpOffset + (vpSize / 2);\n                                    var isInView =\n                                        elSize <= vpSize\n                                        && elOffset >= vpOffset\n                                        && elOffset + elSize <= vpOffset + vpSize;\n\n                                    if (scrollNever)\n                                        doNotScroll[xy] = true;\n                                    else if (!doNotScroll[xy]) {\n                                        if (blockIsNearest || scrollIfNeeded) {\n                                            doNotScroll[xy] = scrollIfNeeded ? isInView : false;\n                                            blockIsEnd = elSize < vpSize ? elementCenterOffset > viewportCenterOffset : elementCenterOffset < viewportCenterOffset;\n                                        }\n                                        elementScrollCoordinates[xy] -= blockIsEnd || blockIsCenter ? ((vpSize / divide) - (elSize / divide)) * (isX && _isRTL && normalizeRTL ? -1 : 1) : 0;\n                                    }\n                                };\n                                finalizeBlock(true);\n                                finalizeBlock(false);\n                            }\n\n                            if (doNotScroll.y)\n                                delete elementScrollCoordinates.y;\n                            if (doNotScroll.x)\n                                delete elementScrollCoordinates.x;\n\n                            coordinates = elementScrollCoordinates;\n                        }\n                    }\n\n                    finalScroll[_strScrollLeft] = getFinalScroll(true, getRawScroll(true, coordinates));\n                    finalScroll[_strScrollTop] = getFinalScroll(false, getRawScroll(false, coordinates));\n                    doScrollLeft = finalScroll[_strScrollLeft] !== undefined;\n                    doScrollTop = finalScroll[_strScrollTop] !== undefined;\n\n                    if ((doScrollLeft || doScrollTop) && (duration > 0 || durationIsObject)) {\n                        if (durationIsObject) {\n                            duration.complete = proxyCompleteCallback;\n                            _viewportElement.animate(finalScroll, duration);\n                        }\n                        else {\n                            animationOptions = {\n                                duration: duration,\n                                complete: proxyCompleteCallback\n                            };\n                            if (COMPATIBILITY.isA(easing) || FRAMEWORK.isPlainObject(easing)) {\n                                specialEasing[_strScrollLeft] = easing[0] || easing.x;\n                                specialEasing[_strScrollTop] = easing[1] || easing.y;\n                                animationOptions.specialEasing = specialEasing;\n                            }\n                            else {\n                                animationOptions.easing = easing;\n                            }\n                            _viewportElement.animate(finalScroll, animationOptions);\n                        }\n                    }\n                    else {\n                        if (doScrollLeft)\n                            _viewportElement[_strScrollLeft](finalScroll[_strScrollLeft]);\n                        if (doScrollTop)\n                            _viewportElement[_strScrollTop](finalScroll[_strScrollTop]);\n                        updateScrollbarInfos();\n                    }\n                };\n\n                /**\n                 * Stops all scroll animations.\n                 * @returns {*} The current OverlayScrollbars instance (for chaining).\n                 */\n                _base.scrollStop = function (param1, param2, param3) {\n                    _viewportElement.stop(param1, param2, param3);\n                    return _base;\n                };\n\n                /**\n                 * Returns all relevant elements.\n                 * @param elementName The name of the element which shall be returned.\n                 * @returns {{target: *, host: *, padding: *, viewport: *, content: *, scrollbarHorizontal: {scrollbar: *, track: *, handle: *}, scrollbarVertical: {scrollbar: *, track: *, handle: *}, scrollbarCorner: *} | *}\n                 */\n                _base.getElements = function (elementName) {\n                    var obj = {\n                        target: _targetElementNative,\n                        host: _hostElementNative,\n                        padding: _paddingElementNative,\n                        viewport: _viewportElementNative,\n                        content: _contentElementNative,\n                        scrollbarHorizontal: {\n                            scrollbar: _scrollbarHorizontalElement[0],\n                            track: _scrollbarHorizontalTrackElement[0],\n                            handle: _scrollbarHorizontalHandleElement[0]\n                        },\n                        scrollbarVertical: {\n                            scrollbar: _scrollbarVerticalElement[0],\n                            track: _scrollbarVerticalTrackElement[0],\n                            handle: _scrollbarVerticalHandleElement[0]\n                        },\n                        scrollbarCorner: _scrollbarCornerElement[0]\n                    };\n                    return type(elementName) == TYPES.s ? getObjectPropVal(obj, elementName) : obj;\n                };\n\n                /**\n                 * Returns a object which describes the current state of this instance.\n                 * @param stateProperty A specific property from the state object which shall be returned.\n                 * @returns {{widthAuto, heightAuto, overflowAmount, hideOverflow, hasOverflow, contentScrollSize, viewportSize, hostSize, autoUpdate} | *}\n                 */\n                _base.getState = function (stateProperty) {\n                    function prepare(obj) {\n                        if (!FRAMEWORK.isPlainObject(obj))\n                            return obj;\n                        var extended = extendDeep({}, obj);\n                        var changePropertyName = function (from, to) {\n                            if (extended[LEXICON.hOP](from)) {\n                                extended[to] = extended[from];\n                                delete extended[from];\n                            }\n                        };\n                        changePropertyName('w', _strWidth); //change w to width\n                        changePropertyName('h', _strHeight); //change h to height\n                        delete extended.c; //delete c (the 'changed' prop)\n                        return extended;\n                    };\n                    var obj = {\n                        destroyed: !!prepare(_destroyed),\n                        sleeping: !!prepare(_sleeping),\n                        autoUpdate: prepare(!_mutationObserversConnected),\n                        widthAuto: prepare(_widthAutoCache),\n                        heightAuto: prepare(_heightAutoCache),\n                        padding: prepare(_cssPaddingCache),\n                        overflowAmount: prepare(_overflowAmountCache),\n                        hideOverflow: prepare(_hideOverflowCache),\n                        hasOverflow: prepare(_hasOverflowCache),\n                        contentScrollSize: prepare(_contentScrollSizeCache),\n                        viewportSize: prepare(_viewportSize),\n                        hostSize: prepare(_hostSizeCache),\n                        documentMixed: prepare(_documentMixed)\n                    };\n                    return type(stateProperty) == TYPES.s ? getObjectPropVal(obj, stateProperty) : obj;\n                };\n\n                /**\n                 * Gets all or specific extension instance.\n                 * @param extName The name of the extension from which the instance shall be got.\n                 * @returns {{}} The instance of the extension with the given name or undefined if the instance couldn't be found.\n                 */\n                _base.ext = function (extName) {\n                    var result;\n                    var privateMethods = _extensionsPrivateMethods.split(' ');\n                    var i = 0;\n                    if (type(extName) == TYPES.s) {\n                        if (_extensions[LEXICON.hOP](extName)) {\n                            result = extendDeep({}, _extensions[extName]);\n                            for (; i < privateMethods.length; i++)\n                                delete result[privateMethods[i]];\n                        }\n                    }\n                    else {\n                        result = {};\n                        for (i in _extensions)\n                            result[i] = extendDeep({}, _base.ext(i));\n                    }\n                    return result;\n                };\n\n                /**\n                 * Adds a extension to this instance.\n                 * @param extName The name of the extension which shall be added.\n                 * @param extensionOptions The extension options which shall be used.\n                 * @returns {{}} The instance of the added extension or undefined if the extension couldn't be added properly.\n                 */\n                _base.addExt = function (extName, extensionOptions) {\n                    var registeredExtensionObj = _plugin.extension(extName);\n                    var instance;\n                    var instanceAdded;\n                    var instanceContract;\n                    var contractResult;\n                    var contractFulfilled = true;\n                    if (registeredExtensionObj) {\n                        if (!_extensions[LEXICON.hOP](extName)) {\n                            instance = registeredExtensionObj.extensionFactory.call(_base,\n                                extendDeep({}, registeredExtensionObj.defaultOptions),\n                                FRAMEWORK,\n                                COMPATIBILITY);\n\n                            if (instance) {\n                                instanceContract = instance.contract;\n                                if (type(instanceContract) == TYPES.f) {\n                                    contractResult = instanceContract(window);\n                                    contractFulfilled = type(contractResult) == TYPES.b ? contractResult : contractFulfilled;\n                                }\n                                if (contractFulfilled) {\n                                    _extensions[extName] = instance;\n                                    instanceAdded = instance.added;\n                                    if (type(instanceAdded) == TYPES.f)\n                                        instanceAdded(extensionOptions);\n\n                                    return _base.ext(extName);\n                                }\n                            }\n                        }\n                        else\n                            return _base.ext(extName);\n                    }\n                    else\n                        console.warn(\"A extension with the name \\\"\" + extName + \"\\\" isn't registered.\");\n                };\n\n                /**\n                 * Removes a extension from this instance.\n                 * @param extName The name of the extension which shall be removed.\n                 * @returns {boolean} True if the extension was removed, false otherwise e.g. if the extension wasn't added before.\n                 */\n                _base.removeExt = function (extName) {\n                    var instance = _extensions[extName];\n                    var instanceRemoved;\n                    if (instance) {\n                        delete _extensions[extName];\n\n                        instanceRemoved = instance.removed;\n                        if (type(instanceRemoved) == TYPES.f)\n                            instanceRemoved();\n\n                        return true;\n                    }\n                    return false;\n                };\n\n                /**\n                 * Constructs the plugin.\n                 * @param targetElement The element to which the plugin shall be applied.\n                 * @param options The initial options of the plugin.\n                 * @param extensions The extension(s) which shall be added right after the initialization.\n                 * @returns {boolean} True if the plugin was successfully initialized, false otherwise.\n                 */\n                function construct(targetElement, options, extensions) {\n                    _defaultOptions = globals.defaultOptions;\n                    _nativeScrollbarStyling = globals.nativeScrollbarStyling;\n                    _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    _nativeScrollbarIsOverlaid = extendDeep({}, globals.nativeScrollbarIsOverlaid);\n                    _overlayScrollbarDummySize = extendDeep({}, globals.overlayScrollbarDummySize);\n                    _rtlScrollBehavior = extendDeep({}, globals.rtlScrollBehavior);\n\n                    //parse & set options but don't update\n                    setOptions(extendDeep({}, _defaultOptions, options));\n\n                    _cssCalc = globals.cssCalc;\n                    _msieVersion = globals.msie;\n                    _autoUpdateRecommended = globals.autoUpdateRecommended;\n                    _supportTransition = globals.supportTransition;\n                    _supportTransform = globals.supportTransform;\n                    _supportPassiveEvents = globals.supportPassiveEvents;\n                    _supportResizeObserver = globals.supportResizeObserver;\n                    _supportMutationObserver = globals.supportMutationObserver;\n                    _restrictedMeasuring = globals.restrictedMeasuring;\n                    _documentElement = FRAMEWORK(targetElement.ownerDocument);\n                    _documentElementNative = _documentElement[0];\n                    _windowElement = FRAMEWORK(_documentElementNative.defaultView || _documentElementNative.parentWindow);\n                    _windowElementNative = _windowElement[0];\n                    _htmlElement = findFirst(_documentElement, 'html');\n                    _bodyElement = findFirst(_htmlElement, 'body');\n                    _targetElement = FRAMEWORK(targetElement);\n                    _targetElementNative = _targetElement[0];\n                    _isTextarea = _targetElement.is('textarea');\n                    _isBody = _targetElement.is('body');\n                    _documentMixed = _documentElementNative !== document;\n\n                    /* On a div Element The if checks only whether:\n                     * - the targetElement has the class \"os-host\"\n                     * - the targetElement has a a child with the class \"os-padding\"\n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-host\" element is the targetElement)\n                     *\n                     *  <div class=\"os-host\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding\">\n                     *          <div class=\"os-viewport\">\n                     *              <div class=\"os-content\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     *\n                     * =====================================================================================\n                     * \n                     * On a Textarea Element The if checks only whether:\n                     * - the targetElement has the class \"os-textarea\" \n                     * - the targetElement is inside a element with the class \"os-content\" \n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-textarea\" (textarea) element is the targetElement)\n                     *\n                     *  <div class=\"os-host-textarea\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding os-text-inherit\">\n                     *          <div class=\"os-viewport os-text-inherit\">\n                     *              <div class=\"os-content os-text-inherit\">\n                     *                  <div class=\"os-textarea-cover\"></div>\n                     *                  <textarea class=\"os-textarea os-text-inherit\"></textarea>\n                     *              </div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     */\n                    _domExists = _isTextarea\n                        ? _targetElement.hasClass(_classNameTextareaElement) && _targetElement.parent().hasClass(_classNameContentElement)\n                        : _targetElement.hasClass(_classNameHostElement) && _targetElement.children(_strDot + _classNamePaddingElement)[LEXICON.l];\n\n                    var initBodyScroll;\n                    var bodyMouseTouchDownListener;\n\n                    //check if the plugin hasn't to be initialized\n                    if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y && !_currentPreparedOptions.nativeScrollbarsOverlaid.initialize) {\n                        dispatchCallback('onInitializationWithdrawn');\n                        if (_domExists) {\n                            setupStructureDOM(true);\n                            setupScrollbarsDOM(true);\n                            setupScrollbarCornerDOM(true);\n                        }\n\n                        _destroyed = true;\n                        _sleeping = true;\n\n                        return _base;\n                    }\n\n                    if (_isBody) {\n                        initBodyScroll = {};\n                        initBodyScroll.l = MATH.max(_targetElement[_strScrollLeft](), _htmlElement[_strScrollLeft](), _windowElement[_strScrollLeft]());\n                        initBodyScroll.t = MATH.max(_targetElement[_strScrollTop](), _htmlElement[_strScrollTop](), _windowElement[_strScrollTop]());\n\n                        bodyMouseTouchDownListener = function () {\n                            _viewportElement.removeAttr(LEXICON.ti);\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, true, true);\n                        }\n                    }\n\n                    //build OverlayScrollbars DOM\n                    setupStructureDOM();\n                    setupScrollbarsDOM();\n                    setupScrollbarCornerDOM();\n\n                    //create OverlayScrollbars events\n                    setupStructureEvents();\n                    setupScrollbarEvents(true);\n                    setupScrollbarEvents(false);\n                    setupScrollbarCornerEvents();\n\n                    //create mutation observers\n                    createMutationObservers();\n\n                    //build resize observer for the host element\n                    setupResizeObserver(_sizeObserverElement, hostOnResized);\n\n                    if (_isBody) {\n                        //apply the body scroll to handle it right in the update method\n                        _viewportElement[_strScrollLeft](initBodyScroll.l)[_strScrollTop](initBodyScroll.t);\n\n                        //set the focus on the viewport element so you dont have to click on the page to use keyboard keys (up / down / space) for scrolling\n                        if (document.activeElement == targetElement && _viewportElementNative.focus) {\n                            //set a tabindex to make the viewportElement focusable\n                            _viewportElement.attr(LEXICON.ti, '-1');\n                            _viewportElementNative.focus();\n\n                            /* the tabindex has to be removed due to;\n                             * If you set the tabindex attribute on an <div>, then its child content cannot be scrolled with the arrow keys unless you set tabindex on the content, too\n                             * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n                             */\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, false, true);\n                        }\n                    }\n\n                    //update for the first time & initialize cache\n                    _base.update(_strAuto);\n\n                    //the plugin is initialized now!\n                    _initialized = true;\n                    dispatchCallback('onInitialized');\n\n                    //call all callbacks which would fire before the initialized was complete\n                    each(_callbacksInitQeueue, function (index, value) { dispatchCallback(value.n, value.a); });\n                    _callbacksInitQeueue = [];\n\n                    //add extensions\n                    if (type(extensions) == TYPES.s)\n                        extensions = [extensions];\n                    if (COMPATIBILITY.isA(extensions))\n                        each(extensions, function (index, value) { _base.addExt(value); });\n                    else if (FRAMEWORK.isPlainObject(extensions))\n                        each(extensions, function (key, value) { _base.addExt(key, value); });\n\n                    //add the transition class for transitions AFTER the first update & AFTER the applied extensions (for preventing unwanted transitions)\n                    setTimeout(function () {\n                        if (_supportTransition && !_destroyed)\n                            addClass(_hostElement, _classNameHostTransition);\n                    }, 333);\n\n                    return _base;\n                }\n\n                if (_plugin.valid(construct(pluginTargetElement, options, extensions))) {\n                    INSTANCES(pluginTargetElement, _base);\n                }\n\n                return _base;\n            }\n\n            /**\n             * Initializes a new OverlayScrollbarsInstance object or changes options if already initialized or returns the current instance.\n             * @param pluginTargetElements The elements to which the Plugin shall be initialized.\n             * @param options The custom options with which the plugin shall be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*}\n             */\n            _plugin = window[PLUGINNAME] = function (pluginTargetElements, options, extensions) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var arr = [];\n                var optsIsPlainObj = FRAMEWORK.isPlainObject(options);\n                var inst;\n                var result;\n\n                //pluginTargetElements is null or undefined\n                if (!pluginTargetElements)\n                    return optsIsPlainObj || !options ? result : arr;\n\n                /*\n                   pluginTargetElements will be converted to:\n                   1. A jQueryElement Array\n                   2. A HTMLElement Array\n                   3. A Array with a single HTML Element\n                   so pluginTargetElements is always a array.\n                */\n                pluginTargetElements = pluginTargetElements[LEXICON.l] != undefined ? pluginTargetElements : [pluginTargetElements[0] || pluginTargetElements];\n                initOverlayScrollbarsStatics();\n\n                if (pluginTargetElements[LEXICON.l] > 0) {\n                    if (optsIsPlainObj) {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = v;\n                            if (inst !== undefined)\n                                arr.push(OverlayScrollbarsInstance(inst, options, extensions, _pluginsGlobals, _pluginsAutoUpdateLoop));\n                        });\n                    }\n                    else {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = INSTANCES(v);\n                            if ((options === '!' && _plugin.valid(inst)) || (COMPATIBILITY.type(options) == TYPES.f && options(v, inst)))\n                                arr.push(inst);\n                            else if (options === undefined)\n                                arr.push(inst);\n                        });\n                    }\n                    result = arr[LEXICON.l] === 1 ? arr[0] : arr;\n                }\n                return result;\n            };\n\n            /**\n             * Returns a object which contains global information about the plugin and each instance of it.\n             * The returned object is just a copy, that means that changes to the returned object won't have any effect to the original object.\n             */\n            _plugin.globals = function () {\n                initOverlayScrollbarsStatics();\n                var globals = FRAMEWORK.extend(true, {}, _pluginsGlobals);\n                delete globals['msie'];\n                return globals;\n            };\n\n            /**\n             * Gets or Sets the default options for each new plugin initialization.\n             * @param newDefaultOptions The object with which the default options shall be extended.\n             */\n            _plugin.defaultOptions = function (newDefaultOptions) {\n                initOverlayScrollbarsStatics();\n                var currDefaultOptions = _pluginsGlobals.defaultOptions;\n                if (newDefaultOptions === undefined)\n                    return FRAMEWORK.extend(true, {}, currDefaultOptions);\n\n                //set the new default options\n                _pluginsGlobals.defaultOptions = FRAMEWORK.extend(true, {}, currDefaultOptions, _pluginsOptions._validate(newDefaultOptions, _pluginsOptions._template, true, currDefaultOptions)._default);\n            };\n\n            /**\n             * Checks whether the passed instance is a non-destroyed OverlayScrollbars instance.\n             * @param osInstance The potential OverlayScrollbars instance which shall be checked.\n             * @returns {boolean} True if the passed value is a non-destroyed OverlayScrollbars instance, false otherwise.\n             */\n            _plugin.valid = function (osInstance) {\n                return osInstance instanceof _plugin && !osInstance.getState().destroyed;\n            };\n\n            /**\n             * Registers, Unregisters or returns a extension.\n             * Register: Pass the name and the extension. (defaultOptions is optional)\n             * Unregister: Pass the name and anything except a function as extension parameter.\n             * Get extension: Pass the name of the extension which shall be got.\n             * Get all extensions: Pass no arguments.\n             * @param extensionName The name of the extension which shall be registered, unregistered or returned.\n             * @param extension A function which generates the instance of the extension or anything other to remove a already registered extension.\n             * @param defaultOptions The default options which shall be used for the registered extension.\n             */\n            _plugin.extension = function (extensionName, extension, defaultOptions) {\n                var extNameTypeString = COMPATIBILITY.type(extensionName) == TYPES.s;\n                var argLen = arguments[LEXICON.l];\n                var i = 0;\n                if (argLen < 1 || !extNameTypeString) {\n                    //return a copy of all extension objects\n                    return FRAMEWORK.extend(true, { length: _pluginsExtensions[LEXICON.l] }, _pluginsExtensions);\n                }\n                else if (extNameTypeString) {\n                    if (COMPATIBILITY.type(extension) == TYPES.f) {\n                        //register extension\n                        _pluginsExtensions.push({\n                            name: extensionName,\n                            extensionFactory: extension,\n                            defaultOptions: defaultOptions\n                        });\n                    }\n                    else {\n                        for (; i < _pluginsExtensions[LEXICON.l]; i++) {\n                            if (_pluginsExtensions[i].name === extensionName) {\n                                if (argLen > 1)\n                                    _pluginsExtensions.splice(i, 1); //remove extension\n                                else\n                                    return FRAMEWORK.extend(true, {}, _pluginsExtensions[i]); //return extension with the given name\n                            }\n                        }\n                    }\n                }\n            };\n\n            return _plugin;\n        })();\n\n        if (JQUERY && JQUERY.fn) {\n            /**\n             * The jQuery initialization interface.\n             * @param options The initial options for the construction of the plugin. To initialize the plugin, this option has to be a object! If it isn't a object, the instance(s) are returned and the plugin wont be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*} After initialization it returns the jQuery element array, else it returns the instance(s) of the elements which are selected.\n             */\n            JQUERY.fn.overlayScrollbars = function (options, extensions) {\n                var _elements = this;\n                if (JQUERY.isPlainObject(options)) {\n                    JQUERY.each(_elements, function () { PLUGIN(this, options, extensions); });\n                    return _elements;\n                }\n                else\n                    return PLUGIN(_elements, options);\n            };\n        }\n        return PLUGIN;\n    }\n));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/esm/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  var elementRect = void 0;\n  if (element.nodeName === 'HTML') {\n    var _getWindowSizes = getWindowSizes(element.ownerDocument),\n        width = _getWindowSizes.width,\n        height = _getWindowSizes.height;\n\n    elementRect = {\n      width: width,\n      height: height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement: computeAutoPlacement,\n  debounce: debounce,\n  findIndex: findIndex,\n  getBordersSize: getBordersSize,\n  getBoundaries: getBoundaries,\n  getBoundingClientRect: getBoundingClientRect,\n  getClientRect: getClientRect,\n  getOffsetParent: getOffsetParent,\n  getOffsetRect: getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes: getOuterSizes,\n  getParentNode: getParentNode,\n  getPopperOffsets: getPopperOffsets,\n  getReferenceOffsets: getReferenceOffsets,\n  getScroll: getScroll,\n  getScrollParent: getScrollParent,\n  getStyleComputedProperty: getStyleComputedProperty,\n  getSupportedPropertyName: getSupportedPropertyName,\n  getWindowSizes: getWindowSizes,\n  isFixed: isFixed,\n  isFunction: isFunction,\n  isModifierEnabled: isModifierEnabled,\n  isModifierRequired: isModifierRequired,\n  isNumeric: isNumeric,\n  removeEventListeners: removeEventListeners,\n  runModifiers: runModifiers,\n  setAttributes: setAttributes,\n  setStyles: setStyles,\n  setupEventListeners: setupEventListeners\n};\n\nexport { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };\nexport default index;\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/esm/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10) ? parseInt(html[`offset${axis}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width = sizes.width || element.clientWidth || result.width;\n  const height = sizes.height || element.clientHeight || result.height;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = isIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop);\n    const marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  const parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  const sortedAreas = Object.keys(rects).map(key => _extends({\n    key\n  }, rects[key], {\n    area: getArea(rects[key])\n  })).sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);\n\n  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n\nconst timeoutDuration = function () {\n  const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  let called = false;\n  return () => {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(() => {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  const getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired = !!requesting && modifiers.some(modifier => {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners\n};\n\nexport { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };\nexport default index;\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nconst timeoutDuration = function () {\n  const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  let called = false;\n  return () => {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(() => {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  const getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10) ? parseInt(html[`offset${axis}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width = sizes.width || element.clientWidth || result.width;\n  const height = sizes.height || element.clientHeight || result.height;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = isIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop);\n    const marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  const parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  const sortedAreas = Object.keys(rects).map(key => _extends({\n    key\n  }, rects[key], {\n    area: getArea(rects[key])\n  })).sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);\n\n  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  const placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  const { popper, reference } = data.offsets;\n  const { round, floor } = Math;\n  const noRound = v => v;\n\n  const referenceWidth = round(reference.width);\n  const popperWidth = round(popper.width);\n\n  const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  const isVariation = data.placement.indexOf('-') !== -1;\n  const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  const horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  const verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(data.instance.modifiers, modifier => modifier.name === 'applyStyle').gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  const gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position\n  };\n\n  const offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  const prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  let left, top;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = `${sideA}, ${sideB}`;\n  }\n\n  // Attributes\n  const attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired = !!requesting && modifiers.some(modifier => {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n  let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {\n    [side]: Math.round(sideValue),\n    [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nconst BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach((step, index) => {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    const flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    const flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    let size;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  const offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  const divider = fragments.indexOf(find(fragments, frag => frag.search(/,|\\s/) !== -1));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    let mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce((a, b) => {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(str => toValue(str, measurement, popperOffsets, referenceOffsets));\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((frag, index2) => {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  let boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return { [mainSide]: value };\n    }\n  };\n\n  order.forEach(placement => {\n    const side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement]\n      }\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(data.instance.modifiers, modifier => modifier.name === 'preventOverflow').boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: () => {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: () => {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nclass Popper {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  constructor(reference, popper, options = {}) {\n    this.scheduleUpdate = () => requestAnimationFrame(this.update);\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(name => {\n      this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(name => _extends({\n      name\n    }, this.options.modifiers[name]))\n    // sort the modifiers by order\n    .sort((a, b) => a.order - b.order);\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(this.reference, this.popper, this.options, modifierOptions, this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\n    return disableEventListeners.call(this);\n  }\n\n  /**\n   * Schedules an update. It will run on the next UI update available.\n   * @method scheduleUpdate\n   * @memberof Popper\n   */\n\n\n  /**\n   * Collection of utilities useful when writing custom modifiers.\n   * Starting from version 1.7, this method is available only if you\n   * include `popper-utils.js` before `popper.js`.\n   *\n   * **DEPRECATION**: This way to access PopperUtils is deprecated\n   * and will be removed in v2! Use the PopperUtils module directly instead.\n   * Due to the high instability of the methods contained in Utils, we can't\n   * guarantee them to follow semver. Use them at your own risk!\n   * @static\n   * @private\n   * @type {Object}\n   * @deprecated since version 1.8\n   * @member Utils\n   * @memberof Popper\n   */\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/umd/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.PopperUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  var elementRect = void 0;\n  if (element.nodeName === 'HTML') {\n    var _getWindowSizes = getWindowSizes(element.ownerDocument),\n        width = _getWindowSizes.width,\n        height = _getWindowSizes.height;\n\n    elementRect = {\n      width: width,\n      height: height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement: computeAutoPlacement,\n  debounce: debounce,\n  findIndex: findIndex,\n  getBordersSize: getBordersSize,\n  getBoundaries: getBoundaries,\n  getBoundingClientRect: getBoundingClientRect,\n  getClientRect: getClientRect,\n  getOffsetParent: getOffsetParent,\n  getOffsetRect: getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes: getOuterSizes,\n  getParentNode: getParentNode,\n  getPopperOffsets: getPopperOffsets,\n  getReferenceOffsets: getReferenceOffsets,\n  getScroll: getScroll,\n  getScrollParent: getScrollParent,\n  getStyleComputedProperty: getStyleComputedProperty,\n  getSupportedPropertyName: getSupportedPropertyName,\n  getWindowSizes: getWindowSizes,\n  isFixed: isFixed,\n  isFunction: isFunction,\n  isModifierEnabled: isModifierEnabled,\n  isModifierRequired: isModifierRequired,\n  isNumeric: isNumeric,\n  removeEventListeners: removeEventListeners,\n  runModifiers: runModifiers,\n  setAttributes: setAttributes,\n  setStyles: setStyles,\n  setupEventListeners: setupEventListeners\n};\n\nexports.computeAutoPlacement = computeAutoPlacement;\nexports.debounce = debounce;\nexports.findIndex = findIndex;\nexports.getBordersSize = getBordersSize;\nexports.getBoundaries = getBoundaries;\nexports.getBoundingClientRect = getBoundingClientRect;\nexports.getClientRect = getClientRect;\nexports.getOffsetParent = getOffsetParent;\nexports.getOffsetRect = getOffsetRect;\nexports.getOffsetRectRelativeToArbitraryNode = getOffsetRectRelativeToArbitraryNode;\nexports.getOuterSizes = getOuterSizes;\nexports.getParentNode = getParentNode;\nexports.getPopperOffsets = getPopperOffsets;\nexports.getReferenceOffsets = getReferenceOffsets;\nexports.getScroll = getScroll;\nexports.getScrollParent = getScrollParent;\nexports.getStyleComputedProperty = getStyleComputedProperty;\nexports.getSupportedPropertyName = getSupportedPropertyName;\nexports.getWindowSizes = getWindowSizes;\nexports.isFixed = isFixed;\nexports.isFunction = isFunction;\nexports.isModifierEnabled = isModifierEnabled;\nexports.isModifierRequired = isModifierRequired;\nexports.isNumeric = isNumeric;\nexports.removeEventListeners = removeEventListeners;\nexports.runModifiers = runModifiers;\nexports.setAttributes = setAttributes;\nexports.setStyles = setStyles;\nexports.setupEventListeners = setupEventListeners;\nexports['default'] = index;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/umd/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/assets/plugins/popper/umd/popper.js.flow",
    "content": "// @flow\n\nexport type Position = 'top' | 'right' | 'bottom' | 'left';\n\nexport type Placement =\n  | 'auto-start'\n  | 'auto'\n  | 'auto-end'\n  | 'top-start'\n  | 'top'\n  | 'top-end'\n  | 'right-start'\n  | 'right'\n  | 'right-end'\n  | 'bottom-end'\n  | 'bottom'\n  | 'bottom-start'\n  | 'left-end'\n  | 'left'\n  | 'left-start';\n\nexport type Offset = {\n  top: number,\n  left: number,\n  width: number,\n  height: number,\n  position: Position,\n};\n\nexport type Boundary = 'scrollParent' | 'viewport' | 'window';\n\nexport type Behavior = 'flip' | 'clockwise' | 'counterclockwise';\n\nexport type Data = {\n  instance: Popper,\n  placement: Placement,\n  originalPlacement: Placement,\n  flipped: boolean,\n  hide: boolean,\n  arrowElement: Element,\n  styles: CSSStyleDeclaration,\n  arrowStyles: CSSStyleDeclaration,\n  boundaries: Object,\n  offsets: {\n    popper: Offset,\n    reference: Offset,\n    arrow: {\n      top: number,\n      left: number,\n    },\n  },\n};\n\nexport type ModifierFn = (data: Data, options: Object) => Data;\n\nexport type Padding = {\n  top?: number,\n  bottom?: number,\n  left?: number,\n  right?: number,\n};\n\nexport type BaseModifier = {\n  order?: number,\n  enabled?: boolean,\n  fn?: ModifierFn,\n};\n\nexport type Modifiers = {\n  shift?: BaseModifier,\n  offset?: BaseModifier & {\n    offset?: number | string,\n  },\n  preventOverflow?: BaseModifier & {\n    priority?: Position[],\n    padding?: number | Padding,\n    boundariesElement?: Boundary | Element,\n    escapeWithReference?: boolean,\n  },\n  keepTogether?: BaseModifier,\n  arrow?: BaseModifier & {\n    element?: string | Element | null,\n  },\n  flip?: BaseModifier & {\n    behavior?: Behavior | Position[],\n    padding?: number | Padding,\n    boundariesElement?: Boundary | Element,\n    flipVariations?: boolean,\n    flipVariationsByContent?: boolean,\n  },\n  inner?: BaseModifier,\n  hide?: BaseModifier,\n  applyStyle?: BaseModifier & {\n    onLoad?: Function,\n    gpuAcceleration?: boolean,\n  },\n  computeStyle?: BaseModifier & {\n    gpuAcceleration?: boolean,\n    x?: 'bottom' | 'top',\n    y?: 'left' | 'right',\n  },\n\n  [name: string]: (BaseModifier & { [string]: * }) | null,\n};\n\nexport type Options = {\n  placement?: Placement,\n  positionFixed?: boolean,\n  eventsEnabled?: boolean,\n  modifiers?: Modifiers,\n  removeOnDestroy?: boolean,\n\n  onCreate?: (data: Data) => void,\n\n  onUpdate?: (data: Data) => void,\n};\n\nexport type ReferenceObject = {\n  +clientHeight: number,\n  +clientWidth: number,\n  +referenceNode?: Node,\n\n  getBoundingClientRect():\n    | ClientRect\n    | {\n        width: number,\n        height: number,\n        top: number,\n        right: number,\n        bottom: number,\n        left: number,\n      },\n};\n\nexport type Instance = {\n  destroy: () => void,\n  scheduleUpdate: () => void,\n  update: () => void,\n  enableEventListeners: () => void,\n  disableEventListeners: () => void,\n};\n\ndeclare class Popper {\n  static placements: Placement;\n\n  popper: Element;\n  reference: Element | ReferenceObject;\n\n  constructor(\n    reference: Element | ReferenceObject,\n    popper: Element,\n    options?: Options\n  ): Instance;\n}\n\ndeclare export default typeof Popper;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/browser-support.md",
    "content": "---\nlayout: page\ntitle: Browser Support\n---\n\nAdminLTE comes with the same browser support as Bootstrap 4.\n\n> ##### Excerpt from Bootstrap's official Documentation!\n> Bootstrap supports the __latest, stable releases__ of all major browsers and platforms. On Windows, __we support Internet Explorer 10-11 / Microsoft Edge__.\n>\n> For more details [look here](https://getbootstrap.com/docs/4.4/getting-started/browsers-devices/#supported-browsers).\n\nYou can find our supported range of browsers and their versions in [our .browserslistrc file](https://github.com/ColorlibHQ/AdminLTE/blob/master/.browserslistrc):\n\n```\n# https://github.com/browserslist/browserslist#readme\n\n>= 0.2%\nlast 2 major versions\nnot dead\nFirefox ESR\nEdge >= 16\nExplorer >= 10\niOS >= 9\nSafari >= 9\n```\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/boxes.md",
    "content": "---\nlayout: page\ntitle: Boxes Components\n---\n\nThere are two types of boxes, info boxes & small boxes. Both boxes are used to display statistical snippets. \n\n##### Info Box\n{: .text-bold .text-dark .mt-4}\n\n<div class=\"row\">\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Messages</span>\n        <span class=\"info-box-number\">1,410</span>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box bg-success\">\n      <span class=\"info-box-icon\"><i class=\"far fa-flag\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Bookmarks</span>\n        <span class=\"info-box-number\">410</span>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box bg-gradient-warning\">\n      <span class=\"info-box-icon\"><i class=\"far fa-copy\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Uploads</span>\n        <span class=\"info-box-number\">13,648</span>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"row\" markdown=\"1\">\n```html\n<div class=\"info-box\">\n  <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Messages</span>\n    <span class=\"info-box-number\">1,410</span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12}\n```html\n<div class=\"info-box bg-success\">\n  <span class=\"info-box-icon\"><i class=\"far fa-flag\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Bookmarks</span>\n    <span class=\"info-box-number\">410</span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12}\n```html\n<div class=\"info-box bg-gradient-warning\">\n  <span class=\"info-box-icon\"><i class=\"far fa-copy\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Uploads</span>\n    <span class=\"info-box-number\">13,648</span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12}\n</div>\n\n> ##### Note!\n> To wrap the text in to a new line add to the info-box-text the class text-wrap.\n> To truncate the text with ... add to the info-box-content the class text-truncate. (Here you should add a tooltip to display the whole pharse)\n{: .quote-danger}\n\n##### Info Box with Progress Bar\n{: .text-bold .text-dark .mt-4}\n\n<div class=\"row\">\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-bookmark\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Bookmarks</span>\n        <span class=\"info-box-number\">41,410</span>\n        <div class=\"progress\">\n          <div class=\"progress-bar bg-info\" style=\"width: 70%\"></div>\n        </div>\n        <span class=\"progress-description\">\n          70% Increase in 30 Days\n        </span>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box bg-success\">\n      <span class=\"info-box-icon\"><i class=\"far fa-thumbs-up\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Likes</span>\n        <span class=\"info-box-number\">41,410</span>\n        <div class=\"progress\">\n          <div class=\"progress-bar\" style=\"width: 70%\"></div>\n        </div>\n        <span class=\"progress-description\">\n          70% Increase in 30 Days\n        </span>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box bg-gradient-warning\">\n      <span class=\"info-box-icon\"><i class=\"far fa-calendar-alt\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Events</span>\n        <span class=\"info-box-number\">41,410</span>\n        <div class=\"progress\">\n          <div class=\"progress-bar\" style=\"width: 70%\"></div>\n        </div>\n        <span class=\"progress-description\">\n          70% Increase in 30 Days\n        </span>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"row\" markdown=\"1\">\n```html\n<div class=\"info-box\">\n  <span class=\"info-box-icon bg-info\"><i class=\"far fa-bookmark\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Bookmarks</span>\n    <span class=\"info-box-number\">41,410</span>\n    <div class=\"progress\">\n      <div class=\"progress-bar bg-info\" style=\"width: 70%\"></div>\n    </div>\n    <span class=\"progress-description\">\n      70% Increase in 30 Days\n    </span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12 .max-height-300}\n```html\n<div class=\"info-box bg-success\">\n  <span class=\"info-box-icon\"><i class=\"far fa-thumbs-up\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Likes</span>\n    <span class=\"info-box-number\">41,410</span>\n    <div class=\"progress\">\n      <div class=\"progress-bar\" style=\"width: 70%\"></div>\n    </div>\n    <span class=\"progress-description\">\n      70% Increase in 30 Days\n    </span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12 .max-height-300}\n```html\n<div class=\"info-box bg-gradient-warning\">\n  <span class=\"info-box-icon\"><i class=\"far fa-calendar-alt\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Events</span>\n    <span class=\"info-box-number\">41,410</span>\n    <div class=\"progress\">\n      <div class=\"progress-bar\" style=\"width: 70%\"></div>\n    </div>\n    <span class=\"progress-description\">\n      70% Increase in 30 Days\n    </span>\n  </div>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12 .max-height-300}\n</div>\n\n\n##### Small Box\n{: .text-bold .text-dark .mt-4}\n\n<div class=\"row\">\n  <div class=\"col-lg-4 col-md-6 col-sm-6 col-12\">\n    <div class=\"small-box bg-info\">\n      <div class=\"inner\">\n        <h3>150</h3>\n        <p>New Orders</p>\n      </div>\n      <div class=\"icon\">\n        <i class=\"fas fa-shopping-cart\"></i>\n      </div>\n      <a href=\"#\" class=\"small-box-footer\">\n        More info <i class=\"fas fa-arrow-circle-right\"></i>\n      </a>\n    </div>\n  </div>\n  <div class=\"col-lg-4 col-md-6 col-sm-6 col-12\">\n    <div class=\"small-box bg-gradient-success\">\n      <div class=\"inner\">\n        <h3>44</h3>\n        <p>User Registrations</p>\n      </div>\n      <div class=\"icon\">\n        <i class=\"fas fa-user-plus\"></i>\n      </div>\n      <a href=\"#\" class=\"small-box-footer\">\n        More info <i class=\"fas fa-arrow-circle-right\"></i>\n      </a>\n    </div>\n  </div>\n</div>\n\n<div class=\"row\" markdown=\"1\">\n```html\n<div class=\"small-box bg-info\">\n  <div class=\"inner\">\n    <h3>150</h3>\n    <p>New Orders</p>\n  </div>\n  <div class=\"icon\">\n    <i class=\"fas fa-shopping-cart\"></i>\n  </div>\n  <a href=\"#\" class=\"small-box-footer\">\n    More info <i class=\"fas fa-arrow-circle-right\"></i>\n  </a>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12 .max-height-300}\n```html\n<div class=\"small-box bg-gradient-success\">\n  <div class=\"inner\">\n    <h3>44</h3>\n    <p>User Registrations</p>\n  </div>\n  <div class=\"icon\">\n    <i class=\"fas fa-user-plus\"></i>\n  </div>\n  <a href=\"#\" class=\"small-box-footer\">\n    More info <i class=\"fas fa-arrow-circle-right\"></i>\n  </a>\n</div>\n```\n{: .col-md-4 .col-sm-6 .col-12 .max-height-300}\n</div>\n\n\n\n##### Loading Style\n{: .text-bold .text-dark .mt-5}\n\nTo simulate a loading state, simply place this code before the `.info-box` / `.small-box` closing tag. \n\n> ##### Tip!\n> We recommend `.fa-2x` for Info Boxes and `.fa-3x` for Small Boxes to get a nicely sized loading icon, <br> like in this documentation. \n{: .quote-info}\n\n```html\n<div class=\"overlay\">\n  <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n</div>\n```\n\n<div class=\"row\">\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box clearfix\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Messages</span>\n        <span class=\"info-box-number\">1,410</span>\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-bookmark\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Bookmarks</span>\n        <span class=\"info-box-number\">41,410</span>\n        <div class=\"progress\">\n          <div class=\"progress-bar bg-info\" style=\"width: 70%\"></div>\n        </div>\n        <span class=\"progress-description\">\n          70% Increase in 30 Days\n        </span>\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-lg-4 col-md-6 col-sm-6 col-12\">\n    <div class=\"small-box bg-info\">\n      <div class=\"inner\">\n        <h3>150</h3>\n        <p>New Orders</p>\n      </div>\n      <div class=\"icon\">\n        <i class=\"fas fa-shopping-cart\"></i>\n      </div>\n      <a href=\"#\" class=\"small-box-footer\">\n        More info <i class=\"fas fa-arrow-circle-right\"></i>\n      </a>\n      <div class=\"overlay\">\n        <i class=\"fas fa-3x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n</div>\n\n\nYou can also use a dark loading style with adding `.dark` to `.overlay` like this code.\n\n```html\n<div class=\"overlay dark\">\n  <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n</div>\n```\n\n<div class=\"row\">\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box clearfix\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Messages</span>\n        <span class=\"info-box-number\">1,410</span>\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-4 col-sm-6 col-12\">\n    <div class=\"info-box\">\n      <span class=\"info-box-icon bg-info\"><i class=\"far fa-bookmark\"></i></span>\n      <div class=\"info-box-content\">\n        <span class=\"info-box-text\">Bookmarks</span>\n        <span class=\"info-box-number\">41,410</span>\n        <div class=\"progress\">\n          <div class=\"progress-bar bg-info\" style=\"width: 70%\"></div>\n        </div>\n        <span class=\"progress-description\">\n          70% Increase in 30 Days\n        </span>\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-lg-4 col-md-6 col-sm-6 col-12\">\n    <div class=\"small-box bg-info\">\n      <div class=\"inner\">\n        <h3>150</h3>\n        <p>New Orders</p>\n      </div>\n      <div class=\"icon\">\n        <i class=\"fas fa-shopping-cart\"></i>\n      </div>\n      <a href=\"#\" class=\"small-box-footer\">\n        More info <i class=\"fas fa-arrow-circle-right\"></i>\n      </a>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-3x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/cards.md",
    "content": "---\nlayout: page\ntitle: Cards Component\n---\n\nThe card component is the most widely used component through out this template. You can use it for anything from displaying charts to just blocks of text. It comes in many different styles that we will explore below.\n\n##### Default Card Markup\n{: .text-bold .text-dark .mt-5}\n\n\n<div class=\"card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Default Card Example</h3>\n    <div class=\"card-tools\">\n      <span class=\"badge badge-primary\">Label</span>\n    </div>\n  </div>\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <div class=\"card-footer\">\n    The footer of the card\n  </div>\n</div>\n\n```html\n<div class=\"card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Default Card Example</h3>\n    <div class=\"card-tools\">\n      <!-- Buttons, labels, and many other things can be placed here! -->\n      <!-- Here is a label for example -->\n      <span class=\"badge badge-primary\">Label</span>\n    </div>\n    <!-- /.card-tools -->\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <!-- /.card-body -->\n  <div class=\"card-footer\">\n    The footer of the card\n  </div>\n  <!-- /.card-footer -->\n</div>\n<!-- /.card -->\n```\n{: .max-height-300}\n\n##### Card Variants\n{: .text-bold .text-dark .mt-5}\n\nYou can change the style of the card by adding any of the contextual classes.\n\n###### Default\n{: .text-bold .text-dark}\n\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Default Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Primary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-secondary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Secondary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-success\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Success Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card card-info\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Info Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-warning\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Warning Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Danger Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-dark\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Dark Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n\n```html\n<div class=\"card\">...</div>\n<div class=\"card card-primary\">...</div>\n<div class=\"card card-secondary\">...</div>\n<div class=\"card card-success\">...</div>\n<div class=\"card card-info\">...</div>\n<div class=\"card card-warning\">...</div>\n<div class=\"card card-danger\">...</div>\n<div class=\"card card-dark\">...</div>\n```\n\n###### Outline\n{: .text-bold .text-dark}\n\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Primary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-secondary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Secondary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-success\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Success Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-info\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Info Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-warning\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Warning Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Danger Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card card-outline card-dark\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Dark Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n\n```html\n<div class=\"card card-outline card-primary\">...</div>\n<div class=\"card card-outline card-secondary\">...</div>\n<div class=\"card card-outline card-success\">...</div>\n<div class=\"card card-outline card-info\">...</div>\n<div class=\"card card-outline card-warning\">...</div>\n<div class=\"card card-outline card-danger\">...</div>\n<div class=\"card card-outline card-dark\">...</div>\n```\n\n\n###### Background Color\n{: .text-bold .text-dark}\n\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Primary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-secondary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Secondary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-success\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Success Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-info\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Info Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-warning\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Warning Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Danger Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-dark\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Dark Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n\n```html\n<div class=\"card bg-primary\">...</div>\n<div class=\"card bg-secondary\">...</div>\n<div class=\"card bg-success\">...</div>\n<div class=\"card bg-info\">...</div>\n<div class=\"card bg-warning\">...</div>\n<div class=\"card bg-danger\">...</div>\n<div class=\"card bg-dark\">...</div>\n```\n\n\n###### Gradient Background Color\n{: .text-bold .text-dark}\n\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Primary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-secondary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Secondary Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-success\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Success Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-info\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Info Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-warning\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Warning Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Danger Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-sm-3\">\n    <div class=\"card bg-gradient-dark\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Dark Card Example</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"card-footer\">\n        The footer of the card\n      </div>\n    </div>\n  </div>\n</div>\n\n```html\n<div class=\"card bg-gradient-primary\">...</div>\n<div class=\"card bg-gradient-secondary\">...</div>\n<div class=\"card bg-gradient-success\">...</div>\n<div class=\"card bg-gradient-info\">...</div>\n<div class=\"card bg-gradient-warning\">...</div>\n<div class=\"card bg-gradient-danger\">...</div>\n<div class=\"card bg-gradient-dark\">...</div>\n```\n\n\n##### Card Tools\n{: .text-bold .text-dark .mt-5}\n\nCards can contain tools to deploy a specific event or provide simple info. The following examples makes use of multiple AdminLTE components within the header of the card.\n\nAdminLTE data-card-widget attribute provides cards with the ability to collapse or be removed. The buttons are placed in the card-tools which is placed in the card-header. \n\n```html\n<div class=\"card card-primary\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Card Tools</h3>\n\n    <div class=\"card-tools\">\n      <!-- This will cause the card to maximize when clicked -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\"><i class=\"fas fa-expand\"></i></button>\n      <!-- This will cause the card to collapse when clicked -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\"><i class=\"fas fa-minus\"></i></button>\n      <!-- This will cause the card to be removed when clicked -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i></button>\n    </div>\n    <!-- /.card-tools -->\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <!-- /.card-body -->\n</div>\n<!-- /.card -->\n```\n{: .max-height-300}\n\n\n##### Loading Style\n{: .text-bold .text-dark .mt-5}\n\nTo simulate a loading state, simply place this code before the `.card` closing tag. \n\n```html\n<div class=\"overlay\">\n  <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n</div>\n```\n\n<div class=\"row\">\n  <div class=\"col-md-3\">\n    <div class=\"card card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card card-outline card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card bg-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card bg-gradient-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n</div>\n\n\nYou can also use a dark loading style with adding `.dark` to `.overlay` like this code.\n\n```html\n<div class=\"overlay dark\">\n  <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n</div>\n```\n\n<div class=\"row\">\n  <div class=\"col-md-3\">\n    <div class=\"card card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state (dark)</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card card-outline card-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state (dark)</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card bg-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state (dark)</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-3\">\n    <div class=\"card bg-gradient-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Loading state (dark)</h3>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n      <div class=\"overlay dark\">\n        <i class=\"fas fa-2x fa-sync-alt fa-spin\"></i>\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/control-sidebar.md",
    "content": "---\nlayout: page\ntitle: Control Sidebar Component\n---\n\nControl sidebar is the right sidebar. It can be used for many purposes and is extremely easy to create. The sidebar ships with two different show/hide styles. The first allows the sidebar to slide over the content. The second pushes the content to make space for the sidebar. Either of these methods can be set through the [JavaScript options]({% link javascript/control-sidebar.md %}). \n\nThe following code should be placed within the `.wrapper` div. I prefer to place it right after the footer.\n\n##### Control Sidebar Push\n{: .text-bold .text-dark}\n\nBy adding the `.control-sidebar-push` to `body`, the sidebar pushes the content away instead of overlaying the content.\nYou can also add `.control-sidebar-push-slide` to `body`, to push the content away with an transition.\n\n##### Dark Sidebar Markup\n{: .text-bold .text-dark}\n\n```html\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n    <div class=\"p-3\">\n      <!-- Content of the sidebar goes here -->\n    </div>\n  </aside>\n  <!-- /.control-sidebar -->\n```\n\n##### Light Sidebar Markup\n{: .text-bold .text-dark .mt-5}\n\n```html\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-light\">\n    <!-- Control sidebar content goes here -->\n    <div class=\"p-3\">\n      <!-- Content of the sidebar goes here -->\n    </div>\n  </aside>\n  <!-- /.control-sidebar -->\n```\n\n##### Control Sidebar Toggle Markup\n{: .text-bold .text-dark .mt-5}\n\nOnce you create the sidebar, you will need a toggle button to open/close it. By adding the attribute data-toggle=\"control-sidebar\" to any button, it will automatically act as the toggle button. \n\n```html\n<a class=\"nav-link\" data-widget=\"control-sidebar\" href=\"#\">Toggle Control Sidebar</a>\n```\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/direct-chat.md",
    "content": "---\nlayout: page\ntitle: Direct Chat Components\n---\n\nThe direct chat widget extends the card component to create a beautiful chat interface. This widget consists of a required messages pane and an __optional__ contacts pane. Examples:\n\n<div class=\"row\">\n  <div class=\"col-md-6\">\n    <div class=\"card card-primary direct-chat direct-chat-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Direct Chat</h3>\n        <div class=\"card-tools\">\n          <span data-toggle=\"tooltip\" title=\"3 New Messages\" class=\"badge badge-light\">3</span>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n            <i class=\"fas fa-minus\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-toggle=\"tooltip\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n            <i class=\"fas fa-comments\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        <div class=\"direct-chat-messages\">\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Is this template really for free? That's unbelievable!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              You better believe it!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Working with AdminLTE on a great new app! Wanna join?\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              I would love to.\n            </div>\n          </div>\n        </div>\n        <!--/.direct-chat-messages-->\n        <div class=\"direct-chat-contacts\">\n          <ul class=\"contacts-list\">\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Count Dracula\n                    <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user7-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Sarah Doe\n                    <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nadia Jolie\n                    <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user5-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nora S. Vans\n                    <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Where is your new...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user6-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    John K.\n                    <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Kenneth M.\n                    <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Never mind I found...</span>\n                </div>\n              </a>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"card-footer\">\n        <form action=\"#\" method=\"post\">\n          <div class=\"input-group\">\n            <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n            <span class=\"input-group-append\">\n              <button type=\"button\" class=\"btn btn-primary\">Send</button>\n            </span>\n          </div>\n        </form>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-6\">\n    <div class=\"card card-danger direct-chat direct-chat-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Direct Chat</h3>\n        <div class=\"card-tools\">\n          <span data-toggle=\"tooltip\" title=\"3 New Messages\" class=\"badge badge-light\">3</span>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n            <i class=\"fas fa-minus\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-toggle=\"tooltip\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n            <i class=\"fas fa-comments\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        <div class=\"direct-chat-messages\">\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Is this template really for free? That's unbelievable!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              You better believe it!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Working with AdminLTE on a great new app! Wanna join?\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              I would love to.\n            </div>\n          </div>\n        </div>\n        <!--/.direct-chat-messages-->\n        <div class=\"direct-chat-contacts\">\n          <ul class=\"contacts-list\">\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Count Dracula\n                    <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user7-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Sarah Doe\n                    <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nadia Jolie\n                    <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user5-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nora S. Vans\n                    <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Where is your new...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user6-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    John K.\n                    <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Kenneth M.\n                    <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Never mind I found...</span>\n                </div>\n              </a>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"card-footer\">\n        <form action=\"#\" method=\"post\">\n          <div class=\"input-group\">\n            <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n            <span class=\"input-group-append\">\n              <button type=\"button\" class=\"btn btn-primary\">Send</button>\n            </span>\n          </div>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n\n```html\n<!-- Construct the card with style you want. Here we are using card-danger -->\n<!-- Then add the class direct-chat and choose the direct-chat-* contexual class -->\n<!-- The contextual class should match the card, so we are using direct-chat-danger -->\n<div class=\"card card-danger direct-chat direct-chat-danger\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Direct Chat</h3>\n    <div class=\"card-tools\">\n      <span data-toggle=\"tooltip\" title=\"3 New Messages\" class=\"badge badge-light\">3</span>\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n        <i class=\"fas fa-minus\"></i>\n      </button>\n      <button type=\"button\" class=\"btn btn-tool\" data-toggle=\"tooltip\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n        <i class=\"fas fa-comments\"></i>\n      </button>\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n      </button>\n    </div>\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    <!-- Conversations are loaded here -->\n    <div class=\"direct-chat-messages\">\n      <!-- Message. Default to the left -->\n      <div class=\"direct-chat-msg\">\n        <div class=\"direct-chat-infos clearfix\">\n          <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n          <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n        </div>\n        <!-- /.direct-chat-infos -->\n        <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n        <!-- /.direct-chat-img -->\n        <div class=\"direct-chat-text\">\n          Is this template really for free? That's unbelievable!\n        </div>\n        <!-- /.direct-chat-text -->\n      </div>\n      <!-- /.direct-chat-msg -->\n      <!-- Message to the right -->\n      <div class=\"direct-chat-msg right\">\n        <div class=\"direct-chat-infos clearfix\">\n          <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n          <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n        </div>\n        <!-- /.direct-chat-infos -->\n        <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n        <!-- /.direct-chat-img -->\n        <div class=\"direct-chat-text\">\n          You better believe it!\n        </div>\n        <!-- /.direct-chat-text -->\n      </div>\n      <!-- /.direct-chat-msg -->\n      <!-- Message. Default to the left -->\n      <div class=\"direct-chat-msg\">\n        <div class=\"direct-chat-infos clearfix\">\n          <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n          <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n        </div>\n        <!-- /.direct-chat-infos -->\n        <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n        <!-- /.direct-chat-img -->\n        <div class=\"direct-chat-text\">\n          Working with AdminLTE on a great new app! Wanna join?\n        </div>\n        <!-- /.direct-chat-text -->\n      </div>\n      <!-- /.direct-chat-msg -->\n      <!-- Message to the right -->\n      <div class=\"direct-chat-msg right\">\n        <div class=\"direct-chat-infos clearfix\">\n          <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n          <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n        </div>\n        <!-- /.direct-chat-infos -->\n        <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n        <!-- /.direct-chat-img -->\n        <div class=\"direct-chat-text\">\n          I would love to.\n        </div>\n        <!-- /.direct-chat-text -->\n      </div>\n      <!-- /.direct-chat-msg -->\n    </div>\n    <!--/.direct-chat-messages-->\n    <!-- Contacts are loaded here -->\n    <div class=\"direct-chat-contacts\">\n      <ul class=\"contacts-list\">\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                Count Dracula\n                <small class=\"contacts-list-date float-right\">2/28/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">How have you been? I was...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user7-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                Sarah Doe\n                <small class=\"contacts-list-date float-right\">2/23/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">I will be waiting for...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                Nadia Jolie\n                <small class=\"contacts-list-date float-right\">2/20/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">I'll call you back at...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user5-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                Nora S. Vans\n                <small class=\"contacts-list-date float-right\">2/10/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">Where is your new...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user6-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                John K.\n                <small class=\"contacts-list-date float-right\">1/27/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">Can I take a look at...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n        <li>\n          <a href=\"#\">\n            <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\">\n            <div class=\"contacts-list-info\">\n              <span class=\"contacts-list-name\">\n                Kenneth M.\n                <small class=\"contacts-list-date float-right\">1/4/2015</small>\n              </span>\n              <span class=\"contacts-list-msg\">Never mind I found...</span>\n            </div>\n            <!-- /.contacts-list-info -->\n          </a>\n        </li>\n        <!-- End Contact Item -->\n      </ul>\n      <!-- /.contacts-list -->\n    </div>\n    <!-- /.direct-chat-pane -->\n  </div>\n  <!-- /.card-body -->\n  <div class=\"card-footer\">\n    <form action=\"#\" method=\"post\">\n      <div class=\"input-group\">\n        <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n        <span class=\"input-group-append\">\n          <button type=\"button\" class=\"btn btn-primary\">Send</button>\n        </span>\n      </div>\n    </form>\n  </div>\n  <!-- /.card-footer-->\n</div>\n<!--/.direct-chat -->\n```\n{: .max-height-300}\n\n##### Outline Direct Chat\n{: .text-bold .text-dark .mt-5}\n\nOf course you can use direct chat with a outline card by adding the class `.card-outline` to the card. Here are a couple of examples: \n\n<div class=\"row\">\n  <div class=\"col-md-6\">\n    <div class=\"card card-primary card-outline direct-chat direct-chat-primary\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Direct Chat</h3>\n        <div class=\"card-tools\">\n          <span data-toggle=\"tooltip\" title=\"3 New Messages\" class=\"badge badge-light\">3</span>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n            <i class=\"fas fa-minus\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-toggle=\"tooltip\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n            <i class=\"fas fa-comments\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        <div class=\"direct-chat-messages\">\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Is this template really for free? That's unbelievable!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              You better believe it!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Working with AdminLTE on a great new app! Wanna join?\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              I would love to.\n            </div>\n          </div>\n        </div>\n        <!--/.direct-chat-messages-->\n        <div class=\"direct-chat-contacts\">\n          <ul class=\"contacts-list\">\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Count Dracula\n                    <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user7-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Sarah Doe\n                    <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nadia Jolie\n                    <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user5-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nora S. Vans\n                    <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Where is your new...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user6-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    John K.\n                    <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Kenneth M.\n                    <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Never mind I found...</span>\n                </div>\n              </a>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"card-footer\">\n        <form action=\"#\" method=\"post\">\n          <div class=\"input-group\">\n            <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n            <span class=\"input-group-append\">\n              <button type=\"button\" class=\"btn btn-primary\">Send</button>\n            </span>\n          </div>\n        </form>\n      </div>\n    </div>\n  </div>\n  <div class=\"col-md-6\">\n    <div class=\"card card-danger card-outline direct-chat direct-chat-danger\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Direct Chat</h3>\n        <div class=\"card-tools\">\n          <span data-toggle=\"tooltip\" title=\"3 New Messages\" class=\"badge badge-light\">3</span>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n            <i class=\"fas fa-minus\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-toggle=\"tooltip\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n            <i class=\"fas fa-comments\"></i>\n          </button>\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        <div class=\"direct-chat-messages\">\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Is this template really for free? That's unbelievable!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              You better believe it!\n            </div>\n          </div>\n          <div class=\"direct-chat-msg\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n              <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              Working with AdminLTE on a great new app! Wanna join?\n            </div>\n          </div>\n          <div class=\"direct-chat-msg right\">\n            <div class=\"direct-chat-infos clearfix\">\n              <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n              <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n            </div>\n            <img class=\"direct-chat-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n            <div class=\"direct-chat-text\">\n              I would love to.\n            </div>\n          </div>\n        </div>\n        <!--/.direct-chat-messages-->\n        <div class=\"direct-chat-contacts\">\n          <ul class=\"contacts-list\">\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Count Dracula\n                    <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user7-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Sarah Doe\n                    <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nadia Jolie\n                    <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user5-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Nora S. Vans\n                    <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Where is your new...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user6-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    John K.\n                    <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                </div>\n              </a>\n            </li>\n            <li>\n              <a href=\"#\">\n                <img class=\"contacts-list-img\" src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"message user image\">\n                <div class=\"contacts-list-info\">\n                  <span class=\"contacts-list-name\">\n                    Kenneth M.\n                    <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                  </span>\n                  <span class=\"contacts-list-msg\">Never mind I found...</span>\n                </div>\n              </a>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"card-footer\">\n        <form action=\"#\" method=\"post\">\n          <div class=\"input-group\">\n            <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n            <span class=\"input-group-append\">\n              <button type=\"button\" class=\"btn btn-primary\">Send</button>\n            </span>\n          </div>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/main-header.md",
    "content": "---\nlayout: page\ntitle: Main Header Component\n---\n\n> ##### Reminder!\n> AdminLTE uses all of Bootstrap 4 components. It's a good start to review the [Bootstrap documentation](https://getbootstrap.com/) to get an idea of the various components that this documentation __does not__ cover.\n{: .quote-orange .mt-0}\n\n\n> ##### Tip!\n> If you go through the example pages and would like to copy a component, right-click on the component and choose \"inspect element\" to get to the HTML quicker than scanning the HTML page.\n{: .quote-info}\n\nThe main header contains the navbar. Construction of the navbar differs slightly from Bootstrap because it has components that Bootstrap doesn't provide. The navbar can be constructed in two ways. This is an example for the normal navbar and next we will provide an example for the top nav layout with a logo too.\n\n\n<nav class=\"navbar navbar-expand navbar-white navbar-light ml-0\">\n  <!-- Left navbar links -->\n  <ul class=\"navbar-nav\">\n    <li class=\"nav-item\">\n      <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n    </li>\n    <li class=\"nav-item d-none d-sm-inline-block\">\n      <a href=\"index3.html\" class=\"nav-link\">Home</a>\n    </li>\n    <li class=\"nav-item d-none d-sm-inline-block\">\n      <a href=\"#\" class=\"nav-link\">Contact</a>\n    </li>\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link dropdown-toggle\" href=\"#\" id=\"navbarDropdown\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n        Help\n      </a>\n      <div class=\"dropdown-menu\" aria-labelledby=\"navbarDropdown\">\n        <a class=\"dropdown-item\" href=\"#\">FAQ</a>\n        <a class=\"dropdown-item\" href=\"#\">Support</a>\n        <div class=\"dropdown-divider\"></div>\n        <a class=\"dropdown-item\" href=\"#\">Contact</a>\n      </div>\n    </li>\n  </ul>\n\n  <!-- SEARCH FORM -->\n  <form class=\"form-inline ml-3\">\n    <div class=\"input-group input-group-sm\">\n      <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n      <div class=\"input-group-append\">\n        <button class=\"btn btn-navbar\" type=\"submit\">\n          <i class=\"fas fa-search\"></i>\n        </button>\n      </div>\n    </div>\n  </form>\n\n  <!-- Right navbar links -->\n  <ul class=\"navbar-nav ml-auto\">\n    <!-- Messages Dropdown Menu -->\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n        <i class=\"far fa-comments\"></i>\n        <span class=\"badge badge-danger navbar-badge\">3</span>\n      </a>\n      <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                Brad Diesel\n                <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">Call me whenever you can...</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                John Pierce\n                <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">I got your message bro</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                Nora Silvester\n                <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">The subject goes here</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n      </div>\n    </li>\n    <!-- Notifications Dropdown Menu -->\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n        <i class=\"far fa-bell\"></i>\n        <span class=\"badge badge-warning navbar-badge\">15</span>\n      </a>\n      <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n        <span class=\"dropdown-header\">15 Notifications</span>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n          <span class=\"float-right text-muted text-sm\">3 mins</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n          <span class=\"float-right text-muted text-sm\">12 hours</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-file mr-2\"></i> 3 new reports\n          <span class=\"float-right text-muted text-sm\">2 days</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n      </div>\n    </li>\n    <li class=\"nav-item\">\n      <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\"><i\n          class=\"fas fa-th-large\"></i></a>\n    </li>\n  </ul>\n</nav>\n\n```html\n<!-- Navbar -->\n<nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n  <!-- Left navbar links -->\n  <ul class=\"navbar-nav\">\n    <li class=\"nav-item\">\n      <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n    </li>\n    <li class=\"nav-item d-none d-sm-inline-block\">\n      <a href=\"index3.html\" class=\"nav-link\">Home</a>\n    </li>\n    <li class=\"nav-item d-none d-sm-inline-block\">\n      <a href=\"#\" class=\"nav-link\">Contact</a>\n    </li>\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link dropdown-toggle\" href=\"#\" id=\"navbarDropdown2\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n        Help\n      </a>\n      <div class=\"dropdown-menu\" aria-labelledby=\"navbarDropdown2\">\n        <a class=\"dropdown-item\" href=\"#\">FAQ</a>\n        <a class=\"dropdown-item\" href=\"#\">Support</a>\n        <div class=\"dropdown-divider\"></div>\n        <a class=\"dropdown-item\" href=\"#\">Contact</a>\n      </div>\n    </li>\n  </ul>\n\n  <!-- SEARCH FORM -->\n  <form class=\"form-inline ml-3\">\n    <div class=\"input-group input-group-sm\">\n      <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n      <div class=\"input-group-append\">\n        <button class=\"btn btn-navbar\" type=\"submit\">\n          <i class=\"fas fa-search\"></i>\n        </button>\n      </div>\n    </div>\n  </form>\n\n  <!-- Right navbar links -->\n  <ul class=\"navbar-nav ml-auto\">\n    <!-- Messages Dropdown Menu -->\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n        <i class=\"far fa-comments\"></i>\n        <span class=\"badge badge-danger navbar-badge\">3</span>\n      </a>\n      <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                Brad Diesel\n                <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">Call me whenever you can...</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                John Pierce\n                <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">I got your message bro</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <!-- Message Start -->\n          <div class=\"media\">\n            <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n            <div class=\"media-body\">\n              <h3 class=\"dropdown-item-title\">\n                Nora Silvester\n                <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n              </h3>\n              <p class=\"text-sm\">The subject goes here</p>\n              <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n            </div>\n          </div>\n          <!-- Message End -->\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n      </div>\n    </li>\n    <!-- Notifications Dropdown Menu -->\n    <li class=\"nav-item dropdown\">\n      <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n        <i class=\"far fa-bell\"></i>\n        <span class=\"badge badge-warning navbar-badge\">15</span>\n      </a>\n      <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n        <span class=\"dropdown-header\">15 Notifications</span>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n          <span class=\"float-right text-muted text-sm\">3 mins</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n          <span class=\"float-right text-muted text-sm\">12 hours</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item\">\n          <i class=\"fas fa-file mr-2\"></i> 3 new reports\n          <span class=\"float-right text-muted text-sm\">2 days</span>\n        </a>\n        <div class=\"dropdown-divider\"></div>\n        <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n      </div>\n    </li>\n    <li class=\"nav-item\">\n      <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\"><i\n          class=\"fas fa-th-large\"></i></a>\n    </li>\n  </ul>\n</nav>\n<!-- /.navbar -->\n```\n{: .max-height-300}\n\n\n#### Top Nav Layout. Main Header Example.\n\n> ##### Reminder!\n> To use this main header instead of the regular one, you must add the `layout-top-nav` class to the body tag.\n{: .quote-orange}\n\nTop navbar example can be found in this [demo page](https://adminlte.io/themes/dev/AdminLTE/pages/layout/top-nav.html). \n\n\n<nav class=\"navbar navbar-expand navbar-light navbar-white\">\n  <div class=\"container\">\n    <a href=\"index3.html\" class=\"navbar-brand\">\n      <img src=\"{{ '/assets/img/AdminLTELogo.png' | prepend: site.baseurl }}\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\"\n           style=\"opacity: .8; max-height: 33px;\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link dropdown-toggle\" href=\"#\" id=\"navbarDropdown3\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n          Help\n        </a>\n        <div class=\"dropdown-menu\" aria-labelledby=\"navbarDropdown3\">\n          <a class=\"dropdown-item\" href=\"#\">FAQ</a>\n          <a class=\"dropdown-item\" href=\"#\">Support</a>\n          <div class=\"dropdown-divider\"></div>\n          <a class=\"dropdown-item\" href=\"#\">Contact</a>\n        </div>\n      </li>\n    </ul>\n    <!-- SEARCH FORM -->\n    <form class=\"form-inline ml-3\">\n      <div class=\"input-group input-group-sm\">\n        <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-navbar\" type=\"submit\">\n            <i class=\"fas fa-search\"></i>\n          </button>\n        </div>\n      </div>\n    </form>\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"fas fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n       <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"{{ '/assets/img/user1-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"{{ '/assets/img/user8-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"{{ '/assets/img/user3-128x128.jpg' | prepend: site.baseurl }}\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\"><i\n            class=\"fas fa-th-large\"></i></a>\n      </li>\n    </ul>\n  </div>\n</nav>\n\n```html\n<!-- Navbar -->\n<nav class=\"main-header navbar navbar-expand navbar-light navbar-white\">\n  <div class=\"container\">\n    <a href=\"index3.html\" class=\"navbar-brand\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\"\n           style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link dropdown-toggle\" href=\"#\" id=\"navbarDropdown4\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n          Help\n        </a>\n        <div class=\"dropdown-menu\" aria-labelledby=\"navbarDropdown4\">\n          <a class=\"dropdown-item\" href=\"#\">FAQ</a>\n          <a class=\"dropdown-item\" href=\"#\">Support</a>\n          <div class=\"dropdown-divider\"></div>\n          <a class=\"dropdown-item\" href=\"#\">Contact</a>\n        </div>\n      </li>\n    </ul>\n    <!-- SEARCH FORM -->\n    <form class=\"form-inline ml-3\">\n      <div class=\"input-group input-group-sm\">\n        <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-navbar\" type=\"submit\">\n            <i class=\"fas fa-search\"></i>\n          </button>\n        </div>\n      </div>\n    </form>\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"fas fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\"><i\n            class=\"fas fa-th-large\"></i></a>\n      </li>\n    </ul>\n  </div>\n</nav>\n<!-- /.navbar -->\n```\n{: .max-height-300}\n\n\n> ##### Tip!\n> To get a bigger dropdown menu you can add `.dropdown-menu-lg` or `.dropdown-menu-xl` to `.dropdown-menu`.\n> You can also get the legacy dropdown offset with adding `.dropdown-legacy` to `.main-header`.\n{: .quote-info}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/main-sidebar.md",
    "content": "---\nlayout: page\ntitle: Main Sidebar Component\n---\n\nThe sidebar used in this page to the left provides an example of what your sidebar would look like. Construction of a sidebar: \n\n```html\n<!-- Main Sidebar Container -->\n<aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n  <!-- Brand Logo -->\n  <a href=\"index3.html\" class=\"brand-link\">\n    <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\"\n         style=\"opacity: .8\">\n    <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n  </a>\n\n  <!-- Sidebar -->\n  <div class=\"sidebar\">\n    <!-- Sidebar user panel (optional) -->\n    <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n      <div class=\"image\">\n        <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n      </div>\n      <div class=\"info\">\n        <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n      </div>\n    </div>\n\n    <!-- Sidebar Menu -->\n    <nav class=\"mt-2\">\n      <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\">\n        <!-- Add icons to the links using the .nav-icon class\n             with font-awesome or any other icon font library -->\n        <li class=\"nav-item menu-open\">\n          <a href=\"#\" class=\"nav-link active\">\n            <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n            <p>\n              Starter Pages\n              <i class=\"right fas fa-angle-left\"></i>\n            </p>\n          </a>\n          <ul class=\"nav nav-treeview\">\n            <li class=\"nav-item\">\n              <a href=\"#\" class=\"nav-link active\">\n                <i class=\"far fa-circle nav-icon\"></i>\n                <p>Active Page</p>\n              </a>\n            </li>\n            <li class=\"nav-item\">\n              <a href=\"#\" class=\"nav-link\">\n                <i class=\"far fa-circle nav-icon\"></i>\n                <p>Inactive Page</p>\n              </a>\n            </li>\n          </ul>\n        </li>\n        <li class=\"nav-item\">\n          <a href=\"#\" class=\"nav-link\">\n            <i class=\"nav-icon fas fa-th\"></i>\n            <p>\n              Simple Link\n              <span class=\"right badge badge-danger\">New</span>\n            </p>\n          </a>\n        </li>\n      </ul>\n    </nav>\n    <!-- /.sidebar-menu -->\n  </div>\n  <!-- /.sidebar -->\n</aside>\n```\n{: .max-height-300}\n\n\n#### Alternate Logo\n\nYou can use two logo images instead of logo with text, you only need to change the markup to this:\n\n```html\n<a href=\"#\" class=\"brand-link logo-switch\">\n  <img src=\"dist/img/logo-xs.png\" alt=\"AdminLTE Docs Logo Small\" class=\"brand-image-xl logo-xs\">\n  <img src=\"dist/img/logo-xl.png\" alt=\"AdminLTE Docs Logo Large\" class=\"brand-image-xs logo-xl\" style=\"left: 12px\">\n</a>\n```\n> Example from v3.0 docs.\n\nBased on the example above, you can replace `.brand-image-xl` on `.logo-xs` with `.brand-image-xs` or vice versa on `.logo-xl` for changed logo sizes.\n\n#### Brand with Pushmenu Button\n\nYou can place the pushmenu button inside the brand, simply replace the brand-link code with the code below:\n\n```html\n<div class=\"brand-link d-flex justify-content-between align-items-center\">\n  <a class=\"brand-link\" href=\"index3.html\">\n    <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\">\n    <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n  </a>\n  <a class=\"pushmenu\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n</div>\n```\n\n#### Search Form in Sidebar\n\nYou can add this code above user-panel or nav-sidebar:\n\n```html\n<form class=\"form-inline\">\n  <div class=\"input-group\">\n    <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n    <div class=\"input-group-append\">\n      <button class=\"btn btn-sidebar\" type=\"submit\">\n        <i class=\"fas fa-search\"></i>\n      </button>\n    </div>\n  </div>\n</form>\n```\n{: .max-height-300}\n\n\n#### Sidebar Custom Area\n\nYou can add a Custom Area inside the Sidebar to display extra buttons or text below your menu entries.\n\nYou can simply add this code after the `div.sidebar`:\n\n```html\n<div class=\"sidebar-custom\">\n  <a href=\"#\" class=\"btn btn-link\"><i class=\"fas fa-cogs\"></i></a>\n  <a href=\"#\" class=\"btn btn-secondary hide-on-collapse pos-right\">Help</a>\n</div>\n```\n\n> ##### Warning!\n> The Sidebar Custom Area works only with `.layout-fixed` enabled.\n{: .quote-warning}\n\n\n#### Additional Classes\n\n##### Sidebar\n\n- `.sidebar-no-expand` Disables Auto Expand on Hover/Focus\n\n##### Navbar\n\n- `.nav-child-indent` Child indent\n- `.nav-compact` Compact nav items\n- `.nav-flat` Flat nav style\n- `.nav-legacy` Legacy v2 nav style\n- `.nav-collapse-hide-child` Hide nav item submenus on collapsed sidebar\n\n\n> ##### Tip!\n> You can also use `.text-sm` on `.nav-sidebar` or `.brand-link` for smaller font.\n{: .quote-info}\n\nFor more information about the JS part of the sidebar, please visit the [PushMenu plugin page]({% link javascript/push-menu.md %})\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/miscellaneous.md",
    "content": "---\nlayout: page\ntitle: Miscellaneous\n---\n\nAdminLTE has smaller custom classes that not related to other components are listed here.\n\n\n### Text Size \n\nYou can change the font sizes with adding to any element `.text-*` e.g. (`.text-sm`).\n\n- `.text-xs` (0.75rem)\n- `.text-sm` (0.875rem)\n- `.text-md` (1rem)\n- `.text-lg` (1.25rem)\n- `.text-xl` (2rem)\n\n> ##### Tip!\n> You can also add `.text-sm` to `body`, with this you get a complete smaller font on the UI or can you add `.text-sm` to `.main-sidebar` or `.main-header` & `.brand-link`.\n{: .quote-info}\n\n\n### Dropdown Menu Large\n\nYou can add the `.dropdown-menu-lg` to `.dropdown-menu` for a bigger dropdown menu.\n\n\n### Dropdown Hover\n\nYou can add the `.dropdown-hover` class beside this classes:\n- `.dropdown` (to use hover for the whole dropdown menu)\n- `.dropdown-menu` (to use hover on a specific menu item & sub menus)\n- `.dropdown-submenu` (to use hover on a specific sub menu item & sub sub menus)\n\n### Form Control Bottom Border Only\n\nYou can change the form-control input to a bottom border only style with adding the `.form-control-border` class.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/plugins.md",
    "content": "---\nlayout: page\ntitle: Plugins\n---\nAdminLTE comes with color overrides & extras for the following plugins.\n\n### Bootstrap Slider\n\nYou can override the color for bootstrap slider tracks with the following classes:\n\n- `.slider-*`\n\nExample:\n\n```html\n<div class=\"slider-red\">\n  <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider...>\n</div>\n```\n\nYou can also change the layout of the slider with the following classes:\n\n- `.slider-vertical`\n- `.slider-horizontal`\n\nExample:\n\n```html\n<div class=\"slider-red\">\n  <input type=\"text\" value=\"\" class=\"slider slider-vertical form-control\" data-slider...>\n</div>\n```\n\n\n### iCheck Bootstrap\n\nYou can override the color of a iCheck checkbox/radio input, add the following class:\n\n- `.icheck-*`\n\nExample:\n\n```html\n<div class=\"icheck-primary\">\n  <input type=\"checkbox\" id=\"checkbox1\">\n  <label for=\"checkbox1\">\n    Checkbox Label\n  </label>\n</div>\n```\n\n\n### Pace\n\nYou can override the color for all pace themes, load your desired theme and add one the following classes to `body`:\n\n- `.pace-*`\n  - barber-shop\n  - flat-top\n  - minimal\n- `.pace-big-counter-*`\n  - big-counter\n- `.pace-bounce-*`\n  - bounce\n- `pace-center-atom-*`\n  - center-atom\n- `pace-center-circle-*`\n  - center-circle\n- `pace-center-radar-*`\n  - center-radar\n- `pace-center-simple-*`\n  - center-simple\n- `pace-corner-indicator-*`\n  - corner-indicator\n- `.pace-flash-*`\n  - flash\n- `.pace-fill-left-*`\n  - fill-left\n- `.pace-loading-bar-*`\n  - loading-bar\n- `.pace-material-*`\n  - material\n- `.pace-mac-osx-*`\n  - mac-osx\n\nExample: `<body class=\"pace-success\">`\n\n\n### SweetAlert\n\nIf you use SweetAlert and load the SweetAlert CSS before AdminLTE's CSS, then the colors of any icon changes to AdminLTE's default colors.\n\n\n### Toastr\n\nIf you use Toastr and load the Toastr CSS before AdminLTE's CSS, then the background colors changes to AdminLTE's default colors.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/ribbons.md",
    "content": "---\nlayout: page\ntitle: Ribbons Component\n---\n\nThe ribbons component is a easy way to display informations above any content. The `.ribbon-warpper` needs to be inside a element with _position:relative;_. In this docs page we place the ribbon always inside `<div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\"></div>` for demo purpose but it can placed inside cards, table rows & many more.\n\nThe ribbon comes in three sizes to display more text or use larger font sizes, default (only `.ribbon-wrapper`), large (`.ribbon-wrapper` with `.ribbon-lg`), extra large (`.ribbon-wrapper` with `.ribbon-xl`).\n\n##### Example Markup \n{: .text-bold .text-dark .mt-5}\n\n<div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n  <div class=\"ribbon-wrapper\">\n    <div class=\"ribbon bg-primary\">\n      Ribbon\n    </div>\n  </div>\n  Ribbon Default <br />\n  <small>.ribbon-wrapper.ribbon-lg .ribbon</small>\n</div>\n\n```html\n<div class=\"ribbon-wrapper\">\n  <div class=\"ribbon bg-primary\">\n    Ribbon\n  </div>\n</div>\n```\n{: .max-height-300}\n\n##### Ribbon Size Variations\n{: .text-bold .text-dark .mt-5}\n\n<div class=\"row\">\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper\">\n        <div class=\"ribbon bg-primary\">\n          Ribbon\n        </div>\n      </div>\n      Ribbon Default <br />\n      <small>.ribbon-wrapper.ribbon-lg .ribbon</small>\n    </div>\n  </div>\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper ribbon-lg\">\n        <div class=\"ribbon bg-info\">\n          Ribbon Large\n        </div>\n      </div>\n      Ribbon Large <br />\n      <small>.ribbon-wrapper.ribbon-lg .ribbon</small>\n    </div>\n  </div>\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper ribbon-xl\">\n        <div class=\"ribbon bg-secondary\">\n          Ribbon Extra Large\n        </div>\n      </div>\n      Ribbon Extra Large <br />\n      <small>.ribbon-wrapper.ribbon-xl .ribbon</small>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n  <div class=\"ribbon-wrapper\">\n    <div class=\"ribbon bg-primary\">\n      Ribbon\n    </div>\n  </div>\n```\n  </div>\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n  <div class=\"ribbon-wrapper ribbon-lg\">\n    <div class=\"ribbon bg-info\">\n      Ribbon Large\n    </div>\n  </div>\n```\n  </div>\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n  <div class=\"ribbon-wrapper ribbon-xl\">\n    <div class=\"ribbon bg-secondary\">\n      Ribbon Extra Large\n    </div>\n  </div>\n```\n  </div>\n</div>\n\n##### Text Size Variations\n{: .text-bold .text-dark .mt-5}\n\n<div class=\"row\">\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper ribbon-lg\">\n        <div class=\"ribbon bg-success text-lg\">\n          Ribbon\n        </div>\n      </div>\n      Ribbon Large <br /> with Large Text <br />\n      <small>.ribbon-wrapper.ribbon-lg .ribbon.text-lg</small>\n    </div>\n  </div>\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper ribbon-xl\">\n        <div class=\"ribbon bg-warning text-lg\">\n          Ribbon\n        </div>\n      </div>\n      Ribbon Extra Large <br /> with Large Text <br />\n      <small>.ribbon-wrapper.ribbon-xl .ribbon.text-lg</small>\n    </div>\n  </div>\n  <div class=\"col-sm-4\">\n    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n      <div class=\"ribbon-wrapper ribbon-xl\">\n        <div class=\"ribbon bg-danger text-xl\">\n          Ribbon\n        </div>\n      </div>\n      Ribbon Extra Large <br /> with Extra Large Text <br />\n      <small>.ribbon-wrapper.ribbon-xl .ribbon.text-xl</small>\n    </div>\n  </div>\n</div>\n<div class=\"row\">\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n<div class=\"ribbon-wrapper ribbon-lg\">\n  <div class=\"ribbon bg-success text-lg\">\n    Ribbon\n  </div>\n</div>\n```\n  </div>\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n<div class=\"ribbon-wrapper ribbon-xl\">\n  <div class=\"ribbon bg-warning text-lg\">\n    Ribbon\n  </div>\n</div>\n```\n  </div>\n  <div class=\"col-sm-4\" markdown=\"1\">\n```html\n<div class=\"ribbon-wrapper ribbon-xl\">\n  <div class=\"ribbon bg-danger text-xl\">\n    Ribbon\n  </div>\n</div>\n```\n  </div>\n</div>\n\n##### Image Example Code\n{: .text-bold .text-dark .mt-5}\n\n```html\n<div class=\"position-relative\">\n  <img src=\"../../dist/img/photo1.png\" alt=\"Photo 1\" class=\"img-fluid\">\n  <div class=\"ribbon-wrapper ribbon-lg\">\n    <div class=\"ribbon bg-success text-lg\">\n      Ribbon\n    </div>\n  </div>\n</div>\n```\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/components/timeline.md",
    "content": "---\nlayout: page\ntitle: Timeline Component\n---\n\nThe timeline component displays an event history. You can use it for descriptions of events that occurred in a particular time section.\n\n##### Default\n\n```html\n<!-- Main node for this component -->\n<div class=\"timeline\">\n  <!-- Timeline time label -->\n  <div class=\"time-label\">\n    <span class=\"bg-green\">23 Aug. 2019</span>\n  </div>\n  <div>\n  <!-- Before each timeline item corresponds to one icon on the left scale -->\n    <i class=\"fas fa-envelope bg-blue\"></i>\n    <!-- Timeline item -->\n    <div class=\"timeline-item\">\n    <!-- Time -->\n      <span class=\"time\"><i class=\"fas fa-clock\"></i> 12:05</span>\n      <!-- Header. Optional -->\n      <h3 class=\"timeline-header\"><a href=\"#\">Support Team</a> sent you an email</h3>\n      <!-- Body -->\n      <div class=\"timeline-body\">\n        Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles,\n        weebly ning heekya handango imeem plugg dopplr jibjab, movity\n        jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle\n        quora plaxo ideeli hulu weebly balihoo...\n      </div>\n      <!-- Placement of additional controls. Optional -->\n      <div class=\"timeline-footer\">\n        <a class=\"btn btn-primary btn-sm\">Read more</a>\n        <a class=\"btn btn-danger btn-sm\">Delete</a>\n      </div>\n    </div>\n  </div>\n  <!-- The last icon means the story is complete -->\n  <div>\n    <i class=\"fas fa-clock bg-gray\"></i>\n  </div>\n</div>\n```\n{: .max-height-300}\n\n##### Extra style\n\nThere is an additional class for styling. It darkens the elements, highlighting it against the general background.\nYou can use it with adding `.timeline-inverse` to `.timeline`.\n\n```html\n<div class=\"timeline timeline-inverse\">\n  <!-- ... Item ... -->\n</div>\n```\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/dependencies.md",
    "content": "---\nlayout: page\ntitle: Dependencies & Plugins\n---\n\n#### Dependencies\n\nAdminLTE depends on two main frameworks. The downloadable package contains both of these libraries, so you don't have to manually download them.\n{: .lead}\n\n- [Bootstrap 4.6](https://getbootstrap.com/)\n- [jQuery 3.5.1+](https://jquery.com/)\n- [Popper.js 1.16.1+](https://popper.js.org/)\n- [All other plugins are listed below](#plugins)\n\n#### Plugins\n{: .mt-4 .anchor}\n\nAdminLTE makes use of the following plugins. For documentation, updates or license information, please visit the provided links.\n{: .lead}\n\n> Note!\n> You need to load the js/css files of the plugin that you want to use.\n> AdminLTE doesn't load automatically all plugins, this would cause huge load times on every page load.\n{:.quote-warning}\n\n<div class=\"row px-3\">\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Charts</h4></li>\n      <li><a href=\"https://www.chartjs.org/\" rel=\"noopener\" target=\"_blank\">ChartJS</a></li>\n      <li><a href=\"http://www.flotcharts.org/\" rel=\"noopener\" target=\"_blank\">Flot</a></li>\n      <li><a href=\"https://github.com/mariusGundersen/sparkline\" rel=\"noopener\" target=\"_blank\">Sparkline</a></li>\n      <li><a href=\"https://github.com/leeoniya/uPlot/\" rel=\"noopener\" target=\"_blank\">uPlot</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Editors</h4></li>\n      <li><a href=\"https://summernote.org/\" rel=\"noopener\" target=\"_blank\">Summernote</a></li>\n      <li><a href=\"https://codemirror.net/\" rel=\"noopener\" target=\"_blank\">CodeMirror</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Form Elements</h4></li>\n      <li><a href=\"https://farbelous.io/bootstrap-colorpicker/\">Bootstrap Colorpicker</a></li>\n      <li><a href=\"https://github.com/seiyria/bootstrap-slider/\">Bootstrap Slider</a></li>\n      <li><a href=\"https://github.com/Bttstrp/bootstrap-switch\">Bootstrap Switch</a></li>\n      <li><a href=\"http://www.daterangepicker.com/\" rel=\"noopener\" target=\"_blank\">Date Range Picker</a></li>\n      <li><a href=\"https://www.dropzonejs.com/\" rel=\"noopener\" target=\"_blank\">Dropzone JS</a></li>\n      <li><a href=\"https://github.com/bantikyan/icheck-bootstrap#readme\" rel=\"noopener\" target=\"_blank\">iCheck Bootstrap</a></li>\n      <li><a href=\"https://github.com/RobinHerbots/Inputmask/\" rel=\"noopener\" target=\"_blank\">Inputmask</a></li>\n      <li><a href=\"http://ionden.com/a/plugins/ion.rangeSlider/\" rel=\"noopener\" target=\"_blank\">Ion.RangeSlider</a></li>\n      <li><a href=\"https://select2.org/\" rel=\"noopener\" target=\"_blank\">Select2</a></li>\n      <li><a href=\"https://tempusdominus.github.io/bootstrap-4/\" rel=\"noopener\" target=\"_blank\">Tempus Dominus</a></li>\n      <li><a href=\"https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox#readme\" rel=\"noopener\" target=\"_blank\">Bootstrap4 Duallistbox</a></li>\n      <li><a href=\"https://github.com/Johann-S/bs-custom-file-input#readme\" rel=\"noopener\" target=\"_blank\">bs-custom-file-input</a></li>\n      <li><a href=\"https://github.com/Johann-S/bs-stepper#readme\" rel=\"noopener\" target=\"_blank\">bs-stepper</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Icon Packs</h4></li>\n      <li><a href=\"https://fontawesome.com/\" rel=\"noopener\" target=\"_blank\">FontAwesome 5</a></li>\n      <li><a href=\"https://github.com/lipis/flag-icon-css#readme\" rel=\"noopener\" target=\"_blank\">flag-icon-css</a></li>\n    </ul>\n  </div>\n</div>\n<div class=\"row px-3\">\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Table Grids</h4></li>\n      <li><a href=\"https://datatables.net/\" rel=\"noopener\" target=\"_blank\">DataTables</a></li>\n      <li><a href=\"https://datatables.net/extensions/\" rel=\"noopener\" target=\"_blank\">DataTables (Included all open-source extensions with Bootstrap 4 styling)</a></li>\n      <li><a href=\"http://js-grid.com/\" rel=\"noopener\" target=\"_blank\">jsGrid</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Notifications</h4></li>\n      <li><a href=\"https://sweetalert2.github.io/\" rel=\"noopener\" target=\"_blank\">SweetAlert2</a></li>\n      <li><a href=\"https://codeseven.github.io/toastr/\" rel=\"noopener\" target=\"_blank\">Toastr</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Others</h4></li>\n      <li><a href=\"https://github.com/ftlabs/fastclick#readme\" rel=\"noopener\" target=\"_blank\">FastClick</a></li>\n      <li><a href=\"https://fullcalendar.io/\">FullCalendar 4</a></li>\n      <li><a href=\"https://github.com/aterrien/jQuery-Knob#readme\">jQuery Knob</a></li>\n      <li><a href=\"https://jqueryui.com/\" rel=\"noopener\" target=\"_blank\">jQuery UI</a></li>\n      <li><a href=\"https://jqueryvalidation.org/\" rel=\"noopener\" target=\"_blank\">jQuery Validation</a></li>\n      <li><a href=\"https://www.vincentbroute.fr/mapael/\" rel=\"noopener\" target=\"_blank\">jQuery Mapael</a></li>\n      <li><a href=\"https://github.com/bbmumford/jqvmap#readme\" rel=\"noopener\" target=\"_blank\">jQuery Vector Map</a></li>\n      <li><a href=\"https://kingsora.github.io/OverlayScrollbars/\" rel=\"noopener\" target=\"_blank\">Overlay Scrollbars</a></li>\n      <li><a href=\"https://github.com/lgaitan/pace#readme\" rel=\"noopener\" target=\"_blank\">Pace Progress</a></li>\n      <li><a href=\"https://github.com/giotiskl/filterizr#readme\" rel=\"noopener\" target=\"_blank\">FilterizR</a></li>\n    </ul>\n  </div>\n  <div class=\"col-sm-3\">\n    <ul class=\"list-unstyled\">\n      <li><h4>Plugin Dependencies</h4></li>\n      <li><a href=\"https://github.com/jquery/jquery-mousewheel#readme\" rel=\"noopener\" target=\"_blank\">jQuery Mousewheel</a></li>\n      <li><a href=\"https://momentjs.com/\" rel=\"noopener\" target=\"_blank\">Moment.js</a></li>\n      <li><a href=\"https://dmitrybaranovskiy.github.io/raphael/\" rel=\"noopener\" target=\"_blank\">Raphaël</a></li>\n      <li><a href=\"https://github.com/bpampuch/pdfmake#readme\" rel=\"noopener\" target=\"_blank\">pdfmake</a></li>\n      <li><a href=\"https://github.com/Stuk/jszip#readme\" rel=\"noopener\" target=\"_blank\">jszip</a></li>\n    </ul>\n  </div>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/faq.md",
    "content": "---\nlayout: page\ntitle: FAQ\n---\n\n#### Can AdminLTE be used with WordPress?\n\nAdminLTE is an HTML template that can be used for any purpose. However, it is not made to be easily installed on WordPress. It will require some effort and enough knowledge of the WordPress script to do so.\n\n#### Is there an integration guide for PHP frameworks such as Yii or Symfony?\n\nShort answer, no. However, there are forks and tutorials around the web that provide info on how to integrate with many different frameworks. There are even versions of AdminLTE that are integrated with jQuery ajax, AngularJS and/or MVC5 ASP .NET.\n\n#### How do I get notified of new AdminLTE versions?\n\nYou may watch the [releases on GitHub](https://github.com/ColorlibHQ/AdminLTE).\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/how-to-contribute.md",
    "content": "---\nlayout: page\ntitle: \n---\n\n# Contributing to AdminLTE\n\nContributions are always **welcome and recommended**! Here is how for beginner's: [Get started with open source click here](https://youtu.be/GbqSvJs-6W4)\n\n1. Contribution Requirements :\n    * When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate.\n    * If you use content provided by another party, it must be appropriately licensed using an [open source](https://opensource.org/licenses) license.\n    * Contributions are only accepted through GitHub pull requests.\n    * Finally, contributed code must work in all supported browsers (see above for browser support).\n2. Installation :\n    * Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).\n    * Clone to your machine\n\n    ```bash\n    git clone https://github.com/YOUR_USERNAME/AdminLTE.git\n    ```\n    * Create a new branch\n3. Compile dist files (Development) :\n    * To compile the dist files you need Node.js 10 or higher/npm (node package manager)\n    * Delete ./package-lock.json file\n    * `npm install` (install npm deps)\n    * `npm run dev` (developer mode, autocompile with browsersync support for live demo)\n    * Make your changes only in ./buid Folder OR package.json OR ./dist/js/demo.js OR in any html files which nessary to contribute\n    * Do not changes in ./dist/css/ AND ./dist/js/ Because its compiled files\n    * `npm run production` (compile css/js files and test every pages are perfectly working fine, before creating pull request)\n4. Create a pull request\n\n## Online one-click setup for contributing\n\nYou can use Gitpod(an online IDE which is free for Open Source) for working on issues or making Prs. With a single click it will launch a workspace and automatically:\n\n- clone the `AdminLTE` repo.\n- install the dependencies.\n- run `npm run dev` to start the server.\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/implementations.md",
    "content": "---\nlayout: page\ntitle: Implementations\n---\n\nThanks to many of AdminLTE users, there are multiple implementations of the template for easy integration with back-end frameworks. The following are some of them: \n\n\n##### AdminLTE v3.0\n{: .text-bold .text-dark .mt-3}\n- [Setup AdminLTE3 in to Laravel in few minutes](https://youtu.be/jA7hr2gE9yc) by [Shailesh Ladumor](https://github.com/shailesh-ladumor)\n- [Laravel-AdminLTE _v3.x_](https://github.com/jeroennoten/Laravel-AdminLTE) by [Jeroen Noten](https://github.com/jeroennoten)\n- [django-adminlte3](https://github.com/d-demirci/django-adminlte3) by [d-demirci](https://github.com/d-demirci)\n- [AdminLTE3.MVC](https://www.nuget.org/packages/AdminLTE3.MVC/) by [somaraj](https://github.com/somaraj)\n- [admin-lte-dotnet](https://github.com/iyilm4z/admin-lte-dotnet) by [iyilm4z](https://github.com/iyilm4z)\n- [WebPx.AdminLTE.AspNetCore](https://github.com/WebPx/WebPx.AdminLTE.AspNetCore) by [WebPx](https://github.com/WebPx)\n- [AdminLTE-3-Angular](https://github.com/erdkse/adminlte-3-angular) by [erdkse](https://github.com/erdkse)\n- [AdminLTE-3-React](https://github.com/erdkse/adminlte-3-react) by [erdkse](https://github.com/erdkse)\n- [AdminLTE-3-Vue](https://github.com/erdkse/adminlte-3-vue) by [erdkse](https://github.com/erdkse)\n- [ASP.NET Core MVC / Angular Startup Project](https://github.com/aspnetboilerplate/module-zero-core-template) by [ASP.NET Boilerplate](https://github.com/aspnetboilerplate)\n- [AdminLTE-3-CakePHP](https://github.com/arodu/cakelte) by [arodu](https://github.com/arodu)\n- [AdminLTE-3 for Lua Server Pages](https://github.com/RealTimeLogic/LSP-Examples/tree/master/Dashboard) by [Real Time Logic](https://github.com/RealTimeLogic/)\n\n##### AdminLTE v2.4\n{: .text-bold .text-dark .mt-3}\n- [Setup AdminLTE2 in to Laravel in few minutes](https://youtu.be/8Fa7Ji4lDyI) by [Shailesh Ladumor](https://github.com/shailesh-ladumor)\n- [Laravel-AdminLTE _v1.x & v2.x_](https://github.com/jeroennoten/Laravel-AdminLTE) by [Jeroen Noten](https://github.com/jeroennoten)\n- [adminlte-laravel](https://github.com/acacha/adminlte-laravel) by [Sergi Tur Badenas](https://github.com/acacha)\n- [yii2-adminlte-asset](https://github.com/dmstr/yii2-adminlte-asset) by [Tobias Munk](https://github.com/schmunk42)\n\n##### AdminLTE v2.3\n{: .text-bold .text-dark .mt-3}\n- [AdminThemeBundle (Symfony)](https://github.com/avanzu/AdminThemeBundle) by [Marc Bach](https://github.com/avanzu)\n- [lte-rails](https://github.com/racketlogger/lte-rails) by [Carlos at RacketLogger](https://github.com/racketlogger)\n\n##### AdminLTE v2.2\n{: .text-bold .text-dark .mt-3}\n- [AdminLTE-RTL](https://github.com/mmdsharifi/AdminLTE-RTL) by [Mohammad Sharifi](https://github.com/mmdsharifi)\n\n##### AdminLTE v2.1\n{: .text-bold .text-dark .mt-3}\n- [adminlte2-rails](https://github.com/nicolas-besnard/adminlte2-rails) by [Nicolas Besnard](https://github.com/nicolas-besnard)\n\n\n\n> ##### Note!\n> These implementations are not supported by ColorlibHQ. However, they do provide a good example of how to integrate AdminLTE into different frameworks. For the latest release of AdminLTE, please visit our [repository](https://github.com/ColorlibHQ/AdminLTE/) or [website](https://adminlte.io).\n{: .quote-danger}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/index.md",
    "content": "---\nlayout: page\ntitle: Introduction\n---\n\n## Quick start\nThere are multiple ways to install AdminLTE.\n\n### Download & Changelog:\nAlways Recommended to download from GitHub latest release [AdminLTE 3](https://github.com/ColorlibHQ/AdminLTE/releases/latest) for bug free and latest features.\\\nVisit the [releases](https://github.com/ColorlibHQ/AdminLTE/releases) page to view the changelog.\\\nLegacy Releases are [AdminLTE 2](https://github.com/ColorlibHQ/AdminLTE/releases/tag/v2.4.18) / [AdminLTE 1](https://github.com/ColorlibHQ/AdminLTE/releases/tag/1.3.1).\n\n## Stable release\n### Grab from [jsdelivr](https://www.jsdelivr.com/package/npm/admin-lte) CDN:\n_**Important Note**: You needed to add separately cdn links for plugins in your project._\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1/dist/js/adminlte.min.js\"></script>\n```\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/admin-lte@3.1/dist/css/adminlte.min.css\">\n```\n### Using The Command Line:\n_**Important Note**: To install it via npm/Yarn, you need at least Node.js 10 or higher._\n#### Via npm\n```bash\nnpm install admin-lte@^3.1 --save\n```\n#### Via Yarn\n```bash\nyarn add admin-lte@^3.1\n```\n#### Via Composer\n```bash\ncomposer require \"almasaeed2010/adminlte=~3.1\"\n```\n#### Via Git\n```bash\ngit clone https://github.com/ColorlibHQ/AdminLTE.git\n```\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/card-refresh.md",
    "content": "---\nlayout: page\ntitle: Card Refresh Plugin\n---\n\nThe card refresh plugin provides the functionality for loading ajax content into the card. \n\n##### Usage\n\nThis plugin can be activated as a jQuery plugin or using the data API. \n\n###### Data API\n{: .text-bold }\n\nActivate the plugin by adding a button with `data-card-widget=\"card-refresh\"` to the card and provide the required `data-source=\"/URL-TO-CONTENT\"` option. By doing that, the plugin will automatically create a GET request to the provided URL and render the returned response the `.card-body` section of the card. If you need to process the returned response before rendering, you should use the jQuery API, which provides hooks to deal with the response. \n\n\n###### jQuery\n{: .text-bold }\n\nThe jQuery API provides more customizable options that allows the developer to pre-process the request before rendering and post-process it after rendering. \n\n```js\n(\"#my-card\").refreshBox(options)\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n| source | String | '' | The URL to the source.\n| sourceSelector | String | '' | A selector to get return only the content of the selector.\n| params | Object | {} | GET query paramaters (example: {search_term: 'layout'}, which renders to URL/?search_term=layout)\n| trigger | String | `[data-card-widget=\"card-refresh\"]` | The CSS selector to the refresh button\n| content | String | `.card-body` | The CSS selector to the target where the content should be rendered. This selector should exist within the card.\n| loadInContent | Boolean | TRUE | Whether to automatically render the content.\n| loadOnInit | Boolean | TRUE | Init plugin on page load.\n| responseType | String | '' | Response type (example: 'json' or 'html')\n| overlayTemplate | String | TRUE | The HTML template for the ajax spinner\n| onLoadStart | Function | Anonymous Function | Called before the ajax request is made\n| onLoadDone | Function | Anonymous Function | Called after the ajax request is made. A `response` parameter is passed to the function that hold the server response. \n{: .table .table-bordered .bg-light}\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|loaded.lte.cardrefresh | Triggered after a card is refreshed.\n|overlay.added.lte.cardrefresh | Triggered after the overlay added to the card.\n|overlay.removed.lte.cardrefresh | Triggered after the overlay removed from the card.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#my-card [data-card-widget=\"card-refresh\"]').on('loaded.lte.cardrefresh', handleLoadedEvent)`\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|load | Reloads the content and runs the `onLoadStart` and `onLoadDone` hooks\n{: .table .table-bordered .bg-light}\n\nExample: `$('#my-card-widget').Widget('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/card-widget.md",
    "content": "---\nlayout: page\ntitle: Card Widget Plugin\n---\n\nThe card widget plugin provides the functionality for collapsing, expanding and removing a card. \n\n### Usage\n\nThis plugin can be activated as a jQuery plugin or using the data API. \n\n#### Data API\n\nThis plugin provides two `data-api` attributes. Any element using one of the following attributes should be placed within the `.card-tools` div, which is usually in the card header. For more information about the [card HTML structure]({% link components/cards.md %}), visit the card component documentation \n\n##### `data-card-widget=\"collapse\"`\n\nThis attribute, when attached to a button, allows the box to be collapsed/expanded when clicked. \n\n<div class=\"row\">\n  <div class=\"col-12 col-md-4\">\n     <div class=\"card\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Collapsible Card Example</h3>\n        <div class=\"card-tools\">\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\"><i class=\"fas fa-minus\"></i></button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-12 col-md-8\" markdown=\"1\">\n```html\n<div class=\"card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Collapsible Card Example</h3>\n    <div class=\"card-tools\">\n      <!-- Collapse Button -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\"><i class=\"fas fa-minus\"></i></button>\n    </div>\n    <!-- /.card-tools -->\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <!-- /.card-body -->\n</div>\n<!-- /.card -->\n```\n{: .max-height-300}\n  </div>\n</div>\n\n##### `data-card-widget=\"remove\"`\n\nThis attribute, when attached to a button, allows the box to be removed when clicked. \n\n<div class=\"row\">\n  <div class=\"col-12 col-md-4\">\n     <div class=\"card\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Removable Card Example</h3>\n        <div class=\"card-tools\">\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i></button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-12 col-md-8\" markdown=\"1\">\n```html\n<div class=\"card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Removable Card Example</h3>\n    <div class=\"card-tools\">\n      <!-- Remove Button -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i></button>\n    </div>\n    <!-- /.card-tools -->\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <!-- /.card-body -->\n</div>\n<!-- /.card -->\n```\n{: .max-height-300}\n  </div>\n</div>\n\n##### `data-card-widget=\"maximize\"`\n\nThis attribute, when attached to a button, allows the box to be maximize/minimize when clicked. \n\n<div class=\"row\">\n  <div class=\"col-12 col-md-4\">\n     <div class=\"card\">\n      <div class=\"card-header\">\n        <h3 class=\"card-title\">Maximizable Card Example</h3>\n        <div class=\"card-tools\">\n          <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\"><i class=\"fas fa-expand\"></i></button>\n        </div>\n      </div>\n      <div class=\"card-body\">\n        The body of the card\n      </div>\n    </div>\n  </div>\n  <div class=\"col-12 col-md-8\" markdown=\"1\">\n```html\n<div class=\"card\">\n  <div class=\"card-header\">\n    <h3 class=\"card-title\">Maximizable Card Example</h3>\n    <div class=\"card-tools\">\n      <!-- Maximize Button -->\n      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\"><i class=\"fas fa-expand\"></i></button>\n    </div>\n    <!-- /.card-tools -->\n  </div>\n  <!-- /.card-header -->\n  <div class=\"card-body\">\n    The body of the card\n  </div>\n  <!-- /.card-body -->\n</div>\n<!-- /.card -->\n```\n{: .max-height-300}\n  </div>\n</div>\n\n\n###### jQuery\n{: .text-bold }\nTo activate any button using jQuery, you must provide the removeTrigger and collapseTrigger options. Otherwise, the plugin will assume the default `data-card-widget` selectors. \n\n```js\n$('#my-card').CardWidget(options)\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|animationSpeed | Number | 300 | Speed of slide down/up animation in milliseconds.\n|collapseTrigger | String | `[data-card-widget=\"collapse\"]` | jQuery selector to the element responsible for collapsing the box.\n|removeTrigger | String | `[data-card-widget=\"remove\"]` | jQuery selector to the element responsible for removing the box.\n|maximizeTrigger | String | `[data-card-widget=\"maximize\"]` | jQuery selector to the element responsible for maximizing the box.\n{: .table .table-bordered .bg-light}\n\n> ##### Tip!\n> You can use any option via the data-attributes like this.\n> ```html\n> <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" data-animation-speed=\"1000\"><i class=\"fas fa-minus\"></i></button>\n> ```\n{: .quote-info}\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|expanded.lte.cardwidget | Triggered after a card expanded.\n|collapsed.lte.cardwidget | Triggered after a card collapsed.\n|maximized.lte.cardwidget | Triggered after a card maximized.\n|minimized.lte.cardwidget | Triggered after a card minimized.\n|removed.lte.cardwidget | Triggered after a card removed.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#my-card').on('expanded.lte.cardwidget', handleExpandedEvent)`\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|collapse | Collapses the card\n|expand | Expands the card\n|remove | Removes the card\n|toggle | Toggles the state of the card between expanded and collapsed\n|maximize | Maximizes the card\n|minimize | Minimizes the card\n|toggleMaximize | Toggles the state of the card between maximized and minimized\n{: .table .table-bordered .bg-light}\n\nExample: `$('#my-card-widget').CardWidget('toggle')` or `$('#my-card').CardWidget('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/control-sidebar.md",
    "content": "---\nlayout: page\ntitle: Control Sidebar Plugin\n---\n\nThe control sidebar component is part of AdminLTE's layout as the right sidebar. \n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. To activate the plugin, you must first add the HTML markup to your layout, then create the toggle button as shown below. \n\n###### HTML Markup\n{: .text-bold }\n```html\n<!-- Control Sidebar -->\n<aside class=\"control-sidebar control-sidebar-dark\">\n  <!-- Control sidebar content goes here -->\n</aside>\n<!-- /.control-sidebar -->\n```\n\n###### Data api\n{: .text-bold }\nAdd `data-widget=\"control-sidebar\"` to any button or a element to activate the plugin.\n\n```html\n<a href=\"#\" data-widget=\"control-sidebar\">Toggle Control Sidebar</a>\n```\n\n###### jQuery\n{: .text-bold }\nJust like all other AdminLTE plugins, you can also activate the toggle button using jQuery by running the following example. \n```js\n$(\"#my-toggle-button\").ControlSidebar('toggle');\n```\n\n##### Options\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|controlsidebarSlide | Boolean | TRUE | Whether the sidebar should slide over the content or push the content to make space for itself.\n|scrollbarTheme | Boolean | `os-theme-light` | Scrollbar Theme used while SideBar Fixed\n|scrollbarAutoHide | Boolean | `l` | Scrollbar auto-hide trigger\n|target | String | `.control-sidebar` | Target control-sidebar to handle multiple control-sidebars.\n{: .table .table-bordered .bg-light}\n\n> ##### Tip!\n> You can use any option via the data-attributes like this to enable auto collapse sidebar on 768 pixels width.\n> ```html\n> <a href=\"#\" data-widget=\"control-sidebar\" data-controlsidebar-slide=\"false\">Toggle Control Sidebar</a>\n> ```\n{: .quote-info}\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|expanded.lte.controlsidebar | Triggered after a control sidebar expands.\n|collapsed.lte.controlsidebar | Triggered after a control sidebar collapses.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#toggle-button').on('expanded.lte.controlsidebar', handleExpandedEvent)`\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|collapse | Collapses the control-sidebar\n|show | Show's the control-sidebar\n|toggle | Toggles the state of the control-sidebar expanded and collapsed\n{: .table .table-bordered .bg-light}\n\nExample: `$('#toggle-button').ControlSidebar('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/direct-chat.md",
    "content": "---\nlayout: page\ntitle: Direct Chat Plugin\n---\n\nThe direct chat plugin provides simple functionality to the direct chat component. \n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. \n\n###### Data API\n{: .text-bold }\nAdd `data-widget=\"chat-pane-toggle\"` to a button to activate the plugin. \n```html\n<button class=\"btn btn-primary\" data-widget=\"chat-pane-toggle\">Toggle Chat Pane</button>\n``` \n\n###### jQuery\n{: .text-bold }\nThe jQuery API provides more customizable options that allows the developer to toggle the chat contact pane. \n```js\n$('#chat-pane-toggle').DirectChat('toggle')\n```\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|toggle | Toggles the state of the chat pane between hidden and visible.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#chat-pane-toggle').DirectChat('toggle')`\n\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|toggled.lte.directchat | Triggered after a direct chat contacts pane is toggled.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#toggle-button').on('toggled.lte.directchat', handleToggledEvent)`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/expandable-tables.md",
    "content": "---\nlayout: page\ntitle: Expandable Table Plugin\n---\n\nThe expandable table plugin provides simple functionality to create expandable tables. \n\n##### Example Code\n```html\n<table class=\"table table-bordered table-hover\">\n  <tbody>\n    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n      <td>183</td>\n    </tr>\n    <tr class=\"expandable-body\">\n      <td>\n        <p>\n          <!-- YOUR EXPANDABLE TABLE BODY HERE -->\n        </p>\n      </td>\n    </tr>\n    <tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n      <td>219</td>\n    </tr>\n    <tr class=\"expandable-body\">\n      <td>\n        <p>\n          <!-- YOUR EXPANDABLE TABLE BODY HERE -->\n        </p>\n      </td>\n    </tr>\n    <tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n      <td>657</td>\n    </tr>\n    <tr class=\"expandable-body\">\n      <td>\n        <p>\n          <!-- YOUR EXPANDABLE TABLE BODY HERE -->\n        </p>\n      </td>\n    </tr>\n  </tbody>\n</table>\n```\n{: .max-height-300}\n\n\n> ##### Tip!\n> You can control the default visibility with ` aria-expanded=\"false\"`/` aria-expanded=\"true\"` via the expandable table header.\n{: .quote-info}\n\n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. \n\n###### Data API\n{: .text-bold }\nAdd `data-widget=\"expandable-table\"` to a table row to activate the plugin and place a new table row below with the `.expandable-body`-class.\n```html\n<tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n  <td>657</td>\n</tr>\n<tr class=\"expandable-body\">\n  <td>\n    <p>\n    </p>\n  </td>\n</tr>\n``` \n\n> ##### Tip!\n> To get the correct slide up/down animation place a `div` or `p`-tag inside your expandable table body.\n{: .quote-info}\n\n\n###### jQuery\n{: .text-bold }\nThe jQuery API provides more customizable options that allows the developer to toggle the visibilty state of one table row. \n```js\n$('#expandable-table-header-row').ExpandableTable('toggleRow')\n```\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|toggleRow | Toggles the state of the expandable table body between hidden and visible.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#expandable-table-header-row').ExpandableTable('toggleRow')`\n\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|expanded.lte.expandableTable | Triggered after a expandable table body is expanded.\n|collapsed.lte.expandableTable | Triggered after a expandable table body is collapsed.\n{: .table .table-bordered .bg-light}\n\nExample: `$('#expandable-table-header-row').on('expanded.lte.expandableTable', handleToggledEvent)`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/iframe.md",
    "content": "---\nlayout: page\ntitle: IFrame Plugin\n---\n\nThe iframe plugin provides the functionality to open sidebar & navbar items in a tabbed iframe.\n\n##### Required Markup\nTo get the iframe 100% working you need the following content-wrapper markup:\n\n```html\n<div class=\"content-wrapper iframe-mode\" data-widget=\"iframe\" data-loading-screen=\"750\">\n  <div class=\"nav navbar navbar-expand-lg navbar-white navbar-light border-bottom p-0\">\n    <a class=\"nav-link bg-danger\" href=\"#\" data-widget=\"iframe-close\">Close</a>\n    <ul class=\"navbar-nav\" role=\"tablist\"></ul>\n  </div>\n  <div class=\"tab-content\">\n    <div class=\"tab-empty\">\n      <h2 class=\"display-4\">No tab selected!</h2>\n    </div>\n    <div class=\"tab-loading\">\n      <div>\n        <h2 class=\"display-4\">Tab is loading <i class=\"fa fa-sync fa-spin\"></i></h2>\n      </div>\n    </div>\n  </div>\n</div>\n```\n\n###### Markup with Default IFrame Tab\n```html\n<div class=\"content-wrapper iframe-mode\" data-widget=\"iframe\" data-loading-screen=\"750\">\n  <div class=\"nav navbar navbar-expand-lg navbar-white navbar-light border-bottom p-0\">\n    <a class=\"nav-link bg-danger\" href=\"#\" data-widget=\"iframe-close\">Close</a>\n    <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-scrollleft\"><i class=\"fas fa-angle-double-left\"></i></a>\n    <ul class=\"navbar-nav\" role=\"tablist\">\n      <li class=\"nav-item active\" role=\"presentation\"><a class=\"nav-link active\" data-toggle=\"row\" id=\"tab-index\" href=\"#panel-index\" role=\"tab\" aria-controls=\"panel-index\" aria-selected=\"true\">Dashboard v1</a></li>\n    </ul>\n    <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-scrollright\"><i class=\"fas fa-angle-double-right\"></i></a>\n    <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-fullscreen\"><i class=\"fas fa-expand\"></i></a>\n  </div>\n  <div class=\"tab-content\">\n    <div class=\"tab-pane fade active show\" id=\"panel-index\" role=\"tabpanel\" aria-labelledby=\"tab-index\"><iframe src=\"./index.html\" style=\"height: 671px;\"></iframe></div>\n    <div class=\"tab-empty\">\n      <h2 class=\"display-4\">No tab selected!</h2>\n    </div>\n    <div class=\"tab-loading\">\n      <div>\n        <h2 class=\"display-4\">Tab is loading <i class=\"fa fa-sync fa-spin\"></i></h2>\n      </div>\n    </div>\n  </div>\n</div>\n```\n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api.\n\n###### Data API\n{: .text-bold }\nActivate the plugin by adding `data-widget=\"iframe\"` to the `.content-wrapper`. If you need to provide onCheck and onUncheck methods, please use the jQuery API.\n\n###### jQuery\n{: .text-bold }\nThe jQuery API provides more customizable options that allows the developer to handle checking and unchecking the todo list checkbox events.\n```js\n$('.content-wrapper').IFrame({\n  onTabClick(item) {\n    return item\n  },\n  onTabChanged(item) {\n    return item\n  },\n  onTabCreated(item) {\n    return item\n  },\n  autoIframeMode: true,\n  autoItemActive: true,\n  autoShowNewTab: true,\n  allowDuplicates: true,\n  loadingScreen: 750,\n  useNavbarItems: true\n})\n```\n\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|onTabClick | Function | Anonymous Function | Handle tab click event.\n|onTabChanged | Function | Anonymous Function | Handle tab changed event.\n|onTabCreated | Function | Anonymous Function | Handle tab created event.\n|autoIframeMode | Boolean | true | Whether to automatically add `.iframe-mode` to `body` if page is loaded via iframe.\n|autoItemActive | Boolean | true | Whether to automatically set the sidebar menu item active based on the active iframe.\n|autoShowNewTab | Boolean | true | Whether to automatically display created tab.\n|allowDuplicates | Boolean | true | Whether to allow creation of duplicate tab/iframe.\n|loadingScreen | Boolean/Number | true | [Boolean] Whether to enable iframe loading screen; [Number] Set loading screen hide delay.\n|useNavbarItems | Boolean | true | Whether to open navbar menu items, instead of open only sidebar menu items.\n|---\n{: .table .table-bordered .bg-light}\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|createTab| Create tab by title, link & uniqueName. Available arguments: title `String`, link `String`, uniqueName `String`, autoOpen `Boolean/Optional`.\n|openTabSidebar| Create tab by sidebar menu item. Available arguments: item `String|jQuery Object`, autoOpen `Boolean/Optional`.\n|switchTab| Switch tab by iframe tab navbar item. Available arguments: item `String|jQuery Object`.\n|removeActiveTab| Remove active iframe tab.\n{: .table .table-bordered .bg-light}\n\nExample: `$('.content-wrapper').IFrame('createTab', 'Home', 'index.html, 'index', true)`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/layout.md",
    "content": "---\nlayout: page\ntitle: Layout Plugin\n---\n\nThe layout plugin manages the layout in case of css failure to reset the height or width of the content.\n\n##### Usage\nThis plugin is activated automatically upon window load.\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|scrollbarTheme | String | `os-theme-light` | Scrollbar Theme used while SideBar Fixed\n|scrollbarAutoHide | String | `l` | Scrollbar auto-hide trigger\n|panelAutoHeight | Boolean\\|Numeric | true | Panel Height Correction (`true` = default correction on load/resize; numeric = offset the correction on load/resize)\n|panelAutoHeightMode | String | `min-height` | Panel Height Mode (`min-height` = sets the `min-height`-attribute to the content-wrapper; `height` = sets `height`-attribute to the content-wrapper)\n|preloadDuration | Integer | 200 | Preloader Duration (Set in milliseconds)\n|loginRegisterAutoHeight | Boolean\\|Integer | true | Login & Register Height Correction (`true` = single correction on load; integer = correction with a interval based on the interger)\n|---\n{: .table .table-bordered .bg-light}\n\n> ##### Tip!\n> You can use any option via the data-attributes like this.\n> ```html\n> <body data-scrollbar-auto-hide=\"n\">...</body>\n> ```\n{: .quote-info}\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|fixLayoutHeight | Fix the content / control sidebar height and activates OverlayScrollbars for sidebar / control sidebar\n|fixLoginRegisterHeight | Fix the login & register body height\n{: .table .table-bordered .bg-light}\n\nExample: `$('body').Layout('fixLayoutHeight')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/navbar-search.md",
    "content": "---\nlayout: page\ntitle: Navbar Search Plugin\n---\n\nThe navbar search plugin provides the functionality to show/hide a search input across the whole header. \n\n##### Usage\n\nThis plugin can be activated as a jQuery plugin or using the data API. \n\n###### Data API\n{: .text-bold }\n\nActivate the plugin by adding the following data-attribue `data-widget=\"navbar-search\"` to the `.navbar-search-block` inside the header. You can use the HTML Markup below for a quick start.\n\n###### jQuery\n{: .text-bold }\n\nThe jQuery API provides more customizable options that allows the developer to pre-process the request before rendering and post-process it after rendering. \n\n```js\n(\"[data-widget=\"navbar-search\"]\").SiteSearch(options)\n```\n\n##### HTML Markup\nPlace this HTML Markup after inside the header.\n```html\n<a data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n  <i class=\"fas fa-search\"></i>\n</a>\n<div class=\"navbar-search-block\">\n  <form class=\"form-inline\">\n    <div class=\"input-group input-group-sm\">\n      <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n      <div class=\"input-group-append\">\n        <button class=\"btn btn-navbar\" type=\"submit\">\n          <i class=\"fas fa-search\"></i>\n        </button>\n        <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n          <i class=\"fas fa-times\"></i>\n        </button>\n      </div>\n    </div>\n  </form>\n</div>\n```\n\nOr you can place the search button inside the navbar as nav-item with this markup:\n```html\n<li class=\"nav-item\">\n  <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n    <i class=\"fas fa-search\"></i>\n  </a>\n  <div class=\"navbar-search-block\">\n    <form class=\"form-inline\">\n      <div class=\"input-group input-group-sm\">\n        <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-navbar\" type=\"submit\">\n            <i class=\"fas fa-search\"></i>\n          </button>\n          <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n            <i class=\"fas fa-times\"></i>\n          </button>\n        </div>\n      </div>\n    </form>\n  </div>\n</li>\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n| resetOnClose | Boolean | false | Reset Input on Close/Hide.\n|target | String | `.navbar-search-block` | Target navbar-search-block to handle multiple navbar-search-blocks.\n{: .table .table-bordered .bg-light}\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|toggle | Toggles the search block.\n|close | Closes the search block.\n|open | Opens the search block.\n{: .table .table-bordered .bg-light}\n\nExample: `$('[data-widget=\"navbar-search\"]').SiteSearch('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/push-menu.md",
    "content": "---\nlayout: page\ntitle: Push Menu Plugin\n---\n\nThe PushMenu plugin controls the toggle button of the main sidebar. \n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. \n\n###### Data API\n{: .text-bold }\nAdd `data-widget=\"pushmenu\"` to a button to activate the plugin. \n```html\n<button class=\"btn btn-primary\" data-widget=\"pushmenu\">Toggle Sidebar</button>\n```\n\n###### jQuery\n{: .text-bold }\n```js\n$('.sidebar-toggle-btn').PushMenu(options)\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|autoCollapseSize | Boolean/Number | FALSE | Screen width in pixels to trigger auto collapse sidebar\n|enableRemember | Boolean | FALSE | Remember sidebar state and set after page refresh.\n|noTransitionAfterReload | Boolean | TRUE | Hold Transition after page refresh.\n{: .table .table-bordered .bg-light}\n\n> ##### Tip!\n> You can use any option via the data-attributes like this to enable auto collapse sidebar on 768 pixels width.\n> ```html\n> <button class=\"btn btn-primary\" data-widget=\"pushmenu\" data-auto-collapse-size=\"768\">Toggle Sidebar</button>\n> ```\n{: .quote-info}\n\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|collapsed.lte.pushmenu | Fired when the sidebar collapsed.\n|shown.lte.pushmenu | Fired when the sidebar shown.\n{: .table .table-bordered .bg-light}\n\nExample: `$(document).on('shown.lte.pushmenu', handleExpandedEvent)`\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|toggle | Toggles the state of the menu between expanded and collapsed.\n|collapse | Collapses the sidebar menu.\n|expand | Expands the sidebar menu\n{: .table .table-bordered .bg-light}\n\nExample: `$('[data-widget=\"pushmenu\"]').PushMenu('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/sidebar-search.md",
    "content": "---\nlayout: page\ntitle: Sidebar Search Plugin\n---\n\nThe sidebar search plugin provides the functionality to search menu items from the sidebar menu entries. \n\n##### Usage\n\nThis plugin can be activated as a jQuery plugin or using the data API. \n\n###### Data API\n{: .text-bold }\n\nActivate the plugin by adding the following data-attribue `data-widget=\"sidebar-search\"` to a input-group inside the sidebar. You can use the HTML Markup below for a quick start.\n\n\n###### jQuery\n{: .text-bold }\n\nThe jQuery API provides more customizable options that allows the developer to pre-process the request before rendering and post-process it after rendering. \n\n```js\n(\"[data-widget=\"sidebar-search\"]\").SidebarSearch(options)\n```\n\n##### HTML Markup\nPlace this HTML Markup after `div.user-panel`.\n```html\n<div class=\"form-inline\">\n  <div class=\"input-group\" data-widget=\"sidebar-search\">\n    <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n    <div class=\"input-group-append\">\n      <button class=\"btn btn-sidebar\">\n        <i class=\"fas fa-search fa-fw\"></i>\n      </button>\n    </div>\n  </div>\n</div>\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n| arrowSign | String | '->' | Arrow Sign between the menu item path.\n| minLength | Number | 3 | Min search query length.\n| maxResults | Number | 7 | Max search results to display.\n| highlightName | Boolean | TRUE | Whether to highlight menu item name.\n| highlightPath | Boolean | FALSE  | Whether to highlight menu item path.\n| highlightClass | String | 'text-light' | Hightlight class.\n| notFoundText | String | 'No element found! | Response text if no menu item found.\n{: .table .table-bordered .bg-light}\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|init | Init's the SidebarSearch Plugin and registers all visible menu items.\n|toggle | Toggles the search dropdown list.\n|close | Closes the search dropdown list.\n|open | Opens the search dropdown list.\n|search | Triggers a search.\n{: .table .table-bordered .bg-light}\n\nExample: `$('[data-widget=\"sidebar-search\"]').SidebarSearch('toggle')`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/toasts.md",
    "content": "---\nlayout: page\ntitle: Toasts Plugin\n---\n\nThe toasts plugin provides simple functionality to create easily a bootstrap toast.\n\n##### Usage\nThis plugin can be activated as a jQuery plugin.\n\n###### jQuery\n{: .text-bold }\nThe jQuery API provides more customizable options that allows the developer to handle checking and unchecking the todo list checkbox events. \n```js\n$(document).Toasts('create', {\n  title: 'Toast Title',\n  body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n})\n```\n\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|position | String | Position.TOP_RIGHT | Position of the toast, available options: `topRight`, `topLeft`, `bottomRight` & `bottomLeft`\n|fixed | Boolean | true | Whether to set toasts container fixed.\n|autohide | Boolean | false | Whether to auto hide toast\n|autoremove | Boolean | true | Whether to auto remove toast after closing \n|delay | Integer | 1000 | Auto Hide delay\n|fade | Boolean | true | Whether to fade toast\n|icon | String | null | Icon class (e.g. `fas fa-exclamation-triangle`)\n|image | String | null | Image url\n|imageAlt | String | null | Image alt\n|imageHeight | String | '25px' | Image size of toast\n|title | String | null | Title of toast\n|subtitle | String | null | Subtitle of toast\n|close | Boolean | true | Whether to add close button to toast\n|body | String | null | Body of toast\n|class | String | null | Additional classes for the toast\n|---\n{: .table .table-bordered .bg-light}\n\n\n##### Events\n{: .mt-4}\nAll event are sent to `body`.\n\n|---\n| Event Type | Description\n|-|-\n|init.lte.toasts | Fired when constructor is done\n|created.lte.toasts | Fired when the toast is created\n|removed.lte.toasts | Fired when the toast is removed\n{: .table .table-bordered .bg-light}\n\nExample: `$('body').on('created.lte.toast', handleCreateEvent)`\n\n\n##### Methods\n{: .mt-4}\n\n|---\n| Method | Description\n|-|-\n|create | Creates a toast\n{: .table .table-bordered .bg-light}\n\nExample: `$(document).Toasts('create', {title: 'Toast Title'})`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/todo-list.md",
    "content": "---\nlayout: page\ntitle: Todo List Plugin\n---\n\nThe todo list plugin provides simple functionality to the todo list component. \n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. \n\n###### Data API\n{: .text-bold }\nActivate the plugin by adding `data-widget=\"todo-list\"` to the ul element. If you need to provide onCheck and onUncheck methods, please use the jQuery API. \n\n###### jQuery\n{: .text-bold }\nThe jQuery API provides more customizable options that allows the developer to handle checking and unchecking the todo list checkbox events. \n```js\n$('#my-todo-list').TodoList({\n  onCheck: function(checkbox) {\n    // Do something when the checkbox is checked\n  },\n  onUnCheck: function(checkbox) {\n    // Do something after the checkbox has been unchecked\n  }\n})\n```\n\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|onCheck | Function | Anonymous Function | Handle checkbox onCheck event. The checkbox is passed as parameter to the function.\n|onUnCheck | Function | Anonymous Function | Handle checkbox onUnCheck event. The checkbox is passed as parameter to the function.\n|---\n{: .table .table-bordered .bg-light}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/javascript/treeview.md",
    "content": "---\nlayout: page\ntitle: Treeview Plugin\n---\n\nThe Treeview plugin converts a nested list into a tree view where sub menus can be expanded. \n\n##### Usage\nThis plugin can be activated as a jQuery plugin or using the data api. \n\n###### Data API\n{: .text-bold }\n\nAdd `data-widget=\"treeview\"` to any `ul` or `ol` element to activate the plugin. \n\n```html\n<ul data-widget=\"treeview\">\n  <li><a href=\"#\">One Level</a></li>\n  <li class=\"treeview\">\n    <a href=\"#\">Multilevel</a>\n    <ul class=\"treeview-menu\">\n      <li><a href=\"#\">Level 2</a></li>\n    </ul>\n  </li>\n</ul>\n```\n\n###### jQuery\n{: .text-bold }\n```js\n$('ul').Treeview(options)\n```\n\n##### Options\n{: .mt-4}\n\n|---\n| Name | Type | Default | Description\n|-|-|-|-\n|animationSpeed | Number | 300 | Speed of slide down/up animation in milliseconds.\n|accordion | Boolean | TRUE | Whether to collapse the open menu when expanding another.\n|trigger | String | `[data-widget=\"treeview\"] .nav-link` |  Selector of the element that should respond to the click and result in expanding or collapsing it sibling sub menu. \n|expandSidebar | Boolean | FALSE | Whether to expand sidebar on open menu.\n|sidebarButtonSelector | String | `[data-widget=\"pushmenu\"]` | Selector of the sidebar button.\n{: .table .table-bordered .bg-light}\n\n> ##### Tip!\n> You can use any option via the data-attributes like this.\n> ```html\n> <ul data-widget=\"treeview\" data-accordion=\"false\">...</ul>\n> ```\n{: .quote-info}\n\n##### Events\n{: .mt-4}\n\n|---\n| Event Type | Description\n|-|-\n|expanded.lte.treeview | Triggered after a sub menu expands.\n|collapsed.lte.treeview | Triggered after a sub menu collapses.\n|load.lte.treeview | Triggered after the plugin initialized via data api.\n{: .table .table-bordered .bg-light}\n\nExample: `$('ul').on('expanded.lte.treeview', handleExpandedEvent)`\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/layout.md",
    "content": "---\nlayout: page\ntitle: Layout\n---\n\n> ##### Tip!\n> The [starter page](https://adminlte.io/themes/v3/starter.html) is a good place to start building your app if you'd like to start from scratch.\n{: .quote-info .mt-0}\n\nThe layout consists of four major parts:\n\n- Wrapper `.wrapper`. A div that wraps the whole site.\n- Main Header `.main-header`. Contains the logo and navbar.\n- Content `.content-wrapper`. Contains the page header and content.\n\n#### Layout Options\n{: .mt-4}\n\n> ##### Note!\n> You cannot use both layout-boxed and layout-navbar-fixed or layout-footer-fixed at the same time. Anything else can be mixed together.\n{: .quote-danger}\n\nAdminLTE 3.1 provides a set of options to apply to your main layout. Each one of these classes can be added to the body tag to get the desired goal.\n\n- Fixed Sidebar: use the class `.layout-fixed` to get a fixed sidebar.\n- Fixed Navbar: use the class `.layout-navbar-fixed` to get a fixed navbar.\n- Fixed Footer: use the class `.layout-footer-fixed` to get a fixed footer.\n- Collapsed Sidebar: use the class `.sidebar-collapse` to have a collapsed sidebar upon loading.\n- Boxed Layout: use the class `.layout-boxed` to get a boxed layout that stretches only to 1250px.\n- Top Navigation: use the class `.layout-top-nav` to remove the sidebar and have your links at the top navbar.\n\n\n##### Responsive Variations\n\nYou can also use the following classes for responsive changes with placing\n\n- Fixed Navbar: \n  - use the class `.layout-*-navbar-fixed` to get a fixed navbar.\n  - use the class `.layout-*-navbar-not-fixed` to get a not fixed navbar.\n- Fixed Footer: \n  - use the class `.layout-*-footer-fixed` to get a fixed footer.\n  - use the class `.layout-*-footer-not-fixed` to get a not fixed footer.\n\n> ##### Tip!\n> If you want to use anchors with a fixed navbar, you need to add `.anchor` to you hidden anchor, e.g. `<a id=\"testAnchor\" class=\"anchor\"></a>`. \n> \n> To get a smooth scrolling to the anchor you need to add `.scroll-smooth` to your HTML tag like this `<html class=\"scroll-smooth\">` otherwise it jumps directly to your anchor, `.scroll-smooth` can cause issues with a Chrome extension called ScrollAnywhere.\n{: .quote-info}\n\n\n#### Preloader\n\nPreloader to avoid [https://github.com/ColorlibHQ/AdminLTE/discussions/3319](https://github.com/ColorlibHQ/AdminLTE/discussions/3319)\n\n```html\n<div class=\"wrapper\">\n  <!-- Preloader -->\n  <div class=\"preloader\">\n    <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTELogo\" height=\"60\" width=\"60\">\n  </div>\n</div>\n```\n\n- Preloader elements should be added inside `.wrapper` element.\n- You can replace image OR modify size OR include any preload items inside `.preloader` element.\n\n\n#### Dark Mode\n\nAdminLTE 3.1 provides a dark mode option. You can add in body tag:\n\n- `.dark-mode`\n\n\n#### Color Variations\n\nAdminLTE 3.1 provides a set of color variations to apply to your sidebar (light & dark) & navbar. You can combine any available color with these class prefixes:\n\n- `.navbar-*`\n- `.sidebar-dark-*`\n- `.sidebar-light-*`\n- `.accent-*`\n\n> ###### New\n> You can use override the link/accent color in AdminLTE, you can add `.accent-*` to `body`.\n{: .quote-info}\n\n> ###### Info\n> You can combine `.navbar-*` with `.navbar-light` or `.navbar-dark`.\n{: .quote-info}\n\n> ###### Recommended for Dark Mode\n> You must use only `.navbar-dark` without only combination.\n{: .quote-info}\n\nThe following colors are available:\n\n##### Theme Colors\n\n<div class=\"row\">\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-primary\"> Primary (primary) / Blue (blue)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-secondary\"> Secondary (secondary)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-success\"> Success (success) / Green (green)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-info\"> Info (info) / Cyan (cyan)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-warning\"> Warning (warning) / Yellow (yellow)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-danger\"> Danger (danger) / Red (red)</div>\n</div>\n\n##### Black/White Nuances\n{: .mt-4}\n\n<div class=\"row\">\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-black\"> Black (black)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-gray-dark\"> Gray Dark (gray-dark)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-gray\"> Gray (gray)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-light\"> Light (light)</div>\n</div>\n\n##### Colors\n{: .mt-4}\n\n<div class=\"row\">\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-indigo\"> Indigo (indigo)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-navy\"> Navy (navy)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-purple\"> Purple (purple)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-fuchsia\"> Fuchsia (fuchsia)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-pink\"> Pink (pink)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-maroon\"> Maroon (maroon)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-orange\"> Orange (orange)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-lime\"> Lime (lime)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-teal\"> Teal (teal)</div>\n  <div class=\"col-sm-4 col-lg-3 p-3 bg-olive\"> Olive (olive)</div>\n</div>\n\n> ##### Tip!\n> You can use these color variations even with `.text-*`, `.bg-*` & much more.\n{: .quote-info}\n\n\n##### Custom Range / Switch\n\nFor custom colored custom-checkbox & custom-radio you can add this classes:\n\n- `.custom-control-input-*`\n\nYou can also change the look to outlined checkbox & radio with adding the `.custom-control-input-outline` on the custom control input.\n\nFor custom colored custom-range you can add this classes:\n\n- `.custom-range-*`\n\nFor custom colored custom-range you can add this classes:\n\n- `.custom-range-*`\n\nFor custom colored custom-switch you can add this classes:\n\n- `.custom-switch-off-*` (for custom switch off)\n- `.custom-switch-on-*` (for custom switch on)\n\n##### Toasts\n\nYou can also use `bg-*` beside the `.toast` to get a nice colored toast.\n\n##### Plugin Support\n\nYou can use the all the colors above with these plugins:\n\n- Bootstrap Slider\n  - `.slider-*` (wrapped around the slider)\n- iCheck-Bootstrap\n  - `.icheck-*`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/license.md",
    "content": "---\nlayout: page\ntitle: License\n---\n\nAdminLTE is an open source project that is licensed under the [MIT license](https://opensource.org/licenses/MIT). This allows you to do pretty much anything you want as long as you include the copyright in \"all copies or substantial portions of the Software.\" Attribution is not required (though very much appreciated).\n\n<h5 class=\"text-bold text-dark mt-3\">What You Are <span class=\"text-success\">Allowed</span> To Do With AdminLTE</h5>\n\n- Use in commercial projects.\n- Use in personal/private projects.\n- Modify and change the work.\n- Distribute the code.\n- Sublicense: incorporate the work into something that has a more restrictive license.\n\n<h5 class=\"text-bold text-dark mt-3\">What You Are <span class=\"text-danger\">Not Allowed</span> To Do With AdminLTE</h5>\n\n- The work is provided \"as is\". You may not hold the author liable.\n\n<h5 class=\"text-bold text-dark mt-3\">What You <span class=\"text-warning\">Must</span> Do When Using AdminLTE</h5>\n\n- Include the license notice in all copies of the work.\n- Include the copyright notice in all copies of the work. This applies to everything except the notice in the footer of the HTML example pages.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/docs/upgrade-guide.md",
    "content": "---\nlayout: page\ntitle: Upgrade Guide\n---\n\n#### Migration from v2.4.x\n\nThe first step to migrate AdminLTE v2.4.x to v3.0 is upgrade the Bootstrap 3 base code to Bootstrap 4, the full instruction [here](https://getbootstrap.com/docs/4.4/migration/) after you upgraded the base code you need to update the markups.\n\n#### CSS / JS Files\n\nSince AdminLTE v3.0 Bootstrap 4 is complete included in AdminLTE's CSS file. You will not need to load the Bootstrap CSS file `bootstrap(.min).css`, but you will need the Bootstrap JS file `bootstrap(.min).js`.\n\n##### Main Header\n\nThe biggest change in Main Header is the Logo is moved to Main Sidebar and the Main Header has now color variations, here are all changes:\n\n1. Logo\n  - `<a href=\"index2.html\" class=\"logo\">` moved & rebuild to `.brand-link` inside `.main-sidebar`\n2. Header / Nav\n  - `<header class=\"main-header\">` & `<nav class=\"navbar navbar-static-top\">` merged with `<nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">`\n3. Sidebar Toggle / Left Navbar\n  - `<a href=\"#\" class=\"sidebar-toggle\" data-toggle=\"push-menu\" role=\"button\"><span class=\"sr-only\">Toggle navigation</span></a>` replaced with `<ul class=\"navbar-nav\"><li class=\"nav-item\"><a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\"><i class=\"fas fa-bars\"></i></a></li></ul>`\n3. Right Navbar\n  - `<div class=\"navbar-custom-menu\">` & `<ul class=\"nav navbar-nav\">` merged with `<ul class=\"navbar-nav ml-auto\">`\n\n##### Main Sidebar\n\nLike above the biggest change is the Main Sidebar contains now the Logo and the sidebar has now color variations, here all changes:\n\n1. Main Sidebar Color\n  - `<aside class=\"main-sidebar\">` replaced with `<aside class=\"main-sidebar sidebar-dark-primary\">`\n2. Logo / Brand Link\n  - `<a href=\"index3.html\" class=\"brand-link\"><img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\"><span class=\"brand-text font-weight-light\">AdminLTE 3</span></a>` replaces the old logo\n3. Sidebar\n  - `<section class=\"sidebar\">` replaced with `<div class=\"sidebar\">`\n4. User Panel\n  - `<div class=\"user-panel\"><div class=\"pull-left image\"><img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle\" alt=\"User Image\"></div><div class=\"pull-left info\"><p>Alexander Pierce</p><a href=\"#\"><i class=\"fa fa-circle text-success\"></i> Online</a></div></div>` replaced with `<div class=\"user-panel mt-3 pb-3 mb-3 d-flex\"><div class=\"image\"><img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\"></div><div class=\"info\"><a href=\"#\" class=\"d-block\">Alexander Pierce</a></div></div>`\n5. Sidebar Menu\n  - `<nav class=\"mt-2\">` now around `<ul class=\"sidebar-menu\" data-widget=\"tree\">`\n  - `<ul class=\"sidebar-menu\" data-widget=\"tree\">` replaced with `<ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\">`\n  - `<li class=\"header\">` repalced with `<li class=\"nav-header\">`\n  - `<li>` need a new class `.nav-item`\n  - `<li> <a>` need a new class `.nav-link`\n  - `<li> <a> <i>` need a new class `.nav-icon`\n  - `<li> <a> <span>` replaced with `<p>`\n  - `<span class=\"pull-right-container\">` removed\n  - `<i class=\"fa fa-angle-left pull-right\"></i>` replaced with `<i class=\"right fas fa-angle-left\"></i>`\n  - `<small class=\"label pull-right bg-green\">new</small>` replaced with `<span class=\"right badge badge-danger\">New</span>`\n  - `<li> <ul class=\"treeview-menu\">` replaced with `<ul class=\"nav nav-treeview\">`\n\n\n<div class=\"row\">\n  <div class=\"col-md-6\" markdown=\"1\">\nOld sample entry\n```html\n<li>\n  <a href=\"pages/widgets.html\">\n    <i class=\"fa fa-th\"></i> <span>Widgets</span>\n    <span class=\"pull-right-container\">\n      <small class=\"label pull-right bg-green\">new</small>\n    </span>\n  </a>\n</li>\n```\n  </div>\n  <div class=\"col-md-6\" markdown=\"1\">\nNew sample entry\n```html\n<li class=\"nav-item\">\n  <a href=\"pages/widgets.html\" class=\"nav-link\">\n    <i class=\"nav-icon fas fa-th\"></i>\n    <p>\n      Widgets\n      <span class=\"right badge badge-danger\">New</span>\n    </p>\n  </a>\n</li>\n```\n  </div>\n</div>\n\n<div class=\"row\">\n  <div class=\"col-md-6\" markdown=\"1\">\nOld sample entry (with tree menu)\n```html\n<li class=\"treeview\">\n  <a href=\"#\">\n    <i class=\"fa fa-dashboard\"></i> <span>Dashboard</span>\n    <span class=\"pull-right-container\">\n      <i class=\"fa fa-angle-left pull-right\"></i>\n    </span>\n  </a>\n  <ul class=\"treeview-menu\">\n    <li class=\"active\"><a href=\"index.html\">\n      <i class=\"fa fa-circle-o\"></i> Dashboard v1</a>\n    </li>\n  </ul>\n</li>\n```\n  </div>\n  <div class=\"col-md-6\" markdown=\"1\">\nNew sample entry (with tree menu)\n```html\n<li class=\"nav-item\">\n  <a href=\"#\" class=\"nav-link\">\n    <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n    <p>\n      Dashboard\n      <i class=\"right fas fa-angle-left\"></i>\n    </p>\n  </a>\n  <ul class=\"nav nav-treeview\">\n    <li class=\"nav-item\">\n      <a href=\"index.html\" class=\"nav-link active\">\n        <i class=\"far fa-circle nav-icon\"></i>\n        <p>Dashboard v1</p>\n      </a>\n    </li>\n  </ul>\n</li>\n```\n  </div>\n</div>\n\n##### Content Header\n\nThe biggest change in content header is AdminLTE use here now `.container-fluid`, `.row` & `.col-*` and the breadcrumb markup changed, here are all changes:\n\n- `<section class=\"content-header\">` replaced with `<div class=\"content-header\">`\n- `<div class=\"container-fluid\">` added in `<div class=\"content-header\">`\n- `<h1>` & `<ol class=\"breadcrumb\">` rebuild in `<div class=\"row\">` & `<div class=\"col-sm-6\">`\n- `<h1>` replaced with `<h1 class=\"m-0 text-dark\">`\n- `<ol class=\"breadcrumb\">` need new class `.float-sm-right`\n- `<ol class=\"breadcrumb\"> <li>` need new class `.breadcrumb-item`\n\n\n<div class=\"row\">\n  <div class=\"col-md-6\" markdown=\"1\">\nOld Content Header Markup\n```html\n<section class=\"content-header\">\n  <h1>\n    Dashboard\n    <small>Control panel</small>\n  </h1>\n  <ol class=\"breadcrumb\">\n    <li><a href=\"#\"><i class=\"fa fa-dashboard\"></i> Home</a></li>\n    <li class=\"active\">Dashboard</li>\n  </ol>\n</section>\n```\n  </div>\n  <div class=\"col-md-6\" markdown=\"1\">\nNew Content Header Markup\n```html\n<div class=\"content-header\">\n  <div class=\"container-fluid\">\n    <div class=\"row mb-2\">\n      <div class=\"col-sm-6\">\n        <h1 class=\"m-0 text-dark\">\n          Dashboard\n          <small>Control panel</small>\n        </h1>\n      </div>\n      <div class=\"col-sm-6\">\n        <ol class=\"breadcrumb float-sm-right\">\n          <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n          <li class=\"breadcrumb-item active\">Dashboard v1</li>\n        </ol>\n      </div>\n    </div>\n  </div>\n</div>\n```\n  </div>\n</div>\n\n##### Content\n\nThe content has no change, we only split `<section class=\"content container-fluid\">` in two elements:\n\n- `<section class=\"content\">`\n- `<div class=\"container-fluid\">`\n\n##### Footer\n\nThe footer has only one little change for the right sided div.\n\n- `<div class=\"pull-right hidden-xs\">` changed to `<div class=\"float-right d-none d-sm-inline\">`\n\n##### Miscellaneous\n\nHere are some other little css/html changes since v3.0:\n\n- `.label` renamed to `.badge`\n\n##### JavaScript Plugins\n\nHere are some other little JavaScript changes since v3.0:\n\n- `data-toggle=\"*\"` renamed to `data-widget=\"*\"` instead of CardWidget items\n  - for CardWidget it's now `data-card-widget=\"*\"`\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/iframe.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Tabbed IFrames</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"dist/css/adminlte.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-fixed\" data-panel-auto-height-mode=\"height\">\n<div class=\"wrapper\">\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"index3.html\" class=\"brand-link\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"./index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"pages/calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper iframe-mode\" data-widget=\"iframe\" data-loading-screen=\"750\">\n    <div class=\"nav navbar navbar-expand navbar-white navbar-light border-bottom p-0\">\n      <div class=\"nav-item dropdown\">\n        <a class=\"nav-link bg-danger dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">Close</a>\n        <div class=\"dropdown-menu mt-0\">\n          <a class=\"dropdown-item\" href=\"#\" data-widget=\"iframe-close\" data-type=\"all\">Close All</a>\n          <a class=\"dropdown-item\" href=\"#\" data-widget=\"iframe-close\" data-type=\"all-other\">Close All Other</a>\n        </div>\n      </div>\n      <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-scrollleft\"><i class=\"fas fa-angle-double-left\"></i></a>\n      <ul class=\"navbar-nav overflow-hidden\" role=\"tablist\"></ul>\n      <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-scrollright\"><i class=\"fas fa-angle-double-right\"></i></a>\n      <a class=\"nav-link bg-light\" href=\"#\" data-widget=\"iframe-fullscreen\"><i class=\"fas fa-expand\"></i></a>\n    </div>\n    <div class=\"tab-content\">\n      <div class=\"tab-empty\">\n        <h2 class=\"display-4\">No tab selected!</h2>\n      </div>\n      <div class=\"tab-loading\">\n        <div>\n          <h2 class=\"display-4\">Tab is loading <i class=\"fa fa-sync fa-spin\"></i></h2>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong>\n    All rights reserved.\n    <div class=\"float-right d-none d-sm-inline-block\">\n      <b>Version</b> 3.1.0\n    </div>\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"plugins/jquery/jquery.min.js\"></script>\n<!-- jQuery UI 1.11.4 -->\n<script src=\"plugins/jquery-ui/jquery-ui.min.js\"></script>\n<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->\n<script>\n  $.widget.bridge('uibutton', $.ui.button)\n</script>\n<!-- Bootstrap 4 -->\n<script src=\"plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"dist/js/adminlte.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Dashboard</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"plugins/fontawesome-free/css/all.min.css\">\n  <!-- Ionicons -->\n  <link rel=\"stylesheet\" href=\"https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css\">\n  <!-- Tempusdominus Bootstrap 4 -->\n  <link rel=\"stylesheet\" href=\"plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css\">\n  <!-- iCheck -->\n  <link rel=\"stylesheet\" href=\"plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- JQVMap -->\n  <link rel=\"stylesheet\" href=\"plugins/jqvmap/jqvmap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"dist/css/adminlte.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n  <!-- Daterange picker -->\n  <link rel=\"stylesheet\" href=\"plugins/daterangepicker/daterangepicker.css\">\n  <!-- summernote -->\n  <link rel=\"stylesheet\" href=\"plugins/summernote/summernote-bs4.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-fixed\">\n<div class=\"wrapper\">\n\n  <!-- Preloader -->\n  <div class=\"preloader flex-column justify-content-center align-items-center\">\n    <img class=\"animation__shake\" src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTELogo\" height=\"60\" width=\"60\">\n  </div>\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"index3.html\" class=\"brand-link\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"./index.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"pages/calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\">Dashboard</h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Dashboard v1</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- Small boxes (Stat box) -->\n        <div class=\"row\">\n          <div class=\"col-lg-3 col-6\">\n            <!-- small box -->\n            <div class=\"small-box bg-info\">\n              <div class=\"inner\">\n                <h3>150</h3>\n\n                <p>New Orders</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-bag\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">More info <i class=\"fas fa-arrow-circle-right\"></i></a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small box -->\n            <div class=\"small-box bg-success\">\n              <div class=\"inner\">\n                <h3>53<sup style=\"font-size: 20px\">%</sup></h3>\n\n                <p>Bounce Rate</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-stats-bars\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">More info <i class=\"fas fa-arrow-circle-right\"></i></a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small box -->\n            <div class=\"small-box bg-warning\">\n              <div class=\"inner\">\n                <h3>44</h3>\n\n                <p>User Registrations</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-person-add\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">More info <i class=\"fas fa-arrow-circle-right\"></i></a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small box -->\n            <div class=\"small-box bg-danger\">\n              <div class=\"inner\">\n                <h3>65</h3>\n\n                <p>Unique Visitors</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-pie-graph\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">More info <i class=\"fas fa-arrow-circle-right\"></i></a>\n            </div>\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n        <!-- Main row -->\n        <div class=\"row\">\n          <!-- Left col -->\n          <section class=\"col-lg-7 connectedSortable\">\n            <!-- Custom tabs (Charts with tabs)-->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-chart-pie mr-1\"></i>\n                  Sales\n                </h3>\n                <div class=\"card-tools\">\n                  <ul class=\"nav nav-pills ml-auto\">\n                    <li class=\"nav-item\">\n                      <a class=\"nav-link active\" href=\"#revenue-chart\" data-toggle=\"tab\">Area</a>\n                    </li>\n                    <li class=\"nav-item\">\n                      <a class=\"nav-link\" href=\"#sales-chart\" data-toggle=\"tab\">Donut</a>\n                    </li>\n                  </ul>\n                </div>\n              </div><!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"tab-content p-0\">\n                  <!-- Morris chart - Sales -->\n                  <div class=\"chart tab-pane active\" id=\"revenue-chart\"\n                       style=\"position: relative; height: 300px;\">\n                      <canvas id=\"revenue-chart-canvas\" height=\"300\" style=\"height: 300px;\"></canvas>\n                   </div>\n                  <div class=\"chart tab-pane\" id=\"sales-chart\" style=\"position: relative; height: 300px;\">\n                    <canvas id=\"sales-chart-canvas\" height=\"300\" style=\"height: 300px;\"></canvas>\n                  </div>\n                </div>\n              </div><!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- DIRECT CHAT -->\n            <div class=\"card direct-chat direct-chat-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Direct Chat</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge badge-primary\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"message user image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"message user image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"message user image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Working with AdminLTE on a great new app! Wanna join?\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"message user image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      I would love to.\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user7-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Sarah Doe\n                            <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Nadia Jolie\n                            <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user5-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Nora S. Vans\n                            <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">Where is your new...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user6-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            John K.\n                            <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Kenneth M.\n                            <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">Never mind I found...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contacts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"button\" class=\"btn btn-primary\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n\n            <!-- TO DO List -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"ion ion-clipboard mr-1\"></i>\n                  To Do List\n                </h3>\n\n                <div class=\"card-tools\">\n                  <ul class=\"pagination pagination-sm\">\n                    <li class=\"page-item\"><a href=\"#\" class=\"page-link\">&laquo;</a></li>\n                    <li class=\"page-item\"><a href=\"#\" class=\"page-link\">1</a></li>\n                    <li class=\"page-item\"><a href=\"#\" class=\"page-link\">2</a></li>\n                    <li class=\"page-item\"><a href=\"#\" class=\"page-link\">3</a></li>\n                    <li class=\"page-item\"><a href=\"#\" class=\"page-link\">&raquo;</a></li>\n                  </ul>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <ul class=\"todo-list\" data-widget=\"todo-list\">\n                  <li>\n                    <!-- drag handle -->\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <!-- checkbox -->\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo1\" id=\"todoCheck1\">\n                      <label for=\"todoCheck1\"></label>\n                    </div>\n                    <!-- todo text -->\n                    <span class=\"text\">Design a nice theme</span>\n                    <!-- Emphasis label -->\n                    <small class=\"badge badge-danger\"><i class=\"far fa-clock\"></i> 2 mins</small>\n                    <!-- General tools such as edit or delete-->\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                  <li>\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo2\" id=\"todoCheck2\" checked>\n                      <label for=\"todoCheck2\"></label>\n                    </div>\n                    <span class=\"text\">Make the theme responsive</span>\n                    <small class=\"badge badge-info\"><i class=\"far fa-clock\"></i> 4 hours</small>\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                  <li>\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo3\" id=\"todoCheck3\">\n                      <label for=\"todoCheck3\"></label>\n                    </div>\n                    <span class=\"text\">Let theme shine like a star</span>\n                    <small class=\"badge badge-warning\"><i class=\"far fa-clock\"></i> 1 day</small>\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                  <li>\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo4\" id=\"todoCheck4\">\n                      <label for=\"todoCheck4\"></label>\n                    </div>\n                    <span class=\"text\">Let theme shine like a star</span>\n                    <small class=\"badge badge-success\"><i class=\"far fa-clock\"></i> 3 days</small>\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                  <li>\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo5\" id=\"todoCheck5\">\n                      <label for=\"todoCheck5\"></label>\n                    </div>\n                    <span class=\"text\">Check your messages and notifications</span>\n                    <small class=\"badge badge-primary\"><i class=\"far fa-clock\"></i> 1 week</small>\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                  <li>\n                    <span class=\"handle\">\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                      <i class=\"fas fa-ellipsis-v\"></i>\n                    </span>\n                    <div  class=\"icheck-primary d-inline ml-2\">\n                      <input type=\"checkbox\" value=\"\" name=\"todo6\" id=\"todoCheck6\">\n                      <label for=\"todoCheck6\"></label>\n                    </div>\n                    <span class=\"text\">Let theme shine like a star</span>\n                    <small class=\"badge badge-secondary\"><i class=\"far fa-clock\"></i> 1 month</small>\n                    <div class=\"tools\">\n                      <i class=\"fas fa-edit\"></i>\n                      <i class=\"fas fa-trash-o\"></i>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer clearfix\">\n                <button type=\"button\" class=\"btn btn-primary float-right\"><i class=\"fas fa-plus\"></i> Add item</button>\n              </div>\n            </div>\n            <!-- /.card -->\n          </section>\n          <!-- /.Left col -->\n          <!-- right col (We are only adding the ID to make the widgets sortable)-->\n          <section class=\"col-lg-5 connectedSortable\">\n\n            <!-- Map card -->\n            <div class=\"card bg-gradient-primary\">\n              <div class=\"card-header border-0\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-map-marker-alt mr-1\"></i>\n                  Visitors\n                </h3>\n                <!-- card tools -->\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-primary btn-sm daterange\" title=\"Date range\">\n                    <i class=\"far fa-calendar-alt\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-primary btn-sm\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <div class=\"card-body\">\n                <div id=\"world-map\" style=\"height: 250px; width: 100%;\"></div>\n              </div>\n              <!-- /.card-body-->\n              <div class=\"card-footer bg-transparent\">\n                <div class=\"row\">\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-1\"></div>\n                    <div class=\"text-white\">Visitors</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-2\"></div>\n                    <div class=\"text-white\">Online</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-3\"></div>\n                    <div class=\"text-white\">Sales</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <!-- solid sales graph -->\n            <div class=\"card bg-gradient-info\">\n              <div class=\"card-header border-0\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-th mr-1\"></i>\n                  Sales Graph\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn bg-info btn-sm\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn bg-info btn-sm\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <canvas class=\"chart\" id=\"line-chart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer bg-transparent\">\n                <div class=\"row\">\n                  <div class=\"col-4 text-center\">\n                    <input type=\"text\" class=\"knob\" data-readonly=\"true\" value=\"20\" data-width=\"60\" data-height=\"60\"\n                           data-fgColor=\"#39CCCC\">\n\n                    <div class=\"text-white\">Mail-Orders</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <input type=\"text\" class=\"knob\" data-readonly=\"true\" value=\"50\" data-width=\"60\" data-height=\"60\"\n                           data-fgColor=\"#39CCCC\">\n\n                    <div class=\"text-white\">Online</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <input type=\"text\" class=\"knob\" data-readonly=\"true\" value=\"30\" data-width=\"60\" data-height=\"60\"\n                           data-fgColor=\"#39CCCC\">\n\n                    <div class=\"text-white\">In-Store</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n\n            <!-- Calendar -->\n            <div class=\"card bg-gradient-success\">\n              <div class=\"card-header border-0\">\n\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-calendar-alt\"></i>\n                  Calendar\n                </h3>\n                <!-- tools card -->\n                <div class=\"card-tools\">\n                  <!-- button with a dropdown -->\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-success btn-sm dropdown-toggle\" data-toggle=\"dropdown\" data-offset=\"-52\">\n                      <i class=\"fas fa-bars\"></i>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a href=\"#\" class=\"dropdown-item\">Add new event</a>\n                      <a href=\"#\" class=\"dropdown-item\">Clear events</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a href=\"#\" class=\"dropdown-item\">View calendar</a>\n                    </div>\n                  </div>\n                  <button type=\"button\" class=\"btn btn-success btn-sm\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-success btn-sm\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /. tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body pt-0\">\n                <!--The calendar -->\n                <div id=\"calendar\" style=\"width: 100%\"></div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </section>\n          <!-- right col -->\n        </div>\n        <!-- /.row (main row) -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong>\n    All rights reserved.\n    <div class=\"float-right d-none d-sm-inline-block\">\n      <b>Version</b> 3.1.0\n    </div>\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"plugins/jquery/jquery.min.js\"></script>\n<!-- jQuery UI 1.11.4 -->\n<script src=\"plugins/jquery-ui/jquery-ui.min.js\"></script>\n<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->\n<script>\n  $.widget.bridge('uibutton', $.ui.button)\n</script>\n<!-- Bootstrap 4 -->\n<script src=\"plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- ChartJS -->\n<script src=\"plugins/chart.js/Chart.min.js\"></script>\n<!-- Sparkline -->\n<script src=\"plugins/sparklines/sparkline.js\"></script>\n<!-- JQVMap -->\n<script src=\"plugins/jqvmap/jquery.vmap.min.js\"></script>\n<script src=\"plugins/jqvmap/maps/jquery.vmap.usa.js\"></script>\n<!-- jQuery Knob Chart -->\n<script src=\"plugins/jquery-knob/jquery.knob.min.js\"></script>\n<!-- daterangepicker -->\n<script src=\"plugins/moment/moment.min.js\"></script>\n<script src=\"plugins/daterangepicker/daterangepicker.js\"></script>\n<!-- Tempusdominus Bootstrap 4 -->\n<script src=\"plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js\"></script>\n<!-- Summernote -->\n<script src=\"plugins/summernote/summernote-bs4.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"dist/js/adminlte.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"dist/js/demo.js\"></script>\n<!-- AdminLTE dashboard demo (This is only for demo purposes) -->\n<script src=\"dist/js/pages/dashboard.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/index2.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Dashboard 2</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome Icons -->\n  <link rel=\"stylesheet\" href=\"plugins/fontawesome-free/css/all.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition dark-mode sidebar-mini layout-fixed layout-navbar-fixed layout-footer-fixed\">\n<div class=\"wrapper\">\n\n  <!-- Preloader -->\n  <div class=\"preloader flex-column justify-content-center align-items-center\">\n    <img class=\"animation__wobble\" src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTELogo\" height=\"60\" width=\"60\">\n  </div>\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-dark\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"index3.html\" class=\"brand-link\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"./index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index2.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"pages/calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\">Dashboard v2</h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Dashboard v2</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- Info boxes -->\n        <div class=\"row\">\n          <div class=\"col-12 col-sm-6 col-md-3\">\n            <div class=\"info-box\">\n              <span class=\"info-box-icon bg-info elevation-1\"><i class=\"fas fa-cog\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">CPU Traffic</span>\n                <span class=\"info-box-number\">\n                  10\n                  <small>%</small>\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-12 col-sm-6 col-md-3\">\n            <div class=\"info-box mb-3\">\n              <span class=\"info-box-icon bg-danger elevation-1\"><i class=\"fas fa-thumbs-up\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Likes</span>\n                <span class=\"info-box-number\">41,410</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n\n          <!-- fix for small devices only -->\n          <div class=\"clearfix hidden-md-up\"></div>\n\n          <div class=\"col-12 col-sm-6 col-md-3\">\n            <div class=\"info-box mb-3\">\n              <span class=\"info-box-icon bg-success elevation-1\"><i class=\"fas fa-shopping-cart\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Sales</span>\n                <span class=\"info-box-number\">760</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-12 col-sm-6 col-md-3\">\n            <div class=\"info-box mb-3\">\n              <span class=\"info-box-icon bg-warning elevation-1\"><i class=\"fas fa-users\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">New Members</span>\n                <span class=\"info-box-number\">2,000</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Monthly Recap Report</h5>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-tool dropdown-toggle\" data-toggle=\"dropdown\">\n                      <i class=\"fas fa-wrench\"></i>\n                    </button>\n                    <div class=\"dropdown-menu dropdown-menu-right\" role=\"menu\">\n                      <a href=\"#\" class=\"dropdown-item\">Action</a>\n                      <a href=\"#\" class=\"dropdown-item\">Another action</a>\n                      <a href=\"#\" class=\"dropdown-item\">Something else here</a>\n                      <a class=\"dropdown-divider\"></a>\n                      <a href=\"#\" class=\"dropdown-item\">Separated link</a>\n                    </div>\n                  </div>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-md-8\">\n                    <p class=\"text-center\">\n                      <strong>Sales: 1 Jan, 2014 - 30 Jul, 2014</strong>\n                    </p>\n\n                    <div class=\"chart\">\n                      <!-- Sales Chart Canvas -->\n                      <canvas id=\"salesChart\" height=\"180\" style=\"height: 180px;\"></canvas>\n                    </div>\n                    <!-- /.chart-responsive -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-md-4\">\n                    <p class=\"text-center\">\n                      <strong>Goal Completion</strong>\n                    </p>\n\n                    <div class=\"progress-group\">\n                      Add Products to Cart\n                      <span class=\"float-right\"><b>160</b>/200</span>\n                      <div class=\"progress progress-sm\">\n                        <div class=\"progress-bar bg-primary\" style=\"width: 80%\"></div>\n                      </div>\n                    </div>\n                    <!-- /.progress-group -->\n\n                    <div class=\"progress-group\">\n                      Complete Purchase\n                      <span class=\"float-right\"><b>310</b>/400</span>\n                      <div class=\"progress progress-sm\">\n                        <div class=\"progress-bar bg-danger\" style=\"width: 75%\"></div>\n                      </div>\n                    </div>\n\n                    <!-- /.progress-group -->\n                    <div class=\"progress-group\">\n                      <span class=\"progress-text\">Visit Premium Page</span>\n                      <span class=\"float-right\"><b>480</b>/800</span>\n                      <div class=\"progress progress-sm\">\n                        <div class=\"progress-bar bg-success\" style=\"width: 60%\"></div>\n                      </div>\n                    </div>\n\n                    <!-- /.progress-group -->\n                    <div class=\"progress-group\">\n                      Send Inquiries\n                      <span class=\"float-right\"><b>250</b>/500</span>\n                      <div class=\"progress progress-sm\">\n                        <div class=\"progress-bar bg-warning\" style=\"width: 50%\"></div>\n                      </div>\n                    </div>\n                    <!-- /.progress-group -->\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- ./card-body -->\n              <div class=\"card-footer\">\n                <div class=\"row\">\n                  <div class=\"col-sm-3 col-6\">\n                    <div class=\"description-block border-right\">\n                      <span class=\"description-percentage text-success\"><i class=\"fas fa-caret-up\"></i> 17%</span>\n                      <h5 class=\"description-header\">$35,210.43</h5>\n                      <span class=\"description-text\">TOTAL REVENUE</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-3 col-6\">\n                    <div class=\"description-block border-right\">\n                      <span class=\"description-percentage text-warning\"><i class=\"fas fa-caret-left\"></i> 0%</span>\n                      <h5 class=\"description-header\">$10,390.90</h5>\n                      <span class=\"description-text\">TOTAL COST</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-3 col-6\">\n                    <div class=\"description-block border-right\">\n                      <span class=\"description-percentage text-success\"><i class=\"fas fa-caret-up\"></i> 20%</span>\n                      <h5 class=\"description-header\">$24,813.53</h5>\n                      <span class=\"description-text\">TOTAL PROFIT</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-3 col-6\">\n                    <div class=\"description-block\">\n                      <span class=\"description-percentage text-danger\"><i class=\"fas fa-caret-down\"></i> 18%</span>\n                      <h5 class=\"description-header\">1200</h5>\n                      <span class=\"description-text\">GOAL COMPLETIONS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- Main row -->\n        <div class=\"row\">\n          <!-- Left col -->\n          <div class=\"col-md-8\">\n            <!-- MAP & BOX PANE -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">US-Visitors Report</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <div class=\"d-md-flex\">\n                  <div class=\"p-1 flex-fill\" style=\"overflow: hidden\">\n                    <!-- Map will be created here -->\n                    <div id=\"world-map-markers\" style=\"height: 325px; overflow: hidden\">\n                      <div class=\"map\"></div>\n                    </div>\n                  </div>\n                  <div class=\"card-pane-right bg-success pt-2 pb-2 pl-4 pr-4\">\n                    <div class=\"description-block mb-4\">\n                      <div class=\"sparkbar pad\" data-color=\"#fff\">90,70,90,70,75,80,70</div>\n                      <h5 class=\"description-header\">8390</h5>\n                      <span class=\"description-text\">Visits</span>\n                    </div>\n                    <!-- /.description-block -->\n                    <div class=\"description-block mb-4\">\n                      <div class=\"sparkbar pad\" data-color=\"#fff\">90,50,90,70,61,83,63</div>\n                      <h5 class=\"description-header\">30%</h5>\n                      <span class=\"description-text\">Referrals</span>\n                    </div>\n                    <!-- /.description-block -->\n                    <div class=\"description-block\">\n                      <div class=\"sparkbar pad\" data-color=\"#fff\">90,50,90,70,61,83,63</div>\n                      <h5 class=\"description-header\">70%</h5>\n                      <span class=\"description-text\">Organic</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div><!-- /.card-pane-right -->\n                </div><!-- /.d-md-flex -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <div class=\"row\">\n              <div class=\"col-md-6\">\n                <!-- DIRECT CHAT -->\n                <div class=\"card direct-chat direct-chat-warning\">\n                  <div class=\"card-header\">\n                    <h3 class=\"card-title\">Direct Chat</h3>\n\n                    <div class=\"card-tools\">\n                      <span title=\"3 New Messages\" class=\"badge badge-warning\">3</span>\n                      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                        <i class=\"fas fa-minus\"></i>\n                      </button>\n                      <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                        <i class=\"fas fa-comments\"></i>\n                      </button>\n                      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                        <i class=\"fas fa-times\"></i>\n                      </button>\n                    </div>\n                  </div>\n                  <!-- /.card-header -->\n                  <div class=\"card-body\">\n                    <!-- Conversations are loaded here -->\n                    <div class=\"direct-chat-messages\">\n                      <!-- Message. Default to the left -->\n                      <div class=\"direct-chat-msg\">\n                        <div class=\"direct-chat-infos clearfix\">\n                          <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                          <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                        </div>\n                        <!-- /.direct-chat-infos -->\n                        <img class=\"direct-chat-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"message user image\">\n                        <!-- /.direct-chat-img -->\n                        <div class=\"direct-chat-text\">\n                          Is this template really for free? That's unbelievable!\n                        </div>\n                        <!-- /.direct-chat-text -->\n                      </div>\n                      <!-- /.direct-chat-msg -->\n\n                      <!-- Message to the right -->\n                      <div class=\"direct-chat-msg right\">\n                        <div class=\"direct-chat-infos clearfix\">\n                          <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                          <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                        </div>\n                        <!-- /.direct-chat-infos -->\n                        <img class=\"direct-chat-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"message user image\">\n                        <!-- /.direct-chat-img -->\n                        <div class=\"direct-chat-text\">\n                          You better believe it!\n                        </div>\n                        <!-- /.direct-chat-text -->\n                      </div>\n                      <!-- /.direct-chat-msg -->\n\n                      <!-- Message. Default to the left -->\n                      <div class=\"direct-chat-msg\">\n                        <div class=\"direct-chat-infos clearfix\">\n                          <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                          <span class=\"direct-chat-timestamp float-right\">23 Jan 5:37 pm</span>\n                        </div>\n                        <!-- /.direct-chat-infos -->\n                        <img class=\"direct-chat-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"message user image\">\n                        <!-- /.direct-chat-img -->\n                        <div class=\"direct-chat-text\">\n                          Working with AdminLTE on a great new app! Wanna join?\n                        </div>\n                        <!-- /.direct-chat-text -->\n                      </div>\n                      <!-- /.direct-chat-msg -->\n\n                      <!-- Message to the right -->\n                      <div class=\"direct-chat-msg right\">\n                        <div class=\"direct-chat-infos clearfix\">\n                          <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                          <span class=\"direct-chat-timestamp float-left\">23 Jan 6:10 pm</span>\n                        </div>\n                        <!-- /.direct-chat-infos -->\n                        <img class=\"direct-chat-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"message user image\">\n                        <!-- /.direct-chat-img -->\n                        <div class=\"direct-chat-text\">\n                          I would love to.\n                        </div>\n                        <!-- /.direct-chat-text -->\n                      </div>\n                      <!-- /.direct-chat-msg -->\n\n                    </div>\n                    <!--/.direct-chat-messages-->\n\n                    <!-- Contacts are loaded here -->\n                    <div class=\"direct-chat-contacts\">\n                      <ul class=\"contacts-list\">\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                Count Dracula\n                                <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user7-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                Sarah Doe\n                                <small class=\"contacts-list-date float-right\">2/23/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">I will be waiting for...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                Nadia Jolie\n                                <small class=\"contacts-list-date float-right\">2/20/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">I'll call you back at...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user5-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                Nora S. Vans\n                                <small class=\"contacts-list-date float-right\">2/10/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">Where is your new...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user6-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                John K.\n                                <small class=\"contacts-list-date float-right\">1/27/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">Can I take a look at...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                        <li>\n                          <a href=\"#\">\n                            <img class=\"contacts-list-img\" src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\">\n\n                            <div class=\"contacts-list-info\">\n                              <span class=\"contacts-list-name\">\n                                Kenneth M.\n                                <small class=\"contacts-list-date float-right\">1/4/2015</small>\n                              </span>\n                              <span class=\"contacts-list-msg\">Never mind I found...</span>\n                            </div>\n                            <!-- /.contacts-list-info -->\n                          </a>\n                        </li>\n                        <!-- End Contact Item -->\n                      </ul>\n                      <!-- /.contacts-list -->\n                    </div>\n                    <!-- /.direct-chat-pane -->\n                  </div>\n                  <!-- /.card-body -->\n                  <div class=\"card-footer\">\n                    <form action=\"#\" method=\"post\">\n                      <div class=\"input-group\">\n                        <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                        <span class=\"input-group-append\">\n                          <button type=\"button\" class=\"btn btn-warning\">Send</button>\n                        </span>\n                      </div>\n                    </form>\n                  </div>\n                  <!-- /.card-footer-->\n                </div>\n                <!--/.direct-chat -->\n              </div>\n              <!-- /.col -->\n\n              <div class=\"col-md-6\">\n                <!-- USERS LIST -->\n                <div class=\"card\">\n                  <div class=\"card-header\">\n                    <h3 class=\"card-title\">Latest Members</h3>\n\n                    <div class=\"card-tools\">\n                      <span class=\"badge badge-danger\">8 New Members</span>\n                      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                        <i class=\"fas fa-minus\"></i>\n                      </button>\n                      <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                        <i class=\"fas fa-times\"></i>\n                      </button>\n                    </div>\n                  </div>\n                  <!-- /.card-header -->\n                  <div class=\"card-body p-0\">\n                    <ul class=\"users-list clearfix\">\n                      <li>\n                        <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Alexander Pierce</a>\n                        <span class=\"users-list-date\">Today</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Norman</a>\n                        <span class=\"users-list-date\">Yesterday</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user7-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Jane</a>\n                        <span class=\"users-list-date\">12 Jan</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user6-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">John</a>\n                        <span class=\"users-list-date\">12 Jan</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user2-160x160.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Alexander</a>\n                        <span class=\"users-list-date\">13 Jan</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user5-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Sarah</a>\n                        <span class=\"users-list-date\">14 Jan</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user4-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Nora</a>\n                        <span class=\"users-list-date\">15 Jan</span>\n                      </li>\n                      <li>\n                        <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Image\">\n                        <a class=\"users-list-name\" href=\"#\">Nadia</a>\n                        <span class=\"users-list-date\">15 Jan</span>\n                      </li>\n                    </ul>\n                    <!-- /.users-list -->\n                  </div>\n                  <!-- /.card-body -->\n                  <div class=\"card-footer text-center\">\n                    <a href=\"javascript:\">View All Users</a>\n                  </div>\n                  <!-- /.card-footer -->\n                </div>\n                <!--/.card -->\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n\n            <!-- TABLE: LATEST ORDERS -->\n            <div class=\"card\">\n              <div class=\"card-header border-transparent\">\n                <h3 class=\"card-title\">Latest Orders</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <div class=\"table-responsive\">\n                  <table class=\"table m-0\">\n                    <thead>\n                    <tr>\n                      <th>Order ID</th>\n                      <th>Item</th>\n                      <th>Status</th>\n                      <th>Popularity</th>\n                    </tr>\n                    </thead>\n                    <tbody>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR9842</a></td>\n                      <td>Call of Duty IV</td>\n                      <td><span class=\"badge badge-success\">Shipped</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#00a65a\" data-height=\"20\">90,80,90,-70,61,-83,63</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR1848</a></td>\n                      <td>Samsung Smart TV</td>\n                      <td><span class=\"badge badge-warning\">Pending</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#f39c12\" data-height=\"20\">90,80,-90,70,61,-83,68</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR7429</a></td>\n                      <td>iPhone 6 Plus</td>\n                      <td><span class=\"badge badge-danger\">Delivered</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#f56954\" data-height=\"20\">90,-80,90,70,-61,83,63</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR7429</a></td>\n                      <td>Samsung Smart TV</td>\n                      <td><span class=\"badge badge-info\">Processing</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#00c0ef\" data-height=\"20\">90,80,-90,70,-61,83,63</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR1848</a></td>\n                      <td>Samsung Smart TV</td>\n                      <td><span class=\"badge badge-warning\">Pending</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#f39c12\" data-height=\"20\">90,80,-90,70,61,-83,68</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR7429</a></td>\n                      <td>iPhone 6 Plus</td>\n                      <td><span class=\"badge badge-danger\">Delivered</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#f56954\" data-height=\"20\">90,-80,90,70,-61,83,63</div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td><a href=\"pages/examples/invoice.html\">OR9842</a></td>\n                      <td>Call of Duty IV</td>\n                      <td><span class=\"badge badge-success\">Shipped</span></td>\n                      <td>\n                        <div class=\"sparkbar\" data-color=\"#00a65a\" data-height=\"20\">90,80,90,-70,61,-83,63</div>\n                      </td>\n                    </tr>\n                    </tbody>\n                  </table>\n                </div>\n                <!-- /.table-responsive -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer clearfix\">\n                <a href=\"javascript:void(0)\" class=\"btn btn-sm btn-info float-left\">Place New Order</a>\n                <a href=\"javascript:void(0)\" class=\"btn btn-sm btn-secondary float-right\">View All Orders</a>\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-4\">\n            <!-- Info Boxes Style 2 -->\n            <div class=\"info-box mb-3 bg-warning\">\n              <span class=\"info-box-icon\"><i class=\"fas fa-tag\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Inventory</span>\n                <span class=\"info-box-number\">5,200</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n            <div class=\"info-box mb-3 bg-success\">\n              <span class=\"info-box-icon\"><i class=\"far fa-heart\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Mentions</span>\n                <span class=\"info-box-number\">92,050</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n            <div class=\"info-box mb-3 bg-danger\">\n              <span class=\"info-box-icon\"><i class=\"fas fa-cloud-download-alt\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Downloads</span>\n                <span class=\"info-box-number\">114,381</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n            <div class=\"info-box mb-3 bg-info\">\n              <span class=\"info-box-icon\"><i class=\"far fa-comment\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Direct Messages</span>\n                <span class=\"info-box-number\">163,921</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Browser Usage</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-md-8\">\n                    <div class=\"chart-responsive\">\n                      <canvas id=\"pieChart\" height=\"150\"></canvas>\n                    </div>\n                    <!-- ./chart-responsive -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-md-4\">\n                    <ul class=\"chart-legend clearfix\">\n                      <li><i class=\"far fa-circle text-danger\"></i> Chrome</li>\n                      <li><i class=\"far fa-circle text-success\"></i> IE</li>\n                      <li><i class=\"far fa-circle text-warning\"></i> FireFox</li>\n                      <li><i class=\"far fa-circle text-info\"></i> Safari</li>\n                      <li><i class=\"far fa-circle text-primary\"></i> Opera</li>\n                      <li><i class=\"far fa-circle text-secondary\"></i> Navigator</li>\n                    </ul>\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer bg-light p-0\">\n                <ul class=\"nav nav-pills flex-column\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      United States of America\n                      <span class=\"float-right text-danger\">\n                        <i class=\"fas fa-arrow-down text-sm\"></i>\n                        12%</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      India\n                      <span class=\"float-right text-success\">\n                        <i class=\"fas fa-arrow-up text-sm\"></i> 4%\n                      </span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      China\n                      <span class=\"float-right text-warning\">\n                        <i class=\"fas fa-arrow-left text-sm\"></i> 0%\n                      </span>\n                    </a>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.footer -->\n            </div>\n            <!-- /.card -->\n\n            <!-- PRODUCT LIST -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Recently Added Products</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <ul class=\"products-list product-list-in-card pl-2 pr-2\">\n                  <li class=\"item\">\n                    <div class=\"product-img\">\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product Image\" class=\"img-size-50\">\n                    </div>\n                    <div class=\"product-info\">\n                      <a href=\"javascript:void(0)\" class=\"product-title\">Samsung TV\n                        <span class=\"badge badge-warning float-right\">$1800</span></a>\n                      <span class=\"product-description\">\n                        Samsung 32\" 1080p 60Hz LED Smart HDTV.\n                      </span>\n                    </div>\n                  </li>\n                  <!-- /.item -->\n                  <li class=\"item\">\n                    <div class=\"product-img\">\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product Image\" class=\"img-size-50\">\n                    </div>\n                    <div class=\"product-info\">\n                      <a href=\"javascript:void(0)\" class=\"product-title\">Bicycle\n                        <span class=\"badge badge-info float-right\">$700</span></a>\n                      <span class=\"product-description\">\n                        26\" Mongoose Dolomite Men's 7-speed, Navy Blue.\n                      </span>\n                    </div>\n                  </li>\n                  <!-- /.item -->\n                  <li class=\"item\">\n                    <div class=\"product-img\">\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product Image\" class=\"img-size-50\">\n                    </div>\n                    <div class=\"product-info\">\n                      <a href=\"javascript:void(0)\" class=\"product-title\">\n                        Xbox One <span class=\"badge badge-danger float-right\">\n                        $350\n                      </span>\n                      </a>\n                      <span class=\"product-description\">\n                        Xbox One Console Bundle with Halo Master Chief Collection.\n                      </span>\n                    </div>\n                  </li>\n                  <!-- /.item -->\n                  <li class=\"item\">\n                    <div class=\"product-img\">\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product Image\" class=\"img-size-50\">\n                    </div>\n                    <div class=\"product-info\">\n                      <a href=\"javascript:void(0)\" class=\"product-title\">PlayStation 4\n                        <span class=\"badge badge-success float-right\">$399</span></a>\n                      <span class=\"product-description\">\n                        PlayStation 4 500GB Console (PS4)\n                      </span>\n                    </div>\n                  </li>\n                  <!-- /.item -->\n                </ul>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer text-center\">\n                <a href=\"javascript:void(0)\" class=\"uppercase\">View All Products</a>\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!--/. container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n\n  <!-- Main Footer -->\n  <footer class=\"main-footer\">\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong>\n    All rights reserved.\n    <div class=\"float-right d-none d-sm-inline-block\">\n      <b>Version</b> 3.1.0\n    </div>\n  </footer>\n</div>\n<!-- ./wrapper -->\n\n<!-- REQUIRED SCRIPTS -->\n<!-- jQuery -->\n<script src=\"plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap -->\n<script src=\"plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"dist/js/adminlte.js\"></script>\n\n<!-- PAGE PLUGINS -->\n<!-- jQuery Mapael -->\n<script src=\"plugins/jquery-mousewheel/jquery.mousewheel.js\"></script>\n<script src=\"plugins/raphael/raphael.min.js\"></script>\n<script src=\"plugins/jquery-mapael/jquery.mapael.min.js\"></script>\n<script src=\"plugins/jquery-mapael/maps/usa_states.min.js\"></script>\n<!-- ChartJS -->\n<script src=\"plugins/chart.js/Chart.min.js\"></script>\n\n<!-- AdminLTE for demo purposes -->\n<script src=\"dist/js/demo.js\"></script>\n<!-- AdminLTE dashboard demo (This is only for demo purposes) -->\n<script src=\"dist/js/pages/dashboard2.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/index3.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Dashboard 3</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome Icons -->\n  <link rel=\"stylesheet\" href=\"plugins/fontawesome-free/css/all.min.css\">\n  <!-- IonIcons -->\n  <link rel=\"stylesheet\" href=\"https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"dist/css/adminlte.min.css\">\n</head>\n<!--\n`body` tag options:\n\n  Apply one or more of the following classes to to the body tag\n  to get the desired effect\n\n  * sidebar-collapse\n  * sidebar-mini\n-->\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"index3.html\" class=\"brand-link\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"./index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"./index3.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"pages/calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"pages/kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"pages/examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"pages/search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"pages/search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\">Dashboard v3</h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Dashboard v3</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <div class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-header border-0\">\n                <div class=\"d-flex justify-content-between\">\n                  <h3 class=\"card-title\">Online Store Visitors</h3>\n                  <a href=\"javascript:void(0);\">View Report</a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"d-flex\">\n                  <p class=\"d-flex flex-column\">\n                    <span class=\"text-bold text-lg\">820</span>\n                    <span>Visitors Over Time</span>\n                  </p>\n                  <p class=\"ml-auto d-flex flex-column text-right\">\n                    <span class=\"text-success\">\n                      <i class=\"fas fa-arrow-up\"></i> 12.5%\n                    </span>\n                    <span class=\"text-muted\">Since last week</span>\n                  </p>\n                </div>\n                <!-- /.d-flex -->\n\n                <div class=\"position-relative mb-4\">\n                  <canvas id=\"visitors-chart\" height=\"200\"></canvas>\n                </div>\n\n                <div class=\"d-flex flex-row justify-content-end\">\n                  <span class=\"mr-2\">\n                    <i class=\"fas fa-square text-primary\"></i> This Week\n                  </span>\n\n                  <span>\n                    <i class=\"fas fa-square text-gray\"></i> Last Week\n                  </span>\n                </div>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header border-0\">\n                <h3 class=\"card-title\">Products</h3>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-sm\">\n                    <i class=\"fas fa-download\"></i>\n                  </a>\n                  <a href=\"#\" class=\"btn btn-tool btn-sm\">\n                    <i class=\"fas fa-bars\"></i>\n                  </a>\n                </div>\n              </div>\n              <div class=\"card-body table-responsive p-0\">\n                <table class=\"table table-striped table-valign-middle\">\n                  <thead>\n                  <tr>\n                    <th>Product</th>\n                    <th>Price</th>\n                    <th>Sales</th>\n                    <th>More</th>\n                  </tr>\n                  </thead>\n                  <tbody>\n                  <tr>\n                    <td>\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product 1\" class=\"img-circle img-size-32 mr-2\">\n                      Some Product\n                    </td>\n                    <td>$13 USD</td>\n                    <td>\n                      <small class=\"text-success mr-1\">\n                        <i class=\"fas fa-arrow-up\"></i>\n                        12%\n                      </small>\n                      12,000 Sold\n                    </td>\n                    <td>\n                      <a href=\"#\" class=\"text-muted\">\n                        <i class=\"fas fa-search\"></i>\n                      </a>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product 1\" class=\"img-circle img-size-32 mr-2\">\n                      Another Product\n                    </td>\n                    <td>$29 USD</td>\n                    <td>\n                      <small class=\"text-warning mr-1\">\n                        <i class=\"fas fa-arrow-down\"></i>\n                        0.5%\n                      </small>\n                      123,234 Sold\n                    </td>\n                    <td>\n                      <a href=\"#\" class=\"text-muted\">\n                        <i class=\"fas fa-search\"></i>\n                      </a>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product 1\" class=\"img-circle img-size-32 mr-2\">\n                      Amazing Product\n                    </td>\n                    <td>$1,230 USD</td>\n                    <td>\n                      <small class=\"text-danger mr-1\">\n                        <i class=\"fas fa-arrow-down\"></i>\n                        3%\n                      </small>\n                      198 Sold\n                    </td>\n                    <td>\n                      <a href=\"#\" class=\"text-muted\">\n                        <i class=\"fas fa-search\"></i>\n                      </a>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <img src=\"dist/img/default-150x150.png\" alt=\"Product 1\" class=\"img-circle img-size-32 mr-2\">\n                      Perfect Item\n                      <span class=\"badge bg-danger\">NEW</span>\n                    </td>\n                    <td>$199 USD</td>\n                    <td>\n                      <small class=\"text-success mr-1\">\n                        <i class=\"fas fa-arrow-up\"></i>\n                        63%\n                      </small>\n                      87 Sold\n                    </td>\n                    <td>\n                      <a href=\"#\" class=\"text-muted\">\n                        <i class=\"fas fa-search\"></i>\n                      </a>\n                    </td>\n                  </tr>\n                  </tbody>\n                </table>\n              </div>\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col-md-6 -->\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-header border-0\">\n                <div class=\"d-flex justify-content-between\">\n                  <h3 class=\"card-title\">Sales</h3>\n                  <a href=\"javascript:void(0);\">View Report</a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"d-flex\">\n                  <p class=\"d-flex flex-column\">\n                    <span class=\"text-bold text-lg\">$18,230.00</span>\n                    <span>Sales Over Time</span>\n                  </p>\n                  <p class=\"ml-auto d-flex flex-column text-right\">\n                    <span class=\"text-success\">\n                      <i class=\"fas fa-arrow-up\"></i> 33.1%\n                    </span>\n                    <span class=\"text-muted\">Since last month</span>\n                  </p>\n                </div>\n                <!-- /.d-flex -->\n\n                <div class=\"position-relative mb-4\">\n                  <canvas id=\"sales-chart\" height=\"200\"></canvas>\n                </div>\n\n                <div class=\"d-flex flex-row justify-content-end\">\n                  <span class=\"mr-2\">\n                    <i class=\"fas fa-square text-primary\"></i> This year\n                  </span>\n\n                  <span>\n                    <i class=\"fas fa-square text-gray\"></i> Last year\n                  </span>\n                </div>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header border-0\">\n                <h3 class=\"card-title\">Online Store Overview</h3>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-sm btn-tool\">\n                    <i class=\"fas fa-download\"></i>\n                  </a>\n                  <a href=\"#\" class=\"btn btn-sm btn-tool\">\n                    <i class=\"fas fa-bars\"></i>\n                  </a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"d-flex justify-content-between align-items-center border-bottom mb-3\">\n                  <p class=\"text-success text-xl\">\n                    <i class=\"ion ion-ios-refresh-empty\"></i>\n                  </p>\n                  <p class=\"d-flex flex-column text-right\">\n                    <span class=\"font-weight-bold\">\n                      <i class=\"ion ion-android-arrow-up text-success\"></i> 12%\n                    </span>\n                    <span class=\"text-muted\">CONVERSION RATE</span>\n                  </p>\n                </div>\n                <!-- /.d-flex -->\n                <div class=\"d-flex justify-content-between align-items-center border-bottom mb-3\">\n                  <p class=\"text-warning text-xl\">\n                    <i class=\"ion ion-ios-cart-outline\"></i>\n                  </p>\n                  <p class=\"d-flex flex-column text-right\">\n                    <span class=\"font-weight-bold\">\n                      <i class=\"ion ion-android-arrow-up text-warning\"></i> 0.8%\n                    </span>\n                    <span class=\"text-muted\">SALES RATE</span>\n                  </p>\n                </div>\n                <!-- /.d-flex -->\n                <div class=\"d-flex justify-content-between align-items-center mb-0\">\n                  <p class=\"text-danger text-xl\">\n                    <i class=\"ion ion-ios-people-outline\"></i>\n                  </p>\n                  <p class=\"d-flex flex-column text-right\">\n                    <span class=\"font-weight-bold\">\n                      <i class=\"ion ion-android-arrow-down text-danger\"></i> 1%\n                    </span>\n                    <span class=\"text-muted\">REGISTRATION RATE</span>\n                  </p>\n                </div>\n                <!-- /.d-flex -->\n              </div>\n            </div>\n          </div>\n          <!-- /.col-md-6 -->\n        </div>\n        <!-- /.row -->\n      </div>\n      <!-- /.container-fluid -->\n    </div>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n\n  <!-- Main Footer -->\n  <footer class=\"main-footer\">\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong>\n    All rights reserved.\n    <div class=\"float-right d-none d-sm-inline-block\">\n      <b>Version</b> 3.1.0\n    </div>\n  </footer>\n</div>\n<!-- ./wrapper -->\n\n<!-- REQUIRED SCRIPTS -->\n\n<!-- jQuery -->\n<script src=\"plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap -->\n<script src=\"plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE -->\n<script src=\"dist/js/adminlte.js\"></script>\n\n<!-- OPTIONAL SCRIPTS -->\n<script src=\"plugins/chart.js/Chart.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"dist/js/demo.js\"></script>\n<!-- AdminLTE dashboard demo (This is only for demo purposes) -->\n<script src=\"dist/js/pages/dashboard3.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/package.json",
    "content": "{\n  \"name\": \"admin-lte\",\n  \"description\": \"Responsive open source admin dashboard and control panel.\",\n  \"version\": \"3.1.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Colorlib <https://colorlib.com>\",\n  \"main\": \"dist/js/adminlte.min.js\",\n  \"scripts\": {\n    \"bundlewatch\": \"bundlewatch --config .bundlewatch.config.json\",\n    \"css\": \"npm-run-all css-compile css-prefix css-minify\",\n    \"css-splits\": \"npm-run-all css-compile-splits css-prefix-splits css-minify-splits\",\n    \"css-all\": \"npm-run-all --parallel css css-splits\",\n    \"css-compile-bash\": \"node-sass --importer node_modules/node-sass-package-importer/dist/cli.js --output-style expanded --source-map true --source-map-contents true --precision 6 \",\n    \"css-compile\": \"npm run css-compile-bash -- build/scss/adminlte.scss dist/css/adminlte.css\",\n    \"css-compile-splits\": \"npm run css-compile-bash -- build/scss/parts -o dist/css/alt/\",\n    \"css-prefix\": \"postcss --config build/config/postcss.config.js --replace \\\"dist/css/*.css\\\" \\\"!dist/css/*.min.css\\\"\",\n    \"css-prefix-splits\": \"postcss --config build/config/postcss.config.js --replace \\\"dist/css/alt/*.css\\\" \\\"!dist/css/alt/*.min.css\\\"\",\n    \"css-minify-bash\": \"cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output \",\n    \"css-minify\": \"npm run css-minify-bash -- dist/css/ --batch --batch-suffix \\\".min\\\" \\\"dist/css/*.css\\\" \\\"!dist/css/*.min.css\\\"\",\n    \"css-minify-splits\": \"npm run css-minify-bash -- dist/css/alt/ --batch --batch-suffix \\\".min\\\" \\\"dist/css/alt/*.css\\\" \\\"!dist/css/alt/*.min.css\\\"\",\n    \"css-lint\": \"stylelint \\\"build/scss/**/*.scss\\\" --cache --cache-location .cache/.stylelintcache\",\n    \"compile\": \"npm-run-all --parallel js css-all\",\n    \"dev\": \"npm-run-all --parallel watch sync\",\n    \"docs\": \"npm-run-all docs-prepare docs-compile\",\n    \"docs-lint\": \"node build/npm/vnu-jar.js\",\n    \"docs-compile\": \"cd docs/ && bundle exec jekyll build -d ../docs_html\",\n    \"docs-serve\": \"npm-run-all compile docs-prepare && cd docs/ && bundle exec jekyll serve\",\n    \"docs-prepare\": \"node build/npm/DocsPublish.js -v\",\n    \"lockfile-lint\": \"lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json\",\n    \"postinstall\": \"npm run plugins\",\n    \"js\": \"npm-run-all js-compile js-minify\",\n    \"js-compile\": \"rollup --config build/config/rollup.config.js --sourcemap\",\n    \"js-minify\": \"terser --compress typeofs=false --mangle --comments \\\"/^!/\\\" --source-map \\\"content=dist/js/adminlte.js.map,includeSources,url=adminlte.min.js.map\\\" --output dist/js/adminlte.min.js dist/js/adminlte.js\",\n    \"js-lint\": \"eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives .\",\n    \"lint\": \"npm-run-all --continue-on-error --parallel css-lint js-lint lockfile-lint\",\n    \"production\": \"npm-run-all --parallel compile plugins\",\n    \"prepare-release\": \"npm-run-all production docs\",\n    \"test\": \"npm-run-all lint production\",\n    \"plugins\": \"node build/npm/Publish.js -v\",\n    \"sync\": \"browser-sync start --server --files *.html pages/ dist/\",\n    \"watch\": \"concurrently \\\"npm run watch-css\\\" \\\"npm run watch-js\\\"\",\n    \"watch-css\": \"nodemon --watch build/scss -e scss -x \\\"npm-run-all css-lint css\\\"\",\n    \"watch-js\": \"nodemon --watch build/js -e js -x \\\"npm-run-all js-lint js\\\"\"\n  },\n  \"keywords\": [\n    \"css\",\n    \"sass\",\n    \"responsive\",\n    \"admin\",\n    \"template\",\n    \"theme\",\n    \"framework\",\n    \"control-panel\",\n    \"dashboard\"\n  ],\n  \"homepage\": \"https://adminlte.io\",\n  \"style\": \"dist/css/adminlte.css\",\n  \"sass\": \"build/scss/adminlte.scss\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/ColorlibHQ/AdminLTE.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/ColorlibHQ/AdminLTE/issues\"\n  },\n  \"dependencies\": {\n    \"@fortawesome/fontawesome-free\": \"^5.15.3\",\n    \"@lgaitan/pace-progress\": \"^1.0.7\",\n    \"@sweetalert2/theme-bootstrap-4\": \"^4.0.3\",\n    \"@ttskch/select2-bootstrap4-theme\": \"^1.5.2\",\n    \"bootstrap\": \"^4.6.0\",\n    \"bootstrap-colorpicker\": \"^3.2.0\",\n    \"bootstrap-slider\": \"^11.0.2\",\n    \"bootstrap-switch\": \"3.3.4\",\n    \"bootstrap4-duallistbox\": \"^4.0.2\",\n    \"bs-custom-file-input\": \"^1.3.4\",\n    \"bs-stepper\": \"^1.7.0\",\n    \"chart.js\": \"^2.9.4\",\n    \"codemirror\": \"^5.60.0\",\n    \"datatables.net\": \"^1.10.24\",\n    \"datatables.net-autofill-bs4\": \"^2.3.5\",\n    \"datatables.net-bs4\": \"^1.10.24\",\n    \"datatables.net-buttons-bs4\": \"^1.7.0\",\n    \"datatables.net-colreorder-bs4\": \"^1.5.3\",\n    \"datatables.net-fixedcolumns-bs4\": \"^3.3.2\",\n    \"datatables.net-fixedheader-bs4\": \"^3.1.8\",\n    \"datatables.net-keytable-bs4\": \"^2.6.1\",\n    \"datatables.net-responsive-bs4\": \"^2.2.7\",\n    \"datatables.net-rowgroup-bs4\": \"^1.1.2\",\n    \"datatables.net-rowreorder-bs4\": \"^1.2.7\",\n    \"datatables.net-scroller-bs4\": \"^2.0.3\",\n    \"datatables.net-searchbuilder-bs4\": \"^1.0.1\",\n    \"datatables.net-searchpanes-bs4\": \"^1.2.2\",\n    \"datatables.net-select-bs4\": \"^1.3.2\",\n    \"daterangepicker\": \"^3.1.0\",\n    \"dropzone\": \"^5.8.1\",\n    \"ekko-lightbox\": \"^5.3.0\",\n    \"fastclick\": \"^1.0.6\",\n    \"filterizr\": \"^2.2.4\",\n    \"flag-icon-css\": \"^3.5.0\",\n    \"flot\": \"^4.2.2\",\n    \"fs-extra\": \"^9.1.0\",\n    \"fullcalendar\": \"^5.5.1\",\n    \"icheck-bootstrap\": \"^3.0.1\",\n    \"inputmask\": \"^5.0.5\",\n    \"ion-rangeslider\": \"^2.3.1\",\n    \"jquery\": \"^3.6.0\",\n    \"jquery-knob-chif\": \"^1.2.13\",\n    \"jquery-mapael\": \"^2.2.0\",\n    \"jquery-mousewheel\": \"^3.1.13\",\n    \"jquery-ui-dist\": \"^1.12.1\",\n    \"jquery-validation\": \"^1.19.3\",\n    \"jqvmap-novulnerability\": \"^1.5.1\",\n    \"jsgrid\": \"^1.5.3\",\n    \"jszip\": \"^3.6.0\",\n    \"moment\": \"^2.29.1\",\n    \"overlayscrollbars\": \"^1.13.1\",\n    \"pdfmake\": \"^0.1.70\",\n    \"popper.js\": \"^1.16.1\",\n    \"raphael\": \"^2.3.0\",\n    \"select2\": \"^4.0.13\",\n    \"sparklines\": \"^1.3.0\",\n    \"summernote\": \"^0.8.18\",\n    \"sweetalert2\": \"^10.15.6\",\n    \"tempusdominus-bootstrap-4\": \"^5.39.0\",\n    \"toastr\": \"^2.1.4\",\n    \"uplot\": \"^1.6.7\"\n  },\n  \"devDependencies\": {\n    \"@babel/core\": \"^7.13.10\",\n    \"@babel/preset-env\": \"^7.13.10\",\n    \"@rollup/plugin-babel\": \"^5.3.0\",\n    \"autoprefixer\": \"^10.2.5\",\n    \"browser-sync\": \"^2.26.14\",\n    \"bundlewatch\": \"^0.3.2\",\n    \"clean-css-cli\": \"^5.2.2\",\n    \"concurrently\": \"^6.0.0\",\n    \"eslint\": \"^7.22.0\",\n    \"eslint-config-xo\": \"^0.35.0\",\n    \"eslint-plugin-compat\": \"^3.9.0\",\n    \"eslint-plugin-import\": \"^2.22.1\",\n    \"eslint-plugin-unicorn\": \"^29.0.0\",\n    \"lockfile-lint\": \"^4.6.2\",\n    \"node-sass\": \"^5.0.0\",\n    \"node-sass-package-importer\": \"^5.3.2\",\n    \"nodemon\": \"^2.0.7\",\n    \"npm-run-all\": \"^4.1.5\",\n    \"postcss\": \"^8.2.8\",\n    \"postcss-cli\": \"^8.3.1\",\n    \"postcss-scrollbar\": \"^0.3.0\",\n    \"rollup\": \"^2.42.1\",\n    \"stylelint\": \"^13.12.0\",\n    \"stylelint-config-twbs-bootstrap\": \"^2.1.0\",\n    \"terser\": \"^5.6.1\",\n    \"vnu-jar\": \"^21.2.5\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/buttons.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Buttons</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Buttons</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Buttons</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Buttons\n                </h3>\n              </div>\n              <div class=\"card-body pad table-responsive\">\n                <p>Various types of buttons. Using the base class <code>.btn</code></p>\n                <table class=\"table table-bordered text-center\">\n                  <tr>\n                    <th>Normal</th>\n                    <th>Large <code>.btn-lg</code></th>\n                    <th>Small <code>.btn-sm</code></th>\n                    <th>Extra Small <code>.btn-xs</code></th>\n                    <th>Flat <code>.btn-flat</code></th>\n                    <th>Disabled <code>.disabled</code></th>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default\">Default</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default btn-lg\">Default</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default btn-sm\">Default</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default btn-xs\">Default</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default btn-flat\">Default</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-default disabled\">Default</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary btn-lg\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary btn-sm\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary btn-xs\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary btn-flat\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-primary disabled\">Primary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary btn-lg\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary btn-sm\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary btn-xs\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary btn-flat\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-secondary disabled\">Secondary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success btn-lg\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success btn-sm\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success btn-xs\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success btn-flat\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-success disabled\">Success</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info btn-lg\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info btn-sm\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info btn-xs\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info btn-flat\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-info disabled\">Info</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger btn-lg\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger btn-sm\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger btn-xs\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger btn-flat\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-danger disabled\">Danger</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning btn-lg\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning btn-sm\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning btn-xs\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning btn-flat\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-warning disabled\">Warning</button>\n                    </td>\n                  </tr>\n                </table>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- ./row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Outline Buttons\n                </h3>\n              </div>\n              <div class=\"card-body pad table-responsive\">\n                <p>Various types of buttons. Using the base class <code>.btn</code></p>\n                <table class=\"table table-bordered text-center\">\n                  <tr>\n                    <th>Normal</th>\n                    <th>Large <code>.btn-lg</code></th>\n                    <th>Small <code>.btn-sm</code></th>\n                    <th>Extra Small <code>.btn-xs</code></th>\n                    <th>Flat <code>.btn-flat</code></th>\n                    <th>Disabled <code>.disabled</code></th>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary btn-lg\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary btn-sm\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary btn-xs\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary btn-flat\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-primary disabled\">Primary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary btn-lg\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary btn-sm\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary btn-xs\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary btn-flat\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-secondary disabled\">Secondary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success btn-lg\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success btn-sm\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success btn-xs\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success btn-flat\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-success disabled\">Success</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info btn-lg\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info btn-sm\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info btn-xs\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info btn-flat\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-info disabled\">Info</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger btn-lg\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger btn-sm\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger btn-xs\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger btn-flat\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-danger disabled\">Danger</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning btn-lg\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning btn-sm\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning btn-xs\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning btn-flat\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block btn-outline-warning disabled\">Warning</button>\n                    </td>\n                  </tr>\n                </table>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- ./row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Gradient Buttons (bg-gradient-*)\n                </h3>\n              </div>\n              <div class=\"card-body pad table-responsive\">\n                <p>Various types of buttons. Using the base class <code>.btn</code></p>\n                <table class=\"table table-bordered text-center\">\n                  <tr>\n                    <th>Normal</th>\n                    <th>Large <code>.btn-lg</code></th>\n                    <th>Small <code>.btn-sm</code></th>\n                    <th>Extra Small <code>.btn-xs</code></th>\n                    <th>Flat <code>.btn-flat</code></th>\n                    <th>Disabled <code>.disabled</code></th>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary btn-lg\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary btn-sm\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary btn-xs\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary btn-flat\">Primary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-primary disabled\">Primary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary btn-lg\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary btn-sm\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary btn-xs\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary btn-flat\">Secondary</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-secondary disabled\">Secondary</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success btn-lg\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success btn-sm\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success btn-xs\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success btn-flat\">Success</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-success disabled\">Success</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info btn-lg\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info btn-sm\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info btn-xs\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info btn-flat\">Info</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-info disabled\">Info</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger btn-lg\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger btn-sm\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger btn-xs\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger btn-flat\">Danger</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-danger disabled\">Danger</button>\n                    </td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning btn-lg\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning btn-sm\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning btn-xs\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning btn-flat\">Warning</button>\n                    </td>\n                    <td>\n                      <button type=\"button\" class=\"btn btn-block bg-gradient-warning disabled\">Warning</button>\n                    </td>\n                  </tr>\n                </table>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n          <!-- ./row -->\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <!-- Buttons with Icons -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Buttons with Icons</h3>\n              </div>\n              <div class=\"card-body row\">\n                <div class=\"col-md-6\">\n                  <button type=\"button\" class=\"btn btn-primary btn-block\"><i class=\"fa fa-bell\"></i> .btn-block</button>\n                  <button type=\"button\" class=\"btn btn-info btn-block btn-flat\"><i class=\"fa fa-bell\"></i> .btn-block .btn-flat</button>\n                  <button type=\"button\" class=\"btn btn-danger btn-block btn-sm\"><i class=\"fa fa-bell\"></i> .btn-block .btn-sm</button>\n                </div>\n                <div class=\"col-md-6\">\n                  <button type=\"button\" class=\"btn btn-outline-primary btn-block\"><i class=\"fa fa-bell\"></i> .btn-block</button>\n                  <button type=\"button\" class=\"btn btn-outline-info btn-block btn-flat\"><i class=\"fa fa-book\"></i> .btn-block .btn-flat</button>\n                  <button type=\"button\" class=\"btn btn-outline-danger btn-block btn-sm\"><i class=\"fa fa-book\"></i> .btn-block .btn-sm</button>\n                </div>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <!-- Block buttons -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Block Buttons</h3>\n              </div>\n              <div class=\"card-body\">\n                <button type=\"button\" class=\"btn btn-default btn-block\">.btn-block</button>\n                <button type=\"button\" class=\"btn btn-default btn-block btn-flat\">.btn-block .btn-flat</button>\n                <button type=\"button\" class=\"btn btn-default btn-block btn-sm\">.btn-block .btn-sm</button>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <!-- Horizontal grouping -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Horizontal Button Group</h3>\n              </div>\n              <div class=\"card-body table-responsive pad\">\n                <p>\n                  Horizontal button groups are easy to create with bootstrap. Just add your buttons\n                  inside <code>&lt;div class=\"btn-group\"&gt;&lt;/div&gt;</code>\n                </p>\n\n                <table class=\"table table-bordered\">\n                  <tr>\n                    <th>Button</th>\n                    <th>Icons</th>\n                    <th>Flat</th>\n                    <th>Dropdown</th>\n                  </tr>\n                  <!-- Default -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-default\">Left</button>\n                        <button type=\"button\" class=\"btn btn-default\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-default\">Right</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-default\">1</button>\n                        <button type=\"button\" class=\"btn btn-default\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-default dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                          </button>\n                          <div class=\"dropdown-menu\">\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                          </div>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- ./default -->\n                  <!-- Info -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-info\">Left</button>\n                        <button type=\"button\" class=\"btn btn-info\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-info\">Right</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-info\">1</button>\n                        <button type=\"button\" class=\"btn btn-info\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-info dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                          </button>\n                          <div class=\"dropdown-menu\">\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                          </div>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /. info -->\n                  <!-- /.danger -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-danger\">Left</button>\n                        <button type=\"button\" class=\"btn btn-danger\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-danger\">Right</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-danger\">1</button>\n                        <button type=\"button\" class=\"btn btn-danger\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-danger dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                          </button>\n                          <div class=\"dropdown-menu\">\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                          </div>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.danger -->\n                  <!-- warning -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-warning\">Left</button>\n                        <button type=\"button\" class=\"btn btn-warning\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-warning\">Right</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-warning\">1</button>\n                        <button type=\"button\" class=\"btn btn-warning\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-warning dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                          </button>\n                          <div class=\"dropdown-menu\">\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                          </div>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.warning -->\n                  <!-- success -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-success\">Left</button>\n                        <button type=\"button\" class=\"btn btn-success\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-success\">Right</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group\">\n                        <button type=\"button\" class=\"btn btn-success\">1</button>\n                        <button type=\"button\" class=\"btn btn-success\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-success dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                          </button>\n                          <div class=\"dropdown-menu\">\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                            <a class=\"dropdown-item\" href=\"#\">Dropdown link</a>\n                          </div>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.success -->\n                </table>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Appended Buttons</h3>\n              </div>\n              <div class=\"card-body\">\n                <strong>With dropdown</strong>\n                <div class=\"input-group mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <button type=\"button\" class=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\">\n                      Action\n                    </button>\n                    <div class=\"dropdown-menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <!-- /btn-group -->\n                  <input type=\"text\" class=\"form-control\">\n                </div>\n                <!-- /input-group -->\n                <strong>Normal</strong>\n                <div class=\"input-group mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <button type=\"button\" class=\"btn btn-danger\">Action</button>\n                  </div>\n                  <!-- /btn-group -->\n                  <input type=\"text\" class=\"form-control\">\n                </div>\n                <!-- /input-group -->\n                <strong>Flat</strong>\n                <div class=\"input-group mb-3\">\n                  <input type=\"text\" class=\"form-control rounded-0\">\n                  <span class=\"input-group-append\">\n                    <button type=\"button\" class=\"btn btn-info btn-flat\">Go!</button>\n                  </span>\n                </div>\n                <!-- /input-group -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <!-- split buttons box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Split buttons</h3>\n              </div>\n              <div class=\"card-body\">\n                <!-- Split button -->\n                <p class=\"mb-1\">Normal split buttons:</p>\n\n                <div class=\"margin\">\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-default\">Action</button>\n                    <button type=\"button\" class=\"btn btn-default dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-info\">Action</button>\n                    <button type=\"button\" class=\"btn btn-info dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-danger\">Action</button>\n                    <button type=\"button\" class=\"btn btn-danger dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-success\">Action</button>\n                    <button type=\"button\" class=\"btn btn-success dropdown-toggle\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-warning\">Action</button>\n                    <button type=\"button\" class=\"btn btn-warning dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                </div>\n\n                <!-- flat split buttons -->\n                <p class=\"mt-3 mb-1\">Flat split buttons:</p>\n\n                <div class=\"margin\">\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-default btn-flat\">Action</button>\n                    <button type=\"button\" class=\"btn btn-default btn-flat dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-info btn-flat\">Action</button>\n                    <button type=\"button\" class=\"btn btn-info btn-flat dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-danger btn-flat\">Action</button>\n                    <button type=\"button\" class=\"btn btn-danger btn-flat dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-success btn-flat\">Action</button>\n                    <button type=\"button\" class=\"btn btn-success btn-flat dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-warning btn-flat\">Action</button>\n                    <button type=\"button\" class=\"btn btn-warning btn-flat dropdown-toggle dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                </div>\n\n                <!-- Split button -->\n                <p class=\"mt-3 mb-1\">Hoverable split buttons:</p>\n                <div class=\"margin\">\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-default\">Action</button>\n                    <button type=\"button\" class=\"btn btn-default dropdown-toggle dropdown-hover dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-info\">Action</button>\n                    <button type=\"button\" class=\"btn btn-info dropdown-toggle dropdown-hover dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-danger\">Action</button>\n                    <button type=\"button\" class=\"btn btn-danger dropdown-toggle dropdown-hover dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-success\">Action</button>\n                    <button type=\"button\" class=\"btn btn-success dropdown-toggle dropdown-hover dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-warning\">Action</button>\n                    <button type=\"button\" class=\"btn btn-warning dropdown-toggle dropdown-hover dropdown-icon\" data-toggle=\"dropdown\">\n                      <span class=\"sr-only\">Toggle Dropdown</span>\n                    </button>\n                    <div class=\"dropdown-menu\" role=\"menu\">\n                      <a class=\"dropdown-item\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" href=\"#\">Separated link</a>\n                    </div>\n                  </div>\n                </div>\n\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- end split buttons box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-6\">\n            <!-- Application buttons -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Application Buttons</h3>\n              </div>\n              <div class=\"card-body\">\n                <p>Add the classes <code>.btn.btn-app</code> to an <code>&lt;a></code> tag to achieve the following:</p>\n                <a class=\"btn btn-app\">\n                  <i class=\"fas fa-edit\"></i> Edit\n                </a>\n                <a class=\"btn btn-app\">\n                  <i class=\"fas fa-play\"></i> Play\n                </a>\n                <a class=\"btn btn-app\">\n                  <i class=\"fas fa-pause\"></i> Pause\n                </a>\n                <a class=\"btn btn-app\">\n                  <i class=\"fas fa-save\"></i> Save\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-warning\">3</span>\n                  <i class=\"fas fa-bullhorn\"></i> Notifications\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-success\">300</span>\n                  <i class=\"fas fa-barcode\"></i> Products\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-purple\">891</span>\n                  <i class=\"fas fa-users\"></i> Users\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-teal\">67</span>\n                  <i class=\"fas fa-inbox\"></i> Orders\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-info\">12</span>\n                  <i class=\"fas fa-envelope\"></i> Inbox\n                </a>\n                <a class=\"btn btn-app\">\n                  <span class=\"badge bg-danger\">531</span>\n                  <i class=\"fas fa-heart\"></i> Likes\n                </a>\n\n                <p>Application Buttons with Custom Colors</p>\n                <a class=\"btn btn-app bg-secondary\">\n                  <span class=\"badge bg-success\">300</span>\n                  <i class=\"fas fa-barcode\"></i> Products\n                </a>\n                <a class=\"btn btn-app bg-success\">\n                  <span class=\"badge bg-purple\">891</span>\n                  <i class=\"fas fa-users\"></i> Users\n                </a>\n                <a class=\"btn btn-app bg-danger\">\n                  <span class=\"badge bg-teal\">67</span>\n                  <i class=\"fas fa-inbox\"></i> Orders\n                </a>\n                <a class=\"btn btn-app bg-warning\">\n                  <span class=\"badge bg-info\">12</span>\n                  <i class=\"fas fa-envelope\"></i> Inbox\n                </a>\n                <a class=\"btn btn-app bg-info\">\n                  <span class=\"badge bg-danger\">531</span>\n                  <i class=\"fas fa-heart\"></i> Likes\n                </a>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- Vertical grouping -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Vertical Button Group</h3>\n              </div>\n              <div class=\"card-body table-responsive pad\">\n\n                <p>\n                  Vertical button groups are easy to create with bootstrap. Just add your buttons\n                  inside <code>&lt;div class=\"btn-group-vertical\"&gt;&lt;/div&gt;</code>\n                </p>\n\n                <table class=\"table table-bordered\">\n                  <tr>\n                    <th>Button</th>\n                    <th>Icons</th>\n                    <th>Flat</th>\n                    <th>Dropdown</th>\n                  </tr>\n                  <!-- Default -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-default\">Top</button>\n                        <button type=\"button\" class=\"btn btn-default\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-default\">Bottom</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-default btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-default\">1</button>\n                        <button type=\"button\" class=\"btn btn-default\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\">\n                          </button>\n                          <ul class=\"dropdown-menu\">\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                          </ul>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- ./default -->\n                  <!-- Info -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-info\">Top</button>\n                        <button type=\"button\" class=\"btn btn-info\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-info\">Bottom</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-info btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-info\">1</button>\n                        <button type=\"button\" class=\"btn btn-info\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-info dropdown-toggle\" data-toggle=\"dropdown\">\n                          </button>\n                          <ul class=\"dropdown-menu\">\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                          </ul>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /. info -->\n                  <!-- /.danger -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-danger\">Top</button>\n                        <button type=\"button\" class=\"btn btn-danger\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-danger\">Bottom</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-danger btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-danger\">1</button>\n                        <button type=\"button\" class=\"btn btn-danger\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-danger dropdown-toggle\" data-toggle=\"dropdown\">\n                          </button>\n                          <ul class=\"dropdown-menu\">\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                          </ul>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.danger -->\n                  <!-- warning -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-warning\">Top</button>\n                        <button type=\"button\" class=\"btn btn-warning\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-warning\">Bottom</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-warning btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-warning\">1</button>\n                        <button type=\"button\" class=\"btn btn-warning\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-warning dropdown-toggle\" data-toggle=\"dropdown\">\n                          </button>\n                          <ul class=\"dropdown-menu\">\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                          </ul>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.warning -->\n                  <!-- success -->\n                  <tr>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-success\">Top</button>\n                        <button type=\"button\" class=\"btn btn-success\">Middle</button>\n                        <button type=\"button\" class=\"btn btn-success\">Bottom</button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-left\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-center\"></i>\n                        </button>\n                        <button type=\"button\" class=\"btn btn-success btn-flat\">\n                          <i class=\"fas fa-align-right\"></i>\n                        </button>\n                      </div>\n                    </td>\n                    <td>\n                      <div class=\"btn-group-vertical\">\n                        <button type=\"button\" class=\"btn btn-success\">1</button>\n                        <button type=\"button\" class=\"btn btn-success\">2</button>\n\n                        <div class=\"btn-group\">\n                          <button type=\"button\" class=\"btn btn-success dropdown-toggle\" data-toggle=\"dropdown\">\n                          </button>\n                          <ul class=\"dropdown-menu\">\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                            <li><a class=\"dropdown-item\" href=\"#\">Dropdown link</a></li>\n                          </ul>\n                        </div>\n                      </div>\n                    </td>\n                  </tr>\n                  <!-- /.success -->\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- Radio Buttons -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Radio Button Group</h3>\n              </div>\n              <div class=\"card-body table-responsive pad\">\n                <p class=\"mb-1\">Radio Button Group with <code>.btn-secondary</code></p>\n                <div class=\"btn-group btn-group-toggle\" data-toggle=\"buttons\">\n                  <label class=\"btn btn-secondary active\">\n                    <input type=\"radio\" name=\"options\" id=\"option_a1\" autocomplete=\"off\" checked> Active\n                  </label>\n                  <label class=\"btn btn-secondary\">\n                    <input type=\"radio\" name=\"options\" id=\"option_a2\" autocomplete=\"off\"> Radio\n                  </label>\n                  <label class=\"btn btn-secondary\">\n                    <input type=\"radio\" name=\"options\" id=\"option_a3\" autocomplete=\"off\"> Radio\n                  </label>\n                </div>\n\n                <p class=\"mt-3 mb-1\">Radio Button Group with <code>.bg-olive</code></p>\n                <div class=\"btn-group btn-group-toggle\" data-toggle=\"buttons\">\n                  <label class=\"btn bg-olive active\">\n                    <input type=\"radio\" name=\"options\" id=\"option_b1\" autocomplete=\"off\" checked> Active\n                  </label>\n                  <label class=\"btn bg-olive\">\n                    <input type=\"radio\" name=\"options\" id=\"option_b2\" autocomplete=\"off\"> Radio\n                  </label>\n                  <label class=\"btn bg-olive\">\n                    <input type=\"radio\" name=\"options\" id=\"option_b3\" autocomplete=\"off\"> Radio\n                  </label>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /. row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/general.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | General UI</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n\n  <style>\n    .color-palette {\n      height: 35px;\n      line-height: 35px;\n      text-align: right;\n      padding-right: .75rem;\n    }\n\n    .color-palette.disabled {\n      text-align: center;\n      padding-right: 0;\n      display: block;\n    }\n\n    .color-palette-set {\n      margin-bottom: 15px;\n    }\n\n    .color-palette span {\n      display: none;\n      font-size: 12px;\n    }\n\n    .color-palette:hover span {\n      display: block;\n    }\n\n    .color-palette.disabled span {\n      display: block;\n      text-align: left;\n      padding-left: .75rem;\n    }\n\n    .color-palette-box h4 {\n      position: absolute;\n      left: 1.25rem;\n      margin-top: .75rem;\n      color: rgba(255, 255, 255, 0.8);\n      font-size: 12px;\n      display: block;\n      z-index: 7;\n    }\n  </style>\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Inline Charts</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Inline Charts</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- COLOR PALETTE -->\n        <div class=\"card card-default color-palette-box\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              <i class=\"fas fa-tag\"></i>\n              Color Palette\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"col-12\">\n              <h5>Theme Colors</h5>\n            </div>\n            <!-- /.col-12 -->\n            <div class=\"row\">\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Primary</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-primary color-palette\"><span>#007bff</span></div>\n                  <div class=\"bg-primary disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Secondary</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-secondary color-palette\"><span>#6c757d</span></div>\n                  <div class=\"bg-secondary disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Info</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-info color-palette\"><span>#17a2b8</span></div>\n                  <div class=\"bg-info disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Success</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-success color-palette\"><span>#28a745</span></div>\n                  <div class=\"bg-success disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-warning\">Warning</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-warning color-palette\"><span>#ffc107</span></div>\n                  <div class=\"bg-warning disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Danger</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-danger color-palette\"><span>#dc3545</span></div>\n                  <div class=\"bg-danger disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n            <div class=\"col-12\">\n              <h5 class=\"mt-3\">Black/White Nuances</h5>\n            </div>\n            <!-- /.col-12 -->\n            <div class=\"row\">\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Black</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-black color-palette\"><span>#000000</span></div>\n                  <div class=\"bg-black disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Gray Dark</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-gray-dark color-palette\"><span>#343a40</span></div>\n                  <div class=\"bg-gray-dark disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center\">Gray</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-gray color-palette\"><span>#adb5bd</span></div>\n                  <div class=\"bg-gray disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-light\">Light</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-light color-palette\"><span>#1f2d3d</span></div>\n                  <div class=\"bg-light disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n            <div class=\"col-12\">\n              <h5 class=\"mt-3\">Colors</h5>\n            </div>\n            <!-- /.col-12 -->\n            <div class=\"row\">\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-indigo\">Indigo</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-indigo color-palette\"><span>#6610f2</span></div>\n                  <div class=\"bg-indigo disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-lightblue\">Lightblue</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-lightblue color-palette\"><span>#3c8dbc</span></div>\n                  <div class=\"bg-lightblue disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-navy\">Navy</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-navy color-palette\"><span>#001f3f</span></div>\n                  <div class=\"bg-navy disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-purple\">Purple</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-purple color-palette\"><span>#605ca8</span></div>\n                  <div class=\"bg-purple disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-fuchsia\">Fuchsia</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-fuchsia color-palette\"><span>#f012be</span></div>\n                  <div class=\"bg-fuchsia disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-pink\">Pink</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-pink color-palette\"><span>#e83e8c</span></div>\n                  <div class=\"bg-pink disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-maroon\">Maroon</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-maroon color-palette\"><span>#d81b60</span></div>\n                  <div class=\"bg-maroon disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-orange\">Orange</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-orange color-palette\"><span>#ff851b</span></div>\n                  <div class=\"bg-orange disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-lime\">Lime</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-lime color-palette\"><span>#01ff70</span></div>\n                  <div class=\"bg-lime disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-teal\">Teal</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-teal color-palette\"><span>#39cccc</span></div>\n                  <div class=\"bg-teal disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n              <div class=\"col-sm-4 col-md-2\">\n                <h4 class=\"text-center bg-olive\">Olive</h4>\n\n                <div class=\"color-palette-set\">\n                  <div class=\"bg-olive color-palette\"><span>#3d9970</span></div>\n                  <div class=\"bg-olive disabled color-palette\"><span>Disabled</span></div>\n                </div>\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n          </div>\n          <!-- /.card-body -->\n        </div>\n        <!-- /.card -->\n        <!-- START ALERTS AND CALLOUTS -->\n        <h5 class=\"mt-4 mb-2\">Alerts and Callouts</h5>\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card card-default\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-exclamation-triangle\"></i>\n                  Alerts\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"alert alert-danger alert-dismissible\">\n                  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>\n                  <h5><i class=\"icon fas fa-ban\"></i> Alert!</h5>\n                  Danger alert preview. This alert is dismissable. A wonderful serenity has taken possession of my\n                  entire\n                  soul, like these sweet mornings of spring which I enjoy with my whole heart.\n                </div>\n                <div class=\"alert alert-info alert-dismissible\">\n                  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>\n                  <h5><i class=\"icon fas fa-info\"></i> Alert!</h5>\n                  Info alert preview. This alert is dismissable.\n                </div>\n                <div class=\"alert alert-warning alert-dismissible\">\n                  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>\n                  <h5><i class=\"icon fas fa-exclamation-triangle\"></i> Alert!</h5>\n                  Warning alert preview. This alert is dismissable.\n                </div>\n                <div class=\"alert alert-success alert-dismissible\">\n                  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>\n                  <h5><i class=\"icon fas fa-check\"></i> Alert!</h5>\n                  Success alert preview. This alert is dismissable.\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-6\">\n            <div class=\"card card-default\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-bullhorn\"></i>\n                  Callouts\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"callout callout-danger\">\n                  <h5>I am a danger callout!</h5>\n\n                  <p>There is a problem that we need to fix. A wonderful serenity has taken possession of my entire\n                    soul,\n                    like these sweet mornings of spring which I enjoy with my whole heart.</p>\n                </div>\n                <div class=\"callout callout-info\">\n                  <h5>I am an info callout!</h5>\n\n                  <p>Follow the steps to continue to payment.</p>\n                </div>\n                <div class=\"callout callout-warning\">\n                  <h5>I am a warning callout!</h5>\n\n                  <p>This is a yellow callout.</p>\n                </div>\n                <div class=\"callout callout-success\">\n                  <h5>I am a success callout!</h5>\n\n                  <p>This is a green callout.</p>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n        <!-- END ALERTS AND CALLOUTS -->\n        <h5 class=\"mt-4 mb-2\">Tabs in Cards</h5>\n\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Custom Tabs -->\n            <div class=\"card\">\n              <div class=\"card-header d-flex p-0\">\n                <h3 class=\"card-title p-3\">Tabs</h3>\n                <ul class=\"nav nav-pills ml-auto p-2\">\n                  <li class=\"nav-item\"><a class=\"nav-link active\" href=\"#tab_1\" data-toggle=\"tab\">Tab 1</a></li>\n                  <li class=\"nav-item\"><a class=\"nav-link\" href=\"#tab_2\" data-toggle=\"tab\">Tab 2</a></li>\n                  <li class=\"nav-item\"><a class=\"nav-link\" href=\"#tab_3\" data-toggle=\"tab\">Tab 3</a></li>\n                  <li class=\"nav-item dropdown\">\n                    <a class=\"nav-link dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\">\n                      Dropdown <span class=\"caret\"></span>\n                    </a>\n                    <div class=\"dropdown-menu\">\n                      <a class=\"dropdown-item\" tabindex=\"-1\" href=\"#\">Action</a>\n                      <a class=\"dropdown-item\" tabindex=\"-1\" href=\"#\">Another action</a>\n                      <a class=\"dropdown-item\" tabindex=\"-1\" href=\"#\">Something else here</a>\n                      <div class=\"dropdown-divider\"></div>\n                      <a class=\"dropdown-item\" tabindex=\"-1\" href=\"#\">Separated link</a>\n                    </div>\n                  </li>\n                </ul>\n              </div><!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"tab-content\">\n                  <div class=\"tab-pane active\" id=\"tab_1\">\n                    A wonderful serenity has taken possession of my entire soul,\n                    like these sweet mornings of spring which I enjoy with my whole heart.\n                    I am alone, and feel the charm of existence in this spot,\n                    which was created for the bliss of souls like mine. I am so happy,\n                    my dear friend, so absorbed in the exquisite sense of mere tranquil existence,\n                    that I neglect my talents. I should be incapable of drawing a single stroke\n                    at the present moment; and yet I feel that I never was a greater artist than now.\n                  </div>\n                  <!-- /.tab-pane -->\n                  <div class=\"tab-pane\" id=\"tab_2\">\n                    The European languages are members of the same family. Their separate existence is a myth.\n                    For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ\n                    in their grammar, their pronunciation and their most common words. Everyone realizes why a\n                    new common language would be desirable: one could refuse to pay expensive translators. To\n                    achieve this, it would be necessary to have uniform grammar, pronunciation and more common\n                    words. If several languages coalesce, the grammar of the resulting language is more simple\n                    and regular than that of the individual languages.\n                  </div>\n                  <!-- /.tab-pane -->\n                  <div class=\"tab-pane\" id=\"tab_3\">\n                    Lorem Ipsum is simply dummy text of the printing and typesetting industry.\n                    Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,\n                    when an unknown printer took a galley of type and scrambled it to make a type specimen book.\n                    It has survived not only five centuries, but also the leap into electronic typesetting,\n                    remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset\n                    sheets containing Lorem Ipsum passages, and more recently with desktop publishing software\n                    like Aldus PageMaker including versions of Lorem Ipsum.\n                  </div>\n                  <!-- /.tab-pane -->\n                </div>\n                <!-- /.tab-content -->\n              </div><!-- /.card-body -->\n            </div>\n            <!-- ./card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n        <!-- END CUSTOM TABS -->\n        <!-- START PROGRESS BARS -->\n        <h5 class=\"mt-4 mb-2\">Progress Bars</h5>\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Progress Bars Different Sizes</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <p><code>.progress</code></p>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar bg-primary progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"40\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 40%\">\n                    <span class=\"sr-only\">40% Complete (success)</span>\n                  </div>\n                </div>\n                <p><code>.progress-sm</code></p>\n\n                <div class=\"progress progress-sm active\">\n                  <div class=\"progress-bar bg-success progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"20\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 20%\">\n                    <span class=\"sr-only\">20% Complete</span>\n                  </div>\n                </div>\n                <p><code>.progress-xs</code></p>\n\n                <div class=\"progress progress-xs\">\n                  <div class=\"progress-bar bg-warning progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"60\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 60%\">\n                    <span class=\"sr-only\">60% Complete (warning)</span>\n                  </div>\n                </div>\n                <p><code>.progress-xxs</code></p>\n\n                <div class=\"progress progress-xxs\">\n                  <div class=\"progress-bar progress-bar-danger progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"60\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 60%\">\n                    <span class=\"sr-only\">60% Complete (warning)</span>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col (left) -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Progress bars</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"progress mb-3\">\n                  <div class=\"progress-bar bg-success\" role=\"progressbar\" aria-valuenow=\"40\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"width: 40%\">\n                    <span class=\"sr-only\">40% Complete (success)</span>\n                  </div>\n                </div>\n                <div class=\"progress mb-3\">\n                  <div class=\"progress-bar bg-info\" role=\"progressbar\" aria-valuenow=\"20\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"width: 20%\">\n                    <span class=\"sr-only\">20% Complete</span>\n                  </div>\n                </div>\n                <div class=\"progress mb-3\">\n                  <div class=\"progress-bar bg-warning\" role=\"progressbar\" aria-valuenow=\"60\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"width: 60%\">\n                    <span class=\"sr-only\">60% Complete (warning)</span>\n                  </div>\n                </div>\n                <div class=\"progress mb-3\">\n                  <div class=\"progress-bar bg-danger\" role=\"progressbar\" aria-valuenow=\"80\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"width: 80%\">\n                    <span class=\"sr-only\">80% Complete</span>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col (right) -->\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Vertical Progress Bars Different Sizes</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body text-center\">\n                <p>By adding the class <code>.vertical</code> and <code>.progress-sm</code>, <code>.progress-xs</code>\n                  or\n                  <code>.progress-xxs</code> we achieve:</p>\n\n                <div class=\"progress vertical active\">\n                  <div class=\"progress-bar bg-primary progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"40\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"height: 40%\">\n                    <span class=\"sr-only\">40%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical progress-sm\">\n                  <div class=\"progress-bar bg-success\" role=\"progressbar\" aria-valuenow=\"20\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"height: 100%\">\n                    <span class=\"sr-only\">100%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical progress-xs\">\n                  <div class=\"progress-bar bg-warning progress-bar-striped\" role=\"progressbar\"\n                       aria-valuenow=\"60\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"height: 60%\">\n                    <span class=\"sr-only\">60%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical progress-xxs\">\n                  <div class=\"progress-bar bg-info progress-bar-striped\" role=\"progressbar\" aria-valuenow=\"60\"\n                       aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"height: 60%\">\n                    <span class=\"sr-only\">60%</span>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col (left) -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Vertical Progress bars</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body text-center\">\n                <p>By adding the class <code>.vertical</code> we achieve:</p>\n\n                <div class=\"progress vertical\">\n                  <div class=\"progress-bar bg-success\" role=\"progressbar\" aria-valuenow=\"40\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"height: 40%\">\n                    <span class=\"sr-only\">40%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical\">\n                  <div class=\"progress-bar bg-info\" role=\"progressbar\" aria-valuenow=\"20\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"height: 20%\">\n                    <span class=\"sr-only\">20%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical\">\n                  <div class=\"progress-bar bg-warning\" role=\"progressbar\" aria-valuenow=\"60\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"height: 60%\">\n                    <span class=\"sr-only\">60%</span>\n                  </div>\n                </div>\n                <div class=\"progress vertical\">\n                  <div class=\"progress-bar bg-danger\" role=\"progressbar\" aria-valuenow=\"80\" aria-valuemin=\"0\"\n                       aria-valuemax=\"100\" style=\"height: 80%\">\n                    <span class=\"sr-only\">80%</span>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col (right) -->\n        </div>\n        <!-- /.row -->\n        <!-- END PROGRESS BARS -->\n\n        <!-- START ACCORDION & CAROUSEL-->\n        <h5 class=\"mt-4 mb-2\">Bootstrap Accordion & Carousel</h5>\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Collapsible Accordion</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- we are adding the accordion ID so Bootstrap's collapse plugin detects it -->\n                <div id=\"accordion\">\n                  <div class=\"card card-primary\">\n                    <div class=\"card-header\">\n                      <h4 class=\"card-title w-100\">\n                        <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseOne\">\n                          Collapsible Group Item #1\n                        </a>\n                      </h4>\n                    </div>\n                    <div id=\"collapseOne\" class=\"collapse show\" data-parent=\"#accordion\">\n                      <div class=\"card-body\">\n                        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n                        3\n                        wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n                        laborum\n                        eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n                        nulla\n                        assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n                        beer\n                        farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n                        labore sustainable VHS.\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"card card-danger\">\n                    <div class=\"card-header\">\n                      <h4 class=\"card-title w-100\">\n                        <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseTwo\">\n                          Collapsible Group Danger\n                        </a>\n                      </h4>\n                    </div>\n                    <div id=\"collapseTwo\" class=\"collapse\" data-parent=\"#accordion\">\n                      <div class=\"card-body\">\n                        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n                        3\n                        wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n                        laborum\n                        eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n                        nulla\n                        assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n                        beer\n                        farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n                        labore sustainable VHS.\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"card card-success\">\n                    <div class=\"card-header\">\n                      <h4 class=\"card-title w-100\">\n                        <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseThree\">\n                          Collapsible Group Success\n                        </a>\n                      </h4>\n                    </div>\n                    <div id=\"collapseThree\" class=\"collapse\" data-parent=\"#accordion\">\n                      <div class=\"card-body\">\n                        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n                        3\n                        wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n                        laborum\n                        eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n                        nulla\n                        assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n                        nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n                        beer\n                        farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n                        labore sustainable VHS.\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Carousel</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div id=\"carouselExampleIndicators\" class=\"carousel slide\" data-ride=\"carousel\">\n                  <ol class=\"carousel-indicators\">\n                    <li data-target=\"#carouselExampleIndicators\" data-slide-to=\"0\" class=\"active\"></li>\n                    <li data-target=\"#carouselExampleIndicators\" data-slide-to=\"1\"></li>\n                    <li data-target=\"#carouselExampleIndicators\" data-slide-to=\"2\"></li>\n                  </ol>\n                  <div class=\"carousel-inner\">\n                    <div class=\"carousel-item active\">\n                      <img class=\"d-block w-100\" src=\"https://placehold.it/900x500/39CCCC/ffffff&text=I+Love+Bootstrap\" alt=\"First slide\">\n                    </div>\n                    <div class=\"carousel-item\">\n                      <img class=\"d-block w-100\" src=\"https://placehold.it/900x500/3c8dbc/ffffff&text=I+Love+Bootstrap\" alt=\"Second slide\">\n                    </div>\n                    <div class=\"carousel-item\">\n                      <img class=\"d-block w-100\" src=\"https://placehold.it/900x500/f39c12/ffffff&text=I+Love+Bootstrap\" alt=\"Third slide\">\n                    </div>\n                  </div>\n                  <a class=\"carousel-control-prev\" href=\"#carouselExampleIndicators\" role=\"button\" data-slide=\"prev\">\n                    <span class=\"carousel-control-custom-icon\" aria-hidden=\"true\">\n                      <i class=\"fas fa-chevron-left\"></i>\n                    </span>\n                    <span class=\"sr-only\">Previous</span>\n                  </a>\n                  <a class=\"carousel-control-next\" href=\"#carouselExampleIndicators\" role=\"button\" data-slide=\"next\">\n                    <span class=\"carousel-control-custom-icon\" aria-hidden=\"true\">\n                      <i class=\"fas fa-chevron-right\"></i>\n                    </span>\n                    <span class=\"sr-only\">Next</span>\n                  </a>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n        <!-- END ACCORDION & CAROUSEL-->\n\n        <!-- START TYPOGRAPHY -->\n        <h5 class=\"mt-4 mb-2\">Typography</h5>\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Headlines\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <h1>h1. Bootstrap heading</h1>\n\n                <h2>h2. Bootstrap heading</h2>\n\n                <h3>h3. Bootstrap heading</h3>\n                <h4>h4. Bootstrap heading</h4>\n                <h5>h5. Bootstrap heading</h5>\n                <h6>h6. Bootstrap heading</h6>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Text Emphasis\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <p class=\"lead\">Lead to emphasize importance</p>\n\n                <p class=\"text-success\">Text green to emphasize success</p>\n\n                <p class=\"text-info\">Text aqua to emphasize info</p>\n\n                <p class=\"text-primary\">Text light blue to emphasize info (2)</p>\n\n                <p class=\"text-danger\">Text red to emphasize danger</p>\n\n                <p class=\"text-warning\">Text yellow to emphasize warning</p>\n\n                <p class=\"text-muted\">Text muted to emphasize general</p>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Primary Block Quotes\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <blockquote>\n                  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                  <small>Someone famous in <cite title=\"Source Title\">Source Title</cite></small>\n                </blockquote>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Secondary Block Quotes\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body clearfix\">\n                <blockquote class=\"quote-secondary\">\n                  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>\n                  <small>Someone famous in <cite title=\"Source Title\">Source Title</cite></small>\n                </blockquote>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-4\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Unordered List\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <ul>\n                  <li>Lorem ipsum dolor sit amet</li>\n                  <li>Consectetur adipiscing elit</li>\n                  <li>Integer molestie lorem at massa</li>\n                  <li>Facilisis in pretium nisl aliquet</li>\n                  <li>Nulla volutpat aliquam velit\n                    <ul>\n                      <li>Phasellus iaculis neque</li>\n                      <li>Purus sodales ultricies</li>\n                      <li>Vestibulum laoreet porttitor sem</li>\n                      <li>Ac tristique libero volutpat at</li>\n                    </ul>\n                  </li>\n                  <li>Faucibus porta lacus fringilla vel</li>\n                  <li>Aenean sit amet erat nunc</li>\n                  <li>Eget porttitor lorem</li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n          <div class=\"col-md-4\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Ordered Lists\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <ol>\n                  <li>Lorem ipsum dolor sit amet</li>\n                  <li>Consectetur adipiscing elit</li>\n                  <li>Integer molestie lorem at massa</li>\n                  <li>Facilisis in pretium nisl aliquet</li>\n                  <li>Nulla volutpat aliquam velit\n                    <ol>\n                      <li>Phasellus iaculis neque</li>\n                      <li>Purus sodales ultricies</li>\n                      <li>Vestibulum laoreet porttitor sem</li>\n                      <li>Ac tristique libero volutpat at</li>\n                    </ol>\n                  </li>\n                  <li>Faucibus porta lacus fringilla vel</li>\n                  <li>Aenean sit amet erat nunc</li>\n                  <li>Eget porttitor lorem</li>\n                </ol>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n          <div class=\"col-md-4\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Unstyled List\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <ul class=\"list-unstyled\">\n                  <li>Lorem ipsum dolor sit amet</li>\n                  <li>Consectetur adipiscing elit</li>\n                  <li>Integer molestie lorem at massa</li>\n                  <li>Facilisis in pretium nisl aliquet</li>\n                  <li>Nulla volutpat aliquam velit\n                    <ul>\n                      <li>Phasellus iaculis neque</li>\n                      <li>Purus sodales ultricies</li>\n                      <li>Vestibulum laoreet porttitor sem</li>\n                      <li>Ac tristique libero volutpat at</li>\n                    </ul>\n                  </li>\n                  <li>Faucibus porta lacus fringilla vel</li>\n                  <li>Aenean sit amet erat nunc</li>\n                  <li>Eget porttitor lorem</li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Description\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <dl>\n                  <dt>Description lists</dt>\n                  <dd>A description list is perfect for defining terms.</dd>\n                  <dt>Euismod</dt>\n                  <dd>Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.</dd>\n                  <dd>Donec id elit non mi porta gravida at eget metus.</dd>\n                  <dt>Malesuada porta</dt>\n                  <dd>Etiam porta sem malesuada magna mollis euismod.</dd>\n                </dl>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-text-width\"></i>\n                  Description Horizontal\n                </h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <dl class=\"row\">\n                  <dt class=\"col-sm-4\">Description lists</dt>\n                  <dd class=\"col-sm-8\">A description list is perfect for defining terms.</dd>\n                  <dt class=\"col-sm-4\">Euismod</dt>\n                  <dd class=\"col-sm-8\">Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.</dd>\n                  <dd class=\"col-sm-8 offset-sm-4\">Donec id elit non mi porta gravida at eget metus.</dd>\n                  <dt class=\"col-sm-4\">Malesuada porta</dt>\n                  <dd class=\"col-sm-8\">Etiam porta sem malesuada magna mollis euismod.</dd>\n                  <dt class=\"col-sm-4\">Felis euismod semper eget lacinia</dt>\n                  <dd class=\"col-sm-8\">Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo\n                    sit amet risus.\n                  </dd>\n                </dl>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Pagination Month</h3>\n              </div>\n              <div class=\"card-body\">\n                <ul class=\"pagination pagination-month justify-content-center\">\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">«</a></li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Jan</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item active\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Feb</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Mar</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Apr</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">May</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Jun</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Jul</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Aug</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Sep</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Oct</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Nov</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\">\n                      <a class=\"page-link\" href=\"#\">\n                          <p class=\"page-month\">Dec</p>\n                          <p class=\"page-year\">2021</p>\n                      </a>\n                  </li>\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">»</a></li>\n                </ul>\n              </div>\n            </div>\n          </div>\n        </div>\n        <!-- /.row -->\n        <!-- END TYPOGRAPHY -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/icons.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Icons</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Icons</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Icons</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"card card-primary card-outline\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Icons</h3>\n          </div> <!-- /.card-body -->\n          <div class=\"card-body\">\n            <p>You can use any font library you like with AdminLTE 3.</p>\n            <strong>Recommendations</strong>\n            <div>\n              <a href=\"https://fontawesome.com/\">Font Awesome</a><br>\n              <a href=\"https://useiconic.com/open/\">Iconic Icons</a><br>\n              <a href=\"https://ionicons.com/\">Ion Icons</a><br>\n            </div>\n          </div><!-- /.card-body -->\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/modals.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Modals & Alerts</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- SweetAlert2 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.min.css\">\n  <!-- Toastr -->\n  <link rel=\"stylesheet\" href=\"../../plugins/toastr/toastr.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>\n              Modals & Alerts\n              <small>new</small>\n            </h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Modals & Alerts</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Modal Examples\n                </h3>\n              </div>\n              <div class=\"card-body\">\n                <button type=\"button\" class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modal-default\">\n                  Launch Default Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\"#modal-primary\">\n                  Launch Primary Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-secondary\" data-toggle=\"modal\" data-target=\"#modal-secondary\">\n                  Launch Secondary Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-info\" data-toggle=\"modal\" data-target=\"#modal-info\">\n                  Launch Info Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-danger\" data-toggle=\"modal\" data-target=\"#modal-danger\">\n                  Launch Danger Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-warning\" data-toggle=\"modal\" data-target=\"#modal-warning\">\n                  Launch Warning Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-success\" data-toggle=\"modal\" data-target=\"#modal-success\">\n                  Launch Success Modal\n                </button>\n                <br />\n                <br />\n                <button type=\"button\" class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modal-sm\">\n                  Launch Small Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modal-lg\">\n                  Launch Large Modal\n                </button>\n                <button type=\"button\" class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modal-xl\">\n                  Launch Extra Large Modal\n                </button>\n                <br />\n                <br />\n                <button type=\"button\" class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modal-overlay\">\n                  Launch Modal with Overlay\n                </button>\n                <div class=\"text-muted mt-3\">\n                  Instructions for how to use modals are available on the\n                  <a href=\"https://getbootstrap.com/docs/4.4/components/modal/\">Bootstrap documentation</a>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n\n            <div class=\"card card-info card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Toasts Examples <small>built in AdminLTE</small>\n                </h3>\n              </div>\n              <div class=\"card-body\">\n                <button type=\"button\" class=\"btn btn-default toastsDefaultDefault\">\n                  Launch Default Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultFull\">\n                  Launch Full Toast (with icon)\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultFullImage\">\n                  Launch Full Toast (with image)\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultAutohide\">\n                  Launch Default Toasts with autohide\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultNotFixed\">\n                  Launch Default Toasts with not fixed\n                </button>\n                <br />\n                <br />\n                <button type=\"button\" class=\"btn btn-default toastsDefaultTopLeft\">\n                  Launch Default Toast (topLeft)\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultBottomRight\">\n                  Launch Default Toast (bottomRight)\n                </button>\n                <button type=\"button\" class=\"btn btn-default toastsDefaultBottomLeft\">\n                  Launch Default Toast (bottomLeft)\n                </button>\n                <br />\n                <br />\n                <button type=\"button\" class=\"btn btn-success toastsDefaultSuccess\">\n                  Launch Success Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-info toastsDefaultInfo\">\n                  Launch Info Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-warning toastsDefaultWarning\">\n                  Launch Warning Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-danger toastsDefaultDanger\">\n                  Launch Danger Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-default bg-maroon toastsDefaultMaroon\">\n                  Launch Maroon Toast\n                </button>\n                <div class=\"text-muted mt-3\">\n\n                </div>\n              </div>\n            </div>\n\n            <div class=\"card card-success card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  SweetAlert2 Examples\n                </h3>\n              </div>\n              <div class=\"card-body\">\n                <button type=\"button\" class=\"btn btn-success swalDefaultSuccess\">\n                  Launch Success Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-info swalDefaultInfo\">\n                  Launch Info Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-danger swalDefaultError\">\n                  Launch Error Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-warning swalDefaultWarning\">\n                  Launch Warning Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-default swalDefaultQuestion\">\n                  Launch Question Toast\n                </button>\n                <div class=\"text-muted mt-3\">\n                  For more examples look at <a href=\"https://sweetalert2.github.io/\">https://sweetalert2.github.io/</a>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n\n            <div class=\"card card-warning card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Toastr Examples\n                </h3>\n              </div>\n              <div class=\"card-body\">\n                <button type=\"button\" class=\"btn btn-success toastrDefaultSuccess\">\n                  Launch Success Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-info toastrDefaultInfo\">\n                  Launch Info Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-danger toastrDefaultError\">\n                  Launch Error Toast\n                </button>\n                <button type=\"button\" class=\"btn btn-warning toastrDefaultWarning\">\n                  Launch Warning Toast\n                </button>\n                <div class=\"text-muted mt-3\">\n                  For more examples look at <a href=\"https://codeseven.github.io/toastr/\">https://codeseven.github.io/toastr/</a>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- ./row -->\n      </div><!-- /.container-fluid -->\n\n      <div class=\"modal fade\" id=\"modal-default\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Default Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-primary\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-overlay\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content\">\n            <div class=\"overlay\">\n                <i class=\"fas fa-2x fa-sync fa-spin\"></i>\n            </div>\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Default Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-primary\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-primary\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-primary\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Primary Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-light\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-light\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-secondary\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-secondary\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Secondary Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-light\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-light\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-info\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-info\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Info Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-light\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-light\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-warning\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-warning\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Warning Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-dark\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-dark\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-success\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-success\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Success Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-light\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-light\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-danger\">\n        <div class=\"modal-dialog\">\n          <div class=\"modal-content bg-danger\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Danger Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-outline-light\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-outline-light\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-sm\">\n        <div class=\"modal-dialog modal-sm\">\n          <div class=\"modal-content\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Small Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-primary\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-lg\">\n        <div class=\"modal-dialog modal-lg\">\n          <div class=\"modal-content\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Large Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-primary\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n      <div class=\"modal fade\" id=\"modal-xl\">\n        <div class=\"modal-dialog modal-xl\">\n          <div class=\"modal-content\">\n            <div class=\"modal-header\">\n              <h4 class=\"modal-title\">Extra Large Modal</h4>\n              <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                <span aria-hidden=\"true\">&times;</span>\n              </button>\n            </div>\n            <div class=\"modal-body\">\n              <p>One fine body&hellip;</p>\n            </div>\n            <div class=\"modal-footer justify-content-between\">\n              <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\n              <button type=\"button\" class=\"btn btn-primary\">Save changes</button>\n            </div>\n          </div>\n          <!-- /.modal-content -->\n        </div>\n        <!-- /.modal-dialog -->\n      </div>\n      <!-- /.modal -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- SweetAlert2 -->\n<script src=\"../../plugins/sweetalert2/sweetalert2.min.js\"></script>\n<!-- Toastr -->\n<script src=\"../../plugins/toastr/toastr.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function() {\n    var Toast = Swal.mixin({\n      toast: true,\n      position: 'top-end',\n      showConfirmButton: false,\n      timer: 3000\n    });\n\n    $('.swalDefaultSuccess').click(function() {\n      Toast.fire({\n        icon: 'success',\n        title: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.swalDefaultInfo').click(function() {\n      Toast.fire({\n        icon: 'info',\n        title: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.swalDefaultError').click(function() {\n      Toast.fire({\n        icon: 'error',\n        title: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.swalDefaultWarning').click(function() {\n      Toast.fire({\n        icon: 'warning',\n        title: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.swalDefaultQuestion').click(function() {\n      Toast.fire({\n        icon: 'question',\n        title: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n\n    $('.toastrDefaultSuccess').click(function() {\n      toastr.success('Lorem ipsum dolor sit amet, consetetur sadipscing elitr.')\n    });\n    $('.toastrDefaultInfo').click(function() {\n      toastr.info('Lorem ipsum dolor sit amet, consetetur sadipscing elitr.')\n    });\n    $('.toastrDefaultError').click(function() {\n      toastr.error('Lorem ipsum dolor sit amet, consetetur sadipscing elitr.')\n    });\n    $('.toastrDefaultWarning').click(function() {\n      toastr.warning('Lorem ipsum dolor sit amet, consetetur sadipscing elitr.')\n    });\n\n    $('.toastsDefaultDefault').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultTopLeft').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        position: 'topLeft',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultBottomRight').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        position: 'bottomRight',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultBottomLeft').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        position: 'bottomLeft',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultAutohide').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        autohide: true,\n        delay: 750,\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultNotFixed').click(function() {\n      $(document).Toasts('create', {\n        title: 'Toast Title',\n        fixed: false,\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultFull').click(function() {\n      $(document).Toasts('create', {\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        icon: 'fas fa-envelope fa-lg',\n      })\n    });\n    $('.toastsDefaultFullImage').click(function() {\n      $(document).Toasts('create', {\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        image: '../../dist/img/user3-128x128.jpg',\n        imageAlt: 'User Picture',\n      })\n    });\n    $('.toastsDefaultSuccess').click(function() {\n      $(document).Toasts('create', {\n        class: 'bg-success',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultInfo').click(function() {\n      $(document).Toasts('create', {\n        class: 'bg-info',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultWarning').click(function() {\n      $(document).Toasts('create', {\n        class: 'bg-warning',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultDanger').click(function() {\n      $(document).Toasts('create', {\n        class: 'bg-danger',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n    $('.toastsDefaultMaroon').click(function() {\n      $(document).Toasts('create', {\n        class: 'bg-maroon',\n        title: 'Toast Title',\n        subtitle: 'Subtitle',\n        body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.'\n      })\n    });\n  });\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/navbar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Navbar & Tabs</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- SweetAlert2 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/sweetalert2/sweetalert2.min.css\">\n  <!-- Toastr -->\n  <link rel=\"stylesheet\" href=\"../../plugins/toastr/toastr.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#main-header-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\" id=\"main-header-search\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can\n\n                </p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>\n              Navbar & Tabs\n              <small>new</small>\n            </h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Navbar & Tabs</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"fas fa-edit\"></i>\n                  Navbar Examples\n                </h3>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-12 col-lg-6\">\n                    <h4>Default Navbar <small>(navbar-light)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-light\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search1\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search1\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                  <div class=\"col-12 col-lg-6\">\n                    <h4>Default Navbar <small>(navbar-white navbar-light)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-white navbar-light\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search2\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search2\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                </div>\n                <div class=\"row\">\n                  <div class=\"col-12 col-lg-6\">\n                    <h4 class=\"mt-4\">Primary Navbar <small><b>recommended</b> (navbar-primary navbar-dark)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-primary navbar-dark\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search3\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search3\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                  <div class=\"col-12 col-lg-6\">\n                    <h4 class=\"mt-4\">Primary Navbar <small>(navbar-primary navbar-light)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-primary navbar-light\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search4\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search4\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                </div>\n                <div class=\"row\">\n                  <div class=\"col-12 col-lg-6\">\n                    <h4 class=\"mt-4\">Orange Navbar <small><b>recommended</b> (navbar-orange navbar-light)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-orange navbar-light\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search5\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search5\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                  <div class=\"col-12 col-lg-6\">\n                    <h4 class=\"mt-4\">Orange Navbar <small>(navbar-orange navbar-dark)</small></h4>\n                    <nav class=\"navbar navbar-expand navbar-orange navbar-dark\">\n                      <!-- Left navbar links -->\n                      <ul class=\"navbar-nav\">\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n                        </li>\n                        <li class=\"nav-item d-none d-sm-inline-block\">\n                          <a href=\"#\" class=\"nav-link\">Contact</a>\n                        </li>\n                      </ul>\n\n                      <!-- Right navbar links -->\n                      <ul class=\"navbar-nav ml-auto\">\n                        <!-- Navbar Search -->\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"navbar-search\" data-target=\"#navbar-search6\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-search\"></i>\n                          </a>\n                          <div class=\"navbar-search-block\" id=\"navbar-search6\">\n                            <form class=\"form-inline\">\n                              <div class=\"input-group input-group-sm\">\n                                <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n                                <div class=\"input-group-append\">\n                                  <button class=\"btn btn-navbar\" type=\"submit\">\n                                    <i class=\"fas fa-search\"></i>\n                                  </button>\n                                  <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                                    <i class=\"fas fa-times\"></i>\n                                  </button>\n                                </div>\n                              </div>\n                            </form>\n                          </div>\n                        </li>\n\n                        <!-- Messages Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-comments\"></i>\n                            <span class=\"badge badge-danger navbar-badge\">3</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Brad Diesel\n                                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">Call me whenever you can\n\n                                  </p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    John Pierce\n                                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">I got your message bro</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <!-- Message Start -->\n                              <div class=\"media\">\n                                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                                <div class=\"media-body\">\n                                  <h3 class=\"dropdown-item-title\">\n                                    Nora Silvester\n                                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                                  </h3>\n                                  <p class=\"text-sm\">The subject goes here</p>\n                                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                                </div>\n                              </div>\n                              <!-- Message End -->\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n                          </div>\n                        </li>\n                        <!-- Notifications Dropdown Menu -->\n                        <li class=\"nav-item dropdown\">\n                          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n                            <i class=\"far fa-bell\"></i>\n                            <span class=\"badge badge-warning navbar-badge\">15</span>\n                          </a>\n                          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n                            <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n                              <span class=\"float-right text-muted text-sm\">3 mins</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n                              <span class=\"float-right text-muted text-sm\">12 hours</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item\">\n                              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n                              <span class=\"float-right text-muted text-sm\">2 days</span>\n                            </a>\n                            <div class=\"dropdown-divider\"></div>\n                            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n                          </div>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-expand-arrows-alt\"></i>\n                          </a>\n                        </li>\n                        <li class=\"nav-item\">\n                          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n                            <i class=\"fas fa-th-large\"></i>\n                          </a>\n                        </li>\n                      </ul>\n                    </nav>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- ./row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <h4>Nav Tabs inside Card Header <small>card-tabs / card-outline-tabs</small></h4>\n          </div>\n        </div>\n        <!-- ./row -->\n        <div class=\"row\">\n          <div class=\"col-12 col-sm-6\">\n            <div class=\"card card-primary card-tabs\">\n              <div class=\"card-header p-0 pt-1\">\n                <ul class=\"nav nav-tabs\" id=\"custom-tabs-one-tab\" role=\"tablist\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link active\" id=\"custom-tabs-one-home-tab\" data-toggle=\"pill\" href=\"#custom-tabs-one-home\" role=\"tab\" aria-controls=\"custom-tabs-one-home\" aria-selected=\"true\">Home</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-one-profile-tab\" data-toggle=\"pill\" href=\"#custom-tabs-one-profile\" role=\"tab\" aria-controls=\"custom-tabs-one-profile\" aria-selected=\"false\">Profile</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-one-messages-tab\" data-toggle=\"pill\" href=\"#custom-tabs-one-messages\" role=\"tab\" aria-controls=\"custom-tabs-one-messages\" aria-selected=\"false\">Messages</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-one-settings-tab\" data-toggle=\"pill\" href=\"#custom-tabs-one-settings\" role=\"tab\" aria-controls=\"custom-tabs-one-settings\" aria-selected=\"false\">Settings</a>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"tab-content\" id=\"custom-tabs-one-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"custom-tabs-one-home\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-one-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-one-profile\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-one-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-one-messages\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-one-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-one-settings\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-one-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <div class=\"col-12 col-sm-6\">\n            <div class=\"card card-primary card-tabs\">\n              <div class=\"card-header p-0 pt-1\">\n                <ul class=\"nav nav-tabs\" id=\"custom-tabs-two-tab\" role=\"tablist\">\n                  <li class=\"pt-2 px-3\"><h3 class=\"card-title\">Card Title</h3></li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link active\" id=\"custom-tabs-two-home-tab\" data-toggle=\"pill\" href=\"#custom-tabs-two-home\" role=\"tab\" aria-controls=\"custom-tabs-two-home\" aria-selected=\"true\">Home</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-two-profile-tab\" data-toggle=\"pill\" href=\"#custom-tabs-two-profile\" role=\"tab\" aria-controls=\"custom-tabs-two-profile\" aria-selected=\"false\">Profile</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-two-messages-tab\" data-toggle=\"pill\" href=\"#custom-tabs-two-messages\" role=\"tab\" aria-controls=\"custom-tabs-two-messages\" aria-selected=\"false\">Messages</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-two-settings-tab\" data-toggle=\"pill\" href=\"#custom-tabs-two-settings\" role=\"tab\" aria-controls=\"custom-tabs-two-settings\" aria-selected=\"false\">Settings</a>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"tab-content\" id=\"custom-tabs-two-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"custom-tabs-two-home\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-two-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-two-profile\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-two-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-two-messages\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-two-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-two-settings\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-two-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12 col-sm-6\">\n            <div class=\"card card-primary card-outline card-tabs\">\n              <div class=\"card-header p-0 pt-1 border-bottom-0\">\n                <ul class=\"nav nav-tabs\" id=\"custom-tabs-three-tab\" role=\"tablist\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link active\" id=\"custom-tabs-three-home-tab\" data-toggle=\"pill\" href=\"#custom-tabs-three-home\" role=\"tab\" aria-controls=\"custom-tabs-three-home\" aria-selected=\"true\">Home</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-three-profile-tab\" data-toggle=\"pill\" href=\"#custom-tabs-three-profile\" role=\"tab\" aria-controls=\"custom-tabs-three-profile\" aria-selected=\"false\">Profile</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-three-messages-tab\" data-toggle=\"pill\" href=\"#custom-tabs-three-messages\" role=\"tab\" aria-controls=\"custom-tabs-three-messages\" aria-selected=\"false\">Messages</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-three-settings-tab\" data-toggle=\"pill\" href=\"#custom-tabs-three-settings\" role=\"tab\" aria-controls=\"custom-tabs-three-settings\" aria-selected=\"false\">Settings</a>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"tab-content\" id=\"custom-tabs-three-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"custom-tabs-three-home\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-three-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-three-profile\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-three-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-three-messages\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-three-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-three-settings\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-three-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n          <div class=\"col-12 col-sm-6\">\n            <div class=\"card card-primary card-outline card-outline-tabs\">\n              <div class=\"card-header p-0 border-bottom-0\">\n                <ul class=\"nav nav-tabs\" id=\"custom-tabs-four-tab\" role=\"tablist\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link active\" id=\"custom-tabs-four-home-tab\" data-toggle=\"pill\" href=\"#custom-tabs-four-home\" role=\"tab\" aria-controls=\"custom-tabs-four-home\" aria-selected=\"true\">Home</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-four-profile-tab\" data-toggle=\"pill\" href=\"#custom-tabs-four-profile\" role=\"tab\" aria-controls=\"custom-tabs-four-profile\" aria-selected=\"false\">Profile</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-four-messages-tab\" data-toggle=\"pill\" href=\"#custom-tabs-four-messages\" role=\"tab\" aria-controls=\"custom-tabs-four-messages\" aria-selected=\"false\">Messages</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-four-settings-tab\" data-toggle=\"pill\" href=\"#custom-tabs-four-settings\" role=\"tab\" aria-controls=\"custom-tabs-four-settings\" aria-selected=\"false\">Settings</a>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"tab-content\" id=\"custom-tabs-four-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"custom-tabs-four-home\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-four-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-four-profile\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-four-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-four-messages\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-four-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-four-settings\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-four-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <h4>Nav Tabs Overlay for loading</h4>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-primary card-tabs\">\n              <div class=\"card-header p-0 pt-1\">\n                <ul class=\"nav nav-tabs\" id=\"custom-tabs-five-tab\" role=\"tablist\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link active\" id=\"custom-tabs-five-overlay-tab\" data-toggle=\"pill\" href=\"#custom-tabs-five-overlay\" role=\"tab\" aria-controls=\"custom-tabs-five-overlay\" aria-selected=\"true\">Overlay</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-five-overlay-dark-tab\" data-toggle=\"pill\" href=\"#custom-tabs-five-overlay-dark\" role=\"tab\" aria-controls=\"custom-tabs-five-overlay-dark\" aria-selected=\"false\">Overlay Dark</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" id=\"custom-tabs-five-normal-tab\" data-toggle=\"pill\" href=\"#custom-tabs-five-normal\" role=\"tab\" aria-controls=\"custom-tabs-five-normal\" aria-selected=\"false\">Normal Tab</a>\n                  </li>\n                </ul>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"tab-content\" id=\"custom-tabs-five-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"custom-tabs-five-overlay\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-five-overlay-tab\">\n                    <div class=\"overlay-wrapper\">\n                      <div class=\"overlay\"><i class=\"fas fa-3x fa-sync-alt fa-spin\"></i><div class=\"text-bold pt-2\">Loading...</div></div>\n                      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                    </div>\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-five-overlay-dark\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-five-overlay-dark-tab\">\n                    <div class=\"overlay-wrapper\">\n                      <div class=\"overlay dark\"><i class=\"fas fa-3x fa-sync-alt fa-spin\"></i><div class=\"text-bold pt-2\">Loading...</div></div>\n                      Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                    </div>\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"custom-tabs-five-normal\" role=\"tabpanel\" aria-labelledby=\"custom-tabs-five-normal-tab\">\n                    Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                </div>\n              </div>\n              <!-- /.card -->\n            </div>\n          </div>\n        </div>\n        <!-- /.row -->\n        <div class=\"card card-primary card-outline\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              <i class=\"fas fa-edit\"></i>\n              Vertical Tabs Examples\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <h4>Left Sided</h4>\n            <div class=\"row\">\n              <div class=\"col-5 col-sm-3\">\n                <div class=\"nav flex-column nav-tabs h-100\" id=\"vert-tabs-tab\" role=\"tablist\" aria-orientation=\"vertical\">\n                  <a class=\"nav-link active\" id=\"vert-tabs-home-tab\" data-toggle=\"pill\" href=\"#vert-tabs-home\" role=\"tab\" aria-controls=\"vert-tabs-home\" aria-selected=\"true\">Home</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-profile-tab\" data-toggle=\"pill\" href=\"#vert-tabs-profile\" role=\"tab\" aria-controls=\"vert-tabs-profile\" aria-selected=\"false\">Profile</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-messages-tab\" data-toggle=\"pill\" href=\"#vert-tabs-messages\" role=\"tab\" aria-controls=\"vert-tabs-messages\" aria-selected=\"false\">Messages</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-settings-tab\" data-toggle=\"pill\" href=\"#vert-tabs-settings\" role=\"tab\" aria-controls=\"vert-tabs-settings\" aria-selected=\"false\">Settings</a>\n                </div>\n              </div>\n              <div class=\"col-7 col-sm-9\">\n                <div class=\"tab-content\" id=\"vert-tabs-tabContent\">\n                  <div class=\"tab-pane text-left fade show active\" id=\"vert-tabs-home\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-profile\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-messages\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-settings\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n            </div>\n            <h4 class=\"mt-4\">Right Sided <small>(nav-tabs-right)</small></h4>\n            <div class=\"row\">\n              <div class=\"col-7 col-sm-9\">\n                <div class=\"tab-content\" id=\"vert-tabs-right-tabContent\">\n                  <div class=\"tab-pane fade show active\" id=\"vert-tabs-right-home\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-right-home-tab\">\n                     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-right-profile\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-right-profile-tab\">\n                     Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-right-messages\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-right-messages-tab\">\n                     Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n                  </div>\n                  <div class=\"tab-pane fade\" id=\"vert-tabs-right-settings\" role=\"tabpanel\" aria-labelledby=\"vert-tabs-right-settings-tab\">\n                     Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n                  </div>\n                </div>\n              </div>\n              <div class=\"col-5 col-sm-3\">\n                <div class=\"nav flex-column nav-tabs nav-tabs-right h-100\" id=\"vert-tabs-right-tab\" role=\"tablist\" aria-orientation=\"vertical\">\n                  <a class=\"nav-link active\" id=\"vert-tabs-right-home-tab\" data-toggle=\"pill\" href=\"#vert-tabs-right-home\" role=\"tab\" aria-controls=\"vert-tabs-right-home\" aria-selected=\"true\">Home</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-right-profile-tab\" data-toggle=\"pill\" href=\"#vert-tabs-right-profile\" role=\"tab\" aria-controls=\"vert-tabs-right-profile\" aria-selected=\"false\">Profile</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-right-messages-tab\" data-toggle=\"pill\" href=\"#vert-tabs-right-messages\" role=\"tab\" aria-controls=\"vert-tabs-right-messages\" aria-selected=\"false\">Messages</a>\n                  <a class=\"nav-link\" id=\"vert-tabs-right-settings-tab\" data-toggle=\"pill\" href=\"#vert-tabs-right-settings\" role=\"tab\" aria-controls=\"vert-tabs-right-settings\" aria-selected=\"false\">Settings</a>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- /.card -->\n        </div>\n        <!-- /.card -->\n        <div class=\"card card-primary card-outline\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              <i class=\"fas fa-edit\"></i>\n              Tabs Custom Content Examples\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <h4>Custom Content Below</h4>\n            <ul class=\"nav nav-tabs\" id=\"custom-content-below-tab\" role=\"tablist\">\n              <li class=\"nav-item\">\n                <a class=\"nav-link active\" id=\"custom-content-below-home-tab\" data-toggle=\"pill\" href=\"#custom-content-below-home\" role=\"tab\" aria-controls=\"custom-content-below-home\" aria-selected=\"true\">Home</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-below-profile-tab\" data-toggle=\"pill\" href=\"#custom-content-below-profile\" role=\"tab\" aria-controls=\"custom-content-below-profile\" aria-selected=\"false\">Profile</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-below-messages-tab\" data-toggle=\"pill\" href=\"#custom-content-below-messages\" role=\"tab\" aria-controls=\"custom-content-below-messages\" aria-selected=\"false\">Messages</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-below-settings-tab\" data-toggle=\"pill\" href=\"#custom-content-below-settings\" role=\"tab\" aria-controls=\"custom-content-below-settings\" aria-selected=\"false\">Settings</a>\n              </li>\n            </ul>\n            <div class=\"tab-content\" id=\"custom-content-below-tabContent\">\n              <div class=\"tab-pane fade show active\" id=\"custom-content-below-home\" role=\"tabpanel\" aria-labelledby=\"custom-content-below-home-tab\">\n                 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-below-profile\" role=\"tabpanel\" aria-labelledby=\"custom-content-below-profile-tab\">\n                 Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-below-messages\" role=\"tabpanel\" aria-labelledby=\"custom-content-below-messages-tab\">\n                 Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-below-settings\" role=\"tabpanel\" aria-labelledby=\"custom-content-below-settings-tab\">\n                 Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n              </div>\n            </div>\n            <div class=\"tab-custom-content\">\n              <p class=\"lead mb-0\">Custom Content goes here</p>\n            </div>\n            <h4 class=\"mt-5 \">Custom Content Above</h4>\n            <ul class=\"nav nav-tabs\" id=\"custom-content-above-tab\" role=\"tablist\">\n              <li class=\"nav-item\">\n                <a class=\"nav-link active\" id=\"custom-content-above-home-tab\" data-toggle=\"pill\" href=\"#custom-content-above-home\" role=\"tab\" aria-controls=\"custom-content-above-home\" aria-selected=\"true\">Home</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-above-profile-tab\" data-toggle=\"pill\" href=\"#custom-content-above-profile\" role=\"tab\" aria-controls=\"custom-content-above-profile\" aria-selected=\"false\">Profile</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-above-messages-tab\" data-toggle=\"pill\" href=\"#custom-content-above-messages\" role=\"tab\" aria-controls=\"custom-content-above-messages\" aria-selected=\"false\">Messages</a>\n              </li>\n              <li class=\"nav-item\">\n                <a class=\"nav-link\" id=\"custom-content-above-settings-tab\" data-toggle=\"pill\" href=\"#custom-content-above-settings\" role=\"tab\" aria-controls=\"custom-content-above-settings\" aria-selected=\"false\">Settings</a>\n              </li>\n            </ul>\n            <div class=\"tab-custom-content\">\n              <p class=\"lead mb-0\">Custom Content goes here</p>\n            </div>\n            <div class=\"tab-content\" id=\"custom-content-above-tabContent\">\n              <div class=\"tab-pane fade show active\" id=\"custom-content-above-home\" role=\"tabpanel\" aria-labelledby=\"custom-content-above-home-tab\">\n                 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin malesuada lacus ullamcorper dui molestie, sit amet congue quam finibus. Etiam ultricies nunc non magna feugiat commodo. Etiam odio magna, mollis auctor felis vitae, ullamcorper ornare ligula. Proin pellentesque tincidunt nisi, vitae ullamcorper felis aliquam id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin id orci eu lectus blandit suscipit. Phasellus porta, ante et varius ornare, sem enim sollicitudin eros, at commodo leo est vitae lacus. Etiam ut porta sem. Proin porttitor porta nisl, id tempor risus rhoncus quis. In in quam a nibh cursus pulvinar non consequat neque. Mauris lacus elit, condimentum ac condimentum at, semper vitae lectus. Cras lacinia erat eget sapien porta consectetur.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-above-profile\" role=\"tabpanel\" aria-labelledby=\"custom-content-above-profile-tab\">\n                 Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-above-messages\" role=\"tabpanel\" aria-labelledby=\"custom-content-above-messages-tab\">\n                 Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna.\n              </div>\n              <div class=\"tab-pane fade\" id=\"custom-content-above-settings\" role=\"tabpanel\" aria-labelledby=\"custom-content-above-settings-tab\">\n                 Pellentesque vestibulum commodo nibh nec blandit. Maecenas neque magna, iaculis tempus turpis ac, ornare sodales tellus. Mauris eget blandit dolor. Quisque tincidunt venenatis vulputate. Morbi euismod molestie tristique. Vestibulum consectetur dolor a vestibulum pharetra. Donec interdum placerat urna nec pharetra. Etiam eget dapibus orci, eget aliquet urna. Nunc at consequat diam. Nunc et felis ut nisl commodo dignissim. In hac habitasse platea dictumst. Praesent imperdiet accumsan ex sit amet facilisis.\n              </div>\n            </div>\n          </div>\n          <!-- /.card -->\n        </div>\n        <!-- /.card -->\n      </div>\n      <!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/ribbons.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | UI Ribbons</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               <br /> with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Ribbons</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Ribbons</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Ribbons</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper\">\n                        <div class=\"ribbon bg-primary\">\n                          Ribbon\n                        </div>\n                      </div>\n                      Ribbon Default <br />\n                      <small>.ribbon-wrapper.ribbon-lg .ribbon</small>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper ribbon-lg\">\n                        <div class=\"ribbon bg-info\">\n                          Ribbon Large\n                        </div>\n                      </div>\n                      Ribbon Large <br />\n                      <small>.ribbon-wrapper.ribbon-lg .ribbon</small>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper ribbon-xl\">\n                        <div class=\"ribbon bg-secondary\">\n                          Ribbon Extra Large\n                        </div>\n                      </div>\n                      Ribbon Extra Large <br />\n                      <small>.ribbon-wrapper.ribbon-xl .ribbon</small>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"row mt-4\">\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper ribbon-lg\">\n                        <div class=\"ribbon bg-success text-lg\">\n                          Ribbon\n                        </div>\n                      </div>\n                      Ribbon Large <br /> with Large Text <br />\n                      <small>.ribbon-wrapper.ribbon-lg .ribbon.text-lg</small>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper ribbon-xl\">\n                        <div class=\"ribbon bg-warning text-lg\">\n                          Ribbon\n                        </div>\n                      </div>\n                      Ribbon Extra Large <br /> with Large Text <br />\n                      <small>.ribbon-wrapper.ribbon-xl .ribbon.text-lg</small>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative p-3 bg-gray\" style=\"height: 180px\">\n                      <div class=\"ribbon-wrapper ribbon-xl\">\n                        <div class=\"ribbon bg-danger text-xl\">\n                          Ribbon\n                        </div>\n                      </div>\n                      Ribbon Extra Large <br /> with Extra Large Text <br />\n                      <small>.ribbon-wrapper.ribbon-xl .ribbon.text-xl</small>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"row mt-4\">\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative\">\n                      <img src=\"../../dist/img/photo1.png\" alt=\"Photo 1\" class=\"img-fluid\">\n                      <div class=\"ribbon-wrapper ribbon-lg\">\n                        <div class=\"ribbon bg-success text-lg\">\n                          Ribbon\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative\">\n                      <img src=\"../../dist/img/photo2.png\" alt=\"Photo 2\" class=\"img-fluid\">\n                      <div class=\"ribbon-wrapper ribbon-xl\">\n                        <div class=\"ribbon bg-warning text-lg\">\n                          Ribbon\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-4\">\n                    <div class=\"position-relative\" style=\"min-height: 180px;\">\n                      <img src=\"../../dist/img/photo3.jpg\" alt=\"Photo 3\" class=\"img-fluid\">\n                      <div class=\"ribbon-wrapper ribbon-xl\">\n                        <div class=\"ribbon bg-danger text-xl\">\n                          Ribbon\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div>\n      <!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- Ion Slider -->\n<script src=\"../../plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>\n<!-- Bootstrap slider -->\n<script src=\"../../plugins/bootstrap-slider/bootstrap-slider.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /* BOOTSTRAP SLIDER */\n    $('.slider').bootstrapSlider()\n\n    /* ION SLIDER */\n    $('#range_1').ionRangeSlider({\n      min     : 0,\n      max     : 5000,\n      from    : 1000,\n      to      : 4000,\n      type    : 'double',\n      step    : 1,\n      prefix  : '$',\n      prettify: false,\n      hasGrid : true\n    })\n    $('#range_2').ionRangeSlider()\n\n    $('#range_5').ionRangeSlider({\n      min     : 0,\n      max     : 10,\n      type    : 'single',\n      step    : 0.1,\n      postfix : ' mm',\n      prettify: false,\n      hasGrid : true\n    })\n    $('#range_6').ionRangeSlider({\n      min     : -50,\n      max     : 50,\n      from    : 0,\n      type    : 'single',\n      step    : 1,\n      postfix : '°',\n      prettify: false,\n      hasGrid : true\n    })\n\n    $('#range_4').ionRangeSlider({\n      type      : 'single',\n      step      : 100,\n      postfix   : ' light years',\n      from      : 55000,\n      hideMinMax: true,\n      hideFromTo: false\n    })\n    $('#range_3').ionRangeSlider({\n      type    : 'double',\n      postfix : ' miles',\n      step    : 10000,\n      from    : 25000000,\n      to      : 35000000,\n      onChange: function (obj) {\n        var t = ''\n        for (var prop in obj) {\n          t += prop + ': ' + obj[prop] + '\\r\\n'\n        }\n        $('#result').html(t)\n      },\n      onLoad  : function (obj) {\n        //\n      }\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/sliders.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | UI Sliders</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Ion Slider -->\n  <link rel=\"stylesheet\" href=\"../../plugins/ion-rangeslider/css/ion.rangeSlider.min.css\">\n  <!-- bootstrap slider -->\n  <link rel=\"stylesheet\" href=\"../../plugins/bootstrap-slider/css/bootstrap-slider.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Sliders</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Sliders</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Ion Slider</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row margin\">\n                  <div class=\"col-sm-6\">\n                    <input id=\"range_1\" type=\"text\" name=\"range_1\" value=\"\">\n                  </div>\n\n                  <div class=\"col-sm-6\">\n                    <input id=\"range_2\" type=\"text\" name=\"range_2\" value=\"1000;100000\" data-type=\"double\"\n                           data-step=\"500\" data-postfix=\" &euro;\" data-from=\"30000\" data-to=\"90000\" data-hasgrid=\"true\">\n                  </div>\n                </div>\n                <div class=\"row margin\">\n                  <div class=\"col-sm-6\">\n                    <input id=\"range_5\" type=\"text\" name=\"range_5\" value=\"\">\n                  </div>\n                  <div class=\"col-sm-6\">\n                    <input id=\"range_6\" type=\"text\" name=\"range_6\" value=\"\">\n                  </div>\n                </div>\n                <div class=\"row margin\">\n                  <div class=\"col-sm-12\">\n                    <input id=\"range_4\" type=\"text\" name=\"range_4\" value=\"10000;100000\">\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Bootstrap Slider</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row margin\">\n                  <div class=\"col-sm-6\">\n                    <div class=\"slider-red\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-red input.slider</p>\n                    <div class=\"slider-blue\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-blue input.slider</p>\n                    <div class=\"slider-green\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-green input.slider</p>\n                    <div class=\"slider-yellow\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-yellow input.slider</p>\n                    <div class=\"slider-teal\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-teal input.slider</p>\n                    <div class=\"slider-purple\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"horizontal\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n\n                    <p>.slider-purple input.slider</p>\n                  </div>\n                  <div class=\"col-sm-6 d-flex justify-content-center\">\n                    <div class=\"slider-red mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                    <div class=\"slider-blue mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                    <div class=\"slider-green mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                    <div class=\"slider-yellow mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                    <div class=\"slider-teal mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                    <div class=\"slider-purple mx-3\">\n                      <input type=\"text\" value=\"\" class=\"slider form-control\" data-slider-min=\"-200\" data-slider-max=\"200\"\n                           data-slider-step=\"5\" data-slider-value=\"[-100,100]\" data-slider-orientation=\"vertical\"\n                           data-slider-selection=\"before\" data-slider-tooltip=\"show\">\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- Ion Slider -->\n<script src=\"../../plugins/ion-rangeslider/js/ion.rangeSlider.min.js\"></script>\n<!-- Bootstrap slider -->\n<script src=\"../../plugins/bootstrap-slider/bootstrap-slider.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /* BOOTSTRAP SLIDER */\n    $('.slider').bootstrapSlider()\n\n    /* ION SLIDER */\n    $('#range_1').ionRangeSlider({\n      min     : 0,\n      max     : 5000,\n      from    : 1000,\n      to      : 4000,\n      type    : 'double',\n      step    : 1,\n      prefix  : '$',\n      prettify: false,\n      hasGrid : true\n    })\n    $('#range_2').ionRangeSlider()\n\n    $('#range_5').ionRangeSlider({\n      min     : 0,\n      max     : 10,\n      type    : 'single',\n      step    : 0.1,\n      postfix : ' mm',\n      prettify: false,\n      hasGrid : true\n    })\n    $('#range_6').ionRangeSlider({\n      min     : -50,\n      max     : 50,\n      from    : 0,\n      type    : 'single',\n      step    : 1,\n      postfix : '°',\n      prettify: false,\n      hasGrid : true\n    })\n\n    $('#range_4').ionRangeSlider({\n      type      : 'single',\n      step      : 100,\n      postfix   : ' light years',\n      from      : 55000,\n      hideMinMax: true,\n      hideFromTo: false\n    })\n    $('#range_3').ionRangeSlider({\n      type    : 'double',\n      postfix : ' miles',\n      step    : 10000,\n      from    : 25000000,\n      to      : 35000000,\n      onChange: function (obj) {\n        var t = ''\n        for (var prop in obj) {\n          t += prop + ': ' + obj[prop] + '\\r\\n'\n        }\n        $('#result').html(t)\n      },\n      onLoad  : function (obj) {\n        //\n      }\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/UI/timeline.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Timeline</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- AdminLTE css -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               <br /> with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Timeline</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Timeline</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n\n        <!-- Timelime example  -->\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <!-- The time line -->\n            <div class=\"timeline\">\n              <!-- timeline time label -->\n              <div class=\"time-label\">\n                <span class=\"bg-red\">10 Feb. 2014</span>\n              </div>\n              <!-- /.timeline-label -->\n              <!-- timeline item -->\n              <div>\n                <i class=\"fas fa-envelope bg-blue\"></i>\n                <div class=\"timeline-item\">\n                  <span class=\"time\"><i class=\"fas fa-clock\"></i> 12:05</span>\n                  <h3 class=\"timeline-header\"><a href=\"#\">Support Team</a> sent you an email</h3>\n\n                  <div class=\"timeline-body\">\n                    Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles,\n                    weebly ning heekya handango imeem plugg dopplr jibjab, movity\n                    jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle\n                    quora plaxo ideeli hulu weebly balihoo...\n                  </div>\n                  <div class=\"timeline-footer\">\n                    <a class=\"btn btn-primary btn-sm\">Read more</a>\n                    <a class=\"btn btn-danger btn-sm\">Delete</a>\n                  </div>\n                </div>\n              </div>\n              <!-- END timeline item -->\n              <!-- timeline item -->\n              <div>\n                <i class=\"fas fa-user bg-green\"></i>\n                <div class=\"timeline-item\">\n                  <span class=\"time\"><i class=\"fas fa-clock\"></i> 5 mins ago</span>\n                  <h3 class=\"timeline-header no-border\"><a href=\"#\">Sarah Young</a> accepted your friend request</h3>\n                </div>\n              </div>\n              <!-- END timeline item -->\n              <!-- timeline item -->\n              <div>\n                <i class=\"fas fa-comments bg-yellow\"></i>\n                <div class=\"timeline-item\">\n                  <span class=\"time\"><i class=\"fas fa-clock\"></i> 27 mins ago</span>\n                  <h3 class=\"timeline-header\"><a href=\"#\">Jay White</a> commented on your post</h3>\n                  <div class=\"timeline-body\">\n                    Take me to your leader!\n                    Switzerland is small and neutral!\n                    We are more like Germany, ambitious and misunderstood!\n                  </div>\n                  <div class=\"timeline-footer\">\n                    <a class=\"btn btn-warning btn-sm\">View comment</a>\n                  </div>\n                </div>\n              </div>\n              <!-- END timeline item -->\n              <!-- timeline time label -->\n              <div class=\"time-label\">\n                <span class=\"bg-green\">3 Jan. 2014</span>\n              </div>\n              <!-- /.timeline-label -->\n              <!-- timeline item -->\n              <div>\n                <i class=\"fa fa-camera bg-purple\"></i>\n                <div class=\"timeline-item\">\n                  <span class=\"time\"><i class=\"fas fa-clock\"></i> 2 days ago</span>\n                  <h3 class=\"timeline-header\"><a href=\"#\">Mina Lee</a> uploaded new photos</h3>\n                  <div class=\"timeline-body\">\n                    <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                    <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                    <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                    <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                    <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                  </div>\n                </div>\n              </div>\n              <!-- END timeline item -->\n              <!-- timeline item -->\n              <div>\n                <i class=\"fas fa-video bg-maroon\"></i>\n\n                <div class=\"timeline-item\">\n                  <span class=\"time\"><i class=\"fas fa-clock\"></i> 5 days ago</span>\n\n                  <h3 class=\"timeline-header\"><a href=\"#\">Mr. Doe</a> shared a video</h3>\n\n                  <div class=\"timeline-body\">\n                    <div class=\"embed-responsive embed-responsive-16by9\">\n                      <iframe class=\"embed-responsive-item\" src=\"https://www.youtube.com/embed/tMWkeBIohBs\" allowfullscreen></iframe>\n                    </div>\n                  </div>\n                  <div class=\"timeline-footer\">\n                    <a href=\"#\" class=\"btn btn-sm bg-maroon\">See comments</a>\n                  </div>\n                </div>\n              </div>\n              <!-- END timeline item -->\n              <div>\n                <i class=\"fas fa-clock bg-gray\"></i>\n              </div>\n            </div>\n          </div>\n          <!-- /.col -->\n        </div>\n      </div>\n      <!-- /.timeline -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/calendar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Calendar</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../plugins/fontawesome-free/css/all.min.css\">\n  <!-- fullCalendar -->\n  <link rel=\"stylesheet\" href=\"../plugins/fullcalendar/main.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../index3.html\" class=\"brand-link\">\n      <img src=\"../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"calendar.html\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Calendar</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Calendar</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"sticky-top mb-3\">\n              <div class=\"card\">\n                <div class=\"card-header\">\n                  <h4 class=\"card-title\">Draggable Events</h4>\n                </div>\n                <div class=\"card-body\">\n                  <!-- the events -->\n                  <div id=\"external-events\">\n                    <div class=\"external-event bg-success\">Lunch</div>\n                    <div class=\"external-event bg-warning\">Go home</div>\n                    <div class=\"external-event bg-info\">Do homework</div>\n                    <div class=\"external-event bg-primary\">Work on UI design</div>\n                    <div class=\"external-event bg-danger\">Sleep tight</div>\n                    <div class=\"checkbox\">\n                      <label for=\"drop-remove\">\n                        <input type=\"checkbox\" id=\"drop-remove\">\n                        remove after drop\n                      </label>\n                    </div>\n                  </div>\n                </div>\n                <!-- /.card-body -->\n              </div>\n              <!-- /.card -->\n              <div class=\"card\">\n                <div class=\"card-header\">\n                  <h3 class=\"card-title\">Create Event</h3>\n                </div>\n                <div class=\"card-body\">\n                  <div class=\"btn-group\" style=\"width: 100%; margin-bottom: 10px;\">\n                    <ul class=\"fc-color-picker\" id=\"color-chooser\">\n                      <li><a class=\"text-primary\" href=\"#\"><i class=\"fas fa-square\"></i></a></li>\n                      <li><a class=\"text-warning\" href=\"#\"><i class=\"fas fa-square\"></i></a></li>\n                      <li><a class=\"text-success\" href=\"#\"><i class=\"fas fa-square\"></i></a></li>\n                      <li><a class=\"text-danger\" href=\"#\"><i class=\"fas fa-square\"></i></a></li>\n                      <li><a class=\"text-muted\" href=\"#\"><i class=\"fas fa-square\"></i></a></li>\n                    </ul>\n                  </div>\n                  <!-- /btn-group -->\n                  <div class=\"input-group\">\n                    <input id=\"new-event\" type=\"text\" class=\"form-control\" placeholder=\"Event Title\">\n\n                    <div class=\"input-group-append\">\n                      <button id=\"add-new-event\" type=\"button\" class=\"btn btn-primary\">Add</button>\n                    </div>\n                    <!-- /btn-group -->\n                  </div>\n                  <!-- /input-group -->\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-9\">\n            <div class=\"card card-primary\">\n              <div class=\"card-body p-0\">\n                <!-- THE CALENDAR -->\n                <div id=\"calendar\"></div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap -->\n<script src=\"../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- jQuery UI -->\n<script src=\"../plugins/jquery-ui/jquery-ui.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../dist/js/adminlte.min.js\"></script>\n<!-- fullCalendar 2.2.5 -->\n<script src=\"../plugins/moment/moment.min.js\"></script>\n<script src=\"../plugins/fullcalendar/main.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n\n    /* initialize the external events\n     -----------------------------------------------------------------*/\n    function ini_events(ele) {\n      ele.each(function () {\n\n        // create an Event Object (https://fullcalendar.io/docs/event-object)\n        // it doesn't need to have a start or end\n        var eventObject = {\n          title: $.trim($(this).text()) // use the element's text as the event title\n        }\n\n        // store the Event Object in the DOM element so we can get to it later\n        $(this).data('eventObject', eventObject)\n\n        // make the event draggable using jQuery UI\n        $(this).draggable({\n          zIndex        : 1070,\n          revert        : true, // will cause the event to go back to its\n          revertDuration: 0  //  original position after the drag\n        })\n\n      })\n    }\n\n    ini_events($('#external-events div.external-event'))\n\n    /* initialize the calendar\n     -----------------------------------------------------------------*/\n    //Date for the calendar events (dummy data)\n    var date = new Date()\n    var d    = date.getDate(),\n        m    = date.getMonth(),\n        y    = date.getFullYear()\n\n    var Calendar = FullCalendar.Calendar;\n    var Draggable = FullCalendar.Draggable;\n\n    var containerEl = document.getElementById('external-events');\n    var checkbox = document.getElementById('drop-remove');\n    var calendarEl = document.getElementById('calendar');\n\n    // initialize the external events\n    // -----------------------------------------------------------------\n\n    new Draggable(containerEl, {\n      itemSelector: '.external-event',\n      eventData: function(eventEl) {\n        return {\n          title: eventEl.innerText,\n          backgroundColor: window.getComputedStyle( eventEl ,null).getPropertyValue('background-color'),\n          borderColor: window.getComputedStyle( eventEl ,null).getPropertyValue('background-color'),\n          textColor: window.getComputedStyle( eventEl ,null).getPropertyValue('color'),\n        };\n      }\n    });\n\n    var calendar = new Calendar(calendarEl, {\n      headerToolbar: {\n        left  : 'prev,next today',\n        center: 'title',\n        right : 'dayGridMonth,timeGridWeek,timeGridDay'\n      },\n      themeSystem: 'bootstrap',\n      //Random default events\n      events: [\n        {\n          title          : 'All Day Event',\n          start          : new Date(y, m, 1),\n          backgroundColor: '#f56954', //red\n          borderColor    : '#f56954', //red\n          allDay         : true\n        },\n        {\n          title          : 'Long Event',\n          start          : new Date(y, m, d - 5),\n          end            : new Date(y, m, d - 2),\n          backgroundColor: '#f39c12', //yellow\n          borderColor    : '#f39c12' //yellow\n        },\n        {\n          title          : 'Meeting',\n          start          : new Date(y, m, d, 10, 30),\n          allDay         : false,\n          backgroundColor: '#0073b7', //Blue\n          borderColor    : '#0073b7' //Blue\n        },\n        {\n          title          : 'Lunch',\n          start          : new Date(y, m, d, 12, 0),\n          end            : new Date(y, m, d, 14, 0),\n          allDay         : false,\n          backgroundColor: '#00c0ef', //Info (aqua)\n          borderColor    : '#00c0ef' //Info (aqua)\n        },\n        {\n          title          : 'Birthday Party',\n          start          : new Date(y, m, d + 1, 19, 0),\n          end            : new Date(y, m, d + 1, 22, 30),\n          allDay         : false,\n          backgroundColor: '#00a65a', //Success (green)\n          borderColor    : '#00a65a' //Success (green)\n        },\n        {\n          title          : 'Click for Google',\n          start          : new Date(y, m, 28),\n          end            : new Date(y, m, 29),\n          url            : 'https://www.google.com/',\n          backgroundColor: '#3c8dbc', //Primary (light-blue)\n          borderColor    : '#3c8dbc' //Primary (light-blue)\n        }\n      ],\n      editable  : true,\n      droppable : true, // this allows things to be dropped onto the calendar !!!\n      drop      : function(info) {\n        // is the \"remove after drop\" checkbox checked?\n        if (checkbox.checked) {\n          // if so, remove the element from the \"Draggable Events\" list\n          info.draggedEl.parentNode.removeChild(info.draggedEl);\n        }\n      }\n    });\n\n    calendar.render();\n    // $('#calendar').fullCalendar()\n\n    /* ADDING EVENTS */\n    var currColor = '#3c8dbc' //Red by default\n    // Color chooser button\n    $('#color-chooser > li > a').click(function (e) {\n      e.preventDefault()\n      // Save color\n      currColor = $(this).css('color')\n      // Add color effect to button\n      $('#add-new-event').css({\n        'background-color': currColor,\n        'border-color'    : currColor\n      })\n    })\n    $('#add-new-event').click(function (e) {\n      e.preventDefault()\n      // Get value and make sure it is not null\n      var val = $('#new-event').val()\n      if (val.length == 0) {\n        return\n      }\n\n      // Create events\n      var event = $('<div />')\n      event.css({\n        'background-color': currColor,\n        'border-color'    : currColor,\n        'color'           : '#fff'\n      }).addClass('external-event')\n      event.text(val)\n      $('#external-events').prepend(event)\n\n      // Add draggable funtionality\n      ini_events(event)\n\n      // Remove event from text input\n      $('#new-event').val('')\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/charts/chartjs.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | ChartJS</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\"\n           alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"chartjs.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>ChartJS</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">ChartJS</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <!-- AREA CHART -->\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Area Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"chart\">\n                  <canvas id=\"areaChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- DONUT CHART -->\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Donut Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <canvas id=\"donutChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- PIE CHART -->\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Pie Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <canvas id=\"pieChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!-- /.col (LEFT) -->\n          <div class=\"col-md-6\">\n            <!-- LINE CHART -->\n            <div class=\"card card-info\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Line Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"chart\">\n                  <canvas id=\"lineChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- BAR CHART -->\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Bar Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"chart\">\n                  <canvas id=\"barChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- STACKED BAR CHART -->\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Stacked Bar Chart</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"chart\">\n                  <canvas id=\"stackedBarChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></canvas>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!-- /.col (RIGHT) -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Add Content Here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- ChartJS -->\n<script src=\"../../plugins/chart.js/Chart.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /* ChartJS\n     * -------\n     * Here we will create a few charts using ChartJS\n     */\n\n    //--------------\n    //- AREA CHART -\n    //--------------\n\n    // Get context with jQuery - using jQuery's .get() method.\n    var areaChartCanvas = $('#areaChart').get(0).getContext('2d')\n\n    var areaChartData = {\n      labels  : ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n      datasets: [\n        {\n          label               : 'Digital Goods',\n          backgroundColor     : 'rgba(60,141,188,0.9)',\n          borderColor         : 'rgba(60,141,188,0.8)',\n          pointRadius          : false,\n          pointColor          : '#3b8bba',\n          pointStrokeColor    : 'rgba(60,141,188,1)',\n          pointHighlightFill  : '#fff',\n          pointHighlightStroke: 'rgba(60,141,188,1)',\n          data                : [28, 48, 40, 19, 86, 27, 90]\n        },\n        {\n          label               : 'Electronics',\n          backgroundColor     : 'rgba(210, 214, 222, 1)',\n          borderColor         : 'rgba(210, 214, 222, 1)',\n          pointRadius         : false,\n          pointColor          : 'rgba(210, 214, 222, 1)',\n          pointStrokeColor    : '#c1c7d1',\n          pointHighlightFill  : '#fff',\n          pointHighlightStroke: 'rgba(220,220,220,1)',\n          data                : [65, 59, 80, 81, 56, 55, 40]\n        },\n      ]\n    }\n\n    var areaChartOptions = {\n      maintainAspectRatio : false,\n      responsive : true,\n      legend: {\n        display: false\n      },\n      scales: {\n        xAxes: [{\n          gridLines : {\n            display : false,\n          }\n        }],\n        yAxes: [{\n          gridLines : {\n            display : false,\n          }\n        }]\n      }\n    }\n\n    // This will get the first returned node in the jQuery collection.\n    new Chart(areaChartCanvas, {\n      type: 'line',\n      data: areaChartData,\n      options: areaChartOptions\n    })\n\n    //-------------\n    //- LINE CHART -\n    //--------------\n    var lineChartCanvas = $('#lineChart').get(0).getContext('2d')\n    var lineChartOptions = $.extend(true, {}, areaChartOptions)\n    var lineChartData = $.extend(true, {}, areaChartData)\n    lineChartData.datasets[0].fill = false;\n    lineChartData.datasets[1].fill = false;\n    lineChartOptions.datasetFill = false\n\n    var lineChart = new Chart(lineChartCanvas, {\n      type: 'line',\n      data: lineChartData,\n      options: lineChartOptions\n    })\n\n    //-------------\n    //- DONUT CHART -\n    //-------------\n    // Get context with jQuery - using jQuery's .get() method.\n    var donutChartCanvas = $('#donutChart').get(0).getContext('2d')\n    var donutData        = {\n      labels: [\n          'Chrome',\n          'IE',\n          'FireFox',\n          'Safari',\n          'Opera',\n          'Navigator',\n      ],\n      datasets: [\n        {\n          data: [700,500,400,600,300,100],\n          backgroundColor : ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de'],\n        }\n      ]\n    }\n    var donutOptions     = {\n      maintainAspectRatio : false,\n      responsive : true,\n    }\n    //Create pie or douhnut chart\n    // You can switch between pie and douhnut using the method below.\n    new Chart(donutChartCanvas, {\n      type: 'doughnut',\n      data: donutData,\n      options: donutOptions\n    })\n\n    //-------------\n    //- PIE CHART -\n    //-------------\n    // Get context with jQuery - using jQuery's .get() method.\n    var pieChartCanvas = $('#pieChart').get(0).getContext('2d')\n    var pieData        = donutData;\n    var pieOptions     = {\n      maintainAspectRatio : false,\n      responsive : true,\n    }\n    //Create pie or douhnut chart\n    // You can switch between pie and douhnut using the method below.\n    new Chart(pieChartCanvas, {\n      type: 'pie',\n      data: pieData,\n      options: pieOptions\n    })\n\n    //-------------\n    //- BAR CHART -\n    //-------------\n    var barChartCanvas = $('#barChart').get(0).getContext('2d')\n    var barChartData = $.extend(true, {}, areaChartData)\n    var temp0 = areaChartData.datasets[0]\n    var temp1 = areaChartData.datasets[1]\n    barChartData.datasets[0] = temp1\n    barChartData.datasets[1] = temp0\n\n    var barChartOptions = {\n      responsive              : true,\n      maintainAspectRatio     : false,\n      datasetFill             : false\n    }\n\n    new Chart(barChartCanvas, {\n      type: 'bar',\n      data: barChartData,\n      options: barChartOptions\n    })\n\n    //---------------------\n    //- STACKED BAR CHART -\n    //---------------------\n    var stackedBarChartCanvas = $('#stackedBarChart').get(0).getContext('2d')\n    var stackedBarChartData = $.extend(true, {}, barChartData)\n\n    var stackedBarChartOptions = {\n      responsive              : true,\n      maintainAspectRatio     : false,\n      scales: {\n        xAxes: [{\n          stacked: true,\n        }],\n        yAxes: [{\n          stacked: true\n        }]\n      }\n    }\n\n    new Chart(stackedBarChartCanvas, {\n      type: 'bar',\n      data: stackedBarChartData,\n      options: stackedBarChartOptions\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/charts/flot.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Flot Charts</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"flot.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Flot Charts</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Flot</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- interactive chart -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Interactive Area Chart\n                </h3>\n\n                <div class=\"card-tools\">\n                  Real time\n                  <div class=\"btn-group\" id=\"realtime\" data-toggle=\"btn-toggle\">\n                    <button type=\"button\" class=\"btn btn-default btn-sm active\" data-toggle=\"on\">On</button>\n                    <button type=\"button\" class=\"btn btn-default btn-sm\" data-toggle=\"off\">Off</button>\n                  </div>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"interactive\" style=\"height: 300px;\"></div>\n              </div>\n              <!-- /.card-body-->\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <!-- Line chart -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Line Chart\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"line-chart\" style=\"height: 300px;\"></div>\n              </div>\n              <!-- /.card-body-->\n            </div>\n            <!-- /.card -->\n\n            <!-- Area chart -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Area Chart\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"area-chart\" style=\"height: 338px;\" class=\"full-width-chart\"></div>\n              </div>\n              <!-- /.card-body-->\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-6\">\n            <!-- Bar chart -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Bar Chart\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"bar-chart\" style=\"height: 300px;\"></div>\n              </div>\n              <!-- /.card-body-->\n            </div>\n            <!-- /.card -->\n\n            <!-- Donut chart -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Donut Chart\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"donut-chart\" style=\"height: 300px;\"></div>\n              </div>\n              <!-- /.card-body-->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- FLOT CHARTS -->\n<script src=\"../../plugins/flot/jquery.flot.js\"></script>\n<!-- FLOT RESIZE PLUGIN - allows the chart to redraw when the window is resized -->\n<script src=\"../../plugins/flot/plugins/jquery.flot.resize.js\"></script>\n<!-- FLOT PIE PLUGIN - also used to draw donut charts -->\n<script src=\"../../plugins/flot/plugins/jquery.flot.pie.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /*\n     * Flot Interactive Chart\n     * -----------------------\n     */\n    // We use an inline data source in the example, usually data would\n    // be fetched from a server\n    var data        = [],\n        totalPoints = 100\n\n    function getRandomData() {\n\n      if (data.length > 0) {\n        data = data.slice(1)\n      }\n\n      // Do a random walk\n      while (data.length < totalPoints) {\n\n        var prev = data.length > 0 ? data[data.length - 1] : 50,\n            y    = prev + Math.random() * 10 - 5\n\n        if (y < 0) {\n          y = 0\n        } else if (y > 100) {\n          y = 100\n        }\n\n        data.push(y)\n      }\n\n      // Zip the generated y values with the x values\n      var res = []\n      for (var i = 0; i < data.length; ++i) {\n        res.push([i, data[i]])\n      }\n\n      return res\n    }\n\n    var interactive_plot = $.plot('#interactive', [\n        {\n          data: getRandomData(),\n        }\n      ],\n      {\n        grid: {\n          borderColor: '#f3f3f3',\n          borderWidth: 1,\n          tickColor: '#f3f3f3'\n        },\n        series: {\n          color: '#3c8dbc',\n          lines: {\n            lineWidth: 2,\n            show: true,\n            fill: true,\n          },\n        },\n        yaxis: {\n          min: 0,\n          max: 100,\n          show: true\n        },\n        xaxis: {\n          show: true\n        }\n      }\n    )\n\n    var updateInterval = 500 //Fetch data ever x milliseconds\n    var realtime       = 'on' //If == to on then fetch data every x seconds. else stop fetching\n    function update() {\n\n      interactive_plot.setData([getRandomData()])\n\n      // Since the axes don't change, we don't need to call plot.setupGrid()\n      interactive_plot.draw()\n      if (realtime === 'on') {\n        setTimeout(update, updateInterval)\n      }\n    }\n\n    //INITIALIZE REALTIME DATA FETCHING\n    if (realtime === 'on') {\n      update()\n    }\n    //REALTIME TOGGLE\n    $('#realtime .btn').click(function () {\n      if ($(this).data('toggle') === 'on') {\n        realtime = 'on'\n      }\n      else {\n        realtime = 'off'\n      }\n      update()\n    })\n    /*\n     * END INTERACTIVE CHART\n     */\n\n\n    /*\n     * LINE CHART\n     * ----------\n     */\n    //LINE randomly generated data\n\n    var sin = [],\n        cos = []\n    for (var i = 0; i < 14; i += 0.5) {\n      sin.push([i, Math.sin(i)])\n      cos.push([i, Math.cos(i)])\n    }\n    var line_data1 = {\n      data : sin,\n      color: '#3c8dbc'\n    }\n    var line_data2 = {\n      data : cos,\n      color: '#00c0ef'\n    }\n    $.plot('#line-chart', [line_data1, line_data2], {\n      grid  : {\n        hoverable  : true,\n        borderColor: '#f3f3f3',\n        borderWidth: 1,\n        tickColor  : '#f3f3f3'\n      },\n      series: {\n        shadowSize: 0,\n        lines     : {\n          show: true\n        },\n        points    : {\n          show: true\n        }\n      },\n      lines : {\n        fill : false,\n        color: ['#3c8dbc', '#f56954']\n      },\n      yaxis : {\n        show: true\n      },\n      xaxis : {\n        show: true\n      }\n    })\n    //Initialize tooltip on hover\n    $('<div class=\"tooltip-inner\" id=\"line-chart-tooltip\"></div>').css({\n      position: 'absolute',\n      display : 'none',\n      opacity : 0.8\n    }).appendTo('body')\n    $('#line-chart').bind('plothover', function (event, pos, item) {\n\n      if (item) {\n        var x = item.datapoint[0].toFixed(2),\n            y = item.datapoint[1].toFixed(2)\n\n        $('#line-chart-tooltip').html(item.series.label + ' of ' + x + ' = ' + y)\n          .css({\n            top : item.pageY + 5,\n            left: item.pageX + 5\n          })\n          .fadeIn(200)\n      } else {\n        $('#line-chart-tooltip').hide()\n      }\n\n    })\n    /* END LINE CHART */\n\n    /*\n     * FULL WIDTH STATIC AREA CHART\n     * -----------------\n     */\n    var areaData = [[2, 88.0], [3, 93.3], [4, 102.0], [5, 108.5], [6, 115.7], [7, 115.6],\n      [8, 124.6], [9, 130.3], [10, 134.3], [11, 141.4], [12, 146.5], [13, 151.7], [14, 159.9],\n      [15, 165.4], [16, 167.8], [17, 168.7], [18, 169.5], [19, 168.0]]\n    $.plot('#area-chart', [areaData], {\n      grid  : {\n        borderWidth: 0\n      },\n      series: {\n        shadowSize: 0, // Drawing is faster without shadows\n        color     : '#00c0ef',\n        lines : {\n          fill: true //Converts the line chart to area chart\n        },\n      },\n      yaxis : {\n        show: false\n      },\n      xaxis : {\n        show: false\n      }\n    })\n\n    /* END AREA CHART */\n\n    /*\n     * BAR CHART\n     * ---------\n     */\n\n    var bar_data = {\n      data : [[1,10], [2,8], [3,4], [4,13], [5,17], [6,9]],\n      bars: { show: true }\n    }\n    $.plot('#bar-chart', [bar_data], {\n      grid  : {\n        borderWidth: 1,\n        borderColor: '#f3f3f3',\n        tickColor  : '#f3f3f3'\n      },\n      series: {\n         bars: {\n          show: true, barWidth: 0.5, align: 'center',\n        },\n      },\n      colors: ['#3c8dbc'],\n      xaxis : {\n        ticks: [[1,'January'], [2,'February'], [3,'March'], [4,'April'], [5,'May'], [6,'June']]\n      }\n    })\n    /* END BAR CHART */\n\n    /*\n     * DONUT CHART\n     * -----------\n     */\n\n    var donutData = [\n      {\n        label: 'Series2',\n        data : 30,\n        color: '#3c8dbc'\n      },\n      {\n        label: 'Series3',\n        data : 20,\n        color: '#0073b7'\n      },\n      {\n        label: 'Series4',\n        data : 50,\n        color: '#00c0ef'\n      }\n    ]\n    $.plot('#donut-chart', donutData, {\n      series: {\n        pie: {\n          show       : true,\n          radius     : 1,\n          innerRadius: 0.5,\n          label      : {\n            show     : true,\n            radius   : 2 / 3,\n            formatter: labelFormatter,\n            threshold: 0.1\n          }\n\n        }\n      },\n      legend: {\n        show: false\n      }\n    })\n    /*\n     * END DONUT CHART\n     */\n\n  })\n\n  /*\n   * Custom Label formatter\n   * ----------------------\n   */\n  function labelFormatter(label, series) {\n    return '<div style=\"font-size:13px; text-align:center; padding:2px; color: #fff; font-weight: 600;\">'\n      + label\n      + '<br>'\n      + Math.round(series.percent) + '%</div>'\n  }\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/charts/inline.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Inline Charts</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"inline.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Inline Charts</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Inline Charts</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- jQuery Knob -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  jQuery Knob\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"30\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#3c8dbc\">\n\n                    <div class=\"knob-label\">New Visitors</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"70\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#f56954\">\n\n                    <div class=\"knob-label\">Bounce Rate</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"-80\" data-min=\"-150\" data-max=\"150\" data-width=\"90\"\n                           data-height=\"90\" data-fgColor=\"#00a65a\">\n\n                    <div class=\"knob-label\">Server Load</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"40\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#00c0ef\">\n\n                    <div class=\"knob-label\">Disk Space</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n\n                <div class=\"row\">\n                  <div class=\"col-6 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"90\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#932ab6\">\n\n                    <div class=\"knob-label\">Bandwidth</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"50\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#39CCCC\">\n\n                    <div class=\"knob-label\">CPU</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  jQuery Knob Different Sizes\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"30\" data-width=\"90\" data-height=\"90\" data-fgColor=\"#3c8dbc\"\n                           data-readonly=\"true\">\n\n                    <div class=\"knob-label\">data-width=\"90\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"30\" data-width=\"120\" data-height=\"120\"\n                           data-fgColor=\"#f56954\">\n\n                    <div class=\"knob-label\">data-width=\"120\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"30\" data-thickness=\"0.1\" data-width=\"90\" data-height=\"90\"\n                           data-fgColor=\"#00a65a\">\n\n                    <div class=\"knob-label\">data-thickness=\"0.1\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" data-thickness=\"0.2\" data-angleArc=\"250\" data-angleOffset=\"-125\"\n                           value=\"30\" data-width=\"120\" data-height=\"120\" data-fgColor=\"#00c0ef\">\n\n                    <div class=\"knob-label\">data-angleArc=\"250\"</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  jQuery Knob Tron Style\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"80\" data-skin=\"tron\" data-thickness=\"0.2\" data-width=\"90\"\n                           data-height=\"90\" data-fgColor=\"#3c8dbc\" data-readonly=\"true\">\n\n                    <div class=\"knob-label\">data-width=\"90\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"60\" data-skin=\"tron\" data-thickness=\"0.2\" data-width=\"120\"\n                           data-height=\"120\" data-fgColor=\"#f56954\">\n\n                    <div class=\"knob-label\">data-width=\"120\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"10\" data-skin=\"tron\" data-thickness=\"0.1\" data-width=\"90\"\n                           data-height=\"90\" data-fgColor=\"#00a65a\">\n\n                    <div class=\"knob-label\">data-thickness=\"0.1\"</div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-6 col-md-3 text-center\">\n                    <input type=\"text\" class=\"knob\" value=\"100\" data-skin=\"tron\" data-thickness=\"0.2\"\n                           data-angleArc=\"250\" data-angleOffset=\"-125\" data-width=\"120\" data-height=\"120\"\n                           data-fgColor=\"#00c0ef\">\n\n                    <div class=\"knob-label\">data-angleArc=\"250\"</div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">\n                  <i class=\"far fa-chart-bar\"></i>\n                  Sparklines\n                </h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-1\"></div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-2\"></div>\n                  </div>\n                  <!-- ./col -->\n                  <div class=\"col-4 text-center\">\n                    <div id=\"sparkline-3\"></div>\n                  </div>\n                  <!-- ./col -->\n                </div>\n                <!-- /.row -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- jQuery Knob -->\n<script src=\"../../plugins/jquery-knob/jquery.knob.min.js\"></script>\n<!-- Sparkline -->\n<script src=\"../../plugins/sparklines/sparkline.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /* jQueryKnob */\n\n    $('.knob').knob({\n      /*change : function (value) {\n       //console.log(\"change : \" + value);\n       },\n       release : function (value) {\n       console.log(\"release : \" + value);\n       },\n       cancel : function () {\n       console.log(\"cancel : \" + this.value);\n       },*/\n      draw: function () {\n\n        // \"tron\" case\n        if (this.$.data('skin') == 'tron') {\n\n          var a   = this.angle(this.cv)  // Angle\n            ,\n              sa  = this.startAngle          // Previous start angle\n            ,\n              sat = this.startAngle         // Start angle\n            ,\n              ea                            // Previous end angle\n            ,\n              eat = sat + a                 // End angle\n            ,\n              r   = true\n\n          this.g.lineWidth = this.lineWidth\n\n          this.o.cursor\n          && (sat = eat - 0.3)\n          && (eat = eat + 0.3)\n\n          if (this.o.displayPrevious) {\n            ea = this.startAngle + this.angle(this.value)\n            this.o.cursor\n            && (sa = ea - 0.3)\n            && (ea = ea + 0.3)\n            this.g.beginPath()\n            this.g.strokeStyle = this.previousColor\n            this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, sa, ea, false)\n            this.g.stroke()\n          }\n\n          this.g.beginPath()\n          this.g.strokeStyle = r ? this.o.fgColor : this.fgColor\n          this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, sat, eat, false)\n          this.g.stroke()\n\n          this.g.lineWidth = 2\n          this.g.beginPath()\n          this.g.strokeStyle = this.o.fgColor\n          this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false)\n          this.g.stroke()\n\n          return false\n        }\n      }\n    })\n    /* END JQUERY KNOB */\n\n    //INITIALIZE SPARKLINE CHARTS\n    var sparkline1 = new Sparkline($('#sparkline-1')[0], { width: 240, height: 70, lineColor: '#92c1dc', endColor: '#92c1dc' })\n    var sparkline2 = new Sparkline($('#sparkline-2')[0], { width: 240, height: 70, lineColor: '#f56954', endColor: '#f56954' })\n    var sparkline3 = new Sparkline($('#sparkline-3')[0], { width: 240, height: 70, lineColor: '#3af221', endColor: '#3af221' })\n\n    sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021])\n    sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921])\n    sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21])\n\n  })\n\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/charts/uplot.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | uPlot</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- uPlot -->\n  <link rel=\"stylesheet\" href=\"../../plugins/uplot/uPlot.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\"\n           alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"chartjs.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>ChartJS</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">ChartJS</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- AREA CHART -->\n        <div class=\"card card-primary\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Area Chart</h3>\n\n            <div class=\"card-tools\">\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                <i class=\"fas fa-minus\"></i>\n              </button>\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                <i class=\"fas fa-times\"></i>\n              </button>\n            </div>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"chart\">\n              <div id=\"areaChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></div>\n            </div>\n          </div>\n          <!-- /.card-body -->\n        </div>\n        <!-- /.card -->\n\n        <!-- LINE CHART -->\n        <div class=\"card card-info\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Line Chart</h3>\n\n            <div class=\"card-tools\">\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                <i class=\"fas fa-minus\"></i>\n              </button>\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                <i class=\"fas fa-times\"></i>\n              </button>\n            </div>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"chart\">\n              <div id=\"lineChart\" style=\"min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;\"></div>\n            </div>\n          </div>\n          <!-- /.card-body -->\n        </div>\n        <!-- /.card -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Add Content Here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- uPlot -->\n<script src=\"../../plugins/uplot/uPlot.iife.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    /* uPlot\n     * -------\n     * Here we will create a few charts using uPlot\n     */\n\n    function getSize(elementId) {\n      return {\n        width: document.getElementById(elementId).offsetWidth,\n        height: document.getElementById(elementId).offsetHeight,\n      }\n    }\n\n    let data = [\n      [0, 1, 2, 3, 4, 5, 6],\n      [28, 48, 40, 19, 86, 27, 90],\n      [65, 59, 80, 81, 56, 55, 40]\n    ];\n\n    //--------------\n    //- AREA CHART -\n    //--------------\n\n    const optsAreaChart = {\n      ... getSize('areaChart'),\n      scales: {\n        x: {\n          time: false,\n        },\n        y: {\n          range: [0, 100],\n        },\n      },\n      series: [\n        {},\n        {\n          fill: 'rgba(60,141,188,0.7)',\n          stroke: 'rgba(60,141,188,1)',\n        },\n        {\n          stroke: '#c1c7d1',\n          fill: 'rgba(210, 214, 222, .7)',\n        },\n      ],\n    };\n\n    let areaChart = new uPlot(optsAreaChart, data, document.getElementById('areaChart'));\n\n    const optsLineChart = {\n      ... getSize('lineChart'),\n      scales: {\n        x: {\n          time: false,\n        },\n        y: {\n          range: [0, 100],\n        },\n      },\n      series: [\n        {},\n        {\n          fill: 'transparent',\n          width: 5,\n          stroke: 'rgba(60,141,188,1)',\n        },\n        {\n          stroke: '#c1c7d1',\n          width: 5,\n          fill: 'transparent',\n        },\n      ],\n    };\n\n    let lineChart = new uPlot(optsLineChart, data, document.getElementById('lineChart'));\n\n    window.addEventListener(\"resize\", e => {\n      areaChart.setSize(getSize('areaChart'));\n      lineChart.setSize(getSize('lineChart'));\n    });\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/404.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | 404 Page not found</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>404 Error Page</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">404 Error Page</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"error-page\">\n        <h2 class=\"headline text-warning\"> 404</h2>\n\n        <div class=\"error-content\">\n          <h3><i class=\"fas fa-exclamation-triangle text-warning\"></i> Oops! Page not found.</h3>\n\n          <p>\n            We could not find the page you were looking for.\n            Meanwhile, you may <a href=\"../../index.html\">return to dashboard</a> or try using the search form.\n          </p>\n\n          <form class=\"search-form\">\n            <div class=\"input-group\">\n              <input type=\"text\" name=\"search\" class=\"form-control\" placeholder=\"Search\">\n\n              <div class=\"input-group-append\">\n                <button type=\"submit\" name=\"submit\" class=\"btn btn-warning\"><i class=\"fas fa-search\"></i>\n                </button>\n              </div>\n            </div>\n            <!-- /.input-group -->\n          </form>\n        </div>\n        <!-- /.error-content -->\n      </div>\n      <!-- /.error-page -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/500.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | 500 Error</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>500 Error Page</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">500 Error Page</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"error-page\">\n        <h2 class=\"headline text-danger\">500</h2>\n\n        <div class=\"error-content\">\n          <h3><i class=\"fas fa-exclamation-triangle text-danger\"></i> Oops! Something went wrong.</h3>\n\n          <p>\n            We will work on fixing that right away.\n            Meanwhile, you may <a href=\"../../index.html\">return to dashboard</a> or try using the search form.\n          </p>\n\n          <form class=\"search-form\">\n            <div class=\"input-group\">\n              <input type=\"text\" name=\"search\" class=\"form-control\" placeholder=\"Search\">\n\n              <div class=\"input-group-append\">\n                <button type=\"submit\" name=\"submit\" class=\"btn btn-danger\"><i class=\"fas fa-search\"></i>\n                </button>\n              </div>\n            </div>\n            <!-- /.input-group -->\n          </form>\n        </div>\n      </div>\n      <!-- /.error-page -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/blank.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Blank Page</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Blank Page</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Blank Page</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Title</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body\">\n          Start creating your amazing application!\n        </div>\n        <!-- /.card-body -->\n        <div class=\"card-footer\">\n          Footer\n        </div>\n        <!-- /.card-footer-->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/contact-us.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Contact us</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Contact us</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Contact us</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-body row\">\n          <div class=\"col-5 text-center d-flex align-items-center justify-content-center\">\n            <div class=\"\">\n              <h2>Admin<strong>LTE</strong></h2>\n              <p class=\"lead mb-5\">123 Testing Ave, Testtown, 9876 NA<br>\n                Phone: +1 234 56789012\n              </p>\n            </div>\n          </div>\n          <div class=\"col-7\">\n            <div class=\"form-group\">\n              <label for=\"inputName\">Name</label>\n              <input type=\"text\" id=\"inputName\" class=\"form-control\" />\n            </div>\n            <div class=\"form-group\">\n              <label for=\"inputEmail\">E-Mail</label>\n              <input type=\"email\" id=\"inputEmail\" class=\"form-control\" />\n            </div>\n            <div class=\"form-group\">\n              <label for=\"inputSubject\">Subject</label>\n              <input type=\"text\" id=\"inputSubject\" class=\"form-control\" />\n            </div>\n            <div class=\"form-group\">\n              <label for=\"inputMessage\">Message</label>\n              <textarea id=\"inputMessage\" class=\"form-control\" rows=\"4\"></textarea>\n            </div>\n            <div class=\"form-group\">\n              <input type=\"submit\" class=\"btn btn-primary\" value=\"Send message\">\n            </div>\n          </div>\n        </div>\n      </div>\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/contacts.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Contacts</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Contacts</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Contacts</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card card-solid\">\n        <div class=\"card-body pb-0\">\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user2-160x160.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user2-160x160.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6 col-md-4 d-flex align-items-stretch flex-column\">\n              <div class=\"card bg-light d-flex flex-fill\">\n                <div class=\"card-header text-muted border-bottom-0\">\n                  Digital Strategist\n                </div>\n                <div class=\"card-body pt-0\">\n                  <div class=\"row\">\n                    <div class=\"col-7\">\n                      <h2 class=\"lead\"><b>Nicole Pearson</b></h2>\n                      <p class=\"text-muted text-sm\"><b>About: </b> Web Designer / UX / Graphic Artist / Coffee Lover </p>\n                      <ul class=\"ml-4 mb-0 fa-ul text-muted\">\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-building\"></i></span> Address: Demo Street 123, Demo City 04312, NJ</li>\n                        <li class=\"small\"><span class=\"fa-li\"><i class=\"fas fa-lg fa-phone\"></i></span> Phone #: + 800 - 12 12 23 52</li>\n                      </ul>\n                    </div>\n                    <div class=\"col-5 text-center\">\n                      <img src=\"../../dist/img/user2-160x160.jpg\" alt=\"user-avatar\" class=\"img-circle img-fluid\">\n                    </div>\n                  </div>\n                </div>\n                <div class=\"card-footer\">\n                  <div class=\"text-right\">\n                    <a href=\"#\" class=\"btn btn-sm bg-teal\">\n                      <i class=\"fas fa-comments\"></i>\n                    </a>\n                    <a href=\"#\" class=\"btn btn-sm btn-primary\">\n                      <i class=\"fas fa-user\"></i> View Profile\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <!-- /.card-body -->\n        <div class=\"card-footer\">\n          <nav aria-label=\"Contacts Page Navigation\">\n            <ul class=\"pagination justify-content-center m-0\">\n              <li class=\"page-item active\"><a class=\"page-link\" href=\"#\">1</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">2</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">3</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">4</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">5</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">6</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">7</a></li>\n              <li class=\"page-item\"><a class=\"page-link\" href=\"#\">8</a></li>\n            </ul>\n          </nav>\n        </div>\n        <!-- /.card-footer -->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/e-commerce.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | E-commerce</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>E-commerce</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">E-commerce</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card card-solid\">\n        <div class=\"card-body\">\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-6\">\n              <h3 class=\"d-inline-block d-sm-none\">LOWA Men’s Renegade GTX Mid Hiking Boots Review</h3>\n              <div class=\"col-12\">\n                <img src=\"../../dist/img/prod-1.jpg\" class=\"product-image\" alt=\"Product Image\">\n              </div>\n              <div class=\"col-12 product-image-thumbs\">\n                <div class=\"product-image-thumb active\"><img src=\"../../dist/img/prod-1.jpg\" alt=\"Product Image\"></div>\n                <div class=\"product-image-thumb\" ><img src=\"../../dist/img/prod-2.jpg\" alt=\"Product Image\"></div>\n                <div class=\"product-image-thumb\" ><img src=\"../../dist/img/prod-3.jpg\" alt=\"Product Image\"></div>\n                <div class=\"product-image-thumb\" ><img src=\"../../dist/img/prod-4.jpg\" alt=\"Product Image\"></div>\n                <div class=\"product-image-thumb\" ><img src=\"../../dist/img/prod-5.jpg\" alt=\"Product Image\"></div>\n              </div>\n            </div>\n            <div class=\"col-12 col-sm-6\">\n              <h3 class=\"my-3\">LOWA Men’s Renegade GTX Mid Hiking Boots Review</h3>\n              <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terr.</p>\n\n              <hr>\n              <h4>Available Colors</h4>\n              <div class=\"btn-group btn-group-toggle\" data-toggle=\"buttons\">\n                <label class=\"btn btn-default text-center active\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_a1\" autocomplete=\"off\" checked>\n                  Green\n                  <br>\n                  <i class=\"fas fa-circle fa-2x text-green\"></i>\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_a2\" autocomplete=\"off\">\n                  Blue\n                  <br>\n                  <i class=\"fas fa-circle fa-2x text-blue\"></i>\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_a3\" autocomplete=\"off\">\n                  Purple\n                  <br>\n                  <i class=\"fas fa-circle fa-2x text-purple\"></i>\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_a4\" autocomplete=\"off\">\n                  Red\n                  <br>\n                  <i class=\"fas fa-circle fa-2x text-red\"></i>\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_a5\" autocomplete=\"off\">\n                  Orange\n                  <br>\n                  <i class=\"fas fa-circle fa-2x text-orange\"></i>\n                </label>\n              </div>\n\n              <h4 class=\"mt-3\">Size <small>Please select one</small></h4>\n              <div class=\"btn-group btn-group-toggle\" data-toggle=\"buttons\">\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_b1\" autocomplete=\"off\">\n                  <span class=\"text-xl\">S</span>\n                  <br>\n                  Small\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_b2\" autocomplete=\"off\">\n                  <span class=\"text-xl\">M</span>\n                  <br>\n                  Medium\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_b3\" autocomplete=\"off\">\n                  <span class=\"text-xl\">L</span>\n                  <br>\n                  Large\n                </label>\n                <label class=\"btn btn-default text-center\">\n                  <input type=\"radio\" name=\"color_option\" id=\"color_option_b4\" autocomplete=\"off\">\n                  <span class=\"text-xl\">XL</span>\n                  <br>\n                  Xtra-Large\n                </label>\n              </div>\n\n              <div class=\"bg-gray py-2 px-3 mt-4\">\n                <h2 class=\"mb-0\">\n                  $80.00\n                </h2>\n                <h4 class=\"mt-0\">\n                  <small>Ex Tax: $80.00 </small>\n                </h4>\n              </div>\n\n              <div class=\"mt-4\">\n                <div class=\"btn btn-primary btn-lg btn-flat\">\n                  <i class=\"fas fa-cart-plus fa-lg mr-2\"></i>\n                  Add to Cart\n                </div>\n\n                <div class=\"btn btn-default btn-lg btn-flat\">\n                  <i class=\"fas fa-heart fa-lg mr-2\"></i>\n                  Add to Wishlist\n                </div>\n              </div>\n\n              <div class=\"mt-4 product-share\">\n                <a href=\"#\" class=\"text-gray\">\n                  <i class=\"fab fa-facebook-square fa-2x\"></i>\n                </a>\n                <a href=\"#\" class=\"text-gray\">\n                  <i class=\"fab fa-twitter-square fa-2x\"></i>\n                </a>\n                <a href=\"#\" class=\"text-gray\">\n                  <i class=\"fas fa-envelope-square fa-2x\"></i>\n                </a>\n                <a href=\"#\" class=\"text-gray\">\n                  <i class=\"fas fa-rss-square fa-2x\"></i>\n                </a>\n              </div>\n\n            </div>\n          </div>\n          <div class=\"row mt-4\">\n            <nav class=\"w-100\">\n              <div class=\"nav nav-tabs\" id=\"product-tab\" role=\"tablist\">\n                <a class=\"nav-item nav-link active\" id=\"product-desc-tab\" data-toggle=\"tab\" href=\"#product-desc\" role=\"tab\" aria-controls=\"product-desc\" aria-selected=\"true\">Description</a>\n                <a class=\"nav-item nav-link\" id=\"product-comments-tab\" data-toggle=\"tab\" href=\"#product-comments\" role=\"tab\" aria-controls=\"product-comments\" aria-selected=\"false\">Comments</a>\n                <a class=\"nav-item nav-link\" id=\"product-rating-tab\" data-toggle=\"tab\" href=\"#product-rating\" role=\"tab\" aria-controls=\"product-rating\" aria-selected=\"false\">Rating</a>\n              </div>\n            </nav>\n            <div class=\"tab-content p-3\" id=\"nav-tabContent\">\n              <div class=\"tab-pane fade show active\" id=\"product-desc\" role=\"tabpanel\" aria-labelledby=\"product-desc-tab\"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vitae condimentum erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed posuere, purus at efficitur hendrerit, augue elit lacinia arcu, a eleifend sem elit et nunc. Sed rutrum vestibulum est, sit amet cursus dolor fermentum vel. Suspendisse mi nibh, congue et ante et, commodo mattis lacus. Duis varius finibus purus sed venenatis. Vivamus varius metus quam, id dapibus velit mattis eu. Praesent et semper risus. Vestibulum erat erat, condimentum at elit at, bibendum placerat orci. Nullam gravida velit mauris, in pellentesque urna pellentesque viverra. Nullam non pellentesque justo, et ultricies neque. Praesent vel metus rutrum, tempus erat a, rutrum ante. Quisque interdum efficitur nunc vitae consectetur. Suspendisse venenatis, tortor non convallis interdum, urna mi molestie eros, vel tempor justo lacus ac justo. Fusce id enim a erat fringilla sollicitudin ultrices vel metus. </div>\n              <div class=\"tab-pane fade\" id=\"product-comments\" role=\"tabpanel\" aria-labelledby=\"product-comments-tab\"> Vivamus rhoncus nisl sed venenatis luctus. Sed condimentum risus ut tortor feugiat laoreet. Suspendisse potenti. Donec et finibus sem, ut commodo lectus. Cras eget neque dignissim, placerat orci interdum, venenatis odio. Nulla turpis elit, consequat eu eros ac, consectetur fringilla urna. Duis gravida ex pulvinar mauris ornare, eget porttitor enim vulputate. Mauris hendrerit, massa nec aliquam cursus, ex elit euismod lorem, vehicula rhoncus nisl dui sit amet eros. Nulla turpis lorem, dignissim a sapien eget, ultrices venenatis dolor. Curabitur vel turpis at magna elementum hendrerit vel id dui. Curabitur a ex ullamcorper, ornare velit vel, tincidunt ipsum. </div>\n              <div class=\"tab-pane fade\" id=\"product-rating\" role=\"tabpanel\" aria-labelledby=\"product-rating-tab\"> Cras ut ipsum ornare, aliquam ipsum non, posuere elit. In hac habitasse platea dictumst. Aenean elementum leo augue, id fermentum risus efficitur vel. Nulla iaculis malesuada scelerisque. Praesent vel ipsum felis. Ut molestie, purus aliquam placerat sollicitudin, mi ligula euismod neque, non bibendum nibh neque et erat. Etiam dignissim aliquam ligula, aliquet feugiat nibh rhoncus ut. Aliquam efficitur lacinia lacinia. Morbi ac molestie lectus, vitae hendrerit nisl. Nullam metus odio, malesuada in vehicula at, consectetur nec justo. Quisque suscipit odio velit, at accumsan urna vestibulum a. Proin dictum, urna ut varius consectetur, sapien justo porta lectus, at mollis nisi orci et nulla. Donec pellentesque tortor vel nisl commodo ullamcorper. Donec varius massa at semper posuere. Integer finibus orci vitae vehicula placerat. </div>\n            </div>\n          </div>\n        </div>\n        <!-- /.card-body -->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<script>\n  $(document).ready(function() {\n    $('.product-image-thumb').on('click', function () {\n      var $image_element = $(this).find('img')\n      $('.product-image').prop('src', $image_element.attr('src'))\n      $('.product-image-thumb.active').removeClass('active')\n      $(this).addClass('active')\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/faq.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | FAQ</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>FAQ</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">FAQ</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n        <div class=\"row\">\n            <div class=\"col-12\" id=\"accordion\">\n                <div class=\"card card-primary card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseOne\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                1. Lorem ipsum dolor sit amet\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseOne\" class=\"collapse show\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-primary card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseTwo\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                2. Aenean massa\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseTwo\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-primary card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseThree\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                3. Donec quam felis\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseThree\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-warning card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseFour\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                4. Donec pede justo\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseFour\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-warning card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseFive\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                5. In enim justo\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseFive\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-warning card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseSix\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                6. Integer tincidunt\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseSix\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-danger card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseSeven\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                7. Aenean leo ligula\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseSeven\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-danger card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseEight\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                8. Aliquam lorem ante\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseEight\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card card-danger card-outline\">\n                    <a class=\"d-block w-100\" data-toggle=\"collapse\" href=\"#collapseNine\">\n                        <div class=\"card-header\">\n                            <h4 class=\"card-title w-100\">\n                                9.  Quisque rutrum\n                            </h4>\n                        </div>\n                    </a>\n                    <div id=\"collapseNine\" class=\"collapse\" data-parent=\"#accordion\">\n                        <div class=\"card-body\">\n                            Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi.\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-12 mt-3 text-center\">\n                <p class=\"lead\">\n                    <a href=\"contact-us.html\">Contact us</a>,\n                    if you found not the right anwser or you have a other question?<br />\n                </p>\n            </div>\n        </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/forgot-password-v2.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Forgot Password (v2)</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <div class=\"card card-outline card-primary\">\n    <div class=\"card-header text-center\">\n      <a href=\"../../index2.html\" class=\"h1\"><b>Admin</b>LTE</a>\n    </div>\n    <div class=\"card-body\">\n      <p class=\"login-box-msg\">You forgot your password? Here you can easily retrieve a new password.</p>\n      <form action=\"recover-password.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Request new password</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n      <p class=\"mt-3 mb-1\">\n        <a href=\"login.html\">Login</a>\n      </p>\n    </div>\n    <!-- /.login-card-body -->\n  </div>\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/forgot-password.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Forgot Password</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <div class=\"login-logo\">\n    <a href=\"../../index2.html\"><b>Admin</b>LTE</a>\n  </div>\n  <!-- /.login-logo -->\n  <div class=\"card\">\n    <div class=\"card-body login-card-body\">\n      <p class=\"login-box-msg\">You forgot your password? Here you can easily retrieve a new password.</p>\n\n      <form action=\"recover-password.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Request new password</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <p class=\"mt-3 mb-1\">\n        <a href=\"login.html\">Login</a>\n      </p>\n      <p class=\"mb-0\">\n        <a href=\"register.html\" class=\"text-center\">Register a new membership</a>\n      </p>\n    </div>\n    <!-- /.login-card-body -->\n  </div>\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/invoice-print.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Invoice Print</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body>\n<div class=\"wrapper\">\n  <!-- Main content -->\n  <section class=\"invoice\">\n    <!-- title row -->\n    <div class=\"row\">\n      <div class=\"col-12\">\n        <h2 class=\"page-header\">\n          <i class=\"fas fa-globe\"></i> AdminLTE, Inc.\n          <small class=\"float-right\">Date: 2/10/2014</small>\n        </h2>\n      </div>\n      <!-- /.col -->\n    </div>\n    <!-- info row -->\n    <div class=\"row invoice-info\">\n      <div class=\"col-sm-4 invoice-col\">\n        From\n        <address>\n          <strong>Admin, Inc.</strong><br>\n          795 Folsom Ave, Suite 600<br>\n          San Francisco, CA 94107<br>\n          Phone: (804) 123-5432<br>\n          Email: info@almasaeedstudio.com\n        </address>\n      </div>\n      <!-- /.col -->\n      <div class=\"col-sm-4 invoice-col\">\n        To\n        <address>\n          <strong>John Doe</strong><br>\n          795 Folsom Ave, Suite 600<br>\n          San Francisco, CA 94107<br>\n          Phone: (555) 539-1037<br>\n          Email: john.doe@example.com\n        </address>\n      </div>\n      <!-- /.col -->\n      <div class=\"col-sm-4 invoice-col\">\n        <b>Invoice #007612</b><br>\n        <br>\n        <b>Order ID:</b> 4F3S8J<br>\n        <b>Payment Due:</b> 2/22/2014<br>\n        <b>Account:</b> 968-34567\n      </div>\n      <!-- /.col -->\n    </div>\n    <!-- /.row -->\n\n    <!-- Table row -->\n    <div class=\"row\">\n      <div class=\"col-12 table-responsive\">\n        <table class=\"table table-striped\">\n          <thead>\n          <tr>\n            <th>Qty</th>\n            <th>Product</th>\n            <th>Serial #</th>\n            <th>Description</th>\n            <th>Subtotal</th>\n          </tr>\n          </thead>\n          <tbody>\n          <tr>\n            <td>1</td>\n            <td>Call of Duty</td>\n            <td>455-981-221</td>\n            <td>El snort testosterone trophy driving gloves handsome</td>\n            <td>$64.50</td>\n          </tr>\n          <tr>\n            <td>1</td>\n            <td>Need for Speed IV</td>\n            <td>247-925-726</td>\n            <td>Wes Anderson umami biodiesel</td>\n            <td>$50.00</td>\n          </tr>\n          <tr>\n            <td>1</td>\n            <td>Monsters DVD</td>\n            <td>735-845-642</td>\n            <td>Terry Richardson helvetica tousled street art master</td>\n            <td>$10.70</td>\n          </tr>\n          <tr>\n            <td>1</td>\n            <td>Grown Ups Blue Ray</td>\n            <td>422-568-642</td>\n            <td>Tousled lomo letterpress</td>\n            <td>$25.99</td>\n          </tr>\n          </tbody>\n        </table>\n      </div>\n      <!-- /.col -->\n    </div>\n    <!-- /.row -->\n\n    <div class=\"row\">\n      <!-- accepted payments column -->\n      <div class=\"col-6\">\n        <p class=\"lead\">Payment Methods:</p>\n        <img src=\"../../dist/img/credit/visa.png\" alt=\"Visa\">\n        <img src=\"../../dist/img/credit/mastercard.png\" alt=\"Mastercard\">\n        <img src=\"../../dist/img/credit/american-express.png\" alt=\"American Express\">\n        <img src=\"../../dist/img/credit/paypal2.png\" alt=\"Paypal\">\n\n        <p class=\"text-muted well well-sm shadow-none\" style=\"margin-top: 10px;\">\n          Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg dopplr\n          jibjab, movity jajah plickers sifteo edmodo ifttt zimbra.\n        </p>\n      </div>\n      <!-- /.col -->\n      <div class=\"col-6\">\n        <p class=\"lead\">Amount Due 2/22/2014</p>\n\n        <div class=\"table-responsive\">\n          <table class=\"table\">\n            <tr>\n              <th style=\"width:50%\">Subtotal:</th>\n              <td>$250.30</td>\n            </tr>\n            <tr>\n              <th>Tax (9.3%)</th>\n              <td>$10.34</td>\n            </tr>\n            <tr>\n              <th>Shipping:</th>\n              <td>$5.80</td>\n            </tr>\n            <tr>\n              <th>Total:</th>\n              <td>$265.24</td>\n            </tr>\n          </table>\n        </div>\n      </div>\n      <!-- /.col -->\n    </div>\n    <!-- /.row -->\n  </section>\n  <!-- /.content -->\n</div>\n<!-- ./wrapper -->\n<!-- Page specific script -->\n<script>\n  window.addEventListener(\"load\", window.print());\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/invoice.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Invoice</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Invoice</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Invoice</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"callout callout-info\">\n              <h5><i class=\"fas fa-info\"></i> Note:</h5>\n              This page has been enhanced for printing. Click the print button at the bottom of the invoice to test.\n            </div>\n\n\n            <!-- Main content -->\n            <div class=\"invoice p-3 mb-3\">\n              <!-- title row -->\n              <div class=\"row\">\n                <div class=\"col-12\">\n                  <h4>\n                    <i class=\"fas fa-globe\"></i> AdminLTE, Inc.\n                    <small class=\"float-right\">Date: 2/10/2014</small>\n                  </h4>\n                </div>\n                <!-- /.col -->\n              </div>\n              <!-- info row -->\n              <div class=\"row invoice-info\">\n                <div class=\"col-sm-4 invoice-col\">\n                  From\n                  <address>\n                    <strong>Admin, Inc.</strong><br>\n                    795 Folsom Ave, Suite 600<br>\n                    San Francisco, CA 94107<br>\n                    Phone: (804) 123-5432<br>\n                    Email: info@almasaeedstudio.com\n                  </address>\n                </div>\n                <!-- /.col -->\n                <div class=\"col-sm-4 invoice-col\">\n                  To\n                  <address>\n                    <strong>John Doe</strong><br>\n                    795 Folsom Ave, Suite 600<br>\n                    San Francisco, CA 94107<br>\n                    Phone: (555) 539-1037<br>\n                    Email: john.doe@example.com\n                  </address>\n                </div>\n                <!-- /.col -->\n                <div class=\"col-sm-4 invoice-col\">\n                  <b>Invoice #007612</b><br>\n                  <br>\n                  <b>Order ID:</b> 4F3S8J<br>\n                  <b>Payment Due:</b> 2/22/2014<br>\n                  <b>Account:</b> 968-34567\n                </div>\n                <!-- /.col -->\n              </div>\n              <!-- /.row -->\n\n              <!-- Table row -->\n              <div class=\"row\">\n                <div class=\"col-12 table-responsive\">\n                  <table class=\"table table-striped\">\n                    <thead>\n                    <tr>\n                      <th>Qty</th>\n                      <th>Product</th>\n                      <th>Serial #</th>\n                      <th>Description</th>\n                      <th>Subtotal</th>\n                    </tr>\n                    </thead>\n                    <tbody>\n                    <tr>\n                      <td>1</td>\n                      <td>Call of Duty</td>\n                      <td>455-981-221</td>\n                      <td>El snort testosterone trophy driving gloves handsome</td>\n                      <td>$64.50</td>\n                    </tr>\n                    <tr>\n                      <td>1</td>\n                      <td>Need for Speed IV</td>\n                      <td>247-925-726</td>\n                      <td>Wes Anderson umami biodiesel</td>\n                      <td>$50.00</td>\n                    </tr>\n                    <tr>\n                      <td>1</td>\n                      <td>Monsters DVD</td>\n                      <td>735-845-642</td>\n                      <td>Terry Richardson helvetica tousled street art master</td>\n                      <td>$10.70</td>\n                    </tr>\n                    <tr>\n                      <td>1</td>\n                      <td>Grown Ups Blue Ray</td>\n                      <td>422-568-642</td>\n                      <td>Tousled lomo letterpress</td>\n                      <td>$25.99</td>\n                    </tr>\n                    </tbody>\n                  </table>\n                </div>\n                <!-- /.col -->\n              </div>\n              <!-- /.row -->\n\n              <div class=\"row\">\n                <!-- accepted payments column -->\n                <div class=\"col-6\">\n                  <p class=\"lead\">Payment Methods:</p>\n                  <img src=\"../../dist/img/credit/visa.png\" alt=\"Visa\">\n                  <img src=\"../../dist/img/credit/mastercard.png\" alt=\"Mastercard\">\n                  <img src=\"../../dist/img/credit/american-express.png\" alt=\"American Express\">\n                  <img src=\"../../dist/img/credit/paypal2.png\" alt=\"Paypal\">\n\n                  <p class=\"text-muted well well-sm shadow-none\" style=\"margin-top: 10px;\">\n                    Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem\n                    plugg\n                    dopplr jibjab, movity jajah plickers sifteo edmodo ifttt zimbra.\n                  </p>\n                </div>\n                <!-- /.col -->\n                <div class=\"col-6\">\n                  <p class=\"lead\">Amount Due 2/22/2014</p>\n\n                  <div class=\"table-responsive\">\n                    <table class=\"table\">\n                      <tr>\n                        <th style=\"width:50%\">Subtotal:</th>\n                        <td>$250.30</td>\n                      </tr>\n                      <tr>\n                        <th>Tax (9.3%)</th>\n                        <td>$10.34</td>\n                      </tr>\n                      <tr>\n                        <th>Shipping:</th>\n                        <td>$5.80</td>\n                      </tr>\n                      <tr>\n                        <th>Total:</th>\n                        <td>$265.24</td>\n                      </tr>\n                    </table>\n                  </div>\n                </div>\n                <!-- /.col -->\n              </div>\n              <!-- /.row -->\n\n              <!-- this row will not appear when printing -->\n              <div class=\"row no-print\">\n                <div class=\"col-12\">\n                  <a href=\"invoice-print.html\" rel=\"noopener\" target=\"_blank\" class=\"btn btn-default\"><i class=\"fas fa-print\"></i> Print</a>\n                  <button type=\"button\" class=\"btn btn-success float-right\"><i class=\"far fa-credit-card\"></i> Submit\n                    Payment\n                  </button>\n                  <button type=\"button\" class=\"btn btn-primary float-right\" style=\"margin-right: 5px;\">\n                    <i class=\"fas fa-download\"></i> Generate PDF\n                  </button>\n                </div>\n              </div>\n            </div>\n            <!-- /.invoice -->\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer no-print\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/language-menu.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Language Menu</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- flag-icon-css -->\n  <link rel=\"stylesheet\" href=\"../../plugins/flag-icon-css/css/flag-icon.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <!-- Language Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"flag-icon flag-icon-us\"></i>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-right p-0\">\n          <a href=\"#\" class=\"dropdown-item active\">\n            <i class=\"flag-icon flag-icon-us mr-2\"></i> English\n          </a>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"flag-icon flag-icon-de mr-2\"></i> German\n          </a>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"flag-icon flag-icon-fr mr-2\"></i> French\n          </a>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"flag-icon flag-icon-es mr-2\"></i> Spanish\n          </a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Language Menu</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Language Menu</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Title</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body\">\n          Check the Header part you can find Language Changing Options with Icon.\n          <br>\n          Start creating your amazing application!\n        </div>\n        <!-- /.card-body -->\n        <div class=\"card-footer\">\n          Footer\n        </div>\n        <!-- /.card-footer-->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/legacy-user-menu.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Legacy User Menu</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item dropdown user-menu\">\n        <a href=\"#\" class=\"nav-link dropdown-toggle\" data-toggle=\"dropdown\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"user-image img-circle elevation-2\" alt=\"User Image\">\n          <span class=\"d-none d-md-inline\">Alexander Pierce</span>\n        </a>\n        <ul class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <!-- User image -->\n          <li class=\"user-header bg-primary\">\n            <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n\n            <p>\n              Alexander Pierce - Web Developer\n              <small>Member since Nov. 2012</small>\n            </p>\n          </li>\n          <!-- Menu Body -->\n          <li class=\"user-body\">\n            <div class=\"row\">\n              <div class=\"col-4 text-center\">\n                <a href=\"#\">Followers</a>\n              </div>\n              <div class=\"col-4 text-center\">\n                <a href=\"#\">Sales</a>\n              </div>\n              <div class=\"col-4 text-center\">\n                <a href=\"#\">Friends</a>\n              </div>\n            </div>\n            <!-- /.row -->\n          </li>\n          <!-- Menu Footer-->\n          <li class=\"user-footer\">\n            <a href=\"#\" class=\"btn btn-default btn-flat\">Profile</a>\n            <a href=\"#\" class=\"btn btn-default btn-flat float-right\">Sign out</a>\n          </li>\n        </ul>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline mt-2\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Legacy User Menu</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Legacy User Menu</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Title</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body\">\n          Check the Header part you can find Legacy vesion of style.\n          <br>\n          Start creating your amazing application!\n        </div>\n        <!-- /.card-body -->\n        <div class=\"card-footer\">\n          Footer\n        </div>\n        <!-- /.card-footer-->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/lockscreen.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Lockscreen</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition lockscreen\">\n<!-- Automatic element centering -->\n<div class=\"lockscreen-wrapper\">\n  <div class=\"lockscreen-logo\">\n    <a href=\"../../index2.html\"><b>Admin</b>LTE</a>\n  </div>\n  <!-- User name -->\n  <div class=\"lockscreen-name\">John Doe</div>\n\n  <!-- START LOCK SCREEN ITEM -->\n  <div class=\"lockscreen-item\">\n    <!-- lockscreen image -->\n    <div class=\"lockscreen-image\">\n      <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Image\">\n    </div>\n    <!-- /.lockscreen-image -->\n\n    <!-- lockscreen credentials (contains the form) -->\n    <form class=\"lockscreen-credentials\">\n      <div class=\"input-group\">\n        <input type=\"password\" class=\"form-control\" placeholder=\"password\">\n\n        <div class=\"input-group-append\">\n          <button type=\"button\" class=\"btn\">\n            <i class=\"fas fa-arrow-right text-muted\"></i>\n          </button>\n        </div>\n      </div>\n    </form>\n    <!-- /.lockscreen credentials -->\n\n  </div>\n  <!-- /.lockscreen-item -->\n  <div class=\"help-block text-center\">\n    Enter your password to retrieve your session\n  </div>\n  <div class=\"text-center\">\n    <a href=\"login.html\">Or sign in as a different user</a>\n  </div>\n  <div class=\"lockscreen-footer text-center\">\n    Copyright &copy; 2014-2021 <b><a href=\"https://adminlte.io\" class=\"text-black\">AdminLTE.io</a></b><br>\n    All rights reserved\n  </div>\n</div>\n<!-- /.center -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/login-v2.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Log in (v2)</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <!-- /.login-logo -->\n  <div class=\"card card-outline card-primary\">\n    <div class=\"card-header text-center\">\n      <a href=\"../../index2.html\" class=\"h1\"><b>Admin</b>LTE</a>\n    </div>\n    <div class=\"card-body\">\n      <p class=\"login-box-msg\">Sign in to start your session</p>\n\n      <form action=\"../../index3.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-8\">\n            <div class=\"icheck-primary\">\n              <input type=\"checkbox\" id=\"remember\">\n              <label for=\"remember\">\n                Remember Me\n              </label>\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-4\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Sign In</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <div class=\"social-auth-links text-center mt-2 mb-3\">\n        <a href=\"#\" class=\"btn btn-block btn-primary\">\n          <i class=\"fab fa-facebook mr-2\"></i> Sign in using Facebook\n        </a>\n        <a href=\"#\" class=\"btn btn-block btn-danger\">\n          <i class=\"fab fa-google-plus mr-2\"></i> Sign in using Google+\n        </a>\n      </div>\n      <!-- /.social-auth-links -->\n\n      <p class=\"mb-1\">\n        <a href=\"forgot-password.html\">I forgot my password</a>\n      </p>\n      <p class=\"mb-0\">\n        <a href=\"register.html\" class=\"text-center\">Register a new membership</a>\n      </p>\n    </div>\n    <!-- /.card-body -->\n  </div>\n  <!-- /.card -->\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/login.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Log in</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <div class=\"login-logo\">\n    <a href=\"../../index2.html\"><b>Admin</b>LTE</a>\n  </div>\n  <!-- /.login-logo -->\n  <div class=\"card\">\n    <div class=\"card-body login-card-body\">\n      <p class=\"login-box-msg\">Sign in to start your session</p>\n\n      <form action=\"../../index3.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-8\">\n            <div class=\"icheck-primary\">\n              <input type=\"checkbox\" id=\"remember\">\n              <label for=\"remember\">\n                Remember Me\n              </label>\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-4\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Sign In</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <div class=\"social-auth-links text-center mb-3\">\n        <p>- OR -</p>\n        <a href=\"#\" class=\"btn btn-block btn-primary\">\n          <i class=\"fab fa-facebook mr-2\"></i> Sign in using Facebook\n        </a>\n        <a href=\"#\" class=\"btn btn-block btn-danger\">\n          <i class=\"fab fa-google-plus mr-2\"></i> Sign in using Google+\n        </a>\n      </div>\n      <!-- /.social-auth-links -->\n\n      <p class=\"mb-1\">\n        <a href=\"forgot-password.html\">I forgot my password</a>\n      </p>\n      <p class=\"mb-0\">\n        <a href=\"register.html\" class=\"text-center\">Register a new membership</a>\n      </p>\n    </div>\n    <!-- /.login-card-body -->\n  </div>\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/pace.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Pace</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- pace-progress -->\n  <link rel=\"stylesheet\" href=\"../../plugins/pace-progress/themes/black/pace-theme-flat-top.css\">\n  <!-- adminlte-->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini pace-primary\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Pace</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Pace</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Title</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body\">\n          You can Change Pace Styles, Checkout the <a href=\"https://adminlte.io/docs/3.1/\" target=\"_blank\" rel=\"noopener noreferrer\">AdminLTE Official Docs</a> in Online.\n          <br>\n          Start creating your amazing application!\n        </div>\n        <!-- /.card-body -->\n        <div class=\"card-footer\">\n          Footer\n        </div>\n        <!-- /.card-footer-->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n  <!-- pace-progress -->\n<script src=\"../../plugins/pace-progress/pace.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/profile.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | User Profile</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Profile</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">User Profile</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n\n            <!-- Profile Image -->\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-body box-profile\">\n                <div class=\"text-center\">\n                  <img class=\"profile-user-img img-fluid img-circle\"\n                       src=\"../../dist/img/user4-128x128.jpg\"\n                       alt=\"User profile picture\">\n                </div>\n\n                <h3 class=\"profile-username text-center\">Nina Mcintire</h3>\n\n                <p class=\"text-muted text-center\">Software Engineer</p>\n\n                <ul class=\"list-group list-group-unbordered mb-3\">\n                  <li class=\"list-group-item\">\n                    <b>Followers</b> <a class=\"float-right\">1,322</a>\n                  </li>\n                  <li class=\"list-group-item\">\n                    <b>Following</b> <a class=\"float-right\">543</a>\n                  </li>\n                  <li class=\"list-group-item\">\n                    <b>Friends</b> <a class=\"float-right\">13,287</a>\n                  </li>\n                </ul>\n\n                <a href=\"#\" class=\"btn btn-primary btn-block\"><b>Follow</b></a>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- About Me Box -->\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">About Me</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <strong><i class=\"fas fa-book mr-1\"></i> Education</strong>\n\n                <p class=\"text-muted\">\n                  B.S. in Computer Science from the University of Tennessee at Knoxville\n                </p>\n\n                <hr>\n\n                <strong><i class=\"fas fa-map-marker-alt mr-1\"></i> Location</strong>\n\n                <p class=\"text-muted\">Malibu, California</p>\n\n                <hr>\n\n                <strong><i class=\"fas fa-pencil-alt mr-1\"></i> Skills</strong>\n\n                <p class=\"text-muted\">\n                  <span class=\"tag tag-danger\">UI Design</span>\n                  <span class=\"tag tag-success\">Coding</span>\n                  <span class=\"tag tag-info\">Javascript</span>\n                  <span class=\"tag tag-warning\">PHP</span>\n                  <span class=\"tag tag-primary\">Node.js</span>\n                </p>\n\n                <hr>\n\n                <strong><i class=\"far fa-file-alt mr-1\"></i> Notes</strong>\n\n                <p class=\"text-muted\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam fermentum enim neque.</p>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-9\">\n            <div class=\"card\">\n              <div class=\"card-header p-2\">\n                <ul class=\"nav nav-pills\">\n                  <li class=\"nav-item\"><a class=\"nav-link active\" href=\"#activity\" data-toggle=\"tab\">Activity</a></li>\n                  <li class=\"nav-item\"><a class=\"nav-link\" href=\"#timeline\" data-toggle=\"tab\">Timeline</a></li>\n                  <li class=\"nav-item\"><a class=\"nav-link\" href=\"#settings\" data-toggle=\"tab\">Settings</a></li>\n                </ul>\n              </div><!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"tab-content\">\n                  <div class=\"active tab-pane\" id=\"activity\">\n                    <!-- Post -->\n                    <div class=\"post\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user1-128x128.jpg\" alt=\"user image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Jonathan Burke Jr.</a>\n                          <a href=\"#\" class=\"float-right btn-tool\"><i class=\"fas fa-times\"></i></a>\n                        </span>\n                        <span class=\"description\">Shared publicly - 7:30 PM today</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <p>\n                        Lorem ipsum represents a long-held tradition for designers,\n                        typographers and the like. Some people hate it and argue for\n                        its demise, but others ignore the hate as they create awesome\n                        tools to help create filler text for everyone from bacon lovers\n                        to Charlie Sheen fans.\n                      </p>\n\n                      <p>\n                        <a href=\"#\" class=\"link-black text-sm mr-2\"><i class=\"fas fa-share mr-1\"></i> Share</a>\n                        <a href=\"#\" class=\"link-black text-sm\"><i class=\"far fa-thumbs-up mr-1\"></i> Like</a>\n                        <span class=\"float-right\">\n                          <a href=\"#\" class=\"link-black text-sm\">\n                            <i class=\"far fa-comments mr-1\"></i> Comments (5)\n                          </a>\n                        </span>\n                      </p>\n\n                      <input class=\"form-control form-control-sm\" type=\"text\" placeholder=\"Type a comment\">\n                    </div>\n                    <!-- /.post -->\n\n                    <!-- Post -->\n                    <div class=\"post clearfix\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user7-128x128.jpg\" alt=\"User Image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Sarah Ross</a>\n                          <a href=\"#\" class=\"float-right btn-tool\"><i class=\"fas fa-times\"></i></a>\n                        </span>\n                        <span class=\"description\">Sent you a message - 3 days ago</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <p>\n                        Lorem ipsum represents a long-held tradition for designers,\n                        typographers and the like. Some people hate it and argue for\n                        its demise, but others ignore the hate as they create awesome\n                        tools to help create filler text for everyone from bacon lovers\n                        to Charlie Sheen fans.\n                      </p>\n\n                      <form class=\"form-horizontal\">\n                        <div class=\"input-group input-group-sm mb-0\">\n                          <input class=\"form-control form-control-sm\" placeholder=\"Response\">\n                          <div class=\"input-group-append\">\n                            <button type=\"submit\" class=\"btn btn-danger\">Send</button>\n                          </div>\n                        </div>\n                      </form>\n                    </div>\n                    <!-- /.post -->\n\n                    <!-- Post -->\n                    <div class=\"post\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user6-128x128.jpg\" alt=\"User Image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Adam Jones</a>\n                          <a href=\"#\" class=\"float-right btn-tool\"><i class=\"fas fa-times\"></i></a>\n                        </span>\n                        <span class=\"description\">Posted 5 photos - 5 days ago</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <div class=\"row mb-3\">\n                        <div class=\"col-sm-6\">\n                          <img class=\"img-fluid\" src=\"../../dist/img/photo1.png\" alt=\"Photo\">\n                        </div>\n                        <!-- /.col -->\n                        <div class=\"col-sm-6\">\n                          <div class=\"row\">\n                            <div class=\"col-sm-6\">\n                              <img class=\"img-fluid mb-3\" src=\"../../dist/img/photo2.png\" alt=\"Photo\">\n                              <img class=\"img-fluid\" src=\"../../dist/img/photo3.jpg\" alt=\"Photo\">\n                            </div>\n                            <!-- /.col -->\n                            <div class=\"col-sm-6\">\n                              <img class=\"img-fluid mb-3\" src=\"../../dist/img/photo4.jpg\" alt=\"Photo\">\n                              <img class=\"img-fluid\" src=\"../../dist/img/photo1.png\" alt=\"Photo\">\n                            </div>\n                            <!-- /.col -->\n                          </div>\n                          <!-- /.row -->\n                        </div>\n                        <!-- /.col -->\n                      </div>\n                      <!-- /.row -->\n\n                      <p>\n                        <a href=\"#\" class=\"link-black text-sm mr-2\"><i class=\"fas fa-share mr-1\"></i> Share</a>\n                        <a href=\"#\" class=\"link-black text-sm\"><i class=\"far fa-thumbs-up mr-1\"></i> Like</a>\n                        <span class=\"float-right\">\n                          <a href=\"#\" class=\"link-black text-sm\">\n                            <i class=\"far fa-comments mr-1\"></i> Comments (5)\n                          </a>\n                        </span>\n                      </p>\n\n                      <input class=\"form-control form-control-sm\" type=\"text\" placeholder=\"Type a comment\">\n                    </div>\n                    <!-- /.post -->\n                  </div>\n                  <!-- /.tab-pane -->\n                  <div class=\"tab-pane\" id=\"timeline\">\n                    <!-- The timeline -->\n                    <div class=\"timeline timeline-inverse\">\n                      <!-- timeline time label -->\n                      <div class=\"time-label\">\n                        <span class=\"bg-danger\">\n                          10 Feb. 2014\n                        </span>\n                      </div>\n                      <!-- /.timeline-label -->\n                      <!-- timeline item -->\n                      <div>\n                        <i class=\"fas fa-envelope bg-primary\"></i>\n\n                        <div class=\"timeline-item\">\n                          <span class=\"time\"><i class=\"far fa-clock\"></i> 12:05</span>\n\n                          <h3 class=\"timeline-header\"><a href=\"#\">Support Team</a> sent you an email</h3>\n\n                          <div class=\"timeline-body\">\n                            Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles,\n                            weebly ning heekya handango imeem plugg dopplr jibjab, movity\n                            jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle\n                            quora plaxo ideeli hulu weebly balihoo...\n                          </div>\n                          <div class=\"timeline-footer\">\n                            <a href=\"#\" class=\"btn btn-primary btn-sm\">Read more</a>\n                            <a href=\"#\" class=\"btn btn-danger btn-sm\">Delete</a>\n                          </div>\n                        </div>\n                      </div>\n                      <!-- END timeline item -->\n                      <!-- timeline item -->\n                      <div>\n                        <i class=\"fas fa-user bg-info\"></i>\n\n                        <div class=\"timeline-item\">\n                          <span class=\"time\"><i class=\"far fa-clock\"></i> 5 mins ago</span>\n\n                          <h3 class=\"timeline-header border-0\"><a href=\"#\">Sarah Young</a> accepted your friend request\n                          </h3>\n                        </div>\n                      </div>\n                      <!-- END timeline item -->\n                      <!-- timeline item -->\n                      <div>\n                        <i class=\"fas fa-comments bg-warning\"></i>\n\n                        <div class=\"timeline-item\">\n                          <span class=\"time\"><i class=\"far fa-clock\"></i> 27 mins ago</span>\n\n                          <h3 class=\"timeline-header\"><a href=\"#\">Jay White</a> commented on your post</h3>\n\n                          <div class=\"timeline-body\">\n                            Take me to your leader!\n                            Switzerland is small and neutral!\n                            We are more like Germany, ambitious and misunderstood!\n                          </div>\n                          <div class=\"timeline-footer\">\n                            <a href=\"#\" class=\"btn btn-warning btn-flat btn-sm\">View comment</a>\n                          </div>\n                        </div>\n                      </div>\n                      <!-- END timeline item -->\n                      <!-- timeline time label -->\n                      <div class=\"time-label\">\n                        <span class=\"bg-success\">\n                          3 Jan. 2014\n                        </span>\n                      </div>\n                      <!-- /.timeline-label -->\n                      <!-- timeline item -->\n                      <div>\n                        <i class=\"fas fa-camera bg-purple\"></i>\n\n                        <div class=\"timeline-item\">\n                          <span class=\"time\"><i class=\"far fa-clock\"></i> 2 days ago</span>\n\n                          <h3 class=\"timeline-header\"><a href=\"#\">Mina Lee</a> uploaded new photos</h3>\n\n                          <div class=\"timeline-body\">\n                            <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                            <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                            <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                            <img src=\"https://placehold.it/150x100\" alt=\"...\">\n                          </div>\n                        </div>\n                      </div>\n                      <!-- END timeline item -->\n                      <div>\n                        <i class=\"far fa-clock bg-gray\"></i>\n                      </div>\n                    </div>\n                  </div>\n                  <!-- /.tab-pane -->\n\n                  <div class=\"tab-pane\" id=\"settings\">\n                    <form class=\"form-horizontal\">\n                      <div class=\"form-group row\">\n                        <label for=\"inputName\" class=\"col-sm-2 col-form-label\">Name</label>\n                        <div class=\"col-sm-10\">\n                          <input type=\"email\" class=\"form-control\" id=\"inputName\" placeholder=\"Name\">\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <label for=\"inputEmail\" class=\"col-sm-2 col-form-label\">Email</label>\n                        <div class=\"col-sm-10\">\n                          <input type=\"email\" class=\"form-control\" id=\"inputEmail\" placeholder=\"Email\">\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <label for=\"inputName2\" class=\"col-sm-2 col-form-label\">Name</label>\n                        <div class=\"col-sm-10\">\n                          <input type=\"text\" class=\"form-control\" id=\"inputName2\" placeholder=\"Name\">\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <label for=\"inputExperience\" class=\"col-sm-2 col-form-label\">Experience</label>\n                        <div class=\"col-sm-10\">\n                          <textarea class=\"form-control\" id=\"inputExperience\" placeholder=\"Experience\"></textarea>\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <label for=\"inputSkills\" class=\"col-sm-2 col-form-label\">Skills</label>\n                        <div class=\"col-sm-10\">\n                          <input type=\"text\" class=\"form-control\" id=\"inputSkills\" placeholder=\"Skills\">\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <div class=\"offset-sm-2 col-sm-10\">\n                          <div class=\"checkbox\">\n                            <label>\n                              <input type=\"checkbox\"> I agree to the <a href=\"#\">terms and conditions</a>\n                            </label>\n                          </div>\n                        </div>\n                      </div>\n                      <div class=\"form-group row\">\n                        <div class=\"offset-sm-2 col-sm-10\">\n                          <button type=\"submit\" class=\"btn btn-danger\">Submit</button>\n                        </div>\n                      </div>\n                    </form>\n                  </div>\n                  <!-- /.tab-pane -->\n                </div>\n                <!-- /.tab-content -->\n              </div><!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/project-add.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Project Add</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Project Add</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Project Add</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"row\">\n        <div class=\"col-md-6\">\n          <div class=\"card card-primary\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">General</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body\">\n              <div class=\"form-group\">\n                <label for=\"inputName\">Project Name</label>\n                <input type=\"text\" id=\"inputName\" class=\"form-control\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputDescription\">Project Description</label>\n                <textarea id=\"inputDescription\" class=\"form-control\" rows=\"4\"></textarea>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputStatus\">Status</label>\n                <select id=\"inputStatus\" class=\"form-control custom-select\">\n                  <option selected disabled>Select one</option>\n                  <option>On Hold</option>\n                  <option>Canceled</option>\n                  <option>Success</option>\n                </select>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputClientCompany\">Client Company</label>\n                <input type=\"text\" id=\"inputClientCompany\" class=\"form-control\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputProjectLeader\">Project Leader</label>\n                <input type=\"text\" id=\"inputProjectLeader\" class=\"form-control\">\n              </div>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n        </div>\n        <div class=\"col-md-6\">\n          <div class=\"card card-secondary\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Budget</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body\">\n              <div class=\"form-group\">\n                <label for=\"inputEstimatedBudget\">Estimated budget</label>\n                <input type=\"number\" id=\"inputEstimatedBudget\" class=\"form-control\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputSpentBudget\">Total amount spent</label>\n                <input type=\"number\" id=\"inputSpentBudget\" class=\"form-control\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputEstimatedDuration\">Estimated project duration</label>\n                <input type=\"number\" id=\"inputEstimatedDuration\" class=\"form-control\">\n              </div>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n        </div>\n      </div>\n      <div class=\"row\">\n        <div class=\"col-12\">\n          <a href=\"#\" class=\"btn btn-secondary\">Cancel</a>\n          <input type=\"submit\" value=\"Create new Porject\" class=\"btn btn-success float-right\">\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/project-detail.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Project Detail</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Project Detail</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Project Detail</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Projects Detail</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body\">\n          <div class=\"row\">\n            <div class=\"col-12 col-md-12 col-lg-8 order-2 order-md-1\">\n              <div class=\"row\">\n                <div class=\"col-12 col-sm-4\">\n                  <div class=\"info-box bg-light\">\n                    <div class=\"info-box-content\">\n                      <span class=\"info-box-text text-center text-muted\">Estimated budget</span>\n                      <span class=\"info-box-number text-center text-muted mb-0\">2300</span>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"col-12 col-sm-4\">\n                  <div class=\"info-box bg-light\">\n                    <div class=\"info-box-content\">\n                      <span class=\"info-box-text text-center text-muted\">Total amount spent</span>\n                      <span class=\"info-box-number text-center text-muted mb-0\">2000</span>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"col-12 col-sm-4\">\n                  <div class=\"info-box bg-light\">\n                    <div class=\"info-box-content\">\n                      <span class=\"info-box-text text-center text-muted\">Estimated project duration</span>\n                      <span class=\"info-box-number text-center text-muted mb-0\">20</span>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div class=\"row\">\n                <div class=\"col-12\">\n                  <h4>Recent Activity</h4>\n                    <div class=\"post\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user1-128x128.jpg\" alt=\"user image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Jonathan Burke Jr.</a>\n                        </span>\n                        <span class=\"description\">Shared publicly - 7:45 PM today</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <p>\n                        Lorem ipsum represents a long-held tradition for designers,\n                        typographers and the like. Some people hate it and argue for\n                        its demise, but others ignore.\n                      </p>\n\n                      <p>\n                        <a href=\"#\" class=\"link-black text-sm\"><i class=\"fas fa-link mr-1\"></i> Demo File 1 v2</a>\n                      </p>\n                    </div>\n\n                    <div class=\"post clearfix\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user7-128x128.jpg\" alt=\"User Image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Sarah Ross</a>\n                        </span>\n                        <span class=\"description\">Sent you a message - 3 days ago</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <p>\n                        Lorem ipsum represents a long-held tradition for designers,\n                        typographers and the like. Some people hate it and argue for\n                        its demise, but others ignore.\n                      </p>\n                      <p>\n                        <a href=\"#\" class=\"link-black text-sm\"><i class=\"fas fa-link mr-1\"></i> Demo File 2</a>\n                      </p>\n                    </div>\n\n                    <div class=\"post\">\n                      <div class=\"user-block\">\n                        <img class=\"img-circle img-bordered-sm\" src=\"../../dist/img/user1-128x128.jpg\" alt=\"user image\">\n                        <span class=\"username\">\n                          <a href=\"#\">Jonathan Burke Jr.</a>\n                        </span>\n                        <span class=\"description\">Shared publicly - 5 days ago</span>\n                      </div>\n                      <!-- /.user-block -->\n                      <p>\n                        Lorem ipsum represents a long-held tradition for designers,\n                        typographers and the like. Some people hate it and argue for\n                        its demise, but others ignore.\n                      </p>\n\n                      <p>\n                        <a href=\"#\" class=\"link-black text-sm\"><i class=\"fas fa-link mr-1\"></i> Demo File 1 v1</a>\n                      </p>\n                    </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"col-12 col-md-12 col-lg-4 order-1 order-md-2\">\n              <h3 class=\"text-primary\"><i class=\"fas fa-paint-brush\"></i> AdminLTE v3</h3>\n              <p class=\"text-muted\">Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terr.</p>\n              <br>\n              <div class=\"text-muted\">\n                <p class=\"text-sm\">Client Company\n                  <b class=\"d-block\">Deveint Inc</b>\n                </p>\n                <p class=\"text-sm\">Project Leader\n                  <b class=\"d-block\">Tony Chicken</b>\n                </p>\n              </div>\n\n              <h5 class=\"mt-5 text-muted\">Project files</h5>\n              <ul class=\"list-unstyled\">\n                <li>\n                  <a href=\"\" class=\"btn-link text-secondary\"><i class=\"far fa-fw fa-file-word\"></i> Functional-requirements.docx</a>\n                </li>\n                <li>\n                  <a href=\"\" class=\"btn-link text-secondary\"><i class=\"far fa-fw fa-file-pdf\"></i> UAT.pdf</a>\n                </li>\n                <li>\n                  <a href=\"\" class=\"btn-link text-secondary\"><i class=\"far fa-fw fa-envelope\"></i> Email-from-flatbal.mln</a>\n                </li>\n                <li>\n                  <a href=\"\" class=\"btn-link text-secondary\"><i class=\"far fa-fw fa-image \"></i> Logo.png</a>\n                </li>\n                <li>\n                  <a href=\"\" class=\"btn-link text-secondary\"><i class=\"far fa-fw fa-file-word\"></i> Contract-10_12_2014.docx</a>\n                </li>\n              </ul>\n              <div class=\"text-center mt-5 mb-3\">\n                <a href=\"#\" class=\"btn btn-sm btn-primary\">Add files</a>\n                <a href=\"#\" class=\"btn btn-sm btn-warning\">Report contact</a>\n              </div>\n            </div>\n          </div>\n        </div>\n        <!-- /.card-body -->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/project-edit.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Project Edit</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Project Edit</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Project Edit</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"row\">\n        <div class=\"col-md-6\">\n          <div class=\"card card-primary\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">General</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body\">\n              <div class=\"form-group\">\n                <label for=\"inputName\">Project Name</label>\n                <input type=\"text\" id=\"inputName\" class=\"form-control\" value=\"AdminLTE\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputDescription\">Project Description</label>\n                <textarea id=\"inputDescription\" class=\"form-control\" rows=\"4\">Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terr.</textarea>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputStatus\">Status</label>\n                <select id=\"inputStatus\" class=\"form-control custom-select\">\n                  <option disabled>Select one</option>\n                  <option>On Hold</option>\n                  <option>Canceled</option>\n                  <option selected>Success</option>\n                </select>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputClientCompany\">Client Company</label>\n                <input type=\"text\" id=\"inputClientCompany\" class=\"form-control\" value=\"Deveint Inc\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputProjectLeader\">Project Leader</label>\n                <input type=\"text\" id=\"inputProjectLeader\" class=\"form-control\" value=\"Tony Chicken\">\n              </div>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n        </div>\n        <div class=\"col-md-6\">\n          <div class=\"card card-secondary\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Budget</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body\">\n              <div class=\"form-group\">\n                <label for=\"inputEstimatedBudget\">Estimated budget</label>\n                <input type=\"number\" id=\"inputEstimatedBudget\" class=\"form-control\" value=\"2300\" step=\"1\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputSpentBudget\">Total amount spent</label>\n                <input type=\"number\" id=\"inputSpentBudget\" class=\"form-control\" value=\"2000\" step=\"1\">\n              </div>\n              <div class=\"form-group\">\n                <label for=\"inputEstimatedDuration\">Estimated project duration</label>\n                <input type=\"number\" id=\"inputEstimatedDuration\" class=\"form-control\" value=\"20\" step=\"0.1\">\n              </div>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n          <div class=\"card card-info\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Files</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body p-0\">\n              <table class=\"table\">\n                <thead>\n                  <tr>\n                    <th>File Name</th>\n                    <th>File Size</th>\n                    <th></th>\n                  </tr>\n                </thead>\n                <tbody>\n\n                  <tr>\n                    <td>Functional-requirements.docx</td>\n                    <td>49.8005 kb</td>\n                    <td class=\"text-right py-0 align-middle\">\n                      <div class=\"btn-group btn-group-sm\">\n                        <a href=\"#\" class=\"btn btn-info\"><i class=\"fas fa-eye\"></i></a>\n                        <a href=\"#\" class=\"btn btn-danger\"><i class=\"fas fa-trash\"></i></a>\n                      </div>\n                    </td>\n                  <tr>\n                    <td>UAT.pdf</td>\n                    <td>28.4883 kb</td>\n                    <td class=\"text-right py-0 align-middle\">\n                      <div class=\"btn-group btn-group-sm\">\n                        <a href=\"#\" class=\"btn btn-info\"><i class=\"fas fa-eye\"></i></a>\n                        <a href=\"#\" class=\"btn btn-danger\"><i class=\"fas fa-trash\"></i></a>\n                      </div>\n                    </td>\n                  <tr>\n                    <td>Email-from-flatbal.mln</td>\n                    <td>57.9003 kb</td>\n                    <td class=\"text-right py-0 align-middle\">\n                      <div class=\"btn-group btn-group-sm\">\n                        <a href=\"#\" class=\"btn btn-info\"><i class=\"fas fa-eye\"></i></a>\n                        <a href=\"#\" class=\"btn btn-danger\"><i class=\"fas fa-trash\"></i></a>\n                      </div>\n                    </td>\n                  <tr>\n                    <td>Logo.png</td>\n                    <td>50.5190 kb</td>\n                    <td class=\"text-right py-0 align-middle\">\n                      <div class=\"btn-group btn-group-sm\">\n                        <a href=\"#\" class=\"btn btn-info\"><i class=\"fas fa-eye\"></i></a>\n                        <a href=\"#\" class=\"btn btn-danger\"><i class=\"fas fa-trash\"></i></a>\n                      </div>\n                    </td>\n                  <tr>\n                    <td>Contract-10_12_2014.docx</td>\n                    <td>44.9715 kb</td>\n                    <td class=\"text-right py-0 align-middle\">\n                      <div class=\"btn-group btn-group-sm\">\n                        <a href=\"#\" class=\"btn btn-info\"><i class=\"fas fa-eye\"></i></a>\n                        <a href=\"#\" class=\"btn btn-danger\"><i class=\"fas fa-trash\"></i></a>\n                      </div>\n                    </td>\n\n                </tbody>\n              </table>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n        </div>\n      </div>\n      <div class=\"row\">\n        <div class=\"col-12\">\n          <a href=\"#\" class=\"btn btn-secondary\">Cancel</a>\n          <input type=\"submit\" value=\"Save Changes\" class=\"btn btn-success float-right\">\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/projects.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Projects</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Projects</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Projects</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <!-- Default box -->\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">Projects</h3>\n\n          <div class=\"card-tools\">\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n              <i class=\"fas fa-minus\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n              <i class=\"fas fa-times\"></i>\n            </button>\n          </div>\n        </div>\n        <div class=\"card-body p-0\">\n          <table class=\"table table-striped projects\">\n              <thead>\n                  <tr>\n                      <th style=\"width: 1%\">\n                          #\n                      </th>\n                      <th style=\"width: 20%\">\n                          Project Name\n                      </th>\n                      <th style=\"width: 30%\">\n                          Team Members\n                      </th>\n                      <th>\n                          Project Progress\n                      </th>\n                      <th style=\"width: 8%\" class=\"text-center\">\n                          Status\n                      </th>\n                      <th style=\"width: 20%\">\n                      </th>\n                  </tr>\n              </thead>\n              <tbody>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar2.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"57\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 57%\">\n                              </div>\n                          </div>\n                          <small>\n                              57% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar2.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"47\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 47%\">\n                              </div>\n                          </div>\n                          <small>\n                              47% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar2.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"77\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 77%\">\n                              </div>\n                          </div>\n                          <small>\n                              77% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar2.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"60\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 60%\">\n                              </div>\n                          </div>\n                          <small>\n                              60% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar5.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"12\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 12%\">\n                              </div>\n                          </div>\n                          <small>\n                              12% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar2.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"35\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 35%\">\n                              </div>\n                          </div>\n                          <small>\n                              35% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar5.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"87\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 87%\">\n                              </div>\n                          </div>\n                          <small>\n                              87% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"77\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 77%\">\n                              </div>\n                          </div>\n                          <small>\n                              77% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n                  <tr>\n                      <td>\n                          #\n                      </td>\n                      <td>\n                          <a>\n                              AdminLTE v3\n                          </a>\n                          <br/>\n                          <small>\n                              Created 01.01.2019\n                          </small>\n                      </td>\n                      <td>\n                          <ul class=\"list-inline\">\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar3.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar4.png\">\n                              </li>\n                              <li class=\"list-inline-item\">\n                                  <img alt=\"Avatar\" class=\"table-avatar\" src=\"../../dist/img/avatar5.png\">\n                              </li>\n                          </ul>\n                      </td>\n                      <td class=\"project_progress\">\n                          <div class=\"progress progress-sm\">\n                              <div class=\"progress-bar bg-green\" role=\"progressbar\" aria-valuenow=\"77\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 77%\">\n                              </div>\n                          </div>\n                          <small>\n                              77% Complete\n                          </small>\n                      </td>\n                      <td class=\"project-state\">\n                          <span class=\"badge badge-success\">Success</span>\n                      </td>\n                      <td class=\"project-actions text-right\">\n                          <a class=\"btn btn-primary btn-sm\" href=\"#\">\n                              <i class=\"fas fa-folder\">\n                              </i>\n                              View\n                          </a>\n                          <a class=\"btn btn-info btn-sm\" href=\"#\">\n                              <i class=\"fas fa-pencil-alt\">\n                              </i>\n                              Edit\n                          </a>\n                          <a class=\"btn btn-danger btn-sm\" href=\"#\">\n                              <i class=\"fas fa-trash\">\n                              </i>\n                              Delete\n                          </a>\n                      </td>\n                  </tr>\n              </tbody>\n          </table>\n        </div>\n        <!-- /.card-body -->\n      </div>\n      <!-- /.card -->\n\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/recover-password-v2.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Recover Password (v2)</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <div class=\"card card-outline card-primary\">\n    <div class=\"card-header text-center\">\n      <a href=\"../../index2.html\" class=\"h1\"><b>Admin</b>LTE</a>\n    </div>\n    <div class=\"card-body\">\n      <p class=\"login-box-msg\">You are only one step a way from your new password, recover your password now.</p>\n      <form action=\"login.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Confirm Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Change password</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <p class=\"mt-3 mb-1\">\n        <a href=\"login.html\">Login</a>\n      </p>\n    </div>\n    <!-- /.login-card-body -->\n  </div>\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/recover-password.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Recover Password</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition login-page\">\n<div class=\"login-box\">\n  <div class=\"login-logo\">\n    <a href=\"../../index2.html\"><b>Admin</b>LTE</a>\n  </div>\n  <!-- /.login-logo -->\n  <div class=\"card\">\n    <div class=\"card-body login-card-body\">\n      <p class=\"login-box-msg\">You are only one step a way from your new password, recover your password now.</p>\n\n      <form action=\"login.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Confirm Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Change password</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <p class=\"mt-3 mb-1\">\n        <a href=\"login.html\">Login</a>\n      </p>\n    </div>\n    <!-- /.login-card-body -->\n  </div>\n</div>\n<!-- /.login-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/register-v2.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Registration Page (v2)</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition register-page\">\n<div class=\"register-box\">\n  <div class=\"card card-outline card-primary\">\n    <div class=\"card-header text-center\">\n      <a href=\"../../index2.html\" class=\"h1\"><b>Admin</b>LTE</a>\n    </div>\n    <div class=\"card-body\">\n      <p class=\"login-box-msg\">Register a new membership</p>\n\n      <form action=\"../../index.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"text\" class=\"form-control\" placeholder=\"Full name\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-user\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Retype password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-8\">\n            <div class=\"icheck-primary\">\n              <input type=\"checkbox\" id=\"agreeTerms\" name=\"terms\" value=\"agree\">\n              <label for=\"agreeTerms\">\n               I agree to the <a href=\"#\">terms</a>\n              </label>\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-4\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Register</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <div class=\"social-auth-links text-center\">\n        <a href=\"#\" class=\"btn btn-block btn-primary\">\n          <i class=\"fab fa-facebook mr-2\"></i>\n          Sign up using Facebook\n        </a>\n        <a href=\"#\" class=\"btn btn-block btn-danger\">\n          <i class=\"fab fa-google-plus mr-2\"></i>\n          Sign up using Google+\n        </a>\n      </div>\n\n      <a href=\"login.html\" class=\"text-center\">I already have a membership</a>\n    </div>\n    <!-- /.form-box -->\n  </div><!-- /.card -->\n</div>\n<!-- /.register-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/examples/register.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Registration Page</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition register-page\">\n<div class=\"register-box\">\n  <div class=\"register-logo\">\n    <a href=\"../../index2.html\"><b>Admin</b>LTE</a>\n  </div>\n\n  <div class=\"card\">\n    <div class=\"card-body register-card-body\">\n      <p class=\"login-box-msg\">Register a new membership</p>\n\n      <form action=\"../../index.html\" method=\"post\">\n        <div class=\"input-group mb-3\">\n          <input type=\"text\" class=\"form-control\" placeholder=\"Full name\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-user\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-envelope\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"input-group mb-3\">\n          <input type=\"password\" class=\"form-control\" placeholder=\"Retype password\">\n          <div class=\"input-group-append\">\n            <div class=\"input-group-text\">\n              <span class=\"fas fa-lock\"></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"col-8\">\n            <div class=\"icheck-primary\">\n              <input type=\"checkbox\" id=\"agreeTerms\" name=\"terms\" value=\"agree\">\n              <label for=\"agreeTerms\">\n               I agree to the <a href=\"#\">terms</a>\n              </label>\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-4\">\n            <button type=\"submit\" class=\"btn btn-primary btn-block\">Register</button>\n          </div>\n          <!-- /.col -->\n        </div>\n      </form>\n\n      <div class=\"social-auth-links text-center\">\n        <p>- OR -</p>\n        <a href=\"#\" class=\"btn btn-block btn-primary\">\n          <i class=\"fab fa-facebook mr-2\"></i>\n          Sign up using Facebook\n        </a>\n        <a href=\"#\" class=\"btn btn-block btn-danger\">\n          <i class=\"fab fa-google-plus mr-2\"></i>\n          Sign up using Google+\n        </a>\n      </div>\n\n      <a href=\"login.html\" class=\"text-center\">I already have a membership</a>\n    </div>\n    <!-- /.form-box -->\n  </div><!-- /.card -->\n</div>\n<!-- /.register-box -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/forms/advanced.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Advanced form elements</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- daterange picker -->\n  <link rel=\"stylesheet\" href=\"../../plugins/daterangepicker/daterangepicker.css\">\n  <!-- iCheck for checkboxes and radio inputs -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Bootstrap Color Picker -->\n  <link rel=\"stylesheet\" href=\"../../plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css\">\n  <!-- Tempusdominus Bootstrap 4 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css\">\n  <!-- Select2 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/select2/css/select2.min.css\">\n  <link rel=\"stylesheet\" href=\"../../plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css\">\n  <!-- Bootstrap4 Duallistbox -->\n  <link rel=\"stylesheet\" href=\"../../plugins/bootstrap4-duallistbox/bootstrap-duallistbox.min.css\">\n  <!-- BS Stepper -->\n  <link rel=\"stylesheet\" href=\"../../plugins/bs-stepper/css/bs-stepper.min.css\">\n  <!-- dropzonejs -->\n  <link rel=\"stylesheet\" href=\"../../plugins/dropzone/min/dropzone.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Advanced Form</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Advanced Form</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <!-- SELECT2 EXAMPLE -->\n        <div class=\"card card-default\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Select2 (Default Theme)</h3>\n\n            <div class=\"card-tools\">\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                <i class=\"fas fa-minus\"></i>\n              </button>\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                <i class=\"fas fa-times\"></i>\n              </button>\n            </div>\n          </div>\n          <!-- /.card-header -->\n          <div class=\"card-body\">\n            <div class=\"row\">\n              <div class=\"col-md-6\">\n                <div class=\"form-group\">\n                  <label>Minimal</label>\n                  <select class=\"form-control select2\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n                <div class=\"form-group\">\n                  <label>Disabled</label>\n                  <select class=\"form-control select2\" disabled=\"disabled\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n              <div class=\"col-md-6\">\n                <div class=\"form-group\">\n                  <label>Multiple</label>\n                  <select class=\"select2\" multiple=\"multiple\" data-placeholder=\"Select a State\" style=\"width: 100%;\">\n                    <option>Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n                <div class=\"form-group\">\n                  <label>Disabled Result</label>\n                  <select class=\"form-control select2\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option disabled=\"disabled\">California (disabled)</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n\n            <h5>Custom Color Variants</h5>\n            <div class=\"row\">\n              <div class=\"col-12 col-sm-6\">\n                <div class=\"form-group\">\n                  <label>Minimal (.select2-danger)</label>\n                  <select class=\"form-control select2 select2-danger\" data-dropdown-css-class=\"select2-danger\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n              <div class=\"col-12 col-sm-6\">\n                <div class=\"form-group\">\n                  <label>Multiple (.select2-purple)</label>\n                  <div class=\"select2-purple\">\n                    <select class=\"select2\" multiple=\"multiple\" data-placeholder=\"Select a State\" data-dropdown-css-class=\"select2-purple\" style=\"width: 100%;\">\n                      <option>Alabama</option>\n                      <option>Alaska</option>\n                      <option>California</option>\n                      <option>Delaware</option>\n                      <option>Tennessee</option>\n                      <option>Texas</option>\n                      <option>Washington</option>\n                    </select>\n                  </div>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n          </div>\n          <!-- /.card-body -->\n          <div class=\"card-footer\">\n            Visit <a href=\"https://select2.github.io/\">Select2 documentation</a> for more examples and information about\n            the plugin.\n          </div>\n        </div>\n        <!-- /.card -->\n\n        <!-- SELECT2 EXAMPLE -->\n        <div class=\"card card-default\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Select2 (Bootstrap4 Theme)</h3>\n\n            <div class=\"card-tools\">\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                <i class=\"fas fa-minus\"></i>\n              </button>\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                <i class=\"fas fa-times\"></i>\n              </button>\n            </div>\n          </div>\n          <!-- /.card-header -->\n          <div class=\"card-body\">\n            <div class=\"row\">\n              <div class=\"col-md-6\">\n                <div class=\"form-group\">\n                  <label>Minimal</label>\n                  <select class=\"form-control select2bs4\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n                <div class=\"form-group\">\n                  <label>Disabled</label>\n                  <select class=\"form-control select2bs4\" disabled=\"disabled\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n              <div class=\"col-md-6\">\n                <div class=\"form-group\">\n                  <label>Multiple</label>\n                  <select class=\"select2bs4\" multiple=\"multiple\" data-placeholder=\"Select a State\"\n                          style=\"width: 100%;\">\n                    <option>Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n                <div class=\"form-group\">\n                  <label>Disabled Result</label>\n                  <select class=\"form-control select2bs4\" style=\"width: 100%;\">\n                    <option selected=\"selected\">Alabama</option>\n                    <option>Alaska</option>\n                    <option disabled=\"disabled\">California (disabled)</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n          </div>\n          <!-- /.card-body -->\n          <div class=\"card-footer\">\n            Visit <a href=\"https://select2.github.io/\">Select2 documentation</a> for more examples and information about\n            the plugin.\n          </div>\n        </div>\n        <!-- /.card -->\n\n        <div class=\"card card-default\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">Bootstrap Duallistbox</h3>\n\n            <div class=\"card-tools\">\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                <i class=\"fas fa-minus\"></i>\n              </button>\n              <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                <i class=\"fas fa-times\"></i>\n              </button>\n            </div>\n          </div>\n          <!-- /.card-header -->\n          <div class=\"card-body\">\n            <div class=\"row\">\n              <div class=\"col-12\">\n                <div class=\"form-group\">\n                  <label>Multiple</label>\n                  <select class=\"duallistbox\" multiple=\"multiple\">\n                    <option selected>Alabama</option>\n                    <option>Alaska</option>\n                    <option>California</option>\n                    <option>Delaware</option>\n                    <option>Tennessee</option>\n                    <option>Texas</option>\n                    <option>Washington</option>\n                  </select>\n                </div>\n                <!-- /.form-group -->\n              </div>\n              <!-- /.col -->\n            </div>\n            <!-- /.row -->\n          </div>\n          <!-- /.card-body -->\n          <div class=\"card-footer\">\n            Visit <a href=\"https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox#readme\">Bootstrap Duallistbox</a> for more examples and information about\n            the plugin.\n          </div>\n        </div>\n        <!-- /.card -->\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Input masks</h3>\n              </div>\n              <div class=\"card-body\">\n                <!-- Date dd/mm/yyyy -->\n                <div class=\"form-group\">\n                  <label>Date masks:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"far fa-calendar-alt\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" data-inputmask-alias=\"datetime\" data-inputmask-inputformat=\"dd/mm/yyyy\" data-mask>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- Date mm/dd/yyyy -->\n                <div class=\"form-group\">\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"far fa-calendar-alt\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" data-inputmask-alias=\"datetime\" data-inputmask-inputformat=\"mm/dd/yyyy\" data-mask>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- phone mask -->\n                <div class=\"form-group\">\n                  <label>US phone mask:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"fas fa-phone\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" data-inputmask='\"mask\": \"(999) 999-9999\"' data-mask>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- phone mask -->\n                <div class=\"form-group\">\n                  <label>Intl US phone mask:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"fas fa-phone\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\"\n                           data-inputmask=\"'mask': ['999-999-9999 [x99999]', '+099 99 99 9999[9]-9999']\" data-mask>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- IP mask -->\n                <div class=\"form-group\">\n                  <label>IP mask:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"fas fa-laptop\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" data-inputmask=\"'alias': 'ip'\" data-mask>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card card-info\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Color & Time Picker</h3>\n              </div>\n              <div class=\"card-body\">\n                <!-- Color Picker -->\n                <div class=\"form-group\">\n                  <label>Color picker:</label>\n                  <input type=\"text\" class=\"form-control my-colorpicker1\">\n                </div>\n                <!-- /.form group -->\n\n                <!-- Color Picker -->\n                <div class=\"form-group\">\n                  <label>Color picker with addon:</label>\n\n                  <div class=\"input-group my-colorpicker2\">\n                    <input type=\"text\" class=\"form-control\">\n\n                    <div class=\"input-group-append\">\n                      <span class=\"input-group-text\"><i class=\"fas fa-square\"></i></span>\n                    </div>\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- time Picker -->\n                <div class=\"bootstrap-timepicker\">\n                  <div class=\"form-group\">\n                    <label>Time picker:</label>\n\n                    <div class=\"input-group date\" id=\"timepicker\" data-target-input=\"nearest\">\n                      <input type=\"text\" class=\"form-control datetimepicker-input\" data-target=\"#timepicker\"/>\n                      <div class=\"input-group-append\" data-target=\"#timepicker\" data-toggle=\"datetimepicker\">\n                          <div class=\"input-group-text\"><i class=\"far fa-clock\"></i></div>\n                      </div>\n                      </div>\n                    <!-- /.input group -->\n                  </div>\n                  <!-- /.form group -->\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!-- /.col (left) -->\n          <div class=\"col-md-6\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Date picker</h3>\n              </div>\n              <div class=\"card-body\">\n                <!-- Date -->\n                <div class=\"form-group\">\n                  <label>Date:</label>\n                    <div class=\"input-group date\" id=\"reservationdate\" data-target-input=\"nearest\">\n                        <input type=\"text\" class=\"form-control datetimepicker-input\" data-target=\"#reservationdate\"/>\n                        <div class=\"input-group-append\" data-target=\"#reservationdate\" data-toggle=\"datetimepicker\">\n                            <div class=\"input-group-text\"><i class=\"fa fa-calendar\"></i></div>\n                        </div>\n                    </div>\n                </div>\n                <!-- Date and time -->\n                <div class=\"form-group\">\n                  <label>Date and time:</label>\n                    <div class=\"input-group date\" id=\"reservationdatetime\" data-target-input=\"nearest\">\n                        <input type=\"text\" class=\"form-control datetimepicker-input\" data-target=\"#reservationdatetime\"/>\n                        <div class=\"input-group-append\" data-target=\"#reservationdatetime\" data-toggle=\"datetimepicker\">\n                            <div class=\"input-group-text\"><i class=\"fa fa-calendar\"></i></div>\n                        </div>\n                    </div>\n                </div>\n                <!-- /.form group -->\n                <!-- Date range -->\n                <div class=\"form-group\">\n                  <label>Date range:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\">\n                        <i class=\"far fa-calendar-alt\"></i>\n                      </span>\n                    </div>\n                    <input type=\"text\" class=\"form-control float-right\" id=\"reservation\">\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- Date and time range -->\n                <div class=\"form-group\">\n                  <label>Date and time range:</label>\n\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\"><i class=\"far fa-clock\"></i></span>\n                    </div>\n                    <input type=\"text\" class=\"form-control float-right\" id=\"reservationtime\">\n                  </div>\n                  <!-- /.input group -->\n                </div>\n                <!-- /.form group -->\n\n                <!-- Date and time range -->\n                <div class=\"form-group\">\n                  <label>Date range button:</label>\n\n                  <div class=\"input-group\">\n                    <button type=\"button\" class=\"btn btn-default float-right\" id=\"daterange-btn\">\n                      <i class=\"far fa-calendar-alt\"></i> Date range picker\n                      <i class=\"fas fa-caret-down\"></i>\n                    </button>\n                  </div>\n                </div>\n                <!-- /.form group -->\n              </div>\n                <div class=\"card-footer\">\n                  Visit <a href=\"https://getdatepicker.com/5-4/\">tempusdominus </a> for more examples and information about\n                  the plugin.\n                </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- iCheck -->\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">iCheck Bootstrap - Checkbox &amp; Radio Inputs</h3>\n              </div>\n              <div class=\"card-body\">\n                <!-- Minimal style -->\n                <div class=\"row\">\n                  <div class=\"col-sm-6\">\n                    <!-- checkbox -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"checkbox\" id=\"checkboxPrimary1\" checked>\n                        <label for=\"checkboxPrimary1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"checkbox\" id=\"checkboxPrimary2\">\n                        <label for=\"checkboxPrimary2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"checkbox\" id=\"checkboxPrimary3\" disabled>\n                        <label for=\"checkboxPrimary3\">\n                          Primary checkbox\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-6\">\n                    <!-- radio -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"radio\" id=\"radioPrimary1\" name=\"r1\" checked>\n                        <label for=\"radioPrimary1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"radio\" id=\"radioPrimary2\" name=\"r1\">\n                        <label for=\"radioPrimary2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-primary d-inline\">\n                        <input type=\"radio\" id=\"radioPrimary3\" name=\"r1\" disabled>\n                        <label for=\"radioPrimary3\">\n                          Primary radio\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <!-- Minimal red style -->\n                <div class=\"row\">\n                  <div class=\"col-sm-6\">\n                    <!-- checkbox -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"checkbox\" checked id=\"checkboxDanger1\">\n                        <label for=\"checkboxDanger1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"checkbox\" id=\"checkboxDanger2\">\n                        <label for=\"checkboxDanger2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"checkbox\" disabled id=\"checkboxDanger3\">\n                        <label for=\"checkboxDanger3\">\n                          Danger checkbox\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-6\">\n                    <!-- radio -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"radio\" name=\"r2\" checked id=\"radioDanger1\">\n                        <label for=\"radioDanger1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"radio\" name=\"r2\" id=\"radioDanger2\">\n                        <label for=\"radioDanger2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-danger d-inline\">\n                        <input type=\"radio\" name=\"r2\" disabled id=\"radioDanger3\">\n                        <label for=\"radioDanger3\">\n                          Danger radio\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <!-- Minimal red style -->\n                <div class=\"row\">\n                  <div class=\"col-sm-6\">\n                    <!-- checkbox -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"checkbox\" checked id=\"checkboxSuccess1\">\n                        <label for=\"checkboxSuccess1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"checkbox\" id=\"checkboxSuccess2\">\n                        <label for=\"checkboxSuccess2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"checkbox\" disabled id=\"checkboxSuccess3\">\n                        <label for=\"checkboxSuccess3\">\n                          Success checkbox\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"col-sm-6\">\n                    <!-- radio -->\n                    <div class=\"form-group clearfix\">\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"radio\" name=\"r3\" checked id=\"radioSuccess1\">\n                        <label for=\"radioSuccess1\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"radio\" name=\"r3\" id=\"radioSuccess2\">\n                        <label for=\"radioSuccess2\">\n                        </label>\n                      </div>\n                      <div class=\"icheck-success d-inline\">\n                        <input type=\"radio\" name=\"r3\" disabled id=\"radioSuccess3\">\n                        <label for=\"radioSuccess3\">\n                          Success radio\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Many more skins available. <a href=\"https://bantikyan.github.io/icheck-bootstrap/\">Documentation</a>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <!-- Bootstrap Switch -->\n            <div class=\"card card-secondary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Bootstrap Switch</h3>\n              </div>\n              <div class=\"card-body\">\n                <input type=\"checkbox\" name=\"my-checkbox\" checked data-bootstrap-switch>\n                <input type=\"checkbox\" name=\"my-checkbox\" checked data-bootstrap-switch data-off-color=\"danger\" data-on-color=\"success\">\n              </div>\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col (right) -->\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-default\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">bs-stepper</h3>\n              </div>\n              <div class=\"card-body p-0\">\n                <div class=\"bs-stepper\">\n                  <div class=\"bs-stepper-header\" role=\"tablist\">\n                    <!-- your steps here -->\n                    <div class=\"step\" data-target=\"#logins-part\">\n                      <button type=\"button\" class=\"step-trigger\" role=\"tab\" aria-controls=\"logins-part\" id=\"logins-part-trigger\">\n                        <span class=\"bs-stepper-circle\">1</span>\n                        <span class=\"bs-stepper-label\">Logins</span>\n                      </button>\n                    </div>\n                    <div class=\"line\"></div>\n                    <div class=\"step\" data-target=\"#information-part\">\n                      <button type=\"button\" class=\"step-trigger\" role=\"tab\" aria-controls=\"information-part\" id=\"information-part-trigger\">\n                        <span class=\"bs-stepper-circle\">2</span>\n                        <span class=\"bs-stepper-label\">Various information</span>\n                      </button>\n                    </div>\n                  </div>\n                  <div class=\"bs-stepper-content\">\n                    <!-- your steps content here -->\n                    <div id=\"logins-part\" class=\"content\" role=\"tabpanel\" aria-labelledby=\"logins-part-trigger\">\n                      <div class=\"form-group\">\n                        <label for=\"exampleInputEmail1\">Email address</label>\n                        <input type=\"email\" class=\"form-control\" id=\"exampleInputEmail1\" placeholder=\"Enter email\">\n                      </div>\n                      <div class=\"form-group\">\n                        <label for=\"exampleInputPassword1\">Password</label>\n                        <input type=\"password\" class=\"form-control\" id=\"exampleInputPassword1\" placeholder=\"Password\">\n                      </div>\n                      <button class=\"btn btn-primary\" onclick=\"stepper.next()\">Next</button>\n                    </div>\n                    <div id=\"information-part\" class=\"content\" role=\"tabpanel\" aria-labelledby=\"information-part-trigger\">\n                      <div class=\"form-group\">\n                        <label for=\"exampleInputFile\">File input</label>\n                        <div class=\"input-group\">\n                          <div class=\"custom-file\">\n                            <input type=\"file\" class=\"custom-file-input\" id=\"exampleInputFile\">\n                            <label class=\"custom-file-label\" for=\"exampleInputFile\">Choose file</label>\n                          </div>\n                          <div class=\"input-group-append\">\n                            <span class=\"input-group-text\">Upload</span>\n                          </div>\n                        </div>\n                      </div>\n                      <button class=\"btn btn-primary\" onclick=\"stepper.previous()\">Previous</button>\n                      <button type=\"submit\" class=\"btn btn-primary\">Submit</button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Visit <a href=\"https://github.com/Johann-S/bs-stepper/#how-to-use-it\">bs-stepper documentation</a> for more examples and information about the plugin.\n              </div>\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-md-12\">\n            <div class=\"card card-default\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Dropzone.js <small><em>jQuery File Upload</em> like look</small></h3>\n              </div>\n              <div class=\"card-body\">\n                <div id=\"actions\" class=\"row\">\n                  <div class=\"col-lg-6\">\n                    <div class=\"btn-group w-100\">\n                      <span class=\"btn btn-success col fileinput-button\">\n                        <i class=\"fas fa-plus\"></i>\n                        <span>Add files</span>\n                      </span>\n                      <button type=\"submit\" class=\"btn btn-primary col start\">\n                        <i class=\"fas fa-upload\"></i>\n                        <span>Start upload</span>\n                      </button>\n                      <button type=\"reset\" class=\"btn btn-warning col cancel\">\n                        <i class=\"fas fa-times-circle\"></i>\n                        <span>Cancel upload</span>\n                      </button>\n                    </div>\n                  </div>\n                  <div class=\"col-lg-6 d-flex align-items-center\">\n                    <div class=\"fileupload-process w-100\">\n                      <div id=\"total-progress\" class=\"progress progress-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"0\">\n                        <div class=\"progress-bar progress-bar-success\" style=\"width:0%;\" data-dz-uploadprogress></div>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"table table-striped files\" id=\"previews\">\n                  <div id=\"template\" class=\"row mt-2\">\n                    <div class=\"col-auto\">\n                        <span class=\"preview\"><img src=\"data:,\" alt=\"\" data-dz-thumbnail /></span>\n                    </div>\n                    <div class=\"col d-flex align-items-center\">\n                        <p class=\"mb-0\">\n                          <span class=\"lead\" data-dz-name></span>\n                          (<span data-dz-size></span>)\n                        </p>\n                        <strong class=\"error text-danger\" data-dz-errormessage></strong>\n                    </div>\n                    <div class=\"col-4 d-flex align-items-center\">\n                        <div class=\"progress progress-striped active w-100\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"0\">\n                          <div class=\"progress-bar progress-bar-success\" style=\"width:0%;\" data-dz-uploadprogress></div>\n                        </div>\n                    </div>\n                    <div class=\"col-auto d-flex align-items-center\">\n                      <div class=\"btn-group\">\n                        <button class=\"btn btn-primary start\">\n                          <i class=\"fas fa-upload\"></i>\n                          <span>Start</span>\n                        </button>\n                        <button data-dz-remove class=\"btn btn-warning cancel\">\n                          <i class=\"fas fa-times-circle\"></i>\n                          <span>Cancel</span>\n                        </button>\n                        <button data-dz-remove class=\"btn btn-danger delete\">\n                          <i class=\"fas fa-trash\"></i>\n                          <span>Delete</span>\n                        </button>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Visit <a href=\"https://www.dropzonejs.com\">dropzone.js documentation</a> for more examples and information about the plugin.\n              </div>\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n      </div>\n      <!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- Select2 -->\n<script src=\"../../plugins/select2/js/select2.full.min.js\"></script>\n<!-- Bootstrap4 Duallistbox -->\n<script src=\"../../plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.min.js\"></script>\n<!-- InputMask -->\n<script src=\"../../plugins/moment/moment.min.js\"></script>\n<script src=\"../../plugins/inputmask/jquery.inputmask.min.js\"></script>\n<!-- date-range-picker -->\n<script src=\"../../plugins/daterangepicker/daterangepicker.js\"></script>\n<!-- bootstrap color picker -->\n<script src=\"../../plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js\"></script>\n<!-- Tempusdominus Bootstrap 4 -->\n<script src=\"../../plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js\"></script>\n<!-- Bootstrap Switch -->\n<script src=\"../../plugins/bootstrap-switch/js/bootstrap-switch.min.js\"></script>\n<!-- BS-Stepper -->\n<script src=\"../../plugins/bs-stepper/js/bs-stepper.min.js\"></script>\n<!-- dropzonejs -->\n<script src=\"../../plugins/dropzone/min/dropzone.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    //Initialize Select2 Elements\n    $('.select2').select2()\n\n    //Initialize Select2 Elements\n    $('.select2bs4').select2({\n      theme: 'bootstrap4'\n    })\n\n    //Datemask dd/mm/yyyy\n    $('#datemask').inputmask('dd/mm/yyyy', { 'placeholder': 'dd/mm/yyyy' })\n    //Datemask2 mm/dd/yyyy\n    $('#datemask2').inputmask('mm/dd/yyyy', { 'placeholder': 'mm/dd/yyyy' })\n    //Money Euro\n    $('[data-mask]').inputmask()\n\n    //Date picker\n    $('#reservationdate').datetimepicker({\n        format: 'L'\n    });\n\n    //Date and time picker\n    $('#reservationdatetime').datetimepicker({ icons: { time: 'far fa-clock' } });\n\n    //Date range picker\n    $('#reservation').daterangepicker()\n    //Date range picker with time picker\n    $('#reservationtime').daterangepicker({\n      timePicker: true,\n      timePickerIncrement: 30,\n      locale: {\n        format: 'MM/DD/YYYY hh:mm A'\n      }\n    })\n    //Date range as a button\n    $('#daterange-btn').daterangepicker(\n      {\n        ranges   : {\n          'Today'       : [moment(), moment()],\n          'Yesterday'   : [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\n          'Last 7 Days' : [moment().subtract(6, 'days'), moment()],\n          'Last 30 Days': [moment().subtract(29, 'days'), moment()],\n          'This Month'  : [moment().startOf('month'), moment().endOf('month')],\n          'Last Month'  : [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\n        },\n        startDate: moment().subtract(29, 'days'),\n        endDate  : moment()\n      },\n      function (start, end) {\n        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'))\n      }\n    )\n\n    //Timepicker\n    $('#timepicker').datetimepicker({\n      format: 'LT'\n    })\n\n    //Bootstrap Duallistbox\n    $('.duallistbox').bootstrapDualListbox()\n\n    //Colorpicker\n    $('.my-colorpicker1').colorpicker()\n    //color picker with addon\n    $('.my-colorpicker2').colorpicker()\n\n    $('.my-colorpicker2').on('colorpickerChange', function(event) {\n      $('.my-colorpicker2 .fa-square').css('color', event.color.toString());\n    })\n\n    $(\"input[data-bootstrap-switch]\").each(function(){\n      $(this).bootstrapSwitch('state', $(this).prop('checked'));\n    })\n\n  })\n  // BS-Stepper Init\n  document.addEventListener('DOMContentLoaded', function () {\n    window.stepper = new Stepper(document.querySelector('.bs-stepper'))\n  })\n\n  // DropzoneJS Demo Code Start\n  Dropzone.autoDiscover = false\n\n  // Get the template HTML and remove it from the doumenthe template HTML and remove it from the doument\n  var previewNode = document.querySelector(\"#template\")\n  previewNode.id = \"\"\n  var previewTemplate = previewNode.parentNode.innerHTML\n  previewNode.parentNode.removeChild(previewNode)\n\n  var myDropzone = new Dropzone(document.body, { // Make the whole body a dropzone\n    url: \"/target-url\", // Set the url\n    thumbnailWidth: 80,\n    thumbnailHeight: 80,\n    parallelUploads: 20,\n    previewTemplate: previewTemplate,\n    autoQueue: false, // Make sure the files aren't queued until manually added\n    previewsContainer: \"#previews\", // Define the container to display the previews\n    clickable: \".fileinput-button\" // Define the element that should be used as click trigger to select files.\n  })\n\n  myDropzone.on(\"addedfile\", function(file) {\n    // Hookup the start button\n    file.previewElement.querySelector(\".start\").onclick = function() { myDropzone.enqueueFile(file) }\n  })\n\n  // Update the total progress bar\n  myDropzone.on(\"totaluploadprogress\", function(progress) {\n    document.querySelector(\"#total-progress .progress-bar\").style.width = progress + \"%\"\n  })\n\n  myDropzone.on(\"sending\", function(file) {\n    // Show the total progress bar when upload starts\n    document.querySelector(\"#total-progress\").style.opacity = \"1\"\n    // And disable the start button\n    file.previewElement.querySelector(\".start\").setAttribute(\"disabled\", \"disabled\")\n  })\n\n  // Hide the total progress bar when nothing's uploading anymore\n  myDropzone.on(\"queuecomplete\", function(progress) {\n    document.querySelector(\"#total-progress\").style.opacity = \"0\"\n  })\n\n  // Setup the buttons for all transfers\n  // The \"add files\" button doesn't need to be setup because the config\n  // `clickable` has already been specified.\n  document.querySelector(\"#actions .start\").onclick = function() {\n    myDropzone.enqueueFiles(myDropzone.getFilesWithStatus(Dropzone.ADDED))\n  }\n  document.querySelector(\"#actions .cancel\").onclick = function() {\n    myDropzone.removeAllFiles(true)\n  }\n  // DropzoneJS Demo Code End\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/forms/editors.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Editors</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n  <!-- summernote -->\n  <link rel=\"stylesheet\" href=\"../../plugins/summernote/summernote-bs4.min.css\">\n  <!-- CodeMirror -->\n  <link rel=\"stylesheet\" href=\"../../plugins/codemirror/codemirror.css\">\n  <link rel=\"stylesheet\" href=\"../../plugins/codemirror/theme/monokai.css\">\n  <!-- SimpleMDE -->\n  <link rel=\"stylesheet\" href=\"../../plugins/simplemde/simplemde.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Text Editors</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Text Editors</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"row\">\n        <div class=\"col-md-12\">\n          <div class=\"card card-outline card-info\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">\n                Summernote\n              </h3>\n            </div>\n            <!-- /.card-header -->\n            <div class=\"card-body\">\n              <textarea id=\"summernote\">\n                Place <em>some</em> <u>text</u> <strong>here</strong>\n              </textarea>\n            </div>\n            <div class=\"card-footer\">\n              Visit <a href=\"https://github.com/summernote/summernote/\">Summernote</a> documentation for more examples and information about the plugin.\n            </div>\n          </div>\n        </div>\n        <!-- /.col-->\n      </div>\n      <!-- ./row -->\n      <div class=\"row\">\n        <div class=\"col-md-12\">\n          <div class=\"card card-outline card-info\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">\n                CodeMirror\n              </h3>\n            </div>\n            <!-- /.card-header -->\n            <div class=\"card-body p-0\">\n              <textarea id=\"codeMirrorDemo\" class=\"p-3\">\n<div class=\"info-box bg-gradient-info\">\n  <span class=\"info-box-icon\"><i class=\"far fa-bookmark\"></i></span>\n  <div class=\"info-box-content\">\n    <span class=\"info-box-text\">Bookmarks</span>\n    <span class=\"info-box-number\">41,410</span>\n    <div class=\"progress\">\n      <div class=\"progress-bar\" style=\"width: 70%\"></div>\n    </div>\n    <span class=\"progress-description\">\n      70% Increase in 30 Days\n    </span>\n  </div>\n</div>\n              </textarea>\n            </div>\n            <div class=\"card-footer\">\n              Visit <a href=\"https://codemirror.net/\">CodeMirror</a> documentation for more examples and information about the plugin.\n            </div>\n          </div>\n        </div>\n        <!-- /.col-->\n      </div>\n      <!-- ./row -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- Summernote -->\n<script src=\"../../plugins/summernote/summernote-bs4.min.js\"></script>\n<!-- CodeMirror -->\n<script src=\"../../plugins/codemirror/codemirror.js\"></script>\n<script src=\"../../plugins/codemirror/mode/css/css.js\"></script>\n<script src=\"../../plugins/codemirror/mode/xml/xml.js\"></script>\n<script src=\"../../plugins/codemirror/mode/htmlmixed/htmlmixed.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    // Summernote\n    $('#summernote').summernote()\n\n    // CodeMirror\n    CodeMirror.fromTextArea(document.getElementById(\"codeMirrorDemo\"), {\n      mode: \"htmlmixed\",\n      theme: \"monokai\"\n    });\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/forms/general.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | General Form Elements</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>General Form</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">General Form</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <!-- left column -->\n          <div class=\"col-md-6\">\n            <!-- general form elements -->\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Quick Example</h3>\n              </div>\n              <!-- /.card-header -->\n              <!-- form start -->\n              <form>\n                <div class=\"card-body\">\n                  <div class=\"form-group\">\n                    <label for=\"exampleInputEmail1\">Email address</label>\n                    <input type=\"email\" class=\"form-control\" id=\"exampleInputEmail1\" placeholder=\"Enter email\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"exampleInputPassword1\">Password</label>\n                    <input type=\"password\" class=\"form-control\" id=\"exampleInputPassword1\" placeholder=\"Password\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"exampleInputFile\">File input</label>\n                    <div class=\"input-group\">\n                      <div class=\"custom-file\">\n                        <input type=\"file\" class=\"custom-file-input\" id=\"exampleInputFile\">\n                        <label class=\"custom-file-label\" for=\"exampleInputFile\">Choose file</label>\n                      </div>\n                      <div class=\"input-group-append\">\n                        <span class=\"input-group-text\">Upload</span>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"form-check\">\n                    <input type=\"checkbox\" class=\"form-check-input\" id=\"exampleCheck1\">\n                    <label class=\"form-check-label\" for=\"exampleCheck1\">Check me out</label>\n                  </div>\n                </div>\n                <!-- /.card-body -->\n\n                <div class=\"card-footer\">\n                  <button type=\"submit\" class=\"btn btn-primary\">Submit</button>\n                </div>\n              </form>\n            </div>\n            <!-- /.card -->\n\n            <!-- general form elements -->\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Different Styles</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <h4>Input</h4>\n                <div class=\"form-group\">\n                  <label for=\"exampleInputBorder\">Bottom Border only <code>.form-control-border</code></label>\n                  <input type=\"text\" class=\"form-control form-control-border\" id=\"exampleInputBorder\" placeholder=\".form-control-border\">\n                </div>\n                <div class=\"form-group\">\n                  <label for=\"exampleInputBorderWidth2\">Bottom Border only 2px Border <code>.form-control-border.border-width-2</code></label>\n                  <input type=\"text\" class=\"form-control form-control-border border-width-2\" id=\"exampleInputBorderWidth2\" placeholder=\".form-control-border.border-width-2\">\n                </div>\n                <div class=\"form-group\">\n                  <label for=\"exampleInputRounded0\">Flat <code>.rounded-0</code></label>\n                  <input type=\"text\" class=\"form-control rounded-0\" id=\"exampleInputRounded0\" placeholder=\".rounded-0\">\n                </div>\n                <h4>Custom Select</h4>\n                <div class=\"form-group\">\n                  <label for=\"exampleSelectBorder\">Bottom Border only <code>.form-control-border</code></label>\n                  <select class=\"custom-select form-control-border\" id=\"exampleSelectBorder\">\n                    <option>Value 1</option>\n                    <option>Value 2</option>\n                    <option>Value 3</option>\n                  </select>\n                </div>\n                <div class=\"form-group\">\n                  <label for=\"exampleSelectBorderWidth2\">Bottom Border only <code>.form-control-border.border-width-2</code></label>\n                  <select class=\"custom-select form-control-border border-width-2\" id=\"exampleSelectBorderWidth2\">\n                    <option>Value 1</option>\n                    <option>Value 2</option>\n                    <option>Value 3</option>\n                  </select>\n                </div>\n                <div class=\"form-group\">\n                  <label for=\"exampleSelectRounded0\">Flat <code>.rounded-0</code></label>\n                  <select class=\"custom-select rounded-0\" id=\"exampleSelectRounded0\">\n                    <option>Value 1</option>\n                    <option>Value 2</option>\n                    <option>Value 3</option>\n                  </select>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- Input addon -->\n            <div class=\"card card-info\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Input Addon</h3>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"input-group mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <span class=\"input-group-text\">@</span>\n                  </div>\n                  <input type=\"text\" class=\"form-control\" placeholder=\"Username\">\n                </div>\n\n                <div class=\"input-group mb-3\">\n                  <input type=\"text\" class=\"form-control\">\n                  <div class=\"input-group-append\">\n                    <span class=\"input-group-text\">.00</span>\n                  </div>\n                </div>\n\n                <div class=\"input-group\">\n                  <div class=\"input-group-prepend\">\n                    <span class=\"input-group-text\">$</span>\n                  </div>\n                  <input type=\"text\" class=\"form-control\">\n                  <div class=\"input-group-append\">\n                    <span class=\"input-group-text\">.00</span>\n                  </div>\n                </div>\n\n                <h4>With icons</h4>\n\n                <div class=\"input-group mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <span class=\"input-group-text\"><i class=\"fas fa-envelope\"></i></span>\n                  </div>\n                  <input type=\"email\" class=\"form-control\" placeholder=\"Email\">\n                </div>\n\n                <div class=\"input-group mb-3\">\n                  <input type=\"text\" class=\"form-control\">\n                  <div class=\"input-group-append\">\n                    <span class=\"input-group-text\"><i class=\"fas fa-check\"></i></span>\n                  </div>\n                </div>\n\n                <div class=\"input-group\">\n                  <div class=\"input-group-prepend\">\n                    <span class=\"input-group-text\">\n                      <i class=\"fas fa-dollar-sign\"></i>\n                    </span>\n                  </div>\n                  <input type=\"text\" class=\"form-control\">\n                  <div class=\"input-group-append\">\n                    <div class=\"input-group-text\"><i class=\"fas fa-ambulance\"></i></div>\n                  </div>\n                </div>\n\n                <h5 class=\"mt-4 mb-2\">With checkbox and radio inputs</h5>\n\n                <div class=\"row\">\n                  <div class=\"col-lg-6\">\n                    <div class=\"input-group\">\n                      <div class=\"input-group-prepend\">\n                        <span class=\"input-group-text\">\n                          <input type=\"checkbox\">\n                        </span>\n                      </div>\n                      <input type=\"text\" class=\"form-control\">\n                    </div>\n                    <!-- /input-group -->\n                  </div>\n                  <!-- /.col-lg-6 -->\n                  <div class=\"col-lg-6\">\n                    <div class=\"input-group\">\n                      <div class=\"input-group-prepend\">\n                        <span class=\"input-group-text\"><input type=\"radio\"></span>\n                      </div>\n                      <input type=\"text\" class=\"form-control\">\n                    </div>\n                    <!-- /input-group -->\n                  </div>\n                  <!-- /.col-lg-6 -->\n                </div>\n                <!-- /.row -->\n\n                <h5 class=\"mt-4 mb-2\">With buttons</h5>\n\n                <p>Large: <code>.input-group.input-group-lg</code></p>\n\n                <div class=\"input-group input-group-lg mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <button type=\"button\" class=\"btn btn-warning dropdown-toggle\" data-toggle=\"dropdown\">\n                      Action\n                    </button>\n                    <ul class=\"dropdown-menu\">\n                      <li class=\"dropdown-item\"><a href=\"#\">Action</a></li>\n                      <li class=\"dropdown-item\"><a href=\"#\">Another action</a></li>\n                      <li class=\"dropdown-item\"><a href=\"#\">Something else here</a></li>\n                      <li class=\"dropdown-divider\"></li>\n                      <li class=\"dropdown-item\"><a href=\"#\">Separated link</a></li>\n                    </ul>\n                  </div>\n                  <!-- /btn-group -->\n                  <input type=\"text\" class=\"form-control\">\n                </div>\n                <!-- /input-group -->\n\n                <p>Normal</p>\n                <div class=\"input-group mb-3\">\n                  <div class=\"input-group-prepend\">\n                    <button type=\"button\" class=\"btn btn-danger\">Action</button>\n                  </div>\n                  <!-- /btn-group -->\n                  <input type=\"text\" class=\"form-control\">\n                </div>\n                <!-- /input-group -->\n\n                <p>Small <code>.input-group.input-group-sm</code></p>\n                <div class=\"input-group input-group-sm\">\n                  <input type=\"text\" class=\"form-control\">\n                  <span class=\"input-group-append\">\n                    <button type=\"button\" class=\"btn btn-info btn-flat\">Go!</button>\n                  </span>\n                </div>\n                <!-- /input-group -->\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <!-- Horizontal Form -->\n            <div class=\"card card-info\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Horizontal Form</h3>\n              </div>\n              <!-- /.card-header -->\n              <!-- form start -->\n              <form class=\"form-horizontal\">\n                <div class=\"card-body\">\n                  <div class=\"form-group row\">\n                    <label for=\"inputEmail3\" class=\"col-sm-2 col-form-label\">Email</label>\n                    <div class=\"col-sm-10\">\n                      <input type=\"email\" class=\"form-control\" id=\"inputEmail3\" placeholder=\"Email\">\n                    </div>\n                  </div>\n                  <div class=\"form-group row\">\n                    <label for=\"inputPassword3\" class=\"col-sm-2 col-form-label\">Password</label>\n                    <div class=\"col-sm-10\">\n                      <input type=\"password\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"Password\">\n                    </div>\n                  </div>\n                  <div class=\"form-group row\">\n                    <div class=\"offset-sm-2 col-sm-10\">\n                      <div class=\"form-check\">\n                        <input type=\"checkbox\" class=\"form-check-input\" id=\"exampleCheck2\">\n                        <label class=\"form-check-label\" for=\"exampleCheck2\">Remember me</label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <!-- /.card-body -->\n                <div class=\"card-footer\">\n                  <button type=\"submit\" class=\"btn btn-info\">Sign in</button>\n                  <button type=\"submit\" class=\"btn btn-default float-right\">Cancel</button>\n                </div>\n                <!-- /.card-footer -->\n              </form>\n            </div>\n            <!-- /.card -->\n\n          </div>\n          <!--/.col (left) -->\n          <!-- right column -->\n          <div class=\"col-md-6\">\n            <!-- Form Element sizes -->\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Different Height</h3>\n              </div>\n              <div class=\"card-body\">\n                <input class=\"form-control form-control-lg\" type=\"text\" placeholder=\".form-control-lg\">\n                <br>\n                <input class=\"form-control\" type=\"text\" placeholder=\"Default input\">\n                <br>\n                <input class=\"form-control form-control-sm\" type=\"text\" placeholder=\".form-control-sm\">\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Different Width</h3>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-3\">\n                    <input type=\"text\" class=\"form-control\" placeholder=\".col-3\">\n                  </div>\n                  <div class=\"col-4\">\n                    <input type=\"text\" class=\"form-control\" placeholder=\".col-4\">\n                  </div>\n                  <div class=\"col-5\">\n                    <input type=\"text\" class=\"form-control\" placeholder=\".col-5\">\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <!-- general form elements disabled -->\n            <div class=\"card card-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">General Elements</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <form>\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- text input -->\n                      <div class=\"form-group\">\n                        <label>Text</label>\n                        <input type=\"text\" class=\"form-control\" placeholder=\"Enter ...\">\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Text Disabled</label>\n                        <input type=\"text\" class=\"form-control\" placeholder=\"Enter ...\" disabled>\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- textarea -->\n                      <div class=\"form-group\">\n                        <label>Textarea</label>\n                        <textarea class=\"form-control\" rows=\"3\" placeholder=\"Enter ...\"></textarea>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Textarea Disabled</label>\n                        <textarea class=\"form-control\" rows=\"3\" placeholder=\"Enter ...\" disabled></textarea>\n                      </div>\n                    </div>\n                  </div>\n\n                  <!-- input states -->\n                  <div class=\"form-group\">\n                    <label class=\"col-form-label\" for=\"inputSuccess\"><i class=\"fas fa-check\"></i> Input with\n                      success</label>\n                    <input type=\"text\" class=\"form-control is-valid\" id=\"inputSuccess\" placeholder=\"Enter ...\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label class=\"col-form-label\" for=\"inputWarning\"><i class=\"far fa-bell\"></i> Input with\n                      warning</label>\n                    <input type=\"text\" class=\"form-control is-warning\" id=\"inputWarning\" placeholder=\"Enter ...\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label class=\"col-form-label\" for=\"inputError\"><i class=\"far fa-times-circle\"></i> Input with\n                      error</label>\n                    <input type=\"text\" class=\"form-control is-invalid\" id=\"inputError\" placeholder=\"Enter ...\">\n                  </div>\n\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- checkbox -->\n                      <div class=\"form-group\">\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"checkbox\">\n                          <label class=\"form-check-label\">Checkbox</label>\n                        </div>\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"checkbox\" checked>\n                          <label class=\"form-check-label\">Checkbox checked</label>\n                        </div>\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"checkbox\" disabled>\n                          <label class=\"form-check-label\">Checkbox disabled</label>\n                        </div>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <!-- radio -->\n                      <div class=\"form-group\">\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"radio\" name=\"radio1\">\n                          <label class=\"form-check-label\">Radio</label>\n                        </div>\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"radio\" name=\"radio1\" checked>\n                          <label class=\"form-check-label\">Radio checked</label>\n                        </div>\n                        <div class=\"form-check\">\n                          <input class=\"form-check-input\" type=\"radio\" disabled>\n                          <label class=\"form-check-label\">Radio disabled</label>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- select -->\n                      <div class=\"form-group\">\n                        <label>Select</label>\n                        <select class=\"form-control\">\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Select Disabled</label>\n                        <select class=\"form-control\" disabled>\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- Select multiple-->\n                      <div class=\"form-group\">\n                        <label>Select Multiple</label>\n                        <select multiple class=\"form-control\">\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Select Multiple Disabled</label>\n                        <select multiple class=\"form-control\" disabled>\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <!-- general form elements disabled -->\n            <div class=\"card card-secondary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Custom Elements</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <form>\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- checkbox -->\n                      <div class=\"form-group\">\n                        <div class=\"custom-control custom-checkbox\">\n                          <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox1\" value=\"option1\">\n                          <label for=\"customCheckbox1\" class=\"custom-control-label\">Custom Checkbox</label>\n                        </div>\n                        <div class=\"custom-control custom-checkbox\">\n                          <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox2\" checked>\n                          <label for=\"customCheckbox2\" class=\"custom-control-label\">Custom Checkbox checked</label>\n                        </div>\n                        <div class=\"custom-control custom-checkbox\">\n                          <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox3\" disabled>\n                          <label for=\"customCheckbox3\" class=\"custom-control-label\">Custom Checkbox disabled</label>\n                        </div>\n                        <div class=\"custom-control custom-checkbox\">\n                          <input class=\"custom-control-input custom-control-input-danger\" type=\"checkbox\" id=\"customCheckbox4\" checked>\n                          <label for=\"customCheckbox4\" class=\"custom-control-label\">Custom Checkbox with custom color</label>\n                        </div>\n                        <div class=\"custom-control custom-checkbox\">\n                          <input class=\"custom-control-input custom-control-input-danger custom-control-input-outline\" type=\"checkbox\" id=\"customCheckbox5\" checked>\n                          <label for=\"customCheckbox5\" class=\"custom-control-label\">Custom Checkbox with custom color outline</label>\n                        </div>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <!-- radio -->\n                      <div class=\"form-group\">\n                        <div class=\"custom-control custom-radio\">\n                          <input class=\"custom-control-input\" type=\"radio\" id=\"customRadio1\" name=\"customRadio\">\n                          <label for=\"customRadio1\" class=\"custom-control-label\">Custom Radio</label>\n                        </div>\n                        <div class=\"custom-control custom-radio\">\n                          <input class=\"custom-control-input\" type=\"radio\" id=\"customRadio2\" name=\"customRadio\" checked>\n                          <label for=\"customRadio2\" class=\"custom-control-label\">Custom Radio checked</label>\n                        </div>\n                        <div class=\"custom-control custom-radio\">\n                          <input class=\"custom-control-input\" type=\"radio\" id=\"customRadio3\" disabled>\n                          <label for=\"customRadio3\" class=\"custom-control-label\">Custom Radio disabled</label>\n                        </div>\n                        <div class=\"custom-control custom-radio\">\n                          <input class=\"custom-control-input custom-control-input-danger\" type=\"radio\" id=\"customRadio4\" name=\"customRadio2\" checked>\n                          <label for=\"customRadio4\" class=\"custom-control-label\">Custom Radio with custom color</label>\n                        </div>\n                        <div class=\"custom-control custom-radio\">\n                          <input class=\"custom-control-input custom-control-input-danger custom-control-input-outline\" type=\"radio\" id=\"customRadio5\" name=\"customRadio2\">\n                          <label for=\"customRadio5\" class=\"custom-control-label\">Custom Radio with custom color outline</label>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- select -->\n                      <div class=\"form-group\">\n                        <label>Custom Select</label>\n                        <select class=\"custom-select\">\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Custom Select Disabled</label>\n                        <select class=\"custom-select\" disabled>\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"row\">\n                    <div class=\"col-sm-6\">\n                      <!-- Select multiple-->\n                      <div class=\"form-group\">\n                        <label>Custom Select Multiple</label>\n                        <select multiple class=\"custom-select\">\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                    <div class=\"col-sm-6\">\n                      <div class=\"form-group\">\n                        <label>Custom Select Multiple Disabled</label>\n                        <select multiple class=\"custom-select\" disabled>\n                          <option>option 1</option>\n                          <option>option 2</option>\n                          <option>option 3</option>\n                          <option>option 4</option>\n                          <option>option 5</option>\n                        </select>\n                      </div>\n                    </div>\n                  </div>\n\n                  <div class=\"form-group\">\n                    <div class=\"custom-control custom-switch\">\n                      <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch1\">\n                      <label class=\"custom-control-label\" for=\"customSwitch1\">Toggle this custom switch element</label>\n                    </div>\n                  </div>\n                  <div class=\"form-group\">\n                    <div class=\"custom-control custom-switch custom-switch-off-danger custom-switch-on-success\">\n                      <input type=\"checkbox\" class=\"custom-control-input\" id=\"customSwitch3\">\n                      <label class=\"custom-control-label\" for=\"customSwitch3\">Toggle this custom switch element with custom colors danger/success</label>\n                    </div>\n                  </div>\n                  <div class=\"form-group\">\n                    <div class=\"custom-control custom-switch\">\n                      <input type=\"checkbox\" class=\"custom-control-input\" disabled id=\"customSwitch2\">\n                      <label class=\"custom-control-label\" for=\"customSwitch2\">Disabled custom switch element</label>\n                    </div>\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"customRange1\">Custom range</label>\n                    <input type=\"range\" class=\"custom-range\" id=\"customRange1\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"customRange2\">Custom range (custom-range-danger)</label>\n                    <input type=\"range\" class=\"custom-range custom-range-danger\" id=\"customRange2\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"customRange3\">Custom range (custom-range-teal)</label>\n                    <input type=\"range\" class=\"custom-range custom-range-teal\" id=\"customRange3\">\n                  </div>\n                  <div class=\"form-group\">\n                    <!-- <label for=\"customFile\">Custom File</label> -->\n\n                    <div class=\"custom-file\">\n                      <input type=\"file\" class=\"custom-file-input\" id=\"customFile\">\n                      <label class=\"custom-file-label\" for=\"customFile\">Choose file</label>\n                    </div>\n                  </div>\n                  <div class=\"form-group\">\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!--/.col (right) -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- bs-custom-file-input -->\n<script src=\"../../plugins/bs-custom-file-input/bs-custom-file-input.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n$(function () {\n  bsCustomFileInput.init();\n});\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/forms/validation.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Validation Form</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Validation</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Validation</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <!-- left column -->\n          <div class=\"col-md-12\">\n            <!-- jquery validation -->\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Quick Example <small>jQuery Validation</small></h3>\n              </div>\n              <!-- /.card-header -->\n              <!-- form start -->\n              <form id=\"quickForm\">\n                <div class=\"card-body\">\n                  <div class=\"form-group\">\n                    <label for=\"exampleInputEmail1\">Email address</label>\n                    <input type=\"email\" name=\"email\" class=\"form-control\" id=\"exampleInputEmail1\" placeholder=\"Enter email\">\n                  </div>\n                  <div class=\"form-group\">\n                    <label for=\"exampleInputPassword1\">Password</label>\n                    <input type=\"password\" name=\"password\" class=\"form-control\" id=\"exampleInputPassword1\" placeholder=\"Password\">\n                  </div>\n                  <div class=\"form-group mb-0\">\n                    <div class=\"custom-control custom-checkbox\">\n                      <input type=\"checkbox\" name=\"terms\" class=\"custom-control-input\" id=\"exampleCheck1\">\n                      <label class=\"custom-control-label\" for=\"exampleCheck1\">I agree to the <a href=\"#\">terms of service</a>.</label>\n                    </div>\n                  </div>\n                </div>\n                <!-- /.card-body -->\n                <div class=\"card-footer\">\n                  <button type=\"submit\" class=\"btn btn-primary\">Submit</button>\n                </div>\n              </form>\n            </div>\n            <!-- /.card -->\n            </div>\n          <!--/.col (left) -->\n          <!-- right column -->\n          <div class=\"col-md-6\">\n\n          </div>\n          <!--/.col (right) -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- jquery-validation -->\n<script src=\"../../plugins/jquery-validation/jquery.validate.min.js\"></script>\n<script src=\"../../plugins/jquery-validation/additional-methods.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n$(function () {\n  $.validator.setDefaults({\n    submitHandler: function () {\n      alert( \"Form successful submitted!\" );\n    }\n  });\n  $('#quickForm').validate({\n    rules: {\n      email: {\n        required: true,\n        email: true,\n      },\n      password: {\n        required: true,\n        minlength: 5\n      },\n      terms: {\n        required: true\n      },\n    },\n    messages: {\n      email: {\n        required: \"Please enter a email address\",\n        email: \"Please enter a vaild email address\"\n      },\n      password: {\n        required: \"Please provide a password\",\n        minlength: \"Your password must be at least 5 characters long\"\n      },\n      terms: \"Please accept our terms\"\n    },\n    errorElement: 'span',\n    errorPlacement: function (error, element) {\n      error.addClass('invalid-feedback');\n      element.closest('.form-group').append(error);\n    },\n    highlight: function (element, errorClass, validClass) {\n      $(element).addClass('is-invalid');\n    },\n    unhighlight: function (element, errorClass, validClass) {\n      $(element).removeClass('is-invalid');\n    }\n  });\n});\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/gallery.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Gallery</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Ekko Lightbox -->\n  <link rel=\"stylesheet\" href=\"../plugins/ekko-lightbox/ekko-lightbox.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../index3.html\" class=\"brand-link\">\n      <img src=\"../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"gallery.html\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Gallery</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Gallery</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h4 class=\"card-title\">FilterizR Gallery with Ekko Lightbox</h4>\n              </div>\n              <div class=\"card-body\">\n                <div>\n                  <div class=\"btn-group w-100 mb-2\">\n                    <a class=\"btn btn-info active\" href=\"javascript:void(0)\" data-filter=\"all\"> All items </a>\n                    <a class=\"btn btn-info\" href=\"javascript:void(0)\" data-filter=\"1\"> Category 1 (WHITE) </a>\n                    <a class=\"btn btn-info\" href=\"javascript:void(0)\" data-filter=\"2\"> Category 2 (BLACK) </a>\n                    <a class=\"btn btn-info\" href=\"javascript:void(0)\" data-filter=\"3\"> Category 3 (COLORED) </a>\n                    <a class=\"btn btn-info\" href=\"javascript:void(0)\" data-filter=\"4\"> Category 4 (COLORED, BLACK) </a>\n                  </div>\n                  <div class=\"mb-2\">\n                    <a class=\"btn btn-secondary\" href=\"javascript:void(0)\" data-shuffle> Shuffle items </a>\n                    <div class=\"float-right\">\n                      <select class=\"custom-select\" style=\"width: auto;\" data-sortOrder>\n                        <option value=\"index\"> Sort by Position </option>\n                        <option value=\"sortData\"> Sort by Custom Data </option>\n                      </select>\n                      <div class=\"btn-group\">\n                        <a class=\"btn btn-default\" href=\"javascript:void(0)\" data-sortAsc> Ascending </a>\n                        <a class=\"btn btn-default\" href=\"javascript:void(0)\" data-sortDesc> Descending </a>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <div>\n                  <div class=\"filter-container p-0 row\">\n                    <div class=\"filtr-item col-sm-2\" data-category=\"1\" data-sort=\"white sample\">\n                      <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=1\" data-toggle=\"lightbox\" data-title=\"sample 1 - white\">\n                        <img src=\"https://via.placeholder.com/300/FFFFFF?text=1\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"2, 4\" data-sort=\"black sample\">\n                      <a href=\"https://via.placeholder.com/1200/000000.png?text=2\" data-toggle=\"lightbox\" data-title=\"sample 2 - black\">\n                        <img src=\"https://via.placeholder.com/300/000000?text=2\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"3, 4\" data-sort=\"red sample\">\n                      <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=3\" data-toggle=\"lightbox\" data-title=\"sample 3 - red\">\n                        <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=3\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"3, 4\" data-sort=\"red sample\">\n                      <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=4\" data-toggle=\"lightbox\" data-title=\"sample 4 - red\">\n                        <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=4\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"2, 4\" data-sort=\"black sample\">\n                      <a href=\"https://via.placeholder.com/1200/000000.png?text=5\" data-toggle=\"lightbox\" data-title=\"sample 5 - black\">\n                        <img src=\"https://via.placeholder.com/300/000000?text=5\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"1\" data-sort=\"white sample\">\n                      <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=6\" data-toggle=\"lightbox\" data-title=\"sample 6 - white\">\n                        <img src=\"https://via.placeholder.com/300/FFFFFF?text=6\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"1\" data-sort=\"white sample\">\n                      <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=7\" data-toggle=\"lightbox\" data-title=\"sample 7 - white\">\n                        <img src=\"https://via.placeholder.com/300/FFFFFF?text=7\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"2, 4\" data-sort=\"black sample\">\n                      <a href=\"https://via.placeholder.com/1200/000000.png?text=8\" data-toggle=\"lightbox\" data-title=\"sample 8 - black\">\n                        <img src=\"https://via.placeholder.com/300/000000?text=8\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"3, 4\" data-sort=\"red sample\">\n                      <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=9\" data-toggle=\"lightbox\" data-title=\"sample 9 - red\">\n                        <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=9\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"1\" data-sort=\"white sample\">\n                      <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=10\" data-toggle=\"lightbox\" data-title=\"sample 10 - white\">\n                        <img src=\"https://via.placeholder.com/300/FFFFFF?text=10\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"1\" data-sort=\"white sample\">\n                      <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=11\" data-toggle=\"lightbox\" data-title=\"sample 11 - white\">\n                        <img src=\"https://via.placeholder.com/300/FFFFFF?text=11\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                      </a>\n                    </div>\n                    <div class=\"filtr-item col-sm-2\" data-category=\"2, 4\" data-sort=\"black sample\">\n                      <a href=\"https://via.placeholder.com/1200/000000.png?text=12\" data-toggle=\"lightbox\" data-title=\"sample 12 - black\">\n                        <img src=\"https://via.placeholder.com/300/000000?text=12\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                      </a>\n                    </div>\n                  </div>\n                </div>\n\n              </div>\n            </div>\n          </div>\n          <div class=\"col-12\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h4 class=\"card-title\">Ekko Lightbox</h4>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"row\">\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=1\" data-toggle=\"lightbox\" data-title=\"sample 1 - white\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FFFFFF?text=1\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/000000.png?text=2\" data-toggle=\"lightbox\" data-title=\"sample 2 - black\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/000000?text=2\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=3\" data-toggle=\"lightbox\" data-title=\"sample 3 - red\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=3\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=4\" data-toggle=\"lightbox\" data-title=\"sample 4 - red\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=4\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/000000.png?text=5\" data-toggle=\"lightbox\" data-title=\"sample 5 - black\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/000000?text=5\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=6\" data-toggle=\"lightbox\" data-title=\"sample 6 - white\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FFFFFF?text=6\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=7\" data-toggle=\"lightbox\" data-title=\"sample 7 - white\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FFFFFF?text=7\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/000000.png?text=8\" data-toggle=\"lightbox\" data-title=\"sample 8 - black\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/000000?text=8\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FF0000/FFFFFF.png?text=9\" data-toggle=\"lightbox\" data-title=\"sample 9 - red\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FF0000/FFFFFF?text=9\" class=\"img-fluid mb-2\" alt=\"red sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=10\" data-toggle=\"lightbox\" data-title=\"sample 10 - white\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FFFFFF?text=10\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/FFFFFF.png?text=11\" data-toggle=\"lightbox\" data-title=\"sample 11 - white\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/FFFFFF?text=11\" class=\"img-fluid mb-2\" alt=\"white sample\"/>\n                    </a>\n                  </div>\n                  <div class=\"col-sm-2\">\n                    <a href=\"https://via.placeholder.com/1200/000000.png?text=12\" data-toggle=\"lightbox\" data-title=\"sample 12 - black\" data-gallery=\"gallery\">\n                      <img src=\"https://via.placeholder.com/300/000000?text=12\" class=\"img-fluid mb-2\" alt=\"black sample\"/>\n                    </a>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap -->\n<script src=\"../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- Ekko Lightbox -->\n<script src=\"../plugins/ekko-lightbox/ekko-lightbox.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../dist/js/adminlte.min.js\"></script>\n<!-- Filterizr-->\n<script src=\"../plugins/filterizr/jquery.filterizr.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    $(document).on('click', '[data-toggle=\"lightbox\"]', function(event) {\n      event.preventDefault();\n      $(this).ekkoLightbox({\n        alwaysShowClose: true\n      });\n    });\n\n    $('.filter-container').filterizr({gutterPixels: 3});\n    $('.btn[data-filter]').on('click', function() {\n      $('.btn[data-filter]').removeClass('active');\n      $(this).addClass('active');\n    });\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/kanban.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Kanban Board</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Ekko Lightbox -->\n  <link rel=\"stylesheet\" href=\"../plugins/ekko-lightbox/ekko-lightbox.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../dist/css/adminlte.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"../plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-fixed\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../index3.html\" class=\"brand-link\">\n      <img src=\"../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"kanban.html\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper kanban\">\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-sm-6\">\n            <h1>Kanban Board</h1>\n          </div>\n          <div class=\"col-sm-6 d-none d-sm-block\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Kanban Board</li>\n            </ol>\n          </div>\n        </div>\n      </div>\n    </section>\n\n    <section class=\"content pb-3\">\n      <div class=\"container-fluid h-100\">\n        <div class=\"card card-row card-secondary\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              Backlog\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"card card-info card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create Labels</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#3</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox1\" disabled>\n                  <label for=\"customCheckbox1\" class=\"custom-control-label\">Bug</label>\n                </div>\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox2\" disabled>\n                  <label for=\"customCheckbox2\" class=\"custom-control-label\">Feature</label>\n                </div>\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox3\" disabled>\n                  <label for=\"customCheckbox3\" class=\"custom-control-label\">Enhancement</label>\n                </div>\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox4\" disabled>\n                  <label for=\"customCheckbox4\" class=\"custom-control-label\">Documentation</label>\n                </div>\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox5\" disabled>\n                  <label for=\"customCheckbox5\" class=\"custom-control-label\">Examples</label>\n                </div>\n              </div>\n            </div>\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create Issue template</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#4</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox1_1\" disabled>\n                  <label for=\"customCheckbox1_1\" class=\"custom-control-label\">Bug Report</label>\n                </div>\n                <div class=\"custom-control custom-checkbox\">\n                  <input class=\"custom-control-input\" type=\"checkbox\" id=\"customCheckbox1_2\" disabled>\n                  <label for=\"customCheckbox1_2\" class=\"custom-control-label\">Feature Request</label>\n                </div>\n              </div>\n            </div>\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create PR template</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#6</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n            </div>\n            <div class=\"card card-light card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create Actions</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#7</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n\n              </div>\n              <div class=\"card-body\">\n                <p>\n                  Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n                  Aenean commodo ligula eget dolor. Aenean massa.\n                  Cum sociis natoque penatibus et magnis dis parturient montes,\n                  nascetur ridiculus mus.\n                </p>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"card card-row card-primary\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              To Do\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create first milestone</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#5</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"card card-row card-default\">\n          <div class=\"card-header bg-info\">\n            <h3 class=\"card-title\">\n              In Progress\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"card card-light card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Update Readme</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#2</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                <p>\n                  Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n                  Aenean commodo ligula eget dolor. Aenean massa.\n                  Cum sociis natoque penatibus et magnis dis parturient montes,\n                  nascetur ridiculus mus.\n                </p>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"card card-row card-success\">\n          <div class=\"card-header\">\n            <h3 class=\"card-title\">\n              Done\n            </h3>\n          </div>\n          <div class=\"card-body\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title\">Create repo</h5>\n                <div class=\"card-tools\">\n                  <a href=\"#\" class=\"btn btn-tool btn-link\">#1</a>\n                  <a href=\"#\" class=\"btn btn-tool\">\n                    <i class=\"fas fa-pen\"></i>\n                  </a>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n  </div>\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap -->\n<script src=\"../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- Ekko Lightbox -->\n<script src=\"../plugins/ekko-lightbox/ekko-lightbox.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"../plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../dist/js/adminlte.min.js\"></script>\n<!-- Filterizr-->\n<script src=\"../plugins/filterizr/jquery.filterizr.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/boxed.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Boxed Layout</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-boxed\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Boxed Layout</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Boxed Layout</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/collapsed-sidebar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Collapsed Sidebar</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini sidebar-collapse\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Collapsed Sidebar</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Collapsed Sidebar</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/fixed-footer.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Fixed Footer Layout</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-footer-fixed\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Fixed Footer Layout</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Fixed Footer Layout</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/fixed-sidebar-custom.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Fixed Sidebar</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"../../plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-fixed\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar main-sidebar-custom sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p class=\"\">Fixed Sidebar<small> + Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n\n    <div class=\"sidebar-custom\">\n      <a href=\"#\" class=\"btn btn-link\"><i class=\"fas fa-cogs\"></i></a>\n      <a href=\"#\" class=\"btn btn-secondary hide-on-collapse pos-right\">Help</a>\n    </div>\n    <!-- /.sidebar-custom -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Fixed Layout</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Fixed Layout</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"../../plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/fixed-sidebar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Fixed Sidebar</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- overlayScrollbars -->\n  <link rel=\"stylesheet\" href=\"../../plugins/overlayScrollbars/css/OverlayScrollbars.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-fixed\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Fixed Layout</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Fixed Layout</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- overlayScrollbars -->\n<script src=\"../../plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/fixed-topnav.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Fixed Navbar Layout</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini layout-navbar-fixed\">\n<!-- Site wrapper -->\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link elevation-4\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Fixed Navbar Layout</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Fixed Navbar Layout</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <!-- Default box -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Title</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\" title=\"Collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\" title=\"Remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body\">\n                Start creating your amazing application!\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                Footer\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n      </div>\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/top-nav-sidebar.html",
    "content": "<!DOCTYPE html>\n<!--\nThis is a starter template page. Use this page to start your new project from\nscratch. This page gets rid of all links and provides the needed markup only.\n-->\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Top Navigation + Sidebar</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome Icons -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-collapse layout-top-nav\">\n<div class=\"wrapper\">\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand-md navbar-light navbar-white\">\n    <div class=\"container\">\n      <a href=\"../../index3.html\" class=\"navbar-brand\">\n        <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n        <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n      </a>\n\n      <button class=\"navbar-toggler order-1\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarCollapse\" aria-controls=\"navbarCollapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n        <span class=\"navbar-toggler-icon\"></span>\n      </button>\n\n      <div class=\"collapse navbar-collapse order-3\" id=\"navbarCollapse\">\n        <!-- Left navbar links -->\n        <ul class=\"navbar-nav\">\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"index3.html\" class=\"nav-link\">Home</a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">Contact</a>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a id=\"dropdownSubMenu1\" href=\"#\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"nav-link dropdown-toggle\">Dropdown</a>\n            <ul aria-labelledby=\"dropdownSubMenu1\" class=\"dropdown-menu border-0 shadow\">\n              <li><a href=\"#\" class=\"dropdown-item\">Some action </a></li>\n              <li><a href=\"#\" class=\"dropdown-item\">Some other action</a></li>\n\n              <li class=\"dropdown-divider\"></li>\n\n              <!-- Level two dropdown-->\n              <li class=\"dropdown-submenu dropdown-hover\">\n                <a id=\"dropdownSubMenu2\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"dropdown-item dropdown-toggle\">Hover for action</a>\n                <ul aria-labelledby=\"dropdownSubMenu2\" class=\"dropdown-menu border-0 shadow\">\n                  <li>\n                    <a tabindex=\"-1\" href=\"#\" class=\"dropdown-item\">level 2</a>\n                  </li>\n\n                  <!-- Level three dropdown-->\n                  <li class=\"dropdown-submenu\">\n                    <a id=\"dropdownSubMenu3\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"dropdown-item dropdown-toggle\">level 2</a>\n                    <ul aria-labelledby=\"dropdownSubMenu3\" class=\"dropdown-menu border-0 shadow\">\n                      <li><a href=\"#\" class=\"dropdown-item\">3rd level</a></li>\n                      <li><a href=\"#\" class=\"dropdown-item\">3rd level</a></li>\n                    </ul>\n                  </li>\n                  <!-- End Level three -->\n\n                  <li><a href=\"#\" class=\"dropdown-item\">level 2</a></li>\n                  <li><a href=\"#\" class=\"dropdown-item\">level 2</a></li>\n                </ul>\n              </li>\n              <!-- End Level two -->\n            </ul>\n          </li>\n        </ul>\n\n        <!-- SEARCH FORM -->\n        <form class=\"form-inline ml-0 ml-md-3\">\n          <div class=\"input-group input-group-sm\">\n            <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n            <div class=\"input-group-append\">\n              <button class=\"btn btn-navbar\" type=\"submit\">\n                <i class=\"fas fa-search\"></i>\n              </button>\n            </div>\n          </div>\n        </form>\n      </div>\n\n      <!-- Right navbar links -->\n      <ul class=\"order-1 order-md-3 navbar-nav navbar-no-expand ml-auto\">\n        <!-- Messages Dropdown Menu -->\n        <li class=\"nav-item dropdown\">\n          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n            <i class=\"fas fa-comments\"></i>\n            <span class=\"badge badge-danger navbar-badge\">3</span>\n          </a>\n          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    Brad Diesel\n                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">Call me whenever you can...</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    John Pierce\n                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">I got your message bro</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    Nora Silvester\n                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">The subject goes here</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n          </div>\n        </li>\n        <!-- Notifications Dropdown Menu -->\n        <li class=\"nav-item dropdown\">\n          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n            <i class=\"far fa-bell\"></i>\n            <span class=\"badge badge-warning navbar-badge\">15</span>\n          </a>\n          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n            <span class=\"dropdown-header\">15 Notifications</span>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n              <span class=\"float-right text-muted text-sm\">3 mins</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n              <span class=\"float-right text-muted text-sm\">12 hours</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n              <span class=\"float-right text-muted text-sm\">2 days</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n          </div>\n        </li>\n        <li class=\"nav-item\">\n          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n            <i class=\"fas fa-th-large\"></i>\n          </a>\n        </li>\n      </ul>\n    </div>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\"> Top Navigation <small>Example 3.0</small></h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Top Navigation</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <div class=\"content\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div><!-- /.card -->\n          </div>\n          <!-- /.col-md-6 -->\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n          </div>\n          <!-- /.col-md-6 -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n\n  <!-- Main Footer -->\n  <footer class=\"main-footer\">\n    <!-- To the right -->\n    <div class=\"float-right d-none d-sm-inline\">\n      Anything you want\n    </div>\n    <!-- Default to the left -->\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n</div>\n<!-- ./wrapper -->\n\n<!-- REQUIRED SCRIPTS -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/layout/top-nav.html",
    "content": "<!DOCTYPE html>\n<!--\nThis is a starter template page. Use this page to start your new project from\nscratch. This page gets rid of all links and provides the needed markup only.\n-->\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Top Navigation</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome Icons -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition layout-top-nav\">\n<div class=\"wrapper\">\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand-md navbar-light navbar-white\">\n    <div class=\"container\">\n      <a href=\"../../index3.html\" class=\"navbar-brand\">\n        <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n        <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n      </a>\n\n      <button class=\"navbar-toggler order-1\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarCollapse\" aria-controls=\"navbarCollapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n        <span class=\"navbar-toggler-icon\"></span>\n      </button>\n\n      <div class=\"collapse navbar-collapse order-3\" id=\"navbarCollapse\">\n        <!-- Left navbar links -->\n        <ul class=\"navbar-nav\">\n          <li class=\"nav-item\">\n            <a href=\"index3.html\" class=\"nav-link\">Home</a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">Contact</a>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a id=\"dropdownSubMenu1\" href=\"#\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"nav-link dropdown-toggle\">Dropdown</a>\n            <ul aria-labelledby=\"dropdownSubMenu1\" class=\"dropdown-menu border-0 shadow\">\n              <li><a href=\"#\" class=\"dropdown-item\">Some action </a></li>\n              <li><a href=\"#\" class=\"dropdown-item\">Some other action</a></li>\n\n              <li class=\"dropdown-divider\"></li>\n\n              <!-- Level two dropdown-->\n              <li class=\"dropdown-submenu dropdown-hover\">\n                <a id=\"dropdownSubMenu2\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"dropdown-item dropdown-toggle\">Hover for action</a>\n                <ul aria-labelledby=\"dropdownSubMenu2\" class=\"dropdown-menu border-0 shadow\">\n                  <li>\n                    <a tabindex=\"-1\" href=\"#\" class=\"dropdown-item\">level 2</a>\n                  </li>\n\n                  <!-- Level three dropdown-->\n                  <li class=\"dropdown-submenu\">\n                    <a id=\"dropdownSubMenu3\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"dropdown-item dropdown-toggle\">level 2</a>\n                    <ul aria-labelledby=\"dropdownSubMenu3\" class=\"dropdown-menu border-0 shadow\">\n                      <li><a href=\"#\" class=\"dropdown-item\">3rd level</a></li>\n                      <li><a href=\"#\" class=\"dropdown-item\">3rd level</a></li>\n                    </ul>\n                  </li>\n                  <!-- End Level three -->\n\n                  <li><a href=\"#\" class=\"dropdown-item\">level 2</a></li>\n                  <li><a href=\"#\" class=\"dropdown-item\">level 2</a></li>\n                </ul>\n              </li>\n              <!-- End Level two -->\n            </ul>\n          </li>\n        </ul>\n\n        <!-- SEARCH FORM -->\n        <form class=\"form-inline ml-0 ml-md-3\">\n          <div class=\"input-group input-group-sm\">\n            <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n            <div class=\"input-group-append\">\n              <button class=\"btn btn-navbar\" type=\"submit\">\n                <i class=\"fas fa-search\"></i>\n              </button>\n            </div>\n          </div>\n        </form>\n      </div>\n\n      <!-- Right navbar links -->\n      <ul class=\"order-1 order-md-3 navbar-nav navbar-no-expand ml-auto\">\n        <!-- Messages Dropdown Menu -->\n        <li class=\"nav-item dropdown\">\n          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n            <i class=\"fas fa-comments\"></i>\n            <span class=\"badge badge-danger navbar-badge\">3</span>\n          </a>\n          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    Brad Diesel\n                    <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">Call me whenever you can...</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    John Pierce\n                    <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">I got your message bro</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <!-- Message Start -->\n              <div class=\"media\">\n                <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n                <div class=\"media-body\">\n                  <h3 class=\"dropdown-item-title\">\n                    Nora Silvester\n                    <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                  </h3>\n                  <p class=\"text-sm\">The subject goes here</p>\n                  <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n                </div>\n              </div>\n              <!-- Message End -->\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n          </div>\n        </li>\n        <!-- Notifications Dropdown Menu -->\n        <li class=\"nav-item dropdown\">\n          <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n            <i class=\"far fa-bell\"></i>\n            <span class=\"badge badge-warning navbar-badge\">15</span>\n          </a>\n          <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n            <span class=\"dropdown-header\">15 Notifications</span>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n              <span class=\"float-right text-muted text-sm\">3 mins</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n              <span class=\"float-right text-muted text-sm\">12 hours</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item\">\n              <i class=\"fas fa-file mr-2\"></i> 3 new reports\n              <span class=\"float-right text-muted text-sm\">2 days</span>\n            </a>\n            <div class=\"dropdown-divider\"></div>\n            <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n          </div>\n        </li>\n        <li class=\"nav-item\">\n          <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n            <i class=\"fas fa-th-large\"></i>\n          </a>\n        </li>\n      </ul>\n    </div>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\"> Top Navigation <small>Example 3.0</small></h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item\"><a href=\"#\">Layout</a></li>\n              <li class=\"breadcrumb-item active\">Top Navigation</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <div class=\"content\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div><!-- /.card -->\n          </div>\n          <!-- /.col-md-6 -->\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"card-title m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n          </div>\n          <!-- /.col-md-6 -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n\n  <!-- Main Footer -->\n  <footer class=\"main-footer\">\n    <!-- To the right -->\n    <div class=\"float-right d-none d-sm-inline\">\n      Anything you want\n    </div>\n    <!-- Default to the left -->\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n</div>\n<!-- ./wrapper -->\n\n<!-- REQUIRED SCRIPTS -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/mailbox/compose.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Compose Message</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n  <!-- summernote -->\n  <link rel=\"stylesheet\" href=\"../../plugins/summernote/summernote-bs4.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Compose</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Compose</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <a href=\"mailbox.html\" class=\"btn btn-primary btn-block mb-3\">Back to Inbox</a>\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Folders</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body p-0\">\n                <ul class=\"nav nav-pills flex-column\">\n                  <li class=\"nav-item active\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"fas fa-inbox\"></i> Inbox\n                      <span class=\"badge bg-primary float-right\">12</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-envelope\"></i> Sent\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-file-alt\"></i> Drafts\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"fas fa-filter\"></i> Junk\n                      <span class=\"badge bg-warning float-right\">65</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-trash-alt\"></i> Trash\n                    </a>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Labels</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <ul class=\"nav nav-pills flex-column\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-danger\"></i> Important</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-warning\"></i> Promotions</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-primary\"></i> Social</a>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-9\">\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Compose New Message</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <div class=\"form-group\">\n                  <input class=\"form-control\" placeholder=\"To:\">\n                </div>\n                <div class=\"form-group\">\n                  <input class=\"form-control\" placeholder=\"Subject:\">\n                </div>\n                <div class=\"form-group\">\n                    <textarea id=\"compose-textarea\" class=\"form-control\" style=\"height: 300px\">\n                      <h1><u>Heading Of Message</u></h1>\n                      <h4>Subheading</h4>\n                      <p>But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain\n                        was born and I will give you a complete account of the system, and expound the actual teachings\n                        of the great explorer of the truth, the master-builder of human happiness. No one rejects,\n                        dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know\n                        how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again\n                        is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain,\n                        but because occasionally circumstances occur in which toil and pain can procure him some great\n                        pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise,\n                        except to obtain some advantage from it? But who has any right to find fault with a man who\n                        chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that\n                        produces no resultant pleasure? On the other hand, we denounce with righteous indignation and\n                        dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so\n                        blinded by desire, that they cannot foresee</p>\n                      <ul>\n                        <li>List item one</li>\n                        <li>List item two</li>\n                        <li>List item three</li>\n                        <li>List item four</li>\n                      </ul>\n                      <p>Thank you,</p>\n                      <p>John Doe</p>\n                    </textarea>\n                </div>\n                <div class=\"form-group\">\n                  <div class=\"btn btn-default btn-file\">\n                    <i class=\"fas fa-paperclip\"></i> Attachment\n                    <input type=\"file\" name=\"attachment\">\n                  </div>\n                  <p class=\"help-block\">Max. 32MB</p>\n                </div>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <div class=\"float-right\">\n                  <button type=\"button\" class=\"btn btn-default\"><i class=\"fas fa-pencil-alt\"></i> Draft</button>\n                  <button type=\"submit\" class=\"btn btn-primary\"><i class=\"far fa-envelope\"></i> Send</button>\n                </div>\n                <button type=\"reset\" class=\"btn btn-default\"><i class=\"fas fa-times\"></i> Discard</button>\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- Summernote -->\n<script src=\"../../plugins/summernote/summernote-bs4.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    //Add text editor\n    $('#compose-textarea').summernote()\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/mailbox/mailbox.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Mailbox</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- icheck bootstrap -->\n  <link rel=\"stylesheet\" href=\"../../plugins/icheck-bootstrap/icheck-bootstrap.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Inbox</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Inbox</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"row\">\n        <div class=\"col-md-3\">\n          <a href=\"compose.html\" class=\"btn btn-primary btn-block mb-3\">Compose</a>\n\n          <div class=\"card\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Folders</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body p-0\">\n              <ul class=\"nav nav-pills flex-column\">\n                <li class=\"nav-item active\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"fas fa-inbox\"></i> Inbox\n                    <span class=\"badge bg-primary float-right\">12</span>\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-envelope\"></i> Sent\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-file-alt\"></i> Drafts\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"fas fa-filter\"></i> Junk\n                    <span class=\"badge bg-warning float-right\">65</span>\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-trash-alt\"></i> Trash\n                  </a>\n                </li>\n              </ul>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n          <div class=\"card\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Labels</h3>\n\n              <div class=\"card-tools\">\n                <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                  <i class=\"fas fa-minus\"></i>\n                </button>\n              </div>\n            </div>\n            <div class=\"card-body p-0\">\n              <ul class=\"nav nav-pills flex-column\">\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-circle text-danger\"></i>\n                    Important\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-circle text-warning\"></i> Promotions\n                  </a>\n                </li>\n                <li class=\"nav-item\">\n                  <a href=\"#\" class=\"nav-link\">\n                    <i class=\"far fa-circle text-primary\"></i>\n                    Social\n                  </a>\n                </li>\n              </ul>\n            </div>\n            <!-- /.card-body -->\n          </div>\n          <!-- /.card -->\n        </div>\n        <!-- /.col -->\n        <div class=\"col-md-9\">\n          <div class=\"card card-primary card-outline\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Inbox</h3>\n\n              <div class=\"card-tools\">\n                <div class=\"input-group input-group-sm\">\n                  <input type=\"text\" class=\"form-control\" placeholder=\"Search Mail\">\n                  <div class=\"input-group-append\">\n                    <div class=\"btn btn-primary\">\n                      <i class=\"fas fa-search\"></i>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-tools -->\n            </div>\n            <!-- /.card-header -->\n            <div class=\"card-body p-0\">\n              <div class=\"mailbox-controls\">\n                <!-- Check all button -->\n                <button type=\"button\" class=\"btn btn-default btn-sm checkbox-toggle\"><i class=\"far fa-square\"></i>\n                </button>\n                <div class=\"btn-group\">\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"far fa-trash-alt\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"fas fa-reply\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"fas fa-share\"></i>\n                  </button>\n                </div>\n                <!-- /.btn-group -->\n                <button type=\"button\" class=\"btn btn-default btn-sm\">\n                  <i class=\"fas fa-sync-alt\"></i>\n                </button>\n                <div class=\"float-right\">\n                  1-50/200\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-default btn-sm\">\n                      <i class=\"fas fa-chevron-left\"></i>\n                    </button>\n                    <button type=\"button\" class=\"btn btn-default btn-sm\">\n                      <i class=\"fas fa-chevron-right\"></i>\n                    </button>\n                  </div>\n                  <!-- /.btn-group -->\n                </div>\n                <!-- /.float-right -->\n              </div>\n              <div class=\"table-responsive mailbox-messages\">\n                <table class=\"table table-hover table-striped\">\n                  <tbody>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check1\">\n                        <label for=\"check1\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">5 mins ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check2\">\n                        <label for=\"check2\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">28 mins ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check3\">\n                        <label for=\"check3\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">11 hours ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check4\">\n                        <label for=\"check4\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">15 hours ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check5\">\n                        <label for=\"check5\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">Yesterday</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check6\">\n                        <label for=\"check6\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">2 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check7\">\n                        <label for=\"check7\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">2 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check8\">\n                        <label for=\"check8\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">2 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check9\">\n                        <label for=\"check9\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">2 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check10\">\n                        <label for=\"check10\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">2 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check11\">\n                        <label for=\"check11\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">4 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check12\">\n                        <label for=\"check12\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"></td>\n                    <td class=\"mailbox-date\">12 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check13\">\n                        <label for=\"check13\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star-o text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">12 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check14\">\n                        <label for=\"check14\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">14 days ago</td>\n                  </tr>\n                  <tr>\n                    <td>\n                      <div class=\"icheck-primary\">\n                        <input type=\"checkbox\" value=\"\" id=\"check15\">\n                        <label for=\"check15\"></label>\n                      </div>\n                    </td>\n                    <td class=\"mailbox-star\"><a href=\"#\"><i class=\"fas fa-star text-warning\"></i></a></td>\n                    <td class=\"mailbox-name\"><a href=\"read-mail.html\">Alexander Pierce</a></td>\n                    <td class=\"mailbox-subject\"><b>AdminLTE 3.0 Issue</b> - Trying to find a solution to this problem...\n                    </td>\n                    <td class=\"mailbox-attachment\"><i class=\"fas fa-paperclip\"></i></td>\n                    <td class=\"mailbox-date\">15 days ago</td>\n                  </tr>\n                  </tbody>\n                </table>\n                <!-- /.table -->\n              </div>\n              <!-- /.mail-box-messages -->\n            </div>\n            <!-- /.card-body -->\n            <div class=\"card-footer p-0\">\n              <div class=\"mailbox-controls\">\n                <!-- Check all button -->\n                <button type=\"button\" class=\"btn btn-default btn-sm checkbox-toggle\">\n                  <i class=\"far fa-square\"></i>\n                </button>\n                <div class=\"btn-group\">\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"far fa-trash-alt\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"fas fa-reply\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\">\n                    <i class=\"fas fa-share\"></i>\n                  </button>\n                </div>\n                <!-- /.btn-group -->\n                <button type=\"button\" class=\"btn btn-default btn-sm\">\n                  <i class=\"fas fa-sync-alt\"></i>\n                </button>\n                <div class=\"float-right\">\n                  1-50/200\n                  <div class=\"btn-group\">\n                    <button type=\"button\" class=\"btn btn-default btn-sm\">\n                      <i class=\"fas fa-chevron-left\"></i>\n                    </button>\n                    <button type=\"button\" class=\"btn btn-default btn-sm\">\n                      <i class=\"fas fa-chevron-right\"></i>\n                    </button>\n                  </div>\n                  <!-- /.btn-group -->\n                </div>\n                <!-- /.float-right -->\n              </div>\n            </div>\n          </div>\n          <!-- /.card -->\n        </div>\n        <!-- /.col -->\n      </div>\n      <!-- /.row -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    //Enable check and uncheck all functionality\n    $('.checkbox-toggle').click(function () {\n      var clicks = $(this).data('clicks')\n      if (clicks) {\n        //Uncheck all checkboxes\n        $('.mailbox-messages input[type=\\'checkbox\\']').prop('checked', false)\n        $('.checkbox-toggle .far.fa-check-square').removeClass('fa-check-square').addClass('fa-square')\n      } else {\n        //Check all checkboxes\n        $('.mailbox-messages input[type=\\'checkbox\\']').prop('checked', true)\n        $('.checkbox-toggle .far.fa-square').removeClass('fa-square').addClass('fa-check-square')\n      }\n      $(this).data('clicks', !clicks)\n    })\n\n    //Handle starring for font awesome\n    $('.mailbox-star').click(function (e) {\n      e.preventDefault()\n      //detect type\n      var $this = $(this).find('a > i')\n      var fa    = $this.hasClass('fa')\n\n      //Switch states\n      if (fa) {\n        $this.toggleClass('fa-star')\n        $this.toggleClass('fa-star-o')\n      }\n    })\n  })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/mailbox/read-mail.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Read Mail</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Compose</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Compose</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <a href=\"mailbox.html\" class=\"btn btn-primary btn-block mb-3\">Back to Inbox</a>\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Folders</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n              </div>\n              <div class=\"card-body p-0\">\n                <ul class=\"nav nav-pills flex-column\">\n                  <li class=\"nav-item active\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"fas fa-inbox\"></i> Inbox\n                      <span class=\"badge bg-primary float-right\">12</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-envelope\"></i> Sent\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-file-alt\"></i> Drafts\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"fas fa-filter\"></i> Junk\n                      <span class=\"badge bg-warning float-right\">65</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-trash-alt\"></i> Trash\n                    </a>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Labels</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <ul class=\"nav nav-pills flex-column\">\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-danger\"></i> Important</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-warning\"></i> Promotions</a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a class=\"nav-link\" href=\"#\"><i class=\"far fa-circle text-primary\"></i> Social</a>\n                  </li>\n                </ul>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        <div class=\"col-md-9\">\n          <div class=\"card card-primary card-outline\">\n            <div class=\"card-header\">\n              <h3 class=\"card-title\">Read Mail</h3>\n\n              <div class=\"card-tools\">\n                <a href=\"#\" class=\"btn btn-tool\" title=\"Previous\"><i class=\"fas fa-chevron-left\"></i></a>\n                <a href=\"#\" class=\"btn btn-tool\" title=\"Next\"><i class=\"fas fa-chevron-right\"></i></a>\n              </div>\n            </div>\n            <!-- /.card-header -->\n            <div class=\"card-body p-0\">\n              <div class=\"mailbox-read-info\">\n                <h5>Message Subject Is Placed Here</h5>\n                <h6>From: support@adminlte.io\n                  <span class=\"mailbox-read-time float-right\">15 Feb. 2015 11:03 PM</span></h6>\n              </div>\n              <!-- /.mailbox-read-info -->\n              <div class=\"mailbox-controls with-border text-center\">\n                <div class=\"btn-group\">\n                  <button type=\"button\" class=\"btn btn-default btn-sm\" data-container=\"body\" title=\"Delete\">\n                    <i class=\"far fa-trash-alt\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\" data-container=\"body\" title=\"Reply\">\n                    <i class=\"fas fa-reply\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-default btn-sm\" data-container=\"body\" title=\"Forward\">\n                    <i class=\"fas fa-share\"></i>\n                  </button>\n                </div>\n                <!-- /.btn-group -->\n                <button type=\"button\" class=\"btn btn-default btn-sm\" title=\"Print\">\n                  <i class=\"fas fa-print\"></i>\n                </button>\n              </div>\n              <!-- /.mailbox-controls -->\n              <div class=\"mailbox-read-message\">\n                <p>Hello John,</p>\n\n                <p>Keffiyeh blog actually fashion axe vegan, irony biodiesel. Cold-pressed hoodie chillwave put a bird\n                  on it aesthetic, bitters brunch meggings vegan iPhone. Dreamcatcher vegan scenester mlkshk. Ethical\n                  master cleanse Bushwick, occupy Thundercats banjo cliche ennui farm-to-table mlkshk fanny pack\n                  gluten-free. Marfa butcher vegan quinoa, bicycle rights disrupt tofu scenester chillwave 3 wolf moon\n                  asymmetrical taxidermy pour-over. Quinoa tote bag fashion axe, Godard disrupt migas church-key tofu\n                  blog locavore. Thundercats cronut polaroid Neutra tousled, meh food truck selfies narwhal American\n                  Apparel.</p>\n\n                <p>Raw denim McSweeney's bicycle rights, iPhone trust fund quinoa Neutra VHS kale chips vegan PBR&amp;B\n                  literally Thundercats +1. Forage tilde four dollar toast, banjo health goth paleo butcher. Four dollar\n                  toast Brooklyn pour-over American Apparel sustainable, lumbersexual listicle gluten-free health goth\n                  umami hoodie. Synth Echo Park bicycle rights DIY farm-to-table, retro kogi sriracha dreamcatcher PBR&amp;B\n                  flannel hashtag irony Wes Anderson. Lumbersexual Williamsburg Helvetica next level. Cold-pressed\n                  slow-carb pop-up normcore Thundercats Portland, cardigan literally meditation lumbersexual crucifix.\n                  Wayfarers raw denim paleo Bushwick, keytar Helvetica scenester keffiyeh 8-bit irony mumblecore\n                  whatever viral Truffaut.</p>\n\n                <p>Post-ironic shabby chic VHS, Marfa keytar flannel lomo try-hard keffiyeh cray. Actually fap fanny\n                  pack yr artisan trust fund. High Life dreamcatcher church-key gentrify. Tumblr stumptown four dollar\n                  toast vinyl, cold-pressed try-hard blog authentic keffiyeh Helvetica lo-fi tilde Intelligentsia. Lomo\n                  locavore salvia bespoke, twee fixie paleo cliche brunch Schlitz blog McSweeney's messenger bag swag\n                  slow-carb. Odd Future photo booth pork belly, you probably haven't heard of them actually tofu ennui\n                  keffiyeh lo-fi Truffaut health goth. Narwhal sustainable retro disrupt.</p>\n\n                <p>Skateboard artisan letterpress before they sold out High Life messenger bag. Bitters chambray\n                  leggings listicle, drinking vinegar chillwave synth. Fanny pack hoodie American Apparel twee. American\n                  Apparel PBR listicle, salvia aesthetic occupy sustainable Neutra kogi. Organic synth Tumblr viral\n                  plaid, shabby chic single-origin coffee Etsy 3 wolf moon slow-carb Schlitz roof party tousled squid\n                  vinyl. Readymade next level literally trust fund. Distillery master cleanse migas, Vice sriracha\n                  flannel chambray chia cronut.</p>\n\n                <p>Thanks,<br>Jane</p>\n              </div>\n              <!-- /.mailbox-read-message -->\n            </div>\n            <!-- /.card-body -->\n            <div class=\"card-footer bg-white\">\n              <ul class=\"mailbox-attachments d-flex align-items-stretch clearfix\">\n                <li>\n                  <span class=\"mailbox-attachment-icon\"><i class=\"far fa-file-pdf\"></i></span>\n\n                  <div class=\"mailbox-attachment-info\">\n                    <a href=\"#\" class=\"mailbox-attachment-name\"><i class=\"fas fa-paperclip\"></i> Sep2014-report.pdf</a>\n                        <span class=\"mailbox-attachment-size clearfix mt-1\">\n                          <span>1,245 KB</span>\n                          <a href=\"#\" class=\"btn btn-default btn-sm float-right\"><i class=\"fas fa-cloud-download-alt\"></i></a>\n                        </span>\n                  </div>\n                </li>\n                <li>\n                  <span class=\"mailbox-attachment-icon\"><i class=\"far fa-file-word\"></i></span>\n\n                  <div class=\"mailbox-attachment-info\">\n                    <a href=\"#\" class=\"mailbox-attachment-name\"><i class=\"fas fa-paperclip\"></i> App Description.docx</a>\n                        <span class=\"mailbox-attachment-size clearfix mt-1\">\n                          <span>1,245 KB</span>\n                          <a href=\"#\" class=\"btn btn-default btn-sm float-right\"><i class=\"fas fa-cloud-download-alt\"></i></a>\n                        </span>\n                  </div>\n                </li>\n                <li>\n                  <span class=\"mailbox-attachment-icon has-img\"><img src=\"../../dist/img/photo1.png\" alt=\"Attachment\"></span>\n\n                  <div class=\"mailbox-attachment-info\">\n                    <a href=\"#\" class=\"mailbox-attachment-name\"><i class=\"fas fa-camera\"></i> photo1.png</a>\n                        <span class=\"mailbox-attachment-size clearfix mt-1\">\n                          <span>2.67 MB</span>\n                          <a href=\"#\" class=\"btn btn-default btn-sm float-right\"><i class=\"fas fa-cloud-download-alt\"></i></a>\n                        </span>\n                  </div>\n                </li>\n                <li>\n                  <span class=\"mailbox-attachment-icon has-img\"><img src=\"../../dist/img/photo2.png\" alt=\"Attachment\"></span>\n\n                  <div class=\"mailbox-attachment-info\">\n                    <a href=\"#\" class=\"mailbox-attachment-name\"><i class=\"fas fa-camera\"></i> photo2.png</a>\n                        <span class=\"mailbox-attachment-size clearfix mt-1\">\n                          <span>1.9 MB</span>\n                          <a href=\"#\" class=\"btn btn-default btn-sm float-right\"><i class=\"fas fa-cloud-download-alt\"></i></a>\n                        </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <!-- /.card-footer -->\n            <div class=\"card-footer\">\n              <div class=\"float-right\">\n                <button type=\"button\" class=\"btn btn-default\"><i class=\"fas fa-reply\"></i> Reply</button>\n                <button type=\"button\" class=\"btn btn-default\"><i class=\"fas fa-share\"></i> Forward</button>\n              </div>\n              <button type=\"button\" class=\"btn btn-default\"><i class=\"far fa-trash-alt\"></i> Delete</button>\n              <button type=\"button\" class=\"btn btn-default\"><i class=\"fas fa-print\"></i> Print</button>\n            </div>\n            <!-- /.card-footer -->\n          </div>\n          <!-- /.card -->\n        </div>\n        <!-- /.col -->\n      </div>\n      <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/search/enhanced-results.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Enhanced Search Results</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Select2 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/select2/css/select2.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <h2 class=\"text-center display-4\">Enhanced Search</h2>\n      </div>\n      <!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n        <div class=\"container-fluid\">\n            <form action=\"enhanced-results.html\">\n                <div class=\"row\">\n                    <div class=\"col-md-10 offset-md-1\">\n                        <div class=\"row\">\n                            <div class=\"col-6\">\n                                <div class=\"form-group\">\n                                    <label>Result Type:</label>\n                                    <select class=\"select2\" multiple=\"multiple\" data-placeholder=\"Any\" style=\"width: 100%;\">\n                                        <option>Text only</option>\n                                        <option>Images</option>\n                                        <option>Video</option>\n                                    </select>\n                                </div>\n                            </div>\n                            <div class=\"col-3\">\n                                <div class=\"form-group\">\n                                    <label>Sort Order:</label>\n                                    <select class=\"select2\" style=\"width: 100%;\">\n                                        <option selected>ASC</option>\n                                        <option>DESC</option>\n                                    </select>\n                                </div>\n                            </div>\n                            <div class=\"col-3\">\n                                <div class=\"form-group\">\n                                    <label>Order By:</label>\n                                    <select class=\"select2\" style=\"width: 100%;\">\n                                        <option selected>Title</option>\n                                        <option>Date</option>\n                                    </select>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"form-group\">\n                            <div class=\"input-group input-group-lg\">\n                                <input type=\"search\" class=\"form-control form-control-lg\" placeholder=\"Type your keywords here\" value=\"Lorem ipsum\">\n                                <div class=\"input-group-append\">\n                                    <button type=\"submit\" class=\"btn btn-lg btn-default\">\n                                        <i class=\"fa fa-search\"></i>\n                                    </button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </form>\n            <div class=\"row mt-3\">\n                <div class=\"col-md-10 offset-md-1\">\n                    <div class=\"list-group\">\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 04:04pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col-auto\">\n                                    <img class=\"img-fluid\" src=\"../../dist/img/photo1.png\" alt=\"Photo\" style=\"max-height: 160px;\">\n                                </div>\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 10:14pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col-auto\">\n                                    <iframe width=\"240\" height=\"160\" src=\"https://www.youtube.com/embed/WEkSYw3o5is?controls=0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" class=\"border-0\" allowfullscreen></iframe>\n                                </div>\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 11:54pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </section>\n  </div>\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- Select2 -->\n<script src=\"../../plugins/select2/js/select2.full.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<script>\n    $(function () {\n      $('.select2').select2()\n    });\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/search/enhanced.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Enhanced Search Form</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Select2 -->\n  <link rel=\"stylesheet\" href=\"../../plugins/select2/css/select2.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Main content -->\n    <section class=\"content\">\n        <div class=\"container-fluid\">\n            <h2 class=\"text-center display-4\">Enhanced Search</h2>\n            <form action=\"enhanced-results.html\">\n                <div class=\"row\">\n                    <div class=\"col-md-10 offset-md-1\">\n                        <div class=\"row\">\n                            <div class=\"col-6\">\n                                <div class=\"form-group\">\n                                    <label>Result Type:</label>\n                                    <select class=\"select2\" multiple=\"multiple\" data-placeholder=\"Any\" style=\"width: 100%;\">\n                                        <option>Text only</option>\n                                        <option>Images</option>\n                                        <option>Video</option>\n                                    </select>\n                                </div>\n                            </div>\n                            <div class=\"col-3\">\n                                <div class=\"form-group\">\n                                    <label>Sort Order:</label>\n                                    <select class=\"select2\" style=\"width: 100%;\">\n                                        <option selected>ASC</option>\n                                        <option>DESC</option>\n                                    </select>\n                                </div>\n                            </div>\n                            <div class=\"col-3\">\n                                <div class=\"form-group\">\n                                    <label>Order By:</label>\n                                    <select class=\"select2\" style=\"width: 100%;\">\n                                        <option selected>Title</option>\n                                        <option>Date</option>\n                                    </select>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"form-group\">\n                            <div class=\"input-group input-group-lg\">\n                                <input type=\"search\" class=\"form-control form-control-lg\" placeholder=\"Type your keywords here\" value=\"Lorem ipsum\">\n                                <div class=\"input-group-append\">\n                                    <button type=\"submit\" class=\"btn btn-lg btn-default\">\n                                        <i class=\"fa fa-search\"></i>\n                                    </button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </form>\n        </div>\n    </section>\n  </div>\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- Select2 -->\n<script src=\"../../plugins/select2/js/select2.full.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<script>\n    $(function () {\n      $('.select2').select2()\n    });\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/search/simple-results.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Simple Search Results</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <h2 class=\"text-center display-4\">Search</h2>\n      </div>\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n        <div class=\"container-fluid\">\n            <div class=\"row\">\n                <div class=\"col-md-8 offset-md-2\">\n                    <form action=\"simple-results.html\">\n                        <div class=\"input-group input-group-lg\">\n                            <input type=\"search\" class=\"form-control form-control-lg\" placeholder=\"Type your keywords here\" value=\"Lorem ipsum\">\n                            <div class=\"input-group-append\">\n                                <button type=\"submit\" class=\"btn btn-lg btn-default\">\n                                    <i class=\"fa fa-search\"></i>\n                                </button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n            <div class=\"row mt-3\">\n                <div class=\"col-md-10 offset-md-1\">\n                    <div class=\"list-group\">\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 04:04pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col-auto\">\n                                    <img class=\"img-fluid\" src=\"../../dist/img/photo1.png\" alt=\"Photo\" style=\"max-height: 160px;\">\n                                </div>\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 10:14pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"list-group-item\">\n                            <div class=\"row\">\n                                <div class=\"col-auto\">\n                                    <iframe width=\"240\" height=\"160\" src=\"https://www.youtube.com/embed/WEkSYw3o5is?controls=0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" class=\"border-0\" allowfullscreen></iframe>\n                                </div>\n                                <div class=\"col px-4\">\n                                    <div>\n                                        <div class=\"float-right\">2021-04-20 11:54pm</div>\n                                        <h3>Lorem ipsum dolor sit amet</h3>\n                                        <p class=\"mb-0\">consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </section>\n  </div>\n\n  <!-- Main footer -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/search/simple.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Simple Search Form</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n\n    <!-- Main content -->\n    <section class=\"content\">\n        <div class=\"container-fluid\">\n            <h2 class=\"text-center display-4\">Search</h2>\n            <div class=\"row\">\n                <div class=\"col-md-8 offset-md-2\">\n                    <form action=\"simple-results.html\">\n                        <div class=\"input-group\">\n                            <input type=\"search\" class=\"form-control form-control-lg\" placeholder=\"Type your keywords here\">\n                            <div class=\"input-group-append\">\n                                <button type=\"submit\" class=\"btn btn-lg btn-default\">\n                                    <i class=\"fa fa-search\"></i>\n                                </button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </section>\n  </div>\n\n  <!-- Main footer -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/tables/data.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | DataTables</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- DataTables -->\n  <link rel=\"stylesheet\" href=\"../../plugins/datatables-bs4/css/dataTables.bootstrap4.min.css\">\n  <link rel=\"stylesheet\" href=\"../../plugins/datatables-responsive/css/responsive.bootstrap4.min.css\">\n  <link rel=\"stylesheet\" href=\"../../plugins/datatables-buttons/css/buttons.bootstrap4.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>DataTables</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">DataTables</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">DataTable with minimal features & hover style</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <table id=\"example2\" class=\"table table-bordered table-hover\">\n                  <thead>\n                  <tr>\n                    <th>Rendering engine</th>\n                    <th>Browser</th>\n                    <th>Platform(s)</th>\n                    <th>Engine version</th>\n                    <th>CSS grade</th>\n                  </tr>\n                  </thead>\n                  <tbody>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 4.0\n                    </td>\n                    <td>Win 95+</td>\n                    <td> 4</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 5.0\n                    </td>\n                    <td>Win 95+</td>\n                    <td>5</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 5.5\n                    </td>\n                    <td>Win 95+</td>\n                    <td>5.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 6\n                    </td>\n                    <td>Win 98+</td>\n                    <td>6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet Explorer 7</td>\n                    <td>Win XP SP2+</td>\n                    <td>7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>AOL browser (AOL desktop)</td>\n                    <td>Win XP</td>\n                    <td>6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 1.0</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 1.5</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 2.0</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 3.0</td>\n                    <td>Win 2k+ / OSX.3+</td>\n                    <td>1.9</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Camino 1.0</td>\n                    <td>OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Camino 1.5</td>\n                    <td>OSX.3+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape 7.2</td>\n                    <td>Win 95+ / Mac OS 8.6-9.2</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape Browser 8</td>\n                    <td>Win 98SE+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape Navigator 9</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.0</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.1</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.2</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.2</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.3</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.4</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.4</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.5</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.6</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.7</td>\n                    <td>Win 98+ / OSX.1+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.8</td>\n                    <td>Win 98+ / OSX.1+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Seamonkey 1.1</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Epiphany 2.20</td>\n                    <td>Gnome</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 1.2</td>\n                    <td>OSX.3</td>\n                    <td>125.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 1.3</td>\n                    <td>OSX.3</td>\n                    <td>312.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 2.0</td>\n                    <td>OSX.4+</td>\n                    <td>419.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 3.0</td>\n                    <td>OSX.4+</td>\n                    <td>522.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>OmniWeb 5.5</td>\n                    <td>OSX.4+</td>\n                    <td>420</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>iPod Touch / iPhone</td>\n                    <td>iPod</td>\n                    <td>420.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>S60</td>\n                    <td>S60</td>\n                    <td>413</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 7.0</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 7.5</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 8.0</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 8.5</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.0</td>\n                    <td>Win 95+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.2</td>\n                    <td>Win 88+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.5</td>\n                    <td>Win 88+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera for Wii</td>\n                    <td>Wii</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Nokia N800</td>\n                    <td>N800</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Nintendo DS browser</td>\n                    <td>Nintendo DS</td>\n                    <td>8.5</td>\n                    <td>C/A<sup>1</sup></td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.1</td>\n                    <td>KDE 3.1</td>\n                    <td>3.1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.3</td>\n                    <td>KDE 3.3</td>\n                    <td>3.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.5</td>\n                    <td>KDE 3.5</td>\n                    <td>3.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 4.5</td>\n                    <td>Mac OS 8-9</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 5.1</td>\n                    <td>Mac OS 7.6-9</td>\n                    <td>1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 5.2</td>\n                    <td>Mac OS 8-X</td>\n                    <td>1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>NetFront 3.1</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>NetFront 3.4</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Dillo 0.8</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Links</td>\n                    <td>Text only</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Lynx</td>\n                    <td>Text only</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>IE Mobile</td>\n                    <td>Windows Mobile 6</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>PSP browser</td>\n                    <td>PSP</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Other browsers</td>\n                    <td>All others</td>\n                    <td>-</td>\n                    <td>-</td>\n                    <td>U</td>\n                  </tr>\n                  </tbody>\n                  <tfoot>\n                  <tr>\n                    <th>Rendering engine</th>\n                    <th>Browser</th>\n                    <th>Platform(s)</th>\n                    <th>Engine version</th>\n                    <th>CSS grade</th>\n                  </tr>\n                  </tfoot>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">DataTable with default features</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <table id=\"example1\" class=\"table table-bordered table-striped\">\n                  <thead>\n                  <tr>\n                    <th>Rendering engine</th>\n                    <th>Browser</th>\n                    <th>Platform(s)</th>\n                    <th>Engine version</th>\n                    <th>CSS grade</th>\n                  </tr>\n                  </thead>\n                  <tbody>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 4.0\n                    </td>\n                    <td>Win 95+</td>\n                    <td> 4</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 5.0\n                    </td>\n                    <td>Win 95+</td>\n                    <td>5</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 5.5\n                    </td>\n                    <td>Win 95+</td>\n                    <td>5.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet\n                      Explorer 6\n                    </td>\n                    <td>Win 98+</td>\n                    <td>6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>Internet Explorer 7</td>\n                    <td>Win XP SP2+</td>\n                    <td>7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Trident</td>\n                    <td>AOL browser (AOL desktop)</td>\n                    <td>Win XP</td>\n                    <td>6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 1.0</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 1.5</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 2.0</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Firefox 3.0</td>\n                    <td>Win 2k+ / OSX.3+</td>\n                    <td>1.9</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Camino 1.0</td>\n                    <td>OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Camino 1.5</td>\n                    <td>OSX.3+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape 7.2</td>\n                    <td>Win 95+ / Mac OS 8.6-9.2</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape Browser 8</td>\n                    <td>Win 98SE+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Netscape Navigator 9</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.0</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.1</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.2</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.2</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.3</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.4</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.4</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.5</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.6</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>1.6</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.7</td>\n                    <td>Win 98+ / OSX.1+</td>\n                    <td>1.7</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Mozilla 1.8</td>\n                    <td>Win 98+ / OSX.1+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Seamonkey 1.1</td>\n                    <td>Win 98+ / OSX.2+</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Gecko</td>\n                    <td>Epiphany 2.20</td>\n                    <td>Gnome</td>\n                    <td>1.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 1.2</td>\n                    <td>OSX.3</td>\n                    <td>125.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 1.3</td>\n                    <td>OSX.3</td>\n                    <td>312.8</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 2.0</td>\n                    <td>OSX.4+</td>\n                    <td>419.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>Safari 3.0</td>\n                    <td>OSX.4+</td>\n                    <td>522.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>OmniWeb 5.5</td>\n                    <td>OSX.4+</td>\n                    <td>420</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>iPod Touch / iPhone</td>\n                    <td>iPod</td>\n                    <td>420.1</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Webkit</td>\n                    <td>S60</td>\n                    <td>S60</td>\n                    <td>413</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 7.0</td>\n                    <td>Win 95+ / OSX.1+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 7.5</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 8.0</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 8.5</td>\n                    <td>Win 95+ / OSX.2+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.0</td>\n                    <td>Win 95+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.2</td>\n                    <td>Win 88+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera 9.5</td>\n                    <td>Win 88+ / OSX.3+</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Opera for Wii</td>\n                    <td>Wii</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Nokia N800</td>\n                    <td>N800</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Presto</td>\n                    <td>Nintendo DS browser</td>\n                    <td>Nintendo DS</td>\n                    <td>8.5</td>\n                    <td>C/A<sup>1</sup></td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.1</td>\n                    <td>KDE 3.1</td>\n                    <td>3.1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.3</td>\n                    <td>KDE 3.3</td>\n                    <td>3.3</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>KHTML</td>\n                    <td>Konqureror 3.5</td>\n                    <td>KDE 3.5</td>\n                    <td>3.5</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 4.5</td>\n                    <td>Mac OS 8-9</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 5.1</td>\n                    <td>Mac OS 7.6-9</td>\n                    <td>1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Tasman</td>\n                    <td>Internet Explorer 5.2</td>\n                    <td>Mac OS 8-X</td>\n                    <td>1</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>NetFront 3.1</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>NetFront 3.4</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>A</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Dillo 0.8</td>\n                    <td>Embedded devices</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Links</td>\n                    <td>Text only</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>Lynx</td>\n                    <td>Text only</td>\n                    <td>-</td>\n                    <td>X</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>IE Mobile</td>\n                    <td>Windows Mobile 6</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Misc</td>\n                    <td>PSP browser</td>\n                    <td>PSP</td>\n                    <td>-</td>\n                    <td>C</td>\n                  </tr>\n                  <tr>\n                    <td>Other browsers</td>\n                    <td>All others</td>\n                    <td>-</td>\n                    <td>-</td>\n                    <td>U</td>\n                  </tr>\n                  </tbody>\n                  <tfoot>\n                  <tr>\n                    <th>Rendering engine</th>\n                    <th>Browser</th>\n                    <th>Platform(s)</th>\n                    <th>Engine version</th>\n                    <th>CSS grade</th>\n                  </tr>\n                  </tfoot>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n      </div>\n      <!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- DataTables  & Plugins -->\n<script src=\"../../plugins/datatables/jquery.dataTables.min.js\"></script>\n<script src=\"../../plugins/datatables-bs4/js/dataTables.bootstrap4.min.js\"></script>\n<script src=\"../../plugins/datatables-responsive/js/dataTables.responsive.min.js\"></script>\n<script src=\"../../plugins/datatables-responsive/js/responsive.bootstrap4.min.js\"></script>\n<script src=\"../../plugins/datatables-buttons/js/dataTables.buttons.min.js\"></script>\n<script src=\"../../plugins/datatables-buttons/js/buttons.bootstrap4.min.js\"></script>\n<script src=\"../../plugins/jszip/jszip.min.js\"></script>\n<script src=\"../../plugins/pdfmake/pdfmake.min.js\"></script>\n<script src=\"../../plugins/pdfmake/vfs_fonts.js\"></script>\n<script src=\"../../plugins/datatables-buttons/js/buttons.html5.min.js\"></script>\n<script src=\"../../plugins/datatables-buttons/js/buttons.print.min.js\"></script>\n<script src=\"../../plugins/datatables-buttons/js/buttons.colVis.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    $(\"#example1\").DataTable({\n      \"responsive\": true, \"lengthChange\": false, \"autoWidth\": false,\n      \"buttons\": [\"copy\", \"csv\", \"excel\", \"pdf\", \"print\", \"colvis\"]\n    }).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');\n    $('#example2').DataTable({\n      \"paging\": true,\n      \"lengthChange\": false,\n      \"searching\": false,\n      \"ordering\": true,\n      \"info\": true,\n      \"autoWidth\": false,\n      \"responsive\": true,\n    });\n  });\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/tables/jsgrid.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | jsGrid</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- jsGrid -->\n  <link rel=\"stylesheet\" href=\"../../plugins/jsgrid/jsgrid.min.css\">\n  <link rel=\"stylesheet\" href=\"../../plugins/jsgrid/jsgrid-theme.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>jsGrid</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">jsGrid</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"card\">\n        <div class=\"card-header\">\n          <h3 class=\"card-title\">jsGrid</h3>\n        </div>\n        <!-- /.card-header -->\n        <div class=\"card-body\">\n          <div id=\"jsGrid1\"></div>\n        </div>\n        <!-- /.card-body -->\n      </div>\n      <!-- /.card -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- jsGrid -->\n<script src=\"../../plugins/jsgrid/demos/db.js\"></script>\n<script src=\"../../plugins/jsgrid/jsgrid.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n<!-- Page specific script -->\n<script>\n  $(function () {\n    $(\"#jsGrid1\").jsGrid({\n        height: \"100%\",\n        width: \"100%\",\n\n        sorting: true,\n        paging: true,\n\n        data: db.clients,\n\n        fields: [\n            { name: \"Name\", type: \"text\", width: 150 },\n            { name: \"Age\", type: \"number\", width: 50 },\n            { name: \"Address\", type: \"text\", width: 200 },\n            { name: \"Country\", type: \"select\", items: db.countries, valueField: \"Id\", textField: \"Name\" },\n            { name: \"Married\", type: \"checkbox\", title: \"Is Married\" }\n        ]\n    });\n  });\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/tables/simple.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Simple Tables</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../../index3.html\" class=\"brand-link\">\n      <img src=\"../../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../widgets.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../tables/simple.html\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"../calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"../kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"../examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Simple Tables</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Simple Tables</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Bordered Table</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <table class=\"table table-bordered\">\n                  <thead>\n                    <tr>\n                      <th style=\"width: 10px\">#</th>\n                      <th>Task</th>\n                      <th>Progress</th>\n                      <th style=\"width: 40px\">Label</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>1.</td>\n                      <td>Update software</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar progress-bar-danger\" style=\"width: 55%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-danger\">55%</span></td>\n                    </tr>\n                    <tr>\n                      <td>2.</td>\n                      <td>Clean database</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar bg-warning\" style=\"width: 70%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-warning\">70%</span></td>\n                    </tr>\n                    <tr>\n                      <td>3.</td>\n                      <td>Cron job running</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-primary\" style=\"width: 30%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-primary\">30%</span></td>\n                    </tr>\n                    <tr>\n                      <td>4.</td>\n                      <td>Fix and squish bugs</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-success\" style=\"width: 90%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-success\">90%</span></td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer clearfix\">\n                <ul class=\"pagination pagination-sm m-0 float-right\">\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">&laquo;</a></li>\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">1</a></li>\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">2</a></li>\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">3</a></li>\n                  <li class=\"page-item\"><a class=\"page-link\" href=\"#\">&raquo;</a></li>\n                </ul>\n              </div>\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Condensed Full Width Table</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <table class=\"table table-sm\">\n                  <thead>\n                    <tr>\n                      <th style=\"width: 10px\">#</th>\n                      <th>Task</th>\n                      <th>Progress</th>\n                      <th style=\"width: 40px\">Label</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>1.</td>\n                      <td>Update software</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar progress-bar-danger\" style=\"width: 55%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-danger\">55%</span></td>\n                    </tr>\n                    <tr>\n                      <td>2.</td>\n                      <td>Clean database</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar bg-warning\" style=\"width: 70%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-warning\">70%</span></td>\n                    </tr>\n                    <tr>\n                      <td>3.</td>\n                      <td>Cron job running</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-primary\" style=\"width: 30%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-primary\">30%</span></td>\n                    </tr>\n                    <tr>\n                      <td>4.</td>\n                      <td>Fix and squish bugs</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-success\" style=\"width: 90%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-success\">90%</span></td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Simple Full Width Table</h3>\n\n                <div class=\"card-tools\">\n                  <ul class=\"pagination pagination-sm float-right\">\n                    <li class=\"page-item\"><a class=\"page-link\" href=\"#\">&laquo;</a></li>\n                    <li class=\"page-item\"><a class=\"page-link\" href=\"#\">1</a></li>\n                    <li class=\"page-item\"><a class=\"page-link\" href=\"#\">2</a></li>\n                    <li class=\"page-item\"><a class=\"page-link\" href=\"#\">3</a></li>\n                    <li class=\"page-item\"><a class=\"page-link\" href=\"#\">&raquo;</a></li>\n                  </ul>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <table class=\"table\">\n                  <thead>\n                    <tr>\n                      <th style=\"width: 10px\">#</th>\n                      <th>Task</th>\n                      <th>Progress</th>\n                      <th style=\"width: 40px\">Label</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>1.</td>\n                      <td>Update software</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar progress-bar-danger\" style=\"width: 55%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-danger\">55%</span></td>\n                    </tr>\n                    <tr>\n                      <td>2.</td>\n                      <td>Clean database</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar bg-warning\" style=\"width: 70%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-warning\">70%</span></td>\n                    </tr>\n                    <tr>\n                      <td>3.</td>\n                      <td>Cron job running</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-primary\" style=\"width: 30%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-primary\">30%</span></td>\n                    </tr>\n                    <tr>\n                      <td>4.</td>\n                      <td>Fix and squish bugs</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-success\" style=\"width: 90%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-success\">90%</span></td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Striped Full Width Table</h3>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body p-0\">\n                <table class=\"table table-striped\">\n                  <thead>\n                    <tr>\n                      <th style=\"width: 10px\">#</th>\n                      <th>Task</th>\n                      <th>Progress</th>\n                      <th style=\"width: 40px\">Label</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>1.</td>\n                      <td>Update software</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar progress-bar-danger\" style=\"width: 55%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-danger\">55%</span></td>\n                    </tr>\n                    <tr>\n                      <td>2.</td>\n                      <td>Clean database</td>\n                      <td>\n                        <div class=\"progress progress-xs\">\n                          <div class=\"progress-bar bg-warning\" style=\"width: 70%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-warning\">70%</span></td>\n                    </tr>\n                    <tr>\n                      <td>3.</td>\n                      <td>Cron job running</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-primary\" style=\"width: 30%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-primary\">30%</span></td>\n                    </tr>\n                    <tr>\n                      <td>4.</td>\n                      <td>Fix and squish bugs</td>\n                      <td>\n                        <div class=\"progress progress-xs progress-striped active\">\n                          <div class=\"progress-bar bg-success\" style=\"width: 90%\"></div>\n                        </div>\n                      </td>\n                      <td><span class=\"badge bg-success\">90%</span></td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Responsive Hover Table</h3>\n\n                <div class=\"card-tools\">\n                  <div class=\"input-group input-group-sm\" style=\"width: 150px;\">\n                    <input type=\"text\" name=\"table_search\" class=\"form-control float-right\" placeholder=\"Search\">\n\n                    <div class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-default\">\n                        <i class=\"fas fa-search\"></i>\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body table-responsive p-0\">\n                <table class=\"table table-hover text-nowrap\">\n                  <thead>\n                    <tr>\n                      <th>ID</th>\n                      <th>User</th>\n                      <th>Date</th>\n                      <th>Status</th>\n                      <th>Reason</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>183</td>\n                      <td>John Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-success\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>219</td>\n                      <td>Alexander Pierce</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-warning\">Pending</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>657</td>\n                      <td>Bob Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-primary\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>175</td>\n                      <td>Mike Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-danger\">Denied</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Fixed Header Table</h3>\n\n                <div class=\"card-tools\">\n                  <div class=\"input-group input-group-sm\" style=\"width: 150px;\">\n                    <input type=\"text\" name=\"table_search\" class=\"form-control float-right\" placeholder=\"Search\">\n\n                    <div class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-default\">\n                        <i class=\"fas fa-search\"></i>\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body table-responsive p-0\" style=\"height: 300px;\">\n                <table class=\"table table-head-fixed text-nowrap\">\n                  <thead>\n                    <tr>\n                      <th>ID</th>\n                      <th>User</th>\n                      <th>Date</th>\n                      <th>Status</th>\n                      <th>Reason</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr>\n                      <td>183</td>\n                      <td>John Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-success\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>219</td>\n                      <td>Alexander Pierce</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-warning\">Pending</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>657</td>\n                      <td>Bob Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-primary\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>175</td>\n                      <td>Mike Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-danger\">Denied</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>134</td>\n                      <td>Jim Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-success\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>494</td>\n                      <td>Victoria Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-warning\">Pending</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>832</td>\n                      <td>Michael Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-primary\">Approved</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr>\n                      <td>982</td>\n                      <td>Rocky Doe</td>\n                      <td>11-7-2014</td>\n                      <td><span class=\"tag tag-danger\">Denied</span></td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Expandable Table</h3>\n              </div>\n              <!-- ./card-header -->\n              <div class=\"card-body\">\n                <table class=\"table table-bordered table-hover\">\n                  <thead>\n                    <tr>\n                      <th>#</th>\n                      <th>User</th>\n                      <th>Date</th>\n                      <th>Status</th>\n                      <th>Reason</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>183</td>\n                      <td>John Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Approved</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n                      <td>219</td>\n                      <td>Alexander Pierce</td>\n                      <td>11-7-2014</td>\n                      <td>Pending</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n                      <td>657</td>\n                      <td>Alexander Pierce</td>\n                      <td>11-7-2014</td>\n                      <td>Approved</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>175</td>\n                      <td>Mike Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Denied</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>134</td>\n                      <td>Jim Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Approved</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>494</td>\n                      <td>Victoria Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Pending</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>832</td>\n                      <td>Michael Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Approved</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                      <td>982</td>\n                      <td>Rocky Doe</td>\n                      <td>11-7-2014</td>\n                      <td>Denied</td>\n                      <td>Bacon ipsum dolor sit amet salami venison chicken flank fatback doner.</td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td colspan=\"5\">\n                        <p>\n                          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n                        </p>\n                      </td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Expandable Table Tree</h3>\n              </div>\n              <!-- ./card-header -->\n              <div class=\"card-body p-0\">\n                <table class=\"table table-hover\">\n                  <tbody>\n                    <tr>\n                      <td class=\"border-0\">183</td>\n                    </tr>\n                    <tr data-widget=\"expandable-table\" aria-expanded=\"true\">\n                      <td>\n                        <i class=\"expandable-table-caret fas fa-caret-right fa-fw\"></i>\n                        219\n                      </td>\n                    </tr>\n                    <tr class=\"expandable-body\">\n                      <td>\n                        <div class=\"p-0\">\n                          <table class=\"table table-hover\">\n                            <tbody>\n                              <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                                <td>\n                                  <i class=\"expandable-table-caret fas fa-caret-right fa-fw\"></i>\n                                  219-1\n                                </td>\n                              </tr>\n                              <tr class=\"expandable-body\">\n                                <td>\n                                  <div class=\"p-0\">\n                                    <table class=\"table table-hover\">\n                                      <tbody>\n                                        <tr>\n                                          <td>219-1-1</td>\n                                        </tr>\n                                        <tr>\n                                          <td>219-1-2</td>\n                                        </tr>\n                                        <tr>\n                                          <td>219-1-3</td>\n                                        </tr>\n                                      </tbody>\n                                    </table>\n                                  </div>\n                                </td>\n                              </tr>\n                              <tr data-widget=\"expandable-table\" aria-expanded=\"false\">\n                                <td>\n                                  <button type=\"button\" class=\"btn btn-primary p-0\">\n                                    <i class=\"expandable-table-caret fas fa-caret-right fa-fw\"></i>\n                                  </button>\n                                  219-2\n                                </td>\n                              </tr>\n                              <tr class=\"expandable-body\">\n                                <td>\n                                  <div class=\"p-0\">\n                                    <table class=\"table table-hover\">\n                                      <tbody>\n                                        <tr>\n                                          <td>219-2-1</td>\n                                        </tr>\n                                        <tr>\n                                          <td>219-2-2</td>\n                                        </tr>\n                                        <tr>\n                                          <td>219-2-3</td>\n                                        </tr>\n                                      </tbody>\n                                    </table>\n                                  </div>\n                                </td>\n                              </tr>\n                              <tr>\n                                <td>219-3</td>\n                              </tr>\n                            </tbody>\n                          </table>\n                        </div>\n                      </td>\n                    </tr>\n                    <tr>\n                      <td>657</td>\n                    </tr>\n                    <tr>\n                      <td>175</td>\n                    </tr>\n                    <tr>\n                      <td>134</td>\n                    </tr>\n                    <tr>\n                      <td>494</td>\n                    </tr>\n                    <tr>\n                      <td>832</td>\n                    </tr>\n                    <tr>\n                      <td>982</td>\n                    </tr>\n                  </tbody>\n                </table>\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/pages/widgets.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Widgets</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome -->\n  <link rel=\"stylesheet\" href=\"../plugins/fontawesome-free/css/all.min.css\">\n  <!-- Ionicons -->\n  <link rel=\"stylesheet\" href=\"https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"../dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"../index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-item dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"../index3.html\" class=\"brand-link\">\n      <img src=\"../dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"../dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Dashboard\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"../index.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v1</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index2.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../index3.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Dashboard v3</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"widgets.html\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Widgets\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-copy\"></i>\n              <p>\n                Layout Options\n                <i class=\"fas fa-angle-left right\"></i>\n                <span class=\"badge badge-info right\">6</span>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/top-nav-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Top Navigation + Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/boxed.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Boxed</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-sidebar-custom.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Sidebar <small>+ Custom Area</small></p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-topnav.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Navbar</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/fixed-footer.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Fixed Footer</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"layout/collapsed-sidebar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Collapsed Sidebar</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-chart-pie\"></i>\n              <p>\n                Charts\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"charts/chartjs.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>ChartJS</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/flot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Flot</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/inline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"charts/uplot.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>uPlot</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-tree\"></i>\n              <p>\n                UI Elements\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"UI/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/icons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Icons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/buttons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Buttons</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/sliders.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Sliders</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/modals.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Modals & Alerts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/navbar.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Navbar & Tabs</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/timeline.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Timeline</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"UI/ribbons.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Ribbons</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-edit\"></i>\n              <p>\n                Forms\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"forms/general.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>General Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/advanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Advanced Elements</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/editors.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Editors</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"forms/validation.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Validation</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-table\"></i>\n              <p>\n                Tables\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"tables/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Tables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/data.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>DataTables</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"tables/jsgrid.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>jsGrid</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">EXAMPLES</li>\n          <li class=\"nav-item\">\n            <a href=\"calendar.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-calendar-alt\"></i>\n              <p>\n                Calendar\n                <span class=\"badge badge-info right\">2</span>\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"gallery.html\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-image\"></i>\n              <p>\n                Gallery\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"kanban.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-columns\"></i>\n              <p>\n                Kanban Board\n              </p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-envelope\"></i>\n              <p>\n                Mailbox\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"mailbox/mailbox.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inbox</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/compose.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Compose</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"mailbox/read-mail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Read</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-book\"></i>\n              <p>\n                Pages\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"examples/invoice.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Invoice</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/profile.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Profile</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/e-commerce.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>E-commerce</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/projects.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Projects</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-add.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Add</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-edit.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Edit</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/project-detail.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Project Detail</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contacts.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contacts</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/faq.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>FAQ</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/contact-us.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Contact us</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-plus-square\"></i>\n              <p>\n                Extras\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v1\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v1</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v1</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Login & Register v2\n                    <i class=\"fas fa-angle-left right\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"examples/login-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Login v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/register-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Register v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/forgot-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Forgot Password v2</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"examples/recover-password-v2.html\" class=\"nav-link\">\n                      <i class=\"far fa-circle nav-icon\"></i>\n                      <p>Recover Password v2</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/lockscreen.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Lockscreen</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/legacy-user-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Legacy User Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/language-menu.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Language Menu</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/404.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 404</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/500.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Error 500</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/pace.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Pace</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"examples/blank.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Blank Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"../starter.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Starter Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-search\"></i>\n              <p>\n                Search\n                <i class=\"fas fa-angle-left right\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"search/simple.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Simple Search</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"search/enhanced.html\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Enhanced</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-header\">MISCELLANEOUS</li>\n          <li class=\"nav-item\">\n            <a href=\"../iframe.html\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-ellipsis-h\"></i>\n              <p>Tabbed IFrame Plugin</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://adminlte.io/docs/3.1/\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-file\"></i>\n              <p>Documentation</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">MULTI LEVEL EXAMPLE</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-circle\"></i>\n              <p>\n                Level 1\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>\n                    Level 2\n                    <i class=\"right fas fa-angle-left\"></i>\n                  </p>\n                </a>\n                <ul class=\"nav nav-treeview\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      <i class=\"far fa-dot-circle nav-icon\"></i>\n                      <p>Level 3</p>\n                    </a>\n                  </li>\n                </ul>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Level 2</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"fas fa-circle nav-icon\"></i>\n              <p>Level 1</p>\n            </a>\n          </li>\n          <li class=\"nav-header\">LABELS</li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-danger\"></i>\n              <p class=\"text\">Important</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-warning\"></i>\n              <p>Warning</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon far fa-circle text-info\"></i>\n              <p>Informational</p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <section class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1>Widgets</h1>\n          </div>\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Widgets</li>\n            </ol>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n\n    <!-- Main content -->\n    <section class=\"content\">\n      <div class=\"container-fluid\">\n        <h5 class=\"mb-2\">Info Box</h5>\n        <div class=\"row\">\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box\">\n              <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Messages</span>\n                <span class=\"info-box-number\">1,410</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box\">\n              <span class=\"info-box-icon bg-success\"><i class=\"far fa-flag\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Bookmarks</span>\n                <span class=\"info-box-number\">410</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box\">\n              <span class=\"info-box-icon bg-warning\"><i class=\"far fa-copy\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Uploads</span>\n                <span class=\"info-box-number\">13,648</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box\">\n              <span class=\"info-box-icon bg-danger\"><i class=\"far fa-star\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Likes</span>\n                <span class=\"info-box-number\">93,139</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mb-2\">Info Box With Custom Shadows <small><i>Using Bootstrap's Shadow Utility</i></small></h5>\n        <div class=\"row\">\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box shadow-none\">\n              <span class=\"info-box-icon bg-info\"><i class=\"far fa-envelope\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Shadows</span>\n                <span class=\"info-box-number\">None</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box shadow-sm\">\n              <span class=\"info-box-icon bg-success\"><i class=\"far fa-flag\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Shadows</span>\n                <span class=\"info-box-number\">Small</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box shadow\">\n              <span class=\"info-box-icon bg-warning\"><i class=\"far fa-copy\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Shadows</span>\n                <span class=\"info-box-number\">Regular</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box shadow-lg\">\n              <span class=\"info-box-icon bg-danger\"><i class=\"far fa-star\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Shadows</span>\n                <span class=\"info-box-number\">Large</span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mt-4 mb-2\">Info Box With <code>bg-*</code></h5>\n        <div class=\"row\">\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-info\">\n              <span class=\"info-box-icon\"><i class=\"far fa-bookmark\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Bookmarks</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-success\">\n              <span class=\"info-box-icon\"><i class=\"far fa-thumbs-up\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Likes</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-warning\">\n              <span class=\"info-box-icon\"><i class=\"far fa-calendar-alt\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Events</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-danger\">\n              <span class=\"info-box-icon\"><i class=\"fas fa-comments\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Comments</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mt-4 mb-2\">Info Box With <code>bg-gradient-*</code></h5>\n        <div class=\"row\">\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-gradient-info\">\n              <span class=\"info-box-icon\"><i class=\"far fa-bookmark\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Bookmarks</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-gradient-success\">\n              <span class=\"info-box-icon\"><i class=\"far fa-thumbs-up\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Likes</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-gradient-warning\">\n              <span class=\"info-box-icon\"><i class=\"far fa-calendar-alt\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Events</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3 col-sm-6 col-12\">\n            <div class=\"info-box bg-gradient-danger\">\n              <span class=\"info-box-icon\"><i class=\"fas fa-comments\"></i></span>\n\n              <div class=\"info-box-content\">\n                <span class=\"info-box-text\">Comments</span>\n                <span class=\"info-box-number\">41,410</span>\n\n                <div class=\"progress\">\n                  <div class=\"progress-bar\" style=\"width: 70%\"></div>\n                </div>\n                <span class=\"progress-description\">\n                  70% Increase in 30 Days\n                </span>\n              </div>\n              <!-- /.info-box-content -->\n            </div>\n            <!-- /.info-box -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n\n        <!-- Small Box (Stat card) -->\n        <h5 class=\"mb-2 mt-4\">Small Box</h5>\n        <div class=\"row\">\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-info\">\n              <div class=\"inner\">\n                <h3>150</h3>\n\n                <p>New Orders</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"fas fa-shopping-cart\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-success\">\n              <div class=\"inner\">\n                <h3>53<sup style=\"font-size: 20px\">%</sup></h3>\n\n                <p>Bounce Rate</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-stats-bars\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-warning\">\n              <div class=\"inner\">\n                <h3>44</h3>\n\n                <p>User Registrations</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"fas fa-user-plus\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-danger\">\n              <div class=\"inner\">\n                <h3>65</h3>\n\n                <p>Unique Visitors</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"fas fa-chart-pie\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- Small Box (Stat card) -->\n        <div class=\"row\">\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-info\">\n              <!-- Loading (remove the following to stop the loading)-->\n              <div class=\"overlay\">\n                <i class=\"fas fa-3x fa-sync-alt\"></i>\n              </div>\n              <!-- end loading -->\n              <div class=\"inner\">\n                <h3>150</h3>\n\n                <p>New Orders</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"fas fa-shopping-cart\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n          <div class=\"col-lg-3 col-6\">\n            <!-- small card -->\n            <div class=\"small-box bg-success\">\n              <!-- Loading (remove the following to stop the loading)-->\n              <div class=\"overlay dark\">\n                <i class=\"fas fa-3x fa-sync-alt\"></i>\n              </div>\n              <!-- end loading -->\n              <div class=\"inner\">\n                <h3>53<sup style=\"font-size: 20px\">%</sup></h3>\n\n                <p>Bounce Rate</p>\n              </div>\n              <div class=\"icon\">\n                <i class=\"ion ion-stats-bars\"></i>\n              </div>\n              <a href=\"#\" class=\"small-box-footer\">\n                More info <i class=\"fas fa-arrow-circle-right\"></i>\n              </a>\n            </div>\n          </div>\n          <!-- ./col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h4 class=\"mb-2 mt-4\">Cards</h4>\n        <h5 class=\"mb-2\">Abilities</h5>\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card card-primary collapsed-card\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Expandable</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\"><i class=\"fas fa-plus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Collapsable</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\"><i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Removable</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Maximizable</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\"><i class=\"fas fa-expand\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Card Refresh</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"card-refresh\" data-source=\"widgets.html\" data-source-selector=\"#card-refresh-content\">\n                    <i class=\"fas fa-sync-alt\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n            <div class=\"d-none\" id=\"card-refresh-content\">\n                The body of the card after card refresh\n            </div>\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">All together</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"card-refresh\" data-source=\"widgets.html\" data-source-selector=\"#card-refresh-content\" data-load-on-init=\"false\">\n                    <i class=\"fas fa-sync-alt\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\">\n                    <i class=\"fas fa-expand\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Loading state</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n              <!-- Loading (remove the following to stop the loading)-->\n              <div class=\"overlay\">\n                <i class=\"fas fa-2x fa-sync-alt\"></i>\n              </div>\n              <!-- end loading -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Loading state (dark)</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n              <!-- Loading (remove the following to stop the loading)-->\n              <div class=\"overlay dark\">\n                <i class=\"fas fa-2x fa-sync-alt\"></i>\n              </div>\n              <!-- end loading -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mb-2\">Custom Shadows Variations <small><i>Using Bootstrap's Shadow Utility</i></small></h5>\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card card-primary shadow-none\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - None</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-success shadow-sm\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Small</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-warning shadow\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Regular</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-danger shadow-lg\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Large</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"maximize\"><i class=\"fas fa-expand\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n\n        <h5 class=\"mb-2\">Colors Variations</h5>\n\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Primary</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Success</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Warning</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Danger</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card card-outline card-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Primary Outline</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-outline card-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Success Outline</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-outline card-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Warning Outline</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card card-outline card-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Danger Outline</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card bg-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Primary</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Success</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Warning</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Danger</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"card bg-gradient-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Primary Gradient</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-gradient-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Success Gradient</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\"><i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-gradient-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Warning Gradient</h3>\n\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-3\">\n            <div class=\"card bg-gradient-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Danger Gradient</h3>\n              </div>\n              <div class=\"card-body\">\n                The body of the card\n              </div>\n              <!-- /.card-body -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n\n        <!-- Direct Chat -->\n        <h4 class=\"mt-4 mb-2\">Direct Chat</h4>\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT PRIMARY -->\n            <div class=\"card card-primary card-outline direct-chat direct-chat-primary\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Direct Chat</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-primary\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                      <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-primary\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT SUCCESS -->\n            <div class=\"card card-success card-outline direct-chat direct-chat-success\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Direct Chat</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-success\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-success\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT WARNING -->\n            <div class=\"card card-warning direct-chat direct-chat-warning\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Direct Chat</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-danger\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-warning\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT DANGER -->\n            <div class=\"card card-danger direct-chat direct-chat-danger\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Direct Chat</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-danger\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mb-2\">Custom Shadows Variations <small><i>Using Bootstrap's Shadow Utility</i></small></h5>\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT PRIMARY -->\n            <div class=\"card card-primary card-outline direct-chat direct-chat-primary shadow-none\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - None</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-primary\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-primary\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT SUCCESS -->\n            <div class=\"card card-success card-outline direct-chat direct-chat-success shadow-sm\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Small</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-success\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-success\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT WARNING -->\n            <div class=\"card card-warning direct-chat direct-chat-warning shadow\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Regular</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge bg-danger\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-warning\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n\n          <div class=\"col-md-3\">\n            <!-- DIRECT CHAT DANGER -->\n            <div class=\"card card-danger direct-chat direct-chat-danger shadow-lg\">\n              <div class=\"card-header\">\n                <h3 class=\"card-title\">Shadow - Large</h3>\n\n                <div class=\"card-tools\">\n                  <span title=\"3 New Messages\" class=\"badge\">3</span>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Contacts\" data-widget=\"chat-pane-toggle\">\n                    <i class=\"fas fa-comments\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- Conversations are loaded here -->\n                <div class=\"direct-chat-messages\">\n                  <!-- Message. Default to the left -->\n                  <div class=\"direct-chat-msg\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-left\">Alexander Pierce</span>\n                      <span class=\"direct-chat-timestamp float-right\">23 Jan 2:00 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      Is this template really for free? That's unbelievable!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n\n                  <!-- Message to the right -->\n                  <div class=\"direct-chat-msg right\">\n                    <div class=\"direct-chat-infos clearfix\">\n                      <span class=\"direct-chat-name float-right\">Sarah Bullock</span>\n                      <span class=\"direct-chat-timestamp float-left\">23 Jan 2:05 pm</span>\n                    </div>\n                    <!-- /.direct-chat-infos -->\n                    <img class=\"direct-chat-img\" src=\"../dist/img/user3-128x128.jpg\" alt=\"Message User Image\">\n                    <!-- /.direct-chat-img -->\n                    <div class=\"direct-chat-text\">\n                      You better believe it!\n                    </div>\n                    <!-- /.direct-chat-text -->\n                  </div>\n                  <!-- /.direct-chat-msg -->\n                </div>\n                <!--/.direct-chat-messages-->\n\n                <!-- Contacts are loaded here -->\n                <div class=\"direct-chat-contacts\">\n                  <ul class=\"contacts-list\">\n                    <li>\n                      <a href=\"#\">\n                        <img class=\"contacts-list-img\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n\n                        <div class=\"contacts-list-info\">\n                          <span class=\"contacts-list-name\">\n                            Count Dracula\n                            <small class=\"contacts-list-date float-right\">2/28/2015</small>\n                          </span>\n                          <span class=\"contacts-list-msg\">How have you been? I was...</span>\n                        </div>\n                        <!-- /.contacts-list-info -->\n                      </a>\n                    </li>\n                    <!-- End Contact Item -->\n                  </ul>\n                  <!-- /.contatcts-list -->\n                </div>\n                <!-- /.direct-chat-pane -->\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <div class=\"input-group\">\n                    <input type=\"text\" name=\"message\" placeholder=\"Type Message ...\" class=\"form-control\">\n                    <span class=\"input-group-append\">\n                      <button type=\"submit\" class=\"btn btn-danger\">Send</button>\n                    </span>\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer-->\n            </div>\n            <!--/.direct-chat -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <h3 class=\"mt-4 mb-4\">Social Widgets</h3>\n\n        <div class=\"row\">\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 2 -->\n            <div class=\"card card-widget widget-user-2\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header bg-warning\">\n                <div class=\"widget-user-image\">\n                  <img class=\"img-circle elevation-2\" src=\"../dist/img/user7-128x128.jpg\" alt=\"User Avatar\">\n                </div>\n                <!-- /.widget-user-image -->\n                <h3 class=\"widget-user-username\">Nadia Carmichael</h3>\n                <h5 class=\"widget-user-desc\">Lead Developer</h5>\n              </div>\n              <div class=\"card-footer p-0\">\n                <ul class=\"nav flex-column\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Projects <span class=\"float-right badge bg-primary\">31</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Tasks <span class=\"float-right badge bg-info\">5</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Completed Projects <span class=\"float-right badge bg-success\">12</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Followers <span class=\"float-right badge bg-danger\">842</span>\n                    </a>\n                  </li>\n                </ul>\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 1 -->\n            <div class=\"card card-widget widget-user\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header bg-info\">\n                <h3 class=\"widget-user-username\">Alexander Pierce</h3>\n                <h5 class=\"widget-user-desc\">Founder & CEO</h5>\n              </div>\n              <div class=\"widget-user-image\">\n                <img class=\"img-circle elevation-2\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n              </div>\n              <div class=\"card-footer\">\n                <div class=\"row\">\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">3,200</h5>\n                      <span class=\"description-text\">SALES</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">13,000</h5>\n                      <span class=\"description-text\">FOLLOWERS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">35</h5>\n                      <span class=\"description-text\">PRODUCTS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 1 -->\n            <div class=\"card card-widget widget-user\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header text-white\"\n                   style=\"background: url('../dist/img/photo1.png') center center;\">\n                <h3 class=\"widget-user-username text-right\">Elizabeth Pierce</h3>\n                <h5 class=\"widget-user-desc text-right\">Web Designer</h5>\n              </div>\n              <div class=\"widget-user-image\">\n                <img class=\"img-circle\" src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\">\n              </div>\n              <div class=\"card-footer\">\n                <div class=\"row\">\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">3,200</h5>\n                      <span class=\"description-text\">SALES</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">13,000</h5>\n                      <span class=\"description-text\">FOLLOWERS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">35</h5>\n                      <span class=\"description-text\">PRODUCTS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <div class=\"row\">\n          <div class=\"col-md-6\">\n            <!-- Box Comment -->\n            <div class=\"card card-widget\">\n              <div class=\"card-header\">\n                <div class=\"user-block\">\n                  <img class=\"img-circle\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Image\">\n                  <span class=\"username\"><a href=\"#\">Jonathan Burke Jr.</a></span>\n                  <span class=\"description\">Shared publicly - 7:30 PM Today</span>\n                </div>\n                <!-- /.user-block -->\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Mark as read\">\n                    <i class=\"far fa-circle\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <img class=\"img-fluid pad\" src=\"../dist/img/photo2.png\" alt=\"Photo\">\n\n                <p>I took this photo this morning. What do you guys think?</p>\n                <button type=\"button\" class=\"btn btn-default btn-sm\"><i class=\"fas fa-share\"></i> Share</button>\n                <button type=\"button\" class=\"btn btn-default btn-sm\"><i class=\"far fa-thumbs-up\"></i> Like</button>\n                <span class=\"float-right text-muted\">127 likes - 3 comments</span>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer card-comments\">\n                <div class=\"card-comment\">\n                  <!-- User image -->\n                  <img class=\"img-circle img-sm\" src=\"../dist/img/user3-128x128.jpg\" alt=\"User Image\">\n\n                  <div class=\"comment-text\">\n                    <span class=\"username\">\n                      Maria Gonzales\n                      <span class=\"text-muted float-right\">8:03 PM Today</span>\n                    </span><!-- /.username -->\n                    It is a long established fact that a reader will be distracted\n                    by the readable content of a page when looking at its layout.\n                  </div>\n                  <!-- /.comment-text -->\n                </div>\n                <!-- /.card-comment -->\n                <div class=\"card-comment\">\n                  <!-- User image -->\n                  <img class=\"img-circle img-sm\" src=\"../dist/img/user4-128x128.jpg\" alt=\"User Image\">\n\n                  <div class=\"comment-text\">\n                    <span class=\"username\">\n                      Luna Stark\n                      <span class=\"text-muted float-right\">8:03 PM Today</span>\n                    </span><!-- /.username -->\n                    It is a long established fact that a reader will be distracted\n                    by the readable content of a page when looking at its layout.\n                  </div>\n                  <!-- /.comment-text -->\n                </div>\n                <!-- /.card-comment -->\n              </div>\n              <!-- /.card-footer -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <img class=\"img-fluid img-circle img-sm\" src=\"../dist/img/user4-128x128.jpg\" alt=\"Alt Text\">\n                  <!-- .img-push is used to add margin to elements next to floating images -->\n                  <div class=\"img-push\">\n                    <input type=\"text\" class=\"form-control form-control-sm\" placeholder=\"Press enter to post comment\">\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-6\">\n            <!-- Box Comment -->\n            <div class=\"card card-widget\">\n              <div class=\"card-header\">\n                <div class=\"user-block\">\n                  <img class=\"img-circle\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Image\">\n                  <span class=\"username\"><a href=\"#\">Jonathan Burke Jr.</a></span>\n                  <span class=\"description\">Shared publicly - 7:30 PM Today</span>\n                </div>\n                <!-- /.user-block -->\n                <div class=\"card-tools\">\n                  <button type=\"button\" class=\"btn btn-tool\" title=\"Mark as read\">\n                    <i class=\"far fa-circle\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"collapse\">\n                    <i class=\"fas fa-minus\"></i>\n                  </button>\n                  <button type=\"button\" class=\"btn btn-tool\" data-card-widget=\"remove\">\n                    <i class=\"fas fa-times\"></i>\n                  </button>\n                </div>\n                <!-- /.card-tools -->\n              </div>\n              <!-- /.card-header -->\n              <div class=\"card-body\">\n                <!-- post text -->\n                <p>Far far away, behind the word mountains, far from the\n                  countries Vokalia and Consonantia, there live the blind\n                  texts. Separated they live in Bookmarksgrove right at</p>\n\n                <p>the coast of the Semantics, a large language ocean.\n                  A small river named Duden flows by their place and supplies\n                  it with the necessary regelialia. It is a paradisematic\n                  country, in which roasted parts of sentences fly into\n                  your mouth.</p>\n\n                <!-- Attachment -->\n                <div class=\"attachment-block clearfix\">\n                  <img class=\"attachment-img\" src=\"../dist/img/photo1.png\" alt=\"Attachment Image\">\n\n                  <div class=\"attachment-pushed\">\n                    <h4 class=\"attachment-heading\"><a href=\"https://www.lipsum.com/\">Lorem ipsum text generator</a></h4>\n\n                    <div class=\"attachment-text\">\n                      Description about the attachment can be placed here.\n                      Lorem Ipsum is simply dummy text of the printing and typesetting industry... <a href=\"#\">more</a>\n                    </div>\n                    <!-- /.attachment-text -->\n                  </div>\n                  <!-- /.attachment-pushed -->\n                </div>\n                <!-- /.attachment-block -->\n\n                <!-- Social sharing buttons -->\n                <button type=\"button\" class=\"btn btn-default btn-sm\"><i class=\"fas fa-share\"></i> Share</button>\n                <button type=\"button\" class=\"btn btn-default btn-sm\"><i class=\"far fa-thumbs-up\"></i> Like</button>\n                <span class=\"float-right text-muted\">45 likes - 2 comments</span>\n              </div>\n              <!-- /.card-body -->\n              <div class=\"card-footer card-comments\">\n                <div class=\"card-comment\">\n                  <!-- User image -->\n                  <img class=\"img-circle img-sm\" src=\"../dist/img/user3-128x128.jpg\" alt=\"User Image\">\n\n                  <div class=\"comment-text\">\n                    <span class=\"username\">\n                      Maria Gonzales\n                      <span class=\"text-muted float-right\">8:03 PM Today</span>\n                    </span><!-- /.username -->\n                    It is a long established fact that a reader will be distracted\n                    by the readable content of a page when looking at its layout.\n                  </div>\n                  <!-- /.comment-text -->\n                </div>\n                <!-- /.card-comment -->\n                <div class=\"card-comment\">\n                  <!-- User image -->\n                  <img class=\"img-circle img-sm\" src=\"../dist/img/user5-128x128.jpg\" alt=\"User Image\">\n\n                  <div class=\"comment-text\">\n                    <span class=\"username\">\n                      Nora Havisham\n                      <span class=\"text-muted float-right\">8:03 PM Today</span>\n                    </span><!-- /.username -->\n                    The point of using Lorem Ipsum is that it hrs a morer-less\n                    normal distribution of letters, as opposed to using\n                    'Content here, content here', making it look like readable English.\n                  </div>\n                  <!-- /.comment-text -->\n                </div>\n                <!-- /.card-comment -->\n              </div>\n              <!-- /.card-footer -->\n              <div class=\"card-footer\">\n                <form action=\"#\" method=\"post\">\n                  <img class=\"img-fluid img-circle img-sm\" src=\"../dist/img/user4-128x128.jpg\" alt=\"Alt Text\">\n                  <!-- .img-push is used to add margin to elements next to floating images -->\n                  <div class=\"img-push\">\n                    <input type=\"text\" class=\"form-control form-control-sm\" placeholder=\"Press enter to post comment\">\n                  </div>\n                </form>\n              </div>\n              <!-- /.card-footer -->\n            </div>\n            <!-- /.card -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <!-- =========================================================== -->\n        <h5 class=\"mb-2\">Custom Shadows Variations <small><i>Using Bootstrap's Shadow Utility</i></small></h5>\n        <div class=\"row\">\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 2 -->\n            <div class=\"card card-widget widget-user-2 shadow-sm\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header bg-warning\">\n                <div class=\"widget-user-image\">\n                  <img class=\"img-circle elevation-2\" src=\"../dist/img/user7-128x128.jpg\" alt=\"User Avatar\">\n                </div>\n                <!-- /.widget-user-image -->\n                <h3 class=\"widget-user-username\">Nadia Carmichael</h3>\n                <h5 class=\"widget-user-desc\">Lead Developer</h5>\n              </div>\n              <div class=\"card-footer p-0\">\n                <ul class=\"nav flex-column\">\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Projects <span class=\"float-right badge bg-primary\">31</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Tasks <span class=\"float-right badge bg-info\">5</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Completed Projects <span class=\"float-right badge bg-success\">12</span>\n                    </a>\n                  </li>\n                  <li class=\"nav-item\">\n                    <a href=\"#\" class=\"nav-link\">\n                      Followers <span class=\"float-right badge bg-danger\">842</span>\n                    </a>\n                  </li>\n                </ul>\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 1 -->\n            <div class=\"card card-widget widget-user shadow\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header bg-info\">\n                <h3 class=\"widget-user-username\">Alexander Pierce</h3>\n                <h5 class=\"widget-user-desc\">Founder & CEO</h5>\n              </div>\n              <div class=\"widget-user-image\">\n                <img class=\"img-circle elevation-2\" src=\"../dist/img/user1-128x128.jpg\" alt=\"User Avatar\">\n              </div>\n              <div class=\"card-footer\">\n                <div class=\"row\">\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">3,200</h5>\n                      <span class=\"description-text\">SALES</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">13,000</h5>\n                      <span class=\"description-text\">FOLLOWERS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">35</h5>\n                      <span class=\"description-text\">PRODUCTS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n          <div class=\"col-md-4\">\n            <!-- Widget: user widget style 1 -->\n            <div class=\"card card-widget widget-user shadow-lg\">\n              <!-- Add the bg color to the header using any of the bg-* classes -->\n              <div class=\"widget-user-header text-white\"\n                   style=\"background: url('../dist/img/photo1.png') center center;\">\n                <h3 class=\"widget-user-username text-right\">Elizabeth Pierce</h3>\n                <h5 class=\"widget-user-desc text-right\">Web Designer</h5>\n              </div>\n              <div class=\"widget-user-image\">\n                <img class=\"img-circle\" src=\"../dist/img/user3-128x128.jpg\" alt=\"User Avatar\">\n              </div>\n              <div class=\"card-footer\">\n                <div class=\"row\">\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">3,200</h5>\n                      <span class=\"description-text\">SALES</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4 border-right\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">13,000</h5>\n                      <span class=\"description-text\">FOLLOWERS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                  <div class=\"col-sm-4\">\n                    <div class=\"description-block\">\n                      <h5 class=\"description-header\">35</h5>\n                      <span class=\"description-text\">PRODUCTS</span>\n                    </div>\n                    <!-- /.description-block -->\n                  </div>\n                  <!-- /.col -->\n                </div>\n                <!-- /.row -->\n              </div>\n            </div>\n            <!-- /.widget-user -->\n          </div>\n          <!-- /.col -->\n        </div>\n        <!-- /.row -->\n\n        <h5 class=\"mb-2\">Card with Image Overlay</h5>\n        <div class=\"card card-success\">\n          <div class=\"card-body\">\n            <div class=\"row\">\n              <div class=\"col-md-12 col-lg-6 col-xl-4\">\n                <div class=\"card mb-2 bg-gradient-dark\">\n                  <img class=\"card-img-top\" src=\"../dist/img/photo1.png\" alt=\"Dist Photo 1\">\n                  <div class=\"card-img-overlay d-flex flex-column justify-content-end\">\n                    <h5 class=\"card-title text-primary text-white\">Card Title</h5>\n                    <p class=\"card-text text-white pb-2 pt-1\">Lorem ipsum dolor sit amet, consectetur adipisicing elit sed do eiusmod tempor.</p>\n                    <a href=\"#\" class=\"text-white\">Last update 2 mins ago</a>\n                  </div>\n                </div>\n              </div>\n              <div class=\"col-md-12 col-lg-6 col-xl-4\">\n                <div class=\"card mb-2\">\n                  <img class=\"card-img-top\" src=\"../dist/img/photo2.png\" alt=\"Dist Photo 2\">\n                  <div class=\"card-img-overlay d-flex flex-column justify-content-center\">\n                    <h5 class=\"card-title text-white mt-5 pt-2\">Card Title</h5>\n                    <p class=\"card-text pb-2 pt-1 text-white\">\n                      Lorem ipsum dolor sit amet, <br>\n                      consectetur adipisicing elit <br>\n                      sed do eiusmod tempor.\n                    </p>\n                    <a href=\"#\" class=\"text-white\">Last update 15 hours ago</a>\n                  </div>\n                </div>\n              </div>\n              <div class=\"col-md-12 col-lg-6 col-xl-4\">\n                <div class=\"card mb-2\">\n                  <img class=\"card-img-top\" src=\"../dist/img/photo3.jpg\" alt=\"Dist Photo 3\">\n                  <div class=\"card-img-overlay\">\n                    <h5 class=\"card-title text-primary\">Card Title</h5>\n                    <p class=\"card-text pb-1 pt-1 text-white\">\n                      Lorem ipsum dolor <br>\n                      sit amet, consectetur <br>\n                      adipisicing elit sed <br>\n                      do eiusmod tempor. </p>\n                    <a href=\"#\" class=\"text-primary\">Last update 3 days ago</a>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div><!-- /.container-fluid -->\n    </section>\n    <!-- /.content -->\n\n    <a id=\"back-to-top\" href=\"#\" class=\"btn btn-primary back-to-top\" role=\"button\" aria-label=\"Scroll to top\">\n      <i class=\"fas fa-chevron-up\"></i>\n    </a>\n  </div>\n  <!-- /.content-wrapper -->\n\n  <footer class=\"main-footer\">\n    <div class=\"float-right d-none d-sm-block\">\n      <b>Version</b> 3.1.0\n    </div>\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n  </aside>\n  <!-- /.control-sidebar -->\n</div>\n<!-- ./wrapper -->\n\n<!-- jQuery -->\n<script src=\"../plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"../plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"../dist/js/adminlte.min.js\"></script>\n<!-- AdminLTE for demo purposes -->\n<script src=\"../dist/js/demo.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap/js/bootstrap.bundle.js",
    "content": "/*!\n  * Bootstrap v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery));\n}(this, (function (exports, $) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n  var EVENT_CLOSE = \"close\" + EVENT_KEY;\n  var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_ALERT = 'alert';\n  var CLASS_NAME_FADE = 'fade';\n  var CLASS_NAME_SHOW = 'show';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Alert = /*#__PURE__*/function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n      $__default['default'](element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n      if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Alert._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Alert;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.6.0';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY$1, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = Button;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.6.0';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var DIRECTION_NEXT = 'next';\n  var DIRECTION_PREV = 'prev';\n  var DIRECTION_LEFT = 'left';\n  var DIRECTION_RIGHT = 'right';\n  var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n  var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n  var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n  var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n  var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n  var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n  var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n  var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n  var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n  var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n  var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n  var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var CLASS_NAME_CAROUSEL = 'carousel';\n  var CLASS_NAME_ACTIVE$1 = 'active';\n  var CLASS_NAME_SLIDE = 'slide';\n  var CLASS_NAME_RIGHT = 'carousel-item-right';\n  var CLASS_NAME_LEFT = 'carousel-item-left';\n  var CLASS_NAME_NEXT = 'carousel-item-next';\n  var CLASS_NAME_PREV = 'carousel-item-prev';\n  var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n  var SELECTOR_ACTIVE$1 = '.active';\n  var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n  var SELECTOR_ITEM = '.carousel-item';\n  var SELECTOR_ITEM_IMG = '.carousel-item img';\n  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n  var SELECTOR_INDICATORS = '.carousel-indicators';\n  var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n  var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Carousel = /*#__PURE__*/function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n\n      if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._updateInterval();\n\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $__default['default'](this._element).one(EVENT_SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'](this._element).off(EVENT_KEY$2);\n      $__default['default'].removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX;\n      this.touchDeltaX = 0; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(EVENT_MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === DIRECTION_NEXT;\n      var isPrevDirection = direction === DIRECTION_PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === DIRECTION_PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n      var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $__default['default'](this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n        $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n        }\n      }\n    };\n\n    _proto._updateInterval = function _updateInterval() {\n      var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n      if (elementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n        this._config.interval = elementInterval;\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval;\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === DIRECTION_NEXT) {\n        directionalClassName = CLASS_NAME_LEFT;\n        orderClassName = CLASS_NAME_NEXT;\n        eventDirectionName = DIRECTION_LEFT;\n      } else {\n        directionalClassName = CLASS_NAME_RIGHT;\n        orderClassName = CLASS_NAME_PREV;\n        eventDirectionName = DIRECTION_RIGHT;\n      }\n\n      if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      this._activeElement = nextElement;\n      var slidEvent = $__default['default'].Event(EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n        $__default['default'](nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $__default['default'](activeElement).addClass(directionalClassName);\n        $__default['default'](nextElement).addClass(directionalClassName);\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n          $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n          $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $__default['default'](_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n        $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n        this._isSliding = false;\n        $__default['default'](this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$2);\n\n        var _config = _extends({}, Default, $__default['default'](this).data());\n\n        if (typeof config === 'object') {\n          _config = _extends({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $__default['default'](this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $__default['default'](selector)[0];\n\n      if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n        return;\n      }\n\n      var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($__default['default'](target), config);\n\n      if (slideIndex) {\n        $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n    var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $__default['default'](carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.6.0';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n  var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n  var CLASS_NAME_SHOW$1 = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$3);\n\n        var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**!\n   * @fileOverview Kickass library to create and place poppers near their reference elements.\n   * @version 1.16.1\n   * @license\n   * Copyright (c) 2016 Federico Zivolo and contributors\n   *\n   * Permission is hereby granted, free of charge, to any person obtaining a copy\n   * of this software and associated documentation files (the \"Software\"), to deal\n   * in the Software without restriction, including without limitation the rights\n   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n   * copies of the Software, and to permit persons to whom the Software is\n   * furnished to do so, subject to the following conditions:\n   *\n   * The above copyright notice and this permission notice shall be included in all\n   * copies or substantial portions of the Software.\n   *\n   * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n   * SOFTWARE.\n   */\n  var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\n  var timeoutDuration = function () {\n    var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n    for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n      if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n        return 1;\n      }\n    }\n    return 0;\n  }();\n\n  function microtaskDebounce(fn) {\n    var called = false;\n    return function () {\n      if (called) {\n        return;\n      }\n      called = true;\n      window.Promise.resolve().then(function () {\n        called = false;\n        fn();\n      });\n    };\n  }\n\n  function taskDebounce(fn) {\n    var scheduled = false;\n    return function () {\n      if (!scheduled) {\n        scheduled = true;\n        setTimeout(function () {\n          scheduled = false;\n          fn();\n        }, timeoutDuration);\n      }\n    };\n  }\n\n  var supportsMicroTasks = isBrowser && window.Promise;\n\n  /**\n  * Create a debounced version of a method, that's asynchronously deferred\n  * but called in the minimum time possible.\n  *\n  * @method\n  * @memberof Popper.Utils\n  * @argument {Function} fn\n  * @returns {Function}\n  */\n  var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n  /**\n   * Check if the given variable is a function\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Any} functionToCheck - variable to check\n   * @returns {Boolean} answer to: is a function?\n   */\n  function isFunction(functionToCheck) {\n    var getType = {};\n    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n  }\n\n  /**\n   * Get CSS computed property of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Eement} element\n   * @argument {String} property\n   */\n  function getStyleComputedProperty(element, property) {\n    if (element.nodeType !== 1) {\n      return [];\n    }\n    // NOTE: 1 DOM access here\n    var window = element.ownerDocument.defaultView;\n    var css = window.getComputedStyle(element, null);\n    return property ? css[property] : css;\n  }\n\n  /**\n   * Returns the parentNode or the host of the element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} parent\n   */\n  function getParentNode(element) {\n    if (element.nodeName === 'HTML') {\n      return element;\n    }\n    return element.parentNode || element.host;\n  }\n\n  /**\n   * Returns the scrolling parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} scroll parent\n   */\n  function getScrollParent(element) {\n    // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n    if (!element) {\n      return document.body;\n    }\n\n    switch (element.nodeName) {\n      case 'HTML':\n      case 'BODY':\n        return element.ownerDocument.body;\n      case '#document':\n        return element.body;\n    }\n\n    // Firefox want us to check `-x` and `-y` variations as well\n\n    var _getStyleComputedProp = getStyleComputedProperty(element),\n        overflow = _getStyleComputedProp.overflow,\n        overflowX = _getStyleComputedProp.overflowX,\n        overflowY = _getStyleComputedProp.overflowY;\n\n    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n      return element;\n    }\n\n    return getScrollParent(getParentNode(element));\n  }\n\n  /**\n   * Returns the reference node of the reference object, or the reference object itself.\n   * @method\n   * @memberof Popper.Utils\n   * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n   * @returns {Element} parent\n   */\n  function getReferenceNode(reference) {\n    return reference && reference.referenceNode ? reference.referenceNode : reference;\n  }\n\n  var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\n  var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n  /**\n   * Determines if the browser is Internet Explorer\n   * @method\n   * @memberof Popper.Utils\n   * @param {Number} version to check\n   * @returns {Boolean} isIE\n   */\n  function isIE(version) {\n    if (version === 11) {\n      return isIE11;\n    }\n    if (version === 10) {\n      return isIE10;\n    }\n    return isIE11 || isIE10;\n  }\n\n  /**\n   * Returns the offset parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} offset parent\n   */\n  function getOffsetParent(element) {\n    if (!element) {\n      return document.documentElement;\n    }\n\n    var noOffsetParent = isIE(10) ? document.body : null;\n\n    // NOTE: 1 DOM access here\n    var offsetParent = element.offsetParent || null;\n    // Skip hidden elements which don't have an offsetParent\n    while (offsetParent === noOffsetParent && element.nextElementSibling) {\n      offsetParent = (element = element.nextElementSibling).offsetParent;\n    }\n\n    var nodeName = offsetParent && offsetParent.nodeName;\n\n    if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n      return element ? element.ownerDocument.documentElement : document.documentElement;\n    }\n\n    // .offsetParent will return the closest TH, TD or TABLE in case\n    // no offsetParent is present, I hate this job...\n    if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n      return getOffsetParent(offsetParent);\n    }\n\n    return offsetParent;\n  }\n\n  function isOffsetContainer(element) {\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY') {\n      return false;\n    }\n    return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n  }\n\n  /**\n   * Finds the root node (document, shadowDOM root) of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} node\n   * @returns {Element} root node\n   */\n  function getRoot(node) {\n    if (node.parentNode !== null) {\n      return getRoot(node.parentNode);\n    }\n\n    return node;\n  }\n\n  /**\n   * Finds the offset parent common to the two provided nodes\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element1\n   * @argument {Element} element2\n   * @returns {Element} common offset parent\n   */\n  function findCommonOffsetParent(element1, element2) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n      return document.documentElement;\n    }\n\n    // Here we make sure to give as \"start\" the element that comes first in the DOM\n    var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n    var start = order ? element1 : element2;\n    var end = order ? element2 : element1;\n\n    // Get common ancestor container\n    var range = document.createRange();\n    range.setStart(start, 0);\n    range.setEnd(end, 0);\n    var commonAncestorContainer = range.commonAncestorContainer;\n\n    // Both nodes are inside #document\n\n    if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n      if (isOffsetContainer(commonAncestorContainer)) {\n        return commonAncestorContainer;\n      }\n\n      return getOffsetParent(commonAncestorContainer);\n    }\n\n    // one of the nodes is inside shadowDOM, find which one\n    var element1root = getRoot(element1);\n    if (element1root.host) {\n      return findCommonOffsetParent(element1root.host, element2);\n    } else {\n      return findCommonOffsetParent(element1, getRoot(element2).host);\n    }\n  }\n\n  /**\n   * Gets the scroll value of the given element in the given side (top and left)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {String} side `top` or `left`\n   * @returns {number} amount of scrolled pixels\n   */\n  function getScroll(element) {\n    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n    var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      var html = element.ownerDocument.documentElement;\n      var scrollingElement = element.ownerDocument.scrollingElement || html;\n      return scrollingElement[upperSide];\n    }\n\n    return element[upperSide];\n  }\n\n  /*\n   * Sum or subtract the element scroll values (left and top) from a given rect object\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} rect - Rect object you want to change\n   * @param {HTMLElement} element - The element from the function reads the scroll values\n   * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n   * @return {Object} rect - The modifier rect object\n   */\n  function includeScroll(rect, element) {\n    var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var scrollTop = getScroll(element, 'top');\n    var scrollLeft = getScroll(element, 'left');\n    var modifier = subtract ? -1 : 1;\n    rect.top += scrollTop * modifier;\n    rect.bottom += scrollTop * modifier;\n    rect.left += scrollLeft * modifier;\n    rect.right += scrollLeft * modifier;\n    return rect;\n  }\n\n  /*\n   * Helper to detect borders of a given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {CSSStyleDeclaration} styles\n   * Result of `getStyleComputedProperty` on the given element\n   * @param {String} axis - `x` or `y`\n   * @return {number} borders - The borders size of the given axis\n   */\n\n  function getBordersSize(styles, axis) {\n    var sideA = axis === 'x' ? 'Left' : 'Top';\n    var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n    return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n  }\n\n  function getSize(axis, body, html, computedStyle) {\n    return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n  }\n\n  function getWindowSizes(document) {\n    var body = document.body;\n    var html = document.documentElement;\n    var computedStyle = isIE(10) && getComputedStyle(html);\n\n    return {\n      height: getSize('Height', body, html, computedStyle),\n      width: getSize('Width', body, html, computedStyle)\n    };\n  }\n\n  var classCallCheck = function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  };\n\n  var createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n\n\n\n\n  var defineProperty = function (obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  };\n\n  var _extends$1 = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  /**\n   * Given element offsets, generate an output similar to getBoundingClientRect\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} offsets\n   * @returns {Object} ClientRect like output\n   */\n  function getClientRect(offsets) {\n    return _extends$1({}, offsets, {\n      right: offsets.left + offsets.width,\n      bottom: offsets.top + offsets.height\n    });\n  }\n\n  /**\n   * Get bounding client rect of given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} element\n   * @return {Object} client rect\n   */\n  function getBoundingClientRect(element) {\n    var rect = {};\n\n    // IE10 10 FIX: Please, don't ask, the element isn't\n    // considered in DOM in some circumstances...\n    // This isn't reproducible in IE10 compatibility mode of IE11\n    try {\n      if (isIE(10)) {\n        rect = element.getBoundingClientRect();\n        var scrollTop = getScroll(element, 'top');\n        var scrollLeft = getScroll(element, 'left');\n        rect.top += scrollTop;\n        rect.left += scrollLeft;\n        rect.bottom += scrollTop;\n        rect.right += scrollLeft;\n      } else {\n        rect = element.getBoundingClientRect();\n      }\n    } catch (e) {}\n\n    var result = {\n      left: rect.left,\n      top: rect.top,\n      width: rect.right - rect.left,\n      height: rect.bottom - rect.top\n    };\n\n    // subtract scrollbar size from sizes\n    var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n    var width = sizes.width || element.clientWidth || result.width;\n    var height = sizes.height || element.clientHeight || result.height;\n\n    var horizScrollbar = element.offsetWidth - width;\n    var vertScrollbar = element.offsetHeight - height;\n\n    // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n    // we make this check conditional for performance reasons\n    if (horizScrollbar || vertScrollbar) {\n      var styles = getStyleComputedProperty(element);\n      horizScrollbar -= getBordersSize(styles, 'x');\n      vertScrollbar -= getBordersSize(styles, 'y');\n\n      result.width -= horizScrollbar;\n      result.height -= vertScrollbar;\n    }\n\n    return getClientRect(result);\n  }\n\n  function getOffsetRectRelativeToArbitraryNode(children, parent) {\n    var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var isIE10 = isIE(10);\n    var isHTML = parent.nodeName === 'HTML';\n    var childrenRect = getBoundingClientRect(children);\n    var parentRect = getBoundingClientRect(parent);\n    var scrollParent = getScrollParent(children);\n\n    var styles = getStyleComputedProperty(parent);\n    var borderTopWidth = parseFloat(styles.borderTopWidth);\n    var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n    // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n    if (fixedPosition && isHTML) {\n      parentRect.top = Math.max(parentRect.top, 0);\n      parentRect.left = Math.max(parentRect.left, 0);\n    }\n    var offsets = getClientRect({\n      top: childrenRect.top - parentRect.top - borderTopWidth,\n      left: childrenRect.left - parentRect.left - borderLeftWidth,\n      width: childrenRect.width,\n      height: childrenRect.height\n    });\n    offsets.marginTop = 0;\n    offsets.marginLeft = 0;\n\n    // Subtract margins of documentElement in case it's being used as parent\n    // we do this only on HTML because it's the only element that behaves\n    // differently when margins are applied to it. The margins are included in\n    // the box of the documentElement, in the other cases not.\n    if (!isIE10 && isHTML) {\n      var marginTop = parseFloat(styles.marginTop);\n      var marginLeft = parseFloat(styles.marginLeft);\n\n      offsets.top -= borderTopWidth - marginTop;\n      offsets.bottom -= borderTopWidth - marginTop;\n      offsets.left -= borderLeftWidth - marginLeft;\n      offsets.right -= borderLeftWidth - marginLeft;\n\n      // Attach marginTop and marginLeft because in some circumstances we may need them\n      offsets.marginTop = marginTop;\n      offsets.marginLeft = marginLeft;\n    }\n\n    if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n      offsets = includeScroll(offsets, parent);\n    }\n\n    return offsets;\n  }\n\n  function getViewportOffsetRectRelativeToArtbitraryNode(element) {\n    var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var html = element.ownerDocument.documentElement;\n    var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n    var width = Math.max(html.clientWidth, window.innerWidth || 0);\n    var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n    var scrollTop = !excludeScroll ? getScroll(html) : 0;\n    var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n    var offset = {\n      top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n      left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n      width: width,\n      height: height\n    };\n\n    return getClientRect(offset);\n  }\n\n  /**\n   * Check if the given element is fixed or is inside a fixed parent\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {Element} customContainer\n   * @returns {Boolean} answer to \"isFixed?\"\n   */\n  function isFixed(element) {\n    var nodeName = element.nodeName;\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      return false;\n    }\n    if (getStyleComputedProperty(element, 'position') === 'fixed') {\n      return true;\n    }\n    var parentNode = getParentNode(element);\n    if (!parentNode) {\n      return false;\n    }\n    return isFixed(parentNode);\n  }\n\n  /**\n   * Finds the first parent of an element that has a transformed property defined\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} first transformed parent or documentElement\n   */\n\n  function getFixedPositionOffsetParent(element) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element || !element.parentElement || isIE()) {\n      return document.documentElement;\n    }\n    var el = element.parentElement;\n    while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n      el = el.parentElement;\n    }\n    return el || document.documentElement;\n  }\n\n  /**\n   * Computed the boundaries limits and return them\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} popper\n   * @param {HTMLElement} reference\n   * @param {number} padding\n   * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n   * @param {Boolean} fixedPosition - Is in fixed position mode\n   * @returns {Object} Coordinates of the boundaries\n   */\n  function getBoundaries(popper, reference, padding, boundariesElement) {\n    var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n    // NOTE: 1 DOM access here\n\n    var boundaries = { top: 0, left: 0 };\n    var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n    // Handle viewport case\n    if (boundariesElement === 'viewport') {\n      boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n    } else {\n      // Handle other cases based on DOM element used as boundaries\n      var boundariesNode = void 0;\n      if (boundariesElement === 'scrollParent') {\n        boundariesNode = getScrollParent(getParentNode(reference));\n        if (boundariesNode.nodeName === 'BODY') {\n          boundariesNode = popper.ownerDocument.documentElement;\n        }\n      } else if (boundariesElement === 'window') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      } else {\n        boundariesNode = boundariesElement;\n      }\n\n      var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n      // In case of HTML, we need a different computation\n      if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n        var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n            height = _getWindowSizes.height,\n            width = _getWindowSizes.width;\n\n        boundaries.top += offsets.top - offsets.marginTop;\n        boundaries.bottom = height + offsets.top;\n        boundaries.left += offsets.left - offsets.marginLeft;\n        boundaries.right = width + offsets.left;\n      } else {\n        // for all the other DOM elements, this one is good\n        boundaries = offsets;\n      }\n    }\n\n    // Add paddings\n    padding = padding || 0;\n    var isPaddingNumber = typeof padding === 'number';\n    boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n    boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n    boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n    boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n    return boundaries;\n  }\n\n  function getArea(_ref) {\n    var width = _ref.width,\n        height = _ref.height;\n\n    return width * height;\n  }\n\n  /**\n   * Utility used to transform the `auto` placement to the placement with more\n   * available space.\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n    var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n    if (placement.indexOf('auto') === -1) {\n      return placement;\n    }\n\n    var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n    var rects = {\n      top: {\n        width: boundaries.width,\n        height: refRect.top - boundaries.top\n      },\n      right: {\n        width: boundaries.right - refRect.right,\n        height: boundaries.height\n      },\n      bottom: {\n        width: boundaries.width,\n        height: boundaries.bottom - refRect.bottom\n      },\n      left: {\n        width: refRect.left - boundaries.left,\n        height: boundaries.height\n      }\n    };\n\n    var sortedAreas = Object.keys(rects).map(function (key) {\n      return _extends$1({\n        key: key\n      }, rects[key], {\n        area: getArea(rects[key])\n      });\n    }).sort(function (a, b) {\n      return b.area - a.area;\n    });\n\n    var filteredAreas = sortedAreas.filter(function (_ref2) {\n      var width = _ref2.width,\n          height = _ref2.height;\n      return width >= popper.clientWidth && height >= popper.clientHeight;\n    });\n\n    var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n    var variation = placement.split('-')[1];\n\n    return computedPlacement + (variation ? '-' + variation : '');\n  }\n\n  /**\n   * Get offsets to the reference element\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} state\n   * @param {Element} popper - the popper element\n   * @param {Element} reference - the reference element (the popper will be relative to this)\n   * @param {Element} fixedPosition - is in fixed position mode\n   * @returns {Object} An object containing the offsets which will be applied to the popper\n   */\n  function getReferenceOffsets(state, popper, reference) {\n    var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n    return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n  }\n\n  /**\n   * Get the outer sizes of the given element (offset size + margins)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Object} object containing width and height properties\n   */\n  function getOuterSizes(element) {\n    var window = element.ownerDocument.defaultView;\n    var styles = window.getComputedStyle(element);\n    var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n    var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n    var result = {\n      width: element.offsetWidth + y,\n      height: element.offsetHeight + x\n    };\n    return result;\n  }\n\n  /**\n   * Get the opposite placement of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement\n   * @returns {String} flipped placement\n   */\n  function getOppositePlacement(placement) {\n    var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n    return placement.replace(/left|right|bottom|top/g, function (matched) {\n      return hash[matched];\n    });\n  }\n\n  /**\n   * Get offsets to the popper\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} position - CSS position the Popper will get applied\n   * @param {HTMLElement} popper - the popper element\n   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n   * @param {String} placement - one of the valid placement options\n   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n   */\n  function getPopperOffsets(popper, referenceOffsets, placement) {\n    placement = placement.split('-')[0];\n\n    // Get popper node sizes\n    var popperRect = getOuterSizes(popper);\n\n    // Add position, width and height to our offsets object\n    var popperOffsets = {\n      width: popperRect.width,\n      height: popperRect.height\n    };\n\n    // depending by the popper placement we have to compute its offsets slightly differently\n    var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n    var mainSide = isHoriz ? 'top' : 'left';\n    var secondarySide = isHoriz ? 'left' : 'top';\n    var measurement = isHoriz ? 'height' : 'width';\n    var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n    popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n    if (placement === secondarySide) {\n      popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n    } else {\n      popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n    }\n\n    return popperOffsets;\n  }\n\n  /**\n   * Mimics the `find` method of Array\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function find(arr, check) {\n    // use native find if supported\n    if (Array.prototype.find) {\n      return arr.find(check);\n    }\n\n    // use `filter` to obtain the same behavior of `find`\n    return arr.filter(check)[0];\n  }\n\n  /**\n   * Return the index of the matching object\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function findIndex(arr, prop, value) {\n    // use native findIndex if supported\n    if (Array.prototype.findIndex) {\n      return arr.findIndex(function (cur) {\n        return cur[prop] === value;\n      });\n    }\n\n    // use `find` + `indexOf` if `findIndex` isn't supported\n    var match = find(arr, function (obj) {\n      return obj[prop] === value;\n    });\n    return arr.indexOf(match);\n  }\n\n  /**\n   * Loop trough the list of modifiers and run them in order,\n   * each of them will then edit the data object.\n   * @method\n   * @memberof Popper.Utils\n   * @param {dataObject} data\n   * @param {Array} modifiers\n   * @param {String} ends - Optional modifier name used as stopper\n   * @returns {dataObject}\n   */\n  function runModifiers(modifiers, data, ends) {\n    var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n    modifiersToRun.forEach(function (modifier) {\n      if (modifier['function']) {\n        // eslint-disable-line dot-notation\n        console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n      }\n      var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n      if (modifier.enabled && isFunction(fn)) {\n        // Add properties to offsets to make them a complete clientRect object\n        // we do this before each modifier to make sure the previous one doesn't\n        // mess with these values\n        data.offsets.popper = getClientRect(data.offsets.popper);\n        data.offsets.reference = getClientRect(data.offsets.reference);\n\n        data = fn(data, modifier);\n      }\n    });\n\n    return data;\n  }\n\n  /**\n   * Updates the position of the popper, computing the new offsets and applying\n   * the new style.<br />\n   * Prefer `scheduleUpdate` over `update` because of performance reasons.\n   * @method\n   * @memberof Popper\n   */\n  function update() {\n    // if popper is destroyed, don't perform any further update\n    if (this.state.isDestroyed) {\n      return;\n    }\n\n    var data = {\n      instance: this,\n      styles: {},\n      arrowStyles: {},\n      attributes: {},\n      flipped: false,\n      offsets: {}\n    };\n\n    // compute reference element offsets\n    data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n    // store the computed placement inside `originalPlacement`\n    data.originalPlacement = data.placement;\n\n    data.positionFixed = this.options.positionFixed;\n\n    // compute the popper offsets\n    data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n    data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n    // run the modifiers\n    data = runModifiers(this.modifiers, data);\n\n    // the first `update` will call `onCreate` callback\n    // the other ones will call `onUpdate` callback\n    if (!this.state.isCreated) {\n      this.state.isCreated = true;\n      this.options.onCreate(data);\n    } else {\n      this.options.onUpdate(data);\n    }\n  }\n\n  /**\n   * Helper used to know if the given modifier is enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @returns {Boolean}\n   */\n  function isModifierEnabled(modifiers, modifierName) {\n    return modifiers.some(function (_ref) {\n      var name = _ref.name,\n          enabled = _ref.enabled;\n      return enabled && name === modifierName;\n    });\n  }\n\n  /**\n   * Get the prefixed supported property name\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} property (camelCase)\n   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n   */\n  function getSupportedPropertyName(property) {\n    var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n    var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n    for (var i = 0; i < prefixes.length; i++) {\n      var prefix = prefixes[i];\n      var toCheck = prefix ? '' + prefix + upperProp : property;\n      if (typeof document.body.style[toCheck] !== 'undefined') {\n        return toCheck;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * Destroys the popper.\n   * @method\n   * @memberof Popper\n   */\n  function destroy() {\n    this.state.isDestroyed = true;\n\n    // touch DOM only if `applyStyle` modifier is enabled\n    if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n      this.popper.removeAttribute('x-placement');\n      this.popper.style.position = '';\n      this.popper.style.top = '';\n      this.popper.style.left = '';\n      this.popper.style.right = '';\n      this.popper.style.bottom = '';\n      this.popper.style.willChange = '';\n      this.popper.style[getSupportedPropertyName('transform')] = '';\n    }\n\n    this.disableEventListeners();\n\n    // remove the popper if user explicitly asked for the deletion on destroy\n    // do not use `remove` because IE11 doesn't support it\n    if (this.options.removeOnDestroy) {\n      this.popper.parentNode.removeChild(this.popper);\n    }\n    return this;\n  }\n\n  /**\n   * Get the window associated with the element\n   * @argument {Element} element\n   * @returns {Window}\n   */\n  function getWindow(element) {\n    var ownerDocument = element.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView : window;\n  }\n\n  function attachToScrollParents(scrollParent, event, callback, scrollParents) {\n    var isBody = scrollParent.nodeName === 'BODY';\n    var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n    target.addEventListener(event, callback, { passive: true });\n\n    if (!isBody) {\n      attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n    }\n    scrollParents.push(target);\n  }\n\n  /**\n   * Setup needed event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function setupEventListeners(reference, options, state, updateBound) {\n    // Resize event listener on window\n    state.updateBound = updateBound;\n    getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n    // Scroll event listener on scroll parents\n    var scrollElement = getScrollParent(reference);\n    attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n    state.scrollElement = scrollElement;\n    state.eventsEnabled = true;\n\n    return state;\n  }\n\n  /**\n   * It will add resize/scroll events and start recalculating\n   * position of the popper element when they are triggered.\n   * @method\n   * @memberof Popper\n   */\n  function enableEventListeners() {\n    if (!this.state.eventsEnabled) {\n      this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n    }\n  }\n\n  /**\n   * Remove event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function removeEventListeners(reference, state) {\n    // Remove resize event listener on window\n    getWindow(reference).removeEventListener('resize', state.updateBound);\n\n    // Remove scroll event listener on scroll parents\n    state.scrollParents.forEach(function (target) {\n      target.removeEventListener('scroll', state.updateBound);\n    });\n\n    // Reset state\n    state.updateBound = null;\n    state.scrollParents = [];\n    state.scrollElement = null;\n    state.eventsEnabled = false;\n    return state;\n  }\n\n  /**\n   * It will remove resize/scroll events and won't recalculate popper position\n   * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n   * unless you call `update` method manually.\n   * @method\n   * @memberof Popper\n   */\n  function disableEventListeners() {\n    if (this.state.eventsEnabled) {\n      cancelAnimationFrame(this.scheduleUpdate);\n      this.state = removeEventListeners(this.reference, this.state);\n    }\n  }\n\n  /**\n   * Tells if a given input is a number\n   * @method\n   * @memberof Popper.Utils\n   * @param {*} input to check\n   * @return {Boolean}\n   */\n  function isNumeric(n) {\n    return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n  }\n\n  /**\n   * Set the style to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the style to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setStyles(element, styles) {\n    Object.keys(styles).forEach(function (prop) {\n      var unit = '';\n      // add unit if the value is numeric and is one of the following\n      if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n        unit = 'px';\n      }\n      element.style[prop] = styles[prop] + unit;\n    });\n  }\n\n  /**\n   * Set the attributes to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the attributes to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setAttributes(element, attributes) {\n    Object.keys(attributes).forEach(function (prop) {\n      var value = attributes[prop];\n      if (value !== false) {\n        element.setAttribute(prop, attributes[prop]);\n      } else {\n        element.removeAttribute(prop);\n      }\n    });\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} data.styles - List of style properties - values to apply to popper element\n   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The same data object\n   */\n  function applyStyle(data) {\n    // any property present in `data.styles` will be applied to the popper,\n    // in this way we can make the 3rd party modifiers add custom styles to it\n    // Be aware, modifiers could override the properties defined in the previous\n    // lines of this modifier!\n    setStyles(data.instance.popper, data.styles);\n\n    // any property present in `data.attributes` will be applied to the popper,\n    // they will be set as HTML attributes of the element\n    setAttributes(data.instance.popper, data.attributes);\n\n    // if arrowElement is defined and arrowStyles has some properties\n    if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n      setStyles(data.arrowElement, data.arrowStyles);\n    }\n\n    return data;\n  }\n\n  /**\n   * Set the x-placement attribute before everything else because it could be used\n   * to add margins to the popper margins needs to be calculated to get the\n   * correct popper offsets.\n   * @method\n   * @memberof Popper.modifiers\n   * @param {HTMLElement} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper\n   * @param {Object} options - Popper.js options\n   */\n  function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n    // compute reference element offsets\n    var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n    popper.setAttribute('x-placement', placement);\n\n    // Apply `position` to popper before anything else because\n    // without the position applied we can't guarantee correct computations\n    setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n    return options;\n  }\n\n  /**\n   * @function\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n   * @returns {Object} The popper's position offsets rounded\n   *\n   * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n   * good as it can be within reason.\n   * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n   *\n   * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n   * as well on High DPI screens).\n   *\n   * Firefox prefers no rounding for positioning and does not have blurriness on\n   * high DPI screens.\n   *\n   * Only horizontal placement and left/right values need to be considered.\n   */\n  function getRoundedOffsets(data, shouldRound) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n    var round = Math.round,\n        floor = Math.floor;\n\n    var noRound = function noRound(v) {\n      return v;\n    };\n\n    var referenceWidth = round(reference.width);\n    var popperWidth = round(popper.width);\n\n    var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n    var isVariation = data.placement.indexOf('-') !== -1;\n    var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n    var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n    var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n    var verticalToInteger = !shouldRound ? noRound : round;\n\n    return {\n      left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n      top: verticalToInteger(popper.top),\n      bottom: verticalToInteger(popper.bottom),\n      right: horizontalToInteger(popper.right)\n    };\n  }\n\n  var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeStyle(data, options) {\n    var x = options.x,\n        y = options.y;\n    var popper = data.offsets.popper;\n\n    // Remove this legacy support in Popper.js v2\n\n    var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'applyStyle';\n    }).gpuAcceleration;\n    if (legacyGpuAccelerationOption !== undefined) {\n      console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n    }\n    var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n    var offsetParent = getOffsetParent(data.instance.popper);\n    var offsetParentRect = getBoundingClientRect(offsetParent);\n\n    // Styles\n    var styles = {\n      position: popper.position\n    };\n\n    var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n    var sideA = x === 'bottom' ? 'top' : 'bottom';\n    var sideB = y === 'right' ? 'left' : 'right';\n\n    // if gpuAcceleration is set to `true` and transform is supported,\n    //  we use `translate3d` to apply the position to the popper we\n    // automatically use the supported prefixed version if needed\n    var prefixedProperty = getSupportedPropertyName('transform');\n\n    // now, let's make a step back and look at this code closely (wtf?)\n    // If the content of the popper grows once it's been positioned, it\n    // may happen that the popper gets misplaced because of the new content\n    // overflowing its reference element\n    // To avoid this problem, we provide two options (x and y), which allow\n    // the consumer to define the offset origin.\n    // If we position a popper on top of a reference element, we can set\n    // `x` to `top` to make the popper grow towards its top instead of\n    // its bottom.\n    var left = void 0,\n        top = void 0;\n    if (sideA === 'bottom') {\n      // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n      // and not the bottom of the html element\n      if (offsetParent.nodeName === 'HTML') {\n        top = -offsetParent.clientHeight + offsets.bottom;\n      } else {\n        top = -offsetParentRect.height + offsets.bottom;\n      }\n    } else {\n      top = offsets.top;\n    }\n    if (sideB === 'right') {\n      if (offsetParent.nodeName === 'HTML') {\n        left = -offsetParent.clientWidth + offsets.right;\n      } else {\n        left = -offsetParentRect.width + offsets.right;\n      }\n    } else {\n      left = offsets.left;\n    }\n    if (gpuAcceleration && prefixedProperty) {\n      styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n      styles[sideA] = 0;\n      styles[sideB] = 0;\n      styles.willChange = 'transform';\n    } else {\n      // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n      var invertTop = sideA === 'bottom' ? -1 : 1;\n      var invertLeft = sideB === 'right' ? -1 : 1;\n      styles[sideA] = top * invertTop;\n      styles[sideB] = left * invertLeft;\n      styles.willChange = sideA + ', ' + sideB;\n    }\n\n    // Attributes\n    var attributes = {\n      'x-placement': data.placement\n    };\n\n    // Update `data` attributes, styles and arrowStyles\n    data.attributes = _extends$1({}, attributes, data.attributes);\n    data.styles = _extends$1({}, styles, data.styles);\n    data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);\n\n    return data;\n  }\n\n  /**\n   * Helper used to know if the given modifier depends from another one.<br />\n   * It checks if the needed modifier is listed and enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @param {Array} modifiers - list of modifiers\n   * @param {String} requestingName - name of requesting modifier\n   * @param {String} requestedName - name of requested modifier\n   * @returns {Boolean}\n   */\n  function isModifierRequired(modifiers, requestingName, requestedName) {\n    var requesting = find(modifiers, function (_ref) {\n      var name = _ref.name;\n      return name === requestingName;\n    });\n\n    var isRequired = !!requesting && modifiers.some(function (modifier) {\n      return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n    });\n\n    if (!isRequired) {\n      var _requesting = '`' + requestingName + '`';\n      var requested = '`' + requestedName + '`';\n      console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n    }\n    return isRequired;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function arrow(data, options) {\n    var _data$offsets$arrow;\n\n    // arrow depends on keepTogether in order to work\n    if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n      return data;\n    }\n\n    var arrowElement = options.element;\n\n    // if arrowElement is a string, suppose it's a CSS selector\n    if (typeof arrowElement === 'string') {\n      arrowElement = data.instance.popper.querySelector(arrowElement);\n\n      // if arrowElement is not found, don't run the modifier\n      if (!arrowElement) {\n        return data;\n      }\n    } else {\n      // if the arrowElement isn't a query selector we must check that the\n      // provided DOM node is child of its popper node\n      if (!data.instance.popper.contains(arrowElement)) {\n        console.warn('WARNING: `arrow.element` must be child of its popper element!');\n        return data;\n      }\n    }\n\n    var placement = data.placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n    var len = isVertical ? 'height' : 'width';\n    var sideCapitalized = isVertical ? 'Top' : 'Left';\n    var side = sideCapitalized.toLowerCase();\n    var altSide = isVertical ? 'left' : 'top';\n    var opSide = isVertical ? 'bottom' : 'right';\n    var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n    //\n    // extends keepTogether behavior making sure the popper and its\n    // reference have enough pixels in conjunction\n    //\n\n    // top/left side\n    if (reference[opSide] - arrowElementSize < popper[side]) {\n      data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n    }\n    // bottom/right side\n    if (reference[side] + arrowElementSize > popper[opSide]) {\n      data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n    }\n    data.offsets.popper = getClientRect(data.offsets.popper);\n\n    // compute center of the popper\n    var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n    // Compute the sideValue using the updated popper offsets\n    // take popper margin in account because we don't have this info available\n    var css = getStyleComputedProperty(data.instance.popper);\n    var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n    var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n    var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n    // prevent arrowElement from being placed not contiguously to its popper\n    sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n    data.arrowElement = arrowElement;\n    data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n    return data;\n  }\n\n  /**\n   * Get the opposite placement variation of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement variation\n   * @returns {String} flipped placement variation\n   */\n  function getOppositeVariation(variation) {\n    if (variation === 'end') {\n      return 'start';\n    } else if (variation === 'start') {\n      return 'end';\n    }\n    return variation;\n  }\n\n  /**\n   * List of accepted placements to use as values of the `placement` option.<br />\n   * Valid placements are:\n   * - `auto`\n   * - `top`\n   * - `right`\n   * - `bottom`\n   * - `left`\n   *\n   * Each placement can have a variation from this list:\n   * - `-start`\n   * - `-end`\n   *\n   * Variations are interpreted easily if you think of them as the left to right\n   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n   * is right.<br />\n   * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n   *\n   * Some valid examples are:\n   * - `top-end` (on top of reference, right aligned)\n   * - `right-start` (on right of reference, top aligned)\n   * - `bottom` (on bottom, centered)\n   * - `auto-end` (on the side with more space available, alignment depends by placement)\n   *\n   * @static\n   * @type {Array}\n   * @enum {String}\n   * @readonly\n   * @method placements\n   * @memberof Popper\n   */\n  var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n  // Get rid of `auto` `auto-start` and `auto-end`\n  var validPlacements = placements.slice(3);\n\n  /**\n   * Given an initial placement, returns all the subsequent placements\n   * clockwise (or counter-clockwise).\n   *\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement - A valid placement (it accepts variations)\n   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n   * @returns {Array} placements including their variations\n   */\n  function clockwise(placement) {\n    var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var index = validPlacements.indexOf(placement);\n    var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n    return counter ? arr.reverse() : arr;\n  }\n\n  var BEHAVIORS = {\n    FLIP: 'flip',\n    CLOCKWISE: 'clockwise',\n    COUNTERCLOCKWISE: 'counterclockwise'\n  };\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function flip(data, options) {\n    // if `inner` modifier is enabled, we can't use the `flip` modifier\n    if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n      return data;\n    }\n\n    if (data.flipped && data.placement === data.originalPlacement) {\n      // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n      return data;\n    }\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n    var placement = data.placement.split('-')[0];\n    var placementOpposite = getOppositePlacement(placement);\n    var variation = data.placement.split('-')[1] || '';\n\n    var flipOrder = [];\n\n    switch (options.behavior) {\n      case BEHAVIORS.FLIP:\n        flipOrder = [placement, placementOpposite];\n        break;\n      case BEHAVIORS.CLOCKWISE:\n        flipOrder = clockwise(placement);\n        break;\n      case BEHAVIORS.COUNTERCLOCKWISE:\n        flipOrder = clockwise(placement, true);\n        break;\n      default:\n        flipOrder = options.behavior;\n    }\n\n    flipOrder.forEach(function (step, index) {\n      if (placement !== step || flipOrder.length === index + 1) {\n        return data;\n      }\n\n      placement = data.placement.split('-')[0];\n      placementOpposite = getOppositePlacement(placement);\n\n      var popperOffsets = data.offsets.popper;\n      var refOffsets = data.offsets.reference;\n\n      // using floor because the reference offsets may contain decimals we are not going to consider here\n      var floor = Math.floor;\n      var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n      var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n      var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n      var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n      var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n      var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n      // flip the variation if required\n      var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n      // flips variation if reference element overflows boundaries\n      var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n      // flips variation if popper content overflows boundaries\n      var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n      var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n      if (overlapsRef || overflowsBoundaries || flippedVariation) {\n        // this boolean to detect any flip loop\n        data.flipped = true;\n\n        if (overlapsRef || overflowsBoundaries) {\n          placement = flipOrder[index + 1];\n        }\n\n        if (flippedVariation) {\n          variation = getOppositeVariation(variation);\n        }\n\n        data.placement = placement + (variation ? '-' + variation : '');\n\n        // this object contains `position`, we want to preserve it along with\n        // any additional property we may add in the future\n        data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n        data = runModifiers(data.instance.modifiers, data, 'flip');\n      }\n    });\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function keepTogether(data) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var placement = data.placement.split('-')[0];\n    var floor = Math.floor;\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var side = isVertical ? 'right' : 'bottom';\n    var opSide = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    if (popper[side] < floor(reference[opSide])) {\n      data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n    }\n    if (popper[opSide] > floor(reference[side])) {\n      data.offsets.popper[opSide] = floor(reference[side]);\n    }\n\n    return data;\n  }\n\n  /**\n   * Converts a string containing value + unit into a px value number\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} str - Value + unit string\n   * @argument {String} measurement - `height` or `width`\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @returns {Number|String}\n   * Value in pixels, or original string if no values were extracted\n   */\n  function toValue(str, measurement, popperOffsets, referenceOffsets) {\n    // separate value from unit\n    var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n    var value = +split[1];\n    var unit = split[2];\n\n    // If it's not a number it's an operator, I guess\n    if (!value) {\n      return str;\n    }\n\n    if (unit.indexOf('%') === 0) {\n      var element = void 0;\n      switch (unit) {\n        case '%p':\n          element = popperOffsets;\n          break;\n        case '%':\n        case '%r':\n        default:\n          element = referenceOffsets;\n      }\n\n      var rect = getClientRect(element);\n      return rect[measurement] / 100 * value;\n    } else if (unit === 'vh' || unit === 'vw') {\n      // if is a vh or vw, we calculate the size based on the viewport\n      var size = void 0;\n      if (unit === 'vh') {\n        size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n      } else {\n        size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n      }\n      return size / 100 * value;\n    } else {\n      // if is an explicit pixel unit, we get rid of the unit and keep the value\n      // if is an implicit unit, it's px, and we return just the value\n      return value;\n    }\n  }\n\n  /**\n   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} offset\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @argument {String} basePlacement\n   * @returns {Array} a two cells array with x and y offsets in numbers\n   */\n  function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n    var offsets = [0, 0];\n\n    // Use height if placement is left or right and index is 0 otherwise use width\n    // in this way the first offset will use an axis and the second one\n    // will use the other one\n    var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n    // Split the offset string to obtain a list of values and operands\n    // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n    var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n      return frag.trim();\n    });\n\n    // Detect if the offset string contains a pair of values or a single one\n    // they could be separated by comma or space\n    var divider = fragments.indexOf(find(fragments, function (frag) {\n      return frag.search(/,|\\s/) !== -1;\n    }));\n\n    if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n      console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n    }\n\n    // If divider is found, we divide the list of values and operands to divide\n    // them by ofset X and Y.\n    var splitRegex = /\\s*,\\s*|\\s+/;\n    var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n    // Convert the values with units to absolute pixels to allow our computations\n    ops = ops.map(function (op, index) {\n      // Most of the units rely on the orientation of the popper\n      var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n      var mergeWithPrevious = false;\n      return op\n      // This aggregates any `+` or `-` sign that aren't considered operators\n      // e.g.: 10 + +5 => [10, +, +5]\n      .reduce(function (a, b) {\n        if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n          a[a.length - 1] = b;\n          mergeWithPrevious = true;\n          return a;\n        } else if (mergeWithPrevious) {\n          a[a.length - 1] += b;\n          mergeWithPrevious = false;\n          return a;\n        } else {\n          return a.concat(b);\n        }\n      }, [])\n      // Here we convert the string values into number values (in px)\n      .map(function (str) {\n        return toValue(str, measurement, popperOffsets, referenceOffsets);\n      });\n    });\n\n    // Loop trough the offsets arrays and execute the operations\n    ops.forEach(function (op, index) {\n      op.forEach(function (frag, index2) {\n        if (isNumeric(frag)) {\n          offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n        }\n      });\n    });\n    return offsets;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @argument {Number|String} options.offset=0\n   * The offset value as described in the modifier description\n   * @returns {Object} The data object, properly modified\n   */\n  function offset(data, _ref) {\n    var offset = _ref.offset;\n    var placement = data.placement,\n        _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var basePlacement = placement.split('-')[0];\n\n    var offsets = void 0;\n    if (isNumeric(+offset)) {\n      offsets = [+offset, 0];\n    } else {\n      offsets = parseOffset(offset, popper, reference, basePlacement);\n    }\n\n    if (basePlacement === 'left') {\n      popper.top += offsets[0];\n      popper.left -= offsets[1];\n    } else if (basePlacement === 'right') {\n      popper.top += offsets[0];\n      popper.left += offsets[1];\n    } else if (basePlacement === 'top') {\n      popper.left += offsets[0];\n      popper.top -= offsets[1];\n    } else if (basePlacement === 'bottom') {\n      popper.left += offsets[0];\n      popper.top += offsets[1];\n    }\n\n    data.popper = popper;\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function preventOverflow(data, options) {\n    var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n    // If offsetParent is the reference element, we really want to\n    // go one step up and use the next offsetParent as reference to\n    // avoid to make this modifier completely useless and look like broken\n    if (data.instance.reference === boundariesElement) {\n      boundariesElement = getOffsetParent(boundariesElement);\n    }\n\n    // NOTE: DOM access here\n    // resets the popper's position so that the document size can be calculated excluding\n    // the size of the popper element itself\n    var transformProp = getSupportedPropertyName('transform');\n    var popperStyles = data.instance.popper.style; // assignment to help minification\n    var top = popperStyles.top,\n        left = popperStyles.left,\n        transform = popperStyles[transformProp];\n\n    popperStyles.top = '';\n    popperStyles.left = '';\n    popperStyles[transformProp] = '';\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n    // NOTE: DOM access here\n    // restores the original style properties after the offsets have been computed\n    popperStyles.top = top;\n    popperStyles.left = left;\n    popperStyles[transformProp] = transform;\n\n    options.boundaries = boundaries;\n\n    var order = options.priority;\n    var popper = data.offsets.popper;\n\n    var check = {\n      primary: function primary(placement) {\n        var value = popper[placement];\n        if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n          value = Math.max(popper[placement], boundaries[placement]);\n        }\n        return defineProperty({}, placement, value);\n      },\n      secondary: function secondary(placement) {\n        var mainSide = placement === 'right' ? 'left' : 'top';\n        var value = popper[mainSide];\n        if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n          value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n        }\n        return defineProperty({}, mainSide, value);\n      }\n    };\n\n    order.forEach(function (placement) {\n      var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n      popper = _extends$1({}, popper, check[side](placement));\n    });\n\n    data.offsets.popper = popper;\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function shift(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var shiftvariation = placement.split('-')[1];\n\n    // if shift shiftvariation is specified, run the modifier\n    if (shiftvariation) {\n      var _data$offsets = data.offsets,\n          reference = _data$offsets.reference,\n          popper = _data$offsets.popper;\n\n      var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n      var side = isVertical ? 'left' : 'top';\n      var measurement = isVertical ? 'width' : 'height';\n\n      var shiftOffsets = {\n        start: defineProperty({}, side, reference[side]),\n        end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n      };\n\n      data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function hide(data) {\n    if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n      return data;\n    }\n\n    var refRect = data.offsets.reference;\n    var bound = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'preventOverflow';\n    }).boundaries;\n\n    if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === true) {\n        return data;\n      }\n\n      data.hide = true;\n      data.attributes['x-out-of-boundaries'] = '';\n    } else {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === false) {\n        return data;\n      }\n\n      data.hide = false;\n      data.attributes['x-out-of-boundaries'] = false;\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function inner(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n    var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n    popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n    data.placement = getOppositePlacement(placement);\n    data.offsets.popper = getClientRect(popper);\n\n    return data;\n  }\n\n  /**\n   * Modifier function, each modifier can have a function of this type assigned\n   * to its `fn` property.<br />\n   * These functions will be called on each update, this means that you must\n   * make sure they are performant enough to avoid performance bottlenecks.\n   *\n   * @function ModifierFn\n   * @argument {dataObject} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {dataObject} The data object, properly modified\n   */\n\n  /**\n   * Modifiers are plugins used to alter the behavior of your poppers.<br />\n   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n   * needed by the library.\n   *\n   * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n   * All the other properties are configurations that could be tweaked.\n   * @namespace modifiers\n   */\n  var modifiers = {\n    /**\n     * Modifier used to shift the popper on the start or end of its reference\n     * element.<br />\n     * It will read the variation of the `placement` property.<br />\n     * It can be one either `-end` or `-start`.\n     * @memberof modifiers\n     * @inner\n     */\n    shift: {\n      /** @prop {number} order=100 - Index used to define the order of execution */\n      order: 100,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: shift\n    },\n\n    /**\n     * The `offset` modifier can shift your popper on both its axis.\n     *\n     * It accepts the following units:\n     * - `px` or unit-less, interpreted as pixels\n     * - `%` or `%r`, percentage relative to the length of the reference element\n     * - `%p`, percentage relative to the length of the popper element\n     * - `vw`, CSS viewport width unit\n     * - `vh`, CSS viewport height unit\n     *\n     * For length is intended the main axis relative to the placement of the popper.<br />\n     * This means that if the placement is `top` or `bottom`, the length will be the\n     * `width`. In case of `left` or `right`, it will be the `height`.\n     *\n     * You can provide a single value (as `Number` or `String`), or a pair of values\n     * as `String` divided by a comma or one (or more) white spaces.<br />\n     * The latter is a deprecated method because it leads to confusion and will be\n     * removed in v2.<br />\n     * Additionally, it accepts additions and subtractions between different units.\n     * Note that multiplications and divisions aren't supported.\n     *\n     * Valid examples are:\n     * ```\n     * 10\n     * '10%'\n     * '10, 10'\n     * '10%, 10'\n     * '10 + 10%'\n     * '10 - 5vh + 3%'\n     * '-10px + 5vh, 5px - 6%'\n     * ```\n     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n     * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    offset: {\n      /** @prop {number} order=200 - Index used to define the order of execution */\n      order: 200,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: offset,\n      /** @prop {Number|String} offset=0\n       * The offset value as described in the modifier description\n       */\n      offset: 0\n    },\n\n    /**\n     * Modifier used to prevent the popper from being positioned outside the boundary.\n     *\n     * A scenario exists where the reference itself is not within the boundaries.<br />\n     * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n     * In this case we need to decide whether the popper should either:\n     *\n     * - detach from the reference and remain \"trapped\" in the boundaries, or\n     * - if it should ignore the boundary and \"escape with its reference\"\n     *\n     * When `escapeWithReference` is set to`true` and reference is completely\n     * outside its boundaries, the popper will overflow (or completely leave)\n     * the boundaries in order to remain attached to the edge of the reference.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    preventOverflow: {\n      /** @prop {number} order=300 - Index used to define the order of execution */\n      order: 300,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: preventOverflow,\n      /**\n       * @prop {Array} [priority=['left','right','top','bottom']]\n       * Popper will try to prevent overflow following these priorities by default,\n       * then, it could overflow on the left and on top of the `boundariesElement`\n       */\n      priority: ['left', 'right', 'top', 'bottom'],\n      /**\n       * @prop {number} padding=5\n       * Amount of pixel used to define a minimum distance between the boundaries\n       * and the popper. This makes sure the popper always has a little padding\n       * between the edges of its container\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='scrollParent'\n       * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n       * `viewport` or any DOM element.\n       */\n      boundariesElement: 'scrollParent'\n    },\n\n    /**\n     * Modifier used to make sure the reference and its popper stay near each other\n     * without leaving any gap between the two. Especially useful when the arrow is\n     * enabled and you want to ensure that it points to its reference element.\n     * It cares only about the first axis. You can still have poppers with margin\n     * between the popper and its reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    keepTogether: {\n      /** @prop {number} order=400 - Index used to define the order of execution */\n      order: 400,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: keepTogether\n    },\n\n    /**\n     * This modifier is used to move the `arrowElement` of the popper to make\n     * sure it is positioned between the reference element and its popper element.\n     * It will read the outer size of the `arrowElement` node to detect how many\n     * pixels of conjunction are needed.\n     *\n     * It has no effect if no `arrowElement` is provided.\n     * @memberof modifiers\n     * @inner\n     */\n    arrow: {\n      /** @prop {number} order=500 - Index used to define the order of execution */\n      order: 500,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: arrow,\n      /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n      element: '[x-arrow]'\n    },\n\n    /**\n     * Modifier used to flip the popper's placement when it starts to overlap its\n     * reference element.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     *\n     * **NOTE:** this modifier will interrupt the current update cycle and will\n     * restart it if it detects the need to flip the placement.\n     * @memberof modifiers\n     * @inner\n     */\n    flip: {\n      /** @prop {number} order=600 - Index used to define the order of execution */\n      order: 600,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: flip,\n      /**\n       * @prop {String|Array} behavior='flip'\n       * The behavior used to change the popper's placement. It can be one of\n       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n       * placements (with optional variations)\n       */\n      behavior: 'flip',\n      /**\n       * @prop {number} padding=5\n       * The popper will flip if it hits the edges of the `boundariesElement`\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='viewport'\n       * The element which will define the boundaries of the popper position.\n       * The popper will never be placed outside of the defined boundaries\n       * (except if `keepTogether` is enabled)\n       */\n      boundariesElement: 'viewport',\n      /**\n       * @prop {Boolean} flipVariations=false\n       * The popper will switch placement variation between `-start` and `-end` when\n       * the reference element overlaps its boundaries.\n       *\n       * The original placement should have a set variation.\n       */\n      flipVariations: false,\n      /**\n       * @prop {Boolean} flipVariationsByContent=false\n       * The popper will switch placement variation between `-start` and `-end` when\n       * the popper element overlaps its reference boundaries.\n       *\n       * The original placement should have a set variation.\n       */\n      flipVariationsByContent: false\n    },\n\n    /**\n     * Modifier used to make the popper flow toward the inner of the reference element.\n     * By default, when this modifier is disabled, the popper will be placed outside\n     * the reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    inner: {\n      /** @prop {number} order=700 - Index used to define the order of execution */\n      order: 700,\n      /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n      enabled: false,\n      /** @prop {ModifierFn} */\n      fn: inner\n    },\n\n    /**\n     * Modifier used to hide the popper when its reference element is outside of the\n     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n     * be used to hide with a CSS selector the popper when its reference is\n     * out of boundaries.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     * @memberof modifiers\n     * @inner\n     */\n    hide: {\n      /** @prop {number} order=800 - Index used to define the order of execution */\n      order: 800,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: hide\n    },\n\n    /**\n     * Computes the style that will be applied to the popper element to gets\n     * properly positioned.\n     *\n     * Note that this modifier will not touch the DOM, it just prepares the styles\n     * so that `applyStyle` modifier can apply it. This separation is useful\n     * in case you need to replace `applyStyle` with a custom implementation.\n     *\n     * This modifier has `850` as `order` value to maintain backward compatibility\n     * with previous versions of Popper.js. Expect the modifiers ordering method\n     * to change in future major versions of the library.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    computeStyle: {\n      /** @prop {number} order=850 - Index used to define the order of execution */\n      order: 850,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: computeStyle,\n      /**\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: true,\n      /**\n       * @prop {string} [x='bottom']\n       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n       * Change this if your popper should grow in a direction different from `bottom`\n       */\n      x: 'bottom',\n      /**\n       * @prop {string} [x='left']\n       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n       * Change this if your popper should grow in a direction different from `right`\n       */\n      y: 'right'\n    },\n\n    /**\n     * Applies the computed styles to the popper element.\n     *\n     * All the DOM manipulations are limited to this modifier. This is useful in case\n     * you want to integrate Popper.js inside a framework or view library and you\n     * want to delegate all the DOM manipulations to it.\n     *\n     * Note that if you disable this modifier, you must make sure the popper element\n     * has its position set to `absolute` before Popper.js can do its work!\n     *\n     * Just disable this modifier and define your own to achieve the desired effect.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    applyStyle: {\n      /** @prop {number} order=900 - Index used to define the order of execution */\n      order: 900,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: applyStyle,\n      /** @prop {Function} */\n      onLoad: applyStyleOnLoad,\n      /**\n       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: undefined\n    }\n  };\n\n  /**\n   * The `dataObject` is an object containing all the information used by Popper.js.\n   * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n   * @name dataObject\n   * @property {Object} data.instance The Popper.js instance\n   * @property {String} data.placement Placement applied to popper\n   * @property {String} data.originalPlacement Placement originally defined on init\n   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n   * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.boundaries Offsets of the popper boundaries\n   * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n   */\n\n  /**\n   * Default options provided to Popper.js constructor.<br />\n   * These can be overridden using the `options` argument of Popper.js.<br />\n   * To override an option, simply pass an object with the same\n   * structure of the `options` object, as the 3rd argument. For example:\n   * ```\n   * new Popper(ref, pop, {\n   *   modifiers: {\n   *     preventOverflow: { enabled: false }\n   *   }\n   * })\n   * ```\n   * @type {Object}\n   * @static\n   * @memberof Popper\n   */\n  var Defaults = {\n    /**\n     * Popper's placement.\n     * @prop {Popper.placements} placement='bottom'\n     */\n    placement: 'bottom',\n\n    /**\n     * Set this to true if you want popper to position it self in 'fixed' mode\n     * @prop {Boolean} positionFixed=false\n     */\n    positionFixed: false,\n\n    /**\n     * Whether events (resize, scroll) are initially enabled.\n     * @prop {Boolean} eventsEnabled=true\n     */\n    eventsEnabled: true,\n\n    /**\n     * Set to true if you want to automatically remove the popper when\n     * you call the `destroy` method.\n     * @prop {Boolean} removeOnDestroy=false\n     */\n    removeOnDestroy: false,\n\n    /**\n     * Callback called when the popper is created.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onCreate}\n     */\n    onCreate: function onCreate() {},\n\n    /**\n     * Callback called when the popper is updated. This callback is not called\n     * on the initialization/creation of the popper, but only on subsequent\n     * updates.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onUpdate}\n     */\n    onUpdate: function onUpdate() {},\n\n    /**\n     * List of modifiers used to modify the offsets before they are applied to the popper.\n     * They provide most of the functionalities of Popper.js.\n     * @prop {modifiers}\n     */\n    modifiers: modifiers\n  };\n\n  /**\n   * @callback onCreate\n   * @param {dataObject} data\n   */\n\n  /**\n   * @callback onUpdate\n   * @param {dataObject} data\n   */\n\n  // Utils\n  // Methods\n  var Popper = function () {\n    /**\n     * Creates a new Popper.js instance.\n     * @class Popper\n     * @param {Element|referenceObject} reference - The reference element used to position the popper\n     * @param {Element} popper - The HTML / XML element used as the popper\n     * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n     * @return {Object} instance - The generated Popper.js instance\n     */\n    function Popper(reference, popper) {\n      var _this = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      classCallCheck(this, Popper);\n\n      this.scheduleUpdate = function () {\n        return requestAnimationFrame(_this.update);\n      };\n\n      // make update() debounced, so that it only runs at most once-per-tick\n      this.update = debounce(this.update.bind(this));\n\n      // with {} we create a new object with the options inside it\n      this.options = _extends$1({}, Popper.Defaults, options);\n\n      // init state\n      this.state = {\n        isDestroyed: false,\n        isCreated: false,\n        scrollParents: []\n      };\n\n      // get reference and popper elements (allow jQuery wrappers)\n      this.reference = reference && reference.jquery ? reference[0] : reference;\n      this.popper = popper && popper.jquery ? popper[0] : popper;\n\n      // Deep merge modifiers options\n      this.options.modifiers = {};\n      Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n        _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n      });\n\n      // Refactoring modifiers' list (Object => Array)\n      this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n        return _extends$1({\n          name: name\n        }, _this.options.modifiers[name]);\n      })\n      // sort the modifiers by order\n      .sort(function (a, b) {\n        return a.order - b.order;\n      });\n\n      // modifiers have the ability to execute arbitrary code when Popper.js get inited\n      // such code is executed in the same order of its modifier\n      // they could add new properties to their options configuration\n      // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n      this.modifiers.forEach(function (modifierOptions) {\n        if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n          modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n        }\n      });\n\n      // fire the first update to position the popper in the right place\n      this.update();\n\n      var eventsEnabled = this.options.eventsEnabled;\n      if (eventsEnabled) {\n        // setup event listeners, they will take care of update the position in specific situations\n        this.enableEventListeners();\n      }\n\n      this.state.eventsEnabled = eventsEnabled;\n    }\n\n    // We can't use class properties because they don't get listed in the\n    // class prototype and break stuff like Sinon stubs\n\n\n    createClass(Popper, [{\n      key: 'update',\n      value: function update$$1() {\n        return update.call(this);\n      }\n    }, {\n      key: 'destroy',\n      value: function destroy$$1() {\n        return destroy.call(this);\n      }\n    }, {\n      key: 'enableEventListeners',\n      value: function enableEventListeners$$1() {\n        return enableEventListeners.call(this);\n      }\n    }, {\n      key: 'disableEventListeners',\n      value: function disableEventListeners$$1() {\n        return disableEventListeners.call(this);\n      }\n\n      /**\n       * Schedules an update. It will run on the next UI update available.\n       * @method scheduleUpdate\n       * @memberof Popper\n       */\n\n\n      /**\n       * Collection of utilities useful when writing custom modifiers.\n       * Starting from version 1.7, this method is available only if you\n       * include `popper-utils.js` before `popper.js`.\n       *\n       * **DEPRECATION**: This way to access PopperUtils is deprecated\n       * and will be removed in v2! Use the PopperUtils module directly instead.\n       * Due to the high instability of the methods contained in Utils, we can't\n       * guarantee them to follow semver. Use them at your own risk!\n       * @static\n       * @private\n       * @type {Object}\n       * @deprecated since version 1.8\n       * @member Utils\n       * @memberof Popper\n       */\n\n    }]);\n    return Popper;\n  }();\n\n  /**\n   * The `referenceObject` is an object that provides an interface compatible with Popper.js\n   * and lets you use it as replacement of a real DOM node.<br />\n   * You can use this method to position a popper relatively to a set of coordinates\n   * in case you don't have a DOM node to use as reference.\n   *\n   * ```\n   * new Popper(referenceObject, popperNode);\n   * ```\n   *\n   * NB: This feature isn't supported in Internet Explorer 10.\n   * @name referenceObject\n   * @property {Function} data.getBoundingClientRect\n   * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n   * @property {number} data.clientWidth\n   * An ES6 getter that will return the width of the virtual reference element.\n   * @property {number} data.clientHeight\n   * An ES6 getter that will return the height of the virtual reference element.\n   */\n\n\n  Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n  Popper.placements = placements;\n  Popper.Defaults = Defaults;\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.6.0';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n  var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n  var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n  var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n  var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n  var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW$2 = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$4);\n      $__default['default'](this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.6.0';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n  var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n  var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n  var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n  var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n  var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n  var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n  var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n  var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n  var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n  var CLASS_NAME_BACKDROP = 'modal-backdrop';\n  var CLASS_NAME_OPEN = 'modal-open';\n  var CLASS_NAME_FADE$1 = 'fade';\n  var CLASS_NAME_SHOW$3 = 'show';\n  var CLASS_NAME_STATIC = 'modal-static';\n  var SELECTOR_DIALOG = '.modal-dialog';\n  var SELECTOR_MODAL_BODY = '.modal-body';\n  var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n  var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n  var SELECTOR_STICKY_CONTENT = '.sticky-top';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(SELECTOR_DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n        relatedTarget: relatedTarget\n      });\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n        $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n          if ($__default['default'](event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n      $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $__default['default'](htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `EVENT_CLICK_DATA_API` event that should remain\n       */\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'].removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n      var _this3 = this;\n\n      var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n      $__default['default'](this._element).trigger(hideEventPrevented);\n\n      if (hideEventPrevented.isDefaultPrevented()) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n      $__default['default'](this._element).off(Util.TRANSITION_END);\n      $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n        _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n        if (!isModalOverflowing) {\n          $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n            _this3._element.style.overflowY = '';\n          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n        }\n      }).emulateTransitionEnd(modalTransitionDuration);\n\n      this._element.focus();\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this4 = this;\n\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n        modalBody.scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this4._config.focus) {\n          _this4._element.focus();\n        }\n\n        _this4._isTransitioning = false;\n        $__default['default'](_this4._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this5 = this;\n\n      $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n      .on(EVENT_FOCUSIN, function (event) {\n        if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n          _this5._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this6.hide();\n          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            _this6._triggerBackdropTransition();\n          }\n        });\n      } else if (!this._isShown) {\n        $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this7 = this;\n\n      if (this._isShown) {\n        $__default['default'](window).on(EVENT_RESIZE, function (event) {\n          return _this7.handleUpdate(event);\n        });\n      } else {\n        $__default['default'](window).off(EVENT_RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this8 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n        _this8._resetAdjustments();\n\n        _this8._resetScrollbar();\n\n        $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $__default['default'](this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this9 = this;\n\n      var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = CLASS_NAME_BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $__default['default'](this._backdrop).appendTo(document.body);\n        $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n          if (_this9._ignoreBackdropClick) {\n            _this9._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this9._config.backdrop === 'static') {\n            _this9._triggerBackdropTransition();\n          } else {\n            _this9.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n        var callbackRemove = function callbackRemove() {\n          _this9._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this10 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n        $__default['default'](fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $__default['default'](element).css('padding-right');\n          $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $__default['default'](stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $__default['default'](element).css('margin-right');\n          $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $__default['default'](document.body).css('padding-right');\n        $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n      $__default['default'](fixedContent).each(function (index, element) {\n        var padding = $__default['default'](element).data('padding-right');\n        $__default['default'](element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n      $__default['default'](elements).each(function (index, element) {\n        var margin = $__default['default'](element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $__default['default'](document.body).data('padding-right');\n      $__default['default'](document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n    var _this11 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(EVENT_HIDDEN$2, function () {\n        if ($__default['default'](_this11).is(':visible')) {\n          _this11.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($__default['default'](target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = Modal;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n  };\n  /**\n   * A pattern that recognizes a commonly useful subset of URLs that are safe.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, len = regExp.length; i < len; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.6.0';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    customClass: '(string|function)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object',\n    popperConfig: '(null|object)'\n  };\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    customClass: '',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist,\n    popperConfig: null\n  };\n  var HOVER_STATE_SHOW = 'show';\n  var HOVER_STATE_OUT = 'out';\n  var Event = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var CLASS_NAME_FADE$2 = 'fade';\n  var CLASS_NAME_SHOW$4 = 'show';\n  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n  var SELECTOR_ARROW = '.arrow';\n  var TRIGGER_HOVER = 'hover';\n  var TRIGGER_FOCUS = 'focus';\n  var TRIGGER_CLICK = 'click';\n  var TRIGGER_MANUAL = 'manual';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tooltip = /*#__PURE__*/function () {\n    function Tooltip(element, config) {\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $__default['default'](event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $__default['default'](event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n      $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n      $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n      if (this.tip) {\n        $__default['default'](this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($__default['default'](this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $__default['default'](this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $__default['default'](tip).appendTo(container);\n        }\n\n        $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));\n        $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n        $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HOVER_STATE_OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $__default['default'](this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n\n      if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$__default['default'](content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($__default['default'](content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getPopperConfig = function _getPopperConfig(attachment) {\n      var _this3 = this;\n\n      var defaultBsConfig = {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: SELECTOR_ARROW\n          },\n          preventOverflow: {\n            boundariesElement: this.config.boundary\n          }\n        },\n        onCreate: function onCreate(data) {\n          if (data.originalPlacement !== data.placement) {\n            _this3._handlePopperPlacementChange(data);\n          }\n        },\n        onUpdate: function onUpdate(data) {\n          return _this3._handlePopperPlacementChange(data);\n        }\n      };\n      return _extends({}, defaultBsConfig, this.config.popperConfig);\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this4 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $__default['default'](this.config.container);\n      }\n\n      return $__default['default'](document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this5 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n            return _this5.toggle(event);\n          });\n        } else if (trigger !== TRIGGER_MANUAL) {\n          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n          $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n            return _this5._enter(event);\n          }).on(eventOut, _this5.config.selector, function (event) {\n            return _this5._leave(event);\n          });\n        }\n      });\n\n      this._hideModalHandler = function () {\n        if (_this5.element) {\n          _this5.hide();\n        }\n      };\n\n      $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n      if (this.config.selector) {\n        this.config = _extends({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n      }\n\n      if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n        context._hoverState = HOVER_STATE_SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $__default['default'](this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      this.tip = popperData.instance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $element.data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.6.0';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _extends({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var CLASS_NAME_FADE$3 = 'fade';\n  var CLASS_NAME_SHOW$5 = 'show';\n  var SELECTOR_TITLE = '.popover-header';\n  var SELECTOR_CONTENT = '.popover-body';\n  var Event$1 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Popover = /*#__PURE__*/function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n      $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $__default['default'](this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$1;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = Popover;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.6.0';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n  var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n  var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n  var CLASS_NAME_ACTIVE$2 = 'active';\n  var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n  var SELECTOR_NAV_LINKS = '.nav-link';\n  var SELECTOR_NAV_ITEMS = '.nav-item';\n  var SELECTOR_LIST_ITEMS = '.list-group-item';\n  var SELECTOR_DROPDOWN = '.dropdown';\n  var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n  var METHOD_OFFSET = 'offset';\n  var METHOD_POSITION = 'position';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var ScrollSpy = /*#__PURE__*/function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$8);\n      $__default['default'](this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n        var id = $__default['default'](config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $__default['default'](config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n        $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n        $link.addClass(CLASS_NAME_ACTIVE$2);\n      } else {\n        // Set triggered link as active\n        $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);\n      }\n\n      $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(CLASS_NAME_ACTIVE$2);\n      }).forEach(function (node) {\n        return node.classList.remove(CLASS_NAME_ACTIVE$2);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $__default['default'](this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $__default['default'](scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = ScrollSpy;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.6.0';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$9;\n  var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$9;\n  var EVENT_SHOW$3 = \"show\" + EVENT_KEY$9;\n  var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$9;\n  var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$7;\n  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n  var CLASS_NAME_ACTIVE$3 = 'active';\n  var CLASS_NAME_DISABLED$1 = 'disabled';\n  var CLASS_NAME_FADE$4 = 'fade';\n  var CLASS_NAME_SHOW$6 = 'show';\n  var SELECTOR_DROPDOWN$1 = '.dropdown';\n  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n  var SELECTOR_ACTIVE$2 = '.active';\n  var SELECTOR_ACTIVE_UL = '> li > .active';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tab = /*#__PURE__*/function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;\n        previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {\n        relatedTarget: this._element\n      });\n      var showEvent = $__default['default'].Event(EVENT_SHOW$3, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $__default['default'](previous).trigger(hideEvent);\n      }\n\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {\n          relatedTarget: previous\n        });\n        $__default['default'](previous).trigger(hiddenEvent);\n        $__default['default'](_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);\n        var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(CLASS_NAME_FADE$4)) {\n        element.classList.add(CLASS_NAME_SHOW$6);\n      }\n\n      if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n        var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));\n          $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $__default['default'](this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($__default['default'](this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$9] = Tab._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = Tab;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.6.0';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$a;\n  var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$a;\n  var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$a;\n  var EVENT_SHOW$4 = \"show\" + EVENT_KEY$a;\n  var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$a;\n  var CLASS_NAME_FADE$5 = 'fade';\n  var CLASS_NAME_HIDE = 'hide';\n  var CLASS_NAME_SHOW$7 = 'show';\n  var CLASS_NAME_SHOWING = 'showing';\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"toast\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Toast = /*#__PURE__*/function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$4);\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE$5);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n        _this._element.classList.add(CLASS_NAME_SHOW$7);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN$4);\n\n        if (_this._config.autohide) {\n          _this._timeout = setTimeout(function () {\n            _this.hide();\n          }, _this._config.delay);\n        }\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE);\n\n      Util.reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide() {\n      if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$4);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._close();\n    };\n\n    _proto.dispose = function dispose() {\n      this._clearTimeout();\n\n      if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        this._element.classList.remove(CLASS_NAME_SHOW$7);\n      }\n\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1);\n      $__default['default'].removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this2 = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n        return _this2.hide();\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this3 = this;\n\n      var complete = function complete() {\n        _this3._element.classList.add(CLASS_NAME_HIDE);\n\n        $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4);\n      };\n\n      this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._clearTimeout = function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$a] = Toast._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Toast;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n  exports.Util = Util;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.bundle.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap/js/bootstrap.js",
    "content": "/*!\n  * Bootstrap v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n}(this, (function (exports, $, Popper) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n  var EVENT_CLOSE = \"close\" + EVENT_KEY;\n  var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_ALERT = 'alert';\n  var CLASS_NAME_FADE = 'fade';\n  var CLASS_NAME_SHOW = 'show';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Alert = /*#__PURE__*/function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n      $__default['default'](element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n      if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Alert._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Alert;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.6.0';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY$1, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n  $__default['default'].fn[NAME$1].Constructor = Button;\n\n  $__default['default'].fn[NAME$1].noConflict = function () {\n    $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.6.0';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var DIRECTION_NEXT = 'next';\n  var DIRECTION_PREV = 'prev';\n  var DIRECTION_LEFT = 'left';\n  var DIRECTION_RIGHT = 'right';\n  var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n  var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n  var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n  var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n  var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n  var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n  var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n  var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n  var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n  var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n  var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n  var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n  var CLASS_NAME_CAROUSEL = 'carousel';\n  var CLASS_NAME_ACTIVE$1 = 'active';\n  var CLASS_NAME_SLIDE = 'slide';\n  var CLASS_NAME_RIGHT = 'carousel-item-right';\n  var CLASS_NAME_LEFT = 'carousel-item-left';\n  var CLASS_NAME_NEXT = 'carousel-item-next';\n  var CLASS_NAME_PREV = 'carousel-item-prev';\n  var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n  var SELECTOR_ACTIVE$1 = '.active';\n  var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n  var SELECTOR_ITEM = '.carousel-item';\n  var SELECTOR_ITEM_IMG = '.carousel-item img';\n  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n  var SELECTOR_INDICATORS = '.carousel-indicators';\n  var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n  var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Carousel = /*#__PURE__*/function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n\n      if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._updateInterval();\n\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $__default['default'](this._element).one(EVENT_SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'](this._element).off(EVENT_KEY$2);\n      $__default['default'].removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX;\n      this.touchDeltaX = 0; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(EVENT_MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === DIRECTION_NEXT;\n      var isPrevDirection = direction === DIRECTION_PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === DIRECTION_PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n      var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $__default['default'](this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n        $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n        }\n      }\n    };\n\n    _proto._updateInterval = function _updateInterval() {\n      var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n      if (elementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n        this._config.interval = elementInterval;\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval;\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === DIRECTION_NEXT) {\n        directionalClassName = CLASS_NAME_LEFT;\n        orderClassName = CLASS_NAME_NEXT;\n        eventDirectionName = DIRECTION_LEFT;\n      } else {\n        directionalClassName = CLASS_NAME_RIGHT;\n        orderClassName = CLASS_NAME_PREV;\n        eventDirectionName = DIRECTION_RIGHT;\n      }\n\n      if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      this._activeElement = nextElement;\n      var slidEvent = $__default['default'].Event(EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n        $__default['default'](nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $__default['default'](activeElement).addClass(directionalClassName);\n        $__default['default'](nextElement).addClass(directionalClassName);\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n          $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n          $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $__default['default'](_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n        $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n        this._isSliding = false;\n        $__default['default'](this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$2);\n\n        var _config = _extends({}, Default, $__default['default'](this).data());\n\n        if (typeof config === 'object') {\n          _config = _extends({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $__default['default'](this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $__default['default'](selector)[0];\n\n      if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n        return;\n      }\n\n      var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($__default['default'](target), config);\n\n      if (slideIndex) {\n        $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n    var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $__default['default'](carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n  $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n  $__default['default'].fn[NAME$2].noConflict = function () {\n    $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.6.0';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n  var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n  var CLASS_NAME_SHOW$1 = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$3);\n\n        var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n  $__default['default'].fn[NAME$3].noConflict = function () {\n    $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.6.0';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n  var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n  var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n  var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n  var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n  var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW$2 = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper__default['default'] === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$4);\n      $__default['default'](this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME$4].noConflict = function () {\n    $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.6.0';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n  var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n  var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n  var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n  var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n  var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n  var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n  var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n  var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n  var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n  var CLASS_NAME_BACKDROP = 'modal-backdrop';\n  var CLASS_NAME_OPEN = 'modal-open';\n  var CLASS_NAME_FADE$1 = 'fade';\n  var CLASS_NAME_SHOW$3 = 'show';\n  var CLASS_NAME_STATIC = 'modal-static';\n  var SELECTOR_DIALOG = '.modal-dialog';\n  var SELECTOR_MODAL_BODY = '.modal-body';\n  var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n  var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n  var SELECTOR_STICKY_CONTENT = '.sticky-top';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(SELECTOR_DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n        relatedTarget: relatedTarget\n      });\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n        $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n          if ($__default['default'](event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n      $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $__default['default'](htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `EVENT_CLICK_DATA_API` event that should remain\n       */\n\n      $__default['default'](document).off(EVENT_FOCUSIN);\n      $__default['default'].removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n      var _this3 = this;\n\n      var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n      $__default['default'](this._element).trigger(hideEventPrevented);\n\n      if (hideEventPrevented.isDefaultPrevented()) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n      $__default['default'](this._element).off(Util.TRANSITION_END);\n      $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n        _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n        if (!isModalOverflowing) {\n          $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n            _this3._element.style.overflowY = '';\n          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n        }\n      }).emulateTransitionEnd(modalTransitionDuration);\n\n      this._element.focus();\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this4 = this;\n\n      var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n        modalBody.scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this4._config.focus) {\n          _this4._element.focus();\n        }\n\n        _this4._isTransitioning = false;\n        $__default['default'](_this4._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this5 = this;\n\n      $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n      .on(EVENT_FOCUSIN, function (event) {\n        if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n          _this5._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this6.hide();\n          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n            _this6._triggerBackdropTransition();\n          }\n        });\n      } else if (!this._isShown) {\n        $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this7 = this;\n\n      if (this._isShown) {\n        $__default['default'](window).on(EVENT_RESIZE, function (event) {\n          return _this7.handleUpdate(event);\n        });\n      } else {\n        $__default['default'](window).off(EVENT_RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this8 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n        _this8._resetAdjustments();\n\n        _this8._resetScrollbar();\n\n        $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $__default['default'](this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this9 = this;\n\n      var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = CLASS_NAME_BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $__default['default'](this._backdrop).appendTo(document.body);\n        $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n          if (_this9._ignoreBackdropClick) {\n            _this9._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this9._config.backdrop === 'static') {\n            _this9._triggerBackdropTransition();\n          } else {\n            _this9.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n        var callbackRemove = function callbackRemove() {\n          _this9._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this10 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n        $__default['default'](fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $__default['default'](element).css('padding-right');\n          $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $__default['default'](stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $__default['default'](element).css('margin-right');\n          $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $__default['default'](document.body).css('padding-right');\n        $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n      $__default['default'](fixedContent).each(function (index, element) {\n        var padding = $__default['default'](element).data('padding-right');\n        $__default['default'](element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n      $__default['default'](elements).each(function (index, element) {\n        var margin = $__default['default'](element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $__default['default'](document.body).data('padding-right');\n      $__default['default'](document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$5);\n\n        var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $__default['default'](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n    var _this11 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(EVENT_HIDDEN$2, function () {\n        if ($__default['default'](_this11).is(':visible')) {\n          _this11.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($__default['default'](target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n  $__default['default'].fn[NAME$5].Constructor = Modal;\n\n  $__default['default'].fn[NAME$5].noConflict = function () {\n    $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n  };\n  /**\n   * A pattern that recognizes a commonly useful subset of URLs that are safe.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, len = regExp.length; i < len; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.6.0';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    customClass: '(string|function)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object',\n    popperConfig: '(null|object)'\n  };\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    customClass: '',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist,\n    popperConfig: null\n  };\n  var HOVER_STATE_SHOW = 'show';\n  var HOVER_STATE_OUT = 'out';\n  var Event = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var CLASS_NAME_FADE$2 = 'fade';\n  var CLASS_NAME_SHOW$4 = 'show';\n  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n  var SELECTOR_ARROW = '.arrow';\n  var TRIGGER_HOVER = 'hover';\n  var TRIGGER_FOCUS = 'focus';\n  var TRIGGER_CLICK = 'click';\n  var TRIGGER_MANUAL = 'manual';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tooltip = /*#__PURE__*/function () {\n    function Tooltip(element, config) {\n      if (typeof Popper__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $__default['default'](event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $__default['default'](event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n      $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n      $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n      if (this.tip) {\n        $__default['default'](this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($__default['default'](this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $__default['default'](this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $__default['default'](tip).appendTo(container);\n        }\n\n        $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));\n        $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n        $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HOVER_STATE_OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $__default['default'](this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n\n      if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$__default['default'](content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($__default['default'](content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getPopperConfig = function _getPopperConfig(attachment) {\n      var _this3 = this;\n\n      var defaultBsConfig = {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: SELECTOR_ARROW\n          },\n          preventOverflow: {\n            boundariesElement: this.config.boundary\n          }\n        },\n        onCreate: function onCreate(data) {\n          if (data.originalPlacement !== data.placement) {\n            _this3._handlePopperPlacementChange(data);\n          }\n        },\n        onUpdate: function onUpdate(data) {\n          return _this3._handlePopperPlacementChange(data);\n        }\n      };\n      return _extends({}, defaultBsConfig, this.config.popperConfig);\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this4 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $__default['default'](this.config.container);\n      }\n\n      return $__default['default'](document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this5 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n            return _this5.toggle(event);\n          });\n        } else if (trigger !== TRIGGER_MANUAL) {\n          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n          $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n            return _this5._enter(event);\n          }).on(eventOut, _this5.config.selector, function (event) {\n            return _this5._leave(event);\n          });\n        }\n      });\n\n      this._hideModalHandler = function () {\n        if (_this5.element) {\n          _this5.hide();\n        }\n      };\n\n      $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n      if (this.config.selector) {\n        this.config = _extends({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n      }\n\n      if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n        context._hoverState = HOVER_STATE_SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default['default'](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $__default['default'](this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      this.tip = popperData.instance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $element.data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n  $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n  $__default['default'].fn[NAME$6].noConflict = function () {\n    $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.6.0';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _extends({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var CLASS_NAME_FADE$3 = 'fade';\n  var CLASS_NAME_SHOW$5 = 'show';\n  var SELECTOR_TITLE = '.popover-header';\n  var SELECTOR_CONTENT = '.popover-body';\n  var Event$1 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Popover = /*#__PURE__*/function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default['default'](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n      $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default['default'](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $__default['default'](this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$1;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n  $__default['default'].fn[NAME$7].Constructor = Popover;\n\n  $__default['default'].fn[NAME$7].noConflict = function () {\n    $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.6.0';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n  var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n  var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n  var CLASS_NAME_ACTIVE$2 = 'active';\n  var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n  var SELECTOR_NAV_LINKS = '.nav-link';\n  var SELECTOR_NAV_ITEMS = '.nav-item';\n  var SELECTOR_LIST_ITEMS = '.list-group-item';\n  var SELECTOR_DROPDOWN = '.dropdown';\n  var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n  var METHOD_OFFSET = 'offset';\n  var METHOD_POSITION = 'position';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var ScrollSpy = /*#__PURE__*/function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$8);\n      $__default['default'](this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n        var id = $__default['default'](config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $__default['default'](config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n        $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n        $link.addClass(CLASS_NAME_ACTIVE$2);\n      } else {\n        // Set triggered link as active\n        $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);\n      }\n\n      $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(CLASS_NAME_ACTIVE$2);\n      }).forEach(function (node) {\n        return node.classList.remove(CLASS_NAME_ACTIVE$2);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $__default['default'](this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $__default['default'](scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $__default['default'].fn[NAME$8].Constructor = ScrollSpy;\n\n  $__default['default'].fn[NAME$8].noConflict = function () {\n    $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.6.0';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n  var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$9;\n  var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$9;\n  var EVENT_SHOW$3 = \"show\" + EVENT_KEY$9;\n  var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$9;\n  var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$7;\n  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n  var CLASS_NAME_ACTIVE$3 = 'active';\n  var CLASS_NAME_DISABLED$1 = 'disabled';\n  var CLASS_NAME_FADE$4 = 'fade';\n  var CLASS_NAME_SHOW$6 = 'show';\n  var SELECTOR_DROPDOWN$1 = '.dropdown';\n  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n  var SELECTOR_ACTIVE$2 = '.active';\n  var SELECTOR_ACTIVE_UL = '> li > .active';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Tab = /*#__PURE__*/function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;\n        previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {\n        relatedTarget: this._element\n      });\n      var showEvent = $__default['default'].Event(EVENT_SHOW$3, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $__default['default'](previous).trigger(hideEvent);\n      }\n\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {\n          relatedTarget: previous\n        });\n        $__default['default'](previous).trigger(hiddenEvent);\n        $__default['default'](_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);\n        var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(CLASS_NAME_FADE$4)) {\n        element.classList.add(CLASS_NAME_SHOW$6);\n      }\n\n      if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n        var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));\n          $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $__default['default'](this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($__default['default'](this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME$9] = Tab._jQueryInterface;\n  $__default['default'].fn[NAME$9].Constructor = Tab;\n\n  $__default['default'].fn[NAME$9].noConflict = function () {\n    $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.6.0';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n  var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$a;\n  var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$a;\n  var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$a;\n  var EVENT_SHOW$4 = \"show\" + EVENT_KEY$a;\n  var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$a;\n  var CLASS_NAME_FADE$5 = 'fade';\n  var CLASS_NAME_HIDE = 'hide';\n  var CLASS_NAME_SHOW$7 = 'show';\n  var CLASS_NAME_SHOWING = 'showing';\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"toast\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Toast = /*#__PURE__*/function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      var showEvent = $__default['default'].Event(EVENT_SHOW$4);\n      $__default['default'](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE$5);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n        _this._element.classList.add(CLASS_NAME_SHOW$7);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN$4);\n\n        if (_this._config.autohide) {\n          _this._timeout = setTimeout(function () {\n            _this.hide();\n          }, _this._config.delay);\n        }\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE);\n\n      Util.reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide() {\n      if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        return;\n      }\n\n      var hideEvent = $__default['default'].Event(EVENT_HIDE$4);\n      $__default['default'](this._element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._close();\n    };\n\n    _proto.dispose = function dispose() {\n      this._clearTimeout();\n\n      if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n        this._element.classList.remove(CLASS_NAME_SHOW$7);\n      }\n\n      $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1);\n      $__default['default'].removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this2 = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n        return _this2.hide();\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this3 = this;\n\n      var complete = function complete() {\n        _this3._element.classList.add(CLASS_NAME_HIDE);\n\n        $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4);\n      };\n\n      this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._clearTimeout = function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'].fn[NAME$a] = Toast._jQueryInterface;\n  $__default['default'].fn[NAME$a].Constructor = Toast;\n\n  $__default['default'].fn[NAME$a].noConflict = function () {\n    $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n  exports.Util = Util;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.css",
    "content": "/*!\n * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.\n * @package bootstrap-colorpicker\n * @version v3.2.0\n * @license MIT\n * @link https://itsjavi.com/bootstrap-colorpicker/\n * @link https://github.com/itsjavi/bootstrap-colorpicker.git\n */\n.colorpicker {\n  position: relative;\n  display: none;\n  font-size: inherit;\n  color: inherit;\n  text-align: left;\n  list-style: none;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  padding: .75rem .75rem;\n  width: 148px;\n  border-radius: 4px;\n  -webkit-box-sizing: content-box;\n          box-sizing: content-box; }\n\n.colorpicker.colorpicker-disabled,\n.colorpicker.colorpicker-disabled * {\n  cursor: default !important; }\n\n.colorpicker div {\n  position: relative; }\n\n.colorpicker-popup {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  float: left;\n  margin-top: 1px;\n  z-index: 1060; }\n\n.colorpicker-popup.colorpicker-bs-popover-content {\n  position: relative;\n  top: auto;\n  left: auto;\n  float: none;\n  margin: 0;\n  z-index: initial;\n  border: none;\n  padding: 0.25rem 0;\n  border-radius: 0;\n  background: none;\n  -webkit-box-shadow: none;\n          box-shadow: none; }\n\n.colorpicker:before,\n.colorpicker:after {\n  content: \"\";\n  display: table;\n  clear: both;\n  line-height: 0; }\n\n.colorpicker-clear {\n  clear: both;\n  display: block; }\n\n.colorpicker:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n  top: -7px;\n  left: auto;\n  right: 6px; }\n\n.colorpicker:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  position: absolute;\n  top: -6px;\n  left: auto;\n  right: 7px; }\n\n.colorpicker.colorpicker-with-alpha {\n  width: 170px; }\n\n.colorpicker.colorpicker-with-alpha .colorpicker-alpha {\n  display: block; }\n\n.colorpicker-saturation {\n  position: relative;\n  width: 126px;\n  height: 126px;\n  /* FF3.6+ */\n  /* Chrome,Safari4+ */\n  /* Chrome10+,Safari5.1+ */\n  /* Opera 11.10+ */\n  /* IE10+ */\n  background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(black)), -webkit-gradient(linear, left top, right top, from(white), to(rgba(255, 255, 255, 0)));\n  background: linear-gradient(to bottom, transparent 0%, black 100%), linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);\n  /* W3C */\n  cursor: crosshair;\n  float: left;\n  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n  margin-bottom: 6px; }\n  .colorpicker-saturation .colorpicker-guide {\n    display: block;\n    height: 6px;\n    width: 6px;\n    border-radius: 6px;\n    border: 1px solid #000;\n    -webkit-box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.8);\n            box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.8);\n    position: absolute;\n    top: 0;\n    left: 0;\n    margin: -3px 0 0 -3px; }\n\n.colorpicker-hue,\n.colorpicker-alpha {\n  position: relative;\n  width: 16px;\n  height: 126px;\n  float: left;\n  cursor: row-resize;\n  margin-left: 6px;\n  margin-bottom: 6px; }\n\n.colorpicker-alpha-color {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%; }\n\n.colorpicker-hue,\n.colorpicker-alpha-color {\n  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); }\n\n.colorpicker-hue .colorpicker-guide,\n.colorpicker-alpha .colorpicker-guide {\n  display: block;\n  height: 4px;\n  background: rgba(255, 255, 255, 0.8);\n  border: 1px solid rgba(0, 0, 0, 0.4);\n  position: absolute;\n  top: 0;\n  left: 0;\n  margin-left: -2px;\n  margin-top: -2px;\n  right: -2px;\n  z-index: 1; }\n\n.colorpicker-hue {\n  /* FF3.6+ */\n  /* Chrome,Safari4+ */\n  /* Chrome10+,Safari5.1+ */\n  /* Opera 11.10+ */\n  /* IE10+ */\n  background: -webkit-gradient(linear, left bottom, left top, from(red), color-stop(8%, #ff8000), color-stop(17%, yellow), color-stop(25%, #80ff00), color-stop(33%, lime), color-stop(42%, #00ff80), color-stop(50%, cyan), color-stop(58%, #0080ff), color-stop(67%, blue), color-stop(75%, #8000ff), color-stop(83%, magenta), color-stop(92%, #ff0080), to(red));\n  background: linear-gradient(to top, red 0%, #ff8000 8%, yellow 17%, #80ff00 25%, lime 33%, #00ff80 42%, cyan 50%, #0080ff 58%, blue 67%, #8000ff 75%, magenta 83%, #ff0080 92%, red 100%);\n  /* W3C */ }\n\n.colorpicker-alpha {\n  background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), white;\n  background-size: 10px 10px;\n  background-position: 0 0, 5px 5px;\n  display: none; }\n\n.colorpicker-bar {\n  min-height: 16px;\n  margin: 6px 0 0 0;\n  clear: both;\n  text-align: center;\n  font-size: 10px;\n  line-height: normal;\n  max-width: 100%;\n  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); }\n  .colorpicker-bar:before {\n    content: \"\";\n    display: table;\n    clear: both; }\n\n.colorpicker-bar.colorpicker-bar-horizontal {\n  height: 126px;\n  width: 16px;\n  margin: 0 0 6px 0;\n  float: left; }\n\n.colorpicker-input-addon {\n  position: relative; }\n\n.colorpicker-input-addon i {\n  display: inline-block;\n  cursor: pointer;\n  vertical-align: text-top;\n  height: 16px;\n  width: 16px;\n  position: relative; }\n\n.colorpicker-input-addon:before {\n  content: \"\";\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  display: inline-block;\n  vertical-align: text-top;\n  background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), white;\n  background-size: 10px 10px;\n  background-position: 0 0, 5px 5px; }\n\n.colorpicker.colorpicker-inline {\n  position: relative;\n  display: inline-block;\n  float: none;\n  z-index: auto;\n  vertical-align: text-bottom; }\n\n.colorpicker.colorpicker-horizontal {\n  width: 126px;\n  height: auto; }\n\n.colorpicker.colorpicker-horizontal .colorpicker-bar {\n  width: 126px; }\n\n.colorpicker.colorpicker-horizontal .colorpicker-saturation {\n  float: none;\n  margin-bottom: 0; }\n\n.colorpicker.colorpicker-horizontal .colorpicker-hue,\n.colorpicker.colorpicker-horizontal .colorpicker-alpha {\n  float: none;\n  width: 126px;\n  height: 16px;\n  cursor: col-resize;\n  margin-left: 0;\n  margin-top: 6px;\n  margin-bottom: 0; }\n\n.colorpicker.colorpicker-horizontal .colorpicker-hue .colorpicker-guide,\n.colorpicker.colorpicker-horizontal .colorpicker-alpha .colorpicker-guide {\n  position: absolute;\n  display: block;\n  bottom: -2px;\n  left: 0;\n  right: auto;\n  height: auto;\n  width: 4px; }\n\n.colorpicker.colorpicker-horizontal .colorpicker-hue {\n  /* FF3.6+ */\n  /* Chrome,Safari4+ */\n  /* Chrome10+,Safari5.1+ */\n  /* Opera 11.10+ */\n  /* IE10+ */\n  background: -webkit-gradient(linear, right top, left top, from(red), color-stop(8%, #ff8000), color-stop(17%, yellow), color-stop(25%, #80ff00), color-stop(33%, lime), color-stop(42%, #00ff80), color-stop(50%, cyan), color-stop(58%, #0080ff), color-stop(67%, blue), color-stop(75%, #8000ff), color-stop(83%, magenta), color-stop(92%, #ff0080), to(red));\n  background: linear-gradient(to left, red 0%, #ff8000 8%, yellow 17%, #80ff00 25%, lime 33%, #00ff80 42%, cyan 50%, #0080ff 58%, blue 67%, #8000ff 75%, magenta 83%, #ff0080 92%, red 100%);\n  /* W3C */ }\n\n.colorpicker.colorpicker-horizontal .colorpicker-alpha {\n  background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), white;\n  background-size: 10px 10px;\n  background-position: 0 0, 5px 5px; }\n\n.colorpicker-inline:before,\n.colorpicker-no-arrow:before,\n.colorpicker-popup.colorpicker-bs-popover-content:before {\n  content: none;\n  display: none; }\n\n.colorpicker-inline:after,\n.colorpicker-no-arrow:after,\n.colorpicker-popup.colorpicker-bs-popover-content:after {\n  content: none;\n  display: none; }\n\n.colorpicker-alpha,\n.colorpicker-saturation,\n.colorpicker-hue {\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n\n.colorpicker.colorpicker-visible,\n.colorpicker-alpha.colorpicker-visible,\n.colorpicker-saturation.colorpicker-visible,\n.colorpicker-hue.colorpicker-visible,\n.colorpicker-bar.colorpicker-visible {\n  display: block; }\n\n.colorpicker.colorpicker-hidden,\n.colorpicker-alpha.colorpicker-hidden,\n.colorpicker-saturation.colorpicker-hidden,\n.colorpicker-hue.colorpicker-hidden,\n.colorpicker-bar.colorpicker-hidden {\n  display: none; }\n\n.colorpicker-inline.colorpicker-visible {\n  display: inline-block; }\n\n.colorpicker.colorpicker-disabled:after {\n  border: none;\n  content: '';\n  display: block;\n  width: 100%;\n  height: 100%;\n  background: rgba(233, 236, 239, 0.33);\n  top: 0;\n  left: 0;\n  right: auto;\n  z-index: 2;\n  position: absolute; }\n\n.colorpicker.colorpicker-disabled .colorpicker-guide {\n  display: none; }\n\n/** EXTENSIONS **/\n.colorpicker-preview {\n  background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), white;\n  background-size: 10px 10px;\n  background-position: 0 0, 5px 5px; }\n\n.colorpicker-preview > div {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%; }\n\n.colorpicker-bar.colorpicker-swatches {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n  height: auto; }\n\n.colorpicker-swatches--inner {\n  clear: both;\n  margin-top: -6px; }\n\n.colorpicker-swatch {\n  position: relative;\n  cursor: pointer;\n  float: left;\n  height: 16px;\n  width: 16px;\n  margin-right: 6px;\n  margin-top: 6px;\n  margin-left: 0;\n  display: block;\n  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);\n  background: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 0), white;\n  background-size: 10px 10px;\n  background-position: 0 0, 5px 5px; }\n\n.colorpicker-swatch--inner {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%; }\n\n.colorpicker-swatch:nth-of-type(7n+0) {\n  margin-right: 0; }\n\n.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(7n+0) {\n  margin-right: 6px; }\n\n.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(8n+0) {\n  margin-right: 0; }\n\n.colorpicker-horizontal .colorpicker-swatch:nth-of-type(6n+0) {\n  margin-right: 0; }\n\n.colorpicker-horizontal .colorpicker-swatch:nth-of-type(7n+0) {\n  margin-right: 6px; }\n\n.colorpicker-horizontal .colorpicker-swatch:nth-of-type(8n+0) {\n  margin-right: 6px; }\n\n.colorpicker-swatch:last-of-type:after {\n  content: \"\";\n  display: table;\n  clear: both; }\n\n*[dir='rtl'] .colorpicker-element input,\n.colorpicker-element[dir='rtl'] input,\n.colorpicker-element input[dir='rtl'] {\n  direction: ltr;\n  text-align: right; }\n\n/*# sourceMappingURL=bootstrap-colorpicker.css.map */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js",
    "content": "/*!\n * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.\n * @package bootstrap-colorpicker\n * @version v3.2.0\n * @license MIT\n * @link https://itsjavi.com/bootstrap-colorpicker/\n * @link https://github.com/itsjavi/bootstrap-colorpicker.git\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"bootstrap-colorpicker\", [\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"bootstrap-colorpicker\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"bootstrap-colorpicker\"] = factory(root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Colorpicker extension class.\n */\nvar Extension = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   * @param {Object} options\n   */\n  function Extension(colorpicker) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Extension);\n\n    /**\n     * The colorpicker instance\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * Extension options\n     *\n     * @type {Object}\n     */\n    this.options = options;\n\n    if (!(this.colorpicker.element && this.colorpicker.element.length)) {\n      throw new Error('Extension: this.colorpicker.element is not valid');\n    }\n\n    this.colorpicker.element.on('colorpickerCreate.colorpicker-ext', _jquery2.default.proxy(this.onCreate, this));\n    this.colorpicker.element.on('colorpickerDestroy.colorpicker-ext', _jquery2.default.proxy(this.onDestroy, this));\n    this.colorpicker.element.on('colorpickerUpdate.colorpicker-ext', _jquery2.default.proxy(this.onUpdate, this));\n    this.colorpicker.element.on('colorpickerChange.colorpicker-ext', _jquery2.default.proxy(this.onChange, this));\n    this.colorpicker.element.on('colorpickerInvalid.colorpicker-ext', _jquery2.default.proxy(this.onInvalid, this));\n    this.colorpicker.element.on('colorpickerShow.colorpicker-ext', _jquery2.default.proxy(this.onShow, this));\n    this.colorpicker.element.on('colorpickerHide.colorpicker-ext', _jquery2.default.proxy(this.onHide, this));\n    this.colorpicker.element.on('colorpickerEnable.colorpicker-ext', _jquery2.default.proxy(this.onEnable, this));\n    this.colorpicker.element.on('colorpickerDisable.colorpicker-ext', _jquery2.default.proxy(this.onDisable, this));\n  }\n\n  /**\n   * Function called every time a new color needs to be created.\n   * Return false to skip this resolver and continue with other extensions' ones\n   * or return anything else to consider the color resolved.\n   *\n   * @param {ColorItem|String|*} color\n   * @param {boolean} realColor if true, the color should resolve into a real (not named) color code\n   * @return {ColorItem|String|*}\n   */\n\n\n  _createClass(Extension, [{\n    key: 'resolveColor',\n    value: function resolveColor(color) {\n      var realColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      return false;\n    }\n\n    /**\n     * Method called after the colorpicker is created\n     *\n     * @listens Colorpicker#colorpickerCreate\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onCreate',\n    value: function onCreate(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker is destroyed\n     *\n     * @listens Colorpicker#colorpickerDestroy\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onDestroy',\n    value: function onDestroy(event) {\n      this.colorpicker.element.off('.colorpicker-ext');\n    }\n\n    /**\n     * Method called after the colorpicker is updated\n     *\n     * @listens Colorpicker#colorpickerUpdate\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onUpdate',\n    value: function onUpdate(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker color is changed\n     *\n     * @listens Colorpicker#colorpickerChange\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onChange',\n    value: function onChange(event) {}\n    // to be extended\n\n\n    /**\n     * Method called when the colorpicker color is invalid\n     *\n     * @listens Colorpicker#colorpickerInvalid\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onInvalid',\n    value: function onInvalid(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker is hidden\n     *\n     * @listens Colorpicker#colorpickerHide\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onHide',\n    value: function onHide(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker is shown\n     *\n     * @listens Colorpicker#colorpickerShow\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onShow',\n    value: function onShow(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker is disabled\n     *\n     * @listens Colorpicker#colorpickerDisable\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onDisable',\n    value: function onDisable(event) {}\n    // to be extended\n\n\n    /**\n     * Method called after the colorpicker is enabled\n     *\n     * @listens Colorpicker#colorpickerEnable\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onEnable',\n    value: function onEnable(event) {\n      // to be extended\n    }\n  }]);\n\n  return Extension;\n}();\n\nexports.default = Extension;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ColorItem = exports.HSVAColor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Color manipulation class, specific for Bootstrap Colorpicker\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */\n\n\nvar _color = __webpack_require__(16);\n\nvar _color2 = _interopRequireDefault(_color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * HSVA color data class, containing the hue, saturation, value and alpha\n * information.\n */\nvar HSVAColor = function () {\n  /**\n   * @param {number|int} h\n   * @param {number|int} s\n   * @param {number|int} v\n   * @param {number|int} a\n   */\n  function HSVAColor(h, s, v, a) {\n    _classCallCheck(this, HSVAColor);\n\n    this.h = isNaN(h) ? 0 : h;\n    this.s = isNaN(s) ? 0 : s;\n    this.v = isNaN(v) ? 0 : v;\n    this.a = isNaN(h) ? 1 : a;\n  }\n\n  _createClass(HSVAColor, [{\n    key: 'toString',\n    value: function toString() {\n      return this.h + ', ' + this.s + '%, ' + this.v + '%, ' + this.a;\n    }\n  }]);\n\n  return HSVAColor;\n}();\n\n/**\n * HSVA color manipulation\n */\n\n\nvar ColorItem = function () {\n  _createClass(ColorItem, [{\n    key: 'api',\n\n\n    /**\n     * Applies a method of the QixColor API and returns a new Color object or\n     * the return value of the method call.\n     *\n     * If no argument is provided, the internal QixColor object is returned.\n     *\n     * @param {String} fn QixColor function name\n     * @param args QixColor function arguments\n     * @example let darkerColor = color.api('darken', 0.25);\n     * @example let luminosity = color.api('luminosity');\n     * @example color = color.api('negate');\n     * @example let qColor = color.api().negate();\n     * @returns {ColorItem|QixColor|*}\n     */\n    value: function api(fn) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (arguments.length === 0) {\n        return this._color;\n      }\n\n      var result = this._color[fn].apply(this._color, args);\n\n      if (!(result instanceof _color2.default)) {\n        // return result of the method call\n        return result;\n      }\n\n      return new ColorItem(result, this.format);\n    }\n\n    /**\n     * Returns the original ColorItem constructor data,\n     * plus a 'valid' flag to know if it's valid or not.\n     *\n     * @returns {{color: *, format: String, valid: boolean}}\n     */\n\n  }, {\n    key: 'original',\n    get: function get() {\n      return this._original;\n    }\n\n    /**\n     * @param {ColorItem|HSVAColor|QixColor|String|*|null} color Color data\n     * @param {String|null} format Color model to convert to by default. Supported: 'rgb', 'hsl', 'hex'.\n     */\n\n  }], [{\n    key: 'HSVAColor',\n\n\n    /**\n     * Returns the HSVAColor class\n     *\n     * @static\n     * @example let colorData = new ColorItem.HSVAColor(360, 100, 100, 1);\n     * @returns {HSVAColor}\n     */\n    get: function get() {\n      return HSVAColor;\n    }\n  }]);\n\n  function ColorItem() {\n    var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, ColorItem);\n\n    this.replace(color, format);\n  }\n\n  /**\n   * Replaces the internal QixColor object with a new one.\n   * This also replaces the internal original color data.\n   *\n   * @param {ColorItem|HSVAColor|QixColor|String|*|null} color Color data to be parsed (if needed)\n   * @param {String|null} format Color model to convert to by default. Supported: 'rgb', 'hsl', 'hex'.\n   * @example color.replace('rgb(255,0,0)', 'hsl');\n   * @example color.replace(hsvaColorData);\n   */\n\n\n  _createClass(ColorItem, [{\n    key: 'replace',\n    value: function replace(color) {\n      var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n      format = ColorItem.sanitizeFormat(format);\n\n      /**\n       * @type {{color: *, format: String}}\n       * @private\n       */\n      this._original = {\n        color: color,\n        format: format,\n        valid: true\n      };\n      /**\n       * @type {QixColor}\n       * @private\n       */\n      this._color = ColorItem.parse(color);\n\n      if (this._color === null) {\n        this._color = (0, _color2.default)();\n        this._original.valid = false;\n        return;\n      }\n\n      /**\n       * @type {*|string}\n       * @private\n       */\n      this._format = format ? format : ColorItem.isHex(color) ? 'hex' : this._color.model;\n    }\n\n    /**\n     * Parses the color returning a Qix Color object or null if cannot be\n     * parsed.\n     *\n     * @param {ColorItem|HSVAColor|QixColor|String|*|null} color Color data\n     * @example let qColor = ColorItem.parse('rgb(255,0,0)');\n     * @static\n     * @returns {QixColor|null}\n     */\n\n  }, {\n    key: 'isValid',\n\n\n    /**\n     * Returns true if the color is valid, false if not.\n     *\n     * @returns {boolean}\n     */\n    value: function isValid() {\n      return this._original.valid === true;\n    }\n\n    /**\n     * Hue value from 0 to 360\n     *\n     * @returns {int}\n     */\n\n  }, {\n    key: 'setHueRatio',\n\n\n    /**\n     * Sets the hue ratio, where 1.0 is 0, 0.5 is 180 and 0.0 is 360.\n     *\n     * @ignore\n     * @param {number} h Ratio from 1.0 to 0.0\n     */\n    value: function setHueRatio(h) {\n      this.hue = (1 - h) * 360;\n    }\n\n    /**\n     * Sets the saturation value\n     *\n     * @param {int} value Integer from 0 to 100\n     */\n\n  }, {\n    key: 'setSaturationRatio',\n\n\n    /**\n     * Sets the saturation ratio, where 1.0 is 100 and 0.0 is 0.\n     *\n     * @ignore\n     * @param {number} s Ratio from 0.0 to 1.0\n     */\n    value: function setSaturationRatio(s) {\n      this.saturation = s * 100;\n    }\n\n    /**\n     * Sets the 'value' channel value\n     *\n     * @param {int} value Integer from 0 to 100\n     */\n\n  }, {\n    key: 'setValueRatio',\n\n\n    /**\n     * Sets the value ratio, where 1.0 is 0 and 0.0 is 100.\n     *\n     * @ignore\n     * @param {number} v Ratio from 1.0 to 0.0\n     */\n    value: function setValueRatio(v) {\n      this.value = (1 - v) * 100;\n    }\n\n    /**\n     * Sets the alpha value. It will be rounded to 2 decimals.\n     *\n     * @param {int} value Float from 0.0 to 1.0\n     */\n\n  }, {\n    key: 'setAlphaRatio',\n\n\n    /**\n     * Sets the alpha ratio, where 1.0 is 0.0 and 0.0 is 1.0.\n     *\n     * @ignore\n     * @param {number} a Ratio from 1.0 to 0.0\n     */\n    value: function setAlphaRatio(a) {\n      this.alpha = 1 - a;\n    }\n\n    /**\n     * Sets the default color format\n     *\n     * @param {String} value Supported: 'rgb', 'hsl', 'hex'\n     */\n\n  }, {\n    key: 'isDesaturated',\n\n\n    /**\n     * Returns true if the saturation value is zero, false otherwise\n     *\n     * @returns {boolean}\n     */\n    value: function isDesaturated() {\n      return this.saturation === 0;\n    }\n\n    /**\n     * Returns true if the alpha value is zero, false otherwise\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isTransparent',\n    value: function isTransparent() {\n      return this.alpha === 0;\n    }\n\n    /**\n     * Returns true if the alpha value is numeric and less than 1, false otherwise\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasTransparency',\n    value: function hasTransparency() {\n      return this.hasAlpha() && this.alpha < 1;\n    }\n\n    /**\n     * Returns true if the alpha value is numeric, false otherwise\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasAlpha',\n    value: function hasAlpha() {\n      return !isNaN(this.alpha);\n    }\n\n    /**\n     * Returns a new HSVAColor object, based on the current color\n     *\n     * @returns {HSVAColor}\n     */\n\n  }, {\n    key: 'toObject',\n    value: function toObject() {\n      return new HSVAColor(this.hue, this.saturation, this.value, this.alpha);\n    }\n\n    /**\n     * Alias of toObject()\n     *\n     * @returns {HSVAColor}\n     */\n\n  }, {\n    key: 'toHsva',\n    value: function toHsva() {\n      return this.toObject();\n    }\n\n    /**\n     * Returns a new HSVAColor object with the ratio values (from 0.0 to 1.0),\n     * based on the current color.\n     *\n     * @ignore\n     * @returns {HSVAColor}\n     */\n\n  }, {\n    key: 'toHsvaRatio',\n    value: function toHsvaRatio() {\n      return new HSVAColor(this.hue / 360, this.saturation / 100, this.value / 100, this.alpha);\n    }\n\n    /**\n     * Converts the current color to its string representation,\n     * using the internal format of this instance.\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString() {\n      return this.string();\n    }\n\n    /**\n     * Converts the current color to its string representation,\n     * using the given format.\n     *\n     * @param {String|null} format Format to convert to. If empty or null, the internal format will be used.\n     * @returns {String}\n     */\n\n  }, {\n    key: 'string',\n    value: function string() {\n      var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n      format = ColorItem.sanitizeFormat(format ? format : this.format);\n\n      if (!format) {\n        return this._color.round().string();\n      }\n\n      if (this._color[format] === undefined) {\n        throw new Error('Unsupported color format: \\'' + format + '\\'');\n      }\n\n      var str = this._color[format]();\n\n      return str.round ? str.round().string() : str;\n    }\n\n    /**\n     * Returns true if the given color values equals this one, false otherwise.\n     * The format is not compared.\n     * If any of the colors is invalid, the result will be false.\n     *\n     * @param {ColorItem|HSVAColor|QixColor|String|*|null} color Color data\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'equals',\n    value: function equals(color) {\n      color = color instanceof ColorItem ? color : new ColorItem(color);\n\n      if (!color.isValid() || !this.isValid()) {\n        return false;\n      }\n\n      return this.hue === color.hue && this.saturation === color.saturation && this.value === color.value && this.alpha === color.alpha;\n    }\n\n    /**\n     * Creates a copy of this instance\n     *\n     * @returns {ColorItem}\n     */\n\n  }, {\n    key: 'getClone',\n    value: function getClone() {\n      return new ColorItem(this._color, this.format);\n    }\n\n    /**\n     * Creates a copy of this instance, only copying the hue value,\n     * and setting the others to its max value.\n     *\n     * @returns {ColorItem}\n     */\n\n  }, {\n    key: 'getCloneHueOnly',\n    value: function getCloneHueOnly() {\n      return new ColorItem([this.hue, 100, 100, 1], this.format);\n    }\n\n    /**\n     * Creates a copy of this instance setting the alpha to the max.\n     *\n     * @returns {ColorItem}\n     */\n\n  }, {\n    key: 'getCloneOpaque',\n    value: function getCloneOpaque() {\n      return new ColorItem(this._color.alpha(1), this.format);\n    }\n\n    /**\n     * Converts the color to a RGB string\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: 'toRgbString',\n    value: function toRgbString() {\n      return this.string('rgb');\n    }\n\n    /**\n     * Converts the color to a Hexadecimal string\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: 'toHexString',\n    value: function toHexString() {\n      return this.string('hex');\n    }\n\n    /**\n     * Converts the color to a HSL string\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: 'toHslString',\n    value: function toHslString() {\n      return this.string('hsl');\n    }\n\n    /**\n     * Returns true if the color is dark, false otherwhise.\n     * This is useful to decide a text color.\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isDark',\n    value: function isDark() {\n      return this._color.isDark();\n    }\n\n    /**\n     * Returns true if the color is light, false otherwhise.\n     * This is useful to decide a text color.\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isLight',\n    value: function isLight() {\n      return this._color.isLight();\n    }\n\n    /**\n     * Generates a list of colors using the given hue-based formula or the given array of hue values.\n     * Hue formulas can be extended using ColorItem.colorFormulas static property.\n     *\n     * @param {String|Number[]} formula Examples: 'complementary', 'triad', 'tetrad', 'splitcomplement', [180, 270]\n     * @example let colors = color.generate('triad');\n     * @example let colors = color.generate([45, 80, 112, 200]);\n     * @returns {ColorItem[]}\n     */\n\n  }, {\n    key: 'generate',\n    value: function generate(formula) {\n      var hues = [];\n\n      if (Array.isArray(formula)) {\n        hues = formula;\n      } else if (!ColorItem.colorFormulas.hasOwnProperty(formula)) {\n        throw new Error('No color formula found with the name \\'' + formula + '\\'.');\n      } else {\n        hues = ColorItem.colorFormulas[formula];\n      }\n\n      var colors = [],\n          mainColor = this._color,\n          format = this.format;\n\n      hues.forEach(function (hue) {\n        var levels = [hue ? (mainColor.hue() + hue) % 360 : mainColor.hue(), mainColor.saturationv(), mainColor.value(), mainColor.alpha()];\n\n        colors.push(new ColorItem(levels, format));\n      });\n\n      return colors;\n    }\n  }, {\n    key: 'hue',\n    get: function get() {\n      return this._color.hue();\n    }\n\n    /**\n     * Saturation value from 0 to 100\n     *\n     * @returns {int}\n     */\n    ,\n\n\n    /**\n     * Sets the hue value\n     *\n     * @param {int} value Integer from 0 to 360\n     */\n    set: function set(value) {\n      this._color = this._color.hue(value);\n    }\n  }, {\n    key: 'saturation',\n    get: function get() {\n      return this._color.saturationv();\n    }\n\n    /**\n     * Value channel value from 0 to 100\n     *\n     * @returns {int}\n     */\n    ,\n    set: function set(value) {\n      this._color = this._color.saturationv(value);\n    }\n  }, {\n    key: 'value',\n    get: function get() {\n      return this._color.value();\n    }\n\n    /**\n     * Alpha value from 0.0 to 1.0\n     *\n     * @returns {number}\n     */\n    ,\n    set: function set(value) {\n      this._color = this._color.value(value);\n    }\n  }, {\n    key: 'alpha',\n    get: function get() {\n      var a = this._color.alpha();\n\n      return isNaN(a) ? 1 : a;\n    }\n\n    /**\n     * Default color format to convert to when calling toString() or string()\n     *\n     * @returns {String} 'rgb', 'hsl', 'hex' or ''\n     */\n    ,\n    set: function set(value) {\n      // 2 decimals max\n      this._color = this._color.alpha(Math.round(value * 100) / 100);\n    }\n  }, {\n    key: 'format',\n    get: function get() {\n      return this._format ? this._format : this._color.model;\n    },\n    set: function set(value) {\n      this._format = ColorItem.sanitizeFormat(value);\n    }\n  }], [{\n    key: 'parse',\n    value: function parse(color) {\n      if (color instanceof _color2.default) {\n        return color;\n      }\n\n      if (color instanceof ColorItem) {\n        return color._color;\n      }\n\n      var format = null;\n\n      if (color instanceof HSVAColor) {\n        color = [color.h, color.s, color.v, isNaN(color.a) ? 1 : color.a];\n      } else {\n        color = ColorItem.sanitizeString(color);\n      }\n\n      if (color === null) {\n        return null;\n      }\n\n      if (Array.isArray(color)) {\n        format = 'hsv';\n      }\n\n      try {\n        return (0, _color2.default)(color, format);\n      } catch (e) {\n        return null;\n      }\n    }\n\n    /**\n     * Sanitizes a color string, adding missing hash to hexadecimal colors\n     * and converting 'transparent' to a color code.\n     *\n     * @param {String|*} str Color string\n     * @example let colorStr = ColorItem.sanitizeString('ffaa00');\n     * @static\n     * @returns {String|*}\n     */\n\n  }, {\n    key: 'sanitizeString',\n    value: function sanitizeString(str) {\n      if (!(typeof str === 'string' || str instanceof String)) {\n        return str;\n      }\n\n      if (str.match(/^[0-9a-f]{2,}$/i)) {\n        return '#' + str;\n      }\n\n      if (str.toLowerCase() === 'transparent') {\n        return '#FFFFFF00';\n      }\n\n      return str;\n    }\n\n    /**\n     * Detects if a value is a string and a color in hexadecimal format (in any variant).\n     *\n     * @param {String} str\n     * @example ColorItem.isHex('rgba(0,0,0)'); // false\n     * @example ColorItem.isHex('ffaa00'); // true\n     * @example ColorItem.isHex('#ffaa00'); // true\n     * @static\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isHex',\n    value: function isHex(str) {\n      if (!(typeof str === 'string' || str instanceof String)) {\n        return false;\n      }\n\n      return !!str.match(/^#?[0-9a-f]{2,}$/i);\n    }\n\n    /**\n     * Sanitizes a color format to one supported by web browsers.\n     * Returns an empty string of the format can't be recognised.\n     *\n     * @param {String|*} format\n     * @example ColorItem.sanitizeFormat('rgba'); // 'rgb'\n     * @example ColorItem.isHex('hex8'); // 'hex'\n     * @example ColorItem.isHex('invalid'); // ''\n     * @static\n     * @returns {String} 'rgb', 'hsl', 'hex' or ''.\n     */\n\n  }, {\n    key: 'sanitizeFormat',\n    value: function sanitizeFormat(format) {\n      switch (format) {\n        case 'hex':\n        case 'hex3':\n        case 'hex4':\n        case 'hex6':\n        case 'hex8':\n          return 'hex';\n        case 'rgb':\n        case 'rgba':\n        case 'keyword':\n        case 'name':\n          return 'rgb';\n        case 'hsl':\n        case 'hsla':\n        case 'hsv':\n        case 'hsva':\n        case 'hwb': // HWB this is supported by Qix Color, but not by browsers\n        case 'hwba':\n          return 'hsl';\n        default:\n          return '';\n      }\n    }\n  }]);\n\n  return ColorItem;\n}();\n\n/**\n * List of hue-based color formulas used by ColorItem.prototype.generate()\n *\n * @static\n * @type {{complementary: number[], triad: number[], tetrad: number[], splitcomplement: number[]}}\n */\n\n\nColorItem.colorFormulas = {\n  complementary: [180],\n  triad: [0, 120, 240],\n  tetrad: [0, 90, 180, 270],\n  splitcomplement: [0, 72, 216]\n};\n\nexports.default = ColorItem;\nexports.HSVAColor = HSVAColor;\nexports.ColorItem = ColorItem;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @module\n */\n\n// adjust these values accordingly to the sass vars\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar sassVars = {\n  'bar_size_short': 16,\n  'base_margin': 6,\n  'columns': 6\n};\n\nvar sliderSize = sassVars.bar_size_short * sassVars.columns + sassVars.base_margin * (sassVars.columns - 1);\n\n/**\n * Colorpicker default options\n */\nexports.default = {\n  /**\n   * Custom class to be added to the `.colorpicker-element` element\n   *\n   * @type {String|null}\n   * @default null\n   */\n  customClass: null,\n  /**\n   * Sets a initial color, ignoring the one from the element/input value or the data-color attribute.\n   *\n   * @type {(String|ColorItem|boolean)}\n   * @default false\n   */\n  color: false,\n  /**\n   * Fallback color to use when the given color is invalid.\n   * If false, the latest valid color will be used as a fallback.\n   *\n   * @type {String|ColorItem|boolean}\n   * @default false\n   */\n  fallbackColor: false,\n  /**\n   * Forces an specific color format. If 'auto', it will be automatically detected the first time only,\n   * but if null it will be always recalculated.\n   *\n   * Note that the ending 'a' of the format meaning \"alpha\" has currently no effect, meaning that rgb is the same as\n   * rgba excepting if the alpha channel is disabled (see useAlpha).\n   *\n   * @type {('rgb'|'hex'|'hsl'|'auto'|null)}\n   * @default 'auto'\n   */\n  format: 'auto',\n  /**\n   * Horizontal mode layout.\n   *\n   * If true, the hue and alpha channel bars will be rendered horizontally, above the saturation selector.\n   *\n   * @type {boolean}\n   * @default false\n   */\n  horizontal: false,\n  /**\n   * Forces to show the colorpicker as an inline element.\n   *\n   * Note that if there is no container specified, the inline element\n   * will be added to the body, so you may want to set the container option.\n   *\n   * @type {boolean}\n   * @default false\n   */\n  inline: false,\n  /**\n   * Container where the colorpicker is appended to in the DOM.\n   *\n   * If is a string (CSS selector), the colorpicker will be placed inside this container.\n   * If true, the `.colorpicker-element` element itself will be used as the container.\n   * If false, the document body is used as the container, unless it is a popover (in this case it is appended to the\n   * popover body instead).\n   *\n   * @type {String|boolean}\n   * @default false\n   */\n  container: false,\n  /**\n   * Bootstrap Popover options.\n   * The trigger, content and html options are always ignored.\n   *\n   * @type {boolean}\n   * @default Object\n   */\n  popover: {\n    animation: true,\n    placement: 'bottom',\n    fallbackPlacement: 'flip'\n  },\n  /**\n   * If true, loads the 'debugger' extension automatically, which logs the events in the console\n   * @type {boolean}\n   * @default false\n   */\n  debug: false,\n  /**\n   * Child CSS selector for the colorpicker input.\n   *\n   * @type {String}\n   * @default 'input'\n   */\n  input: 'input',\n  /**\n   * Child CSS selector for the colorpicker addon.\n   * If it exists, the child <i> element background will be changed on color change.\n   *\n   * @type {String}\n   * @default '.colorpicker-trigger, .colorpicker-input-addon'\n   */\n  addon: '.colorpicker-input-addon',\n  /**\n   * If true, the input content will be replaced always with a valid color,\n   * if false, the invalid color will be left in the input,\n   *   while the internal color object will still resolve into a valid one.\n   *\n   * @type {boolean}\n   * @default true\n   */\n  autoInputFallback: true,\n  /**\n   * If true a hash will be prepended to hexadecimal colors.\n   * If false, the hash will be removed.\n   * This only affects the input values in hexadecimal format.\n   *\n   * @type {boolean}\n   * @default true\n   */\n  useHashPrefix: true,\n  /**\n   * If true, the alpha channel bar will be displayed no matter what.\n   *\n   * If false, it will be always hidden and alpha channel will be disabled also programmatically, meaning that\n   * the selected or typed color will be always opaque.\n   *\n   * If null, the alpha channel will be automatically disabled/enabled depending if the initial color format supports\n   * alpha or not.\n   *\n   * @type {boolean}\n   * @default true\n   */\n  useAlpha: true,\n  /**\n   * Colorpicker widget template\n   * @type {String}\n   * @example\n   * <!-- This is the default template: -->\n   * <div class=\"colorpicker\">\n   *   <div class=\"colorpicker-saturation\"><i class=\"colorpicker-guide\"></i></div>\n   *   <div class=\"colorpicker-hue\"><i class=\"colorpicker-guide\"></i></div>\n   *   <div class=\"colorpicker-alpha\">\n   *     <div class=\"colorpicker-alpha-color\"></div>\n   *     <i class=\"colorpicker-guide\"></i>\n   *   </div>\n   * </div>\n   */\n  template: '<div class=\"colorpicker\">\\n      <div class=\"colorpicker-saturation\"><i class=\"colorpicker-guide\"></i></div>\\n      <div class=\"colorpicker-hue\"><i class=\"colorpicker-guide\"></i></div>\\n      <div class=\"colorpicker-alpha\">\\n        <div class=\"colorpicker-alpha-color\"></div>\\n        <i class=\"colorpicker-guide\"></i>\\n      </div>\\n    </div>',\n  /**\n   *\n   * Associative object with the extension class name and its config.\n   * Colorpicker comes with many bundled extensions: debugger, palette, preview and swatches (a superset of palette).\n   *\n   * @type {Object[]}\n   * @example\n   *   extensions: [\n   *     {\n   *       name: 'swatches'\n   *       options: {\n   *         colors: {\n   *           'primary': '#337ab7',\n   *           'success': '#5cb85c',\n   *           'info': '#5bc0de',\n   *           'warning': '#f0ad4e',\n   *           'danger': '#d9534f'\n   *         },\n   *         namesAsValues: true\n   *       }\n   *     }\n   *   ]\n   */\n  extensions: [{\n    name: 'preview',\n    options: {\n      showText: true\n    }\n  }],\n  /**\n   * Vertical sliders configuration\n   * @type {Object}\n   */\n  sliders: {\n    saturation: {\n      selector: '.colorpicker-saturation',\n      maxLeft: sliderSize,\n      maxTop: sliderSize,\n      callLeft: 'setSaturationRatio',\n      callTop: 'setValueRatio'\n    },\n    hue: {\n      selector: '.colorpicker-hue',\n      maxLeft: 0,\n      maxTop: sliderSize,\n      callLeft: false,\n      callTop: 'setHueRatio'\n    },\n    alpha: {\n      selector: '.colorpicker-alpha',\n      childSelector: '.colorpicker-alpha-color',\n      maxLeft: 0,\n      maxTop: sliderSize,\n      callLeft: false,\n      callTop: 'setAlphaRatio'\n    }\n  },\n  /**\n   * Horizontal sliders configuration\n   * @type {Object}\n   */\n  slidersHorz: {\n    saturation: {\n      selector: '.colorpicker-saturation',\n      maxLeft: sliderSize,\n      maxTop: sliderSize,\n      callLeft: 'setSaturationRatio',\n      callTop: 'setValueRatio'\n    },\n    hue: {\n      selector: '.colorpicker-hue',\n      maxLeft: sliderSize,\n      maxTop: 0,\n      callLeft: 'setHueRatio',\n      callTop: false\n    },\n    alpha: {\n      selector: '.colorpicker-alpha',\n      childSelector: '.colorpicker-alpha-color',\n      maxLeft: sliderSize,\n      maxTop: 0,\n      callLeft: 'setAlphaRatio',\n      callTop: false\n    }\n  }\n};\nmodule.exports = exports.default;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Extension2 = __webpack_require__(1);\n\nvar _Extension3 = _interopRequireDefault(_Extension2);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaults = {\n  /**\n   * Key-value pairs defining a color alias and its CSS color representation.\n   *\n   * They can also be just an array of values. In that case, no special names are used, only the real colors.\n   *\n   * @type {Object|Array}\n   * @default null\n   * @example\n   *  {\n   *   'black': '#000000',\n   *   'white': '#ffffff',\n   *   'red': '#FF0000',\n   *   'default': '#777777',\n   *   'primary': '#337ab7',\n   *   'success': '#5cb85c',\n   *   'info': '#5bc0de',\n   *   'warning': '#f0ad4e',\n   *   'danger': '#d9534f'\n   *  }\n   *\n   * @example ['#f0ad4e', '#337ab7', '#5cb85c']\n   */\n  colors: null,\n  /**\n   * If true, when a color swatch is selected the name (alias) will be used as input value,\n   * otherwise the swatch real color value will be used.\n   *\n   * @type {boolean}\n   * @default true\n   */\n  namesAsValues: true\n};\n\n/**\n * Palette extension\n * @ignore\n */\n\nvar Palette = function (_Extension) {\n  _inherits(Palette, _Extension);\n\n  _createClass(Palette, [{\n    key: 'colors',\n\n\n    /**\n     * @returns {Object|Array}\n     */\n    get: function get() {\n      return this.options.colors;\n    }\n  }]);\n\n  function Palette(colorpicker) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Palette);\n\n    var _this = _possibleConstructorReturn(this, (Palette.__proto__ || Object.getPrototypeOf(Palette)).call(this, colorpicker, _jquery2.default.extend(true, {}, defaults, options)));\n\n    if (!Array.isArray(_this.options.colors) && _typeof(_this.options.colors) !== 'object') {\n      _this.options.colors = null;\n    }\n    return _this;\n  }\n\n  /**\n   * @returns {int}\n   */\n\n\n  _createClass(Palette, [{\n    key: 'getLength',\n    value: function getLength() {\n      if (!this.options.colors) {\n        return 0;\n      }\n\n      if (Array.isArray(this.options.colors)) {\n        return this.options.colors.length;\n      }\n\n      if (_typeof(this.options.colors) === 'object') {\n        return Object.keys(this.options.colors).length;\n      }\n\n      return 0;\n    }\n  }, {\n    key: 'resolveColor',\n    value: function resolveColor(color) {\n      var realColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      if (this.getLength() <= 0) {\n        return false;\n      }\n\n      // Array of colors\n      if (Array.isArray(this.options.colors)) {\n        if (this.options.colors.indexOf(color) >= 0) {\n          return color;\n        }\n        if (this.options.colors.indexOf(color.toUpperCase()) >= 0) {\n          return color.toUpperCase();\n        }\n        if (this.options.colors.indexOf(color.toLowerCase()) >= 0) {\n          return color.toLowerCase();\n        }\n        return false;\n      }\n\n      if (_typeof(this.options.colors) !== 'object') {\n        return false;\n      }\n\n      // Map of objects\n      if (!this.options.namesAsValues || realColor) {\n        return this.getValue(color, false);\n      }\n      return this.getName(color, this.getName('#' + color));\n    }\n\n    /**\n     * Given a color value, returns the corresponding color name or defaultValue.\n     *\n     * @param {String} value\n     * @param {*} defaultValue\n     * @returns {*}\n     */\n\n  }, {\n    key: 'getName',\n    value: function getName(value) {\n      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (!(typeof value === 'string') || !this.options.colors) {\n        return defaultValue;\n      }\n      for (var name in this.options.colors) {\n        if (!this.options.colors.hasOwnProperty(name)) {\n          continue;\n        }\n        if (this.options.colors[name].toLowerCase() === value.toLowerCase()) {\n          return name;\n        }\n      }\n      return defaultValue;\n    }\n\n    /**\n     * Given a color name, returns the corresponding color value or defaultValue.\n     *\n     * @param {String} name\n     * @param {*} defaultValue\n     * @returns {*}\n     */\n\n  }, {\n    key: 'getValue',\n    value: function getValue(name) {\n      var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (!(typeof name === 'string') || !this.options.colors) {\n        return defaultValue;\n      }\n      if (this.options.colors.hasOwnProperty(name)) {\n        return this.options.colors[name];\n      }\n      return defaultValue;\n    }\n  }]);\n\n  return Palette;\n}(_Extension3.default);\n\nexports.default = Palette;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* MIT license */\nvar cssKeywords = __webpack_require__(5);\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _Colorpicker = __webpack_require__(8);\n\nvar _Colorpicker2 = _interopRequireDefault(_Colorpicker);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar plugin = 'colorpicker';\n\n_jquery2.default[plugin] = _Colorpicker2.default;\n\n// Colorpicker jQuery Plugin API\n_jquery2.default.fn[plugin] = function (option) {\n  var fnArgs = Array.prototype.slice.call(arguments, 1),\n      isSingleElement = this.length === 1,\n      returnValue = null;\n\n  var $elements = this.each(function () {\n    var $this = (0, _jquery2.default)(this),\n        inst = $this.data(plugin),\n        options = (typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object' ? option : {};\n\n    // Create instance if does not exist\n    if (!inst) {\n      inst = new _Colorpicker2.default(this, options);\n      $this.data(plugin, inst);\n    }\n\n    if (!isSingleElement) {\n      return;\n    }\n\n    returnValue = $this;\n\n    if (typeof option === 'string') {\n      if (option === 'colorpicker') {\n        // Return colorpicker instance: e.g. .colorpicker('colorpicker')\n        returnValue = inst;\n      } else if (_jquery2.default.isFunction(inst[option])) {\n        // Return method call return value: e.g. .colorpicker('isEnabled')\n        returnValue = inst[option].apply(inst, fnArgs);\n      } else {\n        // Return property value: e.g. .colorpicker('element')\n        returnValue = inst[option];\n      }\n    }\n  });\n\n  return isSingleElement ? returnValue : $elements;\n};\n\n_jquery2.default.fn[plugin].constructor = _Colorpicker2.default;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Extension = __webpack_require__(1);\n\nvar _Extension2 = _interopRequireDefault(_Extension);\n\nvar _options = __webpack_require__(3);\n\nvar _options2 = _interopRequireDefault(_options);\n\nvar _extensions = __webpack_require__(9);\n\nvar _extensions2 = _interopRequireDefault(_extensions);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _SliderHandler = __webpack_require__(13);\n\nvar _SliderHandler2 = _interopRequireDefault(_SliderHandler);\n\nvar _PopupHandler = __webpack_require__(14);\n\nvar _PopupHandler2 = _interopRequireDefault(_PopupHandler);\n\nvar _InputHandler = __webpack_require__(15);\n\nvar _InputHandler2 = _interopRequireDefault(_InputHandler);\n\nvar _ColorHandler = __webpack_require__(22);\n\nvar _ColorHandler2 = _interopRequireDefault(_ColorHandler);\n\nvar _PickerHandler = __webpack_require__(23);\n\nvar _PickerHandler2 = _interopRequireDefault(_PickerHandler);\n\nvar _AddonHandler = __webpack_require__(24);\n\nvar _AddonHandler2 = _interopRequireDefault(_AddonHandler);\n\nvar _ColorItem = __webpack_require__(2);\n\nvar _ColorItem2 = _interopRequireDefault(_ColorItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar colorPickerIdCounter = 0;\n\nvar root = typeof self !== 'undefined' ? self : undefined; // window\n\n/**\n * Colorpicker widget class\n */\n\nvar Colorpicker = function () {\n  _createClass(Colorpicker, [{\n    key: 'color',\n\n\n    /**\n     * Internal color object\n     *\n     * @type {Color|null}\n     */\n    get: function get() {\n      return this.colorHandler.color;\n    }\n\n    /**\n     * Internal color format\n     *\n     * @type {String|null}\n     */\n\n  }, {\n    key: 'format',\n    get: function get() {\n      return this.colorHandler.format;\n    }\n\n    /**\n     * Getter of the picker element\n     *\n     * @returns {jQuery|HTMLElement}\n     */\n\n  }, {\n    key: 'picker',\n    get: function get() {\n      return this.pickerHandler.picker;\n    }\n\n    /**\n     * @fires Colorpicker#colorpickerCreate\n     * @param {Object|String} element\n     * @param {Object} options\n     * @constructor\n     */\n\n  }], [{\n    key: 'Color',\n\n    /**\n     * Color class\n     *\n     * @static\n     * @type {Color}\n     */\n    get: function get() {\n      return _ColorItem2.default;\n    }\n\n    /**\n     * Extension class\n     *\n     * @static\n     * @type {Extension}\n     */\n\n  }, {\n    key: 'Extension',\n    get: function get() {\n      return _Extension2.default;\n    }\n  }]);\n\n  function Colorpicker(element, options) {\n    _classCallCheck(this, Colorpicker);\n\n    colorPickerIdCounter += 1;\n    /**\n     * The colorpicker instance number\n     * @type {number}\n     */\n    this.id = colorPickerIdCounter;\n\n    /**\n     * Latest colorpicker event\n     *\n     * @type {{name: String, e: *}}\n     */\n    this.lastEvent = {\n      alias: null,\n      e: null\n    };\n\n    /**\n     * The element that the colorpicker is bound to\n     *\n     * @type {*|jQuery}\n     */\n    this.element = (0, _jquery2.default)(element).addClass('colorpicker-element').attr('data-colorpicker-id', this.id);\n\n    /**\n     * @type {defaults}\n     */\n    this.options = _jquery2.default.extend(true, {}, _options2.default, options, this.element.data());\n\n    /**\n     * @type {boolean}\n     * @private\n     */\n    this.disabled = false;\n\n    /**\n     * Extensions added to this instance\n     *\n     * @type {Extension[]}\n     */\n    this.extensions = [];\n\n    /**\n     * The element where the\n     * @type {*|jQuery}\n     */\n    this.container = this.options.container === true || this.options.container !== true && this.options.inline === true ? this.element : this.options.container;\n\n    this.container = this.container !== false ? (0, _jquery2.default)(this.container) : false;\n\n    /**\n     * @type {InputHandler}\n     */\n    this.inputHandler = new _InputHandler2.default(this);\n    /**\n     * @type {ColorHandler}\n     */\n    this.colorHandler = new _ColorHandler2.default(this);\n    /**\n     * @type {SliderHandler}\n     */\n    this.sliderHandler = new _SliderHandler2.default(this);\n    /**\n     * @type {PopupHandler}\n     */\n    this.popupHandler = new _PopupHandler2.default(this, root);\n    /**\n     * @type {PickerHandler}\n     */\n    this.pickerHandler = new _PickerHandler2.default(this);\n    /**\n     * @type {AddonHandler}\n     */\n    this.addonHandler = new _AddonHandler2.default(this);\n\n    this.init();\n\n    // Emit a create event\n    (0, _jquery2.default)(_jquery2.default.proxy(function () {\n      /**\n       * (Colorpicker) When the Colorpicker instance has been created and the DOM is ready.\n       *\n       * @event Colorpicker#colorpickerCreate\n       */\n      this.trigger('colorpickerCreate');\n    }, this));\n  }\n\n  /**\n   * Initializes the plugin\n   * @private\n   */\n\n\n  _createClass(Colorpicker, [{\n    key: 'init',\n    value: function init() {\n      // Init addon\n      this.addonHandler.bind();\n\n      // Init input\n      this.inputHandler.bind();\n\n      // Init extensions (before initializing the color)\n      this.initExtensions();\n\n      // Init color\n      this.colorHandler.bind();\n\n      // Init picker\n      this.pickerHandler.bind();\n\n      // Init sliders and popup\n      this.sliderHandler.bind();\n      this.popupHandler.bind();\n\n      // Inject into the DOM (this may make it visible)\n      this.pickerHandler.attach();\n\n      // Update all components\n      this.update();\n\n      if (this.inputHandler.isDisabled()) {\n        this.disable();\n      }\n    }\n\n    /**\n     * Initializes the plugin extensions\n     * @private\n     */\n\n  }, {\n    key: 'initExtensions',\n    value: function initExtensions() {\n      var _this = this;\n\n      if (!Array.isArray(this.options.extensions)) {\n        this.options.extensions = [];\n      }\n\n      if (this.options.debug) {\n        this.options.extensions.push({ name: 'debugger' });\n      }\n\n      // Register and instantiate extensions\n      this.options.extensions.forEach(function (ext) {\n        _this.registerExtension(Colorpicker.extensions[ext.name.toLowerCase()], ext.options || {});\n      });\n    }\n\n    /**\n     * Creates and registers the given extension\n     *\n     * @param {Extension} ExtensionClass The extension class to instantiate\n     * @param {Object} [config] Extension configuration\n     * @returns {Extension}\n     */\n\n  }, {\n    key: 'registerExtension',\n    value: function registerExtension(ExtensionClass) {\n      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      var ext = new ExtensionClass(this, config);\n\n      this.extensions.push(ext);\n      return ext;\n    }\n\n    /**\n     * Destroys the current instance\n     *\n     * @fires Colorpicker#colorpickerDestroy\n     */\n\n  }, {\n    key: 'destroy',\n    value: function destroy() {\n      var color = this.color;\n\n      this.sliderHandler.unbind();\n      this.inputHandler.unbind();\n      this.popupHandler.unbind();\n      this.colorHandler.unbind();\n      this.addonHandler.unbind();\n      this.pickerHandler.unbind();\n\n      this.element.removeClass('colorpicker-element').removeData('colorpicker', 'color').off('.colorpicker');\n\n      /**\n       * (Colorpicker) When the instance is destroyed with all events unbound.\n       *\n       * @event Colorpicker#colorpickerDestroy\n       */\n      this.trigger('colorpickerDestroy', color);\n    }\n\n    /**\n     * Shows the colorpicker widget if hidden.\n     * If the colorpicker is disabled this call will be ignored.\n     *\n     * @fires Colorpicker#colorpickerShow\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'show',\n    value: function show(e) {\n      this.popupHandler.show(e);\n    }\n\n    /**\n     * Hides the colorpicker widget.\n     *\n     * @fires Colorpicker#colorpickerHide\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'hide',\n    value: function hide(e) {\n      this.popupHandler.hide(e);\n    }\n\n    /**\n     * Toggles the colorpicker between visible and hidden.\n     *\n     * @fires Colorpicker#colorpickerShow\n     * @fires Colorpicker#colorpickerHide\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'toggle',\n    value: function toggle(e) {\n      this.popupHandler.toggle(e);\n    }\n\n    /**\n     * Returns the current color value as string\n     *\n     * @param {String|*} [defaultValue]\n     * @returns {String|*}\n     */\n\n  }, {\n    key: 'getValue',\n    value: function getValue() {\n      var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n      var val = this.colorHandler.color;\n\n      val = val instanceof _ColorItem2.default ? val : defaultValue;\n\n      if (val instanceof _ColorItem2.default) {\n        return val.string(this.format);\n      }\n\n      return val;\n    }\n\n    /**\n     * Sets the color manually\n     *\n     * @fires Colorpicker#colorpickerChange\n     * @param {String|Color} val\n     */\n\n  }, {\n    key: 'setValue',\n    value: function setValue(val) {\n      if (this.isDisabled()) {\n        return;\n      }\n      var ch = this.colorHandler;\n\n      if (ch.hasColor() && !!val && ch.color.equals(val) || !ch.hasColor() && !val) {\n        // same color or still empty\n        return;\n      }\n\n      ch.color = val ? ch.createColor(val, this.options.autoInputFallback) : null;\n\n      /**\n       * (Colorpicker) When the color is set programmatically with setValue().\n       *\n       * @event Colorpicker#colorpickerChange\n       */\n      this.trigger('colorpickerChange', ch.color, val);\n\n      // force update if color has changed to empty\n      this.update();\n    }\n\n    /**\n     * Updates the UI and the input color according to the internal color.\n     *\n     * @fires Colorpicker#colorpickerUpdate\n     */\n\n  }, {\n    key: 'update',\n    value: function update() {\n      if (this.colorHandler.hasColor()) {\n        this.inputHandler.update();\n      } else {\n        this.colorHandler.assureColor();\n      }\n\n      this.addonHandler.update();\n      this.pickerHandler.update();\n\n      /**\n       * (Colorpicker) Fired when the widget is updated.\n       *\n       * @event Colorpicker#colorpickerUpdate\n       */\n      this.trigger('colorpickerUpdate');\n    }\n\n    /**\n     * Enables the widget and the input if any\n     *\n     * @fires Colorpicker#colorpickerEnable\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'enable',\n    value: function enable() {\n      this.inputHandler.enable();\n      this.disabled = false;\n      this.picker.removeClass('colorpicker-disabled');\n\n      /**\n       * (Colorpicker) When the widget has been enabled.\n       *\n       * @event Colorpicker#colorpickerEnable\n       */\n      this.trigger('colorpickerEnable');\n      return true;\n    }\n\n    /**\n     * Disables the widget and the input if any\n     *\n     * @fires Colorpicker#colorpickerDisable\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'disable',\n    value: function disable() {\n      this.inputHandler.disable();\n      this.disabled = true;\n      this.picker.addClass('colorpicker-disabled');\n\n      /**\n       * (Colorpicker) When the widget has been disabled.\n       *\n       * @event Colorpicker#colorpickerDisable\n       */\n      this.trigger('colorpickerDisable');\n      return true;\n    }\n\n    /**\n     * Returns true if this instance is enabled\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isEnabled',\n    value: function isEnabled() {\n      return !this.isDisabled();\n    }\n\n    /**\n     * Returns true if this instance is disabled\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isDisabled',\n    value: function isDisabled() {\n      return this.disabled === true;\n    }\n\n    /**\n     * Triggers a Colorpicker event.\n     *\n     * @param eventName\n     * @param color\n     * @param value\n     */\n\n  }, {\n    key: 'trigger',\n    value: function trigger(eventName) {\n      var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n      this.element.trigger({\n        type: eventName,\n        colorpicker: this,\n        color: color ? color : this.color,\n        value: value ? value : this.getValue()\n      });\n    }\n  }]);\n\n  return Colorpicker;\n}();\n\n/**\n * Colorpicker extension classes, indexed by extension name\n *\n * @static\n * @type {Object} a map between the extension name and its class\n */\n\n\nColorpicker.extensions = _extensions2.default;\n\nexports.default = Colorpicker;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Palette = exports.Swatches = exports.Preview = exports.Debugger = undefined;\n\nvar _Debugger = __webpack_require__(10);\n\nvar _Debugger2 = _interopRequireDefault(_Debugger);\n\nvar _Preview = __webpack_require__(11);\n\nvar _Preview2 = _interopRequireDefault(_Preview);\n\nvar _Swatches = __webpack_require__(12);\n\nvar _Swatches2 = _interopRequireDefault(_Swatches);\n\nvar _Palette = __webpack_require__(4);\n\nvar _Palette2 = _interopRequireDefault(_Palette);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Debugger = _Debugger2.default;\nexports.Preview = _Preview2.default;\nexports.Swatches = _Swatches2.default;\nexports.Palette = _Palette2.default;\nexports.default = {\n  'debugger': _Debugger2.default,\n  'preview': _Preview2.default,\n  'swatches': _Swatches2.default,\n  'palette': _Palette2.default\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _Extension2 = __webpack_require__(1);\n\nvar _Extension3 = _interopRequireDefault(_Extension2);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Debugger extension class\n * @alias DebuggerExtension\n * @ignore\n */\nvar Debugger = function (_Extension) {\n  _inherits(Debugger, _Extension);\n\n  function Debugger(colorpicker) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Debugger);\n\n    /**\n     * @type {number}\n     */\n    var _this = _possibleConstructorReturn(this, (Debugger.__proto__ || Object.getPrototypeOf(Debugger)).call(this, colorpicker, options));\n\n    _this.eventCounter = 0;\n    if (_this.colorpicker.inputHandler.hasInput()) {\n      _this.colorpicker.inputHandler.input.on('change.colorpicker-ext', _jquery2.default.proxy(_this.onChangeInput, _this));\n    }\n    return _this;\n  }\n\n  /**\n   * @fires DebuggerExtension#colorpickerDebug\n   * @param {string} eventName\n   * @param {*} args\n   */\n\n\n  _createClass(Debugger, [{\n    key: 'log',\n    value: function log(eventName) {\n      var _console;\n\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      this.eventCounter += 1;\n\n      var logMessage = '#' + this.eventCounter + ': Colorpicker#' + this.colorpicker.id + ' [' + eventName + ']';\n\n      (_console = console).debug.apply(_console, [logMessage].concat(args));\n\n      /**\n       * Whenever the debugger logs an event, this other event is emitted.\n       *\n       * @event DebuggerExtension#colorpickerDebug\n       * @type {object} The event object\n       * @property {Colorpicker} colorpicker The Colorpicker instance\n       * @property {ColorItem} color The color instance\n       * @property {{debugger: DebuggerExtension, eventName: String, logArgs: Array, logMessage: String}} debug\n       *  The debug info\n       */\n      this.colorpicker.element.trigger({\n        type: 'colorpickerDebug',\n        colorpicker: this.colorpicker,\n        color: this.color,\n        value: null,\n        debug: {\n          debugger: this,\n          eventName: eventName,\n          logArgs: args,\n          logMessage: logMessage\n        }\n      });\n    }\n  }, {\n    key: 'resolveColor',\n    value: function resolveColor(color) {\n      var realColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      this.log('resolveColor()', color, realColor);\n      return false;\n    }\n  }, {\n    key: 'onCreate',\n    value: function onCreate(event) {\n      this.log('colorpickerCreate');\n      return _get(Debugger.prototype.__proto__ || Object.getPrototypeOf(Debugger.prototype), 'onCreate', this).call(this, event);\n    }\n  }, {\n    key: 'onDestroy',\n    value: function onDestroy(event) {\n      this.log('colorpickerDestroy');\n      this.eventCounter = 0;\n\n      if (this.colorpicker.inputHandler.hasInput()) {\n        this.colorpicker.inputHandler.input.off('.colorpicker-ext');\n      }\n\n      return _get(Debugger.prototype.__proto__ || Object.getPrototypeOf(Debugger.prototype), 'onDestroy', this).call(this, event);\n    }\n  }, {\n    key: 'onUpdate',\n    value: function onUpdate(event) {\n      this.log('colorpickerUpdate');\n    }\n\n    /**\n     * @listens Colorpicker#change\n     * @param {Event} event\n     */\n\n  }, {\n    key: 'onChangeInput',\n    value: function onChangeInput(event) {\n      this.log('input:change.colorpicker', event.value, event.color);\n    }\n  }, {\n    key: 'onChange',\n    value: function onChange(event) {\n      this.log('colorpickerChange', event.value, event.color);\n    }\n  }, {\n    key: 'onInvalid',\n    value: function onInvalid(event) {\n      this.log('colorpickerInvalid', event.value, event.color);\n    }\n  }, {\n    key: 'onHide',\n    value: function onHide(event) {\n      this.log('colorpickerHide');\n      this.eventCounter = 0;\n    }\n  }, {\n    key: 'onShow',\n    value: function onShow(event) {\n      this.log('colorpickerShow');\n    }\n  }, {\n    key: 'onDisable',\n    value: function onDisable(event) {\n      this.log('colorpickerDisable');\n    }\n  }, {\n    key: 'onEnable',\n    value: function onEnable(event) {\n      this.log('colorpickerEnable');\n    }\n  }]);\n\n  return Debugger;\n}(_Extension3.default);\n\nexports.default = Debugger;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _Extension2 = __webpack_require__(1);\n\nvar _Extension3 = _interopRequireDefault(_Extension2);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Color preview extension\n * @ignore\n */\nvar Preview = function (_Extension) {\n  _inherits(Preview, _Extension);\n\n  function Preview(colorpicker) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Preview);\n\n    var _this = _possibleConstructorReturn(this, (Preview.__proto__ || Object.getPrototypeOf(Preview)).call(this, colorpicker, _jquery2.default.extend(true, {}, {\n      template: '<div class=\"colorpicker-bar colorpicker-preview\"><div /></div>',\n      showText: true,\n      format: colorpicker.format\n    }, options)));\n\n    _this.element = (0, _jquery2.default)(_this.options.template);\n    _this.elementInner = _this.element.find('div');\n    return _this;\n  }\n\n  _createClass(Preview, [{\n    key: 'onCreate',\n    value: function onCreate(event) {\n      _get(Preview.prototype.__proto__ || Object.getPrototypeOf(Preview.prototype), 'onCreate', this).call(this, event);\n      this.colorpicker.picker.append(this.element);\n    }\n  }, {\n    key: 'onUpdate',\n    value: function onUpdate(event) {\n      _get(Preview.prototype.__proto__ || Object.getPrototypeOf(Preview.prototype), 'onUpdate', this).call(this, event);\n\n      if (!event.color) {\n        this.elementInner.css('backgroundColor', null).css('color', null).html('');\n        return;\n      }\n\n      this.elementInner.css('backgroundColor', event.color.toRgbString());\n\n      if (this.options.showText) {\n        this.elementInner.html(event.color.string(this.options.format || this.colorpicker.format));\n\n        if (event.color.isDark() && event.color.alpha > 0.5) {\n          this.elementInner.css('color', 'white');\n        } else {\n          this.elementInner.css('color', 'black');\n        }\n      }\n    }\n  }]);\n\n  return Preview;\n}(_Extension3.default);\n\nexports.default = Preview;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _Palette2 = __webpack_require__(4);\n\nvar _Palette3 = _interopRequireDefault(_Palette2);\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaults = {\n  barTemplate: '<div class=\"colorpicker-bar colorpicker-swatches\">\\n                    <div class=\"colorpicker-swatches--inner\"></div>\\n                </div>',\n  swatchTemplate: '<i class=\"colorpicker-swatch\"><i class=\"colorpicker-swatch--inner\"></i></i>'\n};\n\n/**\n * Color swatches extension\n * @ignore\n */\n\nvar Swatches = function (_Palette) {\n  _inherits(Swatches, _Palette);\n\n  function Swatches(colorpicker) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Swatches);\n\n    var _this = _possibleConstructorReturn(this, (Swatches.__proto__ || Object.getPrototypeOf(Swatches)).call(this, colorpicker, _jquery2.default.extend(true, {}, defaults, options)));\n\n    _this.element = null;\n    return _this;\n  }\n\n  _createClass(Swatches, [{\n    key: 'isEnabled',\n    value: function isEnabled() {\n      return this.getLength() > 0;\n    }\n  }, {\n    key: 'onCreate',\n    value: function onCreate(event) {\n      _get(Swatches.prototype.__proto__ || Object.getPrototypeOf(Swatches.prototype), 'onCreate', this).call(this, event);\n\n      if (!this.isEnabled()) {\n        return;\n      }\n\n      this.element = (0, _jquery2.default)(this.options.barTemplate);\n      this.load();\n      this.colorpicker.picker.append(this.element);\n    }\n  }, {\n    key: 'load',\n    value: function load() {\n      var _this2 = this;\n\n      var colorpicker = this.colorpicker,\n          swatchContainer = this.element.find('.colorpicker-swatches--inner'),\n          isAliased = this.options.namesAsValues === true && !Array.isArray(this.colors);\n\n      swatchContainer.empty();\n\n      _jquery2.default.each(this.colors, function (name, value) {\n        var $swatch = (0, _jquery2.default)(_this2.options.swatchTemplate).attr('data-name', name).attr('data-value', value).attr('title', isAliased ? name + ': ' + value : value).on('mousedown.colorpicker touchstart.colorpicker', function (e) {\n          var $sw = (0, _jquery2.default)(this);\n\n          // e.preventDefault();\n\n          colorpicker.setValue(isAliased ? $sw.attr('data-name') : $sw.attr('data-value'));\n        });\n\n        $swatch.find('.colorpicker-swatch--inner').css('background-color', value);\n\n        swatchContainer.append($swatch);\n      });\n\n      swatchContainer.append((0, _jquery2.default)('<i class=\"colorpicker-clear\"></i>'));\n    }\n  }]);\n\n  return Swatches;\n}(_Palette3.default);\n\nexports.default = Swatches;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Class that handles all configured sliders on mouse or touch events.\n * @ignore\n */\nvar SliderHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   */\n  function SliderHandler(colorpicker) {\n    _classCallCheck(this, SliderHandler);\n\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * @type {*|String}\n     * @private\n     */\n    this.currentSlider = null;\n    /**\n     * @type {{left: number, top: number}}\n     * @private\n     */\n    this.mousePointer = {\n      left: 0,\n      top: 0\n    };\n\n    /**\n     * @type {Function}\n     */\n    this.onMove = _jquery2.default.proxy(this.defaultOnMove, this);\n  }\n\n  /**\n   * This function is called every time a slider guide is moved\n   * The scope of \"this\" is the SliderHandler object.\n   *\n   * @param {int} top\n   * @param {int} left\n   */\n\n\n  _createClass(SliderHandler, [{\n    key: 'defaultOnMove',\n    value: function defaultOnMove(top, left) {\n      if (!this.currentSlider) {\n        return;\n      }\n\n      var slider = this.currentSlider,\n          cp = this.colorpicker,\n          ch = cp.colorHandler;\n\n      // Create a color object\n      var color = !ch.hasColor() ? ch.getFallbackColor() : ch.color.getClone();\n\n      // Adjust the guide position\n      slider.guideStyle.left = left + 'px';\n      slider.guideStyle.top = top + 'px';\n\n      // Adjust the color\n      if (slider.callLeft) {\n        color[slider.callLeft](left / slider.maxLeft);\n      }\n      if (slider.callTop) {\n        color[slider.callTop](top / slider.maxTop);\n      }\n\n      // Set the new color\n      cp.setValue(color);\n      cp.popupHandler.focus();\n    }\n\n    /**\n     * Binds the colorpicker sliders to the mouse/touch events\n     */\n\n  }, {\n    key: 'bind',\n    value: function bind() {\n      var sliders = this.colorpicker.options.horizontal ? this.colorpicker.options.slidersHorz : this.colorpicker.options.sliders;\n\n      var sliderClasses = [];\n\n      for (var sliderName in sliders) {\n        if (!sliders.hasOwnProperty(sliderName)) {\n          continue;\n        }\n\n        sliderClasses.push(sliders[sliderName].selector);\n      }\n\n      this.colorpicker.picker.find(sliderClasses.join(', ')).on('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.pressed, this));\n    }\n\n    /**\n     * Unbinds any event bound by this handler\n     */\n\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      (0, _jquery2.default)(this.colorpicker.picker).off({\n        'mousemove.colorpicker': _jquery2.default.proxy(this.moved, this),\n        'touchmove.colorpicker': _jquery2.default.proxy(this.moved, this),\n        'mouseup.colorpicker': _jquery2.default.proxy(this.released, this),\n        'touchend.colorpicker': _jquery2.default.proxy(this.released, this)\n      });\n    }\n\n    /**\n     * Function triggered when clicking in one of the color adjustment bars\n     *\n     * @private\n     * @fires Colorpicker#mousemove\n     * @param {Event} e\n     */\n\n  }, {\n    key: 'pressed',\n    value: function pressed(e) {\n      if (this.colorpicker.isDisabled()) {\n        return;\n      }\n      this.colorpicker.lastEvent.alias = 'pressed';\n      this.colorpicker.lastEvent.e = e;\n\n      if (!e.pageX && !e.pageY && e.originalEvent && e.originalEvent.touches) {\n        e.pageX = e.originalEvent.touches[0].pageX;\n        e.pageY = e.originalEvent.touches[0].pageY;\n      }\n      // e.stopPropagation();\n      // e.preventDefault();\n\n      var target = (0, _jquery2.default)(e.target);\n\n      // detect the slider and set the limits and callbacks\n      var zone = target.closest('div');\n\n      var sliders = this.colorpicker.options.horizontal ? this.colorpicker.options.slidersHorz : this.colorpicker.options.sliders;\n\n      if (zone.is('.colorpicker')) {\n        return;\n      }\n\n      this.currentSlider = null;\n\n      for (var sliderName in sliders) {\n        if (!sliders.hasOwnProperty(sliderName)) {\n          continue;\n        }\n\n        var slider = sliders[sliderName];\n\n        if (zone.is(slider.selector)) {\n          this.currentSlider = _jquery2.default.extend({}, slider, { name: sliderName });\n          break;\n        } else if (slider.childSelector !== undefined && zone.is(slider.childSelector)) {\n          this.currentSlider = _jquery2.default.extend({}, slider, { name: sliderName });\n          zone = zone.parent(); // zone.parents(slider.selector).first() ?\n          break;\n        }\n      }\n\n      var guide = zone.find('.colorpicker-guide').get(0);\n\n      if (this.currentSlider === null || guide === null) {\n        return;\n      }\n\n      var offset = zone.offset();\n\n      // reference to guide's style\n      this.currentSlider.guideStyle = guide.style;\n      this.currentSlider.left = e.pageX - offset.left;\n      this.currentSlider.top = e.pageY - offset.top;\n      this.mousePointer = {\n        left: e.pageX,\n        top: e.pageY\n      };\n\n      // TODO: fix moving outside the picker makes the guides to keep moving. The event needs to be bound to the window.\n      /**\n       * (window.document) Triggered on mousedown for the document object,\n       * so the color adjustment guide is moved to the clicked position.\n       *\n       * @event Colorpicker#mousemove\n       */\n      (0, _jquery2.default)(this.colorpicker.picker).on({\n        'mousemove.colorpicker': _jquery2.default.proxy(this.moved, this),\n        'touchmove.colorpicker': _jquery2.default.proxy(this.moved, this),\n        'mouseup.colorpicker': _jquery2.default.proxy(this.released, this),\n        'touchend.colorpicker': _jquery2.default.proxy(this.released, this)\n      }).trigger('mousemove');\n    }\n\n    /**\n     * Function triggered when dragging a guide inside one of the color adjustment bars.\n     *\n     * @private\n     * @param {Event} e\n     */\n\n  }, {\n    key: 'moved',\n    value: function moved(e) {\n      this.colorpicker.lastEvent.alias = 'moved';\n      this.colorpicker.lastEvent.e = e;\n\n      if (!e.pageX && !e.pageY && e.originalEvent && e.originalEvent.touches) {\n        e.pageX = e.originalEvent.touches[0].pageX;\n        e.pageY = e.originalEvent.touches[0].pageY;\n      }\n\n      // e.stopPropagation();\n      e.preventDefault(); // prevents scrolling on mobile\n\n      var left = Math.max(0, Math.min(this.currentSlider.maxLeft, this.currentSlider.left + ((e.pageX || this.mousePointer.left) - this.mousePointer.left)));\n\n      var top = Math.max(0, Math.min(this.currentSlider.maxTop, this.currentSlider.top + ((e.pageY || this.mousePointer.top) - this.mousePointer.top)));\n\n      this.onMove(top, left);\n    }\n\n    /**\n     * Function triggered when releasing the click in one of the color adjustment bars.\n     *\n     * @private\n     * @param {Event} e\n     */\n\n  }, {\n    key: 'released',\n    value: function released(e) {\n      this.colorpicker.lastEvent.alias = 'released';\n      this.colorpicker.lastEvent.e = e;\n\n      // e.stopPropagation();\n      // e.preventDefault();\n\n      (0, _jquery2.default)(this.colorpicker.picker).off({\n        'mousemove.colorpicker': this.moved,\n        'touchmove.colorpicker': this.moved,\n        'mouseup.colorpicker': this.released,\n        'touchend.colorpicker': this.released\n      });\n    }\n  }]);\n\n  return SliderHandler;\n}();\n\nexports.default = SliderHandler;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _options = __webpack_require__(3);\n\nvar _options2 = _interopRequireDefault(_options);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Handles everything related to the UI of the colorpicker popup: show, hide, position,...\n * @ignore\n */\nvar PopupHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   * @param {Window} root\n   */\n  function PopupHandler(colorpicker, root) {\n    _classCallCheck(this, PopupHandler);\n\n    /**\n     * @type {Window}\n     */\n    this.root = root;\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * @type {jQuery}\n     */\n    this.popoverTarget = null;\n    /**\n     * @type {jQuery}\n     */\n    this.popoverTip = null;\n\n    /**\n     * If true, the latest click was inside the popover\n     * @type {boolean}\n     */\n    this.clicking = false;\n    /**\n     * @type {boolean}\n     */\n    this.hidding = false;\n    /**\n     * @type {boolean}\n     */\n    this.showing = false;\n  }\n\n  /**\n   * @private\n   * @returns {jQuery|false}\n   */\n\n\n  _createClass(PopupHandler, [{\n    key: 'bind',\n\n\n    /**\n     * Binds the different colorpicker elements to the focus/mouse/touch events so it reacts in order to show or\n     * hide the colorpicker popup accordingly. It also adds the proper classes.\n     */\n    value: function bind() {\n      var cp = this.colorpicker;\n\n      if (cp.options.inline) {\n        cp.picker.addClass('colorpicker-inline colorpicker-visible');\n        return; // no need to bind show/hide events for inline elements\n      }\n\n      cp.picker.addClass('colorpicker-popup colorpicker-hidden');\n\n      // there is no input or addon\n      if (!this.hasInput && !this.hasAddon) {\n        return;\n      }\n\n      // create Bootstrap 4 popover\n      if (cp.options.popover) {\n        this.createPopover();\n      }\n\n      // bind addon show/hide events\n      if (this.hasAddon) {\n        // enable focus on addons\n        if (!this.addon.attr('tabindex')) {\n          this.addon.attr('tabindex', 0);\n        }\n\n        this.addon.on({\n          'mousedown.colorpicker touchstart.colorpicker': _jquery2.default.proxy(this.toggle, this)\n        });\n\n        this.addon.on({\n          'focus.colorpicker': _jquery2.default.proxy(this.show, this)\n        });\n\n        this.addon.on({\n          'focusout.colorpicker': _jquery2.default.proxy(this.hide, this)\n        });\n      }\n\n      // bind input show/hide events\n      if (this.hasInput && !this.hasAddon) {\n        this.input.on({\n          'mousedown.colorpicker touchstart.colorpicker': _jquery2.default.proxy(this.show, this),\n          'focus.colorpicker': _jquery2.default.proxy(this.show, this)\n        });\n\n        this.input.on({\n          'focusout.colorpicker': _jquery2.default.proxy(this.hide, this)\n        });\n      }\n\n      // reposition popup on window resize\n      (0, _jquery2.default)(this.root).on('resize.colorpicker', _jquery2.default.proxy(this.reposition, this));\n    }\n\n    /**\n     * Unbinds any event bound by this handler\n     */\n\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      if (this.hasInput) {\n        this.input.off({\n          'mousedown.colorpicker touchstart.colorpicker': _jquery2.default.proxy(this.show, this),\n          'focus.colorpicker': _jquery2.default.proxy(this.show, this)\n        });\n        this.input.off({\n          'focusout.colorpicker': _jquery2.default.proxy(this.hide, this)\n        });\n      }\n\n      if (this.hasAddon) {\n        this.addon.off({\n          'mousedown.colorpicker touchstart.colorpicker': _jquery2.default.proxy(this.toggle, this)\n        });\n        this.addon.off({\n          'focus.colorpicker': _jquery2.default.proxy(this.show, this)\n        });\n        this.addon.off({\n          'focusout.colorpicker': _jquery2.default.proxy(this.hide, this)\n        });\n      }\n\n      if (this.popoverTarget) {\n        this.popoverTarget.popover('dispose');\n      }\n\n      (0, _jquery2.default)(this.root).off('resize.colorpicker', _jquery2.default.proxy(this.reposition, this));\n      (0, _jquery2.default)(this.root.document).off('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.hide, this));\n      (0, _jquery2.default)(this.root.document).off('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.onClickingInside, this));\n    }\n  }, {\n    key: 'isClickingInside',\n    value: function isClickingInside(e) {\n      if (!e) {\n        return false;\n      }\n\n      return this.isOrIsInside(this.popoverTip, e.currentTarget) || this.isOrIsInside(this.popoverTip, e.target) || this.isOrIsInside(this.colorpicker.picker, e.currentTarget) || this.isOrIsInside(this.colorpicker.picker, e.target);\n    }\n  }, {\n    key: 'isOrIsInside',\n    value: function isOrIsInside(container, element) {\n      if (!container || !element) {\n        return false;\n      }\n\n      element = (0, _jquery2.default)(element);\n\n      return element.is(container) || container.find(element).length > 0;\n    }\n  }, {\n    key: 'onClickingInside',\n    value: function onClickingInside(e) {\n      this.clicking = this.isClickingInside(e);\n    }\n  }, {\n    key: 'createPopover',\n    value: function createPopover() {\n      var cp = this.colorpicker;\n\n      this.popoverTarget = this.hasAddon ? this.addon : this.input;\n\n      cp.picker.addClass('colorpicker-bs-popover-content');\n\n      this.popoverTarget.popover(_jquery2.default.extend(true, {}, _options2.default.popover, cp.options.popover, { trigger: 'manual', content: cp.picker, html: true }));\n\n      this.popoverTip = (0, _jquery2.default)(this.popoverTarget.popover('getTipElement').data('bs.popover').tip);\n      this.popoverTip.addClass('colorpicker-bs-popover');\n\n      this.popoverTarget.on('shown.bs.popover', _jquery2.default.proxy(this.fireShow, this));\n      this.popoverTarget.on('hidden.bs.popover', _jquery2.default.proxy(this.fireHide, this));\n    }\n\n    /**\n     * If the widget is not inside a container or inline, rearranges its position relative to its element offset.\n     *\n     * @param {Event} [e]\n     * @private\n     */\n\n  }, {\n    key: 'reposition',\n    value: function reposition(e) {\n      if (this.popoverTarget && this.isVisible()) {\n        this.popoverTarget.popover('update');\n      }\n    }\n\n    /**\n     * Toggles the colorpicker between visible or hidden\n     *\n     * @fires Colorpicker#colorpickerShow\n     * @fires Colorpicker#colorpickerHide\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'toggle',\n    value: function toggle(e) {\n      if (this.isVisible()) {\n        this.hide(e);\n      } else {\n        this.show(e);\n      }\n    }\n\n    /**\n     * Shows the colorpicker widget if hidden.\n     *\n     * @fires Colorpicker#colorpickerShow\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'show',\n    value: function show(e) {\n      if (this.isVisible() || this.showing || this.hidding) {\n        return;\n      }\n\n      this.showing = true;\n      this.hidding = false;\n      this.clicking = false;\n\n      var cp = this.colorpicker;\n\n      cp.lastEvent.alias = 'show';\n      cp.lastEvent.e = e;\n\n      // Prevent showing browser native HTML5 colorpicker\n      if (e && (!this.hasInput || this.input.attr('type') === 'color') && e && e.preventDefault) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n\n      // If it's a popover, add event to the document to hide the picker when clicking outside of it\n      if (this.isPopover) {\n        (0, _jquery2.default)(this.root).on('resize.colorpicker', _jquery2.default.proxy(this.reposition, this));\n      }\n\n      // add visible class before popover is shown\n      cp.picker.addClass('colorpicker-visible').removeClass('colorpicker-hidden');\n\n      if (this.popoverTarget) {\n        this.popoverTarget.popover('show');\n      } else {\n        this.fireShow();\n      }\n    }\n  }, {\n    key: 'fireShow',\n    value: function fireShow() {\n      this.hidding = false;\n      this.showing = false;\n\n      if (this.isPopover) {\n        // Add event to hide on outside click\n        (0, _jquery2.default)(this.root.document).on('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.hide, this));\n        (0, _jquery2.default)(this.root.document).on('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.onClickingInside, this));\n      }\n\n      /**\n       * (Colorpicker) When show() is called and the widget can be shown.\n       *\n       * @event Colorpicker#colorpickerShow\n       */\n      this.colorpicker.trigger('colorpickerShow');\n    }\n\n    /**\n     * Hides the colorpicker widget.\n     * Hide is prevented when it is triggered by an event whose target element has been clicked/touched.\n     *\n     * @fires Colorpicker#colorpickerHide\n     * @param {Event} [e]\n     */\n\n  }, {\n    key: 'hide',\n    value: function hide(e) {\n      if (this.isHidden() || this.showing || this.hidding) {\n        return;\n      }\n\n      var cp = this.colorpicker,\n          clicking = this.clicking || this.isClickingInside(e);\n\n      this.hidding = true;\n      this.showing = false;\n      this.clicking = false;\n\n      cp.lastEvent.alias = 'hide';\n      cp.lastEvent.e = e;\n\n      // TODO: fix having to click twice outside when losing focus and last 2 clicks where inside the colorpicker\n\n      // Prevent hide if triggered by an event and an element inside the colorpicker has been clicked/touched\n      if (clicking) {\n        this.hidding = false;\n        return;\n      }\n\n      if (this.popoverTarget) {\n        this.popoverTarget.popover('hide');\n      } else {\n        this.fireHide();\n      }\n    }\n  }, {\n    key: 'fireHide',\n    value: function fireHide() {\n      this.hidding = false;\n      this.showing = false;\n\n      var cp = this.colorpicker;\n\n      // add hidden class after popover is hidden\n      cp.picker.addClass('colorpicker-hidden').removeClass('colorpicker-visible');\n\n      // Unbind window and document events, since there is no need to keep them while the popup is hidden\n      (0, _jquery2.default)(this.root).off('resize.colorpicker', _jquery2.default.proxy(this.reposition, this));\n      (0, _jquery2.default)(this.root.document).off('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.hide, this));\n      (0, _jquery2.default)(this.root.document).off('mousedown.colorpicker touchstart.colorpicker', _jquery2.default.proxy(this.onClickingInside, this));\n\n      /**\n       * (Colorpicker) When hide() is called and the widget can be hidden.\n       *\n       * @event Colorpicker#colorpickerHide\n       */\n      cp.trigger('colorpickerHide');\n    }\n  }, {\n    key: 'focus',\n    value: function focus() {\n      if (this.hasAddon) {\n        return this.addon.focus();\n      }\n      if (this.hasInput) {\n        return this.input.focus();\n      }\n      return false;\n    }\n\n    /**\n     * Returns true if the colorpicker element has the colorpicker-visible class and not the colorpicker-hidden one.\n     * False otherwise.\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isVisible',\n    value: function isVisible() {\n      return this.colorpicker.picker.hasClass('colorpicker-visible') && !this.colorpicker.picker.hasClass('colorpicker-hidden');\n    }\n\n    /**\n     * Returns true if the colorpicker element has the colorpicker-hidden class and not the colorpicker-visible one.\n     * False otherwise.\n     *\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isHidden',\n    value: function isHidden() {\n      return this.colorpicker.picker.hasClass('colorpicker-hidden') && !this.colorpicker.picker.hasClass('colorpicker-visible');\n    }\n  }, {\n    key: 'input',\n    get: function get() {\n      return this.colorpicker.inputHandler.input;\n    }\n\n    /**\n     * @private\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasInput',\n    get: function get() {\n      return this.colorpicker.inputHandler.hasInput();\n    }\n\n    /**\n     * @private\n     * @returns {jQuery|false}\n     */\n\n  }, {\n    key: 'addon',\n    get: function get() {\n      return this.colorpicker.addonHandler.addon;\n    }\n\n    /**\n     * @private\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasAddon',\n    get: function get() {\n      return this.colorpicker.addonHandler.hasAddon();\n    }\n\n    /**\n     * @private\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isPopover',\n    get: function get() {\n      return !this.colorpicker.options.inline && !!this.popoverTip;\n    }\n  }]);\n\n  return PopupHandler;\n}();\n\nexports.default = PopupHandler;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _ColorItem = __webpack_require__(2);\n\nvar _ColorItem2 = _interopRequireDefault(_ColorItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Handles everything related to the colorpicker input\n * @ignore\n */\nvar InputHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   */\n  function InputHandler(colorpicker) {\n    _classCallCheck(this, InputHandler);\n\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * @type {jQuery|false}\n     */\n    this.input = this.colorpicker.element.is('input') ? this.colorpicker.element : this.colorpicker.options.input ? this.colorpicker.element.find(this.colorpicker.options.input) : false;\n\n    if (this.input && this.input.length === 0) {\n      this.input = false;\n    }\n\n    this._initValue();\n  }\n\n  _createClass(InputHandler, [{\n    key: 'bind',\n    value: function bind() {\n      if (!this.hasInput()) {\n        return;\n      }\n      this.input.on({\n        'keyup.colorpicker': _jquery2.default.proxy(this.onkeyup, this)\n      });\n      this.input.on({\n        'change.colorpicker': _jquery2.default.proxy(this.onchange, this)\n      });\n    }\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      if (!this.hasInput()) {\n        return;\n      }\n      this.input.off('.colorpicker');\n    }\n  }, {\n    key: '_initValue',\n    value: function _initValue() {\n      if (!this.hasInput()) {\n        return;\n      }\n\n      var val = '';\n\n      [\n      // candidates:\n      this.input.val(), this.input.data('color'), this.input.attr('data-color')].map(function (item) {\n        if (item && val === '') {\n          val = item;\n        }\n      });\n\n      if (val instanceof _ColorItem2.default) {\n        val = this.getFormattedColor(val.string(this.colorpicker.format));\n      } else if (!(typeof val === 'string' || val instanceof String)) {\n        val = '';\n      }\n\n      this.input.prop('value', val);\n    }\n\n    /**\n     * Returns the color string from the input value.\n     * If there is no input the return value is false.\n     *\n     * @returns {String|boolean}\n     */\n\n  }, {\n    key: 'getValue',\n    value: function getValue() {\n      if (!this.hasInput()) {\n        return false;\n      }\n\n      return this.input.val();\n    }\n\n    /**\n     * If the input element is present, it updates the value with the current color object color string.\n     * If the value is changed, this method fires a \"change\" event on the input element.\n     *\n     * @param {String} val\n     *\n     * @fires Colorpicker#change\n     */\n\n  }, {\n    key: 'setValue',\n    value: function setValue(val) {\n      if (!this.hasInput()) {\n        return;\n      }\n\n      var inputVal = this.input.prop('value');\n\n      val = val ? val : '';\n\n      if (val === (inputVal ? inputVal : '')) {\n        // No need to set value or trigger any event if nothing changed\n        return;\n      }\n\n      this.input.prop('value', val);\n\n      /**\n       * (Input) Triggered on the input element when a new color is selected.\n       *\n       * @event Colorpicker#change\n       */\n      this.input.trigger({\n        type: 'change',\n        colorpicker: this.colorpicker,\n        color: this.colorpicker.color,\n        value: val\n      });\n    }\n\n    /**\n     * Returns the formatted color string, with the formatting options applied\n     * (e.g. useHashPrefix)\n     *\n     * @param {String|null} val\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: 'getFormattedColor',\n    value: function getFormattedColor() {\n      var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n      val = val ? val : this.colorpicker.colorHandler.getColorString();\n\n      if (!val) {\n        return '';\n      }\n\n      val = this.colorpicker.colorHandler.resolveColorDelegate(val, false);\n\n      if (this.colorpicker.options.useHashPrefix === false) {\n        val = val.replace(/^#/g, '');\n      }\n\n      return val;\n    }\n\n    /**\n     * Returns true if the widget has an associated input element, false otherwise\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasInput',\n    value: function hasInput() {\n      return this.input !== false;\n    }\n\n    /**\n     * Returns true if the input exists and is disabled\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isEnabled',\n    value: function isEnabled() {\n      return this.hasInput() && !this.isDisabled();\n    }\n\n    /**\n     * Returns true if the input exists and is disabled\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isDisabled',\n    value: function isDisabled() {\n      return this.hasInput() && this.input.prop('disabled') === true;\n    }\n\n    /**\n     * Disables the input if any\n     *\n     * @fires Colorpicker#colorpickerDisable\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'disable',\n    value: function disable() {\n      if (this.hasInput()) {\n        this.input.prop('disabled', true);\n      }\n    }\n\n    /**\n     * Enables the input if any\n     *\n     * @fires Colorpicker#colorpickerEnable\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'enable',\n    value: function enable() {\n      if (this.hasInput()) {\n        this.input.prop('disabled', false);\n      }\n    }\n\n    /**\n     * Calls setValue with the current internal color value\n     *\n     * @fires Colorpicker#change\n     */\n\n  }, {\n    key: 'update',\n    value: function update() {\n      if (!this.hasInput()) {\n        return;\n      }\n\n      if (this.colorpicker.options.autoInputFallback === false && this.colorpicker.colorHandler.isInvalidColor()) {\n        // prevent update if color is invalid, autoInputFallback is disabled and the last event is keyup.\n        return;\n      }\n\n      this.setValue(this.getFormattedColor());\n    }\n\n    /**\n     * Function triggered when the input has changed, so the colorpicker gets updated.\n     *\n     * @private\n     * @param {Event} e\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'onchange',\n    value: function onchange(e) {\n      this.colorpicker.lastEvent.alias = 'input.change';\n      this.colorpicker.lastEvent.e = e;\n\n      var val = this.getValue();\n\n      if (val !== e.value) {\n        this.colorpicker.setValue(val);\n      }\n    }\n\n    /**\n     * Function triggered after a keyboard key has been released.\n     *\n     * @private\n     * @param {Event} e\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'onkeyup',\n    value: function onkeyup(e) {\n      this.colorpicker.lastEvent.alias = 'input.keyup';\n      this.colorpicker.lastEvent.e = e;\n\n      var val = this.getValue();\n\n      if (val !== e.value) {\n        this.colorpicker.setValue(val);\n      }\n    }\n  }]);\n\n  return InputHandler;\n}();\n\nexports.default = InputHandler;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar colorString = __webpack_require__(17);\nvar convert = __webpack_require__(20);\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* MIT license */\nvar colorNames = __webpack_require__(5);\nvar swizzle = __webpack_require__(18);\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isArrayish = __webpack_require__(19);\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function isArrayish(obj) {\n\tif (!obj) {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && obj.splice instanceof Function);\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar conversions = __webpack_require__(6);\nvar route = __webpack_require__(21);\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar conversions = __webpack_require__(6);\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _ColorItem = __webpack_require__(2);\n\nvar _ColorItem2 = _interopRequireDefault(_ColorItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Handles everything related to the colorpicker color\n * @ignore\n */\nvar ColorHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   */\n  function ColorHandler(colorpicker) {\n    _classCallCheck(this, ColorHandler);\n\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n  }\n\n  /**\n   * @returns {*|String|ColorItem}\n   */\n\n\n  _createClass(ColorHandler, [{\n    key: 'bind',\n    value: function bind() {\n      // if the color option is set\n      if (this.colorpicker.options.color) {\n        this.color = this.createColor(this.colorpicker.options.color);\n        return;\n      }\n\n      // if element[color] is empty and the input has a value\n      if (!this.color && !!this.colorpicker.inputHandler.getValue()) {\n        this.color = this.createColor(this.colorpicker.inputHandler.getValue(), this.colorpicker.options.autoInputFallback);\n      }\n    }\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      this.colorpicker.element.removeData('color');\n    }\n\n    /**\n     * Returns the color string from the input value or the 'data-color' attribute of the input or element.\n     * If empty, it returns the defaultValue parameter.\n     *\n     * @returns {String|*}\n     */\n\n  }, {\n    key: 'getColorString',\n    value: function getColorString() {\n      if (!this.hasColor()) {\n        return '';\n      }\n\n      return this.color.string(this.format);\n    }\n\n    /**\n     * Sets the color value\n     *\n     * @param {String|ColorItem} val\n     */\n\n  }, {\n    key: 'setColorString',\n    value: function setColorString(val) {\n      var color = val ? this.createColor(val) : null;\n\n      this.color = color ? color : null;\n    }\n\n    /**\n     * Creates a new color using the widget instance options (fallbackColor, format).\n     *\n     * @fires Colorpicker#colorpickerInvalid\n     * @param {*} val\n     * @param {boolean} fallbackOnInvalid\n     * @returns {ColorItem}\n     */\n\n  }, {\n    key: 'createColor',\n    value: function createColor(val) {\n      var fallbackOnInvalid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      var color = new _ColorItem2.default(this.resolveColorDelegate(val), this.format);\n\n      if (!color.isValid()) {\n        if (fallbackOnInvalid) {\n          color = this.getFallbackColor();\n        }\n\n        /**\n         * (Colorpicker) Fired when the color is invalid and the fallback color is going to be used.\n         *\n         * @event Colorpicker#colorpickerInvalid\n         */\n        this.colorpicker.trigger('colorpickerInvalid', color, val);\n      }\n\n      if (!this.isAlphaEnabled()) {\n        // Alpha is disabled\n        color.alpha = 1;\n      }\n\n      return color;\n    }\n  }, {\n    key: 'getFallbackColor',\n    value: function getFallbackColor() {\n      if (this.fallback && this.fallback === this.color) {\n        return this.color;\n      }\n\n      var fallback = this.resolveColorDelegate(this.fallback);\n\n      var color = new _ColorItem2.default(fallback, this.format);\n\n      if (!color.isValid()) {\n        console.warn('The fallback color is invalid. Falling back to the previous color or black if any.');\n        return this.color ? this.color : new _ColorItem2.default('#000000', this.format);\n      }\n\n      return color;\n    }\n\n    /**\n     * @returns {ColorItem}\n     */\n\n  }, {\n    key: 'assureColor',\n    value: function assureColor() {\n      if (!this.hasColor()) {\n        this.color = this.getFallbackColor();\n      }\n\n      return this.color;\n    }\n\n    /**\n     * Delegates the color resolution to the colorpicker extensions.\n     *\n     * @param {String|*} color\n     * @param {boolean} realColor if true, the color should resolve into a real (not named) color code\n     * @returns {ColorItem|String|*|null}\n     */\n\n  }, {\n    key: 'resolveColorDelegate',\n    value: function resolveColorDelegate(color) {\n      var realColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      var extResolvedColor = false;\n\n      _jquery2.default.each(this.colorpicker.extensions, function (name, ext) {\n        if (extResolvedColor !== false) {\n          // skip if resolved\n          return;\n        }\n        extResolvedColor = ext.resolveColor(color, realColor);\n      });\n\n      return extResolvedColor ? extResolvedColor : color;\n    }\n\n    /**\n     * Checks if there is a color object, that it is valid and it is not a fallback\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isInvalidColor',\n    value: function isInvalidColor() {\n      return !this.hasColor() || !this.color.isValid();\n    }\n\n    /**\n     * Returns true if the useAlpha option is exactly true, false otherwise\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isAlphaEnabled',\n    value: function isAlphaEnabled() {\n      return this.colorpicker.options.useAlpha !== false;\n    }\n\n    /**\n     * Returns true if the current color object is an instance of Color, false otherwise.\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'hasColor',\n    value: function hasColor() {\n      return this.color instanceof _ColorItem2.default;\n    }\n  }, {\n    key: 'fallback',\n    get: function get() {\n      return this.colorpicker.options.fallbackColor ? this.colorpicker.options.fallbackColor : this.hasColor() ? this.color : null;\n    }\n\n    /**\n     * @returns {String|null}\n     */\n\n  }, {\n    key: 'format',\n    get: function get() {\n      if (this.colorpicker.options.format) {\n        return this.colorpicker.options.format;\n      }\n\n      if (this.hasColor() && this.color.hasTransparency() && this.color.format.match(/^hex/)) {\n        return this.isAlphaEnabled() ? 'rgba' : 'hex';\n      }\n\n      if (this.hasColor()) {\n        return this.color.format;\n      }\n\n      return 'rgb';\n    }\n\n    /**\n     * Internal color getter\n     *\n     * @type {ColorItem|null}\n     */\n\n  }, {\n    key: 'color',\n    get: function get() {\n      return this.colorpicker.element.data('color');\n    }\n\n    /**\n     * Internal color setter\n     *\n     * @ignore\n     * @param {ColorItem|null} value\n     */\n    ,\n    set: function set(value) {\n      this.colorpicker.element.data('color', value);\n\n      if (value instanceof _ColorItem2.default && this.colorpicker.options.format === 'auto') {\n        // If format is 'auto', use the first parsed one from now on\n        this.colorpicker.options.format = this.color.format;\n      }\n    }\n  }]);\n\n  return ColorHandler;\n}();\n\nexports.default = ColorHandler;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jquery = __webpack_require__(0);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Handles everything related to the colorpicker UI\n * @ignore\n */\nvar PickerHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   */\n  function PickerHandler(colorpicker) {\n    _classCallCheck(this, PickerHandler);\n\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * @type {jQuery}\n     */\n    this.picker = null;\n  }\n\n  _createClass(PickerHandler, [{\n    key: 'bind',\n    value: function bind() {\n      /**\n       * @type {jQuery|HTMLElement}\n       */\n      var picker = this.picker = (0, _jquery2.default)(this.options.template);\n\n      if (this.options.customClass) {\n        picker.addClass(this.options.customClass);\n      }\n\n      if (this.options.horizontal) {\n        picker.addClass('colorpicker-horizontal');\n      }\n\n      if (this._supportsAlphaBar()) {\n        this.options.useAlpha = true;\n        picker.addClass('colorpicker-with-alpha');\n      } else {\n        this.options.useAlpha = false;\n      }\n    }\n  }, {\n    key: 'attach',\n    value: function attach() {\n      // Inject the colorpicker element into the DOM\n      var pickerParent = this.colorpicker.container ? this.colorpicker.container : null;\n\n      if (pickerParent) {\n        this.picker.appendTo(pickerParent);\n      }\n    }\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      this.picker.remove();\n    }\n  }, {\n    key: '_supportsAlphaBar',\n    value: function _supportsAlphaBar() {\n      return (this.options.useAlpha || this.colorpicker.colorHandler.hasColor() && this.color.hasTransparency()) && this.options.useAlpha !== false && (!this.options.format || this.options.format && !this.options.format.match(/^hex([36])?$/i));\n    }\n\n    /**\n     * Changes the color adjustment bars using the current color object information.\n     */\n\n  }, {\n    key: 'update',\n    value: function update() {\n      if (!this.colorpicker.colorHandler.hasColor()) {\n        return;\n      }\n\n      var vertical = this.options.horizontal !== true,\n          slider = vertical ? this.options.sliders : this.options.slidersHorz;\n\n      var saturationGuide = this.picker.find('.colorpicker-saturation .colorpicker-guide'),\n          hueGuide = this.picker.find('.colorpicker-hue .colorpicker-guide'),\n          alphaGuide = this.picker.find('.colorpicker-alpha .colorpicker-guide');\n\n      var hsva = this.color.toHsvaRatio();\n\n      // Set guides position\n      if (hueGuide.length) {\n        hueGuide.css(vertical ? 'top' : 'left', (vertical ? slider.hue.maxTop : slider.hue.maxLeft) * (1 - hsva.h));\n      }\n      if (alphaGuide.length) {\n        alphaGuide.css(vertical ? 'top' : 'left', (vertical ? slider.alpha.maxTop : slider.alpha.maxLeft) * (1 - hsva.a));\n      }\n      if (saturationGuide.length) {\n        saturationGuide.css({\n          'top': slider.saturation.maxTop - hsva.v * slider.saturation.maxTop,\n          'left': hsva.s * slider.saturation.maxLeft\n        });\n      }\n\n      // Set saturation hue background\n      this.picker.find('.colorpicker-saturation').css('backgroundColor', this.color.getCloneHueOnly().toHexString()); // we only need hue\n\n      // Set alpha color gradient\n      var hexColor = this.color.toHexString();\n\n      var alphaBg = '';\n\n      if (this.options.horizontal) {\n        alphaBg = 'linear-gradient(to right, ' + hexColor + ' 0%, transparent 100%)';\n      } else {\n        alphaBg = 'linear-gradient(to bottom, ' + hexColor + ' 0%, transparent 100%)';\n      }\n\n      this.picker.find('.colorpicker-alpha-color').css('background', alphaBg);\n    }\n  }, {\n    key: 'options',\n    get: function get() {\n      return this.colorpicker.options;\n    }\n  }, {\n    key: 'color',\n    get: function get() {\n      return this.colorpicker.colorHandler.color;\n    }\n  }]);\n\n  return PickerHandler;\n}();\n\nexports.default = PickerHandler;\nmodule.exports = exports.default;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Handles everything related to the colorpicker addon\n * @ignore\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AddonHandler = function () {\n  /**\n   * @param {Colorpicker} colorpicker\n   */\n  function AddonHandler(colorpicker) {\n    _classCallCheck(this, AddonHandler);\n\n    /**\n     * @type {Colorpicker}\n     */\n    this.colorpicker = colorpicker;\n    /**\n     * @type {jQuery}\n     */\n    this.addon = null;\n  }\n\n  _createClass(AddonHandler, [{\n    key: 'hasAddon',\n    value: function hasAddon() {\n      return !!this.addon;\n    }\n  }, {\n    key: 'bind',\n    value: function bind() {\n      /**\n       * @type {*|jQuery}\n       */\n      this.addon = this.colorpicker.options.addon ? this.colorpicker.element.find(this.colorpicker.options.addon) : null;\n\n      if (this.addon && this.addon.length === 0) {\n        // not found\n        this.addon = null;\n      }\n    }\n  }, {\n    key: 'unbind',\n    value: function unbind() {\n      if (this.hasAddon()) {\n        this.addon.off('.colorpicker');\n      }\n    }\n\n    /**\n     * If the addon element is present, its background color is updated\n     */\n\n  }, {\n    key: 'update',\n    value: function update() {\n      if (!this.colorpicker.colorHandler.hasColor() || !this.hasAddon()) {\n        return;\n      }\n\n      var colorStr = this.colorpicker.colorHandler.getColorString();\n\n      var styles = { 'background': colorStr };\n\n      var icn = this.addon.find('i').eq(0);\n\n      if (icn.length > 0) {\n        icn.css(styles);\n      } else {\n        this.addon.css(styles);\n      }\n    }\n  }]);\n\n  return AddonHandler;\n}();\n\nexports.default = AddonHandler;\nmodule.exports = exports.default;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=bootstrap-colorpicker.js.map"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-slider/bootstrap-slider.js",
    "content": "/*! =======================================================\n                      VERSION  11.0.2              \n========================================================= */\n\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! =========================================================\n * bootstrap-slider.js\n *\n * Maintainers:\n *\t\tKyle Kemp\n *\t\t\t- Twitter: @seiyria\n *\t\t\t- Github:  seiyria\n *\t\tRohit Kalkur\n *\t\t\t- Twitter: @Rovolutionary\n *\t\t\t- Github:  rovolution\n *\n * =========================================================\n *\n * bootstrap-slider is released under the MIT License\n * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n *\n * ========================================================= */\n\n/**\n * Bridget makes jQuery widgets\n * v1.0.1\n * MIT license\n */\nvar windowIsDefined = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\";\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine([\"jquery\"], factory);\n\t} else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n\t\tvar jQuery;\n\t\ttry {\n\t\t\tjQuery = require(\"jquery\");\n\t\t} catch (err) {\n\t\t\tjQuery = null;\n\t\t}\n\t\tmodule.exports = factory(jQuery);\n\t} else if (window) {\n\t\twindow.Slider = factory(window.jQuery);\n\t}\n})(function ($) {\n\t// Constants\n\tvar NAMESPACE_MAIN = 'slider';\n\tvar NAMESPACE_ALTERNATE = 'bootstrapSlider';\n\n\t// Polyfill console methods\n\tif (windowIsDefined && !window.console) {\n\t\twindow.console = {};\n\t}\n\tif (windowIsDefined && !window.console.log) {\n\t\twindow.console.log = function () {};\n\t}\n\tif (windowIsDefined && !window.console.warn) {\n\t\twindow.console.warn = function () {};\n\t}\n\n\t// Reference to Slider constructor\n\tvar Slider;\n\n\t(function ($) {\n\n\t\t'use strict';\n\n\t\t// -------------------------- utils -------------------------- //\n\n\t\tvar slice = Array.prototype.slice;\n\n\t\tfunction noop() {}\n\n\t\t// -------------------------- definition -------------------------- //\n\n\t\tfunction defineBridget($) {\n\n\t\t\t// bail if no jQuery\n\t\t\tif (!$) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// -------------------------- addOptionMethod -------------------------- //\n\n\t\t\t/**\n    * adds option method -> $().plugin('option', {...})\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\tfunction addOptionMethod(PluginClass) {\n\t\t\t\t// don't overwrite original option method\n\t\t\t\tif (PluginClass.prototype.option) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// option setter\n\t\t\t\tPluginClass.prototype.option = function (opts) {\n\t\t\t\t\t// bail out if not an object\n\t\t\t\t\tif (!$.isPlainObject(opts)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.options = $.extend(true, this.options, opts);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// -------------------------- plugin bridge -------------------------- //\n\n\t\t\t// helper function for logging errors\n\t\t\t// $.error breaks jQuery chaining\n\t\t\tvar logError = typeof console === 'undefined' ? noop : function (message) {\n\t\t\t\tconsole.error(message);\n\t\t\t};\n\n\t\t\t/**\n    * jQuery plugin bridge, access methods like $elem.plugin('method')\n    * @param {String} namespace - plugin name\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\tfunction bridge(namespace, PluginClass) {\n\t\t\t\t// add to jQuery fn namespace\n\t\t\t\t$.fn[namespace] = function (options) {\n\t\t\t\t\tif (typeof options === 'string') {\n\t\t\t\t\t\t// call plugin method when first argument is a string\n\t\t\t\t\t\t// get arguments for method\n\t\t\t\t\t\tvar args = slice.call(arguments, 1);\n\n\t\t\t\t\t\tfor (var i = 0, len = this.length; i < len; i++) {\n\t\t\t\t\t\t\tvar elem = this[i];\n\t\t\t\t\t\t\tvar instance = $.data(elem, namespace);\n\t\t\t\t\t\t\tif (!instance) {\n\t\t\t\t\t\t\t\tlogError(\"cannot call methods on \" + namespace + \" prior to initialization; \" + \"attempted to call '\" + options + \"'\");\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!$.isFunction(instance[options]) || options.charAt(0) === '_') {\n\t\t\t\t\t\t\t\tlogError(\"no such method '\" + options + \"' for \" + namespace + \" instance\");\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// trigger method with arguments\n\t\t\t\t\t\t\tvar returnValue = instance[options].apply(instance, args);\n\n\t\t\t\t\t\t\t// break look and return first value if provided\n\t\t\t\t\t\t\tif (returnValue !== undefined && returnValue !== instance) {\n\t\t\t\t\t\t\t\treturn returnValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// return this if no return value\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar objects = this.map(function () {\n\t\t\t\t\t\t\tvar instance = $.data(this, namespace);\n\t\t\t\t\t\t\tif (instance) {\n\t\t\t\t\t\t\t\t// apply options & init\n\t\t\t\t\t\t\t\tinstance.option(options);\n\t\t\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// initialize new instance\n\t\t\t\t\t\t\t\tinstance = new PluginClass(this, options);\n\t\t\t\t\t\t\t\t$.data(this, namespace, instance);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn $(this);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (objects.length === 1) {\n\t\t\t\t\t\t\treturn objects[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn objects;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// -------------------------- bridget -------------------------- //\n\n\t\t\t/**\n    * converts a Prototypical class into a proper jQuery plugin\n    *   the class must have a ._init method\n    * @param {String} namespace - plugin name, used in $().pluginName\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\t$.bridget = function (namespace, PluginClass) {\n\t\t\t\taddOptionMethod(PluginClass);\n\t\t\t\tbridge(namespace, PluginClass);\n\t\t\t};\n\n\t\t\treturn $.bridget;\n\t\t}\n\n\t\t// get jquery from browser global\n\t\tdefineBridget($);\n\t})($);\n\n\t/*************************************************\n \t\t\tBOOTSTRAP-SLIDER SOURCE CODE\n \t**************************************************/\n\n\t(function ($) {\n\t\tvar autoRegisterNamespace = void 0;\n\n\t\tvar ErrorMsgs = {\n\t\t\tformatInvalidInputErrorMsg: function formatInvalidInputErrorMsg(input) {\n\t\t\t\treturn \"Invalid input value '\" + input + \"' passed in\";\n\t\t\t},\n\t\t\tcallingContextNotSliderInstance: \"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method\"\n\t\t};\n\n\t\tvar SliderScale = {\n\t\t\tlinear: {\n\t\t\t\tgetValue: function getValue(value, options) {\n\t\t\t\t\tif (value < options.min) {\n\t\t\t\t\t\treturn options.min;\n\t\t\t\t\t} else if (value > options.max) {\n\t\t\t\t\t\treturn options.max;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttoValue: function toValue(percentage) {\n\t\t\t\t\tvar rawValue = percentage / 100 * (this.options.max - this.options.min);\n\t\t\t\t\tvar shouldAdjustWithBase = true;\n\t\t\t\t\tif (this.options.ticks_positions.length > 0) {\n\t\t\t\t\t\tvar minv,\n\t\t\t\t\t\t    maxv,\n\t\t\t\t\t\t    minp,\n\t\t\t\t\t\t    maxp = 0;\n\t\t\t\t\t\tfor (var i = 1; i < this.options.ticks_positions.length; i++) {\n\t\t\t\t\t\t\tif (percentage <= this.options.ticks_positions[i]) {\n\t\t\t\t\t\t\t\tminv = this.options.ticks[i - 1];\n\t\t\t\t\t\t\t\tminp = this.options.ticks_positions[i - 1];\n\t\t\t\t\t\t\t\tmaxv = this.options.ticks[i];\n\t\t\t\t\t\t\t\tmaxp = this.options.ticks_positions[i];\n\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar partialPercentage = (percentage - minp) / (maxp - minp);\n\t\t\t\t\t\trawValue = minv + partialPercentage * (maxv - minv);\n\t\t\t\t\t\tshouldAdjustWithBase = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar adjustment = shouldAdjustWithBase ? this.options.min : 0;\n\t\t\t\t\tvar value = adjustment + Math.round(rawValue / this.options.step) * this.options.step;\n\t\t\t\t\treturn SliderScale.linear.getValue(value, this.options);\n\t\t\t\t},\n\t\t\t\ttoPercentage: function toPercentage(value) {\n\t\t\t\t\tif (this.options.max === this.options.min) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.options.ticks_positions.length > 0) {\n\t\t\t\t\t\tvar minv,\n\t\t\t\t\t\t    maxv,\n\t\t\t\t\t\t    minp,\n\t\t\t\t\t\t    maxp = 0;\n\t\t\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\t\t\tif (value <= this.options.ticks[i]) {\n\t\t\t\t\t\t\t\tminv = i > 0 ? this.options.ticks[i - 1] : 0;\n\t\t\t\t\t\t\t\tminp = i > 0 ? this.options.ticks_positions[i - 1] : 0;\n\t\t\t\t\t\t\t\tmaxv = this.options.ticks[i];\n\t\t\t\t\t\t\t\tmaxp = this.options.ticks_positions[i];\n\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\t\tvar partialPercentage = (value - minv) / (maxv - minv);\n\t\t\t\t\t\t\treturn minp + partialPercentage * (maxp - minp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn 100 * (value - this.options.min) / (this.options.max - this.options.min);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tlogarithmic: {\n\t\t\t\t/* Based on http://stackoverflow.com/questions/846221/logarithmic-slider */\n\t\t\t\ttoValue: function toValue(percentage) {\n\t\t\t\t\tvar offset = 1 - this.options.min;\n\t\t\t\t\tvar min = Math.log(this.options.min + offset);\n\t\t\t\t\tvar max = Math.log(this.options.max + offset);\n\t\t\t\t\tvar value = Math.exp(min + (max - min) * percentage / 100) - offset;\n\t\t\t\t\tif (Math.round(value) === max) {\n\t\t\t\t\t\treturn max;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = this.options.min + Math.round((value - this.options.min) / this.options.step) * this.options.step;\n\t\t\t\t\t/* Rounding to the nearest step could exceed the min or\n      * max, so clip to those values. */\n\t\t\t\t\treturn SliderScale.linear.getValue(value, this.options);\n\t\t\t\t},\n\t\t\t\ttoPercentage: function toPercentage(value) {\n\t\t\t\t\tif (this.options.max === this.options.min) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar offset = 1 - this.options.min;\n\t\t\t\t\t\tvar max = Math.log(this.options.max + offset);\n\t\t\t\t\t\tvar min = Math.log(this.options.min + offset);\n\t\t\t\t\t\tvar v = Math.log(value + offset);\n\t\t\t\t\t\treturn 100 * (v - min) / (max - min);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/*************************************************\n  \t\t\t\t\t\tCONSTRUCTOR\n  \t**************************************************/\n\t\tSlider = function Slider(element, options) {\n\t\t\tcreateNewSlider.call(this, element, options);\n\t\t\treturn this;\n\t\t};\n\n\t\tfunction createNewSlider(element, options) {\n\n\t\t\t/*\n   \tThe internal state object is used to store data about the current 'state' of slider.\n   \tThis includes values such as the `value`, `enabled`, etc...\n   */\n\t\t\tthis._state = {\n\t\t\t\tvalue: null,\n\t\t\t\tenabled: null,\n\t\t\t\toffset: null,\n\t\t\t\tsize: null,\n\t\t\t\tpercentage: null,\n\t\t\t\tinDrag: false,\n\t\t\t\tover: false,\n\t\t\t\ttickIndex: null\n\t\t\t};\n\n\t\t\t// The objects used to store the reference to the tick methods if ticks_tooltip is on\n\t\t\tthis.ticksCallbackMap = {};\n\t\t\tthis.handleCallbackMap = {};\n\n\t\t\tif (typeof element === \"string\") {\n\t\t\t\tthis.element = document.querySelector(element);\n\t\t\t} else if (element instanceof HTMLElement) {\n\t\t\t\tthis.element = element;\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\tProcess Options\n   \t**************************************************/\n\t\t\toptions = options ? options : {};\n\t\t\tvar optionTypes = Object.keys(this.defaultOptions);\n\n\t\t\tvar isMinSet = options.hasOwnProperty('min');\n\t\t\tvar isMaxSet = options.hasOwnProperty('max');\n\n\t\t\tfor (var i = 0; i < optionTypes.length; i++) {\n\t\t\t\tvar optName = optionTypes[i];\n\n\t\t\t\t// First check if an option was passed in via the constructor\n\t\t\t\tvar val = options[optName];\n\t\t\t\t// If no data attrib, then check data atrributes\n\t\t\t\tval = typeof val !== 'undefined' ? val : getDataAttrib(this.element, optName);\n\t\t\t\t// Finally, if nothing was specified, use the defaults\n\t\t\t\tval = val !== null ? val : this.defaultOptions[optName];\n\n\t\t\t\t// Set all options on the instance of the Slider\n\t\t\t\tif (!this.options) {\n\t\t\t\t\tthis.options = {};\n\t\t\t\t}\n\t\t\t\tthis.options[optName] = val;\n\t\t\t}\n\n\t\t\tthis.ticksAreValid = Array.isArray(this.options.ticks) && this.options.ticks.length > 0;\n\n\t\t\t// Lock to ticks only when ticks[] is defined and set\n\t\t\tif (!this.ticksAreValid) {\n\t\t\t\tthis.options.lock_to_ticks = false;\n\t\t\t}\n\n\t\t\t// Check options.rtl\n\t\t\tif (this.options.rtl === 'auto') {\n\t\t\t\tvar computedStyle = window.getComputedStyle(this.element);\n\t\t\t\tif (computedStyle != null) {\n\t\t\t\t\tthis.options.rtl = computedStyle.direction === 'rtl';\n\t\t\t\t} else {\n\t\t\t\t\t// Fix for Firefox bug in versions less than 62:\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1467722\n\t\t\t\t\tthis.options.rtl = this.element.style.direction === 'rtl';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*\n   \tValidate `tooltip_position` against 'orientation`\n   \t- if `tooltip_position` is incompatible with orientation, switch it to a default compatible with specified `orientation`\n   \t\t-- default for \"vertical\" -> \"right\", \"left\" if rtl\n   \t\t-- default for \"horizontal\" -> \"top\"\n   */\n\t\t\tif (this.options.orientation === \"vertical\" && (this.options.tooltip_position === \"top\" || this.options.tooltip_position === \"bottom\")) {\n\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\tthis.options.tooltip_position = \"left\";\n\t\t\t\t} else {\n\t\t\t\t\tthis.options.tooltip_position = \"right\";\n\t\t\t\t}\n\t\t\t} else if (this.options.orientation === \"horizontal\" && (this.options.tooltip_position === \"left\" || this.options.tooltip_position === \"right\")) {\n\n\t\t\t\tthis.options.tooltip_position = \"top\";\n\t\t\t}\n\n\t\t\tfunction getDataAttrib(element, optName) {\n\t\t\t\tvar dataName = \"data-slider-\" + optName.replace(/_/g, '-');\n\t\t\t\tvar dataValString = element.getAttribute(dataName);\n\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(dataValString);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn dataValString;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\tCreate Markup\n   \t**************************************************/\n\n\t\t\tvar origWidth = this.element.style.width;\n\t\t\tvar updateSlider = false;\n\t\t\tvar parent = this.element.parentNode;\n\t\t\tvar sliderTrackSelection;\n\t\t\tvar sliderTrackLow, sliderTrackHigh;\n\t\t\tvar sliderMinHandle;\n\t\t\tvar sliderMaxHandle;\n\n\t\t\tif (this.sliderElem) {\n\t\t\t\tupdateSlider = true;\n\t\t\t} else {\n\t\t\t\t/* Create elements needed for slider */\n\t\t\t\tthis.sliderElem = document.createElement(\"div\");\n\t\t\t\tthis.sliderElem.className = \"slider\";\n\n\t\t\t\t/* Create slider track elements */\n\t\t\t\tvar sliderTrack = document.createElement(\"div\");\n\t\t\t\tsliderTrack.className = \"slider-track\";\n\n\t\t\t\tsliderTrackLow = document.createElement(\"div\");\n\t\t\t\tsliderTrackLow.className = \"slider-track-low\";\n\n\t\t\t\tsliderTrackSelection = document.createElement(\"div\");\n\t\t\t\tsliderTrackSelection.className = \"slider-selection\";\n\n\t\t\t\tsliderTrackHigh = document.createElement(\"div\");\n\t\t\t\tsliderTrackHigh.className = \"slider-track-high\";\n\n\t\t\t\tsliderMinHandle = document.createElement(\"div\");\n\t\t\t\tsliderMinHandle.className = \"slider-handle min-slider-handle\";\n\t\t\t\tsliderMinHandle.setAttribute('role', 'slider');\n\t\t\t\tsliderMinHandle.setAttribute('aria-valuemin', this.options.min);\n\t\t\t\tsliderMinHandle.setAttribute('aria-valuemax', this.options.max);\n\n\t\t\t\tsliderMaxHandle = document.createElement(\"div\");\n\t\t\t\tsliderMaxHandle.className = \"slider-handle max-slider-handle\";\n\t\t\t\tsliderMaxHandle.setAttribute('role', 'slider');\n\t\t\t\tsliderMaxHandle.setAttribute('aria-valuemin', this.options.min);\n\t\t\t\tsliderMaxHandle.setAttribute('aria-valuemax', this.options.max);\n\n\t\t\t\tsliderTrack.appendChild(sliderTrackLow);\n\t\t\t\tsliderTrack.appendChild(sliderTrackSelection);\n\t\t\t\tsliderTrack.appendChild(sliderTrackHigh);\n\n\t\t\t\t/* Create highlight range elements */\n\t\t\t\tthis.rangeHighlightElements = [];\n\t\t\t\tvar rangeHighlightsOpts = this.options.rangeHighlights;\n\t\t\t\tif (Array.isArray(rangeHighlightsOpts) && rangeHighlightsOpts.length > 0) {\n\t\t\t\t\tfor (var j = 0; j < rangeHighlightsOpts.length; j++) {\n\t\t\t\t\t\tvar rangeHighlightElement = document.createElement(\"div\");\n\t\t\t\t\t\tvar customClassString = rangeHighlightsOpts[j].class || \"\";\n\t\t\t\t\t\trangeHighlightElement.className = \"slider-rangeHighlight slider-selection \" + customClassString;\n\t\t\t\t\t\tthis.rangeHighlightElements.push(rangeHighlightElement);\n\t\t\t\t\t\tsliderTrack.appendChild(rangeHighlightElement);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Add aria-labelledby to handle's */\n\t\t\t\tvar isLabelledbyArray = Array.isArray(this.options.labelledby);\n\t\t\t\tif (isLabelledbyArray && this.options.labelledby[0]) {\n\t\t\t\t\tsliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby[0]);\n\t\t\t\t}\n\t\t\t\tif (isLabelledbyArray && this.options.labelledby[1]) {\n\t\t\t\t\tsliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby[1]);\n\t\t\t\t}\n\t\t\t\tif (!isLabelledbyArray && this.options.labelledby) {\n\t\t\t\t\tsliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby);\n\t\t\t\t\tsliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby);\n\t\t\t\t}\n\n\t\t\t\t/* Create ticks */\n\t\t\t\tthis.ticks = [];\n\t\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\t\t\t\t\tthis.ticksContainer = document.createElement('div');\n\t\t\t\t\tthis.ticksContainer.className = 'slider-tick-container';\n\n\t\t\t\t\tfor (i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\t\tvar tick = document.createElement('div');\n\t\t\t\t\t\ttick.className = 'slider-tick';\n\t\t\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\t\t\tvar tickListenerReference = this._addTickListener();\n\t\t\t\t\t\t\tvar enterCallback = tickListenerReference.addMouseEnter(this, tick, i);\n\t\t\t\t\t\t\tvar leaveCallback = tickListenerReference.addMouseLeave(this, tick);\n\n\t\t\t\t\t\t\tthis.ticksCallbackMap[i] = {\n\t\t\t\t\t\t\t\tmouseEnter: enterCallback,\n\t\t\t\t\t\t\t\tmouseLeave: leaveCallback\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.ticks.push(tick);\n\t\t\t\t\t\tthis.ticksContainer.appendChild(tick);\n\t\t\t\t\t}\n\n\t\t\t\t\tsliderTrackSelection.className += \" tick-slider-selection\";\n\t\t\t\t}\n\n\t\t\t\tthis.tickLabels = [];\n\t\t\t\tif (Array.isArray(this.options.ticks_labels) && this.options.ticks_labels.length > 0) {\n\t\t\t\t\tthis.tickLabelContainer = document.createElement('div');\n\t\t\t\t\tthis.tickLabelContainer.className = 'slider-tick-label-container';\n\n\t\t\t\t\tfor (i = 0; i < this.options.ticks_labels.length; i++) {\n\t\t\t\t\t\tvar label = document.createElement('div');\n\t\t\t\t\t\tvar noTickPositionsSpecified = this.options.ticks_positions.length === 0;\n\t\t\t\t\t\tvar tickLabelsIndex = this.options.reversed && noTickPositionsSpecified ? this.options.ticks_labels.length - (i + 1) : i;\n\t\t\t\t\t\tlabel.className = 'slider-tick-label';\n\t\t\t\t\t\tlabel.innerHTML = this.options.ticks_labels[tickLabelsIndex];\n\n\t\t\t\t\t\tthis.tickLabels.push(label);\n\t\t\t\t\t\tthis.tickLabelContainer.appendChild(label);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar createAndAppendTooltipSubElements = function createAndAppendTooltipSubElements(tooltipElem) {\n\t\t\t\t\tvar arrow = document.createElement(\"div\");\n\t\t\t\t\tarrow.className = \"arrow\";\n\n\t\t\t\t\tvar inner = document.createElement(\"div\");\n\t\t\t\t\tinner.className = \"tooltip-inner\";\n\n\t\t\t\t\ttooltipElem.appendChild(arrow);\n\t\t\t\t\ttooltipElem.appendChild(inner);\n\t\t\t\t};\n\n\t\t\t\t/* Create tooltip elements */\n\t\t\t\tvar sliderTooltip = document.createElement(\"div\");\n\t\t\t\tsliderTooltip.className = \"tooltip tooltip-main\";\n\t\t\t\tsliderTooltip.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltip);\n\n\t\t\t\tvar sliderTooltipMin = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMin.className = \"tooltip tooltip-min\";\n\t\t\t\tsliderTooltipMin.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMin);\n\n\t\t\t\tvar sliderTooltipMax = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMax.className = \"tooltip tooltip-max\";\n\t\t\t\tsliderTooltipMax.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMax);\n\n\t\t\t\t/* Append components to sliderElem */\n\t\t\t\tthis.sliderElem.appendChild(sliderTrack);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltip);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMin);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMax);\n\n\t\t\t\tif (this.tickLabelContainer) {\n\t\t\t\t\tthis.sliderElem.appendChild(this.tickLabelContainer);\n\t\t\t\t}\n\t\t\t\tif (this.ticksContainer) {\n\t\t\t\t\tthis.sliderElem.appendChild(this.ticksContainer);\n\t\t\t\t}\n\n\t\t\t\tthis.sliderElem.appendChild(sliderMinHandle);\n\t\t\t\tthis.sliderElem.appendChild(sliderMaxHandle);\n\n\t\t\t\t/* Append slider element to parent container, right before the original <input> element */\n\t\t\t\tparent.insertBefore(this.sliderElem, this.element);\n\n\t\t\t\t/* Hide original <input> element */\n\t\t\t\tthis.element.style.display = \"none\";\n\t\t\t}\n\t\t\t/* If JQuery exists, cache JQ references */\n\t\t\tif ($) {\n\t\t\t\tthis.$element = $(this.element);\n\t\t\t\tthis.$sliderElem = $(this.sliderElem);\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\t\tSetup\n   \t**************************************************/\n\t\t\tthis.eventToCallbackMap = {};\n\t\t\tthis.sliderElem.id = this.options.id;\n\n\t\t\tthis.touchCapable = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch;\n\n\t\t\tthis.touchX = 0;\n\t\t\tthis.touchY = 0;\n\n\t\t\tthis.tooltip = this.sliderElem.querySelector('.tooltip-main');\n\t\t\tthis.tooltipInner = this.tooltip.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_min = this.sliderElem.querySelector('.tooltip-min');\n\t\t\tthis.tooltipInner_min = this.tooltip_min.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_max = this.sliderElem.querySelector('.tooltip-max');\n\t\t\tthis.tooltipInner_max = this.tooltip_max.querySelector('.tooltip-inner');\n\n\t\t\tif (SliderScale[this.options.scale]) {\n\t\t\t\tthis.options.scale = SliderScale[this.options.scale];\n\t\t\t}\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-vertical');\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-rtl');\n\t\t\t\tthis._removeClass(this.tooltip, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_max, 'hide');\n\n\t\t\t\t// Undo existing inline styles for track\n\t\t\t\t[\"left\", \"right\", \"top\", \"width\", \"height\"].forEach(function (prop) {\n\t\t\t\t\tthis._removeProperty(this.trackLow, prop);\n\t\t\t\t\tthis._removeProperty(this.trackSelection, prop);\n\t\t\t\t\tthis._removeProperty(this.trackHigh, prop);\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles on handles\n\t\t\t\t[this.handle1, this.handle2].forEach(function (handle) {\n\t\t\t\t\tthis._removeProperty(handle, 'left');\n\t\t\t\t\tthis._removeProperty(handle, 'right');\n\t\t\t\t\tthis._removeProperty(handle, 'top');\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles and classes on tooltips\n\t\t\t\t[this.tooltip, this.tooltip_min, this.tooltip_max].forEach(function (tooltip) {\n\t\t\t\t\tthis._removeProperty(tooltip, 'bs-tooltip-left');\n\t\t\t\t\tthis._removeProperty(tooltip, 'bs-tooltip-right');\n\t\t\t\t\tthis._removeProperty(tooltip, 'bs-tooltip-top');\n\n\t\t\t\t\tthis._removeClass(tooltip, 'bs-tooltip-right');\n\t\t\t\t\tthis._removeClass(tooltip, 'bs-tooltip-left');\n\t\t\t\t\tthis._removeClass(tooltip, 'bs-tooltip-top');\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-vertical');\n\t\t\t\tthis.stylePos = 'top';\n\t\t\t\tthis.mousePos = 'pageY';\n\t\t\t\tthis.sizePos = 'offsetHeight';\n\t\t\t} else {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis.sliderElem.style.width = origWidth;\n\t\t\t\tthis.options.orientation = 'horizontal';\n\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\tthis.stylePos = 'right';\n\t\t\t\t} else {\n\t\t\t\t\tthis.stylePos = 'left';\n\t\t\t\t}\n\t\t\t\tthis.mousePos = 'clientX';\n\t\t\t\tthis.sizePos = 'offsetWidth';\n\t\t\t}\n\t\t\t// specific rtl class\n\t\t\tif (this.options.rtl) {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-rtl');\n\t\t\t}\n\t\t\tthis._setTooltipPosition();\n\t\t\t/* In case ticks are specified, overwrite the min and max bounds */\n\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\t\t\t\tif (!isMaxSet) {\n\t\t\t\t\tthis.options.max = Math.max.apply(Math, this.options.ticks);\n\t\t\t\t}\n\t\t\t\tif (!isMinSet) {\n\t\t\t\t\tthis.options.min = Math.min.apply(Math, this.options.ticks);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (Array.isArray(this.options.value)) {\n\t\t\t\tthis.options.range = true;\n\t\t\t\tthis._state.value = this.options.value;\n\t\t\t} else if (this.options.range) {\n\t\t\t\t// User wants a range, but value is not an array\n\t\t\t\tthis._state.value = [this.options.value, this.options.max];\n\t\t\t} else {\n\t\t\t\tthis._state.value = this.options.value;\n\t\t\t}\n\n\t\t\tthis.trackLow = sliderTrackLow || this.trackLow;\n\t\t\tthis.trackSelection = sliderTrackSelection || this.trackSelection;\n\t\t\tthis.trackHigh = sliderTrackHigh || this.trackHigh;\n\n\t\t\tif (this.options.selection === 'none') {\n\t\t\t\tthis._addClass(this.trackLow, 'hide');\n\t\t\t\tthis._addClass(this.trackSelection, 'hide');\n\t\t\t\tthis._addClass(this.trackHigh, 'hide');\n\t\t\t} else if (this.options.selection === 'after' || this.options.selection === 'before') {\n\t\t\t\tthis._removeClass(this.trackLow, 'hide');\n\t\t\t\tthis._removeClass(this.trackSelection, 'hide');\n\t\t\t\tthis._removeClass(this.trackHigh, 'hide');\n\t\t\t}\n\n\t\t\tthis.handle1 = sliderMinHandle || this.handle1;\n\t\t\tthis.handle2 = sliderMaxHandle || this.handle2;\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.handle1, 'round triangle');\n\t\t\t\tthis._removeClass(this.handle2, 'round triangle hide');\n\n\t\t\t\tfor (i = 0; i < this.ticks.length; i++) {\n\t\t\t\t\tthis._removeClass(this.ticks[i], 'round triangle hide');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar availableHandleModifiers = ['round', 'triangle', 'custom'];\n\t\t\tvar isValidHandleType = availableHandleModifiers.indexOf(this.options.handle) !== -1;\n\t\t\tif (isValidHandleType) {\n\t\t\t\tthis._addClass(this.handle1, this.options.handle);\n\t\t\t\tthis._addClass(this.handle2, this.options.handle);\n\n\t\t\t\tfor (i = 0; i < this.ticks.length; i++) {\n\t\t\t\t\tthis._addClass(this.ticks[i], this.options.handle);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\t\t\tthis.setValue(this._state.value);\n\n\t\t\t/******************************************\n   \t\t\t\tBind Event Listeners\n   \t******************************************/\n\n\t\t\t// Bind keyboard handlers\n\t\t\tthis.handle1Keydown = this._keydown.bind(this, 0);\n\t\t\tthis.handle1.addEventListener(\"keydown\", this.handle1Keydown, false);\n\n\t\t\tthis.handle2Keydown = this._keydown.bind(this, 1);\n\t\t\tthis.handle2.addEventListener(\"keydown\", this.handle2Keydown, false);\n\n\t\t\tthis.mousedown = this._mousedown.bind(this);\n\t\t\tthis.touchstart = this._touchstart.bind(this);\n\t\t\tthis.touchmove = this._touchmove.bind(this);\n\n\t\t\tif (this.touchCapable) {\n\t\t\t\tthis.sliderElem.addEventListener(\"touchstart\", this.touchstart, false);\n\t\t\t\tthis.sliderElem.addEventListener(\"touchmove\", this.touchmove, false);\n\t\t\t}\n\n\t\t\tthis.sliderElem.addEventListener(\"mousedown\", this.mousedown, false);\n\n\t\t\t// Bind window handlers\n\t\t\tthis.resize = this._resize.bind(this);\n\t\t\twindow.addEventListener(\"resize\", this.resize, false);\n\n\t\t\t// Bind tooltip-related handlers\n\t\t\tif (this.options.tooltip === 'hide') {\n\t\t\t\tthis._addClass(this.tooltip, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_max, 'hide');\n\t\t\t} else if (this.options.tooltip === 'always') {\n\t\t\t\tthis._showTooltip();\n\t\t\t\tthis._alwaysShowTooltip = true;\n\t\t\t} else {\n\t\t\t\tthis.showTooltip = this._showTooltip.bind(this);\n\t\t\t\tthis.hideTooltip = this._hideTooltip.bind(this);\n\n\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\tvar callbackHandle = this._addTickListener();\n\t\t\t\t\t//create handle1 listeners and store references in map\n\t\t\t\t\tvar mouseEnter = callbackHandle.addMouseEnter(this, this.handle1);\n\t\t\t\t\tvar mouseLeave = callbackHandle.addMouseLeave(this, this.handle1);\n\t\t\t\t\tthis.handleCallbackMap.handle1 = {\n\t\t\t\t\t\tmouseEnter: mouseEnter,\n\t\t\t\t\t\tmouseLeave: mouseLeave\n\t\t\t\t\t};\n\t\t\t\t\t//create handle2 listeners and store references in map\n\t\t\t\t\tmouseEnter = callbackHandle.addMouseEnter(this, this.handle2);\n\t\t\t\t\tmouseLeave = callbackHandle.addMouseLeave(this, this.handle2);\n\t\t\t\t\tthis.handleCallbackMap.handle2 = {\n\t\t\t\t\t\tmouseEnter: mouseEnter,\n\t\t\t\t\t\tmouseLeave: mouseLeave\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.sliderElem.addEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\t\tthis.sliderElem.addEventListener(\"mouseleave\", this.hideTooltip, false);\n\n\t\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.handle1.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle1.addEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\tthis.handle2.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle2.addEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\tthis.handle1.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\tthis.handle1.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\tthis.handle1.addEventListener(\"touchend\", this.hideTooltip, false);\n\n\t\t\t\t\tthis.handle2.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\tthis.handle2.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\tthis.handle2.addEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.options.enabled) {\n\t\t\t\tthis.enable();\n\t\t\t} else {\n\t\t\t\tthis.disable();\n\t\t\t}\n\t\t}\n\n\t\t/*************************************************\n  \t\t\t\tINSTANCE PROPERTIES/METHODS\n  \t- Any methods bound to the prototype are considered\n  part of the plugin's `public` interface\n  \t**************************************************/\n\t\tSlider.prototype = {\n\t\t\t_init: function _init() {}, // NOTE: Must exist to support bridget\n\n\t\t\tconstructor: Slider,\n\n\t\t\tdefaultOptions: {\n\t\t\t\tid: \"\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: 1,\n\t\t\t\tprecision: 0,\n\t\t\t\torientation: 'horizontal',\n\t\t\t\tvalue: 5,\n\t\t\t\trange: false,\n\t\t\t\tselection: 'before',\n\t\t\t\ttooltip: 'show',\n\t\t\t\ttooltip_split: false,\n\t\t\t\tlock_to_ticks: false,\n\t\t\t\thandle: 'round',\n\t\t\t\treversed: false,\n\t\t\t\trtl: 'auto',\n\t\t\t\tenabled: true,\n\t\t\t\tformatter: function formatter(val) {\n\t\t\t\t\tif (Array.isArray(val)) {\n\t\t\t\t\t\treturn val[0] + \" : \" + val[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnatural_arrow_keys: false,\n\t\t\t\tticks: [],\n\t\t\t\tticks_positions: [],\n\t\t\t\tticks_labels: [],\n\t\t\t\tticks_snap_bounds: 0,\n\t\t\t\tticks_tooltip: false,\n\t\t\t\tscale: 'linear',\n\t\t\t\tfocus: false,\n\t\t\t\ttooltip_position: null,\n\t\t\t\tlabelledby: null,\n\t\t\t\trangeHighlights: []\n\t\t\t},\n\n\t\t\tgetElement: function getElement() {\n\t\t\t\treturn this.sliderElem;\n\t\t\t},\n\n\t\t\tgetValue: function getValue() {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\treturn this._state.value;\n\t\t\t\t} else {\n\t\t\t\t\treturn this._state.value[0];\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsetValue: function setValue(val, triggerSlideEvent, triggerChangeEvent) {\n\t\t\t\tif (!val) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tvar oldValue = this.getValue();\n\t\t\t\tthis._state.value = this._validateInputValue(val);\n\t\t\t\tvar applyPrecision = this._applyPrecision.bind(this);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tthis._state.value[0] = applyPrecision(this._state.value[0]);\n\t\t\t\t\tthis._state.value[1] = applyPrecision(this._state.value[1]);\n\n\t\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\t\tthis._state.value[0] = this.options.ticks[this._getClosestTickIndex(this._state.value[0])];\n\t\t\t\t\t\tthis._state.value[1] = this.options.ticks[this._getClosestTickIndex(this._state.value[1])];\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._state.value[0] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[0]));\n\t\t\t\t\tthis._state.value[1] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[1]));\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.value = applyPrecision(this._state.value);\n\n\t\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\t\tthis._state.value = this.options.ticks[this._getClosestTickIndex(this._state.value)];\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._state.value = [Math.max(this.options.min, Math.min(this.options.max, this._state.value))];\n\t\t\t\t\tthis._addClass(this.handle2, 'hide');\n\t\t\t\t\tif (this.options.selection === 'after') {\n\t\t\t\t\t\tthis._state.value[1] = this.options.max;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._state.value[1] = this.options.min;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Determine which ticks the handle(s) are set at (if applicable)\n\t\t\t\tthis._setTickIndex();\n\n\t\t\t\tif (this.options.max > this.options.min) {\n\t\t\t\t\tthis._state.percentage = [this._toPercentage(this._state.value[0]), this._toPercentage(this._state.value[1]), this.options.step * 100 / (this.options.max - this.options.min)];\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.percentage = [0, 0, 100];\n\t\t\t\t}\n\n\t\t\t\tthis._layout();\n\t\t\t\tvar newValue = this.options.range ? this._state.value : this._state.value[0];\n\n\t\t\t\tthis._setDataVal(newValue);\n\t\t\t\tif (triggerSlideEvent === true) {\n\t\t\t\t\tthis._trigger('slide', newValue);\n\t\t\t\t}\n\n\t\t\t\tvar hasChanged = false;\n\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\thasChanged = oldValue[0] !== newValue[0] || oldValue[1] !== newValue[1];\n\t\t\t\t} else {\n\t\t\t\t\thasChanged = oldValue !== newValue;\n\t\t\t\t}\n\n\t\t\t\tif (hasChanged && triggerChangeEvent === true) {\n\t\t\t\t\tthis._trigger('change', {\n\t\t\t\t\t\toldValue: oldValue,\n\t\t\t\t\t\tnewValue: newValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tdestroy: function destroy() {\n\t\t\t\t// Remove event handlers on slider elements\n\t\t\t\tthis._removeSliderEventHandlers();\n\n\t\t\t\t// Remove the slider from the DOM\n\t\t\t\tthis.sliderElem.parentNode.removeChild(this.sliderElem);\n\t\t\t\t/* Show original <input> element */\n\t\t\t\tthis.element.style.display = \"\";\n\n\t\t\t\t// Clear out custom event bindings\n\t\t\t\tthis._cleanUpEventCallbacksMap();\n\n\t\t\t\t// Remove data values\n\t\t\t\tthis.element.removeAttribute(\"data\");\n\n\t\t\t\t// Remove JQuery handlers/data\n\t\t\t\tif ($) {\n\t\t\t\t\tthis._unbindJQueryEventHandlers();\n\t\t\t\t\tif (autoRegisterNamespace === NAMESPACE_MAIN) {\n\t\t\t\t\t\tthis.$element.removeData(autoRegisterNamespace);\n\t\t\t\t\t}\n\t\t\t\t\tthis.$element.removeData(NAMESPACE_ALTERNATE);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tdisable: function disable() {\n\t\t\t\tthis._state.enabled = false;\n\t\t\t\tthis.handle1.removeAttribute(\"tabindex\");\n\t\t\t\tthis.handle2.removeAttribute(\"tabindex\");\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideDisabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tenable: function enable() {\n\t\t\t\tthis._state.enabled = true;\n\t\t\t\tthis.handle1.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis.handle2.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideEnabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\ttoggle: function toggle() {\n\t\t\t\tif (this._state.enabled) {\n\t\t\t\t\tthis.disable();\n\t\t\t\t} else {\n\t\t\t\t\tthis.enable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tisEnabled: function isEnabled() {\n\t\t\t\treturn this._state.enabled;\n\t\t\t},\n\n\t\t\ton: function on(evt, callback) {\n\t\t\t\tthis._bindNonQueryEventHandler(evt, callback);\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\toff: function off(evt, callback) {\n\t\t\t\tif ($) {\n\t\t\t\t\tthis.$element.off(evt, callback);\n\t\t\t\t\tthis.$sliderElem.off(evt, callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis._unbindNonQueryEventHandler(evt, callback);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetAttribute: function getAttribute(attribute) {\n\t\t\t\tif (attribute) {\n\t\t\t\t\treturn this.options[attribute];\n\t\t\t\t} else {\n\t\t\t\t\treturn this.options;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsetAttribute: function setAttribute(attribute, value) {\n\t\t\t\tthis.options[attribute] = value;\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\trefresh: function refresh(options) {\n\t\t\t\tvar currentValue = this.getValue();\n\t\t\t\tthis._removeSliderEventHandlers();\n\t\t\t\tcreateNewSlider.call(this, this.element, this.options);\n\t\t\t\t// Don't reset slider's value on refresh if `useCurrentValue` is true\n\t\t\t\tif (options && options.useCurrentValue === true) {\n\t\t\t\t\tthis.setValue(currentValue);\n\t\t\t\t}\n\t\t\t\tif ($) {\n\t\t\t\t\t// Bind new instance of slider to the element\n\t\t\t\t\tif (autoRegisterNamespace === NAMESPACE_MAIN) {\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_MAIN, this);\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_ALTERNATE, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_ALTERNATE, this);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\trelayout: function relayout() {\n\t\t\t\tthis._resize();\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t/******************************+\n   \t\t\t\tHELPERS\n   \t- Any method that is not part of the public interface.\n   - Place it underneath this comment block and write its signature like so:\n   \t\t_fnName : function() {...}\n   \t********************************/\n\t\t\t_removeTooltipListener: function _removeTooltipListener(event, handler) {\n\t\t\t\tthis.handle1.removeEventListener(event, handler, false);\n\t\t\t\tthis.handle2.removeEventListener(event, handler, false);\n\t\t\t},\n\t\t\t_removeSliderEventHandlers: function _removeSliderEventHandlers() {\n\t\t\t\t// Remove keydown event listeners\n\t\t\t\tthis.handle1.removeEventListener(\"keydown\", this.handle1Keydown, false);\n\t\t\t\tthis.handle2.removeEventListener(\"keydown\", this.handle2Keydown, false);\n\n\t\t\t\t//remove the listeners from the ticks and handles if they had their own listeners\n\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\tvar ticks = this.ticksContainer.getElementsByClassName('slider-tick');\n\t\t\t\t\tfor (var i = 0; i < ticks.length; i++) {\n\t\t\t\t\t\tticks[i].removeEventListener('mouseenter', this.ticksCallbackMap[i].mouseEnter, false);\n\t\t\t\t\t\tticks[i].removeEventListener('mouseleave', this.ticksCallbackMap[i].mouseLeave, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.handleCallbackMap.handle1 && this.handleCallbackMap.handle2) {\n\t\t\t\t\t\tthis.handle1.removeEventListener('mouseenter', this.handleCallbackMap.handle1.mouseEnter, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener('mouseenter', this.handleCallbackMap.handle2.mouseEnter, false);\n\t\t\t\t\t\tthis.handle1.removeEventListener('mouseleave', this.handleCallbackMap.handle1.mouseLeave, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener('mouseleave', this.handleCallbackMap.handle2.mouseLeave, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.handleCallbackMap = null;\n\t\t\t\tthis.ticksCallbackMap = null;\n\n\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\tthis._removeTooltipListener(\"focus\", this.showTooltip);\n\t\t\t\t}\n\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\tthis._removeTooltipListener(\"blur\", this.hideTooltip);\n\t\t\t\t}\n\n\t\t\t\t// Remove event listeners from sliderElem\n\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\t}\n\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"mouseleave\", this.hideTooltip, false);\n\t\t\t\t}\n\n\t\t\t\tthis.sliderElem.removeEventListener(\"mousedown\", this.mousedown, false);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Remove touch event listeners from handles\n\t\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove event listeners from sliderElem\n\t\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchstart\", this.touchstart, false);\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchmove\", this.touchmove, false);\n\t\t\t\t}\n\n\t\t\t\t// Remove window event listener\n\t\t\t\twindow.removeEventListener(\"resize\", this.resize, false);\n\t\t\t},\n\t\t\t_bindNonQueryEventHandler: function _bindNonQueryEventHandler(evt, callback) {\n\t\t\t\tif (this.eventToCallbackMap[evt] === undefined) {\n\t\t\t\t\tthis.eventToCallbackMap[evt] = [];\n\t\t\t\t}\n\t\t\t\tthis.eventToCallbackMap[evt].push(callback);\n\t\t\t},\n\t\t\t_unbindNonQueryEventHandler: function _unbindNonQueryEventHandler(evt, callback) {\n\t\t\t\tvar callbacks = this.eventToCallbackMap[evt];\n\t\t\t\tif (callbacks !== undefined) {\n\t\t\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\t\t\tif (callbacks[i] === callback) {\n\t\t\t\t\t\t\tcallbacks.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_cleanUpEventCallbacksMap: function _cleanUpEventCallbacksMap() {\n\t\t\t\tvar eventNames = Object.keys(this.eventToCallbackMap);\n\t\t\t\tfor (var i = 0; i < eventNames.length; i++) {\n\t\t\t\t\tvar eventName = eventNames[i];\n\t\t\t\t\tdelete this.eventToCallbackMap[eventName];\n\t\t\t\t}\n\t\t\t},\n\t\t\t_showTooltip: function _showTooltip() {\n\t\t\t\tif (this.options.tooltip_split === false) {\n\t\t\t\t\tthis._addClass(this.tooltip, 'show');\n\t\t\t\t\tthis.tooltip_min.style.display = 'none';\n\t\t\t\t\tthis.tooltip_max.style.display = 'none';\n\t\t\t\t} else {\n\t\t\t\t\tthis._addClass(this.tooltip_min, 'show');\n\t\t\t\t\tthis._addClass(this.tooltip_max, 'show');\n\t\t\t\t\tthis.tooltip.style.display = 'none';\n\t\t\t\t}\n\t\t\t\tthis._state.over = true;\n\t\t\t},\n\t\t\t_hideTooltip: function _hideTooltip() {\n\t\t\t\tif (this._state.inDrag === false && this._alwaysShowTooltip !== true) {\n\t\t\t\t\tthis._removeClass(this.tooltip, 'show');\n\t\t\t\t\tthis._removeClass(this.tooltip_min, 'show');\n\t\t\t\t\tthis._removeClass(this.tooltip_max, 'show');\n\t\t\t\t}\n\t\t\t\tthis._state.over = false;\n\t\t\t},\n\t\t\t_setToolTipOnMouseOver: function _setToolTipOnMouseOver(tempState) {\n\t\t\t\tvar self = this;\n\t\t\t\tvar formattedTooltipVal = this.options.formatter(!tempState ? this._state.value[0] : tempState.value[0]);\n\t\t\t\tvar positionPercentages = !tempState ? getPositionPercentages(this._state, this.options.reversed) : getPositionPercentages(tempState, this.options.reversed);\n\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\n\t\t\t\tthis.tooltip.style[this.stylePos] = positionPercentages[0] + \"%\";\n\n\t\t\t\tfunction getPositionPercentages(state, reversed) {\n\t\t\t\t\tif (reversed) {\n\t\t\t\t\t\treturn [100 - state.percentage[0], self.options.range ? 100 - state.percentage[1] : state.percentage[1]];\n\t\t\t\t\t}\n\t\t\t\t\treturn [state.percentage[0], state.percentage[1]];\n\t\t\t\t}\n\t\t\t},\n\t\t\t_copyState: function _copyState() {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: [this._state.value[0], this._state.value[1]],\n\t\t\t\t\tenabled: this._state.enabled,\n\t\t\t\t\toffset: this._state.offset,\n\t\t\t\t\tsize: this._state.size,\n\t\t\t\t\tpercentage: [this._state.percentage[0], this._state.percentage[1], this._state.percentage[2]],\n\t\t\t\t\tinDrag: this._state.inDrag,\n\t\t\t\t\tover: this._state.over,\n\t\t\t\t\t// deleted or null'd keys\n\t\t\t\t\tdragged: this._state.dragged,\n\t\t\t\t\tkeyCtrl: this._state.keyCtrl\n\t\t\t\t};\n\t\t\t},\n\t\t\t_addTickListener: function _addTickListener() {\n\t\t\t\treturn {\n\t\t\t\t\taddMouseEnter: function addMouseEnter(reference, element, index) {\n\t\t\t\t\t\tvar enter = function enter() {\n\t\t\t\t\t\t\tvar tempState = reference._copyState();\n\t\t\t\t\t\t\t// Which handle is being hovered over?\n\t\t\t\t\t\t\tvar val = element === reference.handle1 ? tempState.value[0] : tempState.value[1];\n\t\t\t\t\t\t\tvar per = void 0;\n\n\t\t\t\t\t\t\t// Setup value and percentage for tick's 'mouseenter'\n\t\t\t\t\t\t\tif (index !== undefined) {\n\t\t\t\t\t\t\t\tval = reference.options.ticks[index];\n\t\t\t\t\t\t\t\tper = reference.options.ticks_positions.length > 0 && reference.options.ticks_positions[index] || reference._toPercentage(reference.options.ticks[index]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tper = reference._toPercentage(val);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttempState.value[0] = val;\n\t\t\t\t\t\t\ttempState.percentage[0] = per;\n\t\t\t\t\t\t\treference._setToolTipOnMouseOver(tempState);\n\t\t\t\t\t\t\treference._showTooltip();\n\t\t\t\t\t\t};\n\t\t\t\t\t\telement.addEventListener(\"mouseenter\", enter, false);\n\t\t\t\t\t\treturn enter;\n\t\t\t\t\t},\n\t\t\t\t\taddMouseLeave: function addMouseLeave(reference, element) {\n\t\t\t\t\t\tvar leave = function leave() {\n\t\t\t\t\t\t\treference._hideTooltip();\n\t\t\t\t\t\t};\n\t\t\t\t\t\telement.addEventListener(\"mouseleave\", leave, false);\n\t\t\t\t\t\treturn leave;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t\t_layout: function _layout() {\n\t\t\t\tvar positionPercentages;\n\t\t\t\tvar formattedValue;\n\n\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\tpositionPercentages = [100 - this._state.percentage[0], this.options.range ? 100 - this._state.percentage[1] : this._state.percentage[1]];\n\t\t\t\t} else {\n\t\t\t\t\tpositionPercentages = [this._state.percentage[0], this._state.percentage[1]];\n\t\t\t\t}\n\n\t\t\t\tthis.handle1.style[this.stylePos] = positionPercentages[0] + \"%\";\n\t\t\t\tthis.handle1.setAttribute('aria-valuenow', this._state.value[0]);\n\t\t\t\tformattedValue = this.options.formatter(this._state.value[0]);\n\t\t\t\tif (isNaN(formattedValue)) {\n\t\t\t\t\tthis.handle1.setAttribute('aria-valuetext', formattedValue);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handle1.removeAttribute('aria-valuetext');\n\t\t\t\t}\n\n\t\t\t\tthis.handle2.style[this.stylePos] = positionPercentages[1] + \"%\";\n\t\t\t\tthis.handle2.setAttribute('aria-valuenow', this._state.value[1]);\n\t\t\t\tformattedValue = this.options.formatter(this._state.value[1]);\n\t\t\t\tif (isNaN(formattedValue)) {\n\t\t\t\t\tthis.handle2.setAttribute('aria-valuetext', formattedValue);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handle2.removeAttribute('aria-valuetext');\n\t\t\t\t}\n\n\t\t\t\t/* Position highlight range elements */\n\t\t\t\tif (this.rangeHighlightElements.length > 0 && Array.isArray(this.options.rangeHighlights) && this.options.rangeHighlights.length > 0) {\n\t\t\t\t\tfor (var _i = 0; _i < this.options.rangeHighlights.length; _i++) {\n\t\t\t\t\t\tvar startPercent = this._toPercentage(this.options.rangeHighlights[_i].start);\n\t\t\t\t\t\tvar endPercent = this._toPercentage(this.options.rangeHighlights[_i].end);\n\n\t\t\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\t\t\tvar sp = 100 - endPercent;\n\t\t\t\t\t\t\tendPercent = 100 - startPercent;\n\t\t\t\t\t\t\tstartPercent = sp;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar currentRange = this._createHighlightRange(startPercent, endPercent);\n\n\t\t\t\t\t\tif (currentRange) {\n\t\t\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.top = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.height = currentRange.size + \"%\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.right = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.left = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.width = currentRange.size + \"%\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.display = \"none\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Position ticks and labels */\n\t\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\n\t\t\t\t\tvar styleSize = this.options.orientation === 'vertical' ? 'height' : 'width';\n\t\t\t\t\tvar styleMargin;\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tstyleMargin = 'marginTop';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\tstyleMargin = 'marginRight';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstyleMargin = 'marginLeft';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar labelSize = this._state.size / (this.options.ticks.length - 1);\n\n\t\t\t\t\tif (this.tickLabelContainer) {\n\t\t\t\t\t\tvar extraMargin = 0;\n\t\t\t\t\t\tif (this.options.ticks_positions.length === 0) {\n\t\t\t\t\t\t\tif (this.options.orientation !== 'vertical') {\n\t\t\t\t\t\t\t\tthis.tickLabelContainer.style[styleMargin] = -labelSize / 2 + \"px\";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\textraMargin = this.tickLabelContainer.offsetHeight;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t/* Chidren are position absolute, calculate height by finding the max offsetHeight of a child */\n\t\t\t\t\t\t\tfor (i = 0; i < this.tickLabelContainer.childNodes.length; i++) {\n\t\t\t\t\t\t\t\tif (this.tickLabelContainer.childNodes[i].offsetHeight > extraMargin) {\n\t\t\t\t\t\t\t\t\textraMargin = this.tickLabelContainer.childNodes[i].offsetHeight;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.options.orientation === 'horizontal') {\n\t\t\t\t\t\t\tthis.sliderElem.style.marginBottom = extraMargin + \"px\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\n\t\t\t\t\t\tvar percentage = this.options.ticks_positions[i] || this._toPercentage(this.options.ticks[i]);\n\n\t\t\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\t\t\tpercentage = 100 - percentage;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.ticks[i].style[this.stylePos] = percentage + \"%\";\n\n\t\t\t\t\t\t/* Set class labels to denote whether ticks are in the selection */\n\t\t\t\t\t\tthis._removeClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\tif (!this.options.range) {\n\t\t\t\t\t\t\tif (this.options.selection === 'after' && percentage >= positionPercentages[0]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t\t} else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) {\n\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.tickLabels[i]) {\n\t\t\t\t\t\t\tthis.tickLabels[i].style[styleSize] = labelSize + \"px\";\n\n\t\t\t\t\t\t\tif (this.options.orientation !== 'vertical' && this.options.ticks_positions[i] !== undefined) {\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style.position = 'absolute';\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style[this.stylePos] = percentage + \"%\";\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style[styleMargin] = -labelSize / 2 + 'px';\n\t\t\t\t\t\t\t} else if (this.options.orientation === 'vertical') {\n\t\t\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\t\t\tthis.tickLabels[i].style['marginRight'] = this.sliderElem.offsetWidth + \"px\";\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.tickLabels[i].style['marginLeft'] = this.sliderElem.offsetWidth + \"px\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.tickLabelContainer.style[styleMargin] = this.sliderElem.offsetWidth / 2 * -1 + 'px';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* Set class labels to indicate tick labels are in the selection or selected */\n\t\t\t\t\t\t\tthis._removeClass(this.tickLabels[i], 'label-in-selection label-is-selection');\n\t\t\t\t\t\t\tif (!this.options.range) {\n\t\t\t\t\t\t\t\tif (this.options.selection === 'after' && percentage >= positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\t} else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (percentage === positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-is-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\tif (percentage === positionPercentages[0] || positionPercentages[1]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-is-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar formattedTooltipVal;\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this._state.value);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = (positionPercentages[1] + positionPercentages[0]) / 2 + \"%\";\n\n\t\t\t\t\tvar innerTooltipMinText = this.options.formatter(this._state.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner_min, innerTooltipMinText);\n\n\t\t\t\t\tvar innerTooltipMaxText = this.options.formatter(this._state.value[1]);\n\t\t\t\t\tthis._setText(this.tooltipInner_max, innerTooltipMaxText);\n\n\t\t\t\t\tthis.tooltip_min.style[this.stylePos] = positionPercentages[0] + \"%\";\n\n\t\t\t\t\tthis.tooltip_max.style[this.stylePos] = positionPercentages[1] + \"%\";\n\t\t\t\t} else {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this._state.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = positionPercentages[0] + \"%\";\n\t\t\t\t}\n\n\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\tthis.trackLow.style.top = '0';\n\t\t\t\t\tthis.trackLow.style.height = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\n\t\t\t\t\tthis.trackSelection.style.top = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\tthis.trackSelection.style.height = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tthis.trackHigh.style.bottom = '0';\n\t\t\t\t\tthis.trackHigh.style.height = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\t\t\t\t} else {\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackLow.style.right = '0';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackLow.style.left = '0';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackLow.style.width = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackSelection.style.right = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackSelection.style.left = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackSelection.style.width = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackHigh.style.left = '0';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackHigh.style.right = '0';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackHigh.style.width = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tvar offset_min = this.tooltip_min.getBoundingClientRect();\n\t\t\t\t\tvar offset_max = this.tooltip_max.getBoundingClientRect();\n\n\t\t\t\t\tif (this.options.tooltip_position === 'bottom') {\n\t\t\t\t\t\tif (offset_min.right > offset_max.left) {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bs-tooltip-bottom');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bs-tooltip-top');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = '';\n\t\t\t\t\t\t\tthis.tooltip_max.style.bottom = 22 + 'px';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bs-tooltip-top');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bs-tooltip-bottom');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = this.tooltip_min.style.top;\n\t\t\t\t\t\t\tthis.tooltip_max.style.bottom = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (offset_min.right > offset_max.left) {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bs-tooltip-top');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bs-tooltip-bottom');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = 18 + 'px';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bs-tooltip-bottom');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bs-tooltip-top');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = this.tooltip_min.style.top;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_createHighlightRange: function _createHighlightRange(start, end) {\n\t\t\t\tif (this._isHighlightRange(start, end)) {\n\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\treturn { 'start': end, 'size': start - end };\n\t\t\t\t\t}\n\t\t\t\t\treturn { 'start': start, 'size': end - start };\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\t_isHighlightRange: function _isHighlightRange(start, end) {\n\t\t\t\tif (0 <= start && start <= 100 && 0 <= end && end <= 100) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_resize: function _resize(ev) {\n\t\t\t\t/*jshint unused:false*/\n\t\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\t\t\t\tthis._layout();\n\t\t\t},\n\t\t\t_removeProperty: function _removeProperty(element, prop) {\n\t\t\t\tif (element.style.removeProperty) {\n\t\t\t\t\telement.style.removeProperty(prop);\n\t\t\t\t} else {\n\t\t\t\t\telement.style.removeAttribute(prop);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mousedown: function _mousedown(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tvar diff1 = Math.abs(this._state.percentage[0] - percentage);\n\t\t\t\t\tvar diff2 = Math.abs(this._state.percentage[1] - percentage);\n\t\t\t\t\tthis._state.dragged = diff1 < diff2 ? 0 : 1;\n\t\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.dragged = 0;\n\t\t\t\t}\n\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\tdocument.removeEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\n\t\t\t\tif (this.mousemove) {\n\t\t\t\t\tdocument.removeEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\t}\n\t\t\t\tif (this.mouseup) {\n\t\t\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseup, false);\n\t\t\t\t}\n\n\t\t\t\tthis.mousemove = this._mousemove.bind(this);\n\t\t\t\tthis.mouseup = this._mouseup.bind(this);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Bind touch events:\n\t\t\t\t\tdocument.addEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.addEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\t\t\t\t// Bind mouse events:\n\t\t\t\tdocument.addEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\tdocument.addEventListener(\"mouseup\", this.mouseup, false);\n\n\t\t\t\tthis._state.inDrag = true;\n\t\t\t\tvar newValue = this._calculateValue();\n\n\t\t\t\tthis._trigger('slideStart', newValue);\n\n\t\t\t\tthis.setValue(newValue, false, true);\n\n\t\t\t\tev.returnValue = false;\n\n\t\t\t\tif (this.options.focus) {\n\t\t\t\t\tthis._triggerFocusOnHandle(this._state.dragged);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\t_touchstart: function _touchstart(ev) {\n\t\t\t\tthis._mousedown(ev);\n\t\t\t},\n\t\t\t_triggerFocusOnHandle: function _triggerFocusOnHandle(handleIdx) {\n\t\t\t\tif (handleIdx === 0) {\n\t\t\t\t\tthis.handle1.focus();\n\t\t\t\t}\n\t\t\t\tif (handleIdx === 1) {\n\t\t\t\t\tthis.handle2.focus();\n\t\t\t\t}\n\t\t\t},\n\t\t\t_keydown: function _keydown(handleIdx, ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar dir;\n\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\tcase 37: // left\n\t\t\t\t\tcase 40:\n\t\t\t\t\t\t// down\n\t\t\t\t\t\tdir = -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39: // right\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\t// up\n\t\t\t\t\t\tdir = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dir) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// use natural arrow keys instead of from min to max\n\t\t\t\tif (this.options.natural_arrow_keys) {\n\t\t\t\t\tvar isHorizontal = this.options.orientation === 'horizontal';\n\t\t\t\t\tvar isVertical = this.options.orientation === 'vertical';\n\t\t\t\t\tvar isRTL = this.options.rtl;\n\t\t\t\t\tvar isReversed = this.options.reversed;\n\n\t\t\t\t\tif (isHorizontal) {\n\t\t\t\t\t\tif (isRTL) {\n\t\t\t\t\t\t\tif (!isReversed) {\n\t\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (isReversed) {\n\t\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isVertical) {\n\t\t\t\t\t\tif (!isReversed) {\n\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar val;\n\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\tvar index = void 0;\n\t\t\t\t\t// Find tick index that handle 1/2 is currently on\n\t\t\t\t\tindex = this.options.ticks.indexOf(this._state.value[handleIdx]);\n\t\t\t\t\tif (index === -1) {\n\t\t\t\t\t\t// Set default to first tick\n\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\twindow.console.warn('(lock_to_ticks) _keydown: index should not be -1');\n\t\t\t\t\t}\n\t\t\t\t\tindex += dir;\n\t\t\t\t\tindex = Math.max(0, Math.min(this.options.ticks.length - 1, index));\n\t\t\t\t\tval = this.options.ticks[index];\n\t\t\t\t} else {\n\t\t\t\t\tval = this._state.value[handleIdx] + dir * this.options.step;\n\t\t\t\t}\n\t\t\t\tvar percentage = this._toPercentage(val);\n\t\t\t\tthis._state.keyCtrl = handleIdx;\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\t\tvar val1 = !this._state.keyCtrl ? val : this._state.value[0];\n\t\t\t\t\tvar val2 = this._state.keyCtrl ? val : this._state.value[1];\n\t\t\t\t\t// Restrict values within limits\n\t\t\t\t\tval = [Math.max(this.options.min, Math.min(this.options.max, val1)), Math.max(this.options.min, Math.min(this.options.max, val2))];\n\t\t\t\t} else {\n\t\t\t\t\tval = Math.max(this.options.min, Math.min(this.options.max, val));\n\t\t\t\t}\n\n\t\t\t\tthis._trigger('slideStart', val);\n\n\t\t\t\tthis.setValue(val, true, true);\n\n\t\t\t\tthis._trigger('slideStop', val);\n\n\t\t\t\tthis._pauseEvent(ev);\n\t\t\t\tdelete this._state.keyCtrl;\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_pauseEvent: function _pauseEvent(ev) {\n\t\t\t\tif (ev.stopPropagation) {\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t}\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t\tev.cancelBubble = true;\n\t\t\t\tev.returnValue = false;\n\t\t\t},\n\t\t\t_mousemove: function _mousemove(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tvar val = this._calculateValue(true);\n\t\t\t\tthis.setValue(val, true, true);\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_touchmove: function _touchmove(ev) {\n\t\t\t\tif (ev.changedTouches === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Prevent page from scrolling and only drag the slider\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t},\n\t\t\t_adjustPercentageForRangeSliders: function _adjustPercentageForRangeSliders(percentage) {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tvar precision = this._getNumDigitsAfterDecimalPlace(percentage);\n\t\t\t\t\tprecision = precision ? precision - 1 : 0;\n\t\t\t\t\tvar percentageWithAdjustedPrecision = this._applyToFixedAndParseFloat(percentage, precision);\n\t\t\t\t\tif (this._state.dragged === 0 && this._applyToFixedAndParseFloat(this._state.percentage[1], precision) < percentageWithAdjustedPrecision) {\n\t\t\t\t\t\tthis._state.percentage[0] = this._state.percentage[1];\n\t\t\t\t\t\tthis._state.dragged = 1;\n\t\t\t\t\t} else if (this._state.dragged === 1 && this._applyToFixedAndParseFloat(this._state.percentage[0], precision) > percentageWithAdjustedPrecision) {\n\t\t\t\t\t\tthis._state.percentage[1] = this._state.percentage[0];\n\t\t\t\t\t\tthis._state.dragged = 0;\n\t\t\t\t\t} else if (this._state.keyCtrl === 0 && this._toPercentage(this._state.value[1]) < percentage) {\n\t\t\t\t\t\tthis._state.percentage[0] = this._state.percentage[1];\n\t\t\t\t\t\tthis._state.keyCtrl = 1;\n\t\t\t\t\t\tthis.handle2.focus();\n\t\t\t\t\t} else if (this._state.keyCtrl === 1 && this._toPercentage(this._state.value[0]) > percentage) {\n\t\t\t\t\t\tthis._state.percentage[1] = this._state.percentage[0];\n\t\t\t\t\t\tthis._state.keyCtrl = 0;\n\t\t\t\t\t\tthis.handle1.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mouseup: function _mouseup(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Unbind touch event handlers:\n\t\t\t\t\tdocument.removeEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\t\t\t\t// Unbind mouse event handlers:\n\t\t\t\tdocument.removeEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseup, false);\n\n\t\t\t\tthis._state.inDrag = false;\n\t\t\t\tif (this._state.over === false) {\n\t\t\t\t\tthis._hideTooltip();\n\t\t\t\t}\n\t\t\t\tvar val = this._calculateValue(true);\n\n\t\t\t\tthis.setValue(val, false, true);\n\t\t\t\tthis._trigger('slideStop', val);\n\n\t\t\t\t// No longer need 'dragged' after mouse up\n\t\t\t\tthis._state.dragged = null;\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_setValues: function _setValues(index, val) {\n\t\t\t\tvar comp = 0 === index ? 0 : 100;\n\t\t\t\tif (this._state.percentage[index] !== comp) {\n\t\t\t\t\tval.data[index] = this._toValue(this._state.percentage[index]);\n\t\t\t\t\tval.data[index] = this._applyPrecision(val.data[index]);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_calculateValue: function _calculateValue(snapToClosestTick) {\n\t\t\t\tvar val = {};\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tval.data = [this.options.min, this.options.max];\n\t\t\t\t\tthis._setValues(0, val);\n\t\t\t\t\tthis._setValues(1, val);\n\t\t\t\t\tif (snapToClosestTick) {\n\t\t\t\t\t\tval.data[0] = this._snapToClosestTick(val.data[0]);\n\t\t\t\t\t\tval.data[1] = this._snapToClosestTick(val.data[1]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tval.data = this._toValue(this._state.percentage[0]);\n\t\t\t\t\tval.data = parseFloat(val.data);\n\t\t\t\t\tval.data = this._applyPrecision(val.data);\n\t\t\t\t\tif (snapToClosestTick) {\n\t\t\t\t\t\tval.data = this._snapToClosestTick(val.data);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn val.data;\n\t\t\t},\n\t\t\t_snapToClosestTick: function _snapToClosestTick(val) {\n\t\t\t\tvar min = [val, Infinity];\n\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\tvar diff = Math.abs(this.options.ticks[i] - val);\n\t\t\t\t\tif (diff <= min[1]) {\n\t\t\t\t\t\tmin = [this.options.ticks[i], diff];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (min[1] <= this.options.ticks_snap_bounds) {\n\t\t\t\t\treturn min[0];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\n\t\t\t_applyPrecision: function _applyPrecision(val) {\n\t\t\t\tvar precision = this.options.precision || this._getNumDigitsAfterDecimalPlace(this.options.step);\n\t\t\t\treturn this._applyToFixedAndParseFloat(val, precision);\n\t\t\t},\n\t\t\t_getNumDigitsAfterDecimalPlace: function _getNumDigitsAfterDecimalPlace(num) {\n\t\t\t\tvar match = ('' + num).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\t\t\t\tif (!match) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\n\t\t\t},\n\t\t\t_applyToFixedAndParseFloat: function _applyToFixedAndParseFloat(num, toFixedInput) {\n\t\t\t\tvar truncatedNum = num.toFixed(toFixedInput);\n\t\t\t\treturn parseFloat(truncatedNum);\n\t\t\t},\n\t\t\t/*\n   \tCredits to Mike Samuel for the following method!\n   \tSource: http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number\n   */\n\t\t\t_getPercentage: function _getPercentage(ev) {\n\t\t\t\tif (this.touchCapable && (ev.type === 'touchstart' || ev.type === 'touchmove' || ev.type === 'touchend')) {\n\t\t\t\t\tev = ev.changedTouches[0];\n\t\t\t\t}\n\n\t\t\t\tvar eventPosition = ev[this.mousePos];\n\t\t\t\tvar sliderOffset = this._state.offset[this.stylePos];\n\t\t\t\tvar distanceToSlide = eventPosition - sliderOffset;\n\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\tdistanceToSlide = -distanceToSlide;\n\t\t\t\t}\n\t\t\t\t// Calculate what percent of the length the slider handle has slid\n\t\t\t\tvar percentage = distanceToSlide / this._state.size * 100;\n\t\t\t\tpercentage = Math.round(percentage / this._state.percentage[2]) * this._state.percentage[2];\n\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\tpercentage = 100 - percentage;\n\t\t\t\t}\n\n\t\t\t\t// Make sure the percent is within the bounds of the slider.\n\t\t\t\t// 0% corresponds to the 'min' value of the slide\n\t\t\t\t// 100% corresponds to the 'max' value of the slide\n\t\t\t\treturn Math.max(0, Math.min(100, percentage));\n\t\t\t},\n\t\t\t_validateInputValue: function _validateInputValue(val) {\n\t\t\t\tif (!isNaN(+val)) {\n\t\t\t\t\treturn +val;\n\t\t\t\t} else if (Array.isArray(val)) {\n\t\t\t\t\tthis._validateArray(val);\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(ErrorMsgs.formatInvalidInputErrorMsg(val));\n\t\t\t\t}\n\t\t\t},\n\t\t\t_validateArray: function _validateArray(val) {\n\t\t\t\tfor (var i = 0; i < val.length; i++) {\n\t\t\t\t\tvar input = val[i];\n\t\t\t\t\tif (typeof input !== 'number') {\n\t\t\t\t\t\tthrow new Error(ErrorMsgs.formatInvalidInputErrorMsg(input));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_setDataVal: function _setDataVal(val) {\n\t\t\t\tthis.element.setAttribute('data-value', val);\n\t\t\t\tthis.element.setAttribute('value', val);\n\t\t\t\tthis.element.value = val;\n\t\t\t},\n\t\t\t_trigger: function _trigger(evt, val) {\n\t\t\t\tval = val || val === 0 ? val : undefined;\n\n\t\t\t\tvar callbackFnArray = this.eventToCallbackMap[evt];\n\t\t\t\tif (callbackFnArray && callbackFnArray.length) {\n\t\t\t\t\tfor (var i = 0; i < callbackFnArray.length; i++) {\n\t\t\t\t\t\tvar callbackFn = callbackFnArray[i];\n\t\t\t\t\t\tcallbackFn(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* If JQuery exists, trigger JQuery events */\n\t\t\t\tif ($) {\n\t\t\t\t\tthis._triggerJQueryEvent(evt, val);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_triggerJQueryEvent: function _triggerJQueryEvent(evt, val) {\n\t\t\t\tvar eventData = {\n\t\t\t\t\ttype: evt,\n\t\t\t\t\tvalue: val\n\t\t\t\t};\n\t\t\t\tthis.$element.trigger(eventData);\n\t\t\t\tthis.$sliderElem.trigger(eventData);\n\t\t\t},\n\t\t\t_unbindJQueryEventHandlers: function _unbindJQueryEventHandlers() {\n\t\t\t\tthis.$element.off();\n\t\t\t\tthis.$sliderElem.off();\n\t\t\t},\n\t\t\t_setText: function _setText(element, text) {\n\t\t\t\tif (typeof element.textContent !== \"undefined\") {\n\t\t\t\t\telement.textContent = text;\n\t\t\t\t} else if (typeof element.innerText !== \"undefined\") {\n\t\t\t\t\telement.innerText = text;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_removeClass: function _removeClass(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor (var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tnewClasses = newClasses.replace(regex, \" \");\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_addClass: function _addClass(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor (var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tvar ifClassExists = regex.test(newClasses);\n\n\t\t\t\t\tif (!ifClassExists) {\n\t\t\t\t\t\tnewClasses += \" \" + classTag;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_offsetLeft: function _offsetLeft(obj) {\n\t\t\t\treturn obj.getBoundingClientRect().left;\n\t\t\t},\n\t\t\t_offsetRight: function _offsetRight(obj) {\n\t\t\t\treturn obj.getBoundingClientRect().right;\n\t\t\t},\n\t\t\t_offsetTop: function _offsetTop(obj) {\n\t\t\t\tvar offsetTop = obj.offsetTop;\n\t\t\t\twhile ((obj = obj.offsetParent) && !isNaN(obj.offsetTop)) {\n\t\t\t\t\toffsetTop += obj.offsetTop;\n\t\t\t\t\tif (obj.tagName !== 'BODY') {\n\t\t\t\t\t\toffsetTop -= obj.scrollTop;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn offsetTop;\n\t\t\t},\n\t\t\t_offset: function _offset(obj) {\n\t\t\t\treturn {\n\t\t\t\t\tleft: this._offsetLeft(obj),\n\t\t\t\t\tright: this._offsetRight(obj),\n\t\t\t\t\ttop: this._offsetTop(obj)\n\t\t\t\t};\n\t\t\t},\n\t\t\t_css: function _css(elementRef, styleName, value) {\n\t\t\t\tif ($) {\n\t\t\t\t\t$.style(elementRef, styleName, value);\n\t\t\t\t} else {\n\t\t\t\t\tvar style = styleName.replace(/^-ms-/, \"ms-\").replace(/-([\\da-z])/gi, function (all, letter) {\n\t\t\t\t\t\treturn letter.toUpperCase();\n\t\t\t\t\t});\n\t\t\t\t\telementRef.style[style] = value;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_toValue: function _toValue(percentage) {\n\t\t\t\treturn this.options.scale.toValue.apply(this, [percentage]);\n\t\t\t},\n\t\t\t_toPercentage: function _toPercentage(value) {\n\t\t\t\treturn this.options.scale.toPercentage.apply(this, [value]);\n\t\t\t},\n\t\t\t_setTooltipPosition: function _setTooltipPosition() {\n\t\t\t\tvar tooltips = [this.tooltip, this.tooltip_min, this.tooltip_max];\n\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\tvar tooltipPos;\n\t\t\t\t\tif (this.options.tooltip_position) {\n\t\t\t\t\t\ttooltipPos = this.options.tooltip_position;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\ttooltipPos = 'left';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttooltipPos = 'right';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar oppositeSide = tooltipPos === 'left' ? 'right' : 'left';\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, 'bs-tooltip-' + tooltipPos);\n\t\t\t\t\t\ttooltip.style[oppositeSide] = '100%';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t} else if (this.options.tooltip_position === 'bottom') {\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, 'bs-tooltip-bottom');\n\t\t\t\t\t\ttooltip.style.top = 22 + 'px';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t} else {\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, 'bs-tooltip-top');\n\t\t\t\t\t\ttooltip.style.top = -this.tooltip.outerHeight - 14 + 'px';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t},\n\t\t\t_getClosestTickIndex: function _getClosestTickIndex(val) {\n\t\t\t\tvar difference = Math.abs(val - this.options.ticks[0]);\n\t\t\t\tvar index = 0;\n\t\t\t\tfor (var i = 0; i < this.options.ticks.length; ++i) {\n\t\t\t\t\tvar d = Math.abs(val - this.options.ticks[i]);\n\t\t\t\t\tif (d < difference) {\n\t\t\t\t\t\tdifference = d;\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn index;\n\t\t\t},\n\t\t\t/**\n    * Attempts to find the index in `ticks[]` the slider values are set at.\n    * The indexes can be -1 to indicate the slider value is not set at a value in `ticks[]`.\n    */\n\t\t\t_setTickIndex: function _setTickIndex() {\n\t\t\t\tif (this.ticksAreValid) {\n\t\t\t\t\tthis._state.tickIndex = [this.options.ticks.indexOf(this._state.value[0]), this.options.ticks.indexOf(this._state.value[1])];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/*********************************\n  \t\tAttach to global namespace\n  \t*********************************/\n\t\tif ($ && $.fn) {\n\t\t\tif (!$.fn.slider) {\n\t\t\t\t$.bridget(NAMESPACE_MAIN, Slider);\n\t\t\t\tautoRegisterNamespace = NAMESPACE_MAIN;\n\t\t\t} else {\n\t\t\t\tif (windowIsDefined) {\n\t\t\t\t\twindow.console.warn(\"bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead.\");\n\t\t\t\t}\n\t\t\t\tautoRegisterNamespace = NAMESPACE_ALTERNATE;\n\t\t\t}\n\t\t\t$.bridget(NAMESPACE_ALTERNATE, Slider);\n\n\t\t\t// Auto-Register data-provide=\"slider\" Elements\n\t\t\t$(function () {\n\t\t\t\t$(\"input[data-provide=slider]\")[autoRegisterNamespace]();\n\t\t\t});\n\t\t}\n\t})($);\n\n\treturn Slider;\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-slider/css/bootstrap-slider.css",
    "content": "/*! =======================================================\n                      VERSION  11.0.2              \n========================================================= */\n/*! =========================================================\n * bootstrap-slider.js\n *\n * Maintainers:\n *\t\tKyle Kemp\n *\t\t\t- Twitter: @seiyria\n *\t\t\t- Github:  seiyria\n *\t\tRohit Kalkur\n *\t\t\t- Twitter: @Rovolutionary\n *\t\t\t- Github:  rovolution\n *\n * =========================================================\n *\n * bootstrap-slider is released under the MIT License\n * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors\n * \n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n *\n * ========================================================= */\n.slider {\n  display: inline-block;\n  vertical-align: middle;\n  position: relative;\n}\n\n.slider.slider-horizontal {\n  width: 210px;\n  height: 20px;\n}\n\n.slider.slider-horizontal .slider-track {\n  height: 10px;\n  width: 100%;\n  margin-top: -5px;\n  top: 50%;\n  left: 0;\n}\n\n.slider.slider-horizontal .slider-selection, .slider.slider-horizontal .slider-track-low, .slider.slider-horizontal .slider-track-high {\n  height: 100%;\n  top: 0;\n  bottom: 0;\n}\n\n.slider.slider-horizontal .slider-tick,\n.slider.slider-horizontal .slider-handle {\n  margin-left: -10px;\n}\n\n.slider.slider-horizontal .slider-tick.triangle,\n.slider.slider-horizontal .slider-handle.triangle {\n  position: relative;\n  top: 50%;\n  transform: translateY(-50%);\n  border-width: 0 10px 10px 10px;\n  width: 0;\n  height: 0;\n  border-bottom-color: #036fa5;\n  margin-top: 0;\n}\n\n.slider.slider-horizontal .slider-tick-container {\n  white-space: nowrap;\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n}\n\n.slider.slider-horizontal .slider-tick-label-container {\n  white-space: nowrap;\n  margin-top: 20px;\n}\n\n.slider.slider-horizontal .slider-tick-label-container .slider-tick-label {\n  display: inline-block;\n  text-align: center;\n}\n\n.slider.slider-horizontal.slider-rtl .slider-track {\n  left: initial;\n  right: 0;\n}\n\n.slider.slider-horizontal.slider-rtl .slider-tick,\n.slider.slider-horizontal.slider-rtl .slider-handle {\n  margin-left: initial;\n  margin-right: -10px;\n}\n\n.slider.slider-horizontal.slider-rtl .slider-tick-container {\n  left: initial;\n  right: 0;\n}\n\n.slider.slider-vertical {\n  height: 210px;\n  width: 20px;\n}\n\n.slider.slider-vertical .slider-track {\n  width: 10px;\n  height: 100%;\n  left: 25%;\n  top: 0;\n}\n\n.slider.slider-vertical .slider-selection {\n  width: 100%;\n  left: 0;\n  top: 0;\n  bottom: 0;\n}\n\n.slider.slider-vertical .slider-track-low, .slider.slider-vertical .slider-track-high {\n  width: 100%;\n  left: 0;\n  right: 0;\n}\n\n.slider.slider-vertical .slider-tick,\n.slider.slider-vertical .slider-handle {\n  margin-top: -10px;\n}\n\n.slider.slider-vertical .slider-tick.triangle,\n.slider.slider-vertical .slider-handle.triangle {\n  border-width: 10px 0 10px 10px;\n  width: 1px;\n  height: 1px;\n  border-left-color: #036fa5;\n  margin-left: 0;\n}\n\n.slider.slider-vertical .slider-tick-label-container {\n  white-space: nowrap;\n}\n\n.slider.slider-vertical .slider-tick-label-container .slider-tick-label {\n  padding-left: 4px;\n}\n\n.slider.slider-vertical.slider-rtl .slider-track {\n  left: initial;\n  right: 25%;\n}\n\n.slider.slider-vertical.slider-rtl .slider-selection {\n  left: initial;\n  right: 0;\n}\n\n.slider.slider-vertical.slider-rtl .slider-tick.triangle,\n.slider.slider-vertical.slider-rtl .slider-handle.triangle {\n  border-width: 10px 10px 10px 0;\n}\n\n.slider.slider-vertical.slider-rtl .slider-tick-label-container .slider-tick-label {\n  padding-left: initial;\n  padding-right: 4px;\n}\n\n.slider.slider-disabled .slider-handle {\n  background-color: #cfcfcf;\n  background-image: -moz-linear-gradient(top, #DFDFDF, #BEBEBE);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#DFDFDF), to(#BEBEBE));\n  background-image: -webkit-linear-gradient(top, #DFDFDF, #BEBEBE);\n  background-image: -o-linear-gradient(top, #DFDFDF, #BEBEBE);\n  background-image: linear-gradient(to bottom, #DFDFDF, #BEBEBE);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DFDFDF', endColorstr='#BEBEBE',GradientType=0);\n}\n\n.slider.slider-disabled .slider-track {\n  background-color: #e7e7e7;\n  background-image: -moz-linear-gradient(top, #E5E5E5, #E9E9E9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#E5E5E5), to(#E9E9E9));\n  background-image: -webkit-linear-gradient(top, #E5E5E5, #E9E9E9);\n  background-image: -o-linear-gradient(top, #E5E5E5, #E9E9E9);\n  background-image: linear-gradient(to bottom, #E5E5E5, #E9E9E9);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#E5E5E5', endColorstr='#E9E9E9',GradientType=0);\n  cursor: not-allowed;\n}\n\n.slider input {\n  display: none;\n}\n\n.slider .tooltip-inner {\n  white-space: nowrap;\n  max-width: none;\n}\n\n.slider .bs-tooltip-top .tooltip-inner,\n.slider .bs-tooltip-bottom .tooltip-inner {\n  position: relative;\n  left: -50%;\n}\n\n.slider.bs-tooltip-left .tooltip-inner, .slider.bs-tooltip-right .tooltip-inner {\n  position: relative;\n  top: -100%;\n}\n\n.slider .tooltip {\n  pointer-events: none;\n}\n\n.slider .tooltip.bs-tooltip-top .arrow, .slider .tooltip.bs-tooltip-bottom .arrow {\n  left: -.4rem;\n}\n\n.slider .tooltip.bs-tooltip-top {\n  margin-top: -44px;\n}\n\n.slider .tooltip.bs-tooltip-bottom {\n  margin-top: 2px;\n}\n\n.slider .tooltip.bs-tooltip-left, .slider .tooltip.bs-tooltip-right {\n  margin-top: -14px;\n}\n\n.slider .tooltip.bs-tooltip-left .arrow, .slider .tooltip.bs-tooltip-right .arrow {\n  top: 8px;\n}\n\n.slider .hide {\n  display: none;\n}\n\n.slider-track {\n  background-color: #f7f7f7;\n  background-image: -moz-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F5F5F5), to(#F9F9F9));\n  background-image: -webkit-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: -o-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: linear-gradient(to bottom, #F5F5F5, #F9F9F9);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F5F5F5', endColorstr='#F9F9F9',GradientType=0);\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  position: absolute;\n  cursor: pointer;\n}\n\n.slider-selection {\n  background-color: #f7f7f7;\n  background-image: -moz-linear-gradient(top, #F9F9F9, #F5F5F5);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F9F9F9), to(#F5F5F5));\n  background-image: -webkit-linear-gradient(top, #F9F9F9, #F5F5F5);\n  background-image: -o-linear-gradient(top, #F9F9F9, #F5F5F5);\n  background-image: linear-gradient(to bottom, #F9F9F9, #F5F5F5);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F9F9F9', endColorstr='#F5F5F5',GradientType=0);\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  position: absolute;\n}\n\n.slider-selection.tick-slider-selection {\n  background-color: #46c1fe;\n  background-image: -moz-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#52c5ff), to(#3abcfd));\n  background-image: -webkit-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: -o-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: linear-gradient(to bottom, #52c5ff, #3abcfd);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#52c5ff', endColorstr='#3abcfd',GradientType=0);\n}\n\n.slider-track-low, .slider-track-high {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  position: absolute;\n  background: transparent;\n}\n\n.slider-handle {\n  background-color: #0478b2;\n  background-image: -moz-linear-gradient(top, #0480BE, #036fa5);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0480BE), to(#036fa5));\n  background-image: -webkit-linear-gradient(top, #0480BE, #036fa5);\n  background-image: -o-linear-gradient(top, #0480BE, #036fa5);\n  background-image: linear-gradient(to bottom, #0480BE, #036fa5);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0480BE', endColorstr='#036fa5',GradientType=0);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n  position: absolute;\n  top: 0;\n  width: 20px;\n  height: 20px;\n  background-color: #0480BE;\n  border: 0px solid transparent;\n}\n\n.slider-handle:hover {\n  cursor: pointer;\n}\n\n.slider-handle.round {\n  -webkit-border-radius: 20px;\n  -moz-border-radius: 20px;\n  border-radius: 20px;\n}\n\n.slider-handle.triangle {\n  background: transparent none;\n}\n\n.slider-handle.custom {\n  background: transparent none;\n}\n\n.slider-handle.custom::before {\n  line-height: 20px;\n  font-size: 20px;\n  content: '\\2605';\n  color: #726204;\n}\n\n.slider-tick {\n  background-color: #f7f7f7;\n  background-image: -moz-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F5F5F5), to(#F9F9F9));\n  background-image: -webkit-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: -o-linear-gradient(top, #F5F5F5, #F9F9F9);\n  background-image: linear-gradient(to bottom, #F5F5F5, #F9F9F9);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F5F5F5', endColorstr='#F9F9F9',GradientType=0);\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  position: absolute;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  filter: none;\n  opacity: 0.8;\n  border: 0px solid transparent;\n}\n\n.slider-tick.round {\n  border-radius: 50%;\n}\n\n.slider-tick.triangle {\n  background: transparent none;\n}\n\n.slider-tick.custom {\n  background: transparent none;\n}\n\n.slider-tick.custom::before {\n  line-height: 20px;\n  font-size: 20px;\n  content: '\\2605';\n  color: #726204;\n}\n\n.slider-tick.in-selection {\n  background-color: #46c1fe;\n  background-image: -moz-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#52c5ff), to(#3abcfd));\n  background-image: -webkit-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: -o-linear-gradient(top, #52c5ff, #3abcfd);\n  background-image: linear-gradient(to bottom, #52c5ff, #3abcfd);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#52c5ff', endColorstr='#3abcfd',GradientType=0);\n  opacity: 1;\n}\n\n/*# sourceMappingURL=bootstrap-slider.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.css",
    "content": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.3.4\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license Apache-2.0\n  */\n\n.clearfix {\n  *zoom: 1;\n}\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  content: \"\";\n  line-height: 0;\n}\n.clearfix:after {\n  clear: both;\n}\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: 30px;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.bootstrap-switch {\n  display: inline-block;\n  direction: ltr;\n  cursor: pointer;\n  -webkit-border-radius: 5px;\n  -moz-border-radius: 5px;\n  border-radius: 5px;\n  border: 1px solid;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  position: relative;\n  text-align: left;\n  overflow: hidden;\n  line-height: 8px;\n  z-index: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -moz-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.bootstrap-switch .bootstrap-switch-container {\n  display: inline-block;\n  top: 0;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  cursor: pointer;\n  display: inline-block !important;\n  padding-top: 4px;\n  padding-bottom: 4px;\n  padding-left: 8px;\n  padding-right: 8px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #005fcc;\n  background-image: -moz-linear-gradient(top, #0044cc, #08c);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0044cc), to(#08c));\n  background-image: -webkit-linear-gradient(top, #0044cc, #08c);\n  background-image: -o-linear-gradient(top, #0044cc, #08c);\n  background-image: linear-gradient(to bottom, #0044cc, #08c);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0044cc', endColorstr='#ff0088cc', GradientType=0);\n  border-color: #08c #08c #005580;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #08c;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary[disabled] {\n  color: #fff;\n  background-color: #08c;\n  *background-color: #0077b3;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active {\n  background-color: #006699 \\9;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #41a7c5;\n  background-image: -moz-linear-gradient(top, #2f96b4, #5bc0de);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2f96b4), to(#5bc0de));\n  background-image: -webkit-linear-gradient(top, #2f96b4, #5bc0de);\n  background-image: -o-linear-gradient(top, #2f96b4, #5bc0de);\n  background-image: linear-gradient(to bottom, #2f96b4, #5bc0de);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f96b4', endColorstr='#ff5bc0de', GradientType=0);\n  border-color: #5bc0de #5bc0de #28a1c5;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #5bc0de;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info[disabled] {\n  color: #fff;\n  background-color: #5bc0de;\n  *background-color: #46b8da;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active {\n  background-color: #31b0d5 \\9;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #58b058;\n  background-image: -moz-linear-gradient(top, #51a351, #62c462);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#51a351), to(#62c462));\n  background-image: -webkit-linear-gradient(top, #51a351, #62c462);\n  background-image: -o-linear-gradient(top, #51a351, #62c462);\n  background-image: linear-gradient(to bottom, #51a351, #62c462);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff51a351', endColorstr='#ff62c462', GradientType=0);\n  border-color: #62c462 #62c462 #3b9e3b;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #62c462;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success[disabled] {\n  color: #fff;\n  background-color: #62c462;\n  *background-color: #4fbd4f;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active {\n  background-color: #42b142 \\9;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #f9a123;\n  background-image: -moz-linear-gradient(top, #f89406, #fbb450);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f89406), to(#fbb450));\n  background-image: -webkit-linear-gradient(top, #f89406, #fbb450);\n  background-image: -o-linear-gradient(top, #f89406, #fbb450);\n  background-image: linear-gradient(to bottom, #f89406, #fbb450);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff89406', endColorstr='#fffbb450', GradientType=0);\n  border-color: #fbb450 #fbb450 #f89406;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #fbb450;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning[disabled] {\n  color: #fff;\n  background-color: #fbb450;\n  *background-color: #faa937;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active {\n  background-color: #fa9f1e \\9;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #d14641;\n  background-image: -moz-linear-gradient(top, #bd362f, #ee5f5b);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bd362f), to(#ee5f5b));\n  background-image: -webkit-linear-gradient(top, #bd362f, #ee5f5b);\n  background-image: -o-linear-gradient(top, #bd362f, #ee5f5b);\n  background-image: linear-gradient(to bottom, #bd362f, #ee5f5b);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbd362f', endColorstr='#ffee5f5b', GradientType=0);\n  border-color: #ee5f5b #ee5f5b #e51d18;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #ee5f5b;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled] {\n  color: #fff;\n  background-color: #ee5f5b;\n  *background-color: #ec4844;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active {\n  background-color: #e9322d \\9;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #333;\n  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n  background-color: #f0f0f0;\n  background-image: -moz-linear-gradient(top, #e6e6e6, #fff);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#fff));\n  background-image: -webkit-linear-gradient(top, #e6e6e6, #fff);\n  background-image: -o-linear-gradient(top, #e6e6e6, #fff);\n  background-image: linear-gradient(to bottom, #e6e6e6, #fff);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffffffff', GradientType=0);\n  border-color: #fff #fff #d9d9d9;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #fff;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:hover,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:focus,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:focus,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.disabled,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled],\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default[disabled] {\n  color: #333;\n  background-color: #fff;\n  *background-color: #f2f2f2;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active {\n  background-color: #e6e6e6 \\9;\n}\n.bootstrap-switch .bootstrap-switch-label {\n  text-align: center;\n  margin-top: -1px;\n  margin-bottom: -1px;\n  z-index: 100;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #ccc;\n  color: #333;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #f5f5f5;\n  background-image: -moz-linear-gradient(top, #fff, #e6e6e6);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e6e6e6));\n  background-image: -webkit-linear-gradient(top, #fff, #e6e6e6);\n  background-image: -o-linear-gradient(top, #fff, #e6e6e6);\n  background-image: linear-gradient(to bottom, #fff, #e6e6e6);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);\n  border-color: #e6e6e6 #e6e6e6 #bfbfbf;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #e6e6e6;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.bootstrap-switch .bootstrap-switch-label:hover,\n.bootstrap-switch .bootstrap-switch-label:focus,\n.bootstrap-switch .bootstrap-switch-label:active,\n.bootstrap-switch .bootstrap-switch-label.active,\n.bootstrap-switch .bootstrap-switch-label.disabled,\n.bootstrap-switch .bootstrap-switch-label[disabled] {\n  color: #333;\n  background-color: #e6e6e6;\n  *background-color: #d9d9d9;\n}\n.bootstrap-switch .bootstrap-switch-label:active,\n.bootstrap-switch .bootstrap-switch-label.active {\n  background-color: #cccccc \\9;\n}\n.bootstrap-switch span::before {\n  content: \"\\200b\";\n}\n.bootstrap-switch .bootstrap-switch-handle-on {\n  -webkit-border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n  border-top-left-radius: 4px;\n  -webkit-border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  border-bottom-left-radius: 4px;\n}\n.bootstrap-switch .bootstrap-switch-handle-off {\n  -webkit-border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n  border-bottom-right-radius: 4px;\n}\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  z-index: -1;\n  visibility: hidden;\n}\n.bootstrap-switch input[type='radio'].form-control,\n.bootstrap-switch input[type='checkbox'].form-control {\n  height: auto;\n}\n.bootstrap-switch.bootstrap-switch-mini {\n  min-width: 71px;\n}\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  padding: 3px 6px;\n  font-size: 10px;\n  line-height: 9px;\n}\n.bootstrap-switch.bootstrap-switch-small {\n  min-width: 79px;\n}\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  padding: 3px 6px;\n  font-size: 12px;\n  line-height: 18px;\n}\n.bootstrap-switch.bootstrap-switch-large {\n  min-width: 120px;\n}\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  padding: 9px 12px;\n  font-size: 16px;\n  line-height: normal;\n}\n.bootstrap-switch.bootstrap-switch-disabled,\n.bootstrap-switch.bootstrap-switch-readonly,\n.bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  -webkit-transition: margin-left 0.5s;\n  -moz-transition: margin-left 0.5s;\n  -o-transition: margin-left 0.5s;\n  transition: margin-left 0.5s;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  -webkit-border-top-left-radius: 0;\n  -moz-border-radius-topleft: 0;\n  border-top-left-radius: 0;\n  -webkit-border-bottom-left-radius: 0;\n  -moz-border-radius-bottomleft: 0;\n  border-bottom-left-radius: 0;\n  -webkit-border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n  border-bottom-right-radius: 4px;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  -webkit-border-top-right-radius: 0;\n  -moz-border-radius-topright: 0;\n  border-top-right-radius: 0;\n  -webkit-border-bottom-right-radius: 0;\n  -moz-border-radius-bottomright: 0;\n  border-bottom-right-radius: 0;\n  -webkit-border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n  border-top-left-radius: 4px;\n  -webkit-border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  border-bottom-left-radius: 4px;\n}\n.bootstrap-switch.bootstrap-switch-focused {\n  border-color: rgba(82, 168, 236, 0.8);\n  outline: 0;\n  outline: thin dotted \\9;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6);\n  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6);\n}\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  -webkit-border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n  border-bottom-right-radius: 4px;\n}\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  -webkit-border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n  border-top-left-radius: 4px;\n  -webkit-border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  border-bottom-left-radius: 4px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.css",
    "content": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.3.4\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license Apache-2.0\n  */\n\n.bootstrap-switch {\n  display: inline-block;\n  direction: ltr;\n  cursor: pointer;\n  border-radius: 4px;\n  border: 1px solid;\n  border-color: #ccc;\n  position: relative;\n  text-align: left;\n  overflow: hidden;\n  line-height: 8px;\n  z-index: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.bootstrap-switch .bootstrap-switch-container {\n  display: inline-block;\n  top: 0;\n  border-radius: 4px;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  vertical-align: middle;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #337ab7;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #5bc0de;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #5cb85c;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f0ad4e;\n  color: #fff;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #d9534f;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #000;\n  background: #eeeeee;\n}\n.bootstrap-switch .bootstrap-switch-label {\n  text-align: center;\n  margin-top: -1px;\n  margin-bottom: -1px;\n  z-index: 100;\n  color: #333;\n  background: #fff;\n}\n.bootstrap-switch span::before {\n  content: \"\\200b\";\n}\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  margin: 0;\n  z-index: -1;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  visibility: hidden;\n}\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  padding: 6px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.bootstrap-switch.bootstrap-switch-disabled,\n.bootstrap-switch.bootstrap-switch-readonly,\n.bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  -webkit-transition: margin-left 0.5s;\n  -o-transition: margin-left 0.5s;\n  transition: margin-left 0.5s;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-focused {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap-switch/js/bootstrap-switch.js",
    "content": "/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.3.4\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license Apache-2.0\n  */\n\n(function (global, factory) {\n  if (typeof define === \"function\" && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof exports !== \"undefined\") {\n    factory(require('jquery'));\n  } else {\n    var mod = {\n      exports: {}\n    };\n    factory(global.jquery);\n    global.bootstrapSwitch = mod.exports;\n  }\n})(this, function (_jquery) {\n  'use strict';\n\n  var _jquery2 = _interopRequireDefault(_jquery);\n\n  function _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n      default: obj\n    };\n  }\n\n  var _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  var $ = _jquery2.default || window.jQuery || window.$;\n\n  var BootstrapSwitch = function () {\n    function BootstrapSwitch(element) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      _classCallCheck(this, BootstrapSwitch);\n\n      this.$element = $(element);\n      this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, this._getElementOptions(), options);\n      this.prevOptions = {};\n      this.$wrapper = $('<div>', {\n        class: function _class() {\n          var classes = [];\n          classes.push(_this.options.state ? 'on' : 'off');\n          if (_this.options.size) {\n            classes.push(_this.options.size);\n          }\n          if (_this.options.disabled) {\n            classes.push('disabled');\n          }\n          if (_this.options.readonly) {\n            classes.push('readonly');\n          }\n          if (_this.options.indeterminate) {\n            classes.push('indeterminate');\n          }\n          if (_this.options.inverse) {\n            classes.push('inverse');\n          }\n          if (_this.$element.attr('id')) {\n            classes.push('id-' + _this.$element.attr('id'));\n          }\n          return classes.map(_this._getClass.bind(_this)).concat([_this.options.baseClass], _this._getClasses(_this.options.wrapperClass)).join(' ');\n        }\n      });\n      this.$container = $('<div>', { class: this._getClass('container') });\n      this.$on = $('<span>', {\n        html: this.options.onText,\n        class: this._getClass('handle-on') + ' ' + this._getClass(this.options.onColor)\n      });\n      this.$off = $('<span>', {\n        html: this.options.offText,\n        class: this._getClass('handle-off') + ' ' + this._getClass(this.options.offColor)\n      });\n      this.$label = $('<span>', {\n        html: this.options.labelText,\n        class: this._getClass('label')\n      });\n\n      this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element));\n      this.$element.on('switchChange.bootstrapSwitch', function () {\n        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        if (_this.options.onSwitchChange.apply(element, args) === false) {\n          if (_this.$element.is(':radio')) {\n            $('[name=\"' + _this.$element.attr('name') + '\"]').trigger('previousState.bootstrapSwitch', true);\n          } else {\n            _this.$element.trigger('previousState.bootstrapSwitch', true);\n          }\n        }\n      });\n\n      this.$container = this.$element.wrap(this.$container).parent();\n      this.$wrapper = this.$container.wrap(this.$wrapper).parent();\n      this.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);\n\n      if (this.options.indeterminate) {\n        this.$element.prop('indeterminate', true);\n      }\n\n      this._init();\n      this._elementHandlers();\n      this._handleHandlers();\n      this._labelHandlers();\n      this._formHandler();\n      this._externalLabelHandler();\n      this.$element.trigger('init.bootstrapSwitch', this.options.state);\n    }\n\n    _createClass(BootstrapSwitch, [{\n      key: 'setPrevOptions',\n      value: function setPrevOptions() {\n        this.prevOptions = _extends({}, this.options);\n      }\n    }, {\n      key: 'state',\n      value: function state(value, skip) {\n        if (typeof value === 'undefined') {\n          return this.options.state;\n        }\n        if (this.options.disabled || this.options.readonly || this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) {\n          return this.$element;\n        }\n        if (this.$element.is(':radio')) {\n          $('[name=\"' + this.$element.attr('name') + '\"]').trigger('setPreviousOptions.bootstrapSwitch');\n        } else {\n          this.$element.trigger('setPreviousOptions.bootstrapSwitch');\n        }\n        if (this.options.indeterminate) {\n          this.indeterminate(false);\n        }\n        this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip);\n        return this.$element;\n      }\n    }, {\n      key: 'toggleState',\n      value: function toggleState(skip) {\n        if (this.options.disabled || this.options.readonly) {\n          return this.$element;\n        }\n        if (this.options.indeterminate) {\n          this.indeterminate(false);\n          return this.state(true);\n        } else {\n          return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip);\n        }\n      }\n    }, {\n      key: 'size',\n      value: function size(value) {\n        if (typeof value === 'undefined') {\n          return this.options.size;\n        }\n        if (this.options.size != null) {\n          this.$wrapper.removeClass(this._getClass(this.options.size));\n        }\n        if (value) {\n          this.$wrapper.addClass(this._getClass(value));\n        }\n        this._width();\n        this._containerPosition();\n        this.options.size = value;\n        return this.$element;\n      }\n    }, {\n      key: 'animate',\n      value: function animate(value) {\n        if (typeof value === 'undefined') {\n          return this.options.animate;\n        }\n        if (this.options.animate === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleAnimate();\n      }\n    }, {\n      key: 'toggleAnimate',\n      value: function toggleAnimate() {\n        this.options.animate = !this.options.animate;\n        this.$wrapper.toggleClass(this._getClass('animate'));\n        return this.$element;\n      }\n    }, {\n      key: 'disabled',\n      value: function disabled(value) {\n        if (typeof value === 'undefined') {\n          return this.options.disabled;\n        }\n        if (this.options.disabled === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleDisabled();\n      }\n    }, {\n      key: 'toggleDisabled',\n      value: function toggleDisabled() {\n        this.options.disabled = !this.options.disabled;\n        this.$element.prop('disabled', this.options.disabled);\n        this.$wrapper.toggleClass(this._getClass('disabled'));\n        return this.$element;\n      }\n    }, {\n      key: 'readonly',\n      value: function readonly(value) {\n        if (typeof value === 'undefined') {\n          return this.options.readonly;\n        }\n        if (this.options.readonly === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleReadonly();\n      }\n    }, {\n      key: 'toggleReadonly',\n      value: function toggleReadonly() {\n        this.options.readonly = !this.options.readonly;\n        this.$element.prop('readonly', this.options.readonly);\n        this.$wrapper.toggleClass(this._getClass('readonly'));\n        return this.$element;\n      }\n    }, {\n      key: 'indeterminate',\n      value: function indeterminate(value) {\n        if (typeof value === 'undefined') {\n          return this.options.indeterminate;\n        }\n        if (this.options.indeterminate === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleIndeterminate();\n      }\n    }, {\n      key: 'toggleIndeterminate',\n      value: function toggleIndeterminate() {\n        this.options.indeterminate = !this.options.indeterminate;\n        this.$element.prop('indeterminate', this.options.indeterminate);\n        this.$wrapper.toggleClass(this._getClass('indeterminate'));\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'inverse',\n      value: function inverse(value) {\n        if (typeof value === 'undefined') {\n          return this.options.inverse;\n        }\n        if (this.options.inverse === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleInverse();\n      }\n    }, {\n      key: 'toggleInverse',\n      value: function toggleInverse() {\n        this.$wrapper.toggleClass(this._getClass('inverse'));\n        var $on = this.$on.clone(true);\n        var $off = this.$off.clone(true);\n        this.$on.replaceWith($off);\n        this.$off.replaceWith($on);\n        this.$on = $off;\n        this.$off = $on;\n        this.options.inverse = !this.options.inverse;\n        return this.$element;\n      }\n    }, {\n      key: 'onColor',\n      value: function onColor(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onColor;\n        }\n        if (this.options.onColor) {\n          this.$on.removeClass(this._getClass(this.options.onColor));\n        }\n        this.$on.addClass(this._getClass(value));\n        this.options.onColor = value;\n        return this.$element;\n      }\n    }, {\n      key: 'offColor',\n      value: function offColor(value) {\n        if (typeof value === 'undefined') {\n          return this.options.offColor;\n        }\n        if (this.options.offColor) {\n          this.$off.removeClass(this._getClass(this.options.offColor));\n        }\n        this.$off.addClass(this._getClass(value));\n        this.options.offColor = value;\n        return this.$element;\n      }\n    }, {\n      key: 'onText',\n      value: function onText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onText;\n        }\n        this.$on.html(value);\n        this._width();\n        this._containerPosition();\n        this.options.onText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'offText',\n      value: function offText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.offText;\n        }\n        this.$off.html(value);\n        this._width();\n        this._containerPosition();\n        this.options.offText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'labelText',\n      value: function labelText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.labelText;\n        }\n        this.$label.html(value);\n        this._width();\n        this.options.labelText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'handleWidth',\n      value: function handleWidth(value) {\n        if (typeof value === 'undefined') {\n          return this.options.handleWidth;\n        }\n        this.options.handleWidth = value;\n        this._width();\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'labelWidth',\n      value: function labelWidth(value) {\n        if (typeof value === 'undefined') {\n          return this.options.labelWidth;\n        }\n        this.options.labelWidth = value;\n        this._width();\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'baseClass',\n      value: function baseClass(value) {\n        return this.options.baseClass;\n      }\n    }, {\n      key: 'wrapperClass',\n      value: function wrapperClass(value) {\n        if (typeof value === 'undefined') {\n          return this.options.wrapperClass;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.wrapperClass;\n        }\n        this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' '));\n        this.$wrapper.addClass(this._getClasses(value).join(' '));\n        this.options.wrapperClass = value;\n        return this.$element;\n      }\n    }, {\n      key: 'radioAllOff',\n      value: function radioAllOff(value) {\n        if (typeof value === 'undefined') {\n          return this.options.radioAllOff;\n        }\n        var val = Boolean(value);\n        if (this.options.radioAllOff === val) {\n          return this.$element;\n        }\n        this.options.radioAllOff = val;\n        return this.$element;\n      }\n    }, {\n      key: 'onInit',\n      value: function onInit(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onInit;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.onInit;\n        }\n        this.options.onInit = value;\n        return this.$element;\n      }\n    }, {\n      key: 'onSwitchChange',\n      value: function onSwitchChange(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onSwitchChange;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.onSwitchChange;\n        }\n        this.options.onSwitchChange = value;\n        return this.$element;\n      }\n    }, {\n      key: 'destroy',\n      value: function destroy() {\n        var $form = this.$element.closest('form');\n        if ($form.length) {\n          $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch');\n        }\n        this.$container.children().not(this.$element).remove();\n        this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch');\n        return this.$element;\n      }\n    }, {\n      key: '_getElementOptions',\n      value: function _getElementOptions() {\n        return {\n          state: this.$element.is(':checked'),\n          size: this.$element.data('size'),\n          animate: this.$element.data('animate'),\n          disabled: this.$element.is(':disabled'),\n          readonly: this.$element.is('[readonly]'),\n          indeterminate: this.$element.data('indeterminate'),\n          inverse: this.$element.data('inverse'),\n          radioAllOff: this.$element.data('radio-all-off'),\n          onColor: this.$element.data('on-color'),\n          offColor: this.$element.data('off-color'),\n          onText: this.$element.data('on-text'),\n          offText: this.$element.data('off-text'),\n          labelText: this.$element.data('label-text'),\n          handleWidth: this.$element.data('handle-width'),\n          labelWidth: this.$element.data('label-width'),\n          baseClass: this.$element.data('base-class'),\n          wrapperClass: this.$element.data('wrapper-class')\n        };\n      }\n    }, {\n      key: '_width',\n      value: function _width() {\n        var _this2 = this;\n\n        var $handles = this.$on.add(this.$off).add(this.$label).css('width', '');\n        var handleWidth = this.options.handleWidth === 'auto' ? Math.round(Math.max(this.$on.width(), this.$off.width())) : this.options.handleWidth;\n        $handles.width(handleWidth);\n        this.$label.width(function (index, width) {\n          if (_this2.options.labelWidth !== 'auto') {\n            return _this2.options.labelWidth;\n          }\n          if (width < handleWidth) {\n            return handleWidth;\n          }\n          return width;\n        });\n        this._handleWidth = this.$on.outerWidth();\n        this._labelWidth = this.$label.outerWidth();\n        this.$container.width(this._handleWidth * 2 + this._labelWidth);\n        return this.$wrapper.width(this._handleWidth + this._labelWidth);\n      }\n    }, {\n      key: '_containerPosition',\n      value: function _containerPosition() {\n        var _this3 = this;\n\n        var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.state;\n        var callback = arguments[1];\n\n        this.$container.css('margin-left', function () {\n          var values = [0, '-' + _this3._handleWidth + 'px'];\n          if (_this3.options.indeterminate) {\n            return '-' + _this3._handleWidth / 2 + 'px';\n          }\n          if (state) {\n            if (_this3.options.inverse) {\n              return values[1];\n            } else {\n              return values[0];\n            }\n          } else {\n            if (_this3.options.inverse) {\n              return values[0];\n            } else {\n              return values[1];\n            }\n          }\n        });\n      }\n    }, {\n      key: '_init',\n      value: function _init() {\n        var _this4 = this;\n\n        var init = function init() {\n          _this4.setPrevOptions();\n          _this4._width();\n          _this4._containerPosition();\n          setTimeout(function () {\n            if (_this4.options.animate) {\n              return _this4.$wrapper.addClass(_this4._getClass('animate'));\n            }\n          }, 50);\n        };\n        if (this.$wrapper.is(':visible')) {\n          init();\n          return;\n        }\n        var initInterval = window.setInterval(function () {\n          if (_this4.$wrapper.is(':visible')) {\n            init();\n            return window.clearInterval(initInterval);\n          }\n        }, 50);\n      }\n    }, {\n      key: '_elementHandlers',\n      value: function _elementHandlers() {\n        var _this5 = this;\n\n        return this.$element.on({\n          'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this),\n\n          'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() {\n            _this5.options = _this5.prevOptions;\n            if (_this5.options.indeterminate) {\n              _this5.$wrapper.addClass(_this5._getClass('indeterminate'));\n            }\n            _this5.$element.prop('checked', _this5.options.state).trigger('change.bootstrapSwitch', true);\n          },\n\n          'change.bootstrapSwitch': function changeBootstrapSwitch(event, skip) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n            var state = _this5.$element.is(':checked');\n            _this5._containerPosition(state);\n            if (state === _this5.options.state) {\n              return;\n            }\n            _this5.options.state = state;\n            _this5.$wrapper.toggleClass(_this5._getClass('off')).toggleClass(_this5._getClass('on'));\n            if (!skip) {\n              if (_this5.$element.is(':radio')) {\n                $('[name=\"' + _this5.$element.attr('name') + '\"]').not(_this5.$element).prop('checked', false).trigger('change.bootstrapSwitch', true);\n              }\n              _this5.$element.trigger('switchChange.bootstrapSwitch', [state]);\n            }\n          },\n\n          'focus.bootstrapSwitch': function focusBootstrapSwitch(event) {\n            event.preventDefault();\n            _this5.$wrapper.addClass(_this5._getClass('focused'));\n          },\n\n          'blur.bootstrapSwitch': function blurBootstrapSwitch(event) {\n            event.preventDefault();\n            _this5.$wrapper.removeClass(_this5._getClass('focused'));\n          },\n\n          'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) {\n            if (!event.which || _this5.options.disabled || _this5.options.readonly) {\n              return;\n            }\n            if (event.which === 37 || event.which === 39) {\n              event.preventDefault();\n              event.stopImmediatePropagation();\n              _this5.state(event.which === 39);\n            }\n          }\n        });\n      }\n    }, {\n      key: '_handleHandlers',\n      value: function _handleHandlers() {\n        var _this6 = this;\n\n        this.$on.on('click.bootstrapSwitch', function (event) {\n          event.preventDefault();\n          event.stopPropagation();\n          _this6.state(false);\n          return _this6.$element.trigger('focus.bootstrapSwitch');\n        });\n        return this.$off.on('click.bootstrapSwitch', function (event) {\n          event.preventDefault();\n          event.stopPropagation();\n          _this6.state(true);\n          return _this6.$element.trigger('focus.bootstrapSwitch');\n        });\n      }\n    }, {\n      key: '_labelHandlers',\n      value: function _labelHandlers() {\n        var _this7 = this;\n\n        var handlers = {\n          click: function click(event) {\n            event.stopPropagation();\n          },\n\n\n          'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) {\n            if (_this7._dragStart || _this7.options.disabled || _this7.options.readonly) {\n              return;\n            }\n            event.preventDefault();\n            event.stopPropagation();\n            _this7._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(_this7.$container.css('margin-left'), 10);\n            if (_this7.options.animate) {\n              _this7.$wrapper.removeClass(_this7._getClass('animate'));\n            }\n            _this7.$element.trigger('focus.bootstrapSwitch');\n          },\n\n          'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) {\n            if (_this7._dragStart == null) {\n              return;\n            }\n            var difference = (event.pageX || event.originalEvent.touches[0].pageX) - _this7._dragStart;\n            event.preventDefault();\n            if (difference < -_this7._handleWidth || difference > 0) {\n              return;\n            }\n            _this7._dragEnd = difference;\n            _this7.$container.css('margin-left', _this7._dragEnd + 'px');\n          },\n\n          'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) {\n            if (!_this7._dragStart) {\n              return;\n            }\n            event.preventDefault();\n            if (_this7.options.animate) {\n              _this7.$wrapper.addClass(_this7._getClass('animate'));\n            }\n            if (_this7._dragEnd) {\n              var state = _this7._dragEnd > -(_this7._handleWidth / 2);\n              _this7._dragEnd = false;\n              _this7.state(_this7.options.inverse ? !state : state);\n            } else {\n              _this7.state(!_this7.options.state);\n            }\n            _this7._dragStart = false;\n          },\n\n          'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() {\n            _this7.$label.trigger('mouseup.bootstrapSwitch');\n          }\n        };\n        this.$label.on(handlers);\n      }\n    }, {\n      key: '_externalLabelHandler',\n      value: function _externalLabelHandler() {\n        var _this8 = this;\n\n        var $externalLabel = this.$element.closest('label');\n        $externalLabel.on('click', function (event) {\n          event.preventDefault();\n          event.stopImmediatePropagation();\n          if (event.target === $externalLabel[0]) {\n            _this8.toggleState();\n          }\n        });\n      }\n    }, {\n      key: '_formHandler',\n      value: function _formHandler() {\n        var $form = this.$element.closest('form');\n        if ($form.data('bootstrap-switch')) {\n          return;\n        }\n        $form.on('reset.bootstrapSwitch', function () {\n          window.setTimeout(function () {\n            $form.find('input').filter(function () {\n              return $(this).data('bootstrap-switch');\n            }).each(function () {\n              return $(this).bootstrapSwitch('state', this.checked);\n            });\n          }, 1);\n        }).data('bootstrap-switch', true);\n      }\n    }, {\n      key: '_getClass',\n      value: function _getClass(name) {\n        return this.options.baseClass + '-' + name;\n      }\n    }, {\n      key: '_getClasses',\n      value: function _getClasses(classes) {\n        if (!$.isArray(classes)) {\n          return [this._getClass(classes)];\n        }\n        return classes.map(this._getClass.bind(this));\n      }\n    }]);\n\n    return BootstrapSwitch;\n  }();\n\n  $.fn.bootstrapSwitch = function (option) {\n    for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    function reducer(ret, next) {\n      var $this = $(next);\n      var existingData = $this.data('bootstrap-switch');\n      var data = existingData || new BootstrapSwitch(next, option);\n      if (!existingData) {\n        $this.data('bootstrap-switch', data);\n      }\n      if (typeof option === 'string') {\n        return data[option].apply(data, args);\n      }\n      return ret;\n    }\n    return Array.prototype.reduce.call(this, reducer, this);\n  };\n  $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;\n  $.fn.bootstrapSwitch.defaults = {\n    state: true,\n    size: null,\n    animate: true,\n    disabled: false,\n    readonly: false,\n    indeterminate: false,\n    inverse: false,\n    radioAllOff: false,\n    onColor: 'primary',\n    offColor: 'default',\n    onText: 'ON',\n    offText: 'OFF',\n    labelText: '&nbsp',\n    handleWidth: 'auto',\n    labelWidth: 'auto',\n    baseClass: 'bootstrap-switch',\n    wrapperClass: 'wrapper',\n    onInit: function onInit() {},\n    onSwitchChange: function onSwitchChange() {}\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap4-duallistbox/bootstrap-duallistbox.css",
    "content": "/*\n *  Bootstrap Duallistbox - v4.0.2\n *  A responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices.\n *  http://www.virtuosoft.eu/code/bootstrap-duallistbox/\n *\n *  Made by István Ujj-Mészáros\n *  Under Apache License v2.0 License\n */\n.bootstrap-duallistbox-container .buttons {\n  width: 100%;\n  margin-bottom: -1px;\n}\n\n.bootstrap-duallistbox-container label {\n  display: block;\n}\n\n.bootstrap-duallistbox-container .info {\n  display: inline-block;\n  margin-bottom: 5px;\n  font-size: 11px;\n}\n\n.bootstrap-duallistbox-container .clear1,\n.bootstrap-duallistbox-container .clear2 {\n  display: none;\n  font-size: 10px;\n}\n\n.bootstrap-duallistbox-container .box1.filtered .clear1,\n.bootstrap-duallistbox-container .box2.filtered .clear2 {\n  display: inline-block;\n}\n\n.bootstrap-duallistbox-container .move,\n.bootstrap-duallistbox-container .remove {\n  width: 50%;\n  box-sizing: content-box;\n}\n\n.bootstrap-duallistbox-container .btn-group .btn {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.bootstrap-duallistbox-container:not(.moveonselect) select {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.bootstrap-duallistbox-container .moveall,\n.bootstrap-duallistbox-container .removeall {\n  width: 50%;\n  box-sizing: content-box;\n}\n\n.bootstrap-duallistbox-container.bs2compatible .btn-group > .btn + .btn {\n  margin-left: 0;\n}\n\n.bootstrap-duallistbox-container select {\n  width: 100%;\n  height: 300px;\n  padding: 0;\n}\n\n.bootstrap-duallistbox-container .filter {\n  display: inline-block;\n  width: 100%;\n  height: 31px;\n  margin: 0 0 5px 0;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.bootstrap-duallistbox-container .filter.placeholder {\n  color: #aaa;\n}\n\n.bootstrap-duallistbox-container.moveonselect .move,\n.bootstrap-duallistbox-container.moveonselect .remove {\n  display:none;\n}\n\n.bootstrap-duallistbox-container.moveonselect .moveall,\n.bootstrap-duallistbox-container.moveonselect .removeall {\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js",
    "content": "/*\n *  Bootstrap Duallistbox - v4.0.2\n *  A responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices.\n *  http://www.virtuosoft.eu/code/bootstrap-duallistbox/\n *\n *  Made by István Ujj-Mészáros\n *  Under Apache License v2.0 License\n */\n(function(factory) {\n  if (typeof define === 'function' && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    module.exports = function(root, jQuery) {\n      if (jQuery === undefined) {\n        if (typeof window !== 'undefined') {\n          jQuery = require('jquery');\n        }\n        else {\n          jQuery = require('jquery')(root);\n        }\n      }\n      factory(jQuery);\n      return jQuery;\n    };\n  } else {\n    factory(jQuery);\n  }\n}(function($) {\n  // Create the defaults once\n  var pluginName = 'bootstrapDualListbox',\n    defaults = {\n      filterTextClear: 'show all',\n      filterPlaceHolder: 'Filter',\n      moveSelectedLabel: 'Move selected',\n      moveAllLabel: 'Move all',\n      removeSelectedLabel: 'Remove selected',\n      removeAllLabel: 'Remove all',\n      moveOnSelect: true,                                                                 // true/false (forced true on androids, see the comment later)\n      moveOnDoubleClick: true,                                                            // true/false (forced false on androids, cause moveOnSelect is forced to true)\n      preserveSelectionOnMove: false,                                                     // 'all' / 'moved' / false\n      selectedListLabel: false,                                                           // 'string', false\n      nonSelectedListLabel: false,                                                        // 'string', false\n      helperSelectNamePostfix: '_helper',                                                 // 'string_of_postfix' / false\n      selectorMinimalHeight: 100,\n      showFilterInputs: true,                                                             // whether to show filter inputs\n      nonSelectedFilter: '',                                                              // string, filter the non selected options\n      selectedFilter: '',                                                                 // string, filter the selected options\n      infoText: 'Showing all {0}',                                                        // text when all options are visible / false for no info text\n      infoTextFiltered: '<span class=\"badge badge-warning\">Filtered</span> {0} from {1}', // when not all of the options are visible due to the filter\n      infoTextEmpty: 'Empty list',                                                        // when there are no options present in the list\n      filterOnValues: false,                                                              // filter by selector's values, boolean\n      sortByInputOrder: false,\n      eventMoveOverride: false,                                                           // boolean, allows user to unbind default event behaviour and run their own instead\n      eventMoveAllOverride: false,                                                        // boolean, allows user to unbind default event behaviour and run their own instead\n      eventRemoveOverride: false,                                                         // boolean, allows user to unbind default event behaviour and run their own instead\n      eventRemoveAllOverride: false,                                                      // boolean, allows user to unbind default event behaviour and run their own instead\n      btnClass: 'btn-outline-secondary',                                                  // sets the button style class for all the buttons\n      btnMoveText: '&gt;',                                                                // string, sets the text for the \"Move\" button\n      btnRemoveText: '&lt;',                                                              // string, sets the text for the \"Remove\" button\n      btnMoveAllText: '&gt;&gt;',                                                         // string, sets the text for the \"Move All\" button\n      btnRemoveAllText: '&lt;&lt;'                                                        // string, sets the text for the \"Remove All\" button\n    },\n    // Selections are invisible on android if the containing select is styled with CSS\n    // http://code.google.com/p/android/issues/detail?id=16922\n    isBuggyAndroid = /android/i.test(navigator.userAgent.toLowerCase());\n\n  // The actual plugin constructor\n  function BootstrapDualListbox(element, options) {\n    this.element = $(element);\n    // jQuery has an extend method which merges the contents of two or\n    // more objects, storing the result in the first object. The first object\n    // is generally empty as we don't want to alter the default options for\n    // future instances of the plugin\n    this.settings = $.extend({}, defaults, options);\n    this._defaults = defaults;\n    this._name = pluginName;\n    this.init();\n  }\n\n  function triggerChangeEvent(dualListbox) {\n    dualListbox.element.trigger('change');\n  }\n\n  function updateSelectionStates(dualListbox) {\n    dualListbox.element.find('option').each(function(index, item) {\n      var $item = $(item);\n      if (typeof($item.data('original-index')) === 'undefined') {\n        $item.data('original-index', dualListbox.elementCount++);\n      }\n      if (typeof($item.data('_selected')) === 'undefined') {\n        $item.data('_selected', false);\n      }\n    });\n  }\n\n  function changeSelectionState(dualListbox, original_index, selected) {\n    dualListbox.element.find('option').each(function(index, item) {\n      var $item = $(item);\n      if ($item.data('original-index') === original_index) {\n        $item.prop('selected', selected);\n        if(selected){\n          $item.attr('data-sortindex', dualListbox.sortIndex);\n          dualListbox.sortIndex++;\n        } else {\n          $item.removeAttr('data-sortindex');\n        }\n      }\n    });\n  }\n\n  function formatString(s, args) {\n    console.log(s, args);\n    return s.replace(/{(\\d+)}/g, function(match, number) {\n      return typeof args[number] !== 'undefined' ? args[number] : match;\n    });\n  }\n\n  function refreshInfo(dualListbox) {\n    if (!dualListbox.settings.infoText) {\n      return;\n    }\n\n    var visible1 = dualListbox.elements.select1.find('option').length,\n      visible2 = dualListbox.elements.select2.find('option').length,\n      all1 = dualListbox.element.find('option').length - dualListbox.selectedElements,\n      all2 = dualListbox.selectedElements,\n      content = '';\n\n    if (all1 === 0) {\n      content = dualListbox.settings.infoTextEmpty;\n    } else if (visible1 === all1) {\n      content = formatString(dualListbox.settings.infoText, [visible1, all1]);\n    } else {\n      content = formatString(dualListbox.settings.infoTextFiltered, [visible1, all1]);\n    }\n\n    dualListbox.elements.info1.html(content);\n    dualListbox.elements.box1.toggleClass('filtered', !(visible1 === all1 || all1 === 0));\n\n    if (all2 === 0) {\n      content = dualListbox.settings.infoTextEmpty;\n    } else if (visible2 === all2) {\n      content = formatString(dualListbox.settings.infoText, [visible2, all2]);\n    } else {\n      content = formatString(dualListbox.settings.infoTextFiltered, [visible2, all2]);\n    }\n\n    dualListbox.elements.info2.html(content);\n    dualListbox.elements.box2.toggleClass('filtered', !(visible2 === all2 || all2 === 0));\n  }\n\n  function refreshSelects(dualListbox) {\n    dualListbox.selectedElements = 0;\n\n    dualListbox.elements.select1.empty();\n    dualListbox.elements.select2.empty();\n\n    dualListbox.element.find('option').each(function(index, item) {\n      var $item = $(item);\n      if ($item.prop('selected')) {\n        dualListbox.selectedElements++;\n        dualListbox.elements.select2.append($item.clone(true).prop('selected', $item.data('_selected')));\n      } else {\n        dualListbox.elements.select1.append($item.clone(true).prop('selected', $item.data('_selected')));\n      }\n    });\n\n    if (dualListbox.settings.showFilterInputs) {\n      filter(dualListbox, 1);\n      filter(dualListbox, 2);\n    }\n    refreshInfo(dualListbox);\n  }\n\n  function filter(dualListbox, selectIndex) {\n    if (!dualListbox.settings.showFilterInputs) {\n      return;\n    }\n\n    saveSelections(dualListbox, selectIndex);\n\n    dualListbox.elements['select'+selectIndex].empty().scrollTop(0);\n    var regex,\n      allOptions = dualListbox.element.find('option'),\n      options = dualListbox.element;\n\n    if (selectIndex === 1) {\n      options = allOptions.not(':selected');\n    } else  {\n      options = options.find('option:selected');\n    }\n\n    try {\n      regex = new RegExp($.trim(dualListbox.elements['filterInput'+selectIndex].val()), 'gi');\n    }\n    catch(e) {\n      // a regex to match nothing\n      regex = new RegExp('/a^/', 'gi');\n    }\n\n    options.each(function(index, item) {\n      var $item = $(item),\n        isFiltered = true;\n      if (item.text.match(regex) || (dualListbox.settings.filterOnValues && $item.attr('value').match(regex) ) ) {\n        isFiltered = false;\n        dualListbox.elements['select'+selectIndex].append($item.clone(true).prop('selected', $item.data('_selected')));\n      }\n      allOptions.eq($item.data('original-index')).data('filtered'+selectIndex, isFiltered);\n    });\n\n    refreshInfo(dualListbox);\n  }\n\n  function saveSelections(dualListbox, selectIndex) {\n    var options = dualListbox.element.find('option');\n    dualListbox.elements['select'+selectIndex].find('option').each(function(index, item) {\n      var $item = $(item);\n      options.eq($item.data('original-index')).data('_selected', $item.prop('selected'));\n    });\n  }\n\n  function sortOptionsByInputOrder(select){\n    var selectopt = select.children('option');\n\n    selectopt.sort(function(a,b){\n      var an = parseInt(a.getAttribute('data-sortindex')),\n          bn = parseInt(b.getAttribute('data-sortindex'));\n\n          if(an > bn) {\n             return 1;\n          }\n          if(an < bn) {\n            return -1;\n          }\n          return 0;\n    });\n\n    selectopt.detach().appendTo(select);\n  }\n\n  function sortOptions(select, dualListbox) {\n    select.find('option').sort(function(a, b) {\n      return ($(a).data('original-index') > $(b).data('original-index')) ? 1 : -1;\n    }).appendTo(select);\n\n    // workaround for chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1072475\n    refreshSelects(dualListbox);\n  }\n\n  function clearSelections(dualListbox) {\n    dualListbox.elements.select1.find('option').each(function() {\n      dualListbox.element.find('option').data('_selected', false);\n    });\n  }\n\n  function move(dualListbox) {\n    if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n      saveSelections(dualListbox, 2);\n    } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n    }\n\n    dualListbox.elements.select1.find('option:selected').each(function(index, item) {\n      var $item = $(item);\n      if (!$item.data('filtered1')) {\n        changeSelectionState(dualListbox, $item.data('original-index'), true);\n      }\n    });\n\n    refreshSelects(dualListbox);\n    triggerChangeEvent(dualListbox);\n    if(dualListbox.settings.sortByInputOrder){\n        sortOptionsByInputOrder(dualListbox.elements.select2);\n    } else {\n        sortOptions(dualListbox.elements.select2, dualListbox);\n    }\n  }\n\n  function remove(dualListbox) {\n    if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n      saveSelections(dualListbox, 2);\n    } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 2);\n    }\n\n    dualListbox.elements.select2.find('option:selected').each(function(index, item) {\n      var $item = $(item);\n      if (!$item.data('filtered2')) {\n        changeSelectionState(dualListbox, $item.data('original-index'), false);\n      }\n    });\n\n    refreshSelects(dualListbox);\n    triggerChangeEvent(dualListbox);\n    sortOptions(dualListbox.elements.select1, dualListbox);\n    if(dualListbox.settings.sortByInputOrder){\n        sortOptionsByInputOrder(dualListbox.elements.select2);\n    }\n  }\n\n  function moveAll(dualListbox) {\n    if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n      saveSelections(dualListbox, 2);\n    } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n    }\n\n    dualListbox.element.find('option').each(function(index, item) {\n      var $item = $(item);\n      if (!$item.data('filtered1')) {\n        $item.prop('selected', true);\n        $item.attr('data-sortindex', dualListbox.sortIndex);\n        dualListbox.sortIndex++;\n      }\n    });\n\n    refreshSelects(dualListbox);\n    triggerChangeEvent(dualListbox);\n  }\n\n  function removeAll(dualListbox) {\n    if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 1);\n      saveSelections(dualListbox, 2);\n    } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) {\n      saveSelections(dualListbox, 2);\n    }\n\n    dualListbox.element.find('option').each(function(index, item) {\n      var $item = $(item);\n      if (!$item.data('filtered2')) {\n        $item.prop('selected', false);\n        $item.removeAttr('data-sortindex');\n      }\n    });\n\n    refreshSelects(dualListbox);\n    triggerChangeEvent(dualListbox);\n  }\n\n  function bindEvents(dualListbox) {\n    dualListbox.elements.form.submit(function(e) {\n      if (dualListbox.elements.filterInput1.is(':focus')) {\n        e.preventDefault();\n        dualListbox.elements.filterInput1.focusout();\n      } else if (dualListbox.elements.filterInput2.is(':focus')) {\n        e.preventDefault();\n        dualListbox.elements.filterInput2.focusout();\n      }\n    });\n\n    dualListbox.element.on('bootstrapDualListbox.refresh', function(e, mustClearSelections){\n      dualListbox.refresh(mustClearSelections);\n    });\n\n    dualListbox.elements.filterClear1.on('click', function() {\n      dualListbox.setNonSelectedFilter('', true);\n    });\n\n    dualListbox.elements.filterClear2.on('click', function() {\n      dualListbox.setSelectedFilter('', true);\n    });\n\n    if (dualListbox.settings.eventMoveOverride === false) {\n      dualListbox.elements.moveButton.on('click', function() {\n        move(dualListbox);\n      });\n    }\n\n    if (dualListbox.settings.eventMoveAllOverride === false) {\n      dualListbox.elements.moveAllButton.on('click', function() {\n        moveAll(dualListbox);\n      });\n    }\n\n    if (dualListbox.settings.eventRemoveOverride === false) {\n      dualListbox.elements.removeButton.on('click', function() {\n        remove(dualListbox);\n      });\n    }\n\n    if (dualListbox.settings.eventRemoveAllOverride === false) {\n      dualListbox.elements.removeAllButton.on('click', function() {\n        removeAll(dualListbox);\n      });\n    }\n\n    dualListbox.elements.filterInput1.on('change keyup', function() {\n      filter(dualListbox, 1);\n    });\n\n    dualListbox.elements.filterInput2.on('change keyup', function() {\n      filter(dualListbox, 2);\n    });\n  }\n\n  BootstrapDualListbox.prototype = {\n    init: function () {\n      // Add the custom HTML template\n      this.container = $('' +\n        '<div class=\"bootstrap-duallistbox-container row\">' +\n        ' <div class=\"box1 col-md-6\">' +\n        '   <label></label>' +\n        '   <span class=\"info-container\">' +\n        '     <span class=\"info\"></span>' +\n        '     <button type=\"button\" class=\"btn btn-sm clear1\" style=\"float:right!important;\"></button>' +\n        '   </span>' +\n        '   <input class=\"form-control filter\" type=\"text\">' +\n        '   <div class=\"btn-group buttons\">' +\n        '     <button type=\"button\" class=\"btn moveall\"></button>' +\n        '     <button type=\"button\" class=\"btn move\"></button>' +\n        '   </div>' +\n        '   <select multiple=\"multiple\"></select>' +\n        ' </div>' +\n        ' <div class=\"box2 col-md-6\">' +\n        '   <label></label>' +\n        '   <span class=\"info-container\">' +\n        '     <span class=\"info\"></span>' +\n        '     <button type=\"button\" class=\"btn btn-sm clear2\" style=\"float:right!important;\"></button>' +\n        '   </span>' +\n        '   <input class=\"form-control filter\" type=\"text\">' +\n        '   <div class=\"btn-group buttons\">' +\n        '     <button type=\"button\" class=\"btn remove\"></button>' +\n        '     <button type=\"button\" class=\"btn removeall\"></button>' +\n        '   </div>' +\n        '   <select multiple=\"multiple\"></select>' +\n        ' </div>' +\n        '</div>')\n        .insertBefore(this.element);\n\n      // Cache the inner elements\n      this.elements = {\n        originalSelect: this.element,\n        box1: $('.box1', this.container),\n        box2: $('.box2', this.container),\n        filterInput1: $('.box1 .filter', this.container),\n        filterInput2: $('.box2 .filter', this.container),\n        filterClear1: $('.box1 .clear1', this.container),\n        filterClear2: $('.box2 .clear2', this.container),\n        label1: $('.box1 > label', this.container),\n        label2: $('.box2 > label', this.container),\n        info1: $('.box1 .info', this.container),\n        info2: $('.box2 .info', this.container),\n        select1: $('.box1 select', this.container),\n        select2: $('.box2 select', this.container),\n        moveButton: $('.box1 .move', this.container),\n        removeButton: $('.box2 .remove', this.container),\n        moveAllButton: $('.box1 .moveall', this.container),\n        removeAllButton: $('.box2 .removeall', this.container),\n        form: $($('.box1 .filter', this.container)[0].form)\n      };\n\n      // Set select IDs\n      this.originalSelectName = this.element.attr('name') || '';\n      var select1Id = 'bootstrap-duallistbox-nonselected-list_' + this.originalSelectName,\n        select2Id = 'bootstrap-duallistbox-selected-list_' + this.originalSelectName;\n      this.elements.select1.attr('id', select1Id);\n      this.elements.select2.attr('id', select2Id);\n      this.elements.label1.attr('for', select1Id);\n      this.elements.label2.attr('for', select2Id);\n\n      // Apply all settings\n      this.selectedElements = 0;\n      this.sortIndex = 0;\n      this.elementCount = 0;\n      this.setFilterTextClear(this.settings.filterTextClear);\n      this.setFilterPlaceHolder(this.settings.filterPlaceHolder);\n      this.setMoveSelectedLabel(this.settings.moveSelectedLabel);\n      this.setMoveAllLabel(this.settings.moveAllLabel);\n      this.setRemoveSelectedLabel(this.settings.removeSelectedLabel);\n      this.setRemoveAllLabel(this.settings.removeAllLabel);\n      this.setMoveOnSelect(this.settings.moveOnSelect);\n      this.setMoveOnDoubleClick(this.settings.moveOnDoubleClick);\n      this.setPreserveSelectionOnMove(this.settings.preserveSelectionOnMove);\n      this.setSelectedListLabel(this.settings.selectedListLabel);\n      this.setNonSelectedListLabel(this.settings.nonSelectedListLabel);\n      this.setHelperSelectNamePostfix(this.settings.helperSelectNamePostfix);\n      this.setSelectOrMinimalHeight(this.settings.selectorMinimalHeight);\n\n      updateSelectionStates(this);\n\n      this.setShowFilterInputs(this.settings.showFilterInputs);\n      this.setNonSelectedFilter(this.settings.nonSelectedFilter);\n      this.setSelectedFilter(this.settings.selectedFilter);\n      this.setInfoText(this.settings.infoText);\n      this.setInfoTextFiltered(this.settings.infoTextFiltered);\n      this.setInfoTextEmpty(this.settings.infoTextEmpty);\n      this.setFilterOnValues(this.settings.filterOnValues);\n      this.setSortByInputOrder(this.settings.sortByInputOrder);\n      this.setEventMoveOverride(this.settings.eventMoveOverride);\n      this.setEventMoveAllOverride(this.settings.eventMoveAllOverride);\n      this.setEventRemoveOverride(this.settings.eventRemoveOverride);\n      this.setEventRemoveAllOverride(this.settings.eventRemoveAllOverride);\n      this.setBtnClass(this.settings.btnClass);\n      this.setBtnMoveText(this.settings.btnMoveText);\n      this.setBtnRemoveText(this.settings.btnRemoveText);\n      this.setBtnMoveAllText(this.settings.btnMoveAllText);\n      this.setBtnRemoveAllText(this.settings.btnRemoveAllText);\n\n      // Hide the original select\n      this.element.hide();\n\n      bindEvents(this);\n      refreshSelects(this);\n\n      return this.element;\n    },\n    setFilterTextClear: function(value, refresh) {\n      this.settings.filterTextClear = value;\n      this.elements.filterClear1.html(value);\n      this.elements.filterClear2.html(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setFilterPlaceHolder: function(value, refresh) {\n      this.settings.filterPlaceHolder = value;\n      this.elements.filterInput1.attr('placeholder', value);\n      this.elements.filterInput2.attr('placeholder', value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setMoveSelectedLabel: function(value, refresh) {\n      this.settings.moveSelectedLabel = value;\n      this.elements.moveButton.attr('title', value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setMoveAllLabel: function(value, refresh) {\n      this.settings.moveAllLabel = value;\n      this.elements.moveAllButton.attr('title', value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setRemoveSelectedLabel: function(value, refresh) {\n      this.settings.removeSelectedLabel = value;\n      this.elements.removeButton.attr('title', value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setRemoveAllLabel: function(value, refresh) {\n      this.settings.removeAllLabel = value;\n      this.elements.removeAllButton.attr('title', value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setMoveOnSelect: function(value, refresh) {\n      if (isBuggyAndroid) {\n        value = true;\n      }\n      this.settings.moveOnSelect = value;\n      if (this.settings.moveOnSelect) {\n        this.container.addClass('moveonselect');\n        var self = this;\n        this.elements.select1.on('change', function() {\n          move(self);\n        });\n        this.elements.select2.on('change', function() {\n          remove(self);\n        });\n        this.elements.moveButton.detach();\n        this.elements.removeButton.detach();\n      } else {\n        this.container.removeClass('moveonselect');\n        this.elements.select1.off('change');\n        this.elements.select2.off('change');\n        this.elements.moveButton.insertAfter(this.elements.moveAllButton);\n        this.elements.removeButton.insertBefore(this.elements.removeAllButton);\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setMoveOnDoubleClick: function(value, refresh) {\n      if (isBuggyAndroid) {\n        value = false;\n      }\n      this.settings.moveOnDoubleClick = value;\n      if (this.settings.moveOnDoubleClick) {\n        this.container.addClass('moveondoubleclick');\n        var self = this;\n        this.elements.select1.on('dblclick', function() {\n          move(self);\n        });\n        this.elements.select2.on('dblclick', function() {\n          remove(self);\n        });\n      } else {\n        this.container.removeClass('moveondoubleclick');\n        this.elements.select1.off('dblclick');\n        this.elements.select2.off('dblclick');\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setPreserveSelectionOnMove: function(value, refresh) {\n      // We are forcing to move on select and disabling preserveSelectionOnMove on Android\n      if (isBuggyAndroid) {\n        value = false;\n      }\n      this.settings.preserveSelectionOnMove = value;\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setSelectedListLabel: function(value, refresh) {\n      this.settings.selectedListLabel = value;\n      if (value) {\n        this.elements.label2.show().html(value);\n      } else {\n        this.elements.label2.hide().html(value);\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setNonSelectedListLabel: function(value, refresh) {\n      this.settings.nonSelectedListLabel = value;\n      if (value) {\n        this.elements.label1.show().html(value);\n      } else {\n        this.elements.label1.hide().html(value);\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setHelperSelectNamePostfix: function(value, refresh) {\n      this.settings.helperSelectNamePostfix = value;\n      if (value) {\n        this.elements.select1.attr('name', this.originalSelectName + value + '1');\n        this.elements.select2.attr('name', this.originalSelectName + value + '2');\n      } else {\n        this.elements.select1.removeAttr('name');\n        this.elements.select2.removeAttr('name');\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setSelectOrMinimalHeight: function(value, refresh) {\n      this.settings.selectorMinimalHeight = value;\n      var height = this.element.height();\n      if (this.element.height() < value) {\n        height = value;\n      }\n      this.elements.select1.height(height);\n      this.elements.select2.height(height);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setShowFilterInputs: function(value, refresh) {\n      if (!value) {\n        this.setNonSelectedFilter('');\n        this.setSelectedFilter('');\n        refreshSelects(this);\n        this.elements.filterInput1.hide();\n        this.elements.filterInput2.hide();\n      } else {\n        this.elements.filterInput1.show();\n        this.elements.filterInput2.show();\n      }\n      this.settings.showFilterInputs = value;\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setNonSelectedFilter: function(value, refresh) {\n      if (this.settings.showFilterInputs) {\n        this.settings.nonSelectedFilter = value;\n        this.elements.filterInput1.val(value);\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n      }\n    },\n    setSelectedFilter: function(value, refresh) {\n      if (this.settings.showFilterInputs) {\n        this.settings.selectedFilter = value;\n        this.elements.filterInput2.val(value);\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n      }\n    },\n    setInfoText: function(value, refresh) {\n      this.settings.infoText = value;\n      if (value) {\n        this.elements.info1.show();\n        this.elements.info2.show();\n      } else {\n        this.elements.info1.hide();\n        this.elements.info2.hide();\n      }\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setInfoTextFiltered: function(value, refresh) {\n      this.settings.infoTextFiltered = value;\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setInfoTextEmpty: function(value, refresh) {\n      this.settings.infoTextEmpty = value;\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setFilterOnValues: function(value, refresh) {\n      this.settings.filterOnValues = value;\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setSortByInputOrder: function(value, refresh){\n        this.settings.sortByInputOrder = value;\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n    },\n    setEventMoveOverride: function(value, refresh) {\n        this.settings.eventMoveOverride = value;\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n    },\n    setEventMoveAllOverride: function(value, refresh) {\n        this.settings.eventMoveAllOverride = value;\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n    },\n    setEventRemoveOverride: function(value, refresh) {\n        this.settings.eventRemoveOverride = value;\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n    },\n    setEventRemoveAllOverride: function(value, refresh) {\n        this.settings.eventRemoveAllOverride = value;\n        if (refresh) {\n          refreshSelects(this);\n        }\n        return this.element;\n    },\n    setBtnClass: function(value, refresh) {\n      this.settings.btnClass = value;\n      this.elements.moveButton.attr('class', 'btn move').addClass(value);\n      this.elements.removeButton.attr('class', 'btn remove').addClass(value);\n      this.elements.moveAllButton.attr('class', 'btn moveall').addClass(value);\n      this.elements.removeAllButton.attr('class', 'btn removeall').addClass(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setBtnMoveText: function(value, refresh) {\n      this.settings.btnMoveText = value;\n      this.elements.moveButton.html(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setBtnRemoveText: function(value, refresh) {\n      this.settings.btnMoveText = value;\n      this.elements.removeButton.html(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setBtnMoveAllText: function(value, refresh) {\n      this.settings.btnMoveText = value;\n      this.elements.moveAllButton.html(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    setBtnRemoveAllText: function(value, refresh) {\n      this.settings.btnMoveText = value;\n      this.elements.removeAllButton.html(value);\n      if (refresh) {\n        refreshSelects(this);\n      }\n      return this.element;\n    },\n    getContainer: function() {\n      return this.container;\n    },\n    refresh: function(mustClearSelections) {\n      updateSelectionStates(this);\n\n      if (!mustClearSelections) {\n        saveSelections(this, 1);\n        saveSelections(this, 2);\n      } else {\n        clearSelections(this);\n      }\n\n      refreshSelects(this);\n    },\n    destroy: function() {\n      this.container.remove();\n      this.element.show();\n      $.data(this, 'plugin_' + pluginName, null);\n      return this.element;\n    }\n  };\n\n  // A really lightweight plugin wrapper around the constructor,\n  // preventing against multiple instantiations\n  $.fn[ pluginName ] = function (options) {\n    var args = arguments;\n\n    // Is the first parameter an object (options), or was omitted, instantiate a new instance of the plugin.\n    if (options === undefined || typeof options === 'object') {\n      return this.each(function () {\n        // If this is not a select\n        if (!$(this).is('select')) {\n          $(this).find('select').each(function(index, item) {\n            // For each nested select, instantiate the Dual List Box\n            $(item).bootstrapDualListbox(options);\n          });\n        } else if (!$.data(this, 'plugin_' + pluginName)) {\n          // Only allow the plugin to be instantiated once so we check that the element has no plugin instantiation yet\n\n          // if it has no instance, create a new one, pass options to our plugin constructor,\n          // and store the plugin instance in the elements jQuery data object.\n          $.data(this, 'plugin_' + pluginName, new BootstrapDualListbox(this, options));\n        }\n      });\n      // If the first parameter is a string and it doesn't start with an underscore or \"contains\" the `init`-function,\n      // treat this as a call to a public method.\n    } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {\n\n      // Cache the method call to make it possible to return a value\n      var returns;\n\n      this.each(function () {\n        var instance = $.data(this, 'plugin_' + pluginName);\n        // Tests that there's already a plugin-instance and checks that the requested public method exists\n        if (instance instanceof BootstrapDualListbox && typeof instance[options] === 'function') {\n          // Call the method of our plugin instance, and pass it the supplied arguments.\n          returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));\n        }\n      });\n\n      // If the earlier cached method gives a value back return the value,\n      // otherwise return this to preserve chainability.\n      return returns !== undefined ? returns : this;\n    }\n\n  };\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bs-custom-file-input/bs-custom-file-input.js",
    "content": "/*!\n * bsCustomFileInput v1.3.4 (https://github.com/Johann-S/bs-custom-file-input)\n * Copyright 2018 - 2020 Johann-S <johann.servoire@gmail.com>\n * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.bsCustomFileInput = factory());\n}(this, (function () { 'use strict';\n\n  var Selector = {\n    CUSTOMFILE: '.custom-file input[type=\"file\"]',\n    CUSTOMFILELABEL: '.custom-file-label',\n    FORM: 'form',\n    INPUT: 'input'\n  };\n\n  var textNodeType = 3;\n\n  var getDefaultText = function getDefaultText(input) {\n    var defaultText = '';\n    var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n    if (label) {\n      defaultText = label.textContent;\n    }\n\n    return defaultText;\n  };\n\n  var findFirstChildNode = function findFirstChildNode(element) {\n    if (element.childNodes.length > 0) {\n      var childNodes = [].slice.call(element.childNodes);\n\n      for (var i = 0; i < childNodes.length; i++) {\n        var node = childNodes[i];\n\n        if (node.nodeType !== textNodeType) {\n          return node;\n        }\n      }\n    }\n\n    return element;\n  };\n\n  var restoreDefaultText = function restoreDefaultText(input) {\n    var defaultText = input.bsCustomFileInput.defaultText;\n    var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n    if (label) {\n      var element = findFirstChildNode(label);\n      element.textContent = defaultText;\n    }\n  };\n\n  var fileApi = !!window.File;\n  var FAKE_PATH = 'fakepath';\n  var FAKE_PATH_SEPARATOR = '\\\\';\n\n  var getSelectedFiles = function getSelectedFiles(input) {\n    if (input.hasAttribute('multiple') && fileApi) {\n      return [].slice.call(input.files).map(function (file) {\n        return file.name;\n      }).join(', ');\n    }\n\n    if (input.value.indexOf(FAKE_PATH) !== -1) {\n      var splittedValue = input.value.split(FAKE_PATH_SEPARATOR);\n      return splittedValue[splittedValue.length - 1];\n    }\n\n    return input.value;\n  };\n\n  function handleInputChange() {\n    var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n    if (label) {\n      var element = findFirstChildNode(label);\n      var inputValue = getSelectedFiles(this);\n\n      if (inputValue.length) {\n        element.textContent = inputValue;\n      } else {\n        restoreDefaultText(this);\n      }\n    }\n  }\n\n  function handleFormReset() {\n    var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) {\n      return !!input.bsCustomFileInput;\n    });\n\n    for (var i = 0, len = customFileList.length; i < len; i++) {\n      restoreDefaultText(customFileList[i]);\n    }\n  }\n\n  var customProperty = 'bsCustomFileInput';\n  var Event = {\n    FORMRESET: 'reset',\n    INPUTCHANGE: 'change'\n  };\n  var bsCustomFileInput = {\n    init: function init(inputSelector, formSelector) {\n      if (inputSelector === void 0) {\n        inputSelector = Selector.CUSTOMFILE;\n      }\n\n      if (formSelector === void 0) {\n        formSelector = Selector.FORM;\n      }\n\n      var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector));\n      var formList = [].slice.call(document.querySelectorAll(formSelector));\n\n      for (var i = 0, len = customFileInputList.length; i < len; i++) {\n        var input = customFileInputList[i];\n        Object.defineProperty(input, customProperty, {\n          value: {\n            defaultText: getDefaultText(input)\n          },\n          writable: true\n        });\n        handleInputChange.call(input);\n        input.addEventListener(Event.INPUTCHANGE, handleInputChange);\n      }\n\n      for (var _i = 0, _len = formList.length; _i < _len; _i++) {\n        formList[_i].addEventListener(Event.FORMRESET, handleFormReset);\n\n        Object.defineProperty(formList[_i], customProperty, {\n          value: true,\n          writable: true\n        });\n      }\n    },\n    destroy: function destroy() {\n      var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) {\n        return !!form.bsCustomFileInput;\n      });\n      var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) {\n        return !!input.bsCustomFileInput;\n      });\n\n      for (var i = 0, len = customFileInputList.length; i < len; i++) {\n        var input = customFileInputList[i];\n        restoreDefaultText(input);\n        input[customProperty] = undefined;\n        input.removeEventListener(Event.INPUTCHANGE, handleInputChange);\n      }\n\n      for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) {\n        formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset);\n\n        formList[_i2][customProperty] = undefined;\n      }\n    }\n  };\n\n  return bsCustomFileInput;\n\n})));\n//# sourceMappingURL=bs-custom-file-input.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bs-stepper/css/bs-stepper.css",
    "content": "/*!\n * bsStepper v1.7.0 (https://github.com/Johann-S/bs-stepper)\n * Copyright 2018 - 2019 Johann-S <johann.servoire@gmail.com>\n * Licensed under MIT (https://github.com/Johann-S/bs-stepper/blob/master/LICENSE)\n */\n\n.bs-stepper .step-trigger {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: center;\n      justify-content: center;\n  padding: 20px;\n  font-size: 1rem;\n  font-weight: 700;\n  line-height: 1.5;\n  color: #6c757d;\n  text-align: center;\n  text-decoration: none;\n  white-space: nowrap;\n  vertical-align: middle;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  background-color: transparent;\n  border: none;\n  border-radius: .25rem;\n  transition: background-color .15s ease-out, color .15s ease-out;\n}\n\n.bs-stepper .step-trigger:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.bs-stepper .step-trigger:disabled,\n.bs-stepper .step-trigger.disabled {\n  pointer-events: none;\n  opacity: .65;\n}\n\n.bs-stepper .step-trigger:focus {\n  color: #007bff;\n  outline: none;\n}\n\n.bs-stepper .step-trigger:hover {\n  text-decoration: none;\n  background-color: rgba(0, 0, 0, .06);\n}\n\n@media (max-width: 520px) {\n  .bs-stepper .step-trigger {\n    -ms-flex-direction: column;\n        flex-direction: column;\n    padding: 10px;\n  }\n}\n\n.bs-stepper-label {\n  display: inline-block;\n  margin: .25rem;\n}\n\n.bs-stepper-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n@media (max-width: 520px) {\n  .bs-stepper-header {\n    margin: 0 -10px;\n    text-align: center;\n  }\n}\n\n.bs-stepper-line,\n.bs-stepper .line {\n  -ms-flex: 1 0 32px;\n      flex: 1 0 32px;\n  min-width: 1px;\n  min-height: 1px;\n  margin: auto;\n  background-color: rgba(0, 0, 0, .12);\n}\n\n@media (max-width: 400px) {\n  .bs-stepper-line,\n  .bs-stepper .line {\n    -ms-flex-preferred-size: 20px;\n        flex-basis: 20px;\n  }\n}\n\n.bs-stepper-circle {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-line-pack: center;\n      align-content: center;\n  -ms-flex-pack: center;\n      justify-content: center;\n  width: 2em;\n  height: 2em;\n  padding: .5em 0;\n  margin: .25rem;\n  line-height: 1em;\n  color: #fff;\n  background-color: #6c757d;\n  border-radius: 1em;\n}\n\n.active .bs-stepper-circle {\n  background-color: #007bff;\n}\n\n.bs-stepper-content {\n  padding: 0 20px 20px;\n}\n\n@media (max-width: 520px) {\n  .bs-stepper-content {\n    padding: 0;\n  }\n}\n\n.bs-stepper.vertical {\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.bs-stepper.vertical .bs-stepper-header {\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: stretch;\n      align-items: stretch;\n  margin: 0;\n}\n\n.bs-stepper.vertical .bs-stepper-pane,\n.bs-stepper.vertical .content {\n  display: block;\n}\n\n.bs-stepper.vertical .bs-stepper-pane:not(.fade),\n.bs-stepper.vertical .content:not(.fade) {\n  display: block;\n  visibility: hidden;\n}\n\n.bs-stepper-pane:not(.fade),\n.bs-stepper .content:not(.fade) {\n  display: none;\n}\n\n.bs-stepper .content.fade,\n.bs-stepper-pane.fade {\n  visibility: hidden;\n  transition-duration: .3s;\n  transition-property: opacity;\n}\n\n.bs-stepper-pane.fade.active,\n.bs-stepper .content.fade.active {\n  visibility: visible;\n  opacity: 1;\n}\n\n.bs-stepper-pane.active:not(.fade),\n.bs-stepper .content.active:not(.fade) {\n  display: block;\n  visibility: visible;\n}\n\n.bs-stepper-pane.dstepper-block,\n.bs-stepper .content.dstepper-block {\n  display: block;\n}\n\n.bs-stepper:not(.vertical) .bs-stepper-pane.dstepper-none,\n.bs-stepper:not(.vertical) .content.dstepper-none {\n  display: none;\n}\n\n.vertical .bs-stepper-pane.fade.dstepper-none,\n.vertical .content.fade.dstepper-none {\n  visibility: hidden;\n}\n\n/*# sourceMappingURL=bs-stepper.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/bs-stepper/js/bs-stepper.js",
    "content": "/*!\n * bsStepper v1.7.0 (https://github.com/Johann-S/bs-stepper)\n * Copyright 2018 - 2019 Johann-S <johann.servoire@gmail.com>\n * Licensed under MIT (https://github.com/Johann-S/bs-stepper/blob/master/LICENSE)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.Stepper = factory());\n}(this, function () { 'use strict';\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  var matches = window.Element.prototype.matches;\n\n  var closest = function closest(element, selector) {\n    return element.closest(selector);\n  };\n\n  var WinEvent = function WinEvent(inType, params) {\n    return new window.Event(inType, params);\n  };\n\n  var createCustomEvent = function createCustomEvent(eventName, params) {\n    var cEvent = new window.CustomEvent(eventName, params);\n    return cEvent;\n  };\n  /* istanbul ignore next */\n\n\n  function polyfill() {\n    if (!window.Element.prototype.matches) {\n      matches = window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\n    }\n\n    if (!window.Element.prototype.closest) {\n      closest = function closest(element, selector) {\n        if (!document.documentElement.contains(element)) {\n          return null;\n        }\n\n        do {\n          if (matches.call(element, selector)) {\n            return element;\n          }\n\n          element = element.parentElement || element.parentNode;\n        } while (element !== null && element.nodeType === 1);\n\n        return null;\n      };\n    }\n\n    if (!window.Event || typeof window.Event !== 'function') {\n      WinEvent = function WinEvent(inType, params) {\n        params = params || {};\n        var e = document.createEvent('Event');\n        e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));\n        return e;\n      };\n    }\n\n    if (typeof window.CustomEvent !== 'function') {\n      var originPreventDefault = window.Event.prototype.preventDefault;\n\n      createCustomEvent = function createCustomEvent(eventName, params) {\n        var evt = document.createEvent('CustomEvent');\n        params = params || {\n          bubbles: false,\n          cancelable: false,\n          detail: null\n        };\n        evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);\n\n        evt.preventDefault = function () {\n          if (!this.cancelable) {\n            return;\n          }\n\n          originPreventDefault.call(this);\n          Object.defineProperty(this, 'defaultPrevented', {\n            get: function get() {\n              return true;\n            }\n          });\n        };\n\n        return evt;\n      };\n    }\n  }\n\n  polyfill();\n\n  var MILLISECONDS_MULTIPLIER = 1000;\n  var ClassName = {\n    ACTIVE: 'active',\n    LINEAR: 'linear',\n    BLOCK: 'dstepper-block',\n    NONE: 'dstepper-none',\n    FADE: 'fade',\n    VERTICAL: 'vertical'\n  };\n  var transitionEndEvent = 'transitionend';\n  var customProperty = 'bsStepper';\n\n  var show = function show(stepperNode, indexStep, options, done) {\n    var stepper = stepperNode[customProperty];\n\n    if (stepper._steps[indexStep].classList.contains(ClassName.ACTIVE) || stepper._stepsContents[indexStep].classList.contains(ClassName.ACTIVE)) {\n      return;\n    }\n\n    var showEvent = createCustomEvent('show.bs-stepper', {\n      cancelable: true,\n      detail: {\n        from: stepper._currentIndex,\n        to: indexStep,\n        indexStep: indexStep\n      }\n    });\n    stepperNode.dispatchEvent(showEvent);\n\n    var activeStep = stepper._steps.filter(function (step) {\n      return step.classList.contains(ClassName.ACTIVE);\n    });\n\n    var activeContent = stepper._stepsContents.filter(function (content) {\n      return content.classList.contains(ClassName.ACTIVE);\n    });\n\n    if (showEvent.defaultPrevented) {\n      return;\n    }\n\n    if (activeStep.length) {\n      activeStep[0].classList.remove(ClassName.ACTIVE);\n    }\n\n    if (activeContent.length) {\n      activeContent[0].classList.remove(ClassName.ACTIVE);\n\n      if (!stepperNode.classList.contains(ClassName.VERTICAL) && !stepper.options.animation) {\n        activeContent[0].classList.remove(ClassName.BLOCK);\n      }\n    }\n\n    showStep(stepperNode, stepper._steps[indexStep], stepper._steps, options);\n    showContent(stepperNode, stepper._stepsContents[indexStep], stepper._stepsContents, activeContent, done);\n  };\n\n  var showStep = function showStep(stepperNode, step, stepList, options) {\n    stepList.forEach(function (step) {\n      var trigger = step.querySelector(options.selectors.trigger);\n      trigger.setAttribute('aria-selected', 'false'); // if stepper is in linear mode, set disabled attribute on the trigger\n\n      if (stepperNode.classList.contains(ClassName.LINEAR)) {\n        trigger.setAttribute('disabled', 'disabled');\n      }\n    });\n    step.classList.add(ClassName.ACTIVE);\n    var currentTrigger = step.querySelector(options.selectors.trigger);\n    currentTrigger.setAttribute('aria-selected', 'true'); // if stepper is in linear mode, remove disabled attribute on current\n\n    if (stepperNode.classList.contains(ClassName.LINEAR)) {\n      currentTrigger.removeAttribute('disabled');\n    }\n  };\n\n  var showContent = function showContent(stepperNode, content, contentList, activeContent, done) {\n    var stepper = stepperNode[customProperty];\n    var toIndex = contentList.indexOf(content);\n    var shownEvent = createCustomEvent('shown.bs-stepper', {\n      cancelable: true,\n      detail: {\n        from: stepper._currentIndex,\n        to: toIndex,\n        indexStep: toIndex\n      }\n    });\n\n    function complete() {\n      content.classList.add(ClassName.BLOCK);\n      content.removeEventListener(transitionEndEvent, complete);\n      stepperNode.dispatchEvent(shownEvent);\n      done();\n    }\n\n    if (content.classList.contains(ClassName.FADE)) {\n      content.classList.remove(ClassName.NONE);\n      var duration = getTransitionDurationFromElement(content);\n      content.addEventListener(transitionEndEvent, complete);\n\n      if (activeContent.length) {\n        activeContent[0].classList.add(ClassName.NONE);\n      }\n\n      content.classList.add(ClassName.ACTIVE);\n      emulateTransitionEnd(content, duration);\n    } else {\n      content.classList.add(ClassName.ACTIVE);\n      content.classList.add(ClassName.BLOCK);\n      stepperNode.dispatchEvent(shownEvent);\n      done();\n    }\n  };\n\n  var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n    if (!element) {\n      return 0;\n    } // Get transition-duration of the element\n\n\n    var transitionDuration = window.getComputedStyle(element).transitionDuration;\n    var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found\n\n    if (!floatTransitionDuration) {\n      return 0;\n    } // If multiple durations are defined, take the first\n\n\n    transitionDuration = transitionDuration.split(',')[0];\n    return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;\n  };\n\n  var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n    var called = false;\n    var durationPadding = 5;\n    var emulatedDuration = duration + durationPadding;\n\n    function listener() {\n      called = true;\n      element.removeEventListener(transitionEndEvent, listener);\n    }\n\n    element.addEventListener(transitionEndEvent, listener);\n    window.setTimeout(function () {\n      if (!called) {\n        element.dispatchEvent(WinEvent(transitionEndEvent));\n      }\n\n      element.removeEventListener(transitionEndEvent, listener);\n    }, emulatedDuration);\n  };\n\n  var detectAnimation = function detectAnimation(contentList, options) {\n    if (options.animation) {\n      contentList.forEach(function (content) {\n        content.classList.add(ClassName.FADE);\n        content.classList.add(ClassName.NONE);\n      });\n    }\n  };\n\n  var buildClickStepLinearListener = function buildClickStepLinearListener() {\n    return function clickStepLinearListener(event) {\n      event.preventDefault();\n    };\n  };\n\n  var buildClickStepNonLinearListener = function buildClickStepNonLinearListener(options) {\n    return function clickStepNonLinearListener(event) {\n      event.preventDefault();\n      var step = closest(event.target, options.selectors.steps);\n      var stepperNode = closest(step, options.selectors.stepper);\n      var stepper = stepperNode[customProperty];\n\n      var stepIndex = stepper._steps.indexOf(step);\n\n      show(stepperNode, stepIndex, options, function () {\n        stepper._currentIndex = stepIndex;\n      });\n    };\n  };\n\n  var DEFAULT_OPTIONS = {\n    linear: true,\n    animation: false,\n    selectors: {\n      steps: '.step',\n      trigger: '.step-trigger',\n      stepper: '.bs-stepper'\n    }\n  };\n\n  var Stepper =\n  /*#__PURE__*/\n  function () {\n    function Stepper(element, _options) {\n      var _this = this;\n\n      if (_options === void 0) {\n        _options = {};\n      }\n\n      this._element = element;\n      this._currentIndex = 0;\n      this._stepsContents = [];\n      this.options = _extends({}, DEFAULT_OPTIONS, {}, _options);\n      this.options.selectors = _extends({}, DEFAULT_OPTIONS.selectors, {}, this.options.selectors);\n\n      if (this.options.linear) {\n        this._element.classList.add(ClassName.LINEAR);\n      }\n\n      this._steps = [].slice.call(this._element.querySelectorAll(this.options.selectors.steps));\n\n      this._steps.filter(function (step) {\n        return step.hasAttribute('data-target');\n      }).forEach(function (step) {\n        _this._stepsContents.push(_this._element.querySelector(step.getAttribute('data-target')));\n      });\n\n      detectAnimation(this._stepsContents, this.options);\n\n      this._setLinkListeners();\n\n      Object.defineProperty(this._element, customProperty, {\n        value: this,\n        writable: true\n      });\n\n      if (this._steps.length) {\n        show(this._element, this._currentIndex, this.options, function () {});\n      }\n    } // Private\n\n\n    var _proto = Stepper.prototype;\n\n    _proto._setLinkListeners = function _setLinkListeners() {\n      var _this2 = this;\n\n      this._steps.forEach(function (step) {\n        var trigger = step.querySelector(_this2.options.selectors.trigger);\n\n        if (_this2.options.linear) {\n          _this2._clickStepLinearListener = buildClickStepLinearListener(_this2.options);\n          trigger.addEventListener('click', _this2._clickStepLinearListener);\n        } else {\n          _this2._clickStepNonLinearListener = buildClickStepNonLinearListener(_this2.options);\n          trigger.addEventListener('click', _this2._clickStepNonLinearListener);\n        }\n      });\n    } // Public\n    ;\n\n    _proto.next = function next() {\n      var _this3 = this;\n\n      var nextStep = this._currentIndex + 1 <= this._steps.length - 1 ? this._currentIndex + 1 : this._steps.length - 1;\n      show(this._element, nextStep, this.options, function () {\n        _this3._currentIndex = nextStep;\n      });\n    };\n\n    _proto.previous = function previous() {\n      var _this4 = this;\n\n      var previousStep = this._currentIndex - 1 >= 0 ? this._currentIndex - 1 : 0;\n      show(this._element, previousStep, this.options, function () {\n        _this4._currentIndex = previousStep;\n      });\n    };\n\n    _proto.to = function to(stepNumber) {\n      var _this5 = this;\n\n      var tempIndex = stepNumber - 1;\n      var nextStep = tempIndex >= 0 && tempIndex < this._steps.length ? tempIndex : 0;\n      show(this._element, nextStep, this.options, function () {\n        _this5._currentIndex = nextStep;\n      });\n    };\n\n    _proto.reset = function reset() {\n      var _this6 = this;\n\n      show(this._element, 0, this.options, function () {\n        _this6._currentIndex = 0;\n      });\n    };\n\n    _proto.destroy = function destroy() {\n      var _this7 = this;\n\n      this._steps.forEach(function (step) {\n        var trigger = step.querySelector(_this7.options.selectors.trigger);\n\n        if (_this7.options.linear) {\n          trigger.removeEventListener('click', _this7._clickStepLinearListener);\n        } else {\n          trigger.removeEventListener('click', _this7._clickStepNonLinearListener);\n        }\n      });\n\n      this._element[customProperty] = undefined;\n      this._element = undefined;\n      this._currentIndex = undefined;\n      this._steps = undefined;\n      this._stepsContents = undefined;\n      this._clickStepLinearListener = undefined;\n      this._clickStepNonLinearListener = undefined;\n    };\n\n    return Stepper;\n  }();\n\n  return Stepper;\n\n}));\n//# sourceMappingURL=bs-stepper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/chart.js/Chart.bundle.js",
    "content": "/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global = global || self, global.Chart = factory());\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\n/* MIT license */\n\n\nvar colorString = {\n   getRgba: getRgba,\n   getHsla: getHsla,\n   getRgb: getRgb,\n   getHsl: getHsl,\n   getHwb: getHwb,\n   getAlpha: getAlpha,\n\n   hexString: hexString,\n   rgbString: rgbString,\n   rgbaString: rgbaString,\n   percentString: percentString,\n   percentaString: percentaString,\n   hslString: hslString,\n   hslaString: hslaString,\n   hwbString: hwbString,\n   keyword: keyword\n};\n\nfunction getRgba(string) {\n   if (!string) {\n      return;\n   }\n   var abbr =  /^#([a-fA-F0-9]{3,4})$/i,\n       hex =  /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n       rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n       per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n       keyword = /(\\w+)/;\n\n   var rgb = [0, 0, 0],\n       a = 1,\n       match = string.match(abbr),\n       hexAlpha = \"\";\n   if (match) {\n      match = match[1];\n      hexAlpha = match[3];\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match[i] + match[i], 16);\n      }\n      if (hexAlpha) {\n         a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n      }\n   }\n   else if (match = string.match(hex)) {\n      hexAlpha = match[2];\n      match = match[1];\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n      }\n      if (hexAlpha) {\n         a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n      }\n   }\n   else if (match = string.match(rgba)) {\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match[i + 1]);\n      }\n      a = parseFloat(match[4]);\n   }\n   else if (match = string.match(per)) {\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n      }\n      a = parseFloat(match[4]);\n   }\n   else if (match = string.match(keyword)) {\n      if (match[1] == \"transparent\") {\n         return [0, 0, 0, 0];\n      }\n      rgb = colorName$1[match[1]];\n      if (!rgb) {\n         return;\n      }\n   }\n\n   for (var i = 0; i < rgb.length; i++) {\n      rgb[i] = scale(rgb[i], 0, 255);\n   }\n   if (!a && a != 0) {\n      a = 1;\n   }\n   else {\n      a = scale(a, 0, 1);\n   }\n   rgb[3] = a;\n   return rgb;\n}\n\nfunction getHsla(string) {\n   if (!string) {\n      return;\n   }\n   var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n   var match = string.match(hsl);\n   if (match) {\n      var alpha = parseFloat(match[4]);\n      var h = scale(parseInt(match[1]), 0, 360),\n          s = scale(parseFloat(match[2]), 0, 100),\n          l = scale(parseFloat(match[3]), 0, 100),\n          a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n      return [h, s, l, a];\n   }\n}\n\nfunction getHwb(string) {\n   if (!string) {\n      return;\n   }\n   var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n   var match = string.match(hwb);\n   if (match) {\n    var alpha = parseFloat(match[4]);\n      var h = scale(parseInt(match[1]), 0, 360),\n          w = scale(parseFloat(match[2]), 0, 100),\n          b = scale(parseFloat(match[3]), 0, 100),\n          a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n      return [h, w, b, a];\n   }\n}\n\nfunction getRgb(string) {\n   var rgba = getRgba(string);\n   return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n  var hsla = getHsla(string);\n  return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n   var vals = getRgba(string);\n   if (vals) {\n      return vals[3];\n   }\n   else if (vals = getHsla(string)) {\n      return vals[3];\n   }\n   else if (vals = getHwb(string)) {\n      return vals[3];\n   }\n}\n\n// generators\nfunction hexString(rgba, a) {\n   var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n   return \"#\" + hexDouble(rgba[0]) \n              + hexDouble(rgba[1])\n              + hexDouble(rgba[2])\n              + (\n                 (a >= 0 && a < 1)\n                 ? hexDouble(Math.round(a * 255))\n                 : \"\"\n              );\n}\n\nfunction rgbString(rgba, alpha) {\n   if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n      return rgbaString(rgba, alpha);\n   }\n   return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n   if (alpha === undefined) {\n      alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n   }\n   return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n           + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n   if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n      return percentaString(rgba, alpha);\n   }\n   var r = Math.round(rgba[0]/255 * 100),\n       g = Math.round(rgba[1]/255 * 100),\n       b = Math.round(rgba[2]/255 * 100);\n\n   return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n   var r = Math.round(rgba[0]/255 * 100),\n       g = Math.round(rgba[1]/255 * 100),\n       b = Math.round(rgba[2]/255 * 100);\n   return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n   if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n      return hslaString(hsla, alpha);\n   }\n   return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n   if (alpha === undefined) {\n      alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n   }\n   return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n           + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n   if (alpha === undefined) {\n      alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n   }\n   return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n           + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n  return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n   return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n  var str = num.toString(16).toUpperCase();\n  return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n   reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value  - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = Object.create(source);\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace.  all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t *  else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge(Object.create(null), [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked   | meta.stack\n\t\t\t//           | found | not found | undefined\n\t\t\t// false     |   x   |     x     |     x\n\t\t\t// true      |       |     x     |\n\t\t\t// undefined |       |     x     |     x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights.  This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1',    // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear',    // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';     // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding -  Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory.  It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// |                  T1 (Full Width)                   |\n\t\t// |----------------------------------------------------|\n\t\t// |    |    |                 T2                  |    |\n\t\t// |    |----|-------------------------------------|----|\n\t\t// |    |    | C1 |                           | C2 |    |\n\t\t// |    |    |----|                           |----|    |\n\t\t// |    |    |                                     |    |\n\t\t// | L1 | L2 |           ChartArea (C0)            | R1 |\n\t\t// |    |    |                                     |    |\n\t\t// |    |    |----|                           |----|    |\n\t\t// |    |    | C3 |                           | C4 |    |\n\t\t// |    |----|-------------------------------------|----|\n\t\t// |    |    |                 B1                  |    |\n\t\t// |----------------------------------------------------|\n\t\t// |                  B2 (Full Width)                   |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the <style>.\n * @param {string} css - the CSS to be injected.\n */\nfunction injectCSS(rootNode, css) {\n\t// https://stackoverflow.com/q/3922139\n\tvar expando = rootNode[EXPANDO_KEY] || (rootNode[EXPANDO_KEY] = {});\n\tif (!expando.containsStyles) {\n\t\texpando.containsStyles = true;\n\t\tcss = '/* Chart.js */\\n' + css;\n\t\tvar style = document.createElement('style');\n\t\tstyle.setAttribute('type', 'text/css');\n\t\tstyle.appendChild(document.createTextNode(css));\n\t\trootNode.appendChild(style);\n\t}\n}\n\nvar platform_dom$2 = {\n\t/**\n\t * When `true`, prevents the automatic injection of the stylesheet required to\n\t * correctly detect when the chart is added to the DOM and then resized. This\n\t * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`)\n\t * to be manually imported to make this library compatible with any CSP.\n\t * See https://github.com/chartjs/Chart.js/issues/5208\n\t */\n\tdisableCSSInjection: false,\n\n\t/**\n\t * This property holds whether this platform is enabled for the current environment.\n\t * Currently used by platform.js to select the proper implementation.\n\t * @private\n\t */\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n\t/**\n\t * Initializes resources that depend on platform options.\n\t * @param {HTMLCanvasElement} canvas - The Canvas element.\n\t * @private\n\t */\n\t_ensureLoaded: function(canvas) {\n\t\tif (!this.disableCSSInjection) {\n\t\t\t// If the canvas is in a shadow DOM, then the styles must also be inserted\n\t\t\t// into the same shadow DOM.\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5763\n\t\t\tvar root = canvas.getRootNode ? canvas.getRootNode() : document;\n\t\t\tvar targetNode = root.host ? root : document.head;\n\t\t\tinjectCSS(targetNode, stylesheet);\n\t\t}\n\t},\n\n\tacquireContext: function(item, config) {\n\t\tif (typeof item === 'string') {\n\t\t\titem = document.getElementById(item);\n\t\t} else if (item.length) {\n\t\t\t// Support for array based queries (such as jQuery)\n\t\t\titem = item[0];\n\t\t}\n\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\tvar context = item && item.getContext && item.getContext('2d');\n\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n\t\t// inside an iframe or when running in a protected environment. We could guess the\n\t\t// types from their toString() value but let's keep things flexible and assume it's\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\n\t\tif (context && context.canvas === item) {\n\t\t\t// Load platform resources on first chart creation, to make it possible to\n\t\t\t// import the library before setting platform options.\n\t\t\tthis._ensureLoaded(item);\n\t\t\tinitCanvas(item, config);\n\t\t\treturn context;\n\t\t}\n\n\t\treturn null;\n\t},\n\n\treleaseContext: function(context) {\n\t\tvar canvas = context.canvas;\n\t\tif (!canvas[EXPANDO_KEY]) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\n\t\t['height', 'width'].forEach(function(prop) {\n\t\t\tvar value = initial[prop];\n\t\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\t\tcanvas.removeAttribute(prop);\n\t\t\t} else {\n\t\t\t\tcanvas.setAttribute(prop, value);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(initial.style || {}, function(value, key) {\n\t\t\tcanvas.style[key] = value;\n\t\t});\n\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n\t\t// eslint-disable-next-line no-self-assign\n\t\tcanvas.width = canvas.width;\n\n\t\tdelete canvas[EXPANDO_KEY];\n\t},\n\n\taddEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\taddResizeListener(canvas, listener, chart);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\n\t\t\tlistener(fromNativeEvent(event, chart));\n\t\t};\n\n\t\taddListener(canvas, type, proxy);\n\t},\n\n\tremoveEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\tremoveResizeListener(canvas);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || {};\n\t\tvar proxies = expando.proxies || {};\n\t\tvar proxy = proxies[chart.id + '_' + type];\n\t\tif (!proxy) {\n\t\t\treturn;\n\t\t}\n\n\t\tremoveListener(canvas, type, proxy);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.addEvent = addListener;\n\n/**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.removeEvent = removeListener;\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nvar platform = helpers$1.extend({\n\t/**\n\t * @since 2.7.0\n\t */\n\tinitialize: function() {},\n\n\t/**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {*} item - The native item from which to acquire context (platform specific)\n\t * @param {object} options - The chart options\n\t * @returns {CanvasRenderingContext2D} context2d instance\n\t */\n\tacquireContext: function() {},\n\n\t/**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n\treleaseContext: function() {},\n\n\t/**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link IEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\n\t */\n\taddEventListener: function() {},\n\n\t/**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link IEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n\tremoveEventListener: function() {}\n\n}, implementation);\n\ncore_defaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nvar core_plugins = {\n\t/**\n\t * Globally registered plugins.\n\t * @private\n\t */\n\t_plugins: [],\n\n\t/**\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\n\t * incremented and descriptors are regenerated during following API calls.\n\t * @private\n\t */\n\t_cacheId: 0,\n\n\t/**\n\t * Registers the given plugin(s) if not already registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tif (p.indexOf(plugin) === -1) {\n\t\t\t\tp.push(plugin);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Unregisters the given plugin(s) only if registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tunregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tvar idx = p.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\tp.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Remove all registered plugins.\n\t * @since 2.1.5\n\t */\n\tclear: function() {\n\t\tthis._plugins = [];\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Returns the number of registered plugins?\n\t * @returns {number}\n\t * @since 2.1.5\n\t */\n\tcount: function() {\n\t\treturn this._plugins.length;\n\t},\n\n\t/**\n\t * Returns all registered plugin instances.\n\t * @returns {IPlugin[]} array of plugin objects.\n\t * @since 2.1.5\n\t */\n\tgetAll: function() {\n\t\treturn this._plugins;\n\t},\n\n\t/**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n\tnotify: function(chart, hook, args) {\n\t\tvar descriptors = this.descriptors(chart);\n\t\tvar ilen = descriptors.length;\n\t\tvar i, descriptor, plugin, params, method;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tdescriptor = descriptors[i];\n\t\t\tplugin = descriptor.plugin;\n\t\t\tmethod = plugin[hook];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\tparams = [chart].concat(args || []);\n\t\t\t\tparams.push(descriptor.options);\n\t\t\t\tif (method.apply(plugin, params) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns descriptors of enabled plugins for the given chart.\n\t * @returns {object[]} [{ plugin, options }]\n\t * @private\n\t */\n\tdescriptors: function(chart) {\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\n\t\tif (cache.id === this._cacheId) {\n\t\t\treturn cache.descriptors;\n\t\t}\n\n\t\tvar plugins = [];\n\t\tvar descriptors = [];\n\t\tvar config = (chart && chart.config) || {};\n\t\tvar options = (config.options && config.options.plugins) || {};\n\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\n\t\t\tvar idx = plugins.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar id = plugin.id;\n\t\t\tvar opts = options[id];\n\t\t\tif (opts === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (opts === true) {\n\t\t\t\topts = helpers$1.clone(core_defaults.global.plugins[id]);\n\t\t\t}\n\n\t\t\tplugins.push(plugin);\n\t\t\tdescriptors.push({\n\t\t\t\tplugin: plugin,\n\t\t\t\toptions: opts || {}\n\t\t\t});\n\t\t});\n\n\t\tcache.descriptors = descriptors;\n\t\tcache.id = this._cacheId;\n\t\treturn descriptors;\n\t},\n\n\t/**\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n\t * but in some cases, this reference can be changed by the user when updating options.\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t * @private\n\t */\n\t_invalidate: function(chart) {\n\t\tdelete chart.$plugins;\n\t}\n};\n\nvar core_scaleService = {\n\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n\t// use the new chart options to grab the correct scale\n\tconstructors: {},\n\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\n\t// old browsers\n\n\t// Scale config defaults\n\tdefaults: {},\n\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\n\t\tthis.constructors[type] = scaleConstructor;\n\t\tthis.defaults[type] = helpers$1.clone(scaleDefaults);\n\t},\n\tgetScaleConstructor: function(type) {\n\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n\t},\n\tgetScaleDefaults: function(type) {\n\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\n\t\treturn this.defaults.hasOwnProperty(type) ? helpers$1.merge(Object.create(null), [core_defaults.scale, this.defaults[type]]) : {};\n\t},\n\tupdateScaleDefaults: function(type, additions) {\n\t\tvar me = this;\n\t\tif (me.defaults.hasOwnProperty(type)) {\n\t\t\tme.defaults[type] = helpers$1.extend(me.defaults[type], additions);\n\t\t}\n\t},\n\taddScalesToLayout: function(chart) {\n\t\t// Adds each scale to the chart.boxes array to be sized accordingly\n\t\thelpers$1.each(chart.scales, function(scale) {\n\t\t\t// Set ILayoutItem parameters for backwards compatibility\n\t\t\tscale.fullWidth = scale.options.fullWidth;\n\t\t\tscale.position = scale.options.position;\n\t\t\tscale.weight = scale.options.weight;\n\t\t\tcore_layouts.addBox(chart, scale);\n\t\t});\n\t}\n};\n\nvar valueOrDefault$8 = helpers$1.valueOrDefault;\nvar getRtlHelper = helpers$1.rtl.getRtlAdapter;\n\ncore_defaults._set('global', {\n\ttooltips: {\n\t\tenabled: true,\n\t\tcustom: null,\n\t\tmode: 'nearest',\n\t\tposition: 'average',\n\t\tintersect: true,\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\n\t\ttitleFontStyle: 'bold',\n\t\ttitleSpacing: 2,\n\t\ttitleMarginBottom: 6,\n\t\ttitleFontColor: '#fff',\n\t\ttitleAlign: 'left',\n\t\tbodySpacing: 2,\n\t\tbodyFontColor: '#fff',\n\t\tbodyAlign: 'left',\n\t\tfooterFontStyle: 'bold',\n\t\tfooterSpacing: 2,\n\t\tfooterMarginTop: 6,\n\t\tfooterFontColor: '#fff',\n\t\tfooterAlign: 'left',\n\t\tyPadding: 6,\n\t\txPadding: 6,\n\t\tcaretPadding: 2,\n\t\tcaretSize: 5,\n\t\tcornerRadius: 6,\n\t\tmultiKeyBackground: '#fff',\n\t\tdisplayColors: true,\n\t\tborderColor: 'rgba(0,0,0,0)',\n\t\tborderWidth: 0,\n\t\tcallbacks: {\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeTitle: helpers$1.noop,\n\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\tvar title = '';\n\t\t\t\tvar labels = data.labels;\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\n\n\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\tvar item = tooltipItems[0];\n\t\t\t\t\tif (item.label) {\n\t\t\t\t\t\ttitle = item.label;\n\t\t\t\t\t} else if (item.xLabel) {\n\t\t\t\t\t\ttitle = item.xLabel;\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\n\t\t\t\t\t\ttitle = labels[item.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\t\t\tafterTitle: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers$1.noop,\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel += ': ';\n\t\t\t\t}\n\t\t\t\tif (!helpers$1.isNullOrUndef(tooltipItem.value)) {\n\t\t\t\t\tlabel += tooltipItem.value;\n\t\t\t\t} else {\n\t\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\t}\n\t\t\t\treturn label;\n\t\t\t},\n\t\t\tlabelColor: function(tooltipItem, chart) {\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\n\t\t\t\tvar view = activeElement._view;\n\t\t\t\treturn {\n\t\t\t\t\tborderColor: view.borderColor,\n\t\t\t\t\tbackgroundColor: view.backgroundColor\n\t\t\t\t};\n\t\t\t},\n\t\t\tlabelTextColor: function() {\n\t\t\t\treturn this._options.bodyFontColor;\n\t\t\t},\n\t\t\tafterLabel: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers$1.noop,\n\t\t\tfooter: helpers$1.noop,\n\t\t\tafterFooter: helpers$1.noop\n\t\t}\n\t}\n});\n\nvar positioners = {\n\t/**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t * @function Chart.Tooltip.positioners.average\n\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\n\t * @returns {object} tooltip position\n\t */\n\taverage: function(elements) {\n\t\tif (!elements.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar i, len;\n\t\tvar x = 0;\n\t\tvar y = 0;\n\t\tvar count = 0;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar pos = el.tooltipPosition();\n\t\t\t\tx += pos.x;\n\t\t\t\ty += pos.y;\n\t\t\t\t++count;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tx: x / count,\n\t\t\ty: y / count\n\t\t};\n\t},\n\n\t/**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t * @function Chart.Tooltip.positioners.nearest\n\t * @param elements {Chart.Element[]} the tooltip elements\n\t * @param eventPosition {object} the position of the event in canvas coordinates\n\t * @returns {object} the tooltip position\n\t */\n\tnearest: function(elements, eventPosition) {\n\t\tvar x = eventPosition.x;\n\t\tvar y = eventPosition.y;\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\n\t\tvar i, len, nearestElement;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar center = el.getCenterPoint();\n\t\t\t\tvar d = helpers$1.distanceBetweenPoints(eventPosition, center);\n\n\t\t\t\tif (d < minDistance) {\n\t\t\t\t\tminDistance = d;\n\t\t\t\t\tnearestElement = el;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (nearestElement) {\n\t\t\tvar tp = nearestElement.tooltipPosition();\n\t\t\tx = tp.x;\n\t\t\ty = tp.y;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t}\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n\tif (toPush) {\n\t\tif (helpers$1.isArray(toPush)) {\n\t\t\t// base = base.concat(toPush);\n\t\t\tArray.prototype.push.apply(base, toPush);\n\t\t} else {\n\t\t\tbase.push(toPush);\n\t\t}\n\t}\n\n\treturn base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {string} value - The value to split by newline.\n * @returns {string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n\tif ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n\t\treturn str.split('\\n');\n\t}\n\treturn str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param element - the chart element (point, arc, bar) to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(element) {\n\tvar xScale = element._xScale;\n\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\n\tvar index = element._index;\n\tvar datasetIndex = element._datasetIndex;\n\tvar controller = element._chart.getDatasetMeta(datasetIndex).controller;\n\tvar indexScale = controller._getIndexScale();\n\tvar valueScale = controller._getValueScale();\n\n\treturn {\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tlabel: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tvalue: valueScale ? '' + valueScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tindex: index,\n\t\tdatasetIndex: datasetIndex,\n\t\tx: element._model.x,\n\t\ty: element._model.y\n\t};\n}\n\n/**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {object} the tooltip options\n */\nfunction getBaseModel(tooltipOpts) {\n\tvar globalDefaults = core_defaults.global;\n\n\treturn {\n\t\t// Positioning\n\t\txPadding: tooltipOpts.xPadding,\n\t\tyPadding: tooltipOpts.yPadding,\n\t\txAlign: tooltipOpts.xAlign,\n\t\tyAlign: tooltipOpts.yAlign,\n\n\t\t// Drawing direction and text direction\n\t\trtl: tooltipOpts.rtl,\n\t\ttextDirection: tooltipOpts.textDirection,\n\n\t\t// Body\n\t\tbodyFontColor: tooltipOpts.bodyFontColor,\n\t\t_bodyFontFamily: valueOrDefault$8(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t_bodyFontStyle: valueOrDefault$8(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\tbodyFontSize: valueOrDefault$8(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t// Title\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t_titleFontFamily: valueOrDefault$8(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t_titleFontStyle: valueOrDefault$8(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\ttitleFontSize: valueOrDefault$8(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n\t\t_titleAlign: tooltipOpts.titleAlign,\n\t\ttitleSpacing: tooltipOpts.titleSpacing,\n\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\n\n\t\t// Footer\n\t\tfooterFontColor: tooltipOpts.footerFontColor,\n\t\t_footerFontFamily: valueOrDefault$8(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t_footerFontStyle: valueOrDefault$8(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\tfooterFontSize: valueOrDefault$8(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n\t\t_footerAlign: tooltipOpts.footerAlign,\n\t\tfooterSpacing: tooltipOpts.footerSpacing,\n\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\n\n\t\t// Appearance\n\t\tcaretSize: tooltipOpts.caretSize,\n\t\tcornerRadius: tooltipOpts.cornerRadius,\n\t\tbackgroundColor: tooltipOpts.backgroundColor,\n\t\topacity: 0,\n\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\n\t\tdisplayColors: tooltipOpts.displayColors,\n\t\tborderColor: tooltipOpts.borderColor,\n\t\tborderWidth: tooltipOpts.borderWidth\n\t};\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, model) {\n\tvar ctx = tooltip._chart.ctx;\n\n\tvar height = model.yPadding * 2; // Tooltip Padding\n\tvar width = 0;\n\n\t// Count of all lines in the body\n\tvar body = model.body;\n\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\n\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n\t}, 0);\n\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n\tvar titleLineCount = model.title.length;\n\tvar footerLineCount = model.footer.length;\n\tvar titleFontSize = model.titleFontSize;\n\tvar bodyFontSize = model.bodyFontSize;\n\tvar footerFontSize = model.footerFontSize;\n\n\theight += titleLineCount * titleFontSize; // Title Lines\n\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n\theight += combinedBodyLength * bodyFontSize; // Body Lines\n\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n\theight += footerLineCount * (footerFontSize); // Footer Lines\n\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n\t// Title width\n\tvar widthPadding = 0;\n\tvar maxLineWidth = function(line) {\n\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\n\t};\n\n\tctx.font = helpers$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\thelpers$1.each(model.title, maxLineWidth);\n\n\t// Body width\n\tctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\thelpers$1.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n\t// Body lines may include some extra width due to the color box\n\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n\thelpers$1.each(body, function(bodyItem) {\n\t\thelpers$1.each(bodyItem.before, maxLineWidth);\n\t\thelpers$1.each(bodyItem.lines, maxLineWidth);\n\t\thelpers$1.each(bodyItem.after, maxLineWidth);\n\t});\n\n\t// Reset back to 0\n\twidthPadding = 0;\n\n\t// Footer width\n\tctx.font = helpers$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\thelpers$1.each(model.footer, maxLineWidth);\n\n\t// Add padding\n\twidth += 2 * model.xPadding;\n\n\treturn {\n\t\twidth: width,\n\t\theight: height\n\t};\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(tooltip, size) {\n\tvar model = tooltip._model;\n\tvar chart = tooltip._chart;\n\tvar chartArea = tooltip._chart.chartArea;\n\tvar xAlign = 'center';\n\tvar yAlign = 'center';\n\n\tif (model.y < size.height) {\n\t\tyAlign = 'top';\n\t} else if (model.y > (chart.height - size.height)) {\n\t\tyAlign = 'bottom';\n\t}\n\n\tvar lf, rf; // functions to determine left, right alignment\n\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n\tvar midX = (chartArea.left + chartArea.right) / 2;\n\tvar midY = (chartArea.top + chartArea.bottom) / 2;\n\n\tif (yAlign === 'center') {\n\t\tlf = function(x) {\n\t\t\treturn x <= midX;\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x > midX;\n\t\t};\n\t} else {\n\t\tlf = function(x) {\n\t\t\treturn x <= (size.width / 2);\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x >= (chart.width - (size.width / 2));\n\t\t};\n\t}\n\n\tolf = function(x) {\n\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\n\t};\n\torf = function(x) {\n\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\n\t};\n\tyf = function(y) {\n\t\treturn y <= midY ? 'top' : 'bottom';\n\t};\n\n\tif (lf(model.x)) {\n\t\txAlign = 'left';\n\n\t\t// Is tooltip too wide and goes over the right side of the chart.?\n\t\tif (olf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t} else if (rf(model.x)) {\n\t\txAlign = 'right';\n\n\t\t// Is tooltip too wide and goes outside left edge of canvas?\n\t\tif (orf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t}\n\n\tvar opts = tooltip._options;\n\treturn {\n\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\n\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\n\t};\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(vm, size, alignment, chart) {\n\t// Background Position\n\tvar x = vm.x;\n\tvar y = vm.y;\n\n\tvar caretSize = vm.caretSize;\n\tvar caretPadding = vm.caretPadding;\n\tvar cornerRadius = vm.cornerRadius;\n\tvar xAlign = alignment.xAlign;\n\tvar yAlign = alignment.yAlign;\n\tvar paddingAndSize = caretSize + caretPadding;\n\tvar radiusAndPadding = cornerRadius + caretPadding;\n\n\tif (xAlign === 'right') {\n\t\tx -= size.width;\n\t} else if (xAlign === 'center') {\n\t\tx -= (size.width / 2);\n\t\tif (x + size.width > chart.width) {\n\t\t\tx = chart.width - size.width;\n\t\t}\n\t\tif (x < 0) {\n\t\t\tx = 0;\n\t\t}\n\t}\n\n\tif (yAlign === 'top') {\n\t\ty += paddingAndSize;\n\t} else if (yAlign === 'bottom') {\n\t\ty -= size.height + paddingAndSize;\n\t} else {\n\t\ty -= (size.height / 2);\n\t}\n\n\tif (yAlign === 'center') {\n\t\tif (xAlign === 'left') {\n\t\t\tx += paddingAndSize;\n\t\t} else if (xAlign === 'right') {\n\t\t\tx -= paddingAndSize;\n\t\t}\n\t} else if (xAlign === 'left') {\n\t\tx -= radiusAndPadding;\n\t} else if (xAlign === 'right') {\n\t\tx += radiusAndPadding;\n\t}\n\n\treturn {\n\t\tx: x,\n\t\ty: y\n\t};\n}\n\nfunction getAlignedX(vm, align) {\n\treturn align === 'center'\n\t\t? vm.x + vm.width / 2\n\t\t: align === 'right'\n\t\t\t? vm.x + vm.width - vm.xPadding\n\t\t\t: vm.x + vm.xPadding;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n\treturn pushOrConcat([], splitNewlines(callback));\n}\n\nvar exports$4 = core_element.extend({\n\tinitialize: function() {\n\t\tthis._model = getBaseModel(this._options);\n\t\tthis._lastActive = [];\n\t},\n\n\t// Get the title\n\t// Args are: (tooltipItem, data)\n\tgetTitle: function() {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\t\tvar callbacks = opts.callbacks;\n\n\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n\t\tvar title = callbacks.title.apply(me, arguments);\n\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeTitle));\n\t\tlines = pushOrConcat(lines, splitNewlines(title));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n\t\treturn lines;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBeforeBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments));\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBody: function(tooltipItems, data) {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\t\tvar bodyItems = [];\n\n\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\tvar bodyItem = {\n\t\t\t\tbefore: [],\n\t\t\t\tlines: [],\n\t\t\t\tafter: []\n\t\t\t};\n\t\t\tpushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data)));\n\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n\t\t\tpushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data)));\n\n\t\t\tbodyItems.push(bodyItem);\n\t\t});\n\n\t\treturn bodyItems;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetAfterBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments));\n\t},\n\n\t// Get the footer and beforeFooter and afterFooter lines\n\t// Args are: (tooltipItem, data)\n\tgetFooter: function() {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\n\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n\t\tvar footer = callbacks.footer.apply(me, arguments);\n\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeFooter));\n\t\tlines = pushOrConcat(lines, splitNewlines(footer));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n\t\treturn lines;\n\t},\n\n\tupdate: function(changed) {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\n\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n\t\t// which breaks any animations.\n\t\tvar existingModel = me._model;\n\t\tvar model = me._model = getBaseModel(opts);\n\t\tvar active = me._active;\n\n\t\tvar data = me._data;\n\n\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\n\t\tvar alignment = {\n\t\t\txAlign: existingModel.xAlign,\n\t\t\tyAlign: existingModel.yAlign\n\t\t};\n\t\tvar backgroundPoint = {\n\t\t\tx: existingModel.x,\n\t\t\ty: existingModel.y\n\t\t};\n\t\tvar tooltipSize = {\n\t\t\twidth: existingModel.width,\n\t\t\theight: existingModel.height\n\t\t};\n\t\tvar tooltipPosition = {\n\t\t\tx: existingModel.caretX,\n\t\t\ty: existingModel.caretY\n\t\t};\n\n\t\tvar i, len;\n\n\t\tif (active.length) {\n\t\t\tmodel.opacity = 1;\n\n\t\t\tvar labelColors = [];\n\t\t\tvar labelTextColors = [];\n\t\t\ttooltipPosition = positioners[opts.position].call(me, active, me._eventPosition);\n\n\t\t\tvar tooltipItems = [];\n\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\n\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\n\t\t\t}\n\n\t\t\t// If the user provided a filter function, use it to modify the tooltip items\n\t\t\tif (opts.filter) {\n\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\n\t\t\t\t\treturn opts.filter(a, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\n\t\t\tif (opts.itemSort) {\n\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\n\t\t\t\t\treturn opts.itemSort(a, b, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Determine colors for boxes\n\t\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n\t\t\t});\n\n\n\t\t\t// Build the Text Lines\n\t\t\tmodel.title = me.getTitle(tooltipItems, data);\n\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\n\t\t\tmodel.body = me.getBody(tooltipItems, data);\n\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\n\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\n\n\t\t\t// Initial positioning and colors\n\t\t\tmodel.x = tooltipPosition.x;\n\t\t\tmodel.y = tooltipPosition.y;\n\t\t\tmodel.caretPadding = opts.caretPadding;\n\t\t\tmodel.labelColors = labelColors;\n\t\t\tmodel.labelTextColors = labelTextColors;\n\n\t\t\t// data points\n\t\t\tmodel.dataPoints = tooltipItems;\n\n\t\t\t// We need to determine alignment of the tooltip\n\t\t\ttooltipSize = getTooltipSize(this, model);\n\t\t\talignment = determineAlignment(this, tooltipSize);\n\t\t\t// Final Size and Position\n\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n\t\t} else {\n\t\t\tmodel.opacity = 0;\n\t\t}\n\n\t\tmodel.xAlign = alignment.xAlign;\n\t\tmodel.yAlign = alignment.yAlign;\n\t\tmodel.x = backgroundPoint.x;\n\t\tmodel.y = backgroundPoint.y;\n\t\tmodel.width = tooltipSize.width;\n\t\tmodel.height = tooltipSize.height;\n\n\t\t// Point where the caret on the tooltip points to\n\t\tmodel.caretX = tooltipPosition.x;\n\t\tmodel.caretY = tooltipPosition.y;\n\n\t\tme._model = model;\n\n\t\tif (changed && opts.custom) {\n\t\t\topts.custom.call(me, model);\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdrawCaret: function(tooltipPoint, size) {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\n\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\n\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\n\t},\n\tgetCaretPosition: function(tooltipPoint, size, vm) {\n\t\tvar x1, x2, x3, y1, y2, y3;\n\t\tvar caretSize = vm.caretSize;\n\t\tvar cornerRadius = vm.cornerRadius;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar ptX = tooltipPoint.x;\n\t\tvar ptY = tooltipPoint.y;\n\t\tvar width = size.width;\n\t\tvar height = size.height;\n\n\t\tif (yAlign === 'center') {\n\t\t\ty2 = ptY + (height / 2);\n\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx1 = ptX;\n\t\t\t\tx2 = x1 - caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 + caretSize;\n\t\t\t\ty3 = y2 - caretSize;\n\t\t\t} else {\n\t\t\t\tx1 = ptX + width;\n\t\t\t\tx2 = x1 + caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 - caretSize;\n\t\t\t\ty3 = y2 + caretSize;\n\t\t\t}\n\t\t} else {\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else if (xAlign === 'right') {\n\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else {\n\t\t\t\tx2 = vm.caretX;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t}\n\t\t\tif (yAlign === 'top') {\n\t\t\t\ty1 = ptY;\n\t\t\t\ty2 = y1 - caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t} else {\n\t\t\t\ty1 = ptY + height;\n\t\t\t\ty2 = y1 + caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t\t// invert drawing order\n\t\t\t\tvar tmp = x3;\n\t\t\t\tx3 = x1;\n\t\t\t\tx1 = tmp;\n\t\t\t}\n\t\t}\n\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n\t},\n\n\tdrawTitle: function(pt, vm, ctx) {\n\t\tvar title = vm.title;\n\t\tvar length = title.length;\n\t\tvar titleFontSize, titleSpacing, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._titleAlign);\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._titleAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\ttitleFontSize = vm.titleFontSize;\n\t\t\ttitleSpacing = vm.titleSpacing;\n\n\t\t\tctx.fillStyle = vm.titleFontColor;\n\t\t\tctx.font = helpers$1.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFontSize / 2);\n\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n\t\t\t\tif (i + 1 === length) {\n\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBody: function(pt, vm, ctx) {\n\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\tvar bodySpacing = vm.bodySpacing;\n\t\tvar bodyAlign = vm._bodyAlign;\n\t\tvar body = vm.body;\n\t\tvar drawColorBoxes = vm.displayColors;\n\t\tvar xLinePadding = 0;\n\t\tvar colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0;\n\n\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\tvar fillLineOfText = function(line) {\n\t\t\tctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyFontSize / 2);\n\t\t\tpt.y += bodyFontSize + bodySpacing;\n\t\t};\n\n\t\tvar bodyItem, textColor, labelColors, lines, i, j, ilen, jlen;\n\t\tvar bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n\n\t\tctx.textAlign = bodyAlign;\n\t\tctx.textBaseline = 'middle';\n\t\tctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\tpt.x = getAlignedX(vm, bodyAlignForCalculation);\n\n\t\t// Before body lines\n\t\tctx.fillStyle = vm.bodyFontColor;\n\t\thelpers$1.each(vm.beforeBody, fillLineOfText);\n\n\t\txLinePadding = drawColorBoxes && bodyAlignForCalculation !== 'right'\n\t\t\t? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2)\n\t\t\t: 0;\n\n\t\t// Draw body lines now\n\t\tfor (i = 0, ilen = body.length; i < ilen; ++i) {\n\t\t\tbodyItem = body[i];\n\t\t\ttextColor = vm.labelTextColors[i];\n\t\t\tlabelColors = vm.labelColors[i];\n\n\t\t\tctx.fillStyle = textColor;\n\t\t\thelpers$1.each(bodyItem.before, fillLineOfText);\n\n\t\t\tlines = bodyItem.lines;\n\t\t\tfor (j = 0, jlen = lines.length; j < jlen; ++j) {\n\t\t\t\t// Draw Legend-like boxes if needed\n\t\t\t\tif (drawColorBoxes) {\n\t\t\t\t\tvar rtlColorX = rtlHelper.x(colorX);\n\n\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\n\t\t\t\t\tctx.fillStyle = vm.legendColorBackground;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Border\n\t\t\t\t\tctx.lineWidth = 1;\n\t\t\t\t\tctx.strokeStyle = labelColors.borderColor;\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Inner square\n\t\t\t\t\tctx.fillStyle = labelColors.backgroundColor;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), bodyFontSize - 2), pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n\t\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\t}\n\n\t\t\t\tfillLineOfText(lines[j]);\n\t\t\t}\n\n\t\t\thelpers$1.each(bodyItem.after, fillLineOfText);\n\t\t}\n\n\t\t// Reset back to 0 for after body\n\t\txLinePadding = 0;\n\n\t\t// After body lines\n\t\thelpers$1.each(vm.afterBody, fillLineOfText);\n\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t},\n\n\tdrawFooter: function(pt, vm, ctx) {\n\t\tvar footer = vm.footer;\n\t\tvar length = footer.length;\n\t\tvar footerFontSize, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._footerAlign);\n\t\t\tpt.y += vm.footerMarginTop;\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._footerAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tfooterFontSize = vm.footerFontSize;\n\n\t\t\tctx.fillStyle = vm.footerFontColor;\n\t\t\tctx.font = helpers$1.fontString(footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFontSize / 2);\n\t\t\t\tpt.y += footerFontSize + vm.footerSpacing;\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBackground: function(pt, vm, ctx, tooltipSize) {\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar x = pt.x;\n\t\tvar y = pt.y;\n\t\tvar width = tooltipSize.width;\n\t\tvar height = tooltipSize.height;\n\t\tvar radius = vm.cornerRadius;\n\n\t\tctx.beginPath();\n\t\tctx.moveTo(x + radius, y);\n\t\tif (yAlign === 'top') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width - radius, y);\n\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\tif (yAlign === 'center' && xAlign === 'right') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width, y + height - radius);\n\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\tif (yAlign === 'bottom') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + radius, y + height);\n\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\tif (yAlign === 'center' && xAlign === 'left') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x, y + radius);\n\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\tctx.closePath();\n\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth > 0) {\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\n\t\tif (vm.opacity === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tooltipSize = {\n\t\t\twidth: vm.width,\n\t\t\theight: vm.height\n\t\t};\n\t\tvar pt = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\n\t\t// IE11/Edge does not like very small opacities, so snap to 0\n\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n\t\t// Truthy/falsey value for empty tooltip\n\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n\t\tif (this._options.enabled && hasTooltipContent) {\n\t\t\tctx.save();\n\t\t\tctx.globalAlpha = opacity;\n\n\t\t\t// Draw Background\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize);\n\n\t\t\t// Draw Title, Body, and Footer\n\t\t\tpt.y += vm.yPadding;\n\n\t\t\thelpers$1.rtl.overrideTextDirection(ctx, vm.textDirection);\n\n\t\t\t// Titles\n\t\t\tthis.drawTitle(pt, vm, ctx);\n\n\t\t\t// Body\n\t\t\tthis.drawBody(pt, vm, ctx);\n\n\t\t\t// Footer\n\t\t\tthis.drawFooter(pt, vm, ctx);\n\n\t\t\thelpers$1.rtl.restoreTextDirection(ctx, vm.textDirection);\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @returns {boolean} true if the tooltip changed\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me._options;\n\t\tvar changed = false;\n\n\t\tme._lastActive = me._lastActive || [];\n\n\t\t// Find Active Elements for tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme._active = [];\n\t\t} else {\n\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n\t\t\tif (options.reverse) {\n\t\t\t\tme._active.reverse();\n\t\t\t}\n\t\t}\n\n\t\t// Remember Last Actives\n\t\tchanged = !helpers$1.arrayEquals(me._active, me._lastActive);\n\n\t\t// Only handle target event on tooltip change\n\t\tif (changed) {\n\t\t\tme._lastActive = me._active;\n\n\t\t\tif (options.enabled || options.custom) {\n\t\t\t\tme._eventPosition = {\n\t\t\t\t\tx: e.x,\n\t\t\t\t\ty: e.y\n\t\t\t\t};\n\n\t\t\t\tme.update(true);\n\t\t\t\tme.pivot();\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * @namespace Chart.Tooltip.positioners\n */\nvar positioners_1 = positioners;\n\nvar core_tooltip = exports$4;\ncore_tooltip.positioners = positioners_1;\n\nvar valueOrDefault$9 = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\telements: {},\n\tevents: [\n\t\t'mousemove',\n\t\t'mouseout',\n\t\t'click',\n\t\t'touchstart',\n\t\t'touchmove'\n\t],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\n\tmaintainAspectRatio: true,\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0\n});\n\n/**\n * Recursively merge the given config objects representing the `scales` option\n * by incorporating scale defaults in `xAxes` and `yAxes` array items, then\n * returns a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeScaleConfig(/* config objects ... */) {\n\treturn helpers$1.merge(Object.create(null), [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\tvar slen = source[key].length;\n\t\t\t\tvar i, type, scale;\n\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\ttype = valueOrDefault$9(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\n\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\thelpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\thelpers$1.merge(target[key][i], scale);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * Recursively merge the given config objects as the root options by handling\n * default scale options for the `scales` and `scale` properties, then returns\n * a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeConfig(/* config objects ... */) {\n\treturn helpers$1.merge(Object.create(null), [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tvar tval = target[key] || Object.create(null);\n\t\t\tvar sval = source[key];\n\n\t\t\tif (key === 'scales') {\n\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\ttarget[key] = mergeScaleConfig(tval, sval);\n\t\t\t} else if (key === 'scale') {\n\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\ttarget[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction initConfig(config) {\n\tconfig = config || Object.create(null);\n\n\t// Do NOT use mergeConfig for the data object because this method merges arrays\n\t// and so would change references to labels and datasets, preventing data updates.\n\tvar data = config.data = config.data || {};\n\tdata.datasets = data.datasets || [];\n\tdata.labels = data.labels || [];\n\n\tconfig.options = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[config.type],\n\t\tconfig.options || {});\n\n\treturn config;\n}\n\nfunction updateConfig(chart) {\n\tvar newOptions = chart.options;\n\n\thelpers$1.each(chart.scales, function(scale) {\n\t\tcore_layouts.removeBox(chart, scale);\n\t});\n\n\tnewOptions = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[chart.config.type],\n\t\tnewOptions);\n\n\tchart.options = chart.config.options = newOptions;\n\tchart.ensureScalesHaveIDs();\n\tchart.buildOrUpdateScales();\n\n\t// Tooltip\n\tchart.tooltip._options = newOptions.tooltips;\n\tchart.tooltip.initialize();\n}\n\nfunction nextAvailableScaleId(axesOpts, prefix, index) {\n\tvar id;\n\tvar hasId = function(obj) {\n\t\treturn obj.id === id;\n\t};\n\n\tdo {\n\t\tid = prefix + index++;\n\t} while (helpers$1.findIndex(axesOpts, hasId) >= 0);\n\n\treturn id;\n}\n\nfunction positionIsHorizontal(position) {\n\treturn position === 'top' || position === 'bottom';\n}\n\nfunction compare2Level(l1, l2) {\n\treturn function(a, b) {\n\t\treturn a[l1] === b[l1]\n\t\t\t? a[l2] - b[l2]\n\t\t\t: a[l1] - b[l1];\n\t};\n}\n\nvar Chart = function(item, config) {\n\tthis.construct(item, config);\n\treturn this;\n};\n\nhelpers$1.extend(Chart.prototype, /** @lends Chart */ {\n\t/**\n\t * @private\n\t */\n\tconstruct: function(item, config) {\n\t\tvar me = this;\n\n\t\tconfig = initConfig(config);\n\n\t\tvar context = platform.acquireContext(item, config);\n\t\tvar canvas = context && context.canvas;\n\t\tvar height = canvas && canvas.height;\n\t\tvar width = canvas && canvas.width;\n\n\t\tme.id = helpers$1.uid();\n\t\tme.ctx = context;\n\t\tme.canvas = canvas;\n\t\tme.config = config;\n\t\tme.width = width;\n\t\tme.height = height;\n\t\tme.aspectRatio = height ? width / height : null;\n\t\tme.options = config.options;\n\t\tme._bufferedRender = false;\n\t\tme._layers = [];\n\n\t\t/**\n\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t * @prop Chart#chart\n\t\t * @deprecated since version 2.6.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tme.chart = me;\n\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t// Add the chart instance to the global namespace\n\t\tChart.instances[me.id] = me;\n\n\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\tObject.defineProperty(me, 'data', {\n\t\t\tget: function() {\n\t\t\t\treturn me.config.data;\n\t\t\t},\n\t\t\tset: function(value) {\n\t\t\t\tme.config.data = value;\n\t\t\t}\n\t\t});\n\n\t\tif (!context || !canvas) {\n\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\treturn;\n\t\t}\n\n\t\tme.initialize();\n\t\tme.update();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinitialize: function() {\n\t\tvar me = this;\n\n\t\t// Before init plugin notification\n\t\tcore_plugins.notify(me, 'beforeInit');\n\n\t\thelpers$1.retinaScale(me, me.options.devicePixelRatio);\n\n\t\tme.bindEvents();\n\n\t\tif (me.options.responsive) {\n\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\tme.resize(true);\n\t\t}\n\n\t\tme.initToolTip();\n\n\t\t// After init plugin notification\n\t\tcore_plugins.notify(me, 'afterInit');\n\n\t\treturn me;\n\t},\n\n\tclear: function() {\n\t\thelpers$1.canvas.clear(this);\n\t\treturn this;\n\t},\n\n\tstop: function() {\n\t\t// Stops any current animation loop occurring\n\t\tcore_animations.cancelAnimation(this);\n\t\treturn this;\n\t},\n\n\tresize: function(silent) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar canvas = me.canvas;\n\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\n\t\tvar newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas)));\n\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas)));\n\n\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\tcanvas.width = me.width = newWidth;\n\t\tcanvas.height = me.height = newHeight;\n\t\tcanvas.style.width = newWidth + 'px';\n\t\tcanvas.style.height = newHeight + 'px';\n\n\t\thelpers$1.retinaScale(me, options.devicePixelRatio);\n\n\t\tif (!silent) {\n\t\t\t// Notify any plugins about the resize\n\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\tcore_plugins.notify(me, 'resize', [newSize]);\n\n\t\t\t// Notify of resize\n\t\t\tif (options.onResize) {\n\t\t\t\toptions.onResize(me, newSize);\n\t\t\t}\n\n\t\t\tme.stop();\n\t\t\tme.update({\n\t\t\t\tduration: options.responsiveAnimationDuration\n\t\t\t});\n\t\t}\n\t},\n\n\tensureScalesHaveIDs: function() {\n\t\tvar options = this.options;\n\t\tvar scalesOptions = options.scales || {};\n\t\tvar scaleOptions = options.scale;\n\n\t\thelpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\tif (!xAxisOptions.id) {\n\t\t\t\txAxisOptions.id = nextAvailableScaleId(scalesOptions.xAxes, 'x-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\tif (!yAxisOptions.id) {\n\t\t\t\tyAxisOptions.id = nextAvailableScaleId(scalesOptions.yAxes, 'y-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\tif (scaleOptions) {\n\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t}\n\t},\n\n\t/**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n\tbuildOrUpdateScales: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar scales = me.scales || {};\n\t\tvar items = [];\n\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\tobj[id] = false;\n\t\t\treturn obj;\n\t\t}, {});\n\n\t\tif (options.scales) {\n\t\t\titems = items.concat(\n\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t}),\n\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (options.scale) {\n\t\t\titems.push({\n\t\t\t\toptions: options.scale,\n\t\t\t\tdtype: 'radialLinear',\n\t\t\t\tisDefault: true,\n\t\t\t\tdposition: 'chartArea'\n\t\t\t});\n\t\t}\n\n\t\thelpers$1.each(items, function(item) {\n\t\t\tvar scaleOptions = item.options;\n\t\t\tvar id = scaleOptions.id;\n\t\t\tvar scaleType = valueOrDefault$9(scaleOptions.type, item.dtype);\n\n\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t}\n\n\t\t\tupdated[id] = true;\n\t\t\tvar scale = null;\n\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\tscale = scales[id];\n\t\t\t\tscale.options = scaleOptions;\n\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\tscale.chart = me;\n\t\t\t} else {\n\t\t\t\tvar scaleClass = core_scaleService.getScaleConstructor(scaleType);\n\t\t\t\tif (!scaleClass) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tscale = new scaleClass({\n\t\t\t\t\tid: id,\n\t\t\t\t\ttype: scaleType,\n\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\tchart: me\n\t\t\t\t});\n\t\t\t\tscales[scale.id] = scale;\n\t\t\t}\n\n\t\t\tscale.mergeTicksOptions();\n\n\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\tif (item.isDefault) {\n\t\t\t\tme.scale = scale;\n\t\t\t}\n\t\t});\n\t\t// clear up discarded scales\n\t\thelpers$1.each(updated, function(hasUpdated, id) {\n\t\t\tif (!hasUpdated) {\n\t\t\t\tdelete scales[id];\n\t\t\t}\n\t\t});\n\n\t\tme.scales = scales;\n\n\t\tcore_scaleService.addScalesToLayout(this);\n\t},\n\n\tbuildOrUpdateControllers: function() {\n\t\tvar me = this;\n\t\tvar newControllers = [];\n\t\tvar datasets = me.data.datasets;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tvar dataset = datasets[i];\n\t\t\tvar meta = me.getDatasetMeta(i);\n\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\tme.destroyDatasetMeta(i);\n\t\t\t\tmeta = me.getDatasetMeta(i);\n\t\t\t}\n\t\t\tmeta.type = type;\n\t\t\tmeta.order = dataset.order || 0;\n\t\t\tmeta.index = i;\n\n\t\t\tif (meta.controller) {\n\t\t\t\tmeta.controller.updateIndex(i);\n\t\t\t\tmeta.controller.linkScales();\n\t\t\t} else {\n\t\t\t\tvar ControllerClass = controllers[meta.type];\n\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t}\n\n\t\t\t\tmeta.controller = new ControllerClass(me, i);\n\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t}\n\t\t}\n\n\t\treturn newControllers;\n\t},\n\n\t/**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n\tresetElements: function() {\n\t\tvar me = this;\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t}, me);\n\t},\n\n\t/**\n\t* Resets the chart back to it's state before the initial animation\n\t*/\n\treset: function() {\n\t\tthis.resetElements();\n\t\tthis.tooltip.initialize();\n\t},\n\n\tupdate: function(config) {\n\t\tvar me = this;\n\t\tvar i, ilen;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tupdateConfig(me);\n\n\t\t// plugins options references might have change, let's invalidate the cache\n\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\tcore_plugins._invalidate(me);\n\n\t\tif (core_plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In case the entire data object changed\n\t\tme.tooltip._data = me.data;\n\n\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t// Make sure all dataset controllers have correct meta data counts\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n\t\t\tme.getDatasetMeta(i).controller.buildOrUpdateElements();\n\t\t}\n\n\t\tme.updateLayout();\n\n\t\t// Can only reset the new controllers after the scales have been updated\n\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\thelpers$1.each(newControllers, function(controller) {\n\t\t\t\tcontroller.reset();\n\t\t\t});\n\t\t}\n\n\t\tme.updateDatasets();\n\n\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t// after update.\n\t\tme.tooltip.initialize();\n\n\t\t// Last active contains items that were previously in the tooltip.\n\t\t// When we reset the tooltip, we need to clear it\n\t\tme.lastActive = [];\n\n\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\tcore_plugins.notify(me, 'afterUpdate');\n\n\t\tme._layers.sort(compare2Level('z', '_idx'));\n\n\t\tif (me._bufferedRender) {\n\t\t\tme._bufferedRequest = {\n\t\t\t\tduration: config.duration,\n\t\t\t\teasing: config.easing,\n\t\t\t\tlazy: config.lazy\n\t\t\t};\n\t\t} else {\n\t\t\tme.render(config);\n\t\t}\n\t},\n\n\t/**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n\tupdateLayout: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeLayout') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tcore_layouts.update(this, this.width, this.height);\n\n\t\tme._layers = [];\n\t\thelpers$1.each(me.boxes, function(box) {\n\t\t\t// _configure is called twice, once in core.scale.update and once here.\n\t\t\t// Here the boxes are fully updated and at their final positions.\n\t\t\tif (box._configure) {\n\t\t\t\tbox._configure();\n\t\t\t}\n\t\t\tme._layers.push.apply(me._layers, box._layers());\n\t\t}, me);\n\n\t\tme._layers.forEach(function(item, index) {\n\t\t\titem._idx = index;\n\t\t});\n\n\t\t/**\n\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t * @method IPlugin#afterScaleUpdate\n\t\t * @deprecated since version 2.5.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tcore_plugins.notify(me, 'afterScaleUpdate');\n\t\tcore_plugins.notify(me, 'afterLayout');\n\t},\n\n\t/**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n\tupdateDatasets: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.updateDataset(i);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsUpdate');\n\t},\n\n\t/**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n\tupdateDataset: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getDatasetMeta(index);\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: index\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller._update();\n\n\t\tcore_plugins.notify(me, 'afterDatasetUpdate', [args]);\n\t},\n\n\trender: function(config) {\n\t\tvar me = this;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tvar animationOptions = me.options.animation;\n\t\tvar duration = valueOrDefault$9(config.duration, animationOptions && animationOptions.duration);\n\t\tvar lazy = config.lazy;\n\n\t\tif (core_plugins.notify(me, 'beforeRender') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar onComplete = function(animation) {\n\t\t\tcore_plugins.notify(me, 'afterRender');\n\t\t\thelpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t};\n\n\t\tif (animationOptions && duration) {\n\t\t\tvar animation = new core_animation({\n\t\t\t\tnumSteps: duration / 16.66, // 60 fps\n\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\tvar easingFunction = helpers$1.easing.effects[animationObject.easing];\n\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t},\n\n\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\tonAnimationComplete: onComplete\n\t\t\t});\n\n\t\t\tcore_animations.addAnimation(me, animation, duration, lazy);\n\t\t} else {\n\t\t\tme.draw();\n\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\tonComplete(new core_animation({numSteps: 0, chart: me}));\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdraw: function(easingValue) {\n\t\tvar me = this;\n\t\tvar i, layers;\n\n\t\tme.clear();\n\n\t\tif (helpers$1.isNullOrUndef(easingValue)) {\n\t\t\teasingValue = 1;\n\t\t}\n\n\t\tme.transition(easingValue);\n\n\t\tif (me.width <= 0 || me.height <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n\t\t// currently be part of layers. Instead, we draw\n\t\t// layers <= 0 before(default, backward compat), and the rest after\n\t\tlayers = me._layers;\n\t\tfor (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme.drawDatasets(easingValue);\n\n\t\t// Rest of layers\n\t\tfor (; i < layers.length; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme._drawTooltip(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDraw', [easingValue]);\n\t},\n\n\t/**\n\t * @private\n\t */\n\ttransition: function(easingValue) {\n\t\tvar me = this;\n\n\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t}\n\t\t}\n\n\t\tme.tooltip.transition(easingValue);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedDatasetMetas: function(filterVisible) {\n\t\tvar me = this;\n\t\tvar datasets = me.data.datasets || [];\n\t\tvar result = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\n\t\t\tif (!filterVisible || me.isDatasetVisible(i)) {\n\t\t\t\tresult.push(me.getDatasetMeta(i));\n\t\t\t}\n\t\t}\n\n\t\tresult.sort(compare2Level('order', 'index'));\n\n\t\treturn result;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedVisibleDatasetMetas: function() {\n\t\treturn this._getSortedDatasetMetas(true);\n\t},\n\n\t/**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n\tdrawDatasets: function(easingValue) {\n\t\tvar me = this;\n\t\tvar metasets, i;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmetasets = me._getSortedVisibleDatasetMetas();\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tme.drawDataset(metasets[i], easingValue);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t},\n\n\t/**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n\tdrawDataset: function(meta, easingValue) {\n\t\tvar me = this;\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: meta.index,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller.draw(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDatasetDraw', [args]);\n\t},\n\n\t/**\n\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t * @private\n\t */\n\t_drawTooltip: function(easingValue) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\t\tvar args = {\n\t\t\ttooltip: tooltip,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip.draw();\n\n\t\tcore_plugins.notify(me, 'afterTooltipDraw', [args]);\n\t},\n\n\t/**\n\t * Get the single element that was clicked on\n\t * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t */\n\tgetElementAtEvent: function(e) {\n\t\treturn core_interaction.modes.single(this, e);\n\t},\n\n\tgetElementsAtEvent: function(e) {\n\t\treturn core_interaction.modes.label(this, e, {intersect: true});\n\t},\n\n\tgetElementsAtXAxis: function(e) {\n\t\treturn core_interaction.modes['x-axis'](this, e, {intersect: true});\n\t},\n\n\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\tvar method = core_interaction.modes[mode];\n\t\tif (typeof method === 'function') {\n\t\t\treturn method(this, e, options);\n\t\t}\n\n\t\treturn [];\n\t},\n\n\tgetDatasetAtEvent: function(e) {\n\t\treturn core_interaction.modes.dataset(this, e, {intersect: true});\n\t},\n\n\tgetDatasetMeta: function(datasetIndex) {\n\t\tvar me = this;\n\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\tif (!dataset._meta) {\n\t\t\tdataset._meta = {};\n\t\t}\n\n\t\tvar meta = dataset._meta[me.id];\n\t\tif (!meta) {\n\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\ttype: null,\n\t\t\t\tdata: [],\n\t\t\t\tdataset: null,\n\t\t\t\tcontroller: null,\n\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\txAxisID: null,\n\t\t\t\tyAxisID: null,\n\t\t\t\torder: dataset.order || 0,\n\t\t\t\tindex: datasetIndex\n\t\t\t};\n\t\t}\n\n\t\treturn meta;\n\t},\n\n\tgetVisibleDatasetCount: function() {\n\t\tvar count = 0;\n\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t},\n\n\tisDatasetVisible: function(datasetIndex) {\n\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t},\n\n\tgenerateLegend: function() {\n\t\treturn this.options.legendCallback(this);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroyDatasetMeta: function(datasetIndex) {\n\t\tvar id = this.id;\n\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\tif (meta) {\n\t\t\tmeta.controller.destroy();\n\t\t\tdelete dataset._meta[id];\n\t\t}\n\t},\n\n\tdestroy: function() {\n\t\tvar me = this;\n\t\tvar canvas = me.canvas;\n\t\tvar i, ilen;\n\n\t\tme.stop();\n\n\t\t// dataset controllers need to cleanup associated data\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.destroyDatasetMeta(i);\n\t\t}\n\n\t\tif (canvas) {\n\t\t\tme.unbindEvents();\n\t\t\thelpers$1.canvas.clear(me);\n\t\t\tplatform.releaseContext(me.ctx);\n\t\t\tme.canvas = null;\n\t\t\tme.ctx = null;\n\t\t}\n\n\t\tcore_plugins.notify(me, 'destroy');\n\n\t\tdelete Chart.instances[me.id];\n\t},\n\n\ttoBase64Image: function() {\n\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t},\n\n\tinitToolTip: function() {\n\t\tvar me = this;\n\t\tme.tooltip = new core_tooltip({\n\t\t\t_chart: me,\n\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t_data: me.data,\n\t\t\t_options: me.options.tooltips\n\t\t}, me);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners = {};\n\t\tvar listener = function() {\n\t\t\tme.eventHandler.apply(me, arguments);\n\t\t};\n\n\t\thelpers$1.each(me.options.events, function(type) {\n\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\tlisteners[type] = listener;\n\t\t});\n\n\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\tif (me.options.responsive) {\n\t\t\tlistener = function() {\n\t\t\t\tme.resize();\n\t\t\t};\n\n\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\tlisteners.resize = listener;\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tunbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners;\n\t\tif (!listeners) {\n\t\t\treturn;\n\t\t}\n\n\t\tdelete me._listeners;\n\t\thelpers$1.each(listeners, function(listener, type) {\n\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t});\n\t},\n\n\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\tvar prefix = enabled ? 'set' : 'remove';\n\t\tvar element, i, ilen;\n\n\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\telement = elements[i];\n\t\t\tif (element) {\n\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[prefix + 'HoverStyle'](element);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'dataset') {\n\t\t\tthis.getDatasetMeta(elements[0]._datasetIndex).controller['_' + prefix + 'DatasetHoverStyle']();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\teventHandler: function(e) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\n\t\tif (core_plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Buffer any update calls so that renders do not occur\n\t\tme._bufferedRender = true;\n\t\tme._bufferedRequest = null;\n\n\t\tvar changed = me.handleEvent(e);\n\t\t// for smooth tooltip animations issue #4989\n\t\t// the tooltip should be the source of change\n\t\t// Animation check workaround:\n\t\t// tooltip._start will be null when tooltip isn't animating\n\t\tif (tooltip) {\n\t\t\tchanged = tooltip._start\n\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterEvent', [e]);\n\n\t\tvar bufferedRequest = me._bufferedRequest;\n\t\tif (bufferedRequest) {\n\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\tme.render(bufferedRequest);\n\t\t} else if (changed && !me.animating) {\n\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\tme.stop();\n\n\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\tme.render({\n\t\t\t\tduration: me.options.hover.animationDuration,\n\t\t\t\tlazy: true\n\t\t\t});\n\t\t}\n\n\t\tme._bufferedRender = false;\n\t\tme._bufferedRequest = null;\n\n\t\treturn me;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event the event to handle\n\t * @return {boolean} true if the chart needs to re-render\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me.options || {};\n\t\tvar hoverOptions = options.hover;\n\t\tvar changed = false;\n\n\t\tme.lastActive = me.lastActive || [];\n\n\t\t// Find Active Elements for hover and tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme.active = [];\n\t\t} else {\n\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t}\n\n\t\t// Invoke onHover hook\n\t\t// Need to call with native event here to not break backwards compatibility\n\t\thelpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\tif (options.onClick) {\n\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t}\n\t\t}\n\n\t\t// Remove styling for last active (even if it may still be active)\n\t\tif (me.lastActive.length) {\n\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t}\n\n\t\t// Built in hover styling\n\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t}\n\n\t\tchanged = !helpers$1.arrayEquals(me.active, me.lastActive);\n\n\t\t// Remember Last Actives\n\t\tme.lastActive = me.active;\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * NOTE(SB) We actually don't use this container anymore but we need to keep it\n * for backward compatibility. Though, it can still be useful for plugins that\n * would need to work on multiple charts?!\n */\nChart.instances = {};\n\nvar core_controller = Chart;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6\n * @todo remove at version 3\n * @private\n */\nChart.Controller = Chart;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\nChart.types = {};\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.configMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.configMerge = mergeConfig;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.scaleMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.scaleMerge = mergeScaleConfig;\n\nvar core_helpers = function() {\n\n\t// -- Basic js utility methods\n\n\thelpers$1.where = function(collection, filterCallback) {\n\t\tif (helpers$1.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers$1.each(collection, function(item) {\n\t\t\tif (filterCallback(item)) {\n\t\t\t\tfiltered.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn filtered;\n\t};\n\thelpers$1.findIndex = Array.prototype.findIndex ?\n\t\tfunction(array, callback, scope) {\n\t\t\treturn array.findIndex(callback, scope);\n\t\t} :\n\t\tfunction(array, callback, scope) {\n\t\t\tscope = scope === undefined ? array : scope;\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\thelpers$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = -1;\n\t\t}\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = arrayToSearch.length;\n\t\t}\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\n\t// -- Math methods\n\thelpers$1.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers$1.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers$1.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n\t};\n\thelpers$1.max = function(array) {\n\t\treturn array.reduce(function(max, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.max(max, value);\n\t\t\t}\n\t\t\treturn max;\n\t\t}, Number.NEGATIVE_INFINITY);\n\t};\n\thelpers$1.min = function(array) {\n\t\treturn array.reduce(function(min, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.min(min, value);\n\t\t\t}\n\t\t\treturn min;\n\t\t}, Number.POSITIVE_INFINITY);\n\t};\n\thelpers$1.sign = Math.sign ?\n\t\tfunction(x) {\n\t\t\treturn Math.sign(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tx = +x; // convert to a number\n\t\t\tif (x === 0 || isNaN(x)) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn x > 0 ? 1 : -1;\n\t\t};\n\thelpers$1.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers$1.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\n\t/**\n\t * Returns the number of decimal places\n\t * i.e. the number of digits after the decimal point, of the value of this Number.\n\t * @param {number} x - A number.\n\t * @returns {number} The number of decimal places.\n\t * @private\n\t */\n\thelpers$1._decimalPlaces = function(x) {\n\t\tif (!helpers$1.isFinite(x)) {\n\t\t\treturn;\n\t\t}\n\t\tvar e = 1;\n\t\tvar p = 0;\n\t\twhile (Math.round(x * e) / e !== x) {\n\t\t\te *= 10;\n\t\t\tp++;\n\t\t}\n\t\treturn p;\n\t};\n\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers$1.getAngleFromPoint = function(centrePoint, anglePoint) {\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\tif (angle < (-0.5 * Math.PI)) {\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n\t\t}\n\n\t\treturn {\n\t\t\tangle: angle,\n\t\t\tdistance: radialDistanceFromCenter\n\t\t};\n\t};\n\thelpers$1.distanceBetweenPoints = function(pt1, pt2) {\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n\t};\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.helpers.aliasPixel\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\thelpers$1.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\n\t/**\n\t * Returns the aligned pixel value to avoid anti-aliasing blur\n\t * @param {Chart} chart - The chart instance.\n\t * @param {number} pixel - A pixel value.\n\t * @param {number} width - The width of the element.\n\t * @returns {number} The aligned pixel value.\n\t * @private\n\t */\n\thelpers$1._alignPixel = function(chart, pixel, width) {\n\t\tvar devicePixelRatio = chart.currentDevicePixelRatio;\n\t\tvar halfWidth = width / 2;\n\t\treturn Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n\t};\n\n\thelpers$1.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n\t\t// This function must also respect \"skipped\" points\n\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\n\t\tvar current = middlePoint;\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\n\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n\t\tvar s01 = d01 / (d01 + d12);\n\t\tvar s12 = d12 / (d01 + d12);\n\n\t\t// If all points are the same, s01 & s02 will be inf\n\t\ts01 = isNaN(s01) ? 0 : s01;\n\t\ts12 = isNaN(s12) ? 0 : s12;\n\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\n\t\tvar fb = t * s12;\n\n\t\treturn {\n\t\t\tprevious: {\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\n\t\t\t},\n\t\t\tnext: {\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\n\t\t\t}\n\t\t};\n\t};\n\thelpers$1.EPSILON = Number.EPSILON || 1e-14;\n\thelpers$1.splineCurveMonotone = function(points) {\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\n\t\t// between the dataset discrete points due to the interpolation.\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\n\t\t\treturn {\n\t\t\t\tmodel: point._model,\n\t\t\t\tdeltaK: 0,\n\t\t\t\tmK: 0\n\t\t\t};\n\t\t});\n\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\n\t\tvar pointsLen = pointsWithTangents.length;\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n\t\t\t}\n\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n\t\t\t\tpointCurrent.mK = 0;\n\t\t\t} else {\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust tangents to ensure monotonic properties\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tpointAfter = pointsWithTangents[i + 1];\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (helpers$1.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\t\t\tif (squaredMagnitude <= 9) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n\t\t}\n\n\t\t// Compute control points\n\t\tvar deltaX;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.nextItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\n\t\t}\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n\t};\n\thelpers$1.previousItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n\t\t}\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\n\t};\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\n\thelpers$1.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers$1.log10(range));\n\t\tvar fraction = range / Math.pow(10, exponent);\n\t\tvar niceFraction;\n\n\t\tif (round) {\n\t\t\tif (fraction < 1.5) {\n\t\t\t\tniceFraction = 1;\n\t\t\t} else if (fraction < 3) {\n\t\t\t\tniceFraction = 2;\n\t\t\t} else if (fraction < 7) {\n\t\t\t\tniceFraction = 5;\n\t\t\t} else {\n\t\t\t\tniceFraction = 10;\n\t\t\t}\n\t\t} else if (fraction <= 1.0) {\n\t\t\tniceFraction = 1;\n\t\t} else if (fraction <= 2) {\n\t\t\tniceFraction = 2;\n\t\t} else if (fraction <= 5) {\n\t\t\tniceFraction = 5;\n\t\t} else {\n\t\t\tniceFraction = 10;\n\t\t}\n\n\t\treturn niceFraction * Math.pow(10, exponent);\n\t};\n\t// Request animation polyfill - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers$1.requestAnimFrame = (function() {\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn function(callback) {\n\t\t\t\tcallback();\n\t\t\t};\n\t\t}\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t};\n\t}());\n\t// -- DOM methods\n\thelpers$1.getRelativePosition = function(evt, chart) {\n\t\tvar mouseX, mouseY;\n\t\tvar e = evt.originalEvent || evt;\n\t\tvar canvas = evt.target || evt.srcElement;\n\t\tvar boundingRect = canvas.getBoundingClientRect();\n\n\t\tvar touches = e.touches;\n\t\tif (touches && touches.length > 0) {\n\t\t\tmouseX = touches[0].clientX;\n\t\t\tmouseY = touches[0].clientY;\n\n\t\t} else {\n\t\t\tmouseX = e.clientX;\n\t\t\tmouseY = e.clientY;\n\t\t}\n\n\t\t// Scale mouse coordinates into canvas coordinates\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\n\t\t// https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers$1.getStyle(canvas, 'padding-bottom'));\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n\t\treturn {\n\t\t\tx: mouseX,\n\t\t\ty: mouseY\n\t\t};\n\n\t};\n\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\n\t\tvar valueInPixels;\n\t\tif (typeof styleValue === 'string') {\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\n\n\t\t\tif (styleValue.indexOf('%') !== -1) {\n\t\t\t\t// percentage * size in dimension\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n\t\t\t}\n\t\t} else {\n\t\t\tvalueInPixels = styleValue;\n\t\t}\n\n\t\treturn valueInPixels;\n\t}\n\n\t/**\n\t * Returns if the given value contains an effective constraint.\n\t * @private\n\t */\n\tfunction isConstrainedValue(value) {\n\t\treturn value !== undefined && value !== null && value !== 'none';\n\t}\n\n\t/**\n\t * Returns the max width or height of the given DOM node in a cross-browser compatible fashion\n\t * @param {HTMLElement} domNode - the node to check the constraint on\n\t * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height')\n\t * @param {string} percentageProperty - property of parent to use when calculating width as a percentage\n\t * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser}\n\t */\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = helpers$1._getParentNode(domNode);\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\n\t\tvar infinity = Number.POSITIVE_INFINITY;\n\n\t\tif (hasCNode || hasCContainer) {\n\t\t\treturn Math.min(\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n\t\t}\n\n\t\treturn 'none';\n\t}\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\t/**\n\t * @private\n \t */\n\thelpers$1._calculatePadding = function(container, padding, parentDimension) {\n\t\tpadding = helpers$1.getStyle(container, padding);\n\n\t\treturn padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10);\n\t};\n\t/**\n\t * @private\n\t */\n\thelpers$1._getParentNode = function(domNode) {\n\t\tvar parent = domNode.parentNode;\n\t\tif (parent && parent.toString() === '[object ShadowRoot]') {\n\t\t\tparent = parent.host;\n\t\t}\n\t\treturn parent;\n\t};\n\thelpers$1.getMaximumWidth = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientWidth;\n\t\t}\n\n\t\tvar clientWidth = container.clientWidth;\n\t\tvar paddingLeft = helpers$1._calculatePadding(container, 'padding-left', clientWidth);\n\t\tvar paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth);\n\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers$1.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers$1.getMaximumHeight = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientHeight;\n\t\t}\n\n\t\tvar clientHeight = container.clientHeight;\n\t\tvar paddingTop = helpers$1._calculatePadding(container, 'padding-top', clientHeight);\n\t\tvar paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight);\n\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers$1.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers$1.getStyle = function(el, property) {\n\t\treturn el.currentStyle ?\n\t\t\tel.currentStyle[property] :\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n\t};\n\thelpers$1.retinaScale = function(chart, forceRatio) {\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n\t\tif (pixelRatio === 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar canvas = chart.canvas;\n\t\tvar height = chart.height;\n\t\tvar width = chart.width;\n\n\t\tcanvas.height = height * pixelRatio;\n\t\tcanvas.width = width * pixelRatio;\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\n\n\t\t// If no style has been set on the canvas, the render size is used as display size,\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\n\t\tif (!canvas.style.height && !canvas.style.width) {\n\t\t\tcanvas.style.height = height + 'px';\n\t\t\tcanvas.style.width = width + 'px';\n\t\t}\n\t};\n\t// -- Canvas methods\n\thelpers$1.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers$1.longestText = function(ctx, font, arrayOfThings, cache) {\n\t\tcache = cache || {};\n\t\tvar data = cache.data = cache.data || {};\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\n\n\t\tif (cache.font !== font) {\n\t\t\tdata = cache.data = {};\n\t\t\tgc = cache.garbageCollect = [];\n\t\t\tcache.font = font;\n\t\t}\n\n\t\tctx.font = font;\n\t\tvar longest = 0;\n\t\tvar ilen = arrayOfThings.length;\n\t\tvar i, j, jlen, thing, nestedThing;\n\t\tfor (i = 0; i < ilen; i++) {\n\t\t\tthing = arrayOfThings[i];\n\n\t\t\t// Undefined strings and arrays should not be measured\n\t\t\tif (thing !== undefined && thing !== null && helpers$1.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers$1.isArray(thing)) {\n\t\t\t\t// if it is an array lets measure each element\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\n\t\t\t\tfor (j = 0, jlen = thing.length; j < jlen; j++) {\n\t\t\t\t\tnestedThing = thing[j];\n\t\t\t\t\t// Undefined strings and arrays should not be measured\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers$1.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, nestedThing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar gcLen = gc.length / 2;\n\t\tif (gcLen > arrayOfThings.length) {\n\t\t\tfor (i = 0; i < gcLen; i++) {\n\t\t\t\tdelete data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers$1.measureText = function(ctx, data, gc, longest, string) {\n\t\tvar textWidth = data[string];\n\t\tif (!textWidth) {\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\n\t\t\tgc.push(string);\n\t\t}\n\t\tif (textWidth > longest) {\n\t\t\tlongest = textWidth;\n\t\t}\n\t\treturn longest;\n\t};\n\n\t/**\n\t * @deprecated\n\t */\n\thelpers$1.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers$1.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers$1.isArray(thing)) {\n\t\t\t\tif (thing.length > numberOfLines) {\n\t\t\t\t\tnumberOfLines = thing.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn numberOfLines;\n\t};\n\n\thelpers$1.color = !chartjsColor ?\n\t\tfunction(value) {\n\t\t\tconsole.error('Color.js not found!');\n\t\t\treturn value;\n\t\t} :\n\t\tfunction(value) {\n\t\t\t/* global CanvasGradient */\n\t\t\tif (value instanceof CanvasGradient) {\n\t\t\t\tvalue = core_defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn chartjsColor(value);\n\t\t};\n\n\thelpers$1.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ?\n\t\t\tcolorValue :\n\t\t\thelpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n\nfunction abstract() {\n\tthrow new Error(\n\t\t'This method is not implemented: either no adapter can ' +\n\t\t'be found or an incomplete integration was provided.'\n\t);\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\n\n/**\n * Currently supported unit string values.\n * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')}\n * @memberof Chart._adapters._date\n * @name Unit\n */\n\n/**\n * @class\n */\nfunction DateAdapter(options) {\n\tthis.options = options || {};\n}\n\nhelpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ {\n\t/**\n\t * Returns a map of time formats for the supported formatting units defined\n\t * in Unit as well as 'datetime' representing a detailed date/time string.\n\t * @returns {{string: string}}\n\t */\n\tformats: abstract,\n\n\t/**\n\t * Parses the given `value` and return the associated timestamp.\n\t * @param {any} value - the value to parse (usually comes from the data)\n\t * @param {string} [format] - the expected data format\n\t * @returns {(number|null)}\n\t * @function\n\t */\n\tparse: abstract,\n\n\t/**\n\t * Returns the formatted date in the specified `format` for a given `timestamp`.\n\t * @param {number} timestamp - the timestamp to format\n\t * @param {string} format - the date/time token\n\t * @return {string}\n\t * @function\n\t */\n\tformat: abstract,\n\n\t/**\n\t * Adds the specified `amount` of `unit` to the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {number} amount - the amount to add\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tadd: abstract,\n\n\t/**\n\t * Returns the number of `unit` between the given timestamps.\n\t * @param {number} max - the input timestamp (reference)\n\t * @param {number} min - the timestamp to substract\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tdiff: abstract,\n\n\t/**\n\t * Returns start of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @param {number} [weekday] - the ISO day of the week with 1 being Monday\n\t * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n\t * @function\n\t */\n\tstartOf: abstract,\n\n\t/**\n\t * Returns end of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @function\n\t */\n\tendOf: abstract,\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility for scale.getValueForPixel(),\n\t * this method should be overridden only by the moment adapter.\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(value) {\n\t\treturn value;\n\t}\n});\n\nDateAdapter.override = function(members) {\n\thelpers$1.extend(DateAdapter.prototype, members);\n};\n\nvar _date = DateAdapter;\n\nvar core_adapters = {\n\t_date: _date\n};\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nvar core_ticks = {\n\t/**\n\t * Namespace to hold formatters for different types of ticks\n\t * @namespace Chart.Ticks.formatters\n\t */\n\tformatters: {\n\t\t/**\n\t\t * Formatter for value labels\n\t\t * @method Chart.Ticks.formatters.values\n\t\t * @param value the value to display\n\t\t * @return {string|string[]} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers$1.isArray(value) ? value : '' + value;\n\t\t},\n\n\t\t/**\n\t\t * Formatter for linear numeric ticks\n\t\t * @method Chart.Ticks.formatters.linear\n\t\t * @param tickValue {number} the value to be formatted\n\t\t * @param index {number} the position of the tickValue parameter in the ticks array\n\t\t * @param ticks {number[]} the list of ticks being converted\n\t\t * @return {string} string representation of the tickValue parameter\n\t\t */\n\t\tlinear: function(tickValue, index, ticks) {\n\t\t\t// If we have lots of ticks, don't use the ones\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\n\t\t\tif (Math.abs(delta) > 1) {\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\n\t\t\t\t\t// not an integer\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar logDelta = helpers$1.log10(Math.abs(delta));\n\t\t\tvar tickString = '';\n\n\t\t\tif (tickValue !== 0) {\n\t\t\t\tvar maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1]));\n\t\t\t\tif (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation\n\t\t\t\t\tvar logTick = helpers$1.log10(Math.abs(tickValue));\n\t\t\t\t\tvar numExponential = Math.floor(logTick) - Math.floor(logDelta);\n\t\t\t\t\tnumExponential = Math.max(Math.min(numExponential, 20), 0);\n\t\t\t\t\ttickString = tickValue.toExponential(numExponential);\n\t\t\t\t} else {\n\t\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\n\t\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n\t\t\t\t\ttickString = tickValue.toFixed(numDecimal);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttickString = '0'; // never show decimal places for 0\n\t\t\t}\n\n\t\t\treturn tickString;\n\t\t},\n\n\t\tlogarithmic: function(tickValue, index, ticks) {\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers$1.log10(tickValue))));\n\n\t\t\tif (tickValue === 0) {\n\t\t\t\treturn '0';\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n\t\t\t\treturn tickValue.toExponential();\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t}\n};\n\nvar isArray = helpers$1.isArray;\nvar isNullOrUndef = helpers$1.isNullOrUndef;\nvar valueOrDefault$a = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault;\n\ncore_defaults._set('scale', {\n\tdisplay: true,\n\tposition: 'left',\n\toffset: false,\n\n\t// grid line settings\n\tgridLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tdrawBorder: true,\n\t\tdrawOnChartArea: true,\n\t\tdrawTicks: true,\n\t\ttickMarkLength: 10,\n\t\tzeroLineWidth: 1,\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\n\t\tzeroLineBorderDash: [],\n\t\tzeroLineBorderDashOffset: 0.0,\n\t\toffsetGridLines: false,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\t// scale label\n\tscaleLabel: {\n\t\t// display property\n\t\tdisplay: false,\n\n\t\t// actual label\n\t\tlabelString: '',\n\n\t\t// top/bottom padding\n\t\tpadding: {\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\n\t// label settings\n\tticks: {\n\t\tbeginAtZero: false,\n\t\tminRotation: 0,\n\t\tmaxRotation: 50,\n\t\tmirror: false,\n\t\tpadding: 0,\n\t\treverse: false,\n\t\tdisplay: true,\n\t\tautoSkip: true,\n\t\tautoSkipPadding: 0,\n\t\tlabelOffset: 0,\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n\t\tcallback: core_ticks.formatters.values,\n\t\tminor: {},\n\t\tmajor: {}\n\t}\n});\n\n/** Returns a new array containing numItems from arr */\nfunction sample(arr, numItems) {\n\tvar result = [];\n\tvar increment = arr.length / numItems;\n\tvar i = 0;\n\tvar len = arr.length;\n\n\tfor (; i < len; i += increment) {\n\t\tresult.push(arr[Math.floor(i)]);\n\t}\n\treturn result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n\tvar length = scale.getTicks().length;\n\tvar validIndex = Math.min(index, length - 1);\n\tvar lineValue = scale.getPixelForTick(validIndex);\n\tvar start = scale._startPixel;\n\tvar end = scale._endPixel;\n\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\tvar offset;\n\n\tif (offsetGridLines) {\n\t\tif (length === 1) {\n\t\t\toffset = Math.max(lineValue - start, end - lineValue);\n\t\t} else if (index === 0) {\n\t\t\toffset = (scale.getPixelForTick(1) - lineValue) / 2;\n\t\t} else {\n\t\t\toffset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n\t\t}\n\t\tlineValue += validIndex < index ? offset : -offset;\n\n\t\t// Return undefined if the pixel is out of the range\n\t\tif (lineValue < start - epsilon || lineValue > end + epsilon) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n\thelpers$1.each(caches, function(cache) {\n\t\tvar gc = cache.gc;\n\t\tvar gcLen = gc.length / 2;\n\t\tvar i;\n\t\tif (gcLen > length) {\n\t\t\tfor (i = 0; i < gcLen; ++i) {\n\t\t\t\tdelete cache.data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t});\n}\n\n/**\n * Returns {width, height, offset} objects for the first, last, widest, highest tick\n * labels where offset indicates the anchor point offset from the top in pixels.\n */\nfunction computeLabelSizes(ctx, tickFonts, ticks, caches) {\n\tvar length = ticks.length;\n\tvar widths = [];\n\tvar heights = [];\n\tvar offsets = [];\n\tvar widestLabelSize = 0;\n\tvar highestLabelSize = 0;\n\tvar i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel, widest, highest;\n\n\tfor (i = 0; i < length; ++i) {\n\t\tlabel = ticks[i].label;\n\t\ttickFont = ticks[i].major ? tickFonts.major : tickFonts.minor;\n\t\tctx.font = fontString = tickFont.string;\n\t\tcache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n\t\tlineHeight = tickFont.lineHeight;\n\t\twidth = height = 0;\n\t\t// Undefined labels and arrays should not be measured\n\t\tif (!isNullOrUndef(label) && !isArray(label)) {\n\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, label);\n\t\t\theight = lineHeight;\n\t\t} else if (isArray(label)) {\n\t\t\t// if it is an array let's measure each element\n\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\tnestedLabel = label[j];\n\t\t\t\t// Undefined labels and arrays should not be measured\n\t\t\t\tif (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n\t\t\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n\t\t\t\t\theight += lineHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twidths.push(width);\n\t\theights.push(height);\n\t\toffsets.push(lineHeight / 2);\n\t\twidestLabelSize = Math.max(width, widestLabelSize);\n\t\thighestLabelSize = Math.max(height, highestLabelSize);\n\t}\n\tgarbageCollect(caches, length);\n\n\twidest = widths.indexOf(widestLabelSize);\n\thighest = heights.indexOf(highestLabelSize);\n\n\tfunction valueAt(idx) {\n\t\treturn {\n\t\t\twidth: widths[idx] || 0,\n\t\t\theight: heights[idx] || 0,\n\t\t\toffset: offsets[idx] || 0\n\t\t};\n\t}\n\n\treturn {\n\t\tfirst: valueAt(0),\n\t\tlast: valueAt(length - 1),\n\t\twidest: valueAt(widest),\n\t\thighest: valueAt(highest)\n\t};\n}\n\nfunction getTickMarkLength(options) {\n\treturn options.drawTicks ? options.tickMarkLength : 0;\n}\n\nfunction getScaleLabelHeight(options) {\n\tvar font, padding;\n\n\tif (!options.display) {\n\t\treturn 0;\n\t}\n\n\tfont = helpers$1.options._parseFont(options);\n\tpadding = helpers$1.options.toPadding(options.padding);\n\n\treturn font.lineHeight + padding.height;\n}\n\nfunction parseFontOptions(options, nestedOpts) {\n\treturn helpers$1.extend(helpers$1.options._parseFont({\n\t\tfontFamily: valueOrDefault$a(nestedOpts.fontFamily, options.fontFamily),\n\t\tfontSize: valueOrDefault$a(nestedOpts.fontSize, options.fontSize),\n\t\tfontStyle: valueOrDefault$a(nestedOpts.fontStyle, options.fontStyle),\n\t\tlineHeight: valueOrDefault$a(nestedOpts.lineHeight, options.lineHeight)\n\t}), {\n\t\tcolor: helpers$1.options.resolve([nestedOpts.fontColor, options.fontColor, core_defaults.global.defaultFontColor])\n\t});\n}\n\nfunction parseTickFontOptions(options) {\n\tvar minor = parseFontOptions(options, options.minor);\n\tvar major = options.major.enabled ? parseFontOptions(options, options.major) : minor;\n\n\treturn {minor: minor, major: major};\n}\n\nfunction nonSkipped(ticksToFilter) {\n\tvar filtered = [];\n\tvar item, index, len;\n\tfor (index = 0, len = ticksToFilter.length; index < len; ++index) {\n\t\titem = ticksToFilter[index];\n\t\tif (typeof item._index !== 'undefined') {\n\t\t\tfiltered.push(item);\n\t\t}\n\t}\n\treturn filtered;\n}\n\nfunction getEvenSpacing(arr) {\n\tvar len = arr.length;\n\tvar i, diff;\n\n\tif (len < 2) {\n\t\treturn false;\n\t}\n\n\tfor (diff = arr[0], i = 1; i < len; ++i) {\n\t\tif (arr[i] - arr[i - 1] !== diff) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn diff;\n}\n\nfunction calculateSpacing(majorIndices, ticks, axisLength, ticksLimit) {\n\tvar evenMajorSpacing = getEvenSpacing(majorIndices);\n\tvar spacing = (ticks.length - 1) / ticksLimit;\n\tvar factors, factor, i, ilen;\n\n\t// If the major ticks are evenly spaced apart, place the minor ticks\n\t// so that they divide the major ticks into even chunks\n\tif (!evenMajorSpacing) {\n\t\treturn Math.max(spacing, 1);\n\t}\n\n\tfactors = helpers$1.math._factorize(evenMajorSpacing);\n\tfor (i = 0, ilen = factors.length - 1; i < ilen; i++) {\n\t\tfactor = factors[i];\n\t\tif (factor > spacing) {\n\t\t\treturn factor;\n\t\t}\n\t}\n\treturn Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n\tvar result = [];\n\tvar i, ilen;\n\tfor (i = 0, ilen = ticks.length; i < ilen; i++) {\n\t\tif (ticks[i].major) {\n\t\t\tresult.push(i);\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction skipMajors(ticks, majorIndices, spacing) {\n\tvar count = 0;\n\tvar next = majorIndices[0];\n\tvar i, tick;\n\n\tspacing = Math.ceil(spacing);\n\tfor (i = 0; i < ticks.length; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = majorIndices[count * spacing];\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nfunction skip(ticks, spacing, majorStart, majorEnd) {\n\tvar start = valueOrDefault$a(majorStart, 0);\n\tvar end = Math.min(valueOrDefault$a(majorEnd, ticks.length), ticks.length);\n\tvar count = 0;\n\tvar length, i, tick, next;\n\n\tspacing = Math.ceil(spacing);\n\tif (majorEnd) {\n\t\tlength = majorEnd - majorStart;\n\t\tspacing = length / Math.floor(length / spacing);\n\t}\n\n\tnext = start;\n\n\twhile (next < 0) {\n\t\tcount++;\n\t\tnext = Math.round(start + count * spacing);\n\t}\n\n\tfor (i = Math.max(start, 0); i < end; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = Math.round(start + count * spacing);\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nvar Scale = core_element.extend({\n\n\tzeroLineIndex: 0,\n\n\t/**\n\t * Get the padding needed for the scale\n\t * @method getPadding\n\t * @private\n\t * @returns {Padding} the necessary padding\n\t */\n\tgetPadding: function() {\n\t\tvar me = this;\n\t\treturn {\n\t\t\tleft: me.paddingLeft || 0,\n\t\t\ttop: me.paddingTop || 0,\n\t\t\tright: me.paddingRight || 0,\n\t\t\tbottom: me.paddingBottom || 0\n\t\t};\n\t},\n\n\t/**\n\t * Returns the scale tick objects ({label, major})\n\t * @since 2.7\n\t */\n\tgetTicks: function() {\n\t\treturn this._ticks;\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getLabels: function() {\n\t\tvar data = this.chart.data;\n\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n\t},\n\n\t// These methods are ordered by lifecyle. Utilities then follow.\n\t// Any function defined here is inherited by all scale types.\n\t// Any function can be extended by the scale type\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.Scale.mergeTicksOptions\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\tmergeTicksOptions: function() {\n\t\t// noop\n\t},\n\n\tbeforeUpdate: function() {\n\t\thelpers$1.callback(this.options.beforeUpdate, [this]);\n\t},\n\n\t/**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {object} margins - the space between the edge of the other scales and edge of the chart\n\t *   This space comes from two sources:\n\t *     - padding - space that's required to show the labels at the edges of the scale\n\t *     - thickness of scales or legends in another orientation\n\t */\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar sampleSize = tickOpts.sampleSize;\n\t\tvar i, ilen, labels, ticks, samplingEnabled;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = helpers$1.extend({\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ttop: 0,\n\t\t\tbottom: 0\n\t\t}, margins);\n\n\t\tme._ticks = null;\n\t\tme.ticks = null;\n\t\tme._labelSizes = null;\n\t\tme._maxLabelLines = 0;\n\t\tme.longestLabelWidth = 0;\n\t\tme.longestTextCache = me.longestTextCache || {};\n\t\tme._gridLineItems = null;\n\t\tme._labelItems = null;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\n\t\t// Data min/max\n\t\tme.beforeDataLimits();\n\t\tme.determineDataLimits();\n\t\tme.afterDataLimits();\n\n\t\t// Ticks - `this.ticks` is now DEPRECATED!\n\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n\t\t// and must not be accessed directly from outside this class. `this.ticks` being\n\t\t// around for long time and not marked as private, we can't change its structure\n\t\t// without unexpected breaking changes. If you need to access the scale ticks,\n\t\t// use scale.getTicks() instead.\n\n\t\tme.beforeBuildTicks();\n\n\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\n\t\t// we still support no return (`this.ticks` internally set by calling this method).\n\t\tticks = me.buildTicks() || [];\n\n\t\t// Allow modification of ticks in callback.\n\t\tticks = me.afterBuildTicks(ticks) || ticks;\n\n\t\t// Ensure ticks contains ticks in new tick format\n\t\tif ((!ticks || !ticks.length) && me.ticks) {\n\t\t\tticks = [];\n\t\t\tfor (i = 0, ilen = me.ticks.length; i < ilen; ++i) {\n\t\t\t\tticks.push({\n\t\t\t\t\tvalue: me.ticks[i],\n\t\t\t\t\tmajor: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tme._ticks = ticks;\n\n\t\t// Compute tick rotation and fit using a sampled subset of labels\n\t\t// We generally don't need to compute the size of every single label for determining scale size\n\t\tsamplingEnabled = sampleSize < ticks.length;\n\t\tlabels = me._convertTicksToLabels(samplingEnabled ? sample(ticks, sampleSize) : ticks);\n\n\t\t// _configure is called twice, once here, once from core.controller.updateLayout.\n\t\t// Here we haven't been positioned yet, but dimensions are correct.\n\t\t// Variables set in _configure are needed for calculateTickRotation, and\n\t\t// it's ok that coordinates are not correct there, only dimensions matter.\n\t\tme._configure();\n\n\t\t// Tick Rotation\n\t\tme.beforeCalculateTickRotation();\n\t\tme.calculateTickRotation();\n\t\tme.afterCalculateTickRotation();\n\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\n\t\t// Auto-skip\n\t\tme._ticksToDraw = tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto') ? me._autoSkip(ticks) : ticks;\n\n\t\tif (samplingEnabled) {\n\t\t\t// Generate labels using all non-skipped ticks\n\t\t\tlabels = me._convertTicksToLabels(me._ticksToDraw);\n\t\t}\n\n\t\tme.ticks = labels;   // BACKWARD COMPATIBILITY\n\n\t\t// IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n\t\tme.afterUpdate();\n\n\t\t// TODO(v3): remove minSize as a public property and return value from all layout boxes. It is unused\n\t\t// make maxWidth and maxHeight private\n\t\treturn me.minSize;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar reversePixels = me.options.ticks.reverse;\n\t\tvar startPixel, endPixel;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tstartPixel = me.left;\n\t\t\tendPixel = me.right;\n\t\t} else {\n\t\t\tstartPixel = me.top;\n\t\t\tendPixel = me.bottom;\n\t\t\t// by default vertical scales are from bottom to top, so pixels are reversed\n\t\t\treversePixels = !reversePixels;\n\t\t}\n\t\tme._startPixel = startPixel;\n\t\tme._endPixel = endPixel;\n\t\tme._reversePixels = reversePixels;\n\t\tme._length = endPixel - startPixel;\n\t},\n\n\tafterUpdate: function() {\n\t\thelpers$1.callback(this.options.afterUpdate, [this]);\n\t},\n\n\t//\n\n\tbeforeSetDimensions: function() {\n\t\thelpers$1.callback(this.options.beforeSetDimensions, [this]);\n\t},\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\t},\n\tafterSetDimensions: function() {\n\t\thelpers$1.callback(this.options.afterSetDimensions, [this]);\n\t},\n\n\t// Data limits\n\tbeforeDataLimits: function() {\n\t\thelpers$1.callback(this.options.beforeDataLimits, [this]);\n\t},\n\tdetermineDataLimits: helpers$1.noop,\n\tafterDataLimits: function() {\n\t\thelpers$1.callback(this.options.afterDataLimits, [this]);\n\t},\n\n\t//\n\tbeforeBuildTicks: function() {\n\t\thelpers$1.callback(this.options.beforeBuildTicks, [this]);\n\t},\n\tbuildTicks: helpers$1.noop,\n\tafterBuildTicks: function(ticks) {\n\t\tvar me = this;\n\t\t// ticks is empty for old axis implementations here\n\t\tif (isArray(ticks) && ticks.length) {\n\t\t\treturn helpers$1.callback(me.options.afterBuildTicks, [me, ticks]);\n\t\t}\n\t\t// Support old implementations (that modified `this.ticks` directly in buildTicks)\n\t\tme.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks;\n\t\treturn ticks;\n\t},\n\n\tbeforeTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.beforeTickToLabelConversion, [this]);\n\t},\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\t// Convert ticks to strings\n\t\tvar tickOpts = me.options.ticks;\n\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n\t},\n\tafterTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.afterTickToLabelConversion, [this]);\n\t},\n\n\t//\n\n\tbeforeCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.beforeCalculateTickRotation, [this]);\n\t},\n\tcalculateTickRotation: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar numTicks = me.getTicks().length;\n\t\tvar minRotation = tickOpts.minRotation || 0;\n\t\tvar maxRotation = tickOpts.maxRotation;\n\t\tvar labelRotation = minRotation;\n\t\tvar labelSizes, maxLabelWidth, maxLabelHeight, maxWidth, tickWidth, maxHeight, maxLabelDiagonal;\n\n\t\tif (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n\t\t\tme.labelRotation = minRotation;\n\t\t\treturn;\n\t\t}\n\n\t\tlabelSizes = me._getLabelSizes();\n\t\tmaxLabelWidth = labelSizes.widest.width;\n\t\tmaxLabelHeight = labelSizes.highest.height - labelSizes.highest.offset;\n\n\t\t// Estimate the width of each grid based on the canvas width, the maximum\n\t\t// label width and the number of tick intervals\n\t\tmaxWidth = Math.min(me.maxWidth, me.chart.width - maxLabelWidth);\n\t\ttickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n\t\t// Allow 3 pixels x2 padding either side for label readability\n\t\tif (maxLabelWidth + 6 > tickWidth) {\n\t\t\ttickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n\t\t\tmaxHeight = me.maxHeight - getTickMarkLength(options.gridLines)\n\t\t\t\t- tickOpts.padding - getScaleLabelHeight(options.scaleLabel);\n\t\t\tmaxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n\t\t\tlabelRotation = helpers$1.toDegrees(Math.min(\n\t\t\t\tMath.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)),\n\t\t\t\tMath.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)\n\t\t\t));\n\t\t\tlabelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n\t\t}\n\n\t\tme.labelRotation = labelRotation;\n\t},\n\tafterCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.afterCalculateTickRotation, [this]);\n\t},\n\n\t//\n\n\tbeforeFit: function() {\n\t\thelpers$1.callback(this.options.beforeFit, [this]);\n\t},\n\tfit: function() {\n\t\tvar me = this;\n\t\t// Reset\n\t\tvar minSize = me.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\n\t\tvar chart = me.chart;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\t\tvar scaleLabelOpts = opts.scaleLabel;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar display = me._isVisible();\n\t\tvar isBottom = opts.position === 'bottom';\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t// Width\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth;\n\t\t} else if (display) {\n\t\t\tminSize.width = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// height\n\t\tif (!isHorizontal) {\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t} else if (display) {\n\t\t\tminSize.height = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// Don't bother fitting the ticks if we are not showing the labels\n\t\tif (tickOpts.display && display) {\n\t\t\tvar tickFonts = parseTickFontOptions(tickOpts);\n\t\t\tvar labelSizes = me._getLabelSizes();\n\t\t\tvar firstLabelSize = labelSizes.first;\n\t\t\tvar lastLabelSize = labelSizes.last;\n\t\t\tvar widestLabelSize = labelSizes.widest;\n\t\t\tvar highestLabelSize = labelSizes.highest;\n\t\t\tvar lineSpace = tickFonts.minor.lineHeight * 0.4;\n\t\t\tvar tickPadding = tickOpts.padding;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// A horizontal axis is more constrained by the height.\n\t\t\t\tvar isRotated = me.labelRotation !== 0;\n\t\t\t\tvar angleRadians = helpers$1.toRadians(me.labelRotation);\n\t\t\t\tvar cosRotation = Math.cos(angleRadians);\n\t\t\t\tvar sinRotation = Math.sin(angleRadians);\n\n\t\t\t\tvar labelHeight = sinRotation * widestLabelSize.width\n\t\t\t\t\t+ cosRotation * (highestLabelSize.height - (isRotated ? highestLabelSize.offset : 0))\n\t\t\t\t\t+ (isRotated ? 0 : lineSpace); // padding\n\n\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n\t\t\t\tvar offsetLeft = me.getPixelForTick(0) - me.left;\n\t\t\t\tvar offsetRight = me.right - me.getPixelForTick(me.getTicks().length - 1);\n\t\t\t\tvar paddingLeft, paddingRight;\n\n\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n\t\t\t\t// which means that the right padding is dominated by the font height\n\t\t\t\tif (isRotated) {\n\t\t\t\t\tpaddingLeft = isBottom ?\n\t\t\t\t\t\tcosRotation * firstLabelSize.width + sinRotation * firstLabelSize.offset :\n\t\t\t\t\t\tsinRotation * (firstLabelSize.height - firstLabelSize.offset);\n\t\t\t\t\tpaddingRight = isBottom ?\n\t\t\t\t\t\tsinRotation * (lastLabelSize.height - lastLabelSize.offset) :\n\t\t\t\t\t\tcosRotation * lastLabelSize.width + sinRotation * lastLabelSize.offset;\n\t\t\t\t} else {\n\t\t\t\t\tpaddingLeft = firstLabelSize.width / 2;\n\t\t\t\t\tpaddingRight = lastLabelSize.width / 2;\n\t\t\t\t}\n\n\t\t\t\t// Adjust padding taking into account changes in offsets\n\t\t\t\t// and add 3 px to move away from canvas edges\n\t\t\t\tme.paddingLeft = Math.max((paddingLeft - offsetLeft) * me.width / (me.width - offsetLeft), 0) + 3;\n\t\t\t\tme.paddingRight = Math.max((paddingRight - offsetRight) * me.width / (me.width - offsetRight), 0) + 3;\n\t\t\t} else {\n\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\n\t\t\t\t// dominant factor here, so get that length first and account for padding\n\t\t\t\tvar labelWidth = tickOpts.mirror ? 0 :\n\t\t\t\t\t// use lineSpace for consistency with horizontal axis\n\t\t\t\t\t// tickPadding is not implemented for horizontal\n\t\t\t\t\twidestLabelSize.width + tickPadding + lineSpace;\n\n\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + labelWidth);\n\n\t\t\t\tme.paddingTop = firstLabelSize.height / 2;\n\t\t\t\tme.paddingBottom = lastLabelSize.height / 2;\n\t\t\t}\n\t\t}\n\n\t\tme.handleMargins();\n\n\t\tif (isHorizontal) {\n\t\t\tme.width = me._length = chart.width - me.margins.left - me.margins.right;\n\t\t\tme.height = minSize.height;\n\t\t} else {\n\t\t\tme.width = minSize.width;\n\t\t\tme.height = me._length = chart.height - me.margins.top - me.margins.bottom;\n\t\t}\n\t},\n\n\t/**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n\thandleMargins: function() {\n\t\tvar me = this;\n\t\tif (me.margins) {\n\t\t\tme.margins.left = Math.max(me.paddingLeft, me.margins.left);\n\t\t\tme.margins.top = Math.max(me.paddingTop, me.margins.top);\n\t\t\tme.margins.right = Math.max(me.paddingRight, me.margins.right);\n\t\t\tme.margins.bottom = Math.max(me.paddingBottom, me.margins.bottom);\n\t\t}\n\t},\n\n\tafterFit: function() {\n\t\thelpers$1.callback(this.options.afterFit, [this]);\n\t},\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\tisFullWidth: function() {\n\t\treturn this.options.fullWidth;\n\t},\n\n\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n\tgetRightValue: function(rawValue) {\n\t\t// Null and undefined values first\n\t\tif (isNullOrUndef(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n\t\tif ((typeof rawValue === 'number' || rawValue instanceof Number) && !isFinite(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// If it is in fact an object, dive in one more level\n\t\tif (rawValue) {\n\t\t\tif (this.isHorizontal()) {\n\t\t\t\tif (rawValue.x !== undefined) {\n\t\t\t\t\treturn this.getRightValue(rawValue.x);\n\t\t\t\t}\n\t\t\t} else if (rawValue.y !== undefined) {\n\t\t\t\treturn this.getRightValue(rawValue.y);\n\t\t\t}\n\t\t}\n\n\t\t// Value is good, return it\n\t\treturn rawValue;\n\t},\n\n\t_convertTicksToLabels: function(ticks) {\n\t\tvar me = this;\n\t\tvar labels, i, ilen;\n\n\t\tme.ticks = ticks.map(function(tick) {\n\t\t\treturn tick.value;\n\t\t});\n\n\t\tme.beforeTickToLabelConversion();\n\n\t\t// New implementations should return the formatted tick labels but for BACKWARD\n\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\n\t\t// this method and supposed to contain only string values).\n\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\n\n\t\tme.afterTickToLabelConversion();\n\n\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tticks[i].label = labels[i];\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSizes: function() {\n\t\tvar me = this;\n\t\tvar labelSizes = me._labelSizes;\n\n\t\tif (!labelSizes) {\n\t\t\tme._labelSizes = labelSizes = computeLabelSizes(me.ctx, parseTickFontOptions(me.options.ticks), me.getTicks(), me.longestTextCache);\n\t\t\tme.longestLabelWidth = labelSizes.widest.width;\n\t\t}\n\n\t\treturn labelSizes;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_parseValue: function(value) {\n\t\tvar start, end, min, max;\n\n\t\tif (isArray(value)) {\n\t\t\tstart = +this.getRightValue(value[0]);\n\t\t\tend = +this.getRightValue(value[1]);\n\t\t\tmin = Math.min(start, end);\n\t\t\tmax = Math.max(start, end);\n\t\t} else {\n\t\t\tvalue = +this.getRightValue(value);\n\t\t\tstart = undefined;\n\t\t\tend = value;\n\t\t\tmin = value;\n\t\t\tmax = value;\n\t\t}\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tmax: max,\n\t\t\tstart: start,\n\t\t\tend: end\n\t\t};\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getScaleLabel: function(rawValue) {\n\t\tvar v = this._parseValue(rawValue);\n\t\tif (v.start !== undefined) {\n\t\t\treturn '[' + v.start + ', ' + v.end + ']';\n\t\t}\n\n\t\treturn +this.getRightValue(rawValue);\n\t},\n\n\t/**\n\t * Used to get the value to display in the tooltip for the data at the given index\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetLabelForIndex: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param value\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetPixelForValue: helpers$1.noop,\n\n\t/**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param pixel\n\t */\n\tgetValueForPixel: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForTick: function(index) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar numTicks = me._ticks.length;\n\t\tvar tickWidth = 1 / Math.max(numTicks - (offset ? 0 : 1), 1);\n\n\t\treturn index < 0 || index > numTicks - 1\n\t\t\t? null\n\t\t\t: me.getPixelForDecimal(index * tickWidth + (offset ? tickWidth / 2 : 0));\n\t},\n\n\t/**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForDecimal: function(decimal) {\n\t\tvar me = this;\n\n\t\tif (me._reversePixels) {\n\t\t\tdecimal = 1 - decimal;\n\t\t}\n\n\t\treturn me._startPixel + decimal * me._length;\n\t},\n\n\tgetDecimalForPixel: function(pixel) {\n\t\tvar decimal = (pixel - this._startPixel) / this._length;\n\t\treturn this._reversePixels ? 1 - decimal : decimal;\n\t},\n\n\t/**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetBasePixel: function() {\n\t\treturn this.getPixelForValue(this.getBaseValue());\n\t},\n\n\tgetBaseValue: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0;\n\t},\n\n\t/**\n\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\n\t * @private\n\t */\n\t_autoSkip: function(ticks) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar axisLength = me._length;\n\t\tvar ticksLimit = tickOpts.maxTicksLimit || axisLength / me._tickSize() + 1;\n\t\tvar majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n\t\tvar numMajorIndices = majorIndices.length;\n\t\tvar first = majorIndices[0];\n\t\tvar last = majorIndices[numMajorIndices - 1];\n\t\tvar i, ilen, spacing, avgMajorSpacing;\n\n\t\t// If there are too many major ticks to display them all\n\t\tif (numMajorIndices > ticksLimit) {\n\t\t\tskipMajors(ticks, majorIndices, numMajorIndices / ticksLimit);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\n\t\tspacing = calculateSpacing(majorIndices, ticks, axisLength, ticksLimit);\n\n\t\tif (numMajorIndices > 0) {\n\t\t\tfor (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n\t\t\t\tskip(ticks, spacing, majorIndices[i], majorIndices[i + 1]);\n\t\t\t}\n\t\t\tavgMajorSpacing = numMajorIndices > 1 ? (last - first) / (numMajorIndices - 1) : null;\n\t\t\tskip(ticks, spacing, helpers$1.isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\t\t\tskip(ticks, spacing, last, helpers$1.isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\t\tskip(ticks, spacing);\n\t\treturn nonSkipped(ticks);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_tickSize: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\t// Calculate space needed by label in axis direction.\n\t\tvar rot = helpers$1.toRadians(me.labelRotation);\n\t\tvar cos = Math.abs(Math.cos(rot));\n\t\tvar sin = Math.abs(Math.sin(rot));\n\n\t\tvar labelSizes = me._getLabelSizes();\n\t\tvar padding = optionTicks.autoSkipPadding || 0;\n\t\tvar w = labelSizes ? labelSizes.widest.width + padding : 0;\n\t\tvar h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n\t\t// Calculate space needed for 1 tick in axis direction.\n\t\treturn me.isHorizontal()\n\t\t\t? h * cos > w * sin ? w / cos : h / sin\n\t\t\t: h * sin < w * cos ? h / cos : w / sin;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_isVisible: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar display = me.options.display;\n\t\tvar i, ilen, meta;\n\n\t\tif (display !== 'auto') {\n\t\t\treturn !!display;\n\t\t}\n\n\t\t// When 'auto', the scale is visible if at least one associated dataset is visible.\n\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.xAxisID === me.id || meta.yAxisID === me.id) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeGridLineItems: function(chartArea) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar options = me.options;\n\t\tvar gridLines = options.gridLines;\n\t\tvar position = options.position;\n\t\tvar offsetGridLines = gridLines.offsetGridLines;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar ticksLength = ticks.length + (offsetGridLines ? 1 : 0);\n\n\t\tvar tl = getTickMarkLength(gridLines);\n\t\tvar items = [];\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar axisHalfWidth = axisWidth / 2;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar alignBorderValue = function(pixel) {\n\t\t\treturn alignPixel(chart, pixel, axisWidth);\n\t\t};\n\t\tvar borderValue, i, tick, lineValue, alignedLineValue;\n\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, lineWidth, lineColor, borderDash, borderDashOffset;\n\n\t\tif (position === 'top') {\n\t\t\tborderValue = alignBorderValue(me.bottom);\n\t\t\tty1 = me.bottom - tl;\n\t\t\tty2 = borderValue - axisHalfWidth;\n\t\t\ty1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n\t\t\ty2 = chartArea.bottom;\n\t\t} else if (position === 'bottom') {\n\t\t\tborderValue = alignBorderValue(me.top);\n\t\t\ty1 = chartArea.top;\n\t\t\ty2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n\t\t\tty1 = borderValue + axisHalfWidth;\n\t\t\tty2 = me.top + tl;\n\t\t} else if (position === 'left') {\n\t\t\tborderValue = alignBorderValue(me.right);\n\t\t\ttx1 = me.right - tl;\n\t\t\ttx2 = borderValue - axisHalfWidth;\n\t\t\tx1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n\t\t\tx2 = chartArea.right;\n\t\t} else {\n\t\t\tborderValue = alignBorderValue(me.left);\n\t\t\tx1 = chartArea.left;\n\t\t\tx2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n\t\t\ttx1 = borderValue + axisHalfWidth;\n\t\t\ttx2 = me.left + tl;\n\t\t}\n\n\t\tfor (i = 0; i < ticksLength; ++i) {\n\t\t\ttick = ticks[i] || {};\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(tick.label) && i < ticks.length) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (i === me.zeroLineIndex && options.offset === offsetGridLines) {\n\t\t\t\t// Draw the first index specially\n\t\t\t\tlineWidth = gridLines.zeroLineWidth;\n\t\t\t\tlineColor = gridLines.zeroLineColor;\n\t\t\t\tborderDash = gridLines.zeroLineBorderDash || [];\n\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset || 0.0;\n\t\t\t} else {\n\t\t\t\tlineWidth = valueAtIndexOrDefault(gridLines.lineWidth, i, 1);\n\t\t\t\tlineColor = valueAtIndexOrDefault(gridLines.color, i, 'rgba(0,0,0,0.1)');\n\t\t\t\tborderDash = gridLines.borderDash || [];\n\t\t\t\tborderDashOffset = gridLines.borderDashOffset || 0.0;\n\t\t\t}\n\n\t\t\tlineValue = getPixelForGridLine(me, tick._index || i, offsetGridLines);\n\n\t\t\t// Skip if the pixel is out of the range\n\t\t\tif (lineValue === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talignedLineValue = alignPixel(chart, lineValue, lineWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\ttx1 = tx2 = x1 = x2 = alignedLineValue;\n\t\t\t} else {\n\t\t\t\tty1 = ty2 = y1 = y2 = alignedLineValue;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\ttx1: tx1,\n\t\t\t\tty1: ty1,\n\t\t\t\ttx2: tx2,\n\t\t\t\tty2: ty2,\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2,\n\t\t\t\twidth: lineWidth,\n\t\t\t\tcolor: lineColor,\n\t\t\t\tborderDash: borderDash,\n\t\t\t\tborderDashOffset: borderDashOffset,\n\t\t\t});\n\t\t}\n\n\t\titems.ticksLength = ticksLength;\n\t\titems.borderValue = borderValue;\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeLabelItems: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar optionTicks = options.ticks;\n\t\tvar position = options.position;\n\t\tvar isMirrored = optionTicks.mirror;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar fonts = parseTickFontOptions(optionTicks);\n\t\tvar tickPadding = optionTicks.padding;\n\t\tvar tl = getTickMarkLength(options.gridLines);\n\t\tvar rotation = -helpers$1.toRadians(me.labelRotation);\n\t\tvar items = [];\n\t\tvar i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n\n\t\tif (position === 'top') {\n\t\t\ty = me.bottom - tl - tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'left';\n\t\t} else if (position === 'bottom') {\n\t\t\ty = me.top + tl + tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'right';\n\t\t} else if (position === 'left') {\n\t\t\tx = me.right - (isMirrored ? 0 : tl) - tickPadding;\n\t\t\ttextAlign = isMirrored ? 'left' : 'right';\n\t\t} else {\n\t\t\tx = me.left + (isMirrored ? 0 : tl) + tickPadding;\n\t\t\ttextAlign = isMirrored ? 'right' : 'left';\n\t\t}\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\ttick = ticks[i];\n\t\t\tlabel = tick.label;\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(label)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpixel = me.getPixelForTick(tick._index || i) + optionTicks.labelOffset;\n\t\t\tfont = tick.major ? fonts.major : fonts.minor;\n\t\t\tlineHeight = font.lineHeight;\n\t\t\tlineCount = isArray(label) ? label.length : 1;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tx = pixel;\n\t\t\t\ttextOffset = position === 'top'\n\t\t\t\t\t? ((!rotation ? 0.5 : 1) - lineCount) * lineHeight\n\t\t\t\t\t: (!rotation ? 0.5 : 0) * lineHeight;\n\t\t\t} else {\n\t\t\t\ty = pixel;\n\t\t\t\ttextOffset = (1 - lineCount) * lineHeight / 2;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\trotation: rotation,\n\t\t\t\tlabel: label,\n\t\t\t\tfont: font,\n\t\t\t\ttextOffset: textOffset,\n\t\t\t\ttextAlign: textAlign\n\t\t\t});\n\t\t}\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function(chartArea) {\n\t\tvar me = this;\n\t\tvar gridLines = me.options.gridLines;\n\n\t\tif (!gridLines.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar chart = me.chart;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));\n\t\tvar width, color, i, ilen, item;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\twidth = item.width;\n\t\t\tcolor = item.color;\n\n\t\t\tif (width && color) {\n\t\t\t\tctx.save();\n\t\t\t\tctx.lineWidth = width;\n\t\t\t\tctx.strokeStyle = color;\n\t\t\t\tif (ctx.setLineDash) {\n\t\t\t\t\tctx.setLineDash(item.borderDash);\n\t\t\t\t\tctx.lineDashOffset = item.borderDashOffset;\n\t\t\t\t}\n\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tif (gridLines.drawTicks) {\n\t\t\t\t\tctx.moveTo(item.tx1, item.ty1);\n\t\t\t\t\tctx.lineTo(item.tx2, item.ty2);\n\t\t\t\t}\n\n\t\t\t\tif (gridLines.drawOnChartArea) {\n\t\t\t\t\tctx.moveTo(item.x1, item.y1);\n\t\t\t\t\tctx.lineTo(item.x2, item.y2);\n\t\t\t\t}\n\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\n\t\tif (axisWidth) {\n\t\t\t// Draw the line at the edge of the axis\n\t\t\tvar firstLineWidth = axisWidth;\n\t\t\tvar lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, items.ticksLength - 1, 1);\n\t\t\tvar borderValue = items.borderValue;\n\t\t\tvar x1, x2, y1, y2;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tx1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\tx2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\ty1 = y2 = borderValue;\n\t\t\t} else {\n\t\t\t\ty1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\ty2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\tx1 = x2 = borderValue;\n\t\t\t}\n\n\t\t\tctx.lineWidth = axisWidth;\n\t\t\tctx.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0);\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1);\n\t\t\tctx.lineTo(x2, y2);\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\tif (!optionTicks.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar items = me._labelItems || (me._labelItems = me._computeLabelItems());\n\t\tvar i, j, ilen, jlen, item, tickFont, label, y;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\ttickFont = item.font;\n\n\t\t\t// Make sure we draw text in the correct color and font\n\t\t\tctx.save();\n\t\t\tctx.translate(item.x, item.y);\n\t\t\tctx.rotate(item.rotation);\n\t\t\tctx.font = tickFont.string;\n\t\t\tctx.fillStyle = tickFont.color;\n\t\t\tctx.textBaseline = 'middle';\n\t\t\tctx.textAlign = item.textAlign;\n\n\t\t\tlabel = item.label;\n\t\t\ty = item.textOffset;\n\t\t\tif (isArray(label)) {\n\t\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\t\t// We just make sure the multiline element is a string here..\n\t\t\t\t\tctx.fillText('' + label[j], 0, y);\n\t\t\t\t\ty += tickFont.lineHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tctx.fillText(label, 0, y);\n\t\t\t}\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar options = me.options;\n\t\tvar scaleLabel = options.scaleLabel;\n\n\t\tif (!scaleLabel.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar scaleLabelFontColor = valueOrDefault$a(scaleLabel.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar scaleLabelFont = helpers$1.options._parseFont(scaleLabel);\n\t\tvar scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding);\n\t\tvar halfLineHeight = scaleLabelFont.lineHeight / 2;\n\t\tvar position = options.position;\n\t\tvar rotation = 0;\n\t\tvar scaleLabelX, scaleLabelY;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tscaleLabelX = me.left + me.width / 2; // midpoint of the width\n\t\t\tscaleLabelY = position === 'bottom'\n\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\n\t\t} else {\n\t\t\tvar isLeft = position === 'left';\n\t\t\tscaleLabelX = isLeft\n\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\n\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\n\t\t\tscaleLabelY = me.top + me.height / 2;\n\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(scaleLabelX, scaleLabelY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\t\tctx.fillStyle = scaleLabelFontColor; // render in correct colour\n\t\tctx.font = scaleLabelFont.string;\n\t\tctx.fillText(scaleLabel.labelString, 0, 0);\n\t\tctx.restore();\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar me = this;\n\n\t\tif (!me._isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._drawGrid(chartArea);\n\t\tme._drawTitle();\n\t\tme._drawLabels();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_layers: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tz = opts.ticks && opts.ticks.z || 0;\n\t\tvar gz = opts.gridLines && opts.gridLines.z || 0;\n\n\t\tif (!me._isVisible() || tz === gz || me.draw !== me._draw) {\n\t\t\t// backward compatibility: draw has been overridden by custom scale\n\t\t\treturn [{\n\t\t\t\tz: tz,\n\t\t\t\tdraw: function() {\n\t\t\t\t\tme.draw.apply(me, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t}\n\n\t\treturn [{\n\t\t\tz: gz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawGrid.apply(me, arguments);\n\t\t\t\tme._drawTitle.apply(me, arguments);\n\t\t\t}\n\t\t}, {\n\t\t\tz: tz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawLabels.apply(me, arguments);\n\t\t\t}\n\t\t}];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getMatchingVisibleMetas: function(type) {\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\treturn me.chart._getSortedVisibleDatasetMetas()\n\t\t\t.filter(function(meta) {\n\t\t\t\treturn (!type || meta.type === type)\n\t\t\t\t\t&& (isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id);\n\t\t\t});\n\t}\n});\n\nScale.prototype._draw = Scale.prototype.draw;\n\nvar core_scale = Scale;\n\nvar isNullOrUndef$1 = helpers$1.isNullOrUndef;\n\nvar defaultConfig = {\n\tposition: 'bottom'\n};\n\nvar scale_category = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar min = ticksOpts.min;\n\t\tvar max = ticksOpts.max;\n\t\tvar minIndex = 0;\n\t\tvar maxIndex = labels.length - 1;\n\t\tvar findIndex;\n\n\t\tif (min !== undefined) {\n\t\t\t// user specified min value\n\t\t\tfindIndex = labels.indexOf(min);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tminIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tif (max !== undefined) {\n\t\t\t// user specified max value\n\t\t\tfindIndex = labels.indexOf(max);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tmaxIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tme.minIndex = minIndex;\n\t\tme.maxIndex = maxIndex;\n\t\tme.min = labels[minIndex];\n\t\tme.max = labels[maxIndex];\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar minIndex = me.minIndex;\n\t\tvar maxIndex = me.maxIndex;\n\n\t\t// If we are viewing some subset of labels, slice the original array\n\t\tme.ticks = (minIndex === 0 && maxIndex === labels.length - 1) ? labels : labels.slice(minIndex, maxIndex + 1);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\n\t\tif (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) {\n\t\t\treturn me.getRightValue(chart.data.datasets[datasetIndex].data[index]);\n\t\t}\n\n\t\treturn me._getLabels()[index];\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar ticks = me.ticks;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (!me.isHorizontal()) {\n\t\t\t// For backward compatibility, vertical category scale reverse is inverted.\n\t\t\tme._reversePixels = !me._reversePixels;\n\t\t}\n\n\t\tif (!ticks) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._startValue = me.minIndex - (offset ? 0.5 : 0);\n\t\tme._valueRange = Math.max(ticks.length - (offset ? 0 : 1), 1);\n\t},\n\n\t// Used to get data value locations.  Value can either be an index or a numerical value\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar valueCategory, labels, idx;\n\n\t\tif (!isNullOrUndef$1(index) && !isNullOrUndef$1(datasetIndex)) {\n\t\t\tvalue = me.chart.data.datasets[datasetIndex].data[index];\n\t\t}\n\n\t\t// If value is a data object, then index is the index in the data array,\n\t\t// not the index of the scale. We need to change that.\n\t\tif (!isNullOrUndef$1(value)) {\n\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t}\n\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\tlabels = me._getLabels();\n\t\t\tvalue = helpers$1.valueOrDefault(valueCategory, value);\n\t\t\tidx = labels.indexOf(value);\n\t\t\tindex = idx !== -1 ? idx : index;\n\t\t\tif (isNaN(index)) {\n\t\t\t\tindex = value;\n\t\t\t}\n\t\t}\n\t\treturn me.getPixelForDecimal((index - me._startValue) / me._valueRange);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticks;\n\t\treturn index < 0 || index > ticks.length - 1\n\t\t\t? null\n\t\t\t: this.getPixelForValue(ticks[index], index + this.minIndex);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar value = Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._valueRange);\n\t\treturn Math.min(Math.max(value, 0), me.ticks.length - 1);\n\t},\n\n\tgetBasePixel: function() {\n\t\treturn this.bottom;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults = defaultConfig;\nscale_category._defaults = _defaults;\n\nvar noop = helpers$1.noop;\nvar isNullOrUndef$2 = helpers$1.isNullOrUndef;\n\n/**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\n\t// \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar MIN_SPACING = 1e-14;\n\tvar stepSize = generationOptions.stepSize;\n\tvar unit = stepSize || 1;\n\tvar maxNumSpaces = generationOptions.maxTicks - 1;\n\tvar min = generationOptions.min;\n\tvar max = generationOptions.max;\n\tvar precision = generationOptions.precision;\n\tvar rmin = dataRange.min;\n\tvar rmax = dataRange.max;\n\tvar spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit;\n\tvar factor, niceMin, niceMax, numSpaces;\n\n\t// Beyond MIN_SPACING floating point numbers being to lose precision\n\t// such that we can't do the math necessary to generate ticks\n\tif (spacing < MIN_SPACING && isNullOrUndef$2(min) && isNullOrUndef$2(max)) {\n\t\treturn [rmin, rmax];\n\t}\n\n\tnumSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\tif (numSpaces > maxNumSpaces) {\n\t\t// If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n\t\tspacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit;\n\t}\n\n\tif (stepSize || isNullOrUndef$2(precision)) {\n\t\t// If a precision is not specified, calculate factor based on spacing\n\t\tfactor = Math.pow(10, helpers$1._decimalPlaces(spacing));\n\t} else {\n\t\t// If the user specified a precision, round to that number of decimal places\n\t\tfactor = Math.pow(10, precision);\n\t\tspacing = Math.ceil(spacing * factor) / factor;\n\t}\n\n\tniceMin = Math.floor(rmin / spacing) * spacing;\n\tniceMax = Math.ceil(rmax / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (!isNullOrUndef$2(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) {\n\t\t\tniceMin = min;\n\t\t}\n\t\tif (!isNullOrUndef$2(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) {\n\t\t\tniceMax = max;\n\t\t}\n\t}\n\n\tnumSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers$1.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n\t\tnumSpaces = Math.round(numSpaces);\n\t} else {\n\t\tnumSpaces = Math.ceil(numSpaces);\n\t}\n\n\tniceMin = Math.round(niceMin * factor) / factor;\n\tniceMax = Math.round(niceMax * factor) / factor;\n\tticks.push(isNullOrUndef$2(min) ? niceMin : min);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * factor) / factor);\n\t}\n\tticks.push(isNullOrUndef$2(max) ? niceMax : max);\n\n\treturn ticks;\n}\n\nvar scale_linearbase = core_scale.extend({\n\tgetRightValue: function(value) {\n\t\tif (typeof value === 'string') {\n\t\t\treturn +value;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, value);\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t// axis, they can manually override it\n\t\tif (tickOpts.beginAtZero) {\n\t\t\tvar minSign = helpers$1.sign(me.min);\n\t\t\tvar maxSign = helpers$1.sign(me.max);\n\n\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t// move the top up to 0\n\t\t\t\tme.max = 0;\n\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t// move the bottom down to 0\n\t\t\t\tme.min = 0;\n\t\t\t}\n\t\t}\n\n\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\tif (tickOpts.min !== undefined) {\n\t\t\tme.min = tickOpts.min;\n\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t} else {\n\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t}\n\t\t}\n\n\t\tif (tickOpts.max !== undefined) {\n\t\t\tme.max = tickOpts.max;\n\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t} else {\n\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t}\n\t\t}\n\n\t\tif (setMin !== setMax) {\n\t\t\t// We set the min or the max but not both.\n\t\t\t// So ensure that our range is good\n\t\t\t// Inverted or 0 length range can happen when\n\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\tif (me.min >= me.max) {\n\t\t\t\tif (setMin) {\n\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (me.min === me.max) {\n\t\t\tme.max++;\n\n\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\tme.min--;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar stepSize = tickOpts.stepSize;\n\t\tvar maxTicksLimit = tickOpts.maxTicksLimit;\n\t\tvar maxTicks;\n\n\t\tif (stepSize) {\n\t\t\tmaxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n\t\t} else {\n\t\t\tmaxTicks = me._computeTickLimit();\n\t\t\tmaxTicksLimit = maxTicksLimit || 11;\n\t\t}\n\n\t\tif (maxTicksLimit) {\n\t\t\tmaxTicks = Math.min(maxTicksLimit, maxTicks);\n\t\t}\n\n\t\treturn maxTicks;\n\t},\n\n\t_computeTickLimit: function() {\n\t\treturn Number.POSITIVE_INFINITY;\n\t},\n\n\thandleDirectionalChanges: noop,\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t// the graph. Make sure we always have at least 2 ticks\n\t\tvar maxTicks = me.getTickLimit();\n\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\tvar numericGeneratorOptions = {\n\t\t\tmaxTicks: maxTicks,\n\t\t\tmin: tickOpts.min,\n\t\t\tmax: tickOpts.max,\n\t\t\tprecision: tickOpts.precision,\n\t\t\tstepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\tme.handleDirectionalChanges();\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(me);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar ticks = me.getTicks();\n\t\tvar start = me.min;\n\t\tvar end = me.max;\n\t\tvar offset;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (me.options.offset && ticks.length) {\n\t\t\toffset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n\t\t\tstart -= offset;\n\t\t\tend += offset;\n\t\t}\n\t\tme._startValue = start;\n\t\tme._endValue = end;\n\t\tme._valueRange = end - start;\n\t}\n});\n\nvar defaultConfig$1 = {\n\tposition: 'left',\n\tticks: {\n\t\tcallback: core_ticks.formatters.linear\n\t}\n};\n\nvar DEFAULT_MIN = 0;\nvar DEFAULT_MAX = 1;\n\nfunction getOrCreateStack(stacks, stacked, meta) {\n\tvar key = [\n\t\tmeta.type,\n\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\tstacked === undefined && meta.stack === undefined ? meta.index : '',\n\t\tmeta.stack\n\t].join('.');\n\n\tif (stacks[key] === undefined) {\n\t\tstacks[key] = {\n\t\t\tpos: [],\n\t\t\tneg: []\n\t\t};\n\t}\n\n\treturn stacks[key];\n}\n\nfunction stackData(scale, stacks, meta, data) {\n\tvar opts = scale.options;\n\tvar stacked = opts.stacked;\n\tvar stack = getOrCreateStack(stacks, stacked, meta);\n\tvar pos = stack.pos;\n\tvar neg = stack.neg;\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tpos[i] = pos[i] || 0;\n\t\tneg[i] = neg[i] || 0;\n\n\t\tif (opts.relativePoints) {\n\t\t\tpos[i] = 100;\n\t\t} else if (value.min < 0 || value.max < 0) {\n\t\t\tneg[i] += value.min;\n\t\t} else {\n\t\t\tpos[i] += value.max;\n\t\t}\n\t}\n}\n\nfunction updateMinMax(scale, meta, data) {\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tscale.min = Math.min(scale.min, value.min);\n\t\tscale.max = Math.max(scale.max, value.max);\n\t}\n}\n\nvar scale_linear = scale_linearbase.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = me._getMatchingVisibleMetas();\n\t\tvar hasStacks = opts.stacked;\n\t\tvar stacks = {};\n\t\tvar ilen = metasets.length;\n\t\tvar i, meta, data, values;\n\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (i = 0; !hasStacks && i < ilen; ++i) {\n\t\t\t\tmeta = metasets[i];\n\t\t\t\thasStacks = meta.stack !== undefined;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\tdata = datasets[meta.index].data;\n\t\t\tif (hasStacks) {\n\t\t\t\tstackData(me, stacks, meta, data);\n\t\t\t} else {\n\t\t\t\tupdateMinMax(me, meta, data);\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.each(stacks, function(stackValues) {\n\t\t\tvalues = stackValues.pos.concat(stackValues.neg);\n\t\t\tme.min = Math.min(me.min, helpers$1.min(values));\n\t\t\tme.max = Math.max(me.max, helpers$1.max(values));\n\t\t});\n\n\t\tme.min = helpers$1.isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\tme.max = helpers$1.isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickFont;\n\n\t\tif (me.isHorizontal()) {\n\t\t\treturn Math.ceil(me.width / 40);\n\t\t}\n\t\ttickFont = helpers$1.options._parseFont(me.options.ticks);\n\t\treturn Math.ceil(me.height / tickFont.lineHeight);\n\t},\n\n\t// Called after the ticks are built. We need\n\thandleDirectionalChanges: function() {\n\t\tif (!this.isHorizontal()) {\n\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\tthis.ticks.reverse();\n\t\t}\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\t// Utils\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\treturn me.getPixelForDecimal((+me.getRightValue(value) - me._startValue) / me._valueRange);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\treturn this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticksAsNumbers;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$1 = defaultConfig$1;\nscale_linear._defaults = _defaults$1;\n\nvar valueOrDefault$b = helpers$1.valueOrDefault;\nvar log10 = helpers$1.math.log10;\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks$1(generationOptions, dataRange) {\n\tvar ticks = [];\n\n\tvar tickVal = valueOrDefault$b(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n\n\tvar endExp = Math.floor(log10(dataRange.max));\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n\tvar exp, significand;\n\n\tif (tickVal === 0) {\n\t\texp = Math.floor(log10(dataRange.minNotZero));\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n\t\tticks.push(tickVal);\n\t\ttickVal = significand * Math.pow(10, exp);\n\t} else {\n\t\texp = Math.floor(log10(tickVal));\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\n\t}\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n\tdo {\n\t\tticks.push(tickVal);\n\n\t\t++significand;\n\t\tif (significand === 10) {\n\t\t\tsignificand = 1;\n\t\t\t++exp;\n\t\t\tprecision = exp >= 0 ? 1 : precision;\n\t\t}\n\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n\tvar lastTick = valueOrDefault$b(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\nvar defaultConfig$2 = {\n\tposition: 'left',\n\n\t// label settings\n\tticks: {\n\t\tcallback: core_ticks.formatters.logarithmic\n\t}\n};\n\n// TODO(v3): change this to positiveOrDefault\nfunction nonNegativeOrDefault(value, defaultValue) {\n\treturn helpers$1.isFinite(value) && value >= 0 ? value : defaultValue;\n}\n\nvar scale_logarithmic = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tfunction IDMatches(meta) {\n\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t}\n\t\tvar datasetIndex, meta, value, data, i, ilen;\n\n\t\t// Calculate Range\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\t\tme.minNotZero = Number.POSITIVE_INFINITY;\n\n\t\tvar hasStacks = opts.stacked;\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\thasStacks = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (opts.stacked || hasStacks) {\n\t\t\tvar valuesPerStack = {};\n\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tvar key = [\n\t\t\t\t\tmeta.type,\n\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\tmeta.stack\n\t\t\t\t].join('.');\n\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalues[i] = values[i] || 0;\n\t\t\t\t\t\tvalues[i] += value.max;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thelpers$1.each(valuesPerStack, function(valuesForType) {\n\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\tvar minVal = helpers$1.min(valuesForType);\n\t\t\t\t\tvar maxVal = helpers$1.max(valuesForType);\n\t\t\t\t\tme.min = Math.min(me.min, minVal);\n\t\t\t\t\tme.max = Math.max(me.max, maxVal);\n\t\t\t\t}\n\t\t\t});\n\n\t\t} else {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tme.min = Math.min(value.min, me.min);\n\t\t\t\t\t\tme.max = Math.max(value.max, me.max);\n\n\t\t\t\t\t\tif (value.min !== 0) {\n\t\t\t\t\t\t\tme.minNotZero = Math.min(value.min, me.minNotZero);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tme.min = helpers$1.isFinite(me.min) ? me.min : null;\n\t\tme.max = helpers$1.isFinite(me.max) ? me.max : null;\n\t\tme.minNotZero = helpers$1.isFinite(me.minNotZero) ? me.minNotZero : null;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\tthis.handleTickRangeOptions();\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar DEFAULT_MIN = 1;\n\t\tvar DEFAULT_MAX = 10;\n\n\t\tme.min = nonNegativeOrDefault(tickOpts.min, me.min);\n\t\tme.max = nonNegativeOrDefault(tickOpts.max, me.max);\n\n\t\tif (me.min === me.max) {\n\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(log10(me.min)) - 1);\n\t\t\t\tme.max = Math.pow(10, Math.floor(log10(me.max)) + 1);\n\t\t\t} else {\n\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t}\n\t\t}\n\t\tif (me.min === null) {\n\t\t\tme.min = Math.pow(10, Math.floor(log10(me.max)) - 1);\n\t\t}\n\t\tif (me.max === null) {\n\t\t\tme.max = me.min !== 0\n\t\t\t\t? Math.pow(10, Math.floor(log10(me.min)) + 1)\n\t\t\t\t: DEFAULT_MAX;\n\t\t}\n\t\tif (me.minNotZero === null) {\n\t\t\tif (me.min > 0) {\n\t\t\t\tme.minNotZero = me.min;\n\t\t\t} else if (me.max < 1) {\n\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(log10(me.max)));\n\t\t\t} else {\n\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t}\n\t\t}\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = !me.isHorizontal();\n\n\t\tvar generationOptions = {\n\t\t\tmin: nonNegativeOrDefault(tickOpts.min),\n\t\t\tmax: nonNegativeOrDefault(tickOpts.max)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks$1(generationOptions, me);\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\treverse = !reverse;\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t\tif (reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tthis.tickValues = this.ticks.slice();\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(this);\n\t},\n\n\t// Get the correct tooltip label\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.tickValues;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t},\n\n\t/**\n\t * Returns the value of the first tick.\n\t * @param {number} value - The minimum not zero value.\n\t * @return {number} The first tick value.\n\t * @private\n\t */\n\t_getFirstTickValue: function(value) {\n\t\tvar exp = Math.floor(log10(value));\n\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\treturn significand * Math.pow(10, exp);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar start = me.min;\n\t\tvar offset = 0;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (start === 0) {\n\t\t\tstart = me._getFirstTickValue(me.minNotZero);\n\t\t\toffset = valueOrDefault$b(me.options.ticks.fontSize, core_defaults.global.defaultFontSize) / me._length;\n\t\t}\n\n\t\tme._startValue = log10(start);\n\t\tme._valueOffset = offset;\n\t\tme._valueRange = (log10(me.max) - log10(start)) / (1 - offset);\n\t},\n\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\tvar decimal = 0;\n\n\t\tvalue = +me.getRightValue(value);\n\n\t\tif (value > me.min && value > 0) {\n\t\t\tdecimal = (log10(value) - me._startValue) / me._valueRange + me._valueOffset;\n\t\t}\n\t\treturn me.getPixelForDecimal(decimal);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar decimal = me.getDecimalForPixel(pixel);\n\t\treturn decimal === 0 && me.min === 0\n\t\t\t? 0\n\t\t\t: Math.pow(10, me._startValue + (decimal - me._valueOffset) * me._valueRange);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$2 = defaultConfig$2;\nscale_logarithmic._defaults = _defaults$2;\n\nvar valueOrDefault$c = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault;\nvar resolve$4 = helpers$1.options.resolve;\n\nvar defaultConfig$3 = {\n\tdisplay: true,\n\n\t// Boolean - Whether to animate scaling the chart from the centre\n\tanimate: true,\n\tposition: 'chartArea',\n\n\tangleLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\tgridLines: {\n\t\tcircular: false\n\t},\n\n\t// label settings\n\tticks: {\n\t\t// Boolean - Show a backdrop to the scale label\n\t\tshowLabelBackdrop: true,\n\n\t\t// String - The colour of the label backdrop\n\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t// Number - The backdrop padding above & below the label in pixels\n\t\tbackdropPaddingY: 2,\n\n\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\tbackdropPaddingX: 2,\n\n\t\tcallback: core_ticks.formatters.linear\n\t},\n\n\tpointLabels: {\n\t\t// Boolean - if true, show point labels\n\t\tdisplay: true,\n\n\t\t// Number - Point label font size in pixels\n\t\tfontSize: 10,\n\n\t\t// Function - Used to convert point labels\n\t\tcallback: function(label) {\n\t\t\treturn label;\n\t\t}\n\t}\n};\n\nfunction getTickBackdropHeight(opts) {\n\tvar tickOpts = opts.ticks;\n\n\tif (tickOpts.display && opts.display) {\n\t\treturn valueOrDefault$c(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2;\n\t}\n\treturn 0;\n}\n\nfunction measureLabelSize(ctx, lineHeight, label) {\n\tif (helpers$1.isArray(label)) {\n\t\treturn {\n\t\t\tw: helpers$1.longestText(ctx, ctx.font, label),\n\t\t\th: label.length * lineHeight\n\t\t};\n\t}\n\n\treturn {\n\t\tw: ctx.measureText(label).width,\n\t\th: lineHeight\n\t};\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n\tif (angle === min || angle === max) {\n\t\treturn {\n\t\t\tstart: pos - (size / 2),\n\t\t\tend: pos + (size / 2)\n\t\t};\n\t} else if (angle < min || angle > max) {\n\t\treturn {\n\t\t\tstart: pos - size,\n\t\t\tend: pos\n\t\t};\n\t}\n\n\treturn {\n\t\tstart: pos,\n\t\tend: pos + size\n\t};\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n\t// Right, this is really confusing and there is a lot of maths going on here\n\t// The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t//\n\t// Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t//\n\t// Solution:\n\t//\n\t// We assume the radius of the polygon is half the size of the canvas at first\n\t// at each index we check if the text overlaps.\n\t//\n\t// Where it does, we store that angle and that index.\n\t//\n\t// After finding the largest index and angle we calculate how much we need to remove\n\t// from the shape radius to move the point inwards by that x.\n\t//\n\t// We average the left and right distances to get the maximum shape radius that can fit in the box\n\t// along with labels.\n\t//\n\t// Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t// on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t//\n\t// This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t// and position it in the most space efficient manner\n\t//\n\t// https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n\tvar plFont = helpers$1.options._parseFont(scale.options.pointLabels);\n\n\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\tvar furthestLimits = {\n\t\tl: 0,\n\t\tr: scale.width,\n\t\tt: 0,\n\t\tb: scale.height - scale.paddingTop\n\t};\n\tvar furthestAngles = {};\n\tvar i, textSize, pointPosition;\n\n\tscale.ctx.font = plFont.string;\n\tscale._pointLabelSizes = [];\n\n\tvar valueCount = scale.chart.data.labels.length;\n\tfor (i = 0; i < valueCount; i++) {\n\t\tpointPosition = scale.getPointPosition(i, scale.drawingArea + 5);\n\t\ttextSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i]);\n\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians) % 360;\n\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\tfurthestAngles.l = angleRadians;\n\t\t}\n\n\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\tfurthestAngles.r = angleRadians;\n\t\t}\n\n\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\tfurthestAngles.t = angleRadians;\n\t\t}\n\n\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\tfurthestAngles.b = angleRadians;\n\t\t}\n\t}\n\n\tscale.setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n}\n\nfunction getTextAlignForAngle(angle) {\n\tif (angle === 0 || angle === 180) {\n\t\treturn 'center';\n\t} else if (angle < 180) {\n\t\treturn 'left';\n\t}\n\n\treturn 'right';\n}\n\nfunction fillText(ctx, text, position, lineHeight) {\n\tvar y = position.y + lineHeight / 2;\n\tvar i, ilen;\n\n\tif (helpers$1.isArray(text)) {\n\t\tfor (i = 0, ilen = text.length; i < ilen; ++i) {\n\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\ty += lineHeight;\n\t\t}\n\t} else {\n\t\tctx.fillText(text, position.x, y);\n\t}\n}\n\nfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\tif (angle === 90 || angle === 270) {\n\t\tposition.y -= (textSize.h / 2);\n\t} else if (angle > 270 || angle < 90) {\n\t\tposition.y -= textSize.h;\n\t}\n}\n\nfunction drawPointLabels(scale) {\n\tvar ctx = scale.ctx;\n\tvar opts = scale.options;\n\tvar pointLabelOpts = opts.pointLabels;\n\tvar tickBackdropHeight = getTickBackdropHeight(opts);\n\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\tvar plFont = helpers$1.options._parseFont(pointLabelOpts);\n\n\tctx.save();\n\n\tctx.font = plFont.string;\n\tctx.textBaseline = 'middle';\n\n\tfor (var i = scale.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t// Extra pixels out for some label spacing\n\t\tvar extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5);\n\n\t\t// Keep this in loop since we may support array properties here\n\t\tvar pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor);\n\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians);\n\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\tfillText(ctx, scale.pointLabels[i], pointLabelPosition, plFont.lineHeight);\n\t}\n\tctx.restore();\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\tvar ctx = scale.ctx;\n\tvar circular = gridLineOpts.circular;\n\tvar valueCount = scale.chart.data.labels.length;\n\tvar lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1);\n\tvar lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1);\n\tvar pointPosition;\n\n\tif ((!circular && !valueCount) || !lineColor || !lineWidth) {\n\t\treturn;\n\t}\n\n\tctx.save();\n\tctx.strokeStyle = lineColor;\n\tctx.lineWidth = lineWidth;\n\tif (ctx.setLineDash) {\n\t\tctx.setLineDash(gridLineOpts.borderDash || []);\n\t\tctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0;\n\t}\n\n\tctx.beginPath();\n\tif (circular) {\n\t\t// Draw circular arcs between the points\n\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t} else {\n\t\t// Draw straight lines connecting each index\n\t\tpointPosition = scale.getPointPosition(0, radius);\n\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t}\n\t}\n\tctx.closePath();\n\tctx.stroke();\n\tctx.restore();\n}\n\nfunction numberOrZero(param) {\n\treturn helpers$1.isNumber(param) ? param : 0;\n}\n\nvar scale_radialLinear = scale_linearbase.extend({\n\tsetDimensions: function() {\n\t\tvar me = this;\n\n\t\t// Set the unconstrained dimension before label rotation\n\t\tme.width = me.maxWidth;\n\t\tme.height = me.maxHeight;\n\t\tme.paddingTop = getTickBackdropHeight(me.options) / 2;\n\t\tme.xCenter = Math.floor(me.width / 2);\n\t\tme.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n\t\tme.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar min = Number.POSITIVE_INFINITY;\n\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\thelpers$1.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\treturn Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\n\t\tscale_linearbase.prototype.convertTicksToLabels.call(me);\n\n\t\t// Point labels\n\t\tme.pointLabels = me.chart.data.labels.map(function() {\n\t\t\tvar label = helpers$1.callback(me.options.pointLabels.callback, arguments, me);\n\t\t\treturn label || label === 0 ? label : '';\n\t\t});\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\n\t\tif (opts.display && opts.pointLabels.display) {\n\t\t\tfitWithPointLabels(me);\n\t\t} else {\n\t\t\tme.setCenterPoint(0, 0, 0, 0);\n\t\t}\n\t},\n\n\t/**\n\t * Set radius reductions and determine new radius and center point\n\t * @private\n\t */\n\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\tvar me = this;\n\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n\n\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\tme.drawingArea = Math.min(\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t},\n\n\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\tvar me = this;\n\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\tvar maxTop = topMovement + me.drawingArea;\n\t\tvar maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea;\n\n\t\tme.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left);\n\t\tme.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop);\n\t},\n\n\tgetIndexAngle: function(index) {\n\t\tvar chart = this.chart;\n\t\tvar angleMultiplier = 360 / chart.data.labels.length;\n\t\tvar options = chart.options || {};\n\t\tvar startAngle = options.startAngle || 0;\n\n\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\tvar angle = (index * angleMultiplier + startAngle) % 360;\n\n\t\treturn (angle < 0 ? angle + 360 : angle) * Math.PI * 2 / 360;\n\t},\n\n\tgetDistanceFromCenterForValue: function(value) {\n\t\tvar me = this;\n\n\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// Take into account half font size + the yPadding of the top value\n\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\tif (me.options.ticks.reverse) {\n\t\t\treturn (me.max - value) * scalingFactor;\n\t\t}\n\t\treturn (value - me.min) * scalingFactor;\n\t},\n\n\tgetPointPosition: function(index, distanceFromCenter) {\n\t\tvar me = this;\n\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\treturn {\n\t\t\tx: Math.cos(thisAngle) * distanceFromCenter + me.xCenter,\n\t\t\ty: Math.sin(thisAngle) * distanceFromCenter + me.yCenter\n\t\t};\n\t},\n\n\tgetPointPositionForValue: function(index, value) {\n\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t},\n\n\tgetBasePosition: function(index) {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.getPointPositionForValue(index || 0,\n\t\t\tme.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar angleLineOpts = opts.angleLines;\n\t\tvar lineWidth = valueOrDefault$c(angleLineOpts.lineWidth, gridLineOpts.lineWidth);\n\t\tvar lineColor = valueOrDefault$c(angleLineOpts.color, gridLineOpts.color);\n\t\tvar i, offset, position;\n\n\t\tif (opts.pointLabels.display) {\n\t\t\tdrawPointLabels(me);\n\t\t}\n\n\t\tif (gridLineOpts.display) {\n\t\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\t\tif (index !== 0) {\n\t\t\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, offset, index);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (angleLineOpts.display && lineWidth && lineColor) {\n\t\t\tctx.save();\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = lineColor;\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\tctx.setLineDash(resolve$4([angleLineOpts.borderDash, gridLineOpts.borderDash, []]));\n\t\t\t\tctx.lineDashOffset = resolve$4([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]);\n\t\t\t}\n\n\t\t\tfor (i = me.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t\t\toffset = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n\t\t\t\tposition = me.getPointPosition(i, offset);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(me.xCenter, me.yCenter);\n\t\t\t\tctx.lineTo(position.x, position.y);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\tif (!tickOpts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAngle = me.getIndexAngle(0);\n\t\tvar tickFont = helpers$1.options._parseFont(tickOpts);\n\t\tvar tickFontColor = valueOrDefault$c(tickOpts.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar offset, width;\n\n\t\tctx.save();\n\t\tctx.font = tickFont.string;\n\t\tctx.translate(me.xCenter, me.yCenter);\n\t\tctx.rotate(startAngle);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\tif (index === 0 && !tickOpts.reverse) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\twidth = ctx.measureText(label).width;\n\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\n\t\t\t\tctx.fillRect(\n\t\t\t\t\t-width / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t-offset - tickFont.size / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\twidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\ttickFont.size + tickOpts.backdropPaddingY * 2\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tctx.fillStyle = tickFontColor;\n\t\t\tctx.fillText(label, 0, -offset);\n\t\t});\n\n\t\tctx.restore();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: helpers$1.noop\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$3 = defaultConfig$3;\nscale_radialLinear._defaults = _defaults$3;\n\nvar deprecated$1 = helpers$1._deprecated;\nvar resolve$5 = helpers$1.options.resolve;\nvar valueOrDefault$d = helpers$1.valueOrDefault;\n\n// Integer constants are from the ES6 spec.\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nvar INTERVALS = {\n\tmillisecond: {\n\t\tcommon: true,\n\t\tsize: 1,\n\t\tsteps: 1000\n\t},\n\tsecond: {\n\t\tcommon: true,\n\t\tsize: 1000,\n\t\tsteps: 60\n\t},\n\tminute: {\n\t\tcommon: true,\n\t\tsize: 60000,\n\t\tsteps: 60\n\t},\n\thour: {\n\t\tcommon: true,\n\t\tsize: 3600000,\n\t\tsteps: 24\n\t},\n\tday: {\n\t\tcommon: true,\n\t\tsize: 86400000,\n\t\tsteps: 30\n\t},\n\tweek: {\n\t\tcommon: false,\n\t\tsize: 604800000,\n\t\tsteps: 4\n\t},\n\tmonth: {\n\t\tcommon: true,\n\t\tsize: 2.628e9,\n\t\tsteps: 12\n\t},\n\tquarter: {\n\t\tcommon: false,\n\t\tsize: 7.884e9,\n\t\tsteps: 4\n\t},\n\tyear: {\n\t\tcommon: true,\n\t\tsize: 3.154e10\n\t}\n};\n\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n\treturn a - b;\n}\n\nfunction arrayUnique(items) {\n\tvar hash = {};\n\tvar out = [];\n\tvar i, ilen, item;\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\titem = items[i];\n\t\tif (!hash[item]) {\n\t\t\thash[item] = true;\n\t\t\tout.push(item);\n\t\t}\n\t}\n\n\treturn out;\n}\n\nfunction getMin(options) {\n\treturn helpers$1.valueOrDefault(options.time.min, options.ticks.min);\n}\n\nfunction getMax(options) {\n\treturn helpers$1.valueOrDefault(options.time.max, options.ticks.max);\n}\n\n/**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {string} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\nfunction buildLookupTable(timestamps, min, max, distribution) {\n\tif (distribution === 'linear' || !timestamps.length) {\n\t\treturn [\n\t\t\t{time: min, pos: 0},\n\t\t\t{time: max, pos: 1}\n\t\t];\n\t}\n\n\tvar table = [];\n\tvar items = [min];\n\tvar i, ilen, prev, curr, next;\n\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\tcurr = timestamps[i];\n\t\tif (curr > min && curr < max) {\n\t\t\titems.push(curr);\n\t\t}\n\t}\n\n\titems.push(max);\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\tnext = items[i + 1];\n\t\tprev = items[i - 1];\n\t\tcurr = items[i];\n\n\t\t// only add points that breaks the scale linearity\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\n\t\t}\n\t}\n\n\treturn table;\n}\n\n// @see adapted from https://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\nfunction lookup(table, key, value) {\n\tvar lo = 0;\n\tvar hi = table.length - 1;\n\tvar mid, i0, i1;\n\n\twhile (lo >= 0 && lo <= hi) {\n\t\tmid = (lo + hi) >> 1;\n\t\ti0 = table[mid - 1] || null;\n\t\ti1 = table[mid];\n\n\t\tif (!i0) {\n\t\t\t// given value is outside table (before first item)\n\t\t\treturn {lo: null, hi: i1};\n\t\t} else if (i1[key] < value) {\n\t\t\tlo = mid + 1;\n\t\t} else if (i0[key] > value) {\n\t\t\thi = mid - 1;\n\t\t} else {\n\t\t\treturn {lo: i0, hi: i1};\n\t\t}\n\t}\n\n\t// given value is outside table (after last item)\n\treturn {lo: i1, hi: null};\n}\n\n/**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\nfunction interpolate$1(table, skey, sval, tkey) {\n\tvar range = lookup(table, skey, sval);\n\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n\tvar span = next[skey] - prev[skey];\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\n\n\treturn prev[tkey] + offset;\n}\n\nfunction toTimestamp(scale, input) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options.time;\n\tvar parser = options.parser;\n\tvar format = parser || options.format;\n\tvar value = input;\n\n\tif (typeof parser === 'function') {\n\t\tvalue = parser(value);\n\t}\n\n\t// Only parse if its not a timestamp already\n\tif (!helpers$1.isFinite(value)) {\n\t\tvalue = typeof format === 'string'\n\t\t\t? adapter.parse(value, format)\n\t\t\t: adapter.parse(value);\n\t}\n\n\tif (value !== null) {\n\t\treturn +value;\n\t}\n\n\t// Labels are in an incompatible format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option for parsing.\n\tif (!parser && typeof format === 'function') {\n\t\tvalue = format(input);\n\n\t\t// `format` could return something else than a timestamp, if so, parse it\n\t\tif (!helpers$1.isFinite(value)) {\n\t\t\tvalue = adapter.parse(value);\n\t\t}\n\t}\n\n\treturn value;\n}\n\nfunction parse(scale, input) {\n\tif (helpers$1.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = toTimestamp(scale, scale.getRightValue(input));\n\tif (value === null) {\n\t\treturn value;\n\t}\n\n\tif (options.round) {\n\t\tvalue = +scale._adapter.startOf(value, options.round);\n\t}\n\n\treturn value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n\tvar ilen = UNITS.length;\n\tvar i, interval, factor;\n\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n\t\tinterval = INTERVALS[UNITS[i]];\n\t\tfactor = interval.steps ? interval.steps : MAX_INTEGER;\n\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n\n\treturn UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n\tvar i, unit;\n\n\tfor (i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n\t\tunit = UNITS[i];\n\t\tif (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n\t\t\treturn unit;\n\t\t}\n\t}\n\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n\t\tif (INTERVALS[UNITS[i]].common) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n}\n\n/**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\nfunction generate(scale, min, max, capacity) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options;\n\tvar timeOpts = options.time;\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n\tvar stepSize = resolve$5([timeOpts.stepSize, timeOpts.unitStepSize, 1]);\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n\tvar first = min;\n\tvar ticks = [];\n\tvar time;\n\n\t// For 'week' unit, handle the first day of week option\n\tif (weekday) {\n\t\tfirst = +adapter.startOf(first, 'isoWeek', weekday);\n\t}\n\n\t// Align first ticks on unit\n\tfirst = +adapter.startOf(first, weekday ? 'day' : minor);\n\n\t// Prevent browser from freezing in case user options request millions of milliseconds\n\tif (adapter.diff(max, min, minor) > 100000 * stepSize) {\n\t\tthrow min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor;\n\t}\n\n\tfor (time = first; time < max; time = +adapter.add(time, stepSize, minor)) {\n\t\tticks.push(time);\n\t}\n\n\tif (time === max || options.bounds === 'ticks') {\n\t\tticks.push(time);\n\t}\n\n\treturn ticks;\n}\n\n/**\n * Returns the start and end offsets from edges in the form of {start, end}\n * where each value is a relative width to the scale and ranges between 0 and 1.\n * They add extra margins on the both sides by scaling down the original scale.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar start = 0;\n\tvar end = 0;\n\tvar first, last;\n\n\tif (options.offset && ticks.length) {\n\t\tfirst = interpolate$1(table, 'time', ticks[0], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tstart = 1 - first;\n\t\t} else {\n\t\t\tstart = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2;\n\t\t}\n\t\tlast = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tend = last;\n\t\t} else {\n\t\t\tend = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;\n\t\t}\n\t}\n\n\treturn {start: start, end: end, factor: 1 / (start + 1 + end)};\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n\tvar adapter = scale._adapter;\n\tvar first = +adapter.startOf(ticks[0].value, majorUnit);\n\tvar last = ticks[ticks.length - 1].value;\n\tvar major, index;\n\n\tfor (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n\t\tindex = map[major];\n\t\tif (index >= 0) {\n\t\t\tticks[index].major = true;\n\t\t}\n\t}\n\treturn ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n\tvar ticks = [];\n\tvar map = {};\n\tvar ilen = values.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = values[i];\n\t\tmap[value] = i;\n\n\t\tticks.push({\n\t\t\tvalue: value,\n\t\t\tmajor: false\n\t\t});\n\t}\n\n\t// We set the major ticks separately from the above loop because calling startOf for every tick\n\t// is expensive when there is a large number of ticks\n\treturn (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar defaultConfig$4 = {\n\tposition: 'bottom',\n\n\t/**\n\t * Data distribution along the scale:\n\t * - 'linear': data are spread according to their time (distances can vary),\n\t * - 'series': data are spread at the same distance from each other.\n\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t * @since 2.7.0\n\t */\n\tdistribution: 'linear',\n\n\t/**\n\t * Scale boundary strategy (bypassed by min/max time options)\n\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t * @since 2.7.0\n\t */\n\tbounds: 'data',\n\n\tadapters: {},\n\ttime: {\n\t\tparser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\tround: false, // none, or override with week, month, year, etc.\n\t\tdisplayFormat: false, // DEPRECATED\n\t\tisoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/\n\t\tminUnit: 'millisecond',\n\t\tdisplayFormats: {}\n\t},\n\tticks: {\n\t\tautoSkip: false,\n\n\t\t/**\n\t\t * Ticks generation input values:\n\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tsource: 'auto',\n\n\t\tmajor: {\n\t\t\tenabled: false\n\t\t}\n\t}\n};\n\nvar scale_time = core_scale.extend({\n\tinitialize: function() {\n\t\tthis.mergeTicksOptions();\n\t\tcore_scale.prototype.initialize.call(this);\n\t},\n\n\tupdate: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar time = options.time || (options.time = {});\n\t\tvar adapter = me._adapter = new core_adapters._date(options.adapters.date);\n\n\t\t// DEPRECATIONS: output a message only one time per update\n\t\tdeprecated$1('time scale', time.format, 'time.format', 'time.parser');\n\t\tdeprecated$1('time scale', time.min, 'time.min', 'ticks.min');\n\t\tdeprecated$1('time scale', time.max, 'time.max', 'ticks.max');\n\n\t\t// Backward compatibility: before introducing adapter, `displayFormats` was\n\t\t// supposed to contain *all* unit/string pairs but this can't be resolved\n\t\t// when loading the scale (adapters are loaded afterward), so let's populate\n\t\t// missing formats on update\n\t\thelpers$1.mergeIf(time.displayFormats, adapter.formats());\n\n\t\treturn core_scale.prototype.update.apply(me, arguments);\n\t},\n\n\t/**\n\t * Allows data to be referenced via 't' attribute\n\t */\n\tgetRightValue: function(rawValue) {\n\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\trawValue = rawValue.t;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, rawValue);\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar unit = options.time.unit || 'day';\n\t\tvar min = MAX_INTEGER;\n\t\tvar max = MIN_INTEGER;\n\t\tvar timestamps = [];\n\t\tvar datasets = [];\n\t\tvar labels = [];\n\t\tvar i, j, ilen, jlen, data, timestamp, labelsAdded;\n\t\tvar dataLabels = me._getLabels();\n\n\t\tfor (i = 0, ilen = dataLabels.length; i < ilen; ++i) {\n\t\t\tlabels.push(parse(me, dataLabels[i]));\n\t\t}\n\n\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\tif (helpers$1.isObject(data[0])) {\n\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\ttimestamp = parse(me, data[j]);\n\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t\tif (!labelsAdded) {\n\t\t\t\t\t\ttimestamps = timestamps.concat(labels);\n\t\t\t\t\t\tlabelsAdded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdatasets[i] = [];\n\t\t\t}\n\t\t}\n\n\t\tif (labels.length) {\n\t\t\tmin = Math.min(min, labels[0]);\n\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t}\n\n\t\tif (timestamps.length) {\n\t\t\ttimestamps = ilen > 1 ? arrayUnique(timestamps).sort(sorter) : timestamps.sort(sorter);\n\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t}\n\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\tmin = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min;\n\t\tmax = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max;\n\n\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\tme.min = Math.min(min, max);\n\t\tme.max = Math.max(min + 1, max);\n\n\t\t// PRIVATE\n\t\tme._table = [];\n\t\tme._timestamps = {\n\t\t\tdata: timestamps,\n\t\t\tdatasets: datasets,\n\t\t\tlabels: labels\n\t\t};\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar timeOpts = options.time;\n\t\tvar timestamps = me._timestamps;\n\t\tvar ticks = [];\n\t\tvar capacity = me.getLabelCapacity(min);\n\t\tvar source = tickOpts.source;\n\t\tvar distribution = options.distribution;\n\t\tvar i, ilen, timestamp;\n\n\t\tif (source === 'data' || (source === 'auto' && distribution === 'series')) {\n\t\t\ttimestamps = timestamps.data;\n\t\t} else if (source === 'labels') {\n\t\t\ttimestamps = timestamps.labels;\n\t\t} else {\n\t\t\ttimestamps = generate(me, min, max, capacity);\n\t\t}\n\n\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\tmin = timestamps[0];\n\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t}\n\n\t\t// Enforce limits with user min/max options\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// Remove ticks outside the min/max range\n\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\ttimestamp = timestamps[i];\n\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\tticks.push(timestamp);\n\t\t\t}\n\t\t}\n\n\t\tme.min = min;\n\t\tme.max = max;\n\n\t\t// PRIVATE\n\t\t// determineUnitForFormatting relies on the number of ticks so we don't use it when\n\t\t// autoSkip is enabled because we don't yet know what the final number of ticks will be\n\t\tme._unit = timeOpts.unit || (tickOpts.autoSkip\n\t\t\t? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, capacity)\n\t\t\t: determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n\t\tme._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined\n\t\t\t: determineMajorUnit(me._unit);\n\t\tme._table = buildLookupTable(me._timestamps.data, min, max, distribution);\n\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\n\t\treturn ticksFromTimestamps(me, ticks, me._majorUnit);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar data = me.chart.data;\n\t\tvar timeOpts = me.options.time;\n\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\tif (helpers$1.isObject(value)) {\n\t\t\tlabel = me.getRightValue(value);\n\t\t}\n\t\tif (timeOpts.tooltipFormat) {\n\t\t\treturn adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat);\n\t\t}\n\t\tif (typeof label === 'string') {\n\t\t\treturn label;\n\t\t}\n\t\treturn adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime);\n\t},\n\n\t/**\n\t * Function to format an individual tick mark\n\t * @private\n\t */\n\ttickFormatFunction: function(time, index, ticks, format) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar formats = options.time.displayFormats;\n\t\tvar minorFormat = formats[me._unit];\n\t\tvar majorUnit = me._majorUnit;\n\t\tvar majorFormat = formats[majorUnit];\n\t\tvar tick = ticks[index];\n\t\tvar tickOpts = options.ticks;\n\t\tvar major = majorUnit && majorFormat && tick && tick.major;\n\t\tvar label = adapter.format(time, format ? format : major ? majorFormat : minorFormat);\n\t\tvar nestedTickOpts = major ? tickOpts.major : tickOpts.minor;\n\t\tvar formatter = resolve$5([\n\t\t\tnestedTickOpts.callback,\n\t\t\tnestedTickOpts.userCallback,\n\t\t\ttickOpts.callback,\n\t\t\ttickOpts.userCallback\n\t\t]);\n\n\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t},\n\n\tconvertTicksToLabels: function(ticks) {\n\t\tvar labels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tlabels.push(this.tickFormatFunction(ticks[i].value, i, ticks));\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetPixelForOffset: function(time) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = interpolate$1(me._table, 'time', time, 'pos');\n\t\treturn me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n\t},\n\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar time = null;\n\n\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t}\n\n\t\tif (time === null) {\n\t\t\ttime = parse(me, value);\n\t\t}\n\n\t\tif (time !== null) {\n\t\t\treturn me.getPixelForOffset(time);\n\t\t}\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.getTicks();\n\t\treturn index >= 0 && index < ticks.length ?\n\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\tnull;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n\t\tvar time = interpolate$1(me._table, 'pos', pos, 'time');\n\n\t\t// DEPRECATION, we should return time directly\n\t\treturn me._adapter._create(time);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSize: function(label) {\n\t\tvar me = this;\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\tvar angle = helpers$1.toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n\t\tvar cosRotation = Math.cos(angle);\n\t\tvar sinRotation = Math.sin(angle);\n\t\tvar tickFontSize = valueOrDefault$d(ticksOpts.fontSize, core_defaults.global.defaultFontSize);\n\n\t\treturn {\n\t\t\tw: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n\t\t\th: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n\t\t};\n\t},\n\n\t/**\n\t * Crude approximation of what the label width might be\n\t * @private\n\t */\n\tgetLabelWidth: function(label) {\n\t\treturn this._getLabelSize(label).w;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetLabelCapacity: function(exampleTime) {\n\t\tvar me = this;\n\t\tvar timeOpts = me.options.time;\n\t\tvar displayFormats = timeOpts.displayFormats;\n\n\t\t// pick the longest format (milliseconds) for guestimation\n\t\tvar format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\t\tvar exampleLabel = me.tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n\t\tvar size = me._getLabelSize(exampleLabel);\n\t\tvar capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h);\n\n\t\tif (me.options.offset) {\n\t\t\tcapacity--;\n\t\t}\n\n\t\treturn capacity > 0 ? capacity : 1;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$4 = defaultConfig$4;\nscale_time._defaults = _defaults$4;\n\nvar scales = {\n\tcategory: scale_category,\n\tlinear: scale_linear,\n\tlogarithmic: scale_logarithmic,\n\tradialLinear: scale_radialLinear,\n\ttime: scale_time\n};\n\nvar moment = createCommonjsModule(function (module, exports) {\n(function (global, factory) {\n     module.exports = factory() ;\n}(commonjsGlobal, (function () {\n    var hookCallback;\n\n    function hooks () {\n        return hookCallback.apply(null, arguments);\n    }\n\n    // This is done to register the method called with moment()\n    // without creating circular dependencies.\n    function setHookCallback (callback) {\n        hookCallback = callback;\n    }\n\n    function isArray(input) {\n        return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n    }\n\n    function isObject(input) {\n        // IE8 will treat undefined and null as object if it wasn't for\n        // input != null\n        return input != null && Object.prototype.toString.call(input) === '[object Object]';\n    }\n\n    function isObjectEmpty(obj) {\n        if (Object.getOwnPropertyNames) {\n            return (Object.getOwnPropertyNames(obj).length === 0);\n        } else {\n            var k;\n            for (k in obj) {\n                if (obj.hasOwnProperty(k)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    }\n\n    function isUndefined(input) {\n        return input === void 0;\n    }\n\n    function isNumber(input) {\n        return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n    }\n\n    function isDate(input) {\n        return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n    }\n\n    function map(arr, fn) {\n        var res = [], i;\n        for (i = 0; i < arr.length; ++i) {\n            res.push(fn(arr[i], i));\n        }\n        return res;\n    }\n\n    function hasOwnProp(a, b) {\n        return Object.prototype.hasOwnProperty.call(a, b);\n    }\n\n    function extend(a, b) {\n        for (var i in b) {\n            if (hasOwnProp(b, i)) {\n                a[i] = b[i];\n            }\n        }\n\n        if (hasOwnProp(b, 'toString')) {\n            a.toString = b.toString;\n        }\n\n        if (hasOwnProp(b, 'valueOf')) {\n            a.valueOf = b.valueOf;\n        }\n\n        return a;\n    }\n\n    function createUTC (input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, true).utc();\n    }\n\n    function defaultParsingFlags() {\n        // We need to deep clone this object.\n        return {\n            empty           : false,\n            unusedTokens    : [],\n            unusedInput     : [],\n            overflow        : -2,\n            charsLeftOver   : 0,\n            nullInput       : false,\n            invalidMonth    : null,\n            invalidFormat   : false,\n            userInvalidated : false,\n            iso             : false,\n            parsedDateParts : [],\n            meridiem        : null,\n            rfc2822         : false,\n            weekdayMismatch : false\n        };\n    }\n\n    function getParsingFlags(m) {\n        if (m._pf == null) {\n            m._pf = defaultParsingFlags();\n        }\n        return m._pf;\n    }\n\n    var some;\n    if (Array.prototype.some) {\n        some = Array.prototype.some;\n    } else {\n        some = function (fun) {\n            var t = Object(this);\n            var len = t.length >>> 0;\n\n            for (var i = 0; i < len; i++) {\n                if (i in t && fun.call(this, t[i], i, t)) {\n                    return true;\n                }\n            }\n\n            return false;\n        };\n    }\n\n    function isValid(m) {\n        if (m._isValid == null) {\n            var flags = getParsingFlags(m);\n            var parsedParts = some.call(flags.parsedDateParts, function (i) {\n                return i != null;\n            });\n            var isNowValid = !isNaN(m._d.getTime()) &&\n                flags.overflow < 0 &&\n                !flags.empty &&\n                !flags.invalidMonth &&\n                !flags.invalidWeekday &&\n                !flags.weekdayMismatch &&\n                !flags.nullInput &&\n                !flags.invalidFormat &&\n                !flags.userInvalidated &&\n                (!flags.meridiem || (flags.meridiem && parsedParts));\n\n            if (m._strict) {\n                isNowValid = isNowValid &&\n                    flags.charsLeftOver === 0 &&\n                    flags.unusedTokens.length === 0 &&\n                    flags.bigHour === undefined;\n            }\n\n            if (Object.isFrozen == null || !Object.isFrozen(m)) {\n                m._isValid = isNowValid;\n            }\n            else {\n                return isNowValid;\n            }\n        }\n        return m._isValid;\n    }\n\n    function createInvalid (flags) {\n        var m = createUTC(NaN);\n        if (flags != null) {\n            extend(getParsingFlags(m), flags);\n        }\n        else {\n            getParsingFlags(m).userInvalidated = true;\n        }\n\n        return m;\n    }\n\n    // Plugins that add properties should also add the key here (null value),\n    // so we can properly clone ourselves.\n    var momentProperties = hooks.momentProperties = [];\n\n    function copyConfig(to, from) {\n        var i, prop, val;\n\n        if (!isUndefined(from._isAMomentObject)) {\n            to._isAMomentObject = from._isAMomentObject;\n        }\n        if (!isUndefined(from._i)) {\n            to._i = from._i;\n        }\n        if (!isUndefined(from._f)) {\n            to._f = from._f;\n        }\n        if (!isUndefined(from._l)) {\n            to._l = from._l;\n        }\n        if (!isUndefined(from._strict)) {\n            to._strict = from._strict;\n        }\n        if (!isUndefined(from._tzm)) {\n            to._tzm = from._tzm;\n        }\n        if (!isUndefined(from._isUTC)) {\n            to._isUTC = from._isUTC;\n        }\n        if (!isUndefined(from._offset)) {\n            to._offset = from._offset;\n        }\n        if (!isUndefined(from._pf)) {\n            to._pf = getParsingFlags(from);\n        }\n        if (!isUndefined(from._locale)) {\n            to._locale = from._locale;\n        }\n\n        if (momentProperties.length > 0) {\n            for (i = 0; i < momentProperties.length; i++) {\n                prop = momentProperties[i];\n                val = from[prop];\n                if (!isUndefined(val)) {\n                    to[prop] = val;\n                }\n            }\n        }\n\n        return to;\n    }\n\n    var updateInProgress = false;\n\n    // Moment prototype object\n    function Moment(config) {\n        copyConfig(this, config);\n        this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n        if (!this.isValid()) {\n            this._d = new Date(NaN);\n        }\n        // Prevent infinite loop in case updateOffset creates new moment\n        // objects.\n        if (updateInProgress === false) {\n            updateInProgress = true;\n            hooks.updateOffset(this);\n            updateInProgress = false;\n        }\n    }\n\n    function isMoment (obj) {\n        return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n    }\n\n    function absFloor (number) {\n        if (number < 0) {\n            // -0 -> 0\n            return Math.ceil(number) || 0;\n        } else {\n            return Math.floor(number);\n        }\n    }\n\n    function toInt(argumentForCoercion) {\n        var coercedNumber = +argumentForCoercion,\n            value = 0;\n\n        if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n            value = absFloor(coercedNumber);\n        }\n\n        return value;\n    }\n\n    // compare two arrays, return the number of differences\n    function compareArrays(array1, array2, dontConvert) {\n        var len = Math.min(array1.length, array2.length),\n            lengthDiff = Math.abs(array1.length - array2.length),\n            diffs = 0,\n            i;\n        for (i = 0; i < len; i++) {\n            if ((dontConvert && array1[i] !== array2[i]) ||\n                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n                diffs++;\n            }\n        }\n        return diffs + lengthDiff;\n    }\n\n    function warn(msg) {\n        if (hooks.suppressDeprecationWarnings === false &&\n                (typeof console !==  'undefined') && console.warn) {\n            console.warn('Deprecation warning: ' + msg);\n        }\n    }\n\n    function deprecate(msg, fn) {\n        var firstTime = true;\n\n        return extend(function () {\n            if (hooks.deprecationHandler != null) {\n                hooks.deprecationHandler(null, msg);\n            }\n            if (firstTime) {\n                var args = [];\n                var arg;\n                for (var i = 0; i < arguments.length; i++) {\n                    arg = '';\n                    if (typeof arguments[i] === 'object') {\n                        arg += '\\n[' + i + '] ';\n                        for (var key in arguments[0]) {\n                            arg += key + ': ' + arguments[0][key] + ', ';\n                        }\n                        arg = arg.slice(0, -2); // Remove trailing comma and space\n                    } else {\n                        arg = arguments[i];\n                    }\n                    args.push(arg);\n                }\n                warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n                firstTime = false;\n            }\n            return fn.apply(this, arguments);\n        }, fn);\n    }\n\n    var deprecations = {};\n\n    function deprecateSimple(name, msg) {\n        if (hooks.deprecationHandler != null) {\n            hooks.deprecationHandler(name, msg);\n        }\n        if (!deprecations[name]) {\n            warn(msg);\n            deprecations[name] = true;\n        }\n    }\n\n    hooks.suppressDeprecationWarnings = false;\n    hooks.deprecationHandler = null;\n\n    function isFunction(input) {\n        return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n    }\n\n    function set (config) {\n        var prop, i;\n        for (i in config) {\n            prop = config[i];\n            if (isFunction(prop)) {\n                this[i] = prop;\n            } else {\n                this['_' + i] = prop;\n            }\n        }\n        this._config = config;\n        // Lenient ordinal parsing accepts just a number in addition to\n        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        this._dayOfMonthOrdinalParseLenient = new RegExp(\n            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n                '|' + (/\\d{1,2}/).source);\n    }\n\n    function mergeConfigs(parentConfig, childConfig) {\n        var res = extend({}, parentConfig), prop;\n        for (prop in childConfig) {\n            if (hasOwnProp(childConfig, prop)) {\n                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n                    res[prop] = {};\n                    extend(res[prop], parentConfig[prop]);\n                    extend(res[prop], childConfig[prop]);\n                } else if (childConfig[prop] != null) {\n                    res[prop] = childConfig[prop];\n                } else {\n                    delete res[prop];\n                }\n            }\n        }\n        for (prop in parentConfig) {\n            if (hasOwnProp(parentConfig, prop) &&\n                    !hasOwnProp(childConfig, prop) &&\n                    isObject(parentConfig[prop])) {\n                // make sure changes to properties don't modify parent config\n                res[prop] = extend({}, res[prop]);\n            }\n        }\n        return res;\n    }\n\n    function Locale(config) {\n        if (config != null) {\n            this.set(config);\n        }\n    }\n\n    var keys;\n\n    if (Object.keys) {\n        keys = Object.keys;\n    } else {\n        keys = function (obj) {\n            var i, res = [];\n            for (i in obj) {\n                if (hasOwnProp(obj, i)) {\n                    res.push(i);\n                }\n            }\n            return res;\n        };\n    }\n\n    var defaultCalendar = {\n        sameDay : '[Today at] LT',\n        nextDay : '[Tomorrow at] LT',\n        nextWeek : 'dddd [at] LT',\n        lastDay : '[Yesterday at] LT',\n        lastWeek : '[Last] dddd [at] LT',\n        sameElse : 'L'\n    };\n\n    function calendar (key, mom, now) {\n        var output = this._calendar[key] || this._calendar['sameElse'];\n        return isFunction(output) ? output.call(mom, now) : output;\n    }\n\n    var defaultLongDateFormat = {\n        LTS  : 'h:mm:ss A',\n        LT   : 'h:mm A',\n        L    : 'MM/DD/YYYY',\n        LL   : 'MMMM D, YYYY',\n        LLL  : 'MMMM D, YYYY h:mm A',\n        LLLL : 'dddd, MMMM D, YYYY h:mm A'\n    };\n\n    function longDateFormat (key) {\n        var format = this._longDateFormat[key],\n            formatUpper = this._longDateFormat[key.toUpperCase()];\n\n        if (format || !formatUpper) {\n            return format;\n        }\n\n        this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n            return val.slice(1);\n        });\n\n        return this._longDateFormat[key];\n    }\n\n    var defaultInvalidDate = 'Invalid date';\n\n    function invalidDate () {\n        return this._invalidDate;\n    }\n\n    var defaultOrdinal = '%d';\n    var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n    function ordinal (number) {\n        return this._ordinal.replace('%d', number);\n    }\n\n    var defaultRelativeTime = {\n        future : 'in %s',\n        past   : '%s ago',\n        s  : 'a few seconds',\n        ss : '%d seconds',\n        m  : 'a minute',\n        mm : '%d minutes',\n        h  : 'an hour',\n        hh : '%d hours',\n        d  : 'a day',\n        dd : '%d days',\n        M  : 'a month',\n        MM : '%d months',\n        y  : 'a year',\n        yy : '%d years'\n    };\n\n    function relativeTime (number, withoutSuffix, string, isFuture) {\n        var output = this._relativeTime[string];\n        return (isFunction(output)) ?\n            output(number, withoutSuffix, string, isFuture) :\n            output.replace(/%d/i, number);\n    }\n\n    function pastFuture (diff, output) {\n        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n        return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n    }\n\n    var aliases = {};\n\n    function addUnitAlias (unit, shorthand) {\n        var lowerCase = unit.toLowerCase();\n        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n    }\n\n    function normalizeUnits(units) {\n        return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n    }\n\n    function normalizeObjectUnits(inputObject) {\n        var normalizedInput = {},\n            normalizedProp,\n            prop;\n\n        for (prop in inputObject) {\n            if (hasOwnProp(inputObject, prop)) {\n                normalizedProp = normalizeUnits(prop);\n                if (normalizedProp) {\n                    normalizedInput[normalizedProp] = inputObject[prop];\n                }\n            }\n        }\n\n        return normalizedInput;\n    }\n\n    var priorities = {};\n\n    function addUnitPriority(unit, priority) {\n        priorities[unit] = priority;\n    }\n\n    function getPrioritizedUnits(unitsObj) {\n        var units = [];\n        for (var u in unitsObj) {\n            units.push({unit: u, priority: priorities[u]});\n        }\n        units.sort(function (a, b) {\n            return a.priority - b.priority;\n        });\n        return units;\n    }\n\n    function zeroFill(number, targetLength, forceSign) {\n        var absNumber = '' + Math.abs(number),\n            zerosToFill = targetLength - absNumber.length,\n            sign = number >= 0;\n        return (sign ? (forceSign ? '+' : '') : '-') +\n            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n    }\n\n    var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n    var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n    var formatFunctions = {};\n\n    var formatTokenFunctions = {};\n\n    // token:    'M'\n    // padded:   ['MM', 2]\n    // ordinal:  'Mo'\n    // callback: function () { this.month() + 1 }\n    function addFormatToken (token, padded, ordinal, callback) {\n        var func = callback;\n        if (typeof callback === 'string') {\n            func = function () {\n                return this[callback]();\n            };\n        }\n        if (token) {\n            formatTokenFunctions[token] = func;\n        }\n        if (padded) {\n            formatTokenFunctions[padded[0]] = function () {\n                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n            };\n        }\n        if (ordinal) {\n            formatTokenFunctions[ordinal] = function () {\n                return this.localeData().ordinal(func.apply(this, arguments), token);\n            };\n        }\n    }\n\n    function removeFormattingTokens(input) {\n        if (input.match(/\\[[\\s\\S]/)) {\n            return input.replace(/^\\[|\\]$/g, '');\n        }\n        return input.replace(/\\\\/g, '');\n    }\n\n    function makeFormatFunction(format) {\n        var array = format.match(formattingTokens), i, length;\n\n        for (i = 0, length = array.length; i < length; i++) {\n            if (formatTokenFunctions[array[i]]) {\n                array[i] = formatTokenFunctions[array[i]];\n            } else {\n                array[i] = removeFormattingTokens(array[i]);\n            }\n        }\n\n        return function (mom) {\n            var output = '', i;\n            for (i = 0; i < length; i++) {\n                output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n            }\n            return output;\n        };\n    }\n\n    // format date using native date object\n    function formatMoment(m, format) {\n        if (!m.isValid()) {\n            return m.localeData().invalidDate();\n        }\n\n        format = expandFormat(format, m.localeData());\n        formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n        return formatFunctions[format](m);\n    }\n\n    function expandFormat(format, locale) {\n        var i = 5;\n\n        function replaceLongDateFormatTokens(input) {\n            return locale.longDateFormat(input) || input;\n        }\n\n        localFormattingTokens.lastIndex = 0;\n        while (i >= 0 && localFormattingTokens.test(format)) {\n            format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n            localFormattingTokens.lastIndex = 0;\n            i -= 1;\n        }\n\n        return format;\n    }\n\n    var match1         = /\\d/;            //       0 - 9\n    var match2         = /\\d\\d/;          //      00 - 99\n    var match3         = /\\d{3}/;         //     000 - 999\n    var match4         = /\\d{4}/;         //    0000 - 9999\n    var match6         = /[+-]?\\d{6}/;    // -999999 - 999999\n    var match1to2      = /\\d\\d?/;         //       0 - 99\n    var match3to4      = /\\d\\d\\d\\d?/;     //     999 - 9999\n    var match5to6      = /\\d\\d\\d\\d\\d\\d?/; //   99999 - 999999\n    var match1to3      = /\\d{1,3}/;       //       0 - 999\n    var match1to4      = /\\d{1,4}/;       //       0 - 9999\n    var match1to6      = /[+-]?\\d{1,6}/;  // -999999 - 999999\n\n    var matchUnsigned  = /\\d+/;           //       0 - inf\n    var matchSigned    = /[+-]?\\d+/;      //    -inf - inf\n\n    var matchOffset    = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n    var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n    var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n    // any word (or two) characters or numbers including two/three word month in arabic.\n    // includes scottish gaelic two word and hyphenated months\n    var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n    var regexes = {};\n\n    function addRegexToken (token, regex, strictRegex) {\n        regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n            return (isStrict && strictRegex) ? strictRegex : regex;\n        };\n    }\n\n    function getParseRegexForToken (token, config) {\n        if (!hasOwnProp(regexes, token)) {\n            return new RegExp(unescapeFormat(token));\n        }\n\n        return regexes[token](config._strict, config._locale);\n    }\n\n    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n    function unescapeFormat(s) {\n        return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n            return p1 || p2 || p3 || p4;\n        }));\n    }\n\n    function regexEscape(s) {\n        return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n    }\n\n    var tokens = {};\n\n    function addParseToken (token, callback) {\n        var i, func = callback;\n        if (typeof token === 'string') {\n            token = [token];\n        }\n        if (isNumber(callback)) {\n            func = function (input, array) {\n                array[callback] = toInt(input);\n            };\n        }\n        for (i = 0; i < token.length; i++) {\n            tokens[token[i]] = func;\n        }\n    }\n\n    function addWeekParseToken (token, callback) {\n        addParseToken(token, function (input, array, config, token) {\n            config._w = config._w || {};\n            callback(input, config._w, config, token);\n        });\n    }\n\n    function addTimeToArrayFromToken(token, input, config) {\n        if (input != null && hasOwnProp(tokens, token)) {\n            tokens[token](input, config._a, config, token);\n        }\n    }\n\n    var YEAR = 0;\n    var MONTH = 1;\n    var DATE = 2;\n    var HOUR = 3;\n    var MINUTE = 4;\n    var SECOND = 5;\n    var MILLISECOND = 6;\n    var WEEK = 7;\n    var WEEKDAY = 8;\n\n    // FORMATTING\n\n    addFormatToken('Y', 0, 0, function () {\n        var y = this.year();\n        return y <= 9999 ? '' + y : '+' + y;\n    });\n\n    addFormatToken(0, ['YY', 2], 0, function () {\n        return this.year() % 100;\n    });\n\n    addFormatToken(0, ['YYYY',   4],       0, 'year');\n    addFormatToken(0, ['YYYYY',  5],       0, 'year');\n    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n    // ALIASES\n\n    addUnitAlias('year', 'y');\n\n    // PRIORITIES\n\n    addUnitPriority('year', 1);\n\n    // PARSING\n\n    addRegexToken('Y',      matchSigned);\n    addRegexToken('YY',     match1to2, match2);\n    addRegexToken('YYYY',   match1to4, match4);\n    addRegexToken('YYYYY',  match1to6, match6);\n    addRegexToken('YYYYYY', match1to6, match6);\n\n    addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n    addParseToken('YYYY', function (input, array) {\n        array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n    });\n    addParseToken('YY', function (input, array) {\n        array[YEAR] = hooks.parseTwoDigitYear(input);\n    });\n    addParseToken('Y', function (input, array) {\n        array[YEAR] = parseInt(input, 10);\n    });\n\n    // HELPERS\n\n    function daysInYear(year) {\n        return isLeapYear(year) ? 366 : 365;\n    }\n\n    function isLeapYear(year) {\n        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n    }\n\n    // HOOKS\n\n    hooks.parseTwoDigitYear = function (input) {\n        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n    };\n\n    // MOMENTS\n\n    var getSetYear = makeGetSet('FullYear', true);\n\n    function getIsLeapYear () {\n        return isLeapYear(this.year());\n    }\n\n    function makeGetSet (unit, keepTime) {\n        return function (value) {\n            if (value != null) {\n                set$1(this, unit, value);\n                hooks.updateOffset(this, keepTime);\n                return this;\n            } else {\n                return get(this, unit);\n            }\n        };\n    }\n\n    function get (mom, unit) {\n        return mom.isValid() ?\n            mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n    }\n\n    function set$1 (mom, unit, value) {\n        if (mom.isValid() && !isNaN(value)) {\n            if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n            }\n            else {\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function stringGet (units) {\n        units = normalizeUnits(units);\n        if (isFunction(this[units])) {\n            return this[units]();\n        }\n        return this;\n    }\n\n\n    function stringSet (units, value) {\n        if (typeof units === 'object') {\n            units = normalizeObjectUnits(units);\n            var prioritized = getPrioritizedUnits(units);\n            for (var i = 0; i < prioritized.length; i++) {\n                this[prioritized[i].unit](units[prioritized[i].unit]);\n            }\n        } else {\n            units = normalizeUnits(units);\n            if (isFunction(this[units])) {\n                return this[units](value);\n            }\n        }\n        return this;\n    }\n\n    function mod(n, x) {\n        return ((n % x) + x) % x;\n    }\n\n    var indexOf;\n\n    if (Array.prototype.indexOf) {\n        indexOf = Array.prototype.indexOf;\n    } else {\n        indexOf = function (o) {\n            // I know\n            var i;\n            for (i = 0; i < this.length; ++i) {\n                if (this[i] === o) {\n                    return i;\n                }\n            }\n            return -1;\n        };\n    }\n\n    function daysInMonth(year, month) {\n        if (isNaN(year) || isNaN(month)) {\n            return NaN;\n        }\n        var modMonth = mod(month, 12);\n        year += (month - modMonth) / 12;\n        return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n    }\n\n    // FORMATTING\n\n    addFormatToken('M', ['MM', 2], 'Mo', function () {\n        return this.month() + 1;\n    });\n\n    addFormatToken('MMM', 0, 0, function (format) {\n        return this.localeData().monthsShort(this, format);\n    });\n\n    addFormatToken('MMMM', 0, 0, function (format) {\n        return this.localeData().months(this, format);\n    });\n\n    // ALIASES\n\n    addUnitAlias('month', 'M');\n\n    // PRIORITY\n\n    addUnitPriority('month', 8);\n\n    // PARSING\n\n    addRegexToken('M',    match1to2);\n    addRegexToken('MM',   match1to2, match2);\n    addRegexToken('MMM',  function (isStrict, locale) {\n        return locale.monthsShortRegex(isStrict);\n    });\n    addRegexToken('MMMM', function (isStrict, locale) {\n        return locale.monthsRegex(isStrict);\n    });\n\n    addParseToken(['M', 'MM'], function (input, array) {\n        array[MONTH] = toInt(input) - 1;\n    });\n\n    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n        var month = config._locale.monthsParse(input, token, config._strict);\n        // if we didn't find a month name, mark the date as invalid.\n        if (month != null) {\n            array[MONTH] = month;\n        } else {\n            getParsingFlags(config).invalidMonth = input;\n        }\n    });\n\n    // LOCALES\n\n    var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n    var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n    function localeMonths (m, format) {\n        if (!m) {\n            return isArray(this._months) ? this._months :\n                this._months['standalone'];\n        }\n        return isArray(this._months) ? this._months[m.month()] :\n            this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n    }\n\n    var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n    function localeMonthsShort (m, format) {\n        if (!m) {\n            return isArray(this._monthsShort) ? this._monthsShort :\n                this._monthsShort['standalone'];\n        }\n        return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n            this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n    }\n\n    function handleStrictParse(monthName, format, strict) {\n        var i, ii, mom, llc = monthName.toLocaleLowerCase();\n        if (!this._monthsParse) {\n            // this is not used\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n            for (i = 0; i < 12; ++i) {\n                mom = createUTC([2000, i]);\n                this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeMonthsParse (monthName, format, strict) {\n        var i, mom, regex;\n\n        if (this._monthsParseExact) {\n            return handleStrictParse.call(this, monthName, format, strict);\n        }\n\n        if (!this._monthsParse) {\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n        }\n\n        // TODO: add sorting\n        // Sorting makes sure if one month (or abbr) is a prefix of another\n        // see sorting in computeMonthsParse\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            if (strict && !this._longMonthsParse[i]) {\n                this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n                this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n            }\n            if (!strict && !this._monthsParse[i]) {\n                regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n                return i;\n            } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n                return i;\n            } else if (!strict && this._monthsParse[i].test(monthName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function setMonth (mom, value) {\n        var dayOfMonth;\n\n        if (!mom.isValid()) {\n            // No op\n            return mom;\n        }\n\n        if (typeof value === 'string') {\n            if (/^\\d+$/.test(value)) {\n                value = toInt(value);\n            } else {\n                value = mom.localeData().monthsParse(value);\n                // TODO: Another silent failure?\n                if (!isNumber(value)) {\n                    return mom;\n                }\n            }\n        }\n\n        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n        return mom;\n    }\n\n    function getSetMonth (value) {\n        if (value != null) {\n            setMonth(this, value);\n            hooks.updateOffset(this, true);\n            return this;\n        } else {\n            return get(this, 'Month');\n        }\n    }\n\n    function getDaysInMonth () {\n        return daysInMonth(this.year(), this.month());\n    }\n\n    var defaultMonthsShortRegex = matchWord;\n    function monthsShortRegex (isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsShortStrictRegex;\n            } else {\n                return this._monthsShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsShortRegex')) {\n                this._monthsShortRegex = defaultMonthsShortRegex;\n            }\n            return this._monthsShortStrictRegex && isStrict ?\n                this._monthsShortStrictRegex : this._monthsShortRegex;\n        }\n    }\n\n    var defaultMonthsRegex = matchWord;\n    function monthsRegex (isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsStrictRegex;\n            } else {\n                return this._monthsRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                this._monthsRegex = defaultMonthsRegex;\n            }\n            return this._monthsStrictRegex && isStrict ?\n                this._monthsStrictRegex : this._monthsRegex;\n        }\n    }\n\n    function computeMonthsParse () {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var shortPieces = [], longPieces = [], mixedPieces = [],\n            i, mom;\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            shortPieces.push(this.monthsShort(mom, ''));\n            longPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.monthsShort(mom, ''));\n        }\n        // Sorting makes sure if one month (or abbr) is a prefix of another it\n        // will match the longer piece.\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n        for (i = 0; i < 12; i++) {\n            shortPieces[i] = regexEscape(shortPieces[i]);\n            longPieces[i] = regexEscape(longPieces[i]);\n        }\n        for (i = 0; i < 24; i++) {\n            mixedPieces[i] = regexEscape(mixedPieces[i]);\n        }\n\n        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._monthsShortRegex = this._monthsRegex;\n        this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n        this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n    }\n\n    function createDate (y, m, d, h, M, s, ms) {\n        // can't just apply() to create a date:\n        // https://stackoverflow.com/q/181348\n        var date;\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            date = new Date(y + 400, m, d, h, M, s, ms);\n            if (isFinite(date.getFullYear())) {\n                date.setFullYear(y);\n            }\n        } else {\n            date = new Date(y, m, d, h, M, s, ms);\n        }\n\n        return date;\n    }\n\n    function createUTCDate (y) {\n        var date;\n        // the Date.UTC function remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            var args = Array.prototype.slice.call(arguments);\n            // preserve leap years using a full 400 year cycle, then reset\n            args[0] = y + 400;\n            date = new Date(Date.UTC.apply(null, args));\n            if (isFinite(date.getUTCFullYear())) {\n                date.setUTCFullYear(y);\n            }\n        } else {\n            date = new Date(Date.UTC.apply(null, arguments));\n        }\n\n        return date;\n    }\n\n    // start-of-first-week - start-of-year\n    function firstWeekOffset(year, dow, doy) {\n        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n            fwd = 7 + dow - doy,\n            // first-week day local weekday -- which local weekday is fwd\n            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n        return -fwdlw + fwd - 1;\n    }\n\n    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n        var localWeekday = (7 + weekday - dow) % 7,\n            weekOffset = firstWeekOffset(year, dow, doy),\n            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n            resYear, resDayOfYear;\n\n        if (dayOfYear <= 0) {\n            resYear = year - 1;\n            resDayOfYear = daysInYear(resYear) + dayOfYear;\n        } else if (dayOfYear > daysInYear(year)) {\n            resYear = year + 1;\n            resDayOfYear = dayOfYear - daysInYear(year);\n        } else {\n            resYear = year;\n            resDayOfYear = dayOfYear;\n        }\n\n        return {\n            year: resYear,\n            dayOfYear: resDayOfYear\n        };\n    }\n\n    function weekOfYear(mom, dow, doy) {\n        var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n            resWeek, resYear;\n\n        if (week < 1) {\n            resYear = mom.year() - 1;\n            resWeek = week + weeksInYear(resYear, dow, doy);\n        } else if (week > weeksInYear(mom.year(), dow, doy)) {\n            resWeek = week - weeksInYear(mom.year(), dow, doy);\n            resYear = mom.year() + 1;\n        } else {\n            resYear = mom.year();\n            resWeek = week;\n        }\n\n        return {\n            week: resWeek,\n            year: resYear\n        };\n    }\n\n    function weeksInYear(year, dow, doy) {\n        var weekOffset = firstWeekOffset(year, dow, doy),\n            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n    }\n\n    // FORMATTING\n\n    addFormatToken('w', ['ww', 2], 'wo', 'week');\n    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n    // ALIASES\n\n    addUnitAlias('week', 'w');\n    addUnitAlias('isoWeek', 'W');\n\n    // PRIORITIES\n\n    addUnitPriority('week', 5);\n    addUnitPriority('isoWeek', 5);\n\n    // PARSING\n\n    addRegexToken('w',  match1to2);\n    addRegexToken('ww', match1to2, match2);\n    addRegexToken('W',  match1to2);\n    addRegexToken('WW', match1to2, match2);\n\n    addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n        week[token.substr(0, 1)] = toInt(input);\n    });\n\n    // HELPERS\n\n    // LOCALES\n\n    function localeWeek (mom) {\n        return weekOfYear(mom, this._week.dow, this._week.doy).week;\n    }\n\n    var defaultLocaleWeek = {\n        dow : 0, // Sunday is the first day of the week.\n        doy : 6  // The week that contains Jan 6th is the first week of the year.\n    };\n\n    function localeFirstDayOfWeek () {\n        return this._week.dow;\n    }\n\n    function localeFirstDayOfYear () {\n        return this._week.doy;\n    }\n\n    // MOMENTS\n\n    function getSetWeek (input) {\n        var week = this.localeData().week(this);\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    function getSetISOWeek (input) {\n        var week = weekOfYear(this, 1, 4).week;\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('d', 0, 'do', 'day');\n\n    addFormatToken('dd', 0, 0, function (format) {\n        return this.localeData().weekdaysMin(this, format);\n    });\n\n    addFormatToken('ddd', 0, 0, function (format) {\n        return this.localeData().weekdaysShort(this, format);\n    });\n\n    addFormatToken('dddd', 0, 0, function (format) {\n        return this.localeData().weekdays(this, format);\n    });\n\n    addFormatToken('e', 0, 0, 'weekday');\n    addFormatToken('E', 0, 0, 'isoWeekday');\n\n    // ALIASES\n\n    addUnitAlias('day', 'd');\n    addUnitAlias('weekday', 'e');\n    addUnitAlias('isoWeekday', 'E');\n\n    // PRIORITY\n    addUnitPriority('day', 11);\n    addUnitPriority('weekday', 11);\n    addUnitPriority('isoWeekday', 11);\n\n    // PARSING\n\n    addRegexToken('d',    match1to2);\n    addRegexToken('e',    match1to2);\n    addRegexToken('E',    match1to2);\n    addRegexToken('dd',   function (isStrict, locale) {\n        return locale.weekdaysMinRegex(isStrict);\n    });\n    addRegexToken('ddd',   function (isStrict, locale) {\n        return locale.weekdaysShortRegex(isStrict);\n    });\n    addRegexToken('dddd',   function (isStrict, locale) {\n        return locale.weekdaysRegex(isStrict);\n    });\n\n    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n        var weekday = config._locale.weekdaysParse(input, token, config._strict);\n        // if we didn't get a weekday name, mark the date as invalid\n        if (weekday != null) {\n            week.d = weekday;\n        } else {\n            getParsingFlags(config).invalidWeekday = input;\n        }\n    });\n\n    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n        week[token] = toInt(input);\n    });\n\n    // HELPERS\n\n    function parseWeekday(input, locale) {\n        if (typeof input !== 'string') {\n            return input;\n        }\n\n        if (!isNaN(input)) {\n            return parseInt(input, 10);\n        }\n\n        input = locale.weekdaysParse(input);\n        if (typeof input === 'number') {\n            return input;\n        }\n\n        return null;\n    }\n\n    function parseIsoWeekday(input, locale) {\n        if (typeof input === 'string') {\n            return locale.weekdaysParse(input) % 7 || 7;\n        }\n        return isNaN(input) ? null : input;\n    }\n\n    // LOCALES\n    function shiftWeekdays (ws, n) {\n        return ws.slice(n, 7).concat(ws.slice(0, n));\n    }\n\n    var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n    function localeWeekdays (m, format) {\n        var weekdays = isArray(this._weekdays) ? this._weekdays :\n            this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n        return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n            : (m) ? weekdays[m.day()] : weekdays;\n    }\n\n    var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n    function localeWeekdaysShort (m) {\n        return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n            : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n    }\n\n    var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n    function localeWeekdaysMin (m) {\n        return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n            : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n    }\n\n    function handleStrictParse$1(weekdayName, format, strict) {\n        var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._minWeekdaysParse = [];\n\n            for (i = 0; i < 7; ++i) {\n                mom = createUTC([2000, 1]).day(i);\n                this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n                this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeWeekdaysParse (weekdayName, format, strict) {\n        var i, mom, regex;\n\n        if (this._weekdaysParseExact) {\n            return handleStrictParse$1.call(this, weekdayName, format, strict);\n        }\n\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._minWeekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._fullWeekdaysParse = [];\n        }\n\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n\n            mom = createUTC([2000, 1]).day(i);\n            if (strict && !this._fullWeekdaysParse[i]) {\n                this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n                this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n                this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n            }\n            if (!this._weekdaysParse[i]) {\n                regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n                return i;\n            } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n                return i;\n            } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n                return i;\n            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function getSetDayOfWeek (input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n        if (input != null) {\n            input = parseWeekday(input, this.localeData());\n            return this.add(input - day, 'd');\n        } else {\n            return day;\n        }\n    }\n\n    function getSetLocaleDayOfWeek (input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n        return input == null ? weekday : this.add(input - weekday, 'd');\n    }\n\n    function getSetISODayOfWeek (input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n\n        // behaves the same as moment#day except\n        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n        // as a setter, sunday should belong to the previous week.\n\n        if (input != null) {\n            var weekday = parseIsoWeekday(input, this.localeData());\n            return this.day(this.day() % 7 ? weekday : weekday - 7);\n        } else {\n            return this.day() || 7;\n        }\n    }\n\n    var defaultWeekdaysRegex = matchWord;\n    function weekdaysRegex (isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysStrictRegex;\n            } else {\n                return this._weekdaysRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                this._weekdaysRegex = defaultWeekdaysRegex;\n            }\n            return this._weekdaysStrictRegex && isStrict ?\n                this._weekdaysStrictRegex : this._weekdaysRegex;\n        }\n    }\n\n    var defaultWeekdaysShortRegex = matchWord;\n    function weekdaysShortRegex (isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysShortStrictRegex;\n            } else {\n                return this._weekdaysShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n                this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n            }\n            return this._weekdaysShortStrictRegex && isStrict ?\n                this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n        }\n    }\n\n    var defaultWeekdaysMinRegex = matchWord;\n    function weekdaysMinRegex (isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysMinStrictRegex;\n            } else {\n                return this._weekdaysMinRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n                this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n            }\n            return this._weekdaysMinStrictRegex && isStrict ?\n                this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n        }\n    }\n\n\n    function computeWeekdaysParse () {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n            i, mom, minp, shortp, longp;\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, 1]).day(i);\n            minp = this.weekdaysMin(mom, '');\n            shortp = this.weekdaysShort(mom, '');\n            longp = this.weekdays(mom, '');\n            minPieces.push(minp);\n            shortPieces.push(shortp);\n            longPieces.push(longp);\n            mixedPieces.push(minp);\n            mixedPieces.push(shortp);\n            mixedPieces.push(longp);\n        }\n        // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n        // will match the longer piece.\n        minPieces.sort(cmpLenRev);\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n        for (i = 0; i < 7; i++) {\n            shortPieces[i] = regexEscape(shortPieces[i]);\n            longPieces[i] = regexEscape(longPieces[i]);\n            mixedPieces[i] = regexEscape(mixedPieces[i]);\n        }\n\n        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._weekdaysShortRegex = this._weekdaysRegex;\n        this._weekdaysMinRegex = this._weekdaysRegex;\n\n        this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n        this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n        this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n    }\n\n    // FORMATTING\n\n    function hFormat() {\n        return this.hours() % 12 || 12;\n    }\n\n    function kFormat() {\n        return this.hours() || 24;\n    }\n\n    addFormatToken('H', ['HH', 2], 0, 'hour');\n    addFormatToken('h', ['hh', 2], 0, hFormat);\n    addFormatToken('k', ['kk', 2], 0, kFormat);\n\n    addFormatToken('hmm', 0, 0, function () {\n        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('hmmss', 0, 0, function () {\n        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2);\n    });\n\n    addFormatToken('Hmm', 0, 0, function () {\n        return '' + this.hours() + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('Hmmss', 0, 0, function () {\n        return '' + this.hours() + zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2);\n    });\n\n    function meridiem (token, lowercase) {\n        addFormatToken(token, 0, 0, function () {\n            return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n        });\n    }\n\n    meridiem('a', true);\n    meridiem('A', false);\n\n    // ALIASES\n\n    addUnitAlias('hour', 'h');\n\n    // PRIORITY\n    addUnitPriority('hour', 13);\n\n    // PARSING\n\n    function matchMeridiem (isStrict, locale) {\n        return locale._meridiemParse;\n    }\n\n    addRegexToken('a',  matchMeridiem);\n    addRegexToken('A',  matchMeridiem);\n    addRegexToken('H',  match1to2);\n    addRegexToken('h',  match1to2);\n    addRegexToken('k',  match1to2);\n    addRegexToken('HH', match1to2, match2);\n    addRegexToken('hh', match1to2, match2);\n    addRegexToken('kk', match1to2, match2);\n\n    addRegexToken('hmm', match3to4);\n    addRegexToken('hmmss', match5to6);\n    addRegexToken('Hmm', match3to4);\n    addRegexToken('Hmmss', match5to6);\n\n    addParseToken(['H', 'HH'], HOUR);\n    addParseToken(['k', 'kk'], function (input, array, config) {\n        var kInput = toInt(input);\n        array[HOUR] = kInput === 24 ? 0 : kInput;\n    });\n    addParseToken(['a', 'A'], function (input, array, config) {\n        config._isPm = config._locale.isPM(input);\n        config._meridiem = input;\n    });\n    addParseToken(['h', 'hh'], function (input, array, config) {\n        array[HOUR] = toInt(input);\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmmss', function (input, array, config) {\n        var pos1 = input.length - 4;\n        var pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('Hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n    });\n    addParseToken('Hmmss', function (input, array, config) {\n        var pos1 = input.length - 4;\n        var pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n    });\n\n    // LOCALES\n\n    function localeIsPM (input) {\n        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n        // Using charAt should be more compatible.\n        return ((input + '').toLowerCase().charAt(0) === 'p');\n    }\n\n    var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n    function localeMeridiem (hours, minutes, isLower) {\n        if (hours > 11) {\n            return isLower ? 'pm' : 'PM';\n        } else {\n            return isLower ? 'am' : 'AM';\n        }\n    }\n\n\n    // MOMENTS\n\n    // Setting the hour should keep the time, because the user explicitly\n    // specified which hour they want. So trying to maintain the same hour (in\n    // a new timezone) makes sense. Adding/subtracting hours does not follow\n    // this rule.\n    var getSetHour = makeGetSet('Hours', true);\n\n    var baseConfig = {\n        calendar: defaultCalendar,\n        longDateFormat: defaultLongDateFormat,\n        invalidDate: defaultInvalidDate,\n        ordinal: defaultOrdinal,\n        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n        relativeTime: defaultRelativeTime,\n\n        months: defaultLocaleMonths,\n        monthsShort: defaultLocaleMonthsShort,\n\n        week: defaultLocaleWeek,\n\n        weekdays: defaultLocaleWeekdays,\n        weekdaysMin: defaultLocaleWeekdaysMin,\n        weekdaysShort: defaultLocaleWeekdaysShort,\n\n        meridiemParse: defaultLocaleMeridiemParse\n    };\n\n    // internal storage for locale config files\n    var locales = {};\n    var localeFamilies = {};\n    var globalLocale;\n\n    function normalizeLocale(key) {\n        return key ? key.toLowerCase().replace('_', '-') : key;\n    }\n\n    // pick the locale from the array\n    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n    function chooseLocale(names) {\n        var i = 0, j, next, locale, split;\n\n        while (i < names.length) {\n            split = normalizeLocale(names[i]).split('-');\n            j = split.length;\n            next = normalizeLocale(names[i + 1]);\n            next = next ? next.split('-') : null;\n            while (j > 0) {\n                locale = loadLocale(split.slice(0, j).join('-'));\n                if (locale) {\n                    return locale;\n                }\n                if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n                    //the next array item is better than a shallower substring of this one\n                    break;\n                }\n                j--;\n            }\n            i++;\n        }\n        return globalLocale;\n    }\n\n    function loadLocale(name) {\n        var oldLocale = null;\n        // TODO: Find a better way to register and load all the locales in Node\n        if (!locales[name] && ('object' !== 'undefined') &&\n                module && module.exports) {\n            try {\n                oldLocale = globalLocale._abbr;\n                var aliasedRequire = commonjsRequire;\n                aliasedRequire('./locale/' + name);\n                getSetGlobalLocale(oldLocale);\n            } catch (e) {}\n        }\n        return locales[name];\n    }\n\n    // This function will load locale and then set the global locale.  If\n    // no arguments are passed in, it will simply return the current global\n    // locale key.\n    function getSetGlobalLocale (key, values) {\n        var data;\n        if (key) {\n            if (isUndefined(values)) {\n                data = getLocale(key);\n            }\n            else {\n                data = defineLocale(key, values);\n            }\n\n            if (data) {\n                // moment.duration._locale = moment._locale = data;\n                globalLocale = data;\n            }\n            else {\n                if ((typeof console !==  'undefined') && console.warn) {\n                    //warn user if arguments are passed but the locale could not be set\n                    console.warn('Locale ' + key +  ' not found. Did you forget to load it?');\n                }\n            }\n        }\n\n        return globalLocale._abbr;\n    }\n\n    function defineLocale (name, config) {\n        if (config !== null) {\n            var locale, parentConfig = baseConfig;\n            config.abbr = name;\n            if (locales[name] != null) {\n                deprecateSimple('defineLocaleOverride',\n                        'use moment.updateLocale(localeName, config) to change ' +\n                        'an existing locale. moment.defineLocale(localeName, ' +\n                        'config) should only be used for creating a new locale ' +\n                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n                parentConfig = locales[name]._config;\n            } else if (config.parentLocale != null) {\n                if (locales[config.parentLocale] != null) {\n                    parentConfig = locales[config.parentLocale]._config;\n                } else {\n                    locale = loadLocale(config.parentLocale);\n                    if (locale != null) {\n                        parentConfig = locale._config;\n                    } else {\n                        if (!localeFamilies[config.parentLocale]) {\n                            localeFamilies[config.parentLocale] = [];\n                        }\n                        localeFamilies[config.parentLocale].push({\n                            name: name,\n                            config: config\n                        });\n                        return null;\n                    }\n                }\n            }\n            locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n            if (localeFamilies[name]) {\n                localeFamilies[name].forEach(function (x) {\n                    defineLocale(x.name, x.config);\n                });\n            }\n\n            // backwards compat for now: also set the locale\n            // make sure we set the locale AFTER all child locales have been\n            // created, so we won't end up with the child locale set.\n            getSetGlobalLocale(name);\n\n\n            return locales[name];\n        } else {\n            // useful for testing\n            delete locales[name];\n            return null;\n        }\n    }\n\n    function updateLocale(name, config) {\n        if (config != null) {\n            var locale, tmpLocale, parentConfig = baseConfig;\n            // MERGE\n            tmpLocale = loadLocale(name);\n            if (tmpLocale != null) {\n                parentConfig = tmpLocale._config;\n            }\n            config = mergeConfigs(parentConfig, config);\n            locale = new Locale(config);\n            locale.parentLocale = locales[name];\n            locales[name] = locale;\n\n            // backwards compat for now: also set the locale\n            getSetGlobalLocale(name);\n        } else {\n            // pass null for config to unupdate, useful for tests\n            if (locales[name] != null) {\n                if (locales[name].parentLocale != null) {\n                    locales[name] = locales[name].parentLocale;\n                } else if (locales[name] != null) {\n                    delete locales[name];\n                }\n            }\n        }\n        return locales[name];\n    }\n\n    // returns locale data\n    function getLocale (key) {\n        var locale;\n\n        if (key && key._locale && key._locale._abbr) {\n            key = key._locale._abbr;\n        }\n\n        if (!key) {\n            return globalLocale;\n        }\n\n        if (!isArray(key)) {\n            //short-circuit everything else\n            locale = loadLocale(key);\n            if (locale) {\n                return locale;\n            }\n            key = [key];\n        }\n\n        return chooseLocale(key);\n    }\n\n    function listLocales() {\n        return keys(locales);\n    }\n\n    function checkOverflow (m) {\n        var overflow;\n        var a = m._a;\n\n        if (a && getParsingFlags(m).overflow === -2) {\n            overflow =\n                a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :\n                a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n                a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n                a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :\n                a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :\n                a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n                -1;\n\n            if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n                overflow = DATE;\n            }\n            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n                overflow = WEEK;\n            }\n            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n                overflow = WEEKDAY;\n            }\n\n            getParsingFlags(m).overflow = overflow;\n        }\n\n        return m;\n    }\n\n    // Pick the first defined of two or three arguments.\n    function defaults(a, b, c) {\n        if (a != null) {\n            return a;\n        }\n        if (b != null) {\n            return b;\n        }\n        return c;\n    }\n\n    function currentDateArray(config) {\n        // hooks is actually the exported moment object\n        var nowValue = new Date(hooks.now());\n        if (config._useUTC) {\n            return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n        }\n        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n    }\n\n    // convert an array to a date.\n    // the array should mirror the parameters below\n    // note: all values past the year are optional and will default to the lowest possible value.\n    // [year, month, day , hour, minute, second, millisecond]\n    function configFromArray (config) {\n        var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n        if (config._d) {\n            return;\n        }\n\n        currentDate = currentDateArray(config);\n\n        //compute day of the year from weeks and weekdays\n        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n            dayOfYearFromWeekInfo(config);\n        }\n\n        //if the day of the year is set, figure out what it is\n        if (config._dayOfYear != null) {\n            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n            if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n                getParsingFlags(config)._overflowDayOfYear = true;\n            }\n\n            date = createUTCDate(yearToUse, 0, config._dayOfYear);\n            config._a[MONTH] = date.getUTCMonth();\n            config._a[DATE] = date.getUTCDate();\n        }\n\n        // Default to current date.\n        // * if no year, month, day of month are given, default to today\n        // * if day of month is given, default month and year\n        // * if month is given, default only year\n        // * if year is given, don't default anything\n        for (i = 0; i < 3 && config._a[i] == null; ++i) {\n            config._a[i] = input[i] = currentDate[i];\n        }\n\n        // Zero out whatever was not defaulted, including time\n        for (; i < 7; i++) {\n            config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n        }\n\n        // Check for 24:00:00.000\n        if (config._a[HOUR] === 24 &&\n                config._a[MINUTE] === 0 &&\n                config._a[SECOND] === 0 &&\n                config._a[MILLISECOND] === 0) {\n            config._nextDay = true;\n            config._a[HOUR] = 0;\n        }\n\n        config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n        expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n        // Apply timezone offset from input. The actual utcOffset can be changed\n        // with parseZone.\n        if (config._tzm != null) {\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n        }\n\n        if (config._nextDay) {\n            config._a[HOUR] = 24;\n        }\n\n        // check for mismatching day of week\n        if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n            getParsingFlags(config).weekdayMismatch = true;\n        }\n    }\n\n    function dayOfYearFromWeekInfo(config) {\n        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n        w = config._w;\n        if (w.GG != null || w.W != null || w.E != null) {\n            dow = 1;\n            doy = 4;\n\n            // TODO: We need to take the current isoWeekYear, but that depends on\n            // how we interpret now (local, utc, fixed offset). So create\n            // a now version of current config (take local/utc/offset flags, and\n            // create now).\n            weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n            week = defaults(w.W, 1);\n            weekday = defaults(w.E, 1);\n            if (weekday < 1 || weekday > 7) {\n                weekdayOverflow = true;\n            }\n        } else {\n            dow = config._locale._week.dow;\n            doy = config._locale._week.doy;\n\n            var curWeek = weekOfYear(createLocal(), dow, doy);\n\n            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n            // Default to current week.\n            week = defaults(w.w, curWeek.week);\n\n            if (w.d != null) {\n                // weekday -- low day numbers are considered next week\n                weekday = w.d;\n                if (weekday < 0 || weekday > 6) {\n                    weekdayOverflow = true;\n                }\n            } else if (w.e != null) {\n                // local weekday -- counting starts from beginning of week\n                weekday = w.e + dow;\n                if (w.e < 0 || w.e > 6) {\n                    weekdayOverflow = true;\n                }\n            } else {\n                // default to beginning of week\n                weekday = dow;\n            }\n        }\n        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n            getParsingFlags(config)._overflowWeeks = true;\n        } else if (weekdayOverflow != null) {\n            getParsingFlags(config)._overflowWeekday = true;\n        } else {\n            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n            config._a[YEAR] = temp.year;\n            config._dayOfYear = temp.dayOfYear;\n        }\n    }\n\n    // iso 8601 regex\n    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n    var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n    var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n    var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n    var isoDates = [\n        ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n        ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n        ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n        ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n        ['YYYY-DDD', /\\d{4}-\\d{3}/],\n        ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n        ['YYYYYYMMDD', /[+-]\\d{10}/],\n        ['YYYYMMDD', /\\d{8}/],\n        // YYYYMM is NOT allowed by the standard\n        ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n        ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n        ['YYYYDDD', /\\d{7}/]\n    ];\n\n    // iso time formats and regexes\n    var isoTimes = [\n        ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n        ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n        ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n        ['HH:mm', /\\d\\d:\\d\\d/],\n        ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n        ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n        ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n        ['HHmm', /\\d\\d\\d\\d/],\n        ['HH', /\\d\\d/]\n    ];\n\n    var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n    // date from iso format\n    function configFromISO(config) {\n        var i, l,\n            string = config._i,\n            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n            allowTime, dateFormat, timeFormat, tzFormat;\n\n        if (match) {\n            getParsingFlags(config).iso = true;\n\n            for (i = 0, l = isoDates.length; i < l; i++) {\n                if (isoDates[i][1].exec(match[1])) {\n                    dateFormat = isoDates[i][0];\n                    allowTime = isoDates[i][2] !== false;\n                    break;\n                }\n            }\n            if (dateFormat == null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[3]) {\n                for (i = 0, l = isoTimes.length; i < l; i++) {\n                    if (isoTimes[i][1].exec(match[3])) {\n                        // match[2] should be 'T' or space\n                        timeFormat = (match[2] || ' ') + isoTimes[i][0];\n                        break;\n                    }\n                }\n                if (timeFormat == null) {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            if (!allowTime && timeFormat != null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[4]) {\n                if (tzRegex.exec(match[4])) {\n                    tzFormat = 'Z';\n                } else {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n            configFromStringAndFormat(config);\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n    var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n    function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n        var result = [\n            untruncateYear(yearStr),\n            defaultLocaleMonthsShort.indexOf(monthStr),\n            parseInt(dayStr, 10),\n            parseInt(hourStr, 10),\n            parseInt(minuteStr, 10)\n        ];\n\n        if (secondStr) {\n            result.push(parseInt(secondStr, 10));\n        }\n\n        return result;\n    }\n\n    function untruncateYear(yearStr) {\n        var year = parseInt(yearStr, 10);\n        if (year <= 49) {\n            return 2000 + year;\n        } else if (year <= 999) {\n            return 1900 + year;\n        }\n        return year;\n    }\n\n    function preprocessRFC2822(s) {\n        // Remove comments and folding whitespace and replace multiple-spaces with a single space\n        return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n    }\n\n    function checkWeekday(weekdayStr, parsedInput, config) {\n        if (weekdayStr) {\n            // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n                weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n            if (weekdayProvided !== weekdayActual) {\n                getParsingFlags(config).weekdayMismatch = true;\n                config._isValid = false;\n                return false;\n            }\n        }\n        return true;\n    }\n\n    var obsOffsets = {\n        UT: 0,\n        GMT: 0,\n        EDT: -4 * 60,\n        EST: -5 * 60,\n        CDT: -5 * 60,\n        CST: -6 * 60,\n        MDT: -6 * 60,\n        MST: -7 * 60,\n        PDT: -7 * 60,\n        PST: -8 * 60\n    };\n\n    function calculateOffset(obsOffset, militaryOffset, numOffset) {\n        if (obsOffset) {\n            return obsOffsets[obsOffset];\n        } else if (militaryOffset) {\n            // the only allowed military tz is Z\n            return 0;\n        } else {\n            var hm = parseInt(numOffset, 10);\n            var m = hm % 100, h = (hm - m) / 100;\n            return h * 60 + m;\n        }\n    }\n\n    // date and time from ref 2822 format\n    function configFromRFC2822(config) {\n        var match = rfc2822.exec(preprocessRFC2822(config._i));\n        if (match) {\n            var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n            if (!checkWeekday(match[1], parsedArray, config)) {\n                return;\n            }\n\n            config._a = parsedArray;\n            config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n            config._d = createUTCDate.apply(null, config._a);\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n            getParsingFlags(config).rfc2822 = true;\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    // date from iso format or fallback\n    function configFromString(config) {\n        var matched = aspNetJsonRegex.exec(config._i);\n\n        if (matched !== null) {\n            config._d = new Date(+matched[1]);\n            return;\n        }\n\n        configFromISO(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        configFromRFC2822(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        // Final attempt, use Input Fallback\n        hooks.createFromInputFallback(config);\n    }\n\n    hooks.createFromInputFallback = deprecate(\n        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n        'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n        'discouraged and will be removed in an upcoming major release. Please refer to ' +\n        'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n        function (config) {\n            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n        }\n    );\n\n    // constant that refers to the ISO standard\n    hooks.ISO_8601 = function () {};\n\n    // constant that refers to the RFC 2822 form\n    hooks.RFC_2822 = function () {};\n\n    // date from string and format string\n    function configFromStringAndFormat(config) {\n        // TODO: Move this to another part of the creation flow to prevent circular deps\n        if (config._f === hooks.ISO_8601) {\n            configFromISO(config);\n            return;\n        }\n        if (config._f === hooks.RFC_2822) {\n            configFromRFC2822(config);\n            return;\n        }\n        config._a = [];\n        getParsingFlags(config).empty = true;\n\n        // This array is used to make a Date, either with `new Date` or `Date.UTC`\n        var string = '' + config._i,\n            i, parsedInput, tokens, token, skipped,\n            stringLength = string.length,\n            totalParsedInputLength = 0;\n\n        tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n        for (i = 0; i < tokens.length; i++) {\n            token = tokens[i];\n            parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n            // console.log('token', token, 'parsedInput', parsedInput,\n            //         'regex', getParseRegexForToken(token, config));\n            if (parsedInput) {\n                skipped = string.substr(0, string.indexOf(parsedInput));\n                if (skipped.length > 0) {\n                    getParsingFlags(config).unusedInput.push(skipped);\n                }\n                string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n                totalParsedInputLength += parsedInput.length;\n            }\n            // don't parse if it's not a known token\n            if (formatTokenFunctions[token]) {\n                if (parsedInput) {\n                    getParsingFlags(config).empty = false;\n                }\n                else {\n                    getParsingFlags(config).unusedTokens.push(token);\n                }\n                addTimeToArrayFromToken(token, parsedInput, config);\n            }\n            else if (config._strict && !parsedInput) {\n                getParsingFlags(config).unusedTokens.push(token);\n            }\n        }\n\n        // add remaining unparsed input length to the string\n        getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n        if (string.length > 0) {\n            getParsingFlags(config).unusedInput.push(string);\n        }\n\n        // clear _12h flag if hour is <= 12\n        if (config._a[HOUR] <= 12 &&\n            getParsingFlags(config).bigHour === true &&\n            config._a[HOUR] > 0) {\n            getParsingFlags(config).bigHour = undefined;\n        }\n\n        getParsingFlags(config).parsedDateParts = config._a.slice(0);\n        getParsingFlags(config).meridiem = config._meridiem;\n        // handle meridiem\n        config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n        configFromArray(config);\n        checkOverflow(config);\n    }\n\n\n    function meridiemFixWrap (locale, hour, meridiem) {\n        var isPm;\n\n        if (meridiem == null) {\n            // nothing to do\n            return hour;\n        }\n        if (locale.meridiemHour != null) {\n            return locale.meridiemHour(hour, meridiem);\n        } else if (locale.isPM != null) {\n            // Fallback\n            isPm = locale.isPM(meridiem);\n            if (isPm && hour < 12) {\n                hour += 12;\n            }\n            if (!isPm && hour === 12) {\n                hour = 0;\n            }\n            return hour;\n        } else {\n            // this is not supposed to happen\n            return hour;\n        }\n    }\n\n    // date from string and array of format strings\n    function configFromStringAndArray(config) {\n        var tempConfig,\n            bestMoment,\n\n            scoreToBeat,\n            i,\n            currentScore;\n\n        if (config._f.length === 0) {\n            getParsingFlags(config).invalidFormat = true;\n            config._d = new Date(NaN);\n            return;\n        }\n\n        for (i = 0; i < config._f.length; i++) {\n            currentScore = 0;\n            tempConfig = copyConfig({}, config);\n            if (config._useUTC != null) {\n                tempConfig._useUTC = config._useUTC;\n            }\n            tempConfig._f = config._f[i];\n            configFromStringAndFormat(tempConfig);\n\n            if (!isValid(tempConfig)) {\n                continue;\n            }\n\n            // if there is any input that was not parsed add a penalty for that format\n            currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n            //or tokens\n            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n            getParsingFlags(tempConfig).score = currentScore;\n\n            if (scoreToBeat == null || currentScore < scoreToBeat) {\n                scoreToBeat = currentScore;\n                bestMoment = tempConfig;\n            }\n        }\n\n        extend(config, bestMoment || tempConfig);\n    }\n\n    function configFromObject(config) {\n        if (config._d) {\n            return;\n        }\n\n        var i = normalizeObjectUnits(config._i);\n        config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n            return obj && parseInt(obj, 10);\n        });\n\n        configFromArray(config);\n    }\n\n    function createFromConfig (config) {\n        var res = new Moment(checkOverflow(prepareConfig(config)));\n        if (res._nextDay) {\n            // Adding is smart enough around DST\n            res.add(1, 'd');\n            res._nextDay = undefined;\n        }\n\n        return res;\n    }\n\n    function prepareConfig (config) {\n        var input = config._i,\n            format = config._f;\n\n        config._locale = config._locale || getLocale(config._l);\n\n        if (input === null || (format === undefined && input === '')) {\n            return createInvalid({nullInput: true});\n        }\n\n        if (typeof input === 'string') {\n            config._i = input = config._locale.preparse(input);\n        }\n\n        if (isMoment(input)) {\n            return new Moment(checkOverflow(input));\n        } else if (isDate(input)) {\n            config._d = input;\n        } else if (isArray(format)) {\n            configFromStringAndArray(config);\n        } else if (format) {\n            configFromStringAndFormat(config);\n        }  else {\n            configFromInput(config);\n        }\n\n        if (!isValid(config)) {\n            config._d = null;\n        }\n\n        return config;\n    }\n\n    function configFromInput(config) {\n        var input = config._i;\n        if (isUndefined(input)) {\n            config._d = new Date(hooks.now());\n        } else if (isDate(input)) {\n            config._d = new Date(input.valueOf());\n        } else if (typeof input === 'string') {\n            configFromString(config);\n        } else if (isArray(input)) {\n            config._a = map(input.slice(0), function (obj) {\n                return parseInt(obj, 10);\n            });\n            configFromArray(config);\n        } else if (isObject(input)) {\n            configFromObject(config);\n        } else if (isNumber(input)) {\n            // from milliseconds\n            config._d = new Date(input);\n        } else {\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    function createLocalOrUTC (input, format, locale, strict, isUTC) {\n        var c = {};\n\n        if (locale === true || locale === false) {\n            strict = locale;\n            locale = undefined;\n        }\n\n        if ((isObject(input) && isObjectEmpty(input)) ||\n                (isArray(input) && input.length === 0)) {\n            input = undefined;\n        }\n        // object construction must be done this way.\n        // https://github.com/moment/moment/issues/1423\n        c._isAMomentObject = true;\n        c._useUTC = c._isUTC = isUTC;\n        c._l = locale;\n        c._i = input;\n        c._f = format;\n        c._strict = strict;\n\n        return createFromConfig(c);\n    }\n\n    function createLocal (input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, false);\n    }\n\n    var prototypeMin = deprecate(\n        'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n        function () {\n            var other = createLocal.apply(null, arguments);\n            if (this.isValid() && other.isValid()) {\n                return other < this ? this : other;\n            } else {\n                return createInvalid();\n            }\n        }\n    );\n\n    var prototypeMax = deprecate(\n        'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n        function () {\n            var other = createLocal.apply(null, arguments);\n            if (this.isValid() && other.isValid()) {\n                return other > this ? this : other;\n            } else {\n                return createInvalid();\n            }\n        }\n    );\n\n    // Pick a moment m from moments so that m[fn](other) is true for all\n    // other. This relies on the function fn to be transitive.\n    //\n    // moments should either be an array of moment objects or an array, whose\n    // first element is an array of moment objects.\n    function pickBy(fn, moments) {\n        var res, i;\n        if (moments.length === 1 && isArray(moments[0])) {\n            moments = moments[0];\n        }\n        if (!moments.length) {\n            return createLocal();\n        }\n        res = moments[0];\n        for (i = 1; i < moments.length; ++i) {\n            if (!moments[i].isValid() || moments[i][fn](res)) {\n                res = moments[i];\n            }\n        }\n        return res;\n    }\n\n    // TODO: Use [].sort instead?\n    function min () {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isBefore', args);\n    }\n\n    function max () {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isAfter', args);\n    }\n\n    var now = function () {\n        return Date.now ? Date.now() : +(new Date());\n    };\n\n    var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n    function isDurationValid(m) {\n        for (var key in m) {\n            if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n                return false;\n            }\n        }\n\n        var unitHasDecimal = false;\n        for (var i = 0; i < ordering.length; ++i) {\n            if (m[ordering[i]]) {\n                if (unitHasDecimal) {\n                    return false; // only allow non-integers for smallest unit\n                }\n                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n                    unitHasDecimal = true;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    function isValid$1() {\n        return this._isValid;\n    }\n\n    function createInvalid$1() {\n        return createDuration(NaN);\n    }\n\n    function Duration (duration) {\n        var normalizedInput = normalizeObjectUnits(duration),\n            years = normalizedInput.year || 0,\n            quarters = normalizedInput.quarter || 0,\n            months = normalizedInput.month || 0,\n            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n            days = normalizedInput.day || 0,\n            hours = normalizedInput.hour || 0,\n            minutes = normalizedInput.minute || 0,\n            seconds = normalizedInput.second || 0,\n            milliseconds = normalizedInput.millisecond || 0;\n\n        this._isValid = isDurationValid(normalizedInput);\n\n        // representation for dateAddRemove\n        this._milliseconds = +milliseconds +\n            seconds * 1e3 + // 1000\n            minutes * 6e4 + // 1000 * 60\n            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n        // Because of dateAddRemove treats 24 hours as different from a\n        // day when working around DST, we need to store them separately\n        this._days = +days +\n            weeks * 7;\n        // It is impossible to translate months into days without knowing\n        // which months you are are talking about, so we have to store\n        // it separately.\n        this._months = +months +\n            quarters * 3 +\n            years * 12;\n\n        this._data = {};\n\n        this._locale = getLocale();\n\n        this._bubble();\n    }\n\n    function isDuration (obj) {\n        return obj instanceof Duration;\n    }\n\n    function absRound (number) {\n        if (number < 0) {\n            return Math.round(-1 * number) * -1;\n        } else {\n            return Math.round(number);\n        }\n    }\n\n    // FORMATTING\n\n    function offset (token, separator) {\n        addFormatToken(token, 0, 0, function () {\n            var offset = this.utcOffset();\n            var sign = '+';\n            if (offset < 0) {\n                offset = -offset;\n                sign = '-';\n            }\n            return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n        });\n    }\n\n    offset('Z', ':');\n    offset('ZZ', '');\n\n    // PARSING\n\n    addRegexToken('Z',  matchShortOffset);\n    addRegexToken('ZZ', matchShortOffset);\n    addParseToken(['Z', 'ZZ'], function (input, array, config) {\n        config._useUTC = true;\n        config._tzm = offsetFromString(matchShortOffset, input);\n    });\n\n    // HELPERS\n\n    // timezone chunker\n    // '+10:00' > ['10',  '00']\n    // '-1530'  > ['-15', '30']\n    var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n    function offsetFromString(matcher, string) {\n        var matches = (string || '').match(matcher);\n\n        if (matches === null) {\n            return null;\n        }\n\n        var chunk   = matches[matches.length - 1] || [];\n        var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n        var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n        return minutes === 0 ?\n          0 :\n          parts[0] === '+' ? minutes : -minutes;\n    }\n\n    // Return a moment from input, that is local/utc/zone equivalent to model.\n    function cloneWithOffset(input, model) {\n        var res, diff;\n        if (model._isUTC) {\n            res = model.clone();\n            diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n            // Use low-level api, because this fn is low-level api.\n            res._d.setTime(res._d.valueOf() + diff);\n            hooks.updateOffset(res, false);\n            return res;\n        } else {\n            return createLocal(input).local();\n        }\n    }\n\n    function getDateOffset (m) {\n        // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n        // https://github.com/moment/moment/pull/1871\n        return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n    }\n\n    // HOOKS\n\n    // This function will be called whenever a moment is mutated.\n    // It is intended to keep the offset in sync with the timezone.\n    hooks.updateOffset = function () {};\n\n    // MOMENTS\n\n    // keepLocalTime = true means only change the timezone, without\n    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n    // +0200, so we adjust the time as needed, to be valid.\n    //\n    // Keeping the time actually adds/subtracts (one hour)\n    // from the actual represented time. That is why we call updateOffset\n    // a second time. In case it wants us to change the offset again\n    // _changeInProgress == true case, then we have to adjust, because\n    // there is no such time in the given timezone.\n    function getSetOffset (input, keepLocalTime, keepMinutes) {\n        var offset = this._offset || 0,\n            localAdjust;\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        if (input != null) {\n            if (typeof input === 'string') {\n                input = offsetFromString(matchShortOffset, input);\n                if (input === null) {\n                    return this;\n                }\n            } else if (Math.abs(input) < 16 && !keepMinutes) {\n                input = input * 60;\n            }\n            if (!this._isUTC && keepLocalTime) {\n                localAdjust = getDateOffset(this);\n            }\n            this._offset = input;\n            this._isUTC = true;\n            if (localAdjust != null) {\n                this.add(localAdjust, 'm');\n            }\n            if (offset !== input) {\n                if (!keepLocalTime || this._changeInProgress) {\n                    addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n                } else if (!this._changeInProgress) {\n                    this._changeInProgress = true;\n                    hooks.updateOffset(this, true);\n                    this._changeInProgress = null;\n                }\n            }\n            return this;\n        } else {\n            return this._isUTC ? offset : getDateOffset(this);\n        }\n    }\n\n    function getSetZone (input, keepLocalTime) {\n        if (input != null) {\n            if (typeof input !== 'string') {\n                input = -input;\n            }\n\n            this.utcOffset(input, keepLocalTime);\n\n            return this;\n        } else {\n            return -this.utcOffset();\n        }\n    }\n\n    function setOffsetToUTC (keepLocalTime) {\n        return this.utcOffset(0, keepLocalTime);\n    }\n\n    function setOffsetToLocal (keepLocalTime) {\n        if (this._isUTC) {\n            this.utcOffset(0, keepLocalTime);\n            this._isUTC = false;\n\n            if (keepLocalTime) {\n                this.subtract(getDateOffset(this), 'm');\n            }\n        }\n        return this;\n    }\n\n    function setOffsetToParsedOffset () {\n        if (this._tzm != null) {\n            this.utcOffset(this._tzm, false, true);\n        } else if (typeof this._i === 'string') {\n            var tZone = offsetFromString(matchOffset, this._i);\n            if (tZone != null) {\n                this.utcOffset(tZone);\n            }\n            else {\n                this.utcOffset(0, true);\n            }\n        }\n        return this;\n    }\n\n    function hasAlignedHourOffset (input) {\n        if (!this.isValid()) {\n            return false;\n        }\n        input = input ? createLocal(input).utcOffset() : 0;\n\n        return (this.utcOffset() - input) % 60 === 0;\n    }\n\n    function isDaylightSavingTime () {\n        return (\n            this.utcOffset() > this.clone().month(0).utcOffset() ||\n            this.utcOffset() > this.clone().month(5).utcOffset()\n        );\n    }\n\n    function isDaylightSavingTimeShifted () {\n        if (!isUndefined(this._isDSTShifted)) {\n            return this._isDSTShifted;\n        }\n\n        var c = {};\n\n        copyConfig(c, this);\n        c = prepareConfig(c);\n\n        if (c._a) {\n            var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n            this._isDSTShifted = this.isValid() &&\n                compareArrays(c._a, other.toArray()) > 0;\n        } else {\n            this._isDSTShifted = false;\n        }\n\n        return this._isDSTShifted;\n    }\n\n    function isLocal () {\n        return this.isValid() ? !this._isUTC : false;\n    }\n\n    function isUtcOffset () {\n        return this.isValid() ? this._isUTC : false;\n    }\n\n    function isUtc () {\n        return this.isValid() ? this._isUTC && this._offset === 0 : false;\n    }\n\n    // ASP.NET json date format regex\n    var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n    // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n    // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n    // and further modified to allow for strings containing both week and day\n    var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n    function createDuration (input, key) {\n        var duration = input,\n            // matching against regexp is expensive, do it on demand\n            match = null,\n            sign,\n            ret,\n            diffRes;\n\n        if (isDuration(input)) {\n            duration = {\n                ms : input._milliseconds,\n                d  : input._days,\n                M  : input._months\n            };\n        } else if (isNumber(input)) {\n            duration = {};\n            if (key) {\n                duration[key] = input;\n            } else {\n                duration.milliseconds = input;\n            }\n        } else if (!!(match = aspNetRegex.exec(input))) {\n            sign = (match[1] === '-') ? -1 : 1;\n            duration = {\n                y  : 0,\n                d  : toInt(match[DATE])                         * sign,\n                h  : toInt(match[HOUR])                         * sign,\n                m  : toInt(match[MINUTE])                       * sign,\n                s  : toInt(match[SECOND])                       * sign,\n                ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n            };\n        } else if (!!(match = isoRegex.exec(input))) {\n            sign = (match[1] === '-') ? -1 : 1;\n            duration = {\n                y : parseIso(match[2], sign),\n                M : parseIso(match[3], sign),\n                w : parseIso(match[4], sign),\n                d : parseIso(match[5], sign),\n                h : parseIso(match[6], sign),\n                m : parseIso(match[7], sign),\n                s : parseIso(match[8], sign)\n            };\n        } else if (duration == null) {// checks for null or undefined\n            duration = {};\n        } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n            diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n            duration = {};\n            duration.ms = diffRes.milliseconds;\n            duration.M = diffRes.months;\n        }\n\n        ret = new Duration(duration);\n\n        if (isDuration(input) && hasOwnProp(input, '_locale')) {\n            ret._locale = input._locale;\n        }\n\n        return ret;\n    }\n\n    createDuration.fn = Duration.prototype;\n    createDuration.invalid = createInvalid$1;\n\n    function parseIso (inp, sign) {\n        // We'd normally use ~~inp for this, but unfortunately it also\n        // converts floats to ints.\n        // inp may be undefined, so careful calling replace on it.\n        var res = inp && parseFloat(inp.replace(',', '.'));\n        // apply sign while we're at it\n        return (isNaN(res) ? 0 : res) * sign;\n    }\n\n    function positiveMomentsDifference(base, other) {\n        var res = {};\n\n        res.months = other.month() - base.month() +\n            (other.year() - base.year()) * 12;\n        if (base.clone().add(res.months, 'M').isAfter(other)) {\n            --res.months;\n        }\n\n        res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n        return res;\n    }\n\n    function momentsDifference(base, other) {\n        var res;\n        if (!(base.isValid() && other.isValid())) {\n            return {milliseconds: 0, months: 0};\n        }\n\n        other = cloneWithOffset(other, base);\n        if (base.isBefore(other)) {\n            res = positiveMomentsDifference(base, other);\n        } else {\n            res = positiveMomentsDifference(other, base);\n            res.milliseconds = -res.milliseconds;\n            res.months = -res.months;\n        }\n\n        return res;\n    }\n\n    // TODO: remove 'name' arg after deprecation is removed\n    function createAdder(direction, name) {\n        return function (val, period) {\n            var dur, tmp;\n            //invert the arguments, but complain about it\n            if (period !== null && !isNaN(+period)) {\n                deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n                'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n                tmp = val; val = period; period = tmp;\n            }\n\n            val = typeof val === 'string' ? +val : val;\n            dur = createDuration(val, period);\n            addSubtract(this, dur, direction);\n            return this;\n        };\n    }\n\n    function addSubtract (mom, duration, isAdding, updateOffset) {\n        var milliseconds = duration._milliseconds,\n            days = absRound(duration._days),\n            months = absRound(duration._months);\n\n        if (!mom.isValid()) {\n            // No op\n            return;\n        }\n\n        updateOffset = updateOffset == null ? true : updateOffset;\n\n        if (months) {\n            setMonth(mom, get(mom, 'Month') + months * isAdding);\n        }\n        if (days) {\n            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n        }\n        if (milliseconds) {\n            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n        }\n        if (updateOffset) {\n            hooks.updateOffset(mom, days || months);\n        }\n    }\n\n    var add      = createAdder(1, 'add');\n    var subtract = createAdder(-1, 'subtract');\n\n    function getCalendarFormat(myMoment, now) {\n        var diff = myMoment.diff(now, 'days', true);\n        return diff < -6 ? 'sameElse' :\n                diff < -1 ? 'lastWeek' :\n                diff < 0 ? 'lastDay' :\n                diff < 1 ? 'sameDay' :\n                diff < 2 ? 'nextDay' :\n                diff < 7 ? 'nextWeek' : 'sameElse';\n    }\n\n    function calendar$1 (time, formats) {\n        // We want to compare the start of today, vs this.\n        // Getting start-of-today depends on whether we're local/utc/offset or not.\n        var now = time || createLocal(),\n            sod = cloneWithOffset(now, this).startOf('day'),\n            format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n        var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n        return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n    }\n\n    function clone () {\n        return new Moment(this);\n    }\n\n    function isAfter (input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() > localInput.valueOf();\n        } else {\n            return localInput.valueOf() < this.clone().startOf(units).valueOf();\n        }\n    }\n\n    function isBefore (input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() < localInput.valueOf();\n        } else {\n            return this.clone().endOf(units).valueOf() < localInput.valueOf();\n        }\n    }\n\n    function isBetween (from, to, units, inclusivity) {\n        var localFrom = isMoment(from) ? from : createLocal(from),\n            localTo = isMoment(to) ? to : createLocal(to);\n        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n            return false;\n        }\n        inclusivity = inclusivity || '()';\n        return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n            (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n    }\n\n    function isSame (input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input),\n            inputMs;\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() === localInput.valueOf();\n        } else {\n            inputMs = localInput.valueOf();\n            return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n        }\n    }\n\n    function isSameOrAfter (input, units) {\n        return this.isSame(input, units) || this.isAfter(input, units);\n    }\n\n    function isSameOrBefore (input, units) {\n        return this.isSame(input, units) || this.isBefore(input, units);\n    }\n\n    function diff (input, units, asFloat) {\n        var that,\n            zoneDelta,\n            output;\n\n        if (!this.isValid()) {\n            return NaN;\n        }\n\n        that = cloneWithOffset(input, this);\n\n        if (!that.isValid()) {\n            return NaN;\n        }\n\n        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n        units = normalizeUnits(units);\n\n        switch (units) {\n            case 'year': output = monthDiff(this, that) / 12; break;\n            case 'month': output = monthDiff(this, that); break;\n            case 'quarter': output = monthDiff(this, that) / 3; break;\n            case 'second': output = (this - that) / 1e3; break; // 1000\n            case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n            case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n            case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n            case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n            default: output = this - that;\n        }\n\n        return asFloat ? output : absFloor(output);\n    }\n\n    function monthDiff (a, b) {\n        // difference in months\n        var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n            // b is in (anchor - 1 month, anchor + 1 month)\n            anchor = a.clone().add(wholeMonthDiff, 'months'),\n            anchor2, adjust;\n\n        if (b - anchor < 0) {\n            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor - anchor2);\n        } else {\n            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor2 - anchor);\n        }\n\n        //check for negative zero, return zero if negative zero\n        return -(wholeMonthDiff + adjust) || 0;\n    }\n\n    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n    function toString () {\n        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n    }\n\n    function toISOString(keepOffset) {\n        if (!this.isValid()) {\n            return null;\n        }\n        var utc = keepOffset !== true;\n        var m = utc ? this.clone().utc() : this;\n        if (m.year() < 0 || m.year() > 9999) {\n            return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n        }\n        if (isFunction(Date.prototype.toISOString)) {\n            // native implementation is ~50x faster, use it when we can\n            if (utc) {\n                return this.toDate().toISOString();\n            } else {\n                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n            }\n        }\n        return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n    }\n\n    /**\n     * Return a human readable representation of a moment that can\n     * also be evaluated to get a new moment which is the same\n     *\n     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n     */\n    function inspect () {\n        if (!this.isValid()) {\n            return 'moment.invalid(/* ' + this._i + ' */)';\n        }\n        var func = 'moment';\n        var zone = '';\n        if (!this.isLocal()) {\n            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n            zone = 'Z';\n        }\n        var prefix = '[' + func + '(\"]';\n        var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n        var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n        var suffix = zone + '[\")]';\n\n        return this.format(prefix + year + datetime + suffix);\n    }\n\n    function format (inputString) {\n        if (!inputString) {\n            inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n        }\n        var output = formatMoment(this, inputString);\n        return this.localeData().postformat(output);\n    }\n\n    function from (time, withoutSuffix) {\n        if (this.isValid() &&\n                ((isMoment(time) && time.isValid()) ||\n                 createLocal(time).isValid())) {\n            return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function fromNow (withoutSuffix) {\n        return this.from(createLocal(), withoutSuffix);\n    }\n\n    function to (time, withoutSuffix) {\n        if (this.isValid() &&\n                ((isMoment(time) && time.isValid()) ||\n                 createLocal(time).isValid())) {\n            return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function toNow (withoutSuffix) {\n        return this.to(createLocal(), withoutSuffix);\n    }\n\n    // If passed a locale key, it will set the locale for this\n    // instance.  Otherwise, it will return the locale configuration\n    // variables for this instance.\n    function locale (key) {\n        var newLocaleData;\n\n        if (key === undefined) {\n            return this._locale._abbr;\n        } else {\n            newLocaleData = getLocale(key);\n            if (newLocaleData != null) {\n                this._locale = newLocaleData;\n            }\n            return this;\n        }\n    }\n\n    var lang = deprecate(\n        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n        function (key) {\n            if (key === undefined) {\n                return this.localeData();\n            } else {\n                return this.locale(key);\n            }\n        }\n    );\n\n    function localeData () {\n        return this._locale;\n    }\n\n    var MS_PER_SECOND = 1000;\n    var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n    var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n    var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n    // actual modulo - handles negative numbers (for dates before 1970):\n    function mod$1(dividend, divisor) {\n        return (dividend % divisor + divisor) % divisor;\n    }\n\n    function localStartOfDate(y, m, d) {\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return new Date(y, m, d).valueOf();\n        }\n    }\n\n    function utcStartOfDate(y, m, d) {\n        // Date.UTC remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return Date.UTC(y, m, d);\n        }\n    }\n\n    function startOf (units) {\n        var time;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year(), 0, 1);\n                break;\n            case 'quarter':\n                time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month(), 1);\n                break;\n            case 'week':\n                time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n                break;\n            case 'isoWeek':\n                time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date());\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_MINUTE);\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_SECOND);\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function endOf (units) {\n        var time;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year() + 1, 0, 1) - 1;\n                break;\n            case 'quarter':\n                time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n                break;\n            case 'week':\n                time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n                break;\n            case 'isoWeek':\n                time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function valueOf () {\n        return this._d.valueOf() - ((this._offset || 0) * 60000);\n    }\n\n    function unix () {\n        return Math.floor(this.valueOf() / 1000);\n    }\n\n    function toDate () {\n        return new Date(this.valueOf());\n    }\n\n    function toArray () {\n        var m = this;\n        return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n    }\n\n    function toObject () {\n        var m = this;\n        return {\n            years: m.year(),\n            months: m.month(),\n            date: m.date(),\n            hours: m.hours(),\n            minutes: m.minutes(),\n            seconds: m.seconds(),\n            milliseconds: m.milliseconds()\n        };\n    }\n\n    function toJSON () {\n        // new Date(NaN).toJSON() === null\n        return this.isValid() ? this.toISOString() : null;\n    }\n\n    function isValid$2 () {\n        return isValid(this);\n    }\n\n    function parsingFlags () {\n        return extend({}, getParsingFlags(this));\n    }\n\n    function invalidAt () {\n        return getParsingFlags(this).overflow;\n    }\n\n    function creationData() {\n        return {\n            input: this._i,\n            format: this._f,\n            locale: this._locale,\n            isUTC: this._isUTC,\n            strict: this._strict\n        };\n    }\n\n    // FORMATTING\n\n    addFormatToken(0, ['gg', 2], 0, function () {\n        return this.weekYear() % 100;\n    });\n\n    addFormatToken(0, ['GG', 2], 0, function () {\n        return this.isoWeekYear() % 100;\n    });\n\n    function addWeekYearFormatToken (token, getter) {\n        addFormatToken(0, [token, token.length], 0, getter);\n    }\n\n    addWeekYearFormatToken('gggg',     'weekYear');\n    addWeekYearFormatToken('ggggg',    'weekYear');\n    addWeekYearFormatToken('GGGG',  'isoWeekYear');\n    addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n    // ALIASES\n\n    addUnitAlias('weekYear', 'gg');\n    addUnitAlias('isoWeekYear', 'GG');\n\n    // PRIORITY\n\n    addUnitPriority('weekYear', 1);\n    addUnitPriority('isoWeekYear', 1);\n\n\n    // PARSING\n\n    addRegexToken('G',      matchSigned);\n    addRegexToken('g',      matchSigned);\n    addRegexToken('GG',     match1to2, match2);\n    addRegexToken('gg',     match1to2, match2);\n    addRegexToken('GGGG',   match1to4, match4);\n    addRegexToken('gggg',   match1to4, match4);\n    addRegexToken('GGGGG',  match1to6, match6);\n    addRegexToken('ggggg',  match1to6, match6);\n\n    addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n        week[token.substr(0, 2)] = toInt(input);\n    });\n\n    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n        week[token] = hooks.parseTwoDigitYear(input);\n    });\n\n    // MOMENTS\n\n    function getSetWeekYear (input) {\n        return getSetWeekYearHelper.call(this,\n                input,\n                this.week(),\n                this.weekday(),\n                this.localeData()._week.dow,\n                this.localeData()._week.doy);\n    }\n\n    function getSetISOWeekYear (input) {\n        return getSetWeekYearHelper.call(this,\n                input, this.isoWeek(), this.isoWeekday(), 1, 4);\n    }\n\n    function getISOWeeksInYear () {\n        return weeksInYear(this.year(), 1, 4);\n    }\n\n    function getWeeksInYear () {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n        var weeksTarget;\n        if (input == null) {\n            return weekOfYear(this, dow, doy).year;\n        } else {\n            weeksTarget = weeksInYear(input, dow, doy);\n            if (week > weeksTarget) {\n                week = weeksTarget;\n            }\n            return setWeekAll.call(this, input, week, weekday, dow, doy);\n        }\n    }\n\n    function setWeekAll(weekYear, week, weekday, dow, doy) {\n        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n        this.year(date.getUTCFullYear());\n        this.month(date.getUTCMonth());\n        this.date(date.getUTCDate());\n        return this;\n    }\n\n    // FORMATTING\n\n    addFormatToken('Q', 0, 'Qo', 'quarter');\n\n    // ALIASES\n\n    addUnitAlias('quarter', 'Q');\n\n    // PRIORITY\n\n    addUnitPriority('quarter', 7);\n\n    // PARSING\n\n    addRegexToken('Q', match1);\n    addParseToken('Q', function (input, array) {\n        array[MONTH] = (toInt(input) - 1) * 3;\n    });\n\n    // MOMENTS\n\n    function getSetQuarter (input) {\n        return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n    }\n\n    // FORMATTING\n\n    addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n    // ALIASES\n\n    addUnitAlias('date', 'D');\n\n    // PRIORITY\n    addUnitPriority('date', 9);\n\n    // PARSING\n\n    addRegexToken('D',  match1to2);\n    addRegexToken('DD', match1to2, match2);\n    addRegexToken('Do', function (isStrict, locale) {\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        return isStrict ?\n          (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n          locale._dayOfMonthOrdinalParseLenient;\n    });\n\n    addParseToken(['D', 'DD'], DATE);\n    addParseToken('Do', function (input, array) {\n        array[DATE] = toInt(input.match(match1to2)[0]);\n    });\n\n    // MOMENTS\n\n    var getSetDayOfMonth = makeGetSet('Date', true);\n\n    // FORMATTING\n\n    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n    // ALIASES\n\n    addUnitAlias('dayOfYear', 'DDD');\n\n    // PRIORITY\n    addUnitPriority('dayOfYear', 4);\n\n    // PARSING\n\n    addRegexToken('DDD',  match1to3);\n    addRegexToken('DDDD', match3);\n    addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n        config._dayOfYear = toInt(input);\n    });\n\n    // HELPERS\n\n    // MOMENTS\n\n    function getSetDayOfYear (input) {\n        var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n        return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('m', ['mm', 2], 0, 'minute');\n\n    // ALIASES\n\n    addUnitAlias('minute', 'm');\n\n    // PRIORITY\n\n    addUnitPriority('minute', 14);\n\n    // PARSING\n\n    addRegexToken('m',  match1to2);\n    addRegexToken('mm', match1to2, match2);\n    addParseToken(['m', 'mm'], MINUTE);\n\n    // MOMENTS\n\n    var getSetMinute = makeGetSet('Minutes', false);\n\n    // FORMATTING\n\n    addFormatToken('s', ['ss', 2], 0, 'second');\n\n    // ALIASES\n\n    addUnitAlias('second', 's');\n\n    // PRIORITY\n\n    addUnitPriority('second', 15);\n\n    // PARSING\n\n    addRegexToken('s',  match1to2);\n    addRegexToken('ss', match1to2, match2);\n    addParseToken(['s', 'ss'], SECOND);\n\n    // MOMENTS\n\n    var getSetSecond = makeGetSet('Seconds', false);\n\n    // FORMATTING\n\n    addFormatToken('S', 0, 0, function () {\n        return ~~(this.millisecond() / 100);\n    });\n\n    addFormatToken(0, ['SS', 2], 0, function () {\n        return ~~(this.millisecond() / 10);\n    });\n\n    addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n    addFormatToken(0, ['SSSS', 4], 0, function () {\n        return this.millisecond() * 10;\n    });\n    addFormatToken(0, ['SSSSS', 5], 0, function () {\n        return this.millisecond() * 100;\n    });\n    addFormatToken(0, ['SSSSSS', 6], 0, function () {\n        return this.millisecond() * 1000;\n    });\n    addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n        return this.millisecond() * 10000;\n    });\n    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n        return this.millisecond() * 100000;\n    });\n    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n        return this.millisecond() * 1000000;\n    });\n\n\n    // ALIASES\n\n    addUnitAlias('millisecond', 'ms');\n\n    // PRIORITY\n\n    addUnitPriority('millisecond', 16);\n\n    // PARSING\n\n    addRegexToken('S',    match1to3, match1);\n    addRegexToken('SS',   match1to3, match2);\n    addRegexToken('SSS',  match1to3, match3);\n\n    var token;\n    for (token = 'SSSS'; token.length <= 9; token += 'S') {\n        addRegexToken(token, matchUnsigned);\n    }\n\n    function parseMs(input, array) {\n        array[MILLISECOND] = toInt(('0.' + input) * 1000);\n    }\n\n    for (token = 'S'; token.length <= 9; token += 'S') {\n        addParseToken(token, parseMs);\n    }\n    // MOMENTS\n\n    var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n    // FORMATTING\n\n    addFormatToken('z',  0, 0, 'zoneAbbr');\n    addFormatToken('zz', 0, 0, 'zoneName');\n\n    // MOMENTS\n\n    function getZoneAbbr () {\n        return this._isUTC ? 'UTC' : '';\n    }\n\n    function getZoneName () {\n        return this._isUTC ? 'Coordinated Universal Time' : '';\n    }\n\n    var proto = Moment.prototype;\n\n    proto.add               = add;\n    proto.calendar          = calendar$1;\n    proto.clone             = clone;\n    proto.diff              = diff;\n    proto.endOf             = endOf;\n    proto.format            = format;\n    proto.from              = from;\n    proto.fromNow           = fromNow;\n    proto.to                = to;\n    proto.toNow             = toNow;\n    proto.get               = stringGet;\n    proto.invalidAt         = invalidAt;\n    proto.isAfter           = isAfter;\n    proto.isBefore          = isBefore;\n    proto.isBetween         = isBetween;\n    proto.isSame            = isSame;\n    proto.isSameOrAfter     = isSameOrAfter;\n    proto.isSameOrBefore    = isSameOrBefore;\n    proto.isValid           = isValid$2;\n    proto.lang              = lang;\n    proto.locale            = locale;\n    proto.localeData        = localeData;\n    proto.max               = prototypeMax;\n    proto.min               = prototypeMin;\n    proto.parsingFlags      = parsingFlags;\n    proto.set               = stringSet;\n    proto.startOf           = startOf;\n    proto.subtract          = subtract;\n    proto.toArray           = toArray;\n    proto.toObject          = toObject;\n    proto.toDate            = toDate;\n    proto.toISOString       = toISOString;\n    proto.inspect           = inspect;\n    proto.toJSON            = toJSON;\n    proto.toString          = toString;\n    proto.unix              = unix;\n    proto.valueOf           = valueOf;\n    proto.creationData      = creationData;\n    proto.year       = getSetYear;\n    proto.isLeapYear = getIsLeapYear;\n    proto.weekYear    = getSetWeekYear;\n    proto.isoWeekYear = getSetISOWeekYear;\n    proto.quarter = proto.quarters = getSetQuarter;\n    proto.month       = getSetMonth;\n    proto.daysInMonth = getDaysInMonth;\n    proto.week           = proto.weeks        = getSetWeek;\n    proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;\n    proto.weeksInYear    = getWeeksInYear;\n    proto.isoWeeksInYear = getISOWeeksInYear;\n    proto.date       = getSetDayOfMonth;\n    proto.day        = proto.days             = getSetDayOfWeek;\n    proto.weekday    = getSetLocaleDayOfWeek;\n    proto.isoWeekday = getSetISODayOfWeek;\n    proto.dayOfYear  = getSetDayOfYear;\n    proto.hour = proto.hours = getSetHour;\n    proto.minute = proto.minutes = getSetMinute;\n    proto.second = proto.seconds = getSetSecond;\n    proto.millisecond = proto.milliseconds = getSetMillisecond;\n    proto.utcOffset            = getSetOffset;\n    proto.utc                  = setOffsetToUTC;\n    proto.local                = setOffsetToLocal;\n    proto.parseZone            = setOffsetToParsedOffset;\n    proto.hasAlignedHourOffset = hasAlignedHourOffset;\n    proto.isDST                = isDaylightSavingTime;\n    proto.isLocal              = isLocal;\n    proto.isUtcOffset          = isUtcOffset;\n    proto.isUtc                = isUtc;\n    proto.isUTC                = isUtc;\n    proto.zoneAbbr = getZoneAbbr;\n    proto.zoneName = getZoneName;\n    proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n    proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n    proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n    proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n    proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n    function createUnix (input) {\n        return createLocal(input * 1000);\n    }\n\n    function createInZone () {\n        return createLocal.apply(null, arguments).parseZone();\n    }\n\n    function preParsePostFormat (string) {\n        return string;\n    }\n\n    var proto$1 = Locale.prototype;\n\n    proto$1.calendar        = calendar;\n    proto$1.longDateFormat  = longDateFormat;\n    proto$1.invalidDate     = invalidDate;\n    proto$1.ordinal         = ordinal;\n    proto$1.preparse        = preParsePostFormat;\n    proto$1.postformat      = preParsePostFormat;\n    proto$1.relativeTime    = relativeTime;\n    proto$1.pastFuture      = pastFuture;\n    proto$1.set             = set;\n\n    proto$1.months            =        localeMonths;\n    proto$1.monthsShort       =        localeMonthsShort;\n    proto$1.monthsParse       =        localeMonthsParse;\n    proto$1.monthsRegex       = monthsRegex;\n    proto$1.monthsShortRegex  = monthsShortRegex;\n    proto$1.week = localeWeek;\n    proto$1.firstDayOfYear = localeFirstDayOfYear;\n    proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n    proto$1.weekdays       =        localeWeekdays;\n    proto$1.weekdaysMin    =        localeWeekdaysMin;\n    proto$1.weekdaysShort  =        localeWeekdaysShort;\n    proto$1.weekdaysParse  =        localeWeekdaysParse;\n\n    proto$1.weekdaysRegex       =        weekdaysRegex;\n    proto$1.weekdaysShortRegex  =        weekdaysShortRegex;\n    proto$1.weekdaysMinRegex    =        weekdaysMinRegex;\n\n    proto$1.isPM = localeIsPM;\n    proto$1.meridiem = localeMeridiem;\n\n    function get$1 (format, index, field, setter) {\n        var locale = getLocale();\n        var utc = createUTC().set(setter, index);\n        return locale[field](utc, format);\n    }\n\n    function listMonthsImpl (format, index, field) {\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n\n        if (index != null) {\n            return get$1(format, index, field, 'month');\n        }\n\n        var i;\n        var out = [];\n        for (i = 0; i < 12; i++) {\n            out[i] = get$1(format, i, field, 'month');\n        }\n        return out;\n    }\n\n    // ()\n    // (5)\n    // (fmt, 5)\n    // (fmt)\n    // (true)\n    // (true, 5)\n    // (true, fmt, 5)\n    // (true, fmt)\n    function listWeekdaysImpl (localeSorted, format, index, field) {\n        if (typeof localeSorted === 'boolean') {\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        } else {\n            format = localeSorted;\n            index = format;\n            localeSorted = false;\n\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        }\n\n        var locale = getLocale(),\n            shift = localeSorted ? locale._week.dow : 0;\n\n        if (index != null) {\n            return get$1(format, (index + shift) % 7, field, 'day');\n        }\n\n        var i;\n        var out = [];\n        for (i = 0; i < 7; i++) {\n            out[i] = get$1(format, (i + shift) % 7, field, 'day');\n        }\n        return out;\n    }\n\n    function listMonths (format, index) {\n        return listMonthsImpl(format, index, 'months');\n    }\n\n    function listMonthsShort (format, index) {\n        return listMonthsImpl(format, index, 'monthsShort');\n    }\n\n    function listWeekdays (localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n    }\n\n    function listWeekdaysShort (localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n    }\n\n    function listWeekdaysMin (localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n    }\n\n    getSetGlobalLocale('en', {\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal : function (number) {\n            var b = number % 10,\n                output = (toInt(number % 100 / 10) === 1) ? 'th' :\n                (b === 1) ? 'st' :\n                (b === 2) ? 'nd' :\n                (b === 3) ? 'rd' : 'th';\n            return number + output;\n        }\n    });\n\n    // Side effect imports\n\n    hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n    hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n    var mathAbs = Math.abs;\n\n    function abs () {\n        var data           = this._data;\n\n        this._milliseconds = mathAbs(this._milliseconds);\n        this._days         = mathAbs(this._days);\n        this._months       = mathAbs(this._months);\n\n        data.milliseconds  = mathAbs(data.milliseconds);\n        data.seconds       = mathAbs(data.seconds);\n        data.minutes       = mathAbs(data.minutes);\n        data.hours         = mathAbs(data.hours);\n        data.months        = mathAbs(data.months);\n        data.years         = mathAbs(data.years);\n\n        return this;\n    }\n\n    function addSubtract$1 (duration, input, value, direction) {\n        var other = createDuration(input, value);\n\n        duration._milliseconds += direction * other._milliseconds;\n        duration._days         += direction * other._days;\n        duration._months       += direction * other._months;\n\n        return duration._bubble();\n    }\n\n    // supports only 2.0-style add(1, 's') or add(duration)\n    function add$1 (input, value) {\n        return addSubtract$1(this, input, value, 1);\n    }\n\n    // supports only 2.0-style subtract(1, 's') or subtract(duration)\n    function subtract$1 (input, value) {\n        return addSubtract$1(this, input, value, -1);\n    }\n\n    function absCeil (number) {\n        if (number < 0) {\n            return Math.floor(number);\n        } else {\n            return Math.ceil(number);\n        }\n    }\n\n    function bubble () {\n        var milliseconds = this._milliseconds;\n        var days         = this._days;\n        var months       = this._months;\n        var data         = this._data;\n        var seconds, minutes, hours, years, monthsFromDays;\n\n        // if we have a mix of positive and negative values, bubble down first\n        // check: https://github.com/moment/moment/issues/2166\n        if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n                (milliseconds <= 0 && days <= 0 && months <= 0))) {\n            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n            days = 0;\n            months = 0;\n        }\n\n        // The following code bubbles up values, see the tests for\n        // examples of what that means.\n        data.milliseconds = milliseconds % 1000;\n\n        seconds           = absFloor(milliseconds / 1000);\n        data.seconds      = seconds % 60;\n\n        minutes           = absFloor(seconds / 60);\n        data.minutes      = minutes % 60;\n\n        hours             = absFloor(minutes / 60);\n        data.hours        = hours % 24;\n\n        days += absFloor(hours / 24);\n\n        // convert days to months\n        monthsFromDays = absFloor(daysToMonths(days));\n        months += monthsFromDays;\n        days -= absCeil(monthsToDays(monthsFromDays));\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        data.days   = days;\n        data.months = months;\n        data.years  = years;\n\n        return this;\n    }\n\n    function daysToMonths (days) {\n        // 400 years have 146097 days (taking into account leap year rules)\n        // 400 years have 12 months === 4800\n        return days * 4800 / 146097;\n    }\n\n    function monthsToDays (months) {\n        // the reverse of daysToMonths\n        return months * 146097 / 4800;\n    }\n\n    function as (units) {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        var days;\n        var months;\n        var milliseconds = this._milliseconds;\n\n        units = normalizeUnits(units);\n\n        if (units === 'month' || units === 'quarter' || units === 'year') {\n            days = this._days + milliseconds / 864e5;\n            months = this._months + daysToMonths(days);\n            switch (units) {\n                case 'month':   return months;\n                case 'quarter': return months / 3;\n                case 'year':    return months / 12;\n            }\n        } else {\n            // handle milliseconds separately because of floating point math errors (issue #1867)\n            days = this._days + Math.round(monthsToDays(this._months));\n            switch (units) {\n                case 'week'   : return days / 7     + milliseconds / 6048e5;\n                case 'day'    : return days         + milliseconds / 864e5;\n                case 'hour'   : return days * 24    + milliseconds / 36e5;\n                case 'minute' : return days * 1440  + milliseconds / 6e4;\n                case 'second' : return days * 86400 + milliseconds / 1000;\n                // Math.floor prevents floating point math errors here\n                case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n                default: throw new Error('Unknown unit ' + units);\n            }\n        }\n    }\n\n    // TODO: Use this.as('ms')?\n    function valueOf$1 () {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        return (\n            this._milliseconds +\n            this._days * 864e5 +\n            (this._months % 12) * 2592e6 +\n            toInt(this._months / 12) * 31536e6\n        );\n    }\n\n    function makeAs (alias) {\n        return function () {\n            return this.as(alias);\n        };\n    }\n\n    var asMilliseconds = makeAs('ms');\n    var asSeconds      = makeAs('s');\n    var asMinutes      = makeAs('m');\n    var asHours        = makeAs('h');\n    var asDays         = makeAs('d');\n    var asWeeks        = makeAs('w');\n    var asMonths       = makeAs('M');\n    var asQuarters     = makeAs('Q');\n    var asYears        = makeAs('y');\n\n    function clone$1 () {\n        return createDuration(this);\n    }\n\n    function get$2 (units) {\n        units = normalizeUnits(units);\n        return this.isValid() ? this[units + 's']() : NaN;\n    }\n\n    function makeGetter(name) {\n        return function () {\n            return this.isValid() ? this._data[name] : NaN;\n        };\n    }\n\n    var milliseconds = makeGetter('milliseconds');\n    var seconds      = makeGetter('seconds');\n    var minutes      = makeGetter('minutes');\n    var hours        = makeGetter('hours');\n    var days         = makeGetter('days');\n    var months       = makeGetter('months');\n    var years        = makeGetter('years');\n\n    function weeks () {\n        return absFloor(this.days() / 7);\n    }\n\n    var round = Math.round;\n    var thresholds = {\n        ss: 44,         // a few seconds to seconds\n        s : 45,         // seconds to minute\n        m : 45,         // minutes to hour\n        h : 22,         // hours to day\n        d : 26,         // days to month\n        M : 11          // months to year\n    };\n\n    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n    }\n\n    function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n        var duration = createDuration(posNegDuration).abs();\n        var seconds  = round(duration.as('s'));\n        var minutes  = round(duration.as('m'));\n        var hours    = round(duration.as('h'));\n        var days     = round(duration.as('d'));\n        var months   = round(duration.as('M'));\n        var years    = round(duration.as('y'));\n\n        var a = seconds <= thresholds.ss && ['s', seconds]  ||\n                seconds < thresholds.s   && ['ss', seconds] ||\n                minutes <= 1             && ['m']           ||\n                minutes < thresholds.m   && ['mm', minutes] ||\n                hours   <= 1             && ['h']           ||\n                hours   < thresholds.h   && ['hh', hours]   ||\n                days    <= 1             && ['d']           ||\n                days    < thresholds.d   && ['dd', days]    ||\n                months  <= 1             && ['M']           ||\n                months  < thresholds.M   && ['MM', months]  ||\n                years   <= 1             && ['y']           || ['yy', years];\n\n        a[2] = withoutSuffix;\n        a[3] = +posNegDuration > 0;\n        a[4] = locale;\n        return substituteTimeAgo.apply(null, a);\n    }\n\n    // This function allows you to set the rounding function for relative time strings\n    function getSetRelativeTimeRounding (roundingFunction) {\n        if (roundingFunction === undefined) {\n            return round;\n        }\n        if (typeof(roundingFunction) === 'function') {\n            round = roundingFunction;\n            return true;\n        }\n        return false;\n    }\n\n    // This function allows you to set a threshold for relative time strings\n    function getSetRelativeTimeThreshold (threshold, limit) {\n        if (thresholds[threshold] === undefined) {\n            return false;\n        }\n        if (limit === undefined) {\n            return thresholds[threshold];\n        }\n        thresholds[threshold] = limit;\n        if (threshold === 's') {\n            thresholds.ss = limit - 1;\n        }\n        return true;\n    }\n\n    function humanize (withSuffix) {\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var locale = this.localeData();\n        var output = relativeTime$1(this, !withSuffix, locale);\n\n        if (withSuffix) {\n            output = locale.pastFuture(+this, output);\n        }\n\n        return locale.postformat(output);\n    }\n\n    var abs$1 = Math.abs;\n\n    function sign(x) {\n        return ((x > 0) - (x < 0)) || +x;\n    }\n\n    function toISOString$1() {\n        // for ISO strings we do not use the normal bubbling rules:\n        //  * milliseconds bubble up until they become hours\n        //  * days do not bubble at all\n        //  * months bubble up until they become years\n        // This is because there is no context-free conversion between hours and days\n        // (think of clock changes)\n        // and also not between days and months (28-31 days per month)\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var seconds = abs$1(this._milliseconds) / 1000;\n        var days         = abs$1(this._days);\n        var months       = abs$1(this._months);\n        var minutes, hours, years;\n\n        // 3600 seconds -> 60 minutes -> 1 hour\n        minutes           = absFloor(seconds / 60);\n        hours             = absFloor(minutes / 60);\n        seconds %= 60;\n        minutes %= 60;\n\n        // 12 months -> 1 year\n        years  = absFloor(months / 12);\n        months %= 12;\n\n\n        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n        var Y = years;\n        var M = months;\n        var D = days;\n        var h = hours;\n        var m = minutes;\n        var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n        var total = this.asSeconds();\n\n        if (!total) {\n            // this is the same as C#'s (Noda) and python (isodate)...\n            // but not other JS (goog.date)\n            return 'P0D';\n        }\n\n        var totalSign = total < 0 ? '-' : '';\n        var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n        var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n        var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n        return totalSign + 'P' +\n            (Y ? ymSign + Y + 'Y' : '') +\n            (M ? ymSign + M + 'M' : '') +\n            (D ? daysSign + D + 'D' : '') +\n            ((h || m || s) ? 'T' : '') +\n            (h ? hmsSign + h + 'H' : '') +\n            (m ? hmsSign + m + 'M' : '') +\n            (s ? hmsSign + s + 'S' : '');\n    }\n\n    var proto$2 = Duration.prototype;\n\n    proto$2.isValid        = isValid$1;\n    proto$2.abs            = abs;\n    proto$2.add            = add$1;\n    proto$2.subtract       = subtract$1;\n    proto$2.as             = as;\n    proto$2.asMilliseconds = asMilliseconds;\n    proto$2.asSeconds      = asSeconds;\n    proto$2.asMinutes      = asMinutes;\n    proto$2.asHours        = asHours;\n    proto$2.asDays         = asDays;\n    proto$2.asWeeks        = asWeeks;\n    proto$2.asMonths       = asMonths;\n    proto$2.asQuarters     = asQuarters;\n    proto$2.asYears        = asYears;\n    proto$2.valueOf        = valueOf$1;\n    proto$2._bubble        = bubble;\n    proto$2.clone          = clone$1;\n    proto$2.get            = get$2;\n    proto$2.milliseconds   = milliseconds;\n    proto$2.seconds        = seconds;\n    proto$2.minutes        = minutes;\n    proto$2.hours          = hours;\n    proto$2.days           = days;\n    proto$2.weeks          = weeks;\n    proto$2.months         = months;\n    proto$2.years          = years;\n    proto$2.humanize       = humanize;\n    proto$2.toISOString    = toISOString$1;\n    proto$2.toString       = toISOString$1;\n    proto$2.toJSON         = toISOString$1;\n    proto$2.locale         = locale;\n    proto$2.localeData     = localeData;\n\n    proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n    proto$2.lang = lang;\n\n    // Side effect imports\n\n    // FORMATTING\n\n    addFormatToken('X', 0, 0, 'unix');\n    addFormatToken('x', 0, 0, 'valueOf');\n\n    // PARSING\n\n    addRegexToken('x', matchSigned);\n    addRegexToken('X', matchTimestamp);\n    addParseToken('X', function (input, array, config) {\n        config._d = new Date(parseFloat(input, 10) * 1000);\n    });\n    addParseToken('x', function (input, array, config) {\n        config._d = new Date(toInt(input));\n    });\n\n    // Side effect imports\n\n\n    hooks.version = '2.24.0';\n\n    setHookCallback(createLocal);\n\n    hooks.fn                    = proto;\n    hooks.min                   = min;\n    hooks.max                   = max;\n    hooks.now                   = now;\n    hooks.utc                   = createUTC;\n    hooks.unix                  = createUnix;\n    hooks.months                = listMonths;\n    hooks.isDate                = isDate;\n    hooks.locale                = getSetGlobalLocale;\n    hooks.invalid               = createInvalid;\n    hooks.duration              = createDuration;\n    hooks.isMoment              = isMoment;\n    hooks.weekdays              = listWeekdays;\n    hooks.parseZone             = createInZone;\n    hooks.localeData            = getLocale;\n    hooks.isDuration            = isDuration;\n    hooks.monthsShort           = listMonthsShort;\n    hooks.weekdaysMin           = listWeekdaysMin;\n    hooks.defineLocale          = defineLocale;\n    hooks.updateLocale          = updateLocale;\n    hooks.locales               = listLocales;\n    hooks.weekdaysShort         = listWeekdaysShort;\n    hooks.normalizeUnits        = normalizeUnits;\n    hooks.relativeTimeRounding  = getSetRelativeTimeRounding;\n    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n    hooks.calendarFormat        = getCalendarFormat;\n    hooks.prototype             = proto;\n\n    // currently HTML5 input type only supports 24-hour formats\n    hooks.HTML5_FMT = {\n        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',             // <input type=\"datetime-local\" />\n        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',  // <input type=\"datetime-local\" step=\"1\" />\n        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',   // <input type=\"datetime-local\" step=\"0.001\" />\n        DATE: 'YYYY-MM-DD',                             // <input type=\"date\" />\n        TIME: 'HH:mm',                                  // <input type=\"time\" />\n        TIME_SECONDS: 'HH:mm:ss',                       // <input type=\"time\" step=\"1\" />\n        TIME_MS: 'HH:mm:ss.SSS',                        // <input type=\"time\" step=\"0.001\" />\n        WEEK: 'GGGG-[W]WW',                             // <input type=\"week\" />\n        MONTH: 'YYYY-MM'                                // <input type=\"month\" />\n    };\n\n    return hooks;\n\n})));\n});\n\nvar FORMATS = {\n\tdatetime: 'MMM D, YYYY, h:mm:ss a',\n\tmillisecond: 'h:mm:ss.SSS a',\n\tsecond: 'h:mm:ss a',\n\tminute: 'h:mm a',\n\thour: 'hA',\n\tday: 'MMM D',\n\tweek: 'll',\n\tmonth: 'MMM YYYY',\n\tquarter: '[Q]Q - YYYY',\n\tyear: 'YYYY'\n};\n\ncore_adapters._date.override(typeof moment === 'function' ? {\n\t_id: 'moment', // DEBUG ONLY\n\n\tformats: function() {\n\t\treturn FORMATS;\n\t},\n\n\tparse: function(value, format) {\n\t\tif (typeof value === 'string' && typeof format === 'string') {\n\t\t\tvalue = moment(value, format);\n\t\t} else if (!(value instanceof moment)) {\n\t\t\tvalue = moment(value);\n\t\t}\n\t\treturn value.isValid() ? value.valueOf() : null;\n\t},\n\n\tformat: function(time, format) {\n\t\treturn moment(time).format(format);\n\t},\n\n\tadd: function(time, amount, unit) {\n\t\treturn moment(time).add(amount, unit).valueOf();\n\t},\n\n\tdiff: function(max, min, unit) {\n\t\treturn moment(max).diff(moment(min), unit);\n\t},\n\n\tstartOf: function(time, unit, weekday) {\n\t\ttime = moment(time);\n\t\tif (unit === 'isoWeek') {\n\t\t\treturn time.isoWeekday(weekday).valueOf();\n\t\t}\n\t\treturn time.startOf(unit).valueOf();\n\t},\n\n\tendOf: function(time, unit) {\n\t\treturn moment(time).endOf(unit).valueOf();\n\t},\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility with scale.getValueForPixel().\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(time) {\n\t\treturn moment(time);\n\t},\n} : {});\n\ncore_defaults._set('global', {\n\tplugins: {\n\t\tfiller: {\n\t\t\tpropagate: true\n\t\t}\n\t}\n});\n\nvar mappers = {\n\tdataset: function(source) {\n\t\tvar index = source.fill;\n\t\tvar chart = source.chart;\n\t\tvar meta = chart.getDatasetMeta(index);\n\t\tvar visible = meta && chart.isDatasetVisible(index);\n\t\tvar points = (visible && meta.dataset._children) || [];\n\t\tvar length = points.length || 0;\n\n\t\treturn !length ? null : function(point, i) {\n\t\t\treturn (i < length && points[i]._view) || null;\n\t\t};\n\t},\n\n\tboundary: function(source) {\n\t\tvar boundary = source.boundary;\n\t\tvar x = boundary ? boundary.x : null;\n\t\tvar y = boundary ? boundary.y : null;\n\n\t\tif (helpers$1.isArray(boundary)) {\n\t\t\treturn function(point, i) {\n\t\t\t\treturn boundary[i];\n\t\t\t};\n\t\t}\n\n\t\treturn function(point) {\n\t\t\treturn {\n\t\t\t\tx: x === null ? point.x : x,\n\t\t\t\ty: y === null ? point.y : y,\n\t\t\t};\n\t\t};\n\t}\n};\n\n// @todo if (fill[0] === '#')\nfunction decodeFill(el, index, count) {\n\tvar model = el._model || {};\n\tvar fill = model.fill;\n\tvar target;\n\n\tif (fill === undefined) {\n\t\tfill = !!model.backgroundColor;\n\t}\n\n\tif (fill === false || fill === null) {\n\t\treturn false;\n\t}\n\n\tif (fill === true) {\n\t\treturn 'origin';\n\t}\n\n\ttarget = parseFloat(fill, 10);\n\tif (isFinite(target) && Math.floor(target) === target) {\n\t\tif (fill[0] === '-' || fill[0] === '+') {\n\t\t\ttarget = index + target;\n\t\t}\n\n\t\tif (target === index || target < 0 || target >= count) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tswitch (fill) {\n\t// compatibility\n\tcase 'bottom':\n\t\treturn 'start';\n\tcase 'top':\n\t\treturn 'end';\n\tcase 'zero':\n\t\treturn 'origin';\n\t// supported boundaries\n\tcase 'origin':\n\tcase 'start':\n\tcase 'end':\n\t\treturn fill;\n\t// invalid fill values\n\tdefault:\n\t\treturn false;\n\t}\n}\n\nfunction computeLinearBoundary(source) {\n\tvar model = source.el._model || {};\n\tvar scale = source.el._scale || {};\n\tvar fill = source.fill;\n\tvar target = null;\n\tvar horizontal;\n\n\tif (isFinite(fill)) {\n\t\treturn null;\n\t}\n\n\t// Backward compatibility: until v3, we still need to support boundary values set on\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n\t// controllers might still use it (e.g. the Smith chart).\n\n\tif (fill === 'start') {\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n\t} else if (fill === 'end') {\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\n\t} else if (model.scaleZero !== undefined) {\n\t\ttarget = model.scaleZero;\n\t} else if (scale.getBasePixel) {\n\t\ttarget = scale.getBasePixel();\n\t}\n\n\tif (target !== undefined && target !== null) {\n\t\tif (target.x !== undefined && target.y !== undefined) {\n\t\t\treturn target;\n\t\t}\n\n\t\tif (helpers$1.isFinite(target)) {\n\t\t\thorizontal = scale.isHorizontal();\n\t\t\treturn {\n\t\t\t\tx: horizontal ? target : null,\n\t\t\t\ty: horizontal ? null : target\n\t\t\t};\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction computeCircularBoundary(source) {\n\tvar scale = source.el._scale;\n\tvar options = scale.options;\n\tvar length = scale.chart.data.labels.length;\n\tvar fill = source.fill;\n\tvar target = [];\n\tvar start, end, center, i, point;\n\n\tif (!length) {\n\t\treturn null;\n\t}\n\n\tstart = options.ticks.reverse ? scale.max : scale.min;\n\tend = options.ticks.reverse ? scale.min : scale.max;\n\tcenter = scale.getPointPositionForValue(0, start);\n\tfor (i = 0; i < length; ++i) {\n\t\tpoint = fill === 'start' || fill === 'end'\n\t\t\t? scale.getPointPositionForValue(i, fill === 'start' ? start : end)\n\t\t\t: scale.getBasePosition(i);\n\t\tif (options.gridLines.circular) {\n\t\t\tpoint.cx = center.x;\n\t\t\tpoint.cy = center.y;\n\t\t\tpoint.angle = scale.getIndexAngle(i) - Math.PI / 2;\n\t\t}\n\t\ttarget.push(point);\n\t}\n\treturn target;\n}\n\nfunction computeBoundary(source) {\n\tvar scale = source.el._scale || {};\n\n\tif (scale.getPointPositionForValue) {\n\t\treturn computeCircularBoundary(source);\n\t}\n\treturn computeLinearBoundary(source);\n}\n\nfunction resolveTarget(sources, index, propagate) {\n\tvar source = sources[index];\n\tvar fill = source.fill;\n\tvar visited = [index];\n\tvar target;\n\n\tif (!propagate) {\n\t\treturn fill;\n\t}\n\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\n\t\tif (!isFinite(fill)) {\n\t\t\treturn fill;\n\t\t}\n\n\t\ttarget = sources[fill];\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target.visible) {\n\t\t\treturn fill;\n\t\t}\n\n\t\tvisited.push(fill);\n\t\tfill = target.fill;\n\t}\n\n\treturn false;\n}\n\nfunction createMapper(source) {\n\tvar fill = source.fill;\n\tvar type = 'dataset';\n\n\tif (fill === false) {\n\t\treturn null;\n\t}\n\n\tif (!isFinite(fill)) {\n\t\ttype = 'boundary';\n\t}\n\n\treturn mappers[type](source);\n}\n\nfunction isDrawable(point) {\n\treturn point && !point.skip;\n}\n\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\n\tvar i, cx, cy, r;\n\n\tif (!len0 || !len1) {\n\t\treturn;\n\t}\n\n\t// building first area curve (normal)\n\tctx.moveTo(curve0[0].x, curve0[0].y);\n\tfor (i = 1; i < len0; ++i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n\t}\n\n\tif (curve1[0].angle !== undefined) {\n\t\tcx = curve1[0].cx;\n\t\tcy = curve1[0].cy;\n\t\tr = Math.sqrt(Math.pow(curve1[0].x - cx, 2) + Math.pow(curve1[0].y - cy, 2));\n\t\tfor (i = len1 - 1; i > 0; --i) {\n\t\t\tctx.arc(cx, cy, r, curve1[i].angle, curve1[i - 1].angle, true);\n\t\t}\n\t\treturn;\n\t}\n\n\t// joining the two area curves\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n\t// building opposite area curve (reverse)\n\tfor (i = len1 - 1; i > 0; --i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n\t}\n}\n\nfunction doFill(ctx, points, mapper, view, color, loop) {\n\tvar count = points.length;\n\tvar span = view.spanGaps;\n\tvar curve0 = [];\n\tvar curve1 = [];\n\tvar len0 = 0;\n\tvar len1 = 0;\n\tvar i, ilen, index, p0, p1, d0, d1, loopOffset;\n\n\tctx.beginPath();\n\n\tfor (i = 0, ilen = count; i < ilen; ++i) {\n\t\tindex = i % count;\n\t\tp0 = points[index]._view;\n\t\tp1 = mapper(p0, index, view);\n\t\td0 = isDrawable(p0);\n\t\td1 = isDrawable(p1);\n\n\t\tif (loop && loopOffset === undefined && d0) {\n\t\t\tloopOffset = i + 1;\n\t\t\tilen = count + loopOffset;\n\t\t}\n\n\t\tif (d0 && d1) {\n\t\t\tlen0 = curve0.push(p0);\n\t\t\tlen1 = curve1.push(p1);\n\t\t} else if (len0 && len1) {\n\t\t\tif (!span) {\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\n\t\t\t\tlen0 = len1 = 0;\n\t\t\t\tcurve0 = [];\n\t\t\t\tcurve1 = [];\n\t\t\t} else {\n\t\t\t\tif (d0) {\n\t\t\t\t\tcurve0.push(p0);\n\t\t\t\t}\n\t\t\t\tif (d1) {\n\t\t\t\t\tcurve1.push(p1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdrawArea(ctx, curve0, curve1, len0, len1);\n\n\tctx.closePath();\n\tctx.fillStyle = color;\n\tctx.fill();\n}\n\nvar plugin_filler = {\n\tid: 'filler',\n\n\tafterDatasetsUpdate: function(chart, options) {\n\t\tvar count = (chart.data.datasets || []).length;\n\t\tvar propagate = options.propagate;\n\t\tvar sources = [];\n\t\tvar meta, i, el, source;\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tel = meta.dataset;\n\t\t\tsource = null;\n\n\t\t\tif (el && el._model && el instanceof elements.Line) {\n\t\t\t\tsource = {\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\n\t\t\t\t\tfill: decodeFill(el, i, count),\n\t\t\t\t\tchart: chart,\n\t\t\t\t\tel: el\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tmeta.$filler = source;\n\t\t\tsources.push(source);\n\t\t}\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!source) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\n\t\t\tsource.boundary = computeBoundary(source);\n\t\t\tsource.mapper = createMapper(source);\n\t\t}\n\t},\n\n\tbeforeDatasetsDraw: function(chart) {\n\t\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\t\tvar ctx = chart.ctx;\n\t\tvar meta, i, el, view, points, mapper, color;\n\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tmeta = metasets[i].$filler;\n\n\t\t\tif (!meta || !meta.visible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tel = meta.el;\n\t\t\tview = el._view;\n\t\t\tpoints = el._children || [];\n\t\t\tmapper = meta.mapper;\n\t\t\tcolor = view.backgroundColor || core_defaults.global.defaultColor;\n\n\t\t\tif (mapper && color && points.length) {\n\t\t\t\thelpers$1.canvas.clipArea(ctx, chart.chartArea);\n\t\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\t\thelpers$1.canvas.unclipArea(ctx);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar getRtlHelper$1 = helpers$1.rtl.getRtlAdapter;\nvar noop$1 = helpers$1.noop;\nvar valueOrDefault$e = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\tlegend: {\n\t\tdisplay: true,\n\t\tposition: 'top',\n\t\talign: 'center',\n\t\tfullWidth: true,\n\t\treverse: false,\n\t\tweight: 1000,\n\n\t\t// a callback that will handle\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.datasetIndex;\n\t\t\tvar ci = this.chart;\n\t\t\tvar meta = ci.getDatasetMeta(index);\n\n\t\t\t// See controller.isDatasetVisible comment\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n\t\t\t// We hid a dataset ... rerender the chart\n\t\t\tci.update();\n\t\t},\n\n\t\tonHover: null,\n\t\tonLeave: null,\n\n\t\tlabels: {\n\t\t\tboxWidth: 40,\n\t\t\tpadding: 10,\n\t\t\t// Generates labels shown in the legend\n\t\t\t// Valid properties to return:\n\t\t\t// text : text to display\n\t\t\t// fillStyle : fill of coloured box\n\t\t\t// strokeStyle: stroke of coloured box\n\t\t\t// hidden : if this legend item refers to a hidden item\n\t\t\t// lineCap : cap style for line\n\t\t\t// lineDash\n\t\t\t// lineDashOffset :\n\t\t\t// lineJoin :\n\t\t\t// lineWidth :\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar datasets = chart.data.datasets;\n\t\t\t\tvar options = chart.options.legend || {};\n\t\t\t\tvar usePointStyle = options.labels && options.labels.usePointStyle;\n\n\t\t\t\treturn chart._getSortedDatasetMetas().map(function(meta) {\n\t\t\t\t\tvar style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: datasets[meta.index].label,\n\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(meta.index),\n\t\t\t\t\t\tlineCap: style.borderCapStyle,\n\t\t\t\t\t\tlineDash: style.borderDash,\n\t\t\t\t\t\tlineDashOffset: style.borderDashOffset,\n\t\t\t\t\t\tlineJoin: style.borderJoinStyle,\n\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\tpointStyle: style.pointStyle,\n\t\t\t\t\t\trotation: style.rotation,\n\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\n\t\t\t\t\t\tdatasetIndex: meta.index\n\t\t\t\t\t};\n\t\t\t\t}, this);\n\t\t\t}\n\t\t}\n\t},\n\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar datasets = chart.data.datasets;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\tlistItemSpan.style.backgroundColor = datasets[i].backgroundColor;\n\t\t\tif (datasets[i].label) {\n\t\t\t\tlistItem.appendChild(document.createTextNode(datasets[i].label));\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t}\n});\n\n/**\n * Helper function to get the box width based on the usePointStyle option\n * @param {object} labelopts - the label options on the legend\n * @param {number} fontSize - the label font size\n * @return {number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ?\n\t\tfontSize :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = core_element.extend({\n\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\n\t\t/**\n \t\t * @private\n \t\t */\n\t\tme._hoveredItem = null;\n\n\t\t// Are we in doughnut mode which has a different data type\n\t\tme.doughnutMode = false;\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\t// Any function defined here is inherited by all legend types.\n\t// Any function can be extended by the legend type\n\n\tbeforeUpdate: noop$1,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\t},\n\tafterUpdate: noop$1,\n\n\t//\n\n\tbeforeSetDimensions: noop$1,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$1,\n\n\t//\n\n\tbeforeBuildLabels: noop$1,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers$1.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n\t\tif (labelOpts.filter) {\n\t\t\tlegendItems = legendItems.filter(function(item) {\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\n\t\t\t});\n\t\t}\n\n\t\tif (me.options.reverse) {\n\t\t\tlegendItems.reverse();\n\t\t}\n\n\t\tme.legendItems = legendItems;\n\t},\n\tafterBuildLabels: noop$1,\n\n\t//\n\n\tbeforeFit: noop$1,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar display = opts.display;\n\n\t\tvar ctx = me.ctx;\n\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\n\t\t// Reset hit boxes\n\t\tvar hitboxes = me.legendHitBoxes = [];\n\n\t\tvar minSize = me.minSize;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = display ? 10 : 0;\n\t\t} else {\n\t\t\tminSize.width = display ? 10 : 0;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Increase sizes here\n\t\tif (!display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\t\tctx.font = labelFont.string;\n\n\t\tif (isHorizontal) {\n\t\t\t// Labels\n\n\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n\t\t\tvar lineWidths = me.lineWidths = [0];\n\t\t\tvar totalHeight = 0;\n\n\t\t\tctx.textAlign = 'left';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\tif (i === 0 || lineWidths[lineWidths.length - 1] + width + 2 * labelOpts.padding > minSize.width) {\n\t\t\t\t\ttotalHeight += fontSize + labelOpts.padding;\n\t\t\t\t\tlineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n\t\t\t\t}\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\n\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n\t\t\t});\n\n\t\t\tminSize.height += totalHeight;\n\n\t\t} else {\n\t\t\tvar vPadding = labelOpts.padding;\n\t\t\tvar columnWidths = me.columnWidths = [];\n\t\t\tvar columnHeights = me.columnHeights = [];\n\t\t\tvar totalWidth = labelOpts.padding;\n\t\t\tvar currentColWidth = 0;\n\t\t\tvar currentColHeight = 0;\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t// If too tall, go to new column\n\t\t\t\tif (i > 0 && currentColHeight + fontSize + 2 * vPadding > minSize.height) {\n\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\n\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\n\t\t\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\t\t\tcurrentColWidth = 0;\n\t\t\t\t\tcurrentColHeight = 0;\n\t\t\t\t}\n\n\t\t\t\t// Get max width\n\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\n\t\t\t\tcurrentColHeight += fontSize + vPadding;\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\t\t\t});\n\n\t\t\ttotalWidth += currentColWidth;\n\t\t\tcolumnWidths.push(currentColWidth);\n\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\tminSize.width += totalWidth;\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\tafterFit: noop$1,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\n\t// Actually draw the legend on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor;\n\t\tvar lineDefault = globalDefaults.elements.line;\n\t\tvar legendHeight = me.height;\n\t\tvar columnHeights = me.columnHeights;\n\t\tvar legendWidth = me.width;\n\t\tvar lineWidths = me.lineWidths;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar rtlHelper = getRtlHelper$1(opts.rtl, me.left, me.minSize.width);\n\t\tvar ctx = me.ctx;\n\t\tvar fontColor = valueOrDefault$e(labelOpts.fontColor, globalDefaults.defaultFontColor);\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\t\tvar cursor;\n\n\t\t// Canvas setup\n\t\tctx.textAlign = rtlHelper.textAlign('left');\n\t\tctx.textBaseline = 'middle';\n\t\tctx.lineWidth = 0.5;\n\t\tctx.strokeStyle = fontColor; // for strikethrough effect\n\t\tctx.fillStyle = fontColor; // render in correct colour\n\t\tctx.font = labelFont.string;\n\n\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\tvar hitboxes = me.legendHitBoxes;\n\n\t\t// current position\n\t\tvar drawLegendBox = function(x, y, legendItem) {\n\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ctx for the box\n\t\t\tctx.save();\n\n\t\t\tvar lineWidth = valueOrDefault$e(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\tctx.fillStyle = valueOrDefault$e(legendItem.fillStyle, defaultColor);\n\t\t\tctx.lineCap = valueOrDefault$e(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\tctx.lineDashOffset = valueOrDefault$e(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\tctx.lineJoin = valueOrDefault$e(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = valueOrDefault$e(legendItem.strokeStyle, defaultColor);\n\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\t// IE 9 and 10 do not support line dash\n\t\t\t\tctx.setLineDash(valueOrDefault$e(legendItem.lineDash, lineDefault.borderDash));\n\t\t\t}\n\n\t\t\tif (labelOpts && labelOpts.usePointStyle) {\n\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\n\t\t\t\t// x and y to be center of figure (instead of top left)\n\t\t\t\tvar radius = boxWidth * Math.SQRT2 / 2;\n\t\t\t\tvar centerX = rtlHelper.xPlus(x, boxWidth / 2);\n\t\t\t\tvar centerY = y + fontSize / 2;\n\n\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\thelpers$1.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY, legendItem.rotation);\n\t\t\t} else {\n\t\t\t\t// Draw box as legend symbol\n\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\tif (lineWidth !== 0) {\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t};\n\n\t\tvar fillText = function(x, y, legendItem, textWidth) {\n\t\t\tvar halfFontSize = fontSize / 2;\n\t\t\tvar xLeft = rtlHelper.xPlus(x, boxWidth + halfFontSize);\n\t\t\tvar yMiddle = y + halfFontSize;\n\n\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\n\n\t\t\tif (legendItem.hidden) {\n\t\t\t\t// Strikethrough the text if hidden\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.lineWidth = 2;\n\t\t\t\tctx.moveTo(xLeft, yMiddle);\n\t\t\t\tctx.lineTo(rtlHelper.xPlus(xLeft, textWidth), yMiddle);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t};\n\n\t\tvar alignmentOffset = function(dimension, blockSize) {\n\t\t\tswitch (opts.align) {\n\t\t\tcase 'start':\n\t\t\t\treturn labelOpts.padding;\n\t\t\tcase 'end':\n\t\t\t\treturn dimension - blockSize;\n\t\t\tdefault: // center\n\t\t\t\treturn (dimension - blockSize + labelOpts.padding) / 2;\n\t\t\t}\n\t\t};\n\n\t\t// Horizontal\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tif (isHorizontal) {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + alignmentOffset(legendWidth, lineWidths[0]),\n\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\tline: 0\n\t\t\t};\n\t\t} else {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + labelOpts.padding,\n\t\t\t\ty: me.top + alignmentOffset(legendHeight, columnHeights[0]),\n\t\t\t\tline: 0\n\t\t\t};\n\t\t}\n\n\t\thelpers$1.rtl.overrideTextDirection(me.ctx, opts.textDirection);\n\n\t\tvar itemHeight = fontSize + labelOpts.padding;\n\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\n\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\n\t\t\tvar x = cursor.x;\n\t\t\tvar y = cursor.y;\n\n\t\t\trtlHelper.setWidth(me.minSize.width);\n\n\t\t\t// Use (me.left + me.minSize.width) and (me.top + me.minSize.height)\n\t\t\t// instead of me.right and me.bottom because me.width and me.height\n\t\t\t// may have been changed since me.minSize was calculated\n\t\t\tif (isHorizontal) {\n\t\t\t\tif (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) {\n\t\t\t\t\ty = cursor.y += itemHeight;\n\t\t\t\t\tcursor.line++;\n\t\t\t\t\tx = cursor.x = me.left + alignmentOffset(legendWidth, lineWidths[cursor.line]);\n\t\t\t\t}\n\t\t\t} else if (i > 0 && y + itemHeight > me.top + me.minSize.height) {\n\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n\t\t\t\tcursor.line++;\n\t\t\t\ty = cursor.y = me.top + alignmentOffset(legendHeight, columnHeights[cursor.line]);\n\t\t\t}\n\n\t\t\tvar realX = rtlHelper.x(x);\n\n\t\t\tdrawLegendBox(realX, y, legendItem);\n\n\t\t\thitboxes[i].left = rtlHelper.leftForLtr(realX, hitboxes[i].width);\n\t\t\thitboxes[i].top = y;\n\n\t\t\t// Fill the actual label\n\t\t\tfillText(realX, y, legendItem, textWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tcursor.x += width + labelOpts.padding;\n\t\t\t} else {\n\t\t\t\tcursor.y += itemHeight;\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.rtl.restoreTextDirection(me.ctx, opts.textDirection);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLegendItemAt: function(x, y) {\n\t\tvar me = this;\n\t\tvar i, hitBox, lh;\n\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n\t\t\t// See if we are touching one of the dataset boxes\n\t\t\tlh = me.legendHitBoxes;\n\t\t\tfor (i = 0; i < lh.length; ++i) {\n\t\t\t\thitBox = lh[i];\n\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n\t\t\t\t\t// Touching an element\n\t\t\t\t\treturn me.legendItems[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\n\t\tvar hoveredItem;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover && !opts.onLeave) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (type === 'click') {\n\t\t\tif (!opts.onClick) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chart event already has relative position in it\n\t\thoveredItem = me._getLegendItemAt(e.x, e.y);\n\n\t\tif (type === 'click') {\n\t\t\tif (hoveredItem && opts.onClick) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onClick.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t} else {\n\t\t\tif (opts.onLeave && hoveredItem !== me._hoveredItem) {\n\t\t\t\tif (me._hoveredItem) {\n\t\t\t\t\topts.onLeave.call(me, e.native, me._hoveredItem);\n\t\t\t\t}\n\t\t\t\tme._hoveredItem = hoveredItem;\n\t\t\t}\n\n\t\t\tif (opts.onHover && hoveredItem) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onHover.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t}\n\t}\n});\n\nfunction createNewLegendAndAttach(chart, legendOpts) {\n\tvar legend = new Legend({\n\t\tctx: chart.ctx,\n\t\toptions: legendOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, legend, legendOpts);\n\tcore_layouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nvar plugin_legend = {\n\tid: 'legend',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Legend,\n\n\tbeforeInit: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\n\t\tif (legendOpts) {\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\t\tvar legend = chart.legend;\n\n\t\tif (legendOpts) {\n\t\t\thelpers$1.mergeIf(legendOpts, core_defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tcore_layouts.configure(chart, legend, legendOpts);\n\t\t\t\tlegend.options = legendOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t\t}\n\t\t} else if (legend) {\n\t\t\tcore_layouts.removeBox(chart, legend);\n\t\t\tdelete chart.legend;\n\t\t}\n\t},\n\n\tafterEvent: function(chart, e) {\n\t\tvar legend = chart.legend;\n\t\tif (legend) {\n\t\t\tlegend.handleEvent(e);\n\t\t}\n\t}\n};\n\nvar noop$2 = helpers$1.noop;\n\ncore_defaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\n\t\tpadding: 10,\n\t\tposition: 'top',\n\t\ttext: '',\n\t\tweight: 2000         // by default greater than legend (1000) to be above\n\t}\n});\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Title = core_element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\n\tbeforeUpdate: noop$2,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: noop$2,\n\n\t//\n\n\tbeforeSetDimensions: noop$2,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$2,\n\n\t//\n\n\tbeforeBuildLabels: noop$2,\n\tbuildLabels: noop$2,\n\tafterBuildLabels: noop$2,\n\n\t//\n\n\tbeforeFit: noop$2,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar minSize = me.minSize = {};\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar lineCount, textSize;\n\n\t\tif (!opts.display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tlineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1;\n\t\ttextSize = lineCount * helpers$1.options._parseFont(opts).lineHeight + opts.padding * 2;\n\n\t\tme.width = minSize.width = isHorizontal ? me.maxWidth : textSize;\n\t\tme.height = minSize.height = isHorizontal ? textSize : me.maxHeight;\n\t},\n\tafterFit: noop$2,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\n\t// Actually draw the title block on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar fontOpts = helpers$1.options._parseFont(opts);\n\t\tvar lineHeight = fontOpts.lineHeight;\n\t\tvar offset = lineHeight / 2 + opts.padding;\n\t\tvar rotation = 0;\n\t\tvar top = me.top;\n\t\tvar left = me.left;\n\t\tvar bottom = me.bottom;\n\t\tvar right = me.right;\n\t\tvar maxWidth, titleX, titleY;\n\n\t\tctx.fillStyle = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour\n\t\tctx.font = fontOpts.string;\n\n\t\t// Horizontal\n\t\tif (me.isHorizontal()) {\n\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\n\t\t\ttitleY = top + offset;\n\t\t\tmaxWidth = right - left;\n\t\t} else {\n\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\n\t\t\ttitleY = top + ((bottom - top) / 2);\n\t\t\tmaxWidth = bottom - top;\n\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(titleX, titleY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\tvar text = opts.text;\n\t\tif (helpers$1.isArray(text)) {\n\t\t\tvar y = 0;\n\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\n\t\t\t\ty += lineHeight;\n\t\t\t}\n\t\t} else {\n\t\t\tctx.fillText(text, 0, 0, maxWidth);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\n\tvar title = new Title({\n\t\tctx: chart.ctx,\n\t\toptions: titleOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, title, titleOpts);\n\tcore_layouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nvar plugin_title = {\n\tid: 'title',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Title,\n\n\tbeforeInit: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\n\t\tif (titleOpts) {\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\t\tvar titleBlock = chart.titleBlock;\n\n\t\tif (titleOpts) {\n\t\t\thelpers$1.mergeIf(titleOpts, core_defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tcore_layouts.configure(chart, titleBlock, titleOpts);\n\t\t\t\ttitleBlock.options = titleOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t\t}\n\t\t} else if (titleBlock) {\n\t\t\tcore_layouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n\nvar plugins = {};\nvar filler = plugin_filler;\nvar legend = plugin_legend;\nvar title = plugin_title;\nplugins.filler = filler;\nplugins.legend = legend;\nplugins.title = title;\n\n/**\n * @namespace Chart\n */\n\n\ncore_controller.helpers = helpers$1;\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\ncore_helpers();\n\ncore_controller._adapters = core_adapters;\ncore_controller.Animation = core_animation;\ncore_controller.animationService = core_animations;\ncore_controller.controllers = controllers;\ncore_controller.DatasetController = core_datasetController;\ncore_controller.defaults = core_defaults;\ncore_controller.Element = core_element;\ncore_controller.elements = elements;\ncore_controller.Interaction = core_interaction;\ncore_controller.layouts = core_layouts;\ncore_controller.platform = platform;\ncore_controller.plugins = core_plugins;\ncore_controller.Scale = core_scale;\ncore_controller.scaleService = core_scaleService;\ncore_controller.Ticks = core_ticks;\ncore_controller.Tooltip = core_tooltip;\n\n// Register built-in scales\n\ncore_controller.helpers.each(scales, function(scale, type) {\n\tcore_controller.scaleService.registerScaleType(type, scale, scale._defaults);\n});\n\n// Load to register built-in adapters (as side effects)\n\n\n// Loading built-in plugins\n\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tcore_controller.plugins.register(plugins[k]);\n\t}\n}\n\ncore_controller.platform.initialize();\n\nvar src = core_controller;\nif (typeof window !== 'undefined') {\n\twindow.Chart = core_controller;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Chart\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.Chart = core_controller;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Legend = plugins.legend._element;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Title = plugins.title._element;\n\n/**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.pluginService = core_controller.plugins;\n\n/**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.PluginBase = core_controller.Element.extend({});\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.canvasHelpers = core_controller.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.7.3\n * @todo remove at version 3\n * @private\n */\ncore_controller.layoutService = core_controller.layouts;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.LinearScaleBase\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\ncore_controller.LinearScaleBase = scale_linearbase;\n\n/**\n * Provided for backward compatibility, instead we should create a new Chart\n * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`).\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n */\ncore_controller.helpers.each(\n\t[\n\t\t'Bar',\n\t\t'Bubble',\n\t\t'Doughnut',\n\t\t'Line',\n\t\t'PolarArea',\n\t\t'Radar',\n\t\t'Scatter'\n\t],\n\tfunction(klass) {\n\t\tcore_controller[klass] = function(ctx, cfg) {\n\t\t\treturn new core_controller(ctx, core_controller.helpers.merge(cfg || {}, {\n\t\t\t\ttype: klass.charAt(0).toLowerCase() + klass.slice(1)\n\t\t\t}));\n\t\t};\n\t}\n);\n\nreturn src;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/chart.js/Chart.css",
    "content": "/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-animation {\n\tfrom { opacity: 0.99; }\n\tto { opacity: 1; }\n}\n\n.chartjs-render-monitor {\n\tanimation: chartjs-render-animation 0.001s;\n}\n\n/*\n * DOM element resizing detection\n * https://github.com/marcj/css-element-queries\n */\n.chartjs-size-monitor,\n.chartjs-size-monitor-expand,\n.chartjs-size-monitor-shrink {\n\tposition: absolute;\n\tdirection: ltr;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tvisibility: hidden;\n\tz-index: -1;\n}\n\n.chartjs-size-monitor-expand > div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/chart.js/Chart.js",
    "content": "/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\n/* MIT license */\n\n\nvar colorString = {\n   getRgba: getRgba,\n   getHsla: getHsla,\n   getRgb: getRgb,\n   getHsl: getHsl,\n   getHwb: getHwb,\n   getAlpha: getAlpha,\n\n   hexString: hexString,\n   rgbString: rgbString,\n   rgbaString: rgbaString,\n   percentString: percentString,\n   percentaString: percentaString,\n   hslString: hslString,\n   hslaString: hslaString,\n   hwbString: hwbString,\n   keyword: keyword\n};\n\nfunction getRgba(string) {\n   if (!string) {\n      return;\n   }\n   var abbr =  /^#([a-fA-F0-9]{3,4})$/i,\n       hex =  /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n       rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n       per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n       keyword = /(\\w+)/;\n\n   var rgb = [0, 0, 0],\n       a = 1,\n       match = string.match(abbr),\n       hexAlpha = \"\";\n   if (match) {\n      match = match[1];\n      hexAlpha = match[3];\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match[i] + match[i], 16);\n      }\n      if (hexAlpha) {\n         a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n      }\n   }\n   else if (match = string.match(hex)) {\n      hexAlpha = match[2];\n      match = match[1];\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n      }\n      if (hexAlpha) {\n         a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n      }\n   }\n   else if (match = string.match(rgba)) {\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = parseInt(match[i + 1]);\n      }\n      a = parseFloat(match[4]);\n   }\n   else if (match = string.match(per)) {\n      for (var i = 0; i < rgb.length; i++) {\n         rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n      }\n      a = parseFloat(match[4]);\n   }\n   else if (match = string.match(keyword)) {\n      if (match[1] == \"transparent\") {\n         return [0, 0, 0, 0];\n      }\n      rgb = colorName$1[match[1]];\n      if (!rgb) {\n         return;\n      }\n   }\n\n   for (var i = 0; i < rgb.length; i++) {\n      rgb[i] = scale(rgb[i], 0, 255);\n   }\n   if (!a && a != 0) {\n      a = 1;\n   }\n   else {\n      a = scale(a, 0, 1);\n   }\n   rgb[3] = a;\n   return rgb;\n}\n\nfunction getHsla(string) {\n   if (!string) {\n      return;\n   }\n   var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n   var match = string.match(hsl);\n   if (match) {\n      var alpha = parseFloat(match[4]);\n      var h = scale(parseInt(match[1]), 0, 360),\n          s = scale(parseFloat(match[2]), 0, 100),\n          l = scale(parseFloat(match[3]), 0, 100),\n          a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n      return [h, s, l, a];\n   }\n}\n\nfunction getHwb(string) {\n   if (!string) {\n      return;\n   }\n   var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n   var match = string.match(hwb);\n   if (match) {\n    var alpha = parseFloat(match[4]);\n      var h = scale(parseInt(match[1]), 0, 360),\n          w = scale(parseFloat(match[2]), 0, 100),\n          b = scale(parseFloat(match[3]), 0, 100),\n          a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n      return [h, w, b, a];\n   }\n}\n\nfunction getRgb(string) {\n   var rgba = getRgba(string);\n   return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n  var hsla = getHsla(string);\n  return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n   var vals = getRgba(string);\n   if (vals) {\n      return vals[3];\n   }\n   else if (vals = getHsla(string)) {\n      return vals[3];\n   }\n   else if (vals = getHwb(string)) {\n      return vals[3];\n   }\n}\n\n// generators\nfunction hexString(rgba, a) {\n   var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n   return \"#\" + hexDouble(rgba[0]) \n              + hexDouble(rgba[1])\n              + hexDouble(rgba[2])\n              + (\n                 (a >= 0 && a < 1)\n                 ? hexDouble(Math.round(a * 255))\n                 : \"\"\n              );\n}\n\nfunction rgbString(rgba, alpha) {\n   if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n      return rgbaString(rgba, alpha);\n   }\n   return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n   if (alpha === undefined) {\n      alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n   }\n   return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n           + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n   if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n      return percentaString(rgba, alpha);\n   }\n   var r = Math.round(rgba[0]/255 * 100),\n       g = Math.round(rgba[1]/255 * 100),\n       b = Math.round(rgba[2]/255 * 100);\n\n   return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n   var r = Math.round(rgba[0]/255 * 100),\n       g = Math.round(rgba[1]/255 * 100),\n       b = Math.round(rgba[2]/255 * 100);\n   return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n   if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n      return hslaString(hsla, alpha);\n   }\n   return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n   if (alpha === undefined) {\n      alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n   }\n   return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n           + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n   if (alpha === undefined) {\n      alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n   }\n   return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n           + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n  return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n   return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n  var str = num.toString(16).toUpperCase();\n  return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n   reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value  - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = Object.create(source);\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace.  all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t *  else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge(Object.create(null), [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked   | meta.stack\n\t\t\t//           | found | not found | undefined\n\t\t\t// false     |   x   |     x     |     x\n\t\t\t// true      |       |     x     |\n\t\t\t// undefined |       |     x     |     x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights.  This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1',    // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear',    // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';     // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding -  Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory.  It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// |                  T1 (Full Width)                   |\n\t\t// |----------------------------------------------------|\n\t\t// |    |    |                 T2                  |    |\n\t\t// |    |----|-------------------------------------|----|\n\t\t// |    |    | C1 |                           | C2 |    |\n\t\t// |    |    |----|                           |----|    |\n\t\t// |    |    |                                     |    |\n\t\t// | L1 | L2 |           ChartArea (C0)            | R1 |\n\t\t// |    |    |                                     |    |\n\t\t// |    |    |----|                           |----|    |\n\t\t// |    |    | C3 |                           | C4 |    |\n\t\t// |    |----|-------------------------------------|----|\n\t\t// |    |    |                 B1                  |    |\n\t\t// |----------------------------------------------------|\n\t\t// |                  B2 (Full Width)                   |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the <style>.\n * @param {string} css - the CSS to be injected.\n */\nfunction injectCSS(rootNode, css) {\n\t// https://stackoverflow.com/q/3922139\n\tvar expando = rootNode[EXPANDO_KEY] || (rootNode[EXPANDO_KEY] = {});\n\tif (!expando.containsStyles) {\n\t\texpando.containsStyles = true;\n\t\tcss = '/* Chart.js */\\n' + css;\n\t\tvar style = document.createElement('style');\n\t\tstyle.setAttribute('type', 'text/css');\n\t\tstyle.appendChild(document.createTextNode(css));\n\t\trootNode.appendChild(style);\n\t}\n}\n\nvar platform_dom$2 = {\n\t/**\n\t * When `true`, prevents the automatic injection of the stylesheet required to\n\t * correctly detect when the chart is added to the DOM and then resized. This\n\t * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`)\n\t * to be manually imported to make this library compatible with any CSP.\n\t * See https://github.com/chartjs/Chart.js/issues/5208\n\t */\n\tdisableCSSInjection: false,\n\n\t/**\n\t * This property holds whether this platform is enabled for the current environment.\n\t * Currently used by platform.js to select the proper implementation.\n\t * @private\n\t */\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n\t/**\n\t * Initializes resources that depend on platform options.\n\t * @param {HTMLCanvasElement} canvas - The Canvas element.\n\t * @private\n\t */\n\t_ensureLoaded: function(canvas) {\n\t\tif (!this.disableCSSInjection) {\n\t\t\t// If the canvas is in a shadow DOM, then the styles must also be inserted\n\t\t\t// into the same shadow DOM.\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5763\n\t\t\tvar root = canvas.getRootNode ? canvas.getRootNode() : document;\n\t\t\tvar targetNode = root.host ? root : document.head;\n\t\t\tinjectCSS(targetNode, stylesheet);\n\t\t}\n\t},\n\n\tacquireContext: function(item, config) {\n\t\tif (typeof item === 'string') {\n\t\t\titem = document.getElementById(item);\n\t\t} else if (item.length) {\n\t\t\t// Support for array based queries (such as jQuery)\n\t\t\titem = item[0];\n\t\t}\n\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\tvar context = item && item.getContext && item.getContext('2d');\n\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n\t\t// inside an iframe or when running in a protected environment. We could guess the\n\t\t// types from their toString() value but let's keep things flexible and assume it's\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\n\t\tif (context && context.canvas === item) {\n\t\t\t// Load platform resources on first chart creation, to make it possible to\n\t\t\t// import the library before setting platform options.\n\t\t\tthis._ensureLoaded(item);\n\t\t\tinitCanvas(item, config);\n\t\t\treturn context;\n\t\t}\n\n\t\treturn null;\n\t},\n\n\treleaseContext: function(context) {\n\t\tvar canvas = context.canvas;\n\t\tif (!canvas[EXPANDO_KEY]) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\n\t\t['height', 'width'].forEach(function(prop) {\n\t\t\tvar value = initial[prop];\n\t\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\t\tcanvas.removeAttribute(prop);\n\t\t\t} else {\n\t\t\t\tcanvas.setAttribute(prop, value);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(initial.style || {}, function(value, key) {\n\t\t\tcanvas.style[key] = value;\n\t\t});\n\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n\t\t// eslint-disable-next-line no-self-assign\n\t\tcanvas.width = canvas.width;\n\n\t\tdelete canvas[EXPANDO_KEY];\n\t},\n\n\taddEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\taddResizeListener(canvas, listener, chart);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\n\t\t\tlistener(fromNativeEvent(event, chart));\n\t\t};\n\n\t\taddListener(canvas, type, proxy);\n\t},\n\n\tremoveEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\tremoveResizeListener(canvas);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || {};\n\t\tvar proxies = expando.proxies || {};\n\t\tvar proxy = proxies[chart.id + '_' + type];\n\t\tif (!proxy) {\n\t\t\treturn;\n\t\t}\n\n\t\tremoveListener(canvas, type, proxy);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.addEvent = addListener;\n\n/**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.removeEvent = removeListener;\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nvar platform = helpers$1.extend({\n\t/**\n\t * @since 2.7.0\n\t */\n\tinitialize: function() {},\n\n\t/**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {*} item - The native item from which to acquire context (platform specific)\n\t * @param {object} options - The chart options\n\t * @returns {CanvasRenderingContext2D} context2d instance\n\t */\n\tacquireContext: function() {},\n\n\t/**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n\treleaseContext: function() {},\n\n\t/**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link IEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\n\t */\n\taddEventListener: function() {},\n\n\t/**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link IEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n\tremoveEventListener: function() {}\n\n}, implementation);\n\ncore_defaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nvar core_plugins = {\n\t/**\n\t * Globally registered plugins.\n\t * @private\n\t */\n\t_plugins: [],\n\n\t/**\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\n\t * incremented and descriptors are regenerated during following API calls.\n\t * @private\n\t */\n\t_cacheId: 0,\n\n\t/**\n\t * Registers the given plugin(s) if not already registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tif (p.indexOf(plugin) === -1) {\n\t\t\t\tp.push(plugin);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Unregisters the given plugin(s) only if registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tunregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tvar idx = p.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\tp.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Remove all registered plugins.\n\t * @since 2.1.5\n\t */\n\tclear: function() {\n\t\tthis._plugins = [];\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Returns the number of registered plugins?\n\t * @returns {number}\n\t * @since 2.1.5\n\t */\n\tcount: function() {\n\t\treturn this._plugins.length;\n\t},\n\n\t/**\n\t * Returns all registered plugin instances.\n\t * @returns {IPlugin[]} array of plugin objects.\n\t * @since 2.1.5\n\t */\n\tgetAll: function() {\n\t\treturn this._plugins;\n\t},\n\n\t/**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n\tnotify: function(chart, hook, args) {\n\t\tvar descriptors = this.descriptors(chart);\n\t\tvar ilen = descriptors.length;\n\t\tvar i, descriptor, plugin, params, method;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tdescriptor = descriptors[i];\n\t\t\tplugin = descriptor.plugin;\n\t\t\tmethod = plugin[hook];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\tparams = [chart].concat(args || []);\n\t\t\t\tparams.push(descriptor.options);\n\t\t\t\tif (method.apply(plugin, params) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns descriptors of enabled plugins for the given chart.\n\t * @returns {object[]} [{ plugin, options }]\n\t * @private\n\t */\n\tdescriptors: function(chart) {\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\n\t\tif (cache.id === this._cacheId) {\n\t\t\treturn cache.descriptors;\n\t\t}\n\n\t\tvar plugins = [];\n\t\tvar descriptors = [];\n\t\tvar config = (chart && chart.config) || {};\n\t\tvar options = (config.options && config.options.plugins) || {};\n\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\n\t\t\tvar idx = plugins.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar id = plugin.id;\n\t\t\tvar opts = options[id];\n\t\t\tif (opts === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (opts === true) {\n\t\t\t\topts = helpers$1.clone(core_defaults.global.plugins[id]);\n\t\t\t}\n\n\t\t\tplugins.push(plugin);\n\t\t\tdescriptors.push({\n\t\t\t\tplugin: plugin,\n\t\t\t\toptions: opts || {}\n\t\t\t});\n\t\t});\n\n\t\tcache.descriptors = descriptors;\n\t\tcache.id = this._cacheId;\n\t\treturn descriptors;\n\t},\n\n\t/**\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n\t * but in some cases, this reference can be changed by the user when updating options.\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t * @private\n\t */\n\t_invalidate: function(chart) {\n\t\tdelete chart.$plugins;\n\t}\n};\n\nvar core_scaleService = {\n\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n\t// use the new chart options to grab the correct scale\n\tconstructors: {},\n\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\n\t// old browsers\n\n\t// Scale config defaults\n\tdefaults: {},\n\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\n\t\tthis.constructors[type] = scaleConstructor;\n\t\tthis.defaults[type] = helpers$1.clone(scaleDefaults);\n\t},\n\tgetScaleConstructor: function(type) {\n\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n\t},\n\tgetScaleDefaults: function(type) {\n\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\n\t\treturn this.defaults.hasOwnProperty(type) ? helpers$1.merge(Object.create(null), [core_defaults.scale, this.defaults[type]]) : {};\n\t},\n\tupdateScaleDefaults: function(type, additions) {\n\t\tvar me = this;\n\t\tif (me.defaults.hasOwnProperty(type)) {\n\t\t\tme.defaults[type] = helpers$1.extend(me.defaults[type], additions);\n\t\t}\n\t},\n\taddScalesToLayout: function(chart) {\n\t\t// Adds each scale to the chart.boxes array to be sized accordingly\n\t\thelpers$1.each(chart.scales, function(scale) {\n\t\t\t// Set ILayoutItem parameters for backwards compatibility\n\t\t\tscale.fullWidth = scale.options.fullWidth;\n\t\t\tscale.position = scale.options.position;\n\t\t\tscale.weight = scale.options.weight;\n\t\t\tcore_layouts.addBox(chart, scale);\n\t\t});\n\t}\n};\n\nvar valueOrDefault$8 = helpers$1.valueOrDefault;\nvar getRtlHelper = helpers$1.rtl.getRtlAdapter;\n\ncore_defaults._set('global', {\n\ttooltips: {\n\t\tenabled: true,\n\t\tcustom: null,\n\t\tmode: 'nearest',\n\t\tposition: 'average',\n\t\tintersect: true,\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\n\t\ttitleFontStyle: 'bold',\n\t\ttitleSpacing: 2,\n\t\ttitleMarginBottom: 6,\n\t\ttitleFontColor: '#fff',\n\t\ttitleAlign: 'left',\n\t\tbodySpacing: 2,\n\t\tbodyFontColor: '#fff',\n\t\tbodyAlign: 'left',\n\t\tfooterFontStyle: 'bold',\n\t\tfooterSpacing: 2,\n\t\tfooterMarginTop: 6,\n\t\tfooterFontColor: '#fff',\n\t\tfooterAlign: 'left',\n\t\tyPadding: 6,\n\t\txPadding: 6,\n\t\tcaretPadding: 2,\n\t\tcaretSize: 5,\n\t\tcornerRadius: 6,\n\t\tmultiKeyBackground: '#fff',\n\t\tdisplayColors: true,\n\t\tborderColor: 'rgba(0,0,0,0)',\n\t\tborderWidth: 0,\n\t\tcallbacks: {\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeTitle: helpers$1.noop,\n\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\tvar title = '';\n\t\t\t\tvar labels = data.labels;\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\n\n\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\tvar item = tooltipItems[0];\n\t\t\t\t\tif (item.label) {\n\t\t\t\t\t\ttitle = item.label;\n\t\t\t\t\t} else if (item.xLabel) {\n\t\t\t\t\t\ttitle = item.xLabel;\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\n\t\t\t\t\t\ttitle = labels[item.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\t\t\tafterTitle: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers$1.noop,\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel += ': ';\n\t\t\t\t}\n\t\t\t\tif (!helpers$1.isNullOrUndef(tooltipItem.value)) {\n\t\t\t\t\tlabel += tooltipItem.value;\n\t\t\t\t} else {\n\t\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\t}\n\t\t\t\treturn label;\n\t\t\t},\n\t\t\tlabelColor: function(tooltipItem, chart) {\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\n\t\t\t\tvar view = activeElement._view;\n\t\t\t\treturn {\n\t\t\t\t\tborderColor: view.borderColor,\n\t\t\t\t\tbackgroundColor: view.backgroundColor\n\t\t\t\t};\n\t\t\t},\n\t\t\tlabelTextColor: function() {\n\t\t\t\treturn this._options.bodyFontColor;\n\t\t\t},\n\t\t\tafterLabel: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers$1.noop,\n\t\t\tfooter: helpers$1.noop,\n\t\t\tafterFooter: helpers$1.noop\n\t\t}\n\t}\n});\n\nvar positioners = {\n\t/**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t * @function Chart.Tooltip.positioners.average\n\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\n\t * @returns {object} tooltip position\n\t */\n\taverage: function(elements) {\n\t\tif (!elements.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar i, len;\n\t\tvar x = 0;\n\t\tvar y = 0;\n\t\tvar count = 0;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar pos = el.tooltipPosition();\n\t\t\t\tx += pos.x;\n\t\t\t\ty += pos.y;\n\t\t\t\t++count;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tx: x / count,\n\t\t\ty: y / count\n\t\t};\n\t},\n\n\t/**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t * @function Chart.Tooltip.positioners.nearest\n\t * @param elements {Chart.Element[]} the tooltip elements\n\t * @param eventPosition {object} the position of the event in canvas coordinates\n\t * @returns {object} the tooltip position\n\t */\n\tnearest: function(elements, eventPosition) {\n\t\tvar x = eventPosition.x;\n\t\tvar y = eventPosition.y;\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\n\t\tvar i, len, nearestElement;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar center = el.getCenterPoint();\n\t\t\t\tvar d = helpers$1.distanceBetweenPoints(eventPosition, center);\n\n\t\t\t\tif (d < minDistance) {\n\t\t\t\t\tminDistance = d;\n\t\t\t\t\tnearestElement = el;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (nearestElement) {\n\t\t\tvar tp = nearestElement.tooltipPosition();\n\t\t\tx = tp.x;\n\t\t\ty = tp.y;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t}\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n\tif (toPush) {\n\t\tif (helpers$1.isArray(toPush)) {\n\t\t\t// base = base.concat(toPush);\n\t\t\tArray.prototype.push.apply(base, toPush);\n\t\t} else {\n\t\t\tbase.push(toPush);\n\t\t}\n\t}\n\n\treturn base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {string} value - The value to split by newline.\n * @returns {string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n\tif ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n\t\treturn str.split('\\n');\n\t}\n\treturn str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param element - the chart element (point, arc, bar) to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(element) {\n\tvar xScale = element._xScale;\n\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\n\tvar index = element._index;\n\tvar datasetIndex = element._datasetIndex;\n\tvar controller = element._chart.getDatasetMeta(datasetIndex).controller;\n\tvar indexScale = controller._getIndexScale();\n\tvar valueScale = controller._getValueScale();\n\n\treturn {\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tlabel: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tvalue: valueScale ? '' + valueScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tindex: index,\n\t\tdatasetIndex: datasetIndex,\n\t\tx: element._model.x,\n\t\ty: element._model.y\n\t};\n}\n\n/**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {object} the tooltip options\n */\nfunction getBaseModel(tooltipOpts) {\n\tvar globalDefaults = core_defaults.global;\n\n\treturn {\n\t\t// Positioning\n\t\txPadding: tooltipOpts.xPadding,\n\t\tyPadding: tooltipOpts.yPadding,\n\t\txAlign: tooltipOpts.xAlign,\n\t\tyAlign: tooltipOpts.yAlign,\n\n\t\t// Drawing direction and text direction\n\t\trtl: tooltipOpts.rtl,\n\t\ttextDirection: tooltipOpts.textDirection,\n\n\t\t// Body\n\t\tbodyFontColor: tooltipOpts.bodyFontColor,\n\t\t_bodyFontFamily: valueOrDefault$8(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t_bodyFontStyle: valueOrDefault$8(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\tbodyFontSize: valueOrDefault$8(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t// Title\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t_titleFontFamily: valueOrDefault$8(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t_titleFontStyle: valueOrDefault$8(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\ttitleFontSize: valueOrDefault$8(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n\t\t_titleAlign: tooltipOpts.titleAlign,\n\t\ttitleSpacing: tooltipOpts.titleSpacing,\n\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\n\n\t\t// Footer\n\t\tfooterFontColor: tooltipOpts.footerFontColor,\n\t\t_footerFontFamily: valueOrDefault$8(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t_footerFontStyle: valueOrDefault$8(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\tfooterFontSize: valueOrDefault$8(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n\t\t_footerAlign: tooltipOpts.footerAlign,\n\t\tfooterSpacing: tooltipOpts.footerSpacing,\n\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\n\n\t\t// Appearance\n\t\tcaretSize: tooltipOpts.caretSize,\n\t\tcornerRadius: tooltipOpts.cornerRadius,\n\t\tbackgroundColor: tooltipOpts.backgroundColor,\n\t\topacity: 0,\n\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\n\t\tdisplayColors: tooltipOpts.displayColors,\n\t\tborderColor: tooltipOpts.borderColor,\n\t\tborderWidth: tooltipOpts.borderWidth\n\t};\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, model) {\n\tvar ctx = tooltip._chart.ctx;\n\n\tvar height = model.yPadding * 2; // Tooltip Padding\n\tvar width = 0;\n\n\t// Count of all lines in the body\n\tvar body = model.body;\n\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\n\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n\t}, 0);\n\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n\tvar titleLineCount = model.title.length;\n\tvar footerLineCount = model.footer.length;\n\tvar titleFontSize = model.titleFontSize;\n\tvar bodyFontSize = model.bodyFontSize;\n\tvar footerFontSize = model.footerFontSize;\n\n\theight += titleLineCount * titleFontSize; // Title Lines\n\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n\theight += combinedBodyLength * bodyFontSize; // Body Lines\n\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n\theight += footerLineCount * (footerFontSize); // Footer Lines\n\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n\t// Title width\n\tvar widthPadding = 0;\n\tvar maxLineWidth = function(line) {\n\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\n\t};\n\n\tctx.font = helpers$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\thelpers$1.each(model.title, maxLineWidth);\n\n\t// Body width\n\tctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\thelpers$1.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n\t// Body lines may include some extra width due to the color box\n\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n\thelpers$1.each(body, function(bodyItem) {\n\t\thelpers$1.each(bodyItem.before, maxLineWidth);\n\t\thelpers$1.each(bodyItem.lines, maxLineWidth);\n\t\thelpers$1.each(bodyItem.after, maxLineWidth);\n\t});\n\n\t// Reset back to 0\n\twidthPadding = 0;\n\n\t// Footer width\n\tctx.font = helpers$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\thelpers$1.each(model.footer, maxLineWidth);\n\n\t// Add padding\n\twidth += 2 * model.xPadding;\n\n\treturn {\n\t\twidth: width,\n\t\theight: height\n\t};\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(tooltip, size) {\n\tvar model = tooltip._model;\n\tvar chart = tooltip._chart;\n\tvar chartArea = tooltip._chart.chartArea;\n\tvar xAlign = 'center';\n\tvar yAlign = 'center';\n\n\tif (model.y < size.height) {\n\t\tyAlign = 'top';\n\t} else if (model.y > (chart.height - size.height)) {\n\t\tyAlign = 'bottom';\n\t}\n\n\tvar lf, rf; // functions to determine left, right alignment\n\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n\tvar midX = (chartArea.left + chartArea.right) / 2;\n\tvar midY = (chartArea.top + chartArea.bottom) / 2;\n\n\tif (yAlign === 'center') {\n\t\tlf = function(x) {\n\t\t\treturn x <= midX;\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x > midX;\n\t\t};\n\t} else {\n\t\tlf = function(x) {\n\t\t\treturn x <= (size.width / 2);\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x >= (chart.width - (size.width / 2));\n\t\t};\n\t}\n\n\tolf = function(x) {\n\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\n\t};\n\torf = function(x) {\n\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\n\t};\n\tyf = function(y) {\n\t\treturn y <= midY ? 'top' : 'bottom';\n\t};\n\n\tif (lf(model.x)) {\n\t\txAlign = 'left';\n\n\t\t// Is tooltip too wide and goes over the right side of the chart.?\n\t\tif (olf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t} else if (rf(model.x)) {\n\t\txAlign = 'right';\n\n\t\t// Is tooltip too wide and goes outside left edge of canvas?\n\t\tif (orf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t}\n\n\tvar opts = tooltip._options;\n\treturn {\n\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\n\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\n\t};\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(vm, size, alignment, chart) {\n\t// Background Position\n\tvar x = vm.x;\n\tvar y = vm.y;\n\n\tvar caretSize = vm.caretSize;\n\tvar caretPadding = vm.caretPadding;\n\tvar cornerRadius = vm.cornerRadius;\n\tvar xAlign = alignment.xAlign;\n\tvar yAlign = alignment.yAlign;\n\tvar paddingAndSize = caretSize + caretPadding;\n\tvar radiusAndPadding = cornerRadius + caretPadding;\n\n\tif (xAlign === 'right') {\n\t\tx -= size.width;\n\t} else if (xAlign === 'center') {\n\t\tx -= (size.width / 2);\n\t\tif (x + size.width > chart.width) {\n\t\t\tx = chart.width - size.width;\n\t\t}\n\t\tif (x < 0) {\n\t\t\tx = 0;\n\t\t}\n\t}\n\n\tif (yAlign === 'top') {\n\t\ty += paddingAndSize;\n\t} else if (yAlign === 'bottom') {\n\t\ty -= size.height + paddingAndSize;\n\t} else {\n\t\ty -= (size.height / 2);\n\t}\n\n\tif (yAlign === 'center') {\n\t\tif (xAlign === 'left') {\n\t\t\tx += paddingAndSize;\n\t\t} else if (xAlign === 'right') {\n\t\t\tx -= paddingAndSize;\n\t\t}\n\t} else if (xAlign === 'left') {\n\t\tx -= radiusAndPadding;\n\t} else if (xAlign === 'right') {\n\t\tx += radiusAndPadding;\n\t}\n\n\treturn {\n\t\tx: x,\n\t\ty: y\n\t};\n}\n\nfunction getAlignedX(vm, align) {\n\treturn align === 'center'\n\t\t? vm.x + vm.width / 2\n\t\t: align === 'right'\n\t\t\t? vm.x + vm.width - vm.xPadding\n\t\t\t: vm.x + vm.xPadding;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n\treturn pushOrConcat([], splitNewlines(callback));\n}\n\nvar exports$4 = core_element.extend({\n\tinitialize: function() {\n\t\tthis._model = getBaseModel(this._options);\n\t\tthis._lastActive = [];\n\t},\n\n\t// Get the title\n\t// Args are: (tooltipItem, data)\n\tgetTitle: function() {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\t\tvar callbacks = opts.callbacks;\n\n\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n\t\tvar title = callbacks.title.apply(me, arguments);\n\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeTitle));\n\t\tlines = pushOrConcat(lines, splitNewlines(title));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n\t\treturn lines;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBeforeBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments));\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBody: function(tooltipItems, data) {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\t\tvar bodyItems = [];\n\n\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\tvar bodyItem = {\n\t\t\t\tbefore: [],\n\t\t\t\tlines: [],\n\t\t\t\tafter: []\n\t\t\t};\n\t\t\tpushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data)));\n\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n\t\t\tpushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data)));\n\n\t\t\tbodyItems.push(bodyItem);\n\t\t});\n\n\t\treturn bodyItems;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetAfterBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments));\n\t},\n\n\t// Get the footer and beforeFooter and afterFooter lines\n\t// Args are: (tooltipItem, data)\n\tgetFooter: function() {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\n\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n\t\tvar footer = callbacks.footer.apply(me, arguments);\n\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeFooter));\n\t\tlines = pushOrConcat(lines, splitNewlines(footer));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n\t\treturn lines;\n\t},\n\n\tupdate: function(changed) {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\n\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n\t\t// which breaks any animations.\n\t\tvar existingModel = me._model;\n\t\tvar model = me._model = getBaseModel(opts);\n\t\tvar active = me._active;\n\n\t\tvar data = me._data;\n\n\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\n\t\tvar alignment = {\n\t\t\txAlign: existingModel.xAlign,\n\t\t\tyAlign: existingModel.yAlign\n\t\t};\n\t\tvar backgroundPoint = {\n\t\t\tx: existingModel.x,\n\t\t\ty: existingModel.y\n\t\t};\n\t\tvar tooltipSize = {\n\t\t\twidth: existingModel.width,\n\t\t\theight: existingModel.height\n\t\t};\n\t\tvar tooltipPosition = {\n\t\t\tx: existingModel.caretX,\n\t\t\ty: existingModel.caretY\n\t\t};\n\n\t\tvar i, len;\n\n\t\tif (active.length) {\n\t\t\tmodel.opacity = 1;\n\n\t\t\tvar labelColors = [];\n\t\t\tvar labelTextColors = [];\n\t\t\ttooltipPosition = positioners[opts.position].call(me, active, me._eventPosition);\n\n\t\t\tvar tooltipItems = [];\n\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\n\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\n\t\t\t}\n\n\t\t\t// If the user provided a filter function, use it to modify the tooltip items\n\t\t\tif (opts.filter) {\n\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\n\t\t\t\t\treturn opts.filter(a, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\n\t\t\tif (opts.itemSort) {\n\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\n\t\t\t\t\treturn opts.itemSort(a, b, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Determine colors for boxes\n\t\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n\t\t\t});\n\n\n\t\t\t// Build the Text Lines\n\t\t\tmodel.title = me.getTitle(tooltipItems, data);\n\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\n\t\t\tmodel.body = me.getBody(tooltipItems, data);\n\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\n\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\n\n\t\t\t// Initial positioning and colors\n\t\t\tmodel.x = tooltipPosition.x;\n\t\t\tmodel.y = tooltipPosition.y;\n\t\t\tmodel.caretPadding = opts.caretPadding;\n\t\t\tmodel.labelColors = labelColors;\n\t\t\tmodel.labelTextColors = labelTextColors;\n\n\t\t\t// data points\n\t\t\tmodel.dataPoints = tooltipItems;\n\n\t\t\t// We need to determine alignment of the tooltip\n\t\t\ttooltipSize = getTooltipSize(this, model);\n\t\t\talignment = determineAlignment(this, tooltipSize);\n\t\t\t// Final Size and Position\n\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n\t\t} else {\n\t\t\tmodel.opacity = 0;\n\t\t}\n\n\t\tmodel.xAlign = alignment.xAlign;\n\t\tmodel.yAlign = alignment.yAlign;\n\t\tmodel.x = backgroundPoint.x;\n\t\tmodel.y = backgroundPoint.y;\n\t\tmodel.width = tooltipSize.width;\n\t\tmodel.height = tooltipSize.height;\n\n\t\t// Point where the caret on the tooltip points to\n\t\tmodel.caretX = tooltipPosition.x;\n\t\tmodel.caretY = tooltipPosition.y;\n\n\t\tme._model = model;\n\n\t\tif (changed && opts.custom) {\n\t\t\topts.custom.call(me, model);\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdrawCaret: function(tooltipPoint, size) {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\n\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\n\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\n\t},\n\tgetCaretPosition: function(tooltipPoint, size, vm) {\n\t\tvar x1, x2, x3, y1, y2, y3;\n\t\tvar caretSize = vm.caretSize;\n\t\tvar cornerRadius = vm.cornerRadius;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar ptX = tooltipPoint.x;\n\t\tvar ptY = tooltipPoint.y;\n\t\tvar width = size.width;\n\t\tvar height = size.height;\n\n\t\tif (yAlign === 'center') {\n\t\t\ty2 = ptY + (height / 2);\n\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx1 = ptX;\n\t\t\t\tx2 = x1 - caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 + caretSize;\n\t\t\t\ty3 = y2 - caretSize;\n\t\t\t} else {\n\t\t\t\tx1 = ptX + width;\n\t\t\t\tx2 = x1 + caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 - caretSize;\n\t\t\t\ty3 = y2 + caretSize;\n\t\t\t}\n\t\t} else {\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else if (xAlign === 'right') {\n\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else {\n\t\t\t\tx2 = vm.caretX;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t}\n\t\t\tif (yAlign === 'top') {\n\t\t\t\ty1 = ptY;\n\t\t\t\ty2 = y1 - caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t} else {\n\t\t\t\ty1 = ptY + height;\n\t\t\t\ty2 = y1 + caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t\t// invert drawing order\n\t\t\t\tvar tmp = x3;\n\t\t\t\tx3 = x1;\n\t\t\t\tx1 = tmp;\n\t\t\t}\n\t\t}\n\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n\t},\n\n\tdrawTitle: function(pt, vm, ctx) {\n\t\tvar title = vm.title;\n\t\tvar length = title.length;\n\t\tvar titleFontSize, titleSpacing, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._titleAlign);\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._titleAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\ttitleFontSize = vm.titleFontSize;\n\t\t\ttitleSpacing = vm.titleSpacing;\n\n\t\t\tctx.fillStyle = vm.titleFontColor;\n\t\t\tctx.font = helpers$1.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFontSize / 2);\n\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n\t\t\t\tif (i + 1 === length) {\n\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBody: function(pt, vm, ctx) {\n\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\tvar bodySpacing = vm.bodySpacing;\n\t\tvar bodyAlign = vm._bodyAlign;\n\t\tvar body = vm.body;\n\t\tvar drawColorBoxes = vm.displayColors;\n\t\tvar xLinePadding = 0;\n\t\tvar colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0;\n\n\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\tvar fillLineOfText = function(line) {\n\t\t\tctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyFontSize / 2);\n\t\t\tpt.y += bodyFontSize + bodySpacing;\n\t\t};\n\n\t\tvar bodyItem, textColor, labelColors, lines, i, j, ilen, jlen;\n\t\tvar bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n\n\t\tctx.textAlign = bodyAlign;\n\t\tctx.textBaseline = 'middle';\n\t\tctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\tpt.x = getAlignedX(vm, bodyAlignForCalculation);\n\n\t\t// Before body lines\n\t\tctx.fillStyle = vm.bodyFontColor;\n\t\thelpers$1.each(vm.beforeBody, fillLineOfText);\n\n\t\txLinePadding = drawColorBoxes && bodyAlignForCalculation !== 'right'\n\t\t\t? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2)\n\t\t\t: 0;\n\n\t\t// Draw body lines now\n\t\tfor (i = 0, ilen = body.length; i < ilen; ++i) {\n\t\t\tbodyItem = body[i];\n\t\t\ttextColor = vm.labelTextColors[i];\n\t\t\tlabelColors = vm.labelColors[i];\n\n\t\t\tctx.fillStyle = textColor;\n\t\t\thelpers$1.each(bodyItem.before, fillLineOfText);\n\n\t\t\tlines = bodyItem.lines;\n\t\t\tfor (j = 0, jlen = lines.length; j < jlen; ++j) {\n\t\t\t\t// Draw Legend-like boxes if needed\n\t\t\t\tif (drawColorBoxes) {\n\t\t\t\t\tvar rtlColorX = rtlHelper.x(colorX);\n\n\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\n\t\t\t\t\tctx.fillStyle = vm.legendColorBackground;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Border\n\t\t\t\t\tctx.lineWidth = 1;\n\t\t\t\t\tctx.strokeStyle = labelColors.borderColor;\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Inner square\n\t\t\t\t\tctx.fillStyle = labelColors.backgroundColor;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), bodyFontSize - 2), pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n\t\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\t}\n\n\t\t\t\tfillLineOfText(lines[j]);\n\t\t\t}\n\n\t\t\thelpers$1.each(bodyItem.after, fillLineOfText);\n\t\t}\n\n\t\t// Reset back to 0 for after body\n\t\txLinePadding = 0;\n\n\t\t// After body lines\n\t\thelpers$1.each(vm.afterBody, fillLineOfText);\n\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t},\n\n\tdrawFooter: function(pt, vm, ctx) {\n\t\tvar footer = vm.footer;\n\t\tvar length = footer.length;\n\t\tvar footerFontSize, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._footerAlign);\n\t\t\tpt.y += vm.footerMarginTop;\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._footerAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tfooterFontSize = vm.footerFontSize;\n\n\t\t\tctx.fillStyle = vm.footerFontColor;\n\t\t\tctx.font = helpers$1.fontString(footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFontSize / 2);\n\t\t\t\tpt.y += footerFontSize + vm.footerSpacing;\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBackground: function(pt, vm, ctx, tooltipSize) {\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar x = pt.x;\n\t\tvar y = pt.y;\n\t\tvar width = tooltipSize.width;\n\t\tvar height = tooltipSize.height;\n\t\tvar radius = vm.cornerRadius;\n\n\t\tctx.beginPath();\n\t\tctx.moveTo(x + radius, y);\n\t\tif (yAlign === 'top') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width - radius, y);\n\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\tif (yAlign === 'center' && xAlign === 'right') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width, y + height - radius);\n\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\tif (yAlign === 'bottom') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + radius, y + height);\n\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\tif (yAlign === 'center' && xAlign === 'left') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x, y + radius);\n\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\tctx.closePath();\n\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth > 0) {\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\n\t\tif (vm.opacity === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tooltipSize = {\n\t\t\twidth: vm.width,\n\t\t\theight: vm.height\n\t\t};\n\t\tvar pt = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\n\t\t// IE11/Edge does not like very small opacities, so snap to 0\n\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n\t\t// Truthy/falsey value for empty tooltip\n\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n\t\tif (this._options.enabled && hasTooltipContent) {\n\t\t\tctx.save();\n\t\t\tctx.globalAlpha = opacity;\n\n\t\t\t// Draw Background\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize);\n\n\t\t\t// Draw Title, Body, and Footer\n\t\t\tpt.y += vm.yPadding;\n\n\t\t\thelpers$1.rtl.overrideTextDirection(ctx, vm.textDirection);\n\n\t\t\t// Titles\n\t\t\tthis.drawTitle(pt, vm, ctx);\n\n\t\t\t// Body\n\t\t\tthis.drawBody(pt, vm, ctx);\n\n\t\t\t// Footer\n\t\t\tthis.drawFooter(pt, vm, ctx);\n\n\t\t\thelpers$1.rtl.restoreTextDirection(ctx, vm.textDirection);\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @returns {boolean} true if the tooltip changed\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me._options;\n\t\tvar changed = false;\n\n\t\tme._lastActive = me._lastActive || [];\n\n\t\t// Find Active Elements for tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme._active = [];\n\t\t} else {\n\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n\t\t\tif (options.reverse) {\n\t\t\t\tme._active.reverse();\n\t\t\t}\n\t\t}\n\n\t\t// Remember Last Actives\n\t\tchanged = !helpers$1.arrayEquals(me._active, me._lastActive);\n\n\t\t// Only handle target event on tooltip change\n\t\tif (changed) {\n\t\t\tme._lastActive = me._active;\n\n\t\t\tif (options.enabled || options.custom) {\n\t\t\t\tme._eventPosition = {\n\t\t\t\t\tx: e.x,\n\t\t\t\t\ty: e.y\n\t\t\t\t};\n\n\t\t\t\tme.update(true);\n\t\t\t\tme.pivot();\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * @namespace Chart.Tooltip.positioners\n */\nvar positioners_1 = positioners;\n\nvar core_tooltip = exports$4;\ncore_tooltip.positioners = positioners_1;\n\nvar valueOrDefault$9 = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\telements: {},\n\tevents: [\n\t\t'mousemove',\n\t\t'mouseout',\n\t\t'click',\n\t\t'touchstart',\n\t\t'touchmove'\n\t],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\n\tmaintainAspectRatio: true,\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0\n});\n\n/**\n * Recursively merge the given config objects representing the `scales` option\n * by incorporating scale defaults in `xAxes` and `yAxes` array items, then\n * returns a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeScaleConfig(/* config objects ... */) {\n\treturn helpers$1.merge(Object.create(null), [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\tvar slen = source[key].length;\n\t\t\t\tvar i, type, scale;\n\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\ttype = valueOrDefault$9(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\n\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\thelpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\thelpers$1.merge(target[key][i], scale);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * Recursively merge the given config objects as the root options by handling\n * default scale options for the `scales` and `scale` properties, then returns\n * a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeConfig(/* config objects ... */) {\n\treturn helpers$1.merge(Object.create(null), [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tvar tval = target[key] || Object.create(null);\n\t\t\tvar sval = source[key];\n\n\t\t\tif (key === 'scales') {\n\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\ttarget[key] = mergeScaleConfig(tval, sval);\n\t\t\t} else if (key === 'scale') {\n\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\ttarget[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction initConfig(config) {\n\tconfig = config || Object.create(null);\n\n\t// Do NOT use mergeConfig for the data object because this method merges arrays\n\t// and so would change references to labels and datasets, preventing data updates.\n\tvar data = config.data = config.data || {};\n\tdata.datasets = data.datasets || [];\n\tdata.labels = data.labels || [];\n\n\tconfig.options = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[config.type],\n\t\tconfig.options || {});\n\n\treturn config;\n}\n\nfunction updateConfig(chart) {\n\tvar newOptions = chart.options;\n\n\thelpers$1.each(chart.scales, function(scale) {\n\t\tcore_layouts.removeBox(chart, scale);\n\t});\n\n\tnewOptions = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[chart.config.type],\n\t\tnewOptions);\n\n\tchart.options = chart.config.options = newOptions;\n\tchart.ensureScalesHaveIDs();\n\tchart.buildOrUpdateScales();\n\n\t// Tooltip\n\tchart.tooltip._options = newOptions.tooltips;\n\tchart.tooltip.initialize();\n}\n\nfunction nextAvailableScaleId(axesOpts, prefix, index) {\n\tvar id;\n\tvar hasId = function(obj) {\n\t\treturn obj.id === id;\n\t};\n\n\tdo {\n\t\tid = prefix + index++;\n\t} while (helpers$1.findIndex(axesOpts, hasId) >= 0);\n\n\treturn id;\n}\n\nfunction positionIsHorizontal(position) {\n\treturn position === 'top' || position === 'bottom';\n}\n\nfunction compare2Level(l1, l2) {\n\treturn function(a, b) {\n\t\treturn a[l1] === b[l1]\n\t\t\t? a[l2] - b[l2]\n\t\t\t: a[l1] - b[l1];\n\t};\n}\n\nvar Chart = function(item, config) {\n\tthis.construct(item, config);\n\treturn this;\n};\n\nhelpers$1.extend(Chart.prototype, /** @lends Chart */ {\n\t/**\n\t * @private\n\t */\n\tconstruct: function(item, config) {\n\t\tvar me = this;\n\n\t\tconfig = initConfig(config);\n\n\t\tvar context = platform.acquireContext(item, config);\n\t\tvar canvas = context && context.canvas;\n\t\tvar height = canvas && canvas.height;\n\t\tvar width = canvas && canvas.width;\n\n\t\tme.id = helpers$1.uid();\n\t\tme.ctx = context;\n\t\tme.canvas = canvas;\n\t\tme.config = config;\n\t\tme.width = width;\n\t\tme.height = height;\n\t\tme.aspectRatio = height ? width / height : null;\n\t\tme.options = config.options;\n\t\tme._bufferedRender = false;\n\t\tme._layers = [];\n\n\t\t/**\n\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t * @prop Chart#chart\n\t\t * @deprecated since version 2.6.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tme.chart = me;\n\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t// Add the chart instance to the global namespace\n\t\tChart.instances[me.id] = me;\n\n\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\tObject.defineProperty(me, 'data', {\n\t\t\tget: function() {\n\t\t\t\treturn me.config.data;\n\t\t\t},\n\t\t\tset: function(value) {\n\t\t\t\tme.config.data = value;\n\t\t\t}\n\t\t});\n\n\t\tif (!context || !canvas) {\n\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\treturn;\n\t\t}\n\n\t\tme.initialize();\n\t\tme.update();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinitialize: function() {\n\t\tvar me = this;\n\n\t\t// Before init plugin notification\n\t\tcore_plugins.notify(me, 'beforeInit');\n\n\t\thelpers$1.retinaScale(me, me.options.devicePixelRatio);\n\n\t\tme.bindEvents();\n\n\t\tif (me.options.responsive) {\n\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\tme.resize(true);\n\t\t}\n\n\t\tme.initToolTip();\n\n\t\t// After init plugin notification\n\t\tcore_plugins.notify(me, 'afterInit');\n\n\t\treturn me;\n\t},\n\n\tclear: function() {\n\t\thelpers$1.canvas.clear(this);\n\t\treturn this;\n\t},\n\n\tstop: function() {\n\t\t// Stops any current animation loop occurring\n\t\tcore_animations.cancelAnimation(this);\n\t\treturn this;\n\t},\n\n\tresize: function(silent) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar canvas = me.canvas;\n\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\n\t\tvar newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas)));\n\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas)));\n\n\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\tcanvas.width = me.width = newWidth;\n\t\tcanvas.height = me.height = newHeight;\n\t\tcanvas.style.width = newWidth + 'px';\n\t\tcanvas.style.height = newHeight + 'px';\n\n\t\thelpers$1.retinaScale(me, options.devicePixelRatio);\n\n\t\tif (!silent) {\n\t\t\t// Notify any plugins about the resize\n\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\tcore_plugins.notify(me, 'resize', [newSize]);\n\n\t\t\t// Notify of resize\n\t\t\tif (options.onResize) {\n\t\t\t\toptions.onResize(me, newSize);\n\t\t\t}\n\n\t\t\tme.stop();\n\t\t\tme.update({\n\t\t\t\tduration: options.responsiveAnimationDuration\n\t\t\t});\n\t\t}\n\t},\n\n\tensureScalesHaveIDs: function() {\n\t\tvar options = this.options;\n\t\tvar scalesOptions = options.scales || {};\n\t\tvar scaleOptions = options.scale;\n\n\t\thelpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\tif (!xAxisOptions.id) {\n\t\t\t\txAxisOptions.id = nextAvailableScaleId(scalesOptions.xAxes, 'x-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\tif (!yAxisOptions.id) {\n\t\t\t\tyAxisOptions.id = nextAvailableScaleId(scalesOptions.yAxes, 'y-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\tif (scaleOptions) {\n\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t}\n\t},\n\n\t/**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n\tbuildOrUpdateScales: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar scales = me.scales || {};\n\t\tvar items = [];\n\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\tobj[id] = false;\n\t\t\treturn obj;\n\t\t}, {});\n\n\t\tif (options.scales) {\n\t\t\titems = items.concat(\n\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t}),\n\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (options.scale) {\n\t\t\titems.push({\n\t\t\t\toptions: options.scale,\n\t\t\t\tdtype: 'radialLinear',\n\t\t\t\tisDefault: true,\n\t\t\t\tdposition: 'chartArea'\n\t\t\t});\n\t\t}\n\n\t\thelpers$1.each(items, function(item) {\n\t\t\tvar scaleOptions = item.options;\n\t\t\tvar id = scaleOptions.id;\n\t\t\tvar scaleType = valueOrDefault$9(scaleOptions.type, item.dtype);\n\n\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t}\n\n\t\t\tupdated[id] = true;\n\t\t\tvar scale = null;\n\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\tscale = scales[id];\n\t\t\t\tscale.options = scaleOptions;\n\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\tscale.chart = me;\n\t\t\t} else {\n\t\t\t\tvar scaleClass = core_scaleService.getScaleConstructor(scaleType);\n\t\t\t\tif (!scaleClass) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tscale = new scaleClass({\n\t\t\t\t\tid: id,\n\t\t\t\t\ttype: scaleType,\n\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\tchart: me\n\t\t\t\t});\n\t\t\t\tscales[scale.id] = scale;\n\t\t\t}\n\n\t\t\tscale.mergeTicksOptions();\n\n\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\tif (item.isDefault) {\n\t\t\t\tme.scale = scale;\n\t\t\t}\n\t\t});\n\t\t// clear up discarded scales\n\t\thelpers$1.each(updated, function(hasUpdated, id) {\n\t\t\tif (!hasUpdated) {\n\t\t\t\tdelete scales[id];\n\t\t\t}\n\t\t});\n\n\t\tme.scales = scales;\n\n\t\tcore_scaleService.addScalesToLayout(this);\n\t},\n\n\tbuildOrUpdateControllers: function() {\n\t\tvar me = this;\n\t\tvar newControllers = [];\n\t\tvar datasets = me.data.datasets;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tvar dataset = datasets[i];\n\t\t\tvar meta = me.getDatasetMeta(i);\n\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\tme.destroyDatasetMeta(i);\n\t\t\t\tmeta = me.getDatasetMeta(i);\n\t\t\t}\n\t\t\tmeta.type = type;\n\t\t\tmeta.order = dataset.order || 0;\n\t\t\tmeta.index = i;\n\n\t\t\tif (meta.controller) {\n\t\t\t\tmeta.controller.updateIndex(i);\n\t\t\t\tmeta.controller.linkScales();\n\t\t\t} else {\n\t\t\t\tvar ControllerClass = controllers[meta.type];\n\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t}\n\n\t\t\t\tmeta.controller = new ControllerClass(me, i);\n\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t}\n\t\t}\n\n\t\treturn newControllers;\n\t},\n\n\t/**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n\tresetElements: function() {\n\t\tvar me = this;\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t}, me);\n\t},\n\n\t/**\n\t* Resets the chart back to it's state before the initial animation\n\t*/\n\treset: function() {\n\t\tthis.resetElements();\n\t\tthis.tooltip.initialize();\n\t},\n\n\tupdate: function(config) {\n\t\tvar me = this;\n\t\tvar i, ilen;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tupdateConfig(me);\n\n\t\t// plugins options references might have change, let's invalidate the cache\n\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\tcore_plugins._invalidate(me);\n\n\t\tif (core_plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In case the entire data object changed\n\t\tme.tooltip._data = me.data;\n\n\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t// Make sure all dataset controllers have correct meta data counts\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n\t\t\tme.getDatasetMeta(i).controller.buildOrUpdateElements();\n\t\t}\n\n\t\tme.updateLayout();\n\n\t\t// Can only reset the new controllers after the scales have been updated\n\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\thelpers$1.each(newControllers, function(controller) {\n\t\t\t\tcontroller.reset();\n\t\t\t});\n\t\t}\n\n\t\tme.updateDatasets();\n\n\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t// after update.\n\t\tme.tooltip.initialize();\n\n\t\t// Last active contains items that were previously in the tooltip.\n\t\t// When we reset the tooltip, we need to clear it\n\t\tme.lastActive = [];\n\n\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\tcore_plugins.notify(me, 'afterUpdate');\n\n\t\tme._layers.sort(compare2Level('z', '_idx'));\n\n\t\tif (me._bufferedRender) {\n\t\t\tme._bufferedRequest = {\n\t\t\t\tduration: config.duration,\n\t\t\t\teasing: config.easing,\n\t\t\t\tlazy: config.lazy\n\t\t\t};\n\t\t} else {\n\t\t\tme.render(config);\n\t\t}\n\t},\n\n\t/**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n\tupdateLayout: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeLayout') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tcore_layouts.update(this, this.width, this.height);\n\n\t\tme._layers = [];\n\t\thelpers$1.each(me.boxes, function(box) {\n\t\t\t// _configure is called twice, once in core.scale.update and once here.\n\t\t\t// Here the boxes are fully updated and at their final positions.\n\t\t\tif (box._configure) {\n\t\t\t\tbox._configure();\n\t\t\t}\n\t\t\tme._layers.push.apply(me._layers, box._layers());\n\t\t}, me);\n\n\t\tme._layers.forEach(function(item, index) {\n\t\t\titem._idx = index;\n\t\t});\n\n\t\t/**\n\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t * @method IPlugin#afterScaleUpdate\n\t\t * @deprecated since version 2.5.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tcore_plugins.notify(me, 'afterScaleUpdate');\n\t\tcore_plugins.notify(me, 'afterLayout');\n\t},\n\n\t/**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n\tupdateDatasets: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.updateDataset(i);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsUpdate');\n\t},\n\n\t/**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n\tupdateDataset: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getDatasetMeta(index);\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: index\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller._update();\n\n\t\tcore_plugins.notify(me, 'afterDatasetUpdate', [args]);\n\t},\n\n\trender: function(config) {\n\t\tvar me = this;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tvar animationOptions = me.options.animation;\n\t\tvar duration = valueOrDefault$9(config.duration, animationOptions && animationOptions.duration);\n\t\tvar lazy = config.lazy;\n\n\t\tif (core_plugins.notify(me, 'beforeRender') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar onComplete = function(animation) {\n\t\t\tcore_plugins.notify(me, 'afterRender');\n\t\t\thelpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t};\n\n\t\tif (animationOptions && duration) {\n\t\t\tvar animation = new core_animation({\n\t\t\t\tnumSteps: duration / 16.66, // 60 fps\n\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\tvar easingFunction = helpers$1.easing.effects[animationObject.easing];\n\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t},\n\n\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\tonAnimationComplete: onComplete\n\t\t\t});\n\n\t\t\tcore_animations.addAnimation(me, animation, duration, lazy);\n\t\t} else {\n\t\t\tme.draw();\n\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\tonComplete(new core_animation({numSteps: 0, chart: me}));\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdraw: function(easingValue) {\n\t\tvar me = this;\n\t\tvar i, layers;\n\n\t\tme.clear();\n\n\t\tif (helpers$1.isNullOrUndef(easingValue)) {\n\t\t\teasingValue = 1;\n\t\t}\n\n\t\tme.transition(easingValue);\n\n\t\tif (me.width <= 0 || me.height <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n\t\t// currently be part of layers. Instead, we draw\n\t\t// layers <= 0 before(default, backward compat), and the rest after\n\t\tlayers = me._layers;\n\t\tfor (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme.drawDatasets(easingValue);\n\n\t\t// Rest of layers\n\t\tfor (; i < layers.length; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme._drawTooltip(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDraw', [easingValue]);\n\t},\n\n\t/**\n\t * @private\n\t */\n\ttransition: function(easingValue) {\n\t\tvar me = this;\n\n\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t}\n\t\t}\n\n\t\tme.tooltip.transition(easingValue);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedDatasetMetas: function(filterVisible) {\n\t\tvar me = this;\n\t\tvar datasets = me.data.datasets || [];\n\t\tvar result = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\n\t\t\tif (!filterVisible || me.isDatasetVisible(i)) {\n\t\t\t\tresult.push(me.getDatasetMeta(i));\n\t\t\t}\n\t\t}\n\n\t\tresult.sort(compare2Level('order', 'index'));\n\n\t\treturn result;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedVisibleDatasetMetas: function() {\n\t\treturn this._getSortedDatasetMetas(true);\n\t},\n\n\t/**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n\tdrawDatasets: function(easingValue) {\n\t\tvar me = this;\n\t\tvar metasets, i;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmetasets = me._getSortedVisibleDatasetMetas();\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tme.drawDataset(metasets[i], easingValue);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t},\n\n\t/**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n\tdrawDataset: function(meta, easingValue) {\n\t\tvar me = this;\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: meta.index,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller.draw(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDatasetDraw', [args]);\n\t},\n\n\t/**\n\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t * @private\n\t */\n\t_drawTooltip: function(easingValue) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\t\tvar args = {\n\t\t\ttooltip: tooltip,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip.draw();\n\n\t\tcore_plugins.notify(me, 'afterTooltipDraw', [args]);\n\t},\n\n\t/**\n\t * Get the single element that was clicked on\n\t * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t */\n\tgetElementAtEvent: function(e) {\n\t\treturn core_interaction.modes.single(this, e);\n\t},\n\n\tgetElementsAtEvent: function(e) {\n\t\treturn core_interaction.modes.label(this, e, {intersect: true});\n\t},\n\n\tgetElementsAtXAxis: function(e) {\n\t\treturn core_interaction.modes['x-axis'](this, e, {intersect: true});\n\t},\n\n\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\tvar method = core_interaction.modes[mode];\n\t\tif (typeof method === 'function') {\n\t\t\treturn method(this, e, options);\n\t\t}\n\n\t\treturn [];\n\t},\n\n\tgetDatasetAtEvent: function(e) {\n\t\treturn core_interaction.modes.dataset(this, e, {intersect: true});\n\t},\n\n\tgetDatasetMeta: function(datasetIndex) {\n\t\tvar me = this;\n\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\tif (!dataset._meta) {\n\t\t\tdataset._meta = {};\n\t\t}\n\n\t\tvar meta = dataset._meta[me.id];\n\t\tif (!meta) {\n\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\ttype: null,\n\t\t\t\tdata: [],\n\t\t\t\tdataset: null,\n\t\t\t\tcontroller: null,\n\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\txAxisID: null,\n\t\t\t\tyAxisID: null,\n\t\t\t\torder: dataset.order || 0,\n\t\t\t\tindex: datasetIndex\n\t\t\t};\n\t\t}\n\n\t\treturn meta;\n\t},\n\n\tgetVisibleDatasetCount: function() {\n\t\tvar count = 0;\n\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t},\n\n\tisDatasetVisible: function(datasetIndex) {\n\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t},\n\n\tgenerateLegend: function() {\n\t\treturn this.options.legendCallback(this);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroyDatasetMeta: function(datasetIndex) {\n\t\tvar id = this.id;\n\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\tif (meta) {\n\t\t\tmeta.controller.destroy();\n\t\t\tdelete dataset._meta[id];\n\t\t}\n\t},\n\n\tdestroy: function() {\n\t\tvar me = this;\n\t\tvar canvas = me.canvas;\n\t\tvar i, ilen;\n\n\t\tme.stop();\n\n\t\t// dataset controllers need to cleanup associated data\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.destroyDatasetMeta(i);\n\t\t}\n\n\t\tif (canvas) {\n\t\t\tme.unbindEvents();\n\t\t\thelpers$1.canvas.clear(me);\n\t\t\tplatform.releaseContext(me.ctx);\n\t\t\tme.canvas = null;\n\t\t\tme.ctx = null;\n\t\t}\n\n\t\tcore_plugins.notify(me, 'destroy');\n\n\t\tdelete Chart.instances[me.id];\n\t},\n\n\ttoBase64Image: function() {\n\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t},\n\n\tinitToolTip: function() {\n\t\tvar me = this;\n\t\tme.tooltip = new core_tooltip({\n\t\t\t_chart: me,\n\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t_data: me.data,\n\t\t\t_options: me.options.tooltips\n\t\t}, me);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners = {};\n\t\tvar listener = function() {\n\t\t\tme.eventHandler.apply(me, arguments);\n\t\t};\n\n\t\thelpers$1.each(me.options.events, function(type) {\n\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\tlisteners[type] = listener;\n\t\t});\n\n\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\tif (me.options.responsive) {\n\t\t\tlistener = function() {\n\t\t\t\tme.resize();\n\t\t\t};\n\n\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\tlisteners.resize = listener;\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tunbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners;\n\t\tif (!listeners) {\n\t\t\treturn;\n\t\t}\n\n\t\tdelete me._listeners;\n\t\thelpers$1.each(listeners, function(listener, type) {\n\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t});\n\t},\n\n\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\tvar prefix = enabled ? 'set' : 'remove';\n\t\tvar element, i, ilen;\n\n\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\telement = elements[i];\n\t\t\tif (element) {\n\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[prefix + 'HoverStyle'](element);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'dataset') {\n\t\t\tthis.getDatasetMeta(elements[0]._datasetIndex).controller['_' + prefix + 'DatasetHoverStyle']();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\teventHandler: function(e) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\n\t\tif (core_plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Buffer any update calls so that renders do not occur\n\t\tme._bufferedRender = true;\n\t\tme._bufferedRequest = null;\n\n\t\tvar changed = me.handleEvent(e);\n\t\t// for smooth tooltip animations issue #4989\n\t\t// the tooltip should be the source of change\n\t\t// Animation check workaround:\n\t\t// tooltip._start will be null when tooltip isn't animating\n\t\tif (tooltip) {\n\t\t\tchanged = tooltip._start\n\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterEvent', [e]);\n\n\t\tvar bufferedRequest = me._bufferedRequest;\n\t\tif (bufferedRequest) {\n\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\tme.render(bufferedRequest);\n\t\t} else if (changed && !me.animating) {\n\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\tme.stop();\n\n\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\tme.render({\n\t\t\t\tduration: me.options.hover.animationDuration,\n\t\t\t\tlazy: true\n\t\t\t});\n\t\t}\n\n\t\tme._bufferedRender = false;\n\t\tme._bufferedRequest = null;\n\n\t\treturn me;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event the event to handle\n\t * @return {boolean} true if the chart needs to re-render\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me.options || {};\n\t\tvar hoverOptions = options.hover;\n\t\tvar changed = false;\n\n\t\tme.lastActive = me.lastActive || [];\n\n\t\t// Find Active Elements for hover and tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme.active = [];\n\t\t} else {\n\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t}\n\n\t\t// Invoke onHover hook\n\t\t// Need to call with native event here to not break backwards compatibility\n\t\thelpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\tif (options.onClick) {\n\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t}\n\t\t}\n\n\t\t// Remove styling for last active (even if it may still be active)\n\t\tif (me.lastActive.length) {\n\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t}\n\n\t\t// Built in hover styling\n\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t}\n\n\t\tchanged = !helpers$1.arrayEquals(me.active, me.lastActive);\n\n\t\t// Remember Last Actives\n\t\tme.lastActive = me.active;\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * NOTE(SB) We actually don't use this container anymore but we need to keep it\n * for backward compatibility. Though, it can still be useful for plugins that\n * would need to work on multiple charts?!\n */\nChart.instances = {};\n\nvar core_controller = Chart;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6\n * @todo remove at version 3\n * @private\n */\nChart.Controller = Chart;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\nChart.types = {};\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.configMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.configMerge = mergeConfig;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.scaleMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.scaleMerge = mergeScaleConfig;\n\nvar core_helpers = function() {\n\n\t// -- Basic js utility methods\n\n\thelpers$1.where = function(collection, filterCallback) {\n\t\tif (helpers$1.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers$1.each(collection, function(item) {\n\t\t\tif (filterCallback(item)) {\n\t\t\t\tfiltered.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn filtered;\n\t};\n\thelpers$1.findIndex = Array.prototype.findIndex ?\n\t\tfunction(array, callback, scope) {\n\t\t\treturn array.findIndex(callback, scope);\n\t\t} :\n\t\tfunction(array, callback, scope) {\n\t\t\tscope = scope === undefined ? array : scope;\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\thelpers$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = -1;\n\t\t}\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = arrayToSearch.length;\n\t\t}\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\n\t// -- Math methods\n\thelpers$1.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers$1.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers$1.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n\t};\n\thelpers$1.max = function(array) {\n\t\treturn array.reduce(function(max, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.max(max, value);\n\t\t\t}\n\t\t\treturn max;\n\t\t}, Number.NEGATIVE_INFINITY);\n\t};\n\thelpers$1.min = function(array) {\n\t\treturn array.reduce(function(min, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.min(min, value);\n\t\t\t}\n\t\t\treturn min;\n\t\t}, Number.POSITIVE_INFINITY);\n\t};\n\thelpers$1.sign = Math.sign ?\n\t\tfunction(x) {\n\t\t\treturn Math.sign(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tx = +x; // convert to a number\n\t\t\tif (x === 0 || isNaN(x)) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn x > 0 ? 1 : -1;\n\t\t};\n\thelpers$1.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers$1.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\n\t/**\n\t * Returns the number of decimal places\n\t * i.e. the number of digits after the decimal point, of the value of this Number.\n\t * @param {number} x - A number.\n\t * @returns {number} The number of decimal places.\n\t * @private\n\t */\n\thelpers$1._decimalPlaces = function(x) {\n\t\tif (!helpers$1.isFinite(x)) {\n\t\t\treturn;\n\t\t}\n\t\tvar e = 1;\n\t\tvar p = 0;\n\t\twhile (Math.round(x * e) / e !== x) {\n\t\t\te *= 10;\n\t\t\tp++;\n\t\t}\n\t\treturn p;\n\t};\n\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers$1.getAngleFromPoint = function(centrePoint, anglePoint) {\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\tif (angle < (-0.5 * Math.PI)) {\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n\t\t}\n\n\t\treturn {\n\t\t\tangle: angle,\n\t\t\tdistance: radialDistanceFromCenter\n\t\t};\n\t};\n\thelpers$1.distanceBetweenPoints = function(pt1, pt2) {\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n\t};\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.helpers.aliasPixel\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\thelpers$1.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\n\t/**\n\t * Returns the aligned pixel value to avoid anti-aliasing blur\n\t * @param {Chart} chart - The chart instance.\n\t * @param {number} pixel - A pixel value.\n\t * @param {number} width - The width of the element.\n\t * @returns {number} The aligned pixel value.\n\t * @private\n\t */\n\thelpers$1._alignPixel = function(chart, pixel, width) {\n\t\tvar devicePixelRatio = chart.currentDevicePixelRatio;\n\t\tvar halfWidth = width / 2;\n\t\treturn Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n\t};\n\n\thelpers$1.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n\t\t// This function must also respect \"skipped\" points\n\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\n\t\tvar current = middlePoint;\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\n\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n\t\tvar s01 = d01 / (d01 + d12);\n\t\tvar s12 = d12 / (d01 + d12);\n\n\t\t// If all points are the same, s01 & s02 will be inf\n\t\ts01 = isNaN(s01) ? 0 : s01;\n\t\ts12 = isNaN(s12) ? 0 : s12;\n\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\n\t\tvar fb = t * s12;\n\n\t\treturn {\n\t\t\tprevious: {\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\n\t\t\t},\n\t\t\tnext: {\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\n\t\t\t}\n\t\t};\n\t};\n\thelpers$1.EPSILON = Number.EPSILON || 1e-14;\n\thelpers$1.splineCurveMonotone = function(points) {\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\n\t\t// between the dataset discrete points due to the interpolation.\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\n\t\t\treturn {\n\t\t\t\tmodel: point._model,\n\t\t\t\tdeltaK: 0,\n\t\t\t\tmK: 0\n\t\t\t};\n\t\t});\n\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\n\t\tvar pointsLen = pointsWithTangents.length;\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n\t\t\t}\n\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n\t\t\t\tpointCurrent.mK = 0;\n\t\t\t} else {\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust tangents to ensure monotonic properties\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tpointAfter = pointsWithTangents[i + 1];\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (helpers$1.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\t\t\tif (squaredMagnitude <= 9) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n\t\t}\n\n\t\t// Compute control points\n\t\tvar deltaX;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.nextItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\n\t\t}\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n\t};\n\thelpers$1.previousItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n\t\t}\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\n\t};\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\n\thelpers$1.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers$1.log10(range));\n\t\tvar fraction = range / Math.pow(10, exponent);\n\t\tvar niceFraction;\n\n\t\tif (round) {\n\t\t\tif (fraction < 1.5) {\n\t\t\t\tniceFraction = 1;\n\t\t\t} else if (fraction < 3) {\n\t\t\t\tniceFraction = 2;\n\t\t\t} else if (fraction < 7) {\n\t\t\t\tniceFraction = 5;\n\t\t\t} else {\n\t\t\t\tniceFraction = 10;\n\t\t\t}\n\t\t} else if (fraction <= 1.0) {\n\t\t\tniceFraction = 1;\n\t\t} else if (fraction <= 2) {\n\t\t\tniceFraction = 2;\n\t\t} else if (fraction <= 5) {\n\t\t\tniceFraction = 5;\n\t\t} else {\n\t\t\tniceFraction = 10;\n\t\t}\n\n\t\treturn niceFraction * Math.pow(10, exponent);\n\t};\n\t// Request animation polyfill - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers$1.requestAnimFrame = (function() {\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn function(callback) {\n\t\t\t\tcallback();\n\t\t\t};\n\t\t}\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t};\n\t}());\n\t// -- DOM methods\n\thelpers$1.getRelativePosition = function(evt, chart) {\n\t\tvar mouseX, mouseY;\n\t\tvar e = evt.originalEvent || evt;\n\t\tvar canvas = evt.target || evt.srcElement;\n\t\tvar boundingRect = canvas.getBoundingClientRect();\n\n\t\tvar touches = e.touches;\n\t\tif (touches && touches.length > 0) {\n\t\t\tmouseX = touches[0].clientX;\n\t\t\tmouseY = touches[0].clientY;\n\n\t\t} else {\n\t\t\tmouseX = e.clientX;\n\t\t\tmouseY = e.clientY;\n\t\t}\n\n\t\t// Scale mouse coordinates into canvas coordinates\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\n\t\t// https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers$1.getStyle(canvas, 'padding-bottom'));\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n\t\treturn {\n\t\t\tx: mouseX,\n\t\t\ty: mouseY\n\t\t};\n\n\t};\n\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\n\t\tvar valueInPixels;\n\t\tif (typeof styleValue === 'string') {\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\n\n\t\t\tif (styleValue.indexOf('%') !== -1) {\n\t\t\t\t// percentage * size in dimension\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n\t\t\t}\n\t\t} else {\n\t\t\tvalueInPixels = styleValue;\n\t\t}\n\n\t\treturn valueInPixels;\n\t}\n\n\t/**\n\t * Returns if the given value contains an effective constraint.\n\t * @private\n\t */\n\tfunction isConstrainedValue(value) {\n\t\treturn value !== undefined && value !== null && value !== 'none';\n\t}\n\n\t/**\n\t * Returns the max width or height of the given DOM node in a cross-browser compatible fashion\n\t * @param {HTMLElement} domNode - the node to check the constraint on\n\t * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height')\n\t * @param {string} percentageProperty - property of parent to use when calculating width as a percentage\n\t * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser}\n\t */\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = helpers$1._getParentNode(domNode);\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\n\t\tvar infinity = Number.POSITIVE_INFINITY;\n\n\t\tif (hasCNode || hasCContainer) {\n\t\t\treturn Math.min(\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n\t\t}\n\n\t\treturn 'none';\n\t}\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\t/**\n\t * @private\n \t */\n\thelpers$1._calculatePadding = function(container, padding, parentDimension) {\n\t\tpadding = helpers$1.getStyle(container, padding);\n\n\t\treturn padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10);\n\t};\n\t/**\n\t * @private\n\t */\n\thelpers$1._getParentNode = function(domNode) {\n\t\tvar parent = domNode.parentNode;\n\t\tif (parent && parent.toString() === '[object ShadowRoot]') {\n\t\t\tparent = parent.host;\n\t\t}\n\t\treturn parent;\n\t};\n\thelpers$1.getMaximumWidth = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientWidth;\n\t\t}\n\n\t\tvar clientWidth = container.clientWidth;\n\t\tvar paddingLeft = helpers$1._calculatePadding(container, 'padding-left', clientWidth);\n\t\tvar paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth);\n\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers$1.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers$1.getMaximumHeight = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientHeight;\n\t\t}\n\n\t\tvar clientHeight = container.clientHeight;\n\t\tvar paddingTop = helpers$1._calculatePadding(container, 'padding-top', clientHeight);\n\t\tvar paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight);\n\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers$1.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers$1.getStyle = function(el, property) {\n\t\treturn el.currentStyle ?\n\t\t\tel.currentStyle[property] :\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n\t};\n\thelpers$1.retinaScale = function(chart, forceRatio) {\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n\t\tif (pixelRatio === 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar canvas = chart.canvas;\n\t\tvar height = chart.height;\n\t\tvar width = chart.width;\n\n\t\tcanvas.height = height * pixelRatio;\n\t\tcanvas.width = width * pixelRatio;\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\n\n\t\t// If no style has been set on the canvas, the render size is used as display size,\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\n\t\tif (!canvas.style.height && !canvas.style.width) {\n\t\t\tcanvas.style.height = height + 'px';\n\t\t\tcanvas.style.width = width + 'px';\n\t\t}\n\t};\n\t// -- Canvas methods\n\thelpers$1.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers$1.longestText = function(ctx, font, arrayOfThings, cache) {\n\t\tcache = cache || {};\n\t\tvar data = cache.data = cache.data || {};\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\n\n\t\tif (cache.font !== font) {\n\t\t\tdata = cache.data = {};\n\t\t\tgc = cache.garbageCollect = [];\n\t\t\tcache.font = font;\n\t\t}\n\n\t\tctx.font = font;\n\t\tvar longest = 0;\n\t\tvar ilen = arrayOfThings.length;\n\t\tvar i, j, jlen, thing, nestedThing;\n\t\tfor (i = 0; i < ilen; i++) {\n\t\t\tthing = arrayOfThings[i];\n\n\t\t\t// Undefined strings and arrays should not be measured\n\t\t\tif (thing !== undefined && thing !== null && helpers$1.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers$1.isArray(thing)) {\n\t\t\t\t// if it is an array lets measure each element\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\n\t\t\t\tfor (j = 0, jlen = thing.length; j < jlen; j++) {\n\t\t\t\t\tnestedThing = thing[j];\n\t\t\t\t\t// Undefined strings and arrays should not be measured\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers$1.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, nestedThing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar gcLen = gc.length / 2;\n\t\tif (gcLen > arrayOfThings.length) {\n\t\t\tfor (i = 0; i < gcLen; i++) {\n\t\t\t\tdelete data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers$1.measureText = function(ctx, data, gc, longest, string) {\n\t\tvar textWidth = data[string];\n\t\tif (!textWidth) {\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\n\t\t\tgc.push(string);\n\t\t}\n\t\tif (textWidth > longest) {\n\t\t\tlongest = textWidth;\n\t\t}\n\t\treturn longest;\n\t};\n\n\t/**\n\t * @deprecated\n\t */\n\thelpers$1.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers$1.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers$1.isArray(thing)) {\n\t\t\t\tif (thing.length > numberOfLines) {\n\t\t\t\t\tnumberOfLines = thing.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn numberOfLines;\n\t};\n\n\thelpers$1.color = !chartjsColor ?\n\t\tfunction(value) {\n\t\t\tconsole.error('Color.js not found!');\n\t\t\treturn value;\n\t\t} :\n\t\tfunction(value) {\n\t\t\t/* global CanvasGradient */\n\t\t\tif (value instanceof CanvasGradient) {\n\t\t\t\tvalue = core_defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn chartjsColor(value);\n\t\t};\n\n\thelpers$1.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ?\n\t\t\tcolorValue :\n\t\t\thelpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n\nfunction abstract() {\n\tthrow new Error(\n\t\t'This method is not implemented: either no adapter can ' +\n\t\t'be found or an incomplete integration was provided.'\n\t);\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\n\n/**\n * Currently supported unit string values.\n * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')}\n * @memberof Chart._adapters._date\n * @name Unit\n */\n\n/**\n * @class\n */\nfunction DateAdapter(options) {\n\tthis.options = options || {};\n}\n\nhelpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ {\n\t/**\n\t * Returns a map of time formats for the supported formatting units defined\n\t * in Unit as well as 'datetime' representing a detailed date/time string.\n\t * @returns {{string: string}}\n\t */\n\tformats: abstract,\n\n\t/**\n\t * Parses the given `value` and return the associated timestamp.\n\t * @param {any} value - the value to parse (usually comes from the data)\n\t * @param {string} [format] - the expected data format\n\t * @returns {(number|null)}\n\t * @function\n\t */\n\tparse: abstract,\n\n\t/**\n\t * Returns the formatted date in the specified `format` for a given `timestamp`.\n\t * @param {number} timestamp - the timestamp to format\n\t * @param {string} format - the date/time token\n\t * @return {string}\n\t * @function\n\t */\n\tformat: abstract,\n\n\t/**\n\t * Adds the specified `amount` of `unit` to the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {number} amount - the amount to add\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tadd: abstract,\n\n\t/**\n\t * Returns the number of `unit` between the given timestamps.\n\t * @param {number} max - the input timestamp (reference)\n\t * @param {number} min - the timestamp to substract\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tdiff: abstract,\n\n\t/**\n\t * Returns start of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @param {number} [weekday] - the ISO day of the week with 1 being Monday\n\t * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n\t * @function\n\t */\n\tstartOf: abstract,\n\n\t/**\n\t * Returns end of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @function\n\t */\n\tendOf: abstract,\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility for scale.getValueForPixel(),\n\t * this method should be overridden only by the moment adapter.\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(value) {\n\t\treturn value;\n\t}\n});\n\nDateAdapter.override = function(members) {\n\thelpers$1.extend(DateAdapter.prototype, members);\n};\n\nvar _date = DateAdapter;\n\nvar core_adapters = {\n\t_date: _date\n};\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nvar core_ticks = {\n\t/**\n\t * Namespace to hold formatters for different types of ticks\n\t * @namespace Chart.Ticks.formatters\n\t */\n\tformatters: {\n\t\t/**\n\t\t * Formatter for value labels\n\t\t * @method Chart.Ticks.formatters.values\n\t\t * @param value the value to display\n\t\t * @return {string|string[]} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers$1.isArray(value) ? value : '' + value;\n\t\t},\n\n\t\t/**\n\t\t * Formatter for linear numeric ticks\n\t\t * @method Chart.Ticks.formatters.linear\n\t\t * @param tickValue {number} the value to be formatted\n\t\t * @param index {number} the position of the tickValue parameter in the ticks array\n\t\t * @param ticks {number[]} the list of ticks being converted\n\t\t * @return {string} string representation of the tickValue parameter\n\t\t */\n\t\tlinear: function(tickValue, index, ticks) {\n\t\t\t// If we have lots of ticks, don't use the ones\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\n\t\t\tif (Math.abs(delta) > 1) {\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\n\t\t\t\t\t// not an integer\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar logDelta = helpers$1.log10(Math.abs(delta));\n\t\t\tvar tickString = '';\n\n\t\t\tif (tickValue !== 0) {\n\t\t\t\tvar maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1]));\n\t\t\t\tif (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation\n\t\t\t\t\tvar logTick = helpers$1.log10(Math.abs(tickValue));\n\t\t\t\t\tvar numExponential = Math.floor(logTick) - Math.floor(logDelta);\n\t\t\t\t\tnumExponential = Math.max(Math.min(numExponential, 20), 0);\n\t\t\t\t\ttickString = tickValue.toExponential(numExponential);\n\t\t\t\t} else {\n\t\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\n\t\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n\t\t\t\t\ttickString = tickValue.toFixed(numDecimal);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttickString = '0'; // never show decimal places for 0\n\t\t\t}\n\n\t\t\treturn tickString;\n\t\t},\n\n\t\tlogarithmic: function(tickValue, index, ticks) {\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers$1.log10(tickValue))));\n\n\t\t\tif (tickValue === 0) {\n\t\t\t\treturn '0';\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n\t\t\t\treturn tickValue.toExponential();\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t}\n};\n\nvar isArray = helpers$1.isArray;\nvar isNullOrUndef = helpers$1.isNullOrUndef;\nvar valueOrDefault$a = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault;\n\ncore_defaults._set('scale', {\n\tdisplay: true,\n\tposition: 'left',\n\toffset: false,\n\n\t// grid line settings\n\tgridLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tdrawBorder: true,\n\t\tdrawOnChartArea: true,\n\t\tdrawTicks: true,\n\t\ttickMarkLength: 10,\n\t\tzeroLineWidth: 1,\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\n\t\tzeroLineBorderDash: [],\n\t\tzeroLineBorderDashOffset: 0.0,\n\t\toffsetGridLines: false,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\t// scale label\n\tscaleLabel: {\n\t\t// display property\n\t\tdisplay: false,\n\n\t\t// actual label\n\t\tlabelString: '',\n\n\t\t// top/bottom padding\n\t\tpadding: {\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\n\t// label settings\n\tticks: {\n\t\tbeginAtZero: false,\n\t\tminRotation: 0,\n\t\tmaxRotation: 50,\n\t\tmirror: false,\n\t\tpadding: 0,\n\t\treverse: false,\n\t\tdisplay: true,\n\t\tautoSkip: true,\n\t\tautoSkipPadding: 0,\n\t\tlabelOffset: 0,\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n\t\tcallback: core_ticks.formatters.values,\n\t\tminor: {},\n\t\tmajor: {}\n\t}\n});\n\n/** Returns a new array containing numItems from arr */\nfunction sample(arr, numItems) {\n\tvar result = [];\n\tvar increment = arr.length / numItems;\n\tvar i = 0;\n\tvar len = arr.length;\n\n\tfor (; i < len; i += increment) {\n\t\tresult.push(arr[Math.floor(i)]);\n\t}\n\treturn result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n\tvar length = scale.getTicks().length;\n\tvar validIndex = Math.min(index, length - 1);\n\tvar lineValue = scale.getPixelForTick(validIndex);\n\tvar start = scale._startPixel;\n\tvar end = scale._endPixel;\n\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\tvar offset;\n\n\tif (offsetGridLines) {\n\t\tif (length === 1) {\n\t\t\toffset = Math.max(lineValue - start, end - lineValue);\n\t\t} else if (index === 0) {\n\t\t\toffset = (scale.getPixelForTick(1) - lineValue) / 2;\n\t\t} else {\n\t\t\toffset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n\t\t}\n\t\tlineValue += validIndex < index ? offset : -offset;\n\n\t\t// Return undefined if the pixel is out of the range\n\t\tif (lineValue < start - epsilon || lineValue > end + epsilon) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n\thelpers$1.each(caches, function(cache) {\n\t\tvar gc = cache.gc;\n\t\tvar gcLen = gc.length / 2;\n\t\tvar i;\n\t\tif (gcLen > length) {\n\t\t\tfor (i = 0; i < gcLen; ++i) {\n\t\t\t\tdelete cache.data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t});\n}\n\n/**\n * Returns {width, height, offset} objects for the first, last, widest, highest tick\n * labels where offset indicates the anchor point offset from the top in pixels.\n */\nfunction computeLabelSizes(ctx, tickFonts, ticks, caches) {\n\tvar length = ticks.length;\n\tvar widths = [];\n\tvar heights = [];\n\tvar offsets = [];\n\tvar widestLabelSize = 0;\n\tvar highestLabelSize = 0;\n\tvar i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel, widest, highest;\n\n\tfor (i = 0; i < length; ++i) {\n\t\tlabel = ticks[i].label;\n\t\ttickFont = ticks[i].major ? tickFonts.major : tickFonts.minor;\n\t\tctx.font = fontString = tickFont.string;\n\t\tcache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n\t\tlineHeight = tickFont.lineHeight;\n\t\twidth = height = 0;\n\t\t// Undefined labels and arrays should not be measured\n\t\tif (!isNullOrUndef(label) && !isArray(label)) {\n\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, label);\n\t\t\theight = lineHeight;\n\t\t} else if (isArray(label)) {\n\t\t\t// if it is an array let's measure each element\n\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\tnestedLabel = label[j];\n\t\t\t\t// Undefined labels and arrays should not be measured\n\t\t\t\tif (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n\t\t\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n\t\t\t\t\theight += lineHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twidths.push(width);\n\t\theights.push(height);\n\t\toffsets.push(lineHeight / 2);\n\t\twidestLabelSize = Math.max(width, widestLabelSize);\n\t\thighestLabelSize = Math.max(height, highestLabelSize);\n\t}\n\tgarbageCollect(caches, length);\n\n\twidest = widths.indexOf(widestLabelSize);\n\thighest = heights.indexOf(highestLabelSize);\n\n\tfunction valueAt(idx) {\n\t\treturn {\n\t\t\twidth: widths[idx] || 0,\n\t\t\theight: heights[idx] || 0,\n\t\t\toffset: offsets[idx] || 0\n\t\t};\n\t}\n\n\treturn {\n\t\tfirst: valueAt(0),\n\t\tlast: valueAt(length - 1),\n\t\twidest: valueAt(widest),\n\t\thighest: valueAt(highest)\n\t};\n}\n\nfunction getTickMarkLength(options) {\n\treturn options.drawTicks ? options.tickMarkLength : 0;\n}\n\nfunction getScaleLabelHeight(options) {\n\tvar font, padding;\n\n\tif (!options.display) {\n\t\treturn 0;\n\t}\n\n\tfont = helpers$1.options._parseFont(options);\n\tpadding = helpers$1.options.toPadding(options.padding);\n\n\treturn font.lineHeight + padding.height;\n}\n\nfunction parseFontOptions(options, nestedOpts) {\n\treturn helpers$1.extend(helpers$1.options._parseFont({\n\t\tfontFamily: valueOrDefault$a(nestedOpts.fontFamily, options.fontFamily),\n\t\tfontSize: valueOrDefault$a(nestedOpts.fontSize, options.fontSize),\n\t\tfontStyle: valueOrDefault$a(nestedOpts.fontStyle, options.fontStyle),\n\t\tlineHeight: valueOrDefault$a(nestedOpts.lineHeight, options.lineHeight)\n\t}), {\n\t\tcolor: helpers$1.options.resolve([nestedOpts.fontColor, options.fontColor, core_defaults.global.defaultFontColor])\n\t});\n}\n\nfunction parseTickFontOptions(options) {\n\tvar minor = parseFontOptions(options, options.minor);\n\tvar major = options.major.enabled ? parseFontOptions(options, options.major) : minor;\n\n\treturn {minor: minor, major: major};\n}\n\nfunction nonSkipped(ticksToFilter) {\n\tvar filtered = [];\n\tvar item, index, len;\n\tfor (index = 0, len = ticksToFilter.length; index < len; ++index) {\n\t\titem = ticksToFilter[index];\n\t\tif (typeof item._index !== 'undefined') {\n\t\t\tfiltered.push(item);\n\t\t}\n\t}\n\treturn filtered;\n}\n\nfunction getEvenSpacing(arr) {\n\tvar len = arr.length;\n\tvar i, diff;\n\n\tif (len < 2) {\n\t\treturn false;\n\t}\n\n\tfor (diff = arr[0], i = 1; i < len; ++i) {\n\t\tif (arr[i] - arr[i - 1] !== diff) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn diff;\n}\n\nfunction calculateSpacing(majorIndices, ticks, axisLength, ticksLimit) {\n\tvar evenMajorSpacing = getEvenSpacing(majorIndices);\n\tvar spacing = (ticks.length - 1) / ticksLimit;\n\tvar factors, factor, i, ilen;\n\n\t// If the major ticks are evenly spaced apart, place the minor ticks\n\t// so that they divide the major ticks into even chunks\n\tif (!evenMajorSpacing) {\n\t\treturn Math.max(spacing, 1);\n\t}\n\n\tfactors = helpers$1.math._factorize(evenMajorSpacing);\n\tfor (i = 0, ilen = factors.length - 1; i < ilen; i++) {\n\t\tfactor = factors[i];\n\t\tif (factor > spacing) {\n\t\t\treturn factor;\n\t\t}\n\t}\n\treturn Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n\tvar result = [];\n\tvar i, ilen;\n\tfor (i = 0, ilen = ticks.length; i < ilen; i++) {\n\t\tif (ticks[i].major) {\n\t\t\tresult.push(i);\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction skipMajors(ticks, majorIndices, spacing) {\n\tvar count = 0;\n\tvar next = majorIndices[0];\n\tvar i, tick;\n\n\tspacing = Math.ceil(spacing);\n\tfor (i = 0; i < ticks.length; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = majorIndices[count * spacing];\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nfunction skip(ticks, spacing, majorStart, majorEnd) {\n\tvar start = valueOrDefault$a(majorStart, 0);\n\tvar end = Math.min(valueOrDefault$a(majorEnd, ticks.length), ticks.length);\n\tvar count = 0;\n\tvar length, i, tick, next;\n\n\tspacing = Math.ceil(spacing);\n\tif (majorEnd) {\n\t\tlength = majorEnd - majorStart;\n\t\tspacing = length / Math.floor(length / spacing);\n\t}\n\n\tnext = start;\n\n\twhile (next < 0) {\n\t\tcount++;\n\t\tnext = Math.round(start + count * spacing);\n\t}\n\n\tfor (i = Math.max(start, 0); i < end; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = Math.round(start + count * spacing);\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nvar Scale = core_element.extend({\n\n\tzeroLineIndex: 0,\n\n\t/**\n\t * Get the padding needed for the scale\n\t * @method getPadding\n\t * @private\n\t * @returns {Padding} the necessary padding\n\t */\n\tgetPadding: function() {\n\t\tvar me = this;\n\t\treturn {\n\t\t\tleft: me.paddingLeft || 0,\n\t\t\ttop: me.paddingTop || 0,\n\t\t\tright: me.paddingRight || 0,\n\t\t\tbottom: me.paddingBottom || 0\n\t\t};\n\t},\n\n\t/**\n\t * Returns the scale tick objects ({label, major})\n\t * @since 2.7\n\t */\n\tgetTicks: function() {\n\t\treturn this._ticks;\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getLabels: function() {\n\t\tvar data = this.chart.data;\n\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n\t},\n\n\t// These methods are ordered by lifecyle. Utilities then follow.\n\t// Any function defined here is inherited by all scale types.\n\t// Any function can be extended by the scale type\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.Scale.mergeTicksOptions\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\tmergeTicksOptions: function() {\n\t\t// noop\n\t},\n\n\tbeforeUpdate: function() {\n\t\thelpers$1.callback(this.options.beforeUpdate, [this]);\n\t},\n\n\t/**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {object} margins - the space between the edge of the other scales and edge of the chart\n\t *   This space comes from two sources:\n\t *     - padding - space that's required to show the labels at the edges of the scale\n\t *     - thickness of scales or legends in another orientation\n\t */\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar sampleSize = tickOpts.sampleSize;\n\t\tvar i, ilen, labels, ticks, samplingEnabled;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = helpers$1.extend({\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ttop: 0,\n\t\t\tbottom: 0\n\t\t}, margins);\n\n\t\tme._ticks = null;\n\t\tme.ticks = null;\n\t\tme._labelSizes = null;\n\t\tme._maxLabelLines = 0;\n\t\tme.longestLabelWidth = 0;\n\t\tme.longestTextCache = me.longestTextCache || {};\n\t\tme._gridLineItems = null;\n\t\tme._labelItems = null;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\n\t\t// Data min/max\n\t\tme.beforeDataLimits();\n\t\tme.determineDataLimits();\n\t\tme.afterDataLimits();\n\n\t\t// Ticks - `this.ticks` is now DEPRECATED!\n\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n\t\t// and must not be accessed directly from outside this class. `this.ticks` being\n\t\t// around for long time and not marked as private, we can't change its structure\n\t\t// without unexpected breaking changes. If you need to access the scale ticks,\n\t\t// use scale.getTicks() instead.\n\n\t\tme.beforeBuildTicks();\n\n\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\n\t\t// we still support no return (`this.ticks` internally set by calling this method).\n\t\tticks = me.buildTicks() || [];\n\n\t\t// Allow modification of ticks in callback.\n\t\tticks = me.afterBuildTicks(ticks) || ticks;\n\n\t\t// Ensure ticks contains ticks in new tick format\n\t\tif ((!ticks || !ticks.length) && me.ticks) {\n\t\t\tticks = [];\n\t\t\tfor (i = 0, ilen = me.ticks.length; i < ilen; ++i) {\n\t\t\t\tticks.push({\n\t\t\t\t\tvalue: me.ticks[i],\n\t\t\t\t\tmajor: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tme._ticks = ticks;\n\n\t\t// Compute tick rotation and fit using a sampled subset of labels\n\t\t// We generally don't need to compute the size of every single label for determining scale size\n\t\tsamplingEnabled = sampleSize < ticks.length;\n\t\tlabels = me._convertTicksToLabels(samplingEnabled ? sample(ticks, sampleSize) : ticks);\n\n\t\t// _configure is called twice, once here, once from core.controller.updateLayout.\n\t\t// Here we haven't been positioned yet, but dimensions are correct.\n\t\t// Variables set in _configure are needed for calculateTickRotation, and\n\t\t// it's ok that coordinates are not correct there, only dimensions matter.\n\t\tme._configure();\n\n\t\t// Tick Rotation\n\t\tme.beforeCalculateTickRotation();\n\t\tme.calculateTickRotation();\n\t\tme.afterCalculateTickRotation();\n\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\n\t\t// Auto-skip\n\t\tme._ticksToDraw = tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto') ? me._autoSkip(ticks) : ticks;\n\n\t\tif (samplingEnabled) {\n\t\t\t// Generate labels using all non-skipped ticks\n\t\t\tlabels = me._convertTicksToLabels(me._ticksToDraw);\n\t\t}\n\n\t\tme.ticks = labels;   // BACKWARD COMPATIBILITY\n\n\t\t// IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n\t\tme.afterUpdate();\n\n\t\t// TODO(v3): remove minSize as a public property and return value from all layout boxes. It is unused\n\t\t// make maxWidth and maxHeight private\n\t\treturn me.minSize;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar reversePixels = me.options.ticks.reverse;\n\t\tvar startPixel, endPixel;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tstartPixel = me.left;\n\t\t\tendPixel = me.right;\n\t\t} else {\n\t\t\tstartPixel = me.top;\n\t\t\tendPixel = me.bottom;\n\t\t\t// by default vertical scales are from bottom to top, so pixels are reversed\n\t\t\treversePixels = !reversePixels;\n\t\t}\n\t\tme._startPixel = startPixel;\n\t\tme._endPixel = endPixel;\n\t\tme._reversePixels = reversePixels;\n\t\tme._length = endPixel - startPixel;\n\t},\n\n\tafterUpdate: function() {\n\t\thelpers$1.callback(this.options.afterUpdate, [this]);\n\t},\n\n\t//\n\n\tbeforeSetDimensions: function() {\n\t\thelpers$1.callback(this.options.beforeSetDimensions, [this]);\n\t},\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\t},\n\tafterSetDimensions: function() {\n\t\thelpers$1.callback(this.options.afterSetDimensions, [this]);\n\t},\n\n\t// Data limits\n\tbeforeDataLimits: function() {\n\t\thelpers$1.callback(this.options.beforeDataLimits, [this]);\n\t},\n\tdetermineDataLimits: helpers$1.noop,\n\tafterDataLimits: function() {\n\t\thelpers$1.callback(this.options.afterDataLimits, [this]);\n\t},\n\n\t//\n\tbeforeBuildTicks: function() {\n\t\thelpers$1.callback(this.options.beforeBuildTicks, [this]);\n\t},\n\tbuildTicks: helpers$1.noop,\n\tafterBuildTicks: function(ticks) {\n\t\tvar me = this;\n\t\t// ticks is empty for old axis implementations here\n\t\tif (isArray(ticks) && ticks.length) {\n\t\t\treturn helpers$1.callback(me.options.afterBuildTicks, [me, ticks]);\n\t\t}\n\t\t// Support old implementations (that modified `this.ticks` directly in buildTicks)\n\t\tme.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks;\n\t\treturn ticks;\n\t},\n\n\tbeforeTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.beforeTickToLabelConversion, [this]);\n\t},\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\t// Convert ticks to strings\n\t\tvar tickOpts = me.options.ticks;\n\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n\t},\n\tafterTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.afterTickToLabelConversion, [this]);\n\t},\n\n\t//\n\n\tbeforeCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.beforeCalculateTickRotation, [this]);\n\t},\n\tcalculateTickRotation: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar numTicks = me.getTicks().length;\n\t\tvar minRotation = tickOpts.minRotation || 0;\n\t\tvar maxRotation = tickOpts.maxRotation;\n\t\tvar labelRotation = minRotation;\n\t\tvar labelSizes, maxLabelWidth, maxLabelHeight, maxWidth, tickWidth, maxHeight, maxLabelDiagonal;\n\n\t\tif (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n\t\t\tme.labelRotation = minRotation;\n\t\t\treturn;\n\t\t}\n\n\t\tlabelSizes = me._getLabelSizes();\n\t\tmaxLabelWidth = labelSizes.widest.width;\n\t\tmaxLabelHeight = labelSizes.highest.height - labelSizes.highest.offset;\n\n\t\t// Estimate the width of each grid based on the canvas width, the maximum\n\t\t// label width and the number of tick intervals\n\t\tmaxWidth = Math.min(me.maxWidth, me.chart.width - maxLabelWidth);\n\t\ttickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n\t\t// Allow 3 pixels x2 padding either side for label readability\n\t\tif (maxLabelWidth + 6 > tickWidth) {\n\t\t\ttickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n\t\t\tmaxHeight = me.maxHeight - getTickMarkLength(options.gridLines)\n\t\t\t\t- tickOpts.padding - getScaleLabelHeight(options.scaleLabel);\n\t\t\tmaxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n\t\t\tlabelRotation = helpers$1.toDegrees(Math.min(\n\t\t\t\tMath.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)),\n\t\t\t\tMath.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)\n\t\t\t));\n\t\t\tlabelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n\t\t}\n\n\t\tme.labelRotation = labelRotation;\n\t},\n\tafterCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.afterCalculateTickRotation, [this]);\n\t},\n\n\t//\n\n\tbeforeFit: function() {\n\t\thelpers$1.callback(this.options.beforeFit, [this]);\n\t},\n\tfit: function() {\n\t\tvar me = this;\n\t\t// Reset\n\t\tvar minSize = me.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\n\t\tvar chart = me.chart;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\t\tvar scaleLabelOpts = opts.scaleLabel;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar display = me._isVisible();\n\t\tvar isBottom = opts.position === 'bottom';\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t// Width\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth;\n\t\t} else if (display) {\n\t\t\tminSize.width = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// height\n\t\tif (!isHorizontal) {\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t} else if (display) {\n\t\t\tminSize.height = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// Don't bother fitting the ticks if we are not showing the labels\n\t\tif (tickOpts.display && display) {\n\t\t\tvar tickFonts = parseTickFontOptions(tickOpts);\n\t\t\tvar labelSizes = me._getLabelSizes();\n\t\t\tvar firstLabelSize = labelSizes.first;\n\t\t\tvar lastLabelSize = labelSizes.last;\n\t\t\tvar widestLabelSize = labelSizes.widest;\n\t\t\tvar highestLabelSize = labelSizes.highest;\n\t\t\tvar lineSpace = tickFonts.minor.lineHeight * 0.4;\n\t\t\tvar tickPadding = tickOpts.padding;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// A horizontal axis is more constrained by the height.\n\t\t\t\tvar isRotated = me.labelRotation !== 0;\n\t\t\t\tvar angleRadians = helpers$1.toRadians(me.labelRotation);\n\t\t\t\tvar cosRotation = Math.cos(angleRadians);\n\t\t\t\tvar sinRotation = Math.sin(angleRadians);\n\n\t\t\t\tvar labelHeight = sinRotation * widestLabelSize.width\n\t\t\t\t\t+ cosRotation * (highestLabelSize.height - (isRotated ? highestLabelSize.offset : 0))\n\t\t\t\t\t+ (isRotated ? 0 : lineSpace); // padding\n\n\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n\t\t\t\tvar offsetLeft = me.getPixelForTick(0) - me.left;\n\t\t\t\tvar offsetRight = me.right - me.getPixelForTick(me.getTicks().length - 1);\n\t\t\t\tvar paddingLeft, paddingRight;\n\n\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n\t\t\t\t// which means that the right padding is dominated by the font height\n\t\t\t\tif (isRotated) {\n\t\t\t\t\tpaddingLeft = isBottom ?\n\t\t\t\t\t\tcosRotation * firstLabelSize.width + sinRotation * firstLabelSize.offset :\n\t\t\t\t\t\tsinRotation * (firstLabelSize.height - firstLabelSize.offset);\n\t\t\t\t\tpaddingRight = isBottom ?\n\t\t\t\t\t\tsinRotation * (lastLabelSize.height - lastLabelSize.offset) :\n\t\t\t\t\t\tcosRotation * lastLabelSize.width + sinRotation * lastLabelSize.offset;\n\t\t\t\t} else {\n\t\t\t\t\tpaddingLeft = firstLabelSize.width / 2;\n\t\t\t\t\tpaddingRight = lastLabelSize.width / 2;\n\t\t\t\t}\n\n\t\t\t\t// Adjust padding taking into account changes in offsets\n\t\t\t\t// and add 3 px to move away from canvas edges\n\t\t\t\tme.paddingLeft = Math.max((paddingLeft - offsetLeft) * me.width / (me.width - offsetLeft), 0) + 3;\n\t\t\t\tme.paddingRight = Math.max((paddingRight - offsetRight) * me.width / (me.width - offsetRight), 0) + 3;\n\t\t\t} else {\n\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\n\t\t\t\t// dominant factor here, so get that length first and account for padding\n\t\t\t\tvar labelWidth = tickOpts.mirror ? 0 :\n\t\t\t\t\t// use lineSpace for consistency with horizontal axis\n\t\t\t\t\t// tickPadding is not implemented for horizontal\n\t\t\t\t\twidestLabelSize.width + tickPadding + lineSpace;\n\n\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + labelWidth);\n\n\t\t\t\tme.paddingTop = firstLabelSize.height / 2;\n\t\t\t\tme.paddingBottom = lastLabelSize.height / 2;\n\t\t\t}\n\t\t}\n\n\t\tme.handleMargins();\n\n\t\tif (isHorizontal) {\n\t\t\tme.width = me._length = chart.width - me.margins.left - me.margins.right;\n\t\t\tme.height = minSize.height;\n\t\t} else {\n\t\t\tme.width = minSize.width;\n\t\t\tme.height = me._length = chart.height - me.margins.top - me.margins.bottom;\n\t\t}\n\t},\n\n\t/**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n\thandleMargins: function() {\n\t\tvar me = this;\n\t\tif (me.margins) {\n\t\t\tme.margins.left = Math.max(me.paddingLeft, me.margins.left);\n\t\t\tme.margins.top = Math.max(me.paddingTop, me.margins.top);\n\t\t\tme.margins.right = Math.max(me.paddingRight, me.margins.right);\n\t\t\tme.margins.bottom = Math.max(me.paddingBottom, me.margins.bottom);\n\t\t}\n\t},\n\n\tafterFit: function() {\n\t\thelpers$1.callback(this.options.afterFit, [this]);\n\t},\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\tisFullWidth: function() {\n\t\treturn this.options.fullWidth;\n\t},\n\n\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n\tgetRightValue: function(rawValue) {\n\t\t// Null and undefined values first\n\t\tif (isNullOrUndef(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n\t\tif ((typeof rawValue === 'number' || rawValue instanceof Number) && !isFinite(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// If it is in fact an object, dive in one more level\n\t\tif (rawValue) {\n\t\t\tif (this.isHorizontal()) {\n\t\t\t\tif (rawValue.x !== undefined) {\n\t\t\t\t\treturn this.getRightValue(rawValue.x);\n\t\t\t\t}\n\t\t\t} else if (rawValue.y !== undefined) {\n\t\t\t\treturn this.getRightValue(rawValue.y);\n\t\t\t}\n\t\t}\n\n\t\t// Value is good, return it\n\t\treturn rawValue;\n\t},\n\n\t_convertTicksToLabels: function(ticks) {\n\t\tvar me = this;\n\t\tvar labels, i, ilen;\n\n\t\tme.ticks = ticks.map(function(tick) {\n\t\t\treturn tick.value;\n\t\t});\n\n\t\tme.beforeTickToLabelConversion();\n\n\t\t// New implementations should return the formatted tick labels but for BACKWARD\n\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\n\t\t// this method and supposed to contain only string values).\n\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\n\n\t\tme.afterTickToLabelConversion();\n\n\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tticks[i].label = labels[i];\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSizes: function() {\n\t\tvar me = this;\n\t\tvar labelSizes = me._labelSizes;\n\n\t\tif (!labelSizes) {\n\t\t\tme._labelSizes = labelSizes = computeLabelSizes(me.ctx, parseTickFontOptions(me.options.ticks), me.getTicks(), me.longestTextCache);\n\t\t\tme.longestLabelWidth = labelSizes.widest.width;\n\t\t}\n\n\t\treturn labelSizes;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_parseValue: function(value) {\n\t\tvar start, end, min, max;\n\n\t\tif (isArray(value)) {\n\t\t\tstart = +this.getRightValue(value[0]);\n\t\t\tend = +this.getRightValue(value[1]);\n\t\t\tmin = Math.min(start, end);\n\t\t\tmax = Math.max(start, end);\n\t\t} else {\n\t\t\tvalue = +this.getRightValue(value);\n\t\t\tstart = undefined;\n\t\t\tend = value;\n\t\t\tmin = value;\n\t\t\tmax = value;\n\t\t}\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tmax: max,\n\t\t\tstart: start,\n\t\t\tend: end\n\t\t};\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getScaleLabel: function(rawValue) {\n\t\tvar v = this._parseValue(rawValue);\n\t\tif (v.start !== undefined) {\n\t\t\treturn '[' + v.start + ', ' + v.end + ']';\n\t\t}\n\n\t\treturn +this.getRightValue(rawValue);\n\t},\n\n\t/**\n\t * Used to get the value to display in the tooltip for the data at the given index\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetLabelForIndex: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param value\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetPixelForValue: helpers$1.noop,\n\n\t/**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param pixel\n\t */\n\tgetValueForPixel: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForTick: function(index) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar numTicks = me._ticks.length;\n\t\tvar tickWidth = 1 / Math.max(numTicks - (offset ? 0 : 1), 1);\n\n\t\treturn index < 0 || index > numTicks - 1\n\t\t\t? null\n\t\t\t: me.getPixelForDecimal(index * tickWidth + (offset ? tickWidth / 2 : 0));\n\t},\n\n\t/**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForDecimal: function(decimal) {\n\t\tvar me = this;\n\n\t\tif (me._reversePixels) {\n\t\t\tdecimal = 1 - decimal;\n\t\t}\n\n\t\treturn me._startPixel + decimal * me._length;\n\t},\n\n\tgetDecimalForPixel: function(pixel) {\n\t\tvar decimal = (pixel - this._startPixel) / this._length;\n\t\treturn this._reversePixels ? 1 - decimal : decimal;\n\t},\n\n\t/**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetBasePixel: function() {\n\t\treturn this.getPixelForValue(this.getBaseValue());\n\t},\n\n\tgetBaseValue: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0;\n\t},\n\n\t/**\n\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\n\t * @private\n\t */\n\t_autoSkip: function(ticks) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar axisLength = me._length;\n\t\tvar ticksLimit = tickOpts.maxTicksLimit || axisLength / me._tickSize() + 1;\n\t\tvar majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n\t\tvar numMajorIndices = majorIndices.length;\n\t\tvar first = majorIndices[0];\n\t\tvar last = majorIndices[numMajorIndices - 1];\n\t\tvar i, ilen, spacing, avgMajorSpacing;\n\n\t\t// If there are too many major ticks to display them all\n\t\tif (numMajorIndices > ticksLimit) {\n\t\t\tskipMajors(ticks, majorIndices, numMajorIndices / ticksLimit);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\n\t\tspacing = calculateSpacing(majorIndices, ticks, axisLength, ticksLimit);\n\n\t\tif (numMajorIndices > 0) {\n\t\t\tfor (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n\t\t\t\tskip(ticks, spacing, majorIndices[i], majorIndices[i + 1]);\n\t\t\t}\n\t\t\tavgMajorSpacing = numMajorIndices > 1 ? (last - first) / (numMajorIndices - 1) : null;\n\t\t\tskip(ticks, spacing, helpers$1.isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\t\t\tskip(ticks, spacing, last, helpers$1.isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\t\tskip(ticks, spacing);\n\t\treturn nonSkipped(ticks);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_tickSize: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\t// Calculate space needed by label in axis direction.\n\t\tvar rot = helpers$1.toRadians(me.labelRotation);\n\t\tvar cos = Math.abs(Math.cos(rot));\n\t\tvar sin = Math.abs(Math.sin(rot));\n\n\t\tvar labelSizes = me._getLabelSizes();\n\t\tvar padding = optionTicks.autoSkipPadding || 0;\n\t\tvar w = labelSizes ? labelSizes.widest.width + padding : 0;\n\t\tvar h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n\t\t// Calculate space needed for 1 tick in axis direction.\n\t\treturn me.isHorizontal()\n\t\t\t? h * cos > w * sin ? w / cos : h / sin\n\t\t\t: h * sin < w * cos ? h / cos : w / sin;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_isVisible: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar display = me.options.display;\n\t\tvar i, ilen, meta;\n\n\t\tif (display !== 'auto') {\n\t\t\treturn !!display;\n\t\t}\n\n\t\t// When 'auto', the scale is visible if at least one associated dataset is visible.\n\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.xAxisID === me.id || meta.yAxisID === me.id) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeGridLineItems: function(chartArea) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar options = me.options;\n\t\tvar gridLines = options.gridLines;\n\t\tvar position = options.position;\n\t\tvar offsetGridLines = gridLines.offsetGridLines;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar ticksLength = ticks.length + (offsetGridLines ? 1 : 0);\n\n\t\tvar tl = getTickMarkLength(gridLines);\n\t\tvar items = [];\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar axisHalfWidth = axisWidth / 2;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar alignBorderValue = function(pixel) {\n\t\t\treturn alignPixel(chart, pixel, axisWidth);\n\t\t};\n\t\tvar borderValue, i, tick, lineValue, alignedLineValue;\n\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, lineWidth, lineColor, borderDash, borderDashOffset;\n\n\t\tif (position === 'top') {\n\t\t\tborderValue = alignBorderValue(me.bottom);\n\t\t\tty1 = me.bottom - tl;\n\t\t\tty2 = borderValue - axisHalfWidth;\n\t\t\ty1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n\t\t\ty2 = chartArea.bottom;\n\t\t} else if (position === 'bottom') {\n\t\t\tborderValue = alignBorderValue(me.top);\n\t\t\ty1 = chartArea.top;\n\t\t\ty2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n\t\t\tty1 = borderValue + axisHalfWidth;\n\t\t\tty2 = me.top + tl;\n\t\t} else if (position === 'left') {\n\t\t\tborderValue = alignBorderValue(me.right);\n\t\t\ttx1 = me.right - tl;\n\t\t\ttx2 = borderValue - axisHalfWidth;\n\t\t\tx1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n\t\t\tx2 = chartArea.right;\n\t\t} else {\n\t\t\tborderValue = alignBorderValue(me.left);\n\t\t\tx1 = chartArea.left;\n\t\t\tx2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n\t\t\ttx1 = borderValue + axisHalfWidth;\n\t\t\ttx2 = me.left + tl;\n\t\t}\n\n\t\tfor (i = 0; i < ticksLength; ++i) {\n\t\t\ttick = ticks[i] || {};\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(tick.label) && i < ticks.length) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (i === me.zeroLineIndex && options.offset === offsetGridLines) {\n\t\t\t\t// Draw the first index specially\n\t\t\t\tlineWidth = gridLines.zeroLineWidth;\n\t\t\t\tlineColor = gridLines.zeroLineColor;\n\t\t\t\tborderDash = gridLines.zeroLineBorderDash || [];\n\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset || 0.0;\n\t\t\t} else {\n\t\t\t\tlineWidth = valueAtIndexOrDefault(gridLines.lineWidth, i, 1);\n\t\t\t\tlineColor = valueAtIndexOrDefault(gridLines.color, i, 'rgba(0,0,0,0.1)');\n\t\t\t\tborderDash = gridLines.borderDash || [];\n\t\t\t\tborderDashOffset = gridLines.borderDashOffset || 0.0;\n\t\t\t}\n\n\t\t\tlineValue = getPixelForGridLine(me, tick._index || i, offsetGridLines);\n\n\t\t\t// Skip if the pixel is out of the range\n\t\t\tif (lineValue === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talignedLineValue = alignPixel(chart, lineValue, lineWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\ttx1 = tx2 = x1 = x2 = alignedLineValue;\n\t\t\t} else {\n\t\t\t\tty1 = ty2 = y1 = y2 = alignedLineValue;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\ttx1: tx1,\n\t\t\t\tty1: ty1,\n\t\t\t\ttx2: tx2,\n\t\t\t\tty2: ty2,\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2,\n\t\t\t\twidth: lineWidth,\n\t\t\t\tcolor: lineColor,\n\t\t\t\tborderDash: borderDash,\n\t\t\t\tborderDashOffset: borderDashOffset,\n\t\t\t});\n\t\t}\n\n\t\titems.ticksLength = ticksLength;\n\t\titems.borderValue = borderValue;\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeLabelItems: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar optionTicks = options.ticks;\n\t\tvar position = options.position;\n\t\tvar isMirrored = optionTicks.mirror;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar fonts = parseTickFontOptions(optionTicks);\n\t\tvar tickPadding = optionTicks.padding;\n\t\tvar tl = getTickMarkLength(options.gridLines);\n\t\tvar rotation = -helpers$1.toRadians(me.labelRotation);\n\t\tvar items = [];\n\t\tvar i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n\n\t\tif (position === 'top') {\n\t\t\ty = me.bottom - tl - tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'left';\n\t\t} else if (position === 'bottom') {\n\t\t\ty = me.top + tl + tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'right';\n\t\t} else if (position === 'left') {\n\t\t\tx = me.right - (isMirrored ? 0 : tl) - tickPadding;\n\t\t\ttextAlign = isMirrored ? 'left' : 'right';\n\t\t} else {\n\t\t\tx = me.left + (isMirrored ? 0 : tl) + tickPadding;\n\t\t\ttextAlign = isMirrored ? 'right' : 'left';\n\t\t}\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\ttick = ticks[i];\n\t\t\tlabel = tick.label;\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(label)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpixel = me.getPixelForTick(tick._index || i) + optionTicks.labelOffset;\n\t\t\tfont = tick.major ? fonts.major : fonts.minor;\n\t\t\tlineHeight = font.lineHeight;\n\t\t\tlineCount = isArray(label) ? label.length : 1;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tx = pixel;\n\t\t\t\ttextOffset = position === 'top'\n\t\t\t\t\t? ((!rotation ? 0.5 : 1) - lineCount) * lineHeight\n\t\t\t\t\t: (!rotation ? 0.5 : 0) * lineHeight;\n\t\t\t} else {\n\t\t\t\ty = pixel;\n\t\t\t\ttextOffset = (1 - lineCount) * lineHeight / 2;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\trotation: rotation,\n\t\t\t\tlabel: label,\n\t\t\t\tfont: font,\n\t\t\t\ttextOffset: textOffset,\n\t\t\t\ttextAlign: textAlign\n\t\t\t});\n\t\t}\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function(chartArea) {\n\t\tvar me = this;\n\t\tvar gridLines = me.options.gridLines;\n\n\t\tif (!gridLines.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar chart = me.chart;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));\n\t\tvar width, color, i, ilen, item;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\twidth = item.width;\n\t\t\tcolor = item.color;\n\n\t\t\tif (width && color) {\n\t\t\t\tctx.save();\n\t\t\t\tctx.lineWidth = width;\n\t\t\t\tctx.strokeStyle = color;\n\t\t\t\tif (ctx.setLineDash) {\n\t\t\t\t\tctx.setLineDash(item.borderDash);\n\t\t\t\t\tctx.lineDashOffset = item.borderDashOffset;\n\t\t\t\t}\n\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tif (gridLines.drawTicks) {\n\t\t\t\t\tctx.moveTo(item.tx1, item.ty1);\n\t\t\t\t\tctx.lineTo(item.tx2, item.ty2);\n\t\t\t\t}\n\n\t\t\t\tif (gridLines.drawOnChartArea) {\n\t\t\t\t\tctx.moveTo(item.x1, item.y1);\n\t\t\t\t\tctx.lineTo(item.x2, item.y2);\n\t\t\t\t}\n\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\n\t\tif (axisWidth) {\n\t\t\t// Draw the line at the edge of the axis\n\t\t\tvar firstLineWidth = axisWidth;\n\t\t\tvar lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, items.ticksLength - 1, 1);\n\t\t\tvar borderValue = items.borderValue;\n\t\t\tvar x1, x2, y1, y2;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tx1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\tx2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\ty1 = y2 = borderValue;\n\t\t\t} else {\n\t\t\t\ty1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\ty2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\tx1 = x2 = borderValue;\n\t\t\t}\n\n\t\t\tctx.lineWidth = axisWidth;\n\t\t\tctx.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0);\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1);\n\t\t\tctx.lineTo(x2, y2);\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\tif (!optionTicks.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar items = me._labelItems || (me._labelItems = me._computeLabelItems());\n\t\tvar i, j, ilen, jlen, item, tickFont, label, y;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\ttickFont = item.font;\n\n\t\t\t// Make sure we draw text in the correct color and font\n\t\t\tctx.save();\n\t\t\tctx.translate(item.x, item.y);\n\t\t\tctx.rotate(item.rotation);\n\t\t\tctx.font = tickFont.string;\n\t\t\tctx.fillStyle = tickFont.color;\n\t\t\tctx.textBaseline = 'middle';\n\t\t\tctx.textAlign = item.textAlign;\n\n\t\t\tlabel = item.label;\n\t\t\ty = item.textOffset;\n\t\t\tif (isArray(label)) {\n\t\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\t\t// We just make sure the multiline element is a string here..\n\t\t\t\t\tctx.fillText('' + label[j], 0, y);\n\t\t\t\t\ty += tickFont.lineHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tctx.fillText(label, 0, y);\n\t\t\t}\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar options = me.options;\n\t\tvar scaleLabel = options.scaleLabel;\n\n\t\tif (!scaleLabel.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar scaleLabelFontColor = valueOrDefault$a(scaleLabel.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar scaleLabelFont = helpers$1.options._parseFont(scaleLabel);\n\t\tvar scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding);\n\t\tvar halfLineHeight = scaleLabelFont.lineHeight / 2;\n\t\tvar position = options.position;\n\t\tvar rotation = 0;\n\t\tvar scaleLabelX, scaleLabelY;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tscaleLabelX = me.left + me.width / 2; // midpoint of the width\n\t\t\tscaleLabelY = position === 'bottom'\n\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\n\t\t} else {\n\t\t\tvar isLeft = position === 'left';\n\t\t\tscaleLabelX = isLeft\n\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\n\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\n\t\t\tscaleLabelY = me.top + me.height / 2;\n\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(scaleLabelX, scaleLabelY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\t\tctx.fillStyle = scaleLabelFontColor; // render in correct colour\n\t\tctx.font = scaleLabelFont.string;\n\t\tctx.fillText(scaleLabel.labelString, 0, 0);\n\t\tctx.restore();\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar me = this;\n\n\t\tif (!me._isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._drawGrid(chartArea);\n\t\tme._drawTitle();\n\t\tme._drawLabels();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_layers: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tz = opts.ticks && opts.ticks.z || 0;\n\t\tvar gz = opts.gridLines && opts.gridLines.z || 0;\n\n\t\tif (!me._isVisible() || tz === gz || me.draw !== me._draw) {\n\t\t\t// backward compatibility: draw has been overridden by custom scale\n\t\t\treturn [{\n\t\t\t\tz: tz,\n\t\t\t\tdraw: function() {\n\t\t\t\t\tme.draw.apply(me, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t}\n\n\t\treturn [{\n\t\t\tz: gz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawGrid.apply(me, arguments);\n\t\t\t\tme._drawTitle.apply(me, arguments);\n\t\t\t}\n\t\t}, {\n\t\t\tz: tz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawLabels.apply(me, arguments);\n\t\t\t}\n\t\t}];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getMatchingVisibleMetas: function(type) {\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\treturn me.chart._getSortedVisibleDatasetMetas()\n\t\t\t.filter(function(meta) {\n\t\t\t\treturn (!type || meta.type === type)\n\t\t\t\t\t&& (isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id);\n\t\t\t});\n\t}\n});\n\nScale.prototype._draw = Scale.prototype.draw;\n\nvar core_scale = Scale;\n\nvar isNullOrUndef$1 = helpers$1.isNullOrUndef;\n\nvar defaultConfig = {\n\tposition: 'bottom'\n};\n\nvar scale_category = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar min = ticksOpts.min;\n\t\tvar max = ticksOpts.max;\n\t\tvar minIndex = 0;\n\t\tvar maxIndex = labels.length - 1;\n\t\tvar findIndex;\n\n\t\tif (min !== undefined) {\n\t\t\t// user specified min value\n\t\t\tfindIndex = labels.indexOf(min);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tminIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tif (max !== undefined) {\n\t\t\t// user specified max value\n\t\t\tfindIndex = labels.indexOf(max);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tmaxIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tme.minIndex = minIndex;\n\t\tme.maxIndex = maxIndex;\n\t\tme.min = labels[minIndex];\n\t\tme.max = labels[maxIndex];\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar minIndex = me.minIndex;\n\t\tvar maxIndex = me.maxIndex;\n\n\t\t// If we are viewing some subset of labels, slice the original array\n\t\tme.ticks = (minIndex === 0 && maxIndex === labels.length - 1) ? labels : labels.slice(minIndex, maxIndex + 1);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\n\t\tif (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) {\n\t\t\treturn me.getRightValue(chart.data.datasets[datasetIndex].data[index]);\n\t\t}\n\n\t\treturn me._getLabels()[index];\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar ticks = me.ticks;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (!me.isHorizontal()) {\n\t\t\t// For backward compatibility, vertical category scale reverse is inverted.\n\t\t\tme._reversePixels = !me._reversePixels;\n\t\t}\n\n\t\tif (!ticks) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._startValue = me.minIndex - (offset ? 0.5 : 0);\n\t\tme._valueRange = Math.max(ticks.length - (offset ? 0 : 1), 1);\n\t},\n\n\t// Used to get data value locations.  Value can either be an index or a numerical value\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar valueCategory, labels, idx;\n\n\t\tif (!isNullOrUndef$1(index) && !isNullOrUndef$1(datasetIndex)) {\n\t\t\tvalue = me.chart.data.datasets[datasetIndex].data[index];\n\t\t}\n\n\t\t// If value is a data object, then index is the index in the data array,\n\t\t// not the index of the scale. We need to change that.\n\t\tif (!isNullOrUndef$1(value)) {\n\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t}\n\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\tlabels = me._getLabels();\n\t\t\tvalue = helpers$1.valueOrDefault(valueCategory, value);\n\t\t\tidx = labels.indexOf(value);\n\t\t\tindex = idx !== -1 ? idx : index;\n\t\t\tif (isNaN(index)) {\n\t\t\t\tindex = value;\n\t\t\t}\n\t\t}\n\t\treturn me.getPixelForDecimal((index - me._startValue) / me._valueRange);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticks;\n\t\treturn index < 0 || index > ticks.length - 1\n\t\t\t? null\n\t\t\t: this.getPixelForValue(ticks[index], index + this.minIndex);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar value = Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._valueRange);\n\t\treturn Math.min(Math.max(value, 0), me.ticks.length - 1);\n\t},\n\n\tgetBasePixel: function() {\n\t\treturn this.bottom;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults = defaultConfig;\nscale_category._defaults = _defaults;\n\nvar noop = helpers$1.noop;\nvar isNullOrUndef$2 = helpers$1.isNullOrUndef;\n\n/**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\n\t// \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar MIN_SPACING = 1e-14;\n\tvar stepSize = generationOptions.stepSize;\n\tvar unit = stepSize || 1;\n\tvar maxNumSpaces = generationOptions.maxTicks - 1;\n\tvar min = generationOptions.min;\n\tvar max = generationOptions.max;\n\tvar precision = generationOptions.precision;\n\tvar rmin = dataRange.min;\n\tvar rmax = dataRange.max;\n\tvar spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit;\n\tvar factor, niceMin, niceMax, numSpaces;\n\n\t// Beyond MIN_SPACING floating point numbers being to lose precision\n\t// such that we can't do the math necessary to generate ticks\n\tif (spacing < MIN_SPACING && isNullOrUndef$2(min) && isNullOrUndef$2(max)) {\n\t\treturn [rmin, rmax];\n\t}\n\n\tnumSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\tif (numSpaces > maxNumSpaces) {\n\t\t// If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n\t\tspacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit;\n\t}\n\n\tif (stepSize || isNullOrUndef$2(precision)) {\n\t\t// If a precision is not specified, calculate factor based on spacing\n\t\tfactor = Math.pow(10, helpers$1._decimalPlaces(spacing));\n\t} else {\n\t\t// If the user specified a precision, round to that number of decimal places\n\t\tfactor = Math.pow(10, precision);\n\t\tspacing = Math.ceil(spacing * factor) / factor;\n\t}\n\n\tniceMin = Math.floor(rmin / spacing) * spacing;\n\tniceMax = Math.ceil(rmax / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (!isNullOrUndef$2(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) {\n\t\t\tniceMin = min;\n\t\t}\n\t\tif (!isNullOrUndef$2(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) {\n\t\t\tniceMax = max;\n\t\t}\n\t}\n\n\tnumSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers$1.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n\t\tnumSpaces = Math.round(numSpaces);\n\t} else {\n\t\tnumSpaces = Math.ceil(numSpaces);\n\t}\n\n\tniceMin = Math.round(niceMin * factor) / factor;\n\tniceMax = Math.round(niceMax * factor) / factor;\n\tticks.push(isNullOrUndef$2(min) ? niceMin : min);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * factor) / factor);\n\t}\n\tticks.push(isNullOrUndef$2(max) ? niceMax : max);\n\n\treturn ticks;\n}\n\nvar scale_linearbase = core_scale.extend({\n\tgetRightValue: function(value) {\n\t\tif (typeof value === 'string') {\n\t\t\treturn +value;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, value);\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t// axis, they can manually override it\n\t\tif (tickOpts.beginAtZero) {\n\t\t\tvar minSign = helpers$1.sign(me.min);\n\t\t\tvar maxSign = helpers$1.sign(me.max);\n\n\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t// move the top up to 0\n\t\t\t\tme.max = 0;\n\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t// move the bottom down to 0\n\t\t\t\tme.min = 0;\n\t\t\t}\n\t\t}\n\n\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\tif (tickOpts.min !== undefined) {\n\t\t\tme.min = tickOpts.min;\n\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t} else {\n\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t}\n\t\t}\n\n\t\tif (tickOpts.max !== undefined) {\n\t\t\tme.max = tickOpts.max;\n\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t} else {\n\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t}\n\t\t}\n\n\t\tif (setMin !== setMax) {\n\t\t\t// We set the min or the max but not both.\n\t\t\t// So ensure that our range is good\n\t\t\t// Inverted or 0 length range can happen when\n\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\tif (me.min >= me.max) {\n\t\t\t\tif (setMin) {\n\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (me.min === me.max) {\n\t\t\tme.max++;\n\n\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\tme.min--;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar stepSize = tickOpts.stepSize;\n\t\tvar maxTicksLimit = tickOpts.maxTicksLimit;\n\t\tvar maxTicks;\n\n\t\tif (stepSize) {\n\t\t\tmaxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n\t\t} else {\n\t\t\tmaxTicks = me._computeTickLimit();\n\t\t\tmaxTicksLimit = maxTicksLimit || 11;\n\t\t}\n\n\t\tif (maxTicksLimit) {\n\t\t\tmaxTicks = Math.min(maxTicksLimit, maxTicks);\n\t\t}\n\n\t\treturn maxTicks;\n\t},\n\n\t_computeTickLimit: function() {\n\t\treturn Number.POSITIVE_INFINITY;\n\t},\n\n\thandleDirectionalChanges: noop,\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t// the graph. Make sure we always have at least 2 ticks\n\t\tvar maxTicks = me.getTickLimit();\n\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\tvar numericGeneratorOptions = {\n\t\t\tmaxTicks: maxTicks,\n\t\t\tmin: tickOpts.min,\n\t\t\tmax: tickOpts.max,\n\t\t\tprecision: tickOpts.precision,\n\t\t\tstepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\tme.handleDirectionalChanges();\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(me);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar ticks = me.getTicks();\n\t\tvar start = me.min;\n\t\tvar end = me.max;\n\t\tvar offset;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (me.options.offset && ticks.length) {\n\t\t\toffset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n\t\t\tstart -= offset;\n\t\t\tend += offset;\n\t\t}\n\t\tme._startValue = start;\n\t\tme._endValue = end;\n\t\tme._valueRange = end - start;\n\t}\n});\n\nvar defaultConfig$1 = {\n\tposition: 'left',\n\tticks: {\n\t\tcallback: core_ticks.formatters.linear\n\t}\n};\n\nvar DEFAULT_MIN = 0;\nvar DEFAULT_MAX = 1;\n\nfunction getOrCreateStack(stacks, stacked, meta) {\n\tvar key = [\n\t\tmeta.type,\n\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\tstacked === undefined && meta.stack === undefined ? meta.index : '',\n\t\tmeta.stack\n\t].join('.');\n\n\tif (stacks[key] === undefined) {\n\t\tstacks[key] = {\n\t\t\tpos: [],\n\t\t\tneg: []\n\t\t};\n\t}\n\n\treturn stacks[key];\n}\n\nfunction stackData(scale, stacks, meta, data) {\n\tvar opts = scale.options;\n\tvar stacked = opts.stacked;\n\tvar stack = getOrCreateStack(stacks, stacked, meta);\n\tvar pos = stack.pos;\n\tvar neg = stack.neg;\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tpos[i] = pos[i] || 0;\n\t\tneg[i] = neg[i] || 0;\n\n\t\tif (opts.relativePoints) {\n\t\t\tpos[i] = 100;\n\t\t} else if (value.min < 0 || value.max < 0) {\n\t\t\tneg[i] += value.min;\n\t\t} else {\n\t\t\tpos[i] += value.max;\n\t\t}\n\t}\n}\n\nfunction updateMinMax(scale, meta, data) {\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tscale.min = Math.min(scale.min, value.min);\n\t\tscale.max = Math.max(scale.max, value.max);\n\t}\n}\n\nvar scale_linear = scale_linearbase.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = me._getMatchingVisibleMetas();\n\t\tvar hasStacks = opts.stacked;\n\t\tvar stacks = {};\n\t\tvar ilen = metasets.length;\n\t\tvar i, meta, data, values;\n\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (i = 0; !hasStacks && i < ilen; ++i) {\n\t\t\t\tmeta = metasets[i];\n\t\t\t\thasStacks = meta.stack !== undefined;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\tdata = datasets[meta.index].data;\n\t\t\tif (hasStacks) {\n\t\t\t\tstackData(me, stacks, meta, data);\n\t\t\t} else {\n\t\t\t\tupdateMinMax(me, meta, data);\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.each(stacks, function(stackValues) {\n\t\t\tvalues = stackValues.pos.concat(stackValues.neg);\n\t\t\tme.min = Math.min(me.min, helpers$1.min(values));\n\t\t\tme.max = Math.max(me.max, helpers$1.max(values));\n\t\t});\n\n\t\tme.min = helpers$1.isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\tme.max = helpers$1.isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickFont;\n\n\t\tif (me.isHorizontal()) {\n\t\t\treturn Math.ceil(me.width / 40);\n\t\t}\n\t\ttickFont = helpers$1.options._parseFont(me.options.ticks);\n\t\treturn Math.ceil(me.height / tickFont.lineHeight);\n\t},\n\n\t// Called after the ticks are built. We need\n\thandleDirectionalChanges: function() {\n\t\tif (!this.isHorizontal()) {\n\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\tthis.ticks.reverse();\n\t\t}\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\t// Utils\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\treturn me.getPixelForDecimal((+me.getRightValue(value) - me._startValue) / me._valueRange);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\treturn this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticksAsNumbers;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$1 = defaultConfig$1;\nscale_linear._defaults = _defaults$1;\n\nvar valueOrDefault$b = helpers$1.valueOrDefault;\nvar log10 = helpers$1.math.log10;\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks$1(generationOptions, dataRange) {\n\tvar ticks = [];\n\n\tvar tickVal = valueOrDefault$b(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n\n\tvar endExp = Math.floor(log10(dataRange.max));\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n\tvar exp, significand;\n\n\tif (tickVal === 0) {\n\t\texp = Math.floor(log10(dataRange.minNotZero));\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n\t\tticks.push(tickVal);\n\t\ttickVal = significand * Math.pow(10, exp);\n\t} else {\n\t\texp = Math.floor(log10(tickVal));\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\n\t}\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n\tdo {\n\t\tticks.push(tickVal);\n\n\t\t++significand;\n\t\tif (significand === 10) {\n\t\t\tsignificand = 1;\n\t\t\t++exp;\n\t\t\tprecision = exp >= 0 ? 1 : precision;\n\t\t}\n\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n\tvar lastTick = valueOrDefault$b(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\nvar defaultConfig$2 = {\n\tposition: 'left',\n\n\t// label settings\n\tticks: {\n\t\tcallback: core_ticks.formatters.logarithmic\n\t}\n};\n\n// TODO(v3): change this to positiveOrDefault\nfunction nonNegativeOrDefault(value, defaultValue) {\n\treturn helpers$1.isFinite(value) && value >= 0 ? value : defaultValue;\n}\n\nvar scale_logarithmic = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tfunction IDMatches(meta) {\n\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t}\n\t\tvar datasetIndex, meta, value, data, i, ilen;\n\n\t\t// Calculate Range\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\t\tme.minNotZero = Number.POSITIVE_INFINITY;\n\n\t\tvar hasStacks = opts.stacked;\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\thasStacks = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (opts.stacked || hasStacks) {\n\t\t\tvar valuesPerStack = {};\n\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tvar key = [\n\t\t\t\t\tmeta.type,\n\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\tmeta.stack\n\t\t\t\t].join('.');\n\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalues[i] = values[i] || 0;\n\t\t\t\t\t\tvalues[i] += value.max;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thelpers$1.each(valuesPerStack, function(valuesForType) {\n\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\tvar minVal = helpers$1.min(valuesForType);\n\t\t\t\t\tvar maxVal = helpers$1.max(valuesForType);\n\t\t\t\t\tme.min = Math.min(me.min, minVal);\n\t\t\t\t\tme.max = Math.max(me.max, maxVal);\n\t\t\t\t}\n\t\t\t});\n\n\t\t} else {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tme.min = Math.min(value.min, me.min);\n\t\t\t\t\t\tme.max = Math.max(value.max, me.max);\n\n\t\t\t\t\t\tif (value.min !== 0) {\n\t\t\t\t\t\t\tme.minNotZero = Math.min(value.min, me.minNotZero);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tme.min = helpers$1.isFinite(me.min) ? me.min : null;\n\t\tme.max = helpers$1.isFinite(me.max) ? me.max : null;\n\t\tme.minNotZero = helpers$1.isFinite(me.minNotZero) ? me.minNotZero : null;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\tthis.handleTickRangeOptions();\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar DEFAULT_MIN = 1;\n\t\tvar DEFAULT_MAX = 10;\n\n\t\tme.min = nonNegativeOrDefault(tickOpts.min, me.min);\n\t\tme.max = nonNegativeOrDefault(tickOpts.max, me.max);\n\n\t\tif (me.min === me.max) {\n\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(log10(me.min)) - 1);\n\t\t\t\tme.max = Math.pow(10, Math.floor(log10(me.max)) + 1);\n\t\t\t} else {\n\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t}\n\t\t}\n\t\tif (me.min === null) {\n\t\t\tme.min = Math.pow(10, Math.floor(log10(me.max)) - 1);\n\t\t}\n\t\tif (me.max === null) {\n\t\t\tme.max = me.min !== 0\n\t\t\t\t? Math.pow(10, Math.floor(log10(me.min)) + 1)\n\t\t\t\t: DEFAULT_MAX;\n\t\t}\n\t\tif (me.minNotZero === null) {\n\t\t\tif (me.min > 0) {\n\t\t\t\tme.minNotZero = me.min;\n\t\t\t} else if (me.max < 1) {\n\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(log10(me.max)));\n\t\t\t} else {\n\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t}\n\t\t}\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = !me.isHorizontal();\n\n\t\tvar generationOptions = {\n\t\t\tmin: nonNegativeOrDefault(tickOpts.min),\n\t\t\tmax: nonNegativeOrDefault(tickOpts.max)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks$1(generationOptions, me);\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\treverse = !reverse;\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t\tif (reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tthis.tickValues = this.ticks.slice();\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(this);\n\t},\n\n\t// Get the correct tooltip label\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.tickValues;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t},\n\n\t/**\n\t * Returns the value of the first tick.\n\t * @param {number} value - The minimum not zero value.\n\t * @return {number} The first tick value.\n\t * @private\n\t */\n\t_getFirstTickValue: function(value) {\n\t\tvar exp = Math.floor(log10(value));\n\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\treturn significand * Math.pow(10, exp);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar start = me.min;\n\t\tvar offset = 0;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (start === 0) {\n\t\t\tstart = me._getFirstTickValue(me.minNotZero);\n\t\t\toffset = valueOrDefault$b(me.options.ticks.fontSize, core_defaults.global.defaultFontSize) / me._length;\n\t\t}\n\n\t\tme._startValue = log10(start);\n\t\tme._valueOffset = offset;\n\t\tme._valueRange = (log10(me.max) - log10(start)) / (1 - offset);\n\t},\n\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\tvar decimal = 0;\n\n\t\tvalue = +me.getRightValue(value);\n\n\t\tif (value > me.min && value > 0) {\n\t\t\tdecimal = (log10(value) - me._startValue) / me._valueRange + me._valueOffset;\n\t\t}\n\t\treturn me.getPixelForDecimal(decimal);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar decimal = me.getDecimalForPixel(pixel);\n\t\treturn decimal === 0 && me.min === 0\n\t\t\t? 0\n\t\t\t: Math.pow(10, me._startValue + (decimal - me._valueOffset) * me._valueRange);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$2 = defaultConfig$2;\nscale_logarithmic._defaults = _defaults$2;\n\nvar valueOrDefault$c = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault;\nvar resolve$4 = helpers$1.options.resolve;\n\nvar defaultConfig$3 = {\n\tdisplay: true,\n\n\t// Boolean - Whether to animate scaling the chart from the centre\n\tanimate: true,\n\tposition: 'chartArea',\n\n\tangleLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\tgridLines: {\n\t\tcircular: false\n\t},\n\n\t// label settings\n\tticks: {\n\t\t// Boolean - Show a backdrop to the scale label\n\t\tshowLabelBackdrop: true,\n\n\t\t// String - The colour of the label backdrop\n\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t// Number - The backdrop padding above & below the label in pixels\n\t\tbackdropPaddingY: 2,\n\n\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\tbackdropPaddingX: 2,\n\n\t\tcallback: core_ticks.formatters.linear\n\t},\n\n\tpointLabels: {\n\t\t// Boolean - if true, show point labels\n\t\tdisplay: true,\n\n\t\t// Number - Point label font size in pixels\n\t\tfontSize: 10,\n\n\t\t// Function - Used to convert point labels\n\t\tcallback: function(label) {\n\t\t\treturn label;\n\t\t}\n\t}\n};\n\nfunction getTickBackdropHeight(opts) {\n\tvar tickOpts = opts.ticks;\n\n\tif (tickOpts.display && opts.display) {\n\t\treturn valueOrDefault$c(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2;\n\t}\n\treturn 0;\n}\n\nfunction measureLabelSize(ctx, lineHeight, label) {\n\tif (helpers$1.isArray(label)) {\n\t\treturn {\n\t\t\tw: helpers$1.longestText(ctx, ctx.font, label),\n\t\t\th: label.length * lineHeight\n\t\t};\n\t}\n\n\treturn {\n\t\tw: ctx.measureText(label).width,\n\t\th: lineHeight\n\t};\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n\tif (angle === min || angle === max) {\n\t\treturn {\n\t\t\tstart: pos - (size / 2),\n\t\t\tend: pos + (size / 2)\n\t\t};\n\t} else if (angle < min || angle > max) {\n\t\treturn {\n\t\t\tstart: pos - size,\n\t\t\tend: pos\n\t\t};\n\t}\n\n\treturn {\n\t\tstart: pos,\n\t\tend: pos + size\n\t};\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n\t// Right, this is really confusing and there is a lot of maths going on here\n\t// The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t//\n\t// Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t//\n\t// Solution:\n\t//\n\t// We assume the radius of the polygon is half the size of the canvas at first\n\t// at each index we check if the text overlaps.\n\t//\n\t// Where it does, we store that angle and that index.\n\t//\n\t// After finding the largest index and angle we calculate how much we need to remove\n\t// from the shape radius to move the point inwards by that x.\n\t//\n\t// We average the left and right distances to get the maximum shape radius that can fit in the box\n\t// along with labels.\n\t//\n\t// Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t// on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t//\n\t// This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t// and position it in the most space efficient manner\n\t//\n\t// https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n\tvar plFont = helpers$1.options._parseFont(scale.options.pointLabels);\n\n\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\tvar furthestLimits = {\n\t\tl: 0,\n\t\tr: scale.width,\n\t\tt: 0,\n\t\tb: scale.height - scale.paddingTop\n\t};\n\tvar furthestAngles = {};\n\tvar i, textSize, pointPosition;\n\n\tscale.ctx.font = plFont.string;\n\tscale._pointLabelSizes = [];\n\n\tvar valueCount = scale.chart.data.labels.length;\n\tfor (i = 0; i < valueCount; i++) {\n\t\tpointPosition = scale.getPointPosition(i, scale.drawingArea + 5);\n\t\ttextSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i]);\n\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians) % 360;\n\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\tfurthestAngles.l = angleRadians;\n\t\t}\n\n\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\tfurthestAngles.r = angleRadians;\n\t\t}\n\n\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\tfurthestAngles.t = angleRadians;\n\t\t}\n\n\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\tfurthestAngles.b = angleRadians;\n\t\t}\n\t}\n\n\tscale.setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n}\n\nfunction getTextAlignForAngle(angle) {\n\tif (angle === 0 || angle === 180) {\n\t\treturn 'center';\n\t} else if (angle < 180) {\n\t\treturn 'left';\n\t}\n\n\treturn 'right';\n}\n\nfunction fillText(ctx, text, position, lineHeight) {\n\tvar y = position.y + lineHeight / 2;\n\tvar i, ilen;\n\n\tif (helpers$1.isArray(text)) {\n\t\tfor (i = 0, ilen = text.length; i < ilen; ++i) {\n\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\ty += lineHeight;\n\t\t}\n\t} else {\n\t\tctx.fillText(text, position.x, y);\n\t}\n}\n\nfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\tif (angle === 90 || angle === 270) {\n\t\tposition.y -= (textSize.h / 2);\n\t} else if (angle > 270 || angle < 90) {\n\t\tposition.y -= textSize.h;\n\t}\n}\n\nfunction drawPointLabels(scale) {\n\tvar ctx = scale.ctx;\n\tvar opts = scale.options;\n\tvar pointLabelOpts = opts.pointLabels;\n\tvar tickBackdropHeight = getTickBackdropHeight(opts);\n\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\tvar plFont = helpers$1.options._parseFont(pointLabelOpts);\n\n\tctx.save();\n\n\tctx.font = plFont.string;\n\tctx.textBaseline = 'middle';\n\n\tfor (var i = scale.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t// Extra pixels out for some label spacing\n\t\tvar extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5);\n\n\t\t// Keep this in loop since we may support array properties here\n\t\tvar pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor);\n\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians);\n\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\tfillText(ctx, scale.pointLabels[i], pointLabelPosition, plFont.lineHeight);\n\t}\n\tctx.restore();\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\tvar ctx = scale.ctx;\n\tvar circular = gridLineOpts.circular;\n\tvar valueCount = scale.chart.data.labels.length;\n\tvar lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1);\n\tvar lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1);\n\tvar pointPosition;\n\n\tif ((!circular && !valueCount) || !lineColor || !lineWidth) {\n\t\treturn;\n\t}\n\n\tctx.save();\n\tctx.strokeStyle = lineColor;\n\tctx.lineWidth = lineWidth;\n\tif (ctx.setLineDash) {\n\t\tctx.setLineDash(gridLineOpts.borderDash || []);\n\t\tctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0;\n\t}\n\n\tctx.beginPath();\n\tif (circular) {\n\t\t// Draw circular arcs between the points\n\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t} else {\n\t\t// Draw straight lines connecting each index\n\t\tpointPosition = scale.getPointPosition(0, radius);\n\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t}\n\t}\n\tctx.closePath();\n\tctx.stroke();\n\tctx.restore();\n}\n\nfunction numberOrZero(param) {\n\treturn helpers$1.isNumber(param) ? param : 0;\n}\n\nvar scale_radialLinear = scale_linearbase.extend({\n\tsetDimensions: function() {\n\t\tvar me = this;\n\n\t\t// Set the unconstrained dimension before label rotation\n\t\tme.width = me.maxWidth;\n\t\tme.height = me.maxHeight;\n\t\tme.paddingTop = getTickBackdropHeight(me.options) / 2;\n\t\tme.xCenter = Math.floor(me.width / 2);\n\t\tme.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n\t\tme.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar min = Number.POSITIVE_INFINITY;\n\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\thelpers$1.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\treturn Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\n\t\tscale_linearbase.prototype.convertTicksToLabels.call(me);\n\n\t\t// Point labels\n\t\tme.pointLabels = me.chart.data.labels.map(function() {\n\t\t\tvar label = helpers$1.callback(me.options.pointLabels.callback, arguments, me);\n\t\t\treturn label || label === 0 ? label : '';\n\t\t});\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\n\t\tif (opts.display && opts.pointLabels.display) {\n\t\t\tfitWithPointLabels(me);\n\t\t} else {\n\t\t\tme.setCenterPoint(0, 0, 0, 0);\n\t\t}\n\t},\n\n\t/**\n\t * Set radius reductions and determine new radius and center point\n\t * @private\n\t */\n\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\tvar me = this;\n\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n\n\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\tme.drawingArea = Math.min(\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t},\n\n\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\tvar me = this;\n\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\tvar maxTop = topMovement + me.drawingArea;\n\t\tvar maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea;\n\n\t\tme.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left);\n\t\tme.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop);\n\t},\n\n\tgetIndexAngle: function(index) {\n\t\tvar chart = this.chart;\n\t\tvar angleMultiplier = 360 / chart.data.labels.length;\n\t\tvar options = chart.options || {};\n\t\tvar startAngle = options.startAngle || 0;\n\n\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\tvar angle = (index * angleMultiplier + startAngle) % 360;\n\n\t\treturn (angle < 0 ? angle + 360 : angle) * Math.PI * 2 / 360;\n\t},\n\n\tgetDistanceFromCenterForValue: function(value) {\n\t\tvar me = this;\n\n\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// Take into account half font size + the yPadding of the top value\n\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\tif (me.options.ticks.reverse) {\n\t\t\treturn (me.max - value) * scalingFactor;\n\t\t}\n\t\treturn (value - me.min) * scalingFactor;\n\t},\n\n\tgetPointPosition: function(index, distanceFromCenter) {\n\t\tvar me = this;\n\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\treturn {\n\t\t\tx: Math.cos(thisAngle) * distanceFromCenter + me.xCenter,\n\t\t\ty: Math.sin(thisAngle) * distanceFromCenter + me.yCenter\n\t\t};\n\t},\n\n\tgetPointPositionForValue: function(index, value) {\n\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t},\n\n\tgetBasePosition: function(index) {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.getPointPositionForValue(index || 0,\n\t\t\tme.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar angleLineOpts = opts.angleLines;\n\t\tvar lineWidth = valueOrDefault$c(angleLineOpts.lineWidth, gridLineOpts.lineWidth);\n\t\tvar lineColor = valueOrDefault$c(angleLineOpts.color, gridLineOpts.color);\n\t\tvar i, offset, position;\n\n\t\tif (opts.pointLabels.display) {\n\t\t\tdrawPointLabels(me);\n\t\t}\n\n\t\tif (gridLineOpts.display) {\n\t\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\t\tif (index !== 0) {\n\t\t\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, offset, index);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (angleLineOpts.display && lineWidth && lineColor) {\n\t\t\tctx.save();\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = lineColor;\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\tctx.setLineDash(resolve$4([angleLineOpts.borderDash, gridLineOpts.borderDash, []]));\n\t\t\t\tctx.lineDashOffset = resolve$4([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]);\n\t\t\t}\n\n\t\t\tfor (i = me.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t\t\toffset = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n\t\t\t\tposition = me.getPointPosition(i, offset);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(me.xCenter, me.yCenter);\n\t\t\t\tctx.lineTo(position.x, position.y);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\tif (!tickOpts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAngle = me.getIndexAngle(0);\n\t\tvar tickFont = helpers$1.options._parseFont(tickOpts);\n\t\tvar tickFontColor = valueOrDefault$c(tickOpts.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar offset, width;\n\n\t\tctx.save();\n\t\tctx.font = tickFont.string;\n\t\tctx.translate(me.xCenter, me.yCenter);\n\t\tctx.rotate(startAngle);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\tif (index === 0 && !tickOpts.reverse) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\twidth = ctx.measureText(label).width;\n\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\n\t\t\t\tctx.fillRect(\n\t\t\t\t\t-width / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t-offset - tickFont.size / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\twidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\ttickFont.size + tickOpts.backdropPaddingY * 2\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tctx.fillStyle = tickFontColor;\n\t\t\tctx.fillText(label, 0, -offset);\n\t\t});\n\n\t\tctx.restore();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: helpers$1.noop\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$3 = defaultConfig$3;\nscale_radialLinear._defaults = _defaults$3;\n\nvar deprecated$1 = helpers$1._deprecated;\nvar resolve$5 = helpers$1.options.resolve;\nvar valueOrDefault$d = helpers$1.valueOrDefault;\n\n// Integer constants are from the ES6 spec.\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nvar INTERVALS = {\n\tmillisecond: {\n\t\tcommon: true,\n\t\tsize: 1,\n\t\tsteps: 1000\n\t},\n\tsecond: {\n\t\tcommon: true,\n\t\tsize: 1000,\n\t\tsteps: 60\n\t},\n\tminute: {\n\t\tcommon: true,\n\t\tsize: 60000,\n\t\tsteps: 60\n\t},\n\thour: {\n\t\tcommon: true,\n\t\tsize: 3600000,\n\t\tsteps: 24\n\t},\n\tday: {\n\t\tcommon: true,\n\t\tsize: 86400000,\n\t\tsteps: 30\n\t},\n\tweek: {\n\t\tcommon: false,\n\t\tsize: 604800000,\n\t\tsteps: 4\n\t},\n\tmonth: {\n\t\tcommon: true,\n\t\tsize: 2.628e9,\n\t\tsteps: 12\n\t},\n\tquarter: {\n\t\tcommon: false,\n\t\tsize: 7.884e9,\n\t\tsteps: 4\n\t},\n\tyear: {\n\t\tcommon: true,\n\t\tsize: 3.154e10\n\t}\n};\n\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n\treturn a - b;\n}\n\nfunction arrayUnique(items) {\n\tvar hash = {};\n\tvar out = [];\n\tvar i, ilen, item;\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\titem = items[i];\n\t\tif (!hash[item]) {\n\t\t\thash[item] = true;\n\t\t\tout.push(item);\n\t\t}\n\t}\n\n\treturn out;\n}\n\nfunction getMin(options) {\n\treturn helpers$1.valueOrDefault(options.time.min, options.ticks.min);\n}\n\nfunction getMax(options) {\n\treturn helpers$1.valueOrDefault(options.time.max, options.ticks.max);\n}\n\n/**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {string} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\nfunction buildLookupTable(timestamps, min, max, distribution) {\n\tif (distribution === 'linear' || !timestamps.length) {\n\t\treturn [\n\t\t\t{time: min, pos: 0},\n\t\t\t{time: max, pos: 1}\n\t\t];\n\t}\n\n\tvar table = [];\n\tvar items = [min];\n\tvar i, ilen, prev, curr, next;\n\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\tcurr = timestamps[i];\n\t\tif (curr > min && curr < max) {\n\t\t\titems.push(curr);\n\t\t}\n\t}\n\n\titems.push(max);\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\tnext = items[i + 1];\n\t\tprev = items[i - 1];\n\t\tcurr = items[i];\n\n\t\t// only add points that breaks the scale linearity\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\n\t\t}\n\t}\n\n\treturn table;\n}\n\n// @see adapted from https://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\nfunction lookup(table, key, value) {\n\tvar lo = 0;\n\tvar hi = table.length - 1;\n\tvar mid, i0, i1;\n\n\twhile (lo >= 0 && lo <= hi) {\n\t\tmid = (lo + hi) >> 1;\n\t\ti0 = table[mid - 1] || null;\n\t\ti1 = table[mid];\n\n\t\tif (!i0) {\n\t\t\t// given value is outside table (before first item)\n\t\t\treturn {lo: null, hi: i1};\n\t\t} else if (i1[key] < value) {\n\t\t\tlo = mid + 1;\n\t\t} else if (i0[key] > value) {\n\t\t\thi = mid - 1;\n\t\t} else {\n\t\t\treturn {lo: i0, hi: i1};\n\t\t}\n\t}\n\n\t// given value is outside table (after last item)\n\treturn {lo: i1, hi: null};\n}\n\n/**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\nfunction interpolate$1(table, skey, sval, tkey) {\n\tvar range = lookup(table, skey, sval);\n\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n\tvar span = next[skey] - prev[skey];\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\n\n\treturn prev[tkey] + offset;\n}\n\nfunction toTimestamp(scale, input) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options.time;\n\tvar parser = options.parser;\n\tvar format = parser || options.format;\n\tvar value = input;\n\n\tif (typeof parser === 'function') {\n\t\tvalue = parser(value);\n\t}\n\n\t// Only parse if its not a timestamp already\n\tif (!helpers$1.isFinite(value)) {\n\t\tvalue = typeof format === 'string'\n\t\t\t? adapter.parse(value, format)\n\t\t\t: adapter.parse(value);\n\t}\n\n\tif (value !== null) {\n\t\treturn +value;\n\t}\n\n\t// Labels are in an incompatible format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option for parsing.\n\tif (!parser && typeof format === 'function') {\n\t\tvalue = format(input);\n\n\t\t// `format` could return something else than a timestamp, if so, parse it\n\t\tif (!helpers$1.isFinite(value)) {\n\t\t\tvalue = adapter.parse(value);\n\t\t}\n\t}\n\n\treturn value;\n}\n\nfunction parse(scale, input) {\n\tif (helpers$1.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = toTimestamp(scale, scale.getRightValue(input));\n\tif (value === null) {\n\t\treturn value;\n\t}\n\n\tif (options.round) {\n\t\tvalue = +scale._adapter.startOf(value, options.round);\n\t}\n\n\treturn value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n\tvar ilen = UNITS.length;\n\tvar i, interval, factor;\n\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n\t\tinterval = INTERVALS[UNITS[i]];\n\t\tfactor = interval.steps ? interval.steps : MAX_INTEGER;\n\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n\n\treturn UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n\tvar i, unit;\n\n\tfor (i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n\t\tunit = UNITS[i];\n\t\tif (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n\t\t\treturn unit;\n\t\t}\n\t}\n\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n\t\tif (INTERVALS[UNITS[i]].common) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n}\n\n/**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\nfunction generate(scale, min, max, capacity) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options;\n\tvar timeOpts = options.time;\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n\tvar stepSize = resolve$5([timeOpts.stepSize, timeOpts.unitStepSize, 1]);\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n\tvar first = min;\n\tvar ticks = [];\n\tvar time;\n\n\t// For 'week' unit, handle the first day of week option\n\tif (weekday) {\n\t\tfirst = +adapter.startOf(first, 'isoWeek', weekday);\n\t}\n\n\t// Align first ticks on unit\n\tfirst = +adapter.startOf(first, weekday ? 'day' : minor);\n\n\t// Prevent browser from freezing in case user options request millions of milliseconds\n\tif (adapter.diff(max, min, minor) > 100000 * stepSize) {\n\t\tthrow min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor;\n\t}\n\n\tfor (time = first; time < max; time = +adapter.add(time, stepSize, minor)) {\n\t\tticks.push(time);\n\t}\n\n\tif (time === max || options.bounds === 'ticks') {\n\t\tticks.push(time);\n\t}\n\n\treturn ticks;\n}\n\n/**\n * Returns the start and end offsets from edges in the form of {start, end}\n * where each value is a relative width to the scale and ranges between 0 and 1.\n * They add extra margins on the both sides by scaling down the original scale.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar start = 0;\n\tvar end = 0;\n\tvar first, last;\n\n\tif (options.offset && ticks.length) {\n\t\tfirst = interpolate$1(table, 'time', ticks[0], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tstart = 1 - first;\n\t\t} else {\n\t\t\tstart = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2;\n\t\t}\n\t\tlast = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tend = last;\n\t\t} else {\n\t\t\tend = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;\n\t\t}\n\t}\n\n\treturn {start: start, end: end, factor: 1 / (start + 1 + end)};\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n\tvar adapter = scale._adapter;\n\tvar first = +adapter.startOf(ticks[0].value, majorUnit);\n\tvar last = ticks[ticks.length - 1].value;\n\tvar major, index;\n\n\tfor (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n\t\tindex = map[major];\n\t\tif (index >= 0) {\n\t\t\tticks[index].major = true;\n\t\t}\n\t}\n\treturn ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n\tvar ticks = [];\n\tvar map = {};\n\tvar ilen = values.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = values[i];\n\t\tmap[value] = i;\n\n\t\tticks.push({\n\t\t\tvalue: value,\n\t\t\tmajor: false\n\t\t});\n\t}\n\n\t// We set the major ticks separately from the above loop because calling startOf for every tick\n\t// is expensive when there is a large number of ticks\n\treturn (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar defaultConfig$4 = {\n\tposition: 'bottom',\n\n\t/**\n\t * Data distribution along the scale:\n\t * - 'linear': data are spread according to their time (distances can vary),\n\t * - 'series': data are spread at the same distance from each other.\n\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t * @since 2.7.0\n\t */\n\tdistribution: 'linear',\n\n\t/**\n\t * Scale boundary strategy (bypassed by min/max time options)\n\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t * @since 2.7.0\n\t */\n\tbounds: 'data',\n\n\tadapters: {},\n\ttime: {\n\t\tparser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\tround: false, // none, or override with week, month, year, etc.\n\t\tdisplayFormat: false, // DEPRECATED\n\t\tisoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/\n\t\tminUnit: 'millisecond',\n\t\tdisplayFormats: {}\n\t},\n\tticks: {\n\t\tautoSkip: false,\n\n\t\t/**\n\t\t * Ticks generation input values:\n\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tsource: 'auto',\n\n\t\tmajor: {\n\t\t\tenabled: false\n\t\t}\n\t}\n};\n\nvar scale_time = core_scale.extend({\n\tinitialize: function() {\n\t\tthis.mergeTicksOptions();\n\t\tcore_scale.prototype.initialize.call(this);\n\t},\n\n\tupdate: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar time = options.time || (options.time = {});\n\t\tvar adapter = me._adapter = new core_adapters._date(options.adapters.date);\n\n\t\t// DEPRECATIONS: output a message only one time per update\n\t\tdeprecated$1('time scale', time.format, 'time.format', 'time.parser');\n\t\tdeprecated$1('time scale', time.min, 'time.min', 'ticks.min');\n\t\tdeprecated$1('time scale', time.max, 'time.max', 'ticks.max');\n\n\t\t// Backward compatibility: before introducing adapter, `displayFormats` was\n\t\t// supposed to contain *all* unit/string pairs but this can't be resolved\n\t\t// when loading the scale (adapters are loaded afterward), so let's populate\n\t\t// missing formats on update\n\t\thelpers$1.mergeIf(time.displayFormats, adapter.formats());\n\n\t\treturn core_scale.prototype.update.apply(me, arguments);\n\t},\n\n\t/**\n\t * Allows data to be referenced via 't' attribute\n\t */\n\tgetRightValue: function(rawValue) {\n\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\trawValue = rawValue.t;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, rawValue);\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar unit = options.time.unit || 'day';\n\t\tvar min = MAX_INTEGER;\n\t\tvar max = MIN_INTEGER;\n\t\tvar timestamps = [];\n\t\tvar datasets = [];\n\t\tvar labels = [];\n\t\tvar i, j, ilen, jlen, data, timestamp, labelsAdded;\n\t\tvar dataLabels = me._getLabels();\n\n\t\tfor (i = 0, ilen = dataLabels.length; i < ilen; ++i) {\n\t\t\tlabels.push(parse(me, dataLabels[i]));\n\t\t}\n\n\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\tif (helpers$1.isObject(data[0])) {\n\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\ttimestamp = parse(me, data[j]);\n\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t\tif (!labelsAdded) {\n\t\t\t\t\t\ttimestamps = timestamps.concat(labels);\n\t\t\t\t\t\tlabelsAdded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdatasets[i] = [];\n\t\t\t}\n\t\t}\n\n\t\tif (labels.length) {\n\t\t\tmin = Math.min(min, labels[0]);\n\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t}\n\n\t\tif (timestamps.length) {\n\t\t\ttimestamps = ilen > 1 ? arrayUnique(timestamps).sort(sorter) : timestamps.sort(sorter);\n\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t}\n\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\tmin = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min;\n\t\tmax = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max;\n\n\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\tme.min = Math.min(min, max);\n\t\tme.max = Math.max(min + 1, max);\n\n\t\t// PRIVATE\n\t\tme._table = [];\n\t\tme._timestamps = {\n\t\t\tdata: timestamps,\n\t\t\tdatasets: datasets,\n\t\t\tlabels: labels\n\t\t};\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar timeOpts = options.time;\n\t\tvar timestamps = me._timestamps;\n\t\tvar ticks = [];\n\t\tvar capacity = me.getLabelCapacity(min);\n\t\tvar source = tickOpts.source;\n\t\tvar distribution = options.distribution;\n\t\tvar i, ilen, timestamp;\n\n\t\tif (source === 'data' || (source === 'auto' && distribution === 'series')) {\n\t\t\ttimestamps = timestamps.data;\n\t\t} else if (source === 'labels') {\n\t\t\ttimestamps = timestamps.labels;\n\t\t} else {\n\t\t\ttimestamps = generate(me, min, max, capacity);\n\t\t}\n\n\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\tmin = timestamps[0];\n\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t}\n\n\t\t// Enforce limits with user min/max options\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// Remove ticks outside the min/max range\n\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\ttimestamp = timestamps[i];\n\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\tticks.push(timestamp);\n\t\t\t}\n\t\t}\n\n\t\tme.min = min;\n\t\tme.max = max;\n\n\t\t// PRIVATE\n\t\t// determineUnitForFormatting relies on the number of ticks so we don't use it when\n\t\t// autoSkip is enabled because we don't yet know what the final number of ticks will be\n\t\tme._unit = timeOpts.unit || (tickOpts.autoSkip\n\t\t\t? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, capacity)\n\t\t\t: determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n\t\tme._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined\n\t\t\t: determineMajorUnit(me._unit);\n\t\tme._table = buildLookupTable(me._timestamps.data, min, max, distribution);\n\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\n\t\treturn ticksFromTimestamps(me, ticks, me._majorUnit);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar data = me.chart.data;\n\t\tvar timeOpts = me.options.time;\n\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\tif (helpers$1.isObject(value)) {\n\t\t\tlabel = me.getRightValue(value);\n\t\t}\n\t\tif (timeOpts.tooltipFormat) {\n\t\t\treturn adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat);\n\t\t}\n\t\tif (typeof label === 'string') {\n\t\t\treturn label;\n\t\t}\n\t\treturn adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime);\n\t},\n\n\t/**\n\t * Function to format an individual tick mark\n\t * @private\n\t */\n\ttickFormatFunction: function(time, index, ticks, format) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar formats = options.time.displayFormats;\n\t\tvar minorFormat = formats[me._unit];\n\t\tvar majorUnit = me._majorUnit;\n\t\tvar majorFormat = formats[majorUnit];\n\t\tvar tick = ticks[index];\n\t\tvar tickOpts = options.ticks;\n\t\tvar major = majorUnit && majorFormat && tick && tick.major;\n\t\tvar label = adapter.format(time, format ? format : major ? majorFormat : minorFormat);\n\t\tvar nestedTickOpts = major ? tickOpts.major : tickOpts.minor;\n\t\tvar formatter = resolve$5([\n\t\t\tnestedTickOpts.callback,\n\t\t\tnestedTickOpts.userCallback,\n\t\t\ttickOpts.callback,\n\t\t\ttickOpts.userCallback\n\t\t]);\n\n\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t},\n\n\tconvertTicksToLabels: function(ticks) {\n\t\tvar labels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tlabels.push(this.tickFormatFunction(ticks[i].value, i, ticks));\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetPixelForOffset: function(time) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = interpolate$1(me._table, 'time', time, 'pos');\n\t\treturn me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n\t},\n\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar time = null;\n\n\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t}\n\n\t\tif (time === null) {\n\t\t\ttime = parse(me, value);\n\t\t}\n\n\t\tif (time !== null) {\n\t\t\treturn me.getPixelForOffset(time);\n\t\t}\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.getTicks();\n\t\treturn index >= 0 && index < ticks.length ?\n\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\tnull;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n\t\tvar time = interpolate$1(me._table, 'pos', pos, 'time');\n\n\t\t// DEPRECATION, we should return time directly\n\t\treturn me._adapter._create(time);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSize: function(label) {\n\t\tvar me = this;\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\tvar angle = helpers$1.toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n\t\tvar cosRotation = Math.cos(angle);\n\t\tvar sinRotation = Math.sin(angle);\n\t\tvar tickFontSize = valueOrDefault$d(ticksOpts.fontSize, core_defaults.global.defaultFontSize);\n\n\t\treturn {\n\t\t\tw: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n\t\t\th: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n\t\t};\n\t},\n\n\t/**\n\t * Crude approximation of what the label width might be\n\t * @private\n\t */\n\tgetLabelWidth: function(label) {\n\t\treturn this._getLabelSize(label).w;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetLabelCapacity: function(exampleTime) {\n\t\tvar me = this;\n\t\tvar timeOpts = me.options.time;\n\t\tvar displayFormats = timeOpts.displayFormats;\n\n\t\t// pick the longest format (milliseconds) for guestimation\n\t\tvar format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\t\tvar exampleLabel = me.tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n\t\tvar size = me._getLabelSize(exampleLabel);\n\t\tvar capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h);\n\n\t\tif (me.options.offset) {\n\t\t\tcapacity--;\n\t\t}\n\n\t\treturn capacity > 0 ? capacity : 1;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$4 = defaultConfig$4;\nscale_time._defaults = _defaults$4;\n\nvar scales = {\n\tcategory: scale_category,\n\tlinear: scale_linear,\n\tlogarithmic: scale_logarithmic,\n\tradialLinear: scale_radialLinear,\n\ttime: scale_time\n};\n\nvar FORMATS = {\n\tdatetime: 'MMM D, YYYY, h:mm:ss a',\n\tmillisecond: 'h:mm:ss.SSS a',\n\tsecond: 'h:mm:ss a',\n\tminute: 'h:mm a',\n\thour: 'hA',\n\tday: 'MMM D',\n\tweek: 'll',\n\tmonth: 'MMM YYYY',\n\tquarter: '[Q]Q - YYYY',\n\tyear: 'YYYY'\n};\n\ncore_adapters._date.override(typeof moment === 'function' ? {\n\t_id: 'moment', // DEBUG ONLY\n\n\tformats: function() {\n\t\treturn FORMATS;\n\t},\n\n\tparse: function(value, format) {\n\t\tif (typeof value === 'string' && typeof format === 'string') {\n\t\t\tvalue = moment(value, format);\n\t\t} else if (!(value instanceof moment)) {\n\t\t\tvalue = moment(value);\n\t\t}\n\t\treturn value.isValid() ? value.valueOf() : null;\n\t},\n\n\tformat: function(time, format) {\n\t\treturn moment(time).format(format);\n\t},\n\n\tadd: function(time, amount, unit) {\n\t\treturn moment(time).add(amount, unit).valueOf();\n\t},\n\n\tdiff: function(max, min, unit) {\n\t\treturn moment(max).diff(moment(min), unit);\n\t},\n\n\tstartOf: function(time, unit, weekday) {\n\t\ttime = moment(time);\n\t\tif (unit === 'isoWeek') {\n\t\t\treturn time.isoWeekday(weekday).valueOf();\n\t\t}\n\t\treturn time.startOf(unit).valueOf();\n\t},\n\n\tendOf: function(time, unit) {\n\t\treturn moment(time).endOf(unit).valueOf();\n\t},\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility with scale.getValueForPixel().\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(time) {\n\t\treturn moment(time);\n\t},\n} : {});\n\ncore_defaults._set('global', {\n\tplugins: {\n\t\tfiller: {\n\t\t\tpropagate: true\n\t\t}\n\t}\n});\n\nvar mappers = {\n\tdataset: function(source) {\n\t\tvar index = source.fill;\n\t\tvar chart = source.chart;\n\t\tvar meta = chart.getDatasetMeta(index);\n\t\tvar visible = meta && chart.isDatasetVisible(index);\n\t\tvar points = (visible && meta.dataset._children) || [];\n\t\tvar length = points.length || 0;\n\n\t\treturn !length ? null : function(point, i) {\n\t\t\treturn (i < length && points[i]._view) || null;\n\t\t};\n\t},\n\n\tboundary: function(source) {\n\t\tvar boundary = source.boundary;\n\t\tvar x = boundary ? boundary.x : null;\n\t\tvar y = boundary ? boundary.y : null;\n\n\t\tif (helpers$1.isArray(boundary)) {\n\t\t\treturn function(point, i) {\n\t\t\t\treturn boundary[i];\n\t\t\t};\n\t\t}\n\n\t\treturn function(point) {\n\t\t\treturn {\n\t\t\t\tx: x === null ? point.x : x,\n\t\t\t\ty: y === null ? point.y : y,\n\t\t\t};\n\t\t};\n\t}\n};\n\n// @todo if (fill[0] === '#')\nfunction decodeFill(el, index, count) {\n\tvar model = el._model || {};\n\tvar fill = model.fill;\n\tvar target;\n\n\tif (fill === undefined) {\n\t\tfill = !!model.backgroundColor;\n\t}\n\n\tif (fill === false || fill === null) {\n\t\treturn false;\n\t}\n\n\tif (fill === true) {\n\t\treturn 'origin';\n\t}\n\n\ttarget = parseFloat(fill, 10);\n\tif (isFinite(target) && Math.floor(target) === target) {\n\t\tif (fill[0] === '-' || fill[0] === '+') {\n\t\t\ttarget = index + target;\n\t\t}\n\n\t\tif (target === index || target < 0 || target >= count) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tswitch (fill) {\n\t// compatibility\n\tcase 'bottom':\n\t\treturn 'start';\n\tcase 'top':\n\t\treturn 'end';\n\tcase 'zero':\n\t\treturn 'origin';\n\t// supported boundaries\n\tcase 'origin':\n\tcase 'start':\n\tcase 'end':\n\t\treturn fill;\n\t// invalid fill values\n\tdefault:\n\t\treturn false;\n\t}\n}\n\nfunction computeLinearBoundary(source) {\n\tvar model = source.el._model || {};\n\tvar scale = source.el._scale || {};\n\tvar fill = source.fill;\n\tvar target = null;\n\tvar horizontal;\n\n\tif (isFinite(fill)) {\n\t\treturn null;\n\t}\n\n\t// Backward compatibility: until v3, we still need to support boundary values set on\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n\t// controllers might still use it (e.g. the Smith chart).\n\n\tif (fill === 'start') {\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n\t} else if (fill === 'end') {\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\n\t} else if (model.scaleZero !== undefined) {\n\t\ttarget = model.scaleZero;\n\t} else if (scale.getBasePixel) {\n\t\ttarget = scale.getBasePixel();\n\t}\n\n\tif (target !== undefined && target !== null) {\n\t\tif (target.x !== undefined && target.y !== undefined) {\n\t\t\treturn target;\n\t\t}\n\n\t\tif (helpers$1.isFinite(target)) {\n\t\t\thorizontal = scale.isHorizontal();\n\t\t\treturn {\n\t\t\t\tx: horizontal ? target : null,\n\t\t\t\ty: horizontal ? null : target\n\t\t\t};\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction computeCircularBoundary(source) {\n\tvar scale = source.el._scale;\n\tvar options = scale.options;\n\tvar length = scale.chart.data.labels.length;\n\tvar fill = source.fill;\n\tvar target = [];\n\tvar start, end, center, i, point;\n\n\tif (!length) {\n\t\treturn null;\n\t}\n\n\tstart = options.ticks.reverse ? scale.max : scale.min;\n\tend = options.ticks.reverse ? scale.min : scale.max;\n\tcenter = scale.getPointPositionForValue(0, start);\n\tfor (i = 0; i < length; ++i) {\n\t\tpoint = fill === 'start' || fill === 'end'\n\t\t\t? scale.getPointPositionForValue(i, fill === 'start' ? start : end)\n\t\t\t: scale.getBasePosition(i);\n\t\tif (options.gridLines.circular) {\n\t\t\tpoint.cx = center.x;\n\t\t\tpoint.cy = center.y;\n\t\t\tpoint.angle = scale.getIndexAngle(i) - Math.PI / 2;\n\t\t}\n\t\ttarget.push(point);\n\t}\n\treturn target;\n}\n\nfunction computeBoundary(source) {\n\tvar scale = source.el._scale || {};\n\n\tif (scale.getPointPositionForValue) {\n\t\treturn computeCircularBoundary(source);\n\t}\n\treturn computeLinearBoundary(source);\n}\n\nfunction resolveTarget(sources, index, propagate) {\n\tvar source = sources[index];\n\tvar fill = source.fill;\n\tvar visited = [index];\n\tvar target;\n\n\tif (!propagate) {\n\t\treturn fill;\n\t}\n\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\n\t\tif (!isFinite(fill)) {\n\t\t\treturn fill;\n\t\t}\n\n\t\ttarget = sources[fill];\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target.visible) {\n\t\t\treturn fill;\n\t\t}\n\n\t\tvisited.push(fill);\n\t\tfill = target.fill;\n\t}\n\n\treturn false;\n}\n\nfunction createMapper(source) {\n\tvar fill = source.fill;\n\tvar type = 'dataset';\n\n\tif (fill === false) {\n\t\treturn null;\n\t}\n\n\tif (!isFinite(fill)) {\n\t\ttype = 'boundary';\n\t}\n\n\treturn mappers[type](source);\n}\n\nfunction isDrawable(point) {\n\treturn point && !point.skip;\n}\n\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\n\tvar i, cx, cy, r;\n\n\tif (!len0 || !len1) {\n\t\treturn;\n\t}\n\n\t// building first area curve (normal)\n\tctx.moveTo(curve0[0].x, curve0[0].y);\n\tfor (i = 1; i < len0; ++i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n\t}\n\n\tif (curve1[0].angle !== undefined) {\n\t\tcx = curve1[0].cx;\n\t\tcy = curve1[0].cy;\n\t\tr = Math.sqrt(Math.pow(curve1[0].x - cx, 2) + Math.pow(curve1[0].y - cy, 2));\n\t\tfor (i = len1 - 1; i > 0; --i) {\n\t\t\tctx.arc(cx, cy, r, curve1[i].angle, curve1[i - 1].angle, true);\n\t\t}\n\t\treturn;\n\t}\n\n\t// joining the two area curves\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n\t// building opposite area curve (reverse)\n\tfor (i = len1 - 1; i > 0; --i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n\t}\n}\n\nfunction doFill(ctx, points, mapper, view, color, loop) {\n\tvar count = points.length;\n\tvar span = view.spanGaps;\n\tvar curve0 = [];\n\tvar curve1 = [];\n\tvar len0 = 0;\n\tvar len1 = 0;\n\tvar i, ilen, index, p0, p1, d0, d1, loopOffset;\n\n\tctx.beginPath();\n\n\tfor (i = 0, ilen = count; i < ilen; ++i) {\n\t\tindex = i % count;\n\t\tp0 = points[index]._view;\n\t\tp1 = mapper(p0, index, view);\n\t\td0 = isDrawable(p0);\n\t\td1 = isDrawable(p1);\n\n\t\tif (loop && loopOffset === undefined && d0) {\n\t\t\tloopOffset = i + 1;\n\t\t\tilen = count + loopOffset;\n\t\t}\n\n\t\tif (d0 && d1) {\n\t\t\tlen0 = curve0.push(p0);\n\t\t\tlen1 = curve1.push(p1);\n\t\t} else if (len0 && len1) {\n\t\t\tif (!span) {\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\n\t\t\t\tlen0 = len1 = 0;\n\t\t\t\tcurve0 = [];\n\t\t\t\tcurve1 = [];\n\t\t\t} else {\n\t\t\t\tif (d0) {\n\t\t\t\t\tcurve0.push(p0);\n\t\t\t\t}\n\t\t\t\tif (d1) {\n\t\t\t\t\tcurve1.push(p1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdrawArea(ctx, curve0, curve1, len0, len1);\n\n\tctx.closePath();\n\tctx.fillStyle = color;\n\tctx.fill();\n}\n\nvar plugin_filler = {\n\tid: 'filler',\n\n\tafterDatasetsUpdate: function(chart, options) {\n\t\tvar count = (chart.data.datasets || []).length;\n\t\tvar propagate = options.propagate;\n\t\tvar sources = [];\n\t\tvar meta, i, el, source;\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tel = meta.dataset;\n\t\t\tsource = null;\n\n\t\t\tif (el && el._model && el instanceof elements.Line) {\n\t\t\t\tsource = {\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\n\t\t\t\t\tfill: decodeFill(el, i, count),\n\t\t\t\t\tchart: chart,\n\t\t\t\t\tel: el\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tmeta.$filler = source;\n\t\t\tsources.push(source);\n\t\t}\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!source) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\n\t\t\tsource.boundary = computeBoundary(source);\n\t\t\tsource.mapper = createMapper(source);\n\t\t}\n\t},\n\n\tbeforeDatasetsDraw: function(chart) {\n\t\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\t\tvar ctx = chart.ctx;\n\t\tvar meta, i, el, view, points, mapper, color;\n\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tmeta = metasets[i].$filler;\n\n\t\t\tif (!meta || !meta.visible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tel = meta.el;\n\t\t\tview = el._view;\n\t\t\tpoints = el._children || [];\n\t\t\tmapper = meta.mapper;\n\t\t\tcolor = view.backgroundColor || core_defaults.global.defaultColor;\n\n\t\t\tif (mapper && color && points.length) {\n\t\t\t\thelpers$1.canvas.clipArea(ctx, chart.chartArea);\n\t\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\t\thelpers$1.canvas.unclipArea(ctx);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar getRtlHelper$1 = helpers$1.rtl.getRtlAdapter;\nvar noop$1 = helpers$1.noop;\nvar valueOrDefault$e = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\tlegend: {\n\t\tdisplay: true,\n\t\tposition: 'top',\n\t\talign: 'center',\n\t\tfullWidth: true,\n\t\treverse: false,\n\t\tweight: 1000,\n\n\t\t// a callback that will handle\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.datasetIndex;\n\t\t\tvar ci = this.chart;\n\t\t\tvar meta = ci.getDatasetMeta(index);\n\n\t\t\t// See controller.isDatasetVisible comment\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n\t\t\t// We hid a dataset ... rerender the chart\n\t\t\tci.update();\n\t\t},\n\n\t\tonHover: null,\n\t\tonLeave: null,\n\n\t\tlabels: {\n\t\t\tboxWidth: 40,\n\t\t\tpadding: 10,\n\t\t\t// Generates labels shown in the legend\n\t\t\t// Valid properties to return:\n\t\t\t// text : text to display\n\t\t\t// fillStyle : fill of coloured box\n\t\t\t// strokeStyle: stroke of coloured box\n\t\t\t// hidden : if this legend item refers to a hidden item\n\t\t\t// lineCap : cap style for line\n\t\t\t// lineDash\n\t\t\t// lineDashOffset :\n\t\t\t// lineJoin :\n\t\t\t// lineWidth :\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar datasets = chart.data.datasets;\n\t\t\t\tvar options = chart.options.legend || {};\n\t\t\t\tvar usePointStyle = options.labels && options.labels.usePointStyle;\n\n\t\t\t\treturn chart._getSortedDatasetMetas().map(function(meta) {\n\t\t\t\t\tvar style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: datasets[meta.index].label,\n\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(meta.index),\n\t\t\t\t\t\tlineCap: style.borderCapStyle,\n\t\t\t\t\t\tlineDash: style.borderDash,\n\t\t\t\t\t\tlineDashOffset: style.borderDashOffset,\n\t\t\t\t\t\tlineJoin: style.borderJoinStyle,\n\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\tpointStyle: style.pointStyle,\n\t\t\t\t\t\trotation: style.rotation,\n\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\n\t\t\t\t\t\tdatasetIndex: meta.index\n\t\t\t\t\t};\n\t\t\t\t}, this);\n\t\t\t}\n\t\t}\n\t},\n\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar datasets = chart.data.datasets;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\tlistItemSpan.style.backgroundColor = datasets[i].backgroundColor;\n\t\t\tif (datasets[i].label) {\n\t\t\t\tlistItem.appendChild(document.createTextNode(datasets[i].label));\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t}\n});\n\n/**\n * Helper function to get the box width based on the usePointStyle option\n * @param {object} labelopts - the label options on the legend\n * @param {number} fontSize - the label font size\n * @return {number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ?\n\t\tfontSize :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = core_element.extend({\n\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\n\t\t/**\n \t\t * @private\n \t\t */\n\t\tme._hoveredItem = null;\n\n\t\t// Are we in doughnut mode which has a different data type\n\t\tme.doughnutMode = false;\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\t// Any function defined here is inherited by all legend types.\n\t// Any function can be extended by the legend type\n\n\tbeforeUpdate: noop$1,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\t},\n\tafterUpdate: noop$1,\n\n\t//\n\n\tbeforeSetDimensions: noop$1,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$1,\n\n\t//\n\n\tbeforeBuildLabels: noop$1,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers$1.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n\t\tif (labelOpts.filter) {\n\t\t\tlegendItems = legendItems.filter(function(item) {\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\n\t\t\t});\n\t\t}\n\n\t\tif (me.options.reverse) {\n\t\t\tlegendItems.reverse();\n\t\t}\n\n\t\tme.legendItems = legendItems;\n\t},\n\tafterBuildLabels: noop$1,\n\n\t//\n\n\tbeforeFit: noop$1,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar display = opts.display;\n\n\t\tvar ctx = me.ctx;\n\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\n\t\t// Reset hit boxes\n\t\tvar hitboxes = me.legendHitBoxes = [];\n\n\t\tvar minSize = me.minSize;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = display ? 10 : 0;\n\t\t} else {\n\t\t\tminSize.width = display ? 10 : 0;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Increase sizes here\n\t\tif (!display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\t\tctx.font = labelFont.string;\n\n\t\tif (isHorizontal) {\n\t\t\t// Labels\n\n\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n\t\t\tvar lineWidths = me.lineWidths = [0];\n\t\t\tvar totalHeight = 0;\n\n\t\t\tctx.textAlign = 'left';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\tif (i === 0 || lineWidths[lineWidths.length - 1] + width + 2 * labelOpts.padding > minSize.width) {\n\t\t\t\t\ttotalHeight += fontSize + labelOpts.padding;\n\t\t\t\t\tlineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n\t\t\t\t}\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\n\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n\t\t\t});\n\n\t\t\tminSize.height += totalHeight;\n\n\t\t} else {\n\t\t\tvar vPadding = labelOpts.padding;\n\t\t\tvar columnWidths = me.columnWidths = [];\n\t\t\tvar columnHeights = me.columnHeights = [];\n\t\t\tvar totalWidth = labelOpts.padding;\n\t\t\tvar currentColWidth = 0;\n\t\t\tvar currentColHeight = 0;\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t// If too tall, go to new column\n\t\t\t\tif (i > 0 && currentColHeight + fontSize + 2 * vPadding > minSize.height) {\n\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\n\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\n\t\t\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\t\t\tcurrentColWidth = 0;\n\t\t\t\t\tcurrentColHeight = 0;\n\t\t\t\t}\n\n\t\t\t\t// Get max width\n\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\n\t\t\t\tcurrentColHeight += fontSize + vPadding;\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\t\t\t});\n\n\t\t\ttotalWidth += currentColWidth;\n\t\t\tcolumnWidths.push(currentColWidth);\n\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\tminSize.width += totalWidth;\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\tafterFit: noop$1,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\n\t// Actually draw the legend on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor;\n\t\tvar lineDefault = globalDefaults.elements.line;\n\t\tvar legendHeight = me.height;\n\t\tvar columnHeights = me.columnHeights;\n\t\tvar legendWidth = me.width;\n\t\tvar lineWidths = me.lineWidths;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar rtlHelper = getRtlHelper$1(opts.rtl, me.left, me.minSize.width);\n\t\tvar ctx = me.ctx;\n\t\tvar fontColor = valueOrDefault$e(labelOpts.fontColor, globalDefaults.defaultFontColor);\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\t\tvar cursor;\n\n\t\t// Canvas setup\n\t\tctx.textAlign = rtlHelper.textAlign('left');\n\t\tctx.textBaseline = 'middle';\n\t\tctx.lineWidth = 0.5;\n\t\tctx.strokeStyle = fontColor; // for strikethrough effect\n\t\tctx.fillStyle = fontColor; // render in correct colour\n\t\tctx.font = labelFont.string;\n\n\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\tvar hitboxes = me.legendHitBoxes;\n\n\t\t// current position\n\t\tvar drawLegendBox = function(x, y, legendItem) {\n\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ctx for the box\n\t\t\tctx.save();\n\n\t\t\tvar lineWidth = valueOrDefault$e(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\tctx.fillStyle = valueOrDefault$e(legendItem.fillStyle, defaultColor);\n\t\t\tctx.lineCap = valueOrDefault$e(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\tctx.lineDashOffset = valueOrDefault$e(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\tctx.lineJoin = valueOrDefault$e(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = valueOrDefault$e(legendItem.strokeStyle, defaultColor);\n\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\t// IE 9 and 10 do not support line dash\n\t\t\t\tctx.setLineDash(valueOrDefault$e(legendItem.lineDash, lineDefault.borderDash));\n\t\t\t}\n\n\t\t\tif (labelOpts && labelOpts.usePointStyle) {\n\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\n\t\t\t\t// x and y to be center of figure (instead of top left)\n\t\t\t\tvar radius = boxWidth * Math.SQRT2 / 2;\n\t\t\t\tvar centerX = rtlHelper.xPlus(x, boxWidth / 2);\n\t\t\t\tvar centerY = y + fontSize / 2;\n\n\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\thelpers$1.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY, legendItem.rotation);\n\t\t\t} else {\n\t\t\t\t// Draw box as legend symbol\n\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\tif (lineWidth !== 0) {\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t};\n\n\t\tvar fillText = function(x, y, legendItem, textWidth) {\n\t\t\tvar halfFontSize = fontSize / 2;\n\t\t\tvar xLeft = rtlHelper.xPlus(x, boxWidth + halfFontSize);\n\t\t\tvar yMiddle = y + halfFontSize;\n\n\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\n\n\t\t\tif (legendItem.hidden) {\n\t\t\t\t// Strikethrough the text if hidden\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.lineWidth = 2;\n\t\t\t\tctx.moveTo(xLeft, yMiddle);\n\t\t\t\tctx.lineTo(rtlHelper.xPlus(xLeft, textWidth), yMiddle);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t};\n\n\t\tvar alignmentOffset = function(dimension, blockSize) {\n\t\t\tswitch (opts.align) {\n\t\t\tcase 'start':\n\t\t\t\treturn labelOpts.padding;\n\t\t\tcase 'end':\n\t\t\t\treturn dimension - blockSize;\n\t\t\tdefault: // center\n\t\t\t\treturn (dimension - blockSize + labelOpts.padding) / 2;\n\t\t\t}\n\t\t};\n\n\t\t// Horizontal\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tif (isHorizontal) {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + alignmentOffset(legendWidth, lineWidths[0]),\n\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\tline: 0\n\t\t\t};\n\t\t} else {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + labelOpts.padding,\n\t\t\t\ty: me.top + alignmentOffset(legendHeight, columnHeights[0]),\n\t\t\t\tline: 0\n\t\t\t};\n\t\t}\n\n\t\thelpers$1.rtl.overrideTextDirection(me.ctx, opts.textDirection);\n\n\t\tvar itemHeight = fontSize + labelOpts.padding;\n\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\n\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\n\t\t\tvar x = cursor.x;\n\t\t\tvar y = cursor.y;\n\n\t\t\trtlHelper.setWidth(me.minSize.width);\n\n\t\t\t// Use (me.left + me.minSize.width) and (me.top + me.minSize.height)\n\t\t\t// instead of me.right and me.bottom because me.width and me.height\n\t\t\t// may have been changed since me.minSize was calculated\n\t\t\tif (isHorizontal) {\n\t\t\t\tif (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) {\n\t\t\t\t\ty = cursor.y += itemHeight;\n\t\t\t\t\tcursor.line++;\n\t\t\t\t\tx = cursor.x = me.left + alignmentOffset(legendWidth, lineWidths[cursor.line]);\n\t\t\t\t}\n\t\t\t} else if (i > 0 && y + itemHeight > me.top + me.minSize.height) {\n\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n\t\t\t\tcursor.line++;\n\t\t\t\ty = cursor.y = me.top + alignmentOffset(legendHeight, columnHeights[cursor.line]);\n\t\t\t}\n\n\t\t\tvar realX = rtlHelper.x(x);\n\n\t\t\tdrawLegendBox(realX, y, legendItem);\n\n\t\t\thitboxes[i].left = rtlHelper.leftForLtr(realX, hitboxes[i].width);\n\t\t\thitboxes[i].top = y;\n\n\t\t\t// Fill the actual label\n\t\t\tfillText(realX, y, legendItem, textWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tcursor.x += width + labelOpts.padding;\n\t\t\t} else {\n\t\t\t\tcursor.y += itemHeight;\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.rtl.restoreTextDirection(me.ctx, opts.textDirection);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLegendItemAt: function(x, y) {\n\t\tvar me = this;\n\t\tvar i, hitBox, lh;\n\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n\t\t\t// See if we are touching one of the dataset boxes\n\t\t\tlh = me.legendHitBoxes;\n\t\t\tfor (i = 0; i < lh.length; ++i) {\n\t\t\t\thitBox = lh[i];\n\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n\t\t\t\t\t// Touching an element\n\t\t\t\t\treturn me.legendItems[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\n\t\tvar hoveredItem;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover && !opts.onLeave) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (type === 'click') {\n\t\t\tif (!opts.onClick) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chart event already has relative position in it\n\t\thoveredItem = me._getLegendItemAt(e.x, e.y);\n\n\t\tif (type === 'click') {\n\t\t\tif (hoveredItem && opts.onClick) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onClick.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t} else {\n\t\t\tif (opts.onLeave && hoveredItem !== me._hoveredItem) {\n\t\t\t\tif (me._hoveredItem) {\n\t\t\t\t\topts.onLeave.call(me, e.native, me._hoveredItem);\n\t\t\t\t}\n\t\t\t\tme._hoveredItem = hoveredItem;\n\t\t\t}\n\n\t\t\tif (opts.onHover && hoveredItem) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onHover.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t}\n\t}\n});\n\nfunction createNewLegendAndAttach(chart, legendOpts) {\n\tvar legend = new Legend({\n\t\tctx: chart.ctx,\n\t\toptions: legendOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, legend, legendOpts);\n\tcore_layouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nvar plugin_legend = {\n\tid: 'legend',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Legend,\n\n\tbeforeInit: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\n\t\tif (legendOpts) {\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\t\tvar legend = chart.legend;\n\n\t\tif (legendOpts) {\n\t\t\thelpers$1.mergeIf(legendOpts, core_defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tcore_layouts.configure(chart, legend, legendOpts);\n\t\t\t\tlegend.options = legendOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t\t}\n\t\t} else if (legend) {\n\t\t\tcore_layouts.removeBox(chart, legend);\n\t\t\tdelete chart.legend;\n\t\t}\n\t},\n\n\tafterEvent: function(chart, e) {\n\t\tvar legend = chart.legend;\n\t\tif (legend) {\n\t\t\tlegend.handleEvent(e);\n\t\t}\n\t}\n};\n\nvar noop$2 = helpers$1.noop;\n\ncore_defaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\n\t\tpadding: 10,\n\t\tposition: 'top',\n\t\ttext: '',\n\t\tweight: 2000         // by default greater than legend (1000) to be above\n\t}\n});\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Title = core_element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\n\tbeforeUpdate: noop$2,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: noop$2,\n\n\t//\n\n\tbeforeSetDimensions: noop$2,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$2,\n\n\t//\n\n\tbeforeBuildLabels: noop$2,\n\tbuildLabels: noop$2,\n\tafterBuildLabels: noop$2,\n\n\t//\n\n\tbeforeFit: noop$2,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar minSize = me.minSize = {};\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar lineCount, textSize;\n\n\t\tif (!opts.display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tlineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1;\n\t\ttextSize = lineCount * helpers$1.options._parseFont(opts).lineHeight + opts.padding * 2;\n\n\t\tme.width = minSize.width = isHorizontal ? me.maxWidth : textSize;\n\t\tme.height = minSize.height = isHorizontal ? textSize : me.maxHeight;\n\t},\n\tafterFit: noop$2,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\n\t// Actually draw the title block on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar fontOpts = helpers$1.options._parseFont(opts);\n\t\tvar lineHeight = fontOpts.lineHeight;\n\t\tvar offset = lineHeight / 2 + opts.padding;\n\t\tvar rotation = 0;\n\t\tvar top = me.top;\n\t\tvar left = me.left;\n\t\tvar bottom = me.bottom;\n\t\tvar right = me.right;\n\t\tvar maxWidth, titleX, titleY;\n\n\t\tctx.fillStyle = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour\n\t\tctx.font = fontOpts.string;\n\n\t\t// Horizontal\n\t\tif (me.isHorizontal()) {\n\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\n\t\t\ttitleY = top + offset;\n\t\t\tmaxWidth = right - left;\n\t\t} else {\n\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\n\t\t\ttitleY = top + ((bottom - top) / 2);\n\t\t\tmaxWidth = bottom - top;\n\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(titleX, titleY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\tvar text = opts.text;\n\t\tif (helpers$1.isArray(text)) {\n\t\t\tvar y = 0;\n\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\n\t\t\t\ty += lineHeight;\n\t\t\t}\n\t\t} else {\n\t\t\tctx.fillText(text, 0, 0, maxWidth);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\n\tvar title = new Title({\n\t\tctx: chart.ctx,\n\t\toptions: titleOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, title, titleOpts);\n\tcore_layouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nvar plugin_title = {\n\tid: 'title',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Title,\n\n\tbeforeInit: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\n\t\tif (titleOpts) {\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\t\tvar titleBlock = chart.titleBlock;\n\n\t\tif (titleOpts) {\n\t\t\thelpers$1.mergeIf(titleOpts, core_defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tcore_layouts.configure(chart, titleBlock, titleOpts);\n\t\t\t\ttitleBlock.options = titleOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t\t}\n\t\t} else if (titleBlock) {\n\t\t\tcore_layouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n\nvar plugins = {};\nvar filler = plugin_filler;\nvar legend = plugin_legend;\nvar title = plugin_title;\nplugins.filler = filler;\nplugins.legend = legend;\nplugins.title = title;\n\n/**\n * @namespace Chart\n */\n\n\ncore_controller.helpers = helpers$1;\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\ncore_helpers();\n\ncore_controller._adapters = core_adapters;\ncore_controller.Animation = core_animation;\ncore_controller.animationService = core_animations;\ncore_controller.controllers = controllers;\ncore_controller.DatasetController = core_datasetController;\ncore_controller.defaults = core_defaults;\ncore_controller.Element = core_element;\ncore_controller.elements = elements;\ncore_controller.Interaction = core_interaction;\ncore_controller.layouts = core_layouts;\ncore_controller.platform = platform;\ncore_controller.plugins = core_plugins;\ncore_controller.Scale = core_scale;\ncore_controller.scaleService = core_scaleService;\ncore_controller.Ticks = core_ticks;\ncore_controller.Tooltip = core_tooltip;\n\n// Register built-in scales\n\ncore_controller.helpers.each(scales, function(scale, type) {\n\tcore_controller.scaleService.registerScaleType(type, scale, scale._defaults);\n});\n\n// Load to register built-in adapters (as side effects)\n\n\n// Loading built-in plugins\n\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tcore_controller.plugins.register(plugins[k]);\n\t}\n}\n\ncore_controller.platform.initialize();\n\nvar src = core_controller;\nif (typeof window !== 'undefined') {\n\twindow.Chart = core_controller;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Chart\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.Chart = core_controller;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Legend = plugins.legend._element;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Title = plugins.title._element;\n\n/**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.pluginService = core_controller.plugins;\n\n/**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.PluginBase = core_controller.Element.extend({});\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.canvasHelpers = core_controller.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.7.3\n * @todo remove at version 3\n * @private\n */\ncore_controller.layoutService = core_controller.layouts;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.LinearScaleBase\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\ncore_controller.LinearScaleBase = scale_linearbase;\n\n/**\n * Provided for backward compatibility, instead we should create a new Chart\n * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`).\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n */\ncore_controller.helpers.each(\n\t[\n\t\t'Bar',\n\t\t'Bubble',\n\t\t'Doughnut',\n\t\t'Line',\n\t\t'PolarArea',\n\t\t'Radar',\n\t\t'Scatter'\n\t],\n\tfunction(klass) {\n\t\tcore_controller[klass] = function(ctx, cfg) {\n\t\t\treturn new core_controller(ctx, core_controller.helpers.merge(cfg || {}, {\n\t\t\t\ttype: klass.charAt(0).toLowerCase() + klass.slice(1)\n\t\t\t}));\n\t\t};\n\t}\n);\n\nreturn src;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/comment/comment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var noOptions = {};\n  var nonWS = /[^\\s\\u00a0]/;\n  var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n  function firstNonWS(str) {\n    var found = str.search(nonWS);\n    return found == -1 ? 0 : found;\n  }\n\n  CodeMirror.commands.toggleComment = function(cm) {\n    cm.toggleComment();\n  };\n\n  CodeMirror.defineExtension(\"toggleComment\", function(options) {\n    if (!options) options = noOptions;\n    var cm = this;\n    var minLine = Infinity, ranges = this.listSelections(), mode = null;\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var from = ranges[i].from(), to = ranges[i].to();\n      if (from.line >= minLine) continue;\n      if (to.line >= minLine) to = Pos(minLine, 0);\n      minLine = from.line;\n      if (mode == null) {\n        if (cm.uncomment(from, to, options)) mode = \"un\";\n        else { cm.lineComment(from, to, options); mode = \"line\"; }\n      } else if (mode == \"un\") {\n        cm.uncomment(from, to, options);\n      } else {\n        cm.lineComment(from, to, options);\n      }\n    }\n  });\n\n  // Rough heuristic to try and detect lines that are part of multi-line string\n  function probablyInsideString(cm, pos, line) {\n    return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n  }\n\n  function getMode(cm, pos) {\n    var mode = cm.getMode()\n    return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n  }\n\n  CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = getMode(self, from);\n    var firstLine = self.getLine(from.line);\n    if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n    var commentString = options.lineComment || mode.lineComment;\n    if (!commentString) {\n      if (options.blockCommentStart || mode.blockCommentStart) {\n        options.fullLines = true;\n        self.blockComment(from, to, options);\n      }\n      return;\n    }\n\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n    var pad = options.padding == null ? \" \" : options.padding;\n    var blankLines = options.commentBlankLines || from.line == to.line;\n\n    self.operation(function() {\n      if (options.indent) {\n        var baseString = null;\n        for (var i = from.line; i < end; ++i) {\n          var line = self.getLine(i);\n          var whitespace = line.slice(0, firstNonWS(line));\n          if (baseString == null || baseString.length > whitespace.length) {\n            baseString = whitespace;\n          }\n        }\n        for (var i = from.line; i < end; ++i) {\n          var line = self.getLine(i), cut = baseString.length;\n          if (!blankLines && !nonWS.test(line)) continue;\n          if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n          self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n        }\n      } else {\n        for (var i = from.line; i < end; ++i) {\n          if (blankLines || nonWS.test(self.getLine(i)))\n            self.replaceRange(commentString + pad, Pos(i, 0));\n        }\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = getMode(self, from);\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) {\n      if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n        self.lineComment(from, to, options);\n      return;\n    }\n    if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n    var end = Math.min(to.line, self.lastLine());\n    if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n    var pad = options.padding == null ? \" \" : options.padding;\n    if (from.line > end) return;\n\n    self.operation(function() {\n      if (options.fullLines != false) {\n        var lastLineHasText = nonWS.test(self.getLine(end));\n        self.replaceRange(pad + endString, Pos(end));\n        self.replaceRange(startString + pad, Pos(from.line, 0));\n        var lead = options.blockCommentLead || mode.blockCommentLead;\n        if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n          if (i != end || lastLineHasText)\n            self.replaceRange(lead + pad, Pos(i, 0));\n      } else {\n        var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n        self.replaceRange(endString, to);\n        if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n        self.replaceRange(startString, from);\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = getMode(self, from);\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n    // Try finding line comments\n    var lineString = options.lineComment || mode.lineComment, lines = [];\n    var pad = options.padding == null ? \" \" : options.padding, didSomething;\n    lineComment: {\n      if (!lineString) break lineComment;\n      for (var i = start; i <= end; ++i) {\n        var line = self.getLine(i);\n        var found = line.indexOf(lineString);\n        if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n        if (found == -1 && nonWS.test(line)) break lineComment;\n        if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n        lines.push(line);\n      }\n      self.operation(function() {\n        for (var i = start; i <= end; ++i) {\n          var line = lines[i - start];\n          var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n          if (pos < 0) continue;\n          if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n          didSomething = true;\n          self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n        }\n      });\n      if (didSomething) return true;\n    }\n\n    // Try block comments\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) return false;\n    var lead = options.blockCommentLead || mode.blockCommentLead;\n    var startLine = self.getLine(start), open = startLine.indexOf(startString)\n    if (open == -1) return false\n    var endLine = end == start ? startLine : self.getLine(end)\n    var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n    var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n    if (close == -1 ||\n        !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n        !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n        self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n      return false;\n\n    // Avoid killing block comments completely outside the selection.\n    // Positions of the last startString before the start of the selection, and the first endString after it.\n    var lastStart = startLine.lastIndexOf(startString, from.ch);\n    var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n    if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n    // Positions of the first endString after the end of the selection, and the last startString before it.\n    firstEnd = endLine.indexOf(endString, to.ch);\n    var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n    lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n    if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n    self.operation(function() {\n      self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n                        Pos(end, close + endString.length));\n      var openEnd = open + startString.length;\n      if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n      self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n      if (lead) for (var i = start + 1; i <= end; ++i) {\n        var line = self.getLine(i), found = line.indexOf(lead);\n        if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n        var foundEnd = found + lead.length;\n        if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n        self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n      }\n    });\n    return true;\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/comment/continuecomment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var nonspace = /\\S/g;\n  var repeat = String.prototype.repeat || function (n) { return Array(n + 1).join(this); };\n  function continueComment(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), mode, inserts = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head\n      if (!/\\bcomment\\b/.test(cm.getTokenTypeAt(pos))) return CodeMirror.Pass;\n      var modeHere = cm.getModeAt(pos)\n      if (!mode) mode = modeHere;\n      else if (mode != modeHere) return CodeMirror.Pass;\n\n      var insert = null, line, found;\n      var blockStart = mode.blockCommentStart, lineCmt = mode.lineComment;\n      if (blockStart && mode.blockCommentContinue) {\n        line = cm.getLine(pos.line);\n        var end = line.lastIndexOf(mode.blockCommentEnd, pos.ch - mode.blockCommentEnd.length);\n        // 1. if this block comment ended\n        // 2. if this is actually inside a line comment\n        if (end != -1 && end == pos.ch - mode.blockCommentEnd.length ||\n            lineCmt && (found = line.lastIndexOf(lineCmt, pos.ch - 1)) > -1 &&\n            /\\bcomment\\b/.test(cm.getTokenTypeAt({line: pos.line, ch: found + 1}))) {\n          // ...then don't continue it\n        } else if (pos.ch >= blockStart.length &&\n                   (found = line.lastIndexOf(blockStart, pos.ch - blockStart.length)) > -1 &&\n                   found > end) {\n          // reuse the existing leading spaces/tabs/mixed\n          // or build the correct indent using CM's tab/indent options\n          if (nonspaceAfter(0, line) >= found) {\n            insert = line.slice(0, found);\n          } else {\n            var tabSize = cm.options.tabSize, numTabs;\n            found = CodeMirror.countColumn(line, found, tabSize);\n            insert = !cm.options.indentWithTabs ? repeat.call(\" \", found) :\n              repeat.call(\"\\t\", (numTabs = Math.floor(found / tabSize))) +\n              repeat.call(\" \", found - tabSize * numTabs);\n          }\n        } else if ((found = line.indexOf(mode.blockCommentContinue)) > -1 &&\n                   found <= pos.ch &&\n                   found <= nonspaceAfter(0, line)) {\n          insert = line.slice(0, found);\n        }\n        if (insert != null) insert += mode.blockCommentContinue\n      }\n      if (insert == null && lineCmt && continueLineCommentEnabled(cm)) {\n        if (line == null) line = cm.getLine(pos.line);\n        found = line.indexOf(lineCmt);\n        // cursor at pos 0, line comment also at pos 0 => shift it down, don't continue\n        if (!pos.ch && !found) insert = \"\";\n        // continue only if the line starts with an optional space + line comment\n        else if (found > -1 && nonspaceAfter(0, line) >= found) {\n          // don't continue if there's only space(s) after cursor or the end of the line\n          insert = nonspaceAfter(pos.ch, line) > -1;\n          // but always continue if the next line starts with a line comment too\n          if (!insert) {\n            var next = cm.getLine(pos.line + 1) || '',\n                nextFound = next.indexOf(lineCmt);\n            insert = nextFound > -1 && nonspaceAfter(0, next) >= nextFound || null;\n          }\n          if (insert) {\n            insert = line.slice(0, found) + lineCmt +\n                     line.slice(found + lineCmt.length).match(/^\\s*/)[0];\n          }\n        }\n      }\n      if (insert == null) return CodeMirror.Pass;\n      inserts[i] = \"\\n\" + insert;\n    }\n\n    cm.operation(function() {\n      for (var i = ranges.length - 1; i >= 0; i--)\n        cm.replaceRange(inserts[i], ranges[i].from(), ranges[i].to(), \"+insert\");\n    });\n  }\n\n  function nonspaceAfter(ch, str) {\n    nonspace.lastIndex = ch;\n    var m = nonspace.exec(str);\n    return m ? m.index : -1;\n  }\n\n  function continueLineCommentEnabled(cm) {\n    var opt = cm.getOption(\"continueComments\");\n    if (opt && typeof opt == \"object\")\n      return opt.continueLineComment !== false;\n    return true;\n  }\n\n  CodeMirror.defineOption(\"continueComments\", null, function(cm, val, prev) {\n    if (prev && prev != CodeMirror.Init)\n      cm.removeKeyMap(\"continueComment\");\n    if (val) {\n      var key = \"Enter\";\n      if (typeof val == \"string\")\n        key = val;\n      else if (typeof val == \"object\" && val.key)\n        key = val.key;\n      var map = {name: \"continueComment\"};\n      map[key] = continueComment;\n      cm.addKeyMap(map);\n    }\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/dialog/dialog.css",
    "content": ".CodeMirror-dialog {\n  position: absolute;\n  left: 0; right: 0;\n  background: inherit;\n  z-index: 15;\n  padding: .1em .8em;\n  overflow: hidden;\n  color: inherit;\n}\n\n.CodeMirror-dialog-top {\n  border-bottom: 1px solid #eee;\n  top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n  border-top: 1px solid #eee;\n  bottom: 0;\n}\n\n.CodeMirror-dialog input {\n  border: none;\n  outline: none;\n  background: transparent;\n  width: 20em;\n  color: inherit;\n  font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n  font-size: 70%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/dialog/dialog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Open simple dialogs on top of an editor. Relies on dialog.css.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  function dialogDiv(cm, template, bottom) {\n    var wrap = cm.getWrapperElement();\n    var dialog;\n    dialog = wrap.appendChild(document.createElement(\"div\"));\n    if (bottom)\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-bottom\";\n    else\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-top\";\n\n    if (typeof template == \"string\") {\n      dialog.innerHTML = template;\n    } else { // Assuming it's a detached DOM element.\n      dialog.appendChild(template);\n    }\n    CodeMirror.addClass(wrap, 'dialog-opened');\n    return dialog;\n  }\n\n  function closeNotification(cm, newVal) {\n    if (cm.state.currentNotificationClose)\n      cm.state.currentNotificationClose();\n    cm.state.currentNotificationClose = newVal;\n  }\n\n  CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n    if (!options) options = {};\n\n    closeNotification(this, null);\n\n    var dialog = dialogDiv(this, template, options.bottom);\n    var closed = false, me = this;\n    function close(newVal) {\n      if (typeof newVal == 'string') {\n        inp.value = newVal;\n      } else {\n        if (closed) return;\n        closed = true;\n        CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n        dialog.parentNode.removeChild(dialog);\n        me.focus();\n\n        if (options.onClose) options.onClose(dialog);\n      }\n    }\n\n    var inp = dialog.getElementsByTagName(\"input\")[0], button;\n    if (inp) {\n      inp.focus();\n\n      if (options.value) {\n        inp.value = options.value;\n        if (options.selectValueOnOpen !== false) {\n          inp.select();\n        }\n      }\n\n      if (options.onInput)\n        CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n      if (options.onKeyUp)\n        CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n      CodeMirror.on(inp, \"keydown\", function(e) {\n        if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n        if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n          inp.blur();\n          CodeMirror.e_stop(e);\n          close();\n        }\n        if (e.keyCode == 13) callback(inp.value, e);\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(dialog, \"focusout\", function (evt) {\n        if (evt.relatedTarget !== null) close();\n      });\n    } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n      CodeMirror.on(button, \"click\", function() {\n        close();\n        me.focus();\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n      button.focus();\n    }\n    return close;\n  });\n\n  CodeMirror.defineExtension(\"openConfirm\", function(template, callbacks, options) {\n    closeNotification(this, null);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var buttons = dialog.getElementsByTagName(\"button\");\n    var closed = false, me = this, blurring = 1;\n    function close() {\n      if (closed) return;\n      closed = true;\n      CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n      dialog.parentNode.removeChild(dialog);\n      me.focus();\n    }\n    buttons[0].focus();\n    for (var i = 0; i < buttons.length; ++i) {\n      var b = buttons[i];\n      (function(callback) {\n        CodeMirror.on(b, \"click\", function(e) {\n          CodeMirror.e_preventDefault(e);\n          close();\n          if (callback) callback(me);\n        });\n      })(callbacks[i]);\n      CodeMirror.on(b, \"blur\", function() {\n        --blurring;\n        setTimeout(function() { if (blurring <= 0) close(); }, 200);\n      });\n      CodeMirror.on(b, \"focus\", function() { ++blurring; });\n    }\n  });\n\n  /*\n   * openNotification\n   * Opens a notification, that can be closed with an optional timer\n   * (default 5000ms timer) and always closes on click.\n   *\n   * If a notification is opened while another is opened, it will close the\n   * currently opened one and open the new one immediately.\n   */\n  CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n    closeNotification(this, close);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var closed = false, doneTimer;\n    var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n    function close() {\n      if (closed) return;\n      closed = true;\n      clearTimeout(doneTimer);\n      CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n      dialog.parentNode.removeChild(dialog);\n    }\n\n    CodeMirror.on(dialog, 'click', function(e) {\n      CodeMirror.e_preventDefault(e);\n      close();\n    });\n\n    if (duration)\n      doneTimer = setTimeout(close, duration);\n\n    return close;\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/autorefresh.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod)\n  else // Plain browser env\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n\n  CodeMirror.defineOption(\"autoRefresh\", false, function(cm, val) {\n    if (cm.state.autoRefresh) {\n      stopListening(cm, cm.state.autoRefresh)\n      cm.state.autoRefresh = null\n    }\n    if (val && cm.display.wrapper.offsetHeight == 0)\n      startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})\n  })\n\n  function startListening(cm, state) {\n    function check() {\n      if (cm.display.wrapper.offsetHeight) {\n        stopListening(cm, state)\n        if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)\n          cm.refresh()\n      } else {\n        state.timeout = setTimeout(check, state.delay)\n      }\n    }\n    state.timeout = setTimeout(check, state.delay)\n    state.hurry = function() {\n      clearTimeout(state.timeout)\n      state.timeout = setTimeout(check, 50)\n    }\n    CodeMirror.on(window, \"mouseup\", state.hurry)\n    CodeMirror.on(window, \"keyup\", state.hurry)\n  }\n\n  function stopListening(_cm, state) {\n    clearTimeout(state.timeout)\n    CodeMirror.off(window, \"mouseup\", state.hurry)\n    CodeMirror.off(window, \"keyup\", state.hurry)\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/fullscreen.css",
    "content": ".CodeMirror-fullscreen {\n  position: fixed;\n  top: 0; left: 0; right: 0; bottom: 0;\n  height: auto;\n  z-index: 9;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/fullscreen.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"fullScreen\", false, function(cm, val, old) {\n    if (old == CodeMirror.Init) old = false;\n    if (!old == !val) return;\n    if (val) setFullscreen(cm);\n    else setNormal(cm);\n  });\n\n  function setFullscreen(cm) {\n    var wrap = cm.getWrapperElement();\n    cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,\n                                  width: wrap.style.width, height: wrap.style.height};\n    wrap.style.width = \"\";\n    wrap.style.height = \"auto\";\n    wrap.className += \" CodeMirror-fullscreen\";\n    document.documentElement.style.overflow = \"hidden\";\n    cm.refresh();\n  }\n\n  function setNormal(cm) {\n    var wrap = cm.getWrapperElement();\n    wrap.className = wrap.className.replace(/\\s*CodeMirror-fullscreen\\b/, \"\");\n    document.documentElement.style.overflow = \"\";\n    var info = cm.state.fullScreenRestore;\n    wrap.style.width = info.width; wrap.style.height = info.height;\n    window.scrollTo(info.scrollLeft, info.scrollTop);\n    cm.refresh();\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/panel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function (CodeMirror) {\n  CodeMirror.defineExtension(\"addPanel\", function (node, options) {\n    options = options || {};\n\n    if (!this.state.panels) initPanels(this);\n\n    var info = this.state.panels;\n    var wrapper = info.wrapper;\n    var cmWrapper = this.getWrapperElement();\n    var replace = options.replace instanceof Panel && !options.replace.cleared;\n\n    if (options.after instanceof Panel && !options.after.cleared) {\n      wrapper.insertBefore(node, options.before.node.nextSibling);\n    } else if (options.before instanceof Panel && !options.before.cleared) {\n      wrapper.insertBefore(node, options.before.node);\n    } else if (replace) {\n      wrapper.insertBefore(node, options.replace.node);\n      options.replace.clear(true);\n    } else if (options.position == \"bottom\") {\n      wrapper.appendChild(node);\n    } else if (options.position == \"before-bottom\") {\n      wrapper.insertBefore(node, cmWrapper.nextSibling);\n    } else if (options.position == \"after-top\") {\n      wrapper.insertBefore(node, cmWrapper);\n    } else {\n      wrapper.insertBefore(node, wrapper.firstChild);\n    }\n\n    var height = (options && options.height) || node.offsetHeight;\n\n    var panel = new Panel(this, node, options, height);\n    info.panels.push(panel);\n\n    this.setSize();\n    if (options.stable && isAtTop(this, node))\n      this.scrollTo(null, this.getScrollInfo().top + height);\n\n    return panel;\n  });\n\n  function Panel(cm, node, options, height) {\n    this.cm = cm;\n    this.node = node;\n    this.options = options;\n    this.height = height;\n    this.cleared = false;\n  }\n\n  /* when skipRemove is true, clear() was called from addPanel().\n   * Thus removePanels() should not be called (issue 5518) */\n  Panel.prototype.clear = function (skipRemove) {\n    if (this.cleared) return;\n    this.cleared = true;\n    var info = this.cm.state.panels;\n    info.panels.splice(info.panels.indexOf(this), 1);\n    this.cm.setSize();\n    if (this.options.stable && isAtTop(this.cm, this.node))\n      this.cm.scrollTo(null, this.cm.getScrollInfo().top - this.height)\n    info.wrapper.removeChild(this.node);\n    if (info.panels.length == 0 && !skipRemove) removePanels(this.cm);\n  };\n\n  Panel.prototype.changed = function () {\n    this.height = this.node.getBoundingClientRect().height;\n    this.cm.setSize();\n  };\n\n  function initPanels(cm) {\n    var wrap = cm.getWrapperElement()\n    var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;\n    var height = parseInt(style.height);\n    var info = cm.state.panels = {\n      setHeight: wrap.style.height,\n      panels: [],\n      wrapper: document.createElement(\"div\")\n    };\n    var hasFocus = cm.hasFocus(), scrollPos = cm.getScrollInfo()\n    wrap.parentNode.insertBefore(info.wrapper, wrap);\n    info.wrapper.appendChild(wrap);\n    cm.scrollTo(scrollPos.left, scrollPos.top)\n    if (hasFocus) cm.focus();\n\n    cm._setSize = cm.setSize;\n    if (height != null) cm.setSize = function (width, newHeight) {\n      if (!newHeight) newHeight = info.wrapper.offsetHeight;\n      info.setHeight = newHeight;\n      if (typeof newHeight != \"number\") {\n        var px = /^(\\d+\\.?\\d*)px$/.exec(newHeight);\n        if (px) {\n          newHeight = Number(px[1]);\n        } else {\n          info.wrapper.style.height = newHeight;\n          newHeight = info.wrapper.offsetHeight;\n        }\n      }\n      var editorheight = newHeight - info.panels\n        .map(function (p) { return p.node.getBoundingClientRect().height; })\n        .reduce(function (a, b) { return a + b; }, 0);\n      cm._setSize(width, editorheight);\n      height = newHeight;\n    };\n  }\n\n  function removePanels(cm) {\n    var info = cm.state.panels;\n    cm.state.panels = null;\n\n    var wrap = cm.getWrapperElement()\n    var hasFocus = cm.hasFocus(), scrollPos = cm.getScrollInfo()\n    info.wrapper.parentNode.replaceChild(wrap, info.wrapper);\n    cm.scrollTo(scrollPos.left, scrollPos.top)\n    if (hasFocus) cm.focus();\n    wrap.style.height = info.setHeight;\n    cm.setSize = cm._setSize;\n    cm.setSize();\n  }\n\n  function isAtTop(cm, dom) {\n    for (var sibling = dom.nextSibling; sibling; sibling = sibling.nextSibling)\n      if (sibling == cm.getWrapperElement()) return true\n    return false\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/placeholder.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"placeholder\", \"\", function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.on(\"blur\", onBlur);\n      cm.on(\"change\", onChange);\n      cm.on(\"swapDoc\", onChange);\n      CodeMirror.on(cm.getInputField(), \"compositionupdate\", cm.state.placeholderCompose = function() { onComposition(cm) })\n      onChange(cm);\n    } else if (!val && prev) {\n      cm.off(\"blur\", onBlur);\n      cm.off(\"change\", onChange);\n      cm.off(\"swapDoc\", onChange);\n      CodeMirror.off(cm.getInputField(), \"compositionupdate\", cm.state.placeholderCompose)\n      clearPlaceholder(cm);\n      var wrapper = cm.getWrapperElement();\n      wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\");\n    }\n\n    if (val && !cm.hasFocus()) onBlur(cm);\n  });\n\n  function clearPlaceholder(cm) {\n    if (cm.state.placeholder) {\n      cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);\n      cm.state.placeholder = null;\n    }\n  }\n  function setPlaceholder(cm) {\n    clearPlaceholder(cm);\n    var elt = cm.state.placeholder = document.createElement(\"pre\");\n    elt.style.cssText = \"height: 0; overflow: visible\";\n    elt.style.direction = cm.getOption(\"direction\");\n    elt.className = \"CodeMirror-placeholder CodeMirror-line-like\";\n    var placeHolder = cm.getOption(\"placeholder\")\n    if (typeof placeHolder == \"string\") placeHolder = document.createTextNode(placeHolder)\n    elt.appendChild(placeHolder)\n    cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);\n  }\n\n  function onComposition(cm) {\n    setTimeout(function() {\n      var empty = false\n      if (cm.lineCount() == 1) {\n        var input = cm.getInputField()\n        empty = input.nodeName == \"TEXTAREA\" ? !cm.getLine(0).length\n          : !/[^\\u200b]/.test(input.querySelector(\".CodeMirror-line\").textContent)\n      }\n      if (empty) setPlaceholder(cm)\n      else clearPlaceholder(cm)\n    }, 20)\n  }\n\n  function onBlur(cm) {\n    if (isEmpty(cm)) setPlaceholder(cm);\n  }\n  function onChange(cm) {\n    var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);\n    wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\") + (empty ? \" CodeMirror-empty\" : \"\");\n\n    if (empty) setPlaceholder(cm);\n    else clearPlaceholder(cm);\n  }\n\n  function isEmpty(cm) {\n    return (cm.lineCount() === 1) && (cm.getLine(0) === \"\");\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/display/rulers.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"rulers\", false, function(cm, val) {\n    if (cm.state.rulerDiv) {\n      cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)\n      cm.state.rulerDiv = null\n      cm.off(\"refresh\", drawRulers)\n    }\n    if (val && val.length) {\n      cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement(\"div\"), cm.display.lineSpace)\n      cm.state.rulerDiv.className = \"CodeMirror-rulers\"\n      drawRulers(cm)\n      cm.on(\"refresh\", drawRulers)\n    }\n  });\n\n  function drawRulers(cm) {\n    cm.state.rulerDiv.textContent = \"\"\n    var val = cm.getOption(\"rulers\");\n    var cw = cm.defaultCharWidth();\n    var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), \"div\").left;\n    cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + \"px\";\n    for (var i = 0; i < val.length; i++) {\n      var elt = document.createElement(\"div\");\n      elt.className = \"CodeMirror-ruler\";\n      var col, conf = val[i];\n      if (typeof conf == \"number\") {\n        col = conf;\n      } else {\n        col = conf.column;\n        if (conf.className) elt.className += \" \" + conf.className;\n        if (conf.color) elt.style.borderColor = conf.color;\n        if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;\n        if (conf.width) elt.style.borderLeftWidth = conf.width;\n      }\n      elt.style.left = (left + col * cw) + \"px\";\n      cm.state.rulerDiv.appendChild(elt)\n    }\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/closebrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var defaults = {\n    pairs: \"()[]{}''\\\"\\\"\",\n    closeBefore: \")]}'\\\":;>\",\n    triples: \"\",\n    explode: \"[]{}\"\n  };\n\n  var Pos = CodeMirror.Pos;\n\n  CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.removeKeyMap(keyMap);\n      cm.state.closeBrackets = null;\n    }\n    if (val) {\n      ensureBound(getOption(val, \"pairs\"))\n      cm.state.closeBrackets = val;\n      cm.addKeyMap(keyMap);\n    }\n  });\n\n  function getOption(conf, name) {\n    if (name == \"pairs\" && typeof conf == \"string\") return conf;\n    if (typeof conf == \"object\" && conf[name] != null) return conf[name];\n    return defaults[name];\n  }\n\n  var keyMap = {Backspace: handleBackspace, Enter: handleEnter};\n  function ensureBound(chars) {\n    for (var i = 0; i < chars.length; i++) {\n      var ch = chars.charAt(i), key = \"'\" + ch + \"'\"\n      if (!keyMap[key]) keyMap[key] = handler(ch)\n    }\n  }\n  ensureBound(defaults.pairs + \"`\")\n\n  function handler(ch) {\n    return function(cm) { return handleChar(cm, ch); };\n  }\n\n  function getConfig(cm) {\n    var deflt = cm.state.closeBrackets;\n    if (!deflt || deflt.override) return deflt;\n    var mode = cm.getModeAt(cm.getCursor());\n    return mode.closeBrackets || deflt;\n  }\n\n  function handleBackspace(cm) {\n    var conf = getConfig(cm);\n    if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n    var pairs = getOption(conf, \"pairs\");\n    var ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var around = charsAround(cm, ranges[i].head);\n      if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n    }\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var cur = ranges[i].head;\n      cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), \"+delete\");\n    }\n  }\n\n  function handleEnter(cm) {\n    var conf = getConfig(cm);\n    var explode = conf && getOption(conf, \"explode\");\n    if (!explode || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n    var ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var around = charsAround(cm, ranges[i].head);\n      if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n    }\n    cm.operation(function() {\n      var linesep = cm.lineSeparator() || \"\\n\";\n      cm.replaceSelection(linesep + linesep, null);\n      moveSel(cm, -1)\n      ranges = cm.listSelections();\n      for (var i = 0; i < ranges.length; i++) {\n        var line = ranges[i].head.line;\n        cm.indentLine(line, null, true);\n        cm.indentLine(line + 1, null, true);\n      }\n    });\n  }\n\n  function moveSel(cm, dir) {\n    var newRanges = [], ranges = cm.listSelections(), primary = 0\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i]\n      if (range.head == cm.getCursor()) primary = i\n      var pos = range.head.ch || dir > 0 ? {line: range.head.line, ch: range.head.ch + dir} : {line: range.head.line - 1}\n      newRanges.push({anchor: pos, head: pos})\n    }\n    cm.setSelections(newRanges, primary)\n  }\n\n  function contractSelection(sel) {\n    var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;\n    return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),\n            head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};\n  }\n\n  function handleChar(cm, ch) {\n    var conf = getConfig(cm);\n    if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n    var pairs = getOption(conf, \"pairs\");\n    var pos = pairs.indexOf(ch);\n    if (pos == -1) return CodeMirror.Pass;\n\n    var closeBefore = getOption(conf,\"closeBefore\");\n\n    var triples = getOption(conf, \"triples\");\n\n    var identical = pairs.charAt(pos + 1) == ch;\n    var ranges = cm.listSelections();\n    var opening = pos % 2 == 0;\n\n    var type;\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i], cur = range.head, curType;\n      var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n      if (opening && !range.empty()) {\n        curType = \"surround\";\n      } else if ((identical || !opening) && next == ch) {\n        if (identical && stringStartsAfter(cm, cur))\n          curType = \"both\";\n        else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)\n          curType = \"skipThree\";\n        else\n          curType = \"skip\";\n      } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&\n                 cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {\n        if (cur.ch > 2 && /\\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;\n        curType = \"addFour\";\n      } else if (identical) {\n        var prev = cur.ch == 0 ? \" \" : cm.getRange(Pos(cur.line, cur.ch - 1), cur)\n        if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = \"both\";\n        else return CodeMirror.Pass;\n      } else if (opening && (next.length === 0 || /\\s/.test(next) || closeBefore.indexOf(next) > -1)) {\n        curType = \"both\";\n      } else {\n        return CodeMirror.Pass;\n      }\n      if (!type) type = curType;\n      else if (type != curType) return CodeMirror.Pass;\n    }\n\n    var left = pos % 2 ? pairs.charAt(pos - 1) : ch;\n    var right = pos % 2 ? ch : pairs.charAt(pos + 1);\n    cm.operation(function() {\n      if (type == \"skip\") {\n        moveSel(cm, 1)\n      } else if (type == \"skipThree\") {\n        moveSel(cm, 3)\n      } else if (type == \"surround\") {\n        var sels = cm.getSelections();\n        for (var i = 0; i < sels.length; i++)\n          sels[i] = left + sels[i] + right;\n        cm.replaceSelections(sels, \"around\");\n        sels = cm.listSelections().slice();\n        for (var i = 0; i < sels.length; i++)\n          sels[i] = contractSelection(sels[i]);\n        cm.setSelections(sels);\n      } else if (type == \"both\") {\n        cm.replaceSelection(left + right, null);\n        cm.triggerElectric(left + right);\n        moveSel(cm, -1)\n      } else if (type == \"addFour\") {\n        cm.replaceSelection(left + left + left + left, \"before\");\n        moveSel(cm, 1)\n      }\n    });\n  }\n\n  function charsAround(cm, pos) {\n    var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n                          Pos(pos.line, pos.ch + 1));\n    return str.length == 2 ? str : null;\n  }\n\n  function stringStartsAfter(cm, pos) {\n    var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))\n    return /\\bstring/.test(token.type) && token.start == pos.ch &&\n      (pos.ch == 0 || !/\\bstring/.test(cm.getTokenTypeAt(pos)))\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/closetag.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Tag-closer extension for CodeMirror.\n *\n * This extension adds an \"autoCloseTags\" option that can be set to\n * either true to get the default behavior, or an object to further\n * configure its behavior.\n *\n * These are supported options:\n *\n * `whenClosing` (default true)\n *   Whether to autoclose when the '/' of a closing tag is typed.\n * `whenOpening` (default true)\n *   Whether to autoclose the tag when the final '>' of an opening\n *   tag is typed.\n * `dontCloseTags` (default is empty tags for HTML, none for XML)\n *   An array of tag names that should not be autoclosed.\n * `indentTags` (default is block tags for HTML, none for XML)\n *   An array of tag names that should, when opened, cause a\n *   blank line to be added inside the tag, and the blank line and\n *   closing line to be indented.\n * `emptyTags` (default is none)\n *   An array of XML tag names that should be autoclosed with '/>'.\n *\n * See demos/closetag.html for a usage example.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"autoCloseTags\", false, function(cm, val, old) {\n    if (old != CodeMirror.Init && old)\n      cm.removeKeyMap(\"autoCloseTags\");\n    if (!val) return;\n    var map = {name: \"autoCloseTags\"};\n    if (typeof val != \"object\" || val.whenClosing !== false)\n      map[\"'/'\"] = function(cm) { return autoCloseSlash(cm); };\n    if (typeof val != \"object\" || val.whenOpening !== false)\n      map[\"'>'\"] = function(cm) { return autoCloseGT(cm); };\n    cm.addKeyMap(map);\n  });\n\n  var htmlDontClose = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\",\n                       \"source\", \"track\", \"wbr\"];\n  var htmlIndent = [\"applet\", \"blockquote\", \"body\", \"button\", \"div\", \"dl\", \"fieldset\", \"form\", \"frameset\", \"h1\", \"h2\", \"h3\", \"h4\",\n                    \"h5\", \"h6\", \"head\", \"html\", \"iframe\", \"layer\", \"legend\", \"object\", \"ol\", \"p\", \"select\", \"table\", \"ul\"];\n\n  function autoCloseGT(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    var opt = cm.getOption(\"autoCloseTags\");\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      var tagInfo = inner.mode.xmlCurrentTag && inner.mode.xmlCurrentTag(state)\n      var tagName = tagInfo && tagInfo.name\n      if (!tagName) return CodeMirror.Pass\n\n      var html = inner.mode.configuration == \"html\";\n      var dontCloseTags = (typeof opt == \"object\" && opt.dontCloseTags) || (html && htmlDontClose);\n      var indentTags = (typeof opt == \"object\" && opt.indentTags) || (html && htmlIndent);\n\n      if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);\n      var lowerTagName = tagName.toLowerCase();\n      // Don't process the '>' at the end of an end-tag or self-closing tag\n      if (!tagName ||\n          tok.type == \"string\" && (tok.end != pos.ch || !/[\\\"\\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||\n          tok.type == \"tag\" && tagInfo.close ||\n          tok.string.indexOf(\"/\") == (pos.ch - tok.start - 1) || // match something like <someTagName />\n          dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||\n          closingTagExists(cm, inner.mode.xmlCurrentContext && inner.mode.xmlCurrentContext(state) || [], tagName, pos, true))\n        return CodeMirror.Pass;\n\n      var emptyTags = typeof opt == \"object\" && opt.emptyTags;\n      if (emptyTags && indexOf(emptyTags, tagName) > -1) {\n        replacements[i] = { text: \"/>\", newPos: CodeMirror.Pos(pos.line, pos.ch + 2) };\n        continue;\n      }\n\n      var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;\n      replacements[i] = {indent: indent,\n                         text: \">\" + (indent ? \"\\n\\n\" : \"\") + \"</\" + tagName + \">\",\n                         newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};\n    }\n\n    var dontIndentOnAutoClose = (typeof opt == \"object\" && opt.dontIndentOnAutoClose);\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var info = replacements[i];\n      cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, \"+insert\");\n      var sel = cm.listSelections().slice(0);\n      sel[i] = {head: info.newPos, anchor: info.newPos};\n      cm.setSelections(sel);\n      if (!dontIndentOnAutoClose && info.indent) {\n        cm.indentLine(info.newPos.line, null, true);\n        cm.indentLine(info.newPos.line + 1, null, true);\n      }\n    }\n  }\n\n  function autoCloseCurrent(cm, typingSlash) {\n    var ranges = cm.listSelections(), replacements = [];\n    var head = typingSlash ? \"/\" : \"</\";\n    var opt = cm.getOption(\"autoCloseTags\");\n    var dontIndentOnAutoClose = (typeof opt == \"object\" && opt.dontIndentOnSlash);\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      if (typingSlash && (tok.type == \"string\" || tok.string.charAt(0) != \"<\" ||\n                          tok.start != pos.ch - 1))\n        return CodeMirror.Pass;\n      // Kludge to get around the fact that we are not in XML mode\n      // when completing in JS/CSS snippet in htmlmixed mode. Does not\n      // work for other XML embedded languages (there is no general\n      // way to go from a mixed mode to its current XML state).\n      var replacement, mixed = inner.mode.name != \"xml\" && cm.getMode().name == \"htmlmixed\"\n      if (mixed && inner.mode.name == \"javascript\") {\n        replacement = head + \"script\";\n      } else if (mixed && inner.mode.name == \"css\") {\n        replacement = head + \"style\";\n      } else {\n        var context = inner.mode.xmlCurrentContext && inner.mode.xmlCurrentContext(state)\n        var top = context.length ? context[context.length - 1] : \"\"\n        if (!context || (context.length && closingTagExists(cm, context, top, pos)))\n          return CodeMirror.Pass;\n        replacement = head + top\n      }\n      if (cm.getLine(pos.line).charAt(tok.end) != \">\") replacement += \">\";\n      replacements[i] = replacement;\n    }\n    cm.replaceSelections(replacements);\n    ranges = cm.listSelections();\n    if (!dontIndentOnAutoClose) {\n        for (var i = 0; i < ranges.length; i++)\n            if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)\n                cm.indentLine(ranges[i].head.line);\n    }\n  }\n\n  function autoCloseSlash(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    return autoCloseCurrent(cm, true);\n  }\n\n  CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };\n\n  function indexOf(collection, elt) {\n    if (collection.indexOf) return collection.indexOf(elt);\n    for (var i = 0, e = collection.length; i < e; ++i)\n      if (collection[i] == elt) return i;\n    return -1;\n  }\n\n  // If xml-fold is loaded, we use its functionality to try and verify\n  // whether a given tag is actually unclosed.\n  function closingTagExists(cm, context, tagName, pos, newTag) {\n    if (!CodeMirror.scanForClosingTag) return false;\n    var end = Math.min(cm.lastLine() + 1, pos.line + 500);\n    var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);\n    if (!nextClose || nextClose.tag != tagName) return false;\n    // If the immediate wrapping context contains onCx instances of\n    // the same tag, a closing tag only exists if there are at least\n    // that many closing tags of that type following.\n    var onCx = newTag ? 1 : 0\n    for (var i = context.length - 1; i >= 0; i--) {\n      if (context[i] == tagName) ++onCx\n      else break\n    }\n    pos = nextClose.to;\n    for (var i = 1; i < onCx; i++) {\n      var next = CodeMirror.scanForClosingTag(cm, pos, null, end);\n      if (!next || next.tag != tagName) return false;\n      pos = next.to;\n    }\n    return true;\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/continuelist.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var listRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]\\s|[*+-]\\s|(\\d+)([.)]))(\\s*)/,\n      emptyListRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]|[*+-]|(\\d+)[.)])(\\s*)$/,\n      unorderedListRE = /[*+-]\\s/;\n\n  CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head;\n\n      // If we're not in Markdown mode, fall back to normal newlineAndIndent\n      var eolState = cm.getStateAfter(pos.line);\n      var inner = CodeMirror.innerMode(cm.getMode(), eolState);\n      if (inner.mode.name !== \"markdown\") {\n        cm.execCommand(\"newlineAndIndent\");\n        return;\n      } else {\n        eolState = inner.state;\n      }\n\n      var inList = eolState.list !== false;\n      var inQuote = eolState.quote !== 0;\n\n      var line = cm.getLine(pos.line), match = listRE.exec(line);\n      var cursorBeforeBullet = /^\\s*$/.test(line.slice(0, pos.ch));\n      if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) {\n        cm.execCommand(\"newlineAndIndent\");\n        return;\n      }\n      if (emptyListRE.test(line)) {\n        var endOfQuote = inQuote && />\\s*$/.test(line)\n        var endOfList = !/>\\s*$/.test(line)\n        if (endOfQuote || endOfList) cm.replaceRange(\"\", {\n          line: pos.line, ch: 0\n        }, {\n          line: pos.line, ch: pos.ch + 1\n        });\n        replacements[i] = \"\\n\";\n      } else {\n        var indent = match[1], after = match[5];\n        var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(\">\") >= 0);\n        var bullet = numbered ? (parseInt(match[3], 10) + 1) + match[4] : match[2].replace(\"x\", \" \");\n        replacements[i] = \"\\n\" + indent + bullet + after;\n\n        if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);\n      }\n    }\n\n    cm.replaceSelections(replacements);\n  };\n\n  // Auto-updating Markdown list numbers when a new item is added to the\n  // middle of a list\n  function incrementRemainingMarkdownListNumbers(cm, pos) {\n    var startLine = pos.line, lookAhead = 0, skipCount = 0;\n    var startItem = listRE.exec(cm.getLine(startLine)), startIndent = startItem[1];\n\n    do {\n      lookAhead += 1;\n      var nextLineNumber = startLine + lookAhead;\n      var nextLine = cm.getLine(nextLineNumber), nextItem = listRE.exec(nextLine);\n\n      if (nextItem) {\n        var nextIndent = nextItem[1];\n        var newNumber = (parseInt(startItem[3], 10) + lookAhead - skipCount);\n        var nextNumber = (parseInt(nextItem[3], 10)), itemNumber = nextNumber;\n\n        if (startIndent === nextIndent && !isNaN(nextNumber)) {\n          if (newNumber === nextNumber) itemNumber = nextNumber + 1;\n          if (newNumber > nextNumber) itemNumber = newNumber + 1;\n          cm.replaceRange(\n            nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),\n          {\n            line: nextLineNumber, ch: 0\n          }, {\n            line: nextLineNumber, ch: nextLine.length\n          });\n        } else {\n          if (startIndent.length > nextIndent.length) return;\n          // This doesn't run if the next line immediately indents, as it is\n          // not clear of the users intention (new indented item or same level)\n          if ((startIndent.length < nextIndent.length) && (lookAhead === 1)) return;\n          skipCount += 1;\n        }\n      }\n    } while (nextItem);\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/matchbrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n    (document.documentMode == null || document.documentMode < 8);\n\n  var Pos = CodeMirror.Pos;\n\n  var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\", \"<\": \">>\", \">\": \"<<\"};\n\n  function bracketRegex(config) {\n    return config && config.bracketRegex || /[(){}[\\]]/\n  }\n\n  function findMatchingBracket(cm, where, config) {\n    var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n    var afterCursor = config && config.afterCursor\n    if (afterCursor == null)\n      afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)\n    var re = bracketRegex(config)\n\n    // A cursor is defined as between two characters, but in in vim command mode\n    // (i.e. not insert mode), the cursor is visually represented as a\n    // highlighted box on top of the 2nd character. Otherwise, we allow matches\n    // from before or after the cursor.\n    var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) ||\n        re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)];\n    if (!match) return null;\n    var dir = match.charAt(1) == \">\" ? 1 : -1;\n    if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;\n    var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n    var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config);\n    if (found == null) return null;\n    return {from: Pos(where.line, pos), to: found && found.pos,\n            match: found && found.ch == match.charAt(0), forward: dir > 0};\n  }\n\n  // bracketRegex is used to specify which type of bracket to scan\n  // should be a regexp, e.g. /[[\\]]/\n  //\n  // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n  //\n  // Returns false when no bracket was found, null when it reached\n  // maxScanLines and gave up\n  function scanForBracket(cm, where, dir, style, config) {\n    var maxScanLen = (config && config.maxScanLineLength) || 10000;\n    var maxScanLines = (config && config.maxScanLines) || 1000;\n\n    var stack = [];\n    var re = bracketRegex(config)\n    var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n                          : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n    for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n      var line = cm.getLine(lineNo);\n      if (!line) continue;\n      var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n      if (line.length > maxScanLen) continue;\n      if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n      for (; pos != end; pos += dir) {\n        var ch = line.charAt(pos);\n        if (re.test(ch) && (style === undefined ||\n                            (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || \"\") == (style || \"\"))) {\n          var match = matching[ch];\n          if (match && (match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n          else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n          else stack.pop();\n        }\n      }\n    }\n    return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n  }\n\n  function matchBrackets(cm, autoclear, config) {\n    // Disable brace matching in long lines, since it'll cause hugely slow updates\n    var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000,\n      highlightNonMatching = config && config.highlightNonMatching;\n    var marks = [], ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++) {\n      var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);\n      if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) {\n        var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n        marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n        if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n          marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n      }\n    }\n\n    if (marks.length) {\n      // Kludge to work around the IE bug from issue #1193, where text\n      // input stops going to the textarea whenever this fires.\n      if (ie_lt8 && cm.state.focused) cm.focus();\n\n      var clear = function() {\n        cm.operation(function() {\n          for (var i = 0; i < marks.length; i++) marks[i].clear();\n        });\n      };\n      if (autoclear) setTimeout(clear, 800);\n      else return clear;\n    }\n  }\n\n  function doMatchBrackets(cm) {\n    cm.operation(function() {\n      if (cm.state.matchBrackets.currentlyHighlighted) {\n        cm.state.matchBrackets.currentlyHighlighted();\n        cm.state.matchBrackets.currentlyHighlighted = null;\n      }\n      cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n    });\n  }\n\n  function clearHighlighted(cm) {\n    if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {\n      cm.state.matchBrackets.currentlyHighlighted();\n      cm.state.matchBrackets.currentlyHighlighted = null;\n    }\n  }\n\n  CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"cursorActivity\", doMatchBrackets);\n      cm.off(\"focus\", doMatchBrackets)\n      cm.off(\"blur\", clearHighlighted)\n      clearHighlighted(cm);\n    }\n    if (val) {\n      cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n      cm.on(\"cursorActivity\", doMatchBrackets);\n      cm.on(\"focus\", doMatchBrackets)\n      cm.on(\"blur\", clearHighlighted)\n    }\n  });\n\n  CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n  CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, config, oldConfig){\n    // Backwards-compatibility kludge\n    if (oldConfig || typeof config == \"boolean\") {\n      if (!oldConfig) {\n        config = config ? {strict: true} : null\n      } else {\n        oldConfig.strict = config\n        config = oldConfig\n      }\n    }\n    return findMatchingBracket(this, pos, config)\n  });\n  CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n    return scanForBracket(this, pos, dir, style, config);\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/matchtags.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"matchTags\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"cursorActivity\", doMatchTags);\n      cm.off(\"viewportChange\", maybeUpdateMatch);\n      clear(cm);\n    }\n    if (val) {\n      cm.state.matchBothTags = typeof val == \"object\" && val.bothTags;\n      cm.on(\"cursorActivity\", doMatchTags);\n      cm.on(\"viewportChange\", maybeUpdateMatch);\n      doMatchTags(cm);\n    }\n  });\n\n  function clear(cm) {\n    if (cm.state.tagHit) cm.state.tagHit.clear();\n    if (cm.state.tagOther) cm.state.tagOther.clear();\n    cm.state.tagHit = cm.state.tagOther = null;\n  }\n\n  function doMatchTags(cm) {\n    cm.state.failedTagMatch = false;\n    cm.operation(function() {\n      clear(cm);\n      if (cm.somethingSelected()) return;\n      var cur = cm.getCursor(), range = cm.getViewport();\n      range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);\n      var match = CodeMirror.findMatchingTag(cm, cur, range);\n      if (!match) return;\n      if (cm.state.matchBothTags) {\n        var hit = match.at == \"open\" ? match.open : match.close;\n        if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: \"CodeMirror-matchingtag\"});\n      }\n      var other = match.at == \"close\" ? match.open : match.close;\n      if (other)\n        cm.state.tagOther = cm.markText(other.from, other.to, {className: \"CodeMirror-matchingtag\"});\n      else\n        cm.state.failedTagMatch = true;\n    });\n  }\n\n  function maybeUpdateMatch(cm) {\n    if (cm.state.failedTagMatch) doMatchTags(cm);\n  }\n\n  CodeMirror.commands.toMatchingTag = function(cm) {\n    var found = CodeMirror.findMatchingTag(cm, cm.getCursor());\n    if (found) {\n      var other = found.at == \"close\" ? found.open : found.close;\n      if (other) cm.extendSelection(other.to, other.from);\n    }\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/edit/trailingspace.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"showTrailingSpace\", false, function(cm, val, prev) {\n    if (prev == CodeMirror.Init) prev = false;\n    if (prev && !val)\n      cm.removeOverlay(\"trailingspace\");\n    else if (!prev && val)\n      cm.addOverlay({\n        token: function(stream) {\n          for (var l = stream.string.length, i = l; i && /\\s/.test(stream.string.charAt(i - 1)); --i) {}\n          if (i > stream.pos) { stream.pos = i; return null; }\n          stream.pos = l;\n          return \"trailingspace\";\n        },\n        name: \"trailingspace\"\n      });\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/brace-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n  var line = start.line, lineText = cm.getLine(line);\n  var tokenType;\n\n  function findOpening(openCh) {\n    for (var at = start.ch, pass = 0;;) {\n      var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n      if (found == -1) {\n        if (pass == 1) break;\n        pass = 1;\n        at = lineText.length;\n        continue;\n      }\n      if (pass == 1 && found < start.ch) break;\n      tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n      if (!/^(comment|string)/.test(tokenType)) return found + 1;\n      at = found - 1;\n    }\n  }\n\n  var startBrace = findOpening(\"{\"), startBracket = findOpening(\"[\")\n  var startToken, endToken, startCh\n  if (startBrace != null && (startBracket == null || startBracket > startBrace)) {\n    startCh = startBrace; startToken = \"{\"; endToken = \"}\"\n  } else if (startBracket != null) {\n    startCh = startBracket; startToken = \"[\"; endToken = \"]\"\n  } else {\n    return\n  }\n\n  var count = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n        if (pos == nextOpen) ++count;\n        else if (!--count) { end = i; endCh = pos; break outer; }\n      }\n      ++pos;\n    }\n  }\n  if (end == null || line == end) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n  function hasImport(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type != \"keyword\" || start.string != \"import\") return null;\n    // Now find closing semicolon, return its position\n    for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n      var text = cm.getLine(i), semi = text.indexOf(\";\");\n      if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n    }\n  }\n\n  var startLine = start.line, has = hasImport(startLine), prev;\n  if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))\n    return null;\n  for (var end = has.end;;) {\n    var next = hasImport(end.line + 1);\n    if (next == null) break;\n    end = next.end;\n  }\n  return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n  function hasInclude(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n  }\n\n  var startLine = start.line, has = hasInclude(startLine);\n  if (has == null || hasInclude(startLine - 1) != null) return null;\n  for (var end = startLine;;) {\n    var next = hasInclude(end + 1);\n    if (next == null) break;\n    ++end;\n  }\n  return {from: CodeMirror.Pos(startLine, has + 1),\n          to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/comment-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerGlobalHelper(\"fold\", \"comment\", function(mode) {\n  return mode.blockCommentStart && mode.blockCommentEnd;\n}, function(cm, start) {\n  var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;\n  if (!startToken || !endToken) return;\n  var line = start.line, lineText = cm.getLine(line);\n\n  var startCh;\n  for (var at = start.ch, pass = 0;;) {\n    var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);\n    if (found == -1) {\n      if (pass == 1) return;\n      pass = 1;\n      at = lineText.length;\n      continue;\n    }\n    if (pass == 1 && found < start.ch) return;\n    if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&\n        (found == 0 || lineText.slice(found - endToken.length, found) == endToken ||\n         !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {\n      startCh = found + startToken.length;\n      break;\n    }\n    at = found - 1;\n  }\n\n  var depth = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (pos == nextOpen) ++depth;\n      else if (!--depth) { end = i; endCh = pos; break outer; }\n      ++pos;\n    }\n  }\n  if (end == null || line == end && endCh == startCh) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/foldcode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function doFold(cm, pos, options, force) {\n    if (options && options.call) {\n      var finder = options;\n      options = null;\n    } else {\n      var finder = getOption(cm, options, \"rangeFinder\");\n    }\n    if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n    var minSize = getOption(cm, options, \"minFoldSize\");\n\n    function getRange(allowFolded) {\n      var range = finder(cm, pos);\n      if (!range || range.to.line - range.from.line < minSize) return null;\n      var marks = cm.findMarksAt(range.from);\n      for (var i = 0; i < marks.length; ++i) {\n        if (marks[i].__isFold && force !== \"fold\") {\n          if (!allowFolded) return null;\n          range.cleared = true;\n          marks[i].clear();\n        }\n      }\n      return range;\n    }\n\n    var range = getRange(true);\n    if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n      pos = CodeMirror.Pos(pos.line - 1, 0);\n      range = getRange(false);\n    }\n    if (!range || range.cleared || force === \"unfold\") return;\n\n    var myWidget = makeWidget(cm, options, range);\n    CodeMirror.on(myWidget, \"mousedown\", function(e) {\n      myRange.clear();\n      CodeMirror.e_preventDefault(e);\n    });\n    var myRange = cm.markText(range.from, range.to, {\n      replacedWith: myWidget,\n      clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n      __isFold: true\n    });\n    myRange.on(\"clear\", function(from, to) {\n      CodeMirror.signal(cm, \"unfold\", cm, from, to);\n    });\n    CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n  }\n\n  function makeWidget(cm, options, range) {\n    var widget = getOption(cm, options, \"widget\");\n\n    if (typeof widget == \"function\") {\n      widget = widget(range.from, range.to);\n    }\n\n    if (typeof widget == \"string\") {\n      var text = document.createTextNode(widget);\n      widget = document.createElement(\"span\");\n      widget.appendChild(text);\n      widget.className = \"CodeMirror-foldmarker\";\n    } else if (widget) {\n      widget = widget.cloneNode(true)\n    }\n    return widget;\n  }\n\n  // Clumsy backwards-compatible interface\n  CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n    return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n  };\n\n  // New-style interface\n  CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n    doFold(this, pos, options, force);\n  });\n\n  CodeMirror.defineExtension(\"isFolded\", function(pos) {\n    var marks = this.findMarksAt(pos);\n    for (var i = 0; i < marks.length; ++i)\n      if (marks[i].__isFold) return true;\n  });\n\n  CodeMirror.commands.toggleFold = function(cm) {\n    cm.foldCode(cm.getCursor());\n  };\n  CodeMirror.commands.fold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"fold\");\n  };\n  CodeMirror.commands.unfold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"unfold\");\n  };\n  CodeMirror.commands.foldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"fold\");\n    });\n  };\n  CodeMirror.commands.unfoldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"unfold\");\n    });\n  };\n\n  CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n    var funcs = Array.prototype.slice.call(arguments, 0);\n    return function(cm, start) {\n      for (var i = 0; i < funcs.length; ++i) {\n        var found = funcs[i](cm, start);\n        if (found) return found;\n      }\n    };\n  });\n\n  CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n    var helpers = cm.getHelpers(start, \"fold\");\n    for (var i = 0; i < helpers.length; i++) {\n      var cur = helpers[i](cm, start);\n      if (cur) return cur;\n    }\n  });\n\n  var defaultOptions = {\n    rangeFinder: CodeMirror.fold.auto,\n    widget: \"\\u2194\",\n    minFoldSize: 0,\n    scanUp: false,\n    clearOnEnter: true\n  };\n\n  CodeMirror.defineOption(\"foldOptions\", null);\n\n  function getOption(cm, options, name) {\n    if (options && options[name] !== undefined)\n      return options[name];\n    var editorOptions = cm.options.foldOptions;\n    if (editorOptions && editorOptions[name] !== undefined)\n      return editorOptions[name];\n    return defaultOptions[name];\n  }\n\n  CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n    return getOption(this, options, name);\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/foldgutter.css",
    "content": ".CodeMirror-foldmarker {\n  color: blue;\n  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;\n  font-family: arial;\n  line-height: .3;\n  cursor: pointer;\n}\n.CodeMirror-foldgutter {\n  width: .7em;\n}\n.CodeMirror-foldgutter-open,\n.CodeMirror-foldgutter-folded {\n  cursor: pointer;\n}\n.CodeMirror-foldgutter-open:after {\n  content: \"\\25BE\";\n}\n.CodeMirror-foldgutter-folded:after {\n  content: \"\\25B8\";\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/foldgutter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.clearGutter(cm.state.foldGutter.options.gutter);\n      cm.state.foldGutter = null;\n      cm.off(\"gutterClick\", onGutterClick);\n      cm.off(\"changes\", onChange);\n      cm.off(\"viewportChange\", onViewportChange);\n      cm.off(\"fold\", onFold);\n      cm.off(\"unfold\", onFold);\n      cm.off(\"swapDoc\", onChange);\n    }\n    if (val) {\n      cm.state.foldGutter = new State(parseOptions(val));\n      updateInViewport(cm);\n      cm.on(\"gutterClick\", onGutterClick);\n      cm.on(\"changes\", onChange);\n      cm.on(\"viewportChange\", onViewportChange);\n      cm.on(\"fold\", onFold);\n      cm.on(\"unfold\", onFold);\n      cm.on(\"swapDoc\", onChange);\n    }\n  });\n\n  var Pos = CodeMirror.Pos;\n\n  function State(options) {\n    this.options = options;\n    this.from = this.to = 0;\n  }\n\n  function parseOptions(opts) {\n    if (opts === true) opts = {};\n    if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n    if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n    if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n    return opts;\n  }\n\n  function isFolded(cm, line) {\n    var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n    for (var i = 0; i < marks.length; ++i) {\n      if (marks[i].__isFold) {\n        var fromPos = marks[i].find(-1);\n        if (fromPos && fromPos.line === line)\n          return marks[i];\n      }\n    }\n  }\n\n  function marker(spec) {\n    if (typeof spec == \"string\") {\n      var elt = document.createElement(\"div\");\n      elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n      return elt;\n    } else {\n      return spec.cloneNode(true);\n    }\n  }\n\n  function updateFoldInfo(cm, from, to) {\n    var opts = cm.state.foldGutter.options, cur = from - 1;\n    var minSize = cm.foldOption(opts, \"minFoldSize\");\n    var func = cm.foldOption(opts, \"rangeFinder\");\n    // we can reuse the built-in indicator element if its className matches the new state\n    var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n    var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n    cm.eachLine(from, to, function(line) {\n      ++cur;\n      var mark = null;\n      var old = line.gutterMarkers;\n      if (old) old = old[opts.gutter];\n      if (isFolded(cm, cur)) {\n        if (clsFolded && old && clsFolded.test(old.className)) return;\n        mark = marker(opts.indicatorFolded);\n      } else {\n        var pos = Pos(cur, 0);\n        var range = func && func(cm, pos);\n        if (range && range.to.line - range.from.line >= minSize) {\n          if (clsOpen && old && clsOpen.test(old.className)) return;\n          mark = marker(opts.indicatorOpen);\n        }\n      }\n      if (!mark && !old) return;\n      cm.setGutterMarker(line, opts.gutter, mark);\n    });\n  }\n\n  // copied from CodeMirror/src/util/dom.js\n  function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n  function updateInViewport(cm) {\n    var vp = cm.getViewport(), state = cm.state.foldGutter;\n    if (!state) return;\n    cm.operation(function() {\n      updateFoldInfo(cm, vp.from, vp.to);\n    });\n    state.from = vp.from; state.to = vp.to;\n  }\n\n  function onGutterClick(cm, line, gutter) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    if (gutter != opts.gutter) return;\n    var folded = isFolded(cm, line);\n    if (folded) folded.clear();\n    else cm.foldCode(Pos(line, 0), opts);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    state.from = state.to = 0;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n  }\n\n  function onViewportChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() {\n      var vp = cm.getViewport();\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        updateInViewport(cm);\n      } else {\n        cm.operation(function() {\n          if (vp.from < state.from) {\n            updateFoldInfo(cm, vp.from, state.from);\n            state.from = vp.from;\n          }\n          if (vp.to > state.to) {\n            updateFoldInfo(cm, state.to, vp.to);\n            state.to = vp.to;\n          }\n        });\n      }\n    }, opts.updateViewportTimeSpan || 400);\n  }\n\n  function onFold(cm, from) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var line = from.line;\n    if (line >= state.from && line < state.to)\n      updateFoldInfo(cm, line, line + 1);\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/indent-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction lineIndent(cm, lineNo) {\n  var text = cm.getLine(lineNo)\n  var spaceTo = text.search(/\\S/)\n  if (spaceTo == -1 || /\\bcomment\\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))\n    return -1\n  return CodeMirror.countColumn(text, null, cm.getOption(\"tabSize\"))\n}\n\nCodeMirror.registerHelper(\"fold\", \"indent\", function(cm, start) {\n  var myIndent = lineIndent(cm, start.line)\n  if (myIndent < 0) return\n  var lastLineInFold = null\n\n  // Go through lines until we find a line that definitely doesn't belong in\n  // the block we're folding, or to the end.\n  for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {\n    var indent = lineIndent(cm, i)\n    if (indent == -1) {\n    } else if (indent > myIndent) {\n      // Lines with a greater indent are considered part of the block.\n      lastLineInFold = i;\n    } else {\n      // If this line has non-space, non-comment content, and is\n      // indented less or equal to the start line, it is the start of\n      // another block.\n      break;\n    }\n  }\n  if (lastLineInFold) return {\n    from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),\n    to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/markdown-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"markdown\", function(cm, start) {\n  var maxDepth = 100;\n\n  function isHeader(lineNo) {\n    var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));\n    return tokentype && /\\bheader\\b/.test(tokentype);\n  }\n\n  function headerLevel(lineNo, line, nextLine) {\n    var match = line && line.match(/^#+/);\n    if (match && isHeader(lineNo)) return match[0].length;\n    match = nextLine && nextLine.match(/^[=\\-]+\\s*$/);\n    if (match && isHeader(lineNo + 1)) return nextLine[0] == \"=\" ? 1 : 2;\n    return maxDepth;\n  }\n\n  var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);\n  var level = headerLevel(start.line, firstLine, nextLine);\n  if (level === maxDepth) return undefined;\n\n  var lastLineNo = cm.lastLine();\n  var end = start.line, nextNextLine = cm.getLine(end + 2);\n  while (end < lastLineNo) {\n    if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;\n    ++end;\n    nextLine = nextNextLine;\n    nextNextLine = cm.getLine(end + 2);\n  }\n\n  return {\n    from: CodeMirror.Pos(start.line, firstLine.length),\n    to: CodeMirror.Pos(end, cm.getLine(end).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/fold/xml-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n  function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }\n\n  var nameStartChar = \"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n  var nameChar = nameStartChar + \"\\-\\:\\.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n  var xmlTagStart = new RegExp(\"<(/?)([\" + nameStartChar + \"][\" + nameChar + \"]*)\", \"g\");\n\n  function Iter(cm, line, ch, range) {\n    this.line = line; this.ch = ch;\n    this.cm = cm; this.text = cm.getLine(line);\n    this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine();\n    this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine();\n  }\n\n  function tagAt(iter, ch) {\n    var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));\n    return type && /\\btag\\b/.test(type);\n  }\n\n  function nextLine(iter) {\n    if (iter.line >= iter.max) return;\n    iter.ch = 0;\n    iter.text = iter.cm.getLine(++iter.line);\n    return true;\n  }\n  function prevLine(iter) {\n    if (iter.line <= iter.min) return;\n    iter.text = iter.cm.getLine(--iter.line);\n    iter.ch = iter.text.length;\n    return true;\n  }\n\n  function toTagEnd(iter) {\n    for (;;) {\n      var gt = iter.text.indexOf(\">\", iter.ch);\n      if (gt == -1) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n  function toTagStart(iter) {\n    for (;;) {\n      var lt = iter.ch ? iter.text.lastIndexOf(\"<\", iter.ch - 1) : -1;\n      if (lt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }\n      xmlTagStart.lastIndex = lt;\n      iter.ch = lt;\n      var match = xmlTagStart.exec(iter.text);\n      if (match && match.index == lt) return match;\n    }\n  }\n\n  function toNextTag(iter) {\n    for (;;) {\n      xmlTagStart.lastIndex = iter.ch;\n      var found = xmlTagStart.exec(iter.text);\n      if (!found) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }\n      iter.ch = found.index + found[0].length;\n      return found;\n    }\n  }\n  function toPrevTag(iter) {\n    for (;;) {\n      var gt = iter.ch ? iter.text.lastIndexOf(\">\", iter.ch - 1) : -1;\n      if (gt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n\n  function findMatchingClose(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);\n      if (!next || !(end = toTagEnd(iter))) return;\n      if (end == \"selfClose\") continue;\n      if (next[1]) { // closing tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == next[2])) return {\n          tag: next[2],\n          from: Pos(startLine, startCh),\n          to: Pos(iter.line, iter.ch)\n        };\n      } else { // opening tag\n        stack.push(next[2]);\n      }\n    }\n  }\n  function findMatchingOpen(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var prev = toPrevTag(iter);\n      if (!prev) return;\n      if (prev == \"selfClose\") { toTagStart(iter); continue; }\n      var endLine = iter.line, endCh = iter.ch;\n      var start = toTagStart(iter);\n      if (!start) return;\n      if (start[1]) { // closing tag\n        stack.push(start[2]);\n      } else { // opening tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == start[2])) return {\n          tag: start[2],\n          from: Pos(iter.line, iter.ch),\n          to: Pos(endLine, endCh)\n        };\n      }\n    }\n  }\n\n  CodeMirror.registerHelper(\"fold\", \"xml\", function(cm, start) {\n    var iter = new Iter(cm, start.line, 0);\n    for (;;) {\n      var openTag = toNextTag(iter)\n      if (!openTag || iter.line != start.line) return\n      var end = toTagEnd(iter)\n      if (!end) return\n      if (!openTag[1] && end != \"selfClose\") {\n        var startPos = Pos(iter.line, iter.ch);\n        var endPos = findMatchingClose(iter, openTag[2]);\n        return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null\n      }\n    }\n  });\n  CodeMirror.findMatchingTag = function(cm, pos, range) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    if (iter.text.indexOf(\">\") == -1 && iter.text.indexOf(\"<\") == -1) return;\n    var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);\n    var start = end && toTagStart(iter);\n    if (!end || !start || cmp(iter, pos) > 0) return;\n    var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};\n    if (end == \"selfClose\") return {open: here, close: null, at: \"open\"};\n\n    if (start[1]) { // closing tag\n      return {open: findMatchingOpen(iter, start[2]), close: here, at: \"close\"};\n    } else { // opening tag\n      iter = new Iter(cm, to.line, to.ch, range);\n      return {open: here, close: findMatchingClose(iter, start[2]), at: \"open\"};\n    }\n  };\n\n  CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    for (;;) {\n      var open = findMatchingOpen(iter, tag);\n      if (!open) break;\n      var forward = new Iter(cm, pos.line, pos.ch, range);\n      var close = findMatchingClose(forward, open.tag);\n      if (close) return {open: open, close: close};\n    }\n  };\n\n  // Used by addon/edit/closetag.js\n  CodeMirror.scanForClosingTag = function(cm, pos, name, end) {\n    var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);\n    return findMatchingClose(iter, name);\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/anyword-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var WORD = /[\\w$]+/, RANGE = 500;\n\n  CodeMirror.registerHelper(\"hint\", \"anyword\", function(editor, options) {\n    var word = options && options.word || WORD;\n    var range = options && options.range || RANGE;\n    var cur = editor.getCursor(), curLine = editor.getLine(cur.line);\n    var end = cur.ch, start = end;\n    while (start && word.test(curLine.charAt(start - 1))) --start;\n    var curWord = start != end && curLine.slice(start, end);\n\n    var list = options && options.list || [], seen = {};\n    var re = new RegExp(word.source, \"g\");\n    for (var dir = -1; dir <= 1; dir += 2) {\n      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;\n      for (; line != endLine; line += dir) {\n        var text = editor.getLine(line), m;\n        while (m = re.exec(text)) {\n          if (line == cur.line && m[0] === curWord) continue;\n          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {\n            seen[m[0]] = true;\n            list.push(m[0]);\n          }\n        }\n      }\n    }\n    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/css-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var pseudoClasses = {\"active\":1, \"after\":1, \"before\":1, \"checked\":1, \"default\":1,\n    \"disabled\":1, \"empty\":1, \"enabled\":1, \"first-child\":1, \"first-letter\":1,\n    \"first-line\":1, \"first-of-type\":1, \"focus\":1, \"hover\":1, \"in-range\":1,\n    \"indeterminate\":1, \"invalid\":1, \"lang\":1, \"last-child\":1, \"last-of-type\":1,\n    \"link\":1, \"not\":1, \"nth-child\":1, \"nth-last-child\":1, \"nth-last-of-type\":1,\n    \"nth-of-type\":1, \"only-of-type\":1, \"only-child\":1, \"optional\":1, \"out-of-range\":1,\n    \"placeholder\":1, \"read-only\":1, \"read-write\":1, \"required\":1, \"root\":1,\n    \"selection\":1, \"target\":1, \"valid\":1, \"visited\":1\n  };\n\n  CodeMirror.registerHelper(\"hint\", \"css\", function(cm) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (inner.mode.name != \"css\") return;\n\n    if (token.type == \"keyword\" && \"!important\".indexOf(token.string) == 0)\n      return {list: [\"!important\"], from: CodeMirror.Pos(cur.line, token.start),\n              to: CodeMirror.Pos(cur.line, token.end)};\n\n    var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);\n    if (/[^\\w$_-]/.test(word)) {\n      word = \"\"; start = end = cur.ch;\n    }\n\n    var spec = CodeMirror.resolveMode(\"text/css\");\n\n    var result = [];\n    function add(keywords) {\n      for (var name in keywords)\n        if (!word || name.lastIndexOf(word, 0) == 0)\n          result.push(name);\n    }\n\n    var st = inner.state.state;\n    if (st == \"pseudo\" || token.type == \"variable-3\") {\n      add(pseudoClasses);\n    } else if (st == \"block\" || st == \"maybeprop\") {\n      add(spec.propertyKeywords);\n    } else if (st == \"prop\" || st == \"parens\" || st == \"at\" || st == \"params\") {\n      add(spec.valueKeywords);\n      add(spec.colorKeywords);\n    } else if (st == \"media\" || st == \"media_parens\") {\n      add(spec.mediaTypes);\n      add(spec.mediaFeatures);\n    }\n\n    if (result.length) return {\n      list: result,\n      from: CodeMirror.Pos(cur.line, start),\n      to: CodeMirror.Pos(cur.line, end)\n    };\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/html-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./xml-hint\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./xml-hint\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var langs = \"ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu\".split(\" \");\n  var targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\n  var charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\n  var methods = [\"get\", \"post\", \"put\", \"delete\"];\n  var encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\n  var media = [\"all\", \"screen\", \"print\", \"embossed\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\", \"tty\", \"tv\", \"speech\",\n               \"3d-glasses\", \"resolution [>][<][=] [X]\", \"device-aspect-ratio: X/Y\", \"orientation:portrait\",\n               \"orientation:landscape\", \"device-height: [X]\", \"device-width: [X]\"];\n  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags\n\n  var data = {\n    a: {\n      attrs: {\n        href: null, ping: null, type: null,\n        media: media,\n        target: targets,\n        hreflang: langs\n      }\n    },\n    abbr: s,\n    acronym: s,\n    address: s,\n    applet: s,\n    area: {\n      attrs: {\n        alt: null, coords: null, href: null, target: null, ping: null,\n        media: media, hreflang: langs, type: null,\n        shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n      }\n    },\n    article: s,\n    aside: s,\n    audio: {\n      attrs: {\n        src: null, mediagroup: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"none\", \"metadata\", \"auto\"],\n        autoplay: [\"\", \"autoplay\"],\n        loop: [\"\", \"loop\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    b: s,\n    base: { attrs: { href: null, target: targets } },\n    basefont: s,\n    bdi: s,\n    bdo: s,\n    big: s,\n    blockquote: { attrs: { cite: null } },\n    body: s,\n    br: s,\n    button: {\n      attrs: {\n        form: null, formaction: null, name: null, value: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"autofocus\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        type: [\"submit\", \"reset\", \"button\"]\n      }\n    },\n    canvas: { attrs: { width: null, height: null } },\n    caption: s,\n    center: s,\n    cite: s,\n    code: s,\n    col: { attrs: { span: null } },\n    colgroup: { attrs: { span: null } },\n    command: {\n      attrs: {\n        type: [\"command\", \"checkbox\", \"radio\"],\n        label: null, icon: null, radiogroup: null, command: null, title: null,\n        disabled: [\"\", \"disabled\"],\n        checked: [\"\", \"checked\"]\n      }\n    },\n    data: { attrs: { value: null } },\n    datagrid: { attrs: { disabled: [\"\", \"disabled\"], multiple: [\"\", \"multiple\"] } },\n    datalist: { attrs: { data: null } },\n    dd: s,\n    del: { attrs: { cite: null, datetime: null } },\n    details: { attrs: { open: [\"\", \"open\"] } },\n    dfn: s,\n    dir: s,\n    div: s,\n    dialog: { attrs: { open: null } },\n    dl: s,\n    dt: s,\n    em: s,\n    embed: { attrs: { src: null, type: null, width: null, height: null } },\n    eventsource: { attrs: { src: null } },\n    fieldset: { attrs: { disabled: [\"\", \"disabled\"], form: null, name: null } },\n    figcaption: s,\n    figure: s,\n    font: s,\n    footer: s,\n    form: {\n      attrs: {\n        action: null, name: null,\n        \"accept-charset\": charsets,\n        autocomplete: [\"on\", \"off\"],\n        enctype: encs,\n        method: methods,\n        novalidate: [\"\", \"novalidate\"],\n        target: targets\n      }\n    },\n    frame: s,\n    frameset: s,\n    h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,\n    head: {\n      attrs: {},\n      children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n    },\n    header: s,\n    hgroup: s,\n    hr: s,\n    html: {\n      attrs: { manifest: null },\n      children: [\"head\", \"body\"]\n    },\n    i: s,\n    iframe: {\n      attrs: {\n        src: null, srcdoc: null, name: null, width: null, height: null,\n        sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n        seamless: [\"\", \"seamless\"]\n      }\n    },\n    img: {\n      attrs: {\n        alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"]\n      }\n    },\n    input: {\n      attrs: {\n        alt: null, dirname: null, form: null, formaction: null,\n        height: null, list: null, max: null, maxlength: null, min: null,\n        name: null, pattern: null, placeholder: null, size: null, src: null,\n        step: null, value: null, width: null,\n        accept: [\"audio/*\", \"video/*\", \"image/*\"],\n        autocomplete: [\"on\", \"off\"],\n        autofocus: [\"\", \"autofocus\"],\n        checked: [\"\", \"checked\"],\n        disabled: [\"\", \"disabled\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        multiple: [\"\", \"multiple\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n               \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n               \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n      }\n    },\n    ins: { attrs: { cite: null, datetime: null } },\n    kbd: s,\n    keygen: {\n      attrs: {\n        challenge: null, form: null, name: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        keytype: [\"RSA\"]\n      }\n    },\n    label: { attrs: { \"for\": null, form: null } },\n    legend: s,\n    li: { attrs: { value: null } },\n    link: {\n      attrs: {\n        href: null, type: null,\n        hreflang: langs,\n        media: media,\n        sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n      }\n    },\n    map: { attrs: { name: null } },\n    mark: s,\n    menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n    meta: {\n      attrs: {\n        content: null,\n        charset: charsets,\n        name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n        \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n      }\n    },\n    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n    nav: s,\n    noframes: s,\n    noscript: s,\n    object: {\n      attrs: {\n        data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n        typemustmatch: [\"\", \"typemustmatch\"]\n      }\n    },\n    ol: { attrs: { reversed: [\"\", \"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] } },\n    optgroup: { attrs: { disabled: [\"\", \"disabled\"], label: null } },\n    option: { attrs: { disabled: [\"\", \"disabled\"], label: null, selected: [\"\", \"selected\"], value: null } },\n    output: { attrs: { \"for\": null, form: null, name: null } },\n    p: s,\n    param: { attrs: { name: null, value: null } },\n    pre: s,\n    progress: { attrs: { value: null, max: null } },\n    q: { attrs: { cite: null } },\n    rp: s,\n    rt: s,\n    ruby: s,\n    s: s,\n    samp: s,\n    script: {\n      attrs: {\n        type: [\"text/javascript\"],\n        src: null,\n        async: [\"\", \"async\"],\n        defer: [\"\", \"defer\"],\n        charset: charsets\n      }\n    },\n    section: s,\n    select: {\n      attrs: {\n        form: null, name: null, size: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        multiple: [\"\", \"multiple\"]\n      }\n    },\n    small: s,\n    source: { attrs: { src: null, type: null, media: null } },\n    span: s,\n    strike: s,\n    strong: s,\n    style: {\n      attrs: {\n        type: [\"text/css\"],\n        media: media,\n        scoped: null\n      }\n    },\n    sub: s,\n    summary: s,\n    sup: s,\n    table: s,\n    tbody: s,\n    td: { attrs: { colspan: null, rowspan: null, headers: null } },\n    textarea: {\n      attrs: {\n        dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n        rows: null, cols: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        wrap: [\"soft\", \"hard\"]\n      }\n    },\n    tfoot: s,\n    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n    thead: s,\n    time: { attrs: { datetime: null } },\n    title: s,\n    tr: s,\n    track: {\n      attrs: {\n        src: null, label: null, \"default\": null,\n        kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n        srclang: langs\n      }\n    },\n    tt: s,\n    u: s,\n    ul: s,\n    \"var\": s,\n    video: {\n      attrs: {\n        src: null, poster: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"auto\", \"metadata\", \"none\"],\n        autoplay: [\"\", \"autoplay\"],\n        mediagroup: [\"movie\"],\n        muted: [\"\", \"muted\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    wbr: s\n  };\n\n  var globalAttrs = {\n    accesskey: [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    \"class\": null,\n    contenteditable: [\"true\", \"false\"],\n    contextmenu: null,\n    dir: [\"ltr\", \"rtl\", \"auto\"],\n    draggable: [\"true\", \"false\", \"auto\"],\n    dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n    hidden: [\"hidden\"],\n    id: null,\n    inert: [\"inert\"],\n    itemid: null,\n    itemprop: null,\n    itemref: null,\n    itemscope: [\"itemscope\"],\n    itemtype: null,\n    lang: [\"en\", \"es\"],\n    spellcheck: [\"true\", \"false\"],\n    autocorrect: [\"true\", \"false\"],\n    autocapitalize: [\"true\", \"false\"],\n    style: null,\n    tabindex: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    title: null,\n    translate: [\"yes\", \"no\"],\n    onclick: null,\n    rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"]\n  };\n  function populate(obj) {\n    for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))\n      obj.attrs[attr] = globalAttrs[attr];\n  }\n\n  populate(s);\n  for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)\n    populate(data[tag]);\n\n  CodeMirror.htmlSchema = data;\n  function htmlHint(cm, options) {\n    var local = {schemaInfo: data};\n    if (options) for (var opt in options) local[opt] = options[opt];\n    return CodeMirror.hint.xml(cm, local);\n  }\n  CodeMirror.registerHelper(\"hint\", \"html\", htmlHint);\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/javascript-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var Pos = CodeMirror.Pos;\n\n  function forEach(arr, f) {\n    for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);\n  }\n\n  function arrayContains(arr, item) {\n    if (!Array.prototype.indexOf) {\n      var i = arr.length;\n      while (i--) {\n        if (arr[i] === item) {\n          return true;\n        }\n      }\n      return false;\n    }\n    return arr.indexOf(item) != -1;\n  }\n\n  function scriptHint(editor, keywords, getToken, options) {\n    // Find the token at the cursor\n    var cur = editor.getCursor(), token = getToken(editor, cur);\n    if (/\\b(?:string|comment)\\b/.test(token.type)) return;\n    var innerMode = CodeMirror.innerMode(editor.getMode(), token.state);\n    if (innerMode.mode.helperType === \"json\") return;\n    token.state = innerMode.state;\n\n    // If it's not a 'word-style' token, ignore the token.\n    if (!/^[\\w$_]*$/.test(token.string)) {\n      token = {start: cur.ch, end: cur.ch, string: \"\", state: token.state,\n               type: token.string == \".\" ? \"property\" : null};\n    } else if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    var tprop = token;\n    // If it is a property, find out what it is a property of.\n    while (tprop.type == \"property\") {\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (tprop.string != \".\") return;\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (!context) var context = [];\n      context.push(tprop);\n    }\n    return {list: getCompletions(token, context, keywords, options),\n            from: Pos(cur.line, token.start),\n            to: Pos(cur.line, token.end)};\n  }\n\n  function javascriptHint(editor, options) {\n    return scriptHint(editor, javascriptKeywords,\n                      function (e, cur) {return e.getTokenAt(cur);},\n                      options);\n  };\n  CodeMirror.registerHelper(\"hint\", \"javascript\", javascriptHint);\n\n  function getCoffeeScriptToken(editor, cur) {\n  // This getToken, it is for coffeescript, imitates the behavior of\n  // getTokenAt method in javascript.js, that is, returning \"property\"\n  // type and treat \".\" as independent token.\n    var token = editor.getTokenAt(cur);\n    if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {\n      token.end = token.start;\n      token.string = '.';\n      token.type = \"property\";\n    }\n    else if (/^\\.[\\w$_]*$/.test(token.string)) {\n      token.type = \"property\";\n      token.start++;\n      token.string = token.string.replace(/\\./, '');\n    }\n    return token;\n  }\n\n  function coffeescriptHint(editor, options) {\n    return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);\n  }\n  CodeMirror.registerHelper(\"hint\", \"coffeescript\", coffeescriptHint);\n\n  var stringProps = (\"charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight \" +\n                     \"toUpperCase toLowerCase split concat match replace search\").split(\" \");\n  var arrayProps = (\"length concat join splice push pop shift unshift slice reverse sort indexOf \" +\n                    \"lastIndexOf every some filter forEach map reduce reduceRight \").split(\" \");\n  var funcProps = \"prototype apply call bind\".split(\" \");\n  var javascriptKeywords = (\"break case catch class const continue debugger default delete do else export extends false finally for function \" +\n                  \"if in import instanceof new null return super switch this throw true try typeof var void while with yield\").split(\" \");\n  var coffeescriptKeywords = (\"and break catch class continue delete do else extends false finally for \" +\n                  \"if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes\").split(\" \");\n\n  function forAllProps(obj, callback) {\n    if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {\n      for (var name in obj) callback(name)\n    } else {\n      for (var o = obj; o; o = Object.getPrototypeOf(o))\n        Object.getOwnPropertyNames(o).forEach(callback)\n    }\n  }\n\n  function getCompletions(token, context, keywords, options) {\n    var found = [], start = token.string, global = options && options.globalScope || window;\n    function maybeAdd(str) {\n      if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str);\n    }\n    function gatherCompletions(obj) {\n      if (typeof obj == \"string\") forEach(stringProps, maybeAdd);\n      else if (obj instanceof Array) forEach(arrayProps, maybeAdd);\n      else if (obj instanceof Function) forEach(funcProps, maybeAdd);\n      forAllProps(obj, maybeAdd)\n    }\n\n    if (context && context.length) {\n      // If this is a property, see if it belongs to some object we can\n      // find in the current environment.\n      var obj = context.pop(), base;\n      if (obj.type && obj.type.indexOf(\"variable\") === 0) {\n        if (options && options.additionalContext)\n          base = options.additionalContext[obj.string];\n        if (!options || options.useGlobalScope !== false)\n          base = base || global[obj.string];\n      } else if (obj.type == \"string\") {\n        base = \"\";\n      } else if (obj.type == \"atom\") {\n        base = 1;\n      } else if (obj.type == \"function\") {\n        if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&\n            (typeof global.jQuery == 'function'))\n          base = global.jQuery();\n        else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function'))\n          base = global._();\n      }\n      while (base != null && context.length)\n        base = base[context.pop().string];\n      if (base != null) gatherCompletions(base);\n    } else {\n      // If not, just look in the global object, any local scope, and optional additional-context\n      // (reading into JS mode internals to get at the local and global variables)\n      for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);\n      for (var c = token.state.context; c; c = c.prev)\n        for (var v = c.vars; v; v = v.next) maybeAdd(v.name)\n      for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);\n      if (options && options.additionalContext != null)\n        for (var key in options.additionalContext)\n          maybeAdd(key);\n      if (!options || options.useGlobalScope !== false)\n        gatherCompletions(global);\n      forEach(keywords, maybeAdd);\n    }\n    return found;\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/show-hint.css",
    "content": ".CodeMirror-hints {\n  position: absolute;\n  z-index: 10;\n  overflow: hidden;\n  list-style: none;\n\n  margin: 0;\n  padding: 2px;\n\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  border-radius: 3px;\n  border: 1px solid silver;\n\n  background: white;\n  font-size: 90%;\n  font-family: monospace;\n\n  max-height: 20em;\n  overflow-y: auto;\n}\n\n.CodeMirror-hint {\n  margin: 0;\n  padding: 0 4px;\n  border-radius: 2px;\n  white-space: pre;\n  color: black;\n  cursor: pointer;\n}\n\nli.CodeMirror-hint-active {\n  background: #08f;\n  color: white;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/show-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: DOMRect\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var HINT_ELEMENT_CLASS        = \"CodeMirror-hint\";\n  var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n  // This is the old interface, kept around for now to stay\n  // backwards-compatible.\n  CodeMirror.showHint = function(cm, getHints, options) {\n    if (!getHints) return cm.showHint(options);\n    if (options && options.async) getHints.async = true;\n    var newOpts = {hint: getHints};\n    if (options) for (var prop in options) newOpts[prop] = options[prop];\n    return cm.showHint(newOpts);\n  };\n\n  CodeMirror.defineExtension(\"showHint\", function(options) {\n    options = parseOptions(this, this.getCursor(\"start\"), options);\n    var selections = this.listSelections()\n    if (selections.length > 1) return;\n    // By default, don't allow completion when something is selected.\n    // A hint function can have a `supportsSelection` property to\n    // indicate that it can handle selections.\n    if (this.somethingSelected()) {\n      if (!options.hint.supportsSelection) return;\n      // Don't try with cross-line selections\n      for (var i = 0; i < selections.length; i++)\n        if (selections[i].head.line != selections[i].anchor.line) return;\n    }\n\n    if (this.state.completionActive) this.state.completionActive.close();\n    var completion = this.state.completionActive = new Completion(this, options);\n    if (!completion.options.hint) return;\n\n    CodeMirror.signal(this, \"startCompletion\", this);\n    completion.update(true);\n  });\n\n  CodeMirror.defineExtension(\"closeHint\", function() {\n    if (this.state.completionActive) this.state.completionActive.close()\n  })\n\n  function Completion(cm, options) {\n    this.cm = cm;\n    this.options = options;\n    this.widget = null;\n    this.debounce = 0;\n    this.tick = 0;\n    this.startPos = this.cm.getCursor(\"start\");\n    this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;\n\n    if (this.options.updateOnCursorActivity) {\n      var self = this;\n      cm.on(\"cursorActivity\", this.activityFunc = function() { self.cursorActivity(); });\n    }\n  }\n\n  var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n    return setTimeout(fn, 1000/60);\n  };\n  var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n  Completion.prototype = {\n    close: function() {\n      if (!this.active()) return;\n      this.cm.state.completionActive = null;\n      this.tick = null;\n      if (this.options.updateOnCursorActivity) {\n        this.cm.off(\"cursorActivity\", this.activityFunc);\n      }\n\n      if (this.widget && this.data) CodeMirror.signal(this.data, \"close\");\n      if (this.widget) this.widget.close();\n      CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n    },\n\n    active: function() {\n      return this.cm.state.completionActive == this;\n    },\n\n    pick: function(data, i) {\n      var completion = data.list[i], self = this;\n      this.cm.operation(function() {\n        if (completion.hint)\n          completion.hint(self.cm, data, completion);\n        else\n          self.cm.replaceRange(getText(completion), completion.from || data.from,\n                               completion.to || data.to, \"complete\");\n        CodeMirror.signal(data, \"pick\", completion);\n        self.cm.scrollIntoView();\n      });\n      if (this.options.closeOnPick) {\n        this.close();\n      }\n    },\n\n    cursorActivity: function() {\n      if (this.debounce) {\n        cancelAnimationFrame(this.debounce);\n        this.debounce = 0;\n      }\n\n      var identStart = this.startPos;\n      if(this.data) {\n        identStart = this.data.from;\n      }\n\n      var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);\n      if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||\n          pos.ch < identStart.ch || this.cm.somethingSelected() ||\n          (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {\n        this.close();\n      } else {\n        var self = this;\n        this.debounce = requestAnimationFrame(function() {self.update();});\n        if (this.widget) this.widget.disable();\n      }\n    },\n\n    update: function(first) {\n      if (this.tick == null) return\n      var self = this, myTick = ++this.tick\n      fetchHints(this.options.hint, this.cm, this.options, function(data) {\n        if (self.tick == myTick) self.finishUpdate(data, first)\n      })\n    },\n\n    finishUpdate: function(data, first) {\n      if (this.data) CodeMirror.signal(this.data, \"update\");\n\n      var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);\n      if (this.widget) this.widget.close();\n\n      this.data = data;\n\n      if (data && data.list.length) {\n        if (picked && data.list.length == 1) {\n          this.pick(data, 0);\n        } else {\n          this.widget = new Widget(this, data);\n          CodeMirror.signal(data, \"shown\");\n        }\n      }\n    }\n  };\n\n  function parseOptions(cm, pos, options) {\n    var editor = cm.options.hintOptions;\n    var out = {};\n    for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n    if (editor) for (var prop in editor)\n      if (editor[prop] !== undefined) out[prop] = editor[prop];\n    if (options) for (var prop in options)\n      if (options[prop] !== undefined) out[prop] = options[prop];\n    if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)\n    return out;\n  }\n\n  function getText(completion) {\n    if (typeof completion == \"string\") return completion;\n    else return completion.text;\n  }\n\n  function buildKeyMap(completion, handle) {\n    var baseMap = {\n      Up: function() {handle.moveFocus(-1);},\n      Down: function() {handle.moveFocus(1);},\n      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n      Home: function() {handle.setFocus(0);},\n      End: function() {handle.setFocus(handle.length - 1);},\n      Enter: handle.pick,\n      Tab: handle.pick,\n      Esc: handle.close\n    };\n\n    var mac = /Mac/.test(navigator.platform);\n\n    if (mac) {\n      baseMap[\"Ctrl-P\"] = function() {handle.moveFocus(-1);};\n      baseMap[\"Ctrl-N\"] = function() {handle.moveFocus(1);};\n    }\n\n    var custom = completion.options.customKeys;\n    var ourMap = custom ? {} : baseMap;\n    function addBinding(key, val) {\n      var bound;\n      if (typeof val != \"string\")\n        bound = function(cm) { return val(cm, handle); };\n      // This mechanism is deprecated\n      else if (baseMap.hasOwnProperty(val))\n        bound = baseMap[val];\n      else\n        bound = val;\n      ourMap[key] = bound;\n    }\n    if (custom)\n      for (var key in custom) if (custom.hasOwnProperty(key))\n        addBinding(key, custom[key]);\n    var extra = completion.options.extraKeys;\n    if (extra)\n      for (var key in extra) if (extra.hasOwnProperty(key))\n        addBinding(key, extra[key]);\n    return ourMap;\n  }\n\n  function getHintElement(hintsElement, el) {\n    while (el && el != hintsElement) {\n      if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n      el = el.parentNode;\n    }\n  }\n\n  function Widget(completion, data) {\n    this.completion = completion;\n    this.data = data;\n    this.picked = false;\n    var widget = this, cm = completion.cm;\n    var ownerDocument = cm.getInputField().ownerDocument;\n    var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;\n\n    var hints = this.hints = ownerDocument.createElement(\"ul\");\n    var theme = completion.cm.options.theme;\n    hints.className = \"CodeMirror-hints \" + theme;\n    this.selectedHint = data.selectedHint || 0;\n\n    var completions = data.list;\n    for (var i = 0; i < completions.length; ++i) {\n      var elt = hints.appendChild(ownerDocument.createElement(\"li\")), cur = completions[i];\n      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n      if (cur.className != null) className = cur.className + \" \" + className;\n      elt.className = className;\n      if (cur.render) cur.render(elt, data, cur);\n      else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));\n      elt.hintId = i;\n    }\n\n    var container = completion.options.container || ownerDocument.body;\n    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n    var left = pos.left, top = pos.bottom, below = true;\n    var offsetLeft = 0, offsetTop = 0;\n    if (container !== ownerDocument.body) {\n      // We offset the cursor position because left and top are relative to the offsetParent's top left corner.\n      var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;\n      var offsetParent = isContainerPositioned ? container : container.offsetParent;\n      var offsetParentPosition = offsetParent.getBoundingClientRect();\n      var bodyPosition = ownerDocument.body.getBoundingClientRect();\n      offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);\n      offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);\n    }\n    hints.style.left = (left - offsetLeft) + \"px\";\n    hints.style.top = (top - offsetTop) + \"px\";\n\n    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n    var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);\n    var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);\n    container.appendChild(hints);\n\n    var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect();\n    var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false;\n\n    // Compute in the timeout to avoid reflow on init\n    var startScroll;\n    setTimeout(function() { startScroll = cm.getScrollInfo(); });\n\n    var overlapY = box.bottom - winH;\n    if (overlapY > 0) {\n      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n      if (curTop - height > 0) { // Fits above cursor\n        hints.style.top = (top = pos.top - height - offsetTop) + \"px\";\n        below = false;\n      } else if (height > winH) {\n        hints.style.height = (winH - 5) + \"px\";\n        hints.style.top = (top = pos.bottom - box.top - offsetTop) + \"px\";\n        var cursor = cm.getCursor();\n        if (data.from.ch != cursor.ch) {\n          pos = cm.cursorCoords(cursor);\n          hints.style.left = (left = pos.left - offsetLeft) + \"px\";\n          box = hints.getBoundingClientRect();\n        }\n      }\n    }\n    var overlapX = box.right - winW;\n    if (overlapX > 0) {\n      if (box.right - box.left > winW) {\n        hints.style.width = (winW - 5) + \"px\";\n        overlapX -= (box.right - box.left) - winW;\n      }\n      hints.style.left = (left = pos.left - overlapX - offsetLeft) + \"px\";\n    }\n    if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)\n      node.style.paddingRight = cm.display.nativeBarWidth + \"px\"\n\n    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n      setFocus: function(n) { widget.changeActive(n); },\n      menuSize: function() { return widget.screenAmount(); },\n      length: completions.length,\n      close: function() { completion.close(); },\n      pick: function() { widget.pick(); },\n      data: data\n    }));\n\n    if (completion.options.closeOnUnfocus) {\n      var closingOnBlur;\n      cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n      cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n    }\n\n    cm.on(\"scroll\", this.onScroll = function() {\n      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n      var newTop = top + startScroll.top - curScroll.top;\n      var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);\n      if (!below) point += hints.offsetHeight;\n      if (point <= editor.top || point >= editor.bottom) return completion.close();\n      hints.style.top = newTop + \"px\";\n      hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n    });\n\n    CodeMirror.on(hints, \"dblclick\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n    });\n\n    CodeMirror.on(hints, \"click\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {\n        widget.changeActive(t.hintId);\n        if (completion.options.completeOnSingleClick) widget.pick();\n      }\n    });\n\n    CodeMirror.on(hints, \"mousedown\", function() {\n      setTimeout(function(){cm.focus();}, 20);\n    });\n\n    // The first hint doesn't need to be scrolled to on init\n    var selectedHintRange = this.getSelectedHintRange();\n    if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) {\n      this.scrollToActive();\n    }\n\n    CodeMirror.signal(data, \"select\", completions[this.selectedHint], hints.childNodes[this.selectedHint]);\n    return true;\n  }\n\n  Widget.prototype = {\n    close: function() {\n      if (this.completion.widget != this) return;\n      this.completion.widget = null;\n      if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints);\n      this.completion.cm.removeKeyMap(this.keyMap);\n\n      var cm = this.completion.cm;\n      if (this.completion.options.closeOnUnfocus) {\n        cm.off(\"blur\", this.onBlur);\n        cm.off(\"focus\", this.onFocus);\n      }\n      cm.off(\"scroll\", this.onScroll);\n    },\n\n    disable: function() {\n      this.completion.cm.removeKeyMap(this.keyMap);\n      var widget = this;\n      this.keyMap = {Enter: function() { widget.picked = true; }};\n      this.completion.cm.addKeyMap(this.keyMap);\n    },\n\n    pick: function() {\n      this.completion.pick(this.data, this.selectedHint);\n    },\n\n    changeActive: function(i, avoidWrap) {\n      if (i >= this.data.list.length)\n        i = avoidWrap ? this.data.list.length - 1 : 0;\n      else if (i < 0)\n        i = avoidWrap ? 0  : this.data.list.length - 1;\n      if (this.selectedHint == i) return;\n      var node = this.hints.childNodes[this.selectedHint];\n      if (node) node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n      node = this.hints.childNodes[this.selectedHint = i];\n      node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n      this.scrollToActive()\n      CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n    },\n\n    scrollToActive: function() {\n      var selectedHintRange = this.getSelectedHintRange();\n      var node1 = this.hints.childNodes[selectedHintRange.from];\n      var node2 = this.hints.childNodes[selectedHintRange.to];\n      var firstNode = this.hints.firstChild;\n      if (node1.offsetTop < this.hints.scrollTop)\n        this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;\n      else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n        this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop;\n    },\n\n    screenAmount: function() {\n      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n    },\n\n    getSelectedHintRange: function() {\n      var margin = this.completion.options.scrollMargin || 0;\n      return {\n        from: Math.max(0, this.selectedHint - margin),\n        to: Math.min(this.data.list.length - 1, this.selectedHint + margin),\n      };\n    }\n  };\n\n  function applicableHelpers(cm, helpers) {\n    if (!cm.somethingSelected()) return helpers\n    var result = []\n    for (var i = 0; i < helpers.length; i++)\n      if (helpers[i].supportsSelection) result.push(helpers[i])\n    return result\n  }\n\n  function fetchHints(hint, cm, options, callback) {\n    if (hint.async) {\n      hint(cm, callback, options)\n    } else {\n      var result = hint(cm, options)\n      if (result && result.then) result.then(callback)\n      else callback(result)\n    }\n  }\n\n  function resolveAutoHints(cm, pos) {\n    var helpers = cm.getHelpers(pos, \"hint\"), words\n    if (helpers.length) {\n      var resolved = function(cm, callback, options) {\n        var app = applicableHelpers(cm, helpers);\n        function run(i) {\n          if (i == app.length) return callback(null)\n          fetchHints(app[i], cm, options, function(result) {\n            if (result && result.list.length > 0) callback(result)\n            else run(i + 1)\n          })\n        }\n        run(0)\n      }\n      resolved.async = true\n      resolved.supportsSelection = true\n      return resolved\n    } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n      return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }\n    } else if (CodeMirror.hint.anyword) {\n      return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }\n    } else {\n      return function() {}\n    }\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"auto\", {\n    resolve: resolveAutoHints\n  });\n\n  CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur)\n    var term, from = CodeMirror.Pos(cur.line, token.start), to = cur\n    if (token.start < cur.ch && /\\w/.test(token.string.charAt(cur.ch - token.start - 1))) {\n      term = token.string.substr(0, cur.ch - token.start)\n    } else {\n      term = \"\"\n      from = cur\n    }\n    var found = [];\n    for (var i = 0; i < options.words.length; i++) {\n      var word = options.words[i];\n      if (word.slice(0, term.length) == term)\n        found.push(word);\n    }\n\n    if (found.length) return {list: found, from: from, to: to};\n  });\n\n  CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n  var defaultOptions = {\n    hint: CodeMirror.hint.auto,\n    completeSingle: true,\n    alignWithWord: true,\n    closeCharacters: /[\\s()\\[\\]{};:>,]/,\n    closeOnPick: true,\n    closeOnUnfocus: true,\n    updateOnCursorActivity: true,\n    completeOnSingleClick: true,\n    container: null,\n    customKeys: null,\n    extraKeys: null,\n    paddingForScrollbar: true,\n    moveOnOverlap: true,\n  };\n\n  CodeMirror.defineOption(\"hintOptions\", null);\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/sql-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/sql/sql\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/sql/sql\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var tables;\n  var defaultTable;\n  var keywords;\n  var identifierQuote;\n  var CONS = {\n    QUERY_DIV: \";\",\n    ALIAS_KEYWORD: \"AS\"\n  };\n  var Pos = CodeMirror.Pos, cmpPos = CodeMirror.cmpPos;\n\n  function isArray(val) { return Object.prototype.toString.call(val) == \"[object Array]\" }\n\n  function getKeywords(editor) {\n    var mode = editor.doc.modeOption;\n    if (mode === \"sql\") mode = \"text/x-sql\";\n    return CodeMirror.resolveMode(mode).keywords;\n  }\n\n  function getIdentifierQuote(editor) {\n    var mode = editor.doc.modeOption;\n    if (mode === \"sql\") mode = \"text/x-sql\";\n    return CodeMirror.resolveMode(mode).identifierQuote || \"`\";\n  }\n\n  function getText(item) {\n    return typeof item == \"string\" ? item : item.text;\n  }\n\n  function wrapTable(name, value) {\n    if (isArray(value)) value = {columns: value}\n    if (!value.text) value.text = name\n    return value\n  }\n\n  function parseTables(input) {\n    var result = {}\n    if (isArray(input)) {\n      for (var i = input.length - 1; i >= 0; i--) {\n        var item = input[i]\n        result[getText(item).toUpperCase()] = wrapTable(getText(item), item)\n      }\n    } else if (input) {\n      for (var name in input)\n        result[name.toUpperCase()] = wrapTable(name, input[name])\n    }\n    return result\n  }\n\n  function getTable(name) {\n    return tables[name.toUpperCase()]\n  }\n\n  function shallowClone(object) {\n    var result = {};\n    for (var key in object) if (object.hasOwnProperty(key))\n      result[key] = object[key];\n    return result;\n  }\n\n  function match(string, word) {\n    var len = string.length;\n    var sub = getText(word).substr(0, len);\n    return string.toUpperCase() === sub.toUpperCase();\n  }\n\n  function addMatches(result, search, wordlist, formatter) {\n    if (isArray(wordlist)) {\n      for (var i = 0; i < wordlist.length; i++)\n        if (match(search, wordlist[i])) result.push(formatter(wordlist[i]))\n    } else {\n      for (var word in wordlist) if (wordlist.hasOwnProperty(word)) {\n        var val = wordlist[word]\n        if (!val || val === true)\n          val = word\n        else\n          val = val.displayText ? {text: val.text, displayText: val.displayText} : val.text\n        if (match(search, val)) result.push(formatter(val))\n      }\n    }\n  }\n\n  function cleanName(name) {\n    // Get rid name from identifierQuote and preceding dot(.)\n    if (name.charAt(0) == \".\") {\n      name = name.substr(1);\n    }\n    // replace duplicated identifierQuotes with single identifierQuotes\n    // and remove single identifierQuotes\n    var nameParts = name.split(identifierQuote+identifierQuote);\n    for (var i = 0; i < nameParts.length; i++)\n      nameParts[i] = nameParts[i].replace(new RegExp(identifierQuote,\"g\"), \"\");\n    return nameParts.join(identifierQuote);\n  }\n\n  function insertIdentifierQuotes(name) {\n    var nameParts = getText(name).split(\".\");\n    for (var i = 0; i < nameParts.length; i++)\n      nameParts[i] = identifierQuote +\n        // duplicate identifierQuotes\n        nameParts[i].replace(new RegExp(identifierQuote,\"g\"), identifierQuote+identifierQuote) +\n        identifierQuote;\n    var escaped = nameParts.join(\".\");\n    if (typeof name == \"string\") return escaped;\n    name = shallowClone(name);\n    name.text = escaped;\n    return name;\n  }\n\n  function nameCompletion(cur, token, result, editor) {\n    // Try to complete table, column names and return start position of completion\n    var useIdentifierQuotes = false;\n    var nameParts = [];\n    var start = token.start;\n    var cont = true;\n    while (cont) {\n      cont = (token.string.charAt(0) == \".\");\n      useIdentifierQuotes = useIdentifierQuotes || (token.string.charAt(0) == identifierQuote);\n\n      start = token.start;\n      nameParts.unshift(cleanName(token.string));\n\n      token = editor.getTokenAt(Pos(cur.line, token.start));\n      if (token.string == \".\") {\n        cont = true;\n        token = editor.getTokenAt(Pos(cur.line, token.start));\n      }\n    }\n\n    // Try to complete table names\n    var string = nameParts.join(\".\");\n    addMatches(result, string, tables, function(w) {\n      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;\n    });\n\n    // Try to complete columns from defaultTable\n    addMatches(result, string, defaultTable, function(w) {\n      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;\n    });\n\n    // Try to complete columns\n    string = nameParts.pop();\n    var table = nameParts.join(\".\");\n\n    var alias = false;\n    var aliasTable = table;\n    // Check if table is available. If not, find table by Alias\n    if (!getTable(table)) {\n      var oldTable = table;\n      table = findTableByAlias(table, editor);\n      if (table !== oldTable) alias = true;\n    }\n\n    var columns = getTable(table);\n    if (columns && columns.columns)\n      columns = columns.columns;\n\n    if (columns) {\n      addMatches(result, string, columns, function(w) {\n        var tableInsert = table;\n        if (alias == true) tableInsert = aliasTable;\n        if (typeof w == \"string\") {\n          w = tableInsert + \".\" + w;\n        } else {\n          w = shallowClone(w);\n          w.text = tableInsert + \".\" + w.text;\n        }\n        return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;\n      });\n    }\n\n    return start;\n  }\n\n  function eachWord(lineText, f) {\n    var words = lineText.split(/\\s+/)\n    for (var i = 0; i < words.length; i++)\n      if (words[i]) f(words[i].replace(/[`,;]/g, ''))\n  }\n\n  function findTableByAlias(alias, editor) {\n    var doc = editor.doc;\n    var fullQuery = doc.getValue();\n    var aliasUpperCase = alias.toUpperCase();\n    var previousWord = \"\";\n    var table = \"\";\n    var separator = [];\n    var validRange = {\n      start: Pos(0, 0),\n      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)\n    };\n\n    //add separator\n    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);\n    while(indexOfSeparator != -1) {\n      separator.push(doc.posFromIndex(indexOfSeparator));\n      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);\n    }\n    separator.unshift(Pos(0, 0));\n    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));\n\n    //find valid range\n    var prevItem = null;\n    var current = editor.getCursor()\n    for (var i = 0; i < separator.length; i++) {\n      if ((prevItem == null || cmpPos(current, prevItem) > 0) && cmpPos(current, separator[i]) <= 0) {\n        validRange = {start: prevItem, end: separator[i]};\n        break;\n      }\n      prevItem = separator[i];\n    }\n\n    if (validRange.start) {\n      var query = doc.getRange(validRange.start, validRange.end, false);\n\n      for (var i = 0; i < query.length; i++) {\n        var lineText = query[i];\n        eachWord(lineText, function(word) {\n          var wordUpperCase = word.toUpperCase();\n          if (wordUpperCase === aliasUpperCase && getTable(previousWord))\n            table = previousWord;\n          if (wordUpperCase !== CONS.ALIAS_KEYWORD)\n            previousWord = word;\n        });\n        if (table) break;\n      }\n    }\n    return table;\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"sql\", function(editor, options) {\n    tables = parseTables(options && options.tables)\n    var defaultTableName = options && options.defaultTable;\n    var disableKeywords = options && options.disableKeywords;\n    defaultTable = defaultTableName && getTable(defaultTableName);\n    keywords = getKeywords(editor);\n    identifierQuote = getIdentifierQuote(editor);\n\n    if (defaultTableName && !defaultTable)\n      defaultTable = findTableByAlias(defaultTableName, editor);\n\n    defaultTable = defaultTable || [];\n\n    if (defaultTable.columns)\n      defaultTable = defaultTable.columns;\n\n    var cur = editor.getCursor();\n    var result = [];\n    var token = editor.getTokenAt(cur), start, end, search;\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    if (token.string.match(/^[.`\"'\\w@][\\w$#]*$/g)) {\n      search = token.string;\n      start = token.start;\n      end = token.end;\n    } else {\n      start = end = cur.ch;\n      search = \"\";\n    }\n    if (search.charAt(0) == \".\" || search.charAt(0) == identifierQuote) {\n      start = nameCompletion(cur, token, result, editor);\n    } else {\n      var objectOrClass = function(w, className) {\n        if (typeof w === \"object\") {\n          w.className = className;\n        } else {\n          w = { text: w, className: className };\n        }\n        return w;\n      };\n    addMatches(result, search, defaultTable, function(w) {\n        return objectOrClass(w, \"CodeMirror-hint-table CodeMirror-hint-default-table\");\n    });\n    addMatches(\n        result,\n        search,\n        tables, function(w) {\n          return objectOrClass(w, \"CodeMirror-hint-table\");\n        }\n    );\n    if (!disableKeywords)\n      addMatches(result, search, keywords, function(w) {\n          return objectOrClass(w.toUpperCase(), \"CodeMirror-hint-keyword\");\n      });\n  }\n\n    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/hint/xml-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function matches(hint, typed, matchInMiddle) {\n    if (matchInMiddle) return hint.indexOf(typed) >= 0;\n    else return hint.lastIndexOf(typed, 0) == 0;\n  }\n\n  function getHints(cm, options) {\n    var tags = options && options.schemaInfo;\n    var quote = (options && options.quoteChar) || '\"';\n    var matchInMiddle = options && options.matchInMiddle;\n    if (!tags) return;\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (!inner.mode.xmlCurrentTag) return\n    var result = [], replaceToken = false, prefix;\n    var tag = /\\btag\\b/.test(token.type) && !/>$/.test(token.string);\n    var tagName = tag && /^\\w/.test(token.string), tagStart;\n\n    if (tagName) {\n      var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start);\n      var tagType = /<\\/$/.test(before) ? \"close\" : /<$/.test(before) ? \"open\" : null;\n      if (tagType) tagStart = token.start - (tagType == \"close\" ? 2 : 1);\n    } else if (tag && token.string == \"<\") {\n      tagType = \"open\";\n    } else if (tag && token.string == \"</\") {\n      tagType = \"close\";\n    }\n\n    var tagInfo = inner.mode.xmlCurrentTag(inner.state)\n    if (!tag && !tagInfo || tagType) {\n      if (tagName)\n        prefix = token.string;\n      replaceToken = tagType;\n      var context = inner.mode.xmlCurrentContext ? inner.mode.xmlCurrentContext(inner.state) : []\n      var inner = context.length && context[context.length - 1]\n      var curTag = inner && tags[inner]\n      var childList = inner ? curTag && curTag.children : tags[\"!top\"];\n      if (childList && tagType != \"close\") {\n        for (var i = 0; i < childList.length; ++i) if (!prefix || matches(childList[i], prefix, matchInMiddle))\n          result.push(\"<\" + childList[i]);\n      } else if (tagType != \"close\") {\n        for (var name in tags)\n          if (tags.hasOwnProperty(name) && name != \"!top\" && name != \"!attrs\" && (!prefix || matches(name, prefix, matchInMiddle)))\n            result.push(\"<\" + name);\n      }\n      if (inner && (!prefix || tagType == \"close\" && matches(inner, prefix, matchInMiddle)))\n        result.push(\"</\" + inner + \">\");\n    } else {\n      // Attribute completion\n      var curTag = tagInfo && tags[tagInfo.name], attrs = curTag && curTag.attrs;\n      var globalAttrs = tags[\"!attrs\"];\n      if (!attrs && !globalAttrs) return;\n      if (!attrs) {\n        attrs = globalAttrs;\n      } else if (globalAttrs) { // Combine tag-local and global attributes\n        var set = {};\n        for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm];\n        for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm];\n        attrs = set;\n      }\n      if (token.type == \"string\" || token.string == \"=\") { // A value\n        var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),\n                                 Pos(cur.line, token.type == \"string\" ? token.start : token.end));\n        var atName = before.match(/([^\\s\\u00a0=<>\\\"\\']+)=$/), atValues;\n        if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;\n        if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget\n        if (token.type == \"string\") {\n          prefix = token.string;\n          var n = 0;\n          if (/['\"]/.test(token.string.charAt(0))) {\n            quote = token.string.charAt(0);\n            prefix = token.string.slice(1);\n            n++;\n          }\n          var len = token.string.length;\n          if (/['\"]/.test(token.string.charAt(len - 1))) {\n            quote = token.string.charAt(len - 1);\n            prefix = token.string.substr(n, len - 2);\n          }\n          if (n) { // an opening quote\n            var line = cm.getLine(cur.line);\n            if (line.length > token.end && line.charAt(token.end) == quote) token.end++; // include a closing quote\n          }\n          replaceToken = true;\n        }\n        var returnHintsFromAtValues = function(atValues) {\n          if (atValues)\n            for (var i = 0; i < atValues.length; ++i) if (!prefix || matches(atValues[i], prefix, matchInMiddle))\n              result.push(quote + atValues[i] + quote);\n          return returnHints();\n        };\n        if (atValues && atValues.then) return atValues.then(returnHintsFromAtValues);\n        return returnHintsFromAtValues(atValues);\n      } else { // An attribute name\n        if (token.type == \"attribute\") {\n          prefix = token.string;\n          replaceToken = true;\n        }\n        for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || matches(attr, prefix, matchInMiddle)))\n          result.push(attr);\n      }\n    }\n    function returnHints() {\n      return {\n        list: result,\n        from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur,\n        to: replaceToken ? Pos(cur.line, token.end) : cur\n      };\n    }\n    return returnHints();\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"xml\", getHints);\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/coffeescript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js\n\n// declare global: coffeelint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"coffeescript\", function(text) {\n  var found = [];\n  if (!window.coffeelint) {\n    if (window.console) {\n      window.console.error(\"Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run.\");\n    }\n    return found;\n  }\n  var parseError = function(err) {\n    var loc = err.lineNumber;\n    found.push({from: CodeMirror.Pos(loc-1, 0),\n                to: CodeMirror.Pos(loc, 0),\n                severity: err.level,\n                message: err.message});\n  };\n  try {\n    var res = coffeelint.lint(text);\n    for(var i = 0; i < res.length; i++) {\n      parseError(res[i]);\n    }\n  } catch(e) {\n    found.push({from: CodeMirror.Pos(e.location.first_line, 0),\n                to: CodeMirror.Pos(e.location.last_line, e.location.last_column),\n                severity: 'error',\n                message: e.message});\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/css-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Depends on csslint.js from https://github.com/stubbornella/csslint\n\n// declare global: CSSLint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"css\", function(text, options) {\n  var found = [];\n  if (!window.CSSLint) {\n    if (window.console) {\n        window.console.error(\"Error: window.CSSLint not defined, CodeMirror CSS linting cannot run.\");\n    }\n    return found;\n  }\n  var results = CSSLint.verify(text, options), messages = results.messages, message = null;\n  for ( var i = 0; i < messages.length; i++) {\n    message = messages[i];\n    var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;\n    found.push({\n      from: CodeMirror.Pos(startLine, startCol),\n      to: CodeMirror.Pos(endLine, endCol),\n      message: message.message,\n      severity : message.type\n    });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/html-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js\n\n// declare global: HTMLHint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"htmlhint\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"htmlhint\"], mod);\n  else // Plain browser env\n    mod(CodeMirror, window.HTMLHint);\n})(function(CodeMirror, HTMLHint) {\n  \"use strict\";\n\n  var defaultRules = {\n    \"tagname-lowercase\": true,\n    \"attr-lowercase\": true,\n    \"attr-value-double-quotes\": true,\n    \"doctype-first\": false,\n    \"tag-pair\": true,\n    \"spec-char-escape\": true,\n    \"id-unique\": true,\n    \"src-not-empty\": true,\n    \"attr-no-duplication\": true\n  };\n\n  CodeMirror.registerHelper(\"lint\", \"html\", function(text, options) {\n    var found = [];\n    if (HTMLHint && !HTMLHint.verify) {\n      if(typeof HTMLHint.default !== 'undefined') {\n        HTMLHint = HTMLHint.default;\n      } else {\n        HTMLHint = HTMLHint.HTMLHint;\n      }\n    }\n    if (!HTMLHint) HTMLHint = window.HTMLHint;\n    if (!HTMLHint) {\n      if (window.console) {\n          window.console.error(\"Error: HTMLHint not found, not defined on window, or not available through define/require, CodeMirror HTML linting cannot run.\");\n      }\n      return found;\n    }\n    var messages = HTMLHint.verify(text, options && options.rules || defaultRules);\n    for (var i = 0; i < messages.length; i++) {\n      var message = messages[i];\n      var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;\n      found.push({\n        from: CodeMirror.Pos(startLine, startCol),\n        to: CodeMirror.Pos(endLine, endCol),\n        message: message.message,\n        severity : message.type\n      });\n    }\n    return found;\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/javascript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Depends on jshint.js from https://github.com/jshint/jshint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: JSHINT\n\n  function validator(text, options) {\n    if (!window.JSHINT) {\n      if (window.console) {\n        window.console.error(\"Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run.\");\n      }\n      return [];\n    }\n    if (!options.indent) // JSHint error.character actually is a column index, this fixes underlining on lines using tabs for indentation\n      options.indent = 1; // JSHint default value is 4\n    JSHINT(text, options, options.globals);\n    var errors = JSHINT.data().errors, result = [];\n    if (errors) parseErrors(errors, result);\n    return result;\n  }\n\n  CodeMirror.registerHelper(\"lint\", \"javascript\", validator);\n\n  function parseErrors(errors, output) {\n    for ( var i = 0; i < errors.length; i++) {\n      var error = errors[i];\n      if (error) {\n        if (error.line <= 0) {\n          if (window.console) {\n            window.console.warn(\"Cannot display JSHint error (invalid line \" + error.line + \")\", error);\n          }\n          continue;\n        }\n\n        var start = error.character - 1, end = start + 1;\n        if (error.evidence) {\n          var index = error.evidence.substring(start).search(/.\\b/);\n          if (index > -1) {\n            end += index;\n          }\n        }\n\n        // Convert to format expected by validation service\n        var hint = {\n          message: error.reason,\n          severity: error.code ? (error.code.startsWith('W') ? \"warning\" : \"error\") : \"error\",\n          from: CodeMirror.Pos(error.line - 1, start),\n          to: CodeMirror.Pos(error.line - 1, end)\n        };\n\n        output.push(hint);\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/json-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Depends on jsonlint.js from https://github.com/zaach/jsonlint\n\n// declare global: jsonlint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"json\", function(text) {\n  var found = [];\n  if (!window.jsonlint) {\n    if (window.console) {\n      window.console.error(\"Error: window.jsonlint not defined, CodeMirror JSON linting cannot run.\");\n    }\n    return found;\n  }\n  // for jsonlint's web dist jsonlint is exported as an object with a single property parser, of which parseError\n  // is a subproperty\n  var jsonlint = window.jsonlint.parser || window.jsonlint\n  jsonlint.parseError = function(str, hash) {\n    var loc = hash.loc;\n    found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),\n                to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),\n                message: str});\n  };\n  try { jsonlint.parse(text); }\n  catch(e) {}\n  return found;\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/lint.css",
    "content": "/* The lint marker gutter */\n.CodeMirror-lint-markers {\n  width: 16px;\n}\n\n.CodeMirror-lint-tooltip {\n  background-color: #ffd;\n  border: 1px solid black;\n  border-radius: 4px 4px 4px 4px;\n  color: black;\n  font-family: monospace;\n  font-size: 10pt;\n  overflow: hidden;\n  padding: 2px 5px;\n  position: fixed;\n  white-space: pre;\n  white-space: pre-wrap;\n  z-index: 100;\n  max-width: 600px;\n  opacity: 0;\n  transition: opacity .4s;\n  -moz-transition: opacity .4s;\n  -webkit-transition: opacity .4s;\n  -o-transition: opacity .4s;\n  -ms-transition: opacity .4s;\n}\n\n.CodeMirror-lint-mark {\n  background-position: left bottom;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-lint-mark-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-mark-error {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==\");\n}\n\n.CodeMirror-lint-marker {\n  background-position: center center;\n  background-repeat: no-repeat;\n  cursor: pointer;\n  display: inline-block;\n  height: 16px;\n  width: 16px;\n  vertical-align: middle;\n  position: relative;\n}\n\n.CodeMirror-lint-message {\n  padding-left: 18px;\n  background-position: top left;\n  background-repeat: no-repeat;\n}\n\n.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-multiple {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\");\n  background-repeat: no-repeat;\n  background-position: right bottom;\n  width: 100%; height: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var GUTTER_ID = \"CodeMirror-lint-markers\";\n\n  function showTooltip(cm, e, content) {\n    var tt = document.createElement(\"div\");\n    tt.className = \"CodeMirror-lint-tooltip cm-s-\" + cm.options.theme;\n    tt.appendChild(content.cloneNode(true));\n    if (cm.state.lint.options.selfContain)\n      cm.getWrapperElement().appendChild(tt);\n    else\n      document.body.appendChild(tt);\n\n    function position(e) {\n      if (!tt.parentNode) return CodeMirror.off(document, \"mousemove\", position);\n      tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + \"px\";\n      tt.style.left = (e.clientX + 5) + \"px\";\n    }\n    CodeMirror.on(document, \"mousemove\", position);\n    position(e);\n    if (tt.style.opacity != null) tt.style.opacity = 1;\n    return tt;\n  }\n  function rm(elt) {\n    if (elt.parentNode) elt.parentNode.removeChild(elt);\n  }\n  function hideTooltip(tt) {\n    if (!tt.parentNode) return;\n    if (tt.style.opacity == null) rm(tt);\n    tt.style.opacity = 0;\n    setTimeout(function() { rm(tt); }, 600);\n  }\n\n  function showTooltipFor(cm, e, content, node) {\n    var tooltip = showTooltip(cm, e, content);\n    function hide() {\n      CodeMirror.off(node, \"mouseout\", hide);\n      if (tooltip) { hideTooltip(tooltip); tooltip = null; }\n    }\n    var poll = setInterval(function() {\n      if (tooltip) for (var n = node;; n = n.parentNode) {\n        if (n && n.nodeType == 11) n = n.host;\n        if (n == document.body) return;\n        if (!n) { hide(); break; }\n      }\n      if (!tooltip) return clearInterval(poll);\n    }, 400);\n    CodeMirror.on(node, \"mouseout\", hide);\n  }\n\n  function LintState(cm, options, hasGutter) {\n    this.marked = [];\n    this.options = options;\n    this.timeout = null;\n    this.hasGutter = hasGutter;\n    this.onMouseOver = function(e) { onMouseOver(cm, e); };\n    this.waitingFor = 0\n  }\n\n  function parseOptions(_cm, options) {\n    if (options instanceof Function) return {getAnnotations: options};\n    if (!options || options === true) options = {};\n    return options;\n  }\n\n  function clearMarks(cm) {\n    var state = cm.state.lint;\n    if (state.hasGutter) cm.clearGutter(GUTTER_ID);\n    for (var i = 0; i < state.marked.length; ++i)\n      state.marked[i].clear();\n    state.marked.length = 0;\n  }\n\n  function makeMarker(cm, labels, severity, multiple, tooltips) {\n    var marker = document.createElement(\"div\"), inner = marker;\n    marker.className = \"CodeMirror-lint-marker CodeMirror-lint-marker-\" + severity;\n    if (multiple) {\n      inner = marker.appendChild(document.createElement(\"div\"));\n      inner.className = \"CodeMirror-lint-marker CodeMirror-lint-marker-multiple\";\n    }\n\n    if (tooltips != false) CodeMirror.on(inner, \"mouseover\", function(e) {\n      showTooltipFor(cm, e, labels, inner);\n    });\n\n    return marker;\n  }\n\n  function getMaxSeverity(a, b) {\n    if (a == \"error\") return a;\n    else return b;\n  }\n\n  function groupByLine(annotations) {\n    var lines = [];\n    for (var i = 0; i < annotations.length; ++i) {\n      var ann = annotations[i], line = ann.from.line;\n      (lines[line] || (lines[line] = [])).push(ann);\n    }\n    return lines;\n  }\n\n  function annotationTooltip(ann) {\n    var severity = ann.severity;\n    if (!severity) severity = \"error\";\n    var tip = document.createElement(\"div\");\n    tip.className = \"CodeMirror-lint-message CodeMirror-lint-message-\" + severity;\n    if (typeof ann.messageHTML != 'undefined') {\n      tip.innerHTML = ann.messageHTML;\n    } else {\n      tip.appendChild(document.createTextNode(ann.message));\n    }\n    return tip;\n  }\n\n  function lintAsync(cm, getAnnotations, passOptions) {\n    var state = cm.state.lint\n    var id = ++state.waitingFor\n    function abort() {\n      id = -1\n      cm.off(\"change\", abort)\n    }\n    cm.on(\"change\", abort)\n    getAnnotations(cm.getValue(), function(annotations, arg2) {\n      cm.off(\"change\", abort)\n      if (state.waitingFor != id) return\n      if (arg2 && annotations instanceof CodeMirror) annotations = arg2\n      cm.operation(function() {updateLinting(cm, annotations)})\n    }, passOptions, cm);\n  }\n\n  function startLinting(cm) {\n    var state = cm.state.lint, options = state.options;\n    /*\n     * Passing rules in `options` property prevents JSHint (and other linters) from complaining\n     * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc.\n     */\n    var passOptions = options.options || options;\n    var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), \"lint\");\n    if (!getAnnotations) return;\n    if (options.async || getAnnotations.async) {\n      lintAsync(cm, getAnnotations, passOptions)\n    } else {\n      var annotations = getAnnotations(cm.getValue(), passOptions, cm);\n      if (!annotations) return;\n      if (annotations.then) annotations.then(function(issues) {\n        cm.operation(function() {updateLinting(cm, issues)})\n      });\n      else cm.operation(function() {updateLinting(cm, annotations)})\n    }\n  }\n\n  function updateLinting(cm, annotationsNotSorted) {\n    clearMarks(cm);\n    var state = cm.state.lint, options = state.options;\n\n    var annotations = groupByLine(annotationsNotSorted);\n\n    for (var line = 0; line < annotations.length; ++line) {\n      var anns = annotations[line];\n      if (!anns) continue;\n\n      // filter out duplicate messages\n      var message = [];\n      anns = anns.filter(function(item) { return message.indexOf(item.message) > -1 ? false : message.push(item.message) });\n\n      var maxSeverity = null;\n      var tipLabel = state.hasGutter && document.createDocumentFragment();\n\n      for (var i = 0; i < anns.length; ++i) {\n        var ann = anns[i];\n        var severity = ann.severity;\n        if (!severity) severity = \"error\";\n        maxSeverity = getMaxSeverity(maxSeverity, severity);\n\n        if (options.formatAnnotation) ann = options.formatAnnotation(ann);\n        if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));\n\n        if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {\n          className: \"CodeMirror-lint-mark CodeMirror-lint-mark-\" + severity,\n          __annotation: ann\n        }));\n      }\n      // use original annotations[line] to show multiple messages\n      if (state.hasGutter)\n        cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, annotations[line].length > 1,\n                                                       state.options.tooltips));\n    }\n    if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.lint;\n    if (!state) return;\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);\n  }\n\n  function popupTooltips(cm, annotations, e) {\n    var target = e.target || e.srcElement;\n    var tooltip = document.createDocumentFragment();\n    for (var i = 0; i < annotations.length; i++) {\n      var ann = annotations[i];\n      tooltip.appendChild(annotationTooltip(ann));\n    }\n    showTooltipFor(cm, e, tooltip, target);\n  }\n\n  function onMouseOver(cm, e) {\n    var target = e.target || e.srcElement;\n    if (!/\\bCodeMirror-lint-mark-/.test(target.className)) return;\n    var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;\n    var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, \"client\"));\n\n    var annotations = [];\n    for (var i = 0; i < spans.length; ++i) {\n      var ann = spans[i].__annotation;\n      if (ann) annotations.push(ann);\n    }\n    if (annotations.length) popupTooltips(cm, annotations, e);\n  }\n\n  CodeMirror.defineOption(\"lint\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      clearMarks(cm);\n      if (cm.state.lint.options.lintOnChange !== false)\n        cm.off(\"change\", onChange);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseover\", cm.state.lint.onMouseOver);\n      clearTimeout(cm.state.lint.timeout);\n      delete cm.state.lint;\n    }\n\n    if (val) {\n      var gutters = cm.getOption(\"gutters\"), hasLintGutter = false;\n      for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;\n      var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);\n      if (state.options.lintOnChange !== false)\n        cm.on(\"change\", onChange);\n      if (state.options.tooltips != false && state.options.tooltips != \"gutter\")\n        CodeMirror.on(cm.getWrapperElement(), \"mouseover\", state.onMouseOver);\n\n      startLinting(cm);\n    }\n  });\n\n  CodeMirror.defineExtension(\"performLint\", function() {\n    if (this.state.lint) startLinting(this);\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/lint/yaml-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n// Depends on js-yaml.js from https://github.com/nodeca/js-yaml\n\n// declare global: jsyaml\n\nCodeMirror.registerHelper(\"lint\", \"yaml\", function(text) {\n  var found = [];\n  if (!window.jsyaml) {\n    if (window.console) {\n      window.console.error(\"Error: window.jsyaml not defined, CodeMirror YAML linting cannot run.\");\n    }\n    return found;\n  }\n  try { jsyaml.loadAll(text); }\n  catch(e) {\n      var loc = e.mark,\n          // js-yaml YAMLException doesn't always provide an accurate lineno\n          // e.g., when there are multiple yaml docs\n          // ---\n          // ---\n          // foo:bar\n          from = loc ? CodeMirror.Pos(loc.line, loc.column) : CodeMirror.Pos(0, 0),\n          to = from;\n      found.push({ from: from, to: to, message: e.message });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/merge/merge.css",
    "content": ".CodeMirror-merge {\n  position: relative;\n  border: 1px solid #ddd;\n  white-space: pre;\n}\n\n.CodeMirror-merge, .CodeMirror-merge .CodeMirror {\n  height: 350px;\n}\n\n.CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }\n.CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }\n\n.CodeMirror-merge-pane {\n  display: inline-block;\n  white-space: normal;\n  vertical-align: top;\n}\n.CodeMirror-merge-pane-rightmost {\n  position: absolute;\n  right: 0px;\n  z-index: 1;\n}\n\n.CodeMirror-merge-gap {\n  z-index: 2;\n  display: inline-block;\n  height: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  overflow: hidden;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #ddd;\n  position: relative;\n  background: #f8f8f8;\n}\n\n.CodeMirror-merge-scrolllock-wrap {\n  position: absolute;\n  bottom: 0; left: 50%;\n}\n.CodeMirror-merge-scrolllock {\n  position: relative;\n  left: -50%;\n  cursor: pointer;\n  color: #555;\n  line-height: 1;\n}\n.CodeMirror-merge-scrolllock:after {\n  content: \"\\21db\\00a0\\00a0\\21da\";\n}\n.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after {\n  content: \"\\21db\\21da\";\n}\n\n.CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {\n  position: absolute;\n  left: 0; top: 0;\n  right: 0; bottom: 0;\n  line-height: 1;\n}\n\n.CodeMirror-merge-copy {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n  z-index: 3;\n}\n\n.CodeMirror-merge-copy-reverse {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n}\n\n.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }\n.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }\n\n.CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-chunk { background: #ffffe0; }\n.CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }\n.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }\n.CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk { background: #eef; }\n.CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }\n.CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }\n.CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }\n.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }\n.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }\n\n.CodeMirror-merge-collapsed-widget:before {\n  content: \"(...)\";\n}\n.CodeMirror-merge-collapsed-widget {\n  cursor: pointer;\n  color: #88b;\n  background: #eef;\n  border: 1px solid #ddf;\n  font-size: 90%;\n  padding: 0 3px;\n  border-radius: 4px;\n}\n.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/merge/merge.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\")); // Note non-packaged dependency diff_match_patch\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"diff_match_patch\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var Pos = CodeMirror.Pos;\n  var svgNS = \"http://www.w3.org/2000/svg\";\n\n  function DiffView(mv, type) {\n    this.mv = mv;\n    this.type = type;\n    this.classes = type == \"left\"\n      ? {chunk: \"CodeMirror-merge-l-chunk\",\n         start: \"CodeMirror-merge-l-chunk-start\",\n         end: \"CodeMirror-merge-l-chunk-end\",\n         insert: \"CodeMirror-merge-l-inserted\",\n         del: \"CodeMirror-merge-l-deleted\",\n         connect: \"CodeMirror-merge-l-connect\"}\n      : {chunk: \"CodeMirror-merge-r-chunk\",\n         start: \"CodeMirror-merge-r-chunk-start\",\n         end: \"CodeMirror-merge-r-chunk-end\",\n         insert: \"CodeMirror-merge-r-inserted\",\n         del: \"CodeMirror-merge-r-deleted\",\n         connect: \"CodeMirror-merge-r-connect\"};\n  }\n\n  DiffView.prototype = {\n    constructor: DiffView,\n    init: function(pane, orig, options) {\n      this.edit = this.mv.edit;\n      ;(this.edit.state.diffViews || (this.edit.state.diffViews = [])).push(this);\n      this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));\n      if (this.mv.options.connect == \"align\") {\n        if (!this.edit.state.trackAlignable) this.edit.state.trackAlignable = new TrackAlignable(this.edit)\n        this.orig.state.trackAlignable = new TrackAlignable(this.orig)\n      }\n      this.lockButton.title = this.edit.phrase(\"Toggle locked scrolling\");\n\n      this.orig.state.diffViews = [this];\n      var classLocation = options.chunkClassLocation || \"background\";\n      if (Object.prototype.toString.call(classLocation) != \"[object Array]\") classLocation = [classLocation]\n      this.classes.classLocation = classLocation\n\n      this.diff = getDiff(asString(orig), asString(options.value), this.mv.options.ignoreWhitespace);\n      this.chunks = getChunks(this.diff);\n      this.diffOutOfDate = this.dealigned = false;\n      this.needsScrollSync = null\n\n      this.showDifferences = options.showDifferences !== false;\n    },\n    registerEvents: function(otherDv) {\n      this.forceUpdate = registerUpdate(this);\n      setScrollLock(this, true, false);\n      registerScroll(this, otherDv);\n    },\n    setShowDifferences: function(val) {\n      val = val !== false;\n      if (val != this.showDifferences) {\n        this.showDifferences = val;\n        this.forceUpdate(\"full\");\n      }\n    }\n  };\n\n  function ensureDiff(dv) {\n    if (dv.diffOutOfDate) {\n      dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue(), dv.mv.options.ignoreWhitespace);\n      dv.chunks = getChunks(dv.diff);\n      dv.diffOutOfDate = false;\n      CodeMirror.signal(dv.edit, \"updateDiff\", dv.diff);\n    }\n  }\n\n  var updating = false;\n  function registerUpdate(dv) {\n    var edit = {from: 0, to: 0, marked: []};\n    var orig = {from: 0, to: 0, marked: []};\n    var debounceChange, updatingFast = false;\n    function update(mode) {\n      updating = true;\n      updatingFast = false;\n      if (mode == \"full\") {\n        if (dv.svg) clear(dv.svg);\n        if (dv.copyButtons) clear(dv.copyButtons);\n        clearMarks(dv.edit, edit.marked, dv.classes);\n        clearMarks(dv.orig, orig.marked, dv.classes);\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      ensureDiff(dv);\n      if (dv.showDifferences) {\n        updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);\n        updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);\n      }\n\n      if (dv.mv.options.connect == \"align\")\n        alignChunks(dv);\n      makeConnections(dv);\n      if (dv.needsScrollSync != null) syncScroll(dv, dv.needsScrollSync)\n\n      updating = false;\n    }\n    function setDealign(fast) {\n      if (updating) return;\n      dv.dealigned = true;\n      set(fast);\n    }\n    function set(fast) {\n      if (updating || updatingFast) return;\n      clearTimeout(debounceChange);\n      if (fast === true) updatingFast = true;\n      debounceChange = setTimeout(update, fast === true ? 20 : 250);\n    }\n    function change(_cm, change) {\n      if (!dv.diffOutOfDate) {\n        dv.diffOutOfDate = true;\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      // Update faster when a line was added/removed\n      setDealign(change.text.length - 1 != change.to.line - change.from.line);\n    }\n    function swapDoc() {\n      dv.diffOutOfDate = true;\n      dv.dealigned = true;\n      update(\"full\");\n    }\n    dv.edit.on(\"change\", change);\n    dv.orig.on(\"change\", change);\n    dv.edit.on(\"swapDoc\", swapDoc);\n    dv.orig.on(\"swapDoc\", swapDoc);\n    if (dv.mv.options.connect == \"align\") {\n      CodeMirror.on(dv.edit.state.trackAlignable, \"realign\", setDealign)\n      CodeMirror.on(dv.orig.state.trackAlignable, \"realign\", setDealign)\n    }\n    dv.edit.on(\"viewportChange\", function() { set(false); });\n    dv.orig.on(\"viewportChange\", function() { set(false); });\n    update();\n    return update;\n  }\n\n  function registerScroll(dv, otherDv) {\n    dv.edit.on(\"scroll\", function() {\n      syncScroll(dv, true) && makeConnections(dv);\n    });\n    dv.orig.on(\"scroll\", function() {\n      syncScroll(dv, false) && makeConnections(dv);\n      if (otherDv) syncScroll(otherDv, true) && makeConnections(otherDv);\n    });\n  }\n\n  function syncScroll(dv, toOrig) {\n    // Change handler will do a refresh after a timeout when diff is out of date\n    if (dv.diffOutOfDate) {\n      if (dv.lockScroll && dv.needsScrollSync == null) dv.needsScrollSync = toOrig\n      return false\n    }\n    dv.needsScrollSync = null\n    if (!dv.lockScroll) return true;\n    var editor, other, now = +new Date;\n    if (toOrig) { editor = dv.edit; other = dv.orig; }\n    else { editor = dv.orig; other = dv.edit; }\n    // Don't take action if the position of this editor was recently set\n    // (to prevent feedback loops)\n    if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 250 > now) return false;\n\n    var sInfo = editor.getScrollInfo();\n    if (dv.mv.options.connect == \"align\") {\n      targetPos = sInfo.top;\n    } else {\n      var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;\n      var mid = editor.lineAtHeight(midY, \"local\");\n      var around = chunkBoundariesAround(dv.chunks, mid, toOrig);\n      var off = getOffsets(editor, toOrig ? around.edit : around.orig);\n      var offOther = getOffsets(other, toOrig ? around.orig : around.edit);\n      var ratio = (midY - off.top) / (off.bot - off.top);\n      var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);\n\n      var botDist, mix;\n      // Some careful tweaking to make sure no space is left out of view\n      // when scrolling to top or bottom.\n      if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {\n        targetPos = targetPos * mix + sInfo.top * (1 - mix);\n      } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {\n        var otherInfo = other.getScrollInfo();\n        var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;\n        if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)\n          targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);\n      }\n    }\n\n    other.scrollTo(sInfo.left, targetPos);\n    other.state.scrollSetAt = now;\n    other.state.scrollSetBy = dv;\n    return true;\n  }\n\n  function getOffsets(editor, around) {\n    var bot = around.after;\n    if (bot == null) bot = editor.lastLine() + 1;\n    return {top: editor.heightAtLine(around.before || 0, \"local\"),\n            bot: editor.heightAtLine(bot, \"local\")};\n  }\n\n  function setScrollLock(dv, val, action) {\n    dv.lockScroll = val;\n    if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);\n    (val ? CodeMirror.addClass : CodeMirror.rmClass)(dv.lockButton, \"CodeMirror-merge-scrolllock-enabled\");\n  }\n\n  // Updating the marks for editor content\n\n  function removeClass(editor, line, classes) {\n    var locs = classes.classLocation\n    for (var i = 0; i < locs.length; i++) {\n      editor.removeLineClass(line, locs[i], classes.chunk);\n      editor.removeLineClass(line, locs[i], classes.start);\n      editor.removeLineClass(line, locs[i], classes.end);\n    }\n  }\n\n  function clearMarks(editor, arr, classes) {\n    for (var i = 0; i < arr.length; ++i) {\n      var mark = arr[i];\n      if (mark instanceof CodeMirror.TextMarker)\n        mark.clear();\n      else if (mark.parent)\n        removeClass(editor, mark, classes);\n    }\n    arr.length = 0;\n  }\n\n  // FIXME maybe add a margin around viewport to prevent too many updates\n  function updateMarks(editor, diff, state, type, classes) {\n    var vp = editor.getViewport();\n    editor.operation(function() {\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        clearMarks(editor, state.marked, classes);\n        markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);\n        state.from = vp.from; state.to = vp.to;\n      } else {\n        if (vp.from < state.from) {\n          markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);\n          state.from = vp.from;\n        }\n        if (vp.to > state.to) {\n          markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);\n          state.to = vp.to;\n        }\n      }\n    });\n  }\n\n  function addClass(editor, lineNr, classes, main, start, end) {\n    var locs = classes.classLocation, line = editor.getLineHandle(lineNr);\n    for (var i = 0; i < locs.length; i++) {\n      if (main) editor.addLineClass(line, locs[i], classes.chunk);\n      if (start) editor.addLineClass(line, locs[i], classes.start);\n      if (end) editor.addLineClass(line, locs[i], classes.end);\n    }\n    return line;\n  }\n\n  function markChanges(editor, diff, type, marks, from, to, classes) {\n    var pos = Pos(0, 0);\n    var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));\n    var cls = type == DIFF_DELETE ? classes.del : classes.insert;\n    function markChunk(start, end) {\n      var bfrom = Math.max(from, start), bto = Math.min(to, end);\n      for (var i = bfrom; i < bto; ++i)\n        marks.push(addClass(editor, i, classes, true, i == start, i == end - 1));\n      // When the chunk is empty, make sure a horizontal line shows up\n      if (start == end && bfrom == end && bto == end) {\n        if (bfrom)\n          marks.push(addClass(editor, bfrom - 1, classes, false, false, true));\n        else\n          marks.push(addClass(editor, bfrom, classes, false, true, false));\n      }\n    }\n\n    var chunkStart = 0, pending = false;\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0], str = part[1];\n      if (tp == DIFF_EQUAL) {\n        var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);\n        moveOver(pos, str);\n        var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);\n        if (cleanTo > cleanFrom) {\n          if (pending) { markChunk(chunkStart, cleanFrom); pending = false }\n          chunkStart = cleanTo;\n        }\n      } else {\n        pending = true\n        if (tp == type) {\n          var end = moveOver(pos, str, true);\n          var a = posMax(top, pos), b = posMin(bot, end);\n          if (!posEq(a, b))\n            marks.push(editor.markText(a, b, {className: cls}));\n          pos = end;\n        }\n      }\n    }\n    if (pending) markChunk(chunkStart, pos.line + 1);\n  }\n\n  // Updating the gap between editor and original\n\n  function makeConnections(dv) {\n    if (!dv.showDifferences) return;\n\n    if (dv.svg) {\n      clear(dv.svg);\n      var w = dv.gap.offsetWidth;\n      attrs(dv.svg, \"width\", w, \"height\", dv.gap.offsetHeight);\n    }\n    if (dv.copyButtons) clear(dv.copyButtons);\n\n    var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();\n    var outerTop = dv.mv.wrap.getBoundingClientRect().top\n    var sTopEdit = outerTop - dv.edit.getScrollerElement().getBoundingClientRect().top + dv.edit.getScrollInfo().top\n    var sTopOrig = outerTop - dv.orig.getScrollerElement().getBoundingClientRect().top + dv.orig.getScrollInfo().top;\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var ch = dv.chunks[i];\n      if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&\n          ch.origFrom <= vpOrig.to && ch.origTo >= vpOrig.from)\n        drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w);\n    }\n  }\n\n  function getMatchingOrigLine(editLine, chunks) {\n    var editStart = 0, origStart = 0;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      if (chunk.editTo > editLine && chunk.editFrom <= editLine) return null;\n      if (chunk.editFrom > editLine) break;\n      editStart = chunk.editTo;\n      origStart = chunk.origTo;\n    }\n    return origStart + (editLine - editStart);\n  }\n\n  // Combines information about chunks and widgets/markers to return\n  // an array of lines, in a single editor, that probably need to be\n  // aligned with their counterparts in the editor next to it.\n  function alignableFor(cm, chunks, isOrig) {\n    var tracker = cm.state.trackAlignable\n    var start = cm.firstLine(), trackI = 0\n    var result = []\n    for (var i = 0;; i++) {\n      var chunk = chunks[i]\n      var chunkStart = !chunk ? 1e9 : isOrig ? chunk.origFrom : chunk.editFrom\n      for (; trackI < tracker.alignable.length; trackI += 2) {\n        var n = tracker.alignable[trackI] + 1\n        if (n <= start) continue\n        if (n <= chunkStart) result.push(n)\n        else break\n      }\n      if (!chunk) break\n      result.push(start = isOrig ? chunk.origTo : chunk.editTo)\n    }\n    return result\n  }\n\n  // Given information about alignable lines in two editors, fill in\n  // the result (an array of three-element arrays) to reflect the\n  // lines that need to be aligned with each other.\n  function mergeAlignable(result, origAlignable, chunks, setIndex) {\n    var rI = 0, origI = 0, chunkI = 0, diff = 0\n    outer: for (;; rI++) {\n      var nextR = result[rI], nextO = origAlignable[origI]\n      if (!nextR && nextO == null) break\n\n      var rLine = nextR ? nextR[0] : 1e9, oLine = nextO == null ? 1e9 : nextO\n      while (chunkI < chunks.length) {\n        var chunk = chunks[chunkI]\n        if (chunk.origFrom <= oLine && chunk.origTo > oLine) {\n          origI++\n          rI--\n          continue outer;\n        }\n        if (chunk.editTo > rLine) {\n          if (chunk.editFrom <= rLine) continue outer;\n          break\n        }\n        diff += (chunk.origTo - chunk.origFrom) - (chunk.editTo - chunk.editFrom)\n        chunkI++\n      }\n      if (rLine == oLine - diff) {\n        nextR[setIndex] = oLine\n        origI++\n      } else if (rLine < oLine - diff) {\n        nextR[setIndex] = rLine + diff\n      } else {\n        var record = [oLine - diff, null, null]\n        record[setIndex] = oLine\n        result.splice(rI, 0, record)\n        origI++\n      }\n    }\n  }\n\n  function findAlignedLines(dv, other) {\n    var alignable = alignableFor(dv.edit, dv.chunks, false), result = []\n    if (other) for (var i = 0, j = 0; i < other.chunks.length; i++) {\n      var n = other.chunks[i].editTo\n      while (j < alignable.length && alignable[j] < n) j++\n      if (j == alignable.length || alignable[j] != n) alignable.splice(j++, 0, n)\n    }\n    for (var i = 0; i < alignable.length; i++)\n      result.push([alignable[i], null, null])\n\n    mergeAlignable(result, alignableFor(dv.orig, dv.chunks, true), dv.chunks, 1)\n    if (other)\n      mergeAlignable(result, alignableFor(other.orig, other.chunks, true), other.chunks, 2)\n\n    return result\n  }\n\n  function alignChunks(dv, force) {\n    if (!dv.dealigned && !force) return;\n    if (!dv.orig.curOp) return dv.orig.operation(function() {\n      alignChunks(dv, force);\n    });\n\n    dv.dealigned = false;\n    var other = dv.mv.left == dv ? dv.mv.right : dv.mv.left;\n    if (other) {\n      ensureDiff(other);\n      other.dealigned = false;\n    }\n    var linesToAlign = findAlignedLines(dv, other);\n\n    // Clear old aligners\n    var aligners = dv.mv.aligners;\n    for (var i = 0; i < aligners.length; i++)\n      aligners[i].clear();\n    aligners.length = 0;\n\n    var cm = [dv.edit, dv.orig], scroll = [], offset = []\n    if (other) cm.push(other.orig);\n    for (var i = 0; i < cm.length; i++) {\n      scroll.push(cm[i].getScrollInfo().top);\n      offset.push(-cm[i].getScrollerElement().getBoundingClientRect().top)\n    }\n\n    if (offset[0] != offset[1] || cm.length == 3 && offset[1] != offset[2])\n      alignLines(cm, offset, [0, 0, 0], aligners)\n    for (var ln = 0; ln < linesToAlign.length; ln++)\n      alignLines(cm, offset, linesToAlign[ln], aligners);\n\n    for (var i = 0; i < cm.length; i++)\n      cm[i].scrollTo(null, scroll[i]);\n  }\n\n  function alignLines(cm, cmOffset, lines, aligners) {\n    var maxOffset = -1e8, offset = [];\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var off = cm[i].heightAtLine(lines[i], \"local\") - cmOffset[i];\n      offset[i] = off;\n      maxOffset = Math.max(maxOffset, off);\n    }\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var diff = maxOffset - offset[i];\n      if (diff > 1)\n        aligners.push(padAbove(cm[i], lines[i], diff));\n    }\n  }\n\n  function padAbove(cm, line, size) {\n    var above = true;\n    if (line > cm.lastLine()) {\n      line--;\n      above = false;\n    }\n    var elt = document.createElement(\"div\");\n    elt.className = \"CodeMirror-merge-spacer\";\n    elt.style.height = size + \"px\"; elt.style.minWidth = \"1px\";\n    return cm.addLineWidget(line, elt, {height: size, above: above, mergeSpacer: true, handleMouseEvents: true});\n  }\n\n  function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {\n    var flip = dv.type == \"left\";\n    var top = dv.orig.heightAtLine(chunk.origFrom, \"local\", true) - sTopOrig;\n    if (dv.svg) {\n      var topLpx = top;\n      var topRpx = dv.edit.heightAtLine(chunk.editFrom, \"local\", true) - sTopEdit;\n      if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }\n      var botLpx = dv.orig.heightAtLine(chunk.origTo, \"local\", true) - sTopOrig;\n      var botRpx = dv.edit.heightAtLine(chunk.editTo, \"local\", true) - sTopEdit;\n      if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }\n      var curveTop = \" C \" + w/2 + \" \" + topRpx + \" \" + w/2 + \" \" + topLpx + \" \" + (w + 2) + \" \" + topLpx;\n      var curveBot = \" C \" + w/2 + \" \" + botLpx + \" \" + w/2 + \" \" + botRpx + \" -1 \" + botRpx;\n      attrs(dv.svg.appendChild(document.createElementNS(svgNS, \"path\")),\n            \"d\", \"M -1 \" + topRpx + curveTop + \" L \" + (w + 2) + \" \" + botLpx + curveBot + \" z\",\n            \"class\", dv.classes.connect);\n    }\n    if (dv.copyButtons) {\n      var copy = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"left\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                \"CodeMirror-merge-copy\"));\n      var editOriginals = dv.mv.options.allowEditingOriginals;\n      copy.title = dv.edit.phrase(editOriginals ? \"Push to left\" : \"Revert chunk\");\n      copy.chunk = chunk;\n      copy.style.top = (chunk.origTo > chunk.origFrom ? top : dv.edit.heightAtLine(chunk.editFrom, \"local\") - sTopEdit) + \"px\";\n\n      if (editOriginals) {\n        var topReverse = dv.edit.heightAtLine(chunk.editFrom, \"local\") - sTopEdit;\n        var copyReverse = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"right\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                         \"CodeMirror-merge-copy-reverse\"));\n        copyReverse.title = \"Push to right\";\n        copyReverse.chunk = {editFrom: chunk.origFrom, editTo: chunk.origTo,\n                             origFrom: chunk.editFrom, origTo: chunk.editTo};\n        copyReverse.style.top = topReverse + \"px\";\n        dv.type == \"right\" ? copyReverse.style.left = \"2px\" : copyReverse.style.right = \"2px\";\n      }\n    }\n  }\n\n  function copyChunk(dv, to, from, chunk) {\n    if (dv.diffOutOfDate) return;\n    var origStart = chunk.origTo > from.lastLine() ? Pos(chunk.origFrom - 1) : Pos(chunk.origFrom, 0)\n    var origEnd = Pos(chunk.origTo, 0)\n    var editStart = chunk.editTo > to.lastLine() ? Pos(chunk.editFrom - 1) : Pos(chunk.editFrom, 0)\n    var editEnd = Pos(chunk.editTo, 0)\n    var handler = dv.mv.options.revertChunk\n    if (handler)\n      handler(dv.mv, from, origStart, origEnd, to, editStart, editEnd)\n    else\n      to.replaceRange(from.getRange(origStart, origEnd), editStart, editEnd)\n  }\n\n  // Merge view, containing 0, 1, or 2 diff views.\n\n  var MergeView = CodeMirror.MergeView = function(node, options) {\n    if (!(this instanceof MergeView)) return new MergeView(node, options);\n\n    this.options = options;\n    var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;\n\n    var hasLeft = origLeft != null, hasRight = origRight != null;\n    var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);\n    var wrap = [], left = this.left = null, right = this.right = null;\n    var self = this;\n\n    if (hasLeft) {\n      left = this.left = new DiffView(this, \"left\");\n      var leftPane = elt(\"div\", null, \"CodeMirror-merge-pane CodeMirror-merge-left\");\n      wrap.push(leftPane);\n      wrap.push(buildGap(left));\n    }\n\n    var editPane = elt(\"div\", null, \"CodeMirror-merge-pane CodeMirror-merge-editor\");\n    wrap.push(editPane);\n\n    if (hasRight) {\n      right = this.right = new DiffView(this, \"right\");\n      wrap.push(buildGap(right));\n      var rightPane = elt(\"div\", null, \"CodeMirror-merge-pane CodeMirror-merge-right\");\n      wrap.push(rightPane);\n    }\n\n    (hasRight ? rightPane : editPane).className += \" CodeMirror-merge-pane-rightmost\";\n\n    wrap.push(elt(\"div\", null, null, \"height: 0; clear: both;\"));\n\n    var wrapElt = this.wrap = node.appendChild(elt(\"div\", wrap, \"CodeMirror-merge CodeMirror-merge-\" + panes + \"pane\"));\n    this.edit = CodeMirror(editPane, copyObj(options));\n\n    if (left) left.init(leftPane, origLeft, options);\n    if (right) right.init(rightPane, origRight, options);\n    if (options.collapseIdentical)\n      this.editor().operation(function() {\n        collapseIdenticalStretches(self, options.collapseIdentical);\n      });\n    if (options.connect == \"align\") {\n      this.aligners = [];\n      alignChunks(this.left || this.right, true);\n    }\n    if (left) left.registerEvents(right)\n    if (right) right.registerEvents(left)\n\n\n    var onResize = function() {\n      if (left) makeConnections(left);\n      if (right) makeConnections(right);\n    };\n    CodeMirror.on(window, \"resize\", onResize);\n    var resizeInterval = setInterval(function() {\n      for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}\n      if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, \"resize\", onResize); }\n    }, 5000);\n  };\n\n  function buildGap(dv) {\n    var lock = dv.lockButton = elt(\"div\", null, \"CodeMirror-merge-scrolllock\");\n    var lockWrap = elt(\"div\", [lock], \"CodeMirror-merge-scrolllock-wrap\");\n    CodeMirror.on(lock, \"click\", function() { setScrollLock(dv, !dv.lockScroll); });\n    var gapElts = [lockWrap];\n    if (dv.mv.options.revertButtons !== false) {\n      dv.copyButtons = elt(\"div\", null, \"CodeMirror-merge-copybuttons-\" + dv.type);\n      CodeMirror.on(dv.copyButtons, \"click\", function(e) {\n        var node = e.target || e.srcElement;\n        if (!node.chunk) return;\n        if (node.className == \"CodeMirror-merge-copy-reverse\") {\n          copyChunk(dv, dv.orig, dv.edit, node.chunk);\n          return;\n        }\n        copyChunk(dv, dv.edit, dv.orig, node.chunk);\n      });\n      gapElts.unshift(dv.copyButtons);\n    }\n    if (dv.mv.options.connect != \"align\") {\n      var svg = document.createElementNS && document.createElementNS(svgNS, \"svg\");\n      if (svg && !svg.createSVGRect) svg = null;\n      dv.svg = svg;\n      if (svg) gapElts.push(svg);\n    }\n\n    return dv.gap = elt(\"div\", gapElts, \"CodeMirror-merge-gap\");\n  }\n\n  MergeView.prototype = {\n    constructor: MergeView,\n    editor: function() { return this.edit; },\n    rightOriginal: function() { return this.right && this.right.orig; },\n    leftOriginal: function() { return this.left && this.left.orig; },\n    setShowDifferences: function(val) {\n      if (this.right) this.right.setShowDifferences(val);\n      if (this.left) this.left.setShowDifferences(val);\n    },\n    rightChunks: function() {\n      if (this.right) { ensureDiff(this.right); return this.right.chunks; }\n    },\n    leftChunks: function() {\n      if (this.left) { ensureDiff(this.left); return this.left.chunks; }\n    }\n  };\n\n  function asString(obj) {\n    if (typeof obj == \"string\") return obj;\n    else return obj.getValue();\n  }\n\n  // Operations on diffs\n  var dmp;\n  function getDiff(a, b, ignoreWhitespace) {\n    if (!dmp) dmp = new diff_match_patch();\n\n    var diff = dmp.diff_main(a, b);\n    // The library sometimes leaves in empty parts, which confuse the algorithm\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i];\n      if (ignoreWhitespace ? !/[^ \\t]/.test(part[1]) : !part[1]) {\n        diff.splice(i--, 1);\n      } else if (i && diff[i - 1][0] == part[0]) {\n        diff.splice(i--, 1);\n        diff[i][1] += part[1];\n      }\n    }\n    return diff;\n  }\n\n  function getChunks(diff) {\n    var chunks = [];\n    if (!diff.length) return chunks;\n    var startEdit = 0, startOrig = 0;\n    var edit = Pos(0, 0), orig = Pos(0, 0);\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0];\n      if (tp == DIFF_EQUAL) {\n        var startOff = !startOfLineClean(diff, i) || edit.line < startEdit || orig.line < startOrig ? 1 : 0;\n        var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;\n        moveOver(edit, part[1], null, orig);\n        var endOff = endOfLineClean(diff, i) ? 1 : 0;\n        var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;\n        if (cleanToEdit > cleanFromEdit) {\n          if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,\n                              editFrom: startEdit, editTo: cleanFromEdit});\n          startEdit = cleanToEdit; startOrig = cleanToOrig;\n        }\n      } else {\n        moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);\n      }\n    }\n    if (startEdit <= edit.line || startOrig <= orig.line)\n      chunks.push({origFrom: startOrig, origTo: orig.line + 1,\n                   editFrom: startEdit, editTo: edit.line + 1});\n    return chunks;\n  }\n\n  function endOfLineClean(diff, i) {\n    if (i == diff.length - 1) return true;\n    var next = diff[i + 1][1];\n    if ((next.length == 1 && i < diff.length - 2) || next.charCodeAt(0) != 10) return false;\n    if (i == diff.length - 2) return true;\n    next = diff[i + 2][1];\n    return (next.length > 1 || i == diff.length - 3) && next.charCodeAt(0) == 10;\n  }\n\n  function startOfLineClean(diff, i) {\n    if (i == 0) return true;\n    var last = diff[i - 1][1];\n    if (last.charCodeAt(last.length - 1) != 10) return false;\n    if (i == 1) return true;\n    last = diff[i - 2][1];\n    return last.charCodeAt(last.length - 1) == 10;\n  }\n\n  function chunkBoundariesAround(chunks, n, nInEdit) {\n    var beforeE, afterE, beforeO, afterO;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      var fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom;\n      var toLocal = nInEdit ? chunk.editTo : chunk.origTo;\n      if (afterE == null) {\n        if (fromLocal > n) { afterE = chunk.editFrom; afterO = chunk.origFrom; }\n        else if (toLocal > n) { afterE = chunk.editTo; afterO = chunk.origTo; }\n      }\n      if (toLocal <= n) { beforeE = chunk.editTo; beforeO = chunk.origTo; }\n      else if (fromLocal <= n) { beforeE = chunk.editFrom; beforeO = chunk.origFrom; }\n    }\n    return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};\n  }\n\n  function collapseSingle(cm, from, to) {\n    cm.addLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    var widget = document.createElement(\"span\");\n    widget.className = \"CodeMirror-merge-collapsed-widget\";\n    widget.title = cm.phrase(\"Identical text collapsed. Click to expand.\");\n    var mark = cm.markText(Pos(from, 0), Pos(to - 1), {\n      inclusiveLeft: true,\n      inclusiveRight: true,\n      replacedWith: widget,\n      clearOnEnter: true\n    });\n    function clear() {\n      mark.clear();\n      cm.removeLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    }\n    if (mark.explicitlyCleared) clear();\n    CodeMirror.on(widget, \"click\", clear);\n    mark.on(\"clear\", clear);\n    CodeMirror.on(widget, \"click\", clear);\n    return {mark: mark, clear: clear};\n  }\n\n  function collapseStretch(size, editors) {\n    var marks = [];\n    function clear() {\n      for (var i = 0; i < marks.length; i++) marks[i].clear();\n    }\n    for (var i = 0; i < editors.length; i++) {\n      var editor = editors[i];\n      var mark = collapseSingle(editor.cm, editor.line, editor.line + size);\n      marks.push(mark);\n      mark.mark.on(\"clear\", clear);\n    }\n    return marks[0].mark;\n  }\n\n  function unclearNearChunks(dv, margin, off, clear) {\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var chunk = dv.chunks[i];\n      for (var l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) {\n        var pos = l + off;\n        if (pos >= 0 && pos < clear.length) clear[pos] = false;\n      }\n    }\n  }\n\n  function collapseIdenticalStretches(mv, margin) {\n    if (typeof margin != \"number\") margin = 2;\n    var clear = [], edit = mv.editor(), off = edit.firstLine();\n    for (var l = off, e = edit.lastLine(); l <= e; l++) clear.push(true);\n    if (mv.left) unclearNearChunks(mv.left, margin, off, clear);\n    if (mv.right) unclearNearChunks(mv.right, margin, off, clear);\n\n    for (var i = 0; i < clear.length; i++) {\n      if (clear[i]) {\n        var line = i + off;\n        for (var size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {}\n        if (size > margin) {\n          var editors = [{line: line, cm: edit}];\n          if (mv.left) editors.push({line: getMatchingOrigLine(line, mv.left.chunks), cm: mv.left.orig});\n          if (mv.right) editors.push({line: getMatchingOrigLine(line, mv.right.chunks), cm: mv.right.orig});\n          var mark = collapseStretch(size, editors);\n          if (mv.options.onCollapse) mv.options.onCollapse(mv, line, size, mark);\n        }\n      }\n    }\n  }\n\n  // General utilities\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") e.appendChild(document.createTextNode(content));\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  function clear(node) {\n    for (var count = node.childNodes.length; count > 0; --count)\n      node.removeChild(node.firstChild);\n  }\n\n  function attrs(elt) {\n    for (var i = 1; i < arguments.length; i += 2)\n      elt.setAttribute(arguments[i], arguments[i+1]);\n  }\n\n  function copyObj(obj, target) {\n    if (!target) target = {};\n    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];\n    return target;\n  }\n\n  function moveOver(pos, str, copy, other) {\n    var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;\n    for (;;) {\n      var nl = str.indexOf(\"\\n\", at);\n      if (nl == -1) break;\n      ++out.line;\n      if (other) ++other.line;\n      at = nl + 1;\n    }\n    out.ch = (at ? 0 : out.ch) + (str.length - at);\n    if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);\n    return out;\n  }\n\n  // Tracks collapsed markers and line widgets, in order to be able to\n  // accurately align the content of two editors.\n\n  var F_WIDGET = 1, F_WIDGET_BELOW = 2, F_MARKER = 4\n\n  function TrackAlignable(cm) {\n    this.cm = cm\n    this.alignable = []\n    this.height = cm.doc.height\n    var self = this\n    cm.on(\"markerAdded\", function(_, marker) {\n      if (!marker.collapsed) return\n      var found = marker.find(1)\n      if (found != null) self.set(found.line, F_MARKER)\n    })\n    cm.on(\"markerCleared\", function(_, marker, _min, max) {\n      if (max != null && marker.collapsed)\n        self.check(max, F_MARKER, self.hasMarker)\n    })\n    cm.on(\"markerChanged\", this.signal.bind(this))\n    cm.on(\"lineWidgetAdded\", function(_, widget, lineNo) {\n      if (widget.mergeSpacer) return\n      if (widget.above) self.set(lineNo - 1, F_WIDGET_BELOW)\n      else self.set(lineNo, F_WIDGET)\n    })\n    cm.on(\"lineWidgetCleared\", function(_, widget, lineNo) {\n      if (widget.mergeSpacer) return\n      if (widget.above) self.check(lineNo - 1, F_WIDGET_BELOW, self.hasWidgetBelow)\n      else self.check(lineNo, F_WIDGET, self.hasWidget)\n    })\n    cm.on(\"lineWidgetChanged\", this.signal.bind(this))\n    cm.on(\"change\", function(_, change) {\n      var start = change.from.line, nBefore = change.to.line - change.from.line\n      var nAfter = change.text.length - 1, end = start + nAfter\n      if (nBefore || nAfter) self.map(start, nBefore, nAfter)\n      self.check(end, F_MARKER, self.hasMarker)\n      if (nBefore || nAfter) self.check(change.from.line, F_MARKER, self.hasMarker)\n    })\n    cm.on(\"viewportChange\", function() {\n      if (self.cm.doc.height != self.height) self.signal()\n    })\n  }\n\n  TrackAlignable.prototype = {\n    signal: function() {\n      CodeMirror.signal(this, \"realign\")\n      this.height = this.cm.doc.height\n    },\n\n    set: function(n, flags) {\n      var pos = -1\n      for (; pos < this.alignable.length; pos += 2) {\n        var diff = this.alignable[pos] - n\n        if (diff == 0) {\n          if ((this.alignable[pos + 1] & flags) == flags) return\n          this.alignable[pos + 1] |= flags\n          this.signal()\n          return\n        }\n        if (diff > 0) break\n      }\n      this.signal()\n      this.alignable.splice(pos, 0, n, flags)\n    },\n\n    find: function(n) {\n      for (var i = 0; i < this.alignable.length; i += 2)\n        if (this.alignable[i] == n) return i\n      return -1\n    },\n\n    check: function(n, flag, pred) {\n      var found = this.find(n)\n      if (found == -1 || !(this.alignable[found + 1] & flag)) return\n      if (!pred.call(this, n)) {\n        this.signal()\n        var flags = this.alignable[found + 1] & ~flag\n        if (flags) this.alignable[found + 1] = flags\n        else this.alignable.splice(found, 2)\n      }\n    },\n\n    hasMarker: function(n) {\n      var handle = this.cm.getLineHandle(n)\n      if (handle.markedSpans) for (var i = 0; i < handle.markedSpans.length; i++)\n        if (handle.markedSpans[i].marker.collapsed && handle.markedSpans[i].to != null)\n          return true\n      return false\n    },\n\n    hasWidget: function(n) {\n      var handle = this.cm.getLineHandle(n)\n      if (handle.widgets) for (var i = 0; i < handle.widgets.length; i++)\n        if (!handle.widgets[i].above && !handle.widgets[i].mergeSpacer) return true\n      return false\n    },\n\n    hasWidgetBelow: function(n) {\n      if (n == this.cm.lastLine()) return false\n      var handle = this.cm.getLineHandle(n + 1)\n      if (handle.widgets) for (var i = 0; i < handle.widgets.length; i++)\n        if (handle.widgets[i].above && !handle.widgets[i].mergeSpacer) return true\n      return false\n    },\n\n    map: function(from, nBefore, nAfter) {\n      var diff = nAfter - nBefore, to = from + nBefore, widgetFrom = -1, widgetTo = -1\n      for (var i = 0; i < this.alignable.length; i += 2) {\n        var n = this.alignable[i]\n        if (n == from && (this.alignable[i + 1] & F_WIDGET_BELOW)) widgetFrom = i\n        if (n == to && (this.alignable[i + 1] & F_WIDGET_BELOW)) widgetTo = i\n        if (n <= from) continue\n        else if (n < to) this.alignable.splice(i--, 2)\n        else this.alignable[i] += diff\n      }\n      if (widgetFrom > -1) {\n        var flags = this.alignable[widgetFrom + 1]\n        if (flags == F_WIDGET_BELOW) this.alignable.splice(widgetFrom, 2)\n        else this.alignable[widgetFrom + 1] = flags & ~F_WIDGET_BELOW\n      }\n      if (widgetTo > -1 && nAfter)\n        this.set(from + nAfter, F_WIDGET_BELOW)\n    }\n  }\n\n  function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }\n  function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }\n  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n\n  function findPrevDiff(chunks, start, isOrig) {\n    for (var i = chunks.length - 1; i >= 0; i--) {\n      var chunk = chunks[i];\n      var to = (isOrig ? chunk.origTo : chunk.editTo) - 1;\n      if (to < start) return to;\n    }\n  }\n\n  function findNextDiff(chunks, start, isOrig) {\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      var from = (isOrig ? chunk.origFrom : chunk.editFrom);\n      if (from > start) return from;\n    }\n  }\n\n  function goNearbyDiff(cm, dir) {\n    var found = null, views = cm.state.diffViews, line = cm.getCursor().line;\n    if (views) for (var i = 0; i < views.length; i++) {\n      var dv = views[i], isOrig = cm == dv.orig;\n      ensureDiff(dv);\n      var pos = dir < 0 ? findPrevDiff(dv.chunks, line, isOrig) : findNextDiff(dv.chunks, line, isOrig);\n      if (pos != null && (found == null || (dir < 0 ? pos > found : pos < found)))\n        found = pos;\n    }\n    if (found != null)\n      cm.setCursor(found, 0);\n    else\n      return CodeMirror.Pass;\n  }\n\n  CodeMirror.commands.goNextDiff = function(cm) {\n    return goNearbyDiff(cm, 1);\n  };\n  CodeMirror.commands.goPrevDiff = function(cm) {\n    return goNearbyDiff(cm, -1);\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/mode/loadmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), \"cjs\");\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], function(CM) { mod(CM, \"amd\"); });\n  else // Plain browser env\n    mod(CodeMirror, \"plain\");\n})(function(CodeMirror, env) {\n  if (!CodeMirror.modeURL) CodeMirror.modeURL = \"../mode/%N/%N.js\";\n\n  var loading = {};\n  function splitCallback(cont, n) {\n    var countDown = n;\n    return function() { if (--countDown == 0) cont(); };\n  }\n  function ensureDeps(mode, cont, options) {\n    var modeObj = CodeMirror.modes[mode], deps = modeObj && modeObj.dependencies;\n    if (!deps) return cont();\n    var missing = [];\n    for (var i = 0; i < deps.length; ++i) {\n      if (!CodeMirror.modes.hasOwnProperty(deps[i]))\n        missing.push(deps[i]);\n    }\n    if (!missing.length) return cont();\n    var split = splitCallback(cont, missing.length);\n    for (var i = 0; i < missing.length; ++i)\n      CodeMirror.requireMode(missing[i], split, options);\n  }\n\n  CodeMirror.requireMode = function(mode, cont, options) {\n    if (typeof mode != \"string\") mode = mode.name;\n    if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont, options);\n    if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);\n\n    var file = options && options.path ? options.path(mode) : CodeMirror.modeURL.replace(/%N/g, mode);\n    if (options && options.loadMode) {\n      options.loadMode(file, function() { ensureDeps(mode, cont, options) })\n    } else if (env == \"plain\") {\n      var script = document.createElement(\"script\");\n      script.src = file;\n      var others = document.getElementsByTagName(\"script\")[0];\n      var list = loading[mode] = [cont];\n      CodeMirror.on(script, \"load\", function() {\n        ensureDeps(mode, function() {\n          for (var i = 0; i < list.length; ++i) list[i]();\n        }, options);\n      });\n      others.parentNode.insertBefore(script, others);\n    } else if (env == \"cjs\") {\n      require(file);\n      cont();\n    } else if (env == \"amd\") {\n      requirejs([file], cont);\n    }\n  };\n\n  CodeMirror.autoLoadMode = function(instance, mode, options) {\n    if (!CodeMirror.modes.hasOwnProperty(mode))\n      CodeMirror.requireMode(mode, function() {\n        instance.setOption(\"mode\", instance.getOption(\"mode\"));\n      }, options);\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/mode/multiplex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n  // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects\n  var others = Array.prototype.slice.call(arguments, 1);\n\n  function indexOf(string, pattern, from, returnEnd) {\n    if (typeof pattern == \"string\") {\n      var found = string.indexOf(pattern, from);\n      return returnEnd && found > -1 ? found + pattern.length : found;\n    }\n    var m = pattern.exec(from ? string.slice(from) : string);\n    return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;\n  }\n\n  return {\n    startState: function() {\n      return {\n        outer: CodeMirror.startState(outer),\n        innerActive: null,\n        inner: null,\n        startingInner: false\n      };\n    },\n\n    copyState: function(state) {\n      return {\n        outer: CodeMirror.copyState(outer, state.outer),\n        innerActive: state.innerActive,\n        inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),\n        startingInner: state.startingInner\n      };\n    },\n\n    token: function(stream, state) {\n      if (!state.innerActive) {\n        var cutOff = Infinity, oldContent = stream.string;\n        for (var i = 0; i < others.length; ++i) {\n          var other = others[i];\n          var found = indexOf(oldContent, other.open, stream.pos);\n          if (found == stream.pos) {\n            if (!other.parseDelimiters) stream.match(other.open);\n            state.startingInner = !!other.parseDelimiters\n            state.innerActive = other;\n\n            // Get the outer indent, making sure to handle CodeMirror.Pass\n            var outerIndent = 0;\n            if (outer.indent) {\n              var possibleOuterIndent = outer.indent(state.outer, \"\", \"\");\n              if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;\n            }\n\n            state.inner = CodeMirror.startState(other.mode, outerIndent);\n            return other.delimStyle && (other.delimStyle + \" \" + other.delimStyle + \"-open\");\n          } else if (found != -1 && found < cutOff) {\n            cutOff = found;\n          }\n        }\n        if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n        var outerToken = outer.token(stream, state.outer);\n        if (cutOff != Infinity) stream.string = oldContent;\n        return outerToken;\n      } else {\n        var curInner = state.innerActive, oldContent = stream.string;\n        if (!curInner.close && stream.sol()) {\n          state.innerActive = state.inner = null;\n          return this.token(stream, state);\n        }\n        var found = curInner.close && !state.startingInner ?\n            indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;\n        if (found == stream.pos && !curInner.parseDelimiters) {\n          stream.match(curInner.close);\n          state.innerActive = state.inner = null;\n          return curInner.delimStyle && (curInner.delimStyle + \" \" + curInner.delimStyle + \"-close\");\n        }\n        if (found > -1) stream.string = oldContent.slice(0, found);\n        var innerToken = curInner.mode.token(stream, state.inner);\n        if (found > -1) stream.string = oldContent;\n        else if (stream.pos > stream.start) state.startingInner = false\n\n        if (found == stream.pos && curInner.parseDelimiters)\n          state.innerActive = state.inner = null;\n\n        if (curInner.innerStyle) {\n          if (innerToken) innerToken = innerToken + \" \" + curInner.innerStyle;\n          else innerToken = curInner.innerStyle;\n        }\n\n        return innerToken;\n      }\n    },\n\n    indent: function(state, textAfter, line) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (!mode.indent) return CodeMirror.Pass;\n      return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);\n    },\n\n    blankLine: function(state) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (mode.blankLine) {\n        mode.blankLine(state.innerActive ? state.inner : state.outer);\n      }\n      if (!state.innerActive) {\n        for (var i = 0; i < others.length; ++i) {\n          var other = others[i];\n          if (other.open === \"\\n\") {\n            state.innerActive = other;\n            state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\", \"\") : 0);\n          }\n        }\n      } else if (state.innerActive.close === \"\\n\") {\n        state.innerActive = state.inner = null;\n      }\n    },\n\n    electricChars: outer.electricChars,\n\n    innerMode: function(state) {\n      return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/mode/multiplex_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function() {\n  CodeMirror.defineMode(\"markdown_with_stex\", function(){\n    var inner = CodeMirror.getMode({}, \"stex\");\n    var outer = CodeMirror.getMode({}, \"markdown\");\n\n    var innerOptions = {\n      open: '$',\n      close: '$',\n      mode: inner,\n      delimStyle: 'delim',\n      innerStyle: 'inner'\n    };\n\n    return CodeMirror.multiplexingMode(outer, innerOptions);\n  });\n\n  var mode = CodeMirror.getMode({}, \"markdown_with_stex\");\n\n  function MT(name) {\n    test.mode(\n      name,\n      mode,\n      Array.prototype.slice.call(arguments, 1),\n      'multiplexing');\n  }\n\n  MT(\n    \"stexInsideMarkdown\",\n    \"[strong **Equation:**] [delim&delim-open $][inner&tag \\\\pi][delim&delim-close $]\");\n\n  CodeMirror.defineMode(\"identical_delim_multiplex\", function() {\n    return CodeMirror.multiplexingMode(CodeMirror.getMode({indentUnit: 2}, \"javascript\"), {\n      open: \"#\",\n      close: \"#\",\n      mode: CodeMirror.getMode({}, \"markdown\"),\n      parseDelimiters: true,\n      innerStyle: \"q\"\n    });\n  });\n\n  var mode2 = CodeMirror.getMode({}, \"identical_delim_multiplex\");\n\n  test.mode(\"identical_delimiters_with_parseDelimiters\", mode2, [\n    \"[keyword let] [def x] [operator =] [q #foo][q&em *bar*][q #];\"\n  ], \"multiplexing\")\n})();\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/mode/overlay.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n  return {\n    startState: function() {\n      return {\n        base: CodeMirror.startState(base),\n        overlay: CodeMirror.startState(overlay),\n        basePos: 0, baseCur: null,\n        overlayPos: 0, overlayCur: null,\n        streamSeen: null\n      };\n    },\n    copyState: function(state) {\n      return {\n        base: CodeMirror.copyState(base, state.base),\n        overlay: CodeMirror.copyState(overlay, state.overlay),\n        basePos: state.basePos, baseCur: null,\n        overlayPos: state.overlayPos, overlayCur: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream != state.streamSeen ||\n          Math.min(state.basePos, state.overlayPos) < stream.start) {\n        state.streamSeen = stream;\n        state.basePos = state.overlayPos = stream.start;\n      }\n\n      if (stream.start == state.basePos) {\n        state.baseCur = base.token(stream, state.base);\n        state.basePos = stream.pos;\n      }\n      if (stream.start == state.overlayPos) {\n        stream.pos = stream.start;\n        state.overlayCur = overlay.token(stream, state.overlay);\n        state.overlayPos = stream.pos;\n      }\n      stream.pos = Math.min(state.basePos, state.overlayPos);\n\n      // state.overlay.combineTokens always takes precedence over combine,\n      // unless set to null\n      if (state.overlayCur == null) return state.baseCur;\n      else if (state.baseCur != null &&\n               state.overlay.combineTokens ||\n               combine && state.overlay.combineTokens == null)\n        return state.baseCur + \" \" + state.overlayCur;\n      else return state.overlayCur;\n    },\n\n    indent: base.indent && function(state, textAfter, line) {\n      return base.indent(state.base, textAfter, line);\n    },\n    electricChars: base.electricChars,\n\n    innerMode: function(state) { return {state: state.base, mode: base}; },\n\n    blankLine: function(state) {\n      var baseToken, overlayToken;\n      if (base.blankLine) baseToken = base.blankLine(state.base);\n      if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);\n\n      return overlayToken == null ?\n        baseToken :\n        (combine && baseToken != null ? baseToken + \" \" + overlayToken : overlayToken);\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/mode/simple.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineSimpleMode = function(name, states) {\n    CodeMirror.defineMode(name, function(config) {\n      return CodeMirror.simpleMode(config, states);\n    });\n  };\n\n  CodeMirror.simpleMode = function(config, states) {\n    ensureState(states, \"start\");\n    var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n    for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n      var list = states_[state] = [], orig = states[state];\n      for (var i = 0; i < orig.length; i++) {\n        var data = orig[i];\n        list.push(new Rule(data, states));\n        if (data.indent || data.dedent) hasIndentation = true;\n      }\n    }\n    var mode = {\n      startState: function() {\n        return {state: \"start\", pending: null,\n                local: null, localState: null,\n                indent: hasIndentation ? [] : null};\n      },\n      copyState: function(state) {\n        var s = {state: state.state, pending: state.pending,\n                 local: state.local, localState: null,\n                 indent: state.indent && state.indent.slice(0)};\n        if (state.localState)\n          s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n        if (state.stack)\n          s.stack = state.stack.slice(0);\n        for (var pers = state.persistentStates; pers; pers = pers.next)\n          s.persistentStates = {mode: pers.mode,\n                                spec: pers.spec,\n                                state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n                                next: s.persistentStates};\n        return s;\n      },\n      token: tokenFunction(states_, config),\n      innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n      indent: indentFunction(states_, meta)\n    };\n    if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n      mode[prop] = meta[prop];\n    return mode;\n  };\n\n  function ensureState(states, name) {\n    if (!states.hasOwnProperty(name))\n      throw new Error(\"Undefined state \" + name + \" in simple mode\");\n  }\n\n  function toRegex(val, caret) {\n    if (!val) return /(?:)/;\n    var flags = \"\";\n    if (val instanceof RegExp) {\n      if (val.ignoreCase) flags = \"i\";\n      val = val.source;\n    } else {\n      val = String(val);\n    }\n    return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n  }\n\n  function asToken(val) {\n    if (!val) return null;\n    if (val.apply) return val\n    if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n    var result = [];\n    for (var i = 0; i < val.length; i++)\n      result.push(val[i] && val[i].replace(/\\./g, \" \"));\n    return result;\n  }\n\n  function Rule(data, states) {\n    if (data.next || data.push) ensureState(states, data.next || data.push);\n    this.regex = toRegex(data.regex);\n    this.token = asToken(data.token);\n    this.data = data;\n  }\n\n  function tokenFunction(states, config) {\n    return function(stream, state) {\n      if (state.pending) {\n        var pend = state.pending.shift();\n        if (state.pending.length == 0) state.pending = null;\n        stream.pos += pend.text.length;\n        return pend.token;\n      }\n\n      if (state.local) {\n        if (state.local.end && stream.match(state.local.end)) {\n          var tok = state.local.endToken || null;\n          state.local = state.localState = null;\n          return tok;\n        } else {\n          var tok = state.local.mode.token(stream, state.localState), m;\n          if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n            stream.pos = stream.start + m.index;\n          return tok;\n        }\n      }\n\n      var curState = states[state.state];\n      for (var i = 0; i < curState.length; i++) {\n        var rule = curState[i];\n        var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n        if (matches) {\n          if (rule.data.next) {\n            state.state = rule.data.next;\n          } else if (rule.data.push) {\n            (state.stack || (state.stack = [])).push(state.state);\n            state.state = rule.data.push;\n          } else if (rule.data.pop && state.stack && state.stack.length) {\n            state.state = state.stack.pop();\n          }\n\n          if (rule.data.mode)\n            enterLocalMode(config, state, rule.data.mode, rule.token);\n          if (rule.data.indent)\n            state.indent.push(stream.indentation() + config.indentUnit);\n          if (rule.data.dedent)\n            state.indent.pop();\n          var token = rule.token\n          if (token && token.apply) token = token(matches)\n          if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n            for (var j = 2; j < matches.length; j++)\n              if (matches[j])\n                (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n            stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n            return token[0];\n          } else if (token && token.join) {\n            return token[0];\n          } else {\n            return token;\n          }\n        }\n      }\n      stream.next();\n      return null;\n    };\n  }\n\n  function cmp(a, b) {\n    if (a === b) return true;\n    if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n    var props = 0;\n    for (var prop in a) if (a.hasOwnProperty(prop)) {\n      if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n      props++;\n    }\n    for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n    return props == 0;\n  }\n\n  function enterLocalMode(config, state, spec, token) {\n    var pers;\n    if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n      if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n    var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n    var lState = pers ? pers.state : CodeMirror.startState(mode);\n    if (spec.persistent && !pers)\n      state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n    state.localState = lState;\n    state.local = {mode: mode,\n                   end: spec.end && toRegex(spec.end),\n                   endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n                   endToken: token && token.join ? token[token.length - 1] : token};\n  }\n\n  function indexOf(val, arr) {\n    for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n  }\n\n  function indentFunction(states, meta) {\n    return function(state, textAfter, line) {\n      if (state.local && state.local.mode.indent)\n        return state.local.mode.indent(state.localState, textAfter, line);\n      if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n        return CodeMirror.Pass;\n\n      var pos = state.indent.length - 1, rules = states[state.state];\n      scan: for (;;) {\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i];\n          if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n            var m = rule.regex.exec(textAfter);\n            if (m && m[0]) {\n              pos--;\n              if (rule.next || rule.push) rules = states[rule.next || rule.push];\n              textAfter = textAfter.slice(m[0].length);\n              continue scan;\n            }\n          }\n        }\n        break;\n      }\n      return pos < 0 ? 0 : state.indent[pos];\n    };\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/runmode/colorize.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./runmode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./runmode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var isBlock = /^(p|li|div|h\\\\d|pre|blockquote|td)$/;\n\n  function textContent(node, out) {\n    if (node.nodeType == 3) return out.push(node.nodeValue);\n    for (var ch = node.firstChild; ch; ch = ch.nextSibling) {\n      textContent(ch, out);\n      if (isBlock.test(node.nodeType)) out.push(\"\\n\");\n    }\n  }\n\n  CodeMirror.colorize = function(collection, defaultMode) {\n    if (!collection) collection = document.body.getElementsByTagName(\"pre\");\n\n    for (var i = 0; i < collection.length; ++i) {\n      var node = collection[i];\n      var mode = node.getAttribute(\"data-lang\") || defaultMode;\n      if (!mode) continue;\n\n      var text = [];\n      textContent(node, text);\n      node.innerHTML = \"\";\n      CodeMirror.runMode(text.join(\"\"), mode, node);\n\n      node.className += \" cm-s-default\";\n    }\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/runmode/runmode-standalone.js",
    "content": "(function () {\n  'use strict';\n\n  function copyObj(obj, target, overwrite) {\n    if (!target) { target = {}; }\n    for (var prop in obj)\n      { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n        { target[prop] = obj[prop]; } }\n    return target\n  }\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  function countColumn(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) { end = string.length; }\n    }\n    for (var i = startIndex || 0, n = startValue || 0;;) {\n      var nextTab = string.indexOf(\"\\t\", i);\n      if (nextTab < 0 || nextTab >= end)\n        { return n + (end - i) }\n      n += nextTab - i;\n      n += tabSize - (n % tabSize);\n      i = nextTab + 1;\n    }\n  }\n\n  function nothing() {}\n\n  function createObj(base, props) {\n    var inst;\n    if (Object.create) {\n      inst = Object.create(base);\n    } else {\n      nothing.prototype = base;\n      inst = new nothing();\n    }\n    if (props) { copyObj(props, inst); }\n    return inst\n  }\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  var StringStream = function(string, tabSize, lineOracle) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n    this.lineStart = 0;\n    this.lineOracle = lineOracle;\n  };\n\n  StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n  StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n  StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n  StringStream.prototype.next = function () {\n    if (this.pos < this.string.length)\n      { return this.string.charAt(this.pos++) }\n  };\n  StringStream.prototype.eat = function (match) {\n    var ch = this.string.charAt(this.pos);\n    var ok;\n    if (typeof match == \"string\") { ok = ch == match; }\n    else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n    if (ok) {++this.pos; return ch}\n  };\n  StringStream.prototype.eatWhile = function (match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start\n  };\n  StringStream.prototype.eatSpace = function () {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n    return this.pos > start\n  };\n  StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n  StringStream.prototype.skipTo = function (ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true}\n  };\n  StringStream.prototype.backUp = function (n) {this.pos -= n;};\n  StringStream.prototype.column = function () {\n    if (this.lastColumnPos < this.start) {\n      this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n      this.lastColumnPos = this.start;\n    }\n    return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n  };\n  StringStream.prototype.indentation = function () {\n    return countColumn(this.string, null, this.tabSize) -\n      (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n  };\n  StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) { this.pos += pattern.length; }\n        return true\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) { return null }\n      if (match && consume !== false) { this.pos += match[0].length; }\n      return match\n    }\n  };\n  StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n  StringStream.prototype.hideFirstChars = function (n, inner) {\n    this.lineStart += n;\n    try { return inner() }\n    finally { this.lineStart -= n; }\n  };\n  StringStream.prototype.lookAhead = function (n) {\n    var oracle = this.lineOracle;\n    return oracle && oracle.lookAhead(n)\n  };\n  StringStream.prototype.baseToken = function () {\n    var oracle = this.lineOracle;\n    return oracle && oracle.baseToken(this.pos)\n  };\n\n  // Known modes, by name and by MIME\n  var modes = {}, mimeModes = {};\n\n  // Extra arguments are stored as the mode's dependencies, which is\n  // used by (legacy) mechanisms like loadmode.js to automatically\n  // load a mode. (Preferred mechanism is the require/define calls.)\n  function defineMode(name, mode) {\n    if (arguments.length > 2)\n      { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n    modes[name] = mode;\n  }\n\n  function defineMIME(mime, spec) {\n    mimeModes[mime] = spec;\n  }\n\n  // Given a MIME type, a {name, ...options} config object, or a name\n  // string, return a mode config object.\n  function resolveMode(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      if (typeof found == \"string\") { found = {name: found}; }\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return resolveMode(\"application/xml\")\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n      return resolveMode(\"application/json\")\n    }\n    if (typeof spec == \"string\") { return {name: spec} }\n    else { return spec || {name: \"null\"} }\n  }\n\n  // Given a mode spec (anything that resolveMode accepts), find and\n  // initialize an actual mode object.\n  function getMode(options, spec) {\n    spec = resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) { return getMode(options, \"text/plain\") }\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) { continue }\n        if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n    if (spec.helperType) { modeObj.helperType = spec.helperType; }\n    if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n      { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n    return modeObj\n  }\n\n  // This can be used to attach properties to mode objects from\n  // outside the actual mode definition.\n  var modeExtensions = {};\n  function extendMode(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  }\n\n  function copyState(mode, state) {\n    if (state === true) { return state }\n    if (mode.copyState) { return mode.copyState(state) }\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) { val = val.concat([]); }\n      nstate[n] = val;\n    }\n    return nstate\n  }\n\n  // Given a mode and a state (for that mode), find the inner mode and\n  // state at the position that the state refers to.\n  function innerMode(mode, state) {\n    var info;\n    while (mode.innerMode) {\n      info = mode.innerMode(state);\n      if (!info || info.mode == mode) { break }\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state}\n  }\n\n  function startState(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true\n  }\n\n  var modeMethods = ({\n    __proto__: null,\n    modes: modes,\n    mimeModes: mimeModes,\n    defineMode: defineMode,\n    defineMIME: defineMIME,\n    resolveMode: resolveMode,\n    getMode: getMode,\n    modeExtensions: modeExtensions,\n    extendMode: extendMode,\n    copyState: copyState,\n    innerMode: innerMode,\n    startState: startState\n  });\n\n  // declare global: globalThis, CodeMirror\n\n  // Create a minimal CodeMirror needed to use runMode, and assign to root.\n  var root = typeof globalThis !== 'undefined' ? globalThis : window;\n  root.CodeMirror = {};\n\n  // Copy StringStream and mode methods into CodeMirror object.\n  CodeMirror.StringStream = StringStream;\n  for (var exported in modeMethods) { CodeMirror[exported] = modeMethods[exported]; }\n\n  // Minimal default mode.\n  CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  CodeMirror.registerHelper = CodeMirror.registerGlobalHelper = Math.min;\n  CodeMirror.splitLines = function(string) { return string.split(/\\r?\\n|\\r/) };\n\n  CodeMirror.defaults = { indentUnit: 2 };\n\n  // CodeMirror, copyright (c) by Marijn Haverbeke and others\n  // Distributed under an MIT license: https://codemirror.net/LICENSE\n\n  (function(mod) {\n    if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n      { mod(require(\"../../lib/codemirror\")); }\n    else if (typeof define == \"function\" && define.amd) // AMD\n      { define([\"../../lib/codemirror\"], mod); }\n    else // Plain browser env\n      { mod(CodeMirror); }\n  })(function(CodeMirror) {\n\n  CodeMirror.runMode = function(string, modespec, callback, options) {\n    var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n\n    // Create a tokenizing callback function if passed-in callback is a DOM element.\n    if (callback.appendChild) {\n      var ie = /MSIE \\d/.test(navigator.userAgent);\n      var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n      var node = callback, col = 0;\n      node.innerHTML = \"\";\n      callback = function(text, style) {\n        if (text == \"\\n\") {\n          // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n          // Emitting a carriage return makes everything ok.\n          node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n          col = 0;\n          return;\n        }\n        var content = \"\";\n        // replace tabs\n        for (var pos = 0;;) {\n          var idx = text.indexOf(\"\\t\", pos);\n          if (idx == -1) {\n            content += text.slice(pos);\n            col += text.length - pos;\n            break;\n          } else {\n            col += idx - pos;\n            content += text.slice(pos, idx);\n            var size = tabSize - col % tabSize;\n            col += size;\n            for (var i = 0; i < size; ++i) { content += \" \"; }\n            pos = idx + 1;\n          }\n        }\n        // Create a node with token style and append it to the callback DOM element.\n        if (style) {\n          var sp = node.appendChild(document.createElement(\"span\"));\n          sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n          sp.appendChild(document.createTextNode(content));\n        } else {\n          node.appendChild(document.createTextNode(content));\n        }\n      };\n    }\n\n    var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n    for (var i = 0, e = lines.length; i < e; ++i) {\n      if (i) { callback(\"\\n\"); }\n      var stream = new CodeMirror.StringStream(lines[i], null, {\n        lookAhead: function(n) { return lines[i + n] },\n        baseToken: function() {}\n      });\n      if (!stream.string && mode.blankLine) { mode.blankLine(state); }\n      while (!stream.eol()) {\n        var style = mode.token(stream, state);\n        callback(stream.current(), style, i, stream.start, state);\n        stream.start = stream.pos;\n      }\n    }\n  };\n\n  });\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/runmode/runmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n  var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n\n  // Create a tokenizing callback function if passed-in callback is a DOM element.\n  if (callback.appendChild) {\n    var ie = /MSIE \\d/.test(navigator.userAgent);\n    var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function(text, style) {\n      if (text == \"\\n\") {\n        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n        // Emitting a carriage return makes everything ok.\n        node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0;;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) content += \" \";\n          pos = idx + 1;\n        }\n      }\n      // Create a node with token style and append it to the callback DOM element.\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new CodeMirror.StringStream(lines[i], null, {\n      lookAhead: function(n) { return lines[i + n] },\n      baseToken: function() {}\n    });\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/runmode/runmode.node.js",
    "content": "'use strict';\n\nfunction copyObj(obj, target, overwrite) {\n  if (!target) { target = {}; }\n  for (var prop in obj)\n    { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n      { target[prop] = obj[prop]; } }\n  return target\n}\n\n// Counts the column offset in a string, taking tabs into account.\n// Used mostly to find indentation.\nfunction countColumn(string, end, tabSize, startIndex, startValue) {\n  if (end == null) {\n    end = string.search(/[^\\s\\u00a0]/);\n    if (end == -1) { end = string.length; }\n  }\n  for (var i = startIndex || 0, n = startValue || 0;;) {\n    var nextTab = string.indexOf(\"\\t\", i);\n    if (nextTab < 0 || nextTab >= end)\n      { return n + (end - i) }\n    n += nextTab - i;\n    n += tabSize - (n % tabSize);\n    i = nextTab + 1;\n  }\n}\n\nfunction nothing() {}\n\nfunction createObj(base, props) {\n  var inst;\n  if (Object.create) {\n    inst = Object.create(base);\n  } else {\n    nothing.prototype = base;\n    inst = new nothing();\n  }\n  if (props) { copyObj(props, inst); }\n  return inst\n}\n\n// STRING STREAM\n\n// Fed to the mode parsers, provides helper functions to make\n// parsers more succinct.\n\nvar StringStream = function(string, tabSize, lineOracle) {\n  this.pos = this.start = 0;\n  this.string = string;\n  this.tabSize = tabSize || 8;\n  this.lastColumnPos = this.lastColumnValue = 0;\n  this.lineStart = 0;\n  this.lineOracle = lineOracle;\n};\n\nStringStream.prototype.eol = function () {return this.pos >= this.string.length};\nStringStream.prototype.sol = function () {return this.pos == this.lineStart};\nStringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\nStringStream.prototype.next = function () {\n  if (this.pos < this.string.length)\n    { return this.string.charAt(this.pos++) }\n};\nStringStream.prototype.eat = function (match) {\n  var ch = this.string.charAt(this.pos);\n  var ok;\n  if (typeof match == \"string\") { ok = ch == match; }\n  else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n  if (ok) {++this.pos; return ch}\n};\nStringStream.prototype.eatWhile = function (match) {\n  var start = this.pos;\n  while (this.eat(match)){}\n  return this.pos > start\n};\nStringStream.prototype.eatSpace = function () {\n  var start = this.pos;\n  while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n  return this.pos > start\n};\nStringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\nStringStream.prototype.skipTo = function (ch) {\n  var found = this.string.indexOf(ch, this.pos);\n  if (found > -1) {this.pos = found; return true}\n};\nStringStream.prototype.backUp = function (n) {this.pos -= n;};\nStringStream.prototype.column = function () {\n  if (this.lastColumnPos < this.start) {\n    this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n    this.lastColumnPos = this.start;\n  }\n  return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n};\nStringStream.prototype.indentation = function () {\n  return countColumn(this.string, null, this.tabSize) -\n    (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n};\nStringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n  if (typeof pattern == \"string\") {\n    var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n    var substr = this.string.substr(this.pos, pattern.length);\n    if (cased(substr) == cased(pattern)) {\n      if (consume !== false) { this.pos += pattern.length; }\n      return true\n    }\n  } else {\n    var match = this.string.slice(this.pos).match(pattern);\n    if (match && match.index > 0) { return null }\n    if (match && consume !== false) { this.pos += match[0].length; }\n    return match\n  }\n};\nStringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\nStringStream.prototype.hideFirstChars = function (n, inner) {\n  this.lineStart += n;\n  try { return inner() }\n  finally { this.lineStart -= n; }\n};\nStringStream.prototype.lookAhead = function (n) {\n  var oracle = this.lineOracle;\n  return oracle && oracle.lookAhead(n)\n};\nStringStream.prototype.baseToken = function () {\n  var oracle = this.lineOracle;\n  return oracle && oracle.baseToken(this.pos)\n};\n\n// Known modes, by name and by MIME\nvar modes = {}, mimeModes = {};\n\n// Extra arguments are stored as the mode's dependencies, which is\n// used by (legacy) mechanisms like loadmode.js to automatically\n// load a mode. (Preferred mechanism is the require/define calls.)\nfunction defineMode(name, mode) {\n  if (arguments.length > 2)\n    { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n  modes[name] = mode;\n}\n\nfunction defineMIME(mime, spec) {\n  mimeModes[mime] = spec;\n}\n\n// Given a MIME type, a {name, ...options} config object, or a name\n// string, return a mode config object.\nfunction resolveMode(spec) {\n  if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n    spec = mimeModes[spec];\n  } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n    var found = mimeModes[spec.name];\n    if (typeof found == \"string\") { found = {name: found}; }\n    spec = createObj(found, spec);\n    spec.name = found.name;\n  } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n    return resolveMode(\"application/xml\")\n  } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n    return resolveMode(\"application/json\")\n  }\n  if (typeof spec == \"string\") { return {name: spec} }\n  else { return spec || {name: \"null\"} }\n}\n\n// Given a mode spec (anything that resolveMode accepts), find and\n// initialize an actual mode object.\nfunction getMode(options, spec) {\n  spec = resolveMode(spec);\n  var mfactory = modes[spec.name];\n  if (!mfactory) { return getMode(options, \"text/plain\") }\n  var modeObj = mfactory(options, spec);\n  if (modeExtensions.hasOwnProperty(spec.name)) {\n    var exts = modeExtensions[spec.name];\n    for (var prop in exts) {\n      if (!exts.hasOwnProperty(prop)) { continue }\n      if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n      modeObj[prop] = exts[prop];\n    }\n  }\n  modeObj.name = spec.name;\n  if (spec.helperType) { modeObj.helperType = spec.helperType; }\n  if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n    { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n  return modeObj\n}\n\n// This can be used to attach properties to mode objects from\n// outside the actual mode definition.\nvar modeExtensions = {};\nfunction extendMode(mode, properties) {\n  var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n  copyObj(properties, exts);\n}\n\nfunction copyState(mode, state) {\n  if (state === true) { return state }\n  if (mode.copyState) { return mode.copyState(state) }\n  var nstate = {};\n  for (var n in state) {\n    var val = state[n];\n    if (val instanceof Array) { val = val.concat([]); }\n    nstate[n] = val;\n  }\n  return nstate\n}\n\n// Given a mode and a state (for that mode), find the inner mode and\n// state at the position that the state refers to.\nfunction innerMode(mode, state) {\n  var info;\n  while (mode.innerMode) {\n    info = mode.innerMode(state);\n    if (!info || info.mode == mode) { break }\n    state = info.state;\n    mode = info.mode;\n  }\n  return info || {mode: mode, state: state}\n}\n\nfunction startState(mode, a1, a2) {\n  return mode.startState ? mode.startState(a1, a2) : true\n}\n\nvar modeMethods = ({\n  __proto__: null,\n  modes: modes,\n  mimeModes: mimeModes,\n  defineMode: defineMode,\n  defineMIME: defineMIME,\n  resolveMode: resolveMode,\n  getMode: getMode,\n  modeExtensions: modeExtensions,\n  extendMode: extendMode,\n  copyState: copyState,\n  innerMode: innerMode,\n  startState: startState\n});\n\n// Copy StringStream and mode methods into exports (CodeMirror) object.\nexports.StringStream = StringStream;\nexports.countColumn = countColumn;\nfor (var exported in modeMethods) { exports[exported] = modeMethods[exported]; }\n\n// Shim library CodeMirror with the minimal CodeMirror defined above.\nrequire.cache[require.resolve(\"../../lib/codemirror\")] = require.cache[require.resolve(\"./runmode.node\")];\nrequire.cache[require.resolve(\"../../addon/runmode/runmode\")] = require.cache[require.resolve(\"./runmode.node\")];\n\n// Minimal default mode.\nexports.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\nexports.defineMIME(\"text/plain\", \"null\");\n\nexports.registerHelper = exports.registerGlobalHelper = Math.min;\nexports.splitLines = function(string) { return string.split(/\\r?\\n|\\r/) };\n\nexports.defaults = { indentUnit: 2 };\n\n// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    { mod(require(\"../../lib/codemirror\")); }\n  else if (typeof define == \"function\" && define.amd) // AMD\n    { define([\"../../lib/codemirror\"], mod); }\n  else // Plain browser env\n    { mod(CodeMirror); }\n})(function(CodeMirror) {\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n  var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n\n  // Create a tokenizing callback function if passed-in callback is a DOM element.\n  if (callback.appendChild) {\n    var ie = /MSIE \\d/.test(navigator.userAgent);\n    var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function(text, style) {\n      if (text == \"\\n\") {\n        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n        // Emitting a carriage return makes everything ok.\n        node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0;;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) { content += \" \"; }\n          pos = idx + 1;\n        }\n      }\n      // Create a node with token style and append it to the callback DOM element.\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) { callback(\"\\n\"); }\n    var stream = new CodeMirror.StringStream(lines[i], null, {\n      lookAhead: function(n) { return lines[i + n] },\n      baseToken: function() {}\n    });\n    if (!stream.string && mode.blankLine) { mode.blankLine(state); }\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/scroll/annotatescrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"annotateScrollbar\", function(options) {\n    if (typeof options == \"string\") options = {className: options};\n    return new Annotation(this, options);\n  });\n\n  CodeMirror.defineOption(\"scrollButtonHeight\", 0);\n\n  function Annotation(cm, options) {\n    this.cm = cm;\n    this.options = options;\n    this.buttonHeight = options.scrollButtonHeight || cm.getOption(\"scrollButtonHeight\");\n    this.annotations = [];\n    this.doRedraw = this.doUpdate = null;\n    this.div = cm.getWrapperElement().appendChild(document.createElement(\"div\"));\n    this.div.style.cssText = \"position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none\";\n    this.computeScale();\n\n    function scheduleRedraw(delay) {\n      clearTimeout(self.doRedraw);\n      self.doRedraw = setTimeout(function() { self.redraw(); }, delay);\n    }\n\n    var self = this;\n    cm.on(\"refresh\", this.resizeHandler = function() {\n      clearTimeout(self.doUpdate);\n      self.doUpdate = setTimeout(function() {\n        if (self.computeScale()) scheduleRedraw(20);\n      }, 100);\n    });\n    cm.on(\"markerAdded\", this.resizeHandler);\n    cm.on(\"markerCleared\", this.resizeHandler);\n    if (options.listenForChanges !== false)\n      cm.on(\"changes\", this.changeHandler = function() {\n        scheduleRedraw(250);\n      });\n  }\n\n  Annotation.prototype.computeScale = function() {\n    var cm = this.cm;\n    var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /\n      cm.getScrollerElement().scrollHeight\n    if (hScale != this.hScale) {\n      this.hScale = hScale;\n      return true;\n    }\n  };\n\n  Annotation.prototype.update = function(annotations) {\n    this.annotations = annotations;\n    this.redraw();\n  };\n\n  Annotation.prototype.redraw = function(compute) {\n    if (compute !== false) this.computeScale();\n    var cm = this.cm, hScale = this.hScale;\n\n    var frag = document.createDocumentFragment(), anns = this.annotations;\n\n    var wrapping = cm.getOption(\"lineWrapping\");\n    var singleLineH = wrapping && cm.defaultTextHeight() * 1.5;\n    var curLine = null, curLineObj = null;\n\n    function getY(pos, top) {\n      if (curLine != pos.line) {\n        curLine = pos.line\n        curLineObj = cm.getLineHandle(pos.line)\n        var visual = cm.getLineHandleVisualStart(curLineObj)\n        if (visual != curLineObj) {\n          curLine = cm.getLineNumber(visual)\n          curLineObj = visual\n        }\n      }\n      if ((curLineObj.widgets && curLineObj.widgets.length) ||\n          (wrapping && curLineObj.height > singleLineH))\n        return cm.charCoords(pos, \"local\")[top ? \"top\" : \"bottom\"];\n      var topY = cm.heightAtLine(curLineObj, \"local\");\n      return topY + (top ? 0 : curLineObj.height);\n    }\n\n    var lastLine = cm.lastLine()\n    if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {\n      var ann = anns[i];\n      if (ann.to.line > lastLine) continue;\n      var top = nextTop || getY(ann.from, true) * hScale;\n      var bottom = getY(ann.to, false) * hScale;\n      while (i < anns.length - 1) {\n        if (anns[i + 1].to.line > lastLine) break;\n        nextTop = getY(anns[i + 1].from, true) * hScale;\n        if (nextTop > bottom + .9) break;\n        ann = anns[++i];\n        bottom = getY(ann.to, false) * hScale;\n      }\n      if (bottom == top) continue;\n      var height = Math.max(bottom - top, 3);\n\n      var elt = frag.appendChild(document.createElement(\"div\"));\n      elt.style.cssText = \"position: absolute; right: 0px; width: \" + Math.max(cm.display.barWidth - 1, 2) + \"px; top: \"\n        + (top + this.buttonHeight) + \"px; height: \" + height + \"px\";\n      elt.className = this.options.className;\n      if (ann.id) {\n        elt.setAttribute(\"annotation-id\", ann.id);\n      }\n    }\n    this.div.textContent = \"\";\n    this.div.appendChild(frag);\n  };\n\n  Annotation.prototype.clear = function() {\n    this.cm.off(\"refresh\", this.resizeHandler);\n    this.cm.off(\"markerAdded\", this.resizeHandler);\n    this.cm.off(\"markerCleared\", this.resizeHandler);\n    if (this.changeHandler) this.cm.off(\"changes\", this.changeHandler);\n    this.div.parentNode.removeChild(this.div);\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/scroll/scrollpastend.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"scrollPastEnd\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"change\", onChange);\n      cm.off(\"refresh\", updateBottomMargin);\n      cm.display.lineSpace.parentNode.style.paddingBottom = \"\";\n      cm.state.scrollPastEndPadding = null;\n    }\n    if (val) {\n      cm.on(\"change\", onChange);\n      cm.on(\"refresh\", updateBottomMargin);\n      updateBottomMargin(cm);\n    }\n  });\n\n  function onChange(cm, change) {\n    if (CodeMirror.changeEnd(change).line == cm.lastLine())\n      updateBottomMargin(cm);\n  }\n\n  function updateBottomMargin(cm) {\n    var padding = \"\";\n    if (cm.lineCount() > 1) {\n      var totalH = cm.display.scroller.clientHeight - 30,\n          lastLineH = cm.getLineHandle(cm.lastLine()).height;\n      padding = (totalH - lastLineH) + \"px\";\n    }\n    if (cm.state.scrollPastEndPadding != padding) {\n      cm.state.scrollPastEndPadding = padding;\n      cm.display.lineSpace.parentNode.style.paddingBottom = padding;\n      cm.off(\"refresh\", updateBottomMargin);\n      cm.setSize();\n      cm.on(\"refresh\", updateBottomMargin);\n    }\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/scroll/simplescrollbars.css",
    "content": ".CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {\n  position: absolute;\n  background: #ccc;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  border: 1px solid #bbb;\n  border-radius: 2px;\n}\n\n.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {\n  position: absolute;\n  z-index: 6;\n  background: #eee;\n}\n\n.CodeMirror-simplescroll-horizontal {\n  bottom: 0; left: 0;\n  height: 8px;\n}\n.CodeMirror-simplescroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-simplescroll-vertical {\n  right: 0; top: 0;\n  width: 8px;\n}\n.CodeMirror-simplescroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n\n\n.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {\n  display: none;\n}\n\n.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {\n  position: absolute;\n  background: #bcd;\n  border-radius: 3px;\n}\n\n.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {\n  position: absolute;\n  z-index: 6;\n}\n\n.CodeMirror-overlayscroll-horizontal {\n  bottom: 0; left: 0;\n  height: 6px;\n}\n.CodeMirror-overlayscroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-overlayscroll-vertical {\n  right: 0; top: 0;\n  width: 6px;\n}\n.CodeMirror-overlayscroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/scroll/simplescrollbars.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function Bar(cls, orientation, scroll) {\n    this.orientation = orientation;\n    this.scroll = scroll;\n    this.screen = this.total = this.size = 1;\n    this.pos = 0;\n\n    this.node = document.createElement(\"div\");\n    this.node.className = cls + \"-\" + orientation;\n    this.inner = this.node.appendChild(document.createElement(\"div\"));\n\n    var self = this;\n    CodeMirror.on(this.inner, \"mousedown\", function(e) {\n      if (e.which != 1) return;\n      CodeMirror.e_preventDefault(e);\n      var axis = self.orientation == \"horizontal\" ? \"pageX\" : \"pageY\";\n      var start = e[axis], startpos = self.pos;\n      function done() {\n        CodeMirror.off(document, \"mousemove\", move);\n        CodeMirror.off(document, \"mouseup\", done);\n      }\n      function move(e) {\n        if (e.which != 1) return done();\n        self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));\n      }\n      CodeMirror.on(document, \"mousemove\", move);\n      CodeMirror.on(document, \"mouseup\", done);\n    });\n\n    CodeMirror.on(this.node, \"click\", function(e) {\n      CodeMirror.e_preventDefault(e);\n      var innerBox = self.inner.getBoundingClientRect(), where;\n      if (self.orientation == \"horizontal\")\n        where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;\n      else\n        where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;\n      self.moveTo(self.pos + where * self.screen);\n    });\n\n    function onWheel(e) {\n      var moved = CodeMirror.wheelEventPixels(e)[self.orientation == \"horizontal\" ? \"x\" : \"y\"];\n      var oldPos = self.pos;\n      self.moveTo(self.pos + moved);\n      if (self.pos != oldPos) CodeMirror.e_preventDefault(e);\n    }\n    CodeMirror.on(this.node, \"mousewheel\", onWheel);\n    CodeMirror.on(this.node, \"DOMMouseScroll\", onWheel);\n  }\n\n  Bar.prototype.setPos = function(pos, force) {\n    if (pos < 0) pos = 0;\n    if (pos > this.total - this.screen) pos = this.total - this.screen;\n    if (!force && pos == this.pos) return false;\n    this.pos = pos;\n    this.inner.style[this.orientation == \"horizontal\" ? \"left\" : \"top\"] =\n      (pos * (this.size / this.total)) + \"px\";\n    return true\n  };\n\n  Bar.prototype.moveTo = function(pos) {\n    if (this.setPos(pos)) this.scroll(pos, this.orientation);\n  }\n\n  var minButtonSize = 10;\n\n  Bar.prototype.update = function(scrollSize, clientSize, barSize) {\n    var sizeChanged = this.screen != clientSize || this.total != scrollSize || this.size != barSize\n    if (sizeChanged) {\n      this.screen = clientSize;\n      this.total = scrollSize;\n      this.size = barSize;\n    }\n\n    var buttonSize = this.screen * (this.size / this.total);\n    if (buttonSize < minButtonSize) {\n      this.size -= minButtonSize - buttonSize;\n      buttonSize = minButtonSize;\n    }\n    this.inner.style[this.orientation == \"horizontal\" ? \"width\" : \"height\"] =\n      buttonSize + \"px\";\n    this.setPos(this.pos, sizeChanged);\n  };\n\n  function SimpleScrollbars(cls, place, scroll) {\n    this.addClass = cls;\n    this.horiz = new Bar(cls, \"horizontal\", scroll);\n    place(this.horiz.node);\n    this.vert = new Bar(cls, \"vertical\", scroll);\n    place(this.vert.node);\n    this.width = null;\n  }\n\n  SimpleScrollbars.prototype.update = function(measure) {\n    if (this.width == null) {\n      var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;\n      if (style) this.width = parseInt(style.height);\n    }\n    var width = this.width || 0;\n\n    var needsH = measure.scrollWidth > measure.clientWidth + 1;\n    var needsV = measure.scrollHeight > measure.clientHeight + 1;\n    this.vert.node.style.display = needsV ? \"block\" : \"none\";\n    this.horiz.node.style.display = needsH ? \"block\" : \"none\";\n\n    if (needsV) {\n      this.vert.update(measure.scrollHeight, measure.clientHeight,\n                       measure.viewHeight - (needsH ? width : 0));\n      this.vert.node.style.bottom = needsH ? width + \"px\" : \"0\";\n    }\n    if (needsH) {\n      this.horiz.update(measure.scrollWidth, measure.clientWidth,\n                        measure.viewWidth - (needsV ? width : 0) - measure.barLeft);\n      this.horiz.node.style.right = needsV ? width + \"px\" : \"0\";\n      this.horiz.node.style.left = measure.barLeft + \"px\";\n    }\n\n    return {right: needsV ? width : 0, bottom: needsH ? width : 0};\n  };\n\n  SimpleScrollbars.prototype.setScrollTop = function(pos) {\n    this.vert.setPos(pos);\n  };\n\n  SimpleScrollbars.prototype.setScrollLeft = function(pos) {\n    this.horiz.setPos(pos);\n  };\n\n  SimpleScrollbars.prototype.clear = function() {\n    var parent = this.horiz.node.parentNode;\n    parent.removeChild(this.horiz.node);\n    parent.removeChild(this.vert.node);\n  };\n\n  CodeMirror.scrollbarModel.simple = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-simplescroll\", place, scroll);\n  };\n  CodeMirror.scrollbarModel.overlay = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-overlayscroll\", place, scroll);\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/jump-to-line.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Defines jumpToLine command. Uses dialog.js if present.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../dialog/dialog\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../dialog/dialog\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  // default search panel location\n  CodeMirror.defineOption(\"search\", {bottom: false});\n\n  function dialog(cm, text, shortText, deflt, f) {\n    if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n    else f(prompt(shortText, deflt));\n  }\n\n  function getJumpDialog(cm) {\n    return cm.phrase(\"Jump to line:\") + ' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">' + cm.phrase(\"(Use line:column or scroll% syntax)\") + '</span>';\n  }\n\n  function interpretLine(cm, string) {\n    var num = Number(string)\n    if (/^[-+]/.test(string)) return cm.getCursor().line + num\n    else return num - 1\n  }\n\n  CodeMirror.commands.jumpToLine = function(cm) {\n    var cur = cm.getCursor();\n    dialog(cm, getJumpDialog(cm), cm.phrase(\"Jump to line:\"), (cur.line + 1) + \":\" + cur.ch, function(posStr) {\n      if (!posStr) return;\n\n      var match;\n      if (match = /^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(posStr)) {\n        cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))\n      } else if (match = /^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(posStr)) {\n        var line = Math.round(cm.lineCount() * Number(match[1]) / 100);\n        if (/^[-+]/.test(match[1])) line = cur.line + line + 1;\n        cm.setCursor(line - 1, cur.ch);\n      } else if (match = /^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(posStr)) {\n        cm.setCursor(interpretLine(cm, match[1]), cur.ch);\n      }\n    });\n  };\n\n  CodeMirror.keyMap[\"default\"][\"Alt-G\"] = \"jumpToLine\";\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/match-highlighter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Highlighting text that matches the selection\n//\n// Defines an option highlightSelectionMatches, which, when enabled,\n// will style strings that match the selection throughout the\n// document.\n//\n// The option can be set to true to simply enable it, or to a\n// {minChars, style, wordsOnly, showToken, delay} object to explicitly\n// configure it. minChars is the minimum amount of characters that should be\n// selected for the behavior to occur, and style is the token style to\n// apply to the matches. This will be prefixed by \"cm-\" to create an\n// actual CSS class name. If wordsOnly is enabled, the matches will be\n// highlighted only if the selected text is a word. showToken, when enabled,\n// will cause the current token to be highlighted when nothing is selected.\n// delay is used to specify how much time to wait, in milliseconds, before\n// highlighting the matches. If annotateScrollbar is enabled, the occurrences\n// will be highlighted on the scrollbar via the matchesonscrollbar addon.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./matchesonscrollbar\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./matchesonscrollbar\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var defaults = {\n    style: \"matchhighlight\",\n    minChars: 2,\n    delay: 100,\n    wordsOnly: false,\n    annotateScrollbar: false,\n    showToken: false,\n    trim: true\n  }\n\n  function State(options) {\n    this.options = {}\n    for (var name in defaults)\n      this.options[name] = (options && options.hasOwnProperty(name) ? options : defaults)[name]\n    this.overlay = this.timeout = null;\n    this.matchesonscroll = null;\n    this.active = false;\n  }\n\n  CodeMirror.defineOption(\"highlightSelectionMatches\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      removeOverlay(cm);\n      clearTimeout(cm.state.matchHighlighter.timeout);\n      cm.state.matchHighlighter = null;\n      cm.off(\"cursorActivity\", cursorActivity);\n      cm.off(\"focus\", onFocus)\n    }\n    if (val) {\n      var state = cm.state.matchHighlighter = new State(val);\n      if (cm.hasFocus()) {\n        state.active = true\n        highlightMatches(cm)\n      } else {\n        cm.on(\"focus\", onFocus)\n      }\n      cm.on(\"cursorActivity\", cursorActivity);\n    }\n  });\n\n  function cursorActivity(cm) {\n    var state = cm.state.matchHighlighter;\n    if (state.active || cm.hasFocus()) scheduleHighlight(cm, state)\n  }\n\n  function onFocus(cm) {\n    var state = cm.state.matchHighlighter\n    if (!state.active) {\n      state.active = true\n      scheduleHighlight(cm, state)\n    }\n  }\n\n  function scheduleHighlight(cm, state) {\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function() {highlightMatches(cm);}, state.options.delay);\n  }\n\n  function addOverlay(cm, query, hasBoundary, style) {\n    var state = cm.state.matchHighlighter;\n    cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));\n    if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {\n      var searchFor = hasBoundary ? new RegExp((/\\w/.test(query.charAt(0)) ? \"\\\\b\" : \"\") +\n                                               query.replace(/[\\\\\\[.+*?(){|^$]/g, \"\\\\$&\") +\n                                               (/\\w/.test(query.charAt(query.length - 1)) ? \"\\\\b\" : \"\")) : query;\n      state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,\n        {className: \"CodeMirror-selection-highlight-scrollbar\"});\n    }\n  }\n\n  function removeOverlay(cm) {\n    var state = cm.state.matchHighlighter;\n    if (state.overlay) {\n      cm.removeOverlay(state.overlay);\n      state.overlay = null;\n      if (state.matchesonscroll) {\n        state.matchesonscroll.clear();\n        state.matchesonscroll = null;\n      }\n    }\n  }\n\n  function highlightMatches(cm) {\n    cm.operation(function() {\n      var state = cm.state.matchHighlighter;\n      removeOverlay(cm);\n      if (!cm.somethingSelected() && state.options.showToken) {\n        var re = state.options.showToken === true ? /[\\w$]/ : state.options.showToken;\n        var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;\n        while (start && re.test(line.charAt(start - 1))) --start;\n        while (end < line.length && re.test(line.charAt(end))) ++end;\n        if (start < end)\n          addOverlay(cm, line.slice(start, end), re, state.options.style);\n        return;\n      }\n      var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n      if (from.line != to.line) return;\n      if (state.options.wordsOnly && !isWord(cm, from, to)) return;\n      var selection = cm.getRange(from, to)\n      if (state.options.trim) selection = selection.replace(/^\\s+|\\s+$/g, \"\")\n      if (selection.length >= state.options.minChars)\n        addOverlay(cm, selection, false, state.options.style);\n    });\n  }\n\n  function isWord(cm, from, to) {\n    var str = cm.getRange(from, to);\n    if (str.match(/^\\w+$/) !== null) {\n        if (from.ch > 0) {\n            var pos = {line: from.line, ch: from.ch - 1};\n            var chr = cm.getRange(pos, from);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        if (to.ch < cm.getLine(from.line).length) {\n            var pos = {line: to.line, ch: to.ch + 1};\n            var chr = cm.getRange(to, pos);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        return true;\n    } else return false;\n  }\n\n  function boundariesAround(stream, re) {\n    return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&\n      (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));\n  }\n\n  function makeOverlay(query, hasBoundary, style) {\n    return {token: function(stream) {\n      if (stream.match(query) &&\n          (!hasBoundary || boundariesAround(stream, hasBoundary)))\n        return style;\n      stream.next();\n      stream.skipTo(query.charAt(0)) || stream.skipToEnd();\n    }};\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/matchesonscrollbar.css",
    "content": ".CodeMirror-search-match {\n  background: gold;\n  border-top: 1px solid orange;\n  border-bottom: 1px solid orange;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  opacity: .5;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/matchesonscrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../scroll/annotatescrollbar\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../scroll/annotatescrollbar\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"showMatchesOnScrollbar\", function(query, caseFold, options) {\n    if (typeof options == \"string\") options = {className: options};\n    if (!options) options = {};\n    return new SearchAnnotation(this, query, caseFold, options);\n  });\n\n  function SearchAnnotation(cm, query, caseFold, options) {\n    this.cm = cm;\n    this.options = options;\n    var annotateOptions = {listenForChanges: false};\n    for (var prop in options) annotateOptions[prop] = options[prop];\n    if (!annotateOptions.className) annotateOptions.className = \"CodeMirror-search-match\";\n    this.annotation = cm.annotateScrollbar(annotateOptions);\n    this.query = query;\n    this.caseFold = caseFold;\n    this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};\n    this.matches = [];\n    this.update = null;\n\n    this.findMatches();\n    this.annotation.update(this.matches);\n\n    var self = this;\n    cm.on(\"change\", this.changeHandler = function(_cm, change) { self.onChange(change); });\n  }\n\n  var MAX_MATCHES = 1000;\n\n  SearchAnnotation.prototype.findMatches = function() {\n    if (!this.gap) return;\n    for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      if (match.from.line >= this.gap.to) break;\n      if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);\n    }\n    var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), {caseFold: this.caseFold, multiline: this.options.multiline});\n    var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES;\n    while (cursor.findNext()) {\n      var match = {from: cursor.from(), to: cursor.to()};\n      if (match.from.line >= this.gap.to) break;\n      this.matches.splice(i++, 0, match);\n      if (this.matches.length > maxMatches) break;\n    }\n    this.gap = null;\n  };\n\n  function offsetLine(line, changeStart, sizeChange) {\n    if (line <= changeStart) return line;\n    return Math.max(changeStart, line + sizeChange);\n  }\n\n  SearchAnnotation.prototype.onChange = function(change) {\n    var startLine = change.from.line;\n    var endLine = CodeMirror.changeEnd(change).line;\n    var sizeChange = endLine - change.to.line;\n    if (this.gap) {\n      this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);\n      this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);\n    } else {\n      this.gap = {from: change.from.line, to: endLine + 1};\n    }\n\n    if (sizeChange) for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      var newFrom = offsetLine(match.from.line, startLine, sizeChange);\n      if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);\n      var newTo = offsetLine(match.to.line, startLine, sizeChange);\n      if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);\n    }\n    clearTimeout(this.update);\n    var self = this;\n    this.update = setTimeout(function() { self.updateAfterChange(); }, 250);\n  };\n\n  SearchAnnotation.prototype.updateAfterChange = function() {\n    this.findMatches();\n    this.annotation.update(this.matches);\n  };\n\n  SearchAnnotation.prototype.clear = function() {\n    this.cm.off(\"change\", this.changeHandler);\n    this.annotation.clear();\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/search.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  // default search panel location\n  CodeMirror.defineOption(\"search\", {bottom: false});\n\n  function searchOverlay(query, caseInsensitive) {\n    if (typeof query == \"string\")\n      query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n    else if (!query.global)\n      query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n    return {token: function(stream) {\n      query.lastIndex = stream.pos;\n      var match = query.exec(stream.string);\n      if (match && match.index == stream.pos) {\n        stream.pos += match[0].length || 1;\n        return \"searching\";\n      } else if (match) {\n        stream.pos = match.index;\n      } else {\n        stream.skipToEnd();\n      }\n    }};\n  }\n\n  function SearchState() {\n    this.posFrom = this.posTo = this.lastQuery = this.query = null;\n    this.overlay = null;\n  }\n\n  function getSearchState(cm) {\n    return cm.state.search || (cm.state.search = new SearchState());\n  }\n\n  function queryCaseInsensitive(query) {\n    return typeof query == \"string\" && query == query.toLowerCase();\n  }\n\n  function getSearchCursor(cm, query, pos) {\n    // Heuristic: if the query string is all lowercase, do a case insensitive search.\n    return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});\n  }\n\n  function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {\n    cm.openDialog(text, onEnter, {\n      value: deflt,\n      selectValueOnOpen: true,\n      closeOnEnter: false,\n      onClose: function() { clearSearch(cm); },\n      onKeyDown: onKeyDown,\n      bottom: cm.options.search.bottom\n    });\n  }\n\n  function dialog(cm, text, shortText, deflt, f) {\n    if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n    else f(prompt(shortText, deflt));\n  }\n\n  function confirmDialog(cm, text, shortText, fs) {\n    if (cm.openConfirm) cm.openConfirm(text, fs);\n    else if (confirm(shortText)) fs[0]();\n  }\n\n  function parseString(string) {\n    return string.replace(/\\\\([nrt\\\\])/g, function(match, ch) {\n      if (ch == \"n\") return \"\\n\"\n      if (ch == \"r\") return \"\\r\"\n      if (ch == \"t\") return \"\\t\"\n      if (ch == \"\\\\\") return \"\\\\\"\n      return match\n    })\n  }\n\n  function parseQuery(query) {\n    var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n    if (isRE) {\n      try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n      catch(e) {} // Not a regular expression after all, do a string search\n    } else {\n      query = parseString(query)\n    }\n    if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n      query = /x^/;\n    return query;\n  }\n\n  function startSearch(cm, state, query) {\n    state.queryText = query;\n    state.query = parseQuery(query);\n    cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n    state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n    cm.addOverlay(state.overlay);\n    if (cm.showMatchesOnScrollbar) {\n      if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n      state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n    }\n  }\n\n  function doSearch(cm, rev, persistent, immediate) {\n    var state = getSearchState(cm);\n    if (state.query) return findNext(cm, rev);\n    var q = cm.getSelection() || state.lastQuery;\n    if (q instanceof RegExp && q.source == \"x^\") q = null\n    if (persistent && cm.openDialog) {\n      var hiding = null\n      var searchNext = function(query, event) {\n        CodeMirror.e_stop(event);\n        if (!query) return;\n        if (query != state.queryText) {\n          startSearch(cm, state, query);\n          state.posFrom = state.posTo = cm.getCursor();\n        }\n        if (hiding) hiding.style.opacity = 1\n        findNext(cm, event.shiftKey, function(_, to) {\n          var dialog\n          if (to.line < 3 && document.querySelector &&\n              (dialog = cm.display.wrapper.querySelector(\".CodeMirror-dialog\")) &&\n              dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, \"window\").top)\n            (hiding = dialog).style.opacity = .4\n        })\n      };\n      persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {\n        var keyName = CodeMirror.keyName(event)\n        var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption(\"keyMap\")][keyName]\n        if (cmd == \"findNext\" || cmd == \"findPrev\" ||\n          cmd == \"findPersistentNext\" || cmd == \"findPersistentPrev\") {\n          CodeMirror.e_stop(event);\n          startSearch(cm, getSearchState(cm), query);\n          cm.execCommand(cmd);\n        } else if (cmd == \"find\" || cmd == \"findPersistent\") {\n          CodeMirror.e_stop(event);\n          searchNext(query, event);\n        }\n      });\n      if (immediate && q) {\n        startSearch(cm, state, q);\n        findNext(cm, rev);\n      }\n    } else {\n      dialog(cm, getQueryDialog(cm), \"Search for:\", q, function(query) {\n        if (query && !state.query) cm.operation(function() {\n          startSearch(cm, state, query);\n          state.posFrom = state.posTo = cm.getCursor();\n          findNext(cm, rev);\n        });\n      });\n    }\n  }\n\n  function findNext(cm, rev, callback) {cm.operation(function() {\n    var state = getSearchState(cm);\n    var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n    if (!cursor.find(rev)) {\n      cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n      if (!cursor.find(rev)) return;\n    }\n    cm.setSelection(cursor.from(), cursor.to());\n    cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);\n    state.posFrom = cursor.from(); state.posTo = cursor.to();\n    if (callback) callback(cursor.from(), cursor.to())\n  });}\n\n  function clearSearch(cm) {cm.operation(function() {\n    var state = getSearchState(cm);\n    state.lastQuery = state.query;\n    if (!state.query) return;\n    state.query = state.queryText = null;\n    cm.removeOverlay(state.overlay);\n    if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n  });}\n\n\n  function getQueryDialog(cm)  {\n    return '<span class=\"CodeMirror-search-label\">' + cm.phrase(\"Search:\") + '</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '</span>';\n  }\n  function getReplaceQueryDialog(cm) {\n    return ' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '</span>';\n  }\n  function getReplacementQueryDialog(cm) {\n    return '<span class=\"CodeMirror-search-label\">' + cm.phrase(\"With:\") + '</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>';\n  }\n  function getDoReplaceConfirm(cm) {\n    return '<span class=\"CodeMirror-search-label\">' + cm.phrase(\"Replace?\") + '</span> <button>' + cm.phrase(\"Yes\") + '</button> <button>' + cm.phrase(\"No\") + '</button> <button>' + cm.phrase(\"All\") + '</button> <button>' + cm.phrase(\"Stop\") + '</button> ';\n  }\n\n  function replaceAll(cm, query, text) {\n    cm.operation(function() {\n      for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n        if (typeof query != \"string\") {\n          var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n          cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n        } else cursor.replace(text);\n      }\n    });\n  }\n\n  function replace(cm, all) {\n    if (cm.getOption(\"readOnly\")) return;\n    var query = cm.getSelection() || getSearchState(cm).lastQuery;\n    var dialogText = '<span class=\"CodeMirror-search-label\">' + (all ? cm.phrase(\"Replace all:\") : cm.phrase(\"Replace:\")) + '</span>';\n    dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {\n      if (!query) return;\n      query = parseQuery(query);\n      dialog(cm, getReplacementQueryDialog(cm), cm.phrase(\"Replace with:\"), \"\", function(text) {\n        text = parseString(text)\n        if (all) {\n          replaceAll(cm, query, text)\n        } else {\n          clearSearch(cm);\n          var cursor = getSearchCursor(cm, query, cm.getCursor(\"from\"));\n          var advance = function() {\n            var start = cursor.from(), match;\n            if (!(match = cursor.findNext())) {\n              cursor = getSearchCursor(cm, query);\n              if (!(match = cursor.findNext()) ||\n                  (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n            }\n            cm.setSelection(cursor.from(), cursor.to());\n            cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n            confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase(\"Replace?\"),\n                          [function() {doReplace(match);}, advance,\n                           function() {replaceAll(cm, query, text)}]);\n          };\n          var doReplace = function(match) {\n            cursor.replace(typeof query == \"string\" ? text :\n                           text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n            advance();\n          };\n          advance();\n        }\n      });\n    });\n  }\n\n  CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n  CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};\n  CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};\n  CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};\n  CodeMirror.commands.findNext = doSearch;\n  CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n  CodeMirror.commands.clearSearch = clearSearch;\n  CodeMirror.commands.replace = replace;\n  CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/search/searchcursor.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod)\n  else // Plain browser env\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n  var Pos = CodeMirror.Pos\n\n  function regexpFlags(regexp) {\n    var flags = regexp.flags\n    return flags != null ? flags : (regexp.ignoreCase ? \"i\" : \"\")\n      + (regexp.global ? \"g\" : \"\")\n      + (regexp.multiline ? \"m\" : \"\")\n  }\n\n  function ensureFlags(regexp, flags) {\n    var current = regexpFlags(regexp), target = current\n    for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)\n      target += flags.charAt(i)\n    return current == target ? regexp : new RegExp(regexp.source, target)\n  }\n\n  function maybeMultiline(regexp) {\n    return /\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(regexp.source)\n  }\n\n  function searchRegexpForward(doc, regexp, start) {\n    regexp = ensureFlags(regexp, \"g\")\n    for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {\n      regexp.lastIndex = ch\n      var string = doc.getLine(line), match = regexp.exec(string)\n      if (match)\n        return {from: Pos(line, match.index),\n                to: Pos(line, match.index + match[0].length),\n                match: match}\n    }\n  }\n\n  function searchRegexpForwardMultiline(doc, regexp, start) {\n    if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)\n\n    regexp = ensureFlags(regexp, \"gm\")\n    var string, chunk = 1\n    for (var line = start.line, last = doc.lastLine(); line <= last;) {\n      // This grows the search buffer in exponentially-sized chunks\n      // between matches, so that nearby matches are fast and don't\n      // require concatenating the whole document (in case we're\n      // searching for something that has tons of matches), but at the\n      // same time, the amount of retries is limited.\n      for (var i = 0; i < chunk; i++) {\n        if (line > last) break\n        var curLine = doc.getLine(line++)\n        string = string == null ? curLine : string + \"\\n\" + curLine\n      }\n      chunk = chunk * 2\n      regexp.lastIndex = start.ch\n      var match = regexp.exec(string)\n      if (match) {\n        var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n        var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length\n        return {from: Pos(startLine, startCh),\n                to: Pos(startLine + inside.length - 1,\n                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n                match: match}\n      }\n    }\n  }\n\n  function lastMatchIn(string, regexp, endMargin) {\n    var match, from = 0\n    while (from <= string.length) {\n      regexp.lastIndex = from\n      var newMatch = regexp.exec(string)\n      if (!newMatch) break\n      var end = newMatch.index + newMatch[0].length\n      if (end > string.length - endMargin) break\n      if (!match || end > match.index + match[0].length)\n        match = newMatch\n      from = newMatch.index + 1\n    }\n    return match\n  }\n\n  function searchRegexpBackward(doc, regexp, start) {\n    regexp = ensureFlags(regexp, \"g\")\n    for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {\n      var string = doc.getLine(line)\n      var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch)\n      if (match)\n        return {from: Pos(line, match.index),\n                to: Pos(line, match.index + match[0].length),\n                match: match}\n    }\n  }\n\n  function searchRegexpBackwardMultiline(doc, regexp, start) {\n    if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start)\n    regexp = ensureFlags(regexp, \"gm\")\n    var string, chunkSize = 1, endMargin = doc.getLine(start.line).length - start.ch\n    for (var line = start.line, first = doc.firstLine(); line >= first;) {\n      for (var i = 0; i < chunkSize && line >= first; i++) {\n        var curLine = doc.getLine(line--)\n        string = string == null ? curLine : curLine + \"\\n\" + string\n      }\n      chunkSize *= 2\n\n      var match = lastMatchIn(string, regexp, endMargin)\n      if (match) {\n        var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n        var startLine = line + before.length, startCh = before[before.length - 1].length\n        return {from: Pos(startLine, startCh),\n                to: Pos(startLine + inside.length - 1,\n                        inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n                match: match}\n      }\n    }\n  }\n\n  var doFold, noFold\n  if (String.prototype.normalize) {\n    doFold = function(str) { return str.normalize(\"NFD\").toLowerCase() }\n    noFold = function(str) { return str.normalize(\"NFD\") }\n  } else {\n    doFold = function(str) { return str.toLowerCase() }\n    noFold = function(str) { return str }\n  }\n\n  // Maps a position in a case-folded line back to a position in the original line\n  // (compensating for codepoints increasing in number during folding)\n  function adjustPos(orig, folded, pos, foldFunc) {\n    if (orig.length == folded.length) return pos\n    for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {\n      if (min == max) return min\n      var mid = (min + max) >> 1\n      var len = foldFunc(orig.slice(0, mid)).length\n      if (len == pos) return mid\n      else if (len > pos) max = mid\n      else min = mid + 1\n    }\n  }\n\n  function searchStringForward(doc, query, start, caseFold) {\n    // Empty string would match anything and never progress, so we\n    // define it to match nothing instead.\n    if (!query.length) return null\n    var fold = caseFold ? doFold : noFold\n    var lines = fold(query).split(/\\r|\\n\\r?/)\n\n    search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {\n      var orig = doc.getLine(line).slice(ch), string = fold(orig)\n      if (lines.length == 1) {\n        var found = string.indexOf(lines[0])\n        if (found == -1) continue search\n        var start = adjustPos(orig, string, found, fold) + ch\n        return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),\n                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}\n      } else {\n        var cutFrom = string.length - lines[0].length\n        if (string.slice(cutFrom) != lines[0]) continue search\n        for (var i = 1; i < lines.length - 1; i++)\n          if (fold(doc.getLine(line + i)) != lines[i]) continue search\n        var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]\n        if (endString.slice(0, lastLine.length) != lastLine) continue search\n        return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),\n                to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}\n      }\n    }\n  }\n\n  function searchStringBackward(doc, query, start, caseFold) {\n    if (!query.length) return null\n    var fold = caseFold ? doFold : noFold\n    var lines = fold(query).split(/\\r|\\n\\r?/)\n\n    search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {\n      var orig = doc.getLine(line)\n      if (ch > -1) orig = orig.slice(0, ch)\n      var string = fold(orig)\n      if (lines.length == 1) {\n        var found = string.lastIndexOf(lines[0])\n        if (found == -1) continue search\n        return {from: Pos(line, adjustPos(orig, string, found, fold)),\n                to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}\n      } else {\n        var lastLine = lines[lines.length - 1]\n        if (string.slice(0, lastLine.length) != lastLine) continue search\n        for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)\n          if (fold(doc.getLine(start + i)) != lines[i]) continue search\n        var top = doc.getLine(line + 1 - lines.length), topString = fold(top)\n        if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search\n        return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),\n                to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}\n      }\n    }\n  }\n\n  function SearchCursor(doc, query, pos, options) {\n    this.atOccurrence = false\n    this.doc = doc\n    pos = pos ? doc.clipPos(pos) : Pos(0, 0)\n    this.pos = {from: pos, to: pos}\n\n    var caseFold\n    if (typeof options == \"object\") {\n      caseFold = options.caseFold\n    } else { // Backwards compat for when caseFold was the 4th argument\n      caseFold = options\n      options = null\n    }\n\n    if (typeof query == \"string\") {\n      if (caseFold == null) caseFold = false\n      this.matches = function(reverse, pos) {\n        return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)\n      }\n    } else {\n      query = ensureFlags(query, \"gm\")\n      if (!options || options.multiline !== false)\n        this.matches = function(reverse, pos) {\n          return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)\n        }\n      else\n        this.matches = function(reverse, pos) {\n          return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)\n        }\n    }\n  }\n\n  SearchCursor.prototype = {\n    findNext: function() {return this.find(false)},\n    findPrevious: function() {return this.find(true)},\n\n    find: function(reverse) {\n      var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))\n\n      // Implements weird auto-growing behavior on null-matches for\n      // backwards-compatibility with the vim code (unfortunately)\n      while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {\n        if (reverse) {\n          if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)\n          else if (result.from.line == this.doc.firstLine()) result = null\n          else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))\n        } else {\n          if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)\n          else if (result.to.line == this.doc.lastLine()) result = null\n          else result = this.matches(reverse, Pos(result.to.line + 1, 0))\n        }\n      }\n\n      if (result) {\n        this.pos = result\n        this.atOccurrence = true\n        return this.pos.match || true\n      } else {\n        var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)\n        this.pos = {from: end, to: end}\n        return this.atOccurrence = false\n      }\n    },\n\n    from: function() {if (this.atOccurrence) return this.pos.from},\n    to: function() {if (this.atOccurrence) return this.pos.to},\n\n    replace: function(newText, origin) {\n      if (!this.atOccurrence) return\n      var lines = CodeMirror.splitLines(newText)\n      this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)\n      this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n                        lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))\n    }\n  }\n\n  CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this.doc, query, pos, caseFold)\n  })\n  CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this, query, pos, caseFold)\n  })\n\n  CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n    var ranges = []\n    var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold)\n    while (cur.findNext()) {\n      if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break\n      ranges.push({anchor: cur.from(), head: cur.to()})\n    }\n    if (ranges.length)\n      this.setSelections(ranges, 0)\n  })\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/selection/active-line.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var WRAP_CLASS = \"CodeMirror-activeline\";\n  var BACK_CLASS = \"CodeMirror-activeline-background\";\n  var GUTT_CLASS = \"CodeMirror-activeline-gutter\";\n\n  CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n    var prev = old == CodeMirror.Init ? false : old;\n    if (val == prev) return\n    if (prev) {\n      cm.off(\"beforeSelectionChange\", selectionChange);\n      clearActiveLines(cm);\n      delete cm.state.activeLines;\n    }\n    if (val) {\n      cm.state.activeLines = [];\n      updateActiveLines(cm, cm.listSelections());\n      cm.on(\"beforeSelectionChange\", selectionChange);\n    }\n  });\n\n  function clearActiveLines(cm) {\n    for (var i = 0; i < cm.state.activeLines.length; i++) {\n      cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n      cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n      cm.removeLineClass(cm.state.activeLines[i], \"gutter\", GUTT_CLASS);\n    }\n  }\n\n  function sameArray(a, b) {\n    if (a.length != b.length) return false;\n    for (var i = 0; i < a.length; i++)\n      if (a[i] != b[i]) return false;\n    return true;\n  }\n\n  function updateActiveLines(cm, ranges) {\n    var active = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      var option = cm.getOption(\"styleActiveLine\");\n      if (typeof option == \"object\" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())\n        continue\n      var line = cm.getLineHandleVisualStart(range.head.line);\n      if (active[active.length - 1] != line) active.push(line);\n    }\n    if (sameArray(cm.state.activeLines, active)) return;\n    cm.operation(function() {\n      clearActiveLines(cm);\n      for (var i = 0; i < active.length; i++) {\n        cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n        cm.addLineClass(active[i], \"background\", BACK_CLASS);\n        cm.addLineClass(active[i], \"gutter\", GUTT_CLASS);\n      }\n      cm.state.activeLines = active;\n    });\n  }\n\n  function selectionChange(cm, sel) {\n    updateActiveLines(cm, sel.ranges);\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/selection/mark-selection.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.state.markedSelection = [];\n      cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n      reset(cm);\n      cm.on(\"cursorActivity\", onCursorActivity);\n      cm.on(\"change\", onChange);\n    } else if (!val && prev) {\n      cm.off(\"cursorActivity\", onCursorActivity);\n      cm.off(\"change\", onChange);\n      clear(cm);\n      cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n    }\n  });\n\n  function onCursorActivity(cm) {\n    if (cm.state.markedSelection)\n      cm.operation(function() { update(cm); });\n  }\n\n  function onChange(cm) {\n    if (cm.state.markedSelection && cm.state.markedSelection.length)\n      cm.operation(function() { clear(cm); });\n  }\n\n  var CHUNK_SIZE = 8;\n  var Pos = CodeMirror.Pos;\n  var cmp = CodeMirror.cmpPos;\n\n  function coverRange(cm, from, to, addAt) {\n    if (cmp(from, to) == 0) return;\n    var array = cm.state.markedSelection;\n    var cls = cm.state.markedSelectionStyle;\n    for (var line = from.line;;) {\n      var start = line == from.line ? from : Pos(line, 0);\n      var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n      var end = atEnd ? to : Pos(endLine, 0);\n      var mark = cm.markText(start, end, {className: cls});\n      if (addAt == null) array.push(mark);\n      else array.splice(addAt++, 0, mark);\n      if (atEnd) break;\n      line = endLine;\n    }\n  }\n\n  function clear(cm) {\n    var array = cm.state.markedSelection;\n    for (var i = 0; i < array.length; ++i) array[i].clear();\n    array.length = 0;\n  }\n\n  function reset(cm) {\n    clear(cm);\n    var ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++)\n      coverRange(cm, ranges[i].from(), ranges[i].to());\n  }\n\n  function update(cm) {\n    if (!cm.somethingSelected()) return clear(cm);\n    if (cm.listSelections().length > 1) return reset(cm);\n\n    var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n    var array = cm.state.markedSelection;\n    if (!array.length) return coverRange(cm, from, to);\n\n    var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n    if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||\n        cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n      return reset(cm);\n\n    while (cmp(from, coverStart.from) > 0) {\n      array.shift().clear();\n      coverStart = array[0].find();\n    }\n    if (cmp(from, coverStart.from) < 0) {\n      if (coverStart.to.line - from.line < CHUNK_SIZE) {\n        array.shift().clear();\n        coverRange(cm, from, coverStart.to, 0);\n      } else {\n        coverRange(cm, from, coverStart.from, 0);\n      }\n    }\n\n    while (cmp(to, coverEnd.to) < 0) {\n      array.pop().clear();\n      coverEnd = array[array.length - 1].find();\n    }\n    if (cmp(to, coverEnd.to) > 0) {\n      if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n        array.pop().clear();\n        coverRange(cm, coverEnd.from, to);\n      } else {\n        coverRange(cm, coverEnd.to, to);\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/selection/selection-pointer.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"selectionPointer\", false, function(cm, val) {\n    var data = cm.state.selectionPointer;\n    if (data) {\n      CodeMirror.off(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.off(window, \"scroll\", data.windowScroll);\n      cm.off(\"cursorActivity\", reset);\n      cm.off(\"scroll\", reset);\n      cm.state.selectionPointer = null;\n      cm.display.lineDiv.style.cursor = \"\";\n    }\n    if (val) {\n      data = cm.state.selectionPointer = {\n        value: typeof val == \"string\" ? val : \"default\",\n        mousemove: function(event) { mousemove(cm, event); },\n        mouseout: function(event) { mouseout(cm, event); },\n        windowScroll: function() { reset(cm); },\n        rects: null,\n        mouseX: null, mouseY: null,\n        willUpdate: false\n      };\n      CodeMirror.on(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.on(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.on(window, \"scroll\", data.windowScroll);\n      cm.on(\"cursorActivity\", reset);\n      cm.on(\"scroll\", reset);\n    }\n  });\n\n  function mousemove(cm, event) {\n    var data = cm.state.selectionPointer;\n    if (event.buttons == null ? event.which : event.buttons) {\n      data.mouseX = data.mouseY = null;\n    } else {\n      data.mouseX = event.clientX;\n      data.mouseY = event.clientY;\n    }\n    scheduleUpdate(cm);\n  }\n\n  function mouseout(cm, event) {\n    if (!cm.getWrapperElement().contains(event.relatedTarget)) {\n      var data = cm.state.selectionPointer;\n      data.mouseX = data.mouseY = null;\n      scheduleUpdate(cm);\n    }\n  }\n\n  function reset(cm) {\n    cm.state.selectionPointer.rects = null;\n    scheduleUpdate(cm);\n  }\n\n  function scheduleUpdate(cm) {\n    if (!cm.state.selectionPointer.willUpdate) {\n      cm.state.selectionPointer.willUpdate = true;\n      setTimeout(function() {\n        update(cm);\n        cm.state.selectionPointer.willUpdate = false;\n      }, 50);\n    }\n  }\n\n  function update(cm) {\n    var data = cm.state.selectionPointer;\n    if (!data) return;\n    if (data.rects == null && data.mouseX != null) {\n      data.rects = [];\n      if (cm.somethingSelected()) {\n        for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)\n          data.rects.push(sel.getBoundingClientRect());\n      }\n    }\n    var inside = false;\n    if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {\n      var rect = data.rects[i];\n      if (rect.left <= data.mouseX && rect.right >= data.mouseX &&\n          rect.top <= data.mouseY && rect.bottom >= data.mouseY)\n        inside = true;\n    }\n    var cursor = inside ? data.value : \"\";\n    if (cm.display.lineDiv.style.cursor != cursor)\n      cm.display.lineDiv.style.cursor = cursor;\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/tern/tern.css",
    "content": ".CodeMirror-Tern-completion {\n  padding-left: 22px;\n  position: relative;\n  line-height: 1.5;\n}\n.CodeMirror-Tern-completion:before {\n  position: absolute;\n  left: 2px;\n  bottom: 2px;\n  border-radius: 50%;\n  font-size: 12px;\n  font-weight: bold;\n  height: 15px;\n  width: 15px;\n  line-height: 16px;\n  text-align: center;\n  color: white;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.CodeMirror-Tern-completion-unknown:before {\n  content: \"?\";\n  background: #4bb;\n}\n.CodeMirror-Tern-completion-object:before {\n  content: \"O\";\n  background: #77c;\n}\n.CodeMirror-Tern-completion-fn:before {\n  content: \"F\";\n  background: #7c7;\n}\n.CodeMirror-Tern-completion-array:before {\n  content: \"A\";\n  background: #c66;\n}\n.CodeMirror-Tern-completion-number:before {\n  content: \"1\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-string:before {\n  content: \"S\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-bool:before {\n  content: \"B\";\n  background: #999;\n}\n\n.CodeMirror-Tern-completion-guess {\n  color: #999;\n}\n\n.CodeMirror-Tern-tooltip {\n  border: 1px solid silver;\n  border-radius: 3px;\n  color: #444;\n  padding: 2px 5px;\n  font-size: 90%;\n  font-family: monospace;\n  background-color: white;\n  white-space: pre-wrap;\n\n  max-width: 40em;\n  position: absolute;\n  z-index: 10;\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n\n  transition: opacity 1s;\n  -moz-transition: opacity 1s;\n  -webkit-transition: opacity 1s;\n  -o-transition: opacity 1s;\n  -ms-transition: opacity 1s;\n}\n\n.CodeMirror-Tern-hint-doc {\n  max-width: 25em;\n  margin-top: -3px;\n}\n\n.CodeMirror-Tern-fname { color: black; }\n.CodeMirror-Tern-farg { color: #70a; }\n.CodeMirror-Tern-farg-current { text-decoration: underline; }\n.CodeMirror-Tern-type { color: #07c; }\n.CodeMirror-Tern-fhint-guess { opacity: .7; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/tern/tern.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Glue code between CodeMirror and Tern.\n//\n// Create a CodeMirror.TernServer to wrap an actual Tern server,\n// register open documents (CodeMirror.Doc instances) with it, and\n// call its methods to activate the assisting functions that Tern\n// provides.\n//\n// Options supported (all optional):\n// * defs: An array of JSON definition data structures.\n// * plugins: An object mapping plugin names to configuration\n//   options.\n// * getFile: A function(name, c) that can be used to access files in\n//   the project that haven't been loaded yet. Simply do c(null) to\n//   indicate that a file is not available.\n// * fileFilter: A function(value, docName, doc) that will be applied\n//   to documents before passing them on to Tern.\n// * switchToDoc: A function(name, doc) that should, when providing a\n//   multi-file view, switch the view or focus to the named file.\n// * showError: A function(editor, message) that can be used to\n//   override the way errors are displayed.\n// * completionTip: Customize the content in tooltips for completions.\n//   Is passed a single argument—the completion's data as returned by\n//   Tern—and may return a string, DOM node, or null to indicate that\n//   no tip should be shown. By default the docstring is shown.\n// * typeTip: Like completionTip, but for the tooltips shown for type\n//   queries.\n// * responseFilter: A function(doc, query, request, error, data) that\n//   will be applied to the Tern responses before treating them\n//\n//\n// It is possible to run the Tern server in a web worker by specifying\n// these additional options:\n// * useWorker: Set to true to enable web worker mode. You'll probably\n//   want to feature detect the actual value you use here, for example\n//   !!window.Worker.\n// * workerScript: The main script of the worker. Point this to\n//   wherever you are hosting worker.js from this directory.\n// * workerDeps: An array of paths pointing (relative to workerScript)\n//   to the Acorn and Tern libraries and any Tern plugins you want to\n//   load. Or, if you minified those into a single script and included\n//   them in the workerScript, simply leave this undefined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: tern\n\n  CodeMirror.TernServer = function(options) {\n    var self = this;\n    this.options = options || {};\n    var plugins = this.options.plugins || (this.options.plugins = {});\n    if (!plugins.doc_comment) plugins.doc_comment = true;\n    this.docs = Object.create(null);\n    if (this.options.useWorker) {\n      this.server = new WorkerServer(this);\n    } else {\n      this.server = new tern.Server({\n        getFile: function(name, c) { return getFile(self, name, c); },\n        async: true,\n        defs: this.options.defs || [],\n        plugins: plugins\n      });\n    }\n    this.trackChange = function(doc, change) { trackChange(self, doc, change); };\n\n    this.cachedArgHints = null;\n    this.activeArgHints = null;\n    this.jumpStack = [];\n\n    this.getHint = function(cm, c) { return hint(self, cm, c); };\n    this.getHint.async = true;\n  };\n\n  CodeMirror.TernServer.prototype = {\n    addDoc: function(name, doc) {\n      var data = {doc: doc, name: name, changed: null};\n      this.server.addFile(name, docValue(this, data));\n      CodeMirror.on(doc, \"change\", this.trackChange);\n      return this.docs[name] = data;\n    },\n\n    delDoc: function(id) {\n      var found = resolveDoc(this, id);\n      if (!found) return;\n      CodeMirror.off(found.doc, \"change\", this.trackChange);\n      delete this.docs[found.name];\n      this.server.delFile(found.name);\n    },\n\n    hideDoc: function(id) {\n      closeArgHints(this);\n      var found = resolveDoc(this, id);\n      if (found && found.changed) sendDoc(this, found);\n    },\n\n    complete: function(cm) {\n      cm.showHint({hint: this.getHint});\n    },\n\n    showType: function(cm, pos, c) { showContextInfo(this, cm, pos, \"type\", c); },\n\n    showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, \"documentation\", c); },\n\n    updateArgHints: function(cm) { updateArgHints(this, cm); },\n\n    jumpToDef: function(cm) { jumpToDef(this, cm); },\n\n    jumpBack: function(cm) { jumpBack(this, cm); },\n\n    rename: function(cm) { rename(this, cm); },\n\n    selectName: function(cm) { selectName(this, cm); },\n\n    request: function (cm, query, c, pos) {\n      var self = this;\n      var doc = findDoc(this, cm.getDoc());\n      var request = buildRequest(this, doc, query, pos);\n      var extraOptions = request.query && this.options.queryOptions && this.options.queryOptions[request.query.type]\n      if (extraOptions) for (var prop in extraOptions) request.query[prop] = extraOptions[prop];\n\n      this.server.request(request, function (error, data) {\n        if (!error && self.options.responseFilter)\n          data = self.options.responseFilter(doc, query, request, error, data);\n        c(error, data);\n      });\n    },\n\n    destroy: function () {\n      closeArgHints(this)\n      if (this.worker) {\n        this.worker.terminate();\n        this.worker = null;\n      }\n    }\n  };\n\n  var Pos = CodeMirror.Pos;\n  var cls = \"CodeMirror-Tern-\";\n  var bigDoc = 250;\n\n  function getFile(ts, name, c) {\n    var buf = ts.docs[name];\n    if (buf)\n      c(docValue(ts, buf));\n    else if (ts.options.getFile)\n      ts.options.getFile(name, c);\n    else\n      c(null);\n  }\n\n  function findDoc(ts, doc, name) {\n    for (var n in ts.docs) {\n      var cur = ts.docs[n];\n      if (cur.doc == doc) return cur;\n    }\n    if (!name) for (var i = 0;; ++i) {\n      n = \"[doc\" + (i || \"\") + \"]\";\n      if (!ts.docs[n]) { name = n; break; }\n    }\n    return ts.addDoc(name, doc);\n  }\n\n  function resolveDoc(ts, id) {\n    if (typeof id == \"string\") return ts.docs[id];\n    if (id instanceof CodeMirror) id = id.getDoc();\n    if (id instanceof CodeMirror.Doc) return findDoc(ts, id);\n  }\n\n  function trackChange(ts, doc, change) {\n    var data = findDoc(ts, doc);\n\n    var argHints = ts.cachedArgHints;\n    if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) >= 0)\n      ts.cachedArgHints = null;\n\n    var changed = data.changed;\n    if (changed == null)\n      data.changed = changed = {from: change.from.line, to: change.from.line};\n    var end = change.from.line + (change.text.length - 1);\n    if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);\n    if (end >= changed.to) changed.to = end + 1;\n    if (changed.from > change.from.line) changed.from = change.from.line;\n\n    if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {\n      if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);\n    }, 200);\n  }\n\n  function sendDoc(ts, doc) {\n    ts.server.request({files: [{type: \"full\", name: doc.name, text: docValue(ts, doc)}]}, function(error) {\n      if (error) window.console.error(error);\n      else doc.changed = null;\n    });\n  }\n\n  // Completion\n\n  function hint(ts, cm, c) {\n    ts.request(cm, {type: \"completions\", types: true, docs: true, urls: true}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var completions = [], after = \"\";\n      var from = data.start, to = data.end;\n      if (cm.getRange(Pos(from.line, from.ch - 2), from) == \"[\\\"\" &&\n          cm.getRange(to, Pos(to.line, to.ch + 2)) != \"\\\"]\")\n        after = \"\\\"]\";\n\n      for (var i = 0; i < data.completions.length; ++i) {\n        var completion = data.completions[i], className = typeToIcon(completion.type);\n        if (data.guess) className += \" \" + cls + \"guess\";\n        completions.push({text: completion.name + after,\n                          displayText: completion.displayName || completion.name,\n                          className: className,\n                          data: completion});\n      }\n\n      var obj = {from: from, to: to, list: completions};\n      var tooltip = null;\n      CodeMirror.on(obj, \"close\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"update\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"select\", function(cur, node) {\n        remove(tooltip);\n        var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;\n        if (content) {\n          tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,\n                                node.getBoundingClientRect().top + window.pageYOffset, content, cm);\n          tooltip.className += \" \" + cls + \"hint-doc\";\n        }\n      });\n      c(obj);\n    });\n  }\n\n  function typeToIcon(type) {\n    var suffix;\n    if (type == \"?\") suffix = \"unknown\";\n    else if (type == \"number\" || type == \"string\" || type == \"bool\") suffix = type;\n    else if (/^fn\\(/.test(type)) suffix = \"fn\";\n    else if (/^\\[/.test(type)) suffix = \"array\";\n    else suffix = \"object\";\n    return cls + \"completion \" + cls + \"completion-\" + suffix;\n  }\n\n  // Type queries\n\n  function showContextInfo(ts, cm, pos, queryName, c) {\n    ts.request(cm, queryName, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      if (ts.options.typeTip) {\n        var tip = ts.options.typeTip(data);\n      } else {\n        var tip = elt(\"span\", null, elt(\"strong\", null, data.type || \"not found\"));\n        if (data.doc)\n          tip.appendChild(document.createTextNode(\" — \" + data.doc));\n        if (data.url) {\n          tip.appendChild(document.createTextNode(\" \"));\n          var child = tip.appendChild(elt(\"a\", null, \"[docs]\"));\n          child.href = data.url;\n          child.target = \"_blank\";\n        }\n      }\n      tempTooltip(cm, tip, ts);\n      if (c) c();\n    }, pos);\n  }\n\n  // Maintaining argument hints\n\n  function updateArgHints(ts, cm) {\n    closeArgHints(ts);\n\n    if (cm.somethingSelected()) return;\n    var state = cm.getTokenAt(cm.getCursor()).state;\n    var inner = CodeMirror.innerMode(cm.getMode(), state);\n    if (inner.mode.name != \"javascript\") return;\n    var lex = inner.state.lexical;\n    if (lex.info != \"call\") return;\n\n    var ch, argPos = lex.pos || 0, tabSize = cm.getOption(\"tabSize\");\n    for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {\n      var str = cm.getLine(line), extra = 0;\n      for (var pos = 0;;) {\n        var tab = str.indexOf(\"\\t\", pos);\n        if (tab == -1) break;\n        extra += tabSize - (tab + extra) % tabSize - 1;\n        pos = tab + 1;\n      }\n      ch = lex.column - extra;\n      if (str.charAt(ch) == \"(\") {found = true; break;}\n    }\n    if (!found) return;\n\n    var start = Pos(line, ch);\n    var cache = ts.cachedArgHints;\n    if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)\n      return showArgHints(ts, cm, argPos);\n\n    ts.request(cm, {type: \"type\", preferFunction: true, end: start}, function(error, data) {\n      if (error || !data.type || !(/^fn\\(/).test(data.type)) return;\n      ts.cachedArgHints = {\n        start: start,\n        type: parseFnType(data.type),\n        name: data.exprName || data.name || \"fn\",\n        guess: data.guess,\n        doc: cm.getDoc()\n      };\n      showArgHints(ts, cm, argPos);\n    });\n  }\n\n  function showArgHints(ts, cm, pos) {\n    closeArgHints(ts);\n\n    var cache = ts.cachedArgHints, tp = cache.type;\n    var tip = elt(\"span\", cache.guess ? cls + \"fhint-guess\" : null,\n                  elt(\"span\", cls + \"fname\", cache.name), \"(\");\n    for (var i = 0; i < tp.args.length; ++i) {\n      if (i) tip.appendChild(document.createTextNode(\", \"));\n      var arg = tp.args[i];\n      tip.appendChild(elt(\"span\", cls + \"farg\" + (i == pos ? \" \" + cls + \"farg-current\" : \"\"), arg.name || \"?\"));\n      if (arg.type != \"?\") {\n        tip.appendChild(document.createTextNode(\":\\u00a0\"));\n        tip.appendChild(elt(\"span\", cls + \"type\", arg.type));\n      }\n    }\n    tip.appendChild(document.createTextNode(tp.rettype ? \") ->\\u00a0\" : \")\"));\n    if (tp.rettype) tip.appendChild(elt(\"span\", cls + \"type\", tp.rettype));\n    var place = cm.cursorCoords(null, \"page\");\n    var tooltip = ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip, cm)\n    setTimeout(function() {\n      tooltip.clear = onEditorActivity(cm, function() {\n        if (ts.activeArgHints == tooltip) closeArgHints(ts) })\n    }, 20)\n  }\n\n  function parseFnType(text) {\n    var args = [], pos = 3;\n\n    function skipMatching(upto) {\n      var depth = 0, start = pos;\n      for (;;) {\n        var next = text.charAt(pos);\n        if (upto.test(next) && !depth) return text.slice(start, pos);\n        if (/[{\\[\\(]/.test(next)) ++depth;\n        else if (/[}\\]\\)]/.test(next)) --depth;\n        ++pos;\n      }\n    }\n\n    // Parse arguments\n    if (text.charAt(pos) != \")\") for (;;) {\n      var name = text.slice(pos).match(/^([^, \\(\\[\\{]+): /);\n      if (name) {\n        pos += name[0].length;\n        name = name[1];\n      }\n      args.push({name: name, type: skipMatching(/[\\),]/)});\n      if (text.charAt(pos) == \")\") break;\n      pos += 2;\n    }\n\n    var rettype = text.slice(pos).match(/^\\) -> (.*)$/);\n\n    return {args: args, rettype: rettype && rettype[1]};\n  }\n\n  // Moving to the definition of something\n\n  function jumpToDef(ts, cm) {\n    function inner(varName) {\n      var req = {type: \"definition\", variable: varName || null};\n      var doc = findDoc(ts, cm.getDoc());\n      ts.server.request(buildRequest(ts, doc, req), function(error, data) {\n        if (error) return showError(ts, cm, error);\n        if (!data.file && data.url) { window.open(data.url); return; }\n\n        if (data.file) {\n          var localDoc = ts.docs[data.file], found;\n          if (localDoc && (found = findContext(localDoc.doc, data))) {\n            ts.jumpStack.push({file: doc.name,\n                               start: cm.getCursor(\"from\"),\n                               end: cm.getCursor(\"to\")});\n            moveTo(ts, doc, localDoc, found.start, found.end);\n            return;\n          }\n        }\n        showError(ts, cm, \"Could not find a definition.\");\n      });\n    }\n\n    if (!atInterestingExpression(cm))\n      dialog(cm, \"Jump to variable\", function(name) { if (name) inner(name); });\n    else\n      inner();\n  }\n\n  function jumpBack(ts, cm) {\n    var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];\n    if (!doc) return;\n    moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);\n  }\n\n  function moveTo(ts, curDoc, doc, start, end) {\n    doc.doc.setSelection(start, end);\n    if (curDoc != doc && ts.options.switchToDoc) {\n      closeArgHints(ts);\n      ts.options.switchToDoc(doc.name, doc.doc);\n    }\n  }\n\n  // The {line,ch} representation of positions makes this rather awkward.\n  function findContext(doc, data) {\n    var before = data.context.slice(0, data.contextOffset).split(\"\\n\");\n    var startLine = data.start.line - (before.length - 1);\n    var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);\n\n    var text = doc.getLine(startLine).slice(start.ch);\n    for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)\n      text += \"\\n\" + doc.getLine(cur);\n    if (text.slice(0, data.context.length) == data.context) return data;\n\n    var cursor = doc.getSearchCursor(data.context, 0, false);\n    var nearest, nearestDist = Infinity;\n    while (cursor.findNext()) {\n      var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;\n      if (!dist) dist = Math.abs(from.ch - start.ch);\n      if (dist < nearestDist) { nearest = from; nearestDist = dist; }\n    }\n    if (!nearest) return null;\n\n    if (before.length == 1)\n      nearest.ch += before[0].length;\n    else\n      nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);\n    if (data.start.line == data.end.line)\n      var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));\n    else\n      var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);\n    return {start: nearest, end: end};\n  }\n\n  function atInterestingExpression(cm) {\n    var pos = cm.getCursor(\"end\"), tok = cm.getTokenAt(pos);\n    if (tok.start < pos.ch && tok.type == \"comment\") return false;\n    return /[\\w)\\]]/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));\n  }\n\n  // Variable renaming\n\n  function rename(ts, cm) {\n    var token = cm.getTokenAt(cm.getCursor());\n    if (!/\\w/.test(token.string)) return showError(ts, cm, \"Not at a variable\");\n    dialog(cm, \"New name for \" + token.string, function(newName) {\n      ts.request(cm, {type: \"rename\", newName: newName, fullDocs: true}, function(error, data) {\n        if (error) return showError(ts, cm, error);\n        applyChanges(ts, data.changes);\n      });\n    });\n  }\n\n  function selectName(ts, cm) {\n    var name = findDoc(ts, cm.doc).name;\n    ts.request(cm, {type: \"refs\"}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var ranges = [], cur = 0;\n      var curPos = cm.getCursor();\n      for (var i = 0; i < data.refs.length; i++) {\n        var ref = data.refs[i];\n        if (ref.file == name) {\n          ranges.push({anchor: ref.start, head: ref.end});\n          if (cmpPos(curPos, ref.start) >= 0 && cmpPos(curPos, ref.end) <= 0)\n            cur = ranges.length - 1;\n        }\n      }\n      cm.setSelections(ranges, cur);\n    });\n  }\n\n  var nextChangeOrig = 0;\n  function applyChanges(ts, changes) {\n    var perFile = Object.create(null);\n    for (var i = 0; i < changes.length; ++i) {\n      var ch = changes[i];\n      (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);\n    }\n    for (var file in perFile) {\n      var known = ts.docs[file], chs = perFile[file];;\n      if (!known) continue;\n      chs.sort(function(a, b) { return cmpPos(b.start, a.start); });\n      var origin = \"*rename\" + (++nextChangeOrig);\n      for (var i = 0; i < chs.length; ++i) {\n        var ch = chs[i];\n        known.doc.replaceRange(ch.text, ch.start, ch.end, origin);\n      }\n    }\n  }\n\n  // Generic request-building helper\n\n  function buildRequest(ts, doc, query, pos) {\n    var files = [], offsetLines = 0, allowFragments = !query.fullDocs;\n    if (!allowFragments) delete query.fullDocs;\n    if (typeof query == \"string\") query = {type: query};\n    query.lineCharPositions = true;\n    if (query.end == null) {\n      query.end = pos || doc.doc.getCursor(\"end\");\n      if (doc.doc.somethingSelected())\n        query.start = doc.doc.getCursor(\"start\");\n    }\n    var startPos = query.start || query.end;\n\n    if (doc.changed) {\n      if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&\n          doc.changed.to - doc.changed.from < 100 &&\n          doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {\n        files.push(getFragmentAround(doc, startPos, query.end));\n        query.file = \"#0\";\n        var offsetLines = files[0].offsetLines;\n        if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);\n        query.end = Pos(query.end.line - offsetLines, query.end.ch);\n      } else {\n        files.push({type: \"full\",\n                    name: doc.name,\n                    text: docValue(ts, doc)});\n        query.file = doc.name;\n        doc.changed = null;\n      }\n    } else {\n      query.file = doc.name;\n    }\n    for (var name in ts.docs) {\n      var cur = ts.docs[name];\n      if (cur.changed && cur != doc) {\n        files.push({type: \"full\", name: cur.name, text: docValue(ts, cur)});\n        cur.changed = null;\n      }\n    }\n\n    return {query: query, files: files};\n  }\n\n  function getFragmentAround(data, start, end) {\n    var doc = data.doc;\n    var minIndent = null, minLine = null, endLine, tabSize = 4;\n    for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {\n      var line = doc.getLine(p), fn = line.search(/\\bfunction\\b/);\n      if (fn < 0) continue;\n      var indent = CodeMirror.countColumn(line, null, tabSize);\n      if (minIndent != null && minIndent <= indent) continue;\n      minIndent = indent;\n      minLine = p;\n    }\n    if (minLine == null) minLine = min;\n    var max = Math.min(doc.lastLine(), end.line + 20);\n    if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))\n      endLine = max;\n    else for (endLine = end.line + 1; endLine < max; ++endLine) {\n      var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);\n      if (indent <= minIndent) break;\n    }\n    var from = Pos(minLine, 0);\n\n    return {type: \"part\",\n            name: data.name,\n            offsetLines: from.line,\n            text: doc.getRange(from, Pos(endLine, end.line == endLine ? null : 0))};\n  }\n\n  // Generic utilities\n\n  var cmpPos = CodeMirror.cmpPos;\n\n  function elt(tagname, cls /*, ... elts*/) {\n    var e = document.createElement(tagname);\n    if (cls) e.className = cls;\n    for (var i = 2; i < arguments.length; ++i) {\n      var elt = arguments[i];\n      if (typeof elt == \"string\") elt = document.createTextNode(elt);\n      e.appendChild(elt);\n    }\n    return e;\n  }\n\n  function dialog(cm, text, f) {\n    if (cm.openDialog)\n      cm.openDialog(text + \": <input type=text>\", f);\n    else\n      f(prompt(text, \"\"));\n  }\n\n  // Tooltips\n\n  function tempTooltip(cm, content, ts) {\n    if (cm.state.ternTooltip) remove(cm.state.ternTooltip);\n    var where = cm.cursorCoords();\n    var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content, cm);\n    function maybeClear() {\n      old = true;\n      if (!mouseOnTip) clear();\n    }\n    function clear() {\n      cm.state.ternTooltip = null;\n      if (tip.parentNode) fadeOut(tip)\n      clearActivity()\n    }\n    var mouseOnTip = false, old = false;\n    CodeMirror.on(tip, \"mousemove\", function() { mouseOnTip = true; });\n    CodeMirror.on(tip, \"mouseout\", function(e) {\n      var related = e.relatedTarget || e.toElement\n      if (!related || !CodeMirror.contains(tip, related)) {\n        if (old) clear();\n        else mouseOnTip = false;\n      }\n    });\n    setTimeout(maybeClear, ts.options.hintDelay ? ts.options.hintDelay : 1700);\n    var clearActivity = onEditorActivity(cm, clear)\n  }\n\n  function onEditorActivity(cm, f) {\n    cm.on(\"cursorActivity\", f)\n    cm.on(\"blur\", f)\n    cm.on(\"scroll\", f)\n    cm.on(\"setDoc\", f)\n    return function() {\n      cm.off(\"cursorActivity\", f)\n      cm.off(\"blur\", f)\n      cm.off(\"scroll\", f)\n      cm.off(\"setDoc\", f)\n    }\n  }\n\n  function makeTooltip(x, y, content, cm) {\n    var node = elt(\"div\", cls + \"tooltip\", content);\n    node.style.left = x + \"px\";\n    node.style.top = y + \"px\";\n    var container = ((cm.options || {}).hintOptions || {}).container || document.body;\n    container.appendChild(node);\n    return node;\n  }\n\n  function remove(node) {\n    var p = node && node.parentNode;\n    if (p) p.removeChild(node);\n  }\n\n  function fadeOut(tooltip) {\n    tooltip.style.opacity = \"0\";\n    setTimeout(function() { remove(tooltip); }, 1100);\n  }\n\n  function showError(ts, cm, msg) {\n    if (ts.options.showError)\n      ts.options.showError(cm, msg);\n    else\n      tempTooltip(cm, String(msg), ts);\n  }\n\n  function closeArgHints(ts) {\n    if (ts.activeArgHints) {\n      if (ts.activeArgHints.clear) ts.activeArgHints.clear()\n      remove(ts.activeArgHints)\n      ts.activeArgHints = null\n    }\n  }\n\n  function docValue(ts, doc) {\n    var val = doc.doc.getValue();\n    if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);\n    return val;\n  }\n\n  // Worker wrapper\n\n  function WorkerServer(ts) {\n    var worker = ts.worker = new Worker(ts.options.workerScript);\n    worker.postMessage({type: \"init\",\n                        defs: ts.options.defs,\n                        plugins: ts.options.plugins,\n                        scripts: ts.options.workerDeps});\n    var msgId = 0, pending = {};\n\n    function send(data, c) {\n      if (c) {\n        data.id = ++msgId;\n        pending[msgId] = c;\n      }\n      worker.postMessage(data);\n    }\n    worker.onmessage = function(e) {\n      var data = e.data;\n      if (data.type == \"getFile\") {\n        getFile(ts, data.name, function(err, text) {\n          send({type: \"getFile\", err: String(err), text: text, id: data.id});\n        });\n      } else if (data.type == \"debug\") {\n        window.console.log(data.message);\n      } else if (data.id && pending[data.id]) {\n        pending[data.id](data.err, data.body);\n        delete pending[data.id];\n      }\n    };\n    worker.onerror = function(e) {\n      for (var id in pending) pending[id](e);\n      pending = {};\n    };\n\n    this.addFile = function(name, text) { send({type: \"add\", name: name, text: text}); };\n    this.delFile = function(name) { send({type: \"del\", name: name}); };\n    this.request = function(body, c) { send({type: \"req\", body: body}, c); };\n  }\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/tern/worker.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: tern, server\n\nvar server;\n\nthis.onmessage = function(e) {\n  var data = e.data;\n  switch (data.type) {\n  case \"init\": return startServer(data.defs, data.plugins, data.scripts);\n  case \"add\": return server.addFile(data.name, data.text);\n  case \"del\": return server.delFile(data.name);\n  case \"req\": return server.request(data.body, function(err, reqData) {\n    postMessage({id: data.id, body: reqData, err: err && String(err)});\n  });\n  case \"getFile\":\n    var c = pending[data.id];\n    delete pending[data.id];\n    return c(data.err, data.text);\n  default: throw new Error(\"Unknown message type: \" + data.type);\n  }\n};\n\nvar nextId = 0, pending = {};\nfunction getFile(file, c) {\n  postMessage({type: \"getFile\", name: file, id: ++nextId});\n  pending[nextId] = c;\n}\n\nfunction startServer(defs, plugins, scripts) {\n  if (scripts) importScripts.apply(null, scripts);\n\n  server = new tern.Server({\n    getFile: getFile,\n    async: true,\n    defs: defs,\n    plugins: plugins\n  });\n}\n\nthis.console = {\n  log: function(v) { postMessage({type: \"debug\", message: v}); }\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/addon/wrap/hardwrap.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function findParagraph(cm, pos, options) {\n    var startRE = options.paragraphStart || cm.getHelper(pos, \"paragraphStart\");\n    for (var start = pos.line, first = cm.firstLine(); start > first; --start) {\n      var line = cm.getLine(start);\n      if (startRE && startRE.test(line)) break;\n      if (!/\\S/.test(line)) { ++start; break; }\n    }\n    var endRE = options.paragraphEnd || cm.getHelper(pos, \"paragraphEnd\");\n    for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) {\n      var line = cm.getLine(end);\n      if (endRE && endRE.test(line)) { ++end; break; }\n      if (!/\\S/.test(line)) break;\n    }\n    return {from: start, to: end};\n  }\n\n  function findBreakPoint(text, column, wrapOn, killTrailingSpace, forceBreak) {\n    var at = column\n    while (at < text.length && text.charAt(at) == \" \") at++\n    for (; at > 0; --at)\n      if (wrapOn.test(text.slice(at - 1, at + 1))) break;\n\n    if (!forceBreak && at <= text.match(/^[ \\t]*/)[0].length) {\n      // didn't find a break point before column, in non-forceBreak mode try to\n      // find one after 'column'.\n      for (at = column + 1; at < text.length - 1; ++at) {\n        if (wrapOn.test(text.slice(at - 1, at + 1))) break;\n      }\n    }\n\n    for (var first = true;; first = false) {\n      var endOfText = at;\n      if (killTrailingSpace)\n        while (text.charAt(endOfText - 1) == \" \") --endOfText;\n      if (endOfText == 0 && first) at = column;\n      else return {from: endOfText, to: at};\n    }\n  }\n\n  function wrapRange(cm, from, to, options) {\n    from = cm.clipPos(from); to = cm.clipPos(to);\n    var column = options.column || 80;\n    var wrapOn = options.wrapOn || /\\s\\S|-[^\\.\\d]/;\n    var forceBreak = options.forceBreak !== false;\n    var killTrailing = options.killTrailingSpace !== false;\n    var changes = [], curLine = \"\", curNo = from.line;\n    var lines = cm.getRange(from, to, false);\n    if (!lines.length) return null;\n    var leadingSpace = lines[0].match(/^[ \\t]*/)[0];\n    if (leadingSpace.length >= column) column = leadingSpace.length + 1\n\n    for (var i = 0; i < lines.length; ++i) {\n      var text = lines[i], oldLen = curLine.length, spaceInserted = 0;\n      if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) {\n        curLine += \" \";\n        spaceInserted = 1;\n      }\n      var spaceTrimmed = \"\";\n      if (i) {\n        spaceTrimmed = text.match(/^\\s*/)[0];\n        text = text.slice(spaceTrimmed.length);\n      }\n      curLine += text;\n      if (i) {\n        var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed &&\n          findBreakPoint(curLine, column, wrapOn, killTrailing, forceBreak);\n        // If this isn't broken, or is broken at a different point, remove old break\n        if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) {\n          changes.push({text: [spaceInserted ? \" \" : \"\"],\n                        from: Pos(curNo, oldLen),\n                        to: Pos(curNo + 1, spaceTrimmed.length)});\n        } else {\n          curLine = leadingSpace + text;\n          ++curNo;\n        }\n      }\n      while (curLine.length > column) {\n        var bp = findBreakPoint(curLine, column, wrapOn, killTrailing, forceBreak);\n        if (bp.from != bp.to ||\n            forceBreak && leadingSpace !== curLine.slice(0, bp.to)) {\n          changes.push({text: [\"\", leadingSpace],\n                        from: Pos(curNo, bp.from),\n                        to: Pos(curNo, bp.to)});\n          curLine = leadingSpace + curLine.slice(bp.to);\n          ++curNo;\n        } else {\n          break;\n        }\n      }\n    }\n    if (changes.length) cm.operation(function() {\n      for (var i = 0; i < changes.length; ++i) {\n        var change = changes[i];\n        if (change.text || CodeMirror.cmpPos(change.from, change.to))\n          cm.replaceRange(change.text, change.from, change.to);\n      }\n    });\n    return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null;\n  }\n\n  CodeMirror.defineExtension(\"wrapParagraph\", function(pos, options) {\n    options = options || {};\n    if (!pos) pos = this.getCursor();\n    var para = findParagraph(this, pos, options);\n    return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options);\n  });\n\n  CodeMirror.commands.wrapLines = function(cm) {\n    cm.operation(function() {\n      var ranges = cm.listSelections(), at = cm.lastLine() + 1;\n      for (var i = ranges.length - 1; i >= 0; i--) {\n        var range = ranges[i], span;\n        if (range.empty()) {\n          var para = findParagraph(cm, range.head, {});\n          span = {from: Pos(para.from, 0), to: Pos(para.to - 1)};\n        } else {\n          span = {from: range.from(), to: range.to()};\n        }\n        if (span.to.line >= at) continue;\n        at = span.from.line;\n        wrapRange(cm, span.from, span.to, {});\n      }\n    });\n  };\n\n  CodeMirror.defineExtension(\"wrapRange\", function(from, to, options) {\n    return wrapRange(this, from, to, options || {});\n  });\n\n  CodeMirror.defineExtension(\"wrapParagraphsInRange\", function(from, to, options) {\n    options = options || {};\n    var cm = this, paras = [];\n    for (var line = from.line; line <= to.line;) {\n      var para = findParagraph(cm, Pos(line, 0), options);\n      paras.push(para);\n      line = para.to;\n    }\n    var madeChange = false;\n    if (paras.length) cm.operation(function() {\n      for (var i = paras.length - 1; i >= 0; --i)\n        madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options);\n    });\n    return madeChange;\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/codemirror.css",
    "content": "/* BASICS */\n\n.CodeMirror {\n  /* Set height, width, borders, and global font properties here */\n  font-family: monospace;\n  height: 300px;\n  color: black;\n  direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n  padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n  padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n  border-right: 1px solid #ddd;\n  background-color: #f7f7f7;\n  white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n  padding: 0 3px 0 5px;\n  min-width: 20px;\n  text-align: right;\n  color: #999;\n  white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n  border-left: 1px solid black;\n  border-right: none;\n  width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n  border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n  width: auto;\n  border: 0 !important;\n  background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n  z-index: 1;\n}\n.cm-fat-cursor-mark {\n  background-color: rgba(20, 255, 20, 0.5);\n  -webkit-animation: blink 1.06s steps(1) infinite;\n  -moz-animation: blink 1.06s steps(1) infinite;\n  animation: blink 1.06s steps(1) infinite;\n}\n.cm-animate-fat-cursor {\n  width: auto;\n  border: 0;\n  -webkit-animation: blink 1.06s steps(1) infinite;\n  -moz-animation: blink 1.06s steps(1) infinite;\n  animation: blink 1.06s steps(1) infinite;\n  background-color: #7e7;\n}\n@-moz-keyframes blink {\n  0% {}\n  50% { background-color: transparent; }\n  100% {}\n}\n@-webkit-keyframes blink {\n  0% {}\n  50% { background-color: transparent; }\n  100% {}\n}\n@keyframes blink {\n  0% {}\n  50% { background-color: transparent; }\n  100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n  position: absolute;\n  left: 0; right: 0; top: -50px; bottom: 0;\n  overflow: hidden;\n}\n.CodeMirror-ruler {\n  border-left: 1px solid #ccc;\n  top: 0; bottom: 0;\n  position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n   the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n  position: relative;\n  overflow: hidden;\n  background: white;\n}\n\n.CodeMirror-scroll {\n  overflow: scroll !important; /* Things will break if this is overridden */\n  /* 50px is the magic margin used to hide the element's real scrollbars */\n  /* See overflow: hidden in .CodeMirror */\n  margin-bottom: -50px; margin-right: -50px;\n  padding-bottom: 50px;\n  height: 100%;\n  outline: none; /* Prevent dragging from highlighting the element */\n  position: relative;\n}\n.CodeMirror-sizer {\n  position: relative;\n  border-right: 50px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n   before actual scrolling happens, thus preventing shaking and\n   flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  position: absolute;\n  z-index: 6;\n  display: none;\n  outline: none;\n}\n.CodeMirror-vscrollbar {\n  right: 0; top: 0;\n  overflow-x: hidden;\n  overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n  bottom: 0; left: 0;\n  overflow-y: hidden;\n  overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n  right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n  left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n  position: absolute; left: 0; top: 0;\n  min-height: 100%;\n  z-index: 3;\n}\n.CodeMirror-gutter {\n  white-space: normal;\n  height: 100%;\n  display: inline-block;\n  vertical-align: top;\n  margin-bottom: -50px;\n}\n.CodeMirror-gutter-wrapper {\n  position: absolute;\n  z-index: 4;\n  background: none !important;\n  border: none !important;\n}\n.CodeMirror-gutter-background {\n  position: absolute;\n  top: 0; bottom: 0;\n  z-index: 4;\n}\n.CodeMirror-gutter-elt {\n  position: absolute;\n  cursor: default;\n  z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n  cursor: text;\n  min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n  /* Reset some styles that the rest of the page might have set */\n  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n  border-width: 0;\n  background: transparent;\n  font-family: inherit;\n  font-size: inherit;\n  margin: 0;\n  white-space: pre;\n  word-wrap: normal;\n  line-height: inherit;\n  color: inherit;\n  z-index: 2;\n  position: relative;\n  overflow: visible;\n  -webkit-tap-highlight-color: transparent;\n  -webkit-font-variant-ligatures: contextual;\n  font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n  word-wrap: break-word;\n  white-space: pre-wrap;\n  word-break: normal;\n}\n\n.CodeMirror-linebackground {\n  position: absolute;\n  left: 0; right: 0; top: 0; bottom: 0;\n  z-index: 0;\n}\n\n.CodeMirror-linewidget {\n  position: relative;\n  z-index: 2;\n  padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n  outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n  position: absolute;\n  width: 100%;\n  height: 0;\n  overflow: hidden;\n  visibility: hidden;\n}\n\n.CodeMirror-cursor {\n  position: absolute;\n  pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n  visibility: hidden;\n  position: relative;\n  z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n  visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n  visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n  background-color: #ffa;\n  background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n  /* Hide the cursor when printing */\n  .CodeMirror div.CodeMirror-cursors {\n    visibility: hidden;\n  }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/codemirror.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n  // Kludges for bugs and behavior differences that can't be feature\n  // detected are enabled based on userAgent etc sniffing.\n  var userAgent = navigator.userAgent;\n  var platform = navigator.platform;\n\n  var gecko = /gecko\\/\\d/i.test(userAgent);\n  var ie_upto10 = /MSIE \\d/.test(userAgent);\n  var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n  var edge = /Edge\\/(\\d+)/.exec(userAgent);\n  var ie = ie_upto10 || ie_11up || edge;\n  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n  var webkit = !edge && /WebKit\\//.test(userAgent);\n  var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n  var chrome = !edge && /Chrome\\//.test(userAgent);\n  var presto = /Opera\\//.test(userAgent);\n  var safari = /Apple Computer/.test(navigator.vendor);\n  var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n  var phantom = /PhantomJS/.test(userAgent);\n\n  var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n  var android = /Android/.test(userAgent);\n  // This is woefully incomplete. Suggestions for alternative methods welcome.\n  var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n  var mac = ios || /Mac/.test(platform);\n  var chromeOS = /\\bCrOS\\b/.test(userAgent);\n  var windows = /win/i.test(platform);\n\n  var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n  if (presto_version) { presto_version = Number(presto_version[1]); }\n  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n  var captureRightClick = gecko || (ie && ie_version >= 9);\n\n  function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n  var rmClass = function(node, cls) {\n    var current = node.className;\n    var match = classTest(cls).exec(current);\n    if (match) {\n      var after = current.slice(match.index + match[0].length);\n      node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n    }\n  };\n\n  function removeChildren(e) {\n    for (var count = e.childNodes.length; count > 0; --count)\n      { e.removeChild(e.firstChild); }\n    return e\n  }\n\n  function removeChildrenAndAdd(parent, e) {\n    return removeChildren(parent).appendChild(e)\n  }\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) { e.className = className; }\n    if (style) { e.style.cssText = style; }\n    if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n    else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n    return e\n  }\n  // wrapper for elt, which removes the elt from the accessibility tree\n  function eltP(tag, content, className, style) {\n    var e = elt(tag, content, className, style);\n    e.setAttribute(\"role\", \"presentation\");\n    return e\n  }\n\n  var range;\n  if (document.createRange) { range = function(node, start, end, endNode) {\n    var r = document.createRange();\n    r.setEnd(endNode || node, end);\n    r.setStart(node, start);\n    return r\n  }; }\n  else { range = function(node, start, end) {\n    var r = document.body.createTextRange();\n    try { r.moveToElementText(node.parentNode); }\n    catch(e) { return r }\n    r.collapse(true);\n    r.moveEnd(\"character\", end);\n    r.moveStart(\"character\", start);\n    return r\n  }; }\n\n  function contains(parent, child) {\n    if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n      { child = child.parentNode; }\n    if (parent.contains)\n      { return parent.contains(child) }\n    do {\n      if (child.nodeType == 11) { child = child.host; }\n      if (child == parent) { return true }\n    } while (child = child.parentNode)\n  }\n\n  function activeElt() {\n    // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n    // IE < 10 will throw when accessed while the page is loading or in an iframe.\n    // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n    var activeElement;\n    try {\n      activeElement = document.activeElement;\n    } catch(e) {\n      activeElement = document.body || null;\n    }\n    while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n      { activeElement = activeElement.shadowRoot.activeElement; }\n    return activeElement\n  }\n\n  function addClass(node, cls) {\n    var current = node.className;\n    if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n  }\n  function joinClasses(a, b) {\n    var as = a.split(\" \");\n    for (var i = 0; i < as.length; i++)\n      { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n    return b\n  }\n\n  var selectInput = function(node) { node.select(); };\n  if (ios) // Mobile Safari apparently has a bug where select() is broken.\n    { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n  else if (ie) // Suppress mysterious IE10 errors\n    { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n  function bind(f) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return function(){return f.apply(null, args)}\n  }\n\n  function copyObj(obj, target, overwrite) {\n    if (!target) { target = {}; }\n    for (var prop in obj)\n      { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n        { target[prop] = obj[prop]; } }\n    return target\n  }\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  function countColumn(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) { end = string.length; }\n    }\n    for (var i = startIndex || 0, n = startValue || 0;;) {\n      var nextTab = string.indexOf(\"\\t\", i);\n      if (nextTab < 0 || nextTab >= end)\n        { return n + (end - i) }\n      n += nextTab - i;\n      n += tabSize - (n % tabSize);\n      i = nextTab + 1;\n    }\n  }\n\n  var Delayed = function() {\n    this.id = null;\n    this.f = null;\n    this.time = 0;\n    this.handler = bind(this.onTimeout, this);\n  };\n  Delayed.prototype.onTimeout = function (self) {\n    self.id = 0;\n    if (self.time <= +new Date) {\n      self.f();\n    } else {\n      setTimeout(self.handler, self.time - +new Date);\n    }\n  };\n  Delayed.prototype.set = function (ms, f) {\n    this.f = f;\n    var time = +new Date + ms;\n    if (!this.id || time < this.time) {\n      clearTimeout(this.id);\n      this.id = setTimeout(this.handler, ms);\n      this.time = time;\n    }\n  };\n\n  function indexOf(array, elt) {\n    for (var i = 0; i < array.length; ++i)\n      { if (array[i] == elt) { return i } }\n    return -1\n  }\n\n  // Number of pixels added to scroller and sizer to hide scrollbar\n  var scrollerGap = 50;\n\n  // Returned or thrown by various protocols to signal 'I'm not\n  // handling this'.\n  var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n  // Reused option objects for setSelection & friends\n  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n  // The inverse of countColumn -- find the offset that corresponds to\n  // a particular column.\n  function findColumn(string, goal, tabSize) {\n    for (var pos = 0, col = 0;;) {\n      var nextTab = string.indexOf(\"\\t\", pos);\n      if (nextTab == -1) { nextTab = string.length; }\n      var skipped = nextTab - pos;\n      if (nextTab == string.length || col + skipped >= goal)\n        { return pos + Math.min(skipped, goal - col) }\n      col += nextTab - pos;\n      col += tabSize - (col % tabSize);\n      pos = nextTab + 1;\n      if (col >= goal) { return pos }\n    }\n  }\n\n  var spaceStrs = [\"\"];\n  function spaceStr(n) {\n    while (spaceStrs.length <= n)\n      { spaceStrs.push(lst(spaceStrs) + \" \"); }\n    return spaceStrs[n]\n  }\n\n  function lst(arr) { return arr[arr.length-1] }\n\n  function map(array, f) {\n    var out = [];\n    for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n    return out\n  }\n\n  function insertSorted(array, value, score) {\n    var pos = 0, priority = score(value);\n    while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n    array.splice(pos, 0, value);\n  }\n\n  function nothing() {}\n\n  function createObj(base, props) {\n    var inst;\n    if (Object.create) {\n      inst = Object.create(base);\n    } else {\n      nothing.prototype = base;\n      inst = new nothing();\n    }\n    if (props) { copyObj(props, inst); }\n    return inst\n  }\n\n  var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n  function isWordCharBasic(ch) {\n    return /\\w/.test(ch) || ch > \"\\x80\" &&\n      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n  }\n  function isWordChar(ch, helper) {\n    if (!helper) { return isWordCharBasic(ch) }\n    if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n    return helper.test(ch)\n  }\n\n  function isEmpty(obj) {\n    for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n    return true\n  }\n\n  // Extending unicode characters. A series of a non-extending char +\n  // any number of extending chars is treated as a single unit as far\n  // as editing and measuring is concerned. This is not fully correct,\n  // since some scripts/fonts/browsers also treat other configurations\n  // of code points as a group.\n  var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n  // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n  function skipExtendingChars(str, pos, dir) {\n    while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n    return pos\n  }\n\n  // Returns the value from the range [`from`; `to`] that satisfies\n  // `pred` and is closest to `from`. Assumes that at least `to`\n  // satisfies `pred`. Supports `from` being greater than `to`.\n  function findFirst(pred, from, to) {\n    // At any point we are certain `to` satisfies `pred`, don't know\n    // whether `from` does.\n    var dir = from > to ? -1 : 1;\n    for (;;) {\n      if (from == to) { return from }\n      var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n      if (mid == from) { return pred(mid) ? from : to }\n      if (pred(mid)) { to = mid; }\n      else { from = mid + dir; }\n    }\n  }\n\n  // BIDI HELPERS\n\n  function iterateBidiSections(order, from, to, f) {\n    if (!order) { return f(from, to, \"ltr\", 0) }\n    var found = false;\n    for (var i = 0; i < order.length; ++i) {\n      var part = order[i];\n      if (part.from < to && part.to > from || from == to && part.to == from) {\n        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n        found = true;\n      }\n    }\n    if (!found) { f(from, to, \"ltr\"); }\n  }\n\n  var bidiOther = null;\n  function getBidiPartAt(order, ch, sticky) {\n    var found;\n    bidiOther = null;\n    for (var i = 0; i < order.length; ++i) {\n      var cur = order[i];\n      if (cur.from < ch && cur.to > ch) { return i }\n      if (cur.to == ch) {\n        if (cur.from != cur.to && sticky == \"before\") { found = i; }\n        else { bidiOther = i; }\n      }\n      if (cur.from == ch) {\n        if (cur.from != cur.to && sticky != \"before\") { found = i; }\n        else { bidiOther = i; }\n      }\n    }\n    return found != null ? found : bidiOther\n  }\n\n  // Bidirectional ordering algorithm\n  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n  // that this (partially) implements.\n\n  // One-char codes used for character types:\n  // L (L):   Left-to-Right\n  // R (R):   Right-to-Left\n  // r (AL):  Right-to-Left Arabic\n  // 1 (EN):  European Number\n  // + (ES):  European Number Separator\n  // % (ET):  European Number Terminator\n  // n (AN):  Arabic Number\n  // , (CS):  Common Number Separator\n  // m (NSM): Non-Spacing Mark\n  // b (BN):  Boundary Neutral\n  // s (B):   Paragraph Separator\n  // t (S):   Segment Separator\n  // w (WS):  Whitespace\n  // N (ON):  Other Neutrals\n\n  // Returns null if characters are ordered as they appear\n  // (left-to-right), or an array of sections ({from, to, level}\n  // objects) in the order in which they occur visually.\n  var bidiOrdering = (function() {\n    // Character types for codepoints 0 to 0xff\n    var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n    // Character types for codepoints 0x600 to 0x6f9\n    var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n    function charType(code) {\n      if (code <= 0xf7) { return lowTypes.charAt(code) }\n      else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n      else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n      else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n      else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n      else if (code == 0x200c) { return \"b\" }\n      else { return \"L\" }\n    }\n\n    var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n    function BidiSpan(level, from, to) {\n      this.level = level;\n      this.from = from; this.to = to;\n    }\n\n    return function(str, direction) {\n      var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n      if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n      var len = str.length, types = [];\n      for (var i = 0; i < len; ++i)\n        { types.push(charType(str.charCodeAt(i))); }\n\n      // W1. Examine each non-spacing mark (NSM) in the level run, and\n      // change the type of the NSM to the type of the previous\n      // character. If the NSM is at the start of the level run, it will\n      // get the type of sor.\n      for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n        var type = types[i$1];\n        if (type == \"m\") { types[i$1] = prev; }\n        else { prev = type; }\n      }\n\n      // W2. Search backwards from each instance of a European number\n      // until the first strong type (R, L, AL, or sor) is found. If an\n      // AL is found, change the type of the European number to Arabic\n      // number.\n      // W3. Change all ALs to R.\n      for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n        var type$1 = types[i$2];\n        if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n        else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n      }\n\n      // W4. A single European separator between two European numbers\n      // changes to a European number. A single common separator between\n      // two numbers of the same type changes to that type.\n      for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n        var type$2 = types[i$3];\n        if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n        else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n                 (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n        prev$1 = type$2;\n      }\n\n      // W5. A sequence of European terminators adjacent to European\n      // numbers changes to all European numbers.\n      // W6. Otherwise, separators and terminators change to Other\n      // Neutral.\n      for (var i$4 = 0; i$4 < len; ++i$4) {\n        var type$3 = types[i$4];\n        if (type$3 == \",\") { types[i$4] = \"N\"; }\n        else if (type$3 == \"%\") {\n          var end = (void 0);\n          for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n          var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n          for (var j = i$4; j < end; ++j) { types[j] = replace; }\n          i$4 = end - 1;\n        }\n      }\n\n      // W7. Search backwards from each instance of a European number\n      // until the first strong type (R, L, or sor) is found. If an L is\n      // found, then change the type of the European number to L.\n      for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n        var type$4 = types[i$5];\n        if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n        else if (isStrong.test(type$4)) { cur$1 = type$4; }\n      }\n\n      // N1. A sequence of neutrals takes the direction of the\n      // surrounding strong text if the text on both sides has the same\n      // direction. European and Arabic numbers act as if they were R in\n      // terms of their influence on neutrals. Start-of-level-run (sor)\n      // and end-of-level-run (eor) are used at level run boundaries.\n      // N2. Any remaining neutrals take the embedding direction.\n      for (var i$6 = 0; i$6 < len; ++i$6) {\n        if (isNeutral.test(types[i$6])) {\n          var end$1 = (void 0);\n          for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n          var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n          var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n          var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n          for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n          i$6 = end$1 - 1;\n        }\n      }\n\n      // Here we depart from the documented algorithm, in order to avoid\n      // building up an actual levels array. Since there are only three\n      // levels (0, 1, 2) in an implementation that doesn't take\n      // explicit embedding into account, we can build up the order on\n      // the fly, without following the level-based algorithm.\n      var order = [], m;\n      for (var i$7 = 0; i$7 < len;) {\n        if (countsAsLeft.test(types[i$7])) {\n          var start = i$7;\n          for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n          order.push(new BidiSpan(0, start, i$7));\n        } else {\n          var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n          for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n          for (var j$2 = pos; j$2 < i$7;) {\n            if (countsAsNum.test(types[j$2])) {\n              if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n              var nstart = j$2;\n              for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n              order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n              at += isRTL;\n              pos = j$2;\n            } else { ++j$2; }\n          }\n          if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n        }\n      }\n      if (direction == \"ltr\") {\n        if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n          order[0].from = m[0].length;\n          order.unshift(new BidiSpan(0, 0, m[0].length));\n        }\n        if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n          lst(order).to -= m[0].length;\n          order.push(new BidiSpan(0, len - m[0].length, len));\n        }\n      }\n\n      return direction == \"rtl\" ? order.reverse() : order\n    }\n  })();\n\n  // Get the bidi ordering for the given line (and cache it). Returns\n  // false for lines that are fully left-to-right, and an array of\n  // BidiSpan objects otherwise.\n  function getOrder(line, direction) {\n    var order = line.order;\n    if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n    return order\n  }\n\n  // EVENT HANDLING\n\n  // Lightweight event framework. on/off also work on DOM nodes,\n  // registering native DOM handlers.\n\n  var noHandlers = [];\n\n  var on = function(emitter, type, f) {\n    if (emitter.addEventListener) {\n      emitter.addEventListener(type, f, false);\n    } else if (emitter.attachEvent) {\n      emitter.attachEvent(\"on\" + type, f);\n    } else {\n      var map = emitter._handlers || (emitter._handlers = {});\n      map[type] = (map[type] || noHandlers).concat(f);\n    }\n  };\n\n  function getHandlers(emitter, type) {\n    return emitter._handlers && emitter._handlers[type] || noHandlers\n  }\n\n  function off(emitter, type, f) {\n    if (emitter.removeEventListener) {\n      emitter.removeEventListener(type, f, false);\n    } else if (emitter.detachEvent) {\n      emitter.detachEvent(\"on\" + type, f);\n    } else {\n      var map = emitter._handlers, arr = map && map[type];\n      if (arr) {\n        var index = indexOf(arr, f);\n        if (index > -1)\n          { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n      }\n    }\n  }\n\n  function signal(emitter, type /*, values...*/) {\n    var handlers = getHandlers(emitter, type);\n    if (!handlers.length) { return }\n    var args = Array.prototype.slice.call(arguments, 2);\n    for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n  }\n\n  // The DOM events that CodeMirror handles can be overridden by\n  // registering a (non-DOM) handler on the editor for the event name,\n  // and preventDefault-ing the event in that handler.\n  function signalDOMEvent(cm, e, override) {\n    if (typeof e == \"string\")\n      { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n    signal(cm, override || e.type, cm, e);\n    return e_defaultPrevented(e) || e.codemirrorIgnore\n  }\n\n  function signalCursorActivity(cm) {\n    var arr = cm._handlers && cm._handlers.cursorActivity;\n    if (!arr) { return }\n    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n    for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n      { set.push(arr[i]); } }\n  }\n\n  function hasHandler(emitter, type) {\n    return getHandlers(emitter, type).length > 0\n  }\n\n  // Add on and off methods to a constructor's prototype, to make\n  // registering events on such objects more convenient.\n  function eventMixin(ctor) {\n    ctor.prototype.on = function(type, f) {on(this, type, f);};\n    ctor.prototype.off = function(type, f) {off(this, type, f);};\n  }\n\n  // Due to the fact that we still support jurassic IE versions, some\n  // compatibility wrappers are needed.\n\n  function e_preventDefault(e) {\n    if (e.preventDefault) { e.preventDefault(); }\n    else { e.returnValue = false; }\n  }\n  function e_stopPropagation(e) {\n    if (e.stopPropagation) { e.stopPropagation(); }\n    else { e.cancelBubble = true; }\n  }\n  function e_defaultPrevented(e) {\n    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n  }\n  function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n  function e_target(e) {return e.target || e.srcElement}\n  function e_button(e) {\n    var b = e.which;\n    if (b == null) {\n      if (e.button & 1) { b = 1; }\n      else if (e.button & 2) { b = 3; }\n      else if (e.button & 4) { b = 2; }\n    }\n    if (mac && e.ctrlKey && b == 1) { b = 3; }\n    return b\n  }\n\n  // Detect drag-and-drop\n  var dragAndDrop = function() {\n    // There is *some* kind of drag-and-drop support in IE6-8, but I\n    // couldn't get it to work yet.\n    if (ie && ie_version < 9) { return false }\n    var div = elt('div');\n    return \"draggable\" in div || \"dragDrop\" in div\n  }();\n\n  var zwspSupported;\n  function zeroWidthElement(measure) {\n    if (zwspSupported == null) {\n      var test = elt(\"span\", \"\\u200b\");\n      removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n      if (measure.firstChild.offsetHeight != 0)\n        { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n    }\n    var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n      elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n    node.setAttribute(\"cm-text\", \"\");\n    return node\n  }\n\n  // Feature-detect IE's crummy client rect reporting for bidi text\n  var badBidiRects;\n  function hasBadBidiRects(measure) {\n    if (badBidiRects != null) { return badBidiRects }\n    var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n    var r0 = range(txt, 0, 1).getBoundingClientRect();\n    var r1 = range(txt, 1, 2).getBoundingClientRect();\n    removeChildren(measure);\n    if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n    return badBidiRects = (r1.right - r0.right < 3)\n  }\n\n  // See if \"\".split is the broken IE version, if so, provide an\n  // alternative way to split lines.\n  var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n    var pos = 0, result = [], l = string.length;\n    while (pos <= l) {\n      var nl = string.indexOf(\"\\n\", pos);\n      if (nl == -1) { nl = string.length; }\n      var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n      var rt = line.indexOf(\"\\r\");\n      if (rt != -1) {\n        result.push(line.slice(0, rt));\n        pos += rt + 1;\n      } else {\n        result.push(line);\n        pos = nl + 1;\n      }\n    }\n    return result\n  } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n  var hasSelection = window.getSelection ? function (te) {\n    try { return te.selectionStart != te.selectionEnd }\n    catch(e) { return false }\n  } : function (te) {\n    var range;\n    try {range = te.ownerDocument.selection.createRange();}\n    catch(e) {}\n    if (!range || range.parentElement() != te) { return false }\n    return range.compareEndPoints(\"StartToEnd\", range) != 0\n  };\n\n  var hasCopyEvent = (function () {\n    var e = elt(\"div\");\n    if (\"oncopy\" in e) { return true }\n    e.setAttribute(\"oncopy\", \"return;\");\n    return typeof e.oncopy == \"function\"\n  })();\n\n  var badZoomedRects = null;\n  function hasBadZoomedRects(measure) {\n    if (badZoomedRects != null) { return badZoomedRects }\n    var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n    var normal = node.getBoundingClientRect();\n    var fromRange = range(node, 0, 1).getBoundingClientRect();\n    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n  }\n\n  // Known modes, by name and by MIME\n  var modes = {}, mimeModes = {};\n\n  // Extra arguments are stored as the mode's dependencies, which is\n  // used by (legacy) mechanisms like loadmode.js to automatically\n  // load a mode. (Preferred mechanism is the require/define calls.)\n  function defineMode(name, mode) {\n    if (arguments.length > 2)\n      { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n    modes[name] = mode;\n  }\n\n  function defineMIME(mime, spec) {\n    mimeModes[mime] = spec;\n  }\n\n  // Given a MIME type, a {name, ...options} config object, or a name\n  // string, return a mode config object.\n  function resolveMode(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      if (typeof found == \"string\") { found = {name: found}; }\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return resolveMode(\"application/xml\")\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n      return resolveMode(\"application/json\")\n    }\n    if (typeof spec == \"string\") { return {name: spec} }\n    else { return spec || {name: \"null\"} }\n  }\n\n  // Given a mode spec (anything that resolveMode accepts), find and\n  // initialize an actual mode object.\n  function getMode(options, spec) {\n    spec = resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) { return getMode(options, \"text/plain\") }\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) { continue }\n        if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n    if (spec.helperType) { modeObj.helperType = spec.helperType; }\n    if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n      { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n    return modeObj\n  }\n\n  // This can be used to attach properties to mode objects from\n  // outside the actual mode definition.\n  var modeExtensions = {};\n  function extendMode(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  }\n\n  function copyState(mode, state) {\n    if (state === true) { return state }\n    if (mode.copyState) { return mode.copyState(state) }\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) { val = val.concat([]); }\n      nstate[n] = val;\n    }\n    return nstate\n  }\n\n  // Given a mode and a state (for that mode), find the inner mode and\n  // state at the position that the state refers to.\n  function innerMode(mode, state) {\n    var info;\n    while (mode.innerMode) {\n      info = mode.innerMode(state);\n      if (!info || info.mode == mode) { break }\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state}\n  }\n\n  function startState(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true\n  }\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  var StringStream = function(string, tabSize, lineOracle) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n    this.lineStart = 0;\n    this.lineOracle = lineOracle;\n  };\n\n  StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n  StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n  StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n  StringStream.prototype.next = function () {\n    if (this.pos < this.string.length)\n      { return this.string.charAt(this.pos++) }\n  };\n  StringStream.prototype.eat = function (match) {\n    var ch = this.string.charAt(this.pos);\n    var ok;\n    if (typeof match == \"string\") { ok = ch == match; }\n    else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n    if (ok) {++this.pos; return ch}\n  };\n  StringStream.prototype.eatWhile = function (match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start\n  };\n  StringStream.prototype.eatSpace = function () {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n    return this.pos > start\n  };\n  StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n  StringStream.prototype.skipTo = function (ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true}\n  };\n  StringStream.prototype.backUp = function (n) {this.pos -= n;};\n  StringStream.prototype.column = function () {\n    if (this.lastColumnPos < this.start) {\n      this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n      this.lastColumnPos = this.start;\n    }\n    return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n  };\n  StringStream.prototype.indentation = function () {\n    return countColumn(this.string, null, this.tabSize) -\n      (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n  };\n  StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) { this.pos += pattern.length; }\n        return true\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) { return null }\n      if (match && consume !== false) { this.pos += match[0].length; }\n      return match\n    }\n  };\n  StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n  StringStream.prototype.hideFirstChars = function (n, inner) {\n    this.lineStart += n;\n    try { return inner() }\n    finally { this.lineStart -= n; }\n  };\n  StringStream.prototype.lookAhead = function (n) {\n    var oracle = this.lineOracle;\n    return oracle && oracle.lookAhead(n)\n  };\n  StringStream.prototype.baseToken = function () {\n    var oracle = this.lineOracle;\n    return oracle && oracle.baseToken(this.pos)\n  };\n\n  // Find the line object corresponding to the given line number.\n  function getLine(doc, n) {\n    n -= doc.first;\n    if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n    var chunk = doc;\n    while (!chunk.lines) {\n      for (var i = 0;; ++i) {\n        var child = chunk.children[i], sz = child.chunkSize();\n        if (n < sz) { chunk = child; break }\n        n -= sz;\n      }\n    }\n    return chunk.lines[n]\n  }\n\n  // Get the part of a document between two positions, as an array of\n  // strings.\n  function getBetween(doc, start, end) {\n    var out = [], n = start.line;\n    doc.iter(start.line, end.line + 1, function (line) {\n      var text = line.text;\n      if (n == end.line) { text = text.slice(0, end.ch); }\n      if (n == start.line) { text = text.slice(start.ch); }\n      out.push(text);\n      ++n;\n    });\n    return out\n  }\n  // Get the lines between from and to, as array of strings.\n  function getLines(doc, from, to) {\n    var out = [];\n    doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n    return out\n  }\n\n  // Update the height of a line, propagating the height change\n  // upwards to parent nodes.\n  function updateLineHeight(line, height) {\n    var diff = height - line.height;\n    if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n  }\n\n  // Given a line object, find its line number by walking up through\n  // its parent links.\n  function lineNo(line) {\n    if (line.parent == null) { return null }\n    var cur = line.parent, no = indexOf(cur.lines, line);\n    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n      for (var i = 0;; ++i) {\n        if (chunk.children[i] == cur) { break }\n        no += chunk.children[i].chunkSize();\n      }\n    }\n    return no + cur.first\n  }\n\n  // Find the line at the given vertical position, using the height\n  // information in the document tree.\n  function lineAtHeight(chunk, h) {\n    var n = chunk.first;\n    outer: do {\n      for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n        var child = chunk.children[i$1], ch = child.height;\n        if (h < ch) { chunk = child; continue outer }\n        h -= ch;\n        n += child.chunkSize();\n      }\n      return n\n    } while (!chunk.lines)\n    var i = 0;\n    for (; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i], lh = line.height;\n      if (h < lh) { break }\n      h -= lh;\n    }\n    return n + i\n  }\n\n  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n  function lineNumberFor(options, i) {\n    return String(options.lineNumberFormatter(i + options.firstLineNumber))\n  }\n\n  // A Pos instance represents a position within the text.\n  function Pos(line, ch, sticky) {\n    if ( sticky === void 0 ) sticky = null;\n\n    if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n    this.line = line;\n    this.ch = ch;\n    this.sticky = sticky;\n  }\n\n  // Compare two positions, return 0 if they are the same, a negative\n  // number when a is less, and a positive number otherwise.\n  function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n  function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n  function copyPos(x) {return Pos(x.line, x.ch)}\n  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n  function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n  // Most of the external API clips given positions to make sure they\n  // actually exist within the document.\n  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n  function clipPos(doc, pos) {\n    if (pos.line < doc.first) { return Pos(doc.first, 0) }\n    var last = doc.first + doc.size - 1;\n    if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n    return clipToLen(pos, getLine(doc, pos.line).text.length)\n  }\n  function clipToLen(pos, linelen) {\n    var ch = pos.ch;\n    if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n    else if (ch < 0) { return Pos(pos.line, 0) }\n    else { return pos }\n  }\n  function clipPosArray(doc, array) {\n    var out = [];\n    for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n    return out\n  }\n\n  var SavedContext = function(state, lookAhead) {\n    this.state = state;\n    this.lookAhead = lookAhead;\n  };\n\n  var Context = function(doc, state, line, lookAhead) {\n    this.state = state;\n    this.doc = doc;\n    this.line = line;\n    this.maxLookAhead = lookAhead || 0;\n    this.baseTokens = null;\n    this.baseTokenPos = 1;\n  };\n\n  Context.prototype.lookAhead = function (n) {\n    var line = this.doc.getLine(this.line + n);\n    if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n    return line\n  };\n\n  Context.prototype.baseToken = function (n) {\n    if (!this.baseTokens) { return null }\n    while (this.baseTokens[this.baseTokenPos] <= n)\n      { this.baseTokenPos += 2; }\n    var type = this.baseTokens[this.baseTokenPos + 1];\n    return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n            size: this.baseTokens[this.baseTokenPos] - n}\n  };\n\n  Context.prototype.nextLine = function () {\n    this.line++;\n    if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n  };\n\n  Context.fromSaved = function (doc, saved, line) {\n    if (saved instanceof SavedContext)\n      { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n    else\n      { return new Context(doc, copyState(doc.mode, saved), line) }\n  };\n\n  Context.prototype.save = function (copy) {\n    var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n    return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n  };\n\n\n  // Compute a style array (an array starting with a mode generation\n  // -- for invalidation -- followed by pairs of end positions and\n  // style strings), which is used to highlight the tokens on the\n  // line.\n  function highlightLine(cm, line, context, forceToEnd) {\n    // A styles array always starts with a number identifying the\n    // mode/overlays that it is based on (for easy invalidation).\n    var st = [cm.state.modeGen], lineClasses = {};\n    // Compute the base array of styles\n    runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n            lineClasses, forceToEnd);\n    var state = context.state;\n\n    // Run overlays, adjust style array.\n    var loop = function ( o ) {\n      context.baseTokens = st;\n      var overlay = cm.state.overlays[o], i = 1, at = 0;\n      context.state = true;\n      runMode(cm, line.text, overlay.mode, context, function (end, style) {\n        var start = i;\n        // Ensure there's a token end at the current position, and that i points at it\n        while (at < end) {\n          var i_end = st[i];\n          if (i_end > end)\n            { st.splice(i, 1, end, st[i+1], i_end); }\n          i += 2;\n          at = Math.min(end, i_end);\n        }\n        if (!style) { return }\n        if (overlay.opaque) {\n          st.splice(start, i - start, end, \"overlay \" + style);\n          i = start + 2;\n        } else {\n          for (; start < i; start += 2) {\n            var cur = st[start+1];\n            st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n          }\n        }\n      }, lineClasses);\n      context.state = state;\n      context.baseTokens = null;\n      context.baseTokenPos = 1;\n    };\n\n    for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n  }\n\n  function getLineStyles(cm, line, updateFrontier) {\n    if (!line.styles || line.styles[0] != cm.state.modeGen) {\n      var context = getContextBefore(cm, lineNo(line));\n      var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n      var result = highlightLine(cm, line, context);\n      if (resetState) { context.state = resetState; }\n      line.stateAfter = context.save(!resetState);\n      line.styles = result.styles;\n      if (result.classes) { line.styleClasses = result.classes; }\n      else if (line.styleClasses) { line.styleClasses = null; }\n      if (updateFrontier === cm.doc.highlightFrontier)\n        { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n    }\n    return line.styles\n  }\n\n  function getContextBefore(cm, n, precise) {\n    var doc = cm.doc, display = cm.display;\n    if (!doc.mode.startState) { return new Context(doc, true, n) }\n    var start = findStartLine(cm, n, precise);\n    var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n    var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n    doc.iter(start, n, function (line) {\n      processLine(cm, line.text, context);\n      var pos = context.line;\n      line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n      context.nextLine();\n    });\n    if (precise) { doc.modeFrontier = context.line; }\n    return context\n  }\n\n  // Lightweight form of highlight -- proceed over this line and\n  // update state, but don't save a style array. Used for lines that\n  // aren't currently visible.\n  function processLine(cm, text, context, startAt) {\n    var mode = cm.doc.mode;\n    var stream = new StringStream(text, cm.options.tabSize, context);\n    stream.start = stream.pos = startAt || 0;\n    if (text == \"\") { callBlankLine(mode, context.state); }\n    while (!stream.eol()) {\n      readToken(mode, stream, context.state);\n      stream.start = stream.pos;\n    }\n  }\n\n  function callBlankLine(mode, state) {\n    if (mode.blankLine) { return mode.blankLine(state) }\n    if (!mode.innerMode) { return }\n    var inner = innerMode(mode, state);\n    if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n  }\n\n  function readToken(mode, stream, state, inner) {\n    for (var i = 0; i < 10; i++) {\n      if (inner) { inner[0] = innerMode(mode, state).mode; }\n      var style = mode.token(stream, state);\n      if (stream.pos > stream.start) { return style }\n    }\n    throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n  }\n\n  var Token = function(stream, type, state) {\n    this.start = stream.start; this.end = stream.pos;\n    this.string = stream.current();\n    this.type = type || null;\n    this.state = state;\n  };\n\n  // Utility for getTokenAt and getLineTokens\n  function takeToken(cm, pos, precise, asArray) {\n    var doc = cm.doc, mode = doc.mode, style;\n    pos = clipPos(doc, pos);\n    var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n    var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n    if (asArray) { tokens = []; }\n    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n      stream.start = stream.pos;\n      style = readToken(mode, stream, context.state);\n      if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n    }\n    return asArray ? tokens : new Token(stream, style, context.state)\n  }\n\n  function extractLineClasses(type, output) {\n    if (type) { for (;;) {\n      var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n      if (!lineClass) { break }\n      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n      var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n      if (output[prop] == null)\n        { output[prop] = lineClass[2]; }\n      else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n        { output[prop] += \" \" + lineClass[2]; }\n    } }\n    return type\n  }\n\n  // Run the given mode's parser over a line, calling f for each token.\n  function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n    var flattenSpans = mode.flattenSpans;\n    if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n    var curStart = 0, curStyle = null;\n    var stream = new StringStream(text, cm.options.tabSize, context), style;\n    var inner = cm.options.addModeClass && [null];\n    if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n    while (!stream.eol()) {\n      if (stream.pos > cm.options.maxHighlightLength) {\n        flattenSpans = false;\n        if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n        stream.pos = text.length;\n        style = null;\n      } else {\n        style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n      }\n      if (inner) {\n        var mName = inner[0].name;\n        if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n      }\n      if (!flattenSpans || curStyle != style) {\n        while (curStart < stream.start) {\n          curStart = Math.min(stream.start, curStart + 5000);\n          f(curStart, curStyle);\n        }\n        curStyle = style;\n      }\n      stream.start = stream.pos;\n    }\n    while (curStart < stream.pos) {\n      // Webkit seems to refuse to render text nodes longer than 57444\n      // characters, and returns inaccurate measurements in nodes\n      // starting around 5000 chars.\n      var pos = Math.min(stream.pos, curStart + 5000);\n      f(pos, curStyle);\n      curStart = pos;\n    }\n  }\n\n  // Finds the line to start with when starting a parse. Tries to\n  // find a line with a stateAfter, so that it can start with a\n  // valid state. If that fails, it returns the line with the\n  // smallest indentation, which tends to need the least context to\n  // parse correctly.\n  function findStartLine(cm, n, precise) {\n    var minindent, minline, doc = cm.doc;\n    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n    for (var search = n; search > lim; --search) {\n      if (search <= doc.first) { return doc.first }\n      var line = getLine(doc, search - 1), after = line.stateAfter;\n      if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n        { return search }\n      var indented = countColumn(line.text, null, cm.options.tabSize);\n      if (minline == null || minindent > indented) {\n        minline = search - 1;\n        minindent = indented;\n      }\n    }\n    return minline\n  }\n\n  function retreatFrontier(doc, n) {\n    doc.modeFrontier = Math.min(doc.modeFrontier, n);\n    if (doc.highlightFrontier < n - 10) { return }\n    var start = doc.first;\n    for (var line = n - 1; line > start; line--) {\n      var saved = getLine(doc, line).stateAfter;\n      // change is on 3\n      // state on line 1 looked ahead 2 -- so saw 3\n      // test 1 + 2 < 3 should cover this\n      if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n        start = line + 1;\n        break\n      }\n    }\n    doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n  }\n\n  // Optimize some code when these features are not used.\n  var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n  function seeReadOnlySpans() {\n    sawReadOnlySpans = true;\n  }\n\n  function seeCollapsedSpans() {\n    sawCollapsedSpans = true;\n  }\n\n  // TEXTMARKER SPANS\n\n  function MarkedSpan(marker, from, to) {\n    this.marker = marker;\n    this.from = from; this.to = to;\n  }\n\n  // Search an array of spans for a span matching the given marker.\n  function getMarkedSpanFor(spans, marker) {\n    if (spans) { for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.marker == marker) { return span }\n    } }\n  }\n  // Remove a span from an array, returning undefined if no spans are\n  // left (we don't store arrays for lines without spans).\n  function removeMarkedSpan(spans, span) {\n    var r;\n    for (var i = 0; i < spans.length; ++i)\n      { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n    return r\n  }\n  // Add a span to a line.\n  function addMarkedSpan(line, span) {\n    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n    span.marker.attachLine(line);\n  }\n\n  // Used for the algorithm that adjusts markers for a change in the\n  // document. These functions cut an array of spans at a given\n  // character position, returning an array of remaining chunks (or\n  // undefined if nothing remains).\n  function markedSpansBefore(old, startCh, isInsert) {\n    var nw;\n    if (old) { for (var i = 0; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n      if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n        ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n      }\n    } }\n    return nw\n  }\n  function markedSpansAfter(old, endCh, isInsert) {\n    var nw;\n    if (old) { for (var i = 0; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n      if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n        ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n                                              span.to == null ? null : span.to - endCh));\n      }\n    } }\n    return nw\n  }\n\n  // Given a change object, compute the new set of marker spans that\n  // cover the line in which the change took place. Removes spans\n  // entirely within the change, reconnects spans belonging to the\n  // same marker that appear on both sides of the change, and cuts off\n  // spans partially within the change. Returns an array of span\n  // arrays with one element for each line in (after) the change.\n  function stretchSpansOverChange(doc, change) {\n    if (change.full) { return null }\n    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n    if (!oldFirst && !oldLast) { return null }\n\n    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n    // Get the spans that 'stick out' on both sides\n    var first = markedSpansBefore(oldFirst, startCh, isInsert);\n    var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n    // Next, merge those two ends\n    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n    if (first) {\n      // Fix up .to properties of first\n      for (var i = 0; i < first.length; ++i) {\n        var span = first[i];\n        if (span.to == null) {\n          var found = getMarkedSpanFor(last, span.marker);\n          if (!found) { span.to = startCh; }\n          else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n        }\n      }\n    }\n    if (last) {\n      // Fix up .from in last (or move them into first in case of sameLine)\n      for (var i$1 = 0; i$1 < last.length; ++i$1) {\n        var span$1 = last[i$1];\n        if (span$1.to != null) { span$1.to += offset; }\n        if (span$1.from == null) {\n          var found$1 = getMarkedSpanFor(first, span$1.marker);\n          if (!found$1) {\n            span$1.from = offset;\n            if (sameLine) { (first || (first = [])).push(span$1); }\n          }\n        } else {\n          span$1.from += offset;\n          if (sameLine) { (first || (first = [])).push(span$1); }\n        }\n      }\n    }\n    // Make sure we didn't create any zero-length spans\n    if (first) { first = clearEmptySpans(first); }\n    if (last && last != first) { last = clearEmptySpans(last); }\n\n    var newMarkers = [first];\n    if (!sameLine) {\n      // Fill gap with whole-line-spans\n      var gap = change.text.length - 2, gapMarkers;\n      if (gap > 0 && first)\n        { for (var i$2 = 0; i$2 < first.length; ++i$2)\n          { if (first[i$2].to == null)\n            { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n      for (var i$3 = 0; i$3 < gap; ++i$3)\n        { newMarkers.push(gapMarkers); }\n      newMarkers.push(last);\n    }\n    return newMarkers\n  }\n\n  // Remove spans that are empty and don't have a clearWhenEmpty\n  // option of false.\n  function clearEmptySpans(spans) {\n    for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n        { spans.splice(i--, 1); }\n    }\n    if (!spans.length) { return null }\n    return spans\n  }\n\n  // Used to 'clip' out readOnly ranges when making a change.\n  function removeReadOnlyRanges(doc, from, to) {\n    var markers = null;\n    doc.iter(from.line, to.line + 1, function (line) {\n      if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n        var mark = line.markedSpans[i].marker;\n        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n          { (markers || (markers = [])).push(mark); }\n      } }\n    });\n    if (!markers) { return null }\n    var parts = [{from: from, to: to}];\n    for (var i = 0; i < markers.length; ++i) {\n      var mk = markers[i], m = mk.find(0);\n      for (var j = 0; j < parts.length; ++j) {\n        var p = parts[j];\n        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n          { newParts.push({from: p.from, to: m.from}); }\n        if (dto > 0 || !mk.inclusiveRight && !dto)\n          { newParts.push({from: m.to, to: p.to}); }\n        parts.splice.apply(parts, newParts);\n        j += newParts.length - 3;\n      }\n    }\n    return parts\n  }\n\n  // Connect or disconnect spans from a line.\n  function detachMarkedSpans(line) {\n    var spans = line.markedSpans;\n    if (!spans) { return }\n    for (var i = 0; i < spans.length; ++i)\n      { spans[i].marker.detachLine(line); }\n    line.markedSpans = null;\n  }\n  function attachMarkedSpans(line, spans) {\n    if (!spans) { return }\n    for (var i = 0; i < spans.length; ++i)\n      { spans[i].marker.attachLine(line); }\n    line.markedSpans = spans;\n  }\n\n  // Helpers used when computing which overlapping collapsed span\n  // counts as the larger one.\n  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n  // Returns a number indicating which of two overlapping collapsed\n  // spans is larger (and thus includes the other). Falls back to\n  // comparing ids when the spans cover exactly the same range.\n  function compareCollapsedMarkers(a, b) {\n    var lenDiff = a.lines.length - b.lines.length;\n    if (lenDiff != 0) { return lenDiff }\n    var aPos = a.find(), bPos = b.find();\n    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n    if (fromCmp) { return -fromCmp }\n    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n    if (toCmp) { return toCmp }\n    return b.id - a.id\n  }\n\n  // Find out whether a line ends or starts in a collapsed span. If\n  // so, return the marker for that span.\n  function collapsedSpanAtSide(line, start) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n          (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n        { found = sp.marker; }\n    } }\n    return found\n  }\n  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n  function collapsedSpanAround(line, ch) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) { for (var i = 0; i < sps.length; ++i) {\n      var sp = sps[i];\n      if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n          (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n    } }\n    return found\n  }\n\n  // Test whether there exists a collapsed span that partially\n  // overlaps (covers the start or end, but not both) of a new span.\n  // Such overlap is not allowed.\n  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n    var line = getLine(doc, lineNo);\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) { for (var i = 0; i < sps.length; ++i) {\n      var sp = sps[i];\n      if (!sp.marker.collapsed) { continue }\n      var found = sp.marker.find(0);\n      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n      if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n          fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n        { return true }\n    } }\n  }\n\n  // A visual line is a line as drawn on the screen. Folding, for\n  // example, can cause multiple logical lines to appear on the same\n  // visual line. This finds the start of the visual line that the\n  // given line is part of (usually that is the line itself).\n  function visualLine(line) {\n    var merged;\n    while (merged = collapsedSpanAtStart(line))\n      { line = merged.find(-1, true).line; }\n    return line\n  }\n\n  function visualLineEnd(line) {\n    var merged;\n    while (merged = collapsedSpanAtEnd(line))\n      { line = merged.find(1, true).line; }\n    return line\n  }\n\n  // Returns an array of logical lines that continue the visual line\n  // started by the argument, or undefined if there are no such lines.\n  function visualLineContinued(line) {\n    var merged, lines;\n    while (merged = collapsedSpanAtEnd(line)) {\n      line = merged.find(1, true).line\n      ;(lines || (lines = [])).push(line);\n    }\n    return lines\n  }\n\n  // Get the line number of the start of the visual line that the\n  // given line number is part of.\n  function visualLineNo(doc, lineN) {\n    var line = getLine(doc, lineN), vis = visualLine(line);\n    if (line == vis) { return lineN }\n    return lineNo(vis)\n  }\n\n  // Get the line number of the start of the next visual line after\n  // the given line.\n  function visualLineEndNo(doc, lineN) {\n    if (lineN > doc.lastLine()) { return lineN }\n    var line = getLine(doc, lineN), merged;\n    if (!lineIsHidden(doc, line)) { return lineN }\n    while (merged = collapsedSpanAtEnd(line))\n      { line = merged.find(1, true).line; }\n    return lineNo(line) + 1\n  }\n\n  // Compute whether a line is hidden. Lines count as hidden when they\n  // are part of a visual line that starts with another line, or when\n  // they are entirely covered by collapsed, non-widget span.\n  function lineIsHidden(doc, line) {\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) { continue }\n      if (sp.from == null) { return true }\n      if (sp.marker.widgetNode) { continue }\n      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n        { return true }\n    } }\n  }\n  function lineIsHiddenInner(doc, line, span) {\n    if (span.to == null) {\n      var end = span.marker.find(1, true);\n      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n    }\n    if (span.marker.inclusiveRight && span.to == line.text.length)\n      { return true }\n    for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n      sp = line.markedSpans[i];\n      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n          (sp.to == null || sp.to != span.from) &&\n          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n          lineIsHiddenInner(doc, line, sp)) { return true }\n    }\n  }\n\n  // Find the height above the given line.\n  function heightAtLine(lineObj) {\n    lineObj = visualLine(lineObj);\n\n    var h = 0, chunk = lineObj.parent;\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i];\n      if (line == lineObj) { break }\n      else { h += line.height; }\n    }\n    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n      for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n        var cur = p.children[i$1];\n        if (cur == chunk) { break }\n        else { h += cur.height; }\n      }\n    }\n    return h\n  }\n\n  // Compute the character length of a line, taking into account\n  // collapsed ranges (see markText) that might hide parts, and join\n  // other lines onto it.\n  function lineLength(line) {\n    if (line.height == 0) { return 0 }\n    var len = line.text.length, merged, cur = line;\n    while (merged = collapsedSpanAtStart(cur)) {\n      var found = merged.find(0, true);\n      cur = found.from.line;\n      len += found.from.ch - found.to.ch;\n    }\n    cur = line;\n    while (merged = collapsedSpanAtEnd(cur)) {\n      var found$1 = merged.find(0, true);\n      len -= cur.text.length - found$1.from.ch;\n      cur = found$1.to.line;\n      len += cur.text.length - found$1.to.ch;\n    }\n    return len\n  }\n\n  // Find the longest line in the document.\n  function findMaxLine(cm) {\n    var d = cm.display, doc = cm.doc;\n    d.maxLine = getLine(doc, doc.first);\n    d.maxLineLength = lineLength(d.maxLine);\n    d.maxLineChanged = true;\n    doc.iter(function (line) {\n      var len = lineLength(line);\n      if (len > d.maxLineLength) {\n        d.maxLineLength = len;\n        d.maxLine = line;\n      }\n    });\n  }\n\n  // LINE DATA STRUCTURE\n\n  // Line objects. These hold state related to a line, including\n  // highlighting info (the styles array).\n  var Line = function(text, markedSpans, estimateHeight) {\n    this.text = text;\n    attachMarkedSpans(this, markedSpans);\n    this.height = estimateHeight ? estimateHeight(this) : 1;\n  };\n\n  Line.prototype.lineNo = function () { return lineNo(this) };\n  eventMixin(Line);\n\n  // Change the content (text, markers) of a line. Automatically\n  // invalidates cached information and tries to re-estimate the\n  // line's height.\n  function updateLine(line, text, markedSpans, estimateHeight) {\n    line.text = text;\n    if (line.stateAfter) { line.stateAfter = null; }\n    if (line.styles) { line.styles = null; }\n    if (line.order != null) { line.order = null; }\n    detachMarkedSpans(line);\n    attachMarkedSpans(line, markedSpans);\n    var estHeight = estimateHeight ? estimateHeight(line) : 1;\n    if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n  }\n\n  // Detach a line from the document tree and its markers.\n  function cleanUpLine(line) {\n    line.parent = null;\n    detachMarkedSpans(line);\n  }\n\n  // Convert a style as returned by a mode (either null, or a string\n  // containing one or more styles) to a CSS style. This is cached,\n  // and also looks for line-wide styles.\n  var styleToClassCache = {}, styleToClassCacheWithMode = {};\n  function interpretTokenStyle(style, options) {\n    if (!style || /^\\s*$/.test(style)) { return null }\n    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n    return cache[style] ||\n      (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n  }\n\n  // Render the DOM representation of the text of a line. Also builds\n  // up a 'line map', which points at the DOM nodes that represent\n  // specific stretches of text, and is used by the measuring code.\n  // The returned object contains the DOM node, this map, and\n  // information about line-wide styles that were set by the mode.\n  function buildLineContent(cm, lineView) {\n    // The padding-right forces the element to have a 'border', which\n    // is needed on Webkit to be able to get line-level bounding\n    // rectangles for it (in measureChar).\n    var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n    var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n                   col: 0, pos: 0, cm: cm,\n                   trailingSpace: false,\n                   splitSpaces: cm.getOption(\"lineWrapping\")};\n    lineView.measure = {};\n\n    // Iterate over the logical lines that make up this visual line.\n    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n      var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n      builder.pos = 0;\n      builder.addToken = buildToken;\n      // Optionally wire in some hacks into the token-rendering\n      // algorithm, to deal with browser quirks.\n      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n        { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n      builder.map = [];\n      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n      if (line.styleClasses) {\n        if (line.styleClasses.bgClass)\n          { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n        if (line.styleClasses.textClass)\n          { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n      }\n\n      // Ensure at least a single node is present, for measuring.\n      if (builder.map.length == 0)\n        { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n      // Store the map and a cache object for the current logical line\n      if (i == 0) {\n        lineView.measure.map = builder.map;\n        lineView.measure.cache = {};\n      } else {\n  (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n        ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n      }\n    }\n\n    // See issue #2901\n    if (webkit) {\n      var last = builder.content.lastChild;\n      if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n        { builder.content.className = \"cm-tab-wrap-hack\"; }\n    }\n\n    signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n    if (builder.pre.className)\n      { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n    return builder\n  }\n\n  function defaultSpecialCharPlaceholder(ch) {\n    var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n    token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n    token.setAttribute(\"aria-label\", token.title);\n    return token\n  }\n\n  // Build up the DOM representation for a single token, and add it to\n  // the line map. Takes care to render special characters separately.\n  function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n    if (!text) { return }\n    var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n    var special = builder.cm.state.specialChars, mustWrap = false;\n    var content;\n    if (!special.test(text)) {\n      builder.col += text.length;\n      content = document.createTextNode(displayText);\n      builder.map.push(builder.pos, builder.pos + text.length, content);\n      if (ie && ie_version < 9) { mustWrap = true; }\n      builder.pos += text.length;\n    } else {\n      content = document.createDocumentFragment();\n      var pos = 0;\n      while (true) {\n        special.lastIndex = pos;\n        var m = special.exec(text);\n        var skipped = m ? m.index - pos : text.length - pos;\n        if (skipped) {\n          var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n          if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n          else { content.appendChild(txt); }\n          builder.map.push(builder.pos, builder.pos + skipped, txt);\n          builder.col += skipped;\n          builder.pos += skipped;\n        }\n        if (!m) { break }\n        pos += skipped + 1;\n        var txt$1 = (void 0);\n        if (m[0] == \"\\t\") {\n          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n          txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n          txt$1.setAttribute(\"role\", \"presentation\");\n          txt$1.setAttribute(\"cm-text\", \"\\t\");\n          builder.col += tabWidth;\n        } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n          txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n          txt$1.setAttribute(\"cm-text\", m[0]);\n          builder.col += 1;\n        } else {\n          txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n          txt$1.setAttribute(\"cm-text\", m[0]);\n          if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n          else { content.appendChild(txt$1); }\n          builder.col += 1;\n        }\n        builder.map.push(builder.pos, builder.pos + 1, txt$1);\n        builder.pos++;\n      }\n    }\n    builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n    if (style || startStyle || endStyle || mustWrap || css || attributes) {\n      var fullStyle = style || \"\";\n      if (startStyle) { fullStyle += startStyle; }\n      if (endStyle) { fullStyle += endStyle; }\n      var token = elt(\"span\", [content], fullStyle, css);\n      if (attributes) {\n        for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n          { token.setAttribute(attr, attributes[attr]); } }\n      }\n      return builder.content.appendChild(token)\n    }\n    builder.content.appendChild(content);\n  }\n\n  // Change some spaces to NBSP to prevent the browser from collapsing\n  // trailing spaces at the end of a line when rendering text (issue #1362).\n  function splitSpaces(text, trailingBefore) {\n    if (text.length > 1 && !/  /.test(text)) { return text }\n    var spaceBefore = trailingBefore, result = \"\";\n    for (var i = 0; i < text.length; i++) {\n      var ch = text.charAt(i);\n      if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n        { ch = \"\\u00a0\"; }\n      result += ch;\n      spaceBefore = ch == \" \";\n    }\n    return result\n  }\n\n  // Work around nonsense dimensions being reported for stretches of\n  // right-to-left text.\n  function buildTokenBadBidi(inner, order) {\n    return function (builder, text, style, startStyle, endStyle, css, attributes) {\n      style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n      var start = builder.pos, end = start + text.length;\n      for (;;) {\n        // Find the part that overlaps with the start of this text\n        var part = (void 0);\n        for (var i = 0; i < order.length; i++) {\n          part = order[i];\n          if (part.to > start && part.from <= start) { break }\n        }\n        if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n        inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n        startStyle = null;\n        text = text.slice(part.to - start);\n        start = part.to;\n      }\n    }\n  }\n\n  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n    var widget = !ignoreWidget && marker.widgetNode;\n    if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n      if (!widget)\n        { widget = builder.content.appendChild(document.createElement(\"span\")); }\n      widget.setAttribute(\"cm-marker\", marker.id);\n    }\n    if (widget) {\n      builder.cm.display.input.setUneditable(widget);\n      builder.content.appendChild(widget);\n    }\n    builder.pos += size;\n    builder.trailingSpace = false;\n  }\n\n  // Outputs a number of spans to make up a line, taking highlighting\n  // and marked text into account.\n  function insertLineContent(line, builder, styles) {\n    var spans = line.markedSpans, allText = line.text, at = 0;\n    if (!spans) {\n      for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n        { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n      return\n    }\n\n    var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n    for (;;) {\n      if (nextChange == pos) { // Update current marker set\n        spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n        attributes = null;\n        collapsed = null; nextChange = Infinity;\n        var foundBookmarks = [], endStyles = (void 0);\n        for (var j = 0; j < spans.length; ++j) {\n          var sp = spans[j], m = sp.marker;\n          if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n            foundBookmarks.push(m);\n          } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n            if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n              nextChange = sp.to;\n              spanEndStyle = \"\";\n            }\n            if (m.className) { spanStyle += \" \" + m.className; }\n            if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n            if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n            if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n            // support for the old title property\n            // https://github.com/codemirror/CodeMirror/pull/5673\n            if (m.title) { (attributes || (attributes = {})).title = m.title; }\n            if (m.attributes) {\n              for (var attr in m.attributes)\n                { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n            }\n            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n              { collapsed = sp; }\n          } else if (sp.from > pos && nextChange > sp.from) {\n            nextChange = sp.from;\n          }\n        }\n        if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n          { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n        if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n          { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n        if (collapsed && (collapsed.from || 0) == pos) {\n          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n                             collapsed.marker, collapsed.from == null);\n          if (collapsed.to == null) { return }\n          if (collapsed.to == pos) { collapsed = false; }\n        }\n      }\n      if (pos >= len) { break }\n\n      var upto = Math.min(len, nextChange);\n      while (true) {\n        if (text) {\n          var end = pos + text.length;\n          if (!collapsed) {\n            var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n          }\n          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n          pos = end;\n          spanStartStyle = \"\";\n        }\n        text = allText.slice(at, at = styles[i++]);\n        style = interpretTokenStyle(styles[i++], builder.cm.options);\n      }\n    }\n  }\n\n\n  // These objects are used to represent the visible (currently drawn)\n  // part of the document. A LineView may correspond to multiple\n  // logical lines, if those are connected by collapsed ranges.\n  function LineView(doc, line, lineN) {\n    // The starting line\n    this.line = line;\n    // Continuing lines, if any\n    this.rest = visualLineContinued(line);\n    // Number of logical lines in this visual line\n    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n    this.node = this.text = null;\n    this.hidden = lineIsHidden(doc, line);\n  }\n\n  // Create a range of LineView objects for the given lines.\n  function buildViewArray(cm, from, to) {\n    var array = [], nextPos;\n    for (var pos = from; pos < to; pos = nextPos) {\n      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n      nextPos = pos + view.size;\n      array.push(view);\n    }\n    return array\n  }\n\n  var operationGroup = null;\n\n  function pushOperation(op) {\n    if (operationGroup) {\n      operationGroup.ops.push(op);\n    } else {\n      op.ownsGroup = operationGroup = {\n        ops: [op],\n        delayedCallbacks: []\n      };\n    }\n  }\n\n  function fireCallbacksForOps(group) {\n    // Calls delayed callbacks and cursorActivity handlers until no\n    // new ones appear\n    var callbacks = group.delayedCallbacks, i = 0;\n    do {\n      for (; i < callbacks.length; i++)\n        { callbacks[i].call(null); }\n      for (var j = 0; j < group.ops.length; j++) {\n        var op = group.ops[j];\n        if (op.cursorActivityHandlers)\n          { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n            { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n      }\n    } while (i < callbacks.length)\n  }\n\n  function finishOperation(op, endCb) {\n    var group = op.ownsGroup;\n    if (!group) { return }\n\n    try { fireCallbacksForOps(group); }\n    finally {\n      operationGroup = null;\n      endCb(group);\n    }\n  }\n\n  var orphanDelayedCallbacks = null;\n\n  // Often, we want to signal events at a point where we are in the\n  // middle of some work, but don't want the handler to start calling\n  // other methods on the editor, which might be in an inconsistent\n  // state or simply not expect any other events to happen.\n  // signalLater looks whether there are any handlers, and schedules\n  // them to be executed when the last operation ends, or, if no\n  // operation is active, when a timeout fires.\n  function signalLater(emitter, type /*, values...*/) {\n    var arr = getHandlers(emitter, type);\n    if (!arr.length) { return }\n    var args = Array.prototype.slice.call(arguments, 2), list;\n    if (operationGroup) {\n      list = operationGroup.delayedCallbacks;\n    } else if (orphanDelayedCallbacks) {\n      list = orphanDelayedCallbacks;\n    } else {\n      list = orphanDelayedCallbacks = [];\n      setTimeout(fireOrphanDelayed, 0);\n    }\n    var loop = function ( i ) {\n      list.push(function () { return arr[i].apply(null, args); });\n    };\n\n    for (var i = 0; i < arr.length; ++i)\n      loop( i );\n  }\n\n  function fireOrphanDelayed() {\n    var delayed = orphanDelayedCallbacks;\n    orphanDelayedCallbacks = null;\n    for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n  }\n\n  // When an aspect of a line changes, a string is added to\n  // lineView.changes. This updates the relevant part of the line's\n  // DOM structure.\n  function updateLineForChanges(cm, lineView, lineN, dims) {\n    for (var j = 0; j < lineView.changes.length; j++) {\n      var type = lineView.changes[j];\n      if (type == \"text\") { updateLineText(cm, lineView); }\n      else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n      else if (type == \"class\") { updateLineClasses(cm, lineView); }\n      else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n    }\n    lineView.changes = null;\n  }\n\n  // Lines with gutter elements, widgets or a background class need to\n  // be wrapped, and have the extra elements added to the wrapper div\n  function ensureLineWrapped(lineView) {\n    if (lineView.node == lineView.text) {\n      lineView.node = elt(\"div\", null, null, \"position: relative\");\n      if (lineView.text.parentNode)\n        { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n      lineView.node.appendChild(lineView.text);\n      if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n    }\n    return lineView.node\n  }\n\n  function updateLineBackground(cm, lineView) {\n    var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n    if (cls) { cls += \" CodeMirror-linebackground\"; }\n    if (lineView.background) {\n      if (cls) { lineView.background.className = cls; }\n      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n    } else if (cls) {\n      var wrap = ensureLineWrapped(lineView);\n      lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n      cm.display.input.setUneditable(lineView.background);\n    }\n  }\n\n  // Wrapper around buildLineContent which will reuse the structure\n  // in display.externalMeasured when possible.\n  function getLineContent(cm, lineView) {\n    var ext = cm.display.externalMeasured;\n    if (ext && ext.line == lineView.line) {\n      cm.display.externalMeasured = null;\n      lineView.measure = ext.measure;\n      return ext.built\n    }\n    return buildLineContent(cm, lineView)\n  }\n\n  // Redraw the line's text. Interacts with the background and text\n  // classes because the mode may output tokens that influence these\n  // classes.\n  function updateLineText(cm, lineView) {\n    var cls = lineView.text.className;\n    var built = getLineContent(cm, lineView);\n    if (lineView.text == lineView.node) { lineView.node = built.pre; }\n    lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n    lineView.text = built.pre;\n    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n      lineView.bgClass = built.bgClass;\n      lineView.textClass = built.textClass;\n      updateLineClasses(cm, lineView);\n    } else if (cls) {\n      lineView.text.className = cls;\n    }\n  }\n\n  function updateLineClasses(cm, lineView) {\n    updateLineBackground(cm, lineView);\n    if (lineView.line.wrapClass)\n      { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n    else if (lineView.node != lineView.text)\n      { lineView.node.className = \"\"; }\n    var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n    lineView.text.className = textClass || \"\";\n  }\n\n  function updateLineGutter(cm, lineView, lineN, dims) {\n    if (lineView.gutter) {\n      lineView.node.removeChild(lineView.gutter);\n      lineView.gutter = null;\n    }\n    if (lineView.gutterBackground) {\n      lineView.node.removeChild(lineView.gutterBackground);\n      lineView.gutterBackground = null;\n    }\n    if (lineView.line.gutterClass) {\n      var wrap = ensureLineWrapped(lineView);\n      lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n                                      (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n      cm.display.input.setUneditable(lineView.gutterBackground);\n      wrap.insertBefore(lineView.gutterBackground, lineView.text);\n    }\n    var markers = lineView.line.gutterMarkers;\n    if (cm.options.lineNumbers || markers) {\n      var wrap$1 = ensureLineWrapped(lineView);\n      var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n      cm.display.input.setUneditable(gutterWrap);\n      wrap$1.insertBefore(gutterWrap, lineView.text);\n      if (lineView.line.gutterClass)\n        { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n      if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n        { lineView.lineNumber = gutterWrap.appendChild(\n          elt(\"div\", lineNumberFor(cm.options, lineN),\n              \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n              (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n      if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n        var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n        if (found)\n          { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n                                     (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n      } }\n    }\n  }\n\n  function updateLineWidgets(cm, lineView, dims) {\n    if (lineView.alignable) { lineView.alignable = null; }\n    var isWidget = classTest(\"CodeMirror-linewidget\");\n    for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n      next = node.nextSibling;\n      if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n    }\n    insertLineWidgets(cm, lineView, dims);\n  }\n\n  // Build a line's DOM representation from scratch\n  function buildLineElement(cm, lineView, lineN, dims) {\n    var built = getLineContent(cm, lineView);\n    lineView.text = lineView.node = built.pre;\n    if (built.bgClass) { lineView.bgClass = built.bgClass; }\n    if (built.textClass) { lineView.textClass = built.textClass; }\n\n    updateLineClasses(cm, lineView);\n    updateLineGutter(cm, lineView, lineN, dims);\n    insertLineWidgets(cm, lineView, dims);\n    return lineView.node\n  }\n\n  // A lineView may contain multiple logical lines (when merged by\n  // collapsed spans). The widgets for all of them need to be drawn.\n  function insertLineWidgets(cm, lineView, dims) {\n    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n    if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n      { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n  }\n\n  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n    if (!line.widgets) { return }\n    var wrap = ensureLineWrapped(lineView);\n    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n      var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n      if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n      positionLineWidget(widget, node, lineView, dims);\n      cm.display.input.setUneditable(node);\n      if (allowAbove && widget.above)\n        { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n      else\n        { wrap.appendChild(node); }\n      signalLater(widget, \"redraw\");\n    }\n  }\n\n  function positionLineWidget(widget, node, lineView, dims) {\n    if (widget.noHScroll) {\n  (lineView.alignable || (lineView.alignable = [])).push(node);\n      var width = dims.wrapperWidth;\n      node.style.left = dims.fixedPos + \"px\";\n      if (!widget.coverGutter) {\n        width -= dims.gutterTotalWidth;\n        node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n      }\n      node.style.width = width + \"px\";\n    }\n    if (widget.coverGutter) {\n      node.style.zIndex = 5;\n      node.style.position = \"relative\";\n      if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n    }\n  }\n\n  function widgetHeight(widget) {\n    if (widget.height != null) { return widget.height }\n    var cm = widget.doc.cm;\n    if (!cm) { return 0 }\n    if (!contains(document.body, widget.node)) {\n      var parentStyle = \"position: relative;\";\n      if (widget.coverGutter)\n        { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n      if (widget.noHScroll)\n        { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n      removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n    }\n    return widget.height = widget.node.parentNode.offsetHeight\n  }\n\n  // Return true when the given mouse event happened in a widget\n  function eventInWidget(display, e) {\n    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n      if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n          (n.parentNode == display.sizer && n != display.mover))\n        { return true }\n    }\n  }\n\n  // POSITION MEASUREMENT\n\n  function paddingTop(display) {return display.lineSpace.offsetTop}\n  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n  function paddingH(display) {\n    if (display.cachedPaddingH) { return display.cachedPaddingH }\n    var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n    if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n    return data\n  }\n\n  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n  function displayWidth(cm) {\n    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n  }\n  function displayHeight(cm) {\n    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n  }\n\n  // Ensure the lineView.wrapping.heights array is populated. This is\n  // an array of bottom offsets for the lines that make up a drawn\n  // line. When lineWrapping is on, there might be more than one\n  // height.\n  function ensureLineHeights(cm, lineView, rect) {\n    var wrapping = cm.options.lineWrapping;\n    var curWidth = wrapping && displayWidth(cm);\n    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n      var heights = lineView.measure.heights = [];\n      if (wrapping) {\n        lineView.measure.width = curWidth;\n        var rects = lineView.text.firstChild.getClientRects();\n        for (var i = 0; i < rects.length - 1; i++) {\n          var cur = rects[i], next = rects[i + 1];\n          if (Math.abs(cur.bottom - next.bottom) > 2)\n            { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n        }\n      }\n      heights.push(rect.bottom - rect.top);\n    }\n  }\n\n  // Find a line map (mapping character offsets to text nodes) and a\n  // measurement cache for the given line number. (A line view might\n  // contain multiple lines when collapsed ranges are present.)\n  function mapFromLineView(lineView, line, lineN) {\n    if (lineView.line == line)\n      { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n    for (var i = 0; i < lineView.rest.length; i++)\n      { if (lineView.rest[i] == line)\n        { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n    for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n      { if (lineNo(lineView.rest[i$1]) > lineN)\n        { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n  }\n\n  // Render a line into the hidden node display.externalMeasured. Used\n  // when measurement is needed for a line that's not in the viewport.\n  function updateExternalMeasurement(cm, line) {\n    line = visualLine(line);\n    var lineN = lineNo(line);\n    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n    view.lineN = lineN;\n    var built = view.built = buildLineContent(cm, view);\n    view.text = built.pre;\n    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n    return view\n  }\n\n  // Get a {top, bottom, left, right} box (in line-local coordinates)\n  // for a given character.\n  function measureChar(cm, line, ch, bias) {\n    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n  }\n\n  // Find a line view that corresponds to the given line number.\n  function findViewForLine(cm, lineN) {\n    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n      { return cm.display.view[findViewIndex(cm, lineN)] }\n    var ext = cm.display.externalMeasured;\n    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n      { return ext }\n  }\n\n  // Measurement can be split in two steps, the set-up work that\n  // applies to the whole line, and the measurement of the actual\n  // character. Functions like coordsChar, that need to do a lot of\n  // measurements in a row, can thus ensure that the set-up work is\n  // only done once.\n  function prepareMeasureForLine(cm, line) {\n    var lineN = lineNo(line);\n    var view = findViewForLine(cm, lineN);\n    if (view && !view.text) {\n      view = null;\n    } else if (view && view.changes) {\n      updateLineForChanges(cm, view, lineN, getDimensions(cm));\n      cm.curOp.forceUpdate = true;\n    }\n    if (!view)\n      { view = updateExternalMeasurement(cm, line); }\n\n    var info = mapFromLineView(view, line, lineN);\n    return {\n      line: line, view: view, rect: null,\n      map: info.map, cache: info.cache, before: info.before,\n      hasHeights: false\n    }\n  }\n\n  // Given a prepared measurement object, measures the position of an\n  // actual character (or fetches it from the cache).\n  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n    if (prepared.before) { ch = -1; }\n    var key = ch + (bias || \"\"), found;\n    if (prepared.cache.hasOwnProperty(key)) {\n      found = prepared.cache[key];\n    } else {\n      if (!prepared.rect)\n        { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n      if (!prepared.hasHeights) {\n        ensureLineHeights(cm, prepared.view, prepared.rect);\n        prepared.hasHeights = true;\n      }\n      found = measureCharInner(cm, prepared, ch, bias);\n      if (!found.bogus) { prepared.cache[key] = found; }\n    }\n    return {left: found.left, right: found.right,\n            top: varHeight ? found.rtop : found.top,\n            bottom: varHeight ? found.rbottom : found.bottom}\n  }\n\n  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n  function nodeAndOffsetInLineMap(map, ch, bias) {\n    var node, start, end, collapse, mStart, mEnd;\n    // First, search the line map for the text node corresponding to,\n    // or closest to, the target character.\n    for (var i = 0; i < map.length; i += 3) {\n      mStart = map[i];\n      mEnd = map[i + 1];\n      if (ch < mStart) {\n        start = 0; end = 1;\n        collapse = \"left\";\n      } else if (ch < mEnd) {\n        start = ch - mStart;\n        end = start + 1;\n      } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n        end = mEnd - mStart;\n        start = end - 1;\n        if (ch >= mEnd) { collapse = \"right\"; }\n      }\n      if (start != null) {\n        node = map[i + 2];\n        if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n          { collapse = bias; }\n        if (bias == \"left\" && start == 0)\n          { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n            node = map[(i -= 3) + 2];\n            collapse = \"left\";\n          } }\n        if (bias == \"right\" && start == mEnd - mStart)\n          { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n            node = map[(i += 3) + 2];\n            collapse = \"right\";\n          } }\n        break\n      }\n    }\n    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n  }\n\n  function getUsefulRect(rects, bias) {\n    var rect = nullRect;\n    if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n      if ((rect = rects[i]).left != rect.right) { break }\n    } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n      if ((rect = rects[i$1]).left != rect.right) { break }\n    } }\n    return rect\n  }\n\n  function measureCharInner(cm, prepared, ch, bias) {\n    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n    var rect;\n    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n      for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n          { rect = node.parentNode.getBoundingClientRect(); }\n        else\n          { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n        if (rect.left || rect.right || start == 0) { break }\n        end = start;\n        start = start - 1;\n        collapse = \"right\";\n      }\n      if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n    } else { // If it is a widget, simply get the box for the whole widget.\n      if (start > 0) { collapse = bias = \"right\"; }\n      var rects;\n      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n        { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n      else\n        { rect = node.getBoundingClientRect(); }\n    }\n    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n      var rSpan = node.parentNode.getClientRects()[0];\n      if (rSpan)\n        { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n      else\n        { rect = nullRect; }\n    }\n\n    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n    var mid = (rtop + rbot) / 2;\n    var heights = prepared.view.measure.heights;\n    var i = 0;\n    for (; i < heights.length - 1; i++)\n      { if (mid < heights[i]) { break } }\n    var top = i ? heights[i - 1] : 0, bot = heights[i];\n    var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n                  right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n                  top: top, bottom: bot};\n    if (!rect.left && !rect.right) { result.bogus = true; }\n    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n    return result\n  }\n\n  // Work around problem with bounding client rects on ranges being\n  // returned incorrectly when zoomed on IE10 and below.\n  function maybeUpdateRectForZooming(measure, rect) {\n    if (!window.screen || screen.logicalXDPI == null ||\n        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n      { return rect }\n    var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n    var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n    return {left: rect.left * scaleX, right: rect.right * scaleX,\n            top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n  }\n\n  function clearLineMeasurementCacheFor(lineView) {\n    if (lineView.measure) {\n      lineView.measure.cache = {};\n      lineView.measure.heights = null;\n      if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n        { lineView.measure.caches[i] = {}; } }\n    }\n  }\n\n  function clearLineMeasurementCache(cm) {\n    cm.display.externalMeasure = null;\n    removeChildren(cm.display.lineMeasure);\n    for (var i = 0; i < cm.display.view.length; i++)\n      { clearLineMeasurementCacheFor(cm.display.view[i]); }\n  }\n\n  function clearCaches(cm) {\n    clearLineMeasurementCache(cm);\n    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n    if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n    cm.display.lineNumChars = null;\n  }\n\n  function pageScrollX() {\n    // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n    // which causes page_Offset and bounding client rects to use\n    // different reference viewports and invalidate our calculations.\n    if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n    return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n  }\n  function pageScrollY() {\n    if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n    return window.pageYOffset || (document.documentElement || document.body).scrollTop\n  }\n\n  function widgetTopHeight(lineObj) {\n    var height = 0;\n    if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n      { height += widgetHeight(lineObj.widgets[i]); } } }\n    return height\n  }\n\n  // Converts a {top, bottom, left, right} box from line-local\n  // coordinates into another coordinate system. Context may be one of\n  // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n  // or \"page\".\n  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n    if (!includeWidgets) {\n      var height = widgetTopHeight(lineObj);\n      rect.top += height; rect.bottom += height;\n    }\n    if (context == \"line\") { return rect }\n    if (!context) { context = \"local\"; }\n    var yOff = heightAtLine(lineObj);\n    if (context == \"local\") { yOff += paddingTop(cm.display); }\n    else { yOff -= cm.display.viewOffset; }\n    if (context == \"page\" || context == \"window\") {\n      var lOff = cm.display.lineSpace.getBoundingClientRect();\n      yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n      var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n      rect.left += xOff; rect.right += xOff;\n    }\n    rect.top += yOff; rect.bottom += yOff;\n    return rect\n  }\n\n  // Coverts a box from \"div\" coords to another coordinate system.\n  // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n  function fromCoordSystem(cm, coords, context) {\n    if (context == \"div\") { return coords }\n    var left = coords.left, top = coords.top;\n    // First move into \"page\" coordinate system\n    if (context == \"page\") {\n      left -= pageScrollX();\n      top -= pageScrollY();\n    } else if (context == \"local\" || !context) {\n      var localBox = cm.display.sizer.getBoundingClientRect();\n      left += localBox.left;\n      top += localBox.top;\n    }\n\n    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n  }\n\n  function charCoords(cm, pos, context, lineObj, bias) {\n    if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n  }\n\n  // Returns a box for a given cursor position, which may have an\n  // 'other' property containing the position of the secondary cursor\n  // on a bidi boundary.\n  // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n  // and after `char - 1` in writing order of `char - 1`\n  // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n  // and before `char` in writing order of `char`\n  // Examples (upper-case letters are RTL, lower-case are LTR):\n  //     Pos(0, 1, ...)\n  //     before   after\n  // ab     a|b     a|b\n  // aB     a|B     aB|\n  // Ab     |Ab     A|b\n  // AB     B|A     B|A\n  // Every position after the last character on a line is considered to stick\n  // to the last character on the line.\n  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n    lineObj = lineObj || getLine(cm.doc, pos.line);\n    if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n    function get(ch, right) {\n      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n      if (right) { m.left = m.right; } else { m.right = m.left; }\n      return intoCoordSystem(cm, lineObj, m, context)\n    }\n    var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n    if (ch >= lineObj.text.length) {\n      ch = lineObj.text.length;\n      sticky = \"before\";\n    } else if (ch <= 0) {\n      ch = 0;\n      sticky = \"after\";\n    }\n    if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n    function getBidi(ch, partPos, invert) {\n      var part = order[partPos], right = part.level == 1;\n      return get(invert ? ch - 1 : ch, right != invert)\n    }\n    var partPos = getBidiPartAt(order, ch, sticky);\n    var other = bidiOther;\n    var val = getBidi(ch, partPos, sticky == \"before\");\n    if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n    return val\n  }\n\n  // Used to cheaply estimate the coordinates for a position. Used for\n  // intermediate scroll updates.\n  function estimateCoords(cm, pos) {\n    var left = 0;\n    pos = clipPos(cm.doc, pos);\n    if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n    var lineObj = getLine(cm.doc, pos.line);\n    var top = heightAtLine(lineObj) + paddingTop(cm.display);\n    return {left: left, right: left, top: top, bottom: top + lineObj.height}\n  }\n\n  // Positions returned by coordsChar contain some extra information.\n  // xRel is the relative x position of the input coordinates compared\n  // to the found position (so xRel > 0 means the coordinates are to\n  // the right of the character position, for example). When outside\n  // is true, that means the coordinates lie outside the line's\n  // vertical range.\n  function PosWithInfo(line, ch, sticky, outside, xRel) {\n    var pos = Pos(line, ch, sticky);\n    pos.xRel = xRel;\n    if (outside) { pos.outside = outside; }\n    return pos\n  }\n\n  // Compute the character position closest to the given coordinates.\n  // Input must be lineSpace-local (\"div\" coordinate system).\n  function coordsChar(cm, x, y) {\n    var doc = cm.doc;\n    y += cm.display.viewOffset;\n    if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n    if (lineN > last)\n      { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n    if (x < 0) { x = 0; }\n\n    var lineObj = getLine(doc, lineN);\n    for (;;) {\n      var found = coordsCharInner(cm, lineObj, lineN, x, y);\n      var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n      if (!collapsed) { return found }\n      var rangeEnd = collapsed.find(1);\n      if (rangeEnd.line == lineN) { return rangeEnd }\n      lineObj = getLine(doc, lineN = rangeEnd.line);\n    }\n  }\n\n  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n    y -= widgetTopHeight(lineObj);\n    var end = lineObj.text.length;\n    var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n    end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n    return {begin: begin, end: end}\n  }\n\n  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n    if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n    var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n    return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n  }\n\n  // Returns true if the given side of a box is after the given\n  // coordinates, in top-to-bottom, left-to-right order.\n  function boxIsAfter(box, x, y, left) {\n    return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n  }\n\n  function coordsCharInner(cm, lineObj, lineNo, x, y) {\n    // Move y into line-local coordinate space\n    y -= heightAtLine(lineObj);\n    var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n    // When directly calling `measureCharPrepared`, we have to adjust\n    // for the widgets at this line.\n    var widgetHeight = widgetTopHeight(lineObj);\n    var begin = 0, end = lineObj.text.length, ltr = true;\n\n    var order = getOrder(lineObj, cm.doc.direction);\n    // If the line isn't plain left-to-right text, first figure out\n    // which bidi section the coordinates fall into.\n    if (order) {\n      var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n                   (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n      ltr = part.level != 1;\n      // The awkward -1 offsets are needed because findFirst (called\n      // on these below) will treat its first bound as inclusive,\n      // second as exclusive, but we want to actually address the\n      // characters in the part's range\n      begin = ltr ? part.from : part.to - 1;\n      end = ltr ? part.to : part.from - 1;\n    }\n\n    // A binary search to find the first character whose bounding box\n    // starts after the coordinates. If we run across any whose box wrap\n    // the coordinates, store that.\n    var chAround = null, boxAround = null;\n    var ch = findFirst(function (ch) {\n      var box = measureCharPrepared(cm, preparedMeasure, ch);\n      box.top += widgetHeight; box.bottom += widgetHeight;\n      if (!boxIsAfter(box, x, y, false)) { return false }\n      if (box.top <= y && box.left <= x) {\n        chAround = ch;\n        boxAround = box;\n      }\n      return true\n    }, begin, end);\n\n    var baseX, sticky, outside = false;\n    // If a box around the coordinates was found, use that\n    if (boxAround) {\n      // Distinguish coordinates nearer to the left or right side of the box\n      var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n      ch = chAround + (atStart ? 0 : 1);\n      sticky = atStart ? \"after\" : \"before\";\n      baseX = atLeft ? boxAround.left : boxAround.right;\n    } else {\n      // (Adjust for extended bound, if necessary.)\n      if (!ltr && (ch == end || ch == begin)) { ch++; }\n      // To determine which side to associate with, get the box to the\n      // left of the character and compare it's vertical position to the\n      // coordinates\n      sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n        (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n        \"after\" : \"before\";\n      // Now get accurate coordinates for this place, in order to get a\n      // base X position\n      var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n      baseX = coords.left;\n      outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n    }\n\n    ch = skipExtendingChars(lineObj.text, ch, 1);\n    return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n  }\n\n  function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n    // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n    // situation, we can take this ordering to correspond to the visual\n    // ordering. This finds the first part whose end is after the given\n    // coordinates.\n    var index = findFirst(function (i) {\n      var part = order[i], ltr = part.level != 1;\n      return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n                                     \"line\", lineObj, preparedMeasure), x, y, true)\n    }, 0, order.length - 1);\n    var part = order[index];\n    // If this isn't the first part, the part's start is also after\n    // the coordinates, and the coordinates aren't on the same line as\n    // that start, move one part back.\n    if (index > 0) {\n      var ltr = part.level != 1;\n      var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n                               \"line\", lineObj, preparedMeasure);\n      if (boxIsAfter(start, x, y, true) && start.top > y)\n        { part = order[index - 1]; }\n    }\n    return part\n  }\n\n  function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n    // In a wrapped line, rtl text on wrapping boundaries can do things\n    // that don't correspond to the ordering in our `order` array at\n    // all, so a binary search doesn't work, and we want to return a\n    // part that only spans one line so that the binary search in\n    // coordsCharInner is safe. As such, we first find the extent of the\n    // wrapped line, and then do a flat search in which we discard any\n    // spans that aren't on the line.\n    var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n    var begin = ref.begin;\n    var end = ref.end;\n    if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n    var part = null, closestDist = null;\n    for (var i = 0; i < order.length; i++) {\n      var p = order[i];\n      if (p.from >= end || p.to <= begin) { continue }\n      var ltr = p.level != 1;\n      var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n      // Weigh against spans ending before this, so that they are only\n      // picked if nothing ends after\n      var dist = endX < x ? x - endX + 1e9 : endX - x;\n      if (!part || closestDist > dist) {\n        part = p;\n        closestDist = dist;\n      }\n    }\n    if (!part) { part = order[order.length - 1]; }\n    // Clip the part to the wrapped line.\n    if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n    if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n    return part\n  }\n\n  var measureText;\n  // Compute the default text height.\n  function textHeight(display) {\n    if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n    if (measureText == null) {\n      measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n      // Measure a bunch of lines, for browsers that compute\n      // fractional heights.\n      for (var i = 0; i < 49; ++i) {\n        measureText.appendChild(document.createTextNode(\"x\"));\n        measureText.appendChild(elt(\"br\"));\n      }\n      measureText.appendChild(document.createTextNode(\"x\"));\n    }\n    removeChildrenAndAdd(display.measure, measureText);\n    var height = measureText.offsetHeight / 50;\n    if (height > 3) { display.cachedTextHeight = height; }\n    removeChildren(display.measure);\n    return height || 1\n  }\n\n  // Compute the default character width.\n  function charWidth(display) {\n    if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n    var anchor = elt(\"span\", \"xxxxxxxxxx\");\n    var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n    removeChildrenAndAdd(display.measure, pre);\n    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n    if (width > 2) { display.cachedCharWidth = width; }\n    return width || 10\n  }\n\n  // Do a bulk-read of the DOM positions and sizes needed to draw the\n  // view, so that we don't interleave reading and writing to the DOM.\n  function getDimensions(cm) {\n    var d = cm.display, left = {}, width = {};\n    var gutterLeft = d.gutters.clientLeft;\n    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n      var id = cm.display.gutterSpecs[i].className;\n      left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n      width[id] = n.clientWidth;\n    }\n    return {fixedPos: compensateForHScroll(d),\n            gutterTotalWidth: d.gutters.offsetWidth,\n            gutterLeft: left,\n            gutterWidth: width,\n            wrapperWidth: d.wrapper.clientWidth}\n  }\n\n  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n  // but using getBoundingClientRect to get a sub-pixel-accurate\n  // result.\n  function compensateForHScroll(display) {\n    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n  }\n\n  // Returns a function that estimates the height of a line, to use as\n  // first approximation until the line becomes visible (and is thus\n  // properly measurable).\n  function estimateHeight(cm) {\n    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n    return function (line) {\n      if (lineIsHidden(cm.doc, line)) { return 0 }\n\n      var widgetsHeight = 0;\n      if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n        if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n      } }\n\n      if (wrapping)\n        { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n      else\n        { return widgetsHeight + th }\n    }\n  }\n\n  function estimateLineHeights(cm) {\n    var doc = cm.doc, est = estimateHeight(cm);\n    doc.iter(function (line) {\n      var estHeight = est(line);\n      if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n    });\n  }\n\n  // Given a mouse event, find the corresponding position. If liberal\n  // is false, it checks whether a gutter or scrollbar was clicked,\n  // and returns null if it was. forRect is used by rectangular\n  // selections, and tries to estimate a character position even for\n  // coordinates beyond the right of the text.\n  function posFromMouse(cm, e, liberal, forRect) {\n    var display = cm.display;\n    if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n    var x, y, space = display.lineSpace.getBoundingClientRect();\n    // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n    try { x = e.clientX - space.left; y = e.clientY - space.top; }\n    catch (e$1) { return null }\n    var coords = coordsChar(cm, x, y), line;\n    if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n    }\n    return coords\n  }\n\n  // Find the view element corresponding to a given line. Return null\n  // when the line isn't visible.\n  function findViewIndex(cm, n) {\n    if (n >= cm.display.viewTo) { return null }\n    n -= cm.display.viewFrom;\n    if (n < 0) { return null }\n    var view = cm.display.view;\n    for (var i = 0; i < view.length; i++) {\n      n -= view[i].size;\n      if (n < 0) { return i }\n    }\n  }\n\n  // Updates the display.view data structure for a given change to the\n  // document. From and to are in pre-change coordinates. Lendiff is\n  // the amount of lines added or subtracted by the change. This is\n  // used for changes that span multiple lines, or change the way\n  // lines are divided into visual lines. regLineChange (below)\n  // registers single-line changes.\n  function regChange(cm, from, to, lendiff) {\n    if (from == null) { from = cm.doc.first; }\n    if (to == null) { to = cm.doc.first + cm.doc.size; }\n    if (!lendiff) { lendiff = 0; }\n\n    var display = cm.display;\n    if (lendiff && to < display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers > from))\n      { display.updateLineNumbers = from; }\n\n    cm.curOp.viewChanged = true;\n\n    if (from >= display.viewTo) { // Change after\n      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n        { resetView(cm); }\n    } else if (to <= display.viewFrom) { // Change before\n      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n        resetView(cm);\n      } else {\n        display.viewFrom += lendiff;\n        display.viewTo += lendiff;\n      }\n    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n      resetView(cm);\n    } else if (from <= display.viewFrom) { // Top overlap\n      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cut) {\n        display.view = display.view.slice(cut.index);\n        display.viewFrom = cut.lineN;\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    } else if (to >= display.viewTo) { // Bottom overlap\n      var cut$1 = viewCuttingPoint(cm, from, from, -1);\n      if (cut$1) {\n        display.view = display.view.slice(0, cut$1.index);\n        display.viewTo = cut$1.lineN;\n      } else {\n        resetView(cm);\n      }\n    } else { // Gap in the middle\n      var cutTop = viewCuttingPoint(cm, from, from, -1);\n      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cutTop && cutBot) {\n        display.view = display.view.slice(0, cutTop.index)\n          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n          .concat(display.view.slice(cutBot.index));\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    }\n\n    var ext = display.externalMeasured;\n    if (ext) {\n      if (to < ext.lineN)\n        { ext.lineN += lendiff; }\n      else if (from < ext.lineN + ext.size)\n        { display.externalMeasured = null; }\n    }\n  }\n\n  // Register a change to a single line. Type must be one of \"text\",\n  // \"gutter\", \"class\", \"widget\"\n  function regLineChange(cm, line, type) {\n    cm.curOp.viewChanged = true;\n    var display = cm.display, ext = cm.display.externalMeasured;\n    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n      { display.externalMeasured = null; }\n\n    if (line < display.viewFrom || line >= display.viewTo) { return }\n    var lineView = display.view[findViewIndex(cm, line)];\n    if (lineView.node == null) { return }\n    var arr = lineView.changes || (lineView.changes = []);\n    if (indexOf(arr, type) == -1) { arr.push(type); }\n  }\n\n  // Clear the view.\n  function resetView(cm) {\n    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n    cm.display.view = [];\n    cm.display.viewOffset = 0;\n  }\n\n  function viewCuttingPoint(cm, oldN, newN, dir) {\n    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n      { return {index: index, lineN: newN} }\n    var n = cm.display.viewFrom;\n    for (var i = 0; i < index; i++)\n      { n += view[i].size; }\n    if (n != oldN) {\n      if (dir > 0) {\n        if (index == view.length - 1) { return null }\n        diff = (n + view[index].size) - oldN;\n        index++;\n      } else {\n        diff = n - oldN;\n      }\n      oldN += diff; newN += diff;\n    }\n    while (visualLineNo(cm.doc, newN) != newN) {\n      if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n      index += dir;\n    }\n    return {index: index, lineN: newN}\n  }\n\n  // Force the view to cover a given range, adding empty view element\n  // or clipping off existing ones as needed.\n  function adjustView(cm, from, to) {\n    var display = cm.display, view = display.view;\n    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n      display.view = buildViewArray(cm, from, to);\n      display.viewFrom = from;\n    } else {\n      if (display.viewFrom > from)\n        { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n      else if (display.viewFrom < from)\n        { display.view = display.view.slice(findViewIndex(cm, from)); }\n      display.viewFrom = from;\n      if (display.viewTo < to)\n        { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n      else if (display.viewTo > to)\n        { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n    }\n    display.viewTo = to;\n  }\n\n  // Count the number of lines in the view whose DOM representation is\n  // out of date (or nonexistent).\n  function countDirtyView(cm) {\n    var view = cm.display.view, dirty = 0;\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n    }\n    return dirty\n  }\n\n  function updateSelection(cm) {\n    cm.display.input.showSelection(cm.display.input.prepareSelection());\n  }\n\n  function prepareSelection(cm, primary) {\n    if ( primary === void 0 ) primary = true;\n\n    var doc = cm.doc, result = {};\n    var curFragment = result.cursors = document.createDocumentFragment();\n    var selFragment = result.selection = document.createDocumentFragment();\n\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      if (!primary && i == doc.sel.primIndex) { continue }\n      var range = doc.sel.ranges[i];\n      if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n      var collapsed = range.empty();\n      if (collapsed || cm.options.showCursorWhenSelecting)\n        { drawSelectionCursor(cm, range.head, curFragment); }\n      if (!collapsed)\n        { drawSelectionRange(cm, range, selFragment); }\n    }\n    return result\n  }\n\n  // Draws a cursor for the given range\n  function drawSelectionCursor(cm, head, output) {\n    var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n    var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n    cursor.style.left = pos.left + \"px\";\n    cursor.style.top = pos.top + \"px\";\n    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n    if (pos.other) {\n      // Secondary cursor, shown when on a 'jump' in bi-directional text\n      var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n      otherCursor.style.display = \"\";\n      otherCursor.style.left = pos.other.left + \"px\";\n      otherCursor.style.top = pos.other.top + \"px\";\n      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n    }\n  }\n\n  function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n  // Draws the given range as a highlighted selection\n  function drawSelectionRange(cm, range, output) {\n    var display = cm.display, doc = cm.doc;\n    var fragment = document.createDocumentFragment();\n    var padding = paddingH(cm.display), leftSide = padding.left;\n    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n    var docLTR = doc.direction == \"ltr\";\n\n    function add(left, top, width, bottom) {\n      if (top < 0) { top = 0; }\n      top = Math.round(top);\n      bottom = Math.round(bottom);\n      fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n                             top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n                             height: \" + (bottom - top) + \"px\")));\n    }\n\n    function drawForLine(line, fromArg, toArg) {\n      var lineObj = getLine(doc, line);\n      var lineLen = lineObj.text.length;\n      var start, end;\n      function coords(ch, bias) {\n        return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n      }\n\n      function wrapX(pos, dir, side) {\n        var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n        var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n        var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n        return coords(ch, prop)[prop]\n      }\n\n      var order = getOrder(lineObj, doc.direction);\n      iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n        var ltr = dir == \"ltr\";\n        var fromPos = coords(from, ltr ? \"left\" : \"right\");\n        var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n        var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n        var first = i == 0, last = !order || i == order.length - 1;\n        if (toPos.top - fromPos.top <= 3) { // Single line\n          var openLeft = (docLTR ? openStart : openEnd) && first;\n          var openRight = (docLTR ? openEnd : openStart) && last;\n          var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n          var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n          add(left, fromPos.top, right - left, fromPos.bottom);\n        } else { // Multiple lines\n          var topLeft, topRight, botLeft, botRight;\n          if (ltr) {\n            topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n            topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n            botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n            botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n          } else {\n            topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n            topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n            botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n            botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n          }\n          add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n          if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n          add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n        }\n\n        if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n        if (cmpCoords(toPos, start) < 0) { start = toPos; }\n        if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n        if (cmpCoords(toPos, end) < 0) { end = toPos; }\n      });\n      return {start: start, end: end}\n    }\n\n    var sFrom = range.from(), sTo = range.to();\n    if (sFrom.line == sTo.line) {\n      drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n    } else {\n      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n      var singleVLine = visualLine(fromLine) == visualLine(toLine);\n      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n      if (singleVLine) {\n        if (leftEnd.top < rightStart.top - 2) {\n          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n        } else {\n          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n        }\n      }\n      if (leftEnd.bottom < rightStart.top)\n        { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n    }\n\n    output.appendChild(fragment);\n  }\n\n  // Cursor-blinking\n  function restartBlink(cm) {\n    if (!cm.state.focused) { return }\n    var display = cm.display;\n    clearInterval(display.blinker);\n    var on = true;\n    display.cursorDiv.style.visibility = \"\";\n    if (cm.options.cursorBlinkRate > 0)\n      { display.blinker = setInterval(function () {\n        if (!cm.hasFocus()) { onBlur(cm); }\n        display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n      }, cm.options.cursorBlinkRate); }\n    else if (cm.options.cursorBlinkRate < 0)\n      { display.cursorDiv.style.visibility = \"hidden\"; }\n  }\n\n  function ensureFocus(cm) {\n    if (!cm.hasFocus()) {\n      cm.display.input.focus();\n      if (!cm.state.focused) { onFocus(cm); }\n    }\n  }\n\n  function delayBlurEvent(cm) {\n    cm.state.delayingBlurEvent = true;\n    setTimeout(function () { if (cm.state.delayingBlurEvent) {\n      cm.state.delayingBlurEvent = false;\n      if (cm.state.focused) { onBlur(cm); }\n    } }, 100);\n  }\n\n  function onFocus(cm, e) {\n    if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n    if (cm.options.readOnly == \"nocursor\") { return }\n    if (!cm.state.focused) {\n      signal(cm, \"focus\", cm, e);\n      cm.state.focused = true;\n      addClass(cm.display.wrapper, \"CodeMirror-focused\");\n      // This test prevents this from firing when a context\n      // menu is closed (since the input reset would kill the\n      // select-all detection hack)\n      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n        cm.display.input.reset();\n        if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n      }\n      cm.display.input.receivedFocus();\n    }\n    restartBlink(cm);\n  }\n  function onBlur(cm, e) {\n    if (cm.state.delayingBlurEvent) { return }\n\n    if (cm.state.focused) {\n      signal(cm, \"blur\", cm, e);\n      cm.state.focused = false;\n      rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n    }\n    clearInterval(cm.display.blinker);\n    setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n  }\n\n  // Read the actual heights of the rendered lines, and update their\n  // stored heights to match.\n  function updateHeightsInViewport(cm) {\n    var display = cm.display;\n    var prevBottom = display.lineDiv.offsetTop;\n    for (var i = 0; i < display.view.length; i++) {\n      var cur = display.view[i], wrapping = cm.options.lineWrapping;\n      var height = (void 0), width = 0;\n      if (cur.hidden) { continue }\n      if (ie && ie_version < 8) {\n        var bot = cur.node.offsetTop + cur.node.offsetHeight;\n        height = bot - prevBottom;\n        prevBottom = bot;\n      } else {\n        var box = cur.node.getBoundingClientRect();\n        height = box.bottom - box.top;\n        // Check that lines don't extend past the right of the current\n        // editor width\n        if (!wrapping && cur.text.firstChild)\n          { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n      }\n      var diff = cur.line.height - height;\n      if (diff > .005 || diff < -.005) {\n        updateLineHeight(cur.line, height);\n        updateWidgetHeight(cur.line);\n        if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n          { updateWidgetHeight(cur.rest[j]); } }\n      }\n      if (width > cm.display.sizerWidth) {\n        var chWidth = Math.ceil(width / charWidth(cm.display));\n        if (chWidth > cm.display.maxLineLength) {\n          cm.display.maxLineLength = chWidth;\n          cm.display.maxLine = cur.line;\n          cm.display.maxLineChanged = true;\n        }\n      }\n    }\n  }\n\n  // Read and store the height of line widgets associated with the\n  // given line.\n  function updateWidgetHeight(line) {\n    if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n      var w = line.widgets[i], parent = w.node.parentNode;\n      if (parent) { w.height = parent.offsetHeight; }\n    } }\n  }\n\n  // Compute the lines that are visible in a given viewport (defaults\n  // the the current scroll position). viewport may contain top,\n  // height, and ensure (see op.scrollToPos) properties.\n  function visibleLines(display, doc, viewport) {\n    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n    top = Math.floor(top - paddingTop(display));\n    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n    // forces those lines into the viewport (if possible).\n    if (viewport && viewport.ensure) {\n      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n      if (ensureFrom < from) {\n        from = ensureFrom;\n        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n        to = ensureTo;\n      }\n    }\n    return {from: from, to: Math.max(to, from + 1)}\n  }\n\n  // SCROLLING THINGS INTO VIEW\n\n  // If an editor sits on the top or bottom of the window, partially\n  // scrolled out of view, this ensures that the cursor is visible.\n  function maybeScrollWindow(cm, rect) {\n    if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n    if (rect.top + box.top < 0) { doScroll = true; }\n    else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n    if (doScroll != null && !phantom) {\n      var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n                         top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n                         height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n                         left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n      cm.display.lineSpace.appendChild(scrollNode);\n      scrollNode.scrollIntoView(doScroll);\n      cm.display.lineSpace.removeChild(scrollNode);\n    }\n  }\n\n  // Scroll a given position into view (immediately), verifying that\n  // it actually became visible (as line heights are accurately\n  // measured, the position of something may 'drift' during drawing).\n  function scrollPosIntoView(cm, pos, end, margin) {\n    if (margin == null) { margin = 0; }\n    var rect;\n    if (!cm.options.lineWrapping && pos == end) {\n      // Set pos and end to the cursor positions around the character pos sticks to\n      // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n      // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n      pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n      end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n    }\n    for (var limit = 0; limit < 5; limit++) {\n      var changed = false;\n      var coords = cursorCoords(cm, pos);\n      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n      rect = {left: Math.min(coords.left, endCoords.left),\n              top: Math.min(coords.top, endCoords.top) - margin,\n              right: Math.max(coords.left, endCoords.left),\n              bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n      var scrollPos = calculateScrollPos(cm, rect);\n      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n      if (scrollPos.scrollTop != null) {\n        updateScrollTop(cm, scrollPos.scrollTop);\n        if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n      }\n      if (scrollPos.scrollLeft != null) {\n        setScrollLeft(cm, scrollPos.scrollLeft);\n        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n      }\n      if (!changed) { break }\n    }\n    return rect\n  }\n\n  // Scroll a given set of coordinates into view (immediately).\n  function scrollIntoView(cm, rect) {\n    var scrollPos = calculateScrollPos(cm, rect);\n    if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n    if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n  }\n\n  // Calculate a new scroll position needed to scroll the given\n  // rectangle into view. Returns an object with scrollTop and\n  // scrollLeft properties. When these are undefined, the\n  // vertical/horizontal position does not need to be adjusted.\n  function calculateScrollPos(cm, rect) {\n    var display = cm.display, snapMargin = textHeight(cm.display);\n    if (rect.top < 0) { rect.top = 0; }\n    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n    var screen = displayHeight(cm), result = {};\n    if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n    var docBottom = cm.doc.height + paddingVert(display);\n    var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n    if (rect.top < screentop) {\n      result.scrollTop = atTop ? 0 : rect.top;\n    } else if (rect.bottom > screentop + screen) {\n      var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n      if (newTop != screentop) { result.scrollTop = newTop; }\n    }\n\n    var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n    var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n    var tooWide = rect.right - rect.left > screenw;\n    if (tooWide) { rect.right = rect.left + screenw; }\n    if (rect.left < 10)\n      { result.scrollLeft = 0; }\n    else if (rect.left < screenleft)\n      { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n    else if (rect.right > screenw + screenleft - 3)\n      { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n    return result\n  }\n\n  // Store a relative adjustment to the scroll position in the current\n  // operation (to be applied when the operation finishes).\n  function addToScrollTop(cm, top) {\n    if (top == null) { return }\n    resolveScrollToPos(cm);\n    cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n  }\n\n  // Make sure that at the end of the operation the current cursor is\n  // shown.\n  function ensureCursorVisible(cm) {\n    resolveScrollToPos(cm);\n    var cur = cm.getCursor();\n    cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n  }\n\n  function scrollToCoords(cm, x, y) {\n    if (x != null || y != null) { resolveScrollToPos(cm); }\n    if (x != null) { cm.curOp.scrollLeft = x; }\n    if (y != null) { cm.curOp.scrollTop = y; }\n  }\n\n  function scrollToRange(cm, range) {\n    resolveScrollToPos(cm);\n    cm.curOp.scrollToPos = range;\n  }\n\n  // When an operation has its scrollToPos property set, and another\n  // scroll action is applied before the end of the operation, this\n  // 'simulates' scrolling that position into view in a cheap way, so\n  // that the effect of intermediate scroll commands is not ignored.\n  function resolveScrollToPos(cm) {\n    var range = cm.curOp.scrollToPos;\n    if (range) {\n      cm.curOp.scrollToPos = null;\n      var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n      scrollToCoordsRange(cm, from, to, range.margin);\n    }\n  }\n\n  function scrollToCoordsRange(cm, from, to, margin) {\n    var sPos = calculateScrollPos(cm, {\n      left: Math.min(from.left, to.left),\n      top: Math.min(from.top, to.top) - margin,\n      right: Math.max(from.right, to.right),\n      bottom: Math.max(from.bottom, to.bottom) + margin\n    });\n    scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n  }\n\n  // Sync the scrollable area and scrollbars, ensure the viewport\n  // covers the visible area.\n  function updateScrollTop(cm, val) {\n    if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n    if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n    setScrollTop(cm, val, true);\n    if (gecko) { updateDisplaySimple(cm); }\n    startWorker(cm, 100);\n  }\n\n  function setScrollTop(cm, val, forceScroll) {\n    val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n    if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n    cm.doc.scrollTop = val;\n    cm.display.scrollbars.setScrollTop(val);\n    if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n  }\n\n  // Sync scroller and scrollbar, ensure the gutter elements are\n  // aligned.\n  function setScrollLeft(cm, val, isScroller, forceScroll) {\n    val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n    if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n    cm.doc.scrollLeft = val;\n    alignHorizontally(cm);\n    if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n    cm.display.scrollbars.setScrollLeft(val);\n  }\n\n  // SCROLLBARS\n\n  // Prepare DOM reads needed to update the scrollbars. Done in one\n  // shot to minimize update/measure roundtrips.\n  function measureForScrollbars(cm) {\n    var d = cm.display, gutterW = d.gutters.offsetWidth;\n    var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n    return {\n      clientHeight: d.scroller.clientHeight,\n      viewHeight: d.wrapper.clientHeight,\n      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n      viewWidth: d.wrapper.clientWidth,\n      barLeft: cm.options.fixedGutter ? gutterW : 0,\n      docHeight: docH,\n      scrollHeight: docH + scrollGap(cm) + d.barHeight,\n      nativeBarWidth: d.nativeBarWidth,\n      gutterWidth: gutterW\n    }\n  }\n\n  var NativeScrollbars = function(place, scroll, cm) {\n    this.cm = cm;\n    var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n    var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n    vert.tabIndex = horiz.tabIndex = -1;\n    place(vert); place(horiz);\n\n    on(vert, \"scroll\", function () {\n      if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n    });\n    on(horiz, \"scroll\", function () {\n      if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n    });\n\n    this.checkedZeroWidth = false;\n    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n    if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n  };\n\n  NativeScrollbars.prototype.update = function (measure) {\n    var needsH = measure.scrollWidth > measure.clientWidth + 1;\n    var needsV = measure.scrollHeight > measure.clientHeight + 1;\n    var sWidth = measure.nativeBarWidth;\n\n    if (needsV) {\n      this.vert.style.display = \"block\";\n      this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n      var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n      // A bug in IE8 can cause this value to be negative, so guard it.\n      this.vert.firstChild.style.height =\n        Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n    } else {\n      this.vert.style.display = \"\";\n      this.vert.firstChild.style.height = \"0\";\n    }\n\n    if (needsH) {\n      this.horiz.style.display = \"block\";\n      this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n      this.horiz.style.left = measure.barLeft + \"px\";\n      var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n      this.horiz.firstChild.style.width =\n        Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n    } else {\n      this.horiz.style.display = \"\";\n      this.horiz.firstChild.style.width = \"0\";\n    }\n\n    if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n      if (sWidth == 0) { this.zeroWidthHack(); }\n      this.checkedZeroWidth = true;\n    }\n\n    return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n  };\n\n  NativeScrollbars.prototype.setScrollLeft = function (pos) {\n    if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n    if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n  };\n\n  NativeScrollbars.prototype.setScrollTop = function (pos) {\n    if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n    if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n  };\n\n  NativeScrollbars.prototype.zeroWidthHack = function () {\n    var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n    this.horiz.style.height = this.vert.style.width = w;\n    this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n    this.disableHoriz = new Delayed;\n    this.disableVert = new Delayed;\n  };\n\n  NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n    bar.style.pointerEvents = \"auto\";\n    function maybeDisable() {\n      // To find out whether the scrollbar is still visible, we\n      // check whether the element under the pixel in the bottom\n      // right corner of the scrollbar box is the scrollbar box\n      // itself (when the bar is still visible) or its filler child\n      // (when the bar is hidden). If it is still visible, we keep\n      // it enabled, if it's hidden, we disable pointer events.\n      var box = bar.getBoundingClientRect();\n      var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n          : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n      if (elt != bar) { bar.style.pointerEvents = \"none\"; }\n      else { delay.set(1000, maybeDisable); }\n    }\n    delay.set(1000, maybeDisable);\n  };\n\n  NativeScrollbars.prototype.clear = function () {\n    var parent = this.horiz.parentNode;\n    parent.removeChild(this.horiz);\n    parent.removeChild(this.vert);\n  };\n\n  var NullScrollbars = function () {};\n\n  NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n  NullScrollbars.prototype.setScrollLeft = function () {};\n  NullScrollbars.prototype.setScrollTop = function () {};\n  NullScrollbars.prototype.clear = function () {};\n\n  function updateScrollbars(cm, measure) {\n    if (!measure) { measure = measureForScrollbars(cm); }\n    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n    updateScrollbarsInner(cm, measure);\n    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n        { updateHeightsInViewport(cm); }\n      updateScrollbarsInner(cm, measureForScrollbars(cm));\n      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n    }\n  }\n\n  // Re-synchronize the fake scrollbars with the actual size of the\n  // content.\n  function updateScrollbarsInner(cm, measure) {\n    var d = cm.display;\n    var sizes = d.scrollbars.update(measure);\n\n    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n    d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n    if (sizes.right && sizes.bottom) {\n      d.scrollbarFiller.style.display = \"block\";\n      d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n      d.scrollbarFiller.style.width = sizes.right + \"px\";\n    } else { d.scrollbarFiller.style.display = \"\"; }\n    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n      d.gutterFiller.style.display = \"block\";\n      d.gutterFiller.style.height = sizes.bottom + \"px\";\n      d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n    } else { d.gutterFiller.style.display = \"\"; }\n  }\n\n  var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n  function initScrollbars(cm) {\n    if (cm.display.scrollbars) {\n      cm.display.scrollbars.clear();\n      if (cm.display.scrollbars.addClass)\n        { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n    }\n\n    cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n      // Prevent clicks in the scrollbars from killing focus\n      on(node, \"mousedown\", function () {\n        if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n      });\n      node.setAttribute(\"cm-not-content\", \"true\");\n    }, function (pos, axis) {\n      if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n      else { updateScrollTop(cm, pos); }\n    }, cm);\n    if (cm.display.scrollbars.addClass)\n      { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n  }\n\n  // Operations are used to wrap a series of changes to the editor\n  // state in such a way that each change won't have to update the\n  // cursor and display (which would be awkward, slow, and\n  // error-prone). Instead, display updates are batched and then all\n  // combined and executed at once.\n\n  var nextOpId = 0;\n  // Start a new operation.\n  function startOperation(cm) {\n    cm.curOp = {\n      cm: cm,\n      viewChanged: false,      // Flag that indicates that lines might need to be redrawn\n      startHeight: cm.doc.height, // Used to detect need to update scrollbar\n      forceUpdate: false,      // Used to force a redraw\n      updateInput: 0,       // Whether to reset the input textarea\n      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)\n      changeObjs: null,        // Accumulated changes, for firing change events\n      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n      selectionChanged: false, // Whether the selection needs to be redrawn\n      updateMaxLine: false,    // Set when the widest line needs to be determined anew\n      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n      scrollToPos: null,       // Used to scroll to a specific position\n      focus: false,\n      id: ++nextOpId           // Unique ID\n    };\n    pushOperation(cm.curOp);\n  }\n\n  // Finish an operation, updating the display and signalling delayed events\n  function endOperation(cm) {\n    var op = cm.curOp;\n    if (op) { finishOperation(op, function (group) {\n      for (var i = 0; i < group.ops.length; i++)\n        { group.ops[i].cm.curOp = null; }\n      endOperations(group);\n    }); }\n  }\n\n  // The DOM updates done when an operation finishes are batched so\n  // that the minimum number of relayouts are required.\n  function endOperations(group) {\n    var ops = group.ops;\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      { endOperation_R1(ops[i]); }\n    for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n      { endOperation_W1(ops[i$1]); }\n    for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n      { endOperation_R2(ops[i$2]); }\n    for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n      { endOperation_W2(ops[i$3]); }\n    for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n      { endOperation_finish(ops[i$4]); }\n  }\n\n  function endOperation_R1(op) {\n    var cm = op.cm, display = cm.display;\n    maybeClipScrollbars(cm);\n    if (op.updateMaxLine) { findMaxLine(cm); }\n\n    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n                         op.scrollToPos.to.line >= display.viewTo) ||\n      display.maxLineChanged && cm.options.lineWrapping;\n    op.update = op.mustUpdate &&\n      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n  }\n\n  function endOperation_W1(op) {\n    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n  }\n\n  function endOperation_R2(op) {\n    var cm = op.cm, display = cm.display;\n    if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n    op.barMeasure = measureForScrollbars(cm);\n\n    // If the max line changed since it was last measured, measure it,\n    // and ensure the document's width matches it.\n    // updateDisplay_W2 will use these properties to do the actual resizing\n    if (display.maxLineChanged && !cm.options.lineWrapping) {\n      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n      cm.display.sizerWidth = op.adjustWidthTo;\n      op.barMeasure.scrollWidth =\n        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n    }\n\n    if (op.updatedDisplay || op.selectionChanged)\n      { op.preparedSelection = display.input.prepareSelection(); }\n  }\n\n  function endOperation_W2(op) {\n    var cm = op.cm;\n\n    if (op.adjustWidthTo != null) {\n      cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n      if (op.maxScrollLeft < cm.doc.scrollLeft)\n        { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n      cm.display.maxLineChanged = false;\n    }\n\n    var takeFocus = op.focus && op.focus == activeElt();\n    if (op.preparedSelection)\n      { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n    if (op.updatedDisplay || op.startHeight != cm.doc.height)\n      { updateScrollbars(cm, op.barMeasure); }\n    if (op.updatedDisplay)\n      { setDocumentHeight(cm, op.barMeasure); }\n\n    if (op.selectionChanged) { restartBlink(cm); }\n\n    if (cm.state.focused && op.updateInput)\n      { cm.display.input.reset(op.typing); }\n    if (takeFocus) { ensureFocus(op.cm); }\n  }\n\n  function endOperation_finish(op) {\n    var cm = op.cm, display = cm.display, doc = cm.doc;\n\n    if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n    // Abort mouse wheel delta measurement, when scrolling explicitly\n    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n      { display.wheelStartX = display.wheelStartY = null; }\n\n    // Propagate the scroll position to the actual DOM scroller\n    if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n    if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n    // If we need to scroll a specific position into view, do so.\n    if (op.scrollToPos) {\n      var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n                                   clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n      maybeScrollWindow(cm, rect);\n    }\n\n    // Fire events for markers that are hidden/unidden by editing or\n    // undoing\n    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n    if (hidden) { for (var i = 0; i < hidden.length; ++i)\n      { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n    if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n      { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n    if (display.wrapper.offsetHeight)\n      { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n    // Fire change events, and delayed event handlers\n    if (op.changeObjs)\n      { signal(cm, \"changes\", cm, op.changeObjs); }\n    if (op.update)\n      { op.update.finish(); }\n  }\n\n  // Run the given function in an operation\n  function runInOp(cm, f) {\n    if (cm.curOp) { return f() }\n    startOperation(cm);\n    try { return f() }\n    finally { endOperation(cm); }\n  }\n  // Wraps a function in an operation. Returns the wrapped function.\n  function operation(cm, f) {\n    return function() {\n      if (cm.curOp) { return f.apply(cm, arguments) }\n      startOperation(cm);\n      try { return f.apply(cm, arguments) }\n      finally { endOperation(cm); }\n    }\n  }\n  // Used to add methods to editor and doc instances, wrapping them in\n  // operations.\n  function methodOp(f) {\n    return function() {\n      if (this.curOp) { return f.apply(this, arguments) }\n      startOperation(this);\n      try { return f.apply(this, arguments) }\n      finally { endOperation(this); }\n    }\n  }\n  function docMethodOp(f) {\n    return function() {\n      var cm = this.cm;\n      if (!cm || cm.curOp) { return f.apply(this, arguments) }\n      startOperation(cm);\n      try { return f.apply(this, arguments) }\n      finally { endOperation(cm); }\n    }\n  }\n\n  // HIGHLIGHT WORKER\n\n  function startWorker(cm, time) {\n    if (cm.doc.highlightFrontier < cm.display.viewTo)\n      { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n  }\n\n  function highlightWorker(cm) {\n    var doc = cm.doc;\n    if (doc.highlightFrontier >= cm.display.viewTo) { return }\n    var end = +new Date + cm.options.workTime;\n    var context = getContextBefore(cm, doc.highlightFrontier);\n    var changedLines = [];\n\n    doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n      if (context.line >= cm.display.viewFrom) { // Visible\n        var oldStyles = line.styles;\n        var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n        var highlighted = highlightLine(cm, line, context, true);\n        if (resetState) { context.state = resetState; }\n        line.styles = highlighted.styles;\n        var oldCls = line.styleClasses, newCls = highlighted.classes;\n        if (newCls) { line.styleClasses = newCls; }\n        else if (oldCls) { line.styleClasses = null; }\n        var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n        for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n        if (ischange) { changedLines.push(context.line); }\n        line.stateAfter = context.save();\n        context.nextLine();\n      } else {\n        if (line.text.length <= cm.options.maxHighlightLength)\n          { processLine(cm, line.text, context); }\n        line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n        context.nextLine();\n      }\n      if (+new Date > end) {\n        startWorker(cm, cm.options.workDelay);\n        return true\n      }\n    });\n    doc.highlightFrontier = context.line;\n    doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n    if (changedLines.length) { runInOp(cm, function () {\n      for (var i = 0; i < changedLines.length; i++)\n        { regLineChange(cm, changedLines[i], \"text\"); }\n    }); }\n  }\n\n  // DISPLAY DRAWING\n\n  var DisplayUpdate = function(cm, viewport, force) {\n    var display = cm.display;\n\n    this.viewport = viewport;\n    // Store some values that we'll need later (but don't want to force a relayout for)\n    this.visible = visibleLines(display, cm.doc, viewport);\n    this.editorIsHidden = !display.wrapper.offsetWidth;\n    this.wrapperHeight = display.wrapper.clientHeight;\n    this.wrapperWidth = display.wrapper.clientWidth;\n    this.oldDisplayWidth = displayWidth(cm);\n    this.force = force;\n    this.dims = getDimensions(cm);\n    this.events = [];\n  };\n\n  DisplayUpdate.prototype.signal = function (emitter, type) {\n    if (hasHandler(emitter, type))\n      { this.events.push(arguments); }\n  };\n  DisplayUpdate.prototype.finish = function () {\n    for (var i = 0; i < this.events.length; i++)\n      { signal.apply(null, this.events[i]); }\n  };\n\n  function maybeClipScrollbars(cm) {\n    var display = cm.display;\n    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n      display.heightForcer.style.height = scrollGap(cm) + \"px\";\n      display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n      display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n      display.scrollbarsClipped = true;\n    }\n  }\n\n  function selectionSnapshot(cm) {\n    if (cm.hasFocus()) { return null }\n    var active = activeElt();\n    if (!active || !contains(cm.display.lineDiv, active)) { return null }\n    var result = {activeElt: active};\n    if (window.getSelection) {\n      var sel = window.getSelection();\n      if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n        result.anchorNode = sel.anchorNode;\n        result.anchorOffset = sel.anchorOffset;\n        result.focusNode = sel.focusNode;\n        result.focusOffset = sel.focusOffset;\n      }\n    }\n    return result\n  }\n\n  function restoreSelection(snapshot) {\n    if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n    snapshot.activeElt.focus();\n    if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n        snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n      var sel = window.getSelection(), range = document.createRange();\n      range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n      range.collapse(false);\n      sel.removeAllRanges();\n      sel.addRange(range);\n      sel.extend(snapshot.focusNode, snapshot.focusOffset);\n    }\n  }\n\n  // Does the actual updating of the line display. Bails out\n  // (returning false) when there is nothing to be done and forced is\n  // false.\n  function updateDisplayIfNeeded(cm, update) {\n    var display = cm.display, doc = cm.doc;\n\n    if (update.editorIsHidden) {\n      resetView(cm);\n      return false\n    }\n\n    // Bail out if the visible area is already rendered and nothing changed.\n    if (!update.force &&\n        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n        display.renderedView == display.view && countDirtyView(cm) == 0)\n      { return false }\n\n    if (maybeUpdateLineNumberWidth(cm)) {\n      resetView(cm);\n      update.dims = getDimensions(cm);\n    }\n\n    // Compute a suitable new viewport (from & to)\n    var end = doc.first + doc.size;\n    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n    if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n    if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n    if (sawCollapsedSpans) {\n      from = visualLineNo(cm.doc, from);\n      to = visualLineEndNo(cm.doc, to);\n    }\n\n    var different = from != display.viewFrom || to != display.viewTo ||\n      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n    adjustView(cm, from, to);\n\n    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n    // Position the mover div to align with the current scroll position\n    cm.display.mover.style.top = display.viewOffset + \"px\";\n\n    var toUpdate = countDirtyView(cm);\n    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n      { return false }\n\n    // For big changes, we hide the enclosing element during the\n    // update, since that speeds up the operations on most browsers.\n    var selSnapshot = selectionSnapshot(cm);\n    if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n    patchDisplay(cm, display.updateLineNumbers, update.dims);\n    if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n    display.renderedView = display.view;\n    // There might have been a widget with a focused element that got\n    // hidden or updated, if so re-focus it.\n    restoreSelection(selSnapshot);\n\n    // Prevent selection and cursors from interfering with the scroll\n    // width and height.\n    removeChildren(display.cursorDiv);\n    removeChildren(display.selectionDiv);\n    display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n    if (different) {\n      display.lastWrapHeight = update.wrapperHeight;\n      display.lastWrapWidth = update.wrapperWidth;\n      startWorker(cm, 400);\n    }\n\n    display.updateLineNumbers = null;\n\n    return true\n  }\n\n  function postUpdateDisplay(cm, update) {\n    var viewport = update.viewport;\n\n    for (var first = true;; first = false) {\n      if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n        // Clip forced viewport to actual scrollable area.\n        if (viewport && viewport.top != null)\n          { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n        // Updated line heights might result in the drawn area not\n        // actually covering the viewport. Keep looping until it does.\n        update.visible = visibleLines(cm.display, cm.doc, viewport);\n        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n          { break }\n      } else if (first) {\n        update.visible = visibleLines(cm.display, cm.doc, viewport);\n      }\n      if (!updateDisplayIfNeeded(cm, update)) { break }\n      updateHeightsInViewport(cm);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      updateScrollbars(cm, barMeasure);\n      setDocumentHeight(cm, barMeasure);\n      update.force = false;\n    }\n\n    update.signal(cm, \"update\", cm);\n    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n      update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n    }\n  }\n\n  function updateDisplaySimple(cm, viewport) {\n    var update = new DisplayUpdate(cm, viewport);\n    if (updateDisplayIfNeeded(cm, update)) {\n      updateHeightsInViewport(cm);\n      postUpdateDisplay(cm, update);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      updateScrollbars(cm, barMeasure);\n      setDocumentHeight(cm, barMeasure);\n      update.finish();\n    }\n  }\n\n  // Sync the actual display DOM structure with display.view, removing\n  // nodes for lines that are no longer in view, and creating the ones\n  // that are not there yet, and updating the ones that are out of\n  // date.\n  function patchDisplay(cm, updateNumbersFrom, dims) {\n    var display = cm.display, lineNumbers = cm.options.lineNumbers;\n    var container = display.lineDiv, cur = container.firstChild;\n\n    function rm(node) {\n      var next = node.nextSibling;\n      // Works around a throw-scroll bug in OS X Webkit\n      if (webkit && mac && cm.display.currentWheelTarget == node)\n        { node.style.display = \"none\"; }\n      else\n        { node.parentNode.removeChild(node); }\n      return next\n    }\n\n    var view = display.view, lineN = display.viewFrom;\n    // Loop over the elements in the view, syncing cur (the DOM nodes\n    // in display.lineDiv) with the view as we go.\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n        var node = buildLineElement(cm, lineView, lineN, dims);\n        container.insertBefore(node, cur);\n      } else { // Already drawn\n        while (cur != lineView.node) { cur = rm(cur); }\n        var updateNumber = lineNumbers && updateNumbersFrom != null &&\n          updateNumbersFrom <= lineN && lineView.lineNumber;\n        if (lineView.changes) {\n          if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n          updateLineForChanges(cm, lineView, lineN, dims);\n        }\n        if (updateNumber) {\n          removeChildren(lineView.lineNumber);\n          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n        }\n        cur = lineView.node.nextSibling;\n      }\n      lineN += lineView.size;\n    }\n    while (cur) { cur = rm(cur); }\n  }\n\n  function updateGutterSpace(display) {\n    var width = display.gutters.offsetWidth;\n    display.sizer.style.marginLeft = width + \"px\";\n  }\n\n  function setDocumentHeight(cm, measure) {\n    cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n    cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n    cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n  }\n\n  // Re-align line numbers and gutter marks to compensate for\n  // horizontal scrolling.\n  function alignHorizontally(cm) {\n    var display = cm.display, view = display.view;\n    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n    var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n    for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n      if (cm.options.fixedGutter) {\n        if (view[i].gutter)\n          { view[i].gutter.style.left = left; }\n        if (view[i].gutterBackground)\n          { view[i].gutterBackground.style.left = left; }\n      }\n      var align = view[i].alignable;\n      if (align) { for (var j = 0; j < align.length; j++)\n        { align[j].style.left = left; } }\n    } }\n    if (cm.options.fixedGutter)\n      { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n  }\n\n  // Used to ensure that the line number gutter is still the right\n  // size for the current document size. Returns true when an update\n  // is needed.\n  function maybeUpdateLineNumberWidth(cm) {\n    if (!cm.options.lineNumbers) { return false }\n    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n    if (last.length != display.lineNumChars) {\n      var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n                                                 \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n      display.lineGutter.style.width = \"\";\n      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n      display.lineNumWidth = display.lineNumInnerWidth + padding;\n      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n      display.lineGutter.style.width = display.lineNumWidth + \"px\";\n      updateGutterSpace(cm.display);\n      return true\n    }\n    return false\n  }\n\n  function getGutters(gutters, lineNumbers) {\n    var result = [], sawLineNumbers = false;\n    for (var i = 0; i < gutters.length; i++) {\n      var name = gutters[i], style = null;\n      if (typeof name != \"string\") { style = name.style; name = name.className; }\n      if (name == \"CodeMirror-linenumbers\") {\n        if (!lineNumbers) { continue }\n        else { sawLineNumbers = true; }\n      }\n      result.push({className: name, style: style});\n    }\n    if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n    return result\n  }\n\n  // Rebuild the gutter elements, ensure the margin to the left of the\n  // code matches their width.\n  function renderGutters(display) {\n    var gutters = display.gutters, specs = display.gutterSpecs;\n    removeChildren(gutters);\n    display.lineGutter = null;\n    for (var i = 0; i < specs.length; ++i) {\n      var ref = specs[i];\n      var className = ref.className;\n      var style = ref.style;\n      var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n      if (style) { gElt.style.cssText = style; }\n      if (className == \"CodeMirror-linenumbers\") {\n        display.lineGutter = gElt;\n        gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n      }\n    }\n    gutters.style.display = specs.length ? \"\" : \"none\";\n    updateGutterSpace(display);\n  }\n\n  function updateGutters(cm) {\n    renderGutters(cm.display);\n    regChange(cm);\n    alignHorizontally(cm);\n  }\n\n  // The display handles the DOM integration, both for input reading\n  // and content drawing. It holds references to DOM nodes and\n  // display-related state.\n\n  function Display(place, doc, input, options) {\n    var d = this;\n    this.input = input;\n\n    // Covers bottom-right square when both scrollbars are present.\n    d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n    d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Covers bottom of gutter when coverGutterNextToScrollbar is on\n    // and h scrollbar is present.\n    d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n    d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Will contain the actual code, positioned to cover the viewport.\n    d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n    // Elements are added to these to represent selection and cursors.\n    d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n    d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n    // A visibility: hidden element used to find the size of things.\n    d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n    // When lines outside of the viewport are measured, they are drawn in this.\n    d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n    // Wraps everything that needs to exist inside the vertically-padded coordinate system\n    d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n                      null, \"position: relative; outline: none\");\n    var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n    // Moved around its parent to cover visible view.\n    d.mover = elt(\"div\", [lines], null, \"position: relative\");\n    // Set to the height of the document, allowing scrolling.\n    d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n    d.sizerWidth = null;\n    // Behavior of elts with overflow: auto and padding is\n    // inconsistent across browsers. This is used to ensure the\n    // scrollable area is big enough.\n    d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n    // Will contain the gutters, if any.\n    d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n    d.lineGutter = null;\n    // Actual scrollable element.\n    d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n    d.scroller.setAttribute(\"tabIndex\", \"-1\");\n    // The element in which the editor lives.\n    d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n    if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n    if (place) {\n      if (place.appendChild) { place.appendChild(d.wrapper); }\n      else { place(d.wrapper); }\n    }\n\n    // Current rendered range (may be bigger than the view window).\n    d.viewFrom = d.viewTo = doc.first;\n    d.reportedViewFrom = d.reportedViewTo = doc.first;\n    // Information about the rendered lines.\n    d.view = [];\n    d.renderedView = null;\n    // Holds info about a single rendered line when it was rendered\n    // for measurement, while not in view.\n    d.externalMeasured = null;\n    // Empty space (in pixels) above the view\n    d.viewOffset = 0;\n    d.lastWrapHeight = d.lastWrapWidth = 0;\n    d.updateLineNumbers = null;\n\n    d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n    d.scrollbarsClipped = false;\n\n    // Used to only resize the line number gutter when necessary (when\n    // the amount of lines crosses a boundary that makes its width change)\n    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n    // Set to true when a non-horizontal-scrolling line widget is\n    // added. As an optimization, line widget aligning is skipped when\n    // this is false.\n    d.alignWidgets = false;\n\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n    // Tracks the maximum line length so that the horizontal scrollbar\n    // can be kept static when scrolling.\n    d.maxLine = null;\n    d.maxLineLength = 0;\n    d.maxLineChanged = false;\n\n    // Used for measuring wheel scrolling granularity\n    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n    // True when shift is held down.\n    d.shift = false;\n\n    // Used to track whether anything happened since the context menu\n    // was opened.\n    d.selForContextMenu = null;\n\n    d.activeTouch = null;\n\n    d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n    renderGutters(d);\n\n    input.init(d);\n  }\n\n  // Since the delta values reported on mouse wheel events are\n  // unstandardized between browsers and even browser versions, and\n  // generally horribly unpredictable, this code starts by measuring\n  // the scroll effect that the first few mouse wheel events have,\n  // and, from that, detects the way it can convert deltas to pixel\n  // offsets afterwards.\n  //\n  // The reason we want to know the amount a wheel event will scroll\n  // is that it gives us a chance to update the display before the\n  // actual scrolling happens, reducing flickering.\n\n  var wheelSamples = 0, wheelPixelsPerUnit = null;\n  // Fill in a browser-detected starting value on browsers where we\n  // know one. These don't have to be accurate -- the result of them\n  // being wrong would just be a slight flicker on the first wheel\n  // scroll (if it is large enough).\n  if (ie) { wheelPixelsPerUnit = -.53; }\n  else if (gecko) { wheelPixelsPerUnit = 15; }\n  else if (chrome) { wheelPixelsPerUnit = -.7; }\n  else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n  function wheelEventDelta(e) {\n    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n    else if (dy == null) { dy = e.wheelDelta; }\n    return {x: dx, y: dy}\n  }\n  function wheelEventPixels(e) {\n    var delta = wheelEventDelta(e);\n    delta.x *= wheelPixelsPerUnit;\n    delta.y *= wheelPixelsPerUnit;\n    return delta\n  }\n\n  function onScrollWheel(cm, e) {\n    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n    var display = cm.display, scroll = display.scroller;\n    // Quit if there's nothing to scroll here\n    var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n    var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n    if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n    // Webkit browsers on OS X abort momentum scrolls when the target\n    // of the scroll event is removed from the scrollable element.\n    // This hack (see related code in patchDisplay) makes sure the\n    // element is kept around.\n    if (dy && mac && webkit) {\n      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n        for (var i = 0; i < view.length; i++) {\n          if (view[i].node == cur) {\n            cm.display.currentWheelTarget = cur;\n            break outer\n          }\n        }\n      }\n    }\n\n    // On some browsers, horizontal scrolling will cause redraws to\n    // happen before the gutter has been realigned, causing it to\n    // wriggle around in a most unseemly way. When we have an\n    // estimated pixels/delta value, we just handle horizontal\n    // scrolling entirely here. It'll be slightly off from native, but\n    // better than glitching out.\n    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n      if (dy && canScrollY)\n        { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n      setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n      // Only prevent default scrolling if vertical scrolling is\n      // actually possible. Otherwise, it causes vertical scroll\n      // jitter on OSX trackpads when deltaX is small and deltaY\n      // is large (issue #3579)\n      if (!dy || (dy && canScrollY))\n        { e_preventDefault(e); }\n      display.wheelStartX = null; // Abort measurement, if in progress\n      return\n    }\n\n    // 'Project' the visible viewport to cover the area that is being\n    // scrolled into view (if we know enough to estimate it).\n    if (dy && wheelPixelsPerUnit != null) {\n      var pixels = dy * wheelPixelsPerUnit;\n      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n      if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n      else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n      updateDisplaySimple(cm, {top: top, bottom: bot});\n    }\n\n    if (wheelSamples < 20) {\n      if (display.wheelStartX == null) {\n        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n        display.wheelDX = dx; display.wheelDY = dy;\n        setTimeout(function () {\n          if (display.wheelStartX == null) { return }\n          var movedX = scroll.scrollLeft - display.wheelStartX;\n          var movedY = scroll.scrollTop - display.wheelStartY;\n          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n            (movedX && display.wheelDX && movedX / display.wheelDX);\n          display.wheelStartX = display.wheelStartY = null;\n          if (!sample) { return }\n          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n          ++wheelSamples;\n        }, 200);\n      } else {\n        display.wheelDX += dx; display.wheelDY += dy;\n      }\n    }\n  }\n\n  // Selection objects are immutable. A new one is created every time\n  // the selection changes. A selection is one or more non-overlapping\n  // (and non-touching) ranges, sorted, and an integer that indicates\n  // which one is the primary selection (the one that's scrolled into\n  // view, that getCursor returns, etc).\n  var Selection = function(ranges, primIndex) {\n    this.ranges = ranges;\n    this.primIndex = primIndex;\n  };\n\n  Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n  Selection.prototype.equals = function (other) {\n    if (other == this) { return true }\n    if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n    for (var i = 0; i < this.ranges.length; i++) {\n      var here = this.ranges[i], there = other.ranges[i];\n      if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n    }\n    return true\n  };\n\n  Selection.prototype.deepCopy = function () {\n    var out = [];\n    for (var i = 0; i < this.ranges.length; i++)\n      { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n    return new Selection(out, this.primIndex)\n  };\n\n  Selection.prototype.somethingSelected = function () {\n    for (var i = 0; i < this.ranges.length; i++)\n      { if (!this.ranges[i].empty()) { return true } }\n    return false\n  };\n\n  Selection.prototype.contains = function (pos, end) {\n    if (!end) { end = pos; }\n    for (var i = 0; i < this.ranges.length; i++) {\n      var range = this.ranges[i];\n      if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n        { return i }\n    }\n    return -1\n  };\n\n  var Range = function(anchor, head) {\n    this.anchor = anchor; this.head = head;\n  };\n\n  Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n  Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n  Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n  // Take an unsorted, potentially overlapping set of ranges, and\n  // build a selection out of it. 'Consumes' ranges array (modifying\n  // it).\n  function normalizeSelection(cm, ranges, primIndex) {\n    var mayTouch = cm && cm.options.selectionsMayTouch;\n    var prim = ranges[primIndex];\n    ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n    primIndex = indexOf(ranges, prim);\n    for (var i = 1; i < ranges.length; i++) {\n      var cur = ranges[i], prev = ranges[i - 1];\n      var diff = cmp(prev.to(), cur.from());\n      if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n        if (i <= primIndex) { --primIndex; }\n        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n      }\n    }\n    return new Selection(ranges, primIndex)\n  }\n\n  function simpleSelection(anchor, head) {\n    return new Selection([new Range(anchor, head || anchor)], 0)\n  }\n\n  // Compute the position of the end of a change (its 'to' property\n  // refers to the pre-change end).\n  function changeEnd(change) {\n    if (!change.text) { return change.to }\n    return Pos(change.from.line + change.text.length - 1,\n               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n  }\n\n  // Adjust a position to refer to the post-change position of the\n  // same text, or the end of the change if the change covers it.\n  function adjustForChange(pos, change) {\n    if (cmp(pos, change.from) < 0) { return pos }\n    if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n    if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n    return Pos(line, ch)\n  }\n\n  function computeSelAfterChange(doc, change) {\n    var out = [];\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      var range = doc.sel.ranges[i];\n      out.push(new Range(adjustForChange(range.anchor, change),\n                         adjustForChange(range.head, change)));\n    }\n    return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n  }\n\n  function offsetPos(pos, old, nw) {\n    if (pos.line == old.line)\n      { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n    else\n      { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n  }\n\n  // Used by replaceSelections to allow moving the selection to the\n  // start or around the replaced test. Hint may be \"start\" or \"around\".\n  function computeReplacedSel(doc, changes, hint) {\n    var out = [];\n    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n    for (var i = 0; i < changes.length; i++) {\n      var change = changes[i];\n      var from = offsetPos(change.from, oldPrev, newPrev);\n      var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n      oldPrev = change.to;\n      newPrev = to;\n      if (hint == \"around\") {\n        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n        out[i] = new Range(inv ? to : from, inv ? from : to);\n      } else {\n        out[i] = new Range(from, from);\n      }\n    }\n    return new Selection(out, doc.sel.primIndex)\n  }\n\n  // Used to get the editor into a consistent state again when options change.\n\n  function loadMode(cm) {\n    cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n    resetModeState(cm);\n  }\n\n  function resetModeState(cm) {\n    cm.doc.iter(function (line) {\n      if (line.stateAfter) { line.stateAfter = null; }\n      if (line.styles) { line.styles = null; }\n    });\n    cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n    startWorker(cm, 100);\n    cm.state.modeGen++;\n    if (cm.curOp) { regChange(cm); }\n  }\n\n  // DOCUMENT DATA STRUCTURE\n\n  // By default, updates that start and end at the beginning of a line\n  // are treated specially, in order to make the association of line\n  // widgets and marker elements with the text behave more intuitive.\n  function isWholeLineUpdate(doc, change) {\n    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n      (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n  }\n\n  // Perform a change on the document data structure.\n  function updateDoc(doc, change, markedSpans, estimateHeight) {\n    function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n    function update(line, text, spans) {\n      updateLine(line, text, spans, estimateHeight);\n      signalLater(line, \"change\", line, change);\n    }\n    function linesFor(start, end) {\n      var result = [];\n      for (var i = start; i < end; ++i)\n        { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n      return result\n    }\n\n    var from = change.from, to = change.to, text = change.text;\n    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n    // Adjust the line structure\n    if (change.full) {\n      doc.insert(0, linesFor(0, text.length));\n      doc.remove(text.length, doc.size - text.length);\n    } else if (isWholeLineUpdate(doc, change)) {\n      // This is a whole-line replace. Treated specially to make\n      // sure line objects move the way they are supposed to.\n      var added = linesFor(0, text.length - 1);\n      update(lastLine, lastLine.text, lastSpans);\n      if (nlines) { doc.remove(from.line, nlines); }\n      if (added.length) { doc.insert(from.line, added); }\n    } else if (firstLine == lastLine) {\n      if (text.length == 1) {\n        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n      } else {\n        var added$1 = linesFor(1, text.length - 1);\n        added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n        doc.insert(from.line + 1, added$1);\n      }\n    } else if (text.length == 1) {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n      doc.remove(from.line + 1, nlines);\n    } else {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n      var added$2 = linesFor(1, text.length - 1);\n      if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n      doc.insert(from.line + 1, added$2);\n    }\n\n    signalLater(doc, \"change\", doc, change);\n  }\n\n  // Call f for all linked documents.\n  function linkedDocs(doc, f, sharedHistOnly) {\n    function propagate(doc, skip, sharedHist) {\n      if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n        var rel = doc.linked[i];\n        if (rel.doc == skip) { continue }\n        var shared = sharedHist && rel.sharedHist;\n        if (sharedHistOnly && !shared) { continue }\n        f(rel.doc, shared);\n        propagate(rel.doc, doc, shared);\n      } }\n    }\n    propagate(doc, null, true);\n  }\n\n  // Attach a document to an editor.\n  function attachDoc(cm, doc) {\n    if (doc.cm) { throw new Error(\"This document is already in use.\") }\n    cm.doc = doc;\n    doc.cm = cm;\n    estimateLineHeights(cm);\n    loadMode(cm);\n    setDirectionClass(cm);\n    if (!cm.options.lineWrapping) { findMaxLine(cm); }\n    cm.options.mode = doc.modeOption;\n    regChange(cm);\n  }\n\n  function setDirectionClass(cm) {\n  (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n  }\n\n  function directionChanged(cm) {\n    runInOp(cm, function () {\n      setDirectionClass(cm);\n      regChange(cm);\n    });\n  }\n\n  function History(prev) {\n    // Arrays of change events and selections. Doing something adds an\n    // event to done and clears undo. Undoing moves events from done\n    // to undone, redoing moves them in the other direction.\n    this.done = []; this.undone = [];\n    this.undoDepth = prev ? prev.undoDepth : Infinity;\n    // Used to track when changes can be merged into a single undo\n    // event\n    this.lastModTime = this.lastSelTime = 0;\n    this.lastOp = this.lastSelOp = null;\n    this.lastOrigin = this.lastSelOrigin = null;\n    // Used by the isClean() method\n    this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n  }\n\n  // Create a history change event from an updateDoc-style change\n  // object.\n  function historyChangeFromChange(doc, change) {\n    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n    linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n    return histChange\n  }\n\n  // Pop all selection events off the end of a history array. Stop at\n  // a change event.\n  function clearSelectionEvents(array) {\n    while (array.length) {\n      var last = lst(array);\n      if (last.ranges) { array.pop(); }\n      else { break }\n    }\n  }\n\n  // Find the top change event in the history. Pop off selection\n  // events that are in the way.\n  function lastChangeEvent(hist, force) {\n    if (force) {\n      clearSelectionEvents(hist.done);\n      return lst(hist.done)\n    } else if (hist.done.length && !lst(hist.done).ranges) {\n      return lst(hist.done)\n    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n      hist.done.pop();\n      return lst(hist.done)\n    }\n  }\n\n  // Register a change in the history. Merges changes that are within\n  // a single operation, or are close together with an origin that\n  // allows merging (starting with \"+\") into a single event.\n  function addChangeToHistory(doc, change, selAfter, opId) {\n    var hist = doc.history;\n    hist.undone.length = 0;\n    var time = +new Date, cur;\n    var last;\n\n    if ((hist.lastOp == opId ||\n         hist.lastOrigin == change.origin && change.origin &&\n         ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n          change.origin.charAt(0) == \"*\")) &&\n        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n      // Merge this change into the last event\n      last = lst(cur.changes);\n      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n        // Optimized case for simple insertion -- don't want to add\n        // new changesets for every character typed\n        last.to = changeEnd(change);\n      } else {\n        // Add new sub-event\n        cur.changes.push(historyChangeFromChange(doc, change));\n      }\n    } else {\n      // Can not be merged, start a new event.\n      var before = lst(hist.done);\n      if (!before || !before.ranges)\n        { pushSelectionToHistory(doc.sel, hist.done); }\n      cur = {changes: [historyChangeFromChange(doc, change)],\n             generation: hist.generation};\n      hist.done.push(cur);\n      while (hist.done.length > hist.undoDepth) {\n        hist.done.shift();\n        if (!hist.done[0].ranges) { hist.done.shift(); }\n      }\n    }\n    hist.done.push(selAfter);\n    hist.generation = ++hist.maxGeneration;\n    hist.lastModTime = hist.lastSelTime = time;\n    hist.lastOp = hist.lastSelOp = opId;\n    hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n    if (!last) { signal(doc, \"historyAdded\"); }\n  }\n\n  function selectionEventCanBeMerged(doc, origin, prev, sel) {\n    var ch = origin.charAt(0);\n    return ch == \"*\" ||\n      ch == \"+\" &&\n      prev.ranges.length == sel.ranges.length &&\n      prev.somethingSelected() == sel.somethingSelected() &&\n      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n  }\n\n  // Called whenever the selection changes, sets the new selection as\n  // the pending selection in the history, and pushes the old pending\n  // selection into the 'done' array when it was significantly\n  // different (in number of selected ranges, emptiness, or time).\n  function addSelectionToHistory(doc, sel, opId, options) {\n    var hist = doc.history, origin = options && options.origin;\n\n    // A new event is started when the previous origin does not match\n    // the current, or the origins don't allow matching. Origins\n    // starting with * are always merged, those starting with + are\n    // merged when similar and close together in time.\n    if (opId == hist.lastSelOp ||\n        (origin && hist.lastSelOrigin == origin &&\n         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n      { hist.done[hist.done.length - 1] = sel; }\n    else\n      { pushSelectionToHistory(sel, hist.done); }\n\n    hist.lastSelTime = +new Date;\n    hist.lastSelOrigin = origin;\n    hist.lastSelOp = opId;\n    if (options && options.clearRedo !== false)\n      { clearSelectionEvents(hist.undone); }\n  }\n\n  function pushSelectionToHistory(sel, dest) {\n    var top = lst(dest);\n    if (!(top && top.ranges && top.equals(sel)))\n      { dest.push(sel); }\n  }\n\n  // Used to store marked span information in the history.\n  function attachLocalSpans(doc, change, from, to) {\n    var existing = change[\"spans_\" + doc.id], n = 0;\n    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n      if (line.markedSpans)\n        { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n      ++n;\n    });\n  }\n\n  // When un/re-doing restores text containing marked spans, those\n  // that have been explicitly cleared should not be restored.\n  function removeClearedSpans(spans) {\n    if (!spans) { return null }\n    var out;\n    for (var i = 0; i < spans.length; ++i) {\n      if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n      else if (out) { out.push(spans[i]); }\n    }\n    return !out ? spans : out.length ? out : null\n  }\n\n  // Retrieve and filter the old marked spans stored in a change event.\n  function getOldSpans(doc, change) {\n    var found = change[\"spans_\" + doc.id];\n    if (!found) { return null }\n    var nw = [];\n    for (var i = 0; i < change.text.length; ++i)\n      { nw.push(removeClearedSpans(found[i])); }\n    return nw\n  }\n\n  // Used for un/re-doing changes from the history. Combines the\n  // result of computing the existing spans with the set of spans that\n  // existed in the history (so that deleting around a span and then\n  // undoing brings back the span).\n  function mergeOldSpans(doc, change) {\n    var old = getOldSpans(doc, change);\n    var stretched = stretchSpansOverChange(doc, change);\n    if (!old) { return stretched }\n    if (!stretched) { return old }\n\n    for (var i = 0; i < old.length; ++i) {\n      var oldCur = old[i], stretchCur = stretched[i];\n      if (oldCur && stretchCur) {\n        spans: for (var j = 0; j < stretchCur.length; ++j) {\n          var span = stretchCur[j];\n          for (var k = 0; k < oldCur.length; ++k)\n            { if (oldCur[k].marker == span.marker) { continue spans } }\n          oldCur.push(span);\n        }\n      } else if (stretchCur) {\n        old[i] = stretchCur;\n      }\n    }\n    return old\n  }\n\n  // Used both to provide a JSON-safe object in .getHistory, and, when\n  // detaching a document, to split the history in two\n  function copyHistoryArray(events, newGroup, instantiateSel) {\n    var copy = [];\n    for (var i = 0; i < events.length; ++i) {\n      var event = events[i];\n      if (event.ranges) {\n        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n        continue\n      }\n      var changes = event.changes, newChanges = [];\n      copy.push({changes: newChanges});\n      for (var j = 0; j < changes.length; ++j) {\n        var change = changes[j], m = (void 0);\n        newChanges.push({from: change.from, to: change.to, text: change.text});\n        if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n          if (indexOf(newGroup, Number(m[1])) > -1) {\n            lst(newChanges)[prop] = change[prop];\n            delete change[prop];\n          }\n        } } }\n      }\n    }\n    return copy\n  }\n\n  // The 'scroll' parameter given to many of these indicated whether\n  // the new cursor position should be scrolled into view after\n  // modifying the selection.\n\n  // If shift is held or the extend flag is set, extends a range to\n  // include a given position (and optionally a second position).\n  // Otherwise, simply returns the range between the given positions.\n  // Used for cursor motion and such.\n  function extendRange(range, head, other, extend) {\n    if (extend) {\n      var anchor = range.anchor;\n      if (other) {\n        var posBefore = cmp(head, anchor) < 0;\n        if (posBefore != (cmp(other, anchor) < 0)) {\n          anchor = head;\n          head = other;\n        } else if (posBefore != (cmp(head, other) < 0)) {\n          head = other;\n        }\n      }\n      return new Range(anchor, head)\n    } else {\n      return new Range(other || head, head)\n    }\n  }\n\n  // Extend the primary selection range, discard the rest.\n  function extendSelection(doc, head, other, options, extend) {\n    if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n    setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n  }\n\n  // Extend all selections (pos is an array of selections with length\n  // equal the number of selections)\n  function extendSelections(doc, heads, options) {\n    var out = [];\n    var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n    for (var i = 0; i < doc.sel.ranges.length; i++)\n      { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n    var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n    setSelection(doc, newSel, options);\n  }\n\n  // Updates a single range in the selection.\n  function replaceOneSelection(doc, i, range, options) {\n    var ranges = doc.sel.ranges.slice(0);\n    ranges[i] = range;\n    setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n  }\n\n  // Reset the selection to a single range.\n  function setSimpleSelection(doc, anchor, head, options) {\n    setSelection(doc, simpleSelection(anchor, head), options);\n  }\n\n  // Give beforeSelectionChange handlers a change to influence a\n  // selection update.\n  function filterSelectionChange(doc, sel, options) {\n    var obj = {\n      ranges: sel.ranges,\n      update: function(ranges) {\n        this.ranges = [];\n        for (var i = 0; i < ranges.length; i++)\n          { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n                                     clipPos(doc, ranges[i].head)); }\n      },\n      origin: options && options.origin\n    };\n    signal(doc, \"beforeSelectionChange\", doc, obj);\n    if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n    if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n    else { return sel }\n  }\n\n  function setSelectionReplaceHistory(doc, sel, options) {\n    var done = doc.history.done, last = lst(done);\n    if (last && last.ranges) {\n      done[done.length - 1] = sel;\n      setSelectionNoUndo(doc, sel, options);\n    } else {\n      setSelection(doc, sel, options);\n    }\n  }\n\n  // Set a new selection.\n  function setSelection(doc, sel, options) {\n    setSelectionNoUndo(doc, sel, options);\n    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n  }\n\n  function setSelectionNoUndo(doc, sel, options) {\n    if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n      { sel = filterSelectionChange(doc, sel, options); }\n\n    var bias = options && options.bias ||\n      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n    if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n      { ensureCursorVisible(doc.cm); }\n  }\n\n  function setSelectionInner(doc, sel) {\n    if (sel.equals(doc.sel)) { return }\n\n    doc.sel = sel;\n\n    if (doc.cm) {\n      doc.cm.curOp.updateInput = 1;\n      doc.cm.curOp.selectionChanged = true;\n      signalCursorActivity(doc.cm);\n    }\n    signalLater(doc, \"cursorActivity\", doc);\n  }\n\n  // Verify that the selection does not partially select any atomic\n  // marked ranges.\n  function reCheckSelection(doc) {\n    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n  }\n\n  // Return a selection that does not partially select any atomic\n  // ranges.\n  function skipAtomicInSelection(doc, sel, bias, mayClear) {\n    var out;\n    for (var i = 0; i < sel.ranges.length; i++) {\n      var range = sel.ranges[i];\n      var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n      var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n      var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n      if (out || newAnchor != range.anchor || newHead != range.head) {\n        if (!out) { out = sel.ranges.slice(0, i); }\n        out[i] = new Range(newAnchor, newHead);\n      }\n    }\n    return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n  }\n\n  function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n    var line = getLine(doc, pos.line);\n    if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n      var sp = line.markedSpans[i], m = sp.marker;\n\n      // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n      // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n      // is with selectLeft/Right\n      var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n      var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n      if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n          (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n        if (mayClear) {\n          signal(m, \"beforeCursorEnter\");\n          if (m.explicitlyCleared) {\n            if (!line.markedSpans) { break }\n            else {--i; continue}\n          }\n        }\n        if (!m.atomic) { continue }\n\n        if (oldPos) {\n          var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n          if (dir < 0 ? preventCursorRight : preventCursorLeft)\n            { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n          if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n            { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n        }\n\n        var far = m.find(dir < 0 ? -1 : 1);\n        if (dir < 0 ? preventCursorLeft : preventCursorRight)\n          { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n        return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n      }\n    } }\n    return pos\n  }\n\n  // Ensure a given position is not inside an atomic range.\n  function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n    var dir = bias || 1;\n    var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n        (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n        skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n        (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n    if (!found) {\n      doc.cantEdit = true;\n      return Pos(doc.first, 0)\n    }\n    return found\n  }\n\n  function movePos(doc, pos, dir, line) {\n    if (dir < 0 && pos.ch == 0) {\n      if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n      else { return null }\n    } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n      if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n      else { return null }\n    } else {\n      return new Pos(pos.line, pos.ch + dir)\n    }\n  }\n\n  function selectAll(cm) {\n    cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n  }\n\n  // UPDATING\n\n  // Allow \"beforeChange\" event handlers to influence a change\n  function filterChange(doc, change, update) {\n    var obj = {\n      canceled: false,\n      from: change.from,\n      to: change.to,\n      text: change.text,\n      origin: change.origin,\n      cancel: function () { return obj.canceled = true; }\n    };\n    if (update) { obj.update = function (from, to, text, origin) {\n      if (from) { obj.from = clipPos(doc, from); }\n      if (to) { obj.to = clipPos(doc, to); }\n      if (text) { obj.text = text; }\n      if (origin !== undefined) { obj.origin = origin; }\n    }; }\n    signal(doc, \"beforeChange\", doc, obj);\n    if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n    if (obj.canceled) {\n      if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n      return null\n    }\n    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n  }\n\n  // Apply a change to a document, and add it to the document's\n  // history, and propagating it to all linked documents.\n  function makeChange(doc, change, ignoreReadOnly) {\n    if (doc.cm) {\n      if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n      if (doc.cm.state.suppressEdits) { return }\n    }\n\n    if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n      change = filterChange(doc, change, true);\n      if (!change) { return }\n    }\n\n    // Possibly split or suppress the update based on the presence\n    // of read-only spans in its range.\n    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n    if (split) {\n      for (var i = split.length - 1; i >= 0; --i)\n        { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n    } else {\n      makeChangeInner(doc, change);\n    }\n  }\n\n  function makeChangeInner(doc, change) {\n    if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n    var selAfter = computeSelAfterChange(doc, change);\n    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n    var rebased = [];\n\n    linkedDocs(doc, function (doc, sharedHist) {\n      if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n        rebaseHist(doc.history, change);\n        rebased.push(doc.history);\n      }\n      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n    });\n  }\n\n  // Revert a change stored in a document's history.\n  function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n    var suppress = doc.cm && doc.cm.state.suppressEdits;\n    if (suppress && !allowSelectionOnly) { return }\n\n    var hist = doc.history, event, selAfter = doc.sel;\n    var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n    // Verify that there is a useable event (so that ctrl-z won't\n    // needlessly clear selection events)\n    var i = 0;\n    for (; i < source.length; i++) {\n      event = source[i];\n      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n        { break }\n    }\n    if (i == source.length) { return }\n    hist.lastOrigin = hist.lastSelOrigin = null;\n\n    for (;;) {\n      event = source.pop();\n      if (event.ranges) {\n        pushSelectionToHistory(event, dest);\n        if (allowSelectionOnly && !event.equals(doc.sel)) {\n          setSelection(doc, event, {clearRedo: false});\n          return\n        }\n        selAfter = event;\n      } else if (suppress) {\n        source.push(event);\n        return\n      } else { break }\n    }\n\n    // Build up a reverse change object to add to the opposite history\n    // stack (redo when undoing, and vice versa).\n    var antiChanges = [];\n    pushSelectionToHistory(selAfter, dest);\n    dest.push({changes: antiChanges, generation: hist.generation});\n    hist.generation = event.generation || ++hist.maxGeneration;\n\n    var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n    var loop = function ( i ) {\n      var change = event.changes[i];\n      change.origin = type;\n      if (filter && !filterChange(doc, change, false)) {\n        source.length = 0;\n        return {}\n      }\n\n      antiChanges.push(historyChangeFromChange(doc, change));\n\n      var after = i ? computeSelAfterChange(doc, change) : lst(source);\n      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n      if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n      var rebased = [];\n\n      // Propagate to the linked documents\n      linkedDocs(doc, function (doc, sharedHist) {\n        if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n          rebaseHist(doc.history, change);\n          rebased.push(doc.history);\n        }\n        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n      });\n    };\n\n    for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n      var returned = loop( i$1 );\n\n      if ( returned ) return returned.v;\n    }\n  }\n\n  // Sub-views need their line numbers shifted when text is added\n  // above or below them in the parent document.\n  function shiftDoc(doc, distance) {\n    if (distance == 0) { return }\n    doc.first += distance;\n    doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n      Pos(range.anchor.line + distance, range.anchor.ch),\n      Pos(range.head.line + distance, range.head.ch)\n    ); }), doc.sel.primIndex);\n    if (doc.cm) {\n      regChange(doc.cm, doc.first, doc.first - distance, distance);\n      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n        { regLineChange(doc.cm, l, \"gutter\"); }\n    }\n  }\n\n  // More lower-level change function, handling only a single document\n  // (not linked ones).\n  function makeChangeSingleDoc(doc, change, selAfter, spans) {\n    if (doc.cm && !doc.cm.curOp)\n      { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n    if (change.to.line < doc.first) {\n      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n      return\n    }\n    if (change.from.line > doc.lastLine()) { return }\n\n    // Clip the change to the size of this doc\n    if (change.from.line < doc.first) {\n      var shift = change.text.length - 1 - (doc.first - change.from.line);\n      shiftDoc(doc, shift);\n      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n                text: [lst(change.text)], origin: change.origin};\n    }\n    var last = doc.lastLine();\n    if (change.to.line > last) {\n      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n                text: [change.text[0]], origin: change.origin};\n    }\n\n    change.removed = getBetween(doc, change.from, change.to);\n\n    if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n    if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n    else { updateDoc(doc, change, spans); }\n    setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n    if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n      { doc.cantEdit = false; }\n  }\n\n  // Handle the interaction of a change to a document with the editor\n  // that this document is part of.\n  function makeChangeSingleDocInEditor(cm, change, spans) {\n    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n    var recomputeMaxLength = false, checkWidthStart = from.line;\n    if (!cm.options.lineWrapping) {\n      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n      doc.iter(checkWidthStart, to.line + 1, function (line) {\n        if (line == display.maxLine) {\n          recomputeMaxLength = true;\n          return true\n        }\n      });\n    }\n\n    if (doc.sel.contains(change.from, change.to) > -1)\n      { signalCursorActivity(cm); }\n\n    updateDoc(doc, change, spans, estimateHeight(cm));\n\n    if (!cm.options.lineWrapping) {\n      doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n        var len = lineLength(line);\n        if (len > display.maxLineLength) {\n          display.maxLine = line;\n          display.maxLineLength = len;\n          display.maxLineChanged = true;\n          recomputeMaxLength = false;\n        }\n      });\n      if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n    }\n\n    retreatFrontier(doc, from.line);\n    startWorker(cm, 400);\n\n    var lendiff = change.text.length - (to.line - from.line) - 1;\n    // Remember that these lines changed, for updating the display\n    if (change.full)\n      { regChange(cm); }\n    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n      { regLineChange(cm, from.line, \"text\"); }\n    else\n      { regChange(cm, from.line, to.line + 1, lendiff); }\n\n    var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n    if (changeHandler || changesHandler) {\n      var obj = {\n        from: from, to: to,\n        text: change.text,\n        removed: change.removed,\n        origin: change.origin\n      };\n      if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n      if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n    }\n    cm.display.selForContextMenu = null;\n  }\n\n  function replaceRange(doc, code, from, to, origin) {\n    var assign;\n\n    if (!to) { to = from; }\n    if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n    if (typeof code == \"string\") { code = doc.splitLines(code); }\n    makeChange(doc, {from: from, to: to, text: code, origin: origin});\n  }\n\n  // Rebasing/resetting history to deal with externally-sourced changes\n\n  function rebaseHistSelSingle(pos, from, to, diff) {\n    if (to < pos.line) {\n      pos.line += diff;\n    } else if (from < pos.line) {\n      pos.line = from;\n      pos.ch = 0;\n    }\n  }\n\n  // Tries to rebase an array of history events given a change in the\n  // document. If the change touches the same lines as the event, the\n  // event, and everything 'behind' it, is discarded. If the change is\n  // before the event, the event's positions are updated. Uses a\n  // copy-on-write scheme for the positions, to avoid having to\n  // reallocate them all on every rebase, but also avoid problems with\n  // shared position objects being unsafely updated.\n  function rebaseHistArray(array, from, to, diff) {\n    for (var i = 0; i < array.length; ++i) {\n      var sub = array[i], ok = true;\n      if (sub.ranges) {\n        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n        for (var j = 0; j < sub.ranges.length; j++) {\n          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n        }\n        continue\n      }\n      for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n        var cur = sub.changes[j$1];\n        if (to < cur.from.line) {\n          cur.from = Pos(cur.from.line + diff, cur.from.ch);\n          cur.to = Pos(cur.to.line + diff, cur.to.ch);\n        } else if (from <= cur.to.line) {\n          ok = false;\n          break\n        }\n      }\n      if (!ok) {\n        array.splice(0, i + 1);\n        i = 0;\n      }\n    }\n  }\n\n  function rebaseHist(hist, change) {\n    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n    rebaseHistArray(hist.done, from, to, diff);\n    rebaseHistArray(hist.undone, from, to, diff);\n  }\n\n  // Utility for applying a change to a line by handle or number,\n  // returning the number and optionally registering the line as\n  // changed.\n  function changeLine(doc, handle, changeType, op) {\n    var no = handle, line = handle;\n    if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n    else { no = lineNo(handle); }\n    if (no == null) { return null }\n    if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n    return line\n  }\n\n  // The document is represented as a BTree consisting of leaves, with\n  // chunk of lines in them, and branches, with up to ten leaves or\n  // other branch nodes below them. The top node is always a branch\n  // node, and is the document object itself (meaning it has\n  // additional methods and properties).\n  //\n  // All nodes have parent links. The tree is used both to go from\n  // line numbers to line objects, and to go from objects to numbers.\n  // It also indexes by height, and is used to convert between height\n  // and line object, and to find the total height of the document.\n  //\n  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n  function LeafChunk(lines) {\n    this.lines = lines;\n    this.parent = null;\n    var height = 0;\n    for (var i = 0; i < lines.length; ++i) {\n      lines[i].parent = this;\n      height += lines[i].height;\n    }\n    this.height = height;\n  }\n\n  LeafChunk.prototype = {\n    chunkSize: function() { return this.lines.length },\n\n    // Remove the n lines at offset 'at'.\n    removeInner: function(at, n) {\n      for (var i = at, e = at + n; i < e; ++i) {\n        var line = this.lines[i];\n        this.height -= line.height;\n        cleanUpLine(line);\n        signalLater(line, \"delete\");\n      }\n      this.lines.splice(at, n);\n    },\n\n    // Helper used to collapse a small branch into a single leaf.\n    collapse: function(lines) {\n      lines.push.apply(lines, this.lines);\n    },\n\n    // Insert the given array of lines at offset 'at', count them as\n    // having the given height.\n    insertInner: function(at, lines, height) {\n      this.height += height;\n      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n      for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n    },\n\n    // Used to iterate over a part of the tree.\n    iterN: function(at, n, op) {\n      for (var e = at + n; at < e; ++at)\n        { if (op(this.lines[at])) { return true } }\n    }\n  };\n\n  function BranchChunk(children) {\n    this.children = children;\n    var size = 0, height = 0;\n    for (var i = 0; i < children.length; ++i) {\n      var ch = children[i];\n      size += ch.chunkSize(); height += ch.height;\n      ch.parent = this;\n    }\n    this.size = size;\n    this.height = height;\n    this.parent = null;\n  }\n\n  BranchChunk.prototype = {\n    chunkSize: function() { return this.size },\n\n    removeInner: function(at, n) {\n      this.size -= n;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var rm = Math.min(n, sz - at), oldHeight = child.height;\n          child.removeInner(at, rm);\n          this.height -= oldHeight - child.height;\n          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n          if ((n -= rm) == 0) { break }\n          at = 0;\n        } else { at -= sz; }\n      }\n      // If the result is smaller than 25 lines, ensure that it is a\n      // single leaf node.\n      if (this.size - n < 25 &&\n          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n        var lines = [];\n        this.collapse(lines);\n        this.children = [new LeafChunk(lines)];\n        this.children[0].parent = this;\n      }\n    },\n\n    collapse: function(lines) {\n      for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n    },\n\n    insertInner: function(at, lines, height) {\n      this.size += lines.length;\n      this.height += height;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at <= sz) {\n          child.insertInner(at, lines, height);\n          if (child.lines && child.lines.length > 50) {\n            // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n            // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n            var remaining = child.lines.length % 25 + 25;\n            for (var pos = remaining; pos < child.lines.length;) {\n              var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n              child.height -= leaf.height;\n              this.children.splice(++i, 0, leaf);\n              leaf.parent = this;\n            }\n            child.lines = child.lines.slice(0, remaining);\n            this.maybeSpill();\n          }\n          break\n        }\n        at -= sz;\n      }\n    },\n\n    // When a node has grown, check whether it should be split.\n    maybeSpill: function() {\n      if (this.children.length <= 10) { return }\n      var me = this;\n      do {\n        var spilled = me.children.splice(me.children.length - 5, 5);\n        var sibling = new BranchChunk(spilled);\n        if (!me.parent) { // Become the parent node\n          var copy = new BranchChunk(me.children);\n          copy.parent = me;\n          me.children = [copy, sibling];\n          me = copy;\n       } else {\n          me.size -= sibling.size;\n          me.height -= sibling.height;\n          var myIndex = indexOf(me.parent.children, me);\n          me.parent.children.splice(myIndex + 1, 0, sibling);\n        }\n        sibling.parent = me.parent;\n      } while (me.children.length > 10)\n      me.parent.maybeSpill();\n    },\n\n    iterN: function(at, n, op) {\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var used = Math.min(n, sz - at);\n          if (child.iterN(at, used, op)) { return true }\n          if ((n -= used) == 0) { break }\n          at = 0;\n        } else { at -= sz; }\n      }\n    }\n  };\n\n  // Line widgets are block elements displayed above or below a line.\n\n  var LineWidget = function(doc, node, options) {\n    if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n      { this[opt] = options[opt]; } } }\n    this.doc = doc;\n    this.node = node;\n  };\n\n  LineWidget.prototype.clear = function () {\n    var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n    if (no == null || !ws) { return }\n    for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n    if (!ws.length) { line.widgets = null; }\n    var height = widgetHeight(this);\n    updateLineHeight(line, Math.max(0, line.height - height));\n    if (cm) {\n      runInOp(cm, function () {\n        adjustScrollWhenAboveVisible(cm, line, -height);\n        regLineChange(cm, no, \"widget\");\n      });\n      signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n    }\n  };\n\n  LineWidget.prototype.changed = function () {\n      var this$1 = this;\n\n    var oldH = this.height, cm = this.doc.cm, line = this.line;\n    this.height = null;\n    var diff = widgetHeight(this) - oldH;\n    if (!diff) { return }\n    if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n    if (cm) {\n      runInOp(cm, function () {\n        cm.curOp.forceUpdate = true;\n        adjustScrollWhenAboveVisible(cm, line, diff);\n        signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n      });\n    }\n  };\n  eventMixin(LineWidget);\n\n  function adjustScrollWhenAboveVisible(cm, line, diff) {\n    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n      { addToScrollTop(cm, diff); }\n  }\n\n  function addLineWidget(doc, handle, node, options) {\n    var widget = new LineWidget(doc, node, options);\n    var cm = doc.cm;\n    if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n    changeLine(doc, handle, \"widget\", function (line) {\n      var widgets = line.widgets || (line.widgets = []);\n      if (widget.insertAt == null) { widgets.push(widget); }\n      else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n      widget.line = line;\n      if (cm && !lineIsHidden(doc, line)) {\n        var aboveVisible = heightAtLine(line) < doc.scrollTop;\n        updateLineHeight(line, line.height + widgetHeight(widget));\n        if (aboveVisible) { addToScrollTop(cm, widget.height); }\n        cm.curOp.forceUpdate = true;\n      }\n      return true\n    });\n    if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n    return widget\n  }\n\n  // TEXTMARKERS\n\n  // Created with markText and setBookmark methods. A TextMarker is a\n  // handle that can be used to clear or find a marked position in the\n  // document. Line objects hold arrays (markedSpans) containing\n  // {from, to, marker} object pointing to such marker objects, and\n  // indicating that such a marker is present on that line. Multiple\n  // lines may point to the same marker when it spans across lines.\n  // The spans will have null for their from/to properties when the\n  // marker continues beyond the start/end of the line. Markers have\n  // links back to the lines they currently touch.\n\n  // Collapsed markers have unique ids, in order to be able to order\n  // them, which is needed for uniquely determining an outer marker\n  // when they overlap (they may nest, but not partially overlap).\n  var nextMarkerId = 0;\n\n  var TextMarker = function(doc, type) {\n    this.lines = [];\n    this.type = type;\n    this.doc = doc;\n    this.id = ++nextMarkerId;\n  };\n\n  // Clear the marker.\n  TextMarker.prototype.clear = function () {\n    if (this.explicitlyCleared) { return }\n    var cm = this.doc.cm, withOp = cm && !cm.curOp;\n    if (withOp) { startOperation(cm); }\n    if (hasHandler(this, \"clear\")) {\n      var found = this.find();\n      if (found) { signalLater(this, \"clear\", found.from, found.to); }\n    }\n    var min = null, max = null;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n      else if (cm) {\n        if (span.to != null) { max = lineNo(line); }\n        if (span.from != null) { min = lineNo(line); }\n      }\n      line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n      if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n        { updateLineHeight(line, textHeight(cm.display)); }\n    }\n    if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n      var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n      if (len > cm.display.maxLineLength) {\n        cm.display.maxLine = visual;\n        cm.display.maxLineLength = len;\n        cm.display.maxLineChanged = true;\n      }\n    } }\n\n    if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n    this.lines.length = 0;\n    this.explicitlyCleared = true;\n    if (this.atomic && this.doc.cantEdit) {\n      this.doc.cantEdit = false;\n      if (cm) { reCheckSelection(cm.doc); }\n    }\n    if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n    if (withOp) { endOperation(cm); }\n    if (this.parent) { this.parent.clear(); }\n  };\n\n  // Find the position of the marker in the document. Returns a {from,\n  // to} object by default. Side can be passed to get a specific side\n  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n  // Pos objects returned contain a line object, rather than a line\n  // number (used to prevent looking up the same line twice).\n  TextMarker.prototype.find = function (side, lineObj) {\n    if (side == null && this.type == \"bookmark\") { side = 1; }\n    var from, to;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.from != null) {\n        from = Pos(lineObj ? line : lineNo(line), span.from);\n        if (side == -1) { return from }\n      }\n      if (span.to != null) {\n        to = Pos(lineObj ? line : lineNo(line), span.to);\n        if (side == 1) { return to }\n      }\n    }\n    return from && {from: from, to: to}\n  };\n\n  // Signals that the marker's widget changed, and surrounding layout\n  // should be recomputed.\n  TextMarker.prototype.changed = function () {\n      var this$1 = this;\n\n    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n    if (!pos || !cm) { return }\n    runInOp(cm, function () {\n      var line = pos.line, lineN = lineNo(pos.line);\n      var view = findViewForLine(cm, lineN);\n      if (view) {\n        clearLineMeasurementCacheFor(view);\n        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n      }\n      cm.curOp.updateMaxLine = true;\n      if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n        var oldHeight = widget.height;\n        widget.height = null;\n        var dHeight = widgetHeight(widget) - oldHeight;\n        if (dHeight)\n          { updateLineHeight(line, line.height + dHeight); }\n      }\n      signalLater(cm, \"markerChanged\", cm, this$1);\n    });\n  };\n\n  TextMarker.prototype.attachLine = function (line) {\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n        { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n    }\n    this.lines.push(line);\n  };\n\n  TextMarker.prototype.detachLine = function (line) {\n    this.lines.splice(indexOf(this.lines, line), 1);\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp\n      ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n    }\n  };\n  eventMixin(TextMarker);\n\n  // Create a marker, wire it up to the right lines, and\n  function markText(doc, from, to, options, type) {\n    // Shared markers (across linked documents) are handled separately\n    // (markTextShared will call out to this again, once per\n    // document).\n    if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n    // Ensure we are in an operation.\n    if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n    var marker = new TextMarker(doc, type), diff = cmp(from, to);\n    if (options) { copyObj(options, marker, false); }\n    // Don't connect empty markers unless clearWhenEmpty is false\n    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n      { return marker }\n    if (marker.replacedWith) {\n      // Showing up as a widget implies collapsed (widget replaces text)\n      marker.collapsed = true;\n      marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n      if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n      if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n    }\n    if (marker.collapsed) {\n      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n        { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n      seeCollapsedSpans();\n    }\n\n    if (marker.addToHistory)\n      { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n    var curLine = from.line, cm = doc.cm, updateMaxLine;\n    doc.iter(curLine, to.line + 1, function (line) {\n      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n        { updateMaxLine = true; }\n      if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n      addMarkedSpan(line, new MarkedSpan(marker,\n                                         curLine == from.line ? from.ch : null,\n                                         curLine == to.line ? to.ch : null));\n      ++curLine;\n    });\n    // lineIsHidden depends on the presence of the spans, so needs a second pass\n    if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n      if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n    }); }\n\n    if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n    if (marker.readOnly) {\n      seeReadOnlySpans();\n      if (doc.history.done.length || doc.history.undone.length)\n        { doc.clearHistory(); }\n    }\n    if (marker.collapsed) {\n      marker.id = ++nextMarkerId;\n      marker.atomic = true;\n    }\n    if (cm) {\n      // Sync editor state\n      if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n      if (marker.collapsed)\n        { regChange(cm, from.line, to.line + 1); }\n      else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n               marker.attributes || marker.title)\n        { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n      if (marker.atomic) { reCheckSelection(cm.doc); }\n      signalLater(cm, \"markerAdded\", cm, marker);\n    }\n    return marker\n  }\n\n  // SHARED TEXTMARKERS\n\n  // A shared marker spans multiple linked documents. It is\n  // implemented as a meta-marker-object controlling multiple normal\n  // markers.\n  var SharedTextMarker = function(markers, primary) {\n    this.markers = markers;\n    this.primary = primary;\n    for (var i = 0; i < markers.length; ++i)\n      { markers[i].parent = this; }\n  };\n\n  SharedTextMarker.prototype.clear = function () {\n    if (this.explicitlyCleared) { return }\n    this.explicitlyCleared = true;\n    for (var i = 0; i < this.markers.length; ++i)\n      { this.markers[i].clear(); }\n    signalLater(this, \"clear\");\n  };\n\n  SharedTextMarker.prototype.find = function (side, lineObj) {\n    return this.primary.find(side, lineObj)\n  };\n  eventMixin(SharedTextMarker);\n\n  function markTextShared(doc, from, to, options, type) {\n    options = copyObj(options);\n    options.shared = false;\n    var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n    var widget = options.widgetNode;\n    linkedDocs(doc, function (doc) {\n      if (widget) { options.widgetNode = widget.cloneNode(true); }\n      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n      for (var i = 0; i < doc.linked.length; ++i)\n        { if (doc.linked[i].isParent) { return } }\n      primary = lst(markers);\n    });\n    return new SharedTextMarker(markers, primary)\n  }\n\n  function findSharedMarkers(doc) {\n    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n  }\n\n  function copySharedMarkers(doc, markers) {\n    for (var i = 0; i < markers.length; i++) {\n      var marker = markers[i], pos = marker.find();\n      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n      if (cmp(mFrom, mTo)) {\n        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n        marker.markers.push(subMark);\n        subMark.parent = marker;\n      }\n    }\n  }\n\n  function detachSharedMarkers(markers) {\n    var loop = function ( i ) {\n      var marker = markers[i], linked = [marker.primary.doc];\n      linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n      for (var j = 0; j < marker.markers.length; j++) {\n        var subMarker = marker.markers[j];\n        if (indexOf(linked, subMarker.doc) == -1) {\n          subMarker.parent = null;\n          marker.markers.splice(j--, 1);\n        }\n      }\n    };\n\n    for (var i = 0; i < markers.length; i++) loop( i );\n  }\n\n  var nextDocId = 0;\n  var Doc = function(text, mode, firstLine, lineSep, direction) {\n    if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n    if (firstLine == null) { firstLine = 0; }\n\n    BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n    this.first = firstLine;\n    this.scrollTop = this.scrollLeft = 0;\n    this.cantEdit = false;\n    this.cleanGeneration = 1;\n    this.modeFrontier = this.highlightFrontier = firstLine;\n    var start = Pos(firstLine, 0);\n    this.sel = simpleSelection(start);\n    this.history = new History(null);\n    this.id = ++nextDocId;\n    this.modeOption = mode;\n    this.lineSep = lineSep;\n    this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n    this.extend = false;\n\n    if (typeof text == \"string\") { text = this.splitLines(text); }\n    updateDoc(this, {from: start, to: start, text: text});\n    setSelection(this, simpleSelection(start), sel_dontScroll);\n  };\n\n  Doc.prototype = createObj(BranchChunk.prototype, {\n    constructor: Doc,\n    // Iterate over the document. Supports two forms -- with only one\n    // argument, it calls that for each line in the document. With\n    // three, it iterates over the range given by the first two (with\n    // the second being non-inclusive).\n    iter: function(from, to, op) {\n      if (op) { this.iterN(from - this.first, to - from, op); }\n      else { this.iterN(this.first, this.first + this.size, from); }\n    },\n\n    // Non-public interface for adding and removing lines.\n    insert: function(at, lines) {\n      var height = 0;\n      for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n      this.insertInner(at - this.first, lines, height);\n    },\n    remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n    // From here, the methods are part of the public interface. Most\n    // are also available from CodeMirror (editor) instances.\n\n    getValue: function(lineSep) {\n      var lines = getLines(this, this.first, this.first + this.size);\n      if (lineSep === false) { return lines }\n      return lines.join(lineSep || this.lineSeparator())\n    },\n    setValue: docMethodOp(function(code) {\n      var top = Pos(this.first, 0), last = this.first + this.size - 1;\n      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n                        text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n      if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n      setSelection(this, simpleSelection(top), sel_dontScroll);\n    }),\n    replaceRange: function(code, from, to, origin) {\n      from = clipPos(this, from);\n      to = to ? clipPos(this, to) : from;\n      replaceRange(this, code, from, to, origin);\n    },\n    getRange: function(from, to, lineSep) {\n      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n      if (lineSep === false) { return lines }\n      return lines.join(lineSep || this.lineSeparator())\n    },\n\n    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n    getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n    getLineNumber: function(line) {return lineNo(line)},\n\n    getLineHandleVisualStart: function(line) {\n      if (typeof line == \"number\") { line = getLine(this, line); }\n      return visualLine(line)\n    },\n\n    lineCount: function() {return this.size},\n    firstLine: function() {return this.first},\n    lastLine: function() {return this.first + this.size - 1},\n\n    clipPos: function(pos) {return clipPos(this, pos)},\n\n    getCursor: function(start) {\n      var range = this.sel.primary(), pos;\n      if (start == null || start == \"head\") { pos = range.head; }\n      else if (start == \"anchor\") { pos = range.anchor; }\n      else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n      else { pos = range.from(); }\n      return pos\n    },\n    listSelections: function() { return this.sel.ranges },\n    somethingSelected: function() {return this.sel.somethingSelected()},\n\n    setCursor: docMethodOp(function(line, ch, options) {\n      setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n    }),\n    setSelection: docMethodOp(function(anchor, head, options) {\n      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n    }),\n    extendSelection: docMethodOp(function(head, other, options) {\n      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n    }),\n    extendSelections: docMethodOp(function(heads, options) {\n      extendSelections(this, clipPosArray(this, heads), options);\n    }),\n    extendSelectionsBy: docMethodOp(function(f, options) {\n      var heads = map(this.sel.ranges, f);\n      extendSelections(this, clipPosArray(this, heads), options);\n    }),\n    setSelections: docMethodOp(function(ranges, primary, options) {\n      if (!ranges.length) { return }\n      var out = [];\n      for (var i = 0; i < ranges.length; i++)\n        { out[i] = new Range(clipPos(this, ranges[i].anchor),\n                           clipPos(this, ranges[i].head || ranges[i].anchor)); }\n      if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n      setSelection(this, normalizeSelection(this.cm, out, primary), options);\n    }),\n    addSelection: docMethodOp(function(anchor, head, options) {\n      var ranges = this.sel.ranges.slice(0);\n      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n      setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n    }),\n\n    getSelection: function(lineSep) {\n      var ranges = this.sel.ranges, lines;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        lines = lines ? lines.concat(sel) : sel;\n      }\n      if (lineSep === false) { return lines }\n      else { return lines.join(lineSep || this.lineSeparator()) }\n    },\n    getSelections: function(lineSep) {\n      var parts = [], ranges = this.sel.ranges;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n        parts[i] = sel;\n      }\n      return parts\n    },\n    replaceSelection: function(code, collapse, origin) {\n      var dup = [];\n      for (var i = 0; i < this.sel.ranges.length; i++)\n        { dup[i] = code; }\n      this.replaceSelections(dup, collapse, origin || \"+input\");\n    },\n    replaceSelections: docMethodOp(function(code, collapse, origin) {\n      var changes = [], sel = this.sel;\n      for (var i = 0; i < sel.ranges.length; i++) {\n        var range = sel.ranges[i];\n        changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n      }\n      var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n      for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n        { makeChange(this, changes[i$1]); }\n      if (newSel) { setSelectionReplaceHistory(this, newSel); }\n      else if (this.cm) { ensureCursorVisible(this.cm); }\n    }),\n    undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n    redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n    setExtending: function(val) {this.extend = val;},\n    getExtending: function() {return this.extend},\n\n    historySize: function() {\n      var hist = this.history, done = 0, undone = 0;\n      for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n      for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n      return {undo: done, redo: undone}\n    },\n    clearHistory: function() {\n      var this$1 = this;\n\n      this.history = new History(this.history);\n      linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n    },\n\n    markClean: function() {\n      this.cleanGeneration = this.changeGeneration(true);\n    },\n    changeGeneration: function(forceSplit) {\n      if (forceSplit)\n        { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n      return this.history.generation\n    },\n    isClean: function (gen) {\n      return this.history.generation == (gen || this.cleanGeneration)\n    },\n\n    getHistory: function() {\n      return {done: copyHistoryArray(this.history.done),\n              undone: copyHistoryArray(this.history.undone)}\n    },\n    setHistory: function(histData) {\n      var hist = this.history = new History(this.history);\n      hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n    },\n\n    setGutterMarker: docMethodOp(function(line, gutterID, value) {\n      return changeLine(this, line, \"gutter\", function (line) {\n        var markers = line.gutterMarkers || (line.gutterMarkers = {});\n        markers[gutterID] = value;\n        if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n        return true\n      })\n    }),\n\n    clearGutter: docMethodOp(function(gutterID) {\n      var this$1 = this;\n\n      this.iter(function (line) {\n        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n          changeLine(this$1, line, \"gutter\", function () {\n            line.gutterMarkers[gutterID] = null;\n            if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n            return true\n          });\n        }\n      });\n    }),\n\n    lineInfo: function(line) {\n      var n;\n      if (typeof line == \"number\") {\n        if (!isLine(this, line)) { return null }\n        n = line;\n        line = getLine(this, line);\n        if (!line) { return null }\n      } else {\n        n = lineNo(line);\n        if (n == null) { return null }\n      }\n      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n              widgets: line.widgets}\n    },\n\n    addLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        if (!line[prop]) { line[prop] = cls; }\n        else if (classTest(cls).test(line[prop])) { return false }\n        else { line[prop] += \" \" + cls; }\n        return true\n      })\n    }),\n    removeLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        var cur = line[prop];\n        if (!cur) { return false }\n        else if (cls == null) { line[prop] = null; }\n        else {\n          var found = cur.match(classTest(cls));\n          if (!found) { return false }\n          var end = found.index + found[0].length;\n          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n        }\n        return true\n      })\n    }),\n\n    addLineWidget: docMethodOp(function(handle, node, options) {\n      return addLineWidget(this, handle, node, options)\n    }),\n    removeLineWidget: function(widget) { widget.clear(); },\n\n    markText: function(from, to, options) {\n      return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n    },\n    setBookmark: function(pos, options) {\n      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n                      insertLeft: options && options.insertLeft,\n                      clearWhenEmpty: false, shared: options && options.shared,\n                      handleMouseEvents: options && options.handleMouseEvents};\n      pos = clipPos(this, pos);\n      return markText(this, pos, pos, realOpts, \"bookmark\")\n    },\n    findMarksAt: function(pos) {\n      pos = clipPos(this, pos);\n      var markers = [], spans = getLine(this, pos.line).markedSpans;\n      if (spans) { for (var i = 0; i < spans.length; ++i) {\n        var span = spans[i];\n        if ((span.from == null || span.from <= pos.ch) &&\n            (span.to == null || span.to >= pos.ch))\n          { markers.push(span.marker.parent || span.marker); }\n      } }\n      return markers\n    },\n    findMarks: function(from, to, filter) {\n      from = clipPos(this, from); to = clipPos(this, to);\n      var found = [], lineNo = from.line;\n      this.iter(from.line, to.line + 1, function (line) {\n        var spans = line.markedSpans;\n        if (spans) { for (var i = 0; i < spans.length; i++) {\n          var span = spans[i];\n          if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n                span.from == null && lineNo != from.line ||\n                span.from != null && lineNo == to.line && span.from >= to.ch) &&\n              (!filter || filter(span.marker)))\n            { found.push(span.marker.parent || span.marker); }\n        } }\n        ++lineNo;\n      });\n      return found\n    },\n    getAllMarks: function() {\n      var markers = [];\n      this.iter(function (line) {\n        var sps = line.markedSpans;\n        if (sps) { for (var i = 0; i < sps.length; ++i)\n          { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n      });\n      return markers\n    },\n\n    posFromIndex: function(off) {\n      var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n      this.iter(function (line) {\n        var sz = line.text.length + sepSize;\n        if (sz > off) { ch = off; return true }\n        off -= sz;\n        ++lineNo;\n      });\n      return clipPos(this, Pos(lineNo, ch))\n    },\n    indexFromPos: function (coords) {\n      coords = clipPos(this, coords);\n      var index = coords.ch;\n      if (coords.line < this.first || coords.ch < 0) { return 0 }\n      var sepSize = this.lineSeparator().length;\n      this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n        index += line.text.length + sepSize;\n      });\n      return index\n    },\n\n    copy: function(copyHistory) {\n      var doc = new Doc(getLines(this, this.first, this.first + this.size),\n                        this.modeOption, this.first, this.lineSep, this.direction);\n      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n      doc.sel = this.sel;\n      doc.extend = false;\n      if (copyHistory) {\n        doc.history.undoDepth = this.history.undoDepth;\n        doc.setHistory(this.getHistory());\n      }\n      return doc\n    },\n\n    linkedDoc: function(options) {\n      if (!options) { options = {}; }\n      var from = this.first, to = this.first + this.size;\n      if (options.from != null && options.from > from) { from = options.from; }\n      if (options.to != null && options.to < to) { to = options.to; }\n      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n      if (options.sharedHist) { copy.history = this.history\n      ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n      copySharedMarkers(copy, findSharedMarkers(this));\n      return copy\n    },\n    unlinkDoc: function(other) {\n      if (other instanceof CodeMirror) { other = other.doc; }\n      if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n        var link = this.linked[i];\n        if (link.doc != other) { continue }\n        this.linked.splice(i, 1);\n        other.unlinkDoc(this);\n        detachSharedMarkers(findSharedMarkers(this));\n        break\n      } }\n      // If the histories were shared, split them again\n      if (other.history == this.history) {\n        var splitIds = [other.id];\n        linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n        other.history = new History(null);\n        other.history.done = copyHistoryArray(this.history.done, splitIds);\n        other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n      }\n    },\n    iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n    getMode: function() {return this.mode},\n    getEditor: function() {return this.cm},\n\n    splitLines: function(str) {\n      if (this.lineSep) { return str.split(this.lineSep) }\n      return splitLinesAuto(str)\n    },\n    lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n    setDirection: docMethodOp(function (dir) {\n      if (dir != \"rtl\") { dir = \"ltr\"; }\n      if (dir == this.direction) { return }\n      this.direction = dir;\n      this.iter(function (line) { return line.order = null; });\n      if (this.cm) { directionChanged(this.cm); }\n    })\n  });\n\n  // Public alias.\n  Doc.prototype.eachLine = Doc.prototype.iter;\n\n  // Kludge to work around strange IE behavior where it'll sometimes\n  // re-fire a series of drag-related events right after the drop (#1551)\n  var lastDrop = 0;\n\n  function onDrop(e) {\n    var cm = this;\n    clearDragCursor(cm);\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n      { return }\n    e_preventDefault(e);\n    if (ie) { lastDrop = +new Date; }\n    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n    if (!pos || cm.isReadOnly()) { return }\n    // Might be a file drop, in which case we simply extract the text\n    // and insert it.\n    if (files && files.length && window.FileReader && window.File) {\n      var n = files.length, text = Array(n), read = 0;\n      var markAsReadAndPasteIfAllFilesAreRead = function () {\n        if (++read == n) {\n          operation(cm, function () {\n            pos = clipPos(cm.doc, pos);\n            var change = {from: pos, to: pos,\n                          text: cm.doc.splitLines(\n                              text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n                          origin: \"paste\"};\n            makeChange(cm.doc, change);\n            setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n          })();\n        }\n      };\n      var readTextFromFile = function (file, i) {\n        if (cm.options.allowDropFileTypes &&\n            indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n          markAsReadAndPasteIfAllFilesAreRead();\n          return\n        }\n        var reader = new FileReader;\n        reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n        reader.onload = function () {\n          var content = reader.result;\n          if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n            markAsReadAndPasteIfAllFilesAreRead();\n            return\n          }\n          text[i] = content;\n          markAsReadAndPasteIfAllFilesAreRead();\n        };\n        reader.readAsText(file);\n      };\n      for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n    } else { // Normal drop\n      // Don't do a replace if the drop happened inside of the selected text.\n      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n        cm.state.draggingText(e);\n        // Ensure the editor is re-focused\n        setTimeout(function () { return cm.display.input.focus(); }, 20);\n        return\n      }\n      try {\n        var text$1 = e.dataTransfer.getData(\"Text\");\n        if (text$1) {\n          var selected;\n          if (cm.state.draggingText && !cm.state.draggingText.copy)\n            { selected = cm.listSelections(); }\n          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n          if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n            { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n          cm.replaceSelection(text$1, \"around\", \"paste\");\n          cm.display.input.focus();\n        }\n      }\n      catch(e$1){}\n    }\n  }\n\n  function onDragStart(cm, e) {\n    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n    e.dataTransfer.setData(\"Text\", cm.getSelection());\n    e.dataTransfer.effectAllowed = \"copyMove\";\n\n    // Use dummy image instead of default browsers image.\n    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n    if (e.dataTransfer.setDragImage && !safari) {\n      var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n      img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n      if (presto) {\n        img.width = img.height = 1;\n        cm.display.wrapper.appendChild(img);\n        // Force a relayout, or Opera won't use our image for some obscure reason\n        img._top = img.offsetTop;\n      }\n      e.dataTransfer.setDragImage(img, 0, 0);\n      if (presto) { img.parentNode.removeChild(img); }\n    }\n  }\n\n  function onDragOver(cm, e) {\n    var pos = posFromMouse(cm, e);\n    if (!pos) { return }\n    var frag = document.createDocumentFragment();\n    drawSelectionCursor(cm, pos, frag);\n    if (!cm.display.dragCursor) {\n      cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n      cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n    }\n    removeChildrenAndAdd(cm.display.dragCursor, frag);\n  }\n\n  function clearDragCursor(cm) {\n    if (cm.display.dragCursor) {\n      cm.display.lineSpace.removeChild(cm.display.dragCursor);\n      cm.display.dragCursor = null;\n    }\n  }\n\n  // These must be handled carefully, because naively registering a\n  // handler for each editor will cause the editors to never be\n  // garbage collected.\n\n  function forEachCodeMirror(f) {\n    if (!document.getElementsByClassName) { return }\n    var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n    for (var i = 0; i < byClass.length; i++) {\n      var cm = byClass[i].CodeMirror;\n      if (cm) { editors.push(cm); }\n    }\n    if (editors.length) { editors[0].operation(function () {\n      for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n    }); }\n  }\n\n  var globalsRegistered = false;\n  function ensureGlobalHandlers() {\n    if (globalsRegistered) { return }\n    registerGlobalHandlers();\n    globalsRegistered = true;\n  }\n  function registerGlobalHandlers() {\n    // When the window resizes, we need to refresh active editors.\n    var resizeTimer;\n    on(window, \"resize\", function () {\n      if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n        resizeTimer = null;\n        forEachCodeMirror(onResize);\n      }, 100); }\n    });\n    // When the window loses focus, we want to show the editor as blurred\n    on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n  }\n  // Called when the window resizes\n  function onResize(cm) {\n    var d = cm.display;\n    // Might be a text scaling operation, clear size caches.\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n    d.scrollbarsClipped = false;\n    cm.setSize();\n  }\n\n  var keyNames = {\n    3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n    19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n    36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n    46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n    106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n    173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n    221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n    63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n  };\n\n  // Number keys\n  for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n  // Alphabetic keys\n  for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n  // Function keys\n  for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n  var keyMap = {};\n\n  keyMap.basic = {\n    \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n    \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n    \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n    \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n    \"Esc\": \"singleSelection\"\n  };\n  // Note that the save and find-related commands aren't defined by\n  // default. User code or addons can define them. Unknown commands\n  // are simply ignored.\n  keyMap.pcDefault = {\n    \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n    \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n    \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n    \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n    \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n    \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n    \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n    \"fallthrough\": \"basic\"\n  };\n  // Very basic readline/emacs-style bindings, which are standard on Mac.\n  keyMap.emacsy = {\n    \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n    \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n    \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\",\n    \"Ctrl-O\": \"openLine\"\n  };\n  keyMap.macDefault = {\n    \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n    \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n    \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n    \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n    \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n    \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n    \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n    \"fallthrough\": [\"basic\", \"emacsy\"]\n  };\n  keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n  // KEYMAP DISPATCH\n\n  function normalizeKeyName(name) {\n    var parts = name.split(/-(?!$)/);\n    name = parts[parts.length - 1];\n    var alt, ctrl, shift, cmd;\n    for (var i = 0; i < parts.length - 1; i++) {\n      var mod = parts[i];\n      if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n      else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n      else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n      else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n      else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n    }\n    if (alt) { name = \"Alt-\" + name; }\n    if (ctrl) { name = \"Ctrl-\" + name; }\n    if (cmd) { name = \"Cmd-\" + name; }\n    if (shift) { name = \"Shift-\" + name; }\n    return name\n  }\n\n  // This is a kludge to keep keymaps mostly working as raw objects\n  // (backwards compatibility) while at the same time support features\n  // like normalization and multi-stroke key bindings. It compiles a\n  // new normalized keymap, and then updates the old object to reflect\n  // this.\n  function normalizeKeyMap(keymap) {\n    var copy = {};\n    for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n      var value = keymap[keyname];\n      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n      if (value == \"...\") { delete keymap[keyname]; continue }\n\n      var keys = map(keyname.split(\" \"), normalizeKeyName);\n      for (var i = 0; i < keys.length; i++) {\n        var val = (void 0), name = (void 0);\n        if (i == keys.length - 1) {\n          name = keys.join(\" \");\n          val = value;\n        } else {\n          name = keys.slice(0, i + 1).join(\" \");\n          val = \"...\";\n        }\n        var prev = copy[name];\n        if (!prev) { copy[name] = val; }\n        else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n      }\n      delete keymap[keyname];\n    } }\n    for (var prop in copy) { keymap[prop] = copy[prop]; }\n    return keymap\n  }\n\n  function lookupKey(key, map, handle, context) {\n    map = getKeyMap(map);\n    var found = map.call ? map.call(key, context) : map[key];\n    if (found === false) { return \"nothing\" }\n    if (found === \"...\") { return \"multi\" }\n    if (found != null && handle(found)) { return \"handled\" }\n\n    if (map.fallthrough) {\n      if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n        { return lookupKey(key, map.fallthrough, handle, context) }\n      for (var i = 0; i < map.fallthrough.length; i++) {\n        var result = lookupKey(key, map.fallthrough[i], handle, context);\n        if (result) { return result }\n      }\n    }\n  }\n\n  // Modifier key presses don't count as 'real' key presses for the\n  // purpose of keymap fallthrough.\n  function isModifierKey(value) {\n    var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n    return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n  }\n\n  function addModifierNames(name, event, noShift) {\n    var base = name;\n    if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n    if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n    return name\n  }\n\n  // Look up the name of a key as indicated by an event object.\n  function keyName(event, noShift) {\n    if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n    var name = keyNames[event.keyCode];\n    if (name == null || event.altGraphKey) { return false }\n    // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n    // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n    if (event.keyCode == 3 && event.code) { name = event.code; }\n    return addModifierNames(name, event, noShift)\n  }\n\n  function getKeyMap(val) {\n    return typeof val == \"string\" ? keyMap[val] : val\n  }\n\n  // Helper for deleting text near the selection(s), used to implement\n  // backspace, delete, and similar functionality.\n  function deleteNearSelection(cm, compute) {\n    var ranges = cm.doc.sel.ranges, kill = [];\n    // Build up a set of ranges to kill first, merging overlapping\n    // ranges.\n    for (var i = 0; i < ranges.length; i++) {\n      var toKill = compute(ranges[i]);\n      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n        var replaced = kill.pop();\n        if (cmp(replaced.from, toKill.from) < 0) {\n          toKill.from = replaced.from;\n          break\n        }\n      }\n      kill.push(toKill);\n    }\n    // Next, remove those actual ranges.\n    runInOp(cm, function () {\n      for (var i = kill.length - 1; i >= 0; i--)\n        { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n      ensureCursorVisible(cm);\n    });\n  }\n\n  function moveCharLogically(line, ch, dir) {\n    var target = skipExtendingChars(line.text, ch + dir, dir);\n    return target < 0 || target > line.text.length ? null : target\n  }\n\n  function moveLogically(line, start, dir) {\n    var ch = moveCharLogically(line, start.ch, dir);\n    return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n  }\n\n  function endOfLine(visually, cm, lineObj, lineNo, dir) {\n    if (visually) {\n      if (cm.doc.direction == \"rtl\") { dir = -dir; }\n      var order = getOrder(lineObj, cm.doc.direction);\n      if (order) {\n        var part = dir < 0 ? lst(order) : order[0];\n        var moveInStorageOrder = (dir < 0) == (part.level == 1);\n        var sticky = moveInStorageOrder ? \"after\" : \"before\";\n        var ch;\n        // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n        // it could be that the last bidi part is not on the last visual line,\n        // since visual lines contain content order-consecutive chunks.\n        // Thus, in rtl, we are looking for the first (content-order) character\n        // in the rtl chunk that is on the last line (that is, the same line\n        // as the last (content-order) character).\n        if (part.level > 0 || cm.doc.direction == \"rtl\") {\n          var prep = prepareMeasureForLine(cm, lineObj);\n          ch = dir < 0 ? lineObj.text.length - 1 : 0;\n          var targetTop = measureCharPrepared(cm, prep, ch).top;\n          ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n          if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n        } else { ch = dir < 0 ? part.to : part.from; }\n        return new Pos(lineNo, ch, sticky)\n      }\n    }\n    return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n  }\n\n  function moveVisually(cm, line, start, dir) {\n    var bidi = getOrder(line, cm.doc.direction);\n    if (!bidi) { return moveLogically(line, start, dir) }\n    if (start.ch >= line.text.length) {\n      start.ch = line.text.length;\n      start.sticky = \"before\";\n    } else if (start.ch <= 0) {\n      start.ch = 0;\n      start.sticky = \"after\";\n    }\n    var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n    if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n      // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n      // nothing interesting happens.\n      return moveLogically(line, start, dir)\n    }\n\n    var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n    var prep;\n    var getWrappedLineExtent = function (ch) {\n      if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n      prep = prep || prepareMeasureForLine(cm, line);\n      return wrappedLineExtentChar(cm, line, prep, ch)\n    };\n    var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n    if (cm.doc.direction == \"rtl\" || part.level == 1) {\n      var moveInStorageOrder = (part.level == 1) == (dir < 0);\n      var ch = mv(start, moveInStorageOrder ? 1 : -1);\n      if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n        // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n        var sticky = moveInStorageOrder ? \"before\" : \"after\";\n        return new Pos(start.line, ch, sticky)\n      }\n    }\n\n    // Case 3: Could not move within this bidi part in this visual line, so leave\n    // the current bidi part\n\n    var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n      var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n        ? new Pos(start.line, mv(ch, 1), \"before\")\n        : new Pos(start.line, ch, \"after\"); };\n\n      for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n        var part = bidi[partPos];\n        var moveInStorageOrder = (dir > 0) == (part.level != 1);\n        var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n        if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n        ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n        if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n      }\n    };\n\n    // Case 3a: Look for other bidi parts on the same visual line\n    var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n    if (res) { return res }\n\n    // Case 3b: Look for other bidi parts on the next visual line\n    var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n    if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n      res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n      if (res) { return res }\n    }\n\n    // Case 4: Nowhere to move\n    return null\n  }\n\n  // Commands are parameter-less actions that can be performed on an\n  // editor, mostly used for keybindings.\n  var commands = {\n    selectAll: selectAll,\n    singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n    killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n      if (range.empty()) {\n        var len = getLine(cm.doc, range.head.line).text.length;\n        if (range.head.ch == len && range.head.line < cm.lastLine())\n          { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n        else\n          { return {from: range.head, to: Pos(range.head.line, len)} }\n      } else {\n        return {from: range.from(), to: range.to()}\n      }\n    }); },\n    deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n      from: Pos(range.from().line, 0),\n      to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n    }); }); },\n    delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n      from: Pos(range.from().line, 0), to: range.from()\n    }); }); },\n    delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n      var top = cm.charCoords(range.head, \"div\").top + 5;\n      var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n      return {from: leftPos, to: range.from()}\n    }); },\n    delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n      var top = cm.charCoords(range.head, \"div\").top + 5;\n      var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n      return {from: range.from(), to: rightPos }\n    }); },\n    undo: function (cm) { return cm.undo(); },\n    redo: function (cm) { return cm.redo(); },\n    undoSelection: function (cm) { return cm.undoSelection(); },\n    redoSelection: function (cm) { return cm.redoSelection(); },\n    goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n    goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n    goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n      {origin: \"+move\", bias: 1}\n    ); },\n    goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n      {origin: \"+move\", bias: 1}\n    ); },\n    goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n      {origin: \"+move\", bias: -1}\n    ); },\n    goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n      var top = cm.cursorCoords(range.head, \"div\").top + 5;\n      return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n    }, sel_move); },\n    goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n      var top = cm.cursorCoords(range.head, \"div\").top + 5;\n      return cm.coordsChar({left: 0, top: top}, \"div\")\n    }, sel_move); },\n    goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n      var top = cm.cursorCoords(range.head, \"div\").top + 5;\n      var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n      if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n      return pos\n    }, sel_move); },\n    goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n    goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n    goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n    goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n    goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n    goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n    goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n    goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n    goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n    goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n    goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n    goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n    delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n    delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n    delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n    delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n    delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n    delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n    indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n    indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n    indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n    insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n    insertSoftTab: function (cm) {\n      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n      for (var i = 0; i < ranges.length; i++) {\n        var pos = ranges[i].from();\n        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n        spaces.push(spaceStr(tabSize - col % tabSize));\n      }\n      cm.replaceSelections(spaces);\n    },\n    defaultTab: function (cm) {\n      if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n      else { cm.execCommand(\"insertTab\"); }\n    },\n    // Swap the two chars left and right of each selection's head.\n    // Move cursor behind the two swapped characters afterwards.\n    //\n    // Doesn't consider line feeds a character.\n    // Doesn't scan more than one line above to find a character.\n    // Doesn't do anything on an empty line.\n    // Doesn't do anything with non-empty selections.\n    transposeChars: function (cm) { return runInOp(cm, function () {\n      var ranges = cm.listSelections(), newSel = [];\n      for (var i = 0; i < ranges.length; i++) {\n        if (!ranges[i].empty()) { continue }\n        var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n        if (line) {\n          if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n          if (cur.ch > 0) {\n            cur = new Pos(cur.line, cur.ch + 1);\n            cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n                            Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n          } else if (cur.line > cm.doc.first) {\n            var prev = getLine(cm.doc, cur.line - 1).text;\n            if (prev) {\n              cur = new Pos(cur.line, 1);\n              cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n                              prev.charAt(prev.length - 1),\n                              Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n            }\n          }\n        }\n        newSel.push(new Range(cur, cur));\n      }\n      cm.setSelections(newSel);\n    }); },\n    newlineAndIndent: function (cm) { return runInOp(cm, function () {\n      var sels = cm.listSelections();\n      for (var i = sels.length - 1; i >= 0; i--)\n        { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n      sels = cm.listSelections();\n      for (var i$1 = 0; i$1 < sels.length; i$1++)\n        { cm.indentLine(sels[i$1].from().line, null, true); }\n      ensureCursorVisible(cm);\n    }); },\n    openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n    toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n  };\n\n\n  function lineStart(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLine(line);\n    if (visual != line) { lineN = lineNo(visual); }\n    return endOfLine(true, cm, visual, lineN, 1)\n  }\n  function lineEnd(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLineEnd(line);\n    if (visual != line) { lineN = lineNo(visual); }\n    return endOfLine(true, cm, line, lineN, -1)\n  }\n  function lineStartSmart(cm, pos) {\n    var start = lineStart(cm, pos.line);\n    var line = getLine(cm.doc, start.line);\n    var order = getOrder(line, cm.doc.direction);\n    if (!order || order[0].level == 0) {\n      var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n      return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n    }\n    return start\n  }\n\n  // Run a handler that was bound to a key.\n  function doHandleBinding(cm, bound, dropShift) {\n    if (typeof bound == \"string\") {\n      bound = commands[bound];\n      if (!bound) { return false }\n    }\n    // Ensure previous input has been read, so that the handler sees a\n    // consistent view of the document\n    cm.display.input.ensurePolled();\n    var prevShift = cm.display.shift, done = false;\n    try {\n      if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n      if (dropShift) { cm.display.shift = false; }\n      done = bound(cm) != Pass;\n    } finally {\n      cm.display.shift = prevShift;\n      cm.state.suppressEdits = false;\n    }\n    return done\n  }\n\n  function lookupKeyForEditor(cm, name, handle) {\n    for (var i = 0; i < cm.state.keyMaps.length; i++) {\n      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n      if (result) { return result }\n    }\n    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n      || lookupKey(name, cm.options.keyMap, handle, cm)\n  }\n\n  // Note that, despite the name, this function is also used to check\n  // for bound mouse clicks.\n\n  var stopSeq = new Delayed;\n\n  function dispatchKey(cm, name, e, handle) {\n    var seq = cm.state.keySeq;\n    if (seq) {\n      if (isModifierKey(name)) { return \"handled\" }\n      if (/\\'$/.test(name))\n        { cm.state.keySeq = null; }\n      else\n        { stopSeq.set(50, function () {\n          if (cm.state.keySeq == seq) {\n            cm.state.keySeq = null;\n            cm.display.input.reset();\n          }\n        }); }\n      if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n    }\n    return dispatchKeyInner(cm, name, e, handle)\n  }\n\n  function dispatchKeyInner(cm, name, e, handle) {\n    var result = lookupKeyForEditor(cm, name, handle);\n\n    if (result == \"multi\")\n      { cm.state.keySeq = name; }\n    if (result == \"handled\")\n      { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n    if (result == \"handled\" || result == \"multi\") {\n      e_preventDefault(e);\n      restartBlink(cm);\n    }\n\n    return !!result\n  }\n\n  // Handle a key from the keydown event.\n  function handleKeyBinding(cm, e) {\n    var name = keyName(e, true);\n    if (!name) { return false }\n\n    if (e.shiftKey && !cm.state.keySeq) {\n      // First try to resolve full name (including 'Shift-'). Failing\n      // that, see if there is a cursor-motion command (starting with\n      // 'go') bound to the keyname without 'Shift-'.\n      return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n          || dispatchKey(cm, name, e, function (b) {\n               if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n                 { return doHandleBinding(cm, b) }\n             })\n    } else {\n      return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n    }\n  }\n\n  // Handle a key from the keypress event\n  function handleCharBinding(cm, e, ch) {\n    return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n  }\n\n  var lastStoppedKey = null;\n  function onKeyDown(e) {\n    var cm = this;\n    if (e.target && e.target != cm.display.input.getField()) { return }\n    cm.curOp.focus = activeElt();\n    if (signalDOMEvent(cm, e)) { return }\n    // IE does strange things with escape.\n    if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n    var code = e.keyCode;\n    cm.display.shift = code == 16 || e.shiftKey;\n    var handled = handleKeyBinding(cm, e);\n    if (presto) {\n      lastStoppedKey = handled ? code : null;\n      // Opera has no cut event... we try to at least catch the key combo\n      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n        { cm.replaceSelection(\"\", null, \"cut\"); }\n    }\n    if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n      { document.execCommand(\"cut\"); }\n\n    // Turn mouse into crosshair when Alt is held on Mac.\n    if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n      { showCrossHair(cm); }\n  }\n\n  function showCrossHair(cm) {\n    var lineDiv = cm.display.lineDiv;\n    addClass(lineDiv, \"CodeMirror-crosshair\");\n\n    function up(e) {\n      if (e.keyCode == 18 || !e.altKey) {\n        rmClass(lineDiv, \"CodeMirror-crosshair\");\n        off(document, \"keyup\", up);\n        off(document, \"mouseover\", up);\n      }\n    }\n    on(document, \"keyup\", up);\n    on(document, \"mouseover\", up);\n  }\n\n  function onKeyUp(e) {\n    if (e.keyCode == 16) { this.doc.sel.shift = false; }\n    signalDOMEvent(this, e);\n  }\n\n  function onKeyPress(e) {\n    var cm = this;\n    if (e.target && e.target != cm.display.input.getField()) { return }\n    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n    var keyCode = e.keyCode, charCode = e.charCode;\n    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n    // Some browsers fire keypress events for backspace\n    if (ch == \"\\x08\") { return }\n    if (handleCharBinding(cm, e, ch)) { return }\n    cm.display.input.onKeyPress(e);\n  }\n\n  var DOUBLECLICK_DELAY = 400;\n\n  var PastClick = function(time, pos, button) {\n    this.time = time;\n    this.pos = pos;\n    this.button = button;\n  };\n\n  PastClick.prototype.compare = function (time, pos, button) {\n    return this.time + DOUBLECLICK_DELAY > time &&\n      cmp(pos, this.pos) == 0 && button == this.button\n  };\n\n  var lastClick, lastDoubleClick;\n  function clickRepeat(pos, button) {\n    var now = +new Date;\n    if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n      lastClick = lastDoubleClick = null;\n      return \"triple\"\n    } else if (lastClick && lastClick.compare(now, pos, button)) {\n      lastDoubleClick = new PastClick(now, pos, button);\n      lastClick = null;\n      return \"double\"\n    } else {\n      lastClick = new PastClick(now, pos, button);\n      lastDoubleClick = null;\n      return \"single\"\n    }\n  }\n\n  // A mouse down can be a single click, double click, triple click,\n  // start of selection drag, start of text drag, new cursor\n  // (ctrl-click), rectangle drag (alt-drag), or xwin\n  // middle-click-paste. Or it might be a click on something we should\n  // not interfere with, such as a scrollbar or widget.\n  function onMouseDown(e) {\n    var cm = this, display = cm.display;\n    if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n    display.input.ensurePolled();\n    display.shift = e.shiftKey;\n\n    if (eventInWidget(display, e)) {\n      if (!webkit) {\n        // Briefly turn off draggability, to allow widgets to do\n        // normal dragging things.\n        display.scroller.draggable = false;\n        setTimeout(function () { return display.scroller.draggable = true; }, 100);\n      }\n      return\n    }\n    if (clickInGutter(cm, e)) { return }\n    var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n    window.focus();\n\n    // #3261: make sure, that we're not starting a second selection\n    if (button == 1 && cm.state.selectingText)\n      { cm.state.selectingText(e); }\n\n    if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n    if (button == 1) {\n      if (pos) { leftButtonDown(cm, pos, repeat, e); }\n      else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n    } else if (button == 2) {\n      if (pos) { extendSelection(cm.doc, pos); }\n      setTimeout(function () { return display.input.focus(); }, 20);\n    } else if (button == 3) {\n      if (captureRightClick) { cm.display.input.onContextMenu(e); }\n      else { delayBlurEvent(cm); }\n    }\n  }\n\n  function handleMappedButton(cm, button, pos, repeat, event) {\n    var name = \"Click\";\n    if (repeat == \"double\") { name = \"Double\" + name; }\n    else if (repeat == \"triple\") { name = \"Triple\" + name; }\n    name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n    return dispatchKey(cm,  addModifierNames(name, event), event, function (bound) {\n      if (typeof bound == \"string\") { bound = commands[bound]; }\n      if (!bound) { return false }\n      var done = false;\n      try {\n        if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n        done = bound(cm, pos) != Pass;\n      } finally {\n        cm.state.suppressEdits = false;\n      }\n      return done\n    })\n  }\n\n  function configureMouse(cm, repeat, event) {\n    var option = cm.getOption(\"configureMouse\");\n    var value = option ? option(cm, repeat, event) : {};\n    if (value.unit == null) {\n      var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n      value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n    }\n    if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n    if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n    if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n    return value\n  }\n\n  function leftButtonDown(cm, pos, repeat, event) {\n    if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n    else { cm.curOp.focus = activeElt(); }\n\n    var behavior = configureMouse(cm, repeat, event);\n\n    var sel = cm.doc.sel, contained;\n    if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n        repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n        (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n        (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n      { leftButtonStartDrag(cm, event, pos, behavior); }\n    else\n      { leftButtonSelect(cm, event, pos, behavior); }\n  }\n\n  // Start a text drag. When it ends, see if any dragging actually\n  // happen, and treat as a click if it didn't.\n  function leftButtonStartDrag(cm, event, pos, behavior) {\n    var display = cm.display, moved = false;\n    var dragEnd = operation(cm, function (e) {\n      if (webkit) { display.scroller.draggable = false; }\n      cm.state.draggingText = false;\n      if (cm.state.delayingBlurEvent) {\n        if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n        else { delayBlurEvent(cm); }\n      }\n      off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n      off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n      off(display.scroller, \"dragstart\", dragStart);\n      off(display.scroller, \"drop\", dragEnd);\n      if (!moved) {\n        e_preventDefault(e);\n        if (!behavior.addNew)\n          { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n        // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n        if ((webkit && !safari) || ie && ie_version == 9)\n          { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n        else\n          { display.input.focus(); }\n      }\n    });\n    var mouseMove = function(e2) {\n      moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n    };\n    var dragStart = function () { return moved = true; };\n    // Let the drag handler handle this.\n    if (webkit) { display.scroller.draggable = true; }\n    cm.state.draggingText = dragEnd;\n    dragEnd.copy = !behavior.moveOnDrag;\n    on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n    on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n    on(display.scroller, \"dragstart\", dragStart);\n    on(display.scroller, \"drop\", dragEnd);\n\n    cm.state.delayingBlurEvent = true;\n    setTimeout(function () { return display.input.focus(); }, 20);\n    // IE's approach to draggable\n    if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n  }\n\n  function rangeForUnit(cm, pos, unit) {\n    if (unit == \"char\") { return new Range(pos, pos) }\n    if (unit == \"word\") { return cm.findWordAt(pos) }\n    if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n    var result = unit(cm, pos);\n    return new Range(result.from, result.to)\n  }\n\n  // Normal selection, as opposed to text dragging.\n  function leftButtonSelect(cm, event, start, behavior) {\n    if (ie) { delayBlurEvent(cm); }\n    var display = cm.display, doc = cm.doc;\n    e_preventDefault(event);\n\n    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n    if (behavior.addNew && !behavior.extend) {\n      ourIndex = doc.sel.contains(start);\n      if (ourIndex > -1)\n        { ourRange = ranges[ourIndex]; }\n      else\n        { ourRange = new Range(start, start); }\n    } else {\n      ourRange = doc.sel.primary();\n      ourIndex = doc.sel.primIndex;\n    }\n\n    if (behavior.unit == \"rectangle\") {\n      if (!behavior.addNew) { ourRange = new Range(start, start); }\n      start = posFromMouse(cm, event, true, true);\n      ourIndex = -1;\n    } else {\n      var range = rangeForUnit(cm, start, behavior.unit);\n      if (behavior.extend)\n        { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n      else\n        { ourRange = range; }\n    }\n\n    if (!behavior.addNew) {\n      ourIndex = 0;\n      setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n      startSel = doc.sel;\n    } else if (ourIndex == -1) {\n      ourIndex = ranges.length;\n      setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n                   {scroll: false, origin: \"*mouse\"});\n    } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n      setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n                   {scroll: false, origin: \"*mouse\"});\n      startSel = doc.sel;\n    } else {\n      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n    }\n\n    var lastPos = start;\n    function extendTo(pos) {\n      if (cmp(lastPos, pos) == 0) { return }\n      lastPos = pos;\n\n      if (behavior.unit == \"rectangle\") {\n        var ranges = [], tabSize = cm.options.tabSize;\n        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n             line <= end; line++) {\n          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n          if (left == right)\n            { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n          else if (text.length > leftPos)\n            { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n        }\n        if (!ranges.length) { ranges.push(new Range(start, start)); }\n        setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n                     {origin: \"*mouse\", scroll: false});\n        cm.scrollIntoView(pos);\n      } else {\n        var oldRange = ourRange;\n        var range = rangeForUnit(cm, pos, behavior.unit);\n        var anchor = oldRange.anchor, head;\n        if (cmp(range.anchor, anchor) > 0) {\n          head = range.head;\n          anchor = minPos(oldRange.from(), range.anchor);\n        } else {\n          head = range.anchor;\n          anchor = maxPos(oldRange.to(), range.head);\n        }\n        var ranges$1 = startSel.ranges.slice(0);\n        ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n        setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n      }\n    }\n\n    var editorSize = display.wrapper.getBoundingClientRect();\n    // Used to ensure timeout re-tries don't fire when another extend\n    // happened in the meantime (clearTimeout isn't reliable -- at\n    // least on Chrome, the timeouts still happen even when cleared,\n    // if the clear happens after their scheduled firing time).\n    var counter = 0;\n\n    function extend(e) {\n      var curCount = ++counter;\n      var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n      if (!cur) { return }\n      if (cmp(cur, lastPos) != 0) {\n        cm.curOp.focus = activeElt();\n        extendTo(cur);\n        var visible = visibleLines(display, doc);\n        if (cur.line >= visible.to || cur.line < visible.from)\n          { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n      } else {\n        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n        if (outside) { setTimeout(operation(cm, function () {\n          if (counter != curCount) { return }\n          display.scroller.scrollTop += outside;\n          extend(e);\n        }), 50); }\n      }\n    }\n\n    function done(e) {\n      cm.state.selectingText = false;\n      counter = Infinity;\n      // If e is null or undefined we interpret this as someone trying\n      // to explicitly cancel the selection rather than the user\n      // letting go of the mouse button.\n      if (e) {\n        e_preventDefault(e);\n        display.input.focus();\n      }\n      off(display.wrapper.ownerDocument, \"mousemove\", move);\n      off(display.wrapper.ownerDocument, \"mouseup\", up);\n      doc.history.lastSelOrigin = null;\n    }\n\n    var move = operation(cm, function (e) {\n      if (e.buttons === 0 || !e_button(e)) { done(e); }\n      else { extend(e); }\n    });\n    var up = operation(cm, done);\n    cm.state.selectingText = up;\n    on(display.wrapper.ownerDocument, \"mousemove\", move);\n    on(display.wrapper.ownerDocument, \"mouseup\", up);\n  }\n\n  // Used when mouse-selecting to adjust the anchor to the proper side\n  // of a bidi jump depending on the visual position of the head.\n  function bidiSimplify(cm, range) {\n    var anchor = range.anchor;\n    var head = range.head;\n    var anchorLine = getLine(cm.doc, anchor.line);\n    if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n    var order = getOrder(anchorLine);\n    if (!order) { return range }\n    var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n    if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n    var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n    if (boundary == 0 || boundary == order.length) { return range }\n\n    // Compute the relative visual position of the head compared to the\n    // anchor (<0 is to the left, >0 to the right)\n    var leftSide;\n    if (head.line != anchor.line) {\n      leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n    } else {\n      var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n      var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n      if (headIndex == boundary - 1 || headIndex == boundary)\n        { leftSide = dir < 0; }\n      else\n        { leftSide = dir > 0; }\n    }\n\n    var usePart = order[boundary + (leftSide ? -1 : 0)];\n    var from = leftSide == (usePart.level == 1);\n    var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n    return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n  }\n\n\n  // Determines whether an event happened in the gutter, and fires the\n  // handlers for the corresponding event.\n  function gutterEvent(cm, e, type, prevent) {\n    var mX, mY;\n    if (e.touches) {\n      mX = e.touches[0].clientX;\n      mY = e.touches[0].clientY;\n    } else {\n      try { mX = e.clientX; mY = e.clientY; }\n      catch(e$1) { return false }\n    }\n    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n    if (prevent) { e_preventDefault(e); }\n\n    var display = cm.display;\n    var lineBox = display.lineDiv.getBoundingClientRect();\n\n    if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n    mY -= lineBox.top - display.viewOffset;\n\n    for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n      var g = display.gutters.childNodes[i];\n      if (g && g.getBoundingClientRect().right >= mX) {\n        var line = lineAtHeight(cm.doc, mY);\n        var gutter = cm.display.gutterSpecs[i];\n        signal(cm, type, cm, line, gutter.className, e);\n        return e_defaultPrevented(e)\n      }\n    }\n  }\n\n  function clickInGutter(cm, e) {\n    return gutterEvent(cm, e, \"gutterClick\", true)\n  }\n\n  // CONTEXT MENU HANDLING\n\n  // To make the context menu work, we need to briefly unhide the\n  // textarea (making it as unobtrusive as possible) to let the\n  // right-click take effect on it.\n  function onContextMenu(cm, e) {\n    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n    if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n    if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n  }\n\n  function contextMenuInGutter(cm, e) {\n    if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n    return gutterEvent(cm, e, \"gutterContextMenu\", false)\n  }\n\n  function themeChanged(cm) {\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n      cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n    clearCaches(cm);\n  }\n\n  var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n  var defaults = {};\n  var optionHandlers = {};\n\n  function defineOptions(CodeMirror) {\n    var optionHandlers = CodeMirror.optionHandlers;\n\n    function option(name, deflt, handle, notOnInit) {\n      CodeMirror.defaults[name] = deflt;\n      if (handle) { optionHandlers[name] =\n        notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n    }\n\n    CodeMirror.defineOption = option;\n\n    // Passed to option handlers when there is no old value.\n    CodeMirror.Init = Init;\n\n    // These two are, on init, called from the constructor because they\n    // have to be initialized before the editor can start at all.\n    option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n    option(\"mode\", null, function (cm, val) {\n      cm.doc.modeOption = val;\n      loadMode(cm);\n    }, true);\n\n    option(\"indentUnit\", 2, loadMode, true);\n    option(\"indentWithTabs\", false);\n    option(\"smartIndent\", true);\n    option(\"tabSize\", 4, function (cm) {\n      resetModeState(cm);\n      clearCaches(cm);\n      regChange(cm);\n    }, true);\n\n    option(\"lineSeparator\", null, function (cm, val) {\n      cm.doc.lineSep = val;\n      if (!val) { return }\n      var newBreaks = [], lineNo = cm.doc.first;\n      cm.doc.iter(function (line) {\n        for (var pos = 0;;) {\n          var found = line.text.indexOf(val, pos);\n          if (found == -1) { break }\n          pos = found + val.length;\n          newBreaks.push(Pos(lineNo, found));\n        }\n        lineNo++;\n      });\n      for (var i = newBreaks.length - 1; i >= 0; i--)\n        { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n    });\n    option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n      cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n      if (old != Init) { cm.refresh(); }\n    });\n    option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n    option(\"electricChars\", true);\n    option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n      throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n    }, true);\n    option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n    option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n    option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n    option(\"rtlMoveVisually\", !windows);\n    option(\"wholeLineUpdateBefore\", true);\n\n    option(\"theme\", \"default\", function (cm) {\n      themeChanged(cm);\n      updateGutters(cm);\n    }, true);\n    option(\"keyMap\", \"default\", function (cm, val, old) {\n      var next = getKeyMap(val);\n      var prev = old != Init && getKeyMap(old);\n      if (prev && prev.detach) { prev.detach(cm, next); }\n      if (next.attach) { next.attach(cm, prev || null); }\n    });\n    option(\"extraKeys\", null);\n    option(\"configureMouse\", null);\n\n    option(\"lineWrapping\", false, wrappingChanged, true);\n    option(\"gutters\", [], function (cm, val) {\n      cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n      updateGutters(cm);\n    }, true);\n    option(\"fixedGutter\", true, function (cm, val) {\n      cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n      cm.refresh();\n    }, true);\n    option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n    option(\"scrollbarStyle\", \"native\", function (cm) {\n      initScrollbars(cm);\n      updateScrollbars(cm);\n      cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n      cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n    }, true);\n    option(\"lineNumbers\", false, function (cm, val) {\n      cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n      updateGutters(cm);\n    }, true);\n    option(\"firstLineNumber\", 1, updateGutters, true);\n    option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n    option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n    option(\"resetSelectionOnContextMenu\", true);\n    option(\"lineWiseCopyCut\", true);\n    option(\"pasteLinesPerSelection\", true);\n    option(\"selectionsMayTouch\", false);\n\n    option(\"readOnly\", false, function (cm, val) {\n      if (val == \"nocursor\") {\n        onBlur(cm);\n        cm.display.input.blur();\n      }\n      cm.display.input.readOnlyChanged(val);\n    });\n\n    option(\"screenReaderLabel\", null, function (cm, val) {\n      val = (val === '') ? null : val;\n      cm.display.input.screenReaderLabelChanged(val);\n    });\n\n    option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n    option(\"dragDrop\", true, dragDropChanged);\n    option(\"allowDropFileTypes\", null);\n\n    option(\"cursorBlinkRate\", 530);\n    option(\"cursorScrollMargin\", 0);\n    option(\"cursorHeight\", 1, updateSelection, true);\n    option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n    option(\"workTime\", 100);\n    option(\"workDelay\", 100);\n    option(\"flattenSpans\", true, resetModeState, true);\n    option(\"addModeClass\", false, resetModeState, true);\n    option(\"pollInterval\", 100);\n    option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n    option(\"historyEventDelay\", 1250);\n    option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n    option(\"maxHighlightLength\", 10000, resetModeState, true);\n    option(\"moveInputWithCursor\", true, function (cm, val) {\n      if (!val) { cm.display.input.resetPosition(); }\n    });\n\n    option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n    option(\"autofocus\", null);\n    option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n    option(\"phrases\", null);\n  }\n\n  function dragDropChanged(cm, value, old) {\n    var wasOn = old && old != Init;\n    if (!value != !wasOn) {\n      var funcs = cm.display.dragFunctions;\n      var toggle = value ? on : off;\n      toggle(cm.display.scroller, \"dragstart\", funcs.start);\n      toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n      toggle(cm.display.scroller, \"dragover\", funcs.over);\n      toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n      toggle(cm.display.scroller, \"drop\", funcs.drop);\n    }\n  }\n\n  function wrappingChanged(cm) {\n    if (cm.options.lineWrapping) {\n      addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      cm.display.sizer.style.minWidth = \"\";\n      cm.display.sizerWidth = null;\n    } else {\n      rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      findMaxLine(cm);\n    }\n    estimateLineHeights(cm);\n    regChange(cm);\n    clearCaches(cm);\n    setTimeout(function () { return updateScrollbars(cm); }, 100);\n  }\n\n  // A CodeMirror instance represents an editor. This is the object\n  // that user code is usually dealing with.\n\n  function CodeMirror(place, options) {\n    var this$1 = this;\n\n    if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n    this.options = options = options ? copyObj(options) : {};\n    // Determine effective options based on given values and defaults.\n    copyObj(defaults, options, false);\n\n    var doc = options.value;\n    if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n    else if (options.mode) { doc.modeOption = options.mode; }\n    this.doc = doc;\n\n    var input = new CodeMirror.inputStyles[options.inputStyle](this);\n    var display = this.display = new Display(place, doc, input, options);\n    display.wrapper.CodeMirror = this;\n    themeChanged(this);\n    if (options.lineWrapping)\n      { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n    initScrollbars(this);\n\n    this.state = {\n      keyMaps: [],  // stores maps added by addKeyMap\n      overlays: [], // highlighting overlays, as added by addOverlay\n      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info\n      overwrite: false,\n      delayingBlurEvent: false,\n      focused: false,\n      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n      pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n      selectingText: false,\n      draggingText: false,\n      highlight: new Delayed(), // stores highlight worker timeout\n      keySeq: null,  // Unfinished key sequence\n      specialChars: null\n    };\n\n    if (options.autofocus && !mobile) { display.input.focus(); }\n\n    // Override magic textarea content restore that IE sometimes does\n    // on our hidden textarea on reload\n    if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n    registerEventHandlers(this);\n    ensureGlobalHandlers();\n\n    startOperation(this);\n    this.curOp.forceUpdate = true;\n    attachDoc(this, doc);\n\n    if ((options.autofocus && !mobile) || this.hasFocus())\n      { setTimeout(function () {\n        if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n      }, 20); }\n    else\n      { onBlur(this); }\n\n    for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n      { optionHandlers[opt](this, options[opt], Init); } }\n    maybeUpdateLineNumberWidth(this);\n    if (options.finishInit) { options.finishInit(this); }\n    for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n    endOperation(this);\n    // Suppress optimizelegibility in Webkit, since it breaks text\n    // measuring on line wrapping boundaries.\n    if (webkit && options.lineWrapping &&\n        getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n      { display.lineDiv.style.textRendering = \"auto\"; }\n  }\n\n  // The default configuration options.\n  CodeMirror.defaults = defaults;\n  // Functions to run when options are changed.\n  CodeMirror.optionHandlers = optionHandlers;\n\n  // Attach the necessary event handlers when initializing the editor\n  function registerEventHandlers(cm) {\n    var d = cm.display;\n    on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n    // Older IE's will not fire a second mousedown for a double click\n    if (ie && ie_version < 11)\n      { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n        if (signalDOMEvent(cm, e)) { return }\n        var pos = posFromMouse(cm, e);\n        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n        e_preventDefault(e);\n        var word = cm.findWordAt(pos);\n        extendSelection(cm.doc, word.anchor, word.head);\n      })); }\n    else\n      { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n    // Some browsers fire contextmenu *after* opening the menu, at\n    // which point we can't mess with it anymore. Context menu is\n    // handled in onMouseDown for these browsers.\n    on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n    on(d.input.getField(), \"contextmenu\", function (e) {\n      if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n    });\n\n    // Used to suppress mouse event handling when a touch happens\n    var touchFinished, prevTouch = {end: 0};\n    function finishTouch() {\n      if (d.activeTouch) {\n        touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n        prevTouch = d.activeTouch;\n        prevTouch.end = +new Date;\n      }\n    }\n    function isMouseLikeTouchEvent(e) {\n      if (e.touches.length != 1) { return false }\n      var touch = e.touches[0];\n      return touch.radiusX <= 1 && touch.radiusY <= 1\n    }\n    function farAway(touch, other) {\n      if (other.left == null) { return true }\n      var dx = other.left - touch.left, dy = other.top - touch.top;\n      return dx * dx + dy * dy > 20 * 20\n    }\n    on(d.scroller, \"touchstart\", function (e) {\n      if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n        d.input.ensurePolled();\n        clearTimeout(touchFinished);\n        var now = +new Date;\n        d.activeTouch = {start: now, moved: false,\n                         prev: now - prevTouch.end <= 300 ? prevTouch : null};\n        if (e.touches.length == 1) {\n          d.activeTouch.left = e.touches[0].pageX;\n          d.activeTouch.top = e.touches[0].pageY;\n        }\n      }\n    });\n    on(d.scroller, \"touchmove\", function () {\n      if (d.activeTouch) { d.activeTouch.moved = true; }\n    });\n    on(d.scroller, \"touchend\", function (e) {\n      var touch = d.activeTouch;\n      if (touch && !eventInWidget(d, e) && touch.left != null &&\n          !touch.moved && new Date - touch.start < 300) {\n        var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n        if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n          { range = new Range(pos, pos); }\n        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n          { range = cm.findWordAt(pos); }\n        else // Triple tap\n          { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n        cm.setSelection(range.anchor, range.head);\n        cm.focus();\n        e_preventDefault(e);\n      }\n      finishTouch();\n    });\n    on(d.scroller, \"touchcancel\", finishTouch);\n\n    // Sync scrolling between fake scrollbars and real scrollable\n    // area, ensure viewport is updated when scrolling.\n    on(d.scroller, \"scroll\", function () {\n      if (d.scroller.clientHeight) {\n        updateScrollTop(cm, d.scroller.scrollTop);\n        setScrollLeft(cm, d.scroller.scrollLeft, true);\n        signal(cm, \"scroll\", cm);\n      }\n    });\n\n    // Listen to wheel events in order to try and update the viewport on time.\n    on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n    on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n    // Prevent wrapper from ever scrolling\n    on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n    d.dragFunctions = {\n      enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n      over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n      start: function (e) { return onDragStart(cm, e); },\n      drop: operation(cm, onDrop),\n      leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n    };\n\n    var inp = d.input.getField();\n    on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n    on(inp, \"keydown\", operation(cm, onKeyDown));\n    on(inp, \"keypress\", operation(cm, onKeyPress));\n    on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n    on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n  }\n\n  var initHooks = [];\n  CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n  // Indent the given line. The how parameter can be \"smart\",\n  // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n  // (typically set to true for forced single-line indents), empty\n  // lines are not indented, and places where the mode returns Pass\n  // are left alone.\n  function indentLine(cm, n, how, aggressive) {\n    var doc = cm.doc, state;\n    if (how == null) { how = \"add\"; }\n    if (how == \"smart\") {\n      // Fall back to \"prev\" when the mode doesn't have an indentation\n      // method.\n      if (!doc.mode.indent) { how = \"prev\"; }\n      else { state = getContextBefore(cm, n).state; }\n    }\n\n    var tabSize = cm.options.tabSize;\n    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n    if (line.stateAfter) { line.stateAfter = null; }\n    var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n    if (!aggressive && !/\\S/.test(line.text)) {\n      indentation = 0;\n      how = \"not\";\n    } else if (how == \"smart\") {\n      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n      if (indentation == Pass || indentation > 150) {\n        if (!aggressive) { return }\n        how = \"prev\";\n      }\n    }\n    if (how == \"prev\") {\n      if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n      else { indentation = 0; }\n    } else if (how == \"add\") {\n      indentation = curSpace + cm.options.indentUnit;\n    } else if (how == \"subtract\") {\n      indentation = curSpace - cm.options.indentUnit;\n    } else if (typeof how == \"number\") {\n      indentation = curSpace + how;\n    }\n    indentation = Math.max(0, indentation);\n\n    var indentString = \"\", pos = 0;\n    if (cm.options.indentWithTabs)\n      { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n    if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n    if (indentString != curSpaceString) {\n      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n      line.stateAfter = null;\n      return true\n    } else {\n      // Ensure that, if the cursor was in the whitespace at the start\n      // of the line, it is moved to the end of that space.\n      for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n        var range = doc.sel.ranges[i$1];\n        if (range.head.line == n && range.head.ch < curSpaceString.length) {\n          var pos$1 = Pos(n, curSpaceString.length);\n          replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n          break\n        }\n      }\n    }\n  }\n\n  // This will be set to a {lineWise: bool, text: [string]} object, so\n  // that, when pasting, we know what kind of selections the copied\n  // text was made out of.\n  var lastCopied = null;\n\n  function setLastCopied(newLastCopied) {\n    lastCopied = newLastCopied;\n  }\n\n  function applyTextInput(cm, inserted, deleted, sel, origin) {\n    var doc = cm.doc;\n    cm.display.shift = false;\n    if (!sel) { sel = doc.sel; }\n\n    var recent = +new Date - 200;\n    var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n    var textLines = splitLinesAuto(inserted), multiPaste = null;\n    // When pasting N lines into N selections, insert one line per selection\n    if (paste && sel.ranges.length > 1) {\n      if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n        if (sel.ranges.length % lastCopied.text.length == 0) {\n          multiPaste = [];\n          for (var i = 0; i < lastCopied.text.length; i++)\n            { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n        }\n      } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n        multiPaste = map(textLines, function (l) { return [l]; });\n      }\n    }\n\n    var updateInput = cm.curOp.updateInput;\n    // Normal behavior is to insert the new text into every selection\n    for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n      var range = sel.ranges[i$1];\n      var from = range.from(), to = range.to();\n      if (range.empty()) {\n        if (deleted && deleted > 0) // Handle deletion\n          { from = Pos(from.line, from.ch - deleted); }\n        else if (cm.state.overwrite && !paste) // Handle overwrite\n          { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n        else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n          { from = to = Pos(from.line, 0); }\n      }\n      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n                         origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n      makeChange(cm.doc, changeEvent);\n      signalLater(cm, \"inputRead\", cm, changeEvent);\n    }\n    if (inserted && !paste)\n      { triggerElectric(cm, inserted); }\n\n    ensureCursorVisible(cm);\n    if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n    cm.curOp.typing = true;\n    cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n  }\n\n  function handlePaste(e, cm) {\n    var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n    if (pasted) {\n      e.preventDefault();\n      if (!cm.isReadOnly() && !cm.options.disableInput)\n        { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n      return true\n    }\n  }\n\n  function triggerElectric(cm, inserted) {\n    // When an 'electric' character is inserted, immediately trigger a reindent\n    if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n    var sel = cm.doc.sel;\n\n    for (var i = sel.ranges.length - 1; i >= 0; i--) {\n      var range = sel.ranges[i];\n      if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n      var mode = cm.getModeAt(range.head);\n      var indented = false;\n      if (mode.electricChars) {\n        for (var j = 0; j < mode.electricChars.length; j++)\n          { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n            indented = indentLine(cm, range.head.line, \"smart\");\n            break\n          } }\n      } else if (mode.electricInput) {\n        if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n          { indented = indentLine(cm, range.head.line, \"smart\"); }\n      }\n      if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n    }\n  }\n\n  function copyableRanges(cm) {\n    var text = [], ranges = [];\n    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n      var line = cm.doc.sel.ranges[i].head.line;\n      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n      ranges.push(lineRange);\n      text.push(cm.getRange(lineRange.anchor, lineRange.head));\n    }\n    return {text: text, ranges: ranges}\n  }\n\n  function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n    field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n    field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n    field.setAttribute(\"spellcheck\", !!spellcheck);\n  }\n\n  function hiddenTextarea() {\n    var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n    var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n    // The textarea is kept positioned near the cursor to prevent the\n    // fact that it'll be scrolled into view on input from scrolling\n    // our fake cursor out of view. On webkit, when wrap=off, paste is\n    // very slow. So make the area wide instead.\n    if (webkit) { te.style.width = \"1000px\"; }\n    else { te.setAttribute(\"wrap\", \"off\"); }\n    // If border: 0; -- iOS fails to open keyboard (issue #1287)\n    if (ios) { te.style.border = \"1px solid black\"; }\n    disableBrowserMagic(te);\n    return div\n  }\n\n  // The publicly visible API. Note that methodOp(f) means\n  // 'wrap f in an operation, performed on its `this` parameter'.\n\n  // This is not the complete set of editor methods. Most of the\n  // methods defined on the Doc type are also injected into\n  // CodeMirror.prototype, for backwards compatibility and\n  // convenience.\n\n  function addEditorMethods(CodeMirror) {\n    var optionHandlers = CodeMirror.optionHandlers;\n\n    var helpers = CodeMirror.helpers = {};\n\n    CodeMirror.prototype = {\n      constructor: CodeMirror,\n      focus: function(){window.focus(); this.display.input.focus();},\n\n      setOption: function(option, value) {\n        var options = this.options, old = options[option];\n        if (options[option] == value && option != \"mode\") { return }\n        options[option] = value;\n        if (optionHandlers.hasOwnProperty(option))\n          { operation(this, optionHandlers[option])(this, value, old); }\n        signal(this, \"optionChange\", this, option);\n      },\n\n      getOption: function(option) {return this.options[option]},\n      getDoc: function() {return this.doc},\n\n      addKeyMap: function(map, bottom) {\n        this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n      },\n      removeKeyMap: function(map) {\n        var maps = this.state.keyMaps;\n        for (var i = 0; i < maps.length; ++i)\n          { if (maps[i] == map || maps[i].name == map) {\n            maps.splice(i, 1);\n            return true\n          } }\n      },\n\n      addOverlay: methodOp(function(spec, options) {\n        var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n        if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n        insertSorted(this.state.overlays,\n                     {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n                      priority: (options && options.priority) || 0},\n                     function (overlay) { return overlay.priority; });\n        this.state.modeGen++;\n        regChange(this);\n      }),\n      removeOverlay: methodOp(function(spec) {\n        var overlays = this.state.overlays;\n        for (var i = 0; i < overlays.length; ++i) {\n          var cur = overlays[i].modeSpec;\n          if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n            overlays.splice(i, 1);\n            this.state.modeGen++;\n            regChange(this);\n            return\n          }\n        }\n      }),\n\n      indentLine: methodOp(function(n, dir, aggressive) {\n        if (typeof dir != \"string\" && typeof dir != \"number\") {\n          if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n          else { dir = dir ? \"add\" : \"subtract\"; }\n        }\n        if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n      }),\n      indentSelection: methodOp(function(how) {\n        var ranges = this.doc.sel.ranges, end = -1;\n        for (var i = 0; i < ranges.length; i++) {\n          var range = ranges[i];\n          if (!range.empty()) {\n            var from = range.from(), to = range.to();\n            var start = Math.max(end, from.line);\n            end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n            for (var j = start; j < end; ++j)\n              { indentLine(this, j, how); }\n            var newRanges = this.doc.sel.ranges;\n            if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n              { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n          } else if (range.head.line > end) {\n            indentLine(this, range.head.line, how, true);\n            end = range.head.line;\n            if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n          }\n        }\n      }),\n\n      // Fetch the parser token for a given character. Useful for hacks\n      // that want to inspect the mode state (say, for completion).\n      getTokenAt: function(pos, precise) {\n        return takeToken(this, pos, precise)\n      },\n\n      getLineTokens: function(line, precise) {\n        return takeToken(this, Pos(line), precise, true)\n      },\n\n      getTokenTypeAt: function(pos) {\n        pos = clipPos(this.doc, pos);\n        var styles = getLineStyles(this, getLine(this.doc, pos.line));\n        var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n        var type;\n        if (ch == 0) { type = styles[2]; }\n        else { for (;;) {\n          var mid = (before + after) >> 1;\n          if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n          else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n          else { type = styles[mid * 2 + 2]; break }\n        } }\n        var cut = type ? type.indexOf(\"overlay \") : -1;\n        return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n      },\n\n      getModeAt: function(pos) {\n        var mode = this.doc.mode;\n        if (!mode.innerMode) { return mode }\n        return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n      },\n\n      getHelper: function(pos, type) {\n        return this.getHelpers(pos, type)[0]\n      },\n\n      getHelpers: function(pos, type) {\n        var found = [];\n        if (!helpers.hasOwnProperty(type)) { return found }\n        var help = helpers[type], mode = this.getModeAt(pos);\n        if (typeof mode[type] == \"string\") {\n          if (help[mode[type]]) { found.push(help[mode[type]]); }\n        } else if (mode[type]) {\n          for (var i = 0; i < mode[type].length; i++) {\n            var val = help[mode[type][i]];\n            if (val) { found.push(val); }\n          }\n        } else if (mode.helperType && help[mode.helperType]) {\n          found.push(help[mode.helperType]);\n        } else if (help[mode.name]) {\n          found.push(help[mode.name]);\n        }\n        for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n          var cur = help._global[i$1];\n          if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n            { found.push(cur.val); }\n        }\n        return found\n      },\n\n      getStateAfter: function(line, precise) {\n        var doc = this.doc;\n        line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n        return getContextBefore(this, line + 1, precise).state\n      },\n\n      cursorCoords: function(start, mode) {\n        var pos, range = this.doc.sel.primary();\n        if (start == null) { pos = range.head; }\n        else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n        else { pos = start ? range.from() : range.to(); }\n        return cursorCoords(this, pos, mode || \"page\")\n      },\n\n      charCoords: function(pos, mode) {\n        return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n      },\n\n      coordsChar: function(coords, mode) {\n        coords = fromCoordSystem(this, coords, mode || \"page\");\n        return coordsChar(this, coords.left, coords.top)\n      },\n\n      lineAtHeight: function(height, mode) {\n        height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n        return lineAtHeight(this.doc, height + this.display.viewOffset)\n      },\n      heightAtLine: function(line, mode, includeWidgets) {\n        var end = false, lineObj;\n        if (typeof line == \"number\") {\n          var last = this.doc.first + this.doc.size - 1;\n          if (line < this.doc.first) { line = this.doc.first; }\n          else if (line > last) { line = last; end = true; }\n          lineObj = getLine(this.doc, line);\n        } else {\n          lineObj = line;\n        }\n        return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n          (end ? this.doc.height - heightAtLine(lineObj) : 0)\n      },\n\n      defaultTextHeight: function() { return textHeight(this.display) },\n      defaultCharWidth: function() { return charWidth(this.display) },\n\n      getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n      addWidget: function(pos, node, scroll, vert, horiz) {\n        var display = this.display;\n        pos = cursorCoords(this, clipPos(this.doc, pos));\n        var top = pos.bottom, left = pos.left;\n        node.style.position = \"absolute\";\n        node.setAttribute(\"cm-ignore-events\", \"true\");\n        this.display.input.setUneditable(node);\n        display.sizer.appendChild(node);\n        if (vert == \"over\") {\n          top = pos.top;\n        } else if (vert == \"above\" || vert == \"near\") {\n          var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n          hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n          // Default to positioning above (if specified and possible); otherwise default to positioning below\n          if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n            { top = pos.top - node.offsetHeight; }\n          else if (pos.bottom + node.offsetHeight <= vspace)\n            { top = pos.bottom; }\n          if (left + node.offsetWidth > hspace)\n            { left = hspace - node.offsetWidth; }\n        }\n        node.style.top = top + \"px\";\n        node.style.left = node.style.right = \"\";\n        if (horiz == \"right\") {\n          left = display.sizer.clientWidth - node.offsetWidth;\n          node.style.right = \"0px\";\n        } else {\n          if (horiz == \"left\") { left = 0; }\n          else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n          node.style.left = left + \"px\";\n        }\n        if (scroll)\n          { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n      },\n\n      triggerOnKeyDown: methodOp(onKeyDown),\n      triggerOnKeyPress: methodOp(onKeyPress),\n      triggerOnKeyUp: onKeyUp,\n      triggerOnMouseDown: methodOp(onMouseDown),\n\n      execCommand: function(cmd) {\n        if (commands.hasOwnProperty(cmd))\n          { return commands[cmd].call(null, this) }\n      },\n\n      triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n      findPosH: function(from, amount, unit, visually) {\n        var dir = 1;\n        if (amount < 0) { dir = -1; amount = -amount; }\n        var cur = clipPos(this.doc, from);\n        for (var i = 0; i < amount; ++i) {\n          cur = findPosH(this.doc, cur, dir, unit, visually);\n          if (cur.hitSide) { break }\n        }\n        return cur\n      },\n\n      moveH: methodOp(function(dir, unit) {\n        var this$1 = this;\n\n        this.extendSelectionsBy(function (range) {\n          if (this$1.display.shift || this$1.doc.extend || range.empty())\n            { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n          else\n            { return dir < 0 ? range.from() : range.to() }\n        }, sel_move);\n      }),\n\n      deleteH: methodOp(function(dir, unit) {\n        var sel = this.doc.sel, doc = this.doc;\n        if (sel.somethingSelected())\n          { doc.replaceSelection(\"\", null, \"+delete\"); }\n        else\n          { deleteNearSelection(this, function (range) {\n            var other = findPosH(doc, range.head, dir, unit, false);\n            return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n          }); }\n      }),\n\n      findPosV: function(from, amount, unit, goalColumn) {\n        var dir = 1, x = goalColumn;\n        if (amount < 0) { dir = -1; amount = -amount; }\n        var cur = clipPos(this.doc, from);\n        for (var i = 0; i < amount; ++i) {\n          var coords = cursorCoords(this, cur, \"div\");\n          if (x == null) { x = coords.left; }\n          else { coords.left = x; }\n          cur = findPosV(this, coords, dir, unit);\n          if (cur.hitSide) { break }\n        }\n        return cur\n      },\n\n      moveV: methodOp(function(dir, unit) {\n        var this$1 = this;\n\n        var doc = this.doc, goals = [];\n        var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n        doc.extendSelectionsBy(function (range) {\n          if (collapse)\n            { return dir < 0 ? range.from() : range.to() }\n          var headPos = cursorCoords(this$1, range.head, \"div\");\n          if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n          goals.push(headPos.left);\n          var pos = findPosV(this$1, headPos, dir, unit);\n          if (unit == \"page\" && range == doc.sel.primary())\n            { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n          return pos\n        }, sel_move);\n        if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n          { doc.sel.ranges[i].goalColumn = goals[i]; } }\n      }),\n\n      // Find the word at the given position (as returned by coordsChar).\n      findWordAt: function(pos) {\n        var doc = this.doc, line = getLine(doc, pos.line).text;\n        var start = pos.ch, end = pos.ch;\n        if (line) {\n          var helper = this.getHelper(pos, \"wordChars\");\n          if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n          var startChar = line.charAt(start);\n          var check = isWordChar(startChar, helper)\n            ? function (ch) { return isWordChar(ch, helper); }\n            : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n            : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n          while (start > 0 && check(line.charAt(start - 1))) { --start; }\n          while (end < line.length && check(line.charAt(end))) { ++end; }\n        }\n        return new Range(Pos(pos.line, start), Pos(pos.line, end))\n      },\n\n      toggleOverwrite: function(value) {\n        if (value != null && value == this.state.overwrite) { return }\n        if (this.state.overwrite = !this.state.overwrite)\n          { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n        else\n          { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n        signal(this, \"overwriteToggle\", this, this.state.overwrite);\n      },\n      hasFocus: function() { return this.display.input.getField() == activeElt() },\n      isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n      scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n      getScrollInfo: function() {\n        var scroller = this.display.scroller;\n        return {left: scroller.scrollLeft, top: scroller.scrollTop,\n                height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n                width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n                clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n      },\n\n      scrollIntoView: methodOp(function(range, margin) {\n        if (range == null) {\n          range = {from: this.doc.sel.primary().head, to: null};\n          if (margin == null) { margin = this.options.cursorScrollMargin; }\n        } else if (typeof range == \"number\") {\n          range = {from: Pos(range, 0), to: null};\n        } else if (range.from == null) {\n          range = {from: range, to: null};\n        }\n        if (!range.to) { range.to = range.from; }\n        range.margin = margin || 0;\n\n        if (range.from.line != null) {\n          scrollToRange(this, range);\n        } else {\n          scrollToCoordsRange(this, range.from, range.to, range.margin);\n        }\n      }),\n\n      setSize: methodOp(function(width, height) {\n        var this$1 = this;\n\n        var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n        if (width != null) { this.display.wrapper.style.width = interpret(width); }\n        if (height != null) { this.display.wrapper.style.height = interpret(height); }\n        if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n        var lineNo = this.display.viewFrom;\n        this.doc.iter(lineNo, this.display.viewTo, function (line) {\n          if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n            { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n          ++lineNo;\n        });\n        this.curOp.forceUpdate = true;\n        signal(this, \"refresh\", this);\n      }),\n\n      operation: function(f){return runInOp(this, f)},\n      startOperation: function(){return startOperation(this)},\n      endOperation: function(){return endOperation(this)},\n\n      refresh: methodOp(function() {\n        var oldHeight = this.display.cachedTextHeight;\n        regChange(this);\n        this.curOp.forceUpdate = true;\n        clearCaches(this);\n        scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n        updateGutterSpace(this.display);\n        if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n          { estimateLineHeights(this); }\n        signal(this, \"refresh\", this);\n      }),\n\n      swapDoc: methodOp(function(doc) {\n        var old = this.doc;\n        old.cm = null;\n        // Cancel the current text selection if any (#5821)\n        if (this.state.selectingText) { this.state.selectingText(); }\n        attachDoc(this, doc);\n        clearCaches(this);\n        this.display.input.reset();\n        scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n        this.curOp.forceScroll = true;\n        signalLater(this, \"swapDoc\", this, old);\n        return old\n      }),\n\n      phrase: function(phraseText) {\n        var phrases = this.options.phrases;\n        return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n      },\n\n      getInputField: function(){return this.display.input.getField()},\n      getWrapperElement: function(){return this.display.wrapper},\n      getScrollerElement: function(){return this.display.scroller},\n      getGutterElement: function(){return this.display.gutters}\n    };\n    eventMixin(CodeMirror);\n\n    CodeMirror.registerHelper = function(type, name, value) {\n      if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n      helpers[type][name] = value;\n    };\n    CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n      CodeMirror.registerHelper(type, name, value);\n      helpers[type]._global.push({pred: predicate, val: value});\n    };\n  }\n\n  // Used for horizontal relative motion. Dir is -1 or 1 (left or\n  // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n  // doesn't cross line boundaries), \"word\" (across next word), or\n  // \"group\" (to the start of next group of word or\n  // non-word-non-whitespace chars). The visually param controls\n  // whether, in right-to-left text, direction 1 means to move towards\n  // the next index in the string, or towards the character to the right\n  // of the current position. The resulting position will have a\n  // hitSide=true property if it reached the end of the document.\n  function findPosH(doc, pos, dir, unit, visually) {\n    var oldPos = pos;\n    var origDir = dir;\n    var lineObj = getLine(doc, pos.line);\n    var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n    function findNextLine() {\n      var l = pos.line + lineDir;\n      if (l < doc.first || l >= doc.first + doc.size) { return false }\n      pos = new Pos(l, pos.ch, pos.sticky);\n      return lineObj = getLine(doc, l)\n    }\n    function moveOnce(boundToLine) {\n      var next;\n      if (unit == \"codepoint\") {\n        var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n        if (isNaN(ch)) {\n          next = null;\n        } else {\n          var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n          next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n        }\n      } else if (visually) {\n        next = moveVisually(doc.cm, lineObj, pos, dir);\n      } else {\n        next = moveLogically(lineObj, pos, dir);\n      }\n      if (next == null) {\n        if (!boundToLine && findNextLine())\n          { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n        else\n          { return false }\n      } else {\n        pos = next;\n      }\n      return true\n    }\n\n    if (unit == \"char\" || unit == \"codepoint\") {\n      moveOnce();\n    } else if (unit == \"column\") {\n      moveOnce(true);\n    } else if (unit == \"word\" || unit == \"group\") {\n      var sawType = null, group = unit == \"group\";\n      var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n      for (var first = true;; first = false) {\n        if (dir < 0 && !moveOnce(!first)) { break }\n        var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n        var type = isWordChar(cur, helper) ? \"w\"\n          : group && cur == \"\\n\" ? \"n\"\n          : !group || /\\s/.test(cur) ? null\n          : \"p\";\n        if (group && !first && !type) { type = \"s\"; }\n        if (sawType && sawType != type) {\n          if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n          break\n        }\n\n        if (type) { sawType = type; }\n        if (dir > 0 && !moveOnce(!first)) { break }\n      }\n    }\n    var result = skipAtomic(doc, pos, oldPos, origDir, true);\n    if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n    return result\n  }\n\n  // For relative vertical movement. Dir may be -1 or 1. Unit can be\n  // \"page\" or \"line\". The resulting position will have a hitSide=true\n  // property if it reached the end of the document.\n  function findPosV(cm, pos, dir, unit) {\n    var doc = cm.doc, x = pos.left, y;\n    if (unit == \"page\") {\n      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n      var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n      y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n    } else if (unit == \"line\") {\n      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n    }\n    var target;\n    for (;;) {\n      target = coordsChar(cm, x, y);\n      if (!target.outside) { break }\n      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n      y += dir * 5;\n    }\n    return target\n  }\n\n  // CONTENTEDITABLE INPUT STYLE\n\n  var ContentEditableInput = function(cm) {\n    this.cm = cm;\n    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n    this.polling = new Delayed();\n    this.composing = null;\n    this.gracePeriod = false;\n    this.readDOMTimeout = null;\n  };\n\n  ContentEditableInput.prototype.init = function (display) {\n      var this$1 = this;\n\n    var input = this, cm = input.cm;\n    var div = input.div = display.lineDiv;\n    div.contentEditable = true;\n    disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n    function belongsToInput(e) {\n      for (var t = e.target; t; t = t.parentNode) {\n        if (t == div) { return true }\n        if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n      }\n      return false\n    }\n\n    on(div, \"paste\", function (e) {\n      if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n      // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n      if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n    });\n\n    on(div, \"compositionstart\", function (e) {\n      this$1.composing = {data: e.data, done: false};\n    });\n    on(div, \"compositionupdate\", function (e) {\n      if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n    });\n    on(div, \"compositionend\", function (e) {\n      if (this$1.composing) {\n        if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n        this$1.composing.done = true;\n      }\n    });\n\n    on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n    on(div, \"input\", function () {\n      if (!this$1.composing) { this$1.readFromDOMSoon(); }\n    });\n\n    function onCopyCut(e) {\n      if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n      if (cm.somethingSelected()) {\n        setLastCopied({lineWise: false, text: cm.getSelections()});\n        if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n      } else if (!cm.options.lineWiseCopyCut) {\n        return\n      } else {\n        var ranges = copyableRanges(cm);\n        setLastCopied({lineWise: true, text: ranges.text});\n        if (e.type == \"cut\") {\n          cm.operation(function () {\n            cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n            cm.replaceSelection(\"\", null, \"cut\");\n          });\n        }\n      }\n      if (e.clipboardData) {\n        e.clipboardData.clearData();\n        var content = lastCopied.text.join(\"\\n\");\n        // iOS exposes the clipboard API, but seems to discard content inserted into it\n        e.clipboardData.setData(\"Text\", content);\n        if (e.clipboardData.getData(\"Text\") == content) {\n          e.preventDefault();\n          return\n        }\n      }\n      // Old-fashioned briefly-focus-a-textarea hack\n      var kludge = hiddenTextarea(), te = kludge.firstChild;\n      cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n      te.value = lastCopied.text.join(\"\\n\");\n      var hadFocus = document.activeElement;\n      selectInput(te);\n      setTimeout(function () {\n        cm.display.lineSpace.removeChild(kludge);\n        hadFocus.focus();\n        if (hadFocus == div) { input.showPrimarySelection(); }\n      }, 50);\n    }\n    on(div, \"copy\", onCopyCut);\n    on(div, \"cut\", onCopyCut);\n  };\n\n  ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n    // Label for screenreaders, accessibility\n    if(label) {\n      this.div.setAttribute('aria-label', label);\n    } else {\n      this.div.removeAttribute('aria-label');\n    }\n  };\n\n  ContentEditableInput.prototype.prepareSelection = function () {\n    var result = prepareSelection(this.cm, false);\n    result.focus = document.activeElement == this.div;\n    return result\n  };\n\n  ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n    if (!info || !this.cm.display.view.length) { return }\n    if (info.focus || takeFocus) { this.showPrimarySelection(); }\n    this.showMultipleSelections(info);\n  };\n\n  ContentEditableInput.prototype.getSelection = function () {\n    return this.cm.display.wrapper.ownerDocument.getSelection()\n  };\n\n  ContentEditableInput.prototype.showPrimarySelection = function () {\n    var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n    var from = prim.from(), to = prim.to();\n\n    if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n      sel.removeAllRanges();\n      return\n    }\n\n    var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n    var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n    if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n        cmp(minPos(curAnchor, curFocus), from) == 0 &&\n        cmp(maxPos(curAnchor, curFocus), to) == 0)\n      { return }\n\n    var view = cm.display.view;\n    var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n        {node: view[0].measure.map[2], offset: 0};\n    var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n    if (!end) {\n      var measure = view[view.length - 1].measure;\n      var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n      end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n    }\n\n    if (!start || !end) {\n      sel.removeAllRanges();\n      return\n    }\n\n    var old = sel.rangeCount && sel.getRangeAt(0), rng;\n    try { rng = range(start.node, start.offset, end.offset, end.node); }\n    catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n    if (rng) {\n      if (!gecko && cm.state.focused) {\n        sel.collapse(start.node, start.offset);\n        if (!rng.collapsed) {\n          sel.removeAllRanges();\n          sel.addRange(rng);\n        }\n      } else {\n        sel.removeAllRanges();\n        sel.addRange(rng);\n      }\n      if (old && sel.anchorNode == null) { sel.addRange(old); }\n      else if (gecko) { this.startGracePeriod(); }\n    }\n    this.rememberSelection();\n  };\n\n  ContentEditableInput.prototype.startGracePeriod = function () {\n      var this$1 = this;\n\n    clearTimeout(this.gracePeriod);\n    this.gracePeriod = setTimeout(function () {\n      this$1.gracePeriod = false;\n      if (this$1.selectionChanged())\n        { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n    }, 20);\n  };\n\n  ContentEditableInput.prototype.showMultipleSelections = function (info) {\n    removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n    removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n  };\n\n  ContentEditableInput.prototype.rememberSelection = function () {\n    var sel = this.getSelection();\n    this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n    this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n  };\n\n  ContentEditableInput.prototype.selectionInEditor = function () {\n    var sel = this.getSelection();\n    if (!sel.rangeCount) { return false }\n    var node = sel.getRangeAt(0).commonAncestorContainer;\n    return contains(this.div, node)\n  };\n\n  ContentEditableInput.prototype.focus = function () {\n    if (this.cm.options.readOnly != \"nocursor\") {\n      if (!this.selectionInEditor() || document.activeElement != this.div)\n        { this.showSelection(this.prepareSelection(), true); }\n      this.div.focus();\n    }\n  };\n  ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n  ContentEditableInput.prototype.getField = function () { return this.div };\n\n  ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n  ContentEditableInput.prototype.receivedFocus = function () {\n    var input = this;\n    if (this.selectionInEditor())\n      { this.pollSelection(); }\n    else\n      { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n    function poll() {\n      if (input.cm.state.focused) {\n        input.pollSelection();\n        input.polling.set(input.cm.options.pollInterval, poll);\n      }\n    }\n    this.polling.set(this.cm.options.pollInterval, poll);\n  };\n\n  ContentEditableInput.prototype.selectionChanged = function () {\n    var sel = this.getSelection();\n    return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n      sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n  };\n\n  ContentEditableInput.prototype.pollSelection = function () {\n    if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n    var sel = this.getSelection(), cm = this.cm;\n    // On Android Chrome (version 56, at least), backspacing into an\n    // uneditable block element will put the cursor in that element,\n    // and then, because it's not editable, hide the virtual keyboard.\n    // Because Android doesn't allow us to actually detect backspace\n    // presses in a sane way, this code checks for when that happens\n    // and simulates a backspace press in this case.\n    if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n      this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n      this.blur();\n      this.focus();\n      return\n    }\n    if (this.composing) { return }\n    this.rememberSelection();\n    var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n    var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n    if (anchor && head) { runInOp(cm, function () {\n      setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n      if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n    }); }\n  };\n\n  ContentEditableInput.prototype.pollContent = function () {\n    if (this.readDOMTimeout != null) {\n      clearTimeout(this.readDOMTimeout);\n      this.readDOMTimeout = null;\n    }\n\n    var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n    var from = sel.from(), to = sel.to();\n    if (from.ch == 0 && from.line > cm.firstLine())\n      { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n    if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n      { to = Pos(to.line + 1, 0); }\n    if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n    var fromIndex, fromLine, fromNode;\n    if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n      fromLine = lineNo(display.view[0].line);\n      fromNode = display.view[0].node;\n    } else {\n      fromLine = lineNo(display.view[fromIndex].line);\n      fromNode = display.view[fromIndex - 1].node.nextSibling;\n    }\n    var toIndex = findViewIndex(cm, to.line);\n    var toLine, toNode;\n    if (toIndex == display.view.length - 1) {\n      toLine = display.viewTo - 1;\n      toNode = display.lineDiv.lastChild;\n    } else {\n      toLine = lineNo(display.view[toIndex + 1].line) - 1;\n      toNode = display.view[toIndex + 1].node.previousSibling;\n    }\n\n    if (!fromNode) { return false }\n    var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n    var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n    while (newText.length > 1 && oldText.length > 1) {\n      if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n      else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n      else { break }\n    }\n\n    var cutFront = 0, cutEnd = 0;\n    var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n    while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n      { ++cutFront; }\n    var newBot = lst(newText), oldBot = lst(oldText);\n    var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n                             oldBot.length - (oldText.length == 1 ? cutFront : 0));\n    while (cutEnd < maxCutEnd &&\n           newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n      { ++cutEnd; }\n    // Try to move start of change to start of selection if ambiguous\n    if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n      while (cutFront && cutFront > from.ch &&\n             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n        cutFront--;\n        cutEnd++;\n      }\n    }\n\n    newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n    newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n    var chFrom = Pos(fromLine, cutFront);\n    var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n    if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n      replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n      return true\n    }\n  };\n\n  ContentEditableInput.prototype.ensurePolled = function () {\n    this.forceCompositionEnd();\n  };\n  ContentEditableInput.prototype.reset = function () {\n    this.forceCompositionEnd();\n  };\n  ContentEditableInput.prototype.forceCompositionEnd = function () {\n    if (!this.composing) { return }\n    clearTimeout(this.readDOMTimeout);\n    this.composing = null;\n    this.updateFromDOM();\n    this.div.blur();\n    this.div.focus();\n  };\n  ContentEditableInput.prototype.readFromDOMSoon = function () {\n      var this$1 = this;\n\n    if (this.readDOMTimeout != null) { return }\n    this.readDOMTimeout = setTimeout(function () {\n      this$1.readDOMTimeout = null;\n      if (this$1.composing) {\n        if (this$1.composing.done) { this$1.composing = null; }\n        else { return }\n      }\n      this$1.updateFromDOM();\n    }, 80);\n  };\n\n  ContentEditableInput.prototype.updateFromDOM = function () {\n      var this$1 = this;\n\n    if (this.cm.isReadOnly() || !this.pollContent())\n      { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n  };\n\n  ContentEditableInput.prototype.setUneditable = function (node) {\n    node.contentEditable = \"false\";\n  };\n\n  ContentEditableInput.prototype.onKeyPress = function (e) {\n    if (e.charCode == 0 || this.composing) { return }\n    e.preventDefault();\n    if (!this.cm.isReadOnly())\n      { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n  };\n\n  ContentEditableInput.prototype.readOnlyChanged = function (val) {\n    this.div.contentEditable = String(val != \"nocursor\");\n  };\n\n  ContentEditableInput.prototype.onContextMenu = function () {};\n  ContentEditableInput.prototype.resetPosition = function () {};\n\n  ContentEditableInput.prototype.needsContentAttribute = true;\n\n  function posToDOM(cm, pos) {\n    var view = findViewForLine(cm, pos.line);\n    if (!view || view.hidden) { return null }\n    var line = getLine(cm.doc, pos.line);\n    var info = mapFromLineView(view, line, pos.line);\n\n    var order = getOrder(line, cm.doc.direction), side = \"left\";\n    if (order) {\n      var partPos = getBidiPartAt(order, pos.ch);\n      side = partPos % 2 ? \"right\" : \"left\";\n    }\n    var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n    result.offset = result.collapse == \"right\" ? result.end : result.start;\n    return result\n  }\n\n  function isInGutter(node) {\n    for (var scan = node; scan; scan = scan.parentNode)\n      { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n    return false\n  }\n\n  function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n  function domTextBetween(cm, from, to, fromLine, toLine) {\n    var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n    function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n    function close() {\n      if (closing) {\n        text += lineSep;\n        if (extraLinebreak) { text += lineSep; }\n        closing = extraLinebreak = false;\n      }\n    }\n    function addText(str) {\n      if (str) {\n        close();\n        text += str;\n      }\n    }\n    function walk(node) {\n      if (node.nodeType == 1) {\n        var cmText = node.getAttribute(\"cm-text\");\n        if (cmText) {\n          addText(cmText);\n          return\n        }\n        var markerID = node.getAttribute(\"cm-marker\"), range;\n        if (markerID) {\n          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n          if (found.length && (range = found[0].find(0)))\n            { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n          return\n        }\n        if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n        var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n        if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n        if (isBlock) { close(); }\n        for (var i = 0; i < node.childNodes.length; i++)\n          { walk(node.childNodes[i]); }\n\n        if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n        if (isBlock) { closing = true; }\n      } else if (node.nodeType == 3) {\n        addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n      }\n    }\n    for (;;) {\n      walk(from);\n      if (from == to) { break }\n      from = from.nextSibling;\n      extraLinebreak = false;\n    }\n    return text\n  }\n\n  function domToPos(cm, node, offset) {\n    var lineNode;\n    if (node == cm.display.lineDiv) {\n      lineNode = cm.display.lineDiv.childNodes[offset];\n      if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n      node = null; offset = 0;\n    } else {\n      for (lineNode = node;; lineNode = lineNode.parentNode) {\n        if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n      }\n    }\n    for (var i = 0; i < cm.display.view.length; i++) {\n      var lineView = cm.display.view[i];\n      if (lineView.node == lineNode)\n        { return locateNodeInLineView(lineView, node, offset) }\n    }\n  }\n\n  function locateNodeInLineView(lineView, node, offset) {\n    var wrapper = lineView.text.firstChild, bad = false;\n    if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n    if (node == wrapper) {\n      bad = true;\n      node = wrapper.childNodes[offset];\n      offset = 0;\n      if (!node) {\n        var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n        return badPos(Pos(lineNo(line), line.text.length), bad)\n      }\n    }\n\n    var textNode = node.nodeType == 3 ? node : null, topNode = node;\n    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n      textNode = node.firstChild;\n      if (offset) { offset = textNode.nodeValue.length; }\n    }\n    while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n    var measure = lineView.measure, maps = measure.maps;\n\n    function find(textNode, topNode, offset) {\n      for (var i = -1; i < (maps ? maps.length : 0); i++) {\n        var map = i < 0 ? measure.map : maps[i];\n        for (var j = 0; j < map.length; j += 3) {\n          var curNode = map[j + 2];\n          if (curNode == textNode || curNode == topNode) {\n            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n            var ch = map[j] + offset;\n            if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n            return Pos(line, ch)\n          }\n        }\n      }\n    }\n    var found = find(textNode, topNode, offset);\n    if (found) { return badPos(found, bad) }\n\n    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n      found = find(after, after.firstChild, 0);\n      if (found)\n        { return badPos(Pos(found.line, found.ch - dist), bad) }\n      else\n        { dist += after.textContent.length; }\n    }\n    for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n      found = find(before, before.firstChild, -1);\n      if (found)\n        { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n      else\n        { dist$1 += before.textContent.length; }\n    }\n  }\n\n  // TEXTAREA INPUT STYLE\n\n  var TextareaInput = function(cm) {\n    this.cm = cm;\n    // See input.poll and input.reset\n    this.prevInput = \"\";\n\n    // Flag that indicates whether we expect input to appear real soon\n    // now (after some event like 'keypress' or 'input') and are\n    // polling intensively.\n    this.pollingFast = false;\n    // Self-resetting timeout for the poller\n    this.polling = new Delayed();\n    // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n    this.hasSelection = false;\n    this.composing = null;\n  };\n\n  TextareaInput.prototype.init = function (display) {\n      var this$1 = this;\n\n    var input = this, cm = this.cm;\n    this.createField(display);\n    var te = this.textarea;\n\n    display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n    // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n    if (ios) { te.style.width = \"0px\"; }\n\n    on(te, \"input\", function () {\n      if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n      input.poll();\n    });\n\n    on(te, \"paste\", function (e) {\n      if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n      cm.state.pasteIncoming = +new Date;\n      input.fastPoll();\n    });\n\n    function prepareCopyCut(e) {\n      if (signalDOMEvent(cm, e)) { return }\n      if (cm.somethingSelected()) {\n        setLastCopied({lineWise: false, text: cm.getSelections()});\n      } else if (!cm.options.lineWiseCopyCut) {\n        return\n      } else {\n        var ranges = copyableRanges(cm);\n        setLastCopied({lineWise: true, text: ranges.text});\n        if (e.type == \"cut\") {\n          cm.setSelections(ranges.ranges, null, sel_dontScroll);\n        } else {\n          input.prevInput = \"\";\n          te.value = ranges.text.join(\"\\n\");\n          selectInput(te);\n        }\n      }\n      if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n    }\n    on(te, \"cut\", prepareCopyCut);\n    on(te, \"copy\", prepareCopyCut);\n\n    on(display.scroller, \"paste\", function (e) {\n      if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n      if (!te.dispatchEvent) {\n        cm.state.pasteIncoming = +new Date;\n        input.focus();\n        return\n      }\n\n      // Pass the `paste` event to the textarea so it's handled by its event listener.\n      var event = new Event(\"paste\");\n      event.clipboardData = e.clipboardData;\n      te.dispatchEvent(event);\n    });\n\n    // Prevent normal selection in the editor (we handle our own)\n    on(display.lineSpace, \"selectstart\", function (e) {\n      if (!eventInWidget(display, e)) { e_preventDefault(e); }\n    });\n\n    on(te, \"compositionstart\", function () {\n      var start = cm.getCursor(\"from\");\n      if (input.composing) { input.composing.range.clear(); }\n      input.composing = {\n        start: start,\n        range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n      };\n    });\n    on(te, \"compositionend\", function () {\n      if (input.composing) {\n        input.poll();\n        input.composing.range.clear();\n        input.composing = null;\n      }\n    });\n  };\n\n  TextareaInput.prototype.createField = function (_display) {\n    // Wraps and hides input textarea\n    this.wrapper = hiddenTextarea();\n    // The semihidden textarea that is focused when the editor is\n    // focused, and receives input.\n    this.textarea = this.wrapper.firstChild;\n  };\n\n  TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n    // Label for screenreaders, accessibility\n    if(label) {\n      this.textarea.setAttribute('aria-label', label);\n    } else {\n      this.textarea.removeAttribute('aria-label');\n    }\n  };\n\n  TextareaInput.prototype.prepareSelection = function () {\n    // Redraw the selection and/or cursor\n    var cm = this.cm, display = cm.display, doc = cm.doc;\n    var result = prepareSelection(cm);\n\n    // Move the hidden textarea near the cursor to prevent scrolling artifacts\n    if (cm.options.moveInputWithCursor) {\n      var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n      var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n      result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n                                          headPos.top + lineOff.top - wrapOff.top));\n      result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n                                           headPos.left + lineOff.left - wrapOff.left));\n    }\n\n    return result\n  };\n\n  TextareaInput.prototype.showSelection = function (drawn) {\n    var cm = this.cm, display = cm.display;\n    removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n    removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n    if (drawn.teTop != null) {\n      this.wrapper.style.top = drawn.teTop + \"px\";\n      this.wrapper.style.left = drawn.teLeft + \"px\";\n    }\n  };\n\n  // Reset the input to correspond to the selection (or to be empty,\n  // when not typing and nothing is selected)\n  TextareaInput.prototype.reset = function (typing) {\n    if (this.contextMenuPending || this.composing) { return }\n    var cm = this.cm;\n    if (cm.somethingSelected()) {\n      this.prevInput = \"\";\n      var content = cm.getSelection();\n      this.textarea.value = content;\n      if (cm.state.focused) { selectInput(this.textarea); }\n      if (ie && ie_version >= 9) { this.hasSelection = content; }\n    } else if (!typing) {\n      this.prevInput = this.textarea.value = \"\";\n      if (ie && ie_version >= 9) { this.hasSelection = null; }\n    }\n  };\n\n  TextareaInput.prototype.getField = function () { return this.textarea };\n\n  TextareaInput.prototype.supportsTouch = function () { return false };\n\n  TextareaInput.prototype.focus = function () {\n    if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n      try { this.textarea.focus(); }\n      catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n    }\n  };\n\n  TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n  TextareaInput.prototype.resetPosition = function () {\n    this.wrapper.style.top = this.wrapper.style.left = 0;\n  };\n\n  TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n  // Poll for input changes, using the normal rate of polling. This\n  // runs as long as the editor is focused.\n  TextareaInput.prototype.slowPoll = function () {\n      var this$1 = this;\n\n    if (this.pollingFast) { return }\n    this.polling.set(this.cm.options.pollInterval, function () {\n      this$1.poll();\n      if (this$1.cm.state.focused) { this$1.slowPoll(); }\n    });\n  };\n\n  // When an event has just come in that is likely to add or change\n  // something in the input textarea, we poll faster, to ensure that\n  // the change appears on the screen quickly.\n  TextareaInput.prototype.fastPoll = function () {\n    var missed = false, input = this;\n    input.pollingFast = true;\n    function p() {\n      var changed = input.poll();\n      if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n      else {input.pollingFast = false; input.slowPoll();}\n    }\n    input.polling.set(20, p);\n  };\n\n  // Read input from the textarea, and update the document to match.\n  // When something is selected, it is present in the textarea, and\n  // selected (unless it is huge, in which case a placeholder is\n  // used). When nothing is selected, the cursor sits after previously\n  // seen text (can be empty), which is stored in prevInput (we must\n  // not reset the textarea when typing, because that breaks IME).\n  TextareaInput.prototype.poll = function () {\n      var this$1 = this;\n\n    var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n    // Since this is called a *lot*, try to bail out as cheaply as\n    // possible when it is clear that nothing happened. hasSelection\n    // will be the case when there is a lot of text in the textarea,\n    // in which case reading its value would be expensive.\n    if (this.contextMenuPending || !cm.state.focused ||\n        (hasSelection(input) && !prevInput && !this.composing) ||\n        cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n      { return false }\n\n    var text = input.value;\n    // If nothing changed, bail.\n    if (text == prevInput && !cm.somethingSelected()) { return false }\n    // Work around nonsensical selection resetting in IE9/10, and\n    // inexplicable appearance of private area unicode characters on\n    // some key combos in Mac (#2689).\n    if (ie && ie_version >= 9 && this.hasSelection === text ||\n        mac && /[\\uf700-\\uf7ff]/.test(text)) {\n      cm.display.input.reset();\n      return false\n    }\n\n    if (cm.doc.sel == cm.display.selForContextMenu) {\n      var first = text.charCodeAt(0);\n      if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n      if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n    }\n    // Find the part of the input that is actually new\n    var same = 0, l = Math.min(prevInput.length, text.length);\n    while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n    runInOp(cm, function () {\n      applyTextInput(cm, text.slice(same), prevInput.length - same,\n                     null, this$1.composing ? \"*compose\" : null);\n\n      // Don't leave long text in the textarea, since it makes further polling slow\n      if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n      else { this$1.prevInput = text; }\n\n      if (this$1.composing) {\n        this$1.composing.range.clear();\n        this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n                                           {className: \"CodeMirror-composing\"});\n      }\n    });\n    return true\n  };\n\n  TextareaInput.prototype.ensurePolled = function () {\n    if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n  };\n\n  TextareaInput.prototype.onKeyPress = function () {\n    if (ie && ie_version >= 9) { this.hasSelection = null; }\n    this.fastPoll();\n  };\n\n  TextareaInput.prototype.onContextMenu = function (e) {\n    var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n    if (input.contextMenuPending) { input.contextMenuPending(); }\n    var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n    if (!pos || presto) { return } // Opera is difficult.\n\n    // Reset the current text selection only if the click is done outside of the selection\n    // and 'resetSelectionOnContextMenu' option is true.\n    var reset = cm.options.resetSelectionOnContextMenu;\n    if (reset && cm.doc.sel.contains(pos) == -1)\n      { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n    var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n    var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n    input.wrapper.style.cssText = \"position: static\";\n    te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n      top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n      z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n    var oldScrollY;\n    if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n    display.input.focus();\n    if (webkit) { window.scrollTo(null, oldScrollY); }\n    display.input.reset();\n    // Adds \"Select all\" to context menu in FF\n    if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n    input.contextMenuPending = rehide;\n    display.selForContextMenu = cm.doc.sel;\n    clearTimeout(display.detectingSelectAll);\n\n    // Select-all will be greyed out if there's nothing to select, so\n    // this adds a zero-width space so that we can later check whether\n    // it got selected.\n    function prepareSelectAllHack() {\n      if (te.selectionStart != null) {\n        var selected = cm.somethingSelected();\n        var extval = \"\\u200b\" + (selected ? te.value : \"\");\n        te.value = \"\\u21da\"; // Used to catch context-menu undo\n        te.value = extval;\n        input.prevInput = selected ? \"\" : \"\\u200b\";\n        te.selectionStart = 1; te.selectionEnd = extval.length;\n        // Re-set this, in case some other handler touched the\n        // selection in the meantime.\n        display.selForContextMenu = cm.doc.sel;\n      }\n    }\n    function rehide() {\n      if (input.contextMenuPending != rehide) { return }\n      input.contextMenuPending = false;\n      input.wrapper.style.cssText = oldWrapperCSS;\n      te.style.cssText = oldCSS;\n      if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n      // Try to detect the user choosing select-all\n      if (te.selectionStart != null) {\n        if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n        var i = 0, poll = function () {\n          if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n              te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n            operation(cm, selectAll)(cm);\n          } else if (i++ < 10) {\n            display.detectingSelectAll = setTimeout(poll, 500);\n          } else {\n            display.selForContextMenu = null;\n            display.input.reset();\n          }\n        };\n        display.detectingSelectAll = setTimeout(poll, 200);\n      }\n    }\n\n    if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n    if (captureRightClick) {\n      e_stop(e);\n      var mouseup = function () {\n        off(window, \"mouseup\", mouseup);\n        setTimeout(rehide, 20);\n      };\n      on(window, \"mouseup\", mouseup);\n    } else {\n      setTimeout(rehide, 50);\n    }\n  };\n\n  TextareaInput.prototype.readOnlyChanged = function (val) {\n    if (!val) { this.reset(); }\n    this.textarea.disabled = val == \"nocursor\";\n    this.textarea.readOnly = !!val;\n  };\n\n  TextareaInput.prototype.setUneditable = function () {};\n\n  TextareaInput.prototype.needsContentAttribute = false;\n\n  function fromTextArea(textarea, options) {\n    options = options ? copyObj(options) : {};\n    options.value = textarea.value;\n    if (!options.tabindex && textarea.tabIndex)\n      { options.tabindex = textarea.tabIndex; }\n    if (!options.placeholder && textarea.placeholder)\n      { options.placeholder = textarea.placeholder; }\n    // Set autofocus to true if this textarea is focused, or if it has\n    // autofocus and no other element is focused.\n    if (options.autofocus == null) {\n      var hasFocus = activeElt();\n      options.autofocus = hasFocus == textarea ||\n        textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n    }\n\n    function save() {textarea.value = cm.getValue();}\n\n    var realSubmit;\n    if (textarea.form) {\n      on(textarea.form, \"submit\", save);\n      // Deplorable hack to make the submit method do the right thing.\n      if (!options.leaveSubmitMethodAlone) {\n        var form = textarea.form;\n        realSubmit = form.submit;\n        try {\n          var wrappedSubmit = form.submit = function () {\n            save();\n            form.submit = realSubmit;\n            form.submit();\n            form.submit = wrappedSubmit;\n          };\n        } catch(e) {}\n      }\n    }\n\n    options.finishInit = function (cm) {\n      cm.save = save;\n      cm.getTextArea = function () { return textarea; };\n      cm.toTextArea = function () {\n        cm.toTextArea = isNaN; // Prevent this from being ran twice\n        save();\n        textarea.parentNode.removeChild(cm.getWrapperElement());\n        textarea.style.display = \"\";\n        if (textarea.form) {\n          off(textarea.form, \"submit\", save);\n          if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n            { textarea.form.submit = realSubmit; }\n        }\n      };\n    };\n\n    textarea.style.display = \"none\";\n    var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n      options);\n    return cm\n  }\n\n  function addLegacyProps(CodeMirror) {\n    CodeMirror.off = off;\n    CodeMirror.on = on;\n    CodeMirror.wheelEventPixels = wheelEventPixels;\n    CodeMirror.Doc = Doc;\n    CodeMirror.splitLines = splitLinesAuto;\n    CodeMirror.countColumn = countColumn;\n    CodeMirror.findColumn = findColumn;\n    CodeMirror.isWordChar = isWordCharBasic;\n    CodeMirror.Pass = Pass;\n    CodeMirror.signal = signal;\n    CodeMirror.Line = Line;\n    CodeMirror.changeEnd = changeEnd;\n    CodeMirror.scrollbarModel = scrollbarModel;\n    CodeMirror.Pos = Pos;\n    CodeMirror.cmpPos = cmp;\n    CodeMirror.modes = modes;\n    CodeMirror.mimeModes = mimeModes;\n    CodeMirror.resolveMode = resolveMode;\n    CodeMirror.getMode = getMode;\n    CodeMirror.modeExtensions = modeExtensions;\n    CodeMirror.extendMode = extendMode;\n    CodeMirror.copyState = copyState;\n    CodeMirror.startState = startState;\n    CodeMirror.innerMode = innerMode;\n    CodeMirror.commands = commands;\n    CodeMirror.keyMap = keyMap;\n    CodeMirror.keyName = keyName;\n    CodeMirror.isModifierKey = isModifierKey;\n    CodeMirror.lookupKey = lookupKey;\n    CodeMirror.normalizeKeyMap = normalizeKeyMap;\n    CodeMirror.StringStream = StringStream;\n    CodeMirror.SharedTextMarker = SharedTextMarker;\n    CodeMirror.TextMarker = TextMarker;\n    CodeMirror.LineWidget = LineWidget;\n    CodeMirror.e_preventDefault = e_preventDefault;\n    CodeMirror.e_stopPropagation = e_stopPropagation;\n    CodeMirror.e_stop = e_stop;\n    CodeMirror.addClass = addClass;\n    CodeMirror.contains = contains;\n    CodeMirror.rmClass = rmClass;\n    CodeMirror.keyNames = keyNames;\n  }\n\n  // EDITOR CONSTRUCTOR\n\n  defineOptions(CodeMirror);\n\n  addEditorMethods(CodeMirror);\n\n  // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n  var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n  for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n    { CodeMirror.prototype[prop] = (function(method) {\n      return function() {return method.apply(this.doc, arguments)}\n    })(Doc.prototype[prop]); } }\n\n  eventMixin(Doc);\n  CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n  // Extra arguments are stored as the mode's dependencies, which is\n  // used by (legacy) mechanisms like loadmode.js to automatically\n  // load a mode. (Preferred mechanism is the require/define calls.)\n  CodeMirror.defineMode = function(name/*, mode, …*/) {\n    if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n    defineMode.apply(this, arguments);\n  };\n\n  CodeMirror.defineMIME = defineMIME;\n\n  // Minimal default mode.\n  CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  // EXTENSIONS\n\n  CodeMirror.defineExtension = function (name, func) {\n    CodeMirror.prototype[name] = func;\n  };\n  CodeMirror.defineDocExtension = function (name, func) {\n    Doc.prototype[name] = func;\n  };\n\n  CodeMirror.fromTextArea = fromTextArea;\n\n  addLegacyProps(CodeMirror);\n\n  CodeMirror.version = \"5.60.0\";\n\n  return CodeMirror;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/keymap/emacs.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n\n  // Kill 'ring'\n\n  var killRing = [];\n  function addToRing(str) {\n    killRing.push(str);\n    if (killRing.length > 50) killRing.shift();\n  }\n  function growRingTop(str) {\n    if (!killRing.length) return addToRing(str);\n    killRing[killRing.length - 1] += str;\n  }\n  function getFromRing(n) { return killRing[killRing.length - (n ? Math.min(n, 1) : 1)] || \"\"; }\n  function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); }\n\n  var lastKill = null;\n\n  function kill(cm, from, to, ring, text) {\n    if (text == null) text = cm.getRange(from, to);\n\n    if (ring == \"grow\" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))\n      growRingTop(text);\n    else if (ring !== false)\n      addToRing(text);\n    cm.replaceRange(\"\", from, to, \"+delete\");\n\n    if (ring == \"grow\") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};\n    else lastKill = null;\n  }\n\n  // Boundaries of various units\n\n  function byChar(cm, pos, dir) {\n    return cm.findPosH(pos, dir, \"char\", true);\n  }\n\n  function byWord(cm, pos, dir) {\n    return cm.findPosH(pos, dir, \"word\", true);\n  }\n\n  function byLine(cm, pos, dir) {\n    return cm.findPosV(pos, dir, \"line\", cm.doc.sel.goalColumn);\n  }\n\n  function byPage(cm, pos, dir) {\n    return cm.findPosV(pos, dir, \"page\", cm.doc.sel.goalColumn);\n  }\n\n  function byParagraph(cm, pos, dir) {\n    var no = pos.line, line = cm.getLine(no);\n    var sawText = /\\S/.test(dir < 0 ? line.slice(0, pos.ch) : line.slice(pos.ch));\n    var fst = cm.firstLine(), lst = cm.lastLine();\n    for (;;) {\n      no += dir;\n      if (no < fst || no > lst)\n        return cm.clipPos(Pos(no - dir, dir < 0 ? 0 : null));\n      line = cm.getLine(no);\n      var hasText = /\\S/.test(line);\n      if (hasText) sawText = true;\n      else if (sawText) return Pos(no, 0);\n    }\n  }\n\n  function bySentence(cm, pos, dir) {\n    var line = pos.line, ch = pos.ch;\n    var text = cm.getLine(pos.line), sawWord = false;\n    for (;;) {\n      var next = text.charAt(ch + (dir < 0 ? -1 : 0));\n      if (!next) { // End/beginning of line reached\n        if (line == (dir < 0 ? cm.firstLine() : cm.lastLine())) return Pos(line, ch);\n        text = cm.getLine(line + dir);\n        if (!/\\S/.test(text)) return Pos(line, ch);\n        line += dir;\n        ch = dir < 0 ? text.length : 0;\n        continue;\n      }\n      if (sawWord && /[!?.]/.test(next)) return Pos(line, ch + (dir > 0 ? 1 : 0));\n      if (!sawWord) sawWord = /\\w/.test(next);\n      ch += dir;\n    }\n  }\n\n  function byExpr(cm, pos, dir) {\n    var wrap;\n    if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))\n        && wrap.match && (wrap.forward ? 1 : -1) == dir)\n      return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;\n\n    for (var first = true;; first = false) {\n      var token = cm.getTokenAt(pos);\n      var after = Pos(pos.line, dir < 0 ? token.start : token.end);\n      if (first && dir > 0 && token.end == pos.ch || !/\\w/.test(token.string)) {\n        var newPos = cm.findPosH(after, dir, \"char\");\n        if (posEq(after, newPos)) return pos;\n        else pos = newPos;\n      } else {\n        return after;\n      }\n    }\n  }\n\n  // Prefixes (only crudely supported)\n\n  function getPrefix(cm, precise) {\n    var digits = cm.state.emacsPrefix;\n    if (!digits) return precise ? null : 1;\n    clearPrefix(cm);\n    return digits == \"-\" ? -1 : Number(digits);\n  }\n\n  function repeated(cmd) {\n    var f = typeof cmd == \"string\" ? function(cm) { cm.execCommand(cmd); } : cmd;\n    return function(cm) {\n      var prefix = getPrefix(cm);\n      f(cm);\n      for (var i = 1; i < prefix; ++i) f(cm);\n    };\n  }\n\n  function findEnd(cm, pos, by, dir) {\n    var prefix = getPrefix(cm);\n    if (prefix < 0) { dir = -dir; prefix = -prefix; }\n    for (var i = 0; i < prefix; ++i) {\n      var newPos = by(cm, pos, dir);\n      if (posEq(newPos, pos)) break;\n      pos = newPos;\n    }\n    return pos;\n  }\n\n  function move(by, dir) {\n    var f = function(cm) {\n      cm.extendSelection(findEnd(cm, cm.getCursor(), by, dir));\n    };\n    f.motion = true;\n    return f;\n  }\n\n  function killTo(cm, by, dir, ring) {\n    var selections = cm.listSelections(), cursor;\n    var i = selections.length;\n    while (i--) {\n      cursor = selections[i].head;\n      kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);\n    }\n  }\n\n  function killRegion(cm, ring) {\n    if (cm.somethingSelected()) {\n      var selections = cm.listSelections(), selection;\n      var i = selections.length;\n      while (i--) {\n        selection = selections[i];\n        kill(cm, selection.anchor, selection.head, ring);\n      }\n      return true;\n    }\n  }\n\n  function addPrefix(cm, digit) {\n    if (cm.state.emacsPrefix) {\n      if (digit != \"-\") cm.state.emacsPrefix += digit;\n      return;\n    }\n    // Not active yet\n    cm.state.emacsPrefix = digit;\n    cm.on(\"keyHandled\", maybeClearPrefix);\n    cm.on(\"inputRead\", maybeDuplicateInput);\n  }\n\n  var prefixPreservingKeys = {\"Alt-G\": true, \"Ctrl-X\": true, \"Ctrl-Q\": true, \"Ctrl-U\": true};\n\n  function maybeClearPrefix(cm, arg) {\n    if (!cm.state.emacsPrefixMap && !prefixPreservingKeys.hasOwnProperty(arg))\n      clearPrefix(cm);\n  }\n\n  function clearPrefix(cm) {\n    cm.state.emacsPrefix = null;\n    cm.off(\"keyHandled\", maybeClearPrefix);\n    cm.off(\"inputRead\", maybeDuplicateInput);\n  }\n\n  function maybeDuplicateInput(cm, event) {\n    var dup = getPrefix(cm);\n    if (dup > 1 && event.origin == \"+input\") {\n      var one = event.text.join(\"\\n\"), txt = \"\";\n      for (var i = 1; i < dup; ++i) txt += one;\n      cm.replaceSelection(txt);\n    }\n  }\n\n  function addPrefixMap(cm) {\n    cm.state.emacsPrefixMap = true;\n    cm.addKeyMap(prefixMap);\n    cm.on(\"keyHandled\", maybeRemovePrefixMap);\n    cm.on(\"inputRead\", maybeRemovePrefixMap);\n  }\n\n  function maybeRemovePrefixMap(cm, arg) {\n    if (typeof arg == \"string\" && (/^\\d$/.test(arg) || arg == \"Ctrl-U\")) return;\n    cm.removeKeyMap(prefixMap);\n    cm.state.emacsPrefixMap = false;\n    cm.off(\"keyHandled\", maybeRemovePrefixMap);\n    cm.off(\"inputRead\", maybeRemovePrefixMap);\n  }\n\n  // Utilities\n\n  function setMark(cm) {\n    cm.setCursor(cm.getCursor());\n    cm.setExtending(!cm.getExtending());\n    cm.on(\"change\", function() { cm.setExtending(false); });\n  }\n\n  function clearMark(cm) {\n    cm.setExtending(false);\n    cm.setCursor(cm.getCursor());\n  }\n\n  function makePrompt(msg) {\n    var fragment = document.createDocumentFragment();\n    var input = document.createElement(\"input\");\n    input.setAttribute(\"type\", \"text\");\n    input.style.width = \"10em\";\n    fragment.appendChild(document.createTextNode(msg + \": \"));\n    fragment.appendChild(input);\n    return fragment;\n  }\n\n  function getInput(cm, msg, f) {\n    if (cm.openDialog)\n      cm.openDialog(makePrompt(msg), f, {bottom: true});\n    else\n      f(prompt(msg, \"\"));\n  }\n\n  function operateOnWord(cm, op) {\n    var start = cm.getCursor(), end = cm.findPosH(start, 1, \"word\");\n    cm.replaceRange(op(cm.getRange(start, end)), start, end);\n    cm.setCursor(end);\n  }\n\n  function toEnclosingExpr(cm) {\n    var pos = cm.getCursor(), line = pos.line, ch = pos.ch;\n    var stack = [];\n    while (line >= cm.firstLine()) {\n      var text = cm.getLine(line);\n      for (var i = ch == null ? text.length : ch; i > 0;) {\n        var ch = text.charAt(--i);\n        if (ch == \")\")\n          stack.push(\"(\");\n        else if (ch == \"]\")\n          stack.push(\"[\");\n        else if (ch == \"}\")\n          stack.push(\"{\");\n        else if (/[\\(\\{\\[]/.test(ch) && (!stack.length || stack.pop() != ch))\n          return cm.extendSelection(Pos(line, i));\n      }\n      --line; ch = null;\n    }\n  }\n\n  function quit(cm) {\n    cm.execCommand(\"clearSearch\");\n    clearMark(cm);\n  }\n\n  CodeMirror.emacs = {kill: kill, killRegion: killRegion, repeated: repeated};\n\n  // Actual keymap\n\n  var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({\n    \"Ctrl-W\": function(cm) {kill(cm, cm.getCursor(\"start\"), cm.getCursor(\"end\"), true);},\n    \"Ctrl-K\": repeated(function(cm) {\n      var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));\n      var text = cm.getRange(start, end);\n      if (!/\\S/.test(text)) {\n        text += \"\\n\";\n        end = Pos(start.line + 1, 0);\n      }\n      kill(cm, start, end, \"grow\", text);\n    }),\n    \"Alt-W\": function(cm) {\n      addToRing(cm.getSelection());\n      clearMark(cm);\n    },\n    \"Ctrl-Y\": function(cm) {\n      var start = cm.getCursor();\n      cm.replaceRange(getFromRing(getPrefix(cm)), start, start, \"paste\");\n      cm.setSelection(start, cm.getCursor());\n    },\n    \"Alt-Y\": function(cm) {cm.replaceSelection(popFromRing(), \"around\", \"paste\");},\n\n    \"Ctrl-Space\": setMark, \"Ctrl-Shift-2\": setMark,\n\n    \"Ctrl-F\": move(byChar, 1), \"Ctrl-B\": move(byChar, -1),\n    \"Right\": move(byChar, 1), \"Left\": move(byChar, -1),\n    \"Ctrl-D\": function(cm) { killTo(cm, byChar, 1, false); },\n    \"Delete\": function(cm) { killRegion(cm, false) || killTo(cm, byChar, 1, false); },\n    \"Ctrl-H\": function(cm) { killTo(cm, byChar, -1, false); },\n    \"Backspace\": function(cm) { killRegion(cm, false) || killTo(cm, byChar, -1, false); },\n\n    \"Alt-F\": move(byWord, 1), \"Alt-B\": move(byWord, -1),\n    \"Alt-Right\": move(byWord, 1), \"Alt-Left\": move(byWord, -1),\n    \"Alt-D\": function(cm) { killTo(cm, byWord, 1, \"grow\"); },\n    \"Alt-Backspace\": function(cm) { killTo(cm, byWord, -1, \"grow\"); },\n\n    \"Ctrl-N\": move(byLine, 1), \"Ctrl-P\": move(byLine, -1),\n    \"Down\": move(byLine, 1), \"Up\": move(byLine, -1),\n    \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStart\",\n\n    \"Alt-V\": move(byPage, -1), \"Ctrl-V\": move(byPage, 1),\n    \"PageUp\": move(byPage, -1), \"PageDown\": move(byPage, 1),\n\n    \"Ctrl-Up\": move(byParagraph, -1), \"Ctrl-Down\": move(byParagraph, 1),\n\n    \"Alt-A\": move(bySentence, -1), \"Alt-E\": move(bySentence, 1),\n    \"Alt-K\": function(cm) { killTo(cm, bySentence, 1, \"grow\"); },\n\n    \"Ctrl-Alt-K\": function(cm) { killTo(cm, byExpr, 1, \"grow\"); },\n    \"Ctrl-Alt-Backspace\": function(cm) { killTo(cm, byExpr, -1, \"grow\"); },\n    \"Ctrl-Alt-F\": move(byExpr, 1), \"Ctrl-Alt-B\": move(byExpr, -1, \"grow\"),\n\n    \"Shift-Ctrl-Alt-2\": function(cm) {\n      var cursor = cm.getCursor();\n      cm.setSelection(findEnd(cm, cursor, byExpr, 1), cursor);\n    },\n    \"Ctrl-Alt-T\": function(cm) {\n      var leftStart = byExpr(cm, cm.getCursor(), -1), leftEnd = byExpr(cm, leftStart, 1);\n      var rightEnd = byExpr(cm, leftEnd, 1), rightStart = byExpr(cm, rightEnd, -1);\n      cm.replaceRange(cm.getRange(rightStart, rightEnd) + cm.getRange(leftEnd, rightStart) +\n                      cm.getRange(leftStart, leftEnd), leftStart, rightEnd);\n    },\n    \"Ctrl-Alt-U\": repeated(toEnclosingExpr),\n\n    \"Alt-Space\": function(cm) {\n      var pos = cm.getCursor(), from = pos.ch, to = pos.ch, text = cm.getLine(pos.line);\n      while (from && /\\s/.test(text.charAt(from - 1))) --from;\n      while (to < text.length && /\\s/.test(text.charAt(to))) ++to;\n      cm.replaceRange(\" \", Pos(pos.line, from), Pos(pos.line, to));\n    },\n    \"Ctrl-O\": repeated(function(cm) { cm.replaceSelection(\"\\n\", \"start\"); }),\n    \"Ctrl-T\": repeated(function(cm) {\n      cm.execCommand(\"transposeChars\");\n    }),\n\n    \"Alt-C\": repeated(function(cm) {\n      operateOnWord(cm, function(w) {\n        var letter = w.search(/\\w/);\n        if (letter == -1) return w;\n        return w.slice(0, letter) + w.charAt(letter).toUpperCase() + w.slice(letter + 1).toLowerCase();\n      });\n    }),\n    \"Alt-U\": repeated(function(cm) {\n      operateOnWord(cm, function(w) { return w.toUpperCase(); });\n    }),\n    \"Alt-L\": repeated(function(cm) {\n      operateOnWord(cm, function(w) { return w.toLowerCase(); });\n    }),\n\n    \"Alt-;\": \"toggleComment\",\n\n    \"Ctrl-/\": repeated(\"undo\"), \"Shift-Ctrl--\": repeated(\"undo\"),\n    \"Ctrl-Z\": repeated(\"undo\"), \"Cmd-Z\": repeated(\"undo\"),\n    \"Shift-Ctrl-Z\": \"redo\",\n    \"Shift-Alt-,\": \"goDocStart\", \"Shift-Alt-.\": \"goDocEnd\",\n    \"Ctrl-S\": \"findPersistentNext\", \"Ctrl-R\": \"findPersistentPrev\", \"Ctrl-G\": quit, \"Shift-Alt-5\": \"replace\",\n    \"Alt-/\": \"autocomplete\",\n    \"Enter\": \"newlineAndIndent\",\n    \"Ctrl-J\": repeated(function(cm) { cm.replaceSelection(\"\\n\", \"end\"); }),\n    \"Tab\": \"indentAuto\",\n\n    \"Alt-G G\": function(cm) {\n      var prefix = getPrefix(cm, true);\n      if (prefix != null && prefix > 0) return cm.setCursor(prefix - 1);\n\n      getInput(cm, \"Goto line\", function(str) {\n        var num;\n        if (str && !isNaN(num = Number(str)) && num == (num|0) && num > 0)\n          cm.setCursor(num - 1);\n      });\n    },\n\n    \"Ctrl-X Tab\": function(cm) {\n      cm.indentSelection(getPrefix(cm, true) || cm.getOption(\"indentUnit\"));\n    },\n    \"Ctrl-X Ctrl-X\": function(cm) {\n      cm.setSelection(cm.getCursor(\"head\"), cm.getCursor(\"anchor\"));\n    },\n    \"Ctrl-X Ctrl-S\": \"save\",\n    \"Ctrl-X Ctrl-W\": \"save\",\n    \"Ctrl-X S\": \"saveAll\",\n    \"Ctrl-X F\": \"open\",\n    \"Ctrl-X U\": repeated(\"undo\"),\n    \"Ctrl-X K\": \"close\",\n    \"Ctrl-X Delete\": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), \"grow\"); },\n    \"Ctrl-X H\": \"selectAll\",\n\n    \"Ctrl-Q Tab\": repeated(\"insertTab\"),\n    \"Ctrl-U\": addPrefixMap,\n    \"fallthrough\": \"default\"\n  });\n\n  var prefixMap = {\"Ctrl-G\": clearPrefix};\n  function regPrefix(d) {\n    prefixMap[d] = function(cm) { addPrefix(cm, d); };\n    keyMap[\"Ctrl-\" + d] = function(cm) { addPrefix(cm, d); };\n    prefixPreservingKeys[\"Ctrl-\" + d] = true;\n  }\n  for (var i = 0; i < 10; ++i) regPrefix(String(i));\n  regPrefix(\"-\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/keymap/sublime.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// A rough approximation of Sublime Text's keybindings\n// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/edit/matchbrackets\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/edit/matchbrackets\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var cmds = CodeMirror.commands;\n  var Pos = CodeMirror.Pos;\n\n  // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.\n  function findPosSubword(doc, start, dir) {\n    if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));\n    var line = doc.getLine(start.line);\n    if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));\n    var state = \"start\", type, startPos = start.ch;\n    for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {\n      var next = line.charAt(dir < 0 ? pos - 1 : pos);\n      var cat = next != \"_\" && CodeMirror.isWordChar(next) ? \"w\" : \"o\";\n      if (cat == \"w\" && next.toUpperCase() == next) cat = \"W\";\n      if (state == \"start\") {\n        if (cat != \"o\") { state = \"in\"; type = cat; }\n        else startPos = pos + dir\n      } else if (state == \"in\") {\n        if (type != cat) {\n          if (type == \"w\" && cat == \"W\" && dir < 0) pos--;\n          if (type == \"W\" && cat == \"w\" && dir > 0) { // From uppercase to lowercase\n            if (pos == startPos + 1) { type = \"w\"; continue; }\n            else pos--;\n          }\n          break;\n        }\n      }\n    }\n    return Pos(start.line, pos);\n  }\n\n  function moveSubword(cm, dir) {\n    cm.extendSelectionsBy(function(range) {\n      if (cm.display.shift || cm.doc.extend || range.empty())\n        return findPosSubword(cm.doc, range.head, dir);\n      else\n        return dir < 0 ? range.from() : range.to();\n    });\n  }\n\n  cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };\n  cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };\n\n  cmds.scrollLineUp = function(cm) {\n    var info = cm.getScrollInfo();\n    if (!cm.somethingSelected()) {\n      var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, \"local\");\n      if (cm.getCursor().line >= visibleBottomLine)\n        cm.execCommand(\"goLineUp\");\n    }\n    cm.scrollTo(null, info.top - cm.defaultTextHeight());\n  };\n  cmds.scrollLineDown = function(cm) {\n    var info = cm.getScrollInfo();\n    if (!cm.somethingSelected()) {\n      var visibleTopLine = cm.lineAtHeight(info.top, \"local\")+1;\n      if (cm.getCursor().line <= visibleTopLine)\n        cm.execCommand(\"goLineDown\");\n    }\n    cm.scrollTo(null, info.top + cm.defaultTextHeight());\n  };\n\n  cmds.splitSelectionByLine = function(cm) {\n    var ranges = cm.listSelections(), lineRanges = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var from = ranges[i].from(), to = ranges[i].to();\n      for (var line = from.line; line <= to.line; ++line)\n        if (!(to.line > from.line && line == to.line && to.ch == 0))\n          lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),\n                           head: line == to.line ? to : Pos(line)});\n    }\n    cm.setSelections(lineRanges, 0);\n  };\n\n  cmds.singleSelectionTop = function(cm) {\n    var range = cm.listSelections()[0];\n    cm.setSelection(range.anchor, range.head, {scroll: false});\n  };\n\n  cmds.selectLine = function(cm) {\n    var ranges = cm.listSelections(), extended = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      extended.push({anchor: Pos(range.from().line, 0),\n                     head: Pos(range.to().line + 1, 0)});\n    }\n    cm.setSelections(extended);\n  };\n\n  function insertLine(cm, above) {\n    if (cm.isReadOnly()) return CodeMirror.Pass\n    cm.operation(function() {\n      var len = cm.listSelections().length, newSelection = [], last = -1;\n      for (var i = 0; i < len; i++) {\n        var head = cm.listSelections()[i].head;\n        if (head.line <= last) continue;\n        var at = Pos(head.line + (above ? 0 : 1), 0);\n        cm.replaceRange(\"\\n\", at, null, \"+insertLine\");\n        cm.indentLine(at.line, null, true);\n        newSelection.push({head: at, anchor: at});\n        last = head.line + 1;\n      }\n      cm.setSelections(newSelection);\n    });\n    cm.execCommand(\"indentAuto\");\n  }\n\n  cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };\n\n  cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };\n\n  function wordAt(cm, pos) {\n    var start = pos.ch, end = start, line = cm.getLine(pos.line);\n    while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;\n    while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;\n    return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};\n  }\n\n  cmds.selectNextOccurrence = function(cm) {\n    var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n    var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;\n    if (CodeMirror.cmpPos(from, to) == 0) {\n      var word = wordAt(cm, from);\n      if (!word.word) return;\n      cm.setSelection(word.from, word.to);\n      fullWord = true;\n    } else {\n      var text = cm.getRange(from, to);\n      var query = fullWord ? new RegExp(\"\\\\b\" + text + \"\\\\b\") : text;\n      var cur = cm.getSearchCursor(query, to);\n      var found = cur.findNext();\n      if (!found) {\n        cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));\n        found = cur.findNext();\n      }\n      if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return\n      cm.addSelection(cur.from(), cur.to());\n    }\n    if (fullWord)\n      cm.state.sublimeFindFullWord = cm.doc.sel;\n  };\n\n  cmds.skipAndSelectNextOccurrence = function(cm) {\n    var prevAnchor = cm.getCursor(\"anchor\"), prevHead = cm.getCursor(\"head\");\n    cmds.selectNextOccurrence(cm);\n    if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {\n      cm.doc.setSelections(cm.doc.listSelections()\n          .filter(function (sel) {\n            return sel.anchor != prevAnchor || sel.head != prevHead;\n          }));\n    }\n  }\n\n  function addCursorToSelection(cm, dir) {\n    var ranges = cm.listSelections(), newRanges = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      var newAnchor = cm.findPosV(\n          range.anchor, dir, \"line\", range.anchor.goalColumn);\n      var newHead = cm.findPosV(\n          range.head, dir, \"line\", range.head.goalColumn);\n      newAnchor.goalColumn = range.anchor.goalColumn != null ?\n          range.anchor.goalColumn : cm.cursorCoords(range.anchor, \"div\").left;\n      newHead.goalColumn = range.head.goalColumn != null ?\n          range.head.goalColumn : cm.cursorCoords(range.head, \"div\").left;\n      var newRange = {anchor: newAnchor, head: newHead};\n      newRanges.push(range);\n      newRanges.push(newRange);\n    }\n    cm.setSelections(newRanges);\n  }\n  cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };\n  cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };\n\n  function isSelectedRange(ranges, from, to) {\n    for (var i = 0; i < ranges.length; i++)\n      if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 &&\n          CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true\n    return false\n  }\n\n  var mirror = \"(){}[]\";\n  function selectBetweenBrackets(cm) {\n    var ranges = cm.listSelections(), newRanges = []\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);\n      if (!opening) return false;\n      for (;;) {\n        var closing = cm.scanForBracket(pos, 1);\n        if (!closing) return false;\n        if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {\n          var startPos = Pos(opening.pos.line, opening.pos.ch + 1);\n          if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&\n              CodeMirror.cmpPos(closing.pos, range.to()) == 0) {\n            opening = cm.scanForBracket(opening.pos, -1);\n            if (!opening) return false;\n          } else {\n            newRanges.push({anchor: startPos, head: closing.pos});\n            break;\n          }\n        }\n        pos = Pos(closing.pos.line, closing.pos.ch + 1);\n      }\n    }\n    cm.setSelections(newRanges);\n    return true;\n  }\n\n  cmds.selectScope = function(cm) {\n    selectBetweenBrackets(cm) || cm.execCommand(\"selectAll\");\n  };\n  cmds.selectBetweenBrackets = function(cm) {\n    if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;\n  };\n\n  function puncType(type) {\n    return !type ? null : /\\bpunctuation\\b/.test(type) ? type : undefined\n  }\n\n  cmds.goToBracket = function(cm) {\n    cm.extendSelectionsBy(function(range) {\n      var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head)));\n      if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;\n      var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1))));\n      return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;\n    });\n  };\n\n  cmds.swapLineUp = function(cm) {\n    if (cm.isReadOnly()) return CodeMirror.Pass\n    var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i], from = range.from().line - 1, to = range.to().line;\n      newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),\n                    head: Pos(range.head.line - 1, range.head.ch)});\n      if (range.to().ch == 0 && !range.empty()) --to;\n      if (from > at) linesToMove.push(from, to);\n      else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n      at = to;\n    }\n    cm.operation(function() {\n      for (var i = 0; i < linesToMove.length; i += 2) {\n        var from = linesToMove[i], to = linesToMove[i + 1];\n        var line = cm.getLine(from);\n        cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n        if (to > cm.lastLine())\n          cm.replaceRange(\"\\n\" + line, Pos(cm.lastLine()), null, \"+swapLine\");\n        else\n          cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n      }\n      cm.setSelections(newSels);\n      cm.scrollIntoView();\n    });\n  };\n\n  cmds.swapLineDown = function(cm) {\n    if (cm.isReadOnly()) return CodeMirror.Pass\n    var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var range = ranges[i], from = range.to().line + 1, to = range.from().line;\n      if (range.to().ch == 0 && !range.empty()) from--;\n      if (from < at) linesToMove.push(from, to);\n      else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n      at = to;\n    }\n    cm.operation(function() {\n      for (var i = linesToMove.length - 2; i >= 0; i -= 2) {\n        var from = linesToMove[i], to = linesToMove[i + 1];\n        var line = cm.getLine(from);\n        if (from == cm.lastLine())\n          cm.replaceRange(\"\", Pos(from - 1), Pos(from), \"+swapLine\");\n        else\n          cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n        cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n      }\n      cm.scrollIntoView();\n    });\n  };\n\n  cmds.toggleCommentIndented = function(cm) {\n    cm.toggleComment({ indent: true });\n  }\n\n  cmds.joinLines = function(cm) {\n    var ranges = cm.listSelections(), joined = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i], from = range.from();\n      var start = from.line, end = range.to().line;\n      while (i < ranges.length - 1 && ranges[i + 1].from().line == end)\n        end = ranges[++i].to().line;\n      joined.push({start: start, end: end, anchor: !range.empty() && from});\n    }\n    cm.operation(function() {\n      var offset = 0, ranges = [];\n      for (var i = 0; i < joined.length; i++) {\n        var obj = joined[i];\n        var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;\n        for (var line = obj.start; line <= obj.end; line++) {\n          var actual = line - offset;\n          if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);\n          if (actual < cm.lastLine()) {\n            cm.replaceRange(\" \", Pos(actual), Pos(actual + 1, /^\\s*/.exec(cm.getLine(actual + 1))[0].length));\n            ++offset;\n          }\n        }\n        ranges.push({anchor: anchor || head, head: head});\n      }\n      cm.setSelections(ranges, 0);\n    });\n  };\n\n  cmds.duplicateLine = function(cm) {\n    cm.operation(function() {\n      var rangeCount = cm.listSelections().length;\n      for (var i = 0; i < rangeCount; i++) {\n        var range = cm.listSelections()[i];\n        if (range.empty())\n          cm.replaceRange(cm.getLine(range.head.line) + \"\\n\", Pos(range.head.line, 0));\n        else\n          cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());\n      }\n      cm.scrollIntoView();\n    });\n  };\n\n\n  function sortLines(cm, caseSensitive, direction) {\n    if (cm.isReadOnly()) return CodeMirror.Pass\n    var ranges = cm.listSelections(), toSort = [], selected;\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      if (range.empty()) continue;\n      var from = range.from().line, to = range.to().line;\n      while (i < ranges.length - 1 && ranges[i + 1].from().line == to)\n        to = ranges[++i].to().line;\n      if (!ranges[i].to().ch) to--;\n      toSort.push(from, to);\n    }\n    if (toSort.length) selected = true;\n    else toSort.push(cm.firstLine(), cm.lastLine());\n\n    cm.operation(function() {\n      var ranges = [];\n      for (var i = 0; i < toSort.length; i += 2) {\n        var from = toSort[i], to = toSort[i + 1];\n        var start = Pos(from, 0), end = Pos(to);\n        var lines = cm.getRange(start, end, false);\n        if (caseSensitive)\n          lines.sort(function(a, b) { return a < b ? -direction : a == b ? 0 : direction; });\n        else\n          lines.sort(function(a, b) {\n            var au = a.toUpperCase(), bu = b.toUpperCase();\n            if (au != bu) { a = au; b = bu; }\n            return a < b ? -direction : a == b ? 0 : direction;\n          });\n        cm.replaceRange(lines, start, end);\n        if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});\n      }\n      if (selected) cm.setSelections(ranges, 0);\n    });\n  }\n\n  cmds.sortLines = function(cm) { sortLines(cm, true, 1); };\n  cmds.reverseSortLines = function(cm) { sortLines(cm, true, -1); };\n  cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false, 1); };\n  cmds.reverseSortLinesInsensitive = function(cm) { sortLines(cm, false, -1); };\n\n  cmds.nextBookmark = function(cm) {\n    var marks = cm.state.sublimeBookmarks;\n    if (marks) while (marks.length) {\n      var current = marks.shift();\n      var found = current.find();\n      if (found) {\n        marks.push(current);\n        return cm.setSelection(found.from, found.to);\n      }\n    }\n  };\n\n  cmds.prevBookmark = function(cm) {\n    var marks = cm.state.sublimeBookmarks;\n    if (marks) while (marks.length) {\n      marks.unshift(marks.pop());\n      var found = marks[marks.length - 1].find();\n      if (!found)\n        marks.pop();\n      else\n        return cm.setSelection(found.from, found.to);\n    }\n  };\n\n  cmds.toggleBookmark = function(cm) {\n    var ranges = cm.listSelections();\n    var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);\n    for (var i = 0; i < ranges.length; i++) {\n      var from = ranges[i].from(), to = ranges[i].to();\n      var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);\n      for (var j = 0; j < found.length; j++) {\n        if (found[j].sublimeBookmark) {\n          found[j].clear();\n          for (var k = 0; k < marks.length; k++)\n            if (marks[k] == found[j])\n              marks.splice(k--, 1);\n          break;\n        }\n      }\n      if (j == found.length)\n        marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));\n    }\n  };\n\n  cmds.clearBookmarks = function(cm) {\n    var marks = cm.state.sublimeBookmarks;\n    if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n    marks.length = 0;\n  };\n\n  cmds.selectBookmarks = function(cm) {\n    var marks = cm.state.sublimeBookmarks, ranges = [];\n    if (marks) for (var i = 0; i < marks.length; i++) {\n      var found = marks[i].find();\n      if (!found)\n        marks.splice(i--, 0);\n      else\n        ranges.push({anchor: found.from, head: found.to});\n    }\n    if (ranges.length)\n      cm.setSelections(ranges, 0);\n  };\n\n  function modifyWordOrSelection(cm, mod) {\n    cm.operation(function() {\n      var ranges = cm.listSelections(), indices = [], replacements = [];\n      for (var i = 0; i < ranges.length; i++) {\n        var range = ranges[i];\n        if (range.empty()) { indices.push(i); replacements.push(\"\"); }\n        else replacements.push(mod(cm.getRange(range.from(), range.to())));\n      }\n      cm.replaceSelections(replacements, \"around\", \"case\");\n      for (var i = indices.length - 1, at; i >= 0; i--) {\n        var range = ranges[indices[i]];\n        if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;\n        var word = wordAt(cm, range.head);\n        at = word.from;\n        cm.replaceRange(mod(word.word), word.from, word.to);\n      }\n    });\n  }\n\n  cmds.smartBackspace = function(cm) {\n    if (cm.somethingSelected()) return CodeMirror.Pass;\n\n    cm.operation(function() {\n      var cursors = cm.listSelections();\n      var indentUnit = cm.getOption(\"indentUnit\");\n\n      for (var i = cursors.length - 1; i >= 0; i--) {\n        var cursor = cursors[i].head;\n        var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);\n        var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption(\"tabSize\"));\n\n        // Delete by one character by default\n        var deletePos = cm.findPosH(cursor, -1, \"char\", false);\n\n        if (toStartOfLine && !/\\S/.test(toStartOfLine) && column % indentUnit == 0) {\n          var prevIndent = new Pos(cursor.line,\n            CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));\n\n          // Smart delete only if we found a valid prevIndent location\n          if (prevIndent.ch != cursor.ch) deletePos = prevIndent;\n        }\n\n        cm.replaceRange(\"\", deletePos, cursor, \"+delete\");\n      }\n    });\n  };\n\n  cmds.delLineRight = function(cm) {\n    cm.operation(function() {\n      var ranges = cm.listSelections();\n      for (var i = ranges.length - 1; i >= 0; i--)\n        cm.replaceRange(\"\", ranges[i].anchor, Pos(ranges[i].to().line), \"+delete\");\n      cm.scrollIntoView();\n    });\n  };\n\n  cmds.upcaseAtCursor = function(cm) {\n    modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });\n  };\n  cmds.downcaseAtCursor = function(cm) {\n    modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });\n  };\n\n  cmds.setSublimeMark = function(cm) {\n    if (cm.state.sublimeMark) cm.state.sublimeMark.clear();\n    cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n  };\n  cmds.selectToSublimeMark = function(cm) {\n    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n    if (found) cm.setSelection(cm.getCursor(), found);\n  };\n  cmds.deleteToSublimeMark = function(cm) {\n    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n    if (found) {\n      var from = cm.getCursor(), to = found;\n      if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }\n      cm.state.sublimeKilled = cm.getRange(from, to);\n      cm.replaceRange(\"\", from, to);\n    }\n  };\n  cmds.swapWithSublimeMark = function(cm) {\n    var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n    if (found) {\n      cm.state.sublimeMark.clear();\n      cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n      cm.setCursor(found);\n    }\n  };\n  cmds.sublimeYank = function(cm) {\n    if (cm.state.sublimeKilled != null)\n      cm.replaceSelection(cm.state.sublimeKilled, null, \"paste\");\n  };\n\n  cmds.showInCenter = function(cm) {\n    var pos = cm.cursorCoords(null, \"local\");\n    cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);\n  };\n\n  function getTarget(cm) {\n    var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n    if (CodeMirror.cmpPos(from, to) == 0) {\n      var word = wordAt(cm, from);\n      if (!word.word) return;\n      from = word.from;\n      to = word.to;\n    }\n    return {from: from, to: to, query: cm.getRange(from, to), word: word};\n  }\n\n  function findAndGoTo(cm, forward) {\n    var target = getTarget(cm);\n    if (!target) return;\n    var query = target.query;\n    var cur = cm.getSearchCursor(query, forward ? target.to : target.from);\n\n    if (forward ? cur.findNext() : cur.findPrevious()) {\n      cm.setSelection(cur.from(), cur.to());\n    } else {\n      cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)\n                                              : cm.clipPos(Pos(cm.lastLine())));\n      if (forward ? cur.findNext() : cur.findPrevious())\n        cm.setSelection(cur.from(), cur.to());\n      else if (target.word)\n        cm.setSelection(target.from, target.to);\n    }\n  };\n  cmds.findUnder = function(cm) { findAndGoTo(cm, true); };\n  cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };\n  cmds.findAllUnder = function(cm) {\n    var target = getTarget(cm);\n    if (!target) return;\n    var cur = cm.getSearchCursor(target.query);\n    var matches = [];\n    var primaryIndex = -1;\n    while (cur.findNext()) {\n      matches.push({anchor: cur.from(), head: cur.to()});\n      if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)\n        primaryIndex++;\n    }\n    cm.setSelections(matches, primaryIndex);\n  };\n\n\n  var keyMap = CodeMirror.keyMap;\n  keyMap.macSublime = {\n    \"Cmd-Left\": \"goLineStartSmart\",\n    \"Shift-Tab\": \"indentLess\",\n    \"Shift-Ctrl-K\": \"deleteLine\",\n    \"Alt-Q\": \"wrapLines\",\n    \"Ctrl-Left\": \"goSubwordLeft\",\n    \"Ctrl-Right\": \"goSubwordRight\",\n    \"Ctrl-Alt-Up\": \"scrollLineUp\",\n    \"Ctrl-Alt-Down\": \"scrollLineDown\",\n    \"Cmd-L\": \"selectLine\",\n    \"Shift-Cmd-L\": \"splitSelectionByLine\",\n    \"Esc\": \"singleSelectionTop\",\n    \"Cmd-Enter\": \"insertLineAfter\",\n    \"Shift-Cmd-Enter\": \"insertLineBefore\",\n    \"Cmd-D\": \"selectNextOccurrence\",\n    \"Shift-Cmd-Space\": \"selectScope\",\n    \"Shift-Cmd-M\": \"selectBetweenBrackets\",\n    \"Cmd-M\": \"goToBracket\",\n    \"Cmd-Ctrl-Up\": \"swapLineUp\",\n    \"Cmd-Ctrl-Down\": \"swapLineDown\",\n    \"Cmd-/\": \"toggleCommentIndented\",\n    \"Cmd-J\": \"joinLines\",\n    \"Shift-Cmd-D\": \"duplicateLine\",\n    \"F5\": \"sortLines\",\n    \"Shift-F5\": \"reverseSortLines\",\n    \"Cmd-F5\": \"sortLinesInsensitive\",\n    \"Shift-Cmd-F5\": \"reverseSortLinesInsensitive\",\n    \"F2\": \"nextBookmark\",\n    \"Shift-F2\": \"prevBookmark\",\n    \"Cmd-F2\": \"toggleBookmark\",\n    \"Shift-Cmd-F2\": \"clearBookmarks\",\n    \"Alt-F2\": \"selectBookmarks\",\n    \"Backspace\": \"smartBackspace\",\n    \"Cmd-K Cmd-D\": \"skipAndSelectNextOccurrence\",\n    \"Cmd-K Cmd-K\": \"delLineRight\",\n    \"Cmd-K Cmd-U\": \"upcaseAtCursor\",\n    \"Cmd-K Cmd-L\": \"downcaseAtCursor\",\n    \"Cmd-K Cmd-Space\": \"setSublimeMark\",\n    \"Cmd-K Cmd-A\": \"selectToSublimeMark\",\n    \"Cmd-K Cmd-W\": \"deleteToSublimeMark\",\n    \"Cmd-K Cmd-X\": \"swapWithSublimeMark\",\n    \"Cmd-K Cmd-Y\": \"sublimeYank\",\n    \"Cmd-K Cmd-C\": \"showInCenter\",\n    \"Cmd-K Cmd-G\": \"clearBookmarks\",\n    \"Cmd-K Cmd-Backspace\": \"delLineLeft\",\n    \"Cmd-K Cmd-1\": \"foldAll\",\n    \"Cmd-K Cmd-0\": \"unfoldAll\",\n    \"Cmd-K Cmd-J\": \"unfoldAll\",\n    \"Ctrl-Shift-Up\": \"addCursorToPrevLine\",\n    \"Ctrl-Shift-Down\": \"addCursorToNextLine\",\n    \"Cmd-F3\": \"findUnder\",\n    \"Shift-Cmd-F3\": \"findUnderPrevious\",\n    \"Alt-F3\": \"findAllUnder\",\n    \"Shift-Cmd-[\": \"fold\",\n    \"Shift-Cmd-]\": \"unfold\",\n    \"Cmd-I\": \"findIncremental\",\n    \"Shift-Cmd-I\": \"findIncrementalReverse\",\n    \"Cmd-H\": \"replace\",\n    \"F3\": \"findNext\",\n    \"Shift-F3\": \"findPrev\",\n    \"fallthrough\": \"macDefault\"\n  };\n  CodeMirror.normalizeKeyMap(keyMap.macSublime);\n\n  keyMap.pcSublime = {\n    \"Shift-Tab\": \"indentLess\",\n    \"Shift-Ctrl-K\": \"deleteLine\",\n    \"Alt-Q\": \"wrapLines\",\n    \"Ctrl-T\": \"transposeChars\",\n    \"Alt-Left\": \"goSubwordLeft\",\n    \"Alt-Right\": \"goSubwordRight\",\n    \"Ctrl-Up\": \"scrollLineUp\",\n    \"Ctrl-Down\": \"scrollLineDown\",\n    \"Ctrl-L\": \"selectLine\",\n    \"Shift-Ctrl-L\": \"splitSelectionByLine\",\n    \"Esc\": \"singleSelectionTop\",\n    \"Ctrl-Enter\": \"insertLineAfter\",\n    \"Shift-Ctrl-Enter\": \"insertLineBefore\",\n    \"Ctrl-D\": \"selectNextOccurrence\",\n    \"Shift-Ctrl-Space\": \"selectScope\",\n    \"Shift-Ctrl-M\": \"selectBetweenBrackets\",\n    \"Ctrl-M\": \"goToBracket\",\n    \"Shift-Ctrl-Up\": \"swapLineUp\",\n    \"Shift-Ctrl-Down\": \"swapLineDown\",\n    \"Ctrl-/\": \"toggleCommentIndented\",\n    \"Ctrl-J\": \"joinLines\",\n    \"Shift-Ctrl-D\": \"duplicateLine\",\n    \"F9\": \"sortLines\",\n    \"Shift-F9\": \"reverseSortLines\",\n    \"Ctrl-F9\": \"sortLinesInsensitive\",\n    \"Shift-Ctrl-F9\": \"reverseSortLinesInsensitive\",\n    \"F2\": \"nextBookmark\",\n    \"Shift-F2\": \"prevBookmark\",\n    \"Ctrl-F2\": \"toggleBookmark\",\n    \"Shift-Ctrl-F2\": \"clearBookmarks\",\n    \"Alt-F2\": \"selectBookmarks\",\n    \"Backspace\": \"smartBackspace\",\n    \"Ctrl-K Ctrl-D\": \"skipAndSelectNextOccurrence\",\n    \"Ctrl-K Ctrl-K\": \"delLineRight\",\n    \"Ctrl-K Ctrl-U\": \"upcaseAtCursor\",\n    \"Ctrl-K Ctrl-L\": \"downcaseAtCursor\",\n    \"Ctrl-K Ctrl-Space\": \"setSublimeMark\",\n    \"Ctrl-K Ctrl-A\": \"selectToSublimeMark\",\n    \"Ctrl-K Ctrl-W\": \"deleteToSublimeMark\",\n    \"Ctrl-K Ctrl-X\": \"swapWithSublimeMark\",\n    \"Ctrl-K Ctrl-Y\": \"sublimeYank\",\n    \"Ctrl-K Ctrl-C\": \"showInCenter\",\n    \"Ctrl-K Ctrl-G\": \"clearBookmarks\",\n    \"Ctrl-K Ctrl-Backspace\": \"delLineLeft\",\n    \"Ctrl-K Ctrl-1\": \"foldAll\",\n    \"Ctrl-K Ctrl-0\": \"unfoldAll\",\n    \"Ctrl-K Ctrl-J\": \"unfoldAll\",\n    \"Ctrl-Alt-Up\": \"addCursorToPrevLine\",\n    \"Ctrl-Alt-Down\": \"addCursorToNextLine\",\n    \"Ctrl-F3\": \"findUnder\",\n    \"Shift-Ctrl-F3\": \"findUnderPrevious\",\n    \"Alt-F3\": \"findAllUnder\",\n    \"Shift-Ctrl-[\": \"fold\",\n    \"Shift-Ctrl-]\": \"unfold\",\n    \"Ctrl-I\": \"findIncremental\",\n    \"Shift-Ctrl-I\": \"findIncrementalReverse\",\n    \"Ctrl-H\": \"replace\",\n    \"F3\": \"findNext\",\n    \"Shift-F3\": \"findPrev\",\n    \"fallthrough\": \"pcDefault\"\n  };\n  CodeMirror.normalizeKeyMap(keyMap.pcSublime);\n\n  var mac = keyMap.default == keyMap.macDefault;\n  keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/keymap/vim.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Supported keybindings:\n *   Too many to list. Refer to defaultKeymap below.\n *\n * Supported Ex commands:\n *   Refer to defaultExCommandMap below.\n *\n * Registers: unnamed, -, ., :, /, _, a-z, A-Z, 0-9\n *   (Does not respect the special case for number registers when delete\n *    operator is made with these commands: %, (, ),  , /, ?, n, N, {, } )\n *   TODO: Implement the remaining registers.\n *\n * Marks: a-z, A-Z, and 0-9\n *   TODO: Implement the remaining special marks. They have more complex\n *       behavior.\n *\n * Events:\n *  'vim-mode-change' - raised on the editor anytime the current mode changes,\n *                      Event object: {mode: \"visual\", subMode: \"linewise\"}\n *\n * Code structure:\n *  1. Default keymap\n *  2. Variable declarations and short basic helpers\n *  3. Instance (External API) implementation\n *  4. Internal state tracking objects (input state, counter) implementation\n *     and instantiation\n *  5. Key handler (the main command dispatcher) implementation\n *  6. Motion, operator, and action implementations\n *  7. Helper functions for the key handler, motions, operators, and actions\n *  8. Set up Vim to work as a keymap for CodeMirror.\n *  9. Ex command implementations.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/dialog/dialog\"), require(\"../addon/edit/matchbrackets.js\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/dialog/dialog\", \"../addon/edit/matchbrackets\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  'use strict';\n\n  var defaultKeymap = [\n    // Key to key mapping. This goes first to make it possible to override\n    // existing mappings.\n    { keys: '<Left>', type: 'keyToKey', toKeys: 'h' },\n    { keys: '<Right>', type: 'keyToKey', toKeys: 'l' },\n    { keys: '<Up>', type: 'keyToKey', toKeys: 'k' },\n    { keys: '<Down>', type: 'keyToKey', toKeys: 'j' },\n    { keys: '<Space>', type: 'keyToKey', toKeys: 'l' },\n    { keys: '<BS>', type: 'keyToKey', toKeys: 'h', context: 'normal'},\n    { keys: '<Del>', type: 'keyToKey', toKeys: 'x', context: 'normal'},\n    { keys: '<C-Space>', type: 'keyToKey', toKeys: 'W' },\n    { keys: '<C-BS>', type: 'keyToKey', toKeys: 'B', context: 'normal' },\n    { keys: '<S-Space>', type: 'keyToKey', toKeys: 'w' },\n    { keys: '<S-BS>', type: 'keyToKey', toKeys: 'b', context: 'normal' },\n    { keys: '<C-n>', type: 'keyToKey', toKeys: 'j' },\n    { keys: '<C-p>', type: 'keyToKey', toKeys: 'k' },\n    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>' },\n    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>' },\n    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },\n    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },\n    { keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' },\n    { keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'},\n    { keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' },\n    { keys: 'S', type: 'keyToKey', toKeys: 'VdO', context: 'visual' },\n    { keys: '<Home>', type: 'keyToKey', toKeys: '0' },\n    { keys: '<End>', type: 'keyToKey', toKeys: '$' },\n    { keys: '<PageUp>', type: 'keyToKey', toKeys: '<C-b>' },\n    { keys: '<PageDown>', type: 'keyToKey', toKeys: '<C-f>' },\n    { keys: '<CR>', type: 'keyToKey', toKeys: 'j^', context: 'normal' },\n    { keys: '<Ins>', type: 'action', action: 'toggleOverwrite', context: 'insert' },\n    // Motions\n    { keys: 'H', type: 'motion', motion: 'moveToTopLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'M', type: 'motion', motion: 'moveToMiddleLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'L', type: 'motion', motion: 'moveToBottomLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'h', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: false }},\n    { keys: 'l', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: true }},\n    { keys: 'j', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, linewise: true }},\n    { keys: 'k', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, linewise: true }},\n    { keys: 'gj', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: true }},\n    { keys: 'gk', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: false }},\n    { keys: 'w', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false }},\n    { keys: 'W', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false, bigWord: true }},\n    { keys: 'e', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, inclusive: true }},\n    { keys: 'E', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, bigWord: true, inclusive: true }},\n    { keys: 'b', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }},\n    { keys: 'B', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false, bigWord: true }},\n    { keys: 'ge', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, inclusive: true }},\n    { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},\n    { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},\n    { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},\n    { keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},\n    { keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},\n    { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},\n    { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},\n    { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},\n    { keys: '<C-u>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: false, explicitRepeat: true }},\n    { keys: 'gg', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true, toJumplist: true }},\n    { keys: 'G', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: true, explicitRepeat: true, linewise: true, toJumplist: true }},\n    { keys: '0', type: 'motion', motion: 'moveToStartOfLine' },\n    { keys: '^', type: 'motion', motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: '+', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true }},\n    { keys: '-', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, toFirstChar:true }},\n    { keys: '_', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true, repeatOffset:-1 }},\n    { keys: '$', type: 'motion', motion: 'moveToEol', motionArgs: { inclusive: true }},\n    { keys: '%', type: 'motion', motion: 'moveToMatchedSymbol', motionArgs: { inclusive: true, toJumplist: true }},\n    { keys: 'f<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: true , inclusive: true }},\n    { keys: 'F<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: false }},\n    { keys: 't<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: true, inclusive: true }},\n    { keys: 'T<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: false }},\n    { keys: ';', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: true }},\n    { keys: ',', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: false }},\n    { keys: '\\'<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true, linewise: true}},\n    { keys: '`<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true}},\n    { keys: ']`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true } },\n    { keys: '[`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false } },\n    { keys: ']\\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true, linewise: true } },\n    { keys: '[\\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false, linewise: true } },\n    // the next two aren't motions but must come before more general motion declarations\n    { keys: ']p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true, matchIndent: true}},\n    { keys: '[p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true, matchIndent: true}},\n    { keys: ']<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: true, toJumplist: true}},\n    { keys: '[<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: false, toJumplist: true}},\n    { keys: '|', type: 'motion', motion: 'moveToColumn'},\n    { keys: 'o', type: 'motion', motion: 'moveToOtherHighlightedEnd', context:'visual'},\n    { keys: 'O', type: 'motion', motion: 'moveToOtherHighlightedEnd', motionArgs: {sameLine: true}, context:'visual'},\n    // Operators\n    { keys: 'd', type: 'operator', operator: 'delete' },\n    { keys: 'y', type: 'operator', operator: 'yank' },\n    { keys: 'c', type: 'operator', operator: 'change' },\n    { keys: '=', type: 'operator', operator: 'indentAuto' },\n    { keys: '>', type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }},\n    { keys: '<', type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }},\n    { keys: 'g~', type: 'operator', operator: 'changeCase' },\n    { keys: 'gu', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, isEdit: true },\n    { keys: 'gU', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, isEdit: true },\n    { keys: 'n', type: 'motion', motion: 'findNext', motionArgs: { forward: true, toJumplist: true }},\n    { keys: 'N', type: 'motion', motion: 'findNext', motionArgs: { forward: false, toJumplist: true }},\n    { keys: 'gn', type: 'motion', motion: 'findAndSelectNextInclusive', motionArgs: { forward: true }},\n    { keys: 'gN', type: 'motion', motion: 'findAndSelectNextInclusive', motionArgs: { forward: false }},\n    // Operator-Motion dual commands\n    { keys: 'x', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorMotionArgs: { visualLine: false }},\n    { keys: 'X', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }},\n    { keys: 'D', type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},\n    { keys: 'D', type: 'operator', operator: 'delete', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'expandToLine', motionArgs: { linewise: true }, context: 'normal'},\n    { keys: 'Y', type: 'operator', operator: 'yank', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: 'C', type: 'operatorMotion', operator: 'change', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},\n    { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'},\n    { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'},\n    { keys: '<C-w>', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' },\n    //ignore C-w in normal mode\n    { keys: '<C-w>', type: 'idle', context: 'normal' },\n    // Actions\n    { keys: '<C-i>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: true }},\n    { keys: '<C-o>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: false }},\n    { keys: '<C-e>', type: 'action', action: 'scroll', actionArgs: { forward: true, linewise: true }},\n    { keys: '<C-y>', type: 'action', action: 'scroll', actionArgs: { forward: false, linewise: true }},\n    { keys: 'a', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'charAfter' }, context: 'normal' },\n    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'eol' }, context: 'normal' },\n    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'endOfSelectedArea' }, context: 'visual' },\n    { keys: 'i', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'inplace' }, context: 'normal' },\n    { keys: 'gi', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'lastEdit' }, context: 'normal' },\n    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'firstNonBlank'}, context: 'normal' },\n    { keys: 'gI', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'bol'}, context: 'normal' },\n    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'startOfSelectedArea' }, context: 'visual' },\n    { keys: 'o', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: true }, context: 'normal' },\n    { keys: 'O', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: false }, context: 'normal' },\n    { keys: 'v', type: 'action', action: 'toggleVisualMode' },\n    { keys: 'V', type: 'action', action: 'toggleVisualMode', actionArgs: { linewise: true }},\n    { keys: '<C-v>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},\n    { keys: '<C-q>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},\n    { keys: 'gv', type: 'action', action: 'reselectLastSelection' },\n    { keys: 'J', type: 'action', action: 'joinLines', isEdit: true },\n    { keys: 'gJ', type: 'action', action: 'joinLines', actionArgs: { keepSpaces: true }, isEdit: true },\n    { keys: 'p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true }},\n    { keys: 'P', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true }},\n    { keys: 'r<character>', type: 'action', action: 'replace', isEdit: true },\n    { keys: '@<character>', type: 'action', action: 'replayMacro' },\n    { keys: 'q<character>', type: 'action', action: 'enterMacroRecordMode' },\n    // Handle Replace-mode as a special case of insert mode.\n    { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }, context: 'normal'},\n    { keys: 'R', type: 'operator', operator: 'change', operatorArgs: { linewise: true, fullLine: true }, context: 'visual', exitVisualBlock: true},\n    { keys: 'u', type: 'action', action: 'undo', context: 'normal' },\n    { keys: 'u', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, context: 'visual', isEdit: true },\n    { keys: 'U', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, context: 'visual', isEdit: true },\n    { keys: '<C-r>', type: 'action', action: 'redo' },\n    { keys: 'm<character>', type: 'action', action: 'setMark' },\n    { keys: '\"<character>', type: 'action', action: 'setRegister' },\n    { keys: 'zz', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }},\n    { keys: 'z.', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: 'zt', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }},\n    { keys: 'z<CR>', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: 'z-', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }},\n    { keys: 'zb', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: '.', type: 'action', action: 'repeatLastEdit' },\n    { keys: '<C-a>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: true, backtrack: false}},\n    { keys: '<C-x>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: false, backtrack: false}},\n    { keys: '<C-t>', type: 'action', action: 'indent', actionArgs: { indentRight: true }, context: 'insert' },\n    { keys: '<C-d>', type: 'action', action: 'indent', actionArgs: { indentRight: false }, context: 'insert' },\n    // Text object motions\n    { keys: 'a<character>', type: 'motion', motion: 'textObjectManipulation' },\n    { keys: 'i<character>', type: 'motion', motion: 'textObjectManipulation', motionArgs: { textObjectInner: true }},\n    // Search\n    { keys: '/', type: 'search', searchArgs: { forward: true, querySrc: 'prompt', toJumplist: true }},\n    { keys: '?', type: 'search', searchArgs: { forward: false, querySrc: 'prompt', toJumplist: true }},\n    { keys: '*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},\n    { keys: '#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},\n    { keys: 'g*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', toJumplist: true }},\n    { keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }},\n    // Ex command\n    { keys: ':', type: 'ex' }\n  ];\n  var defaultKeymapLength = defaultKeymap.length;\n\n  /**\n   * Ex commands\n   * Care must be taken when adding to the default Ex command map. For any\n   * pair of commands that have a shared prefix, at least one of their\n   * shortNames must not match the prefix of the other command.\n   */\n  var defaultExCommandMap = [\n    { name: 'colorscheme', shortName: 'colo' },\n    { name: 'map' },\n    { name: 'imap', shortName: 'im' },\n    { name: 'nmap', shortName: 'nm' },\n    { name: 'vmap', shortName: 'vm' },\n    { name: 'unmap' },\n    { name: 'write', shortName: 'w' },\n    { name: 'undo', shortName: 'u' },\n    { name: 'redo', shortName: 'red' },\n    { name: 'set', shortName: 'se' },\n    { name: 'setlocal', shortName: 'setl' },\n    { name: 'setglobal', shortName: 'setg' },\n    { name: 'sort', shortName: 'sor' },\n    { name: 'substitute', shortName: 's', possiblyAsync: true },\n    { name: 'nohlsearch', shortName: 'noh' },\n    { name: 'yank', shortName: 'y' },\n    { name: 'delmarks', shortName: 'delm' },\n    { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },\n    { name: 'vglobal', shortName: 'v' },\n    { name: 'global', shortName: 'g' }\n  ];\n\n  var Pos = CodeMirror.Pos;\n\n  var Vim = function() {\n    function enterVimMode(cm) {\n      cm.setOption('disableInput', true);\n      cm.setOption('showCursorWhenSelecting', false);\n      CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      cm.on('cursorActivity', onCursorActivity);\n      maybeInitVimState(cm);\n      CodeMirror.on(cm.getInputField(), 'paste', getOnPasteFn(cm));\n    }\n\n    function leaveVimMode(cm) {\n      cm.setOption('disableInput', false);\n      cm.off('cursorActivity', onCursorActivity);\n      CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));\n      cm.state.vim = null;\n    }\n\n    function detachVimMap(cm, next) {\n      if (this == CodeMirror.keyMap.vim) {\n        CodeMirror.rmClass(cm.getWrapperElement(), \"cm-fat-cursor\");\n        if (cm.getOption(\"inputStyle\") == \"contenteditable\" && document.body.style.caretColor != null) {\n          disableFatCursorMark(cm);\n          cm.getInputField().style.caretColor = \"\";\n        }\n      }\n\n      if (!next || next.attach != attachVimMap)\n        leaveVimMode(cm);\n    }\n    function attachVimMap(cm, prev) {\n      if (this == CodeMirror.keyMap.vim) {\n        CodeMirror.addClass(cm.getWrapperElement(), \"cm-fat-cursor\");\n        if (cm.getOption(\"inputStyle\") == \"contenteditable\" && document.body.style.caretColor != null) {\n          enableFatCursorMark(cm);\n          cm.getInputField().style.caretColor = \"transparent\";\n        }\n      }\n\n      if (!prev || prev.attach != attachVimMap)\n        enterVimMode(cm);\n    }\n\n    function updateFatCursorMark(cm) {\n      if (!cm.state.fatCursorMarks) return;\n      clearFatCursorMark(cm);\n      var ranges = cm.listSelections(), result = []\n      for (var i = 0; i < ranges.length; i++) {\n        var range = ranges[i];\n        if (range.empty()) {\n          var lineLength = cm.getLine(range.anchor.line).length;\n          if (range.anchor.ch < lineLength) {\n            result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1),\n                                    {className: \"cm-fat-cursor-mark\"}));\n          } else {\n            result.push(cm.markText(Pos(range.anchor.line, lineLength - 1),\n                                    Pos(range.anchor.line, lineLength),\n                                    {className: \"cm-fat-cursor-mark\"}));\n          }\n        }\n      }\n      cm.state.fatCursorMarks = result;\n    }\n\n    function clearFatCursorMark(cm) {\n      var marks = cm.state.fatCursorMarks;\n      if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n    }\n\n    function enableFatCursorMark(cm) {\n      cm.state.fatCursorMarks = [];\n      updateFatCursorMark(cm)\n      cm.on(\"cursorActivity\", updateFatCursorMark)\n    }\n\n    function disableFatCursorMark(cm) {\n      clearFatCursorMark(cm);\n      cm.off(\"cursorActivity\", updateFatCursorMark);\n      // explicitly set fatCursorMarks to null because event listener above\n      // can be invoke after removing it, if off is called from operation\n      cm.state.fatCursorMarks = null;\n    }\n\n    // Deprecated, simply setting the keymap works again.\n    CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {\n      if (val && cm.getOption(\"keyMap\") != \"vim\")\n        cm.setOption(\"keyMap\", \"vim\");\n      else if (!val && prev != CodeMirror.Init && /^vim/.test(cm.getOption(\"keyMap\")))\n        cm.setOption(\"keyMap\", \"default\");\n    });\n\n    function cmKey(key, cm) {\n      if (!cm) { return undefined; }\n      if (this[key]) { return this[key]; }\n      var vimKey = cmKeyToVimKey(key);\n      if (!vimKey) {\n        return false;\n      }\n      var cmd = CodeMirror.Vim.findKey(cm, vimKey);\n      if (typeof cmd == 'function') {\n        CodeMirror.signal(cm, 'vim-keypress', vimKey);\n      }\n      return cmd;\n    }\n\n    var modifiers = {Shift:'S',Ctrl:'C',Alt:'A',Cmd:'D',Mod:'A',CapsLock:''};\n    var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del',Insert:'Ins'};\n    function cmKeyToVimKey(key) {\n      if (key.charAt(0) == '\\'') {\n        // Keypress character binding of format \"'a'\"\n        return key.charAt(1);\n      }\n      var pieces = key.split(/-(?!$)/);\n      var lastPiece = pieces[pieces.length - 1];\n      if (pieces.length == 1 && pieces[0].length == 1) {\n        // No-modifier bindings use literal character bindings above. Skip.\n        return false;\n      } else if (pieces.length == 2 && pieces[0] == 'Shift' && lastPiece.length == 1) {\n        // Ignore Shift+char bindings as they should be handled by literal character.\n        return false;\n      }\n      var hasCharacter = false;\n      for (var i = 0; i < pieces.length; i++) {\n        var piece = pieces[i];\n        if (piece in modifiers) { pieces[i] = modifiers[piece]; }\n        else { hasCharacter = true; }\n        if (piece in specialKeys) { pieces[i] = specialKeys[piece]; }\n      }\n      if (!hasCharacter) {\n        // Vim does not support modifier only keys.\n        return false;\n      }\n      // TODO: Current bindings expect the character to be lower case, but\n      // it looks like vim key notation uses upper case.\n      if (isUpperCase(lastPiece)) {\n        pieces[pieces.length - 1] = lastPiece.toLowerCase();\n      }\n      return '<' + pieces.join('-') + '>';\n    }\n\n    function getOnPasteFn(cm) {\n      var vim = cm.state.vim;\n      if (!vim.onPasteFn) {\n        vim.onPasteFn = function() {\n          if (!vim.insertMode) {\n            cm.setCursor(offsetCursor(cm.getCursor(), 0, 1));\n            actions.enterInsertMode(cm, {}, vim);\n          }\n        };\n      }\n      return vim.onPasteFn;\n    }\n\n    var numberRegex = /[\\d]/;\n    var wordCharTest = [CodeMirror.isWordChar, function(ch) {\n      return ch && !CodeMirror.isWordChar(ch) && !/\\s/.test(ch);\n    }], bigWordCharTest = [function(ch) {\n      return /\\S/.test(ch);\n    }];\n    function makeKeyRange(start, size) {\n      var keys = [];\n      for (var i = start; i < start + size; i++) {\n        keys.push(String.fromCharCode(i));\n      }\n      return keys;\n    }\n    var upperCaseAlphabet = makeKeyRange(65, 26);\n    var lowerCaseAlphabet = makeKeyRange(97, 26);\n    var numbers = makeKeyRange(48, 10);\n    var validMarks = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['<', '>']);\n    var validRegisters = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['-', '\"', '.', ':', '_', '/']);\n\n    function isLine(cm, line) {\n      return line >= cm.firstLine() && line <= cm.lastLine();\n    }\n    function isLowerCase(k) {\n      return (/^[a-z]$/).test(k);\n    }\n    function isMatchableSymbol(k) {\n      return '()[]{}'.indexOf(k) != -1;\n    }\n    function isNumber(k) {\n      return numberRegex.test(k);\n    }\n    function isUpperCase(k) {\n      return (/^[A-Z]$/).test(k);\n    }\n    function isWhiteSpaceString(k) {\n      return (/^\\s*$/).test(k);\n    }\n    function isEndOfSentenceSymbol(k) {\n      return '.?!'.indexOf(k) != -1;\n    }\n    function inArray(val, arr) {\n      for (var i = 0; i < arr.length; i++) {\n        if (arr[i] == val) {\n          return true;\n        }\n      }\n      return false;\n    }\n\n    var options = {};\n    function defineOption(name, defaultValue, type, aliases, callback) {\n      if (defaultValue === undefined && !callback) {\n        throw Error('defaultValue is required unless callback is provided');\n      }\n      if (!type) { type = 'string'; }\n      options[name] = {\n        type: type,\n        defaultValue: defaultValue,\n        callback: callback\n      };\n      if (aliases) {\n        for (var i = 0; i < aliases.length; i++) {\n          options[aliases[i]] = options[name];\n        }\n      }\n      if (defaultValue) {\n        setOption(name, defaultValue);\n      }\n    }\n\n    function setOption(name, value, cm, cfg) {\n      var option = options[name];\n      cfg = cfg || {};\n      var scope = cfg.scope;\n      if (!option) {\n        return new Error('Unknown option: ' + name);\n      }\n      if (option.type == 'boolean') {\n        if (value && value !== true) {\n          return new Error('Invalid argument: ' + name + '=' + value);\n        } else if (value !== false) {\n          // Boolean options are set to true if value is not defined.\n          value = true;\n        }\n      }\n      if (option.callback) {\n        if (scope !== 'local') {\n          option.callback(value, undefined);\n        }\n        if (scope !== 'global' && cm) {\n          option.callback(value, cm);\n        }\n      } else {\n        if (scope !== 'local') {\n          option.value = option.type == 'boolean' ? !!value : value;\n        }\n        if (scope !== 'global' && cm) {\n          cm.state.vim.options[name] = {value: value};\n        }\n      }\n    }\n\n    function getOption(name, cm, cfg) {\n      var option = options[name];\n      cfg = cfg || {};\n      var scope = cfg.scope;\n      if (!option) {\n        return new Error('Unknown option: ' + name);\n      }\n      if (option.callback) {\n        var local = cm && option.callback(undefined, cm);\n        if (scope !== 'global' && local !== undefined) {\n          return local;\n        }\n        if (scope !== 'local') {\n          return option.callback();\n        }\n        return;\n      } else {\n        var local = (scope !== 'global') && (cm && cm.state.vim.options[name]);\n        return (local || (scope !== 'local') && option || {}).value;\n      }\n    }\n\n    defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) {\n      // Option is local. Do nothing for global.\n      if (cm === undefined) {\n        return;\n      }\n      // The 'filetype' option proxies to the CodeMirror 'mode' option.\n      if (name === undefined) {\n        var mode = cm.getOption('mode');\n        return mode == 'null' ? '' : mode;\n      } else {\n        var mode = name == '' ? 'null' : name;\n        cm.setOption('mode', mode);\n      }\n    });\n\n    var createCircularJumpList = function() {\n      var size = 100;\n      var pointer = -1;\n      var head = 0;\n      var tail = 0;\n      var buffer = new Array(size);\n      function add(cm, oldCur, newCur) {\n        var current = pointer % size;\n        var curMark = buffer[current];\n        function useNextSlot(cursor) {\n          var next = ++pointer % size;\n          var trashMark = buffer[next];\n          if (trashMark) {\n            trashMark.clear();\n          }\n          buffer[next] = cm.setBookmark(cursor);\n        }\n        if (curMark) {\n          var markPos = curMark.find();\n          // avoid recording redundant cursor position\n          if (markPos && !cursorEqual(markPos, oldCur)) {\n            useNextSlot(oldCur);\n          }\n        } else {\n          useNextSlot(oldCur);\n        }\n        useNextSlot(newCur);\n        head = pointer;\n        tail = pointer - size + 1;\n        if (tail < 0) {\n          tail = 0;\n        }\n      }\n      function move(cm, offset) {\n        pointer += offset;\n        if (pointer > head) {\n          pointer = head;\n        } else if (pointer < tail) {\n          pointer = tail;\n        }\n        var mark = buffer[(size + pointer) % size];\n        // skip marks that are temporarily removed from text buffer\n        if (mark && !mark.find()) {\n          var inc = offset > 0 ? 1 : -1;\n          var newCur;\n          var oldCur = cm.getCursor();\n          do {\n            pointer += inc;\n            mark = buffer[(size + pointer) % size];\n            // skip marks that are the same as current position\n            if (mark &&\n                (newCur = mark.find()) &&\n                !cursorEqual(oldCur, newCur)) {\n              break;\n            }\n          } while (pointer < head && pointer > tail);\n        }\n        return mark;\n      }\n      function find(cm, offset) {\n        var oldPointer = pointer;\n        var mark = move(cm, offset);\n        pointer = oldPointer;\n        return mark && mark.find();\n      }\n      return {\n        cachedCursor: undefined, //used for # and * jumps\n        add: add,\n        find: find,\n        move: move\n      };\n    };\n\n    // Returns an object to track the changes associated insert mode.  It\n    // clones the object that is passed in, or creates an empty object one if\n    // none is provided.\n    var createInsertModeChanges = function(c) {\n      if (c) {\n        // Copy construction\n        return {\n          changes: c.changes,\n          expectCursorActivityForChange: c.expectCursorActivityForChange\n        };\n      }\n      return {\n        // Change list\n        changes: [],\n        // Set to true on change, false on cursorActivity.\n        expectCursorActivityForChange: false\n      };\n    };\n\n    function MacroModeState() {\n      this.latestRegister = undefined;\n      this.isPlaying = false;\n      this.isRecording = false;\n      this.replaySearchQueries = [];\n      this.onRecordingDone = undefined;\n      this.lastInsertModeChanges = createInsertModeChanges();\n    }\n    MacroModeState.prototype = {\n      exitMacroRecordMode: function() {\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.onRecordingDone) {\n          macroModeState.onRecordingDone(); // close dialog\n        }\n        macroModeState.onRecordingDone = undefined;\n        macroModeState.isRecording = false;\n      },\n      enterMacroRecordMode: function(cm, registerName) {\n        var register =\n            vimGlobalState.registerController.getRegister(registerName);\n        if (register) {\n          register.clear();\n          this.latestRegister = registerName;\n          if (cm.openDialog) {\n            this.onRecordingDone = cm.openDialog(\n                '(recording)['+registerName+']', null, {bottom:true});\n          }\n          this.isRecording = true;\n        }\n      }\n    };\n\n    function maybeInitVimState(cm) {\n      if (!cm.state.vim) {\n        // Store instance state in the CodeMirror object.\n        cm.state.vim = {\n          inputState: new InputState(),\n          // Vim's input state that triggered the last edit, used to repeat\n          // motions and operators with '.'.\n          lastEditInputState: undefined,\n          // Vim's action command before the last edit, used to repeat actions\n          // with '.' and insert mode repeat.\n          lastEditActionCommand: undefined,\n          // When using jk for navigation, if you move from a longer line to a\n          // shorter line, the cursor may clip to the end of the shorter line.\n          // If j is pressed again and cursor goes to the next line, the\n          // cursor should go back to its horizontal position on the longer\n          // line if it can. This is to keep track of the horizontal position.\n          lastHPos: -1,\n          // Doing the same with screen-position for gj/gk\n          lastHSPos: -1,\n          // The last motion command run. Cleared if a non-motion command gets\n          // executed in between.\n          lastMotion: null,\n          marks: {},\n          // Mark for rendering fake cursor for visual mode.\n          fakeCursor: null,\n          insertMode: false,\n          // Repeat count for changes made in insert mode, triggered by key\n          // sequences like 3,i. Only exists when insertMode is true.\n          insertModeRepeat: undefined,\n          visualMode: false,\n          // If we are in visual line mode. No effect if visualMode is false.\n          visualLine: false,\n          visualBlock: false,\n          lastSelection: null,\n          lastPastedText: null,\n          sel: {},\n          // Buffer-local/window-local values of vim options.\n          options: {}\n        };\n      }\n      return cm.state.vim;\n    }\n    var vimGlobalState;\n    function resetVimGlobalState() {\n      vimGlobalState = {\n        // The current search query.\n        searchQuery: null,\n        // Whether we are searching backwards.\n        searchIsReversed: false,\n        // Replace part of the last substituted pattern\n        lastSubstituteReplacePart: undefined,\n        jumpList: createCircularJumpList(),\n        macroModeState: new MacroModeState,\n        // Recording latest f, t, F or T motion command.\n        lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},\n        registerController: new RegisterController({}),\n        // search history buffer\n        searchHistoryController: new HistoryController(),\n        // ex Command history buffer\n        exCommandHistoryController : new HistoryController()\n      };\n      for (var optionName in options) {\n        var option = options[optionName];\n        option.value = option.defaultValue;\n      }\n    }\n\n    var lastInsertModeKeyTimer;\n    var vimApi= {\n      buildKeyMap: function() {\n        // TODO: Convert keymap into dictionary format for fast lookup.\n      },\n      // Testing hook, though it might be useful to expose the register\n      // controller anyway.\n      getRegisterController: function() {\n        return vimGlobalState.registerController;\n      },\n      // Testing hook.\n      resetVimGlobalState_: resetVimGlobalState,\n\n      // Testing hook.\n      getVimGlobalState_: function() {\n        return vimGlobalState;\n      },\n\n      // Testing hook.\n      maybeInitVimState_: maybeInitVimState,\n\n      suppressErrorLogging: false,\n\n      InsertModeKey: InsertModeKey,\n      map: function(lhs, rhs, ctx) {\n        // Add user defined key bindings.\n        exCommandDispatcher.map(lhs, rhs, ctx);\n      },\n      unmap: function(lhs, ctx) {\n        exCommandDispatcher.unmap(lhs, ctx);\n      },\n      // Non-recursive map function.\n      // NOTE: This will not create mappings to key maps that aren't present\n      // in the default key map. See TODO at bottom of function.\n      noremap: function(lhs, rhs, ctx) {\n        function toCtxArray(ctx) {\n          return ctx ? [ctx] : ['normal', 'insert', 'visual'];\n        }\n        var ctxsToMap = toCtxArray(ctx);\n        // Look through all actual defaults to find a map candidate.\n        var actualLength = defaultKeymap.length, origLength = defaultKeymapLength;\n        for (var i = actualLength - origLength;\n             i < actualLength && ctxsToMap.length;\n             i++) {\n          var mapping = defaultKeymap[i];\n          // Omit mappings that operate in the wrong context(s) and those of invalid type.\n          if (mapping.keys == rhs &&\n              (!ctx || !mapping.context || mapping.context === ctx) &&\n              mapping.type.substr(0, 2) !== 'ex' &&\n              mapping.type.substr(0, 3) !== 'key') {\n            // Make a shallow copy of the original keymap entry.\n            var newMapping = {};\n            for (var key in mapping) {\n              newMapping[key] = mapping[key];\n            }\n            // Modify it point to the new mapping with the proper context.\n            newMapping.keys = lhs;\n            if (ctx && !newMapping.context) {\n              newMapping.context = ctx;\n            }\n            // Add it to the keymap with a higher priority than the original.\n            this._mapCommand(newMapping);\n            // Record the mapped contexts as complete.\n            var mappedCtxs = toCtxArray(mapping.context);\n            ctxsToMap = ctxsToMap.filter(function(el) { return mappedCtxs.indexOf(el) === -1; });\n          }\n        }\n        // TODO: Create non-recursive keyToKey mappings for the unmapped contexts once those exist.\n      },\n      // Remove all user-defined mappings for the provided context.\n      mapclear: function(ctx) {\n        // Partition the existing keymap into user-defined and true defaults.\n        var actualLength = defaultKeymap.length,\n            origLength = defaultKeymapLength;\n        var userKeymap = defaultKeymap.slice(0, actualLength - origLength);\n        defaultKeymap = defaultKeymap.slice(actualLength - origLength);\n        if (ctx) {\n          // If a specific context is being cleared, we need to keep mappings\n          // from all other contexts.\n          for (var i = userKeymap.length - 1; i >= 0; i--) {\n            var mapping = userKeymap[i];\n            if (ctx !== mapping.context) {\n              if (mapping.context) {\n                this._mapCommand(mapping);\n              } else {\n                // `mapping` applies to all contexts so create keymap copies\n                // for each context except the one being cleared.\n                var contexts = ['normal', 'insert', 'visual'];\n                for (var j in contexts) {\n                  if (contexts[j] !== ctx) {\n                    var newMapping = {};\n                    for (var key in mapping) {\n                      newMapping[key] = mapping[key];\n                    }\n                    newMapping.context = contexts[j];\n                    this._mapCommand(newMapping);\n                  }\n                }\n              }\n            }\n          }\n        }\n      },\n      // TODO: Expose setOption and getOption as instance methods. Need to decide how to namespace\n      // them, or somehow make them work with the existing CodeMirror setOption/getOption API.\n      setOption: setOption,\n      getOption: getOption,\n      defineOption: defineOption,\n      defineEx: function(name, prefix, func){\n        if (!prefix) {\n          prefix = name;\n        } else if (name.indexOf(prefix) !== 0) {\n          throw new Error('(Vim.defineEx) \"'+prefix+'\" is not a prefix of \"'+name+'\", command not registered');\n        }\n        exCommands[name]=func;\n        exCommandDispatcher.commandMap_[prefix]={name:name, shortName:prefix, type:'api'};\n      },\n      handleKey: function (cm, key, origin) {\n        var command = this.findKey(cm, key, origin);\n        if (typeof command === 'function') {\n          return command();\n        }\n      },\n      /**\n       * This is the outermost function called by CodeMirror, after keys have\n       * been mapped to their Vim equivalents.\n       *\n       * Finds a command based on the key (and cached keys if there is a\n       * multi-key sequence). Returns `undefined` if no key is matched, a noop\n       * function if a partial match is found (multi-key), and a function to\n       * execute the bound command if a a key is matched. The function always\n       * returns true.\n       */\n      findKey: function(cm, key, origin) {\n        var vim = maybeInitVimState(cm);\n        function handleMacroRecording() {\n          var macroModeState = vimGlobalState.macroModeState;\n          if (macroModeState.isRecording) {\n            if (key == 'q') {\n              macroModeState.exitMacroRecordMode();\n              clearInputState(cm);\n              return true;\n            }\n            if (origin != 'mapping') {\n              logKey(macroModeState, key);\n            }\n          }\n        }\n        function handleEsc() {\n          if (key == '<Esc>') {\n            // Clear input state and get back to normal mode.\n            clearInputState(cm);\n            if (vim.visualMode) {\n              exitVisualMode(cm);\n            } else if (vim.insertMode) {\n              exitInsertMode(cm);\n            }\n            return true;\n          }\n        }\n        function doKeyToKey(keys) {\n          // TODO: prevent infinite recursion.\n          var match;\n          while (keys) {\n            // Pull off one command key, which is either a single character\n            // or a special sequence wrapped in '<' and '>', e.g. '<Space>'.\n            match = (/<\\w+-.+?>|<\\w+>|./).exec(keys);\n            key = match[0];\n            keys = keys.substring(match.index + key.length);\n            CodeMirror.Vim.handleKey(cm, key, 'mapping');\n          }\n        }\n\n        function handleKeyInsertMode() {\n          if (handleEsc()) { return true; }\n          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;\n          var keysAreChars = key.length == 1;\n          var match = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');\n          // Need to check all key substrings in insert mode.\n          while (keys.length > 1 && match.type != 'full') {\n            var keys = vim.inputState.keyBuffer = keys.slice(1);\n            var thisMatch = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');\n            if (thisMatch.type != 'none') { match = thisMatch; }\n          }\n          if (match.type == 'none') { clearInputState(cm); return false; }\n          else if (match.type == 'partial') {\n            if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }\n            lastInsertModeKeyTimer = window.setTimeout(\n              function() { if (vim.insertMode && vim.inputState.keyBuffer) { clearInputState(cm); } },\n              getOption('insertModeEscKeysTimeout'));\n            return !keysAreChars;\n          }\n\n          if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }\n          if (keysAreChars) {\n            var selections = cm.listSelections();\n            for (var i = 0; i < selections.length; i++) {\n              var here = selections[i].head;\n              cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input');\n            }\n            vimGlobalState.macroModeState.lastInsertModeChanges.changes.pop();\n          }\n          clearInputState(cm);\n          return match.command;\n        }\n\n        function handleKeyNonInsertMode() {\n          if (handleMacroRecording() || handleEsc()) { return true; }\n\n          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;\n          if (/^[1-9]\\d*$/.test(keys)) { return true; }\n\n          var keysMatcher = /^(\\d*)(.*)$/.exec(keys);\n          if (!keysMatcher) { clearInputState(cm); return false; }\n          var context = vim.visualMode ? 'visual' :\n                                         'normal';\n          var match = commandDispatcher.matchCommand(keysMatcher[2] || keysMatcher[1], defaultKeymap, vim.inputState, context);\n          if (match.type == 'none') { clearInputState(cm); return false; }\n          else if (match.type == 'partial') { return true; }\n\n          vim.inputState.keyBuffer = '';\n          var keysMatcher = /^(\\d*)(.*)$/.exec(keys);\n          if (keysMatcher[1] && keysMatcher[1] != '0') {\n            vim.inputState.pushRepeatDigit(keysMatcher[1]);\n          }\n          return match.command;\n        }\n\n        var command;\n        if (vim.insertMode) { command = handleKeyInsertMode(); }\n        else { command = handleKeyNonInsertMode(); }\n        if (command === false) {\n          return !vim.insertMode && key.length === 1 ? function() { return true; } : undefined;\n        } else if (command === true) {\n          // TODO: Look into using CodeMirror's multi-key handling.\n          // Return no-op since we are caching the key. Counts as handled, but\n          // don't want act on it just yet.\n          return function() { return true; };\n        } else {\n          return function() {\n            return cm.operation(function() {\n              cm.curOp.isVimOp = true;\n              try {\n                if (command.type == 'keyToKey') {\n                  doKeyToKey(command.toKeys);\n                } else {\n                  commandDispatcher.processCommand(cm, vim, command);\n                }\n              } catch (e) {\n                // clear VIM state in case it's in a bad state.\n                cm.state.vim = undefined;\n                maybeInitVimState(cm);\n                if (!CodeMirror.Vim.suppressErrorLogging) {\n                  console['log'](e);\n                }\n                throw e;\n              }\n              return true;\n            });\n          };\n        }\n      },\n      handleEx: function(cm, input) {\n        exCommandDispatcher.processCommand(cm, input);\n      },\n\n      defineMotion: defineMotion,\n      defineAction: defineAction,\n      defineOperator: defineOperator,\n      mapCommand: mapCommand,\n      _mapCommand: _mapCommand,\n\n      defineRegister: defineRegister,\n\n      exitVisualMode: exitVisualMode,\n      exitInsertMode: exitInsertMode\n    };\n\n    // Represents the current input state.\n    function InputState() {\n      this.prefixRepeat = [];\n      this.motionRepeat = [];\n\n      this.operator = null;\n      this.operatorArgs = null;\n      this.motion = null;\n      this.motionArgs = null;\n      this.keyBuffer = []; // For matching multi-key commands.\n      this.registerName = null; // Defaults to the unnamed register.\n    }\n    InputState.prototype.pushRepeatDigit = function(n) {\n      if (!this.operator) {\n        this.prefixRepeat = this.prefixRepeat.concat(n);\n      } else {\n        this.motionRepeat = this.motionRepeat.concat(n);\n      }\n    };\n    InputState.prototype.getRepeat = function() {\n      var repeat = 0;\n      if (this.prefixRepeat.length > 0 || this.motionRepeat.length > 0) {\n        repeat = 1;\n        if (this.prefixRepeat.length > 0) {\n          repeat *= parseInt(this.prefixRepeat.join(''), 10);\n        }\n        if (this.motionRepeat.length > 0) {\n          repeat *= parseInt(this.motionRepeat.join(''), 10);\n        }\n      }\n      return repeat;\n    };\n\n    function clearInputState(cm, reason) {\n      cm.state.vim.inputState = new InputState();\n      CodeMirror.signal(cm, 'vim-command-done', reason);\n    }\n\n    /*\n     * Register stores information about copy and paste registers.  Besides\n     * text, a register must store whether it is linewise (i.e., when it is\n     * pasted, should it insert itself into a new line, or should the text be\n     * inserted at the cursor position.)\n     */\n    function Register(text, linewise, blockwise) {\n      this.clear();\n      this.keyBuffer = [text || ''];\n      this.insertModeChanges = [];\n      this.searchQueries = [];\n      this.linewise = !!linewise;\n      this.blockwise = !!blockwise;\n    }\n    Register.prototype = {\n      setText: function(text, linewise, blockwise) {\n        this.keyBuffer = [text || ''];\n        this.linewise = !!linewise;\n        this.blockwise = !!blockwise;\n      },\n      pushText: function(text, linewise) {\n        // if this register has ever been set to linewise, use linewise.\n        if (linewise) {\n          if (!this.linewise) {\n            this.keyBuffer.push('\\n');\n          }\n          this.linewise = true;\n        }\n        this.keyBuffer.push(text);\n      },\n      pushInsertModeChanges: function(changes) {\n        this.insertModeChanges.push(createInsertModeChanges(changes));\n      },\n      pushSearchQuery: function(query) {\n        this.searchQueries.push(query);\n      },\n      clear: function() {\n        this.keyBuffer = [];\n        this.insertModeChanges = [];\n        this.searchQueries = [];\n        this.linewise = false;\n      },\n      toString: function() {\n        return this.keyBuffer.join('');\n      }\n    };\n\n    /**\n     * Defines an external register.\n     *\n     * The name should be a single character that will be used to reference the register.\n     * The register should support setText, pushText, clear, and toString(). See Register\n     * for a reference implementation.\n     */\n    function defineRegister(name, register) {\n      var registers = vimGlobalState.registerController.registers;\n      if (!name || name.length != 1) {\n        throw Error('Register name must be 1 character');\n      }\n      if (registers[name]) {\n        throw Error('Register already defined ' + name);\n      }\n      registers[name] = register;\n      validRegisters.push(name);\n    }\n\n    /*\n     * vim registers allow you to keep many independent copy and paste buffers.\n     * See http://usevim.com/2012/04/13/registers/ for an introduction.\n     *\n     * RegisterController keeps the state of all the registers.  An initial\n     * state may be passed in.  The unnamed register '\"' will always be\n     * overridden.\n     */\n    function RegisterController(registers) {\n      this.registers = registers;\n      this.unnamedRegister = registers['\"'] = new Register();\n      registers['.'] = new Register();\n      registers[':'] = new Register();\n      registers['/'] = new Register();\n    }\n    RegisterController.prototype = {\n      pushText: function(registerName, operator, text, linewise, blockwise) {\n        // The black hole register, \"_, means delete/yank to nowhere.\n        if (registerName === '_') return;\n        if (linewise && text.charAt(text.length - 1) !== '\\n'){\n          text += '\\n';\n        }\n        // Lowercase and uppercase registers refer to the same register.\n        // Uppercase just means append.\n        var register = this.isValidRegister(registerName) ?\n            this.getRegister(registerName) : null;\n        // if no register/an invalid register was specified, things go to the\n        // default registers\n        if (!register) {\n          switch (operator) {\n            case 'yank':\n              // The 0 register contains the text from the most recent yank.\n              this.registers['0'] = new Register(text, linewise, blockwise);\n              break;\n            case 'delete':\n            case 'change':\n              if (text.indexOf('\\n') == -1) {\n                // Delete less than 1 line. Update the small delete register.\n                this.registers['-'] = new Register(text, linewise);\n              } else {\n                // Shift down the contents of the numbered registers and put the\n                // deleted text into register 1.\n                this.shiftNumericRegisters_();\n                this.registers['1'] = new Register(text, linewise);\n              }\n              break;\n          }\n          // Make sure the unnamed register is set to what just happened\n          this.unnamedRegister.setText(text, linewise, blockwise);\n          return;\n        }\n\n        // If we've gotten to this point, we've actually specified a register\n        var append = isUpperCase(registerName);\n        if (append) {\n          register.pushText(text, linewise);\n        } else {\n          register.setText(text, linewise, blockwise);\n        }\n        // The unnamed register always has the same value as the last used\n        // register.\n        this.unnamedRegister.setText(register.toString(), linewise);\n      },\n      // Gets the register named @name.  If one of @name doesn't already exist,\n      // create it.  If @name is invalid, return the unnamedRegister.\n      getRegister: function(name) {\n        if (!this.isValidRegister(name)) {\n          return this.unnamedRegister;\n        }\n        name = name.toLowerCase();\n        if (!this.registers[name]) {\n          this.registers[name] = new Register();\n        }\n        return this.registers[name];\n      },\n      isValidRegister: function(name) {\n        return name && inArray(name, validRegisters);\n      },\n      shiftNumericRegisters_: function() {\n        for (var i = 9; i >= 2; i--) {\n          this.registers[i] = this.getRegister('' + (i - 1));\n        }\n      }\n    };\n    function HistoryController() {\n        this.historyBuffer = [];\n        this.iterator = 0;\n        this.initialPrefix = null;\n    }\n    HistoryController.prototype = {\n      // the input argument here acts a user entered prefix for a small time\n      // until we start autocompletion in which case it is the autocompleted.\n      nextMatch: function (input, up) {\n        var historyBuffer = this.historyBuffer;\n        var dir = up ? -1 : 1;\n        if (this.initialPrefix === null) this.initialPrefix = input;\n        for (var i = this.iterator + dir; up ? i >= 0 : i < historyBuffer.length; i+= dir) {\n          var element = historyBuffer[i];\n          for (var j = 0; j <= element.length; j++) {\n            if (this.initialPrefix == element.substring(0, j)) {\n              this.iterator = i;\n              return element;\n            }\n          }\n        }\n        // should return the user input in case we reach the end of buffer.\n        if (i >= historyBuffer.length) {\n          this.iterator = historyBuffer.length;\n          return this.initialPrefix;\n        }\n        // return the last autocompleted query or exCommand as it is.\n        if (i < 0 ) return input;\n      },\n      pushInput: function(input) {\n        var index = this.historyBuffer.indexOf(input);\n        if (index > -1) this.historyBuffer.splice(index, 1);\n        if (input.length) this.historyBuffer.push(input);\n      },\n      reset: function() {\n        this.initialPrefix = null;\n        this.iterator = this.historyBuffer.length;\n      }\n    };\n    var commandDispatcher = {\n      matchCommand: function(keys, keyMap, inputState, context) {\n        var matches = commandMatches(keys, keyMap, context, inputState);\n        if (!matches.full && !matches.partial) {\n          return {type: 'none'};\n        } else if (!matches.full && matches.partial) {\n          return {type: 'partial'};\n        }\n\n        var bestMatch;\n        for (var i = 0; i < matches.full.length; i++) {\n          var match = matches.full[i];\n          if (!bestMatch) {\n            bestMatch = match;\n          }\n        }\n        if (bestMatch.keys.slice(-11) == '<character>') {\n          var character = lastChar(keys);\n          if (!character) return {type: 'none'};\n          inputState.selectedCharacter = character;\n        }\n        return {type: 'full', command: bestMatch};\n      },\n      processCommand: function(cm, vim, command) {\n        vim.inputState.repeatOverride = command.repeatOverride;\n        switch (command.type) {\n          case 'motion':\n            this.processMotion(cm, vim, command);\n            break;\n          case 'operator':\n            this.processOperator(cm, vim, command);\n            break;\n          case 'operatorMotion':\n            this.processOperatorMotion(cm, vim, command);\n            break;\n          case 'action':\n            this.processAction(cm, vim, command);\n            break;\n          case 'search':\n            this.processSearch(cm, vim, command);\n            break;\n          case 'ex':\n          case 'keyToEx':\n            this.processEx(cm, vim, command);\n            break;\n          default:\n            break;\n        }\n      },\n      processMotion: function(cm, vim, command) {\n        vim.inputState.motion = command.motion;\n        vim.inputState.motionArgs = copyArgs(command.motionArgs);\n        this.evalInput(cm, vim);\n      },\n      processOperator: function(cm, vim, command) {\n        var inputState = vim.inputState;\n        if (inputState.operator) {\n          if (inputState.operator == command.operator) {\n            // Typing an operator twice like 'dd' makes the operator operate\n            // linewise\n            inputState.motion = 'expandToLine';\n            inputState.motionArgs = { linewise: true };\n            this.evalInput(cm, vim);\n            return;\n          } else {\n            // 2 different operators in a row doesn't make sense.\n            clearInputState(cm);\n          }\n        }\n        inputState.operator = command.operator;\n        inputState.operatorArgs = copyArgs(command.operatorArgs);\n        if (command.exitVisualBlock) {\n            vim.visualBlock = false;\n            updateCmSelection(cm);\n        }\n        if (vim.visualMode) {\n          // Operating on a selection in visual mode. We don't need a motion.\n          this.evalInput(cm, vim);\n        }\n      },\n      processOperatorMotion: function(cm, vim, command) {\n        var visualMode = vim.visualMode;\n        var operatorMotionArgs = copyArgs(command.operatorMotionArgs);\n        if (operatorMotionArgs) {\n          // Operator motions may have special behavior in visual mode.\n          if (visualMode && operatorMotionArgs.visualLine) {\n            vim.visualLine = true;\n          }\n        }\n        this.processOperator(cm, vim, command);\n        if (!visualMode) {\n          this.processMotion(cm, vim, command);\n        }\n      },\n      processAction: function(cm, vim, command) {\n        var inputState = vim.inputState;\n        var repeat = inputState.getRepeat();\n        var repeatIsExplicit = !!repeat;\n        var actionArgs = copyArgs(command.actionArgs) || {};\n        if (inputState.selectedCharacter) {\n          actionArgs.selectedCharacter = inputState.selectedCharacter;\n        }\n        // Actions may or may not have motions and operators. Do these first.\n        if (command.operator) {\n          this.processOperator(cm, vim, command);\n        }\n        if (command.motion) {\n          this.processMotion(cm, vim, command);\n        }\n        if (command.motion || command.operator) {\n          this.evalInput(cm, vim);\n        }\n        actionArgs.repeat = repeat || 1;\n        actionArgs.repeatIsExplicit = repeatIsExplicit;\n        actionArgs.registerName = inputState.registerName;\n        clearInputState(cm);\n        vim.lastMotion = null;\n        if (command.isEdit) {\n          this.recordLastEdit(vim, inputState, command);\n        }\n        actions[command.action](cm, actionArgs, vim);\n      },\n      processSearch: function(cm, vim, command) {\n        if (!cm.getSearchCursor) {\n          // Search depends on SearchCursor.\n          return;\n        }\n        var forward = command.searchArgs.forward;\n        var wholeWordOnly = command.searchArgs.wholeWordOnly;\n        getSearchState(cm).setReversed(!forward);\n        var promptPrefix = (forward) ? '/' : '?';\n        var originalQuery = getSearchState(cm).getQuery();\n        var originalScrollPos = cm.getScrollInfo();\n        function handleQuery(query, ignoreCase, smartCase) {\n          vimGlobalState.searchHistoryController.pushInput(query);\n          vimGlobalState.searchHistoryController.reset();\n          try {\n            updateSearchQuery(cm, query, ignoreCase, smartCase);\n          } catch (e) {\n            showConfirm(cm, 'Invalid regex: ' + query);\n            clearInputState(cm);\n            return;\n          }\n          commandDispatcher.processMotion(cm, vim, {\n            type: 'motion',\n            motion: 'findNext',\n            motionArgs: { forward: true, toJumplist: command.searchArgs.toJumplist }\n          });\n        }\n        function onPromptClose(query) {\n          cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n          handleQuery(query, true /** ignoreCase */, true /** smartCase */);\n          var macroModeState = vimGlobalState.macroModeState;\n          if (macroModeState.isRecording) {\n            logSearchQuery(macroModeState, query);\n          }\n        }\n        function onPromptKeyUp(e, query, close) {\n          var keyName = CodeMirror.keyName(e), up, offset;\n          if (keyName == 'Up' || keyName == 'Down') {\n            up = keyName == 'Up' ? true : false;\n            offset = e.target ? e.target.selectionEnd : 0;\n            query = vimGlobalState.searchHistoryController.nextMatch(query, up) || '';\n            close(query);\n            if (offset && e.target) e.target.selectionEnd = e.target.selectionStart = Math.min(offset, e.target.value.length);\n          } else {\n            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')\n              vimGlobalState.searchHistoryController.reset();\n          }\n          var parsedQuery;\n          try {\n            parsedQuery = updateSearchQuery(cm, query,\n                true /** ignoreCase */, true /** smartCase */);\n          } catch (e) {\n            // Swallow bad regexes for incremental search.\n          }\n          if (parsedQuery) {\n            cm.scrollIntoView(findNext(cm, !forward, parsedQuery), 30);\n          } else {\n            clearSearchHighlight(cm);\n            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n          }\n        }\n        function onPromptKeyDown(e, query, close) {\n          var keyName = CodeMirror.keyName(e);\n          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||\n              (keyName == 'Backspace' && query == '')) {\n            vimGlobalState.searchHistoryController.pushInput(query);\n            vimGlobalState.searchHistoryController.reset();\n            updateSearchQuery(cm, originalQuery);\n            clearSearchHighlight(cm);\n            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n            CodeMirror.e_stop(e);\n            clearInputState(cm);\n            close();\n            cm.focus();\n          } else if (keyName == 'Up' || keyName == 'Down') {\n            CodeMirror.e_stop(e);\n          } else if (keyName == 'Ctrl-U') {\n            // Ctrl-U clears input.\n            CodeMirror.e_stop(e);\n            close('');\n          }\n        }\n        switch (command.searchArgs.querySrc) {\n          case 'prompt':\n            var macroModeState = vimGlobalState.macroModeState;\n            if (macroModeState.isPlaying) {\n              var query = macroModeState.replaySearchQueries.shift();\n              handleQuery(query, true /** ignoreCase */, false /** smartCase */);\n            } else {\n              showPrompt(cm, {\n                  onClose: onPromptClose,\n                  prefix: promptPrefix,\n                  desc: '(JavaScript regexp)',\n                  onKeyUp: onPromptKeyUp,\n                  onKeyDown: onPromptKeyDown\n              });\n            }\n            break;\n          case 'wordUnderCursor':\n            var word = expandWordUnderCursor(cm, false /** inclusive */,\n                true /** forward */, false /** bigWord */,\n                true /** noSymbol */);\n            var isKeyword = true;\n            if (!word) {\n              word = expandWordUnderCursor(cm, false /** inclusive */,\n                  true /** forward */, false /** bigWord */,\n                  false /** noSymbol */);\n              isKeyword = false;\n            }\n            if (!word) {\n              return;\n            }\n            var query = cm.getLine(word.start.line).substring(word.start.ch,\n                word.end.ch);\n            if (isKeyword && wholeWordOnly) {\n                query = '\\\\b' + query + '\\\\b';\n            } else {\n              query = escapeRegex(query);\n            }\n\n            // cachedCursor is used to save the old position of the cursor\n            // when * or # causes vim to seek for the nearest word and shift\n            // the cursor before entering the motion.\n            vimGlobalState.jumpList.cachedCursor = cm.getCursor();\n            cm.setCursor(word.start);\n\n            handleQuery(query, true /** ignoreCase */, false /** smartCase */);\n            break;\n        }\n      },\n      processEx: function(cm, vim, command) {\n        function onPromptClose(input) {\n          // Give the prompt some time to close so that if processCommand shows\n          // an error, the elements don't overlap.\n          vimGlobalState.exCommandHistoryController.pushInput(input);\n          vimGlobalState.exCommandHistoryController.reset();\n          exCommandDispatcher.processCommand(cm, input);\n        }\n        function onPromptKeyDown(e, input, close) {\n          var keyName = CodeMirror.keyName(e), up, offset;\n          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||\n              (keyName == 'Backspace' && input == '')) {\n            vimGlobalState.exCommandHistoryController.pushInput(input);\n            vimGlobalState.exCommandHistoryController.reset();\n            CodeMirror.e_stop(e);\n            clearInputState(cm);\n            close();\n            cm.focus();\n          }\n          if (keyName == 'Up' || keyName == 'Down') {\n            CodeMirror.e_stop(e);\n            up = keyName == 'Up' ? true : false;\n            offset = e.target ? e.target.selectionEnd : 0;\n            input = vimGlobalState.exCommandHistoryController.nextMatch(input, up) || '';\n            close(input);\n            if (offset && e.target) e.target.selectionEnd = e.target.selectionStart = Math.min(offset, e.target.value.length);\n          } else if (keyName == 'Ctrl-U') {\n            // Ctrl-U clears input.\n            CodeMirror.e_stop(e);\n            close('');\n          } else {\n            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')\n              vimGlobalState.exCommandHistoryController.reset();\n          }\n        }\n        if (command.type == 'keyToEx') {\n          // Handle user defined Ex to Ex mappings\n          exCommandDispatcher.processCommand(cm, command.exArgs.input);\n        } else {\n          if (vim.visualMode) {\n            showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\\'<,\\'>',\n                onKeyDown: onPromptKeyDown, selectValueOnOpen: false});\n          } else {\n            showPrompt(cm, { onClose: onPromptClose, prefix: ':',\n                onKeyDown: onPromptKeyDown});\n          }\n        }\n      },\n      evalInput: function(cm, vim) {\n        // If the motion command is set, execute both the operator and motion.\n        // Otherwise return.\n        var inputState = vim.inputState;\n        var motion = inputState.motion;\n        var motionArgs = inputState.motionArgs || {};\n        var operator = inputState.operator;\n        var operatorArgs = inputState.operatorArgs || {};\n        var registerName = inputState.registerName;\n        var sel = vim.sel;\n        // TODO: Make sure cm and vim selections are identical outside visual mode.\n        var origHead = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.head): cm.getCursor('head'));\n        var origAnchor = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.anchor) : cm.getCursor('anchor'));\n        var oldHead = copyCursor(origHead);\n        var oldAnchor = copyCursor(origAnchor);\n        var newHead, newAnchor;\n        var repeat;\n        if (operator) {\n          this.recordLastEdit(vim, inputState);\n        }\n        if (inputState.repeatOverride !== undefined) {\n          // If repeatOverride is specified, that takes precedence over the\n          // input state's repeat. Used by Ex mode and can be user defined.\n          repeat = inputState.repeatOverride;\n        } else {\n          repeat = inputState.getRepeat();\n        }\n        if (repeat > 0 && motionArgs.explicitRepeat) {\n          motionArgs.repeatIsExplicit = true;\n        } else if (motionArgs.noRepeat ||\n            (!motionArgs.explicitRepeat && repeat === 0)) {\n          repeat = 1;\n          motionArgs.repeatIsExplicit = false;\n        }\n        if (inputState.selectedCharacter) {\n          // If there is a character input, stick it in all of the arg arrays.\n          motionArgs.selectedCharacter = operatorArgs.selectedCharacter =\n              inputState.selectedCharacter;\n        }\n        motionArgs.repeat = repeat;\n        clearInputState(cm);\n        if (motion) {\n          var motionResult = motions[motion](cm, origHead, motionArgs, vim, inputState);\n          vim.lastMotion = motions[motion];\n          if (!motionResult) {\n            return;\n          }\n          if (motionArgs.toJumplist) {\n            var jumpList = vimGlobalState.jumpList;\n            // if the current motion is # or *, use cachedCursor\n            var cachedCursor = jumpList.cachedCursor;\n            if (cachedCursor) {\n              recordJumpPosition(cm, cachedCursor, motionResult);\n              delete jumpList.cachedCursor;\n            } else {\n              recordJumpPosition(cm, origHead, motionResult);\n            }\n          }\n          if (motionResult instanceof Array) {\n            newAnchor = motionResult[0];\n            newHead = motionResult[1];\n          } else {\n            newHead = motionResult;\n          }\n          // TODO: Handle null returns from motion commands better.\n          if (!newHead) {\n            newHead = copyCursor(origHead);\n          }\n          if (vim.visualMode) {\n            if (!(vim.visualBlock && newHead.ch === Infinity)) {\n              newHead = clipCursorToContent(cm, newHead);\n            }\n            if (newAnchor) {\n              newAnchor = clipCursorToContent(cm, newAnchor);\n            }\n            newAnchor = newAnchor || oldAnchor;\n            sel.anchor = newAnchor;\n            sel.head = newHead;\n            updateCmSelection(cm);\n            updateMark(cm, vim, '<',\n                cursorIsBefore(newAnchor, newHead) ? newAnchor\n                    : newHead);\n            updateMark(cm, vim, '>',\n                cursorIsBefore(newAnchor, newHead) ? newHead\n                    : newAnchor);\n          } else if (!operator) {\n            newHead = clipCursorToContent(cm, newHead);\n            cm.setCursor(newHead.line, newHead.ch);\n          }\n        }\n        if (operator) {\n          if (operatorArgs.lastSel) {\n            // Replaying a visual mode operation\n            newAnchor = oldAnchor;\n            var lastSel = operatorArgs.lastSel;\n            var lineOffset = Math.abs(lastSel.head.line - lastSel.anchor.line);\n            var chOffset = Math.abs(lastSel.head.ch - lastSel.anchor.ch);\n            if (lastSel.visualLine) {\n              // Linewise Visual mode: The same number of lines.\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);\n            } else if (lastSel.visualBlock) {\n              // Blockwise Visual mode: The same number of lines and columns.\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset);\n            } else if (lastSel.head.line == lastSel.anchor.line) {\n              // Normal Visual mode within one line: The same number of characters.\n              newHead = Pos(oldAnchor.line, oldAnchor.ch + chOffset);\n            } else {\n              // Normal Visual mode with several lines: The same number of lines, in the\n              // last line the same number of characters as in the last line the last time.\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);\n            }\n            vim.visualMode = true;\n            vim.visualLine = lastSel.visualLine;\n            vim.visualBlock = lastSel.visualBlock;\n            sel = vim.sel = {\n              anchor: newAnchor,\n              head: newHead\n            };\n            updateCmSelection(cm);\n          } else if (vim.visualMode) {\n            operatorArgs.lastSel = {\n              anchor: copyCursor(sel.anchor),\n              head: copyCursor(sel.head),\n              visualBlock: vim.visualBlock,\n              visualLine: vim.visualLine\n            };\n          }\n          var curStart, curEnd, linewise, mode;\n          var cmSel;\n          if (vim.visualMode) {\n            // Init visual op\n            curStart = cursorMin(sel.head, sel.anchor);\n            curEnd = cursorMax(sel.head, sel.anchor);\n            linewise = vim.visualLine || operatorArgs.linewise;\n            mode = vim.visualBlock ? 'block' :\n                   linewise ? 'line' :\n                   'char';\n            cmSel = makeCmSelection(cm, {\n              anchor: curStart,\n              head: curEnd\n            }, mode);\n            if (linewise) {\n              var ranges = cmSel.ranges;\n              if (mode == 'block') {\n                // Linewise operators in visual block mode extend to end of line\n                for (var i = 0; i < ranges.length; i++) {\n                  ranges[i].head.ch = lineLength(cm, ranges[i].head.line);\n                }\n              } else if (mode == 'line') {\n                ranges[0].head = Pos(ranges[0].head.line + 1, 0);\n              }\n            }\n          } else {\n            // Init motion op\n            curStart = copyCursor(newAnchor || oldAnchor);\n            curEnd = copyCursor(newHead || oldHead);\n            if (cursorIsBefore(curEnd, curStart)) {\n              var tmp = curStart;\n              curStart = curEnd;\n              curEnd = tmp;\n            }\n            linewise = motionArgs.linewise || operatorArgs.linewise;\n            if (linewise) {\n              // Expand selection to entire line.\n              expandSelectionToLine(cm, curStart, curEnd);\n            } else if (motionArgs.forward) {\n              // Clip to trailing newlines only if the motion goes forward.\n              clipToLine(cm, curStart, curEnd);\n            }\n            mode = 'char';\n            var exclusive = !motionArgs.inclusive || linewise;\n            cmSel = makeCmSelection(cm, {\n              anchor: curStart,\n              head: curEnd\n            }, mode, exclusive);\n          }\n          cm.setSelections(cmSel.ranges, cmSel.primary);\n          vim.lastMotion = null;\n          operatorArgs.repeat = repeat; // For indent in visual mode.\n          operatorArgs.registerName = registerName;\n          // Keep track of linewise as it affects how paste and change behave.\n          operatorArgs.linewise = linewise;\n          var operatorMoveTo = operators[operator](\n            cm, operatorArgs, cmSel.ranges, oldAnchor, newHead);\n          if (vim.visualMode) {\n            exitVisualMode(cm, operatorMoveTo != null);\n          }\n          if (operatorMoveTo) {\n            cm.setCursor(operatorMoveTo);\n          }\n        }\n      },\n      recordLastEdit: function(vim, inputState, actionCommand) {\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.isPlaying) { return; }\n        vim.lastEditInputState = inputState;\n        vim.lastEditActionCommand = actionCommand;\n        macroModeState.lastInsertModeChanges.changes = [];\n        macroModeState.lastInsertModeChanges.expectCursorActivityForChange = false;\n        macroModeState.lastInsertModeChanges.visualBlock = vim.visualBlock ? vim.sel.head.line - vim.sel.anchor.line : 0;\n      }\n    };\n\n    /**\n     * typedef {Object{line:number,ch:number}} Cursor An object containing the\n     *     position of the cursor.\n     */\n    // All of the functions below return Cursor objects.\n    var motions = {\n      moveToTopLine: function(cm, _head, motionArgs) {\n        var line = getUserVisibleLines(cm).top + motionArgs.repeat -1;\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      moveToMiddleLine: function(cm) {\n        var range = getUserVisibleLines(cm);\n        var line = Math.floor((range.top + range.bottom) * 0.5);\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      moveToBottomLine: function(cm, _head, motionArgs) {\n        var line = getUserVisibleLines(cm).bottom - motionArgs.repeat +1;\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      expandToLine: function(_cm, head, motionArgs) {\n        // Expands forward to end of line, and then to next line if repeat is\n        // >1. Does not handle backward motion!\n        var cur = head;\n        return Pos(cur.line + motionArgs.repeat - 1, Infinity);\n      },\n      findNext: function(cm, _head, motionArgs) {\n        var state = getSearchState(cm);\n        var query = state.getQuery();\n        if (!query) {\n          return;\n        }\n        var prev = !motionArgs.forward;\n        // If search is initiated with ? instead of /, negate direction.\n        prev = (state.isReversed()) ? !prev : prev;\n        highlightSearchMatches(cm, query);\n        return findNext(cm, prev/** prev */, query, motionArgs.repeat);\n      },\n      /**\n       * Find and select the next occurrence of the search query. If the cursor is currently\n       * within a match, then find and select the current match. Otherwise, find the next occurrence in the\n       * appropriate direction.\n       *\n       * This differs from `findNext` in the following ways:\n       *\n       * 1. Instead of only returning the \"from\", this returns a \"from\", \"to\" range.\n       * 2. If the cursor is currently inside a search match, this selects the current match\n       *    instead of the next match.\n       * 3. If there is no associated operator, this will turn on visual mode.\n       */\n      findAndSelectNextInclusive: function(cm, _head, motionArgs, vim, prevInputState) {\n        var state = getSearchState(cm);\n        var query = state.getQuery();\n\n        if (!query) {\n          return;\n        }\n\n        var prev = !motionArgs.forward;\n        prev = (state.isReversed()) ? !prev : prev;\n\n        // next: [from, to] | null\n        var next = findNextFromAndToInclusive(cm, prev, query, motionArgs.repeat, vim);\n\n        // No matches.\n        if (!next) {\n          return;\n        }\n\n        // If there's an operator that will be executed, return the selection.\n        if (prevInputState.operator) {\n          return next;\n        }\n\n        // At this point, we know that there is no accompanying operator -- let's\n        // deal with visual mode in order to select an appropriate match.\n\n        var from = next[0];\n        // For whatever reason, when we use the \"to\" as returned by searchcursor.js directly,\n        // the resulting selection is extended by 1 char. Let's shrink it so that only the\n        // match is selected.\n        var to = Pos(next[1].line, next[1].ch - 1);\n\n        if (vim.visualMode) {\n          // If we were in visualLine or visualBlock mode, get out of it.\n          if (vim.visualLine || vim.visualBlock) {\n            vim.visualLine = false;\n            vim.visualBlock = false;\n            CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: \"\"});\n          }\n\n          // If we're currently in visual mode, we should extend the selection to include\n          // the search result.\n          var anchor = vim.sel.anchor;\n          if (anchor) {\n            if (state.isReversed()) {\n              if (motionArgs.forward) {\n                return [anchor, from];\n              }\n\n              return [anchor, to];\n            } else {\n              if (motionArgs.forward) {\n                return [anchor, to];\n              }\n\n              return [anchor, from];\n            }\n          }\n        } else {\n          // Let's turn visual mode on.\n          vim.visualMode = true;\n          vim.visualLine = false;\n          vim.visualBlock = false;\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: \"\"});\n        }\n\n        return prev ? [to, from] : [from, to];\n      },\n      goToMark: function(cm, _head, motionArgs, vim) {\n        var pos = getMarkPos(cm, vim, motionArgs.selectedCharacter);\n        if (pos) {\n          return motionArgs.linewise ? { line: pos.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(pos.line)) } : pos;\n        }\n        return null;\n      },\n      moveToOtherHighlightedEnd: function(cm, _head, motionArgs, vim) {\n        if (vim.visualBlock && motionArgs.sameLine) {\n          var sel = vim.sel;\n          return [\n            clipCursorToContent(cm, Pos(sel.anchor.line, sel.head.ch)),\n            clipCursorToContent(cm, Pos(sel.head.line, sel.anchor.ch))\n          ];\n        } else {\n          return ([vim.sel.head, vim.sel.anchor]);\n        }\n      },\n      jumpToMark: function(cm, head, motionArgs, vim) {\n        var best = head;\n        for (var i = 0; i < motionArgs.repeat; i++) {\n          var cursor = best;\n          for (var key in vim.marks) {\n            if (!isLowerCase(key)) {\n              continue;\n            }\n            var mark = vim.marks[key].find();\n            var isWrongDirection = (motionArgs.forward) ?\n              cursorIsBefore(mark, cursor) : cursorIsBefore(cursor, mark);\n\n            if (isWrongDirection) {\n              continue;\n            }\n            if (motionArgs.linewise && (mark.line == cursor.line)) {\n              continue;\n            }\n\n            var equal = cursorEqual(cursor, best);\n            var between = (motionArgs.forward) ?\n              cursorIsBetween(cursor, mark, best) :\n              cursorIsBetween(best, mark, cursor);\n\n            if (equal || between) {\n              best = mark;\n            }\n          }\n        }\n\n        if (motionArgs.linewise) {\n          // Vim places the cursor on the first non-whitespace character of\n          // the line if there is one, else it places the cursor at the end\n          // of the line, regardless of whether a mark was found.\n          best = Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line)));\n        }\n        return best;\n      },\n      moveByCharacters: function(_cm, head, motionArgs) {\n        var cur = head;\n        var repeat = motionArgs.repeat;\n        var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat;\n        return Pos(cur.line, ch);\n      },\n      moveByLines: function(cm, head, motionArgs, vim) {\n        var cur = head;\n        var endCh = cur.ch;\n        // Depending what our last motion was, we may want to do different\n        // things. If our last motion was moving vertically, we want to\n        // preserve the HPos from our last horizontal move.  If our last motion\n        // was going to the end of a line, moving vertically we should go to\n        // the end of the line, etc.\n        switch (vim.lastMotion) {\n          case this.moveByLines:\n          case this.moveByDisplayLines:\n          case this.moveByScroll:\n          case this.moveToColumn:\n          case this.moveToEol:\n            endCh = vim.lastHPos;\n            break;\n          default:\n            vim.lastHPos = endCh;\n        }\n        var repeat = motionArgs.repeat+(motionArgs.repeatOffset||0);\n        var line = motionArgs.forward ? cur.line + repeat : cur.line - repeat;\n        var first = cm.firstLine();\n        var last = cm.lastLine();\n        var posV = cm.findPosV(cur, (motionArgs.forward ? repeat : -repeat), 'line', vim.lastHSPos);\n        var hasMarkedText = motionArgs.forward ? posV.line > line : posV.line < line;\n        if (hasMarkedText) {\n          line = posV.line;\n          endCh = posV.ch;\n        }\n        // Vim go to line begin or line end when cursor at first/last line and\n        // move to previous/next line is triggered.\n        if (line < first && cur.line == first){\n          return this.moveToStartOfLine(cm, head, motionArgs, vim);\n        } else if (line > last && cur.line == last){\n            return moveToEol(cm, head, motionArgs, vim, true);\n        }\n        if (motionArgs.toFirstChar){\n          endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line));\n          vim.lastHPos = endCh;\n        }\n        vim.lastHSPos = cm.charCoords(Pos(line, endCh),'div').left;\n        return Pos(line, endCh);\n      },\n      moveByDisplayLines: function(cm, head, motionArgs, vim) {\n        var cur = head;\n        switch (vim.lastMotion) {\n          case this.moveByDisplayLines:\n          case this.moveByScroll:\n          case this.moveByLines:\n          case this.moveToColumn:\n          case this.moveToEol:\n            break;\n          default:\n            vim.lastHSPos = cm.charCoords(cur,'div').left;\n        }\n        var repeat = motionArgs.repeat;\n        var res=cm.findPosV(cur,(motionArgs.forward ? repeat : -repeat),'line',vim.lastHSPos);\n        if (res.hitSide) {\n          if (motionArgs.forward) {\n            var lastCharCoords = cm.charCoords(res, 'div');\n            var goalCoords = { top: lastCharCoords.top + 8, left: vim.lastHSPos };\n            var res = cm.coordsChar(goalCoords, 'div');\n          } else {\n            var resCoords = cm.charCoords(Pos(cm.firstLine(), 0), 'div');\n            resCoords.left = vim.lastHSPos;\n            res = cm.coordsChar(resCoords, 'div');\n          }\n        }\n        vim.lastHPos = res.ch;\n        return res;\n      },\n      moveByPage: function(cm, head, motionArgs) {\n        // CodeMirror only exposes functions that move the cursor page down, so\n        // doing this bad hack to move the cursor and move it back. evalInput\n        // will move the cursor to where it should be in the end.\n        var curStart = head;\n        var repeat = motionArgs.repeat;\n        return cm.findPosV(curStart, (motionArgs.forward ? repeat : -repeat), 'page');\n      },\n      moveByParagraph: function(cm, head, motionArgs) {\n        var dir = motionArgs.forward ? 1 : -1;\n        return findParagraph(cm, head, motionArgs.repeat, dir);\n      },\n      moveBySentence: function(cm, head, motionArgs) {\n        var dir = motionArgs.forward ? 1 : -1;\n        return findSentence(cm, head, motionArgs.repeat, dir);\n      },\n      moveByScroll: function(cm, head, motionArgs, vim) {\n        var scrollbox = cm.getScrollInfo();\n        var curEnd = null;\n        var repeat = motionArgs.repeat;\n        if (!repeat) {\n          repeat = scrollbox.clientHeight / (2 * cm.defaultTextHeight());\n        }\n        var orig = cm.charCoords(head, 'local');\n        motionArgs.repeat = repeat;\n        var curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim);\n        if (!curEnd) {\n          return null;\n        }\n        var dest = cm.charCoords(curEnd, 'local');\n        cm.scrollTo(null, scrollbox.top + dest.top - orig.top);\n        return curEnd;\n      },\n      moveByWords: function(cm, head, motionArgs) {\n        return moveToWord(cm, head, motionArgs.repeat, !!motionArgs.forward,\n            !!motionArgs.wordEnd, !!motionArgs.bigWord);\n      },\n      moveTillCharacter: function(cm, _head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        var curEnd = moveToCharacter(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter);\n        var increment = motionArgs.forward ? -1 : 1;\n        recordLastCharacterSearch(increment, motionArgs);\n        if (!curEnd) return null;\n        curEnd.ch += increment;\n        return curEnd;\n      },\n      moveToCharacter: function(cm, head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        recordLastCharacterSearch(0, motionArgs);\n        return moveToCharacter(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter) || head;\n      },\n      moveToSymbol: function(cm, head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        return findSymbol(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter) || head;\n      },\n      moveToColumn: function(cm, head, motionArgs, vim) {\n        var repeat = motionArgs.repeat;\n        // repeat is equivalent to which column we want to move to!\n        vim.lastHPos = repeat - 1;\n        vim.lastHSPos = cm.charCoords(head,'div').left;\n        return moveToColumn(cm, repeat);\n      },\n      moveToEol: function(cm, head, motionArgs, vim) {\n        return moveToEol(cm, head, motionArgs, vim, false);\n      },\n      moveToFirstNonWhiteSpaceCharacter: function(cm, head) {\n        // Go to the start of the line where the text begins, or the end for\n        // whitespace-only lines\n        var cursor = head;\n        return Pos(cursor.line,\n                   findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line)));\n      },\n      moveToMatchedSymbol: function(cm, head) {\n        var cursor = head;\n        var line = cursor.line;\n        var ch = cursor.ch;\n        var lineText = cm.getLine(line);\n        var symbol;\n        for (; ch < lineText.length; ch++) {\n          symbol = lineText.charAt(ch);\n          if (symbol && isMatchableSymbol(symbol)) {\n            var style = cm.getTokenTypeAt(Pos(line, ch + 1));\n            if (style !== \"string\" && style !== \"comment\") {\n              break;\n            }\n          }\n        }\n        if (ch < lineText.length) {\n          // Only include angle brackets in analysis if they are being matched.\n          var re = (ch === '<' || ch === '>') ? /[(){}[\\]<>]/ : /[(){}[\\]]/;\n          var matched = cm.findMatchingBracket(Pos(line, ch), {bracketRegex: re});\n          return matched.to;\n        } else {\n          return cursor;\n        }\n      },\n      moveToStartOfLine: function(_cm, head) {\n        return Pos(head.line, 0);\n      },\n      moveToLineOrEdgeOfDocument: function(cm, _head, motionArgs) {\n        var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine();\n        if (motionArgs.repeatIsExplicit) {\n          lineNum = motionArgs.repeat - cm.getOption('firstLineNumber');\n        }\n        return Pos(lineNum,\n                   findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum)));\n      },\n      textObjectManipulation: function(cm, head, motionArgs, vim) {\n        // TODO: lots of possible exceptions that can be thrown here. Try da(\n        //     outside of a () block.\n        var mirroredPairs = {'(': ')', ')': '(',\n                             '{': '}', '}': '{',\n                             '[': ']', ']': '[',\n                             '<': '>', '>': '<'};\n        var selfPaired = {'\\'': true, '\"': true, '`': true};\n\n        var character = motionArgs.selectedCharacter;\n        // 'b' refers to  '()' block.\n        // 'B' refers to  '{}' block.\n        if (character == 'b') {\n          character = '(';\n        } else if (character == 'B') {\n          character = '{';\n        }\n\n        // Inclusive is the difference between a and i\n        // TODO: Instead of using the additional text object map to perform text\n        //     object operations, merge the map into the defaultKeyMap and use\n        //     motionArgs to define behavior. Define separate entries for 'aw',\n        //     'iw', 'a[', 'i[', etc.\n        var inclusive = !motionArgs.textObjectInner;\n\n        var tmp;\n        if (mirroredPairs[character]) {\n          tmp = selectCompanionObject(cm, head, character, inclusive);\n        } else if (selfPaired[character]) {\n          tmp = findBeginningAndEnd(cm, head, character, inclusive);\n        } else if (character === 'W') {\n          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,\n                                                     true /** bigWord */);\n        } else if (character === 'w') {\n          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,\n                                                     false /** bigWord */);\n        } else if (character === 'p') {\n          tmp = findParagraph(cm, head, motionArgs.repeat, 0, inclusive);\n          motionArgs.linewise = true;\n          if (vim.visualMode) {\n            if (!vim.visualLine) { vim.visualLine = true; }\n          } else {\n            var operatorArgs = vim.inputState.operatorArgs;\n            if (operatorArgs) { operatorArgs.linewise = true; }\n            tmp.end.line--;\n          }\n        } else if (character === 't') {\n          tmp = expandTagUnderCursor(cm, head, inclusive);\n        } else {\n          // No text object defined for this, don't move.\n          return null;\n        }\n\n        if (!cm.state.vim.visualMode) {\n          return [tmp.start, tmp.end];\n        } else {\n          return expandSelection(cm, tmp.start, tmp.end);\n        }\n      },\n\n      repeatLastCharacterSearch: function(cm, head, motionArgs) {\n        var lastSearch = vimGlobalState.lastCharacterSearch;\n        var repeat = motionArgs.repeat;\n        var forward = motionArgs.forward === lastSearch.forward;\n        var increment = (lastSearch.increment ? 1 : 0) * (forward ? -1 : 1);\n        cm.moveH(-increment, 'char');\n        motionArgs.inclusive = forward ? true : false;\n        var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter);\n        if (!curEnd) {\n          cm.moveH(increment, 'char');\n          return head;\n        }\n        curEnd.ch += increment;\n        return curEnd;\n      }\n    };\n\n    function defineMotion(name, fn) {\n      motions[name] = fn;\n    }\n\n    function fillArray(val, times) {\n      var arr = [];\n      for (var i = 0; i < times; i++) {\n        arr.push(val);\n      }\n      return arr;\n    }\n    /**\n     * An operator acts on a text selection. It receives the list of selections\n     * as input. The corresponding CodeMirror selection is guaranteed to\n    * match the input selection.\n     */\n    var operators = {\n      change: function(cm, args, ranges) {\n        var finalHead, text;\n        var vim = cm.state.vim;\n        var anchor = ranges[0].anchor,\n            head = ranges[0].head;\n        if (!vim.visualMode) {\n          text = cm.getRange(anchor, head);\n          var lastState = vim.lastEditInputState || {};\n          if (lastState.motion == \"moveByWords\" && !isWhiteSpaceString(text)) {\n            // Exclude trailing whitespace if the range is not all whitespace.\n            var match = (/\\s+$/).exec(text);\n            if (match && lastState.motionArgs && lastState.motionArgs.forward) {\n              head = offsetCursor(head, 0, - match[0].length);\n              text = text.slice(0, - match[0].length);\n            }\n          }\n          var prevLineEnd = new Pos(anchor.line - 1, Number.MAX_VALUE);\n          var wasLastLine = cm.firstLine() == cm.lastLine();\n          if (head.line > cm.lastLine() && args.linewise && !wasLastLine) {\n            cm.replaceRange('', prevLineEnd, head);\n          } else {\n            cm.replaceRange('', anchor, head);\n          }\n          if (args.linewise) {\n            // Push the next line back down, if there is a next line.\n            if (!wasLastLine) {\n              cm.setCursor(prevLineEnd);\n              CodeMirror.commands.newlineAndIndent(cm);\n            }\n            // make sure cursor ends up at the end of the line.\n            anchor.ch = Number.MAX_VALUE;\n          }\n          finalHead = anchor;\n        } else if (args.fullLine) {\n            head.ch = Number.MAX_VALUE;\n            head.line--;\n            cm.setSelection(anchor, head)\n            text = cm.getSelection();\n            cm.replaceSelection(\"\");\n            finalHead = anchor;\n        } else {\n          text = cm.getSelection();\n          var replacement = fillArray('', ranges.length);\n          cm.replaceSelections(replacement);\n          finalHead = cursorMin(ranges[0].head, ranges[0].anchor);\n        }\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'change', text,\n            args.linewise, ranges.length > 1);\n        actions.enterInsertMode(cm, {head: finalHead}, cm.state.vim);\n      },\n      // delete is a javascript keyword.\n      'delete': function(cm, args, ranges) {\n        var finalHead, text;\n        var vim = cm.state.vim;\n        if (!vim.visualBlock) {\n          var anchor = ranges[0].anchor,\n              head = ranges[0].head;\n          if (args.linewise &&\n              head.line != cm.firstLine() &&\n              anchor.line == cm.lastLine() &&\n              anchor.line == head.line - 1) {\n            // Special case for dd on last line (and first line).\n            if (anchor.line == cm.firstLine()) {\n              anchor.ch = 0;\n            } else {\n              anchor = Pos(anchor.line - 1, lineLength(cm, anchor.line - 1));\n            }\n          }\n          text = cm.getRange(anchor, head);\n          cm.replaceRange('', anchor, head);\n          finalHead = anchor;\n          if (args.linewise) {\n            finalHead = motions.moveToFirstNonWhiteSpaceCharacter(cm, anchor);\n          }\n        } else {\n          text = cm.getSelection();\n          var replacement = fillArray('', ranges.length);\n          cm.replaceSelections(replacement);\n          finalHead = ranges[0].anchor;\n        }\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'delete', text,\n            args.linewise, vim.visualBlock);\n        return clipCursorToContent(cm, finalHead);\n      },\n      indent: function(cm, args, ranges) {\n        var vim = cm.state.vim;\n        var startLine = ranges[0].anchor.line;\n        var endLine = vim.visualBlock ?\n          ranges[ranges.length - 1].anchor.line :\n          ranges[0].head.line;\n        // In visual mode, n> shifts the selection right n times, instead of\n        // shifting n lines right once.\n        var repeat = (vim.visualMode) ? args.repeat : 1;\n        if (args.linewise) {\n          // The only way to delete a newline is to delete until the start of\n          // the next line, so in linewise mode evalInput will include the next\n          // line. We don't want this in indent, so we go back a line.\n          endLine--;\n        }\n        for (var i = startLine; i <= endLine; i++) {\n          for (var j = 0; j < repeat; j++) {\n            cm.indentLine(i, args.indentRight);\n          }\n        }\n        return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);\n      },\n      indentAuto: function(cm, _args, ranges) {\n        cm.execCommand(\"indentAuto\");\n        return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);\n      },\n      changeCase: function(cm, args, ranges, oldAnchor, newHead) {\n        var selections = cm.getSelections();\n        var swapped = [];\n        var toLower = args.toLower;\n        for (var j = 0; j < selections.length; j++) {\n          var toSwap = selections[j];\n          var text = '';\n          if (toLower === true) {\n            text = toSwap.toLowerCase();\n          } else if (toLower === false) {\n            text = toSwap.toUpperCase();\n          } else {\n            for (var i = 0; i < toSwap.length; i++) {\n              var character = toSwap.charAt(i);\n              text += isUpperCase(character) ? character.toLowerCase() :\n                  character.toUpperCase();\n            }\n          }\n          swapped.push(text);\n        }\n        cm.replaceSelections(swapped);\n        if (args.shouldMoveCursor){\n          return newHead;\n        } else if (!cm.state.vim.visualMode && args.linewise && ranges[0].anchor.line + 1 == ranges[0].head.line) {\n          return motions.moveToFirstNonWhiteSpaceCharacter(cm, oldAnchor);\n        } else if (args.linewise){\n          return oldAnchor;\n        } else {\n          return cursorMin(ranges[0].anchor, ranges[0].head);\n        }\n      },\n      yank: function(cm, args, ranges, oldAnchor) {\n        var vim = cm.state.vim;\n        var text = cm.getSelection();\n        var endPos = vim.visualMode\n          ? cursorMin(vim.sel.anchor, vim.sel.head, ranges[0].head, ranges[0].anchor)\n          : oldAnchor;\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'yank',\n            text, args.linewise, vim.visualBlock);\n        return endPos;\n      }\n    };\n\n    function defineOperator(name, fn) {\n      operators[name] = fn;\n    }\n\n    var actions = {\n      jumpListWalk: function(cm, actionArgs, vim) {\n        if (vim.visualMode) {\n          return;\n        }\n        var repeat = actionArgs.repeat;\n        var forward = actionArgs.forward;\n        var jumpList = vimGlobalState.jumpList;\n\n        var mark = jumpList.move(cm, forward ? repeat : -repeat);\n        var markPos = mark ? mark.find() : undefined;\n        markPos = markPos ? markPos : cm.getCursor();\n        cm.setCursor(markPos);\n      },\n      scroll: function(cm, actionArgs, vim) {\n        if (vim.visualMode) {\n          return;\n        }\n        var repeat = actionArgs.repeat || 1;\n        var lineHeight = cm.defaultTextHeight();\n        var top = cm.getScrollInfo().top;\n        var delta = lineHeight * repeat;\n        var newPos = actionArgs.forward ? top + delta : top - delta;\n        var cursor = copyCursor(cm.getCursor());\n        var cursorCoords = cm.charCoords(cursor, 'local');\n        if (actionArgs.forward) {\n          if (newPos > cursorCoords.top) {\n             cursor.line += (newPos - cursorCoords.top) / lineHeight;\n             cursor.line = Math.ceil(cursor.line);\n             cm.setCursor(cursor);\n             cursorCoords = cm.charCoords(cursor, 'local');\n             cm.scrollTo(null, cursorCoords.top);\n          } else {\n             // Cursor stays within bounds.  Just reposition the scroll window.\n             cm.scrollTo(null, newPos);\n          }\n        } else {\n          var newBottom = newPos + cm.getScrollInfo().clientHeight;\n          if (newBottom < cursorCoords.bottom) {\n             cursor.line -= (cursorCoords.bottom - newBottom) / lineHeight;\n             cursor.line = Math.floor(cursor.line);\n             cm.setCursor(cursor);\n             cursorCoords = cm.charCoords(cursor, 'local');\n             cm.scrollTo(\n                 null, cursorCoords.bottom - cm.getScrollInfo().clientHeight);\n          } else {\n             // Cursor stays within bounds.  Just reposition the scroll window.\n             cm.scrollTo(null, newPos);\n          }\n        }\n      },\n      scrollToCursor: function(cm, actionArgs) {\n        var lineNum = cm.getCursor().line;\n        var charCoords = cm.charCoords(Pos(lineNum, 0), 'local');\n        var height = cm.getScrollInfo().clientHeight;\n        var y = charCoords.top;\n        var lineHeight = charCoords.bottom - y;\n        switch (actionArgs.position) {\n          case 'center': y = y - (height / 2) + lineHeight;\n            break;\n          case 'bottom': y = y - height + lineHeight;\n            break;\n        }\n        cm.scrollTo(null, y);\n      },\n      replayMacro: function(cm, actionArgs, vim) {\n        var registerName = actionArgs.selectedCharacter;\n        var repeat = actionArgs.repeat;\n        var macroModeState = vimGlobalState.macroModeState;\n        if (registerName == '@') {\n          registerName = macroModeState.latestRegister;\n        } else {\n          macroModeState.latestRegister = registerName;\n        }\n        while(repeat--){\n          executeMacroRegister(cm, vim, macroModeState, registerName);\n        }\n      },\n      enterMacroRecordMode: function(cm, actionArgs) {\n        var macroModeState = vimGlobalState.macroModeState;\n        var registerName = actionArgs.selectedCharacter;\n        if (vimGlobalState.registerController.isValidRegister(registerName)) {\n          macroModeState.enterMacroRecordMode(cm, registerName);\n        }\n      },\n      toggleOverwrite: function(cm) {\n        if (!cm.state.overwrite) {\n          cm.toggleOverwrite(true);\n          cm.setOption('keyMap', 'vim-replace');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"replace\"});\n        } else {\n          cm.toggleOverwrite(false);\n          cm.setOption('keyMap', 'vim-insert');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"insert\"});\n        }\n      },\n      enterInsertMode: function(cm, actionArgs, vim) {\n        if (cm.getOption('readOnly')) { return; }\n        vim.insertMode = true;\n        vim.insertModeRepeat = actionArgs && actionArgs.repeat || 1;\n        var insertAt = (actionArgs) ? actionArgs.insertAt : null;\n        var sel = vim.sel;\n        var head = actionArgs.head || cm.getCursor('head');\n        var height = cm.listSelections().length;\n        if (insertAt == 'eol') {\n          head = Pos(head.line, lineLength(cm, head.line));\n        } else if (insertAt == 'bol') {\n          head = Pos(head.line, 0);\n        } else if (insertAt == 'charAfter') {\n          head = offsetCursor(head, 0, 1);\n        } else if (insertAt == 'firstNonBlank') {\n          head = motions.moveToFirstNonWhiteSpaceCharacter(cm, head);\n        } else if (insertAt == 'startOfSelectedArea') {\n          if (!vim.visualMode)\n              return;\n          if (!vim.visualBlock) {\n            if (sel.head.line < sel.anchor.line) {\n              head = sel.head;\n            } else {\n              head = Pos(sel.anchor.line, 0);\n            }\n          } else {\n            head = Pos(\n                Math.min(sel.head.line, sel.anchor.line),\n                Math.min(sel.head.ch, sel.anchor.ch));\n            height = Math.abs(sel.head.line - sel.anchor.line) + 1;\n          }\n        } else if (insertAt == 'endOfSelectedArea') {\n            if (!vim.visualMode)\n              return;\n          if (!vim.visualBlock) {\n            if (sel.head.line >= sel.anchor.line) {\n              head = offsetCursor(sel.head, 0, 1);\n            } else {\n              head = Pos(sel.anchor.line, 0);\n            }\n          } else {\n            head = Pos(\n                Math.min(sel.head.line, sel.anchor.line),\n                Math.max(sel.head.ch + 1, sel.anchor.ch));\n            height = Math.abs(sel.head.line - sel.anchor.line) + 1;\n          }\n        } else if (insertAt == 'inplace') {\n          if (vim.visualMode){\n            return;\n          }\n        } else if (insertAt == 'lastEdit') {\n          head = getLastEditPos(cm) || head;\n        }\n        cm.setOption('disableInput', false);\n        if (actionArgs && actionArgs.replace) {\n          // Handle Replace-mode as a special case of insert mode.\n          cm.toggleOverwrite(true);\n          cm.setOption('keyMap', 'vim-replace');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"replace\"});\n        } else {\n          cm.toggleOverwrite(false);\n          cm.setOption('keyMap', 'vim-insert');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"insert\"});\n        }\n        if (!vimGlobalState.macroModeState.isPlaying) {\n          // Only record if not replaying.\n          cm.on('change', onChange);\n          CodeMirror.on(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);\n        }\n        if (vim.visualMode) {\n          exitVisualMode(cm);\n        }\n        selectForInsert(cm, head, height);\n      },\n      toggleVisualMode: function(cm, actionArgs, vim) {\n        var repeat = actionArgs.repeat;\n        var anchor = cm.getCursor();\n        var head;\n        // TODO: The repeat should actually select number of characters/lines\n        //     equal to the repeat times the size of the previous visual\n        //     operation.\n        if (!vim.visualMode) {\n          // Entering visual mode\n          vim.visualMode = true;\n          vim.visualLine = !!actionArgs.linewise;\n          vim.visualBlock = !!actionArgs.blockwise;\n          head = clipCursorToContent(\n              cm, Pos(anchor.line, anchor.ch + repeat - 1));\n          vim.sel = {\n            anchor: anchor,\n            head: head\n          };\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: vim.visualLine ? \"linewise\" : vim.visualBlock ? \"blockwise\" : \"\"});\n          updateCmSelection(cm);\n          updateMark(cm, vim, '<', cursorMin(anchor, head));\n          updateMark(cm, vim, '>', cursorMax(anchor, head));\n        } else if (vim.visualLine ^ actionArgs.linewise ||\n            vim.visualBlock ^ actionArgs.blockwise) {\n          // Toggling between modes\n          vim.visualLine = !!actionArgs.linewise;\n          vim.visualBlock = !!actionArgs.blockwise;\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: vim.visualLine ? \"linewise\" : vim.visualBlock ? \"blockwise\" : \"\"});\n          updateCmSelection(cm);\n        } else {\n          exitVisualMode(cm);\n        }\n      },\n      reselectLastSelection: function(cm, _actionArgs, vim) {\n        var lastSelection = vim.lastSelection;\n        if (vim.visualMode) {\n          updateLastSelection(cm, vim);\n        }\n        if (lastSelection) {\n          var anchor = lastSelection.anchorMark.find();\n          var head = lastSelection.headMark.find();\n          if (!anchor || !head) {\n            // If the marks have been destroyed due to edits, do nothing.\n            return;\n          }\n          vim.sel = {\n            anchor: anchor,\n            head: head\n          };\n          vim.visualMode = true;\n          vim.visualLine = lastSelection.visualLine;\n          vim.visualBlock = lastSelection.visualBlock;\n          updateCmSelection(cm);\n          updateMark(cm, vim, '<', cursorMin(anchor, head));\n          updateMark(cm, vim, '>', cursorMax(anchor, head));\n          CodeMirror.signal(cm, 'vim-mode-change', {\n            mode: 'visual',\n            subMode: vim.visualLine ? 'linewise' :\n                     vim.visualBlock ? 'blockwise' : ''});\n        }\n      },\n      joinLines: function(cm, actionArgs, vim) {\n        var curStart, curEnd;\n        if (vim.visualMode) {\n          curStart = cm.getCursor('anchor');\n          curEnd = cm.getCursor('head');\n          if (cursorIsBefore(curEnd, curStart)) {\n            var tmp = curEnd;\n            curEnd = curStart;\n            curStart = tmp;\n          }\n          curEnd.ch = lineLength(cm, curEnd.line) - 1;\n        } else {\n          // Repeat is the number of lines to join. Minimum 2 lines.\n          var repeat = Math.max(actionArgs.repeat, 2);\n          curStart = cm.getCursor();\n          curEnd = clipCursorToContent(cm, Pos(curStart.line + repeat - 1,\n                                               Infinity));\n        }\n        var finalCh = 0;\n        for (var i = curStart.line; i < curEnd.line; i++) {\n          finalCh = lineLength(cm, curStart.line);\n          var tmp = Pos(curStart.line + 1,\n                        lineLength(cm, curStart.line + 1));\n          var text = cm.getRange(curStart, tmp);\n          text = actionArgs.keepSpaces\n            ? text.replace(/\\n\\r?/g, '')\n            : text.replace(/\\n\\s*/g, ' ');\n          cm.replaceRange(text, curStart, tmp);\n        }\n        var curFinalPos = Pos(curStart.line, finalCh);\n        if (vim.visualMode) {\n          exitVisualMode(cm, false);\n        }\n        cm.setCursor(curFinalPos);\n      },\n      newLineAndEnterInsertMode: function(cm, actionArgs, vim) {\n        vim.insertMode = true;\n        var insertAt = copyCursor(cm.getCursor());\n        if (insertAt.line === cm.firstLine() && !actionArgs.after) {\n          // Special case for inserting newline before start of document.\n          cm.replaceRange('\\n', Pos(cm.firstLine(), 0));\n          cm.setCursor(cm.firstLine(), 0);\n        } else {\n          insertAt.line = (actionArgs.after) ? insertAt.line :\n              insertAt.line - 1;\n          insertAt.ch = lineLength(cm, insertAt.line);\n          cm.setCursor(insertAt);\n          var newlineFn = CodeMirror.commands.newlineAndIndentContinueComment ||\n              CodeMirror.commands.newlineAndIndent;\n          newlineFn(cm);\n        }\n        this.enterInsertMode(cm, { repeat: actionArgs.repeat }, vim);\n      },\n      paste: function(cm, actionArgs, vim) {\n        var cur = copyCursor(cm.getCursor());\n        var register = vimGlobalState.registerController.getRegister(\n            actionArgs.registerName);\n        var text = register.toString();\n        if (!text) {\n          return;\n        }\n        if (actionArgs.matchIndent) {\n          var tabSize = cm.getOption(\"tabSize\");\n          // length that considers tabs and tabSize\n          var whitespaceLength = function(str) {\n            var tabs = (str.split(\"\\t\").length - 1);\n            var spaces = (str.split(\" \").length - 1);\n            return tabs * tabSize + spaces * 1;\n          };\n          var currentLine = cm.getLine(cm.getCursor().line);\n          var indent = whitespaceLength(currentLine.match(/^\\s*/)[0]);\n          // chomp last newline b/c don't want it to match /^\\s*/gm\n          var chompedText = text.replace(/\\n$/, '');\n          var wasChomped = text !== chompedText;\n          var firstIndent = whitespaceLength(text.match(/^\\s*/)[0]);\n          var text = chompedText.replace(/^\\s*/gm, function(wspace) {\n            var newIndent = indent + (whitespaceLength(wspace) - firstIndent);\n            if (newIndent < 0) {\n              return \"\";\n            }\n            else if (cm.getOption(\"indentWithTabs\")) {\n              var quotient = Math.floor(newIndent / tabSize);\n              return Array(quotient + 1).join('\\t');\n            }\n            else {\n              return Array(newIndent + 1).join(' ');\n            }\n          });\n          text += wasChomped ? \"\\n\" : \"\";\n        }\n        if (actionArgs.repeat > 1) {\n          var text = Array(actionArgs.repeat + 1).join(text);\n        }\n        var linewise = register.linewise;\n        var blockwise = register.blockwise;\n        if (blockwise) {\n          text = text.split('\\n');\n          if (linewise) {\n              text.pop();\n          }\n          for (var i = 0; i < text.length; i++) {\n            text[i] = (text[i] == '') ? ' ' : text[i];\n          }\n          cur.ch += actionArgs.after ? 1 : 0;\n          cur.ch = Math.min(lineLength(cm, cur.line), cur.ch);\n        } else if (linewise) {\n          if(vim.visualMode) {\n            text = vim.visualLine ? text.slice(0, -1) : '\\n' + text.slice(0, text.length - 1) + '\\n';\n          } else if (actionArgs.after) {\n            // Move the newline at the end to the start instead, and paste just\n            // before the newline character of the line we are on right now.\n            text = '\\n' + text.slice(0, text.length - 1);\n            cur.ch = lineLength(cm, cur.line);\n          } else {\n            cur.ch = 0;\n          }\n        } else {\n          cur.ch += actionArgs.after ? 1 : 0;\n        }\n        var curPosFinal;\n        var idx;\n        if (vim.visualMode) {\n          //  save the pasted text for reselection if the need arises\n          vim.lastPastedText = text;\n          var lastSelectionCurEnd;\n          var selectedArea = getSelectedAreaRange(cm, vim);\n          var selectionStart = selectedArea[0];\n          var selectionEnd = selectedArea[1];\n          var selectedText = cm.getSelection();\n          var selections = cm.listSelections();\n          var emptyStrings = new Array(selections.length).join('1').split('1');\n          // save the curEnd marker before it get cleared due to cm.replaceRange.\n          if (vim.lastSelection) {\n            lastSelectionCurEnd = vim.lastSelection.headMark.find();\n          }\n          // push the previously selected text to unnamed register\n          vimGlobalState.registerController.unnamedRegister.setText(selectedText);\n          if (blockwise) {\n            // first delete the selected text\n            cm.replaceSelections(emptyStrings);\n            // Set new selections as per the block length of the yanked text\n            selectionEnd = Pos(selectionStart.line + text.length-1, selectionStart.ch);\n            cm.setCursor(selectionStart);\n            selectBlock(cm, selectionEnd);\n            cm.replaceSelections(text);\n            curPosFinal = selectionStart;\n          } else if (vim.visualBlock) {\n            cm.replaceSelections(emptyStrings);\n            cm.setCursor(selectionStart);\n            cm.replaceRange(text, selectionStart, selectionStart);\n            curPosFinal = selectionStart;\n          } else {\n            cm.replaceRange(text, selectionStart, selectionEnd);\n            curPosFinal = cm.posFromIndex(cm.indexFromPos(selectionStart) + text.length - 1);\n          }\n          // restore the the curEnd marker\n          if(lastSelectionCurEnd) {\n            vim.lastSelection.headMark = cm.setBookmark(lastSelectionCurEnd);\n          }\n          if (linewise) {\n            curPosFinal.ch=0;\n          }\n        } else {\n          if (blockwise) {\n            cm.setCursor(cur);\n            for (var i = 0; i < text.length; i++) {\n              var line = cur.line+i;\n              if (line > cm.lastLine()) {\n                cm.replaceRange('\\n',  Pos(line, 0));\n              }\n              var lastCh = lineLength(cm, line);\n              if (lastCh < cur.ch) {\n                extendLineToColumn(cm, line, cur.ch);\n              }\n            }\n            cm.setCursor(cur);\n            selectBlock(cm, Pos(cur.line + text.length-1, cur.ch));\n            cm.replaceSelections(text);\n            curPosFinal = cur;\n          } else {\n            cm.replaceRange(text, cur);\n            // Now fine tune the cursor to where we want it.\n            if (linewise && actionArgs.after) {\n              curPosFinal = Pos(\n              cur.line + 1,\n              findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1)));\n            } else if (linewise && !actionArgs.after) {\n              curPosFinal = Pos(\n                cur.line,\n                findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line)));\n            } else if (!linewise && actionArgs.after) {\n              idx = cm.indexFromPos(cur);\n              curPosFinal = cm.posFromIndex(idx + text.length - 1);\n            } else {\n              idx = cm.indexFromPos(cur);\n              curPosFinal = cm.posFromIndex(idx + text.length);\n            }\n          }\n        }\n        if (vim.visualMode) {\n          exitVisualMode(cm, false);\n        }\n        cm.setCursor(curPosFinal);\n      },\n      undo: function(cm, actionArgs) {\n        cm.operation(function() {\n          repeatFn(cm, CodeMirror.commands.undo, actionArgs.repeat)();\n          cm.setCursor(cm.getCursor('anchor'));\n        });\n      },\n      redo: function(cm, actionArgs) {\n        repeatFn(cm, CodeMirror.commands.redo, actionArgs.repeat)();\n      },\n      setRegister: function(_cm, actionArgs, vim) {\n        vim.inputState.registerName = actionArgs.selectedCharacter;\n      },\n      setMark: function(cm, actionArgs, vim) {\n        var markName = actionArgs.selectedCharacter;\n        updateMark(cm, vim, markName, cm.getCursor());\n      },\n      replace: function(cm, actionArgs, vim) {\n        var replaceWith = actionArgs.selectedCharacter;\n        var curStart = cm.getCursor();\n        var replaceTo;\n        var curEnd;\n        var selections = cm.listSelections();\n        if (vim.visualMode) {\n          curStart = cm.getCursor('start');\n          curEnd = cm.getCursor('end');\n        } else {\n          var line = cm.getLine(curStart.line);\n          replaceTo = curStart.ch + actionArgs.repeat;\n          if (replaceTo > line.length) {\n            replaceTo=line.length;\n          }\n          curEnd = Pos(curStart.line, replaceTo);\n        }\n        if (replaceWith=='\\n') {\n          if (!vim.visualMode) cm.replaceRange('', curStart, curEnd);\n          // special case, where vim help says to replace by just one line-break\n          (CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent)(cm);\n        } else {\n          var replaceWithStr = cm.getRange(curStart, curEnd);\n          //replace all characters in range by selected, but keep linebreaks\n          replaceWithStr = replaceWithStr.replace(/[^\\n]/g, replaceWith);\n          if (vim.visualBlock) {\n            // Tabs are split in visua block before replacing\n            var spaces = new Array(cm.getOption(\"tabSize\")+1).join(' ');\n            replaceWithStr = cm.getSelection();\n            replaceWithStr = replaceWithStr.replace(/\\t/g, spaces).replace(/[^\\n]/g, replaceWith).split('\\n');\n            cm.replaceSelections(replaceWithStr);\n          } else {\n            cm.replaceRange(replaceWithStr, curStart, curEnd);\n          }\n          if (vim.visualMode) {\n            curStart = cursorIsBefore(selections[0].anchor, selections[0].head) ?\n                         selections[0].anchor : selections[0].head;\n            cm.setCursor(curStart);\n            exitVisualMode(cm, false);\n          } else {\n            cm.setCursor(offsetCursor(curEnd, 0, -1));\n          }\n        }\n      },\n      incrementNumberToken: function(cm, actionArgs) {\n        var cur = cm.getCursor();\n        var lineStr = cm.getLine(cur.line);\n        var re = /(-?)(?:(0x)([\\da-f]+)|(0b|0|)(\\d+))/gi;\n        var match;\n        var start;\n        var end;\n        var numberStr;\n        while ((match = re.exec(lineStr)) !== null) {\n          start = match.index;\n          end = start + match[0].length;\n          if (cur.ch < end)break;\n        }\n        if (!actionArgs.backtrack && (end <= cur.ch))return;\n        if (match) {\n          var baseStr = match[2] || match[4]\n          var digits = match[3] || match[5]\n          var increment = actionArgs.increase ? 1 : -1;\n          var base = {'0b': 2, '0': 8, '': 10, '0x': 16}[baseStr.toLowerCase()];\n          var number = parseInt(match[1] + digits, base) + (increment * actionArgs.repeat);\n          numberStr = number.toString(base);\n          var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : ''\n          if (numberStr.charAt(0) === '-') {\n            numberStr = '-' + baseStr + zeroPadding + numberStr.substr(1);\n          } else {\n            numberStr = baseStr + zeroPadding + numberStr;\n          }\n          var from = Pos(cur.line, start);\n          var to = Pos(cur.line, end);\n          cm.replaceRange(numberStr, from, to);\n        } else {\n          return;\n        }\n        cm.setCursor(Pos(cur.line, start + numberStr.length - 1));\n      },\n      repeatLastEdit: function(cm, actionArgs, vim) {\n        var lastEditInputState = vim.lastEditInputState;\n        if (!lastEditInputState) { return; }\n        var repeat = actionArgs.repeat;\n        if (repeat && actionArgs.repeatIsExplicit) {\n          vim.lastEditInputState.repeatOverride = repeat;\n        } else {\n          repeat = vim.lastEditInputState.repeatOverride || repeat;\n        }\n        repeatLastEdit(cm, vim, repeat, false /** repeatForInsert */);\n      },\n      indent: function(cm, actionArgs) {\n        cm.indentLine(cm.getCursor().line, actionArgs.indentRight);\n      },\n      exitInsertMode: exitInsertMode\n    };\n\n    function defineAction(name, fn) {\n      actions[name] = fn;\n    }\n\n    /*\n     * Below are miscellaneous utility functions used by vim.js\n     */\n\n    /**\n     * Clips cursor to ensure that line is within the buffer's range\n     * If includeLineBreak is true, then allow cur.ch == lineLength.\n     */\n    function clipCursorToContent(cm, cur) {\n      var vim = cm.state.vim;\n      var includeLineBreak = vim.insertMode || vim.visualMode;\n      var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() );\n      var maxCh = lineLength(cm, line) - 1 + !!includeLineBreak;\n      var ch = Math.min(Math.max(0, cur.ch), maxCh);\n      return Pos(line, ch);\n    }\n    function copyArgs(args) {\n      var ret = {};\n      for (var prop in args) {\n        if (args.hasOwnProperty(prop)) {\n          ret[prop] = args[prop];\n        }\n      }\n      return ret;\n    }\n    function offsetCursor(cur, offsetLine, offsetCh) {\n      if (typeof offsetLine === 'object') {\n        offsetCh = offsetLine.ch;\n        offsetLine = offsetLine.line;\n      }\n      return Pos(cur.line + offsetLine, cur.ch + offsetCh);\n    }\n    function commandMatches(keys, keyMap, context, inputState) {\n      // Partial matches are not applied. They inform the key handler\n      // that the current key sequence is a subsequence of a valid key\n      // sequence, so that the key buffer is not cleared.\n      var match, partial = [], full = [];\n      for (var i = 0; i < keyMap.length; i++) {\n        var command = keyMap[i];\n        if (context == 'insert' && command.context != 'insert' ||\n            command.context && command.context != context ||\n            inputState.operator && command.type == 'action' ||\n            !(match = commandMatch(keys, command.keys))) { continue; }\n        if (match == 'partial') { partial.push(command); }\n        if (match == 'full') { full.push(command); }\n      }\n      return {\n        partial: partial.length && partial,\n        full: full.length && full\n      };\n    }\n    function commandMatch(pressed, mapped) {\n      if (mapped.slice(-11) == '<character>') {\n        // Last character matches anything.\n        var prefixLen = mapped.length - 11;\n        var pressedPrefix = pressed.slice(0, prefixLen);\n        var mappedPrefix = mapped.slice(0, prefixLen);\n        return pressedPrefix == mappedPrefix && pressed.length > prefixLen ? 'full' :\n               mappedPrefix.indexOf(pressedPrefix) == 0 ? 'partial' : false;\n      } else {\n        return pressed == mapped ? 'full' :\n               mapped.indexOf(pressed) == 0 ? 'partial' : false;\n      }\n    }\n    function lastChar(keys) {\n      var match = /^.*(<[^>]+>)$/.exec(keys);\n      var selectedCharacter = match ? match[1] : keys.slice(-1);\n      if (selectedCharacter.length > 1){\n        switch(selectedCharacter){\n          case '<CR>':\n            selectedCharacter='\\n';\n            break;\n          case '<Space>':\n            selectedCharacter=' ';\n            break;\n          default:\n            selectedCharacter='';\n            break;\n        }\n      }\n      return selectedCharacter;\n    }\n    function repeatFn(cm, fn, repeat) {\n      return function() {\n        for (var i = 0; i < repeat; i++) {\n          fn(cm);\n        }\n      };\n    }\n    function copyCursor(cur) {\n      return Pos(cur.line, cur.ch);\n    }\n    function cursorEqual(cur1, cur2) {\n      return cur1.ch == cur2.ch && cur1.line == cur2.line;\n    }\n    function cursorIsBefore(cur1, cur2) {\n      if (cur1.line < cur2.line) {\n        return true;\n      }\n      if (cur1.line == cur2.line && cur1.ch < cur2.ch) {\n        return true;\n      }\n      return false;\n    }\n    function cursorMin(cur1, cur2) {\n      if (arguments.length > 2) {\n        cur2 = cursorMin.apply(undefined, Array.prototype.slice.call(arguments, 1));\n      }\n      return cursorIsBefore(cur1, cur2) ? cur1 : cur2;\n    }\n    function cursorMax(cur1, cur2) {\n      if (arguments.length > 2) {\n        cur2 = cursorMax.apply(undefined, Array.prototype.slice.call(arguments, 1));\n      }\n      return cursorIsBefore(cur1, cur2) ? cur2 : cur1;\n    }\n    function cursorIsBetween(cur1, cur2, cur3) {\n      // returns true if cur2 is between cur1 and cur3.\n      var cur1before2 = cursorIsBefore(cur1, cur2);\n      var cur2before3 = cursorIsBefore(cur2, cur3);\n      return cur1before2 && cur2before3;\n    }\n    function lineLength(cm, lineNum) {\n      return cm.getLine(lineNum).length;\n    }\n    function trim(s) {\n      if (s.trim) {\n        return s.trim();\n      }\n      return s.replace(/^\\s+|\\s+$/g, '');\n    }\n    function escapeRegex(s) {\n      return s.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g, '\\\\$1');\n    }\n    function extendLineToColumn(cm, lineNum, column) {\n      var endCh = lineLength(cm, lineNum);\n      var spaces = new Array(column-endCh+1).join(' ');\n      cm.setCursor(Pos(lineNum, endCh));\n      cm.replaceRange(spaces, cm.getCursor());\n    }\n    // This functions selects a rectangular block\n    // of text with selectionEnd as any of its corner\n    // Height of block:\n    // Difference in selectionEnd.line and first/last selection.line\n    // Width of the block:\n    // Distance between selectionEnd.ch and any(first considered here) selection.ch\n    function selectBlock(cm, selectionEnd) {\n      var selections = [], ranges = cm.listSelections();\n      var head = copyCursor(cm.clipPos(selectionEnd));\n      var isClipped = !cursorEqual(selectionEnd, head);\n      var curHead = cm.getCursor('head');\n      var primIndex = getIndex(ranges, curHead);\n      var wasClipped = cursorEqual(ranges[primIndex].head, ranges[primIndex].anchor);\n      var max = ranges.length - 1;\n      var index = max - primIndex > primIndex ? max : 0;\n      var base = ranges[index].anchor;\n\n      var firstLine = Math.min(base.line, head.line);\n      var lastLine = Math.max(base.line, head.line);\n      var baseCh = base.ch, headCh = head.ch;\n\n      var dir = ranges[index].head.ch - baseCh;\n      var newDir = headCh - baseCh;\n      if (dir > 0 && newDir <= 0) {\n        baseCh++;\n        if (!isClipped) { headCh--; }\n      } else if (dir < 0 && newDir >= 0) {\n        baseCh--;\n        if (!wasClipped) { headCh++; }\n      } else if (dir < 0 && newDir == -1) {\n        baseCh--;\n        headCh++;\n      }\n      for (var line = firstLine; line <= lastLine; line++) {\n        var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};\n        selections.push(range);\n      }\n      cm.setSelections(selections);\n      selectionEnd.ch = headCh;\n      base.ch = baseCh;\n      return base;\n    }\n    function selectForInsert(cm, head, height) {\n      var sel = [];\n      for (var i = 0; i < height; i++) {\n        var lineHead = offsetCursor(head, i, 0);\n        sel.push({anchor: lineHead, head: lineHead});\n      }\n      cm.setSelections(sel, 0);\n    }\n    // getIndex returns the index of the cursor in the selections.\n    function getIndex(ranges, cursor, end) {\n      for (var i = 0; i < ranges.length; i++) {\n        var atAnchor = end != 'head' && cursorEqual(ranges[i].anchor, cursor);\n        var atHead = end != 'anchor' && cursorEqual(ranges[i].head, cursor);\n        if (atAnchor || atHead) {\n          return i;\n        }\n      }\n      return -1;\n    }\n    function getSelectedAreaRange(cm, vim) {\n      var lastSelection = vim.lastSelection;\n      var getCurrentSelectedAreaRange = function() {\n        var selections = cm.listSelections();\n        var start =  selections[0];\n        var end = selections[selections.length-1];\n        var selectionStart = cursorIsBefore(start.anchor, start.head) ? start.anchor : start.head;\n        var selectionEnd = cursorIsBefore(end.anchor, end.head) ? end.head : end.anchor;\n        return [selectionStart, selectionEnd];\n      };\n      var getLastSelectedAreaRange = function() {\n        var selectionStart = cm.getCursor();\n        var selectionEnd = cm.getCursor();\n        var block = lastSelection.visualBlock;\n        if (block) {\n          var width = block.width;\n          var height = block.height;\n          selectionEnd = Pos(selectionStart.line + height, selectionStart.ch + width);\n          var selections = [];\n          // selectBlock creates a 'proper' rectangular block.\n          // We do not want that in all cases, so we manually set selections.\n          for (var i = selectionStart.line; i < selectionEnd.line; i++) {\n            var anchor = Pos(i, selectionStart.ch);\n            var head = Pos(i, selectionEnd.ch);\n            var range = {anchor: anchor, head: head};\n            selections.push(range);\n          }\n          cm.setSelections(selections);\n        } else {\n          var start = lastSelection.anchorMark.find();\n          var end = lastSelection.headMark.find();\n          var line = end.line - start.line;\n          var ch = end.ch - start.ch;\n          selectionEnd = {line: selectionEnd.line + line, ch: line ? selectionEnd.ch : ch + selectionEnd.ch};\n          if (lastSelection.visualLine) {\n            selectionStart = Pos(selectionStart.line, 0);\n            selectionEnd = Pos(selectionEnd.line, lineLength(cm, selectionEnd.line));\n          }\n          cm.setSelection(selectionStart, selectionEnd);\n        }\n        return [selectionStart, selectionEnd];\n      };\n      if (!vim.visualMode) {\n      // In case of replaying the action.\n        return getLastSelectedAreaRange();\n      } else {\n        return getCurrentSelectedAreaRange();\n      }\n    }\n    // Updates the previous selection with the current selection's values. This\n    // should only be called in visual mode.\n    function updateLastSelection(cm, vim) {\n      var anchor = vim.sel.anchor;\n      var head = vim.sel.head;\n      // To accommodate the effect of lastPastedText in the last selection\n      if (vim.lastPastedText) {\n        head = cm.posFromIndex(cm.indexFromPos(anchor) + vim.lastPastedText.length);\n        vim.lastPastedText = null;\n      }\n      vim.lastSelection = {'anchorMark': cm.setBookmark(anchor),\n                           'headMark': cm.setBookmark(head),\n                           'anchor': copyCursor(anchor),\n                           'head': copyCursor(head),\n                           'visualMode': vim.visualMode,\n                           'visualLine': vim.visualLine,\n                           'visualBlock': vim.visualBlock};\n    }\n    function expandSelection(cm, start, end) {\n      var sel = cm.state.vim.sel;\n      var head = sel.head;\n      var anchor = sel.anchor;\n      var tmp;\n      if (cursorIsBefore(end, start)) {\n        tmp = end;\n        end = start;\n        start = tmp;\n      }\n      if (cursorIsBefore(head, anchor)) {\n        head = cursorMin(start, head);\n        anchor = cursorMax(anchor, end);\n      } else {\n        anchor = cursorMin(start, anchor);\n        head = cursorMax(head, end);\n        head = offsetCursor(head, 0, -1);\n        if (head.ch == -1 && head.line != cm.firstLine()) {\n          head = Pos(head.line - 1, lineLength(cm, head.line - 1));\n        }\n      }\n      return [anchor, head];\n    }\n    /**\n     * Updates the CodeMirror selection to match the provided vim selection.\n     * If no arguments are given, it uses the current vim selection state.\n     */\n    function updateCmSelection(cm, sel, mode) {\n      var vim = cm.state.vim;\n      sel = sel || vim.sel;\n      var mode = mode ||\n        vim.visualLine ? 'line' : vim.visualBlock ? 'block' : 'char';\n      var cmSel = makeCmSelection(cm, sel, mode);\n      cm.setSelections(cmSel.ranges, cmSel.primary);\n      updateFakeCursor(cm);\n    }\n    function makeCmSelection(cm, sel, mode, exclusive) {\n      var head = copyCursor(sel.head);\n      var anchor = copyCursor(sel.anchor);\n      if (mode == 'char') {\n        var headOffset = !exclusive && !cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;\n        var anchorOffset = cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;\n        head = offsetCursor(sel.head, 0, headOffset);\n        anchor = offsetCursor(sel.anchor, 0, anchorOffset);\n        return {\n          ranges: [{anchor: anchor, head: head}],\n          primary: 0\n        };\n      } else if (mode == 'line') {\n        if (!cursorIsBefore(sel.head, sel.anchor)) {\n          anchor.ch = 0;\n\n          var lastLine = cm.lastLine();\n          if (head.line > lastLine) {\n            head.line = lastLine;\n          }\n          head.ch = lineLength(cm, head.line);\n        } else {\n          head.ch = 0;\n          anchor.ch = lineLength(cm, anchor.line);\n        }\n        return {\n          ranges: [{anchor: anchor, head: head}],\n          primary: 0\n        };\n      } else if (mode == 'block') {\n        var top = Math.min(anchor.line, head.line),\n            left = Math.min(anchor.ch, head.ch),\n            bottom = Math.max(anchor.line, head.line),\n            right = Math.max(anchor.ch, head.ch) + 1;\n        var height = bottom - top + 1;\n        var primary = head.line == top ? 0 : height - 1;\n        var ranges = [];\n        for (var i = 0; i < height; i++) {\n          ranges.push({\n            anchor: Pos(top + i, left),\n            head: Pos(top + i, right)\n          });\n        }\n        return {\n          ranges: ranges,\n          primary: primary\n        };\n      }\n    }\n    function getHead(cm) {\n      var cur = cm.getCursor('head');\n      if (cm.getSelection().length == 1) {\n        // Small corner case when only 1 character is selected. The \"real\"\n        // head is the left of head and anchor.\n        cur = cursorMin(cur, cm.getCursor('anchor'));\n      }\n      return cur;\n    }\n\n    /**\n     * If moveHead is set to false, the CodeMirror selection will not be\n     * touched. The caller assumes the responsibility of putting the cursor\n    * in the right place.\n     */\n    function exitVisualMode(cm, moveHead) {\n      var vim = cm.state.vim;\n      if (moveHead !== false) {\n        cm.setCursor(clipCursorToContent(cm, vim.sel.head));\n      }\n      updateLastSelection(cm, vim);\n      vim.visualMode = false;\n      vim.visualLine = false;\n      vim.visualBlock = false;\n      if (!vim.insertMode) CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      clearFakeCursor(vim);\n    }\n\n    // Remove any trailing newlines from the selection. For\n    // example, with the caret at the start of the last word on the line,\n    // 'dw' should word, but not the newline, while 'w' should advance the\n    // caret to the first character of the next line.\n    function clipToLine(cm, curStart, curEnd) {\n      var selection = cm.getRange(curStart, curEnd);\n      // Only clip if the selection ends with trailing newline + whitespace\n      if (/\\n\\s*$/.test(selection)) {\n        var lines = selection.split('\\n');\n        // We know this is all whitespace.\n        lines.pop();\n\n        // Cases:\n        // 1. Last word is an empty line - do not clip the trailing '\\n'\n        // 2. Last word is not an empty line - clip the trailing '\\n'\n        var line;\n        // Find the line containing the last word, and clip all whitespace up\n        // to it.\n        for (var line = lines.pop(); lines.length > 0 && line && isWhiteSpaceString(line); line = lines.pop()) {\n          curEnd.line--;\n          curEnd.ch = 0;\n        }\n        // If the last word is not an empty line, clip an additional newline\n        if (line) {\n          curEnd.line--;\n          curEnd.ch = lineLength(cm, curEnd.line);\n        } else {\n          curEnd.ch = 0;\n        }\n      }\n    }\n\n    // Expand the selection to line ends.\n    function expandSelectionToLine(_cm, curStart, curEnd) {\n      curStart.ch = 0;\n      curEnd.ch = 0;\n      curEnd.line++;\n    }\n\n    function findFirstNonWhiteSpaceCharacter(text) {\n      if (!text) {\n        return 0;\n      }\n      var firstNonWS = text.search(/\\S/);\n      return firstNonWS == -1 ? text.length : firstNonWS;\n    }\n\n    function expandWordUnderCursor(cm, inclusive, _forward, bigWord, noSymbol) {\n      var cur = getHead(cm);\n      var line = cm.getLine(cur.line);\n      var idx = cur.ch;\n\n      // Seek to first word or non-whitespace character, depending on if\n      // noSymbol is true.\n      var test = noSymbol ? wordCharTest[0] : bigWordCharTest [0];\n      while (!test(line.charAt(idx))) {\n        idx++;\n        if (idx >= line.length) { return null; }\n      }\n\n      if (bigWord) {\n        test = bigWordCharTest[0];\n      } else {\n        test = wordCharTest[0];\n        if (!test(line.charAt(idx))) {\n          test = wordCharTest[1];\n        }\n      }\n\n      var end = idx, start = idx;\n      while (test(line.charAt(end)) && end < line.length) { end++; }\n      while (test(line.charAt(start)) && start >= 0) { start--; }\n      start++;\n\n      if (inclusive) {\n        // If present, include all whitespace after word.\n        // Otherwise, include all whitespace before word, except indentation.\n        var wordEnd = end;\n        while (/\\s/.test(line.charAt(end)) && end < line.length) { end++; }\n        if (wordEnd == end) {\n          var wordStart = start;\n          while (/\\s/.test(line.charAt(start - 1)) && start > 0) { start--; }\n          if (!start) { start = wordStart; }\n        }\n      }\n      return { start: Pos(cur.line, start), end: Pos(cur.line, end) };\n    }\n\n    /**\n     * Depends on the following:\n     *\n     * - editor mode should be htmlmixedmode / xml\n     * - mode/xml/xml.js should be loaded\n     * - addon/fold/xml-fold.js should be loaded\n     *\n     * If any of the above requirements are not true, this function noops.\n     *\n     * This is _NOT_ a 100% accurate implementation of vim tag text objects.\n     * The following caveats apply (based off cursory testing, I'm sure there\n     * are other discrepancies):\n     *\n     * - Does not work inside comments:\n     *   ```\n     *   <!-- <div>broken</div> -->\n     *   ```\n     * - Does not work when tags have different cases:\n     *   ```\n     *   <div>broken</DIV>\n     *   ```\n     * - Does not work when cursor is inside a broken tag:\n     *   ```\n     *   <div><brok><en></div>\n     *   ```\n     */\n    function expandTagUnderCursor(cm, head, inclusive) {\n      var cur = head;\n      if (!CodeMirror.findMatchingTag || !CodeMirror.findEnclosingTag) {\n        return { start: cur, end: cur };\n      }\n\n      var tags = CodeMirror.findMatchingTag(cm, head) || CodeMirror.findEnclosingTag(cm, head);\n      if (!tags || !tags.open || !tags.close) {\n        return { start: cur, end: cur };\n      }\n\n      if (inclusive) {\n        return { start: tags.open.from, end: tags.close.to };\n      }\n      return { start: tags.open.to, end: tags.close.from };\n    }\n\n    function recordJumpPosition(cm, oldCur, newCur) {\n      if (!cursorEqual(oldCur, newCur)) {\n        vimGlobalState.jumpList.add(cm, oldCur, newCur);\n      }\n    }\n\n    function recordLastCharacterSearch(increment, args) {\n        vimGlobalState.lastCharacterSearch.increment = increment;\n        vimGlobalState.lastCharacterSearch.forward = args.forward;\n        vimGlobalState.lastCharacterSearch.selectedCharacter = args.selectedCharacter;\n    }\n\n    var symbolToMode = {\n        '(': 'bracket', ')': 'bracket', '{': 'bracket', '}': 'bracket',\n        '[': 'section', ']': 'section',\n        '*': 'comment', '/': 'comment',\n        'm': 'method', 'M': 'method',\n        '#': 'preprocess'\n    };\n    var findSymbolModes = {\n      bracket: {\n        isComplete: function(state) {\n          if (state.nextCh === state.symb) {\n            state.depth++;\n            if (state.depth >= 1)return true;\n          } else if (state.nextCh === state.reverseSymb) {\n            state.depth--;\n          }\n          return false;\n        }\n      },\n      section: {\n        init: function(state) {\n          state.curMoveThrough = true;\n          state.symb = (state.forward ? ']' : '[') === state.symb ? '{' : '}';\n        },\n        isComplete: function(state) {\n          return state.index === 0 && state.nextCh === state.symb;\n        }\n      },\n      comment: {\n        isComplete: function(state) {\n          var found = state.lastCh === '*' && state.nextCh === '/';\n          state.lastCh = state.nextCh;\n          return found;\n        }\n      },\n      // TODO: The original Vim implementation only operates on level 1 and 2.\n      // The current implementation doesn't check for code block level and\n      // therefore it operates on any levels.\n      method: {\n        init: function(state) {\n          state.symb = (state.symb === 'm' ? '{' : '}');\n          state.reverseSymb = state.symb === '{' ? '}' : '{';\n        },\n        isComplete: function(state) {\n          if (state.nextCh === state.symb)return true;\n          return false;\n        }\n      },\n      preprocess: {\n        init: function(state) {\n          state.index = 0;\n        },\n        isComplete: function(state) {\n          if (state.nextCh === '#') {\n            var token = state.lineText.match(/^#(\\w+)/)[1];\n            if (token === 'endif') {\n              if (state.forward && state.depth === 0) {\n                return true;\n              }\n              state.depth++;\n            } else if (token === 'if') {\n              if (!state.forward && state.depth === 0) {\n                return true;\n              }\n              state.depth--;\n            }\n            if (token === 'else' && state.depth === 0)return true;\n          }\n          return false;\n        }\n      }\n    };\n    function findSymbol(cm, repeat, forward, symb) {\n      var cur = copyCursor(cm.getCursor());\n      var increment = forward ? 1 : -1;\n      var endLine = forward ? cm.lineCount() : -1;\n      var curCh = cur.ch;\n      var line = cur.line;\n      var lineText = cm.getLine(line);\n      var state = {\n        lineText: lineText,\n        nextCh: lineText.charAt(curCh),\n        lastCh: null,\n        index: curCh,\n        symb: symb,\n        reverseSymb: (forward ?  { ')': '(', '}': '{' } : { '(': ')', '{': '}' })[symb],\n        forward: forward,\n        depth: 0,\n        curMoveThrough: false\n      };\n      var mode = symbolToMode[symb];\n      if (!mode)return cur;\n      var init = findSymbolModes[mode].init;\n      var isComplete = findSymbolModes[mode].isComplete;\n      if (init) { init(state); }\n      while (line !== endLine && repeat) {\n        state.index += increment;\n        state.nextCh = state.lineText.charAt(state.index);\n        if (!state.nextCh) {\n          line += increment;\n          state.lineText = cm.getLine(line) || '';\n          if (increment > 0) {\n            state.index = 0;\n          } else {\n            var lineLen = state.lineText.length;\n            state.index = (lineLen > 0) ? (lineLen-1) : 0;\n          }\n          state.nextCh = state.lineText.charAt(state.index);\n        }\n        if (isComplete(state)) {\n          cur.line = line;\n          cur.ch = state.index;\n          repeat--;\n        }\n      }\n      if (state.nextCh || state.curMoveThrough) {\n        return Pos(line, state.index);\n      }\n      return cur;\n    }\n\n    /*\n     * Returns the boundaries of the next word. If the cursor in the middle of\n     * the word, then returns the boundaries of the current word, starting at\n     * the cursor. If the cursor is at the start/end of a word, and we are going\n     * forward/backward, respectively, find the boundaries of the next word.\n     *\n     * @param {CodeMirror} cm CodeMirror object.\n     * @param {Cursor} cur The cursor position.\n     * @param {boolean} forward True to search forward. False to search\n     *     backward.\n     * @param {boolean} bigWord True if punctuation count as part of the word.\n     *     False if only [a-zA-Z0-9] characters count as part of the word.\n     * @param {boolean} emptyLineIsWord True if empty lines should be treated\n     *     as words.\n     * @return {Object{from:number, to:number, line: number}} The boundaries of\n     *     the word, or null if there are no more words.\n     */\n    function findWord(cm, cur, forward, bigWord, emptyLineIsWord) {\n      var lineNum = cur.line;\n      var pos = cur.ch;\n      var line = cm.getLine(lineNum);\n      var dir = forward ? 1 : -1;\n      var charTests = bigWord ? bigWordCharTest: wordCharTest;\n\n      if (emptyLineIsWord && line == '') {\n        lineNum += dir;\n        line = cm.getLine(lineNum);\n        if (!isLine(cm, lineNum)) {\n          return null;\n        }\n        pos = (forward) ? 0 : line.length;\n      }\n\n      while (true) {\n        if (emptyLineIsWord && line == '') {\n          return { from: 0, to: 0, line: lineNum };\n        }\n        var stop = (dir > 0) ? line.length : -1;\n        var wordStart = stop, wordEnd = stop;\n        // Find bounds of next word.\n        while (pos != stop) {\n          var foundWord = false;\n          for (var i = 0; i < charTests.length && !foundWord; ++i) {\n            if (charTests[i](line.charAt(pos))) {\n              wordStart = pos;\n              // Advance to end of word.\n              while (pos != stop && charTests[i](line.charAt(pos))) {\n                pos += dir;\n              }\n              wordEnd = pos;\n              foundWord = wordStart != wordEnd;\n              if (wordStart == cur.ch && lineNum == cur.line &&\n                  wordEnd == wordStart + dir) {\n                // We started at the end of a word. Find the next one.\n                continue;\n              } else {\n                return {\n                  from: Math.min(wordStart, wordEnd + 1),\n                  to: Math.max(wordStart, wordEnd),\n                  line: lineNum };\n              }\n            }\n          }\n          if (!foundWord) {\n            pos += dir;\n          }\n        }\n        // Advance to next/prev line.\n        lineNum += dir;\n        if (!isLine(cm, lineNum)) {\n          return null;\n        }\n        line = cm.getLine(lineNum);\n        pos = (dir > 0) ? 0 : line.length;\n      }\n    }\n\n    /**\n     * @param {CodeMirror} cm CodeMirror object.\n     * @param {Pos} cur The position to start from.\n     * @param {int} repeat Number of words to move past.\n     * @param {boolean} forward True to search forward. False to search\n     *     backward.\n     * @param {boolean} wordEnd True to move to end of word. False to move to\n     *     beginning of word.\n     * @param {boolean} bigWord True if punctuation count as part of the word.\n     *     False if only alphabet characters count as part of the word.\n     * @return {Cursor} The position the cursor should move to.\n     */\n    function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) {\n      var curStart = copyCursor(cur);\n      var words = [];\n      if (forward && !wordEnd || !forward && wordEnd) {\n        repeat++;\n      }\n      // For 'e', empty lines are not considered words, go figure.\n      var emptyLineIsWord = !(forward && wordEnd);\n      for (var i = 0; i < repeat; i++) {\n        var word = findWord(cm, cur, forward, bigWord, emptyLineIsWord);\n        if (!word) {\n          var eodCh = lineLength(cm, cm.lastLine());\n          words.push(forward\n              ? {line: cm.lastLine(), from: eodCh, to: eodCh}\n              : {line: 0, from: 0, to: 0});\n          break;\n        }\n        words.push(word);\n        cur = Pos(word.line, forward ? (word.to - 1) : word.from);\n      }\n      var shortCircuit = words.length != repeat;\n      var firstWord = words[0];\n      var lastWord = words.pop();\n      if (forward && !wordEnd) {\n        // w\n        if (!shortCircuit && (firstWord.from != curStart.ch || firstWord.line != curStart.line)) {\n          // We did not start in the middle of a word. Discard the extra word at the end.\n          lastWord = words.pop();\n        }\n        return Pos(lastWord.line, lastWord.from);\n      } else if (forward && wordEnd) {\n        return Pos(lastWord.line, lastWord.to - 1);\n      } else if (!forward && wordEnd) {\n        // ge\n        if (!shortCircuit && (firstWord.to != curStart.ch || firstWord.line != curStart.line)) {\n          // We did not start in the middle of a word. Discard the extra word at the end.\n          lastWord = words.pop();\n        }\n        return Pos(lastWord.line, lastWord.to);\n      } else {\n        // b\n        return Pos(lastWord.line, lastWord.from);\n      }\n    }\n\n    function moveToEol(cm, head, motionArgs, vim, keepHPos) {\n      var cur = head;\n      var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity);\n      var end=cm.clipPos(retval);\n      end.ch--;\n      if (!keepHPos) {\n        vim.lastHPos = Infinity;\n        vim.lastHSPos = cm.charCoords(end,'div').left;\n      }\n      return retval;\n    }\n\n    function moveToCharacter(cm, repeat, forward, character) {\n      var cur = cm.getCursor();\n      var start = cur.ch;\n      var idx;\n      for (var i = 0; i < repeat; i ++) {\n        var line = cm.getLine(cur.line);\n        idx = charIdxInLine(start, line, character, forward, true);\n        if (idx == -1) {\n          return null;\n        }\n        start = idx;\n      }\n      return Pos(cm.getCursor().line, idx);\n    }\n\n    function moveToColumn(cm, repeat) {\n      // repeat is always >= 1, so repeat - 1 always corresponds\n      // to the column we want to go to.\n      var line = cm.getCursor().line;\n      return clipCursorToContent(cm, Pos(line, repeat - 1));\n    }\n\n    function updateMark(cm, vim, markName, pos) {\n      if (!inArray(markName, validMarks)) {\n        return;\n      }\n      if (vim.marks[markName]) {\n        vim.marks[markName].clear();\n      }\n      vim.marks[markName] = cm.setBookmark(pos);\n    }\n\n    function charIdxInLine(start, line, character, forward, includeChar) {\n      // Search for char in line.\n      // motion_options: {forward, includeChar}\n      // If includeChar = true, include it too.\n      // If forward = true, search forward, else search backwards.\n      // If char is not found on this line, do nothing\n      var idx;\n      if (forward) {\n        idx = line.indexOf(character, start + 1);\n        if (idx != -1 && !includeChar) {\n          idx -= 1;\n        }\n      } else {\n        idx = line.lastIndexOf(character, start - 1);\n        if (idx != -1 && !includeChar) {\n          idx += 1;\n        }\n      }\n      return idx;\n    }\n\n    function findParagraph(cm, head, repeat, dir, inclusive) {\n      var line = head.line;\n      var min = cm.firstLine();\n      var max = cm.lastLine();\n      var start, end, i = line;\n      function isEmpty(i) { return !cm.getLine(i); }\n      function isBoundary(i, dir, any) {\n        if (any) { return isEmpty(i) != isEmpty(i + dir); }\n        return !isEmpty(i) && isEmpty(i + dir);\n      }\n      if (dir) {\n        while (min <= i && i <= max && repeat > 0) {\n          if (isBoundary(i, dir)) { repeat--; }\n          i += dir;\n        }\n        return new Pos(i, 0);\n      }\n\n      var vim = cm.state.vim;\n      if (vim.visualLine && isBoundary(line, 1, true)) {\n        var anchor = vim.sel.anchor;\n        if (isBoundary(anchor.line, -1, true)) {\n          if (!inclusive || anchor.line != line) {\n            line += 1;\n          }\n        }\n      }\n      var startState = isEmpty(line);\n      for (i = line; i <= max && repeat; i++) {\n        if (isBoundary(i, 1, true)) {\n          if (!inclusive || isEmpty(i) != startState) {\n            repeat--;\n          }\n        }\n      }\n      end = new Pos(i, 0);\n      // select boundary before paragraph for the last one\n      if (i > max && !startState) { startState = true; }\n      else { inclusive = false; }\n      for (i = line; i > min; i--) {\n        if (!inclusive || isEmpty(i) == startState || i == line) {\n          if (isBoundary(i, -1, true)) { break; }\n        }\n      }\n      start = new Pos(i, 0);\n      return { start: start, end: end };\n    }\n\n    function findSentence(cm, cur, repeat, dir) {\n\n      /*\n        Takes an index object\n        {\n          line: the line string,\n          ln: line number,\n          pos: index in line,\n          dir: direction of traversal (-1 or 1)\n        }\n        and modifies the line, ln, and pos members to represent the\n        next valid position or sets them to null if there are\n        no more valid positions.\n       */\n      function nextChar(cm, idx) {\n        if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {\n          idx.ln += idx.dir;\n          if (!isLine(cm, idx.ln)) {\n            idx.line = null;\n            idx.ln = null;\n            idx.pos = null;\n            return;\n          }\n          idx.line = cm.getLine(idx.ln);\n          idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;\n        }\n        else {\n          idx.pos += idx.dir;\n        }\n      }\n\n      /*\n        Performs one iteration of traversal in forward direction\n        Returns an index object of the new location\n       */\n      function forward(cm, ln, pos, dir) {\n        var line = cm.getLine(ln);\n        var stop = (line === \"\");\n\n        var curr = {\n          line: line,\n          ln: ln,\n          pos: pos,\n          dir: dir,\n        }\n\n        var last_valid = {\n          ln: curr.ln,\n          pos: curr.pos,\n        }\n\n        var skip_empty_lines = (curr.line === \"\");\n\n        // Move one step to skip character we start on\n        nextChar(cm, curr);\n\n        while (curr.line !== null) {\n          last_valid.ln = curr.ln;\n          last_valid.pos = curr.pos;\n\n          if (curr.line === \"\" && !skip_empty_lines) {\n            return { ln: curr.ln, pos: curr.pos, };\n          }\n          else if (stop && curr.line !== \"\" && !isWhiteSpaceString(curr.line[curr.pos])) {\n            return { ln: curr.ln, pos: curr.pos, };\n          }\n          else if (isEndOfSentenceSymbol(curr.line[curr.pos])\n            && !stop\n            && (curr.pos === curr.line.length - 1\n              || isWhiteSpaceString(curr.line[curr.pos + 1]))) {\n            stop = true;\n          }\n\n          nextChar(cm, curr);\n        }\n\n        /*\n          Set the position to the last non whitespace character on the last\n          valid line in the case that we reach the end of the document.\n        */\n        var line = cm.getLine(last_valid.ln);\n        last_valid.pos = 0;\n        for(var i = line.length - 1; i >= 0; --i) {\n          if (!isWhiteSpaceString(line[i])) {\n            last_valid.pos = i;\n            break;\n          }\n        }\n\n        return last_valid;\n\n      }\n\n      /*\n        Performs one iteration of traversal in reverse direction\n        Returns an index object of the new location\n       */\n      function reverse(cm, ln, pos, dir) {\n        var line = cm.getLine(ln);\n\n        var curr = {\n          line: line,\n          ln: ln,\n          pos: pos,\n          dir: dir,\n        }\n\n        var last_valid = {\n          ln: curr.ln,\n          pos: null,\n        };\n\n        var skip_empty_lines = (curr.line === \"\");\n\n        // Move one step to skip character we start on\n        nextChar(cm, curr);\n\n        while (curr.line !== null) {\n\n          if (curr.line === \"\" && !skip_empty_lines) {\n            if (last_valid.pos !== null) {\n              return last_valid;\n            }\n            else {\n              return { ln: curr.ln, pos: curr.pos };\n            }\n          }\n          else if (isEndOfSentenceSymbol(curr.line[curr.pos])\n              && last_valid.pos !== null\n              && !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {\n            return last_valid;\n          }\n          else if (curr.line !== \"\" && !isWhiteSpaceString(curr.line[curr.pos])) {\n            skip_empty_lines = false;\n            last_valid = { ln: curr.ln, pos: curr.pos }\n          }\n\n          nextChar(cm, curr);\n        }\n\n        /*\n          Set the position to the first non whitespace character on the last\n          valid line in the case that we reach the beginning of the document.\n        */\n        var line = cm.getLine(last_valid.ln);\n        last_valid.pos = 0;\n        for(var i = 0; i < line.length; ++i) {\n          if (!isWhiteSpaceString(line[i])) {\n            last_valid.pos = i;\n            break;\n          }\n        }\n        return last_valid;\n      }\n\n      var curr_index = {\n        ln: cur.line,\n        pos: cur.ch,\n      };\n\n      while (repeat > 0) {\n        if (dir < 0) {\n          curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);\n        }\n        else {\n          curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);\n        }\n        repeat--;\n      }\n\n      return Pos(curr_index.ln, curr_index.pos);\n    }\n\n    // TODO: perhaps this finagling of start and end positions belongs\n    // in codemirror/replaceRange?\n    function selectCompanionObject(cm, head, symb, inclusive) {\n      var cur = head, start, end;\n\n      var bracketRegexp = ({\n        '(': /[()]/, ')': /[()]/,\n        '[': /[[\\]]/, ']': /[[\\]]/,\n        '{': /[{}]/, '}': /[{}]/,\n        '<': /[<>]/, '>': /[<>]/})[symb];\n      var openSym = ({\n        '(': '(', ')': '(',\n        '[': '[', ']': '[',\n        '{': '{', '}': '{',\n        '<': '<', '>': '<'})[symb];\n      var curChar = cm.getLine(cur.line).charAt(cur.ch);\n      // Due to the behavior of scanForBracket, we need to add an offset if the\n      // cursor is on a matching open bracket.\n      var offset = curChar === openSym ? 1 : 0;\n\n      start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});\n      end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});\n\n      if (!start || !end) {\n        return { start: cur, end: cur };\n      }\n\n      start = start.pos;\n      end = end.pos;\n\n      if ((start.line == end.line && start.ch > end.ch)\n          || (start.line > end.line)) {\n        var tmp = start;\n        start = end;\n        end = tmp;\n      }\n\n      if (inclusive) {\n        end.ch += 1;\n      } else {\n        start.ch += 1;\n      }\n\n      return { start: start, end: end };\n    }\n\n    // Takes in a symbol and a cursor and tries to simulate text objects that\n    // have identical opening and closing symbols\n    // TODO support across multiple lines\n    function findBeginningAndEnd(cm, head, symb, inclusive) {\n      var cur = copyCursor(head);\n      var line = cm.getLine(cur.line);\n      var chars = line.split('');\n      var start, end, i, len;\n      var firstIndex = chars.indexOf(symb);\n\n      // the decision tree is to always look backwards for the beginning first,\n      // but if the cursor is in front of the first instance of the symb,\n      // then move the cursor forward\n      if (cur.ch < firstIndex) {\n        cur.ch = firstIndex;\n        // Why is this line even here???\n        // cm.setCursor(cur.line, firstIndex+1);\n      }\n      // otherwise if the cursor is currently on the closing symbol\n      else if (firstIndex < cur.ch && chars[cur.ch] == symb) {\n        end = cur.ch; // assign end to the current cursor\n        --cur.ch; // make sure to look backwards\n      }\n\n      // if we're currently on the symbol, we've got a start\n      if (chars[cur.ch] == symb && !end) {\n        start = cur.ch + 1; // assign start to ahead of the cursor\n      } else {\n        // go backwards to find the start\n        for (i = cur.ch; i > -1 && !start; i--) {\n          if (chars[i] == symb) {\n            start = i + 1;\n          }\n        }\n      }\n\n      // look forwards for the end symbol\n      if (start && !end) {\n        for (i = start, len = chars.length; i < len && !end; i++) {\n          if (chars[i] == symb) {\n            end = i;\n          }\n        }\n      }\n\n      // nothing found\n      if (!start || !end) {\n        return { start: cur, end: cur };\n      }\n\n      // include the symbols\n      if (inclusive) {\n        --start; ++end;\n      }\n\n      return {\n        start: Pos(cur.line, start),\n        end: Pos(cur.line, end)\n      };\n    }\n\n    // Search functions\n    defineOption('pcre', true, 'boolean');\n    function SearchState() {}\n    SearchState.prototype = {\n      getQuery: function() {\n        return vimGlobalState.query;\n      },\n      setQuery: function(query) {\n        vimGlobalState.query = query;\n      },\n      getOverlay: function() {\n        return this.searchOverlay;\n      },\n      setOverlay: function(overlay) {\n        this.searchOverlay = overlay;\n      },\n      isReversed: function() {\n        return vimGlobalState.isReversed;\n      },\n      setReversed: function(reversed) {\n        vimGlobalState.isReversed = reversed;\n      },\n      getScrollbarAnnotate: function() {\n        return this.annotate;\n      },\n      setScrollbarAnnotate: function(annotate) {\n        this.annotate = annotate;\n      }\n    };\n    function getSearchState(cm) {\n      var vim = cm.state.vim;\n      return vim.searchState_ || (vim.searchState_ = new SearchState());\n    }\n    function splitBySlash(argString) {\n      return splitBySeparator(argString, '/');\n    }\n\n    function findUnescapedSlashes(argString) {\n      return findUnescapedSeparators(argString, '/');\n    }\n\n    function splitBySeparator(argString, separator) {\n      var slashes = findUnescapedSeparators(argString, separator) || [];\n      if (!slashes.length) return [];\n      var tokens = [];\n      // in case of strings like foo/bar\n      if (slashes[0] !== 0) return;\n      for (var i = 0; i < slashes.length; i++) {\n        if (typeof slashes[i] == 'number')\n          tokens.push(argString.substring(slashes[i] + 1, slashes[i+1]));\n      }\n      return tokens;\n    }\n\n    function findUnescapedSeparators(str, separator) {\n      if (!separator)\n        separator = '/';\n\n      var escapeNextChar = false;\n      var slashes = [];\n      for (var i = 0; i < str.length; i++) {\n        var c = str.charAt(i);\n        if (!escapeNextChar && c == separator) {\n          slashes.push(i);\n        }\n        escapeNextChar = !escapeNextChar && (c == '\\\\');\n      }\n      return slashes;\n    }\n\n    // Translates a search string from ex (vim) syntax into javascript form.\n    function translateRegex(str) {\n      // When these match, add a '\\' if unescaped or remove one if escaped.\n      var specials = '|(){';\n      // Remove, but never add, a '\\' for these.\n      var unescape = '}';\n      var escapeNextChar = false;\n      var out = [];\n      for (var i = -1; i < str.length; i++) {\n        var c = str.charAt(i) || '';\n        var n = str.charAt(i+1) || '';\n        var specialComesNext = (n && specials.indexOf(n) != -1);\n        if (escapeNextChar) {\n          if (c !== '\\\\' || !specialComesNext) {\n            out.push(c);\n          }\n          escapeNextChar = false;\n        } else {\n          if (c === '\\\\') {\n            escapeNextChar = true;\n            // Treat the unescape list as special for removing, but not adding '\\'.\n            if (n && unescape.indexOf(n) != -1) {\n              specialComesNext = true;\n            }\n            // Not passing this test means removing a '\\'.\n            if (!specialComesNext || n === '\\\\') {\n              out.push(c);\n            }\n          } else {\n            out.push(c);\n            if (specialComesNext && n !== '\\\\') {\n              out.push('\\\\');\n            }\n          }\n        }\n      }\n      return out.join('');\n    }\n\n    // Translates the replace part of a search and replace from ex (vim) syntax into\n    // javascript form.  Similar to translateRegex, but additionally fixes back references\n    // (translates '\\[0..9]' to '$[0..9]') and follows different rules for escaping '$'.\n    var charUnescapes = {'\\\\n': '\\n', '\\\\r': '\\r', '\\\\t': '\\t'};\n    function translateRegexReplace(str) {\n      var escapeNextChar = false;\n      var out = [];\n      for (var i = -1; i < str.length; i++) {\n        var c = str.charAt(i) || '';\n        var n = str.charAt(i+1) || '';\n        if (charUnescapes[c + n]) {\n          out.push(charUnescapes[c+n]);\n          i++;\n        } else if (escapeNextChar) {\n          // At any point in the loop, escapeNextChar is true if the previous\n          // character was a '\\' and was not escaped.\n          out.push(c);\n          escapeNextChar = false;\n        } else {\n          if (c === '\\\\') {\n            escapeNextChar = true;\n            if ((isNumber(n) || n === '$')) {\n              out.push('$');\n            } else if (n !== '/' && n !== '\\\\') {\n              out.push('\\\\');\n            }\n          } else {\n            if (c === '$') {\n              out.push('$');\n            }\n            out.push(c);\n            if (n === '/') {\n              out.push('\\\\');\n            }\n          }\n        }\n      }\n      return out.join('');\n    }\n\n    // Unescape \\ and / in the replace part, for PCRE mode.\n    var unescapes = {'\\\\/': '/', '\\\\\\\\': '\\\\', '\\\\n': '\\n', '\\\\r': '\\r', '\\\\t': '\\t', '\\\\&':'&'};\n    function unescapeRegexReplace(str) {\n      var stream = new CodeMirror.StringStream(str);\n      var output = [];\n      while (!stream.eol()) {\n        // Search for \\.\n        while (stream.peek() && stream.peek() != '\\\\') {\n          output.push(stream.next());\n        }\n        var matched = false;\n        for (var matcher in unescapes) {\n          if (stream.match(matcher, true)) {\n            matched = true;\n            output.push(unescapes[matcher]);\n            break;\n          }\n        }\n        if (!matched) {\n          // Don't change anything\n          output.push(stream.next());\n        }\n      }\n      return output.join('');\n    }\n\n    /**\n     * Extract the regular expression from the query and return a Regexp object.\n     * Returns null if the query is blank.\n     * If ignoreCase is passed in, the Regexp object will have the 'i' flag set.\n     * If smartCase is passed in, and the query contains upper case letters,\n     *   then ignoreCase is overridden, and the 'i' flag will not be set.\n     * If the query contains the /i in the flag part of the regular expression,\n     *   then both ignoreCase and smartCase are ignored, and 'i' will be passed\n     *   through to the Regex object.\n     */\n    function parseQuery(query, ignoreCase, smartCase) {\n      // First update the last search register\n      var lastSearchRegister = vimGlobalState.registerController.getRegister('/');\n      lastSearchRegister.setText(query);\n      // Check if the query is already a regex.\n      if (query instanceof RegExp) { return query; }\n      // First try to extract regex + flags from the input. If no flags found,\n      // extract just the regex. IE does not accept flags directly defined in\n      // the regex string in the form /regex/flags\n      var slashes = findUnescapedSlashes(query);\n      var regexPart;\n      var forceIgnoreCase;\n      if (!slashes.length) {\n        // Query looks like 'regexp'\n        regexPart = query;\n      } else {\n        // Query looks like 'regexp/...'\n        regexPart = query.substring(0, slashes[0]);\n        var flagsPart = query.substring(slashes[0]);\n        forceIgnoreCase = (flagsPart.indexOf('i') != -1);\n      }\n      if (!regexPart) {\n        return null;\n      }\n      if (!getOption('pcre')) {\n        regexPart = translateRegex(regexPart);\n      }\n      if (smartCase) {\n        ignoreCase = (/^[^A-Z]*$/).test(regexPart);\n      }\n      var regexp = new RegExp(regexPart,\n          (ignoreCase || forceIgnoreCase) ? 'i' : undefined);\n      return regexp;\n    }\n\n    /**\n     * dom - Document Object Manipulator\n     * Usage:\n     *   dom('<tag>'|<node>[, ...{<attributes>|<$styles>}|<child-node>|'<text>'])\n     * Examples:\n     *   dom('div', {id:'xyz'}, dom('p', 'CM rocks!', {$color:'red'}))\n     *   dom(document.head, dom('script', 'alert(\"hello!\")'))\n     * Not supported:\n     *   dom('p', ['arrays are objects'], Error('objects specify attributes'))\n     */\n    function dom(n) {\n      if (typeof n === 'string') n = document.createElement(n);\n      for (var a, i = 1; i < arguments.length; i++) {\n        if (!(a = arguments[i])) continue;\n        if (typeof a !== 'object') a = document.createTextNode(a);\n        if (a.nodeType) n.appendChild(a);\n        else for (var key in a) {\n          if (!Object.prototype.hasOwnProperty.call(a, key)) continue;\n          if (key[0] === '$') n.style[key.slice(1)] = a[key];\n          else n.setAttribute(key, a[key]);\n        }\n      }\n      return n;\n    }\n\n    function showConfirm(cm, template) {\n      var pre = dom('pre', {$color: 'red'}, template);\n      if (cm.openNotification) {\n        cm.openNotification(pre, {bottom: true, duration: 5000});\n      } else {\n        alert(pre.innerText);\n      }\n    }\n\n    function makePrompt(prefix, desc) {\n      return dom(document.createDocumentFragment(),\n               dom('span', {$fontFamily: 'monospace', $whiteSpace: 'pre'},\n                 prefix,\n                 dom('input', {type: 'text', autocorrect: 'off',\n                               autocapitalize: 'off', spellcheck: 'false'})),\n               desc && dom('span', {$color: '#888'}, desc));\n    }\n\n    function showPrompt(cm, options) {\n      var shortText = (options.prefix || '') + ' ' + (options.desc || '');\n      var template = makePrompt(options.prefix, options.desc);\n      if (cm.openDialog) {\n        cm.openDialog(template, options.onClose, {\n          onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,\n          bottom: true, selectValueOnOpen: false, value: options.value\n        });\n      }\n      else {\n        options.onClose(prompt(shortText, ''));\n      }\n    }\n\n    function regexEqual(r1, r2) {\n      if (r1 instanceof RegExp && r2 instanceof RegExp) {\n          var props = ['global', 'multiline', 'ignoreCase', 'source'];\n          for (var i = 0; i < props.length; i++) {\n              var prop = props[i];\n              if (r1[prop] !== r2[prop]) {\n                  return false;\n              }\n          }\n          return true;\n      }\n      return false;\n    }\n    // Returns true if the query is valid.\n    function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) {\n      if (!rawQuery) {\n        return;\n      }\n      var state = getSearchState(cm);\n      var query = parseQuery(rawQuery, !!ignoreCase, !!smartCase);\n      if (!query) {\n        return;\n      }\n      highlightSearchMatches(cm, query);\n      if (regexEqual(query, state.getQuery())) {\n        return query;\n      }\n      state.setQuery(query);\n      return query;\n    }\n    function searchOverlay(query) {\n      if (query.source.charAt(0) == '^') {\n        var matchSol = true;\n      }\n      return {\n        token: function(stream) {\n          if (matchSol && !stream.sol()) {\n            stream.skipToEnd();\n            return;\n          }\n          var match = stream.match(query, false);\n          if (match) {\n            if (match[0].length == 0) {\n              // Matched empty string, skip to next.\n              stream.next();\n              return 'searching';\n            }\n            if (!stream.sol()) {\n              // Backtrack 1 to match \\b\n              stream.backUp(1);\n              if (!query.exec(stream.next() + match[0])) {\n                stream.next();\n                return null;\n              }\n            }\n            stream.match(query);\n            return 'searching';\n          }\n          while (!stream.eol()) {\n            stream.next();\n            if (stream.match(query, false)) break;\n          }\n        },\n        query: query\n      };\n    }\n    var highlightTimeout = 0;\n    function highlightSearchMatches(cm, query) {\n      clearTimeout(highlightTimeout);\n      highlightTimeout = setTimeout(function() {\n        var searchState = getSearchState(cm);\n        var overlay = searchState.getOverlay();\n        if (!overlay || query != overlay.query) {\n          if (overlay) {\n            cm.removeOverlay(overlay);\n          }\n          overlay = searchOverlay(query);\n          cm.addOverlay(overlay);\n          if (cm.showMatchesOnScrollbar) {\n            if (searchState.getScrollbarAnnotate()) {\n              searchState.getScrollbarAnnotate().clear();\n            }\n            searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query));\n          }\n          searchState.setOverlay(overlay);\n        }\n      }, 50);\n    }\n    function findNext(cm, prev, query, repeat) {\n      if (repeat === undefined) { repeat = 1; }\n      return cm.operation(function() {\n        var pos = cm.getCursor();\n        var cursor = cm.getSearchCursor(query, pos);\n        for (var i = 0; i < repeat; i++) {\n          var found = cursor.find(prev);\n          if (i == 0 && found && cursorEqual(cursor.from(), pos)) { found = cursor.find(prev); }\n          if (!found) {\n            // SearchCursor may have returned null because it hit EOF, wrap\n            // around and try again.\n            cursor = cm.getSearchCursor(query,\n                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );\n            if (!cursor.find(prev)) {\n              return;\n            }\n          }\n        }\n        return cursor.from();\n      });\n    }\n    /**\n     * Pretty much the same as `findNext`, except for the following differences:\n     *\n     * 1. Before starting the search, move to the previous search. This way if our cursor is\n     * already inside a match, we should return the current match.\n     * 2. Rather than only returning the cursor's from, we return the cursor's from and to as a tuple.\n     */\n    function findNextFromAndToInclusive(cm, prev, query, repeat, vim) {\n      if (repeat === undefined) { repeat = 1; }\n      return cm.operation(function() {\n        var pos = cm.getCursor();\n        var cursor = cm.getSearchCursor(query, pos);\n\n        // Go back one result to ensure that if the cursor is currently a match, we keep it.\n        var found = cursor.find(!prev);\n\n        // If we haven't moved, go back one more (similar to if i==0 logic in findNext).\n        if (!vim.visualMode && found && cursorEqual(cursor.from(), pos)) {\n          cursor.find(!prev);\n        }\n\n        for (var i = 0; i < repeat; i++) {\n          found = cursor.find(prev);\n          if (!found) {\n            // SearchCursor may have returned null because it hit EOF, wrap\n            // around and try again.\n            cursor = cm.getSearchCursor(query,\n                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );\n            if (!cursor.find(prev)) {\n              return;\n            }\n          }\n        }\n        return [cursor.from(), cursor.to()];\n      });\n    }\n    function clearSearchHighlight(cm) {\n      var state = getSearchState(cm);\n      cm.removeOverlay(getSearchState(cm).getOverlay());\n      state.setOverlay(null);\n      if (state.getScrollbarAnnotate()) {\n        state.getScrollbarAnnotate().clear();\n        state.setScrollbarAnnotate(null);\n      }\n    }\n    /**\n     * Check if pos is in the specified range, INCLUSIVE.\n     * Range can be specified with 1 or 2 arguments.\n     * If the first range argument is an array, treat it as an array of line\n     * numbers. Match pos against any of the lines.\n     * If the first range argument is a number,\n     *   if there is only 1 range argument, check if pos has the same line\n     *       number\n     *   if there are 2 range arguments, then check if pos is in between the two\n     *       range arguments.\n     */\n    function isInRange(pos, start, end) {\n      if (typeof pos != 'number') {\n        // Assume it is a cursor position. Get the line number.\n        pos = pos.line;\n      }\n      if (start instanceof Array) {\n        return inArray(pos, start);\n      } else {\n        if (typeof end == 'number') {\n          return (pos >= start && pos <= end);\n        } else {\n          return pos == start;\n        }\n      }\n    }\n    function getUserVisibleLines(cm) {\n      var scrollInfo = cm.getScrollInfo();\n      var occludeToleranceTop = 6;\n      var occludeToleranceBottom = 10;\n      var from = cm.coordsChar({left:0, top: occludeToleranceTop + scrollInfo.top}, 'local');\n      var bottomY = scrollInfo.clientHeight - occludeToleranceBottom + scrollInfo.top;\n      var to = cm.coordsChar({left:0, top: bottomY}, 'local');\n      return {top: from.line, bottom: to.line};\n    }\n\n    function getMarkPos(cm, vim, markName) {\n      if (markName == '\\'' || markName == '`') {\n        return vimGlobalState.jumpList.find(cm, -1) || Pos(0, 0);\n      } else if (markName == '.') {\n        return getLastEditPos(cm);\n      }\n\n      var mark = vim.marks[markName];\n      return mark && mark.find();\n    }\n\n    function getLastEditPos(cm) {\n      var done = cm.doc.history.done;\n      for (var i = done.length; i--;) {\n        if (done[i].changes) {\n          return copyCursor(done[i].changes[0].to);\n        }\n      }\n    }\n\n    var ExCommandDispatcher = function() {\n      this.buildCommandMap_();\n    };\n    ExCommandDispatcher.prototype = {\n      processCommand: function(cm, input, opt_params) {\n        var that = this;\n        cm.operation(function () {\n          cm.curOp.isVimOp = true;\n          that._processCommand(cm, input, opt_params);\n        });\n      },\n      _processCommand: function(cm, input, opt_params) {\n        var vim = cm.state.vim;\n        var commandHistoryRegister = vimGlobalState.registerController.getRegister(':');\n        var previousCommand = commandHistoryRegister.toString();\n        if (vim.visualMode) {\n          exitVisualMode(cm);\n        }\n        var inputStream = new CodeMirror.StringStream(input);\n        // update \": with the latest command whether valid or invalid\n        commandHistoryRegister.setText(input);\n        var params = opt_params || {};\n        params.input = input;\n        try {\n          this.parseInput_(cm, inputStream, params);\n        } catch(e) {\n          showConfirm(cm, e.toString());\n          throw e;\n        }\n        var command;\n        var commandName;\n        if (!params.commandName) {\n          // If only a line range is defined, move to the line.\n          if (params.line !== undefined) {\n            commandName = 'move';\n          }\n        } else {\n          command = this.matchCommand_(params.commandName);\n          if (command) {\n            commandName = command.name;\n            if (command.excludeFromCommandHistory) {\n              commandHistoryRegister.setText(previousCommand);\n            }\n            this.parseCommandArgs_(inputStream, params, command);\n            if (command.type == 'exToKey') {\n              // Handle Ex to Key mapping.\n              for (var i = 0; i < command.toKeys.length; i++) {\n                CodeMirror.Vim.handleKey(cm, command.toKeys[i], 'mapping');\n              }\n              return;\n            } else if (command.type == 'exToEx') {\n              // Handle Ex to Ex mapping.\n              this.processCommand(cm, command.toInput);\n              return;\n            }\n          }\n        }\n        if (!commandName) {\n          showConfirm(cm, 'Not an editor command \":' + input + '\"');\n          return;\n        }\n        try {\n          exCommands[commandName](cm, params);\n          // Possibly asynchronous commands (e.g. substitute, which might have a\n          // user confirmation), are responsible for calling the callback when\n          // done. All others have it taken care of for them here.\n          if ((!command || !command.possiblyAsync) && params.callback) {\n            params.callback();\n          }\n        } catch(e) {\n          showConfirm(cm, e.toString());\n          throw e;\n        }\n      },\n      parseInput_: function(cm, inputStream, result) {\n        inputStream.eatWhile(':');\n        // Parse range.\n        if (inputStream.eat('%')) {\n          result.line = cm.firstLine();\n          result.lineEnd = cm.lastLine();\n        } else {\n          result.line = this.parseLineSpec_(cm, inputStream);\n          if (result.line !== undefined && inputStream.eat(',')) {\n            result.lineEnd = this.parseLineSpec_(cm, inputStream);\n          }\n        }\n\n        // Parse command name.\n        var commandMatch = inputStream.match(/^(\\w+|!!|@@|[!#&*<=>@~])/);\n        if (commandMatch) {\n          result.commandName = commandMatch[1];\n        } else {\n          result.commandName = inputStream.match(/.*/)[0];\n        }\n\n        return result;\n      },\n      parseLineSpec_: function(cm, inputStream) {\n        var numberMatch = inputStream.match(/^(\\d+)/);\n        if (numberMatch) {\n          // Absolute line number plus offset (N+M or N-M) is probably a typo,\n          // not something the user actually wanted. (NB: vim does allow this.)\n          return parseInt(numberMatch[1], 10) - 1;\n        }\n        switch (inputStream.next()) {\n          case '.':\n            return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);\n          case '$':\n            return this.parseLineSpecOffset_(inputStream, cm.lastLine());\n          case '\\'':\n            var markName = inputStream.next();\n            var markPos = getMarkPos(cm, cm.state.vim, markName);\n            if (!markPos) throw new Error('Mark not set');\n            return this.parseLineSpecOffset_(inputStream, markPos.line);\n          case '-':\n          case '+':\n            inputStream.backUp(1);\n            // Offset is relative to current line if not otherwise specified.\n            return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);\n          default:\n            inputStream.backUp(1);\n            return undefined;\n        }\n      },\n      parseLineSpecOffset_: function(inputStream, line) {\n        var offsetMatch = inputStream.match(/^([+-])?(\\d+)/);\n        if (offsetMatch) {\n          var offset = parseInt(offsetMatch[2], 10);\n          if (offsetMatch[1] == \"-\") {\n            line -= offset;\n          } else {\n            line += offset;\n          }\n        }\n        return line;\n      },\n      parseCommandArgs_: function(inputStream, params, command) {\n        if (inputStream.eol()) {\n          return;\n        }\n        params.argString = inputStream.match(/.*/)[0];\n        // Parse command-line arguments\n        var delim = command.argDelimiter || /\\s+/;\n        var args = trim(params.argString).split(delim);\n        if (args.length && args[0]) {\n          params.args = args;\n        }\n      },\n      matchCommand_: function(commandName) {\n        // Return the command in the command map that matches the shortest\n        // prefix of the passed in command name. The match is guaranteed to be\n        // unambiguous if the defaultExCommandMap's shortNames are set up\n        // correctly. (see @code{defaultExCommandMap}).\n        for (var i = commandName.length; i > 0; i--) {\n          var prefix = commandName.substring(0, i);\n          if (this.commandMap_[prefix]) {\n            var command = this.commandMap_[prefix];\n            if (command.name.indexOf(commandName) === 0) {\n              return command;\n            }\n          }\n        }\n        return null;\n      },\n      buildCommandMap_: function() {\n        this.commandMap_ = {};\n        for (var i = 0; i < defaultExCommandMap.length; i++) {\n          var command = defaultExCommandMap[i];\n          var key = command.shortName || command.name;\n          this.commandMap_[key] = command;\n        }\n      },\n      map: function(lhs, rhs, ctx) {\n        if (lhs != ':' && lhs.charAt(0) == ':') {\n          if (ctx) { throw Error('Mode not supported for ex mappings'); }\n          var commandName = lhs.substring(1);\n          if (rhs != ':' && rhs.charAt(0) == ':') {\n            // Ex to Ex mapping\n            this.commandMap_[commandName] = {\n              name: commandName,\n              type: 'exToEx',\n              toInput: rhs.substring(1),\n              user: true\n            };\n          } else {\n            // Ex to key mapping\n            this.commandMap_[commandName] = {\n              name: commandName,\n              type: 'exToKey',\n              toKeys: rhs,\n              user: true\n            };\n          }\n        } else {\n          if (rhs != ':' && rhs.charAt(0) == ':') {\n            // Key to Ex mapping.\n            var mapping = {\n              keys: lhs,\n              type: 'keyToEx',\n              exArgs: { input: rhs.substring(1) }\n            };\n            if (ctx) { mapping.context = ctx; }\n            defaultKeymap.unshift(mapping);\n          } else {\n            // Key to key mapping\n            var mapping = {\n              keys: lhs,\n              type: 'keyToKey',\n              toKeys: rhs\n            };\n            if (ctx) { mapping.context = ctx; }\n            defaultKeymap.unshift(mapping);\n          }\n        }\n      },\n      unmap: function(lhs, ctx) {\n        if (lhs != ':' && lhs.charAt(0) == ':') {\n          // Ex to Ex or Ex to key mapping\n          if (ctx) { throw Error('Mode not supported for ex mappings'); }\n          var commandName = lhs.substring(1);\n          if (this.commandMap_[commandName] && this.commandMap_[commandName].user) {\n            delete this.commandMap_[commandName];\n            return;\n          }\n        } else {\n          // Key to Ex or key to key mapping\n          var keys = lhs;\n          for (var i = 0; i < defaultKeymap.length; i++) {\n            if (keys == defaultKeymap[i].keys\n                && defaultKeymap[i].context === ctx) {\n              defaultKeymap.splice(i, 1);\n              return;\n            }\n          }\n        }\n        throw Error('No such mapping.');\n      }\n    };\n\n    var exCommands = {\n      colorscheme: function(cm, params) {\n        if (!params.args || params.args.length < 1) {\n          showConfirm(cm, cm.getOption('theme'));\n          return;\n        }\n        cm.setOption('theme', params.args[0]);\n      },\n      map: function(cm, params, ctx) {\n        var mapArgs = params.args;\n        if (!mapArgs || mapArgs.length < 2) {\n          if (cm) {\n            showConfirm(cm, 'Invalid mapping: ' + params.input);\n          }\n          return;\n        }\n        exCommandDispatcher.map(mapArgs[0], mapArgs[1], ctx);\n      },\n      imap: function(cm, params) { this.map(cm, params, 'insert'); },\n      nmap: function(cm, params) { this.map(cm, params, 'normal'); },\n      vmap: function(cm, params) { this.map(cm, params, 'visual'); },\n      unmap: function(cm, params, ctx) {\n        var mapArgs = params.args;\n        if (!mapArgs || mapArgs.length < 1) {\n          if (cm) {\n            showConfirm(cm, 'No such mapping: ' + params.input);\n          }\n          return;\n        }\n        exCommandDispatcher.unmap(mapArgs[0], ctx);\n      },\n      move: function(cm, params) {\n        commandDispatcher.processCommand(cm, cm.state.vim, {\n            type: 'motion',\n            motion: 'moveToLineOrEdgeOfDocument',\n            motionArgs: { forward: false, explicitRepeat: true,\n              linewise: true },\n            repeatOverride: params.line+1});\n      },\n      set: function(cm, params) {\n        var setArgs = params.args;\n        // Options passed through to the setOption/getOption calls. May be passed in by the\n        // local/global versions of the set command\n        var setCfg = params.setCfg || {};\n        if (!setArgs || setArgs.length < 1) {\n          if (cm) {\n            showConfirm(cm, 'Invalid mapping: ' + params.input);\n          }\n          return;\n        }\n        var expr = setArgs[0].split('=');\n        var optionName = expr[0];\n        var value = expr[1];\n        var forceGet = false;\n\n        if (optionName.charAt(optionName.length - 1) == '?') {\n          // If post-fixed with ?, then the set is actually a get.\n          if (value) { throw Error('Trailing characters: ' + params.argString); }\n          optionName = optionName.substring(0, optionName.length - 1);\n          forceGet = true;\n        }\n        if (value === undefined && optionName.substring(0, 2) == 'no') {\n          // To set boolean options to false, the option name is prefixed with\n          // 'no'.\n          optionName = optionName.substring(2);\n          value = false;\n        }\n\n        var optionIsBoolean = options[optionName] && options[optionName].type == 'boolean';\n        if (optionIsBoolean && value == undefined) {\n          // Calling set with a boolean option sets it to true.\n          value = true;\n        }\n        // If no value is provided, then we assume this is a get.\n        if (!optionIsBoolean && value === undefined || forceGet) {\n          var oldValue = getOption(optionName, cm, setCfg);\n          if (oldValue instanceof Error) {\n            showConfirm(cm, oldValue.message);\n          } else if (oldValue === true || oldValue === false) {\n            showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);\n          } else {\n            showConfirm(cm, '  ' + optionName + '=' + oldValue);\n          }\n        } else {\n          var setOptionReturn = setOption(optionName, value, cm, setCfg);\n          if (setOptionReturn instanceof Error) {\n            showConfirm(cm, setOptionReturn.message);\n          }\n        }\n      },\n      setlocal: function (cm, params) {\n        // setCfg is passed through to setOption\n        params.setCfg = {scope: 'local'};\n        this.set(cm, params);\n      },\n      setglobal: function (cm, params) {\n        // setCfg is passed through to setOption\n        params.setCfg = {scope: 'global'};\n        this.set(cm, params);\n      },\n      registers: function(cm, params) {\n        var regArgs = params.args;\n        var registers = vimGlobalState.registerController.registers;\n        var regInfo = '----------Registers----------\\n\\n';\n        if (!regArgs) {\n          for (var registerName in registers) {\n            var text = registers[registerName].toString();\n            if (text.length) {\n              regInfo += '\"' + registerName + '    ' + text + '\\n'\n            }\n          }\n        } else {\n          var registerName;\n          regArgs = regArgs.join('');\n          for (var i = 0; i < regArgs.length; i++) {\n            registerName = regArgs.charAt(i);\n            if (!vimGlobalState.registerController.isValidRegister(registerName)) {\n              continue;\n            }\n            var register = registers[registerName] || new Register();\n            regInfo += '\"' + registerName + '    ' + register.toString() + '\\n'\n          }\n        }\n        showConfirm(cm, regInfo);\n      },\n      sort: function(cm, params) {\n        var reverse, ignoreCase, unique, number, pattern;\n        function parseArgs() {\n          if (params.argString) {\n            var args = new CodeMirror.StringStream(params.argString);\n            if (args.eat('!')) { reverse = true; }\n            if (args.eol()) { return; }\n            if (!args.eatSpace()) { return 'Invalid arguments'; }\n            var opts = args.match(/([dinuox]+)?\\s*(\\/.+\\/)?\\s*/);\n            if (!opts && !args.eol()) { return 'Invalid arguments'; }\n            if (opts[1]) {\n              ignoreCase = opts[1].indexOf('i') != -1;\n              unique = opts[1].indexOf('u') != -1;\n              var decimal = opts[1].indexOf('d') != -1 || opts[1].indexOf('n') != -1 && 1;\n              var hex = opts[1].indexOf('x') != -1 && 1;\n              var octal = opts[1].indexOf('o') != -1 && 1;\n              if (decimal + hex + octal > 1) { return 'Invalid arguments'; }\n              number = decimal && 'decimal' || hex && 'hex' || octal && 'octal';\n            }\n            if (opts[2]) {\n              pattern = new RegExp(opts[2].substr(1, opts[2].length - 2), ignoreCase ? 'i' : '');\n            }\n          }\n        }\n        var err = parseArgs();\n        if (err) {\n          showConfirm(cm, err + ': ' + params.argString);\n          return;\n        }\n        var lineStart = params.line || cm.firstLine();\n        var lineEnd = params.lineEnd || params.line || cm.lastLine();\n        if (lineStart == lineEnd) { return; }\n        var curStart = Pos(lineStart, 0);\n        var curEnd = Pos(lineEnd, lineLength(cm, lineEnd));\n        var text = cm.getRange(curStart, curEnd).split('\\n');\n        var numberRegex = pattern ? pattern :\n           (number == 'decimal') ? /(-?)([\\d]+)/ :\n           (number == 'hex') ? /(-?)(?:0x)?([0-9a-f]+)/i :\n           (number == 'octal') ? /([0-7]+)/ : null;\n        var radix = (number == 'decimal') ? 10 : (number == 'hex') ? 16 : (number == 'octal') ? 8 : null;\n        var numPart = [], textPart = [];\n        if (number || pattern) {\n          for (var i = 0; i < text.length; i++) {\n            var matchPart = pattern ? text[i].match(pattern) : null;\n            if (matchPart && matchPart[0] != '') {\n              numPart.push(matchPart);\n            } else if (!pattern && numberRegex.exec(text[i])) {\n              numPart.push(text[i]);\n            } else {\n              textPart.push(text[i]);\n            }\n          }\n        } else {\n          textPart = text;\n        }\n        function compareFn(a, b) {\n          if (reverse) { var tmp; tmp = a; a = b; b = tmp; }\n          if (ignoreCase) { a = a.toLowerCase(); b = b.toLowerCase(); }\n          var anum = number && numberRegex.exec(a);\n          var bnum = number && numberRegex.exec(b);\n          if (!anum) { return a < b ? -1 : 1; }\n          anum = parseInt((anum[1] + anum[2]).toLowerCase(), radix);\n          bnum = parseInt((bnum[1] + bnum[2]).toLowerCase(), radix);\n          return anum - bnum;\n        }\n        function comparePatternFn(a, b) {\n          if (reverse) { var tmp; tmp = a; a = b; b = tmp; }\n          if (ignoreCase) { a[0] = a[0].toLowerCase(); b[0] = b[0].toLowerCase(); }\n          return (a[0] < b[0]) ? -1 : 1;\n        }\n        numPart.sort(pattern ? comparePatternFn : compareFn);\n        if (pattern) {\n          for (var i = 0; i < numPart.length; i++) {\n            numPart[i] = numPart[i].input;\n          }\n        } else if (!number) { textPart.sort(compareFn); }\n        text = (!reverse) ? textPart.concat(numPart) : numPart.concat(textPart);\n        if (unique) { // Remove duplicate lines\n          var textOld = text;\n          var lastLine;\n          text = [];\n          for (var i = 0; i < textOld.length; i++) {\n            if (textOld[i] != lastLine) {\n              text.push(textOld[i]);\n            }\n            lastLine = textOld[i];\n          }\n        }\n        cm.replaceRange(text.join('\\n'), curStart, curEnd);\n      },\n      vglobal: function(cm, params) {\n        // global inspects params.commandName\n        this.global(cm, params);\n      },\n      global: function(cm, params) {\n        // a global command is of the form\n        // :[range]g/pattern/[cmd]\n        // argString holds the string /pattern/[cmd]\n        var argString = params.argString;\n        if (!argString) {\n          showConfirm(cm, 'Regular Expression missing from global');\n          return;\n        }\n        var inverted = params.commandName[0] === 'v';\n        // range is specified here\n        var lineStart = (params.line !== undefined) ? params.line : cm.firstLine();\n        var lineEnd = params.lineEnd || params.line || cm.lastLine();\n        // get the tokens from argString\n        var tokens = splitBySlash(argString);\n        var regexPart = argString, cmd;\n        if (tokens.length) {\n          regexPart = tokens[0];\n          cmd = tokens.slice(1, tokens.length).join('/');\n        }\n        if (regexPart) {\n          // If regex part is empty, then use the previous query. Otherwise\n          // use the regex part as the new query.\n          try {\n           updateSearchQuery(cm, regexPart, true /** ignoreCase */,\n             true /** smartCase */);\n          } catch (e) {\n           showConfirm(cm, 'Invalid regex: ' + regexPart);\n           return;\n          }\n        }\n        // now that we have the regexPart, search for regex matches in the\n        // specified range of lines\n        var query = getSearchState(cm).getQuery();\n        var matchedLines = [];\n        for (var i = lineStart; i <= lineEnd; i++) {\n          var line = cm.getLineHandle(i);\n          var matched = query.test(line.text);\n          if (matched !== inverted) {\n            matchedLines.push(cmd ? line : line.text);\n          }\n        }\n        // if there is no [cmd], just display the list of matched lines\n        if (!cmd) {\n          showConfirm(cm, matchedLines.join('\\n'));\n          return;\n        }\n        var index = 0;\n        var nextCommand = function() {\n          if (index < matchedLines.length) {\n            var line = matchedLines[index++];\n            var lineNum = cm.getLineNumber(line);\n            if (lineNum == null) {\n              nextCommand();\n              return;\n            }\n            var command = (lineNum + 1) + cmd;\n            exCommandDispatcher.processCommand(cm, command, {\n              callback: nextCommand\n            });\n          }\n        };\n        nextCommand();\n      },\n      substitute: function(cm, params) {\n        if (!cm.getSearchCursor) {\n          throw new Error('Search feature not available. Requires searchcursor.js or ' +\n              'any other getSearchCursor implementation.');\n        }\n        var argString = params.argString;\n        var tokens = argString ? splitBySeparator(argString, argString[0]) : [];\n        var regexPart, replacePart = '', trailing, flagsPart, count;\n        var confirm = false; // Whether to confirm each replace.\n        var global = false; // True to replace all instances on a line, false to replace only 1.\n        if (tokens.length) {\n          regexPart = tokens[0];\n          if (getOption('pcre') && regexPart !== '') {\n              regexPart = new RegExp(regexPart).source; //normalize not escaped characters\n          }\n          replacePart = tokens[1];\n          // If the pattern ends with $ (line boundary assertion), change $ to \\n.\n          // Caveat: this workaround cannot match on the last line of the document.\n          if (/(^|[^\\\\])(\\\\\\\\)*\\$$/.test(regexPart)) {\n            regexPart = regexPart.slice(0, -1) + '\\\\n';\n            replacePart = (replacePart || '') + '\\n';\n          }\n          if (replacePart !== undefined) {\n            if (getOption('pcre')) {\n              replacePart = unescapeRegexReplace(replacePart.replace(/([^\\\\])&/g,\"$1$$&\"));\n            } else {\n              replacePart = translateRegexReplace(replacePart);\n            }\n            vimGlobalState.lastSubstituteReplacePart = replacePart;\n          }\n          trailing = tokens[2] ? tokens[2].split(' ') : [];\n        } else {\n          // either the argString is empty or its of the form ' hello/world'\n          // actually splitBySlash returns a list of tokens\n          // only if the string starts with a '/'\n          if (argString && argString.length) {\n            showConfirm(cm, 'Substitutions should be of the form ' +\n                ':s/pattern/replace/');\n            return;\n          }\n        }\n        // After the 3rd slash, we can have flags followed by a space followed\n        // by count.\n        if (trailing) {\n          flagsPart = trailing[0];\n          count = parseInt(trailing[1]);\n          if (flagsPart) {\n            if (flagsPart.indexOf('c') != -1) {\n              confirm = true;\n            }\n            if (flagsPart.indexOf('g') != -1) {\n              global = true;\n            }\n            if (getOption('pcre')) {\n               regexPart = regexPart + '/' + flagsPart;\n            } else {\n               regexPart = regexPart.replace(/\\//g, \"\\\\/\") + '/' + flagsPart;\n            }\n          }\n        }\n        if (regexPart) {\n          // If regex part is empty, then use the previous query. Otherwise use\n          // the regex part as the new query.\n          try {\n            updateSearchQuery(cm, regexPart, true /** ignoreCase */,\n              true /** smartCase */);\n          } catch (e) {\n            showConfirm(cm, 'Invalid regex: ' + regexPart);\n            return;\n          }\n        }\n        replacePart = replacePart || vimGlobalState.lastSubstituteReplacePart;\n        if (replacePart === undefined) {\n          showConfirm(cm, 'No previous substitute regular expression');\n          return;\n        }\n        var state = getSearchState(cm);\n        var query = state.getQuery();\n        var lineStart = (params.line !== undefined) ? params.line : cm.getCursor().line;\n        var lineEnd = params.lineEnd || lineStart;\n        if (lineStart == cm.firstLine() && lineEnd == cm.lastLine()) {\n          lineEnd = Infinity;\n        }\n        if (count) {\n          lineStart = lineEnd;\n          lineEnd = lineStart + count - 1;\n        }\n        var startPos = clipCursorToContent(cm, Pos(lineStart, 0));\n        var cursor = cm.getSearchCursor(query, startPos);\n        doReplace(cm, confirm, global, lineStart, lineEnd, cursor, query, replacePart, params.callback);\n      },\n      redo: CodeMirror.commands.redo,\n      undo: CodeMirror.commands.undo,\n      write: function(cm) {\n        if (CodeMirror.commands.save) {\n          // If a save command is defined, call it.\n          CodeMirror.commands.save(cm);\n        } else if (cm.save) {\n          // Saves to text area if no save command is defined and cm.save() is available.\n          cm.save();\n        }\n      },\n      nohlsearch: function(cm) {\n        clearSearchHighlight(cm);\n      },\n      yank: function (cm) {\n        var cur = copyCursor(cm.getCursor());\n        var line = cur.line;\n        var lineText = cm.getLine(line);\n        vimGlobalState.registerController.pushText(\n          '0', 'yank', lineText, true, true);\n      },\n      delmarks: function(cm, params) {\n        if (!params.argString || !trim(params.argString)) {\n          showConfirm(cm, 'Argument required');\n          return;\n        }\n\n        var state = cm.state.vim;\n        var stream = new CodeMirror.StringStream(trim(params.argString));\n        while (!stream.eol()) {\n          stream.eatSpace();\n\n          // Record the streams position at the beginning of the loop for use\n          // in error messages.\n          var count = stream.pos;\n\n          if (!stream.match(/[a-zA-Z]/, false)) {\n            showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n            return;\n          }\n\n          var sym = stream.next();\n          // Check if this symbol is part of a range\n          if (stream.match('-', true)) {\n            // This symbol is part of a range.\n\n            // The range must terminate at an alphabetic character.\n            if (!stream.match(/[a-zA-Z]/, false)) {\n              showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n              return;\n            }\n\n            var startMark = sym;\n            var finishMark = stream.next();\n            // The range must terminate at an alphabetic character which\n            // shares the same case as the start of the range.\n            if (isLowerCase(startMark) && isLowerCase(finishMark) ||\n                isUpperCase(startMark) && isUpperCase(finishMark)) {\n              var start = startMark.charCodeAt(0);\n              var finish = finishMark.charCodeAt(0);\n              if (start >= finish) {\n                showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n                return;\n              }\n\n              // Because marks are always ASCII values, and we have\n              // determined that they are the same case, we can use\n              // their char codes to iterate through the defined range.\n              for (var j = 0; j <= finish - start; j++) {\n                var mark = String.fromCharCode(start + j);\n                delete state.marks[mark];\n              }\n            } else {\n              showConfirm(cm, 'Invalid argument: ' + startMark + '-');\n              return;\n            }\n          } else {\n            // This symbol is a valid mark, and is not part of a range.\n            delete state.marks[sym];\n          }\n        }\n      }\n    };\n\n    var exCommandDispatcher = new ExCommandDispatcher();\n\n    /**\n    * @param {CodeMirror} cm CodeMirror instance we are in.\n    * @param {boolean} confirm Whether to confirm each replace.\n    * @param {Cursor} lineStart Line to start replacing from.\n    * @param {Cursor} lineEnd Line to stop replacing at.\n    * @param {RegExp} query Query for performing matches with.\n    * @param {string} replaceWith Text to replace matches with. May contain $1,\n    *     $2, etc for replacing captured groups using JavaScript replace.\n    * @param {function()} callback A callback for when the replace is done.\n    */\n    function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor, query,\n        replaceWith, callback) {\n      // Set up all the functions.\n      cm.state.vim.exMode = true;\n      var done = false;\n      var lastPos, modifiedLineNumber, joined;\n      function replaceAll() {\n        cm.operation(function() {\n          while (!done) {\n            replace();\n            next();\n          }\n          stop();\n        });\n      }\n      function replace() {\n        var text = cm.getRange(searchCursor.from(), searchCursor.to());\n        var newText = text.replace(query, replaceWith);\n        var unmodifiedLineNumber = searchCursor.to().line;\n        searchCursor.replace(newText);\n        modifiedLineNumber = searchCursor.to().line;\n        lineEnd += modifiedLineNumber - unmodifiedLineNumber;\n        joined = modifiedLineNumber < unmodifiedLineNumber;\n      }\n      function next() {\n        // The below only loops to skip over multiple occurrences on the same\n        // line when 'global' is not true.\n        while(searchCursor.findNext() &&\n              isInRange(searchCursor.from(), lineStart, lineEnd)) {\n          if (!global && searchCursor.from().line == modifiedLineNumber && !joined) {\n            continue;\n          }\n          cm.scrollIntoView(searchCursor.from(), 30);\n          cm.setSelection(searchCursor.from(), searchCursor.to());\n          lastPos = searchCursor.from();\n          done = false;\n          return;\n        }\n        done = true;\n      }\n      function stop(close) {\n        if (close) { close(); }\n        cm.focus();\n        if (lastPos) {\n          cm.setCursor(lastPos);\n          var vim = cm.state.vim;\n          vim.exMode = false;\n          vim.lastHPos = vim.lastHSPos = lastPos.ch;\n        }\n        if (callback) { callback(); }\n      }\n      function onPromptKeyDown(e, _value, close) {\n        // Swallow all keys.\n        CodeMirror.e_stop(e);\n        var keyName = CodeMirror.keyName(e);\n        switch (keyName) {\n          case 'Y':\n            replace(); next(); break;\n          case 'N':\n            next(); break;\n          case 'A':\n            // replaceAll contains a call to close of its own. We don't want it\n            // to fire too early or multiple times.\n            var savedCallback = callback;\n            callback = undefined;\n            cm.operation(replaceAll);\n            callback = savedCallback;\n            break;\n          case 'L':\n            replace();\n            // fall through and exit.\n          case 'Q':\n          case 'Esc':\n          case 'Ctrl-C':\n          case 'Ctrl-[':\n            stop(close);\n            break;\n        }\n        if (done) { stop(close); }\n        return true;\n      }\n\n      // Actually do replace.\n      next();\n      if (done) {\n        showConfirm(cm, 'No matches for ' + query.source);\n        return;\n      }\n      if (!confirm) {\n        replaceAll();\n        if (callback) { callback(); }\n        return;\n      }\n      showPrompt(cm, {\n        prefix: dom('span', 'replace with ', dom('strong', replaceWith), ' (y/n/a/q/l)'),\n        onKeyDown: onPromptKeyDown\n      });\n    }\n\n    CodeMirror.keyMap.vim = {\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    function exitInsertMode(cm) {\n      var vim = cm.state.vim;\n      var macroModeState = vimGlobalState.macroModeState;\n      var insertModeChangeRegister = vimGlobalState.registerController.getRegister('.');\n      var isPlaying = macroModeState.isPlaying;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      if (!isPlaying) {\n        cm.off('change', onChange);\n        CodeMirror.off(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);\n      }\n      if (!isPlaying && vim.insertModeRepeat > 1) {\n        // Perform insert mode repeat for commands like 3,a and 3,o.\n        repeatLastEdit(cm, vim, vim.insertModeRepeat - 1,\n            true /** repeatForInsert */);\n        vim.lastEditInputState.repeatOverride = vim.insertModeRepeat;\n      }\n      delete vim.insertModeRepeat;\n      vim.insertMode = false;\n      cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1);\n      cm.setOption('keyMap', 'vim');\n      cm.setOption('disableInput', true);\n      cm.toggleOverwrite(false); // exit replace mode if we were in it.\n      // update the \". register before exiting insert mode\n      insertModeChangeRegister.setText(lastChange.changes.join(''));\n      CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      if (macroModeState.isRecording) {\n        logInsertModeChange(macroModeState);\n      }\n    }\n\n    function _mapCommand(command) {\n      defaultKeymap.unshift(command);\n    }\n\n    function mapCommand(keys, type, name, args, extra) {\n      var command = {keys: keys, type: type};\n      command[type] = name;\n      command[type + \"Args\"] = args;\n      for (var key in extra)\n        command[key] = extra[key];\n      _mapCommand(command);\n    }\n\n    // The timeout in milliseconds for the two-character ESC keymap should be\n    // adjusted according to your typing speed to prevent false positives.\n    defineOption('insertModeEscKeysTimeout', 200, 'number');\n\n    CodeMirror.keyMap['vim-insert'] = {\n      // TODO: override navigation keys so that Esc will cancel automatic\n      // indentation from o, O, i_<CR>\n      fallthrough: ['default'],\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    CodeMirror.keyMap['vim-replace'] = {\n      'Backspace': 'goCharLeft',\n      fallthrough: ['vim-insert'],\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    function executeMacroRegister(cm, vim, macroModeState, registerName) {\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (registerName == ':') {\n        // Read-only register containing last Ex command.\n        if (register.keyBuffer[0]) {\n          exCommandDispatcher.processCommand(cm, register.keyBuffer[0]);\n        }\n        macroModeState.isPlaying = false;\n        return;\n      }\n      var keyBuffer = register.keyBuffer;\n      var imc = 0;\n      macroModeState.isPlaying = true;\n      macroModeState.replaySearchQueries = register.searchQueries.slice(0);\n      for (var i = 0; i < keyBuffer.length; i++) {\n        var text = keyBuffer[i];\n        var match, key;\n        while (text) {\n          // Pull off one command key, which is either a single character\n          // or a special sequence wrapped in '<' and '>', e.g. '<Space>'.\n          match = (/<\\w+-.+?>|<\\w+>|./).exec(text);\n          key = match[0];\n          text = text.substring(match.index + key.length);\n          CodeMirror.Vim.handleKey(cm, key, 'macro');\n          if (vim.insertMode) {\n            var changes = register.insertModeChanges[imc++].changes;\n            vimGlobalState.macroModeState.lastInsertModeChanges.changes =\n                changes;\n            repeatInsertModeChanges(cm, changes, 1);\n            exitInsertMode(cm);\n          }\n        }\n      }\n      macroModeState.isPlaying = false;\n    }\n\n    function logKey(macroModeState, key) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register) {\n        register.pushText(key);\n      }\n    }\n\n    function logInsertModeChange(macroModeState) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register && register.pushInsertModeChanges) {\n        register.pushInsertModeChanges(macroModeState.lastInsertModeChanges);\n      }\n    }\n\n    function logSearchQuery(macroModeState, query) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register && register.pushSearchQuery) {\n        register.pushSearchQuery(query);\n      }\n    }\n\n    /**\n     * Listens for changes made in insert mode.\n     * Should only be active in insert mode.\n     */\n    function onChange(cm, changeObj) {\n      var macroModeState = vimGlobalState.macroModeState;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      if (!macroModeState.isPlaying) {\n        while(changeObj) {\n          lastChange.expectCursorActivityForChange = true;\n          if (lastChange.ignoreCount > 1) {\n            lastChange.ignoreCount--;\n          } else if (changeObj.origin == '+input' || changeObj.origin == 'paste'\n              || changeObj.origin === undefined /* only in testing */) {\n            var selectionCount = cm.listSelections().length;\n            if (selectionCount > 1)\n              lastChange.ignoreCount = selectionCount;\n            var text = changeObj.text.join('\\n');\n            if (lastChange.maybeReset) {\n              lastChange.changes = [];\n              lastChange.maybeReset = false;\n            }\n            if (text) {\n              if (cm.state.overwrite && !/\\n/.test(text)) {\n                lastChange.changes.push([text]);\n              } else {\n                lastChange.changes.push(text);\n              }\n            }\n          }\n          // Change objects may be chained with next.\n          changeObj = changeObj.next;\n        }\n      }\n    }\n\n    /**\n    * Listens for any kind of cursor activity on CodeMirror.\n    */\n    function onCursorActivity(cm) {\n      var vim = cm.state.vim;\n      if (vim.insertMode) {\n        // Tracking cursor activity in insert mode (for macro support).\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.isPlaying) { return; }\n        var lastChange = macroModeState.lastInsertModeChanges;\n        if (lastChange.expectCursorActivityForChange) {\n          lastChange.expectCursorActivityForChange = false;\n        } else {\n          // Cursor moved outside the context of an edit. Reset the change.\n          lastChange.maybeReset = true;\n        }\n      } else if (!cm.curOp.isVimOp) {\n        handleExternalSelection(cm, vim);\n      }\n      if (vim.visualMode) {\n        updateFakeCursor(cm);\n      }\n    }\n    /**\n     * Keeps track of a fake cursor to support visual mode cursor behavior.\n     */\n    function updateFakeCursor(cm) {\n      var className = 'cm-animate-fat-cursor';\n      var vim = cm.state.vim;\n      var from = clipCursorToContent(cm, copyCursor(vim.sel.head));\n      var to = offsetCursor(from, 0, 1);\n      clearFakeCursor(vim);\n      // In visual mode, the cursor may be positioned over EOL.\n      if (from.ch == cm.getLine(from.line).length) {\n        var widget = dom('span', { 'class': className }, '\\u00a0');\n        vim.fakeCursorBookmark = cm.setBookmark(from, {widget: widget});\n      } else {\n        vim.fakeCursor = cm.markText(from, to, {className: className});\n      }\n    }\n    function clearFakeCursor(vim) {\n      if (vim.fakeCursor) {\n        vim.fakeCursor.clear();\n        vim.fakeCursor = null;\n      }\n      if (vim.fakeCursorBookmark) {\n        vim.fakeCursorBookmark.clear();\n        vim.fakeCursorBookmark = null;\n      }\n    }\n    function handleExternalSelection(cm, vim) {\n      var anchor = cm.getCursor('anchor');\n      var head = cm.getCursor('head');\n      // Enter or exit visual mode to match mouse selection.\n      if (vim.visualMode && !cm.somethingSelected()) {\n        exitVisualMode(cm, false);\n      } else if (!vim.visualMode && !vim.insertMode && cm.somethingSelected()) {\n        vim.visualMode = true;\n        vim.visualLine = false;\n        CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\"});\n      }\n      if (vim.visualMode) {\n        // Bind CodeMirror selection model to vim selection model.\n        // Mouse selections are considered visual characterwise.\n        var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0;\n        var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0;\n        head = offsetCursor(head, 0, headOffset);\n        anchor = offsetCursor(anchor, 0, anchorOffset);\n        vim.sel = {\n          anchor: anchor,\n          head: head\n        };\n        updateMark(cm, vim, '<', cursorMin(head, anchor));\n        updateMark(cm, vim, '>', cursorMax(head, anchor));\n      } else if (!vim.insertMode) {\n        // Reset lastHPos if selection was modified by something outside of vim mode e.g. by mouse.\n        vim.lastHPos = cm.getCursor().ch;\n      }\n    }\n\n    /** Wrapper for special keys pressed in insert mode */\n    function InsertModeKey(keyName) {\n      this.keyName = keyName;\n    }\n\n    /**\n    * Handles raw key down events from the text area.\n    * - Should only be active in insert mode.\n    * - For recording deletes in insert mode.\n    */\n    function onKeyEventTargetKeyDown(e) {\n      var macroModeState = vimGlobalState.macroModeState;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      var keyName = CodeMirror.keyName(e);\n      if (!keyName) { return; }\n      function onKeyFound() {\n        if (lastChange.maybeReset) {\n          lastChange.changes = [];\n          lastChange.maybeReset = false;\n        }\n        lastChange.changes.push(new InsertModeKey(keyName));\n        return true;\n      }\n      if (keyName.indexOf('Delete') != -1 || keyName.indexOf('Backspace') != -1) {\n        CodeMirror.lookupKey(keyName, 'vim-insert', onKeyFound);\n      }\n    }\n\n    /**\n     * Repeats the last edit, which includes exactly 1 command and at most 1\n     * insert. Operator and motion commands are read from lastEditInputState,\n     * while action commands are read from lastEditActionCommand.\n     *\n     * If repeatForInsert is true, then the function was called by\n     * exitInsertMode to repeat the insert mode changes the user just made. The\n     * corresponding enterInsertMode call was made with a count.\n     */\n    function repeatLastEdit(cm, vim, repeat, repeatForInsert) {\n      var macroModeState = vimGlobalState.macroModeState;\n      macroModeState.isPlaying = true;\n      var isAction = !!vim.lastEditActionCommand;\n      var cachedInputState = vim.inputState;\n      function repeatCommand() {\n        if (isAction) {\n          commandDispatcher.processAction(cm, vim, vim.lastEditActionCommand);\n        } else {\n          commandDispatcher.evalInput(cm, vim);\n        }\n      }\n      function repeatInsert(repeat) {\n        if (macroModeState.lastInsertModeChanges.changes.length > 0) {\n          // For some reason, repeat cw in desktop VIM does not repeat\n          // insert mode changes. Will conform to that behavior.\n          repeat = !vim.lastEditActionCommand ? 1 : repeat;\n          var changeObject = macroModeState.lastInsertModeChanges;\n          repeatInsertModeChanges(cm, changeObject.changes, repeat);\n        }\n      }\n      vim.inputState = vim.lastEditInputState;\n      if (isAction && vim.lastEditActionCommand.interlaceInsertRepeat) {\n        // o and O repeat have to be interlaced with insert repeats so that the\n        // insertions appear on separate lines instead of the last line.\n        for (var i = 0; i < repeat; i++) {\n          repeatCommand();\n          repeatInsert(1);\n        }\n      } else {\n        if (!repeatForInsert) {\n          // Hack to get the cursor to end up at the right place. If I is\n          // repeated in insert mode repeat, cursor will be 1 insert\n          // change set left of where it should be.\n          repeatCommand();\n        }\n        repeatInsert(repeat);\n      }\n      vim.inputState = cachedInputState;\n      if (vim.insertMode && !repeatForInsert) {\n        // Don't exit insert mode twice. If repeatForInsert is set, then we\n        // were called by an exitInsertMode call lower on the stack.\n        exitInsertMode(cm);\n      }\n      macroModeState.isPlaying = false;\n    }\n\n    function repeatInsertModeChanges(cm, changes, repeat) {\n      function keyHandler(binding) {\n        if (typeof binding == 'string') {\n          CodeMirror.commands[binding](cm);\n        } else {\n          binding(cm);\n        }\n        return true;\n      }\n      var head = cm.getCursor('head');\n      var visualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.visualBlock;\n      if (visualBlock) {\n        // Set up block selection again for repeating the changes.\n        selectForInsert(cm, head, visualBlock + 1);\n        repeat = cm.listSelections().length;\n        cm.setCursor(head);\n      }\n      for (var i = 0; i < repeat; i++) {\n        if (visualBlock) {\n          cm.setCursor(offsetCursor(head, i, 0));\n        }\n        for (var j = 0; j < changes.length; j++) {\n          var change = changes[j];\n          if (change instanceof InsertModeKey) {\n            CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);\n          } else if (typeof change == \"string\") {\n            var cur = cm.getCursor();\n            cm.replaceRange(change, cur, cur);\n          } else {\n            var start = cm.getCursor();\n            var end = offsetCursor(start, 0, change[0].length);\n            cm.replaceRange(change[0], start, end);\n          }\n        }\n      }\n      if (visualBlock) {\n        cm.setCursor(offsetCursor(head, 0, 1));\n      }\n    }\n\n    resetVimGlobalState();\n    return vimApi;\n  };\n  // Initialize Vim and make it available as an API.\n  CodeMirror.Vim = Vim();\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/apl/apl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"apl\", function() {\n  var builtInOps = {\n    \".\": \"innerProduct\",\n    \"\\\\\": \"scan\",\n    \"/\": \"reduce\",\n    \"⌿\": \"reduce1Axis\",\n    \"⍀\": \"scan1Axis\",\n    \"¨\": \"each\",\n    \"⍣\": \"power\"\n  };\n  var builtInFuncs = {\n    \"+\": [\"conjugate\", \"add\"],\n    \"−\": [\"negate\", \"subtract\"],\n    \"×\": [\"signOf\", \"multiply\"],\n    \"÷\": [\"reciprocal\", \"divide\"],\n    \"⌈\": [\"ceiling\", \"greaterOf\"],\n    \"⌊\": [\"floor\", \"lesserOf\"],\n    \"∣\": [\"absolute\", \"residue\"],\n    \"⍳\": [\"indexGenerate\", \"indexOf\"],\n    \"?\": [\"roll\", \"deal\"],\n    \"⋆\": [\"exponentiate\", \"toThePowerOf\"],\n    \"⍟\": [\"naturalLog\", \"logToTheBase\"],\n    \"○\": [\"piTimes\", \"circularFuncs\"],\n    \"!\": [\"factorial\", \"binomial\"],\n    \"⌹\": [\"matrixInverse\", \"matrixDivide\"],\n    \"<\": [null, \"lessThan\"],\n    \"≤\": [null, \"lessThanOrEqual\"],\n    \"=\": [null, \"equals\"],\n    \">\": [null, \"greaterThan\"],\n    \"≥\": [null, \"greaterThanOrEqual\"],\n    \"≠\": [null, \"notEqual\"],\n    \"≡\": [\"depth\", \"match\"],\n    \"≢\": [null, \"notMatch\"],\n    \"∈\": [\"enlist\", \"membership\"],\n    \"⍷\": [null, \"find\"],\n    \"∪\": [\"unique\", \"union\"],\n    \"∩\": [null, \"intersection\"],\n    \"∼\": [\"not\", \"without\"],\n    \"∨\": [null, \"or\"],\n    \"∧\": [null, \"and\"],\n    \"⍱\": [null, \"nor\"],\n    \"⍲\": [null, \"nand\"],\n    \"⍴\": [\"shapeOf\", \"reshape\"],\n    \",\": [\"ravel\", \"catenate\"],\n    \"⍪\": [null, \"firstAxisCatenate\"],\n    \"⌽\": [\"reverse\", \"rotate\"],\n    \"⊖\": [\"axis1Reverse\", \"axis1Rotate\"],\n    \"⍉\": [\"transpose\", null],\n    \"↑\": [\"first\", \"take\"],\n    \"↓\": [null, \"drop\"],\n    \"⊂\": [\"enclose\", \"partitionWithAxis\"],\n    \"⊃\": [\"diclose\", \"pick\"],\n    \"⌷\": [null, \"index\"],\n    \"⍋\": [\"gradeUp\", null],\n    \"⍒\": [\"gradeDown\", null],\n    \"⊤\": [\"encode\", null],\n    \"⊥\": [\"decode\", null],\n    \"⍕\": [\"format\", \"formatByExample\"],\n    \"⍎\": [\"execute\", null],\n    \"⊣\": [\"stop\", \"left\"],\n    \"⊢\": [\"pass\", \"right\"]\n  };\n\n  var isOperator = /[\\.\\/⌿⍀¨⍣]/;\n  var isNiladic = /⍬/;\n  var isFunction = /[\\+−×÷⌈⌊∣⍳\\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;\n  var isArrow = /←/;\n  var isComment = /[⍝#].*$/;\n\n  var stringEater = function(type) {\n    var prev;\n    prev = false;\n    return function(c) {\n      prev = c;\n      if (c === type) {\n        return prev === \"\\\\\";\n      }\n      return true;\n    };\n  };\n  return {\n    startState: function() {\n      return {\n        prev: false,\n        func: false,\n        op: false,\n        string: false,\n        escape: false\n      };\n    },\n    token: function(stream, state) {\n      var ch, funcName;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      ch = stream.next();\n      if (ch === '\"' || ch === \"'\") {\n        stream.eatWhile(stringEater(ch));\n        stream.next();\n        state.prev = true;\n        return \"string\";\n      }\n      if (/[\\[{\\(]/.test(ch)) {\n        state.prev = false;\n        return null;\n      }\n      if (/[\\]}\\)]/.test(ch)) {\n        state.prev = true;\n        return null;\n      }\n      if (isNiladic.test(ch)) {\n        state.prev = false;\n        return \"niladic\";\n      }\n      if (/[¯\\d]/.test(ch)) {\n        if (state.func) {\n          state.func = false;\n          state.prev = false;\n        } else {\n          state.prev = true;\n        }\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperator.test(ch)) {\n        return \"operator apl-\" + builtInOps[ch];\n      }\n      if (isArrow.test(ch)) {\n        return \"apl-arrow\";\n      }\n      if (isFunction.test(ch)) {\n        funcName = \"apl-\";\n        if (builtInFuncs[ch] != null) {\n          if (state.prev) {\n            funcName += builtInFuncs[ch][1];\n          } else {\n            funcName += builtInFuncs[ch][0];\n          }\n        }\n        state.func = true;\n        state.prev = false;\n        return \"function \" + funcName;\n      }\n      if (isComment.test(ch)) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (ch === \"∘\" && stream.peek() === \".\") {\n        stream.next();\n        return \"function jot-dot\";\n      }\n      stream.eatWhile(/[\\w\\$_]/);\n      state.prev = true;\n      return \"keyword\";\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/apl\", \"apl\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/asciiarmor/asciiarmor.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function errorIfNotEmpty(stream) {\n    var nonWS = stream.match(/^\\s*\\S/);\n    stream.skipToEnd();\n    return nonWS ? \"error\" : null;\n  }\n\n  CodeMirror.defineMode(\"asciiarmor\", function() {\n    return {\n      token: function(stream, state) {\n        var m;\n        if (state.state == \"top\") {\n          if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\\s*$/))) {\n            state.state = \"headers\";\n            state.type = m[1];\n            return \"tag\";\n          }\n          return errorIfNotEmpty(stream);\n        } else if (state.state == \"headers\") {\n          if (stream.sol() && stream.match(/^\\w+:/)) {\n            state.state = \"header\";\n            return \"atom\";\n          } else {\n            var result = errorIfNotEmpty(stream);\n            if (result) state.state = \"body\";\n            return result;\n          }\n        } else if (state.state == \"header\") {\n          stream.skipToEnd();\n          state.state = \"headers\";\n          return \"string\";\n        } else if (state.state == \"body\") {\n          if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\\s*$/))) {\n            if (m[1] != state.type) return \"error\";\n            state.state = \"end\";\n            return \"tag\";\n          } else {\n            if (stream.eatWhile(/[A-Za-z0-9+\\/=]/)) {\n              return null;\n            } else {\n              stream.next();\n              return \"error\";\n            }\n          }\n        } else if (state.state == \"end\") {\n          return errorIfNotEmpty(stream);\n        }\n      },\n      blankLine: function(state) {\n        if (state.state == \"headers\") state.state = \"body\";\n      },\n      startState: function() {\n        return {state: \"top\", type: null};\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"application/pgp\", \"asciiarmor\");\n  CodeMirror.defineMIME(\"application/pgp-encrypted\", \"asciiarmor\");\n  CodeMirror.defineMIME(\"application/pgp-keys\", \"asciiarmor\");\n  CodeMirror.defineMIME(\"application/pgp-signature\", \"asciiarmor\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/asn.1/asn.1.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"asn.1\", function(config, parserConfig) {\n    var indentUnit = config.indentUnit,\n        keywords = parserConfig.keywords || {},\n        cmipVerbs = parserConfig.cmipVerbs || {},\n        compareTypes = parserConfig.compareTypes || {},\n        status = parserConfig.status || {},\n        tags = parserConfig.tags || {},\n        storage = parserConfig.storage || {},\n        modifier = parserConfig.modifier || {},\n        accessTypes = parserConfig.accessTypes|| {},\n        multiLineStrings = parserConfig.multiLineStrings,\n        indentStatements = parserConfig.indentStatements !== false;\n    var isOperatorChar = /[\\|\\^]/;\n    var curPunc;\n\n    function tokenBase(stream, state) {\n      var ch = stream.next();\n      if (ch == '\"' || ch == \"'\") {\n        state.tokenize = tokenString(ch);\n        return state.tokenize(stream, state);\n      }\n      if (/[\\[\\]\\(\\){}:=,;]/.test(ch)) {\n        curPunc = ch;\n        return \"punctuation\";\n      }\n      if (ch == \"-\"){\n        if (stream.eat(\"-\")) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\n      }\n      if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n\n      stream.eatWhile(/[\\w\\-]/);\n      var cur = stream.current();\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      if (cmipVerbs.propertyIsEnumerable(cur)) return \"variable cmipVerbs\";\n      if (compareTypes.propertyIsEnumerable(cur)) return \"atom compareTypes\";\n      if (status.propertyIsEnumerable(cur)) return \"comment status\";\n      if (tags.propertyIsEnumerable(cur)) return \"variable-3 tags\";\n      if (storage.propertyIsEnumerable(cur)) return \"builtin storage\";\n      if (modifier.propertyIsEnumerable(cur)) return \"string-2 modifier\";\n      if (accessTypes.propertyIsEnumerable(cur)) return \"atom accessTypes\";\n\n      return \"variable\";\n    }\n\n    function tokenString(quote) {\n      return function(stream, state) {\n        var escaped = false, next, end = false;\n        while ((next = stream.next()) != null) {\n          if (next == quote && !escaped){\n            var afterNext = stream.peek();\n            //look if the character if the quote is like the B in '10100010'B\n            if (afterNext){\n              afterNext = afterNext.toLowerCase();\n              if(afterNext == \"b\" || afterNext == \"h\" || afterNext == \"o\")\n                stream.next();\n            }\n            end = true; break;\n          }\n          escaped = !escaped && next == \"\\\\\";\n        }\n        if (end || !(escaped || multiLineStrings))\n          state.tokenize = null;\n        return \"string\";\n      };\n    }\n\n    function Context(indented, column, type, align, prev) {\n      this.indented = indented;\n      this.column = column;\n      this.type = type;\n      this.align = align;\n      this.prev = prev;\n    }\n    function pushContext(state, col, type) {\n      var indent = state.indented;\n      if (state.context && state.context.type == \"statement\")\n        indent = state.context.indented;\n      return state.context = new Context(indent, col, type, null, state.context);\n    }\n    function popContext(state) {\n      var t = state.context.type;\n      if (t == \")\" || t == \"]\" || t == \"}\")\n        state.indented = state.context.indented;\n      return state.context = state.context.prev;\n    }\n\n    //Interface\n    return {\n      startState: function(basecolumn) {\n        return {\n          tokenize: null,\n          context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n          indented: 0,\n          startOfLine: true\n        };\n      },\n\n      token: function(stream, state) {\n        var ctx = state.context;\n        if (stream.sol()) {\n          if (ctx.align == null) ctx.align = false;\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        curPunc = null;\n        var style = (state.tokenize || tokenBase)(stream, state);\n        if (style == \"comment\") return style;\n        if (ctx.align == null) ctx.align = true;\n\n        if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n            && ctx.type == \"statement\"){\n          popContext(state);\n        }\n        else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n        else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n        else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n        else if (curPunc == \"}\") {\n          while (ctx.type == \"statement\") ctx = popContext(state);\n          if (ctx.type == \"}\") ctx = popContext(state);\n          while (ctx.type == \"statement\") ctx = popContext(state);\n        }\n        else if (curPunc == ctx.type) popContext(state);\n        else if (indentStatements && (((ctx.type == \"}\" || ctx.type == \"top\")\n            && curPunc != ';') || (ctx.type == \"statement\"\n            && curPunc == \"newstatement\")))\n          pushContext(state, stream.column(), \"statement\");\n\n        state.startOfLine = false;\n        return style;\n      },\n\n      electricChars: \"{}\",\n      lineComment: \"--\",\n      fold: \"brace\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"text/x-ttcn-asn\", {\n    name: \"asn.1\",\n    keywords: words(\"DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION\" +\n    \" REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED\" +\n    \" WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN\" +\n    \" IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS\" +\n    \" MINACCESS MAXACCESS REVISION STATUS DESCRIPTION\" +\n    \" SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName\" +\n    \" ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY\" +\n    \" IMPLIED EXPORTS\"),\n    cmipVerbs: words(\"ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE\"),\n    compareTypes: words(\"OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY\" +\n    \" MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY\" +\n    \" OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL\" +\n    \" SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL\" +\n    \" TEXTUAL-CONVENTION\"),\n    status: words(\"current deprecated mandatory obsolete\"),\n    tags: words(\"APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS\" +\n    \" UNIVERSAL\"),\n    storage: words(\"BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING\" +\n    \" UTCTime InterfaceIndex IANAifType CMIP-Attribute\" +\n    \" REAL PACKAGE PACKAGES IpAddress PhysAddress\" +\n    \" NetworkAddress BITS BMPString TimeStamp TimeTicks\" +\n    \" TruthValue RowStatus DisplayString GeneralString\" +\n    \" GraphicString IA5String NumericString\" +\n    \" PrintableString SnmpAdminString TeletexString\" +\n    \" UTF8String VideotexString VisibleString StringStore\" +\n    \" ISO646String T61String UniversalString Unsigned32\" +\n    \" Integer32 Gauge Gauge32 Counter Counter32 Counter64\"),\n    modifier: words(\"ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS\" +\n    \" GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS\" +\n    \" DEFINED\"),\n    accessTypes: words(\"not-accessible accessible-for-notify read-only\" +\n    \" read-create read-write\"),\n    multiLineStrings: true\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/asterisk/asterisk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n * =====================================================================================\n *\n *       Filename:  mode/asterisk/asterisk.js\n *\n *    Description:  CodeMirror mode for Asterisk dialplan\n *\n *        Created:  05/17/2012 09:20:25 PM\n *       Revision:  08/05/2019 AstLinux Project: Support block-comments\n *\n *         Author:  Stas Kobzar (stas@modulis.ca),\n *        Company:  Modulis.ca Inc.\n *\n * =====================================================================================\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"asterisk\", function() {\n  var atoms    = [\"exten\", \"same\", \"include\",\"ignorepat\",\"switch\"],\n      dpcmd    = [\"#include\",\"#exec\"],\n      apps     = [\n                  \"addqueuemember\",\"adsiprog\",\"aelsub\",\"agentlogin\",\"agentmonitoroutgoing\",\"agi\",\n                  \"alarmreceiver\",\"amd\",\"answer\",\"authenticate\",\"background\",\"backgrounddetect\",\n                  \"bridge\",\"busy\",\"callcompletioncancel\",\"callcompletionrequest\",\"celgenuserevent\",\n                  \"changemonitor\",\"chanisavail\",\"channelredirect\",\"chanspy\",\"clearhash\",\"confbridge\",\n                  \"congestion\",\"continuewhile\",\"controlplayback\",\"dahdiacceptr2call\",\"dahdibarge\",\n                  \"dahdiras\",\"dahdiscan\",\"dahdisendcallreroutingfacility\",\"dahdisendkeypadfacility\",\n                  \"datetime\",\"dbdel\",\"dbdeltree\",\"deadagi\",\"dial\",\"dictate\",\"directory\",\"disa\",\n                  \"dumpchan\",\"eagi\",\"echo\",\"endwhile\",\"exec\",\"execif\",\"execiftime\",\"exitwhile\",\"extenspy\",\n                  \"externalivr\",\"festival\",\"flash\",\"followme\",\"forkcdr\",\"getcpeid\",\"gosub\",\"gosubif\",\n                  \"goto\",\"gotoif\",\"gotoiftime\",\"hangup\",\"iax2provision\",\"ices\",\"importvar\",\"incomplete\",\n                  \"ivrdemo\",\"jabberjoin\",\"jabberleave\",\"jabbersend\",\"jabbersendgroup\",\"jabberstatus\",\n                  \"jack\",\"log\",\"macro\",\"macroexclusive\",\"macroexit\",\"macroif\",\"mailboxexists\",\"meetme\",\n                  \"meetmeadmin\",\"meetmechanneladmin\",\"meetmecount\",\"milliwatt\",\"minivmaccmess\",\"minivmdelete\",\n                  \"minivmgreet\",\"minivmmwi\",\"minivmnotify\",\"minivmrecord\",\"mixmonitor\",\"monitor\",\"morsecode\",\n                  \"mp3player\",\"mset\",\"musiconhold\",\"nbscat\",\"nocdr\",\"noop\",\"odbc\",\"odbc\",\"odbcfinish\",\n                  \"originate\",\"ospauth\",\"ospfinish\",\"osplookup\",\"ospnext\",\"page\",\"park\",\"parkandannounce\",\n                  \"parkedcall\",\"pausemonitor\",\"pausequeuemember\",\"pickup\",\"pickupchan\",\"playback\",\"playtones\",\n                  \"privacymanager\",\"proceeding\",\"progress\",\"queue\",\"queuelog\",\"raiseexception\",\"read\",\"readexten\",\n                  \"readfile\",\"receivefax\",\"receivefax\",\"receivefax\",\"record\",\"removequeuemember\",\n                  \"resetcdr\",\"retrydial\",\"return\",\"ringing\",\"sayalpha\",\"saycountedadj\",\"saycountednoun\",\n                  \"saycountpl\",\"saydigits\",\"saynumber\",\"sayphonetic\",\"sayunixtime\",\"senddtmf\",\"sendfax\",\n                  \"sendfax\",\"sendfax\",\"sendimage\",\"sendtext\",\"sendurl\",\"set\",\"setamaflags\",\n                  \"setcallerpres\",\"setmusiconhold\",\"sipaddheader\",\"sipdtmfmode\",\"sipremoveheader\",\"skel\",\n                  \"slastation\",\"slatrunk\",\"sms\",\"softhangup\",\"speechactivategrammar\",\"speechbackground\",\n                  \"speechcreate\",\"speechdeactivategrammar\",\"speechdestroy\",\"speechloadgrammar\",\"speechprocessingsound\",\n                  \"speechstart\",\"speechunloadgrammar\",\"stackpop\",\"startmusiconhold\",\"stopmixmonitor\",\"stopmonitor\",\n                  \"stopmusiconhold\",\"stopplaytones\",\"system\",\"testclient\",\"testserver\",\"transfer\",\"tryexec\",\n                  \"trysystem\",\"unpausemonitor\",\"unpausequeuemember\",\"userevent\",\"verbose\",\"vmauthenticate\",\n                  \"vmsayname\",\"voicemail\",\"voicemailmain\",\"wait\",\"waitexten\",\"waitfornoise\",\"waitforring\",\n                  \"waitforsilence\",\"waitmusiconhold\",\"waituntil\",\"while\",\"zapateller\"\n                 ];\n\n  function basicToken(stream,state){\n    var cur = '';\n    var ch = stream.next();\n    // comment\n    if (state.blockComment) {\n      if (ch == \"-\" && stream.match(\"-;\", true)) {\n        state.blockComment = false;\n      } else if (stream.skipTo(\"--;\")) {\n        stream.next();\n        stream.next();\n        stream.next();\n        state.blockComment = false;\n      } else {\n        stream.skipToEnd();\n      }\n      return \"comment\";\n    }\n    if(ch == \";\") {\n      if (stream.match(\"--\", true)) {\n        if (!stream.match(\"-\", false)) {  // Except ;--- is not a block comment\n          state.blockComment = true;\n          return \"comment\";\n        }\n      }\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // context\n    if(ch == '[') {\n      stream.skipTo(']');\n      stream.eat(']');\n      return \"header\";\n    }\n    // string\n    if(ch == '\"') {\n      stream.skipTo('\"');\n      return \"string\";\n    }\n    if(ch == \"'\") {\n      stream.skipTo(\"'\");\n      return \"string-2\";\n    }\n    // dialplan commands\n    if(ch == '#') {\n      stream.eatWhile(/\\w/);\n      cur = stream.current();\n      if(dpcmd.indexOf(cur) !== -1) {\n        stream.skipToEnd();\n        return \"strong\";\n      }\n    }\n    // application args\n    if(ch == '$'){\n      var ch1 = stream.peek();\n      if(ch1 == '{'){\n        stream.skipTo('}');\n        stream.eat('}');\n        return \"variable-3\";\n      }\n    }\n    // extension\n    stream.eatWhile(/\\w/);\n    cur = stream.current();\n    if(atoms.indexOf(cur) !== -1) {\n      state.extenStart = true;\n      switch(cur) {\n        case 'same': state.extenSame = true; break;\n        case 'include':\n        case 'switch':\n        case 'ignorepat':\n          state.extenInclude = true;break;\n        default:break;\n      }\n      return \"atom\";\n    }\n  }\n\n  return {\n    startState: function() {\n      return {\n        blockComment: false,\n        extenStart: false,\n        extenSame:  false,\n        extenInclude: false,\n        extenExten: false,\n        extenPriority: false,\n        extenApplication: false\n      };\n    },\n    token: function(stream, state) {\n\n      var cur = '';\n      if(stream.eatSpace()) return null;\n      // extension started\n      if(state.extenStart){\n        stream.eatWhile(/[^\\s]/);\n        cur = stream.current();\n        if(/^=>?$/.test(cur)){\n          state.extenExten = true;\n          state.extenStart = false;\n          return \"strong\";\n        } else {\n          state.extenStart = false;\n          stream.skipToEnd();\n          return \"error\";\n        }\n      } else if(state.extenExten) {\n        // set exten and priority\n        state.extenExten = false;\n        state.extenPriority = true;\n        stream.eatWhile(/[^,]/);\n        if(state.extenInclude) {\n          stream.skipToEnd();\n          state.extenPriority = false;\n          state.extenInclude = false;\n        }\n        if(state.extenSame) {\n          state.extenPriority = false;\n          state.extenSame = false;\n          state.extenApplication = true;\n        }\n        return \"tag\";\n      } else if(state.extenPriority) {\n        state.extenPriority = false;\n        state.extenApplication = true;\n        stream.next(); // get comma\n        if(state.extenSame) return null;\n        stream.eatWhile(/[^,]/);\n        return \"number\";\n      } else if(state.extenApplication) {\n        stream.eatWhile(/,/);\n        cur = stream.current();\n        if(cur === ',') return null;\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        state.extenApplication = false;\n        if(apps.indexOf(cur) !== -1){\n          return \"def strong\";\n        }\n      } else{\n        return basicToken(stream,state);\n      }\n\n      return null;\n    },\n\n    blockCommentStart: \";--\",\n    blockCommentEnd: \"--;\",\n    lineComment: \";\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-asterisk\", \"asterisk\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/brainfuck/brainfuck.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod)\n  else\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n  var reserve = \"><+-.,[]\".split(\"\");\n  /*\n  comments can be either:\n  placed behind lines\n\n        +++    this is a comment\n\n  where reserved characters cannot be used\n  or in a loop\n  [\n    this is ok to use [ ] and stuff\n  ]\n  or preceded by #\n  */\n  CodeMirror.defineMode(\"brainfuck\", function() {\n    return {\n      startState: function() {\n        return {\n          commentLine: false,\n          left: 0,\n          right: 0,\n          commentLoop: false\n        }\n      },\n      token: function(stream, state) {\n        if (stream.eatSpace()) return null\n        if(stream.sol()){\n          state.commentLine = false;\n        }\n        var ch = stream.next().toString();\n        if(reserve.indexOf(ch) !== -1){\n          if(state.commentLine === true){\n            if(stream.eol()){\n              state.commentLine = false;\n            }\n            return \"comment\";\n          }\n          if(ch === \"]\" || ch === \"[\"){\n            if(ch === \"[\"){\n              state.left++;\n            }\n            else{\n              state.right++;\n            }\n            return \"bracket\";\n          }\n          else if(ch === \"+\" || ch === \"-\"){\n            return \"keyword\";\n          }\n          else if(ch === \"<\" || ch === \">\"){\n            return \"atom\";\n          }\n          else if(ch === \".\" || ch === \",\"){\n            return \"def\";\n          }\n        }\n        else{\n          state.commentLine = true;\n          if(stream.eol()){\n            state.commentLine = false;\n          }\n          return \"comment\";\n        }\n        if(stream.eol()){\n          state.commentLine = false;\n        }\n      }\n    };\n  });\nCodeMirror.defineMIME(\"text/x-brainfuck\",\"brainfuck\")\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/clike/clike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction Context(indented, column, type, info, align, prev) {\n  this.indented = indented;\n  this.column = column;\n  this.type = type;\n  this.info = info;\n  this.align = align;\n  this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n  var indent = state.indented;\n  if (state.context && state.context.type == \"statement\" && type != \"statement\")\n    indent = state.context.indented;\n  return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n  var t = state.context.type;\n  if (t == \")\" || t == \"]\" || t == \"}\")\n    state.indented = state.context.indented;\n  return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n  if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n  if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n  if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n  for (;;) {\n    if (!context || context.type == \"top\") return true;\n    if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n    context = context.prev;\n  }\n}\n\nCodeMirror.defineMode(\"clike\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      keywords = parserConfig.keywords || {},\n      types = parserConfig.types || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      defKeywords = parserConfig.defKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings,\n      indentStatements = parserConfig.indentStatements !== false,\n      indentSwitch = parserConfig.indentSwitch !== false,\n      namespaceSeparator = parserConfig.namespaceSeparator,\n      isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n      numberStart = parserConfig.numberStart || /[\\d\\.]/,\n      number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n      isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n      isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n      // An optional function that takes a {string} token and returns true if it\n      // should be treated as a builtin.\n      isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n  var curPunc, isDefKeyword;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (numberStart.test(ch)) {\n      stream.backUp(1)\n      if (stream.match(number)) return \"number\"\n      stream.next()\n    }\n    if (isPunctuationChar.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n      return \"operator\";\n    }\n    stream.eatWhile(isIdentifierChar);\n    if (namespaceSeparator) while (stream.match(namespaceSeparator))\n      stream.eatWhile(isIdentifierChar);\n\n    var cur = stream.current();\n    if (contains(keywords, cur)) {\n      if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n      if (contains(defKeywords, cur)) isDefKeyword = true;\n      return \"keyword\";\n    }\n    if (contains(types, cur)) return \"type\";\n    if (contains(builtin, cur)\n        || (isReservedIdentifier && isReservedIdentifier(cur))) {\n      if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (contains(atoms, cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function maybeEOL(stream, state) {\n    if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n      state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", null, false),\n        indented: 0,\n        startOfLine: true,\n        prevToken: null\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n      curPunc = isDefKeyword = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n        while (state.context.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (indentStatements &&\n               (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n                (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n        pushContext(state, stream.column(), \"statement\", stream.current());\n      }\n\n      if (style == \"variable\" &&\n          ((state.prevToken == \"def\" ||\n            (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n             isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n        style = \"def\";\n\n      if (hooks.token) {\n        var result = hooks.token(stream, state, style);\n        if (result !== undefined) style = result;\n      }\n\n      if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n      state.startOfLine = false;\n      state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n      maybeEOL(stream, state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      if (parserConfig.dontIndentStatements)\n        while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n          ctx = ctx.prev\n      if (hooks.indent) {\n        var hook = hooks.indent(state, ctx, textAfter, indentUnit);\n        if (typeof hook == \"number\") return hook\n      }\n      var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n      if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n        while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n        return ctx.indented\n      }\n      if (ctx.type == \"statement\")\n        return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n        return ctx.column + (closing ? 0 : 1);\n      if (ctx.type == \")\" && !closing)\n        return ctx.indented + statementIndentUnit;\n\n      return ctx.indented + (closing ? 0 : indentUnit) +\n        (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 0);\n    },\n\n    electricInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    blockCommentContinue: \" * \",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  function contains(words, word) {\n    if (typeof words === \"function\") {\n      return words(word);\n    } else {\n      return words.propertyIsEnumerable(word);\n    }\n  }\n  var cKeywords = \"auto if break case register continue return default do sizeof \" +\n    \"static else struct switch extern typedef union for goto while enum const \" +\n    \"volatile inline restrict asm fortran\";\n\n  // Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\n  var cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n  \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n  \"explicit export final friend import module mutable namespace new noexcept \" +\n  \"not not_eq operator or or_eq override private protected public \" +\n  \"reinterpret_cast requires static_assert static_cast template this \" +\n  \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\n  var objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n  \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n  \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n  \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n  \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\n  var objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n  \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n  \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n  \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n  // Do not use this. Use the cTypes function below. This is global just to avoid\n  // excessive calls when cTypes is being called multiple times during a parse.\n  var basicCTypes = words(\"int long char short double float unsigned signed \" +\n    \"void bool\");\n\n  // Do not use this. Use the objCTypes function below. This is global just to avoid\n  // excessive calls when objCTypes is being called multiple times during a parse.\n  var basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n  // Returns true if identifier is a \"C\" type.\n  // C type is defined as those that are reserved by the compiler (basicTypes),\n  // and those that end in _t (Reserved by POSIX for types)\n  // http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\n  function cTypes(identifier) {\n    return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n  }\n\n  // Returns true if identifier is a \"Objective C\" type.\n  function objCTypes(identifier) {\n    return cTypes(identifier) || contains(basicObjCTypes, identifier);\n  }\n\n  var cBlockKeywords = \"case do else for if switch while struct enum union\";\n  var cDefKeywords = \"struct enum union\";\n\n  function cppHook(stream, state) {\n    if (!state.startOfLine) return false\n    for (var ch, next = null; ch = stream.peek();) {\n      if (ch == \"\\\\\" && stream.match(/^.$/)) {\n        next = cppHook\n        break\n      } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n        break\n      }\n      stream.next()\n    }\n    state.tokenize = next\n    return \"meta\"\n  }\n\n  function pointerHook(_stream, state) {\n    if (state.prevToken == \"type\") return \"type\";\n    return false;\n  }\n\n  // For C and C++ (and ObjC): identifiers starting with __\n  // or _ followed by a capital letter are reserved for the compiler.\n  function cIsReservedIdentifier(token) {\n    if (!token || token.length < 2) return false;\n    if (token[0] != '_') return false;\n    return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n  }\n\n  function cpp14Literal(stream) {\n    stream.eatWhile(/[\\w\\.']/);\n    return \"number\";\n  }\n\n  function cpp11StringHook(stream, state) {\n    stream.backUp(1);\n    // Raw strings.\n    if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n      var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n      if (!match) {\n        return false;\n      }\n      state.cpp11RawStringDelim = match[1];\n      state.tokenize = tokenRawString;\n      return tokenRawString(stream, state);\n    }\n    // Unicode strings/chars.\n    if (stream.match(/^(?:u8|u|U|L)/)) {\n      if (stream.match(/^[\"']/, /* eat */ false)) {\n        return \"string\";\n      }\n      return false;\n    }\n    // Ignore this hook.\n    stream.next();\n    return false;\n  }\n\n  function cppLooksLikeConstructor(word) {\n    var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n    return lastTwo && lastTwo[1] == lastTwo[2];\n  }\n\n  // C#-style strings where \"\" escapes a quote.\n  function tokenAtString(stream, state) {\n    var next;\n    while ((next = stream.next()) != null) {\n      if (next == '\"' && !stream.eat('\"')) {\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"string\";\n  }\n\n  // C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n  // <delim> can be a string up to 16 characters long.\n  function tokenRawString(stream, state) {\n    // Escape characters that have special regex meanings.\n    var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n    var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n    if (match)\n      state.tokenize = null;\n    else\n      stream.skipToEnd();\n    return \"string\";\n  }\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\") mimes = [mimes];\n    var words = [];\n    function add(obj) {\n      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n        words.push(prop);\n    }\n    add(mode.keywords);\n    add(mode.types);\n    add(mode.builtin);\n    add(mode.atoms);\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i = 0; i < mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-csrc\", \"text/x-c\", \"text/x-chdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords),\n    types: cTypes,\n    blockKeywords: words(cBlockKeywords),\n    defKeywords: words(cDefKeywords),\n    typeFirstDefinitions: true,\n    atoms: words(\"NULL true false\"),\n    isReservedIdentifier: cIsReservedIdentifier,\n    hooks: {\n      \"#\": cppHook,\n      \"*\": pointerHook,\n    },\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def([\"text/x-c++src\", \"text/x-c++hdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords + \" \" + cppKeywords),\n    types: cTypes,\n    blockKeywords: words(cBlockKeywords + \" class try catch\"),\n    defKeywords: words(cDefKeywords + \" class namespace\"),\n    typeFirstDefinitions: true,\n    atoms: words(\"true false NULL nullptr\"),\n    dontIndentStatements: /^template$/,\n    isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n    isReservedIdentifier: cIsReservedIdentifier,\n    hooks: {\n      \"#\": cppHook,\n      \"*\": pointerHook,\n      \"u\": cpp11StringHook,\n      \"U\": cpp11StringHook,\n      \"L\": cpp11StringHook,\n      \"R\": cpp11StringHook,\n      \"0\": cpp14Literal,\n      \"1\": cpp14Literal,\n      \"2\": cpp14Literal,\n      \"3\": cpp14Literal,\n      \"4\": cpp14Literal,\n      \"5\": cpp14Literal,\n      \"6\": cpp14Literal,\n      \"7\": cpp14Literal,\n      \"8\": cpp14Literal,\n      \"9\": cpp14Literal,\n      token: function(stream, state, style) {\n        if (style == \"variable\" && stream.peek() == \"(\" &&\n            (state.prevToken == \";\" || state.prevToken == null ||\n             state.prevToken == \"}\") &&\n            cppLooksLikeConstructor(stream.current()))\n          return \"def\";\n      }\n    },\n    namespaceSeparator: \"::\",\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-java\", {\n    name: \"clike\",\n    keywords: words(\"abstract assert break case catch class const continue default \" +\n                    \"do else enum extends final finally for goto if implements import \" +\n                    \"instanceof interface native new package private protected public \" +\n                    \"return static strictfp super switch synchronized this throw throws transient \" +\n                    \"try volatile while @interface\"),\n    types: words(\"byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n                 \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n    blockKeywords: words(\"catch class do else finally for if switch try while\"),\n    defKeywords: words(\"class interface enum @interface\"),\n    typeFirstDefinitions: true,\n    atoms: words(\"true false null\"),\n    number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n    hooks: {\n      \"@\": function(stream) {\n        // Don't match the @interface keyword.\n        if (stream.match('interface', false)) return false;\n\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    },\n    modeProps: {fold: [\"brace\", \"import\"]}\n  });\n\n  def(\"text/x-csharp\", {\n    name: \"clike\",\n    keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n                    \" default delegate do else enum event explicit extern finally fixed for\" +\n                    \" foreach goto if implicit in interface internal is lock namespace new\" +\n                    \" operator out override params private protected public readonly ref return sealed\" +\n                    \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n                    \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n                    \" global group into join let orderby partial remove select set value var yield\"),\n    types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n                 \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n                 \" UInt64 bool byte char decimal double short int long object\"  +\n                 \" sbyte float string ushort uint ulong\"),\n    blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n    defKeywords: words(\"class interface namespace struct var\"),\n    typeFirstDefinitions: true,\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"@\": function(stream, state) {\n        if (stream.eat('\"')) {\n          state.tokenize = tokenAtString;\n          return tokenAtString(stream, state);\n        }\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n  function tokenTripleString(stream, state) {\n    var escaped = false;\n    while (!stream.eol()) {\n      if (!escaped && stream.match('\"\"\"')) {\n        state.tokenize = null;\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  function tokenNestedComment(depth) {\n    return function (stream, state) {\n      var ch\n      while (ch = stream.next()) {\n        if (ch == \"*\" && stream.eat(\"/\")) {\n          if (depth == 1) {\n            state.tokenize = null\n            break\n          } else {\n            state.tokenize = tokenNestedComment(depth - 1)\n            return state.tokenize(stream, state)\n          }\n        } else if (ch == \"/\" && stream.eat(\"*\")) {\n          state.tokenize = tokenNestedComment(depth + 1)\n          return state.tokenize(stream, state)\n        }\n      }\n      return \"comment\"\n    }\n  }\n\n  def(\"text/x-scala\", {\n    name: \"clike\",\n    keywords: words(\n      /* scala */\n      \"abstract case catch class def do else extends final finally for forSome if \" +\n      \"implicit import lazy match new null object override package private protected return \" +\n      \"sealed super this throw trait try type val var while with yield _ \" +\n\n      /* package scala */\n      \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n      \"readChar readInt readLong readFloat readDouble\"\n    ),\n    types: words(\n      \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n      \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n      \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n      \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n      \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n      /* package java.lang */\n      \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n      \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n      \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n      \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n    ),\n    multiLineStrings: true,\n    blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n    defKeywords: words(\"class enum def object package trait type val var\"),\n    atoms: words(\"true false null\"),\n    indentStatements: false,\n    indentSwitch: false,\n    isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      },\n      '\"': function(stream, state) {\n        if (!stream.match('\"\"')) return false;\n        state.tokenize = tokenTripleString;\n        return state.tokenize(stream, state);\n      },\n      \"'\": function(stream) {\n        stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n        return \"atom\";\n      },\n      \"=\": function(stream, state) {\n        var cx = state.context\n        if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n          state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n          return \"operator\"\n        } else {\n          return false\n        }\n      },\n\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false\n        state.tokenize = tokenNestedComment(1)\n        return state.tokenize(stream, state)\n      }\n    },\n    modeProps: {closeBrackets: {pairs: '()[]{}\"\"', triples: '\"'}}\n  });\n\n  function tokenKotlinString(tripleString){\n    return function (stream, state) {\n      var escaped = false, next, end = false;\n      while (!stream.eol()) {\n        if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n        if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n        next = stream.next();\n        if(!escaped && next == \"$\" && stream.match('{'))\n          stream.skipTo(\"}\");\n        escaped = !escaped && next == \"\\\\\" && !tripleString;\n      }\n      if (end || !tripleString)\n        state.tokenize = null;\n      return \"string\";\n    }\n  }\n\n  def(\"text/x-kotlin\", {\n    name: \"clike\",\n    keywords: words(\n      /*keywords*/\n      \"package as typealias class interface this super val operator \" +\n      \"var fun for is in This throw return annotation \" +\n      \"break continue object if else while do try when !in !is as? \" +\n\n      /*soft keywords*/\n      \"file import where by get set abstract enum open inner override private public internal \" +\n      \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n      \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n      \"external annotation crossinline const operator infix suspend actual expect setparam\"\n    ),\n    types: words(\n      /* package java.lang */\n      \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n      \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n      \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n      \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n      \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n      \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n    ),\n    intendSwitch: false,\n    indentStatements: false,\n    multiLineStrings: true,\n    number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n    blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n    defKeywords: words(\"class val var object interface fun\"),\n    atoms: words(\"true false null this\"),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      },\n      '*': function(_stream, state) {\n        return state.prevToken == '.' ? 'variable' : 'operator';\n      },\n      '\"': function(stream, state) {\n        state.tokenize = tokenKotlinString(stream.match('\"\"'));\n        return state.tokenize(stream, state);\n      },\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false;\n        state.tokenize = tokenNestedComment(1);\n        return state.tokenize(stream, state)\n      },\n      indent: function(state, ctx, textAfter, indentUnit) {\n        var firstChar = textAfter && textAfter.charAt(0);\n        if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n          return state.indented;\n        if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n          state.prevToken == \"variable\" && firstChar == \".\" ||\n          (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n          return indentUnit * 2 + ctx.indented;\n        if (ctx.align && ctx.type == \"}\")\n          return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n      }\n    },\n    modeProps: {closeBrackets: {triples: '\"'}}\n  });\n\n  def([\"x-shader/x-vertex\", \"x-shader/x-fragment\"], {\n    name: \"clike\",\n    keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n                    \"sampler1DShadow sampler2DShadow \" +\n                    \"const attribute uniform varying \" +\n                    \"break continue discard return \" +\n                    \"for while do if else struct \" +\n                    \"in out inout\"),\n    types: words(\"float int bool void \" +\n                 \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n                 \"mat2 mat3 mat4\"),\n    blockKeywords: words(\"for while do if else struct\"),\n    builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n                    \"pow exp log exp2 sqrt inversesqrt \" +\n                    \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n                    \"length distance dot cross normalize ftransform faceforward \" +\n                    \"reflect refract matrixCompMult \" +\n                    \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n                    \"equal notEqual any all not \" +\n                    \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n                    \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n                    \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n                    \"textureCube textureCubeLod \" +\n                    \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n                    \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n                    \"dFdx dFdy fwidth \" +\n                    \"noise1 noise2 noise3 noise4\"),\n    atoms: words(\"true false \" +\n                \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n                \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n                \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n                \"gl_FogCoord gl_PointCoord \" +\n                \"gl_Position gl_PointSize gl_ClipVertex \" +\n                \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n                \"gl_TexCoord gl_FogFragCoord \" +\n                \"gl_FragCoord gl_FrontFacing \" +\n                \"gl_FragData gl_FragDepth \" +\n                \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n                \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n                \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n                \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n                \"gl_ProjectionMatrixInverseTranspose \" +\n                \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n                \"gl_TextureMatrixInverseTranspose \" +\n                \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n                \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n                \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n                \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n                \"gl_FogParameters \" +\n                \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n                \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n                \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n                \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n                \"gl_MaxDrawBuffers\"),\n    indentSwitch: false,\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-nesc\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n                    \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n                    \"signal task uses abstract extends\"),\n    types: cTypes,\n    blockKeywords: words(cBlockKeywords),\n    atoms: words(\"null true false\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-objectivec\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \" \" + objCKeywords),\n    types: objCTypes,\n    builtin: words(objCBuiltins),\n    blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n    defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n    dontIndentStatements: /^@.*$/,\n    typeFirstDefinitions: true,\n    atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n    isReservedIdentifier: cIsReservedIdentifier,\n    hooks: {\n      \"#\": cppHook,\n      \"*\": pointerHook,\n    },\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-objectivec++\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n    types: objCTypes,\n    builtin: words(objCBuiltins),\n    blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n    defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n    dontIndentStatements: /^@.*$|^template$/,\n    typeFirstDefinitions: true,\n    atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n    isReservedIdentifier: cIsReservedIdentifier,\n    hooks: {\n      \"#\": cppHook,\n      \"*\": pointerHook,\n      \"u\": cpp11StringHook,\n      \"U\": cpp11StringHook,\n      \"L\": cpp11StringHook,\n      \"R\": cpp11StringHook,\n      \"0\": cpp14Literal,\n      \"1\": cpp14Literal,\n      \"2\": cpp14Literal,\n      \"3\": cpp14Literal,\n      \"4\": cpp14Literal,\n      \"5\": cpp14Literal,\n      \"6\": cpp14Literal,\n      \"7\": cpp14Literal,\n      \"8\": cpp14Literal,\n      \"9\": cpp14Literal,\n      token: function(stream, state, style) {\n        if (style == \"variable\" && stream.peek() == \"(\" &&\n            (state.prevToken == \";\" || state.prevToken == null ||\n             state.prevToken == \"}\") &&\n            cppLooksLikeConstructor(stream.current()))\n          return \"def\";\n      }\n    },\n    namespaceSeparator: \"::\",\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-squirrel\", {\n    name: \"clike\",\n    keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n                    \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n    types: cTypes,\n    blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n    defKeywords: words(\"function local class\"),\n    typeFirstDefinitions: true,\n    atoms: words(\"true false null\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  // Ceylon Strings need to deal with interpolation\n  var stringTokenizer = null;\n  function tokenCeylonString(type) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while (!stream.eol()) {\n        if (!escaped && stream.match('\"') &&\n              (type == \"single\" || stream.match('\"\"'))) {\n          end = true;\n          break;\n        }\n        if (!escaped && stream.match('``')) {\n          stringTokenizer = tokenCeylonString(type);\n          end = true;\n          break;\n        }\n        next = stream.next();\n        escaped = type == \"single\" && !escaped && next == \"\\\\\";\n      }\n      if (end)\n          state.tokenize = null;\n      return \"string\";\n    }\n  }\n\n  def(\"text/x-ceylon\", {\n    name: \"clike\",\n    keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n                    \" exists extends finally for function given if import in interface is let module new\" +\n                    \" nonempty object of out outer package return satisfies super switch then this throw\" +\n                    \" try value void while\"),\n    types: function(word) {\n        // In Ceylon all identifiers that start with an uppercase are types\n        var first = word.charAt(0);\n        return (first === first.toUpperCase() && first !== first.toLowerCase());\n    },\n    blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n    defKeywords: words(\"class dynamic function interface module object package value\"),\n    builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n                   \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n    isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n    isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n    numberStart: /[\\d#$]/,\n    number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n    multiLineStrings: true,\n    typeFirstDefinitions: true,\n    atoms: words(\"true false null larger smaller equal empty finished\"),\n    indentSwitch: false,\n    styleDefs: false,\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      },\n      '\"': function(stream, state) {\n          state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n          return state.tokenize(stream, state);\n        },\n      '`': function(stream, state) {\n          if (!stringTokenizer || !stream.match('`')) return false;\n          state.tokenize = stringTokenizer;\n          stringTokenizer = null;\n          return state.tokenize(stream, state);\n        },\n      \"'\": function(stream) {\n        stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n        return \"atom\";\n      },\n      token: function(_stream, state, style) {\n          if ((style == \"variable\" || style == \"type\") &&\n              state.prevToken == \".\") {\n            return \"variable-2\";\n          }\n        }\n    },\n    modeProps: {\n        fold: [\"brace\", \"import\"],\n        closeBrackets: {triples: '\"'}\n    }\n  });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/clojure/clojure.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports === \"object\" && typeof module === \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define === \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"clojure\", function (options) {\n  var atoms = [\"false\", \"nil\", \"true\"];\n  var specialForms = [\".\", \"catch\", \"def\", \"do\", \"if\", \"monitor-enter\",\n      \"monitor-exit\", \"new\", \"quote\", \"recur\", \"set!\", \"throw\", \"try\", \"var\"];\n  var coreSymbols = [\"*\", \"*'\", \"*1\", \"*2\", \"*3\", \"*agent*\",\n      \"*allow-unresolved-vars*\", \"*assert*\", \"*clojure-version*\",\n      \"*command-line-args*\", \"*compile-files*\", \"*compile-path*\",\n      \"*compiler-options*\", \"*data-readers*\", \"*default-data-reader-fn*\", \"*e\",\n      \"*err*\", \"*file*\", \"*flush-on-newline*\", \"*fn-loader*\", \"*in*\",\n      \"*math-context*\", \"*ns*\", \"*out*\", \"*print-dup*\", \"*print-length*\",\n      \"*print-level*\", \"*print-meta*\", \"*print-namespace-maps*\",\n      \"*print-readably*\", \"*read-eval*\", \"*reader-resolver*\", \"*source-path*\",\n      \"*suppress-read*\", \"*unchecked-math*\", \"*use-context-classloader*\",\n      \"*verbose-defrecords*\", \"*warn-on-reflection*\", \"+\", \"+'\", \"-\", \"-'\",\n      \"->\", \"->>\", \"->ArrayChunk\", \"->Eduction\", \"->Vec\", \"->VecNode\",\n      \"->VecSeq\", \"-cache-protocol-fn\", \"-reset-methods\", \"..\", \"/\", \"<\", \"<=\",\n      \"=\", \"==\", \">\", \">=\", \"EMPTY-NODE\", \"Inst\", \"StackTraceElement->vec\",\n      \"Throwable->map\", \"accessor\", \"aclone\", \"add-classpath\", \"add-watch\",\n      \"agent\", \"agent-error\", \"agent-errors\", \"aget\", \"alength\", \"alias\",\n      \"all-ns\", \"alter\", \"alter-meta!\", \"alter-var-root\", \"amap\", \"ancestors\",\n      \"and\", \"any?\", \"apply\", \"areduce\", \"array-map\", \"as->\", \"aset\",\n      \"aset-boolean\", \"aset-byte\", \"aset-char\", \"aset-double\", \"aset-float\",\n      \"aset-int\", \"aset-long\", \"aset-short\", \"assert\", \"assoc\", \"assoc!\",\n      \"assoc-in\", \"associative?\", \"atom\", \"await\", \"await-for\", \"await1\",\n      \"bases\", \"bean\", \"bigdec\", \"bigint\", \"biginteger\", \"binding\", \"bit-and\",\n      \"bit-and-not\", \"bit-clear\", \"bit-flip\", \"bit-not\", \"bit-or\", \"bit-set\",\n      \"bit-shift-left\", \"bit-shift-right\", \"bit-test\", \"bit-xor\", \"boolean\",\n      \"boolean-array\", \"boolean?\", \"booleans\", \"bound-fn\", \"bound-fn*\",\n      \"bound?\", \"bounded-count\", \"butlast\", \"byte\", \"byte-array\", \"bytes\",\n      \"bytes?\", \"case\", \"cast\", \"cat\", \"char\", \"char-array\",\n      \"char-escape-string\", \"char-name-string\", \"char?\", \"chars\", \"chunk\",\n      \"chunk-append\", \"chunk-buffer\", \"chunk-cons\", \"chunk-first\", \"chunk-next\",\n      \"chunk-rest\", \"chunked-seq?\", \"class\", \"class?\", \"clear-agent-errors\",\n      \"clojure-version\", \"coll?\", \"comment\", \"commute\", \"comp\", \"comparator\",\n      \"compare\", \"compare-and-set!\", \"compile\", \"complement\", \"completing\",\n      \"concat\", \"cond\", \"cond->\", \"cond->>\", \"condp\", \"conj\", \"conj!\", \"cons\",\n      \"constantly\", \"construct-proxy\", \"contains?\", \"count\", \"counted?\",\n      \"create-ns\", \"create-struct\", \"cycle\", \"dec\", \"dec'\", \"decimal?\",\n      \"declare\", \"dedupe\", \"default-data-readers\", \"definline\", \"definterface\",\n      \"defmacro\", \"defmethod\", \"defmulti\", \"defn\", \"defn-\", \"defonce\",\n      \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\", \"delay\", \"delay?\",\n      \"deliver\", \"denominator\", \"deref\", \"derive\", \"descendants\", \"destructure\",\n      \"disj\", \"disj!\", \"dissoc\", \"dissoc!\", \"distinct\", \"distinct?\", \"doall\",\n      \"dorun\", \"doseq\", \"dosync\", \"dotimes\", \"doto\", \"double\", \"double-array\",\n      \"double?\", \"doubles\", \"drop\", \"drop-last\", \"drop-while\", \"eduction\",\n      \"empty\", \"empty?\", \"ensure\", \"ensure-reduced\", \"enumeration-seq\",\n      \"error-handler\", \"error-mode\", \"eval\", \"even?\", \"every-pred\", \"every?\",\n      \"ex-data\", \"ex-info\", \"extend\", \"extend-protocol\", \"extend-type\",\n      \"extenders\", \"extends?\", \"false?\", \"ffirst\", \"file-seq\", \"filter\",\n      \"filterv\", \"find\", \"find-keyword\", \"find-ns\", \"find-protocol-impl\",\n      \"find-protocol-method\", \"find-var\", \"first\", \"flatten\", \"float\",\n      \"float-array\", \"float?\", \"floats\", \"flush\", \"fn\", \"fn?\", \"fnext\", \"fnil\",\n      \"for\", \"force\", \"format\", \"frequencies\", \"future\", \"future-call\",\n      \"future-cancel\", \"future-cancelled?\", \"future-done?\", \"future?\",\n      \"gen-class\", \"gen-interface\", \"gensym\", \"get\", \"get-in\", \"get-method\",\n      \"get-proxy-class\", \"get-thread-bindings\", \"get-validator\", \"group-by\",\n      \"halt-when\", \"hash\", \"hash-combine\", \"hash-map\", \"hash-ordered-coll\",\n      \"hash-set\", \"hash-unordered-coll\", \"ident?\", \"identical?\", \"identity\",\n      \"if-let\", \"if-not\", \"if-some\", \"ifn?\", \"import\", \"in-ns\", \"inc\", \"inc'\",\n      \"indexed?\", \"init-proxy\", \"inst-ms\", \"inst-ms*\", \"inst?\", \"instance?\",\n      \"int\", \"int-array\", \"int?\", \"integer?\", \"interleave\", \"intern\",\n      \"interpose\", \"into\", \"into-array\", \"ints\", \"io!\", \"isa?\", \"iterate\",\n      \"iterator-seq\", \"juxt\", \"keep\", \"keep-indexed\", \"key\", \"keys\", \"keyword\",\n      \"keyword?\", \"last\", \"lazy-cat\", \"lazy-seq\", \"let\", \"letfn\", \"line-seq\",\n      \"list\", \"list*\", \"list?\", \"load\", \"load-file\", \"load-reader\",\n      \"load-string\", \"loaded-libs\", \"locking\", \"long\", \"long-array\", \"longs\",\n      \"loop\", \"macroexpand\", \"macroexpand-1\", \"make-array\", \"make-hierarchy\",\n      \"map\", \"map-entry?\", \"map-indexed\", \"map?\", \"mapcat\", \"mapv\", \"max\",\n      \"max-key\", \"memfn\", \"memoize\", \"merge\", \"merge-with\", \"meta\",\n      \"method-sig\", \"methods\", \"min\", \"min-key\", \"mix-collection-hash\", \"mod\",\n      \"munge\", \"name\", \"namespace\", \"namespace-munge\", \"nat-int?\", \"neg-int?\",\n      \"neg?\", \"newline\", \"next\", \"nfirst\", \"nil?\", \"nnext\", \"not\", \"not-any?\",\n      \"not-empty\", \"not-every?\", \"not=\", \"ns\", \"ns-aliases\", \"ns-imports\",\n      \"ns-interns\", \"ns-map\", \"ns-name\", \"ns-publics\", \"ns-refers\",\n      \"ns-resolve\", \"ns-unalias\", \"ns-unmap\", \"nth\", \"nthnext\", \"nthrest\",\n      \"num\", \"number?\", \"numerator\", \"object-array\", \"odd?\", \"or\", \"parents\",\n      \"partial\", \"partition\", \"partition-all\", \"partition-by\", \"pcalls\", \"peek\",\n      \"persistent!\", \"pmap\", \"pop\", \"pop!\", \"pop-thread-bindings\", \"pos-int?\",\n      \"pos?\", \"pr\", \"pr-str\", \"prefer-method\", \"prefers\",\n      \"primitives-classnames\", \"print\", \"print-ctor\", \"print-dup\",\n      \"print-method\", \"print-simple\", \"print-str\", \"printf\", \"println\",\n      \"println-str\", \"prn\", \"prn-str\", \"promise\", \"proxy\",\n      \"proxy-call-with-super\", \"proxy-mappings\", \"proxy-name\", \"proxy-super\",\n      \"push-thread-bindings\", \"pvalues\", \"qualified-ident?\",\n      \"qualified-keyword?\", \"qualified-symbol?\", \"quot\", \"rand\", \"rand-int\",\n      \"rand-nth\", \"random-sample\", \"range\", \"ratio?\", \"rational?\",\n      \"rationalize\", \"re-find\", \"re-groups\", \"re-matcher\", \"re-matches\",\n      \"re-pattern\", \"re-seq\", \"read\", \"read-line\", \"read-string\",\n      \"reader-conditional\", \"reader-conditional?\", \"realized?\", \"record?\",\n      \"reduce\", \"reduce-kv\", \"reduced\", \"reduced?\", \"reductions\", \"ref\",\n      \"ref-history-count\", \"ref-max-history\", \"ref-min-history\", \"ref-set\",\n      \"refer\", \"refer-clojure\", \"reify\", \"release-pending-sends\", \"rem\",\n      \"remove\", \"remove-all-methods\", \"remove-method\", \"remove-ns\",\n      \"remove-watch\", \"repeat\", \"repeatedly\", \"replace\", \"replicate\", \"require\",\n      \"reset!\", \"reset-meta!\", \"reset-vals!\", \"resolve\", \"rest\",\n      \"restart-agent\", \"resultset-seq\", \"reverse\", \"reversible?\", \"rseq\",\n      \"rsubseq\", \"run!\", \"satisfies?\", \"second\", \"select-keys\", \"send\",\n      \"send-off\", \"send-via\", \"seq\", \"seq?\", \"seqable?\", \"seque\", \"sequence\",\n      \"sequential?\", \"set\", \"set-agent-send-executor!\",\n      \"set-agent-send-off-executor!\", \"set-error-handler!\", \"set-error-mode!\",\n      \"set-validator!\", \"set?\", \"short\", \"short-array\", \"shorts\", \"shuffle\",\n      \"shutdown-agents\", \"simple-ident?\", \"simple-keyword?\", \"simple-symbol?\",\n      \"slurp\", \"some\", \"some->\", \"some->>\", \"some-fn\", \"some?\", \"sort\",\n      \"sort-by\", \"sorted-map\", \"sorted-map-by\", \"sorted-set\", \"sorted-set-by\",\n      \"sorted?\", \"special-symbol?\", \"spit\", \"split-at\", \"split-with\", \"str\",\n      \"string?\", \"struct\", \"struct-map\", \"subs\", \"subseq\", \"subvec\", \"supers\",\n      \"swap!\", \"swap-vals!\", \"symbol\", \"symbol?\", \"sync\", \"tagged-literal\",\n      \"tagged-literal?\", \"take\", \"take-last\", \"take-nth\", \"take-while\", \"test\",\n      \"the-ns\", \"thread-bound?\", \"time\", \"to-array\", \"to-array-2d\",\n      \"trampoline\", \"transduce\", \"transient\", \"tree-seq\", \"true?\", \"type\",\n      \"unchecked-add\", \"unchecked-add-int\", \"unchecked-byte\", \"unchecked-char\",\n      \"unchecked-dec\", \"unchecked-dec-int\", \"unchecked-divide-int\",\n      \"unchecked-double\", \"unchecked-float\", \"unchecked-inc\",\n      \"unchecked-inc-int\", \"unchecked-int\", \"unchecked-long\",\n      \"unchecked-multiply\", \"unchecked-multiply-int\", \"unchecked-negate\",\n      \"unchecked-negate-int\", \"unchecked-remainder-int\", \"unchecked-short\",\n      \"unchecked-subtract\", \"unchecked-subtract-int\", \"underive\", \"unquote\",\n      \"unquote-splicing\", \"unreduced\", \"unsigned-bit-shift-right\", \"update\",\n      \"update-in\", \"update-proxy\", \"uri?\", \"use\", \"uuid?\", \"val\", \"vals\",\n      \"var-get\", \"var-set\", \"var?\", \"vary-meta\", \"vec\", \"vector\", \"vector-of\",\n      \"vector?\", \"volatile!\", \"volatile?\", \"vreset!\", \"vswap!\", \"when\",\n      \"when-first\", \"when-let\", \"when-not\", \"when-some\", \"while\",\n      \"with-bindings\", \"with-bindings*\", \"with-in-str\", \"with-loading-context\",\n      \"with-local-vars\", \"with-meta\", \"with-open\", \"with-out-str\",\n      \"with-precision\", \"with-redefs\", \"with-redefs-fn\", \"xml-seq\", \"zero?\",\n      \"zipmap\"];\n  var haveBodyParameter = [\n      \"->\", \"->>\", \"as->\", \"binding\", \"bound-fn\", \"case\", \"catch\", \"comment\",\n      \"cond\", \"cond->\", \"cond->>\", \"condp\", \"def\", \"definterface\", \"defmethod\",\n      \"defn\", \"defmacro\", \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\",\n      \"do\", \"doseq\", \"dotimes\", \"doto\", \"extend\", \"extend-protocol\",\n      \"extend-type\", \"fn\", \"for\", \"future\", \"if\", \"if-let\", \"if-not\", \"if-some\",\n      \"let\", \"letfn\", \"locking\", \"loop\", \"ns\", \"proxy\", \"reify\", \"struct-map\",\n      \"some->\", \"some->>\", \"try\", \"when\", \"when-first\", \"when-let\", \"when-not\",\n      \"when-some\", \"while\", \"with-bindings\", \"with-bindings*\", \"with-in-str\",\n      \"with-loading-context\", \"with-local-vars\", \"with-meta\", \"with-open\",\n      \"with-out-str\", \"with-precision\", \"with-redefs\", \"with-redefs-fn\"];\n\n  CodeMirror.registerHelper(\"hintWords\", \"clojure\",\n    [].concat(atoms, specialForms, coreSymbols));\n\n  var atom = createLookupMap(atoms);\n  var specialForm = createLookupMap(specialForms);\n  var coreSymbol = createLookupMap(coreSymbols);\n  var hasBodyParameter = createLookupMap(haveBodyParameter);\n  var delimiter = /^(?:[\\\\\\[\\]\\s\"(),;@^`{}~]|$)/;\n  var numberLiteral = /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/;\n  var characterLiteral = /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n  // simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*/\n  // simple-symbol    := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n  // qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\n  var qualifiedSymbol = /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n  function base(stream, state) {\n    if (stream.eatSpace() || stream.eat(\",\")) return [\"space\", null];\n    if (stream.match(numberLiteral)) return [null, \"number\"];\n    if (stream.match(characterLiteral)) return [null, \"string-2\"];\n    if (stream.eat(/^\"/)) return (state.tokenize = inString)(stream, state);\n    if (stream.eat(/^[(\\[{]/)) return [\"open\", \"bracket\"];\n    if (stream.eat(/^[)\\]}]/)) return [\"close\", \"bracket\"];\n    if (stream.eat(/^;/)) {stream.skipToEnd(); return [\"space\", \"comment\"];}\n    if (stream.eat(/^[#'@^`~]/)) return [null, \"meta\"];\n\n    var matches = stream.match(qualifiedSymbol);\n    var symbol = matches && matches[0];\n\n    if (!symbol) {\n      // advance stream by at least one character so we don't get stuck.\n      stream.next();\n      stream.eatWhile(function (c) {return !is(c, delimiter);});\n      return [null, \"error\"];\n    }\n\n    if (symbol === \"comment\" && state.lastToken === \"(\")\n      return (state.tokenize = inComment)(stream, state);\n    if (is(symbol, atom) || symbol.charAt(0) === \":\") return [\"symbol\", \"atom\"];\n    if (is(symbol, specialForm) || is(symbol, coreSymbol)) return [\"symbol\", \"keyword\"];\n    if (state.lastToken === \"(\") return [\"symbol\", \"builtin\"]; // other operator\n\n    return [\"symbol\", \"variable\"];\n  }\n\n  function inString(stream, state) {\n    var escaped = false, next;\n\n    while (next = stream.next()) {\n      if (next === \"\\\"\" && !escaped) {state.tokenize = base; break;}\n      escaped = !escaped && next === \"\\\\\";\n    }\n\n    return [null, \"string\"];\n  }\n\n  function inComment(stream, state) {\n    var parenthesisCount = 1;\n    var next;\n\n    while (next = stream.next()) {\n      if (next === \")\") parenthesisCount--;\n      if (next === \"(\") parenthesisCount++;\n      if (parenthesisCount === 0) {\n        stream.backUp(1);\n        state.tokenize = base;\n        break;\n      }\n    }\n\n    return [\"space\", \"comment\"];\n  }\n\n  function createLookupMap(words) {\n    var obj = {};\n\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n\n    return obj;\n  }\n\n  function is(value, test) {\n    if (test instanceof RegExp) return test.test(value);\n    if (test instanceof Object) return test.propertyIsEnumerable(value);\n  }\n\n  return {\n    startState: function () {\n      return {\n        ctx: {prev: null, start: 0, indentTo: 0},\n        lastToken: null,\n        tokenize: base\n      };\n    },\n\n    token: function (stream, state) {\n      if (stream.sol() && (typeof state.ctx.indentTo !== \"number\"))\n        state.ctx.indentTo = state.ctx.start + 1;\n\n      var typeStylePair = state.tokenize(stream, state);\n      var type = typeStylePair[0];\n      var style = typeStylePair[1];\n      var current = stream.current();\n\n      if (type !== \"space\") {\n        if (state.lastToken === \"(\" && state.ctx.indentTo === null) {\n          if (type === \"symbol\" && is(current, hasBodyParameter))\n            state.ctx.indentTo = state.ctx.start + options.indentUnit;\n          else state.ctx.indentTo = \"next\";\n        } else if (state.ctx.indentTo === \"next\") {\n          state.ctx.indentTo = stream.column();\n        }\n\n        state.lastToken = current;\n      }\n\n      if (type === \"open\")\n        state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n      else if (type === \"close\") state.ctx = state.ctx.prev || state.ctx;\n\n      return style;\n    },\n\n    indent: function (state) {\n      var i = state.ctx.indentTo;\n\n      return (typeof i === \"number\") ?\n        i :\n        state.ctx.start + 1;\n    },\n\n    closeBrackets: {pairs: \"()[]{}\\\"\\\"\"},\n    lineComment: \";;\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-clojure\", \"clojure\");\nCodeMirror.defineMIME(\"text/x-clojurescript\", \"clojure\");\nCodeMirror.defineMIME(\"application/edn\", \"clojure\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/cmake/cmake.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod);\n  else\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"cmake\", function () {\n  var variable_regex = /({)?[a-zA-Z0-9_]+(})?/;\n\n  function tokenString(stream, state) {\n    var current, prev, found_var = false;\n    while (!stream.eol() && (current = stream.next()) != state.pending) {\n      if (current === '$' && prev != '\\\\' && state.pending == '\"') {\n        found_var = true;\n        break;\n      }\n      prev = current;\n    }\n    if (found_var) {\n      stream.backUp(1);\n    }\n    if (current == state.pending) {\n      state.continueString = false;\n    } else {\n      state.continueString = true;\n    }\n    return \"string\";\n  }\n\n  function tokenize(stream, state) {\n    var ch = stream.next();\n\n    // Have we found a variable?\n    if (ch === '$') {\n      if (stream.match(variable_regex)) {\n        return 'variable-2';\n      }\n      return 'variable';\n    }\n    // Should we still be looking for the end of a string?\n    if (state.continueString) {\n      // If so, go through the loop again\n      stream.backUp(1);\n      return tokenString(stream, state);\n    }\n    // Do we just have a function on our hands?\n    // In 'cmake_minimum_required (VERSION 2.8.8)', 'cmake_minimum_required' is matched\n    if (stream.match(/(\\s+)?\\w+\\(/) || stream.match(/(\\s+)?\\w+\\ \\(/)) {\n      stream.backUp(1);\n      return 'def';\n    }\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // Have we found a string?\n    if (ch == \"'\" || ch == '\"') {\n      // Store the type (single or double)\n      state.pending = ch;\n      // Perform the looping function to find the end\n      return tokenString(stream, state);\n    }\n    if (ch == '(' || ch == ')') {\n      return 'bracket';\n    }\n    if (ch.match(/[0-9]/)) {\n      return 'number';\n    }\n    stream.eatWhile(/[\\w-]/);\n    return null;\n  }\n  return {\n    startState: function () {\n      var state = {};\n      state.inDefinition = false;\n      state.inInclude = false;\n      state.continueString = false;\n      state.pending = false;\n      return state;\n    },\n    token: function (stream, state) {\n      if (stream.eatSpace()) return null;\n      return tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-cmake\", \"cmake\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/cobol/cobol.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Author: Gautam Mehta\n * Branched from CodeMirror's Scheme mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"cobol\", function () {\n  var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n      ATOM = \"atom\", NUMBER = \"number\", KEYWORD = \"keyword\", MODTAG = \"header\",\n      COBOLLINENUM = \"def\", PERIOD = \"link\";\n  function makeKeywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var atoms = makeKeywords(\"TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES \");\n  var keywords = makeKeywords(\n      \"ACCEPT ACCESS ACQUIRE ADD ADDRESS \" +\n      \"ADVANCING AFTER ALIAS ALL ALPHABET \" +\n      \"ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED \" +\n      \"ALSO ALTER ALTERNATE AND ANY \" +\n      \"ARE AREA AREAS ARITHMETIC ASCENDING \" +\n      \"ASSIGN AT ATTRIBUTE AUTHOR AUTO \" +\n      \"AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS \" +\n      \"B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP \" +\n      \"BEFORE BELL BINARY BIT BITS \" +\n      \"BLANK BLINK BLOCK BOOLEAN BOTTOM \" +\n      \"BY CALL CANCEL CD CF \" +\n      \"CH CHARACTER CHARACTERS CLASS CLOCK-UNITS \" +\n      \"CLOSE COBOL CODE CODE-SET COL \" +\n      \"COLLATING COLUMN COMMA COMMIT COMMITMENT \" +\n      \"COMMON COMMUNICATION COMP COMP-0 COMP-1 \" +\n      \"COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 \" +\n      \"COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 \" +\n      \"COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 \" +\n      \"COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE \" +\n      \"CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS \" +\n      \"CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS \" +\n      \"CONVERTING COPY CORR CORRESPONDING COUNT \" +\n      \"CRT CRT-UNDER CURRENCY CURRENT CURSOR \" +\n      \"DATA DATE DATE-COMPILED DATE-WRITTEN DAY \" +\n      \"DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION \" +\n      \"DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS \" +\n      \"DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE \" +\n      \"DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING \" +\n      \"DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED \" +\n      \"DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION \" +\n      \"DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 \" +\n      \"DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 \" +\n      \"DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION \" +\n      \"DOWN DROP DUPLICATE DUPLICATES DYNAMIC \" +\n      \"EBCDIC EGI EJECT ELSE EMI \" +\n      \"EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. \" +\n      \"END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY \" +\n      \"END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY \" +\n      \"END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN \" +\n      \"END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT \" +\n      \"END-UNSTRING END-WRITE END-XML ENTER ENTRY \" +\n      \"ENVIRONMENT EOP EQUAL EQUALS ERASE \" +\n      \"ERROR ESI EVALUATE EVERY EXCEEDS \" +\n      \"EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL \" +\n      \"EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL \" +\n      \"FILE-STREAM FILES FILLER FINAL FIND \" +\n      \"FINISH FIRST FOOTING FOR FOREGROUND-COLOR \" +\n      \"FOREGROUND-COLOUR FORMAT FREE FROM FULL \" +\n      \"FUNCTION GENERATE GET GIVING GLOBAL \" +\n      \"GO GOBACK GREATER GROUP HEADING \" +\n      \"HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL \" +\n      \"ID IDENTIFICATION IF IN INDEX \" +\n      \"INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 \" +\n      \"INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED \" +\n      \"INDIC INDICATE INDICATOR INDICATORS INITIAL \" +\n      \"INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT \" +\n      \"INSTALLATION INTO INVALID INVOKE IS \" +\n      \"JUST JUSTIFIED KANJI KEEP KEY \" +\n      \"LABEL LAST LD LEADING LEFT \" +\n      \"LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY \" +\n      \"LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER \" +\n      \"LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE \" +\n      \"LOCALE LOCALLY LOCK \" +\n      \"MEMBER MEMORY MERGE MESSAGE METACLASS \" +\n      \"MODE MODIFIED MODIFY MODULES MOVE \" +\n      \"MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE \" +\n      \"NEXT NO NO-ECHO NONE NOT \" +\n      \"NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER \" +\n      \"NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS \" +\n      \"OF OFF OMITTED ON ONLY \" +\n      \"OPEN OPTIONAL OR ORDER ORGANIZATION \" +\n      \"OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL \" +\n      \"PADDING PAGE PAGE-COUNTER PARSE PERFORM \" +\n      \"PF PH PIC PICTURE PLUS \" +\n      \"POINTER POSITION POSITIVE PREFIX PRESENT \" +\n      \"PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES \" +\n      \"PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID \" +\n      \"PROMPT PROTECTED PURGE QUEUE QUOTE \" +\n      \"QUOTES RANDOM RD READ READY \" +\n      \"REALM RECEIVE RECONNECT RECORD RECORD-NAME \" +\n      \"RECORDS RECURSIVE REDEFINES REEL REFERENCE \" +\n      \"REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE \" +\n      \"REMAINDER REMOVAL RENAMES REPEATED REPLACE \" +\n      \"REPLACING REPORT REPORTING REPORTS REPOSITORY \" +\n      \"REQUIRED RERUN RESERVE RESET RETAINING \" +\n      \"RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO \" +\n      \"REVERSED REWIND REWRITE RF RH \" +\n      \"RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED \" +\n      \"RUN SAME SCREEN SD SEARCH \" +\n      \"SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT \" +\n      \"SELECT SEND SENTENCE SEPARATE SEQUENCE \" +\n      \"SEQUENTIAL SET SHARED SIGN SIZE \" +\n      \"SKIP1 SKIP2 SKIP3 SORT SORT-MERGE \" +\n      \"SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL \" +\n      \"SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 \" +\n      \"START STARTING STATUS STOP STORE \" +\n      \"STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA \" +\n      \"SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS \" +\n      \"SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT \" +\n      \"TABLE TALLYING TAPE TENANT TERMINAL \" +\n      \"TERMINATE TEST TEXT THAN THEN \" +\n      \"THROUGH THRU TIME TIMES TITLE \" +\n      \"TO TOP TRAILING TRAILING-SIGN TRANSACTION \" +\n      \"TYPE TYPEDEF UNDERLINE UNEQUAL UNIT \" +\n      \"UNSTRING UNTIL UP UPDATE UPON \" +\n      \"USAGE USAGE-MODE USE USING VALID \" +\n      \"VALIDATE VALUE VALUES VARYING VLR \" +\n      \"WAIT WHEN WHEN-COMPILED WITH WITHIN \" +\n      \"WORDS WORKING-STORAGE WRITE XML XML-CODE \" +\n      \"XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL \" );\n\n  var builtins = makeKeywords(\"- * ** / + < <= = > >= \");\n  var tests = {\n    digit: /\\d/,\n    digit_or_colon: /[\\d:]/,\n    hex: /[0-9a-f]/i,\n    sign: /[+-]/,\n    exponent: /e/i,\n    keyword_char: /[^\\s\\(\\[\\;\\)\\]]/,\n    symbol: /[\\w*+\\-]/\n  };\n  function isNumber(ch, stream){\n    // hex\n    if ( ch === '0' && stream.eat(/x/i) ) {\n      stream.eatWhile(tests.hex);\n      return true;\n    }\n    // leading sign\n    if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {\n      stream.eat(tests.sign);\n      ch = stream.next();\n    }\n    if ( tests.digit.test(ch) ) {\n      stream.eat(ch);\n      stream.eatWhile(tests.digit);\n      if ( '.' == stream.peek()) {\n        stream.eat('.');\n        stream.eatWhile(tests.digit);\n      }\n      if ( stream.eat(tests.exponent) ) {\n        stream.eat(tests.sign);\n        stream.eatWhile(tests.digit);\n      }\n      return true;\n    }\n    return false;\n  }\n  return {\n    startState: function () {\n      return {\n        indentStack: null,\n        indentation: 0,\n        mode: false\n      };\n    },\n    token: function (stream, state) {\n      if (state.indentStack == null && stream.sol()) {\n        // update indentation, but only if indentStack is empty\n        state.indentation = 6 ; //stream.indentation();\n      }\n      // skip spaces\n      if (stream.eatSpace()) {\n        return null;\n      }\n      var returnType = null;\n      switch(state.mode){\n      case \"string\": // multi-line string parsing mode\n        var next = false;\n        while ((next = stream.next()) != null) {\n          if (next == \"\\\"\" || next == \"\\'\") {\n            state.mode = false;\n            break;\n          }\n        }\n        returnType = STRING; // continue on in string mode\n        break;\n      default: // default parsing mode\n        var ch = stream.next();\n        var col = stream.column();\n        if (col >= 0 && col <= 5) {\n          returnType = COBOLLINENUM;\n        } else if (col >= 72 && col <= 79) {\n          stream.skipToEnd();\n          returnType = MODTAG;\n        } else if (ch == \"*\" && col == 6) { // comment\n          stream.skipToEnd(); // rest of the line is a comment\n          returnType = COMMENT;\n        } else if (ch == \"\\\"\" || ch == \"\\'\") {\n          state.mode = \"string\";\n          returnType = STRING;\n        } else if (ch == \"'\" && !( tests.digit_or_colon.test(stream.peek()) )) {\n          returnType = ATOM;\n        } else if (ch == \".\") {\n          returnType = PERIOD;\n        } else if (isNumber(ch,stream)){\n          returnType = NUMBER;\n        } else {\n          if (stream.current().match(tests.symbol)) {\n            while (col < 71) {\n              if (stream.eat(tests.symbol) === undefined) {\n                break;\n              } else {\n                col++;\n              }\n            }\n          }\n          if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = KEYWORD;\n          } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = BUILTIN;\n          } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = ATOM;\n          } else returnType = null;\n        }\n      }\n      return returnType;\n    },\n    indent: function (state) {\n      if (state.indentStack == null) return state.indentation;\n      return state.indentStack.indent;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-cobol\", \"cobol\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/coffeescript/coffeescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/pickhardt/coffeescript-codemirror-mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"coffeescript\", function(conf, parserConf) {\n  var ERRORCLASS = \"error\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\n  var delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\n  var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\n  var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n                                  \"is\", \"isnt\", \"in\",\n                                  \"instanceof\", \"typeof\"]);\n  var indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n                        \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\n  var commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n                        \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n                        \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\n  var keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\n  indentKeywords = wordRegexp(indentKeywords);\n\n\n  var stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\n  var regexPrefixes = /^(\\/{3}|\\/)/;\n  var commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\n  var constants = wordRegexp(commonConstants);\n\n  // Tokenizers\n  function tokenBase(stream, state) {\n    // Handle scope changes\n    if (stream.sol()) {\n      if (state.scope.align === null) state.scope.align = false;\n      var scopeOffset = state.scope.offset;\n      if (stream.eatSpace()) {\n        var lineOffset = stream.indentation();\n        if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n          return \"indent\";\n        } else if (lineOffset < scopeOffset) {\n          return \"dedent\";\n        }\n        return null;\n      } else {\n        if (scopeOffset > 0) {\n          dedent(stream, state);\n        }\n      }\n    }\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n\n    // Handle docco title comment (single line)\n    if (stream.match(\"####\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle multi line comments\n    if (stream.match(\"###\")) {\n      state.tokenize = longComment;\n      return state.tokenize(stream, state);\n    }\n\n    // Single line comment\n    if (ch === \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle number literals\n    if (stream.match(/^-?[0-9\\.]/, false)) {\n      var floatLiteral = false;\n      // Floats\n      if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\d+\\.\\d*/)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\.\\d+/)) {\n        floatLiteral = true;\n      }\n\n      if (floatLiteral) {\n        // prevent from getting extra . on 1..\n        if (stream.peek() == \".\"){\n          stream.backUp(1);\n        }\n        return \"number\";\n      }\n      // Integers\n      var intLiteral = false;\n      // Hex\n      if (stream.match(/^-?0x[0-9a-f]+/i)) {\n        intLiteral = true;\n      }\n      // Decimal\n      if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n        intLiteral = true;\n      }\n      // Zero by itself with no other piece of number.\n      if (stream.match(/^-?0(?![\\dx])/i)) {\n        intLiteral = true;\n      }\n      if (intLiteral) {\n        return \"number\";\n      }\n    }\n\n    // Handle strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenFactory(stream.current(), false, \"string\");\n      return state.tokenize(stream, state);\n    }\n    // Handle regex literals\n    if (stream.match(regexPrefixes)) {\n      if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n        state.tokenize = tokenFactory(stream.current(), true, \"string-2\");\n        return state.tokenize(stream, state);\n      } else {\n        stream.backUp(1);\n      }\n    }\n\n\n\n    // Handle operators and delimiters\n    if (stream.match(operators) || stream.match(wordOperators)) {\n      return \"operator\";\n    }\n    if (stream.match(delimiters)) {\n      return \"punctuation\";\n    }\n\n    if (stream.match(constants)) {\n      return \"atom\";\n    }\n\n    if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n      return \"property\";\n    }\n\n    if (stream.match(keywords)) {\n      return \"keyword\";\n    }\n\n    if (stream.match(identifiers)) {\n      return \"variable\";\n    }\n\n    // Handle non-detected items\n    stream.next();\n    return ERRORCLASS;\n  }\n\n  function tokenFactory(delimiter, singleline, outclass) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        stream.eatWhile(/[^'\"\\/\\\\]/);\n        if (stream.eat(\"\\\\\")) {\n          stream.next();\n          if (singleline && stream.eol()) {\n            return outclass;\n          }\n        } else if (stream.match(delimiter)) {\n          state.tokenize = tokenBase;\n          return outclass;\n        } else {\n          stream.eat(/['\"\\/]/);\n        }\n      }\n      if (singleline) {\n        if (parserConf.singleLineStringErrors) {\n          outclass = ERRORCLASS;\n        } else {\n          state.tokenize = tokenBase;\n        }\n      }\n      return outclass;\n    };\n  }\n\n  function longComment(stream, state) {\n    while (!stream.eol()) {\n      stream.eatWhile(/[^#]/);\n      if (stream.match(\"###\")) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      stream.eatWhile(\"#\");\n    }\n    return \"comment\";\n  }\n\n  function indent(stream, state, type) {\n    type = type || \"coffee\";\n    var offset = 0, align = false, alignOffset = null;\n    for (var scope = state.scope; scope; scope = scope.prev) {\n      if (scope.type === \"coffee\" || scope.type == \"}\") {\n        offset = scope.offset + conf.indentUnit;\n        break;\n      }\n    }\n    if (type !== \"coffee\") {\n      align = null;\n      alignOffset = stream.column() + stream.current().length;\n    } else if (state.scope.align) {\n      state.scope.align = false;\n    }\n    state.scope = {\n      offset: offset,\n      type: type,\n      prev: state.scope,\n      align: align,\n      alignOffset: alignOffset\n    };\n  }\n\n  function dedent(stream, state) {\n    if (!state.scope.prev) return;\n    if (state.scope.type === \"coffee\") {\n      var _indent = stream.indentation();\n      var matched = false;\n      for (var scope = state.scope; scope; scope = scope.prev) {\n        if (_indent === scope.offset) {\n          matched = true;\n          break;\n        }\n      }\n      if (!matched) {\n        return true;\n      }\n      while (state.scope.prev && state.scope.offset !== _indent) {\n        state.scope = state.scope.prev;\n      }\n      return false;\n    } else {\n      state.scope = state.scope.prev;\n      return false;\n    }\n  }\n\n  function tokenLexer(stream, state) {\n    var style = state.tokenize(stream, state);\n    var current = stream.current();\n\n    // Handle scope changes.\n    if (current === \"return\") {\n      state.dedent = true;\n    }\n    if (((current === \"->\" || current === \"=>\") && stream.eol())\n        || style === \"indent\") {\n      indent(stream, state);\n    }\n    var delimiter_index = \"[({\".indexOf(current);\n    if (delimiter_index !== -1) {\n      indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n    }\n    if (indentKeywords.exec(current)){\n      indent(stream, state);\n    }\n    if (current == \"then\"){\n      dedent(stream, state);\n    }\n\n\n    if (style === \"dedent\") {\n      if (dedent(stream, state)) {\n        return ERRORCLASS;\n      }\n    }\n    delimiter_index = \"])}\".indexOf(current);\n    if (delimiter_index !== -1) {\n      while (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      if (state.scope.type == current)\n        state.scope = state.scope.prev;\n    }\n    if (state.dedent && stream.eol()) {\n      if (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      state.dedent = false;\n    }\n\n    return style;\n  }\n\n  var external = {\n    startState: function(basecolumn) {\n      return {\n        tokenize: tokenBase,\n        scope: {offset:basecolumn || 0, type:\"coffee\", prev: null, align: false},\n        prop: false,\n        dedent: 0\n      };\n    },\n\n    token: function(stream, state) {\n      var fillAlign = state.scope.align === null && state.scope;\n      if (fillAlign && stream.sol()) fillAlign.align = false;\n\n      var style = tokenLexer(stream, state);\n      if (style && style != \"comment\") {\n        if (fillAlign) fillAlign.align = true;\n        state.prop = style == \"punctuation\" && stream.current() == \".\"\n      }\n\n      return style;\n    },\n\n    indent: function(state, text) {\n      if (state.tokenize != tokenBase) return 0;\n      var scope = state.scope;\n      var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n      if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n      var closes = closer && scope.type === text.charAt(0);\n      if (scope.align)\n        return scope.alignOffset - (closes ? 1 : 0);\n      else\n        return (closes ? scope.prev : scope).offset;\n    },\n\n    lineComment: \"#\",\n    fold: \"indent\"\n  };\n  return external;\n});\n\n// IANA registered media type\n// https://www.iana.org/assignments/media-types/\nCodeMirror.defineMIME(\"application/vnd.coffeescript\", \"coffeescript\");\n\nCodeMirror.defineMIME(\"text/x-coffeescript\", \"coffeescript\");\nCodeMirror.defineMIME(\"text/coffeescript\", \"coffeescript\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/commonlisp/commonlisp.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"commonlisp\", function (config) {\n  var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;\n  var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;\n  var numLiteral = /^(?:[+\\-]?(?:\\d+|\\d*\\.\\d+)(?:[efd][+\\-]?\\d+)?|[+\\-]?\\d+(?:\\/[+\\-]?\\d+)?|#b[+\\-]?[01]+|#o[+\\-]?[0-7]+|#x[+\\-]?[\\da-f]+)/;\n  var symbol = /[^\\s'`,@()\\[\\]\";]/;\n  var type;\n\n  function readSym(stream) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"\\\\\") stream.next();\n      else if (!symbol.test(ch)) { stream.backUp(1); break; }\n    }\n    return stream.current();\n  }\n\n  function base(stream, state) {\n    if (stream.eatSpace()) {type = \"ws\"; return null;}\n    if (stream.match(numLiteral)) return \"number\";\n    var ch = stream.next();\n    if (ch == \"\\\\\") ch = stream.next();\n\n    if (ch == '\"') return (state.tokenize = inString)(stream, state);\n    else if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n    else if (ch == \")\" || ch == \"]\") { type = \"close\"; return \"bracket\"; }\n    else if (ch == \";\") { stream.skipToEnd(); type = \"ws\"; return \"comment\"; }\n    else if (/['`,@]/.test(ch)) return null;\n    else if (ch == \"|\") {\n      if (stream.skipTo(\"|\")) { stream.next(); return \"symbol\"; }\n      else { stream.skipToEnd(); return \"error\"; }\n    } else if (ch == \"#\") {\n      var ch = stream.next();\n      if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n      else if (/[+\\-=\\.']/.test(ch)) return null;\n      else if (/\\d/.test(ch) && stream.match(/^\\d*#/)) return null;\n      else if (ch == \"|\") return (state.tokenize = inComment)(stream, state);\n      else if (ch == \":\") { readSym(stream); return \"meta\"; }\n      else if (ch == \"\\\\\") { stream.next(); readSym(stream); return \"string-2\" }\n      else return \"error\";\n    } else {\n      var name = readSym(stream);\n      if (name == \".\") return null;\n      type = \"symbol\";\n      if (name == \"nil\" || name == \"t\" || name.charAt(0) == \":\") return \"atom\";\n      if (state.lastType == \"open\" && (specialForm.test(name) || assumeBody.test(name))) return \"keyword\";\n      if (name.charAt(0) == \"&\") return \"variable-2\";\n      return \"variable\";\n    }\n  }\n\n  function inString(stream, state) {\n    var escaped = false, next;\n    while (next = stream.next()) {\n      if (next == '\"' && !escaped) { state.tokenize = base; break; }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return \"string\";\n  }\n\n  function inComment(stream, state) {\n    var next, last;\n    while (next = stream.next()) {\n      if (next == \"#\" && last == \"|\") { state.tokenize = base; break; }\n      last = next;\n    }\n    type = \"ws\";\n    return \"comment\";\n  }\n\n  return {\n    startState: function () {\n      return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};\n    },\n\n    token: function (stream, state) {\n      if (stream.sol() && typeof state.ctx.indentTo != \"number\")\n        state.ctx.indentTo = state.ctx.start + 1;\n\n      type = null;\n      var style = state.tokenize(stream, state);\n      if (type != \"ws\") {\n        if (state.ctx.indentTo == null) {\n          if (type == \"symbol\" && assumeBody.test(stream.current()))\n            state.ctx.indentTo = state.ctx.start + config.indentUnit;\n          else\n            state.ctx.indentTo = \"next\";\n        } else if (state.ctx.indentTo == \"next\") {\n          state.ctx.indentTo = stream.column();\n        }\n        state.lastType = type;\n      }\n      if (type == \"open\") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n      else if (type == \"close\") state.ctx = state.ctx.prev || state.ctx;\n      return style;\n    },\n\n    indent: function (state, _textAfter) {\n      var i = state.ctx.indentTo;\n      return typeof i == \"number\" ? i : state.ctx.start + 1;\n    },\n\n    closeBrackets: {pairs: \"()[]{}\\\"\\\"\"},\n    lineComment: \";;\",\n    blockCommentStart: \"#|\",\n    blockCommentEnd: \"|#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-common-lisp\", \"commonlisp\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/crystal/crystal.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"crystal\", function(config) {\n    function wordRegExp(words, end) {\n      return new RegExp((end ? \"\" : \"^\") + \"(?:\" + words.join(\"|\") + \")\" + (end ? \"$\" : \"\\\\b\"));\n    }\n\n    function chain(tokenize, stream, state) {\n      state.tokenize.push(tokenize);\n      return tokenize(stream, state);\n    }\n\n    var operators = /^(?:[-+/%|&^]|\\*\\*?|[<>]{2})/;\n    var conditionalOperators = /^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/;\n    var indexingOperators = /^(?:\\[\\][?=]?)/;\n    var anotherOperators = /^(?:\\.(?:\\.{2})?|->|[?:])/;\n    var idents = /^[a-z_\\u009F-\\uFFFF][a-zA-Z0-9_\\u009F-\\uFFFF]*/;\n    var types = /^[A-Z_\\u009F-\\uFFFF][a-zA-Z0-9_\\u009F-\\uFFFF]*/;\n    var keywords = wordRegExp([\n      \"abstract\", \"alias\", \"as\", \"asm\", \"begin\", \"break\", \"case\", \"class\", \"def\", \"do\",\n      \"else\", \"elsif\", \"end\", \"ensure\", \"enum\", \"extend\", \"for\", \"fun\", \"if\",\n      \"include\", \"instance_sizeof\", \"lib\", \"macro\", \"module\", \"next\", \"of\", \"out\", \"pointerof\",\n      \"private\", \"protected\", \"rescue\", \"return\", \"require\", \"select\", \"sizeof\", \"struct\",\n      \"super\", \"then\", \"type\", \"typeof\", \"uninitialized\", \"union\", \"unless\", \"until\", \"when\", \"while\", \"with\",\n      \"yield\", \"__DIR__\", \"__END_LINE__\", \"__FILE__\", \"__LINE__\"\n    ]);\n    var atomWords = wordRegExp([\"true\", \"false\", \"nil\", \"self\"]);\n    var indentKeywordsArray = [\n      \"def\", \"fun\", \"macro\",\n      \"class\", \"module\", \"struct\", \"lib\", \"enum\", \"union\",\n      \"do\", \"for\"\n    ];\n    var indentKeywords = wordRegExp(indentKeywordsArray);\n    var indentExpressionKeywordsArray = [\"if\", \"unless\", \"case\", \"while\", \"until\", \"begin\", \"then\"];\n    var indentExpressionKeywords = wordRegExp(indentExpressionKeywordsArray);\n    var dedentKeywordsArray = [\"end\", \"else\", \"elsif\", \"rescue\", \"ensure\"];\n    var dedentKeywords = wordRegExp(dedentKeywordsArray);\n    var dedentPunctualsArray = [\"\\\\)\", \"\\\\}\", \"\\\\]\"];\n    var dedentPunctuals = new RegExp(\"^(?:\" + dedentPunctualsArray.join(\"|\") + \")$\");\n    var nextTokenizer = {\n      \"def\": tokenFollowIdent, \"fun\": tokenFollowIdent, \"macro\": tokenMacroDef,\n      \"class\": tokenFollowType, \"module\": tokenFollowType, \"struct\": tokenFollowType,\n      \"lib\": tokenFollowType, \"enum\": tokenFollowType, \"union\": tokenFollowType\n    };\n    var matching = {\"[\": \"]\", \"{\": \"}\", \"(\": \")\", \"<\": \">\"};\n\n    function tokenBase(stream, state) {\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      // Macros\n      if (state.lastToken != \"\\\\\" && stream.match(\"{%\", false)) {\n        return chain(tokenMacro(\"%\", \"%\"), stream, state);\n      }\n\n      if (state.lastToken != \"\\\\\" && stream.match(\"{{\", false)) {\n        return chain(tokenMacro(\"{\", \"}\"), stream, state);\n      }\n\n      // Comments\n      if (stream.peek() == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Variables and keywords\n      var matched;\n      if (stream.match(idents)) {\n        stream.eat(/[?!]/);\n\n        matched = stream.current();\n        if (stream.eat(\":\")) {\n          return \"atom\";\n        } else if (state.lastToken == \".\") {\n          return \"property\";\n        } else if (keywords.test(matched)) {\n          if (indentKeywords.test(matched)) {\n            if (!(matched == \"fun\" && state.blocks.indexOf(\"lib\") >= 0) && !(matched == \"def\" && state.lastToken == \"abstract\")) {\n              state.blocks.push(matched);\n              state.currentIndent += 1;\n            }\n          } else if ((state.lastStyle == \"operator\" || !state.lastStyle) && indentExpressionKeywords.test(matched)) {\n            state.blocks.push(matched);\n            state.currentIndent += 1;\n          } else if (matched == \"end\") {\n            state.blocks.pop();\n            state.currentIndent -= 1;\n          }\n\n          if (nextTokenizer.hasOwnProperty(matched)) {\n            state.tokenize.push(nextTokenizer[matched]);\n          }\n\n          return \"keyword\";\n        } else if (atomWords.test(matched)) {\n          return \"atom\";\n        }\n\n        return \"variable\";\n      }\n\n      // Class variables and instance variables\n      // or attributes\n      if (stream.eat(\"@\")) {\n        if (stream.peek() == \"[\") {\n          return chain(tokenNest(\"[\", \"]\", \"meta\"), stream, state);\n        }\n\n        stream.eat(\"@\");\n        stream.match(idents) || stream.match(types);\n        return \"variable-2\";\n      }\n\n      // Constants and types\n      if (stream.match(types)) {\n        return \"tag\";\n      }\n\n      // Symbols or ':' operator\n      if (stream.eat(\":\")) {\n        if (stream.eat(\"\\\"\")) {\n          return chain(tokenQuote(\"\\\"\", \"atom\", false), stream, state);\n        } else if (stream.match(idents) || stream.match(types) ||\n                   stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators)) {\n          return \"atom\";\n        }\n        stream.eat(\":\");\n        return \"operator\";\n      }\n\n      // Strings\n      if (stream.eat(\"\\\"\")) {\n        return chain(tokenQuote(\"\\\"\", \"string\", true), stream, state);\n      }\n\n      // Strings or regexps or macro variables or '%' operator\n      if (stream.peek() == \"%\") {\n        var style = \"string\";\n        var embed = true;\n        var delim;\n\n        if (stream.match(\"%r\")) {\n          // Regexps\n          style = \"string-2\";\n          delim = stream.next();\n        } else if (stream.match(\"%w\")) {\n          embed = false;\n          delim = stream.next();\n        } else if (stream.match(\"%q\")) {\n          embed = false;\n          delim = stream.next();\n        } else {\n          if(delim = stream.match(/^%([^\\w\\s=])/)) {\n            delim = delim[1];\n          } else if (stream.match(/^%[a-zA-Z0-9_\\u009F-\\uFFFF]*/)) {\n            // Macro variables\n            return \"meta\";\n          } else {\n            // '%' operator\n            return \"operator\";\n          }\n        }\n\n        if (matching.hasOwnProperty(delim)) {\n          delim = matching[delim];\n        }\n        return chain(tokenQuote(delim, style, embed), stream, state);\n      }\n\n      // Here Docs\n      if (matched = stream.match(/^<<-('?)([A-Z]\\w*)\\1/)) {\n        return chain(tokenHereDoc(matched[2], !matched[1]), stream, state)\n      }\n\n      // Characters\n      if (stream.eat(\"'\")) {\n        stream.match(/^(?:[^']|\\\\(?:[befnrtv0'\"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\\{[0-9a-fA-F]{1,6}\\})))/);\n        stream.eat(\"'\");\n        return \"atom\";\n      }\n\n      // Numbers\n      if (stream.eat(\"0\")) {\n        if (stream.eat(\"x\")) {\n          stream.match(/^[0-9a-fA-F_]+/);\n        } else if (stream.eat(\"o\")) {\n          stream.match(/^[0-7_]+/);\n        } else if (stream.eat(\"b\")) {\n          stream.match(/^[01_]+/);\n        }\n        return \"number\";\n      }\n\n      if (stream.eat(/^\\d/)) {\n        stream.match(/^[\\d_]*(?:\\.[\\d_]+)?(?:[eE][+-]?\\d+)?/);\n        return \"number\";\n      }\n\n      // Operators\n      if (stream.match(operators)) {\n        stream.eat(\"=\"); // Operators can follow assign symbol.\n        return \"operator\";\n      }\n\n      if (stream.match(conditionalOperators) || stream.match(anotherOperators)) {\n        return \"operator\";\n      }\n\n      // Parens and braces\n      if (matched = stream.match(/[({[]/, false)) {\n        matched = matched[0];\n        return chain(tokenNest(matched, matching[matched], null), stream, state);\n      }\n\n      // Escapes\n      if (stream.eat(\"\\\\\")) {\n        stream.next();\n        return \"meta\";\n      }\n\n      stream.next();\n      return null;\n    }\n\n    function tokenNest(begin, end, style, started) {\n      return function (stream, state) {\n        if (!started && stream.match(begin)) {\n          state.tokenize[state.tokenize.length - 1] = tokenNest(begin, end, style, true);\n          state.currentIndent += 1;\n          return style;\n        }\n\n        var nextStyle = tokenBase(stream, state);\n        if (stream.current() === end) {\n          state.tokenize.pop();\n          state.currentIndent -= 1;\n          nextStyle = style;\n        }\n\n        return nextStyle;\n      };\n    }\n\n    function tokenMacro(begin, end, started) {\n      return function (stream, state) {\n        if (!started && stream.match(\"{\" + begin)) {\n          state.currentIndent += 1;\n          state.tokenize[state.tokenize.length - 1] = tokenMacro(begin, end, true);\n          return \"meta\";\n        }\n\n        if (stream.match(end + \"}\")) {\n          state.currentIndent -= 1;\n          state.tokenize.pop();\n          return \"meta\";\n        }\n\n        return tokenBase(stream, state);\n      };\n    }\n\n    function tokenMacroDef(stream, state) {\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var matched;\n      if (matched = stream.match(idents)) {\n        if (matched == \"def\") {\n          return \"keyword\";\n        }\n        stream.eat(/[?!]/);\n      }\n\n      state.tokenize.pop();\n      return \"def\";\n    }\n\n    function tokenFollowIdent(stream, state) {\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      if (stream.match(idents)) {\n        stream.eat(/[!?]/);\n      } else {\n        stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators);\n      }\n      state.tokenize.pop();\n      return \"def\";\n    }\n\n    function tokenFollowType(stream, state) {\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      stream.match(types);\n      state.tokenize.pop();\n      return \"def\";\n    }\n\n    function tokenQuote(end, style, embed) {\n      return function (stream, state) {\n        var escaped = false;\n\n        while (stream.peek()) {\n          if (!escaped) {\n            if (stream.match(\"{%\", false)) {\n              state.tokenize.push(tokenMacro(\"%\", \"%\"));\n              return style;\n            }\n\n            if (stream.match(\"{{\", false)) {\n              state.tokenize.push(tokenMacro(\"{\", \"}\"));\n              return style;\n            }\n\n            if (embed && stream.match(\"#{\", false)) {\n              state.tokenize.push(tokenNest(\"#{\", \"}\", \"meta\"));\n              return style;\n            }\n\n            var ch = stream.next();\n\n            if (ch == end) {\n              state.tokenize.pop();\n              return style;\n            }\n\n            escaped = embed && ch == \"\\\\\";\n          } else {\n            stream.next();\n            escaped = false;\n          }\n        }\n\n        return style;\n      };\n    }\n\n    function tokenHereDoc(phrase, embed) {\n      return function (stream, state) {\n        if (stream.sol()) {\n          stream.eatSpace()\n          if (stream.match(phrase)) {\n            state.tokenize.pop();\n            return \"string\";\n          }\n        }\n\n        var escaped = false;\n        while (stream.peek()) {\n          if (!escaped) {\n            if (stream.match(\"{%\", false)) {\n              state.tokenize.push(tokenMacro(\"%\", \"%\"));\n              return \"string\";\n            }\n\n            if (stream.match(\"{{\", false)) {\n              state.tokenize.push(tokenMacro(\"{\", \"}\"));\n              return \"string\";\n            }\n\n            if (embed && stream.match(\"#{\", false)) {\n              state.tokenize.push(tokenNest(\"#{\", \"}\", \"meta\"));\n              return \"string\";\n            }\n\n            escaped = embed && stream.next() == \"\\\\\";\n          } else {\n            stream.next();\n            escaped = false;\n          }\n        }\n\n        return \"string\";\n      }\n    }\n\n    return {\n      startState: function () {\n        return {\n          tokenize: [tokenBase],\n          currentIndent: 0,\n          lastToken: null,\n          lastStyle: null,\n          blocks: []\n        };\n      },\n\n      token: function (stream, state) {\n        var style = state.tokenize[state.tokenize.length - 1](stream, state);\n        var token = stream.current();\n\n        if (style && style != \"comment\") {\n          state.lastToken = token;\n          state.lastStyle = style;\n        }\n\n        return style;\n      },\n\n      indent: function (state, textAfter) {\n        textAfter = textAfter.replace(/^\\s*(?:\\{%)?\\s*|\\s*(?:%\\})?\\s*$/g, \"\");\n\n        if (dedentKeywords.test(textAfter) || dedentPunctuals.test(textAfter)) {\n          return config.indentUnit * (state.currentIndent - 1);\n        }\n\n        return config.indentUnit * state.currentIndent;\n      },\n\n      fold: \"indent\",\n      electricInput: wordRegExp(dedentPunctualsArray.concat(dedentKeywordsArray), true),\n      lineComment: '#'\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-crystal\", \"crystal\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/css/css.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n  var inline = parserConfig.inline\n  if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n  var indentUnit = config.indentUnit,\n      tokenHooks = parserConfig.tokenHooks,\n      documentTypes = parserConfig.documentTypes || {},\n      mediaTypes = parserConfig.mediaTypes || {},\n      mediaFeatures = parserConfig.mediaFeatures || {},\n      mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n      propertyKeywords = parserConfig.propertyKeywords || {},\n      nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n      fontProperties = parserConfig.fontProperties || {},\n      counterDescriptors = parserConfig.counterDescriptors || {},\n      colorKeywords = parserConfig.colorKeywords || {},\n      valueKeywords = parserConfig.valueKeywords || {},\n      allowNested = parserConfig.allowNested,\n      lineComment = parserConfig.lineComment,\n      supportsAtComponent = parserConfig.supportsAtComponent === true,\n      highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n  var type, override;\n  function ret(style, tp) { type = tp; return style; }\n\n  // Tokenizers\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (tokenHooks[ch]) {\n      var result = tokenHooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == \"@\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"def\", stream.current());\n    } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n      return ret(null, \"compare\");\n    } else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \"#\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"atom\", \"hash\");\n    } else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    } else if (ch === \"-\") {\n      if (/[\\d.]/.test(stream.peek())) {\n        stream.eatWhile(/[\\w.%]/);\n        return ret(\"number\", \"unit\");\n      } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return ret(\"variable-2\", \"variable-definition\");\n        return ret(\"variable-2\", \"variable\");\n      } else if (stream.match(/^\\w+-/)) {\n        return ret(\"meta\", \"meta\");\n      }\n    } else if (/[,+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n      return ret(\"qualifier\", \"qualifier\");\n    } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n      return ret(null, ch);\n    } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n      if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n        state.tokenize = tokenParenthesized;\n      }\n      return ret(\"variable callee\", \"variable\");\n    } else if (/[\\w\\\\\\-]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"property\", \"word\");\n    } else {\n      return ret(null, null);\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          if (quote == \")\") stream.backUp(1);\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenParenthesized(stream, state) {\n    stream.next(); // Must be '('\n    if (!stream.match(/^\\s*[\\\"\\')]/, false))\n      state.tokenize = tokenString(\")\");\n    else\n      state.tokenize = null;\n    return ret(null, \"(\");\n  }\n\n  // Context management\n\n  function Context(type, indent, prev) {\n    this.type = type;\n    this.indent = indent;\n    this.prev = prev;\n  }\n\n  function pushContext(state, stream, type, indent) {\n    state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n    return type;\n  }\n\n  function popContext(state) {\n    if (state.context.prev)\n      state.context = state.context.prev;\n    return state.context.type;\n  }\n\n  function pass(type, stream, state) {\n    return states[state.context.type](type, stream, state);\n  }\n  function popAndPass(type, stream, state, n) {\n    for (var i = n || 1; i > 0; i--)\n      state.context = state.context.prev;\n    return pass(type, stream, state);\n  }\n\n  // Parser\n\n  function wordAsValue(stream) {\n    var word = stream.current().toLowerCase();\n    if (valueKeywords.hasOwnProperty(word))\n      override = \"atom\";\n    else if (colorKeywords.hasOwnProperty(word))\n      override = \"keyword\";\n    else\n      override = \"variable\";\n  }\n\n  var states = {};\n\n  states.top = function(type, stream, state) {\n    if (type == \"{\") {\n      return pushContext(state, stream, \"block\");\n    } else if (type == \"}\" && state.context.prev) {\n      return popContext(state);\n    } else if (supportsAtComponent && /@component/i.test(type)) {\n      return pushContext(state, stream, \"atComponentBlock\");\n    } else if (/^@(-moz-)?document$/i.test(type)) {\n      return pushContext(state, stream, \"documentTypes\");\n    } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n      return pushContext(state, stream, \"atBlock\");\n    } else if (/^@(font-face|counter-style)/i.test(type)) {\n      state.stateArg = type;\n      return \"restricted_atBlock_before\";\n    } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n      return \"keyframes\";\n    } else if (type && type.charAt(0) == \"@\") {\n      return pushContext(state, stream, \"at\");\n    } else if (type == \"hash\") {\n      override = \"builtin\";\n    } else if (type == \"word\") {\n      override = \"tag\";\n    } else if (type == \"variable-definition\") {\n      return \"maybeprop\";\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    } else if (type == \":\") {\n      return \"pseudo\";\n    } else if (allowNested && type == \"(\") {\n      return pushContext(state, stream, \"parens\");\n    }\n    return state.context.type;\n  };\n\n  states.block = function(type, stream, state) {\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (propertyKeywords.hasOwnProperty(word)) {\n        override = \"property\";\n        return \"maybeprop\";\n      } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n        override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n        return \"maybeprop\";\n      } else if (allowNested) {\n        override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n        return \"block\";\n      } else {\n        override += \" error\";\n        return \"maybeprop\";\n      }\n    } else if (type == \"meta\") {\n      return \"block\";\n    } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n      override = \"error\";\n      return \"block\";\n    } else {\n      return states.top(type, stream, state);\n    }\n  };\n\n  states.maybeprop = function(type, stream, state) {\n    if (type == \":\") return pushContext(state, stream, \"prop\");\n    return pass(type, stream, state);\n  };\n\n  states.prop = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n    if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n    if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n      override += \" error\";\n    } else if (type == \"word\") {\n      wordAsValue(stream);\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    }\n    return \"prop\";\n  };\n\n  states.propBlock = function(type, _stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n    return state.context.type;\n  };\n\n  states.parens = function(type, stream, state) {\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \")\") return popContext(state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n    if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n    if (type == \"word\") wordAsValue(stream);\n    return \"parens\";\n  };\n\n  states.pseudo = function(type, stream, state) {\n    if (type == \"meta\") return \"pseudo\";\n\n    if (type == \"word\") {\n      override = \"variable-3\";\n      return state.context.type;\n    }\n    return pass(type, stream, state);\n  };\n\n  states.documentTypes = function(type, stream, state) {\n    if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n      override = \"tag\";\n      return state.context.type;\n    } else {\n      return states.atBlock(type, stream, state);\n    }\n  };\n\n  states.atBlock = function(type, stream, state) {\n    if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n    if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n    if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n    if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n        override = \"keyword\";\n      else if (mediaTypes.hasOwnProperty(word))\n        override = \"attribute\";\n      else if (mediaFeatures.hasOwnProperty(word))\n        override = \"property\";\n      else if (mediaValueKeywords.hasOwnProperty(word))\n        override = \"keyword\";\n      else if (propertyKeywords.hasOwnProperty(word))\n        override = \"property\";\n      else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n        override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n      else if (valueKeywords.hasOwnProperty(word))\n        override = \"atom\";\n      else if (colorKeywords.hasOwnProperty(word))\n        override = \"keyword\";\n      else\n        override = \"error\";\n    }\n    return state.context.type;\n  };\n\n  states.atComponentBlock = function(type, stream, state) {\n    if (type == \"}\")\n      return popAndPass(type, stream, state);\n    if (type == \"{\")\n      return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n    if (type == \"word\")\n      override = \"error\";\n    return state.context.type;\n  };\n\n  states.atBlock_parens = function(type, stream, state) {\n    if (type == \")\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n    return states.atBlock(type, stream, state);\n  };\n\n  states.restricted_atBlock_before = function(type, stream, state) {\n    if (type == \"{\")\n      return pushContext(state, stream, \"restricted_atBlock\");\n    if (type == \"word\" && state.stateArg == \"@counter-style\") {\n      override = \"variable\";\n      return \"restricted_atBlock_before\";\n    }\n    return pass(type, stream, state);\n  };\n\n  states.restricted_atBlock = function(type, stream, state) {\n    if (type == \"}\") {\n      state.stateArg = null;\n      return popContext(state);\n    }\n    if (type == \"word\") {\n      if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n          (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n        override = \"error\";\n      else\n        override = \"property\";\n      return \"maybeprop\";\n    }\n    return \"restricted_atBlock\";\n  };\n\n  states.keyframes = function(type, stream, state) {\n    if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n    if (type == \"{\") return pushContext(state, stream, \"top\");\n    return pass(type, stream, state);\n  };\n\n  states.at = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \"word\") override = \"tag\";\n    else if (type == \"hash\") override = \"builtin\";\n    return \"at\";\n  };\n\n  states.interpolation = function(type, stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n    if (type == \"word\") override = \"variable\";\n    else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n    return \"interpolation\";\n  };\n\n  return {\n    startState: function(base) {\n      return {tokenize: null,\n              state: inline ? \"block\" : \"top\",\n              stateArg: null,\n              context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n    },\n\n    token: function(stream, state) {\n      if (!state.tokenize && stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style && typeof style == \"object\") {\n        type = style[1];\n        style = style[0];\n      }\n      override = style;\n      if (type != \"comment\")\n        state.state = states[state.state](type, stream, state);\n      return override;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context, ch = textAfter && textAfter.charAt(0);\n      var indent = cx.indent;\n      if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n      if (cx.prev) {\n        if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n                          cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n          // Resume indentation from parent context.\n          cx = cx.prev;\n          indent = cx.indent;\n        } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n            ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n          // Dedent relative to current context.\n          indent = Math.max(0, cx.indent - indentUnit);\n        }\n      }\n      return indent;\n    },\n\n    electricChars: \"}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    blockCommentContinue: \" * \",\n    lineComment: lineComment,\n    fold: \"brace\"\n  };\n});\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i].toLowerCase()] = true;\n    }\n    return keys;\n  }\n\n  var documentTypes_ = [\n    \"domain\", \"regexp\", \"url\", \"url-prefix\"\n  ], documentTypes = keySet(documentTypes_);\n\n  var mediaTypes_ = [\n    \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n    \"tty\", \"tv\", \"embossed\"\n  ], mediaTypes = keySet(mediaTypes_);\n\n  var mediaFeatures_ = [\n    \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n    \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n    \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n    \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n    \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n    \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n    \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n    \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n    \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n    \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n  ], mediaFeatures = keySet(mediaFeatures_);\n\n  var mediaValueKeywords_ = [\n    \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n    \"interlace\", \"progressive\",\n    \"dark\", \"light\"\n  ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n  var propertyKeywords_ = [\n    \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n    \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n    \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n    \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n    \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n    \"backface-visibility\", \"background\", \"background-attachment\",\n    \"background-blend-mode\", \"background-clip\", \"background-color\",\n    \"background-image\", \"background-origin\", \"background-position\",\n    \"background-position-x\", \"background-position-y\", \"background-repeat\",\n    \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n    \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n    \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n    \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n    \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n    \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n    \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n    \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n    \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n    \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n    \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n    \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n    \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n    \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n    \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n    \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n    \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n    \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n    \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n    \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n    \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-position\",\n    \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n    \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n    \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n    \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n    \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n    \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n    \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n    \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n    \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n    \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n    \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n    \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n    \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n    \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n    \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n    \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n    \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n    \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n    \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n    \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n    \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n    \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n    \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n    \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n    \"max-block-size\", \"max-height\", \"max-inline-size\",\n    \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n    \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n    \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n    \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n    \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n    \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n    \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n    \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n    \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n    \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n    \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n    \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n    \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n    \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n    \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n    \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n    \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n    \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n    \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n    \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n    \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n    \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n    \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n    \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n    \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n    \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n    \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n    \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n    \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n    \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n    \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n    \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n    \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n    \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n    \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n    \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n    \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n    \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n    \"transition-property\", \"transition-timing-function\", \"translate\",\n    \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n    \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n    \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n    \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n    // SVG-specific\n    \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n    \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n    \"color-interpolation\", \"color-interpolation-filters\",\n    \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n    \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n    \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n    \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n    \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n    \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n  ], propertyKeywords = keySet(propertyKeywords_);\n\n  var nonStandardPropertyKeywords_ = [\n    \"border-block\", \"border-block-color\", \"border-block-end\",\n    \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n    \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n    \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n    \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n    \"border-inline-end-color\", \"border-inline-end-style\",\n    \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n    \"border-inline-start-style\", \"border-inline-start-width\",\n    \"border-inline-style\", \"border-inline-width\", \"margin-block\",\n    \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n    \"margin-inline-start\", \"padding-block\", \"padding-block-end\",\n    \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n    \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n    \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n    \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n    \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n    \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n  ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n  var fontProperties_ = [\n    \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n     \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n  ], fontProperties = keySet(fontProperties_);\n\n  var counterDescriptors_ = [\n    \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n    \"speak-as\", \"suffix\", \"symbols\", \"system\"\n  ], counterDescriptors = keySet(counterDescriptors_);\n\n  var colorKeywords_ = [\n    \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n    \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n    \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n    \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n    \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n    \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n    \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n    \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n    \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n    \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n    \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n    \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n    \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n    \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n    \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n    \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n    \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n    \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n    \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n    \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n    \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n    \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n    \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n    \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n    \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n    \"whitesmoke\", \"yellow\", \"yellowgreen\"\n  ], colorKeywords = keySet(colorKeywords_);\n\n  var valueKeywords_ = [\n    \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n    \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n    \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n    \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n    \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n    \"bengali\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n    \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n    \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n    \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n    \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n    \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n    \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n    \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n    \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n    \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n    \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n    \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n    \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n    \"dot-dash\", \"dot-dot-dash\",\n    \"dotted\", \"double\", \"down\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n    \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n    \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n    \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n    \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n    \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n    \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n    \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n    \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n    \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n    \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"graytext\", \"grid\", \"groove\",\n    \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n    \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n    \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n    \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n    \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n    \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n    \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n    \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n    \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n    \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n    \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n    \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n    \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n    \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n    \"media-controls-background\", \"media-current-time-display\",\n    \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n    \"media-return-to-realtime-button\", \"media-rewind-button\",\n    \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n    \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n    \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n    \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n    \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n    \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n    \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n    \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n    \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n    \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n    \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n    \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n    \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n    \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n    \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n    \"relative\", \"repeat\", \"repeating-linear-gradient\",\n    \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n    \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n    \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n    \"s-resize\", \"sans-serif\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n    \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n    \"searchfield-cancel-button\", \"searchfield-decoration\",\n    \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n    \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\", \"sidama\",\n    \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n    \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n    \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n    \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n    \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n    \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n    \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n    \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n    \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n    \"tamil\",\n    \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n    \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n    \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n    \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n    \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n    \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n    \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n    \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n    \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n    \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n    \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n    \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n    \"xx-large\", \"xx-small\"\n  ], valueKeywords = keySet(valueKeywords_);\n\n  var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n    .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n    .concat(valueKeywords_);\n  CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return [\"comment\", \"comment\"];\n  }\n\n  CodeMirror.defineMIME(\"text/css\", {\n    documentTypes: documentTypes,\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    mediaValueKeywords: mediaValueKeywords,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    fontProperties: fontProperties,\n    counterDescriptors: counterDescriptors,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false;\n        state.tokenize = tokenCComment;\n        return tokenCComment(stream, state);\n      }\n    },\n    name: \"css\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-scss\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    mediaValueKeywords: mediaValueKeywords,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    lineComment: \"//\",\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \":\": function(stream) {\n        if (stream.match(/^\\s*\\{/, false))\n          return [null, null]\n        return false;\n      },\n      \"$\": function(stream) {\n        stream.match(/^[\\w-]+/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"#\": function(stream) {\n        if (!stream.eat(\"{\")) return false;\n        return [null, \"interpolation\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"scss\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-less\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    mediaValueKeywords: mediaValueKeywords,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    lineComment: \"//\",\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \"@\": function(stream) {\n        if (stream.eat(\"{\")) return [null, \"interpolation\"];\n        if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"&\": function() {\n        return [\"atom\", \"atom\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"less\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-gss\", {\n    documentTypes: documentTypes,\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    fontProperties: fontProperties,\n    counterDescriptors: counterDescriptors,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    supportsAtComponent: true,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false;\n        state.tokenize = tokenCComment;\n        return tokenCComment(stream, state);\n      }\n    },\n    name: \"css\",\n    helperType: \"gss\"\n  });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/cypher/cypher.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// By the Neo4j Team and contributors.\n// https://github.com/neo4j-contrib/CodeMirror\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var wordRegexp = function(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  };\n\n  CodeMirror.defineMode(\"cypher\", function(config) {\n    var tokenBase = function(stream/*, state*/) {\n      var ch = stream.next();\n      if (ch ==='\"') {\n        stream.match(/^[^\"]*\"/);\n        return \"string\";\n      }\n      if (ch === \"'\") {\n        stream.match(/^[^']*'/);\n        return \"string\";\n      }\n      if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n        curPunc = ch;\n        return \"node\";\n      } else if (ch === \"/\" && stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (operatorChars.test(ch)) {\n        stream.eatWhile(operatorChars);\n        return null;\n      } else {\n        stream.eatWhile(/[_\\w\\d]/);\n        if (stream.eat(\":\")) {\n          stream.eatWhile(/[\\w\\d_\\-]/);\n          return \"atom\";\n        }\n        var word = stream.current();\n        if (funcs.test(word)) return \"builtin\";\n        if (preds.test(word)) return \"def\";\n        if (keywords.test(word) || systemKeywords.test(word)) return \"keyword\";\n        return \"variable\";\n      }\n    };\n    var pushContext = function(state, type, col) {\n      return state.context = {\n        prev: state.context,\n        indent: state.indent,\n        col: col,\n        type: type\n      };\n    };\n    var popContext = function(state) {\n      state.indent = state.context.indent;\n      return state.context = state.context.prev;\n    };\n    var indentUnit = config.indentUnit;\n    var curPunc;\n    var funcs = wordRegexp([\"abs\", \"acos\", \"allShortestPaths\", \"asin\", \"atan\", \"atan2\", \"avg\", \"ceil\", \"coalesce\", \"collect\", \"cos\", \"cot\", \"count\", \"degrees\", \"e\", \"endnode\", \"exp\", \"extract\", \"filter\", \"floor\", \"haversin\", \"head\", \"id\", \"keys\", \"labels\", \"last\", \"left\", \"length\", \"log\", \"log10\", \"lower\", \"ltrim\", \"max\", \"min\", \"node\", \"nodes\", \"percentileCont\", \"percentileDisc\", \"pi\", \"radians\", \"rand\", \"range\", \"reduce\", \"rel\", \"relationship\", \"relationships\", \"replace\", \"reverse\", \"right\", \"round\", \"rtrim\", \"shortestPath\", \"sign\", \"sin\", \"size\", \"split\", \"sqrt\", \"startnode\", \"stdev\", \"stdevp\", \"str\", \"substring\", \"sum\", \"tail\", \"tan\", \"timestamp\", \"toFloat\", \"toInt\", \"toString\", \"trim\", \"type\", \"upper\"]);\n    var preds = wordRegexp([\"all\", \"and\", \"any\", \"contains\", \"exists\", \"has\", \"in\", \"none\", \"not\", \"or\", \"single\", \"xor\"]);\n    var keywords = wordRegexp([\"as\", \"asc\", \"ascending\", \"assert\", \"by\", \"case\", \"commit\", \"constraint\", \"create\", \"csv\", \"cypher\", \"delete\", \"desc\", \"descending\", \"detach\", \"distinct\", \"drop\", \"else\", \"end\", \"ends\", \"explain\", \"false\", \"fieldterminator\", \"foreach\", \"from\", \"headers\", \"in\", \"index\", \"is\", \"join\", \"limit\", \"load\", \"match\", \"merge\", \"null\", \"on\", \"optional\", \"order\", \"periodic\", \"profile\", \"remove\", \"return\", \"scan\", \"set\", \"skip\", \"start\", \"starts\", \"then\", \"true\", \"union\", \"unique\", \"unwind\", \"using\", \"when\", \"where\", \"with\", \"call\", \"yield\"]);\n    var systemKeywords = wordRegexp([\"access\", \"active\", \"assign\", \"all\", \"alter\", \"as\", \"catalog\", \"change\", \"copy\", \"create\", \"constraint\", \"constraints\", \"current\", \"database\", \"databases\", \"dbms\", \"default\", \"deny\", \"drop\", \"element\", \"elements\", \"exists\", \"from\", \"grant\", \"graph\", \"graphs\", \"if\", \"index\", \"indexes\", \"label\", \"labels\", \"management\", \"match\", \"name\", \"names\", \"new\", \"node\", \"nodes\", \"not\", \"of\", \"on\", \"or\", \"password\", \"populated\", \"privileges\", \"property\", \"read\", \"relationship\", \"relationships\", \"remove\", \"replace\", \"required\", \"revoke\", \"role\", \"roles\", \"set\", \"show\", \"start\", \"status\", \"stop\", \"suspended\", \"to\", \"traverse\", \"type\", \"types\", \"user\", \"users\", \"with\", \"write\"]);\n    var operatorChars = /[*+\\-<>=&|~%^]/;\n\n    return {\n      startState: function(/*base*/) {\n        return {\n          tokenize: tokenBase,\n          context: null,\n          indent: 0,\n          col: 0\n        };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) {\n          if (state.context && (state.context.align == null)) {\n            state.context.align = false;\n          }\n          state.indent = stream.indentation();\n        }\n        if (stream.eatSpace()) {\n          return null;\n        }\n        var style = state.tokenize(stream, state);\n        if (style !== \"comment\" && state.context && (state.context.align == null) && state.context.type !== \"pattern\") {\n          state.context.align = true;\n        }\n        if (curPunc === \"(\") {\n          pushContext(state, \")\", stream.column());\n        } else if (curPunc === \"[\") {\n          pushContext(state, \"]\", stream.column());\n        } else if (curPunc === \"{\") {\n          pushContext(state, \"}\", stream.column());\n        } else if (/[\\]\\}\\)]/.test(curPunc)) {\n          while (state.context && state.context.type === \"pattern\") {\n            popContext(state);\n          }\n          if (state.context && curPunc === state.context.type) {\n            popContext(state);\n          }\n        } else if (curPunc === \".\" && state.context && state.context.type === \"pattern\") {\n          popContext(state);\n        } else if (/atom|string|variable/.test(style) && state.context) {\n          if (/[\\}\\]]/.test(state.context.type)) {\n            pushContext(state, \"pattern\", stream.column());\n          } else if (state.context.type === \"pattern\" && !state.context.align) {\n            state.context.align = true;\n            state.context.col = stream.column();\n          }\n        }\n        return style;\n      },\n      indent: function(state, textAfter) {\n        var firstChar = textAfter && textAfter.charAt(0);\n        var context = state.context;\n        if (/[\\]\\}]/.test(firstChar)) {\n          while (context && context.type === \"pattern\") {\n            context = context.prev;\n          }\n        }\n        var closing = context && firstChar === context.type;\n        if (!context) return 0;\n        if (context.type === \"keywords\") return CodeMirror.commands.newlineAndIndent;\n        if (context.align) return context.col + (closing ? 0 : 1);\n        return context.indent + (closing ? 0 : indentUnit);\n      }\n    };\n  });\n\n  CodeMirror.modeExtensions[\"cypher\"] = {\n    autoFormatLineBreaks: function(text) {\n      var i, lines, reProcessedPortion;\n      var lines = text.split(\"\\n\");\n      var reProcessedPortion = /\\s+\\b(return|where|order by|match|with|skip|limit|create|delete|set)\\b\\s/g;\n      for (var i = 0; i < lines.length; i++)\n        lines[i] = lines[i].replace(reProcessedPortion, \" \\n$1 \").trim();\n      return lines.join(\"\\n\");\n    }\n  };\n\n  CodeMirror.defineMIME(\"application/x-cypher-query\", \"cypher\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/d/d.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"d\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"+\")) {\n        state.tokenize = tokenNestedComment;\n        return tokenNestedComment(stream, state);\n      }\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenNestedComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"+\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    blockCommentContinue: \" * \",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var blockKeywords = \"body catch class do else enum for foreach foreach_reverse if in interface mixin \" +\n                      \"out scope struct switch try union unittest version while with\";\n\n  CodeMirror.defineMIME(\"text/x-d\", {\n    name: \"d\",\n    keywords: words(\"abstract alias align asm assert auto break case cast cdouble cent cfloat const continue \" +\n                    \"debug default delegate delete deprecated export extern final finally function goto immutable \" +\n                    \"import inout invariant is lazy macro module new nothrow override package pragma private \" +\n                    \"protected public pure ref return shared short static super synchronized template this \" +\n                    \"throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters \" +\n                    blockKeywords),\n    blockKeywords: words(blockKeywords),\n    builtin: words(\"bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte \" +\n                   \"ucent uint ulong ushort wchar wstring void size_t sizediff_t\"),\n    atoms: words(\"exit failure success true false null\"),\n    hooks: {\n      \"@\": function(stream, _state) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/dart/dart.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var keywords = (\"this super static final const abstract class extends external factory \" +\n    \"implements mixin get native set typedef with enum throw rethrow \" +\n    \"assert break case continue default in return new deferred async await covariant \" +\n    \"try catch finally do else for if switch while import library export \" +\n    \"part of show hide is as extension on yield late required\").split(\" \");\n  var blockKeywords = \"try catch finally do else for if switch while\".split(\" \");\n  var atoms = \"true false null\".split(\" \");\n  var builtins = \"void bool num int double dynamic var String Null Never\".split(\" \");\n\n  function set(words) {\n    var obj = {};\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  function pushInterpolationStack(state) {\n    (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n  }\n\n  function popInterpolationStack(state) {\n    return (state.interpolationStack || (state.interpolationStack = [])).pop();\n  }\n\n  function sizeInterpolationStack(state) {\n    return state.interpolationStack ? state.interpolationStack.length : 0;\n  }\n\n  CodeMirror.defineMIME(\"application/dart\", {\n    name: \"clike\",\n    keywords: set(keywords),\n    blockKeywords: set(blockKeywords),\n    builtin: set(builtins),\n    atoms: set(atoms),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_\\.]/);\n        return \"meta\";\n      },\n\n      // custom string handling to deal with triple-quoted strings and string interpolation\n      \"'\": function(stream, state) {\n        return tokenString(\"'\", stream, state, false);\n      },\n      \"\\\"\": function(stream, state) {\n        return tokenString(\"\\\"\", stream, state, false);\n      },\n      \"r\": function(stream, state) {\n        var peek = stream.peek();\n        if (peek == \"'\" || peek == \"\\\"\") {\n          return tokenString(stream.next(), stream, state, true);\n        }\n        return false;\n      },\n\n      \"}\": function(_stream, state) {\n        // \"}\" is end of interpolation, if interpolation stack is non-empty\n        if (sizeInterpolationStack(state) > 0) {\n          state.tokenize = popInterpolationStack(state);\n          return null;\n        }\n        return false;\n      },\n\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false\n        state.tokenize = tokenNestedComment(1)\n        return state.tokenize(stream, state)\n      },\n      token: function(stream, _, style) {\n        if (style == \"variable\") {\n          // Assume uppercase symbols are classes using variable-2\n          var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n          if (isUpper.test(stream.current())) {\n            return 'variable-2';\n          }\n        }\n      }\n    }\n  });\n\n  function tokenString(quote, stream, state, raw) {\n    var tripleQuoted = false;\n    if (stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\"; //empty string\n    }\n    function tokenStringHelper(stream, state) {\n      var escaped = false;\n      while (!stream.eol()) {\n        if (!raw && !escaped && stream.peek() == \"$\") {\n          pushInterpolationStack(state);\n          state.tokenize = tokenInterpolation;\n          return \"string\";\n        }\n        var next = stream.next();\n        if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n          state.tokenize = null;\n          break;\n        }\n        escaped = !raw && !escaped && next == \"\\\\\";\n      }\n      return \"string\";\n    }\n    state.tokenize = tokenStringHelper;\n    return tokenStringHelper(stream, state);\n  }\n\n  function tokenInterpolation(stream, state) {\n    stream.eat(\"$\");\n    if (stream.eat(\"{\")) {\n      // let clike handle the content of ${...},\n      // we take over again when \"}\" appears (see hooks).\n      state.tokenize = null;\n    } else {\n      state.tokenize = tokenInterpolationIdentifier;\n    }\n    return null;\n  }\n\n  function tokenInterpolationIdentifier(stream, state) {\n    stream.eatWhile(/[\\w_]/);\n    state.tokenize = popInterpolationStack(state);\n    return \"variable\";\n  }\n\n  function tokenNestedComment(depth) {\n    return function (stream, state) {\n      var ch\n      while (ch = stream.next()) {\n        if (ch == \"*\" && stream.eat(\"/\")) {\n          if (depth == 1) {\n            state.tokenize = null\n            break\n          } else {\n            state.tokenize = tokenNestedComment(depth - 1)\n            return state.tokenize(stream, state)\n          }\n        } else if (ch == \"/\" && stream.eat(\"*\")) {\n          state.tokenize = tokenNestedComment(depth + 1)\n          return state.tokenize(stream, state)\n        }\n      }\n      return \"comment\"\n    }\n  }\n\n  CodeMirror.registerHelper(\"hintWords\", \"application/dart\", keywords.concat(atoms).concat(builtins));\n\n  // This is needed to make loading through meta.js work.\n  CodeMirror.defineMode(\"dart\", function(conf) {\n    return CodeMirror.getMode(conf, \"application/dart\");\n  }, \"clike\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/diff/diff.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"diff\", function() {\n\n  var TOKEN_NAMES = {\n    '+': 'positive',\n    '-': 'negative',\n    '@': 'meta'\n  };\n\n  return {\n    token: function(stream) {\n      var tw_pos = stream.string.search(/[\\t ]+?$/);\n\n      if (!stream.sol() || tw_pos === 0) {\n        stream.skipToEnd();\n        return (\"error \" + (\n          TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');\n      }\n\n      var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();\n\n      if (tw_pos === -1) {\n        stream.skipToEnd();\n      } else {\n        stream.pos = tw_pos;\n      }\n\n      return token_name;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-diff\", \"diff\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/django/django.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"django:inner\", function() {\n    var keywords = [\"block\", \"endblock\", \"for\", \"endfor\", \"true\", \"false\", \"filter\", \"endfilter\",\n                    \"loop\", \"none\", \"self\", \"super\", \"if\", \"elif\", \"endif\", \"as\", \"else\", \"import\",\n                    \"with\", \"endwith\", \"without\", \"context\", \"ifequal\", \"endifequal\", \"ifnotequal\",\n                    \"endifnotequal\", \"extends\", \"include\", \"load\", \"comment\", \"endcomment\",\n                    \"empty\", \"url\", \"static\", \"trans\", \"blocktrans\", \"endblocktrans\", \"now\",\n                    \"regroup\", \"lorem\", \"ifchanged\", \"endifchanged\", \"firstof\", \"debug\", \"cycle\",\n                    \"csrf_token\", \"autoescape\", \"endautoescape\", \"spaceless\", \"endspaceless\",\n                    \"ssi\", \"templatetag\", \"verbatim\", \"endverbatim\", \"widthratio\"],\n        filters = [\"add\", \"addslashes\", \"capfirst\", \"center\", \"cut\", \"date\",\n                   \"default\", \"default_if_none\", \"dictsort\",\n                   \"dictsortreversed\", \"divisibleby\", \"escape\", \"escapejs\",\n                   \"filesizeformat\", \"first\", \"floatformat\", \"force_escape\",\n                   \"get_digit\", \"iriencode\", \"join\", \"last\", \"length\",\n                   \"length_is\", \"linebreaks\", \"linebreaksbr\", \"linenumbers\",\n                   \"ljust\", \"lower\", \"make_list\", \"phone2numeric\", \"pluralize\",\n                   \"pprint\", \"random\", \"removetags\", \"rjust\", \"safe\",\n                   \"safeseq\", \"slice\", \"slugify\", \"stringformat\", \"striptags\",\n                   \"time\", \"timesince\", \"timeuntil\", \"title\", \"truncatechars\",\n                   \"truncatechars_html\", \"truncatewords\", \"truncatewords_html\",\n                   \"unordered_list\", \"upper\", \"urlencode\", \"urlize\",\n                   \"urlizetrunc\", \"wordcount\", \"wordwrap\", \"yesno\"],\n        operators = [\"==\", \"!=\", \"<\", \">\", \"<=\", \">=\"],\n        wordOperators = [\"in\", \"not\", \"or\", \"and\"];\n\n    keywords = new RegExp(\"^\\\\b(\" + keywords.join(\"|\") + \")\\\\b\");\n    filters = new RegExp(\"^\\\\b(\" + filters.join(\"|\") + \")\\\\b\");\n    operators = new RegExp(\"^\\\\b(\" + operators.join(\"|\") + \")\\\\b\");\n    wordOperators = new RegExp(\"^\\\\b(\" + wordOperators.join(\"|\") + \")\\\\b\");\n\n    // We have to return \"null\" instead of null, in order to avoid string\n    // styling as the default, when using Django templates inside HTML\n    // element attributes\n    function tokenBase (stream, state) {\n      // Attempt to identify a variable, template or comment tag respectively\n      if (stream.match(\"{{\")) {\n        state.tokenize = inVariable;\n        return \"tag\";\n      } else if (stream.match(\"{%\")) {\n        state.tokenize = inTag;\n        return \"tag\";\n      } else if (stream.match(\"{#\")) {\n        state.tokenize = inComment;\n        return \"comment\";\n      }\n\n      // Ignore completely any stream series that do not match the\n      // Django template opening tags.\n      while (stream.next() != null && !stream.match(/\\{[{%#]/, false)) {}\n      return null;\n    }\n\n    // A string can be included in either single or double quotes (this is\n    // the delimiter). Mark everything as a string until the start delimiter\n    // occurs again.\n    function inString (delimiter, previousTokenizer) {\n      return function (stream, state) {\n        if (!state.escapeNext && stream.eat(delimiter)) {\n          state.tokenize = previousTokenizer;\n        } else {\n          if (state.escapeNext) {\n            state.escapeNext = false;\n          }\n\n          var ch = stream.next();\n\n          // Take into account the backslash for escaping characters, such as\n          // the string delimiter.\n          if (ch == \"\\\\\") {\n            state.escapeNext = true;\n          }\n        }\n\n        return \"string\";\n      };\n    }\n\n    // Apply Django template variable syntax highlighting\n    function inVariable (stream, state) {\n      // Attempt to match a dot that precedes a property\n      if (state.waitDot) {\n        state.waitDot = false;\n\n        if (stream.peek() != \".\") {\n          return \"null\";\n        }\n\n        // Dot followed by a non-word character should be considered an error.\n        if (stream.match(/\\.\\W+/)) {\n          return \"error\";\n        } else if (stream.eat(\".\")) {\n          state.waitProperty = true;\n          return \"null\";\n        } else {\n          throw Error (\"Unexpected error while waiting for property.\");\n        }\n      }\n\n      // Attempt to match a pipe that precedes a filter\n      if (state.waitPipe) {\n        state.waitPipe = false;\n\n        if (stream.peek() != \"|\") {\n          return \"null\";\n        }\n\n        // Pipe followed by a non-word character should be considered an error.\n        if (stream.match(/\\.\\W+/)) {\n          return \"error\";\n        } else if (stream.eat(\"|\")) {\n          state.waitFilter = true;\n          return \"null\";\n        } else {\n          throw Error (\"Unexpected error while waiting for filter.\");\n        }\n      }\n\n      // Highlight properties\n      if (state.waitProperty) {\n        state.waitProperty = false;\n        if (stream.match(/\\b(\\w+)\\b/)) {\n          state.waitDot = true;  // A property can be followed by another property\n          state.waitPipe = true;  // A property can be followed by a filter\n          return \"property\";\n        }\n      }\n\n      // Highlight filters\n      if (state.waitFilter) {\n          state.waitFilter = false;\n        if (stream.match(filters)) {\n          return \"variable-2\";\n        }\n      }\n\n      // Ignore all white spaces\n      if (stream.eatSpace()) {\n        state.waitProperty = false;\n        return \"null\";\n      }\n\n      // Identify numbers\n      if (stream.match(/\\b\\d+(\\.\\d+)?\\b/)) {\n        return \"number\";\n      }\n\n      // Identify strings\n      if (stream.match(\"'\")) {\n        state.tokenize = inString(\"'\", state.tokenize);\n        return \"string\";\n      } else if (stream.match('\"')) {\n        state.tokenize = inString('\"', state.tokenize);\n        return \"string\";\n      }\n\n      // Attempt to find the variable\n      if (stream.match(/\\b(\\w+)\\b/) && !state.foundVariable) {\n        state.waitDot = true;\n        state.waitPipe = true;  // A property can be followed by a filter\n        return \"variable\";\n      }\n\n      // If found closing tag reset\n      if (stream.match(\"}}\")) {\n        state.waitProperty = null;\n        state.waitFilter = null;\n        state.waitDot = null;\n        state.waitPipe = null;\n        state.tokenize = tokenBase;\n        return \"tag\";\n      }\n\n      // If nothing was found, advance to the next character\n      stream.next();\n      return \"null\";\n    }\n\n    function inTag (stream, state) {\n      // Attempt to match a dot that precedes a property\n      if (state.waitDot) {\n        state.waitDot = false;\n\n        if (stream.peek() != \".\") {\n          return \"null\";\n        }\n\n        // Dot followed by a non-word character should be considered an error.\n        if (stream.match(/\\.\\W+/)) {\n          return \"error\";\n        } else if (stream.eat(\".\")) {\n          state.waitProperty = true;\n          return \"null\";\n        } else {\n          throw Error (\"Unexpected error while waiting for property.\");\n        }\n      }\n\n      // Attempt to match a pipe that precedes a filter\n      if (state.waitPipe) {\n        state.waitPipe = false;\n\n        if (stream.peek() != \"|\") {\n          return \"null\";\n        }\n\n        // Pipe followed by a non-word character should be considered an error.\n        if (stream.match(/\\.\\W+/)) {\n          return \"error\";\n        } else if (stream.eat(\"|\")) {\n          state.waitFilter = true;\n          return \"null\";\n        } else {\n          throw Error (\"Unexpected error while waiting for filter.\");\n        }\n      }\n\n      // Highlight properties\n      if (state.waitProperty) {\n        state.waitProperty = false;\n        if (stream.match(/\\b(\\w+)\\b/)) {\n          state.waitDot = true;  // A property can be followed by another property\n          state.waitPipe = true;  // A property can be followed by a filter\n          return \"property\";\n        }\n      }\n\n      // Highlight filters\n      if (state.waitFilter) {\n          state.waitFilter = false;\n        if (stream.match(filters)) {\n          return \"variable-2\";\n        }\n      }\n\n      // Ignore all white spaces\n      if (stream.eatSpace()) {\n        state.waitProperty = false;\n        return \"null\";\n      }\n\n      // Identify numbers\n      if (stream.match(/\\b\\d+(\\.\\d+)?\\b/)) {\n        return \"number\";\n      }\n\n      // Identify strings\n      if (stream.match(\"'\")) {\n        state.tokenize = inString(\"'\", state.tokenize);\n        return \"string\";\n      } else if (stream.match('\"')) {\n        state.tokenize = inString('\"', state.tokenize);\n        return \"string\";\n      }\n\n      // Attempt to match an operator\n      if (stream.match(operators)) {\n        return \"operator\";\n      }\n\n      // Attempt to match a word operator\n      if (stream.match(wordOperators)) {\n        return \"keyword\";\n      }\n\n      // Attempt to match a keyword\n      var keywordMatch = stream.match(keywords);\n      if (keywordMatch) {\n        if (keywordMatch[0] == \"comment\") {\n          state.blockCommentTag = true;\n        }\n        return \"keyword\";\n      }\n\n      // Attempt to match a variable\n      if (stream.match(/\\b(\\w+)\\b/)) {\n        state.waitDot = true;\n        state.waitPipe = true;  // A property can be followed by a filter\n        return \"variable\";\n      }\n\n      // If found closing tag reset\n      if (stream.match(\"%}\")) {\n        state.waitProperty = null;\n        state.waitFilter = null;\n        state.waitDot = null;\n        state.waitPipe = null;\n        // If the tag that closes is a block comment tag, we want to mark the\n        // following code as comment, until the tag closes.\n        if (state.blockCommentTag) {\n          state.blockCommentTag = false;  // Release the \"lock\"\n          state.tokenize = inBlockComment;\n        } else {\n          state.tokenize = tokenBase;\n        }\n        return \"tag\";\n      }\n\n      // If nothing was found, advance to the next character\n      stream.next();\n      return \"null\";\n    }\n\n    // Mark everything as comment inside the tag and the tag itself.\n    function inComment (stream, state) {\n      if (stream.match(/^.*?#\\}/)) state.tokenize = tokenBase\n      else stream.skipToEnd()\n      return \"comment\";\n    }\n\n    // Mark everything as a comment until the `blockcomment` tag closes.\n    function inBlockComment (stream, state) {\n      if (stream.match(/\\{%\\s*endcomment\\s*%\\}/, false)) {\n        state.tokenize = inTag;\n        stream.match(\"{%\");\n        return \"tag\";\n      } else {\n        stream.next();\n        return \"comment\";\n      }\n    }\n\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      },\n      blockCommentStart: \"{% comment %}\",\n      blockCommentEnd: \"{% endcomment %}\"\n    };\n  });\n\n  CodeMirror.defineMode(\"django\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var djangoInner = CodeMirror.getMode(config, \"django:inner\");\n    return CodeMirror.overlayMode(htmlBase, djangoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-django\", \"django\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/dockerfile/dockerfile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var from = \"from\";\n  var fromRegex = new RegExp(\"^(\\\\s*)\\\\b(\" + from + \")\\\\b\", \"i\");\n\n  var shells = [\"run\", \"cmd\", \"entrypoint\", \"shell\"];\n  var shellsAsArrayRegex = new RegExp(\"^(\\\\s*)(\" + shells.join('|') + \")(\\\\s+\\\\[)\", \"i\");\n\n  var expose = \"expose\";\n  var exposeRegex = new RegExp(\"^(\\\\s*)(\" + expose + \")(\\\\s+)\", \"i\");\n\n  var others = [\n    \"arg\", \"from\", \"maintainer\", \"label\", \"env\",\n    \"add\", \"copy\", \"volume\", \"user\",\n    \"workdir\", \"onbuild\", \"stopsignal\", \"healthcheck\", \"shell\"\n  ];\n\n  // Collect all Dockerfile directives\n  var instructions = [from, expose].concat(shells).concat(others),\n      instructionRegex = \"(\" + instructions.join('|') + \")\",\n      instructionOnlyLine = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s*)(#.*)?$\", \"i\"),\n      instructionWithArguments = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s+)\", \"i\");\n\n  CodeMirror.defineSimpleMode(\"dockerfile\", {\n    start: [\n      // Block comment: This is a line starting with a comment\n      {\n        regex: /^\\s*#.*$/,\n        sol: true,\n        token: \"comment\"\n      },\n      {\n        regex: fromRegex,\n        token: [null, \"keyword\"],\n        sol: true,\n        next: \"from\"\n      },\n      // Highlight an instruction without any arguments (for convenience)\n      {\n        regex: instructionOnlyLine,\n        token: [null, \"keyword\", null, \"error\"],\n        sol: true\n      },\n      {\n        regex: shellsAsArrayRegex,\n        token: [null, \"keyword\", null],\n        sol: true,\n        next: \"array\"\n      },\n      {\n        regex: exposeRegex,\n        token: [null, \"keyword\", null],\n        sol: true,\n        next: \"expose\"\n      },\n      // Highlight an instruction followed by arguments\n      {\n        regex: instructionWithArguments,\n        token: [null, \"keyword\", null],\n        sol: true,\n        next: \"arguments\"\n      },\n      {\n        regex: /./,\n        token: null\n      }\n    ],\n    from: [\n      {\n        regex: /\\s*$/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        // Line comment without instruction arguments is an error\n        regex: /(\\s*)(#.*)$/,\n        token: [null, \"error\"],\n        next: \"start\"\n      },\n      {\n        regex: /(\\s*\\S+\\s+)(as)/i,\n        token: [null, \"keyword\"],\n        next: \"start\"\n      },\n      // Fail safe return to start\n      {\n        token: null,\n        next: \"start\"\n      }\n    ],\n    single: [\n      {\n        regex: /(?:[^\\\\']|\\\\.)/,\n        token: \"string\"\n      },\n      {\n        regex: /'/,\n        token: \"string\",\n        pop: true\n      }\n    ],\n    double: [\n      {\n        regex: /(?:[^\\\\\"]|\\\\.)/,\n        token: \"string\"\n      },\n      {\n        regex: /\"/,\n        token: \"string\",\n        pop: true\n      }\n    ],\n    array: [\n      {\n        regex: /\\]/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/,\n        token: \"string\"\n      }\n    ],\n    expose: [\n      {\n        regex: /\\d+$/,\n        token: \"number\",\n        next: \"start\"\n      },\n      {\n        regex: /[^\\d]+$/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        regex: /\\d+/,\n        token: \"number\"\n      },\n      {\n        regex: /[^\\d]+/,\n        token: null\n      },\n      // Fail safe return to start\n      {\n        token: null,\n        next: \"start\"\n      }\n    ],\n    arguments: [\n      {\n        regex: /^\\s*#.*$/,\n        sol: true,\n        token: \"comment\"\n      },\n      {\n        regex: /\"(?:[^\\\\\"]|\\\\.)*\"?$/,\n        token: \"string\",\n        next: \"start\"\n      },\n      {\n        regex: /\"/,\n        token: \"string\",\n        push: \"double\"\n      },\n      {\n        regex: /'(?:[^\\\\']|\\\\.)*'?$/,\n        token: \"string\",\n        next: \"start\"\n      },\n      {\n        regex: /'/,\n        token: \"string\",\n        push: \"single\"\n      },\n      {\n        regex: /[^#\"']+[\\\\`]$/,\n        token: null\n      },\n      {\n        regex: /[^#\"']+$/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        regex: /[^#\"']+/,\n        token: null\n      },\n      // Fail safe return to start\n      {\n        token: null,\n        next: \"start\"\n      }\n    ],\n    meta: {\n      lineComment: \"#\"\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-dockerfile\", \"dockerfile\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/dtd/dtd.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n  DTD mode\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"dtd\", function(config) {\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch == \"<\" && stream.eat(\"!\") ) {\n      if (stream.eatWhile(/[\\-]/)) {\n        state.tokenize = tokenSGMLComment;\n        return tokenSGMLComment(stream, state);\n      } else if (stream.eatWhile(/[\\w]/)) return ret(\"keyword\", \"doindent\");\n    } else if (ch == \"<\" && stream.eat(\"?\")) { //xml declaration\n      state.tokenize = inBlock(\"meta\", \"?>\");\n      return ret(\"meta\", ch);\n    } else if (ch == \"#\" && stream.eatWhile(/[\\w]/)) return ret(\"atom\", \"tag\");\n    else if (ch == \"|\") return ret(\"keyword\", \"separator\");\n    else if (ch.match(/[\\(\\)\\[\\]\\-\\.,\\+\\?>]/)) return ret(null, ch);//if(ch === \">\") return ret(null, \"endtag\"); else\n    else if (ch.match(/[\\[\\]]/)) return ret(\"rule\", ch);\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (stream.eatWhile(/[a-zA-Z\\?\\+\\d]/)) {\n      var sc = stream.current();\n      if( sc.substr(sc.length-1,sc.length).match(/\\?|\\+/) !== null )stream.backUp(1);\n      return ret(\"tag\", \"tag\");\n    } else if (ch == \"%\" || ch == \"*\" ) return ret(\"number\", \"number\");\n    else {\n      stream.eatWhile(/[\\w\\\\\\-_%.{,]/);\n      return ret(null, null);\n    }\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return ret(\"string\", \"tag\");\n    };\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (stream.current() == \"[\" || type === \"doindent\" || type == \"[\") state.stack.push(\"rule\");\n      else if (type === \"endtag\") state.stack[state.stack.length-1] = \"endtag\";\n      else if (stream.current() == \"]\" || type == \"]\" || (type == \">\" && context == \"rule\")) state.stack.pop();\n      else if (type == \"[\") state.stack.push(\"[\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n\n      if( textAfter.charAt(0) === ']' )n--;\n      else if(textAfter.substr(textAfter.length-1, textAfter.length) === \">\"){\n        if(textAfter.substr(0,1) === \"<\") {}\n        else if( type == \"doindent\" && textAfter.length > 1 ) {}\n        else if( type == \"doindent\")n--;\n        else if( type == \">\" && textAfter.length > 1) {}\n        else if( type == \"tag\" && textAfter !== \">\") {}\n        else if( type == \"tag\" && state.stack[state.stack.length-1] == \"rule\")n--;\n        else if( type == \"tag\")n++;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\" && type === \">\")n--;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\") {}\n        else if( textAfter.substr(0,1) !== \"<\" && textAfter.substr(0,1) === \">\" )n=n-1;\n        else if( textAfter === \">\") {}\n        else n=n-1;\n        //over rule them all\n        if(type == null || type == \"]\")n--;\n      }\n\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"]>\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/xml-dtd\", \"dtd\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/dylan/dylan.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction forEach(arr, f) {\n  for (var i = 0; i < arr.length; i++) f(arr[i], i)\n}\nfunction some(arr, f) {\n  for (var i = 0; i < arr.length; i++) if (f(arr[i], i)) return true\n  return false\n}\n\nCodeMirror.defineMode(\"dylan\", function(_config) {\n  // Words\n  var words = {\n    // Words that introduce unnamed definitions like \"define interface\"\n    unnamedDefinition: [\"interface\"],\n\n    // Words that introduce simple named definitions like \"define library\"\n    namedDefinition: [\"module\", \"library\", \"macro\",\n                      \"C-struct\", \"C-union\",\n                      \"C-function\", \"C-callable-wrapper\"\n                     ],\n\n    // Words that introduce type definitions like \"define class\".\n    // These are also parameterized like \"define method\" and are\n    // appended to otherParameterizedDefinitionWords\n    typeParameterizedDefinition: [\"class\", \"C-subtype\", \"C-mapped-subtype\"],\n\n    // Words that introduce trickier definitions like \"define method\".\n    // These require special definitions to be added to startExpressions\n    otherParameterizedDefinition: [\"method\", \"function\",\n                                   \"C-variable\", \"C-address\"\n                                  ],\n\n    // Words that introduce module constant definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    constantSimpleDefinition: [\"constant\"],\n\n    // Words that introduce module variable definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    variableSimpleDefinition: [\"variable\"],\n\n    // Other words that introduce simple definitions\n    // (without implicit bodies).\n    otherSimpleDefinition: [\"generic\", \"domain\",\n                            \"C-pointer-type\",\n                            \"table\"\n                           ],\n\n    // Words that begin statements with implicit bodies.\n    statement: [\"if\", \"block\", \"begin\", \"method\", \"case\",\n                \"for\", \"select\", \"when\", \"unless\", \"until\",\n                \"while\", \"iterate\", \"profiling\", \"dynamic-bind\"\n               ],\n\n    // Patterns that act as separators in compound statements.\n    // This may include any general pattern that must be indented\n    // specially.\n    separator: [\"finally\", \"exception\", \"cleanup\", \"else\",\n                \"elseif\", \"afterwards\"\n               ],\n\n    // Keywords that do not require special indentation handling,\n    // but which should be highlighted\n    other: [\"above\", \"below\", \"by\", \"from\", \"handler\", \"in\",\n            \"instance\", \"let\", \"local\", \"otherwise\", \"slot\",\n            \"subclass\", \"then\", \"to\", \"keyed-by\", \"virtual\"\n           ],\n\n    // Condition signaling function calls\n    signalingCalls: [\"signal\", \"error\", \"cerror\",\n                     \"break\", \"check-type\", \"abort\"\n                    ]\n  };\n\n  words[\"otherDefinition\"] =\n    words[\"unnamedDefinition\"]\n    .concat(words[\"namedDefinition\"])\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"definition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherDefinition\"]);\n\n  words[\"parameterizedDefinition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"simpleDefinition\"] =\n    words[\"constantSimpleDefinition\"]\n    .concat(words[\"variableSimpleDefinition\"])\n    .concat(words[\"otherSimpleDefinition\"]);\n\n  words[\"keyword\"] =\n    words[\"statement\"]\n    .concat(words[\"separator\"])\n    .concat(words[\"other\"]);\n\n  // Patterns\n  var symbolPattern = \"[-_a-zA-Z?!*@<>$%]+\";\n  var symbol = new RegExp(\"^\" + symbolPattern);\n  var patterns = {\n    // Symbols with special syntax\n    symbolKeyword: symbolPattern + \":\",\n    symbolClass: \"<\" + symbolPattern + \">\",\n    symbolGlobal: \"\\\\*\" + symbolPattern + \"\\\\*\",\n    symbolConstant: \"\\\\$\" + symbolPattern\n  };\n  var patternStyles = {\n    symbolKeyword: \"atom\",\n    symbolClass: \"tag\",\n    symbolGlobal: \"variable-2\",\n    symbolConstant: \"variable-3\"\n  };\n\n  // Compile all patterns to regular expressions\n  for (var patternName in patterns)\n    if (patterns.hasOwnProperty(patternName))\n      patterns[patternName] = new RegExp(\"^\" + patterns[patternName]);\n\n  // Names beginning \"with-\" and \"without-\" are commonly\n  // used as statement macro\n  patterns[\"keyword\"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];\n\n  var styles = {};\n  styles[\"keyword\"] = \"keyword\";\n  styles[\"definition\"] = \"def\";\n  styles[\"simpleDefinition\"] = \"def\";\n  styles[\"signalingCalls\"] = \"builtin\";\n\n  // protected words lookup table\n  var wordLookup = {};\n  var styleLookup = {};\n\n  forEach([\n    \"keyword\",\n    \"definition\",\n    \"simpleDefinition\",\n    \"signalingCalls\"\n  ], function(type) {\n    forEach(words[type], function(word) {\n      wordLookup[word] = type;\n      styleLookup[word] = styles[type];\n    });\n  });\n\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    // String\n    var ch = stream.peek();\n    if (ch == \"'\" || ch == '\"') {\n      stream.next();\n      return chain(stream, state, tokenString(ch, \"string\"));\n    }\n    // Comment\n    else if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      stream.backUp(1);\n    }\n    // Decimal\n    else if (/[+\\-\\d\\.]/.test(ch)) {\n      if (stream.match(/^[+-]?[0-9]*\\.[0-9]*([esdx][+-]?[0-9]+)?/i) ||\n          stream.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i) ||\n          stream.match(/^[+-]?\\d+/)) {\n        return \"number\";\n      }\n    }\n    // Hash\n    else if (ch == \"#\") {\n      stream.next();\n      // Symbol with string syntax\n      ch = stream.peek();\n      if (ch == '\"') {\n        stream.next();\n        return chain(stream, state, tokenString('\"', \"string\"));\n      }\n      // Binary number\n      else if (ch == \"b\") {\n        stream.next();\n        stream.eatWhile(/[01]/);\n        return \"number\";\n      }\n      // Hex number\n      else if (ch == \"x\") {\n        stream.next();\n        stream.eatWhile(/[\\da-f]/i);\n        return \"number\";\n      }\n      // Octal number\n      else if (ch == \"o\") {\n        stream.next();\n        stream.eatWhile(/[0-7]/);\n        return \"number\";\n      }\n      // Token concatenation in macros\n      else if (ch == '#') {\n        stream.next();\n        return \"punctuation\";\n      }\n      // Sequence literals\n      else if ((ch == '[') || (ch == '(')) {\n        stream.next();\n        return \"bracket\";\n      // Hash symbol\n      } else if (stream.match(/f|t|all-keys|include|key|next|rest/i)) {\n        return \"atom\";\n      } else {\n        stream.eatWhile(/[-a-zA-Z]/);\n        return \"error\";\n      }\n    } else if (ch == \"~\") {\n      stream.next();\n      ch = stream.peek();\n      if (ch == \"=\") {\n        stream.next();\n        ch = stream.peek();\n        if (ch == \"=\") {\n          stream.next();\n          return \"operator\";\n        }\n        return \"operator\";\n      }\n      return \"operator\";\n    } else if (ch == \":\") {\n      stream.next();\n      ch = stream.peek();\n      if (ch == \"=\") {\n        stream.next();\n        return \"operator\";\n      } else if (ch == \":\") {\n        stream.next();\n        return \"punctuation\";\n      }\n    } else if (\"[](){}\".indexOf(ch) != -1) {\n      stream.next();\n      return \"bracket\";\n    } else if (\".,\".indexOf(ch) != -1) {\n      stream.next();\n      return \"punctuation\";\n    } else if (stream.match(\"end\")) {\n      return \"keyword\";\n    }\n    for (var name in patterns) {\n      if (patterns.hasOwnProperty(name)) {\n        var pattern = patterns[name];\n        if ((pattern instanceof Array && some(pattern, function(p) {\n          return stream.match(p);\n        })) || stream.match(pattern))\n          return patternStyles[name];\n      }\n    }\n    if (/[+\\-*\\/^=<>&|]/.test(ch)) {\n      stream.next();\n      return \"operator\";\n    }\n    if (stream.match(\"define\")) {\n      return \"def\";\n    } else {\n      stream.eatWhile(/[\\w\\-]/);\n      // Keyword\n      if (wordLookup.hasOwnProperty(stream.current())) {\n        return styleLookup[stream.current()];\n      } else if (stream.current().match(symbol)) {\n        return \"variable\";\n      } else {\n        stream.next();\n        return \"variable-2\";\n      }\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;\n    while ((ch = stream.next())) {\n      if (ch == \"/\" && maybeEnd) {\n        if (nestedCount > 0) {\n          nestedCount--;\n        } else {\n          state.tokenize = tokenBase;\n          break;\n        }\n      } else if (ch == \"*\" && maybeNested) {\n        nestedCount++;\n      }\n      maybeEnd = (ch == \"*\");\n      maybeNested = (ch == \"/\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote, style) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) {\n        state.tokenize = tokenBase;\n      }\n      return style;\n    };\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        currentIndent: 0\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-dylan\", \"dylan\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ebnf/ebnf.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"ebnf\", function (config) {\n    var commentType = {slash: 0, parenthesis: 1};\n    var stateType = {comment: 0, _string: 1, characterClass: 2};\n    var bracesMode = null;\n\n    if (config.bracesMode)\n      bracesMode = CodeMirror.getMode(config, config.bracesMode);\n\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          commentType: null,\n          braced: 0,\n          lhs: true,\n          localState: null,\n          stack: [],\n          inDefinition: false\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(stateType._string);\n          } else if (stream.match('/*')) { //comments starting with /*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.slash;\n          } else if (stream.match('(*')) { //comments starting with (*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.parenthesis;\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case stateType._string:\n          while (state.stack[0] === stateType._string && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return state.lhs ? \"property string\" : \"string\"; // Token style\n\n        case stateType.comment:\n          while (state.stack[0] === stateType.comment && !stream.eol()) {\n            if (state.commentType === commentType.slash && stream.match('*/')) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else if (state.commentType === commentType.parenthesis && stream.match('*)')) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else {\n              stream.match(/^.[^\\*]*/);\n            }\n          }\n          return \"comment\";\n\n        case stateType.characterClass:\n          while (state.stack[0] === stateType.characterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match('.'))) {\n              state.stack.shift();\n            }\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        if (bracesMode !== null && (state.braced || peek === \"{\")) {\n          if (state.localState === null)\n            state.localState = CodeMirror.startState(bracesMode);\n\n          var token = bracesMode.token(stream, state.localState),\n          text = stream.current();\n\n          if (!token) {\n            for (var i = 0; i < text.length; i++) {\n              if (text[i] === \"{\") {\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n                state.braced++;\n              } else if (text[i] === \"}\") {\n                state.braced--;\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n              }\n            }\n          }\n          return token;\n        }\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(stateType.characterClass);\n          return \"bracket\";\n        case \":\":\n        case \"|\":\n        case \";\":\n          stream.next();\n          return \"operator\";\n        case \"%\":\n          if (stream.match(\"%%\")) {\n            return \"header\";\n          } else if (stream.match(/[%][A-Za-z]+/)) {\n            return \"keyword\";\n          } else if (stream.match(/[%][}]/)) {\n            return \"matchingbracket\";\n          }\n          break;\n        case \"/\":\n          if (stream.match(/[\\/][A-Za-z]+/)) {\n          return \"keyword\";\n        }\n        case \"\\\\\":\n          if (stream.match(/[\\][a-z]+/)) {\n            return \"string-2\";\n          }\n        case \".\":\n          if (stream.match(\".\")) {\n            return \"atom\";\n          }\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n          if (stream.match(peek)) {\n            return \"atom\";\n          }\n        case \"$\":\n          if (stream.match(\"$$\")) {\n            return \"builtin\";\n          } else if (stream.match(/[$][0-9]+/)) {\n            return \"variable-3\";\n          }\n        case \"<\":\n          if (stream.match(/<<[a-zA-Z_]+>>/)) {\n            return \"builtin\";\n          }\n        }\n\n        if (stream.match('//')) {\n          stream.skipToEnd();\n          return \"comment\";\n        } else if (stream.match('return')) {\n          return \"operator\";\n        } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {\n          if (stream.match(/(?=[\\(.])/)) {\n            return \"variable\";\n          } else if (stream.match(/(?=[\\s\\n]*[:=])/)) {\n            return \"def\";\n          }\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\"].indexOf(stream.peek()) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-ebnf\", \"ebnf\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ecl/ecl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ecl\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  function metaHook(stream, state) {\n    if (!state.startOfLine) return false;\n    stream.skipToEnd();\n    return \"meta\";\n  }\n\n  var indentUnit = config.indentUnit;\n  var keyword = words(\"abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode\");\n  var variable = words(\"apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait\");\n  var variable_2 = words(\"__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath\");\n  var variable_3 = words(\"ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode\");\n  var builtin = words(\"checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when\");\n  var blockKeywords = words(\"catch class do else finally for if switch try while\");\n  var atoms = words(\"true false null\");\n  var hooks = {\"#\": metaHook};\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current().toLowerCase();\n    if (keyword.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    } else if (variable.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable\";\n    } else if (variable_2.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-2\";\n    } else if (variable_3.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-3\";\n    } else if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    } else { //Data types are of from KEYWORD##\n                var i = cur.length - 1;\n                while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_'))\n                        --i;\n\n                if (i > 0) {\n                        var cur2 = cur.substr(0, i + 1);\n                if (variable_3.propertyIsEnumerable(cur2)) {\n                        if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = \"newstatement\";\n                        return \"variable-3\";\n                }\n            }\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped)\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ecl\", \"ecl\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/eiffel/eiffel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"eiffel\", function() {\n  function wordObj(words) {\n    var o = {};\n    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n    return o;\n  }\n  var keywords = wordObj([\n    'note',\n    'across',\n    'when',\n    'variant',\n    'until',\n    'unique',\n    'undefine',\n    'then',\n    'strip',\n    'select',\n    'retry',\n    'rescue',\n    'require',\n    'rename',\n    'reference',\n    'redefine',\n    'prefix',\n    'once',\n    'old',\n    'obsolete',\n    'loop',\n    'local',\n    'like',\n    'is',\n    'inspect',\n    'infix',\n    'include',\n    'if',\n    'frozen',\n    'from',\n    'external',\n    'export',\n    'ensure',\n    'end',\n    'elseif',\n    'else',\n    'do',\n    'creation',\n    'create',\n    'check',\n    'alias',\n    'agent',\n    'separate',\n    'invariant',\n    'inherit',\n    'indexing',\n    'feature',\n    'expanded',\n    'deferred',\n    'class',\n    'Void',\n    'True',\n    'Result',\n    'Precursor',\n    'False',\n    'Current',\n    'create',\n    'attached',\n    'detachable',\n    'as',\n    'and',\n    'implies',\n    'not',\n    'or'\n  ]);\n  var operators = wordObj([\":=\", \"and then\",\"and\", \"or\",\"<<\",\">>\"]);\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    if (stream.eatSpace()) return null;\n    var ch = stream.next();\n    if (ch == '\"'||ch == \"'\") {\n      return chain(readQuoted(ch, \"string\"), stream, state);\n    } else if (ch == \"-\"&&stream.eat(\"-\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \":\"&&stream.eat(\"=\")) {\n      return \"operator\";\n    } else if (/[0-9]/.test(ch)) {\n      stream.eatWhile(/[xXbBCc0-9\\.]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[a-zA-Z_0-9]/.test(ch)) {\n      stream.eatWhile(/[a-zA-Z_0-9]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[=+\\-\\/*^%<>~]/.test(ch)) {\n      stream.eatWhile(/[=+\\-\\/*^%<>~]/);\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function readQuoted(quote, style,  unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        escaped = !escaped && ch == \"%\";\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase]};\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : operators.propertyIsEnumerable(stream.current()) ? \"operator\"\n          : /^[A-Z][A-Z_0-9]*$/g.test(word) ? \"tag\"\n          : /^0[bB][0-1]+$/g.test(word) ? \"number\"\n          : /^0[cC][0-7]+$/g.test(word) ? \"number\"\n          : /^0[xX][a-fA-F0-9]+$/g.test(word) ? \"number\"\n          : /^([0-9]+\\.[0-9]*)|([0-9]*\\.[0-9]+)$/g.test(word) ? \"number\"\n          : /^[0-9]+$/g.test(word) ? \"number\"\n          : \"variable\";\n      }\n      return style;\n    },\n    lineComment: \"--\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-eiffel\", \"eiffel\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/elm/elm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"elm\", function() {\n\n    function switchState(source, setState, f)\n    {\n      setState(f);\n      return f(source, setState);\n    }\n\n    var lowerRE = /[a-z]/;\n    var upperRE = /[A-Z]/;\n    var innerRE = /[a-zA-Z0-9_]/;\n\n    var digitRE = /[0-9]/;\n    var hexRE = /[0-9A-Fa-f]/;\n    var symbolRE = /[-&*+.\\\\/<>=?^|:]/;\n    var specialRE = /[(),[\\]{}]/;\n    var spacesRE = /[ \\v\\f]/; // newlines are handled in tokenizer\n\n    function normal()\n    {\n      return function(source, setState)\n      {\n        if (source.eatWhile(spacesRE))\n        {\n          return null;\n        }\n\n        var char = source.next();\n\n        if (specialRE.test(char))\n        {\n          return (char === '{' && source.eat('-'))\n            ? switchState(source, setState, chompMultiComment(1))\n            : (char === '[' && source.match('glsl|'))\n                ? switchState(source, setState, chompGlsl)\n                : 'builtin';\n        }\n\n        if (char === '\\'')\n        {\n          return switchState(source, setState, chompChar);\n        }\n\n        if (char === '\"')\n        {\n          return source.eat('\"')\n            ? source.eat('\"')\n                ? switchState(source, setState, chompMultiString)\n                : 'string'\n            : switchState(source, setState, chompSingleString);\n        }\n\n        if (upperRE.test(char))\n        {\n          source.eatWhile(innerRE);\n          return 'variable-2';\n        }\n\n        if (lowerRE.test(char))\n        {\n          var isDef = source.pos === 1;\n          source.eatWhile(innerRE);\n          return isDef ? \"def\" : \"variable\";\n        }\n\n        if (digitRE.test(char))\n        {\n          if (char === '0')\n          {\n            if (source.eat(/[xX]/))\n            {\n              source.eatWhile(hexRE); // should require at least 1\n              return \"number\";\n            }\n          }\n          else\n          {\n            source.eatWhile(digitRE);\n          }\n          if (source.eat('.'))\n          {\n            source.eatWhile(digitRE); // should require at least 1\n          }\n          if (source.eat(/[eE]/))\n          {\n            source.eat(/[-+]/);\n            source.eatWhile(digitRE); // should require at least 1\n          }\n          return \"number\";\n        }\n\n        if (symbolRE.test(char))\n        {\n          if (char === '-' && source.eat('-'))\n          {\n            source.skipToEnd();\n            return \"comment\";\n          }\n          source.eatWhile(symbolRE);\n          return \"keyword\";\n        }\n\n        if (char === '_')\n        {\n          return \"keyword\";\n        }\n\n        return \"error\";\n      }\n    }\n\n    function chompMultiComment(nest)\n    {\n      if (nest == 0)\n      {\n        return normal();\n      }\n      return function(source, setState)\n      {\n        while (!source.eol())\n        {\n          var char = source.next();\n          if (char == '{' && source.eat('-'))\n          {\n            ++nest;\n          }\n          else if (char == '-' && source.eat('}'))\n          {\n            --nest;\n            if (nest === 0)\n            {\n              setState(normal());\n              return 'comment';\n            }\n          }\n        }\n        setState(chompMultiComment(nest));\n        return 'comment';\n      }\n    }\n\n    function chompMultiString(source, setState)\n    {\n      while (!source.eol())\n      {\n        var char = source.next();\n        if (char === '\"' && source.eat('\"') && source.eat('\"'))\n        {\n          setState(normal());\n          return 'string';\n        }\n      }\n      return 'string';\n    }\n\n    function chompSingleString(source, setState)\n    {\n      while (source.skipTo('\\\\\"')) { source.next(); source.next(); }\n      if (source.skipTo('\"'))\n      {\n        source.next();\n        setState(normal());\n        return 'string';\n      }\n      source.skipToEnd();\n      setState(normal());\n      return 'error';\n    }\n\n    function chompChar(source, setState)\n    {\n      while (source.skipTo(\"\\\\'\")) { source.next(); source.next(); }\n      if (source.skipTo(\"'\"))\n      {\n        source.next();\n        setState(normal());\n        return 'string';\n      }\n      source.skipToEnd();\n      setState(normal());\n      return 'error';\n    }\n\n    function chompGlsl(source, setState)\n    {\n      while (!source.eol())\n      {\n        var char = source.next();\n        if (char === '|' && source.eat(']'))\n        {\n          setState(normal());\n          return 'string';\n        }\n      }\n      return 'string';\n    }\n\n    var wellKnownWords = {\n      case: 1,\n      of: 1,\n      as: 1,\n      if: 1,\n      then: 1,\n      else: 1,\n      let: 1,\n      in: 1,\n      type: 1,\n      alias: 1,\n      module: 1,\n      where: 1,\n      import: 1,\n      exposing: 1,\n      port: 1\n    };\n\n    return {\n      startState: function ()  { return { f: normal() }; },\n      copyState:  function (s) { return { f: s.f }; },\n\n      token: function(stream, state) {\n        var type = state.f(stream, function(s) { state.f = s; });\n        var word = stream.current();\n        return (wellKnownWords.hasOwnProperty(word)) ? 'keyword' : type;\n      }\n    };\n\n  });\n\n  CodeMirror.defineMIME(\"text/x-elm\", \"elm\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/erlang/erlang.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*jshint unused:true, eqnull:true, curly:true, bitwise:true */\n/*jshint undef:true, latedef:true, trailing:true */\n/*global CodeMirror:true */\n\n// erlang mode.\n// tokenizer -> token types -> CodeMirror styles\n// tokenizer maintains a parse stack\n// indenter uses the parse stack\n\n// TODO indenter:\n//   bit syntax\n//   old guard/bif/conversion clashes (e.g. \"float/1\")\n//   type/spec/opaque\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/x-erlang\", \"erlang\");\n\nCodeMirror.defineMode(\"erlang\", function(cmCfg) {\n  \"use strict\";\n\n/////////////////////////////////////////////////////////////////////////////\n// constants\n\n  var typeWords = [\n    \"-type\", \"-spec\", \"-export_type\", \"-opaque\"];\n\n  var keywordWords = [\n    \"after\",\"begin\",\"catch\",\"case\",\"cond\",\"end\",\"fun\",\"if\",\n    \"let\",\"of\",\"query\",\"receive\",\"try\",\"when\"];\n\n  var separatorRE    = /[\\->,;]/;\n  var separatorWords = [\n    \"->\",\";\",\",\"];\n\n  var operatorAtomWords = [\n    \"and\",\"andalso\",\"band\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\n    \"div\",\"not\",\"or\",\"orelse\",\"rem\",\"xor\"];\n\n  var operatorSymbolRE    = /[\\+\\-\\*\\/<>=\\|:!]/;\n  var operatorSymbolWords = [\n    \"=\",\"+\",\"-\",\"*\",\"/\",\">\",\">=\",\"<\",\"=<\",\"=:=\",\"==\",\"=/=\",\"/=\",\"||\",\"<-\",\"!\"];\n\n  var openParenRE    = /[<\\(\\[\\{]/;\n  var openParenWords = [\n    \"<<\",\"(\",\"[\",\"{\"];\n\n  var closeParenRE    = /[>\\)\\]\\}]/;\n  var closeParenWords = [\n    \"}\",\"]\",\")\",\">>\"];\n\n  var guardWords = [\n    \"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\"is_float\",\n    \"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"atom\",\"binary\",\"bitstring\",\"boolean\",\"function\",\"integer\",\"list\",\n    \"number\",\"pid\",\"port\",\"record\",\"reference\",\"tuple\"];\n\n  var bifWords = [\n    \"abs\",\"adler32\",\"adler32_combine\",\"alive\",\"apply\",\"atom_to_binary\",\n    \"atom_to_list\",\"binary_to_atom\",\"binary_to_existing_atom\",\n    \"binary_to_list\",\"binary_to_term\",\"bit_size\",\"bitstring_to_list\",\n    \"byte_size\",\"check_process_code\",\"contact_binary\",\"crc32\",\n    \"crc32_combine\",\"date\",\"decode_packet\",\"delete_module\",\n    \"disconnect_node\",\"element\",\"erase\",\"exit\",\"float\",\"float_to_list\",\n    \"garbage_collect\",\"get\",\"get_keys\",\"group_leader\",\"halt\",\"hd\",\n    \"integer_to_list\",\"internal_bif\",\"iolist_size\",\"iolist_to_binary\",\n    \"is_alive\",\"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\n    \"is_float\",\"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_process_alive\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"length\",\"link\",\"list_to_atom\",\"list_to_binary\",\"list_to_bitstring\",\n    \"list_to_existing_atom\",\"list_to_float\",\"list_to_integer\",\n    \"list_to_pid\",\"list_to_tuple\",\"load_module\",\"make_ref\",\"module_loaded\",\n    \"monitor_node\",\"node\",\"node_link\",\"node_unlink\",\"nodes\",\"notalive\",\n    \"now\",\"open_port\",\"pid_to_list\",\"port_close\",\"port_command\",\n    \"port_connect\",\"port_control\",\"pre_loaded\",\"process_flag\",\n    \"process_info\",\"processes\",\"purge_module\",\"put\",\"register\",\n    \"registered\",\"round\",\"self\",\"setelement\",\"size\",\"spawn\",\"spawn_link\",\n    \"spawn_monitor\",\"spawn_opt\",\"split_binary\",\"statistics\",\n    \"term_to_binary\",\"time\",\"throw\",\"tl\",\"trunc\",\"tuple_size\",\n    \"tuple_to_list\",\"unlink\",\"unregister\",\"whereis\"];\n\n// upper case: [A-Z] [Ø-Þ] [À-Ö]\n// lower case: [a-z] [ß-ö] [ø-ÿ]\n  var anumRE       = /[\\w@Ø-ÞÀ-Öß-öø-ÿ]/;\n  var escapesRE    =\n    /[0-7]{1,3}|[bdefnrstv\\\\\"']|\\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;\n\n/////////////////////////////////////////////////////////////////////////////\n// tokenizer\n\n  function tokenizer(stream,state) {\n    // in multi-line string\n    if (state.in_string) {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // in multi-line atom\n    if (state.in_atom) {\n      state.in_atom = (!singleQuote(stream));\n      return rval(state,stream,\"atom\");\n    }\n\n    // whitespace\n    if (stream.eatSpace()) {\n      return rval(state,stream,\"whitespace\");\n    }\n\n    // attributes and type specs\n    if (!peekToken(state) &&\n        stream.match(/-\\s*[a-zß-öø-ÿ][\\wØ-ÞÀ-Öß-öø-ÿ]*/)) {\n      if (is_member(stream.current(),typeWords)) {\n        return rval(state,stream,\"type\");\n      }else{\n        return rval(state,stream,\"attribute\");\n      }\n    }\n\n    var ch = stream.next();\n\n    // comment\n    if (ch == '%') {\n      stream.skipToEnd();\n      return rval(state,stream,\"comment\");\n    }\n\n    // colon\n    if (ch == \":\") {\n      return rval(state,stream,\"colon\");\n    }\n\n    // macro\n    if (ch == '?') {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"macro\");\n    }\n\n    // record\n    if (ch == \"#\") {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"record\");\n    }\n\n    // dollar escape\n    if (ch == \"$\") {\n      if (stream.next() == \"\\\\\" && !stream.match(escapesRE)) {\n        return rval(state,stream,\"error\");\n      }\n      return rval(state,stream,\"number\");\n    }\n\n    // dot\n    if (ch == \".\") {\n      return rval(state,stream,\"dot\");\n    }\n\n    // quoted atom\n    if (ch == '\\'') {\n      if (!(state.in_atom = (!singleQuote(stream)))) {\n        if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n          stream.match(/\\s*\\/\\s*[0-9]/,true);\n          return rval(state,stream,\"fun\");      // 'f'/0 style fun\n        }\n        if (stream.match(/\\s*\\(/,false) || stream.match(/\\s*:/,false)) {\n          return rval(state,stream,\"function\");\n        }\n      }\n      return rval(state,stream,\"atom\");\n    }\n\n    // string\n    if (ch == '\"') {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // variable\n    if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"variable\");\n    }\n\n    // atom/keyword/BIF/function\n    if (/[a-z_ß-öø-ÿ]/.test(ch)) {\n      stream.eatWhile(anumRE);\n\n      if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n        stream.match(/\\s*\\/\\s*[0-9]/,true);\n        return rval(state,stream,\"fun\");      // f/0 style fun\n      }\n\n      var w = stream.current();\n\n      if (is_member(w,keywordWords)) {\n        return rval(state,stream,\"keyword\");\n      }else if (is_member(w,operatorAtomWords)) {\n        return rval(state,stream,\"operator\");\n      }else if (stream.match(/\\s*\\(/,false)) {\n        // 'put' and 'erlang:put' are bifs, 'foo:put' is not\n        if (is_member(w,bifWords) &&\n            ((peekToken(state).token != \":\") ||\n             (peekToken(state,2).token == \"erlang\"))) {\n          return rval(state,stream,\"builtin\");\n        }else if (is_member(w,guardWords)) {\n          return rval(state,stream,\"guard\");\n        }else{\n          return rval(state,stream,\"function\");\n        }\n      }else if (lookahead(stream) == \":\") {\n        if (w == \"erlang\") {\n          return rval(state,stream,\"builtin\");\n        } else {\n          return rval(state,stream,\"function\");\n        }\n      }else if (is_member(w,[\"true\",\"false\"])) {\n        return rval(state,stream,\"boolean\");\n      }else{\n        return rval(state,stream,\"atom\");\n      }\n    }\n\n    // number\n    var digitRE      = /[0-9]/;\n    var radixRE      = /[0-9a-zA-Z]/;         // 36#zZ style int\n    if (digitRE.test(ch)) {\n      stream.eatWhile(digitRE);\n      if (stream.eat('#')) {                // 36#aZ  style integer\n        if (!stream.eatWhile(radixRE)) {\n          stream.backUp(1);                 //\"36#\" - syntax error\n        }\n      } else if (stream.eat('.')) {       // float\n        if (!stream.eatWhile(digitRE)) {\n          stream.backUp(1);        // \"3.\" - probably end of function\n        } else {\n          if (stream.eat(/[eE]/)) {        // float with exponent\n            if (stream.eat(/[-+]/)) {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(2);            // \"2e-\" - syntax error\n              }\n            } else {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(1);            // \"2e\" - syntax error\n              }\n            }\n          }\n        }\n      }\n      return rval(state,stream,\"number\");   // normal integer\n    }\n\n    // open parens\n    if (nongreedy(stream,openParenRE,openParenWords)) {\n      return rval(state,stream,\"open_paren\");\n    }\n\n    // close parens\n    if (nongreedy(stream,closeParenRE,closeParenWords)) {\n      return rval(state,stream,\"close_paren\");\n    }\n\n    // separators\n    if (greedy(stream,separatorRE,separatorWords)) {\n      return rval(state,stream,\"separator\");\n    }\n\n    // operators\n    if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {\n      return rval(state,stream,\"operator\");\n    }\n\n    return rval(state,stream,null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// utilities\n  function nongreedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      stream.backUp(1);\n      while (re.test(stream.peek())) {\n        stream.next();\n        if (is_member(stream.current(),words)) {\n          return true;\n        }\n      }\n      stream.backUp(stream.current().length-1);\n    }\n    return false;\n  }\n\n  function greedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      while (re.test(stream.peek())) {\n        stream.next();\n      }\n      while (0 < stream.current().length) {\n        if (is_member(stream.current(),words)) {\n          return true;\n        }else{\n          stream.backUp(1);\n        }\n      }\n      stream.next();\n    }\n    return false;\n  }\n\n  function doubleQuote(stream) {\n    return quote(stream, '\"', '\\\\');\n  }\n\n  function singleQuote(stream) {\n    return quote(stream,'\\'','\\\\');\n  }\n\n  function quote(stream,quoteChar,escapeChar) {\n    while (!stream.eol()) {\n      var ch = stream.next();\n      if (ch == quoteChar) {\n        return true;\n      }else if (ch == escapeChar) {\n        stream.next();\n      }\n    }\n    return false;\n  }\n\n  function lookahead(stream) {\n    var m = stream.match(/^\\s*([^\\s%])/, false)\n    return m ? m[1] : \"\";\n  }\n\n  function is_member(element,list) {\n    return (-1 < list.indexOf(element));\n  }\n\n  function rval(state,stream,type) {\n\n    // parse stack\n    pushToken(state,realToken(type,stream));\n\n    // map erlang token type to CodeMirror style class\n    //     erlang             -> CodeMirror tag\n    switch (type) {\n      case \"atom\":        return \"atom\";\n      case \"attribute\":   return \"attribute\";\n      case \"boolean\":     return \"atom\";\n      case \"builtin\":     return \"builtin\";\n      case \"close_paren\": return null;\n      case \"colon\":       return null;\n      case \"comment\":     return \"comment\";\n      case \"dot\":         return null;\n      case \"error\":       return \"error\";\n      case \"fun\":         return \"meta\";\n      case \"function\":    return \"tag\";\n      case \"guard\":       return \"property\";\n      case \"keyword\":     return \"keyword\";\n      case \"macro\":       return \"variable-2\";\n      case \"number\":      return \"number\";\n      case \"open_paren\":  return null;\n      case \"operator\":    return \"operator\";\n      case \"record\":      return \"bracket\";\n      case \"separator\":   return null;\n      case \"string\":      return \"string\";\n      case \"type\":        return \"def\";\n      case \"variable\":    return \"variable\";\n      default:            return null;\n    }\n  }\n\n  function aToken(tok,col,ind,typ) {\n    return {token:  tok,\n            column: col,\n            indent: ind,\n            type:   typ};\n  }\n\n  function realToken(type,stream) {\n    return aToken(stream.current(),\n                 stream.column(),\n                 stream.indentation(),\n                 type);\n  }\n\n  function fakeToken(type) {\n    return aToken(type,0,0,type);\n  }\n\n  function peekToken(state,depth) {\n    var len = state.tokenStack.length;\n    var dep = (depth ? depth : 1);\n\n    if (len < dep) {\n      return false;\n    }else{\n      return state.tokenStack[len-dep];\n    }\n  }\n\n  function pushToken(state,token) {\n\n    if (!(token.type == \"comment\" || token.type == \"whitespace\")) {\n      state.tokenStack = maybe_drop_pre(state.tokenStack,token);\n      state.tokenStack = maybe_drop_post(state.tokenStack);\n    }\n  }\n\n  function maybe_drop_pre(s,token) {\n    var last = s.length-1;\n\n    if (0 < last && s[last].type === \"record\" && token.type === \"dot\") {\n      s.pop();\n    }else if (0 < last && s[last].type === \"group\") {\n      s.pop();\n      s.push(token);\n    }else{\n      s.push(token);\n    }\n    return s;\n  }\n\n  function maybe_drop_post(s) {\n    if (!s.length) return s\n    var last = s.length-1;\n\n    if (s[last].type === \"dot\") {\n      return [];\n    }\n    if (last > 1 && s[last].type === \"fun\" && s[last-1].token === \"fun\") {\n      return s.slice(0,last-1);\n    }\n    switch (s[last].token) {\n      case \"}\":    return d(s,{g:[\"{\"]});\n      case \"]\":    return d(s,{i:[\"[\"]});\n      case \")\":    return d(s,{i:[\"(\"]});\n      case \">>\":   return d(s,{i:[\"<<\"]});\n      case \"end\":  return d(s,{i:[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]});\n      case \",\":    return d(s,{e:[\"begin\",\"try\",\"when\",\"->\",\n                                  \",\",\"(\",\"[\",\"{\",\"<<\"]});\n      case \"->\":   return d(s,{r:[\"when\"],\n                               m:[\"try\",\"if\",\"case\",\"receive\"]});\n      case \";\":    return d(s,{E:[\"case\",\"fun\",\"if\",\"receive\",\"try\",\"when\"]});\n      case \"catch\":return d(s,{e:[\"try\"]});\n      case \"of\":   return d(s,{e:[\"case\"]});\n      case \"after\":return d(s,{e:[\"receive\",\"try\"]});\n      default:     return s;\n    }\n  }\n\n  function d(stack,tt) {\n    // stack is a stack of Token objects.\n    // tt is an object; {type:tokens}\n    // type is a char, tokens is a list of token strings.\n    // The function returns (possibly truncated) stack.\n    // It will descend the stack, looking for a Token such that Token.token\n    //  is a member of tokens. If it does not find that, it will normally (but\n    //  see \"E\" below) return stack. If it does find a match, it will remove\n    //  all the Tokens between the top and the matched Token.\n    // If type is \"m\", that is all it does.\n    // If type is \"i\", it will also remove the matched Token and the top Token.\n    // If type is \"g\", like \"i\", but add a fake \"group\" token at the top.\n    // If type is \"r\", it will remove the matched Token, but not the top Token.\n    // If type is \"e\", it will keep the matched Token but not the top Token.\n    // If type is \"E\", it behaves as for type \"e\", except if there is no match,\n    //  in which case it will return an empty stack.\n\n    for (var type in tt) {\n      var len = stack.length-1;\n      var tokens = tt[type];\n      for (var i = len-1; -1 < i ; i--) {\n        if (is_member(stack[i].token,tokens)) {\n          var ss = stack.slice(0,i);\n          switch (type) {\n              case \"m\": return ss.concat(stack[i]).concat(stack[len]);\n              case \"r\": return ss.concat(stack[len]);\n              case \"i\": return ss;\n              case \"g\": return ss.concat(fakeToken(\"group\"));\n              case \"E\": return ss.concat(stack[i]);\n              case \"e\": return ss.concat(stack[i]);\n          }\n        }\n      }\n    }\n    return (type == \"E\" ? [] : stack);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// indenter\n\n  function indenter(state,textAfter) {\n    var t;\n    var unit = cmCfg.indentUnit;\n    var wordAfter = wordafter(textAfter);\n    var currT = peekToken(state,1);\n    var prevT = peekToken(state,2);\n\n    if (state.in_string || state.in_atom) {\n      return CodeMirror.Pass;\n    }else if (!prevT) {\n      return 0;\n    }else if (currT.token == \"when\") {\n      return currT.column+unit;\n    }else if (wordAfter === \"when\" && prevT.type === \"function\") {\n      return prevT.indent+unit;\n    }else if (wordAfter === \"(\" && currT.token === \"fun\") {\n      return  currT.column+3;\n    }else if (wordAfter === \"catch\" && (t = getToken(state,[\"try\"]))) {\n      return t.column;\n    }else if (is_member(wordAfter,[\"end\",\"after\",\"of\"])) {\n      t = getToken(state,[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(wordAfter,closeParenWords)) {\n      t = getToken(state,openParenWords);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(currT.token,[\",\",\"|\",\"||\"]) ||\n              is_member(wordAfter,[\",\",\"|\",\"||\"])) {\n      t = postcommaToken(state);\n      return t ? t.column+t.token.length : unit;\n    }else if (currT.token == \"->\") {\n      if (is_member(prevT.token, [\"receive\",\"case\",\"if\",\"try\"])) {\n        return prevT.column+unit+unit;\n      }else{\n        return prevT.column+unit;\n      }\n    }else if (is_member(currT.token,openParenWords)) {\n      return currT.column+currT.token.length;\n    }else{\n      t = defaultToken(state);\n      return truthy(t) ? t.column+unit : 0;\n    }\n  }\n\n  function wordafter(str) {\n    var m = str.match(/,|[a-z]+|\\}|\\]|\\)|>>|\\|+|\\(/);\n\n    return truthy(m) && (m.index === 0) ? m[0] : \"\";\n  }\n\n  function postcommaToken(state) {\n    var objs = state.tokenStack.slice(0,-1);\n    var i = getTokenIndex(objs,\"type\",[\"open_paren\"]);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function defaultToken(state) {\n    var objs = state.tokenStack;\n    var stop = getTokenIndex(objs,\"type\",[\"open_paren\",\"separator\",\"keyword\"]);\n    var oper = getTokenIndex(objs,\"type\",[\"operator\"]);\n\n    if (truthy(stop) && truthy(oper) && stop < oper) {\n      return objs[stop+1];\n    } else if (truthy(stop)) {\n      return objs[stop];\n    } else {\n      return false;\n    }\n  }\n\n  function getToken(state,tokens) {\n    var objs = state.tokenStack;\n    var i = getTokenIndex(objs,\"token\",tokens);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function getTokenIndex(objs,propname,propvals) {\n\n    for (var i = objs.length-1; -1 < i ; i--) {\n      if (is_member(objs[i][propname],propvals)) {\n        return i;\n      }\n    }\n    return false;\n  }\n\n  function truthy(x) {\n    return (x !== false) && (x != null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// this object defines the mode\n\n  return {\n    startState:\n      function() {\n        return {tokenStack: [],\n                in_string:  false,\n                in_atom:    false};\n      },\n\n    token:\n      function(stream, state) {\n        return tokenizer(stream, state);\n      },\n\n    indent:\n      function(state, textAfter) {\n        return indenter(state,textAfter);\n      },\n\n    lineComment: \"%\"\n  };\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/factor/factor.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Factor syntax highlight - simple mode\n//\n// by Dimage Sapelkin (https://github.com/kerabromsmu)\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineSimpleMode(\"factor\", {\n    // The start state contains the rules that are initially used\n    start: [\n      // comments\n      {regex: /#?!.*/, token: \"comment\"},\n      // strings \"\"\", multiline --> state\n      {regex: /\"\"\"/, token: \"string\", next: \"string3\"},\n      {regex: /(STRING:)(\\s)/, token: [\"keyword\", null], next: \"string2\"},\n      {regex: /\\S*?\"/, token: \"string\", next: \"string\"},\n      // numbers: dec, hex, unicode, bin, fractional, complex\n      {regex: /(?:0x[\\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\\-?\\d+.?\\d*)(?=\\s)/, token: \"number\"},\n      //{regex: /[+-]?/} //fractional\n      // definition: defining word, defined word, etc\n      {regex: /((?:GENERIC)|\\:?\\:)(\\s+)(\\S+)(\\s+)(\\()/, token: [\"keyword\", null, \"def\", null, \"bracket\"], next: \"stack\"},\n      // method definition: defining word, type, defined word, etc\n      {regex: /(M\\:)(\\s+)(\\S+)(\\s+)(\\S+)/, token: [\"keyword\", null, \"def\", null, \"tag\"]},\n      // vocabulary using --> state\n      {regex: /USING\\:/, token: \"keyword\", next: \"vocabulary\"},\n      // vocabulary definition/use\n      {regex: /(USE\\:|IN\\:)(\\s+)(\\S+)(?=\\s|$)/, token: [\"keyword\", null, \"tag\"]},\n      // definition: a defining word, defined word\n      {regex: /(\\S+\\:)(\\s+)(\\S+)(?=\\s|$)/, token: [\"keyword\", null, \"def\"]},\n      // \"keywords\", incl. ; t f . [ ] { } defining words\n      {regex: /(?:;|\\\\|t|f|if|loop|while|until|do|PRIVATE>|<PRIVATE|\\.|\\S*\\[|\\]|\\S*\\{|\\})(?=\\s|$)/, token: \"keyword\"},\n      // <constructors> and the like\n      {regex: /\\S+[\\)>\\.\\*\\?]+(?=\\s|$)/, token: \"builtin\"},\n      {regex: /[\\)><]+\\S+(?=\\s|$)/, token: \"builtin\"},\n      // operators\n      {regex: /(?:[\\+\\-\\=\\/\\*<>])(?=\\s|$)/, token: \"keyword\"},\n      // any id (?)\n      {regex: /\\S+/, token: \"variable\"},\n      {regex: /\\s+|./, token: null}\n    ],\n    vocabulary: [\n      {regex: /;/, token: \"keyword\", next: \"start\"},\n      {regex: /\\S+/, token: \"tag\"},\n      {regex: /\\s+|./, token: null}\n    ],\n    string: [\n      {regex: /(?:[^\\\\]|\\\\.)*?\"/, token: \"string\", next: \"start\"},\n      {regex: /.*/, token: \"string\"}\n    ],\n    string2: [\n      {regex: /^;/, token: \"keyword\", next: \"start\"},\n      {regex: /.*/, token: \"string\"}\n    ],\n    string3: [\n      {regex: /(?:[^\\\\]|\\\\.)*?\"\"\"/, token: \"string\", next: \"start\"},\n      {regex: /.*/, token: \"string\"}\n    ],\n    stack: [\n      {regex: /\\)/, token: \"bracket\", next: \"start\"},\n      {regex: /--/, token: \"bracket\"},\n      {regex: /\\S+/, token: \"meta\"},\n      {regex: /\\s+|./, token: null}\n    ],\n    // The meta property contains global information about the mode. It\n    // can contain properties like lineComment, which are supported by\n    // all modes, and also directives like dontIndentStates, which are\n    // specific to simple modes.\n    meta: {\n      dontIndentStates: [\"start\", \"vocabulary\", \"string\", \"string3\", \"stack\"],\n      lineComment: [ \"!\", \"#!\" ]\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-factor\", \"factor\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/fcl/fcl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"fcl\", function(config) {\n  var indentUnit = config.indentUnit;\n\n  var keywords = {\n      \"term\": true,\n      \"method\": true, \"accu\": true,\n      \"rule\": true, \"then\": true, \"is\": true, \"and\": true, \"or\": true,\n      \"if\": true, \"default\": true\n  };\n\n  var start_blocks = {\n      \"var_input\": true,\n      \"var_output\": true,\n      \"fuzzify\": true,\n      \"defuzzify\": true,\n      \"function_block\": true,\n      \"ruleblock\": true\n  };\n\n  var end_blocks = {\n      \"end_ruleblock\": true,\n      \"end_defuzzify\": true,\n      \"end_function_block\": true,\n      \"end_fuzzify\": true,\n      \"end_var\": true\n  };\n\n  var atoms = {\n      \"true\": true, \"false\": true, \"nan\": true,\n      \"real\": true, \"min\": true, \"max\": true, \"cog\": true, \"cogs\": true\n  };\n\n  var isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (/[\\d\\.]/.test(ch)) {\n      if (ch == \".\") {\n        stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n      } else if (ch == \"0\") {\n        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n      } else {\n        stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n      }\n      return \"number\";\n    }\n\n    if (ch == \"/\" || ch == \"(\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n\n    var cur = stream.current().toLowerCase();\n    if (keywords.propertyIsEnumerable(cur) ||\n        start_blocks.propertyIsEnumerable(cur) ||\n        end_blocks.propertyIsEnumerable(cur)) {\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if ((ch == \"/\" || ch == \")\") && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n\n  function popContext(state) {\n    if (!state.context.prev) return;\n    var t = state.context.type;\n    if (t == \"end_block\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n        var ctx = state.context;\n        if (stream.sol()) {\n            if (ctx.align == null) ctx.align = false;\n            state.indented = stream.indentation();\n            state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n\n        var style = (state.tokenize || tokenBase)(stream, state);\n        if (style == \"comment\") return style;\n        if (ctx.align == null) ctx.align = true;\n\n        var cur = stream.current().toLowerCase();\n\n        if (start_blocks.propertyIsEnumerable(cur)) pushContext(state, stream.column(), \"end_block\");\n        else if (end_blocks.propertyIsEnumerable(cur))  popContext(state);\n\n        state.startOfLine = false;\n        return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context;\n\n      var closing = end_blocks.propertyIsEnumerable(textAfter);\n      if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"ryk\",\n    fold: \"brace\",\n    blockCommentStart: \"(*\",\n    blockCommentEnd: \"*)\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-fcl\", \"fcl\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/forth/forth.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Author: Aliaksei Chapyzhenka\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function toWordList(words) {\n    var ret = [];\n    words.split(' ').forEach(function(e){\n      ret.push({name: e});\n    });\n    return ret;\n  }\n\n  var coreWordList = toWordList(\n'INVERT AND OR XOR\\\n 2* 2/ LSHIFT RSHIFT\\\n 0= = 0< < > U< MIN MAX\\\n 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\\\n >R R> R@\\\n + - 1+ 1- ABS NEGATE\\\n S>D * M* UM*\\\n FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\\\n HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\\\n ALIGN ALIGNED +! ALLOT\\\n CHAR [CHAR] [ ] BL\\\n FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\\\n ; DOES> >BODY\\\n EVALUATE\\\n SOURCE >IN\\\n <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\\\n FILL MOVE\\\n . CR EMIT SPACE SPACES TYPE U. .R U.R\\\n ACCEPT\\\n TRUE FALSE\\\n <> U> 0<> 0>\\\n NIP TUCK ROLL PICK\\\n 2>R 2R@ 2R>\\\n WITHIN UNUSED MARKER\\\n I J\\\n TO\\\n COMPILE, [COMPILE]\\\n SAVE-INPUT RESTORE-INPUT\\\n PAD ERASE\\\n 2LITERAL DNEGATE\\\n D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\\\n M+ M*/ D. D.R 2ROT DU<\\\n CATCH THROW\\\n FREE RESIZE ALLOCATE\\\n CS-PICK CS-ROLL\\\n GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\\\n PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\\\n -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');\n\n  var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');\n\n  CodeMirror.defineMode('forth', function() {\n    function searchWordList (wordList, word) {\n      var i;\n      for (i = wordList.length - 1; i >= 0; i--) {\n        if (wordList[i].name === word.toUpperCase()) {\n          return wordList[i];\n        }\n      }\n      return undefined;\n    }\n  return {\n    startState: function() {\n      return {\n        state: '',\n        base: 10,\n        coreWordList: coreWordList,\n        immediateWordList: immediateWordList,\n        wordList: []\n      };\n    },\n    token: function (stream, stt) {\n      var mat;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      if (stt.state === '') { // interpretation\n        if (stream.match(/^(\\]|:NONAME)(\\s|$)/i)) {\n          stt.state = ' compilation';\n          return 'builtin compilation';\n        }\n        mat = stream.match(/^(\\:)\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          stt.state = ' compilation';\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\\s+(\\S+)(\\s|$)+/i);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(\\'|\\[\\'\\])\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          return 'builtin' + stt.state;\n        }\n        } else { // compilation\n        // ; [\n        if (stream.match(/^(\\;|\\[)(\\s)/)) {\n          stt.state = '';\n          stream.backUp(1);\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(\\;|\\[)($)/)) {\n          stt.state = '';\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(POSTPONE)\\s+\\S+(\\s|$)+/)) {\n          return 'builtin';\n        }\n      }\n\n      // dynamic wordlist\n      mat = stream.match(/^(\\S+)(\\s+|$)/);\n      if (mat) {\n        if (searchWordList(stt.wordList, mat[1]) !== undefined) {\n          return 'variable' + stt.state;\n        }\n\n        // comments\n        if (mat[1] === '\\\\') {\n          stream.skipToEnd();\n            return 'comment' + stt.state;\n          }\n\n          // core words\n          if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {\n            return 'builtin' + stt.state;\n          }\n          if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {\n            return 'keyword' + stt.state;\n          }\n\n          if (mat[1] === '(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'comment' + stt.state;\n          }\n\n          // // strings\n          if (mat[1] === '.(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'string' + stt.state;\n          }\n          if (mat[1] === 'S\"' || mat[1] === '.\"' || mat[1] === 'C\"') {\n            stream.eatWhile(function (s) { return s !== '\"'; });\n            stream.eat('\"');\n            return 'string' + stt.state;\n          }\n\n          // numbers\n          if (mat[1] - 0xfffffffff) {\n            return 'number' + stt.state;\n          }\n          // if (mat[1].match(/^[-+]?[0-9]+\\.[0-9]*/)) {\n          //     return 'number' + stt.state;\n          // }\n\n          return 'atom' + stt.state;\n        }\n      }\n    };\n  });\n  CodeMirror.defineMIME(\"text/x-forth\", \"forth\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/fortran/fortran.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"fortran\", function() {\n  function words(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  }\n\n  var keywords = words([\n                  \"abstract\", \"accept\", \"allocatable\", \"allocate\",\n                  \"array\", \"assign\", \"asynchronous\", \"backspace\",\n                  \"bind\", \"block\", \"byte\", \"call\", \"case\",\n                  \"class\", \"close\", \"common\", \"contains\",\n                  \"continue\", \"cycle\", \"data\", \"deallocate\",\n                  \"decode\", \"deferred\", \"dimension\", \"do\",\n                  \"elemental\", \"else\", \"encode\", \"end\",\n                  \"endif\", \"entry\", \"enumerator\", \"equivalence\",\n                  \"exit\", \"external\", \"extrinsic\", \"final\",\n                  \"forall\", \"format\", \"function\", \"generic\",\n                  \"go\", \"goto\", \"if\", \"implicit\", \"import\", \"include\",\n                  \"inquire\", \"intent\", \"interface\", \"intrinsic\",\n                  \"module\", \"namelist\", \"non_intrinsic\",\n                  \"non_overridable\", \"none\", \"nopass\",\n                  \"nullify\", \"open\", \"optional\", \"options\",\n                  \"parameter\", \"pass\", \"pause\", \"pointer\",\n                  \"print\", \"private\", \"program\", \"protected\",\n                  \"public\", \"pure\", \"read\", \"recursive\", \"result\",\n                  \"return\", \"rewind\", \"save\", \"select\", \"sequence\",\n                  \"stop\", \"subroutine\", \"target\", \"then\", \"to\", \"type\",\n                  \"use\", \"value\", \"volatile\", \"where\", \"while\",\n                  \"write\"]);\n  var builtins = words([\"abort\", \"abs\", \"access\", \"achar\", \"acos\",\n                          \"adjustl\", \"adjustr\", \"aimag\", \"aint\", \"alarm\",\n                          \"all\", \"allocated\", \"alog\", \"amax\", \"amin\",\n                          \"amod\", \"and\", \"anint\", \"any\", \"asin\",\n                          \"associated\", \"atan\", \"besj\", \"besjn\", \"besy\",\n                          \"besyn\", \"bit_size\", \"btest\", \"cabs\", \"ccos\",\n                          \"ceiling\", \"cexp\", \"char\", \"chdir\", \"chmod\",\n                          \"clog\", \"cmplx\", \"command_argument_count\",\n                          \"complex\", \"conjg\", \"cos\", \"cosh\", \"count\",\n                          \"cpu_time\", \"cshift\", \"csin\", \"csqrt\", \"ctime\",\n                          \"c_funloc\", \"c_loc\", \"c_associated\", \"c_null_ptr\",\n                          \"c_null_funptr\", \"c_f_pointer\", \"c_null_char\",\n                          \"c_alert\", \"c_backspace\", \"c_form_feed\",\n                          \"c_new_line\", \"c_carriage_return\",\n                          \"c_horizontal_tab\", \"c_vertical_tab\", \"dabs\",\n                          \"dacos\", \"dasin\", \"datan\", \"date_and_time\",\n                          \"dbesj\", \"dbesj\", \"dbesjn\", \"dbesy\", \"dbesy\",\n                          \"dbesyn\", \"dble\", \"dcos\", \"dcosh\", \"ddim\", \"derf\",\n                          \"derfc\", \"dexp\", \"digits\", \"dim\", \"dint\", \"dlog\",\n                          \"dlog\", \"dmax\", \"dmin\", \"dmod\", \"dnint\",\n                          \"dot_product\", \"dprod\", \"dsign\", \"dsinh\",\n                          \"dsin\", \"dsqrt\", \"dtanh\", \"dtan\", \"dtime\",\n                          \"eoshift\", \"epsilon\", \"erf\", \"erfc\", \"etime\",\n                          \"exit\", \"exp\", \"exponent\", \"extends_type_of\",\n                          \"fdate\", \"fget\", \"fgetc\", \"float\", \"floor\",\n                          \"flush\", \"fnum\", \"fputc\", \"fput\", \"fraction\",\n                          \"fseek\", \"fstat\", \"ftell\", \"gerror\", \"getarg\",\n                          \"get_command\", \"get_command_argument\",\n                          \"get_environment_variable\", \"getcwd\",\n                          \"getenv\", \"getgid\", \"getlog\", \"getpid\",\n                          \"getuid\", \"gmtime\", \"hostnm\", \"huge\", \"iabs\",\n                          \"iachar\", \"iand\", \"iargc\", \"ibclr\", \"ibits\",\n                          \"ibset\", \"ichar\", \"idate\", \"idim\", \"idint\",\n                          \"idnint\", \"ieor\", \"ierrno\", \"ifix\", \"imag\",\n                          \"imagpart\", \"index\", \"int\", \"ior\", \"irand\",\n                          \"isatty\", \"ishft\", \"ishftc\", \"isign\",\n                          \"iso_c_binding\", \"is_iostat_end\", \"is_iostat_eor\",\n                          \"itime\", \"kill\", \"kind\", \"lbound\", \"len\", \"len_trim\",\n                          \"lge\", \"lgt\", \"link\", \"lle\", \"llt\", \"lnblnk\", \"loc\",\n                          \"log\", \"logical\", \"long\", \"lshift\", \"lstat\", \"ltime\",\n                          \"matmul\", \"max\", \"maxexponent\", \"maxloc\", \"maxval\",\n                          \"mclock\", \"merge\", \"move_alloc\", \"min\", \"minexponent\",\n                          \"minloc\", \"minval\", \"mod\", \"modulo\", \"mvbits\",\n                          \"nearest\", \"new_line\", \"nint\", \"not\", \"or\", \"pack\",\n                          \"perror\", \"precision\", \"present\", \"product\", \"radix\",\n                          \"rand\", \"random_number\", \"random_seed\", \"range\",\n                          \"real\", \"realpart\", \"rename\", \"repeat\", \"reshape\",\n                          \"rrspacing\", \"rshift\", \"same_type_as\", \"scale\",\n                          \"scan\", \"second\", \"selected_int_kind\",\n                          \"selected_real_kind\", \"set_exponent\", \"shape\",\n                          \"short\", \"sign\", \"signal\", \"sinh\", \"sin\", \"sleep\",\n                          \"sngl\", \"spacing\", \"spread\", \"sqrt\", \"srand\", \"stat\",\n                          \"sum\", \"symlnk\", \"system\", \"system_clock\", \"tan\",\n                          \"tanh\", \"time\", \"tiny\", \"transfer\", \"transpose\",\n                          \"trim\", \"ttynam\", \"ubound\", \"umask\", \"unlink\",\n                          \"unpack\", \"verify\", \"xor\", \"zabs\", \"zcos\", \"zexp\",\n                          \"zlog\", \"zsin\", \"zsqrt\"]);\n\n    var dataTypes =  words([\"c_bool\", \"c_char\", \"c_double\", \"c_double_complex\",\n                     \"c_float\", \"c_float_complex\", \"c_funptr\", \"c_int\",\n                     \"c_int16_t\", \"c_int32_t\", \"c_int64_t\", \"c_int8_t\",\n                     \"c_int_fast16_t\", \"c_int_fast32_t\", \"c_int_fast64_t\",\n                     \"c_int_fast8_t\", \"c_int_least16_t\", \"c_int_least32_t\",\n                     \"c_int_least64_t\", \"c_int_least8_t\", \"c_intmax_t\",\n                     \"c_intptr_t\", \"c_long\", \"c_long_double\",\n                     \"c_long_double_complex\", \"c_long_long\", \"c_ptr\",\n                     \"c_short\", \"c_signed_char\", \"c_size_t\", \"character\",\n                     \"complex\", \"double\", \"integer\", \"logical\", \"real\"]);\n  var isOperatorChar = /[+\\-*&=<>\\/\\:]/;\n  var litOperator = new RegExp(\"(\\.and\\.|\\.or\\.|\\.eq\\.|\\.lt\\.|\\.le\\.|\\.gt\\.|\\.ge\\.|\\.ne\\.|\\.not\\.|\\.eqv\\.|\\.neqv\\.)\", \"i\");\n\n  function tokenBase(stream, state) {\n\n    if (stream.match(litOperator)){\n        return 'operator';\n    }\n\n    var ch = stream.next();\n    if (ch == \"!\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]\\(\\),]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var word = stream.current().toLowerCase();\n\n    if (keywords.hasOwnProperty(word)){\n            return 'keyword';\n    }\n    if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) {\n            return 'builtin';\n    }\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n            end = true;\n            break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-fortran\", \"fortran\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/gas/gas.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gas\", function(_config, parserConfig) {\n  'use strict';\n\n  // If an architecture is specified, its initialization function may\n  // populate this array with custom parsing functions which will be\n  // tried in the event that the standard functions do not find a match.\n  var custom = [];\n\n  // The symbol used to start a line comment changes based on the target\n  // architecture.\n  // If no architecture is pased in \"parserConfig\" then only multiline\n  // comments will have syntax support.\n  var lineCommentStartSymbol = \"\";\n\n  // These directives are architecture independent.\n  // Machine specific directives should go in their respective\n  // architecture initialization function.\n  // Reference:\n  // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops\n  var directives = {\n    \".abort\" : \"builtin\",\n    \".align\" : \"builtin\",\n    \".altmacro\" : \"builtin\",\n    \".ascii\" : \"builtin\",\n    \".asciz\" : \"builtin\",\n    \".balign\" : \"builtin\",\n    \".balignw\" : \"builtin\",\n    \".balignl\" : \"builtin\",\n    \".bundle_align_mode\" : \"builtin\",\n    \".bundle_lock\" : \"builtin\",\n    \".bundle_unlock\" : \"builtin\",\n    \".byte\" : \"builtin\",\n    \".cfi_startproc\" : \"builtin\",\n    \".comm\" : \"builtin\",\n    \".data\" : \"builtin\",\n    \".def\" : \"builtin\",\n    \".desc\" : \"builtin\",\n    \".dim\" : \"builtin\",\n    \".double\" : \"builtin\",\n    \".eject\" : \"builtin\",\n    \".else\" : \"builtin\",\n    \".elseif\" : \"builtin\",\n    \".end\" : \"builtin\",\n    \".endef\" : \"builtin\",\n    \".endfunc\" : \"builtin\",\n    \".endif\" : \"builtin\",\n    \".equ\" : \"builtin\",\n    \".equiv\" : \"builtin\",\n    \".eqv\" : \"builtin\",\n    \".err\" : \"builtin\",\n    \".error\" : \"builtin\",\n    \".exitm\" : \"builtin\",\n    \".extern\" : \"builtin\",\n    \".fail\" : \"builtin\",\n    \".file\" : \"builtin\",\n    \".fill\" : \"builtin\",\n    \".float\" : \"builtin\",\n    \".func\" : \"builtin\",\n    \".global\" : \"builtin\",\n    \".gnu_attribute\" : \"builtin\",\n    \".hidden\" : \"builtin\",\n    \".hword\" : \"builtin\",\n    \".ident\" : \"builtin\",\n    \".if\" : \"builtin\",\n    \".incbin\" : \"builtin\",\n    \".include\" : \"builtin\",\n    \".int\" : \"builtin\",\n    \".internal\" : \"builtin\",\n    \".irp\" : \"builtin\",\n    \".irpc\" : \"builtin\",\n    \".lcomm\" : \"builtin\",\n    \".lflags\" : \"builtin\",\n    \".line\" : \"builtin\",\n    \".linkonce\" : \"builtin\",\n    \".list\" : \"builtin\",\n    \".ln\" : \"builtin\",\n    \".loc\" : \"builtin\",\n    \".loc_mark_labels\" : \"builtin\",\n    \".local\" : \"builtin\",\n    \".long\" : \"builtin\",\n    \".macro\" : \"builtin\",\n    \".mri\" : \"builtin\",\n    \".noaltmacro\" : \"builtin\",\n    \".nolist\" : \"builtin\",\n    \".octa\" : \"builtin\",\n    \".offset\" : \"builtin\",\n    \".org\" : \"builtin\",\n    \".p2align\" : \"builtin\",\n    \".popsection\" : \"builtin\",\n    \".previous\" : \"builtin\",\n    \".print\" : \"builtin\",\n    \".protected\" : \"builtin\",\n    \".psize\" : \"builtin\",\n    \".purgem\" : \"builtin\",\n    \".pushsection\" : \"builtin\",\n    \".quad\" : \"builtin\",\n    \".reloc\" : \"builtin\",\n    \".rept\" : \"builtin\",\n    \".sbttl\" : \"builtin\",\n    \".scl\" : \"builtin\",\n    \".section\" : \"builtin\",\n    \".set\" : \"builtin\",\n    \".short\" : \"builtin\",\n    \".single\" : \"builtin\",\n    \".size\" : \"builtin\",\n    \".skip\" : \"builtin\",\n    \".sleb128\" : \"builtin\",\n    \".space\" : \"builtin\",\n    \".stab\" : \"builtin\",\n    \".string\" : \"builtin\",\n    \".struct\" : \"builtin\",\n    \".subsection\" : \"builtin\",\n    \".symver\" : \"builtin\",\n    \".tag\" : \"builtin\",\n    \".text\" : \"builtin\",\n    \".title\" : \"builtin\",\n    \".type\" : \"builtin\",\n    \".uleb128\" : \"builtin\",\n    \".val\" : \"builtin\",\n    \".version\" : \"builtin\",\n    \".vtable_entry\" : \"builtin\",\n    \".vtable_inherit\" : \"builtin\",\n    \".warning\" : \"builtin\",\n    \".weak\" : \"builtin\",\n    \".weakref\" : \"builtin\",\n    \".word\" : \"builtin\"\n  };\n\n  var registers = {};\n\n  function x86(_parserConfig) {\n    lineCommentStartSymbol = \"#\";\n\n    registers.ax  = \"variable\";\n    registers.eax = \"variable-2\";\n    registers.rax = \"variable-3\";\n\n    registers.bx  = \"variable\";\n    registers.ebx = \"variable-2\";\n    registers.rbx = \"variable-3\";\n\n    registers.cx  = \"variable\";\n    registers.ecx = \"variable-2\";\n    registers.rcx = \"variable-3\";\n\n    registers.dx  = \"variable\";\n    registers.edx = \"variable-2\";\n    registers.rdx = \"variable-3\";\n\n    registers.si  = \"variable\";\n    registers.esi = \"variable-2\";\n    registers.rsi = \"variable-3\";\n\n    registers.di  = \"variable\";\n    registers.edi = \"variable-2\";\n    registers.rdi = \"variable-3\";\n\n    registers.sp  = \"variable\";\n    registers.esp = \"variable-2\";\n    registers.rsp = \"variable-3\";\n\n    registers.bp  = \"variable\";\n    registers.ebp = \"variable-2\";\n    registers.rbp = \"variable-3\";\n\n    registers.ip  = \"variable\";\n    registers.eip = \"variable-2\";\n    registers.rip = \"variable-3\";\n\n    registers.cs  = \"keyword\";\n    registers.ds  = \"keyword\";\n    registers.ss  = \"keyword\";\n    registers.es  = \"keyword\";\n    registers.fs  = \"keyword\";\n    registers.gs  = \"keyword\";\n  }\n\n  function armv6(_parserConfig) {\n    // Reference:\n    // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf\n    // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf\n    lineCommentStartSymbol = \"@\";\n    directives.syntax = \"builtin\";\n\n    registers.r0  = \"variable\";\n    registers.r1  = \"variable\";\n    registers.r2  = \"variable\";\n    registers.r3  = \"variable\";\n    registers.r4  = \"variable\";\n    registers.r5  = \"variable\";\n    registers.r6  = \"variable\";\n    registers.r7  = \"variable\";\n    registers.r8  = \"variable\";\n    registers.r9  = \"variable\";\n    registers.r10 = \"variable\";\n    registers.r11 = \"variable\";\n    registers.r12 = \"variable\";\n\n    registers.sp  = \"variable-2\";\n    registers.lr  = \"variable-2\";\n    registers.pc  = \"variable-2\";\n    registers.r13 = registers.sp;\n    registers.r14 = registers.lr;\n    registers.r15 = registers.pc;\n\n    custom.push(function(ch, stream) {\n      if (ch === '#') {\n        stream.eatWhile(/\\w/);\n        return \"number\";\n      }\n    });\n  }\n\n  var arch = (parserConfig.architecture || \"x86\").toLowerCase();\n  if (arch === \"x86\") {\n    x86(parserConfig);\n  } else if (arch === \"arm\" || arch === \"armv6\") {\n    armv6(parserConfig);\n  }\n\n  function nextUntilUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next === end && !escaped) {\n        return false;\n      }\n      escaped = !escaped && next === \"\\\\\";\n    }\n    return escaped;\n  }\n\n  function clikeComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (ch === \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch === \"*\");\n    }\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (state.tokenize) {\n        return state.tokenize(stream, state);\n      }\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var style, cur, ch = stream.next();\n\n      if (ch === \"/\") {\n        if (stream.eat(\"*\")) {\n          state.tokenize = clikeComment;\n          return clikeComment(stream, state);\n        }\n      }\n\n      if (ch === lineCommentStartSymbol) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (ch === '\"') {\n        nextUntilUnescaped(stream, '\"');\n        return \"string\";\n      }\n\n      if (ch === '.') {\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        style = directives[cur];\n        return style || null;\n      }\n\n      if (ch === '=') {\n        stream.eatWhile(/\\w/);\n        return \"tag\";\n      }\n\n      if (ch === '{') {\n        return \"bracket\";\n      }\n\n      if (ch === '}') {\n        return \"bracket\";\n      }\n\n      if (/\\d/.test(ch)) {\n        if (ch === \"0\" && stream.eat(\"x\")) {\n          stream.eatWhile(/[0-9a-fA-F]/);\n          return \"number\";\n        }\n        stream.eatWhile(/\\d/);\n        return \"number\";\n      }\n\n      if (/\\w/.test(ch)) {\n        stream.eatWhile(/\\w/);\n        if (stream.eat(\":\")) {\n          return 'tag';\n        }\n        cur = stream.current().toLowerCase();\n        style = registers[cur];\n        return style || null;\n      }\n\n      for (var i = 0; i < custom.length; i++) {\n        style = custom[i](ch, stream, state);\n        if (style) {\n          return style;\n        }\n      }\n    },\n\n    lineComment: lineCommentStartSymbol,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/gfm/gfm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\\.beep|\\.lwz|\\.xpc|\\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\\.beeps?|xmpp|xri|ymsgr|z39\\.50[rs]?):(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n  var codeDepth = 0;\n  function blankLine(state) {\n    state.code = false;\n    return null;\n  }\n  var gfmOverlay = {\n    startState: function() {\n      return {\n        code: false,\n        codeBlock: false,\n        ateSpace: false\n      };\n    },\n    copyState: function(s) {\n      return {\n        code: s.code,\n        codeBlock: s.codeBlock,\n        ateSpace: s.ateSpace\n      };\n    },\n    token: function(stream, state) {\n      state.combineTokens = null;\n\n      // Hack to prevent formatting override inside code blocks (block and inline)\n      if (state.codeBlock) {\n        if (stream.match(/^```+/)) {\n          state.codeBlock = false;\n          return null;\n        }\n        stream.skipToEnd();\n        return null;\n      }\n      if (stream.sol()) {\n        state.code = false;\n      }\n      if (stream.sol() && stream.match(/^```+/)) {\n        stream.skipToEnd();\n        state.codeBlock = true;\n        return null;\n      }\n      // If this block is changed, it may need to be updated in Markdown mode\n      if (stream.peek() === '`') {\n        stream.next();\n        var before = stream.pos;\n        stream.eatWhile('`');\n        var difference = 1 + stream.pos - before;\n        if (!state.code) {\n          codeDepth = difference;\n          state.code = true;\n        } else {\n          if (difference === codeDepth) { // Must be exact\n            state.code = false;\n          }\n        }\n        return null;\n      } else if (state.code) {\n        stream.next();\n        return null;\n      }\n      // Check if space. If so, links can be formatted later on\n      if (stream.eatSpace()) {\n        state.ateSpace = true;\n        return null;\n      }\n      if (stream.sol() || state.ateSpace) {\n        state.ateSpace = false;\n        if (modeConfig.gitHubSpice !== false) {\n          if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?=.{0,6}\\d)(?:[a-f0-9]{7,40}\\b)/)) {\n            // User/Project@SHA\n            // User@SHA\n            // SHA\n            state.combineTokens = true;\n            return \"link\";\n          } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n            // User/Project#Num\n            // User#Num\n            // #Num\n            state.combineTokens = true;\n            return \"link\";\n          }\n        }\n      }\n      if (stream.match(urlRE) &&\n          stream.string.slice(stream.start - 2, stream.start) != \"](\" &&\n          (stream.start == 0 || /\\W/.test(stream.string.charAt(stream.start - 1)))) {\n        // URLs\n        // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n        // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n        // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL\n        state.combineTokens = true;\n        return \"link\";\n      }\n      stream.next();\n      return null;\n    },\n    blankLine: blankLine\n  };\n\n  var markdownConfig = {\n    taskLists: true,\n    strikethrough: true,\n    emoji: true\n  };\n  for (var attr in modeConfig) {\n    markdownConfig[attr] = modeConfig[attr];\n  }\n  markdownConfig.name = \"markdown\";\n  return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);\n\n}, \"markdown\");\n\n  CodeMirror.defineMIME(\"text/x-gfm\", \"gfm\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/gherkin/gherkin.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\nGherkin mode - http://www.cukes.info/\nReport bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n*/\n\n// Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js\n//var Quotes = {\n//  SINGLE: 1,\n//  DOUBLE: 2\n//};\n\n//var regex = {\n//  keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/\n//};\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gherkin\", function () {\n  return {\n    startState: function () {\n      return {\n        lineNumber: 0,\n        tableHeaderLine: false,\n        allowFeature: true,\n        allowBackground: false,\n        allowScenario: false,\n        allowSteps: false,\n        allowPlaceholders: false,\n        allowMultilineArgument: false,\n        inMultilineString: false,\n        inMultilineTable: false,\n        inKeywordLine: false\n      };\n    },\n    token: function (stream, state) {\n      if (stream.sol()) {\n        state.lineNumber++;\n        state.inKeywordLine = false;\n        if (state.inMultilineTable) {\n            state.tableHeaderLine = false;\n            if (!stream.match(/\\s*\\|/, false)) {\n              state.allowMultilineArgument = false;\n              state.inMultilineTable = false;\n            }\n        }\n      }\n\n      stream.eatSpace();\n\n      if (state.allowMultilineArgument) {\n\n        // STRING\n        if (state.inMultilineString) {\n          if (stream.match('\"\"\"')) {\n            state.inMultilineString = false;\n            state.allowMultilineArgument = false;\n          } else {\n            stream.match(/.*/);\n          }\n          return \"string\";\n        }\n\n        // TABLE\n        if (state.inMultilineTable) {\n          if (stream.match(/\\|\\s*/)) {\n            return \"bracket\";\n          } else {\n            stream.match(/[^\\|]*/);\n            return state.tableHeaderLine ? \"header\" : \"string\";\n          }\n        }\n\n        // DETECT START\n        if (stream.match('\"\"\"')) {\n          // String\n          state.inMultilineString = true;\n          return \"string\";\n        } else if (stream.match(\"|\")) {\n          // Table\n          state.inMultilineTable = true;\n          state.tableHeaderLine = true;\n          return \"bracket\";\n        }\n\n      }\n\n      // LINE COMMENT\n      if (stream.match(/#.*/)) {\n        return \"comment\";\n\n      // TAG\n      } else if (!state.inKeywordLine && stream.match(/@\\S+/)) {\n        return \"tag\";\n\n      // FEATURE\n      } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) {\n        state.allowScenario = true;\n        state.allowBackground = true;\n        state.allowPlaceholders = false;\n        state.allowSteps = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // BACKGROUND\n      } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\\-ho\\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // SCENARIO OUTLINE\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) {\n        state.allowPlaceholders = true;\n        state.allowSteps = true;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // EXAMPLES\n      } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = true;\n        return \"keyword\";\n\n      // SCENARIO\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // STEPS\n      } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\\* )/)) {\n        state.inStep = true;\n        state.allowPlaceholders = true;\n        state.allowMultilineArgument = true;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // INLINE STRING\n      } else if (stream.match(/\"[^\"]*\"?/)) {\n        return \"string\";\n\n      // PLACEHOLDER\n      } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) {\n        return \"variable\";\n\n      // Fall through\n      } else {\n        stream.next();\n        stream.eatWhile(/[^@\"<#]/);\n        return null;\n      }\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-feature\", \"gherkin\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/go/go.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"go\", function(config) {\n  var indentUnit = config.indentUnit;\n\n  var keywords = {\n    \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n    \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n    \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n    \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n    \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n    \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n    \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n    \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n    \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n    \"rune\":true\n  };\n\n  var atoms = {\n    \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n    \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n    \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n    \"println\":true, \"real\":true, \"recover\":true\n  };\n\n  var isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\d\\.]/.test(ch)) {\n      if (ch == \".\") {\n        stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n      } else if (ch == \"0\") {\n        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n      } else {\n        stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n      }\n      return \"number\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n      }\n      if (end || !(escaped || quote == \"`\"))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    if (!state.context.prev) return;\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        if (ctx.type == \"case\") ctx.type = \"}\";\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"case\") ctx.type = \"case\";\n      else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n      else if (curPunc == ctx.type) popContext(state);\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) {\n        state.context.type = \"}\";\n        return ctx.indented;\n      }\n      var closing = firstChar == ctx.type;\n      if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}):\",\n    closeBrackets: \"()[]{}''\\\"\\\"``\",\n    fold: \"brace\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-go\", \"go\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/groovy/groovy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"groovy\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\n    \"abstract as assert boolean break byte case catch char class const continue def default \" +\n    \"do double else enum extends final finally float for goto if implements import in \" +\n    \"instanceof int interface long native new package private protected public return \" +\n    \"short static strictfp super switch synchronized threadsafe throw throws trait transient \" +\n    \"try void volatile while\");\n  var blockKeywords = words(\"catch class def do else enum finally for if interface switch trait try while\");\n  var standaloneKeywords = words(\"return break continue\");\n  var atoms = words(\"null true false this\");\n\n  var curPunc;\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return startString(ch, stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      if (stream.eat(/eE/)) { stream.eat(/\\+\\-/); stream.eatWhile(/\\d/); }\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment);\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (expectExpression(state.lastToken, false)) {\n        return startString(ch, stream, state);\n      }\n    }\n    if (ch == \"-\" && stream.eat(\">\")) {\n      curPunc = \"->\";\n      return null;\n    }\n    if (/[+\\-*&%=<>!?|\\/~]/.test(ch)) {\n      stream.eatWhile(/[+\\-*&%=<>|~]/);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    if (ch == \"@\") { stream.eatWhile(/[\\w\\$_\\.]/); return \"meta\"; }\n    if (state.lastToken == \".\") return \"property\";\n    if (stream.eat(\":\")) { curPunc = \"proplabel\"; return \"property\"; }\n    var cur = stream.current();\n    if (atoms.propertyIsEnumerable(cur)) { return \"atom\"; }\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      else if (standaloneKeywords.propertyIsEnumerable(cur)) curPunc = \"standalone\";\n      return \"keyword\";\n    }\n    return \"variable\";\n  }\n  tokenBase.isBase = true;\n\n  function startString(quote, stream, state) {\n    var tripleQuoted = false;\n    if (quote != \"/\" && stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\";\n    }\n    function t(stream, state) {\n      var escaped = false, next, end = !tripleQuoted;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          if (!tripleQuoted) { break; }\n          if (stream.match(quote + quote)) { end = true; break; }\n        }\n        if (quote == '\"' && next == \"$\" && !escaped && stream.eat(\"{\")) {\n          state.tokenize.push(tokenBaseUntilBrace());\n          return \"string\";\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize.pop();\n      return \"string\";\n    }\n    state.tokenize.push(t);\n    return t(stream, state);\n  }\n\n  function tokenBaseUntilBrace() {\n    var depth = 1;\n    function t(stream, state) {\n      if (stream.peek() == \"}\") {\n        depth--;\n        if (depth == 0) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        }\n      } else if (stream.peek() == \"{\") {\n        depth++;\n      }\n      return tokenBase(stream, state);\n    }\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize.pop();\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function expectExpression(last, newline) {\n    return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n      last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\" ||\n      (last == \"standalone\" && !newline);\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: [tokenBase],\n        context: new Context((basecolumn || 0) - config.indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true,\n        lastToken: null\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        // Automatic semicolon insertion\n        if (ctx.type == \"statement\" && !expectExpression(state.lastToken, true)) {\n          popContext(state); ctx = state.context;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      // Handle indentation for {x -> \\n ... }\n      else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n        popContext(state);\n        state.context.align = false;\n      }\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      state.lastToken = curPunc || style;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (!state.tokenize[state.tokenize.length-1].isBase) return CodeMirror.Pass;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n      if (ctx.type == \"statement\" && !expectExpression(state.lastToken, true)) ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : config.indentUnit);\n    },\n\n    electricChars: \"{}\",\n    closeBrackets: {triples: \"'\\\"\"},\n    fold: \"brace\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-groovy\", \"groovy\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/haml/haml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  // full haml mode. This handled embedded ruby and html fragments too\n  CodeMirror.defineMode(\"haml\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n\n    function rubyInQuote(endQuote) {\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = html;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n\n    function ruby(stream, state) {\n      if (stream.match(\"-#\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function html(stream, state) {\n      var ch = stream.peek();\n\n      // handle haml declarations. All declarations that cant be handled here\n      // will be passed to html mode\n      if (state.previousToken.style == \"comment\" ) {\n        if (state.indented > state.previousToken.indented) {\n          stream.skipToEnd();\n          return \"commentLine\";\n        }\n      }\n\n      if (state.startOfLine) {\n        if (ch == \"!\" && stream.match(\"!!\")) {\n          stream.skipToEnd();\n          return \"tag\";\n        } else if (stream.match(/^%[\\w:#\\.]+=/)) {\n          state.tokenize = ruby;\n          return \"hamlTag\";\n        } else if (stream.match(/^%[\\w:]+/)) {\n          return \"hamlTag\";\n        } else if (ch == \"/\" ) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\n      }\n\n      if (state.startOfLine || state.previousToken.style == \"hamlTag\") {\n        if ( ch == \"#\" || ch == \".\") {\n          stream.match(/[\\w-#\\.]*/);\n          return \"hamlAttribute\";\n        }\n      }\n\n      // do not handle --> as valid ruby, make it HTML close comment instead\n      if (state.startOfLine && !stream.match(\"-->\", false) && (ch == \"=\" || ch == \"-\" )) {\n        state.tokenize = ruby;\n        return state.tokenize(stream, state);\n      }\n\n      if (state.previousToken.style == \"hamlTag\" ||\n          state.previousToken.style == \"closeAttributeTag\" ||\n          state.previousToken.style == \"hamlAttribute\") {\n        if (ch == \"(\") {\n          state.tokenize = rubyInQuote(\")\");\n          return state.tokenize(stream, state);\n        } else if (ch == \"{\") {\n          if (!stream.match(/^\\{%.*/)) {\n            state.tokenize = rubyInQuote(\"}\");\n            return state.tokenize(stream, state);\n          }\n        }\n      }\n\n      return htmlMode.token(stream, state.htmlState);\n    }\n\n    return {\n      // default to html mode\n      startState: function() {\n        var htmlState = CodeMirror.startState(htmlMode);\n        var rubyState = CodeMirror.startState(rubyMode);\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          indented: 0,\n          previousToken: { style: null, indented: 0},\n          tokenize: html\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          indented: state.indented,\n          previousToken: state.previousToken,\n          tokenize: state.tokenize\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        // dont record comment line as we only want to measure comment line with\n        // the opening comment block\n        if (style && style != \"commentLine\") {\n          state.previousToken = { style: style, indented: state.indented };\n        }\n        // if current state is ruby and the previous token is not `,` reset the\n        // tokenize to html\n        if (stream.eol() && state.tokenize == ruby) {\n          stream.backUp(1);\n          var ch = stream.peek();\n          stream.next();\n          if (ch && ch != \",\") {\n            state.tokenize = html;\n          }\n        }\n        // reprocess some of the specific style tag when finish setting previousToken\n        if (style == \"hamlTag\") {\n          style = \"tag\";\n        } else if (style == \"commentLine\") {\n          style = \"comment\";\n        } else if (style == \"hamlAttribute\") {\n          style = \"attribute\";\n        } else if (style == \"closeAttributeTag\") {\n          style = null;\n        }\n        return style;\n      }\n    };\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-haml\", \"haml\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/handlebars/handlebars.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"), require(\"../../addon/mode/multiplex\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\", \"../../addon/mode/multiplex\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineSimpleMode(\"handlebars-tags\", {\n    start: [\n      { regex: /\\{\\{\\{/, push: \"handlebars_raw\", token: \"tag\" },\n      { regex: /\\{\\{!--/, push: \"dash_comment\", token: \"comment\" },\n      { regex: /\\{\\{!/,   push: \"comment\", token: \"comment\" },\n      { regex: /\\{\\{/,    push: \"handlebars\", token: \"tag\" }\n    ],\n    handlebars_raw: [\n      { regex: /\\}\\}\\}/, pop: true, token: \"tag\" },\n    ],\n    handlebars: [\n      { regex: /\\}\\}/, pop: true, token: \"tag\" },\n\n      // Double and single quotes\n      { regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/, token: \"string\" },\n      { regex: /'(?:[^\\\\']|\\\\.)*'?/, token: \"string\" },\n\n      // Handlebars keywords\n      { regex: />|[#\\/]([A-Za-z_]\\w*)/, token: \"keyword\" },\n      { regex: /(?:else|this)\\b/, token: \"keyword\" },\n\n      // Numeral\n      { regex: /\\d+/i, token: \"number\" },\n\n      // Atoms like = and .\n      { regex: /=|~|@|true|false/, token: \"atom\" },\n\n      // Paths\n      { regex: /(?:\\.\\.\\/)*(?:[A-Za-z_][\\w\\.]*)+/, token: \"variable-2\" }\n    ],\n    dash_comment: [\n      { regex: /--\\}\\}/, pop: true, token: \"comment\" },\n\n      // Commented code\n      { regex: /./, token: \"comment\"}\n    ],\n    comment: [\n      { regex: /\\}\\}/, pop: true, token: \"comment\" },\n      { regex: /./, token: \"comment\" }\n    ],\n    meta: {\n      blockCommentStart: \"{{--\",\n      blockCommentEnd: \"--}}\"\n    }\n  });\n\n  CodeMirror.defineMode(\"handlebars\", function(config, parserConfig) {\n    var handlebars = CodeMirror.getMode(config, \"handlebars-tags\");\n    if (!parserConfig || !parserConfig.base) return handlebars;\n    return CodeMirror.multiplexingMode(\n      CodeMirror.getMode(config, parserConfig.base),\n      {open: \"{{\", close: /\\}\\}\\}?/, mode: handlebars, parseDelimiters: true}\n    );\n  });\n\n  CodeMirror.defineMIME(\"text/x-handlebars-template\", \"handlebars\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/haskell/haskell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haskell\", function(_config, modeConfig) {\n\n  function switchState(source, setState, f) {\n    setState(f);\n    return f(source, setState);\n  }\n\n  // These should all be Unicode extended, as per the Haskell 2010 report\n  var smallRE = /[a-z_]/;\n  var largeRE = /[A-Z]/;\n  var digitRE = /\\d/;\n  var hexitRE = /[0-9A-Fa-f]/;\n  var octitRE = /[0-7]/;\n  var idRE = /[a-z_A-Z0-9'\\xa1-\\uffff]/;\n  var symbolRE = /[-!#$%&*+.\\/<=>?@\\\\^|~:]/;\n  var specialRE = /[(),;[\\]`{}]/;\n  var whiteCharRE = /[ \\t\\v\\f]/; // newlines are handled in tokenizer\n\n  function normal(source, setState) {\n    if (source.eatWhile(whiteCharRE)) {\n      return null;\n    }\n\n    var ch = source.next();\n    if (specialRE.test(ch)) {\n      if (ch == '{' && source.eat('-')) {\n        var t = \"comment\";\n        if (source.eat('#')) {\n          t = \"meta\";\n        }\n        return switchState(source, setState, ncomment(t, 1));\n      }\n      return null;\n    }\n\n    if (ch == '\\'') {\n      if (source.eat('\\\\')) {\n        source.next();  // should handle other escapes here\n      }\n      else {\n        source.next();\n      }\n      if (source.eat('\\'')) {\n        return \"string\";\n      }\n      return \"string error\";\n    }\n\n    if (ch == '\"') {\n      return switchState(source, setState, stringLiteral);\n    }\n\n    if (largeRE.test(ch)) {\n      source.eatWhile(idRE);\n      if (source.eat('.')) {\n        return \"qualifier\";\n      }\n      return \"variable-2\";\n    }\n\n    if (smallRE.test(ch)) {\n      source.eatWhile(idRE);\n      return \"variable\";\n    }\n\n    if (digitRE.test(ch)) {\n      if (ch == '0') {\n        if (source.eat(/[xX]/)) {\n          source.eatWhile(hexitRE); // should require at least 1\n          return \"integer\";\n        }\n        if (source.eat(/[oO]/)) {\n          source.eatWhile(octitRE); // should require at least 1\n          return \"number\";\n        }\n      }\n      source.eatWhile(digitRE);\n      var t = \"number\";\n      if (source.match(/^\\.\\d+/)) {\n        t = \"number\";\n      }\n      if (source.eat(/[eE]/)) {\n        t = \"number\";\n        source.eat(/[-+]/);\n        source.eatWhile(digitRE); // should require at least 1\n      }\n      return t;\n    }\n\n    if (ch == \".\" && source.eat(\".\"))\n      return \"keyword\";\n\n    if (symbolRE.test(ch)) {\n      if (ch == '-' && source.eat(/-/)) {\n        source.eatWhile(/-/);\n        if (!source.eat(symbolRE)) {\n          source.skipToEnd();\n          return \"comment\";\n        }\n      }\n      var t = \"variable\";\n      if (ch == ':') {\n        t = \"variable-2\";\n      }\n      source.eatWhile(symbolRE);\n      return t;\n    }\n\n    return \"error\";\n  }\n\n  function ncomment(type, nest) {\n    if (nest == 0) {\n      return normal;\n    }\n    return function(source, setState) {\n      var currNest = nest;\n      while (!source.eol()) {\n        var ch = source.next();\n        if (ch == '{' && source.eat('-')) {\n          ++currNest;\n        }\n        else if (ch == '-' && source.eat('}')) {\n          --currNest;\n          if (currNest == 0) {\n            setState(normal);\n            return type;\n          }\n        }\n      }\n      setState(ncomment(type, currNest));\n      return type;\n    };\n  }\n\n  function stringLiteral(source, setState) {\n    while (!source.eol()) {\n      var ch = source.next();\n      if (ch == '\"') {\n        setState(normal);\n        return \"string\";\n      }\n      if (ch == '\\\\') {\n        if (source.eol() || source.eat(whiteCharRE)) {\n          setState(stringGap);\n          return \"string\";\n        }\n        if (source.eat('&')) {\n        }\n        else {\n          source.next(); // should handle other escapes here\n        }\n      }\n    }\n    setState(normal);\n    return \"string error\";\n  }\n\n  function stringGap(source, setState) {\n    if (source.eat('\\\\')) {\n      return switchState(source, setState, stringLiteral);\n    }\n    source.next();\n    setState(normal);\n    return \"error\";\n  }\n\n\n  var wellKnownWords = (function() {\n    var wkw = {};\n    function setType(t) {\n      return function () {\n        for (var i = 0; i < arguments.length; i++)\n          wkw[arguments[i]] = t;\n      };\n    }\n\n    setType(\"keyword\")(\n      \"case\", \"class\", \"data\", \"default\", \"deriving\", \"do\", \"else\", \"foreign\",\n      \"if\", \"import\", \"in\", \"infix\", \"infixl\", \"infixr\", \"instance\", \"let\",\n      \"module\", \"newtype\", \"of\", \"then\", \"type\", \"where\", \"_\");\n\n    setType(\"keyword\")(\n      \"\\.\\.\", \":\", \"::\", \"=\", \"\\\\\", \"<-\", \"->\", \"@\", \"~\", \"=>\");\n\n    setType(\"builtin\")(\n      \"!!\", \"$!\", \"$\", \"&&\", \"+\", \"++\", \"-\", \".\", \"/\", \"/=\", \"<\", \"<*\", \"<=\",\n      \"<$>\", \"<*>\", \"=<<\", \"==\", \">\", \">=\", \">>\", \">>=\", \"^\", \"^^\", \"||\", \"*\",\n      \"*>\", \"**\");\n\n    setType(\"builtin\")(\n      \"Applicative\", \"Bool\", \"Bounded\", \"Char\", \"Double\", \"EQ\", \"Either\", \"Enum\",\n      \"Eq\", \"False\", \"FilePath\", \"Float\", \"Floating\", \"Fractional\", \"Functor\",\n      \"GT\", \"IO\", \"IOError\", \"Int\", \"Integer\", \"Integral\", \"Just\", \"LT\", \"Left\",\n      \"Maybe\", \"Monad\", \"Nothing\", \"Num\", \"Ord\", \"Ordering\", \"Rational\", \"Read\",\n      \"ReadS\", \"Real\", \"RealFloat\", \"RealFrac\", \"Right\", \"Show\", \"ShowS\",\n      \"String\", \"True\");\n\n    setType(\"builtin\")(\n      \"abs\", \"acos\", \"acosh\", \"all\", \"and\", \"any\", \"appendFile\", \"asTypeOf\",\n      \"asin\", \"asinh\", \"atan\", \"atan2\", \"atanh\", \"break\", \"catch\", \"ceiling\",\n      \"compare\", \"concat\", \"concatMap\", \"const\", \"cos\", \"cosh\", \"curry\",\n      \"cycle\", \"decodeFloat\", \"div\", \"divMod\", \"drop\", \"dropWhile\", \"either\",\n      \"elem\", \"encodeFloat\", \"enumFrom\", \"enumFromThen\", \"enumFromThenTo\",\n      \"enumFromTo\", \"error\", \"even\", \"exp\", \"exponent\", \"fail\", \"filter\",\n      \"flip\", \"floatDigits\", \"floatRadix\", \"floatRange\", \"floor\", \"fmap\",\n      \"foldl\", \"foldl1\", \"foldr\", \"foldr1\", \"fromEnum\", \"fromInteger\",\n      \"fromIntegral\", \"fromRational\", \"fst\", \"gcd\", \"getChar\", \"getContents\",\n      \"getLine\", \"head\", \"id\", \"init\", \"interact\", \"ioError\", \"isDenormalized\",\n      \"isIEEE\", \"isInfinite\", \"isNaN\", \"isNegativeZero\", \"iterate\", \"last\",\n      \"lcm\", \"length\", \"lex\", \"lines\", \"log\", \"logBase\", \"lookup\", \"map\",\n      \"mapM\", \"mapM_\", \"max\", \"maxBound\", \"maximum\", \"maybe\", \"min\", \"minBound\",\n      \"minimum\", \"mod\", \"negate\", \"not\", \"notElem\", \"null\", \"odd\", \"or\",\n      \"otherwise\", \"pi\", \"pred\", \"print\", \"product\", \"properFraction\", \"pure\",\n      \"putChar\", \"putStr\", \"putStrLn\", \"quot\", \"quotRem\", \"read\", \"readFile\",\n      \"readIO\", \"readList\", \"readLn\", \"readParen\", \"reads\", \"readsPrec\",\n      \"realToFrac\", \"recip\", \"rem\", \"repeat\", \"replicate\", \"return\", \"reverse\",\n      \"round\", \"scaleFloat\", \"scanl\", \"scanl1\", \"scanr\", \"scanr1\", \"seq\",\n      \"sequence\", \"sequence_\", \"show\", \"showChar\", \"showList\", \"showParen\",\n      \"showString\", \"shows\", \"showsPrec\", \"significand\", \"signum\", \"sin\",\n      \"sinh\", \"snd\", \"span\", \"splitAt\", \"sqrt\", \"subtract\", \"succ\", \"sum\",\n      \"tail\", \"take\", \"takeWhile\", \"tan\", \"tanh\", \"toEnum\", \"toInteger\",\n      \"toRational\", \"truncate\", \"uncurry\", \"undefined\", \"unlines\", \"until\",\n      \"unwords\", \"unzip\", \"unzip3\", \"userError\", \"words\", \"writeFile\", \"zip\",\n      \"zip3\", \"zipWith\", \"zipWith3\");\n\n    var override = modeConfig.overrideKeywords;\n    if (override) for (var word in override) if (override.hasOwnProperty(word))\n      wkw[word] = override[word];\n\n    return wkw;\n  })();\n\n\n\n  return {\n    startState: function ()  { return { f: normal }; },\n    copyState:  function (s) { return { f: s.f }; },\n\n    token: function(stream, state) {\n      var t = state.f(stream, function(s) { state.f = s; });\n      var w = stream.current();\n      return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t;\n    },\n\n    blockCommentStart: \"{-\",\n    blockCommentEnd: \"-}\",\n    lineComment: \"--\"\n  };\n\n});\n\nCodeMirror.defineMIME(\"text/x-haskell\", \"haskell\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/haskell-literate/haskell-literate.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../haskell/haskell\"))\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../haskell/haskell\"], mod)\n  else // Plain browser env\n    mod(CodeMirror)\n})(function (CodeMirror) {\n  \"use strict\"\n\n  CodeMirror.defineMode(\"haskell-literate\", function (config, parserConfig) {\n    var baseMode = CodeMirror.getMode(config, (parserConfig && parserConfig.base) || \"haskell\")\n\n    return {\n      startState: function () {\n        return {\n          inCode: false,\n          baseState: CodeMirror.startState(baseMode)\n        }\n      },\n      token: function (stream, state) {\n        if (stream.sol()) {\n          if (state.inCode = stream.eat(\">\"))\n            return \"meta\"\n        }\n        if (state.inCode) {\n          return baseMode.token(stream, state.baseState)\n        } else {\n          stream.skipToEnd()\n          return \"comment\"\n        }\n      },\n      innerMode: function (state) {\n        return state.inCode ? {state: state.baseState, mode: baseMode} : null\n      }\n    }\n  }, \"haskell\")\n\n  CodeMirror.defineMIME(\"text/x-literate-haskell\", \"haskell-literate\")\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/haxe/haxe.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haxe\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  // Tokenizer\n\n  function kw(type) {return {type: type, style: \"keyword\"};}\n  var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n  var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"}, attribute = {type:\"attribute\", style: \"attribute\"};\n  var type = kw(\"typedef\");\n  var keywords = {\n    \"if\": A, \"while\": A, \"else\": B, \"do\": B, \"try\": B,\n    \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"throw\": C,\n    \"var\": kw(\"var\"), \"inline\":attribute, \"static\": attribute, \"using\":kw(\"import\"),\n    \"public\": attribute, \"private\": attribute, \"cast\": kw(\"cast\"), \"import\": kw(\"import\"), \"macro\": kw(\"macro\"),\n    \"function\": kw(\"function\"), \"catch\": kw(\"catch\"), \"untyped\": kw(\"untyped\"), \"callback\": kw(\"cb\"),\n    \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n    \"in\": operator, \"never\": kw(\"property_access\"), \"trace\":kw(\"trace\"),\n    \"class\": type, \"abstract\":type, \"enum\":type, \"interface\":type, \"typedef\":type, \"extends\":type, \"implements\":type, \"dynamic\":type,\n    \"true\": atom, \"false\": atom, \"null\": atom\n  };\n\n  var isOperatorChar = /[+\\-*&%=<>!?|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function toUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next == end && !escaped)\n        return true;\n      escaped = !escaped && next == \"\\\\\";\n    }\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n\n  function haxeTokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return chain(stream, state, haxeTokenString(ch));\n    } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return ret(ch);\n    } else if (ch == \"0\" && stream.eat(/x/i)) {\n      stream.eatWhile(/[\\da-f]/i);\n      return ret(\"number\", \"number\");\n    } else if (/\\d/.test(ch) || ch == \"-\" && stream.eat(/\\d/)) {\n      stream.match(/^\\d*(?:\\.\\d*(?!\\.))?(?:[eE][+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    } else if (state.reAllowed && (ch == \"~\" && stream.eat(/\\//))) {\n      toUnescaped(stream, \"/\");\n      stream.eatWhile(/[gimsu]/);\n      return ret(\"regexp\", \"string-2\");\n    } else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, haxeTokenComment);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", null, stream.current());\n      }\n    } else if (ch == \"#\") {\n        stream.skipToEnd();\n        return ret(\"conditional\", \"meta\");\n    } else if (ch == \"@\") {\n      stream.eat(/:/);\n      stream.eatWhile(/[\\w_]/);\n      return ret (\"metadata\", \"meta\");\n    } else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", null, stream.current());\n    } else {\n      var word;\n      if(/[A-Z]/.test(ch)) {\n        stream.eatWhile(/[\\w_<>]/);\n        word = stream.current();\n        return ret(\"type\", \"variable-3\", word);\n      } else {\n        stream.eatWhile(/[\\w_]/);\n        var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n        return (known && state.kwAllowed) ? ret(known.type, known.style, word) :\n                       ret(\"variable\", \"variable\", word);\n      }\n    }\n  }\n\n  function haxeTokenString(quote) {\n    return function(stream, state) {\n      if (toUnescaped(stream, quote))\n        state.tokenize = haxeTokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function haxeTokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = haxeTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true};\n\n  function HaxeLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n  }\n\n  function parseHaxe(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n        if (type == \"variable\" && imported(state, content)) return \"variable-3\";\n        return style;\n      }\n    }\n  }\n\n  function imported(state, typename) {\n    if (/[a-z]/.test(typename.charAt(0)))\n      return false;\n    var len = state.importedtypes.length;\n    for (var i = 0; i<len; i++)\n      if(state.importedtypes[i]==typename) return true;\n  }\n\n  function registerimport(importname) {\n    var state = cx.state;\n    for (var t = state.importedtypes; t; t = t.next)\n      if(t.name == importname) return;\n    state.importedtypes = { name: importname, next: state.importedtypes };\n  }\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function inList(name, list) {\n    for (var v = list; v; v = v.next)\n      if (v.name == name) return true;\n    return false;\n  }\n  function register(varname) {\n    var state = cx.state;\n    if (state.context) {\n      cx.marked = \"def\";\n      if (inList(varname, state.localVars)) return;\n      state.localVars = {name: varname, next: state.localVars};\n    } else if (state.globalVars) {\n      if (inList(varname, state.globalVars)) return;\n      state.globalVars = {name: varname, next: state.globalVars};\n    }\n  }\n\n  // Combinators\n\n  var defaultVars = {name: \"this\", next: null};\n  function pushcontext() {\n    if (!cx.state.context) cx.state.localVars = defaultVars;\n    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars;\n    cx.state.context = cx.state.context.prev;\n  }\n  popcontext.lex = true;\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state;\n      state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function f(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\") return pass();\n      else return cont(f);\n    }\n    return f;\n  }\n\n  function statement(type) {\n    if (type == \"@\") return cont(metadef);\n    if (type == \"var\") return cont(pushlex(\"vardef\"), vardef1, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), pushcontext, block, poplex, popcontext);\n    if (type == \";\") return cont();\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), expect(\"(\"), pushlex(\")\"), forspec1, expect(\")\"),\n                                   poplex, statement, poplex);\n    if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n    if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n                                      block, poplex, poplex);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n                                     statement, poplex, popcontext);\n    if (type == \"import\") return cont(importdef, expect(\";\"));\n    if (type == \"typedef\") return cont(typedef);\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function expression(type) {\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);\n    if (type == \"type\" ) return cont(maybeoperator);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"keyword c\") return cont(maybeexpression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeoperator);\n    if (type == \"operator\") return cont(expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(maybeexpression, \"]\"), poplex, maybeoperator);\n    if (type == \"{\") return cont(pushlex(\"}\"), commasep(objprop, \"}\"), poplex, maybeoperator);\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n\n  function maybeoperator(type, value) {\n    if (type == \"operator\" && /\\+\\+|--/.test(value)) return cont(maybeoperator);\n    if (type == \"operator\" || type == \":\") return cont(expression);\n    if (type == \";\") return;\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(expression, \")\"), poplex, maybeoperator);\n    if (type == \".\") return cont(property, maybeoperator);\n    if (type == \"[\") return cont(pushlex(\"]\"), expression, expect(\"]\"), poplex, maybeoperator);\n  }\n\n  function maybeattribute(type) {\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"var\") return cont(vardef1);\n  }\n\n  function metadef(type) {\n    if(type == \":\") return cont(metadef);\n    if(type == \"variable\") return cont(metadef);\n    if(type == \"(\") return cont(pushlex(\")\"), commasep(metaargs, \")\"), poplex, statement);\n  }\n  function metaargs(type) {\n    if(type == \"variable\") return cont();\n  }\n\n  function importdef (type, value) {\n    if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n    else if(type == \"variable\" || type == \"property\" || type == \".\" || value == \"*\") return cont(importdef);\n  }\n\n  function typedef (type, value)\n  {\n    if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n    else if (type == \"type\" && /[A-Z]/.test(value.charAt(0))) { return cont(); }\n  }\n\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperator, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type) {\n    if (type == \"variable\") cx.marked = \"property\";\n    if (atomicTypes.hasOwnProperty(type)) return cont(expect(\":\"), expression);\n  }\n  function commasep(what, end) {\n    function proceed(type) {\n      if (type == \",\") return cont(what, proceed);\n      if (type == end) return cont();\n      return cont(expect(end));\n    }\n    return function(type) {\n      if (type == end) return cont();\n      else return pass(what, proceed);\n    };\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function vardef1(type, value) {\n    if (type == \"variable\"){register(value); return cont(typeuse, vardef2);}\n    return cont();\n  }\n  function vardef2(type, value) {\n    if (value == \"=\") return cont(expression, vardef2);\n    if (type == \",\") return cont(vardef1);\n  }\n  function forspec1(type, value) {\n    if (type == \"variable\") {\n      register(value);\n      return cont(forin, expression)\n    } else {\n      return pass()\n    }\n  }\n  function forin(_type, value) {\n    if (value == \"in\") return cont();\n  }\n  function functiondef(type, value) {\n    //function names starting with upper-case letters are recognised as types, so cludging them together here.\n    if (type == \"variable\" || type == \"type\") {register(value); return cont(functiondef);}\n    if (value == \"new\") return cont(functiondef);\n    if (type == \"(\") return cont(pushlex(\")\"), pushcontext, commasep(funarg, \")\"), poplex, typeuse, statement, popcontext);\n  }\n  function typeuse(type) {\n    if(type == \":\") return cont(typestring);\n  }\n  function typestring(type) {\n    if(type == \"type\") return cont();\n    if(type == \"variable\") return cont();\n    if(type == \"{\") return cont(pushlex(\"}\"), commasep(typeprop, \"}\"), poplex);\n  }\n  function typeprop(type) {\n    if(type == \"variable\") return cont(typeuse);\n  }\n  function funarg(type, value) {\n    if (type == \"variable\") {register(value); return cont(typeuse);}\n  }\n\n  // Interface\n  return {\n    startState: function(basecolumn) {\n      var defaulttypes = [\"Int\", \"Float\", \"String\", \"Void\", \"Std\", \"Bool\", \"Dynamic\", \"Array\"];\n      var state = {\n        tokenize: haxeTokenBase,\n        reAllowed: true,\n        kwAllowed: true,\n        cc: [],\n        lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n        importedtypes: defaulttypes,\n        context: parserConfig.localVars && {vars: parserConfig.localVars},\n        indented: 0\n      };\n      if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n        state.globalVars = parserConfig.globalVars;\n      return state;\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.reAllowed = !!(type == \"operator\" || type == \"keyword c\" || type.match(/^[\\[{}\\(,;:]$/));\n      state.kwAllowed = type != '.';\n      return parseHaxe(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != haxeTokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n      if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n      if (type == \"vardef\") return lexical.indented + 4;\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"stat\" || type == \"form\") return lexical.indented + indentUnit;\n      else if (lexical.info == \"switch\" && !closing)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-haxe\", \"haxe\");\n\nCodeMirror.defineMode(\"hxml\", function () {\n\n  return {\n    startState: function () {\n      return {\n        define: false,\n        inString: false\n      };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      var sol = stream.sol();\n\n      ///* comments */\n      if (ch == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (sol && ch == \"-\") {\n        var style = \"variable-2\";\n\n        stream.eat(/-/);\n\n        if (stream.peek() == \"-\") {\n          stream.eat(/-/);\n          style = \"keyword a\";\n        }\n\n        if (stream.peek() == \"D\") {\n          stream.eat(/[D]/);\n          style = \"keyword c\";\n          state.define = true;\n        }\n\n        stream.eatWhile(/[A-Z]/i);\n        return style;\n      }\n\n      var ch = stream.peek();\n\n      if (state.inString == false && ch == \"'\") {\n        state.inString = true;\n        stream.next();\n      }\n\n      if (state.inString == true) {\n        if (stream.skipTo(\"'\")) {\n\n        } else {\n          stream.skipToEnd();\n        }\n\n        if (stream.peek() == \"'\") {\n          stream.next();\n          state.inString = false;\n        }\n\n        return \"string\";\n      }\n\n      stream.next();\n      return null;\n    },\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-hxml\", \"hxml\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/htmlembedded/htmlembedded.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/multiplex\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/multiplex\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"htmlembedded\", function(config, parserConfig) {\n    var closeComment = parserConfig.closeComment || \"--%>\"\n    return CodeMirror.multiplexingMode(CodeMirror.getMode(config, \"htmlmixed\"), {\n      open: parserConfig.openComment || \"<%--\",\n      close: closeComment,\n      delimStyle: \"comment\",\n      mode: {token: function(stream) {\n        stream.skipTo(closeComment) || stream.skipToEnd()\n        return \"comment\"\n      }}\n    }, {\n      open: parserConfig.open || parserConfig.scriptStartRegex || \"<%\",\n      close: parserConfig.close || parserConfig.scriptEndRegex || \"%>\",\n      mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)\n    });\n  }, \"htmlmixed\");\n\n  CodeMirror.defineMIME(\"application/x-ejs\", {name: \"htmlembedded\", scriptingModeSpec:\"javascript\"});\n  CodeMirror.defineMIME(\"application/x-aspx\", {name: \"htmlembedded\", scriptingModeSpec:\"text/x-csharp\"});\n  CodeMirror.defineMIME(\"application/x-jsp\", {name: \"htmlembedded\", scriptingModeSpec:\"text/x-java\"});\n  CodeMirror.defineMIME(\"application/x-erb\", {name: \"htmlembedded\", scriptingModeSpec:\"ruby\"});\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/htmlmixed/htmlmixed.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var defaultTags = {\n    script: [\n      [\"lang\", /(javascript|babel)/i, \"javascript\"],\n      [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n      [\"type\", /./, \"text/plain\"],\n      [null, null, \"javascript\"]\n    ],\n    style:  [\n      [\"lang\", /^css$/i, \"css\"],\n      [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n      [\"type\", /./, \"text/plain\"],\n      [null, null, \"css\"]\n    ]\n  };\n\n  function maybeBackup(stream, pat, style) {\n    var cur = stream.current(), close = cur.search(pat);\n    if (close > -1) {\n      stream.backUp(cur.length - close);\n    } else if (cur.match(/<\\/?$/)) {\n      stream.backUp(cur.length);\n      if (!stream.match(pat, false)) stream.match(cur);\n    }\n    return style;\n  }\n\n  var attrRegexpCache = {};\n  function getAttrRegexp(attr) {\n    var regexp = attrRegexpCache[attr];\n    if (regexp) return regexp;\n    return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n  }\n\n  function getAttrValue(text, attr) {\n    var match = text.match(getAttrRegexp(attr))\n    return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n  }\n\n  function getTagRegexp(tagName, anchored) {\n    return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\s*\" + tagName + \"\\s*>\", \"i\");\n  }\n\n  function addTags(from, to) {\n    for (var tag in from) {\n      var dest = to[tag] || (to[tag] = []);\n      var source = from[tag];\n      for (var i = source.length - 1; i >= 0; i--)\n        dest.unshift(source[i])\n    }\n  }\n\n  function findMatchingMode(tagInfo, tagText) {\n    for (var i = 0; i < tagInfo.length; i++) {\n      var spec = tagInfo[i];\n      if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n    }\n  }\n\n  CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n    var htmlMode = CodeMirror.getMode(config, {\n      name: \"xml\",\n      htmlMode: true,\n      multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n      multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n      allowMissingTagName: parserConfig.allowMissingTagName,\n    });\n\n    var tags = {};\n    var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n    addTags(defaultTags, tags);\n    if (configTags) addTags(configTags, tags);\n    if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n      tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n    function html(stream, state) {\n      var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n      if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n          (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n          tags.hasOwnProperty(tagName)) {\n        state.inTag = tagName + \" \"\n      } else if (state.inTag && tag && />$/.test(stream.current())) {\n        var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n        state.inTag = null\n        var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n        var mode = CodeMirror.getMode(config, modeSpec)\n        var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n        state.token = function (stream, state) {\n          if (stream.match(endTagA, false)) {\n            state.token = html;\n            state.localState = state.localMode = null;\n            return null;\n          }\n          return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n        };\n        state.localMode = mode;\n        state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n      } else if (state.inTag) {\n        state.inTag += stream.current()\n        if (stream.eol()) state.inTag += \" \"\n      }\n      return style;\n    };\n\n    return {\n      startState: function () {\n        var state = CodeMirror.startState(htmlMode);\n        return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n      },\n\n      copyState: function (state) {\n        var local;\n        if (state.localState) {\n          local = CodeMirror.copyState(state.localMode, state.localState);\n        }\n        return {token: state.token, inTag: state.inTag,\n                localMode: state.localMode, localState: local,\n                htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n      },\n\n      token: function (stream, state) {\n        return state.token(stream, state);\n      },\n\n      indent: function (state, textAfter, line) {\n        if (!state.localMode || /^\\s*<\\//.test(textAfter))\n          return htmlMode.indent(state.htmlState, textAfter, line);\n        else if (state.localMode.indent)\n          return state.localMode.indent(state.localState, textAfter, line);\n        else\n          return CodeMirror.Pass;\n      },\n\n      innerMode: function (state) {\n        return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n      }\n    };\n  }, \"xml\", \"javascript\", \"css\");\n\n  CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/http/http.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"http\", function() {\n  function failFirstLine(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return \"error\";\n  }\n\n  function start(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d/)) {\n      state.cur = responseStatusCode;\n      return \"keyword\";\n    } else if (stream.match(/^[A-Z]+/) && /[ \\t]/.test(stream.peek())) {\n      state.cur = requestPath;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function responseStatusCode(stream, state) {\n    var code = stream.match(/^\\d+/);\n    if (!code) return failFirstLine(stream, state);\n\n    state.cur = responseStatusText;\n    var status = Number(code[0]);\n    if (status >= 100 && status < 200) {\n      return \"positive informational\";\n    } else if (status >= 200 && status < 300) {\n      return \"positive success\";\n    } else if (status >= 300 && status < 400) {\n      return \"positive redirect\";\n    } else if (status >= 400 && status < 500) {\n      return \"negative client-error\";\n    } else if (status >= 500 && status < 600) {\n      return \"negative server-error\";\n    } else {\n      return \"error\";\n    }\n  }\n\n  function responseStatusText(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return null;\n  }\n\n  function requestPath(stream, state) {\n    stream.eatWhile(/\\S/);\n    state.cur = requestProtocol;\n    return \"string-2\";\n  }\n\n  function requestProtocol(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d$/)) {\n      state.cur = header;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function header(stream) {\n    if (stream.sol() && !stream.eat(/[ \\t]/)) {\n      if (stream.match(/^.*?:/)) {\n        return \"atom\";\n      } else {\n        stream.skipToEnd();\n        return \"error\";\n      }\n    } else {\n      stream.skipToEnd();\n      return \"string\";\n    }\n  }\n\n  function body(stream) {\n    stream.skipToEnd();\n    return null;\n  }\n\n  return {\n    token: function(stream, state) {\n      var cur = state.cur;\n      if (cur != header && cur != body && stream.eatSpace()) return null;\n      return cur(stream, state);\n    },\n\n    blankLine: function(state) {\n      state.cur = body;\n    },\n\n    startState: function() {\n      return {cur: start};\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"message/http\", \"http\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/idl/idl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp('^((' + words.join(')|(') + '))\\\\b', 'i');\n  };\n\n  var builtinArray = [\n    'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog',\n    'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir',\n    'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices',\n    'arrow', 'ascii_template', 'asin', 'assoc', 'atan',\n    'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot',\n    'bar_plot', 'beseli', 'beselj', 'beselk', 'besely',\n    'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template',\n    'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy',\n    'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor',\n    'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr',\n    'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar',\n    'caldat', 'call_external', 'call_function', 'call_method',\n    'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil',\n    'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc',\n    'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close',\n    'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage',\n    'color_convert', 'color_exchange', 'color_quan', 'color_range_map',\n    'colorbar', 'colorize_sample', 'colormap_applicable',\n    'colormap_gradient', 'colormap_rotation', 'colortable',\n    'comfit', 'command_line_args', 'common', 'compile_opt', 'complex',\n    'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid',\n    'conj', 'constrained_min', 'contour', 'contour', 'convert_coord',\n    'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate',\n    'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata',\n    'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength',\n    'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord',\n    'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load',\n    'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index',\n    'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form',\n    'cw_fslider', 'cw_light_editor', 'cw_light_editor_get',\n    'cw_light_editor_set', 'cw_orient', 'cw_palette_editor',\n    'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu',\n    'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists',\n    'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key',\n    'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv',\n    'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig',\n    'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect',\n    'dialog_message', 'dialog_pickfile', 'dialog_printersetup',\n    'dialog_printjob', 'dialog_read_image',\n    'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen',\n    'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register',\n    'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont',\n    'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss',\n    'empty', 'enable_sysrtn', 'eof', 'eos', 'erase',\n    'erf', 'erfc', 'erfcx', 'erode', 'errorplot',\n    'errplot', 'estimator_filter', 'execute', 'exit', 'exp',\n    'expand', 'expand_path', 'expint', 'extract', 'extract_slice',\n    'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename',\n    'file_chmod', 'file_copy', 'file_delete', 'file_dirname',\n    'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info',\n    'file_lines', 'file_link', 'file_mkdir', 'file_move',\n    'file_poll_input', 'file_readlink', 'file_same',\n    'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip',\n    'file_which', 'file_zip', 'filepath', 'findgen', 'finite',\n    'fix', 'flick', 'float', 'floor', 'flow3',\n    'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun',\n    'fstat', 'fulstr', 'funct', 'function', 'fv_test',\n    'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf',\n    'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit',\n    'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects',\n    'get_kbrd', 'get_login_info',\n    'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul',\n    'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata',\n    'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash',\n    'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave',\n    'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d',\n    'hist_equal', 'histogram', 'hls', 'hough', 'hqr',\n    'hsv', 'i18n_multibytetoutf8',\n    'i18n_multibytetowidechar', 'i18n_utf8tomultibyte',\n    'i18n_widechartomultibyte',\n    'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity',\n    'idl_base64', 'idl_container', 'idl_validname',\n    'idlexbr_assistant', 'idlitsys_createtool',\n    'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata',\n    'igetid', 'igetproperty', 'iimage', 'image', 'image_cont',\n    'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen',\n    'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol',\n    'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen',\n    'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata',\n    'iregister', 'ireset', 'iresolve', 'irotate', 'isa',\n    'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft',\n    'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate',\n    'ivector', 'ivolume', 'izoom', 'journal', 'json_parse',\n    'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d',\n    'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove',\n    'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec',\n    'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert',\n    'la_least_square_equality', 'la_least_squares', 'la_linear_equation',\n    'la_ludc', 'la_lumprove', 'la_lusol',\n    'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired',\n    'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre',\n    'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter',\n    'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen',\n    'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit',\n    'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get',\n    'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr',\n    'long', 'long64', 'lsode', 'lu_complex', 'ludc',\n    'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array',\n    'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid',\n    'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch',\n    'map_proj_forward', 'map_proj_image', 'map_proj_info',\n    'map_proj_init', 'map_proj_inverse',\n    'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test',\n    'mean', 'meanabsdev', 'mean_filter', 'median', 'memory',\n    'mesh_clip', 'mesh_decimate', 'mesh_issolid',\n    'mesh_merge', 'mesh_numtriangles',\n    'mesh_obj', 'mesh_smooth', 'mesh_surfacearea',\n    'mesh_validate', 'mesh_volume',\n    'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct',\n    'moment', 'morph_close', 'morph_distance',\n    'morph_gradient', 'morph_hitormiss',\n    'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements',\n    'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl',\n    'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class',\n    'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid',\n    'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr',\n    'openu', 'openw', 'oplot', 'oploterr', 'orderedhash',\n    'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep',\n    'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox',\n    'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface',\n    'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot',\n    'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv',\n    'polygon', 'polyline', 'polywarp', 'popd', 'powell',\n    'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes',\n    'print', 'printf', 'printd', 'pro', 'product',\n    'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts',\n    'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid',\n    'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb',\n    'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp',\n    'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg',\n    'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm',\n    'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate',\n    'r_test', 'radon', 'randomn', 'randomu', 'ranks',\n    'rdpix', 'read', 'readf', 'read_ascii', 'read_binary',\n    'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image',\n    'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict',\n    'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk',\n    'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap',\n    'read_xwd', 'reads', 'readu', 'real_part', 'rebin',\n    'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow',\n    'register_cursor', 'regress', 'replicate',\n    'replicate_inplace', 'resolve_all',\n    'resolve_routine', 'restore', 'retall', 'return', 'reverse',\n    'rk4', 'roberts', 'rot', 'rotate', 'round',\n    'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save',\n    'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d',\n    'scope_level', 'scope_traceback', 'scope_varfetch',\n    'scope_varname', 'search2d',\n    'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release',\n    'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf',\n    'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug',\n    'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont',\n    'signum', 'simplex', 'sin', 'sindgen', 'sinh',\n    'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image',\n    'smooth', 'sobel', 'socket', 'sort', 'spawn',\n    'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp',\n    'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin',\n    'sprstp', 'sqrt', 'standardize', 'stddev', 'stop',\n    'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline',\n    'stregex', 'stretch', 'string', 'strjoin', 'strlen',\n    'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos',\n    'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide',\n    'strupcase', 'surface', 'surface', 'surfr', 'svdc',\n    'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol',\n    'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',\n    'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',\n    'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',\n    'thread', 'threed', 'tic', 'time_test2', 'timegen',\n    'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',\n    'total', 'trace', 'transpose', 'tri_surf', 'triangulate',\n    'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',\n    'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv',\n    'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename',\n    'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen',\n    'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq',\n    'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector',\n    'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt',\n    'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri',\n    'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base',\n    'widget_button', 'widget_combobox', 'widget_control',\n    'widget_displaycontextmenu', 'widget_draw',\n    'widget_droplist', 'widget_event', 'widget_info',\n    'widget_label', 'widget_list',\n    'widget_propertysheet', 'widget_slider', 'widget_tab',\n    'widget_table', 'widget_text',\n    'widget_tree', 'widget_tree_move', 'widget_window',\n    'wiener_filter', 'window',\n    'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image',\n    'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png',\n    'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff',\n    'write_video', 'write_wav', 'write_wave', 'writeu', 'wset',\n    'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet',\n    'wv_denoise', 'wv_dwt', 'wv_fn_coiflet',\n    'wv_fn_daubechies', 'wv_fn_gaussian',\n    'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul',\n    'wv_fn_symlet', 'wv_import_data',\n    'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires',\n    'wv_pwt', 'wv_tool_denoise',\n    'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate',\n    'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview',\n    'xobjview_rotate', 'xobjview_write_image',\n    'xpalette', 'xpcolor', 'xplot3d',\n    'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit',\n    'xvolume', 'xvolume_rotate', 'xvolume_write_image',\n    'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24'\n  ];\n  var builtins = wordRegexp(builtinArray);\n\n  var keywordArray = [\n    'begin', 'end', 'endcase', 'endfor',\n    'endwhile', 'endif', 'endrep', 'endforeach',\n    'break', 'case', 'continue', 'for',\n    'foreach', 'goto', 'if', 'then', 'else',\n    'repeat', 'until', 'switch', 'while',\n    'do', 'pro', 'function'\n  ];\n  var keywords = wordRegexp(keywordArray);\n\n  CodeMirror.registerHelper(\"hintWords\", \"idl\", builtinArray.concat(keywordArray));\n\n  var identifiers = new RegExp('^[_a-z\\xa1-\\uffff][_a-z0-9\\xa1-\\uffff]*', 'i');\n\n  var singleOperators = /[+\\-*&=<>\\/@#~$]/;\n  var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i');\n\n  function tokenBase(stream) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match(';')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n    }\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return 'string'; }\n    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; }\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; }\n    if (stream.match(builtins)) { return 'builtin'; }\n    if (stream.match(identifiers)) { return 'variable'; }\n\n    if (stream.match(singleOperators) || stream.match(boolOperators)) {\n      return 'operator'; }\n\n    // Handle non-detected items\n    stream.next();\n    return null;\n  };\n\n  CodeMirror.defineMode('idl', function() {\n    return {\n      token: function(stream) {\n        return tokenBase(stream);\n      }\n    };\n  });\n\n  CodeMirror.defineMIME('text/x-idl', 'idl');\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/javascript/javascript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n  var statementIndent = parserConfig.statementIndent;\n  var jsonldMode = parserConfig.jsonld;\n  var jsonMode = parserConfig.json || jsonldMode;\n  var isTS = parserConfig.typescript;\n  var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n  // Tokenizer\n\n  var keywords = function(){\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n    var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n    return {\n      \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n      \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n      \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n      \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n      \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n      \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n      \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n      \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n      \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n      \"await\": C\n    };\n  }();\n\n  var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n  function readRegexp(stream) {\n    var escaped = false, next, inSet = false;\n    while ((next = stream.next()) != null) {\n      if (!escaped) {\n        if (next == \"/\" && !inSet) return;\n        if (next == \"[\") inSet = true;\n        else if (inSet && next == \"]\") inSet = false;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n      return ret(\"number\", \"number\");\n    } else if (ch == \".\" && stream.match(\"..\")) {\n      return ret(\"spread\", \"meta\");\n    } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return ret(ch);\n    } else if (ch == \"=\" && stream.eat(\">\")) {\n      return ret(\"=>\", \"operator\");\n    } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n      return ret(\"number\", \"number\");\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n      return ret(\"number\", \"number\");\n    } else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else if (expressionAllowed(stream, state, 1)) {\n        readRegexp(stream);\n        stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n        return ret(\"regexp\", \"string-2\");\n      } else {\n        stream.eat(\"=\");\n        return ret(\"operator\", \"operator\", stream.current());\n      }\n    } else if (ch == \"`\") {\n      state.tokenize = tokenQuasi;\n      return tokenQuasi(stream, state);\n    } else if (ch == \"#\" && stream.peek() == \"!\") {\n      stream.skipToEnd();\n      return ret(\"meta\", \"meta\");\n    } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n      return ret(\"variable\", \"property\")\n    } else if (ch == \"<\" && stream.match(\"!--\") ||\n               (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n      stream.skipToEnd()\n      return ret(\"comment\", \"comment\")\n    } else if (isOperatorChar.test(ch)) {\n      if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n        if (stream.eat(\"=\")) {\n          if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n        } else if (/[<>*+\\-|&?]/.test(ch)) {\n          stream.eat(ch)\n          if (ch == \">\") stream.eat(ch)\n        }\n      }\n      if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n      return ret(\"operator\", \"operator\", stream.current());\n    } else if (wordRE.test(ch)) {\n      stream.eatWhile(wordRE);\n      var word = stream.current()\n      if (state.lastType != \".\") {\n        if (keywords.propertyIsEnumerable(word)) {\n          var kw = keywords[word]\n          return ret(kw.type, kw.style, word)\n        }\n        if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n          return ret(\"async\", \"keyword\", word)\n      }\n      return ret(\"variable\", \"variable\", word)\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n        state.tokenize = tokenBase;\n        return ret(\"jsonld-keyword\", \"meta\");\n      }\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenQuasi(stream, state) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return ret(\"quasi\", \"string-2\", stream.current());\n  }\n\n  var brackets = \"([{}])\";\n  // This is a crude lookahead trick to try and notice that we're\n  // parsing the argument patterns for a fat-arrow function before we\n  // actually hit the arrow token. It only works if the arrow is on\n  // the same line as the arguments and there's no strange noise\n  // (comments) in between. Fallback is to only notice when we hit the\n  // arrow, and not declare the arguments as locals for the arrow\n  // body.\n  function findFatArrow(stream, state) {\n    if (state.fatArrowAt) state.fatArrowAt = null;\n    var arrow = stream.string.indexOf(\"=>\", stream.start);\n    if (arrow < 0) return;\n\n    if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n      var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n      if (m) arrow = m.index\n    }\n\n    var depth = 0, sawSomething = false;\n    for (var pos = arrow - 1; pos >= 0; --pos) {\n      var ch = stream.string.charAt(pos);\n      var bracket = brackets.indexOf(ch);\n      if (bracket >= 0 && bracket < 3) {\n        if (!depth) { ++pos; break; }\n        if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n      } else if (bracket >= 3 && bracket < 6) {\n        ++depth;\n      } else if (wordRE.test(ch)) {\n        sawSomething = true;\n      } else if (/[\"'\\/`]/.test(ch)) {\n        for (;; --pos) {\n          if (pos == 0) return\n          var next = stream.string.charAt(pos - 1)\n          if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n        }\n      } else if (sawSomething && !depth) {\n        ++pos;\n        break;\n      }\n    }\n    if (sawSomething && !depth) state.fatArrowAt = pos;\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n                     \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n  function JSLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n    for (var cx = state.context; cx; cx = cx.prev) {\n      for (var v = cx.vars; v; v = v.next)\n        if (v.name == varname) return true;\n    }\n  }\n\n  function parseJS(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n        return style;\n      }\n    }\n  }\n\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function inList(name, list) {\n    for (var v = list; v; v = v.next) if (v.name == name) return true\n    return false;\n  }\n  function register(varname) {\n    var state = cx.state;\n    cx.marked = \"def\";\n    if (state.context) {\n      if (state.lexical.info == \"var\" && state.context && state.context.block) {\n        // FIXME function decls are also not block scoped\n        var newContext = registerVarScoped(varname, state.context)\n        if (newContext != null) {\n          state.context = newContext\n          return\n        }\n      } else if (!inList(varname, state.localVars)) {\n        state.localVars = new Var(varname, state.localVars)\n        return\n      }\n    }\n    // Fall through means this is global\n    if (parserConfig.globalVars && !inList(varname, state.globalVars))\n      state.globalVars = new Var(varname, state.globalVars)\n  }\n  function registerVarScoped(varname, context) {\n    if (!context) {\n      return null\n    } else if (context.block) {\n      var inner = registerVarScoped(varname, context.prev)\n      if (!inner) return null\n      if (inner == context.prev) return context\n      return new Context(inner, context.vars, true)\n    } else if (inList(varname, context.vars)) {\n      return context\n    } else {\n      return new Context(context.prev, new Var(varname, context.vars), false)\n    }\n  }\n\n  function isModifier(name) {\n    return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n  }\n\n  // Combinators\n\n  function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n  function Var(name, next) { this.name = name; this.next = next }\n\n  var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n  function pushcontext() {\n    cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n    cx.state.localVars = defaultVars\n  }\n  function pushblockcontext() {\n    cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n    cx.state.localVars = null\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars\n    cx.state.context = cx.state.context.prev\n  }\n  popcontext.lex = true\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state, indent = state.indented;\n      if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n      else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n        indent = outer.indented;\n      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function exp(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n      else return cont(exp);\n    };\n    return exp;\n  }\n\n  function statement(type, value) {\n    if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n    if (type == \"debugger\") return cont(expect(\";\"));\n    if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n    if (type == \";\") return cont();\n    if (type == \"if\") {\n      if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n        cx.state.cc.pop()();\n      return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n    }\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), forspec, statement, poplex);\n    if (type == \"class\" || (isTS && value == \"interface\")) {\n      cx.marked = \"keyword\"\n      return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n    }\n    if (type == \"variable\") {\n      if (isTS && value == \"declare\") {\n        cx.marked = \"keyword\"\n        return cont(statement)\n      } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n        cx.marked = \"keyword\"\n        if (value == \"enum\") return cont(enumdef);\n        else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n        else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n      } else if (isTS && value == \"namespace\") {\n        cx.marked = \"keyword\"\n        return cont(pushlex(\"form\"), expression, statement, poplex)\n      } else if (isTS && value == \"abstract\") {\n        cx.marked = \"keyword\"\n        return cont(statement)\n      } else {\n        return cont(pushlex(\"stat\"), maybelabel);\n      }\n    }\n    if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n                                      block, poplex, poplex, popcontext);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n    if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n    if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n    if (type == \"async\") return cont(statement)\n    if (value == \"@\") return cont(expression, statement)\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function maybeCatchBinding(type) {\n    if (type == \"(\") return cont(funarg, expect(\")\"))\n  }\n  function expression(type, value) {\n    return expressionInner(type, value, false);\n  }\n  function expressionNoComma(type, value) {\n    return expressionInner(type, value, true);\n  }\n  function parenExpr(type) {\n    if (type != \"(\") return pass()\n    return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n  }\n  function expressionInner(type, value, noComma) {\n    if (cx.state.fatArrowAt == cx.stream.start) {\n      var body = noComma ? arrowBodyNoComma : arrowBody;\n      if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n      else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n    }\n\n    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n    if (type == \"function\") return cont(functiondef, maybeop);\n    if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n    if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n    if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n    if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n    if (type == \"quasi\") return pass(quasi, maybeop);\n    if (type == \"new\") return cont(maybeTarget(noComma));\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n\n  function maybeoperatorComma(type, value) {\n    if (type == \",\") return cont(maybeexpression);\n    return maybeoperatorNoComma(type, value, false);\n  }\n  function maybeoperatorNoComma(type, value, noComma) {\n    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n    var expr = noComma == false ? expression : expressionNoComma;\n    if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n    if (type == \"operator\") {\n      if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n      if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n        return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n      if (value == \"?\") return cont(expression, expect(\":\"), expr);\n      return cont(expr);\n    }\n    if (type == \"quasi\") { return pass(quasi, me); }\n    if (type == \";\") return;\n    if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n    if (type == \".\") return cont(property, me);\n    if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n    if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n    if (type == \"regexp\") {\n      cx.state.lastType = cx.marked = \"operator\"\n      cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n      return cont(expr)\n    }\n  }\n  function quasi(type, value) {\n    if (type != \"quasi\") return pass();\n    if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n    return cont(expression, continueQuasi);\n  }\n  function continueQuasi(type) {\n    if (type == \"}\") {\n      cx.marked = \"string-2\";\n      cx.state.tokenize = tokenQuasi;\n      return cont(quasi);\n    }\n  }\n  function arrowBody(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expression);\n  }\n  function arrowBodyNoComma(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expressionNoComma);\n  }\n  function maybeTarget(noComma) {\n    return function(type) {\n      if (type == \".\") return cont(noComma ? targetNoComma : target);\n      else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n      else return pass(noComma ? expressionNoComma : expression);\n    };\n  }\n  function target(_, value) {\n    if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n  }\n  function targetNoComma(_, value) {\n    if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n  }\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperatorComma, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type, value) {\n    if (type == \"async\") {\n      cx.marked = \"property\";\n      return cont(objprop);\n    } else if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      if (value == \"get\" || value == \"set\") return cont(getterSetter);\n      var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n      if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n        cx.state.fatArrowAt = cx.stream.pos + m[0].length\n      return cont(afterprop);\n    } else if (type == \"number\" || type == \"string\") {\n      cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n      return cont(afterprop);\n    } else if (type == \"jsonld-keyword\") {\n      return cont(afterprop);\n    } else if (isTS && isModifier(value)) {\n      cx.marked = \"keyword\"\n      return cont(objprop)\n    } else if (type == \"[\") {\n      return cont(expression, maybetype, expect(\"]\"), afterprop);\n    } else if (type == \"spread\") {\n      return cont(expressionNoComma, afterprop);\n    } else if (value == \"*\") {\n      cx.marked = \"keyword\";\n      return cont(objprop);\n    } else if (type == \":\") {\n      return pass(afterprop)\n    }\n  }\n  function getterSetter(type) {\n    if (type != \"variable\") return pass(afterprop);\n    cx.marked = \"property\";\n    return cont(functiondef);\n  }\n  function afterprop(type) {\n    if (type == \":\") return cont(expressionNoComma);\n    if (type == \"(\") return pass(functiondef);\n  }\n  function commasep(what, end, sep) {\n    function proceed(type, value) {\n      if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n        var lex = cx.state.lexical;\n        if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n        return cont(function(type, value) {\n          if (type == end || value == end) return pass()\n          return pass(what)\n        }, proceed);\n      }\n      if (type == end || value == end) return cont();\n      if (sep && sep.indexOf(\";\") > -1) return pass(what)\n      return cont(expect(end));\n    }\n    return function(type, value) {\n      if (type == end || value == end) return cont();\n      return pass(what, proceed);\n    };\n  }\n  function contCommasep(what, end, info) {\n    for (var i = 3; i < arguments.length; i++)\n      cx.cc.push(arguments[i]);\n    return cont(pushlex(end, info), commasep(what, end), poplex);\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function maybetype(type, value) {\n    if (isTS) {\n      if (type == \":\") return cont(typeexpr);\n      if (value == \"?\") return cont(maybetype);\n    }\n  }\n  function maybetypeOrIn(type, value) {\n    if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n  }\n  function mayberettype(type) {\n    if (isTS && type == \":\") {\n      if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n      else return cont(typeexpr)\n    }\n  }\n  function isKW(_, value) {\n    if (value == \"is\") {\n      cx.marked = \"keyword\"\n      return cont()\n    }\n  }\n  function typeexpr(type, value) {\n    if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n      cx.marked = \"keyword\"\n      return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n    }\n    if (type == \"variable\" || value == \"void\") {\n      cx.marked = \"type\"\n      return cont(afterType)\n    }\n    if (value == \"|\" || value == \"&\") return cont(typeexpr)\n    if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n    if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n    if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n    if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n  }\n  function maybeReturnType(type) {\n    if (type == \"=>\") return cont(typeexpr)\n  }\n  function typeprops(type) {\n    if (type.match(/[\\}\\)\\]]/)) return cont()\n    if (type == \",\" || type == \";\") return cont(typeprops)\n    return pass(typeprop, typeprops)\n  }\n  function typeprop(type, value) {\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\"\n      return cont(typeprop)\n    } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n      return cont(typeprop)\n    } else if (type == \":\") {\n      return cont(typeexpr)\n    } else if (type == \"[\") {\n      return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n    } else if (type == \"(\") {\n      return pass(functiondecl, typeprop)\n    } else if (!type.match(/[;\\}\\)\\],]/)) {\n      return cont()\n    }\n  }\n  function typearg(type, value) {\n    if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n    if (type == \":\") return cont(typeexpr)\n    if (type == \"spread\") return cont(typearg)\n    return pass(typeexpr)\n  }\n  function afterType(type, value) {\n    if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n    if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n    if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n    if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n    if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n  }\n  function maybeTypeArgs(_, value) {\n    if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n  }\n  function typeparam() {\n    return pass(typeexpr, maybeTypeDefault)\n  }\n  function maybeTypeDefault(_, value) {\n    if (value == \"=\") return cont(typeexpr)\n  }\n  function vardef(_, value) {\n    if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n    return pass(pattern, maybetype, maybeAssign, vardefCont);\n  }\n  function pattern(type, value) {\n    if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n    if (type == \"variable\") { register(value); return cont(); }\n    if (type == \"spread\") return cont(pattern);\n    if (type == \"[\") return contCommasep(eltpattern, \"]\");\n    if (type == \"{\") return contCommasep(proppattern, \"}\");\n  }\n  function proppattern(type, value) {\n    if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n      register(value);\n      return cont(maybeAssign);\n    }\n    if (type == \"variable\") cx.marked = \"property\";\n    if (type == \"spread\") return cont(pattern);\n    if (type == \"}\") return pass();\n    if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n    return cont(expect(\":\"), pattern, maybeAssign);\n  }\n  function eltpattern() {\n    return pass(pattern, maybeAssign)\n  }\n  function maybeAssign(_type, value) {\n    if (value == \"=\") return cont(expressionNoComma);\n  }\n  function vardefCont(type) {\n    if (type == \",\") return cont(vardef);\n  }\n  function maybeelse(type, value) {\n    if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n  }\n  function forspec(type, value) {\n    if (value == \"await\") return cont(forspec);\n    if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n  }\n  function forspec1(type) {\n    if (type == \"var\") return cont(vardef, forspec2);\n    if (type == \"variable\") return cont(forspec2);\n    return pass(forspec2)\n  }\n  function forspec2(type, value) {\n    if (type == \")\") return cont()\n    if (type == \";\") return cont(forspec2)\n    if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n    return pass(expression, forspec2)\n  }\n  function functiondef(type, value) {\n    if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n    if (type == \"variable\") {register(value); return cont(functiondef);}\n    if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n    if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n  }\n  function functiondecl(type, value) {\n    if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n    if (type == \"variable\") {register(value); return cont(functiondecl);}\n    if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n    if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n  }\n  function typename(type, value) {\n    if (type == \"keyword\" || type == \"variable\") {\n      cx.marked = \"type\"\n      return cont(typename)\n    } else if (value == \"<\") {\n      return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n    }\n  }\n  function funarg(type, value) {\n    if (value == \"@\") cont(expression, funarg)\n    if (type == \"spread\") return cont(funarg);\n    if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n    if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n    return pass(pattern, maybetype, maybeAssign);\n  }\n  function classExpression(type, value) {\n    // Class expressions may have an optional name.\n    if (type == \"variable\") return className(type, value);\n    return classNameAfter(type, value);\n  }\n  function className(type, value) {\n    if (type == \"variable\") {register(value); return cont(classNameAfter);}\n  }\n  function classNameAfter(type, value) {\n    if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n    if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n      if (value == \"implements\") cx.marked = \"keyword\";\n      return cont(isTS ? typeexpr : expression, classNameAfter);\n    }\n    if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n  }\n  function classBody(type, value) {\n    if (type == \"async\" ||\n        (type == \"variable\" &&\n         (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n         cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n      cx.marked = \"keyword\";\n      return cont(classBody);\n    }\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      return cont(classfield, classBody);\n    }\n    if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n    if (type == \"[\")\n      return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n    if (value == \"*\") {\n      cx.marked = \"keyword\";\n      return cont(classBody);\n    }\n    if (isTS && type == \"(\") return pass(functiondecl, classBody)\n    if (type == \";\" || type == \",\") return cont(classBody);\n    if (type == \"}\") return cont();\n    if (value == \"@\") return cont(expression, classBody)\n  }\n  function classfield(type, value) {\n    if (value == \"?\") return cont(classfield)\n    if (type == \":\") return cont(typeexpr, maybeAssign)\n    if (value == \"=\") return cont(expressionNoComma)\n    var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n    return pass(isInterface ? functiondecl : functiondef)\n  }\n  function afterExport(type, value) {\n    if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n    if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n    if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n    return pass(statement);\n  }\n  function exportField(type, value) {\n    if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n    if (type == \"variable\") return pass(expressionNoComma, exportField);\n  }\n  function afterImport(type) {\n    if (type == \"string\") return cont();\n    if (type == \"(\") return pass(expression);\n    if (type == \".\") return pass(maybeoperatorComma);\n    return pass(importSpec, maybeMoreImports, maybeFrom);\n  }\n  function importSpec(type, value) {\n    if (type == \"{\") return contCommasep(importSpec, \"}\");\n    if (type == \"variable\") register(value);\n    if (value == \"*\") cx.marked = \"keyword\";\n    return cont(maybeAs);\n  }\n  function maybeMoreImports(type) {\n    if (type == \",\") return cont(importSpec, maybeMoreImports)\n  }\n  function maybeAs(_type, value) {\n    if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n  }\n  function maybeFrom(_type, value) {\n    if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n  }\n  function arrayLiteral(type) {\n    if (type == \"]\") return cont();\n    return pass(commasep(expressionNoComma, \"]\"));\n  }\n  function enumdef() {\n    return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n  }\n  function enummember() {\n    return pass(pattern, maybeAssign);\n  }\n\n  function isContinuedStatement(state, textAfter) {\n    return state.lastType == \"operator\" || state.lastType == \",\" ||\n      isOperatorChar.test(textAfter.charAt(0)) ||\n      /[,.]/.test(textAfter.charAt(0));\n  }\n\n  function expressionAllowed(stream, state, backUp) {\n    return state.tokenize == tokenBase &&\n      /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n      (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: tokenBase,\n        lastType: \"sof\",\n        cc: [],\n        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n        context: parserConfig.localVars && new Context(null, null, false),\n        indented: basecolumn || 0\n      };\n      if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n        state.globalVars = parserConfig.globalVars;\n      return state;\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n        findFatArrow(stream, state);\n      }\n      if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n      return parseJS(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n      // Kludge to prevent 'maybelse' from blocking lexical scope pops\n      if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n        var c = state.cc[i];\n        if (c == poplex) lexical = lexical.prev;\n        else if (c != maybeelse) break;\n      }\n      while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n             (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n                                   (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n                                   !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n        lexical = lexical.prev;\n      if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n        lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n\n      if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"form\") return lexical.indented + indentUnit;\n      else if (type == \"stat\")\n        return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n      else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n    blockCommentStart: jsonMode ? null : \"/*\",\n    blockCommentEnd: jsonMode ? null : \"*/\",\n    blockCommentContinue: jsonMode ? null : \" * \",\n    lineComment: jsonMode ? null : \"//\",\n    fold: \"brace\",\n    closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n    helperType: jsonMode ? \"json\" : \"javascript\",\n    jsonldMode: jsonldMode,\n    jsonMode: jsonMode,\n\n    expressionAllowed: expressionAllowed,\n\n    skipExpression: function(state) {\n      var top = state.cc[state.cc.length - 1]\n      if (top == expression || top == expressionNoComma) state.cc.pop()\n    }\n  };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/jinja2/jinja2.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"jinja2\", function() {\n    var keywords = [\"and\", \"as\", \"block\", \"endblock\", \"by\", \"cycle\", \"debug\", \"else\", \"elif\",\n      \"extends\", \"filter\", \"endfilter\", \"firstof\", \"for\",\n      \"endfor\", \"if\", \"endif\", \"ifchanged\", \"endifchanged\",\n      \"ifequal\", \"endifequal\", \"ifnotequal\",\n      \"endifnotequal\", \"in\", \"include\", \"load\", \"not\", \"now\", \"or\",\n      \"parsed\", \"regroup\", \"reversed\", \"spaceless\",\n      \"endspaceless\", \"ssi\", \"templatetag\", \"openblock\",\n      \"closeblock\", \"openvariable\", \"closevariable\",\n      \"openbrace\", \"closebrace\", \"opencomment\",\n      \"closecomment\", \"widthratio\", \"url\", \"with\", \"endwith\",\n      \"get_current_language\", \"trans\", \"endtrans\", \"noop\", \"blocktrans\",\n      \"endblocktrans\", \"get_available_languages\",\n      \"get_current_language_bidi\", \"plural\"],\n    operator = /^[+\\-*&%=<>!?|~^]/,\n    sign = /^[:\\[\\(\\{]/,\n    atom = [\"true\", \"false\"],\n    number = /^(\\d[+\\-\\*\\/])?\\d+(\\.\\d+)?/;\n\n    keywords = new RegExp(\"((\" + keywords.join(\")|(\") + \"))\\\\b\");\n    atom = new RegExp(\"((\" + atom.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      var ch = stream.peek();\n\n      //Comment\n      if (state.incomment) {\n        if(!stream.skipTo(\"#}\")) {\n          stream.skipToEnd();\n        } else {\n          stream.eatWhile(/\\#|}/);\n          state.incomment = false;\n        }\n        return \"comment\";\n      //Tag\n      } else if (state.intag) {\n        //After operator\n        if(state.operator) {\n          state.operator = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n        //After sign\n        if(state.sign) {\n          state.sign = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n\n        if(state.instring) {\n          if(ch == state.instring) {\n            state.instring = false;\n          }\n          stream.next();\n          return \"string\";\n        } else if(ch == \"'\" || ch == '\"') {\n          state.instring = ch;\n          stream.next();\n          return \"string\";\n        } else if(stream.match(state.intag + \"}\") || stream.eat(\"-\") && stream.match(state.intag + \"}\")) {\n          state.intag = false;\n          return \"tag\";\n        } else if(stream.match(operator)) {\n          state.operator = true;\n          return \"operator\";\n        } else if(stream.match(sign)) {\n          state.sign = true;\n        } else {\n          if(stream.eat(\" \") || stream.sol()) {\n            if(stream.match(keywords)) {\n              return \"keyword\";\n            }\n            if(stream.match(atom)) {\n              return \"atom\";\n            }\n            if(stream.match(number)) {\n              return \"number\";\n            }\n            if(stream.sol()) {\n              stream.next();\n            }\n          } else {\n            stream.next();\n          }\n\n        }\n        return \"variable\";\n      } else if (stream.eat(\"{\")) {\n        if (stream.eat(\"#\")) {\n          state.incomment = true;\n          if(!stream.skipTo(\"#}\")) {\n            stream.skipToEnd();\n          } else {\n            stream.eatWhile(/\\#|}/);\n            state.incomment = false;\n          }\n          return \"comment\";\n        //Open tag\n        } else if (ch = stream.eat(/\\{|%/)) {\n          //Cache close tag\n          state.intag = ch;\n          if(ch == \"{\") {\n            state.intag = \"}\";\n          }\n          stream.eat(\"-\");\n          return \"tag\";\n        }\n      }\n      stream.next();\n    };\n\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      },\n      blockCommentStart: \"{#\",\n      blockCommentEnd: \"#}\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/jinja2\", \"jinja2\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/jsx/jsx.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"))\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\"], mod)\n  else // Plain browser env\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n\n  // Depth means the amount of open braces in JS context, in XML\n  // context 0 means not in tag, 1 means in tag, and 2 means in tag\n  // and js block comment.\n  function Context(state, mode, depth, prev) {\n    this.state = state; this.mode = mode; this.depth = depth; this.prev = prev\n  }\n\n  function copyContext(context) {\n    return new Context(CodeMirror.copyState(context.mode, context.state),\n                       context.mode,\n                       context.depth,\n                       context.prev && copyContext(context.prev))\n  }\n\n  CodeMirror.defineMode(\"jsx\", function(config, modeConfig) {\n    var xmlMode = CodeMirror.getMode(config, {name: \"xml\", allowMissing: true, multilineTagIndentPastTag: false, allowMissingTagName: true})\n    var jsMode = CodeMirror.getMode(config, modeConfig && modeConfig.base || \"javascript\")\n\n    function flatXMLIndent(state) {\n      var tagName = state.tagName\n      state.tagName = null\n      var result = xmlMode.indent(state, \"\", \"\")\n      state.tagName = tagName\n      return result\n    }\n\n    function token(stream, state) {\n      if (state.context.mode == xmlMode)\n        return xmlToken(stream, state, state.context)\n      else\n        return jsToken(stream, state, state.context)\n    }\n\n    function xmlToken(stream, state, cx) {\n      if (cx.depth == 2) { // Inside a JS /* */ comment\n        if (stream.match(/^.*?\\*\\//)) cx.depth = 1\n        else stream.skipToEnd()\n        return \"comment\"\n      }\n\n      if (stream.peek() == \"{\") {\n        xmlMode.skipAttribute(cx.state)\n\n        var indent = flatXMLIndent(cx.state), xmlContext = cx.state.context\n        // If JS starts on same line as tag\n        if (xmlContext && stream.match(/^[^>]*>\\s*$/, false)) {\n          while (xmlContext.prev && !xmlContext.startOfLine)\n            xmlContext = xmlContext.prev\n          // If tag starts the line, use XML indentation level\n          if (xmlContext.startOfLine) indent -= config.indentUnit\n          // Else use JS indentation level\n          else if (cx.prev.state.lexical) indent = cx.prev.state.lexical.indented\n        // Else if inside of tag\n        } else if (cx.depth == 1) {\n          indent += config.indentUnit\n        }\n\n        state.context = new Context(CodeMirror.startState(jsMode, indent),\n                                    jsMode, 0, state.context)\n        return null\n      }\n\n      if (cx.depth == 1) { // Inside of tag\n        if (stream.peek() == \"<\") { // Tag inside of tag\n          xmlMode.skipAttribute(cx.state)\n          state.context = new Context(CodeMirror.startState(xmlMode, flatXMLIndent(cx.state)),\n                                      xmlMode, 0, state.context)\n          return null\n        } else if (stream.match(\"//\")) {\n          stream.skipToEnd()\n          return \"comment\"\n        } else if (stream.match(\"/*\")) {\n          cx.depth = 2\n          return token(stream, state)\n        }\n      }\n\n      var style = xmlMode.token(stream, cx.state), cur = stream.current(), stop\n      if (/\\btag\\b/.test(style)) {\n        if (/>$/.test(cur)) {\n          if (cx.state.context) cx.depth = 0\n          else state.context = state.context.prev\n        } else if (/^</.test(cur)) {\n          cx.depth = 1\n        }\n      } else if (!style && (stop = cur.indexOf(\"{\")) > -1) {\n        stream.backUp(cur.length - stop)\n      }\n      return style\n    }\n\n    function jsToken(stream, state, cx) {\n      if (stream.peek() == \"<\" && jsMode.expressionAllowed(stream, cx.state)) {\n        jsMode.skipExpression(cx.state)\n        state.context = new Context(CodeMirror.startState(xmlMode, jsMode.indent(cx.state, \"\", \"\")),\n                                    xmlMode, 0, state.context)\n        return null\n      }\n\n      var style = jsMode.token(stream, cx.state)\n      if (!style && cx.depth != null) {\n        var cur = stream.current()\n        if (cur == \"{\") {\n          cx.depth++\n        } else if (cur == \"}\") {\n          if (--cx.depth == 0) state.context = state.context.prev\n        }\n      }\n      return style\n    }\n\n    return {\n      startState: function() {\n        return {context: new Context(CodeMirror.startState(jsMode), jsMode)}\n      },\n\n      copyState: function(state) {\n        return {context: copyContext(state.context)}\n      },\n\n      token: token,\n\n      indent: function(state, textAfter, fullLine) {\n        return state.context.mode.indent(state.context.state, textAfter, fullLine)\n      },\n\n      innerMode: function(state) {\n        return state.context\n      }\n    }\n  }, \"xml\", \"javascript\")\n\n  CodeMirror.defineMIME(\"text/jsx\", \"jsx\")\n  CodeMirror.defineMIME(\"text/typescript-jsx\", {name: \"jsx\", base: {name: \"javascript\", typescript: true}})\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/julia/julia.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"julia\", function(config, parserConf) {\n  function wordRegexp(words, end) {\n    if (typeof end === \"undefined\") { end = \"\\\\b\"; }\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\" + end);\n  }\n\n  var octChar = \"\\\\\\\\[0-7]{1,3}\";\n  var hexChar = \"\\\\\\\\x[A-Fa-f0-9]{1,2}\";\n  var sChar = \"\\\\\\\\[abefnrtv0%?'\\\"\\\\\\\\]\";\n  var uChar = \"([^\\\\u0027\\\\u005C\\\\uD800-\\\\uDFFF]|[\\\\uD800-\\\\uDFFF][\\\\uDC00-\\\\uDFFF])\";\n\n  var operators = parserConf.operators || wordRegexp([\n        \"[<>]:\", \"[<>=]=\", \"<<=?\", \">>>?=?\", \"=>\", \"->\", \"\\\\/\\\\/\",\n        \"[\\\\\\\\%*+\\\\-<>!=\\\\/^|&\\\\u00F7\\\\u22BB]=?\", \"\\\\?\", \"\\\\$\", \"~\", \":\",\n        \"\\\\u00D7\", \"\\\\u2208\", \"\\\\u2209\", \"\\\\u220B\", \"\\\\u220C\", \"\\\\u2218\",\n        \"\\\\u221A\", \"\\\\u221B\", \"\\\\u2229\", \"\\\\u222A\", \"\\\\u2260\", \"\\\\u2264\",\n        \"\\\\u2265\", \"\\\\u2286\", \"\\\\u2288\", \"\\\\u228A\", \"\\\\u22C5\",\n        \"\\\\b(in|isa)\\\\b(?!\\.?\\\\()\"], \"\");\n  var delimiters = parserConf.delimiters || /^[;,()[\\]{}]/;\n  var identifiers = parserConf.identifiers ||\n        /^[_A-Za-z\\u00A1-\\u2217\\u2219-\\uFFFF][\\w\\u00A1-\\u2217\\u2219-\\uFFFF]*!*/;\n\n  var chars = wordRegexp([octChar, hexChar, sChar, uChar], \"'\");\n\n  var openersList = [\"begin\", \"function\", \"type\", \"struct\", \"immutable\", \"let\",\n        \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\",\n        \"finally\", \"catch\", \"do\"];\n\n  var closersList = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n\n  var keywordsList = [\"if\", \"else\", \"elseif\", \"while\", \"for\", \"begin\", \"let\",\n        \"end\", \"do\", \"try\", \"catch\", \"finally\", \"return\", \"break\", \"continue\",\n        \"global\", \"local\", \"const\", \"export\", \"import\", \"importall\", \"using\",\n        \"function\", \"where\", \"macro\", \"module\", \"baremodule\", \"struct\", \"type\",\n        \"mutable\", \"immutable\", \"quote\", \"typealias\", \"abstract\", \"primitive\",\n        \"bitstype\"];\n\n  var builtinsList = [\"true\", \"false\", \"nothing\", \"NaN\", \"Inf\"];\n\n  CodeMirror.registerHelper(\"hintWords\", \"julia\", keywordsList.concat(builtinsList));\n\n  var openers = wordRegexp(openersList);\n  var closers = wordRegexp(closersList);\n  var keywords = wordRegexp(keywordsList);\n  var builtins = wordRegexp(builtinsList);\n\n  var macro = /^@[_A-Za-z][\\w]*/;\n  var symbol = /^:[_A-Za-z\\u00A1-\\uFFFF][\\w\\u00A1-\\uFFFF]*!*/;\n  var stringPrefixes = /^(`|([_A-Za-z\\u00A1-\\uFFFF]*\"(\"\")?))/;\n\n  function inArray(state) {\n    return (state.nestedArrays > 0);\n  }\n\n  function inGenerator(state) {\n    return (state.nestedGenerators > 0);\n  }\n\n  function currentScope(state, n) {\n    if (typeof(n) === \"undefined\") { n = 0; }\n    if (state.scopes.length <= n) {\n      return null;\n    }\n    return state.scopes[state.scopes.length - (n + 1)];\n  }\n\n  // tokenizers\n  function tokenBase(stream, state) {\n    // Handle multiline comments\n    if (stream.match('#=', false)) {\n      state.tokenize = tokenComment;\n      return state.tokenize(stream, state);\n    }\n\n    // Handle scope changes\n    var leavingExpr = state.leavingExpr;\n    if (stream.sol()) {\n      leavingExpr = false;\n    }\n    state.leavingExpr = false;\n\n    if (leavingExpr) {\n      if (stream.match(/^'+/)) {\n        return \"operator\";\n      }\n    }\n\n    if (stream.match(/\\.{4,}/)) {\n      return \"error\";\n    } else if (stream.match(/\\.{1,3}/)) {\n      return \"operator\";\n    }\n\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n\n    // Handle single line comments\n    if (ch === '#') {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    if (ch === '[') {\n      state.scopes.push('[');\n      state.nestedArrays++;\n    }\n\n    if (ch === '(') {\n      state.scopes.push('(');\n      state.nestedGenerators++;\n    }\n\n    if (inArray(state) && ch === ']') {\n      while (state.scopes.length && currentScope(state) !== \"[\") { state.scopes.pop(); }\n      state.scopes.pop();\n      state.nestedArrays--;\n      state.leavingExpr = true;\n    }\n\n    if (inGenerator(state) && ch === ')') {\n      while (state.scopes.length && currentScope(state) !== \"(\") { state.scopes.pop(); }\n      state.scopes.pop();\n      state.nestedGenerators--;\n      state.leavingExpr = true;\n    }\n\n    if (inArray(state)) {\n      if (state.lastToken == \"end\" && stream.match(':')) {\n        return \"operator\";\n      }\n      if (stream.match('end')) {\n        return \"number\";\n      }\n    }\n\n    var match;\n    if (match = stream.match(openers, false)) {\n      state.scopes.push(match[0]);\n    }\n\n    if (stream.match(closers, false)) {\n      state.scopes.pop();\n    }\n\n    // Handle type annotations\n    if (stream.match(/^::(?![:\\$])/)) {\n      state.tokenize = tokenAnnotation;\n      return state.tokenize(stream, state);\n    }\n\n    // Handle symbols\n    if (!leavingExpr && stream.match(symbol) ||\n        stream.match(/:([<>]:|<<=?|>>>?=?|->|\\/\\/|\\.{2,3}|[\\.\\\\%*+\\-<>!\\/^|&]=?|[~\\?\\$])/)) {\n      return \"builtin\";\n    }\n\n    // Handle parametric types\n    //if (stream.match(/^{[^}]*}(?=\\()/)) {\n    //  return \"builtin\";\n    //}\n\n    // Handle operators and Delimiters\n    if (stream.match(operators)) {\n      return \"operator\";\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^\\.?\\d/, false)) {\n      var imMatcher = RegExp(/^im\\b/);\n      var numberLiteral = false;\n      if (stream.match(/^0x\\.[0-9a-f_]+p[\\+\\-]?[_\\d]+/i)) { numberLiteral = true; }\n      // Integers\n      if (stream.match(/^0x[0-9a-f_]+/i)) { numberLiteral = true; } // Hex\n      if (stream.match(/^0b[01_]+/i)) { numberLiteral = true; } // Binary\n      if (stream.match(/^0o[0-7_]+/i)) { numberLiteral = true; } // Octal\n      // Floats\n      if (stream.match(/^(?:(?:\\d[_\\d]*)?\\.(?!\\.)(?:\\d[_\\d]*)?|\\d[_\\d]*\\.(?!\\.)(?:\\d[_\\d]*))?([Eef][\\+\\-]?[_\\d]+)?/i)) { numberLiteral = true; }\n      if (stream.match(/^\\d[_\\d]*(e[\\+\\-]?\\d+)?/i)) { numberLiteral = true; } // Decimal\n      if (numberLiteral) {\n          // Integer literals may be \"long\"\n          stream.match(imMatcher);\n          state.leavingExpr = true;\n          return \"number\";\n      }\n    }\n\n    // Handle Chars\n    if (stream.match('\\'')) {\n      state.tokenize = tokenChar;\n      return state.tokenize(stream, state);\n    }\n\n    // Handle Strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenStringFactory(stream.current());\n      return state.tokenize(stream, state);\n    }\n\n    if (stream.match(macro)) {\n      return \"meta\";\n    }\n\n    if (stream.match(delimiters)) {\n      return null;\n    }\n\n    if (stream.match(keywords)) {\n      return \"keyword\";\n    }\n\n    if (stream.match(builtins)) {\n      return \"builtin\";\n    }\n\n    var isDefinition = state.isDefinition || state.lastToken == \"function\" ||\n                       state.lastToken == \"macro\" || state.lastToken == \"type\" ||\n                       state.lastToken == \"struct\" || state.lastToken == \"immutable\";\n\n    if (stream.match(identifiers)) {\n      if (isDefinition) {\n        if (stream.peek() === '.') {\n          state.isDefinition = true;\n          return \"variable\";\n        }\n        state.isDefinition = false;\n        return \"def\";\n      }\n      state.leavingExpr = true;\n      return \"variable\";\n    }\n\n    // Handle non-detected items\n    stream.next();\n    return \"error\";\n  }\n\n  function tokenAnnotation(stream, state) {\n    stream.match(/.*?(?=[,;{}()=\\s]|$)/);\n    if (stream.match('{')) {\n      state.nestedParameters++;\n    } else if (stream.match('}') && state.nestedParameters > 0) {\n      state.nestedParameters--;\n    }\n    if (state.nestedParameters > 0) {\n      stream.match(/.*?(?={|})/) || stream.next();\n    } else if (state.nestedParameters == 0) {\n      state.tokenize = tokenBase;\n    }\n    return \"builtin\";\n  }\n\n  function tokenComment(stream, state) {\n    if (stream.match('#=')) {\n      state.nestedComments++;\n    }\n    if (!stream.match(/.*?(?=(#=|=#))/)) {\n      stream.skipToEnd();\n    }\n    if (stream.match('=#')) {\n      state.nestedComments--;\n      if (state.nestedComments == 0)\n        state.tokenize = tokenBase;\n    }\n    return \"comment\";\n  }\n\n  function tokenChar(stream, state) {\n    var isChar = false, match;\n    if (stream.match(chars)) {\n      isChar = true;\n    } else if (match = stream.match(/\\\\u([a-f0-9]{1,4})(?=')/i)) {\n      var value = parseInt(match[1], 16);\n      if (value <= 55295 || value >= 57344) { // (U+0,U+D7FF), (U+E000,U+FFFF)\n        isChar = true;\n        stream.next();\n      }\n    } else if (match = stream.match(/\\\\U([A-Fa-f0-9]{5,8})(?=')/)) {\n      var value = parseInt(match[1], 16);\n      if (value <= 1114111) { // U+10FFFF\n        isChar = true;\n        stream.next();\n      }\n    }\n    if (isChar) {\n      state.leavingExpr = true;\n      state.tokenize = tokenBase;\n      return \"string\";\n    }\n    if (!stream.match(/^[^']+(?=')/)) { stream.skipToEnd(); }\n    if (stream.match('\\'')) { state.tokenize = tokenBase; }\n    return \"error\";\n  }\n\n  function tokenStringFactory(delimiter) {\n    if (delimiter.substr(-3) === '\"\"\"') {\n      delimiter = '\"\"\"';\n    } else if (delimiter.substr(-1) === '\"') {\n      delimiter = '\"';\n    }\n    function tokenString(stream, state) {\n      if (stream.eat('\\\\')) {\n        stream.next();\n      } else if (stream.match(delimiter)) {\n        state.tokenize = tokenBase;\n        state.leavingExpr = true;\n        return \"string\";\n      } else {\n        stream.eat(/[`\"]/);\n      }\n      stream.eatWhile(/[^\\\\`\"]/);\n      return \"string\";\n    }\n    return tokenString;\n  }\n\n  var external = {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        scopes: [],\n        lastToken: null,\n        leavingExpr: false,\n        isDefinition: false,\n        nestedArrays: 0,\n        nestedComments: 0,\n        nestedGenerators: 0,\n        nestedParameters: 0,\n        firstParenPos: -1\n      };\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      var current = stream.current();\n\n      if (current && style) {\n        state.lastToken = current;\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var delta = 0;\n      if ( textAfter === ']' || textAfter === ')' || /^end\\b/.test(textAfter) ||\n           /^else/.test(textAfter) || /^catch\\b/.test(textAfter) || /^elseif\\b/.test(textAfter) ||\n           /^finally/.test(textAfter) ) {\n        delta = -1;\n      }\n      return (state.scopes.length + delta) * config.indentUnit;\n    },\n\n    electricInput: /\\b(end|else|catch|finally)\\b/,\n    blockCommentStart: \"#=\",\n    blockCommentEnd: \"=#\",\n    lineComment: \"#\",\n    closeBrackets: \"()[]{}\\\"\\\"\",\n    fold: \"indent\"\n  };\n  return external;\n});\n\n\nCodeMirror.defineMIME(\"text/x-julia\", \"julia\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/livescript/livescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/duralog/CodeMirror\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode('livescript', function(){\n    var tokenBase = function(stream, state) {\n      var next_rule = state.next || \"start\";\n      if (next_rule) {\n        state.next = state.next;\n        var nr = Rules[next_rule];\n        if (nr.splice) {\n          for (var i$ = 0; i$ < nr.length; ++i$) {\n            var r = nr[i$];\n            if (r.regex && stream.match(r.regex)) {\n              state.next = r.next || state.next;\n              return r.token;\n            }\n          }\n          stream.next();\n          return 'error';\n        }\n        if (stream.match(r = Rules[next_rule])) {\n          if (r.regex && stream.match(r.regex)) {\n            state.next = r.next;\n            return r.token;\n          } else {\n            stream.next();\n            return 'error';\n          }\n        }\n      }\n      stream.next();\n      return 'error';\n    };\n    var external = {\n      startState: function(){\n        return {\n          next: 'start',\n          lastToken: {style: null, indent: 0, content: \"\"}\n        };\n      },\n      token: function(stream, state){\n        while (stream.pos == stream.start)\n          var style = tokenBase(stream, state);\n        state.lastToken = {\n          style: style,\n          indent: stream.indentation(),\n          content: stream.current()\n        };\n        return style.replace(/\\./g, ' ');\n      },\n      indent: function(state){\n        var indentation = state.lastToken.indent;\n        if (state.lastToken.content.match(indenter)) {\n          indentation += 2;\n        }\n        return indentation;\n      }\n    };\n    return external;\n  });\n\n  var identifier = '(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*';\n  var indenter = RegExp('(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*' + identifier + ')?))\\\\s*$');\n  var keywordend = '(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))';\n  var stringfill = {\n    token: 'string',\n    regex: '.+'\n  };\n  var Rules = {\n    start: [\n      {\n        token: 'comment.doc',\n        regex: '/\\\\*',\n        next: 'comment'\n      }, {\n        token: 'comment',\n        regex: '#.*'\n      }, {\n        token: 'keyword',\n        regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend\n      }, {\n        token: 'constant.language',\n        regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend\n      }, {\n        token: 'invalid.illegal',\n        regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend\n      }, {\n        token: 'language.support.class',\n        regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend\n      }, {\n        token: 'language.support.function',\n        regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend\n      }, {\n        token: 'variable.language',\n        regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend\n      }, {\n        token: 'identifier',\n        regex: identifier + '\\\\s*:(?![:=])'\n      }, {\n        token: 'variable',\n        regex: identifier\n      }, {\n        token: 'keyword.operator',\n        regex: '(?:\\\\.{3}|\\\\s+\\\\?)'\n      }, {\n        token: 'keyword.variable',\n        regex: '(?:@+|::|\\\\.\\\\.)',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\.\\\\s*',\n        next: 'key'\n      }, {\n        token: 'string',\n        regex: '\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*'\n      }, {\n        token: 'string.doc',\n        regex: '\\'\\'\\'',\n        next: 'qdoc'\n      }, {\n        token: 'string.doc',\n        regex: '\"\"\"',\n        next: 'qqdoc'\n      }, {\n        token: 'string',\n        regex: '\\'',\n        next: 'qstring'\n      }, {\n        token: 'string',\n        regex: '\"',\n        next: 'qqstring'\n      }, {\n        token: 'string',\n        regex: '`',\n        next: 'js'\n      }, {\n        token: 'string',\n        regex: '<\\\\[',\n        next: 'words'\n      }, {\n        token: 'string.regex',\n        regex: '//',\n        next: 'heregex'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}',\n        next: 'key'\n      }, {\n        token: 'constant.numeric',\n        regex: '(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)'\n      }, {\n        token: 'lparen',\n        regex: '[({[]'\n      }, {\n        token: 'rparen',\n        regex: '[)}\\\\]]',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\S+'\n      }, {\n        token: 'text',\n        regex: '\\\\s+'\n      }\n    ],\n    heregex: [\n      {\n        token: 'string.regex',\n        regex: '.*?//[gimy$?]{0,4}',\n        next: 'start'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\s*#{'\n      }, {\n        token: 'comment.regex',\n        regex: '\\\\s+(?:#.*)?'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\S+'\n      }\n    ],\n    key: [\n      {\n        token: 'keyword.operator',\n        regex: '[.?@!]+'\n      }, {\n        token: 'identifier',\n        regex: identifier,\n        next: 'start'\n      }, {\n        token: 'text',\n        regex: '',\n        next: 'start'\n      }\n    ],\n    comment: [\n      {\n        token: 'comment.doc',\n        regex: '.*?\\\\*/',\n        next: 'start'\n      }, {\n        token: 'comment.doc',\n        regex: '.+'\n      }\n    ],\n    qdoc: [\n      {\n        token: 'string',\n        regex: \".*?'''\",\n        next: 'key'\n      }, stringfill\n    ],\n    qqdoc: [\n      {\n        token: 'string',\n        regex: '.*?\"\"\"',\n        next: 'key'\n      }, stringfill\n    ],\n    qstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\\\']*)*\\'',\n        next: 'key'\n      }, stringfill\n    ],\n    qqstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',\n        next: 'key'\n      }, stringfill\n    ],\n    js: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`',\n        next: 'key'\n      }, stringfill\n    ],\n    words: [\n      {\n        token: 'string',\n        regex: '.*?\\\\]>',\n        next: 'key'\n      }, stringfill\n    ]\n  };\n  for (var idx in Rules) {\n    var r = Rules[idx];\n    if (r.splice) {\n      for (var i = 0, len = r.length; i < len; ++i) {\n        var rr = r[i];\n        if (typeof rr.regex === 'string') {\n          Rules[idx][i].regex = new RegExp('^' + rr.regex);\n        }\n      }\n    } else if (typeof rr.regex === 'string') {\n      Rules[idx].regex = new RegExp('^' + r.regex);\n    }\n  }\n\n  CodeMirror.defineMIME('text/x-livescript', 'livescript');\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/lua/lua.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's\n// CodeMirror 1 mode.\n// highlights keywords, strings, comments (no leveling supported! (\"[==[\")), tokens, basic indenting\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"lua\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  function prefixRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")\", \"i\");\n  }\n  function wordRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var specials = wordRE(parserConfig.specials || []);\n\n  // long list of standard functions from lua manual\n  var builtins = wordRE([\n    \"_G\",\"_VERSION\",\"assert\",\"collectgarbage\",\"dofile\",\"error\",\"getfenv\",\"getmetatable\",\"ipairs\",\"load\",\n    \"loadfile\",\"loadstring\",\"module\",\"next\",\"pairs\",\"pcall\",\"print\",\"rawequal\",\"rawget\",\"rawset\",\"require\",\n    \"select\",\"setfenv\",\"setmetatable\",\"tonumber\",\"tostring\",\"type\",\"unpack\",\"xpcall\",\n\n    \"coroutine.create\",\"coroutine.resume\",\"coroutine.running\",\"coroutine.status\",\"coroutine.wrap\",\"coroutine.yield\",\n\n    \"debug.debug\",\"debug.getfenv\",\"debug.gethook\",\"debug.getinfo\",\"debug.getlocal\",\"debug.getmetatable\",\n    \"debug.getregistry\",\"debug.getupvalue\",\"debug.setfenv\",\"debug.sethook\",\"debug.setlocal\",\"debug.setmetatable\",\n    \"debug.setupvalue\",\"debug.traceback\",\n\n    \"close\",\"flush\",\"lines\",\"read\",\"seek\",\"setvbuf\",\"write\",\n\n    \"io.close\",\"io.flush\",\"io.input\",\"io.lines\",\"io.open\",\"io.output\",\"io.popen\",\"io.read\",\"io.stderr\",\"io.stdin\",\n    \"io.stdout\",\"io.tmpfile\",\"io.type\",\"io.write\",\n\n    \"math.abs\",\"math.acos\",\"math.asin\",\"math.atan\",\"math.atan2\",\"math.ceil\",\"math.cos\",\"math.cosh\",\"math.deg\",\n    \"math.exp\",\"math.floor\",\"math.fmod\",\"math.frexp\",\"math.huge\",\"math.ldexp\",\"math.log\",\"math.log10\",\"math.max\",\n    \"math.min\",\"math.modf\",\"math.pi\",\"math.pow\",\"math.rad\",\"math.random\",\"math.randomseed\",\"math.sin\",\"math.sinh\",\n    \"math.sqrt\",\"math.tan\",\"math.tanh\",\n\n    \"os.clock\",\"os.date\",\"os.difftime\",\"os.execute\",\"os.exit\",\"os.getenv\",\"os.remove\",\"os.rename\",\"os.setlocale\",\n    \"os.time\",\"os.tmpname\",\n\n    \"package.cpath\",\"package.loaded\",\"package.loaders\",\"package.loadlib\",\"package.path\",\"package.preload\",\n    \"package.seeall\",\n\n    \"string.byte\",\"string.char\",\"string.dump\",\"string.find\",\"string.format\",\"string.gmatch\",\"string.gsub\",\n    \"string.len\",\"string.lower\",\"string.match\",\"string.rep\",\"string.reverse\",\"string.sub\",\"string.upper\",\n\n    \"table.concat\",\"table.insert\",\"table.maxn\",\"table.remove\",\"table.sort\"\n  ]);\n  var keywords = wordRE([\"and\",\"break\",\"elseif\",\"false\",\"nil\",\"not\",\"or\",\"return\",\n                         \"true\",\"function\", \"end\", \"if\", \"then\", \"else\", \"do\",\n                         \"while\", \"repeat\", \"until\", \"for\", \"in\", \"local\" ]);\n\n  var indentTokens = wordRE([\"function\", \"if\",\"repeat\",\"do\", \"\\\\(\", \"{\"]);\n  var dedentTokens = wordRE([\"end\", \"until\", \"\\\\)\", \"}\"]);\n  var dedentPartial = prefixRE([\"end\", \"until\", \"\\\\)\", \"}\", \"else\", \"elseif\"]);\n\n  function readBracket(stream) {\n    var level = 0;\n    while (stream.eat(\"=\")) ++level;\n    stream.eat(\"[\");\n    return level;\n  }\n\n  function normal(stream, state) {\n    var ch = stream.next();\n    if (ch == \"-\" && stream.eat(\"-\")) {\n      if (stream.eat(\"[\") && stream.eat(\"[\"))\n        return (state.cur = bracketed(readBracket(stream), \"comment\"))(stream, state);\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == \"\\\"\" || ch == \"'\")\n      return (state.cur = string(ch))(stream, state);\n    if (ch == \"[\" && /[\\[=]/.test(stream.peek()))\n      return (state.cur = bracketed(readBracket(stream), \"string\"))(stream, state);\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return \"number\";\n    }\n    if (/[\\w_]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-_.]/);\n      return \"variable\";\n    }\n    return null;\n  }\n\n  function bracketed(level, style) {\n    return function(stream, state) {\n      var curlev = null, ch;\n      while ((ch = stream.next()) != null) {\n        if (curlev == null) {if (ch == \"]\") curlev = 0;}\n        else if (ch == \"=\") ++curlev;\n        else if (ch == \"]\" && curlev == level) { state.cur = normal; break; }\n        else curlev = null;\n      }\n      return style;\n    };\n  }\n\n  function string(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.cur = normal;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(basecol) {\n      return {basecol: basecol || 0, indentDepth: 0, cur: normal};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.cur(stream, state);\n      var word = stream.current();\n      if (style == \"variable\") {\n        if (keywords.test(word)) style = \"keyword\";\n        else if (builtins.test(word)) style = \"builtin\";\n        else if (specials.test(word)) style = \"variable-2\";\n      }\n      if ((style != \"comment\") && (style != \"string\")){\n        if (indentTokens.test(word)) ++state.indentDepth;\n        else if (dedentTokens.test(word)) --state.indentDepth;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var closing = dedentPartial.test(textAfter);\n      return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));\n    },\n\n    electricInput: /^\\s*(?:end|until|else|\\)|\\})$/,\n    lineComment: \"--\",\n    blockCommentStart: \"--[[\",\n    blockCommentEnd: \"]]\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-lua\", \"lua\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/markdown/markdown.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n  var htmlMode = CodeMirror.getMode(cmCfg, \"text/html\");\n  var htmlModeMissing = htmlMode.name == \"null\"\n\n  function getMode(name) {\n    if (CodeMirror.findModeByName) {\n      var found = CodeMirror.findModeByName(name);\n      if (found) name = found.mime || found.mimes[0];\n    }\n    var mode = CodeMirror.getMode(cmCfg, name);\n    return mode.name == \"null\" ? null : mode;\n  }\n\n  // Should characters that affect highlighting be highlighted separate?\n  // Does not include characters that will be output (such as `1.` and `-` for lists)\n  if (modeCfg.highlightFormatting === undefined)\n    modeCfg.highlightFormatting = false;\n\n  // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n  // Excess `>` will emit `error` token.\n  if (modeCfg.maxBlockquoteDepth === undefined)\n    modeCfg.maxBlockquoteDepth = 0;\n\n  // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n  if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n  // Turn on strikethrough syntax\n  if (modeCfg.strikethrough === undefined)\n    modeCfg.strikethrough = false;\n\n  if (modeCfg.emoji === undefined)\n    modeCfg.emoji = false;\n\n  if (modeCfg.fencedCodeBlockHighlighting === undefined)\n    modeCfg.fencedCodeBlockHighlighting = true;\n\n  if (modeCfg.fencedCodeBlockDefaultMode === undefined)\n    modeCfg.fencedCodeBlockDefaultMode = 'text/plain';\n\n  if (modeCfg.xml === undefined)\n    modeCfg.xml = true;\n\n  // Allow token types to be overridden by user-provided token types.\n  if (modeCfg.tokenTypeOverrides === undefined)\n    modeCfg.tokenTypeOverrides = {};\n\n  var tokenTypes = {\n    header: \"header\",\n    code: \"comment\",\n    quote: \"quote\",\n    list1: \"variable-2\",\n    list2: \"variable-3\",\n    list3: \"keyword\",\n    hr: \"hr\",\n    image: \"image\",\n    imageAltText: \"image-alt-text\",\n    imageMarker: \"image-marker\",\n    formatting: \"formatting\",\n    linkInline: \"link\",\n    linkEmail: \"link\",\n    linkText: \"link\",\n    linkHref: \"string\",\n    em: \"em\",\n    strong: \"strong\",\n    strikethrough: \"strikethrough\",\n    emoji: \"builtin\"\n  };\n\n  for (var tokenType in tokenTypes) {\n    if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {\n      tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];\n    }\n  }\n\n  var hrRE = /^([*\\-_])(?:\\s*\\1){2,}\\s*$/\n  ,   listRE = /^(?:[*\\-+]|^[0-9]+([.)]))\\s+/\n  ,   taskListRE = /^\\[(x| )\\](?=\\s)/i // Must follow listRE\n  ,   atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/\n  ,   setextHeaderRE = /^ {0,3}(?:\\={1,}|-{2,})\\s*$/\n  ,   textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~:]+/\n  ,   fencedCodeRE = /^(~~~+|```+)[ \\t]*([\\w\\/+#-]*)[^\\n`]*$/\n  ,   linkDefRE = /^\\s*\\[[^\\]]+?\\]:.*$/ // naive link-definition\n  ,   punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/\n  ,   expandedTab = \"    \" // CommonMark specifies tab as 4 spaces\n\n  function switchInline(stream, state, f) {\n    state.f = state.inline = f;\n    return f(stream, state);\n  }\n\n  function switchBlock(stream, state, f) {\n    state.f = state.block = f;\n    return f(stream, state);\n  }\n\n  function lineIsEmpty(line) {\n    return !line || !/\\S/.test(line.string)\n  }\n\n  // Blocks\n\n  function blankLine(state) {\n    // Reset linkTitle state\n    state.linkTitle = false;\n    state.linkHref = false;\n    state.linkText = false;\n    // Reset EM state\n    state.em = false;\n    // Reset STRONG state\n    state.strong = false;\n    // Reset strikethrough state\n    state.strikethrough = false;\n    // Reset state.quote\n    state.quote = 0;\n    // Reset state.indentedCode\n    state.indentedCode = false;\n    if (state.f == htmlBlock) {\n      var exit = htmlModeMissing\n      if (!exit) {\n        var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n        exit = inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n          (!inner.state.context && inner.state.tokenize.isInText)\n      }\n      if (exit) {\n        state.f = inlineNormal;\n        state.block = blockNormal;\n        state.htmlState = null;\n      }\n    }\n    // Reset state.trailingSpace\n    state.trailingSpace = 0;\n    state.trailingSpaceNewLine = false;\n    // Mark this line as blank\n    state.prevLine = state.thisLine\n    state.thisLine = {stream: null}\n    return null;\n  }\n\n  function blockNormal(stream, state) {\n    var firstTokenOnLine = stream.column() === state.indentation;\n    var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);\n    var prevLineIsIndentedCode = state.indentedCode;\n    var prevLineIsHr = state.prevLine.hr;\n    var prevLineIsList = state.list !== false;\n    var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;\n\n    state.indentedCode = false;\n\n    var lineIndentation = state.indentation;\n    // compute once per line (on first token)\n    if (state.indentationDiff === null) {\n      state.indentationDiff = state.indentation;\n      if (prevLineIsList) {\n        state.list = null;\n        // While this list item's marker's indentation is less than the deepest\n        //  list item's content's indentation,pop the deepest list item\n        //  indentation off the stack, and update block indentation state\n        while (lineIndentation < state.listStack[state.listStack.length - 1]) {\n          state.listStack.pop();\n          if (state.listStack.length) {\n            state.indentation = state.listStack[state.listStack.length - 1];\n          // less than the first list's indent -> the line is no longer a list\n          } else {\n            state.list = false;\n          }\n        }\n        if (state.list !== false) {\n          state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]\n        }\n      }\n    }\n\n    // not comprehensive (currently only for setext detection purposes)\n    var allowsInlineContinuation = (\n        !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&\n        (!prevLineIsList || !prevLineIsIndentedCode) &&\n        !state.prevLine.fencedCodeEnd\n    );\n\n    var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&\n      state.indentation <= maxNonCodeIndentation && stream.match(hrRE);\n\n    var match = null;\n    if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||\n         state.prevLine.header || prevLineLineIsEmpty)) {\n      stream.skipToEnd();\n      state.indentedCode = true;\n      return tokenTypes.code;\n    } else if (stream.eatSpace()) {\n      return null;\n    } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {\n      state.quote = 0;\n      state.header = match[1].length;\n      state.thisLine.header = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      state.f = state.inline;\n      return getType(state);\n    } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {\n      state.quote = firstTokenOnLine ? 1 : state.quote + 1;\n      if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n      stream.eatSpace();\n      return getType(state);\n    } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {\n      var listType = match[1] ? \"ol\" : \"ul\";\n\n      state.indentation = lineIndentation + stream.current().length;\n      state.list = true;\n      state.quote = 0;\n\n      // Add this list item's content's indentation to the stack\n      state.listStack.push(state.indentation);\n      // Reset inline styles which shouldn't propagate across list items\n      state.em = false;\n      state.strong = false;\n      state.code = false;\n      state.strikethrough = false;\n\n      if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n        state.taskList = true;\n      }\n      state.f = state.inline;\n      if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n      return getType(state);\n    } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {\n      state.quote = 0;\n      state.fencedEndRE = new RegExp(match[1] + \"+ *$\");\n      // try switching mode\n      state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2] || modeCfg.fencedCodeBlockDefaultMode );\n      if (state.localMode) state.localState = CodeMirror.startState(state.localMode);\n      state.f = state.block = local;\n      if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n      state.code = -1\n      return getType(state);\n    // SETEXT has lowest block-scope precedence after HR, so check it after\n    //  the others (code, blockquote, list...)\n    } else if (\n      // if setext set, indicates line after ---/===\n      state.setext || (\n        // line before ---/===\n        (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&\n        !state.code && !isHr && !linkDefRE.test(stream.string) &&\n        (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))\n      )\n    ) {\n      if ( !state.setext ) {\n        state.header = match[0].charAt(0) == '=' ? 1 : 2;\n        state.setext = state.header;\n      } else {\n        state.header = state.setext;\n        // has no effect on type so we can reset it now\n        state.setext = 0;\n        stream.skipToEnd();\n        if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      }\n      state.thisLine.header = true;\n      state.f = state.inline;\n      return getType(state);\n    } else if (isHr) {\n      stream.skipToEnd();\n      state.hr = true;\n      state.thisLine.hr = true;\n      return tokenTypes.hr;\n    } else if (stream.peek() === '[') {\n      return switchInline(stream, state, footnoteLink);\n    }\n\n    return switchInline(stream, state, state.inline);\n  }\n\n  function htmlBlock(stream, state) {\n    var style = htmlMode.token(stream, state.htmlState);\n    if (!htmlModeMissing) {\n      var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n      if ((inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n           (!inner.state.context && inner.state.tokenize.isInText)) ||\n          (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n        state.f = inlineNormal;\n        state.block = blockNormal;\n        state.htmlState = null;\n      }\n    }\n    return style;\n  }\n\n  function local(stream, state) {\n    var currListInd = state.listStack[state.listStack.length - 1] || 0;\n    var hasExitedList = state.indentation < currListInd;\n    var maxFencedEndInd = currListInd + 3;\n    if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {\n      if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n      var returnType;\n      if (!hasExitedList) returnType = getType(state)\n      state.localMode = state.localState = null;\n      state.block = blockNormal;\n      state.f = inlineNormal;\n      state.fencedEndRE = null;\n      state.code = 0\n      state.thisLine.fencedCodeEnd = true;\n      if (hasExitedList) return switchBlock(stream, state, state.block);\n      return returnType;\n    } else if (state.localMode) {\n      return state.localMode.token(stream, state.localState);\n    } else {\n      stream.skipToEnd();\n      return tokenTypes.code;\n    }\n  }\n\n  // Inline\n  function getType(state) {\n    var styles = [];\n\n    if (state.formatting) {\n      styles.push(tokenTypes.formatting);\n\n      if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n      for (var i = 0; i < state.formatting.length; i++) {\n        styles.push(tokenTypes.formatting + \"-\" + state.formatting[i]);\n\n        if (state.formatting[i] === \"header\") {\n          styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n        }\n\n        // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n        // Add `error` instead if the maximum blockquote nesting depth is passed\n        if (state.formatting[i] === \"quote\") {\n          if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n            styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n          } else {\n            styles.push(\"error\");\n          }\n        }\n      }\n    }\n\n    if (state.taskOpen) {\n      styles.push(\"meta\");\n      return styles.length ? styles.join(' ') : null;\n    }\n    if (state.taskClosed) {\n      styles.push(\"property\");\n      return styles.length ? styles.join(' ') : null;\n    }\n\n    if (state.linkHref) {\n      styles.push(tokenTypes.linkHref, \"url\");\n    } else { // Only apply inline styles to non-url text\n      if (state.strong) { styles.push(tokenTypes.strong); }\n      if (state.em) { styles.push(tokenTypes.em); }\n      if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }\n      if (state.emoji) { styles.push(tokenTypes.emoji); }\n      if (state.linkText) { styles.push(tokenTypes.linkText); }\n      if (state.code) { styles.push(tokenTypes.code); }\n      if (state.image) { styles.push(tokenTypes.image); }\n      if (state.imageAltText) { styles.push(tokenTypes.imageAltText, \"link\"); }\n      if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }\n    }\n\n    if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + \"-\" + state.header); }\n\n    if (state.quote) {\n      styles.push(tokenTypes.quote);\n\n      // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n      if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n        styles.push(tokenTypes.quote + \"-\" + state.quote);\n      } else {\n        styles.push(tokenTypes.quote + \"-\" + modeCfg.maxBlockquoteDepth);\n      }\n    }\n\n    if (state.list !== false) {\n      var listMod = (state.listStack.length - 1) % 3;\n      if (!listMod) {\n        styles.push(tokenTypes.list1);\n      } else if (listMod === 1) {\n        styles.push(tokenTypes.list2);\n      } else {\n        styles.push(tokenTypes.list3);\n      }\n    }\n\n    if (state.trailingSpaceNewLine) {\n      styles.push(\"trailing-space-new-line\");\n    } else if (state.trailingSpace) {\n      styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n    }\n\n    return styles.length ? styles.join(' ') : null;\n  }\n\n  function handleText(stream, state) {\n    if (stream.match(textRE, true)) {\n      return getType(state);\n    }\n    return undefined;\n  }\n\n  function inlineNormal(stream, state) {\n    var style = state.text(stream, state);\n    if (typeof style !== 'undefined')\n      return style;\n\n    if (state.list) { // List marker (*, +, -, 1., etc)\n      state.list = null;\n      return getType(state);\n    }\n\n    if (state.taskList) {\n      var taskOpen = stream.match(taskListRE, true)[1] === \" \";\n      if (taskOpen) state.taskOpen = true;\n      else state.taskClosed = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"task\";\n      state.taskList = false;\n      return getType(state);\n    }\n\n    state.taskOpen = false;\n    state.taskClosed = false;\n\n    if (state.header && stream.match(/^#+$/, true)) {\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      return getType(state);\n    }\n\n    var ch = stream.next();\n\n    // Matches link titles present on next line\n    if (state.linkTitle) {\n      state.linkTitle = false;\n      var matchCh = ch;\n      if (ch === '(') {\n        matchCh = ')';\n      }\n      matchCh = (matchCh+'').replace(/([.?*+^\\[\\]\\\\(){}|-])/g, \"\\\\$1\");\n      var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n      if (stream.match(new RegExp(regex), true)) {\n        return tokenTypes.linkHref;\n      }\n    }\n\n    // If this block is changed, it may need to be updated in GFM mode\n    if (ch === '`') {\n      var previousFormatting = state.formatting;\n      if (modeCfg.highlightFormatting) state.formatting = \"code\";\n      stream.eatWhile('`');\n      var count = stream.current().length\n      if (state.code == 0 && (!state.quote || count == 1)) {\n        state.code = count\n        return getType(state)\n      } else if (count == state.code) { // Must be exact\n        var t = getType(state)\n        state.code = 0\n        return t\n      } else {\n        state.formatting = previousFormatting\n        return getType(state)\n      }\n    } else if (state.code) {\n      return getType(state);\n    }\n\n    if (ch === '\\\\') {\n      stream.next();\n      if (modeCfg.highlightFormatting) {\n        var type = getType(state);\n        var formattingEscape = tokenTypes.formatting + \"-escape\";\n        return type ? type + \" \" + formattingEscape : formattingEscape;\n      }\n    }\n\n    if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n      state.imageMarker = true;\n      state.image = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"image\";\n      return getType(state);\n    }\n\n    if (ch === '[' && state.imageMarker && stream.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/, false)) {\n      state.imageMarker = false;\n      state.imageAltText = true\n      if (modeCfg.highlightFormatting) state.formatting = \"image\";\n      return getType(state);\n    }\n\n    if (ch === ']' && state.imageAltText) {\n      if (modeCfg.highlightFormatting) state.formatting = \"image\";\n      var type = getType(state);\n      state.imageAltText = false;\n      state.image = false;\n      state.inline = state.f = linkHref;\n      return type;\n    }\n\n    if (ch === '[' && !state.image) {\n      if (state.linkText && stream.match(/^.*?\\]/)) return getType(state)\n      state.linkText = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      return getType(state);\n    }\n\n    if (ch === ']' && state.linkText) {\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      state.linkText = false;\n      state.inline = state.f = stream.match(/\\(.*?\\)| ?\\[.*?\\]/, false) ? linkHref : inlineNormal\n      return type;\n    }\n\n    if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + tokenTypes.linkInline;\n    }\n\n    if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + tokenTypes.linkEmail;\n    }\n\n    if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\\?|!\\[CDATA\\[|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*(?:>|$))/i, false)) {\n      var end = stream.string.indexOf(\">\", stream.pos);\n      if (end != -1) {\n        var atts = stream.string.substring(stream.start, end);\n        if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) state.md_inside = true;\n      }\n      stream.backUp(1);\n      state.htmlState = CodeMirror.startState(htmlMode);\n      return switchBlock(stream, state, htmlBlock);\n    }\n\n    if (modeCfg.xml && ch === '<' && stream.match(/^\\/\\w*?>/)) {\n      state.md_inside = false;\n      return \"tag\";\n    } else if (ch === \"*\" || ch === \"_\") {\n      var len = 1, before = stream.pos == 1 ? \" \" : stream.string.charAt(stream.pos - 2)\n      while (len < 3 && stream.eat(ch)) len++\n      var after = stream.peek() || \" \"\n      // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis\n      var leftFlanking = !/\\s/.test(after) && (!punctuation.test(after) || /\\s/.test(before) || punctuation.test(before))\n      var rightFlanking = !/\\s/.test(before) && (!punctuation.test(before) || /\\s/.test(after) || punctuation.test(after))\n      var setEm = null, setStrong = null\n      if (len % 2) { // Em\n        if (!state.em && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n          setEm = true\n        else if (state.em == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n          setEm = false\n      }\n      if (len > 1) { // Strong\n        if (!state.strong && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n          setStrong = true\n        else if (state.strong == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n          setStrong = false\n      }\n      if (setStrong != null || setEm != null) {\n        if (modeCfg.highlightFormatting) state.formatting = setEm == null ? \"strong\" : setStrong == null ? \"em\" : \"strong em\"\n        if (setEm === true) state.em = ch\n        if (setStrong === true) state.strong = ch\n        var t = getType(state)\n        if (setEm === false) state.em = false\n        if (setStrong === false) state.strong = false\n        return t\n      }\n    } else if (ch === ' ') {\n      if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n        if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n          return getType(state);\n        } else { // Not surrounded by spaces, back up pointer\n          stream.backUp(1);\n        }\n      }\n    }\n\n    if (modeCfg.strikethrough) {\n      if (ch === '~' && stream.eatWhile(ch)) {\n        if (state.strikethrough) {// Remove strikethrough\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          var t = getType(state);\n          state.strikethrough = false;\n          return t;\n        } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n          state.strikethrough = true;\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          return getType(state);\n        }\n      } else if (ch === ' ') {\n        if (stream.match('~~', true)) { // Probably surrounded by space\n          if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n            return getType(state);\n          } else { // Not surrounded by spaces, back up pointer\n            stream.backUp(2);\n          }\n        }\n      }\n    }\n\n    if (modeCfg.emoji && ch === \":\" && stream.match(/^(?:[a-z_\\d+][a-z_\\d+-]*|\\-[a-z_\\d+][a-z_\\d+-]*):/)) {\n      state.emoji = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"emoji\";\n      var retType = getType(state);\n      state.emoji = false;\n      return retType;\n    }\n\n    if (ch === ' ') {\n      if (stream.match(/^ +$/, false)) {\n        state.trailingSpace++;\n      } else if (state.trailingSpace) {\n        state.trailingSpaceNewLine = true;\n      }\n    }\n\n    return getType(state);\n  }\n\n  function linkInline(stream, state) {\n    var ch = stream.next();\n\n    if (ch === \">\") {\n      state.f = state.inline = inlineNormal;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + tokenTypes.linkInline;\n    }\n\n    stream.match(/^[^>]+/, true);\n\n    return tokenTypes.linkInline;\n  }\n\n  function linkHref(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    var ch = stream.next();\n    if (ch === '(' || ch === '[') {\n      state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n      if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n      state.linkHref = true;\n      return getType(state);\n    }\n    return 'error';\n  }\n\n  var linkRE = {\n    \")\": /^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\n    \"]\": /^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/\n  }\n\n  function getLinkHrefInside(endChar) {\n    return function(stream, state) {\n      var ch = stream.next();\n\n      if (ch === endChar) {\n        state.f = state.inline = inlineNormal;\n        if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n        var returnState = getType(state);\n        state.linkHref = false;\n        return returnState;\n      }\n\n      stream.match(linkRE[endChar])\n      state.linkHref = true;\n      return getType(state);\n    };\n  }\n\n  function footnoteLink(stream, state) {\n    if (stream.match(/^([^\\]\\\\]|\\\\.)*\\]:/, false)) {\n      state.f = footnoteLinkInside;\n      stream.next(); // Consume [\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      state.linkText = true;\n      return getType(state);\n    }\n    return switchInline(stream, state, inlineNormal);\n  }\n\n  function footnoteLinkInside(stream, state) {\n    if (stream.match(']:', true)) {\n      state.f = state.inline = footnoteUrl;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var returnType = getType(state);\n      state.linkText = false;\n      return returnType;\n    }\n\n    stream.match(/^([^\\]\\\\]|\\\\.)+/, true);\n\n    return tokenTypes.linkText;\n  }\n\n  function footnoteUrl(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    // Match URL\n    stream.match(/^[^\\s]+/, true);\n    // Check for link title\n    if (stream.peek() === undefined) { // End of line, set flag to check next line\n      state.linkTitle = true;\n    } else { // More content on line, check if link title\n      stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\.)+\"|'(?:[^'\\\\]|\\\\.)+'|\\((?:[^)\\\\]|\\\\.)+\\)))?/, true);\n    }\n    state.f = state.inline = inlineNormal;\n    return tokenTypes.linkHref + \" url\";\n  }\n\n  var mode = {\n    startState: function() {\n      return {\n        f: blockNormal,\n\n        prevLine: {stream: null},\n        thisLine: {stream: null},\n\n        block: blockNormal,\n        htmlState: null,\n        indentation: 0,\n\n        inline: inlineNormal,\n        text: handleText,\n\n        formatting: false,\n        linkText: false,\n        linkHref: false,\n        linkTitle: false,\n        code: 0,\n        em: false,\n        strong: false,\n        header: 0,\n        setext: 0,\n        hr: false,\n        taskList: false,\n        list: false,\n        listStack: [],\n        quote: 0,\n        trailingSpace: 0,\n        trailingSpaceNewLine: false,\n        strikethrough: false,\n        emoji: false,\n        fencedEndRE: null\n      };\n    },\n\n    copyState: function(s) {\n      return {\n        f: s.f,\n\n        prevLine: s.prevLine,\n        thisLine: s.thisLine,\n\n        block: s.block,\n        htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n        indentation: s.indentation,\n\n        localMode: s.localMode,\n        localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n        inline: s.inline,\n        text: s.text,\n        formatting: false,\n        linkText: s.linkText,\n        linkTitle: s.linkTitle,\n        linkHref: s.linkHref,\n        code: s.code,\n        em: s.em,\n        strong: s.strong,\n        strikethrough: s.strikethrough,\n        emoji: s.emoji,\n        header: s.header,\n        setext: s.setext,\n        hr: s.hr,\n        taskList: s.taskList,\n        list: s.list,\n        listStack: s.listStack.slice(0),\n        quote: s.quote,\n        indentedCode: s.indentedCode,\n        trailingSpace: s.trailingSpace,\n        trailingSpaceNewLine: s.trailingSpaceNewLine,\n        md_inside: s.md_inside,\n        fencedEndRE: s.fencedEndRE\n      };\n    },\n\n    token: function(stream, state) {\n\n      // Reset state.formatting\n      state.formatting = false;\n\n      if (stream != state.thisLine.stream) {\n        state.header = 0;\n        state.hr = false;\n\n        if (stream.match(/^\\s*$/, true)) {\n          blankLine(state);\n          return null;\n        }\n\n        state.prevLine = state.thisLine\n        state.thisLine = {stream: stream}\n\n        // Reset state.taskList\n        state.taskList = false;\n\n        // Reset state.trailingSpace\n        state.trailingSpace = 0;\n        state.trailingSpaceNewLine = false;\n\n        if (!state.localState) {\n          state.f = state.block;\n          if (state.f != htmlBlock) {\n            var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, expandedTab).length;\n            state.indentation = indentation;\n            state.indentationDiff = null;\n            if (indentation > 0) return null;\n          }\n        }\n      }\n      return state.f(stream, state);\n    },\n\n    innerMode: function(state) {\n      if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n      if (state.localState) return {state: state.localState, mode: state.localMode};\n      return {state: state, mode: mode};\n    },\n\n    indent: function(state, textAfter, line) {\n      if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)\n      if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)\n      return CodeMirror.Pass\n    },\n\n    blankLine: blankLine,\n\n    getType: getType,\n\n    blockCommentStart: \"<!--\",\n    blockCommentEnd: \"-->\",\n    closeBrackets: \"()[]{}''\\\"\\\"``\",\n    fold: \"markdown\"\n  };\n  return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/markdown\", \"markdown\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mathematica/mathematica.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Mathematica mode copyright (c) 2015 by Calin Barbat\n// Based on code by Patrick Scheibe (halirutan)\n// See: https://github.com/halirutan/Mathematica-Source-Highlighting/tree/master/src/lang-mma.js\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('mathematica', function(_config, _parserConfig) {\n\n  // used pattern building blocks\n  var Identifier = '[a-zA-Z\\\\$][a-zA-Z0-9\\\\$]*';\n  var pBase      = \"(?:\\\\d+)\";\n  var pFloat     = \"(?:\\\\.\\\\d+|\\\\d+\\\\.\\\\d*|\\\\d+)\";\n  var pFloatBase = \"(?:\\\\.\\\\w+|\\\\w+\\\\.\\\\w*|\\\\w+)\";\n  var pPrecision = \"(?:`(?:`?\"+pFloat+\")?)\";\n\n  // regular expressions\n  var reBaseForm        = new RegExp('(?:'+pBase+'(?:\\\\^\\\\^'+pFloatBase+pPrecision+'?(?:\\\\*\\\\^[+-]?\\\\d+)?))');\n  var reFloatForm       = new RegExp('(?:' + pFloat + pPrecision + '?(?:\\\\*\\\\^[+-]?\\\\d+)?)');\n  var reIdInContext     = new RegExp('(?:`?)(?:' + Identifier + ')(?:`(?:' + Identifier + '))*(?:`?)');\n\n  function tokenBase(stream, state) {\n    var ch;\n\n    // get next character\n    ch = stream.next();\n\n    // string\n    if (ch === '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n\n    // comment\n    if (ch === '(') {\n      if (stream.eat('*')) {\n        state.commentLevel++;\n        state.tokenize = tokenComment;\n        return state.tokenize(stream, state);\n      }\n    }\n\n    // go back one character\n    stream.backUp(1);\n\n    // look for numbers\n    // Numbers in a baseform\n    if (stream.match(reBaseForm, true, false)) {\n      return 'number';\n    }\n\n    // Mathematica numbers. Floats (1.2, .2, 1.) can have optionally a precision (`float) or an accuracy definition\n    // (``float). Note: while 1.2` is possible 1.2`` is not. At the end an exponent (float*^+12) can follow.\n    if (stream.match(reFloatForm, true, false)) {\n      return 'number';\n    }\n\n    /* In[23] and Out[34] */\n    if (stream.match(/(?:In|Out)\\[[0-9]*\\]/, true, false)) {\n      return 'atom';\n    }\n\n    // usage\n    if (stream.match(/([a-zA-Z\\$][a-zA-Z0-9\\$]*(?:`[a-zA-Z0-9\\$]+)*::usage)/, true, false)) {\n      return 'meta';\n    }\n\n    // message\n    if (stream.match(/([a-zA-Z\\$][a-zA-Z0-9\\$]*(?:`[a-zA-Z0-9\\$]+)*::[a-zA-Z\\$][a-zA-Z0-9\\$]*):?/, true, false)) {\n      return 'string-2';\n    }\n\n    // this makes a look-ahead match for something like variable:{_Integer}\n    // the match is then forwarded to the mma-patterns tokenizer.\n    if (stream.match(/([a-zA-Z\\$][a-zA-Z0-9\\$]*\\s*:)(?:(?:[a-zA-Z\\$][a-zA-Z0-9\\$]*)|(?:[^:=>~@\\^\\&\\*\\)\\[\\]'\\?,\\|])).*/, true, false)) {\n      return 'variable-2';\n    }\n\n    // catch variables which are used together with Blank (_), BlankSequence (__) or BlankNullSequence (___)\n    // Cannot start with a number, but can have numbers at any other position. Examples\n    // blub__Integer, a1_, b34_Integer32\n    if (stream.match(/[a-zA-Z\\$][a-zA-Z0-9\\$]*_+[a-zA-Z\\$][a-zA-Z0-9\\$]*/, true, false)) {\n      return 'variable-2';\n    }\n    if (stream.match(/[a-zA-Z\\$][a-zA-Z0-9\\$]*_+/, true, false)) {\n      return 'variable-2';\n    }\n    if (stream.match(/_+[a-zA-Z\\$][a-zA-Z0-9\\$]*/, true, false)) {\n      return 'variable-2';\n    }\n\n    // Named characters in Mathematica, like \\[Gamma].\n    if (stream.match(/\\\\\\[[a-zA-Z\\$][a-zA-Z0-9\\$]*\\]/, true, false)) {\n      return 'variable-3';\n    }\n\n    // Match all braces separately\n    if (stream.match(/(?:\\[|\\]|{|}|\\(|\\))/, true, false)) {\n      return 'bracket';\n    }\n\n    // Catch Slots (#, ##, #3, ##9 and the V10 named slots #name). I have never seen someone using more than one digit after #, so we match\n    // only one.\n    if (stream.match(/(?:#[a-zA-Z\\$][a-zA-Z0-9\\$]*|#+[0-9]?)/, true, false)) {\n      return 'variable-2';\n    }\n\n    // Literals like variables, keywords, functions\n    if (stream.match(reIdInContext, true, false)) {\n      return 'keyword';\n    }\n\n    // operators. Note that operators like @@ or /; are matched separately for each symbol.\n    if (stream.match(/(?:\\\\|\\+|\\-|\\*|\\/|,|;|\\.|:|@|~|=|>|<|&|\\||_|`|'|\\^|\\?|!|%)/, true, false)) {\n      return 'operator';\n    }\n\n    // everything else is an error\n    stream.next(); // advance the stream.\n    return 'error';\n  }\n\n  function tokenString(stream, state) {\n    var next, end = false, escaped = false;\n    while ((next = stream.next()) != null) {\n      if (next === '\"' && !escaped) {\n        end = true;\n        break;\n      }\n      escaped = !escaped && next === '\\\\';\n    }\n    if (end && !escaped) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  };\n\n  function tokenComment(stream, state) {\n    var prev, next;\n    while(state.commentLevel > 0 && (next = stream.next()) != null) {\n      if (prev === '(' && next === '*') state.commentLevel++;\n      if (prev === '*' && next === ')') state.commentLevel--;\n      prev = next;\n    }\n    if (state.commentLevel <= 0) {\n      state.tokenize = tokenBase;\n    }\n    return 'comment';\n  }\n\n  return {\n    startState: function() {return {tokenize: tokenBase, commentLevel: 0};},\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    },\n    blockCommentStart: \"(*\",\n    blockCommentEnd: \"*)\"\n  };\n});\n\nCodeMirror.defineMIME('text/x-mathematica', {\n  name: 'mathematica'\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mbox/mbox.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar rfc2822 = [\n  \"From\", \"Sender\", \"Reply-To\", \"To\", \"Cc\", \"Bcc\", \"Message-ID\",\n  \"In-Reply-To\", \"References\", \"Resent-From\", \"Resent-Sender\", \"Resent-To\",\n  \"Resent-Cc\", \"Resent-Bcc\", \"Resent-Message-ID\", \"Return-Path\", \"Received\"\n];\nvar rfc2822NoEmail = [\n  \"Date\", \"Subject\", \"Comments\", \"Keywords\", \"Resent-Date\"\n];\n\nCodeMirror.registerHelper(\"hintWords\", \"mbox\", rfc2822.concat(rfc2822NoEmail));\n\nvar whitespace = /^[ \\t]/;\nvar separator = /^From /; // See RFC 4155\nvar rfc2822Header = new RegExp(\"^(\" + rfc2822.join(\"|\") + \"): \");\nvar rfc2822HeaderNoEmail = new RegExp(\"^(\" + rfc2822NoEmail.join(\"|\") + \"): \");\nvar header = /^[^:]+:/; // Optional fields defined in RFC 2822\nvar email = /^[^ ]+@[^ ]+/;\nvar untilEmail = /^.*?(?=[^ ]+?@[^ ]+)/;\nvar bracketedEmail = /^<.*?>/;\nvar untilBracketedEmail = /^.*?(?=<.*>)/;\n\nfunction styleForHeader(header) {\n  if (header === \"Subject\") return \"header\";\n  return \"string\";\n}\n\nfunction readToken(stream, state) {\n  if (stream.sol()) {\n    // From last line\n    state.inSeparator = false;\n    if (state.inHeader && stream.match(whitespace)) {\n      // Header folding\n      return null;\n    } else {\n      state.inHeader = false;\n      state.header = null;\n    }\n\n    if (stream.match(separator)) {\n      state.inHeaders = true;\n      state.inSeparator = true;\n      return \"atom\";\n    }\n\n    var match;\n    var emailPermitted = false;\n    if ((match = stream.match(rfc2822HeaderNoEmail)) ||\n        (emailPermitted = true) && (match = stream.match(rfc2822Header))) {\n      state.inHeaders = true;\n      state.inHeader = true;\n      state.emailPermitted = emailPermitted;\n      state.header = match[1];\n      return \"atom\";\n    }\n\n    // Use vim's heuristics: recognize custom headers only if the line is in a\n    // block of legitimate headers.\n    if (state.inHeaders && (match = stream.match(header))) {\n      state.inHeader = true;\n      state.emailPermitted = true;\n      state.header = match[1];\n      return \"atom\";\n    }\n\n    state.inHeaders = false;\n    stream.skipToEnd();\n    return null;\n  }\n\n  if (state.inSeparator) {\n    if (stream.match(email)) return \"link\";\n    if (stream.match(untilEmail)) return \"atom\";\n    stream.skipToEnd();\n    return \"atom\";\n  }\n\n  if (state.inHeader) {\n    var style = styleForHeader(state.header);\n\n    if (state.emailPermitted) {\n      if (stream.match(bracketedEmail)) return style + \" link\";\n      if (stream.match(untilBracketedEmail)) return style;\n    }\n    stream.skipToEnd();\n    return style;\n  }\n\n  stream.skipToEnd();\n  return null;\n};\n\nCodeMirror.defineMode(\"mbox\", function() {\n  return {\n    startState: function() {\n      return {\n        // Is in a mbox separator\n        inSeparator: false,\n        // Is in a mail header\n        inHeader: false,\n        // If bracketed email is permitted. Only applicable when inHeader\n        emailPermitted: false,\n        // Name of current header\n        header: null,\n        // Is in a region of mail headers\n        inHeaders: false\n      };\n    },\n    token: readToken,\n    blankLine: function(state) {\n      state.inHeaders = state.inSeparator = state.inHeader = false;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"application/mbox\", \"mbox\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/meta.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.modeInfo = [\n    {name: \"APL\", mime: \"text/apl\", mode: \"apl\", ext: [\"dyalog\", \"apl\"]},\n    {name: \"PGP\", mimes: [\"application/pgp\", \"application/pgp-encrypted\", \"application/pgp-keys\", \"application/pgp-signature\"], mode: \"asciiarmor\", ext: [\"asc\", \"pgp\", \"sig\"]},\n    {name: \"ASN.1\", mime: \"text/x-ttcn-asn\", mode: \"asn.1\", ext: [\"asn\", \"asn1\"]},\n    {name: \"Asterisk\", mime: \"text/x-asterisk\", mode: \"asterisk\", file: /^extensions\\.conf$/i},\n    {name: \"Brainfuck\", mime: \"text/x-brainfuck\", mode: \"brainfuck\", ext: [\"b\", \"bf\"]},\n    {name: \"C\", mime: \"text/x-csrc\", mode: \"clike\", ext: [\"c\", \"h\", \"ino\"]},\n    {name: \"C++\", mime: \"text/x-c++src\", mode: \"clike\", ext: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"], alias: [\"cpp\"]},\n    {name: \"Cobol\", mime: \"text/x-cobol\", mode: \"cobol\", ext: [\"cob\", \"cpy\"]},\n    {name: \"C#\", mime: \"text/x-csharp\", mode: \"clike\", ext: [\"cs\"], alias: [\"csharp\", \"cs\"]},\n    {name: \"Clojure\", mime: \"text/x-clojure\", mode: \"clojure\", ext: [\"clj\", \"cljc\", \"cljx\"]},\n    {name: \"ClojureScript\", mime: \"text/x-clojurescript\", mode: \"clojure\", ext: [\"cljs\"]},\n    {name: \"Closure Stylesheets (GSS)\", mime: \"text/x-gss\", mode: \"css\", ext: [\"gss\"]},\n    {name: \"CMake\", mime: \"text/x-cmake\", mode: \"cmake\", ext: [\"cmake\", \"cmake.in\"], file: /^CMakeLists\\.txt$/},\n    {name: \"CoffeeScript\", mimes: [\"application/vnd.coffeescript\", \"text/coffeescript\", \"text/x-coffeescript\"], mode: \"coffeescript\", ext: [\"coffee\"], alias: [\"coffee\", \"coffee-script\"]},\n    {name: \"Common Lisp\", mime: \"text/x-common-lisp\", mode: \"commonlisp\", ext: [\"cl\", \"lisp\", \"el\"], alias: [\"lisp\"]},\n    {name: \"Cypher\", mime: \"application/x-cypher-query\", mode: \"cypher\", ext: [\"cyp\", \"cypher\"]},\n    {name: \"Cython\", mime: \"text/x-cython\", mode: \"python\", ext: [\"pyx\", \"pxd\", \"pxi\"]},\n    {name: \"Crystal\", mime: \"text/x-crystal\", mode: \"crystal\", ext: [\"cr\"]},\n    {name: \"CSS\", mime: \"text/css\", mode: \"css\", ext: [\"css\"]},\n    {name: \"CQL\", mime: \"text/x-cassandra\", mode: \"sql\", ext: [\"cql\"]},\n    {name: \"D\", mime: \"text/x-d\", mode: \"d\", ext: [\"d\"]},\n    {name: \"Dart\", mimes: [\"application/dart\", \"text/x-dart\"], mode: \"dart\", ext: [\"dart\"]},\n    {name: \"diff\", mime: \"text/x-diff\", mode: \"diff\", ext: [\"diff\", \"patch\"]},\n    {name: \"Django\", mime: \"text/x-django\", mode: \"django\"},\n    {name: \"Dockerfile\", mime: \"text/x-dockerfile\", mode: \"dockerfile\", file: /^Dockerfile$/},\n    {name: \"DTD\", mime: \"application/xml-dtd\", mode: \"dtd\", ext: [\"dtd\"]},\n    {name: \"Dylan\", mime: \"text/x-dylan\", mode: \"dylan\", ext: [\"dylan\", \"dyl\", \"intr\"]},\n    {name: \"EBNF\", mime: \"text/x-ebnf\", mode: \"ebnf\"},\n    {name: \"ECL\", mime: \"text/x-ecl\", mode: \"ecl\", ext: [\"ecl\"]},\n    {name: \"edn\", mime: \"application/edn\", mode: \"clojure\", ext: [\"edn\"]},\n    {name: \"Eiffel\", mime: \"text/x-eiffel\", mode: \"eiffel\", ext: [\"e\"]},\n    {name: \"Elm\", mime: \"text/x-elm\", mode: \"elm\", ext: [\"elm\"]},\n    {name: \"Embedded JavaScript\", mime: \"application/x-ejs\", mode: \"htmlembedded\", ext: [\"ejs\"]},\n    {name: \"Embedded Ruby\", mime: \"application/x-erb\", mode: \"htmlembedded\", ext: [\"erb\"]},\n    {name: \"Erlang\", mime: \"text/x-erlang\", mode: \"erlang\", ext: [\"erl\"]},\n    {name: \"Esper\", mime: \"text/x-esper\", mode: \"sql\"},\n    {name: \"Factor\", mime: \"text/x-factor\", mode: \"factor\", ext: [\"factor\"]},\n    {name: \"FCL\", mime: \"text/x-fcl\", mode: \"fcl\"},\n    {name: \"Forth\", mime: \"text/x-forth\", mode: \"forth\", ext: [\"forth\", \"fth\", \"4th\"]},\n    {name: \"Fortran\", mime: \"text/x-fortran\", mode: \"fortran\", ext: [\"f\", \"for\", \"f77\", \"f90\", \"f95\"]},\n    {name: \"F#\", mime: \"text/x-fsharp\", mode: \"mllike\", ext: [\"fs\"], alias: [\"fsharp\"]},\n    {name: \"Gas\", mime: \"text/x-gas\", mode: \"gas\", ext: [\"s\"]},\n    {name: \"Gherkin\", mime: \"text/x-feature\", mode: \"gherkin\", ext: [\"feature\"]},\n    {name: \"GitHub Flavored Markdown\", mime: \"text/x-gfm\", mode: \"gfm\", file: /^(readme|contributing|history)\\.md$/i},\n    {name: \"Go\", mime: \"text/x-go\", mode: \"go\", ext: [\"go\"]},\n    {name: \"Groovy\", mime: \"text/x-groovy\", mode: \"groovy\", ext: [\"groovy\", \"gradle\"], file: /^Jenkinsfile$/},\n    {name: \"HAML\", mime: \"text/x-haml\", mode: \"haml\", ext: [\"haml\"]},\n    {name: \"Haskell\", mime: \"text/x-haskell\", mode: \"haskell\", ext: [\"hs\"]},\n    {name: \"Haskell (Literate)\", mime: \"text/x-literate-haskell\", mode: \"haskell-literate\", ext: [\"lhs\"]},\n    {name: \"Haxe\", mime: \"text/x-haxe\", mode: \"haxe\", ext: [\"hx\"]},\n    {name: \"HXML\", mime: \"text/x-hxml\", mode: \"haxe\", ext: [\"hxml\"]},\n    {name: \"ASP.NET\", mime: \"application/x-aspx\", mode: \"htmlembedded\", ext: [\"aspx\"], alias: [\"asp\", \"aspx\"]},\n    {name: \"HTML\", mime: \"text/html\", mode: \"htmlmixed\", ext: [\"html\", \"htm\", \"handlebars\", \"hbs\"], alias: [\"xhtml\"]},\n    {name: \"HTTP\", mime: \"message/http\", mode: \"http\"},\n    {name: \"IDL\", mime: \"text/x-idl\", mode: \"idl\", ext: [\"pro\"]},\n    {name: \"Pug\", mime: \"text/x-pug\", mode: \"pug\", ext: [\"jade\", \"pug\"], alias: [\"jade\"]},\n    {name: \"Java\", mime: \"text/x-java\", mode: \"clike\", ext: [\"java\"]},\n    {name: \"Java Server Pages\", mime: \"application/x-jsp\", mode: \"htmlembedded\", ext: [\"jsp\"], alias: [\"jsp\"]},\n    {name: \"JavaScript\", mimes: [\"text/javascript\", \"text/ecmascript\", \"application/javascript\", \"application/x-javascript\", \"application/ecmascript\"],\n     mode: \"javascript\", ext: [\"js\"], alias: [\"ecmascript\", \"js\", \"node\"]},\n    {name: \"JSON\", mimes: [\"application/json\", \"application/x-json\"], mode: \"javascript\", ext: [\"json\", \"map\"], alias: [\"json5\"]},\n    {name: \"JSON-LD\", mime: \"application/ld+json\", mode: \"javascript\", ext: [\"jsonld\"], alias: [\"jsonld\"]},\n    {name: \"JSX\", mime: \"text/jsx\", mode: \"jsx\", ext: [\"jsx\"]},\n    {name: \"Jinja2\", mime: \"text/jinja2\", mode: \"jinja2\", ext: [\"j2\", \"jinja\", \"jinja2\"]},\n    {name: \"Julia\", mime: \"text/x-julia\", mode: \"julia\", ext: [\"jl\"]},\n    {name: \"Kotlin\", mime: \"text/x-kotlin\", mode: \"clike\", ext: [\"kt\"]},\n    {name: \"LESS\", mime: \"text/x-less\", mode: \"css\", ext: [\"less\"]},\n    {name: \"LiveScript\", mime: \"text/x-livescript\", mode: \"livescript\", ext: [\"ls\"], alias: [\"ls\"]},\n    {name: \"Lua\", mime: \"text/x-lua\", mode: \"lua\", ext: [\"lua\"]},\n    {name: \"Markdown\", mime: \"text/x-markdown\", mode: \"markdown\", ext: [\"markdown\", \"md\", \"mkd\"]},\n    {name: \"mIRC\", mime: \"text/mirc\", mode: \"mirc\"},\n    {name: \"MariaDB SQL\", mime: \"text/x-mariadb\", mode: \"sql\"},\n    {name: \"Mathematica\", mime: \"text/x-mathematica\", mode: \"mathematica\", ext: [\"m\", \"nb\", \"wl\", \"wls\"]},\n    {name: \"Modelica\", mime: \"text/x-modelica\", mode: \"modelica\", ext: [\"mo\"]},\n    {name: \"MUMPS\", mime: \"text/x-mumps\", mode: \"mumps\", ext: [\"mps\"]},\n    {name: \"MS SQL\", mime: \"text/x-mssql\", mode: \"sql\"},\n    {name: \"mbox\", mime: \"application/mbox\", mode: \"mbox\", ext: [\"mbox\"]},\n    {name: \"MySQL\", mime: \"text/x-mysql\", mode: \"sql\"},\n    {name: \"Nginx\", mime: \"text/x-nginx-conf\", mode: \"nginx\", file: /nginx.*\\.conf$/i},\n    {name: \"NSIS\", mime: \"text/x-nsis\", mode: \"nsis\", ext: [\"nsh\", \"nsi\"]},\n    {name: \"NTriples\", mimes: [\"application/n-triples\", \"application/n-quads\", \"text/n-triples\"],\n     mode: \"ntriples\", ext: [\"nt\", \"nq\"]},\n    {name: \"Objective-C\", mime: \"text/x-objectivec\", mode: \"clike\", ext: [\"m\"], alias: [\"objective-c\", \"objc\"]},\n    {name: \"Objective-C++\", mime: \"text/x-objectivec++\", mode: \"clike\", ext: [\"mm\"], alias: [\"objective-c++\", \"objc++\"]},\n    {name: \"OCaml\", mime: \"text/x-ocaml\", mode: \"mllike\", ext: [\"ml\", \"mli\", \"mll\", \"mly\"]},\n    {name: \"Octave\", mime: \"text/x-octave\", mode: \"octave\", ext: [\"m\"]},\n    {name: \"Oz\", mime: \"text/x-oz\", mode: \"oz\", ext: [\"oz\"]},\n    {name: \"Pascal\", mime: \"text/x-pascal\", mode: \"pascal\", ext: [\"p\", \"pas\"]},\n    {name: \"PEG.js\", mime: \"null\", mode: \"pegjs\", ext: [\"jsonld\"]},\n    {name: \"Perl\", mime: \"text/x-perl\", mode: \"perl\", ext: [\"pl\", \"pm\"]},\n    {name: \"PHP\", mimes: [\"text/x-php\", \"application/x-httpd-php\", \"application/x-httpd-php-open\"], mode: \"php\", ext: [\"php\", \"php3\", \"php4\", \"php5\", \"php7\", \"phtml\"]},\n    {name: \"Pig\", mime: \"text/x-pig\", mode: \"pig\", ext: [\"pig\"]},\n    {name: \"Plain Text\", mime: \"text/plain\", mode: \"null\", ext: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\"]},\n    {name: \"PLSQL\", mime: \"text/x-plsql\", mode: \"sql\", ext: [\"pls\"]},\n    {name: \"PostgreSQL\", mime: \"text/x-pgsql\", mode: \"sql\"},\n    {name: \"PowerShell\", mime: \"application/x-powershell\", mode: \"powershell\", ext: [\"ps1\", \"psd1\", \"psm1\"]},\n    {name: \"Properties files\", mime: \"text/x-properties\", mode: \"properties\", ext: [\"properties\", \"ini\", \"in\"], alias: [\"ini\", \"properties\"]},\n    {name: \"ProtoBuf\", mime: \"text/x-protobuf\", mode: \"protobuf\", ext: [\"proto\"]},\n    {name: \"Python\", mime: \"text/x-python\", mode: \"python\", ext: [\"BUILD\", \"bzl\", \"py\", \"pyw\"], file: /^(BUCK|BUILD)$/},\n    {name: \"Puppet\", mime: \"text/x-puppet\", mode: \"puppet\", ext: [\"pp\"]},\n    {name: \"Q\", mime: \"text/x-q\", mode: \"q\", ext: [\"q\"]},\n    {name: \"R\", mime: \"text/x-rsrc\", mode: \"r\", ext: [\"r\", \"R\"], alias: [\"rscript\"]},\n    {name: \"reStructuredText\", mime: \"text/x-rst\", mode: \"rst\", ext: [\"rst\"], alias: [\"rst\"]},\n    {name: \"RPM Changes\", mime: \"text/x-rpm-changes\", mode: \"rpm\"},\n    {name: \"RPM Spec\", mime: \"text/x-rpm-spec\", mode: \"rpm\", ext: [\"spec\"]},\n    {name: \"Ruby\", mime: \"text/x-ruby\", mode: \"ruby\", ext: [\"rb\"], alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"]},\n    {name: \"Rust\", mime: \"text/x-rustsrc\", mode: \"rust\", ext: [\"rs\"]},\n    {name: \"SAS\", mime: \"text/x-sas\", mode: \"sas\", ext: [\"sas\"]},\n    {name: \"Sass\", mime: \"text/x-sass\", mode: \"sass\", ext: [\"sass\"]},\n    {name: \"Scala\", mime: \"text/x-scala\", mode: \"clike\", ext: [\"scala\"]},\n    {name: \"Scheme\", mime: \"text/x-scheme\", mode: \"scheme\", ext: [\"scm\", \"ss\"]},\n    {name: \"SCSS\", mime: \"text/x-scss\", mode: \"css\", ext: [\"scss\"]},\n    {name: \"Shell\", mimes: [\"text/x-sh\", \"application/x-sh\"], mode: \"shell\", ext: [\"sh\", \"ksh\", \"bash\"], alias: [\"bash\", \"sh\", \"zsh\"], file: /^PKGBUILD$/},\n    {name: \"Sieve\", mime: \"application/sieve\", mode: \"sieve\", ext: [\"siv\", \"sieve\"]},\n    {name: \"Slim\", mimes: [\"text/x-slim\", \"application/x-slim\"], mode: \"slim\", ext: [\"slim\"]},\n    {name: \"Smalltalk\", mime: \"text/x-stsrc\", mode: \"smalltalk\", ext: [\"st\"]},\n    {name: \"Smarty\", mime: \"text/x-smarty\", mode: \"smarty\", ext: [\"tpl\"]},\n    {name: \"Solr\", mime: \"text/x-solr\", mode: \"solr\"},\n    {name: \"SML\", mime: \"text/x-sml\", mode: \"mllike\", ext: [\"sml\", \"sig\", \"fun\", \"smackspec\"]},\n    {name: \"Soy\", mime: \"text/x-soy\", mode: \"soy\", ext: [\"soy\"], alias: [\"closure template\"]},\n    {name: \"SPARQL\", mime: \"application/sparql-query\", mode: \"sparql\", ext: [\"rq\", \"sparql\"], alias: [\"sparul\"]},\n    {name: \"Spreadsheet\", mime: \"text/x-spreadsheet\", mode: \"spreadsheet\", alias: [\"excel\", \"formula\"]},\n    {name: \"SQL\", mime: \"text/x-sql\", mode: \"sql\", ext: [\"sql\"]},\n    {name: \"SQLite\", mime: \"text/x-sqlite\", mode: \"sql\"},\n    {name: \"Squirrel\", mime: \"text/x-squirrel\", mode: \"clike\", ext: [\"nut\"]},\n    {name: \"Stylus\", mime: \"text/x-styl\", mode: \"stylus\", ext: [\"styl\"]},\n    {name: \"Swift\", mime: \"text/x-swift\", mode: \"swift\", ext: [\"swift\"]},\n    {name: \"sTeX\", mime: \"text/x-stex\", mode: \"stex\"},\n    {name: \"LaTeX\", mime: \"text/x-latex\", mode: \"stex\", ext: [\"text\", \"ltx\", \"tex\"], alias: [\"tex\"]},\n    {name: \"SystemVerilog\", mime: \"text/x-systemverilog\", mode: \"verilog\", ext: [\"v\", \"sv\", \"svh\"]},\n    {name: \"Tcl\", mime: \"text/x-tcl\", mode: \"tcl\", ext: [\"tcl\"]},\n    {name: \"Textile\", mime: \"text/x-textile\", mode: \"textile\", ext: [\"textile\"]},\n    {name: \"TiddlyWiki\", mime: \"text/x-tiddlywiki\", mode: \"tiddlywiki\"},\n    {name: \"Tiki wiki\", mime: \"text/tiki\", mode: \"tiki\"},\n    {name: \"TOML\", mime: \"text/x-toml\", mode: \"toml\", ext: [\"toml\"]},\n    {name: \"Tornado\", mime: \"text/x-tornado\", mode: \"tornado\"},\n    {name: \"troff\", mime: \"text/troff\", mode: \"troff\", ext: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]},\n    {name: \"TTCN\", mime: \"text/x-ttcn\", mode: \"ttcn\", ext: [\"ttcn\", \"ttcn3\", \"ttcnpp\"]},\n    {name: \"TTCN_CFG\", mime: \"text/x-ttcn-cfg\", mode: \"ttcn-cfg\", ext: [\"cfg\"]},\n    {name: \"Turtle\", mime: \"text/turtle\", mode: \"turtle\", ext: [\"ttl\"]},\n    {name: \"TypeScript\", mime: \"application/typescript\", mode: \"javascript\", ext: [\"ts\"], alias: [\"ts\"]},\n    {name: \"TypeScript-JSX\", mime: \"text/typescript-jsx\", mode: \"jsx\", ext: [\"tsx\"], alias: [\"tsx\"]},\n    {name: \"Twig\", mime: \"text/x-twig\", mode: \"twig\"},\n    {name: \"Web IDL\", mime: \"text/x-webidl\", mode: \"webidl\", ext: [\"webidl\"]},\n    {name: \"VB.NET\", mime: \"text/x-vb\", mode: \"vb\", ext: [\"vb\"]},\n    {name: \"VBScript\", mime: \"text/vbscript\", mode: \"vbscript\", ext: [\"vbs\"]},\n    {name: \"Velocity\", mime: \"text/velocity\", mode: \"velocity\", ext: [\"vtl\"]},\n    {name: \"Verilog\", mime: \"text/x-verilog\", mode: \"verilog\", ext: [\"v\"]},\n    {name: \"VHDL\", mime: \"text/x-vhdl\", mode: \"vhdl\", ext: [\"vhd\", \"vhdl\"]},\n    {name: \"Vue.js Component\", mimes: [\"script/x-vue\", \"text/x-vue\"], mode: \"vue\", ext: [\"vue\"]},\n    {name: \"XML\", mimes: [\"application/xml\", \"text/xml\"], mode: \"xml\", ext: [\"xml\", \"xsl\", \"xsd\", \"svg\"], alias: [\"rss\", \"wsdl\", \"xsd\"]},\n    {name: \"XQuery\", mime: \"application/xquery\", mode: \"xquery\", ext: [\"xy\", \"xquery\"]},\n    {name: \"Yacas\", mime: \"text/x-yacas\", mode: \"yacas\", ext: [\"ys\"]},\n    {name: \"YAML\", mimes: [\"text/x-yaml\", \"text/yaml\"], mode: \"yaml\", ext: [\"yaml\", \"yml\"], alias: [\"yml\"]},\n    {name: \"Z80\", mime: \"text/x-z80\", mode: \"z80\", ext: [\"z80\"]},\n    {name: \"mscgen\", mime: \"text/x-mscgen\", mode: \"mscgen\", ext: [\"mscgen\", \"mscin\", \"msc\"]},\n    {name: \"xu\", mime: \"text/x-xu\", mode: \"mscgen\", ext: [\"xu\"]},\n    {name: \"msgenny\", mime: \"text/x-msgenny\", mode: \"mscgen\", ext: [\"msgenny\"]},\n    {name: \"WebAssembly\", mime: \"text/webassembly\", mode: \"wast\", ext: [\"wat\", \"wast\"]},\n  ];\n  // Ensure all modes have a mime property for backwards compatibility\n  for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n    var info = CodeMirror.modeInfo[i];\n    if (info.mimes) info.mime = info.mimes[0];\n  }\n\n  CodeMirror.findModeByMIME = function(mime) {\n    mime = mime.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.mime == mime) return info;\n      if (info.mimes) for (var j = 0; j < info.mimes.length; j++)\n        if (info.mimes[j] == mime) return info;\n    }\n    if (/\\+xml$/.test(mime)) return CodeMirror.findModeByMIME(\"application/xml\")\n    if (/\\+json$/.test(mime)) return CodeMirror.findModeByMIME(\"application/json\")\n  };\n\n  CodeMirror.findModeByExtension = function(ext) {\n    ext = ext.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.ext) for (var j = 0; j < info.ext.length; j++)\n        if (info.ext[j] == ext) return info;\n    }\n  };\n\n  CodeMirror.findModeByFileName = function(filename) {\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.file && info.file.test(filename)) return info;\n    }\n    var dot = filename.lastIndexOf(\".\");\n    var ext = dot > -1 && filename.substring(dot + 1, filename.length);\n    if (ext) return CodeMirror.findModeByExtension(ext);\n  };\n\n  CodeMirror.findModeByName = function(name) {\n    name = name.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.name.toLowerCase() == name) return info;\n      if (info.alias) for (var j = 0; j < info.alias.length; j++)\n        if (info.alias[j].toLowerCase() == name) return info;\n    }\n  };\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mirc/mirc.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/mirc\", \"mirc\");\nCodeMirror.defineMode(\"mirc\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var specials = parseWords(\"$! $$ $& $? $+ $abook $abs $active $activecid \" +\n                            \"$activewid $address $addtok $agent $agentname $agentstat $agentver \" +\n                            \"$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime \" +\n                            \"$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind \" +\n                            \"$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes \" +\n                            \"$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color \" +\n                            \"$com $comcall $comchan $comerr $compact $compress $comval $cos $count \" +\n                            \"$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight \" +\n                            \"$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress \" +\n                            \"$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll \" +\n                            \"$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error \" +\n                            \"$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir \" +\n                            \"$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve \" +\n                            \"$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt \" +\n                            \"$group $halted $hash $height $hfind $hget $highlight $hnick $hotline \" +\n                            \"$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil \" +\n                            \"$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect \" +\n                            \"$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile \" +\n                            \"$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive \" +\n                            \"$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock \" +\n                            \"$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer \" +\n                            \"$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext \" +\n                            \"$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode \" +\n                            \"$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile \" +\n                            \"$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly \" +\n                            \"$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree \" +\n                            \"$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo \" +\n                            \"$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex \" +\n                            \"$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline \" +\n                            \"$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin \" +\n                            \"$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname \" +\n                            \"$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped \" +\n                            \"$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp \" +\n                            \"$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel \" +\n                            \"$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver \" +\n                            \"$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor\");\n  var keywords = parseWords(\"abook ajinvite alias aline ame amsg anick aop auser autojoin avoice \" +\n                            \"away background ban bcopy beep bread break breplace bset btrunc bunset bwrite \" +\n                            \"channel clear clearall cline clipboard close cnick color comclose comopen \" +\n                            \"comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver \" +\n                            \"debug dec describe dialog did didtok disable disconnect dlevel dline dll \" +\n                            \"dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace \" +\n                            \"drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable \" +\n                            \"events exit fclose filter findtext finger firewall flash flist flood flush \" +\n                            \"flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove \" +\n                            \"gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd \" +\n                            \"halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear \" +\n                            \"ialmark identd if ignore iline inc invite iuser join kick linesep links list \" +\n                            \"load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice \" +\n                            \"notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice \" +\n                            \"qme qmsg query queryn quit raw reload remini remote remove rename renwin \" +\n                            \"reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini \" +\n                            \"say scid scon server set showmirc signam sline sockaccept sockclose socklist \" +\n                            \"socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite \" +\n                            \"sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize \" +\n                            \"toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho \" +\n                            \"var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum \" +\n                            \"isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower \" +\n                            \"isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs \" +\n                            \"elseif else goto menu nicklist status title icon size option text edit \" +\n                            \"button check radio box scroll list combo link tab item\");\n  var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n  var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n  function tokenBase(stream, state) {\n    var beforeParams = state.beforeParams;\n    state.beforeParams = false;\n    var ch = stream.next();\n    if (/[\\[\\]{}\\(\\),\\.]/.test(ch)) {\n      if (ch == \"(\" && beforeParams) state.inParams = true;\n      else if (ch == \")\") state.inParams = false;\n      return null;\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    else if (ch == \"\\\\\") {\n      stream.eat(\"\\\\\");\n      stream.eat(/./);\n      return \"number\";\n    }\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      return chain(stream, state, tokenComment);\n    }\n    else if (ch == \";\" && stream.match(/ *\\( *\\(/)) {\n      return chain(stream, state, tokenUnparsed);\n    }\n    else if (ch == \";\" && !state.inParams) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (ch == '\"') {\n      stream.eat(/\"/);\n      return \"keyword\";\n    }\n    else if (ch == \"$\") {\n      stream.eatWhile(/[$_a-z0-9A-Z\\.:]/);\n      if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {\n        return \"keyword\";\n      }\n      else {\n        state.beforeParams = true;\n        return \"builtin\";\n      }\n    }\n    else if (ch == \"%\") {\n      stream.eatWhile(/[^,\\s()]/);\n      state.beforeParams = true;\n      return \"string\";\n    }\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    else {\n      stream.eatWhile(/[\\w\\$_{}]/);\n      var word = stream.current().toLowerCase();\n      if (keywords && keywords.propertyIsEnumerable(word))\n        return \"keyword\";\n      if (functions && functions.propertyIsEnumerable(word)) {\n        state.beforeParams = true;\n        return \"keyword\";\n      }\n      return null;\n    }\n  }\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n  function tokenUnparsed(stream, state) {\n    var maybeEnd = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \";\" && maybeEnd == 2) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      if (ch == \")\")\n        maybeEnd++;\n      else if (ch != \" \")\n        maybeEnd = 0;\n    }\n    return \"meta\";\n  }\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        beforeParams: false,\n        inParams: false\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mllike/mllike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('mllike', function(_config, parserConfig) {\n  var words = {\n    'as': 'keyword',\n    'do': 'keyword',\n    'else': 'keyword',\n    'end': 'keyword',\n    'exception': 'keyword',\n    'fun': 'keyword',\n    'functor': 'keyword',\n    'if': 'keyword',\n    'in': 'keyword',\n    'include': 'keyword',\n    'let': 'keyword',\n    'of': 'keyword',\n    'open': 'keyword',\n    'rec': 'keyword',\n    'struct': 'keyword',\n    'then': 'keyword',\n    'type': 'keyword',\n    'val': 'keyword',\n    'while': 'keyword',\n    'with': 'keyword'\n  };\n\n  var extraWords = parserConfig.extraWords || {};\n  for (var prop in extraWords) {\n    if (extraWords.hasOwnProperty(prop)) {\n      words[prop] = parserConfig.extraWords[prop];\n    }\n  }\n  var hintWords = [];\n  for (var k in words) { hintWords.push(k); }\n  CodeMirror.registerHelper(\"hintWords\", \"mllike\", hintWords);\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch === '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n    if (ch === '{') {\n      if (stream.eat('|')) {\n        state.longString = true;\n        state.tokenize = tokenLongString;\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch === '(') {\n      if (stream.eat('*')) {\n        state.commentLevel++;\n        state.tokenize = tokenComment;\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch === '~' || ch === '?') {\n      stream.eatWhile(/\\w/);\n      return 'variable-2';\n    }\n    if (ch === '`') {\n      stream.eatWhile(/\\w/);\n      return 'quote';\n    }\n    if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (/\\d/.test(ch)) {\n      if (ch === '0' && stream.eat(/[bB]/)) {\n        stream.eatWhile(/[01]/);\n      } if (ch === '0' && stream.eat(/[xX]/)) {\n        stream.eatWhile(/[0-9a-fA-F]/)\n      } if (ch === '0' && stream.eat(/[oO]/)) {\n        stream.eatWhile(/[0-7]/);\n      } else {\n        stream.eatWhile(/[\\d_]/);\n        if (stream.eat('.')) {\n          stream.eatWhile(/[\\d]/);\n        }\n        if (stream.eat(/[eE]/)) {\n          stream.eatWhile(/[\\d\\-+]/);\n        }\n      }\n      return 'number';\n    }\n    if ( /[+\\-*&%=<>!?|@\\.~:]/.test(ch)) {\n      return 'operator';\n    }\n    if (/[\\w\\xa1-\\uffff]/.test(ch)) {\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      var cur = stream.current();\n      return words.hasOwnProperty(cur) ? words[cur] : 'variable';\n    }\n    return null\n  }\n\n  function tokenString(stream, state) {\n    var next, end = false, escaped = false;\n    while ((next = stream.next()) != null) {\n      if (next === '\"' && !escaped) {\n        end = true;\n        break;\n      }\n      escaped = !escaped && next === '\\\\';\n    }\n    if (end && !escaped) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  };\n\n  function tokenComment(stream, state) {\n    var prev, next;\n    while(state.commentLevel > 0 && (next = stream.next()) != null) {\n      if (prev === '(' && next === '*') state.commentLevel++;\n      if (prev === '*' && next === ')') state.commentLevel--;\n      prev = next;\n    }\n    if (state.commentLevel <= 0) {\n      state.tokenize = tokenBase;\n    }\n    return 'comment';\n  }\n\n  function tokenLongString(stream, state) {\n    var prev, next;\n    while (state.longString && (next = stream.next()) != null) {\n      if (prev === '|' && next === '}') state.longString = false;\n      prev = next;\n    }\n    if (!state.longString) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  }\n\n  return {\n    startState: function() {return {tokenize: tokenBase, commentLevel: 0, longString: false};},\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    },\n\n    blockCommentStart: \"(*\",\n    blockCommentEnd: \"*)\",\n    lineComment: parserConfig.slashComments ? \"//\" : null\n  };\n});\n\nCodeMirror.defineMIME('text/x-ocaml', {\n  name: 'mllike',\n  extraWords: {\n    'and': 'keyword',\n    'assert': 'keyword',\n    'begin': 'keyword',\n    'class': 'keyword',\n    'constraint': 'keyword',\n    'done': 'keyword',\n    'downto': 'keyword',\n    'external': 'keyword',\n    'function': 'keyword',\n    'initializer': 'keyword',\n    'lazy': 'keyword',\n    'match': 'keyword',\n    'method': 'keyword',\n    'module': 'keyword',\n    'mutable': 'keyword',\n    'new': 'keyword',\n    'nonrec': 'keyword',\n    'object': 'keyword',\n    'private': 'keyword',\n    'sig': 'keyword',\n    'to': 'keyword',\n    'try': 'keyword',\n    'value': 'keyword',\n    'virtual': 'keyword',\n    'when': 'keyword',\n\n    // builtins\n    'raise': 'builtin',\n    'failwith': 'builtin',\n    'true': 'builtin',\n    'false': 'builtin',\n\n    // Pervasives builtins\n    'asr': 'builtin',\n    'land': 'builtin',\n    'lor': 'builtin',\n    'lsl': 'builtin',\n    'lsr': 'builtin',\n    'lxor': 'builtin',\n    'mod': 'builtin',\n    'or': 'builtin',\n\n    // More Pervasives\n    'raise_notrace': 'builtin',\n    'trace': 'builtin',\n    'exit': 'builtin',\n    'print_string': 'builtin',\n    'print_endline': 'builtin',\n\n     'int': 'type',\n     'float': 'type',\n     'bool': 'type',\n     'char': 'type',\n     'string': 'type',\n     'unit': 'type',\n\n     // Modules\n     'List': 'builtin'\n  }\n});\n\nCodeMirror.defineMIME('text/x-fsharp', {\n  name: 'mllike',\n  extraWords: {\n    'abstract': 'keyword',\n    'assert': 'keyword',\n    'base': 'keyword',\n    'begin': 'keyword',\n    'class': 'keyword',\n    'default': 'keyword',\n    'delegate': 'keyword',\n    'do!': 'keyword',\n    'done': 'keyword',\n    'downcast': 'keyword',\n    'downto': 'keyword',\n    'elif': 'keyword',\n    'extern': 'keyword',\n    'finally': 'keyword',\n    'for': 'keyword',\n    'function': 'keyword',\n    'global': 'keyword',\n    'inherit': 'keyword',\n    'inline': 'keyword',\n    'interface': 'keyword',\n    'internal': 'keyword',\n    'lazy': 'keyword',\n    'let!': 'keyword',\n    'match': 'keyword',\n    'member': 'keyword',\n    'module': 'keyword',\n    'mutable': 'keyword',\n    'namespace': 'keyword',\n    'new': 'keyword',\n    'null': 'keyword',\n    'override': 'keyword',\n    'private': 'keyword',\n    'public': 'keyword',\n    'return!': 'keyword',\n    'return': 'keyword',\n    'select': 'keyword',\n    'static': 'keyword',\n    'to': 'keyword',\n    'try': 'keyword',\n    'upcast': 'keyword',\n    'use!': 'keyword',\n    'use': 'keyword',\n    'void': 'keyword',\n    'when': 'keyword',\n    'yield!': 'keyword',\n    'yield': 'keyword',\n\n    // Reserved words\n    'atomic': 'keyword',\n    'break': 'keyword',\n    'checked': 'keyword',\n    'component': 'keyword',\n    'const': 'keyword',\n    'constraint': 'keyword',\n    'constructor': 'keyword',\n    'continue': 'keyword',\n    'eager': 'keyword',\n    'event': 'keyword',\n    'external': 'keyword',\n    'fixed': 'keyword',\n    'method': 'keyword',\n    'mixin': 'keyword',\n    'object': 'keyword',\n    'parallel': 'keyword',\n    'process': 'keyword',\n    'protected': 'keyword',\n    'pure': 'keyword',\n    'sealed': 'keyword',\n    'tailcall': 'keyword',\n    'trait': 'keyword',\n    'virtual': 'keyword',\n    'volatile': 'keyword',\n\n    // builtins\n    'List': 'builtin',\n    'Seq': 'builtin',\n    'Map': 'builtin',\n    'Set': 'builtin',\n    'Option': 'builtin',\n    'int': 'builtin',\n    'string': 'builtin',\n    'not': 'builtin',\n    'true': 'builtin',\n    'false': 'builtin',\n\n    'raise': 'builtin',\n    'failwith': 'builtin'\n  },\n  slashComments: true\n});\n\n\nCodeMirror.defineMIME('text/x-sml', {\n  name: 'mllike',\n  extraWords: {\n    'abstype': 'keyword',\n    'and': 'keyword',\n    'andalso': 'keyword',\n    'case': 'keyword',\n    'datatype': 'keyword',\n    'fn': 'keyword',\n    'handle': 'keyword',\n    'infix': 'keyword',\n    'infixr': 'keyword',\n    'local': 'keyword',\n    'nonfix': 'keyword',\n    'op': 'keyword',\n    'orelse': 'keyword',\n    'raise': 'keyword',\n    'withtype': 'keyword',\n    'eqtype': 'keyword',\n    'sharing': 'keyword',\n    'sig': 'keyword',\n    'signature': 'keyword',\n    'structure': 'keyword',\n    'where': 'keyword',\n    'true': 'keyword',\n    'false': 'keyword',\n\n    // types\n    'int': 'builtin',\n    'real': 'builtin',\n    'string': 'builtin',\n    'char': 'builtin',\n    'bool': 'builtin'\n  },\n  slashComments: true\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/modelica/modelica.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Modelica support for CodeMirror, copyright (c) by Lennart Ochel\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})\n\n(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"modelica\", function(config, parserConfig) {\n\n    var indentUnit = config.indentUnit;\n    var keywords = parserConfig.keywords || {};\n    var builtin = parserConfig.builtin || {};\n    var atoms = parserConfig.atoms || {};\n\n    var isSingleOperatorChar = /[;=\\(:\\),{}.*<>+\\-\\/^\\[\\]]/;\n    var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\\.\\+|\\.\\-|\\.\\*|\\.\\/|\\.\\^)/;\n    var isDigit = /[0-9]/;\n    var isNonDigit = /[_a-zA-Z]/;\n\n    function tokenLineComment(stream, state) {\n      stream.skipToEnd();\n      state.tokenize = null;\n      return \"comment\";\n    }\n\n    function tokenBlockComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (maybeEnd && ch == \"/\") {\n          state.tokenize = null;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n\n    function tokenString(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == '\"' && !escaped) {\n          state.tokenize = null;\n          state.sol = false;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n\n      return \"string\";\n    }\n\n    function tokenIdent(stream, state) {\n      stream.eatWhile(isDigit);\n      while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }\n\n\n      var cur = stream.current();\n\n      if(state.sol && (cur == \"package\" || cur == \"model\" || cur == \"when\" || cur == \"connector\")) state.level++;\n      else if(state.sol && cur == \"end\" && state.level > 0) state.level--;\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      else if (builtin.propertyIsEnumerable(cur)) return \"builtin\";\n      else if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n      else return \"variable\";\n    }\n\n    function tokenQIdent(stream, state) {\n      while (stream.eat(/[^']/)) { }\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if(stream.eat(\"'\"))\n        return \"variable\";\n      else\n        return \"error\";\n    }\n\n    function tokenUnsignedNumber(stream, state) {\n      stream.eatWhile(isDigit);\n      if (stream.eat('.')) {\n        stream.eatWhile(isDigit);\n      }\n      if (stream.eat('e') || stream.eat('E')) {\n        if (!stream.eat('-'))\n          stream.eat('+');\n        stream.eatWhile(isDigit);\n      }\n\n      state.tokenize = null;\n      state.sol = false;\n      return \"number\";\n    }\n\n    // Interface\n    return {\n      startState: function() {\n        return {\n          tokenize: null,\n          level: 0,\n          sol: true\n        };\n      },\n\n      token: function(stream, state) {\n        if(state.tokenize != null) {\n          return state.tokenize(stream, state);\n        }\n\n        if(stream.sol()) {\n          state.sol = true;\n        }\n\n        // WHITESPACE\n        if(stream.eatSpace()) {\n          state.tokenize = null;\n          return null;\n        }\n\n        var ch = stream.next();\n\n        // LINECOMMENT\n        if(ch == '/' && stream.eat('/')) {\n          state.tokenize = tokenLineComment;\n        }\n        // BLOCKCOMMENT\n        else if(ch == '/' && stream.eat('*')) {\n          state.tokenize = tokenBlockComment;\n        }\n        // TWO SYMBOL TOKENS\n        else if(isDoubleOperatorChar.test(ch+stream.peek())) {\n          stream.next();\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // SINGLE SYMBOL TOKENS\n        else if(isSingleOperatorChar.test(ch)) {\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // IDENT\n        else if(isNonDigit.test(ch)) {\n          state.tokenize = tokenIdent;\n        }\n        // Q-IDENT\n        else if(ch == \"'\" && stream.peek() && stream.peek() != \"'\") {\n          state.tokenize = tokenQIdent;\n        }\n        // STRING\n        else if(ch == '\"') {\n          state.tokenize = tokenString;\n        }\n        // UNSIGNED_NUMBER\n        else if(isDigit.test(ch)) {\n          state.tokenize = tokenUnsignedNumber;\n        }\n        // ERROR\n        else {\n          state.tokenize = null;\n          return \"error\";\n        }\n\n        return state.tokenize(stream, state);\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != null) return CodeMirror.Pass;\n\n        var level = state.level;\n        if(/(algorithm)/.test(textAfter)) level--;\n        if(/(equation)/.test(textAfter)) level--;\n        if(/(initial algorithm)/.test(textAfter)) level--;\n        if(/(initial equation)/.test(textAfter)) level--;\n        if(/(end)/.test(textAfter)) level--;\n\n        if(level > 0)\n          return indentUnit*level;\n        else\n          return 0;\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i=0; i<words.length; ++i)\n      obj[words[i]] = true;\n    return obj;\n  }\n\n  var modelicaKeywords = \"algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within\";\n  var modelicaBuiltin = \"abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh\";\n  var modelicaAtoms = \"Real Boolean Integer String\";\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\")\n      mimes = [mimes];\n\n    var words = [];\n\n    function add(obj) {\n      if (obj)\n        for (var prop in obj)\n          if (obj.hasOwnProperty(prop))\n            words.push(prop);\n    }\n\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.atoms);\n\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i=0; i<mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-modelica\"], {\n    name: \"modelica\",\n    keywords: words(modelicaKeywords),\n    builtin: words(modelicaBuiltin),\n    atoms: words(modelicaAtoms)\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mscgen/mscgen.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// mode(s) for the sequence chart dsl's mscgen, xù and msgenny\n// For more information on mscgen, see the site of the original author:\n// http://www.mcternan.me.uk/mscgen\n//\n// This mode for mscgen and the two derivative languages were\n// originally made for use in the mscgen_js interpreter\n// (https://sverweij.github.io/mscgen_js)\n\n(function(mod) {\n  if ( typeof exports == \"object\" && typeof module == \"object\")// CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if ( typeof define == \"function\" && define.amd)// AMD\n    define([\"../../lib/codemirror\"], mod);\n  else// Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var languages = {\n    mscgen: {\n      \"keywords\" : [\"msc\"],\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\"],\n      \"attributes\" : [\"label\", \"idurl\", \"id\", \"url\", \"linecolor\", \"linecolour\", \"textcolor\", \"textcolour\", \"textbgcolor\", \"textbgcolour\", \"arclinecolor\", \"arclinecolour\", \"arctextcolor\", \"arctextcolour\", \"arctextbgcolor\", \"arctextbgcolour\", \"arcskip\"],\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"], // [ and  ] are brackets too, but these get handled in with lists\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    },\n    xu: {\n      \"keywords\" : [\"msc\", \"xu\"],\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\", \"wordwrapentities\", \"watermark\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\", \"auto\"],\n      \"attributes\" : [\"label\", \"idurl\", \"id\", \"url\", \"linecolor\", \"linecolour\", \"textcolor\", \"textcolour\", \"textbgcolor\", \"textbgcolour\", \"arclinecolor\", \"arclinecolour\", \"arctextcolor\", \"arctextcolour\", \"arctextbgcolor\", \"arctextbgcolour\", \"arcskip\", \"title\", \"deactivate\", \"activate\", \"activation\"],\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"],  // [ and  ] are brackets too, but these get handled in with lists\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\", \"alt\", \"else\", \"opt\", \"break\", \"par\", \"seq\", \"strict\", \"neg\", \"critical\", \"ignore\", \"consider\", \"assert\", \"loop\", \"ref\", \"exc\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    },\n    msgenny: {\n      \"keywords\" : null,\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\", \"wordwrapentities\", \"watermark\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\", \"auto\"],\n      \"attributes\" : null,\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"],\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\", \"alt\", \"else\", \"opt\", \"break\", \"par\", \"seq\", \"strict\", \"neg\", \"critical\", \"ignore\", \"consider\", \"assert\", \"loop\", \"ref\", \"exc\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    }\n  }\n\n  CodeMirror.defineMode(\"mscgen\", function(_, modeConfig) {\n    var language = languages[modeConfig && modeConfig.language || \"mscgen\"]\n    return {\n      startState: startStateFn,\n      copyState: copyStateFn,\n      token: produceTokenFunction(language),\n      lineComment : \"#\",\n      blockCommentStart : \"/*\",\n      blockCommentEnd : \"*/\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-mscgen\", \"mscgen\");\n  CodeMirror.defineMIME(\"text/x-xu\", {name: \"mscgen\", language: \"xu\"});\n  CodeMirror.defineMIME(\"text/x-msgenny\", {name: \"mscgen\", language: \"msgenny\"});\n\n  function wordRegexpBoundary(pWords) {\n    return new RegExp(\"^\\\\b(?:\" + pWords.join(\"|\") + \")\\\\b\", \"i\");\n  }\n\n  function wordRegexp(pWords) {\n    return new RegExp(\"^(?:\" + pWords.join(\"|\") + \")\", \"i\");\n  }\n\n  function startStateFn() {\n    return {\n      inComment : false,\n      inString : false,\n      inAttributeList : false,\n      inScript : false\n    };\n  }\n\n  function copyStateFn(pState) {\n    return {\n      inComment : pState.inComment,\n      inString : pState.inString,\n      inAttributeList : pState.inAttributeList,\n      inScript : pState.inScript\n    };\n  }\n\n  function produceTokenFunction(pConfig) {\n\n    return function(pStream, pState) {\n      if (pStream.match(wordRegexp(pConfig.brackets), true, true)) {\n        return \"bracket\";\n      }\n      /* comments */\n      if (!pState.inComment) {\n        if (pStream.match(/\\/\\*[^\\*\\/]*/, true, true)) {\n          pState.inComment = true;\n          return \"comment\";\n        }\n        if (pStream.match(wordRegexp(pConfig.singlecomment), true, true)) {\n          pStream.skipToEnd();\n          return \"comment\";\n        }\n      }\n      if (pState.inComment) {\n        if (pStream.match(/[^\\*\\/]*\\*\\//, true, true))\n          pState.inComment = false;\n        else\n          pStream.skipToEnd();\n        return \"comment\";\n      }\n      /* strings */\n      if (!pState.inString && pStream.match(/\\\"(\\\\\\\"|[^\\\"])*/, true, true)) {\n        pState.inString = true;\n        return \"string\";\n      }\n      if (pState.inString) {\n        if (pStream.match(/[^\\\"]*\\\"/, true, true))\n          pState.inString = false;\n        else\n          pStream.skipToEnd();\n        return \"string\";\n      }\n      /* keywords & operators */\n      if (!!pConfig.keywords && pStream.match(wordRegexpBoundary(pConfig.keywords), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexpBoundary(pConfig.options), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexpBoundary(pConfig.arcsWords), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexp(pConfig.arcsOthers), true, true))\n        return \"keyword\";\n\n      if (!!pConfig.operators && pStream.match(wordRegexp(pConfig.operators), true, true))\n        return \"operator\";\n\n      if (!!pConfig.constants && pStream.match(wordRegexp(pConfig.constants), true, true))\n        return \"variable\";\n\n      /* attribute lists */\n      if (!pConfig.inAttributeList && !!pConfig.attributes && pStream.match('[', true, true)) {\n        pConfig.inAttributeList = true;\n        return \"bracket\";\n      }\n      if (pConfig.inAttributeList) {\n        if (pConfig.attributes !== null && pStream.match(wordRegexpBoundary(pConfig.attributes), true, true)) {\n          return \"attribute\";\n        }\n        if (pStream.match(']', true, true)) {\n          pConfig.inAttributeList = false;\n          return \"bracket\";\n        }\n      }\n\n      pStream.next();\n      return \"base\";\n    };\n  }\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/mumps/mumps.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n  This MUMPS Language script was constructed using vbscript.js as a template.\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"mumps\", function() {\n    function wordRegexp(words) {\n      return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&#!_?\\\\\\\\<>=\\\\'\\\\[\\\\]]\");\n    var doubleOperators = new RegExp(\"^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))\");\n    var singleDelimiters = new RegExp(\"^[\\\\.,:]\");\n    var brackets = new RegExp(\"[()]\");\n    var identifiers = new RegExp(\"^[%A-Za-z][A-Za-z0-9]*\");\n    var commandKeywords = [\"break\",\"close\",\"do\",\"else\",\"for\",\"goto\", \"halt\", \"hang\", \"if\", \"job\",\"kill\",\"lock\",\"merge\",\"new\",\"open\", \"quit\", \"read\", \"set\", \"tcommit\", \"trollback\", \"tstart\", \"use\", \"view\", \"write\", \"xecute\", \"b\",\"c\",\"d\",\"e\",\"f\",\"g\", \"h\", \"i\", \"j\",\"k\",\"l\",\"m\",\"n\",\"o\", \"q\", \"r\", \"s\", \"tc\", \"tro\", \"ts\", \"u\", \"v\", \"w\", \"x\"];\n    // The following list includes intrinsic functions _and_ special variables\n    var intrinsicFuncsWords = [\"\\\\$ascii\", \"\\\\$char\", \"\\\\$data\", \"\\\\$ecode\", \"\\\\$estack\", \"\\\\$etrap\", \"\\\\$extract\", \"\\\\$find\", \"\\\\$fnumber\", \"\\\\$get\", \"\\\\$horolog\", \"\\\\$io\", \"\\\\$increment\", \"\\\\$job\", \"\\\\$justify\", \"\\\\$length\", \"\\\\$name\", \"\\\\$next\", \"\\\\$order\", \"\\\\$piece\", \"\\\\$qlength\", \"\\\\$qsubscript\", \"\\\\$query\", \"\\\\$quit\", \"\\\\$random\", \"\\\\$reverse\", \"\\\\$select\", \"\\\\$stack\", \"\\\\$test\", \"\\\\$text\", \"\\\\$translate\", \"\\\\$view\", \"\\\\$x\", \"\\\\$y\", \"\\\\$a\", \"\\\\$c\", \"\\\\$d\", \"\\\\$e\", \"\\\\$ec\", \"\\\\$es\", \"\\\\$et\", \"\\\\$f\", \"\\\\$fn\", \"\\\\$g\", \"\\\\$h\", \"\\\\$i\", \"\\\\$j\", \"\\\\$l\", \"\\\\$n\", \"\\\\$na\", \"\\\\$o\", \"\\\\$p\", \"\\\\$q\", \"\\\\$ql\", \"\\\\$qs\", \"\\\\$r\", \"\\\\$re\", \"\\\\$s\", \"\\\\$st\", \"\\\\$t\", \"\\\\$tr\", \"\\\\$v\", \"\\\\$z\"];\n    var intrinsicFuncs = wordRegexp(intrinsicFuncsWords);\n    var command = wordRegexp(commandKeywords);\n\n    function tokenBase(stream, state) {\n      if (stream.sol()) {\n        state.label = true;\n        state.commandMode = 0;\n      }\n\n      // The <space> character has meaning in MUMPS. Ignoring consecutive\n      // spaces would interfere with interpreting whether the next non-space\n      // character belongs to the command or argument context.\n\n      // Examine each character and update a mode variable whose interpretation is:\n      //   >0 => command    0 => argument    <0 => command post-conditional\n      var ch = stream.peek();\n\n      if (ch == \" \" || ch == \"\\t\") { // Pre-process <space>\n        state.label = false;\n        if (state.commandMode == 0)\n          state.commandMode = 1;\n        else if ((state.commandMode < 0) || (state.commandMode == 2))\n          state.commandMode = 0;\n      } else if ((ch != \".\") && (state.commandMode > 0)) {\n        if (ch == \":\")\n          state.commandMode = -1;   // SIS - Command post-conditional\n        else\n          state.commandMode = 2;\n      }\n\n      // Do not color parameter list as line tag\n      if ((ch === \"(\") || (ch === \"\\u0009\"))\n        state.label = false;\n\n      // MUMPS comment starts with \";\"\n      if (ch === \";\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Number Literals // SIS/RLM - MUMPS permits canonic number followed by concatenate operator\n      if (stream.match(/^[-+]?\\d+(\\.\\d+)?([eE][-+]?\\d+)?/))\n        return \"number\";\n\n      // Handle Strings\n      if (ch == '\"') {\n        if (stream.skipTo('\"')) {\n          stream.next();\n          return \"string\";\n        } else {\n          stream.skipToEnd();\n          return \"error\";\n        }\n      }\n\n      // Handle operators and Delimiters\n      if (stream.match(doubleOperators) || stream.match(singleOperators))\n        return \"operator\";\n\n      // Prevents leading \".\" in DO block from falling through to error\n      if (stream.match(singleDelimiters))\n        return null;\n\n      if (brackets.test(ch)) {\n        stream.next();\n        return \"bracket\";\n      }\n\n      if (state.commandMode > 0 && stream.match(command))\n        return \"variable-2\";\n\n      if (stream.match(intrinsicFuncs))\n        return \"builtin\";\n\n      if (stream.match(identifiers))\n        return \"variable\";\n\n      // Detect dollar-sign when not a documented intrinsic function\n      // \"^\" may introduce a GVN or SSVN - Color same as function\n      if (ch === \"$\" || ch === \"^\") {\n        stream.next();\n        return \"builtin\";\n      }\n\n      // MUMPS Indirection\n      if (ch === \"@\") {\n        stream.next();\n        return \"string-2\";\n      }\n\n      if (/[\\w%]/.test(ch)) {\n        stream.eatWhile(/[\\w%]/);\n        return \"variable\";\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return \"error\";\n    }\n\n    return {\n      startState: function() {\n        return {\n          label: false,\n          commandMode: 0\n        };\n      },\n\n      token: function(stream, state) {\n        var style = tokenBase(stream, state);\n        if (state.label) return \"tag\";\n        return style;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-mumps\", \"mumps\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/nginx/nginx.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"nginx\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\n    /* ngxDirectiveControl */ \"break return rewrite set\" +\n    /* ngxDirective */ \" accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23\"\n    );\n\n  var keywords_block = words(\n    /* ngxDirectiveBlock */ \"http mail events server types location upstream charset_map limit_except if geo map\"\n    );\n\n  var keywords_important = words(\n    /* ngxDirectiveImportant */ \"include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files\"\n    );\n\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n\n\n    stream.eatWhile(/[\\w\\$_]/);\n\n    var cur = stream.current();\n\n\n    if (keywords.propertyIsEnumerable(cur)) {\n      return \"keyword\";\n    }\n    else if (keywords_block.propertyIsEnumerable(cur)) {\n      return \"variable-2\";\n    }\n    else if (keywords_important.propertyIsEnumerable(cur)) {\n      return \"string-2\";\n    }\n    /**/\n\n    var ch = stream.next();\n    if (ch == \"@\") {stream.eatWhile(/[\\w\\\\\\-]/); return ret(\"meta\", stream.current());}\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n    else if (ch == \"<\" && stream.eat(\"!\")) {\n      state.tokenize = tokenSGMLComment;\n      return tokenSGMLComment(stream, state);\n    }\n    else if (ch == \"=\") ret(null, \"compare\");\n    else if ((ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) return ret(null, \"compare\");\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return ret(\"comment\", \"comment\");\n    }\n    else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    }\n    else if (/[,.+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    }\n    else if (/[;{}:\\[\\]]/.test(ch)) {\n      return ret(null, ch);\n    }\n    else {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"variable\", \"variable\");\n    }\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (type == \"hash\" && context == \"rule\") style = \"atom\";\n      else if (style == \"variable\") {\n        if (context == \"rule\") style = \"number\";\n        else if (!context || context == \"@media{\") style = \"tag\";\n      }\n\n      if (context == \"rule\" && /^[\\{\\};]$/.test(type))\n        state.stack.pop();\n      if (type == \"{\") {\n        if (context == \"@media\") state.stack[state.stack.length-1] = \"@media{\";\n        else state.stack.push(\"{\");\n      }\n      else if (type == \"}\") state.stack.pop();\n      else if (type == \"@media\") state.stack.push(\"@media\");\n      else if (context == \"{\" && type != \"comment\") state.stack.push(\"rule\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n      if (/^\\}/.test(textAfter))\n        n -= state.stack[state.stack.length-1] == \"rule\" ? 2 : 1;\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-nginx-conf\", \"nginx\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/nsis/nsis.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Author: Jan T. Sott (http://github.com/idleberg)\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineSimpleMode(\"nsis\",{\n  start:[\n    // Numbers\n    {regex: /(?:[+-]?)(?:0x[\\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\\d+.?\\d*)/, token: \"number\"},\n\n    // Strings\n    { regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/, token: \"string\" },\n    { regex: /'(?:[^\\\\']|\\\\.)*'?/, token: \"string\" },\n    { regex: /`(?:[^\\\\`]|\\\\.)*`?/, token: \"string\" },\n\n    // Compile Time Commands\n    {regex: /^\\s*(?:\\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|pragma|finalize|getdllversion|gettlbversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace))\\b/, token: \"keyword\"},\n\n    // Conditional Compilation\n    {regex: /^\\s*(?:\\!(if(?:n?def)?|ifmacron?def|macro))\\b/, token: \"keyword\", indent: true},\n    {regex: /^\\s*(?:\\!(else|endif|macroend))\\b/, token: \"keyword\", dedent: true},\n\n    // Runtime Commands\n    {regex: /^\\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\\b/, token: \"keyword\"},\n    {regex: /^\\s*(?:Function|PageEx|Section(?:Group)?)\\b/, token: \"keyword\", indent: true},\n    {regex: /^\\s*(?:(Function|PageEx|Section(?:Group)?)End)\\b/, token: \"keyword\", dedent: true},\n\n    // Command Options\n    {regex: /\\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\\b/, token: \"atom\"},\n    {regex: /\\b(?:admin|all|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\\.components|un\\.custom|un\\.directory|un\\.instfiles|un\\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|zlib)\\b/, token: \"builtin\"},\n\n    // LogicLib.nsh\n    {regex: /\\$\\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\\}/, token: \"variable-2\", indent: true},\n\n    // FileFunc.nsh\n    {regex: /\\$\\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\\}/, token: \"variable-2\", dedent: true},\n\n    // Memento.nsh\n    {regex: /\\$\\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\\}/, token: \"variable-2\", dedent: true},\n\n    // TextFunc.nsh\n    {regex: /\\$\\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\\}/, token: \"variable-2\", dedent: true},\n\n    // WinVer.nsh\n    {regex: /\\$\\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\\}/, token: \"variable\", dedent: true},\n\n    // WordFunc.nsh\n    {regex: /\\$\\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\\}/, token: \"variable-2\", dedent: true},\n\n    // x64.nsh\n    {regex: /\\$\\{(?:RunningX64)\\}/, token: \"variable\", dedent: true},\n    {regex: /\\$\\{(?:Disable|Enable)X64FSRedirection\\}/, token: \"variable-2\", dedent: true},\n\n    // Line Comment\n    {regex: /(#|;).*/, token: \"comment\"},\n\n    // Block Comment\n    {regex: /\\/\\*/, token: \"comment\", next: \"comment\"},\n\n    // Operator\n    {regex: /[-+\\/*=<>!]+/, token: \"operator\"},\n\n    // Variable\n    {regex: /\\$\\w+/, token: \"variable\"},\n\n    // Constant\n    {regex: /\\${[\\w\\.:-]+}/, token: \"variable-2\"},\n\n    // Language String\n    {regex: /\\$\\([\\w\\.:-]+\\)/, token: \"variable-3\"}\n  ],\n  comment: [\n    {regex: /.*?\\*\\//, token: \"comment\", next: \"start\"},\n    {regex: /.*/, token: \"comment\"}\n  ],\n  meta: {\n    electricInput: /^\\s*((Function|PageEx|Section|Section(Group)?)End|(\\!(endif|macroend))|\\$\\{(End(If|Unless|While)|Loop(Until)|Next)\\})$/,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: [\"#\", \";\"]\n  }\n});\n\nCodeMirror.defineMIME(\"text/x-nsis\", \"nsis\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ntriples/ntriples.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**********************************************************\n* This script provides syntax highlighting support for\n* the N-Triples format.\n* N-Triples format specification:\n*     https://www.w3.org/TR/n-triples/\n***********************************************************/\n\n/*\n    The following expression defines the defined ASF grammar transitions.\n\n    pre_subject ->\n        {\n        ( writing_subject_uri | writing_bnode_uri )\n            -> pre_predicate\n                -> writing_predicate_uri\n                    -> pre_object\n                        -> writing_object_uri | writing_object_bnode |\n                          (\n                            writing_object_literal\n                                -> writing_literal_lang | writing_literal_type\n                          )\n                            -> post_object\n                                -> BEGIN\n         } otherwise {\n             -> ERROR\n         }\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ntriples\", function() {\n\n  var Location = {\n    PRE_SUBJECT         : 0,\n    WRITING_SUB_URI     : 1,\n    WRITING_BNODE_URI   : 2,\n    PRE_PRED            : 3,\n    WRITING_PRED_URI    : 4,\n    PRE_OBJ             : 5,\n    WRITING_OBJ_URI     : 6,\n    WRITING_OBJ_BNODE   : 7,\n    WRITING_OBJ_LITERAL : 8,\n    WRITING_LIT_LANG    : 9,\n    WRITING_LIT_TYPE    : 10,\n    POST_OBJ            : 11,\n    ERROR               : 12\n  };\n  function transitState(currState, c) {\n    var currLocation = currState.location;\n    var ret;\n\n    // Opening.\n    if     (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI;\n    else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI;\n    else if(currLocation == Location.PRE_PRED    && c == '<') ret = Location.WRITING_PRED_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '<') ret = Location.WRITING_OBJ_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '_') ret = Location.WRITING_OBJ_BNODE;\n    else if(currLocation == Location.PRE_OBJ     && c == '\"') ret = Location.WRITING_OBJ_LITERAL;\n\n    // Closing.\n    else if(currLocation == Location.WRITING_SUB_URI     && c == '>') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_BNODE_URI   && c == ' ') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_PRED_URI    && c == '>') ret = Location.PRE_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_URI     && c == '>') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_BNODE   && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '\"') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ;\n\n    // Closing typed and language literal.\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE;\n\n    // Spaces.\n    else if( c == ' ' &&\n             (\n               currLocation == Location.PRE_SUBJECT ||\n               currLocation == Location.PRE_PRED    ||\n               currLocation == Location.PRE_OBJ     ||\n               currLocation == Location.POST_OBJ\n             )\n           ) ret = currLocation;\n\n    // Reset.\n    else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT;\n\n    // Error\n    else ret = Location.ERROR;\n\n    currState.location=ret;\n  }\n\n  return {\n    startState: function() {\n       return {\n           location : Location.PRE_SUBJECT,\n           uris     : [],\n           anchors  : [],\n           bnodes   : [],\n           langs    : [],\n           types    : []\n       };\n    },\n    token: function(stream, state) {\n      var ch = stream.next();\n      if(ch == '<') {\n         transitState(state, ch);\n         var parsedURI = '';\n         stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} );\n         state.uris.push(parsedURI);\n         if( stream.match('#', false) ) return 'variable';\n         stream.next();\n         transitState(state, '>');\n         return 'variable';\n      }\n      if(ch == '#') {\n        var parsedAnchor = '';\n        stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;});\n        state.anchors.push(parsedAnchor);\n        return 'variable-2';\n      }\n      if(ch == '>') {\n          transitState(state, '>');\n          return 'variable';\n      }\n      if(ch == '_') {\n          transitState(state, ch);\n          var parsedBNode = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;});\n          state.bnodes.push(parsedBNode);\n          stream.next();\n          transitState(state, ' ');\n          return 'builtin';\n      }\n      if(ch == '\"') {\n          transitState(state, ch);\n          stream.eatWhile( function(c) { return c != '\"'; } );\n          stream.next();\n          if( stream.peek() != '@' && stream.peek() != '^' ) {\n              transitState(state, '\"');\n          }\n          return 'string';\n      }\n      if( ch == '@' ) {\n          transitState(state, '@');\n          var parsedLang = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;});\n          state.langs.push(parsedLang);\n          stream.next();\n          transitState(state, ' ');\n          return 'string-2';\n      }\n      if( ch == '^' ) {\n          stream.next();\n          transitState(state, '^');\n          var parsedType = '';\n          stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} );\n          state.types.push(parsedType);\n          stream.next();\n          transitState(state, '>');\n          return 'variable';\n      }\n      if( ch == ' ' ) {\n          transitState(state, ch);\n      }\n      if( ch == '.' ) {\n          transitState(state, ch);\n      }\n    }\n  };\n});\n\n// define the registered Media Type for n-triples:\n// https://www.w3.org/TR/n-triples/#n-triples-mediatype\nCodeMirror.defineMIME(\"application/n-triples\", \"ntriples\");\n\n// N-Quads is based on the N-Triples format (so same highlighting works)\n// https://www.w3.org/TR/n-quads/\nCodeMirror.defineMIME(\"application/n-quads\", \"ntriples\");\n\n// previously used, though technically incorrect media type for n-triples\nCodeMirror.defineMIME(\"text/n-triples\", \"ntriples\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/octave/octave.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"octave\", function() {\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&|\\\\^~<>!@'\\\\\\\\]\");\n  var singleDelimiters = new RegExp('^[\\\\(\\\\[\\\\{\\\\},:=;\\\\.]');\n  var doubleOperators = new RegExp(\"^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\\\.[\\\\+\\\\-\\\\*/\\\\^\\\\\\\\]))\");\n  var doubleDelimiters = new RegExp(\"^((!=)|(\\\\+=)|(\\\\-=)|(\\\\*=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n  var tripleDelimiters = new RegExp(\"^((>>=)|(<<=))\");\n  var expressionEnd = new RegExp(\"^[\\\\]\\\\)]\");\n  var identifiers = new RegExp(\"^[_A-Za-z\\xa1-\\uffff][_A-Za-z0-9\\xa1-\\uffff]*\");\n\n  var builtins = wordRegexp([\n    'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',\n    'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',\n    'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',\n    'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',\n    'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',\n    'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',\n    'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'\n  ]);\n\n  var keywords = wordRegexp([\n    'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',\n    'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',\n    'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',\n    'continue', 'pkg'\n  ]);\n\n\n  // tokenizers\n  function tokenTranspose(stream, state) {\n    if (!stream.sol() && stream.peek() === '\\'') {\n      stream.next();\n      state.tokenize = tokenBase;\n      return 'operator';\n    }\n    state.tokenize = tokenBase;\n    return tokenBase(stream, state);\n  }\n\n\n  function tokenComment(stream, state) {\n    if (stream.match(/^.*%}/)) {\n      state.tokenize = tokenBase;\n      return 'comment';\n    };\n    stream.skipToEnd();\n    return 'comment';\n  }\n\n  function tokenBase(stream, state) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match('%{')){\n      state.tokenize = tokenComment;\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    if (stream.match(/^[%#]/)){\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {\n        stream.tokenize = tokenBase;\n        return 'number'; };\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n    }\n    if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };\n\n    // Handle Strings\n    var m = stream.match(/^\"(?:[^\"]|\"\")*(\"|$)/) || stream.match(/^'(?:[^']|'')*('|$)/)\n    if (m) { return m[1] ? 'string' : \"string error\"; }\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; } ;\n    if (stream.match(builtins)) { return 'builtin'; } ;\n    if (stream.match(identifiers)) { return 'variable'; } ;\n\n    if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };\n    if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };\n\n    if (stream.match(expressionEnd)) {\n      state.tokenize = tokenTranspose;\n      return null;\n    };\n\n\n    // Handle non-detected items\n    stream.next();\n    return 'error';\n  };\n\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      if (style === 'number' || style === 'variable'){\n        state.tokenize = tokenTranspose;\n      }\n      return style;\n    },\n\n    lineComment: '%',\n\n    fold: 'indent'\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-octave\", \"octave\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/oz/oz.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"oz\", function (conf) {\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var singleOperators = /[\\^@!\\|<>#~\\.\\*\\-\\+\\\\/,=]/;\n  var doubleOperators = /(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\\\=)|(\\\\=:)|(!!)|(==)|(::)/;\n  var tripleOperators = /(:::)|(\\.\\.\\.)|(=<:)|(>=:)/;\n\n  var middle = [\"in\", \"then\", \"else\", \"of\", \"elseof\", \"elsecase\", \"elseif\", \"catch\",\n    \"finally\", \"with\", \"require\", \"prepare\", \"import\", \"export\", \"define\", \"do\"];\n  var end = [\"end\"];\n\n  var atoms = wordRegexp([\"true\", \"false\", \"nil\", \"unit\"]);\n  var commonKeywords = wordRegexp([\"andthen\", \"at\", \"attr\", \"declare\", \"feat\", \"from\", \"lex\",\n    \"mod\", \"div\", \"mode\", \"orelse\", \"parser\", \"prod\", \"prop\", \"scanner\", \"self\", \"syn\", \"token\"]);\n  var openingKeywords = wordRegexp([\"local\", \"proc\", \"fun\", \"case\", \"class\", \"if\", \"cond\", \"or\", \"dis\",\n    \"choice\", \"not\", \"thread\", \"try\", \"raise\", \"lock\", \"for\", \"suchthat\", \"meth\", \"functor\"]);\n  var middleKeywords = wordRegexp(middle);\n  var endKeywords = wordRegexp(end);\n\n  // Tokenizers\n  function tokenBase(stream, state) {\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    // Brackets\n    if(stream.match(/[{}]/)) {\n      return \"bracket\";\n    }\n\n    // Special [] keyword\n    if (stream.match('[]')) {\n        return \"keyword\"\n    }\n\n    // Operators\n    if (stream.match(tripleOperators) || stream.match(doubleOperators)) {\n      return \"operator\";\n    }\n\n    // Atoms\n    if(stream.match(atoms)) {\n      return 'atom';\n    }\n\n    // Opening keywords\n    var matched = stream.match(openingKeywords);\n    if (matched) {\n      if (!state.doInCurrentLine)\n        state.currentIndent++;\n      else\n        state.doInCurrentLine = false;\n\n      // Special matching for signatures\n      if(matched[0] == \"proc\" || matched[0] == \"fun\")\n        state.tokenize = tokenFunProc;\n      else if(matched[0] == \"class\")\n        state.tokenize = tokenClass;\n      else if(matched[0] == \"meth\")\n        state.tokenize = tokenMeth;\n\n      return 'keyword';\n    }\n\n    // Middle and other keywords\n    if (stream.match(middleKeywords) || stream.match(commonKeywords)) {\n      return \"keyword\"\n    }\n\n    // End keywords\n    if (stream.match(endKeywords)) {\n      state.currentIndent--;\n      return 'keyword';\n    }\n\n    // Eat the next char for next comparisons\n    var ch = stream.next();\n\n    // Strings\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n\n    // Numbers\n    if (/[~\\d]/.test(ch)) {\n      if (ch == \"~\") {\n        if(! /^[0-9]/.test(stream.peek()))\n          return null;\n        else if (( stream.next() == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\\.[0-9]+)?([eE][~+]?[0-9]+)?/))\n          return \"number\";\n      }\n\n      if ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/)) || stream.match(/^[0-9]*(\\.[0-9]+)?([eE][~+]?[0-9]+)?/))\n        return \"number\";\n\n      return null;\n    }\n\n    // Comments\n    if (ch == \"%\") {\n      stream.skipToEnd();\n      return 'comment';\n    }\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n    }\n\n    // Single operators\n    if(singleOperators.test(ch)) {\n      return \"operator\";\n    }\n\n    // If nothing match, we skip the entire alphanumeric block\n    stream.eatWhile(/\\w/);\n\n    return \"variable\";\n  }\n\n  function tokenClass(stream, state) {\n    if (stream.eatSpace()) {\n      return null;\n    }\n    stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);\n    state.tokenize = tokenBase;\n    return \"variable-3\"\n  }\n\n  function tokenMeth(stream, state) {\n    if (stream.eatSpace()) {\n      return null;\n    }\n    stream.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);\n    state.tokenize = tokenBase;\n    return \"def\"\n  }\n\n  function tokenFunProc(stream, state) {\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    if(!state.hasPassedFirstStage && stream.eat(\"{\")) {\n      state.hasPassedFirstStage = true;\n      return \"bracket\";\n    }\n    else if(state.hasPassedFirstStage) {\n      stream.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\\$/);\n      state.hasPassedFirstStage = false;\n      state.tokenize = tokenBase;\n      return \"def\"\n    }\n    else {\n      state.tokenize = tokenBase;\n      return null;\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote) {\n    return function (stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped)\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function buildElectricInputRegEx() {\n    // Reindentation should occur on [] or on a match of any of\n    // the block closing keywords, at the end of a line.\n    var allClosings = middle.concat(end);\n    return new RegExp(\"[\\\\[\\\\]]|(\" + allClosings.join(\"|\") + \")$\");\n  }\n\n  return {\n\n    startState: function () {\n      return {\n        tokenize: tokenBase,\n        currentIndent: 0,\n        doInCurrentLine: false,\n        hasPassedFirstStage: false\n      };\n    },\n\n    token: function (stream, state) {\n      if (stream.sol())\n        state.doInCurrentLine = 0;\n\n      return state.tokenize(stream, state);\n    },\n\n    indent: function (state, textAfter) {\n      var trueText = textAfter.replace(/^\\s+|\\s+$/g, '');\n\n      if (trueText.match(endKeywords) || trueText.match(middleKeywords) || trueText.match(/(\\[])/))\n        return conf.indentUnit * (state.currentIndent - 1);\n\n      if (state.currentIndent < 0)\n        return 0;\n\n      return state.currentIndent * conf.indentUnit;\n    },\n    fold: \"indent\",\n    electricInput: buildElectricInputRegEx(),\n    lineComment: \"%\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-oz\", \"oz\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/pascal/pascal.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pascal\", function() {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\n    \"absolute and array asm begin case const constructor destructor div do \" +\n    \"downto else end file for function goto if implementation in inherited \" +\n    \"inline interface label mod nil not object of operator or packed procedure \" +\n    \"program record reintroduce repeat self set shl shr string then to type \" +\n    \"unit until uses var while with xor as class dispinterface except exports \" +\n    \"finalization finally initialization inline is library on out packed \" +\n    \"property raise resourcestring threadvar try absolute abstract alias \" +\n    \"assembler bitpacked break cdecl continue cppdecl cvar default deprecated \" +\n    \"dynamic enumerator experimental export external far far16 forward generic \" +\n    \"helper implements index interrupt iocheck local message name near \" +\n    \"nodefault noreturn nostackframe oldfpccall otherwise overload override \" +\n    \"pascal platform private protected public published read register \" +\n    \"reintroduce result safecall saveregisters softfloat specialize static \" +\n    \"stdcall stored strict unaligned unimplemented varargs virtual write\");\n  var atoms = {\"null\": true};\n\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == \"#\" && state.startOfLine) {\n      stream.skipToEnd();\n      return \"meta\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"(\" && stream.eat(\"*\")) {\n      state.tokenize = tokenComment;\n      return tokenComment(stream, state);\n    }\n    if (ch == \"{\") {\n      state.tokenize = tokenCommentBraces;\n      return tokenCommentBraces(stream, state);\n    }\n    if (/[\\[\\]\\(\\),;\\:\\.]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenCommentBraces(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"}\") {\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"comment\";\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-pascal\", \"pascal\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/pegjs/pegjs.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pegjs\", function (config) {\n  var jsMode = CodeMirror.getMode(config, \"javascript\");\n\n  function identifier(stream) {\n    return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);\n  }\n\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: null,\n        inComment: false,\n        inCharacterClass: false,\n        braced: 0,\n        lhs: true,\n        localState: null\n      };\n    },\n    token: function (stream, state) {\n      if (stream)\n\n      //check for state changes\n      if (!state.inString && !state.inComment && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (!state.inString && !state.inComment && stream.match('/*')) {\n        state.inComment = true;\n      }\n\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inComment) {\n        while (state.inComment && !stream.eol()) {\n          if (stream.match('*/')) {\n            state.inComment = false; // Clear flag\n          } else {\n            stream.match(/^.[^\\*]*/);\n          }\n        }\n        return \"comment\";\n      } else if (state.inCharacterClass) {\n          while (state.inCharacterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./))) {\n              state.inCharacterClass = false;\n            }\n          }\n      } else if (stream.peek() === '[') {\n        stream.next();\n        state.inCharacterClass = true;\n        return 'bracket';\n      } else if (stream.match('//')) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (state.braced || stream.peek() === '{') {\n        if (state.localState === null) {\n          state.localState = CodeMirror.startState(jsMode);\n        }\n        var token = jsMode.token(stream, state.localState);\n        var text = stream.current();\n        if (!token) {\n          for (var i = 0; i < text.length; i++) {\n            if (text[i] === '{') {\n              state.braced++;\n            } else if (text[i] === '}') {\n              state.braced--;\n            }\n          };\n        }\n        return token;\n      } else if (identifier(stream)) {\n        if (stream.peek() === ':') {\n          return 'variable';\n        }\n        return 'variable-2';\n      } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {\n        stream.next();\n        return 'bracket';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n}, \"javascript\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/perl/perl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)\n// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"perl\",function(){\n        // http://perldoc.perl.org\n        var PERL={                                      //   null - magic touch\n                                                        //   1 - keyword\n                                                        //   2 - def\n                                                        //   3 - atom\n                                                        //   4 - operator\n                                                        //   5 - variable-2 (predefined)\n                                                        //   [x,y] - x=1,2,3; y=must be defined if x{...}\n                                                //      PERL operators\n                '->'                            :   4,\n                '++'                            :   4,\n                '--'                            :   4,\n                '**'                            :   4,\n                                                        //   ! ~ \\ and unary + and -\n                '=~'                            :   4,\n                '!~'                            :   4,\n                '*'                             :   4,\n                '/'                             :   4,\n                '%'                             :   4,\n                'x'                             :   4,\n                '+'                             :   4,\n                '-'                             :   4,\n                '.'                             :   4,\n                '<<'                            :   4,\n                '>>'                            :   4,\n                                                        //   named unary operators\n                '<'                             :   4,\n                '>'                             :   4,\n                '<='                            :   4,\n                '>='                            :   4,\n                'lt'                            :   4,\n                'gt'                            :   4,\n                'le'                            :   4,\n                'ge'                            :   4,\n                '=='                            :   4,\n                '!='                            :   4,\n                '<=>'                           :   4,\n                'eq'                            :   4,\n                'ne'                            :   4,\n                'cmp'                           :   4,\n                '~~'                            :   4,\n                '&'                             :   4,\n                '|'                             :   4,\n                '^'                             :   4,\n                '&&'                            :   4,\n                '||'                            :   4,\n                '//'                            :   4,\n                '..'                            :   4,\n                '...'                           :   4,\n                '?'                             :   4,\n                ':'                             :   4,\n                '='                             :   4,\n                '+='                            :   4,\n                '-='                            :   4,\n                '*='                            :   4,  //   etc. ???\n                ','                             :   4,\n                '=>'                            :   4,\n                '::'                            :   4,\n                                                        //   list operators (rightward)\n                'not'                           :   4,\n                'and'                           :   4,\n                'or'                            :   4,\n                'xor'                           :   4,\n                                                //      PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)\n                'BEGIN'                         :   [5,1],\n                'END'                           :   [5,1],\n                'PRINT'                         :   [5,1],\n                'PRINTF'                        :   [5,1],\n                'GETC'                          :   [5,1],\n                'READ'                          :   [5,1],\n                'READLINE'                      :   [5,1],\n                'DESTROY'                       :   [5,1],\n                'TIE'                           :   [5,1],\n                'TIEHANDLE'                     :   [5,1],\n                'UNTIE'                         :   [5,1],\n                'STDIN'                         :    5,\n                'STDIN_TOP'                     :    5,\n                'STDOUT'                        :    5,\n                'STDOUT_TOP'                    :    5,\n                'STDERR'                        :    5,\n                'STDERR_TOP'                    :    5,\n                '$ARG'                          :    5,\n                '$_'                            :    5,\n                '@ARG'                          :    5,\n                '@_'                            :    5,\n                '$LIST_SEPARATOR'               :    5,\n                '$\"'                            :    5,\n                '$PROCESS_ID'                   :    5,\n                '$PID'                          :    5,\n                '$$'                            :    5,\n                '$REAL_GROUP_ID'                :    5,\n                '$GID'                          :    5,\n                '$('                            :    5,\n                '$EFFECTIVE_GROUP_ID'           :    5,\n                '$EGID'                         :    5,\n                '$)'                            :    5,\n                '$PROGRAM_NAME'                 :    5,\n                '$0'                            :    5,\n                '$SUBSCRIPT_SEPARATOR'          :    5,\n                '$SUBSEP'                       :    5,\n                '$;'                            :    5,\n                '$REAL_USER_ID'                 :    5,\n                '$UID'                          :    5,\n                '$<'                            :    5,\n                '$EFFECTIVE_USER_ID'            :    5,\n                '$EUID'                         :    5,\n                '$>'                            :    5,\n                '$a'                            :    5,\n                '$b'                            :    5,\n                '$COMPILING'                    :    5,\n                '$^C'                           :    5,\n                '$DEBUGGING'                    :    5,\n                '$^D'                           :    5,\n                '${^ENCODING}'                  :    5,\n                '$ENV'                          :    5,\n                '%ENV'                          :    5,\n                '$SYSTEM_FD_MAX'                :    5,\n                '$^F'                           :    5,\n                '@F'                            :    5,\n                '${^GLOBAL_PHASE}'              :    5,\n                '$^H'                           :    5,\n                '%^H'                           :    5,\n                '@INC'                          :    5,\n                '%INC'                          :    5,\n                '$INPLACE_EDIT'                 :    5,\n                '$^I'                           :    5,\n                '$^M'                           :    5,\n                '$OSNAME'                       :    5,\n                '$^O'                           :    5,\n                '${^OPEN}'                      :    5,\n                '$PERLDB'                       :    5,\n                '$^P'                           :    5,\n                '$SIG'                          :    5,\n                '%SIG'                          :    5,\n                '$BASETIME'                     :    5,\n                '$^T'                           :    5,\n                '${^TAINT}'                     :    5,\n                '${^UNICODE}'                   :    5,\n                '${^UTF8CACHE}'                 :    5,\n                '${^UTF8LOCALE}'                :    5,\n                '$PERL_VERSION'                 :    5,\n                '$^V'                           :    5,\n                '${^WIN32_SLOPPY_STAT}'         :    5,\n                '$EXECUTABLE_NAME'              :    5,\n                '$^X'                           :    5,\n                '$1'                            :    5, // - regexp $1, $2...\n                '$MATCH'                        :    5,\n                '$&'                            :    5,\n                '${^MATCH}'                     :    5,\n                '$PREMATCH'                     :    5,\n                '$`'                            :    5,\n                '${^PREMATCH}'                  :    5,\n                '$POSTMATCH'                    :    5,\n                \"$'\"                            :    5,\n                '${^POSTMATCH}'                 :    5,\n                '$LAST_PAREN_MATCH'             :    5,\n                '$+'                            :    5,\n                '$LAST_SUBMATCH_RESULT'         :    5,\n                '$^N'                           :    5,\n                '@LAST_MATCH_END'               :    5,\n                '@+'                            :    5,\n                '%LAST_PAREN_MATCH'             :    5,\n                '%+'                            :    5,\n                '@LAST_MATCH_START'             :    5,\n                '@-'                            :    5,\n                '%LAST_MATCH_START'             :    5,\n                '%-'                            :    5,\n                '$LAST_REGEXP_CODE_RESULT'      :    5,\n                '$^R'                           :    5,\n                '${^RE_DEBUG_FLAGS}'            :    5,\n                '${^RE_TRIE_MAXBUF}'            :    5,\n                '$ARGV'                         :    5,\n                '@ARGV'                         :    5,\n                'ARGV'                          :    5,\n                'ARGVOUT'                       :    5,\n                '$OUTPUT_FIELD_SEPARATOR'       :    5,\n                '$OFS'                          :    5,\n                '$,'                            :    5,\n                '$INPUT_LINE_NUMBER'            :    5,\n                '$NR'                           :    5,\n                '$.'                            :    5,\n                '$INPUT_RECORD_SEPARATOR'       :    5,\n                '$RS'                           :    5,\n                '$/'                            :    5,\n                '$OUTPUT_RECORD_SEPARATOR'      :    5,\n                '$ORS'                          :    5,\n                '$\\\\'                           :    5,\n                '$OUTPUT_AUTOFLUSH'             :    5,\n                '$|'                            :    5,\n                '$ACCUMULATOR'                  :    5,\n                '$^A'                           :    5,\n                '$FORMAT_FORMFEED'              :    5,\n                '$^L'                           :    5,\n                '$FORMAT_PAGE_NUMBER'           :    5,\n                '$%'                            :    5,\n                '$FORMAT_LINES_LEFT'            :    5,\n                '$-'                            :    5,\n                '$FORMAT_LINE_BREAK_CHARACTERS' :    5,\n                '$:'                            :    5,\n                '$FORMAT_LINES_PER_PAGE'        :    5,\n                '$='                            :    5,\n                '$FORMAT_TOP_NAME'              :    5,\n                '$^'                            :    5,\n                '$FORMAT_NAME'                  :    5,\n                '$~'                            :    5,\n                '${^CHILD_ERROR_NATIVE}'        :    5,\n                '$EXTENDED_OS_ERROR'            :    5,\n                '$^E'                           :    5,\n                '$EXCEPTIONS_BEING_CAUGHT'      :    5,\n                '$^S'                           :    5,\n                '$WARNING'                      :    5,\n                '$^W'                           :    5,\n                '${^WARNING_BITS}'              :    5,\n                '$OS_ERROR'                     :    5,\n                '$ERRNO'                        :    5,\n                '$!'                            :    5,\n                '%OS_ERROR'                     :    5,\n                '%ERRNO'                        :    5,\n                '%!'                            :    5,\n                '$CHILD_ERROR'                  :    5,\n                '$?'                            :    5,\n                '$EVAL_ERROR'                   :    5,\n                '$@'                            :    5,\n                '$OFMT'                         :    5,\n                '$#'                            :    5,\n                '$*'                            :    5,\n                '$ARRAY_BASE'                   :    5,\n                '$['                            :    5,\n                '$OLD_PERL_VERSION'             :    5,\n                '$]'                            :    5,\n                                                //      PERL blocks\n                'if'                            :[1,1],\n                elsif                           :[1,1],\n                'else'                          :[1,1],\n                'while'                         :[1,1],\n                unless                          :[1,1],\n                'for'                           :[1,1],\n                foreach                         :[1,1],\n                                                //      PERL functions\n                'abs'                           :1,     // - absolute value function\n                accept                          :1,     // - accept an incoming socket connect\n                alarm                           :1,     // - schedule a SIGALRM\n                'atan2'                         :1,     // - arctangent of Y/X in the range -PI to PI\n                bind                            :1,     // - binds an address to a socket\n                binmode                         :1,     // - prepare binary files for I/O\n                bless                           :1,     // - create an object\n                bootstrap                       :1,     //\n                'break'                         :1,     // - break out of a \"given\" block\n                caller                          :1,     // - get context of the current subroutine call\n                chdir                           :1,     // - change your current working directory\n                chmod                           :1,     // - changes the permissions on a list of files\n                chomp                           :1,     // - remove a trailing record separator from a string\n                chop                            :1,     // - remove the last character from a string\n                chown                           :1,     // - change the ownership on a list of files\n                chr                             :1,     // - get character this number represents\n                chroot                          :1,     // - make directory new root for path lookups\n                close                           :1,     // - close file (or pipe or socket) handle\n                closedir                        :1,     // - close directory handle\n                connect                         :1,     // - connect to a remote socket\n                'continue'                      :[1,1], // - optional trailing block in a while or foreach\n                'cos'                           :1,     // - cosine function\n                crypt                           :1,     // - one-way passwd-style encryption\n                dbmclose                        :1,     // - breaks binding on a tied dbm file\n                dbmopen                         :1,     // - create binding on a tied dbm file\n                'default'                       :1,     //\n                defined                         :1,     // - test whether a value, variable, or function is defined\n                'delete'                        :1,     // - deletes a value from a hash\n                die                             :1,     // - raise an exception or bail out\n                'do'                            :1,     // - turn a BLOCK into a TERM\n                dump                            :1,     // - create an immediate core dump\n                each                            :1,     // - retrieve the next key/value pair from a hash\n                endgrent                        :1,     // - be done using group file\n                endhostent                      :1,     // - be done using hosts file\n                endnetent                       :1,     // - be done using networks file\n                endprotoent                     :1,     // - be done using protocols file\n                endpwent                        :1,     // - be done using passwd file\n                endservent                      :1,     // - be done using services file\n                eof                             :1,     // - test a filehandle for its end\n                'eval'                          :1,     // - catch exceptions or compile and run code\n                'exec'                          :1,     // - abandon this program to run another\n                exists                          :1,     // - test whether a hash key is present\n                exit                            :1,     // - terminate this program\n                'exp'                           :1,     // - raise I to a power\n                fcntl                           :1,     // - file control system call\n                fileno                          :1,     // - return file descriptor from filehandle\n                flock                           :1,     // - lock an entire file with an advisory lock\n                fork                            :1,     // - create a new process just like this one\n                format                          :1,     // - declare a picture format with use by the write() function\n                formline                        :1,     // - internal function used for formats\n                getc                            :1,     // - get the next character from the filehandle\n                getgrent                        :1,     // - get next group record\n                getgrgid                        :1,     // - get group record given group user ID\n                getgrnam                        :1,     // - get group record given group name\n                gethostbyaddr                   :1,     // - get host record given its address\n                gethostbyname                   :1,     // - get host record given name\n                gethostent                      :1,     // - get next hosts record\n                getlogin                        :1,     // - return who logged in at this tty\n                getnetbyaddr                    :1,     // - get network record given its address\n                getnetbyname                    :1,     // - get networks record given name\n                getnetent                       :1,     // - get next networks record\n                getpeername                     :1,     // - find the other end of a socket connection\n                getpgrp                         :1,     // - get process group\n                getppid                         :1,     // - get parent process ID\n                getpriority                     :1,     // - get current nice value\n                getprotobyname                  :1,     // - get protocol record given name\n                getprotobynumber                :1,     // - get protocol record numeric protocol\n                getprotoent                     :1,     // - get next protocols record\n                getpwent                        :1,     // - get next passwd record\n                getpwnam                        :1,     // - get passwd record given user login name\n                getpwuid                        :1,     // - get passwd record given user ID\n                getservbyname                   :1,     // - get services record given its name\n                getservbyport                   :1,     // - get services record given numeric port\n                getservent                      :1,     // - get next services record\n                getsockname                     :1,     // - retrieve the sockaddr for a given socket\n                getsockopt                      :1,     // - get socket options on a given socket\n                given                           :1,     //\n                glob                            :1,     // - expand filenames using wildcards\n                gmtime                          :1,     // - convert UNIX time into record or string using Greenwich time\n                'goto'                          :1,     // - create spaghetti code\n                grep                            :1,     // - locate elements in a list test true against a given criterion\n                hex                             :1,     // - convert a string to a hexadecimal number\n                'import'                        :1,     // - patch a module's namespace into your own\n                index                           :1,     // - find a substring within a string\n                'int'                           :1,     // - get the integer portion of a number\n                ioctl                           :1,     // - system-dependent device control system call\n                'join'                          :1,     // - join a list into a string using a separator\n                keys                            :1,     // - retrieve list of indices from a hash\n                kill                            :1,     // - send a signal to a process or process group\n                last                            :1,     // - exit a block prematurely\n                lc                              :1,     // - return lower-case version of a string\n                lcfirst                         :1,     // - return a string with just the next letter in lower case\n                length                          :1,     // - return the number of bytes in a string\n                'link'                          :1,     // - create a hard link in the filesystem\n                listen                          :1,     // - register your socket as a server\n                local                           : 2,    // - create a temporary value for a global variable (dynamic scoping)\n                localtime                       :1,     // - convert UNIX time into record or string using local time\n                lock                            :1,     // - get a thread lock on a variable, subroutine, or method\n                'log'                           :1,     // - retrieve the natural logarithm for a number\n                lstat                           :1,     // - stat a symbolic link\n                m                               :null,  // - match a string with a regular expression pattern\n                map                             :1,     // - apply a change to a list to get back a new list with the changes\n                mkdir                           :1,     // - create a directory\n                msgctl                          :1,     // - SysV IPC message control operations\n                msgget                          :1,     // - get SysV IPC message queue\n                msgrcv                          :1,     // - receive a SysV IPC message from a message queue\n                msgsnd                          :1,     // - send a SysV IPC message to a message queue\n                my                              : 2,    // - declare and assign a local variable (lexical scoping)\n                'new'                           :1,     //\n                next                            :1,     // - iterate a block prematurely\n                no                              :1,     // - unimport some module symbols or semantics at compile time\n                oct                             :1,     // - convert a string to an octal number\n                open                            :1,     // - open a file, pipe, or descriptor\n                opendir                         :1,     // - open a directory\n                ord                             :1,     // - find a character's numeric representation\n                our                             : 2,    // - declare and assign a package variable (lexical scoping)\n                pack                            :1,     // - convert a list into a binary representation\n                'package'                       :1,     // - declare a separate global namespace\n                pipe                            :1,     // - open a pair of connected filehandles\n                pop                             :1,     // - remove the last element from an array and return it\n                pos                             :1,     // - find or set the offset for the last/next m//g search\n                print                           :1,     // - output a list to a filehandle\n                printf                          :1,     // - output a formatted list to a filehandle\n                prototype                       :1,     // - get the prototype (if any) of a subroutine\n                push                            :1,     // - append one or more elements to an array\n                q                               :null,  // - singly quote a string\n                qq                              :null,  // - doubly quote a string\n                qr                              :null,  // - Compile pattern\n                quotemeta                       :null,  // - quote regular expression magic characters\n                qw                              :null,  // - quote a list of words\n                qx                              :null,  // - backquote quote a string\n                rand                            :1,     // - retrieve the next pseudorandom number\n                read                            :1,     // - fixed-length buffered input from a filehandle\n                readdir                         :1,     // - get a directory from a directory handle\n                readline                        :1,     // - fetch a record from a file\n                readlink                        :1,     // - determine where a symbolic link is pointing\n                readpipe                        :1,     // - execute a system command and collect standard output\n                recv                            :1,     // - receive a message over a Socket\n                redo                            :1,     // - start this loop iteration over again\n                ref                             :1,     // - find out the type of thing being referenced\n                rename                          :1,     // - change a filename\n                require                         :1,     // - load in external functions from a library at runtime\n                reset                           :1,     // - clear all variables of a given name\n                'return'                        :1,     // - get out of a function early\n                reverse                         :1,     // - flip a string or a list\n                rewinddir                       :1,     // - reset directory handle\n                rindex                          :1,     // - right-to-left substring search\n                rmdir                           :1,     // - remove a directory\n                s                               :null,  // - replace a pattern with a string\n                say                             :1,     // - print with newline\n                scalar                          :1,     // - force a scalar context\n                seek                            :1,     // - reposition file pointer for random-access I/O\n                seekdir                         :1,     // - reposition directory pointer\n                select                          :1,     // - reset default output or do I/O multiplexing\n                semctl                          :1,     // - SysV semaphore control operations\n                semget                          :1,     // - get set of SysV semaphores\n                semop                           :1,     // - SysV semaphore operations\n                send                            :1,     // - send a message over a socket\n                setgrent                        :1,     // - prepare group file for use\n                sethostent                      :1,     // - prepare hosts file for use\n                setnetent                       :1,     // - prepare networks file for use\n                setpgrp                         :1,     // - set the process group of a process\n                setpriority                     :1,     // - set a process's nice value\n                setprotoent                     :1,     // - prepare protocols file for use\n                setpwent                        :1,     // - prepare passwd file for use\n                setservent                      :1,     // - prepare services file for use\n                setsockopt                      :1,     // - set some socket options\n                shift                           :1,     // - remove the first element of an array, and return it\n                shmctl                          :1,     // - SysV shared memory operations\n                shmget                          :1,     // - get SysV shared memory segment identifier\n                shmread                         :1,     // - read SysV shared memory\n                shmwrite                        :1,     // - write SysV shared memory\n                shutdown                        :1,     // - close down just half of a socket connection\n                'sin'                           :1,     // - return the sine of a number\n                sleep                           :1,     // - block for some number of seconds\n                socket                          :1,     // - create a socket\n                socketpair                      :1,     // - create a pair of sockets\n                'sort'                          :1,     // - sort a list of values\n                splice                          :1,     // - add or remove elements anywhere in an array\n                'split'                         :1,     // - split up a string using a regexp delimiter\n                sprintf                         :1,     // - formatted print into a string\n                'sqrt'                          :1,     // - square root function\n                srand                           :1,     // - seed the random number generator\n                stat                            :1,     // - get a file's status information\n                state                           :1,     // - declare and assign a state variable (persistent lexical scoping)\n                study                           :1,     // - optimize input data for repeated searches\n                'sub'                           :1,     // - declare a subroutine, possibly anonymously\n                'substr'                        :1,     // - get or alter a portion of a string\n                symlink                         :1,     // - create a symbolic link to a file\n                syscall                         :1,     // - execute an arbitrary system call\n                sysopen                         :1,     // - open a file, pipe, or descriptor\n                sysread                         :1,     // - fixed-length unbuffered input from a filehandle\n                sysseek                         :1,     // - position I/O pointer on handle used with sysread and syswrite\n                system                          :1,     // - run a separate program\n                syswrite                        :1,     // - fixed-length unbuffered output to a filehandle\n                tell                            :1,     // - get current seekpointer on a filehandle\n                telldir                         :1,     // - get current seekpointer on a directory handle\n                tie                             :1,     // - bind a variable to an object class\n                tied                            :1,     // - get a reference to the object underlying a tied variable\n                time                            :1,     // - return number of seconds since 1970\n                times                           :1,     // - return elapsed time for self and child processes\n                tr                              :null,  // - transliterate a string\n                truncate                        :1,     // - shorten a file\n                uc                              :1,     // - return upper-case version of a string\n                ucfirst                         :1,     // - return a string with just the next letter in upper case\n                umask                           :1,     // - set file creation mode mask\n                undef                           :1,     // - remove a variable or function definition\n                unlink                          :1,     // - remove one link to a file\n                unpack                          :1,     // - convert binary structure into normal perl variables\n                unshift                         :1,     // - prepend more elements to the beginning of a list\n                untie                           :1,     // - break a tie binding to a variable\n                use                             :1,     // - load in a module at compile time\n                utime                           :1,     // - set a file's last access and modify times\n                values                          :1,     // - return a list of the values in a hash\n                vec                             :1,     // - test or set particular bits in a string\n                wait                            :1,     // - wait for any child process to die\n                waitpid                         :1,     // - wait for a particular child process to die\n                wantarray                       :1,     // - get void vs scalar vs list context of current subroutine call\n                warn                            :1,     // - print debugging info\n                when                            :1,     //\n                write                           :1,     // - print a picture record\n                y                               :null}; // - transliterate a string\n\n        var RXstyle=\"string-2\";\n        var RXmodifiers=/[goseximacplud]/;              // NOTE: \"m\", \"s\", \"y\" and \"tr\" need to correct real modifiers for each regexp type\n\n        function tokenChain(stream,state,chain,style,tail){     // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)\n                state.chain=null;                               //                                                          12   3tail\n                state.style=null;\n                state.tail=null;\n                state.tokenize=function(stream,state){\n                        var e=false,c,i=0;\n                        while(c=stream.next()){\n                                if(c===chain[i]&&!e){\n                                        if(chain[++i]!==undefined){\n                                                state.chain=chain[i];\n                                                state.style=style;\n                                                state.tail=tail;}\n                                        else if(tail)\n                                                stream.eatWhile(tail);\n                                        state.tokenize=tokenPerl;\n                                        return style;}\n                                e=!e&&c==\"\\\\\";}\n                        return style;};\n                return state.tokenize(stream,state);}\n\n        function tokenSOMETHING(stream,state,string){\n                state.tokenize=function(stream,state){\n                        if(stream.string==string)\n                                state.tokenize=tokenPerl;\n                        stream.skipToEnd();\n                        return \"string\";};\n                return state.tokenize(stream,state);}\n\n        function tokenPerl(stream,state){\n                if(stream.eatSpace())\n                        return null;\n                if(state.chain)\n                        return tokenChain(stream,state,state.chain,state.style,state.tail);\n                if(stream.match(/^\\-?[\\d\\.]/,false))\n                        if(stream.match(/^(\\-?(\\d*\\.\\d+(e[+-]?\\d+)?|\\d+\\.\\d*)|0x[\\da-fA-F]+|0b[01]+|\\d+(e[+-]?\\d+)?)/))\n                                return 'number';\n                if(stream.match(/^<<(?=[_a-zA-Z])/)){                  // NOTE: <<SOMETHING\\n...\\nSOMETHING\\n\n                        stream.eatWhile(/\\w/);\n                        return tokenSOMETHING(stream,state,stream.current().substr(2));}\n                if(stream.sol()&&stream.match(/^\\=item(?!\\w)/)){// NOTE: \\n=item...\\n=cut\\n\n                        return tokenSOMETHING(stream,state,'=cut');}\n                var ch=stream.next();\n                if(ch=='\"'||ch==\"'\"){                           // NOTE: ' or \" or <<'SOMETHING'\\n...\\nSOMETHING\\n or <<\"SOMETHING\"\\n...\\nSOMETHING\\n\n                        if(prefix(stream, 3)==\"<<\"+ch){\n                                var p=stream.pos;\n                                stream.eatWhile(/\\w/);\n                                var n=stream.current().substr(1);\n                                if(n&&stream.eat(ch))\n                                        return tokenSOMETHING(stream,state,n);\n                                stream.pos=p;}\n                        return tokenChain(stream,state,[ch],\"string\");}\n                if(ch==\"q\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=look(stream, 0);\n                                if(c==\"x\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(c==\"q\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}\n                                else if(c==\"w\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"bracket\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"bracket\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"bracket\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"bracket\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"bracket\");}}\n                                else if(c==\"r\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(/[\\^'\"!~\\/(\\[{<]/.test(c)){\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}}}\n                if(ch==\"m\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}\n                                        if(c==\"(\"){\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}}}}\n                if(ch==\"s\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"y\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"t\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(\"r\");if(c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}\n                if(ch==\"`\"){\n                        return tokenChain(stream,state,[ch],\"variable-2\");}\n                if(ch==\"/\"){\n                        if(!/~\\s*$/.test(prefix(stream)))\n                                return \"operator\";\n                        else\n                                return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}\n                if(ch==\"$\"){\n                        var p=stream.pos;\n                        if(stream.eatWhile(/\\d/)||stream.eat(\"{\")&&stream.eatWhile(/\\d/)&&stream.eat(\"}\"))\n                                return \"variable-2\";\n                        else\n                                stream.pos=p;}\n                if(/[$@%]/.test(ch)){\n                        var p=stream.pos;\n                        if(stream.eat(\"^\")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\\\\-#?@;:&`~\\^!\\[\\]*'\"$+.,\\/<>()]/)){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";}\n                        stream.pos=p;}\n                if(/[$@%&]/.test(ch)){\n                        if(stream.eatWhile(/[\\w$]/)||stream.eat(\"{\")&&stream.eatWhile(/[\\w$]/)&&stream.eat(\"}\")){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";\n                                else\n                                        return \"variable\";}}\n                if(ch==\"#\"){\n                        if(look(stream, -2)!=\"$\"){\n                                stream.skipToEnd();\n                                return \"comment\";}}\n                if(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/.test(ch)){\n                        var p=stream.pos;\n                        stream.eatWhile(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/);\n                        if(PERL[stream.current()])\n                                return \"operator\";\n                        else\n                                stream.pos=p;}\n                if(ch==\"_\"){\n                        if(stream.pos==1){\n                                if(suffix(stream, 6)==\"_END__\"){\n                                        return tokenChain(stream,state,['\\0'],\"comment\");}\n                                else if(suffix(stream, 7)==\"_DATA__\"){\n                                        return tokenChain(stream,state,['\\0'],\"variable-2\");}\n                                else if(suffix(stream, 7)==\"_C__\"){\n                                        return tokenChain(stream,state,['\\0'],\"string\");}}}\n                if(/\\w/.test(ch)){\n                        var p=stream.pos;\n                        if(look(stream, -2)==\"{\"&&(look(stream, 0)==\"}\"||stream.eatWhile(/\\w/)&&look(stream, 0)==\"}\"))\n                                return \"string\";\n                        else\n                                stream.pos=p;}\n                if(/[A-Z]/.test(ch)){\n                        var l=look(stream, -2);\n                        var p=stream.pos;\n                        stream.eatWhile(/[A-Z_]/);\n                        if(/[\\da-z]/.test(look(stream, 0))){\n                                stream.pos=p;}\n                        else{\n                                var c=PERL[stream.current()];\n                                if(!c)\n                                        return \"meta\";\n                                if(c[1])\n                                        c=c[0];\n                                if(l!=\":\"){\n                                        if(c==1)\n                                                return \"keyword\";\n                                        else if(c==2)\n                                                return \"def\";\n                                        else if(c==3)\n                                                return \"atom\";\n                                        else if(c==4)\n                                                return \"operator\";\n                                        else if(c==5)\n                                                return \"variable-2\";\n                                        else\n                                                return \"meta\";}\n                                else\n                                        return \"meta\";}}\n                if(/[a-zA-Z_]/.test(ch)){\n                        var l=look(stream, -2);\n                        stream.eatWhile(/\\w/);\n                        var c=PERL[stream.current()];\n                        if(!c)\n                                return \"meta\";\n                        if(c[1])\n                                c=c[0];\n                        if(l!=\":\"){\n                                if(c==1)\n                                        return \"keyword\";\n                                else if(c==2)\n                                        return \"def\";\n                                else if(c==3)\n                                        return \"atom\";\n                                else if(c==4)\n                                        return \"operator\";\n                                else if(c==5)\n                                        return \"variable-2\";\n                                else\n                                        return \"meta\";}\n                        else\n                                return \"meta\";}\n                return null;}\n\n        return {\n            startState: function() {\n                return {\n                    tokenize: tokenPerl,\n                    chain: null,\n                    style: null,\n                    tail: null\n                };\n            },\n            token: function(stream, state) {\n                return (state.tokenize || tokenPerl)(stream, state);\n            },\n            lineComment: '#'\n        };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"perl\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/x-perl\", \"perl\");\n\n// it's like \"peek\", but need for look-ahead or look-behind if index < 0\nfunction look(stream, c){\n  return stream.string.charAt(stream.pos+(c||0));\n}\n\n// return a part of prefix of current stream from current position\nfunction prefix(stream, c){\n  if(c){\n    var x=stream.pos-c;\n    return stream.string.substr((x>=0?x:0),c);}\n  else{\n    return stream.string.substr(0,stream.pos-1);\n  }\n}\n\n// return a part of suffix of current stream from current position\nfunction suffix(stream, c){\n  var y=stream.string.length;\n  var x=y-stream.pos+1;\n  return stream.string.substr(stream.pos,(c&&c<y?c:x));\n}\n\n// eating and vomiting a part of stream from current position\nfunction eatSuffix(stream, c){\n  var x=stream.pos+c;\n  var y;\n  if(x<=0)\n    stream.pos=0;\n  else if(x>=(y=stream.string.length-1))\n    stream.pos=y;\n  else\n    stream.pos=x;\n}\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/php/php.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // Helper for phpString\n  function matchSequence(list, end, escapes) {\n    if (list.length == 0) return phpString(end);\n    return function (stream, state) {\n      var patterns = list[0];\n      for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {\n        state.tokenize = matchSequence(list.slice(1), end);\n        return patterns[i][1];\n      }\n      state.tokenize = phpString(end, escapes);\n      return \"string\";\n    };\n  }\n  function phpString(closing, escapes) {\n    return function(stream, state) { return phpString_(stream, state, closing, escapes); };\n  }\n  function phpString_(stream, state, closing, escapes) {\n    // \"Complex\" syntax\n    if (escapes !== false && stream.match(\"${\", false) || stream.match(\"{$\", false)) {\n      state.tokenize = null;\n      return \"string\";\n    }\n\n    // Simple syntax\n    if (escapes !== false && stream.match(/^\\$[a-zA-Z_][a-zA-Z0-9_]*/)) {\n      // After the variable name there may appear array or object operator.\n      if (stream.match(\"[\", false)) {\n        // Match array operator\n        state.tokenize = matchSequence([\n          [[\"[\", null]],\n          [[/\\d[\\w\\.]*/, \"number\"],\n           [/\\$[a-zA-Z_][a-zA-Z0-9_]*/, \"variable-2\"],\n           [/[\\w\\$]+/, \"variable\"]],\n          [[\"]\", null]]\n        ], closing, escapes);\n      }\n      if (stream.match(/^->\\w/, false)) {\n        // Match object operator\n        state.tokenize = matchSequence([\n          [[\"->\", null]],\n          [[/[\\w]+/, \"variable\"]]\n        ], closing, escapes);\n      }\n      return \"variable-2\";\n    }\n\n    var escaped = false;\n    // Normal string\n    while (!stream.eol() &&\n           (escaped || escapes === false ||\n            (!stream.match(\"{$\", false) &&\n             !stream.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*|\\$\\{)/, false)))) {\n      if (!escaped && stream.match(closing)) {\n        state.tokenize = null;\n        state.tokStack.pop(); state.tokStack.pop();\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  var phpKeywords = \"abstract and array as break case catch class clone const continue declare default \" +\n    \"do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final \" +\n    \"for foreach function global goto if implements interface instanceof namespace \" +\n    \"new or private protected public static switch throw trait try use var while xor \" +\n    \"die echo empty exit eval include include_once isset list require require_once return \" +\n    \"print unset __halt_compiler self static parent yield insteadof finally\";\n  var phpAtoms = \"true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__\";\n  var phpBuiltin = \"func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count\";\n  CodeMirror.registerHelper(\"hintWords\", \"php\", [phpKeywords, phpAtoms, phpBuiltin].join(\" \").split(\" \"));\n  CodeMirror.registerHelper(\"wordChars\", \"php\", /[\\w$]/);\n\n  var phpConfig = {\n    name: \"clike\",\n    helperType: \"php\",\n    keywords: keywords(phpKeywords),\n    blockKeywords: keywords(\"catch do else elseif for foreach if switch try while finally\"),\n    defKeywords: keywords(\"class function interface namespace trait\"),\n    atoms: keywords(phpAtoms),\n    builtin: keywords(phpBuiltin),\n    multiLineStrings: true,\n    hooks: {\n      \"$\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"variable-2\";\n      },\n      \"<\": function(stream, state) {\n        var before;\n        if (before = stream.match(/^<<\\s*/)) {\n          var quoted = stream.eat(/['\"]/);\n          stream.eatWhile(/[\\w\\.]/);\n          var delim = stream.current().slice(before[0].length + (quoted ? 2 : 1));\n          if (quoted) stream.eat(quoted);\n          if (delim) {\n            (state.tokStack || (state.tokStack = [])).push(delim, 0);\n            state.tokenize = phpString(delim, quoted != \"'\");\n            return \"string\";\n          }\n        }\n        return false;\n      },\n      \"#\": function(stream) {\n        while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n        return \"comment\";\n      },\n      \"/\": function(stream) {\n        if (stream.eat(\"/\")) {\n          while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n          return \"comment\";\n        }\n        return false;\n      },\n      '\"': function(_stream, state) {\n        (state.tokStack || (state.tokStack = [])).push('\"', 0);\n        state.tokenize = phpString('\"');\n        return \"string\";\n      },\n      \"{\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length)\n          state.tokStack[state.tokStack.length - 1]++;\n        return false;\n      },\n      \"}\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length > 0 &&\n            !--state.tokStack[state.tokStack.length - 1]) {\n          state.tokenize = phpString(state.tokStack[state.tokStack.length - 2]);\n        }\n        return false;\n      }\n    }\n  };\n\n  CodeMirror.defineMode(\"php\", function(config, parserConfig) {\n    var htmlMode = CodeMirror.getMode(config, (parserConfig && parserConfig.htmlMode) || \"text/html\");\n    var phpMode = CodeMirror.getMode(config, phpConfig);\n\n    function dispatch(stream, state) {\n      var isPHP = state.curMode == phpMode;\n      if (stream.sol() && state.pending && state.pending != '\"' && state.pending != \"'\") state.pending = null;\n      if (!isPHP) {\n        if (stream.match(/^<\\?\\w*/)) {\n          state.curMode = phpMode;\n          if (!state.php) state.php = CodeMirror.startState(phpMode, htmlMode.indent(state.html, \"\", \"\"))\n          state.curState = state.php;\n          return \"meta\";\n        }\n        if (state.pending == '\"' || state.pending == \"'\") {\n          while (!stream.eol() && stream.next() != state.pending) {}\n          var style = \"string\";\n        } else if (state.pending && stream.pos < state.pending.end) {\n          stream.pos = state.pending.end;\n          var style = state.pending.style;\n        } else {\n          var style = htmlMode.token(stream, state.curState);\n        }\n        if (state.pending) state.pending = null;\n        var cur = stream.current(), openPHP = cur.search(/<\\?/), m;\n        if (openPHP != -1) {\n          if (style == \"string\" && (m = cur.match(/[\\'\\\"]$/)) && !/\\?>/.test(cur)) state.pending = m[0];\n          else state.pending = {end: stream.pos, style: style};\n          stream.backUp(cur.length - openPHP);\n        }\n        return style;\n      } else if (isPHP && state.php.tokenize == null && stream.match(\"?>\")) {\n        state.curMode = htmlMode;\n        state.curState = state.html;\n        if (!state.php.context.prev) state.php = null;\n        return \"meta\";\n      } else {\n        return phpMode.token(stream, state.curState);\n      }\n    }\n\n    return {\n      startState: function() {\n        var html = CodeMirror.startState(htmlMode)\n        var php = parserConfig.startOpen ? CodeMirror.startState(phpMode) : null\n        return {html: html,\n                php: php,\n                curMode: parserConfig.startOpen ? phpMode : htmlMode,\n                curState: parserConfig.startOpen ? php : html,\n                pending: null};\n      },\n\n      copyState: function(state) {\n        var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),\n            php = state.php, phpNew = php && CodeMirror.copyState(phpMode, php), cur;\n        if (state.curMode == htmlMode) cur = htmlNew;\n        else cur = phpNew;\n        return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,\n                pending: state.pending};\n      },\n\n      token: dispatch,\n\n      indent: function(state, textAfter, line) {\n        if ((state.curMode != phpMode && /^\\s*<\\//.test(textAfter)) ||\n            (state.curMode == phpMode && /^\\?>/.test(textAfter)))\n          return htmlMode.indent(state.html, textAfter, line);\n        return state.curMode.indent(state.curState, textAfter, line);\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\",\n\n      innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }\n    };\n  }, \"htmlmixed\", \"clike\");\n\n  CodeMirror.defineMIME(\"application/x-httpd-php\", \"php\");\n  CodeMirror.defineMIME(\"application/x-httpd-php-open\", {name: \"php\", startOpen: true});\n  CodeMirror.defineMIME(\"text/x-php\", phpConfig);\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/pig/pig.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n *      Pig Latin Mode for CodeMirror 2\n *      @author Prasanth Jayachandran\n *      @link   https://github.com/prasanthj/pig-codemirror-2\n *  This implementation is adapted from PL/SQL mode in CodeMirror 2.\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pig\", function(_config, parserConfig) {\n  var keywords = parserConfig.keywords,\n  builtins = parserConfig.builtins,\n  types = parserConfig.types,\n  multiLineStrings = parserConfig.multiLineStrings;\n\n  var isOperatorChar = /[*+\\-%<>=&?:\\/!|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function tokenComment(stream, state) {\n    var isEnd = false;\n    var ch;\n    while(ch = stream.next()) {\n      if(ch == \"/\" && isEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      isEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true; break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"error\";\n    };\n  }\n\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // is a start of string?\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch));\n    // is it one of the special chars\n    else if(/[\\[\\]{}\\(\\),;\\.]/.test(ch))\n      return null;\n    // is it a number?\n    else if(/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    // multi line comment or operator\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n    }\n    // single line comment or operator\n    else if (ch==\"-\") {\n      if(stream.eat(\"-\")){\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n    }\n    // is it an operator\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    else {\n      // get the while word\n      stream.eatWhile(/[\\w\\$_]/);\n      // is it one of the listed keywords?\n      if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n        //keywords can be used as variables like flatten(group), group.$0 etc..\n        if (!stream.eat(\")\") && !stream.eat(\".\"))\n          return \"keyword\";\n      }\n      // is it one of the builtin functions?\n      if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))\n        return \"variable-2\";\n      // is it one of the listed types?\n      if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))\n        return \"variable-3\";\n      // default is a 'variable'\n      return \"variable\";\n    }\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      if(stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    }\n  };\n});\n\n(function() {\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // builtin funcs taken from trunk revision 1303237\n  var pBuiltins = \"ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL \"\n    + \"CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS \"\n    + \"DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG \"\n    + \"FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN \"\n    + \"INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER \"\n    + \"ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS \"\n    + \"LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  \"\n    + \"PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE \"\n    + \"SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG \"\n    + \"TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER \";\n\n  // taken from QueryLexer.g\n  var pKeywords = \"VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP \"\n    + \"JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL \"\n    + \"PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE \"\n    + \"SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE \"\n    + \"NEQ MATCHES TRUE FALSE DUMP\";\n\n  // data types\n  var pTypes = \"BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP \";\n\n  CodeMirror.defineMIME(\"text/x-pig\", {\n    name: \"pig\",\n    builtins: keywords(pBuiltins),\n    keywords: keywords(pKeywords),\n    types: keywords(pTypes)\n  });\n\n  CodeMirror.registerHelper(\"hintWords\", \"pig\", (pBuiltins + pTypes + pKeywords).split(\" \"));\n}());\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/powershell/powershell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  'use strict';\n  if (typeof exports == 'object' && typeof module == 'object') // CommonJS\n    mod(require('../../lib/codemirror'));\n  else if (typeof define == 'function' && define.amd) // AMD\n    define(['../../lib/codemirror'], mod);\n  else // Plain browser env\n    mod(window.CodeMirror);\n})(function(CodeMirror) {\n'use strict';\n\nCodeMirror.defineMode('powershell', function() {\n  function buildRegexp(patterns, options) {\n    options = options || {};\n    var prefix = options.prefix !== undefined ? options.prefix : '^';\n    var suffix = options.suffix !== undefined ? options.suffix : '\\\\b';\n\n    for (var i = 0; i < patterns.length; i++) {\n      if (patterns[i] instanceof RegExp) {\n        patterns[i] = patterns[i].source;\n      }\n      else {\n        patterns[i] = patterns[i].replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n      }\n    }\n\n    return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');\n  }\n\n  var notCharacterOrDash = '(?=[^A-Za-z\\\\d\\\\-_]|$)';\n  var varNames = /[\\w\\-:]/\n  var keywords = buildRegexp([\n    /begin|break|catch|continue|data|default|do|dynamicparam/,\n    /else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,\n    /param|process|return|switch|throw|trap|try|until|where|while/\n  ], { suffix: notCharacterOrDash });\n\n  var punctuation = /[\\[\\]{},;`\\\\\\.]|@[({]/;\n  var wordOperators = buildRegexp([\n    'f',\n    /b?not/,\n    /[ic]?split/, 'join',\n    /is(not)?/, 'as',\n    /[ic]?(eq|ne|[gl][te])/,\n    /[ic]?(not)?(like|match|contains)/,\n    /[ic]?replace/,\n    /b?(and|or|xor)/\n  ], { prefix: '-' });\n  var symbolOperators = /[+\\-*\\/%]=|\\+\\+|--|\\.\\.|[+\\-*&^%:=!|\\/]|<(?!#)|(?!#)>/;\n  var operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });\n\n  var numbers = /^((0x[\\da-f]+)|((\\d+\\.\\d+|\\d\\.|\\.\\d+|\\d+)(e[\\+\\-]?\\d+)?))[ld]?([kmgtp]b)?/i;\n\n  var identifiers = /^[A-Za-z\\_][A-Za-z\\-\\_\\d]*\\b/;\n\n  var symbolBuiltins = /[A-Z]:|%|\\?/i;\n  var namedBuiltins = buildRegexp([\n    /Add-(Computer|Content|History|Member|PSSnapin|Type)/,\n    /Checkpoint-Computer/,\n    /Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,\n    /Compare-Object/,\n    /Complete-Transaction/,\n    /Connect-PSSession/,\n    /ConvertFrom-(Csv|Json|SecureString|StringData)/,\n    /Convert-Path/,\n    /ConvertTo-(Csv|Html|Json|SecureString|Xml)/,\n    /Copy-Item(Property)?/,\n    /Debug-Process/,\n    /Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n    /Disconnect-PSSession/,\n    /Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n    /(Enter|Exit)-PSSession/,\n    /Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,\n    /ForEach-Object/,\n    /Format-(Custom|List|Table|Wide)/,\n    new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'\n      + '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'\n      + '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'\n      + '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),\n    /Group-Object/,\n    /Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,\n    /ImportSystemModules/,\n    /Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,\n    /Join-Path/,\n    /Limit-EventLog/,\n    /Measure-(Command|Object)/,\n    /Move-Item(Property)?/,\n    new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'\n      + '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),\n    /Out-(Default|File|GridView|Host|Null|Printer|String)/,\n    /Pause/,\n    /(Pop|Push)-Location/,\n    /Read-Host/,\n    /Receive-(Job|PSSession)/,\n    /Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,\n    /Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,\n    /Rename-(Computer|Item(Property)?)/,\n    /Reset-ComputerMachinePassword/,\n    /Resolve-Path/,\n    /Restart-(Computer|Service)/,\n    /Restore-Computer/,\n    /Resume-(Job|Service)/,\n    /Save-Help/,\n    /Select-(Object|String|Xml)/,\n    /Send-MailMessage/,\n    new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +\n               '|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),\n    /Show-(Command|ControlPanelItem|EventLog)/,\n    /Sort-Object/,\n    /Split-Path/,\n    /Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,\n    /Stop-(Computer|Job|Process|Service|Transcript)/,\n    /Suspend-(Job|Service)/,\n    /TabExpansion2/,\n    /Tee-Object/,\n    /Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,\n    /Trace-Command/,\n    /Unblock-File/,\n    /Undo-Transaction/,\n    /Unregister-(Event|PSSessionConfiguration)/,\n    /Update-(FormatData|Help|List|TypeData)/,\n    /Use-Transaction/,\n    /Wait-(Event|Job|Process)/,\n    /Where-Object/,\n    /Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,\n    /cd|help|mkdir|more|oss|prompt/,\n    /ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,\n    /echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,\n    /group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,\n    /measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,\n    /rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,\n    /sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/\n  ], { prefix: '', suffix: '' });\n  var variableBuiltins = buildRegexp([\n    /[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,\n    /FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,\n    /MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,\n    /PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,\n    /PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,\n    /WarningPreference|WhatIfPreference/,\n\n    /Event|EventArgs|EventSubscriber|Sender/,\n    /Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,\n    /true|false|null/\n  ], { prefix: '\\\\$', suffix: '' });\n\n  var builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });\n\n  var grammar = {\n    keyword: keywords,\n    number: numbers,\n    operator: operators,\n    builtin: builtins,\n    punctuation: punctuation,\n    identifier: identifiers\n  };\n\n  // tokenizers\n  function tokenBase(stream, state) {\n    // Handle Comments\n    //var ch = stream.peek();\n\n    var parent = state.returnStack[state.returnStack.length - 1];\n    if (parent && parent.shouldReturnFrom(state)) {\n      state.tokenize = parent.tokenize;\n      state.returnStack.pop();\n      return state.tokenize(stream, state);\n    }\n\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    if (stream.eat('(')) {\n      state.bracketNesting += 1;\n      return 'punctuation';\n    }\n\n    if (stream.eat(')')) {\n      state.bracketNesting -= 1;\n      return 'punctuation';\n    }\n\n    for (var key in grammar) {\n      if (stream.match(grammar[key])) {\n        return key;\n      }\n    }\n\n    var ch = stream.next();\n\n    // single-quote string\n    if (ch === \"'\") {\n      return tokenSingleQuoteString(stream, state);\n    }\n\n    if (ch === '$') {\n      return tokenVariable(stream, state);\n    }\n\n    // double-quote string\n    if (ch === '\"') {\n      return tokenDoubleQuoteString(stream, state);\n    }\n\n    if (ch === '<' && stream.eat('#')) {\n      state.tokenize = tokenComment;\n      return tokenComment(stream, state);\n    }\n\n    if (ch === '#') {\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    if (ch === '@') {\n      var quoteMatch = stream.eat(/[\"']/);\n      if (quoteMatch && stream.eol()) {\n        state.tokenize = tokenMultiString;\n        state.startQuote = quoteMatch[0];\n        return tokenMultiString(stream, state);\n      } else if (stream.eol()) {\n        return 'error';\n      } else if (stream.peek().match(/[({]/)) {\n        return 'punctuation';\n      } else if (stream.peek().match(varNames)) {\n        // splatted variable\n        return tokenVariable(stream, state);\n      }\n    }\n    return 'error';\n  }\n\n  function tokenSingleQuoteString(stream, state) {\n    var ch;\n    while ((ch = stream.peek()) != null) {\n      stream.next();\n\n      if (ch === \"'\" && !stream.eat(\"'\")) {\n        state.tokenize = tokenBase;\n        return 'string';\n      }\n    }\n\n    return 'error';\n  }\n\n  function tokenDoubleQuoteString(stream, state) {\n    var ch;\n    while ((ch = stream.peek()) != null) {\n      if (ch === '$') {\n        state.tokenize = tokenStringInterpolation;\n        return 'string';\n      }\n\n      stream.next();\n      if (ch === '`') {\n        stream.next();\n        continue;\n      }\n\n      if (ch === '\"' && !stream.eat('\"')) {\n        state.tokenize = tokenBase;\n        return 'string';\n      }\n    }\n\n    return 'error';\n  }\n\n  function tokenStringInterpolation(stream, state) {\n    return tokenInterpolation(stream, state, tokenDoubleQuoteString);\n  }\n\n  function tokenMultiStringReturn(stream, state) {\n    state.tokenize = tokenMultiString;\n    state.startQuote = '\"'\n    return tokenMultiString(stream, state);\n  }\n\n  function tokenHereStringInterpolation(stream, state) {\n    return tokenInterpolation(stream, state, tokenMultiStringReturn);\n  }\n\n  function tokenInterpolation(stream, state, parentTokenize) {\n    if (stream.match('$(')) {\n      var savedBracketNesting = state.bracketNesting;\n      state.returnStack.push({\n        /*jshint loopfunc:true */\n        shouldReturnFrom: function(state) {\n          return state.bracketNesting === savedBracketNesting;\n        },\n        tokenize: parentTokenize\n      });\n      state.tokenize = tokenBase;\n      state.bracketNesting += 1;\n      return 'punctuation';\n    } else {\n      stream.next();\n      state.returnStack.push({\n        shouldReturnFrom: function() { return true; },\n        tokenize: parentTokenize\n      });\n      state.tokenize = tokenVariable;\n      return state.tokenize(stream, state);\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == '>') {\n          state.tokenize = tokenBase;\n          break;\n      }\n      maybeEnd = (ch === '#');\n    }\n    return 'comment';\n  }\n\n  function tokenVariable(stream, state) {\n    var ch = stream.peek();\n    if (stream.eat('{')) {\n      state.tokenize = tokenVariableWithBraces;\n      return tokenVariableWithBraces(stream, state);\n    } else if (ch != undefined && ch.match(varNames)) {\n      stream.eatWhile(varNames);\n      state.tokenize = tokenBase;\n      return 'variable-2';\n    } else {\n      state.tokenize = tokenBase;\n      return 'error';\n    }\n  }\n\n  function tokenVariableWithBraces(stream, state) {\n    var ch;\n    while ((ch = stream.next()) != null) {\n      if (ch === '}') {\n        state.tokenize = tokenBase;\n        break;\n      }\n    }\n    return 'variable-2';\n  }\n\n  function tokenMultiString(stream, state) {\n    var quote = state.startQuote;\n    if (stream.sol() && stream.match(new RegExp(quote + '@'))) {\n      state.tokenize = tokenBase;\n    }\n    else if (quote === '\"') {\n      while (!stream.eol()) {\n        var ch = stream.peek();\n        if (ch === '$') {\n          state.tokenize = tokenHereStringInterpolation;\n          return 'string';\n        }\n\n        stream.next();\n        if (ch === '`') {\n          stream.next();\n        }\n      }\n    }\n    else {\n      stream.skipToEnd();\n    }\n\n    return 'string';\n  }\n\n  var external = {\n    startState: function() {\n      return {\n        returnStack: [],\n        bracketNesting: 0,\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      return state.tokenize(stream, state);\n    },\n\n    blockCommentStart: '<#',\n    blockCommentEnd: '#>',\n    lineComment: '#',\n    fold: 'brace'\n  };\n  return external;\n});\n\nCodeMirror.defineMIME('application/x-powershell', 'powershell');\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/properties/properties.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"properties\", function() {\n  return {\n    token: function(stream, state) {\n      var sol = stream.sol() || state.afterSection;\n      var eol = stream.eol();\n\n      state.afterSection = false;\n\n      if (sol) {\n        if (state.nextMultiline) {\n          state.inMultiline = true;\n          state.nextMultiline = false;\n        } else {\n          state.position = \"def\";\n        }\n      }\n\n      if (eol && ! state.nextMultiline) {\n        state.inMultiline = false;\n        state.position = \"def\";\n      }\n\n      if (sol) {\n        while(stream.eatSpace()) {}\n      }\n\n      var ch = stream.next();\n\n      if (sol && (ch === \"#\" || ch === \"!\" || ch === \";\")) {\n        state.position = \"comment\";\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (sol && ch === \"[\") {\n        state.afterSection = true;\n        stream.skipTo(\"]\"); stream.eat(\"]\");\n        return \"header\";\n      } else if (ch === \"=\" || ch === \":\") {\n        state.position = \"quote\";\n        return null;\n      } else if (ch === \"\\\\\" && state.position === \"quote\") {\n        if (stream.eol()) {  // end of line?\n          // Multiline value\n          state.nextMultiline = true;\n        }\n      }\n\n      return state.position;\n    },\n\n    startState: function() {\n      return {\n        position : \"def\",       // Current position, \"def\", \"quote\" or \"comment\"\n        nextMultiline : false,  // Is the next line multiline value\n        inMultiline : false,    // Is the current line a multiline value\n        afterSection : false    // Did we just open a section\n      };\n    }\n\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-properties\", \"properties\");\nCodeMirror.defineMIME(\"text/x-ini\", \"properties\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/protobuf/protobuf.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n  };\n\n  var keywordArray = [\n    \"package\", \"message\", \"import\", \"syntax\",\n    \"required\", \"optional\", \"repeated\", \"reserved\", \"default\", \"extensions\", \"packed\",\n    \"bool\", \"bytes\", \"double\", \"enum\", \"float\", \"string\",\n    \"int32\", \"int64\", \"uint32\", \"uint64\", \"sint32\", \"sint64\", \"fixed32\", \"fixed64\", \"sfixed32\", \"sfixed64\",\n    \"option\", \"service\", \"rpc\", \"returns\"\n  ];\n  var keywords = wordRegexp(keywordArray);\n\n  CodeMirror.registerHelper(\"hintWords\", \"protobuf\", keywordArray);\n\n  var identifiers = new RegExp(\"^[_A-Za-z\\xa1-\\uffff][_A-Za-z0-9\\xa1-\\uffff]*\");\n\n  function tokenBase(stream) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match(\"//\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))\n        return \"number\";\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?/))\n        return \"number\";\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?/))\n        return \"number\";\n    }\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return \"string\"; }\n    if (stream.match(/^'([^']|(''))*'/)) { return \"string\"; }\n\n    // Handle words\n    if (stream.match(keywords)) { return \"keyword\"; }\n    if (stream.match(identifiers)) { return \"variable\"; } ;\n\n    // Handle non-detected items\n    stream.next();\n    return null;\n  };\n\n  CodeMirror.defineMode(\"protobuf\", function() {\n    return {\n      token: tokenBase,\n      fold: \"brace\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-protobuf\", \"protobuf\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/pug/pug.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"), require(\"../css/css\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\", \"../css/css\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pug\", function (config) {\n  // token types\n  var KEYWORD = 'keyword';\n  var DOCTYPE = 'meta';\n  var ID = 'builtin';\n  var CLASS = 'qualifier';\n\n  var ATTRS_NEST = {\n    '{': '}',\n    '(': ')',\n    '[': ']'\n  };\n\n  var jsMode = CodeMirror.getMode(config, 'javascript');\n\n  function State() {\n    this.javaScriptLine = false;\n    this.javaScriptLineExcludesColon = false;\n\n    this.javaScriptArguments = false;\n    this.javaScriptArgumentsDepth = 0;\n\n    this.isInterpolating = false;\n    this.interpolationNesting = 0;\n\n    this.jsState = CodeMirror.startState(jsMode);\n\n    this.restOfLine = '';\n\n    this.isIncludeFiltered = false;\n    this.isEach = false;\n\n    this.lastTag = '';\n    this.scriptType = '';\n\n    // Attributes Mode\n    this.isAttrs = false;\n    this.attrsNest = [];\n    this.inAttributeName = true;\n    this.attributeIsType = false;\n    this.attrValue = '';\n\n    // Indented Mode\n    this.indentOf = Infinity;\n    this.indentToken = '';\n\n    this.innerMode = null;\n    this.innerState = null;\n\n    this.innerModeForLine = false;\n  }\n  /**\n   * Safely copy a state\n   *\n   * @return {State}\n   */\n  State.prototype.copy = function () {\n    var res = new State();\n    res.javaScriptLine = this.javaScriptLine;\n    res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;\n    res.javaScriptArguments = this.javaScriptArguments;\n    res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;\n    res.isInterpolating = this.isInterpolating;\n    res.interpolationNesting = this.interpolationNesting;\n\n    res.jsState = CodeMirror.copyState(jsMode, this.jsState);\n\n    res.innerMode = this.innerMode;\n    if (this.innerMode && this.innerState) {\n      res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);\n    }\n\n    res.restOfLine = this.restOfLine;\n\n    res.isIncludeFiltered = this.isIncludeFiltered;\n    res.isEach = this.isEach;\n    res.lastTag = this.lastTag;\n    res.scriptType = this.scriptType;\n    res.isAttrs = this.isAttrs;\n    res.attrsNest = this.attrsNest.slice();\n    res.inAttributeName = this.inAttributeName;\n    res.attributeIsType = this.attributeIsType;\n    res.attrValue = this.attrValue;\n    res.indentOf = this.indentOf;\n    res.indentToken = this.indentToken;\n\n    res.innerModeForLine = this.innerModeForLine;\n\n    return res;\n  };\n\n  function javaScript(stream, state) {\n    if (stream.sol()) {\n      // if javaScriptLine was set at end of line, ignore it\n      state.javaScriptLine = false;\n      state.javaScriptLineExcludesColon = false;\n    }\n    if (state.javaScriptLine) {\n      if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n        state.javaScriptLine = false;\n        state.javaScriptLineExcludesColon = false;\n        return;\n      }\n      var tok = jsMode.token(stream, state.jsState);\n      if (stream.eol()) state.javaScriptLine = false;\n      return tok || true;\n    }\n  }\n  function javaScriptArguments(stream, state) {\n    if (state.javaScriptArguments) {\n      if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n        state.javaScriptArguments = false;\n        return;\n      }\n      if (stream.peek() === '(') {\n        state.javaScriptArgumentsDepth++;\n      } else if (stream.peek() === ')') {\n        state.javaScriptArgumentsDepth--;\n      }\n      if (state.javaScriptArgumentsDepth === 0) {\n        state.javaScriptArguments = false;\n        return;\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      return tok || true;\n    }\n  }\n\n  function yieldStatement(stream) {\n    if (stream.match(/^yield\\b/)) {\n        return 'keyword';\n    }\n  }\n\n  function doctype(stream) {\n    if (stream.match(/^(?:doctype) *([^\\n]+)?/)) {\n        return DOCTYPE;\n    }\n  }\n\n  function interpolation(stream, state) {\n    if (stream.match('#{')) {\n      state.isInterpolating = true;\n      state.interpolationNesting = 0;\n      return 'punctuation';\n    }\n  }\n\n  function interpolationContinued(stream, state) {\n    if (state.isInterpolating) {\n      if (stream.peek() === '}') {\n        state.interpolationNesting--;\n        if (state.interpolationNesting < 0) {\n          stream.next();\n          state.isInterpolating = false;\n          return 'punctuation';\n        }\n      } else if (stream.peek() === '{') {\n        state.interpolationNesting++;\n      }\n      return jsMode.token(stream, state.jsState) || true;\n    }\n  }\n\n  function caseStatement(stream, state) {\n    if (stream.match(/^case\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function when(stream, state) {\n    if (stream.match(/^when\\b/)) {\n      state.javaScriptLine = true;\n      state.javaScriptLineExcludesColon = true;\n      return KEYWORD;\n    }\n  }\n\n  function defaultStatement(stream) {\n    if (stream.match(/^default\\b/)) {\n      return KEYWORD;\n    }\n  }\n\n  function extendsStatement(stream, state) {\n    if (stream.match(/^extends?\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function append(stream, state) {\n    if (stream.match(/^append\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function prepend(stream, state) {\n    if (stream.match(/^prepend\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function block(stream, state) {\n    if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n\n  function include(stream, state) {\n    if (stream.match(/^include\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function includeFiltered(stream, state) {\n    if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n      state.isIncludeFiltered = true;\n      return KEYWORD;\n    }\n  }\n\n  function includeFilteredContinued(stream, state) {\n    if (state.isIncludeFiltered) {\n      var tok = filter(stream, state);\n      state.isIncludeFiltered = false;\n      state.restOfLine = 'string';\n      return tok;\n    }\n  }\n\n  function mixin(stream, state) {\n    if (stream.match(/^mixin\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function call(stream, state) {\n    if (stream.match(/^\\+([-\\w]+)/)) {\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return 'variable';\n    }\n    if (stream.match('+#{', false)) {\n      stream.next();\n      state.mixinCallAfter = true;\n      return interpolation(stream, state);\n    }\n  }\n  function callArguments(stream, state) {\n    if (state.mixinCallAfter) {\n      state.mixinCallAfter = false;\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return true;\n    }\n  }\n\n  function conditional(stream, state) {\n    if (stream.match(/^(if|unless|else if|else)\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function each(stream, state) {\n    if (stream.match(/^(- *)?(each|for)\\b/)) {\n      state.isEach = true;\n      return KEYWORD;\n    }\n  }\n  function eachContinued(stream, state) {\n    if (state.isEach) {\n      if (stream.match(/^ in\\b/)) {\n        state.javaScriptLine = true;\n        state.isEach = false;\n        return KEYWORD;\n      } else if (stream.sol() || stream.eol()) {\n        state.isEach = false;\n      } else if (stream.next()) {\n        while (!stream.match(/^ in\\b/, false) && stream.next());\n        return 'variable';\n      }\n    }\n  }\n\n  function whileStatement(stream, state) {\n    if (stream.match(/^while\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function tag(stream, state) {\n    var captures;\n    if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n      state.lastTag = captures[1].toLowerCase();\n      if (state.lastTag === 'script') {\n        state.scriptType = 'application/javascript';\n      }\n      return 'tag';\n    }\n  }\n\n  function filter(stream, state) {\n    if (stream.match(/^:([\\w\\-]+)/)) {\n      var innerMode;\n      if (config && config.innerModes) {\n        innerMode = config.innerModes(stream.current().substring(1));\n      }\n      if (!innerMode) {\n        innerMode = stream.current().substring(1);\n      }\n      if (typeof innerMode === 'string') {\n        innerMode = CodeMirror.getMode(config, innerMode);\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'atom';\n    }\n  }\n\n  function code(stream, state) {\n    if (stream.match(/^(!?=|-)/)) {\n      state.javaScriptLine = true;\n      return 'punctuation';\n    }\n  }\n\n  function id(stream) {\n    if (stream.match(/^#([\\w-]+)/)) {\n      return ID;\n    }\n  }\n\n  function className(stream) {\n    if (stream.match(/^\\.([\\w-]+)/)) {\n      return CLASS;\n    }\n  }\n\n  function attrs(stream, state) {\n    if (stream.peek() == '(') {\n      stream.next();\n      state.isAttrs = true;\n      state.attrsNest = [];\n      state.inAttributeName = true;\n      state.attrValue = '';\n      state.attributeIsType = false;\n      return 'punctuation';\n    }\n  }\n\n  function attrsContinued(stream, state) {\n    if (state.isAttrs) {\n      if (ATTRS_NEST[stream.peek()]) {\n        state.attrsNest.push(ATTRS_NEST[stream.peek()]);\n      }\n      if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n        state.attrsNest.pop();\n      } else  if (stream.eat(')')) {\n        state.isAttrs = false;\n        return 'punctuation';\n      }\n      if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n        if (stream.peek() === '=' || stream.peek() === '!') {\n          state.inAttributeName = false;\n          state.jsState = CodeMirror.startState(jsMode);\n          if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n            state.attributeIsType = true;\n          } else {\n            state.attributeIsType = false;\n          }\n        }\n        return 'attribute';\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      if (state.attributeIsType && tok === 'string') {\n        state.scriptType = stream.current().toString();\n      }\n      if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n        try {\n          Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''));\n          state.inAttributeName = true;\n          state.attrValue = '';\n          stream.backUp(stream.current().length);\n          return attrsContinued(stream, state);\n        } catch (ex) {\n          //not the end of an attribute\n        }\n      }\n      state.attrValue += stream.current();\n      return tok || true;\n    }\n  }\n\n  function attributesBlock(stream, state) {\n    if (stream.match(/^&attributes\\b/)) {\n      state.javaScriptArguments = true;\n      state.javaScriptArgumentsDepth = 0;\n      return 'keyword';\n    }\n  }\n\n  function indent(stream) {\n    if (stream.sol() && stream.eatSpace()) {\n      return 'indent';\n    }\n  }\n\n  function comment(stream, state) {\n    if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n      state.indentOf = stream.indentation();\n      state.indentToken = 'comment';\n      return 'comment';\n    }\n  }\n\n  function colon(stream) {\n    if (stream.match(/^: */)) {\n      return 'colon';\n    }\n  }\n\n  function text(stream, state) {\n    if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n      return 'string';\n    }\n    if (stream.match(/^(<[^\\n]*)/, false)) {\n      // html string\n      setInnerMode(stream, state, 'htmlmixed');\n      state.innerModeForLine = true;\n      return innerMode(stream, state, true);\n    }\n  }\n\n  function dot(stream, state) {\n    if (stream.eat('.')) {\n      var innerMode = null;\n      if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {\n        innerMode = state.scriptType.toLowerCase().replace(/\"|'/g, '');\n      } else if (state.lastTag === 'style') {\n        innerMode = 'css';\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'dot';\n    }\n  }\n\n  function fail(stream) {\n    stream.next();\n    return null;\n  }\n\n\n  function setInnerMode(stream, state, mode) {\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = config.innerModes ? config.innerModes(mode) || mode : mode;\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = CodeMirror.getMode(config, mode);\n    state.indentOf = stream.indentation();\n\n    if (mode && mode.name !== 'null') {\n      state.innerMode = mode;\n    } else {\n      state.indentToken = 'string';\n    }\n  }\n  function innerMode(stream, state, force) {\n    if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {\n      if (state.innerMode) {\n        if (!state.innerState) {\n          state.innerState = state.innerMode.startState ? CodeMirror.startState(state.innerMode, stream.indentation()) : {};\n        }\n        return stream.hideFirstChars(state.indentOf + 2, function () {\n          return state.innerMode.token(stream, state.innerState) || true;\n        });\n      } else {\n        stream.skipToEnd();\n        return state.indentToken;\n      }\n    } else if (stream.sol()) {\n      state.indentOf = Infinity;\n      state.indentToken = null;\n      state.innerMode = null;\n      state.innerState = null;\n    }\n  }\n  function restOfLine(stream, state) {\n    if (stream.sol()) {\n      // if restOfLine was set at end of line, ignore it\n      state.restOfLine = '';\n    }\n    if (state.restOfLine) {\n      stream.skipToEnd();\n      var tok = state.restOfLine;\n      state.restOfLine = '';\n      return tok;\n    }\n  }\n\n\n  function startState() {\n    return new State();\n  }\n  function copyState(state) {\n    return state.copy();\n  }\n  /**\n   * Get the next token in the stream\n   *\n   * @param {Stream} stream\n   * @param {State} state\n   */\n  function nextToken(stream, state) {\n    var tok = innerMode(stream, state)\n      || restOfLine(stream, state)\n      || interpolationContinued(stream, state)\n      || includeFilteredContinued(stream, state)\n      || eachContinued(stream, state)\n      || attrsContinued(stream, state)\n      || javaScript(stream, state)\n      || javaScriptArguments(stream, state)\n      || callArguments(stream, state)\n\n      || yieldStatement(stream)\n      || doctype(stream)\n      || interpolation(stream, state)\n      || caseStatement(stream, state)\n      || when(stream, state)\n      || defaultStatement(stream)\n      || extendsStatement(stream, state)\n      || append(stream, state)\n      || prepend(stream, state)\n      || block(stream, state)\n      || include(stream, state)\n      || includeFiltered(stream, state)\n      || mixin(stream, state)\n      || call(stream, state)\n      || conditional(stream, state)\n      || each(stream, state)\n      || whileStatement(stream, state)\n      || tag(stream, state)\n      || filter(stream, state)\n      || code(stream, state)\n      || id(stream)\n      || className(stream)\n      || attrs(stream, state)\n      || attributesBlock(stream, state)\n      || indent(stream)\n      || text(stream, state)\n      || comment(stream, state)\n      || colon(stream)\n      || dot(stream, state)\n      || fail(stream);\n\n    return tok === true ? null : tok;\n  }\n  return {\n    startState: startState,\n    copyState: copyState,\n    token: nextToken\n  };\n}, 'javascript', 'css', 'htmlmixed');\n\nCodeMirror.defineMIME('text/x-pug', 'pug');\nCodeMirror.defineMIME('text/x-jade', 'pug');\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/puppet/puppet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"puppet\", function () {\n  // Stores the words from the define method\n  var words = {};\n  // Taken, mostly, from the Puppet official variable standards regex\n  var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;\n\n  // Takes a string of words separated by spaces and adds them as\n  // keys with the value of the first argument 'style'\n  function define(style, string) {\n    var split = string.split(' ');\n    for (var i = 0; i < split.length; i++) {\n      words[split[i]] = style;\n    }\n  }\n\n  // Takes commonly known puppet types/words and classifies them to a style\n  define('keyword', 'class define site node include import inherits');\n  define('keyword', 'case if else in and elsif default or');\n  define('atom', 'false true running present absent file directory undef');\n  define('builtin', 'action augeas burst chain computer cron destination dport exec ' +\n    'file filebucket group host icmp iniface interface jump k5login limit log_level ' +\n    'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' +\n    'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' +\n    'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' +\n    'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' +\n    'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' +\n    'resources router schedule scheduled_task selboolean selmodule service source ' +\n    'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' +\n    'user vlan yumrepo zfs zone zpool');\n\n  // After finding a start of a string ('|\") this function attempts to find the end;\n  // If a variable is encountered along the way, we display it differently when it\n  // is encapsulated in a double-quoted string.\n  function tokenString(stream, state) {\n    var current, prev, found_var = false;\n    while (!stream.eol() && (current = stream.next()) != state.pending) {\n      if (current === '$' && prev != '\\\\' && state.pending == '\"') {\n        found_var = true;\n        break;\n      }\n      prev = current;\n    }\n    if (found_var) {\n      stream.backUp(1);\n    }\n    if (current == state.pending) {\n      state.continueString = false;\n    } else {\n      state.continueString = true;\n    }\n    return \"string\";\n  }\n\n  // Main function\n  function tokenize(stream, state) {\n    // Matches one whole word\n    var word = stream.match(/[\\w]+/, false);\n    // Matches attributes (i.e. ensure => present ; 'ensure' would be matched)\n    var attribute = stream.match(/(\\s+)?\\w+\\s+=>.*/, false);\n    // Matches non-builtin resource declarations\n    // (i.e. \"apache::vhost {\" or \"mycustomclasss {\" would be matched)\n    var resource = stream.match(/(\\s+)?[\\w:_]+(\\s+)?{/, false);\n    // Matches virtual and exported resources (i.e. @@user { ; and the like)\n    var special_resource = stream.match(/(\\s+)?[@]{1,2}[\\w:_]+(\\s+)?{/, false);\n\n    // Finally advance the stream\n    var ch = stream.next();\n\n    // Have we found a variable?\n    if (ch === '$') {\n      if (stream.match(variable_regex)) {\n        // If so, and its in a string, assign it a different color\n        return state.continueString ? 'variable-2' : 'variable';\n      }\n      // Otherwise return an invalid variable\n      return \"error\";\n    }\n    // Should we still be looking for the end of a string?\n    if (state.continueString) {\n      // If so, go through the loop again\n      stream.backUp(1);\n      return tokenString(stream, state);\n    }\n    // Are we in a definition (class, node, define)?\n    if (state.inDefinition) {\n      // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched)\n      if (stream.match(/(\\s+)?[\\w:_]+(\\s+)?/)) {\n        return 'def';\n      }\n      // Match the rest it the next time around\n      stream.match(/\\s+{/);\n      state.inDefinition = false;\n    }\n    // Are we in an 'include' statement?\n    if (state.inInclude) {\n      // Match and return the included class\n      stream.match(/(\\s+)?\\S+(\\s+)?/);\n      state.inInclude = false;\n      return 'def';\n    }\n    // Do we just have a function on our hands?\n    // In 'ensure_resource(\"myclass\")', 'ensure_resource' is matched\n    if (stream.match(/(\\s+)?\\w+\\(/)) {\n      stream.backUp(1);\n      return 'def';\n    }\n    // Have we matched the prior attribute regex?\n    if (attribute) {\n      stream.match(/(\\s+)?\\w+/);\n      return 'tag';\n    }\n    // Do we have Puppet specific words?\n    if (word && words.hasOwnProperty(word)) {\n      // Negates the initial next()\n      stream.backUp(1);\n      // rs move the stream\n      stream.match(/[\\w]+/);\n      // We want to process these words differently\n      // do to the importance they have in Puppet\n      if (stream.match(/\\s+\\S+\\s+{/, false)) {\n        state.inDefinition = true;\n      }\n      if (word == 'include') {\n        state.inInclude = true;\n      }\n      // Returns their value as state in the prior define methods\n      return words[word];\n    }\n    // Is there a match on a reference?\n    if (/(^|\\s+)[A-Z][\\w:_]+/.test(word)) {\n      // Negate the next()\n      stream.backUp(1);\n      // Match the full reference\n      stream.match(/(^|\\s+)[A-Z][\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior resource regex?\n    if (resource) {\n      stream.match(/(\\s+)?[\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior special_resource regex?\n    if (special_resource) {\n      stream.match(/(\\s+)?[@]{1,2}/);\n      return 'special';\n    }\n    // Match all the comments. All of them.\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // Have we found a string?\n    if (ch == \"'\" || ch == '\"') {\n      // Store the type (single or double)\n      state.pending = ch;\n      // Perform the looping function to find the end\n      return tokenString(stream, state);\n    }\n    // Match all the brackets\n    if (ch == '{' || ch == '}') {\n      return 'bracket';\n    }\n    // Match characters that we are going to assume\n    // are trying to be regex\n    if (ch == '/') {\n      stream.match(/^[^\\/]*\\//);\n      return 'variable-3';\n    }\n    // Match all the numbers\n    if (ch.match(/[0-9]/)) {\n      stream.eatWhile(/[0-9]+/);\n      return 'number';\n    }\n    // Match the '=' and '=>' operators\n    if (ch == '=') {\n      if (stream.peek() == '>') {\n          stream.next();\n      }\n      return \"operator\";\n    }\n    // Keep advancing through all the rest\n    stream.eatWhile(/[\\w-]/);\n    // Return a blank line for everything else\n    return null;\n  }\n  // Start it all\n  return {\n    startState: function () {\n      var state = {};\n      state.inDefinition = false;\n      state.inInclude = false;\n      state.continueString = false;\n      state.pending = false;\n      return state;\n    },\n    token: function (stream, state) {\n      // Strip the spaces, but regex will account for them eitherway\n      if (stream.eatSpace()) return null;\n      // Go through the main process\n      return tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-puppet\", \"puppet\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/python/python.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\", \"is\"]);\n  var commonKeywords = [\"as\", \"assert\", \"break\", \"class\", \"continue\",\n                        \"def\", \"del\", \"elif\", \"else\", \"except\", \"finally\",\n                        \"for\", \"from\", \"global\", \"if\", \"import\",\n                        \"lambda\", \"pass\", \"raise\", \"return\",\n                        \"try\", \"while\", \"with\", \"yield\", \"in\"];\n  var commonBuiltins = [\"abs\", \"all\", \"any\", \"bin\", \"bool\", \"bytearray\", \"callable\", \"chr\",\n                        \"classmethod\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\",\n                        \"enumerate\", \"eval\", \"filter\", \"float\", \"format\", \"frozenset\",\n                        \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"hex\", \"id\",\n                        \"input\", \"int\", \"isinstance\", \"issubclass\", \"iter\", \"len\",\n                        \"list\", \"locals\", \"map\", \"max\", \"memoryview\", \"min\", \"next\",\n                        \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"property\", \"range\",\n                        \"repr\", \"reversed\", \"round\", \"set\", \"setattr\", \"slice\",\n                        \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\",\n                        \"type\", \"vars\", \"zip\", \"__import__\", \"NotImplemented\",\n                        \"Ellipsis\", \"__debug__\"];\n  CodeMirror.registerHelper(\"hintWords\", \"python\", commonKeywords.concat(commonBuiltins));\n\n  function top(state) {\n    return state.scopes[state.scopes.length - 1];\n  }\n\n  CodeMirror.defineMode(\"python\", function(conf, parserConf) {\n    var ERRORCLASS = \"error\";\n\n    var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\\(\\)\\[\\]\\{\\}@,:`=;\\.\\\\]/;\n    //               (Backwards-compatibility with old, cumbersome config system)\n    var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,\n                     parserConf.operators || /^([-+*/%\\/&|^]=?|[<>=]+|\\/\\/=?|\\*\\*=?|!=|[~!@]|\\.\\.\\.)/]\n    for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)\n\n    var hangingIndent = parserConf.hangingIndent || conf.indentUnit;\n\n    var myKeywords = commonKeywords, myBuiltins = commonBuiltins;\n    if (parserConf.extra_keywords != undefined)\n      myKeywords = myKeywords.concat(parserConf.extra_keywords);\n\n    if (parserConf.extra_builtins != undefined)\n      myBuiltins = myBuiltins.concat(parserConf.extra_builtins);\n\n    var py3 = !(parserConf.version && Number(parserConf.version) < 3)\n    if (py3) {\n      // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator\n      var identifiers = parserConf.identifiers|| /^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*/;\n      myKeywords = myKeywords.concat([\"nonlocal\", \"False\", \"True\", \"None\", \"async\", \"await\"]);\n      myBuiltins = myBuiltins.concat([\"ascii\", \"bytes\", \"exec\", \"print\"]);\n      var stringPrefixes = new RegExp(\"^(([rbuf]|(br)|(fr))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    } else {\n      var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;\n      myKeywords = myKeywords.concat([\"exec\", \"print\"]);\n      myBuiltins = myBuiltins.concat([\"apply\", \"basestring\", \"buffer\", \"cmp\", \"coerce\", \"execfile\",\n                                      \"file\", \"intern\", \"long\", \"raw_input\", \"reduce\", \"reload\",\n                                      \"unichr\", \"unicode\", \"xrange\", \"False\", \"True\", \"None\"]);\n      var stringPrefixes = new RegExp(\"^(([rubf]|(ur)|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    }\n    var keywords = wordRegexp(myKeywords);\n    var builtins = wordRegexp(myBuiltins);\n\n    // tokenizers\n    function tokenBase(stream, state) {\n      var sol = stream.sol() && state.lastToken != \"\\\\\"\n      if (sol) state.indent = stream.indentation()\n      // Handle scope changes\n      if (sol && top(state).type == \"py\") {\n        var scopeOffset = top(state).offset;\n        if (stream.eatSpace()) {\n          var lineOffset = stream.indentation();\n          if (lineOffset > scopeOffset)\n            pushPyScope(state);\n          else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != \"#\")\n            state.errorToken = true;\n          return null;\n        } else {\n          var style = tokenBaseInner(stream, state);\n          if (scopeOffset > 0 && dedent(stream, state))\n            style += \" \" + ERRORCLASS;\n          return style;\n        }\n      }\n      return tokenBaseInner(stream, state);\n    }\n\n    function tokenBaseInner(stream, state, inFormat) {\n      if (stream.eatSpace()) return null;\n\n      // Handle Comments\n      if (!inFormat && stream.match(/^#.*/)) return \"comment\";\n\n      // Handle Number Literals\n      if (stream.match(/^[0-9\\.]/, false)) {\n        var floatLiteral = false;\n        // Floats\n        if (stream.match(/^[\\d_]*\\.\\d+(e[\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n        if (stream.match(/^[\\d_]+\\.\\d*/)) { floatLiteral = true; }\n        if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n        if (floatLiteral) {\n          // Float literals may be \"imaginary\"\n          stream.eat(/J/i);\n          return \"number\";\n        }\n        // Integers\n        var intLiteral = false;\n        // Hex\n        if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;\n        // Binary\n        if (stream.match(/^0b[01_]+/i)) intLiteral = true;\n        // Octal\n        if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;\n        // Decimal\n        if (stream.match(/^[1-9][\\d_]*(e[\\+\\-]?[\\d_]+)?/)) {\n          // Decimal literals may be \"imaginary\"\n          stream.eat(/J/i);\n          // TODO - Can you have imaginary longs?\n          intLiteral = true;\n        }\n        // Zero by itself with no other piece of number.\n        if (stream.match(/^0(?![\\dx])/i)) intLiteral = true;\n        if (intLiteral) {\n          // Integer literals may be \"long\"\n          stream.eat(/L/i);\n          return \"number\";\n        }\n      }\n\n      // Handle Strings\n      if (stream.match(stringPrefixes)) {\n        var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;\n        if (!isFmtString) {\n          state.tokenize = tokenStringFactory(stream.current(), state.tokenize);\n          return state.tokenize(stream, state);\n        } else {\n          state.tokenize = formatStringFactory(stream.current(), state.tokenize);\n          return state.tokenize(stream, state);\n        }\n      }\n\n      for (var i = 0; i < operators.length; i++)\n        if (stream.match(operators[i])) return \"operator\"\n\n      if (stream.match(delimiters)) return \"punctuation\";\n\n      if (state.lastToken == \".\" && stream.match(identifiers))\n        return \"property\";\n\n      if (stream.match(keywords) || stream.match(wordOperators))\n        return \"keyword\";\n\n      if (stream.match(builtins))\n        return \"builtin\";\n\n      if (stream.match(/^(self|cls)\\b/))\n        return \"variable-2\";\n\n      if (stream.match(identifiers)) {\n        if (state.lastToken == \"def\" || state.lastToken == \"class\")\n          return \"def\";\n        return \"variable\";\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return inFormat ? null :ERRORCLASS;\n    }\n\n    function formatStringFactory(delimiter, tokenOuter) {\n      while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n        delimiter = delimiter.substr(1);\n\n      var singleline = delimiter.length == 1;\n      var OUTCLASS = \"string\";\n\n      function tokenNestedExpr(depth) {\n        return function(stream, state) {\n          var inner = tokenBaseInner(stream, state, true)\n          if (inner == \"punctuation\") {\n            if (stream.current() == \"{\") {\n              state.tokenize = tokenNestedExpr(depth + 1)\n            } else if (stream.current() == \"}\") {\n              if (depth > 1) state.tokenize = tokenNestedExpr(depth - 1)\n              else state.tokenize = tokenString\n            }\n          }\n          return inner\n        }\n      }\n\n      function tokenString(stream, state) {\n        while (!stream.eol()) {\n          stream.eatWhile(/[^'\"\\{\\}\\\\]/);\n          if (stream.eat(\"\\\\\")) {\n            stream.next();\n            if (singleline && stream.eol())\n              return OUTCLASS;\n          } else if (stream.match(delimiter)) {\n            state.tokenize = tokenOuter;\n            return OUTCLASS;\n          } else if (stream.match('{{')) {\n            // ignore {{ in f-str\n            return OUTCLASS;\n          } else if (stream.match('{', false)) {\n            // switch to nested mode\n            state.tokenize = tokenNestedExpr(0)\n            if (stream.current()) return OUTCLASS;\n            else return state.tokenize(stream, state)\n          } else if (stream.match('}}')) {\n            return OUTCLASS;\n          } else if (stream.match('}')) {\n            // single } in f-string is an error\n            return ERRORCLASS;\n          } else {\n            stream.eat(/['\"]/);\n          }\n        }\n        if (singleline) {\n          if (parserConf.singleLineStringErrors)\n            return ERRORCLASS;\n          else\n            state.tokenize = tokenOuter;\n        }\n        return OUTCLASS;\n      }\n      tokenString.isString = true;\n      return tokenString;\n    }\n\n    function tokenStringFactory(delimiter, tokenOuter) {\n      while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n        delimiter = delimiter.substr(1);\n\n      var singleline = delimiter.length == 1;\n      var OUTCLASS = \"string\";\n\n      function tokenString(stream, state) {\n        while (!stream.eol()) {\n          stream.eatWhile(/[^'\"\\\\]/);\n          if (stream.eat(\"\\\\\")) {\n            stream.next();\n            if (singleline && stream.eol())\n              return OUTCLASS;\n          } else if (stream.match(delimiter)) {\n            state.tokenize = tokenOuter;\n            return OUTCLASS;\n          } else {\n            stream.eat(/['\"]/);\n          }\n        }\n        if (singleline) {\n          if (parserConf.singleLineStringErrors)\n            return ERRORCLASS;\n          else\n            state.tokenize = tokenOuter;\n        }\n        return OUTCLASS;\n      }\n      tokenString.isString = true;\n      return tokenString;\n    }\n\n    function pushPyScope(state) {\n      while (top(state).type != \"py\") state.scopes.pop()\n      state.scopes.push({offset: top(state).offset + conf.indentUnit,\n                         type: \"py\",\n                         align: null})\n    }\n\n    function pushBracketScope(stream, state, type) {\n      var align = stream.match(/^[\\s\\[\\{\\(]*(?:#|$)/, false) ? null : stream.column() + 1\n      state.scopes.push({offset: state.indent + hangingIndent,\n                         type: type,\n                         align: align})\n    }\n\n    function dedent(stream, state) {\n      var indented = stream.indentation();\n      while (state.scopes.length > 1 && top(state).offset > indented) {\n        if (top(state).type != \"py\") return true;\n        state.scopes.pop();\n      }\n      return top(state).offset != indented;\n    }\n\n    function tokenLexer(stream, state) {\n      if (stream.sol()) state.beginningOfLine = true;\n\n      var style = state.tokenize(stream, state);\n      var current = stream.current();\n\n      // Handle decorators\n      if (state.beginningOfLine && current == \"@\")\n        return stream.match(identifiers, false) ? \"meta\" : py3 ? \"operator\" : ERRORCLASS;\n\n      if (/\\S/.test(current)) state.beginningOfLine = false;\n\n      if ((style == \"variable\" || style == \"builtin\")\n          && state.lastToken == \"meta\")\n        style = \"meta\";\n\n      // Handle scope changes.\n      if (current == \"pass\" || current == \"return\")\n        state.dedent += 1;\n\n      if (current == \"lambda\") state.lambda = true;\n      if (current == \":\" && !state.lambda && top(state).type == \"py\")\n        pushPyScope(state);\n\n      if (current.length == 1 && !/string|comment/.test(style)) {\n        var delimiter_index = \"[({\".indexOf(current);\n        if (delimiter_index != -1)\n          pushBracketScope(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n\n        delimiter_index = \"])}\".indexOf(current);\n        if (delimiter_index != -1) {\n          if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent\n          else return ERRORCLASS;\n        }\n      }\n      if (state.dedent > 0 && stream.eol() && top(state).type == \"py\") {\n        if (state.scopes.length > 1) state.scopes.pop();\n        state.dedent -= 1;\n      }\n\n      return style;\n    }\n\n    var external = {\n      startState: function(basecolumn) {\n        return {\n          tokenize: tokenBase,\n          scopes: [{offset: basecolumn || 0, type: \"py\", align: null}],\n          indent: basecolumn || 0,\n          lastToken: null,\n          lambda: false,\n          dedent: 0\n        };\n      },\n\n      token: function(stream, state) {\n        var addErr = state.errorToken;\n        if (addErr) state.errorToken = false;\n        var style = tokenLexer(stream, state);\n\n        if (style && style != \"comment\")\n          state.lastToken = (style == \"keyword\" || style == \"punctuation\") ? stream.current() : style;\n        if (style == \"punctuation\") style = null;\n\n        if (stream.eol() && state.lambda)\n          state.lambda = false;\n        return addErr ? style + \" \" + ERRORCLASS : style;\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != tokenBase)\n          return state.tokenize.isString ? CodeMirror.Pass : 0;\n\n        var scope = top(state), closing = scope.type == textAfter.charAt(0)\n        if (scope.align != null)\n          return scope.align - (closing ? 1 : 0)\n        else\n          return scope.offset - (closing ? hangingIndent : 0)\n      },\n\n      electricInput: /^\\s*[\\}\\]\\)]$/,\n      closeBrackets: {triples: \"'\\\"\"},\n      lineComment: \"#\",\n      fold: \"indent\"\n    };\n    return external;\n  });\n\n  CodeMirror.defineMIME(\"text/x-python\", \"python\");\n\n  var words = function(str) { return str.split(\" \"); };\n\n  CodeMirror.defineMIME(\"text/x-cython\", {\n    name: \"python\",\n    extra_keywords: words(\"by cdef cimport cpdef ctypedef enum except \"+\n                          \"extern gil include nogil property public \"+\n                          \"readonly struct union DEF IF ELIF ELSE\")\n  });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/q/q.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"q\",function(config){\n  var indentUnit=config.indentUnit,\n      curPunc,\n      keywords=buildRE([\"abs\",\"acos\",\"aj\",\"aj0\",\"all\",\"and\",\"any\",\"asc\",\"asin\",\"asof\",\"atan\",\"attr\",\"avg\",\"avgs\",\"bin\",\"by\",\"ceiling\",\"cols\",\"cor\",\"cos\",\"count\",\"cov\",\"cross\",\"csv\",\"cut\",\"delete\",\"deltas\",\"desc\",\"dev\",\"differ\",\"distinct\",\"div\",\"do\",\"each\",\"ej\",\"enlist\",\"eval\",\"except\",\"exec\",\"exit\",\"exp\",\"fby\",\"fills\",\"first\",\"fkeys\",\"flip\",\"floor\",\"from\",\"get\",\"getenv\",\"group\",\"gtime\",\"hclose\",\"hcount\",\"hdel\",\"hopen\",\"hsym\",\"iasc\",\"idesc\",\"if\",\"ij\",\"in\",\"insert\",\"inter\",\"inv\",\"key\",\"keys\",\"last\",\"like\",\"list\",\"lj\",\"load\",\"log\",\"lower\",\"lsq\",\"ltime\",\"ltrim\",\"mavg\",\"max\",\"maxs\",\"mcount\",\"md5\",\"mdev\",\"med\",\"meta\",\"min\",\"mins\",\"mmax\",\"mmin\",\"mmu\",\"mod\",\"msum\",\"neg\",\"next\",\"not\",\"null\",\"or\",\"over\",\"parse\",\"peach\",\"pj\",\"plist\",\"prd\",\"prds\",\"prev\",\"prior\",\"rand\",\"rank\",\"ratios\",\"raze\",\"read0\",\"read1\",\"reciprocal\",\"reverse\",\"rload\",\"rotate\",\"rsave\",\"rtrim\",\"save\",\"scan\",\"select\",\"set\",\"setenv\",\"show\",\"signum\",\"sin\",\"sqrt\",\"ss\",\"ssr\",\"string\",\"sublist\",\"sum\",\"sums\",\"sv\",\"system\",\"tables\",\"tan\",\"til\",\"trim\",\"txf\",\"type\",\"uj\",\"ungroup\",\"union\",\"update\",\"upper\",\"upsert\",\"value\",\"var\",\"view\",\"views\",\"vs\",\"wavg\",\"where\",\"where\",\"while\",\"within\",\"wj\",\"wj1\",\"wsum\",\"xasc\",\"xbar\",\"xcol\",\"xcols\",\"xdesc\",\"xexp\",\"xgroup\",\"xkey\",\"xlog\",\"xprev\",\"xrank\"]),\n      E=/[|/&^!+:\\\\\\-*%$=~#;@><,?_\\'\\\"\\[\\(\\]\\)\\s{}]/;\n  function buildRE(w){return new RegExp(\"^(\"+w.join(\"|\")+\")$\");}\n  function tokenBase(stream,state){\n    var sol=stream.sol(),c=stream.next();\n    curPunc=null;\n    if(sol)\n      if(c==\"/\")\n        return(state.tokenize=tokenLineComment)(stream,state);\n      else if(c==\"\\\\\"){\n        if(stream.eol()||/\\s/.test(stream.peek()))\n          return stream.skipToEnd(),/^\\\\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream):state.tokenize=tokenBase,\"comment\";\n        else\n          return state.tokenize=tokenBase,\"builtin\";\n      }\n    if(/\\s/.test(c))\n      return stream.peek()==\"/\"?(stream.skipToEnd(),\"comment\"):\"whitespace\";\n    if(c=='\"')\n      return(state.tokenize=tokenString)(stream,state);\n    if(c=='`')\n      return stream.eatWhile(/[A-Za-z\\d_:\\/.]/),\"symbol\";\n    if((\".\"==c&&/\\d/.test(stream.peek()))||/\\d/.test(c)){\n      var t=null;\n      stream.backUp(1);\n      if(stream.match(/^\\d{4}\\.\\d{2}(m|\\.\\d{2}([DT](\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)?)?)/)\n      || stream.match(/^\\d+D(\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)/)\n      || stream.match(/^\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?/)\n      || stream.match(/^\\d+[ptuv]{1}/))\n        t=\"temporal\";\n      else if(stream.match(/^0[NwW]{1}/)\n      || stream.match(/^0x[\\da-fA-F]*/)\n      || stream.match(/^[01]+[b]{1}/)\n      || stream.match(/^\\d+[chijn]{1}/)\n      || stream.match(/-?\\d*(\\.\\d*)?(e[+\\-]?\\d+)?(e|f)?/))\n        t=\"number\";\n      return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),\"error\");\n    }\n    if(/[A-Za-z]|\\./.test(c))\n      return stream.eatWhile(/[A-Za-z._\\d]/),keywords.test(stream.current())?\"keyword\":\"variable\";\n    if(/[|/&^!+:\\\\\\-*%$=~#;@><\\.,?_\\']/.test(c))\n      return null;\n    if(/[{}\\(\\[\\]\\)]/.test(c))\n      return null;\n    return\"error\";\n  }\n  function tokenLineComment(stream,state){\n    return stream.skipToEnd(),/\\/\\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),\"comment\";\n  }\n  function tokenBlockComment(stream,state){\n    var f=stream.sol()&&stream.peek()==\"\\\\\";\n    stream.skipToEnd();\n    if(f&&/^\\\\\\s*$/.test(stream.current()))\n      state.tokenize=tokenBase;\n    return\"comment\";\n  }\n  function tokenCommentToEOF(stream){return stream.skipToEnd(),\"comment\";}\n  function tokenString(stream,state){\n    var escaped=false,next,end=false;\n    while((next=stream.next())){\n      if(next==\"\\\"\"&&!escaped){end=true;break;}\n      escaped=!escaped&&next==\"\\\\\";\n    }\n    if(end)state.tokenize=tokenBase;\n    return\"string\";\n  }\n  function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};}\n  function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;}\n  return{\n    startState:function(){\n      return{tokenize:tokenBase,\n             context:null,\n             indent:0,\n             col:0};\n    },\n    token:function(stream,state){\n      if(stream.sol()){\n        if(state.context&&state.context.align==null)\n          state.context.align=false;\n        state.indent=stream.indentation();\n      }\n      //if (stream.eatSpace()) return null;\n      var style=state.tokenize(stream,state);\n      if(style!=\"comment\"&&state.context&&state.context.align==null&&state.context.type!=\"pattern\"){\n        state.context.align=true;\n      }\n      if(curPunc==\"(\")pushContext(state,\")\",stream.column());\n      else if(curPunc==\"[\")pushContext(state,\"]\",stream.column());\n      else if(curPunc==\"{\")pushContext(state,\"}\",stream.column());\n      else if(/[\\]\\}\\)]/.test(curPunc)){\n        while(state.context&&state.context.type==\"pattern\")popContext(state);\n        if(state.context&&curPunc==state.context.type)popContext(state);\n      }\n      else if(curPunc==\".\"&&state.context&&state.context.type==\"pattern\")popContext(state);\n      else if(/atom|string|variable/.test(style)&&state.context){\n        if(/[\\}\\]]/.test(state.context.type))\n          pushContext(state,\"pattern\",stream.column());\n        else if(state.context.type==\"pattern\"&&!state.context.align){\n          state.context.align=true;\n          state.context.col=stream.column();\n        }\n      }\n      return style;\n    },\n    indent:function(state,textAfter){\n      var firstChar=textAfter&&textAfter.charAt(0);\n      var context=state.context;\n      if(/[\\]\\}]/.test(firstChar))\n        while (context&&context.type==\"pattern\")context=context.prev;\n      var closing=context&&firstChar==context.type;\n      if(!context)\n        return 0;\n      else if(context.type==\"pattern\")\n        return context.col;\n      else if(context.align)\n        return context.col+(closing?0:1);\n      else\n        return context.indent+(closing?0:indentUnit);\n    }\n  };\n});\nCodeMirror.defineMIME(\"text/x-q\",\"q\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/r/r.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"wordChars\", \"r\", /[\\w.]/);\n\nCodeMirror.defineMode(\"r\", function(config) {\n  function wordObj(words) {\n    var res = {};\n    for (var i = 0; i < words.length; ++i) res[words[i]] = true;\n    return res;\n  }\n  var commonAtoms = [\"NULL\", \"NA\", \"Inf\", \"NaN\", \"NA_integer_\", \"NA_real_\", \"NA_complex_\", \"NA_character_\", \"TRUE\", \"FALSE\"];\n  var commonBuiltins = [\"list\", \"quote\", \"bquote\", \"eval\", \"return\", \"call\", \"parse\", \"deparse\"];\n  var commonKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\", \"in\", \"next\", \"break\"];\n  var commonBlockKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\"];\n\n  CodeMirror.registerHelper(\"hintWords\", \"r\", commonAtoms.concat(commonBuiltins, commonKeywords));\n\n  var atoms = wordObj(commonAtoms);\n  var builtins = wordObj(commonBuiltins);\n  var keywords = wordObj(commonKeywords);\n  var blockkeywords = wordObj(commonBlockKeywords);\n  var opChars = /[+\\-*\\/^<>=!&|~$:]/;\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    var ch = stream.next();\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"0\" && stream.eat(\"x\")) {\n      stream.eatWhile(/[\\da-f]/i);\n      return \"number\";\n    } else if (ch == \".\" && stream.eat(/\\d/)) {\n      stream.match(/\\d*(?:e[+\\-]?\\d+)?/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/\\d*(?:\\.\\d+)?(?:e[+\\-]\\d+)?L?/);\n      return \"number\";\n    } else if (ch == \"'\" || ch == '\"') {\n      state.tokenize = tokenString(ch);\n      return \"string\";\n    } else if (ch == \"`\") {\n      stream.match(/[^`]+`/);\n      return \"variable-3\";\n    } else if (ch == \".\" && stream.match(/.[.\\d]+/)) {\n      return \"keyword\";\n    } else if (/[\\w\\.]/.test(ch) && ch != \"_\") {\n      stream.eatWhile(/[\\w\\.]/);\n      var word = stream.current();\n      if (atoms.propertyIsEnumerable(word)) return \"atom\";\n      if (keywords.propertyIsEnumerable(word)) {\n        // Block keywords start new blocks, except 'else if', which only starts\n        // one new block for the 'if', no block for the 'else'.\n        if (blockkeywords.propertyIsEnumerable(word) &&\n            !stream.match(/\\s*if(\\s+|$)/, false))\n          curPunc = \"block\";\n        return \"keyword\";\n      }\n      if (builtins.propertyIsEnumerable(word)) return \"builtin\";\n      return \"variable\";\n    } else if (ch == \"%\") {\n      if (stream.skipTo(\"%\")) stream.next();\n      return \"operator variable-2\";\n    } else if (\n        (ch == \"<\" && stream.eat(\"-\")) ||\n        (ch == \"<\" && stream.match(\"<-\")) ||\n        (ch == \"-\" && stream.match(/>>?/))\n      ) {\n      return \"operator arrow\";\n    } else if (ch == \"=\" && state.ctx.argList) {\n      return \"arg-is\";\n    } else if (opChars.test(ch)) {\n      if (ch == \"$\") return \"operator dollar\";\n      stream.eatWhile(opChars);\n      return \"operator\";\n    } else if (/[\\(\\){}\\[\\];]/.test(ch)) {\n      curPunc = ch;\n      if (ch == \";\") return \"semi\";\n      return null;\n    } else {\n      return null;\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      if (stream.eat(\"\\\\\")) {\n        var ch = stream.next();\n        if (ch == \"x\") stream.match(/^[a-f0-9]{2}/i);\n        else if ((ch == \"u\" || ch == \"U\") && stream.eat(\"{\") && stream.skipTo(\"}\")) stream.next();\n        else if (ch == \"u\") stream.match(/^[a-f0-9]{4}/i);\n        else if (ch == \"U\") stream.match(/^[a-f0-9]{8}/i);\n        else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);\n        return \"string-2\";\n      } else {\n        var next;\n        while ((next = stream.next()) != null) {\n          if (next == quote) { state.tokenize = tokenBase; break; }\n          if (next == \"\\\\\") { stream.backUp(1); break; }\n        }\n        return \"string\";\n      }\n    };\n  }\n\n  var ALIGN_YES = 1, ALIGN_NO = 2, BRACELESS = 4\n\n  function push(state, type, stream) {\n    state.ctx = {type: type,\n                 indent: state.indent,\n                 flags: 0,\n                 column: stream.column(),\n                 prev: state.ctx};\n  }\n  function setFlag(state, flag) {\n    var ctx = state.ctx\n    state.ctx = {type: ctx.type,\n                 indent: ctx.indent,\n                 flags: ctx.flags | flag,\n                 column: ctx.column,\n                 prev: ctx.prev}\n  }\n  function pop(state) {\n    state.indent = state.ctx.indent;\n    state.ctx = state.ctx.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              ctx: {type: \"top\",\n                    indent: -config.indentUnit,\n                    flags: ALIGN_NO},\n              indent: 0,\n              afterIdent: false};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if ((state.ctx.flags & 3) == 0) state.ctx.flags |= ALIGN_NO\n        if (state.ctx.flags & BRACELESS) pop(state)\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (style != \"comment\" && (state.ctx.flags & ALIGN_NO) == 0) setFlag(state, ALIGN_YES)\n\n      if ((curPunc == \";\" || curPunc == \"{\" || curPunc == \"}\") && state.ctx.type == \"block\") pop(state);\n      if (curPunc == \"{\") push(state, \"}\", stream);\n      else if (curPunc == \"(\") {\n        push(state, \")\", stream);\n        if (state.afterIdent) state.ctx.argList = true;\n      }\n      else if (curPunc == \"[\") push(state, \"]\", stream);\n      else if (curPunc == \"block\") push(state, \"block\", stream);\n      else if (curPunc == state.ctx.type) pop(state);\n      else if (state.ctx.type == \"block\" && style != \"comment\") setFlag(state, BRACELESS)\n      state.afterIdent = style == \"variable\" || style == \"keyword\";\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,\n          closing = firstChar == ctx.type;\n      if (ctx.flags & BRACELESS) ctx = ctx.prev\n      if (ctx.type == \"block\") return ctx.indent + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.flags & ALIGN_YES) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rsrc\", \"r\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/rpm/rpm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rpm-changes\", function() {\n  var headerSeparator = /^-+$/;\n  var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\\d{1,2} \\d{2}:\\d{2}(:\\d{2})? [A-Z]{3,4} \\d{4} - /;\n  var simpleEmail = /^[\\w+.-]+@[\\w.-]+/;\n\n  return {\n    token: function(stream) {\n      if (stream.sol()) {\n        if (stream.match(headerSeparator)) { return 'tag'; }\n        if (stream.match(headerLine)) { return 'tag'; }\n      }\n      if (stream.match(simpleEmail)) { return 'string'; }\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-changes\", \"rpm-changes\");\n\n// Quick and dirty spec file highlighting\n\nCodeMirror.defineMode(\"rpm-spec\", function() {\n  var arch = /^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;\n\n  var preamble = /^[a-zA-Z0-9()]+:/;\n  var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/;\n  var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros\n  var control_flow_simple = /^%(else|endif)/; // rpm control flow macros\n  var operators = /^(\\!|\\?|\\<\\=|\\<|\\>\\=|\\>|\\=\\=|\\&\\&|\\|\\|)/; // operators in control flow macros\n\n  return {\n    startState: function () {\n        return {\n          controlFlow: false,\n          macroParameters: false,\n          section: false\n        };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      if (ch == \"#\") { stream.skipToEnd(); return \"comment\"; }\n\n      if (stream.sol()) {\n        if (stream.match(preamble)) { return \"header\"; }\n        if (stream.match(section)) { return \"atom\"; }\n      }\n\n      if (stream.match(/^\\$\\w+/)) { return \"def\"; } // Variables like '$RPM_BUILD_ROOT'\n      if (stream.match(/^\\$\\{\\w+\\}/)) { return \"def\"; } // Variables like '${RPM_BUILD_ROOT}'\n\n      if (stream.match(control_flow_simple)) { return \"keyword\"; }\n      if (stream.match(control_flow_complex)) {\n        state.controlFlow = true;\n        return \"keyword\";\n      }\n      if (state.controlFlow) {\n        if (stream.match(operators)) { return \"operator\"; }\n        if (stream.match(/^(\\d+)/)) { return \"number\"; }\n        if (stream.eol()) { state.controlFlow = false; }\n      }\n\n      if (stream.match(arch)) {\n        if (stream.eol()) { state.controlFlow = false; }\n        return \"number\";\n      }\n\n      // Macros like '%make_install' or '%attr(0775,root,root)'\n      if (stream.match(/^%[\\w]+/)) {\n        if (stream.match('(')) { state.macroParameters = true; }\n        return \"keyword\";\n      }\n      if (state.macroParameters) {\n        if (stream.match(/^\\d+/)) { return \"number\";}\n        if (stream.match(')')) {\n          state.macroParameters = false;\n          return \"keyword\";\n        }\n      }\n\n      // Macros like '%{defined fedora}'\n      if (stream.match(/^%\\{\\??[\\w \\-\\:\\!]+\\}/)) {\n        if (stream.eol()) { state.controlFlow = false; }\n        return \"def\";\n      }\n\n      //TODO: Include bash script sub-parser (CodeMirror supports that)\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-spec\", \"rpm-spec\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/rst/rst.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../python/python\"), require(\"../stex/stex\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../python/python\", \"../stex/stex\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('rst', function (config, options) {\n\n  var rx_strong = /^\\*\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*\\*/;\n  var rx_emphasis = /^\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*/;\n  var rx_literal = /^``[^`\\s](?:[^`]*[^`\\s])``/;\n\n  var rx_number = /^(?:[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_positive = /^(?:\\s\\+[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_negative = /^(?:\\s\\-[\\d]+(?:[\\.,]\\d+)*)/;\n\n  var rx_uri_protocol = \"[Hh][Tt][Tt][Pp][Ss]?://\";\n  var rx_uri_domain = \"(?:[\\\\d\\\\w.-]+)\\\\.(?:\\\\w{2,6})\";\n  var rx_uri_path = \"(?:/[\\\\d\\\\w\\\\#\\\\%\\\\&\\\\-\\\\.\\\\,\\\\/\\\\:\\\\=\\\\?\\\\~]+)*\";\n  var rx_uri = new RegExp(\"^\" + rx_uri_protocol + rx_uri_domain + rx_uri_path);\n\n  var overlay = {\n    token: function (stream) {\n\n      if (stream.match(rx_strong) && stream.match (/\\W+|$/, false))\n        return 'strong';\n      if (stream.match(rx_emphasis) && stream.match (/\\W+|$/, false))\n        return 'em';\n      if (stream.match(rx_literal) && stream.match (/\\W+|$/, false))\n        return 'string-2';\n      if (stream.match(rx_number))\n        return 'number';\n      if (stream.match(rx_positive))\n        return 'positive';\n      if (stream.match(rx_negative))\n        return 'negative';\n      if (stream.match(rx_uri))\n        return 'link';\n\n      while (stream.next() != null) {\n        if (stream.match(rx_strong, false)) break;\n        if (stream.match(rx_emphasis, false)) break;\n        if (stream.match(rx_literal, false)) break;\n        if (stream.match(rx_number, false)) break;\n        if (stream.match(rx_positive, false)) break;\n        if (stream.match(rx_negative, false)) break;\n        if (stream.match(rx_uri, false)) break;\n      }\n\n      return null;\n    }\n  };\n\n  var mode = CodeMirror.getMode(\n    config, options.backdrop || 'rst-base'\n  );\n\n  return CodeMirror.overlayMode(mode, overlay, true); // combine\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMode('rst-base', function (config) {\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function format(string) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return string.replace(/{(\\d+)}/g, function (match, n) {\n      return typeof args[n] != 'undefined' ? args[n] : match;\n    });\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var mode_python = CodeMirror.getMode(config, 'python');\n  var mode_stex = CodeMirror.getMode(config, 'stex');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var SEPA = \"\\\\s+\";\n  var TAIL = \"(?:\\\\s*|\\\\W|$)\",\n  rx_TAIL = new RegExp(format('^{0}', TAIL));\n\n  var NAME =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\",\n  rx_NAME = new RegExp(format('^{0}', NAME));\n  var NAME_WWS =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w\\\\s!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\";\n  var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);\n\n  var TEXT1 = \"(?:[^\\\\s\\\\|](?:[^\\\\|]*[^\\\\s\\\\|])?)\";\n  var TEXT2 = \"(?:[^\\\\`]+)\",\n  rx_TEXT2 = new RegExp(format('^{0}', TEXT2));\n\n  var rx_section = new RegExp(\n    \"^([!'#$%&\\\"()*+,-./:;<=>?@\\\\[\\\\\\\\\\\\]^_`{|}~])\\\\1{3,}\\\\s*$\");\n  var rx_explicit = new RegExp(\n    format('^\\\\.\\\\.{0}', SEPA));\n  var rx_link = new RegExp(\n    format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));\n  var rx_directive = new RegExp(\n    format('^{0}::{1}', REF_NAME, TAIL));\n  var rx_substitution = new RegExp(\n    format('^\\\\|{0}\\\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));\n  var rx_footnote = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]{1}', REF_NAME, TAIL));\n  var rx_citation = new RegExp(\n    format('^\\\\[{0}\\\\]{1}', REF_NAME, TAIL));\n\n  var rx_substitution_ref = new RegExp(\n    format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_footnote_ref = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]_', REF_NAME));\n  var rx_citation_ref = new RegExp(\n    format('^\\\\[{0}\\\\]_', REF_NAME));\n  var rx_link_ref1 = new RegExp(\n    format('^{0}__?', REF_NAME));\n  var rx_link_ref2 = new RegExp(\n    format('^`{0}`_', TEXT2));\n\n  var rx_role_pre = new RegExp(\n    format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));\n  var rx_role_suf = new RegExp(\n    format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));\n  var rx_role = new RegExp(\n    format('^:{0}:{1}', NAME, TAIL));\n\n  var rx_directive_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_directive_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_substitution_text = new RegExp(format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));\n  var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_link_head = new RegExp(\"^_\");\n  var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));\n  var rx_link_tail = new RegExp(format('^:{0}', TAIL));\n\n  var rx_verbatim = new RegExp('^::\\\\s*$');\n  var rx_examples = new RegExp('^\\\\s+(?:>>>|In \\\\[\\\\d+\\\\]:)\\\\s');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_normal(stream, state) {\n    var token = null;\n\n    if (stream.sol() && stream.match(rx_examples, false)) {\n      change(state, to_mode, {\n        mode: mode_python, local: CodeMirror.startState(mode_python)\n      });\n    } else if (stream.sol() && stream.match(rx_explicit)) {\n      change(state, to_explicit);\n      token = 'meta';\n    } else if (stream.sol() && stream.match(rx_section)) {\n      change(state, to_normal);\n      token = 'header';\n    } else if (phase(state) == rx_role_pre ||\n               stream.match(rx_role_pre, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_pre, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_pre, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/)) {\n          state.tmp_stex = true;\n        }\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_pre, 3));\n        stream.match(/^:`/);\n        token = 'meta';\n        break;\n      case 3:\n        if (state.tmp_stex) {\n          state.tmp_stex = undefined; state.tmp = {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          };\n        }\n\n        if (state.tmp) {\n          if (stream.peek() == '`') {\n            change(state, to_normal, context(rx_role_pre, 4));\n            state.tmp = undefined;\n            break;\n          }\n\n          token = state.tmp.mode.token(stream, state.tmp.local);\n          break;\n        }\n\n        change(state, to_normal, context(rx_role_pre, 4));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_pre, 5));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_pre, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role_suf ||\n               stream.match(rx_role_suf, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_suf, 1));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_suf, 2));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_suf, 3));\n        stream.match(/^`:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role_suf, 4));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_suf, 5));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_suf, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role || stream.match(rx_role, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role, 3));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role, 4));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_substitution_ref ||\n               stream.match(rx_substitution_ref, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_substitution_ref, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_substitution_ref, 2));\n        if (stream.match(/^_?_?/)) token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_link_ref1)) {\n      change(state, to_normal);\n      if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n        token = 'link';\n      }\n    } else if (phase(state) == rx_link_ref2 ||\n               stream.match(rx_link_ref2, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n          change(state, to_normal, context(rx_link_ref2, 1));\n        } else {\n          stream.match(rx_link_ref2);\n        }\n        break;\n      case 1:\n        change(state, to_normal, context(rx_link_ref2, 2));\n        stream.match(/^`/);\n        token = 'link';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_link_ref2, 3));\n        stream.match(rx_TEXT2);\n        break;\n      case 3:\n        change(state, to_normal, context(rx_link_ref2, 4));\n        stream.match(/^`_/);\n        token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_verbatim)) {\n      change(state, to_verbatim);\n    }\n\n    else {\n      if (stream.next()) change(state, to_normal);\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_explicit(stream, state) {\n    var token = null;\n\n    if (phase(state) == rx_substitution ||\n        stream.match(rx_substitution, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_substitution, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_substitution, 2));\n        stream.match(rx_substitution_sepa);\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_substitution, 3));\n        stream.match(rx_substitution_name);\n        token = 'keyword';\n        break;\n      case 3:\n        change(state, to_explicit, context(rx_substitution, 4));\n        stream.match(rx_substitution_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_directive ||\n               stream.match(rx_directive, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_directive, 1));\n        stream.match(rx_directive_name);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/))\n          state.tmp_stex = true;\n        else if (stream.current().match(/^python/))\n          state.tmp_py = true;\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_directive, 2));\n        stream.match(rx_directive_tail);\n        token = 'meta';\n\n        if (stream.match(/^latex\\s*$/) || state.tmp_stex) {\n          state.tmp_stex = undefined; change(state, to_mode, {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          });\n        }\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_directive, 3));\n        if (stream.match(/^python\\s*$/) || state.tmp_py) {\n          state.tmp_py = undefined; change(state, to_mode, {\n            mode: mode_python, local: CodeMirror.startState(mode_python)\n          });\n        }\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_link || stream.match(rx_link, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_link, 1));\n        stream.match(rx_link_head);\n        stream.match(rx_link_name);\n        token = 'link';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_link, 2));\n        stream.match(rx_link_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation)) {\n      change(state, to_normal);\n      token = 'quote';\n    }\n\n    else {\n      stream.eatSpace();\n      if (stream.eol()) {\n        change(state, to_normal);\n      } else {\n        stream.skipToEnd();\n        change(state, to_comment);\n        token = 'comment';\n      }\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_comment(stream, state) {\n    return as_block(stream, state, 'comment');\n  }\n\n  function to_verbatim(stream, state) {\n    return as_block(stream, state, 'meta');\n  }\n\n  function as_block(stream, state, token) {\n    if (stream.eol() || stream.eatSpace()) {\n      stream.skipToEnd();\n      return token;\n    } else {\n      change(state, to_normal);\n      return null;\n    }\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_mode(stream, state) {\n\n    if (state.ctx.mode && state.ctx.local) {\n\n      if (stream.sol()) {\n        if (!stream.eatSpace()) change(state, to_normal);\n        return null;\n      }\n\n      return state.ctx.mode.token(stream, state.ctx.local);\n    }\n\n    change(state, to_normal);\n    return null;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function context(phase, stage, mode, local) {\n    return {phase: phase, stage: stage, mode: mode, local: local};\n  }\n\n  function change(state, tok, ctx) {\n    state.tok = tok;\n    state.ctx = ctx || {};\n  }\n\n  function stage(state) {\n    return state.ctx.stage || 0;\n  }\n\n  function phase(state) {\n    return state.ctx.phase;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  return {\n    startState: function () {\n      return {tok: to_normal, ctx: context(undefined, 0)};\n    },\n\n    copyState: function (state) {\n      var ctx = state.ctx, tmp = state.tmp;\n      if (ctx.local)\n        ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};\n      if (tmp)\n        tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};\n      return {tok: state.tok, ctx: ctx, tmp: tmp};\n    },\n\n    innerMode: function (state) {\n      return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}\n      : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}\n      : null;\n    },\n\n    token: function (stream, state) {\n      return state.tok(stream, state);\n    }\n  };\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMIME('text/x-rst', 'rst');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ruby/ruby.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction wordObj(words) {\n  var o = {};\n  for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n  return o;\n}\n\nvar keywordList = [\n  \"alias\", \"and\", \"BEGIN\", \"begin\", \"break\", \"case\", \"class\", \"def\", \"defined?\", \"do\", \"else\",\n  \"elsif\", \"END\", \"end\", \"ensure\", \"false\", \"for\", \"if\", \"in\", \"module\", \"next\", \"not\", \"or\",\n  \"redo\", \"rescue\", \"retry\", \"return\", \"self\", \"super\", \"then\", \"true\", \"undef\", \"unless\",\n  \"until\", \"when\", \"while\", \"yield\", \"nil\", \"raise\", \"throw\", \"catch\", \"fail\", \"loop\", \"callcc\",\n  \"caller\", \"lambda\", \"proc\", \"public\", \"protected\", \"private\", \"require\", \"load\",\n  \"require_relative\", \"extend\", \"autoload\", \"__END__\", \"__FILE__\", \"__LINE__\", \"__dir__\"\n], keywords = wordObj(keywordList);\n\nvar indentWords = wordObj([\"def\", \"class\", \"case\", \"for\", \"while\", \"until\", \"module\", \"then\",\n                           \"catch\", \"loop\", \"proc\", \"begin\"]);\nvar dedentWords = wordObj([\"end\", \"until\"]);\nvar opening = {\"[\": \"]\", \"{\": \"}\", \"(\": \")\"};\nvar closing = {\"]\": \"[\", \"}\": \"{\", \")\": \"(\"};\n\nCodeMirror.defineMode(\"ruby\", function(config) {\n  var curPunc;\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    if (stream.sol() && stream.match(\"=begin\") && stream.eol()) {\n      state.tokenize.push(readBlockComment);\n      return \"comment\";\n    }\n    if (stream.eatSpace()) return null;\n    var ch = stream.next(), m;\n    if (ch == \"`\" || ch == \"'\" || ch == '\"') {\n      return chain(readQuoted(ch, \"string\", ch == '\"' || ch == \"`\"), stream, state);\n    } else if (ch == \"/\") {\n      if (regexpAhead(stream))\n        return chain(readQuoted(ch, \"string-2\", true), stream, state);\n      else\n        return \"operator\";\n    } else if (ch == \"%\") {\n      var style = \"string\", embed = true;\n      if (stream.eat(\"s\")) style = \"atom\";\n      else if (stream.eat(/[WQ]/)) style = \"string\";\n      else if (stream.eat(/[r]/)) style = \"string-2\";\n      else if (stream.eat(/[wxq]/)) { style = \"string\"; embed = false; }\n      var delim = stream.eat(/[^\\w\\s=]/);\n      if (!delim) return \"operator\";\n      if (opening.propertyIsEnumerable(delim)) delim = opening[delim];\n      return chain(readQuoted(delim, style, embed, true), stream, state);\n    } else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"<\" && (m = stream.match(/^<([-~])[\\`\\\"\\']?([a-zA-Z_?]\\w*)[\\`\\\"\\']?(?:;|$)/))) {\n      return chain(readHereDoc(m[2], m[1]), stream, state);\n    } else if (ch == \"0\") {\n      if (stream.eat(\"x\")) stream.eatWhile(/[\\da-fA-F]/);\n      else if (stream.eat(\"b\")) stream.eatWhile(/[01]/);\n      else stream.eatWhile(/[0-7]/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^[\\d_]*(?:\\.[\\d_]+)?(?:[eE][+\\-]?[\\d_]+)?/);\n      return \"number\";\n    } else if (ch == \"?\") {\n      while (stream.match(/^\\\\[CM]-/)) {}\n      if (stream.eat(\"\\\\\")) stream.eatWhile(/\\w/);\n      else stream.next();\n      return \"string\";\n    } else if (ch == \":\") {\n      if (stream.eat(\"'\")) return chain(readQuoted(\"'\", \"atom\", false), stream, state);\n      if (stream.eat('\"')) return chain(readQuoted('\"', \"atom\", true), stream, state);\n\n      // :> :>> :< :<< are valid symbols\n      if (stream.eat(/[\\<\\>]/)) {\n        stream.eat(/[\\<\\>]/);\n        return \"atom\";\n      }\n\n      // :+ :- :/ :* :| :& :! are valid symbols\n      if (stream.eat(/[\\+\\-\\*\\/\\&\\|\\:\\!]/)) {\n        return \"atom\";\n      }\n\n      // Symbols can't start by a digit\n      if (stream.eat(/[a-zA-Z$@_\\xa1-\\uffff]/)) {\n        stream.eatWhile(/[\\w$\\xa1-\\uffff]/);\n        // Only one ? ! = is allowed and only as the last character\n        stream.eat(/[\\?\\!\\=]/);\n        return \"atom\";\n      }\n      return \"operator\";\n    } else if (ch == \"@\" && stream.match(/^@?[a-zA-Z_\\xa1-\\uffff]/)) {\n      stream.eat(\"@\");\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      return \"variable-2\";\n    } else if (ch == \"$\") {\n      if (stream.eat(/[a-zA-Z_]/)) {\n        stream.eatWhile(/[\\w]/);\n      } else if (stream.eat(/\\d/)) {\n        stream.eat(/\\d/);\n      } else {\n        stream.next(); // Must be a special global like $: or $!\n      }\n      return \"variable-3\";\n    } else if (/[a-zA-Z_\\xa1-\\uffff]/.test(ch)) {\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      stream.eat(/[\\?\\!]/);\n      if (stream.eat(\":\")) return \"atom\";\n      return \"ident\";\n    } else if (ch == \"|\" && (state.varList || state.lastTok == \"{\" || state.lastTok == \"do\")) {\n      curPunc = \"|\";\n      return null;\n    } else if (/[\\(\\)\\[\\]{}\\\\;]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    } else if (ch == \"-\" && stream.eat(\">\")) {\n      return \"arrow\";\n    } else if (/[=+\\-\\/*:\\.^%<>~|]/.test(ch)) {\n      var more = stream.eatWhile(/[=+\\-\\/*:\\.^%<>~|]/);\n      if (ch == \".\" && !more) curPunc = \".\";\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function regexpAhead(stream) {\n    var start = stream.pos, depth = 0, next, found = false, escaped = false\n    while ((next = stream.next()) != null) {\n      if (!escaped) {\n        if (\"[{(\".indexOf(next) > -1) {\n          depth++\n        } else if (\"]})\".indexOf(next) > -1) {\n          depth--\n          if (depth < 0) break\n        } else if (next == \"/\" && depth == 0) {\n          found = true\n          break\n        }\n        escaped = next == \"\\\\\"\n      } else {\n        escaped = false\n      }\n    }\n    stream.backUp(stream.pos - start)\n    return found\n  }\n\n  function tokenBaseUntilBrace(depth) {\n    if (!depth) depth = 1;\n    return function(stream, state) {\n      if (stream.peek() == \"}\") {\n        if (depth == 1) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        } else {\n          state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1);\n        }\n      } else if (stream.peek() == \"{\") {\n        state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1);\n      }\n      return tokenBase(stream, state);\n    };\n  }\n  function tokenBaseOnce() {\n    var alreadyCalled = false;\n    return function(stream, state) {\n      if (alreadyCalled) {\n        state.tokenize.pop();\n        return state.tokenize[state.tokenize.length-1](stream, state);\n      }\n      alreadyCalled = true;\n      return tokenBase(stream, state);\n    };\n  }\n  function readQuoted(quote, style, embed, unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n\n      if (state.context.type === 'read-quoted-paused') {\n        state.context = state.context.prev;\n        stream.eat(\"}\");\n      }\n\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        if (embed && ch == \"#\" && !escaped) {\n          if (stream.eat(\"{\")) {\n            if (quote == \"}\") {\n              state.context = {prev: state.context, type: 'read-quoted-paused'};\n            }\n            state.tokenize.push(tokenBaseUntilBrace());\n            break;\n          } else if (/[@\\$]/.test(stream.peek())) {\n            state.tokenize.push(tokenBaseOnce());\n            break;\n          }\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return style;\n    };\n  }\n  function readHereDoc(phrase, mayIndent) {\n    return function(stream, state) {\n      if (mayIndent) stream.eatSpace()\n      if (stream.match(phrase)) state.tokenize.pop();\n      else stream.skipToEnd();\n      return \"string\";\n    };\n  }\n  function readBlockComment(stream, state) {\n    if (stream.sol() && stream.match(\"=end\") && stream.eol())\n      state.tokenize.pop();\n    stream.skipToEnd();\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase],\n              indented: 0,\n              context: {type: \"top\", indented: -config.indentUnit},\n              continuedLine: false,\n              lastTok: null,\n              varList: false};\n    },\n\n    token: function(stream, state) {\n      curPunc = null;\n      if (stream.sol()) state.indented = stream.indentation();\n      var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype;\n      var thisTok = curPunc;\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = state.lastTok == \".\" ? \"property\"\n          : keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : /^[A-Z]/.test(word) ? \"tag\"\n          : (state.lastTok == \"def\" || state.lastTok == \"class\" || state.varList) ? \"def\"\n          : \"variable\";\n        if (style == \"keyword\") {\n          thisTok = word;\n          if (indentWords.propertyIsEnumerable(word)) kwtype = \"indent\";\n          else if (dedentWords.propertyIsEnumerable(word)) kwtype = \"dedent\";\n          else if ((word == \"if\" || word == \"unless\") && stream.column() == stream.indentation())\n            kwtype = \"indent\";\n          else if (word == \"do\" && state.context.indented < state.indented)\n            kwtype = \"indent\";\n        }\n      }\n      if (curPunc || (style && style != \"comment\")) state.lastTok = thisTok;\n      if (curPunc == \"|\") state.varList = !state.varList;\n\n      if (kwtype == \"indent\" || /[\\(\\[\\{]/.test(curPunc))\n        state.context = {prev: state.context, type: curPunc || style, indented: state.indented};\n      else if ((kwtype == \"dedent\" || /[\\)\\]\\}]/.test(curPunc)) && state.context.prev)\n        state.context = state.context.prev;\n\n      if (stream.eol())\n        state.continuedLine = (curPunc == \"\\\\\" || style == \"operator\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize[state.tokenize.length-1] != tokenBase) return CodeMirror.Pass;\n      var firstChar = textAfter && textAfter.charAt(0);\n      var ct = state.context;\n      var closed = ct.type == closing[firstChar] ||\n        ct.type == \"keyword\" && /^(?:end|until|else|elsif|when|rescue)\\b/.test(textAfter);\n      return ct.indented + (closed ? 0 : config.indentUnit) +\n        (state.continuedLine ? config.indentUnit : 0);\n    },\n\n    electricInput: /^\\s*(?:end|rescue|elsif|else|\\})$/,\n    lineComment: \"#\",\n    fold: \"indent\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ruby\", \"ruby\");\n\nCodeMirror.registerHelper(\"hintWords\", \"ruby\", keywordList);\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/rust/rust.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineSimpleMode(\"rust\",{\n  start: [\n    // string and byte string\n    {regex: /b?\"/, token: \"string\", next: \"string\"},\n    // raw string and raw byte string\n    {regex: /b?r\"/, token: \"string\", next: \"string_raw\"},\n    {regex: /b?r#+\"/, token: \"string\", next: \"string_raw_hash\"},\n    // character\n    {regex: /'(?:[^'\\\\]|\\\\(?:[nrt0'\"]|x[\\da-fA-F]{2}|u\\{[\\da-fA-F]{6}\\}))'/, token: \"string-2\"},\n    // byte\n    {regex: /b'(?:[^']|\\\\(?:['\\\\nrt0]|x[\\da-fA-F]{2}))'/, token: \"string-2\"},\n\n    {regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,\n     token: \"number\"},\n    {regex: /(let(?:\\s+mut)?|fn|enum|mod|struct|type|union)(\\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: [\"keyword\", null, \"def\"]},\n    {regex: /(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, token: \"keyword\"},\n    {regex: /\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\\b/, token: \"atom\"},\n    {regex: /\\b(?:true|false|Some|None|Ok|Err)\\b/, token: \"builtin\"},\n    {regex: /\\b(fn)(\\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,\n     token: [\"keyword\", null ,\"def\"]},\n    {regex: /#!?\\[.*\\]/, token: \"meta\"},\n    {regex: /\\/\\/.*/, token: \"comment\"},\n    {regex: /\\/\\*/, token: \"comment\", next: \"comment\"},\n    {regex: /[-+\\/*=<>!]+/, token: \"operator\"},\n    {regex: /[a-zA-Z_]\\w*!/,token: \"variable-3\"},\n    {regex: /[a-zA-Z_]\\w*/, token: \"variable\"},\n    {regex: /[\\{\\[\\(]/, indent: true},\n    {regex: /[\\}\\]\\)]/, dedent: true}\n  ],\n  string: [\n    {regex: /\"/, token: \"string\", next: \"start\"},\n    {regex: /(?:[^\\\\\"]|\\\\(?:.|$))*/, token: \"string\"}\n  ],\n  string_raw: [\n    {regex: /\"/, token: \"string\", next: \"start\"},\n    {regex: /[^\"]*/, token: \"string\"}\n  ],\n  string_raw_hash: [\n    {regex: /\"#+/, token: \"string\", next: \"start\"},\n    {regex: /(?:[^\"]|\"(?!#))*/, token: \"string\"}\n  ],\n  comment: [\n    {regex: /.*?\\*\\//, token: \"comment\", next: \"start\"},\n    {regex: /.*/, token: \"comment\"}\n  ],\n  meta: {\n    dontIndentStates: [\"comment\"],\n    electricInput: /^\\s*\\}$/,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"brace\"\n  }\n});\n\n\nCodeMirror.defineMIME(\"text/x-rustsrc\", \"rust\");\nCodeMirror.defineMIME(\"text/rust\", \"rust\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/sas/sas.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n\n// SAS mode copyright (c) 2016 Jared Dean, SAS Institute\n// Created by Jared Dean\n\n// TODO\n// indent and de-indent\n// identify macro variables\n\n\n//Definitions\n//  comment -- text within * ; or /* */\n//  keyword -- SAS language variable\n//  variable -- macro variables starts with '&' or variable formats\n//  variable-2 -- DATA Step, proc, or macro names\n//  string -- text within ' ' or \" \"\n//  operator -- numeric operator + / - * ** le eq ge ... and so on\n//  builtin -- proc %macro data run mend\n//  atom\n//  def\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"sas\", function () {\n    var words = {};\n    var isDoubleOperatorSym = {\n      eq: 'operator',\n      lt: 'operator',\n      le: 'operator',\n      gt: 'operator',\n      ge: 'operator',\n      \"in\": 'operator',\n      ne: 'operator',\n      or: 'operator'\n    };\n    var isDoubleOperatorChar = /(<=|>=|!=|<>)/;\n    var isSingleOperatorChar = /[=\\(:\\),{}.*<>+\\-\\/^\\[\\]]/;\n\n    // Takes a string of words separated by spaces and adds them as\n    // keys with the value of the first argument 'style'\n    function define(style, string, context) {\n      if (context) {\n        var split = string.split(' ');\n        for (var i = 0; i < split.length; i++) {\n          words[split[i]] = {style: style, state: context};\n        }\n      }\n    }\n    //datastep\n    define('def', 'stack pgm view source debug nesting nolist', ['inDataStep']);\n    define('def', 'if while until for do do; end end; then else cancel', ['inDataStep']);\n    define('def', 'label format _n_ _error_', ['inDataStep']);\n    define('def', 'ALTER BUFNO BUFSIZE CNTLLEV COMPRESS DLDMGACTION ENCRYPT ENCRYPTKEY EXTENDOBSCOUNTER GENMAX GENNUM INDEX LABEL OBSBUF OUTREP PW PWREQ READ REPEMPTY REPLACE REUSE ROLE SORTEDBY SPILL TOBSNO TYPE WRITE FILECLOSE FIRSTOBS IN OBS POINTOBS WHERE WHEREUP IDXNAME IDXWHERE DROP KEEP RENAME', ['inDataStep']);\n    define('def', 'filevar finfo finv fipname fipnamel fipstate first firstobs floor', ['inDataStep']);\n    define('def', 'varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vnferr vtype vtypex weekday', ['inDataStep']);\n    define('def', 'zipfips zipname zipnamel zipstate', ['inDataStep']);\n    define('def', 'put putc putn', ['inDataStep']);\n    define('builtin', 'data run', ['inDataStep']);\n\n\n    //proc\n    define('def', 'data', ['inProc']);\n\n    // flow control for macros\n    define('def', '%if %end %end; %else %else; %do %do; %then', ['inMacro']);\n\n    //everywhere\n    define('builtin', 'proc run; quit; libname filename %macro %mend option options', ['ALL']);\n\n    define('def', 'footnote title libname ods', ['ALL']);\n    define('def', '%let %put %global %sysfunc %eval ', ['ALL']);\n    // automatic macro variables http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a003167023.htm\n    define('variable', '&sysbuffr &syscc &syscharwidth &syscmd &sysdate &sysdate9 &sysday &sysdevic &sysdmg &sysdsn &sysencoding &sysenv &syserr &syserrortext &sysfilrc &syshostname &sysindex &sysinfo &sysjobid &syslast &syslckrc &syslibrc &syslogapplname &sysmacroname &sysmenv &sysmsg &sysncpu &sysodspath &sysparm &syspbuff &sysprocessid &sysprocessname &sysprocname &sysrc &sysscp &sysscpl &sysscpl &syssite &sysstartid &sysstartname &systcpiphostname &systime &sysuserid &sysver &sysvlong &sysvlong4 &syswarningtext', ['ALL']);\n\n    //footnote[1-9]? title[1-9]?\n\n    //options statement\n    define('def', 'source2 nosource2 page pageno pagesize', ['ALL']);\n\n    //proc and datastep\n    define('def', '_all_ _character_ _cmd_ _freq_ _i_ _infile_ _last_ _msg_ _null_ _numeric_ _temporary_ _type_ abort abs addr adjrsq airy alpha alter altlog altprint and arcos array arsin as atan attrc attrib attrn authserver autoexec awscontrol awsdef awsmenu awsmenumerge awstitle backward band base betainv between blocksize blshift bnot bor brshift bufno bufsize bxor by byerr byline byte calculated call cards cards4 catcache cbufno cdf ceil center cexist change chisq cinv class cleanup close cnonct cntllev coalesce codegen col collate collin column comamid comaux1 comaux2 comdef compbl compound compress config continue convert cos cosh cpuid create cross crosstab css curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datalines datalines4 datejul datepart datetime day dbcslang dbcstype dclose ddfm ddm delete delimiter depdb depdbsl depsl depsyd deptab dequote descending descript design= device dflang dhms dif digamma dim dinfo display distinct dkricond dkrocond dlm dnum do dopen doptname doptnum dread drop dropnote dsname dsnferr echo else emaildlg emailid emailpw emailserver emailsys encrypt end endsas engine eof eov erf erfc error errorcheck errors exist exp fappend fclose fcol fdelete feedback fetch fetchobs fexist fget file fileclose fileexist filefmt filename fileref  fmterr fmtsearch fnonct fnote font fontalias  fopen foptname foptnum force formatted formchar formdelim formdlim forward fpoint fpos fput fread frewind frlen from fsep fuzz fwrite gaminv gamma getoption getvarc getvarn go goto group gwindow hbar hbound helpenv helploc hms honorappearance hosthelp hostprint hour hpct html hvar ibessel ibr id if index indexc indexw initcmd initstmt inner input inputc inputn inr insert int intck intnx into intrr invaliddata irr is jbessel join juldate keep kentb kurtosis label lag last lbound leave left length levels lgamma lib  library libref line linesize link list log log10 log2 logpdf logpmf logsdf lostcard lowcase lrecl ls macro macrogen maps mautosource max maxdec maxr mdy mean measures median memtype merge merror min minute missing missover mlogic mod mode model modify month mopen mort mprint mrecall msglevel msymtabmax mvarsize myy n nest netpv new news nmiss no nobatch nobs nocaps nocardimage nocenter nocharcode nocmdmac nocol nocum nodate nodbcs nodetails nodmr nodms nodmsbatch nodup nodupkey noduplicates noechoauto noequals noerrorabend noexitwindows nofullstimer noicon noimplmac noint nolist noloadlist nomiss nomlogic nomprint nomrecall nomsgcase nomstored nomultenvappl nonotes nonumber noobs noovp nopad nopercent noprint noprintinit normal norow norsasuser nosetinit  nosplash nosymbolgen note notes notitle notitles notsorted noverbose noxsync noxwait npv null number numkeys nummousekeys nway obs  on open     order ordinal otherwise out outer outp= output over ovp p(1 5 10 25 50 75 90 95 99) pad pad2  paired parm parmcards path pathdll pathname pdf peek peekc pfkey pmf point poisson poke position printer probbeta probbnml probchi probf probgam probhypr probit probnegb probnorm probsig probt procleave prt ps  pw pwreq qtr quote r ranbin rancau random ranexp rangam range ranks rannor ranpoi rantbl rantri ranuni rcorr read recfm register regr remote remove rename repeat repeated replace resolve retain return reuse reverse rewind right round rsquare rtf rtrace rtraceloc s s2 samploc sasautos sascontrol sasfrscr sasmsg sasmstore sasscript sasuser saving scan sdf second select selection separated seq serror set setcomm setot sign simple sin sinh siteinfo skewness skip sle sls sortedby sortpgm sortseq sortsize soundex  spedis splashlocation split spool sqrt start std stderr stdin stfips stimer stname stnamel stop stopover sub subgroup subpopn substr sum sumwgt symbol symbolgen symget symput sysget sysin sysleave sysmsg sysparm sysprint sysprintfont sysprod sysrc system t table tables tan tanh tapeclose tbufsize terminal test then timepart tinv  tnonct to today tol tooldef totper transformout translate trantab tranwrd trigamma trim trimn trunc truncover type unformatted uniform union until upcase update user usericon uss validate value var  weight when where while wincharset window work workinit workterm write wsum xsync xwait yearcutoff yes yyq  min max', ['inDataStep', 'inProc']);\n    define('operator', 'and not ', ['inDataStep', 'inProc']);\n\n    // Main function\n    function tokenize(stream, state) {\n      // Finally advance the stream\n      var ch = stream.next();\n\n      // BLOCKCOMMENT\n      if (ch === '/' && stream.eat('*')) {\n        state.continueComment = true;\n        return \"comment\";\n      } else if (state.continueComment === true) { // in comment block\n        //comment ends at the beginning of the line\n        if (ch === '*' && stream.peek() === '/') {\n          stream.next();\n          state.continueComment = false;\n        } else if (stream.skipTo('*')) { //comment is potentially later in line\n          stream.skipTo('*');\n          stream.next();\n          if (stream.eat('/'))\n            state.continueComment = false;\n        } else {\n          stream.skipToEnd();\n        }\n        return \"comment\";\n      }\n\n      if (ch == \"*\" && stream.column() == stream.indentation()) {\n        stream.skipToEnd()\n        return \"comment\"\n      }\n\n      // DoubleOperator match\n      var doubleOperator = ch + stream.peek();\n\n      if ((ch === '\"' || ch === \"'\") && !state.continueString) {\n        state.continueString = ch\n        return \"string\"\n      } else if (state.continueString) {\n        if (state.continueString == ch) {\n          state.continueString = null;\n        } else if (stream.skipTo(state.continueString)) {\n          // quote found on this line\n          stream.next();\n          state.continueString = null;\n        } else {\n          stream.skipToEnd();\n        }\n        return \"string\";\n      } else if (state.continueString !== null && stream.eol()) {\n        stream.skipTo(state.continueString) || stream.skipToEnd();\n        return \"string\";\n      } else if (/[\\d\\.]/.test(ch)) { //find numbers\n        if (ch === \".\")\n          stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n        else if (ch === \"0\")\n          stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n        else\n          stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n        return \"number\";\n      } else if (isDoubleOperatorChar.test(ch + stream.peek())) { // TWO SYMBOL TOKENS\n        stream.next();\n        return \"operator\";\n      } else if (isDoubleOperatorSym.hasOwnProperty(doubleOperator)) {\n        stream.next();\n        if (stream.peek() === ' ')\n          return isDoubleOperatorSym[doubleOperator.toLowerCase()];\n      } else if (isSingleOperatorChar.test(ch)) { // SINGLE SYMBOL TOKENS\n        return \"operator\";\n      }\n\n      // Matches one whole word -- even if the word is a character\n      var word;\n      if (stream.match(/[%&;\\w]+/, false) != null) {\n        word = ch + stream.match(/[%&;\\w]+/, true);\n        if (/&/.test(word)) return 'variable'\n      } else {\n        word = ch;\n      }\n      // the word after DATA PROC or MACRO\n      if (state.nextword) {\n        stream.match(/[\\w]+/);\n        // match memname.libname\n        if (stream.peek() === '.') stream.skipTo(' ');\n        state.nextword = false;\n        return 'variable-2';\n      }\n\n      word = word.toLowerCase()\n      // Are we in a DATA Step?\n      if (state.inDataStep) {\n        if (word === 'run;' || stream.match(/run\\s;/)) {\n          state.inDataStep = false;\n          return 'builtin';\n        }\n        // variable formats\n        if ((word) && stream.next() === '.') {\n          //either a format or libname.memname\n          if (/\\w/.test(stream.peek())) return 'variable-2';\n          else return 'variable';\n        }\n        // do we have a DATA Step keyword\n        if (word && words.hasOwnProperty(word) &&\n            (words[word].state.indexOf(\"inDataStep\") !== -1 ||\n             words[word].state.indexOf(\"ALL\") !== -1)) {\n          //backup to the start of the word\n          if (stream.start < stream.pos)\n            stream.backUp(stream.pos - stream.start);\n          //advance the length of the word and return\n          for (var i = 0; i < word.length; ++i) stream.next();\n          return words[word].style;\n        }\n      }\n      // Are we in an Proc statement?\n      if (state.inProc) {\n        if (word === 'run;' || word === 'quit;') {\n          state.inProc = false;\n          return 'builtin';\n        }\n        // do we have a proc keyword\n        if (word && words.hasOwnProperty(word) &&\n            (words[word].state.indexOf(\"inProc\") !== -1 ||\n             words[word].state.indexOf(\"ALL\") !== -1)) {\n          stream.match(/[\\w]+/);\n          return words[word].style;\n        }\n      }\n      // Are we in a Macro statement?\n      if (state.inMacro) {\n        if (word === '%mend') {\n          if (stream.peek() === ';') stream.next();\n          state.inMacro = false;\n          return 'builtin';\n        }\n        if (word && words.hasOwnProperty(word) &&\n            (words[word].state.indexOf(\"inMacro\") !== -1 ||\n             words[word].state.indexOf(\"ALL\") !== -1)) {\n          stream.match(/[\\w]+/);\n          return words[word].style;\n        }\n\n        return 'atom';\n      }\n      // Do we have Keywords specific words?\n      if (word && words.hasOwnProperty(word)) {\n        // Negates the initial next()\n        stream.backUp(1);\n        // Actually move the stream\n        stream.match(/[\\w]+/);\n        if (word === 'data' && /=/.test(stream.peek()) === false) {\n          state.inDataStep = true;\n          state.nextword = true;\n          return 'builtin';\n        }\n        if (word === 'proc') {\n          state.inProc = true;\n          state.nextword = true;\n          return 'builtin';\n        }\n        if (word === '%macro') {\n          state.inMacro = true;\n          state.nextword = true;\n          return 'builtin';\n        }\n        if (/title[1-9]/.test(word)) return 'def';\n\n        if (word === 'footnote') {\n          stream.eat(/[1-9]/);\n          return 'def';\n        }\n\n        // Returns their value as state in the prior define methods\n        if (state.inDataStep === true && words[word].state.indexOf(\"inDataStep\") !== -1)\n          return words[word].style;\n        if (state.inProc === true && words[word].state.indexOf(\"inProc\") !== -1)\n          return words[word].style;\n        if (state.inMacro === true && words[word].state.indexOf(\"inMacro\") !== -1)\n          return words[word].style;\n        if (words[word].state.indexOf(\"ALL\") !== -1)\n          return words[word].style;\n        return null;\n      }\n      // Unrecognized syntax\n      return null;\n    }\n\n    return {\n      startState: function () {\n        return {\n          inDataStep: false,\n          inProc: false,\n          inMacro: false,\n          nextword: false,\n          continueString: null,\n          continueComment: false\n        };\n      },\n      token: function (stream, state) {\n        // Strip the spaces, but regex will account for them either way\n        if (stream.eatSpace()) return null;\n        // Go through the main process\n        return tokenize(stream, state);\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\"\n    };\n\n  });\n\n  CodeMirror.defineMIME(\"text/x-sas\", \"sas\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/sass/sass.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sass\", function(config) {\n  var cssMode = CodeMirror.mimeModes[\"text/css\"];\n  var propertyKeywords = cssMode.propertyKeywords || {},\n      colorKeywords = cssMode.colorKeywords || {},\n      valueKeywords = cssMode.valueKeywords || {},\n      fontProperties = cssMode.fontProperties || {};\n\n  function tokenRegexp(words) {\n    return new RegExp(\"^\" + words.join(\"|\"));\n  }\n\n  var keywords = [\"true\", \"false\", \"null\", \"auto\"];\n  var keywordsRegexp = new RegExp(\"^\" + keywords.join(\"|\"));\n\n  var operators = [\"\\\\(\", \"\\\\)\", \"=\", \">\", \"<\", \"==\", \">=\", \"<=\", \"\\\\+\", \"-\",\n                   \"\\\\!=\", \"/\", \"\\\\*\", \"%\", \"and\", \"or\", \"not\", \";\",\"\\\\{\",\"\\\\}\",\":\"];\n  var opRegexp = tokenRegexp(operators);\n\n  var pseudoElementsRegexp = /^::?[a-zA-Z_][\\w\\-]*/;\n\n  var word;\n\n  function isEndLine(stream) {\n    return !stream.peek() || stream.match(/\\s+$/, false);\n  }\n\n  function urlTokens(stream, state) {\n    var ch = stream.peek();\n\n    if (ch === \")\") {\n      stream.next();\n      state.tokenizer = tokenBase;\n      return \"operator\";\n    } else if (ch === \"(\") {\n      stream.next();\n      stream.eatSpace();\n\n      return \"operator\";\n    } else if (ch === \"'\" || ch === '\"') {\n      state.tokenizer = buildStringTokenizer(stream.next());\n      return \"string\";\n    } else {\n      state.tokenizer = buildStringTokenizer(\")\", false);\n      return \"string\";\n    }\n  }\n  function comment(indentation, multiLine) {\n    return function(stream, state) {\n      if (stream.sol() && stream.indentation() <= indentation) {\n        state.tokenizer = tokenBase;\n        return tokenBase(stream, state);\n      }\n\n      if (multiLine && stream.skipTo(\"*/\")) {\n        stream.next();\n        stream.next();\n        state.tokenizer = tokenBase;\n      } else {\n        stream.skipToEnd();\n      }\n\n      return \"comment\";\n    };\n  }\n\n  function buildStringTokenizer(quote, greedy) {\n    if (greedy == null) { greedy = true; }\n\n    function stringTokenizer(stream, state) {\n      var nextChar = stream.next();\n      var peekChar = stream.peek();\n      var previousChar = stream.string.charAt(stream.pos-2);\n\n      var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) || (nextChar === quote && previousChar !== \"\\\\\"));\n\n      if (endingString) {\n        if (nextChar !== quote && greedy) { stream.next(); }\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        state.tokenizer = tokenBase;\n        return \"string\";\n      } else if (nextChar === \"#\" && peekChar === \"{\") {\n        state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n        stream.next();\n        return \"operator\";\n      } else {\n        return \"string\";\n      }\n    }\n\n    return stringTokenizer;\n  }\n\n  function buildInterpolationTokenizer(currentTokenizer) {\n    return function(stream, state) {\n      if (stream.peek() === \"}\") {\n        stream.next();\n        state.tokenizer = currentTokenizer;\n        return \"operator\";\n      } else {\n        return tokenBase(stream, state);\n      }\n    };\n  }\n\n  function indent(state) {\n    if (state.indentCount == 0) {\n      state.indentCount++;\n      var lastScopeOffset = state.scopes[0].offset;\n      var currentOffset = lastScopeOffset + config.indentUnit;\n      state.scopes.unshift({ offset:currentOffset });\n    }\n  }\n\n  function dedent(state) {\n    if (state.scopes.length == 1) return;\n\n    state.scopes.shift();\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek();\n\n    // Comment\n    if (stream.match(\"/*\")) {\n      state.tokenizer = comment(stream.indentation(), true);\n      return state.tokenizer(stream, state);\n    }\n    if (stream.match(\"//\")) {\n      state.tokenizer = comment(stream.indentation(), false);\n      return state.tokenizer(stream, state);\n    }\n\n    // Interpolation\n    if (stream.match(\"#{\")) {\n      state.tokenizer = buildInterpolationTokenizer(tokenBase);\n      return \"operator\";\n    }\n\n    // Strings\n    if (ch === '\"' || ch === \"'\") {\n      stream.next();\n      state.tokenizer = buildStringTokenizer(ch);\n      return \"string\";\n    }\n\n    if(!state.cursorHalf){// state.cursorHalf === 0\n    // first half i.e. before : for key-value pairs\n    // including selectors\n\n      if (ch === \"-\") {\n        if (stream.match(/^-\\w+-/)) {\n          return \"meta\";\n        }\n      }\n\n      if (ch === \".\") {\n        stream.next();\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"qualifier\";\n        } else if (stream.peek() === \"#\") {\n          indent(state);\n          return \"tag\";\n        }\n      }\n\n      if (ch === \"#\") {\n        stream.next();\n        // ID selectors\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"builtin\";\n        }\n        if (stream.peek() === \"#\") {\n          indent(state);\n          return \"tag\";\n        }\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"variable-2\";\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/))\n        return \"number\";\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/))\n        return \"unit\";\n\n      if (stream.match(keywordsRegexp))\n        return \"keyword\";\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        return \"atom\";\n      }\n\n      if (ch === \"=\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^=[\\w-]+/)) {\n          indent(state);\n          return \"meta\";\n        }\n      }\n\n      if (ch === \"+\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^\\+[\\w-]+/)){\n          return \"variable-3\";\n        }\n      }\n\n      if(ch === \"@\"){\n        if(stream.match('@extend')){\n          if(!stream.match(/\\s*[\\w]/))\n            dedent(state);\n        }\n      }\n\n\n      // Indent Directives\n      if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {\n        indent(state);\n        return \"def\";\n      }\n\n      // Other Directives\n      if (ch === \"@\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"def\";\n      }\n\n      if (stream.eatWhile(/[\\w-]/)){\n        if(stream.match(/ *: *[\\w-\\+\\$#!\\(\"']/,false)){\n          word = stream.current().toLowerCase();\n          var prop = state.prevProp + \"-\" + word;\n          if (propertyKeywords.hasOwnProperty(prop)) {\n            return \"property\";\n          } else if (propertyKeywords.hasOwnProperty(word)) {\n            state.prevProp = word;\n            return \"property\";\n          } else if (fontProperties.hasOwnProperty(word)) {\n            return \"property\";\n          }\n          return \"tag\";\n        }\n        else if(stream.match(/ *:/,false)){\n          indent(state);\n          state.cursorHalf = 1;\n          state.prevProp = stream.current().toLowerCase();\n          return \"property\";\n        }\n        else if(stream.match(/ *,/,false)){\n          return \"tag\";\n        }\n        else{\n          indent(state);\n          return \"tag\";\n        }\n      }\n\n      if(ch === \":\"){\n        if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element\n          return \"variable-3\";\n        }\n        stream.next();\n        state.cursorHalf=1;\n        return \"operator\";\n      }\n\n    } // cursorHalf===0 ends here\n    else{\n\n      if (ch === \"#\") {\n        stream.next();\n        // Hex numbers\n        if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){\n          if (isEndLine(stream)) {\n            state.cursorHalf = 0;\n          }\n          return \"number\";\n        }\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/)){\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"number\";\n      }\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/)){\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"unit\";\n      }\n\n      if (stream.match(keywordsRegexp)){\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"keyword\";\n      }\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"atom\";\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"variable-2\";\n      }\n\n      // bang character for !important, !default, etc.\n      if (ch === \"!\") {\n        stream.next();\n        state.cursorHalf = 0;\n        return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n      }\n\n      if (stream.match(opRegexp)){\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        return \"operator\";\n      }\n\n      // attributes\n      if (stream.eatWhile(/[\\w-]/)) {\n        if (isEndLine(stream)) {\n          state.cursorHalf = 0;\n        }\n        word = stream.current().toLowerCase();\n        if (valueKeywords.hasOwnProperty(word)) {\n          return \"atom\";\n        } else if (colorKeywords.hasOwnProperty(word)) {\n          return \"keyword\";\n        } else if (propertyKeywords.hasOwnProperty(word)) {\n          state.prevProp = stream.current().toLowerCase();\n          return \"property\";\n        } else {\n          return \"tag\";\n        }\n      }\n\n      //stream.eatSpace();\n      if (isEndLine(stream)) {\n        state.cursorHalf = 0;\n        return null;\n      }\n\n    } // else ends here\n\n    if (stream.match(opRegexp))\n      return \"operator\";\n\n    // If we haven't returned by now, we move 1 character\n    // and return an error\n    stream.next();\n    return null;\n  }\n\n  function tokenLexer(stream, state) {\n    if (stream.sol()) state.indentCount = 0;\n    var style = state.tokenizer(stream, state);\n    var current = stream.current();\n\n    if (current === \"@return\" || current === \"}\"){\n      dedent(state);\n    }\n\n    if (style !== null) {\n      var startOfToken = stream.pos - current.length;\n\n      var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n      var newScopes = [];\n\n      for (var i = 0; i < state.scopes.length; i++) {\n        var scope = state.scopes[i];\n\n        if (scope.offset <= withCurrentIndent)\n          newScopes.push(scope);\n      }\n\n      state.scopes = newScopes;\n    }\n\n\n    return style;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenizer: tokenBase,\n        scopes: [{offset: 0, type: \"sass\"}],\n        indentCount: 0,\n        cursorHalf: 0,  // cursor half tells us if cursor lies after (1)\n                        // or before (0) colon (well... more or less)\n        definedVars: [],\n        definedMixins: []\n      };\n    },\n    token: function(stream, state) {\n      var style = tokenLexer(stream, state);\n\n      state.lastToken = { style: style, content: stream.current() };\n\n      return style;\n    },\n\n    indent: function(state) {\n      return state.scopes[0].offset;\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"indent\"\n  };\n}, \"css\");\n\nCodeMirror.defineMIME(\"text/x-sass\", \"sass\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/scheme/scheme.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Author: Koh Zi Han, based on implementation by Koh Zi Chun\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"scheme\", function () {\n    var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n        ATOM = \"atom\", NUMBER = \"number\", BRACKET = \"bracket\";\n    var INDENT_WORD_SKIP = 2;\n\n    function makeKeywords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = makeKeywords(\"λ case-lambda call/cc class cond-expand define-class define-values exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax define-macro defmacro delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?\");\n    var indentKeys = makeKeywords(\"define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless\");\n\n    function stateStack(indent, type, prev) { // represents a state stack object\n        this.indent = indent;\n        this.type = type;\n        this.prev = prev;\n    }\n\n    function pushStack(state, indent, type) {\n        state.indentStack = new stateStack(indent, type, state.indentStack);\n    }\n\n    function popStack(state) {\n        state.indentStack = state.indentStack.prev;\n    }\n\n    var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\\/[01]+#*)?i|[-+]?[01]+#*(?:\\/[01]+#*)?@[-+]?[01]+#*(?:\\/[01]+#*)?|[-+]?[01]+#*(?:\\/[01]+#*)?[-+](?:[01]+#*(?:\\/[01]+#*)?)?i|[-+]?[01]+#*(?:\\/[01]+#*)?)(?=[()\\s;\"]|$)/i);\n    var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?)(?=[()\\s;\"]|$)/i);\n    var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\\da-f]+#*(?:\\/[\\da-f]+#*)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?@[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?[-+](?:[\\da-f]+#*(?:\\/[\\da-f]+#*)?)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?)(?=[()\\s;\"]|$)/i);\n    var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)i|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)@[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)?i|(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*))(?=[()\\s;\"]|$)/i);\n\n    function isBinaryNumber (stream) {\n        return stream.match(binaryMatcher);\n    }\n\n    function isOctalNumber (stream) {\n        return stream.match(octalMatcher);\n    }\n\n    function isDecimalNumber (stream, backup) {\n        if (backup === true) {\n            stream.backUp(1);\n        }\n        return stream.match(decimalMatcher);\n    }\n\n    function isHexNumber (stream) {\n        return stream.match(hexMatcher);\n    }\n\n    return {\n        startState: function () {\n            return {\n                indentStack: null,\n                indentation: 0,\n                mode: false,\n                sExprComment: false,\n                sExprQuote: false\n            };\n        },\n\n        token: function (stream, state) {\n            if (state.indentStack == null && stream.sol()) {\n                // update indentation, but only if indentStack is empty\n                state.indentation = stream.indentation();\n            }\n\n            // skip spaces\n            if (stream.eatSpace()) {\n                return null;\n            }\n            var returnType = null;\n\n            switch(state.mode){\n                case \"string\": // multi-line string parsing mode\n                    var next, escaped = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"\\\"\" && !escaped) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        escaped = !escaped && next == \"\\\\\";\n                    }\n                    returnType = STRING; // continue on in scheme-string mode\n                    break;\n                case \"comment\": // comment parsing mode\n                    var next, maybeEnd = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"#\" && maybeEnd) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        maybeEnd = (next == \"|\");\n                    }\n                    returnType = COMMENT;\n                    break;\n                case \"s-expr-comment\": // s-expr commenting mode\n                    state.mode = false;\n                    if(stream.peek() == \"(\" || stream.peek() == \"[\"){\n                        // actually start scheme s-expr commenting mode\n                        state.sExprComment = 0;\n                    }else{\n                        // if not we just comment the entire of the next token\n                        stream.eatWhile(/[^\\s\\(\\)\\[\\]]/); // eat symbol atom\n                        returnType = COMMENT;\n                        break;\n                    }\n                default: // default parsing mode\n                    var ch = stream.next();\n\n                    if (ch == \"\\\"\") {\n                        state.mode = \"string\";\n                        returnType = STRING;\n\n                    } else if (ch == \"'\") {\n                        if (stream.peek() == \"(\" || stream.peek() == \"[\"){\n                            if (typeof state.sExprQuote != \"number\") {\n                                state.sExprQuote = 0;\n                            } // else already in a quoted expression\n                            returnType = ATOM;\n                        } else {\n                            stream.eatWhile(/[\\w_\\-!$%&*+\\.\\/:<=>?@\\^~]/);\n                            returnType = ATOM;\n                        }\n                    } else if (ch == '#') {\n                        if (stream.eat(\"|\")) {                    // Multi-line comment\n                            state.mode = \"comment\"; // toggle to comment mode\n                            returnType = COMMENT;\n                        } else if (stream.eat(/[tf]/i)) {            // #t/#f (atom)\n                            returnType = ATOM;\n                        } else if (stream.eat(';')) {                // S-Expr comment\n                            state.mode = \"s-expr-comment\";\n                            returnType = COMMENT;\n                        } else {\n                            var numTest = null, hasExactness = false, hasRadix = true;\n                            if (stream.eat(/[ei]/i)) {\n                                hasExactness = true;\n                            } else {\n                                stream.backUp(1);       // must be radix specifier\n                            }\n                            if (stream.match(/^#b/i)) {\n                                numTest = isBinaryNumber;\n                            } else if (stream.match(/^#o/i)) {\n                                numTest = isOctalNumber;\n                            } else if (stream.match(/^#x/i)) {\n                                numTest = isHexNumber;\n                            } else if (stream.match(/^#d/i)) {\n                                numTest = isDecimalNumber;\n                            } else if (stream.match(/^[-+0-9.]/, false)) {\n                                hasRadix = false;\n                                numTest = isDecimalNumber;\n                            // re-consume the initial # if all matches failed\n                            } else if (!hasExactness) {\n                                stream.eat('#');\n                            }\n                            if (numTest != null) {\n                                if (hasRadix && !hasExactness) {\n                                    // consume optional exactness after radix\n                                    stream.match(/^#[ei]/i);\n                                }\n                                if (numTest(stream))\n                                    returnType = NUMBER;\n                            }\n                        }\n                    } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal\n                        returnType = NUMBER;\n                    } else if (ch == \";\") { // comment\n                        stream.skipToEnd(); // rest of the line is a comment\n                        returnType = COMMENT;\n                    } else if (ch == \"(\" || ch == \"[\") {\n                      var keyWord = ''; var indentTemp = stream.column(), letter;\n                        /**\n                        Either\n                        (indent-word ..\n                        (non-indent-word ..\n                        (;something else, bracket, etc.\n                        */\n\n                        while ((letter = stream.eat(/[^\\s\\(\\[\\;\\)\\]]/)) != null) {\n                            keyWord += letter;\n                        }\n\n                        if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word\n\n                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);\n                        } else { // non-indent word\n                            // we continue eating the spaces\n                            stream.eatSpace();\n                            if (stream.eol() || stream.peek() == \";\") {\n                                // nothing significant after\n                                // we restart indentation 1 space after\n                                pushStack(state, indentTemp + 1, ch);\n                            } else {\n                                pushStack(state, indentTemp + stream.current().length, ch); // else we match\n                            }\n                        }\n                        stream.backUp(stream.current().length - 1); // undo all the eating\n\n                        if(typeof state.sExprComment == \"number\") state.sExprComment++;\n                        if(typeof state.sExprQuote == \"number\") state.sExprQuote++;\n\n                        returnType = BRACKET;\n                    } else if (ch == \")\" || ch == \"]\") {\n                        returnType = BRACKET;\n                        if (state.indentStack != null && state.indentStack.type == (ch == \")\" ? \"(\" : \"[\")) {\n                            popStack(state);\n\n                            if(typeof state.sExprComment == \"number\"){\n                                if(--state.sExprComment == 0){\n                                    returnType = COMMENT; // final closing bracket\n                                    state.sExprComment = false; // turn off s-expr commenting mode\n                                }\n                            }\n                            if(typeof state.sExprQuote == \"number\"){\n                                if(--state.sExprQuote == 0){\n                                    returnType = ATOM; // final closing bracket\n                                    state.sExprQuote = false; // turn off s-expr quote mode\n                                }\n                            }\n                        }\n                    } else {\n                        stream.eatWhile(/[\\w_\\-!$%&*+\\.\\/:<=>?@\\^~]/);\n\n                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {\n                            returnType = BUILTIN;\n                        } else returnType = \"variable\";\n                    }\n            }\n            return (typeof state.sExprComment == \"number\") ? COMMENT : ((typeof state.sExprQuote == \"number\") ? ATOM : returnType);\n        },\n\n        indent: function (state) {\n            if (state.indentStack == null) return state.indentation;\n            return state.indentStack.indent;\n        },\n\n        closeBrackets: {pairs: \"()[]{}\\\"\\\"\"},\n        lineComment: \";;\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/x-scheme\", \"scheme\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/shell/shell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('shell', function() {\n\n  var words = {};\n  function define(style, dict) {\n    for(var i = 0; i < dict.length; i++) {\n      words[dict[i]] = style;\n    }\n  };\n\n  var commonAtoms = [\"true\", \"false\"];\n  var commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n    \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\n  var commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n    \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n    \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n    \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n    \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n    \"yes\", \"zsh\"];\n\n  CodeMirror.registerHelper(\"hintWords\", \"shell\", commonAtoms.concat(commonKeywords, commonCommands));\n\n  define('atom', commonAtoms);\n  define('keyword', commonKeywords);\n  define('builtin', commonCommands);\n\n  function tokenBase(stream, state) {\n    if (stream.eatSpace()) return null;\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      stream.next();\n      return null;\n    }\n    if (ch === '\\'' || ch === '\"' || ch === '`') {\n      state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n      return tokenize(stream, state);\n    }\n    if (ch === '#') {\n      if (sol && stream.eat('!')) {\n        stream.skipToEnd();\n        return 'meta'; // 'comment'?\n      }\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (ch === '$') {\n      state.tokens.unshift(tokenDollar);\n      return tokenize(stream, state);\n    }\n    if (ch === '+' || ch === '=') {\n      return 'operator';\n    }\n    if (ch === '-') {\n      stream.eat('-');\n      stream.eatWhile(/\\w/);\n      return 'attribute';\n    }\n    if (ch == \"<\") {\n      if (stream.match(\"<<\")) return \"operator\"\n      var heredoc = stream.match(/^<-?\\s*['\"]?([^'\"]*)['\"]?/)\n      if (heredoc) {\n        state.tokens.unshift(tokenHeredoc(heredoc[1]))\n        return 'string-2'\n      }\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/\\d/);\n      if(stream.eol() || !/\\w/.test(stream.peek())) {\n        return 'number';\n      }\n    }\n    stream.eatWhile(/[\\w-]/);\n    var cur = stream.current();\n    if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n    return words.hasOwnProperty(cur) ? words[cur] : null;\n  }\n\n  function tokenString(quote, style) {\n    var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n    return function(stream, state) {\n      var next, escaped = false;\n      while ((next = stream.next()) != null) {\n        if (next === close && !escaped) {\n          state.tokens.shift();\n          break;\n        } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n          escaped = true;\n          stream.backUp(1);\n          state.tokens.unshift(tokenDollar);\n          break;\n        } else if (!escaped && quote !== close && next === quote) {\n          state.tokens.unshift(tokenString(quote, style))\n          return tokenize(stream, state)\n        } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n          state.tokens.unshift(tokenStringStart(next, \"string\"));\n          stream.backUp(1);\n          break;\n        }\n        escaped = !escaped && next === '\\\\';\n      }\n      return style;\n    };\n  };\n\n  function tokenStringStart(quote, style) {\n    return function(stream, state) {\n      state.tokens[0] = tokenString(quote, style)\n      stream.next()\n      return tokenize(stream, state)\n    }\n  }\n\n  var tokenDollar = function(stream, state) {\n    if (state.tokens.length > 1) stream.eat('$');\n    var ch = stream.next()\n    if (/['\"({]/.test(ch)) {\n      state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n      return tokenize(stream, state);\n    }\n    if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n    state.tokens.shift();\n    return 'def';\n  };\n\n  function tokenHeredoc(delim) {\n    return function(stream, state) {\n      if (stream.sol() && stream.string == delim) state.tokens.shift()\n      stream.skipToEnd()\n      return \"string-2\"\n    }\n  }\n\n  function tokenize(stream, state) {\n    return (state.tokens[0] || tokenBase) (stream, state);\n  };\n\n  return {\n    startState: function() {return {tokens:[]};},\n    token: function(stream, state) {\n      return tokenize(stream, state);\n    },\n    closeBrackets: \"()[]{}''\\\"\\\"``\",\n    lineComment: '#',\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n// Apache uses a slightly different Media Type for Shell scripts\n// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\nCodeMirror.defineMIME('application/x-sh', 'shell');\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/sieve/sieve.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sieve\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\"if elsif else stop require\");\n  var atoms = words(\"true false not\");\n  var indentUnit = config.indentUnit;\n\n  function tokenBase(stream, state) {\n\n    var ch = stream.next();\n    if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n\n    if (ch === '#') {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    if (ch == \"\\\"\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n\n    if (ch == \"(\") {\n      state._indent.push(\"(\");\n      // add virtual angel wings so that editor behaves...\n      // ...more sane in case of broken brackets\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch === \"{\") {\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch == \")\")  {\n      state._indent.pop();\n      state._indent.pop();\n    }\n\n    if (ch === \"}\") {\n      state._indent.pop();\n      return null;\n    }\n\n    if (ch == \",\")\n      return null;\n\n    if (ch == \";\")\n      return null;\n\n\n    if (/[{}\\(\\),;]/.test(ch))\n      return null;\n\n    // 1*DIGIT \"K\" / \"M\" / \"G\"\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\d]/);\n      stream.eat(/[KkMmGg]/);\n      return \"number\";\n    }\n\n    // \":\" (ALPHA / \"_\") *(ALPHA / DIGIT / \"_\")\n    if (ch == \":\") {\n      stream.eatWhile(/[a-zA-Z_]/);\n      stream.eatWhile(/[a-zA-Z0-9_]/);\n\n      return \"operator\";\n    }\n\n    stream.eatWhile(/\\w/);\n    var cur = stream.current();\n\n    // \"text:\" *(SP / HTAB) (hash-comment / CRLF)\n    // *(multiline-literal / multiline-dotstart)\n    // \".\" CRLF\n    if ((cur == \"text\") && stream.eat(\":\"))\n    {\n      state.tokenize = tokenMultiLineString;\n      return \"string\";\n    }\n\n    if (keywords.propertyIsEnumerable(cur))\n      return \"keyword\";\n\n    if (atoms.propertyIsEnumerable(cur))\n      return \"atom\";\n\n    return null;\n  }\n\n  function tokenMultiLineString(stream, state)\n  {\n    state._multiLineString = true;\n    // the first line is special it may contain a comment\n    if (!stream.sol()) {\n      stream.eatSpace();\n\n      if (stream.peek() == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      stream.skipToEnd();\n      return \"string\";\n    }\n\n    if ((stream.next() == \".\")  && (stream.eol()))\n    {\n      state._multiLineString = false;\n      state.tokenize = tokenBase;\n    }\n\n    return \"string\";\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              _indent: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n\n      return (state.tokenize || tokenBase)(stream, state);\n    },\n\n    indent: function(state, _textAfter) {\n      var length = state._indent.length;\n      if (_textAfter && (_textAfter[0] == \"}\"))\n        length--;\n\n      if (length <0)\n        length = 0;\n\n      return length * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/sieve\", \"sieve\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/slim/slim.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  CodeMirror.defineMode(\"slim\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n    var modes = { html: htmlMode, ruby: rubyMode };\n    var embedded = {\n      ruby: \"ruby\",\n      javascript: \"javascript\",\n      css: \"text/css\",\n      sass: \"text/x-sass\",\n      scss: \"text/x-scss\",\n      less: \"text/x-less\",\n      styl: \"text/x-styl\", // no highlighting so far\n      coffee: \"coffeescript\",\n      asciidoc: \"text/x-asciidoc\",\n      markdown: \"text/x-markdown\",\n      textile: \"text/x-textile\", // no highlighting so far\n      creole: \"text/x-creole\", // no highlighting so far\n      wiki: \"text/x-wiki\", // no highlighting so far\n      mediawiki: \"text/x-mediawiki\", // no highlighting so far\n      rdoc: \"text/x-rdoc\", // no highlighting so far\n      builder: \"text/x-builder\", // no highlighting so far\n      nokogiri: \"text/x-nokogiri\", // no highlighting so far\n      erb: \"application/x-erb\"\n    };\n    var embeddedRegexp = function(map){\n      var arr = [];\n      for(var key in map) arr.push(key);\n      return new RegExp(\"^(\"+arr.join('|')+\"):\");\n    }(embedded);\n\n    var styleMap = {\n      \"commentLine\": \"comment\",\n      \"slimSwitch\": \"operator special\",\n      \"slimTag\": \"tag\",\n      \"slimId\": \"attribute def\",\n      \"slimClass\": \"attribute qualifier\",\n      \"slimAttribute\": \"attribute\",\n      \"slimSubmode\": \"keyword special\",\n      \"closeAttributeTag\": null,\n      \"slimDoctype\": null,\n      \"lineContinuation\": null\n    };\n    var closing = {\n      \"{\": \"}\",\n      \"[\": \"]\",\n      \"(\": \")\"\n    };\n\n    var nameStartChar = \"_a-zA-Z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\n    var nameChar = nameStartChar + \"\\\\-0-9\\xB7\\u0300-\\u036F\\u203F-\\u2040\";\n    var nameRegexp = new RegExp(\"^[:\"+nameStartChar+\"](?::[\"+nameChar+\"]|[\"+nameChar+\"]*)\");\n    var attributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*(?=\\\\s*=)\");\n    var wrappedAttributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*\");\n    var classNameRegexp = /^\\.-?[_a-zA-Z]+[\\w\\-]*/;\n    var classIdRegexp = /^#[_a-zA-Z]+[\\w\\-]*/;\n\n    function backup(pos, tokenize, style) {\n      var restore = function(stream, state) {\n        state.tokenize = tokenize;\n        if (stream.pos < pos) {\n          stream.pos = pos;\n          return style;\n        }\n        return state.tokenize(stream, state);\n      };\n      return function(stream, state) {\n        state.tokenize = restore;\n        return tokenize(stream, state);\n      };\n    }\n\n    function maybeBackup(stream, state, pat, offset, style) {\n      var cur = stream.current();\n      var idx = cur.search(pat);\n      if (idx > -1) {\n        state.tokenize = backup(stream.pos, state.tokenize, style);\n        stream.backUp(cur.length - idx - offset);\n      }\n      return style;\n    }\n\n    function continueLine(state, column) {\n      state.stack = {\n        parent: state.stack,\n        style: \"continuation\",\n        indented: column,\n        tokenize: state.line\n      };\n      state.line = state.tokenize;\n    }\n    function finishContinue(state) {\n      if (state.line == state.tokenize) {\n        state.line = state.stack.tokenize;\n        state.stack = state.stack.parent;\n      }\n    }\n\n    function lineContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        if (stream.match(/^\\\\$/)) {\n          continueLine(state, column);\n          return \"lineContinuation\";\n        }\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/(?:^|[^\\\\])(?:\\\\\\\\)*\\\\$/)) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function commaContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/,$/)) {\n          continueLine(state, column);\n        }\n        return style;\n      };\n    }\n\n    function rubyInQuote(endQuote, tokenize) {\n      // TODO: add multi line support\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = tokenize;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n    function startRubySplat(tokenize) {\n      var rubyState;\n      var runSplat = function(stream, state) {\n        if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {\n          stream.backUp(1);\n          if (stream.eatSpace()) {\n            state.rubyState = rubyState;\n            state.tokenize = tokenize;\n            return tokenize(stream, state);\n          }\n          stream.next();\n        }\n        return ruby(stream, state);\n      };\n      return function(stream, state) {\n        rubyState = state.rubyState;\n        state.rubyState = CodeMirror.startState(rubyMode);\n        state.tokenize = runSplat;\n        return ruby(stream, state);\n      };\n    }\n\n    function ruby(stream, state) {\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function htmlLine(stream, state) {\n      if (stream.match(/^\\\\$/)) {\n        return \"lineContinuation\";\n      }\n      return html(stream, state);\n    }\n    function html(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      return maybeBackup(stream, state, /[^\\\\]#\\{/, 1, htmlMode.token(stream, state.htmlState));\n    }\n\n    function startHtmlLine(lastTokenize) {\n      return function(stream, state) {\n        var style = htmlLine(stream, state);\n        if (stream.eol()) state.tokenize = lastTokenize;\n        return style;\n      };\n    }\n\n    function startHtmlMode(stream, state, offset) {\n      state.stack = {\n        parent: state.stack,\n        style: \"html\",\n        indented: stream.column() + offset, // pipe + space\n        tokenize: state.line\n      };\n      state.line = state.tokenize = html;\n      return null;\n    }\n\n    function comment(stream, state) {\n      stream.skipToEnd();\n      return state.stack.style;\n    }\n\n    function commentMode(stream, state) {\n      state.stack = {\n        parent: state.stack,\n        style: \"comment\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = comment;\n      return comment(stream, state);\n    }\n\n    function attributeWrapper(stream, state) {\n      if (stream.eat(state.stack.endQuote)) {\n        state.line = state.stack.line;\n        state.tokenize = state.stack.tokenize;\n        state.stack = state.stack.parent;\n        return null;\n      }\n      if (stream.match(wrappedAttributeNameRegexp)) {\n        state.tokenize = attributeWrapperAssign;\n        return \"slimAttribute\";\n      }\n      stream.next();\n      return null;\n    }\n    function attributeWrapperAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = attributeWrapperValue;\n        return null;\n      }\n      return attributeWrapper(stream, state);\n    }\n    function attributeWrapperValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, attributeWrapper);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(attributeWrapper)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = attributeWrapper;\n        return \"keyword\";\n      }\n      return startRubySplat(attributeWrapper)(stream, state);\n    }\n\n    function startAttributeWrapperMode(state, endQuote, tokenize) {\n      state.stack = {\n        parent: state.stack,\n        style: \"wrapper\",\n        indented: state.indented + 1,\n        tokenize: tokenize,\n        line: state.line,\n        endQuote: endQuote\n      };\n      state.line = state.tokenize = attributeWrapper;\n      return null;\n    }\n\n    function sub(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);\n      subStream.pos = stream.pos - state.stack.indented;\n      subStream.start = stream.start - state.stack.indented;\n      subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;\n      subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;\n      var style = state.subMode.token(subStream, state.subState);\n      stream.pos = subStream.pos + state.stack.indented;\n      return style;\n    }\n    function firstSub(stream, state) {\n      state.stack.indented = stream.column();\n      state.line = state.tokenize = sub;\n      return state.tokenize(stream, state);\n    }\n\n    function createMode(mode) {\n      var query = embedded[mode];\n      var spec = CodeMirror.mimeModes[query];\n      if (spec) {\n        return CodeMirror.getMode(config, spec);\n      }\n      var factory = CodeMirror.modes[query];\n      if (factory) {\n        return factory(config, {name: query});\n      }\n      return CodeMirror.getMode(config, \"null\");\n    }\n\n    function getMode(mode) {\n      if (!modes.hasOwnProperty(mode)) {\n        return modes[mode] = createMode(mode);\n      }\n      return modes[mode];\n    }\n\n    function startSubMode(mode, state) {\n      var subMode = getMode(mode);\n      var subState = CodeMirror.startState(subMode);\n\n      state.subMode = subMode;\n      state.subState = subState;\n\n      state.stack = {\n        parent: state.stack,\n        style: \"sub\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = state.tokenize = firstSub;\n      return \"slimSubmode\";\n    }\n\n    function doctypeLine(stream, _state) {\n      stream.skipToEnd();\n      return \"slimDoctype\";\n    }\n\n    function startLine(stream, state) {\n      var ch = stream.peek();\n      if (ch == '<') {\n        return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);\n      }\n      if (stream.match(/^[|']/)) {\n        return startHtmlMode(stream, state, 1);\n      }\n      if (stream.match(/^\\/(!|\\[\\w+])?/)) {\n        return commentMode(stream, state);\n      }\n      if (stream.match(/^(-|==?[<>]?)/)) {\n        state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^doctype\\b/)) {\n        state.tokenize = doctypeLine;\n        return \"keyword\";\n      }\n\n      var m = stream.match(embeddedRegexp);\n      if (m) {\n        return startSubMode(m[1], state);\n      }\n\n      return slimTag(stream, state);\n    }\n\n    function slim(stream, state) {\n      if (state.startOfLine) {\n        return startLine(stream, state);\n      }\n      return slimTag(stream, state);\n    }\n\n    function slimTag(stream, state) {\n      if (stream.eat('*')) {\n        state.tokenize = startRubySplat(slimTagExtras);\n        return null;\n      }\n      if (stream.match(nameRegexp)) {\n        state.tokenize = slimTagExtras;\n        return \"slimTag\";\n      }\n      return slimClass(stream, state);\n    }\n    function slimTagExtras(stream, state) {\n      if (stream.match(/^(<>?|><?)/)) {\n        state.tokenize = slimClass;\n        return null;\n      }\n      return slimClass(stream, state);\n    }\n    function slimClass(stream, state) {\n      if (stream.match(classIdRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimId\";\n      }\n      if (stream.match(classNameRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimClass\";\n      }\n      return slimAttribute(stream, state);\n    }\n    function slimAttribute(stream, state) {\n      if (stream.match(/^([\\[\\{\\(])/)) {\n        return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);\n      }\n      if (stream.match(attributeNameRegexp)) {\n        state.tokenize = slimAttributeAssign;\n        return \"slimAttribute\";\n      }\n      if (stream.peek() == '*') {\n        stream.next();\n        state.tokenize = startRubySplat(slimContent);\n        return null;\n      }\n      return slimContent(stream, state);\n    }\n    function slimAttributeAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = slimAttributeValue;\n        return null;\n      }\n      // should never happen, because of forward lookup\n      return slimAttribute(stream, state);\n    }\n\n    function slimAttributeValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, slimAttribute);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(slimAttribute)(stream, state);\n      }\n      if (ch == ':') {\n        return startRubySplat(slimAttributeSymbols)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = slimAttribute;\n        return \"keyword\";\n      }\n      return startRubySplat(slimAttribute)(stream, state);\n    }\n    function slimAttributeSymbols(stream, state) {\n      stream.backUp(1);\n      if (stream.match(/^[^\\s],(?=:)/)) {\n        state.tokenize = startRubySplat(slimAttributeSymbols);\n        return null;\n      }\n      stream.next();\n      return slimAttribute(stream, state);\n    }\n    function readQuoted(quote, style, embed, unescaped, nextTokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var fresh = stream.current().length == 0;\n        if (stream.match(/^\\\\$/, fresh)) {\n          if (!fresh) return style;\n          continueLine(state, state.indented);\n          return \"lineContinuation\";\n        }\n        if (stream.match(/^#\\{/, fresh)) {\n          if (!fresh) return style;\n          state.tokenize = rubyInQuote(\"}\", state.tokenize);\n          return null;\n        }\n        var escaped = false, ch;\n        while ((ch = stream.next()) != null) {\n          if (ch == quote && (unescaped || !escaped)) {\n            state.tokenize = nextTokenize;\n            break;\n          }\n          if (embed && ch == \"#\" && !escaped) {\n            if (stream.eat(\"{\")) {\n              stream.backUp(2);\n              break;\n            }\n          }\n          escaped = !escaped && ch == \"\\\\\";\n        }\n        if (stream.eol() && escaped) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function slimContent(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = ruby;\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^\\/$/)) { // tag close hint\n        state.tokenize = slim;\n        return null;\n      }\n      if (stream.match(/^:/)) { // inline tag\n        state.tokenize = slimTag;\n        return \"slimSwitch\";\n      }\n      startHtmlMode(stream, state, 0);\n      return state.tokenize(stream, state);\n    }\n\n    var mode = {\n      // default to html mode\n      startState: function() {\n        var htmlState = CodeMirror.startState(htmlMode);\n        var rubyState = CodeMirror.startState(rubyMode);\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          stack: null,\n          last: null,\n          tokenize: slim,\n          line: slim,\n          indented: 0\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          subMode: state.subMode,\n          subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),\n          stack: state.stack,\n          last: state.last,\n          tokenize: state.tokenize,\n          line: state.line\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n          state.tokenize = state.line;\n          while (state.stack && state.stack.indented > state.indented && state.last != \"slimSubmode\") {\n            state.line = state.tokenize = state.stack.tokenize;\n            state.stack = state.stack.parent;\n            state.subMode = null;\n            state.subState = null;\n          }\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        if (style) state.last = style;\n        return styleMap.hasOwnProperty(style) ? styleMap[style] : style;\n      },\n\n      blankLine: function(state) {\n        if (state.subMode && state.subMode.blankLine) {\n          return state.subMode.blankLine(state.subState);\n        }\n      },\n\n      innerMode: function(state) {\n        if (state.subMode) return {state: state.subState, mode: state.subMode};\n        return {state: state, mode: mode};\n      }\n\n      //indent: function(state) {\n      //  return state.indented;\n      //}\n    };\n    return mode;\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-slim\", \"slim\");\n  CodeMirror.defineMIME(\"application/x-slim\", \"slim\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/smalltalk/smalltalk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('smalltalk', function(config) {\n\n  var specialChars = /[+\\-\\/\\\\*~<>=@%|&?!.,:;^]/;\n  var keywords = /true|false|nil|self|super|thisContext/;\n\n  var Context = function(tokenizer, parent) {\n    this.next = tokenizer;\n    this.parent = parent;\n  };\n\n  var Token = function(name, context, eos) {\n    this.name = name;\n    this.context = context;\n    this.eos = eos;\n  };\n\n  var State = function() {\n    this.context = new Context(next, null);\n    this.expectVariable = true;\n    this.indentation = 0;\n    this.userIndentationDelta = 0;\n  };\n\n  State.prototype.userIndent = function(indentation) {\n    this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;\n  };\n\n  var next = function(stream, context, state) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '\"') {\n      token = nextComment(stream, new Context(nextComment, context));\n\n    } else if (aChar === '\\'') {\n      token = nextString(stream, new Context(nextString, context));\n\n    } else if (aChar === '#') {\n      if (stream.peek() === '\\'') {\n        stream.next();\n        token = nextSymbol(stream, new Context(nextSymbol, context));\n      } else {\n        if (stream.eatWhile(/[^\\s.{}\\[\\]()]/))\n          token.name = 'string-2';\n        else\n          token.name = 'meta';\n      }\n\n    } else if (aChar === '$') {\n      if (stream.next() === '<') {\n        stream.eatWhile(/[^\\s>]/);\n        stream.next();\n      }\n      token.name = 'string-2';\n\n    } else if (aChar === '|' && state.expectVariable) {\n      token.context = new Context(nextTemporaries, context);\n\n    } else if (/[\\[\\]{}()]/.test(aChar)) {\n      token.name = 'bracket';\n      token.eos = /[\\[{(]/.test(aChar);\n\n      if (aChar === '[') {\n        state.indentation++;\n      } else if (aChar === ']') {\n        state.indentation = Math.max(0, state.indentation - 1);\n      }\n\n    } else if (specialChars.test(aChar)) {\n      stream.eatWhile(specialChars);\n      token.name = 'operator';\n      token.eos = aChar !== ';'; // ; cascaded message expression\n\n    } else if (/\\d/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d]/);\n      token.name = 'number';\n\n    } else if (/[\\w_]/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d_]/);\n      token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;\n\n    } else {\n      token.eos = state.expectVariable;\n    }\n\n    return token;\n  };\n\n  var nextComment = function(stream, context) {\n    stream.eatWhile(/[^\"]/);\n    return new Token('comment', stream.eat('\"') ? context.parent : context, true);\n  };\n\n  var nextString = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextSymbol = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string-2', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextTemporaries = function(stream, context) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '|') {\n      token.context = context.parent;\n      token.eos = true;\n\n    } else {\n      stream.eatWhile(/[^|]/);\n      token.name = 'variable';\n    }\n\n    return token;\n  };\n\n  return {\n    startState: function() {\n      return new State;\n    },\n\n    token: function(stream, state) {\n      state.userIndent(stream.indentation());\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var token = state.context.next(stream, state.context, state);\n      state.context = token.context;\n      state.expectVariable = token.eos;\n\n      return token.name;\n    },\n\n    blankLine: function(state) {\n      state.userIndent(0);\n    },\n\n    indent: function(state, textAfter) {\n      var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;\n      return (state.indentation + i) * config.indentUnit;\n    },\n\n    electricChars: ']'\n  };\n\n});\n\nCodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/smarty/smarty.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Smarty 2 and 3 mode.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"smarty\", function(config, parserConf) {\n    var rightDelimiter = parserConf.rightDelimiter || \"}\";\n    var leftDelimiter = parserConf.leftDelimiter || \"{\";\n    var version = parserConf.version || 2;\n    var baseMode = CodeMirror.getMode(config, parserConf.baseMode || \"null\");\n\n    var keyFunctions = [\"debug\", \"extends\", \"function\", \"include\", \"literal\"];\n    var regs = {\n      operatorChars: /[+\\-*&%=<>!?]/,\n      validIdentifier: /[a-zA-Z0-9_]/,\n      stringChar: /['\"]/\n    };\n\n    var last;\n    function cont(style, lastType) {\n      last = lastType;\n      return style;\n    }\n\n    function chain(stream, state, parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode\n    function doesNotCount(stream, pos) {\n      if (pos == null) pos = stream.pos;\n      return version === 3 && leftDelimiter == \"{\" &&\n        (pos == stream.string.length || /\\s/.test(stream.string.charAt(pos)));\n    }\n\n    function tokenTop(stream, state) {\n      var string = stream.string;\n      for (var scan = stream.pos;;) {\n        var nextMatch = string.indexOf(leftDelimiter, scan);\n        scan = nextMatch + leftDelimiter.length;\n        if (nextMatch == -1 || !doesNotCount(stream, nextMatch + leftDelimiter.length)) break;\n      }\n      if (nextMatch == stream.pos) {\n        stream.match(leftDelimiter);\n        if (stream.eat(\"*\")) {\n          return chain(stream, state, tokenBlock(\"comment\", \"*\" + rightDelimiter));\n        } else {\n          state.depth++;\n          state.tokenize = tokenSmarty;\n          last = \"startTag\";\n          return \"tag\";\n        }\n      }\n\n      if (nextMatch > -1) stream.string = string.slice(0, nextMatch);\n      var token = baseMode.token(stream, state.base);\n      if (nextMatch > -1) stream.string = string;\n      return token;\n    }\n\n    // parsing Smarty content\n    function tokenSmarty(stream, state) {\n      if (stream.match(rightDelimiter, true)) {\n        if (version === 3) {\n          state.depth--;\n          if (state.depth <= 0) {\n            state.tokenize = tokenTop;\n          }\n        } else {\n          state.tokenize = tokenTop;\n        }\n        return cont(\"tag\", null);\n      }\n\n      if (stream.match(leftDelimiter, true)) {\n        state.depth++;\n        return cont(\"tag\", \"startTag\");\n      }\n\n      var ch = stream.next();\n      if (ch == \"$\") {\n        stream.eatWhile(regs.validIdentifier);\n        return cont(\"variable-2\", \"variable\");\n      } else if (ch == \"|\") {\n        return cont(\"operator\", \"pipe\");\n      } else if (ch == \".\") {\n        return cont(\"operator\", \"property\");\n      } else if (regs.stringChar.test(ch)) {\n        state.tokenize = tokenAttribute(ch);\n        return cont(\"string\", \"string\");\n      } else if (regs.operatorChars.test(ch)) {\n        stream.eatWhile(regs.operatorChars);\n        return cont(\"operator\", \"operator\");\n      } else if (ch == \"[\" || ch == \"]\") {\n        return cont(\"bracket\", \"bracket\");\n      } else if (ch == \"(\" || ch == \")\") {\n        return cont(\"bracket\", \"operator\");\n      } else if (/\\d/.test(ch)) {\n        stream.eatWhile(/\\d/);\n        return cont(\"number\", \"number\");\n      } else {\n\n        if (state.last == \"variable\") {\n          if (ch == \"@\") {\n            stream.eatWhile(regs.validIdentifier);\n            return cont(\"property\", \"property\");\n          } else if (ch == \"|\") {\n            stream.eatWhile(regs.validIdentifier);\n            return cont(\"qualifier\", \"modifier\");\n          }\n        } else if (state.last == \"pipe\") {\n          stream.eatWhile(regs.validIdentifier);\n          return cont(\"qualifier\", \"modifier\");\n        } else if (state.last == \"whitespace\") {\n          stream.eatWhile(regs.validIdentifier);\n          return cont(\"attribute\", \"modifier\");\n        } if (state.last == \"property\") {\n          stream.eatWhile(regs.validIdentifier);\n          return cont(\"property\", null);\n        } else if (/\\s/.test(ch)) {\n          last = \"whitespace\";\n          return null;\n        }\n\n        var str = \"\";\n        if (ch != \"/\") {\n          str += ch;\n        }\n        var c = null;\n        while (c = stream.eat(regs.validIdentifier)) {\n          str += c;\n        }\n        for (var i=0, j=keyFunctions.length; i<j; i++) {\n          if (keyFunctions[i] == str) {\n            return cont(\"keyword\", \"keyword\");\n          }\n        }\n        if (/\\s/.test(ch)) {\n          return null;\n        }\n        return cont(\"tag\", \"tag\");\n      }\n    }\n\n    function tokenAttribute(quote) {\n      return function(stream, state) {\n        var prevChar = null;\n        var currChar = null;\n        while (!stream.eol()) {\n          currChar = stream.peek();\n          if (stream.next() == quote && prevChar !== '\\\\') {\n            state.tokenize = tokenSmarty;\n            break;\n          }\n          prevChar = currChar;\n        }\n        return \"string\";\n      };\n    }\n\n    function tokenBlock(style, terminator) {\n      return function(stream, state) {\n        while (!stream.eol()) {\n          if (stream.match(terminator)) {\n            state.tokenize = tokenTop;\n            break;\n          }\n          stream.next();\n        }\n        return style;\n      };\n    }\n\n    return {\n      startState: function() {\n        return {\n          base: CodeMirror.startState(baseMode),\n          tokenize: tokenTop,\n          last: null,\n          depth: 0\n        };\n      },\n      copyState: function(state) {\n        return {\n          base: CodeMirror.copyState(baseMode, state.base),\n          tokenize: state.tokenize,\n          last: state.last,\n          depth: state.depth\n        };\n      },\n      innerMode: function(state) {\n        if (state.tokenize == tokenTop)\n          return {mode: baseMode, state: state.base};\n      },\n      token: function(stream, state) {\n        var style = state.tokenize(stream, state);\n        state.last = last;\n        return style;\n      },\n      indent: function(state, text, line) {\n        if (state.tokenize == tokenTop && baseMode.indent)\n          return baseMode.indent(state.base, text, line);\n        else\n          return CodeMirror.Pass;\n      },\n      blockCommentStart: leftDelimiter + \"*\",\n      blockCommentEnd: \"*\" + rightDelimiter\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-smarty\", \"smarty\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/solr/solr.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"solr\", function() {\n  \"use strict\";\n\n  var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\\"\\\\]/;\n  var isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\n  var isOperatorString = /^(OR|AND|NOT|TO)$/i;\n\n  function isNumber(word) {\n    return parseFloat(word).toString() === word;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenOperator(operator) {\n    return function(stream, state) {\n      var style = \"operator\";\n      if (operator == \"+\")\n        style += \" positive\";\n      else if (operator == \"-\")\n        style += \" negative\";\n      else if (operator == \"|\")\n        stream.eat(/\\|/);\n      else if (operator == \"&\")\n        stream.eat(/\\&/);\n      else if (operator == \"^\")\n        style += \" boost\";\n\n      state.tokenize = tokenBase;\n      return style;\n    };\n  }\n\n  function tokenWord(ch) {\n    return function(stream, state) {\n      var word = ch;\n      while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n        word += stream.next();\n      }\n\n      state.tokenize = tokenBase;\n      if (isOperatorString.test(word))\n        return \"operator\";\n      else if (isNumber(word))\n        return \"number\";\n      else if (stream.peek() == \":\")\n        return \"field\";\n      else\n        return \"string\";\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"')\n      state.tokenize = tokenString(ch);\n    else if (isOperatorChar.test(ch))\n      state.tokenize = tokenOperator(ch);\n    else if (isStringChar.test(ch))\n      state.tokenize = tokenWord(ch);\n\n    return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-solr\", \"solr\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/soy/soy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var paramData = { noEndTag: true, soyState: \"param-def\" };\n  var tags = {\n    \"alias\": { noEndTag: true },\n    \"delpackage\": { noEndTag: true },\n    \"namespace\": { noEndTag: true, soyState: \"namespace-def\" },\n    \"@attribute\": paramData,\n    \"@attribute?\": paramData,\n    \"@param\": paramData,\n    \"@param?\": paramData,\n    \"@inject\": paramData,\n    \"@inject?\": paramData,\n    \"@state\": paramData,\n    \"template\": { soyState: \"templ-def\", variableScope: true},\n    \"literal\": { },\n    \"msg\": {},\n    \"fallbackmsg\": { noEndTag: true, reduceIndent: true},\n    \"select\": {},\n    \"plural\": {},\n    \"let\": { soyState: \"var-def\" },\n    \"if\": {},\n    \"elseif\": { noEndTag: true, reduceIndent: true},\n    \"else\": { noEndTag: true, reduceIndent: true},\n    \"switch\": {},\n    \"case\": { noEndTag: true, reduceIndent: true},\n    \"default\": { noEndTag: true, reduceIndent: true},\n    \"foreach\": { variableScope: true, soyState: \"for-loop\" },\n    \"ifempty\": { noEndTag: true, reduceIndent: true},\n    \"for\": { variableScope: true, soyState: \"for-loop\" },\n    \"call\": { soyState: \"templ-ref\" },\n    \"param\": { soyState: \"param-ref\"},\n    \"print\": { noEndTag: true },\n    \"deltemplate\": { soyState: \"templ-def\", variableScope: true},\n    \"delcall\": { soyState: \"templ-ref\" },\n    \"log\": {},\n    \"element\": { variableScope: true },\n  };\n\n  var indentingTags = Object.keys(tags).filter(function(tag) {\n    return !tags[tag].noEndTag || tags[tag].reduceIndent;\n  });\n\n  CodeMirror.defineMode(\"soy\", function(config) {\n    var textMode = CodeMirror.getMode(config, \"text/plain\");\n    var modes = {\n      html: CodeMirror.getMode(config, {name: \"text/html\", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false, allowMissingTagName: true}),\n      attributes: textMode,\n      text: textMode,\n      uri: textMode,\n      trusted_resource_uri: textMode,\n      css: CodeMirror.getMode(config, \"text/css\"),\n      js: CodeMirror.getMode(config, {name: \"text/javascript\", statementIndent: 2 * config.indentUnit})\n    };\n\n    function last(array) {\n      return array[array.length - 1];\n    }\n\n    function tokenUntil(stream, state, untilRegExp) {\n      if (stream.sol()) {\n        for (var indent = 0; indent < state.indent; indent++) {\n          if (!stream.eat(/\\s/)) break;\n        }\n        if (indent) return null;\n      }\n      var oldString = stream.string;\n      var match = untilRegExp.exec(oldString.substr(stream.pos));\n      if (match) {\n        // We don't use backUp because it backs up just the position, not the state.\n        // This uses an undocumented API.\n        stream.string = oldString.substr(0, stream.pos + match.index);\n      }\n      var result = stream.hideFirstChars(state.indent, function() {\n        var localState = last(state.localStates);\n        return localState.mode.token(stream, localState.state);\n      });\n      stream.string = oldString;\n      return result;\n    }\n\n    function contains(list, element) {\n      while (list) {\n        if (list.element === element) return true;\n        list = list.next;\n      }\n      return false;\n    }\n\n    function prepend(list, element) {\n      return {\n        element: element,\n        next: list\n      };\n    }\n\n    function popcontext(state) {\n      if (!state.context) return;\n      if (state.context.scope) {\n        state.variables = state.context.scope;\n      }\n      state.context = state.context.previousContext;\n    }\n\n    // Reference a variable `name` in `list`.\n    // Let `loose` be truthy to ignore missing identifiers.\n    function ref(list, name, loose) {\n      return contains(list, name) ? \"variable-2\" : (loose ? \"variable\" : \"variable-2 error\");\n    }\n\n    // Data for an open soy tag.\n    function Context(previousContext, tag, scope) {\n      this.previousContext = previousContext;\n      this.tag = tag;\n      this.kind = null;\n      this.scope = scope;\n    }\n\n    function expression(stream, state) {\n      var match;\n      if (stream.match(/[[]/)) {\n        state.soyState.push(\"list-literal\");\n        state.context = new Context(state.context, \"list-literal\", state.variables);\n        state.lookupVariables = false;\n        return null;\n      } else if (stream.match(/map\\b/)) {\n        state.soyState.push(\"map-literal\");\n        return \"keyword\";\n      } else if (stream.match(/record\\b/)) {\n        state.soyState.push(\"record-literal\");\n        return \"keyword\";\n      } else if (stream.match(/([\\w]+)(?=\\()/)) {\n        return \"variable callee\";\n      } else if (match = stream.match(/^[\"']/)) {\n        state.soyState.push(\"string\");\n        state.quoteKind = match[0];\n        return \"string\";\n      } else if (stream.match(/^[(]/)) {\n        state.soyState.push(\"open-parentheses\");\n        return null;\n      } else if (stream.match(/(null|true|false)(?!\\w)/) ||\n          stream.match(/0x([0-9a-fA-F]{2,})/) ||\n          stream.match(/-?([0-9]*[.])?[0-9]+(e[0-9]*)?/)) {\n        return \"atom\";\n      } else if (stream.match(/(\\||[+\\-*\\/%]|[=!]=|\\?:|[<>]=?)/)) {\n        // Tokenize filter, binary, null propagator, and equality operators.\n        return \"operator\";\n      } else if (match = stream.match(/^\\$([\\w]+)/)) {\n        return ref(state.variables, match[1], !state.lookupVariables);\n      } else if (match = stream.match(/^\\w+/)) {\n        return /^(?:as|and|or|not|in|if)$/.test(match[0]) ? \"keyword\" : null;\n      }\n\n      stream.next();\n      return null;\n    }\n\n    return {\n      startState: function() {\n        return {\n          soyState: [],\n          variables: prepend(null, 'ij'),\n          scopes: null,\n          indent: 0,\n          quoteKind: null,\n          context: null,\n          lookupVariables: true, // Is unknown variables considered an error\n          localStates: [{\n            mode: modes.html,\n            state: CodeMirror.startState(modes.html)\n          }]\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          tag: state.tag, // Last seen Soy tag.\n          soyState: state.soyState.concat([]),\n          variables: state.variables,\n          context: state.context,\n          indent: state.indent, // Indentation of the following line.\n          quoteKind: state.quoteKind,\n          lookupVariables: state.lookupVariables,\n          localStates: state.localStates.map(function(localState) {\n            return {\n              mode: localState.mode,\n              state: CodeMirror.copyState(localState.mode, localState.state)\n            };\n          })\n        };\n      },\n\n      token: function(stream, state) {\n        var match;\n\n        switch (last(state.soyState)) {\n          case \"comment\":\n            if (stream.match(/^.*?\\*\\//)) {\n              state.soyState.pop();\n            } else {\n              stream.skipToEnd();\n            }\n            if (!state.context || !state.context.scope) {\n              var paramRe = /@param\\??\\s+(\\S+)/g;\n              var current = stream.current();\n              for (var match; (match = paramRe.exec(current)); ) {\n                state.variables = prepend(state.variables, match[1]);\n              }\n            }\n            return \"comment\";\n\n          case \"string\":\n            var match = stream.match(/^.*?([\"']|\\\\[\\s\\S])/);\n            if (!match) {\n              stream.skipToEnd();\n            } else if (match[1] == state.quoteKind) {\n              state.quoteKind = null;\n              state.soyState.pop();\n            }\n            return \"string\";\n        }\n\n        if (!state.soyState.length || last(state.soyState) != \"literal\") {\n          if (stream.match(/^\\/\\*/)) {\n            state.soyState.push(\"comment\");\n            return \"comment\";\n          } else if (stream.match(stream.sol() ? /^\\s*\\/\\/.*/ : /^\\s+\\/\\/.*/)) {\n            return \"comment\";\n          }\n        }\n\n        switch (last(state.soyState)) {\n          case \"templ-def\":\n            if (match = stream.match(/^\\.?([\\w]+(?!\\.[\\w]+)*)/)) {\n              state.soyState.pop();\n              return \"def\";\n            }\n            stream.next();\n            return null;\n\n          case \"templ-ref\":\n            if (match = stream.match(/(\\.?[a-zA-Z_][a-zA-Z_0-9]+)+/)) {\n              state.soyState.pop();\n              // If the first character is '.', it can only be a local template.\n              if (match[0][0] == '.') {\n                return \"variable-2\"\n              }\n              // Otherwise\n              return \"variable\";\n            }\n            if (match = stream.match(/^\\$([\\w]+)/)) {\n              state.soyState.pop();\n              return ref(state.variables, match[1], !state.lookupVariables);\n            }\n\n            stream.next();\n            return null;\n\n          case \"namespace-def\":\n            if (match = stream.match(/^\\.?([\\w\\.]+)/)) {\n              state.soyState.pop();\n              return \"variable\";\n            }\n            stream.next();\n            return null;\n\n          case \"param-def\":\n            if (match = stream.match(/^\\*/)) {\n              state.soyState.pop();\n              state.soyState.push(\"param-type\");\n              return \"type\";\n            }\n            if (match = stream.match(/^\\w+/)) {\n              state.variables = prepend(state.variables, match[0]);\n              state.soyState.pop();\n              state.soyState.push(\"param-type\");\n              return \"def\";\n            }\n            stream.next();\n            return null;\n\n          case \"param-ref\":\n            if (match = stream.match(/^\\w+/)) {\n              state.soyState.pop();\n              return \"property\";\n            }\n            stream.next();\n            return null;\n\n          case \"open-parentheses\":\n            if (stream.match(/[)]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            return expression(stream, state);\n\n          case \"param-type\":\n            var peekChar = stream.peek();\n            if (\"}]=>,\".indexOf(peekChar) != -1) {\n              state.soyState.pop();\n              return null;\n            } else if (peekChar == \"[\") {\n              state.soyState.push('param-type-record');\n              return null;\n            } else if (peekChar == \"(\") {\n              state.soyState.push('param-type-template');\n              return null;\n            } else if (peekChar == \"<\") {\n              state.soyState.push('param-type-parameter');\n              return null;\n            } else if (match = stream.match(/^([\\w]+|[?])/)) {\n              return \"type\";\n            }\n            stream.next();\n            return null;\n\n          case \"param-type-record\":\n            var peekChar = stream.peek();\n            if (peekChar == \"]\") {\n              state.soyState.pop();\n              return null;\n            }\n            if (stream.match(/^\\w+/)) {\n              state.soyState.push('param-type');\n              return \"property\";\n            }\n            stream.next();\n            return null;\n\n          case \"param-type-parameter\":\n            if (stream.match(/^[>]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            if (stream.match(/^[<,]/)) {\n              state.soyState.push('param-type');\n              return null;\n            }\n            stream.next();\n            return null;\n\n          case \"param-type-template\":\n            if (stream.match(/[>]/)) {\n              state.soyState.pop();\n              state.soyState.push('param-type');\n              return null;\n            }\n            if (stream.match(/^\\w+/)) {\n              state.soyState.push('param-type');\n              return \"def\";\n            }\n            stream.next();\n            return null;\n\n          case \"var-def\":\n            if (match = stream.match(/^\\$([\\w]+)/)) {\n              state.variables = prepend(state.variables, match[1]);\n              state.soyState.pop();\n              return \"def\";\n            }\n            stream.next();\n            return null;\n\n          case \"for-loop\":\n            if (stream.match(/\\bin\\b/)) {\n              state.soyState.pop();\n              return \"keyword\";\n            }\n            if (stream.peek() == \"$\") {\n              state.soyState.push('var-def');\n              return null;\n            }\n            stream.next();\n            return null;\n\n          case \"record-literal\":\n            if (stream.match(/^[)]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            if (stream.match(/[(,]/)) {\n              state.soyState.push(\"map-value\")\n              state.soyState.push(\"record-key\")\n              return null;\n            }\n            stream.next()\n            return null;\n\n          case \"map-literal\":\n            if (stream.match(/^[)]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            if (stream.match(/[(,]/)) {\n              state.soyState.push(\"map-value\")\n              state.soyState.push(\"map-value\")\n              return null;\n            }\n            stream.next()\n            return null;\n\n          case \"list-literal\":\n            if (stream.match(']')) {\n              state.soyState.pop();\n              state.lookupVariables = true;\n              popcontext(state);\n              return null;\n            }\n            if (stream.match(/\\bfor\\b/)) {\n              state.lookupVariables = true;\n              state.soyState.push('for-loop');\n              return \"keyword\";\n            }\n            return expression(stream, state);\n\n          case \"record-key\":\n            if (stream.match(/[\\w]+/)) {\n              return \"property\";\n            }\n            if (stream.match(/^[:]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            stream.next();\n            return null;\n\n          case \"map-value\":\n            if (stream.peek() == \")\" || stream.peek() == \",\" || stream.match(/^[:)]/)) {\n              state.soyState.pop();\n              return null;\n            }\n            return expression(stream, state);\n\n          case \"import\":\n            if (stream.eat(\";\")) {\n              state.soyState.pop();\n              state.indent -= 2 * config.indentUnit;\n              return null;\n            }\n            if (stream.match(/\\w+(?=\\s+as)/)) {\n              return \"variable\";\n            }\n            if (match = stream.match(/\\w+/)) {\n              return /(from|as)/.test(match[0]) ? \"keyword\" : \"def\";\n            }\n            if (match = stream.match(/^[\"']/)) {\n              state.soyState.push(\"string\");\n              state.quoteKind = match[0];\n              return \"string\";\n            }\n            stream.next();\n            return null;\n\n          case \"tag\":\n            var endTag;\n            var tagName;\n            if (state.tag === undefined) {\n              endTag = true;\n              tagName = '';\n            } else {\n              endTag = state.tag[0] == \"/\";\n              tagName = endTag ? state.tag.substring(1) : state.tag;\n            }\n            var tag = tags[tagName];\n            if (stream.match(/^\\/?}/)) {\n              var selfClosed = stream.current() == \"/}\";\n              if (selfClosed && !endTag) {\n                popcontext(state);\n              }\n              if (state.tag == \"/template\" || state.tag == \"/deltemplate\") {\n                state.variables = prepend(null, 'ij');\n                state.indent = 0;\n              } else {\n                state.indent -= config.indentUnit *\n                    (selfClosed || indentingTags.indexOf(state.tag) == -1 ? 2 : 1);\n              }\n              state.soyState.pop();\n              return \"keyword\";\n            } else if (stream.match(/^([\\w?]+)(?==)/)) {\n              if (state.context && state.context.tag == tagName && stream.current() == \"kind\" && (match = stream.match(/^=\"([^\"]+)/, false))) {\n                var kind = match[1];\n                state.context.kind = kind;\n                var mode = modes[kind] || modes.html;\n                var localState = last(state.localStates);\n                if (localState.mode.indent) {\n                  state.indent += localState.mode.indent(localState.state, \"\", \"\");\n                }\n                state.localStates.push({\n                  mode: mode,\n                  state: CodeMirror.startState(mode)\n                });\n              }\n              return \"attribute\";\n            }\n            return expression(stream, state);\n\n          case \"template-call-expression\":\n            if (stream.match(/^([\\w-?]+)(?==)/)) {\n              return \"attribute\";\n            } else if (stream.eat('>')) {\n              state.soyState.pop();\n              return \"keyword\";\n            } else if (stream.eat('/>')) {\n              state.soyState.pop();\n              return \"keyword\";\n            }\n            return expression(stream, state);\n          case \"literal\":\n            if (stream.match('{/literal}', false)) {\n              state.soyState.pop();\n              return this.token(stream, state);\n            }\n            return tokenUntil(stream, state, /\\{\\/literal}/);\n        }\n\n        if (stream.match('{literal}')) {\n          state.indent += config.indentUnit;\n          state.soyState.push(\"literal\");\n          state.context = new Context(state.context, \"literal\", state.variables);\n          return \"keyword\";\n\n        // A tag-keyword must be followed by whitespace, comment or a closing tag.\n        } else if (match = stream.match(/^\\{([/@\\\\]?\\w+\\??)(?=$|[\\s}]|\\/[/*])/)) {\n          var prevTag = state.tag;\n          state.tag = match[1];\n          var endTag = state.tag[0] == \"/\";\n          var indentingTag = !!tags[state.tag];\n          var tagName = endTag ? state.tag.substring(1) : state.tag;\n          var tag = tags[tagName];\n          if (state.tag != \"/switch\")\n            state.indent += ((endTag || tag && tag.reduceIndent) && prevTag != \"switch\" ? 1 : 2) * config.indentUnit;\n\n          state.soyState.push(\"tag\");\n          var tagError = false;\n          if (tag) {\n            if (!endTag) {\n              if (tag.soyState) state.soyState.push(tag.soyState);\n            }\n            // If a new tag, open a new context.\n            if (!tag.noEndTag && (indentingTag || !endTag)) {\n              state.context = new Context(state.context, state.tag, tag.variableScope ? state.variables : null);\n            // Otherwise close the current context.\n            } else if (endTag) {\n              if (!state.context || state.context.tag != tagName) {\n                tagError = true;\n              } else if (state.context) {\n                if (state.context.kind) {\n                  state.localStates.pop();\n                  var localState = last(state.localStates);\n                  if (localState.mode.indent) {\n                    state.indent -= localState.mode.indent(localState.state, \"\", \"\");\n                  }\n                }\n                popcontext(state);\n              }\n            }\n          } else if (endTag) {\n            // Assume all tags with a closing tag are defined in the config.\n            tagError = true;\n          }\n          return (tagError ? \"error \" : \"\") + \"keyword\";\n\n        // Not a tag-keyword; it's an implicit print tag.\n        } else if (stream.eat('{')) {\n          state.tag = \"print\";\n          state.indent += 2 * config.indentUnit;\n          state.soyState.push(\"tag\");\n          return \"keyword\";\n        } else if (!state.context && stream.match(/\\bimport\\b/)) {\n          state.soyState.push(\"import\");\n          state.indent += 2 * config.indentUnit;\n          return \"keyword\";\n        } else if (match = stream.match('<{')) {\n          state.soyState.push(\"template-call-expression\");\n          state.indent += 2 * config.indentUnit;\n          state.soyState.push(\"tag\");\n          return \"keyword\";\n        } else if (match = stream.match('</>')) {\n          state.indent -= 1 * config.indentUnit;\n          return \"keyword\";\n        }\n\n        return tokenUntil(stream, state, /\\{|\\s+\\/\\/|\\/\\*/);\n      },\n\n      indent: function(state, textAfter, line) {\n        var indent = state.indent, top = last(state.soyState);\n        if (top == \"comment\") return CodeMirror.Pass;\n\n        if (top == \"literal\") {\n          if (/^\\{\\/literal}/.test(textAfter)) indent -= config.indentUnit;\n        } else {\n          if (/^\\s*\\{\\/(template|deltemplate)\\b/.test(textAfter)) return 0;\n          if (/^\\{(\\/|(fallbackmsg|elseif|else|ifempty)\\b)/.test(textAfter)) indent -= config.indentUnit;\n          if (state.tag != \"switch\" && /^\\{(case|default)\\b/.test(textAfter)) indent -= config.indentUnit;\n          if (/^\\{\\/switch\\b/.test(textAfter)) indent -= config.indentUnit;\n        }\n        var localState = last(state.localStates);\n        if (indent && localState.mode.indent) {\n          indent += localState.mode.indent(localState.state, textAfter, line);\n        }\n        return indent;\n      },\n\n      innerMode: function(state) {\n        if (state.soyState.length && last(state.soyState) != \"literal\") return null;\n        else return last(state.localStates);\n      },\n\n      electricInput: /^\\s*\\{(\\/|\\/template|\\/deltemplate|\\/switch|fallbackmsg|elseif|else|case|default|ifempty|\\/literal\\})$/,\n      lineComment: \"//\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      blockCommentContinue: \" * \",\n      useInnerComments: false,\n      fold: \"indent\"\n    };\n  }, \"htmlmixed\");\n\n  CodeMirror.registerHelper(\"wordChars\", \"soy\", /[\\w$]/);\n\n  CodeMirror.registerHelper(\"hintWords\", \"soy\", Object.keys(tags).concat(\n      [\"css\", \"debugger\"]));\n\n  CodeMirror.defineMIME(\"text/x-soy\", \"soy\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/sparql/sparql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sparql\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([\"str\", \"lang\", \"langmatches\", \"datatype\", \"bound\", \"sameterm\", \"isiri\", \"isuri\",\n                        \"iri\", \"uri\", \"bnode\", \"count\", \"sum\", \"min\", \"max\", \"avg\", \"sample\",\n                        \"group_concat\", \"rand\", \"abs\", \"ceil\", \"floor\", \"round\", \"concat\", \"substr\", \"strlen\",\n                        \"replace\", \"ucase\", \"lcase\", \"encode_for_uri\", \"contains\", \"strstarts\", \"strends\",\n                        \"strbefore\", \"strafter\", \"year\", \"month\", \"day\", \"hours\", \"minutes\", \"seconds\",\n                        \"timezone\", \"tz\", \"now\", \"uuid\", \"struuid\", \"md5\", \"sha1\", \"sha256\", \"sha384\",\n                        \"sha512\", \"coalesce\", \"if\", \"strlang\", \"strdt\", \"isnumeric\", \"regex\", \"exists\",\n                        \"isblank\", \"isliteral\", \"a\", \"bind\"]);\n  var keywords = wordRegexp([\"base\", \"prefix\", \"select\", \"distinct\", \"reduced\", \"construct\", \"describe\",\n                             \"ask\", \"from\", \"named\", \"where\", \"order\", \"limit\", \"offset\", \"filter\", \"optional\",\n                             \"graph\", \"by\", \"asc\", \"desc\", \"as\", \"having\", \"undef\", \"values\", \"group\",\n                             \"minus\", \"in\", \"not\", \"service\", \"silent\", \"using\", \"insert\", \"delete\", \"union\",\n                             \"true\", \"false\", \"with\",\n                             \"data\", \"copy\", \"to\", \"move\", \"add\", \"create\", \"drop\", \"clear\", \"load\"]);\n  var operatorChars = /[*+\\-<>=&|\\^\\/!\\?]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"$\" || ch == \"?\") {\n      if(ch == \"?\" && stream.match(/\\s/, false)){\n        return \"operator\";\n      }\n      stream.match(/^[A-Za-z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][A-Za-z0-9_\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]*/);\n      return \"variable-2\";\n    }\n    else if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return \"bracket\";\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (ch === \"^\") {\n      ch = stream.peek();\n      if (ch === \"^\") stream.eat(\"^\");\n      else stream.eatWhile(operatorChars);\n      return \"operator\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return \"operator\";\n    }\n    else if (ch == \":\") {\n      eatPnLocal(stream);\n      return \"atom\";\n    }\n    else if (ch == \"@\") {\n      stream.eatWhile(/[a-z\\d\\-]/i);\n      return \"meta\";\n    }\n    else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if (stream.eat(\":\")) {\n        eatPnLocal(stream);\n        return \"atom\";\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return \"builtin\";\n      else if (keywords.test(word))\n        return \"keyword\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function eatPnLocal(stream) {\n    while (stream.match(/([:\\w\\d._-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-fA-F0-9][a-fA-F0-9])/));\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) {\n          popContext(state);\n          if (curPunc == \"}\" && state.context && state.context.type == \"pattern\")\n            popContext(state);\n        }\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/sparql-query\", \"sparql\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/spreadsheet/spreadsheet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"spreadsheet\", function () {\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          stack: []\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(\"string\");\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case \"string\":\n          while (state.stack[0] === \"string\" && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return \"string\";\n\n        case \"characterClass\":\n          while (state.stack[0] === \"characterClass\" && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./)))\n              state.stack.shift();\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(\"characterClass\");\n          return \"bracket\";\n        case \":\":\n          stream.next();\n          return \"operator\";\n        case \"\\\\\":\n          if (stream.match(/\\\\[a-z]+/)) return \"string-2\";\n          else {\n            stream.next();\n            return \"atom\";\n          }\n        case \".\":\n        case \",\":\n        case \";\":\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n        case \"<\":\n        case \"/\":\n        case \"=\":\n          stream.next();\n          return \"atom\";\n        case \"$\":\n          stream.next();\n          return \"builtin\";\n        }\n\n        if (stream.match(/\\d+/)) {\n          if (stream.match(/^\\w+/)) return \"error\";\n          return \"number\";\n        } else if (stream.match(/^[a-zA-Z_]\\w*/)) {\n          if (stream.match(/(?=[\\(.])/, false)) return \"keyword\";\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\", \"{\", \"}\"].indexOf(peek) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-spreadsheet\", \"spreadsheet\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/sql/sql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n  var client         = parserConfig.client || {},\n      atoms          = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n      builtin        = parserConfig.builtin || set(defaultBuiltin),\n      keywords       = parserConfig.keywords || set(sqlKeywords),\n      operatorChars  = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^\\/]/,\n      support        = parserConfig.support || {},\n      hooks          = parserConfig.hooks || {},\n      dateSQL        = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true},\n      backslashStringEscapes = parserConfig.backslashStringEscapes !== false,\n      brackets       = parserConfig.brackets || /^[\\{}\\(\\)\\[\\]]/,\n      punctuation    = parserConfig.punctuation || /^[;.,:]/\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // call hooks from the mime type\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n\n    if (support.hexNumber &&\n      ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n      || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n      // hex\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n      return \"number\";\n    } else if (support.binaryNumber &&\n      (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n      || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n      // bitstring\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n      return \"number\";\n    } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n      // numbers\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n      stream.match(/^[0-9]*(\\.[0-9]+)?([eE][-+]?[0-9]+)?/);\n      support.decimallessFloat && stream.match(/^\\.(?!\\.)/);\n      return \"number\";\n    } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n      // placeholders\n      return \"variable-3\";\n    } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n      // strings\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    } else if ((((support.nCharCast && (ch == \"n\" || ch == \"N\"))\n        || (support.charsetCast && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n        && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n      // charset casting: _utf8'str', N'str', n'str'\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      return \"keyword\";\n    } else if (support.escapeConstant && (ch == \"e\" || ch == \"E\")\n        && (stream.peek() == \"'\" || (stream.peek() == '\"' && support.doubleQuote))) {\n      // escape constant: E'str', e'str'\n      // ref: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE\n      state.tokenize = function(stream, state) {\n        return (state.tokenize = tokenLiteral(stream.next(), true))(stream, state);\n      }\n      return \"keyword\";\n    } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n      // 1-line comment\n      stream.skipToEnd();\n      return \"comment\";\n    } else if ((support.commentHash && ch == \"#\")\n        || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n      // 1-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"/\" && stream.eat(\"*\")) {\n      // multi-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      state.tokenize = tokenComment(1);\n      return state.tokenize(stream, state);\n    } else if (ch == \".\") {\n      // .1 for 0.1\n      if (support.zerolessFloat && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i))\n        return \"number\";\n      if (stream.match(/^\\.+/))\n        return null\n      // .table_name (ODBC)\n      // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n      if (support.ODBCdotTable && stream.match(/^[\\w\\d_$#]+/))\n        return \"variable-2\";\n    } else if (operatorChars.test(ch)) {\n      // operators\n      stream.eatWhile(operatorChars);\n      return \"operator\";\n    } else if (brackets.test(ch)) {\n      // brackets\n      return \"bracket\";\n    } else if (punctuation.test(ch)) {\n      // punctuation\n      stream.eatWhile(punctuation);\n      return \"punctuation\";\n    } else if (ch == '{' &&\n        (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n      // dates (weird ODBC syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      return \"number\";\n    } else {\n      stream.eatWhile(/^[_\\w\\d]/);\n      var word = stream.current().toLowerCase();\n      // dates (standard SQL syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n        return \"number\";\n      if (atoms.hasOwnProperty(word)) return \"atom\";\n      if (builtin.hasOwnProperty(word)) return \"builtin\";\n      if (keywords.hasOwnProperty(word)) return \"keyword\";\n      if (client.hasOwnProperty(word)) return \"string-2\";\n      return null;\n    }\n  }\n\n  // 'string', with char specified in quote escaped by '\\'\n  function tokenLiteral(quote, backslashEscapes) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = (backslashStringEscapes || backslashEscapes) && !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n  function tokenComment(depth) {\n    return function(stream, state) {\n      var m = stream.match(/^.*?(\\/\\*|\\*\\/)/)\n      if (!m) stream.skipToEnd()\n      else if (m[1] == \"/*\") state.tokenize = tokenComment(depth + 1)\n      else if (depth > 1) state.tokenize = tokenComment(depth - 1)\n      else state.tokenize = tokenBase\n      return \"comment\"\n    }\n  }\n\n  function pushContext(stream, state, type) {\n    state.context = {\n      prev: state.context,\n      indent: stream.indentation(),\n      col: stream.column(),\n      type: type\n    };\n  }\n\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase, context: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null)\n          state.context.align = false;\n      }\n      if (state.tokenize == tokenBase && stream.eatSpace()) return null;\n\n      var style = state.tokenize(stream, state);\n      if (style == \"comment\") return style;\n\n      if (state.context && state.context.align == null)\n        state.context.align = true;\n\n      var tok = stream.current();\n      if (tok == \"(\")\n        pushContext(stream, state, \")\");\n      else if (tok == \"[\")\n        pushContext(stream, state, \"]\");\n      else if (state.context && state.context.type == tok)\n        popContext(state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context;\n      if (!cx) return CodeMirror.Pass;\n      var closing = textAfter.charAt(0) == cx.type;\n      if (cx.align) return cx.col + (closing ? 0 : 1);\n      else return cx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : \"--\",\n    closeBrackets: \"()[]{}''\\\"\\\"``\"\n  };\n});\n\n  // `identifier`\n  function hookIdentifier(stream) {\n    // MySQL/MariaDB identifiers\n    // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n    var ch;\n    while ((ch = stream.next()) != null) {\n      if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n    }\n    stream.backUp(stream.current().length - 1);\n    return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n  }\n\n  // \"identifier\"\n  function hookIdentifierDoublequote(stream) {\n    // Standard SQL /SQLite identifiers\n    // ref: http://web.archive.org/web/20160813185132/http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier\n    // ref: http://sqlite.org/lang_keywords.html\n    var ch;\n    while ((ch = stream.next()) != null) {\n      if (ch == \"\\\"\" && !stream.eat(\"\\\"\")) return \"variable-2\";\n    }\n    stream.backUp(stream.current().length - 1);\n    return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n  }\n\n  // variable token\n  function hookVar(stream) {\n    // variables\n    // @@prefix.varName @varName\n    // varName can be quoted with ` or ' or \"\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n    if (stream.eat(\"@\")) {\n      stream.match('session.');\n      stream.match('local.');\n      stream.match('global.');\n    }\n\n    if (stream.eat(\"'\")) {\n      stream.match(/^.*'/);\n      return \"variable-2\";\n    } else if (stream.eat('\"')) {\n      stream.match(/^.*\"/);\n      return \"variable-2\";\n    } else if (stream.eat(\"`\")) {\n      stream.match(/^.*`/);\n      return \"variable-2\";\n    } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n      return \"variable-2\";\n    }\n    return null;\n  };\n\n  // short client keyword token\n  function hookClient(stream) {\n    // \\N means NULL\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n    if (stream.eat(\"N\")) {\n        return \"atom\";\n    }\n    // \\g, etc\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n    return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n  }\n\n  // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n  var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit \";\n\n  // turn a space-separated list into an array\n  function set(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var defaultBuiltin = \"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"\n\n  // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n  CodeMirror.defineMIME(\"text/x-sql\", {\n    name: \"sql\",\n    keywords: set(sqlKeywords + \"begin\"),\n    builtin: set(defaultBuiltin),\n    atoms: set(\"false true null unknown\"),\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n\n  CodeMirror.defineMIME(\"text/x-mssql\", {\n    name: \"sql\",\n    client: set(\"$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id\"),\n    keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with\"),\n    builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n    atoms: set(\"is not null like and or in left right between inner outer join all any some cross unpivot pivot exists\"),\n    operatorChars: /^[*+\\-%<>!=^\\&|\\/]/,\n    brackets: /^[\\{}\\(\\)]/,\n    punctuation: /^[;.,:/]/,\n    backslashStringEscapes: false,\n    dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n    hooks: {\n      \"@\":   hookVar\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mysql\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mariadb\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  // provided by the phpLiteAdmin project - phpliteadmin.org\n  CodeMirror.defineMIME(\"text/x-sqlite\", {\n    name: \"sql\",\n    // commands of the official SQLite client, ref: https://www.sqlite.org/cli.html#dotcmd\n    client: set(\"auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width\"),\n    // ref: http://sqlite.org/lang_keywords.html\n    keywords: set(sqlKeywords + \"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without\"),\n    // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real\"),\n    // ref: http://sqlite.org/syntax/literal-value.html\n    atoms: set(\"null current_date current_time current_timestamp\"),\n    // ref: http://sqlite.org/lang_expr.html#binaryops\n    operatorChars: /^[*+\\-%<>!=&|/~]/,\n    // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n    dateSQL: set(\"date time timestamp datetime\"),\n    support: set(\"decimallessFloat zerolessFloat\"),\n    identifierQuote: \"\\\"\",  //ref: http://sqlite.org/lang_keywords.html\n    hooks: {\n      // bind-parameters ref:http://sqlite.org/lang_expr.html#varparam\n      \"@\":   hookVar,\n      \":\":   hookVar,\n      \"?\":   hookVar,\n      \"$\":   hookVar,\n      // The preferred way to escape Identifiers is using double quotes, ref: http://sqlite.org/lang_keywords.html\n      \"\\\"\":   hookIdentifierDoublequote,\n      // there is also support for backticks, ref: http://sqlite.org/lang_keywords.html\n      \"`\":   hookIdentifier\n    }\n  });\n\n  // the query language used by Apache Cassandra is called CQL, but this mime type\n  // is called Cassandra to avoid confusion with Contextual Query Language\n  CodeMirror.defineMIME(\"text/x-cassandra\", {\n    name: \"sql\",\n    client: { },\n    keywords: set(\"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime\"),\n    builtin: set(\"ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint\"),\n    atoms: set(\"false true infinity NaN\"),\n    operatorChars: /^[<>=]/,\n    dateSQL: { },\n    support: set(\"commentSlashSlash decimallessFloat\"),\n    hooks: { }\n  });\n\n  // this is based on Peter Raganitsch's 'plsql' mode\n  CodeMirror.defineMIME(\"text/x-plsql\", {\n    name:       \"sql\",\n    client:     set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n    keywords:   set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n    builtin:    set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n    operatorChars: /^[*\\/+\\-%<>!=~]/,\n    dateSQL:    set(\"date time timestamp\"),\n    support:    set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n  });\n\n  // Created to support specific hive keywords\n  CodeMirror.defineMIME(\"text/x-hive\", {\n    name: \"sql\",\n    keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year\"),\n    builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n\n  CodeMirror.defineMIME(\"text/x-pgsql\", {\n    name: \"sql\",\n    client: set(\"source\"),\n    // For PostgreSQL - https://www.postgresql.org/docs/11/sql-keywords-appendix.html\n    // For pl/pgsql lang - https://github.com/postgres/postgres/blob/REL_11_2/src/pl/plpgsql/src/pl_scanner.c\n    keywords: set(sqlKeywords + \"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone\"),\n    // https://www.postgresql.org/docs/11/datatype.html\n    builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*\\/+\\-%<>!=&|^\\/#@?~]/,\n    backslashStringEscapes: false,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant\")\n  });\n\n  // Google's SQL-like query language, GQL\n  CodeMirror.defineMIME(\"text/x-gql\", {\n    name: \"sql\",\n    keywords: set(\"ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where\"),\n    atoms: set(\"false true\"),\n    builtin: set(\"blob datetime first key __key__ string integer double boolean null\"),\n    operatorChars: /^[*+\\-%<>!=]/\n  });\n\n  // Greenplum\n  CodeMirror.defineMIME(\"text/x-gpsql\", {\n    name: \"sql\",\n    client: set(\"source\"),\n    //https://github.com/greenplum-db/gpdb/blob/master/src/include/parser/kwlist.h\n    keywords: set(\"abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone\"),\n    builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast\")\n  });\n\n  // Spark SQL\n  CodeMirror.defineMIME(\"text/x-sparksql\", {\n    name: \"sql\",\n    keywords: set(\"add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with\"),\n    builtin: set(\"tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat\"),\n    atoms: set(\"false true null\"),\n    operatorChars: /^[*\\/+\\-%<>!=~&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote zerolessFloat\")\n  });\n\n  // Esper\n  CodeMirror.defineMIME(\"text/x-esper\", {\n    name: \"sql\",\n    client: set(\"source\"),\n    // http://www.espertech.com/esper/release-5.5.0/esper-reference/html/appendix_keywords.html\n    keywords: set(\"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window\"),\n    builtin: {},\n    atoms: set(\"false true null\"),\n    operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n    dateSQL: set(\"time\"),\n    support: set(\"decimallessFloat zerolessFloat binaryNumber hexNumber\")\n  });\n});\n\n/*\n  How Properties of Mime Types are used by SQL Mode\n  =================================================\n\n  keywords:\n    A list of keywords you want to be highlighted.\n  builtin:\n    A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n  operatorChars:\n    All characters that must be handled as operators.\n  client:\n    Commands parsed and executed by the client (not the server).\n  support:\n    A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n    * ODBCdotTable: .tableName\n    * zerolessFloat: .1\n    * doubleQuote\n    * nCharCast: N'string'\n    * charsetCast: _utf8'string'\n    * commentHash: use # char for comments\n    * commentSlashSlash: use // for comments\n    * commentSpaceRequired: require a space after -- for comments\n  atoms:\n    Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n    UNKNOWN, INFINITY, UNDERFLOW, NaN...\n  dateSQL:\n    Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/stex/stex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)\n * Licence: MIT\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stex\", function(_config, parserConfig) {\n    \"use strict\";\n\n    function pushCommand(state, command) {\n      state.cmdState.push(command);\n    }\n\n    function peekCommand(state) {\n      if (state.cmdState.length > 0) {\n        return state.cmdState[state.cmdState.length - 1];\n      } else {\n        return null;\n      }\n    }\n\n    function popCommand(state) {\n      var plug = state.cmdState.pop();\n      if (plug) {\n        plug.closeBracket();\n      }\n    }\n\n    // returns the non-default plugin closest to the end of the list\n    function getMostPowerful(state) {\n      var context = state.cmdState;\n      for (var i = context.length - 1; i >= 0; i--) {\n        var plug = context[i];\n        if (plug.name == \"DEFAULT\") {\n          continue;\n        }\n        return plug;\n      }\n      return { styleIdentifier: function() { return null; } };\n    }\n\n    function addPluginPattern(pluginName, cmdStyle, styles) {\n      return function () {\n        this.name = pluginName;\n        this.bracketNo = 0;\n        this.style = cmdStyle;\n        this.styles = styles;\n        this.argument = null;   // \\begin and \\end have arguments that follow. These are stored in the plugin\n\n        this.styleIdentifier = function() {\n          return this.styles[this.bracketNo - 1] || null;\n        };\n        this.openBracket = function() {\n          this.bracketNo++;\n          return \"bracket\";\n        };\n        this.closeBracket = function() {};\n      };\n    }\n\n    var plugins = {};\n\n    plugins[\"importmodule\"] = addPluginPattern(\"importmodule\", \"tag\", [\"string\", \"builtin\"]);\n    plugins[\"documentclass\"] = addPluginPattern(\"documentclass\", \"tag\", [\"\", \"atom\"]);\n    plugins[\"usepackage\"] = addPluginPattern(\"usepackage\", \"tag\", [\"atom\"]);\n    plugins[\"begin\"] = addPluginPattern(\"begin\", \"tag\", [\"atom\"]);\n    plugins[\"end\"] = addPluginPattern(\"end\", \"tag\", [\"atom\"]);\n\n    plugins[\"label\"    ] = addPluginPattern(\"label\"    , \"tag\", [\"atom\"]);\n    plugins[\"ref\"      ] = addPluginPattern(\"ref\"      , \"tag\", [\"atom\"]);\n    plugins[\"eqref\"    ] = addPluginPattern(\"eqref\"    , \"tag\", [\"atom\"]);\n    plugins[\"cite\"     ] = addPluginPattern(\"cite\"     , \"tag\", [\"atom\"]);\n    plugins[\"bibitem\"  ] = addPluginPattern(\"bibitem\"  , \"tag\", [\"atom\"]);\n    plugins[\"Bibitem\"  ] = addPluginPattern(\"Bibitem\"  , \"tag\", [\"atom\"]);\n    plugins[\"RBibitem\" ] = addPluginPattern(\"RBibitem\" , \"tag\", [\"atom\"]);\n\n    plugins[\"DEFAULT\"] = function () {\n      this.name = \"DEFAULT\";\n      this.style = \"tag\";\n\n      this.styleIdentifier = this.openBracket = this.closeBracket = function() {};\n    };\n\n    function setState(state, f) {\n      state.f = f;\n    }\n\n    // called when in a normal (no environment) context\n    function normal(source, state) {\n      var plug;\n      // Do we look like '\\command' ?  If so, attempt to apply the plugin 'command'\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        var cmdName = source.current().slice(1);\n        plug = plugins.hasOwnProperty(cmdName) ? plugins[cmdName] : plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        setState(state, beginParams);\n        return plug.style;\n      }\n\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/\\\\]/)) {\n        return \"tag\";\n      }\n\n      // find if we're starting various math modes\n      if (source.match(\"\\\\[\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"\\\\]\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"\\\\(\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"\\\\)\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$$\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$\"); });\n        return \"keyword\";\n      }\n\n      var ch = source.next();\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      } else if (ch == '}' || ch == ']') {\n        plug = peekCommand(state);\n        if (plug) {\n          plug.closeBracket(ch);\n          setState(state, beginParams);\n        } else {\n          return \"error\";\n        }\n        return \"bracket\";\n      } else if (ch == '{' || ch == '[') {\n        plug = plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        return \"bracket\";\n      } else if (/\\d/.test(ch)) {\n        source.eatWhile(/[\\w.%]/);\n        return \"atom\";\n      } else {\n        source.eatWhile(/[\\w\\-_]/);\n        plug = getMostPowerful(state);\n        if (plug.name == 'begin') {\n          plug.argument = source.current();\n        }\n        return plug.styleIdentifier();\n      }\n    }\n\n    function inMathMode(source, state, endModeSeq) {\n      if (source.eatSpace()) {\n        return null;\n      }\n      if (endModeSeq && source.match(endModeSeq)) {\n        setState(state, normal);\n        return \"keyword\";\n      }\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        return \"tag\";\n      }\n      if (source.match(/^[a-zA-Z]+/)) {\n        return \"variable-2\";\n      }\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/]/)) {\n        return \"tag\";\n      }\n      // special math-mode characters\n      if (source.match(/^[\\^_&]/)) {\n        return \"tag\";\n      }\n      // non-special characters\n      if (source.match(/^[+\\-<>|=,\\/@!*:;'\"`~#?]/)) {\n        return null;\n      }\n      if (source.match(/^(\\d+\\.\\d*|\\d*\\.\\d+|\\d+)/)) {\n        return \"number\";\n      }\n      var ch = source.next();\n      if (ch == \"{\" || ch == \"}\" || ch == \"[\" || ch == \"]\" || ch == \"(\" || ch == \")\") {\n        return \"bracket\";\n      }\n\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      }\n      return \"error\";\n    }\n\n    function beginParams(source, state) {\n      var ch = source.peek(), lastPlug;\n      if (ch == '{' || ch == '[') {\n        lastPlug = peekCommand(state);\n        lastPlug.openBracket(ch);\n        source.eat(ch);\n        setState(state, normal);\n        return \"bracket\";\n      }\n      if (/[ \\t\\r]/.test(ch)) {\n        source.eat(ch);\n        return null;\n      }\n      setState(state, normal);\n      popCommand(state);\n\n      return normal(source, state);\n    }\n\n    return {\n      startState: function() {\n        var f = parserConfig.inMathMode ? function(source, state){ return inMathMode(source, state); } : normal;\n        return {\n          cmdState: [],\n          f: f\n        };\n      },\n      copyState: function(s) {\n        return {\n          cmdState: s.cmdState.slice(),\n          f: s.f\n        };\n      },\n      token: function(stream, state) {\n        return state.f(stream, state);\n      },\n      blankLine: function(state) {\n        state.f = normal;\n        state.cmdState.length = 0;\n      },\n      lineComment: \"%\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-stex\", \"stex\");\n  CodeMirror.defineMIME(\"text/x-latex\", \"stex\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/stylus/stylus.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Stylus mode created by Dmitry Kiselyov http://git.io/AaRB\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stylus\", function(config) {\n    var indentUnit = config.indentUnit,\n        indentUnitString = '',\n        tagKeywords = keySet(tagKeywords_),\n        tagVariablesRegexp = /^(a|b|i|s|col|em)$/i,\n        propertyKeywords = keySet(propertyKeywords_),\n        nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_),\n        valueKeywords = keySet(valueKeywords_),\n        colorKeywords = keySet(colorKeywords_),\n        documentTypes = keySet(documentTypes_),\n        documentTypesRegexp = wordRegexp(documentTypes_),\n        mediaFeatures = keySet(mediaFeatures_),\n        mediaTypes = keySet(mediaTypes_),\n        fontProperties = keySet(fontProperties_),\n        operatorsRegexp = /^\\s*([.]{2,3}|&&|\\|\\||\\*\\*|[?!=:]?=|[-+*\\/%<>]=?|\\?:|\\~)/,\n        wordOperatorKeywordsRegexp = wordRegexp(wordOperatorKeywords_),\n        blockKeywords = keySet(blockKeywords_),\n        vendorPrefixesRegexp = new RegExp(/^\\-(moz|ms|o|webkit)-/i),\n        commonAtoms = keySet(commonAtoms_),\n        firstWordMatch = \"\",\n        states = {},\n        ch,\n        style,\n        type,\n        override;\n\n    while (indentUnitString.length < indentUnit) indentUnitString += ' ';\n\n    /**\n     * Tokenizers\n     */\n    function tokenBase(stream, state) {\n      firstWordMatch = stream.string.match(/(^[\\w-]+\\s*=\\s*$)|(^\\s*[\\w-]+\\s*=\\s*[\\w-])|(^\\s*(\\.|#|@|\\$|\\&|\\[|\\d|\\+|::?|\\{|\\>|~|\\/)?\\s*[\\w-]*([a-z0-9-]|\\*|\\/\\*)(\\(|,)?)/);\n      state.context.line.firstWord = firstWordMatch ? firstWordMatch[0].replace(/^\\s*/, \"\") : \"\";\n      state.context.line.indent = stream.indentation();\n      ch = stream.peek();\n\n      // Line comment\n      if (stream.match(\"//\")) {\n        stream.skipToEnd();\n        return [\"comment\", \"comment\"];\n      }\n      // Block comment\n      if (stream.match(\"/*\")) {\n        state.tokenize = tokenCComment;\n        return tokenCComment(stream, state);\n      }\n      // String\n      if (ch == \"\\\"\" || ch == \"'\") {\n        stream.next();\n        state.tokenize = tokenString(ch);\n        return state.tokenize(stream, state);\n      }\n      // Def\n      if (ch == \"@\") {\n        stream.next();\n        stream.eatWhile(/[\\w\\\\-]/);\n        return [\"def\", stream.current()];\n      }\n      // ID selector or Hex color\n      if (ch == \"#\") {\n        stream.next();\n        // Hex color\n        if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\\b(?!-)/i)) {\n          return [\"atom\", \"atom\"];\n        }\n        // ID selector\n        if (stream.match(/^[a-z][\\w-]*/i)) {\n          return [\"builtin\", \"hash\"];\n        }\n      }\n      // Vendor prefixes\n      if (stream.match(vendorPrefixesRegexp)) {\n        return [\"meta\", \"vendor-prefixes\"];\n      }\n      // Numbers\n      if (stream.match(/^-?[0-9]?\\.?[0-9]/)) {\n        stream.eatWhile(/[a-z%]/i);\n        return [\"number\", \"unit\"];\n      }\n      // !important|optional\n      if (ch == \"!\") {\n        stream.next();\n        return [stream.match(/^(important|optional)/i) ? \"keyword\": \"operator\", \"important\"];\n      }\n      // Class\n      if (ch == \".\" && stream.match(/^\\.[a-z][\\w-]*/i)) {\n        return [\"qualifier\", \"qualifier\"];\n      }\n      // url url-prefix domain regexp\n      if (stream.match(documentTypesRegexp)) {\n        if (stream.peek() == \"(\") state.tokenize = tokenParenthesized;\n        return [\"property\", \"word\"];\n      }\n      // Mixins / Functions\n      if (stream.match(/^[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        return [\"keyword\", \"mixin\"];\n      }\n      // Block mixins\n      if (stream.match(/^(\\+|-)[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        return [\"keyword\", \"block-mixin\"];\n      }\n      // Parent Reference BEM naming\n      if (stream.string.match(/^\\s*&/) && stream.match(/^[-_]+[a-z][\\w-]*/)) {\n        return [\"qualifier\", \"qualifier\"];\n      }\n      // / Root Reference & Parent Reference\n      if (stream.match(/^(\\/|&)(-|_|:|\\.|#|[a-z])/)) {\n        stream.backUp(1);\n        return [\"variable-3\", \"reference\"];\n      }\n      if (stream.match(/^&{1}\\s*$/)) {\n        return [\"variable-3\", \"reference\"];\n      }\n      // Word operator\n      if (stream.match(wordOperatorKeywordsRegexp)) {\n        return [\"operator\", \"operator\"];\n      }\n      // Word\n      if (stream.match(/^\\$?[-_]*[a-z0-9]+[\\w-]*/i)) {\n        // Variable\n        if (stream.match(/^(\\.|\\[)[\\w-\\'\\\"\\]]+/i, false)) {\n          if (!wordIsTag(stream.current())) {\n            stream.match('.');\n            return [\"variable-2\", \"variable-name\"];\n          }\n        }\n        return [\"variable-2\", \"word\"];\n      }\n      // Operators\n      if (stream.match(operatorsRegexp)) {\n        return [\"operator\", stream.current()];\n      }\n      // Delimiters\n      if (/[:;,{}\\[\\]\\(\\)]/.test(ch)) {\n        stream.next();\n        return [null, ch];\n      }\n      // Non-detected items\n      stream.next();\n      return [null, null];\n    }\n\n    /**\n     * Token comment\n     */\n    function tokenCComment(stream, state) {\n      var maybeEnd = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (maybeEnd && ch == \"/\") {\n          state.tokenize = null;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return [\"comment\", \"comment\"];\n    }\n\n    /**\n     * Token string\n     */\n    function tokenString(quote) {\n      return function(stream, state) {\n        var escaped = false, ch;\n        while ((ch = stream.next()) != null) {\n          if (ch == quote && !escaped) {\n            if (quote == \")\") stream.backUp(1);\n            break;\n          }\n          escaped = !escaped && ch == \"\\\\\";\n        }\n        if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n        return [\"string\", \"string\"];\n      };\n    }\n\n    /**\n     * Token parenthesized\n     */\n    function tokenParenthesized(stream, state) {\n      stream.next(); // Must be \"(\"\n      if (!stream.match(/\\s*[\\\"\\')]/, false))\n        state.tokenize = tokenString(\")\");\n      else\n        state.tokenize = null;\n      return [null, \"(\"];\n    }\n\n    /**\n     * Context management\n     */\n    function Context(type, indent, prev, line) {\n      this.type = type;\n      this.indent = indent;\n      this.prev = prev;\n      this.line = line || {firstWord: \"\", indent: 0};\n    }\n\n    function pushContext(state, stream, type, indent) {\n      indent = indent >= 0 ? indent : indentUnit;\n      state.context = new Context(type, stream.indentation() + indent, state.context);\n      return type;\n    }\n\n    function popContext(state, currentIndent) {\n      var contextIndent = state.context.indent - indentUnit;\n      currentIndent = currentIndent || false;\n      state.context = state.context.prev;\n      if (currentIndent) state.context.indent = contextIndent;\n      return state.context.type;\n    }\n\n    function pass(type, stream, state) {\n      return states[state.context.type](type, stream, state);\n    }\n\n    function popAndPass(type, stream, state, n) {\n      for (var i = n || 1; i > 0; i--)\n        state.context = state.context.prev;\n      return pass(type, stream, state);\n    }\n\n\n    /**\n     * Parser\n     */\n    function wordIsTag(word) {\n      return word.toLowerCase() in tagKeywords;\n    }\n\n    function wordIsProperty(word) {\n      word = word.toLowerCase();\n      return word in propertyKeywords || word in fontProperties;\n    }\n\n    function wordIsBlock(word) {\n      return word.toLowerCase() in blockKeywords;\n    }\n\n    function wordIsVendorPrefix(word) {\n      return word.toLowerCase().match(vendorPrefixesRegexp);\n    }\n\n    function wordAsValue(word) {\n      var wordLC = word.toLowerCase();\n      var override = \"variable-2\";\n      if (wordIsTag(word)) override = \"tag\";\n      else if (wordIsBlock(word)) override = \"block-keyword\";\n      else if (wordIsProperty(word)) override = \"property\";\n      else if (wordLC in valueKeywords || wordLC in commonAtoms) override = \"atom\";\n      else if (wordLC == \"return\" || wordLC in colorKeywords) override = \"keyword\";\n\n      // Font family\n      else if (word.match(/^[A-Z]/)) override = \"string\";\n      return override;\n    }\n\n    function typeIsBlock(type, stream) {\n      return ((endOfLine(stream) && (type == \"{\" || type == \"]\" || type == \"hash\" || type == \"qualifier\")) || type == \"block-mixin\");\n    }\n\n    function typeIsInterpolation(type, stream) {\n      return type == \"{\" && stream.match(/^\\s*\\$?[\\w-]+/i, false);\n    }\n\n    function typeIsPseudo(type, stream) {\n      return type == \":\" && stream.match(/^[a-z-]+/, false);\n    }\n\n    function startOfLine(stream) {\n      return stream.sol() || stream.string.match(new RegExp(\"^\\\\s*\" + escapeRegExp(stream.current())));\n    }\n\n    function endOfLine(stream) {\n      return stream.eol() || stream.match(/^\\s*$/, false);\n    }\n\n    function firstWordOfLine(line) {\n      var re = /^\\s*[-_]*[a-z0-9]+[\\w-]*/i;\n      var result = typeof line == \"string\" ? line.match(re) : line.string.match(re);\n      return result ? result[0].replace(/^\\s*/, \"\") : \"\";\n    }\n\n\n    /**\n     * Block\n     */\n    states.block = function(type, stream, state) {\n      if ((type == \"comment\" && startOfLine(stream)) ||\n          (type == \",\" && endOfLine(stream)) ||\n          type == \"mixin\") {\n        return pushContext(state, stream, \"block\", 0);\n      }\n      if (typeIsInterpolation(type, stream)) {\n        return pushContext(state, stream, \"interpolation\");\n      }\n      if (endOfLine(stream) && type == \"]\") {\n        if (!/^\\s*(\\.|#|:|\\[|\\*|&)/.test(stream.string) && !wordIsTag(firstWordOfLine(stream))) {\n          return pushContext(state, stream, \"block\", 0);\n        }\n      }\n      if (typeIsBlock(type, stream)) {\n        return pushContext(state, stream, \"block\");\n      }\n      if (type == \"}\" && endOfLine(stream)) {\n        return pushContext(state, stream, \"block\", 0);\n      }\n      if (type == \"variable-name\") {\n        if (stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/) || wordIsBlock(firstWordOfLine(stream))) {\n          return pushContext(state, stream, \"variableName\");\n        }\n        else {\n          return pushContext(state, stream, \"variableName\", 0);\n        }\n      }\n      if (type == \"=\") {\n        if (!endOfLine(stream) && !wordIsBlock(firstWordOfLine(stream))) {\n          return pushContext(state, stream, \"block\", 0);\n        }\n        return pushContext(state, stream, \"block\");\n      }\n      if (type == \"*\") {\n        if (endOfLine(stream) || stream.match(/\\s*(,|\\.|#|\\[|:|{)/,false)) {\n          override = \"tag\";\n          return pushContext(state, stream, \"block\");\n        }\n      }\n      if (typeIsPseudo(type, stream)) {\n        return pushContext(state, stream, \"pseudo\");\n      }\n      if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n        return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n      }\n      if (/@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {\n        return pushContext(state, stream, \"keyframes\");\n      }\n      if (/@extends?/.test(type)) {\n        return pushContext(state, stream, \"extend\", 0);\n      }\n      if (type && type.charAt(0) == \"@\") {\n\n        // Property Lookup\n        if (stream.indentation() > 0 && wordIsProperty(stream.current().slice(1))) {\n          override = \"variable-2\";\n          return \"block\";\n        }\n        if (/(@import|@require|@charset)/.test(type)) {\n          return pushContext(state, stream, \"block\", 0);\n        }\n        return pushContext(state, stream, \"block\");\n      }\n      if (type == \"reference\" && endOfLine(stream)) {\n        return pushContext(state, stream, \"block\");\n      }\n      if (type == \"(\") {\n        return pushContext(state, stream, \"parens\");\n      }\n\n      if (type == \"vendor-prefixes\") {\n        return pushContext(state, stream, \"vendorPrefixes\");\n      }\n      if (type == \"word\") {\n        var word = stream.current();\n        override = wordAsValue(word);\n\n        if (override == \"property\") {\n          if (startOfLine(stream)) {\n            return pushContext(state, stream, \"block\", 0);\n          } else {\n            override = \"atom\";\n            return \"block\";\n          }\n        }\n\n        if (override == \"tag\") {\n\n          // tag is a css value\n          if (/embed|menu|pre|progress|sub|table/.test(word)) {\n            if (wordIsProperty(firstWordOfLine(stream))) {\n              override = \"atom\";\n              return \"block\";\n            }\n          }\n\n          // tag is an attribute\n          if (stream.string.match(new RegExp(\"\\\\[\\\\s*\" + word + \"|\" + word +\"\\\\s*\\\\]\"))) {\n            override = \"atom\";\n            return \"block\";\n          }\n\n          // tag is a variable\n          if (tagVariablesRegexp.test(word)) {\n            if ((startOfLine(stream) && stream.string.match(/=/)) ||\n                (!startOfLine(stream) &&\n                 !stream.string.match(/^(\\s*\\.|#|\\&|\\[|\\/|>|\\*)/) &&\n                 !wordIsTag(firstWordOfLine(stream)))) {\n              override = \"variable-2\";\n              if (wordIsBlock(firstWordOfLine(stream)))  return \"block\";\n              return pushContext(state, stream, \"block\", 0);\n            }\n          }\n\n          if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n        }\n        if (override == \"block-keyword\") {\n          override = \"keyword\";\n\n          // Postfix conditionals\n          if (stream.current(/(if|unless)/) && !startOfLine(stream)) {\n            return \"block\";\n          }\n          return pushContext(state, stream, \"block\");\n        }\n        if (word == \"return\") return pushContext(state, stream, \"block\", 0);\n\n        // Placeholder selector\n        if (override == \"variable-2\" && stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/)) {\n          return pushContext(state, stream, \"block\");\n        }\n      }\n      return state.context.type;\n    };\n\n\n    /**\n     * Parens\n     */\n    states.parens = function(type, stream, state) {\n      if (type == \"(\") return pushContext(state, stream, \"parens\");\n      if (type == \")\") {\n        if (state.context.prev.type == \"parens\") {\n          return popContext(state);\n        }\n        if ((stream.string.match(/^[a-z][\\w-]*\\(/i) && endOfLine(stream)) ||\n            wordIsBlock(firstWordOfLine(stream)) ||\n            /(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(firstWordOfLine(stream)) ||\n            (!stream.string.match(/^-?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) &&\n             wordIsTag(firstWordOfLine(stream)))) {\n          return pushContext(state, stream, \"block\");\n        }\n        if (stream.string.match(/^[\\$-]?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) ||\n            stream.string.match(/^\\s*(\\(|\\)|[0-9])/) ||\n            stream.string.match(/^\\s+[a-z][\\w-]*\\(/i) ||\n            stream.string.match(/^\\s+[\\$-]?[a-z]/i)) {\n          return pushContext(state, stream, \"block\", 0);\n        }\n        if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n        else return pushContext(state, stream, \"block\", 0);\n      }\n      if (type && type.charAt(0) == \"@\" && wordIsProperty(stream.current().slice(1))) {\n        override = \"variable-2\";\n      }\n      if (type == \"word\") {\n        var word = stream.current();\n        override = wordAsValue(word);\n        if (override == \"tag\" && tagVariablesRegexp.test(word)) {\n          override = \"variable-2\";\n        }\n        if (override == \"property\" || word == \"to\") override = \"atom\";\n      }\n      if (type == \"variable-name\") {\n        return pushContext(state, stream, \"variableName\");\n      }\n      if (typeIsPseudo(type, stream)) {\n        return pushContext(state, stream, \"pseudo\");\n      }\n      return state.context.type;\n    };\n\n\n    /**\n     * Vendor prefixes\n     */\n    states.vendorPrefixes = function(type, stream, state) {\n      if (type == \"word\") {\n        override = \"property\";\n        return pushContext(state, stream, \"block\", 0);\n      }\n      return popContext(state);\n    };\n\n\n    /**\n     * Pseudo\n     */\n    states.pseudo = function(type, stream, state) {\n      if (!wordIsProperty(firstWordOfLine(stream.string))) {\n        stream.match(/^[a-z-]+/);\n        override = \"variable-3\";\n        if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n        return popContext(state);\n      }\n      return popAndPass(type, stream, state);\n    };\n\n\n    /**\n     * atBlock\n     */\n    states.atBlock = function(type, stream, state) {\n      if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n      if (typeIsBlock(type, stream)) {\n        return pushContext(state, stream, \"block\");\n      }\n      if (typeIsInterpolation(type, stream)) {\n        return pushContext(state, stream, \"interpolation\");\n      }\n      if (type == \"word\") {\n        var word = stream.current().toLowerCase();\n        if (/^(only|not|and|or)$/.test(word))\n          override = \"keyword\";\n        else if (documentTypes.hasOwnProperty(word))\n          override = \"tag\";\n        else if (mediaTypes.hasOwnProperty(word))\n          override = \"attribute\";\n        else if (mediaFeatures.hasOwnProperty(word))\n          override = \"property\";\n        else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n          override = \"string-2\";\n        else override = wordAsValue(stream.current());\n        if (override == \"tag\" && endOfLine(stream)) {\n          return pushContext(state, stream, \"block\");\n        }\n      }\n      if (type == \"operator\" && /^(not|and|or)$/.test(stream.current())) {\n        override = \"keyword\";\n      }\n      return state.context.type;\n    };\n\n    states.atBlock_parens = function(type, stream, state) {\n      if (type == \"{\" || type == \"}\") return state.context.type;\n      if (type == \")\") {\n        if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n        else return pushContext(state, stream, \"atBlock\");\n      }\n      if (type == \"word\") {\n        var word = stream.current().toLowerCase();\n        override = wordAsValue(word);\n        if (/^(max|min)/.test(word)) override = \"property\";\n        if (override == \"tag\") {\n          tagVariablesRegexp.test(word) ? override = \"variable-2\" : override = \"atom\";\n        }\n        return state.context.type;\n      }\n      return states.atBlock(type, stream, state);\n    };\n\n\n    /**\n     * Keyframes\n     */\n    states.keyframes = function(type, stream, state) {\n      if (stream.indentation() == \"0\" && ((type == \"}\" && startOfLine(stream)) || type == \"]\" || type == \"hash\"\n                                          || type == \"qualifier\" || wordIsTag(stream.current()))) {\n        return popAndPass(type, stream, state);\n      }\n      if (type == \"{\") return pushContext(state, stream, \"keyframes\");\n      if (type == \"}\") {\n        if (startOfLine(stream)) return popContext(state, true);\n        else return pushContext(state, stream, \"keyframes\");\n      }\n      if (type == \"unit\" && /^[0-9]+\\%$/.test(stream.current())) {\n        return pushContext(state, stream, \"keyframes\");\n      }\n      if (type == \"word\") {\n        override = wordAsValue(stream.current());\n        if (override == \"block-keyword\") {\n          override = \"keyword\";\n          return pushContext(state, stream, \"keyframes\");\n        }\n      }\n      if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n        return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n      }\n      if (type == \"mixin\") {\n        return pushContext(state, stream, \"block\", 0);\n      }\n      return state.context.type;\n    };\n\n\n    /**\n     * Interpolation\n     */\n    states.interpolation = function(type, stream, state) {\n      if (type == \"{\") popContext(state) && pushContext(state, stream, \"block\");\n      if (type == \"}\") {\n        if (stream.string.match(/^\\s*(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/i) ||\n            (stream.string.match(/^\\s*[a-z]/i) && wordIsTag(firstWordOfLine(stream)))) {\n          return pushContext(state, stream, \"block\");\n        }\n        if (!stream.string.match(/^(\\{|\\s*\\&)/) ||\n            stream.match(/\\s*[\\w-]/,false)) {\n          return pushContext(state, stream, \"block\", 0);\n        }\n        return pushContext(state, stream, \"block\");\n      }\n      if (type == \"variable-name\") {\n        return pushContext(state, stream, \"variableName\", 0);\n      }\n      if (type == \"word\") {\n        override = wordAsValue(stream.current());\n        if (override == \"tag\") override = \"atom\";\n      }\n      return state.context.type;\n    };\n\n\n    /**\n     * Extend/s\n     */\n    states.extend = function(type, stream, state) {\n      if (type == \"[\" || type == \"=\") return \"extend\";\n      if (type == \"]\") return popContext(state);\n      if (type == \"word\") {\n        override = wordAsValue(stream.current());\n        return \"extend\";\n      }\n      return popContext(state);\n    };\n\n\n    /**\n     * Variable name\n     */\n    states.variableName = function(type, stream, state) {\n      if (type == \"string\" || type == \"[\" || type == \"]\" || stream.current().match(/^(\\.|\\$)/)) {\n        if (stream.current().match(/^\\.[\\w-]+/i)) override = \"variable-2\";\n        return \"variableName\";\n      }\n      return popAndPass(type, stream, state);\n    };\n\n\n    return {\n      startState: function(base) {\n        return {\n          tokenize: null,\n          state: \"block\",\n          context: new Context(\"block\", base || 0, null)\n        };\n      },\n      token: function(stream, state) {\n        if (!state.tokenize && stream.eatSpace()) return null;\n        style = (state.tokenize || tokenBase)(stream, state);\n        if (style && typeof style == \"object\") {\n          type = style[1];\n          style = style[0];\n        }\n        override = style;\n        state.state = states[state.state](type, stream, state);\n        return override;\n      },\n      indent: function(state, textAfter, line) {\n\n        var cx = state.context,\n            ch = textAfter && textAfter.charAt(0),\n            indent = cx.indent,\n            lineFirstWord = firstWordOfLine(textAfter),\n            lineIndent = line.match(/^\\s*/)[0].replace(/\\t/g, indentUnitString).length,\n            prevLineFirstWord = state.context.prev ? state.context.prev.line.firstWord : \"\",\n            prevLineIndent = state.context.prev ? state.context.prev.line.indent : lineIndent;\n\n        if (cx.prev &&\n            (ch == \"}\" && (cx.type == \"block\" || cx.type == \"atBlock\" || cx.type == \"keyframes\") ||\n             ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n             ch == \"{\" && (cx.type == \"at\"))) {\n          indent = cx.indent - indentUnit;\n        } else if (!(/(\\})/.test(ch))) {\n          if (/@|\\$|\\d/.test(ch) ||\n              /^\\{/.test(textAfter) ||\n/^\\s*\\/(\\/|\\*)/.test(textAfter) ||\n              /^\\s*\\/\\*/.test(prevLineFirstWord) ||\n              /^\\s*[\\w-\\.\\[\\]\\'\\\"]+\\s*(\\?|:|\\+)?=/i.test(textAfter) ||\n/^(\\+|-)?[a-z][\\w-]*\\(/i.test(textAfter) ||\n/^return/.test(textAfter) ||\n              wordIsBlock(lineFirstWord)) {\n            indent = lineIndent;\n          } else if (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(ch) || wordIsTag(lineFirstWord)) {\n            if (/\\,\\s*$/.test(prevLineFirstWord)) {\n              indent = prevLineIndent;\n            } else if (/^\\s+/.test(line) && (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(prevLineFirstWord) || wordIsTag(prevLineFirstWord))) {\n              indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n            } else {\n              indent = lineIndent;\n            }\n          } else if (!/,\\s*$/.test(line) && (wordIsVendorPrefix(lineFirstWord) || wordIsProperty(lineFirstWord))) {\n            if (wordIsBlock(prevLineFirstWord)) {\n              indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n            } else if (/^\\{/.test(prevLineFirstWord)) {\n              indent = lineIndent <= prevLineIndent ? lineIndent : prevLineIndent + indentUnit;\n            } else if (wordIsVendorPrefix(prevLineFirstWord) || wordIsProperty(prevLineFirstWord)) {\n              indent = lineIndent >= prevLineIndent ? prevLineIndent : lineIndent;\n            } else if (/^(\\.|#|:|\\[|\\*|&|@|\\+|\\-|>|~|\\/)/.test(prevLineFirstWord) ||\n                      /=\\s*$/.test(prevLineFirstWord) ||\n                      wordIsTag(prevLineFirstWord) ||\n                      /^\\$[\\w-\\.\\[\\]\\'\\\"]/.test(prevLineFirstWord)) {\n              indent = prevLineIndent + indentUnit;\n            } else {\n              indent = lineIndent;\n            }\n          }\n        }\n        return indent;\n      },\n      electricChars: \"}\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      blockCommentContinue: \" * \",\n      lineComment: \"//\",\n      fold: \"indent\"\n    };\n  });\n\n  // developer.mozilla.org/en-US/docs/Web/HTML/Element\n  var tagKeywords_ = [\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\", \"b\", \"base\",\"bdi\", \"bdo\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\", \"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\", \"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\", \"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\", \"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\", \"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"nobr\",\"noframes\", \"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\", \"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\", \"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\", \"u\",\"ul\",\"var\",\"video\"];\n\n  // github.com/codemirror/CodeMirror/blob/master/mode/css/css.js\n  // Note, \"url-prefix\" should precede \"url\" in order to match correctly in documentTypesRegexp\n  var documentTypes_ = [\"domain\", \"regexp\", \"url-prefix\", \"url\"];\n  var mediaTypes_ = [\"all\",\"aural\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"embossed\"];\n  var mediaFeatures_ = [\"width\",\"min-width\",\"max-width\",\"height\",\"min-height\",\"max-height\",\"device-width\",\"min-device-width\",\"max-device-width\",\"device-height\",\"min-device-height\",\"max-device-height\",\"aspect-ratio\",\"min-aspect-ratio\",\"max-aspect-ratio\",\"device-aspect-ratio\",\"min-device-aspect-ratio\",\"max-device-aspect-ratio\",\"color\",\"min-color\",\"max-color\",\"color-index\",\"min-color-index\",\"max-color-index\",\"monochrome\",\"min-monochrome\",\"max-monochrome\",\"resolution\",\"min-resolution\",\"max-resolution\",\"scan\",\"grid\"];\n  var propertyKeywords_ = [\"align-content\",\"align-items\",\"align-self\",\"alignment-adjust\",\"alignment-baseline\",\"anchor-point\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"azimuth\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"binding\",\"bleed\",\"bookmark-label\",\"bookmark-level\",\"bookmark-state\",\"bookmark-target\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"bottom\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"break-after\",\"break-before\",\"break-inside\",\"caption-side\",\"clear\",\"clip\",\"color\",\"color-profile\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-span\",\"column-width\",\"columns\",\"content\",\"counter-increment\",\"counter-reset\",\"crop\",\"cue\",\"cue-after\",\"cue-before\",\"cursor\",\"direction\",\"display\",\"dominant-baseline\",\"drop-initial-after-adjust\",\"drop-initial-after-align\",\"drop-initial-before-adjust\",\"drop-initial-before-align\",\"drop-initial-size\",\"drop-initial-value\",\"elevation\",\"empty-cells\",\"fit\",\"fit-position\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"float-offset\",\"flow-from\",\"flow-into\",\"font\",\"font-feature-settings\",\"font-family\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"grid\",\"grid-area\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-position\",\"grid-auto-rows\",\"grid-column\",\"grid-column-end\",\"grid-column-start\",\"grid-row\",\"grid-row-end\",\"grid-row-start\",\"grid-template\",\"grid-template-areas\",\"grid-template-columns\",\"grid-template-rows\",\"hanging-punctuation\",\"height\",\"hyphens\",\"icon\",\"image-orientation\",\"image-rendering\",\"image-resolution\",\"inline-box-align\",\"justify-content\",\"left\",\"letter-spacing\",\"line-break\",\"line-height\",\"line-stacking\",\"line-stacking-ruby\",\"line-stacking-shift\",\"line-stacking-strategy\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marker-offset\",\"marks\",\"marquee-direction\",\"marquee-loop\",\"marquee-play-count\",\"marquee-speed\",\"marquee-style\",\"max-height\",\"max-width\",\"min-height\",\"min-width\",\"move-to\",\"nav-down\",\"nav-index\",\"nav-left\",\"nav-right\",\"nav-up\",\"object-fit\",\"object-position\",\"opacity\",\"order\",\"orphans\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"overflow\",\"overflow-style\",\"overflow-wrap\",\"overflow-x\",\"overflow-y\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page-policy\",\"pause\",\"pause-after\",\"pause-before\",\"perspective\",\"perspective-origin\",\"pitch\",\"pitch-range\",\"play-during\",\"position\",\"presentation-level\",\"punctuation-trim\",\"quotes\",\"region-break-after\",\"region-break-before\",\"region-break-inside\",\"region-fragment\",\"rendering-intent\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"richness\",\"right\",\"rotation\",\"rotation-point\",\"ruby-align\",\"ruby-overhang\",\"ruby-position\",\"ruby-span\",\"shape-image-threshold\",\"shape-inside\",\"shape-margin\",\"shape-outside\",\"size\",\"speak\",\"speak-as\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"speech-rate\",\"stress\",\"string-set\",\"tab-size\",\"table-layout\",\"target\",\"target-name\",\"target-new\",\"target-position\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip\",\"text-decoration-style\",\"text-emphasis\",\"text-emphasis-color\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-height\",\"text-indent\",\"text-justify\",\"text-outline\",\"text-overflow\",\"text-shadow\",\"text-size-adjust\",\"text-space-collapse\",\"text-transform\",\"text-underline-position\",\"text-wrap\",\"top\",\"transform\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"unicode-bidi\",\"vertical-align\",\"visibility\",\"voice-balance\",\"voice-duration\",\"voice-family\",\"voice-pitch\",\"voice-range\",\"voice-rate\",\"voice-stress\",\"voice-volume\",\"volume\",\"white-space\",\"widows\",\"width\",\"will-change\",\"word-break\",\"word-spacing\",\"word-wrap\",\"z-index\",\"clip-path\",\"clip-rule\",\"mask\",\"enable-background\",\"filter\",\"flood-color\",\"flood-opacity\",\"lighting-color\",\"stop-color\",\"stop-opacity\",\"pointer-events\",\"color-interpolation\",\"color-interpolation-filters\",\"color-rendering\",\"fill\",\"fill-opacity\",\"fill-rule\",\"image-rendering\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"shape-rendering\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-rendering\",\"baseline-shift\",\"dominant-baseline\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"text-anchor\",\"writing-mode\",\"font-smoothing\",\"osx-font-smoothing\"];\n  var nonStandardPropertyKeywords_ = [\"scrollbar-arrow-color\",\"scrollbar-base-color\",\"scrollbar-dark-shadow-color\",\"scrollbar-face-color\",\"scrollbar-highlight-color\",\"scrollbar-shadow-color\",\"scrollbar-3d-light-color\",\"scrollbar-track-color\",\"shape-inside\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"zoom\"];\n  var fontProperties_ = [\"font-family\",\"src\",\"unicode-range\",\"font-variant\",\"font-feature-settings\",\"font-stretch\",\"font-weight\",\"font-style\"];\n  var colorKeywords_ = [\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"];\n  var valueKeywords_ = [\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"attr\",\"auto\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"column\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ethiopic-numeric\",\"ew-resize\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"flex\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"japanese-formal\",\"japanese-informal\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"korean-hangul-formal\",\"korean-hanja-formal\",\"korean-hanja-informal\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"malayalam\",\"match\",\"matrix\",\"matrix3d\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"perspective\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row-resize\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"simp-chinese-formal\",\"simp-chinese-informal\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"spell-out\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"tamil\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"trad-chinese-formal\",\"trad-chinese-informal\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\",\"bicubic\",\"optimizespeed\",\"grayscale\",\"row\",\"row-reverse\",\"wrap\",\"wrap-reverse\",\"column-reverse\",\"flex-start\",\"flex-end\",\"space-between\",\"space-around\", \"unset\"];\n\n  var wordOperatorKeywords_ = [\"in\",\"and\",\"or\",\"not\",\"is not\",\"is a\",\"is\",\"isnt\",\"defined\",\"if unless\"],\n      blockKeywords_ = [\"for\",\"if\",\"else\",\"unless\", \"from\", \"to\"],\n      commonAtoms_ = [\"null\",\"true\",\"false\",\"href\",\"title\",\"type\",\"not-allowed\",\"readonly\",\"disabled\"],\n      commonDef_ = [\"@font-face\", \"@keyframes\", \"@media\", \"@viewport\", \"@page\", \"@host\", \"@supports\", \"@block\", \"@css\"];\n\n  var hintWords = tagKeywords_.concat(documentTypes_,mediaTypes_,mediaFeatures_,\n                                      propertyKeywords_,nonStandardPropertyKeywords_,\n                                      colorKeywords_,valueKeywords_,fontProperties_,\n                                      wordOperatorKeywords_,blockKeywords_,\n                                      commonAtoms_,commonDef_);\n\n  function wordRegexp(words) {\n    words = words.sort(function(a,b){return b > a;});\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) keys[array[i]] = true;\n    return keys;\n  }\n\n  function escapeRegExp(text) {\n    return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n  }\n\n  CodeMirror.registerHelper(\"hintWords\", \"stylus\", hintWords);\n  CodeMirror.defineMIME(\"text/x-styl\", \"stylus\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/swift/swift.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Swift mode created by Michael Kaminsky https://github.com/mkaminsky11\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod)\n  else\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n\n  function wordSet(words) {\n    var set = {}\n    for (var i = 0; i < words.length; i++) set[words[i]] = true\n    return set\n  }\n\n  var keywords = wordSet([\"_\",\"var\",\"let\",\"class\",\"enum\",\"extension\",\"import\",\"protocol\",\"struct\",\"func\",\"typealias\",\"associatedtype\",\n                          \"open\",\"public\",\"internal\",\"fileprivate\",\"private\",\"deinit\",\"init\",\"new\",\"override\",\"self\",\"subscript\",\"super\",\n                          \"convenience\",\"dynamic\",\"final\",\"indirect\",\"lazy\",\"required\",\"static\",\"unowned\",\"unowned(safe)\",\"unowned(unsafe)\",\"weak\",\"as\",\"is\",\n                          \"break\",\"case\",\"continue\",\"default\",\"else\",\"fallthrough\",\"for\",\"guard\",\"if\",\"in\",\"repeat\",\"switch\",\"where\",\"while\",\n                          \"defer\",\"return\",\"inout\",\"mutating\",\"nonmutating\",\"catch\",\"do\",\"rethrows\",\"throw\",\"throws\",\"try\",\"didSet\",\"get\",\"set\",\"willSet\",\n                          \"assignment\",\"associativity\",\"infix\",\"left\",\"none\",\"operator\",\"postfix\",\"precedence\",\"precedencegroup\",\"prefix\",\"right\",\n                          \"Any\",\"AnyObject\",\"Type\",\"dynamicType\",\"Self\",\"Protocol\",\"__COLUMN__\",\"__FILE__\",\"__FUNCTION__\",\"__LINE__\"])\n  var definingKeywords = wordSet([\"var\",\"let\",\"class\",\"enum\",\"extension\",\"import\",\"protocol\",\"struct\",\"func\",\"typealias\",\"associatedtype\",\"for\"])\n  var atoms = wordSet([\"true\",\"false\",\"nil\",\"self\",\"super\",\"_\"])\n  var types = wordSet([\"Array\",\"Bool\",\"Character\",\"Dictionary\",\"Double\",\"Float\",\"Int\",\"Int8\",\"Int16\",\"Int32\",\"Int64\",\"Never\",\"Optional\",\"Set\",\"String\",\n                       \"UInt8\",\"UInt16\",\"UInt32\",\"UInt64\",\"Void\"])\n  var operators = \"+-/*%=|&<>~^?!\"\n  var punc = \":;,.(){}[]\"\n  var binary = /^\\-?0b[01][01_]*/\n  var octal = /^\\-?0o[0-7][0-7_]*/\n  var hexadecimal = /^\\-?0x[\\dA-Fa-f][\\dA-Fa-f_]*(?:(?:\\.[\\dA-Fa-f][\\dA-Fa-f_]*)?[Pp]\\-?\\d[\\d_]*)?/\n  var decimal = /^\\-?\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee]\\-?\\d[\\d_]*)?/\n  var identifier = /^\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1/\n  var property = /^\\.(?:\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1)/\n  var instruction = /^\\#[A-Za-z]+/\n  var attribute = /^@(?:\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1)/\n  //var regexp = /^\\/(?!\\s)(?:\\/\\/)?(?:\\\\.|[^\\/])+\\//\n\n  function tokenBase(stream, state, prev) {\n    if (stream.sol()) state.indented = stream.indentation()\n    if (stream.eatSpace()) return null\n\n    var ch = stream.peek()\n    if (ch == \"/\") {\n      if (stream.match(\"//\")) {\n        stream.skipToEnd()\n        return \"comment\"\n      }\n      if (stream.match(\"/*\")) {\n        state.tokenize.push(tokenComment)\n        return tokenComment(stream, state)\n      }\n    }\n    if (stream.match(instruction)) return \"builtin\"\n    if (stream.match(attribute)) return \"attribute\"\n    if (stream.match(binary)) return \"number\"\n    if (stream.match(octal)) return \"number\"\n    if (stream.match(hexadecimal)) return \"number\"\n    if (stream.match(decimal)) return \"number\"\n    if (stream.match(property)) return \"property\"\n    if (operators.indexOf(ch) > -1) {\n      stream.next()\n      return \"operator\"\n    }\n    if (punc.indexOf(ch) > -1) {\n      stream.next()\n      stream.match(\"..\")\n      return \"punctuation\"\n    }\n    var stringMatch\n    if (stringMatch = stream.match(/(\"\"\"|\"|')/)) {\n      var tokenize = tokenString.bind(null, stringMatch[0])\n      state.tokenize.push(tokenize)\n      return tokenize(stream, state)\n    }\n\n    if (stream.match(identifier)) {\n      var ident = stream.current()\n      if (types.hasOwnProperty(ident)) return \"variable-2\"\n      if (atoms.hasOwnProperty(ident)) return \"atom\"\n      if (keywords.hasOwnProperty(ident)) {\n        if (definingKeywords.hasOwnProperty(ident))\n          state.prev = \"define\"\n        return \"keyword\"\n      }\n      if (prev == \"define\") return \"def\"\n      return \"variable\"\n    }\n\n    stream.next()\n    return null\n  }\n\n  function tokenUntilClosingParen() {\n    var depth = 0\n    return function(stream, state, prev) {\n      var inner = tokenBase(stream, state, prev)\n      if (inner == \"punctuation\") {\n        if (stream.current() == \"(\") ++depth\n        else if (stream.current() == \")\") {\n          if (depth == 0) {\n            stream.backUp(1)\n            state.tokenize.pop()\n            return state.tokenize[state.tokenize.length - 1](stream, state)\n          }\n          else --depth\n        }\n      }\n      return inner\n    }\n  }\n\n  function tokenString(openQuote, stream, state) {\n    var singleLine = openQuote.length == 1\n    var ch, escaped = false\n    while (ch = stream.peek()) {\n      if (escaped) {\n        stream.next()\n        if (ch == \"(\") {\n          state.tokenize.push(tokenUntilClosingParen())\n          return \"string\"\n        }\n        escaped = false\n      } else if (stream.match(openQuote)) {\n        state.tokenize.pop()\n        return \"string\"\n      } else {\n        stream.next()\n        escaped = ch == \"\\\\\"\n      }\n    }\n    if (singleLine) {\n      state.tokenize.pop()\n    }\n    return \"string\"\n  }\n\n  function tokenComment(stream, state) {\n    var ch\n    while (true) {\n      stream.match(/^[^/*]+/, true)\n      ch = stream.next()\n      if (!ch) break\n      if (ch === \"/\" && stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment)\n      } else if (ch === \"*\" && stream.eat(\"/\")) {\n        state.tokenize.pop()\n      }\n    }\n    return \"comment\"\n  }\n\n  function Context(prev, align, indented) {\n    this.prev = prev\n    this.align = align\n    this.indented = indented\n  }\n\n  function pushContext(state, stream) {\n    var align = stream.match(/^\\s*($|\\/[\\/\\*])/, false) ? null : stream.column() + 1\n    state.context = new Context(state.context, align, state.indented)\n  }\n\n  function popContext(state) {\n    if (state.context) {\n      state.indented = state.context.indented\n      state.context = state.context.prev\n    }\n  }\n\n  CodeMirror.defineMode(\"swift\", function(config) {\n    return {\n      startState: function() {\n        return {\n          prev: null,\n          context: null,\n          indented: 0,\n          tokenize: []\n        }\n      },\n\n      token: function(stream, state) {\n        var prev = state.prev\n        state.prev = null\n        var tokenize = state.tokenize[state.tokenize.length - 1] || tokenBase\n        var style = tokenize(stream, state, prev)\n        if (!style || style == \"comment\") state.prev = prev\n        else if (!state.prev) state.prev = style\n\n        if (style == \"punctuation\") {\n          var bracket = /[\\(\\[\\{]|([\\]\\)\\}])/.exec(stream.current())\n          if (bracket) (bracket[1] ? popContext : pushContext)(state, stream)\n        }\n\n        return style\n      },\n\n      indent: function(state, textAfter) {\n        var cx = state.context\n        if (!cx) return 0\n        var closing = /^[\\]\\}\\)]/.test(textAfter)\n        if (cx.align != null) return cx.align - (closing ? 1 : 0)\n        return cx.indented + (closing ? 0 : config.indentUnit)\n      },\n\n      electricInput: /^\\s*[\\)\\}\\]]$/,\n\n      lineComment: \"//\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      fold: \"brace\",\n      closeBrackets: \"()[]{}''\\\"\\\"``\"\n    }\n  })\n\n  CodeMirror.defineMIME(\"text/x-swift\",\"swift\")\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tcl/tcl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tcl\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = parseWords(\"Tcl safe after append array auto_execok auto_import auto_load \" +\n        \"auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror \" +\n        \"binary break catch cd close concat continue dde eof encoding error \" +\n        \"eval exec exit expr fblocked fconfigure fcopy file fileevent filename \" +\n        \"filename flush for foreach format gets glob global history http if \" +\n        \"incr info interp join lappend lindex linsert list llength load lrange \" +\n        \"lreplace lsearch lset lsort memory msgcat namespace open package parray \" +\n        \"pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp \" +\n        \"registry regsub rename resource return scan seek set socket source split \" +\n        \"string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord \" +\n        \"tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest \" +\n        \"tclvars tell time trace unknown unset update uplevel upvar variable \" +\n    \"vwait\");\n    var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n    var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n    function chain(stream, state, f) {\n      state.tokenize = f;\n      return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n      var beforeParams = state.beforeParams;\n      state.beforeParams = false;\n      var ch = stream.next();\n      if ((ch == '\"' || ch == \"'\") && state.inParams) {\n        return chain(stream, state, tokenString(ch));\n      } else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n        if (ch == \"(\" && beforeParams) state.inParams = true;\n        else if (ch == \")\") state.inParams = false;\n          return null;\n      } else if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      } else if (ch == \"#\") {\n        if (stream.eat(\"*\"))\n          return chain(stream, state, tokenComment);\n        if (ch == \"#\" && stream.match(/ *\\[ *\\[/))\n          return chain(stream, state, tokenUnparsed);\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (ch == '\"') {\n        stream.skipTo(/\"/);\n        return \"comment\";\n      } else if (ch == \"$\") {\n        stream.eatWhile(/[$_a-z0-9A-Z\\.{:]/);\n        stream.eatWhile(/}/);\n        state.beforeParams = true;\n        return \"builtin\";\n      } else if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"comment\";\n      } else {\n        stream.eatWhile(/[\\w\\$_{}\\xa1-\\uffff]/);\n        var word = stream.current().toLowerCase();\n        if (keywords && keywords.propertyIsEnumerable(word))\n          return \"keyword\";\n        if (functions && functions.propertyIsEnumerable(word)) {\n          state.beforeParams = true;\n          return \"keyword\";\n        }\n        return null;\n      }\n    }\n    function tokenString(quote) {\n      return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize = tokenBase;\n        return \"string\";\n      };\n    }\n    function tokenComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n    function tokenUnparsed(stream, state) {\n      var maybeEnd = 0, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd == 2) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        if (ch == \"]\")\n          maybeEnd++;\n        else if (ch != \" \")\n          maybeEnd = 0;\n      }\n      return \"meta\";\n    }\n    return {\n      startState: function() {\n        return {\n          tokenize: tokenBase,\n          beforeParams: false,\n          inParams: false\n        };\n      },\n      token: function(stream, state) {\n        if (stream.eatSpace()) return null;\n        return state.tokenize(stream, state);\n      },\n      lineComment: \"#\"\n    };\n});\nCodeMirror.defineMIME(\"text/x-tcl\", \"tcl\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/textile/textile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") { // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  } else if (typeof define == \"function\" && define.amd) { // AMD\n    define([\"../../lib/codemirror\"], mod);\n  } else { // Plain browser env\n    mod(CodeMirror);\n  }\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var TOKEN_STYLES = {\n    addition: \"positive\",\n    attributes: \"attribute\",\n    bold: \"strong\",\n    cite: \"keyword\",\n    code: \"atom\",\n    definitionList: \"number\",\n    deletion: \"negative\",\n    div: \"punctuation\",\n    em: \"em\",\n    footnote: \"variable\",\n    footCite: \"qualifier\",\n    header: \"header\",\n    html: \"comment\",\n    image: \"string\",\n    italic: \"em\",\n    link: \"link\",\n    linkDefinition: \"link\",\n    list1: \"variable-2\",\n    list2: \"variable-3\",\n    list3: \"keyword\",\n    notextile: \"string-2\",\n    pre: \"operator\",\n    p: \"property\",\n    quote: \"bracket\",\n    span: \"quote\",\n    specialChar: \"tag\",\n    strong: \"strong\",\n    sub: \"builtin\",\n    sup: \"builtin\",\n    table: \"variable-3\",\n    tableHeading: \"operator\"\n  };\n\n  function startNewLine(stream, state) {\n    state.mode = Modes.newLayout;\n    state.tableHeading = false;\n\n    if (state.layoutType === \"definitionList\" && state.spanningLayout &&\n        stream.match(RE(\"definitionListEnd\"), false))\n      state.spanningLayout = false;\n  }\n\n  function handlePhraseModifier(stream, state, ch) {\n    if (ch === \"_\") {\n      if (stream.eat(\"_\"))\n        return togglePhraseModifier(stream, state, \"italic\", /__/, 2);\n      else\n        return togglePhraseModifier(stream, state, \"em\", /_/, 1);\n    }\n\n    if (ch === \"*\") {\n      if (stream.eat(\"*\")) {\n        return togglePhraseModifier(stream, state, \"bold\", /\\*\\*/, 2);\n      }\n      return togglePhraseModifier(stream, state, \"strong\", /\\*/, 1);\n    }\n\n    if (ch === \"[\") {\n      if (stream.match(/\\d+\\]/)) state.footCite = true;\n      return tokenStyles(state);\n    }\n\n    if (ch === \"(\") {\n      var spec = stream.match(/^(r|tm|c)\\)/);\n      if (spec)\n        return tokenStylesWith(state, TOKEN_STYLES.specialChar);\n    }\n\n    if (ch === \"<\" && stream.match(/(\\w+)[^>]+>[^<]+<\\/\\1>/))\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n\n    if (ch === \"?\" && stream.eat(\"?\"))\n      return togglePhraseModifier(stream, state, \"cite\", /\\?\\?/, 2);\n\n    if (ch === \"=\" && stream.eat(\"=\"))\n      return togglePhraseModifier(stream, state, \"notextile\", /==/, 2);\n\n    if (ch === \"-\" && !stream.eat(\"-\"))\n      return togglePhraseModifier(stream, state, \"deletion\", /-/, 1);\n\n    if (ch === \"+\")\n      return togglePhraseModifier(stream, state, \"addition\", /\\+/, 1);\n\n    if (ch === \"~\")\n      return togglePhraseModifier(stream, state, \"sub\", /~/, 1);\n\n    if (ch === \"^\")\n      return togglePhraseModifier(stream, state, \"sup\", /\\^/, 1);\n\n    if (ch === \"%\")\n      return togglePhraseModifier(stream, state, \"span\", /%/, 1);\n\n    if (ch === \"@\")\n      return togglePhraseModifier(stream, state, \"code\", /@/, 1);\n\n    if (ch === \"!\") {\n      var type = togglePhraseModifier(stream, state, \"image\", /(?:\\([^\\)]+\\))?!/, 1);\n      stream.match(/^:\\S+/); // optional Url portion\n      return type;\n    }\n    return tokenStyles(state);\n  }\n\n  function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {\n    var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;\n    var charAfter = stream.peek();\n    if (state[phraseModifier]) {\n      if ((!charAfter || /\\W/.test(charAfter)) && charBefore && /\\S/.test(charBefore)) {\n        var type = tokenStyles(state);\n        state[phraseModifier] = false;\n        return type;\n      }\n    } else if ((!charBefore || /\\W/.test(charBefore)) && charAfter && /\\S/.test(charAfter) &&\n               stream.match(new RegExp(\"^.*\\\\S\" + closeRE.source + \"(?:\\\\W|$)\"), false)) {\n      state[phraseModifier] = true;\n      state.mode = Modes.attributes;\n    }\n    return tokenStyles(state);\n  };\n\n  function tokenStyles(state) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var styles = [];\n    if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);\n\n    styles = styles.concat(activeStyles(\n      state, \"addition\", \"bold\", \"cite\", \"code\", \"deletion\", \"em\", \"footCite\",\n      \"image\", \"italic\", \"link\", \"span\", \"strong\", \"sub\", \"sup\", \"table\", \"tableHeading\"));\n\n    if (state.layoutType === \"header\")\n      styles.push(TOKEN_STYLES.header + \"-\" + state.header);\n\n    return styles.length ? styles.join(\" \") : null;\n  }\n\n  function textileDisabled(state) {\n    var type = state.layoutType;\n\n    switch(type) {\n    case \"notextile\":\n    case \"code\":\n    case \"pre\":\n      return TOKEN_STYLES[type];\n    default:\n      if (state.notextile)\n        return TOKEN_STYLES.notextile + (type ? (\" \" + TOKEN_STYLES[type]) : \"\");\n      return null;\n    }\n  }\n\n  function tokenStylesWith(state, extraStyles) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var type = tokenStyles(state);\n    if (extraStyles)\n      return type ? (type + \" \" + extraStyles) : extraStyles;\n    else\n      return type;\n  }\n\n  function activeStyles(state) {\n    var styles = [];\n    for (var i = 1; i < arguments.length; ++i) {\n      if (state[arguments[i]])\n        styles.push(TOKEN_STYLES[arguments[i]]);\n    }\n    return styles;\n  }\n\n  function blankLine(state) {\n    var spanningLayout = state.spanningLayout, type = state.layoutType;\n\n    for (var key in state) if (state.hasOwnProperty(key))\n      delete state[key];\n\n    state.mode = Modes.newLayout;\n    if (spanningLayout) {\n      state.layoutType = type;\n      state.spanningLayout = true;\n    }\n  }\n\n  var REs = {\n    cache: {},\n    single: {\n      bc: \"bc\",\n      bq: \"bq\",\n      definitionList: /- .*?:=+/,\n      definitionListEnd: /.*=:\\s*$/,\n      div: \"div\",\n      drawTable: /\\|.*\\|/,\n      foot: /fn\\d+/,\n      header: /h[1-6]/,\n      html: /\\s*<(?:\\/)?(\\w+)(?:[^>]+)?>(?:[^<]+<\\/\\1>)?/,\n      link: /[^\"]+\":\\S/,\n      linkDefinition: /\\[[^\\s\\]]+\\]\\S+/,\n      list: /(?:#+|\\*+)/,\n      notextile: \"notextile\",\n      para: \"p\",\n      pre: \"pre\",\n      table: \"table\",\n      tableCellAttributes: /[\\/\\\\]\\d+/,\n      tableHeading: /\\|_\\./,\n      tableText: /[^\"_\\*\\[\\(\\?\\+~\\^%@|-]+/,\n      text: /[^!\"_=\\*\\[\\(<\\?\\+~\\^%@-]+/\n    },\n    attributes: {\n      align: /(?:<>|<|>|=)/,\n      selector: /\\([^\\(][^\\)]+\\)/,\n      lang: /\\[[^\\[\\]]+\\]/,\n      pad: /(?:\\(+|\\)+){1,2}/,\n      css: /\\{[^\\}]+\\}/\n    },\n    createRe: function(name) {\n      switch (name) {\n      case \"drawTable\":\n        return REs.makeRe(\"^\", REs.single.drawTable, \"$\");\n      case \"html\":\n        return REs.makeRe(\"^\", REs.single.html, \"(?:\", REs.single.html, \")*\", \"$\");\n      case \"linkDefinition\":\n        return REs.makeRe(\"^\", REs.single.linkDefinition, \"$\");\n      case \"listLayout\":\n        return REs.makeRe(\"^\", REs.single.list, RE(\"allAttributes\"), \"*\\\\s+\");\n      case \"tableCellAttributes\":\n        return REs.makeRe(\"^\", REs.choiceRe(REs.single.tableCellAttributes,\n                                            RE(\"allAttributes\")), \"+\\\\.\");\n      case \"type\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"));\n      case \"typeLayout\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"), RE(\"allAttributes\"),\n                          \"*\\\\.\\\\.?\", \"(\\\\s+|$)\");\n      case \"attributes\":\n        return REs.makeRe(\"^\", RE(\"allAttributes\"), \"+\");\n\n      case \"allTypes\":\n        return REs.choiceRe(REs.single.div, REs.single.foot,\n                            REs.single.header, REs.single.bc, REs.single.bq,\n                            REs.single.notextile, REs.single.pre, REs.single.table,\n                            REs.single.para);\n\n      case \"allAttributes\":\n        return REs.choiceRe(REs.attributes.selector, REs.attributes.css,\n                            REs.attributes.lang, REs.attributes.align, REs.attributes.pad);\n\n      default:\n        return REs.makeRe(\"^\", REs.single[name]);\n      }\n    },\n    makeRe: function() {\n      var pattern = \"\";\n      for (var i = 0; i < arguments.length; ++i) {\n        var arg = arguments[i];\n        pattern += (typeof arg === \"string\") ? arg : arg.source;\n      }\n      return new RegExp(pattern);\n    },\n    choiceRe: function() {\n      var parts = [arguments[0]];\n      for (var i = 1; i < arguments.length; ++i) {\n        parts[i * 2 - 1] = \"|\";\n        parts[i * 2] = arguments[i];\n      }\n\n      parts.unshift(\"(?:\");\n      parts.push(\")\");\n      return REs.makeRe.apply(null, parts);\n    }\n  };\n\n  function RE(name) {\n    return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));\n  }\n\n  var Modes = {\n    newLayout: function(stream, state) {\n      if (stream.match(RE(\"typeLayout\"), false)) {\n        state.spanningLayout = false;\n        return (state.mode = Modes.blockType)(stream, state);\n      }\n      var newMode;\n      if (!textileDisabled(state)) {\n        if (stream.match(RE(\"listLayout\"), false))\n          newMode = Modes.list;\n        else if (stream.match(RE(\"drawTable\"), false))\n          newMode = Modes.table;\n        else if (stream.match(RE(\"linkDefinition\"), false))\n          newMode = Modes.linkDefinition;\n        else if (stream.match(RE(\"definitionList\")))\n          newMode = Modes.definitionList;\n        else if (stream.match(RE(\"html\"), false))\n          newMode = Modes.html;\n      }\n      return (state.mode = (newMode || Modes.text))(stream, state);\n    },\n\n    blockType: function(stream, state) {\n      var match, type;\n      state.layoutType = null;\n\n      if (match = stream.match(RE(\"type\")))\n        type = match[0];\n      else\n        return (state.mode = Modes.text)(stream, state);\n\n      if (match = type.match(RE(\"header\"))) {\n        state.layoutType = \"header\";\n        state.header = parseInt(match[0][1]);\n      } else if (type.match(RE(\"bq\"))) {\n        state.layoutType = \"quote\";\n      } else if (type.match(RE(\"bc\"))) {\n        state.layoutType = \"code\";\n      } else if (type.match(RE(\"foot\"))) {\n        state.layoutType = \"footnote\";\n      } else if (type.match(RE(\"notextile\"))) {\n        state.layoutType = \"notextile\";\n      } else if (type.match(RE(\"pre\"))) {\n        state.layoutType = \"pre\";\n      } else if (type.match(RE(\"div\"))) {\n        state.layoutType = \"div\";\n      } else if (type.match(RE(\"table\"))) {\n        state.layoutType = \"table\";\n      }\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    text: function(stream, state) {\n      if (stream.match(RE(\"text\"))) return tokenStyles(state);\n\n      var ch = stream.next();\n      if (ch === '\"')\n        return (state.mode = Modes.link)(stream, state);\n      return handlePhraseModifier(stream, state, ch);\n    },\n\n    attributes: function(stream, state) {\n      state.mode = Modes.layoutLength;\n\n      if (stream.match(RE(\"attributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    layoutLength: function(stream, state) {\n      if (stream.eat(\".\") && stream.eat(\".\"))\n        state.spanningLayout = true;\n\n      state.mode = Modes.text;\n      return tokenStyles(state);\n    },\n\n    list: function(stream, state) {\n      var match = stream.match(RE(\"list\"));\n      state.listDepth = match[0].length;\n      var listMod = (state.listDepth - 1) % 3;\n      if (!listMod)\n        state.layoutType = \"list1\";\n      else if (listMod === 1)\n        state.layoutType = \"list2\";\n      else\n        state.layoutType = \"list3\";\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    link: function(stream, state) {\n      state.mode = Modes.text;\n      if (stream.match(RE(\"link\"))) {\n        stream.match(/\\S+/);\n        return tokenStylesWith(state, TOKEN_STYLES.link);\n      }\n      return tokenStyles(state);\n    },\n\n    linkDefinition: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.linkDefinition);\n    },\n\n    definitionList: function(stream, state) {\n      stream.match(RE(\"definitionList\"));\n\n      state.layoutType = \"definitionList\";\n\n      if (stream.match(/\\s*$/))\n        state.spanningLayout = true;\n      else\n        state.mode = Modes.attributes;\n\n      return tokenStyles(state);\n    },\n\n    html: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n    },\n\n    table: function(stream, state) {\n      state.layoutType = \"table\";\n      return (state.mode = Modes.tableCell)(stream, state);\n    },\n\n    tableCell: function(stream, state) {\n      if (stream.match(RE(\"tableHeading\")))\n        state.tableHeading = true;\n      else\n        stream.eat(\"|\");\n\n      state.mode = Modes.tableCellAttributes;\n      return tokenStyles(state);\n    },\n\n    tableCellAttributes: function(stream, state) {\n      state.mode = Modes.tableText;\n\n      if (stream.match(RE(\"tableCellAttributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    tableText: function(stream, state) {\n      if (stream.match(RE(\"tableText\")))\n        return tokenStyles(state);\n\n      if (stream.peek() === \"|\") { // end of cell\n        state.mode = Modes.tableCell;\n        return tokenStyles(state);\n      }\n      return handlePhraseModifier(stream, state, stream.next());\n    }\n  };\n\n  CodeMirror.defineMode(\"textile\", function() {\n    return {\n      startState: function() {\n        return { mode: Modes.newLayout };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) startNewLine(stream, state);\n        return state.mode(stream, state);\n      },\n      blankLine: blankLine\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-textile\", \"textile\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css",
    "content": "span.cm-underlined {\n  text-decoration: underline;\n}\nspan.cm-strikethrough {\n  text-decoration: line-through;\n}\nspan.cm-brace {\n  color: #170;\n  font-weight: bold;\n}\nspan.cm-table {\n  color: blue;\n  font-weight: bold;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/***\n    |''Name''|tiddlywiki.js|\n    |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror|\n    |''Author''|PMario|\n    |''Version''|0.1.7|\n    |''Status''|''stable''|\n    |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]|\n    |''Documentation''|https://codemirror.tiddlyspace.com/|\n    |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]|\n    |''CoreVersion''|2.5.0|\n    |''Requires''|codemirror.js|\n    |''Keywords''|syntax highlighting color code mirror codemirror|\n    ! Info\n    CoreVersion parameter is needed for TiddlyWiki only!\n***/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tiddlywiki\", function () {\n  // Tokenizer\n  var textwords = {};\n\n  var keywords = {\n    \"allTags\": true, \"closeAll\": true, \"list\": true,\n    \"newJournal\": true, \"newTiddler\": true,\n    \"permaview\": true, \"saveChanges\": true,\n    \"search\": true, \"slider\": true, \"tabs\": true,\n    \"tag\": true, \"tagging\": true, \"tags\": true,\n    \"tiddler\": true, \"timeline\": true,\n    \"today\": true, \"version\": true, \"option\": true,\n    \"with\": true, \"filter\": true\n  };\n\n  var isSpaceName = /[\\w_\\-]/i,\n      reHR = /^\\-\\-\\-\\-+$/,                                 // <hr>\n      reWikiCommentStart = /^\\/\\*\\*\\*$/,            // /***\n      reWikiCommentStop = /^\\*\\*\\*\\/$/,             // ***/\n      reBlockQuote = /^<<<$/,\n\n      reJsCodeStart = /^\\/\\/\\{\\{\\{$/,                       // //{{{ js block start\n      reJsCodeStop = /^\\/\\/\\}\\}\\}$/,                        // //}}} js stop\n      reXmlCodeStart = /^<!--\\{\\{\\{-->$/,           // xml block start\n      reXmlCodeStop = /^<!--\\}\\}\\}-->$/,            // xml stop\n\n      reCodeBlockStart = /^\\{\\{\\{$/,                        // {{{ TW text div block start\n      reCodeBlockStop = /^\\}\\}\\}$/,                 // }}} TW text stop\n\n      reUntilCodeStop = /.*?\\}\\}\\}/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    var sol = stream.sol(), ch = stream.peek();\n\n    state.block = false;        // indicates the start of a code block.\n\n    // check start of  blocks\n    if (sol && /[<\\/\\*{}\\-]/.test(ch)) {\n      if (stream.match(reCodeBlockStart)) {\n        state.block = true;\n        return chain(stream, state, twTokenCode);\n      }\n      if (stream.match(reBlockQuote))\n        return 'quote';\n      if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop))\n        return 'comment';\n      if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop))\n        return 'comment';\n      if (stream.match(reHR))\n        return 'hr';\n    }\n\n    stream.next();\n    if (sol && /[\\/\\*!#;:>|]/.test(ch)) {\n      if (ch == \"!\") { // tw header\n        stream.skipToEnd();\n        return \"header\";\n      }\n      if (ch == \"*\") { // tw list\n        stream.eatWhile('*');\n        return \"comment\";\n      }\n      if (ch == \"#\") { // tw numbered list\n        stream.eatWhile('#');\n        return \"comment\";\n      }\n      if (ch == \";\") { // definition list, term\n        stream.eatWhile(';');\n        return \"comment\";\n      }\n      if (ch == \":\") { // definition list, description\n        stream.eatWhile(':');\n        return \"comment\";\n      }\n      if (ch == \">\") { // single line quote\n        stream.eatWhile(\">\");\n        return \"quote\";\n      }\n      if (ch == '|')\n        return 'header';\n    }\n\n    if (ch == '{' && stream.match('{{'))\n      return chain(stream, state, twTokenCode);\n\n    // rudimentary html:// file:// link matching. TW knows much more ...\n    if (/[hf]/i.test(ch) &&\n        /[ti]/i.test(stream.peek()) &&\n        stream.match(/\\b(ttps?|tp|ile):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|$!:,.;]*[A-Z0-9+&@#\\/%=~_|$]/i))\n      return \"link\";\n\n    // just a little string indicator, don't want to have the whole string covered\n    if (ch == '\"')\n      return 'string';\n\n    if (ch == '~')    // _no_ CamelCase indicator should be bold\n      return 'brace';\n\n    if (/[\\[\\]]/.test(ch) && stream.match(ch)) // check for [[..]]\n      return 'brace';\n\n    if (ch == \"@\") {    // check for space link. TODO fix @@...@@ highlighting\n      stream.eatWhile(isSpaceName);\n      return \"link\";\n    }\n\n    if (/\\d/.test(ch)) {        // numbers\n      stream.eatWhile(/\\d/);\n      return \"number\";\n    }\n\n    if (ch == \"/\") { // tw invisible comment\n      if (stream.eat(\"%\")) {\n        return chain(stream, state, twTokenComment);\n      } else if (stream.eat(\"/\")) { //\n        return chain(stream, state, twTokenEm);\n      }\n    }\n\n    if (ch == \"_\" && stream.eat(\"_\")) // tw underline\n        return chain(stream, state, twTokenUnderline);\n\n    // strikethrough and mdash handling\n    if (ch == \"-\" && stream.eat(\"-\")) {\n      // if strikethrough looks ugly, change CSS.\n      if (stream.peek() != ' ')\n        return chain(stream, state, twTokenStrike);\n      // mdash\n      if (stream.peek() == ' ')\n        return 'brace';\n    }\n\n    if (ch == \"'\" && stream.eat(\"'\")) // tw bold\n      return chain(stream, state, twTokenStrong);\n\n    if (ch == \"<\" && stream.eat(\"<\")) // tw macro\n      return chain(stream, state, twTokenMacro);\n\n    // core macro handling\n    stream.eatWhile(/[\\w\\$_]/);\n    return textwords.propertyIsEnumerable(stream.current()) ? \"keyword\" : null\n  }\n\n  // tw invisible comment\n  function twTokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"%\");\n    }\n    return \"comment\";\n  }\n\n  // tw strong / bold\n  function twTokenStrong(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"'\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"'\");\n    }\n    return \"strong\";\n  }\n\n  // tw code\n  function twTokenCode(stream, state) {\n    var sb = state.block;\n\n    if (sb && stream.current()) {\n      return \"comment\";\n    }\n\n    if (!sb && stream.match(reUntilCodeStop)) {\n      state.tokenize = tokenBase;\n      return \"comment\";\n    }\n\n    if (sb && stream.sol() && stream.match(reCodeBlockStop)) {\n      state.tokenize = tokenBase;\n      return \"comment\";\n    }\n\n    stream.next();\n    return \"comment\";\n  }\n\n  // tw em / italic\n  function twTokenEm(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"/\");\n    }\n    return \"em\";\n  }\n\n  // tw underlined text\n  function twTokenUnderline(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"_\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"_\");\n    }\n    return \"underlined\";\n  }\n\n  // tw strike through text looks ugly\n  // change CSS if needed\n  function twTokenStrike(stream, state) {\n    var maybeEnd = false, ch;\n\n    while (ch = stream.next()) {\n      if (ch == \"-\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"-\");\n    }\n    return \"strikethrough\";\n  }\n\n  // macro\n  function twTokenMacro(stream, state) {\n    if (stream.current() == '<<') {\n      return 'macro';\n    }\n\n    var ch = stream.next();\n    if (!ch) {\n      state.tokenize = tokenBase;\n      return null;\n    }\n    if (ch == \">\") {\n      if (stream.peek() == '>') {\n        stream.next();\n        state.tokenize = tokenBase;\n        return \"macro\";\n      }\n    }\n\n    stream.eatWhile(/[\\w\\$_]/);\n    return keywords.propertyIsEnumerable(stream.current()) ? \"keyword\" : null\n  }\n\n  // Interface\n  return {\n    startState: function () {\n      return {tokenize: tokenBase};\n    },\n\n    token: function (stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-tiddlywiki\", \"tiddlywiki\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tiki/tiki.css",
    "content": ".cm-tw-syntaxerror {\n\tcolor: #FFF;\n\tbackground-color: #900;\n}\n\n.cm-tw-deleted {\n\ttext-decoration: line-through;\n}\n\n.cm-tw-header5 {\n\tfont-weight: bold;\n}\n.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/\n\tpadding-left: 10px;\n}\n\n.cm-tw-box {\n\tborder-top-width: 0px !important;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-color: inherit;\n}\n\n.cm-tw-underline {\n\ttext-decoration: underline;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tiki/tiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('tiki', function(config) {\n  function inBlock(style, terminator, returnTokenizer) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n\n      if (returnTokenizer) state.tokenize = returnTokenizer;\n\n      return style;\n    };\n  }\n\n  function inLine(style) {\n    return function(stream, state) {\n      while(!stream.eol()) {\n        stream.next();\n      }\n      state.tokenize = inText;\n      return style;\n    };\n  }\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    //non start of line\n    switch (ch) { //switch is generally much faster than if, so it is used here\n    case \"{\": //plugin\n      stream.eat(\"/\");\n      stream.eatSpace();\n      stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?(}]/);\n      state.tokenize = inPlugin;\n      return \"tag\";\n    case \"_\": //bold\n      if (stream.eat(\"_\"))\n        return chain(inBlock(\"strong\", \"__\", inText));\n      break;\n    case \"'\": //italics\n      if (stream.eat(\"'\"))\n        return chain(inBlock(\"em\", \"''\", inText));\n      break;\n    case \"(\":// Wiki Link\n      if (stream.eat(\"(\"))\n        return chain(inBlock(\"variable-2\", \"))\", inText));\n      break;\n    case \"[\":// Weblink\n      return chain(inBlock(\"variable-3\", \"]\", inText));\n      break;\n    case \"|\": //table\n      if (stream.eat(\"|\"))\n        return chain(inBlock(\"comment\", \"||\"));\n      break;\n    case \"-\":\n      if (stream.eat(\"=\")) {//titleBar\n        return chain(inBlock(\"header string\", \"=-\", inText));\n      } else if (stream.eat(\"-\")) {//deleted\n        return chain(inBlock(\"error tw-deleted\", \"--\", inText));\n      }\n      break;\n    case \"=\": //underline\n      if (stream.match(\"==\"))\n        return chain(inBlock(\"tw-underline\", \"===\", inText));\n      break;\n    case \":\":\n      if (stream.eat(\":\"))\n        return chain(inBlock(\"comment\", \"::\"));\n      break;\n    case \"^\": //box\n      return chain(inBlock(\"tw-box\", \"^\"));\n      break;\n    case \"~\": //np\n      if (stream.match(\"np~\"))\n        return chain(inBlock(\"meta\", \"~/np~\"));\n      break;\n    }\n\n    //start of line types\n    if (sol) {\n      switch (ch) {\n      case \"!\": //header at start of line\n        if (stream.match('!!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!')) {\n          return chain(inLine(\"header string\"));\n        } else {\n          return chain(inLine(\"header string\"));\n        }\n        break;\n      case \"*\": //unordered list line item, or <li /> at start of line\n      case \"#\": //ordered list line item, or <li /> at start of line\n      case \"+\": //ordered list line item, or <li /> at start of line\n        return chain(inLine(\"tw-listitem bracket\"));\n        break;\n      }\n    }\n\n    //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki\n    return null;\n  }\n\n  var indentUnit = config.indentUnit;\n\n  // Return variables for tokenizers\n  var pluginName, type;\n  function inPlugin(stream, state) {\n    var ch = stream.next();\n    var peek = stream.peek();\n\n    if (ch == \"}\") {\n      state.tokenize = inText;\n      //type = ch == \")\" ? \"endPlugin\" : \"selfclosePlugin\"; inPlugin\n      return \"tag\";\n    } else if (ch == \"(\" || ch == \")\") {\n      return \"bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n\n      if (peek == \">\") {\n        stream.next();\n        peek = stream.peek();\n      }\n\n      //here we detect values directly after equal character with no quotes\n      if (!/[\\'\\\"]/.test(peek)) {\n        state.tokenize = inAttributeNoQuote();\n      }\n      //end detect values\n\n      return \"operator\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      return state.tokenize(stream, state);\n    } else {\n      stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?]/);\n      return \"keyword\";\n    }\n  }\n\n  function inAttribute(quote) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inPlugin;\n          break;\n        }\n      }\n      return \"string\";\n    };\n  }\n\n  function inAttributeNoQuote() {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        var ch = stream.next();\n        var peek = stream.peek();\n        if (ch == \" \" || ch == \",\" || /[ )}]/.test(peek)) {\n      state.tokenize = inPlugin;\n      break;\n    }\n  }\n  return \"string\";\n};\n                     }\n\nvar curState, setStyle;\nfunction pass() {\n  for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);\n}\n\nfunction cont() {\n  pass.apply(null, arguments);\n  return true;\n}\n\nfunction pushContext(pluginName, startOfLine) {\n  var noIndent = curState.context && curState.context.noIndent;\n  curState.context = {\n    prev: curState.context,\n    pluginName: pluginName,\n    indent: curState.indented,\n    startOfLine: startOfLine,\n    noIndent: noIndent\n  };\n}\n\nfunction popContext() {\n  if (curState.context) curState.context = curState.context.prev;\n}\n\nfunction element(type) {\n  if (type == \"openPlugin\") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}\n  else if (type == \"closePlugin\") {\n    var err = false;\n    if (curState.context) {\n      err = curState.context.pluginName != pluginName;\n      popContext();\n    } else {\n      err = true;\n    }\n    if (err) setStyle = \"error\";\n    return cont(endcloseplugin(err));\n  }\n  else if (type == \"string\") {\n    if (!curState.context || curState.context.name != \"!cdata\") pushContext(\"!cdata\");\n    if (curState.tokenize == inText) popContext();\n    return cont();\n  }\n  else return cont();\n}\n\nfunction endplugin(startOfLine) {\n  return function(type) {\n    if (\n      type == \"selfclosePlugin\" ||\n        type == \"endPlugin\"\n    )\n      return cont();\n    if (type == \"endPlugin\") {pushContext(curState.pluginName, startOfLine); return cont();}\n    return cont();\n  };\n}\n\nfunction endcloseplugin(err) {\n  return function(type) {\n    if (err) setStyle = \"error\";\n    if (type == \"endPlugin\") return cont();\n    return pass();\n  };\n}\n\nfunction attributes(type) {\n  if (type == \"keyword\") {setStyle = \"attribute\"; return cont(attributes);}\n  if (type == \"equals\") return cont(attvalue, attributes);\n  return pass();\n}\nfunction attvalue(type) {\n  if (type == \"keyword\") {setStyle = \"string\"; return cont();}\n  if (type == \"string\") return cont(attvaluemaybe);\n  return pass();\n}\nfunction attvaluemaybe(type) {\n  if (type == \"string\") return cont(attvaluemaybe);\n  else return pass();\n}\nreturn {\n  startState: function() {\n    return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};\n  },\n  token: function(stream, state) {\n    if (stream.sol()) {\n      state.startOfLine = true;\n      state.indented = stream.indentation();\n    }\n    if (stream.eatSpace()) return null;\n\n    setStyle = type = pluginName = null;\n    var style = state.tokenize(stream, state);\n    if ((style || type) && style != \"comment\") {\n      curState = state;\n      while (true) {\n        var comb = state.cc.pop() || element;\n        if (comb(type || style)) break;\n      }\n    }\n    state.startOfLine = false;\n    return setStyle || style;\n  },\n  indent: function(state, textAfter) {\n    var context = state.context;\n    if (context && context.noIndent) return 0;\n    if (context && /^{\\//.test(textAfter))\n        context = context.prev;\n    while (context && !context.startOfLine)\n        context = context.prev;\n    if (context) return context.indent + indentUnit;\n    else return 0;\n  },\n  electricChars: \"/\"\n};\n});\n\nCodeMirror.defineMIME(\"text/tiki\", \"tiki\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/toml/toml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"toml\", function () {\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: \"\",\n        lhs: true,\n        inArray: 0\n      };\n    },\n    token: function (stream, state) {\n      //check for state changes\n      if (!state.inString && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (stream.sol() && state.inArray === 0) {\n        state.lhs = true;\n      }\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inArray && stream.peek() === ']') {\n        stream.next();\n        state.inArray--;\n        return 'bracket';\n      } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) {\n        stream.next();//skip closing ]\n        // array of objects has an extra open & close []\n        if (stream.peek() === ']') stream.next();\n        return \"atom\";\n      } else if (stream.peek() === \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (stream.eatSpace()) {\n        return null;\n      } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) {\n        return \"property\";\n      } else if (state.lhs && stream.peek() === \"=\") {\n        stream.next();\n        state.lhs = false;\n        return null;\n      } else if (!state.lhs && stream.match(/^\\d\\d\\d\\d[\\d\\-\\:\\.T]*Z/)) {\n        return 'atom'; //date\n      } else if (!state.lhs && (stream.match('true') || stream.match('false'))) {\n        return 'atom';\n      } else if (!state.lhs && stream.peek() === '[') {\n        state.inArray++;\n        stream.next();\n        return 'bracket';\n      } else if (!state.lhs && stream.match(/^\\-?\\d+(?:\\.\\d+)?/)) {\n        return 'number';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME('text/x-toml', 'toml');\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/tornado/tornado.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"tornado:inner\", function() {\n    var keywords = [\"and\",\"as\",\"assert\",\"autoescape\",\"block\",\"break\",\"class\",\"comment\",\"context\",\n                    \"continue\",\"datetime\",\"def\",\"del\",\"elif\",\"else\",\"end\",\"escape\",\"except\",\n                    \"exec\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\n                    \"include\",\"is\",\"json_encode\",\"lambda\",\"length\",\"linkify\",\"load\",\"module\",\n                    \"none\",\"not\",\"or\",\"pass\",\"print\",\"put\",\"raise\",\"raw\",\"return\",\"self\",\"set\",\n                    \"squeeze\",\"super\",\"true\",\"try\",\"url_escape\",\"while\",\"with\",\"without\",\"xhtml_escape\",\"yield\"];\n    keywords = new RegExp(\"^((\" + keywords.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      stream.eatWhile(/[^\\{]/);\n      var ch = stream.next();\n      if (ch == \"{\") {\n        if (ch = stream.eat(/\\{|%|#/)) {\n          state.tokenize = inTag(ch);\n          return \"tag\";\n        }\n      }\n    }\n    function inTag (close) {\n      if (close == \"{\") {\n        close = \"}\";\n      }\n      return function (stream, state) {\n        var ch = stream.next();\n        if ((ch == close) && stream.eat(\"}\")) {\n          state.tokenize = tokenBase;\n          return \"tag\";\n        }\n        if (stream.match(keywords)) {\n          return \"keyword\";\n        }\n        return close == \"#\" ? \"comment\" : \"string\";\n      };\n    }\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"tornado\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var tornadoInner = CodeMirror.getMode(config, \"tornado:inner\");\n    return CodeMirror.overlayMode(htmlBase, tornadoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-tornado\", \"tornado\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/troff/troff.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod);\n  else\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('troff', function() {\n\n  var words = {};\n\n  function tokenBase(stream) {\n    if (stream.eatSpace()) return null;\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      if (stream.match('fB') || stream.match('fR') || stream.match('fI') ||\n          stream.match('u')  || stream.match('d')  ||\n          stream.match('%')  || stream.match('&')) {\n        return 'string';\n      }\n      if (stream.match('m[')) {\n        stream.skipTo(']');\n        stream.next();\n        return 'string';\n      }\n      if (stream.match('s+') || stream.match('s-')) {\n        stream.eatWhile(/[\\d-]/);\n        return 'string';\n      }\n      if (stream.match('\\(') || stream.match('*\\(')) {\n        stream.eatWhile(/[\\w-]/);\n        return 'string';\n      }\n      return 'string';\n    }\n    if (sol && (ch === '.' || ch === '\\'')) {\n      if (stream.eat('\\\\') && stream.eat('\\\"')) {\n        stream.skipToEnd();\n        return 'comment';\n      }\n    }\n    if (sol && ch === '.') {\n      if (stream.match('B ') || stream.match('I ') || stream.match('R ')) {\n        return 'attribute';\n      }\n      if (stream.match('TH ') || stream.match('SH ') || stream.match('SS ') || stream.match('HP ')) {\n        stream.skipToEnd();\n        return 'quote';\n      }\n      if ((stream.match(/[A-Z]/) && stream.match(/[A-Z]/)) || (stream.match(/[a-z]/) && stream.match(/[a-z]/))) {\n        return 'attribute';\n      }\n    }\n    stream.eatWhile(/[\\w-]/);\n    var cur = stream.current();\n    return words.hasOwnProperty(cur) ? words[cur] : null;\n  }\n\n  function tokenize(stream, state) {\n    return (state.tokens[0] || tokenBase) (stream, state);\n  };\n\n  return {\n    startState: function() {return {tokens:[]};},\n    token: function(stream, state) {\n      return tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME('text/troff', 'troff');\nCodeMirror.defineMIME('text/x-troff', 'troff');\nCodeMirror.defineMIME('application/x-troff', 'troff');\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ttcn/ttcn.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"ttcn\", function(config, parserConfig) {\n    var indentUnit = config.indentUnit,\n        keywords = parserConfig.keywords || {},\n        builtin = parserConfig.builtin || {},\n        timerOps = parserConfig.timerOps || {},\n        portOps  = parserConfig.portOps || {},\n        configOps = parserConfig.configOps || {},\n        verdictOps = parserConfig.verdictOps || {},\n        sutOps = parserConfig.sutOps || {},\n        functionOps = parserConfig.functionOps || {},\n\n        verdictConsts = parserConfig.verdictConsts || {},\n        booleanConsts = parserConfig.booleanConsts || {},\n        otherConsts   = parserConfig.otherConsts || {},\n\n        types = parserConfig.types || {},\n        visibilityModifiers = parserConfig.visibilityModifiers || {},\n        templateMatch = parserConfig.templateMatch || {},\n        multiLineStrings = parserConfig.multiLineStrings,\n        indentStatements = parserConfig.indentStatements !== false;\n    var isOperatorChar = /[+\\-*&@=<>!\\/]/;\n    var curPunc;\n\n    function tokenBase(stream, state) {\n      var ch = stream.next();\n\n      if (ch == '\"' || ch == \"'\") {\n        state.tokenize = tokenString(ch);\n        return state.tokenize(stream, state);\n      }\n      if (/[\\[\\]{}\\(\\),;\\\\:\\?\\.]/.test(ch)) {\n        curPunc = ch;\n        return \"punctuation\";\n      }\n      if (ch == \"#\"){\n        stream.skipToEnd();\n        return \"atom preprocessor\";\n      }\n      if (ch == \"%\"){\n        stream.eatWhile(/\\b/);\n        return \"atom ttcn3Macros\";\n      }\n      if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (ch == \"/\") {\n        if (stream.eat(\"*\")) {\n          state.tokenize = tokenComment;\n          return tokenComment(stream, state);\n        }\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\n      }\n      if (isOperatorChar.test(ch)) {\n        if(ch == \"@\"){\n          if(stream.match(\"try\") || stream.match(\"catch\")\n              || stream.match(\"lazy\")){\n            return \"keyword\";\n          }\n        }\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n      stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n      var cur = stream.current();\n\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      if (builtin.propertyIsEnumerable(cur)) return \"builtin\";\n\n      if (timerOps.propertyIsEnumerable(cur)) return \"def timerOps\";\n      if (configOps.propertyIsEnumerable(cur)) return \"def configOps\";\n      if (verdictOps.propertyIsEnumerable(cur)) return \"def verdictOps\";\n      if (portOps.propertyIsEnumerable(cur)) return \"def portOps\";\n      if (sutOps.propertyIsEnumerable(cur)) return \"def sutOps\";\n      if (functionOps.propertyIsEnumerable(cur)) return \"def functionOps\";\n\n      if (verdictConsts.propertyIsEnumerable(cur)) return \"string verdictConsts\";\n      if (booleanConsts.propertyIsEnumerable(cur)) return \"string booleanConsts\";\n      if (otherConsts.propertyIsEnumerable(cur)) return \"string otherConsts\";\n\n      if (types.propertyIsEnumerable(cur)) return \"builtin types\";\n      if (visibilityModifiers.propertyIsEnumerable(cur))\n        return \"builtin visibilityModifiers\";\n      if (templateMatch.propertyIsEnumerable(cur)) return \"atom templateMatch\";\n\n      return \"variable\";\n    }\n\n    function tokenString(quote) {\n      return function(stream, state) {\n        var escaped = false, next, end = false;\n        while ((next = stream.next()) != null) {\n          if (next == quote && !escaped){\n            var afterQuote = stream.peek();\n            //look if the character after the quote is like the B in '10100010'B\n            if (afterQuote){\n              afterQuote = afterQuote.toLowerCase();\n              if(afterQuote == \"b\" || afterQuote == \"h\" || afterQuote == \"o\")\n                stream.next();\n            }\n            end = true; break;\n          }\n          escaped = !escaped && next == \"\\\\\";\n        }\n        if (end || !(escaped || multiLineStrings))\n          state.tokenize = null;\n        return \"string\";\n      };\n    }\n\n    function tokenComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (ch == \"/\" && maybeEnd) {\n          state.tokenize = null;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n\n    function Context(indented, column, type, align, prev) {\n      this.indented = indented;\n      this.column = column;\n      this.type = type;\n      this.align = align;\n      this.prev = prev;\n    }\n\n    function pushContext(state, col, type) {\n      var indent = state.indented;\n      if (state.context && state.context.type == \"statement\")\n        indent = state.context.indented;\n      return state.context = new Context(indent, col, type, null, state.context);\n    }\n\n    function popContext(state) {\n      var t = state.context.type;\n      if (t == \")\" || t == \"]\" || t == \"}\")\n        state.indented = state.context.indented;\n      return state.context = state.context.prev;\n    }\n\n    //Interface\n    return {\n      startState: function(basecolumn) {\n        return {\n          tokenize: null,\n          context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n          indented: 0,\n          startOfLine: true\n        };\n      },\n\n      token: function(stream, state) {\n        var ctx = state.context;\n        if (stream.sol()) {\n          if (ctx.align == null) ctx.align = false;\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        curPunc = null;\n        var style = (state.tokenize || tokenBase)(stream, state);\n        if (style == \"comment\") return style;\n        if (ctx.align == null) ctx.align = true;\n\n        if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n            && ctx.type == \"statement\"){\n          popContext(state);\n        }\n        else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n        else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n        else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n        else if (curPunc == \"}\") {\n          while (ctx.type == \"statement\") ctx = popContext(state);\n          if (ctx.type == \"}\") ctx = popContext(state);\n          while (ctx.type == \"statement\") ctx = popContext(state);\n        }\n        else if (curPunc == ctx.type) popContext(state);\n        else if (indentStatements &&\n            (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') ||\n            (ctx.type == \"statement\" && curPunc == \"newstatement\")))\n          pushContext(state, stream.column(), \"statement\");\n\n        state.startOfLine = false;\n\n        return style;\n      },\n\n      electricChars: \"{}\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\",\n      fold: \"brace\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\") mimes = [mimes];\n    var words = [];\n    function add(obj) {\n      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n        words.push(prop);\n    }\n\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.timerOps);\n    add(mode.portOps);\n\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i = 0; i < mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-ttcn\", \"text/x-ttcn3\", \"text/x-ttcnpp\"], {\n    name: \"ttcn\",\n    keywords: words(\"activate address alive all alt altstep and and4b any\" +\n    \" break case component const continue control deactivate\" +\n    \" display do else encode enumerated except exception\" +\n    \" execute extends extension external for from function\" +\n    \" goto group if import in infinity inout interleave\" +\n    \" label language length log match message mixed mod\" +\n    \" modifies module modulepar mtc noblock not not4b nowait\" +\n    \" of on optional or or4b out override param pattern port\" +\n    \" procedure record recursive rem repeat return runs select\" +\n    \" self sender set signature system template testcase to\" +\n    \" type union value valueof var variant while with xor xor4b\"),\n    builtin: words(\"bit2hex bit2int bit2oct bit2str char2int char2oct encvalue\" +\n    \" decomp decvalue float2int float2str hex2bit hex2int\" +\n    \" hex2oct hex2str int2bit int2char int2float int2hex\" +\n    \" int2oct int2str int2unichar isbound ischosen ispresent\" +\n    \" isvalue lengthof log2str oct2bit oct2char oct2hex oct2int\" +\n    \" oct2str regexp replace rnd sizeof str2bit str2float\" +\n    \" str2hex str2int str2oct substr unichar2int unichar2char\" +\n    \" enum2int\"),\n    types: words(\"anytype bitstring boolean char charstring default float\" +\n    \" hexstring integer objid octetstring universal verdicttype timer\"),\n    timerOps: words(\"read running start stop timeout\"),\n    portOps: words(\"call catch check clear getcall getreply halt raise receive\" +\n    \" reply send trigger\"),\n    configOps: words(\"create connect disconnect done kill killed map unmap\"),\n    verdictOps: words(\"getverdict setverdict\"),\n    sutOps: words(\"action\"),\n    functionOps: words(\"apply derefers refers\"),\n\n    verdictConsts: words(\"error fail inconc none pass\"),\n    booleanConsts: words(\"true false\"),\n    otherConsts: words(\"null NULL omit\"),\n\n    visibilityModifiers: words(\"private public friend\"),\n    templateMatch: words(\"complement ifpresent subset superset permutation\"),\n    multiLineStrings: true\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/ttcn-cfg/ttcn-cfg.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"ttcn-cfg\", function(config, parserConfig) {\n    var indentUnit = config.indentUnit,\n        keywords = parserConfig.keywords || {},\n        fileNCtrlMaskOptions = parserConfig.fileNCtrlMaskOptions || {},\n        externalCommands = parserConfig.externalCommands || {},\n        multiLineStrings = parserConfig.multiLineStrings,\n        indentStatements = parserConfig.indentStatements !== false;\n    var isOperatorChar = /[\\|]/;\n    var curPunc;\n\n    function tokenBase(stream, state) {\n      var ch = stream.next();\n      if (ch == '\"' || ch == \"'\") {\n        state.tokenize = tokenString(ch);\n        return state.tokenize(stream, state);\n      }\n      if (/[:=]/.test(ch)) {\n        curPunc = ch;\n        return \"punctuation\";\n      }\n      if (ch == \"#\"){\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n      if (ch == \"[\"){\n        stream.eatWhile(/[\\w_\\]]/);\n        return \"number sectionTitle\";\n      }\n\n      stream.eatWhile(/[\\w\\$_]/);\n      var cur = stream.current();\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      if (fileNCtrlMaskOptions.propertyIsEnumerable(cur))\n        return \"negative fileNCtrlMaskOptions\";\n      if (externalCommands.propertyIsEnumerable(cur)) return \"negative externalCommands\";\n\n      return \"variable\";\n    }\n\n    function tokenString(quote) {\n      return function(stream, state) {\n        var escaped = false, next, end = false;\n        while ((next = stream.next()) != null) {\n          if (next == quote && !escaped){\n            var afterNext = stream.peek();\n            //look if the character if the quote is like the B in '10100010'B\n            if (afterNext){\n              afterNext = afterNext.toLowerCase();\n              if(afterNext == \"b\" || afterNext == \"h\" || afterNext == \"o\")\n                stream.next();\n            }\n            end = true; break;\n          }\n          escaped = !escaped && next == \"\\\\\";\n        }\n        if (end || !(escaped || multiLineStrings))\n          state.tokenize = null;\n        return \"string\";\n      };\n    }\n\n    function Context(indented, column, type, align, prev) {\n      this.indented = indented;\n      this.column = column;\n      this.type = type;\n      this.align = align;\n      this.prev = prev;\n    }\n    function pushContext(state, col, type) {\n      var indent = state.indented;\n      if (state.context && state.context.type == \"statement\")\n        indent = state.context.indented;\n      return state.context = new Context(indent, col, type, null, state.context);\n    }\n    function popContext(state) {\n      var t = state.context.type;\n      if (t == \")\" || t == \"]\" || t == \"}\")\n        state.indented = state.context.indented;\n      return state.context = state.context.prev;\n    }\n\n    //Interface\n    return {\n      startState: function(basecolumn) {\n        return {\n          tokenize: null,\n          context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n          indented: 0,\n          startOfLine: true\n        };\n      },\n\n      token: function(stream, state) {\n        var ctx = state.context;\n        if (stream.sol()) {\n          if (ctx.align == null) ctx.align = false;\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        curPunc = null;\n        var style = (state.tokenize || tokenBase)(stream, state);\n        if (style == \"comment\") return style;\n        if (ctx.align == null) ctx.align = true;\n\n        if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n            && ctx.type == \"statement\"){\n          popContext(state);\n        }\n        else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n        else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n        else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n        else if (curPunc == \"}\") {\n          while (ctx.type == \"statement\") ctx = popContext(state);\n          if (ctx.type == \"}\") ctx = popContext(state);\n          while (ctx.type == \"statement\") ctx = popContext(state);\n        }\n        else if (curPunc == ctx.type) popContext(state);\n        else if (indentStatements && (((ctx.type == \"}\" || ctx.type == \"top\")\n            && curPunc != ';') || (ctx.type == \"statement\"\n            && curPunc == \"newstatement\")))\n          pushContext(state, stream.column(), \"statement\");\n        state.startOfLine = false;\n        return style;\n      },\n\n      electricChars: \"{}\",\n      lineComment: \"#\",\n      fold: \"brace\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i)\n      obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"text/x-ttcn-cfg\", {\n    name: \"ttcn-cfg\",\n    keywords: words(\"Yes No LogFile FileMask ConsoleMask AppendFile\" +\n    \" TimeStampFormat LogEventTypes SourceInfoFormat\" +\n    \" LogEntityName LogSourceInfo DiskFullAction\" +\n    \" LogFileNumber LogFileSize MatchingHints Detailed\" +\n    \" Compact SubCategories Stack Single None Seconds\" +\n    \" DateTime Time Stop Error Retry Delete TCPPort KillTimer\" +\n    \" NumHCs UnixSocketsEnabled LocalAddress\"),\n    fileNCtrlMaskOptions: words(\"TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING\" +\n    \" TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP\" +\n    \" TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION\" +\n    \" TTCN_USER TTCN_FUNCTION TTCN_STATISTICS\" +\n    \" TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG\" +\n    \" EXECUTOR ERROR WARNING PORTEVENT TIMEROP\" +\n    \" VERDICTOP DEFAULTOP TESTCASE ACTION USER\" +\n    \" FUNCTION STATISTICS PARALLEL MATCHING DEBUG\" +\n    \" LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED\" +\n    \" DEBUG_ENCDEC DEBUG_TESTPORT\" +\n    \" DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE\" +\n    \" DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT\" +\n    \" DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED\" +\n    \" EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA\" +\n    \" EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS\" +\n    \" EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED\" +\n    \" FUNCTION_RND FUNCTION_UNQUALIFIED\" +\n    \" MATCHING_DONE MATCHING_MCSUCCESS\" +\n    \" MATCHING_MCUNSUCC MATCHING_MMSUCCESS\" +\n    \" MATCHING_MMUNSUCC MATCHING_PCSUCCESS\" +\n    \" MATCHING_PCUNSUCC MATCHING_PMSUCCESS\" +\n    \" MATCHING_PMUNSUCC MATCHING_PROBLEM\" +\n    \" MATCHING_TIMEOUT MATCHING_UNQUALIFIED\" +\n    \" PARALLEL_PORTCONN PARALLEL_PORTMAP\" +\n    \" PARALLEL_PTC PARALLEL_UNQUALIFIED\" +\n    \" PORTEVENT_DUALRECV PORTEVENT_DUALSEND\" +\n    \" PORTEVENT_MCRECV PORTEVENT_MCSEND\" +\n    \" PORTEVENT_MMRECV PORTEVENT_MMSEND\" +\n    \" PORTEVENT_MQUEUE PORTEVENT_PCIN\" +\n    \" PORTEVENT_PCOUT PORTEVENT_PMIN\" +\n    \" PORTEVENT_PMOUT PORTEVENT_PQUEUE\" +\n    \" PORTEVENT_STATE PORTEVENT_UNQUALIFIED\" +\n    \" STATISTICS_UNQUALIFIED STATISTICS_VERDICT\" +\n    \" TESTCASE_FINISH TESTCASE_START\" +\n    \" TESTCASE_UNQUALIFIED TIMEROP_GUARD\" +\n    \" TIMEROP_READ TIMEROP_START TIMEROP_STOP\" +\n    \" TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED\" +\n    \" USER_UNQUALIFIED VERDICTOP_FINAL\" +\n    \" VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT\" +\n    \" VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED\"),\n    externalCommands: words(\"BeginControlPart EndControlPart BeginTestCase\" +\n    \" EndTestCase\"),\n    multiLineStrings: true\n  });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/turtle/turtle.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"turtle\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([]);\n  var keywords = wordRegexp([\"@prefix\", \"@base\", \"a\"]);\n  var operatorChars = /[*+\\-<>=&|]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return null;\n    }\n    else if (ch == \":\") {\n          return \"operator\";\n        } else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if(stream.peek() == \":\") {\n        return \"variable-3\";\n      } else {\n             var word = stream.current();\n\n             if(keywords.test(word)) {\n                        return \"meta\";\n             }\n\n             if(ch >= \"A\" && ch <= \"Z\") {\n                    return \"comment\";\n                 } else {\n                        return \"keyword\";\n                 }\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return null;\n      else if (keywords.test(word))\n        return \"meta\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) popContext(state);\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/turtle\", \"turtle\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/twig/twig.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"),  require(\"../../addon/mode/multiplex\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/multiplex\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"twig:inner\", function() {\n    var keywords = [\"and\", \"as\", \"autoescape\", \"endautoescape\", \"block\", \"do\", \"endblock\", \"else\", \"elseif\", \"extends\", \"for\", \"endfor\", \"embed\", \"endembed\", \"filter\", \"endfilter\", \"flush\", \"from\", \"if\", \"endif\", \"in\", \"is\", \"include\", \"import\", \"not\", \"or\", \"set\", \"spaceless\", \"endspaceless\", \"with\", \"endwith\", \"trans\", \"endtrans\", \"blocktrans\", \"endblocktrans\", \"macro\", \"endmacro\", \"use\", \"verbatim\", \"endverbatim\"],\n        operator = /^[+\\-*&%=<>!?|~^]/,\n        sign = /^[:\\[\\(\\{]/,\n        atom = [\"true\", \"false\", \"null\", \"empty\", \"defined\", \"divisibleby\", \"divisible by\", \"even\", \"odd\", \"iterable\", \"sameas\", \"same as\"],\n        number = /^(\\d[+\\-\\*\\/])?\\d+(\\.\\d+)?/;\n\n    keywords = new RegExp(\"((\" + keywords.join(\")|(\") + \"))\\\\b\");\n    atom = new RegExp(\"((\" + atom.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      var ch = stream.peek();\n\n      //Comment\n      if (state.incomment) {\n        if (!stream.skipTo(\"#}\")) {\n          stream.skipToEnd();\n        } else {\n          stream.eatWhile(/\\#|}/);\n          state.incomment = false;\n        }\n        return \"comment\";\n      //Tag\n      } else if (state.intag) {\n        //After operator\n        if (state.operator) {\n          state.operator = false;\n          if (stream.match(atom)) {\n            return \"atom\";\n          }\n          if (stream.match(number)) {\n            return \"number\";\n          }\n        }\n        //After sign\n        if (state.sign) {\n          state.sign = false;\n          if (stream.match(atom)) {\n            return \"atom\";\n          }\n          if (stream.match(number)) {\n            return \"number\";\n          }\n        }\n\n        if (state.instring) {\n          if (ch == state.instring) {\n            state.instring = false;\n          }\n          stream.next();\n          return \"string\";\n        } else if (ch == \"'\" || ch == '\"') {\n          state.instring = ch;\n          stream.next();\n          return \"string\";\n        } else if (stream.match(state.intag + \"}\") || stream.eat(\"-\") && stream.match(state.intag + \"}\")) {\n          state.intag = false;\n          return \"tag\";\n        } else if (stream.match(operator)) {\n          state.operator = true;\n          return \"operator\";\n        } else if (stream.match(sign)) {\n          state.sign = true;\n        } else {\n          if (stream.eat(\" \") || stream.sol()) {\n            if (stream.match(keywords)) {\n              return \"keyword\";\n            }\n            if (stream.match(atom)) {\n              return \"atom\";\n            }\n            if (stream.match(number)) {\n              return \"number\";\n            }\n            if (stream.sol()) {\n              stream.next();\n            }\n          } else {\n            stream.next();\n          }\n\n        }\n        return \"variable\";\n      } else if (stream.eat(\"{\")) {\n        if (stream.eat(\"#\")) {\n          state.incomment = true;\n          if (!stream.skipTo(\"#}\")) {\n            stream.skipToEnd();\n          } else {\n            stream.eatWhile(/\\#|}/);\n            state.incomment = false;\n          }\n          return \"comment\";\n        //Open tag\n        } else if (ch = stream.eat(/\\{|%/)) {\n          //Cache close tag\n          state.intag = ch;\n          if (ch == \"{\") {\n            state.intag = \"}\";\n          }\n          stream.eat(\"-\");\n          return \"tag\";\n        }\n      }\n      stream.next();\n    };\n\n    return {\n      startState: function () {\n        return {};\n      },\n      token: function (stream, state) {\n        return tokenBase(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"twig\", function(config, parserConfig) {\n    var twigInner = CodeMirror.getMode(config, \"twig:inner\");\n    if (!parserConfig || !parserConfig.base) return twigInner;\n    return CodeMirror.multiplexingMode(\n      CodeMirror.getMode(config, parserConfig.base), {\n        open: /\\{[{#%]/, close: /[}#%]\\}/, mode: twigInner, parseDelimiters: true\n      }\n    );\n  });\n  CodeMirror.defineMIME(\"text/x-twig\", \"twig\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/vb/vb.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vb\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\n    var singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\n    var doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n    var doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n    var tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n    var identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try', 'structure', 'synclock', 'using', 'with'];\n    var middleKeywords = ['else','elseif','case', 'catch', 'finally'];\n    var endKeywords = ['next','loop'];\n\n    var operatorKeywords = ['and', \"andalso\", 'or', 'orelse', 'xor', 'in', 'not', 'is', 'isnot', 'like'];\n    var wordOperators = wordRegexp(operatorKeywords);\n\n    var commonKeywords = [\"#const\", \"#else\", \"#elseif\", \"#end\", \"#if\", \"#region\", \"addhandler\", \"addressof\", \"alias\", \"as\", \"byref\", \"byval\", \"cbool\", \"cbyte\", \"cchar\", \"cdate\", \"cdbl\", \"cdec\", \"cint\", \"clng\", \"cobj\", \"compare\", \"const\", \"continue\", \"csbyte\", \"cshort\", \"csng\", \"cstr\", \"cuint\", \"culng\", \"cushort\", \"declare\", \"default\", \"delegate\", \"dim\", \"directcast\", \"each\", \"erase\", \"error\", \"event\", \"exit\", \"explicit\", \"false\", \"for\", \"friend\", \"gettype\", \"goto\", \"handles\", \"implements\", \"imports\", \"infer\", \"inherits\", \"interface\", \"isfalse\", \"istrue\", \"lib\", \"me\", \"mod\", \"mustinherit\", \"mustoverride\", \"my\", \"mybase\", \"myclass\", \"namespace\", \"narrowing\", \"new\", \"nothing\", \"notinheritable\", \"notoverridable\", \"of\", \"off\", \"on\", \"operator\", \"option\", \"optional\", \"out\", \"overloads\", \"overridable\", \"overrides\", \"paramarray\", \"partial\", \"private\", \"protected\", \"public\", \"raiseevent\", \"readonly\", \"redim\", \"removehandler\", \"resume\", \"return\", \"shadows\", \"shared\", \"static\", \"step\", \"stop\", \"strict\", \"then\", \"throw\", \"to\", \"true\", \"trycast\", \"typeof\", \"until\", \"until\", \"when\", \"widening\", \"withevents\", \"writeonly\"];\n\n    var commontypes = ['object', 'boolean', 'char', 'string', 'byte', 'sbyte', 'short', 'ushort', 'int16', 'uint16', 'integer', 'uinteger', 'int32', 'uint32', 'long', 'ulong', 'int64', 'uint64', 'decimal', 'single', 'double', 'float', 'date', 'datetime', 'intptr', 'uintptr'];\n\n    var keywords = wordRegexp(commonKeywords);\n    var types = wordRegexp(commontypes);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n\n    var indentInfo = null;\n\n    CodeMirror.registerHelper(\"hintWords\", \"vb\", openingKeywords.concat(middleKeywords).concat(endKeywords)\n                                .concat(operatorKeywords).concat(commonKeywords).concat(commontypes));\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.a-f]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+F?/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*F?/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+F?/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            dedent(stream,state);\n            return 'keyword';\n        }\n\n        if (stream.match(types)) {\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n            if (style === 'variable') {\n                return 'variable';\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n\n        var delimiter_index = '[({'.indexOf(current);\n        if (delimiter_index !== -1) {\n            indent(stream, state );\n        }\n        if (indentInfo === 'dedent') {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n        delimiter_index = '])}'.indexOf(current);\n        if (delimiter_index !== -1) {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        },\n\n        lineComment: \"'\"\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/x-vb\", \"vb\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/vbscript/vbscript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\nFor extra ASP classic objects, initialize CodeMirror instance with this option:\n    isASP: true\n\nE.G.:\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        isASP: true\n      });\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vbscript\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&\\\\\\\\\\\\^<>=]\");\n    var doubleOperators = new RegExp(\"^((<>)|(<=)|(>=))\");\n    var singleDelimiters = new RegExp('^[\\\\.,]');\n    var brackets = new RegExp('^[\\\\(\\\\)]');\n    var identifiers = new RegExp(\"^[A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];\n    var middleKeywords = ['else','elseif','case'];\n    var endKeywords = ['next','loop','wend'];\n\n    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);\n    var commonkeywords = ['dim', 'redim', 'then',  'until', 'randomize',\n                          'byval','byref','new','property', 'exit', 'in',\n                          'const','private', 'public',\n                          'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx\n    var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx\n    var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',\n                        'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',\n                        'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',\n                        'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',\n                        'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',\n                        'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx\n    var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',\n                         'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',\n                         'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',\n                         'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',\n                         'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',\n                         'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',\n                         'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx\n    var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];\n    var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];\n    var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];\n\n    var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];\n    var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response\n                              'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request\n                              'contents', 'staticobjects', //application\n                              'codepage', 'lcid', 'sessionid', 'timeout', //session\n                              'scripttimeout']; //server\n    var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response\n                           'binaryread', //request\n                           'remove', 'removeall', 'lock', 'unlock', //application\n                           'abandon', //session\n                           'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server\n\n    var knownWords = knownMethods.concat(knownProperties);\n\n    builtinObjsWords = builtinObjsWords.concat(builtinConsts);\n\n    if (conf.isASP){\n        builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);\n        knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);\n    };\n\n    var keywords = wordRegexp(commonkeywords);\n    var atoms = wordRegexp(atomWords);\n    var builtinFuncs = wordRegexp(builtinFuncsWords);\n    var builtinObjs = wordRegexp(builtinObjsWords);\n    var known = wordRegexp(knownWords);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n    var noIndentWords = wordRegexp(['on error resume next', 'exit']);\n    var comment = wordRegexp(['rem']);\n\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return 'space';\n            //return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n        if (stream.match(comment)){\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\\.]+[a-z_]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n\n        if (stream.match(brackets)) {\n            return \"bracket\";\n        }\n\n        if (stream.match(noIndentWords)) {\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            if (! state.doInCurrentLine)\n              dedent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(atoms)) {\n            return 'atom';\n        }\n\n        if (stream.match(known)) {\n            return 'variable-2';\n        }\n\n        if (stream.match(builtinFuncs)) {\n            return 'builtin';\n        }\n\n        if (stream.match(builtinObjs)){\n            return 'variable-2';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n\n            current = stream.current();\n            if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {\n                if (style === 'builtin' || style === 'keyword') style='variable';\n                if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';\n\n                return style;\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false,\n              ignoreKeyword: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n            if (style==='space') style=null;\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        }\n\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/vbscript\", \"vbscript\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/velocity/velocity.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"velocity\", function() {\n    function parseWords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = parseWords(\"#end #else #break #stop #[[ #]] \" +\n                              \"#{end} #{else} #{break} #{stop}\");\n    var functions = parseWords(\"#if #elseif #foreach #set #include #parse #macro #define #evaluate \" +\n                               \"#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}\");\n    var specials = parseWords(\"$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent\");\n    var isOperatorChar = /[+\\-*&%=<>!?:\\/|]/;\n\n    function chain(stream, state, f) {\n        state.tokenize = f;\n        return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n        var beforeParams = state.beforeParams;\n        state.beforeParams = false;\n        var ch = stream.next();\n        // start of unparsed string?\n        if ((ch == \"'\") && !state.inString && state.inParams) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenString(ch));\n        }\n        // start of parsed string?\n        else if ((ch == '\"')) {\n            state.lastTokenWasBuiltin = false;\n            if (state.inString) {\n                state.inString = false;\n                return \"string\";\n            }\n            else if (state.inParams)\n                return chain(stream, state, tokenString(ch));\n        }\n        // is it one of the special signs []{}().,;? Separator?\n        else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n            if (ch == \"(\" && beforeParams)\n                state.inParams = true;\n            else if (ch == \")\") {\n                state.inParams = false;\n                state.lastTokenWasBuiltin = true;\n            }\n            return null;\n        }\n        // start of a number value?\n        else if (/\\d/.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(/[\\w\\.]/);\n            return \"number\";\n        }\n        // multi line comment?\n        else if (ch == \"#\" && stream.eat(\"*\")) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenComment);\n        }\n        // unparsed content?\n        else if (ch == \"#\" && stream.match(/ *\\[ *\\[/)) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenUnparsed);\n        }\n        // single line comment?\n        else if (ch == \"#\" && stream.eat(\"#\")) {\n            state.lastTokenWasBuiltin = false;\n            stream.skipToEnd();\n            return \"comment\";\n        }\n        // variable?\n        else if (ch == \"$\") {\n            stream.eatWhile(/[\\w\\d\\$_\\.{}-]/);\n            // is it one of the specials?\n            if (specials && specials.propertyIsEnumerable(stream.current())) {\n                return \"keyword\";\n            }\n            else {\n                state.lastTokenWasBuiltin = true;\n                state.beforeParams = true;\n                return \"builtin\";\n            }\n        }\n        // is it a operator?\n        else if (isOperatorChar.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(isOperatorChar);\n            return \"operator\";\n        }\n        else {\n            // get the whole word\n            stream.eatWhile(/[\\w\\$_{}@]/);\n            var word = stream.current();\n            // is it one of the listed keywords?\n            if (keywords && keywords.propertyIsEnumerable(word))\n                return \"keyword\";\n            // is it one of the listed functions?\n            if (functions && functions.propertyIsEnumerable(word) ||\n                    (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()==\"(\") &&\n                     !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {\n                state.beforeParams = true;\n                state.lastTokenWasBuiltin = false;\n                return \"keyword\";\n            }\n            if (state.inString) {\n                state.lastTokenWasBuiltin = false;\n                return \"string\";\n            }\n            if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)==\".\" && state.lastTokenWasBuiltin)\n                return \"builtin\";\n            // default: just a \"word\"\n            state.lastTokenWasBuiltin = false;\n            return null;\n        }\n    }\n\n    function tokenString(quote) {\n        return function(stream, state) {\n            var escaped = false, next, end = false;\n            while ((next = stream.next()) != null) {\n                if ((next == quote) && !escaped) {\n                    end = true;\n                    break;\n                }\n                if (quote=='\"' && stream.peek() == '$' && !escaped) {\n                    state.inString = true;\n                    end = true;\n                    break;\n                }\n                escaped = !escaped && next == \"\\\\\";\n            }\n            if (end) state.tokenize = tokenBase;\n            return \"string\";\n        };\n    }\n\n    function tokenComment(stream, state) {\n        var maybeEnd = false, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            maybeEnd = (ch == \"*\");\n        }\n        return \"comment\";\n    }\n\n    function tokenUnparsed(stream, state) {\n        var maybeEnd = 0, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd == 2) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            if (ch == \"]\")\n                maybeEnd++;\n            else if (ch != \" \")\n                maybeEnd = 0;\n        }\n        return \"meta\";\n    }\n    // Interface\n\n    return {\n        startState: function() {\n            return {\n                tokenize: tokenBase,\n                beforeParams: false,\n                inParams: false,\n                inString: false,\n                lastTokenWasBuiltin: false\n            };\n        },\n\n        token: function(stream, state) {\n            if (stream.eatSpace()) return null;\n            return state.tokenize(stream, state);\n        },\n        blockCommentStart: \"#*\",\n        blockCommentEnd: \"*#\",\n        lineComment: \"##\",\n        fold: \"velocity\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/velocity\", \"velocity\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/verilog/verilog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"verilog\", function(config, parserConfig) {\n\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      // compilerDirectivesUseRegularIndentation - If set, Compiler directive\n      // indentation follows the same rules as everything else. Otherwise if\n      // false, compiler directives will track their own indentation.\n      // For example, `ifdef nested inside another `ifndef will be indented,\n      // but a `ifdef inside a function block may not be indented.\n      compilerDirectivesUseRegularIndentation = parserConfig.compilerDirectivesUseRegularIndentation,\n      noIndentKeywords = parserConfig.noIndentKeywords || [],\n      multiLineStrings = parserConfig.multiLineStrings,\n      hooks = parserConfig.hooks || {};\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  /**\n   * Keywords from IEEE 1800-2012\n   */\n  var keywords = words(\n    \"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind \" +\n    \"bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config \" +\n    \"const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable \" +\n    \"dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup \" +\n    \"endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask \" +\n    \"enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin \" +\n    \"function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import \" +\n    \"incdir include initial inout input inside instance int integer interconnect interface intersect join join_any \" +\n    \"join_none large let liblist library local localparam logic longint macromodule matches medium modport module \" +\n    \"nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed \" +\n    \"parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup \" +\n    \"pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg \" +\n    \"reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime \" +\n    \"s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify \" +\n    \"specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on \" +\n    \"table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior \" +\n    \"trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void \" +\n    \"wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor\");\n\n  /** Operators from IEEE 1800-2012\n     unary_operator ::=\n       + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_operator ::=\n       + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **\n       | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<\n       | -> | <->\n     inc_or_dec_operator ::= ++ | --\n     unary_module_path_operator ::=\n       ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_module_path_operator ::=\n       == | != | && | || | & | | | ^ | ^~ | ~^\n  */\n  var isOperatorChar = /[\\+\\-\\*\\/!~&|^%=?:<>]/;\n  var isBracketChar = /[\\[\\]{}()]/;\n\n  var unsignedNumber = /\\d[0-9_]*/;\n  var decimalLiteral = /\\d*\\s*'s?d\\s*\\d[0-9_]*/i;\n  var binaryLiteral = /\\d*\\s*'s?b\\s*[xz01][xz01_]*/i;\n  var octLiteral = /\\d*\\s*'s?o\\s*[xz0-7][xz0-7_]*/i;\n  var hexLiteral = /\\d*\\s*'s?h\\s*[0-9a-fxz?][0-9a-fxz?_]*/i;\n  var realLiteral = /(\\d[\\d_]*(\\.\\d[\\d_]*)?E-?[\\d_]+)|(\\d[\\d_]*\\.\\d[\\d_]*)/i;\n\n  var closingBracketOrWord = /^((`?\\w+)|[)}\\]])/;\n  var closingBracket = /[)}\\]]/;\n  var compilerDirectiveRegex      = new RegExp(\n    \"^(`(?:ifdef|ifndef|elsif|else|endif|undef|undefineall|define|include|begin_keywords|celldefine|default|\" +\n    \"nettype|end_keywords|endcelldefine|line|nounconnected_drive|pragma|resetall|timescale|unconnected_drive))\\\\b\");\n  var compilerDirectiveBeginRegex = /^(`(?:ifdef|ifndef|elsif|else))\\b/;\n  var compilerDirectiveEndRegex   = /^(`(?:elsif|else|endif))\\b/;\n\n  var curPunc;\n  var curKeyword;\n\n  // Block openings which are closed by a matching keyword in the form of (\"end\" + keyword)\n  // E.g. \"task\" => \"endtask\"\n  var blockKeywords = words(\n    \"case checker class clocking config function generate interface module package \" +\n    \"primitive program property specify sequence table task\"\n  );\n\n  // Opening/closing pairs\n  var openClose = {};\n  for (var keyword in blockKeywords) {\n    openClose[keyword] = \"end\" + keyword;\n  }\n  openClose[\"begin\"] = \"end\";\n  openClose[\"casex\"] = \"endcase\";\n  openClose[\"casez\"] = \"endcase\";\n  openClose[\"do\"   ] = \"while\";\n  openClose[\"fork\" ] = \"join;join_any;join_none\";\n  openClose[\"covergroup\"] = \"endgroup\";\n  openClose[\"macro_begin\"] = \"macro_end\";\n\n  for (var i in noIndentKeywords) {\n    var keyword = noIndentKeywords[i];\n    if (openClose[keyword]) {\n      openClose[keyword] = undefined;\n    }\n  }\n\n  // Keywords which open statements that are ended with a semi-colon\n  var statementKeywords = words(\"always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while extern typedef\");\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek(), style;\n    if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;\n    if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)\n      return style;\n\n    if (/[,;:\\.]/.test(ch)) {\n      curPunc = stream.next();\n      return null;\n    }\n    if (isBracketChar.test(ch)) {\n      curPunc = stream.next();\n      return \"bracket\";\n    }\n    // Macros (tick-defines)\n    if (ch == '`') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        var cur = stream.current();\n        curKeyword = cur;\n        // Macros that end in _begin, are start of block and end with _end\n        if (cur.startsWith(\"`uvm_\") && cur.endsWith(\"_begin\")) {\n          var keywordClose = curKeyword.substr(0,curKeyword.length - 5) + \"end\";\n          openClose[cur] = keywordClose;\n          curPunc = \"newblock\";\n        } else {\n          stream.eatSpace();\n          if (stream.peek() == '(') {\n            // Check if this is a block\n            curPunc = \"newmacro\";\n          }\n          var withSpace = stream.current();\n          // Move the stream back before the spaces\n          stream.backUp(withSpace.length - cur.length);\n        }\n        return \"def\";\n      } else {\n        return null;\n      }\n    }\n    // System calls\n    if (ch == '$') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        return \"meta\";\n      } else {\n        return null;\n      }\n    }\n    // Time literals\n    if (ch == '#') {\n      stream.next();\n      stream.eatWhile(/[\\d_.]/);\n      return \"def\";\n    }\n    // Event\n    if (ch == '@') {\n      stream.next();\n      stream.eatWhile(/[@]/);\n      return \"def\";\n    }\n    // Strings\n    if (ch == '\"') {\n      stream.next();\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    // Comments\n    if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      stream.backUp(1);\n    }\n\n    // Numeric literals\n    if (stream.match(realLiteral) ||\n        stream.match(decimalLiteral) ||\n        stream.match(binaryLiteral) ||\n        stream.match(octLiteral) ||\n        stream.match(hexLiteral) ||\n        stream.match(unsignedNumber) ||\n        stream.match(realLiteral)) {\n      return \"number\";\n    }\n\n    // Operators\n    if (stream.eatWhile(isOperatorChar)) {\n      curPunc = stream.current();\n      return \"meta\";\n    }\n\n    // Keywords / plain variables\n    if (stream.eatWhile(/[\\w\\$_]/)) {\n      var cur = stream.current();\n      if (keywords[cur]) {\n        if (openClose[cur]) {\n          curPunc = \"newblock\";\n          if (cur === \"fork\") {\n            // Fork can be a statement instead of block in cases of:\n            // \"disable fork;\" and \"wait fork;\" (trailing semicolon)\n            stream.eatSpace()\n            if (stream.peek() == ';') {\n              curPunc = \"newstatement\";\n            }\n            stream.backUp(stream.current().length - cur.length);\n          }\n        }\n        if (statementKeywords[cur]) {\n          curPunc = \"newstatement\";\n        }\n        curKeyword = cur;\n        return \"keyword\";\n      }\n      return \"variable\";\n    }\n\n    stream.next();\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, scopekind, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.scopekind = scopekind;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type, scopekind) {\n    var indent = state.indented;\n    var c = new Context(indent, col, type, scopekind ? scopekind : \"\", null, state.context);\n    return state.context = c;\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\") {\n      state.indented = state.context.indented;\n    }\n    return state.context = state.context.prev;\n  }\n\n  function isClosing(text, contextClosing) {\n    if (text == contextClosing) {\n      return true;\n    } else {\n      // contextClosing may be multiple keywords separated by ;\n      var closingKeywords = contextClosing.split(\";\");\n      for (var i in closingKeywords) {\n        if (text == closingKeywords[i]) {\n          return true;\n        }\n      }\n      return false;\n    }\n  }\n\n  function isInsideScopeKind(ctx, scopekind) {\n    if (ctx == null) {\n      return false;\n    }\n    if (ctx.scopekind === scopekind) {\n      return true;\n    }\n    return isInsideScopeKind(ctx.prev, scopekind);\n  }\n\n  function buildElectricInputRegEx() {\n    // Reindentation should occur on any bracket char: {}()[]\n    // or on a match of any of the block closing keywords, at\n    // the end of a line\n    var allClosings = [];\n    for (var i in openClose) {\n      if (openClose[i]) {\n        var closings = openClose[i].split(\";\");\n        for (var j in closings) {\n          allClosings.push(closings[j]);\n        }\n      }\n    }\n    var re = new RegExp(\"[{}()\\\\[\\\\]]|(\" + allClosings.join(\"|\") + \")$\");\n    return re;\n  }\n\n  // Interface\n  return {\n\n    // Regex to force current line to reindent\n    electricInput: buildElectricInputRegEx(),\n\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", \"top\", false),\n        indented: 0,\n        compilerDirectiveIndented: 0,\n        startOfLine: true\n      };\n      if (hooks.startState) hooks.startState(state);\n      return state;\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (hooks.token) {\n        // Call hook, with an optional return value of a style to override verilog styling.\n        var style = hooks.token(stream, state);\n        if (style !== undefined) {\n          return style;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      curKeyword = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\" || style == \"variable\") {\n        if (((curPunc === \"=\") || (curPunc === \"<=\")) && !isInsideScopeKind(ctx, \"assignment\")) {\n          // '<=' could be nonblocking assignment or lessthan-equals (which shouldn't cause indent)\n          //      Search through the context to see if we are already in an assignment.\n          // '=' could be inside port declaration with comma or ')' afterward, or inside for(;;) block.\n          pushContext(state, stream.column() + curPunc.length, \"assignment\", \"assignment\");\n          if (ctx.align == null) ctx.align = true;\n        }\n        return style;\n      }\n      if (ctx.align == null) ctx.align = true;\n\n      var isClosingAssignment = ctx.type == \"assignment\" &&\n        closingBracket.test(curPunc) && ctx.prev && ctx.prev.type === curPunc;\n      if (curPunc == ctx.type || isClosingAssignment) {\n        if (isClosingAssignment) {\n          ctx = popContext(state);\n        }\n        ctx = popContext(state);\n        if (curPunc == \")\") {\n          // Handle closing macros, assuming they could have a semicolon or begin/end block inside.\n          if (ctx && (ctx.type === \"macro\")) {\n            ctx = popContext(state);\n            while (ctx && (ctx.type == \"statement\" || ctx.type == \"assignment\")) ctx = popContext(state);\n          }\n        } else if (curPunc == \"}\") {\n          // Handle closing statements like constraint block: \"foreach () {}\" which\n          // do not have semicolon at end.\n          if (ctx && (ctx.type === \"statement\")) {\n            while (ctx && (ctx.type == \"statement\")) ctx = popContext(state);\n          }\n        }\n      } else if (((curPunc == \";\" || curPunc == \",\") && (ctx.type == \"statement\" || ctx.type == \"assignment\")) ||\n               (ctx.type && isClosing(curKeyword, ctx.type))) {\n        ctx = popContext(state);\n        while (ctx && (ctx.type == \"statement\" || ctx.type == \"assignment\")) ctx = popContext(state);\n      } else if (curPunc == \"{\") {\n        pushContext(state, stream.column(), \"}\");\n      } else if (curPunc == \"[\") {\n        pushContext(state, stream.column(), \"]\");\n      } else if (curPunc == \"(\") {\n        pushContext(state, stream.column(), \")\");\n      } else if (ctx && ctx.type == \"endcase\" && curPunc == \":\") {\n        pushContext(state, stream.column(), \"statement\", \"case\");\n      } else if (curPunc == \"newstatement\") {\n        pushContext(state, stream.column(), \"statement\", curKeyword);\n      } else if (curPunc == \"newblock\") {\n        if (curKeyword == \"function\" && ctx && (ctx.type == \"statement\" || ctx.type == \"endgroup\")) {\n          // The 'function' keyword can appear in some other contexts where it actually does not\n          // indicate a function (import/export DPI and covergroup definitions).\n          // Do nothing in this case\n        } else if (curKeyword == \"task\" && ctx && ctx.type == \"statement\") {\n          // Same thing for task\n        } else if (curKeyword == \"class\" && ctx && ctx.type == \"statement\") {\n          // Same thing for class (e.g. typedef)\n        } else {\n          var close = openClose[curKeyword];\n          pushContext(state, stream.column(), close, curKeyword);\n        }\n      } else if (curPunc == \"newmacro\" || (curKeyword && curKeyword.match(compilerDirectiveRegex))) {\n        if (curPunc == \"newmacro\") {\n          // Macros (especially if they have parenthesis) potentially have a semicolon\n          // or complete statement/block inside, and should be treated as such.\n          pushContext(state, stream.column(), \"macro\", \"macro\");\n        }\n        if (curKeyword.match(compilerDirectiveEndRegex)) {\n          state.compilerDirectiveIndented -= statementIndentUnit;\n        }\n        if (curKeyword.match(compilerDirectiveBeginRegex)) {\n          state.compilerDirectiveIndented += statementIndentUnit;\n        }\n      }\n\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      if (hooks.indent) {\n        var fromHook = hooks.indent(state);\n        if (fromHook >= 0) return fromHook;\n      }\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = false;\n      var possibleClosing = textAfter.match(closingBracketOrWord);\n      if (possibleClosing)\n        closing = isClosing(possibleClosing[0], ctx.type);\n      if (!compilerDirectivesUseRegularIndentation && textAfter.match(compilerDirectiveRegex)) {\n        if (textAfter.match(compilerDirectiveEndRegex)) {\n          return state.compilerDirectiveIndented - statementIndentUnit;\n        }\n        return state.compilerDirectiveIndented;\n      }\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if ((closingBracket.test(ctx.type) || ctx.type == \"assignment\")\n        && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);\n      else if (ctx.type == \")\" && !closing) return ctx.indented + statementIndentUnit;\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"indent\"\n  };\n});\n\n  CodeMirror.defineMIME(\"text/x-verilog\", {\n    name: \"verilog\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-systemverilog\", {\n    name: \"verilog\"\n  });\n\n\n\n  // TL-Verilog mode.\n  // See tl-x.org for language spec.\n  // See the mode in action at makerchip.com.\n  // Contact: steve.hoover@redwoodeda.com\n\n  // TLV Identifier prefixes.\n  // Note that sign is not treated separately, so \"+/-\" versions of numeric identifiers\n  // are included.\n  var tlvIdentifierStyle = {\n    \"|\": \"link\",\n    \">\": \"property\",  // Should condition this off for > TLV 1c.\n    \"$\": \"variable\",\n    \"$$\": \"variable\",\n    \"?$\": \"qualifier\",\n    \"?*\": \"qualifier\",\n    \"-\": \"hr\",\n    \"/\": \"property\",\n    \"/-\": \"property\",\n    \"@\": \"variable-3\",\n    \"@-\": \"variable-3\",\n    \"@++\": \"variable-3\",\n    \"@+=\": \"variable-3\",\n    \"@+=-\": \"variable-3\",\n    \"@--\": \"variable-3\",\n    \"@-=\": \"variable-3\",\n    \"%+\": \"tag\",\n    \"%-\": \"tag\",\n    \"%\": \"tag\",\n    \">>\": \"tag\",\n    \"<<\": \"tag\",\n    \"<>\": \"tag\",\n    \"#\": \"tag\",  // Need to choose a style for this.\n    \"^\": \"attribute\",\n    \"^^\": \"attribute\",\n    \"^!\": \"attribute\",\n    \"*\": \"variable-2\",\n    \"**\": \"variable-2\",\n    \"\\\\\": \"keyword\",\n    \"\\\"\": \"comment\"\n  };\n\n  // Lines starting with these characters define scope (result in indentation).\n  var tlvScopePrefixChars = {\n    \"/\": \"beh-hier\",\n    \">\": \"beh-hier\",\n    \"-\": \"phys-hier\",\n    \"|\": \"pipe\",\n    \"?\": \"when\",\n    \"@\": \"stage\",\n    \"\\\\\": \"keyword\"\n  };\n  var tlvIndentUnit = 3;\n  var tlvTrackStatements = false;\n  var tlvIdentMatch = /^([~!@#\\$%\\^&\\*-\\+=\\?\\/\\\\\\|'\"<>]+)([\\d\\w_]*)/;  // Matches an identifier.\n  // Note that ':' is excluded, because of it's use in [:].\n  var tlvFirstLevelIndentMatch = /^[! ]  /;\n  var tlvLineIndentationMatch = /^[! ] */;\n  var tlvCommentMatch = /^\\/[\\/\\*]/;\n\n\n  // Returns a style specific to the scope at the given indentation column.\n  // Type is one of: \"indent\", \"scope-ident\", \"before-scope-ident\".\n  function tlvScopeStyle(state, indentation, type) {\n    // Begin scope.\n    var depth = indentation / tlvIndentUnit;  // TODO: Pass this in instead.\n    return \"tlv-\" + state.tlvIndentationStyle[depth] + \"-\" + type;\n  }\n\n  // Return true if the next thing in the stream is an identifier with a mnemonic.\n  function tlvIdentNext(stream) {\n    var match;\n    return (match = stream.match(tlvIdentMatch, false)) && match[2].length > 0;\n  }\n\n  CodeMirror.defineMIME(\"text/x-tlv\", {\n    name: \"verilog\",\n\n    hooks: {\n\n      electricInput: false,\n\n\n      // Return undefined for verilog tokenizing, or style for TLV token (null not used).\n      // Standard CM styles are used for most formatting, but some TL-Verilog-specific highlighting\n      // can be enabled with the definition of cm-tlv-* styles, including highlighting for:\n      //   - M4 tokens\n      //   - TLV scope indentation\n      //   - Statement delimitation (enabled by tlvTrackStatements)\n      token: function(stream, state) {\n        var style = undefined;\n        var match;  // Return value of pattern matches.\n\n        // Set highlighting mode based on code region (TLV or SV).\n        if (stream.sol() && ! state.tlvInBlockComment) {\n          // Process region.\n          if (stream.peek() == '\\\\') {\n            style = \"def\";\n            stream.skipToEnd();\n            if (stream.string.match(/\\\\SV/)) {\n              state.tlvCodeActive = false;\n            } else if (stream.string.match(/\\\\TLV/)){\n              state.tlvCodeActive = true;\n            }\n          }\n          // Correct indentation in the face of a line prefix char.\n          if (state.tlvCodeActive && stream.pos == 0 &&\n              (state.indented == 0) && (match = stream.match(tlvLineIndentationMatch, false))) {\n            state.indented = match[0].length;\n          }\n\n          // Compute indentation state:\n          //   o Auto indentation on next line\n          //   o Indentation scope styles\n          var indented = state.indented;\n          var depth = indented / tlvIndentUnit;\n          if (depth <= state.tlvIndentationStyle.length) {\n            // not deeper than current scope\n\n            var blankline = stream.string.length == indented;\n            var chPos = depth * tlvIndentUnit;\n            if (chPos < stream.string.length) {\n              var bodyString = stream.string.slice(chPos);\n              var ch = bodyString[0];\n              if (tlvScopePrefixChars[ch] && ((match = bodyString.match(tlvIdentMatch)) &&\n                  tlvIdentifierStyle[match[1]])) {\n                // This line begins scope.\n                // Next line gets indented one level.\n                indented += tlvIndentUnit;\n                // Style the next level of indentation (except non-region keyword identifiers,\n                //   which are statements themselves)\n                if (!(ch == \"\\\\\" && chPos > 0)) {\n                  state.tlvIndentationStyle[depth] = tlvScopePrefixChars[ch];\n                  if (tlvTrackStatements) {state.statementComment = false;}\n                  depth++;\n                }\n              }\n            }\n            // Clear out deeper indentation levels unless line is blank.\n            if (!blankline) {\n              while (state.tlvIndentationStyle.length > depth) {\n                state.tlvIndentationStyle.pop();\n              }\n            }\n          }\n          // Set next level of indentation.\n          state.tlvNextIndent = indented;\n        }\n\n        if (state.tlvCodeActive) {\n          // Highlight as TLV.\n\n          var beginStatement = false;\n          if (tlvTrackStatements) {\n            // This starts a statement if the position is at the scope level\n            // and we're not within a statement leading comment.\n            beginStatement =\n                   (stream.peek() != \" \") &&   // not a space\n                   (style === undefined) &&    // not a region identifier\n                   !state.tlvInBlockComment && // not in block comment\n                   //!stream.match(tlvCommentMatch, false) && // not comment start\n                   (stream.column() == state.tlvIndentationStyle.length * tlvIndentUnit);  // at scope level\n            if (beginStatement) {\n              if (state.statementComment) {\n                // statement already started by comment\n                beginStatement = false;\n              }\n              state.statementComment =\n                   stream.match(tlvCommentMatch, false); // comment start\n            }\n          }\n\n          var match;\n          if (style !== undefined) {\n            // Region line.\n            style += \" \" + tlvScopeStyle(state, 0, \"scope-ident\")\n          } else if (((stream.pos / tlvIndentUnit) < state.tlvIndentationStyle.length) &&\n                     (match = stream.match(stream.sol() ? tlvFirstLevelIndentMatch : /^   /))) {\n            // Indentation\n            style = // make this style distinct from the previous one to prevent\n                    // codemirror from combining spans\n                    \"tlv-indent-\" + (((stream.pos % 2) == 0) ? \"even\" : \"odd\") +\n                    // and style it\n                    \" \" + tlvScopeStyle(state, stream.pos - tlvIndentUnit, \"indent\");\n            // Style the line prefix character.\n            if (match[0].charAt(0) == \"!\") {\n              style += \" tlv-alert-line-prefix\";\n            }\n            // Place a class before a scope identifier.\n            if (tlvIdentNext(stream)) {\n              style += \" \" + tlvScopeStyle(state, stream.pos, \"before-scope-ident\");\n            }\n          } else if (state.tlvInBlockComment) {\n            // In a block comment.\n            if (stream.match(/^.*?\\*\\//)) {\n              // Exit block comment.\n              state.tlvInBlockComment = false;\n              if (tlvTrackStatements && !stream.eol()) {\n                // Anything after comment is assumed to be real statement content.\n                state.statementComment = false;\n              }\n            } else {\n              stream.skipToEnd();\n            }\n            style = \"comment\";\n          } else if ((match = stream.match(tlvCommentMatch)) && !state.tlvInBlockComment) {\n            // Start comment.\n            if (match[0] == \"//\") {\n              // Line comment.\n              stream.skipToEnd();\n            } else {\n              // Block comment.\n              state.tlvInBlockComment = true;\n            }\n            style = \"comment\";\n          } else if (match = stream.match(tlvIdentMatch)) {\n            // looks like an identifier (or identifier prefix)\n            var prefix = match[1];\n            var mnemonic = match[2];\n            if (// is identifier prefix\n                tlvIdentifierStyle.hasOwnProperty(prefix) &&\n                // has mnemonic or we're at the end of the line (maybe it hasn't been typed yet)\n                (mnemonic.length > 0 || stream.eol())) {\n              style = tlvIdentifierStyle[prefix];\n              if (stream.column() == state.indented) {\n                // Begin scope.\n                style += \" \" + tlvScopeStyle(state, stream.column(), \"scope-ident\")\n              }\n            } else {\n              // Just swallow one character and try again.\n              // This enables subsequent identifier match with preceding symbol character, which\n              //   is legal within a statement.  (E.g., !$reset).  It also enables detection of\n              //   comment start with preceding symbols.\n              stream.backUp(stream.current().length - 1);\n              style = \"tlv-default\";\n            }\n          } else if (stream.match(/^\\t+/)) {\n            // Highlight tabs, which are illegal.\n            style = \"tlv-tab\";\n          } else if (stream.match(/^[\\[\\]{}\\(\\);\\:]+/)) {\n            // [:], (), {}, ;.\n            style = \"meta\";\n          } else if (match = stream.match(/^[mM]4([\\+_])?[\\w\\d_]*/)) {\n            // m4 pre proc\n            style = (match[1] == \"+\") ? \"tlv-m4-plus\" : \"tlv-m4\";\n          } else if (stream.match(/^ +/)){\n            // Skip over spaces.\n            if (stream.eol()) {\n              // Trailing spaces.\n              style = \"error\";\n            } else {\n              // Non-trailing spaces.\n              style = \"tlv-default\";\n            }\n          } else if (stream.match(/^[\\w\\d_]+/)) {\n            // alpha-numeric token.\n            style = \"number\";\n          } else {\n            // Eat the next char w/ no formatting.\n            stream.next();\n            style = \"tlv-default\";\n          }\n          if (beginStatement) {\n            style += \" tlv-statement\";\n          }\n        } else {\n          if (stream.match(/^[mM]4([\\w\\d_]*)/)) {\n            // m4 pre proc\n            style = \"tlv-m4\";\n          }\n        }\n        return style;\n      },\n\n      indent: function(state) {\n        return (state.tlvCodeActive == true) ? state.tlvNextIndent : -1;\n      },\n\n      startState: function(state) {\n        state.tlvIndentationStyle = [];  // Styles to use for each level of indentation.\n        state.tlvCodeActive = true;  // True when we're in a TLV region (and at beginning of file).\n        state.tlvNextIndent = -1;    // The number of spaces to autoindent the next line if tlvCodeActive.\n        state.tlvInBlockComment = false;  // True inside /**/ comment.\n        if (tlvTrackStatements) {\n          state.statementComment = false;  // True inside a statement's header comment.\n        }\n      }\n\n    }\n  });\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/vhdl/vhdl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Originally written by Alf Nielsen, re-written by Michael Zhou\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction words(str) {\n  var obj = {}, words = str.split(\",\");\n  for (var i = 0; i < words.length; ++i) {\n    var allCaps = words[i].toUpperCase();\n    var firstCap = words[i].charAt(0).toUpperCase() + words[i].slice(1);\n    obj[words[i]] = true;\n    obj[allCaps] = true;\n    obj[firstCap] = true;\n  }\n  return obj;\n}\n\nfunction metaHook(stream) {\n  stream.eatWhile(/[\\w\\$_]/);\n  return \"meta\";\n}\n\nCodeMirror.defineMode(\"vhdl\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      atoms = parserConfig.atoms || words(\"null\"),\n      hooks = parserConfig.hooks || {\"`\": metaHook, \"$\": metaHook},\n      multiLineStrings = parserConfig.multiLineStrings;\n\n  var keywords = words(\"abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,\" +\n      \"body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,\" +\n      \"end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,\" +\n      \"function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,\" +\n      \"literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,\" +\n      \"postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,\" +\n      \"sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor\");\n\n  var blockKeywords = words(\"architecture,entity,begin,case,port,else,elsif,end,for,function,if\");\n\n  var isOperatorChar = /[&|~><!\\)\\(*#%@+\\/=?\\:;}{,\\.\\^\\-\\[\\]]/;\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"') {\n      state.tokenize = tokenString2(ch);\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/[\\d']/.test(ch)) {\n      stream.eatWhile(/[\\w\\.']/);\n      return \"number\";\n    }\n    if (ch == \"-\") {\n      if (stream.eat(\"-\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur.toLowerCase())) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"--\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n  function tokenString2(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"--\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string-2\";\n    };\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-vhdl\", \"vhdl\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/vue/vue.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n  \"use strict\";\n  if (typeof exports === \"object\" && typeof module === \"object\") {// CommonJS\n    mod(require(\"../../lib/codemirror\"),\n        require(\"../../addon/mode/overlay\"),\n        require(\"../xml/xml\"),\n        require(\"../javascript/javascript\"),\n        require(\"../coffeescript/coffeescript\"),\n        require(\"../css/css\"),\n        require(\"../sass/sass\"),\n        require(\"../stylus/stylus\"),\n        require(\"../pug/pug\"),\n        require(\"../handlebars/handlebars\"));\n  } else if (typeof define === \"function\" && define.amd) { // AMD\n    define([\"../../lib/codemirror\",\n            \"../../addon/mode/overlay\",\n            \"../xml/xml\",\n            \"../javascript/javascript\",\n            \"../coffeescript/coffeescript\",\n            \"../css/css\",\n            \"../sass/sass\",\n            \"../stylus/stylus\",\n            \"../pug/pug\",\n            \"../handlebars/handlebars\"], mod);\n  } else { // Plain browser env\n    mod(CodeMirror);\n  }\n})(function (CodeMirror) {\n  var tagLanguages = {\n    script: [\n      [\"lang\", /coffee(script)?/, \"coffeescript\"],\n      [\"type\", /^(?:text|application)\\/(?:x-)?coffee(?:script)?$/, \"coffeescript\"],\n      [\"lang\", /^babel$/, \"javascript\"],\n      [\"type\", /^text\\/babel$/, \"javascript\"],\n      [\"type\", /^text\\/ecmascript-\\d+$/, \"javascript\"]\n    ],\n    style: [\n      [\"lang\", /^stylus$/i, \"stylus\"],\n      [\"lang\", /^sass$/i, \"sass\"],\n      [\"lang\", /^less$/i, \"text/x-less\"],\n      [\"lang\", /^scss$/i, \"text/x-scss\"],\n      [\"type\", /^(text\\/)?(x-)?styl(us)?$/i, \"stylus\"],\n      [\"type\", /^text\\/sass/i, \"sass\"],\n      [\"type\", /^(text\\/)?(x-)?scss$/i, \"text/x-scss\"],\n      [\"type\", /^(text\\/)?(x-)?less$/i, \"text/x-less\"]\n    ],\n    template: [\n      [\"lang\", /^vue-template$/i, \"vue\"],\n      [\"lang\", /^pug$/i, \"pug\"],\n      [\"lang\", /^handlebars$/i, \"handlebars\"],\n      [\"type\", /^(text\\/)?(x-)?pug$/i, \"pug\"],\n      [\"type\", /^text\\/x-handlebars-template$/i, \"handlebars\"],\n      [null, null, \"vue-template\"]\n    ]\n  };\n\n  CodeMirror.defineMode(\"vue-template\", function (config, parserConfig) {\n    var mustacheOverlay = {\n      token: function (stream) {\n        if (stream.match(/^\\{\\{.*?\\}\\}/)) return \"meta mustache\";\n        while (stream.next() && !stream.match(\"{{\", false)) {}\n        return null;\n      }\n    };\n    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || \"text/html\"), mustacheOverlay);\n  });\n\n  CodeMirror.defineMode(\"vue\", function (config) {\n    return CodeMirror.getMode(config, {name: \"htmlmixed\", tags: tagLanguages});\n  }, \"htmlmixed\", \"xml\", \"javascript\", \"coffeescript\", \"css\", \"sass\", \"stylus\", \"pug\", \"handlebars\");\n\n  CodeMirror.defineMIME(\"script/x-vue\", \"vue\");\n  CodeMirror.defineMIME(\"text/x-vue\", \"vue\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/wast/wast.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar kKeywords = [\n    \"align\",\n    \"block\",\n    \"br(_if|_table|_on_(cast|data|func|i31|null))?\",\n    \"call(_indirect|_ref)?\",\n    \"current_memory\",\n    \"\\\\bdata\\\\b\",\n    \"drop\",\n    \"elem\",\n    \"else\",\n    \"end\",\n    \"export\",\n    \"\\\\bextern\\\\b\",\n    \"\\\\bfunc\\\\b\",\n    \"global(\\\\.(get|set))?\",\n    \"if\",\n    \"import\",\n    \"local(\\\\.(get|set|tee))?\",\n    \"loop\",\n    \"module\",\n    \"mut\",\n    \"nop\",\n    \"offset\",\n    \"param\",\n    \"result\",\n    \"return(_call(_indirect|_ref)?)?\",\n    \"select\",\n    \"start\",\n    \"table(\\\\.(size|get|set|size|grow|fill|init|copy))?\",\n    \"then\",\n    \"type\",\n    \"unreachable\",\n\n    // Numeric opcodes.\n    \"i(32|64)\\\\.(store(8|16)|(load(8|16)_[su]))\",\n    \"i64\\\\.(load32_[su]|store32)\",\n    \"[fi](32|64)\\\\.(const|load|store)\",\n    \"f(32|64)\\\\.(abs|add|ceil|copysign|div|eq|floor|[gl][et]|max|min|mul|nearest|neg?|sqrt|sub|trunc)\",\n    \"i(32|64)\\\\.(a[dn]d|c[lt]z|(div|rem)_[su]|eqz?|[gl][te]_[su]|mul|ne|popcnt|rot[lr]|sh(l|r_[su])|sub|x?or)\",\n    \"i64\\\\.extend_[su]_i32\",\n    \"i32\\\\.wrap_i64\",\n    \"i(32|64)\\\\.trunc_f(32|64)_[su]\",\n    \"f(32|64)\\\\.convert_i(32|64)_[su]\",\n    \"f64\\\\.promote_f32\",\n    \"f32\\\\.demote_f64\",\n    \"f32\\\\.reinterpret_i32\",\n    \"i32\\\\.reinterpret_f32\",\n    \"f64\\\\.reinterpret_i64\",\n    \"i64\\\\.reinterpret_f64\",\n    // Atomics.\n    \"memory(\\\\.((atomic\\\\.(notify|wait(32|64)))|grow|size))?\",\n    \"i64\\.atomic\\\\.(load32_u|store32|rmw32\\\\.(a[dn]d|sub|x?or|(cmp)?xchg)_u)\",\n    \"i(32|64)\\\\.atomic\\\\.(load((8|16)_u)?|store(8|16)?|rmw(\\\\.(a[dn]d|sub|x?or|(cmp)?xchg)|(8|16)\\\\.(a[dn]d|sub|x?or|(cmp)?xchg)_u))\",\n    // SIMD.\n    \"v128\\\\.load(8x8|16x4|32x2)_[su]\",\n    \"v128\\\\.load(8|16|32|64)_splat\",\n    \"v128\\\\.(load|store)(8|16|32|64)_lane\",\n    \"v128\\\\.load(32|64)_zero\",\n    \"v128\\.(load|store|const|not|andnot|and|or|xor|bitselect|any_true)\",\n    \"i(8x16|16x8)\\\\.(extract_lane_[su]|(add|sub)_sat_[su]|avgr_u)\",\n    \"i(8x16|16x8|32x4|64x2)\\\\.(neg|add|sub|abs|shl|shr_[su]|all_true|bitmask|eq|ne|[lg][te]_s)\",\n    \"(i(8x16|16x8|32x4|64x2)|f(32x4|64x2))\\.(splat|replace_lane)\",\n    \"i(8x16|16x8|32x4)\\\\.(([lg][te]_u)|((min|max)_[su]))\",\n    \"f(32x4|64x2)\\\\.(neg|add|sub|abs|nearest|eq|ne|[lg][te]|sqrt|mul|div|min|max|ceil|floor|trunc)\",\n    \"[fi](32x4|64x2)\\\\.extract_lane\",\n    \"i8x16\\\\.(shuffle|swizzle|popcnt|narrow_i16x8_[su])\",\n    \"i16x8\\\\.(narrow_i32x4_[su]|mul|extadd_pairwise_i8x16_[su]|q15mulr_sat_s)\",\n    \"i16x8\\\\.(extend|extmul)_(low|high)_i8x16_[su]\",\n    \"i32x4\\\\.(mul|dot_i16x8_s|trunc_sat_f64x2_[su]_zero)\",\n    \"i32x4\\\\.((extend|extmul)_(low|high)_i16x8_|trunc_sat_f32x4_|extadd_pairwise_i16x8_)[su]\",\n    \"i64x2\\\\.(mul|(extend|extmul)_(low|high)_i32x4_[su])\",\n    \"f32x4\\\\.(convert_i32x4_[su]|demote_f64x2_zero)\",\n    \"f64x2\\\\.(promote_low_f32x4|convert_low_i32x4_[su])\",\n    // Reference types, function references, and GC.\n    \"\\\\bany\\\\b\",\n    \"array\\\\.len\",\n    \"(array|struct)(\\\\.(new_(default_)?with_rtt|get(_[su])?|set))?\",\n    \"\\\\beq\\\\b\",\n    \"field\",\n    \"i31\\\\.(new|get_[su])\",\n    \"\\\\bnull\\\\b\",\n    \"ref(\\\\.(([ai]s_(data|func|i31))|cast|eq|func|(is_|as_non_)?null|test))?\",\n    \"rtt(\\\\.(canon|sub))?\",\n];\n\nCodeMirror.defineSimpleMode('wast', {\n  start: [\n    {regex: /[+\\-]?(?:nan(?::0x[0-9a-fA-F]+)?|infinity|inf|0x[0-9a-fA-F]+\\.?[0-9a-fA-F]*p[+\\/-]?\\d+|\\d+(?:\\.\\d*)?[eE][+\\-]?\\d*|\\d+\\.\\d*|0x[0-9a-fA-F]+|\\d+)/, token: \"number\"},\n    {regex: new RegExp(kKeywords.join('|')), token: \"keyword\"},\n    {regex: /\\b((any|data|eq|extern|i31|func)ref|[fi](32|64)|i(8|16))\\b/, token: \"atom\"},\n    {regex: /\\$([a-zA-Z0-9_`\\+\\-\\*\\/\\\\\\^~=<>!\\?@#$%&|:\\.]+)/, token: \"variable-2\"},\n    {regex: /\"(?:[^\"\\\\\\x00-\\x1f\\x7f]|\\\\[nt\\\\'\"]|\\\\[0-9a-fA-F][0-9a-fA-F])*\"/, token: \"string\"},\n    {regex: /\\(;.*?/, token: \"comment\", next: \"comment\"},\n    {regex: /;;.*$/, token: \"comment\"},\n    {regex: /\\(/, indent: true},\n    {regex: /\\)/, dedent: true},\n  ],\n\n  comment: [\n    {regex: /.*?;\\)/, token: \"comment\", next: \"start\"},\n    {regex: /.*/, token: \"comment\"},\n  ],\n\n  meta: {\n    dontIndentStates: ['comment'],\n  },\n});\n\n// https://github.com/WebAssembly/design/issues/981 mentions text/webassembly,\n// which seems like a reasonable choice, although it's not standard right now.\nCodeMirror.defineMIME(\"text/webassembly\", \"wast\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/webidl/webidl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction wordRegexp(words) {\n  return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n};\n\nvar builtinArray = [\n  \"Clamp\",\n  \"Constructor\",\n  \"EnforceRange\",\n  \"Exposed\",\n  \"ImplicitThis\",\n  \"Global\", \"PrimaryGlobal\",\n  \"LegacyArrayClass\",\n  \"LegacyUnenumerableNamedProperties\",\n  \"LenientThis\",\n  \"NamedConstructor\",\n  \"NewObject\",\n  \"NoInterfaceObject\",\n  \"OverrideBuiltins\",\n  \"PutForwards\",\n  \"Replaceable\",\n  \"SameObject\",\n  \"TreatNonObjectAsNull\",\n  \"TreatNullAs\",\n    \"EmptyString\",\n  \"Unforgeable\",\n  \"Unscopeable\"\n];\nvar builtins = wordRegexp(builtinArray);\n\nvar typeArray = [\n  \"unsigned\", \"short\", \"long\",                  // UnsignedIntegerType\n  \"unrestricted\", \"float\", \"double\",            // UnrestrictedFloatType\n  \"boolean\", \"byte\", \"octet\",                   // Rest of PrimitiveType\n  \"Promise\",                                    // PromiseType\n  \"ArrayBuffer\", \"DataView\", \"Int8Array\", \"Int16Array\", \"Int32Array\",\n  \"Uint8Array\", \"Uint16Array\", \"Uint32Array\", \"Uint8ClampedArray\",\n  \"Float32Array\", \"Float64Array\",               // BufferRelatedType\n  \"ByteString\", \"DOMString\", \"USVString\", \"sequence\", \"object\", \"RegExp\",\n  \"Error\", \"DOMException\", \"FrozenArray\",       // Rest of NonAnyType\n  \"any\",                                        // Rest of SingleType\n  \"void\"                                        // Rest of ReturnType\n];\nvar types = wordRegexp(typeArray);\n\nvar keywordArray = [\n  \"attribute\", \"callback\", \"const\", \"deleter\", \"dictionary\", \"enum\", \"getter\",\n  \"implements\", \"inherit\", \"interface\", \"iterable\", \"legacycaller\", \"maplike\",\n  \"partial\", \"required\", \"serializer\", \"setlike\", \"setter\", \"static\",\n  \"stringifier\", \"typedef\",                     // ArgumentNameKeyword except\n                                                // \"unrestricted\"\n  \"optional\", \"readonly\", \"or\"\n];\nvar keywords = wordRegexp(keywordArray);\n\nvar atomArray = [\n  \"true\", \"false\",                              // BooleanLiteral\n  \"Infinity\", \"NaN\",                            // FloatLiteral\n  \"null\"                                        // Rest of ConstValue\n];\nvar atoms = wordRegexp(atomArray);\n\nCodeMirror.registerHelper(\"hintWords\", \"webidl\",\n    builtinArray.concat(typeArray).concat(keywordArray).concat(atomArray));\n\nvar startDefArray = [\"callback\", \"dictionary\", \"enum\", \"interface\"];\nvar startDefs = wordRegexp(startDefArray);\n\nvar endDefArray = [\"typedef\"];\nvar endDefs = wordRegexp(endDefArray);\n\nvar singleOperators = /^[:<=>?]/;\nvar integers = /^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/;\nvar floats = /^-?(([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/;\nvar identifiers = /^_?[A-Za-z][0-9A-Z_a-z-]*/;\nvar identifiersEnd = /^_?[A-Za-z][0-9A-Z_a-z-]*(?=\\s*;)/;\nvar strings = /^\"[^\"]*\"/;\nvar multilineComments = /^\\/\\*.*?\\*\\//;\nvar multilineCommentsStart = /^\\/\\*.*/;\nvar multilineCommentsEnd = /^.*?\\*\\//;\n\nfunction readToken(stream, state) {\n  // whitespace\n  if (stream.eatSpace()) return null;\n\n  // comment\n  if (state.inComment) {\n    if (stream.match(multilineCommentsEnd)) {\n      state.inComment = false;\n      return \"comment\";\n    }\n    stream.skipToEnd();\n    return \"comment\";\n  }\n  if (stream.match(\"//\")) {\n    stream.skipToEnd();\n    return \"comment\";\n  }\n  if (stream.match(multilineComments)) return \"comment\";\n  if (stream.match(multilineCommentsStart)) {\n    state.inComment = true;\n    return \"comment\";\n  }\n\n  // integer and float\n  if (stream.match(/^-?[0-9\\.]/, false)) {\n    if (stream.match(integers) || stream.match(floats)) return \"number\";\n  }\n\n  // string\n  if (stream.match(strings)) return \"string\";\n\n  // identifier\n  if (state.startDef && stream.match(identifiers)) return \"def\";\n\n  if (state.endDef && stream.match(identifiersEnd)) {\n    state.endDef = false;\n    return \"def\";\n  }\n\n  if (stream.match(keywords)) return \"keyword\";\n\n  if (stream.match(types)) {\n    var lastToken = state.lastToken;\n    var nextToken = (stream.match(/^\\s*(.+?)\\b/, false) || [])[1];\n\n    if (lastToken === \":\" || lastToken === \"implements\" ||\n        nextToken === \"implements\" || nextToken === \"=\") {\n      // Used as identifier\n      return \"builtin\";\n    } else {\n      // Used as type\n      return \"variable-3\";\n    }\n  }\n\n  if (stream.match(builtins)) return \"builtin\";\n  if (stream.match(atoms)) return \"atom\";\n  if (stream.match(identifiers)) return \"variable\";\n\n  // other\n  if (stream.match(singleOperators)) return \"operator\";\n\n  // unrecognized\n  stream.next();\n  return null;\n};\n\nCodeMirror.defineMode(\"webidl\", function() {\n  return {\n    startState: function() {\n      return {\n        // Is in multiline comment\n        inComment: false,\n        // Last non-whitespace, matched token\n        lastToken: \"\",\n        // Next token is a definition\n        startDef: false,\n        // Last token of the statement is a definition\n        endDef: false\n      };\n    },\n    token: function(stream, state) {\n      var style = readToken(stream, state);\n\n      if (style) {\n        var cur = stream.current();\n        state.lastToken = cur;\n        if (style === \"keyword\") {\n          state.startDef = startDefs.test(cur);\n          state.endDef = state.endDef || endDefs.test(cur);\n        } else {\n          state.startDef = false;\n        }\n      }\n\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-webidl\", \"webidl\");\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/xml/xml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n  autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n                    'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n                    'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n                    'track': true, 'wbr': true, 'menuitem': true},\n  implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n                     'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n                     'th': true, 'tr': true},\n  contextGrabbers: {\n    'dd': {'dd': true, 'dt': true},\n    'dt': {'dd': true, 'dt': true},\n    'li': {'li': true},\n    'option': {'option': true, 'optgroup': true},\n    'optgroup': {'optgroup': true},\n    'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n          'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n          'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n          'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n          'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n    'rp': {'rp': true, 'rt': true},\n    'rt': {'rp': true, 'rt': true},\n    'tbody': {'tbody': true, 'tfoot': true},\n    'td': {'td': true, 'th': true},\n    'tfoot': {'tbody': true},\n    'th': {'td': true, 'th': true},\n    'thead': {'tbody': true, 'tfoot': true},\n    'tr': {'tr': true}\n  },\n  doNotIndent: {\"pre\": true},\n  allowUnquoted: true,\n  allowMissing: true,\n  caseFold: true\n}\n\nvar xmlConfig = {\n  autoSelfClosers: {},\n  implicitlyClosed: {},\n  contextGrabbers: {},\n  doNotIndent: {},\n  allowUnquoted: false,\n  allowMissing: false,\n  allowMissingTagName: false,\n  caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n  var indentUnit = editorConf.indentUnit\n  var config = {}\n  var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n  for (var prop in defaults) config[prop] = defaults[prop]\n  for (var prop in config_) config[prop] = config_[prop]\n\n  // Return variables for tokenizers\n  var type, setStyle;\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var ch = stream.next();\n    if (ch == \"<\") {\n      if (stream.eat(\"!\")) {\n        if (stream.eat(\"[\")) {\n          if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n          else return null;\n        } else if (stream.match(\"--\")) {\n          return chain(inBlock(\"comment\", \"-->\"));\n        } else if (stream.match(\"DOCTYPE\", true, true)) {\n          stream.eatWhile(/[\\w\\._\\-]/);\n          return chain(doctype(1));\n        } else {\n          return null;\n        }\n      } else if (stream.eat(\"?\")) {\n        stream.eatWhile(/[\\w\\._\\-]/);\n        state.tokenize = inBlock(\"meta\", \"?>\");\n        return \"meta\";\n      } else {\n        type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n        state.tokenize = inTag;\n        return \"tag bracket\";\n      }\n    } else if (ch == \"&\") {\n      var ok;\n      if (stream.eat(\"#\")) {\n        if (stream.eat(\"x\")) {\n          ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n        } else {\n          ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n        }\n      } else {\n        ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n      }\n      return ok ? \"atom\" : \"error\";\n    } else {\n      stream.eatWhile(/[^&<]/);\n      return null;\n    }\n  }\n  inText.isInText = true;\n\n  function inTag(stream, state) {\n    var ch = stream.next();\n    if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n      state.tokenize = inText;\n      type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n      return \"tag bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n      return null;\n    } else if (ch == \"<\") {\n      state.tokenize = inText;\n      state.state = baseState;\n      state.tagName = state.tagStart = null;\n      var next = state.tokenize(stream, state);\n      return next ? next + \" tag error\" : \"tag error\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      state.stringStartCol = stream.column();\n      return state.tokenize(stream, state);\n    } else {\n      stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n      return \"word\";\n    }\n  }\n\n  function inAttribute(quote) {\n    var closure = function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inTag;\n          break;\n        }\n      }\n      return \"string\";\n    };\n    closure.isInAttribute = true;\n    return closure;\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    }\n  }\n\n  function doctype(depth) {\n    return function(stream, state) {\n      var ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == \"<\") {\n          state.tokenize = doctype(depth + 1);\n          return state.tokenize(stream, state);\n        } else if (ch == \">\") {\n          if (depth == 1) {\n            state.tokenize = inText;\n            break;\n          } else {\n            state.tokenize = doctype(depth - 1);\n            return state.tokenize(stream, state);\n          }\n        }\n      }\n      return \"meta\";\n    };\n  }\n\n  function Context(state, tagName, startOfLine) {\n    this.prev = state.context;\n    this.tagName = tagName || \"\";\n    this.indent = state.indented;\n    this.startOfLine = startOfLine;\n    if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n      this.noIndent = true;\n  }\n  function popContext(state) {\n    if (state.context) state.context = state.context.prev;\n  }\n  function maybePopContext(state, nextTagName) {\n    var parentTagName;\n    while (true) {\n      if (!state.context) {\n        return;\n      }\n      parentTagName = state.context.tagName;\n      if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||\n          !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {\n        return;\n      }\n      popContext(state);\n    }\n  }\n\n  function baseState(type, stream, state) {\n    if (type == \"openTag\") {\n      state.tagStart = stream.column();\n      return tagNameState;\n    } else if (type == \"closeTag\") {\n      return closeTagNameState;\n    } else {\n      return baseState;\n    }\n  }\n  function tagNameState(type, stream, state) {\n    if (type == \"word\") {\n      state.tagName = stream.current();\n      setStyle = \"tag\";\n      return attrState;\n    } else if (config.allowMissingTagName && type == \"endTag\") {\n      setStyle = \"tag bracket\";\n      return attrState(type, stream, state);\n    } else {\n      setStyle = \"error\";\n      return tagNameState;\n    }\n  }\n  function closeTagNameState(type, stream, state) {\n    if (type == \"word\") {\n      var tagName = stream.current();\n      if (state.context && state.context.tagName != tagName &&\n          config.implicitlyClosed.hasOwnProperty(state.context.tagName))\n        popContext(state);\n      if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n        setStyle = \"tag\";\n        return closeState;\n      } else {\n        setStyle = \"tag error\";\n        return closeStateErr;\n      }\n    } else if (config.allowMissingTagName && type == \"endTag\") {\n      setStyle = \"tag bracket\";\n      return closeState(type, stream, state);\n    } else {\n      setStyle = \"error\";\n      return closeStateErr;\n    }\n  }\n\n  function closeState(type, _stream, state) {\n    if (type != \"endTag\") {\n      setStyle = \"error\";\n      return closeState;\n    }\n    popContext(state);\n    return baseState;\n  }\n  function closeStateErr(type, stream, state) {\n    setStyle = \"error\";\n    return closeState(type, stream, state);\n  }\n\n  function attrState(type, _stream, state) {\n    if (type == \"word\") {\n      setStyle = \"attribute\";\n      return attrEqState;\n    } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n      var tagName = state.tagName, tagStart = state.tagStart;\n      state.tagName = state.tagStart = null;\n      if (type == \"selfcloseTag\" ||\n          config.autoSelfClosers.hasOwnProperty(tagName)) {\n        maybePopContext(state, tagName);\n      } else {\n        maybePopContext(state, tagName);\n        state.context = new Context(state, tagName, tagStart == state.indented);\n      }\n      return baseState;\n    }\n    setStyle = \"error\";\n    return attrState;\n  }\n  function attrEqState(type, stream, state) {\n    if (type == \"equals\") return attrValueState;\n    if (!config.allowMissing) setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrValueState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n    setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrContinuedState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    return attrState(type, stream, state);\n  }\n\n  return {\n    startState: function(baseIndent) {\n      var state = {tokenize: inText,\n                   state: baseState,\n                   indented: baseIndent || 0,\n                   tagName: null, tagStart: null,\n                   context: null}\n      if (baseIndent != null) state.baseIndent = baseIndent\n      return state\n    },\n\n    token: function(stream, state) {\n      if (!state.tagName && stream.sol())\n        state.indented = stream.indentation();\n\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n      if ((style || type) && style != \"comment\") {\n        setStyle = null;\n        state.state = state.state(type || style, stream, state);\n        if (setStyle)\n          style = setStyle == \"error\" ? style + \" error\" : setStyle;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter, fullLine) {\n      var context = state.context;\n      // Indent multi-line strings (e.g. css).\n      if (state.tokenize.isInAttribute) {\n        if (state.tagStart == state.indented)\n          return state.stringStartCol + 1;\n        else\n          return state.indented + indentUnit;\n      }\n      if (context && context.noIndent) return CodeMirror.Pass;\n      if (state.tokenize != inTag && state.tokenize != inText)\n        return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n      // Indent the starts of attribute names.\n      if (state.tagName) {\n        if (config.multilineTagIndentPastTag !== false)\n          return state.tagStart + state.tagName.length + 2;\n        else\n          return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n      }\n      if (config.alignCDATA && /<!\\[CDATA\\[/.test(textAfter)) return 0;\n      var tagAfter = textAfter && /^<(\\/)?([\\w_:\\.-]*)/.exec(textAfter);\n      if (tagAfter && tagAfter[1]) { // Closing tag spotted\n        while (context) {\n          if (context.tagName == tagAfter[2]) {\n            context = context.prev;\n            break;\n          } else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {\n            context = context.prev;\n          } else {\n            break;\n          }\n        }\n      } else if (tagAfter) { // Opening tag spotted\n        while (context) {\n          var grabbers = config.contextGrabbers[context.tagName];\n          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))\n            context = context.prev;\n          else\n            break;\n        }\n      }\n      while (context && context.prev && !context.startOfLine)\n        context = context.prev;\n      if (context) return context.indent + indentUnit;\n      else return state.baseIndent || 0;\n    },\n\n    electricInput: /<\\/[\\s\\w:]+>$/,\n    blockCommentStart: \"<!--\",\n    blockCommentEnd: \"-->\",\n\n    configuration: config.htmlMode ? \"html\" : \"xml\",\n    helperType: config.htmlMode ? \"html\" : \"xml\",\n\n    skipAttribute: function(state) {\n      if (state.state == attrValueState)\n        state.state = attrState\n    },\n\n    xmlCurrentTag: function(state) {\n      return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n    },\n\n    xmlCurrentContext: function(state) {\n      var context = []\n      for (var cx = state.context; cx; cx = cx.prev)\n        context.push(cx.tagName)\n      return context.reverse()\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n  CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/xquery/xquery.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"xquery\", function() {\n\n  // The keywords object is set to the result of this self executing\n  // function. Each keyword is a property of the keywords object whose\n  // value is {type: atype, style: astyle}\n  var keywords = function(){\n    // convenience functions used to build keywords object\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var operator = kw(\"operator\")\n      , atom = {type: \"atom\", style: \"atom\"}\n      , punctuation = {type: \"punctuation\", style: null}\n      , qualifier = {type: \"axis_specifier\", style: \"qualifier\"};\n\n    // kwObj is what is return from this function at the end\n    var kwObj = {\n      ',': punctuation\n    };\n\n    // a list of 'basic' keywords. For each add a property to kwObj with the value of\n    // {type: basic[i], style: \"keyword\"} e.g. 'after' --> {type: \"after\", style: \"keyword\"}\n    var basic = ['after', 'all', 'allowing', 'ancestor', 'ancestor-or-self', 'any', 'array', 'as',\n    'ascending', 'at', 'attribute', 'base-uri', 'before', 'boundary-space', 'by', 'case', 'cast',\n    'castable', 'catch', 'child', 'collation', 'comment', 'construction', 'contains', 'content',\n    'context', 'copy', 'copy-namespaces', 'count', 'decimal-format', 'declare', 'default', 'delete',\n    'descendant', 'descendant-or-self', 'descending', 'diacritics', 'different', 'distance',\n    'document', 'document-node', 'element', 'else', 'empty', 'empty-sequence', 'encoding', 'end',\n    'entire', 'every', 'exactly', 'except', 'external', 'first', 'following', 'following-sibling',\n    'for', 'from', 'ftand', 'ftnot', 'ft-option', 'ftor', 'function', 'fuzzy', 'greatest', 'group',\n    'if', 'import', 'in', 'inherit', 'insensitive', 'insert', 'instance', 'intersect', 'into',\n    'invoke', 'is', 'item', 'language', 'last', 'lax', 'least', 'let', 'levels', 'lowercase', 'map',\n    'modify', 'module', 'most', 'namespace', 'next', 'no', 'node', 'nodes', 'no-inherit',\n    'no-preserve', 'not', 'occurs', 'of', 'only', 'option', 'order', 'ordered', 'ordering',\n    'paragraph', 'paragraphs', 'parent', 'phrase', 'preceding', 'preceding-sibling', 'preserve',\n    'previous', 'processing-instruction', 'relationship', 'rename', 'replace', 'return',\n    'revalidation', 'same', 'satisfies', 'schema', 'schema-attribute', 'schema-element', 'score',\n    'self', 'sensitive', 'sentence', 'sentences', 'sequence', 'skip', 'sliding', 'some', 'stable',\n    'start', 'stemming', 'stop', 'strict', 'strip', 'switch', 'text', 'then', 'thesaurus', 'times',\n    'to', 'transform', 'treat', 'try', 'tumbling', 'type', 'typeswitch', 'union', 'unordered',\n    'update', 'updating', 'uppercase', 'using', 'validate', 'value', 'variable', 'version',\n    'weight', 'when', 'where', 'wildcards', 'window', 'with', 'without', 'word', 'words', 'xquery'];\n    for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);};\n\n    // a list of types. For each add a property to kwObj with the value of\n    // {type: \"atom\", style: \"atom\"}\n    var types = ['xs:anyAtomicType', 'xs:anySimpleType', 'xs:anyType', 'xs:anyURI',\n    'xs:base64Binary', 'xs:boolean', 'xs:byte', 'xs:date', 'xs:dateTime', 'xs:dateTimeStamp',\n    'xs:dayTimeDuration', 'xs:decimal', 'xs:double', 'xs:duration', 'xs:ENTITIES', 'xs:ENTITY',\n    'xs:float', 'xs:gDay', 'xs:gMonth', 'xs:gMonthDay', 'xs:gYear', 'xs:gYearMonth', 'xs:hexBinary',\n    'xs:ID', 'xs:IDREF', 'xs:IDREFS', 'xs:int', 'xs:integer', 'xs:item', 'xs:java', 'xs:language',\n    'xs:long', 'xs:Name', 'xs:NCName', 'xs:negativeInteger', 'xs:NMTOKEN', 'xs:NMTOKENS',\n    'xs:nonNegativeInteger', 'xs:nonPositiveInteger', 'xs:normalizedString', 'xs:NOTATION',\n    'xs:numeric', 'xs:positiveInteger', 'xs:precisionDecimal', 'xs:QName', 'xs:short', 'xs:string',\n    'xs:time', 'xs:token', 'xs:unsignedByte', 'xs:unsignedInt', 'xs:unsignedLong',\n    'xs:unsignedShort', 'xs:untyped', 'xs:untypedAtomic', 'xs:yearMonthDuration'];\n    for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;};\n\n    // each operator will add a property to kwObj with value of {type: \"operator\", style: \"keyword\"}\n    var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-'];\n    for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;};\n\n    // each axis_specifiers will add a property to kwObj with value of {type: \"axis_specifier\", style: \"qualifier\"}\n    var axis_specifiers = [\"self::\", \"attribute::\", \"child::\", \"descendant::\", \"descendant-or-self::\", \"parent::\",\n    \"ancestor::\", \"ancestor-or-self::\", \"following::\", \"preceding::\", \"following-sibling::\", \"preceding-sibling::\"];\n    for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; };\n\n    return kwObj;\n  }();\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  // the primary mode tokenizer\n  function tokenBase(stream, state) {\n    var ch = stream.next(),\n        mightBeFunction = false,\n        isEQName = isEQNameAhead(stream);\n\n    // an XML tag (if not in some sub, chained tokenizer)\n    if (ch == \"<\") {\n      if(stream.match(\"!--\", true))\n        return chain(stream, state, tokenXMLComment);\n\n      if(stream.match(\"![CDATA\", false)) {\n        state.tokenize = tokenCDATA;\n        return \"tag\";\n      }\n\n      if(stream.match(\"?\", false)) {\n        return chain(stream, state, tokenPreProcessing);\n      }\n\n      var isclose = stream.eat(\"/\");\n      stream.eatSpace();\n      var tagName = \"\", c;\n      while ((c = stream.eat(/[^\\s\\u00a0=<>\\\"\\'\\/?]/))) tagName += c;\n\n      return chain(stream, state, tokenTag(tagName, isclose));\n    }\n    // start code block\n    else if(ch == \"{\") {\n      pushStateStack(state, { type: \"codeblock\"});\n      return null;\n    }\n    // end code block\n    else if(ch == \"}\") {\n      popStateStack(state);\n      return null;\n    }\n    // if we're in an XML block\n    else if(isInXmlBlock(state)) {\n      if(ch == \">\")\n        return \"tag\";\n      else if(ch == \"/\" && stream.eat(\">\")) {\n        popStateStack(state);\n        return \"tag\";\n      }\n      else\n        return \"variable\";\n    }\n    // if a number\n    else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:E[+\\-]?\\d+)?/);\n      return \"atom\";\n    }\n    // comment start\n    else if (ch === \"(\" && stream.eat(\":\")) {\n      pushStateStack(state, { type: \"comment\"});\n      return chain(stream, state, tokenComment);\n    }\n    // quoted string\n    else if (!isEQName && (ch === '\"' || ch === \"'\"))\n      return chain(stream, state, tokenString(ch));\n    // variable\n    else if(ch === \"$\") {\n      return chain(stream, state, tokenVariable);\n    }\n    // assignment\n    else if(ch ===\":\" && stream.eat(\"=\")) {\n      return \"keyword\";\n    }\n    // open paren\n    else if(ch === \"(\") {\n      pushStateStack(state, { type: \"paren\"});\n      return null;\n    }\n    // close paren\n    else if(ch === \")\") {\n      popStateStack(state);\n      return null;\n    }\n    // open paren\n    else if(ch === \"[\") {\n      pushStateStack(state, { type: \"bracket\"});\n      return null;\n    }\n    // close paren\n    else if(ch === \"]\") {\n      popStateStack(state);\n      return null;\n    }\n    else {\n      var known = keywords.propertyIsEnumerable(ch) && keywords[ch];\n\n      // if there's a EQName ahead, consume the rest of the string portion, it's likely a function\n      if(isEQName && ch === '\\\"') while(stream.next() !== '\"'){}\n      if(isEQName && ch === '\\'') while(stream.next() !== '\\''){}\n\n      // gobble up a word if the character is not known\n      if(!known) stream.eatWhile(/[\\w\\$_-]/);\n\n      // gobble a colon in the case that is a lib func type call fn:doc\n      var foundColon = stream.eat(\":\");\n\n      // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier\n      // which should get matched as a keyword\n      if(!stream.eat(\":\") && foundColon) {\n        stream.eatWhile(/[\\w\\$_-]/);\n      }\n      // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort)\n      if(stream.match(/^[ \\t]*\\(/, false)) {\n        mightBeFunction = true;\n      }\n      // is the word a keyword?\n      var word = stream.current();\n      known = keywords.propertyIsEnumerable(word) && keywords[word];\n\n      // if we think it's a function call but not yet known,\n      // set style to variable for now for lack of something better\n      if(mightBeFunction && !known) known = {type: \"function_call\", style: \"variable def\"};\n\n      // if the previous word was element, attribute, axis specifier, this word should be the name of that\n      if(isInXmlConstructor(state)) {\n        popStateStack(state);\n        return \"variable\";\n      }\n      // as previously checked, if the word is element,attribute, axis specifier, call it an \"xmlconstructor\" and\n      // push the stack so we know to look for it on the next word\n      if(word == \"element\" || word == \"attribute\" || known.type == \"axis_specifier\") pushStateStack(state, {type: \"xmlconstructor\"});\n\n      // if the word is known, return the details of that else just call this a generic 'word'\n      return known ? known.style : \"variable\";\n    }\n  }\n\n  // handle comments, including nested\n  function tokenComment(stream, state) {\n    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        if(nestedCount > 0)\n          nestedCount--;\n        else {\n          popStateStack(state);\n          break;\n        }\n      }\n      else if(ch == \":\" && maybeNested) {\n        nestedCount++;\n      }\n      maybeEnd = (ch == \":\");\n      maybeNested = (ch == \"(\");\n    }\n\n    return \"comment\";\n  }\n\n  // tokenizer for string literals\n  // optionally pass a tokenizer function to set state.tokenize back to when finished\n  function tokenString(quote, f) {\n    return function(stream, state) {\n      var ch;\n\n      if(isInString(state) && stream.current() == quote) {\n        popStateStack(state);\n        if(f) state.tokenize = f;\n        return \"string\";\n      }\n\n      pushStateStack(state, { type: \"string\", name: quote, tokenize: tokenString(quote, f) });\n\n      // if we're in a string and in an XML block, allow an embedded code block\n      if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n        state.tokenize = tokenBase;\n        return \"string\";\n      }\n\n\n      while (ch = stream.next()) {\n        if (ch ==  quote) {\n          popStateStack(state);\n          if(f) state.tokenize = f;\n          break;\n        }\n        else {\n          // if we're in a string and in an XML block, allow an embedded code block in an attribute\n          if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n            state.tokenize = tokenBase;\n            return \"string\";\n          }\n\n        }\n      }\n\n      return \"string\";\n    };\n  }\n\n  // tokenizer for variables\n  function tokenVariable(stream, state) {\n    var isVariableChar = /[\\w\\$_-]/;\n\n    // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote\n    if(stream.eat(\"\\\"\")) {\n      while(stream.next() !== '\\\"'){};\n      stream.eat(\":\");\n    } else {\n      stream.eatWhile(isVariableChar);\n      if(!stream.match(\":=\", false)) stream.eat(\":\");\n    }\n    stream.eatWhile(isVariableChar);\n    state.tokenize = tokenBase;\n    return \"variable\";\n  }\n\n  // tokenizer for XML tags\n  function tokenTag(name, isclose) {\n    return function(stream, state) {\n      stream.eatSpace();\n      if(isclose && stream.eat(\">\")) {\n        popStateStack(state);\n        state.tokenize = tokenBase;\n        return \"tag\";\n      }\n      // self closing tag without attributes?\n      if(!stream.eat(\"/\"))\n        pushStateStack(state, { type: \"tag\", name: name, tokenize: tokenBase});\n      if(!stream.eat(\">\")) {\n        state.tokenize = tokenAttribute;\n        return \"tag\";\n      }\n      else {\n        state.tokenize = tokenBase;\n      }\n      return \"tag\";\n    };\n  }\n\n  // tokenizer for XML attributes\n  function tokenAttribute(stream, state) {\n    var ch = stream.next();\n\n    if(ch == \"/\" && stream.eat(\">\")) {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      if(isInXmlBlock(state)) popStateStack(state);\n      return \"tag\";\n    }\n    if(ch == \">\") {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      return \"tag\";\n    }\n    if(ch == \"=\")\n      return null;\n    // quoted string\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch, tokenAttribute));\n\n    if(!isInXmlAttributeBlock(state))\n      pushStateStack(state, { type: \"attribute\", tokenize: tokenAttribute});\n\n    stream.eat(/[a-zA-Z_:]/);\n    stream.eatWhile(/[-a-zA-Z0-9_:.]/);\n    stream.eatSpace();\n\n    // the case where the attribute has not value and the tag was closed\n    if(stream.match(\">\", false) || stream.match(\"/\", false)) {\n      popStateStack(state);\n      state.tokenize = tokenBase;\n    }\n\n    return \"attribute\";\n  }\n\n  // handle comments, including nested\n  function tokenXMLComment(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"-\" && stream.match(\"->\", true)) {\n        state.tokenize = tokenBase;\n        return \"comment\";\n      }\n    }\n  }\n\n\n  // handle CDATA\n  function tokenCDATA(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"]\" && stream.match(\"]\", true)) {\n        state.tokenize = tokenBase;\n        return \"comment\";\n      }\n    }\n  }\n\n  // handle preprocessing instructions\n  function tokenPreProcessing(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"?\" && stream.match(\">\", true)) {\n        state.tokenize = tokenBase;\n        return \"comment meta\";\n      }\n    }\n  }\n\n\n  // functions to test the current context of the state\n  function isInXmlBlock(state) { return isIn(state, \"tag\"); }\n  function isInXmlAttributeBlock(state) { return isIn(state, \"attribute\"); }\n  function isInXmlConstructor(state) { return isIn(state, \"xmlconstructor\"); }\n  function isInString(state) { return isIn(state, \"string\"); }\n\n  function isEQNameAhead(stream) {\n    // assume we've already eaten a quote (\")\n    if(stream.current() === '\"')\n      return stream.match(/^[^\\\"]+\\\"\\:/, false);\n    else if(stream.current() === '\\'')\n      return stream.match(/^[^\\\"]+\\'\\:/, false);\n    else\n      return false;\n  }\n\n  function isIn(state, type) {\n    return (state.stack.length && state.stack[state.stack.length - 1].type == type);\n  }\n\n  function pushStateStack(state, newState) {\n    state.stack.push(newState);\n  }\n\n  function popStateStack(state) {\n    state.stack.pop();\n    var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize;\n    state.tokenize = reinstateTokenize || tokenBase;\n  }\n\n  // the interface for the mode API\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        cc: [],\n        stack: []\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n\n    blockCommentStart: \"(:\",\n    blockCommentEnd: \":)\"\n\n  };\n\n});\n\nCodeMirror.defineMIME(\"application/xquery\", \"xquery\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/yacas/yacas.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Yacas mode copyright (c) 2015 by Grzegorz Mazur\n// Loosely based on mathematica mode by Calin Barbat\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('yacas', function(_config, _parserConfig) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var bodiedOps = words(\"Assert BackQuote D Defun Deriv For ForEach FromFile \" +\n                        \"FromString Function Integrate InverseTaylor Limit \" +\n                        \"LocalSymbols Macro MacroRule MacroRulePattern \" +\n                        \"NIntegrate Rule RulePattern Subst TD TExplicitSum \" +\n                        \"TSum Taylor Taylor1 Taylor2 Taylor3 ToFile \" +\n                        \"ToStdout ToString TraceRule Until While\");\n\n  // patterns\n  var pFloatForm  = \"(?:(?:\\\\.\\\\d+|\\\\d+\\\\.\\\\d*|\\\\d+)(?:[eE][+-]?\\\\d+)?)\";\n  var pIdentifier = \"(?:[a-zA-Z\\\\$'][a-zA-Z0-9\\\\$']*)\";\n\n  // regular expressions\n  var reFloatForm    = new RegExp(pFloatForm);\n  var reIdentifier   = new RegExp(pIdentifier);\n  var rePattern      = new RegExp(pIdentifier + \"?_\" + pIdentifier);\n  var reFunctionLike = new RegExp(pIdentifier + \"\\\\s*\\\\(\");\n\n  function tokenBase(stream, state) {\n    var ch;\n\n    // get next character\n    ch = stream.next();\n\n    // string\n    if (ch === '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n\n    // comment\n    if (ch === '/') {\n      if (stream.eat('*')) {\n        state.tokenize = tokenComment;\n        return state.tokenize(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n\n    // go back one character\n    stream.backUp(1);\n\n    // update scope info\n    var m = stream.match(/^(\\w+)\\s*\\(/, false);\n    if (m !== null && bodiedOps.hasOwnProperty(m[1]))\n      state.scopes.push('bodied');\n\n    var scope = currentScope(state);\n\n    if (scope === 'bodied' && ch === '[')\n      state.scopes.pop();\n\n    if (ch === '[' || ch === '{' || ch === '(')\n      state.scopes.push(ch);\n\n    scope = currentScope(state);\n\n    if (scope === '[' && ch === ']' ||\n        scope === '{' && ch === '}' ||\n        scope === '(' && ch === ')')\n      state.scopes.pop();\n\n    if (ch === ';') {\n      while (scope === 'bodied') {\n        state.scopes.pop();\n        scope = currentScope(state);\n      }\n    }\n\n    // look for ordered rules\n    if (stream.match(/\\d+ *#/, true, false)) {\n      return 'qualifier';\n    }\n\n    // look for numbers\n    if (stream.match(reFloatForm, true, false)) {\n      return 'number';\n    }\n\n    // look for placeholders\n    if (stream.match(rePattern, true, false)) {\n      return 'variable-3';\n    }\n\n    // match all braces separately\n    if (stream.match(/(?:\\[|\\]|{|}|\\(|\\))/, true, false)) {\n      return 'bracket';\n    }\n\n    // literals looking like function calls\n    if (stream.match(reFunctionLike, true, false)) {\n      stream.backUp(1);\n      return 'variable';\n    }\n\n    // all other identifiers\n    if (stream.match(reIdentifier, true, false)) {\n      return 'variable-2';\n    }\n\n    // operators; note that operators like @@ or /; are matched separately for each symbol.\n    if (stream.match(/(?:\\\\|\\+|\\-|\\*|\\/|,|;|\\.|:|@|~|=|>|<|&|\\||_|`|'|\\^|\\?|!|%|#)/, true, false)) {\n      return 'operator';\n    }\n\n    // everything else is an error\n    return 'error';\n  }\n\n  function tokenString(stream, state) {\n    var next, end = false, escaped = false;\n    while ((next = stream.next()) != null) {\n      if (next === '\"' && !escaped) {\n        end = true;\n        break;\n      }\n      escaped = !escaped && next === '\\\\';\n    }\n    if (end && !escaped) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  };\n\n  function tokenComment(stream, state) {\n    var prev, next;\n    while((next = stream.next()) != null) {\n      if (prev === '*' && next === '/') {\n        state.tokenize = tokenBase;\n        break;\n      }\n      prev = next;\n    }\n    return 'comment';\n  }\n\n  function currentScope(state) {\n    var scope = null;\n    if (state.scopes.length > 0)\n      scope = state.scopes[state.scopes.length - 1];\n    return scope;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        scopes: []\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    },\n    indent: function(state, textAfter) {\n      if (state.tokenize !== tokenBase && state.tokenize !== null)\n        return CodeMirror.Pass;\n\n      var delta = 0;\n      if (textAfter === ']' || textAfter === '];' ||\n          textAfter === '}' || textAfter === '};' ||\n          textAfter === ');')\n        delta = -1;\n\n      return (state.scopes.length + delta) * _config.indentUnit;\n    },\n    electricChars: \"{}[]();\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME('text/x-yacas', {\n  name: 'yacas'\n});\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/yaml/yaml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"yaml\", function() {\n\n  var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];\n  var keywordRegex = new RegExp(\"\\\\b((\"+cons.join(\")|(\")+\"))$\", 'i');\n\n  return {\n    token: function(stream, state) {\n      var ch = stream.peek();\n      var esc = state.escaped;\n      state.escaped = false;\n      /* comments */\n      if (ch == \"#\" && (stream.pos == 0 || /\\s/.test(stream.string.charAt(stream.pos - 1)))) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (stream.match(/^('([^']|\\\\.)*'?|\"([^\"]|\\\\.)*\"?)/))\n        return \"string\";\n\n      if (state.literal && stream.indentation() > state.keyCol) {\n        stream.skipToEnd(); return \"string\";\n      } else if (state.literal) { state.literal = false; }\n      if (stream.sol()) {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        /* document start */\n        if(stream.match('---')) { return \"def\"; }\n        /* document end */\n        if (stream.match('...')) { return \"def\"; }\n        /* array list item */\n        if (stream.match(/\\s*-\\s+/)) { return 'meta'; }\n      }\n      /* inline pairs/lists */\n      if (stream.match(/^(\\{|\\}|\\[|\\])/)) {\n        if (ch == '{')\n          state.inlinePairs++;\n        else if (ch == '}')\n          state.inlinePairs--;\n        else if (ch == '[')\n          state.inlineList++;\n        else\n          state.inlineList--;\n        return 'meta';\n      }\n\n      /* list separator */\n      if (state.inlineList > 0 && !esc && ch == ',') {\n        stream.next();\n        return 'meta';\n      }\n      /* pairs separator */\n      if (state.inlinePairs > 0 && !esc && ch == ',') {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        stream.next();\n        return 'meta';\n      }\n\n      /* start of value of a pair */\n      if (state.pairStart) {\n        /* block literals */\n        if (stream.match(/^\\s*(\\||\\>)\\s*/)) { state.literal = true; return 'meta'; };\n        /* references */\n        if (stream.match(/^\\s*(\\&|\\*)[a-z0-9\\._-]+\\b/i)) { return 'variable-2'; }\n        /* numbers */\n        if (state.inlinePairs == 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?$/)) { return 'number'; }\n        if (state.inlinePairs > 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?(?=(,|}))/)) { return 'number'; }\n        /* keywords */\n        if (stream.match(keywordRegex)) { return 'keyword'; }\n      }\n\n      /* pairs (associative arrays) -> key */\n      if (!state.pair && stream.match(/^\\s*(?:[,\\[\\]{}&*!|>'\"%@`][^\\s'\":]|[^,\\[\\]{}#&*!|>'\"%@`])[^#]*?(?=\\s*:($|\\s))/)) {\n        state.pair = true;\n        state.keyCol = stream.indentation();\n        return \"atom\";\n      }\n      if (state.pair && stream.match(/^:\\s*/)) { state.pairStart = true; return 'meta'; }\n\n      /* nothing found, continue */\n      state.pairStart = false;\n      state.escaped = (ch == '\\\\');\n      stream.next();\n      return null;\n    },\n    startState: function() {\n      return {\n        pair: false,\n        pairStart: false,\n        keyCol: 0,\n        inlinePairs: 0,\n        inlineList: 0,\n        literal: false,\n        escaped: false\n      };\n    },\n    lineComment: \"#\",\n    fold: \"indent\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-yaml\", \"yaml\");\nCodeMirror.defineMIME(\"text/yaml\", \"yaml\");\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../yaml/yaml\"))\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../yaml/yaml\"], mod)\n  else // Plain browser env\n    mod(CodeMirror)\n})(function (CodeMirror) {\n\n  var START = 0, FRONTMATTER = 1, BODY = 2\n\n  // a mixed mode for Markdown text with an optional YAML front matter\n  CodeMirror.defineMode(\"yaml-frontmatter\", function (config, parserConfig) {\n    var yamlMode = CodeMirror.getMode(config, \"yaml\")\n    var innerMode = CodeMirror.getMode(config, parserConfig && parserConfig.base || \"gfm\")\n\n    function curMode(state) {\n      return state.state == BODY ? innerMode : yamlMode\n    }\n\n    return {\n      startState: function () {\n        return {\n          state: START,\n          inner: CodeMirror.startState(yamlMode)\n        }\n      },\n      copyState: function (state) {\n        return {\n          state: state.state,\n          inner: CodeMirror.copyState(curMode(state), state.inner)\n        }\n      },\n      token: function (stream, state) {\n        if (state.state == START) {\n          if (stream.match('---', false)) {\n            state.state = FRONTMATTER\n            return yamlMode.token(stream, state.inner)\n          } else {\n            state.state = BODY\n            state.inner = CodeMirror.startState(innerMode)\n            return innerMode.token(stream, state.inner)\n          }\n        } else if (state.state == FRONTMATTER) {\n          var end = stream.sol() && stream.match(/(---|\\.\\.\\.)/, false)\n          var style = yamlMode.token(stream, state.inner)\n          if (end) {\n            state.state = BODY\n            state.inner = CodeMirror.startState(innerMode)\n          }\n          return style\n        } else {\n          return innerMode.token(stream, state.inner)\n        }\n      },\n      innerMode: function (state) {\n        return {mode: curMode(state), state: state.inner}\n      },\n      blankLine: function (state) {\n        var mode = curMode(state)\n        if (mode.blankLine) return mode.blankLine(state.inner)\n      }\n    }\n  })\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/mode/z80/z80.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n  mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n  define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n  mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('z80', function(_config, parserConfig) {\n  var ez80 = parserConfig.ez80;\n  var keywords1, keywords2;\n  if (ez80) {\n    keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\\.([sl]?i)?[sl])?\\b/i;\n    keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\\.([sl]?i)?[sl])?)|(rs|st)mix)\\b/i;\n  } else {\n    keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\\b/i;\n    keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\\b/i;\n  }\n\n  var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\\b/i;\n  var variables2 = /^(n?[zc]|p[oe]?|m)\\b/i;\n  var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\\b/i;\n  var numbers = /^([\\da-f]+h|[0-7]+o|[01]+b|\\d+d?)\\b/i;\n\n  return {\n    startState: function() {\n      return {\n        context: 0\n      };\n    },\n    token: function(stream, state) {\n      if (!stream.column())\n        state.context = 0;\n\n      if (stream.eatSpace())\n        return null;\n\n      var w;\n\n      if (stream.eatWhile(/\\w/)) {\n        if (ez80 && stream.eat('.')) {\n          stream.eatWhile(/\\w/);\n        }\n        w = stream.current();\n\n        if (stream.indentation()) {\n          if ((state.context == 1 || state.context == 4) && variables1.test(w)) {\n            state.context = 4;\n            return 'var2';\n          }\n\n          if (state.context == 2 && variables2.test(w)) {\n            state.context = 4;\n            return 'var3';\n          }\n\n          if (keywords1.test(w)) {\n            state.context = 1;\n            return 'keyword';\n          } else if (keywords2.test(w)) {\n            state.context = 2;\n            return 'keyword';\n          } else if (state.context == 4 && numbers.test(w)) {\n            return 'number';\n          }\n\n          if (errors.test(w))\n            return 'error';\n        } else if (stream.match(numbers)) {\n          return 'number';\n        } else {\n          return null;\n        }\n      } else if (stream.eat(';')) {\n        stream.skipToEnd();\n        return 'comment';\n      } else if (stream.eat('\"')) {\n        while (w = stream.next()) {\n          if (w == '\"')\n            break;\n\n          if (w == '\\\\')\n            stream.next();\n        }\n        return 'string';\n      } else if (stream.eat('\\'')) {\n        if (stream.match(/\\\\?.'/))\n          return 'number';\n      } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {\n        state.context = 5;\n\n        if (stream.eatWhile(/\\w/))\n          return 'def';\n      } else if (stream.eat('$')) {\n        if (stream.eatWhile(/[\\da-f]/i))\n          return 'number';\n      } else if (stream.eat('%')) {\n        if (stream.eatWhile(/[01]/))\n          return 'number';\n      } else {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-z80\", \"z80\");\nCodeMirror.defineMIME(\"text/x-ez80\", { name: \"z80\", ez80: true });\n\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/3024-day.css",
    "content": "/*\n\n    Name:       3024 day\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }\n.cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }\n\n.cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }\n.cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }\n\n.cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }\n.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }\n.cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }\n\n.cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }\n\n.cm-s-3024-day span.cm-comment { color: #cdab53; }\n.cm-s-3024-day span.cm-atom { color: #a16a94; }\n.cm-s-3024-day span.cm-number { color: #a16a94; }\n\n.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }\n.cm-s-3024-day span.cm-keyword { color: #db2d20; }\n.cm-s-3024-day span.cm-string { color: #fded02; }\n\n.cm-s-3024-day span.cm-variable { color: #01a252; }\n.cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }\n.cm-s-3024-day span.cm-def { color: #e8bbd0; }\n.cm-s-3024-day span.cm-bracket { color: #3a3432; }\n.cm-s-3024-day span.cm-tag { color: #db2d20; }\n.cm-s-3024-day span.cm-link { color: #a16a94; }\n.cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }\n\n.cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/3024-night.css",
    "content": "/*\n\n    Name:       3024 night\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-night.CodeMirror { background: #090300; color: #d6d5d4; }\n.cm-s-3024-night div.CodeMirror-selected { background: #3a3432; }\n.cm-s-3024-night .CodeMirror-line::selection, .cm-s-3024-night .CodeMirror-line > span::selection, .cm-s-3024-night .CodeMirror-line > span > span::selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night .CodeMirror-line::-moz-selection, .cm-s-3024-night .CodeMirror-line > span::-moz-selection, .cm-s-3024-night .CodeMirror-line > span > span::-moz-selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night .CodeMirror-gutters { background: #090300; border-right: 0px; }\n.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }\n.cm-s-3024-night .CodeMirror-linenumber { color: #5c5855; }\n\n.cm-s-3024-night .CodeMirror-cursor { border-left: 1px solid #807d7c; }\n\n.cm-s-3024-night span.cm-comment { color: #cdab53; }\n.cm-s-3024-night span.cm-atom { color: #a16a94; }\n.cm-s-3024-night span.cm-number { color: #a16a94; }\n\n.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute { color: #01a252; }\n.cm-s-3024-night span.cm-keyword { color: #db2d20; }\n.cm-s-3024-night span.cm-string { color: #fded02; }\n\n.cm-s-3024-night span.cm-variable { color: #01a252; }\n.cm-s-3024-night span.cm-variable-2 { color: #01a0e4; }\n.cm-s-3024-night span.cm-def { color: #e8bbd0; }\n.cm-s-3024-night span.cm-bracket { color: #d6d5d4; }\n.cm-s-3024-night span.cm-tag { color: #db2d20; }\n.cm-s-3024-night span.cm-link { color: #a16a94; }\n.cm-s-3024-night span.cm-error { background: #db2d20; color: #807d7c; }\n\n.cm-s-3024-night .CodeMirror-activeline-background { background: #2F2F2F; }\n.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/abcdef.css",
    "content": ".cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }\n.cm-s-abcdef div.CodeMirror-selected { background: #515151; }\n.cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }\n.cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }\n.cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }\n.cm-s-abcdef .CodeMirror-guttermarker { color: #222; }\n.cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }\n.cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }\n.cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }\n\n.cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }\n.cm-s-abcdef span.cm-atom { color: #77F; }\n.cm-s-abcdef span.cm-number { color: violet; }\n.cm-s-abcdef span.cm-def { color: #fffabc; }\n.cm-s-abcdef span.cm-variable { color: #abcdef; }\n.cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }\n.cm-s-abcdef span.cm-variable-3, .cm-s-abcdef span.cm-type { color: #def; }\n.cm-s-abcdef span.cm-property { color: #fedcba; }\n.cm-s-abcdef span.cm-operator { color: #ff0; }\n.cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}\n.cm-s-abcdef span.cm-string { color: #2b4; }\n.cm-s-abcdef span.cm-meta { color: #C9F; }\n.cm-s-abcdef span.cm-qualifier { color: #FFF700; }\n.cm-s-abcdef span.cm-builtin { color: #30aabc; }\n.cm-s-abcdef span.cm-bracket { color: #8a8a8a; }\n.cm-s-abcdef span.cm-tag { color: #FFDD44; }\n.cm-s-abcdef span.cm-attribute { color: #DDFF00; }\n.cm-s-abcdef span.cm-error { color: #FF0000; }\n.cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }\n.cm-s-abcdef span.cm-link { color: blueviolet; }\n\n.cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ambiance-mobile.css",
    "content": ".cm-s-ambiance.CodeMirror {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ambiance.css",
    "content": "/* ambiance theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-ambiance .cm-header { color: blue; }\n.cm-s-ambiance .cm-quote { color: #24C2C7; }\n\n.cm-s-ambiance .cm-keyword { color: #cda869; }\n.cm-s-ambiance .cm-atom { color: #CF7EA9; }\n.cm-s-ambiance .cm-number { color: #78CF8A; }\n.cm-s-ambiance .cm-def { color: #aac6e3; }\n.cm-s-ambiance .cm-variable { color: #ffb795; }\n.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }\n.cm-s-ambiance .cm-variable-3, .cm-s-ambiance .cm-type { color: #faded3; }\n.cm-s-ambiance .cm-property { color: #eed1b3; }\n.cm-s-ambiance .cm-operator { color: #fa8d6a; }\n.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }\n.cm-s-ambiance .cm-string { color: #8f9d6a; }\n.cm-s-ambiance .cm-string-2 { color: #9d937c; }\n.cm-s-ambiance .cm-meta { color: #D2A8A1; }\n.cm-s-ambiance .cm-qualifier { color: yellow; }\n.cm-s-ambiance .cm-builtin { color: #9999cc; }\n.cm-s-ambiance .cm-bracket { color: #24C2C7; }\n.cm-s-ambiance .cm-tag { color: #fee4ff; }\n.cm-s-ambiance .cm-attribute { color: #9B859D; }\n.cm-s-ambiance .cm-hr { color: pink; }\n.cm-s-ambiance .cm-link { color: #F4C20B; }\n.cm-s-ambiance .cm-special { color: #FF9D00; }\n.cm-s-ambiance .cm-error { color: #AF2018; }\n\n.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }\n.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }\n\n.cm-s-ambiance div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }\n.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance .CodeMirror-line::selection, .cm-s-ambiance .CodeMirror-line > span::selection, .cm-s-ambiance .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance .CodeMirror-line::-moz-selection, .cm-s-ambiance .CodeMirror-line > span::-moz-selection, .cm-s-ambiance .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n\n/* Editor styling */\n\n.cm-s-ambiance.CodeMirror {\n  line-height: 1.40em;\n  color: #E6E1DC;\n  background-color: #202020;\n  -webkit-box-shadow: inset 0 0 10px black;\n  -moz-box-shadow: inset 0 0 10px black;\n  box-shadow: inset 0 0 10px black;\n}\n\n.cm-s-ambiance .CodeMirror-gutters {\n  background: #3D3D3D;\n  border-right: 1px solid #4D4D4D;\n  box-shadow: 0 10px 20px black;\n}\n\n.cm-s-ambiance .CodeMirror-linenumber {\n  text-shadow: 0px 1px 1px #4d4d4d;\n  color: #111;\n  padding: 0 5px;\n}\n\n.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }\n.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }\n\n.cm-s-ambiance .CodeMirror-cursor { border-left: 1px solid #7991E8; }\n\n.cm-s-ambiance .CodeMirror-activeline-background {\n  background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);\n}\n\n.cm-s-ambiance.CodeMirror,\n.cm-s-ambiance .CodeMirror-gutters {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ayu-dark.css",
    "content": "/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; }  \n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\n\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ayu-mirage.css",
    "content": "/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-mirage.CodeMirror { background: #1f2430; color: #cbccc6; }\n.cm-s-ayu-mirage div.CodeMirror-selected { background: #34455a; }\n.cm-s-ayu-mirage .CodeMirror-line::selection, .cm-s-ayu-mirage .CodeMirror-line > span::selection, .cm-s-ayu-mirage .CodeMirror-line > span > span::selection { background: #34455a; }\n.cm-s-ayu-mirage .CodeMirror-line::-moz-selection, .cm-s-ayu-mirage .CodeMirror-line > span::-moz-selection, .cm-s-ayu-mirage .CodeMirror-line > span > span::-moz-selection { background: rgba(25, 30, 42, 99); }\n.cm-s-ayu-mirage .CodeMirror-gutters { background: #1f2430; border-right: 0px; }\n.cm-s-ayu-mirage .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-mirage .CodeMirror-guttermarker-subtle { color:  rgba(112, 122, 140, 66); }\n.cm-s-ayu-mirage .CodeMirror-linenumber { color: rgba(61, 66, 77, 99); }\n.cm-s-ayu-mirage .CodeMirror-cursor { border-left: 1px solid #ffcc66; }\n\n.cm-s-ayu-mirage span.cm-comment { color: #5c6773; font-style:italic; }\n.cm-s-ayu-mirage span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-mirage span.cm-number { color: #ffcc66; }\n\n.cm-s-ayu-mirage span.cm-comment.cm-attribute { color: #ffd580; }\n.cm-s-ayu-mirage span.cm-comment.cm-def { color: #d4bfff; }\n.cm-s-ayu-mirage span.cm-comment.cm-tag { color: #5ccfe6; }\n.cm-s-ayu-mirage span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-mirage span.cm-property { color: #f29e74; }\n.cm-s-ayu-mirage span.cm-attribute { color: #ffd580; }  \n.cm-s-ayu-mirage span.cm-keyword { color: #ffa759; } \n.cm-s-ayu-mirage span.cm-builtin { color: #ffcc66; }\n.cm-s-ayu-mirage span.cm-string { color: #bae67e; }\n\n.cm-s-ayu-mirage span.cm-variable { color: #cbccc6; }\n.cm-s-ayu-mirage span.cm-variable-2 { color: #f28779; }\n.cm-s-ayu-mirage span.cm-variable-3 { color: #5ccfe6; }\n.cm-s-ayu-mirage span.cm-type { color: #ffa759; }\n.cm-s-ayu-mirage span.cm-def { color: #ffd580; }\n.cm-s-ayu-mirage span.cm-bracket { color: rgba(92, 207, 230, 80); }\n.cm-s-ayu-mirage span.cm-tag { color: #5ccfe6; }\n.cm-s-ayu-mirage span.cm-header { color: #bae67e; }\n.cm-s-ayu-mirage span.cm-link { color: #5ccfe6; }\n.cm-s-ayu-mirage span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-mirage .CodeMirror-activeline-background { background: #191e2a; }\n.cm-s-ayu-mirage .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/base16-dark.css",
    "content": "/*\n\n    Name:       Base16 Default Dark\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-dark.CodeMirror { background: #151515; color: #e0e0e0; }\n.cm-s-base16-dark div.CodeMirror-selected { background: #303030; }\n.cm-s-base16-dark .CodeMirror-line::selection, .cm-s-base16-dark .CodeMirror-line > span::selection, .cm-s-base16-dark .CodeMirror-line > span > span::selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark .CodeMirror-line::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark .CodeMirror-gutters { background: #151515; border-right: 0px; }\n.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }\n.cm-s-base16-dark .CodeMirror-linenumber { color: #505050; }\n.cm-s-base16-dark .CodeMirror-cursor { border-left: 1px solid #b0b0b0; }\n\n.cm-s-base16-dark span.cm-comment { color: #8f5536; }\n.cm-s-base16-dark span.cm-atom { color: #aa759f; }\n.cm-s-base16-dark span.cm-number { color: #aa759f; }\n\n.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute { color: #90a959; }\n.cm-s-base16-dark span.cm-keyword { color: #ac4142; }\n.cm-s-base16-dark span.cm-string { color: #f4bf75; }\n\n.cm-s-base16-dark span.cm-variable { color: #90a959; }\n.cm-s-base16-dark span.cm-variable-2 { color: #6a9fb5; }\n.cm-s-base16-dark span.cm-def { color: #d28445; }\n.cm-s-base16-dark span.cm-bracket { color: #e0e0e0; }\n.cm-s-base16-dark span.cm-tag { color: #ac4142; }\n.cm-s-base16-dark span.cm-link { color: #aa759f; }\n.cm-s-base16-dark span.cm-error { background: #ac4142; color: #b0b0b0; }\n\n.cm-s-base16-dark .CodeMirror-activeline-background { background: #202020; }\n.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/base16-light.css",
    "content": "/*\n\n    Name:       Base16 Default Light\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-light.CodeMirror { background: #f5f5f5; color: #202020; }\n.cm-s-base16-light div.CodeMirror-selected { background: #e0e0e0; }\n.cm-s-base16-light .CodeMirror-line::selection, .cm-s-base16-light .CodeMirror-line > span::selection, .cm-s-base16-light .CodeMirror-line > span > span::selection { background: #e0e0e0; }\n.cm-s-base16-light .CodeMirror-line::-moz-selection, .cm-s-base16-light .CodeMirror-line > span::-moz-selection, .cm-s-base16-light .CodeMirror-line > span > span::-moz-selection { background: #e0e0e0; }\n.cm-s-base16-light .CodeMirror-gutters { background: #f5f5f5; border-right: 0px; }\n.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }\n.cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }\n.cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }\n\n.cm-s-base16-light span.cm-comment { color: #8f5536; }\n.cm-s-base16-light span.cm-atom { color: #aa759f; }\n.cm-s-base16-light span.cm-number { color: #aa759f; }\n\n.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }\n.cm-s-base16-light span.cm-keyword { color: #ac4142; }\n.cm-s-base16-light span.cm-string { color: #f4bf75; }\n\n.cm-s-base16-light span.cm-variable { color: #90a959; }\n.cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }\n.cm-s-base16-light span.cm-def { color: #d28445; }\n.cm-s-base16-light span.cm-bracket { color: #202020; }\n.cm-s-base16-light span.cm-tag { color: #ac4142; }\n.cm-s-base16-light span.cm-link { color: #aa759f; }\n.cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }\n\n.cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }\n.cm-s-base16-light .CodeMirror-matchingbracket { color: #f5f5f5 !important; background-color: #6A9FB5 !important}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/bespin.css",
    "content": "/*\n\n    Name:       Bespin\n    Author:     Mozilla / Jan T. Sott\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}\n.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}\n.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}\n.cm-s-bespin .CodeMirror-linenumber {color: #666666;}\n.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}\n\n.cm-s-bespin span.cm-comment {color: #937121;}\n.cm-s-bespin span.cm-atom {color: #9b859d;}\n.cm-s-bespin span.cm-number {color: #9b859d;}\n\n.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}\n.cm-s-bespin span.cm-keyword {color: #cf6a4c;}\n.cm-s-bespin span.cm-string {color: #f9ee98;}\n\n.cm-s-bespin span.cm-variable {color: #54be0d;}\n.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}\n.cm-s-bespin span.cm-def {color: #cf7d34;}\n.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}\n.cm-s-bespin span.cm-bracket {color: #9d9b97;}\n.cm-s-bespin span.cm-tag {color: #cf6a4c;}\n.cm-s-bespin span.cm-link {color: #9b859d;}\n\n.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/blackboard.css",
    "content": "/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/cobalt.css",
    "content": ".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/colorforth.css",
    "content": ".cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }\n.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }\n.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }\n.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-colorforth span.cm-comment     { color: #ededed; }\n.cm-s-colorforth span.cm-def         { color: #ff1c1c; font-weight:bold; }\n.cm-s-colorforth span.cm-keyword     { color: #ffd900; }\n.cm-s-colorforth span.cm-builtin     { color: #00d95a; }\n.cm-s-colorforth span.cm-variable    { color: #73ff00; }\n.cm-s-colorforth span.cm-string      { color: #007bff; }\n.cm-s-colorforth span.cm-number      { color: #00c4ff; }\n.cm-s-colorforth span.cm-atom        { color: #606060; }\n\n.cm-s-colorforth span.cm-variable-2  { color: #EEE; }\n.cm-s-colorforth span.cm-variable-3, .cm-s-colorforth span.cm-type { color: #DDD; }\n.cm-s-colorforth span.cm-property    {}\n.cm-s-colorforth span.cm-operator    {}\n\n.cm-s-colorforth span.cm-meta        { color: yellow; }\n.cm-s-colorforth span.cm-qualifier   { color: #FFF700; }\n.cm-s-colorforth span.cm-bracket     { color: #cc7; }\n.cm-s-colorforth span.cm-tag         { color: #FFBD40; }\n.cm-s-colorforth span.cm-attribute   { color: #FFF700; }\n.cm-s-colorforth span.cm-error       { color: #f00; }\n\n.cm-s-colorforth div.CodeMirror-selected { background: #333d53; }\n\n.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }\n\n.cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/darcula.css",
    "content": "/**\n    Name: IntelliJ IDEA darcula theme\n    From IntelliJ IDEA by JetBrains\n */\n\n.cm-s-darcula  { font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;}\n.cm-s-darcula.CodeMirror { background: #2B2B2B; color: #A9B7C6; }\n\n.cm-s-darcula span.cm-meta { color: #BBB529; }\n.cm-s-darcula span.cm-number { color: #6897BB; }\n.cm-s-darcula span.cm-keyword { color: #CC7832; line-height: 1em; font-weight: bold; }\n.cm-s-darcula span.cm-def { color: #A9B7C6; font-style: italic; }\n.cm-s-darcula span.cm-variable { color: #A9B7C6; }\n.cm-s-darcula span.cm-variable-2 { color: #A9B7C6; }\n.cm-s-darcula span.cm-variable-3 { color: #9876AA; }\n.cm-s-darcula span.cm-type { color: #AABBCC; font-weight: bold; }\n.cm-s-darcula span.cm-property { color: #FFC66D; }\n.cm-s-darcula span.cm-operator { color: #A9B7C6; }\n.cm-s-darcula span.cm-string { color: #6A8759; }\n.cm-s-darcula span.cm-string-2 { color: #6A8759; }\n.cm-s-darcula span.cm-comment { color: #61A151; font-style: italic; }\n.cm-s-darcula span.cm-link { color: #CC7832; }\n.cm-s-darcula span.cm-atom { color: #CC7832; }\n.cm-s-darcula span.cm-error { color: #BC3F3C; }\n.cm-s-darcula span.cm-tag { color: #629755; font-weight: bold; font-style: italic; text-decoration: underline; }\n.cm-s-darcula span.cm-attribute { color: #6897bb; }\n.cm-s-darcula span.cm-qualifier { color: #6A8759; }\n.cm-s-darcula span.cm-bracket { color: #A9B7C6; }\n.cm-s-darcula span.cm-builtin { color: #FF9E59; }\n.cm-s-darcula span.cm-special { color: #FF9E59; }\n.cm-s-darcula span.cm-matchhighlight { color: #FFFFFF; background-color: rgba(50, 89, 48, .7); font-weight: normal;}\n.cm-s-darcula span.cm-searching { color: #FFFFFF; background-color: rgba(61, 115, 59, .7); font-weight: normal;}\n\n.cm-s-darcula .CodeMirror-cursor { border-left: 1px solid #A9B7C6; }\n.cm-s-darcula .CodeMirror-activeline-background { background: #323232; }\n.cm-s-darcula .CodeMirror-gutters { background: #313335; border-right: 1px solid #313335; }\n.cm-s-darcula .CodeMirror-guttermarker { color: #FFEE80; }\n.cm-s-darcula .CodeMirror-guttermarker-subtle { color: #D0D0D0; }\n.cm-s-darcula .CodeMirrir-linenumber { color: #606366; }\n.cm-s-darcula .CodeMirror-matchingbracket { background-color: #3B514D; color: #FFEF28 !important; font-weight: bold; }\n\n.cm-s-darcula div.CodeMirror-selected { background: #214283; }\n\n.CodeMirror-hints.darcula {\n  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\n  color: #9C9E9E;\n  background-color: #3B3E3F !important;\n}\n\n.CodeMirror-hints.darcula .CodeMirror-hint-active {\n  background-color: #494D4E !important;\n  color: #9C9E9E !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/dracula.css",
    "content": "/*\n\n    Name:       dracula\n    Author:     Michael Kaminsky (http://github.com/mkaminsky11)\n\n    Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)\n\n*/\n\n\n.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {\n  background-color: #282a36 !important;\n  color: #f8f8f2 !important;\n  border: none;\n}\n.cm-s-dracula .CodeMirror-gutters { color: #282a36; }\n.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }\n.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }\n.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-dracula span.cm-comment { color: #6272a4; }\n.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }\n.cm-s-dracula span.cm-number { color: #bd93f9; }\n.cm-s-dracula span.cm-variable { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-2 { color: white; }\n.cm-s-dracula span.cm-def { color: #50fa7b; }\n.cm-s-dracula span.cm-operator { color: #ff79c6; }\n.cm-s-dracula span.cm-keyword { color: #ff79c6; }\n.cm-s-dracula span.cm-atom { color: #bd93f9; }\n.cm-s-dracula span.cm-meta { color: #f8f8f2; }\n.cm-s-dracula span.cm-tag { color: #ff79c6; }\n.cm-s-dracula span.cm-attribute { color: #50fa7b; }\n.cm-s-dracula span.cm-qualifier { color: #50fa7b; }\n.cm-s-dracula span.cm-property { color: #66d9ef; }\n.cm-s-dracula span.cm-builtin { color: #50fa7b; }\n.cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }\n\n.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }\n.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/duotone-dark.css",
    "content": "/*\nName:   DuoTone-Dark\nAuthor: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\n\nCodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)\n*/\n\n.cm-s-duotone-dark.CodeMirror { background: #2a2734; color: #6c6783; }\n.cm-s-duotone-dark div.CodeMirror-selected { background: #545167!important; }\n.cm-s-duotone-dark .CodeMirror-gutters { background: #2a2734; border-right: 0px; }\n.cm-s-duotone-dark .CodeMirror-linenumber { color: #545167; }\n\n/* begin cursor */\n.cm-s-duotone-dark .CodeMirror-cursor { border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */ border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */ opacity: .5; }\n.cm-s-duotone-dark .CodeMirror-activeline-background { background: #363342; /* background: #36334280;  */ opacity: .5;}\n.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor { background: #ffad5c; /* background: #ffad5c80; */ opacity: .5;}\n/* end cursor */\n\n.cm-s-duotone-dark span.cm-atom, .cm-s-duotone-dark span.cm-number, .cm-s-duotone-dark span.cm-keyword, .cm-s-duotone-dark span.cm-variable, .cm-s-duotone-dark span.cm-attribute, .cm-s-duotone-dark span.cm-quote, .cm-s-duotone-dark span.cm-hr, .cm-s-duotone-dark span.cm-link { color: #ffcc99; }\n\n.cm-s-duotone-dark span.cm-property { color: #9a86fd; }\n.cm-s-duotone-dark span.cm-punctuation, .cm-s-duotone-dark span.cm-unit, .cm-s-duotone-dark span.cm-negative { color: #e09142; }\n.cm-s-duotone-dark span.cm-string { color: #ffb870; }\n.cm-s-duotone-dark span.cm-operator { color: #ffad5c; }\n.cm-s-duotone-dark span.cm-positive { color: #6a51e6; }\n\n.cm-s-duotone-dark span.cm-variable-2, .cm-s-duotone-dark span.cm-variable-3, .cm-s-duotone-dark span.cm-type, .cm-s-duotone-dark span.cm-string-2, .cm-s-duotone-dark span.cm-url { color: #7a63ee; }\n.cm-s-duotone-dark span.cm-def, .cm-s-duotone-dark span.cm-tag, .cm-s-duotone-dark span.cm-builtin, .cm-s-duotone-dark span.cm-qualifier, .cm-s-duotone-dark span.cm-header, .cm-s-duotone-dark span.cm-em { color: #eeebff; }\n.cm-s-duotone-dark span.cm-bracket, .cm-s-duotone-dark span.cm-comment { color: #6c6783; }\n\n/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */\n.cm-s-duotone-dark span.cm-error, .cm-s-duotone-dark span.cm-invalidchar { color: #f00; }\n\n.cm-s-duotone-dark span.cm-header { font-weight: normal; }\n.cm-s-duotone-dark .CodeMirror-matchingbracket { text-decoration: underline; color: #eeebff !important; } \n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/duotone-light.css",
    "content": "/*\nName:   DuoTone-Light\nAuthor: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\n\nCodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)\n*/\n\n.cm-s-duotone-light.CodeMirror { background: #faf8f5; color: #b29762; }\n.cm-s-duotone-light div.CodeMirror-selected { background: #e3dcce !important; }\n.cm-s-duotone-light .CodeMirror-gutters { background: #faf8f5; border-right: 0px; }\n.cm-s-duotone-light .CodeMirror-linenumber { color: #cdc4b1; }\n\n/* begin cursor */\n.cm-s-duotone-light .CodeMirror-cursor { border-left: 1px solid #93abdc; /* border-left: 1px solid #93abdc80; */ border-right: .5em solid #93abdc; /* border-right: .5em solid #93abdc80; */ opacity: .5; }\n.cm-s-duotone-light .CodeMirror-activeline-background { background: #e3dcce;  /* background: #e3dcce80; */ opacity: .5; }\n.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor { background: #93abdc; /* #93abdc80; */ opacity: .5; }\n/* end cursor */\n\n.cm-s-duotone-light span.cm-atom, .cm-s-duotone-light span.cm-number, .cm-s-duotone-light span.cm-keyword, .cm-s-duotone-light span.cm-variable, .cm-s-duotone-light span.cm-attribute, .cm-s-duotone-light span.cm-quote, .cm-s-duotone-light-light span.cm-hr, .cm-s-duotone-light-light span.cm-link { color: #063289; }\n\n.cm-s-duotone-light span.cm-property { color: #b29762; }\n.cm-s-duotone-light span.cm-punctuation, .cm-s-duotone-light span.cm-unit, .cm-s-duotone-light span.cm-negative { color: #063289; }\n.cm-s-duotone-light span.cm-string, .cm-s-duotone-light span.cm-operator { color: #1659df; }\n.cm-s-duotone-light span.cm-positive { color: #896724; }\n\n.cm-s-duotone-light span.cm-variable-2, .cm-s-duotone-light span.cm-variable-3, .cm-s-duotone-light span.cm-type, .cm-s-duotone-light span.cm-string-2, .cm-s-duotone-light span.cm-url { color: #896724; }\n.cm-s-duotone-light span.cm-def, .cm-s-duotone-light span.cm-tag, .cm-s-duotone-light span.cm-builtin, .cm-s-duotone-light span.cm-qualifier, .cm-s-duotone-light span.cm-header, .cm-s-duotone-light span.cm-em { color: #2d2006; }\n.cm-s-duotone-light span.cm-bracket, .cm-s-duotone-light span.cm-comment { color: #b6ad9a; }\n\n/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */\n/* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */\n.cm-s-duotone-light span.cm-error, .cm-s-duotone-light span.cm-invalidchar { color: #f00; }\n\n.cm-s-duotone-light span.cm-header { font-weight: normal; }\n.cm-s-duotone-light .CodeMirror-matchingbracket { text-decoration: underline; color: #faf8f5 !important; }\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/eclipse.css",
    "content": ".cm-s-eclipse span.cm-meta { color: #FF1717; }\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom { color: #219; }\n.cm-s-eclipse span.cm-number { color: #164; }\n.cm-s-eclipse span.cm-def { color: #00f; }\n.cm-s-eclipse span.cm-variable { color: black; }\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\n.cm-s-eclipse span.cm-property { color: black; }\n.cm-s-eclipse span.cm-operator { color: black; }\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\n.cm-s-eclipse span.cm-qualifier { color: #555; }\n.cm-s-eclipse span.cm-builtin { color: #30a; }\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\n.cm-s-eclipse span.cm-tag { color: #170; }\n.cm-s-eclipse span.cm-attribute { color: #00c; }\n.cm-s-eclipse span.cm-link { color: #219; }\n.cm-s-eclipse span.cm-error { color: #f00; }\n\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/elegant.css",
    "content": ".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-variable { color: black; }\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\n.cm-s-elegant span.cm-qualifier { color: #555; }\n.cm-s-elegant span.cm-keyword { color: #730; }\n.cm-s-elegant span.cm-builtin { color: #30a; }\n.cm-s-elegant span.cm-link { color: #762; }\n.cm-s-elegant span.cm-error { background-color: #fdd; }\n\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/erlang-dark.css",
    "content": ".cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }\n.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539; }\n.cm-s-erlang-dark .CodeMirror-line::selection, .cm-s-erlang-dark .CodeMirror-line > span::selection, .cm-s-erlang-dark .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark .CodeMirror-line::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-erlang-dark span.cm-quote      { color: #ccc; }\n.cm-s-erlang-dark span.cm-atom       { color: #f133f1; }\n.cm-s-erlang-dark span.cm-attribute  { color: #ff80e1; }\n.cm-s-erlang-dark span.cm-bracket    { color: #ff9d00; }\n.cm-s-erlang-dark span.cm-builtin    { color: #eaa; }\n.cm-s-erlang-dark span.cm-comment    { color: #77f; }\n.cm-s-erlang-dark span.cm-def        { color: #e7a; }\n.cm-s-erlang-dark span.cm-keyword    { color: #ffee80; }\n.cm-s-erlang-dark span.cm-meta       { color: #50fefe; }\n.cm-s-erlang-dark span.cm-number     { color: #ffd0d0; }\n.cm-s-erlang-dark span.cm-operator   { color: #d55; }\n.cm-s-erlang-dark span.cm-property   { color: #ccc; }\n.cm-s-erlang-dark span.cm-qualifier  { color: #ccc; }\n.cm-s-erlang-dark span.cm-special    { color: #ffbbbb; }\n.cm-s-erlang-dark span.cm-string     { color: #3ad900; }\n.cm-s-erlang-dark span.cm-string-2   { color: #ccc; }\n.cm-s-erlang-dark span.cm-tag        { color: #9effff; }\n.cm-s-erlang-dark span.cm-variable   { color: #50fe50; }\n.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }\n.cm-s-erlang-dark span.cm-variable-3, .cm-s-erlang-dark span.cm-type { color: #ccc; }\n.cm-s-erlang-dark span.cm-error      { color: #9d1e15; }\n\n.cm-s-erlang-dark .CodeMirror-activeline-background { background: #013461; }\n.cm-s-erlang-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/gruvbox-dark.css",
    "content": "/*\n\n    Name:       gruvbox-dark\n    Author:     kRkk (https://github.com/krkk)\n\n    Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)\n\n*/\n\n.cm-s-gruvbox-dark.CodeMirror, .cm-s-gruvbox-dark .CodeMirror-gutters { background-color: #282828; color: #bdae93; }\n.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828; border-right: 0px;}\n.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}\n.cm-s-gruvbox-dark .CodeMirror-cursor { border-left: 1px solid #ebdbb2; }\n.cm-s-gruvbox-dark div.CodeMirror-selected { background: #928374; }\n.cm-s-gruvbox-dark span.cm-meta { color: #83a598; }\n\n.cm-s-gruvbox-dark span.cm-comment { color: #928374; }\n.cm-s-gruvbox-dark span.cm-number, span.cm-atom { color: #d3869b; }\n.cm-s-gruvbox-dark span.cm-keyword { color: #f84934; }\n\n.cm-s-gruvbox-dark span.cm-variable { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-variable-2 { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-variable-3, .cm-s-gruvbox-dark span.cm-type { color: #fabd2f; }\n.cm-s-gruvbox-dark span.cm-operator { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-callee { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-def { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-property { color: #ebdbb2; }\n.cm-s-gruvbox-dark span.cm-string { color: #b8bb26; }\n.cm-s-gruvbox-dark span.cm-string-2 { color: #8ec07c; }\n.cm-s-gruvbox-dark span.cm-qualifier { color: #8ec07c; }\n.cm-s-gruvbox-dark span.cm-attribute { color: #8ec07c; }\n\n.cm-s-gruvbox-dark .CodeMirror-activeline-background { background: #3c3836; }\n.cm-s-gruvbox-dark .CodeMirror-matchingbracket { background: #928374; color:#282828 !important; }\n\n.cm-s-gruvbox-dark span.cm-builtin { color: #fe8019; }\n.cm-s-gruvbox-dark span.cm-tag { color: #fe8019; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/hopscotch.css",
    "content": "/*\n\n    Name:       Hopscotch\n    Author:     Jan T. Sott\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}\n.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}\n.cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}\n.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}\n.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}\n\n.cm-s-hopscotch span.cm-comment {color: #b33508;}\n.cm-s-hopscotch span.cm-atom {color: #c85e7c;}\n.cm-s-hopscotch span.cm-number {color: #c85e7c;}\n\n.cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}\n.cm-s-hopscotch span.cm-keyword {color: #dd464c;}\n.cm-s-hopscotch span.cm-string {color: #fdcc59;}\n\n.cm-s-hopscotch span.cm-variable {color: #8fc13e;}\n.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}\n.cm-s-hopscotch span.cm-def {color: #fd8b19;}\n.cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}\n.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}\n.cm-s-hopscotch span.cm-tag {color: #dd464c;}\n.cm-s-hopscotch span.cm-link {color: #c85e7c;}\n\n.cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/icecoder.css",
    "content": "/*\nICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net\n*/\n\n.cm-s-icecoder { color: #666; background: #1d1d1b; }\n\n.cm-s-icecoder span.cm-keyword { color: #eee; font-weight:bold; }  /* off-white 1 */\n.cm-s-icecoder span.cm-atom { color: #e1c76e; }                    /* yellow */\n.cm-s-icecoder span.cm-number { color: #6cb5d9; }                  /* blue */\n.cm-s-icecoder span.cm-def { color: #b9ca4a; }                     /* green */\n\n.cm-s-icecoder span.cm-variable { color: #6cb5d9; }                /* blue */\n.cm-s-icecoder span.cm-variable-2 { color: #cc1e5c; }              /* pink */\n.cm-s-icecoder span.cm-variable-3, .cm-s-icecoder span.cm-type { color: #f9602c; } /* orange */\n\n.cm-s-icecoder span.cm-property { color: #eee; }                   /* off-white 1 */\n.cm-s-icecoder span.cm-operator { color: #9179bb; }                /* purple */\n.cm-s-icecoder span.cm-comment { color: #97a3aa; }                 /* grey-blue */\n\n.cm-s-icecoder span.cm-string { color: #b9ca4a; }                  /* green */\n.cm-s-icecoder span.cm-string-2 { color: #6cb5d9; }                /* blue */\n\n.cm-s-icecoder span.cm-meta { color: #555; }                       /* grey */\n\n.cm-s-icecoder span.cm-qualifier { color: #555; }                  /* grey */\n.cm-s-icecoder span.cm-builtin { color: #214e7b; }                 /* bright blue */\n.cm-s-icecoder span.cm-bracket { color: #cc7; }                    /* grey-yellow */\n\n.cm-s-icecoder span.cm-tag { color: #e8e8e8; }                     /* off-white 2 */\n.cm-s-icecoder span.cm-attribute { color: #099; }                  /* teal */\n\n.cm-s-icecoder span.cm-header { color: #6a0d6a; }                  /* purple-pink */\n.cm-s-icecoder span.cm-quote { color: #186718; }                   /* dark green */\n.cm-s-icecoder span.cm-hr { color: #888; }                         /* mid-grey */\n.cm-s-icecoder span.cm-link { color: #e1c76e; }                    /* yellow */\n.cm-s-icecoder span.cm-error { color: #d00; }                      /* red */\n\n.cm-s-icecoder .CodeMirror-cursor { border-left: 1px solid white; }\n.cm-s-icecoder div.CodeMirror-selected { color: #fff; background: #037; }\n.cm-s-icecoder .CodeMirror-gutters { background: #1d1d1b; min-width: 41px; border-right: 0; }\n.cm-s-icecoder .CodeMirror-linenumber { color: #555; cursor: default; }\n.cm-s-icecoder .CodeMirror-matchingbracket { color: #fff !important; background: #555 !important; }\n.cm-s-icecoder .CodeMirror-activeline-background { background: #000; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/idea.css",
    "content": "/**\n    Name:       IDEA default theme\n    From IntelliJ IDEA by JetBrains\n */\n\n.cm-s-idea span.cm-meta { color: #808000; }\n.cm-s-idea span.cm-number { color: #0000FF; }\n.cm-s-idea span.cm-keyword { line-height: 1em; font-weight: bold; color: #000080; }\n.cm-s-idea span.cm-atom { font-weight: bold; color: #000080; }\n.cm-s-idea span.cm-def { color: #000000; }\n.cm-s-idea span.cm-variable { color: black; }\n.cm-s-idea span.cm-variable-2 { color: black; }\n.cm-s-idea span.cm-variable-3, .cm-s-idea span.cm-type { color: black; }\n.cm-s-idea span.cm-property { color: black; }\n.cm-s-idea span.cm-operator { color: black; }\n.cm-s-idea span.cm-comment { color: #808080; }\n.cm-s-idea span.cm-string { color: #008000; }\n.cm-s-idea span.cm-string-2 { color: #008000; }\n.cm-s-idea span.cm-qualifier { color: #555; }\n.cm-s-idea span.cm-error { color: #FF0000; }\n.cm-s-idea span.cm-attribute { color: #0000FF; }\n.cm-s-idea span.cm-tag { color: #000080; }\n.cm-s-idea span.cm-link { color: #0000FF; }\n.cm-s-idea .CodeMirror-activeline-background { background: #FFFAE3; }\n\n.cm-s-idea span.cm-builtin { color: #30a; }\n.cm-s-idea span.cm-bracket { color: #cc7; }\n.cm-s-idea  { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}\n\n\n.cm-s-idea .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n\n.CodeMirror-hints.idea {\n  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\n  color: #616569;\n  background-color: #ebf3fd !important;\n}\n\n.CodeMirror-hints.idea .CodeMirror-hint-active {\n  background-color: #a2b8c9 !important;\n  color: #5c6065 !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/isotope.css",
    "content": "/*\n\n    Name:       Isotope\n    Author:     David Desandro / Jan T. Sott\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}\n.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}\n.cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}\n.cm-s-isotope .CodeMirror-linenumber {color: #808080;}\n.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}\n\n.cm-s-isotope span.cm-comment {color: #3300ff;}\n.cm-s-isotope span.cm-atom {color: #cc00ff;}\n.cm-s-isotope span.cm-number {color: #cc00ff;}\n\n.cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}\n.cm-s-isotope span.cm-keyword {color: #ff0000;}\n.cm-s-isotope span.cm-string {color: #ff0099;}\n\n.cm-s-isotope span.cm-variable {color: #33ff00;}\n.cm-s-isotope span.cm-variable-2 {color: #0066ff;}\n.cm-s-isotope span.cm-def {color: #ff9900;}\n.cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}\n.cm-s-isotope span.cm-bracket {color: #e0e0e0;}\n.cm-s-isotope span.cm-tag {color: #ff0000;}\n.cm-s-isotope span.cm-link {color: #cc00ff;}\n\n.cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-isotope .CodeMirror-activeline-background { background: #202020; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/lesser-dark.css",
    "content": "/*\nhttp://lesscss.org/ dark theme\nPorted to CodeMirror by Peter Kroon\n*/\n.cm-s-lesser-dark {\n  line-height: 1.3em;\n}\n.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }\n.cm-s-lesser-dark div.CodeMirror-selected { background: #45443B; } /* 33322B*/\n.cm-s-lesser-dark .CodeMirror-line::selection, .cm-s-lesser-dark .CodeMirror-line > span::selection, .cm-s-lesser-dark .CodeMirror-line > span > span::selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark .CodeMirror-line::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white; }\n.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/\n\n.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/\n\n.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }\n.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }\n.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }\n\n.cm-s-lesser-dark span.cm-header { color: #a0a; }\n.cm-s-lesser-dark span.cm-quote { color: #090; }\n.cm-s-lesser-dark span.cm-keyword { color: #599eff; }\n.cm-s-lesser-dark span.cm-atom { color: #C2B470; }\n.cm-s-lesser-dark span.cm-number { color: #B35E4D; }\n.cm-s-lesser-dark span.cm-def { color: white; }\n.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }\n.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }\n.cm-s-lesser-dark span.cm-variable-3, .cm-s-lesser-dark span.cm-type { color: white; }\n.cm-s-lesser-dark span.cm-property { color: #92A75C; }\n.cm-s-lesser-dark span.cm-operator { color: #92A75C; }\n.cm-s-lesser-dark span.cm-comment { color: #666; }\n.cm-s-lesser-dark span.cm-string { color: #BCD279; }\n.cm-s-lesser-dark span.cm-string-2 { color: #f50; }\n.cm-s-lesser-dark span.cm-meta { color: #738C73; }\n.cm-s-lesser-dark span.cm-qualifier { color: #555; }\n.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }\n.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }\n.cm-s-lesser-dark span.cm-tag { color: #669199; }\n.cm-s-lesser-dark span.cm-attribute { color: #81a4d5; }\n.cm-s-lesser-dark span.cm-hr { color: #999; }\n.cm-s-lesser-dark span.cm-link { color: #7070E6; }\n.cm-s-lesser-dark span.cm-error { color: #9d1e15; }\n\n.cm-s-lesser-dark .CodeMirror-activeline-background { background: #3C3A3A; }\n.cm-s-lesser-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/liquibyte.css",
    "content": ".cm-s-liquibyte.CodeMirror {\n\tbackground-color: #000;\n\tcolor: #fff;\n\tline-height: 1.2em;\n\tfont-size: 1em;\n}\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\n\ttext-decoration: underline;\n\ttext-decoration-color: #0f0;\n\ttext-decoration-style: wavy;\n}\n.cm-s-liquibyte .cm-trailingspace {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #f00;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .cm-tab {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #404040;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\n.cm-s-liquibyte .CodeMirror-guttermarker {  }\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle {  }\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\n\n.cm-s-liquibyte span.cm-comment     { color: #008000; }\n.cm-s-liquibyte span.cm-def         { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-keyword     { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-builtin     { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable    { color: #5967ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-string      { color: #ff8000; }\n.cm-s-liquibyte span.cm-number      { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte span.cm-atom        { color: #bf3030; font-weight: bold; }\n\n.cm-s-liquibyte span.cm-variable-2  { color: #007f7f; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-property    { color: #999; font-weight: bold; }\n.cm-s-liquibyte span.cm-operator    { color: #fff; }\n\n.cm-s-liquibyte span.cm-meta        { color: #0f0; }\n.cm-s-liquibyte span.cm-qualifier   { color: #fff700; font-weight: bold; }\n.cm-s-liquibyte span.cm-bracket     { color: #cc7; }\n.cm-s-liquibyte span.cm-tag         { color: #ff0; font-weight: bold; }\n.cm-s-liquibyte span.cm-attribute   { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-error       { color: #f00; }\n\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\n\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\n\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\n\n/* Default styles for common addons */\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\n/* Scrollbars */\n/* Simple */\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\n\tbackground-color: rgba(80, 80, 80, .7);\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tbackground-color: rgba(80, 80, 80, .3);\n\tborder: 1px solid #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tborder-top: 1px solid #404040;\n\tborder-bottom: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\n\tborder-left: 1px solid #404040;\n\tborder-right: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\n\tbackground-color: #262626;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\n\tbackground-color: #262626;\n\tborder-top: 1px solid #404040;\n}\n/* Overlay */\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\n\tbackground-color: #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\n\tborder: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\n\tborder: 1px solid #404040;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/lucario.css",
    "content": "/*\n  Name:       lucario\n  Author:     Raphael Amorim\n\n  Original Lucario color scheme (https://github.com/raphamorim/lucario)\n*/\n\n.cm-s-lucario.CodeMirror, .cm-s-lucario .CodeMirror-gutters {\n  background-color: #2b3e50 !important;\n  color: #f8f8f2 !important;\n  border: none;\n}\n.cm-s-lucario .CodeMirror-gutters { color: #2b3e50; }\n.cm-s-lucario .CodeMirror-cursor { border-left: solid thin #E6C845; }\n.cm-s-lucario .CodeMirror-linenumber { color: #f8f8f2; }\n.cm-s-lucario .CodeMirror-selected { background: #243443; }\n.cm-s-lucario .CodeMirror-line::selection, .cm-s-lucario .CodeMirror-line > span::selection, .cm-s-lucario .CodeMirror-line > span > span::selection { background: #243443; }\n.cm-s-lucario .CodeMirror-line::-moz-selection, .cm-s-lucario .CodeMirror-line > span::-moz-selection, .cm-s-lucario .CodeMirror-line > span > span::-moz-selection { background: #243443; }\n.cm-s-lucario span.cm-comment { color: #5c98cd; }\n.cm-s-lucario span.cm-string, .cm-s-lucario span.cm-string-2 { color: #E6DB74; }\n.cm-s-lucario span.cm-number { color: #ca94ff; }\n.cm-s-lucario span.cm-variable { color: #f8f8f2; }\n.cm-s-lucario span.cm-variable-2 { color: #f8f8f2; }\n.cm-s-lucario span.cm-def { color: #72C05D; }\n.cm-s-lucario span.cm-operator { color: #66D9EF; }\n.cm-s-lucario span.cm-keyword { color: #ff6541; }\n.cm-s-lucario span.cm-atom { color: #bd93f9; }\n.cm-s-lucario span.cm-meta { color: #f8f8f2; }\n.cm-s-lucario span.cm-tag { color: #ff6541; }\n.cm-s-lucario span.cm-attribute { color: #66D9EF; }\n.cm-s-lucario span.cm-qualifier { color: #72C05D; }\n.cm-s-lucario span.cm-property { color: #f8f8f2; }\n.cm-s-lucario span.cm-builtin { color: #72C05D; }\n.cm-s-lucario span.cm-variable-3, .cm-s-lucario span.cm-type { color: #ffb86c; }\n\n.cm-s-lucario .CodeMirror-activeline-background { background: #243443; }\n.cm-s-lucario .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/material-darker.css",
    "content": "/*\n  Name:       material\n  Author:     Mattia Astorino (http://github.com/equinusocio)\n  Website:    https://material-theme.site/\n*/\n\n.cm-s-material-darker.CodeMirror {\n  background-color: #212121;\n  color: #EEFFFF;\n}\n\n.cm-s-material-darker .CodeMirror-gutters {\n  background: #212121;\n  color: #545454;\n  border: none;\n}\n\n.cm-s-material-darker .CodeMirror-guttermarker,\n.cm-s-material-darker .CodeMirror-guttermarker-subtle,\n.cm-s-material-darker .CodeMirror-linenumber {\n  color: #545454;\n}\n\n.cm-s-material-darker .CodeMirror-cursor {\n  border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-darker div.CodeMirror-selected {\n  background: rgba(97, 97, 97, 0.2);\n}\n\n.cm-s-material-darker.CodeMirror-focused div.CodeMirror-selected {\n  background: rgba(97, 97, 97, 0.2);\n}\n\n.cm-s-material-darker .CodeMirror-line::selection,\n.cm-s-material-darker .CodeMirror-line>span::selection,\n.cm-s-material-darker .CodeMirror-line>span>span::selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-darker .CodeMirror-line::-moz-selection,\n.cm-s-material-darker .CodeMirror-line>span::-moz-selection,\n.cm-s-material-darker .CodeMirror-line>span>span::-moz-selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-darker .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-darker .cm-keyword {\n  color: #C792EA;\n}\n\n.cm-s-material-darker .cm-operator {\n  color: #89DDFF;\n}\n\n.cm-s-material-darker .cm-variable-2 {\n  color: #EEFFFF;\n}\n\n.cm-s-material-darker .cm-variable-3,\n.cm-s-material-darker .cm-type {\n  color: #f07178;\n}\n\n.cm-s-material-darker .cm-builtin {\n  color: #FFCB6B;\n}\n\n.cm-s-material-darker .cm-atom {\n  color: #F78C6C;\n}\n\n.cm-s-material-darker .cm-number {\n  color: #FF5370;\n}\n\n.cm-s-material-darker .cm-def {\n  color: #82AAFF;\n}\n\n.cm-s-material-darker .cm-string {\n  color: #C3E88D;\n}\n\n.cm-s-material-darker .cm-string-2 {\n  color: #f07178;\n}\n\n.cm-s-material-darker .cm-comment {\n  color: #545454;\n}\n\n.cm-s-material-darker .cm-variable {\n  color: #f07178;\n}\n\n.cm-s-material-darker .cm-tag {\n  color: #FF5370;\n}\n\n.cm-s-material-darker .cm-meta {\n  color: #FFCB6B;\n}\n\n.cm-s-material-darker .cm-attribute {\n  color: #C792EA;\n}\n\n.cm-s-material-darker .cm-property {\n  color: #C792EA;\n}\n\n.cm-s-material-darker .cm-qualifier {\n  color: #DECB6B;\n}\n\n.cm-s-material-darker .cm-variable-3,\n.cm-s-material-darker .cm-type {\n  color: #DECB6B;\n}\n\n\n.cm-s-material-darker .cm-error {\n  color: rgba(255, 255, 255, 1.0);\n  background-color: #FF5370;\n}\n\n.cm-s-material-darker .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/material-ocean.css",
    "content": "/*\n  Name:       material\n  Author:     Mattia Astorino (http://github.com/equinusocio)\n  Website:    https://material-theme.site/\n*/\n\n.cm-s-material-ocean.CodeMirror {\n  background-color: #0F111A;\n  color: #8F93A2;\n}\n\n.cm-s-material-ocean .CodeMirror-gutters {\n  background: #0F111A;\n  color: #464B5D;\n  border: none;\n}\n\n.cm-s-material-ocean .CodeMirror-guttermarker,\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\n.cm-s-material-ocean .CodeMirror-linenumber {\n  color: #464B5D;\n}\n\n.cm-s-material-ocean .CodeMirror-cursor {\n  border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-ocean div.CodeMirror-selected {\n  background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\n  background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::selection,\n.cm-s-material-ocean .CodeMirror-line>span::selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-ocean .cm-keyword {\n  color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-operator {\n  color: #89DDFF;\n}\n\n.cm-s-material-ocean .cm-variable-2 {\n  color: #EEFFFF;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n  color: #f07178;\n}\n\n.cm-s-material-ocean .cm-builtin {\n  color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-atom {\n  color: #F78C6C;\n}\n\n.cm-s-material-ocean .cm-number {\n  color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-def {\n  color: #82AAFF;\n}\n\n.cm-s-material-ocean .cm-string {\n  color: #C3E88D;\n}\n\n.cm-s-material-ocean .cm-string-2 {\n  color: #f07178;\n}\n\n.cm-s-material-ocean .cm-comment {\n  color: #464B5D;\n}\n\n.cm-s-material-ocean .cm-variable {\n  color: #f07178;\n}\n\n.cm-s-material-ocean .cm-tag {\n  color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-meta {\n  color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-attribute {\n  color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-property {\n  color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-qualifier {\n  color: #DECB6B;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n  color: #DECB6B;\n}\n\n\n.cm-s-material-ocean .cm-error {\n  color: rgba(255, 255, 255, 1.0);\n  background-color: #FF5370;\n}\n\n.cm-s-material-ocean .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/material-palenight.css",
    "content": "/*\n  Name:       material\n  Author:     Mattia Astorino (http://github.com/equinusocio)\n  Website:    https://material-theme.site/\n*/\n\n.cm-s-material-palenight.CodeMirror {\n  background-color: #292D3E;\n  color: #A6ACCD;\n}\n\n.cm-s-material-palenight .CodeMirror-gutters {\n  background: #292D3E;\n  color: #676E95;\n  border: none;\n}\n\n.cm-s-material-palenight .CodeMirror-guttermarker,\n.cm-s-material-palenight .CodeMirror-guttermarker-subtle,\n.cm-s-material-palenight .CodeMirror-linenumber {\n  color: #676E95;\n}\n\n.cm-s-material-palenight .CodeMirror-cursor {\n  border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-palenight div.CodeMirror-selected {\n  background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-palenight.CodeMirror-focused div.CodeMirror-selected {\n  background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-palenight .CodeMirror-line::selection,\n.cm-s-material-palenight .CodeMirror-line>span::selection,\n.cm-s-material-palenight .CodeMirror-line>span>span::selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-palenight .CodeMirror-line::-moz-selection,\n.cm-s-material-palenight .CodeMirror-line>span::-moz-selection,\n.cm-s-material-palenight .CodeMirror-line>span>span::-moz-selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-palenight .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-palenight .cm-keyword {\n  color: #C792EA;\n}\n\n.cm-s-material-palenight .cm-operator {\n  color: #89DDFF;\n}\n\n.cm-s-material-palenight .cm-variable-2 {\n  color: #EEFFFF;\n}\n\n.cm-s-material-palenight .cm-variable-3,\n.cm-s-material-palenight .cm-type {\n  color: #f07178;\n}\n\n.cm-s-material-palenight .cm-builtin {\n  color: #FFCB6B;\n}\n\n.cm-s-material-palenight .cm-atom {\n  color: #F78C6C;\n}\n\n.cm-s-material-palenight .cm-number {\n  color: #FF5370;\n}\n\n.cm-s-material-palenight .cm-def {\n  color: #82AAFF;\n}\n\n.cm-s-material-palenight .cm-string {\n  color: #C3E88D;\n}\n\n.cm-s-material-palenight .cm-string-2 {\n  color: #f07178;\n}\n\n.cm-s-material-palenight .cm-comment {\n  color: #676E95;\n}\n\n.cm-s-material-palenight .cm-variable {\n  color: #f07178;\n}\n\n.cm-s-material-palenight .cm-tag {\n  color: #FF5370;\n}\n\n.cm-s-material-palenight .cm-meta {\n  color: #FFCB6B;\n}\n\n.cm-s-material-palenight .cm-attribute {\n  color: #C792EA;\n}\n\n.cm-s-material-palenight .cm-property {\n  color: #C792EA;\n}\n\n.cm-s-material-palenight .cm-qualifier {\n  color: #DECB6B;\n}\n\n.cm-s-material-palenight .cm-variable-3,\n.cm-s-material-palenight .cm-type {\n  color: #DECB6B;\n}\n\n\n.cm-s-material-palenight .cm-error {\n  color: rgba(255, 255, 255, 1.0);\n  background-color: #FF5370;\n}\n\n.cm-s-material-palenight .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/material.css",
    "content": "/*\n  Name:       material\n  Author:     Mattia Astorino (http://github.com/equinusocio)\n  Website:    https://material-theme.site/\n*/\n\n.cm-s-material.CodeMirror {\n  background-color: #263238;\n  color: #EEFFFF;\n}\n\n.cm-s-material .CodeMirror-gutters {\n  background: #263238;\n  color: #546E7A;\n  border: none;\n}\n\n.cm-s-material .CodeMirror-guttermarker,\n.cm-s-material .CodeMirror-guttermarker-subtle,\n.cm-s-material .CodeMirror-linenumber {\n  color: #546E7A;\n}\n\n.cm-s-material .CodeMirror-cursor {\n  border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material div.CodeMirror-selected {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material.CodeMirror-focused div.CodeMirror-selected {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::selection,\n.cm-s-material .CodeMirror-line>span::selection,\n.cm-s-material .CodeMirror-line>span>span::selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::-moz-selection,\n.cm-s-material .CodeMirror-line>span::-moz-selection,\n.cm-s-material .CodeMirror-line>span>span::-moz-selection {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material .cm-keyword {\n  color: #C792EA;\n}\n\n.cm-s-material .cm-operator {\n  color: #89DDFF;\n}\n\n.cm-s-material .cm-variable-2 {\n  color: #EEFFFF;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n  color: #f07178;\n}\n\n.cm-s-material .cm-builtin {\n  color: #FFCB6B;\n}\n\n.cm-s-material .cm-atom {\n  color: #F78C6C;\n}\n\n.cm-s-material .cm-number {\n  color: #FF5370;\n}\n\n.cm-s-material .cm-def {\n  color: #82AAFF;\n}\n\n.cm-s-material .cm-string {\n  color: #C3E88D;\n}\n\n.cm-s-material .cm-string-2 {\n  color: #f07178;\n}\n\n.cm-s-material .cm-comment {\n  color: #546E7A;\n}\n\n.cm-s-material .cm-variable {\n  color: #f07178;\n}\n\n.cm-s-material .cm-tag {\n  color: #FF5370;\n}\n\n.cm-s-material .cm-meta {\n  color: #FFCB6B;\n}\n\n.cm-s-material .cm-attribute {\n  color: #C792EA;\n}\n\n.cm-s-material .cm-property {\n  color: #C792EA;\n}\n\n.cm-s-material .cm-qualifier {\n  color: #DECB6B;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n  color: #DECB6B;\n}\n\n\n.cm-s-material .cm-error {\n  color: rgba(255, 255, 255, 1.0);\n  background-color: #FF5370;\n}\n\n.cm-s-material .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/mbo.css",
    "content": "/****************************************************************/\n/*   Based on mbonaci's Brackets mbo theme                      */\n/*   https://github.com/mbonaci/global/blob/master/Mbo.tmTheme  */\n/*   Create your own: http://tmtheme-editor.herokuapp.com       */\n/****************************************************************/\n\n.cm-s-mbo.CodeMirror { background: #2c2c2c; color: #ffffec; }\n.cm-s-mbo div.CodeMirror-selected { background: #716C62; }\n.cm-s-mbo .CodeMirror-line::selection, .cm-s-mbo .CodeMirror-line > span::selection, .cm-s-mbo .CodeMirror-line > span > span::selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo .CodeMirror-line::-moz-selection, .cm-s-mbo .CodeMirror-line > span::-moz-selection, .cm-s-mbo .CodeMirror-line > span > span::-moz-selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo .CodeMirror-gutters { background: #4e4e4e; border-right: 0px; }\n.cm-s-mbo .CodeMirror-guttermarker { color: white; }\n.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }\n.cm-s-mbo .CodeMirror-linenumber { color: #dadada; }\n.cm-s-mbo .CodeMirror-cursor { border-left: 1px solid #ffffec; }\n\n.cm-s-mbo span.cm-comment { color: #95958a; }\n.cm-s-mbo span.cm-atom { color: #00a8c6; }\n.cm-s-mbo span.cm-number { color: #00a8c6; }\n\n.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute { color: #9ddfe9; }\n.cm-s-mbo span.cm-keyword { color: #ffb928; }\n.cm-s-mbo span.cm-string { color: #ffcf6c; }\n.cm-s-mbo span.cm-string.cm-property { color: #ffffec; }\n\n.cm-s-mbo span.cm-variable { color: #ffffec; }\n.cm-s-mbo span.cm-variable-2 { color: #00a8c6; }\n.cm-s-mbo span.cm-def { color: #ffffec; }\n.cm-s-mbo span.cm-bracket { color: #fffffc; font-weight: bold; }\n.cm-s-mbo span.cm-tag { color: #9ddfe9; }\n.cm-s-mbo span.cm-link { color: #f54b07; }\n.cm-s-mbo span.cm-error { border-bottom: #636363; color: #ffffec; }\n.cm-s-mbo span.cm-qualifier { color: #ffffec; }\n\n.cm-s-mbo .CodeMirror-activeline-background { background: #494b41; }\n.cm-s-mbo .CodeMirror-matchingbracket { color: #ffb928 !important; }\n.cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/mdn-like.css",
    "content": "/*\n  MDN-LIKE Theme - Mozilla\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n\n  The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation\n\n*/\n.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }\n.cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }\n.cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }\n.cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }\n\n.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }\n.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }\n.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }\n\n.cm-s-mdn-like .cm-keyword { color: #6262FF; }\n.cm-s-mdn-like .cm-atom { color: #F90; }\n.cm-s-mdn-like .cm-number { color:  #ca7841; }\n.cm-s-mdn-like .cm-def { color: #8DA6CE; }\n.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }\n.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def, .cm-s-mdn-like span.cm-type { color: #07a; }\n\n.cm-s-mdn-like .cm-variable { color: #07a; }\n.cm-s-mdn-like .cm-property { color: #905; }\n.cm-s-mdn-like .cm-qualifier { color: #690; }\n\n.cm-s-mdn-like .cm-operator { color: #cda869; }\n.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }\n.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }\n.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/\n.cm-s-mdn-like .cm-meta { color: #000; } /*?*/\n.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/\n.cm-s-mdn-like .cm-tag { color: #997643; }\n.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-mdn-like .cm-header { color: #FF6400; }\n.cm-s-mdn-like .cm-hr { color: #AEAEAE; }\n.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }\n.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }\n\ndiv.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }\ndiv.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }\n\n.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/midnight.css",
    "content": "/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */\n\n/*<!--activeline-->*/\n.cm-s-midnight .CodeMirror-activeline-background { background: #253540; }\n\n.cm-s-midnight.CodeMirror {\n    background: #0F192A;\n    color: #D1EDFF;\n}\n\n.cm-s-midnight div.CodeMirror-selected { background: #314D67; }\n.cm-s-midnight .CodeMirror-line::selection, .cm-s-midnight .CodeMirror-line > span::selection, .cm-s-midnight .CodeMirror-line > span > span::selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight .CodeMirror-line::-moz-selection, .cm-s-midnight .CodeMirror-line > span::-moz-selection, .cm-s-midnight .CodeMirror-line > span > span::-moz-selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight .CodeMirror-gutters { background: #0F192A; border-right: 1px solid; }\n.cm-s-midnight .CodeMirror-guttermarker { color: white; }\n.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-midnight .CodeMirror-linenumber { color: #D0D0D0; }\n.cm-s-midnight .CodeMirror-cursor { border-left: 1px solid #F8F8F0; }\n\n.cm-s-midnight span.cm-comment { color: #428BDD; }\n.cm-s-midnight span.cm-atom { color: #AE81FF; }\n.cm-s-midnight span.cm-number { color: #D1EDFF; }\n\n.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute { color: #A6E22E; }\n.cm-s-midnight span.cm-keyword { color: #E83737; }\n.cm-s-midnight span.cm-string { color: #1DC116; }\n\n.cm-s-midnight span.cm-variable { color: #FFAA3E; }\n.cm-s-midnight span.cm-variable-2 { color: #FFAA3E; }\n.cm-s-midnight span.cm-def { color: #4DD; }\n.cm-s-midnight span.cm-bracket { color: #D1EDFF; }\n.cm-s-midnight span.cm-tag { color: #449; }\n.cm-s-midnight span.cm-link { color: #AE81FF; }\n.cm-s-midnight span.cm-error { background: #F92672; color: #F8F8F0; }\n\n.cm-s-midnight .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/monokai.css",
    "content": "/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-monokai span.cm-comment { color: #75715e; }\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\n.cm-s-monokai span.cm-number { color: #ae81ff; }\n\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\n.cm-s-monokai span.cm-keyword { color: #f92672; }\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\n.cm-s-monokai span.cm-string { color: #e6db74; }\n\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\n.cm-s-monokai span.cm-def { color: #fd971f; }\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\n.cm-s-monokai span.cm-tag { color: #f92672; }\n.cm-s-monokai span.cm-header { color: #ae81ff; }\n.cm-s-monokai span.cm-link { color: #ae81ff; }\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\n\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\n.cm-s-monokai .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/moxer.css",
    "content": "/*\n  Name:       Moxer Theme\n  Author:     Mattia Astorino (http://github.com/equinusocio)\n  Website:    https://github.com/moxer-theme/moxer-code\n*/\n\n.cm-s-moxer.CodeMirror {\n  background-color: #090A0F;\n  color: #8E95B4;\n  line-height: 1.8;\n}\n\n.cm-s-moxer .CodeMirror-gutters {\n  background: #090A0F;\n  color: #35394B;\n  border: none;\n}\n\n.cm-s-moxer .CodeMirror-guttermarker,\n.cm-s-moxer .CodeMirror-guttermarker-subtle,\n.cm-s-moxer .CodeMirror-linenumber {\n  color: #35394B;\n}\n\n\n.cm-s-moxer .CodeMirror-cursor {\n  border-left: 1px solid #FFCC00;\n}\n\n.cm-s-moxer div.CodeMirror-selected {\n  background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-moxer.CodeMirror-focused div.CodeMirror-selected {\n  background: #212431;\n}\n\n.cm-s-moxer .CodeMirror-line::selection,\n.cm-s-moxer .CodeMirror-line>span::selection,\n.cm-s-moxer .CodeMirror-line>span>span::selection {\n  background: #212431;\n}\n\n.cm-s-moxer .CodeMirror-line::-moz-selection,\n.cm-s-moxer .CodeMirror-line>span::-moz-selection,\n.cm-s-moxer .CodeMirror-line>span>span::-moz-selection {\n  background: #212431;\n}\n\n.cm-s-moxer .CodeMirror-activeline-background,\n.cm-s-moxer .CodeMirror-activeline-gutter .CodeMirror-linenumber {\n  background: rgba(33, 36, 49, 0.5);\n}\n\n.cm-s-moxer .cm-keyword {\n  color: #D46C6C;\n}\n\n.cm-s-moxer .cm-operator {\n  color: #D46C6C;\n}\n\n.cm-s-moxer .cm-variable-2 {\n  color: #81C5DA;\n}\n\n\n.cm-s-moxer .cm-variable-3,\n.cm-s-moxer .cm-type {\n  color: #f07178;\n}\n\n.cm-s-moxer .cm-builtin {\n  color: #FFCB6B;\n}\n\n.cm-s-moxer .cm-atom {\n  color: #A99BE2;\n}\n\n.cm-s-moxer .cm-number {\n  color: #7CA4C0;\n}\n\n.cm-s-moxer .cm-def {\n  color: #F5DFA5;\n}\n\n.cm-s-moxer .CodeMirror-line .cm-def ~ .cm-def {\n  color: #81C5DA;\n}\n\n.cm-s-moxer .cm-string {\n  color: #B2E4AE;\n}\n\n.cm-s-moxer .cm-string-2 {\n  color: #f07178;\n}\n\n.cm-s-moxer .cm-comment {\n  color: #3F445A;\n}\n\n.cm-s-moxer .cm-variable {\n  color: #8E95B4;\n}\n\n.cm-s-moxer .cm-tag {\n  color: #FF5370;\n}\n\n.cm-s-moxer .cm-meta {\n  color: #FFCB6B;\n}\n\n.cm-s-moxer .cm-attribute {\n  color: #C792EA;\n}\n\n.cm-s-moxer .cm-property {\n  color: #81C5DA;\n}\n\n.cm-s-moxer .cm-qualifier {\n  color: #DECB6B;\n}\n\n.cm-s-moxer .cm-variable-3,\n.cm-s-moxer .cm-type {\n  color: #DECB6B;\n}\n\n\n.cm-s-moxer .cm-error {\n  color: rgba(255, 255, 255, 1.0);\n  background-color: #FF5370;\n}\n\n.cm-s-moxer .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/neat.css",
    "content": ".cm-s-neat span.cm-comment { color: #a86; }\n.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }\n.cm-s-neat span.cm-string { color: #a22; }\n.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }\n.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }\n.cm-s-neat span.cm-variable { color: black; }\n.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }\n.cm-s-neat span.cm-meta { color: #555; }\n.cm-s-neat span.cm-link { color: #3a3; }\n\n.cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/neo.css",
    "content": "/* neo theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-neo.CodeMirror {\n  background-color:#ffffff;\n  color:#2e383c;\n  line-height:1.4375;\n}\n.cm-s-neo .cm-comment { color:#75787b; }\n.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }\n.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }\n.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }\n.cm-s-neo .cm-string { color:#b35e14; }\n.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }\n\n\n/* Editor styling */\n\n.cm-s-neo pre {\n  padding:0;\n}\n\n.cm-s-neo .CodeMirror-gutters {\n  border:none;\n  border-right:10px solid transparent;\n  background-color:transparent;\n}\n\n.cm-s-neo .CodeMirror-linenumber {\n  padding:0;\n  color:#e0e2e5;\n}\n\n.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }\n.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }\n\n.cm-s-neo .CodeMirror-cursor {\n  width: auto;\n  border: 0;\n  background: rgba(155,157,162,0.37);\n  z-index: 1;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/night.css",
    "content": "/* Loosely based on the Midnight Textmate theme */\n\n.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-night div.CodeMirror-selected { background: #447; }\n.cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-night .CodeMirror-guttermarker { color: white; }\n.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }\n.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-night span.cm-comment { color: #8900d1; }\n.cm-s-night span.cm-atom { color: #845dc4; }\n.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }\n.cm-s-night span.cm-keyword { color: #599eff; }\n.cm-s-night span.cm-string { color: #37f14a; }\n.cm-s-night span.cm-meta { color: #7678e2; }\n.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }\n.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def, .cm-s-night span.cm-type { color: white; }\n.cm-s-night span.cm-bracket { color: #8da6ce; }\n.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }\n.cm-s-night span.cm-link { color: #845dc4; }\n.cm-s-night span.cm-error { color: #9d1e15; }\n\n.cm-s-night .CodeMirror-activeline-background { background: #1C005A; }\n.cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/nord.css",
    "content": "/* Based on arcticicestudio's Nord theme */\n/* https://github.com/arcticicestudio/nord */\n\n.cm-s-nord.CodeMirror { background: #2e3440; color: #d8dee9; }\n.cm-s-nord div.CodeMirror-selected { background: #434c5e; }\n.cm-s-nord .CodeMirror-line::selection, .cm-s-nord .CodeMirror-line > span::selection, .cm-s-nord .CodeMirror-line > span > span::selection { background: #3b4252; }\n.cm-s-nord .CodeMirror-line::-moz-selection, .cm-s-nord .CodeMirror-line > span::-moz-selection, .cm-s-nord .CodeMirror-line > span > span::-moz-selection { background: #3b4252; }\n.cm-s-nord .CodeMirror-gutters { background: #2e3440; border-right: 0px; }\n.cm-s-nord .CodeMirror-guttermarker { color: #4c566a; }\n.cm-s-nord .CodeMirror-guttermarker-subtle { color: #4c566a; }\n.cm-s-nord .CodeMirror-linenumber { color: #4c566a; }\n.cm-s-nord .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-nord span.cm-comment { color: #4c566a; }\n.cm-s-nord span.cm-atom { color: #b48ead; }\n.cm-s-nord span.cm-number { color: #b48ead; }\n\n.cm-s-nord span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-nord span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-nord span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-nord span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-nord span.cm-property, .cm-s-nord span.cm-attribute { color: #8FBCBB; }\n.cm-s-nord span.cm-keyword { color: #81A1C1; }\n.cm-s-nord span.cm-builtin { color: #81A1C1; }\n.cm-s-nord span.cm-string { color: #A3BE8C; }\n\n.cm-s-nord span.cm-variable { color: #d8dee9; }\n.cm-s-nord span.cm-variable-2 { color: #d8dee9; }\n.cm-s-nord span.cm-variable-3, .cm-s-nord span.cm-type { color: #d8dee9; }\n.cm-s-nord span.cm-def { color: #8FBCBB; }\n.cm-s-nord span.cm-bracket { color: #81A1C1; }\n.cm-s-nord span.cm-tag { color: #bf616a; }\n.cm-s-nord span.cm-header { color: #b48ead; }\n.cm-s-nord span.cm-link { color: #b48ead; }\n.cm-s-nord span.cm-error { background: #bf616a; color: #f8f8f0; }\n\n.cm-s-nord .CodeMirror-activeline-background { background: #3b4252; }\n.cm-s-nord .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/oceanic-next.css",
    "content": "/*\n\n    Name:       oceanic-next\n    Author:     Filype Pereira (https://github.com/fpereira1)\n\n    Original oceanic-next color scheme by Dmitri Voronianski (https://github.com/voronianski/oceanic-next-color-scheme)\n\n*/\n\n.cm-s-oceanic-next.CodeMirror { background: #304148; color: #f8f8f2; }\n.cm-s-oceanic-next div.CodeMirror-selected { background: rgba(101, 115, 126, 0.33); }\n.cm-s-oceanic-next .CodeMirror-line::selection, .cm-s-oceanic-next .CodeMirror-line > span::selection, .cm-s-oceanic-next .CodeMirror-line > span > span::selection { background: rgba(101, 115, 126, 0.33); }\n.cm-s-oceanic-next .CodeMirror-line::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span::-moz-selection, .cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection { background: rgba(101, 115, 126, 0.33); }\n.cm-s-oceanic-next .CodeMirror-gutters { background: #304148; border-right: 10px; }\n.cm-s-oceanic-next .CodeMirror-guttermarker { color: white; }\n.cm-s-oceanic-next .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-oceanic-next .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-oceanic-next .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-oceanic-next span.cm-comment { color: #65737E; }\n.cm-s-oceanic-next span.cm-atom { color: #C594C5; }\n.cm-s-oceanic-next span.cm-number { color: #F99157; }\n\n.cm-s-oceanic-next span.cm-property { color: #99C794; }\n.cm-s-oceanic-next span.cm-attribute,\n.cm-s-oceanic-next span.cm-keyword { color: #C594C5; }\n.cm-s-oceanic-next span.cm-builtin { color: #66d9ef; }\n.cm-s-oceanic-next span.cm-string { color: #99C794; }\n\n.cm-s-oceanic-next span.cm-variable,\n.cm-s-oceanic-next span.cm-variable-2,\n.cm-s-oceanic-next span.cm-variable-3 { color: #f8f8f2; }\n.cm-s-oceanic-next span.cm-def { color: #6699CC; }\n.cm-s-oceanic-next span.cm-bracket { color: #5FB3B3; }\n.cm-s-oceanic-next span.cm-tag { color: #C594C5; }\n.cm-s-oceanic-next span.cm-header { color: #C594C5; }\n.cm-s-oceanic-next span.cm-link { color: #C594C5; }\n.cm-s-oceanic-next span.cm-error { background: #C594C5; color: #f8f8f0; }\n\n.cm-s-oceanic-next .CodeMirror-activeline-background { background: rgba(101, 115, 126, 0.33); }\n.cm-s-oceanic-next .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/panda-syntax.css",
    "content": "/*\n\tName:       Panda Syntax\n\tAuthor:     Siamak Mokhtari (http://github.com/siamak/)\n\tCodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)\n*/\n.cm-s-panda-syntax {\n\tbackground: #292A2B;\n\tcolor: #E6E6E6;\n\tline-height: 1.5;\n\tfont-family: 'Operator Mono', 'Source Code Pro', Menlo, Monaco, Consolas, Courier New, monospace;\n}\n.cm-s-panda-syntax .CodeMirror-cursor { border-color: #ff2c6d; }\n.cm-s-panda-syntax .CodeMirror-activeline-background {\n\tbackground: rgba(99, 123, 156, 0.1);\n}\n.cm-s-panda-syntax .CodeMirror-selected {\n\tbackground: #FFF;\n}\n.cm-s-panda-syntax .cm-comment {\n\tfont-style: italic;\n\tcolor: #676B79;\n}\n.cm-s-panda-syntax .cm-operator {\n\tcolor: #f3f3f3;\n}\n.cm-s-panda-syntax .cm-string {\n\tcolor: #19F9D8;\n}\n.cm-s-panda-syntax .cm-string-2 {\n    color: #FFB86C;\n}\n\n.cm-s-panda-syntax .cm-tag {\n\tcolor: #ff2c6d;\n}\n.cm-s-panda-syntax .cm-meta {\n\tcolor: #b084eb;\n}\n\n.cm-s-panda-syntax .cm-number {\n\tcolor: #FFB86C;\n}\n.cm-s-panda-syntax .cm-atom {\n\tcolor: #ff2c6d;\n}\n.cm-s-panda-syntax .cm-keyword {\n\tcolor: #FF75B5;\n}\n.cm-s-panda-syntax .cm-variable {\n\tcolor: #ffb86c;\n}\n.cm-s-panda-syntax .cm-variable-2 {\n\tcolor: #ff9ac1;\n}\n.cm-s-panda-syntax .cm-variable-3, .cm-s-panda-syntax .cm-type {\n\tcolor: #ff9ac1;\n}\n\n.cm-s-panda-syntax .cm-def {\n\tcolor: #e6e6e6;\n}\n.cm-s-panda-syntax .cm-property {\n\tcolor: #f3f3f3;\n}\n.cm-s-panda-syntax .cm-unit {\n    color: #ffb86c;\n}\n\n.cm-s-panda-syntax .cm-attribute {\n    color: #ffb86c;\n}\n\n.cm-s-panda-syntax .CodeMirror-matchingbracket {\n    border-bottom: 1px dotted #19F9D8;\n    padding-bottom: 2px;\n    color: #e6e6e6;\n}\n.cm-s-panda-syntax .CodeMirror-gutters {\n    background: #292a2b;\n    border-right-color: rgba(255, 255, 255, 0.1);\n}\n.cm-s-panda-syntax .CodeMirror-linenumber {\n    color: #e6e6e6;\n    opacity: 0.6;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/paraiso-dark.css",
    "content": "/*\n\n    Name:       Paraíso (Dark)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; }\n.cm-s-paraiso-dark div.CodeMirror-selected { background: #41323f; }\n.cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }\n.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }\n.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }\n.cm-s-paraiso-dark .CodeMirror-linenumber { color: #776e71; }\n.cm-s-paraiso-dark .CodeMirror-cursor { border-left: 1px solid #8d8687; }\n\n.cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-dark span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-dark span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-dark span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-dark span.cm-variable { color: #48b685; }\n.cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-dark span.cm-def { color: #f99b15; }\n.cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }\n.cm-s-paraiso-dark span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-dark span.cm-link { color: #815ba4; }\n.cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }\n\n.cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4D344A; }\n.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/paraiso-light.css",
    "content": "/*\n\n    Name:       Paraíso (Light)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\n\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\n\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/pastel-on-dark.css",
    "content": "/**\n * Pastel On Dark theme ported from ACE editor\n * @license MIT\n * @copyright AtomicPages LLC 2014\n * @author Dennis Thompson, AtomicPages LLC\n * @version 1.1\n * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme\n */\n\n.cm-s-pastel-on-dark.CodeMirror {\n\tbackground: #2c2827;\n\tcolor: #8F938F;\n\tline-height: 1.5;\n}\n.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }\n.cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }\n.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }\n\n.cm-s-pastel-on-dark .CodeMirror-gutters {\n\tbackground: #34302f;\n\tborder-right: 0px;\n\tpadding: 0 3px;\n}\n.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }\n.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }\n.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }\n.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }\n.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-string { color: #66A968; }\n.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }\n.cm-s-pastel-on-dark span.cm-variable-3, .cm-s-pastel-on-dark span.cm-type { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }\n.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }\n.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-error {\n\tbackground: #757aD8;\n\tcolor: #f8f8f0;\n}\n.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }\n.cm-s-pastel-on-dark .CodeMirror-matchingbracket {\n\tborder: 1px solid rgba(255,255,255,0.25);\n\tcolor: #8F938F !important;\n\tmargin: -1px -1px 0 -1px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/railscasts.css",
    "content": "/*\n\n    Name:       Railscasts\n    Author:     Ryan Bates (http://railscasts.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}\n.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}\n.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}\n.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}\n.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}\n\n.cm-s-railscasts span.cm-comment {color: #bc9458;}\n.cm-s-railscasts span.cm-atom {color: #b6b3eb;}\n.cm-s-railscasts span.cm-number {color: #b6b3eb;}\n\n.cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}\n.cm-s-railscasts span.cm-keyword {color: #da4939;}\n.cm-s-railscasts span.cm-string {color: #ffc66d;}\n\n.cm-s-railscasts span.cm-variable {color: #a5c261;}\n.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}\n.cm-s-railscasts span.cm-def {color: #cc7833;}\n.cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}\n.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}\n.cm-s-railscasts span.cm-tag {color: #da4939;}\n.cm-s-railscasts span.cm-link {color: #b6b3eb;}\n\n.cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n.cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/rubyblue.css",
    "content": ".cm-s-rubyblue.CodeMirror { background: #112435; color: white; }\n.cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }\n.cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }\n.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }\n.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }\n.cm-s-rubyblue .CodeMirror-linenumber { color: white; }\n.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }\n.cm-s-rubyblue span.cm-atom { color: #F4C20B; }\n.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }\n.cm-s-rubyblue span.cm-keyword { color: #F0F; }\n.cm-s-rubyblue span.cm-string { color: #F08047; }\n.cm-s-rubyblue span.cm-meta { color: #F0F; }\n.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }\n.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def, .cm-s-rubyblue span.cm-type { color: white; }\n.cm-s-rubyblue span.cm-bracket { color: #F0F; }\n.cm-s-rubyblue span.cm-link { color: #F4C20B; }\n.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }\n.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }\n.cm-s-rubyblue span.cm-error { color: #AF2018; }\n\n.cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/seti.css",
    "content": "/*\n\n    Name:       seti\n    Author:     Michael Kaminsky (http://github.com/mkaminsky11)\n\n    Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)\n\n*/\n\n\n.cm-s-seti.CodeMirror {\n  background-color: #151718 !important;\n  color: #CFD2D1 !important;\n  border: none;\n}\n.cm-s-seti .CodeMirror-gutters {\n  color: #404b53;\n  background-color: #0E1112;\n  border: none;\n}\n.cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }\n.cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }\n.cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-seti span.cm-comment { color: #41535b; }\n.cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }\n.cm-s-seti span.cm-number { color: #cd3f45; }\n.cm-s-seti span.cm-variable { color: #55b5db; }\n.cm-s-seti span.cm-variable-2 { color: #a074c4; }\n.cm-s-seti span.cm-def { color: #55b5db; }\n.cm-s-seti span.cm-keyword { color: #ff79c6; }\n.cm-s-seti span.cm-operator { color: #9fca56; }\n.cm-s-seti span.cm-keyword { color: #e6cd69; }\n.cm-s-seti span.cm-atom { color: #cd3f45; }\n.cm-s-seti span.cm-meta { color: #55b5db; }\n.cm-s-seti span.cm-tag { color: #55b5db; }\n.cm-s-seti span.cm-attribute { color: #9fca56; }\n.cm-s-seti span.cm-qualifier { color: #9fca56; }\n.cm-s-seti span.cm-property { color: #a074c4; }\n.cm-s-seti span.cm-variable-3, .cm-s-seti span.cm-type { color: #9fca56; }\n.cm-s-seti span.cm-builtin { color: #9fca56; }\n.cm-s-seti .CodeMirror-activeline-background { background: #101213; }\n.cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/shadowfox.css",
    "content": "/*\n\n    Name:       shadowfox\n    Author:     overdodactyl (http://github.com/overdodactyl)\n\n    Original shadowfox color scheme by Firefox\n\n*/\n\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\n\n.cm-s-shadowfox span.cm-comment { color: #939393; }\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\n\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\n\n.cm-s-shadowfox span.cm-meta { color: #939393; }\n.cm-s-shadowfox span.cm-hr { color: #939393; }\n\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\n\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\n.cm-s-shadowfox span.cm-link { color: #737373; }\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\n\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/solarized.css",
    "content": "/*\nSolarized theme for code-mirror\nhttp://ethanschoonover.com/solarized\n*/\n\n/*\nSolarized color palette\nhttp://ethanschoonover.com/solarized/img/solarized-palette.png\n*/\n\n.solarized.base03 { color: #002b36; }\n.solarized.base02 { color: #073642; }\n.solarized.base01 { color: #586e75; }\n.solarized.base00 { color: #657b83; }\n.solarized.base0 { color: #839496; }\n.solarized.base1 { color: #93a1a1; }\n.solarized.base2 { color: #eee8d5; }\n.solarized.base3  { color: #fdf6e3; }\n.solarized.solar-yellow  { color: #b58900; }\n.solarized.solar-orange  { color: #cb4b16; }\n.solarized.solar-red { color: #dc322f; }\n.solarized.solar-magenta { color: #d33682; }\n.solarized.solar-violet  { color: #6c71c4; }\n.solarized.solar-blue { color: #268bd2; }\n.solarized.solar-cyan { color: #2aa198; }\n.solarized.solar-green { color: #859900; }\n\n/* Color scheme for code-mirror */\n\n.cm-s-solarized {\n  line-height: 1.45em;\n  color-profile: sRGB;\n  rendering-intent: auto;\n}\n.cm-s-solarized.cm-s-dark {\n  color: #839496;\n  background-color: #002b36;\n  text-shadow: #002b36 0 1px;\n}\n.cm-s-solarized.cm-s-light {\n  background-color: #fdf6e3;\n  color: #657b83;\n  text-shadow: #eee8d5 0 1px;\n}\n\n.cm-s-solarized .CodeMirror-widget {\n  text-shadow: none;\n}\n\n.cm-s-solarized .cm-header { color: #586e75; }\n.cm-s-solarized .cm-quote { color: #93a1a1; }\n\n.cm-s-solarized .cm-keyword { color: #cb4b16; }\n.cm-s-solarized .cm-atom { color: #d33682; }\n.cm-s-solarized .cm-number { color: #d33682; }\n.cm-s-solarized .cm-def { color: #2aa198; }\n\n.cm-s-solarized .cm-variable { color: #839496; }\n.cm-s-solarized .cm-variable-2 { color: #b58900; }\n.cm-s-solarized .cm-variable-3, .cm-s-solarized .cm-type { color: #6c71c4; }\n\n.cm-s-solarized .cm-property { color: #2aa198; }\n.cm-s-solarized .cm-operator { color: #6c71c4; }\n\n.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }\n\n.cm-s-solarized .cm-string { color: #859900; }\n.cm-s-solarized .cm-string-2 { color: #b58900; }\n\n.cm-s-solarized .cm-meta { color: #859900; }\n.cm-s-solarized .cm-qualifier { color: #b58900; }\n.cm-s-solarized .cm-builtin { color: #d33682; }\n.cm-s-solarized .cm-bracket { color: #cb4b16; }\n.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }\n.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }\n.cm-s-solarized .cm-tag { color: #93a1a1; }\n.cm-s-solarized .cm-attribute { color: #2aa198; }\n.cm-s-solarized .cm-hr {\n  color: transparent;\n  border-top: 1px solid #586e75;\n  display: block;\n}\n.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }\n.cm-s-solarized .cm-special { color: #6c71c4; }\n.cm-s-solarized .cm-em {\n  color: #999;\n  text-decoration: underline;\n  text-decoration-style: dotted;\n}\n.cm-s-solarized .cm-error,\n.cm-s-solarized .cm-invalidchar {\n  color: #586e75;\n  border-bottom: 1px dotted #dc322f;\n}\n\n.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }\n.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }\n.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }\n\n.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }\n.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }\n.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-light .CodeMirror-line > span::-moz-selection, .cm-s-light .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }\n\n/* Editor styling */\n\n\n\n/* Little shadow on the view-port of the buffer view */\n.cm-s-solarized.CodeMirror {\n  -moz-box-shadow: inset 7px 0 12px -6px #000;\n  -webkit-box-shadow: inset 7px 0 12px -6px #000;\n  box-shadow: inset 7px 0 12px -6px #000;\n}\n\n/* Remove gutter border */\n.cm-s-solarized .CodeMirror-gutters {\n  border-right: 0;\n}\n\n/* Gutter colors and line number styling based of color scheme (dark / light) */\n\n/* Dark */\n.cm-s-solarized.cm-s-dark .CodeMirror-gutters {\n  background-color: #073642;\n}\n\n.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {\n  color: #586e75;\n  text-shadow: #021014 0 -1px;\n}\n\n/* Light */\n.cm-s-solarized.cm-s-light .CodeMirror-gutters {\n  background-color: #eee8d5;\n}\n\n.cm-s-solarized.cm-s-light .CodeMirror-linenumber {\n  color: #839496;\n}\n\n/* Common */\n.cm-s-solarized .CodeMirror-linenumber {\n  padding: 0 5px;\n}\n.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }\n.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }\n.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }\n\n.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {\n  color: #586e75;\n}\n\n/* Cursor */\n.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }\n\n/* Fat cursor */\n.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }\n.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }\n.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }\n.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }\n\n/* Active line */\n.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {\n  background: rgba(255, 255, 255, 0.06);\n}\n.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.06);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ssms.css",
    "content": ".cm-s-ssms span.cm-keyword { color: blue; }\n.cm-s-ssms span.cm-comment { color: darkgreen; }\n.cm-s-ssms span.cm-string { color: red; }\n.cm-s-ssms span.cm-def { color: black; }\n.cm-s-ssms span.cm-variable { color: black; }\n.cm-s-ssms span.cm-variable-2 { color: black; }\n.cm-s-ssms span.cm-atom { color: darkgray; }\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\n.cm-s-ssms span.cm-operator, \n.cm-s-ssms span.cm-bracket, \n.cm-s-ssms span.cm-punctuation { color: darkgray; }\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/the-matrix.css",
    "content": ".cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }\n.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }\n.cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }\n.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }\n.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }\n.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }\n.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }\n\n.cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }\n.cm-s-the-matrix span.cm-atom { color: #3FF; }\n.cm-s-the-matrix span.cm-number { color: #FFB94F; }\n.cm-s-the-matrix span.cm-def { color: #99C; }\n.cm-s-the-matrix span.cm-variable { color: #F6C; }\n.cm-s-the-matrix span.cm-variable-2 { color: #C6F; }\n.cm-s-the-matrix span.cm-variable-3, .cm-s-the-matrix span.cm-type { color: #96F; }\n.cm-s-the-matrix span.cm-property { color: #62FFA0; }\n.cm-s-the-matrix span.cm-operator { color: #999; }\n.cm-s-the-matrix span.cm-comment { color: #CCCCCC; }\n.cm-s-the-matrix span.cm-string { color: #39C; }\n.cm-s-the-matrix span.cm-meta { color: #C9F; }\n.cm-s-the-matrix span.cm-qualifier { color: #FFF700; }\n.cm-s-the-matrix span.cm-builtin { color: #30a; }\n.cm-s-the-matrix span.cm-bracket { color: #cc7; }\n.cm-s-the-matrix span.cm-tag { color: #FFBD40; }\n.cm-s-the-matrix span.cm-attribute { color: #FFF700; }\n.cm-s-the-matrix span.cm-error { color: #FF0000; }\n\n.cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/tomorrow-night-bright.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Bright\n    Author:     Chris Kempson\n\n    Port done by Gerard Braad <me@gbraad.nl>\n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\n\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/tomorrow-night-eighties.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Eighties\n    Author:     Chris Kempson\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }\n.cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }\n.cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }\n.cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }\n.cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }\n\n.cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }\n.cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }\n.cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }\n.cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }\n.cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }\n.cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }\n.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/ttcn.css",
    "content": ".cm-s-ttcn .cm-quote { color: #090; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-link { text-decoration: underline; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\n\n.cm-s-ttcn .cm-atom { color: #219; }\n.cm-s-ttcn .cm-attribute { color: #00c; }\n.cm-s-ttcn .cm-bracket { color: #997; }\n.cm-s-ttcn .cm-comment { color: #333333; }\n.cm-s-ttcn .cm-def { color: #00f; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-error { color: #f00; }\n.cm-s-ttcn .cm-hr { color: #999; }\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\n.cm-s-ttcn .cm-meta { color: #555; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-qualifier { color: #555; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-string { color: #006400; }\n.cm-s-ttcn .cm-string-2 { color: #f50; }\n.cm-s-ttcn .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-tag { color: #170; }\n.cm-s-ttcn .cm-variable { color: #8B2252; }\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\n\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n\n/* ASN */\n.cm-s-ttcn .cm-accessTypes,\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\n.cm-s-ttcn .cm-status { color:#8B4545; }\n.cm-s-ttcn .cm-storage { color:#A020F0; }\n.cm-s-ttcn .cm-tags { color:#006400; }\n\n/* CFG */\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\n\n/* TTCN */\n.cm-s-ttcn .cm-booleanConsts,\n.cm-s-ttcn .cm-otherConsts,\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\n.cm-s-ttcn .cm-configOps,\n.cm-s-ttcn .cm-functionOps,\n.cm-s-ttcn .cm-portOps,\n.cm-s-ttcn .cm-sutOps,\n.cm-s-ttcn .cm-timerOps,\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\n.cm-s-ttcn .cm-preprocessor,\n.cm-s-ttcn .cm-templateMatch,\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/twilight.css",
    "content": ".cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/\n.cm-s-twilight div.CodeMirror-selected { background: #323232; } /**/\n.cm-s-twilight .CodeMirror-line::selection, .cm-s-twilight .CodeMirror-line > span::selection, .cm-s-twilight .CodeMirror-line > span > span::selection { background: rgba(50, 50, 50, 0.99); }\n.cm-s-twilight .CodeMirror-line::-moz-selection, .cm-s-twilight .CodeMirror-line > span::-moz-selection, .cm-s-twilight .CodeMirror-line > span > span::-moz-selection { background: rgba(50, 50, 50, 0.99); }\n\n.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }\n.cm-s-twilight .CodeMirror-guttermarker { color: white; }\n.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }\n.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }\n.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/\n.cm-s-twilight .cm-atom { color: #FC0; }\n.cm-s-twilight .cm-number { color:  #ca7841; } /**/\n.cm-s-twilight .cm-def { color: #8DA6CE; }\n.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/\n.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def, .cm-s-twilight span.cm-type { color: #607392; } /**/\n.cm-s-twilight .cm-operator { color: #cda869; } /**/\n.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/\n.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/\n.cm-s-twilight .cm-string-2 { color:#bd6b18; } /*?*/\n.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/\n.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/\n.cm-s-twilight .cm-tag { color: #997643; } /**/\n.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-twilight .cm-header { color: #FF6400; }\n.cm-s-twilight .cm-hr { color: #AEAEAE; }\n.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/\n.cm-s-twilight .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-twilight .CodeMirror-activeline-background { background: #27282E; }\n.cm-s-twilight .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/vibrant-ink.css",
    "content": "/* Taken from the popular Visual Studio Vibrant Ink Schema */\n\n.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }\n.cm-s-vibrant-ink div.CodeMirror-selected { background: #35493c; }\n.cm-s-vibrant-ink .CodeMirror-line::selection, .cm-s-vibrant-ink .CodeMirror-line > span::selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::selection { background: rgba(53, 73, 60, 0.99); }\n.cm-s-vibrant-ink .CodeMirror-line::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection { background: rgba(53, 73, 60, 0.99); }\n\n.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-vibrant-ink .cm-keyword { color: #CC7832; }\n.cm-s-vibrant-ink .cm-atom { color: #FC0; }\n.cm-s-vibrant-ink .cm-number { color:  #FFEE98; }\n.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }\n.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D; }\n.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def, .cm-s-vibrant span.cm-type { color: #FFC66D; }\n.cm-s-vibrant-ink .cm-operator { color: #888; }\n.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }\n.cm-s-vibrant-ink .cm-string { color:  #A5C25C; }\n.cm-s-vibrant-ink .cm-string-2 { color: red; }\n.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }\n.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-header { color: #FF6400; }\n.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }\n.cm-s-vibrant-ink .cm-link { color: #5656F3; }\n.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-vibrant-ink .CodeMirror-activeline-background { background: #27282E; }\n.cm-s-vibrant-ink .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/xq-dark.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-xq-dark div.CodeMirror-selected { background: #27007A; }\n.cm-s-xq-dark .CodeMirror-line::selection, .cm-s-xq-dark .CodeMirror-line > span::selection, .cm-s-xq-dark .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark .CodeMirror-line::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-xq-dark span.cm-keyword { color: #FFBD40; }\n.cm-s-xq-dark span.cm-atom { color: #6C8CD5; }\n.cm-s-xq-dark span.cm-number { color: #164; }\n.cm-s-xq-dark span.cm-def { color: #FFF; text-decoration:underline; }\n.cm-s-xq-dark span.cm-variable { color: #FFF; }\n.cm-s-xq-dark span.cm-variable-2 { color: #EEE; }\n.cm-s-xq-dark span.cm-variable-3, .cm-s-xq-dark span.cm-type { color: #DDD; }\n.cm-s-xq-dark span.cm-property {}\n.cm-s-xq-dark span.cm-operator {}\n.cm-s-xq-dark span.cm-comment { color: gray; }\n.cm-s-xq-dark span.cm-string { color: #9FEE00; }\n.cm-s-xq-dark span.cm-meta { color: yellow; }\n.cm-s-xq-dark span.cm-qualifier { color: #FFF700; }\n.cm-s-xq-dark span.cm-builtin { color: #30a; }\n.cm-s-xq-dark span.cm-bracket { color: #cc7; }\n.cm-s-xq-dark span.cm-tag { color: #FFBD40; }\n.cm-s-xq-dark span.cm-attribute { color: #FFF700; }\n.cm-s-xq-dark span.cm-error { color: #f00; }\n\n.cm-s-xq-dark .CodeMirror-activeline-background { background: #27282E; }\n.cm-s-xq-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/xq-light.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-light span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }\n.cm-s-xq-light span.cm-atom { color: #6C8CD5; }\n.cm-s-xq-light span.cm-number { color: #164; }\n.cm-s-xq-light span.cm-def { text-decoration:underline; }\n.cm-s-xq-light span.cm-variable { color: black; }\n.cm-s-xq-light span.cm-variable-2 { color:black; }\n.cm-s-xq-light span.cm-variable-3, .cm-s-xq-light span.cm-type { color: black; }\n.cm-s-xq-light span.cm-property {}\n.cm-s-xq-light span.cm-operator {}\n.cm-s-xq-light span.cm-comment { color: #0080FF; font-style: italic; }\n.cm-s-xq-light span.cm-string { color: red; }\n.cm-s-xq-light span.cm-meta { color: yellow; }\n.cm-s-xq-light span.cm-qualifier { color: grey; }\n.cm-s-xq-light span.cm-builtin { color: #7EA656; }\n.cm-s-xq-light span.cm-bracket { color: #cc7; }\n.cm-s-xq-light span.cm-tag { color: #3F7F7F; }\n.cm-s-xq-light span.cm-attribute { color: #7F007F; }\n.cm-s-xq-light span.cm-error { color: #f00; }\n\n.cm-s-xq-light .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-xq-light .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/yeti.css",
    "content": "/*\n\n    Name:       yeti\n    Author:     Michael Kaminsky (http://github.com/mkaminsky11)\n\n    Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)\n\n*/\n\n\n.cm-s-yeti.CodeMirror {\n  background-color: #ECEAE8 !important;\n  color: #d1c9c0 !important;\n  border: none;\n}\n\n.cm-s-yeti .CodeMirror-gutters {\n  color: #adaba6;\n  background-color: #E5E1DB;\n  border: none;\n}\n.cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }\n.cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }\n.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }\n.cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }\n.cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }\n.cm-s-yeti span.cm-comment { color: #d4c8be; }\n.cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }\n.cm-s-yeti span.cm-number { color: #a074c4; }\n.cm-s-yeti span.cm-variable { color: #55b5db; }\n.cm-s-yeti span.cm-variable-2 { color: #a074c4; }\n.cm-s-yeti span.cm-def { color: #55b5db; }\n.cm-s-yeti span.cm-operator { color: #9fb96e; }\n.cm-s-yeti span.cm-keyword { color: #9fb96e; }\n.cm-s-yeti span.cm-atom { color: #a074c4; }\n.cm-s-yeti span.cm-meta { color: #96c0d8; }\n.cm-s-yeti span.cm-tag { color: #96c0d8; }\n.cm-s-yeti span.cm-attribute { color: #9fb96e; }\n.cm-s-yeti span.cm-qualifier { color: #96c0d8; }\n.cm-s-yeti span.cm-property { color: #a074c4; }\n.cm-s-yeti span.cm-builtin { color: #a074c4; }\n.cm-s-yeti span.cm-variable-3, .cm-s-yeti span.cm-type { color: #96c0d8; }\n.cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }\n.cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/yonce.css",
    "content": "/*\n\n    Name:       yoncé\n    Author:     Thomas MacLean (http://github.com/thomasmaclean)\n\n    Original yoncé color scheme by Mina Markham (https://github.com/minamarkham)\n\n*/\n\n.cm-s-yonce.CodeMirror { background: #1C1C1C; color: #d4d4d4; } /**/\n.cm-s-yonce div.CodeMirror-selected { background: rgba(252, 69, 133, 0.478); } /**/\n.cm-s-yonce .CodeMirror-selectedtext,\n.cm-s-yonce .CodeMirror-selected,\n.cm-s-yonce .CodeMirror-line::selection,\n.cm-s-yonce .CodeMirror-line > span::selection,\n.cm-s-yonce .CodeMirror-line > span > span::selection,\n.cm-s-yonce .CodeMirror-line::-moz-selection,\n.cm-s-yonce .CodeMirror-line > span::-moz-selection,\n.cm-s-yonce .CodeMirror-line > span > span::-moz-selection { background: rgba(252, 67, 132, 0.47); }\n\n.cm-s-yonce.CodeMirror pre { padding-left: 0px; }\n.cm-s-yonce .CodeMirror-gutters {background: #1C1C1C; border-right: 0px;}\n.cm-s-yonce .CodeMirror-linenumber {color: #777777;  padding-right: 10px; }\n.cm-s-yonce .CodeMirror-activeline .CodeMirror-linenumber.CodeMirror-gutter-elt { background: #1C1C1C; color: #fc4384; }\n.cm-s-yonce .CodeMirror-linenumber { color: #777; }\n.cm-s-yonce .CodeMirror-cursor { border-left: 2px solid #FC4384; }\n.cm-s-yonce .cm-searching { background: rgba(243, 155, 53, .3) !important; outline: 1px solid #F39B35; }\n.cm-s-yonce .cm-searching.CodeMirror-selectedtext { background: rgba(243, 155, 53, .7) !important; color: white; }\n\n.cm-s-yonce .cm-keyword { color: #00A7AA; } /**/\n.cm-s-yonce .cm-atom { color: #F39B35; }\n.cm-s-yonce .cm-number, .cm-s-yonce span.cm-type { color:  #A06FCA; } /**/\n.cm-s-yonce .cm-def { color: #98E342; }\n.cm-s-yonce .cm-property,\n.cm-s-yonce span.cm-variable { color: #D4D4D4; font-style: italic; }\n.cm-s-yonce span.cm-variable-2 { color: #da7dae; font-style: italic; }\n.cm-s-yonce span.cm-variable-3 { color: #A06FCA; }\n.cm-s-yonce .cm-type.cm-def { color: #FC4384; font-style: normal; text-decoration: underline; }\n.cm-s-yonce .cm-property.cm-def { color: #FC4384; font-style: normal; }\n.cm-s-yonce .cm-callee { color: #FC4384; font-style: normal; }\n.cm-s-yonce .cm-operator { color: #FC4384; } /**/\n.cm-s-yonce .cm-qualifier,\n.cm-s-yonce .cm-tag { color: #FC4384; }\n.cm-s-yonce .cm-tag.cm-bracket { color: #D4D4D4; }\n.cm-s-yonce .cm-attribute { color: #A06FCA; }\n.cm-s-yonce .cm-comment { color:#696d70; font-style:italic; font-weight:normal; } /**/\n.cm-s-yonce .cm-comment.cm-tag { color: #FC4384 }\n.cm-s-yonce .cm-comment.cm-attribute { color: #D4D4D4; }\n.cm-s-yonce .cm-string { color:#E6DB74; } /**/\n.cm-s-yonce .cm-string-2 { color:#F39B35; } /*?*/\n.cm-s-yonce .cm-meta { color: #D4D4D4; background: inherit; }\n.cm-s-yonce .cm-builtin { color: #FC4384; } /*?*/\n.cm-s-yonce .cm-header { color: #da7dae; }\n.cm-s-yonce .cm-hr { color: #98E342; }\n.cm-s-yonce .cm-link { color:#696d70; font-style:italic; text-decoration:none; } /**/\n.cm-s-yonce .cm-error { border-bottom: 1px solid #C42412; }\n\n.cm-s-yonce .CodeMirror-activeline-background { background: #272727; }\n.cm-s-yonce .CodeMirror-matchingbracket { outline:1px solid grey; color:#D4D4D4 !important; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/codemirror/theme/zenburn.css",
    "content": "/**\n * \"\n *  Using Zenburn color palette from the Emacs Zenburn Theme\n *  https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el\n *\n *  Also using parts of https://github.com/xavi/coderay-lighttable-theme\n * \"\n * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css\n */\n\n.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }\n.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }\n.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }\n.cm-s-zenburn.CodeMirror { background-color: #3f3f3f; color: #dcdccc; }\n.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }\n.cm-s-zenburn span.cm-comment { color: #7f9f7f; }\n.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }\n.cm-s-zenburn span.cm-atom { color: #bfebbf; }\n.cm-s-zenburn span.cm-def { color: #dcdccc; }\n.cm-s-zenburn span.cm-variable { color: #dfaf8f; }\n.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }\n.cm-s-zenburn span.cm-string { color: #cc9393; }\n.cm-s-zenburn span.cm-string-2 { color: #cc9393; }\n.cm-s-zenburn span.cm-number { color: #dcdccc; }\n.cm-s-zenburn span.cm-tag { color: #93e0e3; }\n.cm-s-zenburn span.cm-property { color: #dfaf8f; }\n.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }\n.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }\n.cm-s-zenburn span.cm-meta { color: #f0dfaf; }\n.cm-s-zenburn span.cm-header { color: #f0efd0; }\n.cm-s-zenburn span.cm-operator { color: #f0efd0; }\n.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }\n.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }\n.cm-s-zenburn .CodeMirror-activeline { background: #000000; }\n.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }\n.cm-s-zenburn div.CodeMirror-selected { background: #545454; }\n.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables/jquery.dataTables.js",
    "content": "/*! DataTables 1.10.24\n * ©2008-2021 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     DataTables\n * @description Paginate, search and order HTML tables\n * @version     1.10.24\n * @file        jquery.dataTables.js\n * @author      SpryMedia Ltd\n * @contact     www.datatables.net\n * @copyright   Copyright 2008-2021 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n/*jslint evil: true, undef: true, browser: true */\n/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/\n\n(function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\t// CommonJS environments without a window global must pass a\n\t\t\t\t// root. This will give an error otherwise\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ ) {\n\t\t\t\t$ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window\n\t\t\t\t\trequire('jquery') :\n\t\t\t\t\trequire('jquery')( root );\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}\n(function( $, window, document, undefined ) {\n\t\"use strict\";\n\n\t/**\n\t * DataTables is a plug-in for the jQuery Javascript library. It is a highly\n\t * flexible tool, based upon the foundations of progressive enhancement,\n\t * which will add advanced interaction controls to any HTML table. For a\n\t * full list of features please refer to\n\t * [DataTables.net](href=\"http://datatables.net).\n\t *\n\t * Note that the `DataTable` object is not a global variable but is aliased\n\t * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may\n\t * be  accessed.\n\t *\n\t *  @class\n\t *  @param {object} [init={}] Configuration object for DataTables. Options\n\t *    are defined by {@link DataTable.defaults}\n\t *  @requires jQuery 1.7+\n\t *\n\t *  @example\n\t *    // Basic initialisation\n\t *    $(document).ready( function {\n\t *      $('#example').dataTable();\n\t *    } );\n\t *\n\t *  @example\n\t *    // Initialisation with configuration options - in this case, disable\n\t *    // pagination and sorting.\n\t *    $(document).ready( function {\n\t *      $('#example').dataTable( {\n\t *        \"paginate\": false,\n\t *        \"sort\": false\n\t *      } );\n\t *    } );\n\t */\n\tvar DataTable = function ( options )\n\t{\n\t\t/**\n\t\t * Perform a jQuery selector action on the table's TR elements (from the tbody) and\n\t\t * return the resulting jQuery object.\n\t\t *  @param {string|node|jQuery} sSelector jQuery selector or node collection to act on\n\t\t *  @param {object} [oOpts] Optional parameters for modifying the rows to be included\n\t\t *  @param {string} [oOpts.filter=none] Select TR elements that meet the current filter\n\t\t *    criterion (\"applied\") or all TR elements (i.e. no filter).\n\t\t *  @param {string} [oOpts.order=current] Order of the TR elements in the processed array.\n\t\t *    Can be either 'current', whereby the current sorting of the table is used, or\n\t\t *    'original' whereby the original order the data was read into the table is used.\n\t\t *  @param {string} [oOpts.page=all] Limit the selection to the currently displayed page\n\t\t *    (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be\n\t\t *    'current' and filter is 'applied', regardless of what they might be given as.\n\t\t *  @returns {object} jQuery object, filtered by the given selector.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Highlight every second row\n\t\t *      oTable.$('tr:odd').css('backgroundColor', 'blue');\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Filter to rows with 'Webkit' in them, add a background colour and then\n\t\t *      // remove the filter, thus highlighting the 'Webkit' rows only.\n\t\t *      oTable.fnFilter('Webkit');\n\t\t *      oTable.$('tr', {\"search\": \"applied\"}).css('backgroundColor', 'blue');\n\t\t *      oTable.fnFilter('');\n\t\t *    } );\n\t\t */\n\t\tthis.$ = function ( sSelector, oOpts )\n\t\t{\n\t\t\treturn this.api(true).$( sSelector, oOpts );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Almost identical to $ in operation, but in this case returns the data for the matched\n\t\t * rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes\n\t\t * rather than any descendants, so the data can be obtained for the row/cell. If matching\n\t\t * rows are found, the data returned is the original data array/object that was used to\n\t\t * create the row (or a generated array if from a DOM source).\n\t\t *\n\t\t * This method is often useful in-combination with $ where both functions are given the\n\t\t * same parameters and the array indexes will match identically.\n\t\t *  @param {string|node|jQuery} sSelector jQuery selector or node collection to act on\n\t\t *  @param {object} [oOpts] Optional parameters for modifying the rows to be included\n\t\t *  @param {string} [oOpts.filter=none] Select elements that meet the current filter\n\t\t *    criterion (\"applied\") or all elements (i.e. no filter).\n\t\t *  @param {string} [oOpts.order=current] Order of the data in the processed array.\n\t\t *    Can be either 'current', whereby the current sorting of the table is used, or\n\t\t *    'original' whereby the original order the data was read into the table is used.\n\t\t *  @param {string} [oOpts.page=all] Limit the selection to the currently displayed page\n\t\t *    (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be\n\t\t *    'current' and filter is 'applied', regardless of what they might be given as.\n\t\t *  @returns {array} Data for the matched elements. If any elements, as a result of the\n\t\t *    selector, were not TR, TD or TH elements in the DataTable, they will have a null\n\t\t *    entry in the array.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Get the data from the first row in the table\n\t\t *      var data = oTable._('tr:first');\n\t\t *\n\t\t *      // Do something useful with the data\n\t\t *      alert( \"First cell is: \"+data[0] );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Filter to 'Webkit' and get all data for\n\t\t *      oTable.fnFilter('Webkit');\n\t\t *      var data = oTable._('tr', {\"search\": \"applied\"});\n\t\t *\n\t\t *      // Do something with the data\n\t\t *      alert( data.length+\" rows matched the search\" );\n\t\t *    } );\n\t\t */\n\t\tthis._ = function ( sSelector, oOpts )\n\t\t{\n\t\t\treturn this.api(true).rows( sSelector, oOpts ).data();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Create a DataTables Api instance, with the currently selected tables for\n\t\t * the Api's context.\n\t\t * @param {boolean} [traditional=false] Set the API instance's context to be\n\t\t *   only the table referred to by the `DataTable.ext.iApiIndex` option, as was\n\t\t *   used in the API presented by DataTables 1.9- (i.e. the traditional mode),\n\t\t *   or if all tables captured in the jQuery object should be used.\n\t\t * @return {DataTables.Api}\n\t\t */\n\t\tthis.api = function ( traditional )\n\t\t{\n\t\t\treturn traditional ?\n\t\t\t\tnew _Api(\n\t\t\t\t\t_fnSettingsFromNode( this[ _ext.iApiIndex ] )\n\t\t\t\t) :\n\t\t\t\tnew _Api( this );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Add a single new row or multiple rows of data to the table. Please note\n\t\t * that this is suitable for client-side processing only - if you are using\n\t\t * server-side processing (i.e. \"bServerSide\": true), then to add data, you\n\t\t * must add it to the data source, i.e. the server-side, through an Ajax call.\n\t\t *  @param {array|object} data The data to be added to the table. This can be:\n\t\t *    <ul>\n\t\t *      <li>1D array of data - add a single row with the data provided</li>\n\t\t *      <li>2D array of arrays - add multiple rows in a single call</li>\n\t\t *      <li>object - data object when using <i>mData</i></li>\n\t\t *      <li>array of objects - multiple data objects when using <i>mData</i></li>\n\t\t *    </ul>\n\t\t *  @param {bool} [redraw=true] redraw the table or not\n\t\t *  @returns {array} An array of integers, representing the list of indexes in\n\t\t *    <i>aoData</i> ({@link DataTable.models.oSettings}) that have been added to\n\t\t *    the table.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    // Global var for counter\n\t\t *    var giCount = 2;\n\t\t *\n\t\t *    $(document).ready(function() {\n\t\t *      $('#example').dataTable();\n\t\t *    } );\n\t\t *\n\t\t *    function fnClickAddRow() {\n\t\t *      $('#example').dataTable().fnAddData( [\n\t\t *        giCount+\".1\",\n\t\t *        giCount+\".2\",\n\t\t *        giCount+\".3\",\n\t\t *        giCount+\".4\" ]\n\t\t *      );\n\t\t *\n\t\t *      giCount++;\n\t\t *    }\n\t\t */\n\t\tthis.fnAddData = function( data, redraw )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\n\t\t\t/* Check if we want to add multiple rows or not */\n\t\t\tvar rows = Array.isArray(data) && ( Array.isArray(data[0]) || $.isPlainObject(data[0]) ) ?\n\t\t\t\tapi.rows.add( data ) :\n\t\t\t\tapi.row.add( data );\n\t\t\n\t\t\tif ( redraw === undefined || redraw ) {\n\t\t\t\tapi.draw();\n\t\t\t}\n\t\t\n\t\t\treturn rows.flatten().toArray();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * This function will make DataTables recalculate the column sizes, based on the data\n\t\t * contained in the table and the sizes applied to the columns (in the DOM, CSS or\n\t\t * through the sWidth parameter). This can be useful when the width of the table's\n\t\t * parent element changes (for example a window resize).\n\t\t *  @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable( {\n\t\t *        \"sScrollY\": \"200px\",\n\t\t *        \"bPaginate\": false\n\t\t *      } );\n\t\t *\n\t\t *      $(window).on('resize', function () {\n\t\t *        oTable.fnAdjustColumnSizing();\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\tthis.fnAdjustColumnSizing = function ( bRedraw )\n\t\t{\n\t\t\tvar api = this.api( true ).columns.adjust();\n\t\t\tvar settings = api.settings()[0];\n\t\t\tvar scroll = settings.oScroll;\n\t\t\n\t\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\t\tapi.draw( false );\n\t\t\t}\n\t\t\telse if ( scroll.sX !== \"\" || scroll.sY !== \"\" ) {\n\t\t\t\t/* If not redrawing, but scrolling, we want to apply the new column sizes anyway */\n\t\t\t\t_fnScrollDraw( settings );\n\t\t\t}\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Quickly and simply clear a table\n\t\t *  @param {bool} [bRedraw=true] redraw the table or not\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...)\n\t\t *      oTable.fnClearTable();\n\t\t *    } );\n\t\t */\n\t\tthis.fnClearTable = function( bRedraw )\n\t\t{\n\t\t\tvar api = this.api( true ).clear();\n\t\t\n\t\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\t\tapi.draw();\n\t\t\t}\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * The exact opposite of 'opening' a row, this function will close any rows which\n\t\t * are currently 'open'.\n\t\t *  @param {node} nTr the table row to 'close'\n\t\t *  @returns {int} 0 on success, or 1 if failed (can't find the row)\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable;\n\t\t *\n\t\t *      // 'open' an information row when a row is clicked on\n\t\t *      $('#example tbody tr').click( function () {\n\t\t *        if ( oTable.fnIsOpen(this) ) {\n\t\t *          oTable.fnClose( this );\n\t\t *        } else {\n\t\t *          oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t\t *        }\n\t\t *      } );\n\t\t *\n\t\t *      oTable = $('#example').dataTable();\n\t\t *    } );\n\t\t */\n\t\tthis.fnClose = function( nTr )\n\t\t{\n\t\t\tthis.api( true ).row( nTr ).child.hide();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Remove a row for the table\n\t\t *  @param {mixed} target The index of the row from aoData to be deleted, or\n\t\t *    the TR element you want to delete\n\t\t *  @param {function|null} [callBack] Callback function\n\t\t *  @param {bool} [redraw=true] Redraw the table or not\n\t\t *  @returns {array} The row that was deleted\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Immediately remove the first row\n\t\t *      oTable.fnDeleteRow( 0 );\n\t\t *    } );\n\t\t */\n\t\tthis.fnDeleteRow = function( target, callback, redraw )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\tvar rows = api.rows( target );\n\t\t\tvar settings = rows.settings()[0];\n\t\t\tvar data = settings.aoData[ rows[0][0] ];\n\t\t\n\t\t\trows.remove();\n\t\t\n\t\t\tif ( callback ) {\n\t\t\t\tcallback.call( this, settings, data );\n\t\t\t}\n\t\t\n\t\t\tif ( redraw === undefined || redraw ) {\n\t\t\t\tapi.draw();\n\t\t\t}\n\t\t\n\t\t\treturn data;\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Restore the table to it's original state in the DOM by removing all of DataTables\n\t\t * enhancements, alterations to the DOM structure of the table and event listeners.\n\t\t *  @param {boolean} [remove=false] Completely remove the table from the DOM\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      // This example is fairly pointless in reality, but shows how fnDestroy can be used\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *      oTable.fnDestroy();\n\t\t *    } );\n\t\t */\n\t\tthis.fnDestroy = function ( remove )\n\t\t{\n\t\t\tthis.api( true ).destroy( remove );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Redraw the table\n\t\t *  @param {bool} [complete=true] Re-filter and resort (if enabled) the table before the draw.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Re-draw the table - you wouldn't want to do it here, but it's an example :-)\n\t\t *      oTable.fnDraw();\n\t\t *    } );\n\t\t */\n\t\tthis.fnDraw = function( complete )\n\t\t{\n\t\t\t// Note that this isn't an exact match to the old call to _fnDraw - it takes\n\t\t\t// into account the new data, but can hold position.\n\t\t\tthis.api( true ).draw( complete );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Filter the input based on data\n\t\t *  @param {string} sInput String to filter the table on\n\t\t *  @param {int|null} [iColumn] Column to limit filtering to\n\t\t *  @param {bool} [bRegex=false] Treat as regular expression or not\n\t\t *  @param {bool} [bSmart=true] Perform smart filtering or not\n\t\t *  @param {bool} [bShowGlobal=true] Show the input global filter in it's input box(es)\n\t\t *  @param {bool} [bCaseInsensitive=true] Do case-insensitive matching (true) or not (false)\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Sometime later - filter...\n\t\t *      oTable.fnFilter( 'test string' );\n\t\t *    } );\n\t\t */\n\t\tthis.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\n\t\t\tif ( iColumn === null || iColumn === undefined ) {\n\t\t\t\tapi.search( sInput, bRegex, bSmart, bCaseInsensitive );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.column( iColumn ).search( sInput, bRegex, bSmart, bCaseInsensitive );\n\t\t\t}\n\t\t\n\t\t\tapi.draw();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Get the data for the whole table, an individual row or an individual cell based on the\n\t\t * provided parameters.\n\t\t *  @param {int|node} [src] A TR row node, TD/TH cell node or an integer. If given as\n\t\t *    a TR node then the data source for the whole row will be returned. If given as a\n\t\t *    TD/TH cell node then iCol will be automatically calculated and the data for the\n\t\t *    cell returned. If given as an integer, then this is treated as the aoData internal\n\t\t *    data index for the row (see fnGetPosition) and the data for that row used.\n\t\t *  @param {int} [col] Optional column index that you want the data of.\n\t\t *  @returns {array|object|string} If mRow is undefined, then the data for all rows is\n\t\t *    returned. If mRow is defined, just data for that row, and is iCol is\n\t\t *    defined, only data for the designated cell is returned.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    // Row data\n\t\t *    $(document).ready(function() {\n\t\t *      oTable = $('#example').dataTable();\n\t\t *\n\t\t *      oTable.$('tr').click( function () {\n\t\t *        var data = oTable.fnGetData( this );\n\t\t *        // ... do something with the array / object of data for the row\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Individual cell data\n\t\t *    $(document).ready(function() {\n\t\t *      oTable = $('#example').dataTable();\n\t\t *\n\t\t *      oTable.$('td').click( function () {\n\t\t *        var sData = oTable.fnGetData( this );\n\t\t *        alert( 'The cell clicked on had the value of '+sData );\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\tthis.fnGetData = function( src, col )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\n\t\t\tif ( src !== undefined ) {\n\t\t\t\tvar type = src.nodeName ? src.nodeName.toLowerCase() : '';\n\t\t\n\t\t\t\treturn col !== undefined || type == 'td' || type == 'th' ?\n\t\t\t\t\tapi.cell( src, col ).data() :\n\t\t\t\t\tapi.row( src ).data() || null;\n\t\t\t}\n\t\t\n\t\t\treturn api.data().toArray();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Get an array of the TR nodes that are used in the table's body. Note that you will\n\t\t * typically want to use the '$' API method in preference to this as it is more\n\t\t * flexible.\n\t\t *  @param {int} [iRow] Optional row index for the TR element you want\n\t\t *  @returns {array|node} If iRow is undefined, returns an array of all TR elements\n\t\t *    in the table's body, or iRow is defined, just the TR element requested.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Get the nodes from the table\n\t\t *      var nNodes = oTable.fnGetNodes( );\n\t\t *    } );\n\t\t */\n\t\tthis.fnGetNodes = function( iRow )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\n\t\t\treturn iRow !== undefined ?\n\t\t\t\tapi.row( iRow ).node() :\n\t\t\t\tapi.rows().nodes().flatten().toArray();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Get the array indexes of a particular cell from it's DOM element\n\t\t * and column index including hidden columns\n\t\t *  @param {node} node this can either be a TR, TD or TH in the table's body\n\t\t *  @returns {int} If nNode is given as a TR, then a single index is returned, or\n\t\t *    if given as a cell, an array of [row index, column index (visible),\n\t\t *    column index (all)] is given.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      $('#example tbody td').click( function () {\n\t\t *        // Get the position of the current data from the node\n\t\t *        var aPos = oTable.fnGetPosition( this );\n\t\t *\n\t\t *        // Get the data array for this row\n\t\t *        var aData = oTable.fnGetData( aPos[0] );\n\t\t *\n\t\t *        // Update the data array and return the value\n\t\t *        aData[ aPos[1] ] = 'clicked';\n\t\t *        this.innerHTML = 'clicked';\n\t\t *      } );\n\t\t *\n\t\t *      // Init DataTables\n\t\t *      oTable = $('#example').dataTable();\n\t\t *    } );\n\t\t */\n\t\tthis.fnGetPosition = function( node )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\tvar nodeName = node.nodeName.toUpperCase();\n\t\t\n\t\t\tif ( nodeName == 'TR' ) {\n\t\t\t\treturn api.row( node ).index();\n\t\t\t}\n\t\t\telse if ( nodeName == 'TD' || nodeName == 'TH' ) {\n\t\t\t\tvar cell = api.cell( node ).index();\n\t\t\n\t\t\t\treturn [\n\t\t\t\t\tcell.row,\n\t\t\t\t\tcell.columnVisible,\n\t\t\t\t\tcell.column\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Check to see if a row is 'open' or not.\n\t\t *  @param {node} nTr the table row to check\n\t\t *  @returns {boolean} true if the row is currently open, false otherwise\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable;\n\t\t *\n\t\t *      // 'open' an information row when a row is clicked on\n\t\t *      $('#example tbody tr').click( function () {\n\t\t *        if ( oTable.fnIsOpen(this) ) {\n\t\t *          oTable.fnClose( this );\n\t\t *        } else {\n\t\t *          oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t\t *        }\n\t\t *      } );\n\t\t *\n\t\t *      oTable = $('#example').dataTable();\n\t\t *    } );\n\t\t */\n\t\tthis.fnIsOpen = function( nTr )\n\t\t{\n\t\t\treturn this.api( true ).row( nTr ).child.isShown();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * This function will place a new row directly after a row which is currently\n\t\t * on display on the page, with the HTML contents that is passed into the\n\t\t * function. This can be used, for example, to ask for confirmation that a\n\t\t * particular record should be deleted.\n\t\t *  @param {node} nTr The table row to 'open'\n\t\t *  @param {string|node|jQuery} mHtml The HTML to put into the row\n\t\t *  @param {string} sClass Class to give the new TD cell\n\t\t *  @returns {node} The row opened. Note that if the table row passed in as the\n\t\t *    first parameter, is not found in the table, this method will silently\n\t\t *    return.\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable;\n\t\t *\n\t\t *      // 'open' an information row when a row is clicked on\n\t\t *      $('#example tbody tr').click( function () {\n\t\t *        if ( oTable.fnIsOpen(this) ) {\n\t\t *          oTable.fnClose( this );\n\t\t *        } else {\n\t\t *          oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t\t *        }\n\t\t *      } );\n\t\t *\n\t\t *      oTable = $('#example').dataTable();\n\t\t *    } );\n\t\t */\n\t\tthis.fnOpen = function( nTr, mHtml, sClass )\n\t\t{\n\t\t\treturn this.api( true )\n\t\t\t\t.row( nTr )\n\t\t\t\t.child( mHtml, sClass )\n\t\t\t\t.show()\n\t\t\t\t.child()[0];\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Change the pagination - provides the internal logic for pagination in a simple API\n\t\t * function. With this function you can have a DataTables table go to the next,\n\t\t * previous, first or last pages.\n\t\t *  @param {string|int} mAction Paging action to take: \"first\", \"previous\", \"next\" or \"last\"\n\t\t *    or page number to jump to (integer), note that page 0 is the first page.\n\t\t *  @param {bool} [bRedraw=true] Redraw the table or not\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *      oTable.fnPageChange( 'next' );\n\t\t *    } );\n\t\t */\n\t\tthis.fnPageChange = function ( mAction, bRedraw )\n\t\t{\n\t\t\tvar api = this.api( true ).page( mAction );\n\t\t\n\t\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\t\tapi.draw(false);\n\t\t\t}\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Show a particular column\n\t\t *  @param {int} iCol The column whose display should be changed\n\t\t *  @param {bool} bShow Show (true) or hide (false) the column\n\t\t *  @param {bool} [bRedraw=true] Redraw the table or not\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Hide the second column after initialisation\n\t\t *      oTable.fnSetColumnVis( 1, false );\n\t\t *    } );\n\t\t */\n\t\tthis.fnSetColumnVis = function ( iCol, bShow, bRedraw )\n\t\t{\n\t\t\tvar api = this.api( true ).column( iCol ).visible( bShow );\n\t\t\n\t\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\t\tapi.columns.adjust().draw();\n\t\t\t}\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Get the settings for a particular table for external manipulation\n\t\t *  @returns {object} DataTables settings object. See\n\t\t *    {@link DataTable.models.oSettings}\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *      var oSettings = oTable.fnSettings();\n\t\t *\n\t\t *      // Show an example parameter from the settings\n\t\t *      alert( oSettings._iDisplayStart );\n\t\t *    } );\n\t\t */\n\t\tthis.fnSettings = function()\n\t\t{\n\t\t\treturn _fnSettingsFromNode( this[_ext.iApiIndex] );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Sort the table by a particular column\n\t\t *  @param {int} iCol the data index to sort on. Note that this will not match the\n\t\t *    'display index' if you have hidden data entries\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Sort immediately with columns 0 and 1\n\t\t *      oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );\n\t\t *    } );\n\t\t */\n\t\tthis.fnSort = function( aaSort )\n\t\t{\n\t\t\tthis.api( true ).order( aaSort ).draw();\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Attach a sort listener to an element for a given column\n\t\t *  @param {node} nNode the element to attach the sort listener to\n\t\t *  @param {int} iColumn the column that a click on this node will sort on\n\t\t *  @param {function} [fnCallback] callback function when sort is run\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *\n\t\t *      // Sort on column 1, when 'sorter' is clicked on\n\t\t *      oTable.fnSortListener( document.getElementById('sorter'), 1 );\n\t\t *    } );\n\t\t */\n\t\tthis.fnSortListener = function( nNode, iColumn, fnCallback )\n\t\t{\n\t\t\tthis.api( true ).order.listener( nNode, iColumn, fnCallback );\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Update a table cell or row - this method will accept either a single value to\n\t\t * update the cell with, an array of values with one element for each column or\n\t\t * an object in the same format as the original data source. The function is\n\t\t * self-referencing in order to make the multi column updates easier.\n\t\t *  @param {object|array|string} mData Data to update the cell/row with\n\t\t *  @param {node|int} mRow TR element you want to update or the aoData index\n\t\t *  @param {int} [iColumn] The column to update, give as null or undefined to\n\t\t *    update a whole row.\n\t\t *  @param {bool} [bRedraw=true] Redraw the table or not\n\t\t *  @param {bool} [bAction=true] Perform pre-draw actions or not\n\t\t *  @returns {int} 0 on success, 1 on error\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *      oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell\n\t\t *      oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], $('tbody tr')[0] ); // Row\n\t\t *    } );\n\t\t */\n\t\tthis.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction )\n\t\t{\n\t\t\tvar api = this.api( true );\n\t\t\n\t\t\tif ( iColumn === undefined || iColumn === null ) {\n\t\t\t\tapi.row( mRow ).data( mData );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.cell( mRow, iColumn ).data( mData );\n\t\t\t}\n\t\t\n\t\t\tif ( bAction === undefined || bAction ) {\n\t\t\t\tapi.columns.adjust();\n\t\t\t}\n\t\t\n\t\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\t\tapi.draw();\n\t\t\t}\n\t\t\treturn 0;\n\t\t};\n\t\t\n\t\t\n\t\t/**\n\t\t * Provide a common method for plug-ins to check the version of DataTables being used, in order\n\t\t * to ensure compatibility.\n\t\t *  @param {string} sVersion Version string to check for, in the format \"X.Y.Z\". Note that the\n\t\t *    formats \"X\" and \"X.Y\" are also acceptable.\n\t\t *  @returns {boolean} true if this version of DataTables is greater or equal to the required\n\t\t *    version, or false if this version of DataTales is not suitable\n\t\t *  @method\n\t\t *  @dtopt API\n\t\t *  @deprecated Since v1.10\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready(function() {\n\t\t *      var oTable = $('#example').dataTable();\n\t\t *      alert( oTable.fnVersionCheck( '1.9.0' ) );\n\t\t *    } );\n\t\t */\n\t\tthis.fnVersionCheck = _ext.fnVersionCheck;\n\t\t\n\n\t\tvar _that = this;\n\t\tvar emptyInit = options === undefined;\n\t\tvar len = this.length;\n\n\t\tif ( emptyInit ) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tthis.oApi = this.internal = _ext.internal;\n\n\t\t// Extend with old style plug-in API methods\n\t\tfor ( var fn in DataTable.ext.internal ) {\n\t\t\tif ( fn ) {\n\t\t\t\tthis[fn] = _fnExternApiFunc(fn);\n\t\t\t}\n\t\t}\n\n\t\tthis.each(function() {\n\t\t\t// For each initialisation we want to give it a clean initialisation\n\t\t\t// object that can be bashed around\n\t\t\tvar o = {};\n\t\t\tvar oInit = len > 1 ? // optimisation for single table case\n\t\t\t\t_fnExtend( o, options, true ) :\n\t\t\t\toptions;\n\n\t\t\t/*global oInit,_that,emptyInit*/\n\t\t\tvar i=0, iLen, j, jLen, k, kLen;\n\t\t\tvar sId = this.getAttribute( 'id' );\n\t\t\tvar bInitHandedOff = false;\n\t\t\tvar defaults = DataTable.defaults;\n\t\t\tvar $this = $(this);\n\t\t\t\n\t\t\t\n\t\t\t/* Sanity check */\n\t\t\tif ( this.nodeName.toLowerCase() != 'table' )\n\t\t\t{\n\t\t\t\t_fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t/* Backwards compatibility for the defaults */\n\t\t\t_fnCompatOpts( defaults );\n\t\t\t_fnCompatCols( defaults.column );\n\t\t\t\n\t\t\t/* Convert the camel-case defaults to Hungarian */\n\t\t\t_fnCamelToHungarian( defaults, defaults, true );\n\t\t\t_fnCamelToHungarian( defaults.column, defaults.column, true );\n\t\t\t\n\t\t\t/* Setting up the initialisation object */\n\t\t\t_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true );\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t/* Check to see if we are re-initialising a table */\n\t\t\tvar allSettings = DataTable.settings;\n\t\t\tfor ( i=0, iLen=allSettings.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tvar s = allSettings[i];\n\t\t\t\n\t\t\t\t/* Base check on table node */\n\t\t\t\tif (\n\t\t\t\t\ts.nTable == this ||\n\t\t\t\t\t(s.nTHead && s.nTHead.parentNode == this) ||\n\t\t\t\t\t(s.nTFoot && s.nTFoot.parentNode == this)\n\t\t\t\t) {\n\t\t\t\t\tvar bRetrieve = oInit.bRetrieve !== undefined ? oInit.bRetrieve : defaults.bRetrieve;\n\t\t\t\t\tvar bDestroy = oInit.bDestroy !== undefined ? oInit.bDestroy : defaults.bDestroy;\n\t\t\t\n\t\t\t\t\tif ( emptyInit || bRetrieve )\n\t\t\t\t\t{\n\t\t\t\t\t\treturn s.oInstance;\n\t\t\t\t\t}\n\t\t\t\t\telse if ( bDestroy )\n\t\t\t\t\t{\n\t\t\t\t\t\ts.oInstance.fnDestroy();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\t_fnLog( s, 0, 'Cannot reinitialise DataTable', 3 );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\t/* If the element we are initialising has the same ID as a table which was previously\n\t\t\t\t * initialised, but the table nodes don't match (from before) then we destroy the old\n\t\t\t\t * instance by simply deleting it. This is under the assumption that the table has been\n\t\t\t\t * destroyed by other methods. Anyone using non-id selectors will need to do this manually\n\t\t\t\t */\n\t\t\t\tif ( s.sTableId == this.id )\n\t\t\t\t{\n\t\t\t\t\tallSettings.splice( i, 1 );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t/* Ensure the table has an ID - required for accessibility */\n\t\t\tif ( sId === null || sId === \"\" )\n\t\t\t{\n\t\t\t\tsId = \"DataTables_Table_\"+(DataTable.ext._unique++);\n\t\t\t\tthis.id = sId;\n\t\t\t}\n\t\t\t\n\t\t\t/* Create the settings object for this table and set some of the default parameters */\n\t\t\tvar oSettings = $.extend( true, {}, DataTable.models.oSettings, {\n\t\t\t\t\"sDestroyWidth\": $this[0].style.width,\n\t\t\t\t\"sInstance\":     sId,\n\t\t\t\t\"sTableId\":      sId\n\t\t\t} );\n\t\t\toSettings.nTable = this;\n\t\t\toSettings.oApi   = _that.internal;\n\t\t\toSettings.oInit  = oInit;\n\t\t\t\n\t\t\tallSettings.push( oSettings );\n\t\t\t\n\t\t\t// Need to add the instance after the instance after the settings object has been added\n\t\t\t// to the settings array, so we can self reference the table instance if more than one\n\t\t\toSettings.oInstance = (_that.length===1) ? _that : $this.dataTable();\n\t\t\t\n\t\t\t// Backwards compatibility, before we apply all the defaults\n\t\t\t_fnCompatOpts( oInit );\n\t\t\t_fnLanguageCompat( oInit.oLanguage );\n\t\t\t\n\t\t\t// If the length menu is given, but the init display length is not, use the length menu\n\t\t\tif ( oInit.aLengthMenu && ! oInit.iDisplayLength )\n\t\t\t{\n\t\t\t\toInit.iDisplayLength = Array.isArray( oInit.aLengthMenu[0] ) ?\n\t\t\t\t\toInit.aLengthMenu[0][0] : oInit.aLengthMenu[0];\n\t\t\t}\n\t\t\t\n\t\t\t// Apply the defaults and init options to make a single init object will all\n\t\t\t// options defined from defaults and instance options.\n\t\t\toInit = _fnExtend( $.extend( true, {}, defaults ), oInit );\n\t\t\t\n\t\t\t\n\t\t\t// Map the initialisation options onto the settings object\n\t\t\t_fnMap( oSettings.oFeatures, oInit, [\n\t\t\t\t\"bPaginate\",\n\t\t\t\t\"bLengthChange\",\n\t\t\t\t\"bFilter\",\n\t\t\t\t\"bSort\",\n\t\t\t\t\"bSortMulti\",\n\t\t\t\t\"bInfo\",\n\t\t\t\t\"bProcessing\",\n\t\t\t\t\"bAutoWidth\",\n\t\t\t\t\"bSortClasses\",\n\t\t\t\t\"bServerSide\",\n\t\t\t\t\"bDeferRender\"\n\t\t\t] );\n\t\t\t_fnMap( oSettings, oInit, [\n\t\t\t\t\"asStripeClasses\",\n\t\t\t\t\"ajax\",\n\t\t\t\t\"fnServerData\",\n\t\t\t\t\"fnFormatNumber\",\n\t\t\t\t\"sServerMethod\",\n\t\t\t\t\"aaSorting\",\n\t\t\t\t\"aaSortingFixed\",\n\t\t\t\t\"aLengthMenu\",\n\t\t\t\t\"sPaginationType\",\n\t\t\t\t\"sAjaxSource\",\n\t\t\t\t\"sAjaxDataProp\",\n\t\t\t\t\"iStateDuration\",\n\t\t\t\t\"sDom\",\n\t\t\t\t\"bSortCellsTop\",\n\t\t\t\t\"iTabIndex\",\n\t\t\t\t\"fnStateLoadCallback\",\n\t\t\t\t\"fnStateSaveCallback\",\n\t\t\t\t\"renderer\",\n\t\t\t\t\"searchDelay\",\n\t\t\t\t\"rowId\",\n\t\t\t\t[ \"iCookieDuration\", \"iStateDuration\" ], // backwards compat\n\t\t\t\t[ \"oSearch\", \"oPreviousSearch\" ],\n\t\t\t\t[ \"aoSearchCols\", \"aoPreSearchCols\" ],\n\t\t\t\t[ \"iDisplayLength\", \"_iDisplayLength\" ]\n\t\t\t] );\n\t\t\t_fnMap( oSettings.oScroll, oInit, [\n\t\t\t\t[ \"sScrollX\", \"sX\" ],\n\t\t\t\t[ \"sScrollXInner\", \"sXInner\" ],\n\t\t\t\t[ \"sScrollY\", \"sY\" ],\n\t\t\t\t[ \"bScrollCollapse\", \"bCollapse\" ]\n\t\t\t] );\n\t\t\t_fnMap( oSettings.oLanguage, oInit, \"fnInfoCallback\" );\n\t\t\t\n\t\t\t/* Callback functions which are array driven */\n\t\t\t_fnCallbackReg( oSettings, 'aoDrawCallback',       oInit.fnDrawCallback,      'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoServerParams',       oInit.fnServerParams,      'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoStateSaveParams',    oInit.fnStateSaveParams,   'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoStateLoadParams',    oInit.fnStateLoadParams,   'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoStateLoaded',        oInit.fnStateLoaded,       'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoRowCallback',        oInit.fnRowCallback,       'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoRowCreatedCallback', oInit.fnCreatedRow,        'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoHeaderCallback',     oInit.fnHeaderCallback,    'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoFooterCallback',     oInit.fnFooterCallback,    'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoInitComplete',       oInit.fnInitComplete,      'user' );\n\t\t\t_fnCallbackReg( oSettings, 'aoPreDrawCallback',    oInit.fnPreDrawCallback,   'user' );\n\t\t\t\n\t\t\toSettings.rowIdFn = _fnGetObjectDataFn( oInit.rowId );\n\t\t\t\n\t\t\t/* Browser support detection */\n\t\t\t_fnBrowserDetect( oSettings );\n\t\t\t\n\t\t\tvar oClasses = oSettings.oClasses;\n\t\t\t\n\t\t\t$.extend( oClasses, DataTable.ext.classes, oInit.oClasses );\n\t\t\t$this.addClass( oClasses.sTable );\n\t\t\t\n\t\t\t\n\t\t\tif ( oSettings.iInitDisplayStart === undefined )\n\t\t\t{\n\t\t\t\t/* Display start point, taking into account the save saving */\n\t\t\t\toSettings.iInitDisplayStart = oInit.iDisplayStart;\n\t\t\t\toSettings._iDisplayStart = oInit.iDisplayStart;\n\t\t\t}\n\t\t\t\n\t\t\tif ( oInit.iDeferLoading !== null )\n\t\t\t{\n\t\t\t\toSettings.bDeferLoading = true;\n\t\t\t\tvar tmp = Array.isArray( oInit.iDeferLoading );\n\t\t\t\toSettings._iRecordsDisplay = tmp ? oInit.iDeferLoading[0] : oInit.iDeferLoading;\n\t\t\t\toSettings._iRecordsTotal = tmp ? oInit.iDeferLoading[1] : oInit.iDeferLoading;\n\t\t\t}\n\t\t\t\n\t\t\t/* Language definitions */\n\t\t\tvar oLanguage = oSettings.oLanguage;\n\t\t\t$.extend( true, oLanguage, oInit.oLanguage );\n\t\t\t\n\t\t\tif ( oLanguage.sUrl )\n\t\t\t{\n\t\t\t\t/* Get the language definitions from a file - because this Ajax call makes the language\n\t\t\t\t * get async to the remainder of this function we use bInitHandedOff to indicate that\n\t\t\t\t * _fnInitialise will be fired by the returned Ajax handler, rather than the constructor\n\t\t\t\t */\n\t\t\t\t$.ajax( {\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\turl: oLanguage.sUrl,\n\t\t\t\t\tsuccess: function ( json ) {\n\t\t\t\t\t\t_fnLanguageCompat( json );\n\t\t\t\t\t\t_fnCamelToHungarian( defaults.oLanguage, json );\n\t\t\t\t\t\t$.extend( true, oLanguage, json );\n\t\t\t\n\t\t\t\t\t\t_fnCallbackFire( oSettings, null, 'i18n', [oSettings]);\n\t\t\t\t\t\t_fnInitialise( oSettings );\n\t\t\t\t\t},\n\t\t\t\t\terror: function () {\n\t\t\t\t\t\t// Error occurred loading language file, continue on as best we can\n\t\t\t\t\t\t_fnInitialise( oSettings );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tbInitHandedOff = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_fnCallbackFire( oSettings, null, 'i18n', [oSettings]);\n\t\t\t}\n\t\t\t\n\t\t\t/*\n\t\t\t * Stripes\n\t\t\t */\n\t\t\tif ( oInit.asStripeClasses === null )\n\t\t\t{\n\t\t\t\toSettings.asStripeClasses =[\n\t\t\t\t\toClasses.sStripeOdd,\n\t\t\t\t\toClasses.sStripeEven\n\t\t\t\t];\n\t\t\t}\n\t\t\t\n\t\t\t/* Remove row stripe classes if they are already on the table row */\n\t\t\tvar stripeClasses = oSettings.asStripeClasses;\n\t\t\tvar rowOne = $this.children('tbody').find('tr').eq(0);\n\t\t\tif ( $.inArray( true, $.map( stripeClasses, function(el, i) {\n\t\t\t\treturn rowOne.hasClass(el);\n\t\t\t} ) ) !== -1 ) {\n\t\t\t\t$('tbody tr', this).removeClass( stripeClasses.join(' ') );\n\t\t\t\toSettings.asDestroyStripes = stripeClasses.slice();\n\t\t\t}\n\t\t\t\n\t\t\t/*\n\t\t\t * Columns\n\t\t\t * See if we should load columns automatically or use defined ones\n\t\t\t */\n\t\t\tvar anThs = [];\n\t\t\tvar aoColumnsInit;\n\t\t\tvar nThead = this.getElementsByTagName('thead');\n\t\t\tif ( nThead.length !== 0 )\n\t\t\t{\n\t\t\t\t_fnDetectHeader( oSettings.aoHeader, nThead[0] );\n\t\t\t\tanThs = _fnGetUniqueThs( oSettings );\n\t\t\t}\n\t\t\t\n\t\t\t/* If not given a column array, generate one with nulls */\n\t\t\tif ( oInit.aoColumns === null )\n\t\t\t{\n\t\t\t\taoColumnsInit = [];\n\t\t\t\tfor ( i=0, iLen=anThs.length ; i<iLen ; i++ )\n\t\t\t\t{\n\t\t\t\t\taoColumnsInit.push( null );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\taoColumnsInit = oInit.aoColumns;\n\t\t\t}\n\t\t\t\n\t\t\t/* Add the columns */\n\t\t\tfor ( i=0, iLen=aoColumnsInit.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\t_fnAddColumn( oSettings, anThs ? anThs[i] : null );\n\t\t\t}\n\t\t\t\n\t\t\t/* Apply the column definitions */\n\t\t\t_fnApplyColumnDefs( oSettings, oInit.aoColumnDefs, aoColumnsInit, function (iCol, oDef) {\n\t\t\t\t_fnColumnOptions( oSettings, iCol, oDef );\n\t\t\t} );\n\t\t\t\n\t\t\t/* HTML5 attribute detection - build an mData object automatically if the\n\t\t\t * attributes are found\n\t\t\t */\n\t\t\tif ( rowOne.length ) {\n\t\t\t\tvar a = function ( cell, name ) {\n\t\t\t\t\treturn cell.getAttribute( 'data-'+name ) !== null ? name : null;\n\t\t\t\t};\n\t\t\t\n\t\t\t\t$( rowOne[0] ).children('th, td').each( function (i, cell) {\n\t\t\t\t\tvar col = oSettings.aoColumns[i];\n\t\t\t\n\t\t\t\t\tif ( col.mData === i ) {\n\t\t\t\t\t\tvar sort = a( cell, 'sort' ) || a( cell, 'order' );\n\t\t\t\t\t\tvar filter = a( cell, 'filter' ) || a( cell, 'search' );\n\t\t\t\n\t\t\t\t\t\tif ( sort !== null || filter !== null ) {\n\t\t\t\t\t\t\tcol.mData = {\n\t\t\t\t\t\t\t\t_:      i+'.display',\n\t\t\t\t\t\t\t\tsort:   sort !== null   ? i+'.@data-'+sort   : undefined,\n\t\t\t\t\t\t\t\ttype:   sort !== null   ? i+'.@data-'+sort   : undefined,\n\t\t\t\t\t\t\t\tfilter: filter !== null ? i+'.@data-'+filter : undefined\n\t\t\t\t\t\t\t};\n\t\t\t\n\t\t\t\t\t\t\t_fnColumnOptions( oSettings, i );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\t\n\t\t\tvar features = oSettings.oFeatures;\n\t\t\tvar loadedInit = function () {\n\t\t\t\t/*\n\t\t\t\t * Sorting\n\t\t\t\t * @todo For modularisation (1.11) this needs to do into a sort start up handler\n\t\t\t\t */\n\t\t\t\n\t\t\t\t// If aaSorting is not defined, then we use the first indicator in asSorting\n\t\t\t\t// in case that has been altered, so the default sort reflects that option\n\t\t\t\tif ( oInit.aaSorting === undefined ) {\n\t\t\t\t\tvar sorting = oSettings.aaSorting;\n\t\t\t\t\tfor ( i=0, iLen=sorting.length ; i<iLen ; i++ ) {\n\t\t\t\t\t\tsorting[i][1] = oSettings.aoColumns[ i ].asSorting[0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\t/* Do a first pass on the sorting classes (allows any size changes to be taken into\n\t\t\t\t * account, and also will apply sorting disabled classes if disabled\n\t\t\t\t */\n\t\t\t\t_fnSortingClasses( oSettings );\n\t\t\t\n\t\t\t\tif ( features.bSort ) {\n\t\t\t\t\t_fnCallbackReg( oSettings, 'aoDrawCallback', function () {\n\t\t\t\t\t\tif ( oSettings.bSorted ) {\n\t\t\t\t\t\t\tvar aSort = _fnSortFlatten( oSettings );\n\t\t\t\t\t\t\tvar sortedColumns = {};\n\t\t\t\n\t\t\t\t\t\t\t$.each( aSort, function (i, val) {\n\t\t\t\t\t\t\t\tsortedColumns[ val.src ] = val.dir;\n\t\t\t\t\t\t\t} );\n\t\t\t\n\t\t\t\t\t\t\t_fnCallbackFire( oSettings, null, 'order', [oSettings, aSort, sortedColumns] );\n\t\t\t\t\t\t\t_fnSortAria( oSettings );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\n\t\t\t\t_fnCallbackReg( oSettings, 'aoDrawCallback', function () {\n\t\t\t\t\tif ( oSettings.bSorted || _fnDataSource( oSettings ) === 'ssp' || features.bDeferRender ) {\n\t\t\t\t\t\t_fnSortingClasses( oSettings );\n\t\t\t\t\t}\n\t\t\t\t}, 'sc' );\n\t\t\t\n\t\t\t\n\t\t\t\t/*\n\t\t\t\t * Final init\n\t\t\t\t * Cache the header, body and footer as required, creating them if needed\n\t\t\t\t */\n\t\t\t\n\t\t\t\t// Work around for Webkit bug 83867 - store the caption-side before removing from doc\n\t\t\t\tvar captions = $this.children('caption').each( function () {\n\t\t\t\t\tthis._captionSide = $(this).css('caption-side');\n\t\t\t\t} );\n\t\t\t\n\t\t\t\tvar thead = $this.children('thead');\n\t\t\t\tif ( thead.length === 0 ) {\n\t\t\t\t\tthead = $('<thead/>').appendTo($this);\n\t\t\t\t}\n\t\t\t\toSettings.nTHead = thead[0];\n\t\t\t\n\t\t\t\tvar tbody = $this.children('tbody');\n\t\t\t\tif ( tbody.length === 0 ) {\n\t\t\t\t\ttbody = $('<tbody/>').appendTo($this);\n\t\t\t\t}\n\t\t\t\toSettings.nTBody = tbody[0];\n\t\t\t\n\t\t\t\tvar tfoot = $this.children('tfoot');\n\t\t\t\tif ( tfoot.length === 0 && captions.length > 0 && (oSettings.oScroll.sX !== \"\" || oSettings.oScroll.sY !== \"\") ) {\n\t\t\t\t\t// If we are a scrolling table, and no footer has been given, then we need to create\n\t\t\t\t\t// a tfoot element for the caption element to be appended to\n\t\t\t\t\ttfoot = $('<tfoot/>').appendTo($this);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif ( tfoot.length === 0 || tfoot.children().length === 0 ) {\n\t\t\t\t\t$this.addClass( oClasses.sNoFooter );\n\t\t\t\t}\n\t\t\t\telse if ( tfoot.length > 0 ) {\n\t\t\t\t\toSettings.nTFoot = tfoot[0];\n\t\t\t\t\t_fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot );\n\t\t\t\t}\n\t\t\t\n\t\t\t\t/* Check if there is data passing into the constructor */\n\t\t\t\tif ( oInit.aaData ) {\n\t\t\t\t\tfor ( i=0 ; i<oInit.aaData.length ; i++ ) {\n\t\t\t\t\t\t_fnAddData( oSettings, oInit.aaData[ i ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( oSettings.bDeferLoading || _fnDataSource( oSettings ) == 'dom' ) {\n\t\t\t\t\t/* Grab the data from the page - only do this when deferred loading or no Ajax\n\t\t\t\t\t * source since there is no point in reading the DOM data if we are then going\n\t\t\t\t\t * to replace it with Ajax data\n\t\t\t\t\t */\n\t\t\t\t\t_fnAddTr( oSettings, $(oSettings.nTBody).children('tr') );\n\t\t\t\t}\n\t\t\t\n\t\t\t\t/* Copy the data index array */\n\t\t\t\toSettings.aiDisplay = oSettings.aiDisplayMaster.slice();\n\t\t\t\n\t\t\t\t/* Initialisation complete - table can be drawn */\n\t\t\t\toSettings.bInitialised = true;\n\t\t\t\n\t\t\t\t/* Check if we need to initialise the table (it might not have been handed off to the\n\t\t\t\t * language processor)\n\t\t\t\t */\n\t\t\t\tif ( bInitHandedOff === false ) {\n\t\t\t\t\t_fnInitialise( oSettings );\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\t/* Must be done after everything which can be overridden by the state saving! */\n\t\t\tif ( oInit.bStateSave )\n\t\t\t{\n\t\t\t\tfeatures.bStateSave = true;\n\t\t\t\t_fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );\n\t\t\t\t_fnLoadState( oSettings, oInit, loadedInit );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tloadedInit();\n\t\t\t}\n\t\t\t\n\t\t} );\n\t\t_that = null;\n\t\treturn this;\n\t};\n\n\t\n\t/*\n\t * It is useful to have variables which are scoped locally so only the\n\t * DataTables functions can access them and they don't leak into global space.\n\t * At the same time these functions are often useful over multiple files in the\n\t * core and API, so we list, or at least document, all variables which are used\n\t * by DataTables as private variables here. This also ensures that there is no\n\t * clashing of variable names and that they can easily referenced for reuse.\n\t */\n\t\n\t\n\t// Defined else where\n\t//  _selector_run\n\t//  _selector_opts\n\t//  _selector_first\n\t//  _selector_row_indexes\n\t\n\tvar _ext; // DataTable.ext\n\tvar _Api; // DataTable.Api\n\tvar _api_register; // DataTable.Api.register\n\tvar _api_registerPlural; // DataTable.Api.registerPlural\n\t\n\tvar _re_dic = {};\n\tvar _re_new_lines = /[\\r\\n\\u2028]/g;\n\tvar _re_html = /<.*?>/g;\n\t\n\t// This is not strict ISO8601 - Date.parse() is quite lax, although\n\t// implementations differ between browsers.\n\tvar _re_date = /^\\d{2,4}[\\.\\/\\-]\\d{1,2}[\\.\\/\\-]\\d{1,2}([T ]{1}\\d{1,2}[:\\.]\\d{2}([\\.:]\\d{2})?)?$/;\n\t\n\t// Escape regular expression special characters\n\tvar _re_escape_regex = new RegExp( '(\\\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\\\', '$', '^', '-' ].join('|\\\\') + ')', 'g' );\n\t\n\t// http://en.wikipedia.org/wiki/Foreign_exchange_market\n\t// - \\u20BD - Russian ruble.\n\t// - \\u20a9 - South Korean Won\n\t// - \\u20BA - Turkish Lira\n\t// - \\u20B9 - Indian Rupee\n\t// - R - Brazil (R$) and South Africa\n\t// - fr - Swiss Franc\n\t// - kr - Swedish krona, Norwegian krone and Danish krone\n\t// - \\u2009 is thin space and \\u202F is narrow no-break space, both used in many\n\t// - Ƀ - Bitcoin\n\t// - Ξ - Ethereum\n\t//   standards as thousands separators.\n\tvar _re_formatted_numeric = /['\\u00A0,$£€¥%\\u2009\\u202F\\u20BD\\u20a9\\u20BArfkɃΞ]/gi;\n\t\n\t\n\tvar _empty = function ( d ) {\n\t\treturn !d || d === true || d === '-' ? true : false;\n\t};\n\t\n\t\n\tvar _intVal = function ( s ) {\n\t\tvar integer = parseInt( s, 10 );\n\t\treturn !isNaN(integer) && isFinite(s) ? integer : null;\n\t};\n\t\n\t// Convert from a formatted number with characters other than `.` as the\n\t// decimal place, to a Javascript number\n\tvar _numToDecimal = function ( num, decimalPoint ) {\n\t\t// Cache created regular expressions for speed as this function is called often\n\t\tif ( ! _re_dic[ decimalPoint ] ) {\n\t\t\t_re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' );\n\t\t}\n\t\treturn typeof num === 'string' && decimalPoint !== '.' ?\n\t\t\tnum.replace( /\\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) :\n\t\t\tnum;\n\t};\n\t\n\t\n\tvar _isNumber = function ( d, decimalPoint, formatted ) {\n\t\tvar strType = typeof d === 'string';\n\t\n\t\t// If empty return immediately so there must be a number if it is a\n\t\t// formatted string (this stops the string \"k\", or \"kr\", etc being detected\n\t\t// as a formatted number for currency\n\t\tif ( _empty( d ) ) {\n\t\t\treturn true;\n\t\t}\n\t\n\t\tif ( decimalPoint && strType ) {\n\t\t\td = _numToDecimal( d, decimalPoint );\n\t\t}\n\t\n\t\tif ( formatted && strType ) {\n\t\t\td = d.replace( _re_formatted_numeric, '' );\n\t\t}\n\t\n\t\treturn !isNaN( parseFloat(d) ) && isFinite( d );\n\t};\n\t\n\t\n\t// A string without HTML in it can be considered to be HTML still\n\tvar _isHtml = function ( d ) {\n\t\treturn _empty( d ) || typeof d === 'string';\n\t};\n\t\n\t\n\tvar _htmlNumeric = function ( d, decimalPoint, formatted ) {\n\t\tif ( _empty( d ) ) {\n\t\t\treturn true;\n\t\t}\n\t\n\t\tvar html = _isHtml( d );\n\t\treturn ! html ?\n\t\t\tnull :\n\t\t\t_isNumber( _stripHtml( d ), decimalPoint, formatted ) ?\n\t\t\t\ttrue :\n\t\t\t\tnull;\n\t};\n\t\n\t\n\tvar _pluck = function ( a, prop, prop2 ) {\n\t\tvar out = [];\n\t\tvar i=0, ien=a.length;\n\t\n\t\t// Could have the test in the loop for slightly smaller code, but speed\n\t\t// is essential here\n\t\tif ( prop2 !== undefined ) {\n\t\t\tfor ( ; i<ien ; i++ ) {\n\t\t\t\tif ( a[i] && a[i][ prop ] ) {\n\t\t\t\t\tout.push( a[i][ prop ][ prop2 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor ( ; i<ien ; i++ ) {\n\t\t\t\tif ( a[i] ) {\n\t\t\t\t\tout.push( a[i][ prop ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn out;\n\t};\n\t\n\t\n\t// Basically the same as _pluck, but rather than looping over `a` we use `order`\n\t// as the indexes to pick from `a`\n\tvar _pluck_order = function ( a, order, prop, prop2 )\n\t{\n\t\tvar out = [];\n\t\tvar i=0, ien=order.length;\n\t\n\t\t// Could have the test in the loop for slightly smaller code, but speed\n\t\t// is essential here\n\t\tif ( prop2 !== undefined ) {\n\t\t\tfor ( ; i<ien ; i++ ) {\n\t\t\t\tif ( a[ order[i] ][ prop ] ) {\n\t\t\t\t\tout.push( a[ order[i] ][ prop ][ prop2 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor ( ; i<ien ; i++ ) {\n\t\t\t\tout.push( a[ order[i] ][ prop ] );\n\t\t\t}\n\t\t}\n\t\n\t\treturn out;\n\t};\n\t\n\t\n\tvar _range = function ( len, start )\n\t{\n\t\tvar out = [];\n\t\tvar end;\n\t\n\t\tif ( start === undefined ) {\n\t\t\tstart = 0;\n\t\t\tend = len;\n\t\t}\n\t\telse {\n\t\t\tend = start;\n\t\t\tstart = len;\n\t\t}\n\t\n\t\tfor ( var i=start ; i<end ; i++ ) {\n\t\t\tout.push( i );\n\t\t}\n\t\n\t\treturn out;\n\t};\n\t\n\t\n\tvar _removeEmpty = function ( a )\n\t{\n\t\tvar out = [];\n\t\n\t\tfor ( var i=0, ien=a.length ; i<ien ; i++ ) {\n\t\t\tif ( a[i] ) { // careful - will remove all falsy values!\n\t\t\t\tout.push( a[i] );\n\t\t\t}\n\t\t}\n\t\n\t\treturn out;\n\t};\n\t\n\t\n\tvar _stripHtml = function ( d ) {\n\t\treturn d.replace( _re_html, '' );\n\t};\n\t\n\t\n\t/**\n\t * Determine if all values in the array are unique. This means we can short\n\t * cut the _unique method at the cost of a single loop. A sorted array is used\n\t * to easily check the values.\n\t *\n\t * @param  {array} src Source array\n\t * @return {boolean} true if all unique, false otherwise\n\t * @ignore\n\t */\n\tvar _areAllUnique = function ( src ) {\n\t\tif ( src.length < 2 ) {\n\t\t\treturn true;\n\t\t}\n\t\n\t\tvar sorted = src.slice().sort();\n\t\tvar last = sorted[0];\n\t\n\t\tfor ( var i=1, ien=sorted.length ; i<ien ; i++ ) {\n\t\t\tif ( sorted[i] === last ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tlast = sorted[i];\n\t\t}\n\t\n\t\treturn true;\n\t};\n\t\n\t\n\t/**\n\t * Find the unique elements in a source array.\n\t *\n\t * @param  {array} src Source array\n\t * @return {array} Array of unique items\n\t * @ignore\n\t */\n\tvar _unique = function ( src )\n\t{\n\t\tif ( _areAllUnique( src ) ) {\n\t\t\treturn src.slice();\n\t\t}\n\t\n\t\t// A faster unique method is to use object keys to identify used values,\n\t\t// but this doesn't work with arrays or objects, which we must also\n\t\t// consider. See jsperf.com/compare-array-unique-versions/4 for more\n\t\t// information.\n\t\tvar\n\t\t\tout = [],\n\t\t\tval,\n\t\t\ti, ien=src.length,\n\t\t\tj, k=0;\n\t\n\t\tagain: for ( i=0 ; i<ien ; i++ ) {\n\t\t\tval = src[i];\n\t\n\t\t\tfor ( j=0 ; j<k ; j++ ) {\n\t\t\t\tif ( out[j] === val ) {\n\t\t\t\t\tcontinue again;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tout.push( val );\n\t\t\tk++;\n\t\t}\n\t\n\t\treturn out;\n\t};\n\t\n\t// Surprisingly this is faster than [].concat.apply\n\t// https://jsperf.com/flatten-an-array-loop-vs-reduce/2\n\tvar _flatten = function (out, val) {\n\t\tif (Array.isArray(val)) {\n\t\t\tfor (var i=0 ; i<val.length ; i++) {\n\t\t\t\t_flatten(out, val[i]);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tout.push(val);\n\t\t}\n\t  \n\t\treturn out;\n\t}\n\t\n\t// Array.isArray polyfill.\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray\n\tif (! Array.isArray) {\n\t    Array.isArray = function(arg) {\n\t        return Object.prototype.toString.call(arg) === '[object Array]';\n\t    };\n\t}\n\t\n\t// .trim() polyfill\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim\n\tif (!String.prototype.trim) {\n\t  String.prototype.trim = function () {\n\t    return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\t  };\n\t}\n\t\n\t/**\n\t * DataTables utility methods\n\t * \n\t * This namespace provides helper methods that DataTables uses internally to\n\t * create a DataTable, but which are not exclusively used only for DataTables.\n\t * These methods can be used by extension authors to save the duplication of\n\t * code.\n\t *\n\t *  @namespace\n\t */\n\tDataTable.util = {\n\t\t/**\n\t\t * Throttle the calls to a function. Arguments and context are maintained\n\t\t * for the throttled function.\n\t\t *\n\t\t * @param {function} fn Function to be called\n\t\t * @param {integer} freq Call frequency in mS\n\t\t * @return {function} Wrapped function\n\t\t */\n\t\tthrottle: function ( fn, freq ) {\n\t\t\tvar\n\t\t\t\tfrequency = freq !== undefined ? freq : 200,\n\t\t\t\tlast,\n\t\t\t\ttimer;\n\t\n\t\t\treturn function () {\n\t\t\t\tvar\n\t\t\t\t\tthat = this,\n\t\t\t\t\tnow  = +new Date(),\n\t\t\t\t\targs = arguments;\n\t\n\t\t\t\tif ( last && now < last + frequency ) {\n\t\t\t\t\tclearTimeout( timer );\n\t\n\t\t\t\t\ttimer = setTimeout( function () {\n\t\t\t\t\t\tlast = undefined;\n\t\t\t\t\t\tfn.apply( that, args );\n\t\t\t\t\t}, frequency );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlast = now;\n\t\t\t\t\tfn.apply( that, args );\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Escape a string such that it can be used in a regular expression\n\t\t *\n\t\t *  @param {string} val string to escape\n\t\t *  @returns {string} escaped string\n\t\t */\n\t\tescapeRegex: function ( val ) {\n\t\t\treturn val.replace( _re_escape_regex, '\\\\$1' );\n\t\t}\n\t};\n\t\n\t\n\t\n\t/**\n\t * Create a mapping object that allows camel case parameters to be looked up\n\t * for their Hungarian counterparts. The mapping is stored in a private\n\t * parameter called `_hungarianMap` which can be accessed on the source object.\n\t *  @param {object} o\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnHungarianMap ( o )\n\t{\n\t\tvar\n\t\t\thungarian = 'a aa ai ao as b fn i m o s ',\n\t\t\tmatch,\n\t\t\tnewKey,\n\t\t\tmap = {};\n\t\n\t\t$.each( o, function (key, val) {\n\t\t\tmatch = key.match(/^([^A-Z]+?)([A-Z])/);\n\t\n\t\t\tif ( match && hungarian.indexOf(match[1]+' ') !== -1 )\n\t\t\t{\n\t\t\t\tnewKey = key.replace( match[0], match[2].toLowerCase() );\n\t\t\t\tmap[ newKey ] = key;\n\t\n\t\t\t\tif ( match[1] === 'o' )\n\t\t\t\t{\n\t\t\t\t\t_fnHungarianMap( o[key] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t\n\t\to._hungarianMap = map;\n\t}\n\t\n\t\n\t/**\n\t * Convert from camel case parameters to Hungarian, based on a Hungarian map\n\t * created by _fnHungarianMap.\n\t *  @param {object} src The model object which holds all parameters that can be\n\t *    mapped.\n\t *  @param {object} user The object to convert from camel case to Hungarian.\n\t *  @param {boolean} force When set to `true`, properties which already have a\n\t *    Hungarian value in the `user` object will be overwritten. Otherwise they\n\t *    won't be.\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnCamelToHungarian ( src, user, force )\n\t{\n\t\tif ( ! src._hungarianMap ) {\n\t\t\t_fnHungarianMap( src );\n\t\t}\n\t\n\t\tvar hungarianKey;\n\t\n\t\t$.each( user, function (key, val) {\n\t\t\thungarianKey = src._hungarianMap[ key ];\n\t\n\t\t\tif ( hungarianKey !== undefined && (force || user[hungarianKey] === undefined) )\n\t\t\t{\n\t\t\t\t// For objects, we need to buzz down into the object to copy parameters\n\t\t\t\tif ( hungarianKey.charAt(0) === 'o' )\n\t\t\t\t{\n\t\t\t\t\t// Copy the camelCase options over to the hungarian\n\t\t\t\t\tif ( ! user[ hungarianKey ] ) {\n\t\t\t\t\t\tuser[ hungarianKey ] = {};\n\t\t\t\t\t}\n\t\t\t\t\t$.extend( true, user[hungarianKey], user[key] );\n\t\n\t\t\t\t\t_fnCamelToHungarian( src[hungarianKey], user[hungarianKey], force );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser[hungarianKey] = user[ key ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\t\n\t\n\t/**\n\t * Language compatibility - when certain options are given, and others aren't, we\n\t * need to duplicate the values over, in order to provide backwards compatibility\n\t * with older language files.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnLanguageCompat( lang )\n\t{\n\t\t// Note the use of the Hungarian notation for the parameters in this method as\n\t\t// this is called after the mapping of camelCase to Hungarian\n\t\tvar defaults = DataTable.defaults.oLanguage;\n\t\n\t\t// Default mapping\n\t\tvar defaultDecimal = defaults.sDecimal;\n\t\tif ( defaultDecimal ) {\n\t\t\t_addNumericSort( defaultDecimal );\n\t\t}\n\t\n\t\tif ( lang ) {\n\t\t\tvar zeroRecords = lang.sZeroRecords;\n\t\n\t\t\t// Backwards compatibility - if there is no sEmptyTable given, then use the same as\n\t\t\t// sZeroRecords - assuming that is given.\n\t\t\tif ( ! lang.sEmptyTable && zeroRecords &&\n\t\t\t\tdefaults.sEmptyTable === \"No data available in table\" )\n\t\t\t{\n\t\t\t\t_fnMap( lang, lang, 'sZeroRecords', 'sEmptyTable' );\n\t\t\t}\n\t\n\t\t\t// Likewise with loading records\n\t\t\tif ( ! lang.sLoadingRecords && zeroRecords &&\n\t\t\t\tdefaults.sLoadingRecords === \"Loading...\" )\n\t\t\t{\n\t\t\t\t_fnMap( lang, lang, 'sZeroRecords', 'sLoadingRecords' );\n\t\t\t}\n\t\n\t\t\t// Old parameter name of the thousands separator mapped onto the new\n\t\t\tif ( lang.sInfoThousands ) {\n\t\t\t\tlang.sThousands = lang.sInfoThousands;\n\t\t\t}\n\t\n\t\t\tvar decimal = lang.sDecimal;\n\t\t\tif ( decimal && defaultDecimal !== decimal ) {\n\t\t\t\t_addNumericSort( decimal );\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Map one parameter onto another\n\t *  @param {object} o Object to map\n\t *  @param {*} knew The new parameter name\n\t *  @param {*} old The old parameter name\n\t */\n\tvar _fnCompatMap = function ( o, knew, old ) {\n\t\tif ( o[ knew ] !== undefined ) {\n\t\t\to[ old ] = o[ knew ];\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * Provide backwards compatibility for the main DT options. Note that the new\n\t * options are mapped onto the old parameters, so this is an external interface\n\t * change only.\n\t *  @param {object} init Object to map\n\t */\n\tfunction _fnCompatOpts ( init )\n\t{\n\t\t_fnCompatMap( init, 'ordering',      'bSort' );\n\t\t_fnCompatMap( init, 'orderMulti',    'bSortMulti' );\n\t\t_fnCompatMap( init, 'orderClasses',  'bSortClasses' );\n\t\t_fnCompatMap( init, 'orderCellsTop', 'bSortCellsTop' );\n\t\t_fnCompatMap( init, 'order',         'aaSorting' );\n\t\t_fnCompatMap( init, 'orderFixed',    'aaSortingFixed' );\n\t\t_fnCompatMap( init, 'paging',        'bPaginate' );\n\t\t_fnCompatMap( init, 'pagingType',    'sPaginationType' );\n\t\t_fnCompatMap( init, 'pageLength',    'iDisplayLength' );\n\t\t_fnCompatMap( init, 'searching',     'bFilter' );\n\t\n\t\t// Boolean initialisation of x-scrolling\n\t\tif ( typeof init.sScrollX === 'boolean' ) {\n\t\t\tinit.sScrollX = init.sScrollX ? '100%' : '';\n\t\t}\n\t\tif ( typeof init.scrollX === 'boolean' ) {\n\t\t\tinit.scrollX = init.scrollX ? '100%' : '';\n\t\t}\n\t\n\t\t// Column search objects are in an array, so it needs to be converted\n\t\t// element by element\n\t\tvar searchCols = init.aoSearchCols;\n\t\n\t\tif ( searchCols ) {\n\t\t\tfor ( var i=0, ien=searchCols.length ; i<ien ; i++ ) {\n\t\t\t\tif ( searchCols[i] ) {\n\t\t\t\t\t_fnCamelToHungarian( DataTable.models.oSearch, searchCols[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Provide backwards compatibility for column options. Note that the new options\n\t * are mapped onto the old parameters, so this is an external interface change\n\t * only.\n\t *  @param {object} init Object to map\n\t */\n\tfunction _fnCompatCols ( init )\n\t{\n\t\t_fnCompatMap( init, 'orderable',     'bSortable' );\n\t\t_fnCompatMap( init, 'orderData',     'aDataSort' );\n\t\t_fnCompatMap( init, 'orderSequence', 'asSorting' );\n\t\t_fnCompatMap( init, 'orderDataType', 'sortDataType' );\n\t\n\t\t// orderData can be given as an integer\n\t\tvar dataSort = init.aDataSort;\n\t\tif ( typeof dataSort === 'number' && ! Array.isArray( dataSort ) ) {\n\t\t\tinit.aDataSort = [ dataSort ];\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Browser feature detection for capabilities, quirks\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnBrowserDetect( settings )\n\t{\n\t\t// We don't need to do this every time DataTables is constructed, the values\n\t\t// calculated are specific to the browser and OS configuration which we\n\t\t// don't expect to change between initialisations\n\t\tif ( ! DataTable.__browser ) {\n\t\t\tvar browser = {};\n\t\t\tDataTable.__browser = browser;\n\t\n\t\t\t// Scrolling feature / quirks detection\n\t\t\tvar n = $('<div/>')\n\t\t\t\t.css( {\n\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: $(window).scrollLeft()*-1, // allow for scrolling\n\t\t\t\t\theight: 1,\n\t\t\t\t\twidth: 1,\n\t\t\t\t\toverflow: 'hidden'\n\t\t\t\t} )\n\t\t\t\t.append(\n\t\t\t\t\t$('<div/>')\n\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\ttop: 1,\n\t\t\t\t\t\t\tleft: 1,\n\t\t\t\t\t\t\twidth: 100,\n\t\t\t\t\t\t\toverflow: 'scroll'\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t$('<div/>')\n\t\t\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\theight: 10\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.appendTo( 'body' );\n\t\n\t\t\tvar outer = n.children();\n\t\t\tvar inner = outer.children();\n\t\n\t\t\t// Numbers below, in order, are:\n\t\t\t// inner.offsetWidth, inner.clientWidth, outer.offsetWidth, outer.clientWidth\n\t\t\t//\n\t\t\t// IE6 XP:                           100 100 100  83\n\t\t\t// IE7 Vista:                        100 100 100  83\n\t\t\t// IE 8+ Windows:                     83  83 100  83\n\t\t\t// Evergreen Windows:                 83  83 100  83\n\t\t\t// Evergreen Mac with scrollbars:     85  85 100  85\n\t\t\t// Evergreen Mac without scrollbars: 100 100 100 100\n\t\n\t\t\t// Get scrollbar width\n\t\t\tbrowser.barWidth = outer[0].offsetWidth - outer[0].clientWidth;\n\t\n\t\t\t// IE6/7 will oversize a width 100% element inside a scrolling element, to\n\t\t\t// include the width of the scrollbar, while other browsers ensure the inner\n\t\t\t// element is contained without forcing scrolling\n\t\t\tbrowser.bScrollOversize = inner[0].offsetWidth === 100 && outer[0].clientWidth !== 100;\n\t\n\t\t\t// In rtl text layout, some browsers (most, but not all) will place the\n\t\t\t// scrollbar on the left, rather than the right.\n\t\t\tbrowser.bScrollbarLeft = Math.round( inner.offset().left ) !== 1;\n\t\n\t\t\t// IE8- don't provide height and width for getBoundingClientRect\n\t\t\tbrowser.bBounding = n[0].getBoundingClientRect().width ? true : false;\n\t\n\t\t\tn.remove();\n\t\t}\n\t\n\t\t$.extend( settings.oBrowser, DataTable.__browser );\n\t\tsettings.oScroll.iBarWidth = DataTable.__browser.barWidth;\n\t}\n\t\n\t\n\t/**\n\t * Array.prototype reduce[Right] method, used for browsers which don't support\n\t * JS 1.6. Done this way to reduce code size, since we iterate either way\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnReduce ( that, fn, init, start, end, inc )\n\t{\n\t\tvar\n\t\t\ti = start,\n\t\t\tvalue,\n\t\t\tisSet = false;\n\t\n\t\tif ( init !== undefined ) {\n\t\t\tvalue = init;\n\t\t\tisSet = true;\n\t\t}\n\t\n\t\twhile ( i !== end ) {\n\t\t\tif ( ! that.hasOwnProperty(i) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\tvalue = isSet ?\n\t\t\t\tfn( value, that[i], i, that ) :\n\t\t\t\tthat[i];\n\t\n\t\t\tisSet = true;\n\t\t\ti += inc;\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\t/**\n\t * Add a column to the list used for the table with default values\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {node} nTh The th element for this column\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAddColumn( oSettings, nTh )\n\t{\n\t\t// Add column to aoColumns array\n\t\tvar oDefaults = DataTable.defaults.column;\n\t\tvar iCol = oSettings.aoColumns.length;\n\t\tvar oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, {\n\t\t\t\"nTh\": nTh ? nTh : document.createElement('th'),\n\t\t\t\"sTitle\":    oDefaults.sTitle    ? oDefaults.sTitle    : nTh ? nTh.innerHTML : '',\n\t\t\t\"aDataSort\": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol],\n\t\t\t\"mData\": oDefaults.mData ? oDefaults.mData : iCol,\n\t\t\tidx: iCol\n\t\t} );\n\t\toSettings.aoColumns.push( oCol );\n\t\n\t\t// Add search object for column specific search. Note that the `searchCols[ iCol ]`\n\t\t// passed into extend can be undefined. This allows the user to give a default\n\t\t// with only some of the parameters defined, and also not give a default\n\t\tvar searchCols = oSettings.aoPreSearchCols;\n\t\tsearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] );\n\t\n\t\t// Use the default column options function to initialise classes etc\n\t\t_fnColumnOptions( oSettings, iCol, $(nTh).data() );\n\t}\n\t\n\t\n\t/**\n\t * Apply options for a column\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {int} iCol column index to consider\n\t *  @param {object} oOptions object with sType, bVisible and bSearchable etc\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnColumnOptions( oSettings, iCol, oOptions )\n\t{\n\t\tvar oCol = oSettings.aoColumns[ iCol ];\n\t\tvar oClasses = oSettings.oClasses;\n\t\tvar th = $(oCol.nTh);\n\t\n\t\t// Try to get width information from the DOM. We can't get it from CSS\n\t\t// as we'd need to parse the CSS stylesheet. `width` option can override\n\t\tif ( ! oCol.sWidthOrig ) {\n\t\t\t// Width attribute\n\t\t\toCol.sWidthOrig = th.attr('width') || null;\n\t\n\t\t\t// Style attribute\n\t\t\tvar t = (th.attr('style') || '').match(/width:\\s*(\\d+[pxem%]+)/);\n\t\t\tif ( t ) {\n\t\t\t\toCol.sWidthOrig = t[1];\n\t\t\t}\n\t\t}\n\t\n\t\t/* User specified column options */\n\t\tif ( oOptions !== undefined && oOptions !== null )\n\t\t{\n\t\t\t// Backwards compatibility\n\t\t\t_fnCompatCols( oOptions );\n\t\n\t\t\t// Map camel case parameters to their Hungarian counterparts\n\t\t\t_fnCamelToHungarian( DataTable.defaults.column, oOptions, true );\n\t\n\t\t\t/* Backwards compatibility for mDataProp */\n\t\t\tif ( oOptions.mDataProp !== undefined && !oOptions.mData )\n\t\t\t{\n\t\t\t\toOptions.mData = oOptions.mDataProp;\n\t\t\t}\n\t\n\t\t\tif ( oOptions.sType )\n\t\t\t{\n\t\t\t\toCol._sManualType = oOptions.sType;\n\t\t\t}\n\t\n\t\t\t// `class` is a reserved word in Javascript, so we need to provide\n\t\t\t// the ability to use a valid name for the camel case input\n\t\t\tif ( oOptions.className && ! oOptions.sClass )\n\t\t\t{\n\t\t\t\toOptions.sClass = oOptions.className;\n\t\t\t}\n\t\t\tif ( oOptions.sClass ) {\n\t\t\t\tth.addClass( oOptions.sClass );\n\t\t\t}\n\t\n\t\t\t$.extend( oCol, oOptions );\n\t\t\t_fnMap( oCol, oOptions, \"sWidth\", \"sWidthOrig\" );\n\t\n\t\t\t/* iDataSort to be applied (backwards compatibility), but aDataSort will take\n\t\t\t * priority if defined\n\t\t\t */\n\t\t\tif ( oOptions.iDataSort !== undefined )\n\t\t\t{\n\t\t\t\toCol.aDataSort = [ oOptions.iDataSort ];\n\t\t\t}\n\t\t\t_fnMap( oCol, oOptions, \"aDataSort\" );\n\t\t}\n\t\n\t\t/* Cache the data get and set functions for speed */\n\t\tvar mDataSrc = oCol.mData;\n\t\tvar mData = _fnGetObjectDataFn( mDataSrc );\n\t\tvar mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;\n\t\n\t\tvar attrTest = function( src ) {\n\t\t\treturn typeof src === 'string' && src.indexOf('@') !== -1;\n\t\t};\n\t\toCol._bAttrSrc = $.isPlainObject( mDataSrc ) && (\n\t\t\tattrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter)\n\t\t);\n\t\toCol._setter = null;\n\t\n\t\toCol.fnGetData = function (rowData, type, meta) {\n\t\t\tvar innerData = mData( rowData, type, undefined, meta );\n\t\n\t\t\treturn mRender && type ?\n\t\t\t\tmRender( innerData, type, rowData, meta ) :\n\t\t\t\tinnerData;\n\t\t};\n\t\toCol.fnSetData = function ( rowData, val, meta ) {\n\t\t\treturn _fnSetObjectDataFn( mDataSrc )( rowData, val, meta );\n\t\t};\n\t\n\t\t// Indicate if DataTables should read DOM data as an object or array\n\t\t// Used in _fnGetRowElements\n\t\tif ( typeof mDataSrc !== 'number' ) {\n\t\t\toSettings._rowReadObject = true;\n\t\t}\n\t\n\t\t/* Feature sorting overrides column specific when off */\n\t\tif ( !oSettings.oFeatures.bSort )\n\t\t{\n\t\t\toCol.bSortable = false;\n\t\t\tth.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called\n\t\t}\n\t\n\t\t/* Check that the class assignment is correct for sorting */\n\t\tvar bAsc = $.inArray('asc', oCol.asSorting) !== -1;\n\t\tvar bDesc = $.inArray('desc', oCol.asSorting) !== -1;\n\t\tif ( !oCol.bSortable || (!bAsc && !bDesc) )\n\t\t{\n\t\t\toCol.sSortingClass = oClasses.sSortableNone;\n\t\t\toCol.sSortingClassJUI = \"\";\n\t\t}\n\t\telse if ( bAsc && !bDesc )\n\t\t{\n\t\t\toCol.sSortingClass = oClasses.sSortableAsc;\n\t\t\toCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed;\n\t\t}\n\t\telse if ( !bAsc && bDesc )\n\t\t{\n\t\t\toCol.sSortingClass = oClasses.sSortableDesc;\n\t\t\toCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed;\n\t\t}\n\t\telse\n\t\t{\n\t\t\toCol.sSortingClass = oClasses.sSortable;\n\t\t\toCol.sSortingClassJUI = oClasses.sSortJUI;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Adjust the table column widths for new data. Note: you would probably want to\n\t * do a redraw after calling this function!\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAdjustColumnSizing ( settings )\n\t{\n\t\t/* Not interested in doing column width calculation if auto-width is disabled */\n\t\tif ( settings.oFeatures.bAutoWidth !== false )\n\t\t{\n\t\t\tvar columns = settings.aoColumns;\n\t\n\t\t\t_fnCalculateColumnWidths( settings );\n\t\t\tfor ( var i=0 , iLen=columns.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tcolumns[i].nTh.style.width = columns[i].sWidth;\n\t\t\t}\n\t\t}\n\t\n\t\tvar scroll = settings.oScroll;\n\t\tif ( scroll.sY !== '' || scroll.sX !== '')\n\t\t{\n\t\t\t_fnScrollDraw( settings );\n\t\t}\n\t\n\t\t_fnCallbackFire( settings, null, 'column-sizing', [settings] );\n\t}\n\t\n\t\n\t/**\n\t * Covert the index of a visible column to the index in the data array (take account\n\t * of hidden columns)\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {int} iMatch Visible column index to lookup\n\t *  @returns {int} i the data index\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnVisibleToColumnIndex( oSettings, iMatch )\n\t{\n\t\tvar aiVis = _fnGetColumns( oSettings, 'bVisible' );\n\t\n\t\treturn typeof aiVis[iMatch] === 'number' ?\n\t\t\taiVis[iMatch] :\n\t\t\tnull;\n\t}\n\t\n\t\n\t/**\n\t * Covert the index of an index in the data array and convert it to the visible\n\t *   column index (take account of hidden columns)\n\t *  @param {int} iMatch Column index to lookup\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns {int} i the data index\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnColumnIndexToVisible( oSettings, iMatch )\n\t{\n\t\tvar aiVis = _fnGetColumns( oSettings, 'bVisible' );\n\t\tvar iPos = $.inArray( iMatch, aiVis );\n\t\n\t\treturn iPos !== -1 ? iPos : null;\n\t}\n\t\n\t\n\t/**\n\t * Get the number of visible columns\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns {int} i the number of visible columns\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnVisbleColumns( oSettings )\n\t{\n\t\tvar vis = 0;\n\t\n\t\t// No reduce in IE8, use a loop for now\n\t\t$.each( oSettings.aoColumns, function ( i, col ) {\n\t\t\tif ( col.bVisible && $(col.nTh).css('display') !== 'none' ) {\n\t\t\t\tvis++;\n\t\t\t}\n\t\t} );\n\t\n\t\treturn vis;\n\t}\n\t\n\t\n\t/**\n\t * Get an array of column indexes that match a given property\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {string} sParam Parameter in aoColumns to look for - typically\n\t *    bVisible or bSearchable\n\t *  @returns {array} Array of indexes with matched properties\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetColumns( oSettings, sParam )\n\t{\n\t\tvar a = [];\n\t\n\t\t$.map( oSettings.aoColumns, function(val, i) {\n\t\t\tif ( val[sParam] ) {\n\t\t\t\ta.push( i );\n\t\t\t}\n\t\t} );\n\t\n\t\treturn a;\n\t}\n\t\n\t\n\t/**\n\t * Calculate the 'type' of a column\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnColumnTypes ( settings )\n\t{\n\t\tvar columns = settings.aoColumns;\n\t\tvar data = settings.aoData;\n\t\tvar types = DataTable.ext.type.detect;\n\t\tvar i, ien, j, jen, k, ken;\n\t\tvar col, cell, detectedType, cache;\n\t\n\t\t// For each column, spin over the \n\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\tcol = columns[i];\n\t\t\tcache = [];\n\t\n\t\t\tif ( ! col.sType && col._sManualType ) {\n\t\t\t\tcol.sType = col._sManualType;\n\t\t\t}\n\t\t\telse if ( ! col.sType ) {\n\t\t\t\tfor ( j=0, jen=types.length ; j<jen ; j++ ) {\n\t\t\t\t\tfor ( k=0, ken=data.length ; k<ken ; k++ ) {\n\t\t\t\t\t\t// Use a cache array so we only need to get the type data\n\t\t\t\t\t\t// from the formatter once (when using multiple detectors)\n\t\t\t\t\t\tif ( cache[k] === undefined ) {\n\t\t\t\t\t\t\tcache[k] = _fnGetCellData( settings, k, i, 'type' );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tdetectedType = types[j]( cache[k], settings );\n\t\n\t\t\t\t\t\t// If null, then this type can't apply to this column, so\n\t\t\t\t\t\t// rather than testing all cells, break out. There is an\n\t\t\t\t\t\t// exception for the last type which is `html`. We need to\n\t\t\t\t\t\t// scan all rows since it is possible to mix string and HTML\n\t\t\t\t\t\t// types\n\t\t\t\t\t\tif ( ! detectedType && j !== types.length-1 ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// Only a single match is needed for html type since it is\n\t\t\t\t\t\t// bottom of the pile and very similar to string\n\t\t\t\t\t\tif ( detectedType === 'html' ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Type is valid for all data points in the column - use this\n\t\t\t\t\t// type\n\t\t\t\t\tif ( detectedType ) {\n\t\t\t\t\t\tcol.sType = detectedType;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t// Fall back - if no type was detected, always use string\n\t\t\t\tif ( ! col.sType ) {\n\t\t\t\t\tcol.sType = 'string';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Take the column definitions and static columns arrays and calculate how\n\t * they relate to column indexes. The callback function will then apply the\n\t * definition found for a column to a suitable configuration object.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {array} aoColDefs The aoColumnDefs array that is to be applied\n\t *  @param {array} aoCols The aoColumns array that defines columns individually\n\t *  @param {function} fn Callback function - takes two parameters, the calculated\n\t *    column index and the definition for that column.\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnApplyColumnDefs( oSettings, aoColDefs, aoCols, fn )\n\t{\n\t\tvar i, iLen, j, jLen, k, kLen, def;\n\t\tvar columns = oSettings.aoColumns;\n\t\n\t\t// Column definitions with aTargets\n\t\tif ( aoColDefs )\n\t\t{\n\t\t\t/* Loop over the definitions array - loop in reverse so first instance has priority */\n\t\t\tfor ( i=aoColDefs.length-1 ; i>=0 ; i-- )\n\t\t\t{\n\t\t\t\tdef = aoColDefs[i];\n\t\n\t\t\t\t/* Each definition can target multiple columns, as it is an array */\n\t\t\t\tvar aTargets = def.targets !== undefined ?\n\t\t\t\t\tdef.targets :\n\t\t\t\t\tdef.aTargets;\n\t\n\t\t\t\tif ( ! Array.isArray( aTargets ) )\n\t\t\t\t{\n\t\t\t\t\taTargets = [ aTargets ];\n\t\t\t\t}\n\t\n\t\t\t\tfor ( j=0, jLen=aTargets.length ; j<jLen ; j++ )\n\t\t\t\t{\n\t\t\t\t\tif ( typeof aTargets[j] === 'number' && aTargets[j] >= 0 )\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Add columns that we don't yet know about */\n\t\t\t\t\t\twhile( columns.length <= aTargets[j] )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fnAddColumn( oSettings );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t/* Integer, basic index */\n\t\t\t\t\t\tfn( aTargets[j], def );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( typeof aTargets[j] === 'number' && aTargets[j] < 0 )\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Negative integer, right to left column counting */\n\t\t\t\t\t\tfn( columns.length+aTargets[j], def );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( typeof aTargets[j] === 'string' )\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Class name matching on TH element */\n\t\t\t\t\t\tfor ( k=0, kLen=columns.length ; k<kLen ; k++ )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif ( aTargets[j] == \"_all\" ||\n\t\t\t\t\t\t\t     $(columns[k].nTh).hasClass( aTargets[j] ) )\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfn( k, def );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\t// Statically defined columns array\n\t\tif ( aoCols )\n\t\t{\n\t\t\tfor ( i=0, iLen=aoCols.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tfn( i, aoCols[i] );\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * Add a data array to the table, creating DOM node etc. This is the parallel to\n\t * _fnGatherData, but for adding rows from a Javascript source, rather than a\n\t * DOM source.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {array} aData data array to be added\n\t *  @param {node} [nTr] TR element to add to the table - optional. If not given,\n\t *    DataTables will create a row automatically\n\t *  @param {array} [anTds] Array of TD|TH elements for the row - must be given\n\t *    if nTr is.\n\t *  @returns {int} >=0 if successful (index of new aoData entry), -1 if failed\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAddData ( oSettings, aDataIn, nTr, anTds )\n\t{\n\t\t/* Create the object for storing information about this new row */\n\t\tvar iRow = oSettings.aoData.length;\n\t\tvar oData = $.extend( true, {}, DataTable.models.oRow, {\n\t\t\tsrc: nTr ? 'dom' : 'data',\n\t\t\tidx: iRow\n\t\t} );\n\t\n\t\toData._aData = aDataIn;\n\t\toSettings.aoData.push( oData );\n\t\n\t\t/* Create the cells */\n\t\tvar nTd, sThisType;\n\t\tvar columns = oSettings.aoColumns;\n\t\n\t\t// Invalidate the column types as the new data needs to be revalidated\n\t\tfor ( var i=0, iLen=columns.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tcolumns[i].sType = null;\n\t\t}\n\t\n\t\t/* Add to the display array */\n\t\toSettings.aiDisplayMaster.push( iRow );\n\t\n\t\tvar id = oSettings.rowIdFn( aDataIn );\n\t\tif ( id !== undefined ) {\n\t\t\toSettings.aIds[ id ] = oData;\n\t\t}\n\t\n\t\t/* Create the DOM information, or register it if already present */\n\t\tif ( nTr || ! oSettings.oFeatures.bDeferRender )\n\t\t{\n\t\t\t_fnCreateTr( oSettings, iRow, nTr, anTds );\n\t\t}\n\t\n\t\treturn iRow;\n\t}\n\t\n\t\n\t/**\n\t * Add one or more TR elements to the table. Generally we'd expect to\n\t * use this for reading data from a DOM sourced table, but it could be\n\t * used for an TR element. Note that if a TR is given, it is used (i.e.\n\t * it is not cloned).\n\t *  @param {object} settings dataTables settings object\n\t *  @param {array|node|jQuery} trs The TR element(s) to add to the table\n\t *  @returns {array} Array of indexes for the added rows\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAddTr( settings, trs )\n\t{\n\t\tvar row;\n\t\n\t\t// Allow an individual node to be passed in\n\t\tif ( ! (trs instanceof $) ) {\n\t\t\ttrs = $(trs);\n\t\t}\n\t\n\t\treturn trs.map( function (i, el) {\n\t\t\trow = _fnGetRowElements( settings, el );\n\t\t\treturn _fnAddData( settings, row.data, el, row.cells );\n\t\t} );\n\t}\n\t\n\t\n\t/**\n\t * Take a TR element and convert it to an index in aoData\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {node} n the TR element to find\n\t *  @returns {int} index if the node is found, null if not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnNodeToDataIndex( oSettings, n )\n\t{\n\t\treturn (n._DT_RowIndex!==undefined) ? n._DT_RowIndex : null;\n\t}\n\t\n\t\n\t/**\n\t * Take a TD element and convert it into a column data index (not the visible index)\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {int} iRow The row number the TD/TH can be found in\n\t *  @param {node} n The TD/TH element to find\n\t *  @returns {int} index if the node is found, -1 if not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnNodeToColumnIndex( oSettings, iRow, n )\n\t{\n\t\treturn $.inArray( n, oSettings.aoData[ iRow ].anCells );\n\t}\n\t\n\t\n\t/**\n\t * Get the data for a given cell from the internal cache, taking into account data mapping\n\t *  @param {object} settings dataTables settings object\n\t *  @param {int} rowIdx aoData row id\n\t *  @param {int} colIdx Column index\n\t *  @param {string} type data get type ('display', 'type' 'filter' 'sort')\n\t *  @returns {*} Cell data\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetCellData( settings, rowIdx, colIdx, type )\n\t{\n\t\tvar draw           = settings.iDraw;\n\t\tvar col            = settings.aoColumns[colIdx];\n\t\tvar rowData        = settings.aoData[rowIdx]._aData;\n\t\tvar defaultContent = col.sDefaultContent;\n\t\tvar cellData       = col.fnGetData( rowData, type, {\n\t\t\tsettings: settings,\n\t\t\trow:      rowIdx,\n\t\t\tcol:      colIdx\n\t\t} );\n\t\n\t\tif ( cellData === undefined ) {\n\t\t\tif ( settings.iDrawError != draw && defaultContent === null ) {\n\t\t\t\t_fnLog( settings, 0, \"Requested unknown parameter \"+\n\t\t\t\t\t(typeof col.mData=='function' ? '{function}' : \"'\"+col.mData+\"'\")+\n\t\t\t\t\t\" for row \"+rowIdx+\", column \"+colIdx, 4 );\n\t\t\t\tsettings.iDrawError = draw;\n\t\t\t}\n\t\t\treturn defaultContent;\n\t\t}\n\t\n\t\t// When the data source is null and a specific data type is requested (i.e.\n\t\t// not the original data), we can use default column data\n\t\tif ( (cellData === rowData || cellData === null) && defaultContent !== null && type !== undefined ) {\n\t\t\tcellData = defaultContent;\n\t\t}\n\t\telse if ( typeof cellData === 'function' ) {\n\t\t\t// If the data source is a function, then we run it and use the return,\n\t\t\t// executing in the scope of the data object (for instances)\n\t\t\treturn cellData.call( rowData );\n\t\t}\n\t\n\t\tif ( cellData === null && type == 'display' ) {\n\t\t\treturn '';\n\t\t}\n\t\treturn cellData;\n\t}\n\t\n\t\n\t/**\n\t * Set the value for a specific cell, into the internal data cache\n\t *  @param {object} settings dataTables settings object\n\t *  @param {int} rowIdx aoData row id\n\t *  @param {int} colIdx Column index\n\t *  @param {*} val Value to set\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSetCellData( settings, rowIdx, colIdx, val )\n\t{\n\t\tvar col     = settings.aoColumns[colIdx];\n\t\tvar rowData = settings.aoData[rowIdx]._aData;\n\t\n\t\tcol.fnSetData( rowData, val, {\n\t\t\tsettings: settings,\n\t\t\trow:      rowIdx,\n\t\t\tcol:      colIdx\n\t\t}  );\n\t}\n\t\n\t\n\t// Private variable that is used to match action syntax in the data property object\n\tvar __reArray = /\\[.*?\\]$/;\n\tvar __reFn = /\\(\\)$/;\n\t\n\t/**\n\t * Split string on periods, taking into account escaped periods\n\t * @param  {string} str String to split\n\t * @return {array} Split string\n\t */\n\tfunction _fnSplitObjNotation( str )\n\t{\n\t\treturn $.map( str.match(/(\\\\.|[^\\.])+/g) || [''], function ( s ) {\n\t\t\treturn s.replace(/\\\\\\./g, '.');\n\t\t} );\n\t}\n\t\n\t\n\t/**\n\t * Return a function that can be used to get data from a source object, taking\n\t * into account the ability to use nested objects as a source\n\t *  @param {string|int|function} mSource The data source for the object\n\t *  @returns {function} Data get function\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetObjectDataFn( mSource )\n\t{\n\t\tif ( $.isPlainObject( mSource ) )\n\t\t{\n\t\t\t/* Build an object of get functions, and wrap them in a single call */\n\t\t\tvar o = {};\n\t\t\t$.each( mSource, function (key, val) {\n\t\t\t\tif ( val ) {\n\t\t\t\t\to[key] = _fnGetObjectDataFn( val );\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\treturn function (data, type, row, meta) {\n\t\t\t\tvar t = o[type] || o._;\n\t\t\t\treturn t !== undefined ?\n\t\t\t\t\tt(data, type, row, meta) :\n\t\t\t\t\tdata;\n\t\t\t};\n\t\t}\n\t\telse if ( mSource === null )\n\t\t{\n\t\t\t/* Give an empty string for rendering / sorting etc */\n\t\t\treturn function (data) { // type, row and meta also passed, but not used\n\t\t\t\treturn data;\n\t\t\t};\n\t\t}\n\t\telse if ( typeof mSource === 'function' )\n\t\t{\n\t\t\treturn function (data, type, row, meta) {\n\t\t\t\treturn mSource( data, type, row, meta );\n\t\t\t};\n\t\t}\n\t\telse if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 ||\n\t\t\t      mSource.indexOf('[') !== -1 || mSource.indexOf('(') !== -1) )\n\t\t{\n\t\t\t/* If there is a . in the source string then the data source is in a\n\t\t\t * nested object so we loop over the data for each level to get the next\n\t\t\t * level down. On each loop we test for undefined, and if found immediately\n\t\t\t * return. This allows entire objects to be missing and sDefaultContent to\n\t\t\t * be used if defined, rather than throwing an error\n\t\t\t */\n\t\t\tvar fetchData = function (data, type, src) {\n\t\t\t\tvar arrayNotation, funcNotation, out, innerSrc;\n\t\n\t\t\t\tif ( src !== \"\" )\n\t\t\t\t{\n\t\t\t\t\tvar a = _fnSplitObjNotation( src );\n\t\n\t\t\t\t\tfor ( var i=0, iLen=a.length ; i<iLen ; i++ )\n\t\t\t\t\t{\n\t\t\t\t\t\t// Check if we are dealing with special notation\n\t\t\t\t\t\tarrayNotation = a[i].match(__reArray);\n\t\t\t\t\t\tfuncNotation = a[i].match(__reFn);\n\t\n\t\t\t\t\t\tif ( arrayNotation )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// Array notation\n\t\t\t\t\t\t\ta[i] = a[i].replace(__reArray, '');\n\t\n\t\t\t\t\t\t\t// Condition allows simply [] to be passed in\n\t\t\t\t\t\t\tif ( a[i] !== \"\" ) {\n\t\t\t\t\t\t\t\tdata = data[ a[i] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tout = [];\n\t\n\t\t\t\t\t\t\t// Get the remainder of the nested object to get\n\t\t\t\t\t\t\ta.splice( 0, i+1 );\n\t\t\t\t\t\t\tinnerSrc = a.join('.');\n\t\n\t\t\t\t\t\t\t// Traverse each entry in the array getting the properties requested\n\t\t\t\t\t\t\tif ( Array.isArray( data ) ) {\n\t\t\t\t\t\t\t\tfor ( var j=0, jLen=data.length ; j<jLen ; j++ ) {\n\t\t\t\t\t\t\t\t\tout.push( fetchData( data[j], type, innerSrc ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t// If a string is given in between the array notation indicators, that\n\t\t\t\t\t\t\t// is used to join the strings together, otherwise an array is returned\n\t\t\t\t\t\t\tvar join = arrayNotation[0].substring(1, arrayNotation[0].length-1);\n\t\t\t\t\t\t\tdata = (join===\"\") ? out : out.join(join);\n\t\n\t\t\t\t\t\t\t// The inner call to fetchData has already traversed through the remainder\n\t\t\t\t\t\t\t// of the source requested, so we exit from the loop\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ( funcNotation )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// Function call\n\t\t\t\t\t\t\ta[i] = a[i].replace(__reFn, '');\n\t\t\t\t\t\t\tdata = data[ a[i] ]();\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif ( data === null || data[ a[i] ] === undefined )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdata = data[ a[i] ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn data;\n\t\t\t};\n\t\n\t\t\treturn function (data, type) { // row and meta also passed, but not used\n\t\t\t\treturn fetchData( data, type, mSource );\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\t/* Array or flat object mapping */\n\t\t\treturn function (data, type) { // row and meta also passed, but not used\n\t\t\t\treturn data[mSource];\n\t\t\t};\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Return a function that can be used to set data from a source object, taking\n\t * into account the ability to use nested objects as a source\n\t *  @param {string|int|function} mSource The data source for the object\n\t *  @returns {function} Data set function\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSetObjectDataFn( mSource )\n\t{\n\t\tif ( $.isPlainObject( mSource ) )\n\t\t{\n\t\t\t/* Unlike get, only the underscore (global) option is used for for\n\t\t\t * setting data since we don't know the type here. This is why an object\n\t\t\t * option is not documented for `mData` (which is read/write), but it is\n\t\t\t * for `mRender` which is read only.\n\t\t\t */\n\t\t\treturn _fnSetObjectDataFn( mSource._ );\n\t\t}\n\t\telse if ( mSource === null )\n\t\t{\n\t\t\t/* Nothing to do when the data source is null */\n\t\t\treturn function () {};\n\t\t}\n\t\telse if ( typeof mSource === 'function' )\n\t\t{\n\t\t\treturn function (data, val, meta) {\n\t\t\t\tmSource( data, 'set', val, meta );\n\t\t\t};\n\t\t}\n\t\telse if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 ||\n\t\t\t      mSource.indexOf('[') !== -1 || mSource.indexOf('(') !== -1) )\n\t\t{\n\t\t\t/* Like the get, we need to get data from a nested object */\n\t\t\tvar setData = function (data, val, src) {\n\t\t\t\tvar a = _fnSplitObjNotation( src ), b;\n\t\t\t\tvar aLast = a[a.length-1];\n\t\t\t\tvar arrayNotation, funcNotation, o, innerSrc;\n\t\n\t\t\t\tfor ( var i=0, iLen=a.length-1 ; i<iLen ; i++ )\n\t\t\t\t{\n\t\t\t\t\t// Protect against prototype pollution\n\t\t\t\t\tif (a[i] === '__proto__' || a[i] === 'constructor') {\n\t\t\t\t\t\tthrow new Error('Cannot set prototype values');\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Check if we are dealing with an array notation request\n\t\t\t\t\tarrayNotation = a[i].match(__reArray);\n\t\t\t\t\tfuncNotation = a[i].match(__reFn);\n\t\n\t\t\t\t\tif ( arrayNotation )\n\t\t\t\t\t{\n\t\t\t\t\t\ta[i] = a[i].replace(__reArray, '');\n\t\t\t\t\t\tdata[ a[i] ] = [];\n\t\n\t\t\t\t\t\t// Get the remainder of the nested object to set so we can recurse\n\t\t\t\t\t\tb = a.slice();\n\t\t\t\t\t\tb.splice( 0, i+1 );\n\t\t\t\t\t\tinnerSrc = b.join('.');\n\t\n\t\t\t\t\t\t// Traverse each entry in the array setting the properties requested\n\t\t\t\t\t\tif ( Array.isArray( val ) )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfor ( var j=0, jLen=val.length ; j<jLen ; j++ )\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\to = {};\n\t\t\t\t\t\t\t\tsetData( o, val[j], innerSrc );\n\t\t\t\t\t\t\t\tdata[ a[i] ].push( o );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// We've been asked to save data to an array, but it\n\t\t\t\t\t\t\t// isn't array data to be saved. Best that can be done\n\t\t\t\t\t\t\t// is to just save the value.\n\t\t\t\t\t\t\tdata[ a[i] ] = val;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// The inner call to setData has already traversed through the remainder\n\t\t\t\t\t\t// of the source and has set the data, thus we can exit here\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\telse if ( funcNotation )\n\t\t\t\t\t{\n\t\t\t\t\t\t// Function call\n\t\t\t\t\t\ta[i] = a[i].replace(__reFn, '');\n\t\t\t\t\t\tdata = data[ a[i] ]( val );\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// If the nested object doesn't currently exist - since we are\n\t\t\t\t\t// trying to set the value - create it\n\t\t\t\t\tif ( data[ a[i] ] === null || data[ a[i] ] === undefined )\n\t\t\t\t\t{\n\t\t\t\t\t\tdata[ a[i] ] = {};\n\t\t\t\t\t}\n\t\t\t\t\tdata = data[ a[i] ];\n\t\t\t\t}\n\t\n\t\t\t\t// Last item in the input - i.e, the actual set\n\t\t\t\tif ( aLast.match(__reFn ) )\n\t\t\t\t{\n\t\t\t\t\t// Function call\n\t\t\t\t\tdata = data[ aLast.replace(__reFn, '') ]( val );\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t// If array notation is used, we just want to strip it and use the property name\n\t\t\t\t\t// and assign the value. If it isn't used, then we get the result we want anyway\n\t\t\t\t\tdata[ aLast.replace(__reArray, '') ] = val;\n\t\t\t\t}\n\t\t\t};\n\t\n\t\t\treturn function (data, val) { // meta is also passed in, but not used\n\t\t\t\treturn setData( data, val, mSource );\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\t/* Array or flat object mapping */\n\t\t\treturn function (data, val) { // meta is also passed in, but not used\n\t\t\t\tdata[mSource] = val;\n\t\t\t};\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Return an array with the full table data\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns array {array} aData Master data array\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetDataMaster ( settings )\n\t{\n\t\treturn _pluck( settings.aoData, '_aData' );\n\t}\n\t\n\t\n\t/**\n\t * Nuke the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnClearTable( settings )\n\t{\n\t\tsettings.aoData.length = 0;\n\t\tsettings.aiDisplayMaster.length = 0;\n\t\tsettings.aiDisplay.length = 0;\n\t\tsettings.aIds = {};\n\t}\n\t\n\t\n\t /**\n\t * Take an array of integers (index array) and remove a target integer (value - not\n\t * the key!)\n\t *  @param {array} a Index array to target\n\t *  @param {int} iTarget value to find\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnDeleteIndex( a, iTarget, splice )\n\t{\n\t\tvar iTargetIndex = -1;\n\t\n\t\tfor ( var i=0, iLen=a.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tif ( a[i] == iTarget )\n\t\t\t{\n\t\t\t\tiTargetIndex = i;\n\t\t\t}\n\t\t\telse if ( a[i] > iTarget )\n\t\t\t{\n\t\t\t\ta[i]--;\n\t\t\t}\n\t\t}\n\t\n\t\tif ( iTargetIndex != -1 && splice === undefined )\n\t\t{\n\t\t\ta.splice( iTargetIndex, 1 );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Mark cached data as invalid such that a re-read of the data will occur when\n\t * the cached data is next requested. Also update from the data source object.\n\t *\n\t * @param {object} settings DataTables settings object\n\t * @param {int}    rowIdx   Row index to invalidate\n\t * @param {string} [src]    Source to invalidate from: undefined, 'auto', 'dom'\n\t *     or 'data'\n\t * @param {int}    [colIdx] Column index to invalidate. If undefined the whole\n\t *     row will be invalidated\n\t * @memberof DataTable#oApi\n\t *\n\t * @todo For the modularisation of v1.11 this will need to become a callback, so\n\t *   the sort and filter methods can subscribe to it. That will required\n\t *   initialisation options for sorting, which is why it is not already baked in\n\t */\n\tfunction _fnInvalidate( settings, rowIdx, src, colIdx )\n\t{\n\t\tvar row = settings.aoData[ rowIdx ];\n\t\tvar i, ien;\n\t\tvar cellWrite = function ( cell, col ) {\n\t\t\t// This is very frustrating, but in IE if you just write directly\n\t\t\t// to innerHTML, and elements that are overwritten are GC'ed,\n\t\t\t// even if there is a reference to them elsewhere\n\t\t\twhile ( cell.childNodes.length ) {\n\t\t\t\tcell.removeChild( cell.firstChild );\n\t\t\t}\n\t\n\t\t\tcell.innerHTML = _fnGetCellData( settings, rowIdx, col, 'display' );\n\t\t};\n\t\n\t\t// Are we reading last data from DOM or the data object?\n\t\tif ( src === 'dom' || ((! src || src === 'auto') && row.src === 'dom') ) {\n\t\t\t// Read the data from the DOM\n\t\t\trow._aData = _fnGetRowElements(\n\t\t\t\t\tsettings, row, colIdx, colIdx === undefined ? undefined : row._aData\n\t\t\t\t)\n\t\t\t\t.data;\n\t\t}\n\t\telse {\n\t\t\t// Reading from data object, update the DOM\n\t\t\tvar cells = row.anCells;\n\t\n\t\t\tif ( cells ) {\n\t\t\t\tif ( colIdx !== undefined ) {\n\t\t\t\t\tcellWrite( cells[colIdx], colIdx );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfor ( i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tcellWrite( cells[i], i );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\t// For both row and cell invalidation, the cached data for sorting and\n\t\t// filtering is nulled out\n\t\trow._aSortData = null;\n\t\trow._aFilterData = null;\n\t\n\t\t// Invalidate the type for a specific column (if given) or all columns since\n\t\t// the data might have changed\n\t\tvar cols = settings.aoColumns;\n\t\tif ( colIdx !== undefined ) {\n\t\t\tcols[ colIdx ].sType = null;\n\t\t}\n\t\telse {\n\t\t\tfor ( i=0, ien=cols.length ; i<ien ; i++ ) {\n\t\t\t\tcols[i].sType = null;\n\t\t\t}\n\t\n\t\t\t// Update DataTables special `DT_*` attributes for the row\n\t\t\t_fnRowAttributes( settings, row );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Build a data source object from an HTML row, reading the contents of the\n\t * cells that are in the row.\n\t *\n\t * @param {object} settings DataTables settings object\n\t * @param {node|object} TR element from which to read data or existing row\n\t *   object from which to re-read the data from the cells\n\t * @param {int} [colIdx] Optional column index\n\t * @param {array|object} [d] Data source object. If `colIdx` is given then this\n\t *   parameter should also be given and will be used to write the data into.\n\t *   Only the column in question will be written\n\t * @returns {object} Object with two parameters: `data` the data read, in\n\t *   document order, and `cells` and array of nodes (they can be useful to the\n\t *   caller, so rather than needing a second traversal to get them, just return\n\t *   them from here).\n\t * @memberof DataTable#oApi\n\t */\n\tfunction _fnGetRowElements( settings, row, colIdx, d )\n\t{\n\t\tvar\n\t\t\ttds = [],\n\t\t\ttd = row.firstChild,\n\t\t\tname, col, o, i=0, contents,\n\t\t\tcolumns = settings.aoColumns,\n\t\t\tobjectRead = settings._rowReadObject;\n\t\n\t\t// Allow the data object to be passed in, or construct\n\t\td = d !== undefined ?\n\t\t\td :\n\t\t\tobjectRead ?\n\t\t\t\t{} :\n\t\t\t\t[];\n\t\n\t\tvar attr = function ( str, td  ) {\n\t\t\tif ( typeof str === 'string' ) {\n\t\t\t\tvar idx = str.indexOf('@');\n\t\n\t\t\t\tif ( idx !== -1 ) {\n\t\t\t\t\tvar attr = str.substring( idx+1 );\n\t\t\t\t\tvar setter = _fnSetObjectDataFn( str );\n\t\t\t\t\tsetter( d, td.getAttribute( attr ) );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\n\t\t// Read data from a cell and store into the data object\n\t\tvar cellProcess = function ( cell ) {\n\t\t\tif ( colIdx === undefined || colIdx === i ) {\n\t\t\t\tcol = columns[i];\n\t\t\t\tcontents = (cell.innerHTML).trim();\n\t\n\t\t\t\tif ( col && col._bAttrSrc ) {\n\t\t\t\t\tvar setter = _fnSetObjectDataFn( col.mData._ );\n\t\t\t\t\tsetter( d, contents );\n\t\n\t\t\t\t\tattr( col.mData.sort, cell );\n\t\t\t\t\tattr( col.mData.type, cell );\n\t\t\t\t\tattr( col.mData.filter, cell );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Depending on the `data` option for the columns the data can\n\t\t\t\t\t// be read to either an object or an array.\n\t\t\t\t\tif ( objectRead ) {\n\t\t\t\t\t\tif ( ! col._setter ) {\n\t\t\t\t\t\t\t// Cache the setter function\n\t\t\t\t\t\t\tcol._setter = _fnSetObjectDataFn( col.mData );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcol._setter( d, contents );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\td[i] = contents;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\ti++;\n\t\t};\n\t\n\t\tif ( td ) {\n\t\t\t// `tr` element was passed in\n\t\t\twhile ( td ) {\n\t\t\t\tname = td.nodeName.toUpperCase();\n\t\n\t\t\t\tif ( name == \"TD\" || name == \"TH\" ) {\n\t\t\t\t\tcellProcess( td );\n\t\t\t\t\ttds.push( td );\n\t\t\t\t}\n\t\n\t\t\t\ttd = td.nextSibling;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Existing row object passed in\n\t\t\ttds = row.anCells;\n\t\n\t\t\tfor ( var j=0, jen=tds.length ; j<jen ; j++ ) {\n\t\t\t\tcellProcess( tds[j] );\n\t\t\t}\n\t\t}\n\t\n\t\t// Read the ID from the DOM if present\n\t\tvar rowNode = row.firstChild ? row : row.nTr;\n\t\n\t\tif ( rowNode ) {\n\t\t\tvar id = rowNode.getAttribute( 'id' );\n\t\n\t\t\tif ( id ) {\n\t\t\t\t_fnSetObjectDataFn( settings.rowId )( d, id );\n\t\t\t}\n\t\t}\n\t\n\t\treturn {\n\t\t\tdata: d,\n\t\t\tcells: tds\n\t\t};\n\t}\n\t/**\n\t * Create a new TR element (and it's TD children) for a row\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {int} iRow Row to consider\n\t *  @param {node} [nTrIn] TR element to add to the table - optional. If not given,\n\t *    DataTables will create a row automatically\n\t *  @param {array} [anTds] Array of TD|TH elements for the row - must be given\n\t *    if nTr is.\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnCreateTr ( oSettings, iRow, nTrIn, anTds )\n\t{\n\t\tvar\n\t\t\trow = oSettings.aoData[iRow],\n\t\t\trowData = row._aData,\n\t\t\tcells = [],\n\t\t\tnTr, nTd, oCol,\n\t\t\ti, iLen, create;\n\t\n\t\tif ( row.nTr === null )\n\t\t{\n\t\t\tnTr = nTrIn || document.createElement('tr');\n\t\n\t\t\trow.nTr = nTr;\n\t\t\trow.anCells = cells;\n\t\n\t\t\t/* Use a private property on the node to allow reserve mapping from the node\n\t\t\t * to the aoData array for fast look up\n\t\t\t */\n\t\t\tnTr._DT_RowIndex = iRow;\n\t\n\t\t\t/* Special parameters can be given by the data source to be used on the row */\n\t\t\t_fnRowAttributes( oSettings, row );\n\t\n\t\t\t/* Process each column */\n\t\t\tfor ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\toCol = oSettings.aoColumns[i];\n\t\t\t\tcreate = nTrIn ? false : true;\n\t\n\t\t\t\tnTd = create ? document.createElement( oCol.sCellType ) : anTds[i];\n\t\t\t\tnTd._DT_CellIndex = {\n\t\t\t\t\trow: iRow,\n\t\t\t\t\tcolumn: i\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tcells.push( nTd );\n\t\n\t\t\t\t// Need to create the HTML if new, or if a rendering function is defined\n\t\t\t\tif ( create || ((oCol.mRender || oCol.mData !== i) &&\n\t\t\t\t\t (!$.isPlainObject(oCol.mData) || oCol.mData._ !== i+'.display')\n\t\t\t\t)) {\n\t\t\t\t\tnTd.innerHTML = _fnGetCellData( oSettings, iRow, i, 'display' );\n\t\t\t\t}\n\t\n\t\t\t\t/* Add user defined class */\n\t\t\t\tif ( oCol.sClass )\n\t\t\t\t{\n\t\t\t\t\tnTd.className += ' '+oCol.sClass;\n\t\t\t\t}\n\t\n\t\t\t\t// Visibility - add or remove as required\n\t\t\t\tif ( oCol.bVisible && ! nTrIn )\n\t\t\t\t{\n\t\t\t\t\tnTr.appendChild( nTd );\n\t\t\t\t}\n\t\t\t\telse if ( ! oCol.bVisible && nTrIn )\n\t\t\t\t{\n\t\t\t\t\tnTd.parentNode.removeChild( nTd );\n\t\t\t\t}\n\t\n\t\t\t\tif ( oCol.fnCreatedCell )\n\t\t\t\t{\n\t\t\t\t\toCol.fnCreatedCell.call( oSettings.oInstance,\n\t\t\t\t\t\tnTd, _fnGetCellData( oSettings, iRow, i ), rowData, iRow, i\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t_fnCallbackFire( oSettings, 'aoRowCreatedCallback', null, [nTr, rowData, iRow, cells] );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Add attributes to a row based on the special `DT_*` parameters in a data\n\t * source object.\n\t *  @param {object} settings DataTables settings object\n\t *  @param {object} DataTables row object for the row to be modified\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnRowAttributes( settings, row )\n\t{\n\t\tvar tr = row.nTr;\n\t\tvar data = row._aData;\n\t\n\t\tif ( tr ) {\n\t\t\tvar id = settings.rowIdFn( data );\n\t\n\t\t\tif ( id ) {\n\t\t\t\ttr.id = id;\n\t\t\t}\n\t\n\t\t\tif ( data.DT_RowClass ) {\n\t\t\t\t// Remove any classes added by DT_RowClass before\n\t\t\t\tvar a = data.DT_RowClass.split(' ');\n\t\t\t\trow.__rowc = row.__rowc ?\n\t\t\t\t\t_unique( row.__rowc.concat( a ) ) :\n\t\t\t\t\ta;\n\t\n\t\t\t\t$(tr)\n\t\t\t\t\t.removeClass( row.__rowc.join(' ') )\n\t\t\t\t\t.addClass( data.DT_RowClass );\n\t\t\t}\n\t\n\t\t\tif ( data.DT_RowAttr ) {\n\t\t\t\t$(tr).attr( data.DT_RowAttr );\n\t\t\t}\n\t\n\t\t\tif ( data.DT_RowData ) {\n\t\t\t\t$(tr).data( data.DT_RowData );\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Create the HTML header for the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnBuildHead( oSettings )\n\t{\n\t\tvar i, ien, cell, row, column;\n\t\tvar thead = oSettings.nTHead;\n\t\tvar tfoot = oSettings.nTFoot;\n\t\tvar createHeader = $('th, td', thead).length === 0;\n\t\tvar classes = oSettings.oClasses;\n\t\tvar columns = oSettings.aoColumns;\n\t\n\t\tif ( createHeader ) {\n\t\t\trow = $('<tr/>').appendTo( thead );\n\t\t}\n\t\n\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\tcolumn = columns[i];\n\t\t\tcell = $( column.nTh ).addClass( column.sClass );\n\t\n\t\t\tif ( createHeader ) {\n\t\t\t\tcell.appendTo( row );\n\t\t\t}\n\t\n\t\t\t// 1.11 move into sorting\n\t\t\tif ( oSettings.oFeatures.bSort ) {\n\t\t\t\tcell.addClass( column.sSortingClass );\n\t\n\t\t\t\tif ( column.bSortable !== false ) {\n\t\t\t\t\tcell\n\t\t\t\t\t\t.attr( 'tabindex', oSettings.iTabIndex )\n\t\t\t\t\t\t.attr( 'aria-controls', oSettings.sTableId );\n\t\n\t\t\t\t\t_fnSortAttachListener( oSettings, column.nTh, i );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif ( column.sTitle != cell[0].innerHTML ) {\n\t\t\t\tcell.html( column.sTitle );\n\t\t\t}\n\t\n\t\t\t_fnRenderer( oSettings, 'header' )(\n\t\t\t\toSettings, cell, column, classes\n\t\t\t);\n\t\t}\n\t\n\t\tif ( createHeader ) {\n\t\t\t_fnDetectHeader( oSettings.aoHeader, thead );\n\t\t}\n\t\t\n\t\t/* ARIA role for the rows */\n\t\t$(thead).children('tr').attr('role', 'row');\n\t\n\t\t/* Deal with the footer - add classes if required */\n\t\t$(thead).children('tr').children('th, td').addClass( classes.sHeaderTH );\n\t\t$(tfoot).children('tr').children('th, td').addClass( classes.sFooterTH );\n\t\n\t\t// Cache the footer cells. Note that we only take the cells from the first\n\t\t// row in the footer. If there is more than one row the user wants to\n\t\t// interact with, they need to use the table().foot() method. Note also this\n\t\t// allows cells to be used for multiple columns using colspan\n\t\tif ( tfoot !== null ) {\n\t\t\tvar cells = oSettings.aoFooter[0];\n\t\n\t\t\tfor ( i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tcolumn = columns[i];\n\t\t\t\tcolumn.nTf = cells[i].cell;\n\t\n\t\t\t\tif ( column.sClass ) {\n\t\t\t\t\t$(column.nTf).addClass( column.sClass );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Draw the header (or footer) element based on the column visibility states. The\n\t * methodology here is to use the layout array from _fnDetectHeader, modified for\n\t * the instantaneous column visibility, to construct the new layout. The grid is\n\t * traversed over cell at a time in a rows x columns grid fashion, although each\n\t * cell insert can cover multiple elements in the grid - which is tracks using the\n\t * aApplied array. Cell inserts in the grid will only occur where there isn't\n\t * already a cell in that position.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param array {objects} aoSource Layout array from _fnDetectHeader\n\t *  @param {boolean} [bIncludeHidden=false] If true then include the hidden columns in the calc,\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnDrawHead( oSettings, aoSource, bIncludeHidden )\n\t{\n\t\tvar i, iLen, j, jLen, k, kLen, n, nLocalTr;\n\t\tvar aoLocal = [];\n\t\tvar aApplied = [];\n\t\tvar iColumns = oSettings.aoColumns.length;\n\t\tvar iRowspan, iColspan;\n\t\n\t\tif ( ! aoSource )\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\n\t\tif (  bIncludeHidden === undefined )\n\t\t{\n\t\t\tbIncludeHidden = false;\n\t\t}\n\t\n\t\t/* Make a copy of the master layout array, but without the visible columns in it */\n\t\tfor ( i=0, iLen=aoSource.length ; i<iLen ; i++ )\n\t\t{\n\t\t\taoLocal[i] = aoSource[i].slice();\n\t\t\taoLocal[i].nTr = aoSource[i].nTr;\n\t\n\t\t\t/* Remove any columns which are currently hidden */\n\t\t\tfor ( j=iColumns-1 ; j>=0 ; j-- )\n\t\t\t{\n\t\t\t\tif ( !oSettings.aoColumns[j].bVisible && !bIncludeHidden )\n\t\t\t\t{\n\t\t\t\t\taoLocal[i].splice( j, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t/* Prep the applied array - it needs an element for each row */\n\t\t\taApplied.push( [] );\n\t\t}\n\t\n\t\tfor ( i=0, iLen=aoLocal.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tnLocalTr = aoLocal[i].nTr;\n\t\n\t\t\t/* All cells are going to be replaced, so empty out the row */\n\t\t\tif ( nLocalTr )\n\t\t\t{\n\t\t\t\twhile( (n = nLocalTr.firstChild) )\n\t\t\t\t{\n\t\t\t\t\tnLocalTr.removeChild( n );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfor ( j=0, jLen=aoLocal[i].length ; j<jLen ; j++ )\n\t\t\t{\n\t\t\t\tiRowspan = 1;\n\t\t\t\tiColspan = 1;\n\t\n\t\t\t\t/* Check to see if there is already a cell (row/colspan) covering our target\n\t\t\t\t * insert point. If there is, then there is nothing to do.\n\t\t\t\t */\n\t\t\t\tif ( aApplied[i][j] === undefined )\n\t\t\t\t{\n\t\t\t\t\tnLocalTr.appendChild( aoLocal[i][j].cell );\n\t\t\t\t\taApplied[i][j] = 1;\n\t\n\t\t\t\t\t/* Expand the cell to cover as many rows as needed */\n\t\t\t\t\twhile ( aoLocal[i+iRowspan] !== undefined &&\n\t\t\t\t\t        aoLocal[i][j].cell == aoLocal[i+iRowspan][j].cell )\n\t\t\t\t\t{\n\t\t\t\t\t\taApplied[i+iRowspan][j] = 1;\n\t\t\t\t\t\tiRowspan++;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t/* Expand the cell to cover as many columns as needed */\n\t\t\t\t\twhile ( aoLocal[i][j+iColspan] !== undefined &&\n\t\t\t\t\t        aoLocal[i][j].cell == aoLocal[i][j+iColspan].cell )\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Must update the applied array over the rows for the columns */\n\t\t\t\t\t\tfor ( k=0 ; k<iRowspan ; k++ )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taApplied[i+k][j+iColspan] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiColspan++;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t/* Do the actual expansion in the DOM */\n\t\t\t\t\t$(aoLocal[i][j].cell)\n\t\t\t\t\t\t.attr('rowspan', iRowspan)\n\t\t\t\t\t\t.attr('colspan', iColspan);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Insert the required TR nodes into the table for display\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnDraw( oSettings )\n\t{\n\t\t/* Provide a pre-callback function which can be used to cancel the draw is false is returned */\n\t\tvar aPreDraw = _fnCallbackFire( oSettings, 'aoPreDrawCallback', 'preDraw', [oSettings] );\n\t\tif ( $.inArray( false, aPreDraw ) !== -1 )\n\t\t{\n\t\t\t_fnProcessingDisplay( oSettings, false );\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar i, iLen, n;\n\t\tvar anRows = [];\n\t\tvar iRowCount = 0;\n\t\tvar asStripeClasses = oSettings.asStripeClasses;\n\t\tvar iStripes = asStripeClasses.length;\n\t\tvar iOpenRows = oSettings.aoOpenRows.length;\n\t\tvar oLang = oSettings.oLanguage;\n\t\tvar iInitDisplayStart = oSettings.iInitDisplayStart;\n\t\tvar bServerSide = _fnDataSource( oSettings ) == 'ssp';\n\t\tvar aiDisplay = oSettings.aiDisplay;\n\t\n\t\toSettings.bDrawing = true;\n\t\n\t\t/* Check and see if we have an initial draw position from state saving */\n\t\tif ( iInitDisplayStart !== undefined && iInitDisplayStart !== -1 )\n\t\t{\n\t\t\toSettings._iDisplayStart = bServerSide ?\n\t\t\t\tiInitDisplayStart :\n\t\t\t\tiInitDisplayStart >= oSettings.fnRecordsDisplay() ?\n\t\t\t\t\t0 :\n\t\t\t\t\tiInitDisplayStart;\n\t\n\t\t\toSettings.iInitDisplayStart = -1;\n\t\t}\n\t\n\t\tvar iDisplayStart = oSettings._iDisplayStart;\n\t\tvar iDisplayEnd = oSettings.fnDisplayEnd();\n\t\n\t\t/* Server-side processing draw intercept */\n\t\tif ( oSettings.bDeferLoading )\n\t\t{\n\t\t\toSettings.bDeferLoading = false;\n\t\t\toSettings.iDraw++;\n\t\t\t_fnProcessingDisplay( oSettings, false );\n\t\t}\n\t\telse if ( !bServerSide )\n\t\t{\n\t\t\toSettings.iDraw++;\n\t\t}\n\t\telse if ( !oSettings.bDestroying && !_fnAjaxUpdate( oSettings ) )\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\n\t\tif ( aiDisplay.length !== 0 )\n\t\t{\n\t\t\tvar iStart = bServerSide ? 0 : iDisplayStart;\n\t\t\tvar iEnd = bServerSide ? oSettings.aoData.length : iDisplayEnd;\n\t\n\t\t\tfor ( var j=iStart ; j<iEnd ; j++ )\n\t\t\t{\n\t\t\t\tvar iDataIndex = aiDisplay[j];\n\t\t\t\tvar aoData = oSettings.aoData[ iDataIndex ];\n\t\t\t\tif ( aoData.nTr === null )\n\t\t\t\t{\n\t\t\t\t\t_fnCreateTr( oSettings, iDataIndex );\n\t\t\t\t}\n\t\n\t\t\t\tvar nRow = aoData.nTr;\n\t\n\t\t\t\t/* Remove the old striping classes and then add the new one */\n\t\t\t\tif ( iStripes !== 0 )\n\t\t\t\t{\n\t\t\t\t\tvar sStripe = asStripeClasses[ iRowCount % iStripes ];\n\t\t\t\t\tif ( aoData._sRowStripe != sStripe )\n\t\t\t\t\t{\n\t\t\t\t\t\t$(nRow).removeClass( aoData._sRowStripe ).addClass( sStripe );\n\t\t\t\t\t\taoData._sRowStripe = sStripe;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t// Row callback functions - might want to manipulate the row\n\t\t\t\t// iRowCount and j are not currently documented. Are they at all\n\t\t\t\t// useful?\n\t\t\t\t_fnCallbackFire( oSettings, 'aoRowCallback', null,\n\t\t\t\t\t[nRow, aoData._aData, iRowCount, j, iDataIndex] );\n\t\n\t\t\t\tanRows.push( nRow );\n\t\t\t\tiRowCount++;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t/* Table is empty - create a row with an empty message in it */\n\t\t\tvar sZero = oLang.sZeroRecords;\n\t\t\tif ( oSettings.iDraw == 1 &&  _fnDataSource( oSettings ) == 'ajax' )\n\t\t\t{\n\t\t\t\tsZero = oLang.sLoadingRecords;\n\t\t\t}\n\t\t\telse if ( oLang.sEmptyTable && oSettings.fnRecordsTotal() === 0 )\n\t\t\t{\n\t\t\t\tsZero = oLang.sEmptyTable;\n\t\t\t}\n\t\n\t\t\tanRows[ 0 ] = $( '<tr/>', { 'class': iStripes ? asStripeClasses[0] : '' } )\n\t\t\t\t.append( $('<td />', {\n\t\t\t\t\t'valign':  'top',\n\t\t\t\t\t'colSpan': _fnVisbleColumns( oSettings ),\n\t\t\t\t\t'class':   oSettings.oClasses.sRowEmpty\n\t\t\t\t} ).html( sZero ) )[0];\n\t\t}\n\t\n\t\t/* Header and footer callbacks */\n\t\t_fnCallbackFire( oSettings, 'aoHeaderCallback', 'header', [ $(oSettings.nTHead).children('tr')[0],\n\t\t\t_fnGetDataMaster( oSettings ), iDisplayStart, iDisplayEnd, aiDisplay ] );\n\t\n\t\t_fnCallbackFire( oSettings, 'aoFooterCallback', 'footer', [ $(oSettings.nTFoot).children('tr')[0],\n\t\t\t_fnGetDataMaster( oSettings ), iDisplayStart, iDisplayEnd, aiDisplay ] );\n\t\n\t\tvar body = $(oSettings.nTBody);\n\t\n\t\tbody.children().detach();\n\t\tbody.append( $(anRows) );\n\t\n\t\t/* Call all required callback functions for the end of a draw */\n\t\t_fnCallbackFire( oSettings, 'aoDrawCallback', 'draw', [oSettings] );\n\t\n\t\t/* Draw is complete, sorting and filtering must be as well */\n\t\toSettings.bSorted = false;\n\t\toSettings.bFiltered = false;\n\t\toSettings.bDrawing = false;\n\t}\n\t\n\t\n\t/**\n\t * Redraw the table - taking account of the various features which are enabled\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {boolean} [holdPosition] Keep the current paging position. By default\n\t *    the paging is reset to the first page\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnReDraw( settings, holdPosition )\n\t{\n\t\tvar\n\t\t\tfeatures = settings.oFeatures,\n\t\t\tsort     = features.bSort,\n\t\t\tfilter   = features.bFilter;\n\t\n\t\tif ( sort ) {\n\t\t\t_fnSort( settings );\n\t\t}\n\t\n\t\tif ( filter ) {\n\t\t\t_fnFilterComplete( settings, settings.oPreviousSearch );\n\t\t}\n\t\telse {\n\t\t\t// No filtering, so we want to just use the display master\n\t\t\tsettings.aiDisplay = settings.aiDisplayMaster.slice();\n\t\t}\n\t\n\t\tif ( holdPosition !== true ) {\n\t\t\tsettings._iDisplayStart = 0;\n\t\t}\n\t\n\t\t// Let any modules know about the draw hold position state (used by\n\t\t// scrolling internally)\n\t\tsettings._drawHold = holdPosition;\n\t\n\t\t_fnDraw( settings );\n\t\n\t\tsettings._drawHold = false;\n\t}\n\t\n\t\n\t/**\n\t * Add the options to the page HTML for the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAddOptionsHtml ( oSettings )\n\t{\n\t\tvar classes = oSettings.oClasses;\n\t\tvar table = $(oSettings.nTable);\n\t\tvar holding = $('<div/>').insertBefore( table ); // Holding element for speed\n\t\tvar features = oSettings.oFeatures;\n\t\n\t\t// All DataTables are wrapped in a div\n\t\tvar insert = $('<div/>', {\n\t\t\tid:      oSettings.sTableId+'_wrapper',\n\t\t\t'class': classes.sWrapper + (oSettings.nTFoot ? '' : ' '+classes.sNoFooter)\n\t\t} );\n\t\n\t\toSettings.nHolding = holding[0];\n\t\toSettings.nTableWrapper = insert[0];\n\t\toSettings.nTableReinsertBefore = oSettings.nTable.nextSibling;\n\t\n\t\t/* Loop over the user set positioning and place the elements as needed */\n\t\tvar aDom = oSettings.sDom.split('');\n\t\tvar featureNode, cOption, nNewNode, cNext, sAttr, j;\n\t\tfor ( var i=0 ; i<aDom.length ; i++ )\n\t\t{\n\t\t\tfeatureNode = null;\n\t\t\tcOption = aDom[i];\n\t\n\t\t\tif ( cOption == '<' )\n\t\t\t{\n\t\t\t\t/* New container div */\n\t\t\t\tnNewNode = $('<div/>')[0];\n\t\n\t\t\t\t/* Check to see if we should append an id and/or a class name to the container */\n\t\t\t\tcNext = aDom[i+1];\n\t\t\t\tif ( cNext == \"'\" || cNext == '\"' )\n\t\t\t\t{\n\t\t\t\t\tsAttr = \"\";\n\t\t\t\t\tj = 2;\n\t\t\t\t\twhile ( aDom[i+j] != cNext )\n\t\t\t\t\t{\n\t\t\t\t\t\tsAttr += aDom[i+j];\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t/* Replace jQuery UI constants @todo depreciated */\n\t\t\t\t\tif ( sAttr == \"H\" )\n\t\t\t\t\t{\n\t\t\t\t\t\tsAttr = classes.sJUIHeader;\n\t\t\t\t\t}\n\t\t\t\t\telse if ( sAttr == \"F\" )\n\t\t\t\t\t{\n\t\t\t\t\t\tsAttr = classes.sJUIFooter;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t/* The attribute can be in the format of \"#id.class\", \"#id\" or \"class\" This logic\n\t\t\t\t\t * breaks the string into parts and applies them as needed\n\t\t\t\t\t */\n\t\t\t\t\tif ( sAttr.indexOf('.') != -1 )\n\t\t\t\t\t{\n\t\t\t\t\t\tvar aSplit = sAttr.split('.');\n\t\t\t\t\t\tnNewNode.id = aSplit[0].substr(1, aSplit[0].length-1);\n\t\t\t\t\t\tnNewNode.className = aSplit[1];\n\t\t\t\t\t}\n\t\t\t\t\telse if ( sAttr.charAt(0) == \"#\" )\n\t\t\t\t\t{\n\t\t\t\t\t\tnNewNode.id = sAttr.substr(1, sAttr.length-1);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tnNewNode.className = sAttr;\n\t\t\t\t\t}\n\t\n\t\t\t\t\ti += j; /* Move along the position array */\n\t\t\t\t}\n\t\n\t\t\t\tinsert.append( nNewNode );\n\t\t\t\tinsert = $(nNewNode);\n\t\t\t}\n\t\t\telse if ( cOption == '>' )\n\t\t\t{\n\t\t\t\t/* End container div */\n\t\t\t\tinsert = insert.parent();\n\t\t\t}\n\t\t\t// @todo Move options into their own plugins?\n\t\t\telse if ( cOption == 'l' && features.bPaginate && features.bLengthChange )\n\t\t\t{\n\t\t\t\t/* Length */\n\t\t\t\tfeatureNode = _fnFeatureHtmlLength( oSettings );\n\t\t\t}\n\t\t\telse if ( cOption == 'f' && features.bFilter )\n\t\t\t{\n\t\t\t\t/* Filter */\n\t\t\t\tfeatureNode = _fnFeatureHtmlFilter( oSettings );\n\t\t\t}\n\t\t\telse if ( cOption == 'r' && features.bProcessing )\n\t\t\t{\n\t\t\t\t/* pRocessing */\n\t\t\t\tfeatureNode = _fnFeatureHtmlProcessing( oSettings );\n\t\t\t}\n\t\t\telse if ( cOption == 't' )\n\t\t\t{\n\t\t\t\t/* Table */\n\t\t\t\tfeatureNode = _fnFeatureHtmlTable( oSettings );\n\t\t\t}\n\t\t\telse if ( cOption ==  'i' && features.bInfo )\n\t\t\t{\n\t\t\t\t/* Info */\n\t\t\t\tfeatureNode = _fnFeatureHtmlInfo( oSettings );\n\t\t\t}\n\t\t\telse if ( cOption == 'p' && features.bPaginate )\n\t\t\t{\n\t\t\t\t/* Pagination */\n\t\t\t\tfeatureNode = _fnFeatureHtmlPaginate( oSettings );\n\t\t\t}\n\t\t\telse if ( DataTable.ext.feature.length !== 0 )\n\t\t\t{\n\t\t\t\t/* Plug-in features */\n\t\t\t\tvar aoFeatures = DataTable.ext.feature;\n\t\t\t\tfor ( var k=0, kLen=aoFeatures.length ; k<kLen ; k++ )\n\t\t\t\t{\n\t\t\t\t\tif ( cOption == aoFeatures[k].cFeature )\n\t\t\t\t\t{\n\t\t\t\t\t\tfeatureNode = aoFeatures[k].fnInit( oSettings );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t/* Add to the 2D features array */\n\t\t\tif ( featureNode )\n\t\t\t{\n\t\t\t\tvar aanFeatures = oSettings.aanFeatures;\n\t\n\t\t\t\tif ( ! aanFeatures[cOption] )\n\t\t\t\t{\n\t\t\t\t\taanFeatures[cOption] = [];\n\t\t\t\t}\n\t\n\t\t\t\taanFeatures[cOption].push( featureNode );\n\t\t\t\tinsert.append( featureNode );\n\t\t\t}\n\t\t}\n\t\n\t\t/* Built our DOM structure - replace the holding div with what we want */\n\t\tholding.replaceWith( insert );\n\t\toSettings.nHolding = null;\n\t}\n\t\n\t\n\t/**\n\t * Use the DOM source to create up an array of header cells. The idea here is to\n\t * create a layout grid (array) of rows x columns, which contains a reference\n\t * to the cell that that point in the grid (regardless of col/rowspan), such that\n\t * any column / row could be removed and the new grid constructed\n\t *  @param array {object} aLayout Array to store the calculated layout in\n\t *  @param {node} nThead The header/footer element for the table\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnDetectHeader ( aLayout, nThead )\n\t{\n\t\tvar nTrs = $(nThead).children('tr');\n\t\tvar nTr, nCell;\n\t\tvar i, k, l, iLen, jLen, iColShifted, iColumn, iColspan, iRowspan;\n\t\tvar bUnique;\n\t\tvar fnShiftCol = function ( a, i, j ) {\n\t\t\tvar k = a[i];\n\t                while ( k[j] ) {\n\t\t\t\tj++;\n\t\t\t}\n\t\t\treturn j;\n\t\t};\n\t\n\t\taLayout.splice( 0, aLayout.length );\n\t\n\t\t/* We know how many rows there are in the layout - so prep it */\n\t\tfor ( i=0, iLen=nTrs.length ; i<iLen ; i++ )\n\t\t{\n\t\t\taLayout.push( [] );\n\t\t}\n\t\n\t\t/* Calculate a layout array */\n\t\tfor ( i=0, iLen=nTrs.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tnTr = nTrs[i];\n\t\t\tiColumn = 0;\n\t\n\t\t\t/* For every cell in the row... */\n\t\t\tnCell = nTr.firstChild;\n\t\t\twhile ( nCell ) {\n\t\t\t\tif ( nCell.nodeName.toUpperCase() == \"TD\" ||\n\t\t\t\t     nCell.nodeName.toUpperCase() == \"TH\" )\n\t\t\t\t{\n\t\t\t\t\t/* Get the col and rowspan attributes from the DOM and sanitise them */\n\t\t\t\t\tiColspan = nCell.getAttribute('colspan') * 1;\n\t\t\t\t\tiRowspan = nCell.getAttribute('rowspan') * 1;\n\t\t\t\t\tiColspan = (!iColspan || iColspan===0 || iColspan===1) ? 1 : iColspan;\n\t\t\t\t\tiRowspan = (!iRowspan || iRowspan===0 || iRowspan===1) ? 1 : iRowspan;\n\t\n\t\t\t\t\t/* There might be colspan cells already in this row, so shift our target\n\t\t\t\t\t * accordingly\n\t\t\t\t\t */\n\t\t\t\t\tiColShifted = fnShiftCol( aLayout, i, iColumn );\n\t\n\t\t\t\t\t/* Cache calculation for unique columns */\n\t\t\t\t\tbUnique = iColspan === 1 ? true : false;\n\t\n\t\t\t\t\t/* If there is col / rowspan, copy the information into the layout grid */\n\t\t\t\t\tfor ( l=0 ; l<iColspan ; l++ )\n\t\t\t\t\t{\n\t\t\t\t\t\tfor ( k=0 ; k<iRowspan ; k++ )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taLayout[i+k][iColShifted+l] = {\n\t\t\t\t\t\t\t\t\"cell\": nCell,\n\t\t\t\t\t\t\t\t\"unique\": bUnique\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\taLayout[i+k].nTr = nTr;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnCell = nCell.nextSibling;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Get an array of unique th elements, one for each column\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {node} nHeader automatically detect the layout from this node - optional\n\t *  @param {array} aLayout thead/tfoot layout from _fnDetectHeader - optional\n\t *  @returns array {node} aReturn list of unique th's\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetUniqueThs ( oSettings, nHeader, aLayout )\n\t{\n\t\tvar aReturn = [];\n\t\tif ( !aLayout )\n\t\t{\n\t\t\taLayout = oSettings.aoHeader;\n\t\t\tif ( nHeader )\n\t\t\t{\n\t\t\t\taLayout = [];\n\t\t\t\t_fnDetectHeader( aLayout, nHeader );\n\t\t\t}\n\t\t}\n\t\n\t\tfor ( var i=0, iLen=aLayout.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tfor ( var j=0, jLen=aLayout[i].length ; j<jLen ; j++ )\n\t\t\t{\n\t\t\t\tif ( aLayout[i][j].unique &&\n\t\t\t\t\t (!aReturn[j] || !oSettings.bSortCellsTop) )\n\t\t\t\t{\n\t\t\t\t\taReturn[j] = aLayout[i][j].cell;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn aReturn;\n\t}\n\t\n\t/**\n\t * Create an Ajax call based on the table's settings, taking into account that\n\t * parameters can have multiple forms, and backwards compatibility.\n\t *\n\t * @param {object} oSettings dataTables settings object\n\t * @param {array} data Data to send to the server, required by\n\t *     DataTables - may be augmented by developer callbacks\n\t * @param {function} fn Callback function to run when data is obtained\n\t */\n\tfunction _fnBuildAjax( oSettings, data, fn )\n\t{\n\t\t// Compatibility with 1.9-, allow fnServerData and event to manipulate\n\t\t_fnCallbackFire( oSettings, 'aoServerParams', 'serverParams', [data] );\n\t\n\t\t// Convert to object based for 1.10+ if using the old array scheme which can\n\t\t// come from server-side processing or serverParams\n\t\tif ( data && Array.isArray(data) ) {\n\t\t\tvar tmp = {};\n\t\t\tvar rbracket = /(.*?)\\[\\]$/;\n\t\n\t\t\t$.each( data, function (key, val) {\n\t\t\t\tvar match = val.name.match(rbracket);\n\t\n\t\t\t\tif ( match ) {\n\t\t\t\t\t// Support for arrays\n\t\t\t\t\tvar name = match[0];\n\t\n\t\t\t\t\tif ( ! tmp[ name ] ) {\n\t\t\t\t\t\ttmp[ name ] = [];\n\t\t\t\t\t}\n\t\t\t\t\ttmp[ name ].push( val.value );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttmp[val.name] = val.value;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tdata = tmp;\n\t\t}\n\t\n\t\tvar ajaxData;\n\t\tvar ajax = oSettings.ajax;\n\t\tvar instance = oSettings.oInstance;\n\t\tvar callback = function ( json ) {\n\t\t\t_fnCallbackFire( oSettings, null, 'xhr', [oSettings, json, oSettings.jqXHR] );\n\t\t\tfn( json );\n\t\t};\n\t\n\t\tif ( $.isPlainObject( ajax ) && ajax.data )\n\t\t{\n\t\t\tajaxData = ajax.data;\n\t\n\t\t\tvar newData = typeof ajaxData === 'function' ?\n\t\t\t\tajaxData( data, oSettings ) :  // fn can manipulate data or return\n\t\t\t\tajaxData;                      // an object object or array to merge\n\t\n\t\t\t// If the function returned something, use that alone\n\t\t\tdata = typeof ajaxData === 'function' && newData ?\n\t\t\t\tnewData :\n\t\t\t\t$.extend( true, data, newData );\n\t\n\t\t\t// Remove the data property as we've resolved it already and don't want\n\t\t\t// jQuery to do it again (it is restored at the end of the function)\n\t\t\tdelete ajax.data;\n\t\t}\n\t\n\t\tvar baseAjax = {\n\t\t\t\"data\": data,\n\t\t\t\"success\": function (json) {\n\t\t\t\tvar error = json.error || json.sError;\n\t\t\t\tif ( error ) {\n\t\t\t\t\t_fnLog( oSettings, 0, error );\n\t\t\t\t}\n\t\n\t\t\t\toSettings.json = json;\n\t\t\t\tcallback( json );\n\t\t\t},\n\t\t\t\"dataType\": \"json\",\n\t\t\t\"cache\": false,\n\t\t\t\"type\": oSettings.sServerMethod,\n\t\t\t\"error\": function (xhr, error, thrown) {\n\t\t\t\tvar ret = _fnCallbackFire( oSettings, null, 'xhr', [oSettings, null, oSettings.jqXHR] );\n\t\n\t\t\t\tif ( $.inArray( true, ret ) === -1 ) {\n\t\t\t\t\tif ( error == \"parsererror\" ) {\n\t\t\t\t\t\t_fnLog( oSettings, 0, 'Invalid JSON response', 1 );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( xhr.readyState === 4 ) {\n\t\t\t\t\t\t_fnLog( oSettings, 0, 'Ajax error', 7 );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t_fnProcessingDisplay( oSettings, false );\n\t\t\t}\n\t\t};\n\t\n\t\t// Store the data submitted for the API\n\t\toSettings.oAjaxData = data;\n\t\n\t\t// Allow plug-ins and external processes to modify the data\n\t\t_fnCallbackFire( oSettings, null, 'preXhr', [oSettings, data] );\n\t\n\t\tif ( oSettings.fnServerData )\n\t\t{\n\t\t\t// DataTables 1.9- compatibility\n\t\t\toSettings.fnServerData.call( instance,\n\t\t\t\toSettings.sAjaxSource,\n\t\t\t\t$.map( data, function (val, key) { // Need to convert back to 1.9 trad format\n\t\t\t\t\treturn { name: key, value: val };\n\t\t\t\t} ),\n\t\t\t\tcallback,\n\t\t\t\toSettings\n\t\t\t);\n\t\t}\n\t\telse if ( oSettings.sAjaxSource || typeof ajax === 'string' )\n\t\t{\n\t\t\t// DataTables 1.9- compatibility\n\t\t\toSettings.jqXHR = $.ajax( $.extend( baseAjax, {\n\t\t\t\turl: ajax || oSettings.sAjaxSource\n\t\t\t} ) );\n\t\t}\n\t\telse if ( typeof ajax === 'function' )\n\t\t{\n\t\t\t// Is a function - let the caller define what needs to be done\n\t\t\toSettings.jqXHR = ajax.call( instance, data, callback, oSettings );\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Object to extend the base settings\n\t\t\toSettings.jqXHR = $.ajax( $.extend( baseAjax, ajax ) );\n\t\n\t\t\t// Restore for next time around\n\t\t\tajax.data = ajaxData;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Update the table using an Ajax call\n\t *  @param {object} settings dataTables settings object\n\t *  @returns {boolean} Block the table drawing or not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAjaxUpdate( settings )\n\t{\n\t\tif ( settings.bAjaxDataGet ) {\n\t\t\tsettings.iDraw++;\n\t\t\t_fnProcessingDisplay( settings, true );\n\t\n\t\t\t_fnBuildAjax(\n\t\t\t\tsettings,\n\t\t\t\t_fnAjaxParameters( settings ),\n\t\t\t\tfunction(json) {\n\t\t\t\t\t_fnAjaxUpdateDraw( settings, json );\n\t\t\t\t}\n\t\t\t);\n\t\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t\n\t\n\t/**\n\t * Build up the parameters in an object needed for a server-side processing\n\t * request. Note that this is basically done twice, is different ways - a modern\n\t * method which is used by default in DataTables 1.10 which uses objects and\n\t * arrays, or the 1.9- method with is name / value pairs. 1.9 method is used if\n\t * the sAjaxSource option is used in the initialisation, or the legacyAjax\n\t * option is set.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns {bool} block the table drawing or not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAjaxParameters( settings )\n\t{\n\t\tvar\n\t\t\tcolumns = settings.aoColumns,\n\t\t\tcolumnCount = columns.length,\n\t\t\tfeatures = settings.oFeatures,\n\t\t\tpreSearch = settings.oPreviousSearch,\n\t\t\tpreColSearch = settings.aoPreSearchCols,\n\t\t\ti, data = [], dataProp, column, columnSearch,\n\t\t\tsort = _fnSortFlatten( settings ),\n\t\t\tdisplayStart = settings._iDisplayStart,\n\t\t\tdisplayLength = features.bPaginate !== false ?\n\t\t\t\tsettings._iDisplayLength :\n\t\t\t\t-1;\n\t\n\t\tvar param = function ( name, value ) {\n\t\t\tdata.push( { 'name': name, 'value': value } );\n\t\t};\n\t\n\t\t// DataTables 1.9- compatible method\n\t\tparam( 'sEcho',          settings.iDraw );\n\t\tparam( 'iColumns',       columnCount );\n\t\tparam( 'sColumns',       _pluck( columns, 'sName' ).join(',') );\n\t\tparam( 'iDisplayStart',  displayStart );\n\t\tparam( 'iDisplayLength', displayLength );\n\t\n\t\t// DataTables 1.10+ method\n\t\tvar d = {\n\t\t\tdraw:    settings.iDraw,\n\t\t\tcolumns: [],\n\t\t\torder:   [],\n\t\t\tstart:   displayStart,\n\t\t\tlength:  displayLength,\n\t\t\tsearch:  {\n\t\t\t\tvalue: preSearch.sSearch,\n\t\t\t\tregex: preSearch.bRegex\n\t\t\t}\n\t\t};\n\t\n\t\tfor ( i=0 ; i<columnCount ; i++ ) {\n\t\t\tcolumn = columns[i];\n\t\t\tcolumnSearch = preColSearch[i];\n\t\t\tdataProp = typeof column.mData==\"function\" ? 'function' : column.mData ;\n\t\n\t\t\td.columns.push( {\n\t\t\t\tdata:       dataProp,\n\t\t\t\tname:       column.sName,\n\t\t\t\tsearchable: column.bSearchable,\n\t\t\t\torderable:  column.bSortable,\n\t\t\t\tsearch:     {\n\t\t\t\t\tvalue: columnSearch.sSearch,\n\t\t\t\t\tregex: columnSearch.bRegex\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\tparam( \"mDataProp_\"+i, dataProp );\n\t\n\t\t\tif ( features.bFilter ) {\n\t\t\t\tparam( 'sSearch_'+i,     columnSearch.sSearch );\n\t\t\t\tparam( 'bRegex_'+i,      columnSearch.bRegex );\n\t\t\t\tparam( 'bSearchable_'+i, column.bSearchable );\n\t\t\t}\n\t\n\t\t\tif ( features.bSort ) {\n\t\t\t\tparam( 'bSortable_'+i, column.bSortable );\n\t\t\t}\n\t\t}\n\t\n\t\tif ( features.bFilter ) {\n\t\t\tparam( 'sSearch', preSearch.sSearch );\n\t\t\tparam( 'bRegex', preSearch.bRegex );\n\t\t}\n\t\n\t\tif ( features.bSort ) {\n\t\t\t$.each( sort, function ( i, val ) {\n\t\t\t\td.order.push( { column: val.col, dir: val.dir } );\n\t\n\t\t\t\tparam( 'iSortCol_'+i, val.col );\n\t\t\t\tparam( 'sSortDir_'+i, val.dir );\n\t\t\t} );\n\t\n\t\t\tparam( 'iSortingCols', sort.length );\n\t\t}\n\t\n\t\t// If the legacy.ajax parameter is null, then we automatically decide which\n\t\t// form to use, based on sAjaxSource\n\t\tvar legacy = DataTable.ext.legacy.ajax;\n\t\tif ( legacy === null ) {\n\t\t\treturn settings.sAjaxSource ? data : d;\n\t\t}\n\t\n\t\t// Otherwise, if legacy has been specified then we use that to decide on the\n\t\t// form\n\t\treturn legacy ? data : d;\n\t}\n\t\n\t\n\t/**\n\t * Data the data from the server (nuking the old) and redraw the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {object} json json data return from the server.\n\t *  @param {string} json.sEcho Tracking flag for DataTables to match requests\n\t *  @param {int} json.iTotalRecords Number of records in the data set, not accounting for filtering\n\t *  @param {int} json.iTotalDisplayRecords Number of records in the data set, accounting for filtering\n\t *  @param {array} json.aaData The data to display on this page\n\t *  @param {string} [json.sColumns] Column ordering (sName, comma separated)\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnAjaxUpdateDraw ( settings, json )\n\t{\n\t\t// v1.10 uses camelCase variables, while 1.9 uses Hungarian notation.\n\t\t// Support both\n\t\tvar compat = function ( old, modern ) {\n\t\t\treturn json[old] !== undefined ? json[old] : json[modern];\n\t\t};\n\t\n\t\tvar data = _fnAjaxDataSrc( settings, json );\n\t\tvar draw            = compat( 'sEcho',                'draw' );\n\t\tvar recordsTotal    = compat( 'iTotalRecords',        'recordsTotal' );\n\t\tvar recordsFiltered = compat( 'iTotalDisplayRecords', 'recordsFiltered' );\n\t\n\t\tif ( draw !== undefined ) {\n\t\t\t// Protect against out of sequence returns\n\t\t\tif ( draw*1 < settings.iDraw ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsettings.iDraw = draw * 1;\n\t\t}\n\t\n\t\t_fnClearTable( settings );\n\t\tsettings._iRecordsTotal   = parseInt(recordsTotal, 10);\n\t\tsettings._iRecordsDisplay = parseInt(recordsFiltered, 10);\n\t\n\t\tfor ( var i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t_fnAddData( settings, data[i] );\n\t\t}\n\t\tsettings.aiDisplay = settings.aiDisplayMaster.slice();\n\t\n\t\tsettings.bAjaxDataGet = false;\n\t\t_fnDraw( settings );\n\t\n\t\tif ( ! settings._bInitComplete ) {\n\t\t\t_fnInitComplete( settings, json );\n\t\t}\n\t\n\t\tsettings.bAjaxDataGet = true;\n\t\t_fnProcessingDisplay( settings, false );\n\t}\n\t\n\t\n\t/**\n\t * Get the data from the JSON data source to use for drawing a table. Using\n\t * `_fnGetObjectDataFn` allows the data to be sourced from a property of the\n\t * source object, or from a processing function.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param  {object} json Data source object / array from the server\n\t *  @return {array} Array of data to use\n\t */\n\tfunction _fnAjaxDataSrc ( oSettings, json )\n\t{\n\t\tvar dataSrc = $.isPlainObject( oSettings.ajax ) && oSettings.ajax.dataSrc !== undefined ?\n\t\t\toSettings.ajax.dataSrc :\n\t\t\toSettings.sAjaxDataProp; // Compatibility with 1.9-.\n\t\n\t\t// Compatibility with 1.9-. In order to read from aaData, check if the\n\t\t// default has been changed, if not, check for aaData\n\t\tif ( dataSrc === 'data' ) {\n\t\t\treturn json.aaData || json[dataSrc];\n\t\t}\n\t\n\t\treturn dataSrc !== \"\" ?\n\t\t\t_fnGetObjectDataFn( dataSrc )( json ) :\n\t\t\tjson;\n\t}\n\t\n\t/**\n\t * Generate the node required for filtering text\n\t *  @returns {node} Filter control element\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlFilter ( settings )\n\t{\n\t\tvar classes = settings.oClasses;\n\t\tvar tableId = settings.sTableId;\n\t\tvar language = settings.oLanguage;\n\t\tvar previousSearch = settings.oPreviousSearch;\n\t\tvar features = settings.aanFeatures;\n\t\tvar input = '<input type=\"search\" class=\"'+classes.sFilterInput+'\"/>';\n\t\n\t\tvar str = language.sSearch;\n\t\tstr = str.match(/_INPUT_/) ?\n\t\t\tstr.replace('_INPUT_', input) :\n\t\t\tstr+input;\n\t\n\t\tvar filter = $('<div/>', {\n\t\t\t\t'id': ! features.f ? tableId+'_filter' : null,\n\t\t\t\t'class': classes.sFilter\n\t\t\t} )\n\t\t\t.append( $('<label/>' ).append( str ) );\n\t\n\t\tvar searchFn = function() {\n\t\t\t/* Update all other filter input elements for the new display */\n\t\t\tvar n = features.f;\n\t\t\tvar val = !this.value ? \"\" : this.value; // mental IE8 fix :-(\n\t\n\t\t\t/* Now do the filter */\n\t\t\tif ( val != previousSearch.sSearch ) {\n\t\t\t\t_fnFilterComplete( settings, {\n\t\t\t\t\t\"sSearch\": val,\n\t\t\t\t\t\"bRegex\": previousSearch.bRegex,\n\t\t\t\t\t\"bSmart\": previousSearch.bSmart ,\n\t\t\t\t\t\"bCaseInsensitive\": previousSearch.bCaseInsensitive\n\t\t\t\t} );\n\t\n\t\t\t\t// Need to redraw, without resorting\n\t\t\t\tsettings._iDisplayStart = 0;\n\t\t\t\t_fnDraw( settings );\n\t\t\t}\n\t\t};\n\t\n\t\tvar searchDelay = settings.searchDelay !== null ?\n\t\t\tsettings.searchDelay :\n\t\t\t_fnDataSource( settings ) === 'ssp' ?\n\t\t\t\t400 :\n\t\t\t\t0;\n\t\n\t\tvar jqFilter = $('input', filter)\n\t\t\t.val( previousSearch.sSearch )\n\t\t\t.attr( 'placeholder', language.sSearchPlaceholder )\n\t\t\t.on(\n\t\t\t\t'keyup.DT search.DT input.DT paste.DT cut.DT',\n\t\t\t\tsearchDelay ?\n\t\t\t\t\t_fnThrottle( searchFn, searchDelay ) :\n\t\t\t\t\tsearchFn\n\t\t\t)\n\t\t\t.on( 'mouseup', function(e) {\n\t\t\t\t// Edge fix! Edge 17 does not trigger anything other than mouse events when clicking\n\t\t\t\t// on the clear icon (Edge bug 17584515). This is safe in other browsers as `searchFn`\n\t\t\t\t// checks the value to see if it has changed. In other browsers it won't have.\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\tsearchFn.call(jqFilter[0]);\n\t\t\t\t}, 10);\n\t\t\t} )\n\t\t\t.on( 'keypress.DT', function(e) {\n\t\t\t\t/* Prevent form submission */\n\t\t\t\tif ( e.keyCode == 13 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.attr('aria-controls', tableId);\n\t\n\t\t// Update the input elements whenever the table is filtered\n\t\t$(settings.nTable).on( 'search.dt.DT', function ( ev, s ) {\n\t\t\tif ( settings === s ) {\n\t\t\t\t// IE9 throws an 'unknown error' if document.activeElement is used\n\t\t\t\t// inside an iframe or frame...\n\t\t\t\ttry {\n\t\t\t\t\tif ( jqFilter[0] !== document.activeElement ) {\n\t\t\t\t\t\tjqFilter.val( previousSearch.sSearch );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch ( e ) {}\n\t\t\t}\n\t\t} );\n\t\n\t\treturn filter[0];\n\t}\n\t\n\t\n\t/**\n\t * Filter the table using both the global filter and column based filtering\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {object} oSearch search information\n\t *  @param {int} [iForce] force a research of the master array (1) or not (undefined or 0)\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFilterComplete ( oSettings, oInput, iForce )\n\t{\n\t\tvar oPrevSearch = oSettings.oPreviousSearch;\n\t\tvar aoPrevSearch = oSettings.aoPreSearchCols;\n\t\tvar fnSaveFilter = function ( oFilter ) {\n\t\t\t/* Save the filtering values */\n\t\t\toPrevSearch.sSearch = oFilter.sSearch;\n\t\t\toPrevSearch.bRegex = oFilter.bRegex;\n\t\t\toPrevSearch.bSmart = oFilter.bSmart;\n\t\t\toPrevSearch.bCaseInsensitive = oFilter.bCaseInsensitive;\n\t\t};\n\t\tvar fnRegex = function ( o ) {\n\t\t\t// Backwards compatibility with the bEscapeRegex option\n\t\t\treturn o.bEscapeRegex !== undefined ? !o.bEscapeRegex : o.bRegex;\n\t\t};\n\t\n\t\t// Resolve any column types that are unknown due to addition or invalidation\n\t\t// @todo As per sort - can this be moved into an event handler?\n\t\t_fnColumnTypes( oSettings );\n\t\n\t\t/* In server-side processing all filtering is done by the server, so no point hanging around here */\n\t\tif ( _fnDataSource( oSettings ) != 'ssp' )\n\t\t{\n\t\t\t/* Global filter */\n\t\t\t_fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive );\n\t\t\tfnSaveFilter( oInput );\n\t\n\t\t\t/* Now do the individual column filter */\n\t\t\tfor ( var i=0 ; i<aoPrevSearch.length ; i++ )\n\t\t\t{\n\t\t\t\t_fnFilterColumn( oSettings, aoPrevSearch[i].sSearch, i, fnRegex(aoPrevSearch[i]),\n\t\t\t\t\taoPrevSearch[i].bSmart, aoPrevSearch[i].bCaseInsensitive );\n\t\t\t}\n\t\n\t\t\t/* Custom filtering */\n\t\t\t_fnFilterCustom( oSettings );\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfnSaveFilter( oInput );\n\t\t}\n\t\n\t\t/* Tell the draw function we have been filtering */\n\t\toSettings.bFiltered = true;\n\t\t_fnCallbackFire( oSettings, null, 'search', [oSettings] );\n\t}\n\t\n\t\n\t/**\n\t * Apply custom filtering functions\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFilterCustom( settings )\n\t{\n\t\tvar filters = DataTable.ext.search;\n\t\tvar displayRows = settings.aiDisplay;\n\t\tvar row, rowIdx;\n\t\n\t\tfor ( var i=0, ien=filters.length ; i<ien ; i++ ) {\n\t\t\tvar rows = [];\n\t\n\t\t\t// Loop over each row and see if it should be included\n\t\t\tfor ( var j=0, jen=displayRows.length ; j<jen ; j++ ) {\n\t\t\t\trowIdx = displayRows[ j ];\n\t\t\t\trow = settings.aoData[ rowIdx ];\n\t\n\t\t\t\tif ( filters[i]( settings, row._aFilterData, rowIdx, row._aData, j ) ) {\n\t\t\t\t\trows.push( rowIdx );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// So the array reference doesn't break set the results into the\n\t\t\t// existing array\n\t\t\tdisplayRows.length = 0;\n\t\t\t$.merge( displayRows, rows );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Filter the table on a per-column basis\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {string} sInput string to filter on\n\t *  @param {int} iColumn column to filter\n\t *  @param {bool} bRegex treat search string as a regular expression or not\n\t *  @param {bool} bSmart use smart filtering or not\n\t *  @param {bool} bCaseInsensitive Do case insenstive matching or not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, caseInsensitive )\n\t{\n\t\tif ( searchStr === '' ) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar data;\n\t\tvar out = [];\n\t\tvar display = settings.aiDisplay;\n\t\tvar rpSearch = _fnFilterCreateSearch( searchStr, regex, smart, caseInsensitive );\n\t\n\t\tfor ( var i=0 ; i<display.length ; i++ ) {\n\t\t\tdata = settings.aoData[ display[i] ]._aFilterData[ colIdx ];\n\t\n\t\t\tif ( rpSearch.test( data ) ) {\n\t\t\t\tout.push( display[i] );\n\t\t\t}\n\t\t}\n\t\n\t\tsettings.aiDisplay = out;\n\t}\n\t\n\t\n\t/**\n\t * Filter the data table based on user input and draw the table\n\t *  @param {object} settings dataTables settings object\n\t *  @param {string} input string to filter on\n\t *  @param {int} force optional - force a research of the master array (1) or not (undefined or 0)\n\t *  @param {bool} regex treat as a regular expression or not\n\t *  @param {bool} smart perform smart filtering or not\n\t *  @param {bool} caseInsensitive Do case insenstive matching or not\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFilter( settings, input, force, regex, smart, caseInsensitive )\n\t{\n\t\tvar rpSearch = _fnFilterCreateSearch( input, regex, smart, caseInsensitive );\n\t\tvar prevSearch = settings.oPreviousSearch.sSearch;\n\t\tvar displayMaster = settings.aiDisplayMaster;\n\t\tvar display, invalidated, i;\n\t\tvar filtered = [];\n\t\n\t\t// Need to take account of custom filtering functions - always filter\n\t\tif ( DataTable.ext.search.length !== 0 ) {\n\t\t\tforce = true;\n\t\t}\n\t\n\t\t// Check if any of the rows were invalidated\n\t\tinvalidated = _fnFilterData( settings );\n\t\n\t\t// If the input is blank - we just want the full data set\n\t\tif ( input.length <= 0 ) {\n\t\t\tsettings.aiDisplay = displayMaster.slice();\n\t\t}\n\t\telse {\n\t\t\t// New search - start from the master array\n\t\t\tif ( invalidated ||\n\t\t\t\t force ||\n\t\t\t\t regex ||\n\t\t\t\t prevSearch.length > input.length ||\n\t\t\t\t input.indexOf(prevSearch) !== 0 ||\n\t\t\t\t settings.bSorted // On resort, the display master needs to be\n\t\t\t\t                  // re-filtered since indexes will have changed\n\t\t\t) {\n\t\t\t\tsettings.aiDisplay = displayMaster.slice();\n\t\t\t}\n\t\n\t\t\t// Search the display array\n\t\t\tdisplay = settings.aiDisplay;\n\t\n\t\t\tfor ( i=0 ; i<display.length ; i++ ) {\n\t\t\t\tif ( rpSearch.test( settings.aoData[ display[i] ]._sFilterRow ) ) {\n\t\t\t\t\tfiltered.push( display[i] );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tsettings.aiDisplay = filtered;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Build a regular expression object suitable for searching a table\n\t *  @param {string} sSearch string to search for\n\t *  @param {bool} bRegex treat as a regular expression or not\n\t *  @param {bool} bSmart perform smart filtering or not\n\t *  @param {bool} bCaseInsensitive Do case insensitive matching or not\n\t *  @returns {RegExp} constructed object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFilterCreateSearch( search, regex, smart, caseInsensitive )\n\t{\n\t\tsearch = regex ?\n\t\t\tsearch :\n\t\t\t_fnEscapeRegex( search );\n\t\t\n\t\tif ( smart ) {\n\t\t\t/* For smart filtering we want to allow the search to work regardless of\n\t\t\t * word order. We also want double quoted text to be preserved, so word\n\t\t\t * order is important - a la google. So this is what we want to\n\t\t\t * generate:\n\t\t\t * \n\t\t\t * ^(?=.*?\\bone\\b)(?=.*?\\btwo three\\b)(?=.*?\\bfour\\b).*$\n\t\t\t */\n\t\t\tvar a = $.map( search.match( /\"[^\"]+\"|[^ ]+/g ) || [''], function ( word ) {\n\t\t\t\tif ( word.charAt(0) === '\"' ) {\n\t\t\t\t\tvar m = word.match( /^\"(.*)\"$/ );\n\t\t\t\t\tword = m ? m[1] : word;\n\t\t\t\t}\n\t\n\t\t\t\treturn word.replace('\"', '');\n\t\t\t} );\n\t\n\t\t\tsearch = '^(?=.*?'+a.join( ')(?=.*?' )+').*$';\n\t\t}\n\t\n\t\treturn new RegExp( search, caseInsensitive ? 'i' : '' );\n\t}\n\t\n\t\n\t/**\n\t * Escape a string such that it can be used in a regular expression\n\t *  @param {string} sVal string to escape\n\t *  @returns {string} escaped string\n\t *  @memberof DataTable#oApi\n\t */\n\tvar _fnEscapeRegex = DataTable.util.escapeRegex;\n\t\n\tvar __filter_div = $('<div>')[0];\n\tvar __filter_div_textContent = __filter_div.textContent !== undefined;\n\t\n\t// Update the filtering data for each row if needed (by invalidation or first run)\n\tfunction _fnFilterData ( settings )\n\t{\n\t\tvar columns = settings.aoColumns;\n\t\tvar column;\n\t\tvar i, j, ien, jen, filterData, cellData, row;\n\t\tvar fomatters = DataTable.ext.type.search;\n\t\tvar wasInvalidated = false;\n\t\n\t\tfor ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {\n\t\t\trow = settings.aoData[i];\n\t\n\t\t\tif ( ! row._aFilterData ) {\n\t\t\t\tfilterData = [];\n\t\n\t\t\t\tfor ( j=0, jen=columns.length ; j<jen ; j++ ) {\n\t\t\t\t\tcolumn = columns[j];\n\t\n\t\t\t\t\tif ( column.bSearchable ) {\n\t\t\t\t\t\tcellData = _fnGetCellData( settings, i, j, 'filter' );\n\t\n\t\t\t\t\t\tif ( fomatters[ column.sType ] ) {\n\t\t\t\t\t\t\tcellData = fomatters[ column.sType ]( cellData );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// Search in DataTables 1.10 is string based. In 1.11 this\n\t\t\t\t\t\t// should be altered to also allow strict type checking.\n\t\t\t\t\t\tif ( cellData === null ) {\n\t\t\t\t\t\t\tcellData = '';\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif ( typeof cellData !== 'string' && cellData.toString ) {\n\t\t\t\t\t\t\tcellData = cellData.toString();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcellData = '';\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// If it looks like there is an HTML entity in the string,\n\t\t\t\t\t// attempt to decode it so sorting works as expected. Note that\n\t\t\t\t\t// we could use a single line of jQuery to do this, but the DOM\n\t\t\t\t\t// method used here is much faster http://jsperf.com/html-decode\n\t\t\t\t\tif ( cellData.indexOf && cellData.indexOf('&') !== -1 ) {\n\t\t\t\t\t\t__filter_div.innerHTML = cellData;\n\t\t\t\t\t\tcellData = __filter_div_textContent ?\n\t\t\t\t\t\t\t__filter_div.textContent :\n\t\t\t\t\t\t\t__filter_div.innerText;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif ( cellData.replace ) {\n\t\t\t\t\t\tcellData = cellData.replace(/[\\r\\n\\u2028]/g, '');\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfilterData.push( cellData );\n\t\t\t\t}\n\t\n\t\t\t\trow._aFilterData = filterData;\n\t\t\t\trow._sFilterRow = filterData.join('  ');\n\t\t\t\twasInvalidated = true;\n\t\t\t}\n\t\t}\n\t\n\t\treturn wasInvalidated;\n\t}\n\t\n\t\n\t/**\n\t * Convert from the internal Hungarian notation to camelCase for external\n\t * interaction\n\t *  @param {object} obj Object to convert\n\t *  @returns {object} Inverted object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSearchToCamel ( obj )\n\t{\n\t\treturn {\n\t\t\tsearch:          obj.sSearch,\n\t\t\tsmart:           obj.bSmart,\n\t\t\tregex:           obj.bRegex,\n\t\t\tcaseInsensitive: obj.bCaseInsensitive\n\t\t};\n\t}\n\t\n\t\n\t\n\t/**\n\t * Convert from camelCase notation to the internal Hungarian. We could use the\n\t * Hungarian convert function here, but this is cleaner\n\t *  @param {object} obj Object to convert\n\t *  @returns {object} Inverted object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSearchToHung ( obj )\n\t{\n\t\treturn {\n\t\t\tsSearch:          obj.search,\n\t\t\tbSmart:           obj.smart,\n\t\t\tbRegex:           obj.regex,\n\t\t\tbCaseInsensitive: obj.caseInsensitive\n\t\t};\n\t}\n\t\n\t/**\n\t * Generate the node required for the info display\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns {node} Information element\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlInfo ( settings )\n\t{\n\t\tvar\n\t\t\ttid = settings.sTableId,\n\t\t\tnodes = settings.aanFeatures.i,\n\t\t\tn = $('<div/>', {\n\t\t\t\t'class': settings.oClasses.sInfo,\n\t\t\t\t'id': ! nodes ? tid+'_info' : null\n\t\t\t} );\n\t\n\t\tif ( ! nodes ) {\n\t\t\t// Update display on each draw\n\t\t\tsettings.aoDrawCallback.push( {\n\t\t\t\t\"fn\": _fnUpdateInfo,\n\t\t\t\t\"sName\": \"information\"\n\t\t\t} );\n\t\n\t\t\tn\n\t\t\t\t.attr( 'role', 'status' )\n\t\t\t\t.attr( 'aria-live', 'polite' );\n\t\n\t\t\t// Table is described by our info div\n\t\t\t$(settings.nTable).attr( 'aria-describedby', tid+'_info' );\n\t\t}\n\t\n\t\treturn n[0];\n\t}\n\t\n\t\n\t/**\n\t * Update the information elements in the display\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnUpdateInfo ( settings )\n\t{\n\t\t/* Show information about the table */\n\t\tvar nodes = settings.aanFeatures.i;\n\t\tif ( nodes.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar\n\t\t\tlang  = settings.oLanguage,\n\t\t\tstart = settings._iDisplayStart+1,\n\t\t\tend   = settings.fnDisplayEnd(),\n\t\t\tmax   = settings.fnRecordsTotal(),\n\t\t\ttotal = settings.fnRecordsDisplay(),\n\t\t\tout   = total ?\n\t\t\t\tlang.sInfo :\n\t\t\t\tlang.sInfoEmpty;\n\t\n\t\tif ( total !== max ) {\n\t\t\t/* Record set after filtering */\n\t\t\tout += ' ' + lang.sInfoFiltered;\n\t\t}\n\t\n\t\t// Convert the macros\n\t\tout += lang.sInfoPostFix;\n\t\tout = _fnInfoMacros( settings, out );\n\t\n\t\tvar callback = lang.fnInfoCallback;\n\t\tif ( callback !== null ) {\n\t\t\tout = callback.call( settings.oInstance,\n\t\t\t\tsettings, start, end, max, total, out\n\t\t\t);\n\t\t}\n\t\n\t\t$(nodes).html( out );\n\t}\n\t\n\t\n\tfunction _fnInfoMacros ( settings, str )\n\t{\n\t\t// When infinite scrolling, we are always starting at 1. _iDisplayStart is used only\n\t\t// internally\n\t\tvar\n\t\t\tformatter  = settings.fnFormatNumber,\n\t\t\tstart      = settings._iDisplayStart+1,\n\t\t\tlen        = settings._iDisplayLength,\n\t\t\tvis        = settings.fnRecordsDisplay(),\n\t\t\tall        = len === -1;\n\t\n\t\treturn str.\n\t\t\treplace(/_START_/g, formatter.call( settings, start ) ).\n\t\t\treplace(/_END_/g,   formatter.call( settings, settings.fnDisplayEnd() ) ).\n\t\t\treplace(/_MAX_/g,   formatter.call( settings, settings.fnRecordsTotal() ) ).\n\t\t\treplace(/_TOTAL_/g, formatter.call( settings, vis ) ).\n\t\t\treplace(/_PAGE_/g,  formatter.call( settings, all ? 1 : Math.ceil( start / len ) ) ).\n\t\t\treplace(/_PAGES_/g, formatter.call( settings, all ? 1 : Math.ceil( vis / len ) ) );\n\t}\n\t\n\t\n\t\n\t/**\n\t * Draw the table for the first time, adding all required features\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnInitialise ( settings )\n\t{\n\t\tvar i, iLen, iAjaxStart=settings.iInitDisplayStart;\n\t\tvar columns = settings.aoColumns, column;\n\t\tvar features = settings.oFeatures;\n\t\tvar deferLoading = settings.bDeferLoading; // value modified by the draw\n\t\n\t\t/* Ensure that the table data is fully initialised */\n\t\tif ( ! settings.bInitialised ) {\n\t\t\tsetTimeout( function(){ _fnInitialise( settings ); }, 200 );\n\t\t\treturn;\n\t\t}\n\t\n\t\t/* Show the display HTML options */\n\t\t_fnAddOptionsHtml( settings );\n\t\n\t\t/* Build and draw the header / footer for the table */\n\t\t_fnBuildHead( settings );\n\t\t_fnDrawHead( settings, settings.aoHeader );\n\t\t_fnDrawHead( settings, settings.aoFooter );\n\t\n\t\t/* Okay to show that something is going on now */\n\t\t_fnProcessingDisplay( settings, true );\n\t\n\t\t/* Calculate sizes for columns */\n\t\tif ( features.bAutoWidth ) {\n\t\t\t_fnCalculateColumnWidths( settings );\n\t\t}\n\t\n\t\tfor ( i=0, iLen=columns.length ; i<iLen ; i++ ) {\n\t\t\tcolumn = columns[i];\n\t\n\t\t\tif ( column.sWidth ) {\n\t\t\t\tcolumn.nTh.style.width = _fnStringToCss( column.sWidth );\n\t\t\t}\n\t\t}\n\t\n\t\t_fnCallbackFire( settings, null, 'preInit', [settings] );\n\t\n\t\t// If there is default sorting required - let's do it. The sort function\n\t\t// will do the drawing for us. Otherwise we draw the table regardless of the\n\t\t// Ajax source - this allows the table to look initialised for Ajax sourcing\n\t\t// data (show 'loading' message possibly)\n\t\t_fnReDraw( settings );\n\t\n\t\t// Server-side processing init complete is done by _fnAjaxUpdateDraw\n\t\tvar dataSrc = _fnDataSource( settings );\n\t\tif ( dataSrc != 'ssp' || deferLoading ) {\n\t\t\t// if there is an ajax source load the data\n\t\t\tif ( dataSrc == 'ajax' ) {\n\t\t\t\t_fnBuildAjax( settings, [], function(json) {\n\t\t\t\t\tvar aData = _fnAjaxDataSrc( settings, json );\n\t\n\t\t\t\t\t// Got the data - add it to the table\n\t\t\t\t\tfor ( i=0 ; i<aData.length ; i++ ) {\n\t\t\t\t\t\t_fnAddData( settings, aData[i] );\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Reset the init display for cookie saving. We've already done\n\t\t\t\t\t// a filter, and therefore cleared it before. So we need to make\n\t\t\t\t\t// it appear 'fresh'\n\t\t\t\t\tsettings.iInitDisplayStart = iAjaxStart;\n\t\n\t\t\t\t\t_fnReDraw( settings );\n\t\n\t\t\t\t\t_fnProcessingDisplay( settings, false );\n\t\t\t\t\t_fnInitComplete( settings, json );\n\t\t\t\t}, settings );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_fnProcessingDisplay( settings, false );\n\t\t\t\t_fnInitComplete( settings );\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Draw the table for the first time, adding all required features\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {object} [json] JSON from the server that completed the table, if using Ajax source\n\t *    with client-side processing (optional)\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnInitComplete ( settings, json )\n\t{\n\t\tsettings._bInitComplete = true;\n\t\n\t\t// When data was added after the initialisation (data or Ajax) we need to\n\t\t// calculate the column sizing\n\t\tif ( json || settings.oInit.aaData ) {\n\t\t\t_fnAdjustColumnSizing( settings );\n\t\t}\n\t\n\t\t_fnCallbackFire( settings, null, 'plugin-init', [settings, json] );\n\t\t_fnCallbackFire( settings, 'aoInitComplete', 'init', [settings, json] );\n\t}\n\t\n\t\n\tfunction _fnLengthChange ( settings, val )\n\t{\n\t\tvar len = parseInt( val, 10 );\n\t\tsettings._iDisplayLength = len;\n\t\n\t\t_fnLengthOverflow( settings );\n\t\n\t\t// Fire length change event\n\t\t_fnCallbackFire( settings, null, 'length', [settings, len] );\n\t}\n\t\n\t\n\t/**\n\t * Generate the node required for user display length changing\n\t *  @param {object} settings dataTables settings object\n\t *  @returns {node} Display length feature node\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlLength ( settings )\n\t{\n\t\tvar\n\t\t\tclasses  = settings.oClasses,\n\t\t\ttableId  = settings.sTableId,\n\t\t\tmenu     = settings.aLengthMenu,\n\t\t\td2       = Array.isArray( menu[0] ),\n\t\t\tlengths  = d2 ? menu[0] : menu,\n\t\t\tlanguage = d2 ? menu[1] : menu;\n\t\n\t\tvar select = $('<select/>', {\n\t\t\t'name':          tableId+'_length',\n\t\t\t'aria-controls': tableId,\n\t\t\t'class':         classes.sLengthSelect\n\t\t} );\n\t\n\t\tfor ( var i=0, ien=lengths.length ; i<ien ; i++ ) {\n\t\t\tselect[0][ i ] = new Option(\n\t\t\t\ttypeof language[i] === 'number' ?\n\t\t\t\t\tsettings.fnFormatNumber( language[i] ) :\n\t\t\t\t\tlanguage[i],\n\t\t\t\tlengths[i]\n\t\t\t);\n\t\t}\n\t\n\t\tvar div = $('<div><label/></div>').addClass( classes.sLength );\n\t\tif ( ! settings.aanFeatures.l ) {\n\t\t\tdiv[0].id = tableId+'_length';\n\t\t}\n\t\n\t\tdiv.children().append(\n\t\t\tsettings.oLanguage.sLengthMenu.replace( '_MENU_', select[0].outerHTML )\n\t\t);\n\t\n\t\t// Can't use `select` variable as user might provide their own and the\n\t\t// reference is broken by the use of outerHTML\n\t\t$('select', div)\n\t\t\t.val( settings._iDisplayLength )\n\t\t\t.on( 'change.DT', function(e) {\n\t\t\t\t_fnLengthChange( settings, $(this).val() );\n\t\t\t\t_fnDraw( settings );\n\t\t\t} );\n\t\n\t\t// Update node value whenever anything changes the table's length\n\t\t$(settings.nTable).on( 'length.dt.DT', function (e, s, len) {\n\t\t\tif ( settings === s ) {\n\t\t\t\t$('select', div).val( len );\n\t\t\t}\n\t\t} );\n\t\n\t\treturn div[0];\n\t}\n\t\n\t\n\t\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Note that most of the paging logic is done in\n\t * DataTable.ext.pager\n\t */\n\t\n\t/**\n\t * Generate the node required for default pagination\n\t *  @param {object} oSettings dataTables settings object\n\t *  @returns {node} Pagination feature node\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlPaginate ( settings )\n\t{\n\t\tvar\n\t\t\ttype   = settings.sPaginationType,\n\t\t\tplugin = DataTable.ext.pager[ type ],\n\t\t\tmodern = typeof plugin === 'function',\n\t\t\tredraw = function( settings ) {\n\t\t\t\t_fnDraw( settings );\n\t\t\t},\n\t\t\tnode = $('<div/>').addClass( settings.oClasses.sPaging + type )[0],\n\t\t\tfeatures = settings.aanFeatures;\n\t\n\t\tif ( ! modern ) {\n\t\t\tplugin.fnInit( settings, node, redraw );\n\t\t}\n\t\n\t\t/* Add a draw callback for the pagination on first instance, to update the paging display */\n\t\tif ( ! features.p )\n\t\t{\n\t\t\tnode.id = settings.sTableId+'_paginate';\n\t\n\t\t\tsettings.aoDrawCallback.push( {\n\t\t\t\t\"fn\": function( settings ) {\n\t\t\t\t\tif ( modern ) {\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\tstart      = settings._iDisplayStart,\n\t\t\t\t\t\t\tlen        = settings._iDisplayLength,\n\t\t\t\t\t\t\tvisRecords = settings.fnRecordsDisplay(),\n\t\t\t\t\t\t\tall        = len === -1,\n\t\t\t\t\t\t\tpage = all ? 0 : Math.ceil( start / len ),\n\t\t\t\t\t\t\tpages = all ? 1 : Math.ceil( visRecords / len ),\n\t\t\t\t\t\t\tbuttons = plugin(page, pages),\n\t\t\t\t\t\t\ti, ien;\n\t\n\t\t\t\t\t\tfor ( i=0, ien=features.p.length ; i<ien ; i++ ) {\n\t\t\t\t\t\t\t_fnRenderer( settings, 'pageButton' )(\n\t\t\t\t\t\t\t\tsettings, features.p[i], i, buttons, page, pages\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tplugin.fnUpdate( settings, redraw );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"sName\": \"pagination\"\n\t\t\t} );\n\t\t}\n\t\n\t\treturn node;\n\t}\n\t\n\t\n\t/**\n\t * Alter the display settings to change the page\n\t *  @param {object} settings DataTables settings object\n\t *  @param {string|int} action Paging action to take: \"first\", \"previous\",\n\t *    \"next\" or \"last\" or page number to jump to (integer)\n\t *  @param [bool] redraw Automatically draw the update or not\n\t *  @returns {bool} true page has changed, false - no change\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnPageChange ( settings, action, redraw )\n\t{\n\t\tvar\n\t\t\tstart     = settings._iDisplayStart,\n\t\t\tlen       = settings._iDisplayLength,\n\t\t\trecords   = settings.fnRecordsDisplay();\n\t\n\t\tif ( records === 0 || len === -1 )\n\t\t{\n\t\t\tstart = 0;\n\t\t}\n\t\telse if ( typeof action === \"number\" )\n\t\t{\n\t\t\tstart = action * len;\n\t\n\t\t\tif ( start > records )\n\t\t\t{\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\telse if ( action == \"first\" )\n\t\t{\n\t\t\tstart = 0;\n\t\t}\n\t\telse if ( action == \"previous\" )\n\t\t{\n\t\t\tstart = len >= 0 ?\n\t\t\t\tstart - len :\n\t\t\t\t0;\n\t\n\t\t\tif ( start < 0 )\n\t\t\t{\n\t\t\t  start = 0;\n\t\t\t}\n\t\t}\n\t\telse if ( action == \"next\" )\n\t\t{\n\t\t\tif ( start + len < records )\n\t\t\t{\n\t\t\t\tstart += len;\n\t\t\t}\n\t\t}\n\t\telse if ( action == \"last\" )\n\t\t{\n\t\t\tstart = Math.floor( (records-1) / len) * len;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_fnLog( settings, 0, \"Unknown paging action: \"+action, 5 );\n\t\t}\n\t\n\t\tvar changed = settings._iDisplayStart !== start;\n\t\tsettings._iDisplayStart = start;\n\t\n\t\tif ( changed ) {\n\t\t\t_fnCallbackFire( settings, null, 'page', [settings] );\n\t\n\t\t\tif ( redraw ) {\n\t\t\t\t_fnDraw( settings );\n\t\t\t}\n\t\t}\n\t\n\t\treturn changed;\n\t}\n\t\n\t\n\t\n\t/**\n\t * Generate the node required for the processing node\n\t *  @param {object} settings dataTables settings object\n\t *  @returns {node} Processing element\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlProcessing ( settings )\n\t{\n\t\treturn $('<div/>', {\n\t\t\t\t'id': ! settings.aanFeatures.r ? settings.sTableId+'_processing' : null,\n\t\t\t\t'class': settings.oClasses.sProcessing\n\t\t\t} )\n\t\t\t.html( settings.oLanguage.sProcessing )\n\t\t\t.insertBefore( settings.nTable )[0];\n\t}\n\t\n\t\n\t/**\n\t * Display or hide the processing indicator\n\t *  @param {object} settings dataTables settings object\n\t *  @param {bool} show Show the processing indicator (true) or not (false)\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnProcessingDisplay ( settings, show )\n\t{\n\t\tif ( settings.oFeatures.bProcessing ) {\n\t\t\t$(settings.aanFeatures.r).css( 'display', show ? 'block' : 'none' );\n\t\t}\n\t\n\t\t_fnCallbackFire( settings, null, 'processing', [settings, show] );\n\t}\n\t\n\t/**\n\t * Add any control elements for the table - specifically scrolling\n\t *  @param {object} settings dataTables settings object\n\t *  @returns {node} Node to add to the DOM\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnFeatureHtmlTable ( settings )\n\t{\n\t\tvar table = $(settings.nTable);\n\t\n\t\t// Add the ARIA grid role to the table\n\t\ttable.attr( 'role', 'grid' );\n\t\n\t\t// Scrolling from here on in\n\t\tvar scroll = settings.oScroll;\n\t\n\t\tif ( scroll.sX === '' && scroll.sY === '' ) {\n\t\t\treturn settings.nTable;\n\t\t}\n\t\n\t\tvar scrollX = scroll.sX;\n\t\tvar scrollY = scroll.sY;\n\t\tvar classes = settings.oClasses;\n\t\tvar caption = table.children('caption');\n\t\tvar captionSide = caption.length ? caption[0]._captionSide : null;\n\t\tvar headerClone = $( table[0].cloneNode(false) );\n\t\tvar footerClone = $( table[0].cloneNode(false) );\n\t\tvar footer = table.children('tfoot');\n\t\tvar _div = '<div/>';\n\t\tvar size = function ( s ) {\n\t\t\treturn !s ? null : _fnStringToCss( s );\n\t\t};\n\t\n\t\tif ( ! footer.length ) {\n\t\t\tfooter = null;\n\t\t}\n\t\n\t\t/*\n\t\t * The HTML structure that we want to generate in this function is:\n\t\t *  div - scroller\n\t\t *    div - scroll head\n\t\t *      div - scroll head inner\n\t\t *        table - scroll head table\n\t\t *          thead - thead\n\t\t *    div - scroll body\n\t\t *      table - table (master table)\n\t\t *        thead - thead clone for sizing\n\t\t *        tbody - tbody\n\t\t *    div - scroll foot\n\t\t *      div - scroll foot inner\n\t\t *        table - scroll foot table\n\t\t *          tfoot - tfoot\n\t\t */\n\t\tvar scroller = $( _div, { 'class': classes.sScrollWrapper } )\n\t\t\t.append(\n\t\t\t\t$(_div, { 'class': classes.sScrollHead } )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\tborder: 0,\n\t\t\t\t\t\twidth: scrollX ? size(scrollX) : '100%'\n\t\t\t\t\t} )\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(_div, { 'class': classes.sScrollHeadInner } )\n\t\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\t\t'box-sizing': 'content-box',\n\t\t\t\t\t\t\t\twidth: scroll.sXInner || '100%'\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t\theaderClone\n\t\t\t\t\t\t\t\t\t.removeAttr('id')\n\t\t\t\t\t\t\t\t\t.css( 'margin-left', 0 )\n\t\t\t\t\t\t\t\t\t.append( captionSide === 'top' ? caption : null )\n\t\t\t\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t\t\t\ttable.children('thead')\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t)\n\t\t\t.append(\n\t\t\t\t$(_div, { 'class': classes.sScrollBody } )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\twidth: size( scrollX )\n\t\t\t\t\t} )\n\t\t\t\t\t.append( table )\n\t\t\t);\n\t\n\t\tif ( footer ) {\n\t\t\tscroller.append(\n\t\t\t\t$(_div, { 'class': classes.sScrollFoot } )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\tborder: 0,\n\t\t\t\t\t\twidth: scrollX ? size(scrollX) : '100%'\n\t\t\t\t\t} )\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(_div, { 'class': classes.sScrollFootInner } )\n\t\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t\tfooterClone\n\t\t\t\t\t\t\t\t\t.removeAttr('id')\n\t\t\t\t\t\t\t\t\t.css( 'margin-left', 0 )\n\t\t\t\t\t\t\t\t\t.append( captionSide === 'bottom' ? caption : null )\n\t\t\t\t\t\t\t\t\t.append(\n\t\t\t\t\t\t\t\t\t\ttable.children('tfoot')\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\n\t\tvar children = scroller.children();\n\t\tvar scrollHead = children[0];\n\t\tvar scrollBody = children[1];\n\t\tvar scrollFoot = footer ? children[2] : null;\n\t\n\t\t// When the body is scrolled, then we also want to scroll the headers\n\t\tif ( scrollX ) {\n\t\t\t$(scrollBody).on( 'scroll.DT', function (e) {\n\t\t\t\tvar scrollLeft = this.scrollLeft;\n\t\n\t\t\t\tscrollHead.scrollLeft = scrollLeft;\n\t\n\t\t\t\tif ( footer ) {\n\t\t\t\t\tscrollFoot.scrollLeft = scrollLeft;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\n\t\t$(scrollBody).css('max-height', scrollY);\n\t\tif (! scroll.bCollapse) {\n\t\t\t$(scrollBody).css('height', scrollY);\n\t\t}\n\t\n\t\tsettings.nScrollHead = scrollHead;\n\t\tsettings.nScrollBody = scrollBody;\n\t\tsettings.nScrollFoot = scrollFoot;\n\t\n\t\t// On redraw - align columns\n\t\tsettings.aoDrawCallback.push( {\n\t\t\t\"fn\": _fnScrollDraw,\n\t\t\t\"sName\": \"scrolling\"\n\t\t} );\n\t\n\t\treturn scroller[0];\n\t}\n\t\n\t\n\t\n\t/**\n\t * Update the header, footer and body tables for resizing - i.e. column\n\t * alignment.\n\t *\n\t * Welcome to the most horrible function DataTables. The process that this\n\t * function follows is basically:\n\t *   1. Re-create the table inside the scrolling div\n\t *   2. Take live measurements from the DOM\n\t *   3. Apply the measurements to align the columns\n\t *   4. Clean up\n\t *\n\t *  @param {object} settings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnScrollDraw ( settings )\n\t{\n\t\t// Given that this is such a monster function, a lot of variables are use\n\t\t// to try and keep the minimised size as small as possible\n\t\tvar\n\t\t\tscroll         = settings.oScroll,\n\t\t\tscrollX        = scroll.sX,\n\t\t\tscrollXInner   = scroll.sXInner,\n\t\t\tscrollY        = scroll.sY,\n\t\t\tbarWidth       = scroll.iBarWidth,\n\t\t\tdivHeader      = $(settings.nScrollHead),\n\t\t\tdivHeaderStyle = divHeader[0].style,\n\t\t\tdivHeaderInner = divHeader.children('div'),\n\t\t\tdivHeaderInnerStyle = divHeaderInner[0].style,\n\t\t\tdivHeaderTable = divHeaderInner.children('table'),\n\t\t\tdivBodyEl      = settings.nScrollBody,\n\t\t\tdivBody        = $(divBodyEl),\n\t\t\tdivBodyStyle   = divBodyEl.style,\n\t\t\tdivFooter      = $(settings.nScrollFoot),\n\t\t\tdivFooterInner = divFooter.children('div'),\n\t\t\tdivFooterTable = divFooterInner.children('table'),\n\t\t\theader         = $(settings.nTHead),\n\t\t\ttable          = $(settings.nTable),\n\t\t\ttableEl        = table[0],\n\t\t\ttableStyle     = tableEl.style,\n\t\t\tfooter         = settings.nTFoot ? $(settings.nTFoot) : null,\n\t\t\tbrowser        = settings.oBrowser,\n\t\t\tie67           = browser.bScrollOversize,\n\t\t\tdtHeaderCells  = _pluck( settings.aoColumns, 'nTh' ),\n\t\t\theaderTrgEls, footerTrgEls,\n\t\t\theaderSrcEls, footerSrcEls,\n\t\t\theaderCopy, footerCopy,\n\t\t\theaderWidths=[], footerWidths=[],\n\t\t\theaderContent=[], footerContent=[],\n\t\t\tidx, correction, sanityWidth,\n\t\t\tzeroOut = function(nSizer) {\n\t\t\t\tvar style = nSizer.style;\n\t\t\t\tstyle.paddingTop = \"0\";\n\t\t\t\tstyle.paddingBottom = \"0\";\n\t\t\t\tstyle.borderTopWidth = \"0\";\n\t\t\t\tstyle.borderBottomWidth = \"0\";\n\t\t\t\tstyle.height = 0;\n\t\t\t};\n\t\n\t\t// If the scrollbar visibility has changed from the last draw, we need to\n\t\t// adjust the column sizes as the table width will have changed to account\n\t\t// for the scrollbar\n\t\tvar scrollBarVis = divBodyEl.scrollHeight > divBodyEl.clientHeight;\n\t\t\n\t\tif ( settings.scrollBarVis !== scrollBarVis && settings.scrollBarVis !== undefined ) {\n\t\t\tsettings.scrollBarVis = scrollBarVis;\n\t\t\t_fnAdjustColumnSizing( settings );\n\t\t\treturn; // adjust column sizing will call this function again\n\t\t}\n\t\telse {\n\t\t\tsettings.scrollBarVis = scrollBarVis;\n\t\t}\n\t\n\t\t/*\n\t\t * 1. Re-create the table inside the scrolling div\n\t\t */\n\t\n\t\t// Remove the old minimised thead and tfoot elements in the inner table\n\t\ttable.children('thead, tfoot').remove();\n\t\n\t\tif ( footer ) {\n\t\t\tfooterCopy = footer.clone().prependTo( table );\n\t\t\tfooterTrgEls = footer.find('tr'); // the original tfoot is in its own table and must be sized\n\t\t\tfooterSrcEls = footerCopy.find('tr');\n\t\t}\n\t\n\t\t// Clone the current header and footer elements and then place it into the inner table\n\t\theaderCopy = header.clone().prependTo( table );\n\t\theaderTrgEls = header.find('tr'); // original header is in its own table\n\t\theaderSrcEls = headerCopy.find('tr');\n\t\theaderCopy.find('th, td').removeAttr('tabindex');\n\t\n\t\n\t\t/*\n\t\t * 2. Take live measurements from the DOM - do not alter the DOM itself!\n\t\t */\n\t\n\t\t// Remove old sizing and apply the calculated column widths\n\t\t// Get the unique column headers in the newly created (cloned) header. We want to apply the\n\t\t// calculated sizes to this header\n\t\tif ( ! scrollX )\n\t\t{\n\t\t\tdivBodyStyle.width = '100%';\n\t\t\tdivHeader[0].style.width = '100%';\n\t\t}\n\t\n\t\t$.each( _fnGetUniqueThs( settings, headerCopy ), function ( i, el ) {\n\t\t\tidx = _fnVisibleToColumnIndex( settings, i );\n\t\t\tel.style.width = settings.aoColumns[idx].sWidth;\n\t\t} );\n\t\n\t\tif ( footer ) {\n\t\t\t_fnApplyToChildren( function(n) {\n\t\t\t\tn.style.width = \"\";\n\t\t\t}, footerSrcEls );\n\t\t}\n\t\n\t\t// Size the table as a whole\n\t\tsanityWidth = table.outerWidth();\n\t\tif ( scrollX === \"\" ) {\n\t\t\t// No x scrolling\n\t\t\ttableStyle.width = \"100%\";\n\t\n\t\t\t// IE7 will make the width of the table when 100% include the scrollbar\n\t\t\t// - which is shouldn't. When there is a scrollbar we need to take this\n\t\t\t// into account.\n\t\t\tif ( ie67 && (table.find('tbody').height() > divBodyEl.offsetHeight ||\n\t\t\t\tdivBody.css('overflow-y') == \"scroll\")\n\t\t\t) {\n\t\t\t\ttableStyle.width = _fnStringToCss( table.outerWidth() - barWidth);\n\t\t\t}\n\t\n\t\t\t// Recalculate the sanity width\n\t\t\tsanityWidth = table.outerWidth();\n\t\t}\n\t\telse if ( scrollXInner !== \"\" ) {\n\t\t\t// legacy x scroll inner has been given - use it\n\t\t\ttableStyle.width = _fnStringToCss(scrollXInner);\n\t\n\t\t\t// Recalculate the sanity width\n\t\t\tsanityWidth = table.outerWidth();\n\t\t}\n\t\n\t\t// Hidden header should have zero height, so remove padding and borders. Then\n\t\t// set the width based on the real headers\n\t\n\t\t// Apply all styles in one pass\n\t\t_fnApplyToChildren( zeroOut, headerSrcEls );\n\t\n\t\t// Read all widths in next pass\n\t\t_fnApplyToChildren( function(nSizer) {\n\t\t\theaderContent.push( nSizer.innerHTML );\n\t\t\theaderWidths.push( _fnStringToCss( $(nSizer).css('width') ) );\n\t\t}, headerSrcEls );\n\t\n\t\t// Apply all widths in final pass\n\t\t_fnApplyToChildren( function(nToSize, i) {\n\t\t\t// Only apply widths to the DataTables detected header cells - this\n\t\t\t// prevents complex headers from having contradictory sizes applied\n\t\t\tif ( $.inArray( nToSize, dtHeaderCells ) !== -1 ) {\n\t\t\t\tnToSize.style.width = headerWidths[i];\n\t\t\t}\n\t\t}, headerTrgEls );\n\t\n\t\t$(headerSrcEls).height(0);\n\t\n\t\t/* Same again with the footer if we have one */\n\t\tif ( footer )\n\t\t{\n\t\t\t_fnApplyToChildren( zeroOut, footerSrcEls );\n\t\n\t\t\t_fnApplyToChildren( function(nSizer) {\n\t\t\t\tfooterContent.push( nSizer.innerHTML );\n\t\t\t\tfooterWidths.push( _fnStringToCss( $(nSizer).css('width') ) );\n\t\t\t}, footerSrcEls );\n\t\n\t\t\t_fnApplyToChildren( function(nToSize, i) {\n\t\t\t\tnToSize.style.width = footerWidths[i];\n\t\t\t}, footerTrgEls );\n\t\n\t\t\t$(footerSrcEls).height(0);\n\t\t}\n\t\n\t\n\t\t/*\n\t\t * 3. Apply the measurements\n\t\t */\n\t\n\t\t// \"Hide\" the header and footer that we used for the sizing. We need to keep\n\t\t// the content of the cell so that the width applied to the header and body\n\t\t// both match, but we want to hide it completely. We want to also fix their\n\t\t// width to what they currently are\n\t\t_fnApplyToChildren( function(nSizer, i) {\n\t\t\tnSizer.innerHTML = '<div class=\"dataTables_sizing\">'+headerContent[i]+'</div>';\n\t\t\tnSizer.childNodes[0].style.height = \"0\";\n\t\t\tnSizer.childNodes[0].style.overflow = \"hidden\";\n\t\t\tnSizer.style.width = headerWidths[i];\n\t\t}, headerSrcEls );\n\t\n\t\tif ( footer )\n\t\t{\n\t\t\t_fnApplyToChildren( function(nSizer, i) {\n\t\t\t\tnSizer.innerHTML = '<div class=\"dataTables_sizing\">'+footerContent[i]+'</div>';\n\t\t\t\tnSizer.childNodes[0].style.height = \"0\";\n\t\t\t\tnSizer.childNodes[0].style.overflow = \"hidden\";\n\t\t\t\tnSizer.style.width = footerWidths[i];\n\t\t\t}, footerSrcEls );\n\t\t}\n\t\n\t\t// Sanity check that the table is of a sensible width. If not then we are going to get\n\t\t// misalignment - try to prevent this by not allowing the table to shrink below its min width\n\t\tif ( table.outerWidth() < sanityWidth )\n\t\t{\n\t\t\t// The min width depends upon if we have a vertical scrollbar visible or not */\n\t\t\tcorrection = ((divBodyEl.scrollHeight > divBodyEl.offsetHeight ||\n\t\t\t\tdivBody.css('overflow-y') == \"scroll\")) ?\n\t\t\t\t\tsanityWidth+barWidth :\n\t\t\t\t\tsanityWidth;\n\t\n\t\t\t// IE6/7 are a law unto themselves...\n\t\t\tif ( ie67 && (divBodyEl.scrollHeight >\n\t\t\t\tdivBodyEl.offsetHeight || divBody.css('overflow-y') == \"scroll\")\n\t\t\t) {\n\t\t\t\ttableStyle.width = _fnStringToCss( correction-barWidth );\n\t\t\t}\n\t\n\t\t\t// And give the user a warning that we've stopped the table getting too small\n\t\t\tif ( scrollX === \"\" || scrollXInner !== \"\" ) {\n\t\t\t\t_fnLog( settings, 1, 'Possible column misalignment', 6 );\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcorrection = '100%';\n\t\t}\n\t\n\t\t// Apply to the container elements\n\t\tdivBodyStyle.width = _fnStringToCss( correction );\n\t\tdivHeaderStyle.width = _fnStringToCss( correction );\n\t\n\t\tif ( footer ) {\n\t\t\tsettings.nScrollFoot.style.width = _fnStringToCss( correction );\n\t\t}\n\t\n\t\n\t\t/*\n\t\t * 4. Clean up\n\t\t */\n\t\tif ( ! scrollY ) {\n\t\t\t/* IE7< puts a vertical scrollbar in place (when it shouldn't be) due to subtracting\n\t\t\t * the scrollbar height from the visible display, rather than adding it on. We need to\n\t\t\t * set the height in order to sort this. Don't want to do it in any other browsers.\n\t\t\t */\n\t\t\tif ( ie67 ) {\n\t\t\t\tdivBodyStyle.height = _fnStringToCss( tableEl.offsetHeight+barWidth );\n\t\t\t}\n\t\t}\n\t\n\t\t/* Finally set the width's of the header and footer tables */\n\t\tvar iOuterWidth = table.outerWidth();\n\t\tdivHeaderTable[0].style.width = _fnStringToCss( iOuterWidth );\n\t\tdivHeaderInnerStyle.width = _fnStringToCss( iOuterWidth );\n\t\n\t\t// Figure out if there are scrollbar present - if so then we need a the header and footer to\n\t\t// provide a bit more space to allow \"overflow\" scrolling (i.e. past the scrollbar)\n\t\tvar bScrolling = table.height() > divBodyEl.clientHeight || divBody.css('overflow-y') == \"scroll\";\n\t\tvar padding = 'padding' + (browser.bScrollbarLeft ? 'Left' : 'Right' );\n\t\tdivHeaderInnerStyle[ padding ] = bScrolling ? barWidth+\"px\" : \"0px\";\n\t\n\t\tif ( footer ) {\n\t\t\tdivFooterTable[0].style.width = _fnStringToCss( iOuterWidth );\n\t\t\tdivFooterInner[0].style.width = _fnStringToCss( iOuterWidth );\n\t\t\tdivFooterInner[0].style[padding] = bScrolling ? barWidth+\"px\" : \"0px\";\n\t\t}\n\t\n\t\t// Correct DOM ordering for colgroup - comes before the thead\n\t\ttable.children('colgroup').insertBefore( table.children('thead') );\n\t\n\t\t/* Adjust the position of the header in case we loose the y-scrollbar */\n\t\tdivBody.trigger('scroll');\n\t\n\t\t// If sorting or filtering has occurred, jump the scrolling back to the top\n\t\t// only if we aren't holding the position\n\t\tif ( (settings.bSorted || settings.bFiltered) && ! settings._drawHold ) {\n\t\t\tdivBodyEl.scrollTop = 0;\n\t\t}\n\t}\n\t\n\t\n\t\n\t/**\n\t * Apply a given function to the display child nodes of an element array (typically\n\t * TD children of TR rows\n\t *  @param {function} fn Method to apply to the objects\n\t *  @param array {nodes} an1 List of elements to look through for display children\n\t *  @param array {nodes} an2 Another list (identical structure to the first) - optional\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnApplyToChildren( fn, an1, an2 )\n\t{\n\t\tvar index=0, i=0, iLen=an1.length;\n\t\tvar nNode1, nNode2;\n\t\n\t\twhile ( i < iLen ) {\n\t\t\tnNode1 = an1[i].firstChild;\n\t\t\tnNode2 = an2 ? an2[i].firstChild : null;\n\t\n\t\t\twhile ( nNode1 ) {\n\t\t\t\tif ( nNode1.nodeType === 1 ) {\n\t\t\t\t\tif ( an2 ) {\n\t\t\t\t\t\tfn( nNode1, nNode2, index );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tfn( nNode1, index );\n\t\t\t\t\t}\n\t\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\n\t\t\t\tnNode1 = nNode1.nextSibling;\n\t\t\t\tnNode2 = an2 ? nNode2.nextSibling : null;\n\t\t\t}\n\t\n\t\t\ti++;\n\t\t}\n\t}\n\t\n\t\n\t\n\tvar __re_html_remove = /<.*?>/g;\n\t\n\t\n\t/**\n\t * Calculate the width of columns for the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnCalculateColumnWidths ( oSettings )\n\t{\n\t\tvar\n\t\t\ttable = oSettings.nTable,\n\t\t\tcolumns = oSettings.aoColumns,\n\t\t\tscroll = oSettings.oScroll,\n\t\t\tscrollY = scroll.sY,\n\t\t\tscrollX = scroll.sX,\n\t\t\tscrollXInner = scroll.sXInner,\n\t\t\tcolumnCount = columns.length,\n\t\t\tvisibleColumns = _fnGetColumns( oSettings, 'bVisible' ),\n\t\t\theaderCells = $('th', oSettings.nTHead),\n\t\t\ttableWidthAttr = table.getAttribute('width'), // from DOM element\n\t\t\ttableContainer = table.parentNode,\n\t\t\tuserInputs = false,\n\t\t\ti, column, columnIdx, width, outerWidth,\n\t\t\tbrowser = oSettings.oBrowser,\n\t\t\tie67 = browser.bScrollOversize;\n\t\n\t\tvar styleWidth = table.style.width;\n\t\tif ( styleWidth && styleWidth.indexOf('%') !== -1 ) {\n\t\t\ttableWidthAttr = styleWidth;\n\t\t}\n\t\n\t\t/* Convert any user input sizes into pixel sizes */\n\t\tfor ( i=0 ; i<visibleColumns.length ; i++ ) {\n\t\t\tcolumn = columns[ visibleColumns[i] ];\n\t\n\t\t\tif ( column.sWidth !== null ) {\n\t\t\t\tcolumn.sWidth = _fnConvertToWidth( column.sWidthOrig, tableContainer );\n\t\n\t\t\t\tuserInputs = true;\n\t\t\t}\n\t\t}\n\t\n\t\t/* If the number of columns in the DOM equals the number that we have to\n\t\t * process in DataTables, then we can use the offsets that are created by\n\t\t * the web- browser. No custom sizes can be set in order for this to happen,\n\t\t * nor scrolling used\n\t\t */\n\t\tif ( ie67 || ! userInputs && ! scrollX && ! scrollY &&\n\t\t     columnCount == _fnVisbleColumns( oSettings ) &&\n\t\t     columnCount == headerCells.length\n\t\t) {\n\t\t\tfor ( i=0 ; i<columnCount ; i++ ) {\n\t\t\t\tvar colIdx = _fnVisibleToColumnIndex( oSettings, i );\n\t\n\t\t\t\tif ( colIdx !== null ) {\n\t\t\t\t\tcolumns[ colIdx ].sWidth = _fnStringToCss( headerCells.eq(i).width() );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Otherwise construct a single row, worst case, table with the widest\n\t\t\t// node in the data, assign any user defined widths, then insert it into\n\t\t\t// the DOM and allow the browser to do all the hard work of calculating\n\t\t\t// table widths\n\t\t\tvar tmpTable = $(table).clone() // don't use cloneNode - IE8 will remove events on the main table\n\t\t\t\t.css( 'visibility', 'hidden' )\n\t\t\t\t.removeAttr( 'id' );\n\t\n\t\t\t// Clean up the table body\n\t\t\ttmpTable.find('tbody tr').remove();\n\t\t\tvar tr = $('<tr/>').appendTo( tmpTable.find('tbody') );\n\t\n\t\t\t// Clone the table header and footer - we can't use the header / footer\n\t\t\t// from the cloned table, since if scrolling is active, the table's\n\t\t\t// real header and footer are contained in different table tags\n\t\t\ttmpTable.find('thead, tfoot').remove();\n\t\t\ttmpTable\n\t\t\t\t.append( $(oSettings.nTHead).clone() )\n\t\t\t\t.append( $(oSettings.nTFoot).clone() );\n\t\n\t\t\t// Remove any assigned widths from the footer (from scrolling)\n\t\t\ttmpTable.find('tfoot th, tfoot td').css('width', '');\n\t\n\t\t\t// Apply custom sizing to the cloned header\n\t\t\theaderCells = _fnGetUniqueThs( oSettings, tmpTable.find('thead')[0] );\n\t\n\t\t\tfor ( i=0 ; i<visibleColumns.length ; i++ ) {\n\t\t\t\tcolumn = columns[ visibleColumns[i] ];\n\t\n\t\t\t\theaderCells[i].style.width = column.sWidthOrig !== null && column.sWidthOrig !== '' ?\n\t\t\t\t\t_fnStringToCss( column.sWidthOrig ) :\n\t\t\t\t\t'';\n\t\n\t\t\t\t// For scrollX we need to force the column width otherwise the\n\t\t\t\t// browser will collapse it. If this width is smaller than the\n\t\t\t\t// width the column requires, then it will have no effect\n\t\t\t\tif ( column.sWidthOrig && scrollX ) {\n\t\t\t\t\t$( headerCells[i] ).append( $('<div/>').css( {\n\t\t\t\t\t\twidth: column.sWidthOrig,\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tborder: 0,\n\t\t\t\t\t\theight: 1\n\t\t\t\t\t} ) );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// Find the widest cell for each column and put it into the table\n\t\t\tif ( oSettings.aoData.length ) {\n\t\t\t\tfor ( i=0 ; i<visibleColumns.length ; i++ ) {\n\t\t\t\t\tcolumnIdx = visibleColumns[i];\n\t\t\t\t\tcolumn = columns[ columnIdx ];\n\t\n\t\t\t\t\t$( _fnGetWidestNode( oSettings, columnIdx ) )\n\t\t\t\t\t\t.clone( false )\n\t\t\t\t\t\t.append( column.sContentPadding )\n\t\t\t\t\t\t.appendTo( tr );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// Tidy the temporary table - remove name attributes so there aren't\n\t\t\t// duplicated in the dom (radio elements for example)\n\t\t\t$('[name]', tmpTable).removeAttr('name');\n\t\n\t\t\t// Table has been built, attach to the document so we can work with it.\n\t\t\t// A holding element is used, positioned at the top of the container\n\t\t\t// with minimal height, so it has no effect on if the container scrolls\n\t\t\t// or not. Otherwise it might trigger scrolling when it actually isn't\n\t\t\t// needed\n\t\t\tvar holder = $('<div/>').css( scrollX || scrollY ?\n\t\t\t\t\t{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\theight: 1,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\toverflow: 'hidden'\n\t\t\t\t\t} :\n\t\t\t\t\t{}\n\t\t\t\t)\n\t\t\t\t.append( tmpTable )\n\t\t\t\t.appendTo( tableContainer );\n\t\n\t\t\t// When scrolling (X or Y) we want to set the width of the table as \n\t\t\t// appropriate. However, when not scrolling leave the table width as it\n\t\t\t// is. This results in slightly different, but I think correct behaviour\n\t\t\tif ( scrollX && scrollXInner ) {\n\t\t\t\ttmpTable.width( scrollXInner );\n\t\t\t}\n\t\t\telse if ( scrollX ) {\n\t\t\t\ttmpTable.css( 'width', 'auto' );\n\t\t\t\ttmpTable.removeAttr('width');\n\t\n\t\t\t\t// If there is no width attribute or style, then allow the table to\n\t\t\t\t// collapse\n\t\t\t\tif ( tmpTable.width() < tableContainer.clientWidth && tableWidthAttr ) {\n\t\t\t\t\ttmpTable.width( tableContainer.clientWidth );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( scrollY ) {\n\t\t\t\ttmpTable.width( tableContainer.clientWidth );\n\t\t\t}\n\t\t\telse if ( tableWidthAttr ) {\n\t\t\t\ttmpTable.width( tableWidthAttr );\n\t\t\t}\n\t\n\t\t\t// Get the width of each column in the constructed table - we need to\n\t\t\t// know the inner width (so it can be assigned to the other table's\n\t\t\t// cells) and the outer width so we can calculate the full width of the\n\t\t\t// table. This is safe since DataTables requires a unique cell for each\n\t\t\t// column, but if ever a header can span multiple columns, this will\n\t\t\t// need to be modified.\n\t\t\tvar total = 0;\n\t\t\tfor ( i=0 ; i<visibleColumns.length ; i++ ) {\n\t\t\t\tvar cell = $(headerCells[i]);\n\t\t\t\tvar border = cell.outerWidth() - cell.width();\n\t\n\t\t\t\t// Use getBounding... where possible (not IE8-) because it can give\n\t\t\t\t// sub-pixel accuracy, which we then want to round up!\n\t\t\t\tvar bounding = browser.bBounding ?\n\t\t\t\t\tMath.ceil( headerCells[i].getBoundingClientRect().width ) :\n\t\t\t\t\tcell.outerWidth();\n\t\n\t\t\t\t// Total is tracked to remove any sub-pixel errors as the outerWidth\n\t\t\t\t// of the table might not equal the total given here (IE!).\n\t\t\t\ttotal += bounding;\n\t\n\t\t\t\t// Width for each column to use\n\t\t\t\tcolumns[ visibleColumns[i] ].sWidth = _fnStringToCss( bounding - border );\n\t\t\t}\n\t\n\t\t\ttable.style.width = _fnStringToCss( total );\n\t\n\t\t\t// Finished with the table - ditch it\n\t\t\tholder.remove();\n\t\t}\n\t\n\t\t// If there is a width attr, we want to attach an event listener which\n\t\t// allows the table sizing to automatically adjust when the window is\n\t\t// resized. Use the width attr rather than CSS, since we can't know if the\n\t\t// CSS is a relative value or absolute - DOM read is always px.\n\t\tif ( tableWidthAttr ) {\n\t\t\ttable.style.width = _fnStringToCss( tableWidthAttr );\n\t\t}\n\t\n\t\tif ( (tableWidthAttr || scrollX) && ! oSettings._reszEvt ) {\n\t\t\tvar bindResize = function () {\n\t\t\t\t$(window).on('resize.DT-'+oSettings.sInstance, _fnThrottle( function () {\n\t\t\t\t\t_fnAdjustColumnSizing( oSettings );\n\t\t\t\t} ) );\n\t\t\t};\n\t\n\t\t\t// IE6/7 will crash if we bind a resize event handler on page load.\n\t\t\t// To be removed in 1.11 which drops IE6/7 support\n\t\t\tif ( ie67 ) {\n\t\t\t\tsetTimeout( bindResize, 1000 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbindResize();\n\t\t\t}\n\t\n\t\t\toSettings._reszEvt = true;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Throttle the calls to a function. Arguments and context are maintained for\n\t * the throttled function\n\t *  @param {function} fn Function to be called\n\t *  @param {int} [freq=200] call frequency in mS\n\t *  @returns {function} wrapped function\n\t *  @memberof DataTable#oApi\n\t */\n\tvar _fnThrottle = DataTable.util.throttle;\n\t\n\t\n\t/**\n\t * Convert a CSS unit width to pixels (e.g. 2em)\n\t *  @param {string} width width to be converted\n\t *  @param {node} parent parent to get the with for (required for relative widths) - optional\n\t *  @returns {int} width in pixels\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnConvertToWidth ( width, parent )\n\t{\n\t\tif ( ! width ) {\n\t\t\treturn 0;\n\t\t}\n\t\n\t\tvar n = $('<div/>')\n\t\t\t.css( 'width', _fnStringToCss( width ) )\n\t\t\t.appendTo( parent || document.body );\n\t\n\t\tvar val = n[0].offsetWidth;\n\t\tn.remove();\n\t\n\t\treturn val;\n\t}\n\t\n\t\n\t/**\n\t * Get the widest node\n\t *  @param {object} settings dataTables settings object\n\t *  @param {int} colIdx column of interest\n\t *  @returns {node} widest table node\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetWidestNode( settings, colIdx )\n\t{\n\t\tvar idx = _fnGetMaxLenString( settings, colIdx );\n\t\tif ( idx < 0 ) {\n\t\t\treturn null;\n\t\t}\n\t\n\t\tvar data = settings.aoData[ idx ];\n\t\treturn ! data.nTr ? // Might not have been created when deferred rendering\n\t\t\t$('<td/>').html( _fnGetCellData( settings, idx, colIdx, 'display' ) )[0] :\n\t\t\tdata.anCells[ colIdx ];\n\t}\n\t\n\t\n\t/**\n\t * Get the maximum strlen for each data column\n\t *  @param {object} settings dataTables settings object\n\t *  @param {int} colIdx column of interest\n\t *  @returns {string} max string length for each column\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnGetMaxLenString( settings, colIdx )\n\t{\n\t\tvar s, max=-1, maxIdx = -1;\n\t\n\t\tfor ( var i=0, ien=settings.aoData.length ; i<ien ; i++ ) {\n\t\t\ts = _fnGetCellData( settings, i, colIdx, 'display' )+'';\n\t\t\ts = s.replace( __re_html_remove, '' );\n\t\t\ts = s.replace( /&nbsp;/g, ' ' );\n\t\n\t\t\tif ( s.length > max ) {\n\t\t\t\tmax = s.length;\n\t\t\t\tmaxIdx = i;\n\t\t\t}\n\t\t}\n\t\n\t\treturn maxIdx;\n\t}\n\t\n\t\n\t/**\n\t * Append a CSS unit (only if required) to a string\n\t *  @param {string} value to css-ify\n\t *  @returns {string} value with css unit\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnStringToCss( s )\n\t{\n\t\tif ( s === null ) {\n\t\t\treturn '0px';\n\t\t}\n\t\n\t\tif ( typeof s == 'number' ) {\n\t\t\treturn s < 0 ?\n\t\t\t\t'0px' :\n\t\t\t\ts+'px';\n\t\t}\n\t\n\t\t// Check it has a unit character already\n\t\treturn s.match(/\\d$/) ?\n\t\t\ts+'px' :\n\t\t\ts;\n\t}\n\t\n\t\n\t\n\tfunction _fnSortFlatten ( settings )\n\t{\n\t\tvar\n\t\t\ti, iLen, k, kLen,\n\t\t\taSort = [],\n\t\t\taiOrig = [],\n\t\t\taoColumns = settings.aoColumns,\n\t\t\taDataSort, iCol, sType, srcCol,\n\t\t\tfixed = settings.aaSortingFixed,\n\t\t\tfixedObj = $.isPlainObject( fixed ),\n\t\t\tnestedSort = [],\n\t\t\tadd = function ( a ) {\n\t\t\t\tif ( a.length && ! Array.isArray( a[0] ) ) {\n\t\t\t\t\t// 1D array\n\t\t\t\t\tnestedSort.push( a );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// 2D array\n\t\t\t\t\t$.merge( nestedSort, a );\n\t\t\t\t}\n\t\t\t};\n\t\n\t\t// Build the sort array, with pre-fix and post-fix options if they have been\n\t\t// specified\n\t\tif ( Array.isArray( fixed ) ) {\n\t\t\tadd( fixed );\n\t\t}\n\t\n\t\tif ( fixedObj && fixed.pre ) {\n\t\t\tadd( fixed.pre );\n\t\t}\n\t\n\t\tadd( settings.aaSorting );\n\t\n\t\tif (fixedObj && fixed.post ) {\n\t\t\tadd( fixed.post );\n\t\t}\n\t\n\t\tfor ( i=0 ; i<nestedSort.length ; i++ )\n\t\t{\n\t\t\tsrcCol = nestedSort[i][0];\n\t\t\taDataSort = aoColumns[ srcCol ].aDataSort;\n\t\n\t\t\tfor ( k=0, kLen=aDataSort.length ; k<kLen ; k++ )\n\t\t\t{\n\t\t\t\tiCol = aDataSort[k];\n\t\t\t\tsType = aoColumns[ iCol ].sType || 'string';\n\t\n\t\t\t\tif ( nestedSort[i]._idx === undefined ) {\n\t\t\t\t\tnestedSort[i]._idx = $.inArray( nestedSort[i][1], aoColumns[iCol].asSorting );\n\t\t\t\t}\n\t\n\t\t\t\taSort.push( {\n\t\t\t\t\tsrc:       srcCol,\n\t\t\t\t\tcol:       iCol,\n\t\t\t\t\tdir:       nestedSort[i][1],\n\t\t\t\t\tindex:     nestedSort[i]._idx,\n\t\t\t\t\ttype:      sType,\n\t\t\t\t\tformatter: DataTable.ext.type.order[ sType+\"-pre\" ]\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\n\t\treturn aSort;\n\t}\n\t\n\t/**\n\t * Change the order of the table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t *  @todo This really needs split up!\n\t */\n\tfunction _fnSort ( oSettings )\n\t{\n\t\tvar\n\t\t\ti, ien, iLen, j, jLen, k, kLen,\n\t\t\tsDataType, nTh,\n\t\t\taiOrig = [],\n\t\t\toExtSort = DataTable.ext.type.order,\n\t\t\taoData = oSettings.aoData,\n\t\t\taoColumns = oSettings.aoColumns,\n\t\t\taDataSort, data, iCol, sType, oSort,\n\t\t\tformatters = 0,\n\t\t\tsortCol,\n\t\t\tdisplayMaster = oSettings.aiDisplayMaster,\n\t\t\taSort;\n\t\n\t\t// Resolve any column types that are unknown due to addition or invalidation\n\t\t// @todo Can this be moved into a 'data-ready' handler which is called when\n\t\t//   data is going to be used in the table?\n\t\t_fnColumnTypes( oSettings );\n\t\n\t\taSort = _fnSortFlatten( oSettings );\n\t\n\t\tfor ( i=0, ien=aSort.length ; i<ien ; i++ ) {\n\t\t\tsortCol = aSort[i];\n\t\n\t\t\t// Track if we can use the fast sort algorithm\n\t\t\tif ( sortCol.formatter ) {\n\t\t\t\tformatters++;\n\t\t\t}\n\t\n\t\t\t// Load the data needed for the sort, for each cell\n\t\t\t_fnSortData( oSettings, sortCol.col );\n\t\t}\n\t\n\t\t/* No sorting required if server-side or no sorting array */\n\t\tif ( _fnDataSource( oSettings ) != 'ssp' && aSort.length !== 0 )\n\t\t{\n\t\t\t// Create a value - key array of the current row positions such that we can use their\n\t\t\t// current position during the sort, if values match, in order to perform stable sorting\n\t\t\tfor ( i=0, iLen=displayMaster.length ; i<iLen ; i++ ) {\n\t\t\t\taiOrig[ displayMaster[i] ] = i;\n\t\t\t}\n\t\n\t\t\t/* Do the sort - here we want multi-column sorting based on a given data source (column)\n\t\t\t * and sorting function (from oSort) in a certain direction. It's reasonably complex to\n\t\t\t * follow on it's own, but this is what we want (example two column sorting):\n\t\t\t *  fnLocalSorting = function(a,b){\n\t\t\t *    var iTest;\n\t\t\t *    iTest = oSort['string-asc']('data11', 'data12');\n\t\t\t *      if (iTest !== 0)\n\t\t\t *        return iTest;\n\t\t\t *    iTest = oSort['numeric-desc']('data21', 'data22');\n\t\t\t *    if (iTest !== 0)\n\t\t\t *      return iTest;\n\t\t\t *    return oSort['numeric-asc']( aiOrig[a], aiOrig[b] );\n\t\t\t *  }\n\t\t\t * Basically we have a test for each sorting column, if the data in that column is equal,\n\t\t\t * test the next column. If all columns match, then we use a numeric sort on the row\n\t\t\t * positions in the original data array to provide a stable sort.\n\t\t\t *\n\t\t\t * Note - I know it seems excessive to have two sorting methods, but the first is around\n\t\t\t * 15% faster, so the second is only maintained for backwards compatibility with sorting\n\t\t\t * methods which do not have a pre-sort formatting function.\n\t\t\t */\n\t\t\tif ( formatters === aSort.length ) {\n\t\t\t\t// All sort types have formatting functions\n\t\t\t\tdisplayMaster.sort( function ( a, b ) {\n\t\t\t\t\tvar\n\t\t\t\t\t\tx, y, k, test, sort,\n\t\t\t\t\t\tlen=aSort.length,\n\t\t\t\t\t\tdataA = aoData[a]._aSortData,\n\t\t\t\t\t\tdataB = aoData[b]._aSortData;\n\t\n\t\t\t\t\tfor ( k=0 ; k<len ; k++ ) {\n\t\t\t\t\t\tsort = aSort[k];\n\t\n\t\t\t\t\t\tx = dataA[ sort.col ];\n\t\t\t\t\t\ty = dataB[ sort.col ];\n\t\n\t\t\t\t\t\ttest = x<y ? -1 : x>y ? 1 : 0;\n\t\t\t\t\t\tif ( test !== 0 ) {\n\t\t\t\t\t\t\treturn sort.dir === 'asc' ? test : -test;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tx = aiOrig[a];\n\t\t\t\t\ty = aiOrig[b];\n\t\t\t\t\treturn x<y ? -1 : x>y ? 1 : 0;\n\t\t\t\t} );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Depreciated - remove in 1.11 (providing a plug-in option)\n\t\t\t\t// Not all sort types have formatting methods, so we have to call their sorting\n\t\t\t\t// methods.\n\t\t\t\tdisplayMaster.sort( function ( a, b ) {\n\t\t\t\t\tvar\n\t\t\t\t\t\tx, y, k, l, test, sort, fn,\n\t\t\t\t\t\tlen=aSort.length,\n\t\t\t\t\t\tdataA = aoData[a]._aSortData,\n\t\t\t\t\t\tdataB = aoData[b]._aSortData;\n\t\n\t\t\t\t\tfor ( k=0 ; k<len ; k++ ) {\n\t\t\t\t\t\tsort = aSort[k];\n\t\n\t\t\t\t\t\tx = dataA[ sort.col ];\n\t\t\t\t\t\ty = dataB[ sort.col ];\n\t\n\t\t\t\t\t\tfn = oExtSort[ sort.type+\"-\"+sort.dir ] || oExtSort[ \"string-\"+sort.dir ];\n\t\t\t\t\t\ttest = fn( x, y );\n\t\t\t\t\t\tif ( test !== 0 ) {\n\t\t\t\t\t\t\treturn test;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tx = aiOrig[a];\n\t\t\t\t\ty = aiOrig[b];\n\t\t\t\t\treturn x<y ? -1 : x>y ? 1 : 0;\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\n\t\t/* Tell the draw function that we have sorted the data */\n\t\toSettings.bSorted = true;\n\t}\n\t\n\t\n\tfunction _fnSortAria ( settings )\n\t{\n\t\tvar label;\n\t\tvar nextSort;\n\t\tvar columns = settings.aoColumns;\n\t\tvar aSort = _fnSortFlatten( settings );\n\t\tvar oAria = settings.oLanguage.oAria;\n\t\n\t\t// ARIA attributes - need to loop all columns, to update all (removing old\n\t\t// attributes as needed)\n\t\tfor ( var i=0, iLen=columns.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tvar col = columns[i];\n\t\t\tvar asSorting = col.asSorting;\n\t\t\tvar sTitle = col.sTitle.replace( /<.*?>/g, \"\" );\n\t\t\tvar th = col.nTh;\n\t\n\t\t\t// IE7 is throwing an error when setting these properties with jQuery's\n\t\t\t// attr() and removeAttr() methods...\n\t\t\tth.removeAttribute('aria-sort');\n\t\n\t\t\t/* In ARIA only the first sorting column can be marked as sorting - no multi-sort option */\n\t\t\tif ( col.bSortable ) {\n\t\t\t\tif ( aSort.length > 0 && aSort[0].col == i ) {\n\t\t\t\t\tth.setAttribute('aria-sort', aSort[0].dir==\"asc\" ? \"ascending\" : \"descending\" );\n\t\t\t\t\tnextSort = asSorting[ aSort[0].index+1 ] || asSorting[0];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnextSort = asSorting[0];\n\t\t\t\t}\n\t\n\t\t\t\tlabel = sTitle + ( nextSort === \"asc\" ?\n\t\t\t\t\toAria.sSortAscending :\n\t\t\t\t\toAria.sSortDescending\n\t\t\t\t);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlabel = sTitle;\n\t\t\t}\n\t\n\t\t\tth.setAttribute('aria-label', label);\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Function to run on user sort request\n\t *  @param {object} settings dataTables settings object\n\t *  @param {node} attachTo node to attach the handler to\n\t *  @param {int} colIdx column sorting index\n\t *  @param {boolean} [append=false] Append the requested sort to the existing\n\t *    sort if true (i.e. multi-column sort)\n\t *  @param {function} [callback] callback function\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSortListener ( settings, colIdx, append, callback )\n\t{\n\t\tvar col = settings.aoColumns[ colIdx ];\n\t\tvar sorting = settings.aaSorting;\n\t\tvar asSorting = col.asSorting;\n\t\tvar nextSortIdx;\n\t\tvar next = function ( a, overflow ) {\n\t\t\tvar idx = a._idx;\n\t\t\tif ( idx === undefined ) {\n\t\t\t\tidx = $.inArray( a[1], asSorting );\n\t\t\t}\n\t\n\t\t\treturn idx+1 < asSorting.length ?\n\t\t\t\tidx+1 :\n\t\t\t\toverflow ?\n\t\t\t\t\tnull :\n\t\t\t\t\t0;\n\t\t};\n\t\n\t\t// Convert to 2D array if needed\n\t\tif ( typeof sorting[0] === 'number' ) {\n\t\t\tsorting = settings.aaSorting = [ sorting ];\n\t\t}\n\t\n\t\t// If appending the sort then we are multi-column sorting\n\t\tif ( append && settings.oFeatures.bSortMulti ) {\n\t\t\t// Are we already doing some kind of sort on this column?\n\t\t\tvar sortIdx = $.inArray( colIdx, _pluck(sorting, '0') );\n\t\n\t\t\tif ( sortIdx !== -1 ) {\n\t\t\t\t// Yes, modify the sort\n\t\t\t\tnextSortIdx = next( sorting[sortIdx], true );\n\t\n\t\t\t\tif ( nextSortIdx === null && sorting.length === 1 ) {\n\t\t\t\t\tnextSortIdx = 0; // can't remove sorting completely\n\t\t\t\t}\n\t\n\t\t\t\tif ( nextSortIdx === null ) {\n\t\t\t\t\tsorting.splice( sortIdx, 1 );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tsorting[sortIdx][1] = asSorting[ nextSortIdx ];\n\t\t\t\t\tsorting[sortIdx]._idx = nextSortIdx;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// No sort on this column yet\n\t\t\t\tsorting.push( [ colIdx, asSorting[0], 0 ] );\n\t\t\t\tsorting[sorting.length-1]._idx = 0;\n\t\t\t}\n\t\t}\n\t\telse if ( sorting.length && sorting[0][0] == colIdx ) {\n\t\t\t// Single column - already sorting on this column, modify the sort\n\t\t\tnextSortIdx = next( sorting[0] );\n\t\n\t\t\tsorting.length = 1;\n\t\t\tsorting[0][1] = asSorting[ nextSortIdx ];\n\t\t\tsorting[0]._idx = nextSortIdx;\n\t\t}\n\t\telse {\n\t\t\t// Single column - sort only on this column\n\t\t\tsorting.length = 0;\n\t\t\tsorting.push( [ colIdx, asSorting[0] ] );\n\t\t\tsorting[0]._idx = 0;\n\t\t}\n\t\n\t\t// Run the sort by calling a full redraw\n\t\t_fnReDraw( settings );\n\t\n\t\t// callback used for async user interaction\n\t\tif ( typeof callback == 'function' ) {\n\t\t\tcallback( settings );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Attach a sort handler (click) to a node\n\t *  @param {object} settings dataTables settings object\n\t *  @param {node} attachTo node to attach the handler to\n\t *  @param {int} colIdx column sorting index\n\t *  @param {function} [callback] callback function\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSortAttachListener ( settings, attachTo, colIdx, callback )\n\t{\n\t\tvar col = settings.aoColumns[ colIdx ];\n\t\n\t\t_fnBindAction( attachTo, {}, function (e) {\n\t\t\t/* If the column is not sortable - don't to anything */\n\t\t\tif ( col.bSortable === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// If processing is enabled use a timeout to allow the processing\n\t\t\t// display to be shown - otherwise to it synchronously\n\t\t\tif ( settings.oFeatures.bProcessing ) {\n\t\t\t\t_fnProcessingDisplay( settings, true );\n\t\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t_fnSortListener( settings, colIdx, e.shiftKey, callback );\n\t\n\t\t\t\t\t// In server-side processing, the draw callback will remove the\n\t\t\t\t\t// processing display\n\t\t\t\t\tif ( _fnDataSource( settings ) !== 'ssp' ) {\n\t\t\t\t\t\t_fnProcessingDisplay( settings, false );\n\t\t\t\t\t}\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_fnSortListener( settings, colIdx, e.shiftKey, callback );\n\t\t\t}\n\t\t} );\n\t}\n\t\n\t\n\t/**\n\t * Set the sorting classes on table's body, Note: it is safe to call this function\n\t * when bSort and bSortClasses are false\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSortingClasses( settings )\n\t{\n\t\tvar oldSort = settings.aLastSort;\n\t\tvar sortClass = settings.oClasses.sSortColumn;\n\t\tvar sort = _fnSortFlatten( settings );\n\t\tvar features = settings.oFeatures;\n\t\tvar i, ien, colIdx;\n\t\n\t\tif ( features.bSort && features.bSortClasses ) {\n\t\t\t// Remove old sorting classes\n\t\t\tfor ( i=0, ien=oldSort.length ; i<ien ; i++ ) {\n\t\t\t\tcolIdx = oldSort[i].src;\n\t\n\t\t\t\t// Remove column sorting\n\t\t\t\t$( _pluck( settings.aoData, 'anCells', colIdx ) )\n\t\t\t\t\t.removeClass( sortClass + (i<2 ? i+1 : 3) );\n\t\t\t}\n\t\n\t\t\t// Add new column sorting\n\t\t\tfor ( i=0, ien=sort.length ; i<ien ; i++ ) {\n\t\t\t\tcolIdx = sort[i].src;\n\t\n\t\t\t\t$( _pluck( settings.aoData, 'anCells', colIdx ) )\n\t\t\t\t\t.addClass( sortClass + (i<2 ? i+1 : 3) );\n\t\t\t}\n\t\t}\n\t\n\t\tsettings.aLastSort = sort;\n\t}\n\t\n\t\n\t// Get the data to sort a column, be it from cache, fresh (populating the\n\t// cache), or from a sort formatter\n\tfunction _fnSortData( settings, idx )\n\t{\n\t\t// Custom sorting function - provided by the sort data type\n\t\tvar column = settings.aoColumns[ idx ];\n\t\tvar customSort = DataTable.ext.order[ column.sSortDataType ];\n\t\tvar customData;\n\t\n\t\tif ( customSort ) {\n\t\t\tcustomData = customSort.call( settings.oInstance, settings, idx,\n\t\t\t\t_fnColumnIndexToVisible( settings, idx )\n\t\t\t);\n\t\t}\n\t\n\t\t// Use / populate cache\n\t\tvar row, cellData;\n\t\tvar formatter = DataTable.ext.type.order[ column.sType+\"-pre\" ];\n\t\n\t\tfor ( var i=0, ien=settings.aoData.length ; i<ien ; i++ ) {\n\t\t\trow = settings.aoData[i];\n\t\n\t\t\tif ( ! row._aSortData ) {\n\t\t\t\trow._aSortData = [];\n\t\t\t}\n\t\n\t\t\tif ( ! row._aSortData[idx] || customSort ) {\n\t\t\t\tcellData = customSort ?\n\t\t\t\t\tcustomData[i] : // If there was a custom sort function, use data from there\n\t\t\t\t\t_fnGetCellData( settings, i, idx, 'sort' );\n\t\n\t\t\t\trow._aSortData[ idx ] = formatter ?\n\t\t\t\t\tformatter( cellData ) :\n\t\t\t\t\tcellData;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t\n\t/**\n\t * Save the state of a table\n\t *  @param {object} oSettings dataTables settings object\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSaveState ( settings )\n\t{\n\t\tif ( !settings.oFeatures.bStateSave || settings.bDestroying )\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\n\t\t/* Store the interesting variables */\n\t\tvar state = {\n\t\t\ttime:    +new Date(),\n\t\t\tstart:   settings._iDisplayStart,\n\t\t\tlength:  settings._iDisplayLength,\n\t\t\torder:   $.extend( true, [], settings.aaSorting ),\n\t\t\tsearch:  _fnSearchToCamel( settings.oPreviousSearch ),\n\t\t\tcolumns: $.map( settings.aoColumns, function ( col, i ) {\n\t\t\t\treturn {\n\t\t\t\t\tvisible: col.bVisible,\n\t\t\t\t\tsearch: _fnSearchToCamel( settings.aoPreSearchCols[i] )\n\t\t\t\t};\n\t\t\t} )\n\t\t};\n\t\n\t\t_fnCallbackFire( settings, \"aoStateSaveParams\", 'stateSaveParams', [settings, state] );\n\t\n\t\tsettings.oSavedState = state;\n\t\tsettings.fnStateSaveCallback.call( settings.oInstance, settings, state );\n\t}\n\t\n\t\n\t/**\n\t * Attempt to load a saved table state\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {object} oInit DataTables init object so we can override settings\n\t *  @param {function} callback Callback to execute when the state has been loaded\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnLoadState ( settings, oInit, callback )\n\t{\n\t\tvar i, ien;\n\t\tvar columns = settings.aoColumns;\n\t\tvar loaded = function ( s ) {\n\t\t\tif ( ! s || ! s.time ) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Allow custom and plug-in manipulation functions to alter the saved data set and\n\t\t\t// cancelling of loading by returning false\n\t\t\tvar abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );\n\t\t\tif ( $.inArray( false, abStateLoad ) !== -1 ) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Reject old data\n\t\t\tvar duration = settings.iStateDuration;\n\t\t\tif ( duration > 0 && s.time < +new Date() - (duration*1000) ) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Number of columns have changed - all bets are off, no restore of settings\n\t\t\tif ( s.columns && columns.length !== s.columns.length ) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Store the saved state so it might be accessed at any time\n\t\t\tsettings.oLoadedState = $.extend( true, {}, s );\n\t\n\t\t\t// Restore key features - todo - for 1.11 this needs to be done by\n\t\t\t// subscribed events\n\t\t\tif ( s.start !== undefined ) {\n\t\t\t\tsettings._iDisplayStart    = s.start;\n\t\t\t\tsettings.iInitDisplayStart = s.start;\n\t\t\t}\n\t\t\tif ( s.length !== undefined ) {\n\t\t\t\tsettings._iDisplayLength   = s.length;\n\t\t\t}\n\t\n\t\t\t// Order\n\t\t\tif ( s.order !== undefined ) {\n\t\t\t\tsettings.aaSorting = [];\n\t\t\t\t$.each( s.order, function ( i, col ) {\n\t\t\t\t\tsettings.aaSorting.push( col[0] >= columns.length ?\n\t\t\t\t\t\t[ 0, col[1] ] :\n\t\t\t\t\t\tcol\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\n\t\t\t// Search\n\t\t\tif ( s.search !== undefined ) {\n\t\t\t\t$.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );\n\t\t\t}\n\t\n\t\t\t// Columns\n\t\t\t//\n\t\t\tif ( s.columns ) {\n\t\t\t\tfor ( i=0, ien=s.columns.length ; i<ien ; i++ ) {\n\t\t\t\t\tvar col = s.columns[i];\n\t\n\t\t\t\t\t// Visibility\n\t\t\t\t\tif ( col.visible !== undefined ) {\n\t\t\t\t\t\tcolumns[i].bVisible = col.visible;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Search\n\t\t\t\t\tif ( col.search !== undefined ) {\n\t\t\t\t\t\t$.extend( settings.aoPreSearchCols[i], _fnSearchToHung( col.search ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );\n\t\t\tcallback();\n\t\t};\n\t\n\t\tif ( ! settings.oFeatures.bStateSave ) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );\n\t\n\t\tif ( state !== undefined ) {\n\t\t\tloaded( state );\n\t\t}\n\t\t// otherwise, wait for the loaded callback to be executed\n\t}\n\t\n\t\n\t/**\n\t * Return the settings object for a particular table\n\t *  @param {node} table table we are using as a dataTable\n\t *  @returns {object} Settings object - or null if not found\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnSettingsFromNode ( table )\n\t{\n\t\tvar settings = DataTable.settings;\n\t\tvar idx = $.inArray( table, _pluck( settings, 'nTable' ) );\n\t\n\t\treturn idx !== -1 ?\n\t\t\tsettings[ idx ] :\n\t\t\tnull;\n\t}\n\t\n\t\n\t/**\n\t * Log an error message\n\t *  @param {object} settings dataTables settings object\n\t *  @param {int} level log error messages, or display them to the user\n\t *  @param {string} msg error message\n\t *  @param {int} tn Technical note id to get more information about the error.\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnLog( settings, level, msg, tn )\n\t{\n\t\tmsg = 'DataTables warning: '+\n\t\t\t(settings ? 'table id='+settings.sTableId+' - ' : '')+msg;\n\t\n\t\tif ( tn ) {\n\t\t\tmsg += '. For more information about this error, please see '+\n\t\t\t'http://datatables.net/tn/'+tn;\n\t\t}\n\t\n\t\tif ( ! level  ) {\n\t\t\t// Backwards compatibility pre 1.10\n\t\t\tvar ext = DataTable.ext;\n\t\t\tvar type = ext.sErrMode || ext.errMode;\n\t\n\t\t\tif ( settings ) {\n\t\t\t\t_fnCallbackFire( settings, null, 'error', [ settings, tn, msg ] );\n\t\t\t}\n\t\n\t\t\tif ( type == 'alert' ) {\n\t\t\t\talert( msg );\n\t\t\t}\n\t\t\telse if ( type == 'throw' ) {\n\t\t\t\tthrow new Error(msg);\n\t\t\t}\n\t\t\telse if ( typeof type == 'function' ) {\n\t\t\t\ttype( settings, tn, msg );\n\t\t\t}\n\t\t}\n\t\telse if ( window.console && console.log ) {\n\t\t\tconsole.log( msg );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * See if a property is defined on one object, if so assign it to the other object\n\t *  @param {object} ret target object\n\t *  @param {object} src source object\n\t *  @param {string} name property\n\t *  @param {string} [mappedName] name to map too - optional, name used if not given\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnMap( ret, src, name, mappedName )\n\t{\n\t\tif ( Array.isArray( name ) ) {\n\t\t\t$.each( name, function (i, val) {\n\t\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\t\t_fnMap( ret, src, val[0], val[1] );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_fnMap( ret, src, val );\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\treturn;\n\t\t}\n\t\n\t\tif ( mappedName === undefined ) {\n\t\t\tmappedName = name;\n\t\t}\n\t\n\t\tif ( src[name] !== undefined ) {\n\t\t\tret[mappedName] = src[name];\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Extend objects - very similar to jQuery.extend, but deep copy objects, and\n\t * shallow copy arrays. The reason we need to do this, is that we don't want to\n\t * deep copy array init values (such as aaSorting) since the dev wouldn't be\n\t * able to override them, but we do want to deep copy arrays.\n\t *  @param {object} out Object to extend\n\t *  @param {object} extender Object from which the properties will be applied to\n\t *      out\n\t *  @param {boolean} breakRefs If true, then arrays will be sliced to take an\n\t *      independent copy with the exception of the `data` or `aaData` parameters\n\t *      if they are present. This is so you can pass in a collection to\n\t *      DataTables and have that used as your data source without breaking the\n\t *      references\n\t *  @returns {object} out Reference, just for convenience - out === the return.\n\t *  @memberof DataTable#oApi\n\t *  @todo This doesn't take account of arrays inside the deep copied objects.\n\t */\n\tfunction _fnExtend( out, extender, breakRefs )\n\t{\n\t\tvar val;\n\t\n\t\tfor ( var prop in extender ) {\n\t\t\tif ( extender.hasOwnProperty(prop) ) {\n\t\t\t\tval = extender[prop];\n\t\n\t\t\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t\t\tif ( ! $.isPlainObject( out[prop] ) ) {\n\t\t\t\t\t\tout[prop] = {};\n\t\t\t\t\t}\n\t\t\t\t\t$.extend( true, out[prop], val );\n\t\t\t\t}\n\t\t\t\telse if ( breakRefs && prop !== 'data' && prop !== 'aaData' && Array.isArray(val) ) {\n\t\t\t\t\tout[prop] = val.slice();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tout[prop] = val;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn out;\n\t}\n\t\n\t\n\t/**\n\t * Bind an event handers to allow a click or return key to activate the callback.\n\t * This is good for accessibility since a return on the keyboard will have the\n\t * same effect as a click, if the element has focus.\n\t *  @param {element} n Element to bind the action to\n\t *  @param {object} oData Data object to pass to the triggered function\n\t *  @param {function} fn Callback function for when the event is triggered\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnBindAction( n, oData, fn )\n\t{\n\t\t$(n)\n\t\t\t.on( 'click.DT', oData, function (e) {\n\t\t\t\t\t$(n).trigger('blur'); // Remove focus outline for mouse users\n\t\t\t\t\tfn(e);\n\t\t\t\t} )\n\t\t\t.on( 'keypress.DT', oData, function (e){\n\t\t\t\t\tif ( e.which === 13 ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tfn(e);\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t.on( 'selectstart.DT', function () {\n\t\t\t\t\t/* Take the brutal approach to cancelling text selection */\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t}\n\t\n\t\n\t/**\n\t * Register a callback function. Easily allows a callback function to be added to\n\t * an array store of callback functions that can then all be called together.\n\t *  @param {object} oSettings dataTables settings object\n\t *  @param {string} sStore Name of the array storage for the callbacks in oSettings\n\t *  @param {function} fn Function to be called back\n\t *  @param {string} sName Identifying name for the callback (i.e. a label)\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnCallbackReg( oSettings, sStore, fn, sName )\n\t{\n\t\tif ( fn )\n\t\t{\n\t\t\toSettings[sStore].push( {\n\t\t\t\t\"fn\": fn,\n\t\t\t\t\"sName\": sName\n\t\t\t} );\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Fire callback functions and trigger events. Note that the loop over the\n\t * callback array store is done backwards! Further note that you do not want to\n\t * fire off triggers in time sensitive applications (for example cell creation)\n\t * as its slow.\n\t *  @param {object} settings dataTables settings object\n\t *  @param {string} callbackArr Name of the array storage for the callbacks in\n\t *      oSettings\n\t *  @param {string} eventName Name of the jQuery custom event to trigger. If\n\t *      null no trigger is fired\n\t *  @param {array} args Array of arguments to pass to the callback function /\n\t *      trigger\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnCallbackFire( settings, callbackArr, eventName, args )\n\t{\n\t\tvar ret = [];\n\t\n\t\tif ( callbackArr ) {\n\t\t\tret = $.map( settings[callbackArr].slice().reverse(), function (val, i) {\n\t\t\t\treturn val.fn.apply( settings.oInstance, args );\n\t\t\t} );\n\t\t}\n\t\n\t\tif ( eventName !== null ) {\n\t\t\tvar e = $.Event( eventName+'.dt' );\n\t\n\t\t\t$(settings.nTable).trigger( e, args );\n\t\n\t\t\tret.push( e.result );\n\t\t}\n\t\n\t\treturn ret;\n\t}\n\t\n\t\n\tfunction _fnLengthOverflow ( settings )\n\t{\n\t\tvar\n\t\t\tstart = settings._iDisplayStart,\n\t\t\tend = settings.fnDisplayEnd(),\n\t\t\tlen = settings._iDisplayLength;\n\t\n\t\t/* If we have space to show extra rows (backing up from the end point - then do so */\n\t\tif ( start >= end )\n\t\t{\n\t\t\tstart = end - len;\n\t\t}\n\t\n\t\t// Keep the start record on the current page\n\t\tstart -= (start % len);\n\t\n\t\tif ( len === -1 || start < 0 )\n\t\t{\n\t\t\tstart = 0;\n\t\t}\n\t\n\t\tsettings._iDisplayStart = start;\n\t}\n\t\n\t\n\tfunction _fnRenderer( settings, type )\n\t{\n\t\tvar renderer = settings.renderer;\n\t\tvar host = DataTable.ext.renderer[type];\n\t\n\t\tif ( $.isPlainObject( renderer ) && renderer[type] ) {\n\t\t\t// Specific renderer for this type. If available use it, otherwise use\n\t\t\t// the default.\n\t\t\treturn host[renderer[type]] || host._;\n\t\t}\n\t\telse if ( typeof renderer === 'string' ) {\n\t\t\t// Common renderer - if there is one available for this type use it,\n\t\t\t// otherwise use the default\n\t\t\treturn host[renderer] || host._;\n\t\t}\n\t\n\t\t// Use the default\n\t\treturn host._;\n\t}\n\t\n\t\n\t/**\n\t * Detect the data source being used for the table. Used to simplify the code\n\t * a little (ajax) and to make it compress a little smaller.\n\t *\n\t *  @param {object} settings dataTables settings object\n\t *  @returns {string} Data source\n\t *  @memberof DataTable#oApi\n\t */\n\tfunction _fnDataSource ( settings )\n\t{\n\t\tif ( settings.oFeatures.bServerSide ) {\n\t\t\treturn 'ssp';\n\t\t}\n\t\telse if ( settings.ajax || settings.sAjaxSource ) {\n\t\t\treturn 'ajax';\n\t\t}\n\t\treturn 'dom';\n\t}\n\t\n\n\t\n\t\n\t/**\n\t * Computed structure of the DataTables API, defined by the options passed to\n\t * `DataTable.Api.register()` when building the API.\n\t *\n\t * The structure is built in order to speed creation and extension of the Api\n\t * objects since the extensions are effectively pre-parsed.\n\t *\n\t * The array is an array of objects with the following structure, where this\n\t * base array represents the Api prototype base:\n\t *\n\t *     [\n\t *       {\n\t *         name:      'data'                -- string   - Property name\n\t *         val:       function () {},       -- function - Api method (or undefined if just an object\n\t *         methodExt: [ ... ],              -- array    - Array of Api object definitions to extend the method result\n\t *         propExt:   [ ... ]               -- array    - Array of Api object definitions to extend the property\n\t *       },\n\t *       {\n\t *         name:     'row'\n\t *         val:       {},\n\t *         methodExt: [ ... ],\n\t *         propExt:   [\n\t *           {\n\t *             name:      'data'\n\t *             val:       function () {},\n\t *             methodExt: [ ... ],\n\t *             propExt:   [ ... ]\n\t *           },\n\t *           ...\n\t *         ]\n\t *       }\n\t *     ]\n\t *\n\t * @type {Array}\n\t * @ignore\n\t */\n\tvar __apiStruct = [];\n\t\n\t\n\t/**\n\t * `Array.prototype` reference.\n\t *\n\t * @type object\n\t * @ignore\n\t */\n\tvar __arrayProto = Array.prototype;\n\t\n\t\n\t/**\n\t * Abstraction for `context` parameter of the `Api` constructor to allow it to\n\t * take several different forms for ease of use.\n\t *\n\t * Each of the input parameter types will be converted to a DataTables settings\n\t * object where possible.\n\t *\n\t * @param  {string|node|jQuery|object} mixed DataTable identifier. Can be one\n\t *   of:\n\t *\n\t *   * `string` - jQuery selector. Any DataTables' matching the given selector\n\t *     with be found and used.\n\t *   * `node` - `TABLE` node which has already been formed into a DataTable.\n\t *   * `jQuery` - A jQuery object of `TABLE` nodes.\n\t *   * `object` - DataTables settings object\n\t *   * `DataTables.Api` - API instance\n\t * @return {array|null} Matching DataTables settings objects. `null` or\n\t *   `undefined` is returned if no matching DataTable is found.\n\t * @ignore\n\t */\n\tvar _toSettings = function ( mixed )\n\t{\n\t\tvar idx, jq;\n\t\tvar settings = DataTable.settings;\n\t\tvar tables = $.map( settings, function (el, i) {\n\t\t\treturn el.nTable;\n\t\t} );\n\t\n\t\tif ( ! mixed ) {\n\t\t\treturn [];\n\t\t}\n\t\telse if ( mixed.nTable && mixed.oApi ) {\n\t\t\t// DataTables settings object\n\t\t\treturn [ mixed ];\n\t\t}\n\t\telse if ( mixed.nodeName && mixed.nodeName.toLowerCase() === 'table' ) {\n\t\t\t// Table node\n\t\t\tidx = $.inArray( mixed, tables );\n\t\t\treturn idx !== -1 ? [ settings[idx] ] : null;\n\t\t}\n\t\telse if ( mixed && typeof mixed.settings === 'function' ) {\n\t\t\treturn mixed.settings().toArray();\n\t\t}\n\t\telse if ( typeof mixed === 'string' ) {\n\t\t\t// jQuery selector\n\t\t\tjq = $(mixed);\n\t\t}\n\t\telse if ( mixed instanceof $ ) {\n\t\t\t// jQuery object (also DataTables instance)\n\t\t\tjq = mixed;\n\t\t}\n\t\n\t\tif ( jq ) {\n\t\t\treturn jq.map( function(i) {\n\t\t\t\tidx = $.inArray( this, tables );\n\t\t\t\treturn idx !== -1 ? settings[idx] : null;\n\t\t\t} ).toArray();\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * DataTables API class - used to control and interface with  one or more\n\t * DataTables enhanced tables.\n\t *\n\t * The API class is heavily based on jQuery, presenting a chainable interface\n\t * that you can use to interact with tables. Each instance of the API class has\n\t * a \"context\" - i.e. the tables that it will operate on. This could be a single\n\t * table, all tables on a page or a sub-set thereof.\n\t *\n\t * Additionally the API is designed to allow you to easily work with the data in\n\t * the tables, retrieving and manipulating it as required. This is done by\n\t * presenting the API class as an array like interface. The contents of the\n\t * array depend upon the actions requested by each method (for example\n\t * `rows().nodes()` will return an array of nodes, while `rows().data()` will\n\t * return an array of objects or arrays depending upon your table's\n\t * configuration). The API object has a number of array like methods (`push`,\n\t * `pop`, `reverse` etc) as well as additional helper methods (`each`, `pluck`,\n\t * `unique` etc) to assist your working with the data held in a table.\n\t *\n\t * Most methods (those which return an Api instance) are chainable, which means\n\t * the return from a method call also has all of the methods available that the\n\t * top level object had. For example, these two calls are equivalent:\n\t *\n\t *     // Not chained\n\t *     api.row.add( {...} );\n\t *     api.draw();\n\t *\n\t *     // Chained\n\t *     api.row.add( {...} ).draw();\n\t *\n\t * @class DataTable.Api\n\t * @param {array|object|string|jQuery} context DataTable identifier. This is\n\t *   used to define which DataTables enhanced tables this API will operate on.\n\t *   Can be one of:\n\t *\n\t *   * `string` - jQuery selector. Any DataTables' matching the given selector\n\t *     with be found and used.\n\t *   * `node` - `TABLE` node which has already been formed into a DataTable.\n\t *   * `jQuery` - A jQuery object of `TABLE` nodes.\n\t *   * `object` - DataTables settings object\n\t * @param {array} [data] Data to initialise the Api instance with.\n\t *\n\t * @example\n\t *   // Direct initialisation during DataTables construction\n\t *   var api = $('#example').DataTable();\n\t *\n\t * @example\n\t *   // Initialisation using a DataTables jQuery object\n\t *   var api = $('#example').dataTable().api();\n\t *\n\t * @example\n\t *   // Initialisation as a constructor\n\t *   var api = new $.fn.DataTable.Api( 'table.dataTable' );\n\t */\n\t_Api = function ( context, data )\n\t{\n\t\tif ( ! (this instanceof _Api) ) {\n\t\t\treturn new _Api( context, data );\n\t\t}\n\t\n\t\tvar settings = [];\n\t\tvar ctxSettings = function ( o ) {\n\t\t\tvar a = _toSettings( o );\n\t\t\tif ( a ) {\n\t\t\t\tsettings.push.apply( settings, a );\n\t\t\t}\n\t\t};\n\t\n\t\tif ( Array.isArray( context ) ) {\n\t\t\tfor ( var i=0, ien=context.length ; i<ien ; i++ ) {\n\t\t\t\tctxSettings( context[i] );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tctxSettings( context );\n\t\t}\n\t\n\t\t// Remove duplicates\n\t\tthis.context = _unique( settings );\n\t\n\t\t// Initial data\n\t\tif ( data ) {\n\t\t\t$.merge( this, data );\n\t\t}\n\t\n\t\t// selector\n\t\tthis.selector = {\n\t\t\trows: null,\n\t\t\tcols: null,\n\t\t\topts: null\n\t\t};\n\t\n\t\t_Api.extend( this, this, __apiStruct );\n\t};\n\t\n\tDataTable.Api = _Api;\n\t\n\t// Don't destroy the existing prototype, just extend it. Required for jQuery 2's\n\t// isPlainObject.\n\t$.extend( _Api.prototype, {\n\t\tany: function ()\n\t\t{\n\t\t\treturn this.count() !== 0;\n\t\t},\n\t\n\t\n\t\tconcat:  __arrayProto.concat,\n\t\n\t\n\t\tcontext: [], // array of table settings objects\n\t\n\t\n\t\tcount: function ()\n\t\t{\n\t\t\treturn this.flatten().length;\n\t\t},\n\t\n\t\n\t\teach: function ( fn )\n\t\t{\n\t\t\tfor ( var i=0, ien=this.length ; i<ien; i++ ) {\n\t\t\t\tfn.call( this, this[i], i, this );\n\t\t\t}\n\t\n\t\t\treturn this;\n\t\t},\n\t\n\t\n\t\teq: function ( idx )\n\t\t{\n\t\t\tvar ctx = this.context;\n\t\n\t\t\treturn ctx.length > idx ?\n\t\t\t\tnew _Api( ctx[idx], this[idx] ) :\n\t\t\t\tnull;\n\t\t},\n\t\n\t\n\t\tfilter: function ( fn )\n\t\t{\n\t\t\tvar a = [];\n\t\n\t\t\tif ( __arrayProto.filter ) {\n\t\t\t\ta = __arrayProto.filter.call( this, fn, this );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Compatibility for browsers without EMCA-252-5 (JS 1.6)\n\t\t\t\tfor ( var i=0, ien=this.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( fn.call( this, this[i], i, this ) ) {\n\t\t\t\t\t\ta.push( this[i] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn new _Api( this.context, a );\n\t\t},\n\t\n\t\n\t\tflatten: function ()\n\t\t{\n\t\t\tvar a = [];\n\t\t\treturn new _Api( this.context, a.concat.apply( a, this.toArray() ) );\n\t\t},\n\t\n\t\n\t\tjoin:    __arrayProto.join,\n\t\n\t\n\t\tindexOf: __arrayProto.indexOf || function (obj, start)\n\t\t{\n\t\t\tfor ( var i=(start || 0), ien=this.length ; i<ien ; i++ ) {\n\t\t\t\tif ( this[i] === obj ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t},\n\t\n\t\titerator: function ( flatten, type, fn, alwaysNew ) {\n\t\t\tvar\n\t\t\t\ta = [], ret,\n\t\t\t\ti, ien, j, jen,\n\t\t\t\tcontext = this.context,\n\t\t\t\trows, items, item,\n\t\t\t\tselector = this.selector;\n\t\n\t\t\t// Argument shifting\n\t\t\tif ( typeof flatten === 'string' ) {\n\t\t\t\talwaysNew = fn;\n\t\t\t\tfn = type;\n\t\t\t\ttype = flatten;\n\t\t\t\tflatten = false;\n\t\t\t}\n\t\n\t\t\tfor ( i=0, ien=context.length ; i<ien ; i++ ) {\n\t\t\t\tvar apiInst = new _Api( context[i] );\n\t\n\t\t\t\tif ( type === 'table' ) {\n\t\t\t\t\tret = fn.call( apiInst, context[i], i );\n\t\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\ta.push( ret );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( type === 'columns' || type === 'rows' ) {\n\t\t\t\t\t// this has same length as context - one entry for each table\n\t\t\t\t\tret = fn.call( apiInst, context[i], this[i], i );\n\t\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\ta.push( ret );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( type === 'column' || type === 'column-rows' || type === 'row' || type === 'cell' ) {\n\t\t\t\t\t// columns and rows share the same structure.\n\t\t\t\t\t// 'this' is an array of column indexes for each context\n\t\t\t\t\titems = this[i];\n\t\n\t\t\t\t\tif ( type === 'column-rows' ) {\n\t\t\t\t\t\trows = _selector_row_indexes( context[i], selector.opts );\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfor ( j=0, jen=items.length ; j<jen ; j++ ) {\n\t\t\t\t\t\titem = items[j];\n\t\n\t\t\t\t\t\tif ( type === 'cell' ) {\n\t\t\t\t\t\t\tret = fn.call( apiInst, context[i], item.row, item.column, i, j );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tret = fn.call( apiInst, context[i], item, i, j, rows );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\t\ta.push( ret );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif ( a.length || alwaysNew ) {\n\t\t\t\tvar api = new _Api( context, flatten ? a.concat.apply( [], a ) : a );\n\t\t\t\tvar apiSelector = api.selector;\n\t\t\t\tapiSelector.rows = selector.rows;\n\t\t\t\tapiSelector.cols = selector.cols;\n\t\t\t\tapiSelector.opts = selector.opts;\n\t\t\t\treturn api;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t\n\t\n\t\tlastIndexOf: __arrayProto.lastIndexOf || function (obj, start)\n\t\t{\n\t\t\t// Bit cheeky...\n\t\t\treturn this.indexOf.apply( this.toArray.reverse(), arguments );\n\t\t},\n\t\n\t\n\t\tlength:  0,\n\t\n\t\n\t\tmap: function ( fn )\n\t\t{\n\t\t\tvar a = [];\n\t\n\t\t\tif ( __arrayProto.map ) {\n\t\t\t\ta = __arrayProto.map.call( this, fn, this );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Compatibility for browsers without EMCA-252-5 (JS 1.6)\n\t\t\t\tfor ( var i=0, ien=this.length ; i<ien ; i++ ) {\n\t\t\t\t\ta.push( fn.call( this, this[i], i ) );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn new _Api( this.context, a );\n\t\t},\n\t\n\t\n\t\tpluck: function ( prop )\n\t\t{\n\t\t\treturn this.map( function ( el ) {\n\t\t\t\treturn el[ prop ];\n\t\t\t} );\n\t\t},\n\t\n\t\tpop:     __arrayProto.pop,\n\t\n\t\n\t\tpush:    __arrayProto.push,\n\t\n\t\n\t\t// Does not return an API instance\n\t\treduce: __arrayProto.reduce || function ( fn, init )\n\t\t{\n\t\t\treturn _fnReduce( this, fn, init, 0, this.length, 1 );\n\t\t},\n\t\n\t\n\t\treduceRight: __arrayProto.reduceRight || function ( fn, init )\n\t\t{\n\t\t\treturn _fnReduce( this, fn, init, this.length-1, -1, -1 );\n\t\t},\n\t\n\t\n\t\treverse: __arrayProto.reverse,\n\t\n\t\n\t\t// Object with rows, columns and opts\n\t\tselector: null,\n\t\n\t\n\t\tshift:   __arrayProto.shift,\n\t\n\t\n\t\tslice: function () {\n\t\t\treturn new _Api( this.context, this );\n\t\t},\n\t\n\t\n\t\tsort:    __arrayProto.sort, // ? name - order?\n\t\n\t\n\t\tsplice:  __arrayProto.splice,\n\t\n\t\n\t\ttoArray: function ()\n\t\t{\n\t\t\treturn __arrayProto.slice.call( this );\n\t\t},\n\t\n\t\n\t\tto$: function ()\n\t\t{\n\t\t\treturn $( this );\n\t\t},\n\t\n\t\n\t\ttoJQuery: function ()\n\t\t{\n\t\t\treturn $( this );\n\t\t},\n\t\n\t\n\t\tunique: function ()\n\t\t{\n\t\t\treturn new _Api( this.context, _unique(this) );\n\t\t},\n\t\n\t\n\t\tunshift: __arrayProto.unshift\n\t} );\n\t\n\t\n\t_Api.extend = function ( scope, obj, ext )\n\t{\n\t\t// Only extend API instances and static properties of the API\n\t\tif ( ! ext.length || ! obj || ( ! (obj instanceof _Api) && ! obj.__dt_wrapper ) ) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar\n\t\t\ti, ien,\n\t\t\tstruct,\n\t\t\tmethodScoping = function ( scope, fn, struc ) {\n\t\t\t\treturn function () {\n\t\t\t\t\tvar ret = fn.apply( scope, arguments );\n\t\n\t\t\t\t\t// Method extension\n\t\t\t\t\t_Api.extend( ret, ret, struc.methodExt );\n\t\t\t\t\treturn ret;\n\t\t\t\t};\n\t\t\t};\n\t\n\t\tfor ( i=0, ien=ext.length ; i<ien ; i++ ) {\n\t\t\tstruct = ext[i];\n\t\n\t\t\t// Value\n\t\t\tobj[ struct.name ] = struct.type === 'function' ?\n\t\t\t\tmethodScoping( scope, struct.val, struct ) :\n\t\t\t\tstruct.type === 'object' ?\n\t\t\t\t\t{} :\n\t\t\t\t\tstruct.val;\n\t\n\t\t\tobj[ struct.name ].__dt_wrapper = true;\n\t\n\t\t\t// Property extension\n\t\t\t_Api.extend( scope, obj[ struct.name ], struct.propExt );\n\t\t}\n\t};\n\t\n\t\n\t// @todo - Is there need for an augment function?\n\t// _Api.augment = function ( inst, name )\n\t// {\n\t// \t// Find src object in the structure from the name\n\t// \tvar parts = name.split('.');\n\t\n\t// \t_Api.extend( inst, obj );\n\t// };\n\t\n\t\n\t//     [\n\t//       {\n\t//         name:      'data'                -- string   - Property name\n\t//         val:       function () {},       -- function - Api method (or undefined if just an object\n\t//         methodExt: [ ... ],              -- array    - Array of Api object definitions to extend the method result\n\t//         propExt:   [ ... ]               -- array    - Array of Api object definitions to extend the property\n\t//       },\n\t//       {\n\t//         name:     'row'\n\t//         val:       {},\n\t//         methodExt: [ ... ],\n\t//         propExt:   [\n\t//           {\n\t//             name:      'data'\n\t//             val:       function () {},\n\t//             methodExt: [ ... ],\n\t//             propExt:   [ ... ]\n\t//           },\n\t//           ...\n\t//         ]\n\t//       }\n\t//     ]\n\t\n\t_Api.register = _api_register = function ( name, val )\n\t{\n\t\tif ( Array.isArray( name ) ) {\n\t\t\tfor ( var j=0, jen=name.length ; j<jen ; j++ ) {\n\t\t\t\t_Api.register( name[j], val );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar\n\t\t\ti, ien,\n\t\t\their = name.split('.'),\n\t\t\tstruct = __apiStruct,\n\t\t\tkey, method;\n\t\n\t\tvar find = function ( src, name ) {\n\t\t\tfor ( var i=0, ien=src.length ; i<ien ; i++ ) {\n\t\t\t\tif ( src[i].name === name ) {\n\t\t\t\t\treturn src[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\n\t\tfor ( i=0, ien=heir.length ; i<ien ; i++ ) {\n\t\t\tmethod = heir[i].indexOf('()') !== -1;\n\t\t\tkey = method ?\n\t\t\t\their[i].replace('()', '') :\n\t\t\t\their[i];\n\t\n\t\t\tvar src = find( struct, key );\n\t\t\tif ( ! src ) {\n\t\t\t\tsrc = {\n\t\t\t\t\tname:      key,\n\t\t\t\t\tval:       {},\n\t\t\t\t\tmethodExt: [],\n\t\t\t\t\tpropExt:   [],\n\t\t\t\t\ttype:      'object'\n\t\t\t\t};\n\t\t\t\tstruct.push( src );\n\t\t\t}\n\t\n\t\t\tif ( i === ien-1 ) {\n\t\t\t\tsrc.val = val;\n\t\t\t\tsrc.type = typeof val === 'function' ?\n\t\t\t\t\t'function' :\n\t\t\t\t\t$.isPlainObject( val ) ?\n\t\t\t\t\t\t'object' :\n\t\t\t\t\t\t'other';\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstruct = method ?\n\t\t\t\t\tsrc.methodExt :\n\t\t\t\t\tsrc.propExt;\n\t\t\t}\n\t\t}\n\t};\n\t\n\t_Api.registerPlural = _api_registerPlural = function ( pluralName, singularName, val ) {\n\t\t_Api.register( pluralName, val );\n\t\n\t\t_Api.register( singularName, function () {\n\t\t\tvar ret = val.apply( this, arguments );\n\t\n\t\t\tif ( ret === this ) {\n\t\t\t\t// Returned item is the API instance that was passed in, return it\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\telse if ( ret instanceof _Api ) {\n\t\t\t\t// New API instance returned, want the value from the first item\n\t\t\t\t// in the returned array for the singular result.\n\t\t\t\treturn ret.length ?\n\t\t\t\t\tArray.isArray( ret[0] ) ?\n\t\t\t\t\t\tnew _Api( ret.context, ret[0] ) : // Array results are 'enhanced'\n\t\t\t\t\t\tret[0] :\n\t\t\t\t\tundefined;\n\t\t\t}\n\t\n\t\t\t// Non-API return - just fire it back\n\t\t\treturn ret;\n\t\t} );\n\t};\n\t\n\t\n\t/**\n\t * Selector for HTML tables. Apply the given selector to the give array of\n\t * DataTables settings objects.\n\t *\n\t * @param {string|integer} [selector] jQuery selector string or integer\n\t * @param  {array} Array of DataTables settings objects to be filtered\n\t * @return {array}\n\t * @ignore\n\t */\n\tvar __table_selector = function ( selector, a )\n\t{\n\t\tif ( Array.isArray(selector) ) {\n\t\t\treturn $.map( selector, function (item) {\n\t\t\t\treturn __table_selector(item, a);\n\t\t\t} );\n\t\t}\n\t\n\t\t// Integer is used to pick out a table by index\n\t\tif ( typeof selector === 'number' ) {\n\t\t\treturn [ a[ selector ] ];\n\t\t}\n\t\n\t\t// Perform a jQuery selector on the table nodes\n\t\tvar nodes = $.map( a, function (el, i) {\n\t\t\treturn el.nTable;\n\t\t} );\n\t\n\t\treturn $(nodes)\n\t\t\t.filter( selector )\n\t\t\t.map( function (i) {\n\t\t\t\t// Need to translate back from the table node to the settings\n\t\t\t\tvar idx = $.inArray( this, nodes );\n\t\t\t\treturn a[ idx ];\n\t\t\t} )\n\t\t\t.toArray();\n\t};\n\t\n\t\n\t\n\t/**\n\t * Context selector for the API's context (i.e. the tables the API instance\n\t * refers to.\n\t *\n\t * @name    DataTable.Api#tables\n\t * @param {string|integer} [selector] Selector to pick which tables the iterator\n\t *   should operate on. If not given, all tables in the current context are\n\t *   used. This can be given as a jQuery selector (for example `':gt(0)'`) to\n\t *   select multiple tables or as an integer to select a single table.\n\t * @returns {DataTable.Api} Returns a new API instance if a selector is given.\n\t */\n\t_api_register( 'tables()', function ( selector ) {\n\t\t// A new instance is created if there was a selector specified\n\t\treturn selector !== undefined && selector !== null ?\n\t\t\tnew _Api( __table_selector( selector, this.context ) ) :\n\t\t\tthis;\n\t} );\n\t\n\t\n\t_api_register( 'table()', function ( selector ) {\n\t\tvar tables = this.tables( selector );\n\t\tvar ctx = tables.context;\n\t\n\t\t// Truncate to the first matched table\n\t\treturn ctx.length ?\n\t\t\tnew _Api( ctx[0] ) :\n\t\t\ttables;\n\t} );\n\t\n\t\n\t_api_registerPlural( 'tables().nodes()', 'table().node()' , function () {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\treturn ctx.nTable;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'tables().body()', 'table().body()' , function () {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\treturn ctx.nTBody;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'tables().header()', 'table().header()' , function () {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\treturn ctx.nTHead;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'tables().footer()', 'table().footer()' , function () {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\treturn ctx.nTFoot;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'tables().containers()', 'table().container()' , function () {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\treturn ctx.nTableWrapper;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t\n\t/**\n\t * Redraw the tables in the current context.\n\t */\n\t_api_register( 'draw()', function ( paging ) {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tif ( paging === 'page' ) {\n\t\t\t\t_fnDraw( settings );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( typeof paging === 'string' ) {\n\t\t\t\t\tpaging = paging === 'full-hold' ?\n\t\t\t\t\t\tfalse :\n\t\t\t\t\t\ttrue;\n\t\t\t\t}\n\t\n\t\t\t\t_fnReDraw( settings, paging===false );\n\t\t\t}\n\t\t} );\n\t} );\n\t\n\t\n\t\n\t/**\n\t * Get the current page index.\n\t *\n\t * @return {integer} Current page index (zero based)\n\t *//**\n\t * Set the current page.\n\t *\n\t * Note that if you attempt to show a page which does not exist, DataTables will\n\t * not throw an error, but rather reset the paging.\n\t *\n\t * @param {integer|string} action The paging action to take. This can be one of:\n\t *  * `integer` - The page index to jump to\n\t *  * `string` - An action to take:\n\t *    * `first` - Jump to first page.\n\t *    * `next` - Jump to the next page\n\t *    * `previous` - Jump to previous page\n\t *    * `last` - Jump to the last page.\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'page()', function ( action ) {\n\t\tif ( action === undefined ) {\n\t\t\treturn this.page.info().page; // not an expensive call\n\t\t}\n\t\n\t\t// else, have an action to take on all tables\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnPageChange( settings, action );\n\t\t} );\n\t} );\n\t\n\t\n\t/**\n\t * Paging information for the first table in the current context.\n\t *\n\t * If you require paging information for another table, use the `table()` method\n\t * with a suitable selector.\n\t *\n\t * @return {object} Object with the following properties set:\n\t *  * `page` - Current page index (zero based - i.e. the first page is `0`)\n\t *  * `pages` - Total number of pages\n\t *  * `start` - Display index for the first record shown on the current page\n\t *  * `end` - Display index for the last record shown on the current page\n\t *  * `length` - Display length (number of records). Note that generally `start\n\t *    + length = end`, but this is not always true, for example if there are\n\t *    only 2 records to show on the final page, with a length of 10.\n\t *  * `recordsTotal` - Full data set length\n\t *  * `recordsDisplay` - Data set length once the current filtering criterion\n\t *    are applied.\n\t */\n\t_api_register( 'page.info()', function ( action ) {\n\t\tif ( this.context.length === 0 ) {\n\t\t\treturn undefined;\n\t\t}\n\t\n\t\tvar\n\t\t\tsettings   = this.context[0],\n\t\t\tstart      = settings._iDisplayStart,\n\t\t\tlen        = settings.oFeatures.bPaginate ? settings._iDisplayLength : -1,\n\t\t\tvisRecords = settings.fnRecordsDisplay(),\n\t\t\tall        = len === -1;\n\t\n\t\treturn {\n\t\t\t\"page\":           all ? 0 : Math.floor( start / len ),\n\t\t\t\"pages\":          all ? 1 : Math.ceil( visRecords / len ),\n\t\t\t\"start\":          start,\n\t\t\t\"end\":            settings.fnDisplayEnd(),\n\t\t\t\"length\":         len,\n\t\t\t\"recordsTotal\":   settings.fnRecordsTotal(),\n\t\t\t\"recordsDisplay\": visRecords,\n\t\t\t\"serverSide\":     _fnDataSource( settings ) === 'ssp'\n\t\t};\n\t} );\n\t\n\t\n\t/**\n\t * Get the current page length.\n\t *\n\t * @return {integer} Current page length. Note `-1` indicates that all records\n\t *   are to be shown.\n\t *//**\n\t * Set the current page length.\n\t *\n\t * @param {integer} Page length to set. Use `-1` to show all records.\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'page.len()', function ( len ) {\n\t\t// Note that we can't call this function 'length()' because `length`\n\t\t// is a Javascript property of functions which defines how many arguments\n\t\t// the function expects.\n\t\tif ( len === undefined ) {\n\t\t\treturn this.context.length !== 0 ?\n\t\t\t\tthis.context[0]._iDisplayLength :\n\t\t\t\tundefined;\n\t\t}\n\t\n\t\t// else, set the page length\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnLengthChange( settings, len );\n\t\t} );\n\t} );\n\t\n\t\n\t\n\tvar __reload = function ( settings, holdPosition, callback ) {\n\t\t// Use the draw event to trigger a callback\n\t\tif ( callback ) {\n\t\t\tvar api = new _Api( settings );\n\t\n\t\t\tapi.one( 'draw', function () {\n\t\t\t\tcallback( api.ajax.json() );\n\t\t\t} );\n\t\t}\n\t\n\t\tif ( _fnDataSource( settings ) == 'ssp' ) {\n\t\t\t_fnReDraw( settings, holdPosition );\n\t\t}\n\t\telse {\n\t\t\t_fnProcessingDisplay( settings, true );\n\t\n\t\t\t// Cancel an existing request\n\t\t\tvar xhr = settings.jqXHR;\n\t\t\tif ( xhr && xhr.readyState !== 4 ) {\n\t\t\t\txhr.abort();\n\t\t\t}\n\t\n\t\t\t// Trigger xhr\n\t\t\t_fnBuildAjax( settings, [], function( json ) {\n\t\t\t\t_fnClearTable( settings );\n\t\n\t\t\t\tvar data = _fnAjaxDataSrc( settings, json );\n\t\t\t\tfor ( var i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\t_fnAddData( settings, data[i] );\n\t\t\t\t}\n\t\n\t\t\t\t_fnReDraw( settings, holdPosition );\n\t\t\t\t_fnProcessingDisplay( settings, false );\n\t\t\t} );\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * Get the JSON response from the last Ajax request that DataTables made to the\n\t * server. Note that this returns the JSON from the first table in the current\n\t * context.\n\t *\n\t * @return {object} JSON received from the server.\n\t */\n\t_api_register( 'ajax.json()', function () {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( ctx.length > 0 ) {\n\t\t\treturn ctx[0].json;\n\t\t}\n\t\n\t\t// else return undefined;\n\t} );\n\t\n\t\n\t/**\n\t * Get the data submitted in the last Ajax request\n\t */\n\t_api_register( 'ajax.params()', function () {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( ctx.length > 0 ) {\n\t\t\treturn ctx[0].oAjaxData;\n\t\t}\n\t\n\t\t// else return undefined;\n\t} );\n\t\n\t\n\t/**\n\t * Reload tables from the Ajax data source. Note that this function will\n\t * automatically re-draw the table when the remote data has been loaded.\n\t *\n\t * @param {boolean} [reset=true] Reset (default) or hold the current paging\n\t *   position. A full re-sort and re-filter is performed when this method is\n\t *   called, which is why the pagination reset is the default action.\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'ajax.reload()', function ( callback, resetPaging ) {\n\t\treturn this.iterator( 'table', function (settings) {\n\t\t\t__reload( settings, resetPaging===false, callback );\n\t\t} );\n\t} );\n\t\n\t\n\t/**\n\t * Get the current Ajax URL. Note that this returns the URL from the first\n\t * table in the current context.\n\t *\n\t * @return {string} Current Ajax source URL\n\t *//**\n\t * Set the Ajax URL. Note that this will set the URL for all tables in the\n\t * current context.\n\t *\n\t * @param {string} url URL to set.\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'ajax.url()', function ( url ) {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( url === undefined ) {\n\t\t\t// get\n\t\t\tif ( ctx.length === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tctx = ctx[0];\n\t\n\t\t\treturn ctx.ajax ?\n\t\t\t\t$.isPlainObject( ctx.ajax ) ?\n\t\t\t\t\tctx.ajax.url :\n\t\t\t\t\tctx.ajax :\n\t\t\t\tctx.sAjaxSource;\n\t\t}\n\t\n\t\t// set\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tif ( $.isPlainObject( settings.ajax ) ) {\n\t\t\t\tsettings.ajax.url = url;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsettings.ajax = url;\n\t\t\t}\n\t\t\t// No need to consider sAjaxSource here since DataTables gives priority\n\t\t\t// to `ajax` over `sAjaxSource`. So setting `ajax` here, renders any\n\t\t\t// value of `sAjaxSource` redundant.\n\t\t} );\n\t} );\n\t\n\t\n\t/**\n\t * Load data from the newly set Ajax URL. Note that this method is only\n\t * available when `ajax.url()` is used to set a URL. Additionally, this method\n\t * has the same effect as calling `ajax.reload()` but is provided for\n\t * convenience when setting a new URL. Like `ajax.reload()` it will\n\t * automatically redraw the table once the remote data has been loaded.\n\t *\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'ajax.url().load()', function ( callback, resetPaging ) {\n\t\t// Same as a reload, but makes sense to present it for easy access after a\n\t\t// url change\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\t__reload( ctx, resetPaging===false, callback );\n\t\t} );\n\t} );\n\t\n\t\n\t\n\t\n\tvar _selector_run = function ( type, selector, selectFn, settings, opts )\n\t{\n\t\tvar\n\t\t\tout = [], res,\n\t\t\ta, i, ien, j, jen,\n\t\t\tselectorType = typeof selector;\n\t\n\t\t// Can't just check for isArray here, as an API or jQuery instance might be\n\t\t// given with their array like look\n\t\tif ( ! selector || selectorType === 'string' || selectorType === 'function' || selector.length === undefined ) {\n\t\t\tselector = [ selector ];\n\t\t}\n\t\n\t\tfor ( i=0, ien=selector.length ; i<ien ; i++ ) {\n\t\t\t// Only split on simple strings - complex expressions will be jQuery selectors\n\t\t\ta = selector[i] && selector[i].split && ! selector[i].match(/[\\[\\(:]/) ?\n\t\t\t\tselector[i].split(',') :\n\t\t\t\t[ selector[i] ];\n\t\n\t\t\tfor ( j=0, jen=a.length ; j<jen ; j++ ) {\n\t\t\t\tres = selectFn( typeof a[j] === 'string' ? (a[j]).trim() : a[j] );\n\t\n\t\t\t\tif ( res && res.length ) {\n\t\t\t\t\tout = out.concat( res );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\t// selector extensions\n\t\tvar ext = _ext.selector[ type ];\n\t\tif ( ext.length ) {\n\t\t\tfor ( i=0, ien=ext.length ; i<ien ; i++ ) {\n\t\t\t\tout = ext[i]( settings, opts, out );\n\t\t\t}\n\t\t}\n\t\n\t\treturn _unique( out );\n\t};\n\t\n\t\n\tvar _selector_opts = function ( opts )\n\t{\n\t\tif ( ! opts ) {\n\t\t\topts = {};\n\t\t}\n\t\n\t\t// Backwards compatibility for 1.9- which used the terminology filter rather\n\t\t// than search\n\t\tif ( opts.filter && opts.search === undefined ) {\n\t\t\topts.search = opts.filter;\n\t\t}\n\t\n\t\treturn $.extend( {\n\t\t\tsearch: 'none',\n\t\t\torder: 'current',\n\t\t\tpage: 'all'\n\t\t}, opts );\n\t};\n\t\n\t\n\tvar _selector_first = function ( inst )\n\t{\n\t\t// Reduce the API instance to the first item found\n\t\tfor ( var i=0, ien=inst.length ; i<ien ; i++ ) {\n\t\t\tif ( inst[i].length > 0 ) {\n\t\t\t\t// Assign the first element to the first item in the instance\n\t\t\t\t// and truncate the instance and context\n\t\t\t\tinst[0] = inst[i];\n\t\t\t\tinst[0].length = 1;\n\t\t\t\tinst.length = 1;\n\t\t\t\tinst.context = [ inst.context[i] ];\n\t\n\t\t\t\treturn inst;\n\t\t\t}\n\t\t}\n\t\n\t\t// Not found - return an empty instance\n\t\tinst.length = 0;\n\t\treturn inst;\n\t};\n\t\n\t\n\tvar _selector_row_indexes = function ( settings, opts )\n\t{\n\t\tvar\n\t\t\ti, ien, tmp, a=[],\n\t\t\tdisplayFiltered = settings.aiDisplay,\n\t\t\tdisplayMaster = settings.aiDisplayMaster;\n\t\n\t\tvar\n\t\t\tsearch = opts.search,  // none, applied, removed\n\t\t\torder  = opts.order,   // applied, current, index (original - compatibility with 1.9)\n\t\t\tpage   = opts.page;    // all, current\n\t\n\t\tif ( _fnDataSource( settings ) == 'ssp' ) {\n\t\t\t// In server-side processing mode, most options are irrelevant since\n\t\t\t// rows not shown don't exist and the index order is the applied order\n\t\t\t// Removed is a special case - for consistency just return an empty\n\t\t\t// array\n\t\t\treturn search === 'removed' ?\n\t\t\t\t[] :\n\t\t\t\t_range( 0, displayMaster.length );\n\t\t}\n\t\telse if ( page == 'current' ) {\n\t\t\t// Current page implies that order=current and fitler=applied, since it is\n\t\t\t// fairly senseless otherwise, regardless of what order and search actually\n\t\t\t// are\n\t\t\tfor ( i=settings._iDisplayStart, ien=settings.fnDisplayEnd() ; i<ien ; i++ ) {\n\t\t\t\ta.push( displayFiltered[i] );\n\t\t\t}\n\t\t}\n\t\telse if ( order == 'current' || order == 'applied' ) {\n\t\t\tif ( search == 'none') {\n\t\t\t\ta = displayMaster.slice();\n\t\t\t}\n\t\t\telse if ( search == 'applied' ) {\n\t\t\t\ta = displayFiltered.slice();\n\t\t\t}\n\t\t\telse if ( search == 'removed' ) {\n\t\t\t\t// O(n+m) solution by creating a hash map\n\t\t\t\tvar displayFilteredMap = {};\n\t\n\t\t\t\tfor ( var i=0, ien=displayFiltered.length ; i<ien ; i++ ) {\n\t\t\t\t\tdisplayFilteredMap[displayFiltered[i]] = null;\n\t\t\t\t}\n\t\n\t\t\t\ta = $.map( displayMaster, function (el) {\n\t\t\t\t\treturn ! displayFilteredMap.hasOwnProperty(el) ?\n\t\t\t\t\t\tel :\n\t\t\t\t\t\tnull;\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\telse if ( order == 'index' || order == 'original' ) {\n\t\t\tfor ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {\n\t\t\t\tif ( search == 'none' ) {\n\t\t\t\t\ta.push( i );\n\t\t\t\t}\n\t\t\t\telse { // applied | removed\n\t\t\t\t\ttmp = $.inArray( i, displayFiltered );\n\t\n\t\t\t\t\tif ((tmp === -1 && search == 'removed') ||\n\t\t\t\t\t\t(tmp >= 0   && search == 'applied') )\n\t\t\t\t\t{\n\t\t\t\t\t\ta.push( i );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn a;\n\t};\n\t\n\t\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Rows\n\t *\n\t * {}          - no selector - use all available rows\n\t * {integer}   - row aoData index\n\t * {node}      - TR node\n\t * {string}    - jQuery selector to apply to the TR elements\n\t * {array}     - jQuery array of nodes, or simply an array of TR nodes\n\t *\n\t */\n\tvar __row_selector = function ( settings, selector, opts )\n\t{\n\t\tvar rows;\n\t\tvar run = function ( sel ) {\n\t\t\tvar selInt = _intVal( sel );\n\t\t\tvar i, ien;\n\t\t\tvar aoData = settings.aoData;\n\t\n\t\t\t// Short cut - selector is a number and no options provided (default is\n\t\t\t// all records, so no need to check if the index is in there, since it\n\t\t\t// must be - dev error if the index doesn't exist).\n\t\t\tif ( selInt !== null && ! opts ) {\n\t\t\t\treturn [ selInt ];\n\t\t\t}\n\t\n\t\t\tif ( ! rows ) {\n\t\t\t\trows = _selector_row_indexes( settings, opts );\n\t\t\t}\n\t\n\t\t\tif ( selInt !== null && $.inArray( selInt, rows ) !== -1 ) {\n\t\t\t\t// Selector - integer\n\t\t\t\treturn [ selInt ];\n\t\t\t}\n\t\t\telse if ( sel === null || sel === undefined || sel === '' ) {\n\t\t\t\t// Selector - none\n\t\t\t\treturn rows;\n\t\t\t}\n\t\n\t\t\t// Selector - function\n\t\t\tif ( typeof sel === 'function' ) {\n\t\t\t\treturn $.map( rows, function (idx) {\n\t\t\t\t\tvar row = aoData[ idx ];\n\t\t\t\t\treturn sel( idx, row._aData, row.nTr ) ? idx : null;\n\t\t\t\t} );\n\t\t\t}\n\t\n\t\t\t// Selector - node\n\t\t\tif ( sel.nodeName ) {\n\t\t\t\tvar rowIdx = sel._DT_RowIndex;  // Property added by DT for fast lookup\n\t\t\t\tvar cellIdx = sel._DT_CellIndex;\n\t\n\t\t\t\tif ( rowIdx !== undefined ) {\n\t\t\t\t\t// Make sure that the row is actually still present in the table\n\t\t\t\t\treturn aoData[ rowIdx ] && aoData[ rowIdx ].nTr === sel ?\n\t\t\t\t\t\t[ rowIdx ] :\n\t\t\t\t\t\t[];\n\t\t\t\t}\n\t\t\t\telse if ( cellIdx ) {\n\t\t\t\t\treturn aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel.parentNode ?\n\t\t\t\t\t\t[ cellIdx.row ] :\n\t\t\t\t\t\t[];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar host = $(sel).closest('*[data-dt-row]');\n\t\t\t\t\treturn host.length ?\n\t\t\t\t\t\t[ host.data('dt-row') ] :\n\t\t\t\t\t\t[];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// ID selector. Want to always be able to select rows by id, regardless\n\t\t\t// of if the tr element has been created or not, so can't rely upon\n\t\t\t// jQuery here - hence a custom implementation. This does not match\n\t\t\t// Sizzle's fast selector or HTML4 - in HTML5 the ID can be anything,\n\t\t\t// but to select it using a CSS selector engine (like Sizzle or\n\t\t\t// querySelect) it would need to need to be escaped for some characters.\n\t\t\t// DataTables simplifies this for row selectors since you can select\n\t\t\t// only a row. A # indicates an id any anything that follows is the id -\n\t\t\t// unescaped.\n\t\t\tif ( typeof sel === 'string' && sel.charAt(0) === '#' ) {\n\t\t\t\t// get row index from id\n\t\t\t\tvar rowObj = settings.aIds[ sel.replace( /^#/, '' ) ];\n\t\t\t\tif ( rowObj !== undefined ) {\n\t\t\t\t\treturn [ rowObj.idx ];\n\t\t\t\t}\n\t\n\t\t\t\t// need to fall through to jQuery in case there is DOM id that\n\t\t\t\t// matches\n\t\t\t}\n\t\t\t\n\t\t\t// Get nodes in the order from the `rows` array with null values removed\n\t\t\tvar nodes = _removeEmpty(\n\t\t\t\t_pluck_order( settings.aoData, rows, 'nTr' )\n\t\t\t);\n\t\n\t\t\t// Selector - jQuery selector string, array of nodes or jQuery object/\n\t\t\t// As jQuery's .filter() allows jQuery objects to be passed in filter,\n\t\t\t// it also allows arrays, so this will cope with all three options\n\t\t\treturn $(nodes)\n\t\t\t\t.filter( sel )\n\t\t\t\t.map( function () {\n\t\t\t\t\treturn this._DT_RowIndex;\n\t\t\t\t} )\n\t\t\t\t.toArray();\n\t\t};\n\t\n\t\treturn _selector_run( 'row', selector, run, settings, opts );\n\t};\n\t\n\t\n\t_api_register( 'rows()', function ( selector, opts ) {\n\t\t// argument shifting\n\t\tif ( selector === undefined ) {\n\t\t\tselector = '';\n\t\t}\n\t\telse if ( $.isPlainObject( selector ) ) {\n\t\t\topts = selector;\n\t\t\tselector = '';\n\t\t}\n\t\n\t\topts = _selector_opts( opts );\n\t\n\t\tvar inst = this.iterator( 'table', function ( settings ) {\n\t\t\treturn __row_selector( settings, selector, opts );\n\t\t}, 1 );\n\t\n\t\t// Want argument shifting here and in __row_selector?\n\t\tinst.selector.rows = selector;\n\t\tinst.selector.opts = opts;\n\t\n\t\treturn inst;\n\t} );\n\t\n\t_api_register( 'rows().nodes()', function () {\n\t\treturn this.iterator( 'row', function ( settings, row ) {\n\t\t\treturn settings.aoData[ row ].nTr || undefined;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_register( 'rows().data()', function () {\n\t\treturn this.iterator( true, 'rows', function ( settings, rows ) {\n\t\t\treturn _pluck_order( settings.aoData, rows, '_aData' );\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'rows().cache()', 'row().cache()', function ( type ) {\n\t\treturn this.iterator( 'row', function ( settings, row ) {\n\t\t\tvar r = settings.aoData[ row ];\n\t\t\treturn type === 'search' ? r._aFilterData : r._aSortData;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'rows().invalidate()', 'row().invalidate()', function ( src ) {\n\t\treturn this.iterator( 'row', function ( settings, row ) {\n\t\t\t_fnInvalidate( settings, row, src );\n\t\t} );\n\t} );\n\t\n\t_api_registerPlural( 'rows().indexes()', 'row().index()', function () {\n\t\treturn this.iterator( 'row', function ( settings, row ) {\n\t\t\treturn row;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'rows().ids()', 'row().id()', function ( hash ) {\n\t\tvar a = [];\n\t\tvar context = this.context;\n\t\n\t\t// `iterator` will drop undefined values, but in this case we want them\n\t\tfor ( var i=0, ien=context.length ; i<ien ; i++ ) {\n\t\t\tfor ( var j=0, jen=this[i].length ; j<jen ; j++ ) {\n\t\t\t\tvar id = context[i].rowIdFn( context[i].aoData[ this[i][j] ]._aData );\n\t\t\t\ta.push( (hash === true ? '#' : '' )+ id );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new _Api( context, a );\n\t} );\n\t\n\t_api_registerPlural( 'rows().remove()', 'row().remove()', function () {\n\t\tvar that = this;\n\t\n\t\tthis.iterator( 'row', function ( settings, row, thatIdx ) {\n\t\t\tvar data = settings.aoData;\n\t\t\tvar rowData = data[ row ];\n\t\t\tvar i, ien, j, jen;\n\t\t\tvar loopRow, loopCells;\n\t\n\t\t\tdata.splice( row, 1 );\n\t\n\t\t\t// Update the cached indexes\n\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\tloopRow = data[i];\n\t\t\t\tloopCells = loopRow.anCells;\n\t\n\t\t\t\t// Rows\n\t\t\t\tif ( loopRow.nTr !== null ) {\n\t\t\t\t\tloopRow.nTr._DT_RowIndex = i;\n\t\t\t\t}\n\t\n\t\t\t\t// Cells\n\t\t\t\tif ( loopCells !== null ) {\n\t\t\t\t\tfor ( j=0, jen=loopCells.length ; j<jen ; j++ ) {\n\t\t\t\t\t\tloopCells[j]._DT_CellIndex.row = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// Delete from the display arrays\n\t\t\t_fnDeleteIndex( settings.aiDisplayMaster, row );\n\t\t\t_fnDeleteIndex( settings.aiDisplay, row );\n\t\t\t_fnDeleteIndex( that[ thatIdx ], row, false ); // maintain local indexes\n\t\n\t\t\t// For server-side processing tables - subtract the deleted row from the count\n\t\t\tif ( settings._iRecordsDisplay > 0 ) {\n\t\t\t\tsettings._iRecordsDisplay--;\n\t\t\t}\n\t\n\t\t\t// Check for an 'overflow' they case for displaying the table\n\t\t\t_fnLengthOverflow( settings );\n\t\n\t\t\t// Remove the row's ID reference if there is one\n\t\t\tvar id = settings.rowIdFn( rowData._aData );\n\t\t\tif ( id !== undefined ) {\n\t\t\t\tdelete settings.aIds[ id ];\n\t\t\t}\n\t\t} );\n\t\n\t\tthis.iterator( 'table', function ( settings ) {\n\t\t\tfor ( var i=0, ien=settings.aoData.length ; i<ien ; i++ ) {\n\t\t\t\tsettings.aoData[i].idx = i;\n\t\t\t}\n\t\t} );\n\t\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( 'rows.add()', function ( rows ) {\n\t\tvar newRows = this.iterator( 'table', function ( settings ) {\n\t\t\t\tvar row, i, ien;\n\t\t\t\tvar out = [];\n\t\n\t\t\t\tfor ( i=0, ien=rows.length ; i<ien ; i++ ) {\n\t\t\t\t\trow = rows[i];\n\t\n\t\t\t\t\tif ( row.nodeName && row.nodeName.toUpperCase() === 'TR' ) {\n\t\t\t\t\t\tout.push( _fnAddTr( settings, row )[0] );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tout.push( _fnAddData( settings, row ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn out;\n\t\t\t}, 1 );\n\t\n\t\t// Return an Api.rows() extended instance, so rows().nodes() etc can be used\n\t\tvar modRows = this.rows( -1 );\n\t\tmodRows.pop();\n\t\t$.merge( modRows, newRows );\n\t\n\t\treturn modRows;\n\t} );\n\t\n\t\n\t\n\t\n\t\n\t/**\n\t *\n\t */\n\t_api_register( 'row()', function ( selector, opts ) {\n\t\treturn _selector_first( this.rows( selector, opts ) );\n\t} );\n\t\n\t\n\t_api_register( 'row().data()', function ( data ) {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( data === undefined ) {\n\t\t\t// Get\n\t\t\treturn ctx.length && this.length ?\n\t\t\t\tctx[0].aoData[ this[0] ]._aData :\n\t\t\t\tundefined;\n\t\t}\n\t\n\t\t// Set\n\t\tvar row = ctx[0].aoData[ this[0] ];\n\t\trow._aData = data;\n\t\n\t\t// If the DOM has an id, and the data source is an array\n\t\tif ( Array.isArray( data ) && row.nTr && row.nTr.id ) {\n\t\t\t_fnSetObjectDataFn( ctx[0].rowId )( data, row.nTr.id );\n\t\t}\n\t\n\t\t// Automatically invalidate\n\t\t_fnInvalidate( ctx[0], this[0], 'data' );\n\t\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( 'row().node()', function () {\n\t\tvar ctx = this.context;\n\t\n\t\treturn ctx.length && this.length ?\n\t\t\tctx[0].aoData[ this[0] ].nTr || null :\n\t\t\tnull;\n\t} );\n\t\n\t\n\t_api_register( 'row.add()', function ( row ) {\n\t\t// Allow a jQuery object to be passed in - only a single row is added from\n\t\t// it though - the first element in the set\n\t\tif ( row instanceof $ && row.length ) {\n\t\t\trow = row[0];\n\t\t}\n\t\n\t\tvar rows = this.iterator( 'table', function ( settings ) {\n\t\t\tif ( row.nodeName && row.nodeName.toUpperCase() === 'TR' ) {\n\t\t\t\treturn _fnAddTr( settings, row )[0];\n\t\t\t}\n\t\t\treturn _fnAddData( settings, row );\n\t\t} );\n\t\n\t\t// Return an Api.rows() extended instance, with the newly added row selected\n\t\treturn this.row( rows[0] );\n\t} );\n\t\n\t\n\t\n\tvar __details_add = function ( ctx, row, data, klass )\n\t{\n\t\t// Convert to array of TR elements\n\t\tvar rows = [];\n\t\tvar addRow = function ( r, k ) {\n\t\t\t// Recursion to allow for arrays of jQuery objects\n\t\t\tif ( Array.isArray( r ) || r instanceof $ ) {\n\t\t\t\tfor ( var i=0, ien=r.length ; i<ien ; i++ ) {\n\t\t\t\t\taddRow( r[i], k );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// If we get a TR element, then just add it directly - up to the dev\n\t\t\t// to add the correct number of columns etc\n\t\t\tif ( r.nodeName && r.nodeName.toLowerCase() === 'tr' ) {\n\t\t\t\trows.push( r );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Otherwise create a row with a wrapper\n\t\t\t\tvar created = $('<tr><td></td></tr>').addClass( k );\n\t\t\t\t$('td', created)\n\t\t\t\t\t.addClass( k )\n\t\t\t\t\t.html( r )\n\t\t\t\t\t[0].colSpan = _fnVisbleColumns( ctx );\n\t\n\t\t\t\trows.push( created[0] );\n\t\t\t}\n\t\t};\n\t\n\t\taddRow( data, klass );\n\t\n\t\tif ( row._details ) {\n\t\t\trow._details.detach();\n\t\t}\n\t\n\t\trow._details = $(rows);\n\t\n\t\t// If the children were already shown, that state should be retained\n\t\tif ( row._detailsShow ) {\n\t\t\trow._details.insertAfter( row.nTr );\n\t\t}\n\t};\n\t\n\t\n\tvar __details_remove = function ( api, idx )\n\t{\n\t\tvar ctx = api.context;\n\t\n\t\tif ( ctx.length ) {\n\t\t\tvar row = ctx[0].aoData[ idx !== undefined ? idx : api[0] ];\n\t\n\t\t\tif ( row && row._details ) {\n\t\t\t\trow._details.remove();\n\t\n\t\t\t\trow._detailsShow = undefined;\n\t\t\t\trow._details = undefined;\n\t\t\t}\n\t\t}\n\t};\n\t\n\t\n\tvar __details_display = function ( api, show ) {\n\t\tvar ctx = api.context;\n\t\n\t\tif ( ctx.length && api.length ) {\n\t\t\tvar row = ctx[0].aoData[ api[0] ];\n\t\n\t\t\tif ( row._details ) {\n\t\t\t\trow._detailsShow = show;\n\t\n\t\t\t\tif ( show ) {\n\t\t\t\t\trow._details.insertAfter( row.nTr );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow._details.detach();\n\t\t\t\t}\n\t\n\t\t\t\t__details_events( ctx[0] );\n\t\t\t}\n\t\t}\n\t};\n\t\n\t\n\tvar __details_events = function ( settings )\n\t{\n\t\tvar api = new _Api( settings );\n\t\tvar namespace = '.dt.DT_details';\n\t\tvar drawEvent = 'draw'+namespace;\n\t\tvar colvisEvent = 'column-visibility'+namespace;\n\t\tvar destroyEvent = 'destroy'+namespace;\n\t\tvar data = settings.aoData;\n\t\n\t\tapi.off( drawEvent +' '+ colvisEvent +' '+ destroyEvent );\n\t\n\t\tif ( _pluck( data, '_details' ).length > 0 ) {\n\t\t\t// On each draw, insert the required elements into the document\n\t\t\tapi.on( drawEvent, function ( e, ctx ) {\n\t\t\t\tif ( settings !== ctx ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tapi.rows( {page:'current'} ).eq(0).each( function (idx) {\n\t\t\t\t\t// Internal data grab\n\t\t\t\t\tvar row = data[ idx ];\n\t\n\t\t\t\t\tif ( row._detailsShow ) {\n\t\t\t\t\t\trow._details.insertAfter( row.nTr );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\n\t\t\t// Column visibility change - update the colspan\n\t\t\tapi.on( colvisEvent, function ( e, ctx, idx, vis ) {\n\t\t\t\tif ( settings !== ctx ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\t// Update the colspan for the details rows (note, only if it already has\n\t\t\t\t// a colspan)\n\t\t\t\tvar row, visible = _fnVisbleColumns( ctx );\n\t\n\t\t\t\tfor ( var i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\trow = data[i];\n\t\n\t\t\t\t\tif ( row._details ) {\n\t\t\t\t\t\trow._details.children('td[colspan]').attr('colspan', visible );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\t// Table destroyed - nuke any child rows\n\t\t\tapi.on( destroyEvent, function ( e, ctx ) {\n\t\t\t\tif ( settings !== ctx ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tfor ( var i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( data[i]._details ) {\n\t\t\t\t\t\t__details_remove( api, i );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\t\n\t// Strings for the method names to help minification\n\tvar _emp = '';\n\tvar _child_obj = _emp+'row().child';\n\tvar _child_mth = _child_obj+'()';\n\t\n\t// data can be:\n\t//  tr\n\t//  string\n\t//  jQuery or array of any of the above\n\t_api_register( _child_mth, function ( data, klass ) {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( data === undefined ) {\n\t\t\t// get\n\t\t\treturn ctx.length && this.length ?\n\t\t\t\tctx[0].aoData[ this[0] ]._details :\n\t\t\t\tundefined;\n\t\t}\n\t\telse if ( data === true ) {\n\t\t\t// show\n\t\t\tthis.child.show();\n\t\t}\n\t\telse if ( data === false ) {\n\t\t\t// remove\n\t\t\t__details_remove( this );\n\t\t}\n\t\telse if ( ctx.length && this.length ) {\n\t\t\t// set\n\t\t\t__details_add( ctx[0], ctx[0].aoData[ this[0] ], data, klass );\n\t\t}\n\t\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( [\n\t\t_child_obj+'.show()',\n\t\t_child_mth+'.show()' // only when `child()` was called with parameters (without\n\t], function ( show ) {   // it returns an object and this method is not executed)\n\t\t__details_display( this, true );\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( [\n\t\t_child_obj+'.hide()',\n\t\t_child_mth+'.hide()' // only when `child()` was called with parameters (without\n\t], function () {         // it returns an object and this method is not executed)\n\t\t__details_display( this, false );\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( [\n\t\t_child_obj+'.remove()',\n\t\t_child_mth+'.remove()' // only when `child()` was called with parameters (without\n\t], function () {           // it returns an object and this method is not executed)\n\t\t__details_remove( this );\n\t\treturn this;\n\t} );\n\t\n\t\n\t_api_register( _child_obj+'.isShown()', function () {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( ctx.length && this.length ) {\n\t\t\t// _detailsShown as false or undefined will fall through to return false\n\t\t\treturn ctx[0].aoData[ this[0] ]._detailsShow || false;\n\t\t}\n\t\treturn false;\n\t} );\n\t\n\t\n\t\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Columns\n\t *\n\t * {integer}           - column index (>=0 count from left, <0 count from right)\n\t * \"{integer}:visIdx\"  - visible column index (i.e. translate to column index)  (>=0 count from left, <0 count from right)\n\t * \"{integer}:visible\" - alias for {integer}:visIdx  (>=0 count from left, <0 count from right)\n\t * \"{string}:name\"     - column name\n\t * \"{string}\"          - jQuery selector on column header nodes\n\t *\n\t */\n\t\n\t// can be an array of these items, comma separated list, or an array of comma\n\t// separated lists\n\t\n\tvar __re_column_selector = /^([^:]+):(name|visIdx|visible)$/;\n\t\n\t\n\t// r1 and r2 are redundant - but it means that the parameters match for the\n\t// iterator callback in columns().data()\n\tvar __columnData = function ( settings, column, r1, r2, rows ) {\n\t\tvar a = [];\n\t\tfor ( var row=0, ien=rows.length ; row<ien ; row++ ) {\n\t\t\ta.push( _fnGetCellData( settings, rows[row], column ) );\n\t\t}\n\t\treturn a;\n\t};\n\t\n\t\n\tvar __column_selector = function ( settings, selector, opts )\n\t{\n\t\tvar\n\t\t\tcolumns = settings.aoColumns,\n\t\t\tnames = _pluck( columns, 'sName' ),\n\t\t\tnodes = _pluck( columns, 'nTh' );\n\t\n\t\tvar run = function ( s ) {\n\t\t\tvar selInt = _intVal( s );\n\t\n\t\t\t// Selector - all\n\t\t\tif ( s === '' ) {\n\t\t\t\treturn _range( columns.length );\n\t\t\t}\n\t\n\t\t\t// Selector - index\n\t\t\tif ( selInt !== null ) {\n\t\t\t\treturn [ selInt >= 0 ?\n\t\t\t\t\tselInt : // Count from left\n\t\t\t\t\tcolumns.length + selInt // Count from right (+ because its a negative value)\n\t\t\t\t];\n\t\t\t}\n\t\n\t\t\t// Selector = function\n\t\t\tif ( typeof s === 'function' ) {\n\t\t\t\tvar rows = _selector_row_indexes( settings, opts );\n\t\n\t\t\t\treturn $.map( columns, function (col, idx) {\n\t\t\t\t\treturn s(\n\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\t__columnData( settings, idx, 0, 0, rows ),\n\t\t\t\t\t\t\tnodes[ idx ]\n\t\t\t\t\t\t) ? idx : null;\n\t\t\t\t} );\n\t\t\t}\n\t\n\t\t\t// jQuery or string selector\n\t\t\tvar match = typeof s === 'string' ?\n\t\t\t\ts.match( __re_column_selector ) :\n\t\t\t\t'';\n\t\n\t\t\tif ( match ) {\n\t\t\t\tswitch( match[2] ) {\n\t\t\t\t\tcase 'visIdx':\n\t\t\t\t\tcase 'visible':\n\t\t\t\t\t\tvar idx = parseInt( match[1], 10 );\n\t\t\t\t\t\t// Visible index given, convert to column index\n\t\t\t\t\t\tif ( idx < 0 ) {\n\t\t\t\t\t\t\t// Counting from the right\n\t\t\t\t\t\t\tvar visColumns = $.map( columns, function (col,i) {\n\t\t\t\t\t\t\t\treturn col.bVisible ? i : null;\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn [ visColumns[ visColumns.length + idx ] ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Counting from the left\n\t\t\t\t\t\treturn [ _fnVisibleToColumnIndex( settings, idx ) ];\n\t\n\t\t\t\t\tcase 'name':\n\t\t\t\t\t\t// match by name. `names` is column index complete and in order\n\t\t\t\t\t\treturn $.map( names, function (name, i) {\n\t\t\t\t\t\t\treturn name === match[1] ? i : null;\n\t\t\t\t\t\t} );\n\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// Cell in the table body\n\t\t\tif ( s.nodeName && s._DT_CellIndex ) {\n\t\t\t\treturn [ s._DT_CellIndex.column ];\n\t\t\t}\n\t\n\t\t\t// jQuery selector on the TH elements for the columns\n\t\t\tvar jqResult = $( nodes )\n\t\t\t\t.filter( s )\n\t\t\t\t.map( function () {\n\t\t\t\t\treturn $.inArray( this, nodes ); // `nodes` is column index complete and in order\n\t\t\t\t} )\n\t\t\t\t.toArray();\n\t\n\t\t\tif ( jqResult.length || ! s.nodeName ) {\n\t\t\t\treturn jqResult;\n\t\t\t}\n\t\n\t\t\t// Otherwise a node which might have a `dt-column` data attribute, or be\n\t\t\t// a child or such an element\n\t\t\tvar host = $(s).closest('*[data-dt-column]');\n\t\t\treturn host.length ?\n\t\t\t\t[ host.data('dt-column') ] :\n\t\t\t\t[];\n\t\t};\n\t\n\t\treturn _selector_run( 'column', selector, run, settings, opts );\n\t};\n\t\n\t\n\tvar __setColumnVis = function ( settings, column, vis ) {\n\t\tvar\n\t\t\tcols = settings.aoColumns,\n\t\t\tcol  = cols[ column ],\n\t\t\tdata = settings.aoData,\n\t\t\trow, cells, i, ien, tr;\n\t\n\t\t// Get\n\t\tif ( vis === undefined ) {\n\t\t\treturn col.bVisible;\n\t\t}\n\t\n\t\t// Set\n\t\t// No change\n\t\tif ( col.bVisible === vis ) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tif ( vis ) {\n\t\t\t// Insert column\n\t\t\t// Need to decide if we should use appendChild or insertBefore\n\t\t\tvar insertBefore = $.inArray( true, _pluck(cols, 'bVisible'), column+1 );\n\t\n\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\ttr = data[i].nTr;\n\t\t\t\tcells = data[i].anCells;\n\t\n\t\t\t\tif ( tr ) {\n\t\t\t\t\t// insertBefore can act like appendChild if 2nd arg is null\n\t\t\t\t\ttr.insertBefore( cells[ column ], cells[ insertBefore ] || null );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Remove column\n\t\t\t$( _pluck( settings.aoData, 'anCells', column ) ).detach();\n\t\t}\n\t\n\t\t// Common actions\n\t\tcol.bVisible = vis;\n\t};\n\t\n\t\n\t_api_register( 'columns()', function ( selector, opts ) {\n\t\t// argument shifting\n\t\tif ( selector === undefined ) {\n\t\t\tselector = '';\n\t\t}\n\t\telse if ( $.isPlainObject( selector ) ) {\n\t\t\topts = selector;\n\t\t\tselector = '';\n\t\t}\n\t\n\t\topts = _selector_opts( opts );\n\t\n\t\tvar inst = this.iterator( 'table', function ( settings ) {\n\t\t\treturn __column_selector( settings, selector, opts );\n\t\t}, 1 );\n\t\n\t\t// Want argument shifting here and in _row_selector?\n\t\tinst.selector.cols = selector;\n\t\tinst.selector.opts = opts;\n\t\n\t\treturn inst;\n\t} );\n\t\n\t_api_registerPlural( 'columns().header()', 'column().header()', function ( selector, opts ) {\n\t\treturn this.iterator( 'column', function ( settings, column ) {\n\t\t\treturn settings.aoColumns[column].nTh;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().footer()', 'column().footer()', function ( selector, opts ) {\n\t\treturn this.iterator( 'column', function ( settings, column ) {\n\t\t\treturn settings.aoColumns[column].nTf;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().data()', 'column().data()', function () {\n\t\treturn this.iterator( 'column-rows', __columnData, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().dataSrc()', 'column().dataSrc()', function () {\n\t\treturn this.iterator( 'column', function ( settings, column ) {\n\t\t\treturn settings.aoColumns[column].mData;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().cache()', 'column().cache()', function ( type ) {\n\t\treturn this.iterator( 'column-rows', function ( settings, column, i, j, rows ) {\n\t\t\treturn _pluck_order( settings.aoData, rows,\n\t\t\t\ttype === 'search' ? '_aFilterData' : '_aSortData', column\n\t\t\t);\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().nodes()', 'column().nodes()', function () {\n\t\treturn this.iterator( 'column-rows', function ( settings, column, i, j, rows ) {\n\t\t\treturn _pluck_order( settings.aoData, rows, 'anCells', column ) ;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_registerPlural( 'columns().visible()', 'column().visible()', function ( vis, calc ) {\n\t\tvar that = this;\n\t\tvar ret = this.iterator( 'column', function ( settings, column ) {\n\t\t\tif ( vis === undefined ) {\n\t\t\t\treturn settings.aoColumns[ column ].bVisible;\n\t\t\t} // else\n\t\t\t__setColumnVis( settings, column, vis );\n\t\t} );\n\t\n\t\t// Group the column visibility changes\n\t\tif ( vis !== undefined ) {\n\t\t\tthis.iterator( 'table', function ( settings ) {\n\t\t\t\t// Redraw the header after changes\n\t\t\t\t_fnDrawHead( settings, settings.aoHeader );\n\t\t\t\t_fnDrawHead( settings, settings.aoFooter );\n\t\t\n\t\t\t\t// Update colspan for no records display. Child rows and extensions will use their own\n\t\t\t\t// listeners to do this - only need to update the empty table item here\n\t\t\t\tif ( ! settings.aiDisplay.length ) {\n\t\t\t\t\t$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));\n\t\t\t\t}\n\t\t\n\t\t\t\t_fnSaveState( settings );\n\t\n\t\t\t\t// Second loop once the first is done for events\n\t\t\t\tthat.iterator( 'column', function ( settings, column ) {\n\t\t\t\t\t_fnCallbackFire( settings, null, 'column-visibility', [settings, column, vis, calc] );\n\t\t\t\t} );\n\t\n\t\t\t\tif ( calc === undefined || calc ) {\n\t\t\t\t\tthat.columns.adjust();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\n\t\treturn ret;\n\t} );\n\t\n\t_api_registerPlural( 'columns().indexes()', 'column().index()', function ( type ) {\n\t\treturn this.iterator( 'column', function ( settings, column ) {\n\t\t\treturn type === 'visible' ?\n\t\t\t\t_fnColumnIndexToVisible( settings, column ) :\n\t\t\t\tcolumn;\n\t\t}, 1 );\n\t} );\n\t\n\t_api_register( 'columns.adjust()', function () {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnAdjustColumnSizing( settings );\n\t\t}, 1 );\n\t} );\n\t\n\t_api_register( 'column.index()', function ( type, idx ) {\n\t\tif ( this.context.length !== 0 ) {\n\t\t\tvar ctx = this.context[0];\n\t\n\t\t\tif ( type === 'fromVisible' || type === 'toData' ) {\n\t\t\t\treturn _fnVisibleToColumnIndex( ctx, idx );\n\t\t\t}\n\t\t\telse if ( type === 'fromData' || type === 'toVisible' ) {\n\t\t\t\treturn _fnColumnIndexToVisible( ctx, idx );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\t_api_register( 'column()', function ( selector, opts ) {\n\t\treturn _selector_first( this.columns( selector, opts ) );\n\t} );\n\t\n\tvar __cell_selector = function ( settings, selector, opts )\n\t{\n\t\tvar data = settings.aoData;\n\t\tvar rows = _selector_row_indexes( settings, opts );\n\t\tvar cells = _removeEmpty( _pluck_order( data, rows, 'anCells' ) );\n\t\tvar allCells = $(_flatten( [], cells ));\n\t\tvar row;\n\t\tvar columns = settings.aoColumns.length;\n\t\tvar a, i, ien, j, o, host;\n\t\n\t\tvar run = function ( s ) {\n\t\t\tvar fnSelector = typeof s === 'function';\n\t\n\t\t\tif ( s === null || s === undefined || fnSelector ) {\n\t\t\t\t// All cells and function selectors\n\t\t\t\ta = [];\n\t\n\t\t\t\tfor ( i=0, ien=rows.length ; i<ien ; i++ ) {\n\t\t\t\t\trow = rows[i];\n\t\n\t\t\t\t\tfor ( j=0 ; j<columns ; j++ ) {\n\t\t\t\t\t\to = {\n\t\t\t\t\t\t\trow: row,\n\t\t\t\t\t\t\tcolumn: j\n\t\t\t\t\t\t};\n\t\n\t\t\t\t\t\tif ( fnSelector ) {\n\t\t\t\t\t\t\t// Selector - function\n\t\t\t\t\t\t\thost = data[ row ];\n\t\n\t\t\t\t\t\t\tif ( s( o, _fnGetCellData(settings, row, j), host.anCells ? host.anCells[j] : null ) ) {\n\t\t\t\t\t\t\t\ta.push( o );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Selector - all\n\t\t\t\t\t\t\ta.push( o );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\treturn a;\n\t\t\t}\n\t\t\t\n\t\t\t// Selector - index\n\t\t\tif ( $.isPlainObject( s ) ) {\n\t\t\t\t// Valid cell index and its in the array of selectable rows\n\t\t\t\treturn s.column !== undefined && s.row !== undefined && $.inArray( s.row, rows ) !== -1 ?\n\t\t\t\t\t[s] :\n\t\t\t\t\t[];\n\t\t\t}\n\t\n\t\t\t// Selector - jQuery filtered cells\n\t\t\tvar jqResult = allCells\n\t\t\t\t.filter( s )\n\t\t\t\t.map( function (i, el) {\n\t\t\t\t\treturn { // use a new object, in case someone changes the values\n\t\t\t\t\t\trow:    el._DT_CellIndex.row,\n\t\t\t\t\t\tcolumn: el._DT_CellIndex.column\n\t \t\t\t\t};\n\t\t\t\t} )\n\t\t\t\t.toArray();\n\t\n\t\t\tif ( jqResult.length || ! s.nodeName ) {\n\t\t\t\treturn jqResult;\n\t\t\t}\n\t\n\t\t\t// Otherwise the selector is a node, and there is one last option - the\n\t\t\t// element might be a child of an element which has dt-row and dt-column\n\t\t\t// data attributes\n\t\t\thost = $(s).closest('*[data-dt-row]');\n\t\t\treturn host.length ?\n\t\t\t\t[ {\n\t\t\t\t\trow: host.data('dt-row'),\n\t\t\t\t\tcolumn: host.data('dt-column')\n\t\t\t\t} ] :\n\t\t\t\t[];\n\t\t};\n\t\n\t\treturn _selector_run( 'cell', selector, run, settings, opts );\n\t};\n\t\n\t\n\t\n\t\n\t_api_register( 'cells()', function ( rowSelector, columnSelector, opts ) {\n\t\t// Argument shifting\n\t\tif ( $.isPlainObject( rowSelector ) ) {\n\t\t\t// Indexes\n\t\t\tif ( rowSelector.row === undefined ) {\n\t\t\t\t// Selector options in first parameter\n\t\t\t\topts = rowSelector;\n\t\t\t\trowSelector = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Cell index objects in first parameter\n\t\t\t\topts = columnSelector;\n\t\t\t\tcolumnSelector = null;\n\t\t\t}\n\t\t}\n\t\tif ( $.isPlainObject( columnSelector ) ) {\n\t\t\topts = columnSelector;\n\t\t\tcolumnSelector = null;\n\t\t}\n\t\n\t\t// Cell selector\n\t\tif ( columnSelector === null || columnSelector === undefined ) {\n\t\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t\treturn __cell_selector( settings, rowSelector, _selector_opts( opts ) );\n\t\t\t} );\n\t\t}\n\t\n\t\t// The default built in options need to apply to row and columns\n\t\tvar internalOpts = opts ? {\n\t\t\tpage: opts.page,\n\t\t\torder: opts.order,\n\t\t\tsearch: opts.search\n\t\t} : {};\n\t\n\t\t// Row + column selector\n\t\tvar columns = this.columns( columnSelector, internalOpts );\n\t\tvar rows = this.rows( rowSelector, internalOpts );\n\t\tvar i, ien, j, jen;\n\t\n\t\tvar cellsNoOpts = this.iterator( 'table', function ( settings, idx ) {\n\t\t\tvar a = [];\n\t\n\t\t\tfor ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {\n\t\t\t\tfor ( j=0, jen=columns[idx].length ; j<jen ; j++ ) {\n\t\t\t\t\ta.push( {\n\t\t\t\t\t\trow:    rows[idx][i],\n\t\t\t\t\t\tcolumn: columns[idx][j]\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn a;\n\t\t}, 1 );\n\t\n\t\t// There is currently only one extension which uses a cell selector extension\n\t\t// It is a _major_ performance drag to run this if it isn't needed, so this is\n\t\t// an extension specific check at the moment\n\t\tvar cells = opts && opts.selected ?\n\t\t\tthis.cells( cellsNoOpts, opts ) :\n\t\t\tcellsNoOpts;\n\t\n\t\t$.extend( cells.selector, {\n\t\t\tcols: columnSelector,\n\t\t\trows: rowSelector,\n\t\t\topts: opts\n\t\t} );\n\t\n\t\treturn cells;\n\t} );\n\t\n\t\n\t_api_registerPlural( 'cells().nodes()', 'cell().node()', function () {\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\tvar data = settings.aoData[ row ];\n\t\n\t\t\treturn data && data.anCells ?\n\t\t\t\tdata.anCells[ column ] :\n\t\t\t\tundefined;\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_register( 'cells().data()', function () {\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\treturn _fnGetCellData( settings, row, column );\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'cells().cache()', 'cell().cache()', function ( type ) {\n\t\ttype = type === 'search' ? '_aFilterData' : '_aSortData';\n\t\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\treturn settings.aoData[ row ][ type ][ column ];\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'cells().render()', 'cell().render()', function ( type ) {\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\treturn _fnGetCellData( settings, row, column, type );\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'cells().indexes()', 'cell().index()', function () {\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\treturn {\n\t\t\t\trow: row,\n\t\t\t\tcolumn: column,\n\t\t\t\tcolumnVisible: _fnColumnIndexToVisible( settings, column )\n\t\t\t};\n\t\t}, 1 );\n\t} );\n\t\n\t\n\t_api_registerPlural( 'cells().invalidate()', 'cell().invalidate()', function ( src ) {\n\t\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\t\t_fnInvalidate( settings, row, src, column );\n\t\t} );\n\t} );\n\t\n\t\n\t\n\t_api_register( 'cell()', function ( rowSelector, columnSelector, opts ) {\n\t\treturn _selector_first( this.cells( rowSelector, columnSelector, opts ) );\n\t} );\n\t\n\t\n\t_api_register( 'cell().data()', function ( data ) {\n\t\tvar ctx = this.context;\n\t\tvar cell = this[0];\n\t\n\t\tif ( data === undefined ) {\n\t\t\t// Get\n\t\t\treturn ctx.length && cell.length ?\n\t\t\t\t_fnGetCellData( ctx[0], cell[0].row, cell[0].column ) :\n\t\t\t\tundefined;\n\t\t}\n\t\n\t\t// Set\n\t\t_fnSetCellData( ctx[0], cell[0].row, cell[0].column, data );\n\t\t_fnInvalidate( ctx[0], cell[0].row, 'data', cell[0].column );\n\t\n\t\treturn this;\n\t} );\n\t\n\t\n\t\n\t/**\n\t * Get current ordering (sorting) that has been applied to the table.\n\t *\n\t * @returns {array} 2D array containing the sorting information for the first\n\t *   table in the current context. Each element in the parent array represents\n\t *   a column being sorted upon (i.e. multi-sorting with two columns would have\n\t *   2 inner arrays). The inner arrays may have 2 or 3 elements. The first is\n\t *   the column index that the sorting condition applies to, the second is the\n\t *   direction of the sort (`desc` or `asc`) and, optionally, the third is the\n\t *   index of the sorting order from the `column.sorting` initialisation array.\n\t *//**\n\t * Set the ordering for the table.\n\t *\n\t * @param {integer} order Column index to sort upon.\n\t * @param {string} direction Direction of the sort to be applied (`asc` or `desc`)\n\t * @returns {DataTables.Api} this\n\t *//**\n\t * Set the ordering for the table.\n\t *\n\t * @param {array} order 1D array of sorting information to be applied.\n\t * @param {array} [...] Optional additional sorting conditions\n\t * @returns {DataTables.Api} this\n\t *//**\n\t * Set the ordering for the table.\n\t *\n\t * @param {array} order 2D array of sorting information to be applied.\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'order()', function ( order, dir ) {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( order === undefined ) {\n\t\t\t// get\n\t\t\treturn ctx.length !== 0 ?\n\t\t\t\tctx[0].aaSorting :\n\t\t\t\tundefined;\n\t\t}\n\t\n\t\t// set\n\t\tif ( typeof order === 'number' ) {\n\t\t\t// Simple column / direction passed in\n\t\t\torder = [ [ order, dir ] ];\n\t\t}\n\t\telse if ( order.length && ! Array.isArray( order[0] ) ) {\n\t\t\t// Arguments passed in (list of 1D arrays)\n\t\t\torder = Array.prototype.slice.call( arguments );\n\t\t}\n\t\t// otherwise a 2D array was passed in\n\t\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tsettings.aaSorting = order.slice();\n\t\t} );\n\t} );\n\t\n\t\n\t/**\n\t * Attach a sort listener to an element for a given column\n\t *\n\t * @param {node|jQuery|string} node Identifier for the element(s) to attach the\n\t *   listener to. This can take the form of a single DOM node, a jQuery\n\t *   collection of nodes or a jQuery selector which will identify the node(s).\n\t * @param {integer} column the column that a click on this node will sort on\n\t * @param {function} [callback] callback function when sort is run\n\t * @returns {DataTables.Api} this\n\t */\n\t_api_register( 'order.listener()', function ( node, column, callback ) {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnSortAttachListener( settings, node, column, callback );\n\t\t} );\n\t} );\n\t\n\t\n\t_api_register( 'order.fixed()', function ( set ) {\n\t\tif ( ! set ) {\n\t\t\tvar ctx = this.context;\n\t\t\tvar fixed = ctx.length ?\n\t\t\t\tctx[0].aaSortingFixed :\n\t\t\t\tundefined;\n\t\n\t\t\treturn Array.isArray( fixed ) ?\n\t\t\t\t{ pre: fixed } :\n\t\t\t\tfixed;\n\t\t}\n\t\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tsettings.aaSortingFixed = $.extend( true, {}, set );\n\t\t} );\n\t} );\n\t\n\t\n\t// Order by the selected column(s)\n\t_api_register( [\n\t\t'columns().order()',\n\t\t'column().order()'\n\t], function ( dir ) {\n\t\tvar that = this;\n\t\n\t\treturn this.iterator( 'table', function ( settings, i ) {\n\t\t\tvar sort = [];\n\t\n\t\t\t$.each( that[i], function (j, col) {\n\t\t\t\tsort.push( [ col, dir ] );\n\t\t\t} );\n\t\n\t\t\tsettings.aaSorting = sort;\n\t\t} );\n\t} );\n\t\n\t\n\t\n\t_api_register( 'search()', function ( input, regex, smart, caseInsen ) {\n\t\tvar ctx = this.context;\n\t\n\t\tif ( input === undefined ) {\n\t\t\t// get\n\t\t\treturn ctx.length !== 0 ?\n\t\t\t\tctx[0].oPreviousSearch.sSearch :\n\t\t\t\tundefined;\n\t\t}\n\t\n\t\t// set\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tif ( ! settings.oFeatures.bFilter ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t_fnFilterComplete( settings, $.extend( {}, settings.oPreviousSearch, {\n\t\t\t\t\"sSearch\": input+\"\",\n\t\t\t\t\"bRegex\":  regex === null ? false : regex,\n\t\t\t\t\"bSmart\":  smart === null ? true  : smart,\n\t\t\t\t\"bCaseInsensitive\": caseInsen === null ? true : caseInsen\n\t\t\t} ), 1 );\n\t\t} );\n\t} );\n\t\n\t\n\t_api_registerPlural(\n\t\t'columns().search()',\n\t\t'column().search()',\n\t\tfunction ( input, regex, smart, caseInsen ) {\n\t\t\treturn this.iterator( 'column', function ( settings, column ) {\n\t\t\t\tvar preSearch = settings.aoPreSearchCols;\n\t\n\t\t\t\tif ( input === undefined ) {\n\t\t\t\t\t// get\n\t\t\t\t\treturn preSearch[ column ].sSearch;\n\t\t\t\t}\n\t\n\t\t\t\t// set\n\t\t\t\tif ( ! settings.oFeatures.bFilter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\t$.extend( preSearch[ column ], {\n\t\t\t\t\t\"sSearch\": input+\"\",\n\t\t\t\t\t\"bRegex\":  regex === null ? false : regex,\n\t\t\t\t\t\"bSmart\":  smart === null ? true  : smart,\n\t\t\t\t\t\"bCaseInsensitive\": caseInsen === null ? true : caseInsen\n\t\t\t\t} );\n\t\n\t\t\t\t_fnFilterComplete( settings, settings.oPreviousSearch, 1 );\n\t\t\t} );\n\t\t}\n\t);\n\t\n\t/*\n\t * State API methods\n\t */\n\t\n\t_api_register( 'state()', function () {\n\t\treturn this.context.length ?\n\t\t\tthis.context[0].oSavedState :\n\t\t\tnull;\n\t} );\n\t\n\t\n\t_api_register( 'state.clear()', function () {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t// Save an empty object\n\t\t\tsettings.fnStateSaveCallback.call( settings.oInstance, settings, {} );\n\t\t} );\n\t} );\n\t\n\t\n\t_api_register( 'state.loaded()', function () {\n\t\treturn this.context.length ?\n\t\t\tthis.context[0].oLoadedState :\n\t\t\tnull;\n\t} );\n\t\n\t\n\t_api_register( 'state.save()', function () {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnSaveState( settings );\n\t\t} );\n\t} );\n\t\n\t\n\t\n\t/**\n\t * Provide a common method for plug-ins to check the version of DataTables being\n\t * used, in order to ensure compatibility.\n\t *\n\t *  @param {string} version Version string to check for, in the format \"X.Y.Z\".\n\t *    Note that the formats \"X\" and \"X.Y\" are also acceptable.\n\t *  @returns {boolean} true if this version of DataTables is greater or equal to\n\t *    the required version, or false if this version of DataTales is not\n\t *    suitable\n\t *  @static\n\t *  @dtopt API-Static\n\t *\n\t *  @example\n\t *    alert( $.fn.dataTable.versionCheck( '1.9.0' ) );\n\t */\n\tDataTable.versionCheck = DataTable.fnVersionCheck = function( version )\n\t{\n\t\tvar aThis = DataTable.version.split('.');\n\t\tvar aThat = version.split('.');\n\t\tvar iThis, iThat;\n\t\n\t\tfor ( var i=0, iLen=aThat.length ; i<iLen ; i++ ) {\n\t\t\tiThis = parseInt( aThis[i], 10 ) || 0;\n\t\t\tiThat = parseInt( aThat[i], 10 ) || 0;\n\t\n\t\t\t// Parts are the same, keep comparing\n\t\t\tif (iThis === iThat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// Parts are different, return immediately\n\t\t\treturn iThis > iThat;\n\t\t}\n\t\n\t\treturn true;\n\t};\n\t\n\t\n\t/**\n\t * Check if a `<table>` node is a DataTable table already or not.\n\t *\n\t *  @param {node|jquery|string} table Table node, jQuery object or jQuery\n\t *      selector for the table to test. Note that if more than more than one\n\t *      table is passed on, only the first will be checked\n\t *  @returns {boolean} true the table given is a DataTable, or false otherwise\n\t *  @static\n\t *  @dtopt API-Static\n\t *\n\t *  @example\n\t *    if ( ! $.fn.DataTable.isDataTable( '#example' ) ) {\n\t *      $('#example').dataTable();\n\t *    }\n\t */\n\tDataTable.isDataTable = DataTable.fnIsDataTable = function ( table )\n\t{\n\t\tvar t = $(table).get(0);\n\t\tvar is = false;\n\t\n\t\tif ( table instanceof DataTable.Api ) {\n\t\t\treturn true;\n\t\t}\n\t\n\t\t$.each( DataTable.settings, function (i, o) {\n\t\t\tvar head = o.nScrollHead ? $('table', o.nScrollHead)[0] : null;\n\t\t\tvar foot = o.nScrollFoot ? $('table', o.nScrollFoot)[0] : null;\n\t\n\t\t\tif ( o.nTable === t || head === t || foot === t ) {\n\t\t\t\tis = true;\n\t\t\t}\n\t\t} );\n\t\n\t\treturn is;\n\t};\n\t\n\t\n\t/**\n\t * Get all DataTable tables that have been initialised - optionally you can\n\t * select to get only currently visible tables.\n\t *\n\t *  @param {boolean} [visible=false] Flag to indicate if you want all (default)\n\t *    or visible tables only.\n\t *  @returns {array} Array of `table` nodes (not DataTable instances) which are\n\t *    DataTables\n\t *  @static\n\t *  @dtopt API-Static\n\t *\n\t *  @example\n\t *    $.each( $.fn.dataTable.tables(true), function () {\n\t *      $(table).DataTable().columns.adjust();\n\t *    } );\n\t */\n\tDataTable.tables = DataTable.fnTables = function ( visible )\n\t{\n\t\tvar api = false;\n\t\n\t\tif ( $.isPlainObject( visible ) ) {\n\t\t\tapi = visible.api;\n\t\t\tvisible = visible.visible;\n\t\t}\n\t\n\t\tvar a = $.map( DataTable.settings, function (o) {\n\t\t\tif ( !visible || (visible && $(o.nTable).is(':visible')) ) {\n\t\t\t\treturn o.nTable;\n\t\t\t}\n\t\t} );\n\t\n\t\treturn api ?\n\t\t\tnew _Api( a ) :\n\t\t\ta;\n\t};\n\t\n\t\n\t/**\n\t * Convert from camel case parameters to Hungarian notation. This is made public\n\t * for the extensions to provide the same ability as DataTables core to accept\n\t * either the 1.9 style Hungarian notation, or the 1.10+ style camelCase\n\t * parameters.\n\t *\n\t *  @param {object} src The model object which holds all parameters that can be\n\t *    mapped.\n\t *  @param {object} user The object to convert from camel case to Hungarian.\n\t *  @param {boolean} force When set to `true`, properties which already have a\n\t *    Hungarian value in the `user` object will be overwritten. Otherwise they\n\t *    won't be.\n\t */\n\tDataTable.camelToHungarian = _fnCamelToHungarian;\n\t\n\t\n\t\n\t/**\n\t *\n\t */\n\t_api_register( '$()', function ( selector, opts ) {\n\t\tvar\n\t\t\trows   = this.rows( opts ).nodes(), // Get all rows\n\t\t\tjqRows = $(rows);\n\t\n\t\treturn $( [].concat(\n\t\t\tjqRows.filter( selector ).toArray(),\n\t\t\tjqRows.find( selector ).toArray()\n\t\t) );\n\t} );\n\t\n\t\n\t// jQuery functions to operate on the tables\n\t$.each( [ 'on', 'one', 'off' ], function (i, key) {\n\t\t_api_register( key+'()', function ( /* event, handler */ ) {\n\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\n\t\t\t// Add the `dt` namespace automatically if it isn't already present\n\t\t\targs[0] = $.map( args[0].split( /\\s/ ), function ( e ) {\n\t\t\t\treturn ! e.match(/\\.dt\\b/) ?\n\t\t\t\t\te+'.dt' :\n\t\t\t\t\te;\n\t\t\t\t} ).join( ' ' );\n\t\n\t\t\tvar inst = $( this.tables().nodes() );\n\t\t\tinst[key].apply( inst, args );\n\t\t\treturn this;\n\t\t} );\n\t} );\n\t\n\t\n\t_api_register( 'clear()', function () {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\t_fnClearTable( settings );\n\t\t} );\n\t} );\n\t\n\t\n\t_api_register( 'settings()', function () {\n\t\treturn new _Api( this.context, this.context );\n\t} );\n\t\n\t\n\t_api_register( 'init()', function () {\n\t\tvar ctx = this.context;\n\t\treturn ctx.length ? ctx[0].oInit : null;\n\t} );\n\t\n\t\n\t_api_register( 'data()', function () {\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\treturn _pluck( settings.aoData, '_aData' );\n\t\t} ).flatten();\n\t} );\n\t\n\t\n\t_api_register( 'destroy()', function ( remove ) {\n\t\tremove = remove || false;\n\t\n\t\treturn this.iterator( 'table', function ( settings ) {\n\t\t\tvar orig      = settings.nTableWrapper.parentNode;\n\t\t\tvar classes   = settings.oClasses;\n\t\t\tvar table     = settings.nTable;\n\t\t\tvar tbody     = settings.nTBody;\n\t\t\tvar thead     = settings.nTHead;\n\t\t\tvar tfoot     = settings.nTFoot;\n\t\t\tvar jqTable   = $(table);\n\t\t\tvar jqTbody   = $(tbody);\n\t\t\tvar jqWrapper = $(settings.nTableWrapper);\n\t\t\tvar rows      = $.map( settings.aoData, function (r) { return r.nTr; } );\n\t\t\tvar i, ien;\n\t\n\t\t\t// Flag to note that the table is currently being destroyed - no action\n\t\t\t// should be taken\n\t\t\tsettings.bDestroying = true;\n\t\n\t\t\t// Fire off the destroy callbacks for plug-ins etc\n\t\t\t_fnCallbackFire( settings, \"aoDestroyCallback\", \"destroy\", [settings] );\n\t\n\t\t\t// If not being removed from the document, make all columns visible\n\t\t\tif ( ! remove ) {\n\t\t\t\tnew _Api( settings ).columns().visible( true );\n\t\t\t}\n\t\n\t\t\t// Blitz all `DT` namespaced events (these are internal events, the\n\t\t\t// lowercase, `dt` events are user subscribed and they are responsible\n\t\t\t// for removing them\n\t\t\tjqWrapper.off('.DT').find(':not(tbody *)').off('.DT');\n\t\t\t$(window).off('.DT-'+settings.sInstance);\n\t\n\t\t\t// When scrolling we had to break the table up - restore it\n\t\t\tif ( table != thead.parentNode ) {\n\t\t\t\tjqTable.children('thead').detach();\n\t\t\t\tjqTable.append( thead );\n\t\t\t}\n\t\n\t\t\tif ( tfoot && table != tfoot.parentNode ) {\n\t\t\t\tjqTable.children('tfoot').detach();\n\t\t\t\tjqTable.append( tfoot );\n\t\t\t}\n\t\n\t\t\tsettings.aaSorting = [];\n\t\t\tsettings.aaSortingFixed = [];\n\t\t\t_fnSortingClasses( settings );\n\t\n\t\t\t$( rows ).removeClass( settings.asStripeClasses.join(' ') );\n\t\n\t\t\t$('th, td', thead).removeClass( classes.sSortable+' '+\n\t\t\t\tclasses.sSortableAsc+' '+classes.sSortableDesc+' '+classes.sSortableNone\n\t\t\t);\n\t\n\t\t\t// Add the TR elements back into the table in their original order\n\t\t\tjqTbody.children().detach();\n\t\t\tjqTbody.append( rows );\n\t\n\t\t\t// Remove the DataTables generated nodes, events and classes\n\t\t\tvar removedMethod = remove ? 'remove' : 'detach';\n\t\t\tjqTable[ removedMethod ]();\n\t\t\tjqWrapper[ removedMethod ]();\n\t\n\t\t\t// If we need to reattach the table to the document\n\t\t\tif ( ! remove && orig ) {\n\t\t\t\t// insertBefore acts like appendChild if !arg[1]\n\t\t\t\torig.insertBefore( table, settings.nTableReinsertBefore );\n\t\n\t\t\t\t// Restore the width of the original table - was read from the style property,\n\t\t\t\t// so we can restore directly to that\n\t\t\t\tjqTable\n\t\t\t\t\t.css( 'width', settings.sDestroyWidth )\n\t\t\t\t\t.removeClass( classes.sTable );\n\t\n\t\t\t\t// If the were originally stripe classes - then we add them back here.\n\t\t\t\t// Note this is not fool proof (for example if not all rows had stripe\n\t\t\t\t// classes - but it's a good effort without getting carried away\n\t\t\t\tien = settings.asDestroyStripes.length;\n\t\n\t\t\t\tif ( ien ) {\n\t\t\t\t\tjqTbody.children().each( function (i) {\n\t\t\t\t\t\t$(this).addClass( settings.asDestroyStripes[i % ien] );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t/* Remove the settings object from the settings array */\n\t\t\tvar idx = $.inArray( settings, DataTable.settings );\n\t\t\tif ( idx !== -1 ) {\n\t\t\t\tDataTable.settings.splice( idx, 1 );\n\t\t\t}\n\t\t} );\n\t} );\n\t\n\t\n\t// Add the `every()` method for rows, columns and cells in a compact form\n\t$.each( [ 'column', 'row', 'cell' ], function ( i, type ) {\n\t\t_api_register( type+'s().every()', function ( fn ) {\n\t\t\tvar opts = this.selector.opts;\n\t\t\tvar api = this;\n\t\n\t\t\treturn this.iterator( type, function ( settings, arg1, arg2, arg3, arg4 ) {\n\t\t\t\t// Rows and columns:\n\t\t\t\t//  arg1 - index\n\t\t\t\t//  arg2 - table counter\n\t\t\t\t//  arg3 - loop counter\n\t\t\t\t//  arg4 - undefined\n\t\t\t\t// Cells:\n\t\t\t\t//  arg1 - row index\n\t\t\t\t//  arg2 - column index\n\t\t\t\t//  arg3 - table counter\n\t\t\t\t//  arg4 - loop counter\n\t\t\t\tfn.call(\n\t\t\t\t\tapi[ type ](\n\t\t\t\t\t\targ1,\n\t\t\t\t\t\ttype==='cell' ? arg2 : opts,\n\t\t\t\t\t\ttype==='cell' ? opts : undefined\n\t\t\t\t\t),\n\t\t\t\t\targ1, arg2, arg3, arg4\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t} );\n\t\n\t\n\t// i18n method for extensions to be able to use the language object from the\n\t// DataTable\n\t_api_register( 'i18n()', function ( token, def, plural ) {\n\t\tvar ctx = this.context[0];\n\t\tvar resolved = _fnGetObjectDataFn( token )( ctx.oLanguage );\n\t\n\t\tif ( resolved === undefined ) {\n\t\t\tresolved = def;\n\t\t}\n\t\n\t\tif ( plural !== undefined && $.isPlainObject( resolved ) ) {\n\t\t\tresolved = resolved[ plural ] !== undefined ?\n\t\t\t\tresolved[ plural ] :\n\t\t\t\tresolved._;\n\t\t}\n\t\n\t\treturn resolved.replace( '%d', plural ); // nb: plural might be undefined,\n\t} );\n\t/**\n\t * Version string for plug-ins to check compatibility. Allowed format is\n\t * `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used\n\t * only for non-release builds. See http://semver.org/ for more information.\n\t *  @member\n\t *  @type string\n\t *  @default Version number\n\t */\n\tDataTable.version = \"1.10.24\";\n\n\t/**\n\t * Private data store, containing all of the settings objects that are\n\t * created for the tables on a given page.\n\t *\n\t * Note that the `DataTable.settings` object is aliased to\n\t * `jQuery.fn.dataTableExt` through which it may be accessed and\n\t * manipulated, or `jQuery.fn.dataTable.settings`.\n\t *  @member\n\t *  @type array\n\t *  @default []\n\t *  @private\n\t */\n\tDataTable.settings = [];\n\n\t/**\n\t * Object models container, for the various models that DataTables has\n\t * available to it. These models define the objects that are used to hold\n\t * the active state and configuration of the table.\n\t *  @namespace\n\t */\n\tDataTable.models = {};\n\t\n\t\n\t\n\t/**\n\t * Template object for the way in which DataTables holds information about\n\t * search information for the global filter and individual column filters.\n\t *  @namespace\n\t */\n\tDataTable.models.oSearch = {\n\t\t/**\n\t\t * Flag to indicate if the filtering should be case insensitive or not\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t */\n\t\t\"bCaseInsensitive\": true,\n\t\n\t\t/**\n\t\t * Applied search term\n\t\t *  @type string\n\t\t *  @default <i>Empty string</i>\n\t\t */\n\t\t\"sSearch\": \"\",\n\t\n\t\t/**\n\t\t * Flag to indicate if the search term should be interpreted as a\n\t\t * regular expression (true) or not (false) and therefore and special\n\t\t * regex characters escaped.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t */\n\t\t\"bRegex\": false,\n\t\n\t\t/**\n\t\t * Flag to indicate if DataTables is to use its smart filtering or not.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t */\n\t\t\"bSmart\": true\n\t};\n\t\n\t\n\t\n\t\n\t/**\n\t * Template object for the way in which DataTables holds information about\n\t * each individual row. This is the object format used for the settings\n\t * aoData array.\n\t *  @namespace\n\t */\n\tDataTable.models.oRow = {\n\t\t/**\n\t\t * TR element for the row\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTr\": null,\n\t\n\t\t/**\n\t\t * Array of TD elements for each row. This is null until the row has been\n\t\t * created.\n\t\t *  @type array nodes\n\t\t *  @default []\n\t\t */\n\t\t\"anCells\": null,\n\t\n\t\t/**\n\t\t * Data object from the original data source for the row. This is either\n\t\t * an array if using the traditional form of DataTables, or an object if\n\t\t * using mData options. The exact type will depend on the passed in\n\t\t * data from the data source, or will be an array if using DOM a data\n\t\t * source.\n\t\t *  @type array|object\n\t\t *  @default []\n\t\t */\n\t\t\"_aData\": [],\n\t\n\t\t/**\n\t\t * Sorting data cache - this array is ostensibly the same length as the\n\t\t * number of columns (although each index is generated only as it is\n\t\t * needed), and holds the data that is used for sorting each column in the\n\t\t * row. We do this cache generation at the start of the sort in order that\n\t\t * the formatting of the sort data need be done only once for each cell\n\t\t * per sort. This array should not be read from or written to by anything\n\t\t * other than the master sorting methods.\n\t\t *  @type array\n\t\t *  @default null\n\t\t *  @private\n\t\t */\n\t\t\"_aSortData\": null,\n\t\n\t\t/**\n\t\t * Per cell filtering data cache. As per the sort data cache, used to\n\t\t * increase the performance of the filtering in DataTables\n\t\t *  @type array\n\t\t *  @default null\n\t\t *  @private\n\t\t */\n\t\t\"_aFilterData\": null,\n\t\n\t\t/**\n\t\t * Filtering data cache. This is the same as the cell filtering cache, but\n\t\t * in this case a string rather than an array. This is easily computed with\n\t\t * a join on `_aFilterData`, but is provided as a cache so the join isn't\n\t\t * needed on every search (memory traded for performance)\n\t\t *  @type array\n\t\t *  @default null\n\t\t *  @private\n\t\t */\n\t\t\"_sFilterRow\": null,\n\t\n\t\t/**\n\t\t * Cache of the class name that DataTables has applied to the row, so we\n\t\t * can quickly look at this variable rather than needing to do a DOM check\n\t\t * on className for the nTr property.\n\t\t *  @type string\n\t\t *  @default <i>Empty string</i>\n\t\t *  @private\n\t\t */\n\t\t\"_sRowStripe\": \"\",\n\t\n\t\t/**\n\t\t * Denote if the original data source was from the DOM, or the data source\n\t\t * object. This is used for invalidating data, so DataTables can\n\t\t * automatically read data from the original source, unless uninstructed\n\t\t * otherwise.\n\t\t *  @type string\n\t\t *  @default null\n\t\t *  @private\n\t\t */\n\t\t\"src\": null,\n\t\n\t\t/**\n\t\t * Index in the aoData array. This saves an indexOf lookup when we have the\n\t\t * object, but want to know the index\n\t\t *  @type integer\n\t\t *  @default -1\n\t\t *  @private\n\t\t */\n\t\t\"idx\": -1\n\t};\n\t\n\t\n\t/**\n\t * Template object for the column information object in DataTables. This object\n\t * is held in the settings aoColumns array and contains all the information that\n\t * DataTables needs about each individual column.\n\t *\n\t * Note that this object is related to {@link DataTable.defaults.column}\n\t * but this one is the internal data store for DataTables's cache of columns.\n\t * It should NOT be manipulated outside of DataTables. Any configuration should\n\t * be done through the initialisation options.\n\t *  @namespace\n\t */\n\tDataTable.models.oColumn = {\n\t\t/**\n\t\t * Column index. This could be worked out on-the-fly with $.inArray, but it\n\t\t * is faster to just hold it as a variable\n\t\t *  @type integer\n\t\t *  @default null\n\t\t */\n\t\t\"idx\": null,\n\t\n\t\t/**\n\t\t * A list of the columns that sorting should occur on when this column\n\t\t * is sorted. That this property is an array allows multi-column sorting\n\t\t * to be defined for a column (for example first name / last name columns\n\t\t * would benefit from this). The values are integers pointing to the\n\t\t * columns to be sorted on (typically it will be a single integer pointing\n\t\t * at itself, but that doesn't need to be the case).\n\t\t *  @type array\n\t\t */\n\t\t\"aDataSort\": null,\n\t\n\t\t/**\n\t\t * Define the sorting directions that are applied to the column, in sequence\n\t\t * as the column is repeatedly sorted upon - i.e. the first value is used\n\t\t * as the sorting direction when the column if first sorted (clicked on).\n\t\t * Sort it again (click again) and it will move on to the next index.\n\t\t * Repeat until loop.\n\t\t *  @type array\n\t\t */\n\t\t\"asSorting\": null,\n\t\n\t\t/**\n\t\t * Flag to indicate if the column is searchable, and thus should be included\n\t\t * in the filtering or not.\n\t\t *  @type boolean\n\t\t */\n\t\t\"bSearchable\": null,\n\t\n\t\t/**\n\t\t * Flag to indicate if the column is sortable or not.\n\t\t *  @type boolean\n\t\t */\n\t\t\"bSortable\": null,\n\t\n\t\t/**\n\t\t * Flag to indicate if the column is currently visible in the table or not\n\t\t *  @type boolean\n\t\t */\n\t\t\"bVisible\": null,\n\t\n\t\t/**\n\t\t * Store for manual type assignment using the `column.type` option. This\n\t\t * is held in store so we can manipulate the column's `sType` property.\n\t\t *  @type string\n\t\t *  @default null\n\t\t *  @private\n\t\t */\n\t\t\"_sManualType\": null,\n\t\n\t\t/**\n\t\t * Flag to indicate if HTML5 data attributes should be used as the data\n\t\t * source for filtering or sorting. True is either are.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *  @private\n\t\t */\n\t\t\"_bAttrSrc\": false,\n\t\n\t\t/**\n\t\t * Developer definable function that is called whenever a cell is created (Ajax source,\n\t\t * etc) or processed for input (DOM source). This can be used as a compliment to mRender\n\t\t * allowing you to modify the DOM element (add background colour for example) when the\n\t\t * element is available.\n\t\t *  @type function\n\t\t *  @param {element} nTd The TD node that has been created\n\t\t *  @param {*} sData The Data for the cell\n\t\t *  @param {array|object} oData The data for the whole row\n\t\t *  @param {int} iRow The row index for the aoData data store\n\t\t *  @default null\n\t\t */\n\t\t\"fnCreatedCell\": null,\n\t\n\t\t/**\n\t\t * Function to get data from a cell in a column. You should <b>never</b>\n\t\t * access data directly through _aData internally in DataTables - always use\n\t\t * the method attached to this property. It allows mData to function as\n\t\t * required. This function is automatically assigned by the column\n\t\t * initialisation method\n\t\t *  @type function\n\t\t *  @param {array|object} oData The data array/object for the array\n\t\t *    (i.e. aoData[]._aData)\n\t\t *  @param {string} sSpecific The specific data type you want to get -\n\t\t *    'display', 'type' 'filter' 'sort'\n\t\t *  @returns {*} The data for the cell from the given row's data\n\t\t *  @default null\n\t\t */\n\t\t\"fnGetData\": null,\n\t\n\t\t/**\n\t\t * Function to set data for a cell in the column. You should <b>never</b>\n\t\t * set the data directly to _aData internally in DataTables - always use\n\t\t * this method. It allows mData to function as required. This function\n\t\t * is automatically assigned by the column initialisation method\n\t\t *  @type function\n\t\t *  @param {array|object} oData The data array/object for the array\n\t\t *    (i.e. aoData[]._aData)\n\t\t *  @param {*} sValue Value to set\n\t\t *  @default null\n\t\t */\n\t\t\"fnSetData\": null,\n\t\n\t\t/**\n\t\t * Property to read the value for the cells in the column from the data\n\t\t * source array / object. If null, then the default content is used, if a\n\t\t * function is given then the return from the function is used.\n\t\t *  @type function|int|string|null\n\t\t *  @default null\n\t\t */\n\t\t\"mData\": null,\n\t\n\t\t/**\n\t\t * Partner property to mData which is used (only when defined) to get\n\t\t * the data - i.e. it is basically the same as mData, but without the\n\t\t * 'set' option, and also the data fed to it is the result from mData.\n\t\t * This is the rendering method to match the data method of mData.\n\t\t *  @type function|int|string|null\n\t\t *  @default null\n\t\t */\n\t\t\"mRender\": null,\n\t\n\t\t/**\n\t\t * Unique header TH/TD element for this column - this is what the sorting\n\t\t * listener is attached to (if sorting is enabled.)\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTh\": null,\n\t\n\t\t/**\n\t\t * Unique footer TH/TD element for this column (if there is one). Not used\n\t\t * in DataTables as such, but can be used for plug-ins to reference the\n\t\t * footer for each column.\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTf\": null,\n\t\n\t\t/**\n\t\t * The class to apply to all TD elements in the table's TBODY for the column\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sClass\": null,\n\t\n\t\t/**\n\t\t * When DataTables calculates the column widths to assign to each column,\n\t\t * it finds the longest string in each column and then constructs a\n\t\t * temporary table and reads the widths from that. The problem with this\n\t\t * is that \"mmm\" is much wider then \"iiii\", but the latter is a longer\n\t\t * string - thus the calculation can go wrong (doing it properly and putting\n\t\t * it into an DOM object and measuring that is horribly(!) slow). Thus as\n\t\t * a \"work around\" we provide this option. It will append its value to the\n\t\t * text that is found to be the longest string for the column - i.e. padding.\n\t\t *  @type string\n\t\t */\n\t\t\"sContentPadding\": null,\n\t\n\t\t/**\n\t\t * Allows a default value to be given for a column's data, and will be used\n\t\t * whenever a null data source is encountered (this can be because mData\n\t\t * is set to null, or because the data source itself is null).\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sDefaultContent\": null,\n\t\n\t\t/**\n\t\t * Name for the column, allowing reference to the column by name as well as\n\t\t * by index (needs a lookup to work by name).\n\t\t *  @type string\n\t\t */\n\t\t\"sName\": null,\n\t\n\t\t/**\n\t\t * Custom sorting data type - defines which of the available plug-ins in\n\t\t * afnSortData the custom sorting will use - if any is defined.\n\t\t *  @type string\n\t\t *  @default std\n\t\t */\n\t\t\"sSortDataType\": 'std',\n\t\n\t\t/**\n\t\t * Class to be applied to the header element when sorting on this column\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sSortingClass\": null,\n\t\n\t\t/**\n\t\t * Class to be applied to the header element when sorting on this column -\n\t\t * when jQuery UI theming is used.\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sSortingClassJUI\": null,\n\t\n\t\t/**\n\t\t * Title of the column - what is seen in the TH element (nTh).\n\t\t *  @type string\n\t\t */\n\t\t\"sTitle\": null,\n\t\n\t\t/**\n\t\t * Column sorting and filtering type\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sType\": null,\n\t\n\t\t/**\n\t\t * Width of the column\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sWidth\": null,\n\t\n\t\t/**\n\t\t * Width of the column when it was first \"encountered\"\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sWidthOrig\": null\n\t};\n\t\n\t\n\t/*\n\t * Developer note: The properties of the object below are given in Hungarian\n\t * notation, that was used as the interface for DataTables prior to v1.10, however\n\t * from v1.10 onwards the primary interface is camel case. In order to avoid\n\t * breaking backwards compatibility utterly with this change, the Hungarian\n\t * version is still, internally the primary interface, but is is not documented\n\t * - hence the @name tags in each doc comment. This allows a Javascript function\n\t * to create a map from Hungarian notation to camel case (going the other direction\n\t * would require each property to be listed, which would add around 3K to the size\n\t * of DataTables, while this method is about a 0.5K hit).\n\t *\n\t * Ultimately this does pave the way for Hungarian notation to be dropped\n\t * completely, but that is a massive amount of work and will break current\n\t * installs (therefore is on-hold until v2).\n\t */\n\t\n\t/**\n\t * Initialisation options that can be given to DataTables at initialisation\n\t * time.\n\t *  @namespace\n\t */\n\tDataTable.defaults = {\n\t\t/**\n\t\t * An array of data to use for the table, passed in at initialisation which\n\t\t * will be used in preference to any data which is already in the DOM. This is\n\t\t * particularly useful for constructing tables purely in Javascript, for\n\t\t * example with a custom Ajax call.\n\t\t *  @type array\n\t\t *  @default null\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.data\n\t\t *\n\t\t *  @example\n\t\t *    // Using a 2D array data source\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"data\": [\n\t\t *          ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'],\n\t\t *          ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'],\n\t\t *        ],\n\t\t *        \"columns\": [\n\t\t *          { \"title\": \"Engine\" },\n\t\t *          { \"title\": \"Browser\" },\n\t\t *          { \"title\": \"Platform\" },\n\t\t *          { \"title\": \"Version\" },\n\t\t *          { \"title\": \"Grade\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using an array of objects as a data source (`data`)\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"data\": [\n\t\t *          {\n\t\t *            \"engine\":   \"Trident\",\n\t\t *            \"browser\":  \"Internet Explorer 4.0\",\n\t\t *            \"platform\": \"Win 95+\",\n\t\t *            \"version\":  4,\n\t\t *            \"grade\":    \"X\"\n\t\t *          },\n\t\t *          {\n\t\t *            \"engine\":   \"Trident\",\n\t\t *            \"browser\":  \"Internet Explorer 5.0\",\n\t\t *            \"platform\": \"Win 95+\",\n\t\t *            \"version\":  5,\n\t\t *            \"grade\":    \"C\"\n\t\t *          }\n\t\t *        ],\n\t\t *        \"columns\": [\n\t\t *          { \"title\": \"Engine\",   \"data\": \"engine\" },\n\t\t *          { \"title\": \"Browser\",  \"data\": \"browser\" },\n\t\t *          { \"title\": \"Platform\", \"data\": \"platform\" },\n\t\t *          { \"title\": \"Version\",  \"data\": \"version\" },\n\t\t *          { \"title\": \"Grade\",    \"data\": \"grade\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"aaData\": null,\n\t\n\t\n\t\t/**\n\t\t * If ordering is enabled, then DataTables will perform a first pass sort on\n\t\t * initialisation. You can define which column(s) the sort is performed\n\t\t * upon, and the sorting direction, with this variable. The `sorting` array\n\t\t * should contain an array for each column to be sorted initially containing\n\t\t * the column's index and a direction string ('asc' or 'desc').\n\t\t *  @type array\n\t\t *  @default [[0,'asc']]\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.order\n\t\t *\n\t\t *  @example\n\t\t *    // Sort by 3rd column first, and then 4th column\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"order\": [[2,'asc'], [3,'desc']]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *    // No initial sorting\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"order\": []\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"aaSorting\": [[0,'asc']],\n\t\n\t\n\t\t/**\n\t\t * This parameter is basically identical to the `sorting` parameter, but\n\t\t * cannot be overridden by user interaction with the table. What this means\n\t\t * is that you could have a column (visible or hidden) which the sorting\n\t\t * will always be forced on first - any sorting after that (from the user)\n\t\t * will then be performed as required. This can be useful for grouping rows\n\t\t * together.\n\t\t *  @type array\n\t\t *  @default null\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.orderFixed\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"orderFixed\": [[0,'asc']]\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"aaSortingFixed\": [],\n\t\n\t\n\t\t/**\n\t\t * DataTables can be instructed to load data to display in the table from a\n\t\t * Ajax source. This option defines how that Ajax call is made and where to.\n\t\t *\n\t\t * The `ajax` property has three different modes of operation, depending on\n\t\t * how it is defined. These are:\n\t\t *\n\t\t * * `string` - Set the URL from where the data should be loaded from.\n\t\t * * `object` - Define properties for `jQuery.ajax`.\n\t\t * * `function` - Custom data get function\n\t\t *\n\t\t * `string`\n\t\t * --------\n\t\t *\n\t\t * As a string, the `ajax` property simply defines the URL from which\n\t\t * DataTables will load data.\n\t\t *\n\t\t * `object`\n\t\t * --------\n\t\t *\n\t\t * As an object, the parameters in the object are passed to\n\t\t * [jQuery.ajax](http://api.jquery.com/jQuery.ajax/) allowing fine control\n\t\t * of the Ajax request. DataTables has a number of default parameters which\n\t\t * you can override using this option. Please refer to the jQuery\n\t\t * documentation for a full description of the options available, although\n\t\t * the following parameters provide additional options in DataTables or\n\t\t * require special consideration:\n\t\t *\n\t\t * * `data` - As with jQuery, `data` can be provided as an object, but it\n\t\t *   can also be used as a function to manipulate the data DataTables sends\n\t\t *   to the server. The function takes a single parameter, an object of\n\t\t *   parameters with the values that DataTables has readied for sending. An\n\t\t *   object may be returned which will be merged into the DataTables\n\t\t *   defaults, or you can add the items to the object that was passed in and\n\t\t *   not return anything from the function. This supersedes `fnServerParams`\n\t\t *   from DataTables 1.9-.\n\t\t *\n\t\t * * `dataSrc` - By default DataTables will look for the property `data` (or\n\t\t *   `aaData` for compatibility with DataTables 1.9-) when obtaining data\n\t\t *   from an Ajax source or for server-side processing - this parameter\n\t\t *   allows that property to be changed. You can use Javascript dotted\n\t\t *   object notation to get a data source for multiple levels of nesting, or\n\t\t *   it my be used as a function. As a function it takes a single parameter,\n\t\t *   the JSON returned from the server, which can be manipulated as\n\t\t *   required, with the returned value being that used by DataTables as the\n\t\t *   data source for the table. This supersedes `sAjaxDataProp` from\n\t\t *   DataTables 1.9-.\n\t\t *\n\t\t * * `success` - Should not be overridden it is used internally in\n\t\t *   DataTables. To manipulate / transform the data returned by the server\n\t\t *   use `ajax.dataSrc`, or use `ajax` as a function (see below).\n\t\t *\n\t\t * `function`\n\t\t * ----------\n\t\t *\n\t\t * As a function, making the Ajax call is left up to yourself allowing\n\t\t * complete control of the Ajax request. Indeed, if desired, a method other\n\t\t * than Ajax could be used to obtain the required data, such as Web storage\n\t\t * or an AIR database.\n\t\t *\n\t\t * The function is given four parameters and no return is required. The\n\t\t * parameters are:\n\t\t *\n\t\t * 1. _object_ - Data to send to the server\n\t\t * 2. _function_ - Callback function that must be executed when the required\n\t\t *    data has been obtained. That data should be passed into the callback\n\t\t *    as the only parameter\n\t\t * 3. _object_ - DataTables settings object for the table\n\t\t *\n\t\t * Note that this supersedes `fnServerData` from DataTables 1.9-.\n\t\t *\n\t\t *  @type string|object|function\n\t\t *  @default null\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.ajax\n\t\t *  @since 1.10.0\n\t\t *\n\t\t * @example\n\t\t *   // Get JSON data from a file via Ajax.\n\t\t *   // Note DataTables expects data in the form `{ data: [ ...data... ] }` by default).\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": \"data.json\"\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Get JSON data from a file via Ajax, using `dataSrc` to change\n\t\t *   // `data` to `tableData` (i.e. `{ tableData: [ ...data... ] }`)\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": {\n\t\t *       \"url\": \"data.json\",\n\t\t *       \"dataSrc\": \"tableData\"\n\t\t *     }\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Get JSON data from a file via Ajax, using `dataSrc` to read data\n\t\t *   // from a plain array rather than an array in an object\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": {\n\t\t *       \"url\": \"data.json\",\n\t\t *       \"dataSrc\": \"\"\n\t\t *     }\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Manipulate the data returned from the server - add a link to data\n\t\t *   // (note this can, should, be done using `render` for the column - this\n\t\t *   // is just a simple example of how the data can be manipulated).\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": {\n\t\t *       \"url\": \"data.json\",\n\t\t *       \"dataSrc\": function ( json ) {\n\t\t *         for ( var i=0, ien=json.length ; i<ien ; i++ ) {\n\t\t *           json[i][0] = '<a href=\"/message/'+json[i][0]+'>View message</a>';\n\t\t *         }\n\t\t *         return json;\n\t\t *       }\n\t\t *     }\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Add data to the request\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": {\n\t\t *       \"url\": \"data.json\",\n\t\t *       \"data\": function ( d ) {\n\t\t *         return {\n\t\t *           \"extra_search\": $('#extra').val()\n\t\t *         };\n\t\t *       }\n\t\t *     }\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Send request as POST\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": {\n\t\t *       \"url\": \"data.json\",\n\t\t *       \"type\": \"POST\"\n\t\t *     }\n\t\t *   } );\n\t\t *\n\t\t * @example\n\t\t *   // Get the data from localStorage (could interface with a form for\n\t\t *   // adding, editing and removing rows).\n\t\t *   $('#example').dataTable( {\n\t\t *     \"ajax\": function (data, callback, settings) {\n\t\t *       callback(\n\t\t *         JSON.parse( localStorage.getItem('dataTablesData') )\n\t\t *       );\n\t\t *     }\n\t\t *   } );\n\t\t */\n\t\t\"ajax\": null,\n\t\n\t\n\t\t/**\n\t\t * This parameter allows you to readily specify the entries in the length drop\n\t\t * down menu that DataTables shows when pagination is enabled. It can be\n\t\t * either a 1D array of options which will be used for both the displayed\n\t\t * option and the value, or a 2D array which will use the array in the first\n\t\t * position as the value, and the array in the second position as the\n\t\t * displayed options (useful for language strings such as 'All').\n\t\t *\n\t\t * Note that the `pageLength` property will be automatically set to the\n\t\t * first value given in this array, unless `pageLength` is also provided.\n\t\t *  @type array\n\t\t *  @default [ 10, 25, 50, 100 ]\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.lengthMenu\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"lengthMenu\": [[10, 25, 50, -1], [10, 25, 50, \"All\"]]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"aLengthMenu\": [ 10, 25, 50, 100 ],\n\t\n\t\n\t\t/**\n\t\t * The `columns` option in the initialisation parameter allows you to define\n\t\t * details about the way individual columns behave. For a full list of\n\t\t * column options that can be set, please see\n\t\t * {@link DataTable.defaults.column}. Note that if you use `columns` to\n\t\t * define your columns, you must have an entry in the array for every single\n\t\t * column that you have in your table (these can be null if you don't which\n\t\t * to specify any options).\n\t\t *  @member\n\t\t *\n\t\t *  @name DataTable.defaults.column\n\t\t */\n\t\t\"aoColumns\": null,\n\t\n\t\t/**\n\t\t * Very similar to `columns`, `columnDefs` allows you to target a specific\n\t\t * column, multiple columns, or all columns, using the `targets` property of\n\t\t * each object in the array. This allows great flexibility when creating\n\t\t * tables, as the `columnDefs` arrays can be of any length, targeting the\n\t\t * columns you specifically want. `columnDefs` may use any of the column\n\t\t * options available: {@link DataTable.defaults.column}, but it _must_\n\t\t * have `targets` defined in each object in the array. Values in the `targets`\n\t\t * array may be:\n\t\t *   <ul>\n\t\t *     <li>a string - class name will be matched on the TH for the column</li>\n\t\t *     <li>0 or a positive integer - column index counting from the left</li>\n\t\t *     <li>a negative integer - column index counting from the right</li>\n\t\t *     <li>the string \"_all\" - all columns (i.e. assign a default)</li>\n\t\t *   </ul>\n\t\t *  @member\n\t\t *\n\t\t *  @name DataTable.defaults.columnDefs\n\t\t */\n\t\t\"aoColumnDefs\": null,\n\t\n\t\n\t\t/**\n\t\t * Basically the same as `search`, this parameter defines the individual column\n\t\t * filtering state at initialisation time. The array must be of the same size\n\t\t * as the number of columns, and each element be an object with the parameters\n\t\t * `search` and `escapeRegex` (the latter is optional). 'null' is also\n\t\t * accepted and the default will be used.\n\t\t *  @type array\n\t\t *  @default []\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.searchCols\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"searchCols\": [\n\t\t *          null,\n\t\t *          { \"search\": \"My filter\" },\n\t\t *          null,\n\t\t *          { \"search\": \"^[0-9]\", \"escapeRegex\": false }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"aoSearchCols\": [],\n\t\n\t\n\t\t/**\n\t\t * An array of CSS classes that should be applied to displayed rows. This\n\t\t * array may be of any length, and DataTables will apply each class\n\t\t * sequentially, looping when required.\n\t\t *  @type array\n\t\t *  @default null <i>Will take the values determined by the `oClasses.stripe*`\n\t\t *    options</i>\n\t\t *\n\t\t *  @dtopt Option\n\t\t *  @name DataTable.defaults.stripeClasses\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stripeClasses\": [ 'strip1', 'strip2', 'strip3' ]\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"asStripeClasses\": null,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable automatic column width calculation. This can be disabled\n\t\t * as an optimisation (it takes some time to calculate the widths) if the\n\t\t * tables widths are passed in using `columns`.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.autoWidth\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"autoWidth\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bAutoWidth\": true,\n\t\n\t\n\t\t/**\n\t\t * Deferred rendering can provide DataTables with a huge speed boost when you\n\t\t * are using an Ajax or JS data source for the table. This option, when set to\n\t\t * true, will cause DataTables to defer the creation of the table elements for\n\t\t * each row until they are needed for a draw - saving a significant amount of\n\t\t * time.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.deferRender\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"ajax\": \"sources/arrays.txt\",\n\t\t *        \"deferRender\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bDeferRender\": false,\n\t\n\t\n\t\t/**\n\t\t * Replace a DataTable which matches the given selector and replace it with\n\t\t * one which has the properties of the new initialisation object passed. If no\n\t\t * table matches the selector, then the new DataTable will be constructed as\n\t\t * per normal.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.destroy\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"srollY\": \"200px\",\n\t\t *        \"paginate\": false\n\t\t *      } );\n\t\t *\n\t\t *      // Some time later....\n\t\t *      $('#example').dataTable( {\n\t\t *        \"filter\": false,\n\t\t *        \"destroy\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bDestroy\": false,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable filtering of data. Filtering in DataTables is \"smart\" in\n\t\t * that it allows the end user to input multiple words (space separated) and\n\t\t * will match a row containing those words, even if not in the order that was\n\t\t * specified (this allow matching across multiple columns). Note that if you\n\t\t * wish to use filtering in DataTables this must remain 'true' - to remove the\n\t\t * default filtering input box and retain filtering abilities, please use\n\t\t * {@link DataTable.defaults.dom}.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.searching\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"searching\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bFilter\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable the table information display. This shows information\n\t\t * about the data that is currently visible on the page, including information\n\t\t * about filtered data if that action is being performed.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.info\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"info\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bInfo\": true,\n\t\n\t\n\t\t/**\n\t\t * Allows the end user to select the size of a formatted page from a select\n\t\t * menu (sizes are 10, 25, 50 and 100). Requires pagination (`paginate`).\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.lengthChange\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"lengthChange\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bLengthChange\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable pagination.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.paging\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"paging\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bPaginate\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable the display of a 'processing' indicator when the table is\n\t\t * being processed (e.g. a sort). This is particularly useful for tables with\n\t\t * large amounts of data where it can take a noticeable amount of time to sort\n\t\t * the entries.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.processing\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"processing\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bProcessing\": false,\n\t\n\t\n\t\t/**\n\t\t * Retrieve the DataTables object for the given selector. Note that if the\n\t\t * table has already been initialised, this parameter will cause DataTables\n\t\t * to simply return the object that has already been set up - it will not take\n\t\t * account of any changes you might have made to the initialisation object\n\t\t * passed to DataTables (setting this parameter to true is an acknowledgement\n\t\t * that you understand this). `destroy` can be used to reinitialise a table if\n\t\t * you need.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.retrieve\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      initTable();\n\t\t *      tableActions();\n\t\t *    } );\n\t\t *\n\t\t *    function initTable ()\n\t\t *    {\n\t\t *      return $('#example').dataTable( {\n\t\t *        \"scrollY\": \"200px\",\n\t\t *        \"paginate\": false,\n\t\t *        \"retrieve\": true\n\t\t *      } );\n\t\t *    }\n\t\t *\n\t\t *    function tableActions ()\n\t\t *    {\n\t\t *      var table = initTable();\n\t\t *      // perform API operations with oTable\n\t\t *    }\n\t\t */\n\t\t\"bRetrieve\": false,\n\t\n\t\n\t\t/**\n\t\t * When vertical (y) scrolling is enabled, DataTables will force the height of\n\t\t * the table's viewport to the given height at all times (useful for layout).\n\t\t * However, this can look odd when filtering data down to a small data set,\n\t\t * and the footer is left \"floating\" further down. This parameter (when\n\t\t * enabled) will cause DataTables to collapse the table's viewport down when\n\t\t * the result set will fit within the given Y height.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.scrollCollapse\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"scrollY\": \"200\",\n\t\t *        \"scrollCollapse\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bScrollCollapse\": false,\n\t\n\t\n\t\t/**\n\t\t * Configure DataTables to use server-side processing. Note that the\n\t\t * `ajax` parameter must also be given in order to give DataTables a\n\t\t * source to obtain the required data for each draw.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.serverSide\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"serverSide\": true,\n\t\t *        \"ajax\": \"xhr.php\"\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bServerSide\": false,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable sorting of columns. Sorting of individual columns can be\n\t\t * disabled by the `sortable` option for each column.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.ordering\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"ordering\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bSort\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or display DataTables' ability to sort multiple columns at the\n\t\t * same time (activated by shift-click by the user).\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.orderMulti\n\t\t *\n\t\t *  @example\n\t\t *    // Disable multiple column sorting ability\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"orderMulti\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bSortMulti\": true,\n\t\n\t\n\t\t/**\n\t\t * Allows control over whether DataTables should use the top (true) unique\n\t\t * cell that is found for a single column, or the bottom (false - default).\n\t\t * This is useful when using complex headers.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.orderCellsTop\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"orderCellsTop\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bSortCellsTop\": false,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable the addition of the classes `sorting\\_1`, `sorting\\_2` and\n\t\t * `sorting\\_3` to the columns which are currently being sorted on. This is\n\t\t * presented as a feature switch as it can increase processing time (while\n\t\t * classes are removed and added) so for large data sets you might want to\n\t\t * turn this off.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.orderClasses\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"orderClasses\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bSortClasses\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable state saving. When enabled HTML5 `localStorage` will be\n\t\t * used to save table display information such as pagination information,\n\t\t * display length, filtering and sorting. As such when the end user reloads\n\t\t * the page the display display will match what thy had previously set up.\n\t\t *\n\t\t * Due to the use of `localStorage` the default state saving is not supported\n\t\t * in IE6 or 7. If state saving is required in those browsers, use\n\t\t * `stateSaveCallback` to provide a storage solution such as cookies.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.stateSave\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function () {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"bStateSave\": false,\n\t\n\t\n\t\t/**\n\t\t * This function is called when a TR element is created (and all TD child\n\t\t * elements have been inserted), or registered if using a DOM source, allowing\n\t\t * manipulation of the TR element (adding classes etc).\n\t\t *  @type function\n\t\t *  @param {node} row \"TR\" element for the current row\n\t\t *  @param {array} data Raw data array for this row\n\t\t *  @param {int} dataIndex The index of this row in the internal aoData array\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.createdRow\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"createdRow\": function( row, data, dataIndex ) {\n\t\t *          // Bold the grade for all 'A' grade browsers\n\t\t *          if ( data[4] == \"A\" )\n\t\t *          {\n\t\t *            $('td:eq(4)', row).html( '<b>A</b>' );\n\t\t *          }\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnCreatedRow\": null,\n\t\n\t\n\t\t/**\n\t\t * This function is called on every 'draw' event, and allows you to\n\t\t * dynamically modify any aspect you want about the created DOM.\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.drawCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"drawCallback\": function( settings ) {\n\t\t *          alert( 'DataTables has redrawn the table' );\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnDrawCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * Identical to fnHeaderCallback() but for the table footer this function\n\t\t * allows you to modify the table footer on every 'draw' event.\n\t\t *  @type function\n\t\t *  @param {node} foot \"TR\" element for the footer\n\t\t *  @param {array} data Full table data (as derived from the original HTML)\n\t\t *  @param {int} start Index for the current display starting point in the\n\t\t *    display array\n\t\t *  @param {int} end Index for the current display ending point in the\n\t\t *    display array\n\t\t *  @param {array int} display Index array to translate the visual position\n\t\t *    to the full data array\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.footerCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"footerCallback\": function( tfoot, data, start, end, display ) {\n\t\t *          tfoot.getElementsByTagName('th')[0].innerHTML = \"Starting index is \"+start;\n\t\t *        }\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"fnFooterCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * When rendering large numbers in the information element for the table\n\t\t * (i.e. \"Showing 1 to 10 of 57 entries\") DataTables will render large numbers\n\t\t * to have a comma separator for the 'thousands' units (e.g. 1 million is\n\t\t * rendered as \"1,000,000\") to help readability for the end user. This\n\t\t * function will override the default method DataTables uses.\n\t\t *  @type function\n\t\t *  @member\n\t\t *  @param {int} toFormat number to be formatted\n\t\t *  @returns {string} formatted string for DataTables to show the number\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.formatNumber\n\t\t *\n\t\t *  @example\n\t\t *    // Format a number using a single quote for the separator (note that\n\t\t *    // this can also be done with the language.thousands option)\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"formatNumber\": function ( toFormat ) {\n\t\t *          return toFormat.toString().replace(\n\t\t *            /\\B(?=(\\d{3})+(?!\\d))/g, \"'\"\n\t\t *          );\n\t\t *        };\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnFormatNumber\": function ( toFormat ) {\n\t\t\treturn toFormat.toString().replace(\n\t\t\t\t/\\B(?=(\\d{3})+(?!\\d))/g,\n\t\t\t\tthis.oLanguage.sThousands\n\t\t\t);\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * This function is called on every 'draw' event, and allows you to\n\t\t * dynamically modify the header row. This can be used to calculate and\n\t\t * display useful information about the table.\n\t\t *  @type function\n\t\t *  @param {node} head \"TR\" element for the header\n\t\t *  @param {array} data Full table data (as derived from the original HTML)\n\t\t *  @param {int} start Index for the current display starting point in the\n\t\t *    display array\n\t\t *  @param {int} end Index for the current display ending point in the\n\t\t *    display array\n\t\t *  @param {array int} display Index array to translate the visual position\n\t\t *    to the full data array\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.headerCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"fheaderCallback\": function( head, data, start, end, display ) {\n\t\t *          head.getElementsByTagName('th')[0].innerHTML = \"Displaying \"+(end-start)+\" records\";\n\t\t *        }\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"fnHeaderCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * The information element can be used to convey information about the current\n\t\t * state of the table. Although the internationalisation options presented by\n\t\t * DataTables are quite capable of dealing with most customisations, there may\n\t\t * be times where you wish to customise the string further. This callback\n\t\t * allows you to do exactly that.\n\t\t *  @type function\n\t\t *  @param {object} oSettings DataTables settings object\n\t\t *  @param {int} start Starting position in data for the draw\n\t\t *  @param {int} end End position in data for the draw\n\t\t *  @param {int} max Total number of rows in the table (regardless of\n\t\t *    filtering)\n\t\t *  @param {int} total Total number of rows in the data set, after filtering\n\t\t *  @param {string} pre The string that DataTables has formatted using it's\n\t\t *    own rules\n\t\t *  @returns {string} The string to be displayed in the information element.\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.infoCallback\n\t\t *\n\t\t *  @example\n\t\t *    $('#example').dataTable( {\n\t\t *      \"infoCallback\": function( settings, start, end, max, total, pre ) {\n\t\t *        return start +\" to \"+ end;\n\t\t *      }\n\t\t *    } );\n\t\t */\n\t\t\"fnInfoCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * Called when the table has been initialised. Normally DataTables will\n\t\t * initialise sequentially and there will be no need for this function,\n\t\t * however, this does not hold true when using external language information\n\t\t * since that is obtained using an async XHR call.\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} json The JSON object request from the server - only\n\t\t *    present if client-side Ajax sourced data is used\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.initComplete\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"initComplete\": function(settings, json) {\n\t\t *          alert( 'DataTables has finished its initialisation.' );\n\t\t *        }\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"fnInitComplete\": null,\n\t\n\t\n\t\t/**\n\t\t * Called at the very start of each table draw and can be used to cancel the\n\t\t * draw by returning false, any other return (including undefined) results in\n\t\t * the full draw occurring).\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @returns {boolean} False will cancel the draw, anything else (including no\n\t\t *    return) will allow it to complete.\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.preDrawCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"preDrawCallback\": function( settings ) {\n\t\t *          if ( $('#test').val() == 1 ) {\n\t\t *            return false;\n\t\t *          }\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnPreDrawCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * This function allows you to 'post process' each row after it have been\n\t\t * generated for each table draw, but before it is rendered on screen. This\n\t\t * function might be used for setting the row class name etc.\n\t\t *  @type function\n\t\t *  @param {node} row \"TR\" element for the current row\n\t\t *  @param {array} data Raw data array for this row\n\t\t *  @param {int} displayIndex The display index for the current table draw\n\t\t *  @param {int} displayIndexFull The index of the data in the full list of\n\t\t *    rows (after filtering)\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.rowCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"rowCallback\": function( row, data, displayIndex, displayIndexFull ) {\n\t\t *          // Bold the grade for all 'A' grade browsers\n\t\t *          if ( data[4] == \"A\" ) {\n\t\t *            $('td:eq(4)', row).html( '<b>A</b>' );\n\t\t *          }\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnRowCallback\": null,\n\t\n\t\n\t\t/**\n\t\t * __Deprecated__ The functionality provided by this parameter has now been\n\t\t * superseded by that provided through `ajax`, which should be used instead.\n\t\t *\n\t\t * This parameter allows you to override the default function which obtains\n\t\t * the data from the server so something more suitable for your application.\n\t\t * For example you could use POST data, or pull information from a Gears or\n\t\t * AIR database.\n\t\t *  @type function\n\t\t *  @member\n\t\t *  @param {string} source HTTP source to obtain the data from (`ajax`)\n\t\t *  @param {array} data A key/value pair object containing the data to send\n\t\t *    to the server\n\t\t *  @param {function} callback to be called on completion of the data get\n\t\t *    process that will draw the data on the page.\n\t\t *  @param {object} settings DataTables settings object\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.serverData\n\t\t *\n\t\t *  @deprecated 1.10. Please use `ajax` for this functionality now.\n\t\t */\n\t\t\"fnServerData\": null,\n\t\n\t\n\t\t/**\n\t\t * __Deprecated__ The functionality provided by this parameter has now been\n\t\t * superseded by that provided through `ajax`, which should be used instead.\n\t\t *\n\t\t *  It is often useful to send extra data to the server when making an Ajax\n\t\t * request - for example custom filtering information, and this callback\n\t\t * function makes it trivial to send extra information to the server. The\n\t\t * passed in parameter is the data set that has been constructed by\n\t\t * DataTables, and you can add to this or modify it as you require.\n\t\t *  @type function\n\t\t *  @param {array} data Data array (array of objects which are name/value\n\t\t *    pairs) that has been constructed by DataTables and will be sent to the\n\t\t *    server. In the case of Ajax sourced data with server-side processing\n\t\t *    this will be an empty array, for server-side processing there will be a\n\t\t *    significant number of parameters!\n\t\t *  @returns {undefined} Ensure that you modify the data array passed in,\n\t\t *    as this is passed by reference.\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.serverParams\n\t\t *\n\t\t *  @deprecated 1.10. Please use `ajax` for this functionality now.\n\t\t */\n\t\t\"fnServerParams\": null,\n\t\n\t\n\t\t/**\n\t\t * Load the table state. With this function you can define from where, and how, the\n\t\t * state of a table is loaded. By default DataTables will load from `localStorage`\n\t\t * but you might wish to use a server-side database or cookies.\n\t\t *  @type function\n\t\t *  @member\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} callback Callback that can be executed when done. It\n\t\t *    should be passed the loaded state object.\n\t\t *  @return {object} The DataTables state object to be loaded\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.stateLoadCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateLoadCallback\": function (settings, callback) {\n\t\t *          $.ajax( {\n\t\t *            \"url\": \"/state_load\",\n\t\t *            \"dataType\": \"json\",\n\t\t *            \"success\": function (json) {\n\t\t *              callback( json );\n\t\t *            }\n\t\t *          } );\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnStateLoadCallback\": function ( settings ) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(\n\t\t\t\t\t(settings.iStateDuration === -1 ? sessionStorage : localStorage).getItem(\n\t\t\t\t\t\t'DataTables_'+settings.sInstance+'_'+location.pathname\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Callback which allows modification of the saved state prior to loading that state.\n\t\t * This callback is called when the table is loading state from the stored data, but\n\t\t * prior to the settings object being modified by the saved state. Note that for\n\t\t * plug-in authors, you should use the `stateLoadParams` event to load parameters for\n\t\t * a plug-in.\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} data The state object that is to be loaded\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.stateLoadParams\n\t\t *\n\t\t *  @example\n\t\t *    // Remove a saved filter, so filtering is never loaded\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateLoadParams\": function (settings, data) {\n\t\t *          data.oSearch.sSearch = \"\";\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Disallow state loading by returning false\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateLoadParams\": function (settings, data) {\n\t\t *          return false;\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnStateLoadParams\": null,\n\t\n\t\n\t\t/**\n\t\t * Callback that is called when the state has been loaded from the state saving method\n\t\t * and the DataTables settings object has been modified as a result of the loaded state.\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} data The state object that was loaded\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.stateLoaded\n\t\t *\n\t\t *  @example\n\t\t *    // Show an alert with the filtering value that was saved\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateLoaded\": function (settings, data) {\n\t\t *          alert( 'Saved filter was: '+data.oSearch.sSearch );\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnStateLoaded\": null,\n\t\n\t\n\t\t/**\n\t\t * Save the table state. This function allows you to define where and how the state\n\t\t * information for the table is stored By default DataTables will use `localStorage`\n\t\t * but you might wish to use a server-side database or cookies.\n\t\t *  @type function\n\t\t *  @member\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} data The state object to be saved\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.stateSaveCallback\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateSaveCallback\": function (settings, data) {\n\t\t *          // Send an Ajax request to the server with the state object\n\t\t *          $.ajax( {\n\t\t *            \"url\": \"/state_save\",\n\t\t *            \"data\": data,\n\t\t *            \"dataType\": \"json\",\n\t\t *            \"method\": \"POST\"\n\t\t *            \"success\": function () {}\n\t\t *          } );\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnStateSaveCallback\": function ( settings, data ) {\n\t\t\ttry {\n\t\t\t\t(settings.iStateDuration === -1 ? sessionStorage : localStorage).setItem(\n\t\t\t\t\t'DataTables_'+settings.sInstance+'_'+location.pathname,\n\t\t\t\t\tJSON.stringify( data )\n\t\t\t\t);\n\t\t\t} catch (e) {}\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Callback which allows modification of the state to be saved. Called when the table\n\t\t * has changed state a new state save is required. This method allows modification of\n\t\t * the state saving object prior to actually doing the save, including addition or\n\t\t * other state properties or modification. Note that for plug-in authors, you should\n\t\t * use the `stateSaveParams` event to save parameters for a plug-in.\n\t\t *  @type function\n\t\t *  @param {object} settings DataTables settings object\n\t\t *  @param {object} data The state object to be saved\n\t\t *\n\t\t *  @dtopt Callbacks\n\t\t *  @name DataTable.defaults.stateSaveParams\n\t\t *\n\t\t *  @example\n\t\t *    // Remove a saved filter, so filtering is never saved\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateSave\": true,\n\t\t *        \"stateSaveParams\": function (settings, data) {\n\t\t *          data.oSearch.sSearch = \"\";\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"fnStateSaveParams\": null,\n\t\n\t\n\t\t/**\n\t\t * Duration for which the saved state information is considered valid. After this period\n\t\t * has elapsed the state will be returned to the default.\n\t\t * Value is given in seconds.\n\t\t *  @type int\n\t\t *  @default 7200 <i>(2 hours)</i>\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.stateDuration\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"stateDuration\": 60*60*24; // 1 day\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"iStateDuration\": 7200,\n\t\n\t\n\t\t/**\n\t\t * When enabled DataTables will not make a request to the server for the first\n\t\t * page draw - rather it will use the data already on the page (no sorting etc\n\t\t * will be applied to it), thus saving on an XHR at load time. `deferLoading`\n\t\t * is used to indicate that deferred loading is required, but it is also used\n\t\t * to tell DataTables how many records there are in the full table (allowing\n\t\t * the information element and pagination to be displayed correctly). In the case\n\t\t * where a filtering is applied to the table on initial load, this can be\n\t\t * indicated by giving the parameter as an array, where the first element is\n\t\t * the number of records available after filtering and the second element is the\n\t\t * number of records without filtering (allowing the table information element\n\t\t * to be shown correctly).\n\t\t *  @type int | array\n\t\t *  @default null\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.deferLoading\n\t\t *\n\t\t *  @example\n\t\t *    // 57 records available in the table, no filtering applied\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"serverSide\": true,\n\t\t *        \"ajax\": \"scripts/server_processing.php\",\n\t\t *        \"deferLoading\": 57\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // 57 records after filtering, 100 without filtering (an initial filter applied)\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"serverSide\": true,\n\t\t *        \"ajax\": \"scripts/server_processing.php\",\n\t\t *        \"deferLoading\": [ 57, 100 ],\n\t\t *        \"search\": {\n\t\t *          \"search\": \"my_filter\"\n\t\t *        }\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"iDeferLoading\": null,\n\t\n\t\n\t\t/**\n\t\t * Number of rows to display on a single page when using pagination. If\n\t\t * feature enabled (`lengthChange`) then the end user will be able to override\n\t\t * this to a custom setting using a pop-up menu.\n\t\t *  @type int\n\t\t *  @default 10\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.pageLength\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"pageLength\": 50\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"iDisplayLength\": 10,\n\t\n\t\n\t\t/**\n\t\t * Define the starting point for data display when using DataTables with\n\t\t * pagination. Note that this parameter is the number of records, rather than\n\t\t * the page number, so if you have 10 records per page and want to start on\n\t\t * the third page, it should be \"20\".\n\t\t *  @type int\n\t\t *  @default 0\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.displayStart\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"displayStart\": 20\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"iDisplayStart\": 0,\n\t\n\t\n\t\t/**\n\t\t * By default DataTables allows keyboard navigation of the table (sorting, paging,\n\t\t * and filtering) by adding a `tabindex` attribute to the required elements. This\n\t\t * allows you to tab through the controls and press the enter key to activate them.\n\t\t * The tabindex is default 0, meaning that the tab follows the flow of the document.\n\t\t * You can overrule this using this parameter if you wish. Use a value of -1 to\n\t\t * disable built-in keyboard navigation.\n\t\t *  @type int\n\t\t *  @default 0\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.tabIndex\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"tabIndex\": 1\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"iTabIndex\": 0,\n\t\n\t\n\t\t/**\n\t\t * Classes that DataTables assigns to the various components and features\n\t\t * that it adds to the HTML table. This allows classes to be configured\n\t\t * during initialisation in addition to through the static\n\t\t * {@link DataTable.ext.oStdClasses} object).\n\t\t *  @namespace\n\t\t *  @name DataTable.defaults.classes\n\t\t */\n\t\t\"oClasses\": {},\n\t\n\t\n\t\t/**\n\t\t * All strings that DataTables uses in the user interface that it creates\n\t\t * are defined in this object, allowing you to modified them individually or\n\t\t * completely replace them all as required.\n\t\t *  @namespace\n\t\t *  @name DataTable.defaults.language\n\t\t */\n\t\t\"oLanguage\": {\n\t\t\t/**\n\t\t\t * Strings that are used for WAI-ARIA labels and controls only (these are not\n\t\t\t * actually visible on the page, but will be read by screenreaders, and thus\n\t\t\t * must be internationalised as well).\n\t\t\t *  @namespace\n\t\t\t *  @name DataTable.defaults.language.aria\n\t\t\t */\n\t\t\t\"oAria\": {\n\t\t\t\t/**\n\t\t\t\t * ARIA label that is added to the table headers when the column may be\n\t\t\t\t * sorted ascending by activing the column (click or return when focused).\n\t\t\t\t * Note that the column header is prefixed to this string.\n\t\t\t\t *  @type string\n\t\t\t\t *  @default : activate to sort column ascending\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.aria.sortAscending\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"aria\": {\n\t\t\t\t *            \"sortAscending\": \" - click/return to sort ascending\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sSortAscending\": \": activate to sort column ascending\",\n\t\n\t\t\t\t/**\n\t\t\t\t * ARIA label that is added to the table headers when the column may be\n\t\t\t\t * sorted descending by activing the column (click or return when focused).\n\t\t\t\t * Note that the column header is prefixed to this string.\n\t\t\t\t *  @type string\n\t\t\t\t *  @default : activate to sort column ascending\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.aria.sortDescending\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"aria\": {\n\t\t\t\t *            \"sortDescending\": \" - click/return to sort descending\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sSortDescending\": \": activate to sort column descending\"\n\t\t\t},\n\t\n\t\t\t/**\n\t\t\t * Pagination string used by DataTables for the built-in pagination\n\t\t\t * control types.\n\t\t\t *  @namespace\n\t\t\t *  @name DataTable.defaults.language.paginate\n\t\t\t */\n\t\t\t\"oPaginate\": {\n\t\t\t\t/**\n\t\t\t\t * Text to use when using the 'full_numbers' type of pagination for the\n\t\t\t\t * button to take the user to the first page.\n\t\t\t\t *  @type string\n\t\t\t\t *  @default First\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.paginate.first\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"paginate\": {\n\t\t\t\t *            \"first\": \"First page\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sFirst\": \"First\",\n\t\n\t\n\t\t\t\t/**\n\t\t\t\t * Text to use when using the 'full_numbers' type of pagination for the\n\t\t\t\t * button to take the user to the last page.\n\t\t\t\t *  @type string\n\t\t\t\t *  @default Last\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.paginate.last\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"paginate\": {\n\t\t\t\t *            \"last\": \"Last page\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sLast\": \"Last\",\n\t\n\t\n\t\t\t\t/**\n\t\t\t\t * Text to use for the 'next' pagination button (to take the user to the\n\t\t\t\t * next page).\n\t\t\t\t *  @type string\n\t\t\t\t *  @default Next\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.paginate.next\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"paginate\": {\n\t\t\t\t *            \"next\": \"Next page\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sNext\": \"Next\",\n\t\n\t\n\t\t\t\t/**\n\t\t\t\t * Text to use for the 'previous' pagination button (to take the user to\n\t\t\t\t * the previous page).\n\t\t\t\t *  @type string\n\t\t\t\t *  @default Previous\n\t\t\t\t *\n\t\t\t\t *  @dtopt Language\n\t\t\t\t *  @name DataTable.defaults.language.paginate.previous\n\t\t\t\t *\n\t\t\t\t *  @example\n\t\t\t\t *    $(document).ready( function() {\n\t\t\t\t *      $('#example').dataTable( {\n\t\t\t\t *        \"language\": {\n\t\t\t\t *          \"paginate\": {\n\t\t\t\t *            \"previous\": \"Previous page\"\n\t\t\t\t *          }\n\t\t\t\t *        }\n\t\t\t\t *      } );\n\t\t\t\t *    } );\n\t\t\t\t */\n\t\t\t\t\"sPrevious\": \"Previous\"\n\t\t\t},\n\t\n\t\t\t/**\n\t\t\t * This string is shown in preference to `zeroRecords` when the table is\n\t\t\t * empty of data (regardless of filtering). Note that this is an optional\n\t\t\t * parameter - if it is not given, the value of `zeroRecords` will be used\n\t\t\t * instead (either the default or given value).\n\t\t\t *  @type string\n\t\t\t *  @default No data available in table\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.emptyTable\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"emptyTable\": \"No data available in table\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sEmptyTable\": \"No data available in table\",\n\t\n\t\n\t\t\t/**\n\t\t\t * This string gives information to the end user about the information\n\t\t\t * that is current on display on the page. The following tokens can be\n\t\t\t * used in the string and will be dynamically replaced as the table\n\t\t\t * display updates. This tokens can be placed anywhere in the string, or\n\t\t\t * removed as needed by the language requires:\n\t\t\t *\n\t\t\t * * `\\_START\\_` - Display index of the first record on the current page\n\t\t\t * * `\\_END\\_` - Display index of the last record on the current page\n\t\t\t * * `\\_TOTAL\\_` - Number of records in the table after filtering\n\t\t\t * * `\\_MAX\\_` - Number of records in the table without filtering\n\t\t\t * * `\\_PAGE\\_` - Current page number\n\t\t\t * * `\\_PAGES\\_` - Total number of pages of data in the table\n\t\t\t *\n\t\t\t *  @type string\n\t\t\t *  @default Showing _START_ to _END_ of _TOTAL_ entries\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.info\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"info\": \"Showing page _PAGE_ of _PAGES_\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sInfo\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Display information string for when the table is empty. Typically the\n\t\t\t * format of this string should match `info`.\n\t\t\t *  @type string\n\t\t\t *  @default Showing 0 to 0 of 0 entries\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.infoEmpty\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"infoEmpty\": \"No entries to show\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sInfoEmpty\": \"Showing 0 to 0 of 0 entries\",\n\t\n\t\n\t\t\t/**\n\t\t\t * When a user filters the information in a table, this string is appended\n\t\t\t * to the information (`info`) to give an idea of how strong the filtering\n\t\t\t * is. The variable _MAX_ is dynamically updated.\n\t\t\t *  @type string\n\t\t\t *  @default (filtered from _MAX_ total entries)\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.infoFiltered\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"infoFiltered\": \" - filtering from _MAX_ records\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sInfoFiltered\": \"(filtered from _MAX_ total entries)\",\n\t\n\t\n\t\t\t/**\n\t\t\t * If can be useful to append extra information to the info string at times,\n\t\t\t * and this variable does exactly that. This information will be appended to\n\t\t\t * the `info` (`infoEmpty` and `infoFiltered` in whatever combination they are\n\t\t\t * being used) at all times.\n\t\t\t *  @type string\n\t\t\t *  @default <i>Empty string</i>\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.infoPostFix\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"infoPostFix\": \"All records shown are derived from real information.\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sInfoPostFix\": \"\",\n\t\n\t\n\t\t\t/**\n\t\t\t * This decimal place operator is a little different from the other\n\t\t\t * language options since DataTables doesn't output floating point\n\t\t\t * numbers, so it won't ever use this for display of a number. Rather,\n\t\t\t * what this parameter does is modify the sort methods of the table so\n\t\t\t * that numbers which are in a format which has a character other than\n\t\t\t * a period (`.`) as a decimal place will be sorted numerically.\n\t\t\t *\n\t\t\t * Note that numbers with different decimal places cannot be shown in\n\t\t\t * the same table and still be sortable, the table must be consistent.\n\t\t\t * However, multiple different tables on the page can use different\n\t\t\t * decimal place characters.\n\t\t\t *  @type string\n\t\t\t *  @default \n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.decimal\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"decimal\": \",\"\n\t\t\t *          \"thousands\": \".\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sDecimal\": \"\",\n\t\n\t\n\t\t\t/**\n\t\t\t * DataTables has a build in number formatter (`formatNumber`) which is\n\t\t\t * used to format large numbers that are used in the table information.\n\t\t\t * By default a comma is used, but this can be trivially changed to any\n\t\t\t * character you wish with this parameter.\n\t\t\t *  @type string\n\t\t\t *  @default ,\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.thousands\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"thousands\": \"'\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sThousands\": \",\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Detail the action that will be taken when the drop down menu for the\n\t\t\t * pagination length option is changed. The '_MENU_' variable is replaced\n\t\t\t * with a default select list of 10, 25, 50 and 100, and can be replaced\n\t\t\t * with a custom select box if required.\n\t\t\t *  @type string\n\t\t\t *  @default Show _MENU_ entries\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.lengthMenu\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Language change only\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"lengthMenu\": \"Display _MENU_ records\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Language and options change\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"lengthMenu\": 'Display <select>'+\n\t\t\t *            '<option value=\"10\">10</option>'+\n\t\t\t *            '<option value=\"20\">20</option>'+\n\t\t\t *            '<option value=\"30\">30</option>'+\n\t\t\t *            '<option value=\"40\">40</option>'+\n\t\t\t *            '<option value=\"50\">50</option>'+\n\t\t\t *            '<option value=\"-1\">All</option>'+\n\t\t\t *            '</select> records'\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sLengthMenu\": \"Show _MENU_ entries\",\n\t\n\t\n\t\t\t/**\n\t\t\t * When using Ajax sourced data and during the first draw when DataTables is\n\t\t\t * gathering the data, this message is shown in an empty row in the table to\n\t\t\t * indicate to the end user the the data is being loaded. Note that this\n\t\t\t * parameter is not used when loading data by server-side processing, just\n\t\t\t * Ajax sourced data with client-side processing.\n\t\t\t *  @type string\n\t\t\t *  @default Loading...\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.loadingRecords\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"loadingRecords\": \"Please wait - loading...\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sLoadingRecords\": \"Loading...\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Text which is displayed when the table is processing a user action\n\t\t\t * (usually a sort command or similar).\n\t\t\t *  @type string\n\t\t\t *  @default Processing...\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.processing\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"processing\": \"DataTables is currently busy\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sProcessing\": \"Processing...\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Details the actions that will be taken when the user types into the\n\t\t\t * filtering input text box. The variable \"_INPUT_\", if used in the string,\n\t\t\t * is replaced with the HTML text box for the filtering input allowing\n\t\t\t * control over where it appears in the string. If \"_INPUT_\" is not given\n\t\t\t * then the input box is appended to the string automatically.\n\t\t\t *  @type string\n\t\t\t *  @default Search:\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.search\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Input text box will be appended at the end automatically\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"search\": \"Filter records:\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Specify where the filter should appear\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"search\": \"Apply filter _INPUT_ to table\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sSearch\": \"Search:\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Assign a `placeholder` attribute to the search `input` element\n\t\t\t *  @type string\n\t\t\t *  @default \n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.searchPlaceholder\n\t\t\t */\n\t\t\t\"sSearchPlaceholder\": \"\",\n\t\n\t\n\t\t\t/**\n\t\t\t * All of the language information can be stored in a file on the\n\t\t\t * server-side, which DataTables will look up if this parameter is passed.\n\t\t\t * It must store the URL of the language file, which is in a JSON format,\n\t\t\t * and the object has the same properties as the oLanguage object in the\n\t\t\t * initialiser object (i.e. the above parameters). Please refer to one of\n\t\t\t * the example language files to see how this works in action.\n\t\t\t *  @type string\n\t\t\t *  @default <i>Empty string - i.e. disabled</i>\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.url\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"url\": \"http://www.sprymedia.co.uk/dataTables/lang.txt\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sUrl\": \"\",\n\t\n\t\n\t\t\t/**\n\t\t\t * Text shown inside the table records when the is no information to be\n\t\t\t * displayed after filtering. `emptyTable` is shown when there is simply no\n\t\t\t * information in the table at all (regardless of filtering).\n\t\t\t *  @type string\n\t\t\t *  @default No matching records found\n\t\t\t *\n\t\t\t *  @dtopt Language\n\t\t\t *  @name DataTable.defaults.language.zeroRecords\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $(document).ready( function() {\n\t\t\t *      $('#example').dataTable( {\n\t\t\t *        \"language\": {\n\t\t\t *          \"zeroRecords\": \"No records to display\"\n\t\t\t *        }\n\t\t\t *      } );\n\t\t\t *    } );\n\t\t\t */\n\t\t\t\"sZeroRecords\": \"No matching records found\"\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * This parameter allows you to have define the global filtering state at\n\t\t * initialisation time. As an object the `search` parameter must be\n\t\t * defined, but all other parameters are optional. When `regex` is true,\n\t\t * the search string will be treated as a regular expression, when false\n\t\t * (default) it will be treated as a straight string. When `smart`\n\t\t * DataTables will use it's smart filtering methods (to word match at\n\t\t * any point in the data), when false this will not be done.\n\t\t *  @namespace\n\t\t *  @extends DataTable.models.oSearch\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.search\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"search\": {\"search\": \"Initial search\"}\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"oSearch\": $.extend( {}, DataTable.models.oSearch ),\n\t\n\t\n\t\t/**\n\t\t * __Deprecated__ The functionality provided by this parameter has now been\n\t\t * superseded by that provided through `ajax`, which should be used instead.\n\t\t *\n\t\t * By default DataTables will look for the property `data` (or `aaData` for\n\t\t * compatibility with DataTables 1.9-) when obtaining data from an Ajax\n\t\t * source or for server-side processing - this parameter allows that\n\t\t * property to be changed. You can use Javascript dotted object notation to\n\t\t * get a data source for multiple levels of nesting.\n\t\t *  @type string\n\t\t *  @default data\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.ajaxDataProp\n\t\t *\n\t\t *  @deprecated 1.10. Please use `ajax` for this functionality now.\n\t\t */\n\t\t\"sAjaxDataProp\": \"data\",\n\t\n\t\n\t\t/**\n\t\t * __Deprecated__ The functionality provided by this parameter has now been\n\t\t * superseded by that provided through `ajax`, which should be used instead.\n\t\t *\n\t\t * You can instruct DataTables to load data from an external\n\t\t * source using this parameter (use aData if you want to pass data in you\n\t\t * already have). Simply provide a url a JSON object can be obtained from.\n\t\t *  @type string\n\t\t *  @default null\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.ajaxSource\n\t\t *\n\t\t *  @deprecated 1.10. Please use `ajax` for this functionality now.\n\t\t */\n\t\t\"sAjaxSource\": null,\n\t\n\t\n\t\t/**\n\t\t * This initialisation variable allows you to specify exactly where in the\n\t\t * DOM you want DataTables to inject the various controls it adds to the page\n\t\t * (for example you might want the pagination controls at the top of the\n\t\t * table). DIV elements (with or without a custom class) can also be added to\n\t\t * aid styling. The follow syntax is used:\n\t\t *   <ul>\n\t\t *     <li>The following options are allowed:\n\t\t *       <ul>\n\t\t *         <li>'l' - Length changing</li>\n\t\t *         <li>'f' - Filtering input</li>\n\t\t *         <li>'t' - The table!</li>\n\t\t *         <li>'i' - Information</li>\n\t\t *         <li>'p' - Pagination</li>\n\t\t *         <li>'r' - pRocessing</li>\n\t\t *       </ul>\n\t\t *     </li>\n\t\t *     <li>The following constants are allowed:\n\t\t *       <ul>\n\t\t *         <li>'H' - jQueryUI theme \"header\" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')</li>\n\t\t *         <li>'F' - jQueryUI theme \"footer\" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')</li>\n\t\t *       </ul>\n\t\t *     </li>\n\t\t *     <li>The following syntax is expected:\n\t\t *       <ul>\n\t\t *         <li>'&lt;' and '&gt;' - div elements</li>\n\t\t *         <li>'&lt;\"class\" and '&gt;' - div with a class</li>\n\t\t *         <li>'&lt;\"#id\" and '&gt;' - div with an ID</li>\n\t\t *       </ul>\n\t\t *     </li>\n\t\t *     <li>Examples:\n\t\t *       <ul>\n\t\t *         <li>'&lt;\"wrapper\"flipt&gt;'</li>\n\t\t *         <li>'&lt;lf&lt;t&gt;ip&gt;'</li>\n\t\t *       </ul>\n\t\t *     </li>\n\t\t *   </ul>\n\t\t *  @type string\n\t\t *  @default lfrtip <i>(when `jQueryUI` is false)</i> <b>or</b>\n\t\t *    <\"H\"lfr>t<\"F\"ip> <i>(when `jQueryUI` is true)</i>\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.dom\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"dom\": '&lt;\"top\"i&gt;rt&lt;\"bottom\"flp&gt;&lt;\"clear\"&gt;'\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sDom\": \"lfrtip\",\n\t\n\t\n\t\t/**\n\t\t * Search delay option. This will throttle full table searches that use the\n\t\t * DataTables provided search input element (it does not effect calls to\n\t\t * `dt-api search()`, providing a delay before the search is made.\n\t\t *  @type integer\n\t\t *  @default 0\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.searchDelay\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"searchDelay\": 200\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"searchDelay\": null,\n\t\n\t\n\t\t/**\n\t\t * DataTables features six different built-in options for the buttons to\n\t\t * display for pagination control:\n\t\t *\n\t\t * * `numbers` - Page number buttons only\n\t\t * * `simple` - 'Previous' and 'Next' buttons only\n\t\t * * 'simple_numbers` - 'Previous' and 'Next' buttons, plus page numbers\n\t\t * * `full` - 'First', 'Previous', 'Next' and 'Last' buttons\n\t\t * * `full_numbers` - 'First', 'Previous', 'Next' and 'Last' buttons, plus page numbers\n\t\t * * `first_last_numbers` - 'First' and 'Last' buttons, plus page numbers\n\t\t *  \n\t\t * Further methods can be added using {@link DataTable.ext.oPagination}.\n\t\t *  @type string\n\t\t *  @default simple_numbers\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.pagingType\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"pagingType\": \"full_numbers\"\n\t\t *      } );\n\t\t *    } )\n\t\t */\n\t\t\"sPaginationType\": \"simple_numbers\",\n\t\n\t\n\t\t/**\n\t\t * Enable horizontal scrolling. When a table is too wide to fit into a\n\t\t * certain layout, or you have a large number of columns in the table, you\n\t\t * can enable x-scrolling to show the table in a viewport, which can be\n\t\t * scrolled. This property can be `true` which will allow the table to\n\t\t * scroll horizontally when needed, or any CSS unit, or a number (in which\n\t\t * case it will be treated as a pixel measurement). Setting as simply `true`\n\t\t * is recommended.\n\t\t *  @type boolean|string\n\t\t *  @default <i>blank string - i.e. disabled</i>\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.scrollX\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"scrollX\": true,\n\t\t *        \"scrollCollapse\": true\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sScrollX\": \"\",\n\t\n\t\n\t\t/**\n\t\t * This property can be used to force a DataTable to use more width than it\n\t\t * might otherwise do when x-scrolling is enabled. For example if you have a\n\t\t * table which requires to be well spaced, this parameter is useful for\n\t\t * \"over-sizing\" the table, and thus forcing scrolling. This property can by\n\t\t * any CSS unit, or a number (in which case it will be treated as a pixel\n\t\t * measurement).\n\t\t *  @type string\n\t\t *  @default <i>blank string - i.e. disabled</i>\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @name DataTable.defaults.scrollXInner\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"scrollX\": \"100%\",\n\t\t *        \"scrollXInner\": \"110%\"\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sScrollXInner\": \"\",\n\t\n\t\n\t\t/**\n\t\t * Enable vertical scrolling. Vertical scrolling will constrain the DataTable\n\t\t * to the given height, and enable scrolling for any data which overflows the\n\t\t * current viewport. This can be used as an alternative to paging to display\n\t\t * a lot of data in a small area (although paging and scrolling can both be\n\t\t * enabled at the same time). This property can be any CSS unit, or a number\n\t\t * (in which case it will be treated as a pixel measurement).\n\t\t *  @type string\n\t\t *  @default <i>blank string - i.e. disabled</i>\n\t\t *\n\t\t *  @dtopt Features\n\t\t *  @name DataTable.defaults.scrollY\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"scrollY\": \"200px\",\n\t\t *        \"paginate\": false\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sScrollY\": \"\",\n\t\n\t\n\t\t/**\n\t\t * __Deprecated__ The functionality provided by this parameter has now been\n\t\t * superseded by that provided through `ajax`, which should be used instead.\n\t\t *\n\t\t * Set the HTTP method that is used to make the Ajax call for server-side\n\t\t * processing or Ajax sourced data.\n\t\t *  @type string\n\t\t *  @default GET\n\t\t *\n\t\t *  @dtopt Options\n\t\t *  @dtopt Server-side\n\t\t *  @name DataTable.defaults.serverMethod\n\t\t *\n\t\t *  @deprecated 1.10. Please use `ajax` for this functionality now.\n\t\t */\n\t\t\"sServerMethod\": \"GET\",\n\t\n\t\n\t\t/**\n\t\t * DataTables makes use of renderers when displaying HTML elements for\n\t\t * a table. These renderers can be added or modified by plug-ins to\n\t\t * generate suitable mark-up for a site. For example the Bootstrap\n\t\t * integration plug-in for DataTables uses a paging button renderer to\n\t\t * display pagination buttons in the mark-up required by Bootstrap.\n\t\t *\n\t\t * For further information about the renderers available see\n\t\t * DataTable.ext.renderer\n\t\t *  @type string|object\n\t\t *  @default null\n\t\t *\n\t\t *  @name DataTable.defaults.renderer\n\t\t *\n\t\t */\n\t\t\"renderer\": null,\n\t\n\t\n\t\t/**\n\t\t * Set the data property name that DataTables should use to get a row's id\n\t\t * to set as the `id` property in the node.\n\t\t *  @type string\n\t\t *  @default DT_RowId\n\t\t *\n\t\t *  @name DataTable.defaults.rowId\n\t\t */\n\t\t\"rowId\": \"DT_RowId\"\n\t};\n\t\n\t_fnHungarianMap( DataTable.defaults );\n\t\n\t\n\t\n\t/*\n\t * Developer note - See note in model.defaults.js about the use of Hungarian\n\t * notation and camel case.\n\t */\n\t\n\t/**\n\t * Column options that can be given to DataTables at initialisation time.\n\t *  @namespace\n\t */\n\tDataTable.defaults.column = {\n\t\t/**\n\t\t * Define which column(s) an order will occur on for this column. This\n\t\t * allows a column's ordering to take multiple columns into account when\n\t\t * doing a sort or use the data from a different column. For example first\n\t\t * name / last name columns make sense to do a multi-column sort over the\n\t\t * two columns.\n\t\t *  @type array|int\n\t\t *  @default null <i>Takes the value of the column index automatically</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.orderData\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"orderData\": [ 0, 1 ], \"targets\": [ 0 ] },\n\t\t *          { \"orderData\": [ 1, 0 ], \"targets\": [ 1 ] },\n\t\t *          { \"orderData\": 2, \"targets\": [ 2 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"orderData\": [ 0, 1 ] },\n\t\t *          { \"orderData\": [ 1, 0 ] },\n\t\t *          { \"orderData\": 2 },\n\t\t *          null,\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"aDataSort\": null,\n\t\t\"iDataSort\": -1,\n\t\n\t\n\t\t/**\n\t\t * You can control the default ordering direction, and even alter the\n\t\t * behaviour of the sort handler (i.e. only allow ascending ordering etc)\n\t\t * using this parameter.\n\t\t *  @type array\n\t\t *  @default [ 'asc', 'desc' ]\n\t\t *\n\t\t *  @name DataTable.defaults.column.orderSequence\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"orderSequence\": [ \"asc\" ], \"targets\": [ 1 ] },\n\t\t *          { \"orderSequence\": [ \"desc\", \"asc\", \"asc\" ], \"targets\": [ 2 ] },\n\t\t *          { \"orderSequence\": [ \"desc\" ], \"targets\": [ 3 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          null,\n\t\t *          { \"orderSequence\": [ \"asc\" ] },\n\t\t *          { \"orderSequence\": [ \"desc\", \"asc\", \"asc\" ] },\n\t\t *          { \"orderSequence\": [ \"desc\" ] },\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"asSorting\": [ 'asc', 'desc' ],\n\t\n\t\n\t\t/**\n\t\t * Enable or disable filtering on the data in this column.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @name DataTable.defaults.column.searchable\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"searchable\": false, \"targets\": [ 0 ] }\n\t\t *        ] } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"searchable\": false },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ] } );\n\t\t *    } );\n\t\t */\n\t\t\"bSearchable\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable ordering on this column.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @name DataTable.defaults.column.orderable\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"orderable\": false, \"targets\": [ 0 ] }\n\t\t *        ] } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"orderable\": false },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ] } );\n\t\t *    } );\n\t\t */\n\t\t\"bSortable\": true,\n\t\n\t\n\t\t/**\n\t\t * Enable or disable the display of this column.\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t *\n\t\t *  @name DataTable.defaults.column.visible\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"visible\": false, \"targets\": [ 0 ] }\n\t\t *        ] } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"visible\": false },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ] } );\n\t\t *    } );\n\t\t */\n\t\t\"bVisible\": true,\n\t\n\t\n\t\t/**\n\t\t * Developer definable function that is called whenever a cell is created (Ajax source,\n\t\t * etc) or processed for input (DOM source). This can be used as a compliment to mRender\n\t\t * allowing you to modify the DOM element (add background colour for example) when the\n\t\t * element is available.\n\t\t *  @type function\n\t\t *  @param {element} td The TD node that has been created\n\t\t *  @param {*} cellData The Data for the cell\n\t\t *  @param {array|object} rowData The data for the whole row\n\t\t *  @param {int} row The row index for the aoData data store\n\t\t *  @param {int} col The column index for aoColumns\n\t\t *\n\t\t *  @name DataTable.defaults.column.createdCell\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [3],\n\t\t *          \"createdCell\": function (td, cellData, rowData, row, col) {\n\t\t *            if ( cellData == \"1.7\" ) {\n\t\t *              $(td).css('color', 'blue')\n\t\t *            }\n\t\t *          }\n\t\t *        } ]\n\t\t *      });\n\t\t *    } );\n\t\t */\n\t\t\"fnCreatedCell\": null,\n\t\n\t\n\t\t/**\n\t\t * This parameter has been replaced by `data` in DataTables to ensure naming\n\t\t * consistency. `dataProp` can still be used, as there is backwards\n\t\t * compatibility in DataTables for this option, but it is strongly\n\t\t * recommended that you use `data` in preference to `dataProp`.\n\t\t *  @name DataTable.defaults.column.dataProp\n\t\t */\n\t\n\t\n\t\t/**\n\t\t * This property can be used to read data from any data source property,\n\t\t * including deeply nested objects / properties. `data` can be given in a\n\t\t * number of different ways which effect its behaviour:\n\t\t *\n\t\t * * `integer` - treated as an array index for the data source. This is the\n\t\t *   default that DataTables uses (incrementally increased for each column).\n\t\t * * `string` - read an object property from the data source. There are\n\t\t *   three 'special' options that can be used in the string to alter how\n\t\t *   DataTables reads the data from the source object:\n\t\t *    * `.` - Dotted Javascript notation. Just as you use a `.` in\n\t\t *      Javascript to read from nested objects, so to can the options\n\t\t *      specified in `data`. For example: `browser.version` or\n\t\t *      `browser.name`. If your object parameter name contains a period, use\n\t\t *      `\\\\` to escape it - i.e. `first\\\\.name`.\n\t\t *    * `[]` - Array notation. DataTables can automatically combine data\n\t\t *      from and array source, joining the data with the characters provided\n\t\t *      between the two brackets. For example: `name[, ]` would provide a\n\t\t *      comma-space separated list from the source array. If no characters\n\t\t *      are provided between the brackets, the original array source is\n\t\t *      returned.\n\t\t *    * `()` - Function notation. Adding `()` to the end of a parameter will\n\t\t *      execute a function of the name given. For example: `browser()` for a\n\t\t *      simple function on the data source, `browser.version()` for a\n\t\t *      function in a nested property or even `browser().version` to get an\n\t\t *      object property if the function called returns an object. Note that\n\t\t *      function notation is recommended for use in `render` rather than\n\t\t *      `data` as it is much simpler to use as a renderer.\n\t\t * * `null` - use the original data source for the row rather than plucking\n\t\t *   data directly from it. This action has effects on two other\n\t\t *   initialisation options:\n\t\t *    * `defaultContent` - When null is given as the `data` option and\n\t\t *      `defaultContent` is specified for the column, the value defined by\n\t\t *      `defaultContent` will be used for the cell.\n\t\t *    * `render` - When null is used for the `data` option and the `render`\n\t\t *      option is specified for the column, the whole data source for the\n\t\t *      row is used for the renderer.\n\t\t * * `function` - the function given will be executed whenever DataTables\n\t\t *   needs to set or get the data for a cell in the column. The function\n\t\t *   takes three parameters:\n\t\t *    * Parameters:\n\t\t *      * `{array|object}` The data source for the row\n\t\t *      * `{string}` The type call data requested - this will be 'set' when\n\t\t *        setting data or 'filter', 'display', 'type', 'sort' or undefined\n\t\t *        when gathering data. Note that when `undefined` is given for the\n\t\t *        type DataTables expects to get the raw data for the object back<\n\t\t *      * `{*}` Data to set when the second parameter is 'set'.\n\t\t *    * Return:\n\t\t *      * The return value from the function is not required when 'set' is\n\t\t *        the type of call, but otherwise the return is what will be used\n\t\t *        for the data requested.\n\t\t *\n\t\t * Note that `data` is a getter and setter option. If you just require\n\t\t * formatting of data for output, you will likely want to use `render` which\n\t\t * is simply a getter and thus simpler to use.\n\t\t *\n\t\t * Note that prior to DataTables 1.9.2 `data` was called `mDataProp`. The\n\t\t * name change reflects the flexibility of this property and is consistent\n\t\t * with the naming of mRender. If 'mDataProp' is given, then it will still\n\t\t * be used by DataTables, as it automatically maps the old name to the new\n\t\t * if required.\n\t\t *\n\t\t *  @type string|int|function|null\n\t\t *  @default null <i>Use automatically calculated column index</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.data\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Read table data from objects\n\t\t *    // JSON structure for each row:\n\t\t *    //   {\n\t\t *    //      \"engine\": {value},\n\t\t *    //      \"browser\": {value},\n\t\t *    //      \"platform\": {value},\n\t\t *    //      \"version\": {value},\n\t\t *    //      \"grade\": {value}\n\t\t *    //   }\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"ajaxSource\": \"sources/objects.txt\",\n\t\t *        \"columns\": [\n\t\t *          { \"data\": \"engine\" },\n\t\t *          { \"data\": \"browser\" },\n\t\t *          { \"data\": \"platform\" },\n\t\t *          { \"data\": \"version\" },\n\t\t *          { \"data\": \"grade\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Read information from deeply nested objects\n\t\t *    // JSON structure for each row:\n\t\t *    //   {\n\t\t *    //      \"engine\": {value},\n\t\t *    //      \"browser\": {value},\n\t\t *    //      \"platform\": {\n\t\t *    //         \"inner\": {value}\n\t\t *    //      },\n\t\t *    //      \"details\": [\n\t\t *    //         {value}, {value}\n\t\t *    //      ]\n\t\t *    //   }\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"ajaxSource\": \"sources/deep.txt\",\n\t\t *        \"columns\": [\n\t\t *          { \"data\": \"engine\" },\n\t\t *          { \"data\": \"browser\" },\n\t\t *          { \"data\": \"platform.inner\" },\n\t\t *          { \"data\": \"details.0\" },\n\t\t *          { \"data\": \"details.1\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `data` as a function to provide different information for\n\t\t *    // sorting, filtering and display. In this case, currency (price)\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": function ( source, type, val ) {\n\t\t *            if (type === 'set') {\n\t\t *              source.price = val;\n\t\t *              // Store the computed dislay and filter values for efficiency\n\t\t *              source.price_display = val==\"\" ? \"\" : \"$\"+numberFormat(val);\n\t\t *              source.price_filter  = val==\"\" ? \"\" : \"$\"+numberFormat(val)+\" \"+val;\n\t\t *              return;\n\t\t *            }\n\t\t *            else if (type === 'display') {\n\t\t *              return source.price_display;\n\t\t *            }\n\t\t *            else if (type === 'filter') {\n\t\t *              return source.price_filter;\n\t\t *            }\n\t\t *            // 'sort', 'type' and undefined all just use the integer\n\t\t *            return source.price;\n\t\t *          }\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using default content\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": null,\n\t\t *          \"defaultContent\": \"Click to edit\"\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using array notation - outputting a list from an array\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": \"name[, ]\"\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t */\n\t\t\"mData\": null,\n\t\n\t\n\t\t/**\n\t\t * This property is the rendering partner to `data` and it is suggested that\n\t\t * when you want to manipulate data for display (including filtering,\n\t\t * sorting etc) without altering the underlying data for the table, use this\n\t\t * property. `render` can be considered to be the the read only companion to\n\t\t * `data` which is read / write (then as such more complex). Like `data`\n\t\t * this option can be given in a number of different ways to effect its\n\t\t * behaviour:\n\t\t *\n\t\t * * `integer` - treated as an array index for the data source. This is the\n\t\t *   default that DataTables uses (incrementally increased for each column).\n\t\t * * `string` - read an object property from the data source. There are\n\t\t *   three 'special' options that can be used in the string to alter how\n\t\t *   DataTables reads the data from the source object:\n\t\t *    * `.` - Dotted Javascript notation. Just as you use a `.` in\n\t\t *      Javascript to read from nested objects, so to can the options\n\t\t *      specified in `data`. For example: `browser.version` or\n\t\t *      `browser.name`. If your object parameter name contains a period, use\n\t\t *      `\\\\` to escape it - i.e. `first\\\\.name`.\n\t\t *    * `[]` - Array notation. DataTables can automatically combine data\n\t\t *      from and array source, joining the data with the characters provided\n\t\t *      between the two brackets. For example: `name[, ]` would provide a\n\t\t *      comma-space separated list from the source array. If no characters\n\t\t *      are provided between the brackets, the original array source is\n\t\t *      returned.\n\t\t *    * `()` - Function notation. Adding `()` to the end of a parameter will\n\t\t *      execute a function of the name given. For example: `browser()` for a\n\t\t *      simple function on the data source, `browser.version()` for a\n\t\t *      function in a nested property or even `browser().version` to get an\n\t\t *      object property if the function called returns an object.\n\t\t * * `object` - use different data for the different data types requested by\n\t\t *   DataTables ('filter', 'display', 'type' or 'sort'). The property names\n\t\t *   of the object is the data type the property refers to and the value can\n\t\t *   defined using an integer, string or function using the same rules as\n\t\t *   `render` normally does. Note that an `_` option _must_ be specified.\n\t\t *   This is the default value to use if you haven't specified a value for\n\t\t *   the data type requested by DataTables.\n\t\t * * `function` - the function given will be executed whenever DataTables\n\t\t *   needs to set or get the data for a cell in the column. The function\n\t\t *   takes three parameters:\n\t\t *    * Parameters:\n\t\t *      * {array|object} The data source for the row (based on `data`)\n\t\t *      * {string} The type call data requested - this will be 'filter',\n\t\t *        'display', 'type' or 'sort'.\n\t\t *      * {array|object} The full data source for the row (not based on\n\t\t *        `data`)\n\t\t *    * Return:\n\t\t *      * The return value from the function is what will be used for the\n\t\t *        data requested.\n\t\t *\n\t\t *  @type string|int|function|object|null\n\t\t *  @default null Use the data source value.\n\t\t *\n\t\t *  @name DataTable.defaults.column.render\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Create a comma separated list from an array of objects\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"ajaxSource\": \"sources/deep.txt\",\n\t\t *        \"columns\": [\n\t\t *          { \"data\": \"engine\" },\n\t\t *          { \"data\": \"browser\" },\n\t\t *          {\n\t\t *            \"data\": \"platform\",\n\t\t *            \"render\": \"[, ].name\"\n\t\t *          }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Execute a function to obtain data\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": null, // Use the full data source object for the renderer's source\n\t\t *          \"render\": \"browserName()\"\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // As an object, extracting different data for the different types\n\t\t *    // This would be used with a data source such as:\n\t\t *    //   { \"phone\": 5552368, \"phone_filter\": \"5552368 555-2368\", \"phone_display\": \"555-2368\" }\n\t\t *    // Here the `phone` integer is used for sorting and type detection, while `phone_filter`\n\t\t *    // (which has both forms) is used for filtering for if a user inputs either format, while\n\t\t *    // the formatted phone number is the one that is shown in the table.\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": null, // Use the full data source object for the renderer's source\n\t\t *          \"render\": {\n\t\t *            \"_\": \"phone\",\n\t\t *            \"filter\": \"phone_filter\",\n\t\t *            \"display\": \"phone_display\"\n\t\t *          }\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Use as a function to create a link from the data source\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"data\": \"download_link\",\n\t\t *          \"render\": function ( data, type, full ) {\n\t\t *            return '<a href=\"'+data+'\">Download</a>';\n\t\t *          }\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"mRender\": null,\n\t\n\t\n\t\t/**\n\t\t * Change the cell type created for the column - either TD cells or TH cells. This\n\t\t * can be useful as TH cells have semantic meaning in the table body, allowing them\n\t\t * to act as a header for a row (you may wish to add scope='row' to the TH elements).\n\t\t *  @type string\n\t\t *  @default td\n\t\t *\n\t\t *  @name DataTable.defaults.column.cellType\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Make the first column use TH cells\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [ {\n\t\t *          \"targets\": [ 0 ],\n\t\t *          \"cellType\": \"th\"\n\t\t *        } ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sCellType\": \"td\",\n\t\n\t\n\t\t/**\n\t\t * Class to give to each cell in this column.\n\t\t *  @type string\n\t\t *  @default <i>Empty string</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.class\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"class\": \"my_class\", \"targets\": [ 0 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"class\": \"my_class\" },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sClass\": \"\",\n\t\n\t\t/**\n\t\t * When DataTables calculates the column widths to assign to each column,\n\t\t * it finds the longest string in each column and then constructs a\n\t\t * temporary table and reads the widths from that. The problem with this\n\t\t * is that \"mmm\" is much wider then \"iiii\", but the latter is a longer\n\t\t * string - thus the calculation can go wrong (doing it properly and putting\n\t\t * it into an DOM object and measuring that is horribly(!) slow). Thus as\n\t\t * a \"work around\" we provide this option. It will append its value to the\n\t\t * text that is found to be the longest string for the column - i.e. padding.\n\t\t * Generally you shouldn't need this!\n\t\t *  @type string\n\t\t *  @default <i>Empty string<i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.contentPadding\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          {\n\t\t *            \"contentPadding\": \"mmm\"\n\t\t *          }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sContentPadding\": \"\",\n\t\n\t\n\t\t/**\n\t\t * Allows a default value to be given for a column's data, and will be used\n\t\t * whenever a null data source is encountered (this can be because `data`\n\t\t * is set to null, or because the data source itself is null).\n\t\t *  @type string\n\t\t *  @default null\n\t\t *\n\t\t *  @name DataTable.defaults.column.defaultContent\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          {\n\t\t *            \"data\": null,\n\t\t *            \"defaultContent\": \"Edit\",\n\t\t *            \"targets\": [ -1 ]\n\t\t *          }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          {\n\t\t *            \"data\": null,\n\t\t *            \"defaultContent\": \"Edit\"\n\t\t *          }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sDefaultContent\": null,\n\t\n\t\n\t\t/**\n\t\t * This parameter is only used in DataTables' server-side processing. It can\n\t\t * be exceptionally useful to know what columns are being displayed on the\n\t\t * client side, and to map these to database fields. When defined, the names\n\t\t * also allow DataTables to reorder information from the server if it comes\n\t\t * back in an unexpected order (i.e. if you switch your columns around on the\n\t\t * client-side, your server-side code does not also need updating).\n\t\t *  @type string\n\t\t *  @default <i>Empty string</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.name\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"name\": \"engine\", \"targets\": [ 0 ] },\n\t\t *          { \"name\": \"browser\", \"targets\": [ 1 ] },\n\t\t *          { \"name\": \"platform\", \"targets\": [ 2 ] },\n\t\t *          { \"name\": \"version\", \"targets\": [ 3 ] },\n\t\t *          { \"name\": \"grade\", \"targets\": [ 4 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"name\": \"engine\" },\n\t\t *          { \"name\": \"browser\" },\n\t\t *          { \"name\": \"platform\" },\n\t\t *          { \"name\": \"version\" },\n\t\t *          { \"name\": \"grade\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sName\": \"\",\n\t\n\t\n\t\t/**\n\t\t * Defines a data source type for the ordering which can be used to read\n\t\t * real-time information from the table (updating the internally cached\n\t\t * version) prior to ordering. This allows ordering to occur on user\n\t\t * editable elements such as form inputs.\n\t\t *  @type string\n\t\t *  @default std\n\t\t *\n\t\t *  @name DataTable.defaults.column.orderDataType\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"orderDataType\": \"dom-text\", \"targets\": [ 2, 3 ] },\n\t\t *          { \"type\": \"numeric\", \"targets\": [ 3 ] },\n\t\t *          { \"orderDataType\": \"dom-select\", \"targets\": [ 4 ] },\n\t\t *          { \"orderDataType\": \"dom-checkbox\", \"targets\": [ 5 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          null,\n\t\t *          null,\n\t\t *          { \"orderDataType\": \"dom-text\" },\n\t\t *          { \"orderDataType\": \"dom-text\", \"type\": \"numeric\" },\n\t\t *          { \"orderDataType\": \"dom-select\" },\n\t\t *          { \"orderDataType\": \"dom-checkbox\" }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sSortDataType\": \"std\",\n\t\n\t\n\t\t/**\n\t\t * The title of this column.\n\t\t *  @type string\n\t\t *  @default null <i>Derived from the 'TH' value for this column in the\n\t\t *    original HTML table.</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.title\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"title\": \"My column title\", \"targets\": [ 0 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"title\": \"My column title\" },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sTitle\": null,\n\t\n\t\n\t\t/**\n\t\t * The type allows you to specify how the data for this column will be\n\t\t * ordered. Four types (string, numeric, date and html (which will strip\n\t\t * HTML tags before ordering)) are currently available. Note that only date\n\t\t * formats understood by Javascript's Date() object will be accepted as type\n\t\t * date. For example: \"Mar 26, 2008 5:03 PM\". May take the values: 'string',\n\t\t * 'numeric', 'date' or 'html' (by default). Further types can be adding\n\t\t * through plug-ins.\n\t\t *  @type string\n\t\t *  @default null <i>Auto-detected from raw data</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.type\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"type\": \"html\", \"targets\": [ 0 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"type\": \"html\" },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sType\": null,\n\t\n\t\n\t\t/**\n\t\t * Defining the width of the column, this parameter may take any CSS value\n\t\t * (3em, 20px etc). DataTables applies 'smart' widths to columns which have not\n\t\t * been given a specific width through this interface ensuring that the table\n\t\t * remains readable.\n\t\t *  @type string\n\t\t *  @default null <i>Automatic</i>\n\t\t *\n\t\t *  @name DataTable.defaults.column.width\n\t\t *  @dtopt Columns\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columnDefs`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columnDefs\": [\n\t\t *          { \"width\": \"20%\", \"targets\": [ 0 ] }\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t *\n\t\t *  @example\n\t\t *    // Using `columns`\n\t\t *    $(document).ready( function() {\n\t\t *      $('#example').dataTable( {\n\t\t *        \"columns\": [\n\t\t *          { \"width\": \"20%\" },\n\t\t *          null,\n\t\t *          null,\n\t\t *          null,\n\t\t *          null\n\t\t *        ]\n\t\t *      } );\n\t\t *    } );\n\t\t */\n\t\t\"sWidth\": null\n\t};\n\t\n\t_fnHungarianMap( DataTable.defaults.column );\n\t\n\t\n\t\n\t/**\n\t * DataTables settings object - this holds all the information needed for a\n\t * given table, including configuration, data and current application of the\n\t * table options. DataTables does not have a single instance for each DataTable\n\t * with the settings attached to that instance, but rather instances of the\n\t * DataTable \"class\" are created on-the-fly as needed (typically by a\n\t * $().dataTable() call) and the settings object is then applied to that\n\t * instance.\n\t *\n\t * Note that this object is related to {@link DataTable.defaults} but this\n\t * one is the internal data store for DataTables's cache of columns. It should\n\t * NOT be manipulated outside of DataTables. Any configuration should be done\n\t * through the initialisation options.\n\t *  @namespace\n\t *  @todo Really should attach the settings object to individual instances so we\n\t *    don't need to create new instances on each $().dataTable() call (if the\n\t *    table already exists). It would also save passing oSettings around and\n\t *    into every single function. However, this is a very significant\n\t *    architecture change for DataTables and will almost certainly break\n\t *    backwards compatibility with older installations. This is something that\n\t *    will be done in 2.0.\n\t */\n\tDataTable.models.oSettings = {\n\t\t/**\n\t\t * Primary features of DataTables and their enablement state.\n\t\t *  @namespace\n\t\t */\n\t\t\"oFeatures\": {\n\t\n\t\t\t/**\n\t\t\t * Flag to say if DataTables should automatically try to calculate the\n\t\t\t * optimum table and columns widths (true) or not (false).\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bAutoWidth\": null,\n\t\n\t\t\t/**\n\t\t\t * Delay the creation of TR and TD elements until they are actually\n\t\t\t * needed by a driven page draw. This can give a significant speed\n\t\t\t * increase for Ajax source and Javascript source data, but makes no\n\t\t\t * difference at all fro DOM and server-side processing tables.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bDeferRender\": null,\n\t\n\t\t\t/**\n\t\t\t * Enable filtering on the table or not. Note that if this is disabled\n\t\t\t * then there is no filtering at all on the table, including fnFilter.\n\t\t\t * To just remove the filtering input use sDom and remove the 'f' option.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bFilter\": null,\n\t\n\t\t\t/**\n\t\t\t * Table information element (the 'Showing x of y records' div) enable\n\t\t\t * flag.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bInfo\": null,\n\t\n\t\t\t/**\n\t\t\t * Present a user control allowing the end user to change the page size\n\t\t\t * when pagination is enabled.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bLengthChange\": null,\n\t\n\t\t\t/**\n\t\t\t * Pagination enabled or not. Note that if this is disabled then length\n\t\t\t * changing must also be disabled.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bPaginate\": null,\n\t\n\t\t\t/**\n\t\t\t * Processing indicator enable flag whenever DataTables is enacting a\n\t\t\t * user request - typically an Ajax request for server-side processing.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bProcessing\": null,\n\t\n\t\t\t/**\n\t\t\t * Server-side processing enabled flag - when enabled DataTables will\n\t\t\t * get all data from the server for every draw - there is no filtering,\n\t\t\t * sorting or paging done on the client-side.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bServerSide\": null,\n\t\n\t\t\t/**\n\t\t\t * Sorting enablement flag.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bSort\": null,\n\t\n\t\t\t/**\n\t\t\t * Multi-column sorting\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bSortMulti\": null,\n\t\n\t\t\t/**\n\t\t\t * Apply a class to the columns which are being sorted to provide a\n\t\t\t * visual highlight or not. This can slow things down when enabled since\n\t\t\t * there is a lot of DOM interaction.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bSortClasses\": null,\n\t\n\t\t\t/**\n\t\t\t * State saving enablement flag.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bStateSave\": null\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Scrolling settings for a table.\n\t\t *  @namespace\n\t\t */\n\t\t\"oScroll\": {\n\t\t\t/**\n\t\t\t * When the table is shorter in height than sScrollY, collapse the\n\t\t\t * table container down to the height of the table (when true).\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type boolean\n\t\t\t */\n\t\t\t\"bCollapse\": null,\n\t\n\t\t\t/**\n\t\t\t * Width of the scrollbar for the web-browser's platform. Calculated\n\t\t\t * during table initialisation.\n\t\t\t *  @type int\n\t\t\t *  @default 0\n\t\t\t */\n\t\t\t\"iBarWidth\": 0,\n\t\n\t\t\t/**\n\t\t\t * Viewport width for horizontal scrolling. Horizontal scrolling is\n\t\t\t * disabled if an empty string.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type string\n\t\t\t */\n\t\t\t\"sX\": null,\n\t\n\t\t\t/**\n\t\t\t * Width to expand the table to when using x-scrolling. Typically you\n\t\t\t * should not need to use this.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type string\n\t\t\t *  @deprecated\n\t\t\t */\n\t\t\t\"sXInner\": null,\n\t\n\t\t\t/**\n\t\t\t * Viewport height for vertical scrolling. Vertical scrolling is disabled\n\t\t\t * if an empty string.\n\t\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t\t * set a default use {@link DataTable.defaults}.\n\t\t\t *  @type string\n\t\t\t */\n\t\t\t\"sY\": null\n\t\t},\n\t\n\t\t/**\n\t\t * Language information for the table.\n\t\t *  @namespace\n\t\t *  @extends DataTable.defaults.oLanguage\n\t\t */\n\t\t\"oLanguage\": {\n\t\t\t/**\n\t\t\t * Information callback function. See\n\t\t\t * {@link DataTable.defaults.fnInfoCallback}\n\t\t\t *  @type function\n\t\t\t *  @default null\n\t\t\t */\n\t\t\t\"fnInfoCallback\": null\n\t\t},\n\t\n\t\t/**\n\t\t * Browser support parameters\n\t\t *  @namespace\n\t\t */\n\t\t\"oBrowser\": {\n\t\t\t/**\n\t\t\t * Indicate if the browser incorrectly calculates width:100% inside a\n\t\t\t * scrolling element (IE6/7)\n\t\t\t *  @type boolean\n\t\t\t *  @default false\n\t\t\t */\n\t\t\t\"bScrollOversize\": false,\n\t\n\t\t\t/**\n\t\t\t * Determine if the vertical scrollbar is on the right or left of the\n\t\t\t * scrolling container - needed for rtl language layout, although not\n\t\t\t * all browsers move the scrollbar (Safari).\n\t\t\t *  @type boolean\n\t\t\t *  @default false\n\t\t\t */\n\t\t\t\"bScrollbarLeft\": false,\n\t\n\t\t\t/**\n\t\t\t * Flag for if `getBoundingClientRect` is fully supported or not\n\t\t\t *  @type boolean\n\t\t\t *  @default false\n\t\t\t */\n\t\t\t\"bBounding\": false,\n\t\n\t\t\t/**\n\t\t\t * Browser scrollbar width\n\t\t\t *  @type integer\n\t\t\t *  @default 0\n\t\t\t */\n\t\t\t\"barWidth\": 0\n\t\t},\n\t\n\t\n\t\t\"ajax\": null,\n\t\n\t\n\t\t/**\n\t\t * Array referencing the nodes which are used for the features. The\n\t\t * parameters of this object match what is allowed by sDom - i.e.\n\t\t *   <ul>\n\t\t *     <li>'l' - Length changing</li>\n\t\t *     <li>'f' - Filtering input</li>\n\t\t *     <li>'t' - The table!</li>\n\t\t *     <li>'i' - Information</li>\n\t\t *     <li>'p' - Pagination</li>\n\t\t *     <li>'r' - pRocessing</li>\n\t\t *   </ul>\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aanFeatures\": [],\n\t\n\t\t/**\n\t\t * Store data information - see {@link DataTable.models.oRow} for detailed\n\t\t * information.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoData\": [],\n\t\n\t\t/**\n\t\t * Array of indexes which are in the current display (after filtering etc)\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aiDisplay\": [],\n\t\n\t\t/**\n\t\t * Array of indexes for display - no filtering\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aiDisplayMaster\": [],\n\t\n\t\t/**\n\t\t * Map of row ids to data indexes\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\t\"aIds\": {},\n\t\n\t\t/**\n\t\t * Store information about each column that is in use\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoColumns\": [],\n\t\n\t\t/**\n\t\t * Store information about the table's header\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoHeader\": [],\n\t\n\t\t/**\n\t\t * Store information about the table's footer\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoFooter\": [],\n\t\n\t\t/**\n\t\t * Store the applied global search information in case we want to force a\n\t\t * research or compare the old search to a new one.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @namespace\n\t\t *  @extends DataTable.models.oSearch\n\t\t */\n\t\t\"oPreviousSearch\": {},\n\t\n\t\t/**\n\t\t * Store the applied search for each column - see\n\t\t * {@link DataTable.models.oSearch} for the format that is used for the\n\t\t * filtering information for each column.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoPreSearchCols\": [],\n\t\n\t\t/**\n\t\t * Sorting that is applied to the table. Note that the inner arrays are\n\t\t * used in the following manner:\n\t\t * <ul>\n\t\t *   <li>Index 0 - column number</li>\n\t\t *   <li>Index 1 - current sorting direction</li>\n\t\t * </ul>\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type array\n\t\t *  @todo These inner arrays should really be objects\n\t\t */\n\t\t\"aaSorting\": null,\n\t\n\t\t/**\n\t\t * Sorting that is always applied to the table (i.e. prefixed in front of\n\t\t * aaSorting).\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aaSortingFixed\": [],\n\t\n\t\t/**\n\t\t * Classes to use for the striping of a table.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"asStripeClasses\": null,\n\t\n\t\t/**\n\t\t * If restoring a table - we should restore its striping classes as well\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"asDestroyStripes\": [],\n\t\n\t\t/**\n\t\t * If restoring a table - we should restore its width\n\t\t *  @type int\n\t\t *  @default 0\n\t\t */\n\t\t\"sDestroyWidth\": 0,\n\t\n\t\t/**\n\t\t * Callback functions array for every time a row is inserted (i.e. on a draw).\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoRowCallback\": [],\n\t\n\t\t/**\n\t\t * Callback functions for the header on each draw.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoHeaderCallback\": [],\n\t\n\t\t/**\n\t\t * Callback function for the footer on each draw.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoFooterCallback\": [],\n\t\n\t\t/**\n\t\t * Array of callback functions for draw callback functions\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoDrawCallback\": [],\n\t\n\t\t/**\n\t\t * Array of callback functions for row created function\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoRowCreatedCallback\": [],\n\t\n\t\t/**\n\t\t * Callback functions for just before the table is redrawn. A return of\n\t\t * false will be used to cancel the draw.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoPreDrawCallback\": [],\n\t\n\t\t/**\n\t\t * Callback functions for when the table has been initialised.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoInitComplete\": [],\n\t\n\t\n\t\t/**\n\t\t * Callbacks for modifying the settings to be stored for state saving, prior to\n\t\t * saving state.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoStateSaveParams\": [],\n\t\n\t\t/**\n\t\t * Callbacks for modifying the settings that have been stored for state saving\n\t\t * prior to using the stored values to restore the state.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoStateLoadParams\": [],\n\t\n\t\t/**\n\t\t * Callbacks for operating on the settings object once the saved state has been\n\t\t * loaded\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoStateLoaded\": [],\n\t\n\t\t/**\n\t\t * Cache the table ID for quick access\n\t\t *  @type string\n\t\t *  @default <i>Empty string</i>\n\t\t */\n\t\t\"sTableId\": \"\",\n\t\n\t\t/**\n\t\t * The TABLE node for the main table\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTable\": null,\n\t\n\t\t/**\n\t\t * Permanent ref to the thead element\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTHead\": null,\n\t\n\t\t/**\n\t\t * Permanent ref to the tfoot element - if it exists\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTFoot\": null,\n\t\n\t\t/**\n\t\t * Permanent ref to the tbody element\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTBody\": null,\n\t\n\t\t/**\n\t\t * Cache the wrapper node (contains all DataTables controlled elements)\n\t\t *  @type node\n\t\t *  @default null\n\t\t */\n\t\t\"nTableWrapper\": null,\n\t\n\t\t/**\n\t\t * Indicate if when using server-side processing the loading of data\n\t\t * should be deferred until the second draw.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t */\n\t\t\"bDeferLoading\": false,\n\t\n\t\t/**\n\t\t * Indicate if all required information has been read in\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t */\n\t\t\"bInitialised\": false,\n\t\n\t\t/**\n\t\t * Information about open rows. Each object in the array has the parameters\n\t\t * 'nTr' and 'nParent'\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoOpenRows\": [],\n\t\n\t\t/**\n\t\t * Dictate the positioning of DataTables' control elements - see\n\t\t * {@link DataTable.model.oInit.sDom}.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sDom\": null,\n\t\n\t\t/**\n\t\t * Search delay (in mS)\n\t\t *  @type integer\n\t\t *  @default null\n\t\t */\n\t\t\"searchDelay\": null,\n\t\n\t\t/**\n\t\t * Which type of pagination should be used.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type string\n\t\t *  @default two_button\n\t\t */\n\t\t\"sPaginationType\": \"two_button\",\n\t\n\t\t/**\n\t\t * The state duration (for `stateSave`) in seconds.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type int\n\t\t *  @default 0\n\t\t */\n\t\t\"iStateDuration\": 0,\n\t\n\t\t/**\n\t\t * Array of callback functions for state saving. Each array element is an\n\t\t * object with the following parameters:\n\t\t *   <ul>\n\t\t *     <li>function:fn - function to call. Takes two parameters, oSettings\n\t\t *       and the JSON string to save that has been thus far created. Returns\n\t\t *       a JSON string to be inserted into a json object\n\t\t *       (i.e. '\"param\": [ 0, 1, 2]')</li>\n\t\t *     <li>string:sName - name of callback</li>\n\t\t *   </ul>\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoStateSave\": [],\n\t\n\t\t/**\n\t\t * Array of callback functions for state loading. Each array element is an\n\t\t * object with the following parameters:\n\t\t *   <ul>\n\t\t *     <li>function:fn - function to call. Takes two parameters, oSettings\n\t\t *       and the object stored. May return false to cancel state loading</li>\n\t\t *     <li>string:sName - name of callback</li>\n\t\t *   </ul>\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoStateLoad\": [],\n\t\n\t\t/**\n\t\t * State that was saved. Useful for back reference\n\t\t *  @type object\n\t\t *  @default null\n\t\t */\n\t\t\"oSavedState\": null,\n\t\n\t\t/**\n\t\t * State that was loaded. Useful for back reference\n\t\t *  @type object\n\t\t *  @default null\n\t\t */\n\t\t\"oLoadedState\": null,\n\t\n\t\t/**\n\t\t * Source url for AJAX data for the table.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sAjaxSource\": null,\n\t\n\t\t/**\n\t\t * Property from a given object from which to read the table data from. This\n\t\t * can be an empty string (when not server-side processing), in which case\n\t\t * it is  assumed an an array is given directly.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type string\n\t\t */\n\t\t\"sAjaxDataProp\": null,\n\t\n\t\t/**\n\t\t * Note if draw should be blocked while getting data\n\t\t *  @type boolean\n\t\t *  @default true\n\t\t */\n\t\t\"bAjaxDataGet\": true,\n\t\n\t\t/**\n\t\t * The last jQuery XHR object that was used for server-side data gathering.\n\t\t * This can be used for working with the XHR information in one of the\n\t\t * callbacks\n\t\t *  @type object\n\t\t *  @default null\n\t\t */\n\t\t\"jqXHR\": null,\n\t\n\t\t/**\n\t\t * JSON returned from the server in the last Ajax request\n\t\t *  @type object\n\t\t *  @default undefined\n\t\t */\n\t\t\"json\": undefined,\n\t\n\t\t/**\n\t\t * Data submitted as part of the last Ajax request\n\t\t *  @type object\n\t\t *  @default undefined\n\t\t */\n\t\t\"oAjaxData\": undefined,\n\t\n\t\t/**\n\t\t * Function to get the server-side data.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type function\n\t\t */\n\t\t\"fnServerData\": null,\n\t\n\t\t/**\n\t\t * Functions which are called prior to sending an Ajax request so extra\n\t\t * parameters can easily be sent to the server\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoServerParams\": [],\n\t\n\t\t/**\n\t\t * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if\n\t\t * required).\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type string\n\t\t */\n\t\t\"sServerMethod\": null,\n\t\n\t\t/**\n\t\t * Format numbers for display.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type function\n\t\t */\n\t\t\"fnFormatNumber\": null,\n\t\n\t\t/**\n\t\t * List of options that can be used for the user selectable length menu.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aLengthMenu\": null,\n\t\n\t\t/**\n\t\t * Counter for the draws that the table does. Also used as a tracker for\n\t\t * server-side processing\n\t\t *  @type int\n\t\t *  @default 0\n\t\t */\n\t\t\"iDraw\": 0,\n\t\n\t\t/**\n\t\t * Indicate if a redraw is being done - useful for Ajax\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t */\n\t\t\"bDrawing\": false,\n\t\n\t\t/**\n\t\t * Draw index (iDraw) of the last error when parsing the returned data\n\t\t *  @type int\n\t\t *  @default -1\n\t\t */\n\t\t\"iDrawError\": -1,\n\t\n\t\t/**\n\t\t * Paging display length\n\t\t *  @type int\n\t\t *  @default 10\n\t\t */\n\t\t\"_iDisplayLength\": 10,\n\t\n\t\t/**\n\t\t * Paging start point - aiDisplay index\n\t\t *  @type int\n\t\t *  @default 0\n\t\t */\n\t\t\"_iDisplayStart\": 0,\n\t\n\t\t/**\n\t\t * Server-side processing - number of records in the result set\n\t\t * (i.e. before filtering), Use fnRecordsTotal rather than\n\t\t * this property to get the value of the number of records, regardless of\n\t\t * the server-side processing setting.\n\t\t *  @type int\n\t\t *  @default 0\n\t\t *  @private\n\t\t */\n\t\t\"_iRecordsTotal\": 0,\n\t\n\t\t/**\n\t\t * Server-side processing - number of records in the current display set\n\t\t * (i.e. after filtering). Use fnRecordsDisplay rather than\n\t\t * this property to get the value of the number of records, regardless of\n\t\t * the server-side processing setting.\n\t\t *  @type boolean\n\t\t *  @default 0\n\t\t *  @private\n\t\t */\n\t\t\"_iRecordsDisplay\": 0,\n\t\n\t\t/**\n\t\t * The classes to use for the table\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\t\"oClasses\": {},\n\t\n\t\t/**\n\t\t * Flag attached to the settings object so you can check in the draw\n\t\t * callback if filtering has been done in the draw. Deprecated in favour of\n\t\t * events.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *  @deprecated\n\t\t */\n\t\t\"bFiltered\": false,\n\t\n\t\t/**\n\t\t * Flag attached to the settings object so you can check in the draw\n\t\t * callback if sorting has been done in the draw. Deprecated in favour of\n\t\t * events.\n\t\t *  @type boolean\n\t\t *  @default false\n\t\t *  @deprecated\n\t\t */\n\t\t\"bSorted\": false,\n\t\n\t\t/**\n\t\t * Indicate that if multiple rows are in the header and there is more than\n\t\t * one unique cell per column, if the top one (true) or bottom one (false)\n\t\t * should be used for sorting / title by DataTables.\n\t\t * Note that this parameter will be set by the initialisation routine. To\n\t\t * set a default use {@link DataTable.defaults}.\n\t\t *  @type boolean\n\t\t */\n\t\t\"bSortCellsTop\": null,\n\t\n\t\t/**\n\t\t * Initialisation object that is used for the table\n\t\t *  @type object\n\t\t *  @default null\n\t\t */\n\t\t\"oInit\": null,\n\t\n\t\t/**\n\t\t * Destroy callback functions - for plug-ins to attach themselves to the\n\t\t * destroy so they can clean up markup and events.\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aoDestroyCallback\": [],\n\t\n\t\n\t\t/**\n\t\t * Get the number of records in the current record set, before filtering\n\t\t *  @type function\n\t\t */\n\t\t\"fnRecordsTotal\": function ()\n\t\t{\n\t\t\treturn _fnDataSource( this ) == 'ssp' ?\n\t\t\t\tthis._iRecordsTotal * 1 :\n\t\t\t\tthis.aiDisplayMaster.length;\n\t\t},\n\t\n\t\t/**\n\t\t * Get the number of records in the current record set, after filtering\n\t\t *  @type function\n\t\t */\n\t\t\"fnRecordsDisplay\": function ()\n\t\t{\n\t\t\treturn _fnDataSource( this ) == 'ssp' ?\n\t\t\t\tthis._iRecordsDisplay * 1 :\n\t\t\t\tthis.aiDisplay.length;\n\t\t},\n\t\n\t\t/**\n\t\t * Get the display end point - aiDisplay index\n\t\t *  @type function\n\t\t */\n\t\t\"fnDisplayEnd\": function ()\n\t\t{\n\t\t\tvar\n\t\t\t\tlen      = this._iDisplayLength,\n\t\t\t\tstart    = this._iDisplayStart,\n\t\t\t\tcalc     = start + len,\n\t\t\t\trecords  = this.aiDisplay.length,\n\t\t\t\tfeatures = this.oFeatures,\n\t\t\t\tpaginate = features.bPaginate;\n\t\n\t\t\tif ( features.bServerSide ) {\n\t\t\t\treturn paginate === false || len === -1 ?\n\t\t\t\t\tstart + records :\n\t\t\t\t\tMath.min( start+len, this._iRecordsDisplay );\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn ! paginate || calc>records || len===-1 ?\n\t\t\t\t\trecords :\n\t\t\t\t\tcalc;\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * The DataTables object for this table\n\t\t *  @type object\n\t\t *  @default null\n\t\t */\n\t\t\"oInstance\": null,\n\t\n\t\t/**\n\t\t * Unique identifier for each instance of the DataTables object. If there\n\t\t * is an ID on the table node, then it takes that value, otherwise an\n\t\t * incrementing internal counter is used.\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"sInstance\": null,\n\t\n\t\t/**\n\t\t * tabindex attribute value that is added to DataTables control elements, allowing\n\t\t * keyboard navigation of the table and its controls.\n\t\t */\n\t\t\"iTabIndex\": 0,\n\t\n\t\t/**\n\t\t * DIV container for the footer scrolling table if scrolling\n\t\t */\n\t\t\"nScrollHead\": null,\n\t\n\t\t/**\n\t\t * DIV container for the footer scrolling table if scrolling\n\t\t */\n\t\t\"nScrollFoot\": null,\n\t\n\t\t/**\n\t\t * Last applied sort\n\t\t *  @type array\n\t\t *  @default []\n\t\t */\n\t\t\"aLastSort\": [],\n\t\n\t\t/**\n\t\t * Stored plug-in instances\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\t\"oPlugins\": {},\n\t\n\t\t/**\n\t\t * Function used to get a row's id from the row's data\n\t\t *  @type function\n\t\t *  @default null\n\t\t */\n\t\t\"rowIdFn\": null,\n\t\n\t\t/**\n\t\t * Data location where to store a row's id\n\t\t *  @type string\n\t\t *  @default null\n\t\t */\n\t\t\"rowId\": null\n\t};\n\n\t/**\n\t * Extension object for DataTables that is used to provide all extension\n\t * options.\n\t *\n\t * Note that the `DataTable.ext` object is available through\n\t * `jQuery.fn.dataTable.ext` where it may be accessed and manipulated. It is\n\t * also aliased to `jQuery.fn.dataTableExt` for historic reasons.\n\t *  @namespace\n\t *  @extends DataTable.models.ext\n\t */\n\t\n\t\n\t/**\n\t * DataTables extensions\n\t * \n\t * This namespace acts as a collection area for plug-ins that can be used to\n\t * extend DataTables capabilities. Indeed many of the build in methods\n\t * use this method to provide their own capabilities (sorting methods for\n\t * example).\n\t *\n\t * Note that this namespace is aliased to `jQuery.fn.dataTableExt` for legacy\n\t * reasons\n\t *\n\t *  @namespace\n\t */\n\tDataTable.ext = _ext = {\n\t\t/**\n\t\t * Buttons. For use with the Buttons extension for DataTables. This is\n\t\t * defined here so other extensions can define buttons regardless of load\n\t\t * order. It is _not_ used by DataTables core.\n\t\t *\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\tbuttons: {},\n\t\n\t\n\t\t/**\n\t\t * Element class names\n\t\t *\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\tclasses: {},\n\t\n\t\n\t\t/**\n\t\t * DataTables build type (expanded by the download builder)\n\t\t *\n\t\t *  @type string\n\t\t */\n\t\tbuilder: \"-source-\",\n\t\n\t\n\t\t/**\n\t\t * Error reporting.\n\t\t * \n\t\t * How should DataTables report an error. Can take the value 'alert',\n\t\t * 'throw', 'none' or a function.\n\t\t *\n\t\t *  @type string|function\n\t\t *  @default alert\n\t\t */\n\t\terrMode: \"alert\",\n\t\n\t\n\t\t/**\n\t\t * Feature plug-ins.\n\t\t * \n\t\t * This is an array of objects which describe the feature plug-ins that are\n\t\t * available to DataTables. These feature plug-ins are then available for\n\t\t * use through the `dom` initialisation option.\n\t\t * \n\t\t * Each feature plug-in is described by an object which must have the\n\t\t * following properties:\n\t\t * \n\t\t * * `fnInit` - function that is used to initialise the plug-in,\n\t\t * * `cFeature` - a character so the feature can be enabled by the `dom`\n\t\t *   instillation option. This is case sensitive.\n\t\t *\n\t\t * The `fnInit` function has the following input parameters:\n\t\t *\n\t\t * 1. `{object}` DataTables settings object: see\n\t\t *    {@link DataTable.models.oSettings}\n\t\t *\n\t\t * And the following return is expected:\n\t\t * \n\t\t * * {node|null} The element which contains your feature. Note that the\n\t\t *   return may also be void if your plug-in does not require to inject any\n\t\t *   DOM elements into DataTables control (`dom`) - for example this might\n\t\t *   be useful when developing a plug-in which allows table control via\n\t\t *   keyboard entry\n\t\t *\n\t\t *  @type array\n\t\t *\n\t\t *  @example\n\t\t *    $.fn.dataTable.ext.features.push( {\n\t\t *      \"fnInit\": function( oSettings ) {\n\t\t *        return new TableTools( { \"oDTSettings\": oSettings } );\n\t\t *      },\n\t\t *      \"cFeature\": \"T\"\n\t\t *    } );\n\t\t */\n\t\tfeature: [],\n\t\n\t\n\t\t/**\n\t\t * Row searching.\n\t\t * \n\t\t * This method of searching is complimentary to the default type based\n\t\t * searching, and a lot more comprehensive as it allows you complete control\n\t\t * over the searching logic. Each element in this array is a function\n\t\t * (parameters described below) that is called for every row in the table,\n\t\t * and your logic decides if it should be included in the searching data set\n\t\t * or not.\n\t\t *\n\t\t * Searching functions have the following input parameters:\n\t\t *\n\t\t * 1. `{object}` DataTables settings object: see\n\t\t *    {@link DataTable.models.oSettings}\n\t\t * 2. `{array|object}` Data for the row to be processed (same as the\n\t\t *    original format that was passed in as the data source, or an array\n\t\t *    from a DOM data source\n\t\t * 3. `{int}` Row index ({@link DataTable.models.oSettings.aoData}), which\n\t\t *    can be useful to retrieve the `TR` element if you need DOM interaction.\n\t\t *\n\t\t * And the following return is expected:\n\t\t *\n\t\t * * {boolean} Include the row in the searched result set (true) or not\n\t\t *   (false)\n\t\t *\n\t\t * Note that as with the main search ability in DataTables, technically this\n\t\t * is \"filtering\", since it is subtractive. However, for consistency in\n\t\t * naming we call it searching here.\n\t\t *\n\t\t *  @type array\n\t\t *  @default []\n\t\t *\n\t\t *  @example\n\t\t *    // The following example shows custom search being applied to the\n\t\t *    // fourth column (i.e. the data[3] index) based on two input values\n\t\t *    // from the end-user, matching the data in a certain range.\n\t\t *    $.fn.dataTable.ext.search.push(\n\t\t *      function( settings, data, dataIndex ) {\n\t\t *        var min = document.getElementById('min').value * 1;\n\t\t *        var max = document.getElementById('max').value * 1;\n\t\t *        var version = data[3] == \"-\" ? 0 : data[3]*1;\n\t\t *\n\t\t *        if ( min == \"\" && max == \"\" ) {\n\t\t *          return true;\n\t\t *        }\n\t\t *        else if ( min == \"\" && version < max ) {\n\t\t *          return true;\n\t\t *        }\n\t\t *        else if ( min < version && \"\" == max ) {\n\t\t *          return true;\n\t\t *        }\n\t\t *        else if ( min < version && version < max ) {\n\t\t *          return true;\n\t\t *        }\n\t\t *        return false;\n\t\t *      }\n\t\t *    );\n\t\t */\n\t\tsearch: [],\n\t\n\t\n\t\t/**\n\t\t * Selector extensions\n\t\t *\n\t\t * The `selector` option can be used to extend the options available for the\n\t\t * selector modifier options (`selector-modifier` object data type) that\n\t\t * each of the three built in selector types offer (row, column and cell +\n\t\t * their plural counterparts). For example the Select extension uses this\n\t\t * mechanism to provide an option to select only rows, columns and cells\n\t\t * that have been marked as selected by the end user (`{selected: true}`),\n\t\t * which can be used in conjunction with the existing built in selector\n\t\t * options.\n\t\t *\n\t\t * Each property is an array to which functions can be pushed. The functions\n\t\t * take three attributes:\n\t\t *\n\t\t * * Settings object for the host table\n\t\t * * Options object (`selector-modifier` object type)\n\t\t * * Array of selected item indexes\n\t\t *\n\t\t * The return is an array of the resulting item indexes after the custom\n\t\t * selector has been applied.\n\t\t *\n\t\t *  @type object\n\t\t */\n\t\tselector: {\n\t\t\tcell: [],\n\t\t\tcolumn: [],\n\t\t\trow: []\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Internal functions, exposed for used in plug-ins.\n\t\t * \n\t\t * Please note that you should not need to use the internal methods for\n\t\t * anything other than a plug-in (and even then, try to avoid if possible).\n\t\t * The internal function may change between releases.\n\t\t *\n\t\t *  @type object\n\t\t *  @default {}\n\t\t */\n\t\tinternal: {},\n\t\n\t\n\t\t/**\n\t\t * Legacy configuration options. Enable and disable legacy options that\n\t\t * are available in DataTables.\n\t\t *\n\t\t *  @type object\n\t\t */\n\t\tlegacy: {\n\t\t\t/**\n\t\t\t * Enable / disable DataTables 1.9 compatible server-side processing\n\t\t\t * requests\n\t\t\t *\n\t\t\t *  @type boolean\n\t\t\t *  @default null\n\t\t\t */\n\t\t\tajax: null\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Pagination plug-in methods.\n\t\t * \n\t\t * Each entry in this object is a function and defines which buttons should\n\t\t * be shown by the pagination rendering method that is used for the table:\n\t\t * {@link DataTable.ext.renderer.pageButton}. The renderer addresses how the\n\t\t * buttons are displayed in the document, while the functions here tell it\n\t\t * what buttons to display. This is done by returning an array of button\n\t\t * descriptions (what each button will do).\n\t\t *\n\t\t * Pagination types (the four built in options and any additional plug-in\n\t\t * options defined here) can be used through the `paginationType`\n\t\t * initialisation parameter.\n\t\t *\n\t\t * The functions defined take two parameters:\n\t\t *\n\t\t * 1. `{int} page` The current page index\n\t\t * 2. `{int} pages` The number of pages in the table\n\t\t *\n\t\t * Each function is expected to return an array where each element of the\n\t\t * array can be one of:\n\t\t *\n\t\t * * `first` - Jump to first page when activated\n\t\t * * `last` - Jump to last page when activated\n\t\t * * `previous` - Show previous page when activated\n\t\t * * `next` - Show next page when activated\n\t\t * * `{int}` - Show page of the index given\n\t\t * * `{array}` - A nested array containing the above elements to add a\n\t\t *   containing 'DIV' element (might be useful for styling).\n\t\t *\n\t\t * Note that DataTables v1.9- used this object slightly differently whereby\n\t\t * an object with two functions would be defined for each plug-in. That\n\t\t * ability is still supported by DataTables 1.10+ to provide backwards\n\t\t * compatibility, but this option of use is now decremented and no longer\n\t\t * documented in DataTables 1.10+.\n\t\t *\n\t\t *  @type object\n\t\t *  @default {}\n\t\t *\n\t\t *  @example\n\t\t *    // Show previous, next and current page buttons only\n\t\t *    $.fn.dataTableExt.oPagination.current = function ( page, pages ) {\n\t\t *      return [ 'previous', page, 'next' ];\n\t\t *    };\n\t\t */\n\t\tpager: {},\n\t\n\t\n\t\trenderer: {\n\t\t\tpageButton: {},\n\t\t\theader: {}\n\t\t},\n\t\n\t\n\t\t/**\n\t\t * Ordering plug-ins - custom data source\n\t\t * \n\t\t * The extension options for ordering of data available here is complimentary\n\t\t * to the default type based ordering that DataTables typically uses. It\n\t\t * allows much greater control over the the data that is being used to\n\t\t * order a column, but is necessarily therefore more complex.\n\t\t * \n\t\t * This type of ordering is useful if you want to do ordering based on data\n\t\t * live from the DOM (for example the contents of an 'input' element) rather\n\t\t * than just the static string that DataTables knows of.\n\t\t * \n\t\t * The way these plug-ins work is that you create an array of the values you\n\t\t * wish to be ordering for the column in question and then return that\n\t\t * array. The data in the array much be in the index order of the rows in\n\t\t * the table (not the currently ordering order!). Which order data gathering\n\t\t * function is run here depends on the `dt-init columns.orderDataType`\n\t\t * parameter that is used for the column (if any).\n\t\t *\n\t\t * The functions defined take two parameters:\n\t\t *\n\t\t * 1. `{object}` DataTables settings object: see\n\t\t *    {@link DataTable.models.oSettings}\n\t\t * 2. `{int}` Target column index\n\t\t *\n\t\t * Each function is expected to return an array:\n\t\t *\n\t\t * * `{array}` Data for the column to be ordering upon\n\t\t *\n\t\t *  @type array\n\t\t *\n\t\t *  @example\n\t\t *    // Ordering using `input` node values\n\t\t *    $.fn.dataTable.ext.order['dom-text'] = function  ( settings, col )\n\t\t *    {\n\t\t *      return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {\n\t\t *        return $('input', td).val();\n\t\t *      } );\n\t\t *    }\n\t\t */\n\t\torder: {},\n\t\n\t\n\t\t/**\n\t\t * Type based plug-ins.\n\t\t *\n\t\t * Each column in DataTables has a type assigned to it, either by automatic\n\t\t * detection or by direct assignment using the `type` option for the column.\n\t\t * The type of a column will effect how it is ordering and search (plug-ins\n\t\t * can also make use of the column type if required).\n\t\t *\n\t\t * @namespace\n\t\t */\n\t\ttype: {\n\t\t\t/**\n\t\t\t * Type detection functions.\n\t\t\t *\n\t\t\t * The functions defined in this object are used to automatically detect\n\t\t\t * a column's type, making initialisation of DataTables super easy, even\n\t\t\t * when complex data is in the table.\n\t\t\t *\n\t\t\t * The functions defined take two parameters:\n\t\t\t *\n\t\t     *  1. `{*}` Data from the column cell to be analysed\n\t\t     *  2. `{settings}` DataTables settings object. This can be used to\n\t\t     *     perform context specific type detection - for example detection\n\t\t     *     based on language settings such as using a comma for a decimal\n\t\t     *     place. Generally speaking the options from the settings will not\n\t\t     *     be required\n\t\t\t *\n\t\t\t * Each function is expected to return:\n\t\t\t *\n\t\t\t * * `{string|null}` Data type detected, or null if unknown (and thus\n\t\t\t *   pass it on to the other type detection functions.\n\t\t\t *\n\t\t\t *  @type array\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Currency type detection plug-in:\n\t\t\t *    $.fn.dataTable.ext.type.detect.push(\n\t\t\t *      function ( data, settings ) {\n\t\t\t *        // Check the numeric part\n\t\t\t *        if ( ! data.substring(1).match(/[0-9]/) ) {\n\t\t\t *          return null;\n\t\t\t *        }\n\t\t\t *\n\t\t\t *        // Check prefixed by currency\n\t\t\t *        if ( data.charAt(0) == '$' || data.charAt(0) == '&pound;' ) {\n\t\t\t *          return 'currency';\n\t\t\t *        }\n\t\t\t *        return null;\n\t\t\t *      }\n\t\t\t *    );\n\t\t\t */\n\t\t\tdetect: [],\n\t\n\t\n\t\t\t/**\n\t\t\t * Type based search formatting.\n\t\t\t *\n\t\t\t * The type based searching functions can be used to pre-format the\n\t\t\t * data to be search on. For example, it can be used to strip HTML\n\t\t\t * tags or to de-format telephone numbers for numeric only searching.\n\t\t\t *\n\t\t\t * Note that is a search is not defined for a column of a given type,\n\t\t\t * no search formatting will be performed.\n\t\t\t * \n\t\t\t * Pre-processing of searching data plug-ins - When you assign the sType\n\t\t\t * for a column (or have it automatically detected for you by DataTables\n\t\t\t * or a type detection plug-in), you will typically be using this for\n\t\t\t * custom sorting, but it can also be used to provide custom searching\n\t\t\t * by allowing you to pre-processing the data and returning the data in\n\t\t\t * the format that should be searched upon. This is done by adding\n\t\t\t * functions this object with a parameter name which matches the sType\n\t\t\t * for that target column. This is the corollary of <i>afnSortData</i>\n\t\t\t * for searching data.\n\t\t\t *\n\t\t\t * The functions defined take a single parameter:\n\t\t\t *\n\t\t     *  1. `{*}` Data from the column cell to be prepared for searching\n\t\t\t *\n\t\t\t * Each function is expected to return:\n\t\t\t *\n\t\t\t * * `{string|null}` Formatted string that will be used for the searching.\n\t\t\t *\n\t\t\t *  @type object\n\t\t\t *  @default {}\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    $.fn.dataTable.ext.type.search['title-numeric'] = function ( d ) {\n\t\t\t *      return d.replace(/\\n/g,\" \").replace( /<.*?>/g, \"\" );\n\t\t\t *    }\n\t\t\t */\n\t\t\tsearch: {},\n\t\n\t\n\t\t\t/**\n\t\t\t * Type based ordering.\n\t\t\t *\n\t\t\t * The column type tells DataTables what ordering to apply to the table\n\t\t\t * when a column is sorted upon. The order for each type that is defined,\n\t\t\t * is defined by the functions available in this object.\n\t\t\t *\n\t\t\t * Each ordering option can be described by three properties added to\n\t\t\t * this object:\n\t\t\t *\n\t\t\t * * `{type}-pre` - Pre-formatting function\n\t\t\t * * `{type}-asc` - Ascending order function\n\t\t\t * * `{type}-desc` - Descending order function\n\t\t\t *\n\t\t\t * All three can be used together, only `{type}-pre` or only\n\t\t\t * `{type}-asc` and `{type}-desc` together. It is generally recommended\n\t\t\t * that only `{type}-pre` is used, as this provides the optimal\n\t\t\t * implementation in terms of speed, although the others are provided\n\t\t\t * for compatibility with existing Javascript sort functions.\n\t\t\t *\n\t\t\t * `{type}-pre`: Functions defined take a single parameter:\n\t\t\t *\n\t\t     *  1. `{*}` Data from the column cell to be prepared for ordering\n\t\t\t *\n\t\t\t * And return:\n\t\t\t *\n\t\t\t * * `{*}` Data to be sorted upon\n\t\t\t *\n\t\t\t * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort\n\t\t\t * functions, taking two parameters:\n\t\t\t *\n\t\t     *  1. `{*}` Data to compare to the second parameter\n\t\t     *  2. `{*}` Data to compare to the first parameter\n\t\t\t *\n\t\t\t * And returning:\n\t\t\t *\n\t\t\t * * `{*}` Ordering match: <0 if first parameter should be sorted lower\n\t\t\t *   than the second parameter, ===0 if the two parameters are equal and\n\t\t\t *   >0 if the first parameter should be sorted height than the second\n\t\t\t *   parameter.\n\t\t\t * \n\t\t\t *  @type object\n\t\t\t *  @default {}\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Numeric ordering of formatted numbers with a pre-formatter\n\t\t\t *    $.extend( $.fn.dataTable.ext.type.order, {\n\t\t\t *      \"string-pre\": function(x) {\n\t\t\t *        a = (a === \"-\" || a === \"\") ? 0 : a.replace( /[^\\d\\-\\.]/g, \"\" );\n\t\t\t *        return parseFloat( a );\n\t\t\t *      }\n\t\t\t *    } );\n\t\t\t *\n\t\t\t *  @example\n\t\t\t *    // Case-sensitive string ordering, with no pre-formatting method\n\t\t\t *    $.extend( $.fn.dataTable.ext.order, {\n\t\t\t *      \"string-case-asc\": function(x,y) {\n\t\t\t *        return ((x < y) ? -1 : ((x > y) ? 1 : 0));\n\t\t\t *      },\n\t\t\t *      \"string-case-desc\": function(x,y) {\n\t\t\t *        return ((x < y) ? 1 : ((x > y) ? -1 : 0));\n\t\t\t *      }\n\t\t\t *    } );\n\t\t\t */\n\t\t\torder: {}\n\t\t},\n\t\n\t\t/**\n\t\t * Unique DataTables instance counter\n\t\t *\n\t\t * @type int\n\t\t * @private\n\t\t */\n\t\t_unique: 0,\n\t\n\t\n\t\t//\n\t\t// Depreciated\n\t\t// The following properties are retained for backwards compatiblity only.\n\t\t// The should not be used in new projects and will be removed in a future\n\t\t// version\n\t\t//\n\t\n\t\t/**\n\t\t * Version check function.\n\t\t *  @type function\n\t\t *  @depreciated Since 1.10\n\t\t */\n\t\tfnVersionCheck: DataTable.fnVersionCheck,\n\t\n\t\n\t\t/**\n\t\t * Index for what 'this' index API functions should use\n\t\t *  @type int\n\t\t *  @deprecated Since v1.10\n\t\t */\n\t\tiApiIndex: 0,\n\t\n\t\n\t\t/**\n\t\t * jQuery UI class container\n\t\t *  @type object\n\t\t *  @deprecated Since v1.10\n\t\t */\n\t\toJUIClasses: {},\n\t\n\t\n\t\t/**\n\t\t * Software version\n\t\t *  @type string\n\t\t *  @deprecated Since v1.10\n\t\t */\n\t\tsVersion: DataTable.version\n\t};\n\t\n\t\n\t//\n\t// Backwards compatibility. Alias to pre 1.10 Hungarian notation counter parts\n\t//\n\t$.extend( _ext, {\n\t\tafnFiltering: _ext.search,\n\t\taTypes:       _ext.type.detect,\n\t\tofnSearch:    _ext.type.search,\n\t\toSort:        _ext.type.order,\n\t\tafnSortData:  _ext.order,\n\t\taoFeatures:   _ext.feature,\n\t\toApi:         _ext.internal,\n\t\toStdClasses:  _ext.classes,\n\t\toPagination:  _ext.pager\n\t} );\n\t\n\t\n\t$.extend( DataTable.ext.classes, {\n\t\t\"sTable\": \"dataTable\",\n\t\t\"sNoFooter\": \"no-footer\",\n\t\n\t\t/* Paging buttons */\n\t\t\"sPageButton\": \"paginate_button\",\n\t\t\"sPageButtonActive\": \"current\",\n\t\t\"sPageButtonDisabled\": \"disabled\",\n\t\n\t\t/* Striping classes */\n\t\t\"sStripeOdd\": \"odd\",\n\t\t\"sStripeEven\": \"even\",\n\t\n\t\t/* Empty row */\n\t\t\"sRowEmpty\": \"dataTables_empty\",\n\t\n\t\t/* Features */\n\t\t\"sWrapper\": \"dataTables_wrapper\",\n\t\t\"sFilter\": \"dataTables_filter\",\n\t\t\"sInfo\": \"dataTables_info\",\n\t\t\"sPaging\": \"dataTables_paginate paging_\", /* Note that the type is postfixed */\n\t\t\"sLength\": \"dataTables_length\",\n\t\t\"sProcessing\": \"dataTables_processing\",\n\t\n\t\t/* Sorting */\n\t\t\"sSortAsc\": \"sorting_asc\",\n\t\t\"sSortDesc\": \"sorting_desc\",\n\t\t\"sSortable\": \"sorting\", /* Sortable in both directions */\n\t\t\"sSortableAsc\": \"sorting_desc_disabled\",\n\t\t\"sSortableDesc\": \"sorting_asc_disabled\",\n\t\t\"sSortableNone\": \"sorting_disabled\",\n\t\t\"sSortColumn\": \"sorting_\", /* Note that an int is postfixed for the sorting order */\n\t\n\t\t/* Filtering */\n\t\t\"sFilterInput\": \"\",\n\t\n\t\t/* Page length */\n\t\t\"sLengthSelect\": \"\",\n\t\n\t\t/* Scrolling */\n\t\t\"sScrollWrapper\": \"dataTables_scroll\",\n\t\t\"sScrollHead\": \"dataTables_scrollHead\",\n\t\t\"sScrollHeadInner\": \"dataTables_scrollHeadInner\",\n\t\t\"sScrollBody\": \"dataTables_scrollBody\",\n\t\t\"sScrollFoot\": \"dataTables_scrollFoot\",\n\t\t\"sScrollFootInner\": \"dataTables_scrollFootInner\",\n\t\n\t\t/* Misc */\n\t\t\"sHeaderTH\": \"\",\n\t\t\"sFooterTH\": \"\",\n\t\n\t\t// Deprecated\n\t\t\"sSortJUIAsc\": \"\",\n\t\t\"sSortJUIDesc\": \"\",\n\t\t\"sSortJUI\": \"\",\n\t\t\"sSortJUIAscAllowed\": \"\",\n\t\t\"sSortJUIDescAllowed\": \"\",\n\t\t\"sSortJUIWrapper\": \"\",\n\t\t\"sSortIcon\": \"\",\n\t\t\"sJUIHeader\": \"\",\n\t\t\"sJUIFooter\": \"\"\n\t} );\n\t\n\t\n\tvar extPagination = DataTable.ext.pager;\n\t\n\tfunction _numbers ( page, pages ) {\n\t\tvar\n\t\t\tnumbers = [],\n\t\t\tbuttons = extPagination.numbers_length,\n\t\t\thalf = Math.floor( buttons / 2 ),\n\t\t\ti = 1;\n\t\n\t\tif ( pages <= buttons ) {\n\t\t\tnumbers = _range( 0, pages );\n\t\t}\n\t\telse if ( page <= half ) {\n\t\t\tnumbers = _range( 0, buttons-2 );\n\t\t\tnumbers.push( 'ellipsis' );\n\t\t\tnumbers.push( pages-1 );\n\t\t}\n\t\telse if ( page >= pages - 1 - half ) {\n\t\t\tnumbers = _range( pages-(buttons-2), pages );\n\t\t\tnumbers.splice( 0, 0, 'ellipsis' ); // no unshift in ie6\n\t\t\tnumbers.splice( 0, 0, 0 );\n\t\t}\n\t\telse {\n\t\t\tnumbers = _range( page-half+2, page+half-1 );\n\t\t\tnumbers.push( 'ellipsis' );\n\t\t\tnumbers.push( pages-1 );\n\t\t\tnumbers.splice( 0, 0, 'ellipsis' );\n\t\t\tnumbers.splice( 0, 0, 0 );\n\t\t}\n\t\n\t\tnumbers.DT_el = 'span';\n\t\treturn numbers;\n\t}\n\t\n\t\n\t$.extend( extPagination, {\n\t\tsimple: function ( page, pages ) {\n\t\t\treturn [ 'previous', 'next' ];\n\t\t},\n\t\n\t\tfull: function ( page, pages ) {\n\t\t\treturn [  'first', 'previous', 'next', 'last' ];\n\t\t},\n\t\n\t\tnumbers: function ( page, pages ) {\n\t\t\treturn [ _numbers(page, pages) ];\n\t\t},\n\t\n\t\tsimple_numbers: function ( page, pages ) {\n\t\t\treturn [ 'previous', _numbers(page, pages), 'next' ];\n\t\t},\n\t\n\t\tfull_numbers: function ( page, pages ) {\n\t\t\treturn [ 'first', 'previous', _numbers(page, pages), 'next', 'last' ];\n\t\t},\n\t\t\n\t\tfirst_last_numbers: function (page, pages) {\n\t \t\treturn ['first', _numbers(page, pages), 'last'];\n\t \t},\n\t\n\t\t// For testing and plug-ins to use\n\t\t_numbers: _numbers,\n\t\n\t\t// Number of number buttons (including ellipsis) to show. _Must be odd!_\n\t\tnumbers_length: 7\n\t} );\n\t\n\t\n\t$.extend( true, DataTable.ext.renderer, {\n\t\tpageButton: {\n\t\t\t_: function ( settings, host, idx, buttons, page, pages ) {\n\t\t\t\tvar classes = settings.oClasses;\n\t\t\t\tvar lang = settings.oLanguage.oPaginate;\n\t\t\t\tvar aria = settings.oLanguage.oAria.paginate || {};\n\t\t\t\tvar btnDisplay, btnClass, counter=0;\n\t\n\t\t\t\tvar attach = function( container, buttons ) {\n\t\t\t\t\tvar i, ien, node, button, tabIndex;\n\t\t\t\t\tvar disabledClass = classes.sPageButtonDisabled;\n\t\t\t\t\tvar clickHandler = function ( e ) {\n\t\t\t\t\t\t_fnPageChange( settings, e.data.action, true );\n\t\t\t\t\t};\n\t\n\t\t\t\t\tfor ( i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tbutton = buttons[i];\n\t\n\t\t\t\t\t\tif ( Array.isArray( button ) ) {\n\t\t\t\t\t\t\tvar inner = $( '<'+(button.DT_el || 'div')+'/>' )\n\t\t\t\t\t\t\t\t.appendTo( container );\n\t\t\t\t\t\t\tattach( inner, button );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tbtnDisplay = null;\n\t\t\t\t\t\t\tbtnClass = button;\n\t\t\t\t\t\t\ttabIndex = settings.iTabIndex;\n\t\n\t\t\t\t\t\t\tswitch ( button ) {\n\t\t\t\t\t\t\t\tcase 'ellipsis':\n\t\t\t\t\t\t\t\t\tcontainer.append('<span class=\"ellipsis\">&#x2026;</span>');\n\t\t\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\t\tcase 'first':\n\t\t\t\t\t\t\t\t\tbtnDisplay = lang.sFirst;\n\t\n\t\t\t\t\t\t\t\t\tif ( page === 0 ) {\n\t\t\t\t\t\t\t\t\t\ttabIndex = -1;\n\t\t\t\t\t\t\t\t\t\tbtnClass += ' ' + disabledClass;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\t\tcase 'previous':\n\t\t\t\t\t\t\t\t\tbtnDisplay = lang.sPrevious;\n\t\n\t\t\t\t\t\t\t\t\tif ( page === 0 ) {\n\t\t\t\t\t\t\t\t\t\ttabIndex = -1;\n\t\t\t\t\t\t\t\t\t\tbtnClass += ' ' + disabledClass;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\t\tbtnDisplay = lang.sNext;\n\t\n\t\t\t\t\t\t\t\t\tif ( pages === 0 || page === pages-1 ) {\n\t\t\t\t\t\t\t\t\t\ttabIndex = -1;\n\t\t\t\t\t\t\t\t\t\tbtnClass += ' ' + disabledClass;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\t\tcase 'last':\n\t\t\t\t\t\t\t\t\tbtnDisplay = lang.sLast;\n\t\n\t\t\t\t\t\t\t\t\tif ( pages === 0 || page === pages-1 ) {\n\t\t\t\t\t\t\t\t\t\ttabIndex = -1;\n\t\t\t\t\t\t\t\t\t\tbtnClass += ' ' + disabledClass;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tbtnDisplay = settings.fnFormatNumber( button + 1 );\n\t\t\t\t\t\t\t\t\tbtnClass = page === button ?\n\t\t\t\t\t\t\t\t\t\tclasses.sPageButtonActive : '';\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\tif ( btnDisplay !== null ) {\n\t\t\t\t\t\t\t\tnode = $('<a>', {\n\t\t\t\t\t\t\t\t\t\t'class': classes.sPageButton+' '+btnClass,\n\t\t\t\t\t\t\t\t\t\t'aria-controls': settings.sTableId,\n\t\t\t\t\t\t\t\t\t\t'aria-label': aria[ button ],\n\t\t\t\t\t\t\t\t\t\t'data-dt-idx': counter,\n\t\t\t\t\t\t\t\t\t\t'tabindex': tabIndex,\n\t\t\t\t\t\t\t\t\t\t'id': idx === 0 && typeof button === 'string' ?\n\t\t\t\t\t\t\t\t\t\t\tsettings.sTableId +'_'+ button :\n\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t.html( btnDisplay )\n\t\t\t\t\t\t\t\t\t.appendTo( container );\n\t\n\t\t\t\t\t\t\t\t_fnBindAction(\n\t\t\t\t\t\t\t\t\tnode, {action: button}, clickHandler\n\t\t\t\t\t\t\t\t);\n\t\n\t\t\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\n\t\t\t\t// IE9 throws an 'unknown error' if document.activeElement is used\n\t\t\t\t// inside an iframe or frame. Try / catch the error. Not good for\n\t\t\t\t// accessibility, but neither are frames.\n\t\t\t\tvar activeEl;\n\t\n\t\t\t\ttry {\n\t\t\t\t\t// Because this approach is destroying and recreating the paging\n\t\t\t\t\t// elements, focus is lost on the select button which is bad for\n\t\t\t\t\t// accessibility. So we want to restore focus once the draw has\n\t\t\t\t\t// completed\n\t\t\t\t\tactiveEl = $(host).find(document.activeElement).data('dt-idx');\n\t\t\t\t}\n\t\t\t\tcatch (e) {}\n\t\n\t\t\t\tattach( $(host).empty(), buttons );\n\t\n\t\t\t\tif ( activeEl !== undefined ) {\n\t\t\t\t\t$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\t\n\t\n\t\n\t// Built in type detection. See model.ext.aTypes for information about\n\t// what is required from this methods.\n\t$.extend( DataTable.ext.type.detect, [\n\t\t// Plain numbers - first since V8 detects some plain numbers as dates\n\t\t// e.g. Date.parse('55') (but not all, e.g. Date.parse('22')...).\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\tvar decimal = settings.oLanguage.sDecimal;\n\t\t\treturn _isNumber( d, decimal ) ? 'num'+decimal : null;\n\t\t},\n\t\n\t\t// Dates (only those recognised by the browser's Date.parse)\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\t// V8 tries _very_ hard to make a string passed into `Date.parse()`\n\t\t\t// valid, so we need to use a regex to restrict date formats. Use a\n\t\t\t// plug-in for anything other than ISO8601 style strings\n\t\t\tif ( d && !(d instanceof Date) && ! _re_date.test(d) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tvar parsed = Date.parse(d);\n\t\t\treturn (parsed !== null && !isNaN(parsed)) || _empty(d) ? 'date' : null;\n\t\t},\n\t\n\t\t// Formatted numbers\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\tvar decimal = settings.oLanguage.sDecimal;\n\t\t\treturn _isNumber( d, decimal, true ) ? 'num-fmt'+decimal : null;\n\t\t},\n\t\n\t\t// HTML numeric\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\tvar decimal = settings.oLanguage.sDecimal;\n\t\t\treturn _htmlNumeric( d, decimal ) ? 'html-num'+decimal : null;\n\t\t},\n\t\n\t\t// HTML numeric, formatted\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\tvar decimal = settings.oLanguage.sDecimal;\n\t\t\treturn _htmlNumeric( d, decimal, true ) ? 'html-num-fmt'+decimal : null;\n\t\t},\n\t\n\t\t// HTML (this is strict checking - there must be html)\n\t\tfunction ( d, settings )\n\t\t{\n\t\t\treturn _empty( d ) || (typeof d === 'string' && d.indexOf('<') !== -1) ?\n\t\t\t\t'html' : null;\n\t\t}\n\t] );\n\t\n\t\n\t\n\t// Filter formatting functions. See model.ext.ofnSearch for information about\n\t// what is required from these methods.\n\t// \n\t// Note that additional search methods are added for the html numbers and\n\t// html formatted numbers by `_addNumericSort()` when we know what the decimal\n\t// place is\n\t\n\t\n\t$.extend( DataTable.ext.type.search, {\n\t\thtml: function ( data ) {\n\t\t\treturn _empty(data) ?\n\t\t\t\tdata :\n\t\t\t\ttypeof data === 'string' ?\n\t\t\t\t\tdata\n\t\t\t\t\t\t.replace( _re_new_lines, \" \" )\n\t\t\t\t\t\t.replace( _re_html, \"\" ) :\n\t\t\t\t\t'';\n\t\t},\n\t\n\t\tstring: function ( data ) {\n\t\t\treturn _empty(data) ?\n\t\t\t\tdata :\n\t\t\t\ttypeof data === 'string' ?\n\t\t\t\t\tdata.replace( _re_new_lines, \" \" ) :\n\t\t\t\t\tdata;\n\t\t}\n\t} );\n\t\n\t\n\t\n\tvar __numericReplace = function ( d, decimalPlace, re1, re2 ) {\n\t\tif ( d !== 0 && (!d || d === '-') ) {\n\t\t\treturn -Infinity;\n\t\t}\n\t\n\t\t// If a decimal place other than `.` is used, it needs to be given to the\n\t\t// function so we can detect it and replace with a `.` which is the only\n\t\t// decimal place Javascript recognises - it is not locale aware.\n\t\tif ( decimalPlace ) {\n\t\t\td = _numToDecimal( d, decimalPlace );\n\t\t}\n\t\n\t\tif ( d.replace ) {\n\t\t\tif ( re1 ) {\n\t\t\t\td = d.replace( re1, '' );\n\t\t\t}\n\t\n\t\t\tif ( re2 ) {\n\t\t\t\td = d.replace( re2, '' );\n\t\t\t}\n\t\t}\n\t\n\t\treturn d * 1;\n\t};\n\t\n\t\n\t// Add the numeric 'deformatting' functions for sorting and search. This is done\n\t// in a function to provide an easy ability for the language options to add\n\t// additional methods if a non-period decimal place is used.\n\tfunction _addNumericSort ( decimalPlace ) {\n\t\t$.each(\n\t\t\t{\n\t\t\t\t// Plain numbers\n\t\t\t\t\"num\": function ( d ) {\n\t\t\t\t\treturn __numericReplace( d, decimalPlace );\n\t\t\t\t},\n\t\n\t\t\t\t// Formatted numbers\n\t\t\t\t\"num-fmt\": function ( d ) {\n\t\t\t\t\treturn __numericReplace( d, decimalPlace, _re_formatted_numeric );\n\t\t\t\t},\n\t\n\t\t\t\t// HTML numeric\n\t\t\t\t\"html-num\": function ( d ) {\n\t\t\t\t\treturn __numericReplace( d, decimalPlace, _re_html );\n\t\t\t\t},\n\t\n\t\t\t\t// HTML numeric, formatted\n\t\t\t\t\"html-num-fmt\": function ( d ) {\n\t\t\t\t\treturn __numericReplace( d, decimalPlace, _re_html, _re_formatted_numeric );\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunction ( key, fn ) {\n\t\t\t\t// Add the ordering method\n\t\t\t\t_ext.type.order[ key+decimalPlace+'-pre' ] = fn;\n\t\n\t\t\t\t// For HTML types add a search formatter that will strip the HTML\n\t\t\t\tif ( key.match(/^html\\-/) ) {\n\t\t\t\t\t_ext.type.search[ key+decimalPlace ] = _ext.type.search.html;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\t\n\t\n\t// Default sort methods\n\t$.extend( _ext.type.order, {\n\t\t// Dates\n\t\t\"date-pre\": function ( d ) {\n\t\t\tvar ts = Date.parse( d );\n\t\t\treturn isNaN(ts) ? -Infinity : ts;\n\t\t},\n\t\n\t\t// html\n\t\t\"html-pre\": function ( a ) {\n\t\t\treturn _empty(a) ?\n\t\t\t\t'' :\n\t\t\t\ta.replace ?\n\t\t\t\t\ta.replace( /<.*?>/g, \"\" ).toLowerCase() :\n\t\t\t\t\ta+'';\n\t\t},\n\t\n\t\t// string\n\t\t\"string-pre\": function ( a ) {\n\t\t\t// This is a little complex, but faster than always calling toString,\n\t\t\t// http://jsperf.com/tostring-v-check\n\t\t\treturn _empty(a) ?\n\t\t\t\t'' :\n\t\t\t\ttypeof a === 'string' ?\n\t\t\t\t\ta.toLowerCase() :\n\t\t\t\t\t! a.toString ?\n\t\t\t\t\t\t'' :\n\t\t\t\t\t\ta.toString();\n\t\t},\n\t\n\t\t// string-asc and -desc are retained only for compatibility with the old\n\t\t// sort methods\n\t\t\"string-asc\": function ( x, y ) {\n\t\t\treturn ((x < y) ? -1 : ((x > y) ? 1 : 0));\n\t\t},\n\t\n\t\t\"string-desc\": function ( x, y ) {\n\t\t\treturn ((x < y) ? 1 : ((x > y) ? -1 : 0));\n\t\t}\n\t} );\n\t\n\t\n\t// Numeric sorting types - order doesn't matter here\n\t_addNumericSort( '' );\n\t\n\t\n\t$.extend( true, DataTable.ext.renderer, {\n\t\theader: {\n\t\t\t_: function ( settings, cell, column, classes ) {\n\t\t\t\t// No additional mark-up required\n\t\t\t\t// Attach a sort listener to update on sort - note that using the\n\t\t\t\t// `DT` namespace will allow the event to be removed automatically\n\t\t\t\t// on destroy, while the `dt` namespaced event is the one we are\n\t\t\t\t// listening for\n\t\t\t\t$(settings.nTable).on( 'order.dt.DT', function ( e, ctx, sorting, columns ) {\n\t\t\t\t\tif ( settings !== ctx ) { // need to check this this is the host\n\t\t\t\t\t\treturn;               // table, not a nested one\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar colIdx = column.idx;\n\t\n\t\t\t\t\tcell\n\t\t\t\t\t\t.removeClass(\n\t\t\t\t\t\t\tclasses.sSortAsc +' '+\n\t\t\t\t\t\t\tclasses.sSortDesc\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.addClass( columns[ colIdx ] == 'asc' ?\n\t\t\t\t\t\t\tclasses.sSortAsc : columns[ colIdx ] == 'desc' ?\n\t\t\t\t\t\t\t\tclasses.sSortDesc :\n\t\t\t\t\t\t\t\tcolumn.sSortingClass\n\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t},\n\t\n\t\t\tjqueryui: function ( settings, cell, column, classes ) {\n\t\t\t\t$('<div/>')\n\t\t\t\t\t.addClass( classes.sSortJUIWrapper )\n\t\t\t\t\t.append( cell.contents() )\n\t\t\t\t\t.append( $('<span/>')\n\t\t\t\t\t\t.addClass( classes.sSortIcon+' '+column.sSortingClassJUI )\n\t\t\t\t\t)\n\t\t\t\t\t.appendTo( cell );\n\t\n\t\t\t\t// Attach a sort listener to update on sort\n\t\t\t\t$(settings.nTable).on( 'order.dt.DT', function ( e, ctx, sorting, columns ) {\n\t\t\t\t\tif ( settings !== ctx ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar colIdx = column.idx;\n\t\n\t\t\t\t\tcell\n\t\t\t\t\t\t.removeClass( classes.sSortAsc +\" \"+classes.sSortDesc )\n\t\t\t\t\t\t.addClass( columns[ colIdx ] == 'asc' ?\n\t\t\t\t\t\t\tclasses.sSortAsc : columns[ colIdx ] == 'desc' ?\n\t\t\t\t\t\t\t\tclasses.sSortDesc :\n\t\t\t\t\t\t\t\tcolumn.sSortingClass\n\t\t\t\t\t\t);\n\t\n\t\t\t\t\tcell\n\t\t\t\t\t\t.find( 'span.'+classes.sSortIcon )\n\t\t\t\t\t\t.removeClass(\n\t\t\t\t\t\t\tclasses.sSortJUIAsc +\" \"+\n\t\t\t\t\t\t\tclasses.sSortJUIDesc +\" \"+\n\t\t\t\t\t\t\tclasses.sSortJUI +\" \"+\n\t\t\t\t\t\t\tclasses.sSortJUIAscAllowed +\" \"+\n\t\t\t\t\t\t\tclasses.sSortJUIDescAllowed\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.addClass( columns[ colIdx ] == 'asc' ?\n\t\t\t\t\t\t\tclasses.sSortJUIAsc : columns[ colIdx ] == 'desc' ?\n\t\t\t\t\t\t\t\tclasses.sSortJUIDesc :\n\t\t\t\t\t\t\t\tcolumn.sSortingClassJUI\n\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\t/*\n\t * Public helper functions. These aren't used internally by DataTables, or\n\t * called by any of the options passed into DataTables, but they can be used\n\t * externally by developers working with DataTables. They are helper functions\n\t * to make working with DataTables a little bit easier.\n\t */\n\t\n\tvar __htmlEscapeEntities = function ( d ) {\n\t\treturn typeof d === 'string' ?\n\t\t\td\n\t\t\t\t.replace(/&/g, '&amp;')\n\t\t\t\t.replace(/</g, '&lt;')\n\t\t\t\t.replace(/>/g, '&gt;')\n\t\t\t\t.replace(/\"/g, '&quot;') :\n\t\t\td;\n\t};\n\t\n\t/**\n\t * Helpers for `columns.render`.\n\t *\n\t * The options defined here can be used with the `columns.render` initialisation\n\t * option to provide a display renderer. The following functions are defined:\n\t *\n\t * * `number` - Will format numeric data (defined by `columns.data`) for\n\t *   display, retaining the original unformatted data for sorting and filtering.\n\t *   It takes 5 parameters:\n\t *   * `string` - Thousands grouping separator\n\t *   * `string` - Decimal point indicator\n\t *   * `integer` - Number of decimal points to show\n\t *   * `string` (optional) - Prefix.\n\t *   * `string` (optional) - Postfix (/suffix).\n\t * * `text` - Escape HTML to help prevent XSS attacks. It has no optional\n\t *   parameters.\n\t *\n\t * @example\n\t *   // Column definition using the number renderer\n\t *   {\n\t *     data: \"salary\",\n\t *     render: $.fn.dataTable.render.number( '\\'', '.', 0, '$' )\n\t *   }\n\t *\n\t * @namespace\n\t */\n\tDataTable.render = {\n\t\tnumber: function ( thousands, decimal, precision, prefix, postfix ) {\n\t\t\treturn {\n\t\t\t\tdisplay: function ( d ) {\n\t\t\t\t\tif ( typeof d !== 'number' && typeof d !== 'string' ) {\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar negative = d < 0 ? '-' : '';\n\t\t\t\t\tvar flo = parseFloat( d );\n\t\n\t\t\t\t\t// If NaN then there isn't much formatting that we can do - just\n\t\t\t\t\t// return immediately, escaping any HTML (this was supposed to\n\t\t\t\t\t// be a number after all)\n\t\t\t\t\tif ( isNaN( flo ) ) {\n\t\t\t\t\t\treturn __htmlEscapeEntities( d );\n\t\t\t\t\t}\n\t\n\t\t\t\t\tflo = flo.toFixed( precision );\n\t\t\t\t\td = Math.abs( flo );\n\t\n\t\t\t\t\tvar intPart = parseInt( d, 10 );\n\t\t\t\t\tvar floatPart = precision ?\n\t\t\t\t\t\tdecimal+(d - intPart).toFixed( precision ).substring( 2 ):\n\t\t\t\t\t\t'';\n\t\n\t\t\t\t\treturn negative + (prefix||'') +\n\t\t\t\t\t\tintPart.toString().replace(\n\t\t\t\t\t\t\t/\\B(?=(\\d{3})+(?!\\d))/g, thousands\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tfloatPart +\n\t\t\t\t\t\t(postfix||'');\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\n\t\ttext: function () {\n\t\t\treturn {\n\t\t\t\tdisplay: __htmlEscapeEntities,\n\t\t\t\tfilter: __htmlEscapeEntities\n\t\t\t};\n\t\t}\n\t};\n\t\n\t\n\t/*\n\t * This is really a good bit rubbish this method of exposing the internal methods\n\t * publicly... - To be fixed in 2.0 using methods on the prototype\n\t */\n\t\n\t\n\t/**\n\t * Create a wrapper function for exporting an internal functions to an external API.\n\t *  @param {string} fn API function name\n\t *  @returns {function} wrapped function\n\t *  @memberof DataTable#internal\n\t */\n\tfunction _fnExternApiFunc (fn)\n\t{\n\t\treturn function() {\n\t\t\tvar args = [_fnSettingsFromNode( this[DataTable.ext.iApiIndex] )].concat(\n\t\t\t\tArray.prototype.slice.call(arguments)\n\t\t\t);\n\t\t\treturn DataTable.ext.internal[fn].apply( this, args );\n\t\t};\n\t}\n\t\n\t\n\t/**\n\t * Reference to internal functions for use by plug-in developers. Note that\n\t * these methods are references to internal functions and are considered to be\n\t * private. If you use these methods, be aware that they are liable to change\n\t * between versions.\n\t *  @namespace\n\t */\n\t$.extend( DataTable.ext.internal, {\n\t\t_fnExternApiFunc: _fnExternApiFunc,\n\t\t_fnBuildAjax: _fnBuildAjax,\n\t\t_fnAjaxUpdate: _fnAjaxUpdate,\n\t\t_fnAjaxParameters: _fnAjaxParameters,\n\t\t_fnAjaxUpdateDraw: _fnAjaxUpdateDraw,\n\t\t_fnAjaxDataSrc: _fnAjaxDataSrc,\n\t\t_fnAddColumn: _fnAddColumn,\n\t\t_fnColumnOptions: _fnColumnOptions,\n\t\t_fnAdjustColumnSizing: _fnAdjustColumnSizing,\n\t\t_fnVisibleToColumnIndex: _fnVisibleToColumnIndex,\n\t\t_fnColumnIndexToVisible: _fnColumnIndexToVisible,\n\t\t_fnVisbleColumns: _fnVisbleColumns,\n\t\t_fnGetColumns: _fnGetColumns,\n\t\t_fnColumnTypes: _fnColumnTypes,\n\t\t_fnApplyColumnDefs: _fnApplyColumnDefs,\n\t\t_fnHungarianMap: _fnHungarianMap,\n\t\t_fnCamelToHungarian: _fnCamelToHungarian,\n\t\t_fnLanguageCompat: _fnLanguageCompat,\n\t\t_fnBrowserDetect: _fnBrowserDetect,\n\t\t_fnAddData: _fnAddData,\n\t\t_fnAddTr: _fnAddTr,\n\t\t_fnNodeToDataIndex: _fnNodeToDataIndex,\n\t\t_fnNodeToColumnIndex: _fnNodeToColumnIndex,\n\t\t_fnGetCellData: _fnGetCellData,\n\t\t_fnSetCellData: _fnSetCellData,\n\t\t_fnSplitObjNotation: _fnSplitObjNotation,\n\t\t_fnGetObjectDataFn: _fnGetObjectDataFn,\n\t\t_fnSetObjectDataFn: _fnSetObjectDataFn,\n\t\t_fnGetDataMaster: _fnGetDataMaster,\n\t\t_fnClearTable: _fnClearTable,\n\t\t_fnDeleteIndex: _fnDeleteIndex,\n\t\t_fnInvalidate: _fnInvalidate,\n\t\t_fnGetRowElements: _fnGetRowElements,\n\t\t_fnCreateTr: _fnCreateTr,\n\t\t_fnBuildHead: _fnBuildHead,\n\t\t_fnDrawHead: _fnDrawHead,\n\t\t_fnDraw: _fnDraw,\n\t\t_fnReDraw: _fnReDraw,\n\t\t_fnAddOptionsHtml: _fnAddOptionsHtml,\n\t\t_fnDetectHeader: _fnDetectHeader,\n\t\t_fnGetUniqueThs: _fnGetUniqueThs,\n\t\t_fnFeatureHtmlFilter: _fnFeatureHtmlFilter,\n\t\t_fnFilterComplete: _fnFilterComplete,\n\t\t_fnFilterCustom: _fnFilterCustom,\n\t\t_fnFilterColumn: _fnFilterColumn,\n\t\t_fnFilter: _fnFilter,\n\t\t_fnFilterCreateSearch: _fnFilterCreateSearch,\n\t\t_fnEscapeRegex: _fnEscapeRegex,\n\t\t_fnFilterData: _fnFilterData,\n\t\t_fnFeatureHtmlInfo: _fnFeatureHtmlInfo,\n\t\t_fnUpdateInfo: _fnUpdateInfo,\n\t\t_fnInfoMacros: _fnInfoMacros,\n\t\t_fnInitialise: _fnInitialise,\n\t\t_fnInitComplete: _fnInitComplete,\n\t\t_fnLengthChange: _fnLengthChange,\n\t\t_fnFeatureHtmlLength: _fnFeatureHtmlLength,\n\t\t_fnFeatureHtmlPaginate: _fnFeatureHtmlPaginate,\n\t\t_fnPageChange: _fnPageChange,\n\t\t_fnFeatureHtmlProcessing: _fnFeatureHtmlProcessing,\n\t\t_fnProcessingDisplay: _fnProcessingDisplay,\n\t\t_fnFeatureHtmlTable: _fnFeatureHtmlTable,\n\t\t_fnScrollDraw: _fnScrollDraw,\n\t\t_fnApplyToChildren: _fnApplyToChildren,\n\t\t_fnCalculateColumnWidths: _fnCalculateColumnWidths,\n\t\t_fnThrottle: _fnThrottle,\n\t\t_fnConvertToWidth: _fnConvertToWidth,\n\t\t_fnGetWidestNode: _fnGetWidestNode,\n\t\t_fnGetMaxLenString: _fnGetMaxLenString,\n\t\t_fnStringToCss: _fnStringToCss,\n\t\t_fnSortFlatten: _fnSortFlatten,\n\t\t_fnSort: _fnSort,\n\t\t_fnSortAria: _fnSortAria,\n\t\t_fnSortListener: _fnSortListener,\n\t\t_fnSortAttachListener: _fnSortAttachListener,\n\t\t_fnSortingClasses: _fnSortingClasses,\n\t\t_fnSortData: _fnSortData,\n\t\t_fnSaveState: _fnSaveState,\n\t\t_fnLoadState: _fnLoadState,\n\t\t_fnSettingsFromNode: _fnSettingsFromNode,\n\t\t_fnLog: _fnLog,\n\t\t_fnMap: _fnMap,\n\t\t_fnBindAction: _fnBindAction,\n\t\t_fnCallbackReg: _fnCallbackReg,\n\t\t_fnCallbackFire: _fnCallbackFire,\n\t\t_fnLengthOverflow: _fnLengthOverflow,\n\t\t_fnRenderer: _fnRenderer,\n\t\t_fnDataSource: _fnDataSource,\n\t\t_fnRowAttributes: _fnRowAttributes,\n\t\t_fnExtend: _fnExtend,\n\t\t_fnCalculateEnd: function () {} // Used by a lot of plug-ins, but redundant\n\t\t                                // in 1.10, so this dead-end function is\n\t\t                                // added to prevent errors\n\t} );\n\t\n\n\t// jQuery access\n\t$.fn.dataTable = DataTable;\n\n\t// Provide access to the host jQuery object (circular reference)\n\tDataTable.$ = $;\n\n\t// Legacy aliases\n\t$.fn.dataTableSettings = DataTable.settings;\n\t$.fn.dataTableExt = DataTable.ext;\n\n\t// With a capital `D` we return a DataTables API instance rather than a\n\t// jQuery object\n\t$.fn.DataTable = function ( opts ) {\n\t\treturn $(this).dataTable( opts ).api();\n\t};\n\n\t// All properties that are available to $.fn.dataTable should also be\n\t// available on $.fn.DataTable\n\t$.each( DataTable, function ( prop, val ) {\n\t\t$.fn.DataTable[ prop ] = val;\n\t} );\n\n\n\t// Information about events fired by DataTables - for documentation.\n\t/**\n\t * Draw event, fired whenever the table is redrawn on the page, at the same\n\t * point as fnDrawCallback. This may be useful for binding events or\n\t * performing calculations when the table is altered at all.\n\t *  @name DataTable#draw.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * Search event, fired when the searching applied to the table (using the\n\t * built-in global search, or column filters) is altered.\n\t *  @name DataTable#search.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * Page change event, fired when the paging of the table is altered.\n\t *  @name DataTable#page.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * Order event, fired when the ordering applied to the table is altered.\n\t *  @name DataTable#order.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * DataTables initialisation complete event, fired when the table is fully\n\t * drawn, including Ajax data loaded, if Ajax data is required.\n\t *  @name DataTable#init.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} oSettings DataTables settings object\n\t *  @param {object} json The JSON object request from the server - only\n\t *    present if client-side Ajax sourced data is used</li></ol>\n\t */\n\n\t/**\n\t * State save event, fired when the table has changed state a new state save\n\t * is required. This event allows modification of the state saving object\n\t * prior to actually doing the save, including addition or other state\n\t * properties (for plug-ins) or modification of a DataTables core property.\n\t *  @name DataTable#stateSaveParams.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} oSettings DataTables settings object\n\t *  @param {object} json The state information to be saved\n\t */\n\n\t/**\n\t * State load event, fired when the table is loading state from the stored\n\t * data, but prior to the settings object being modified by the saved state\n\t * - allowing modification of the saved state is required or loading of\n\t * state for a plug-in.\n\t *  @name DataTable#stateLoadParams.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} oSettings DataTables settings object\n\t *  @param {object} json The saved state information\n\t */\n\n\t/**\n\t * State loaded event, fired when state has been loaded from stored data and\n\t * the settings object has been modified by the loaded data.\n\t *  @name DataTable#stateLoaded.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} oSettings DataTables settings object\n\t *  @param {object} json The saved state information\n\t */\n\n\t/**\n\t * Processing event, fired when DataTables is doing some kind of processing\n\t * (be it, order, search or anything else). It can be used to indicate to\n\t * the end user that there is something happening, or that something has\n\t * finished.\n\t *  @name DataTable#processing.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} oSettings DataTables settings object\n\t *  @param {boolean} bShow Flag for if DataTables is doing processing or not\n\t */\n\n\t/**\n\t * Ajax (XHR) event, fired whenever an Ajax request is completed from a\n\t * request to made to the server for new data. This event is called before\n\t * DataTables processed the returned data, so it can also be used to pre-\n\t * process the data returned from the server, if needed.\n\t *\n\t * Note that this trigger is called in `fnServerData`, if you override\n\t * `fnServerData` and which to use this event, you need to trigger it in you\n\t * success function.\n\t *  @name DataTable#xhr.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t *  @param {object} json JSON returned from the server\n\t *\n\t *  @example\n\t *     // Use a custom property returned from the server in another DOM element\n\t *     $('#table').dataTable().on('xhr.dt', function (e, settings, json) {\n\t *       $('#status').html( json.status );\n\t *     } );\n\t *\n\t *  @example\n\t *     // Pre-process the data returned from the server\n\t *     $('#table').dataTable().on('xhr.dt', function (e, settings, json) {\n\t *       for ( var i=0, ien=json.aaData.length ; i<ien ; i++ ) {\n\t *         json.aaData[i].sum = json.aaData[i].one + json.aaData[i].two;\n\t *       }\n\t *       // Note no return - manipulate the data directly in the JSON object.\n\t *     } );\n\t */\n\n\t/**\n\t * Destroy event, fired when the DataTable is destroyed by calling fnDestroy\n\t * or passing the bDestroy:true parameter in the initialisation object. This\n\t * can be used to remove bound events, added DOM nodes, etc.\n\t *  @name DataTable#destroy.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * Page length change event, fired when number of records to show on each\n\t * page (the length) is changed.\n\t *  @name DataTable#length.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t *  @param {integer} len New length\n\t */\n\n\t/**\n\t * Column sizing has changed.\n\t *  @name DataTable#column-sizing.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t */\n\n\t/**\n\t * Column visibility has changed.\n\t *  @name DataTable#column-visibility.dt\n\t *  @event\n\t *  @param {event} e jQuery event object\n\t *  @param {object} o DataTables settings object {@link DataTable.models.oSettings}\n\t *  @param {int} column Column index\n\t *  @param {bool} vis `false` if column now hidden, or `true` if visible\n\t */\n\n\treturn $.fn.dataTable;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-autofill/css/autoFill.bootstrap4.css",
    "content": "div.dt-autofill-handle {\n  position: absolute;\n  height: 8px;\n  width: 8px;\n  z-index: 102;\n  box-sizing: border-box;\n  background: #0275d8;\n  cursor: pointer;\n}\n\ndiv.dtk-focus-alt div.dt-autofill-handle {\n  background: #ff8b33;\n}\n\ndiv.dt-autofill-select {\n  position: absolute;\n  z-index: 1001;\n  background-color: #0275d8;\n  background-image: repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255, 255, 255, 0.5) 5px, rgba(255, 255, 255, 0.5) 10px);\n}\ndiv.dt-autofill-select.top, div.dt-autofill-select.bottom {\n  height: 3px;\n  margin-top: -1px;\n}\ndiv.dt-autofill-select.left, div.dt-autofill-select.right {\n  width: 3px;\n  margin-left: -1px;\n}\n\ndiv.dt-autofill-list {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  width: 500px;\n  margin-left: -250px;\n  background-color: white;\n  border-radius: 6px;\n  box-shadow: 0 0 5px #555;\n  border: 2px solid #444;\n  z-index: 11;\n  box-sizing: border-box;\n  padding: 1.5em 2em;\n}\ndiv.dt-autofill-list ul {\n  display: table;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  width: 100%;\n}\ndiv.dt-autofill-list ul li {\n  display: table-row;\n}\ndiv.dt-autofill-list ul li:last-child div.dt-autofill-question, div.dt-autofill-list ul li:last-child div.dt-autofill-button {\n  border-bottom: none;\n}\ndiv.dt-autofill-list ul li:hover {\n  background-color: #f6f6f6;\n}\ndiv.dt-autofill-list div.dt-autofill-question {\n  display: table-cell;\n  padding: 0.5em 0;\n  border-bottom: 1px solid #ccc;\n}\ndiv.dt-autofill-list div.dt-autofill-question input[type=number] {\n  padding: 6px;\n  width: 30px;\n  margin: -2px 0;\n}\ndiv.dt-autofill-list div.dt-autofill-button {\n  display: table-cell;\n  padding: 0.5em 0;\n  border-bottom: 1px solid #ccc;\n}\n\ndiv.dt-autofill-background {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background: rgba(0, 0, 0, 0.7);\n  background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);\n  z-index: 10;\n}\n\ndiv.dt-autofill-list div.dt-autofill-question input[type=number] {\n  padding: 6px;\n  width: 60px;\n  margin: -2px 0;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-autofill/js/autoFill.bootstrap4.js",
    "content": "/*! Bootstrap integration for DataTables' AutoFill\n * ©2015 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-autofill'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.AutoFill ) {\n\t\t\t\trequire('datatables.net-autofill')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nDataTable.AutoFill.classes.btn = 'btn btn-primary';\n\n\nreturn DataTable;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-autofill/js/dataTables.autoFill.js",
    "content": "/*! AutoFill 2.3.5\n * ©2008-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     AutoFill\n * @description Add Excel like click and drag auto-fill options to DataTables\n * @version     2.3.5\n * @file        dataTables.autoFill.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2010-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nvar _instance = 0;\n\n/** \n * AutoFill provides Excel like auto-fill features for a DataTable\n *\n * @class AutoFill\n * @constructor\n * @param {object} oTD DataTables settings object\n * @param {object} oConfig Configuration object for AutoFill\n */\nvar AutoFill = function( dt, opts )\n{\n\tif ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.8' ) ) {\n\t\tthrow( \"Warning: AutoFill requires DataTables 1.10.8 or greater\");\n\t}\n\n\t// User and defaults configuration object\n\tthis.c = $.extend( true, {},\n\t\tDataTable.defaults.autoFill,\n\t\tAutoFill.defaults,\n\t\topts\n\t);\n\n\t/**\n\t * @namespace Settings object which contains customisable information for AutoFill instance\n\t */\n\tthis.s = {\n\t\t/** @type {DataTable.Api} DataTables' API instance */\n\t\tdt: new DataTable.Api( dt ),\n\n\t\t/** @type {String} Unique namespace for events attached to the document */\n\t\tnamespace: '.autoFill'+(_instance++),\n\n\t\t/** @type {Object} Cached dimension information for use in the mouse move event handler */\n\t\tscroll: {},\n\n\t\t/** @type {integer} Interval object used for smooth scrolling */\n\t\tscrollInterval: null,\n\n\t\thandle: {\n\t\t\theight: 0,\n\t\t\twidth: 0\n\t\t},\n\n\t\t/**\n\t\t * Enabled setting\n\t\t * @type {Boolean}\n\t\t */\n\t\tenabled: false\n\t};\n\n\n\t/**\n\t * @namespace Common and useful DOM elements for the class instance\n\t */\n\tthis.dom = {\n\t\t/** @type {jQuery} AutoFill handle */\n\t\thandle: $('<div class=\"dt-autofill-handle\"/>'),\n\n\t\t/**\n\t\t * @type {Object} Selected cells outline - Need to use 4 elements,\n\t\t *   otherwise the mouse over if you back into the selected rectangle\n\t\t *   will be over that element, rather than the cells!\n\t\t */\n\t\tselect: {\n\t\t\ttop:    $('<div class=\"dt-autofill-select top\"/>'),\n\t\t\tright:  $('<div class=\"dt-autofill-select right\"/>'),\n\t\t\tbottom: $('<div class=\"dt-autofill-select bottom\"/>'),\n\t\t\tleft:   $('<div class=\"dt-autofill-select left\"/>')\n\t\t},\n\n\t\t/** @type {jQuery} Fill type chooser background */\n\t\tbackground: $('<div class=\"dt-autofill-background\"/>'),\n\n\t\t/** @type {jQuery} Fill type chooser */\n\t\tlist: $('<div class=\"dt-autofill-list\">'+this.s.dt.i18n('autoFill.info', '')+'<ul/></div>'),\n\n\t\t/** @type {jQuery} DataTables scrolling container */\n\t\tdtScroll: null,\n\n\t\t/** @type {jQuery} Offset parent element */\n\t\toffsetParent: null\n\t};\n\n\n\t/* Constructor logic */\n\tthis._constructor();\n};\n\n\n\n$.extend( AutoFill.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public methods (exposed via the DataTables API below)\n\t */\n\tenabled: function ()\n\t{\n\t\treturn this.s.enabled;\n\t},\n\n\n\tenable: function ( flag )\n\t{\n\t\tvar that = this;\n\n\t\tif ( flag === false ) {\n\t\t\treturn this.disable();\n\t\t}\n\n\t\tthis.s.enabled = true;\n\n\t\tthis._focusListener();\n\n\t\tthis.dom.handle.on( 'mousedown', function (e) {\n\t\t\tthat._mousedown( e );\n\t\t\treturn false;\n\t\t} );\n\n\t\treturn this;\n\t},\n\n\tdisable: function ()\n\t{\n\t\tthis.s.enabled = false;\n\n\t\tthis._focusListenerRemove();\n\n\t\treturn this;\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Initialise the RowReorder instance\n\t *\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar dtScroll = $('div.dataTables_scrollBody', this.s.dt.table().container());\n\n\t\t// Make the instance accessible to the API\n\t\tdt.settings()[0].autoFill = this;\n\n\t\tif ( dtScroll.length ) {\n\t\t\tthis.dom.dtScroll = dtScroll;\n\n\t\t\t// Need to scroll container to be the offset parent\n\t\t\tif ( dtScroll.css('position') === 'static' ) {\n\t\t\t\tdtScroll.css( 'position', 'relative' );\n\t\t\t}\n\t\t}\n\n\t\tif ( this.c.enable !== false ) {\n\t\t\tthis.enable();\n\t\t}\n\n\t\tdt.on( 'destroy.autoFill', function () {\n\t\t\tthat._focusListenerRemove();\n\t\t} );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Display the AutoFill drag handle by appending it to a table cell. This\n\t * is the opposite of the _detach method.\n\t *\n\t * @param  {node} node TD/TH cell to insert the handle into\n\t * @private\n\t */\n\t_attach: function ( node )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar idx = dt.cell( node ).index();\n\t\tvar handle = this.dom.handle;\n\t\tvar handleDim = this.s.handle;\n\n\t\tif ( ! idx || dt.columns( this.c.columns ).indexes().indexOf( idx.column ) === -1 ) {\n\t\t\tthis._detach();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! this.dom.offsetParent ) {\n\t\t\t// We attach to the table's offset parent\n\t\t\tthis.dom.offsetParent = $( dt.table().node() ).offsetParent();\n\t\t}\n\n\t\tif ( ! handleDim.height || ! handleDim.width ) {\n\t\t\t// Append to document so we can get its size. Not expecting it to\n\t\t\t// change during the life time of the page\n\t\t\thandle.appendTo( 'body' );\n\t\t\thandleDim.height = handle.outerHeight();\n\t\t\thandleDim.width = handle.outerWidth();\n\t\t}\n\n\t\t// Might need to go through multiple offset parents\n\t\tvar offset = this._getPosition( node, this.dom.offsetParent );\n\n\t\tthis.dom.attachedTo = node;\n\t\thandle\n\t\t\t.css( {\n\t\t\t\ttop: offset.top + node.offsetHeight - handleDim.height,\n\t\t\t\tleft: offset.left + node.offsetWidth - handleDim.width\n\t\t\t} )\n\t\t\t.appendTo( this.dom.offsetParent );\n\t},\n\n\n\t/**\n\t * Determine can the fill type should be. This can be automatic, or ask the\n\t * end user.\n\t *\n\t * @param {array} cells Information about the selected cells from the key\n\t *     up function\n\t * @private\n\t */\n\t_actionSelector: function ( cells )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar actions = AutoFill.actions;\n\t\tvar available = [];\n\n\t\t// \"Ask\" each plug-in if it wants to handle this data\n\t\t$.each( actions, function ( key, action ) {\n\t\t\tif ( action.available( dt, cells ) ) {\n\t\t\t\tavailable.push( key );\n\t\t\t}\n\t\t} );\n\n\t\tif ( available.length === 1 && this.c.alwaysAsk === false ) {\n\t\t\t// Only one action available - enact it immediately\n\t\t\tvar result = actions[ available[0] ].execute( dt, cells );\n\t\t\tthis._update( result, cells );\n\t\t}\n\t\telse if ( available.length > 1 ) {\n\t\t\t// Multiple actions available - ask the end user what they want to do\n\t\t\tvar list = this.dom.list.children('ul').empty();\n\n\t\t\t// Add a cancel option\n\t\t\tavailable.push( 'cancel' );\n\n\t\t\t$.each( available, function ( i, name ) {\n\t\t\t\tlist.append( $('<li/>')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t'<div class=\"dt-autofill-question\">'+\n\t\t\t\t\t\t\tactions[ name ].option( dt, cells )+\n\t\t\t\t\t\t'<div>'\n\t\t\t\t\t)\n\t\t\t\t\t.append( $('<div class=\"dt-autofill-button\">' )\n\t\t\t\t\t\t.append( $('<button class=\"'+AutoFill.classes.btn+'\">'+dt.i18n('autoFill.button', '&gt;')+'</button>')\n\t\t\t\t\t\t\t.on( 'click', function () {\n\t\t\t\t\t\t\t\tvar result = actions[ name ].execute(\n\t\t\t\t\t\t\t\t\tdt, cells, $(this).closest('li')\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tthat._update( result, cells );\n\n\t\t\t\t\t\t\t\tthat.dom.background.remove();\n\t\t\t\t\t\t\t\tthat.dom.list.remove();\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\tthis.dom.background.appendTo( 'body' );\n\t\t\tthis.dom.list.appendTo( 'body' );\n\n\t\t\tthis.dom.list.css( 'margin-top', this.dom.list.outerHeight()/2 * -1 );\n\t\t}\n\t},\n\n\n\t/**\n\t * Remove the AutoFill handle from the document\n\t *\n\t * @private\n\t */\n\t_detach: function ()\n\t{\n\t\tthis.dom.attachedTo = null;\n\t\tthis.dom.handle.detach();\n\t},\n\n\n\t/**\n\t * Draw the selection outline by calculating the range between the start\n\t * and end cells, then placing the highlighting elements to draw a rectangle\n\t *\n\t * @param  {node}   target End cell\n\t * @param  {object} e      Originating event\n\t * @private\n\t */\n\t_drawSelection: function ( target, e )\n\t{\n\t\t// Calculate boundary for start cell to this one\n\t\tvar dt = this.s.dt;\n\t\tvar start = this.s.start;\n\t\tvar startCell = $(this.dom.start);\n\t\tvar end = {\n\t\t\trow: this.c.vertical ?\n\t\t\t\tdt.rows( { page: 'current' } ).nodes().indexOf( target.parentNode ) :\n\t\t\t\tstart.row,\n\t\t\tcolumn: this.c.horizontal ?\n\t\t\t\t$(target).index() :\n\t\t\t\tstart.column\n\t\t};\n\t\tvar colIndx = dt.column.index( 'toData', end.column );\n\t\tvar endRow =  dt.row( ':eq('+end.row+')', { page: 'current' } ); // Workaround for M581\n\t\tvar endCell = $( dt.cell( endRow.index(), colIndx ).node() );\n\n\t\t// Be sure that is a DataTables controlled cell\n\t\tif ( ! dt.cell( endCell ).any() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// if target is not in the columns available - do nothing\n\t\tif ( dt.columns( this.c.columns ).indexes().indexOf( colIndx ) === -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.s.end = end;\n\n\t\tvar top, bottom, left, right, height, width;\n\n\t\ttop    = start.row    < end.row    ? startCell : endCell;\n\t\tbottom = start.row    < end.row    ? endCell   : startCell;\n\t\tleft   = start.column < end.column ? startCell : endCell;\n\t\tright  = start.column < end.column ? endCell   : startCell;\n\n\t\ttop    = this._getPosition( top.get(0) ).top;\n\t\tleft   = this._getPosition( left.get(0) ).left;\n\t\theight = this._getPosition( bottom.get(0) ).top + bottom.outerHeight() - top;\n\t\twidth  = this._getPosition( right.get(0) ).left + right.outerWidth() - left;\n\n\t\tvar select = this.dom.select;\n\t\tselect.top.css( {\n\t\t\ttop: top,\n\t\t\tleft: left,\n\t\t\twidth: width\n\t\t} );\n\n\t\tselect.left.css( {\n\t\t\ttop: top,\n\t\t\tleft: left,\n\t\t\theight: height\n\t\t} );\n\n\t\tselect.bottom.css( {\n\t\t\ttop: top + height,\n\t\t\tleft: left,\n\t\t\twidth: width\n\t\t} );\n\n\t\tselect.right.css( {\n\t\t\ttop: top,\n\t\t\tleft: left + width,\n\t\t\theight: height\n\t\t} );\n\t},\n\n\n\t/**\n\t * Use the Editor API to perform an update based on the new data for the\n\t * cells\n\t *\n\t * @param {array} cells Information about the selected cells from the key\n\t *     up function\n\t * @private\n\t */\n\t_editor: function ( cells )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar editor = this.c.editor;\n\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Build the object structure for Editor's multi-row editing\n\t\tvar idValues = {};\n\t\tvar nodes = [];\n\t\tvar fields = editor.fields();\n\n\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\tvar cell = cells[i][j];\n\n\t\t\t\t// Determine the field name for the cell being edited\n\t\t\t\tvar col = dt.settings()[0].aoColumns[ cell.index.column ];\n\t\t\t\tvar fieldName = col.editField;\n\n\t\t\t\tif ( fieldName === undefined ) {\n\t\t\t\t\tvar dataSrc = col.mData;\n\n\t\t\t\t\t// dataSrc is the `field.data` property, but we need to set\n\t\t\t\t\t// using the field name, so we need to translate from the\n\t\t\t\t\t// data to the name\n\t\t\t\t\tfor ( var k=0, ken=fields.length ; k<ken ; k++ ) {\n\t\t\t\t\t\tvar field = editor.field( fields[k] );\n\n\t\t\t\t\t\tif ( field.dataSrc() === dataSrc ) {\n\t\t\t\t\t\t\tfieldName = field.name();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( ! fieldName ) {\n\t\t\t\t\tthrow 'Could not automatically determine field data. '+\n\t\t\t\t\t\t'Please see https://datatables.net/tn/11';\n\t\t\t\t}\n\n\t\t\t\tif ( ! idValues[ fieldName ] ) {\n\t\t\t\t\tidValues[ fieldName ] = {};\n\t\t\t\t}\n\n\t\t\t\tvar id = dt.row( cell.index.row ).id();\n\t\t\t\tidValues[ fieldName ][ id ] = cell.set;\n\n\t\t\t\t// Keep a list of cells so we can activate the bubble editing\n\t\t\t\t// with them\n\t\t\t\tnodes.push( cell.index );\n\t\t\t}\n\t\t}\n\n\t\t// Perform the edit using bubble editing as it allows us to specify\n\t\t// the cells to be edited, rather than using full rows\n\t\teditor\n\t\t\t.bubble( nodes, false )\n\t\t\t.multiSet( idValues )\n\t\t\t.submit();\n\t},\n\n\n\t/**\n\t * Emit an event on the DataTable for listeners\n\t *\n\t * @param  {string} name Event name\n\t * @param  {array} args Event arguments\n\t * @private\n\t */\n\t_emitEvent: function ( name, args )\n\t{\n\t\tthis.s.dt.iterator( 'table', function ( ctx, i ) {\n\t\t\t$(ctx.nTable).triggerHandler( name+'.dt', args );\n\t\t} );\n\t},\n\n\n\t/**\n\t * Attach suitable listeners (based on the configuration) that will attach\n\t * and detach the AutoFill handle in the document.\n\t *\n\t * @private\n\t */\n\t_focusListener: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar namespace = this.s.namespace;\n\t\tvar focus = this.c.focus !== null ?\n\t\t\tthis.c.focus :\n\t\t\tdt.init().keys || dt.settings()[0].keytable ?\n\t\t\t\t'focus' :\n\t\t\t\t'hover';\n\n\t\t// All event listeners attached here are removed in the `destroy`\n\t\t// callback in the constructor\n\t\tif ( focus === 'focus' ) {\n\t\t\tdt\n\t\t\t\t.on( 'key-focus.autoFill', function ( e, dt, cell ) {\n\t\t\t\t\tthat._attach( cell.node() );\n\t\t\t\t} )\n\t\t\t\t.on( 'key-blur.autoFill', function ( e, dt, cell ) {\n\t\t\t\t\tthat._detach();\n\t\t\t\t} );\n\t\t}\n\t\telse if ( focus === 'click' ) {\n\t\t\t$(dt.table().body()).on( 'click'+namespace, 'td, th', function (e) {\n\t\t\t\tthat._attach( this );\n\t\t\t} );\n\n\t\t\t$(document.body).on( 'click'+namespace, function (e) {\n\t\t\t\tif ( ! $(e.target).parents().filter( dt.table().body() ).length ) {\n\t\t\t\t\tthat._detach();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\t$(dt.table().body())\n\t\t\t\t.on( 'mouseenter'+namespace, 'td, th', function (e) {\n\t\t\t\t\tthat._attach( this );\n\t\t\t\t} )\n\t\t\t\t.on( 'mouseleave'+namespace, function (e) {\n\t\t\t\t\tif ( $(e.relatedTarget).hasClass('dt-autofill-handle') ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthat._detach();\n\t\t\t\t} );\n\t\t}\n\t},\n\n\n\t_focusListenerRemove: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\n\t\tdt.off( '.autoFill' );\n\t\t$(dt.table().body()).off( this.s.namespace );\n\t\t$(document.body).off( this.s.namespace );\n\t},\n\n\n\t/**\n\t * Get the position of a node, relative to another, including any scrolling\n\t * offsets.\n\t * @param  {Node}   node         Node to get the position of\n\t * @param  {jQuery} targetParent Node to use as the parent\n\t * @return {object}              Offset calculation\n\t * @private\n\t */\n\t_getPosition: function ( node, targetParent )\n\t{\n\t\tvar\n\t\t\tcurrNode = node,\n\t\t\tcurrOffsetParent,\n\t\t\ttop = 0,\n\t\t\tleft = 0;\n\n\t\tif ( ! targetParent ) {\n\t\t\ttargetParent = $( $( this.s.dt.table().node() )[0].offsetParent );\n\t\t}\n\n\t\tdo {\n\t\t\t// Don't use jQuery().position() the behaviour changes between 1.x and 3.x for\n\t\t\t// tables\n\t\t\tvar positionTop = currNode.offsetTop;\n\t\t\tvar positionLeft = currNode.offsetLeft;\n\n\t\t\t// jQuery doesn't give a `table` as the offset parent oddly, so use DOM directly\n\t\t\tcurrOffsetParent = $( currNode.offsetParent );\n\n\t\t\ttop += positionTop + parseInt( currOffsetParent.css('border-top-width') ) * 1;\n\t\t\tleft += positionLeft + parseInt( currOffsetParent.css('border-left-width') ) * 1;\n\n\t\t\t// Emergency fall back. Shouldn't happen, but just in case!\n\t\t\tif ( currNode.nodeName.toLowerCase() === 'body' ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcurrNode = currOffsetParent.get(0); // for next loop\n\t\t}\n\t\twhile ( currOffsetParent.get(0) !== targetParent.get(0) )\n\n\t\treturn {\n\t\t\ttop: top,\n\t\t\tleft: left\n\t\t};\n\t},\n\n\n\t/**\n\t * Start mouse drag - selects the start cell\n\t *\n\t * @param  {object} e Mouse down event\n\t * @private\n\t */\n\t_mousedown: function ( e )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\n\t\tthis.dom.start = this.dom.attachedTo;\n\t\tthis.s.start = {\n\t\t\trow: dt.rows( { page: 'current' } ).nodes().indexOf( $(this.dom.start).parent()[0] ),\n\t\t\tcolumn: $(this.dom.start).index()\n\t\t};\n\n\t\t$(document.body)\n\t\t\t.on( 'mousemove.autoFill', function (e) {\n\t\t\t\tthat._mousemove( e );\n\t\t\t} )\n\t\t\t.on( 'mouseup.autoFill', function (e) {\n\t\t\t\tthat._mouseup( e );\n\t\t\t} );\n\n\t\tvar select = this.dom.select;\n\t\tvar offsetParent = $( dt.table().node() ).offsetParent();\n\t\tselect.top.appendTo( offsetParent );\n\t\tselect.left.appendTo( offsetParent );\n\t\tselect.right.appendTo( offsetParent );\n\t\tselect.bottom.appendTo( offsetParent );\n\n\t\tthis._drawSelection( this.dom.start, e );\n\n\t\tthis.dom.handle.css( 'display', 'none' );\n\n\t\t// Cache scrolling information so mouse move doesn't need to read.\n\t\t// This assumes that the window and DT scroller will not change size\n\t\t// during an AutoFill drag, which I think is a fair assumption\n\t\tvar scrollWrapper = this.dom.dtScroll;\n\t\tthis.s.scroll = {\n\t\t\twindowHeight: $(window).height(),\n\t\t\twindowWidth:  $(window).width(),\n\t\t\tdtTop:        scrollWrapper ? scrollWrapper.offset().top : null,\n\t\t\tdtLeft:       scrollWrapper ? scrollWrapper.offset().left : null,\n\t\t\tdtHeight:     scrollWrapper ? scrollWrapper.outerHeight() : null,\n\t\t\tdtWidth:      scrollWrapper ? scrollWrapper.outerWidth() : null\n\t\t};\n\t},\n\n\n\t/**\n\t * Mouse drag - selects the end cell and update the selection display for\n\t * the end user\n\t *\n\t * @param  {object} e Mouse move event\n\t * @private\n\t */\n\t_mousemove: function ( e )\n\t{\t\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar name = e.target.nodeName.toLowerCase();\n\t\tif ( name !== 'td' && name !== 'th' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._drawSelection( e.target, e );\n\t\tthis._shiftScroll( e );\n\t},\n\n\n\t/**\n\t * End mouse drag - perform the update actions\n\t *\n\t * @param  {object} e Mouse up event\n\t * @private\n\t */\n\t_mouseup: function ( e )\n\t{\n\t\t$(document.body).off( '.autoFill' );\n\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar select = this.dom.select;\n\t\tselect.top.remove();\n\t\tselect.left.remove();\n\t\tselect.right.remove();\n\t\tselect.bottom.remove();\n\n\t\tthis.dom.handle.css( 'display', 'block' );\n\n\t\t// Display complete - now do something useful with the selection!\n\t\tvar start = this.s.start;\n\t\tvar end = this.s.end;\n\n\t\t// Haven't selected multiple cells, so nothing to do\n\t\tif ( start.row === end.row && start.column === end.column ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar startDt = dt.cell( ':eq('+start.row+')', start.column+':visible', {page:'current'} );\n\n\t\t// If Editor is active inside this cell (inline editing) we need to wait for Editor to\n\t\t// submit and then we can loop back and trigger the fill.\n\t\tif ( $('div.DTE', startDt.node()).length ) {\n\t\t\tvar editor = dt.editor();\n\n\t\t\teditor\n\t\t\t\t.on( 'submitSuccess.dtaf close.dtaf', function () {\n\t\t\t\t\teditor.off( '.dtaf');\n\n\t\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t\tthat._mouseup( e );\n\t\t\t\t\t}, 100 );\n\t\t\t\t} )\n\t\t\t\t.on( 'submitComplete.dtaf preSubmitCancelled.dtaf close.dtaf', function () {\n\t\t\t\t\teditor.off( '.dtaf');\n\t\t\t\t} );\n\n\t\t\t// Make the current input submit\n\t\t\teditor.submit();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Build a matrix representation of the selected rows\n\t\tvar rows       = this._range( start.row, end.row );\n\t\tvar columns    = this._range( start.column, end.column );\n\t\tvar selected   = [];\n\t\tvar dtSettings = dt.settings()[0];\n\t\tvar dtColumns  = dtSettings.aoColumns;\n\t\tvar enabledColumns = dt.columns( this.c.columns ).indexes();\n\n\t\t// Can't use Array.prototype.map as IE8 doesn't support it\n\t\t// Can't use $.map as jQuery flattens 2D arrays\n\t\t// Need to use a good old fashioned for loop\n\t\tfor ( var rowIdx=0 ; rowIdx<rows.length ; rowIdx++ ) {\n\t\t\tselected.push(\n\t\t\t\t$.map( columns, function (column) {\n\t\t\t\t\tvar row = dt.row( ':eq('+rows[rowIdx]+')', {page:'current'} ); // Workaround for M581\n\t\t\t\t\tvar cell = dt.cell( row.index(), column+':visible' );\n\t\t\t\t\tvar data = cell.data();\n\t\t\t\t\tvar cellIndex = cell.index();\n\t\t\t\t\tvar editField = dtColumns[ cellIndex.column ].editField;\n\n\t\t\t\t\tif ( editField !== undefined ) {\n\t\t\t\t\t\tdata = dtSettings.oApi._fnGetObjectDataFn( editField )( dt.row( cellIndex.row ).data() );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( enabledColumns.indexOf(cellIndex.column) === -1 ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcell:  cell,\n\t\t\t\t\t\tdata:  data,\n\t\t\t\t\t\tlabel: cell.data(),\n\t\t\t\t\t\tindex: cellIndex\n\t\t\t\t\t};\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\n\t\tthis._actionSelector( selected );\n\t\t\n\t\t// Stop shiftScroll\n\t\tclearInterval( this.s.scrollInterval );\n\t\tthis.s.scrollInterval = null;\n\t},\n\n\n\t/**\n\t * Create an array with a range of numbers defined by the start and end\n\t * parameters passed in (inclusive!).\n\t * \n\t * @param  {integer} start Start\n\t * @param  {integer} end   End\n\t * @private\n\t */\n\t_range: function ( start, end )\n\t{\n\t\tvar out = [];\n\t\tvar i;\n\n\t\tif ( start <= end ) {\n\t\t\tfor ( i=start ; i<=end ; i++ ) {\n\t\t\t\tout.push( i );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor ( i=start ; i>=end ; i-- ) {\n\t\t\t\tout.push( i );\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t},\n\n\n\t/**\n\t * Move the window and DataTables scrolling during a drag to scroll new\n\t * content into view. This is done by proximity to the edge of the scrolling\n\t * container of the mouse - for example near the top edge of the window\n\t * should scroll up. This is a little complicated as there are two elements\n\t * that can be scrolled - the window and the DataTables scrolling view port\n\t * (if scrollX and / or scrollY is enabled).\n\t *\n\t * @param  {object} e Mouse move event object\n\t * @private\n\t */\n\t_shiftScroll: function ( e )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar scroll = this.s.scroll;\n\t\tvar runInterval = false;\n\t\tvar scrollSpeed = 5;\n\t\tvar buffer = 65;\n\t\tvar\n\t\t\twindowY = e.pageY - document.body.scrollTop,\n\t\t\twindowX = e.pageX - document.body.scrollLeft,\n\t\t\twindowVert, windowHoriz,\n\t\t\tdtVert, dtHoriz;\n\n\t\t// Window calculations - based on the mouse position in the window,\n\t\t// regardless of scrolling\n\t\tif ( windowY < buffer ) {\n\t\t\twindowVert = scrollSpeed * -1;\n\t\t}\n\t\telse if ( windowY > scroll.windowHeight - buffer ) {\n\t\t\twindowVert = scrollSpeed;\n\t\t}\n\n\t\tif ( windowX < buffer ) {\n\t\t\twindowHoriz = scrollSpeed * -1;\n\t\t}\n\t\telse if ( windowX > scroll.windowWidth - buffer ) {\n\t\t\twindowHoriz = scrollSpeed;\n\t\t}\n\n\t\t// DataTables scrolling calculations - based on the table's position in\n\t\t// the document and the mouse position on the page\n\t\tif ( scroll.dtTop !== null && e.pageY < scroll.dtTop + buffer ) {\n\t\t\tdtVert = scrollSpeed * -1;\n\t\t}\n\t\telse if ( scroll.dtTop !== null && e.pageY > scroll.dtTop + scroll.dtHeight - buffer ) {\n\t\t\tdtVert = scrollSpeed;\n\t\t}\n\n\t\tif ( scroll.dtLeft !== null && e.pageX < scroll.dtLeft + buffer ) {\n\t\t\tdtHoriz = scrollSpeed * -1;\n\t\t}\n\t\telse if ( scroll.dtLeft !== null && e.pageX > scroll.dtLeft + scroll.dtWidth - buffer ) {\n\t\t\tdtHoriz = scrollSpeed;\n\t\t}\n\n\t\t// This is where it gets interesting. We want to continue scrolling\n\t\t// without requiring a mouse move, so we need an interval to be\n\t\t// triggered. The interval should continue until it is no longer needed,\n\t\t// but it must also use the latest scroll commands (for example consider\n\t\t// that the mouse might move from scrolling up to scrolling left, all\n\t\t// with the same interval running. We use the `scroll` object to \"pass\"\n\t\t// this information to the interval. Can't use local variables as they\n\t\t// wouldn't be the ones that are used by an already existing interval!\n\t\tif ( windowVert || windowHoriz || dtVert || dtHoriz ) {\n\t\t\tscroll.windowVert = windowVert;\n\t\t\tscroll.windowHoriz = windowHoriz;\n\t\t\tscroll.dtVert = dtVert;\n\t\t\tscroll.dtHoriz = dtHoriz;\n\t\t\trunInterval = true;\n\t\t}\n\t\telse if ( this.s.scrollInterval ) {\n\t\t\t// Don't need to scroll - remove any existing timer\n\t\t\tclearInterval( this.s.scrollInterval );\n\t\t\tthis.s.scrollInterval = null;\n\t\t}\n\n\t\t// If we need to run the interval to scroll and there is no existing\n\t\t// interval (if there is an existing one, it will continue to run)\n\t\tif ( ! this.s.scrollInterval && runInterval ) {\n\t\t\tthis.s.scrollInterval = setInterval( function () {\n\t\t\t\t// Don't need to worry about setting scroll <0 or beyond the\n\t\t\t\t// scroll bound as the browser will just reject that.\n\t\t\t\tif ( scroll.windowVert ) {\n\t\t\t\t\tdocument.body.scrollTop += scroll.windowVert;\n\t\t\t\t}\n\t\t\t\tif ( scroll.windowHoriz ) {\n\t\t\t\t\tdocument.body.scrollLeft += scroll.windowHoriz;\n\t\t\t\t}\n\n\t\t\t\t// DataTables scrolling\n\t\t\t\tif ( scroll.dtVert || scroll.dtHoriz ) {\n\t\t\t\t\tvar scroller = that.dom.dtScroll[0];\n\n\t\t\t\t\tif ( scroll.dtVert ) {\n\t\t\t\t\t\tscroller.scrollTop += scroll.dtVert;\n\t\t\t\t\t}\n\t\t\t\t\tif ( scroll.dtHoriz ) {\n\t\t\t\t\t\tscroller.scrollLeft += scroll.dtHoriz;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 20 );\n\t\t}\n\t},\n\n\n\t/**\n\t * Update the DataTable after the user has selected what they want to do\n\t *\n\t * @param  {false|undefined} result Return from the `execute` method - can\n\t *   be false internally to do nothing. This is not documented for plug-ins\n\t *   and is used only by the cancel option.\n\t * @param {array} cells Information about the selected cells from the key\n\t *     up function, argumented with the set values\n\t * @private\n\t */\n\t_update: function ( result, cells )\n\t{\n\t\t// Do nothing on `false` return from an execute function\n\t\tif ( result === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar dt = this.s.dt;\n\t\tvar cell;\n\t\tvar columns = dt.columns( this.c.columns ).indexes();\n\n\t\t// Potentially allow modifications to the cells matrix\n\t\tthis._emitEvent( 'preAutoFill', [ dt, cells ] );\n\n\t\tthis._editor( cells );\n\n\t\t// Automatic updates are not performed if `update` is null and the\n\t\t// `editor` parameter is passed in - the reason being that Editor will\n\t\t// update the data once submitted\n\t\tvar update = this.c.update !== null ?\n\t\t\tthis.c.update :\n\t\t\tthis.c.editor ?\n\t\t\t\tfalse :\n\t\t\t\ttrue;\n\n\t\tif ( update ) {\n\t\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\t\tcell = cells[i][j];\n\n\t\t\t\t\tif ( columns.indexOf(cell.index.column) !== -1 ) {\n\t\t\t\t\t\tcell.cell.data( cell.set );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdt.draw(false);\n\t\t}\n\n\t\tthis._emitEvent( 'autoFill', [ dt, cells ] );\n\t}\n} );\n\n\n/**\n * AutoFill actions. The options here determine how AutoFill will fill the data\n * in the table when the user has selected a range of cells. Please see the\n * documentation on the DataTables site for full details on how to create plug-\n * ins.\n *\n * @type {Object}\n */\nAutoFill.actions = {\n\tincrement: {\n\t\tavailable: function ( dt, cells ) {\n\t\t\tvar d = cells[0][0].label;\n\n\t\t\t// is numeric test based on jQuery's old `isNumeric` function\n\t\t\treturn !isNaN( d - parseFloat( d ) );\n\t\t},\n\n\t\toption: function ( dt, cells ) {\n\t\t\treturn dt.i18n(\n\t\t\t\t'autoFill.increment',\n\t\t\t\t'Increment / decrement each cell by: <input type=\"number\" value=\"1\">'\n\t\t\t);\n\t\t},\n\n\t\texecute: function ( dt, cells, node ) {\n\t\t\tvar value = cells[0][0].data * 1;\n\t\t\tvar increment = $('input', node).val() * 1;\n\n\t\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\t\tcells[i][j].set = value;\n\n\t\t\t\t\tvalue += increment;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tfill: {\n\t\tavailable: function ( dt, cells ) {\n\t\t\treturn true;\n\t\t},\n\n\t\toption: function ( dt, cells ) {\n\t\t\treturn dt.i18n('autoFill.fill', 'Fill all cells with <i>'+cells[0][0].label+'</i>' );\n\t\t},\n\n\t\texecute: function ( dt, cells, node ) {\n\t\t\tvar value = cells[0][0].data;\n\n\t\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\t\tcells[i][j].set = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tfillHorizontal: {\n\t\tavailable: function ( dt, cells ) {\n\t\t\treturn cells.length > 1 && cells[0].length > 1;\n\t\t},\n\n\t\toption: function ( dt, cells ) {\n\t\t\treturn dt.i18n('autoFill.fillHorizontal', 'Fill cells horizontally' );\n\t\t},\n\n\t\texecute: function ( dt, cells, node ) {\n\t\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\t\tcells[i][j].set = cells[i][0].data;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tfillVertical: {\n\t\tavailable: function ( dt, cells ) {\n\t\t\treturn cells.length > 1;\n\t\t},\n\n\t\toption: function ( dt, cells ) {\n\t\t\treturn dt.i18n('autoFill.fillVertical', 'Fill cells vertically' );\n\t\t},\n\n\t\texecute: function ( dt, cells, node ) {\n\t\t\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\t\t\tfor ( var j=0, jen=cells[i].length ; j<jen ; j++ ) {\n\t\t\t\t\tcells[i][j].set = cells[0][j].data;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Special type that does not make itself available, but is added\n\t// automatically by AutoFill if a multi-choice list is shown. This allows\n\t// sensible code reuse\n\tcancel: {\n\t\tavailable: function () {\n\t\t\treturn false;\n\t\t},\n\n\t\toption: function ( dt ) {\n\t\t\treturn dt.i18n('autoFill.cancel', 'Cancel' );\n\t\t},\n\n\t\texecute: function () {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n\n\n/**\n * AutoFill version\n * \n * @static\n * @type      String\n */\nAutoFill.version = '2.3.5';\n\n\n/**\n * AutoFill defaults\n * \n * @namespace\n */\nAutoFill.defaults = {\n\t/** @type {Boolean} Ask user what they want to do, even for a single option */\n\talwaysAsk: false,\n\n\t/** @type {string|null} What will trigger a focus */\n\tfocus: null, // focus, click, hover\n\n\t/** @type {column-selector} Columns to provide auto fill for */\n\tcolumns: '', // all\n\n\t/** @type {Boolean} Enable AutoFill on load */\n\tenable: true,\n\n\t/** @type {boolean|null} Update the cells after a drag */\n\tupdate: null, // false is editor given, true otherwise\n\n\t/** @type {DataTable.Editor} Editor instance for automatic submission */\n\teditor: null,\n\n\t/** @type {boolean} Enable vertical fill */\n\tvertical: true,\n\n\t/** @type {boolean} Enable horizontal fill */\n\thorizontal: true\n};\n\n\n/**\n * Classes used by AutoFill that are configurable\n * \n * @namespace\n */\nAutoFill.classes = {\n\t/** @type {String} Class used by the selection button */\n\tbtn: 'btn'\n};\n\n\n/*\n * API\n */\nvar Api = $.fn.dataTable.Api;\n\n// Doesn't do anything - Not documented\nApi.register( 'autoFill()', function () {\n\treturn this;\n} );\n\nApi.register( 'autoFill().enabled()', function () {\n\tvar ctx = this.context[0];\n\n\treturn ctx.autoFill ?\n\t\tctx.autoFill.enabled() :\n\t\tfalse;\n} );\n\nApi.register( 'autoFill().enable()', function ( flag ) {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.autoFill ) {\n\t\t\tctx.autoFill.enable( flag );\n\t\t}\n\t} );\n} );\n\nApi.register( 'autoFill().disable()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.autoFill ) {\n\t\t\tctx.autoFill.disable();\n\t\t}\n\t} );\n} );\n\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.autofill', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.autoFill;\n\tvar defaults = DataTable.defaults.autoFill;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, init, defaults );\n\n\t\tif ( init !== false ) {\n\t\t\tnew AutoFill( settings, opts  );\n\t\t}\n\t}\n} );\n\n\n// Alias for access\nDataTable.AutoFill = AutoFill;\nDataTable.AutoFill = AutoFill;\n\n\nreturn AutoFill;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-bs4/css/dataTables.bootstrap4.css",
    "content": "@charset \"UTF-8\";\ntable.dataTable {\n  clear: both;\n  margin-top: 6px !important;\n  margin-bottom: 6px !important;\n  max-width: none !important;\n  border-collapse: separate !important;\n  border-spacing: 0;\n}\ntable.dataTable td,\ntable.dataTable th {\n  -webkit-box-sizing: content-box;\n  box-sizing: content-box;\n}\ntable.dataTable td.dataTables_empty,\ntable.dataTable th.dataTables_empty {\n  text-align: center;\n}\ntable.dataTable.nowrap th,\ntable.dataTable.nowrap td {\n  white-space: nowrap;\n}\n\ndiv.dataTables_wrapper div.dataTables_length label {\n  font-weight: normal;\n  text-align: left;\n  white-space: nowrap;\n}\ndiv.dataTables_wrapper div.dataTables_length select {\n  width: auto;\n  display: inline-block;\n}\ndiv.dataTables_wrapper div.dataTables_filter {\n  text-align: right;\n}\ndiv.dataTables_wrapper div.dataTables_filter label {\n  font-weight: normal;\n  white-space: nowrap;\n  text-align: left;\n}\ndiv.dataTables_wrapper div.dataTables_filter input {\n  margin-left: 0.5em;\n  display: inline-block;\n  width: auto;\n}\ndiv.dataTables_wrapper div.dataTables_info {\n  padding-top: 0.85em;\n}\ndiv.dataTables_wrapper div.dataTables_paginate {\n  margin: 0;\n  white-space: nowrap;\n  text-align: right;\n}\ndiv.dataTables_wrapper div.dataTables_paginate ul.pagination {\n  margin: 2px 0;\n  white-space: nowrap;\n  justify-content: flex-end;\n}\ndiv.dataTables_wrapper div.dataTables_processing {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 200px;\n  margin-left: -100px;\n  margin-top: -26px;\n  text-align: center;\n  padding: 1em 0;\n}\n\ntable.dataTable > thead > tr > th:active,\ntable.dataTable > thead > tr > td:active {\n  outline: none;\n}\ntable.dataTable > thead > tr > th:not(.sorting_disabled),\ntable.dataTable > thead > tr > td:not(.sorting_disabled) {\n  padding-right: 30px;\n}\ntable.dataTable > thead .sorting,\ntable.dataTable > thead .sorting_asc,\ntable.dataTable > thead .sorting_desc,\ntable.dataTable > thead .sorting_asc_disabled,\ntable.dataTable > thead .sorting_desc_disabled {\n  cursor: pointer;\n  position: relative;\n}\ntable.dataTable > thead .sorting:before, table.dataTable > thead .sorting:after,\ntable.dataTable > thead .sorting_asc:before,\ntable.dataTable > thead .sorting_asc:after,\ntable.dataTable > thead .sorting_desc:before,\ntable.dataTable > thead .sorting_desc:after,\ntable.dataTable > thead .sorting_asc_disabled:before,\ntable.dataTable > thead .sorting_asc_disabled:after,\ntable.dataTable > thead .sorting_desc_disabled:before,\ntable.dataTable > thead .sorting_desc_disabled:after {\n  position: absolute;\n  bottom: 0.9em;\n  display: block;\n  opacity: 0.3;\n}\ntable.dataTable > thead .sorting:before,\ntable.dataTable > thead .sorting_asc:before,\ntable.dataTable > thead .sorting_desc:before,\ntable.dataTable > thead .sorting_asc_disabled:before,\ntable.dataTable > thead .sorting_desc_disabled:before {\n  right: 1em;\n  content: \"↑\";\n}\ntable.dataTable > thead .sorting:after,\ntable.dataTable > thead .sorting_asc:after,\ntable.dataTable > thead .sorting_desc:after,\ntable.dataTable > thead .sorting_asc_disabled:after,\ntable.dataTable > thead .sorting_desc_disabled:after {\n  right: 0.5em;\n  content: \"↓\";\n}\ntable.dataTable > thead .sorting_asc:before,\ntable.dataTable > thead .sorting_desc:after {\n  opacity: 1;\n}\ntable.dataTable > thead .sorting_asc_disabled:before,\ntable.dataTable > thead .sorting_desc_disabled:after {\n  opacity: 0;\n}\n\ndiv.dataTables_scrollHead table.dataTable {\n  margin-bottom: 0 !important;\n}\n\ndiv.dataTables_scrollBody table {\n  border-top: none;\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n}\ndiv.dataTables_scrollBody table thead .sorting:before,\ndiv.dataTables_scrollBody table thead .sorting_asc:before,\ndiv.dataTables_scrollBody table thead .sorting_desc:before,\ndiv.dataTables_scrollBody table thead .sorting:after,\ndiv.dataTables_scrollBody table thead .sorting_asc:after,\ndiv.dataTables_scrollBody table thead .sorting_desc:after {\n  display: none;\n}\ndiv.dataTables_scrollBody table tbody tr:first-child th,\ndiv.dataTables_scrollBody table tbody tr:first-child td {\n  border-top: none;\n}\n\ndiv.dataTables_scrollFoot > .dataTables_scrollFootInner {\n  box-sizing: content-box;\n}\ndiv.dataTables_scrollFoot > .dataTables_scrollFootInner > table {\n  margin-top: 0 !important;\n  border-top: none;\n}\n\n@media screen and (max-width: 767px) {\n  div.dataTables_wrapper div.dataTables_length,\ndiv.dataTables_wrapper div.dataTables_filter,\ndiv.dataTables_wrapper div.dataTables_info,\ndiv.dataTables_wrapper div.dataTables_paginate {\n    text-align: center;\n  }\n  div.dataTables_wrapper div.dataTables_paginate ul.pagination {\n    justify-content: center !important;\n  }\n}\ntable.dataTable.table-sm > thead > tr > th:not(.sorting_disabled) {\n  padding-right: 20px;\n}\ntable.dataTable.table-sm .sorting:before,\ntable.dataTable.table-sm .sorting_asc:before,\ntable.dataTable.table-sm .sorting_desc:before {\n  top: 5px;\n  right: 0.85em;\n}\ntable.dataTable.table-sm .sorting:after,\ntable.dataTable.table-sm .sorting_asc:after,\ntable.dataTable.table-sm .sorting_desc:after {\n  top: 5px;\n}\n\ntable.table-bordered.dataTable {\n  border-right-width: 0;\n}\ntable.table-bordered.dataTable th,\ntable.table-bordered.dataTable td {\n  border-left-width: 0;\n}\ntable.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,\ntable.table-bordered.dataTable td:last-child,\ntable.table-bordered.dataTable td:last-child {\n  border-right-width: 1px;\n}\ntable.table-bordered.dataTable tbody th,\ntable.table-bordered.dataTable tbody td {\n  border-bottom-width: 0;\n}\n\ndiv.dataTables_scrollHead table.table-bordered {\n  border-bottom-width: 0;\n}\n\ndiv.table-responsive > div.dataTables_wrapper > div.row {\n  margin: 0;\n}\ndiv.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first-child {\n  padding-left: 0;\n}\ndiv.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {\n  padding-right: 0;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-bs4/js/dataTables.bootstrap4.js",
    "content": "/*! DataTables Bootstrap 4 integration\n * ©2011-2017 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * DataTables integration for Bootstrap 4. This requires Bootstrap 4 and\n * DataTables 1.10 or newer.\n *\n * This file sets the defaults and adds options to DataTables to style its\n * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap\n * for further information.\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t// Require DataTables, which attaches to jQuery, including\n\t\t\t\t// jQuery if needed and have a $ property so we can access the\n\t\t\t\t// jQuery object that is used\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/* Set the defaults for DataTables initialisation */\n$.extend( true, DataTable.defaults, {\n\tdom:\n\t\t\"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>\" +\n\t\t\"<'row'<'col-sm-12'tr>>\" +\n\t\t\"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>\",\n\trenderer: 'bootstrap'\n} );\n\n\n/* Default class modification */\n$.extend( DataTable.ext.classes, {\n\tsWrapper:      \"dataTables_wrapper dt-bootstrap4\",\n\tsFilterInput:  \"form-control form-control-sm\",\n\tsLengthSelect: \"custom-select custom-select-sm form-control form-control-sm\",\n\tsProcessing:   \"dataTables_processing card\",\n\tsPageButton:   \"paginate_button page-item\"\n} );\n\n\n/* Bootstrap paging button renderer */\nDataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {\n\tvar api     = new DataTable.Api( settings );\n\tvar classes = settings.oClasses;\n\tvar lang    = settings.oLanguage.oPaginate;\n\tvar aria = settings.oLanguage.oAria.paginate || {};\n\tvar btnDisplay, btnClass, counter=0;\n\n\tvar attach = function( container, buttons ) {\n\t\tvar i, ien, node, button;\n\t\tvar clickHandler = function ( e ) {\n\t\t\te.preventDefault();\n\t\t\tif ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {\n\t\t\t\tapi.page( e.data.action ).draw( 'page' );\n\t\t\t}\n\t\t};\n\n\t\tfor ( i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tbutton = buttons[i];\n\n\t\t\tif ( Array.isArray( button ) ) {\n\t\t\t\tattach( container, button );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbtnDisplay = '';\n\t\t\t\tbtnClass = '';\n\n\t\t\t\tswitch ( button ) {\n\t\t\t\t\tcase 'ellipsis':\n\t\t\t\t\t\tbtnDisplay = '&#x2026;';\n\t\t\t\t\t\tbtnClass = 'disabled';\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'first':\n\t\t\t\t\t\tbtnDisplay = lang.sFirst;\n\t\t\t\t\t\tbtnClass = button + (page > 0 ?\n\t\t\t\t\t\t\t'' : ' disabled');\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'previous':\n\t\t\t\t\t\tbtnDisplay = lang.sPrevious;\n\t\t\t\t\t\tbtnClass = button + (page > 0 ?\n\t\t\t\t\t\t\t'' : ' disabled');\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'next':\n\t\t\t\t\t\tbtnDisplay = lang.sNext;\n\t\t\t\t\t\tbtnClass = button + (page < pages-1 ?\n\t\t\t\t\t\t\t'' : ' disabled');\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'last':\n\t\t\t\t\t\tbtnDisplay = lang.sLast;\n\t\t\t\t\t\tbtnClass = button + (page < pages-1 ?\n\t\t\t\t\t\t\t'' : ' disabled');\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbtnDisplay = button + 1;\n\t\t\t\t\t\tbtnClass = page === button ?\n\t\t\t\t\t\t\t'active' : '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( btnDisplay ) {\n\t\t\t\t\tnode = $('<li>', {\n\t\t\t\t\t\t\t'class': classes.sPageButton+' '+btnClass,\n\t\t\t\t\t\t\t'id': idx === 0 && typeof button === 'string' ?\n\t\t\t\t\t\t\t\tsettings.sTableId +'_'+ button :\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.append( $('<a>', {\n\t\t\t\t\t\t\t\t'href': '#',\n\t\t\t\t\t\t\t\t'aria-controls': settings.sTableId,\n\t\t\t\t\t\t\t\t'aria-label': aria[ button ],\n\t\t\t\t\t\t\t\t'data-dt-idx': counter,\n\t\t\t\t\t\t\t\t'tabindex': settings.iTabIndex,\n\t\t\t\t\t\t\t\t'class': 'page-link'\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.html( btnDisplay )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.appendTo( container );\n\n\t\t\t\t\tsettings.oApi._fnBindAction(\n\t\t\t\t\t\tnode, {action: button}, clickHandler\n\t\t\t\t\t);\n\n\t\t\t\t\tcounter++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// IE9 throws an 'unknown error' if document.activeElement is used\n\t// inside an iframe or frame. \n\tvar activeEl;\n\n\ttry {\n\t\t// Because this approach is destroying and recreating the paging\n\t\t// elements, focus is lost on the select button which is bad for\n\t\t// accessibility. So we want to restore focus once the draw has\n\t\t// completed\n\t\tactiveEl = $(host).find(document.activeElement).data('dt-idx');\n\t}\n\tcatch (e) {}\n\n\tattach(\n\t\t$(host).empty().html('<ul class=\"pagination\"/>').children('ul'),\n\t\tbuttons\n\t);\n\n\tif ( activeEl !== undefined ) {\n\t\t$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');\n\t}\n};\n\n\nreturn DataTable;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/css/buttons.bootstrap4.css",
    "content": "@keyframes dtb-spinner {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n@-o-keyframes dtb-spinner {\n  100% {\n    -o-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n@-ms-keyframes dtb-spinner {\n  100% {\n    -ms-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n@-webkit-keyframes dtb-spinner {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n@-moz-keyframes dtb-spinner {\n  100% {\n    -moz-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\ndiv.dt-button-info {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  width: 400px;\n  margin-top: -100px;\n  margin-left: -200px;\n  background-color: white;\n  border: 2px solid #111;\n  box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);\n  border-radius: 3px;\n  text-align: center;\n  z-index: 21;\n}\ndiv.dt-button-info h2 {\n  padding: 0.5em;\n  margin: 0;\n  font-weight: normal;\n  border-bottom: 1px solid #ddd;\n  background-color: #f3f3f3;\n}\ndiv.dt-button-info > div {\n  padding: 1em;\n}\n\ndiv.dt-button-collection-title {\n  text-align: center;\n  padding: 0.3em 0 0.5em;\n  font-size: 0.9em;\n}\n\ndiv.dt-button-collection-title:empty {\n  display: none;\n}\n\ndiv.dt-button-collection {\n  position: absolute;\n  z-index: 2001;\n}\ndiv.dt-button-collection div.dropdown-menu {\n  display: block;\n  z-index: 2002;\n  min-width: 100%;\n}\ndiv.dt-button-collection div.dt-button-collection-title {\n  background-color: white;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n}\ndiv.dt-button-collection.fixed {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  margin-left: -75px;\n  border-radius: 0;\n}\ndiv.dt-button-collection.fixed.two-column {\n  margin-left: -200px;\n}\ndiv.dt-button-collection.fixed.three-column {\n  margin-left: -225px;\n}\ndiv.dt-button-collection.fixed.four-column {\n  margin-left: -300px;\n}\ndiv.dt-button-collection > :last-child {\n  display: block !important;\n  -webkit-column-gap: 8px;\n  -moz-column-gap: 8px;\n  -ms-column-gap: 8px;\n  -o-column-gap: 8px;\n  column-gap: 8px;\n}\ndiv.dt-button-collection > :last-child > * {\n  -webkit-column-break-inside: avoid;\n  break-inside: avoid;\n}\ndiv.dt-button-collection.two-column {\n  width: 400px;\n}\ndiv.dt-button-collection.two-column > :last-child {\n  padding-bottom: 1px;\n  -webkit-column-count: 2;\n  -moz-column-count: 2;\n  -ms-column-count: 2;\n  -o-column-count: 2;\n  column-count: 2;\n}\ndiv.dt-button-collection.three-column {\n  width: 450px;\n}\ndiv.dt-button-collection.three-column > :last-child {\n  padding-bottom: 1px;\n  -webkit-column-count: 3;\n  -moz-column-count: 3;\n  -ms-column-count: 3;\n  -o-column-count: 3;\n  column-count: 3;\n}\ndiv.dt-button-collection.four-column {\n  width: 600px;\n}\ndiv.dt-button-collection.four-column > :last-child {\n  padding-bottom: 1px;\n  -webkit-column-count: 4;\n  -moz-column-count: 4;\n  -ms-column-count: 4;\n  -o-column-count: 4;\n  column-count: 4;\n}\ndiv.dt-button-collection .dt-button {\n  border-radius: 0;\n}\ndiv.dt-button-collection.fixed {\n  max-width: none;\n}\ndiv.dt-button-collection.fixed:before, div.dt-button-collection.fixed:after {\n  display: none;\n}\n\ndiv.dt-button-background {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 999;\n}\n\n@media screen and (max-width: 767px) {\n  div.dt-buttons {\n    float: none;\n    width: 100%;\n    text-align: center;\n    margin-bottom: 0.5em;\n  }\n  div.dt-buttons a.btn {\n    float: none;\n  }\n}\ndiv.dt-buttons button.btn.processing,\ndiv.dt-buttons div.btn.processing,\ndiv.dt-buttons a.btn.processing {\n  color: rgba(0, 0, 0, 0.2);\n}\ndiv.dt-buttons button.btn.processing:after,\ndiv.dt-buttons div.btn.processing:after,\ndiv.dt-buttons a.btn.processing:after {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 16px;\n  height: 16px;\n  margin: -8px 0 0 -8px;\n  box-sizing: border-box;\n  display: block;\n  content: \" \";\n  border: 2px solid #282828;\n  border-radius: 50%;\n  border-left-color: transparent;\n  border-right-color: transparent;\n  animation: dtb-spinner 1500ms infinite linear;\n  -o-animation: dtb-spinner 1500ms infinite linear;\n  -ms-animation: dtb-spinner 1500ms infinite linear;\n  -webkit-animation: dtb-spinner 1500ms infinite linear;\n  -moz-animation: dtb-spinner 1500ms infinite linear;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/buttons.bootstrap4.js",
    "content": "/*! Bootstrap integration for DataTables' Buttons\n * ©2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-buttons'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Buttons ) {\n\t\t\t\trequire('datatables.net-buttons')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n$.extend( true, DataTable.Buttons.defaults, {\n\tdom: {\n\t\tcontainer: {\n\t\t\tclassName: 'dt-buttons btn-group flex-wrap'\n\t\t},\n\t\tbutton: {\n\t\t\tclassName: 'btn btn-secondary'\n\t\t},\n\t\tcollection: {\n\t\t\ttag: 'div',\n\t\t\tclassName: 'dropdown-menu',\n\t\t\tbutton: {\n\t\t\t\ttag: 'a',\n\t\t\t\tclassName: 'dt-button dropdown-item',\n\t\t\t\tactive: 'active',\n\t\t\t\tdisabled: 'disabled'\n\t\t\t}\n\t\t}\n\t},\n\tbuttonCreated: function ( config, button ) {\n\t\treturn config.buttons ?\n\t\t\t$('<div class=\"btn-group\"/>').append(button) :\n\t\t\tbutton;\n\t}\n} );\n\nDataTable.ext.buttons.collection.className += ' dropdown-toggle';\nDataTable.ext.buttons.collection.rightAlignClassName = 'dropdown-menu-right';\n\nreturn DataTable.Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/buttons.colVis.js",
    "content": "/*!\n * Column visibility buttons for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Buttons ) {\n\t\t\t\trequire('datatables.net-buttons')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n$.extend( DataTable.ext.buttons, {\n\t// A collection of column visibility buttons\n\tcolvis: function ( dt, conf ) {\n\t\treturn {\n\t\t\textend: 'collection',\n\t\t\ttext: function ( dt ) {\n\t\t\t\treturn dt.i18n( 'buttons.colvis', 'Column visibility' );\n\t\t\t},\n\t\t\tclassName: 'buttons-colvis',\n\t\t\tbuttons: [ {\n\t\t\t\textend: 'columnsToggle',\n\t\t\t\tcolumns: conf.columns,\n\t\t\t\tcolumnText: conf.columnText\n\t\t\t} ]\n\t\t};\n\t},\n\n\t// Selected columns with individual buttons - toggle column visibility\n\tcolumnsToggle: function ( dt, conf ) {\n\t\tvar columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {\n\t\t\treturn {\n\t\t\t\textend: 'columnToggle',\n\t\t\t\tcolumns: idx,\n\t\t\t\tcolumnText: conf.columnText\n\t\t\t};\n\t\t} ).toArray();\n\n\t\treturn columns;\n\t},\n\n\t// Single button to toggle column visibility\n\tcolumnToggle: function ( dt, conf ) {\n\t\treturn {\n\t\t\textend: 'columnVisibility',\n\t\t\tcolumns: conf.columns,\n\t\t\tcolumnText: conf.columnText\n\t\t};\n\t},\n\n\t// Selected columns with individual buttons - set column visibility\n\tcolumnsVisibility: function ( dt, conf ) {\n\t\tvar columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {\n\t\t\treturn {\n\t\t\t\textend: 'columnVisibility',\n\t\t\t\tcolumns: idx,\n\t\t\t\tvisibility: conf.visibility,\n\t\t\t\tcolumnText: conf.columnText\n\t\t\t};\n\t\t} ).toArray();\n\n\t\treturn columns;\n\t},\n\n\t// Single button to set column visibility\n\tcolumnVisibility: {\n\t\tcolumns: undefined, // column selector\n\t\ttext: function ( dt, button, conf ) {\n\t\t\treturn conf._columnText( dt, conf );\n\t\t},\n\t\tclassName: 'buttons-columnVisibility',\n\t\taction: function ( e, dt, button, conf ) {\n\t\t\tvar col = dt.columns( conf.columns );\n\t\t\tvar curr = col.visible();\n\n\t\t\tcol.visible( conf.visibility !== undefined ?\n\t\t\t\tconf.visibility :\n\t\t\t\t! (curr.length ? curr[0] : false )\n\t\t\t);\n\t\t},\n\t\tinit: function ( dt, button, conf ) {\n\t\t\tvar that = this;\n\t\t\tbutton.attr( 'data-cv-idx', conf.columns );\n\n\t\t\tdt\n\t\t\t\t.on( 'column-visibility.dt'+conf.namespace, function (e, settings) {\n\t\t\t\t\tif ( ! settings.bDestroying && settings.nTable == dt.settings()[0].nTable ) {\n\t\t\t\t\t\tthat.active( dt.column( conf.columns ).visible() );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.on( 'column-reorder.dt'+conf.namespace, function (e, settings, details) {\n\t\t\t\t\tif ( dt.columns( conf.columns ).count() !== 1 ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// This button controls the same column index but the text for the column has\n\t\t\t\t\t// changed\n\t\t\t\t\tthat.text( conf._columnText( dt, conf ) );\n\n\t\t\t\t\t// Since its a different column, we need to check its visibility\n\t\t\t\t\tthat.active( dt.column( conf.columns ).visible() );\n\t\t\t\t} );\n\n\t\t\tthis.active( dt.column( conf.columns ).visible() );\n\t\t},\n\t\tdestroy: function ( dt, button, conf ) {\n\t\t\tdt\n\t\t\t\t.off( 'column-visibility.dt'+conf.namespace )\n\t\t\t\t.off( 'column-reorder.dt'+conf.namespace );\n\t\t},\n\n\t\t_columnText: function ( dt, conf ) {\n\t\t\t// Use DataTables' internal data structure until this is presented\n\t\t\t// is a public API. The other option is to use\n\t\t\t// `$( column(col).node() ).text()` but the node might not have been\n\t\t\t// populated when Buttons is constructed.\n\t\t\tvar idx = dt.column( conf.columns ).index();\n\t\t\tvar title = dt.settings()[0].aoColumns[ idx ].sTitle;\n\n\t\t\tif (! title) {\n\t\t\t\ttitle = dt.column(idx).header().innerHTML;\n\t\t\t}\n\n\t\t\ttitle = title\n\t\t\t\t.replace(/\\n/g,\" \")        // remove new lines\n\t\t\t\t.replace(/<br\\s*\\/?>/gi, \" \")  // replace line breaks with spaces\n\t\t\t\t.replace(/<select(.*?)<\\/select>/g, \"\") // remove select tags, including options text\n\t\t\t\t.replace(/<!\\-\\-.*?\\-\\->/g, \"\") // strip HTML comments\n\t\t\t\t.replace(/<.*?>/g, \"\")   // strip HTML\n\t\t\t\t.replace(/^\\s+|\\s+$/g,\"\"); // trim\n\n\t\t\treturn conf.columnText ?\n\t\t\t\tconf.columnText( dt, idx, title ) :\n\t\t\t\ttitle;\n\t\t}\n\t},\n\n\n\tcolvisRestore: {\n\t\tclassName: 'buttons-colvisRestore',\n\n\t\ttext: function ( dt ) {\n\t\t\treturn dt.i18n( 'buttons.colvisRestore', 'Restore visibility' );\n\t\t},\n\n\t\tinit: function ( dt, button, conf ) {\n\t\t\tconf._visOriginal = dt.columns().indexes().map( function ( idx ) {\n\t\t\t\treturn dt.column( idx ).visible();\n\t\t\t} ).toArray();\n\t\t},\n\n\t\taction: function ( e, dt, button, conf ) {\n\t\t\tdt.columns().every( function ( i ) {\n\t\t\t\t// Take into account that ColReorder might have disrupted our\n\t\t\t\t// indexes\n\t\t\t\tvar idx = dt.colReorder && dt.colReorder.transpose ?\n\t\t\t\t\tdt.colReorder.transpose( i, 'toOriginal' ) :\n\t\t\t\t\ti;\n\n\t\t\t\tthis.visible( conf._visOriginal[ idx ] );\n\t\t\t} );\n\t\t}\n\t},\n\n\n\tcolvisGroup: {\n\t\tclassName: 'buttons-colvisGroup',\n\n\t\taction: function ( e, dt, button, conf ) {\n\t\t\tdt.columns( conf.show ).visible( true, false );\n\t\t\tdt.columns( conf.hide ).visible( false, false );\n\n\t\t\tdt.columns.adjust();\n\t\t},\n\n\t\tshow: [],\n\n\t\thide: []\n\t}\n} );\n\n\nreturn DataTable.Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/buttons.flash.js",
    "content": "/*!\n * Flash export buttons for Buttons and DataTables.\n * 2015-2017 SpryMedia Ltd - datatables.net/license\n *\n * ZeroClipbaord - MIT license\n * Copyright (c) 2012 Joseph Huckaby\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Buttons ) {\n\t\t\t\trequire('datatables.net-buttons')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * ZeroClipboard dependency\n */\n\n/*\n * ZeroClipboard 1.0.4 with modifications\n * Author: Joseph Huckaby\n * License: MIT\n *\n * Copyright (c) 2012 Joseph Huckaby\n */\nvar ZeroClipboard_TableTools = {\n\tversion: \"1.0.4-TableTools2\",\n\tclients: {}, // registered upload clients on page, indexed by id\n\tmoviePath: '', // URL to movie\n\tnextId: 1, // ID of next movie\n\n\t$: function(thingy) {\n\t\t// simple DOM lookup utility function\n\t\tif (typeof(thingy) == 'string') {\n\t\t\tthingy = document.getElementById(thingy);\n\t\t}\n\t\tif (!thingy.addClass) {\n\t\t\t// extend element with a few useful methods\n\t\t\tthingy.hide = function() { this.style.display = 'none'; };\n\t\t\tthingy.show = function() { this.style.display = ''; };\n\t\t\tthingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };\n\t\t\tthingy.removeClass = function(name) {\n\t\t\t\tthis.className = this.className.replace( new RegExp(\"\\\\s*\" + name + \"\\\\s*\"), \" \").replace(/^\\s+/, '').replace(/\\s+$/, '');\n\t\t\t};\n\t\t\tthingy.hasClass = function(name) {\n\t\t\t\treturn !!this.className.match( new RegExp(\"\\\\s*\" + name + \"\\\\s*\") );\n\t\t\t};\n\t\t}\n\t\treturn thingy;\n\t},\n\n\tsetMoviePath: function(path) {\n\t\t// set path to ZeroClipboard.swf\n\t\tthis.moviePath = path;\n\t},\n\n\tdispatch: function(id, eventName, args) {\n\t\t// receive event from flash movie, send to client\n\t\tvar client = this.clients[id];\n\t\tif (client) {\n\t\t\tclient.receiveEvent(eventName, args);\n\t\t}\n\t},\n\n\tlog: function ( str ) {\n\t\tconsole.log( 'Flash: '+str );\n\t},\n\n\tregister: function(id, client) {\n\t\t// register new client to receive events\n\t\tthis.clients[id] = client;\n\t},\n\n\tgetDOMObjectPosition: function(obj) {\n\t\t// get absolute coordinates for dom element\n\t\tvar info = {\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\twidth: obj.width ? obj.width : obj.offsetWidth,\n\t\t\theight: obj.height ? obj.height : obj.offsetHeight\n\t\t};\n\n\t\tif ( obj.style.width !== \"\" ) {\n\t\t\tinfo.width = obj.style.width.replace(\"px\",\"\");\n\t\t}\n\n\t\tif ( obj.style.height !== \"\" ) {\n\t\t\tinfo.height = obj.style.height.replace(\"px\",\"\");\n\t\t}\n\n\t\twhile (obj) {\n\t\t\tinfo.left += obj.offsetLeft;\n\t\t\tinfo.top += obj.offsetTop;\n\t\t\tobj = obj.offsetParent;\n\t\t}\n\n\t\treturn info;\n\t},\n\n\tClient: function(elem) {\n\t\t// constructor for new simple upload client\n\t\tthis.handlers = {};\n\n\t\t// unique ID\n\t\tthis.id = ZeroClipboard_TableTools.nextId++;\n\t\tthis.movieId = 'ZeroClipboard_TableToolsMovie_' + this.id;\n\n\t\t// register client with singleton to receive flash events\n\t\tZeroClipboard_TableTools.register(this.id, this);\n\n\t\t// create movie\n\t\tif (elem) {\n\t\t\tthis.glue(elem);\n\t\t}\n\t}\n};\n\nZeroClipboard_TableTools.Client.prototype = {\n\n\tid: 0, // unique ID for us\n\tready: false, // whether movie is ready to receive events or not\n\tmovie: null, // reference to movie object\n\tclipText: '', // text to copy to clipboard\n\tfileName: '', // default file save name\n\taction: 'copy', // action to perform\n\thandCursorEnabled: true, // whether to show hand cursor, or default pointer cursor\n\tcssEffects: true, // enable CSS mouse effects on dom container\n\thandlers: null, // user event handlers\n\tsized: false,\n\tsheetName: '', // default sheet name for excel export\n\n\tglue: function(elem, title) {\n\t\t// glue to DOM element\n\t\t// elem can be ID or actual DOM element object\n\t\tthis.domElement = ZeroClipboard_TableTools.$(elem);\n\n\t\t// float just above object, or zIndex 99 if dom element isn't set\n\t\tvar zIndex = 99;\n\t\tif (this.domElement.style.zIndex) {\n\t\t\tzIndex = parseInt(this.domElement.style.zIndex, 10) + 1;\n\t\t}\n\n\t\t// find X/Y position of domElement\n\t\tvar box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);\n\n\t\t// create floating DIV above element\n\t\tthis.div = document.createElement('div');\n\t\tvar style = this.div.style;\n\t\tstyle.position = 'absolute';\n\t\tstyle.left = '0px';\n\t\tstyle.top = '0px';\n\t\tstyle.width = (box.width) + 'px';\n\t\tstyle.height = box.height + 'px';\n\t\tstyle.zIndex = zIndex;\n\n\t\tif ( typeof title != \"undefined\" && title !== \"\" ) {\n\t\t\tthis.div.title = title;\n\t\t}\n\t\tif ( box.width !== 0 && box.height !== 0 ) {\n\t\t\tthis.sized = true;\n\t\t}\n\n\t\t// style.backgroundColor = '#f00'; // debug\n\t\tif ( this.domElement ) {\n\t\t\tthis.domElement.appendChild(this.div);\n\t\t\tthis.div.innerHTML = this.getHTML( box.width, box.height ).replace(/&/g, '&amp;');\n\t\t}\n\t},\n\n\tpositionElement: function() {\n\t\tvar box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);\n\t\tvar style = this.div.style;\n\n\t\tstyle.position = 'absolute';\n\t\t//style.left = (this.domElement.offsetLeft)+'px';\n\t\t//style.top = this.domElement.offsetTop+'px';\n\t\tstyle.width = box.width + 'px';\n\t\tstyle.height = box.height + 'px';\n\n\t\tif ( box.width !== 0 && box.height !== 0 ) {\n\t\t\tthis.sized = true;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tvar flash = this.div.childNodes[0];\n\t\tflash.width = box.width;\n\t\tflash.height = box.height;\n\t},\n\n\tgetHTML: function(width, height) {\n\t\t// return HTML for movie\n\t\tvar html = '';\n\t\tvar flashvars = 'id=' + this.id +\n\t\t\t'&width=' + width +\n\t\t\t'&height=' + height;\n\n\t\tif (navigator.userAgent.match(/MSIE/)) {\n\t\t\t// IE gets an OBJECT tag\n\t\t\tvar protocol = location.href.match(/^https/i) ? 'https://' : 'http://';\n\t\t\thtml += '<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0\" width=\"'+width+'\" height=\"'+height+'\" id=\"'+this.movieId+'\" align=\"middle\"><param name=\"allowScriptAccess\" value=\"always\" /><param name=\"allowFullScreen\" value=\"false\" /><param name=\"movie\" value=\"'+ZeroClipboard_TableTools.moviePath+'\" /><param name=\"loop\" value=\"false\" /><param name=\"menu\" value=\"false\" /><param name=\"quality\" value=\"best\" /><param name=\"bgcolor\" value=\"#ffffff\" /><param name=\"flashvars\" value=\"'+flashvars+'\"/><param name=\"wmode\" value=\"transparent\"/></object>';\n\t\t}\n\t\telse {\n\t\t\t// all other browsers get an EMBED tag\n\t\t\thtml += '<embed id=\"'+this.movieId+'\" src=\"'+ZeroClipboard_TableTools.moviePath+'\" loop=\"false\" menu=\"false\" quality=\"best\" bgcolor=\"#ffffff\" width=\"'+width+'\" height=\"'+height+'\" name=\"'+this.movieId+'\" align=\"middle\" allowScriptAccess=\"always\" allowFullScreen=\"false\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" flashvars=\"'+flashvars+'\" wmode=\"transparent\" />';\n\t\t}\n\t\treturn html;\n\t},\n\n\thide: function() {\n\t\t// temporarily hide floater offscreen\n\t\tif (this.div) {\n\t\t\tthis.div.style.left = '-2000px';\n\t\t}\n\t},\n\n\tshow: function() {\n\t\t// show ourselves after a call to hide()\n\t\tthis.reposition();\n\t},\n\n\tdestroy: function() {\n\t\t// destroy control and floater\n\t\tvar that = this;\n\n\t\tif (this.domElement && this.div) {\n\t\t\t$(this.div).remove();\n\n\t\t\tthis.domElement = null;\n\t\t\tthis.div = null;\n\n\t\t\t$.each( ZeroClipboard_TableTools.clients, function ( id, client ) {\n\t\t\t\tif ( client === that ) {\n\t\t\t\t\tdelete ZeroClipboard_TableTools.clients[ id ];\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t},\n\n\treposition: function(elem) {\n\t\t// reposition our floating div, optionally to new container\n\t\t// warning: container CANNOT change size, only position\n\t\tif (elem) {\n\t\t\tthis.domElement = ZeroClipboard_TableTools.$(elem);\n\t\t\tif (!this.domElement) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t}\n\n\t\tif (this.domElement && this.div) {\n\t\t\tvar box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);\n\t\t\tvar style = this.div.style;\n\t\t\tstyle.left = '' + box.left + 'px';\n\t\t\tstyle.top = '' + box.top + 'px';\n\t\t}\n\t},\n\n\tclearText: function() {\n\t\t// clear the text to be copy / saved\n\t\tthis.clipText = '';\n\t\tif (this.ready) {\n\t\t\tthis.movie.clearText();\n\t\t}\n\t},\n\n\tappendText: function(newText) {\n\t\t// append text to that which is to be copied / saved\n\t\tthis.clipText += newText;\n\t\tif (this.ready) { this.movie.appendText(newText) ;}\n\t},\n\n\tsetText: function(newText) {\n\t\t// set text to be copied to be copied / saved\n\t\tthis.clipText = newText;\n\t\tif (this.ready) { this.movie.setText(newText) ;}\n\t},\n\n\tsetFileName: function(newText) {\n\t\t// set the file name\n\t\tthis.fileName = newText;\n\t\tif (this.ready) {\n\t\t\tthis.movie.setFileName(newText);\n\t\t}\n\t},\n\n\tsetSheetData: function(data) {\n\t\t// set the xlsx sheet data\n\t\tif (this.ready) {\n\t\t\tthis.movie.setSheetData( JSON.stringify( data ) );\n\t\t}\n\t},\n\n\tsetAction: function(newText) {\n\t\t// set action (save or copy)\n\t\tthis.action = newText;\n\t\tif (this.ready) {\n\t\t\tthis.movie.setAction(newText);\n\t\t}\n\t},\n\n\taddEventListener: function(eventName, func) {\n\t\t// add user event listener for event\n\t\t// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel\n\t\teventName = eventName.toString().toLowerCase().replace(/^on/, '');\n\t\tif (!this.handlers[eventName]) {\n\t\t\tthis.handlers[eventName] = [];\n\t\t}\n\t\tthis.handlers[eventName].push(func);\n\t},\n\n\tsetHandCursor: function(enabled) {\n\t\t// enable hand cursor (true), or default arrow cursor (false)\n\t\tthis.handCursorEnabled = enabled;\n\t\tif (this.ready) {\n\t\t\tthis.movie.setHandCursor(enabled);\n\t\t}\n\t},\n\n\tsetCSSEffects: function(enabled) {\n\t\t// enable or disable CSS effects on DOM container\n\t\tthis.cssEffects = !!enabled;\n\t},\n\n\treceiveEvent: function(eventName, args) {\n\t\tvar self;\n\n\t\t// receive event from flash\n\t\teventName = eventName.toString().toLowerCase().replace(/^on/, '');\n\n\t\t// special behavior for certain events\n\t\tswitch (eventName) {\n\t\t\tcase 'load':\n\t\t\t\t// movie claims it is ready, but in IE this isn't always the case...\n\t\t\t\t// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function\n\t\t\t\tthis.movie = document.getElementById(this.movieId);\n\t\t\t\tif (!this.movie) {\n\t\t\t\t\tself = this;\n\t\t\t\t\tsetTimeout( function() { self.receiveEvent('load', null); }, 1 );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// firefox on pc needs a \"kick\" in order to set these in certain cases\n\t\t\t\tif (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {\n\t\t\t\t\tself = this;\n\t\t\t\t\tsetTimeout( function() { self.receiveEvent('load', null); }, 100 );\n\t\t\t\t\tthis.ready = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.ready = true;\n\t\t\t\tthis.movie.clearText();\n\t\t\t\tthis.movie.appendText( this.clipText );\n\t\t\t\tthis.movie.setFileName( this.fileName );\n\t\t\t\tthis.movie.setAction( this.action );\n\t\t\t\tthis.movie.setHandCursor( this.handCursorEnabled );\n\t\t\t\tbreak;\n\n\t\t\tcase 'mouseover':\n\t\t\t\tif (this.domElement && this.cssEffects) {\n\t\t\t\t\t//this.domElement.addClass('hover');\n\t\t\t\t\tif (this.recoverActive) {\n\t\t\t\t\t\tthis.domElement.addClass('active');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'mouseout':\n\t\t\t\tif (this.domElement && this.cssEffects) {\n\t\t\t\t\tthis.recoverActive = false;\n\t\t\t\t\tif (this.domElement.hasClass('active')) {\n\t\t\t\t\t\tthis.domElement.removeClass('active');\n\t\t\t\t\t\tthis.recoverActive = true;\n\t\t\t\t\t}\n\t\t\t\t\t//this.domElement.removeClass('hover');\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'mousedown':\n\t\t\t\tif (this.domElement && this.cssEffects) {\n\t\t\t\t\tthis.domElement.addClass('active');\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'mouseup':\n\t\t\t\tif (this.domElement && this.cssEffects) {\n\t\t\t\t\tthis.domElement.removeClass('active');\n\t\t\t\t\tthis.recoverActive = false;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t} // switch eventName\n\n\t\tif (this.handlers[eventName]) {\n\t\t\tfor (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {\n\t\t\t\tvar func = this.handlers[eventName][idx];\n\n\t\t\t\tif (typeof(func) == 'function') {\n\t\t\t\t\t// actual function reference\n\t\t\t\t\tfunc(this, args);\n\t\t\t\t}\n\t\t\t\telse if ((typeof(func) == 'object') && (func.length == 2)) {\n\t\t\t\t\t// PHP style object + method, i.e. [myObject, 'myMethod']\n\t\t\t\t\tfunc[0][ func[1] ](this, args);\n\t\t\t\t}\n\t\t\t\telse if (typeof(func) == 'string') {\n\t\t\t\t\t// name of function\n\t\t\t\t\twindow[func](this, args);\n\t\t\t\t}\n\t\t\t} // foreach event handler defined\n\t\t} // user defined handler for event\n\t}\n};\n\nZeroClipboard_TableTools.hasFlash = function ()\n{\n\ttry {\n\t\tvar fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');\n\t\tif (fo) {\n\t\t\treturn true;\n\t\t}\n\t}\n\tcatch (e) {\n\t\tif (\n\t\t\tnavigator.mimeTypes &&\n\t\t\tnavigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n\t\t\tnavigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n// For the Flash binding to work, ZeroClipboard_TableTools must be on the global\n// object list\nwindow.ZeroClipboard_TableTools = ZeroClipboard_TableTools;\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Local (private) functions\n */\n\n/**\n * If a Buttons instance is initlaised before it is placed into the DOM, Flash\n * won't be able to bind to it, so we need to wait until it is available, this\n * method abstracts that out.\n *\n * @param {ZeroClipboard} flash ZeroClipboard instance\n * @param {jQuery} node  Button\n */\nvar _glue = function ( flash, node )\n{\n\tvar id = node.attr('id');\n\n\tif ( node.parents('html').length ) {\n\t\tflash.glue( node[0], '' );\n\t}\n\telse {\n\t\tsetTimeout( function () {\n\t\t\t_glue( flash, node );\n\t\t}, 500 );\n\t}\n};\n\n/**\n * Get the sheet name for Excel exports.\n *\n * @param {object}  config       Button configuration\n */\nvar _sheetname = function ( config )\n{\n\tvar sheetName = 'Sheet1';\n\n\tif ( config.sheetName ) {\n\t\tsheetName = config.sheetName.replace(/[\\[\\]\\*\\/\\\\\\?\\:]/g, '');\n\t}\n\n\treturn sheetName;\n};\n\n/**\n * Set the flash text. This has to be broken up into chunks as the Javascript /\n * Flash bridge has a size limit. There is no indication in the Flash\n * documentation what this is, and it probably depends upon the browser.\n * Experimentation shows that the point is around 50k when data starts to get\n * lost, so an 8K limit used here is safe.\n *\n * @param {ZeroClipboard} flash ZeroClipboard instance\n * @param {string}        data  Data to send to Flash\n */\nvar _setText = function ( flash, data )\n{\n\tvar parts = data.match(/[\\s\\S]{1,8192}/g) || [];\n\n\tflash.clearText();\n\tfor ( var i=0, len=parts.length ; i<len ; i++ )\n\t{\n\t\tflash.appendText( parts[i] );\n\t}\n};\n\n/**\n * Get the newline character(s)\n *\n * @param {object}  config Button configuration\n * @return {string}        Newline character\n */\nvar _newLine = function ( config )\n{\n\treturn config.newline ?\n\t\tconfig.newline :\n\t\tnavigator.userAgent.match(/Windows/) ?\n\t\t\t'\\r\\n' :\n\t\t\t'\\n';\n};\n\n/**\n * Combine the data from the `buttons.exportData` method into a string that\n * will be used in the export file.\n *\n * @param  {DataTable.Api} dt     DataTables API instance\n * @param  {object}        config Button configuration\n * @return {object}               The data to export\n */\nvar _exportData = function ( dt, config )\n{\n\tvar newLine = _newLine( config );\n\tvar data = dt.buttons.exportData( config.exportOptions );\n\tvar boundary = config.fieldBoundary;\n\tvar separator = config.fieldSeparator;\n\tvar reBoundary = new RegExp( boundary, 'g' );\n\tvar escapeChar = config.escapeChar !== undefined ?\n\t\tconfig.escapeChar :\n\t\t'\\\\';\n\tvar join = function ( a ) {\n\t\tvar s = '';\n\n\t\t// If there is a field boundary, then we might need to escape it in\n\t\t// the source data\n\t\tfor ( var i=0, ien=a.length ; i<ien ; i++ ) {\n\t\t\tif ( i > 0 ) {\n\t\t\t\ts += separator;\n\t\t\t}\n\n\t\t\ts += boundary ?\n\t\t\t\tboundary + ('' + a[i]).replace( reBoundary, escapeChar+boundary ) + boundary :\n\t\t\t\ta[i];\n\t\t}\n\n\t\treturn s;\n\t};\n\n\tvar header = config.header ? join( data.header )+newLine : '';\n\tvar footer = config.footer && data.footer ? newLine+join( data.footer ) : '';\n\tvar body = [];\n\n\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\tbody.push( join( data.body[i] ) );\n\t}\n\n\treturn {\n\t\tstr: header + body.join( newLine ) + footer,\n\t\trows: body.length\n\t};\n};\n\n\n// Basic initialisation for the buttons is common between them\nvar flashButton = {\n\tavailable: function () {\n\t\treturn ZeroClipboard_TableTools.hasFlash();\n\t},\n\n\tinit: function ( dt, button, config ) {\n\t\t// Insert the Flash movie\n\t\tZeroClipboard_TableTools.moviePath = DataTable.Buttons.swfPath;\n\t\tvar flash = new ZeroClipboard_TableTools.Client();\n\n\t\tflash.setHandCursor( true );\n\t\tflash.addEventListener('mouseDown', function(client) {\n\t\t\tconfig._fromFlash = true;\n\t\t\tdt.button( button[0] ).trigger();\n\t\t\tconfig._fromFlash = false;\n\t\t} );\n\n\t\t_glue( flash, button );\n\n\t\tconfig._flash = flash;\n\t},\n\n\tdestroy: function ( dt, button, config ) {\n\t\tconfig._flash.destroy();\n\t},\n\n\tfieldSeparator: ',',\n\n\tfieldBoundary: '\"',\n\n\texportOptions: {},\n\n\ttitle: '*',\n\n\tmessageTop: '*',\n\n\tmessageBottom: '*',\n\n\tfilename: '*',\n\n\textension: '.csv',\n\n\theader: true,\n\n\tfooter: false\n};\n\n\n/**\n * Convert from numeric position to letter for column names in Excel\n * @param  {int} n Column number\n * @return {string} Column letter(s) name\n */\nfunction createCellPos( n ){\n\tvar ordA = 'A'.charCodeAt(0);\n\tvar ordZ = 'Z'.charCodeAt(0);\n\tvar len = ordZ - ordA + 1;\n\tvar s = \"\";\n\n\twhile( n >= 0 ) {\n\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\tn = Math.floor(n / len) - 1;\n\t}\n\n\treturn s;\n}\n\n/**\n * Create an XML node and add any children, attributes, etc without needing to\n * be verbose in the DOM.\n *\n * @param  {object} doc      XML document\n * @param  {string} nodeName Node name\n * @param  {object} opts     Options - can be `attr` (attributes), `children`\n *   (child nodes) and `text` (text content)\n * @return {node}            Created node\n */\nfunction _createNode( doc, nodeName, opts ){\n\tvar tempNode = doc.createElement( nodeName );\n\n\tif ( opts ) {\n\t\tif ( opts.attr ) {\n\t\t\t$(tempNode).attr( opts.attr );\n\t\t}\n\n\t\tif ( opts.children ) {\n\t\t\t$.each( opts.children, function ( key, value ) {\n\t\t\t\ttempNode.appendChild( value );\n\t\t\t} );\n\t\t}\n\n\t\tif ( opts.text !== null && opts.text !== undefined ) {\n\t\t\ttempNode.appendChild( doc.createTextNode( opts.text ) );\n\t\t}\n\t}\n\n\treturn tempNode;\n}\n\n/**\n * Get the width for an Excel column based on the contents of that column\n * @param  {object} data Data for export\n * @param  {int}    col  Column index\n * @return {int}         Column width\n */\nfunction _excelColWidth( data, col ) {\n\tvar max = data.header[col].length;\n\tvar len, lineSplit, str;\n\n\tif ( data.footer && data.footer[col].length > max ) {\n\t\tmax = data.footer[col].length;\n\t}\n\n\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\tvar point = data.body[i][col];\n\t\tstr = point !== null && point !== undefined ?\n\t\t\tpoint.toString() :\n\t\t\t'';\n\n\t\t// If there is a newline character, workout the width of the column\n\t\t// based on the longest line in the string\n\t\tif ( str.indexOf('\\n') !== -1 ) {\n\t\t\tlineSplit = str.split('\\n');\n\t\t\tlineSplit.sort( function (a, b) {\n\t\t\t\treturn b.length - a.length;\n\t\t\t} );\n\n\t\t\tlen = lineSplit[0].length;\n\t\t}\n\t\telse {\n\t\t\tlen = str.length;\n\t\t}\n\n\t\tif ( len > max ) {\n\t\t\tmax = len;\n\t\t}\n\n\t\t// Max width rather than having potentially massive column widths\n\t\tif ( max > 40 ) {\n\t\t\treturn 52; // 40 * 1.3\n\t\t}\n\t}\n\n\tmax *= 1.3;\n\n\t// And a min width\n\treturn max > 6 ? max : 6;\n}\n\n  var _serialiser = \"\";\n    if (typeof window.XMLSerializer === 'undefined') {\n        _serialiser = new function () {\n            this.serializeToString = function (input) {\n                return input.xml\n            }\n        };\n    } else {\n        _serialiser =  new XMLSerializer();\n    }\n\n    var _ieExcel;\n\n\n/**\n * Convert XML documents in an object to strings\n * @param  {object} obj XLSX document object\n */\nfunction _xlsxToStrings( obj ) {\n\tif ( _ieExcel === undefined ) {\n\t\t// Detect if we are dealing with IE's _awful_ serialiser by seeing if it\n\t\t// drop attributes\n\t\t_ieExcel = _serialiser\n\t\t\t.serializeToString(\n\t\t\t\t$.parseXML( excelStrings['xl/worksheets/sheet1.xml'] )\n\t\t\t)\n\t\t\t.indexOf( 'xmlns:r' ) === -1;\n\t}\n\n\t$.each( obj, function ( name, val ) {\n\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t_xlsxToStrings( val );\n\t\t}\n\t\telse {\n\t\t\tif ( _ieExcel ) {\n\t\t\t\t// IE's XML serialiser will drop some name space attributes from\n\t\t\t\t// from the root node, so we need to save them. Do this by\n\t\t\t\t// replacing the namespace nodes with a regular attribute that\n\t\t\t\t// we convert back when serialised. Edge does not have this\n\t\t\t\t// issue\n\t\t\t\tvar worksheet = val.childNodes[0];\n\t\t\t\tvar i, ien;\n\t\t\t\tvar attrs = [];\n\n\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\tvar attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar str = _serialiser.serializeToString(val);\n\n\t\t\t// Fix IE's XML\n\t\t\tif ( _ieExcel ) {\n\t\t\t\t// IE doesn't include the XML declaration\n\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t}\n\n\t\t\t\t// Return namespace attributes to being as such\n\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\t\t\t}\n\n\t\t\t// Safari, IE and Edge will put empty name space attributes onto\n\t\t\t// various elements making them useless. This strips them out\n\t\t\tstr = str.replace( /<([^<>]*?) xmlns=\"\"([^<>]*?)>/g, '<$1 $2>' );\n\n\t\t\tobj[ name ] = str;\n\t\t}\n\t} );\n}\n\n// Excel - Pre-defined strings to build a basic XLSX file\nvar excelStrings = {\n\t\"_rels/.rels\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t'</Relationships>',\n\n\t\"xl/_rels/workbook.xml.rels\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t'</Relationships>',\n\n\t\"[Content_Types].xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t'</Types>',\n\n\t\"xl/workbook.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t'<bookViews>'+\n\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t'</bookViews>'+\n\t\t\t'<sheets>'+\n\t\t\t\t'<sheet name=\"\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t'</sheets>'+\n\t\t'</workbook>',\n\n\t\"xl/worksheets/sheet1.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t'<sheetData/>'+\n\t\t\t'<mergeCells count=\"0\"/>'+\n\t\t'</worksheet>',\n\n\t\"xl/styles.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t'<numFmts count=\"6\">'+\n\t\t\t\t'<numFmt numFmtId=\"164\" formatCode=\"#,##0.00_-\\ [$$-45C]\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"165\" formatCode=\"&quot;£&quot;#,##0.00\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"166\" formatCode=\"[$€-2]\\ #,##0.00\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"167\" formatCode=\"0.0%\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"168\" formatCode=\"#,##0;(#,##0)\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"169\" formatCode=\"#,##0.00;(#,##0.00)\"/>'+\n\t\t\t'</numFmts>'+\n\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<b />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<i />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<u />'+\n\t\t\t\t'</font>'+\n\t\t\t'</fonts>'+\n\t\t\t'<fills count=\"6\">'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+ // Excel appears to use this as a dotted background regardless of values but\n\t\t\t\t\t'<patternFill patternType=\"none\" />'+ // to be valid to the schema, use a patternFill\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t'</fills>'+\n\t\t\t'<borders count=\"2\">'+\n\t\t\t\t'<border>'+\n\t\t\t\t\t'<left />'+\n\t\t\t\t\t'<right />'+\n\t\t\t\t\t'<top />'+\n\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t'<diagonal />'+\n\t\t\t\t'</border>'+\n\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</left>'+\n\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</right>'+\n\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</top>'+\n\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t'<diagonal />'+\n\t\t\t\t'</border>'+\n\t\t\t'</borders>'+\n\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t'</cellStyleXfs>'+\n\t\t\t'<cellXfs count=\"61\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"left\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"center\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"right\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"fill\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment textRotation=\"90\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment wrapText=\"1\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"9\"   fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"165\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"166\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"167\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"168\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"169\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"3\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"4\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t'</cellXfs>'+\n\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t'</cellStyles>'+\n\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t'</styleSheet>'\n};\n// Note we could use 3 `for` loops for the styles, but when gzipped there is\n// virtually no difference in size, since the above can be easily compressed\n\n// Pattern matching for special number formats. Perhaps this should be exposed\n// via an API in future?\nvar _excelSpecials = [\n\t{ match: /^\\-?\\d+\\.\\d%$/,       style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.\n\t{ match: /^\\-?\\d+\\.?\\d*%$/,     style: 56, fmt: function (d) { return d/100; } }, // Percent\n\t{ match: /^\\-?\\$[\\d,]+.?\\d*$/,  style: 57 }, // Dollars\n\t{ match: /^\\-?£[\\d,]+.?\\d*$/,   style: 58 }, // Pounds\n\t{ match: /^\\-?€[\\d,]+.?\\d*$/,   style: 59 }, // Euros\n\t{ match: /^\\([\\d,]+\\)$/,        style: 61, fmt: function (d) { return -1 * d.replace(/[\\(\\)]/g, ''); } },  // Negative numbers indicated by brackets\n\t{ match: /^\\([\\d,]+\\.\\d{2}\\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\\(\\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.\n\t{ match: /^[\\d,]+$/,            style: 63 }, // Numbers with thousand separators\n\t{ match: /^[\\d,]+\\.\\d{2}$/,     style: 64 }  // Numbers with 2d.p. and thousands separators\n];\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables options and methods\n */\n\n// Set the default SWF path\nDataTable.Buttons.swfPath = '//cdn.datatables.net/buttons/'+DataTable.Buttons.version+'/swf/flashExport.swf';\n\n// Method to allow Flash buttons to be resized when made visible - as they are\n// of zero height and width if initialised hidden\nDataTable.Api.register( 'buttons.resize()', function () {\n\t$.each( ZeroClipboard_TableTools.clients, function ( i, client ) {\n\t\tif ( client.domElement !== undefined && client.domElement.parentNode ) {\n\t\t\tclient.positionElement();\n\t\t}\n\t} );\n} );\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Button definitions\n */\n\n// Copy to clipboard\nDataTable.ext.buttons.copyFlash = $.extend( {}, flashButton, {\n\tclassName: 'buttons-copy buttons-flash',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.copy', 'Copy' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\t// Check that the trigger did actually occur due to a Flash activation\n\t\tif ( ! config._fromFlash ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.processing( true );\n\n\t\tvar flash = config._flash;\n\t\tvar exportData = _exportData( dt, config );\n\t\tvar info = dt.buttons.exportInfo( config );\n\t\tvar newline = _newLine(config);\n\t\tvar output = exportData.str;\n\n\t\tif ( info.title ) {\n\t\t\toutput = info.title + newline + newline + output;\n\t\t}\n\n\t\tif ( info.messageTop ) {\n\t\t\toutput = info.messageTop + newline + newline + output;\n\t\t}\n\n\t\tif ( info.messageBottom ) {\n\t\t\toutput = output + newline + newline + info.messageBottom;\n\t\t}\n\n\t\tif ( config.customize ) {\n\t\t\toutput = config.customize( output, config, dt );\n\t\t}\n\n\t\tflash.setAction( 'copy' );\n\t\t_setText( flash, output );\n\n\t\tthis.processing( false );\n\n\t\tdt.buttons.info(\n\t\t\tdt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ),\n\t\t\tdt.i18n( 'buttons.copySuccess', {\n\t\t\t\t_: 'Copied %d rows to clipboard',\n\t\t\t\t1: 'Copied 1 row to clipboard'\n\t\t\t}, data.rows ),\n\t\t\t3000\n\t\t);\n\t},\n\n\tfieldSeparator: '\\t',\n\n\tfieldBoundary: ''\n} );\n\n// CSV save file\nDataTable.ext.buttons.csvFlash = $.extend( {}, flashButton, {\n\tclassName: 'buttons-csv buttons-flash',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.csv', 'CSV' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\t// Set the text\n\t\tvar flash = config._flash;\n\t\tvar data = _exportData( dt, config );\n\t\tvar info = dt.buttons.exportInfo( config );\n\t\tvar output = config.customize ?\n\t\t\tconfig.customize( data.str, config, dt ) :\n\t\t\tdata.str;\n\n\t\tflash.setAction( 'csv' );\n\t\tflash.setFileName( info.filename );\n\t\t_setText( flash, output );\n\t},\n\n\tescapeChar: '\"'\n} );\n\n// Excel save file - this is really a CSV file using UTF-8 that Excel can read\nDataTable.ext.buttons.excelFlash = $.extend( {}, flashButton, {\n\tclassName: 'buttons-excel buttons-flash',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.excel', 'Excel' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\tvar flash = config._flash;\n\t\tvar rowPos = 0;\n\t\tvar rels = $.parseXML( excelStrings['xl/worksheets/sheet1.xml'] ) ; //Parses xml\n\t\tvar relsGet = rels.getElementsByTagName( \"sheetData\" )[0];\n\n\t\tvar xlsx = {\n\t\t\t_rels: {\n\t\t\t\t\".rels\": $.parseXML( excelStrings['_rels/.rels'] )\n\t\t\t},\n\t\t\txl: {\n\t\t\t\t_rels: {\n\t\t\t\t\t\"workbook.xml.rels\": $.parseXML( excelStrings['xl/_rels/workbook.xml.rels'] )\n\t\t\t\t},\n\t\t\t\t\"workbook.xml\": $.parseXML( excelStrings['xl/workbook.xml'] ),\n\t\t\t\t\"styles.xml\": $.parseXML( excelStrings['xl/styles.xml'] ),\n\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t}\n\n\t\t\t},\n\t\t\t\"[Content_Types].xml\": $.parseXML( excelStrings['[Content_Types].xml'])\n\t\t};\n\n\t\tvar data = dt.buttons.exportData( config.exportOptions );\n\t\tvar currentRow, rowNode;\n\t\tvar addRow = function ( row ) {\n\t\t\tcurrentRow = rowPos+1;\n\t\t\trowNode = _createNode( rels, \"row\", { attr: {r:currentRow} } );\n\n\t\t\tfor ( var i=0, ien=row.length ; i<ien ; i++ ) {\n\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\tvar cellId = createCellPos(i) + '' + currentRow;\n\t\t\t\tvar cell = null;\n\n\t\t\t\t// For null, undefined of blank cell, continue so it doesn't create the _createNode\n\t\t\t\tif ( row[i] === null || row[i] === undefined || row[i] === '' ) {\n\t\t\t\t\tif ( config.createEmptyCells === true ) {\n\t\t\t\t\t\trow[i] = '';\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trow[i] = typeof row[i].trim === 'function'\n\t\t\t\t\t? row[i].trim()\n\t\t\t\t\t: row[i];\n\n\t\t\t\t// Special number formatting options\n\t\t\t\tfor ( var j=0, jen=_excelSpecials.length ; j<jen ; j++ ) {\n\t\t\t\t\tvar special = _excelSpecials[j];\n\n\t\t\t\t\t// TODO Need to provide the ability for the specials to say\n\t\t\t\t\t// if they are returning a string, since at the moment it is\n\t\t\t\t\t// assumed to be a number\n\t\t\t\t\tif ( row[i].match && ! row[i].match(/^0\\d+/) && row[i].match( special.match ) ) {\n\t\t\t\t\t\tvar val = row[i].replace(/[^\\d\\.\\-]/g, '');\n\n\t\t\t\t\t\tif ( special.fmt ) {\n\t\t\t\t\t\t\tval = special.fmt( val );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tr: cellId,\n\t\t\t\t\t\t\t\ts: special.style\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t_createNode( rels, 'v', { text: val } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( ! cell ) {\n\t\t\t\t\tif ( typeof row[i] === 'number' || (\n\t\t\t\t\t\trow[i].match &&\n\t\t\t\t\t\trow[i].match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t! row[i].match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros\n\t\t\t\t\t\t// or a negative anywhere but the start\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t_createNode( rels, 'v', { text: row[i] } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// String output - replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! row[i].replace ?\n\t\t\t\t\t\t\trow[i] :\n\t\t\t\t\t\t\trow[i].replace(/[\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x9F]/g, '');\n\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: _createNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: _createNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trowNode.appendChild( cell );\n\t\t\t}\n\n\t\t\trelsGet.appendChild(rowNode);\n\t\t\trowPos++;\n\t\t};\n\n\t\t$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', _sheetname( config ) );\n\n\t\tif ( config.customizeData ) {\n\t\t\tconfig.customizeData( data );\n\t\t}\n\n\t\tvar mergeCells = function ( row, colspan ) {\n\t\t\tvar mergeCells = $('mergeCells', rels);\n\n\t\t\tmergeCells[0].appendChild( _createNode( rels, 'mergeCell', {\n\t\t\t\tattr: {\n\t\t\t\t\tref: 'A'+row+':'+createCellPos(colspan)+row\n\t\t\t\t}\n\t\t\t} ) );\n\t\t\tmergeCells.attr( 'count', mergeCells.attr( 'count' )+1 );\n\t\t\t$('row:eq('+(row-1)+') c', rels).attr( 's', '51' ); // centre\n\t\t};\n\n\t\t// Title and top messages\n\t\tvar exportInfo = dt.buttons.exportInfo( config );\n\t\tif ( exportInfo.title ) {\n\t\t\taddRow( [exportInfo.title], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\t\tif ( exportInfo.messageTop ) {\n\t\t\taddRow( [exportInfo.messageTop], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\t\t// Table itself\n\t\tif ( config.header ) {\n\t\t\taddRow( data.header, rowPos );\n\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t}\n\n\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\taddRow( data.body[n], rowPos );\n\t\t}\n\n\t\tif ( config.footer && data.footer ) {\n\t\t\taddRow( data.footer, rowPos);\n\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t}\n\n\t\t// Below the table\n\t\tif ( exportInfo.messageBottom ) {\n\t\t\taddRow( [exportInfo.messageBottom], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\t\t// Set column widths\n\t\tvar cols = _createNode( rels, 'cols' );\n\t\t$('worksheet', rels).prepend( cols );\n\n\t\tfor ( var i=0, ien=data.header.length ; i<ien ; i++ ) {\n\t\t\tcols.appendChild( _createNode( rels, 'col', {\n\t\t\t\tattr: {\n\t\t\t\t\tmin: i+1,\n\t\t\t\t\tmax: i+1,\n\t\t\t\t\twidth: _excelColWidth( data, i ),\n\t\t\t\t\tcustomWidth: 1\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\t// Let the developer customise the document if they want to\n\t\tif ( config.customize ) {\n\t\t\tconfig.customize( xlsx, config, dt );\n\t\t}\n\n\t\t_xlsxToStrings( xlsx );\n\n\t\tflash.setAction( 'excel' );\n\t\tflash.setFileName( exportInfo.filename );\n\t\tflash.setSheetData( xlsx );\n\t\t_setText( flash, '' );\n\n\t\tthis.processing( false );\n\t},\n\n\textension: '.xlsx',\n\t\n\tcreateEmptyCells: false\n} );\n\n\n\n// PDF export\nDataTable.ext.buttons.pdfFlash = $.extend( {}, flashButton, {\n\tclassName: 'buttons-pdf buttons-flash',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.pdf', 'PDF' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\t// Set the text\n\t\tvar flash = config._flash;\n\t\tvar data = dt.buttons.exportData( config.exportOptions );\n\t\tvar info = dt.buttons.exportInfo( config );\n\t\tvar totalWidth = dt.table().node().offsetWidth;\n\n\t\t// Calculate the column width ratios for layout of the table in the PDF\n\t\tvar ratios = dt.columns( config.columns ).indexes().map( function ( idx ) {\n\t\t\treturn dt.column( idx ).header().offsetWidth / totalWidth;\n\t\t} );\n\n\t\tflash.setAction( 'pdf' );\n\t\tflash.setFileName( info.filename );\n\n\t\t_setText( flash, JSON.stringify( {\n\t\t\ttitle:         info.title || '',\n\t\t\tmessageTop:    info.messageTop || '',\n\t\t\tmessageBottom: info.messageBottom || '',\n\t\t\tcolWidth:      ratios.toArray(),\n\t\t\torientation:   config.orientation,\n\t\t\tsize:          config.pageSize,\n\t\t\theader:        config.header ? data.header : null,\n\t\t\tfooter:        config.footer ? data.footer : null,\n\t\t\tbody:          data.body\n\t\t} ) );\n\n\t\tthis.processing( false );\n\t},\n\n\textension: '.pdf',\n\n\torientation: 'portrait',\n\n\tpageSize: 'A4',\n\n\tnewline: '\\n'\n} );\n\n\nreturn DataTable.Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/buttons.html5.js",
    "content": "/*!\n * HTML5 export buttons for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n *\n * FileSaver.js (1.3.3) - MIT license\n * Copyright © 2016 Eli Grey - http://eligrey.com\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $, jszip, pdfmake) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Buttons ) {\n\t\t\t\trequire('datatables.net-buttons')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document, jszip, pdfmake );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, jszip, pdfmake, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n// Allow the constructor to pass in JSZip and PDFMake from external requires.\n// Otherwise, use globally defined variables, if they are available.\nfunction _jsZip () {\n\treturn jszip || window.JSZip;\n}\nfunction _pdfMake () {\n\treturn pdfmake || window.pdfMake;\n}\n\nDataTable.Buttons.pdfMake = function (_) {\n\tif ( ! _ ) {\n\t\treturn _pdfMake();\n\t}\n\tpdfmake = _;\n}\n\nDataTable.Buttons.jszip = function (_) {\n\tif ( ! _ ) {\n\t\treturn _jsZip();\n\t}\n\tjszip = _;\n}\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * FileSaver.js dependency\n */\n\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\nvar _saveAs = (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t  doc = view.document\n\t\t  // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t  filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, force = type === force_saveable_type\n\t\t\t\t, object_url\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (force) {\n\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\tif (can_use_save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs_error();\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name, no_auto_bom) {\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name, no_auto_bom) {\n\t\t\tname = name || blob.name || \"download\";\n\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function(){};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t   typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n\n\n// Expose file saver on the DataTables API. Can't attach to `DataTables.Buttons`\n// since this file can be loaded before Button's core!\nDataTable.fileSave = _saveAs;\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Local (private) functions\n */\n\n/**\n * Get the sheet name for Excel exports.\n *\n * @param {object}\tconfig Button configuration\n */\nvar _sheetname = function ( config )\n{\n\tvar sheetName = 'Sheet1';\n\n\tif ( config.sheetName ) {\n\t\tsheetName = config.sheetName.replace(/[\\[\\]\\*\\/\\\\\\?\\:]/g, '');\n\t}\n\n\treturn sheetName;\n};\n\n/**\n * Get the newline character(s)\n *\n * @param {object}\tconfig Button configuration\n * @return {string}\t\t\t\tNewline character\n */\nvar _newLine = function ( config )\n{\n\treturn config.newline ?\n\t\tconfig.newline :\n\t\tnavigator.userAgent.match(/Windows/) ?\n\t\t\t'\\r\\n' :\n\t\t\t'\\n';\n};\n\n/**\n * Combine the data from the `buttons.exportData` method into a string that\n * will be used in the export file.\n *\n * @param\t{DataTable.Api} dt\t\t DataTables API instance\n * @param\t{object}\t\t\t\tconfig Button configuration\n * @return {object}\t\t\t\t\t\t\t The data to export\n */\nvar _exportData = function ( dt, config )\n{\n\tvar newLine = _newLine( config );\n\tvar data = dt.buttons.exportData( config.exportOptions );\n\tvar boundary = config.fieldBoundary;\n\tvar separator = config.fieldSeparator;\n\tvar reBoundary = new RegExp( boundary, 'g' );\n\tvar escapeChar = config.escapeChar !== undefined ?\n\t\tconfig.escapeChar :\n\t\t'\\\\';\n\tvar join = function ( a ) {\n\t\tvar s = '';\n\n\t\t// If there is a field boundary, then we might need to escape it in\n\t\t// the source data\n\t\tfor ( var i=0, ien=a.length ; i<ien ; i++ ) {\n\t\t\tif ( i > 0 ) {\n\t\t\t\ts += separator;\n\t\t\t}\n\n\t\t\ts += boundary ?\n\t\t\t\tboundary + ('' + a[i]).replace( reBoundary, escapeChar+boundary ) + boundary :\n\t\t\t\ta[i];\n\t\t}\n\n\t\treturn s;\n\t};\n\n\tvar header = config.header ? join( data.header )+newLine : '';\n\tvar footer = config.footer && data.footer ? newLine+join( data.footer ) : '';\n\tvar body = [];\n\n\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\tbody.push( join( data.body[i] ) );\n\t}\n\n\treturn {\n\t\tstr: header + body.join( newLine ) + footer,\n\t\trows: body.length\n\t};\n};\n\n/**\n * Older versions of Safari (prior to tech preview 18) don't support the\n * download option required.\n *\n * @return {Boolean} `true` if old Safari\n */\nvar _isDuffSafari = function ()\n{\n\tvar safari = navigator.userAgent.indexOf('Safari') !== -1 &&\n\t\tnavigator.userAgent.indexOf('Chrome') === -1 &&\n\t\tnavigator.userAgent.indexOf('Opera') === -1;\n\n\tif ( ! safari ) {\n\t\treturn false;\n\t}\n\n\tvar version = navigator.userAgent.match( /AppleWebKit\\/(\\d+\\.\\d+)/ );\n\tif ( version && version.length > 1 && version[1]*1 < 603.1 ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Convert from numeric position to letter for column names in Excel\n * @param  {int} n Column number\n * @return {string} Column letter(s) name\n */\nfunction createCellPos( n ){\n\tvar ordA = 'A'.charCodeAt(0);\n\tvar ordZ = 'Z'.charCodeAt(0);\n\tvar len = ordZ - ordA + 1;\n\tvar s = \"\";\n\n\twhile( n >= 0 ) {\n\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\tn = Math.floor(n / len) - 1;\n\t}\n\n\treturn s;\n}\n\ntry {\n\tvar _serialiser = new XMLSerializer();\n\tvar _ieExcel;\n}\ncatch (t) {}\n\n/**\n * Recursively add XML files from an object's structure to a ZIP file. This\n * allows the XSLX file to be easily defined with an object's structure matching\n * the files structure.\n *\n * @param {JSZip} zip ZIP package\n * @param {object} obj Object to add (recursive)\n */\nfunction _addToZip( zip, obj ) {\n\tif ( _ieExcel === undefined ) {\n\t\t// Detect if we are dealing with IE's _awful_ serialiser by seeing if it\n\t\t// drop attributes\n\t\t_ieExcel = _serialiser\n\t\t\t.serializeToString(\n\t\t\t\t( new window.DOMParser() ).parseFromString( excelStrings['xl/worksheets/sheet1.xml'], 'text/xml' )\n\t\t\t)\n\t\t\t.indexOf( 'xmlns:r' ) === -1;\n\t}\n\n\t$.each( obj, function ( name, val ) {\n\t\tif ( $.isPlainObject( val ) ) {\n\t\t\tvar newDir = zip.folder( name );\n\t\t\t_addToZip( newDir, val );\n\t\t}\n\t\telse {\n\t\t\tif ( _ieExcel ) {\n\t\t\t\t// IE's XML serialiser will drop some name space attributes from\n\t\t\t\t// from the root node, so we need to save them. Do this by\n\t\t\t\t// replacing the namespace nodes with a regular attribute that\n\t\t\t\t// we convert back when serialised. Edge does not have this\n\t\t\t\t// issue\n\t\t\t\tvar worksheet = val.childNodes[0];\n\t\t\t\tvar i, ien;\n\t\t\t\tvar attrs = [];\n\n\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\tvar attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar str = _serialiser.serializeToString(val);\n\n\t\t\t// Fix IE's XML\n\t\t\tif ( _ieExcel ) {\n\t\t\t\t// IE doesn't include the XML declaration\n\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t}\n\n\t\t\t\t// Return namespace attributes to being as such\n\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\n\t\t\t\t// Remove testing name space that IE puts into the space preserve attr\n\t\t\t\tstr = str.replace( /xmlns:NS[\\d]+=\"\" NS[\\d]+:/g, '' );\n\t\t\t}\n\n\t\t\t// Safari, IE and Edge will put empty name space attributes onto\n\t\t\t// various elements making them useless. This strips them out\n\t\t\tstr = str.replace( /<([^<>]*?) xmlns=\"\"([^<>]*?)>/g, '<$1 $2>' );\n\n\t\t\tzip.file( name, str );\n\t\t}\n\t} );\n}\n\n/**\n * Create an XML node and add any children, attributes, etc without needing to\n * be verbose in the DOM.\n *\n * @param  {object} doc      XML document\n * @param  {string} nodeName Node name\n * @param  {object} opts     Options - can be `attr` (attributes), `children`\n *   (child nodes) and `text` (text content)\n * @return {node}            Created node\n */\nfunction _createNode( doc, nodeName, opts ) {\n\tvar tempNode = doc.createElement( nodeName );\n\n\tif ( opts ) {\n\t\tif ( opts.attr ) {\n\t\t\t$(tempNode).attr( opts.attr );\n\t\t}\n\n\t\tif ( opts.children ) {\n\t\t\t$.each( opts.children, function ( key, value ) {\n\t\t\t\ttempNode.appendChild( value );\n\t\t\t} );\n\t\t}\n\n\t\tif ( opts.text !== null && opts.text !== undefined ) {\n\t\t\ttempNode.appendChild( doc.createTextNode( opts.text ) );\n\t\t}\n\t}\n\n\treturn tempNode;\n}\n\n/**\n * Get the width for an Excel column based on the contents of that column\n * @param  {object} data Data for export\n * @param  {int}    col  Column index\n * @return {int}         Column width\n */\nfunction _excelColWidth( data, col ) {\n\tvar max = data.header[col].length;\n\tvar len, lineSplit, str;\n\n\tif ( data.footer && data.footer[col].length > max ) {\n\t\tmax = data.footer[col].length;\n\t}\n\n\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\tvar point = data.body[i][col];\n\t\tstr = point !== null && point !== undefined ?\n\t\t\tpoint.toString() :\n\t\t\t'';\n\n\t\t// If there is a newline character, workout the width of the column\n\t\t// based on the longest line in the string\n\t\tif ( str.indexOf('\\n') !== -1 ) {\n\t\t\tlineSplit = str.split('\\n');\n\t\t\tlineSplit.sort( function (a, b) {\n\t\t\t\treturn b.length - a.length;\n\t\t\t} );\n\n\t\t\tlen = lineSplit[0].length;\n\t\t}\n\t\telse {\n\t\t\tlen = str.length;\n\t\t}\n\n\t\tif ( len > max ) {\n\t\t\tmax = len;\n\t\t}\n\n\t\t// Max width rather than having potentially massive column widths\n\t\tif ( max > 40 ) {\n\t\t\treturn 54; // 40 * 1.35\n\t\t}\n\t}\n\n\tmax *= 1.35;\n\n\t// And a min width\n\treturn max > 6 ? max : 6;\n}\n\n// Excel - Pre-defined strings to build a basic XLSX file\nvar excelStrings = {\n\t\"_rels/.rels\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t'</Relationships>',\n\n\t\"xl/_rels/workbook.xml.rels\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t'</Relationships>',\n\n\t\"[Content_Types].xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t'</Types>',\n\n\t\"xl/workbook.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t'<bookViews>'+\n\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t'</bookViews>'+\n\t\t\t'<sheets>'+\n\t\t\t\t'<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t'</sheets>'+\n\t\t\t'<definedNames/>'+\n\t\t'</workbook>',\n\n\t\"xl/worksheets/sheet1.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t'<sheetData/>'+\n\t\t\t'<mergeCells count=\"0\"/>'+\n\t\t'</worksheet>',\n\n\t\"xl/styles.xml\":\n\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t'<numFmts count=\"6\">'+\n\t\t\t\t'<numFmt numFmtId=\"164\" formatCode=\"#,##0.00_-\\ [$$-45C]\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"165\" formatCode=\"&quot;£&quot;#,##0.00\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"166\" formatCode=\"[$€-2]\\ #,##0.00\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"167\" formatCode=\"0.0%\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"168\" formatCode=\"#,##0;(#,##0)\"/>'+\n\t\t\t\t'<numFmt numFmtId=\"169\" formatCode=\"#,##0.00;(#,##0.00)\"/>'+\n\t\t\t'</numFmts>'+\n\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<b />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<i />'+\n\t\t\t\t'</font>'+\n\t\t\t\t'<font>'+\n\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'<u />'+\n\t\t\t\t'</font>'+\n\t\t\t'</fonts>'+\n\t\t\t'<fills count=\"6\">'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+ // Excel appears to use this as a dotted background regardless of values but\n\t\t\t\t\t'<patternFill patternType=\"none\" />'+ // to be valid to the schema, use a patternFill\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t\t'<fill>'+\n\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t'</patternFill>'+\n\t\t\t\t'</fill>'+\n\t\t\t'</fills>'+\n\t\t\t'<borders count=\"2\">'+\n\t\t\t\t'<border>'+\n\t\t\t\t\t'<left />'+\n\t\t\t\t\t'<right />'+\n\t\t\t\t\t'<top />'+\n\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t'<diagonal />'+\n\t\t\t\t'</border>'+\n\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</left>'+\n\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</right>'+\n\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</top>'+\n\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t'<diagonal />'+\n\t\t\t\t'</border>'+\n\t\t\t'</borders>'+\n\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t'</cellStyleXfs>'+\n\t\t\t'<cellXfs count=\"68\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"left\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"center\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"right\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment horizontal=\"fill\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment textRotation=\"90\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyAlignment=\"1\">'+\n\t\t\t\t\t'<alignment wrapText=\"1\"/>'+\n\t\t\t\t'</xf>'+\n\t\t\t\t'<xf numFmtId=\"9\"   fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"165\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"166\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"167\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"168\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"169\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"3\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"4\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"1\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"2\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"14\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\" xfId=\"0\" applyNumberFormat=\"1\"/>'+\n\t\t\t'</cellXfs>'+\n\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t'</cellStyles>'+\n\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t'</styleSheet>'\n};\n// Note we could use 3 `for` loops for the styles, but when gzipped there is\n// virtually no difference in size, since the above can be easily compressed\n\n// Pattern matching for special number formats. Perhaps this should be exposed\n// via an API in future?\n// Ref: section 3.8.30 - built in formatters in open spreadsheet\n//   https://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%204%20-%20Markup%20Language%20Reference.pdf\nvar _excelSpecials = [\n\t{ match: /^\\-?\\d+\\.\\d%$/,               style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.\n\t{ match: /^\\-?\\d+\\.?\\d*%$/,             style: 56, fmt: function (d) { return d/100; } }, // Percent\n\t{ match: /^\\-?\\$[\\d,]+.?\\d*$/,          style: 57 }, // Dollars\n\t{ match: /^\\-?£[\\d,]+.?\\d*$/,           style: 58 }, // Pounds\n\t{ match: /^\\-?€[\\d,]+.?\\d*$/,           style: 59 }, // Euros\n\t{ match: /^\\-?\\d+$/,                    style: 65 }, // Numbers without thousand separators\n\t{ match: /^\\-?\\d+\\.\\d{2}$/,             style: 66 }, // Numbers 2 d.p. without thousands separators\n\t{ match: /^\\([\\d,]+\\)$/,                style: 61, fmt: function (d) { return -1 * d.replace(/[\\(\\)]/g, ''); } },  // Negative numbers indicated by brackets\n\t{ match: /^\\([\\d,]+\\.\\d{2}\\)$/,         style: 62, fmt: function (d) { return -1 * d.replace(/[\\(\\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.\n\t{ match: /^\\-?[\\d,]+$/,                 style: 63 }, // Numbers with thousand separators\n\t{ match: /^\\-?[\\d,]+\\.\\d{2}$/,          style: 64 },\n\t{ match: /^[\\d]{4}\\-[\\d]{2}\\-[\\d]{2}$/, style: 67, fmt: function (d) {return Math.round(25569 + (Date.parse(d) / (86400 * 1000)));}} //Date yyyy-mm-dd\n];\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Buttons\n */\n\n//\n// Copy to clipboard\n//\nDataTable.ext.buttons.copyHtml5 = {\n\tclassName: 'buttons-copy buttons-html5',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.copy', 'Copy' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\tvar that = this;\n\t\tvar exportData = _exportData( dt, config );\n\t\tvar info = dt.buttons.exportInfo( config );\n\t\tvar newline = _newLine(config);\n\t\tvar output = exportData.str;\n\t\tvar hiddenDiv = $('<div/>')\n\t\t\t.css( {\n\t\t\t\theight: 1,\n\t\t\t\twidth: 1,\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tposition: 'fixed',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t} );\n\n\t\tif ( info.title ) {\n\t\t\toutput = info.title + newline + newline + output;\n\t\t}\n\n\t\tif ( info.messageTop ) {\n\t\t\toutput = info.messageTop + newline + newline + output;\n\t\t}\n\n\t\tif ( info.messageBottom ) {\n\t\t\toutput = output + newline + newline + info.messageBottom;\n\t\t}\n\n\t\tif ( config.customize ) {\n\t\t\toutput = config.customize( output, config, dt );\n\t\t}\n\n\t\tvar textarea = $('<textarea readonly/>')\n\t\t\t.val( output )\n\t\t\t.appendTo( hiddenDiv );\n\n\t\t// For browsers that support the copy execCommand, try to use it\n\t\tif ( document.queryCommandSupported('copy') ) {\n\t\t\thiddenDiv.appendTo( dt.table().container() );\n\t\t\ttextarea[0].focus();\n\t\t\ttextarea[0].select();\n\n\t\t\ttry {\n\t\t\t\tvar successful = document.execCommand( 'copy' );\n\t\t\t\thiddenDiv.remove();\n\n\t\t\t\tif (successful) {\n\t\t\t\t\tdt.buttons.info(\n\t\t\t\t\t\tdt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ),\n\t\t\t\t\t\tdt.i18n( 'buttons.copySuccess', {\n\t\t\t\t\t\t\t1: 'Copied one row to clipboard',\n\t\t\t\t\t\t\t_: 'Copied %d rows to clipboard'\n\t\t\t\t\t\t}, exportData.rows ),\n\t\t\t\t\t\t2000\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.processing( false );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (t) {}\n\t\t}\n\n\t\t// Otherwise we show the text box and instruct the user to use it\n\t\tvar message = $('<span>'+dt.i18n( 'buttons.copyKeys',\n\t\t\t\t'Press <i>ctrl</i> or <i>\\u2318</i> + <i>C</i> to copy the table data<br>to your system clipboard.<br><br>'+\n\t\t\t\t'To cancel, click this message or press escape.' )+'</span>'\n\t\t\t)\n\t\t\t.append( hiddenDiv );\n\n\t\tdt.buttons.info( dt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ), message, 0 );\n\n\t\t// Select the text so when the user activates their system clipboard\n\t\t// it will copy that text\n\t\ttextarea[0].focus();\n\t\ttextarea[0].select();\n\n\t\t// Event to hide the message when the user is done\n\t\tvar container = $(message).closest('.dt-button-info');\n\t\tvar close = function () {\n\t\t\tcontainer.off( 'click.buttons-copy' );\n\t\t\t$(document).off( '.buttons-copy' );\n\t\t\tdt.buttons.info( false );\n\t\t};\n\n\t\tcontainer.on( 'click.buttons-copy', close );\n\t\t$(document)\n\t\t\t.on( 'keydown.buttons-copy', function (e) {\n\t\t\t\tif ( e.keyCode === 27 ) { // esc\n\t\t\t\t\tclose();\n\t\t\t\t\tthat.processing( false );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'copy.buttons-copy cut.buttons-copy', function () {\n\t\t\t\tclose();\n\t\t\t\tthat.processing( false );\n\t\t\t} );\n\t},\n\n\texportOptions: {},\n\n\tfieldSeparator: '\\t',\n\n\tfieldBoundary: '',\n\n\theader: true,\n\n\tfooter: false,\n\n\ttitle: '*',\n\n\tmessageTop: '*',\n\n\tmessageBottom: '*'\n};\n\n//\n// CSV export\n//\nDataTable.ext.buttons.csvHtml5 = {\n\tbom: false,\n\n\tclassName: 'buttons-csv buttons-html5',\n\n\tavailable: function () {\n\t\treturn window.FileReader !== undefined && window.Blob;\n\t},\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.csv', 'CSV' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\t// Set the text\n\t\tvar output = _exportData( dt, config ).str;\n\t\tvar info = dt.buttons.exportInfo(config);\n\t\tvar charset = config.charset;\n\n\t\tif ( config.customize ) {\n\t\t\toutput = config.customize( output, config, dt );\n\t\t}\n\n\t\tif ( charset !== false ) {\n\t\t\tif ( ! charset ) {\n\t\t\t\tcharset = document.characterSet || document.charset;\n\t\t\t}\n\n\t\t\tif ( charset ) {\n\t\t\t\tcharset = ';charset='+charset;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcharset = '';\n\t\t}\n\n\t\tif ( config.bom ) {\n\t\t\toutput = '\\ufeff' + output;\n\t\t}\n\n\t\t_saveAs(\n\t\t\tnew Blob( [output], {type: 'text/csv'+charset} ),\n\t\t\tinfo.filename,\n\t\t\ttrue\n\t\t);\n\n\t\tthis.processing( false );\n\t},\n\n\tfilename: '*',\n\n\textension: '.csv',\n\n\texportOptions: {},\n\n\tfieldSeparator: ',',\n\n\tfieldBoundary: '\"',\n\n\tescapeChar: '\"',\n\n\tcharset: null,\n\n\theader: true,\n\n\tfooter: false\n};\n\n//\n// Excel (xlsx) export\n//\nDataTable.ext.buttons.excelHtml5 = {\n\tclassName: 'buttons-excel buttons-html5',\n\n\tavailable: function () {\n\t\treturn window.FileReader !== undefined && _jsZip() !== undefined && ! _isDuffSafari() && _serialiser;\n\t},\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.excel', 'Excel' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\tvar that = this;\n\t\tvar rowPos = 0;\n\t\tvar dataStartRow, dataEndRow;\n\t\tvar getXml = function ( type ) {\n\t\t\tvar str = excelStrings[ type ];\n\n\t\t\t//str = str.replace( /xmlns:/g, 'xmlns_' ).replace( /mc:/g, 'mc_' );\n\n\t\t\treturn $.parseXML( str );\n\t\t};\n\t\tvar rels = getXml('xl/worksheets/sheet1.xml');\n\t\tvar relsGet = rels.getElementsByTagName( \"sheetData\" )[0];\n\n\t\tvar xlsx = {\n\t\t\t_rels: {\n\t\t\t\t\".rels\": getXml('_rels/.rels')\n\t\t\t},\n\t\t\txl: {\n\t\t\t\t_rels: {\n\t\t\t\t\t\"workbook.xml.rels\": getXml('xl/_rels/workbook.xml.rels')\n\t\t\t\t},\n\t\t\t\t\"workbook.xml\": getXml('xl/workbook.xml'),\n\t\t\t\t\"styles.xml\": getXml('xl/styles.xml'),\n\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t}\n\n\t\t\t},\n\t\t\t\"[Content_Types].xml\": getXml('[Content_Types].xml')\n\t\t};\n\n\t\tvar data = dt.buttons.exportData( config.exportOptions );\n\t\tvar currentRow, rowNode;\n\t\tvar addRow = function ( row ) {\n\t\t\tcurrentRow = rowPos+1;\n\t\t\trowNode = _createNode( rels, \"row\", { attr: {r:currentRow} } );\n\n\t\t\tfor ( var i=0, ien=row.length ; i<ien ; i++ ) {\n\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\tvar cellId = createCellPos(i) + '' + currentRow;\n\t\t\t\tvar cell = null;\n\n\t\t\t\t// For null, undefined of blank cell, continue so it doesn't create the _createNode\n\t\t\t\tif ( row[i] === null || row[i] === undefined || row[i] === '' ) {\n\t\t\t\t\tif ( config.createEmptyCells === true ) {\n\t\t\t\t\t\trow[i] = '';\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar originalContent = row[i];\n\t\t\t\trow[i] = typeof row[i].trim === 'function'\n\t\t\t\t\t? row[i].trim()\n\t\t\t\t\t: row[i];\n\n\t\t\t\t// Special number formatting options\n\t\t\t\tfor ( var j=0, jen=_excelSpecials.length ; j<jen ; j++ ) {\n\t\t\t\t\tvar special = _excelSpecials[j];\n\n\t\t\t\t\t// TODO Need to provide the ability for the specials to say\n\t\t\t\t\t// if they are returning a string, since at the moment it is\n\t\t\t\t\t// assumed to be a number\n\t\t\t\t\tif ( row[i].match && ! row[i].match(/^0\\d+/) && row[i].match( special.match ) ) {\n\t\t\t\t\t\tvar val = row[i].replace(/[^\\d\\.\\-]/g, '');\n\n\t\t\t\t\t\tif ( special.fmt ) {\n\t\t\t\t\t\t\tval = special.fmt( val );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tr: cellId,\n\t\t\t\t\t\t\t\ts: special.style\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t_createNode( rels, 'v', { text: val } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( ! cell ) {\n\t\t\t\t\tif ( typeof row[i] === 'number' || (\n\t\t\t\t\t\trow[i].match &&\n\t\t\t\t\t\trow[i].match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t! row[i].match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros\n\t\t\t\t\t\t// or a negative anywhere but the start\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t_createNode( rels, 'v', { text: row[i] } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// String output - replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! originalContent.replace ?\n\t\t\t\t\t\t\toriginalContent :\n\t\t\t\t\t\t\toriginalContent.replace(/[\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x9F]/g, '');\n\n\t\t\t\t\t\tcell = _createNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: _createNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: _createNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text,\n\t\t\t\t\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\t\t\t\t\t'xml:space': 'preserve'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trowNode.appendChild( cell );\n\t\t\t}\n\n\t\t\trelsGet.appendChild(rowNode);\n\t\t\trowPos++;\n\t\t};\n\n\t\tif ( config.customizeData ) {\n\t\t\tconfig.customizeData( data );\n\t\t}\n\n\t\tvar mergeCells = function ( row, colspan ) {\n\t\t\tvar mergeCells = $('mergeCells', rels);\n\n\t\t\tmergeCells[0].appendChild( _createNode( rels, 'mergeCell', {\n\t\t\t\tattr: {\n\t\t\t\t\tref: 'A'+row+':'+createCellPos(colspan)+row\n\t\t\t\t}\n\t\t\t} ) );\n\t\t\tmergeCells.attr( 'count', parseFloat(mergeCells.attr( 'count' ))+1 );\n\t\t\t$('row:eq('+(row-1)+') c', rels).attr( 's', '51' ); // centre\n\t\t};\n\n\t\t// Title and top messages\n\t\tvar exportInfo = dt.buttons.exportInfo( config );\n\t\tif ( exportInfo.title ) {\n\t\t\taddRow( [exportInfo.title], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\t\tif ( exportInfo.messageTop ) {\n\t\t\taddRow( [exportInfo.messageTop], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\n\t\t// Table itself\n\t\tif ( config.header ) {\n\t\t\taddRow( data.header, rowPos );\n\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t}\n\t\n\t\tdataStartRow = rowPos;\n\n\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\taddRow( data.body[n], rowPos );\n\t\t}\n\t\n\t\tdataEndRow = rowPos;\n\n\t\tif ( config.footer && data.footer ) {\n\t\t\taddRow( data.footer, rowPos);\n\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t}\n\n\t\t// Below the table\n\t\tif ( exportInfo.messageBottom ) {\n\t\t\taddRow( [exportInfo.messageBottom], rowPos );\n\t\t\tmergeCells( rowPos, data.header.length-1 );\n\t\t}\n\n\t\t// Set column widths\n\t\tvar cols = _createNode( rels, 'cols' );\n\t\t$('worksheet', rels).prepend( cols );\n\n\t\tfor ( var i=0, ien=data.header.length ; i<ien ; i++ ) {\n\t\t\tcols.appendChild( _createNode( rels, 'col', {\n\t\t\t\tattr: {\n\t\t\t\t\tmin: i+1,\n\t\t\t\t\tmax: i+1,\n\t\t\t\t\twidth: _excelColWidth( data, i ),\n\t\t\t\t\tcustomWidth: 1\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\t// Workbook modifications\n\t\tvar workbook = xlsx.xl['workbook.xml'];\n\n\t\t$( 'sheets sheet', workbook ).attr( 'name', _sheetname( config ) );\n\n\t\t// Auto filter for columns\n\t\tif ( config.autoFilter ) {\n\t\t\t$('mergeCells', rels).before( _createNode( rels, 'autoFilter', {\n\t\t\t\tattr: {\n\t\t\t\t\tref: 'A'+dataStartRow+':'+createCellPos(data.header.length-1)+dataEndRow\n\t\t\t\t}\n\t\t\t} ) );\n\n\t\t\t$('definedNames', workbook).append( _createNode( workbook, 'definedName', {\n\t\t\t\tattr: {\n\t\t\t\t\tname: '_xlnm._FilterDatabase',\n\t\t\t\t\tlocalSheetId: '0',\n\t\t\t\t\thidden: 1\n\t\t\t\t},\n\t\t\t\ttext: _sheetname(config)+'!$A$'+dataStartRow+':'+createCellPos(data.header.length-1)+dataEndRow\n\t\t\t} ) );\n\t\t}\n\n\t\t// Let the developer customise the document if they want to\n\t\tif ( config.customize ) {\n\t\t\tconfig.customize( xlsx, config, dt );\n\t\t}\n\n\t\t// Excel doesn't like an empty mergeCells tag\n\t\tif ( $('mergeCells', rels).children().length === 0 ) {\n\t\t\t$('mergeCells', rels).remove();\n\t\t}\n\n\t\tvar jszip = _jsZip();\n\t\tvar zip = new jszip();\n\t\tvar zipConfig = {\n\t\t\ttype: 'blob',\n\t\t\tmimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t};\n\n\t\t_addToZip( zip, xlsx );\n\n\t\tif ( zip.generateAsync ) {\n\t\t\t// JSZip 3+\n\t\t\tzip\n\t\t\t\t.generateAsync( zipConfig )\n\t\t\t\t.then( function ( blob ) {\n\t\t\t\t\t_saveAs( blob, exportInfo.filename );\n\t\t\t\t\tthat.processing( false );\n\t\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\t// JSZip 2.5\n\t\t\t_saveAs(\n\t\t\t\tzip.generate( zipConfig ),\n\t\t\t\texportInfo.filename\n\t\t\t);\n\t\t\tthis.processing( false );\n\t\t}\n\t},\n\n\tfilename: '*',\n\n\textension: '.xlsx',\n\n\texportOptions: {},\n\n\theader: true,\n\n\tfooter: false,\n\n\ttitle: '*',\n\n\tmessageTop: '*',\n\n\tmessageBottom: '*',\n\n\tcreateEmptyCells: false,\n\n\tautoFilter: false,\n\n\tsheetName: ''\n};\n\n//\n// PDF export - using pdfMake - http://pdfmake.org\n//\nDataTable.ext.buttons.pdfHtml5 = {\n\tclassName: 'buttons-pdf buttons-html5',\n\n\tavailable: function () {\n\t\treturn window.FileReader !== undefined && _pdfMake();\n\t},\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.pdf', 'PDF' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tthis.processing( true );\n\n\t\tvar that = this;\n\t\tvar data = dt.buttons.exportData( config.exportOptions );\n\t\tvar info = dt.buttons.exportInfo( config );\n\t\tvar rows = [];\n\n\t\tif ( config.header ) {\n\t\t\trows.push( $.map( data.header, function ( d ) {\n\t\t\t\treturn {\n\t\t\t\t\ttext: typeof d === 'string' ? d : d+'',\n\t\t\t\t\tstyle: 'tableHeader'\n\t\t\t\t};\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\t\trows.push( $.map( data.body[i], function ( d ) {\n\t\t\t\tif ( d === null || d === undefined ) {\n\t\t\t\t\td = '';\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\ttext: typeof d === 'string' ? d : d+'',\n\t\t\t\t\tstyle: i % 2 ? 'tableBodyEven' : 'tableBodyOdd'\n\t\t\t\t};\n\t\t\t} ) );\n\t\t}\n\n\t\tif ( config.footer && data.footer) {\n\t\t\trows.push( $.map( data.footer, function ( d ) {\n\t\t\t\treturn {\n\t\t\t\t\ttext: typeof d === 'string' ? d : d+'',\n\t\t\t\t\tstyle: 'tableFooter'\n\t\t\t\t};\n\t\t\t} ) );\n\t\t}\n\n\t\tvar doc = {\n\t\t\tpageSize: config.pageSize,\n\t\t\tpageOrientation: config.orientation,\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\ttable: {\n\t\t\t\t\t\theaderRows: 1,\n\t\t\t\t\t\tbody: rows\n\t\t\t\t\t},\n\t\t\t\t\tlayout: 'noBorders'\n\t\t\t\t}\n\t\t\t],\n\t\t\tstyles: {\n\t\t\t\ttableHeader: {\n\t\t\t\t\tbold: true,\n\t\t\t\t\tfontSize: 11,\n\t\t\t\t\tcolor: 'white',\n\t\t\t\t\tfillColor: '#2d4154',\n\t\t\t\t\talignment: 'center'\n\t\t\t\t},\n\t\t\t\ttableBodyEven: {},\n\t\t\t\ttableBodyOdd: {\n\t\t\t\t\tfillColor: '#f3f3f3'\n\t\t\t\t},\n\t\t\t\ttableFooter: {\n\t\t\t\t\tbold: true,\n\t\t\t\t\tfontSize: 11,\n\t\t\t\t\tcolor: 'white',\n\t\t\t\t\tfillColor: '#2d4154'\n\t\t\t\t},\n\t\t\t\ttitle: {\n\t\t\t\t\talignment: 'center',\n\t\t\t\t\tfontSize: 15\n\t\t\t\t},\n\t\t\t\tmessage: {}\n\t\t\t},\n\t\t\tdefaultStyle: {\n\t\t\t\tfontSize: 10\n\t\t\t}\n\t\t};\n\n\t\tif ( info.messageTop ) {\n\t\t\tdoc.content.unshift( {\n\t\t\t\ttext: info.messageTop,\n\t\t\t\tstyle: 'message',\n\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( info.messageBottom ) {\n\t\t\tdoc.content.push( {\n\t\t\t\ttext: info.messageBottom,\n\t\t\t\tstyle: 'message',\n\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( info.title ) {\n\t\t\tdoc.content.unshift( {\n\t\t\t\ttext: info.title,\n\t\t\t\tstyle: 'title',\n\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t} );\n\t\t}\n\n\t\tif ( config.customize ) {\n\t\t\tconfig.customize( doc, config, dt );\n\t\t}\n\n\t\tvar pdf = _pdfMake().createPdf( doc );\n\n\t\tif ( config.download === 'open' && ! _isDuffSafari() ) {\n\t\t\tpdf.open();\n\t\t}\n\t\telse {\n\t\t\tpdf.download( info.filename );\n\t\t}\n\n\t\tthis.processing( false );\n\t},\n\n\ttitle: '*',\n\n\tfilename: '*',\n\n\textension: '.pdf',\n\n\texportOptions: {},\n\n\torientation: 'portrait',\n\n\tpageSize: 'A4',\n\n\theader: true,\n\n\tfooter: false,\n\n\tmessageTop: '*',\n\n\tmessageBottom: '*',\n\n\tcustomize: null,\n\n\tdownload: 'download'\n};\n\n\nreturn DataTable.Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/buttons.print.js",
    "content": "/*!\n * Print button for Buttons and DataTables.\n * 2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Buttons ) {\n\t\t\t\trequire('datatables.net-buttons')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nvar _link = document.createElement( 'a' );\n\n/**\n * Clone link and style tags, taking into account the need to change the source\n * path.\n *\n * @param  {node}     el Element to convert\n */\nvar _styleToAbs = function( el ) {\n\tvar url;\n\tvar clone = $(el).clone()[0];\n\tvar linkHost;\n\n\tif ( clone.nodeName.toLowerCase() === 'link' ) {\n\t\tclone.href = _relToAbs( clone.href );\n\t}\n\n\treturn clone.outerHTML;\n};\n\n/**\n * Convert a URL from a relative to an absolute address so it will work\n * correctly in the popup window which has no base URL.\n *\n * @param  {string} href URL\n */\nvar _relToAbs = function( href ) {\n\t// Assign to a link on the original page so the browser will do all the\n\t// hard work of figuring out where the file actually is\n\t_link.href = href;\n\tvar linkHost = _link.host;\n\n\t// IE doesn't have a trailing slash on the host\n\t// Chrome has it on the pathname\n\tif ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) {\n\t\tlinkHost += '/';\n\t}\n\n\treturn _link.protocol+\"//\"+linkHost+_link.pathname+_link.search;\n};\n\n\nDataTable.ext.buttons.print = {\n\tclassName: 'buttons-print',\n\n\ttext: function ( dt ) {\n\t\treturn dt.i18n( 'buttons.print', 'Print' );\n\t},\n\n\taction: function ( e, dt, button, config ) {\n\t\tvar data = dt.buttons.exportData(\n\t\t\t$.extend( {decodeEntities: false}, config.exportOptions ) // XSS protection\n\t\t);\n\t\tvar exportInfo = dt.buttons.exportInfo( config );\n\t\tvar columnClasses = dt\n\t\t\t.columns( config.exportOptions.columns )\n\t\t\t.flatten()\n\t\t\t.map( function (idx) {\n\t\t\t\treturn dt.settings()[0].aoColumns[dt.column(idx).index()].sClass;\n\t\t\t} )\n\t\t\t.toArray();\n\n\t\tvar addRow = function ( d, tag ) {\n\t\t\tvar str = '<tr>';\n\n\t\t\tfor ( var i=0, ien=d.length ; i<ien ; i++ ) {\n\t\t\t\t// null and undefined aren't useful in the print output\n\t\t\t\tvar dataOut = d[i] === null || d[i] === undefined ?\n\t\t\t\t\t'' :\n\t\t\t\t\td[i];\n\t\t\t\tvar classAttr = columnClasses[i] ?\n\t\t\t\t\t'class=\"'+columnClasses[i]+'\"' :\n\t\t\t\t\t'';\n\n\t\t\t\tstr += '<'+tag+' '+classAttr+'>'+dataOut+'</'+tag+'>';\n\t\t\t}\n\n\t\t\treturn str + '</tr>';\n\t\t};\n\n\t\t// Construct a table for printing\n\t\tvar html = '<table class=\"'+dt.table().node().className+'\">';\n\n\t\tif ( config.header ) {\n\t\t\thtml += '<thead>'+ addRow( data.header, 'th' ) +'</thead>';\n\t\t}\n\n\t\thtml += '<tbody>';\n\t\tfor ( var i=0, ien=data.body.length ; i<ien ; i++ ) {\n\t\t\thtml += addRow( data.body[i], 'td' );\n\t\t}\n\t\thtml += '</tbody>';\n\n\t\tif ( config.footer && data.footer ) {\n\t\t\thtml += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';\n\t\t}\n\t\thtml += '</table>';\n\n\t\t// Open a new window for the printable table\n\t\tvar win = window.open( '', '' );\n\t\twin.document.close();\n\n\t\t// Inject the title and also a copy of the style and link tags from this\n\t\t// document so the table can retain its base styling. Note that we have\n\t\t// to use string manipulation as IE won't allow elements to be created\n\t\t// in the host document and then appended to the new window.\n\t\tvar head = '<title>'+exportInfo.title+'</title>';\n\t\t$('style, link').each( function () {\n\t\t\thead += _styleToAbs( this );\n\t\t} );\n\n\t\ttry {\n\t\t\twin.document.head.innerHTML = head; // Work around for Edge\n\t\t}\n\t\tcatch (e) {\n\t\t\t$(win.document.head).html( head ); // Old IE\n\t\t}\n\n\t\t// Inject the table and other surrounding information\n\t\twin.document.body.innerHTML =\n\t\t\t'<h1>'+exportInfo.title+'</h1>'+\n\t\t\t'<div>'+(exportInfo.messageTop || '')+'</div>'+\n\t\t\thtml+\n\t\t\t'<div>'+(exportInfo.messageBottom || '')+'</div>';\n\n\t\t$(win.document.body).addClass('dt-print-view');\n\n\t\t$('img', win.document.body).each( function ( i, img ) {\n\t\t\timg.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );\n\t\t} );\n\n\t\tif ( config.customize ) {\n\t\t\tconfig.customize( win, config, dt );\n\t\t}\n\n\t\t// Allow stylesheets time to load\n\t\tvar autoPrint = function () {\n\t\t\tif ( config.autoPrint ) {\n\t\t\t\twin.print(); // blocking - so close will not\n\t\t\t\twin.close(); // execute until this is done\n\t\t\t}\n\t\t};\n\n\t\tif ( navigator.userAgent.match(/Trident\\/\\d.\\d/) ) { // IE needs to call this without a setTimeout\n\t\t\tautoPrint();\n\t\t}\n\t\telse {\n\t\t\twin.setTimeout( autoPrint, 1000 );\n\t\t}\n\t},\n\n\ttitle: '*',\n\n\tmessageTop: '*',\n\n\tmessageBottom: '*',\n\n\texportOptions: {},\n\n\theader: true,\n\n\tfooter: false,\n\n\tautoPrint: true,\n\n\tcustomize: null\n};\n\n\nreturn DataTable.Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-buttons/js/dataTables.buttons.js",
    "content": "/*! Buttons for DataTables 1.7.0\n * ©2016-2021 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n// Used for namespacing events added to the document by each instance, so they\n// can be removed on destroy\nvar _instCounter = 0;\n\n// Button namespacing counter for namespacing events on individual buttons\nvar _buttonCounter = 0;\n\nvar _dtButtons = DataTable.ext.buttons;\n\n// Allow for jQuery slim\nfunction _fadeIn(el, duration, fn) {\n\tif ($.fn.animate) {\n\t\tel\n\t\t\t.stop()\n\t\t\t.fadeIn( duration, fn );\n\t}\n\telse {\n\t\tel.css('display', 'block');\n\n\t\tif (fn) {\n\t\t\tfn.call(el);\n\t\t}\n\t}\n}\n\nfunction _fadeOut(el, duration, fn) {\n\tif ($.fn.animate) {\n\t\tel\n\t\t\t.stop()\n\t\t\t.fadeOut( duration, fn );\n\t}\n\telse {\n\t\tel.css('display', 'none');\n\t\t\n\t\tif (fn) {\n\t\t\tfn.call(el);\n\t\t}\n\t}\n}\n\n/**\n * [Buttons description]\n * @param {[type]}\n * @param {[type]}\n */\nvar Buttons = function( dt, config )\n{\n\t// If not created with a `new` keyword then we return a wrapper function that\n\t// will take the settings object for a DT. This allows easy use of new instances\n\t// with the `layout` option - e.g. `topLeft: $.fn.dataTable.Buttons( ... )`.\n\tif ( !(this instanceof Buttons) ) {\n\t\treturn function (settings) {\n\t\t\treturn new Buttons( settings, dt ).container();\n\t\t};\n\t}\n\n\t// If there is no config set it to an empty object\n\tif ( typeof( config ) === 'undefined' ) {\n\t\tconfig = {};\t\n\t}\n\t\n\t// Allow a boolean true for defaults\n\tif ( config === true ) {\n\t\tconfig = {};\n\t}\n\n\t// For easy configuration of buttons an array can be given\n\tif ( Array.isArray( config ) ) {\n\t\tconfig = { buttons: config };\n\t}\n\n\tthis.c = $.extend( true, {}, Buttons.defaults, config );\n\n\t// Don't want a deep copy for the buttons\n\tif ( config.buttons ) {\n\t\tthis.c.buttons = config.buttons;\n\t}\n\n\tthis.s = {\n\t\tdt: new DataTable.Api( dt ),\n\t\tbuttons: [],\n\t\tlistenKeys: '',\n\t\tnamespace: 'dtb'+(_instCounter++)\n\t};\n\n\tthis.dom = {\n\t\tcontainer: $('<'+this.c.dom.container.tag+'/>')\n\t\t\t.addClass( this.c.dom.container.className )\n\t};\n\n\tthis._constructor();\n};\n\n\n$.extend( Buttons.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public methods\n\t */\n\n\t/**\n\t * Get the action of a button\n\t * @param  {int|string} Button index\n\t * @return {function}\n\t *//**\n\t * Set the action of a button\n\t * @param  {node} node Button element\n\t * @param  {function} action Function to set\n\t * @return {Buttons} Self for chaining\n\t */\n\taction: function ( node, action )\n\t{\n\t\tvar button = this._nodeToButton( node );\n\n\t\tif ( action === undefined ) {\n\t\t\treturn button.conf.action;\n\t\t}\n\n\t\tbutton.conf.action = action;\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Add an active class to the button to make to look active or get current\n\t * active state.\n\t * @param  {node} node Button element\n\t * @param  {boolean} [flag] Enable / disable flag\n\t * @return {Buttons} Self for chaining or boolean for getter\n\t */\n\tactive: function ( node, flag ) {\n\t\tvar button = this._nodeToButton( node );\n\t\tvar klass = this.c.dom.button.active;\n\t\tvar jqNode = $(button.node);\n\n\t\tif ( flag === undefined ) {\n\t\t\treturn jqNode.hasClass( klass );\n\t\t}\n\n\t\tjqNode.toggleClass( klass, flag === undefined ? true : flag );\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Add a new button\n\t * @param {object} config Button configuration object, base string name or function\n\t * @param {int|string} [idx] Button index for where to insert the button\n\t * @return {Buttons} Self for chaining\n\t */\n\tadd: function ( config, idx )\n\t{\n\t\tvar buttons = this.s.buttons;\n\n\t\tif ( typeof idx === 'string' ) {\n\t\t\tvar split = idx.split('-');\n\t\t\tvar base = this.s;\n\n\t\t\tfor ( var i=0, ien=split.length-1 ; i<ien ; i++ ) {\n\t\t\t\tbase = base.buttons[ split[i]*1 ];\n\t\t\t}\n\n\t\t\tbuttons = base.buttons;\n\t\t\tidx = split[ split.length-1 ]*1;\n\t\t}\n\n\t\tthis._expandButton( buttons, config, base !== undefined, idx );\n\t\tthis._draw();\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Get the container node for the buttons\n\t * @return {jQuery} Buttons node\n\t */\n\tcontainer: function ()\n\t{\n\t\treturn this.dom.container;\n\t},\n\n\t/**\n\t * Disable a button\n\t * @param  {node} node Button node\n\t * @return {Buttons} Self for chaining\n\t */\n\tdisable: function ( node ) {\n\t\tvar button = this._nodeToButton( node );\n\n\t\t$(button.node)\n\t\t\t.addClass( this.c.dom.button.disabled )\n\t\t\t.attr('disabled', true);\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Destroy the instance, cleaning up event handlers and removing DOM\n\t * elements\n\t * @return {Buttons} Self for chaining\n\t */\n\tdestroy: function ()\n\t{\n\t\t// Key event listener\n\t\t$('body').off( 'keyup.'+this.s.namespace );\n\n\t\t// Individual button destroy (so they can remove their own events if\n\t\t// needed). Take a copy as the array is modified by `remove`\n\t\tvar buttons = this.s.buttons.slice();\n\t\tvar i, ien;\n\t\t\n\t\tfor ( i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tthis.remove( buttons[i].node );\n\t\t}\n\n\t\t// Container\n\t\tthis.dom.container.remove();\n\n\t\t// Remove from the settings object collection\n\t\tvar buttonInsts = this.s.dt.settings()[0];\n\n\t\tfor ( i=0, ien=buttonInsts.length ; i<ien ; i++ ) {\n\t\t\tif ( buttonInsts.inst === this ) {\n\t\t\t\tbuttonInsts.splice( i, 1 );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Enable / disable a button\n\t * @param  {node} node Button node\n\t * @param  {boolean} [flag=true] Enable / disable flag\n\t * @return {Buttons} Self for chaining\n\t */\n\tenable: function ( node, flag )\n\t{\n\t\tif ( flag === false ) {\n\t\t\treturn this.disable( node );\n\t\t}\n\n\t\tvar button = this._nodeToButton( node );\n\t\t$(button.node)\n\t\t\t.removeClass( this.c.dom.button.disabled )\n\t\t\t.removeAttr('disabled');\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Get the instance name for the button set selector\n\t * @return {string} Instance name\n\t */\n\tname: function ()\n\t{\n\t\treturn this.c.name;\n\t},\n\n\t/**\n\t * Get a button's node of the buttons container if no button is given\n\t * @param  {node} [node] Button node\n\t * @return {jQuery} Button element, or container\n\t */\n\tnode: function ( node )\n\t{\n\t\tif ( ! node ) {\n\t\t\treturn this.dom.container;\n\t\t}\n\n\t\tvar button = this._nodeToButton( node );\n\t\treturn $(button.node);\n\t},\n\n\t/**\n\t * Set / get a processing class on the selected button\n\t * @param {element} node Triggering button node\n\t * @param  {boolean} flag true to add, false to remove, undefined to get\n\t * @return {boolean|Buttons} Getter value or this if a setter.\n\t */\n\tprocessing: function ( node, flag )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar button = this._nodeToButton( node );\n\n\t\tif ( flag === undefined ) {\n\t\t\treturn $(button.node).hasClass( 'processing' );\n\t\t}\n\n\t\t$(button.node).toggleClass( 'processing', flag );\n\n\t\t$(dt.table().node()).triggerHandler( 'buttons-processing.dt', [\n\t\t\tflag, dt.button( node ), dt, $(node), button.conf\n\t\t] );\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Remove a button.\n\t * @param  {node} node Button node\n\t * @return {Buttons} Self for chaining\n\t */\n\tremove: function ( node )\n\t{\n\t\tvar button = this._nodeToButton( node );\n\t\tvar host = this._nodeToHost( node );\n\t\tvar dt = this.s.dt;\n\n\t\t// Remove any child buttons first\n\t\tif ( button.buttons.length ) {\n\t\t\tfor ( var i=button.buttons.length-1 ; i>=0 ; i-- ) {\n\t\t\t\tthis.remove( button.buttons[i].node );\n\t\t\t}\n\t\t}\n\n\t\t// Allow the button to remove event handlers, etc\n\t\tif ( button.conf.destroy ) {\n\t\t\tbutton.conf.destroy.call( dt.button(node), dt, $(node), button.conf );\n\t\t}\n\n\t\tthis._removeKey( button.conf );\n\n\t\t$(button.node).remove();\n\n\t\tvar idx = $.inArray( button, host );\n\t\thost.splice( idx, 1 );\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Get the text for a button\n\t * @param  {int|string} node Button index\n\t * @return {string} Button text\n\t *//**\n\t * Set the text for a button\n\t * @param  {int|string|function} node Button index\n\t * @param  {string} label Text\n\t * @return {Buttons} Self for chaining\n\t */\n\ttext: function ( node, label )\n\t{\n\t\tvar button = this._nodeToButton( node );\n\t\tvar buttonLiner = this.c.dom.collection.buttonLiner;\n\t\tvar linerTag = button.inCollection && buttonLiner && buttonLiner.tag ?\n\t\t\tbuttonLiner.tag :\n\t\t\tthis.c.dom.buttonLiner.tag;\n\t\tvar dt = this.s.dt;\n\t\tvar jqNode = $(button.node);\n\t\tvar text = function ( opt ) {\n\t\t\treturn typeof opt === 'function' ?\n\t\t\t\topt( dt, jqNode, button.conf ) :\n\t\t\t\topt;\n\t\t};\n\n\t\tif ( label === undefined ) {\n\t\t\treturn text( button.conf.text );\n\t\t}\n\n\t\tbutton.conf.text = label;\n\n\t\tif ( linerTag ) {\n\t\t\tjqNode.children( linerTag ).html( text(label) );\n\t\t}\n\t\telse {\n\t\t\tjqNode.html( text(label) );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Buttons constructor\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar dtSettings = dt.settings()[0];\n\t\tvar buttons =  this.c.buttons;\n\n\t\tif ( ! dtSettings._buttons ) {\n\t\t\tdtSettings._buttons = [];\n\t\t}\n\n\t\tdtSettings._buttons.push( {\n\t\t\tinst: this,\n\t\t\tname: this.c.name\n\t\t} );\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tthis.add( buttons[i] );\n\t\t}\n\n\t\tdt.on( 'destroy', function ( e, settings ) {\n\t\t\tif ( settings === dtSettings ) {\n\t\t\t\tthat.destroy();\n\t\t\t}\n\t\t} );\n\n\t\t// Global key event binding to listen for button keys\n\t\t$('body').on( 'keyup.'+this.s.namespace, function ( e ) {\n\t\t\tif ( ! document.activeElement || document.activeElement === document.body ) {\n\t\t\t\t// SUse a string of characters for fast lookup of if we need to\n\t\t\t\t// handle this\n\t\t\t\tvar character = String.fromCharCode(e.keyCode).toLowerCase();\n\n\t\t\t\tif ( that.s.listenKeys.toLowerCase().indexOf( character ) !== -1 ) {\n\t\t\t\t\tthat._keypress( character, e );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Add a new button to the key press listener\n\t * @param {object} conf Resolved button configuration object\n\t * @private\n\t */\n\t_addKey: function ( conf )\n\t{\n\t\tif ( conf.key ) {\n\t\t\tthis.s.listenKeys += $.isPlainObject( conf.key ) ?\n\t\t\t\tconf.key.key :\n\t\t\t\tconf.key;\n\t\t}\n\t},\n\n\t/**\n\t * Insert the buttons into the container. Call without parameters!\n\t * @param  {node} [container] Recursive only - Insert point\n\t * @param  {array} [buttons] Recursive only - Buttons array\n\t * @private\n\t */\n\t_draw: function ( container, buttons )\n\t{\n\t\tif ( ! container ) {\n\t\t\tcontainer = this.dom.container;\n\t\t\tbuttons = this.s.buttons;\n\t\t}\n\n\t\tcontainer.children().detach();\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tcontainer.append( buttons[i].inserter );\n\t\t\tcontainer.append( ' ' );\n\n\t\t\tif ( buttons[i].buttons && buttons[i].buttons.length ) {\n\t\t\t\tthis._draw( buttons[i].collection, buttons[i].buttons );\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Create buttons from an array of buttons\n\t * @param  {array} attachTo Buttons array to attach to\n\t * @param  {object} button Button definition\n\t * @param  {boolean} inCollection true if the button is in a collection\n\t * @private\n\t */\n\t_expandButton: function ( attachTo, button, inCollection, attachPoint )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar buttonCounter = 0;\n\t\tvar buttons = ! Array.isArray( button ) ?\n\t\t\t[ button ] :\n\t\t\tbutton;\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tvar conf = this._resolveExtends( buttons[i] );\n\n\t\t\tif ( ! conf ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the configuration is an array, then expand the buttons at this\n\t\t\t// point\n\t\t\tif ( Array.isArray( conf ) ) {\n\t\t\t\tthis._expandButton( attachTo, conf, inCollection, attachPoint );\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar built = this._buildButton( conf, inCollection );\n\t\t\tif ( ! built ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( attachPoint !== undefined && attachPoint !== null ) {\n\t\t\t\tattachTo.splice( attachPoint, 0, built );\n\t\t\t\tattachPoint++;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tattachTo.push( built );\n\t\t\t}\n\n\t\t\tif ( built.conf.buttons ) {\n\t\t\t\tbuilt.collection = $('<'+this.c.dom.collection.tag+'/>');\n\n\t\t\t\tbuilt.conf._collection = built.collection;\n\n\t\t\t\tthis._expandButton( built.buttons, built.conf.buttons, true, attachPoint );\n\t\t\t}\n\n\t\t\t// init call is made here, rather than buildButton as it needs to\n\t\t\t// be selectable, and for that it needs to be in the buttons array\n\t\t\tif ( conf.init ) {\n\t\t\t\tconf.init.call( dt.button( built.node ), dt, $(built.node), conf );\n\t\t\t}\n\n\t\t\tbuttonCounter++;\n\t\t}\n\t},\n\n\t/**\n\t * Create an individual button\n\t * @param  {object} config            Resolved button configuration\n\t * @param  {boolean} inCollection `true` if a collection button\n\t * @return {jQuery} Created button node (jQuery)\n\t * @private\n\t */\n\t_buildButton: function ( config, inCollection )\n\t{\n\t\tvar buttonDom = this.c.dom.button;\n\t\tvar linerDom = this.c.dom.buttonLiner;\n\t\tvar collectionDom = this.c.dom.collection;\n\t\tvar dt = this.s.dt;\n\t\tvar text = function ( opt ) {\n\t\t\treturn typeof opt === 'function' ?\n\t\t\t\topt( dt, button, config ) :\n\t\t\t\topt;\n\t\t};\n\n\t\tif ( inCollection && collectionDom.button ) {\n\t\t\tbuttonDom = collectionDom.button;\n\t\t}\n\n\t\tif ( inCollection && collectionDom.buttonLiner ) {\n\t\t\tlinerDom = collectionDom.buttonLiner;\n\t\t}\n\n\t\t// Make sure that the button is available based on whatever requirements\n\t\t// it has. For example, PDF button require pdfmake\n\t\tif ( config.available && ! config.available( dt, config ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar action = function ( e, dt, button, config ) {\n\t\t\tconfig.action.call( dt.button( button ), e, dt, button, config );\n\n\t\t\t$(dt.table().node()).triggerHandler( 'buttons-action.dt', [\n\t\t\t\tdt.button( button ), dt, button, config \n\t\t\t] );\n\t\t};\n\n\t\tvar tag = config.tag || buttonDom.tag;\n\t\tvar clickBlurs = config.clickBlurs === undefined ? true : config.clickBlurs\n\t\tvar button = $('<'+tag+'/>')\n\t\t\t.addClass( buttonDom.className )\n\t\t\t.attr( 'tabindex', this.s.dt.settings()[0].iTabIndex )\n\t\t\t.attr( 'aria-controls', this.s.dt.table().node().id )\n\t\t\t.on( 'click.dtb', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ( ! button.hasClass( buttonDom.disabled ) && config.action ) {\n\t\t\t\t\taction( e, dt, button, config );\n\t\t\t\t}\n\t\t\t\tif( clickBlurs ) {\n\t\t\t\t\tbutton.trigger('blur');\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'keyup.dtb', function (e) {\n\t\t\t\tif ( e.keyCode === 13 ) {\n\t\t\t\t\tif ( ! button.hasClass( buttonDom.disabled ) && config.action ) {\n\t\t\t\t\t\taction( e, dt, button, config );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// Make `a` tags act like a link\n\t\tif ( tag.toLowerCase() === 'a' ) {\n\t\t\tbutton.attr( 'href', '#' );\n\t\t}\n\n\t\t// Button tags should have `type=button` so they don't have any default behaviour\n\t\tif ( tag.toLowerCase() === 'button' ) {\n\t\t\tbutton.attr( 'type', 'button' );\n\t\t}\n\n\t\tif ( linerDom.tag ) {\n\t\t\tvar liner = $('<'+linerDom.tag+'/>')\n\t\t\t\t.html( text( config.text ) )\n\t\t\t\t.addClass( linerDom.className );\n\n\t\t\tif ( linerDom.tag.toLowerCase() === 'a' ) {\n\t\t\t\tliner.attr( 'href', '#' );\n\t\t\t}\n\n\t\t\tbutton.append( liner );\n\t\t}\n\t\telse {\n\t\t\tbutton.html( text( config.text ) );\n\t\t}\n\n\t\tif ( config.enabled === false ) {\n\t\t\tbutton.addClass( buttonDom.disabled );\n\t\t}\n\n\t\tif ( config.className ) {\n\t\t\tbutton.addClass( config.className );\n\t\t}\n\n\t\tif ( config.titleAttr ) {\n\t\t\tbutton.attr( 'title', text( config.titleAttr ) );\n\t\t}\n\n\t\tif ( config.attr ) {\n\t\t\tbutton.attr( config.attr );\n\t\t}\n\n\t\tif ( ! config.namespace ) {\n\t\t\tconfig.namespace = '.dt-button-'+(_buttonCounter++);\n\t\t}\n\n\t\tvar buttonContainer = this.c.dom.buttonContainer;\n\t\tvar inserter;\n\t\tif ( buttonContainer && buttonContainer.tag ) {\n\t\t\tinserter = $('<'+buttonContainer.tag+'/>')\n\t\t\t\t.addClass( buttonContainer.className )\n\t\t\t\t.append( button );\n\t\t}\n\t\telse {\n\t\t\tinserter = button;\n\t\t}\n\n\t\tthis._addKey( config );\n\n\t\t// Style integration callback for DOM manipulation\n\t\t// Note that this is _not_ documented. It is currently\n\t\t// for style integration only\n\t\tif( this.c.buttonCreated ) {\n\t\t\tinserter = this.c.buttonCreated( config, inserter );\n\t\t}\n\n\t\treturn {\n\t\t\tconf:         config,\n\t\t\tnode:         button.get(0),\n\t\t\tinserter:     inserter,\n\t\t\tbuttons:      [],\n\t\t\tinCollection: inCollection,\n\t\t\tcollection:   null\n\t\t};\n\t},\n\n\t/**\n\t * Get the button object from a node (recursive)\n\t * @param  {node} node Button node\n\t * @param  {array} [buttons] Button array, uses base if not defined\n\t * @return {object} Button object\n\t * @private\n\t */\n\t_nodeToButton: function ( node, buttons )\n\t{\n\t\tif ( ! buttons ) {\n\t\t\tbuttons = this.s.buttons;\n\t\t}\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tif ( buttons[i].node === node ) {\n\t\t\t\treturn buttons[i];\n\t\t\t}\n\n\t\t\tif ( buttons[i].buttons.length ) {\n\t\t\t\tvar ret = this._nodeToButton( node, buttons[i].buttons );\n\n\t\t\t\tif ( ret ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Get container array for a button from a button node (recursive)\n\t * @param  {node} node Button node\n\t * @param  {array} [buttons] Button array, uses base if not defined\n\t * @return {array} Button's host array\n\t * @private\n\t */\n\t_nodeToHost: function ( node, buttons )\n\t{\n\t\tif ( ! buttons ) {\n\t\t\tbuttons = this.s.buttons;\n\t\t}\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tif ( buttons[i].node === node ) {\n\t\t\t\treturn buttons;\n\t\t\t}\n\n\t\t\tif ( buttons[i].buttons.length ) {\n\t\t\t\tvar ret = this._nodeToHost( node, buttons[i].buttons );\n\n\t\t\t\tif ( ret ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Handle a key press - determine if any button's key configured matches\n\t * what was typed and trigger the action if so.\n\t * @param  {string} character The character pressed\n\t * @param  {object} e Key event that triggered this call\n\t * @private\n\t */\n\t_keypress: function ( character, e )\n\t{\n\t\t// Check if this button press already activated on another instance of Buttons\n\t\tif ( e._buttonsHandled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar run = function ( conf, node ) {\n\t\t\tif ( ! conf.key ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( conf.key === character ) {\n\t\t\t\te._buttonsHandled = true;\n\t\t\t\t$(node).click();\n\t\t\t}\n\t\t\telse if ( $.isPlainObject( conf.key ) ) {\n\t\t\t\tif ( conf.key.key !== character ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( conf.key.shiftKey && ! e.shiftKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( conf.key.altKey && ! e.altKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( conf.key.ctrlKey && ! e.ctrlKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( conf.key.metaKey && ! e.metaKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Made it this far - it is good\n\t\t\t\te._buttonsHandled = true;\n\t\t\t\t$(node).click();\n\t\t\t}\n\t\t};\n\n\t\tvar recurse = function ( a ) {\n\t\t\tfor ( var i=0, ien=a.length ; i<ien ; i++ ) {\n\t\t\t\trun( a[i].conf, a[i].node );\n\n\t\t\t\tif ( a[i].buttons.length ) {\n\t\t\t\t\trecurse( a[i].buttons );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trecurse( this.s.buttons );\n\t},\n\n\t/**\n\t * Remove a key from the key listener for this instance (to be used when a\n\t * button is removed)\n\t * @param  {object} conf Button configuration\n\t * @private\n\t */\n\t_removeKey: function ( conf )\n\t{\n\t\tif ( conf.key ) {\n\t\t\tvar character = $.isPlainObject( conf.key ) ?\n\t\t\t\tconf.key.key :\n\t\t\t\tconf.key;\n\n\t\t\t// Remove only one character, as multiple buttons could have the\n\t\t\t// same listening key\n\t\t\tvar a = this.s.listenKeys.split('');\n\t\t\tvar idx = $.inArray( character, a );\n\t\t\ta.splice( idx, 1 );\n\t\t\tthis.s.listenKeys = a.join('');\n\t\t}\n\t},\n\n\t/**\n\t * Resolve a button configuration\n\t * @param  {string|function|object} conf Button config to resolve\n\t * @return {object} Button configuration\n\t * @private\n\t */\n\t_resolveExtends: function ( conf )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar i, ien;\n\t\tvar toConfObject = function ( base ) {\n\t\t\tvar loop = 0;\n\n\t\t\t// Loop until we have resolved to a button configuration, or an\n\t\t\t// array of button configurations (which will be iterated\n\t\t\t// separately)\n\t\t\twhile ( ! $.isPlainObject(base) && ! Array.isArray(base) ) {\n\t\t\t\tif ( base === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( typeof base === 'function' ) {\n\t\t\t\t\tbase = base( dt, conf );\n\n\t\t\t\t\tif ( ! base ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( typeof base === 'string' ) {\n\t\t\t\t\tif ( ! _dtButtons[ base ] ) {\n\t\t\t\t\t\tthrow 'Unknown button type: '+base;\n\t\t\t\t\t}\n\n\t\t\t\t\tbase = _dtButtons[ base ];\n\t\t\t\t}\n\n\t\t\t\tloop++;\n\t\t\t\tif ( loop > 30 ) {\n\t\t\t\t\t// Protect against misconfiguration killing the browser\n\t\t\t\t\tthrow 'Buttons: Too many iterations';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Array.isArray( base ) ?\n\t\t\t\tbase :\n\t\t\t\t$.extend( {}, base );\n\t\t};\n\n\t\tconf = toConfObject( conf );\n\n\t\twhile ( conf && conf.extend ) {\n\t\t\t// Use `toConfObject` in case the button definition being extended\n\t\t\t// is itself a string or a function\n\t\t\tif ( ! _dtButtons[ conf.extend ] ) {\n\t\t\t\tthrow 'Cannot extend unknown button type: '+conf.extend;\n\t\t\t}\n\n\t\t\tvar objArray = toConfObject( _dtButtons[ conf.extend ] );\n\t\t\tif ( Array.isArray( objArray ) ) {\n\t\t\t\treturn objArray;\n\t\t\t}\n\t\t\telse if ( ! objArray ) {\n\t\t\t\t// This is a little brutal as it might be possible to have a\n\t\t\t\t// valid button without the extend, but if there is no extend\n\t\t\t\t// then the host button would be acting in an undefined state\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Stash the current class name\n\t\t\tvar originalClassName = objArray.className;\n\n\t\t\tconf = $.extend( {}, objArray, conf );\n\n\t\t\t// The extend will have overwritten the original class name if the\n\t\t\t// `conf` object also assigned a class, but we want to concatenate\n\t\t\t// them so they are list that is combined from all extended buttons\n\t\t\tif ( originalClassName && conf.className !== originalClassName ) {\n\t\t\t\tconf.className = originalClassName+' '+conf.className;\n\t\t\t}\n\n\t\t\t// Buttons to be added to a collection  -gives the ability to define\n\t\t\t// if buttons should be added to the start or end of a collection\n\t\t\tvar postfixButtons = conf.postfixButtons;\n\t\t\tif ( postfixButtons ) {\n\t\t\t\tif ( ! conf.buttons ) {\n\t\t\t\t\tconf.buttons = [];\n\t\t\t\t}\n\n\t\t\t\tfor ( i=0, ien=postfixButtons.length ; i<ien ; i++ ) {\n\t\t\t\t\tconf.buttons.push( postfixButtons[i] );\n\t\t\t\t}\n\n\t\t\t\tconf.postfixButtons = null;\n\t\t\t}\n\n\t\t\tvar prefixButtons = conf.prefixButtons;\n\t\t\tif ( prefixButtons ) {\n\t\t\t\tif ( ! conf.buttons ) {\n\t\t\t\t\tconf.buttons = [];\n\t\t\t\t}\n\n\t\t\t\tfor ( i=0, ien=prefixButtons.length ; i<ien ; i++ ) {\n\t\t\t\t\tconf.buttons.splice( i, 0, prefixButtons[i] );\n\t\t\t\t}\n\n\t\t\t\tconf.prefixButtons = null;\n\t\t\t}\n\n\t\t\t// Although we want the `conf` object to overwrite almost all of\n\t\t\t// the properties of the object being extended, the `extend`\n\t\t\t// property should come from the object being extended\n\t\t\tconf.extend = objArray.extend;\n\t\t}\n\n\t\treturn conf;\n\t},\n\n\t/**\n\t * Display (and replace if there is an existing one) a popover attached to a button\n\t * @param {string|node} content Content to show\n\t * @param {DataTable.Api} hostButton DT API instance of the button\n\t * @param {object} inOpts Options (see object below for all options)\n\t */\n\t_popover: function ( content, hostButton, inOpts ) {\n\t\tvar dt = hostButton;\n\t\tvar buttonsSettings = this.c;\n\t\tvar options = $.extend( {\n\t\t\talign: 'button-left', // button-right, dt-container\n\t\t\tautoClose: false,\n\t\t\tbackground: true,\n\t\t\tbackgroundClassName: 'dt-button-background',\n\t\t\tcontentClassName: buttonsSettings.dom.collection.className,\n\t\t\tcollectionLayout: '',\n\t\t\tcollectionTitle: '',\n\t\t\tdropup: false,\n\t\t\tfade: 400,\n\t\t\trightAlignClassName: 'dt-button-right',\n\t\t\ttag: buttonsSettings.dom.collection.tag\n\t\t}, inOpts );\n\t\tvar hostNode = hostButton.node();\n\n\t\tvar close = function () {\n\t\t\t_fadeOut(\n\t\t\t\t$('.dt-button-collection'),\n\t\t\t\toptions.fade,\n\t\t\t\tfunction () {\n\t\t\t\t\t$(this).detach();\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t$(dt.buttons( '[aria-haspopup=\"true\"][aria-expanded=\"true\"]' ).nodes())\n\t\t\t\t.attr('aria-expanded', 'false');\n\n\t\t\t$('div.dt-button-background').off( 'click.dtb-collection' );\n\t\t\tButtons.background( false, options.backgroundClassName, options.fade, hostNode );\n\n\t\t\t$('body').off( '.dtb-collection' );\n\t\t\tdt.off( 'buttons-action.b-internal' );\n\t\t};\n\n\t\tif (content === false) {\n\t\t\tclose();\n\t\t}\n\n\t\tvar existingExpanded = $(dt.buttons( '[aria-haspopup=\"true\"][aria-expanded=\"true\"]' ).nodes());\n\t\tif ( existingExpanded.length ) {\n\t\t\thostNode = existingExpanded.eq(0);\n\n\t\t\tclose();\n\t\t}\n\n\t\tvar display = $('<div/>')\n\t\t\t.addClass('dt-button-collection')\n\t\t\t.addClass(options.collectionLayout)\n\t\t\t.css('display', 'none');\n\n\t\tcontent = $(content)\n\t\t\t.addClass(options.contentClassName)\n\t\t\t.attr('role', 'menu')\n\t\t\t.appendTo(display);\n\n\t\thostNode.attr( 'aria-expanded', 'true' );\n\n\t\tif ( hostNode.parents('body')[0] !== document.body ) {\n\t\t\thostNode = document.body.lastChild;\n\t\t}\n\n\t\tif ( options.collectionTitle ) {\n\t\t\tdisplay.prepend('<div class=\"dt-button-collection-title\">'+options.collectionTitle+'</div>');\n\t\t}\n\n\t\t_fadeIn( display.insertAfter( hostNode ), options.fade );\n\n\t\tvar tableContainer = $( hostButton.table().container() );\n\t\tvar position = display.css( 'position' );\n\n\t\tif ( options.align === 'dt-container' ) {\n\t\t\thostNode = hostNode.parent();\n\t\t\tdisplay.css('width', tableContainer.width());\n\t\t}\n\n\t\t// Align the popover relative to the DataTables container\n\t\t// Useful for wide popovers such as SearchPanes\n\t\tif (\n\t\t\tposition === 'absolute' &&\n\t\t\t(\n\t\t\t\tdisplay.hasClass( options.rightAlignClassName ) ||\n\t\t\t\tdisplay.hasClass( options.leftAlignClassName ) ||\n\t\t\t\toptions.align === 'dt-container'\n\t\t\t)\n\t\t) {\n\n\t\t\tvar hostPosition = hostNode.position();\n\n\t\t\tdisplay.css( {\n\t\t\t\ttop: hostPosition.top + hostNode.outerHeight(),\n\t\t\t\tleft: hostPosition.left\n\t\t\t} );\n\n\t\t\t// calculate overflow when positioned beneath\n\t\t\tvar collectionHeight = display.outerHeight();\n\t\t\tvar tableBottom = tableContainer.offset().top + tableContainer.height();\n\t\t\tvar listBottom = hostPosition.top + hostNode.outerHeight() + collectionHeight;\n\t\t\tvar bottomOverflow = listBottom - tableBottom;\n\n\t\t\t// calculate overflow when positioned above\n\t\t\tvar listTop = hostPosition.top - collectionHeight;\n\t\t\tvar tableTop = tableContainer.offset().top;\n\t\t\tvar topOverflow = tableTop - listTop;\n\n\t\t\t// if bottom overflow is larger, move to the top because it fits better, or if dropup is requested\n\t\t\tvar moveTop = hostPosition.top - collectionHeight - 5;\n\t\t\tif ( (bottomOverflow > topOverflow || options.dropup) && -moveTop < tableTop ) {\n\t\t\t\tdisplay.css( 'top', moveTop);\n\t\t\t}\n\n\t\t\t// Get the size of the container (left and width - and thus also right)\n\t\t\tvar tableLeft = tableContainer.offset().left;\n\t\t\tvar tableWidth = tableContainer.width();\n\t\t\tvar tableRight = tableLeft + tableWidth;\n\n\t\t\t// Get the size of the popover (left and width - and ...)\n\t\t\tvar popoverLeft = display.offset().left;\n\t\t\tvar popoverWidth = display.width();\n\t\t\tvar popoverRight = popoverLeft + popoverWidth;\n\n\t\t\t// Get the size of the host buttons (left and width - and ...)\n\t\t\tvar buttonsLeft = hostNode.offset().left;\n\t\t\tvar buttonsWidth = hostNode.outerWidth()\n\t\t\tvar buttonsRight = buttonsLeft + buttonsWidth;\n\t\t\t\n\t\t\t// You've then got all the numbers you need to do some calculations and if statements,\n\t\t\t//  so we can do some quick JS maths and apply it only once\n\t\t\t// If it has the right align class OR the buttons are right aligned OR the button container is floated right,\n\t\t\t//  then calculate left position for the popover to align the popover to the right hand\n\t\t\t//  side of the button - check to see if the left of the popover is inside the table container.\n\t\t\t// If not, move the popover so it is, but not more than it means that the popover is to the right of the table container\n\t\t\tvar popoverShuffle = 0;\n\t\t\tif ( display.hasClass( options.rightAlignClassName )) {\n\t\t\t\tpopoverShuffle = buttonsRight - popoverRight;\n\t\t\t\tif(tableLeft > (popoverLeft + popoverShuffle)){\n\t\t\t\t\tvar leftGap = tableLeft - (popoverLeft + popoverShuffle);\n\t\t\t\t\tvar rightGap = tableRight - (popoverRight + popoverShuffle);\n\t\n\t\t\t\t\tif(leftGap > rightGap){\n\t\t\t\t\t\tpopoverShuffle += rightGap; \n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpopoverShuffle += leftGap;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// else attempt to left align the popover to the button. Similar to above, if the popover's right goes past the table container's right,\n\t\t\t//  then move it back, but not so much that it goes past the left of the table container\n\t\t\telse {\n\t\t\t\tpopoverShuffle = tableLeft - popoverLeft;\n\n\t\t\t\tif(tableRight < (popoverRight + popoverShuffle)){\n\t\t\t\t\tvar leftGap = tableLeft - (popoverLeft + popoverShuffle);\n\t\t\t\t\tvar rightGap = tableRight - (popoverRight + popoverShuffle);\n\n\t\t\t\t\tif(leftGap > rightGap ){\n\t\t\t\t\t\tpopoverShuffle += rightGap;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpopoverShuffle += leftGap;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdisplay.css('left', display.position().left + popoverShuffle);\n\t\t\t\n\t\t}\n\t\telse if (position === 'absolute') {\n\t\t\t// Align relative to the host button\n\t\t\tvar hostPosition = hostNode.position();\n\n\t\t\tdisplay.css( {\n\t\t\t\ttop: hostPosition.top + hostNode.outerHeight(),\n\t\t\t\tleft: hostPosition.left\n\t\t\t} );\n\n\t\t\t// calculate overflow when positioned beneath\n\t\t\tvar collectionHeight = display.outerHeight();\n\t\t\tvar top = hostNode.offset().top\n\t\t\tvar popoverShuffle = 0;\n\n\t\t\t// Get the size of the host buttons (left and width - and ...)\n\t\t\tvar buttonsLeft = hostNode.offset().left;\n\t\t\tvar buttonsWidth = hostNode.outerWidth()\n\t\t\tvar buttonsRight = buttonsLeft + buttonsWidth;\n\n\t\t\t// Get the size of the popover (left and width - and ...)\n\t\t\tvar popoverLeft = display.offset().left;\n\t\t\tvar popoverWidth = content.width();\n\t\t\tvar popoverRight = popoverLeft + popoverWidth;\n\n\t\t\tvar moveTop = hostPosition.top - collectionHeight - 5;\n\t\t\tvar tableBottom = tableContainer.offset().top + tableContainer.height();\n\t\t\tvar listBottom = hostPosition.top + hostNode.outerHeight() + collectionHeight;\n\t\t\tvar bottomOverflow = listBottom - tableBottom;\n\n\t\t\t// calculate overflow when positioned above\n\t\t\tvar listTop = hostPosition.top - collectionHeight;\n\t\t\tvar tableTop = tableContainer.offset().top;\n\t\t\tvar topOverflow = tableTop - listTop;\n\n\t\t\tif ( (bottomOverflow > topOverflow || options.dropup) && -moveTop < tableTop ) {\n\t\t\t\tdisplay.css( 'top', moveTop);\n\t\t\t}\n\n\t\t\tpopoverShuffle = options.align === 'button-right'\n\t\t\t\t? buttonsRight - popoverRight\n\t\t\t\t: buttonsLeft - popoverLeft;\n\n\t\t\tdisplay.css('left', display.position().left + popoverShuffle);\n\t\t}\n\t\telse {\n\t\t\t// Fix position - centre on screen\n\t\t\tvar top = display.height() / 2;\n\t\t\tif ( top > $(window).height() / 2 ) {\n\t\t\t\ttop = $(window).height() / 2;\n\t\t\t}\n\n\t\t\tdisplay.css( 'marginTop', top*-1 );\n\t\t}\n\n\t\tif ( options.background ) {\n\t\t\tButtons.background( true, options.backgroundClassName, options.fade, hostNode );\n\t\t}\n\n\t\t// This is bonkers, but if we don't have a click listener on the\n\t\t// background element, iOS Safari will ignore the body click\n\t\t// listener below. An empty function here is all that is\n\t\t// required to make it work...\n\t\t$('div.dt-button-background').on( 'click.dtb-collection', function () {} );\n\n\t\t$('body')\n\t\t\t.on( 'click.dtb-collection', function (e) {\n\t\t\t\t// andSelf is deprecated in jQ1.8, but we want 1.7 compat\n\t\t\t\tvar back = $.fn.addBack ? 'addBack' : 'andSelf';\n\t\t\t\tvar parent = $(e.target).parent()[0];\n\n\t\t\t\tif (( ! $(e.target).parents()[back]().filter( content ).length  && !$(parent).hasClass('dt-buttons')) || $(e.target).hasClass('dt-button-background')) {\n\t\t\t\t\tclose();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'keyup.dtb-collection', function (e) {\n\t\t\t\tif ( e.keyCode === 27 ) {\n\t\t\t\t\tclose();\n\t\t\t\t}\n\t\t\t} );\n\n\t\tif ( options.autoClose ) {\n\t\t\tsetTimeout( function () {\n\t\t\t\tdt.on( 'buttons-action.b-internal', function (e, btn, dt, node) {\n\t\t\t\t\tif ( node[0] === hostNode[0] ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tclose();\n\t\t\t\t} );\n\t\t\t}, 0);\n\t\t}\n\n\t\t$(display).trigger('buttons-popover.dt');\n\t}\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Statics\n */\n\n/**\n * Show / hide a background layer behind a collection\n * @param  {boolean} Flag to indicate if the background should be shown or\n *   hidden \n * @param  {string} Class to assign to the background\n * @static\n */\nButtons.background = function ( show, className, fade, insertPoint ) {\n\tif ( fade === undefined ) {\n\t\tfade = 400;\n\t}\n\tif ( ! insertPoint ) {\n\t\tinsertPoint = document.body;\n\t}\n\n\tif ( show ) {\n\t\t_fadeIn(\n\t\t\t$('<div/>')\n\t\t\t\t.addClass( className )\n\t\t\t\t.css( 'display', 'none' )\n\t\t\t\t.insertAfter( insertPoint ),\n\t\t\tfade\n\t\t);\n\t}\n\telse {\n\t\t_fadeOut(\n\t\t\t$('div.'+className),\n\t\t\tfade,\n\t\t\tfunction () {\n\t\t\t\t$(this)\n\t\t\t\t\t.removeClass( className )\n\t\t\t\t\t.remove();\n\t\t\t}\n\t\t);\n\t}\n};\n\n/**\n * Instance selector - select Buttons instances based on an instance selector\n * value from the buttons assigned to a DataTable. This is only useful if\n * multiple instances are attached to a DataTable.\n * @param  {string|int|array} Instance selector - see `instance-selector`\n *   documentation on the DataTables site\n * @param  {array} Button instance array that was attached to the DataTables\n *   settings object\n * @return {array} Buttons instances\n * @static\n */\nButtons.instanceSelector = function ( group, buttons )\n{\n\tif ( group === undefined || group === null ) {\n\t\treturn $.map( buttons, function ( v ) {\n\t\t\treturn v.inst;\n\t\t} );\n\t}\n\n\tvar ret = [];\n\tvar names = $.map( buttons, function ( v ) {\n\t\treturn v.name;\n\t} );\n\n\t// Flatten the group selector into an array of single options\n\tvar process = function ( input ) {\n\t\tif ( Array.isArray( input ) ) {\n\t\t\tfor ( var i=0, ien=input.length ; i<ien ; i++ ) {\n\t\t\t\tprocess( input[i] );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof input === 'string' ) {\n\t\t\tif ( input.indexOf( ',' ) !== -1 ) {\n\t\t\t\t// String selector, list of names\n\t\t\t\tprocess( input.split(',') );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// String selector individual name\n\t\t\t\tvar idx = $.inArray( input.trim(), names );\n\n\t\t\t\tif ( idx !== -1 ) {\n\t\t\t\t\tret.push( buttons[ idx ].inst );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if ( typeof input === 'number' ) {\n\t\t\t// Index selector\n\t\t\tret.push( buttons[ input ].inst );\n\t\t}\n\t};\n\t\n\tprocess( group );\n\n\treturn ret;\n};\n\n/**\n * Button selector - select one or more buttons from a selector input so some\n * operation can be performed on them.\n * @param  {array} Button instances array that the selector should operate on\n * @param  {string|int|node|jQuery|array} Button selector - see\n *   `button-selector` documentation on the DataTables site\n * @return {array} Array of objects containing `inst` and `idx` properties of\n *   the selected buttons so you know which instance each button belongs to.\n * @static\n */\nButtons.buttonSelector = function ( insts, selector )\n{\n\tvar ret = [];\n\tvar nodeBuilder = function ( a, buttons, baseIdx ) {\n\t\tvar button;\n\t\tvar idx;\n\n\t\tfor ( var i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\tbutton = buttons[i];\n\n\t\t\tif ( button ) {\n\t\t\t\tidx = baseIdx !== undefined ?\n\t\t\t\t\tbaseIdx+i :\n\t\t\t\t\ti+'';\n\n\t\t\t\ta.push( {\n\t\t\t\t\tnode: button.node,\n\t\t\t\t\tname: button.conf.name,\n\t\t\t\t\tidx:  idx\n\t\t\t\t} );\n\n\t\t\t\tif ( button.buttons ) {\n\t\t\t\t\tnodeBuilder( a, button.buttons, idx+'-' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tvar run = function ( selector, inst ) {\n\t\tvar i, ien;\n\t\tvar buttons = [];\n\t\tnodeBuilder( buttons, inst.s.buttons );\n\n\t\tvar nodes = $.map( buttons, function (v) {\n\t\t\treturn v.node;\n\t\t} );\n\n\t\tif ( Array.isArray( selector ) || selector instanceof $ ) {\n\t\t\tfor ( i=0, ien=selector.length ; i<ien ; i++ ) {\n\t\t\t\trun( selector[i], inst );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif ( selector === null || selector === undefined || selector === '*' ) {\n\t\t\t// Select all\n\t\t\tfor ( i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\t\tret.push( {\n\t\t\t\t\tinst: inst,\n\t\t\t\t\tnode: buttons[i].node\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\telse if ( typeof selector === 'number' ) {\n\t\t\t// Main button index selector\n\t\t\tret.push( {\n\t\t\t\tinst: inst,\n\t\t\t\tnode: inst.s.buttons[ selector ].node\n\t\t\t} );\n\t\t}\n\t\telse if ( typeof selector === 'string' ) {\n\t\t\tif ( selector.indexOf( ',' ) !== -1 ) {\n\t\t\t\t// Split\n\t\t\t\tvar a = selector.split(',');\n\n\t\t\t\tfor ( i=0, ien=a.length ; i<ien ; i++ ) {\n\t\t\t\t\trun( a[i].trim(), inst );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( selector.match( /^\\d+(\\-\\d+)*$/ ) ) {\n\t\t\t\t// Sub-button index selector\n\t\t\t\tvar indexes = $.map( buttons, function (v) {\n\t\t\t\t\treturn v.idx;\n\t\t\t\t} );\n\n\t\t\t\tret.push( {\n\t\t\t\t\tinst: inst,\n\t\t\t\t\tnode: buttons[ $.inArray( selector, indexes ) ].node\n\t\t\t\t} );\n\t\t\t}\n\t\t\telse if ( selector.indexOf( ':name' ) !== -1 ) {\n\t\t\t\t// Button name selector\n\t\t\t\tvar name = selector.replace( ':name', '' );\n\n\t\t\t\tfor ( i=0, ien=buttons.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( buttons[i].name === name ) {\n\t\t\t\t\t\tret.push( {\n\t\t\t\t\t\t\tinst: inst,\n\t\t\t\t\t\t\tnode: buttons[i].node\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// jQuery selector on the nodes\n\t\t\t\t$( nodes ).filter( selector ).each( function () {\n\t\t\t\t\tret.push( {\n\t\t\t\t\t\tinst: inst,\n\t\t\t\t\t\tnode: this\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\telse if ( typeof selector === 'object' && selector.nodeName ) {\n\t\t\t// Node selector\n\t\t\tvar idx = $.inArray( selector, nodes );\n\n\t\t\tif ( idx !== -1 ) {\n\t\t\t\tret.push( {\n\t\t\t\t\tinst: inst,\n\t\t\t\t\tnode: nodes[ idx ]\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n\n\n\tfor ( var i=0, ien=insts.length ; i<ien ; i++ ) {\n\t\tvar inst = insts[i];\n\n\t\trun( selector, inst );\n\t}\n\n\treturn ret;\n};\n\n/**\n * Default function used for formatting output data.\n * @param {*} str Data to strip\n */\nButtons.stripData = function ( str, config ) {\n\tif ( typeof str !== 'string' ) {\n\t\treturn str;\n\t}\n\n\t// Always remove script tags\n\tstr = str.replace( /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '' );\n\n\t// Always remove comments\n\tstr = str.replace( /<!\\-\\-.*?\\-\\->/g, '' );\n\n\tif ( config.stripHtml ) {\n\t\tstr = str.replace( /<[^>]*>/g, '' );\n\t}\n\n\tif ( config.trim ) {\n\t\tstr = str.replace( /^\\s+|\\s+$/g, '' );\n\t}\n\n\tif ( config.stripNewlines ) {\n\t\tstr = str.replace( /\\n/g, ' ' );\n\t}\n\n\tif ( config.decodeEntities ) {\n\t\t_exportTextarea.innerHTML = str;\n\t\tstr = _exportTextarea.value;\n\t}\n\n\treturn str;\n};\n\n\n/**\n * Buttons defaults. For full documentation, please refer to the docs/option\n * directory or the DataTables site.\n * @type {Object}\n * @static\n */\nButtons.defaults = {\n\tbuttons: [ 'copy', 'excel', 'csv', 'pdf', 'print' ],\n\tname: 'main',\n\ttabIndex: 0,\n\tdom: {\n\t\tcontainer: {\n\t\t\ttag: 'div',\n\t\t\tclassName: 'dt-buttons'\n\t\t},\n\t\tcollection: {\n\t\t\ttag: 'div',\n\t\t\tclassName: ''\n\t\t},\n\t\tbutton: {\n\t\t\ttag: 'button',\n\t\t\tclassName: 'dt-button',\n\t\t\tactive: 'active',\n\t\t\tdisabled: 'disabled'\n\t\t},\n\t\tbuttonLiner: {\n\t\t\ttag: 'span',\n\t\t\tclassName: ''\n\t\t}\n\t}\n};\n\n/**\n * Version information\n * @type {string}\n * @static\n */\nButtons.version = '1.7.0';\n\n\n$.extend( _dtButtons, {\n\tcollection: {\n\t\ttext: function ( dt ) {\n\t\t\treturn dt.i18n( 'buttons.collection', 'Collection' );\n\t\t},\n\t\tclassName: 'buttons-collection',\n\t\tinit: function ( dt, button, config ) {\n\t\t\tbutton.attr( 'aria-expanded', false );\n\t\t},\n\t\taction: function ( e, dt, button, config ) {\n\t\t\te.stopPropagation();\n\n\t\t\tif ( config._collection.parents('body').length ) {\n\t\t\t\tthis.popover(false, config);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.popover(config._collection, config);\n\t\t\t}\n\t\t},\n\t\tattr: {\n\t\t\t'aria-haspopup': true\n\t\t}\n\t\t// Also the popover options, defined in Buttons.popover\n\t},\n\tcopy: function ( dt, conf ) {\n\t\tif ( _dtButtons.copyHtml5 ) {\n\t\t\treturn 'copyHtml5';\n\t\t}\n\t},\n\tcsv: function ( dt, conf ) {\n\t\tif ( _dtButtons.csvHtml5 && _dtButtons.csvHtml5.available( dt, conf ) ) {\n\t\t\treturn 'csvHtml5';\n\t\t}\n\t},\n\texcel: function ( dt, conf ) {\n\t\tif ( _dtButtons.excelHtml5 && _dtButtons.excelHtml5.available( dt, conf ) ) {\n\t\t\treturn 'excelHtml5';\n\t\t}\n\t},\n\tpdf: function ( dt, conf ) {\n\t\tif ( _dtButtons.pdfHtml5 && _dtButtons.pdfHtml5.available( dt, conf ) ) {\n\t\t\treturn 'pdfHtml5';\n\t\t}\n\t},\n\tpageLength: function ( dt ) {\n\t\tvar lengthMenu = dt.settings()[0].aLengthMenu;\n\t\tvar vals = [];\n\t\tvar lang = [];\n\t\tvar text = function ( dt ) {\n\t\t\treturn dt.i18n( 'buttons.pageLength', {\n\t\t\t\t\"-1\": 'Show all rows',\n\t\t\t\t_:    'Show %d rows'\n\t\t\t}, dt.page.len() );\n\t\t};\n\n\t\t// Support for DataTables 1.x 2D array\n\t\tif (Array.isArray( lengthMenu[0] )) {\n\t\t\tvals = lengthMenu[0];\n\t\t\tlang = lengthMenu[1];\n\t\t}\n\t\telse {\n\t\t\tfor (var i=0 ; i<lengthMenu.length ; i++) {\n\t\t\t\tvar option = lengthMenu[i];\n\n\t\t\t\t// Support for DataTables 2 object in the array\n\t\t\t\tif ($.isPlainObject(option)) {\n\t\t\t\t\tvals.push(option.value);\n\t\t\t\t\tlang.push(option.label);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvals.push(option);\n\t\t\t\t\tlang.push(option);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\textend: 'collection',\n\t\t\ttext: text,\n\t\t\tclassName: 'buttons-page-length',\n\t\t\tautoClose: true,\n\t\t\tbuttons: $.map( vals, function ( val, i ) {\n\t\t\t\treturn {\n\t\t\t\t\ttext: lang[i],\n\t\t\t\t\tclassName: 'button-page-length',\n\t\t\t\t\taction: function ( e, dt ) {\n\t\t\t\t\t\tdt.page.len( val ).draw();\n\t\t\t\t\t},\n\t\t\t\t\tinit: function ( dt, node, conf ) {\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tvar fn = function () {\n\t\t\t\t\t\t\tthat.active( dt.page.len() === val );\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tdt.on( 'length.dt'+conf.namespace, fn );\n\t\t\t\t\t\tfn();\n\t\t\t\t\t},\n\t\t\t\t\tdestroy: function ( dt, node, conf ) {\n\t\t\t\t\t\tdt.off( 'length.dt'+conf.namespace );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t} ),\n\t\t\tinit: function ( dt, node, conf ) {\n\t\t\t\tvar that = this;\n\t\t\t\tdt.on( 'length.dt'+conf.namespace, function () {\n\t\t\t\t\tthat.text( conf.text );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tdestroy: function ( dt, node, conf ) {\n\t\t\t\tdt.off( 'length.dt'+conf.namespace );\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables API\n *\n * For complete documentation, please refer to the docs/api directory or the\n * DataTables site\n */\n\n// Buttons group and individual button selector\nDataTable.Api.register( 'buttons()', function ( group, selector ) {\n\t// Argument shifting\n\tif ( selector === undefined ) {\n\t\tselector = group;\n\t\tgroup = undefined;\n\t}\n\n\tthis.selector.buttonGroup = group;\n\n\tvar res = this.iterator( true, 'table', function ( ctx ) {\n\t\tif ( ctx._buttons ) {\n\t\t\treturn Buttons.buttonSelector(\n\t\t\t\tButtons.instanceSelector( group, ctx._buttons ),\n\t\t\t\tselector\n\t\t\t);\n\t\t}\n\t}, true );\n\n\tres._groupSelector = group;\n\treturn res;\n} );\n\n// Individual button selector\nDataTable.Api.register( 'button()', function ( group, selector ) {\n\t// just run buttons() and truncate\n\tvar buttons = this.buttons( group, selector );\n\n\tif ( buttons.length > 1 ) {\n\t\tbuttons.splice( 1, buttons.length );\n\t}\n\n\treturn buttons;\n} );\n\n// Active buttons\nDataTable.Api.registerPlural( 'buttons().active()', 'button().active()', function ( flag ) {\n\tif ( flag === undefined ) {\n\t\treturn this.map( function ( set ) {\n\t\t\treturn set.inst.active( set.node );\n\t\t} );\n\t}\n\n\treturn this.each( function ( set ) {\n\t\tset.inst.active( set.node, flag );\n\t} );\n} );\n\n// Get / set button action\nDataTable.Api.registerPlural( 'buttons().action()', 'button().action()', function ( action ) {\n\tif ( action === undefined ) {\n\t\treturn this.map( function ( set ) {\n\t\t\treturn set.inst.action( set.node );\n\t\t} );\n\t}\n\n\treturn this.each( function ( set ) {\n\t\tset.inst.action( set.node, action );\n\t} );\n} );\n\n// Enable / disable buttons\nDataTable.Api.register( ['buttons().enable()', 'button().enable()'], function ( flag ) {\n\treturn this.each( function ( set ) {\n\t\tset.inst.enable( set.node, flag );\n\t} );\n} );\n\n// Disable buttons\nDataTable.Api.register( ['buttons().disable()', 'button().disable()'], function () {\n\treturn this.each( function ( set ) {\n\t\tset.inst.disable( set.node );\n\t} );\n} );\n\n// Get button nodes\nDataTable.Api.registerPlural( 'buttons().nodes()', 'button().node()', function () {\n\tvar jq = $();\n\n\t// jQuery will automatically reduce duplicates to a single entry\n\t$( this.each( function ( set ) {\n\t\tjq = jq.add( set.inst.node( set.node ) );\n\t} ) );\n\n\treturn jq;\n} );\n\n// Get / set button processing state\nDataTable.Api.registerPlural( 'buttons().processing()', 'button().processing()', function ( flag ) {\n\tif ( flag === undefined ) {\n\t\treturn this.map( function ( set ) {\n\t\t\treturn set.inst.processing( set.node );\n\t\t} );\n\t}\n\n\treturn this.each( function ( set ) {\n\t\tset.inst.processing( set.node, flag );\n\t} );\n} );\n\n// Get / set button text (i.e. the button labels)\nDataTable.Api.registerPlural( 'buttons().text()', 'button().text()', function ( label ) {\n\tif ( label === undefined ) {\n\t\treturn this.map( function ( set ) {\n\t\t\treturn set.inst.text( set.node );\n\t\t} );\n\t}\n\n\treturn this.each( function ( set ) {\n\t\tset.inst.text( set.node, label );\n\t} );\n} );\n\n// Trigger a button's action\nDataTable.Api.registerPlural( 'buttons().trigger()', 'button().trigger()', function () {\n\treturn this.each( function ( set ) {\n\t\tset.inst.node( set.node ).trigger( 'click' );\n\t} );\n} );\n\n// Button resolver to the popover\nDataTable.Api.register( 'button().popover()', function (content, options) {\n\treturn this.map( function ( set ) {\n\t\treturn set.inst._popover( content, this.button(this[0].node), options );\n\t} );\n} );\n\n// Get the container elements\nDataTable.Api.register( 'buttons().containers()', function () {\n\tvar jq = $();\n\tvar groupSelector = this._groupSelector;\n\n\t// We need to use the group selector directly, since if there are no buttons\n\t// the result set will be empty\n\tthis.iterator( true, 'table', function ( ctx ) {\n\t\tif ( ctx._buttons ) {\n\t\t\tvar insts = Buttons.instanceSelector( groupSelector, ctx._buttons );\n\n\t\t\tfor ( var i=0, ien=insts.length ; i<ien ; i++ ) {\n\t\t\t\tjq = jq.add( insts[i].container() );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn jq;\n} );\n\nDataTable.Api.register( 'buttons().container()', function () {\n\t// API level of nesting is `buttons()` so we can zip into the containers method\n\treturn this.containers().eq(0);\n} );\n\n// Add a new button\nDataTable.Api.register( 'button().add()', function ( idx, conf ) {\n\tvar ctx = this.context;\n\n\t// Don't use `this` as it could be empty - select the instances directly\n\tif ( ctx.length ) {\n\t\tvar inst = Buttons.instanceSelector( this._groupSelector, ctx[0]._buttons );\n\n\t\tif ( inst.length ) {\n\t\t\tinst[0].add( conf, idx );\n\t\t}\n\t}\n\n\treturn this.button( this._groupSelector, idx );\n} );\n\n// Destroy the button sets selected\nDataTable.Api.register( 'buttons().destroy()', function () {\n\tthis.pluck( 'inst' ).unique().each( function ( inst ) {\n\t\tinst.destroy();\n\t} );\n\n\treturn this;\n} );\n\n// Remove a button\nDataTable.Api.registerPlural( 'buttons().remove()', 'buttons().remove()', function () {\n\tthis.each( function ( set ) {\n\t\tset.inst.remove( set.node );\n\t} );\n\n\treturn this;\n} );\n\n// Information box that can be used by buttons\nvar _infoTimer;\nDataTable.Api.register( 'buttons.info()', function ( title, message, time ) {\n\tvar that = this;\n\n\tif ( title === false ) {\n\t\tthis.off('destroy.btn-info');\n\t\t_fadeOut(\n\t\t\t$('#datatables_buttons_info'),\n\t\t\t400,\n\t\t\tfunction () {\n\t\t\t\t$(this).remove();\n\t\t\t}\n\t\t);\n\t\tclearTimeout( _infoTimer );\n\t\t_infoTimer = null;\n\n\t\treturn this;\n\t}\n\n\tif ( _infoTimer ) {\n\t\tclearTimeout( _infoTimer );\n\t}\n\n\tif ( $('#datatables_buttons_info').length ) {\n\t\t$('#datatables_buttons_info').remove();\n\t}\n\n\ttitle = title ? '<h2>'+title+'</h2>' : '';\n\n\t_fadeIn(\n\t\t$('<div id=\"datatables_buttons_info\" class=\"dt-button-info\"/>')\n\t\t\t.html( title )\n\t\t\t.append( $('<div/>')[ typeof message === 'string' ? 'html' : 'append' ]( message ) )\n\t\t\t.css( 'display', 'none' )\n\t\t\t.appendTo( 'body' )\n\t);\n\n\tif ( time !== undefined && time !== 0 ) {\n\t\t_infoTimer = setTimeout( function () {\n\t\t\tthat.buttons.info( false );\n\t\t}, time );\n\t}\n\n\tthis.on('destroy.btn-info', function () {\n\t\tthat.buttons.info(false);\n\t});\n\n\treturn this;\n} );\n\n// Get data from the table for export - this is common to a number of plug-in\n// buttons so it is included in the Buttons core library\nDataTable.Api.register( 'buttons.exportData()', function ( options ) {\n\tif ( this.context.length ) {\n\t\treturn _exportData( new DataTable.Api( this.context[0] ), options );\n\t}\n} );\n\n// Get information about the export that is common to many of the export data\n// types (DRY)\nDataTable.Api.register( 'buttons.exportInfo()', function ( conf ) {\n\tif ( ! conf ) {\n\t\tconf = {};\n\t}\n\n\treturn {\n\t\tfilename: _filename( conf ),\n\t\ttitle: _title( conf ),\n\t\tmessageTop: _message(this, conf.message || conf.messageTop, 'top'),\n\t\tmessageBottom: _message(this, conf.messageBottom, 'bottom')\n\t};\n} );\n\n\n\n/**\n * Get the file name for an exported file.\n *\n * @param {object}\tconfig Button configuration\n * @param {boolean} incExtension Include the file name extension\n */\nvar _filename = function ( config )\n{\n\t// Backwards compatibility\n\tvar filename = config.filename === '*' && config.title !== '*' && config.title !== undefined && config.title !== null && config.title !== '' ?\n\t\tconfig.title :\n\t\tconfig.filename;\n\n\tif ( typeof filename === 'function' ) {\n\t\tfilename = filename();\n\t}\n\n\tif ( filename === undefined || filename === null ) {\n\t\treturn null;\n\t}\n\n\tif ( filename.indexOf( '*' ) !== -1 ) {\n\t\tfilename = filename.replace( '*', $('head > title').text() ).trim();\n\t}\n\n\t// Strip characters which the OS will object to\n\tfilename = filename.replace(/[^a-zA-Z0-9_\\u00A1-\\uFFFF\\.,\\-_ !\\(\\)]/g, \"\");\n\n\tvar extension = _stringOrFunction( config.extension );\n\tif ( ! extension ) {\n\t\textension = '';\n\t}\n\n\treturn filename + extension;\n};\n\n/**\n * Simply utility method to allow parameters to be given as a function\n *\n * @param {undefined|string|function} option Option\n * @return {null|string} Resolved value\n */\nvar _stringOrFunction = function ( option )\n{\n\tif ( option === null || option === undefined ) {\n\t\treturn null;\n\t}\n\telse if ( typeof option === 'function' ) {\n\t\treturn option();\n\t}\n\treturn option;\n};\n\n/**\n * Get the title for an exported file.\n *\n * @param {object} config\tButton configuration\n */\nvar _title = function ( config )\n{\n\tvar title = _stringOrFunction( config.title );\n\n\treturn title === null ?\n\t\tnull : title.indexOf( '*' ) !== -1 ?\n\t\t\ttitle.replace( '*', $('head > title').text() || 'Exported data' ) :\n\t\t\ttitle;\n};\n\nvar _message = function ( dt, option, position )\n{\n\tvar message = _stringOrFunction( option );\n\tif ( message === null ) {\n\t\treturn null;\n\t}\n\n\tvar caption = $('caption', dt.table().container()).eq(0);\n\tif ( message === '*' ) {\n\t\tvar side = caption.css( 'caption-side' );\n\t\tif ( side !== position ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn caption.length ?\n\t\t\tcaption.text() :\n\t\t\t'';\n\t}\n\n\treturn message;\n};\n\n\n\n\nvar _exportTextarea = $('<textarea/>')[0];\nvar _exportData = function ( dt, inOpts )\n{\n\tvar config = $.extend( true, {}, {\n\t\trows:           null,\n\t\tcolumns:        '',\n\t\tmodifier:       {\n\t\t\tsearch: 'applied',\n\t\t\torder:  'applied'\n\t\t},\n\t\torthogonal:     'display',\n\t\tstripHtml:      true,\n\t\tstripNewlines:  true,\n\t\tdecodeEntities: true,\n\t\ttrim:           true,\n\t\tformat:         {\n\t\t\theader: function ( d ) {\n\t\t\t\treturn Buttons.stripData( d, config );\n\t\t\t},\n\t\t\tfooter: function ( d ) {\n\t\t\t\treturn Buttons.stripData( d, config );\n\t\t\t},\n\t\t\tbody: function ( d ) {\n\t\t\t\treturn Buttons.stripData( d, config );\n\t\t\t}\n\t\t},\n\t\tcustomizeData: null\n\t}, inOpts );\n\n\tvar header = dt.columns( config.columns ).indexes().map( function (idx) {\n\t\tvar el = dt.column( idx ).header();\n\t\treturn config.format.header( el.innerHTML, idx, el );\n\t} ).toArray();\n\n\tvar footer = dt.table().footer() ?\n\t\tdt.columns( config.columns ).indexes().map( function (idx) {\n\t\t\tvar el = dt.column( idx ).footer();\n\t\t\treturn config.format.footer( el ? el.innerHTML : '', idx, el );\n\t\t} ).toArray() :\n\t\tnull;\n\t\n\t// If Select is available on this table, and any rows are selected, limit the export\n\t// to the selected rows. If no rows are selected, all rows will be exported. Specify\n\t// a `selected` modifier to control directly.\n\tvar modifier = $.extend( {}, config.modifier );\n\tif ( dt.select && typeof dt.select.info === 'function' && modifier.selected === undefined ) {\n\t\tif ( dt.rows( config.rows, $.extend( { selected: true }, modifier ) ).any() ) {\n\t\t\t$.extend( modifier, { selected: true } )\n\t\t}\n\t}\n\n\tvar rowIndexes = dt.rows( config.rows, modifier ).indexes().toArray();\n\tvar selectedCells = dt.cells( rowIndexes, config.columns );\n\tvar cells = selectedCells\n\t\t.render( config.orthogonal )\n\t\t.toArray();\n\tvar cellNodes = selectedCells\n\t\t.nodes()\n\t\t.toArray();\n\n\tvar columns = header.length;\n\tvar rows = columns > 0 ? cells.length / columns : 0;\n\tvar body = [];\n\tvar cellCounter = 0;\n\n\tfor ( var i=0, ien=rows ; i<ien ; i++ ) {\n\t\tvar row = [ columns ];\n\n\t\tfor ( var j=0 ; j<columns ; j++ ) {\n\t\t\trow[j] = config.format.body( cells[ cellCounter ], i, j, cellNodes[ cellCounter ] );\n\t\t\tcellCounter++;\n\t\t}\n\n\t\tbody[i] = row;\n\t}\n\n\tvar data = {\n\t\theader: header,\n\t\tfooter: footer,\n\t\tbody:   body\n\t};\n\n\tif ( config.customizeData ) {\n\t\tconfig.customizeData( data );\n\t}\n\n\treturn data;\n};\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables interface\n */\n\n// Attach to DataTables objects for global access\n$.fn.dataTable.Buttons = Buttons;\n$.fn.DataTable.Buttons = Buttons;\n\n\n\n// DataTables creation - check if the buttons have been defined for this table,\n// they will have been if the `B` option was used in `dom`, otherwise we should\n// create the buttons instance here so they can be inserted into the document\n// using the API. Listen for `init` for compatibility with pre 1.10.10, but to\n// be removed in future.\n$(document).on( 'init.dt plugin-init.dt', function (e, settings) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar opts = settings.oInit.buttons || DataTable.defaults.buttons;\n\n\tif ( opts && ! settings._buttons ) {\n\t\tnew Buttons( settings, opts ).container();\n\t}\n} );\n\nfunction _init ( settings, options ) {\n\tvar api = new DataTable.Api( settings );\n\tvar opts = options\n\t\t? options\n\t\t: api.init().buttons || DataTable.defaults.buttons;\n\n\treturn new Buttons( api, opts ).container();\n}\n\n// DataTables `dom` feature option\nDataTable.ext.feature.push( {\n\tfnInit: _init,\n\tcFeature: \"B\"\n} );\n\n// DataTables 2 layout feature\nif ( DataTable.ext.features ) {\n\tDataTable.ext.features.register( 'buttons', _init );\n}\n\n\nreturn Buttons;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-colreorder/css/colReorder.bootstrap4.css",
    "content": "table.DTCR_clonedTable.dataTable {\n  position: absolute !important;\n  background-color: rgba(255, 255, 255, 0.7);\n  z-index: 202;\n}\n\ndiv.DTCR_pointer {\n  width: 1px;\n  background-color: #0275d8;\n  z-index: 201;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-colreorder/js/colReorder.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for ColReorder\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-colreorder'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.ColReorder ) {\n\t\t\t\trequire('datatables.net-colreorder')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-colreorder/js/dataTables.colReorder.js",
    "content": "/*! ColReorder 1.5.3\n * ©2010-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     ColReorder\n * @description Provide the ability to reorder columns in a DataTable\n * @version     1.5.3\n * @file        dataTables.colReorder.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2010-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/**\n * Switch the key value pairing of an index array to be value key (i.e. the old value is now the\n * key). For example consider [ 2, 0, 1 ] this would be returned as [ 1, 2, 0 ].\n *  @method  fnInvertKeyValues\n *  @param   array aIn Array to switch around\n *  @returns array\n */\nfunction fnInvertKeyValues( aIn )\n{\n\tvar aRet=[];\n\tfor ( var i=0, iLen=aIn.length ; i<iLen ; i++ )\n\t{\n\t\taRet[ aIn[i] ] = i;\n\t}\n\treturn aRet;\n}\n\n\n/**\n * Modify an array by switching the position of two elements\n *  @method  fnArraySwitch\n *  @param   array aArray Array to consider, will be modified by reference (i.e. no return)\n *  @param   int iFrom From point\n *  @param   int iTo Insert point\n *  @returns void\n */\nfunction fnArraySwitch( aArray, iFrom, iTo )\n{\n\tvar mStore = aArray.splice( iFrom, 1 )[0];\n\taArray.splice( iTo, 0, mStore );\n}\n\n\n/**\n * Switch the positions of nodes in a parent node (note this is specifically designed for\n * table rows). Note this function considers all element nodes under the parent!\n *  @method  fnDomSwitch\n *  @param   string sTag Tag to consider\n *  @param   int iFrom Element to move\n *  @param   int Point to element the element to (before this point), can be null for append\n *  @returns void\n */\nfunction fnDomSwitch( nParent, iFrom, iTo )\n{\n\tvar anTags = [];\n\tfor ( var i=0, iLen=nParent.childNodes.length ; i<iLen ; i++ )\n\t{\n\t\tif ( nParent.childNodes[i].nodeType == 1 )\n\t\t{\n\t\t\tanTags.push( nParent.childNodes[i] );\n\t\t}\n\t}\n\tvar nStore = anTags[ iFrom ];\n\n\tif ( iTo !== null )\n\t{\n\t\tnParent.insertBefore( nStore, anTags[iTo] );\n\t}\n\telse\n\t{\n\t\tnParent.appendChild( nStore );\n\t}\n}\n\n\n/**\n * Plug-in for DataTables which will reorder the internal column structure by taking the column\n * from one position (iFrom) and insert it into a given point (iTo).\n *  @method  $.fn.dataTableExt.oApi.fnColReorder\n *  @param   object oSettings DataTables settings object - automatically added by DataTables!\n *  @param   int iFrom Take the column to be repositioned from this point\n *  @param   int iTo and insert it into this point\n *  @param   bool drop Indicate if the reorder is the final one (i.e. a drop)\n *    not a live reorder\n *  @param   bool invalidateRows speeds up processing if false passed\n *  @returns void\n */\n$.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo, drop, invalidateRows )\n{\n\tvar i, iLen, j, jLen, jen, iCols=oSettings.aoColumns.length, nTrs, oCol;\n\tvar attrMap = function ( obj, prop, mapping ) {\n\t\tif ( ! obj[ prop ] || typeof obj[ prop ] === 'function' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar a = obj[ prop ].split('.');\n\t\tvar num = a.shift();\n\n\t\tif ( isNaN( num*1 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tobj[ prop ] = mapping[ num*1 ]+'.'+a.join('.');\n\t};\n\n\t/* Sanity check in the input */\n\tif ( iFrom == iTo )\n\t{\n\t\t/* Pointless reorder */\n\t\treturn;\n\t}\n\n\tif ( iFrom < 0 || iFrom >= iCols )\n\t{\n\t\tthis.oApi._fnLog( oSettings, 1, \"ColReorder 'from' index is out of bounds: \"+iFrom );\n\t\treturn;\n\t}\n\n\tif ( iTo < 0 || iTo >= iCols )\n\t{\n\t\tthis.oApi._fnLog( oSettings, 1, \"ColReorder 'to' index is out of bounds: \"+iTo );\n\t\treturn;\n\t}\n\n\t/*\n\t * Calculate the new column array index, so we have a mapping between the old and new\n\t */\n\tvar aiMapping = [];\n\tfor ( i=0, iLen=iCols ; i<iLen ; i++ )\n\t{\n\t\taiMapping[i] = i;\n\t}\n\tfnArraySwitch( aiMapping, iFrom, iTo );\n\tvar aiInvertMapping = fnInvertKeyValues( aiMapping );\n\n\n\t/*\n\t * Convert all internal indexing to the new column order indexes\n\t */\n\t/* Sorting */\n\tfor ( i=0, iLen=oSettings.aaSorting.length ; i<iLen ; i++ )\n\t{\n\t\toSettings.aaSorting[i][0] = aiInvertMapping[ oSettings.aaSorting[i][0] ];\n\t}\n\n\t/* Fixed sorting */\n\tif ( oSettings.aaSortingFixed !== null )\n\t{\n\t\tfor ( i=0, iLen=oSettings.aaSortingFixed.length ; i<iLen ; i++ )\n\t\t{\n\t\t\toSettings.aaSortingFixed[i][0] = aiInvertMapping[ oSettings.aaSortingFixed[i][0] ];\n\t\t}\n\t}\n\n\t/* Data column sorting (the column which the sort for a given column should take place on) */\n\tfor ( i=0, iLen=iCols ; i<iLen ; i++ )\n\t{\n\t\toCol = oSettings.aoColumns[i];\n\t\tfor ( j=0, jLen=oCol.aDataSort.length ; j<jLen ; j++ )\n\t\t{\n\t\t\toCol.aDataSort[j] = aiInvertMapping[ oCol.aDataSort[j] ];\n\t\t}\n\n\t\t// Update the column indexes\n\t\toCol.idx = aiInvertMapping[ oCol.idx ];\n\t}\n\n\t// Update 1.10 optimised sort class removal variable\n\t$.each( oSettings.aLastSort, function (i, val) {\n\t\toSettings.aLastSort[i].src = aiInvertMapping[ val.src ];\n\t} );\n\n\t/* Update the Get and Set functions for each column */\n\tfor ( i=0, iLen=iCols ; i<iLen ; i++ )\n\t{\n\t\toCol = oSettings.aoColumns[i];\n\n\t\tif ( typeof oCol.mData == 'number' ) {\n\t\t\toCol.mData = aiInvertMapping[ oCol.mData ];\n\t\t}\n\t\telse if ( $.isPlainObject( oCol.mData ) ) {\n\t\t\t// HTML5 data sourced\n\t\t\tattrMap( oCol.mData, '_',      aiInvertMapping );\n\t\t\tattrMap( oCol.mData, 'filter', aiInvertMapping );\n\t\t\tattrMap( oCol.mData, 'sort',   aiInvertMapping );\n\t\t\tattrMap( oCol.mData, 'type',   aiInvertMapping );\n\t\t}\n\t}\n\n\t/*\n\t * Move the DOM elements\n\t */\n\tif ( oSettings.aoColumns[iFrom].bVisible )\n\t{\n\t\t/* Calculate the current visible index and the point to insert the node before. The insert\n\t\t * before needs to take into account that there might not be an element to insert before,\n\t\t * in which case it will be null, and an appendChild should be used\n\t\t */\n\t\tvar iVisibleIndex = this.oApi._fnColumnIndexToVisible( oSettings, iFrom );\n\t\tvar iInsertBeforeIndex = null;\n\n\t\ti = iTo < iFrom ? iTo : iTo + 1;\n\t\twhile ( iInsertBeforeIndex === null && i < iCols )\n\t\t{\n\t\t\tiInsertBeforeIndex = this.oApi._fnColumnIndexToVisible( oSettings, i );\n\t\t\ti++;\n\t\t}\n\n\t\t/* Header */\n\t\tnTrs = oSettings.nTHead.getElementsByTagName('tr');\n\t\tfor ( i=0, iLen=nTrs.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tfnDomSwitch( nTrs[i], iVisibleIndex, iInsertBeforeIndex );\n\t\t}\n\n\t\t/* Footer */\n\t\tif ( oSettings.nTFoot !== null )\n\t\t{\n\t\t\tnTrs = oSettings.nTFoot.getElementsByTagName('tr');\n\t\t\tfor ( i=0, iLen=nTrs.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tfnDomSwitch( nTrs[i], iVisibleIndex, iInsertBeforeIndex );\n\t\t\t}\n\t\t}\n\n\t\t/* Body */\n\t\tfor ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tif ( oSettings.aoData[i].nTr !== null )\n\t\t\t{\n\t\t\t\tfnDomSwitch( oSettings.aoData[i].nTr, iVisibleIndex, iInsertBeforeIndex );\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Move the internal array elements\n\t */\n\t/* Columns */\n\tfnArraySwitch( oSettings.aoColumns, iFrom, iTo );\n\n\t// regenerate the get / set functions\n\tfor ( i=0, iLen=iCols ; i<iLen ; i++ ) {\n\t\toSettings.oApi._fnColumnOptions( oSettings, i, {} );\n\t}\n\n\t/* Search columns */\n\tfnArraySwitch( oSettings.aoPreSearchCols, iFrom, iTo );\n\n\t/* Array array - internal data anodes cache */\n\tfor ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )\n\t{\n\t\tvar data = oSettings.aoData[i];\n\t\tvar cells = data.anCells;\n\n\t\tif ( cells ) {\n\t\t\tfnArraySwitch( cells, iFrom, iTo );\n\n\t\t\t// Longer term, should this be moved into the DataTables' invalidate\n\t\t\t// methods?\n\t\t\tfor ( j=0, jen=cells.length ; j<jen ; j++ ) {\n\t\t\t\tif ( cells[j] && cells[j]._DT_CellIndex ) {\n\t\t\t\t\tcells[j]._DT_CellIndex.column = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// For DOM sourced data, the invalidate will reread the cell into\n\t\t// the data array, but for data sources as an array, they need to\n\t\t// be flipped\n\t\tif ( data.src !== 'dom' && Array.isArray( data._aData ) ) {\n\t\t\tfnArraySwitch( data._aData, iFrom, iTo );\n\t\t}\n\t}\n\n\t/* Reposition the header elements in the header layout array */\n\tfor ( i=0, iLen=oSettings.aoHeader.length ; i<iLen ; i++ )\n\t{\n\t\tfnArraySwitch( oSettings.aoHeader[i], iFrom, iTo );\n\t}\n\n\tif ( oSettings.aoFooter !== null )\n\t{\n\t\tfor ( i=0, iLen=oSettings.aoFooter.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tfnArraySwitch( oSettings.aoFooter[i], iFrom, iTo );\n\t\t}\n\t}\n\n\tif ( invalidateRows || invalidateRows === undefined )\n\t{\n\t\t$.fn.dataTable.Api( oSettings ).rows().invalidate();\n\t}\n\n\t/*\n\t * Update DataTables' event handlers\n\t */\n\n\t/* Sort listener */\n\tfor ( i=0, iLen=iCols ; i<iLen ; i++ )\n\t{\n\t\t$(oSettings.aoColumns[i].nTh).off('.DT');\n\t\tthis.oApi._fnSortAttachListener( oSettings, oSettings.aoColumns[i].nTh, i );\n\t}\n\n\n\t/* Fire an event so other plug-ins can update */\n\t$(oSettings.oInstance).trigger( 'column-reorder.dt', [ oSettings, {\n\t\tfrom: iFrom,\n\t\tto: iTo,\n\t\tmapping: aiInvertMapping,\n\t\tdrop: drop,\n\n\t\t// Old style parameters for compatibility\n\t\tiFrom: iFrom,\n\t\tiTo: iTo,\n\t\taiInvertMapping: aiInvertMapping\n\t} ] );\n};\n\n/**\n * ColReorder provides column visibility control for DataTables\n * @class ColReorder\n * @constructor\n * @param {object} dt DataTables settings object\n * @param {object} opts ColReorder options\n */\nvar ColReorder = function( dt, opts )\n{\n\tvar settings = new $.fn.dataTable.Api( dt ).settings()[0];\n\n\t// Ensure that we can't initialise on the same table twice\n\tif ( settings._colReorder ) {\n\t\treturn settings._colReorder;\n\t}\n\n\t// Allow the options to be a boolean for defaults\n\tif ( opts === true ) {\n\t\topts = {};\n\t}\n\n\t// Convert from camelCase to Hungarian, just as DataTables does\n\tvar camelToHungarian = $.fn.dataTable.camelToHungarian;\n\tif ( camelToHungarian ) {\n\t\tcamelToHungarian( ColReorder.defaults, ColReorder.defaults, true );\n\t\tcamelToHungarian( ColReorder.defaults, opts || {} );\n\t}\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public class variables\n\t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\t/**\n\t * @namespace Settings object which contains customisable information for ColReorder instance\n\t */\n\tthis.s = {\n\t\t/**\n\t\t * DataTables settings object\n\t\t *  @property dt\n\t\t *  @type     Object\n\t\t *  @default  null\n\t\t */\n\t\t\"dt\": null,\n\n\t\t/**\n\t\t * Enable flag\n\t\t *  @property dt\n\t\t *  @type     Object\n\t\t *  @default  null\n\t\t */\n\t\t\"enable\": null,\n\n\t\t/**\n\t\t * Initialisation object used for this instance\n\t\t *  @property init\n\t\t *  @type     object\n\t\t *  @default  {}\n\t\t */\n\t\t\"init\": $.extend( true, {}, ColReorder.defaults, opts ),\n\n\t\t/**\n\t\t * Number of columns to fix (not allow to be reordered)\n\t\t *  @property fixed\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\t\"fixed\": 0,\n\n\t\t/**\n\t\t * Number of columns to fix counting from right (not allow to be reordered)\n\t\t *  @property fixedRight\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\t\"fixedRight\": 0,\n\n\t\t/**\n\t\t * Callback function for once the reorder has been done\n\t\t *  @property reorderCallback\n\t\t *  @type     function\n\t\t *  @default  null\n\t\t */\n\t\t\"reorderCallback\": null,\n\n\t\t/**\n\t\t * @namespace Information used for the mouse drag\n\t\t */\n\t\t\"mouse\": {\n\t\t\t\"startX\": -1,\n\t\t\t\"startY\": -1,\n\t\t\t\"offsetX\": -1,\n\t\t\t\"offsetY\": -1,\n\t\t\t\"target\": -1,\n\t\t\t\"targetIndex\": -1,\n\t\t\t\"fromIndex\": -1\n\t\t},\n\n\t\t/**\n\t\t * Information which is used for positioning the insert cusor and knowing where to do the\n\t\t * insert. Array of objects with the properties:\n\t\t *   x: x-axis position\n\t\t *   to: insert point\n\t\t *  @property aoTargets\n\t\t *  @type     array\n\t\t *  @default  []\n\t\t */\n\t\t\"aoTargets\": []\n\t};\n\n\n\t/**\n\t * @namespace Common and useful DOM elements for the class instance\n\t */\n\tthis.dom = {\n\t\t/**\n\t\t * Dragging element (the one the mouse is moving)\n\t\t *  @property drag\n\t\t *  @type     element\n\t\t *  @default  null\n\t\t */\n\t\t\"drag\": null,\n\n\t\t/**\n\t\t * The insert cursor\n\t\t *  @property pointer\n\t\t *  @type     element\n\t\t *  @default  null\n\t\t */\n\t\t\"pointer\": null\n\t};\n\n\t/* Constructor logic */\n\tthis.s.enable = this.s.init.bEnable;\n\tthis.s.dt = settings;\n\tthis.s.dt._colReorder = this;\n\tthis._fnConstruct();\n\n\treturn this;\n};\n\n\n\n$.extend( ColReorder.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public methods\n\t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\t/**\n\t * Enable / disable end user interaction\n\t */\n\tfnEnable: function ( flag )\n\t{\n\t\tif ( flag === false ) {\n\t\t\treturn fnDisable();\n\t\t}\n\n\t\tthis.s.enable = true;\n\t},\n\n\t/**\n\t * Disable end user interaction\n\t */\n\tfnDisable: function ()\n\t{\n\t\tthis.s.enable = false;\n\t},\n\n\t/**\n\t * Reset the column ordering to the original ordering that was detected on\n\t * start up.\n\t *  @return {this} Returns `this` for chaining.\n\t *\n\t *  @example\n\t *    // DataTables initialisation with ColReorder\n\t *    var table = $('#example').dataTable( {\n\t *        \"sDom\": 'Rlfrtip'\n\t *    } );\n\t *\n\t *    // Add click event to a button to reset the ordering\n\t *    $('#resetOrdering').click( function (e) {\n\t *        e.preventDefault();\n\t *        $.fn.dataTable.ColReorder( table ).fnReset();\n\t *    } );\n\t */\n\t\"fnReset\": function ()\n\t{\n\t\tthis._fnOrderColumns( this.fnOrder() );\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * `Deprecated` - Get the current order of the columns, as an array.\n\t *  @return {array} Array of column identifiers\n\t *  @deprecated `fnOrder` should be used in preference to this method.\n\t *      `fnOrder` acts as a getter/setter.\n\t */\n\t\"fnGetCurrentOrder\": function ()\n\t{\n\t\treturn this.fnOrder();\n\t},\n\n\t/**\n\t * Get the current order of the columns, as an array. Note that the values\n\t * given in the array are unique identifiers for each column. Currently\n\t * these are the original ordering of the columns that was detected on\n\t * start up, but this could potentially change in future.\n\t *  @return {array} Array of column identifiers\n\t *\n\t *  @example\n\t *    // Get column ordering for the table\n\t *    var order = $.fn.dataTable.ColReorder( dataTable ).fnOrder();\n\t *//**\n\t * Set the order of the columns, from the positions identified in the\n\t * ordering array given. Note that ColReorder takes a brute force approach\n\t * to reordering, so it is possible multiple reordering events will occur\n\t * before the final order is settled upon.\n\t *  @param {array} [set] Array of column identifiers in the new order. Note\n\t *    that every column must be included, uniquely, in this array.\n\t *  @return {this} Returns `this` for chaining.\n\t *\n\t *  @example\n\t *    // Swap the first and second columns\n\t *    $.fn.dataTable.ColReorder( dataTable ).fnOrder( [1, 0, 2, 3, 4] );\n\t *\n\t *  @example\n\t *    // Move the first column to the end for the table `#example`\n\t *    var curr = $.fn.dataTable.ColReorder( '#example' ).fnOrder();\n\t *    var first = curr.shift();\n\t *    curr.push( first );\n\t *    $.fn.dataTable.ColReorder( '#example' ).fnOrder( curr );\n\t *\n\t *  @example\n\t *    // Reverse the table's order\n\t *    $.fn.dataTable.ColReorder( '#example' ).fnOrder(\n\t *      $.fn.dataTable.ColReorder( '#example' ).fnOrder().reverse()\n\t *    );\n\t */\n\t\"fnOrder\": function ( set, original )\n\t{\n\t\tvar a = [], i, ien, j, jen;\n\t\tvar columns = this.s.dt.aoColumns;\n\n\t\tif ( set === undefined ){\n\t\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\t\ta.push( columns[i]._ColReorder_iOrigCol );\n\t\t\t}\n\n\t\t\treturn a;\n\t\t}\n\n\t\t// The order given is based on the original indexes, rather than the\n\t\t// existing ones, so we need to translate from the original to current\n\t\t// before then doing the order\n\t\tif ( original ) {\n\t\t\tvar order = this.fnOrder();\n\n\t\t\tfor ( i=0, ien=set.length ; i<ien ; i++ ) {\n\t\t\t\ta.push( $.inArray( set[i], order ) );\n\t\t\t}\n\n\t\t\tset = a;\n\t\t}\n\n\t\tthis._fnOrderColumns( fnInvertKeyValues( set ) );\n\n\t\treturn this;\n\t},\n\n\n\t/**\n\t * Convert from the original column index, to the original\n\t *\n\t * @param  {int|array} idx Index(es) to convert\n\t * @param  {string} dir Transpose direction - `fromOriginal` / `toCurrent`\n\t *   or `'toOriginal` / `fromCurrent`\n\t * @return {int|array}     Converted values\n\t */\n\tfnTranspose: function ( idx, dir )\n\t{\n\t\tif ( ! dir ) {\n\t\t\tdir = 'toCurrent';\n\t\t}\n\n\t\tvar order = this.fnOrder();\n\t\tvar columns = this.s.dt.aoColumns;\n\n\t\tif ( dir === 'toCurrent' ) {\n\t\t\t// Given an original index, want the current\n\t\t\treturn ! Array.isArray( idx ) ?\n\t\t\t\t$.inArray( idx, order ) :\n\t\t\t\t$.map( idx, function ( index ) {\n\t\t\t\t\treturn $.inArray( index, order );\n\t\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\t// Given a current index, want the original\n\t\t\treturn ! Array.isArray( idx ) ?\n\t\t\t\tcolumns[idx]._ColReorder_iOrigCol :\n\t\t\t\t$.map( idx, function ( index ) {\n\t\t\t\t\treturn columns[index]._ColReorder_iOrigCol;\n\t\t\t\t} );\n\t\t}\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods (they are of course public in JS, but recommended as private)\n\t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\t/**\n\t * Constructor logic\n\t *  @method  _fnConstruct\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnConstruct\": function ()\n\t{\n\t\tvar that = this;\n\t\tvar iLen = this.s.dt.aoColumns.length;\n\t\tvar table = this.s.dt.nTable;\n\t\tvar i;\n\n\t\t/* Columns discounted from reordering - counting left to right */\n\t\tif ( this.s.init.iFixedColumns )\n\t\t{\n\t\t\tthis.s.fixed = this.s.init.iFixedColumns;\n\t\t}\n\n\t\tif ( this.s.init.iFixedColumnsLeft )\n\t\t{\n\t\t\tthis.s.fixed = this.s.init.iFixedColumnsLeft;\n\t\t}\n\n\t\t/* Columns discounted from reordering - counting right to left */\n\t\tthis.s.fixedRight = this.s.init.iFixedColumnsRight ?\n\t\t\tthis.s.init.iFixedColumnsRight :\n\t\t\t0;\n\n\t\t/* Drop callback initialisation option */\n\t\tif ( this.s.init.fnReorderCallback )\n\t\t{\n\t\t\tthis.s.reorderCallback = this.s.init.fnReorderCallback;\n\t\t}\n\n\t\t/* Add event handlers for the drag and drop, and also mark the original column order */\n\t\tfor ( i = 0; i < iLen; i++ )\n\t\t{\n\t\t\tif ( i > this.s.fixed-1 && i < iLen - this.s.fixedRight )\n\t\t\t{\n\t\t\t\tthis._fnMouseListener( i, this.s.dt.aoColumns[i].nTh );\n\t\t\t}\n\n\t\t\t/* Mark the original column order for later reference */\n\t\t\tthis.s.dt.aoColumns[i]._ColReorder_iOrigCol = i;\n\t\t}\n\n\t\t/* State saving */\n\t\tthis.s.dt.oApi._fnCallbackReg( this.s.dt, 'aoStateSaveParams', function (oS, oData) {\n\t\t\tthat._fnStateSave.call( that, oData );\n\t\t}, \"ColReorder_State\" );\n\n\t\t/* An initial column order has been specified */\n\t\tvar aiOrder = null;\n\t\tif ( this.s.init.aiOrder )\n\t\t{\n\t\t\taiOrder = this.s.init.aiOrder.slice();\n\t\t}\n\n\t\t/* State loading, overrides the column order given */\n\t\tif ( this.s.dt.oLoadedState && typeof this.s.dt.oLoadedState.ColReorder != 'undefined' &&\n\t\t  this.s.dt.oLoadedState.ColReorder.length == this.s.dt.aoColumns.length )\n\t\t{\n\t\t\taiOrder = this.s.dt.oLoadedState.ColReorder;\n\t\t}\n\n\t\t/* If we have an order to apply - do so */\n\t\tif ( aiOrder )\n\t\t{\n\t\t\t/* We might be called during or after the DataTables initialisation. If before, then we need\n\t\t\t * to wait until the draw is done, if after, then do what we need to do right away\n\t\t\t */\n\t\t\tif ( !that.s.dt._bInitComplete )\n\t\t\t{\n\t\t\t\tvar bDone = false;\n\t\t\t\t$(table).on( 'draw.dt.colReorder', function () {\n\t\t\t\t\tif ( !that.s.dt._bInitComplete && !bDone )\n\t\t\t\t\t{\n\t\t\t\t\t\tbDone = true;\n\t\t\t\t\t\tvar resort = fnInvertKeyValues( aiOrder );\n\t\t\t\t\t\tthat._fnOrderColumns.call( that, resort );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tvar resort = fnInvertKeyValues( aiOrder );\n\t\t\t\tthat._fnOrderColumns.call( that, resort );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis._fnSetColumnIndexes();\n\t\t}\n\n\t\t// Destroy clean up\n\t\t$(table).on( 'destroy.dt.colReorder', function () {\n\t\t\t$(table).off( 'destroy.dt.colReorder draw.dt.colReorder' );\n\n\t\t\t$.each( that.s.dt.aoColumns, function (i, column) {\n\t\t\t\t$(column.nTh).off('.ColReorder');\n\t\t\t\t$(column.nTh).removeAttr('data-column-index');\n\t\t\t} );\n\n\t\t\tthat.s.dt._colReorder = null;\n\t\t\tthat.s = null;\n\t\t} );\n\t},\n\n\n\t/**\n\t * Set the column order from an array\n\t *  @method  _fnOrderColumns\n\t *  @param   array a An array of integers which dictate the column order that should be applied\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnOrderColumns\": function ( a )\n\t{\n\t\tvar changed = false;\n\n\t\tif ( a.length != this.s.dt.aoColumns.length )\n\t\t{\n\t\t\tthis.s.dt.oInstance.oApi._fnLog( this.s.dt, 1, \"ColReorder - array reorder does not \"+\n\t\t\t\t\"match known number of columns. Skipping.\" );\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( var i=0, iLen=a.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tvar currIndex = $.inArray( i, a );\n\t\t\tif ( i != currIndex )\n\t\t\t{\n\t\t\t\t/* Reorder our switching array */\n\t\t\t\tfnArraySwitch( a, currIndex, i );\n\n\t\t\t\t/* Do the column reorder in the table */\n\t\t\t\tthis.s.dt.oInstance.fnColReorder( currIndex, i, true, false );\n\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\n\t\tthis._fnSetColumnIndexes();\n\n\t\t// Has anything actually changed? If not, then nothing else to do\n\t\tif ( ! changed ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$.fn.dataTable.Api( this.s.dt ).rows().invalidate();\n\n\t\t/* When scrolling we need to recalculate the column sizes to allow for the shift */\n\t\tif ( this.s.dt.oScroll.sX !== \"\" || this.s.dt.oScroll.sY !== \"\" )\n\t\t{\n\t\t\tthis.s.dt.oInstance.fnAdjustColumnSizing( false );\n\t\t}\n\n\t\t/* Save the state */\n\t\tthis.s.dt.oInstance.oApi._fnSaveState( this.s.dt );\n\n\t\tif ( this.s.reorderCallback !== null )\n\t\t{\n\t\t\tthis.s.reorderCallback.call( this );\n\t\t}\n\t},\n\n\n\t/**\n\t * Because we change the indexes of columns in the table, relative to their starting point\n\t * we need to reorder the state columns to what they are at the starting point so we can\n\t * then rearrange them again on state load!\n\t *  @method  _fnStateSave\n\t *  @param   object oState DataTables state\n\t *  @returns string JSON encoded cookie string for DataTables\n\t *  @private\n\t */\n\t\"_fnStateSave\": function ( oState )\n\t{\n\t\tvar i, iLen, aCopy, iOrigColumn;\n\t\tvar oSettings = this.s.dt;\n\t\tvar columns = oSettings.aoColumns;\n\n\t\toState.ColReorder = [];\n\n\t\t/* Sorting */\n\t\tif ( oState.aaSorting ) {\n\t\t\t// 1.10.0-\n\t\t\tfor ( i=0 ; i<oState.aaSorting.length ; i++ ) {\n\t\t\t\toState.aaSorting[i][0] = columns[ oState.aaSorting[i][0] ]._ColReorder_iOrigCol;\n\t\t\t}\n\n\t\t\tvar aSearchCopy = $.extend( true, [], oState.aoSearchCols );\n\n\t\t\tfor ( i=0, iLen=columns.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tiOrigColumn = columns[i]._ColReorder_iOrigCol;\n\n\t\t\t\t/* Column filter */\n\t\t\t\toState.aoSearchCols[ iOrigColumn ] = aSearchCopy[i];\n\n\t\t\t\t/* Visibility */\n\t\t\t\toState.abVisCols[ iOrigColumn ] = columns[i].bVisible;\n\n\t\t\t\t/* Column reordering */\n\t\t\t\toState.ColReorder.push( iOrigColumn );\n\t\t\t}\n\t\t}\n\t\telse if ( oState.order ) {\n\t\t\t// 1.10.1+\n\t\t\tfor ( i=0 ; i<oState.order.length ; i++ ) {\n\t\t\t\toState.order[i][0] = columns[ oState.order[i][0] ]._ColReorder_iOrigCol;\n\t\t\t}\n\n\t\t\tvar stateColumnsCopy = $.extend( true, [], oState.columns );\n\n\t\t\tfor ( i=0, iLen=columns.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tiOrigColumn = columns[i]._ColReorder_iOrigCol;\n\n\t\t\t\t/* Columns */\n\t\t\t\toState.columns[ iOrigColumn ] = stateColumnsCopy[i];\n\n\t\t\t\t/* Column reordering */\n\t\t\t\toState.ColReorder.push( iOrigColumn );\n\t\t\t}\n\t\t}\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Mouse drop and drag\n\t */\n\n\t/**\n\t * Add a mouse down listener to a particluar TH element\n\t *  @method  _fnMouseListener\n\t *  @param   int i Column index\n\t *  @param   element nTh TH element clicked on\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnMouseListener\": function ( i, nTh )\n\t{\n\t\tvar that = this;\n\t\t$(nTh)\n\t\t\t.on( 'mousedown.ColReorder', function (e) {\n\t\t\t\tif ( that.s.enable && e.which === 1 ) {\n\t\t\t\t\tthat._fnMouseDown.call( that, e, nTh );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'touchstart.ColReorder', function (e) {\n\t\t\t\tif ( that.s.enable ) {\n\t\t\t\t\tthat._fnMouseDown.call( that, e, nTh );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\n\n\t/**\n\t * Mouse down on a TH element in the table header\n\t *  @method  _fnMouseDown\n\t *  @param   event e Mouse event\n\t *  @param   element nTh TH element to be dragged\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnMouseDown\": function ( e, nTh )\n\t{\n\t\tvar that = this;\n\n\t\t/* Store information about the mouse position */\n\t\tvar target = $(e.target).closest('th, td');\n\t\tvar offset = target.offset();\n\t\tvar idx = parseInt( $(nTh).attr('data-column-index'), 10 );\n\n\t\tif ( idx === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.s.mouse.startX = this._fnCursorPosition( e, 'pageX' );\n\t\tthis.s.mouse.startY = this._fnCursorPosition( e, 'pageY' );\n\t\tthis.s.mouse.offsetX = this._fnCursorPosition( e, 'pageX' ) - offset.left;\n\t\tthis.s.mouse.offsetY = this._fnCursorPosition( e, 'pageY' ) - offset.top;\n\t\tthis.s.mouse.target = this.s.dt.aoColumns[ idx ].nTh;//target[0];\n\t\tthis.s.mouse.targetIndex = idx;\n\t\tthis.s.mouse.fromIndex = idx;\n\n\t\tthis._fnRegions();\n\n\t\t/* Add event handlers to the document */\n\t\t$(document)\n\t\t\t.on( 'mousemove.ColReorder touchmove.ColReorder', function (e) {\n\t\t\t\tthat._fnMouseMove.call( that, e );\n\t\t\t} )\n\t\t\t.on( 'mouseup.ColReorder touchend.ColReorder', function (e) {\n\t\t\t\tthat._fnMouseUp.call( that, e );\n\t\t\t} );\n\t},\n\n\n\t/**\n\t * Deal with a mouse move event while dragging a node\n\t *  @method  _fnMouseMove\n\t *  @param   event e Mouse event\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnMouseMove\": function ( e )\n\t{\n\t\tvar that = this;\n\n\t\tif ( this.dom.drag === null )\n\t\t{\n\t\t\t/* Only create the drag element if the mouse has moved a specific distance from the start\n\t\t\t * point - this allows the user to make small mouse movements when sorting and not have a\n\t\t\t * possibly confusing drag element showing up\n\t\t\t */\n\t\t\tif ( Math.pow(\n\t\t\t\tMath.pow(this._fnCursorPosition( e, 'pageX') - this.s.mouse.startX, 2) +\n\t\t\t\tMath.pow(this._fnCursorPosition( e, 'pageY') - this.s.mouse.startY, 2), 0.5 ) < 5 )\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._fnCreateDragNode();\n\t\t}\n\n\t\t/* Position the element - we respect where in the element the click occured */\n\t\tthis.dom.drag.css( {\n\t\t\tleft: this._fnCursorPosition( e, 'pageX' ) - this.s.mouse.offsetX,\n\t\t\ttop: this._fnCursorPosition( e, 'pageY' ) - this.s.mouse.offsetY\n\t\t} );\n\n\t\t/* Based on the current mouse position, calculate where the insert should go */\n\t\tvar target;\n\t\tvar lastToIndex = this.s.mouse.toIndex;\n\t\tvar cursorXPosiotion = this._fnCursorPosition(e, 'pageX');\n\t\tvar targetsPrev = function (i) {\n\t\t\twhile (i >= 0) {\n\t\t\t\ti--;\n\n\t\t\t\tif (i <= 0) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif (that.s.aoTargets[i+1].x !== that.s.aoTargets[i].x) {\n\t\t\t\t\treturn that.s.aoTargets[i];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar firstNotHidden = function () {\n\t\t\tfor (var i=0 ; i<that.s.aoTargets.length-1 ; i++) {\n\t\t\t\tif (that.s.aoTargets[i].x !== that.s.aoTargets[i+1].x) {\n\t\t\t\t\treturn that.s.aoTargets[i];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar lastNotHidden = function () {\n\t\t\tfor (var i=that.s.aoTargets.length-1 ; i>0 ; i--) {\n\t\t\t\tif (that.s.aoTargets[i].x !== that.s.aoTargets[i-1].x) {\n\t\t\t\t\treturn that.s.aoTargets[i];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n        for (var i = 1; i < this.s.aoTargets.length; i++) {\n\t\t\tvar prevTarget = targetsPrev(i);\n\t\t\tif (! prevTarget) {\n\t\t\t\tprevTarget = firstNotHidden();\n\t\t\t}\n\n\t\t\tvar prevTargetMiddle = prevTarget.x + (this.s.aoTargets[i].x - prevTarget.x) / 2;\n\n            if (this._fnIsLtr()) {\n                if (cursorXPosiotion < prevTargetMiddle ) {\n                    target = prevTarget;\n                    break;\n                }\n            }\n            else {\n                if (cursorXPosiotion > prevTargetMiddle) {\n                    target = prevTarget;\n                    break;\n                }\n            }\n\t\t}\n\n        if (target) {\n            this.dom.pointer.css('left', target.x);\n            this.s.mouse.toIndex = target.to;\n        }\n        else {\n\t\t\t// The insert element wasn't positioned in the array (less than\n\t\t\t// operator), so we put it at the end\n\t\t\tthis.dom.pointer.css( 'left', lastNotHidden().x );\n\t\t\tthis.s.mouse.toIndex = lastNotHidden().to;\n\t\t}\n\n\t\t// Perform reordering if realtime updating is on and the column has moved\n\t\tif ( this.s.init.bRealtime && lastToIndex !== this.s.mouse.toIndex ) {\n\t\t\tthis.s.dt.oInstance.fnColReorder( this.s.mouse.fromIndex, this.s.mouse.toIndex );\n\t\t\tthis.s.mouse.fromIndex = this.s.mouse.toIndex;\n\n\t\t\t// Not great for performance, but required to keep everything in alignment\n\t\t\tif ( this.s.dt.oScroll.sX !== \"\" || this.s.dt.oScroll.sY !== \"\" )\n\t\t\t{\n\t\t\t\tthis.s.dt.oInstance.fnAdjustColumnSizing( false );\n\t\t\t}\n\n\t\t\tthis._fnRegions();\n\t\t}\n\t},\n\n\n\t/**\n\t * Finish off the mouse drag and insert the column where needed\n\t *  @method  _fnMouseUp\n\t *  @param   event e Mouse event\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnMouseUp\": function ( e )\n\t{\n\t\tvar that = this;\n\n\t\t$(document).off( '.ColReorder' );\n\n\t\tif ( this.dom.drag !== null )\n\t\t{\n\t\t\t/* Remove the guide elements */\n\t\t\tthis.dom.drag.remove();\n\t\t\tthis.dom.pointer.remove();\n\t\t\tthis.dom.drag = null;\n\t\t\tthis.dom.pointer = null;\n\n\t\t\t/* Actually do the reorder */\n\t\t\tthis.s.dt.oInstance.fnColReorder( this.s.mouse.fromIndex, this.s.mouse.toIndex, true );\n\t\t\tthis._fnSetColumnIndexes();\n\n\t\t\t/* When scrolling we need to recalculate the column sizes to allow for the shift */\n\t\t\tif ( this.s.dt.oScroll.sX !== \"\" || this.s.dt.oScroll.sY !== \"\" )\n\t\t\t{\n\t\t\t\tthis.s.dt.oInstance.fnAdjustColumnSizing( false );\n\t\t\t}\n\n\t\t\t/* Save the state */\n\t\t\tthis.s.dt.oInstance.oApi._fnSaveState( this.s.dt );\n\n\t\t\tif ( this.s.reorderCallback !== null )\n\t\t\t{\n\t\t\t\tthis.s.reorderCallback.call( this );\n\t\t\t}\n\t\t}\n\t},\n\n\n\t/**\n\t * Calculate a cached array with the points of the column inserts, and the\n\t * 'to' points\n\t *  @method  _fnRegions\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnRegions\": function ()\n\t{\n\t\tvar aoColumns = this.s.dt.aoColumns;\n        var isLTR = this._fnIsLtr();\n\t\tthis.s.aoTargets.splice(0, this.s.aoTargets.length);\n\t\tvar lastBound = $(this.s.dt.nTable).offset().left;\n\n        var aoColumnBounds = [];\n        $.each(aoColumns, function (i, column) {\n            if (column.bVisible && column.nTh.style.display !== 'none') {\n                var nth = $(column.nTh);\n\t\t\t\tvar bound = nth.offset().left;\n\n                if (isLTR) {\n                    bound += nth.outerWidth();\n                }\n\n                aoColumnBounds.push({\n                    index: i,\n                    bound: bound\n\t\t\t\t});\n\n\t\t\t\tlastBound = bound;\n\t\t\t}\n\t\t\telse {\n                aoColumnBounds.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\tbound: lastBound\n                });\n\t\t\t}\n\t\t});\n\n        var firstColumn = aoColumnBounds[0];\n\t\tvar firstColumnWidth = $(aoColumns[firstColumn.index].nTh).outerWidth();\n\n        this.s.aoTargets.push({\n            to: 0,\n\t\t\tx: firstColumn.bound - firstColumnWidth\n        });\n\n        for (var i = 0; i < aoColumnBounds.length; i++) {\n            var columnBound = aoColumnBounds[i];\n            var iToPoint = columnBound.index;\n\n            /* For the column / header in question, we want it's position to remain the same if the\n            * position is just to it's immediate left or right, so we only increment the counter for\n            * other columns\n            */\n            if (columnBound.index < this.s.mouse.fromIndex) {\n                iToPoint++;\n            }\n\n            this.s.aoTargets.push({\n\t\t\t\tto: iToPoint,\n                x: columnBound.bound\n            });\n        }\n\n\t\t/* Disallow columns for being reordered by drag and drop, counting right to left */\n\t\tif ( this.s.fixedRight !== 0 )\n\t\t{\n\t\t\tthis.s.aoTargets.splice( this.s.aoTargets.length - this.s.fixedRight );\n\t\t}\n\n\t\t/* Disallow columns for being reordered by drag and drop, counting left to right */\n\t\tif ( this.s.fixed !== 0 )\n\t\t{\n\t\t\tthis.s.aoTargets.splice( 0, this.s.fixed );\n\t\t}\n\t},\n\n\n\t/**\n\t * Copy the TH element that is being drags so the user has the idea that they are actually\n\t * moving it around the page.\n\t *  @method  _fnCreateDragNode\n\t *  @returns void\n\t *  @private\n\t */\n\t\"_fnCreateDragNode\": function ()\n\t{\n\t\tvar scrolling = this.s.dt.oScroll.sX !== \"\" || this.s.dt.oScroll.sY !== \"\";\n\n\t\tvar origCell = this.s.dt.aoColumns[ this.s.mouse.targetIndex ].nTh;\n\t\tvar origTr = origCell.parentNode;\n\t\tvar origThead = origTr.parentNode;\n\t\tvar origTable = origThead.parentNode;\n\t\tvar cloneCell = $(origCell).clone();\n\n\t\t// This is a slightly odd combination of jQuery and DOM, but it is the\n\t\t// fastest and least resource intensive way I could think of cloning\n\t\t// the table with just a single header cell in it.\n\t\tthis.dom.drag = $(origTable.cloneNode(false))\n\t\t\t.addClass( 'DTCR_clonedTable' )\n\t\t\t.append(\n\t\t\t\t$(origThead.cloneNode(false)).append(\n\t\t\t\t\t$(origTr.cloneNode(false)).append(\n\t\t\t\t\t\tcloneCell[0]\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t\t.css( {\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: $(origCell).outerWidth(),\n\t\t\t\theight: $(origCell).outerHeight()\n\t\t\t} )\n\t\t\t.appendTo( 'body' );\n\n\t\tthis.dom.pointer = $('<div></div>')\n\t\t\t.addClass( 'DTCR_pointer' )\n\t\t\t.css( {\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: scrolling ?\n\t\t\t\t\t$('div.dataTables_scroll', this.s.dt.nTableWrapper).offset().top :\n\t\t\t\t\t$(this.s.dt.nTable).offset().top,\n\t\t\t\theight : scrolling ?\n\t\t\t\t\t$('div.dataTables_scroll', this.s.dt.nTableWrapper).height() :\n\t\t\t\t\t$(this.s.dt.nTable).height()\n\t\t\t} )\n\t\t\t.appendTo( 'body' );\n\t},\n\n\n\t/**\n\t * Add a data attribute to the column headers, so we know the index of\n\t * the row to be reordered. This allows fast detection of the index, and\n\t * for this plug-in to work with FixedHeader which clones the nodes.\n\t *  @private\n\t */\n\t\"_fnSetColumnIndexes\": function ()\n\t{\n\t\t$.each( this.s.dt.aoColumns, function (i, column) {\n\t\t\t$(column.nTh).attr('data-column-index', i);\n\t\t} );\n\t},\n\n\n\t/**\n\t * Get cursor position regardless of mouse or touch input\n\t * @param  {Event}  e    jQuery Event\n\t * @param  {string} prop Property to get\n\t * @return {number}      Value\n\t */\n\t_fnCursorPosition: function ( e, prop ) {\n\t\tif ( e.type.indexOf('touch') !== -1 ) {\n\t\t\treturn e.originalEvent.touches[0][ prop ];\n\t\t}\n\t\treturn e[ prop ];\n    },\n\n    _fnIsLtr: function () {\n        return $(this.s.dt.nTable).css('direction') !== \"rtl\";\n    }\n} );\n\n\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Static parameters\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\n/**\n * ColReorder default settings for initialisation\n *  @namespace\n *  @static\n */\nColReorder.defaults = {\n\t/**\n\t * Predefined ordering for the columns that will be applied automatically\n\t * on initialisation. If not specified then the order that the columns are\n\t * found to be in the HTML is the order used.\n\t *  @type array\n\t *  @default null\n\t *  @static\n\t */\n\taiOrder: null,\n\n\t/**\n\t * ColReorder enable on initialisation\n\t *  @type boolean\n\t *  @default true\n\t *  @static\n\t */\n\tbEnable: true,\n\n\t/**\n\t * Redraw the table's column ordering as the end user draws the column\n\t * (`true`) or wait until the mouse is released (`false` - default). Note\n\t * that this will perform a redraw on each reordering, which involves an\n\t * Ajax request each time if you are using server-side processing in\n\t * DataTables.\n\t *  @type boolean\n\t *  @default false\n\t *  @static\n\t */\n\tbRealtime: true,\n\n\t/**\n\t * Indicate how many columns should be fixed in position (counting from the\n\t * left). This will typically be 1 if used, but can be as high as you like.\n\t *  @type int\n\t *  @default 0\n\t *  @static\n\t */\n\tiFixedColumnsLeft: 0,\n\n\t/**\n\t * As `iFixedColumnsRight` but counting from the right.\n\t *  @type int\n\t *  @default 0\n\t *  @static\n\t */\n\tiFixedColumnsRight: 0,\n\n\t/**\n\t * Callback function that is fired when columns are reordered. The `column-\n\t * reorder` event is preferred over this callback\n\t *  @type function():void\n\t *  @default null\n\t *  @static\n\t */\n\tfnReorderCallback: null\n};\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Constants\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/**\n * ColReorder version\n *  @constant  version\n *  @type      String\n *  @default   As code\n */\nColReorder.version = \"1.5.3\";\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables interfaces\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n// Expose\n$.fn.dataTable.ColReorder = ColReorder;\n$.fn.DataTable.ColReorder = ColReorder;\n\n\n// Register a new feature with DataTables\nif ( typeof $.fn.dataTable == \"function\" &&\n     typeof $.fn.dataTableExt.fnVersionCheck == \"function\" &&\n     $.fn.dataTableExt.fnVersionCheck('1.10.8') )\n{\n\t$.fn.dataTableExt.aoFeatures.push( {\n\t\t\"fnInit\": function( settings ) {\n\t\t\tvar table = settings.oInstance;\n\n\t\t\tif ( ! settings._colReorder ) {\n\t\t\t\tvar dtInit = settings.oInit;\n\t\t\t\tvar opts = dtInit.colReorder || dtInit.oColReorder || {};\n\n\t\t\t\tnew ColReorder( settings, opts );\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttable.oApi._fnLog( settings, 1, \"ColReorder attempted to initialise twice. Ignoring second\" );\n\t\t\t}\n\n\t\t\treturn null; /* No node for DataTables to insert */\n\t\t},\n\t\t\"cFeature\": \"R\",\n\t\t\"sFeature\": \"ColReorder\"\n\t} );\n}\nelse {\n\talert( \"Warning: ColReorder requires DataTables 1.10.8 or greater - www.datatables.net/download\");\n}\n\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.colReorder', function (e, settings) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.colReorder;\n\tvar defaults = DataTable.defaults.colReorder;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, init, defaults );\n\n\t\tif ( init !== false ) {\n\t\t\tnew ColReorder( settings, opts  );\n\t\t}\n\t}\n} );\n\n\n// API augmentation\n$.fn.dataTable.Api.register( 'colReorder.reset()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._colReorder.fnReset();\n\t} );\n} );\n\n$.fn.dataTable.Api.register( 'colReorder.order()', function ( set, original ) {\n\tif ( set ) {\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\tctx._colReorder.fnOrder( set, original );\n\t\t} );\n\t}\n\n\treturn this.context.length ?\n\t\tthis.context[0]._colReorder.fnOrder() :\n\t\tnull;\n} );\n\n$.fn.dataTable.Api.register( 'colReorder.transpose()', function ( idx, dir ) {\n\treturn this.context.length && this.context[0]._colReorder ?\n\t\tthis.context[0]._colReorder.fnTranspose( idx, dir ) :\n\t\tidx;\n} );\n\n$.fn.dataTable.Api.register( 'colReorder.move()', function( from, to, drop, invalidateRows ) {\n\tif (this.context.length) {\n\t\tthis.context[0]._colReorder.s.dt.oInstance.fnColReorder( from, to, drop, invalidateRows );\n\t\tthis.context[0]._colReorder._fnSetColumnIndexes();\n\t}\n\treturn this;\n} );\n\n$.fn.dataTable.Api.register( 'colReorder.enable()', function( flag ) {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._colReorder ) {\n\t\t\tctx._colReorder.fnEnable( flag );\n\t\t}\n\t} );\n} );\n\n$.fn.dataTable.Api.register( 'colReorder.disable()', function() {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._colReorder ) {\n\t\t\tctx._colReorder.fnDisable();\n\t\t}\n\t} );\n} );\n\n\nreturn ColReorder;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.css",
    "content": "table.DTFC_Cloned tr {\n  background-color: white;\n  margin-bottom: 0;\n}\n\ndiv.DTFC_LeftHeadWrapper table,\ndiv.DTFC_RightHeadWrapper table {\n  border-bottom: none !important;\n  margin-bottom: 0 !important;\n  background-color: white;\n}\n\ndiv.DTFC_LeftBodyWrapper table,\ndiv.DTFC_RightBodyWrapper table {\n  border-top: none;\n  margin: 0 !important;\n  z-index: 2;\n}\ndiv.DTFC_LeftBodyWrapper table thead .sorting:before, div.DTFC_LeftBodyWrapper table thead .sorting:after,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_asc:before,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_asc:after,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_desc:before,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_desc:after,\ndiv.DTFC_LeftBodyWrapper table thead .sorting:before,\ndiv.DTFC_LeftBodyWrapper table thead .sorting:after,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_asc:before,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_asc:after,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_desc:before,\ndiv.DTFC_LeftBodyWrapper table thead .sorting_desc:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting_asc:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting_asc:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting_desc:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting_desc:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting_asc:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting_asc:after,\ndiv.DTFC_RightBodyWrapper table thead .sorting_desc:before,\ndiv.DTFC_RightBodyWrapper table thead .sorting_desc:after {\n  display: none;\n}\ndiv.DTFC_LeftBodyWrapper table tbody tr:first-child th,\ndiv.DTFC_LeftBodyWrapper table tbody tr:first-child td,\ndiv.DTFC_RightBodyWrapper table tbody tr:first-child th,\ndiv.DTFC_RightBodyWrapper table tbody tr:first-child td {\n  border-top: none;\n}\n\ndiv.DTFC_LeftFootWrapper table,\ndiv.DTFC_RightFootWrapper table {\n  border-top: none;\n  margin-top: 0 !important;\n  background-color: white;\n}\n\ndiv.DTFC_Blocker {\n  background-color: white;\n}\n\ntable.dataTable.table-striped.DTFC_Cloned tbody {\n  background-color: white;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.js",
    "content": "/*! FixedColumns 3.3.2\n * ©2010-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     FixedColumns\n * @description Freeze columns in place on a scrolling DataTable\n * @version     3.3.2\n * @file        dataTables.fixedColumns.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2010-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\nvar _firefoxScroll;\n\n/**\n * When making use of DataTables' x-axis scrolling feature, you may wish to\n * fix the left most column in place. This plug-in for DataTables provides\n * exactly this option (note for non-scrolling tables, please use the\n * FixedHeader plug-in, which can fix headers and footers). Key\n * features include:\n *\n * * Freezes the left or right most columns to the side of the table\n * * Option to freeze two or more columns\n * * Full integration with DataTables' scrolling options\n * * Speed - FixedColumns is fast in its operation\n *\n *  @class\n *  @constructor\n *  @global\n *  @param {object} dt DataTables instance. With DataTables 1.10 this can also\n *    be a jQuery collection, a jQuery selector, DataTables API instance or\n *    settings object.\n *  @param {object} [init={}] Configuration object for FixedColumns. Options are\n *    defined by {@link FixedColumns.defaults}\n *\n *  @requires jQuery 1.7+\n *  @requires DataTables 1.8.0+\n *\n *  @example\n *      var table = $('#example').dataTable( {\n *        \"scrollX\": \"100%\"\n *      } );\n *      new $.fn.dataTable.fixedColumns( table );\n */\nvar FixedColumns = function ( dt, init ) {\n\tvar that = this;\n\n\t/* Sanity check - you just know it will happen */\n\tif ( ! ( this instanceof FixedColumns ) ) {\n\t\talert( \"FixedColumns warning: FixedColumns must be initialised with the 'new' keyword.\" );\n\t\treturn;\n\t}\n\n\tif ( init === undefined || init === true ) {\n\t\tinit = {};\n\t}\n\n\t// Use the DataTables Hungarian notation mapping method, if it exists to\n\t// provide forwards compatibility for camel case variables\n\tvar camelToHungarian = $.fn.dataTable.camelToHungarian;\n\tif ( camelToHungarian ) {\n\t\tcamelToHungarian( FixedColumns.defaults, FixedColumns.defaults, true );\n\t\tcamelToHungarian( FixedColumns.defaults, init );\n\t}\n\n\t// v1.10 allows the settings object to be got form a number of sources\n\tvar dtSettings = new $.fn.dataTable.Api( dt ).settings()[0];\n\n\t/**\n\t * Settings object which contains customisable information for FixedColumns instance\n\t * @namespace\n\t * @extends FixedColumns.defaults\n\t * @private\n\t */\n\tthis.s = {\n\t\t/**\n\t\t * DataTables settings objects\n\t\t *  @type     object\n\t\t *  @default  Obtained from DataTables instance\n\t\t */\n\t\t\"dt\": dtSettings,\n\n\t\t/**\n\t\t * Number of columns in the DataTable - stored for quick access\n\t\t *  @type     int\n\t\t *  @default  Obtained from DataTables instance\n\t\t */\n\t\t\"iTableColumns\": dtSettings.aoColumns.length,\n\n\t\t/**\n\t\t * Original outer widths of the columns as rendered by DataTables - used to calculate\n\t\t * the FixedColumns grid bounding box\n\t\t *  @type     array.<int>\n\t\t *  @default  []\n\t\t */\n\t\t\"aiOuterWidths\": [],\n\n\t\t/**\n\t\t * Original inner widths of the columns as rendered by DataTables - used to apply widths\n\t\t * to the columns\n\t\t *  @type     array.<int>\n\t\t *  @default  []\n\t\t */\n\t\t\"aiInnerWidths\": [],\n\n\n\t\t/**\n\t\t * Is the document layout right-to-left\n\t\t * @type boolean\n\t\t */\n\t\trtl: $(dtSettings.nTable).css('direction') === 'rtl'\n\t};\n\n\n\t/**\n\t * DOM elements used by the class instance\n\t * @namespace\n\t * @private\n\t *\n\t */\n\tthis.dom = {\n\t\t/**\n\t\t * DataTables scrolling element\n\t\t *  @type     node\n\t\t *  @default  null\n\t\t */\n\t\t\"scroller\": null,\n\n\t\t/**\n\t\t * DataTables header table\n\t\t *  @type     node\n\t\t *  @default  null\n\t\t */\n\t\t\"header\": null,\n\n\t\t/**\n\t\t * DataTables body table\n\t\t *  @type     node\n\t\t *  @default  null\n\t\t */\n\t\t\"body\": null,\n\n\t\t/**\n\t\t * DataTables footer table\n\t\t *  @type     node\n\t\t *  @default  null\n\t\t */\n\t\t\"footer\": null,\n\n\t\t/**\n\t\t * Display grid elements\n\t\t * @namespace\n\t\t */\n\t\t\"grid\": {\n\t\t\t/**\n\t\t\t * Grid wrapper. This is the container element for the 3x3 grid\n\t\t\t *  @type     node\n\t\t\t *  @default  null\n\t\t\t */\n\t\t\t\"wrapper\": null,\n\n\t\t\t/**\n\t\t\t * DataTables scrolling element. This element is the DataTables\n\t\t\t * component in the display grid (making up the main table - i.e.\n\t\t\t * not the fixed columns).\n\t\t\t *  @type     node\n\t\t\t *  @default  null\n\t\t\t */\n\t\t\t\"dt\": null,\n\n\t\t\t/**\n\t\t\t * Left fixed column grid components\n\t\t\t * @namespace\n\t\t\t */\n\t\t\t\"left\": {\n\t\t\t\t\"wrapper\": null,\n\t\t\t\t\"head\": null,\n\t\t\t\t\"body\": null,\n\t\t\t\t\"foot\": null\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Right fixed column grid components\n\t\t\t * @namespace\n\t\t\t */\n\t\t\t\"right\": {\n\t\t\t\t\"wrapper\": null,\n\t\t\t\t\"head\": null,\n\t\t\t\t\"body\": null,\n\t\t\t\t\"foot\": null\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Cloned table nodes\n\t\t * @namespace\n\t\t */\n\t\t\"clone\": {\n\t\t\t/**\n\t\t\t * Left column cloned table nodes\n\t\t\t * @namespace\n\t\t\t */\n\t\t\t\"left\": {\n\t\t\t\t/**\n\t\t\t\t * Cloned header table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"header\": null,\n\n\t\t\t\t/**\n\t\t\t\t * Cloned body table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"body\": null,\n\n\t\t\t\t/**\n\t\t\t\t * Cloned footer table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"footer\": null\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Right column cloned table nodes\n\t\t\t * @namespace\n\t\t\t */\n\t\t\t\"right\": {\n\t\t\t\t/**\n\t\t\t\t * Cloned header table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"header\": null,\n\n\t\t\t\t/**\n\t\t\t\t * Cloned body table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"body\": null,\n\n\t\t\t\t/**\n\t\t\t\t * Cloned footer table\n\t\t\t\t *  @type     node\n\t\t\t\t *  @default  null\n\t\t\t\t */\n\t\t\t\t\"footer\": null\n\t\t\t}\n\t\t}\n\t};\n\n\tif ( dtSettings._oFixedColumns ) {\n\t\tthrow 'FixedColumns already initialised on this table';\n\t}\n\n\t/* Attach the instance to the DataTables instance so it can be accessed easily */\n\tdtSettings._oFixedColumns = this;\n\n\t/* Let's do it */\n\tif ( ! dtSettings._bInitComplete )\n\t{\n\t\tdtSettings.oApi._fnCallbackReg( dtSettings, 'aoInitComplete', function () {\n\t\t\tthat._fnConstruct( init );\n\t\t}, 'FixedColumns' );\n\t}\n\telse\n\t{\n\t\tthis._fnConstruct( init );\n\t}\n};\n\n\n\n$.extend( FixedColumns.prototype , {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public methods\n\t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\t/**\n\t * Update the fixed columns - including headers and footers. Note that FixedColumns will\n\t * automatically update the display whenever the host DataTable redraws.\n\t *  @returns {void}\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      var fc = new $.fn.dataTable.fixedColumns( table );\n\t *\n\t *      // at some later point when the table has been manipulated....\n\t *      fc.fnUpdate();\n\t */\n\t\"fnUpdate\": function ()\n\t{\n\t\tthis._fnDraw( true );\n\t},\n\n\n\t/**\n\t * Recalculate the resizes of the 3x3 grid that FixedColumns uses for display of the table.\n\t * This is useful if you update the width of the table container. Note that FixedColumns will\n\t * perform this function automatically when the window.resize event is fired.\n\t *  @returns {void}\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      var fc = new $.fn.dataTable.fixedColumns( table );\n\t *\n\t *      // Resize the table container and then have FixedColumns adjust its layout....\n\t *      $('#content').width( 1200 );\n\t *      fc.fnRedrawLayout();\n\t */\n\t\"fnRedrawLayout\": function ()\n\t{\n\t\tthis._fnColCalc();\n\t\tthis._fnGridLayout();\n\t\tthis.fnUpdate();\n\t},\n\n\n\t/**\n\t * Mark a row such that it's height should be recalculated when using 'semiauto' row\n\t * height matching. This function will have no effect when 'none' or 'auto' row height\n\t * matching is used.\n\t *  @param   {Node} nTr TR element that should have it's height recalculated\n\t *  @returns {void}\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      var fc = new $.fn.dataTable.fixedColumns( table );\n\t *\n\t *      // manipulate the table - mark the row as needing an update then update the table\n\t *      // this allows the redraw performed by DataTables fnUpdate to recalculate the row\n\t *      // height\n\t *      fc.fnRecalculateHeight();\n\t *      table.fnUpdate( $('#example tbody tr:eq(0)')[0], [\"insert date\", 1, 2, 3 ... ]);\n\t */\n\t\"fnRecalculateHeight\": function ( nTr )\n\t{\n\t\tdelete nTr._DTTC_iHeight;\n\t\tnTr.style.height = 'auto';\n\t},\n\n\n\t/**\n\t * Set the height of a given row - provides cross browser compatibility\n\t *  @param   {Node} nTarget TR element that should have it's height recalculated\n\t *  @param   {int} iHeight Height in pixels to set\n\t *  @returns {void}\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      var fc = new $.fn.dataTable.fixedColumns( table );\n\t *\n\t *      // You may want to do this after manipulating a row in the fixed column\n\t *      fc.fnSetRowHeight( $('#example tbody tr:eq(0)')[0], 50 );\n\t */\n\t\"fnSetRowHeight\": function ( nTarget, iHeight )\n\t{\n\t\tnTarget.style.height = iHeight+\"px\";\n\t},\n\n\n\t/**\n\t * Get data index information about a row or cell in the table body.\n\t * This function is functionally identical to fnGetPosition in DataTables,\n\t * taking the same parameter (TH, TD or TR node) and returning exactly the\n\t * the same information (data index information). THe difference between\n\t * the two is that this method takes into account the fixed columns in the\n\t * table, so you can pass in nodes from the master table, or the cloned\n\t * tables and get the index position for the data in the main table.\n\t *  @param {node} node TR, TH or TD element to get the information about\n\t *  @returns {int} If nNode is given as a TR, then a single index is \n\t *    returned, or if given as a cell, an array of [row index, column index\n\t *    (visible), column index (all)] is given.\n\t */\n\t\"fnGetPosition\": function ( node )\n\t{\n\t\tvar idx;\n\t\tvar inst = this.s.dt.oInstance;\n\n\t\tif ( ! $(node).parents('.DTFC_Cloned').length )\n\t\t{\n\t\t\t// Not in a cloned table\n\t\t\treturn inst.fnGetPosition( node );\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Its in the cloned table, so need to look up position\n\t\t\tif ( node.nodeName.toLowerCase() === 'tr' ) {\n\t\t\t\tidx = $(node).index();\n\t\t\t\treturn inst.fnGetPosition( $('tr', this.s.dt.nTBody)[ idx ] );\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tvar colIdx = $(node).index();\n\t\t\t\tidx = $(node.parentNode).index();\n\t\t\t\tvar row = inst.fnGetPosition( $('tr', this.s.dt.nTBody)[ idx ] );\n\n\t\t\t\treturn [\n\t\t\t\t\trow,\n\t\t\t\t\tcolIdx,\n\t\t\t\t\tinst.oApi._fnVisibleToColumnIndex( this.s.dt, colIdx )\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\t},\n\n\tfnToFixedNode: function ( rowIdx, colIdx )\n\t{\n\t\tvar found;\n\n\t\tif ( colIdx < this.s.iLeftColumns ) {\n\t\t\tfound = $(this.dom.clone.left.body).find('[data-dt-row='+rowIdx+'][data-dt-column='+colIdx+']');\n\t\t}\n\t\telse if ( colIdx >= this.s.iRightColumns ) {\n\t\t\tfound = $(this.dom.clone.right.body).find('[data-dt-row='+rowIdx+'][data-dt-column='+colIdx+']');\n\t\t}\n\n\t\tif ( found && found.length ) {\n\t\t\treturn found[0];\n\t\t}\n\n\t\t// Fallback - non-fixed node\n\t\tvar table = new $.fn.dataTable.Api(this.s.dt);\n\t\treturn table.cell(rowIdx, colIdx).node();\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods (they are of course public in JS, but recommended as private)\n\t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\t/**\n\t * Initialisation for FixedColumns\n\t *  @param   {Object} oInit User settings for initialisation\n\t *  @returns {void}\n\t *  @private\n\t */\n\t\"_fnConstruct\": function ( oInit )\n\t{\n\t\tvar i, iLen, iWidth,\n\t\t\tthat = this;\n\n\t\t/* Sanity checking */\n\t\tif ( typeof this.s.dt.oInstance.fnVersionCheck != 'function' ||\n\t\t     this.s.dt.oInstance.fnVersionCheck( '1.8.0' ) !== true )\n\t\t{\n\t\t\talert( \"FixedColumns \"+FixedColumns.VERSION+\" required DataTables 1.8.0 or later. \"+\n\t\t\t\t\"Please upgrade your DataTables installation\" );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.s.dt.oScroll.sX === \"\" )\n\t\t{\n\t\t\tthis.s.dt.oInstance.oApi._fnLog( this.s.dt, 1, \"FixedColumns is not needed (no \"+\n\t\t\t\t\"x-scrolling in DataTables enabled), so no action will be taken. Use 'FixedHeader' for \"+\n\t\t\t\t\"column fixing when scrolling is not enabled\" );\n\t\t\treturn;\n\t\t}\n\n\t\t/* Apply the settings from the user / defaults */\n\t\tthis.s = $.extend( true, this.s, FixedColumns.defaults, oInit );\n\n\t\t/* Set up the DOM as we need it and cache nodes */\n\t\tvar classes = this.s.dt.oClasses;\n\t\tthis.dom.grid.dt = $(this.s.dt.nTable).parents('div.'+classes.sScrollWrapper)[0];\n\t\tthis.dom.scroller = $('div.'+classes.sScrollBody, this.dom.grid.dt )[0];\n\n\t\t/* Set up the DOM that we want for the fixed column layout grid */\n\t\tthis._fnColCalc();\n\t\tthis._fnGridSetup();\n\n\t\t/* Event handlers */\n\t\tvar mouseController;\n\t\tvar mouseDown = false;\n\n\t\t// When the mouse is down (drag scroll) the mouse controller cannot\n\t\t// change, as the browser keeps the original element as the scrolling one\n\t\t$(this.s.dt.nTableWrapper).on( 'mousedown.DTFC', function (e) {\n\t\t\tif ( e.button === 0 ) {\n\t\t\t\tmouseDown = true;\n\n\t\t\t\t$(document).one( 'mouseup', function () {\n\t\t\t\t\tmouseDown = false;\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// When the body is scrolled - scroll the left and right columns\n\t\t$(this.dom.scroller)\n\t\t\t.on( 'mouseover.DTFC touchstart.DTFC', function () {\n\t\t\t\tif ( ! mouseDown ) {\n\t\t\t\t\tmouseController = 'main';\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'scroll.DTFC', function (e) {\n\t\t\t\tif ( ! mouseController && e.originalEvent ) {\n\t\t\t\t\tmouseController = 'main';\n\t\t\t\t}\n\n\t\t\t\tif ( mouseController === 'main' || mouseController === 'key' ) {\n\t\t\t\t\tif ( that.s.iLeftColumns > 0 ) {\n\t\t\t\t\t\tthat.dom.grid.left.liner.scrollTop = that.dom.scroller.scrollTop;\n\t\t\t\t\t}\n\t\t\t\t\tif ( that.s.iRightColumns > 0 ) {\n\t\t\t\t\t\tthat.dom.grid.right.liner.scrollTop = that.dom.scroller.scrollTop;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\tvar wheelType = 'onwheel' in document.createElement('div') ?\n\t\t\t'wheel.DTFC' :\n\t\t\t'mousewheel.DTFC';\n\n\t\tif ( that.s.iLeftColumns > 0 ) {\n\t\t\t// When scrolling the left column, scroll the body and right column\n\t\t\t$(that.dom.grid.left.liner)\n\t\t\t\t.on( 'mouseover.DTFC touchstart.DTFC', function () {\n\t\t\t\t\tif ( ! mouseDown && mouseController !== 'key' ) {\n\t\t\t\t\t\tmouseController = 'left';\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.on( 'scroll.DTFC', function ( e ) {\n\t\t\t\t\tif ( ! mouseController && e.originalEvent ) {\n\t\t\t\t\t\tmouseController = 'left';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( mouseController === 'left' ) {\n\t\t\t\t\t\tthat.dom.scroller.scrollTop = that.dom.grid.left.liner.scrollTop;\n\t\t\t\t\t\tif ( that.s.iRightColumns > 0 ) {\n\t\t\t\t\t\t\tthat.dom.grid.right.liner.scrollTop = that.dom.grid.left.liner.scrollTop;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.on( wheelType, function(e) {\n\t\t\t\t\tmouseController = 'left';\n\n\t\t\t\t\t// Pass horizontal scrolling through\n\t\t\t\t\tvar xDelta = e.type === 'wheel' ?\n\t\t\t\t\t\t-e.originalEvent.deltaX :\n\t\t\t\t\t\te.originalEvent.wheelDeltaX;\n\t\t\t\t\tthat.dom.scroller.scrollLeft -= xDelta;\n\t\t\t\t} );\n\n\t\t\t// Header will not trigger scroll on left column, but might on `main` (sorting)\n\t\t\t$(that.dom.grid.left.head).on( 'mouseover.DTFC touchstart.DTFC', function () {\n\t\t\t\tmouseController = 'main';\n\t\t\t});\n\t\t}\n\n\t\tif ( that.s.iRightColumns > 0 ) {\n\t\t\t// When scrolling the right column, scroll the body and the left column\n\t\t\t$(that.dom.grid.right.liner)\n\t\t\t\t.on( 'mouseover.DTFC touchstart.DTFC', function () {\n\t\t\t\t\tif ( ! mouseDown && mouseController !== 'key' ) {\n\t\t\t\t\t\tmouseController = 'right';\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.on( 'scroll.DTFC', function ( e ) {\n\t\t\t\t\tif ( ! mouseController && e.originalEvent ) {\n\t\t\t\t\t\tmouseController = 'right';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( mouseController === 'right' ) {\n\t\t\t\t\t\tthat.dom.scroller.scrollTop = that.dom.grid.right.liner.scrollTop;\n\t\t\t\t\t\tif ( that.s.iLeftColumns > 0 ) {\n\t\t\t\t\t\t\tthat.dom.grid.left.liner.scrollTop = that.dom.grid.right.liner.scrollTop;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.on( wheelType, function(e) {\n\t\t\t\t\tmouseController = 'right';\n\n\t\t\t\t\t// Pass horizontal scrolling through\n\t\t\t\t\tvar xDelta = e.type === 'wheel' ?\n\t\t\t\t\t\t-e.originalEvent.deltaX :\n\t\t\t\t\t\te.originalEvent.wheelDeltaX;\n\t\t\t\t\tthat.dom.scroller.scrollLeft -= xDelta;\n\t\t\t\t} );\n\n\t\t\t$(that.dom.grid.right.head).on( 'mouseover.DTFC touchstart.DTFC', function () {\n\t\t\t\tmouseController = 'main';\n\t\t\t});\n\t\t}\n\n\t\t$(window).on( 'resize.DTFC', function () {\n\t\t\tthat._fnGridLayout.call( that );\n\t\t} );\n\n\t\tvar bFirstDraw = true;\n\t\tvar jqTable = $(this.s.dt.nTable);\n\n\t\tjqTable\n\t\t\t.on( 'draw.dt.DTFC', function () {\n\t\t\t\tthat._fnColCalc();\n\t\t\t\tthat._fnDraw.call( that, bFirstDraw );\n\t\t\t\tbFirstDraw = false;\n\t\t\t} )\n\t\t\t.on('key-focus.dt.DTFC', function () {\n\t\t\t\t// KeyTable navigation needs to be main focused\n\t\t\t\tmouseController = 'key';\n\t\t\t})\n\t\t\t.on( 'column-sizing.dt.DTFC', function () {\n\t\t\t\tthat._fnColCalc();\n\t\t\t\tthat._fnGridLayout( that );\n\t\t\t} )\n\t\t\t.on( 'column-visibility.dt.DTFC', function ( e, settings, column, vis, recalc ) {\n\t\t\t\tif ( recalc === undefined || recalc ) {\n\t\t\t\t\tthat._fnColCalc();\n\t\t\t\t\tthat._fnGridLayout( that );\n\t\t\t\t\tthat._fnDraw( true );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'select.dt.DTFC deselect.dt.DTFC', function ( e, dt, type, indexes ) {\n\t\t\t\tif ( e.namespace === 'dt' ) {\n\t\t\t\t\tthat._fnDraw( false );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'position.dts.dt.DTFC', function (e, tableTop) {\n\t\t\t\t// Sync up with Scroller\n\t\t\t\tif (that.dom.grid.left.body) {\n\t\t\t\t\t$(that.dom.grid.left.body).find('table').eq(0).css('top', tableTop);\n\t\t\t\t}\n\n\t\t\t\tif (that.dom.grid.right.body) {\n\t\t\t\t\t$(that.dom.grid.right.body).find('table').eq(0).css('top', tableTop);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.on( 'destroy.dt.DTFC', function () {\n\t\t\t\tjqTable.off( '.DTFC' );\n\n\t\t\t\t$(that.dom.scroller).off( '.DTFC' );\n\t\t\t\t$(window).off( '.DTFC' );\n\t\t\t\t$(that.s.dt.nTableWrapper).off( '.DTFC' );\n\n\t\t\t\t$(that.dom.grid.left.liner).off( '.DTFC '+wheelType );\n\t\t\t\t$(that.dom.grid.left.wrapper).remove();\n\n\t\t\t\t$(that.dom.grid.right.liner).off( '.DTFC '+wheelType );\n\t\t\t\t$(that.dom.grid.right.wrapper).remove();\n\t\t\t} );\n\n\t\t/* Get things right to start with - note that due to adjusting the columns, there must be\n\t\t * another redraw of the main table. It doesn't need to be a full redraw however.\n\t\t */\n\t\tthis._fnGridLayout();\n\t\tthis.s.dt.oInstance.fnDraw(false);\n\t},\n\n\n\t/**\n\t * Calculate the column widths for the grid layout\n\t *  @returns {void}\n\t *  @private\n\t */\n\t\"_fnColCalc\": function ()\n\t{\n\t\tvar that = this;\n\t\tvar iLeftWidth = 0;\n\t\tvar iRightWidth = 0;\n\n\t\tthis.s.aiInnerWidths = [];\n\t\tthis.s.aiOuterWidths = [];\n\n\t\t$.each( this.s.dt.aoColumns, function (i, col) {\n\t\t\tvar th = $(col.nTh);\n\t\t\tvar border;\n\n\t\t\tif ( ! th.filter(':visible').length ) {\n\t\t\t\tthat.s.aiInnerWidths.push( 0 );\n\t\t\t\tthat.s.aiOuterWidths.push( 0 );\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t// Inner width is used to assign widths to cells\n\t\t\t\t// Outer width is used to calculate the container\n\t\t\t\tvar iWidth = th.outerWidth();\n\n\t\t\t\t// When working with the left most-cell, need to add on the\n\t\t\t\t// table's border to the outerWidth, since we need to take\n\t\t\t\t// account of it, but it isn't in any cell\n\t\t\t\tif ( that.s.aiOuterWidths.length === 0 ) {\n\t\t\t\t\tborder = $(that.s.dt.nTable).css('border-left-width');\n\t\t\t\t\tiWidth += typeof border === 'string' && border.indexOf('px') === -1 ?\n\t\t\t\t\t\t1 :\n\t\t\t\t\t\tparseInt( border, 10 );\n\t\t\t\t}\n\n\t\t\t\t// Likewise with the final column on the right\n\t\t\t\tif ( that.s.aiOuterWidths.length === that.s.dt.aoColumns.length-1 ) {\n\t\t\t\t\tborder = $(that.s.dt.nTable).css('border-right-width');\n\t\t\t\t\tiWidth += typeof border === 'string' && border.indexOf('px') === -1 ?\n\t\t\t\t\t\t1 :\n\t\t\t\t\t\tparseInt( border, 10 );\n\t\t\t\t}\n\n\t\t\t\tthat.s.aiOuterWidths.push( iWidth );\n\t\t\t\tthat.s.aiInnerWidths.push( th.width() );\n\n\t\t\t\tif ( i < that.s.iLeftColumns )\n\t\t\t\t{\n\t\t\t\t\tiLeftWidth += iWidth;\n\t\t\t\t}\n\n\t\t\t\tif ( that.s.iTableColumns-that.s.iRightColumns <= i )\n\t\t\t\t{\n\t\t\t\t\tiRightWidth += iWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.s.iLeftWidth = iLeftWidth;\n\t\tthis.s.iRightWidth = iRightWidth;\n\t},\n\n\n\t/**\n\t * Set up the DOM for the fixed column. The way the layout works is to create a 1x3 grid\n\t * for the left column, the DataTable (for which we just reuse the scrolling element DataTable\n\t * puts into the DOM) and the right column. In each of he two fixed column elements there is a\n\t * grouping wrapper element and then a head, body and footer wrapper. In each of these we then\n\t * place the cloned header, body or footer tables. This effectively gives as 3x3 grid structure.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t\"_fnGridSetup\": function ()\n\t{\n\t\tvar that = this;\n\t\tvar oOverflow = this._fnDTOverflow();\n\t\tvar block;\n\n\t\tthis.dom.body = this.s.dt.nTable;\n\t\tthis.dom.header = this.s.dt.nTHead.parentNode;\n\t\tthis.dom.header.parentNode.parentNode.style.position = \"relative\";\n\n\t\tvar nSWrapper =\n\t\t\t$('<div class=\"DTFC_ScrollWrapper\" style=\"position:relative; clear:both;\">'+\n\t\t\t\t'<div class=\"DTFC_LeftWrapper\" style=\"position:absolute; top:0; left:0;\" aria-hidden=\"true\">'+\n\t\t\t\t\t'<div class=\"DTFC_LeftHeadWrapper\" style=\"position:relative; top:0; left:0; overflow:hidden;\"></div>'+\n\t\t\t\t\t'<div class=\"DTFC_LeftBodyWrapper\" style=\"position:relative; top:0; left:0; height:0; overflow:hidden;\">'+\n\t\t\t\t\t\t'<div class=\"DTFC_LeftBodyLiner\" style=\"position:relative; top:0; left:0; overflow-y:scroll;\"></div>'+\n\t\t\t\t\t'</div>'+\n\t\t\t\t\t'<div class=\"DTFC_LeftFootWrapper\" style=\"position:relative; top:0; left:0; overflow:hidden;\"></div>'+\n\t\t\t\t'</div>'+\n\t\t\t\t'<div class=\"DTFC_RightWrapper\" style=\"position:absolute; top:0; right:0;\" aria-hidden=\"true\">'+\n\t\t\t\t\t'<div class=\"DTFC_RightHeadWrapper\" style=\"position:relative; top:0; left:0;\">'+\n\t\t\t\t\t\t'<div class=\"DTFC_RightHeadBlocker DTFC_Blocker\" style=\"position:absolute; top:0; bottom:0;\"></div>'+\n\t\t\t\t\t'</div>'+\n\t\t\t\t\t'<div class=\"DTFC_RightBodyWrapper\" style=\"position:relative; top:0; left:0; height:0; overflow:hidden;\">'+\n\t\t\t\t\t\t'<div class=\"DTFC_RightBodyLiner\" style=\"position:relative; top:0; left:0; overflow-y:scroll;\"></div>'+\n\t\t\t\t\t'</div>'+\n\t\t\t\t\t'<div class=\"DTFC_RightFootWrapper\" style=\"position:relative; top:0; left:0;\">'+\n\t\t\t\t\t\t'<div class=\"DTFC_RightFootBlocker DTFC_Blocker\" style=\"position:absolute; top:0; bottom:0;\"></div>'+\n\t\t\t\t\t'</div>'+\n\t\t\t\t'</div>'+\n\t\t\t'</div>')[0];\n\t\tvar nLeft = nSWrapper.childNodes[0];\n\t\tvar nRight = nSWrapper.childNodes[1];\n\n\t\tthis.dom.grid.dt.parentNode.insertBefore( nSWrapper, this.dom.grid.dt );\n\t\tnSWrapper.appendChild( this.dom.grid.dt );\n\n\t\tthis.dom.grid.wrapper = nSWrapper;\n\n\t\tif ( this.s.iLeftColumns > 0 )\n\t\t{\n\t\t\tthis.dom.grid.left.wrapper = nLeft;\n\t\t\tthis.dom.grid.left.head = nLeft.childNodes[0];\n\t\t\tthis.dom.grid.left.body = nLeft.childNodes[1];\n\t\t\tthis.dom.grid.left.liner = $('div.DTFC_LeftBodyLiner', nSWrapper)[0];\n\n\t\t\tnSWrapper.appendChild( nLeft );\n\t\t}\n\n\t\tif ( this.s.iRightColumns > 0 )\n\t\t{\n\t\t\tthis.dom.grid.right.wrapper = nRight;\n\t\t\tthis.dom.grid.right.head = nRight.childNodes[0];\n\t\t\tthis.dom.grid.right.body = nRight.childNodes[1];\n\t\t\tthis.dom.grid.right.liner = $('div.DTFC_RightBodyLiner', nSWrapper)[0];\n\n\t\t\tnRight.style.right = oOverflow.bar+\"px\";\n\n\t\t\tblock = $('div.DTFC_RightHeadBlocker', nSWrapper)[0];\n\t\t\tblock.style.width = oOverflow.bar+\"px\";\n\t\t\tblock.style.right = -oOverflow.bar+\"px\";\n\t\t\tthis.dom.grid.right.headBlock = block;\n\n\t\t\tblock = $('div.DTFC_RightFootBlocker', nSWrapper)[0];\n\t\t\tblock.style.width = oOverflow.bar+\"px\";\n\t\t\tblock.style.right = -oOverflow.bar+\"px\";\n\t\t\tthis.dom.grid.right.footBlock = block;\n\n\t\t\tnSWrapper.appendChild( nRight );\n\t\t}\n\n\t\tif ( this.s.dt.nTFoot )\n\t\t{\n\t\t\tthis.dom.footer = this.s.dt.nTFoot.parentNode;\n\t\t\tif ( this.s.iLeftColumns > 0 )\n\t\t\t{\n\t\t\t\tthis.dom.grid.left.foot = nLeft.childNodes[2];\n\t\t\t}\n\t\t\tif ( this.s.iRightColumns > 0 )\n\t\t\t{\n\t\t\t\tthis.dom.grid.right.foot = nRight.childNodes[2];\n\t\t\t}\n\t\t}\n\n\t\t// RTL support - swap the position of the left and right columns (#48)\n\t\tif ( this.s.rtl ) {\n\t\t\t$('div.DTFC_RightHeadBlocker', nSWrapper).css( {\n\t\t\t\tleft: -oOverflow.bar+'px',\n\t\t\t\tright: ''\n\t\t\t} );\n\t\t}\n\t},\n\n\n\t/**\n\t * Style and position the grid used for the FixedColumns layout\n\t *  @returns {void}\n\t *  @private\n\t */\n\t\"_fnGridLayout\": function ()\n\t{\n\t\tvar that = this;\n\t\tvar oGrid = this.dom.grid;\n\t\tvar iWidth = $(oGrid.wrapper).width();\n\t\tvar iBodyHeight = this.s.dt.nTable.parentNode.offsetHeight;\n\t\tvar iFullHeight = this.s.dt.nTable.parentNode.parentNode.offsetHeight;\n\t\tvar oOverflow = this._fnDTOverflow();\n\t\tvar iLeftWidth = this.s.iLeftWidth;\n\t\tvar iRightWidth = this.s.iRightWidth;\n\t\tvar rtl = $(this.dom.body).css('direction') === 'rtl';\n\t\tvar wrapper;\n\t\tvar scrollbarAdjust = function ( node, width ) {\n\t\t\tif ( ! oOverflow.bar ) {\n\t\t\t\t// If there is no scrollbar (Macs) we need to hide the auto scrollbar\n\t\t\t\tnode.style.width = (width+20)+\"px\";\n\t\t\t\tnode.style.paddingRight = \"20px\";\n\t\t\t\tnode.style.boxSizing = \"border-box\";\n\t\t\t}\n\t\t\telse if ( that._firefoxScrollError() ) {\n\t\t\t\t// See the above function for why this is required\n\t\t\t\tif ( $(node).height() > 34 ) {\n\t\t\t\t\tnode.style.width = (width+oOverflow.bar)+\"px\";\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Otherwise just overflow by the scrollbar\n\t\t\t\tnode.style.width = (width+oOverflow.bar)+\"px\";\n\t\t\t}\n\t\t};\n\n\t\t// When x scrolling - don't paint the fixed columns over the x scrollbar\n\t\tif ( oOverflow.x )\n\t\t{\n\t\t\tiBodyHeight -= oOverflow.bar;\n\t\t}\n\n\t\toGrid.wrapper.style.height = iFullHeight+\"px\";\n\n\t\tif ( this.s.iLeftColumns > 0 )\n\t\t{\n\t\t\twrapper = oGrid.left.wrapper;\n\t\t\twrapper.style.width = iLeftWidth+'px';\n\t\t\twrapper.style.height = '1px';\n\n\t\t\t// Swap the position of the left and right columns for rtl (#48)\n\t\t\t// This is always up against the edge, scrollbar on the far side\n\t\t\tif ( rtl ) {\n\t\t\t\twrapper.style.left = '';\n\t\t\t\twrapper.style.right = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\twrapper.style.left = 0;\n\t\t\t\twrapper.style.right = '';\n\t\t\t}\n\n\t\t\toGrid.left.body.style.height = iBodyHeight+\"px\";\n\t\t\tif ( oGrid.left.foot ) {\n\t\t\t\toGrid.left.foot.style.top = (oOverflow.x ? oOverflow.bar : 0)+\"px\"; // shift footer for scrollbar\n\t\t\t}\n\n\t\t\tscrollbarAdjust( oGrid.left.liner, iLeftWidth );\n\t\t\toGrid.left.liner.style.height = iBodyHeight+\"px\";\n\t\t\toGrid.left.liner.style.maxHeight = iBodyHeight+\"px\";\n\t\t}\n\n\t\tif ( this.s.iRightColumns > 0 )\n\t\t{\n\t\t\twrapper = oGrid.right.wrapper;\n\t\t\twrapper.style.width = iRightWidth+'px';\n\t\t\twrapper.style.height = '1px';\n\n\t\t\t// Need to take account of the vertical scrollbar\n\t\t\tif ( this.s.rtl ) {\n\t\t\t\twrapper.style.left = oOverflow.y ? oOverflow.bar+'px' : 0;\n\t\t\t\twrapper.style.right = '';\n\t\t\t}\n\t\t\telse {\n\t\t\t\twrapper.style.left = '';\n\t\t\t\twrapper.style.right = oOverflow.y ? oOverflow.bar+'px' : 0;\n\t\t\t}\n\n\t\t\toGrid.right.body.style.height = iBodyHeight+\"px\";\n\t\t\tif ( oGrid.right.foot ) {\n\t\t\t\toGrid.right.foot.style.top = (oOverflow.x ? oOverflow.bar : 0)+\"px\";\n\t\t\t}\n\n\t\t\tscrollbarAdjust( oGrid.right.liner, iRightWidth );\n\t\t\toGrid.right.liner.style.height = iBodyHeight+\"px\";\n\t\t\toGrid.right.liner.style.maxHeight = iBodyHeight+\"px\";\n\n\t\t\toGrid.right.headBlock.style.display = oOverflow.y ? 'block' : 'none';\n\t\t\toGrid.right.footBlock.style.display = oOverflow.y ? 'block' : 'none';\n\t\t}\n\t},\n\n\n\t/**\n\t * Get information about the DataTable's scrolling state - specifically if the table is scrolling\n\t * on either the x or y axis, and also the scrollbar width.\n\t *  @returns {object} Information about the DataTables scrolling state with the properties:\n\t *    'x', 'y' and 'bar'\n\t *  @private\n\t */\n\t\"_fnDTOverflow\": function ()\n\t{\n\t\tvar nTable = this.s.dt.nTable;\n\t\tvar nTableScrollBody = nTable.parentNode;\n\t\tvar out = {\n\t\t\t\"x\": false,\n\t\t\t\"y\": false,\n\t\t\t\"bar\": this.s.dt.oScroll.iBarWidth\n\t\t};\n\n\t\tif ( nTable.offsetWidth > nTableScrollBody.clientWidth )\n\t\t{\n\t\t\tout.x = true;\n\t\t}\n\n\t\tif ( nTable.offsetHeight > nTableScrollBody.clientHeight )\n\t\t{\n\t\t\tout.y = true;\n\t\t}\n\n\t\treturn out;\n\t},\n\n\n\t/**\n\t * Clone and position the fixed columns\n\t *  @returns {void}\n\t *  @param   {Boolean} bAll Indicate if the header and footer should be updated as well (true)\n\t *  @private\n\t */\n\t\"_fnDraw\": function ( bAll )\n\t{\n\t\tthis._fnGridLayout();\n\t\tthis._fnCloneLeft( bAll );\n\t\tthis._fnCloneRight( bAll );\n\n\t\t$(this.dom.scroller).trigger('scroll');\n\n\t\t/* Draw callback function */\n\t\tif ( this.s.fnDrawCallback !== null )\n\t\t{\n\t\t\tthis.s.fnDrawCallback.call( this, this.dom.clone.left, this.dom.clone.right );\n\t\t}\n\n\t\t/* Event triggering */\n\t\t$(this).trigger( 'draw.dtfc', {\n\t\t\t\"leftClone\": this.dom.clone.left,\n\t\t\t\"rightClone\": this.dom.clone.right\n\t\t} );\n\t},\n\n\n\t/**\n\t * Clone the right columns\n\t *  @returns {void}\n\t *  @param   {Boolean} bAll Indicate if the header and footer should be updated as well (true)\n\t *  @private\n\t */\n\t\"_fnCloneRight\": function ( bAll )\n\t{\n\t\tif ( this.s.iRightColumns <= 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar that = this,\n\t\t\ti, jq,\n\t\t\taiColumns = [];\n\n\t\tfor ( i=this.s.iTableColumns-this.s.iRightColumns ; i<this.s.iTableColumns ; i++ ) {\n\t\t\tif ( this.s.dt.aoColumns[i].bVisible ) {\n\t\t\t\taiColumns.push( i );\n\t\t\t}\n\t\t}\n\n\t\tthis._fnClone( this.dom.clone.right, this.dom.grid.right, aiColumns, bAll );\n\t},\n\n\n\t/**\n\t * Clone the left columns\n\t *  @returns {void}\n\t *  @param   {Boolean} bAll Indicate if the header and footer should be updated as well (true)\n\t *  @private\n\t */\n\t\"_fnCloneLeft\": function ( bAll )\n\t{\n\t\tif ( this.s.iLeftColumns <= 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar that = this,\n\t\t\ti, jq,\n\t\t\taiColumns = [];\n\n\t\tfor ( i=0 ; i<this.s.iLeftColumns ; i++ ) {\n\t\t\tif ( this.s.dt.aoColumns[i].bVisible ) {\n\t\t\t\taiColumns.push( i );\n\t\t\t}\n\t\t}\n\n\t\tthis._fnClone( this.dom.clone.left, this.dom.grid.left, aiColumns, bAll );\n\t},\n\n\n\t/**\n\t * Make a copy of the layout object for a header or footer element from DataTables. Note that\n\t * this method will clone the nodes in the layout object.\n\t *  @returns {Array} Copy of the layout array\n\t *  @param   {Object} aoOriginal Layout array from DataTables (aoHeader or aoFooter)\n\t *  @param   {Object} aiColumns Columns to copy\n\t *  @param   {boolean} events Copy cell events or not\n\t *  @private\n\t */\n\t\"_fnCopyLayout\": function ( aoOriginal, aiColumns, events )\n\t{\n\t\tvar aReturn = [];\n\t\tvar aClones = [];\n\t\tvar aCloned = [];\n\n\t\tfor ( var i=0, iLen=aoOriginal.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tvar aRow = [];\n\t\t\taRow.nTr = $(aoOriginal[i].nTr).clone(events, false)[0];\n\n\t\t\tfor ( var j=0, jLen=this.s.iTableColumns ; j<jLen ; j++ )\n\t\t\t{\n\t\t\t\tif ( $.inArray( j, aiColumns ) === -1 )\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar iCloned = $.inArray( aoOriginal[i][j].cell, aCloned );\n\t\t\t\tif ( iCloned === -1 )\n\t\t\t\t{\n\t\t\t\t\tvar nClone = $(aoOriginal[i][j].cell).clone(events, false)[0];\n\t\t\t\t\taClones.push( nClone );\n\t\t\t\t\taCloned.push( aoOriginal[i][j].cell );\n\n\t\t\t\t\taRow.push( {\n\t\t\t\t\t\t\"cell\": nClone,\n\t\t\t\t\t\t\"unique\": aoOriginal[i][j].unique\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\taRow.push( {\n\t\t\t\t\t\t\"cell\": aClones[ iCloned ],\n\t\t\t\t\t\t\"unique\": aoOriginal[i][j].unique\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taReturn.push( aRow );\n\t\t}\n\n\t\treturn aReturn;\n\t},\n\n\n\t/**\n\t * Clone the DataTable nodes and place them in the DOM (sized correctly)\n\t *  @returns {void}\n\t *  @param   {Object} oClone Object containing the header, footer and body cloned DOM elements\n\t *  @param   {Object} oGrid Grid object containing the display grid elements for the cloned\n\t *                    column (left or right)\n\t *  @param   {Array} aiColumns Column indexes which should be operated on from the DataTable\n\t *  @param   {Boolean} bAll Indicate if the header and footer should be updated as well (true)\n\t *  @private\n\t */\n\t\"_fnClone\": function ( oClone, oGrid, aiColumns, bAll )\n\t{\n\t\tvar that = this,\n\t\t\ti, iLen, j, jLen, jq, nTarget, iColumn, nClone, iIndex, aoCloneLayout,\n\t\t\tjqCloneThead, aoFixedHeader,\n\t\t\tdt = this.s.dt;\n\n\t\t/*\n\t\t * Header\n\t\t */\n\t\tif ( bAll )\n\t\t{\n\t\t\t$(oClone.header).remove();\n\n\t\t\toClone.header = $(this.dom.header).clone(true, false)[0];\n\t\t\toClone.header.className += \" DTFC_Cloned\";\n\t\t\toClone.header.style.width = \"100%\";\n\t\t\toGrid.head.appendChild( oClone.header );\n\n\t\t\t/* Copy the DataTables layout cache for the header for our floating column */\n\t\t\taoCloneLayout = this._fnCopyLayout( dt.aoHeader, aiColumns, true );\n\t\t\tjqCloneThead = $('>thead', oClone.header);\n\t\t\tjqCloneThead.empty();\n\n\t\t\t/* Add the created cloned TR elements to the table */\n\t\t\tfor ( i=0, iLen=aoCloneLayout.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tjqCloneThead[0].appendChild( aoCloneLayout[i].nTr );\n\t\t\t}\n\n\t\t\t/* Use the handy _fnDrawHead function in DataTables to do the rowspan/colspan\n\t\t\t * calculations for us\n\t\t\t */\n\t\t\tdt.oApi._fnDrawHead( dt, aoCloneLayout, true );\n\t\t}\n\t\telse\n\t\t{\n\t\t\t/* To ensure that we copy cell classes exactly, regardless of colspan, multiple rows\n\t\t\t * etc, we make a copy of the header from the DataTable again, but don't insert the\n\t\t\t * cloned cells, just copy the classes across. To get the matching layout for the\n\t\t\t * fixed component, we use the DataTables _fnDetectHeader method, allowing 1:1 mapping\n\t\t\t */\n\t\t\taoCloneLayout = this._fnCopyLayout( dt.aoHeader, aiColumns, false );\n\t\t\taoFixedHeader=[];\n\n\t\t\tdt.oApi._fnDetectHeader( aoFixedHeader, $('>thead', oClone.header)[0] );\n\n\t\t\tfor ( i=0, iLen=aoCloneLayout.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\tfor ( j=0, jLen=aoCloneLayout[i].length ; j<jLen ; j++ )\n\t\t\t\t{\n\t\t\t\t\taoFixedHeader[i][j].cell.className = aoCloneLayout[i][j].cell.className;\n\n\t\t\t\t\t// If jQuery UI theming is used we need to copy those elements as well\n\t\t\t\t\t$('span.DataTables_sort_icon', aoFixedHeader[i][j].cell).each( function () {\n\t\t\t\t\t\tthis.className = $('span.DataTables_sort_icon', aoCloneLayout[i][j].cell)[0].className;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._fnEqualiseHeights( 'thead', this.dom.header, oClone.header );\n\n\t\t/*\n\t\t * Body\n\t\t */\n\t\tif ( this.s.sHeightMatch == 'auto' )\n\t\t{\n\t\t\t/* Remove any heights which have been applied already and let the browser figure it out */\n\t\t\t$('>tbody>tr', that.dom.body).css('height', 'auto');\n\t\t}\n\n\t\tif ( oClone.body !== null )\n\t\t{\n\t\t\t$(oClone.body).remove();\n\t\t\toClone.body = null;\n\t\t}\n\n\t\toClone.body = $(this.dom.body).clone(true)[0];\n\t\toClone.body.className += \" DTFC_Cloned\";\n\t\toClone.body.style.paddingBottom = dt.oScroll.iBarWidth+\"px\";\n\t\toClone.body.style.marginBottom = (dt.oScroll.iBarWidth*2)+\"px\"; /* For IE */\n\t\tif ( oClone.body.getAttribute('id') !== null )\n\t\t{\n\t\t\toClone.body.removeAttribute('id');\n\t\t}\n\n\t\t$('>thead>tr', oClone.body).empty();\n\t\t$('>tfoot', oClone.body).remove();\n\n\t\tvar nBody = $('tbody', oClone.body)[0];\n\t\t$(nBody).empty();\n\t\tif ( dt.aiDisplay.length > 0 )\n\t\t{\n\t\t\t/* Copy the DataTables' header elements to force the column width in exactly the\n\t\t\t * same way that DataTables does it - have the header element, apply the width and\n\t\t\t * colapse it down\n\t\t\t */\n\t\t\tvar nInnerThead = $('>thead>tr', oClone.body)[0];\n\t\t\tfor ( iIndex=0 ; iIndex<aiColumns.length ; iIndex++ )\n\t\t\t{\n\t\t\t\tiColumn = aiColumns[iIndex];\n\n\t\t\t\tnClone = $(dt.aoColumns[iColumn].nTh).clone(true)[0];\n\t\t\t\tnClone.innerHTML = \"\";\n\n\t\t\t\tvar oStyle = nClone.style;\n\t\t\t\toStyle.paddingTop = \"0\";\n\t\t\t\toStyle.paddingBottom = \"0\";\n\t\t\t\toStyle.borderTopWidth = \"0\";\n\t\t\t\toStyle.borderBottomWidth = \"0\";\n\t\t\t\toStyle.height = 0;\n\t\t\t\toStyle.width = that.s.aiInnerWidths[iColumn]+\"px\";\n\n\t\t\t\tnInnerThead.appendChild( nClone );\n\t\t\t}\n\n\t\t\t/* Add in the tbody elements, cloning form the master table */\n\t\t\t$('>tbody>tr', that.dom.body).each( function (z) {\n\t\t\t\tvar i = that.s.dt.oFeatures.bServerSide===false ?\n\t\t\t\t\tthat.s.dt.aiDisplay[ that.s.dt._iDisplayStart+z ] : z;\n\t\t\t\tvar aTds = that.s.dt.aoData[ i ].anCells || $(this).children('td, th');\n\n\t\t\t\tvar n = this.cloneNode(false);\n\t\t\t\tn.removeAttribute('id');\n\t\t\t\tn.setAttribute( 'data-dt-row', i );\n\n\t\t\t\tfor ( iIndex=0 ; iIndex<aiColumns.length ; iIndex++ )\n\t\t\t\t{\n\t\t\t\t\tiColumn = aiColumns[iIndex];\n\n\t\t\t\t\tif ( aTds.length > 0 )\n\t\t\t\t\t{\n\t\t\t\t\t\tnClone = $( aTds[iColumn] ).clone(true, true)[0];\n\t\t\t\t\t\tnClone.removeAttribute( 'id' );\n\t\t\t\t\t\tnClone.setAttribute( 'data-dt-row', i );\n\t\t\t\t\t\tnClone.setAttribute( 'data-dt-column', iColumn );\n\t\t\t\t\t\tn.appendChild( nClone );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnBody.appendChild( n );\n\t\t\t} );\n\t\t}\n\t\telse\n\t\t{\n\t\t\t$('>tbody>tr', that.dom.body).each( function (z) {\n\t\t\t\tnClone = this.cloneNode(true);\n\t\t\t\tnClone.className += ' DTFC_NoData';\n\t\t\t\t$('td', nClone).html('');\n\t\t\t\tnBody.appendChild( nClone );\n\t\t\t} );\n\t\t}\n\n\t\toClone.body.style.width = \"100%\";\n\t\toClone.body.style.margin = \"0\";\n\t\toClone.body.style.padding = \"0\";\n\n\t\t// Interop with Scroller - need to use a height forcing element in the\n\t\t// scrolling area in the same way that Scroller does in the body scroll.\n\t\tif ( dt.oScroller !== undefined )\n\t\t{\n\t\t\tvar scrollerForcer = dt.oScroller.dom.force;\n\n\t\t\tif ( ! oGrid.forcer ) {\n\t\t\t\toGrid.forcer = scrollerForcer.cloneNode( true );\n\t\t\t\toGrid.liner.appendChild( oGrid.forcer );\n\t\t\t}\n\t\t\telse {\n\t\t\t\toGrid.forcer.style.height = scrollerForcer.style.height;\n\t\t\t}\n\t\t}\n\n\t\toGrid.liner.appendChild( oClone.body );\n\n\t\tthis._fnEqualiseHeights( 'tbody', that.dom.body, oClone.body );\n\n\t\t/*\n\t\t * Footer\n\t\t */\n\t\tif ( dt.nTFoot !== null )\n\t\t{\n\t\t\tif ( bAll )\n\t\t\t{\n\t\t\t\tif ( oClone.footer !== null )\n\t\t\t\t{\n\t\t\t\t\toClone.footer.parentNode.removeChild( oClone.footer );\n\t\t\t\t}\n\t\t\t\toClone.footer = $(this.dom.footer).clone(true, true)[0];\n\t\t\t\toClone.footer.className += \" DTFC_Cloned\";\n\t\t\t\toClone.footer.style.width = \"100%\";\n\t\t\t\toGrid.foot.appendChild( oClone.footer );\n\n\t\t\t\t/* Copy the footer just like we do for the header */\n\t\t\t\taoCloneLayout = this._fnCopyLayout( dt.aoFooter, aiColumns, true );\n\t\t\t\tvar jqCloneTfoot = $('>tfoot', oClone.footer);\n\t\t\t\tjqCloneTfoot.empty();\n\n\t\t\t\tfor ( i=0, iLen=aoCloneLayout.length ; i<iLen ; i++ )\n\t\t\t\t{\n\t\t\t\t\tjqCloneTfoot[0].appendChild( aoCloneLayout[i].nTr );\n\t\t\t\t}\n\t\t\t\tdt.oApi._fnDrawHead( dt, aoCloneLayout, true );\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\taoCloneLayout = this._fnCopyLayout( dt.aoFooter, aiColumns, false );\n\t\t\t\tvar aoCurrFooter=[];\n\n\t\t\t\tdt.oApi._fnDetectHeader( aoCurrFooter, $('>tfoot', oClone.footer)[0] );\n\n\t\t\t\tfor ( i=0, iLen=aoCloneLayout.length ; i<iLen ; i++ )\n\t\t\t\t{\n\t\t\t\t\tfor ( j=0, jLen=aoCloneLayout[i].length ; j<jLen ; j++ )\n\t\t\t\t\t{\n\t\t\t\t\t\taoCurrFooter[i][j].cell.className = aoCloneLayout[i][j].cell.className;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._fnEqualiseHeights( 'tfoot', this.dom.footer, oClone.footer );\n\t\t}\n\n\t\t/* Equalise the column widths between the header footer and body - body get's priority */\n\t\tvar anUnique = dt.oApi._fnGetUniqueThs( dt, $('>thead', oClone.header)[0] );\n\t\t$(anUnique).each( function (i) {\n\t\t\tiColumn = aiColumns[i];\n\t\t\tthis.style.width = that.s.aiInnerWidths[iColumn]+\"px\";\n\t\t} );\n\n\t\tif ( that.s.dt.nTFoot !== null )\n\t\t{\n\t\t\tanUnique = dt.oApi._fnGetUniqueThs( dt, $('>tfoot', oClone.footer)[0] );\n\t\t\t$(anUnique).each( function (i) {\n\t\t\t\tiColumn = aiColumns[i];\n\t\t\t\tthis.style.width = that.s.aiInnerWidths[iColumn]+\"px\";\n\t\t\t} );\n\t\t}\n\t},\n\n\n\t/**\n\t * From a given table node (THEAD etc), get a list of TR direct child elements\n\t *  @param   {Node} nIn Table element to search for TR elements (THEAD, TBODY or TFOOT element)\n\t *  @returns {Array} List of TR elements found\n\t *  @private\n\t */\n\t\"_fnGetTrNodes\": function ( nIn )\n\t{\n\t\tvar aOut = [];\n\t\tfor ( var i=0, iLen=nIn.childNodes.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tif ( nIn.childNodes[i].nodeName.toUpperCase() == \"TR\" )\n\t\t\t{\n\t\t\t\taOut.push( nIn.childNodes[i] );\n\t\t\t}\n\t\t}\n\t\treturn aOut;\n\t},\n\n\n\t/**\n\t * Equalise the heights of the rows in a given table node in a cross browser way\n\t *  @returns {void}\n\t *  @param   {String} nodeName Node type - thead, tbody or tfoot\n\t *  @param   {Node} original Original node to take the heights from\n\t *  @param   {Node} clone Copy the heights to\n\t *  @private\n\t */\n\t\"_fnEqualiseHeights\": function ( nodeName, original, clone )\n\t{\n\t\tif ( this.s.sHeightMatch == 'none' && nodeName !== 'thead' && nodeName !== 'tfoot' )\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvar that = this,\n\t\t\ti, iLen, iHeight, iHeight2, iHeightOriginal, iHeightClone,\n\t\t\trootOriginal = original.getElementsByTagName(nodeName)[0],\n\t\t\trootClone    = clone.getElementsByTagName(nodeName)[0],\n\t\t\tjqBoxHack    = $('>'+nodeName+'>tr:eq(0)', original).children(':first'),\n\t\t\tiBoxHack     = jqBoxHack.outerHeight() - jqBoxHack.height(),\n\t\t\tanOriginal   = this._fnGetTrNodes( rootOriginal ),\n\t\t\tanClone      = this._fnGetTrNodes( rootClone ),\n\t\t\theights      = [];\n\n\t\tfor ( i=0, iLen=anClone.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tiHeightOriginal = anOriginal[i].offsetHeight;\n\t\t\tiHeightClone = anClone[i].offsetHeight;\n\t\t\tiHeight = iHeightClone > iHeightOriginal ? iHeightClone : iHeightOriginal;\n\n\t\t\tif ( this.s.sHeightMatch == 'semiauto' )\n\t\t\t{\n\t\t\t\tanOriginal[i]._DTTC_iHeight = iHeight;\n\t\t\t}\n\n\t\t\theights.push( iHeight );\n\t\t}\n\n\t\tfor ( i=0, iLen=anClone.length ; i<iLen ; i++ )\n\t\t{\n\t\t\tanClone[i].style.height = heights[i]+\"px\";\n\t\t\tanOriginal[i].style.height = heights[i]+\"px\";\n\t\t}\n\t},\n\n\t/**\n\t * Determine if the UA suffers from Firefox's overflow:scroll scrollbars\n\t * not being shown bug.\n\t *\n\t * Firefox doesn't draw scrollbars, even if it is told to using\n\t * overflow:scroll, if the div is less than 34px height. See bugs 292284 and\n\t * 781885. Using UA detection here since this is particularly hard to detect\n\t * using objects - its a straight up rendering error in Firefox.\n\t *\n\t * @return {boolean} True if Firefox error is present, false otherwise\n\t */\n\t_firefoxScrollError: function () {\n\t\tif ( _firefoxScroll === undefined ) {\n\t\t\tvar test = $('<div/>')\n\t\t\t\t.css( {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\theight: 10,\n\t\t\t\t\twidth: 50,\n\t\t\t\t\toverflow: 'scroll'\n\t\t\t\t} )\n\t\t\t\t.appendTo( 'body' );\n\n\t\t\t// Make sure this doesn't apply on Macs with 0 width scrollbars\n\t\t\t_firefoxScroll = (\n\t\t\t\ttest[0].clientWidth === test[0].offsetWidth && this._fnDTOverflow().bar !== 0\n\t\t\t);\n\n\t\t\ttest.remove();\n\t\t}\n\n\t\treturn _firefoxScroll;\n\t}\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Statics\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/**\n * FixedColumns default settings for initialisation\n *  @name FixedColumns.defaults\n *  @namespace\n *  @static\n */\nFixedColumns.defaults = /** @lends FixedColumns.defaults */{\n\t/**\n\t * Number of left hand columns to fix in position\n\t *  @type     int\n\t *  @default  1\n\t *  @static\n\t *  @example\n\t *      var  = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      new $.fn.dataTable.fixedColumns( table, {\n\t *          \"leftColumns\": 2\n\t *      } );\n\t */\n\t\"iLeftColumns\": 1,\n\n\t/**\n\t * Number of right hand columns to fix in position\n\t *  @type     int\n\t *  @default  0\n\t *  @static\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      new $.fn.dataTable.fixedColumns( table, {\n\t *          \"rightColumns\": 1\n\t *      } );\n\t */\n\t\"iRightColumns\": 0,\n\n\t/**\n\t * Draw callback function which is called when FixedColumns has redrawn the fixed assets\n\t *  @type     function(object, object):void\n\t *  @default  null\n\t *  @static\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      new $.fn.dataTable.fixedColumns( table, {\n\t *          \"drawCallback\": function () {\n\t *\t            alert( \"FixedColumns redraw\" );\n\t *\t        }\n\t *      } );\n\t */\n\t\"fnDrawCallback\": null,\n\n\t/**\n\t * Height matching algorthim to use. This can be \"none\" which will result in no height\n\t * matching being applied by FixedColumns (height matching could be forced by CSS in this\n\t * case), \"semiauto\" whereby the height calculation will be performed once, and the result\n\t * cached to be used again (fnRecalculateHeight can be used to force recalculation), or\n\t * \"auto\" when height matching is performed on every draw (slowest but must accurate)\n\t *  @type     string\n\t *  @default  semiauto\n\t *  @static\n\t *  @example\n\t *      var table = $('#example').dataTable( {\n\t *          \"scrollX\": \"100%\"\n\t *      } );\n\t *      new $.fn.dataTable.fixedColumns( table, {\n\t *          \"heightMatch\": \"auto\"\n\t *      } );\n\t */\n\t\"sHeightMatch\": \"semiauto\"\n};\n\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Constants\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/**\n * FixedColumns version\n *  @name      FixedColumns.version\n *  @type      String\n *  @default   See code\n *  @static\n */\nFixedColumns.version = \"3.3.2\";\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables API integration\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\nDataTable.Api.register( 'fixedColumns()', function () {\n\treturn this;\n} );\n\nDataTable.Api.register( 'fixedColumns().update()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._oFixedColumns ) {\n\t\t\tctx._oFixedColumns.fnUpdate();\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'fixedColumns().relayout()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._oFixedColumns ) {\n\t\t\tctx._oFixedColumns.fnRedrawLayout();\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'rows().recalcHeight()', function () {\n\treturn this.iterator( 'row', function ( ctx, idx ) {\n\t\tif ( ctx._oFixedColumns ) {\n\t\t\tctx._oFixedColumns.fnRecalculateHeight( this.row(idx).node() );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'fixedColumns().rowIndex()', function ( row ) {\n\trow = $(row);\n\n\treturn row.parents('.DTFC_Cloned').length ?\n\t\tthis.rows( { page: 'current' } ).indexes()[ row.index() ] :\n\t\tthis.row( row ).index();\n} );\n\nDataTable.Api.register( 'fixedColumns().cellIndex()', function ( cell ) {\n\tcell = $(cell);\n\n\tif ( cell.parents('.DTFC_Cloned').length ) {\n\t\tvar rowClonedIdx = cell.parent().index();\n\t\tvar rowIdx = this.rows( { page: 'current' } ).indexes()[ rowClonedIdx ];\n\t\tvar columnIdx;\n\n\t\tif ( cell.parents('.DTFC_LeftWrapper').length ) {\n\t\t\tcolumnIdx = cell.index();\n\t\t}\n\t\telse {\n\t\t\tvar columns = this.columns().flatten().length;\n\t\t\tcolumnIdx = columns - this.context[0]._oFixedColumns.s.iRightColumns + cell.index();\n\t\t}\n\n\t\treturn {\n\t\t\trow: rowIdx,\n\t\t\tcolumn: this.column.index( 'toData', columnIdx ),\n\t\t\tcolumnVisible: columnIdx\n\t\t};\n\t}\n\telse {\n\t\treturn this.cell( cell ).index();\n\t}\n} );\n\nDataTable.Api.registerPlural( 'cells().fixedNodes()', 'cell().fixedNode()', function () {\n\treturn this.iterator( 'cell', function ( settings, row, column ) {\n\t\treturn settings._oFixedColumns\n\t\t\t? settings._oFixedColumns.fnToFixedNode( row, column )\n\t\t\t: this.cell(row, column).node();\n\t}, 1 );\n} );\n\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Initialisation\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'init.dt.fixedColumns', function (e, settings) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.fixedColumns;\n\tvar defaults = DataTable.defaults.fixedColumns;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, init, defaults );\n\n\t\tif ( init !== false ) {\n\t\t\tnew FixedColumns( settings, opts );\n\t\t}\n\t}\n} );\n\n\n\n// Make FixedColumns accessible from the DataTables instance\n$.fn.dataTable.FixedColumns = FixedColumns;\n$.fn.DataTable.FixedColumns = FixedColumns;\n\nreturn FixedColumns;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for FixedColumns\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-fixedcolumns'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.FixedColumns ) {\n\t\t\t\trequire('datatables.net-fixedcolumns')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedheader/css/fixedHeader.bootstrap4.css",
    "content": "table.dataTable.fixedHeader-floating,\ntable.dataTable.fixedHeader-locked {\n  background-color: white;\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n}\n\ntable.dataTable.fixedHeader-floating {\n  position: fixed !important;\n}\n\ntable.dataTable.fixedHeader-locked {\n  position: absolute !important;\n}\n\n@media print {\n  table.fixedHeader-floating {\n    display: none;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedheader/js/dataTables.fixedHeader.js",
    "content": "/*! FixedHeader 3.1.8\n * ©2009-2021 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     FixedHeader\n * @description Fix a table's header or footer, so it is always visible while\n *              scrolling\n * @version     3.1.8\n * @file        dataTables.fixedHeader.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2009-2021 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nvar _instCounter = 0;\n\nvar FixedHeader = function ( dt, config ) {\n\t// Sanity check - you just know it will happen\n\tif ( ! (this instanceof FixedHeader) ) {\n\t\tthrow \"FixedHeader must be initialised with the 'new' keyword.\";\n\t}\n\n\t// Allow a boolean true for defaults\n\tif ( config === true ) {\n\t\tconfig = {};\n\t}\n\n\tdt = new DataTable.Api( dt );\n\n\tthis.c = $.extend( true, {}, FixedHeader.defaults, config );\n\n\tthis.s = {\n\t\tdt: dt,\n\t\tposition: {\n\t\t\ttheadTop: 0,\n\t\t\ttbodyTop: 0,\n\t\t\ttfootTop: 0,\n\t\t\ttfootBottom: 0,\n\t\t\twidth: 0,\n\t\t\tleft: 0,\n\t\t\ttfootHeight: 0,\n\t\t\ttheadHeight: 0,\n\t\t\twindowHeight: $(window).height(),\n\t\t\tvisible: true\n\t\t},\n\t\theaderMode: null,\n\t\tfooterMode: null,\n\t\tautoWidth: dt.settings()[0].oFeatures.bAutoWidth,\n\t\tnamespace: '.dtfc'+(_instCounter++),\n\t\tscrollLeft: {\n\t\t\theader: -1,\n\t\t\tfooter: -1\n\t\t},\n\t\tenable: true\n\t};\n\n\tthis.dom = {\n\t\tfloatingHeader: null,\n\t\tthead: $(dt.table().header()),\n\t\ttbody: $(dt.table().body()),\n\t\ttfoot: $(dt.table().footer()),\n\t\theader: {\n\t\t\thost: null,\n\t\t\tfloating: null,\n\t\t\tplaceholder: null\n\t\t},\n\t\tfooter: {\n\t\t\thost: null,\n\t\t\tfloating: null,\n\t\t\tplaceholder: null\n\t\t}\n\t};\n\n\tthis.dom.header.host = this.dom.thead.parent();\n\tthis.dom.footer.host = this.dom.tfoot.parent();\n\n\tvar dtSettings = dt.settings()[0];\n\tif ( dtSettings._fixedHeader ) {\n\t\tthrow \"FixedHeader already initialised on table \"+dtSettings.nTable.id;\n\t}\n\n\tdtSettings._fixedHeader = this;\n\n\tthis._constructor();\n};\n\n\n/*\n * Variable: FixedHeader\n * Purpose:  Prototype for FixedHeader\n * Scope:    global\n */\n$.extend( FixedHeader.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * API methods\n\t */\n\n\t/**\n\t * Kill off FH and any events\n\t */\n\tdestroy: function () {\n\t\tthis.s.dt.off( '.dtfc' );\n\t\t$(window).off( this.s.namespace );\n\n\t\tif ( this.c.header ) {\n\t\t\tthis._modeChange( 'in-place', 'header', true );\n\t\t}\n\n\t\tif ( this.c.footer && this.dom.tfoot.length ) {\n\t\t\tthis._modeChange( 'in-place', 'footer', true );\n\t\t}\n\t},\n\n\t/**\n\t * Enable / disable the fixed elements\n\t *\n\t * @param  {boolean} enable `true` to enable, `false` to disable\n\t */\n\tenable: function ( enable, update )\n\t{\n\t\tthis.s.enable = enable;\n\n\t\tif ( update || update === undefined ) {\n\t\t\tthis._positions();\n\t\t\tthis._scroll( true );\n\t\t}\n\t},\n\n\t/**\n\t * Get enabled status\n\t */\n\tenabled: function ()\n\t{\n\t\treturn this.s.enable;\n\t},\n\t\n\t/**\n\t * Set header offset \n\t *\n\t * @param  {int} new value for headerOffset\n\t */\n\theaderOffset: function ( offset )\n\t{\n\t\tif ( offset !== undefined ) {\n\t\t\tthis.c.headerOffset = offset;\n\t\t\tthis.update();\n\t\t}\n\n\t\treturn this.c.headerOffset;\n\t},\n\t\n\t/**\n\t * Set footer offset\n\t *\n\t * @param  {int} new value for footerOffset\n\t */\n\tfooterOffset: function ( offset )\n\t{\n\t\tif ( offset !== undefined ) {\n\t\t\tthis.c.footerOffset = offset;\n\t\t\tthis.update();\n\t\t}\n\n\t\treturn this.c.footerOffset;\n\t},\n\n\t\n\t/**\n\t * Recalculate the position of the fixed elements and force them into place\n\t */\n\tupdate: function ()\n\t{\n\t\tvar table = this.s.dt.table().node();\n\n\t\tif ( $(table).is(':visible') ) {\n\t\t\tthis.enable( true, false );\n\t\t}\n\t\telse {\n\t\t\tthis.enable( false, false );\n\t\t}\n\n\t\tthis._positions();\n\t\tthis._scroll( true );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\t\n\t/**\n\t * FixedHeader constructor - adding the required event listeners and\n\t * simple initialisation\n\t *\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\n\t\t$(window)\n\t\t\t.on( 'scroll'+this.s.namespace, function () {\n\t\t\t\tthat._scroll();\n\t\t\t} )\n\t\t\t.on( 'resize'+this.s.namespace, DataTable.util.throttle( function () {\n\t\t\t\tthat.s.position.windowHeight = $(window).height();\n\t\t\t\tthat.update();\n\t\t\t}, 50 ) );\n\n\t\tvar autoHeader = $('.fh-fixedHeader');\n\t\tif ( ! this.c.headerOffset && autoHeader.length ) {\n\t\t\tthis.c.headerOffset = autoHeader.outerHeight();\n\t\t}\n\n\t\tvar autoFooter = $('.fh-fixedFooter');\n\t\tif ( ! this.c.footerOffset && autoFooter.length ) {\n\t\t\tthis.c.footerOffset = autoFooter.outerHeight();\n\t\t}\n\n\t\tdt.on( 'column-reorder.dt.dtfc column-visibility.dt.dtfc draw.dt.dtfc column-sizing.dt.dtfc responsive-display.dt.dtfc', function () {\n\t\t\tthat.update();\n\t\t} );\n\n\t\tdt.on( 'destroy.dtfc', function () {\n\t\t\tthat.destroy();\n\t\t} );\n\n\t\tthis._positions();\n\t\tthis._scroll();\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Clone a fixed item to act as a place holder for the original element\n\t * which is moved into a clone of the table element, and moved around the\n\t * document to give the fixed effect.\n\t *\n\t * @param  {string}  item  'header' or 'footer'\n\t * @param  {boolean} force Force the clone to happen, or allow automatic\n\t *   decision (reuse existing if available)\n\t * @private\n\t */\n\t_clone: function ( item, force )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar itemDom = this.dom[ item ];\n\t\tvar itemElement = item === 'header' ?\n\t\t\tthis.dom.thead :\n\t\t\tthis.dom.tfoot;\n\n\t\tif ( ! force && itemDom.floating ) {\n\t\t\t// existing floating element - reuse it\n\t\t\titemDom.floating.removeClass( 'fixedHeader-floating fixedHeader-locked' );\n\t\t}\n\t\telse {\n\t\t\tif ( itemDom.floating ) {\n\t\t\t\titemDom.placeholder.remove();\n\t\t\t\tthis._unsize( item );\n\t\t\t\titemDom.floating.children().detach();\n\t\t\t\titemDom.floating.remove();\n\t\t\t}\n\n\t\t\titemDom.floating = $( dt.table().node().cloneNode( false ) )\n\t\t\t\t.css( 'table-layout', 'fixed' )\n\t\t\t\t.attr( 'aria-hidden', 'true' )\n\t\t\t\t.removeAttr( 'id' )\n\t\t\t\t.append( itemElement )\n\t\t\t\t.appendTo( 'body' );\n\n\t\t\t// Insert a fake thead/tfoot into the DataTable to stop it jumping around\n\t\t\titemDom.placeholder = itemElement.clone( false );\n\t\t\titemDom.placeholder\n\t\t\t\t.find( '*[id]' )\n\t\t\t\t.removeAttr( 'id' );\n\n\t\t\titemDom.host.prepend( itemDom.placeholder );\n\n\t\t\t// Clone widths\n\t\t\tthis._matchWidths( itemDom.placeholder, itemDom.floating );\n\t\t}\n\t},\n\n\t/**\n\t * Copy widths from the cells in one element to another. This is required\n\t * for the footer as the footer in the main table takes its sizes from the\n\t * header columns. That isn't present in the footer so to have it still\n\t * align correctly, the sizes need to be copied over. It is also required\n\t * for the header when auto width is not enabled\n\t *\n\t * @param  {jQuery} from Copy widths from\n\t * @param  {jQuery} to   Copy widths to\n\t * @private\n\t */\n\t_matchWidths: function ( from, to ) {\n\t\tvar get = function ( name ) {\n\t\t\treturn $(name, from)\n\t\t\t\t.map( function () {\n\t\t\t\t\treturn $(this).css('width').replace(/[^\\d\\.]/g, '') * 1;\n\t\t\t\t} ).toArray();\n\t\t};\n\n\t\tvar set = function ( name, toWidths ) {\n\t\t\t$(name, to).each( function ( i ) {\n\t\t\t\t$(this).css( {\n\t\t\t\t\twidth: toWidths[i],\n\t\t\t\t\tminWidth: toWidths[i]\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\n\t\tvar thWidths = get( 'th' );\n\t\tvar tdWidths = get( 'td' );\n\n\t\tset( 'th', thWidths );\n\t\tset( 'td', tdWidths );\n\t},\n\n\t/**\n\t * Remove assigned widths from the cells in an element. This is required\n\t * when inserting the footer back into the main table so the size is defined\n\t * by the header columns and also when auto width is disabled in the\n\t * DataTable.\n\t *\n\t * @param  {string} item The `header` or `footer`\n\t * @private\n\t */\n\t_unsize: function ( item ) {\n\t\tvar el = this.dom[ item ].floating;\n\n\t\tif ( el && (item === 'footer' || (item === 'header' && ! this.s.autoWidth)) ) {\n\t\t\t$('th, td', el).css( {\n\t\t\t\twidth: '',\n\t\t\t\tminWidth: ''\n\t\t\t} );\n\t\t}\n\t\telse if ( el && item === 'header' ) {\n\t\t\t$('th, td', el).css( 'min-width', '' );\n\t\t}\n\t},\n\n\t/**\n\t * Reposition the floating elements to take account of horizontal page\n\t * scroll\n\t *\n\t * @param  {string} item       The `header` or `footer`\n\t * @param  {int}    scrollLeft Document scrollLeft\n\t * @private\n\t */\n\t_horizontal: function ( item, scrollLeft )\n\t{\n\t\tvar itemDom = this.dom[ item ];\n\t\tvar position = this.s.position;\n\t\tvar lastScrollLeft = this.s.scrollLeft;\n\n\t\tif ( itemDom.floating && lastScrollLeft[ item ] !== scrollLeft ) {\n\t\t\titemDom.floating.css( 'left', position.left - scrollLeft );\n\n\t\t\tlastScrollLeft[ item ] = scrollLeft;\n\t\t}\n\t},\n\n\t/**\n\t * Change from one display mode to another. Each fixed item can be in one\n\t * of:\n\t *\n\t * * `in-place` - In the main DataTable\n\t * * `in` - Floating over the DataTable\n\t * * `below` - (Header only) Fixed to the bottom of the table body\n\t * * `above` - (Footer only) Fixed to the top of the table body\n\t * \n\t * @param  {string}  mode        Mode that the item should be shown in\n\t * @param  {string}  item        'header' or 'footer'\n\t * @param  {boolean} forceChange Force a redraw of the mode, even if already\n\t *     in that mode.\n\t * @private\n\t */\n\t_modeChange: function ( mode, item, forceChange )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar itemDom = this.dom[ item ];\n\t\tvar position = this.s.position;\n\n\t\t// It isn't trivial to add a !important css attribute...\n\t\tvar importantWidth = function (w) {\n\t\t\titemDom.floating.attr('style', function(i,s) {\n\t\t\t\treturn (s || '') + 'width: '+w+'px !important;';\n\t\t\t});\n\t\t};\n\n\t\t// Record focus. Browser's will cause input elements to loose focus if\n\t\t// they are inserted else where in the doc\n\t\tvar tablePart = this.dom[ item==='footer' ? 'tfoot' : 'thead' ];\n\t\tvar focus = $.contains( tablePart[0], document.activeElement ) ?\n\t\t\tdocument.activeElement :\n\t\t\tnull;\n\t\t\n\t\tif ( focus ) {\n\t\t\tfocus.blur();\n\t\t}\n\n\t\tif ( mode === 'in-place' ) {\n\t\t\t// Insert the header back into the table's real header\n\t\t\tif ( itemDom.placeholder ) {\n\t\t\t\titemDom.placeholder.remove();\n\t\t\t\titemDom.placeholder = null;\n\t\t\t}\n\n\t\t\tthis._unsize( item );\n\n\t\t\tif ( item === 'header' ) {\n\t\t\t\titemDom.host.prepend( tablePart );\n\t\t\t}\n\t\t\telse {\n\t\t\t\titemDom.host.append( tablePart );\n\t\t\t}\n\n\t\t\tif ( itemDom.floating ) {\n\t\t\t\titemDom.floating.remove();\n\t\t\t\titemDom.floating = null;\n\t\t\t}\n\t\t}\n\t\telse if ( mode === 'in' ) {\n\t\t\t// Remove the header from the read header and insert into a fixed\n\t\t\t// positioned floating table clone\n\t\t\tthis._clone( item, forceChange );\n\n\t\t\titemDom.floating\n\t\t\t\t.addClass( 'fixedHeader-floating' )\n\t\t\t\t.css( item === 'header' ? 'top' : 'bottom', this.c[item+'Offset'] )\n\t\t\t\t.css( 'left', position.left+'px' );\n\n\t\t\timportantWidth(position.width);\n\n\t\t\tif ( item === 'footer' ) {\n\t\t\t\titemDom.floating.css( 'top', '' );\n\t\t\t}\n\t\t}\n\t\telse if ( mode === 'below' ) { // only used for the header\n\t\t\t// Fix the position of the floating header at base of the table body\n\t\t\tthis._clone( item, forceChange );\n\n\t\t\titemDom.floating\n\t\t\t\t.addClass( 'fixedHeader-locked' )\n\t\t\t\t.css( 'top', position.tfootTop - position.theadHeight )\n\t\t\t\t.css( 'left', position.left+'px' );\n\n\t\t\timportantWidth(position.width);\n\t\t}\n\t\telse if ( mode === 'above' ) { // only used for the footer\n\t\t\t// Fix the position of the floating footer at top of the table body\n\t\t\tthis._clone( item, forceChange );\n\n\t\t\titemDom.floating\n\t\t\t\t.addClass( 'fixedHeader-locked' )\n\t\t\t\t.css( 'top', position.tbodyTop )\n\t\t\t\t.css( 'left', position.left+'px' );\n\n\t\t\timportantWidth(position.width);\n\t\t}\n\n\t\t// Restore focus if it was lost\n\t\tif ( focus && focus !== document.activeElement ) {\n\t\t\tsetTimeout( function () {\n\t\t\t\tfocus.focus();\n\t\t\t}, 10 );\n\t\t}\n\n\t\tthis.s.scrollLeft.header = -1;\n\t\tthis.s.scrollLeft.footer = -1;\n\t\tthis.s[item+'Mode'] = mode;\n\t},\n\n\t/**\n\t * Cache the positional information that is required for the mode\n\t * calculations that FixedHeader performs.\n\t *\n\t * @private\n\t */\n\t_positions: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar table = dt.table();\n\t\tvar position = this.s.position;\n\t\tvar dom = this.dom;\n\t\tvar tableNode = $(table.node());\n\n\t\t// Need to use the header and footer that are in the main table,\n\t\t// regardless of if they are clones, since they hold the positions we\n\t\t// want to measure from\n\t\tvar thead = tableNode.children('thead');\n\t\tvar tfoot = tableNode.children('tfoot');\n\t\tvar tbody = dom.tbody;\n\n\t\tposition.visible = tableNode.is(':visible');\n\t\tposition.width = tableNode.outerWidth();\n\t\tposition.left = tableNode.offset().left;\n\t\tposition.theadTop = thead.offset().top;\n\t\tposition.tbodyTop = tbody.offset().top;\n\t\tposition.tbodyHeight = tbody.outerHeight();\n\t\tposition.theadHeight = position.tbodyTop - position.theadTop;\n\n\t\tif ( tfoot.length ) {\n\t\t\tposition.tfootTop = tfoot.offset().top;\n\t\t\tposition.tfootBottom = position.tfootTop + tfoot.outerHeight();\n\t\t\tposition.tfootHeight = position.tfootBottom - position.tfootTop;\n\t\t}\n\t\telse {\n\t\t\tposition.tfootTop = position.tbodyTop + tbody.outerHeight();\n\t\t\tposition.tfootBottom = position.tfootTop;\n\t\t\tposition.tfootHeight = position.tfootTop;\n\t\t}\n\t},\n\n\n\t/**\n\t * Mode calculation - determine what mode the fixed items should be placed\n\t * into.\n\t *\n\t * @param  {boolean} forceChange Force a redraw of the mode, even if already\n\t *     in that mode.\n\t * @private\n\t */\n\t_scroll: function ( forceChange )\n\t{\n\t\tvar windowTop = $(document).scrollTop();\n\t\tvar windowLeft = $(document).scrollLeft();\n\t\tvar position = this.s.position;\n\t\tvar headerMode, footerMode;\n\n\t\tif ( this.c.header ) {\n\t\t\tif ( ! this.s.enable ) {\n\t\t\t\theaderMode = 'in-place';\n\t\t\t}\n\t\t\telse if ( ! position.visible || windowTop <= position.theadTop - this.c.headerOffset ) {\n\t\t\t\theaderMode = 'in-place';\n\t\t\t}\n\t\t\telse if ( windowTop <= position.tfootTop - position.theadHeight - this.c.headerOffset ) {\n\t\t\t\theaderMode = 'in';\n\t\t\t}\n\t\t\telse {\n\t\t\t\theaderMode = 'below';\n\t\t\t}\n\n\t\t\tif ( forceChange || headerMode !== this.s.headerMode ) {\n\t\t\t\tthis._modeChange( headerMode, 'header', forceChange );\n\t\t\t}\n\n\t\t\tthis._horizontal( 'header', windowLeft );\n\t\t}\n\n\t\tif ( this.c.footer && this.dom.tfoot.length ) {\n\t\t\tif ( ! this.s.enable ) {\n\t\t\t\tfooterMode = 'in-place';\n\t\t\t}\n\t\t\telse if ( ! position.visible || windowTop + position.windowHeight >= position.tfootBottom + this.c.footerOffset ) {\n\t\t\t\tfooterMode = 'in-place';\n\t\t\t}\n\t\t\telse if ( position.windowHeight + windowTop > position.tbodyTop + position.tfootHeight + this.c.footerOffset ) {\n\t\t\t\tfooterMode = 'in';\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfooterMode = 'above';\n\t\t\t}\n\n\t\t\tif ( forceChange || footerMode !== this.s.footerMode ) {\n\t\t\t\tthis._modeChange( footerMode, 'footer', forceChange );\n\t\t\t}\n\n\t\t\tthis._horizontal( 'footer', windowLeft );\n\t\t}\n\t}\n} );\n\n\n/**\n * Version\n * @type {String}\n * @static\n */\nFixedHeader.version = \"3.1.8\";\n\n/**\n * Defaults\n * @type {Object}\n * @static\n */\nFixedHeader.defaults = {\n\theader: true,\n\tfooter: false,\n\theaderOffset: 0,\n\tfooterOffset: 0\n};\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables interfaces\n */\n\n// Attach for constructor access\n$.fn.dataTable.FixedHeader = FixedHeader;\n$.fn.DataTable.FixedHeader = FixedHeader;\n\n\n// DataTables creation - check if the FixedHeader option has been defined on the\n// table and if so, initialise\n$(document).on( 'init.dt.dtfh', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.fixedHeader;\n\tvar defaults = DataTable.defaults.fixedHeader;\n\n\tif ( (init || defaults) && ! settings._fixedHeader ) {\n\t\tvar opts = $.extend( {}, defaults, init );\n\n\t\tif ( init !== false ) {\n\t\t\tnew FixedHeader( settings, opts );\n\t\t}\n\t}\n} );\n\n// DataTables API methods\nDataTable.Api.register( 'fixedHeader()', function () {} );\n\nDataTable.Api.register( 'fixedHeader.adjust()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tvar fh = ctx._fixedHeader;\n\n\t\tif ( fh ) {\n\t\t\tfh.update();\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'fixedHeader.enable()', function ( flag ) {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tvar fh = ctx._fixedHeader;\n\n\t\tflag = ( flag !== undefined ? flag : true );\n\t\tif ( fh && flag !== fh.enabled() ) {\n\t\t\tfh.enable( flag );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'fixedHeader.enabled()', function () {\n\tif ( this.context.length ) {\n\t\tvar fh = this.context[0]._fixedHeader;\n\n\t\tif ( fh ) {\n\t\t\treturn fh.enabled();\n\t\t}\n\t}\n\n\treturn false;\n} );\n\nDataTable.Api.register( 'fixedHeader.disable()', function ( ) {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tvar fh = ctx._fixedHeader;\n\n\t\tif ( fh && fh.enabled() ) {\n\t\t\tfh.enable( false );\n\t\t}\n\t} );\n} );\n\n$.each( ['header', 'footer'], function ( i, el ) {\n\tDataTable.Api.register( 'fixedHeader.'+el+'Offset()', function ( offset ) {\n\t\tvar ctx = this.context;\n\n\t\tif ( offset === undefined ) {\n\t\t\treturn ctx.length && ctx[0]._fixedHeader ?\n\t\t\t\tctx[0]._fixedHeader[el +'Offset']() :\n\t\t\t\tundefined;\n\t\t}\n\n\t\treturn this.iterator( 'table', function ( ctx ) {\n\t\t\tvar fh = ctx._fixedHeader;\n\n\t\t\tif ( fh ) {\n\t\t\t\tfh[ el +'Offset' ]( offset );\n\t\t\t}\n\t\t} );\n\t} );\n} );\n\n\nreturn FixedHeader;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-fixedheader/js/fixedHeader.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for FixedHeader\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-fixedheader'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.FixedHeader ) {\n\t\t\t\trequire('datatables.net-fixedheader')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-keytable/css/keyTable.bootstrap4.css",
    "content": "table.dataTable tbody th.focus,\ntable.dataTable tbody td.focus {\n  box-shadow: inset 0 0 1px 2px #0275d8;\n}\n\ndiv.dtk-focus-alt table.dataTable tbody th.focus,\ndiv.dtk-focus-alt table.dataTable tbody td.focus {\n  box-shadow: inset 0 0 1px 2px #ff8b33;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-keytable/js/dataTables.keyTable.js",
    "content": "/*! KeyTable 2.6.1\n * ©2009-2021 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     KeyTable\n * @description Spreadsheet like keyboard navigation for DataTables\n * @version     2.6.1\n * @file        dataTables.keyTable.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2009-2021 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\nvar namespaceCounter = 0;\nvar editorNamespaceCounter = 0;\n\n\nvar KeyTable = function ( dt, opts ) {\n\t// Sanity check that we are using DataTables 1.10 or newer\n\tif ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.8' ) ) {\n\t\tthrow 'KeyTable requires DataTables 1.10.8 or newer';\n\t}\n\n\t// User and defaults configuration object\n\tthis.c = $.extend( true, {},\n\t\tDataTable.defaults.keyTable,\n\t\tKeyTable.defaults,\n\t\topts\n\t);\n\n\t// Internal settings\n\tthis.s = {\n\t\t/** @type {DataTable.Api} DataTables' API instance */\n\t\tdt: new DataTable.Api( dt ),\n\n\t\tenable: true,\n\n\t\t/** @type {bool} Flag for if a draw is triggered by focus */\n\t\tfocusDraw: false,\n\n\t\t/** @type {bool} Flag to indicate when waiting for a draw to happen.\n\t\t  *   Will ignore key presses at this point\n\t\t  */\n\t\twaitingForDraw: false,\n\n\t\t/** @type {object} Information about the last cell that was focused */\n\t\tlastFocus: null,\n\n\t\t/** @type {string} Unique namespace per instance */\n\t\tnamespace: '.keyTable-'+(namespaceCounter++),\n\n\t\t/** @type {Node} Input element for tabbing into the table */\n\t\ttabInput: null\n\t};\n\n\t// DOM items\n\tthis.dom = {\n\n\t};\n\n\t// Check if row reorder has already been initialised on this table\n\tvar settings = this.s.dt.settings()[0];\n\tvar exisiting = settings.keytable;\n\tif ( exisiting ) {\n\t\treturn exisiting;\n\t}\n\n\tsettings.keytable = this;\n\tthis._constructor();\n};\n\n\n$.extend( KeyTable.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * API methods for DataTables API interface\n\t */\n\n\t/**\n\t * Blur the table's cell focus\n\t */\n\tblur: function ()\n\t{\n\t\tthis._blur();\n\t},\n\n\t/**\n\t * Enable cell focus for the table\n\t *\n\t * @param  {string} state Can be `true`, `false` or `-string navigation-only`\n\t */\n\tenable: function ( state )\n\t{\n\t\tthis.s.enable = state;\n\t},\n\n\t/**\n\t * Get enable status\n\t */\n\tenabled: function () {\n\t\treturn this.s.enable;\n\t},\n\n\t/**\n\t * Focus on a cell\n\t * @param  {integer} row    Row index\n\t * @param  {integer} column Column index\n\t */\n\tfocus: function ( row, column )\n\t{\n\t\tthis._focus( this.s.dt.cell( row, column ) );\n\t},\n\n\t/**\n\t * Is the cell focused\n\t * @param  {object} cell Cell index to check\n\t * @returns {boolean} true if focused, false otherwise\n\t */\n\tfocused: function ( cell )\n\t{\n\t\tvar lastFocus = this.s.lastFocus;\n\n\t\tif ( ! lastFocus ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar lastIdx = this.s.lastFocus.cell.index();\n\t\treturn cell.row === lastIdx.row && cell.column === lastIdx.column;\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Initialise the KeyTable instance\n\t *\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tthis._tabInput();\n\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar table = $( dt.table().node() );\n\t\tvar namespace = this.s.namespace;\n\t\tvar editorBlock = false;\n\n\t\t// Need to be able to calculate the cell positions relative to the table\n\t\tif ( table.css('position') === 'static' ) {\n\t\t\ttable.css( 'position', 'relative' );\n\t\t}\n\n\t\t// Click to focus\n\t\t$( dt.table().body() ).on( 'click'+namespace, 'th, td', function (e) {\n\t\t\tif ( that.s.enable === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar cell = dt.cell( this );\n\n\t\t\tif ( ! cell.any() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthat._focus( cell, null, false, e );\n\t\t} );\n\n\t\t// Key events\n\t\t$( document ).on( 'keydown'+namespace, function (e) {\n\t\t\tif ( ! editorBlock ) {\n\t\t\t\tthat._key( e );\n\t\t\t}\n\t\t} );\n\n\t\t// Click blur\n\t\tif ( this.c.blurable ) {\n\t\t\t$( document ).on( 'mousedown'+namespace, function ( e ) {\n\t\t\t\t// Click on the search input will blur focus\n\t\t\t\tif ( $(e.target).parents( '.dataTables_filter' ).length ) {\n\t\t\t\t\tthat._blur();\n\t\t\t\t}\n\n\t\t\t\t// If the click was inside the DataTables container, don't blur\n\t\t\t\tif ( $(e.target).parents().filter( dt.table().container() ).length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't blur in Editor form\n\t\t\t\tif ( $(e.target).parents('div.DTE').length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Or an Editor date input\n\t\t\t\tif (\n\t\t\t\t\t$(e.target).parents('div.editor-datetime').length ||\n\t\t\t\t\t$(e.target).parents('div.dt-datetime').length \n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t//If the click was inside the fixed columns container, don't blur\n\t\t\t\tif ( $(e.target).parents().filter('.DTFC_Cloned').length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthat._blur();\n\t\t\t} );\n\t\t}\n\n\t\tif ( this.c.editor ) {\n\t\t\tvar editor = this.c.editor;\n\n\t\t\t// Need to disable KeyTable when the main editor is shown\n\t\t\teditor.on( 'open.keyTableMain', function (e, mode, action) {\n\t\t\t\tif ( mode !== 'inline' && that.s.enable ) {\n\t\t\t\t\tthat.enable( false );\n\n\t\t\t\t\teditor.one( 'close'+namespace, function () {\n\t\t\t\t\t\tthat.enable( true );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif ( this.c.editOnFocus ) {\n\t\t\t\tdt.on( 'key-focus'+namespace+' key-refocus'+namespace, function ( e, dt, cell, orig ) {\n\t\t\t\t\tthat._editor( null, orig, true );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Activate Editor when a key is pressed (will be ignored, if\n\t\t\t// already active).\n\t\t\tdt.on( 'key'+namespace, function ( e, dt, key, cell, orig ) {\n\t\t\t\tthat._editor( key, orig, false );\n\t\t\t} );\n\n\t\t\t// Active editing on double click - it will already have focus from\n\t\t\t// the click event handler above\n\t\t\t$( dt.table().body() ).on( 'dblclick'+namespace, 'th, td', function (e) {\n\t\t\t\tif ( that.s.enable === false ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar cell = dt.cell( this );\n\n\t\t\t\tif ( ! cell.any() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( that.s.lastFocus && this !== that.s.lastFocus.cell.node() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthat._editor( null, e, true );\n\t\t\t} );\n\n\t\t\t// While Editor is busy processing, we don't want to process any key events\n\t\t\teditor\n\t\t\t\t.on('preSubmit', function () {\n\t\t\t\t\teditorBlock = true;\n\t\t\t\t} )\n\t\t\t\t.on('preSubmitCancelled', function () {\n\t\t\t\t\teditorBlock = false;\n\t\t\t\t} )\n\t\t\t\t.on('submitComplete', function () {\n\t\t\t\t\teditorBlock = false;\n\t\t\t\t} );\n\t\t}\n\n\t\t// Stave saving\n\t\tif ( dt.settings()[0].oFeatures.bStateSave ) {\n\t\t\tdt.on( 'stateSaveParams'+namespace, function (e, s, d) {\n\t\t\t\td.keyTable = that.s.lastFocus ?\n\t\t\t\t\tthat.s.lastFocus.cell.index() :\n\t\t\t\t\tnull;\n\t\t\t} );\n\t\t}\n\n\t\tdt.on( 'column-visibility'+namespace, function (e) {\n\t\t\tthat._tabInput();\n\t\t} );\n\n\t\t// Redraw - retain focus on the current cell\n\t\tdt.on( 'draw'+namespace, function (e) {\n\t\t\tthat._tabInput();\n\n\t\t\tif ( that.s.focusDraw ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lastFocus = that.s.lastFocus;\n\n\t\t\tif ( lastFocus ) {\n\t\t\t\tvar relative = that.s.lastFocus.relative;\n\t\t\t\tvar info = dt.page.info();\n\t\t\t\tvar row = relative.row + info.start;\n\n\t\t\t\tif ( info.recordsDisplay === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Reverse if needed\n\t\t\t\tif ( row >= info.recordsDisplay ) {\n\t\t\t\t\trow = info.recordsDisplay - 1;\n\t\t\t\t}\n\n\t\t\t\tthat._focus( row, relative.column, true, e );\n\t\t\t}\n\t\t} );\n\n\t\t// Clipboard support\n\t\tif ( this.c.clipboard ) {\n\t\t\tthis._clipboard();\n\t\t}\n\n\t\tdt.on( 'destroy'+namespace, function () {\n\t\t\tthat._blur( true );\n\n\t\t\t// Event tidy up\n\t\t\tdt.off( namespace );\n\n\t\t\t$( dt.table().body() )\n\t\t\t\t.off( 'click'+namespace, 'th, td' )\n\t\t\t\t.off( 'dblclick'+namespace, 'th, td' );\n\n\t\t\t$( document )\n\t\t\t\t.off( 'mousedown'+namespace )\n\t\t\t\t.off( 'keydown'+namespace )\n\t\t\t\t.off( 'copy'+namespace )\n\t\t\t\t.off( 'paste'+namespace );\n\t\t} );\n\n\t\t// Initial focus comes from state or options\n\t\tvar state = dt.state.loaded();\n\n\t\tif ( state && state.keyTable ) {\n\t\t\t// Wait until init is done\n\t\t\tdt.one( 'init', function () {\n\t\t\t\tvar cell = dt.cell( state.keyTable );\n\n\t\t\t\t// Ensure that the saved cell still exists\n\t\t\t\tif ( cell.any() ) {\n\t\t\t\t\tcell.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\telse if ( this.c.focus ) {\n\t\t\tdt.cell( this.c.focus ).focus();\n\t\t}\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Blur the control\n\t *\n\t * @param {boolean} [noEvents=false] Don't trigger updates / events (for destroying)\n\t * @private\n\t */\n\t_blur: function (noEvents)\n\t{\n\t\tif ( ! this.s.enable || ! this.s.lastFocus ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar cell = this.s.lastFocus.cell;\n\n\t\t$( cell.node() ).removeClass( this.c.className );\n\t\tthis.s.lastFocus = null;\n\n\t\tif ( ! noEvents ) {\n\t\t\tthis._updateFixedColumns(cell.index().column);\n\n\t\t\tthis._emitEvent( 'key-blur', [ this.s.dt, cell ] );\n\t\t}\n\t},\n\n\n\t/**\n\t * Clipboard interaction handlers\n\t *\n\t * @private\n\t */\n\t_clipboard: function () {\n\t\tvar dt = this.s.dt;\n\t\tvar that = this;\n\t\tvar namespace = this.s.namespace;\n\n\t\t// IE8 doesn't support getting selected text\n\t\tif ( ! window.getSelection ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$(document).on( 'copy'+namespace, function (ejq) {\n\t\t\tvar e = ejq.originalEvent;\n\t\t\tvar selection = window.getSelection().toString();\n\t\t\tvar focused = that.s.lastFocus;\n\n\t\t\t// Only copy cell text to clipboard if there is no other selection\n\t\t\t// and there is a focused cell\n\t\t\tif ( ! selection && focused ) {\n\t\t\t\te.clipboardData.setData(\n\t\t\t\t\t'text/plain',\n\t\t\t\t\tfocused.cell.render( that.c.clipboardOrthogonal )\n\t\t\t\t);\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} );\n\n\t\t$(document).on( 'paste'+namespace, function (ejq) {\n\t\t\tvar e = ejq.originalEvent;\n\t\t\tvar focused = that.s.lastFocus;\n\t\t\tvar activeEl = document.activeElement;\n\t\t\tvar editor = that.c.editor;\n\t\t\tvar pastedText;\n\n\t\t\tif ( focused && (! activeEl || activeEl.nodeName.toLowerCase() === 'body') ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ( window.clipboardData && window.clipboardData.getData ) {\n\t\t\t\t\t// IE\n\t\t\t\t\tpastedText = window.clipboardData.getData('Text');\n\t\t\t\t}\n\t\t\t\telse if ( e.clipboardData && e.clipboardData.getData ) {\n\t\t\t\t\t// Everything else\n\t\t\t\t\tpastedText = e.clipboardData.getData('text/plain');\n\t\t\t\t}\n\n\t\t\t\tif ( editor ) {\n\t\t\t\t\t// Got Editor - need to activate inline editing,\n\t\t\t\t\t// set the value and submit\n\t\t\t\t\teditor\n\t\t\t\t\t\t.inline( focused.cell.index() )\n\t\t\t\t\t\t.set( editor.displayed()[0], pastedText )\n\t\t\t\t\t\t.submit();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// No editor, so just dump the data in\n\t\t\t\t\tfocused.cell.data( pastedText );\n\t\t\t\t\tdt.draw(false);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\n\t/**\n\t * Get an array of the column indexes that KeyTable can operate on. This\n\t * is a merge of the user supplied columns and the visible columns.\n\t *\n\t * @private\n\t */\n\t_columns: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar user = dt.columns( this.c.columns ).indexes();\n\t\tvar out = [];\n\n\t\tdt.columns( ':visible' ).every( function (i) {\n\t\t\tif ( user.indexOf( i ) !== -1 ) {\n\t\t\t\tout.push( i );\n\t\t\t}\n\t\t} );\n\n\t\treturn out;\n\t},\n\n\n\t/**\n\t * Perform excel like navigation for Editor by triggering an edit on key\n\t * press\n\t *\n\t * @param  {integer} key Key code for the pressed key\n\t * @param  {object} orig Original event\n\t * @private\n\t */\n\t_editor: function ( key, orig, hardEdit )\n\t{\n\t\t// If nothing focused, we can't take any action\n\t\tif (! this.s.lastFocus) {\n\t\t\treturn;\t\n\t\t}\n\n\t\t// DataTables draw event\n\t\tif (orig && orig.type === 'draw') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar editor = this.c.editor;\n\t\tvar editCell = this.s.lastFocus.cell;\n\t\tvar namespace = this.s.namespace + 'e' + editorNamespaceCounter++;\n\n\t\t// Do nothing if there is already an inline edit in this cell\n\t\tif ( $('div.DTE', editCell.node()).length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Don't activate Editor on control key presses\n\t\tif ( key !== null && (\n\t\t\t(key >= 0x00 && key <= 0x09) ||\n\t\t\tkey === 0x0b ||\n\t\t\tkey === 0x0c ||\n\t\t\t(key >= 0x0e && key <= 0x1f) ||\n\t\t\t(key >= 0x70 && key <= 0x7b) ||\n\t\t\t(key >= 0x7f && key <= 0x9f)\n\t\t) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( orig ) {\n\t\t\torig.stopPropagation();\n\n\t\t\t// Return key should do nothing - for textareas it would empty the\n\t\t\t// contents\n\t\t\tif ( key === 13 ) {\n\t\t\t\torig.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tvar editInline = function () {\n\t\t\teditor\n\t\t\t\t.one( 'open'+namespace, function () {\n\t\t\t\t\t// Remove cancel open\n\t\t\t\t\teditor.off( 'cancelOpen'+namespace );\n\n\t\t\t\t\t// Excel style - select all text\n\t\t\t\t\tif ( ! hardEdit ) {\n\t\t\t\t\t\t$('div.DTE_Field_InputControl input, div.DTE_Field_InputControl textarea').select();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reduce the keys the Keys listens for\n\t\t\t\t\tdt.keys.enable( hardEdit ? 'tab-only' : 'navigation-only' );\n\n\t\t\t\t\t// On blur of the navigation submit\n\t\t\t\t\tdt.on( 'key-blur.editor', function (e, dt, cell) {\n\t\t\t\t\t\tif ( editor.displayed() && cell.node() === editCell.node() ) {\n\t\t\t\t\t\t\teditor.submit();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Highlight the cell a different colour on full edit\n\t\t\t\t\tif ( hardEdit ) {\n\t\t\t\t\t\t$( dt.table().container() ).addClass('dtk-focus-alt');\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the dev cancels the submit, we need to return focus\n\t\t\t\t\teditor.on( 'preSubmitCancelled'+namespace, function () {\n\t\t\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t\t\tthat._focus( editCell, null, false );\n\t\t\t\t\t\t}, 50 );\n\t\t\t\t\t} );\n\n\t\t\t\t\teditor.on( 'submitUnsuccessful'+namespace, function () {\n\t\t\t\t\t\tthat._focus( editCell, null, false );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Restore full key navigation on close\n\t\t\t\t\teditor.one( 'close'+namespace, function () {\n\t\t\t\t\t\tdt.keys.enable( true );\n\t\t\t\t\t\tdt.off( 'key-blur.editor' );\n\t\t\t\t\t\teditor.off( namespace );\n\t\t\t\t\t\t$( dt.table().container() ).removeClass('dtk-focus-alt');\n\n\t\t\t\t\t\tif (that.s.returnSubmit) {\n\t\t\t\t\t\t\tthat.s.returnSubmit = false;\n\t\t\t\t\t\t\tthat._emitEvent( 'key-return-submit', [dt, editCell] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.one( 'cancelOpen'+namespace, function () {\n\t\t\t\t\t// `preOpen` can cancel the display of the form, so it\n\t\t\t\t\t// might be that the open event handler isn't needed\n\t\t\t\t\teditor.off( namespace );\n\t\t\t\t} )\n\t\t\t\t.inline( editCell.index() );\n\t\t};\n\n\t\t// Editor 1.7 listens for `return` on keyup, so if return is the trigger\n\t\t// key, we need to wait for `keyup` otherwise Editor would just submit\n\t\t// the content triggered by this keypress.\n\t\tif ( key === 13 ) {\n\t\t\thardEdit = true;\n\n\t\t\t$(document).one( 'keyup', function () { // immediately removed\n\t\t\t\teditInline();\n\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\teditInline();\n\t\t}\n\t},\n\n\n\t/**\n\t * Emit an event on the DataTable for listeners\n\t *\n\t * @param  {string} name Event name\n\t * @param  {array} args Event arguments\n\t * @private\n\t */\n\t_emitEvent: function ( name, args )\n\t{\n\t\tthis.s.dt.iterator( 'table', function ( ctx, i ) {\n\t\t\t$(ctx.nTable).triggerHandler( name, args );\n\t\t} );\n\t},\n\n\n\t/**\n\t * Focus on a particular cell, shifting the table's paging if required\n\t *\n\t * @param  {DataTables.Api|integer} row Can be given as an API instance that\n\t *   contains the cell to focus or as an integer. As the latter it is the\n\t *   visible row index (from the whole data set) - NOT the data index\n\t * @param  {integer} [column] Not required if a cell is given as the first\n\t *   parameter. Otherwise this is the column data index for the cell to\n\t *   focus on\n\t * @param {boolean} [shift=true] Should the viewport be moved to show cell\n\t * @private\n\t */\n\t_focus: function ( row, column, shift, originalEvent )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar pageInfo = dt.page.info();\n\t\tvar lastFocus = this.s.lastFocus;\n\n\t\tif ( ! originalEvent) {\n\t\t\toriginalEvent = null;\n\t\t}\n\n\t\tif ( ! this.s.enable ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof row !== 'number' ) {\n\t\t\t// Its an API instance - check that there is actually a row\n\t\t\tif ( ! row.any() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Convert the cell to a row and column\n\t\t\tvar index = row.index();\n\t\t\tcolumn = index.column;\n\t\t\trow = dt\n\t\t\t\t.rows( { filter: 'applied', order: 'applied' } )\n\t\t\t\t.indexes()\n\t\t\t\t.indexOf( index.row );\n\t\t\t\n\t\t\t// Don't focus rows that were filtered out.\n\t\t\tif ( row < 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For server-side processing normalise the row by adding the start\n\t\t\t// point, since `rows().indexes()` includes only rows that are\n\t\t\t// available at the client-side\n\t\t\tif ( pageInfo.serverSide ) {\n\t\t\t\trow += pageInfo.start;\n\t\t\t}\n\t\t}\n\n\t\t// Is the row on the current page? If not, we need to redraw to show the\n\t\t// page\n\t\tif ( pageInfo.length !== -1 && (row < pageInfo.start || row >= pageInfo.start+pageInfo.length) ) {\n\t\t\tthis.s.focusDraw = true;\n\t\t\tthis.s.waitingForDraw = true;\n\n\t\t\tdt\n\t\t\t\t.one( 'draw', function () {\n\t\t\t\t\tthat.s.focusDraw = false;\n\t\t\t\t\tthat.s.waitingForDraw = false;\n\t\t\t\t\tthat._focus( row, column, undefined, originalEvent );\n\t\t\t\t} )\n\t\t\t\t.page( Math.floor( row / pageInfo.length ) )\n\t\t\t\t.draw( false );\n\n\t\t\treturn;\n\t\t}\n\n\t\t// In the available columns?\n\t\tif ( $.inArray( column, this._columns() ) === -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// De-normalise the server-side processing row, so we select the row\n\t\t// in its displayed position\n\t\tif ( pageInfo.serverSide ) {\n\t\t\trow -= pageInfo.start;\n\t\t}\n\n\t\t// Get the cell from the current position - ignoring any cells which might\n\t\t// not have been rendered (therefore can't use `:eq()` selector).\n\t\tvar cells = dt.cells( null, column, {search: 'applied', order: 'applied'} ).flatten();\n\t\tvar cell = dt.cell( cells[ row ] );\n\n\t\tif ( lastFocus ) {\n\t\t\t// Don't trigger a refocus on the same cell\n\t\t\tif ( lastFocus.node === cell.node() ) {\n\t\t\t\tthis._emitEvent( 'key-refocus', [ this.s.dt, cell, originalEvent || null ] );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise blur the old focus\n\t\t\tthis._blur();\n\t\t}\n\n\t\t// Clear focus from other tables\n\t\tthis._removeOtherFocus();\n\n\t\tvar node = $( cell.node() );\n\t\tnode.addClass( this.c.className );\n\n\t\tthis._updateFixedColumns(column);\n\n\t\t// Shift viewpoint and page to make cell visible\n\t\tif ( shift === undefined || shift === true ) {\n\t\t\tthis._scroll( $(window), $(document.body), node, 'offset' );\n\n\t\t\tvar bodyParent = dt.table().body().parentNode;\n\t\t\tif ( bodyParent !== dt.table().header().parentNode ) {\n\t\t\t\tvar parent = $(bodyParent.parentNode);\n\n\t\t\t\tthis._scroll( parent, parent, node, 'position' );\n\t\t\t}\n\t\t}\n\n\t\t// Event and finish\n\t\tthis.s.lastFocus = {\n\t\t\tcell: cell,\n\t\t\tnode: cell.node(),\n\t\t\trelative: {\n\t\t\t\trow: dt.rows( { page: 'current' } ).indexes().indexOf( cell.index().row ),\n\t\t\t\tcolumn: cell.index().column\n\t\t\t}\n\t\t};\n\n\t\tthis._emitEvent( 'key-focus', [ this.s.dt, cell, originalEvent || null ] );\n\t\tdt.state.save();\n\t},\n\n\n\t/**\n\t * Handle key press\n\t *\n\t * @param  {object} e Event\n\t * @private\n\t */\n\t_key: function ( e )\n\t{\n\t\t// If we are waiting for a draw to happen from another key event, then\n\t\t// do nothing for this new key press.\n\t\tif ( this.s.waitingForDraw ) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tvar enable = this.s.enable;\n\t\tthis.s.returnSubmit = (enable === 'navigation-only' || enable === 'tab-only') && e.keyCode === 13\n\t\t\t? true\n\t\t\t: false;\n\n\t\tvar navEnable = enable === true || enable === 'navigation-only';\n\t\tif ( ! enable ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( (e.keyCode === 0 || e.ctrlKey || e.metaKey || e.altKey) && !(e.ctrlKey && e.altKey) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If not focused, then there is no key action to take\n\t\tvar lastFocus = this.s.lastFocus;\n\t\tif ( ! lastFocus ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// And the last focus still exists!\n\t\tif ( ! this.s.dt.cell(lastFocus.node).any() ) {\n\t\t\tthis.s.lastFocus = null;\n\t\t\treturn;\n\t\t}\n\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar scrolling = this.s.dt.settings()[0].oScroll.sY ? true : false;\n\n\t\t// If we are not listening for this key, do nothing\n\t\tif ( this.c.keys && $.inArray( e.keyCode, this.c.keys ) === -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch( e.keyCode ) {\n\t\t\tcase 9: // tab\n\t\t\t\t// `enable` can be tab-only\n\t\t\t\tthis._shift( e, e.shiftKey ? 'left' : 'right', true );\n\t\t\t\tbreak;\n\n\t\t\tcase 27: // esc\n\t\t\t\tif ( this.s.blurable && enable === true ) {\n\t\t\t\t\tthis._blur();\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 33: // page up (previous page)\n\t\t\tcase 34: // page down (next page)\n\t\t\t\tif ( navEnable && !scrolling ) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tdt\n\t\t\t\t\t\t.page( e.keyCode === 33 ? 'previous' : 'next' )\n\t\t\t\t\t\t.draw( false );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 35: // end (end of current page)\n\t\t\tcase 36: // home (start of current page)\n\t\t\t\tif ( navEnable ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tvar indexes = dt.cells( {page: 'current'} ).indexes();\n\t\t\t\t\tvar colIndexes = this._columns();\n\n\t\t\t\t\tthis._focus( dt.cell(\n\t\t\t\t\t\tindexes[ e.keyCode === 35 ? indexes.length-1 : colIndexes[0] ]\n\t\t\t\t\t), null, true, e );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 37: // left arrow\n\t\t\t\tif ( navEnable ) {\n\t\t\t\t\tthis._shift( e, 'left' );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 38: // up arrow\n\t\t\t\tif ( navEnable ) {\n\t\t\t\t\tthis._shift( e, 'up' );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 39: // right arrow\n\t\t\t\tif ( navEnable ) {\n\t\t\t\t\tthis._shift( e, 'right' );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 40: // down arrow\n\t\t\t\tif ( navEnable ) {\n\t\t\t\t\tthis._shift( e, 'down' );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 113: // F2 - Excel like hard edit\n\t\t\t\tif ( this.c.editor ) {\n\t\t\t\t\tthis._editor(null, e, true);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// else fallthrough\n\n\t\t\tdefault:\n\t\t\t\t// Everything else - pass through only when fully enabled\n\t\t\t\tif ( enable === true ) {\n\t\t\t\t\tthis._emitEvent( 'key', [ dt, e.keyCode, this.s.lastFocus.cell, e ] );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},\n\n\t/**\n\t * Remove focus from all tables other than this one\n\t */\n\t_removeOtherFocus: function ()\n\t{\n\t\tvar thisTable = this.s.dt.table().node();\n\n\t\t$.fn.dataTable.tables({api:true}).iterator('table', function (settings) {\n\t\t\tif (this.table().node() !== thisTable) {\n\t\t\t\tthis.cell.blur();\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Scroll a container to make a cell visible in it. This can be used for\n\t * both DataTables scrolling and native window scrolling.\n\t *\n\t * @param  {jQuery} container Scrolling container\n\t * @param  {jQuery} scroller  Item being scrolled\n\t * @param  {jQuery} cell      Cell in the scroller\n\t * @param  {string} posOff    `position` or `offset` - which to use for the\n\t *   calculation. `offset` for the document, otherwise `position`\n\t * @private\n\t */\n\t_scroll: function ( container, scroller, cell, posOff )\n\t{\n\t\tvar offset = cell[posOff]();\n\t\tvar height = cell.outerHeight();\n\t\tvar width = cell.outerWidth();\n\n\t\tvar scrollTop = scroller.scrollTop();\n\t\tvar scrollLeft = scroller.scrollLeft();\n\t\tvar containerHeight = container.height();\n\t\tvar containerWidth = container.width();\n\n\t\t// If Scroller is being used, the table can be `position: absolute` and that\n\t\t// needs to be taken account of in the offset. If no Scroller, this will be 0\n\t\tif ( posOff === 'position' ) {\n\t\t\toffset.top += parseInt( cell.closest('table').css('top'), 10 );\n\t\t}\n\n\t\t// Top correction\n\t\tif ( offset.top < scrollTop ) {\n\t\t\tscroller.scrollTop( offset.top );\n\t\t}\n\n\t\t// Left correction\n\t\tif ( offset.left < scrollLeft ) {\n\t\t\tscroller.scrollLeft( offset.left );\n\t\t}\n\n\t\t// Bottom correction\n\t\tif ( offset.top + height > scrollTop + containerHeight && height < containerHeight ) {\n\t\t\tscroller.scrollTop( offset.top + height - containerHeight );\n\t\t}\n\n\t\t// Right correction\n\t\tif ( offset.left + width > scrollLeft + containerWidth && width < containerWidth ) {\n\t\t\tscroller.scrollLeft( offset.left + width - containerWidth );\n\t\t}\n\t},\n\n\n\t/**\n\t * Calculate a single offset movement in the table - up, down, left and\n\t * right and then perform the focus if possible\n\t *\n\t * @param  {object}  e           Event object\n\t * @param  {string}  direction   Movement direction\n\t * @param  {boolean} keyBlurable `true` if the key press can result in the\n\t *   table being blurred. This is so arrow keys won't blur the table, but\n\t *   tab will.\n\t * @private\n\t */\n\t_shift: function ( e, direction, keyBlurable )\n\t{\n\t\tvar that      = this;\n\t\tvar dt        = this.s.dt;\n\t\tvar pageInfo  = dt.page.info();\n\t\tvar rows      = pageInfo.recordsDisplay;\n\t\tvar columns   = this._columns();\n\t\tvar last      = this.s.lastFocus;\n\t\tif ( ! last ) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tvar currentCell  = last.cell;\n\t\tif ( ! currentCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar currRow = dt\n\t\t\t.rows( { filter: 'applied', order: 'applied' } )\n\t\t\t.indexes()\n\t\t\t.indexOf( currentCell.index().row );\n\n\t\t// When server-side processing, `rows().indexes()` only gives the rows\n\t\t// that are available at the client-side, so we need to normalise the\n\t\t// row's current position by the display start point\n\t\tif ( pageInfo.serverSide ) {\n\t\t\tcurrRow += pageInfo.start;\n\t\t}\n\n\t\tvar currCol = dt\n\t\t\t.columns( columns )\n\t\t\t.indexes()\n\t\t\t.indexOf( currentCell.index().column );\n\n\t\tvar\n\t\t\trow = currRow,\n\t\t\tcolumn = columns[ currCol ]; // row is the display, column is an index\n\n\t\tif ( direction === 'right' ) {\n\t\t\tif ( currCol >= columns.length - 1 ) {\n\t\t\t\trow++;\n\t\t\t\tcolumn = columns[0];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolumn = columns[ currCol+1 ];\n\t\t\t}\n\t\t}\n\t\telse if ( direction === 'left' ) {\n\t\t\tif ( currCol === 0 ) {\n\t\t\t\trow--;\n\t\t\t\tcolumn = columns[ columns.length - 1 ];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolumn = columns[ currCol-1 ];\n\t\t\t}\n\t\t}\n\t\telse if ( direction === 'up' ) {\n\t\t\trow--;\n\t\t}\n\t\telse if ( direction === 'down' ) {\n\t\t\trow++;\n\t\t}\n\n\t\tif ( row >= 0 && row < rows && $.inArray( column, columns ) !== -1 ) {\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tthis._focus( row, column, true, e );\n\t\t}\n\t\telse if ( ! keyBlurable || ! this.c.blurable ) {\n\t\t\t// No new focus, but if the table isn't blurable, then don't loose\n\t\t\t// focus\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis._blur();\n\t\t}\n\t},\n\n\n\t/**\n\t * Create and insert a hidden input element that can receive focus on behalf\n\t * of the table\n\t *\n\t * @private\n\t */\n\t_tabInput: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar tabIndex = this.c.tabIndex !== null ?\n\t\t\tthis.c.tabIndex :\n\t\t\tdt.settings()[0].iTabIndex;\n\n\t\tif ( tabIndex == -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only create the input element once on first class\n\t\tif (! this.s.tabInput) {\n\t\t\tvar div = $('<div><input type=\"text\" tabindex=\"'+tabIndex+'\"/></div>')\n\t\t\t\t.css( {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\theight: 1,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\toverflow: 'hidden'\n\t\t\t\t} );\n\n\t\t\tdiv.children().on( 'focus', function (e) {\n\t\t\t\tvar cell = dt.cell(':eq(0)', that._columns(), {page: 'current'});\n\t\n\t\t\t\tif ( cell.any() ) {\n\t\t\t\t\tthat._focus( cell, null, true, e );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.s.tabInput = div;\n\t\t}\n\n\t\t// Insert the input element into the first cell in the table's body\n\t\tvar cell = this.s.dt.cell(':eq(0)', '0:visible', {page: 'current', order: 'current'}).node();\n\t\tif (cell) {\n\t\t\t$(cell).prepend(this.s.tabInput);\n\t\t}\n\t},\n\n\t/**\n\t * Update fixed columns if they are enabled and if the cell we are\n\t * focusing is inside a fixed column\n\t * @param  {integer} column Index of the column being changed\n\t * @private\n\t */\n\t_updateFixedColumns: function( column )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar settings = dt.settings()[0];\n\n\t\tif ( settings._oFixedColumns ) {\n\t\t\tvar leftCols = settings._oFixedColumns.s.iLeftColumns;\n\t\t\tvar rightCols = settings.aoColumns.length - settings._oFixedColumns.s.iRightColumns;\n\n\t\t\tif (column < leftCols || column >= rightCols) {\n\t\t\t\tdt.fixedColumns().update();\n\t\t\t}\n\t\t}\n\t}\n} );\n\n\n/**\n * KeyTable default settings for initialisation\n *\n * @namespace\n * @name KeyTable.defaults\n * @static\n */\nKeyTable.defaults = {\n\t/**\n\t * Can focus be removed from the table\n\t * @type {Boolean}\n\t */\n\tblurable: true,\n\n\t/**\n\t * Class to give to the focused cell\n\t * @type {String}\n\t */\n\tclassName: 'focus',\n\n\t/**\n\t * Enable or disable clipboard support\n\t * @type {Boolean}\n\t */\n\tclipboard: true,\n\n\t/**\n\t * Orthogonal data that should be copied to clipboard\n\t * @type {string}\n\t */\n\tclipboardOrthogonal: 'display',\n\n\t/**\n\t * Columns that can be focused. This is automatically merged with the\n\t * visible columns as only visible columns can gain focus.\n\t * @type {String}\n\t */\n\tcolumns: '', // all\n\n\t/**\n\t * Editor instance to automatically perform Excel like navigation\n\t * @type {Editor}\n\t */\n\teditor: null,\n\n\t/**\n\t * Trigger editing immediately on focus\n\t * @type {boolean}\n\t */\n\teditOnFocus: false,\n\n\t/**\n\t * Select a cell to automatically select on start up. `null` for no\n\t * automatic selection\n\t * @type {cell-selector}\n\t */\n\tfocus: null,\n\n\t/**\n\t * Array of keys to listen for\n\t * @type {null|array}\n\t */\n\tkeys: null,\n\n\t/**\n\t * Tab index for where the table should sit in the document's tab flow\n\t * @type {integer|null}\n\t */\n\ttabIndex: null\n};\n\n\n\nKeyTable.version = \"2.6.1\";\n\n\n$.fn.dataTable.KeyTable = KeyTable;\n$.fn.DataTable.KeyTable = KeyTable;\n\n\nDataTable.Api.register( 'cell.blur()', function () {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.keytable ) {\n\t\t\tctx.keytable.blur();\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'cell().focus()', function () {\n\treturn this.iterator( 'cell', function (ctx, row, column) {\n\t\tif ( ctx.keytable ) {\n\t\t\tctx.keytable.focus( row, column );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'keys.disable()', function () {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.keytable ) {\n\t\t\tctx.keytable.enable( false );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'keys.enable()', function ( opts ) {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.keytable ) {\n\t\t\tctx.keytable.enable( opts === undefined ? true : opts );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'keys.enabled()', function ( opts ) {\n\tvar ctx = this.context;\n\n\tif (ctx.length) {\n\t\treturn ctx[0].keytable\n\t\t\t? ctx[0].keytable.enabled()\n\t\t\t: false;\n\t}\n\n\treturn false;\n} );\n\nDataTable.Api.register( 'keys.move()', function ( dir ) {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.keytable ) {\n\t\t\tctx.keytable._shift( null, dir, false );\n\t\t}\n\t} );\n} );\n\n// Cell selector\nDataTable.ext.selector.cell.push( function ( settings, opts, cells ) {\n\tvar focused = opts.focused;\n\tvar kt = settings.keytable;\n\tvar out = [];\n\n\tif ( ! kt || focused === undefined ) {\n\t\treturn cells;\n\t}\n\n\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\tif ( (focused === true &&  kt.focused( cells[i] ) ) ||\n\t\t\t (focused === false && ! kt.focused( cells[i] ) )\n\t\t) {\n\t\t\tout.push( cells[i] );\n\t\t}\n\t}\n\n\treturn out;\n} );\n\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.dtk', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.keys;\n\tvar defaults = DataTable.defaults.keys;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, defaults, init );\n\n\t\tif ( init !== false ) {\n\t\t\tnew KeyTable( settings, opts  );\n\t\t}\n\t}\n} );\n\n\nreturn KeyTable;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-keytable/js/keyTable.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for KeyTable\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-keytable'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.KeyTable ) {\n\t\t\t\trequire('datatables.net-keytable')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-responsive/css/responsive.bootstrap4.css",
    "content": "table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th.child,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {\n  cursor: default !important;\n}\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {\n  display: none !important;\n}\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {\n  position: relative;\n  padding-left: 30px;\n  cursor: pointer;\n}\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {\n  top: 50%;\n  left: 5px;\n  height: 1em;\n  width: 1em;\n  margin-top: -9px;\n  display: block;\n  position: absolute;\n  color: white;\n  border: 0.15em solid white;\n  border-radius: 1em;\n  box-shadow: 0 0 0.2em #444;\n  box-sizing: content-box;\n  text-align: center;\n  text-indent: 0 !important;\n  font-family: \"Courier New\", Courier, monospace;\n  line-height: 1em;\n  content: \"+\";\n  background-color: #0275d8;\n}\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {\n  content: \"-\";\n  background-color: #d33333;\n}\ntable.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,\ntable.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {\n  padding-left: 27px;\n}\ntable.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,\ntable.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {\n  left: 4px;\n  height: 14px;\n  width: 14px;\n  border-radius: 14px;\n  line-height: 14px;\n  text-indent: 3px;\n}\ntable.dataTable.dtr-column > tbody > tr > td.dtr-control,\ntable.dataTable.dtr-column > tbody > tr > th.dtr-control,\ntable.dataTable.dtr-column > tbody > tr > td.control,\ntable.dataTable.dtr-column > tbody > tr > th.control {\n  position: relative;\n  cursor: pointer;\n}\ntable.dataTable.dtr-column > tbody > tr > td.dtr-control:before,\ntable.dataTable.dtr-column > tbody > tr > th.dtr-control:before,\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before {\n  top: 50%;\n  left: 50%;\n  height: 0.8em;\n  width: 0.8em;\n  margin-top: -0.5em;\n  margin-left: -0.5em;\n  display: block;\n  position: absolute;\n  color: white;\n  border: 0.15em solid white;\n  border-radius: 1em;\n  box-shadow: 0 0 0.2em #444;\n  box-sizing: content-box;\n  text-align: center;\n  text-indent: 0 !important;\n  font-family: \"Courier New\", Courier, monospace;\n  line-height: 1em;\n  content: \"+\";\n  background-color: #0275d8;\n}\ntable.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,\ntable.dataTable.dtr-column > tbody > tr.parent td.control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.control:before {\n  content: \"-\";\n  background-color: #d33333;\n}\ntable.dataTable > tbody > tr.child {\n  padding: 0.5em 1em;\n}\ntable.dataTable > tbody > tr.child:hover {\n  background: transparent !important;\n}\ntable.dataTable > tbody > tr.child ul.dtr-details {\n  display: inline-block;\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\ntable.dataTable > tbody > tr.child ul.dtr-details > li {\n  border-bottom: 1px solid #efefef;\n  padding: 0.5em 0;\n}\ntable.dataTable > tbody > tr.child ul.dtr-details > li:first-child {\n  padding-top: 0;\n}\ntable.dataTable > tbody > tr.child ul.dtr-details > li:last-child {\n  border-bottom: none;\n}\ntable.dataTable > tbody > tr.child span.dtr-title {\n  display: inline-block;\n  min-width: 75px;\n  font-weight: bold;\n}\ndiv.dtr-modal {\n  position: fixed;\n  box-sizing: border-box;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  z-index: 100;\n  padding: 10em 1em;\n}\ndiv.dtr-modal div.dtr-modal-display {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  width: 50%;\n  height: 50%;\n  overflow: auto;\n  margin: auto;\n  z-index: 102;\n  overflow: auto;\n  background-color: #f5f5f7;\n  border: 1px solid black;\n  border-radius: 0.5em;\n  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);\n}\ndiv.dtr-modal div.dtr-modal-content {\n  position: relative;\n  padding: 1em;\n}\ndiv.dtr-modal div.dtr-modal-close {\n  position: absolute;\n  top: 6px;\n  right: 6px;\n  width: 22px;\n  height: 22px;\n  border: 1px solid #eaeaea;\n  background-color: #f9f9f9;\n  text-align: center;\n  border-radius: 3px;\n  cursor: pointer;\n  z-index: 12;\n}\ndiv.dtr-modal div.dtr-modal-close:hover {\n  background-color: #eaeaea;\n}\ndiv.dtr-modal div.dtr-modal-background {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 101;\n  background: rgba(0, 0, 0, 0.6);\n}\n\n@media screen and (max-width: 767px) {\n  div.dtr-modal div.dtr-modal-display {\n    width: 95%;\n  }\n}\ndiv.dtr-bs-modal table.table tr:first-child td {\n  border-top: none;\n}\n\ntable.dataTable.dtr-inline.collapsed.table-sm > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed.table-sm > tbody > tr > th:first-child:before {\n  top: 5px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-responsive/js/dataTables.responsive.js",
    "content": "/*! Responsive 2.2.7\n * 2014-2021 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     Responsive\n * @description Responsive tables plug-in for DataTables\n * @version     2.2.7\n * @file        dataTables.responsive.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2014-2021 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/**\n * Responsive is a plug-in for the DataTables library that makes use of\n * DataTables' ability to change the visibility of columns, changing the\n * visibility of columns so the displayed columns fit into the table container.\n * The end result is that complex tables will be dynamically adjusted to fit\n * into the viewport, be it on a desktop, tablet or mobile browser.\n *\n * Responsive for DataTables has two modes of operation, which can used\n * individually or combined:\n *\n * * Class name based control - columns assigned class names that match the\n *   breakpoint logic can be shown / hidden as required for each breakpoint.\n * * Automatic control - columns are automatically hidden when there is no\n *   room left to display them. Columns removed from the right.\n *\n * In additional to column visibility control, Responsive also has built into\n * options to use DataTables' child row display to show / hide the information\n * from the table that has been hidden. There are also two modes of operation\n * for this child row display:\n *\n * * Inline - when the control element that the user can use to show / hide\n *   child rows is displayed inside the first column of the table.\n * * Column - where a whole column is dedicated to be the show / hide control.\n *\n * Initialisation of Responsive is performed by:\n *\n * * Adding the class `responsive` or `dt-responsive` to the table. In this case\n *   Responsive will automatically be initialised with the default configuration\n *   options when the DataTable is created.\n * * Using the `responsive` option in the DataTables configuration options. This\n *   can also be used to specify the configuration options, or simply set to\n *   `true` to use the defaults.\n *\n *  @class\n *  @param {object} settings DataTables settings object for the host table\n *  @param {object} [opts] Configuration options\n *  @requires jQuery 1.7+\n *  @requires DataTables 1.10.3+\n *\n *  @example\n *      $('#example').DataTable( {\n *        responsive: true\n *      } );\n *    } );\n */\nvar Responsive = function ( settings, opts ) {\n\t// Sanity check that we are using DataTables 1.10 or newer\n\tif ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.10' ) ) {\n\t\tthrow 'DataTables Responsive requires DataTables 1.10.10 or newer';\n\t}\n\n\tthis.s = {\n\t\tdt: new DataTable.Api( settings ),\n\t\tcolumns: [],\n\t\tcurrent: []\n\t};\n\n\t// Check if responsive has already been initialised on this table\n\tif ( this.s.dt.settings()[0].responsive ) {\n\t\treturn;\n\t}\n\n\t// details is an object, but for simplicity the user can give it as a string\n\t// or a boolean\n\tif ( opts && typeof opts.details === 'string' ) {\n\t\topts.details = { type: opts.details };\n\t}\n\telse if ( opts && opts.details === false ) {\n\t\topts.details = { type: false };\n\t}\n\telse if ( opts && opts.details === true ) {\n\t\topts.details = { type: 'inline' };\n\t}\n\n\tthis.c = $.extend( true, {}, Responsive.defaults, DataTable.defaults.responsive, opts );\n\tsettings.responsive = this;\n\tthis._constructor();\n};\n\n$.extend( Responsive.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Initialise the Responsive instance\n\t *\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar dtPrivateSettings = dt.settings()[0];\n\t\tvar oldWindowWidth = $(window).innerWidth();\n\n\t\tdt.settings()[0]._responsive = this;\n\n\t\t// Use DataTables' throttle function to avoid processor thrashing on\n\t\t// resize\n\t\t$(window).on( 'resize.dtr orientationchange.dtr', DataTable.util.throttle( function () {\n\t\t\t// iOS has a bug whereby resize can fire when only scrolling\n\t\t\t// See: http://stackoverflow.com/questions/8898412\n\t\t\tvar width = $(window).innerWidth();\n\n\t\t\tif ( width !== oldWindowWidth ) {\n\t\t\t\tthat._resize();\n\t\t\t\toldWindowWidth = width;\n\t\t\t}\n\t\t} ) );\n\n\t\t// DataTables doesn't currently trigger an event when a row is added, so\n\t\t// we need to hook into its private API to enforce the hidden rows when\n\t\t// new data is added\n\t\tdtPrivateSettings.oApi._fnCallbackReg( dtPrivateSettings, 'aoRowCreatedCallback', function (tr, data, idx) {\n\t\t\tif ( $.inArray( false, that.s.current ) !== -1 ) {\n\t\t\t\t$('>td, >th', tr).each( function ( i ) {\n\t\t\t\t\tvar idx = dt.column.index( 'toData', i );\n\n\t\t\t\t\tif ( that.s.current[idx] === false ) {\n\t\t\t\t\t\t$(this).css('display', 'none');\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Destroy event handler\n\t\tdt.on( 'destroy.dtr', function () {\n\t\t\tdt.off( '.dtr' );\n\t\t\t$( dt.table().body() ).off( '.dtr' );\n\t\t\t$(window).off( 'resize.dtr orientationchange.dtr' );\n\t\t\tdt.cells('.dtr-control').nodes().to$().removeClass('dtr-control');\n\n\t\t\t// Restore the columns that we've hidden\n\t\t\t$.each( that.s.current, function ( i, val ) {\n\t\t\t\tif ( val === false ) {\n\t\t\t\t\tthat._setColumnVis( i, true );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\t// Reorder the breakpoints array here in case they have been added out\n\t\t// of order\n\t\tthis.c.breakpoints.sort( function (a, b) {\n\t\t\treturn a.width < b.width ? 1 :\n\t\t\t\ta.width > b.width ? -1 : 0;\n\t\t} );\n\n\t\tthis._classLogic();\n\t\tthis._resizeAuto();\n\n\t\t// Details handler\n\t\tvar details = this.c.details;\n\n\t\tif ( details.type !== false ) {\n\t\t\tthat._detailsInit();\n\n\t\t\t// DataTables will trigger this event on every column it shows and\n\t\t\t// hides individually\n\t\t\tdt.on( 'column-visibility.dtr', function () {\n\t\t\t\t// Use a small debounce to allow multiple columns to be set together\n\t\t\t\tif ( that._timer ) {\n\t\t\t\t\tclearTimeout( that._timer );\n\t\t\t\t}\n\n\t\t\t\tthat._timer = setTimeout( function () {\n\t\t\t\t\tthat._timer = null;\n\n\t\t\t\t\tthat._classLogic();\n\t\t\t\t\tthat._resizeAuto();\n\t\t\t\t\tthat._resize(true);\n\n\t\t\t\t\tthat._redrawChildren();\n\t\t\t\t}, 100 );\n\t\t\t} );\n\n\t\t\t// Redraw the details box on each draw which will happen if the data\n\t\t\t// has changed. This is used until DataTables implements a native\n\t\t\t// `updated` event for rows\n\t\t\tdt.on( 'draw.dtr', function () {\n\t\t\t\tthat._redrawChildren();\n\t\t\t} );\n\n\t\t\t$(dt.table().node()).addClass( 'dtr-'+details.type );\n\t\t}\n\n\t\tdt.on( 'column-reorder.dtr', function (e, settings, details) {\n\t\t\tthat._classLogic();\n\t\t\tthat._resizeAuto();\n\t\t\tthat._resize(true);\n\t\t} );\n\n\t\t// Change in column sizes means we need to calc\n\t\tdt.on( 'column-sizing.dtr', function () {\n\t\t\tthat._resizeAuto();\n\t\t\tthat._resize();\n\t\t});\n\n\t\t// On Ajax reload we want to reopen any child rows which are displayed\n\t\t// by responsive\n\t\tdt.on( 'preXhr.dtr', function () {\n\t\t\tvar rowIds = [];\n\t\t\tdt.rows().every( function () {\n\t\t\t\tif ( this.child.isShown() ) {\n\t\t\t\t\trowIds.push( this.id(true) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tdt.one( 'draw.dtr', function () {\n\t\t\t\tthat._resizeAuto();\n\t\t\t\tthat._resize();\n\n\t\t\t\tdt.rows( rowIds ).every( function () {\n\t\t\t\t\tthat._detailsDisplay( this, false );\n\t\t\t\t} );\n\t\t\t} );\n\t\t});\n\n\t\tdt\n\t\t\t.on( 'draw.dtr', function () {\n\t\t\t\tthat._controlClass();\n\t\t\t})\n\t\t\t.on( 'init.dtr', function (e, settings, details) {\n\t\t\t\tif ( e.namespace !== 'dt' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthat._resizeAuto();\n\t\t\t\tthat._resize();\n\n\t\t\t\t// If columns were hidden, then DataTables needs to adjust the\n\t\t\t\t// column sizing\n\t\t\t\tif ( $.inArray( false, that.s.current ) ) {\n\t\t\t\t\tdt.columns.adjust();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// First pass - draw the table for the current viewport size\n\t\tthis._resize();\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Calculate the visibility for the columns in a table for a given\n\t * breakpoint. The result is pre-determined based on the class logic if\n\t * class names are used to control all columns, but the width of the table\n\t * is also used if there are columns which are to be automatically shown\n\t * and hidden.\n\t *\n\t * @param  {string} breakpoint Breakpoint name to use for the calculation\n\t * @return {array} Array of boolean values initiating the visibility of each\n\t *   column.\n\t *  @private\n\t */\n\t_columnsVisiblity: function ( breakpoint )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar columns = this.s.columns;\n\t\tvar i, ien;\n\n\t\t// Create an array that defines the column ordering based first on the\n\t\t// column's priority, and secondly the column index. This allows the\n\t\t// columns to be removed from the right if the priority matches\n\t\tvar order = columns\n\t\t\t.map( function ( col, idx ) {\n\t\t\t\treturn {\n\t\t\t\t\tcolumnIdx: idx,\n\t\t\t\t\tpriority: col.priority\n\t\t\t\t};\n\t\t\t} )\n\t\t\t.sort( function ( a, b ) {\n\t\t\t\tif ( a.priority !== b.priority ) {\n\t\t\t\t\treturn a.priority - b.priority;\n\t\t\t\t}\n\t\t\t\treturn a.columnIdx - b.columnIdx;\n\t\t\t} );\n\n\t\t// Class logic - determine which columns are in this breakpoint based\n\t\t// on the classes. If no class control (i.e. `auto`) then `-` is used\n\t\t// to indicate this to the rest of the function\n\t\tvar display = $.map( columns, function ( col, i ) {\n\t\t\tif ( dt.column(i).visible() === false ) {\n\t\t\t\treturn 'not-visible';\n\t\t\t}\n\t\t\treturn col.auto && col.minWidth === null ?\n\t\t\t\tfalse :\n\t\t\t\tcol.auto === true ?\n\t\t\t\t\t'-' :\n\t\t\t\t\t$.inArray( breakpoint, col.includeIn ) !== -1;\n\t\t} );\n\n\t\t// Auto column control - first pass: how much width is taken by the\n\t\t// ones that must be included from the non-auto columns\n\t\tvar requiredWidth = 0;\n\t\tfor ( i=0, ien=display.length ; i<ien ; i++ ) {\n\t\t\tif ( display[i] === true ) {\n\t\t\t\trequiredWidth += columns[i].minWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Second pass, use up any remaining width for other columns. For\n\t\t// scrolling tables we need to subtract the width of the scrollbar. It\n\t\t// may not be requires which makes this sub-optimal, but it would\n\t\t// require another full redraw to make complete use of those extra few\n\t\t// pixels\n\t\tvar scrolling = dt.settings()[0].oScroll;\n\t\tvar bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0;\n\t\tvar widthAvailable = dt.table().container().offsetWidth - bar;\n\t\tvar usedWidth = widthAvailable - requiredWidth;\n\n\t\t// Control column needs to always be included. This makes it sub-\n\t\t// optimal in terms of using the available with, but to stop layout\n\t\t// thrashing or overflow. Also we need to account for the control column\n\t\t// width first so we know how much width is available for the other\n\t\t// columns, since the control column might not be the first one shown\n\t\tfor ( i=0, ien=display.length ; i<ien ; i++ ) {\n\t\t\tif ( columns[i].control ) {\n\t\t\t\tusedWidth -= columns[i].minWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Allow columns to be shown (counting by priority and then right to\n\t\t// left) until we run out of room\n\t\tvar empty = false;\n\t\tfor ( i=0, ien=order.length ; i<ien ; i++ ) {\n\t\t\tvar colIdx = order[i].columnIdx;\n\n\t\t\tif ( display[colIdx] === '-' && ! columns[colIdx].control && columns[colIdx].minWidth ) {\n\t\t\t\t// Once we've found a column that won't fit we don't let any\n\t\t\t\t// others display either, or columns might disappear in the\n\t\t\t\t// middle of the table\n\t\t\t\tif ( empty || usedWidth - columns[colIdx].minWidth < 0 ) {\n\t\t\t\t\tempty = true;\n\t\t\t\t\tdisplay[colIdx] = false;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdisplay[colIdx] = true;\n\t\t\t\t}\n\n\t\t\t\tusedWidth -= columns[colIdx].minWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Determine if the 'control' column should be shown (if there is one).\n\t\t// This is the case when there is a hidden column (that is not the\n\t\t// control column). The two loops look inefficient here, but they are\n\t\t// trivial and will fly through. We need to know the outcome from the\n\t\t// first , before the action in the second can be taken\n\t\tvar showControl = false;\n\n\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\tif ( ! columns[i].control && ! columns[i].never && display[i] === false ) {\n\t\t\t\tshowControl = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\tif ( columns[i].control ) {\n\t\t\t\tdisplay[i] = showControl;\n\t\t\t}\n\n\t\t\t// Replace not visible string with false from the control column detection above\n\t\t\tif ( display[i] === 'not-visible' ) {\n\t\t\t\tdisplay[i] = false;\n\t\t\t}\n\t\t}\n\n\t\t// Finally we need to make sure that there is at least one column that\n\t\t// is visible\n\t\tif ( $.inArray( true, display ) === -1 ) {\n\t\t\tdisplay[0] = true;\n\t\t}\n\n\t\treturn display;\n\t},\n\n\n\t/**\n\t * Create the internal `columns` array with information about the columns\n\t * for the table. This includes determining which breakpoints the column\n\t * will appear in, based upon class names in the column, which makes up the\n\t * vast majority of this method.\n\t *\n\t * @private\n\t */\n\t_classLogic: function ()\n\t{\n\t\tvar that = this;\n\t\tvar calc = {};\n\t\tvar breakpoints = this.c.breakpoints;\n\t\tvar dt = this.s.dt;\n\t\tvar columns = dt.columns().eq(0).map( function (i) {\n\t\t\tvar column = this.column(i);\n\t\t\tvar className = column.header().className;\n\t\t\tvar priority = dt.settings()[0].aoColumns[i].responsivePriority;\n\t\t\tvar dataPriority = column.header().getAttribute('data-priority');\n\n\t\t\tif ( priority === undefined ) {\n\t\t\t\tpriority = dataPriority === undefined || dataPriority === null?\n\t\t\t\t\t10000 :\n\t\t\t\t\tdataPriority * 1;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tclassName: className,\n\t\t\t\tincludeIn: [],\n\t\t\t\tauto:      false,\n\t\t\t\tcontrol:   false,\n\t\t\t\tnever:     className.match(/\\bnever\\b/) ? true : false,\n\t\t\t\tpriority:  priority\n\t\t\t};\n\t\t} );\n\n\t\t// Simply add a breakpoint to `includeIn` array, ensuring that there are\n\t\t// no duplicates\n\t\tvar add = function ( colIdx, name ) {\n\t\t\tvar includeIn = columns[ colIdx ].includeIn;\n\n\t\t\tif ( $.inArray( name, includeIn ) === -1 ) {\n\t\t\t\tincludeIn.push( name );\n\t\t\t}\n\t\t};\n\n\t\tvar column = function ( colIdx, name, operator, matched ) {\n\t\t\tvar size, i, ien;\n\n\t\t\tif ( ! operator ) {\n\t\t\t\tcolumns[ colIdx ].includeIn.push( name );\n\t\t\t}\n\t\t\telse if ( operator === 'max-' ) {\n\t\t\t\t// Add this breakpoint and all smaller\n\t\t\t\tsize = that._find( name ).width;\n\n\t\t\t\tfor ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( breakpoints[i].width <= size ) {\n\t\t\t\t\t\tadd( colIdx, breakpoints[i].name );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( operator === 'min-' ) {\n\t\t\t\t// Add this breakpoint and all larger\n\t\t\t\tsize = that._find( name ).width;\n\n\t\t\t\tfor ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( breakpoints[i].width >= size ) {\n\t\t\t\t\t\tadd( colIdx, breakpoints[i].name );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( operator === 'not-' ) {\n\t\t\t\t// Add all but this breakpoint\n\t\t\t\tfor ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {\n\t\t\t\t\tif ( breakpoints[i].name.indexOf( matched ) === -1 ) {\n\t\t\t\t\t\tadd( colIdx, breakpoints[i].name );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Loop over each column and determine if it has a responsive control\n\t\t// class\n\t\tcolumns.each( function ( col, i ) {\n\t\t\tvar classNames = col.className.split(' ');\n\t\t\tvar hasClass = false;\n\n\t\t\t// Split the class name up so multiple rules can be applied if needed\n\t\t\tfor ( var k=0, ken=classNames.length ; k<ken ; k++ ) {\n\t\t\t\tvar className = classNames[k].trim();\n\n\t\t\t\tif ( className === 'all' ) {\n\t\t\t\t\t// Include in all\n\t\t\t\t\thasClass = true;\n\t\t\t\t\tcol.includeIn = $.map( breakpoints, function (a) {\n\t\t\t\t\t\treturn a.name;\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\telse if ( className === 'none' || col.never ) {\n\t\t\t\t\t// Include in none (default) and no auto\n\t\t\t\t\thasClass = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\telse if ( className === 'control' || className === 'dtr-control' ) {\n\t\t\t\t\t// Special column that is only visible, when one of the other\n\t\t\t\t\t// columns is hidden. This is used for the details control\n\t\t\t\t\thasClass = true;\n\t\t\t\t\tcol.control = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t$.each( breakpoints, function ( j, breakpoint ) {\n\t\t\t\t\t// Does this column have a class that matches this breakpoint?\n\t\t\t\t\tvar brokenPoint = breakpoint.name.split('-');\n\t\t\t\t\tvar re = new RegExp( '(min\\\\-|max\\\\-|not\\\\-)?('+brokenPoint[0]+')(\\\\-[_a-zA-Z0-9])?' );\n\t\t\t\t\tvar match = className.match( re );\n\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\thasClass = true;\n\n\t\t\t\t\t\tif ( match[2] === brokenPoint[0] && match[3] === '-'+brokenPoint[1] ) {\n\t\t\t\t\t\t\t// Class name matches breakpoint name fully\n\t\t\t\t\t\t\tcolumn( i, breakpoint.name, match[1], match[2]+match[3] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ( match[2] === brokenPoint[0] && ! match[3] ) {\n\t\t\t\t\t\t\t// Class name matched primary breakpoint name with no qualifier\n\t\t\t\t\t\t\tcolumn( i, breakpoint.name, match[1], match[2] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// If there was no control class, then automatic sizing is used\n\t\t\tif ( ! hasClass ) {\n\t\t\t\tcol.auto = true;\n\t\t\t}\n\t\t} );\n\n\t\tthis.s.columns = columns;\n\t},\n\n\t/**\n\t * Update the cells to show the correct control class / button\n\t * @private\n\t */\n\t_controlClass: function ()\n\t{\n\t\tif ( this.c.details.type === 'inline' ) {\n\t\t\tvar dt = this.s.dt;\n\t\t\tvar columnsVis = this.s.current;\n\t\t\tvar firstVisible = $.inArray(true, columnsVis);\n\n\t\t\t// Remove from any cells which shouldn't have it\n\t\t\tdt.cells(\n\t\t\t\tnull,\n\t\t\t\tfunction(idx) {\n\t\t\t\t\treturn idx !== firstVisible;\n\t\t\t\t},\n\t\t\t\t{page: 'current'}\n\t\t\t)\n\t\t\t\t.nodes()\n\t\t\t\t.to$()\n\t\t\t\t.filter('.dtr-control')\n\t\t\t\t.removeClass('dtr-control');\n\n\t\t\tdt.cells(null, firstVisible, {page: 'current'})\n\t\t\t\t.nodes()\n\t\t\t\t.to$()\n\t\t\t\t.addClass('dtr-control');\n\t\t}\n\t},\n\n\t/**\n\t * Show the details for the child row\n\t *\n\t * @param  {DataTables.Api} row    API instance for the row\n\t * @param  {boolean}        update Update flag\n\t * @private\n\t */\n\t_detailsDisplay: function ( row, update )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar details = this.c.details;\n\n\t\tif ( details && details.type !== false ) {\n\t\t\tvar res = details.display( row, update, function () {\n\t\t\t\treturn details.renderer(\n\t\t\t\t\tdt, row[0], that._detailsObj(row[0])\n\t\t\t\t);\n\t\t\t} );\n\n\t\t\tif ( res === true || res === false ) {\n\t\t\t\t$(dt.table().node()).triggerHandler( 'responsive-display.dt', [dt, row, res, update] );\n\t\t\t}\n\t\t}\n\t},\n\n\n\t/**\n\t * Initialisation for the details handler\n\t *\n\t * @private\n\t */\n\t_detailsInit: function ()\n\t{\n\t\tvar that    = this;\n\t\tvar dt      = this.s.dt;\n\t\tvar details = this.c.details;\n\n\t\t// The inline type always uses the first child as the target\n\t\tif ( details.type === 'inline' ) {\n\t\t\tdetails.target = 'td.dtr-control, th.dtr-control';\n\t\t}\n\n\t\t// Keyboard accessibility\n\t\tdt.on( 'draw.dtr', function () {\n\t\t\tthat._tabIndexes();\n\t\t} );\n\t\tthat._tabIndexes(); // Initial draw has already happened\n\n\t\t$( dt.table().body() ).on( 'keyup.dtr', 'td, th', function (e) {\n\t\t\tif ( e.keyCode === 13 && $(this).data('dtr-keyboard') ) {\n\t\t\t\t$(this).click();\n\t\t\t}\n\t\t} );\n\n\t\t// type.target can be a string jQuery selector or a column index\n\t\tvar target   = details.target;\n\t\tvar selector = typeof target === 'string' ? target : 'td, th';\n\n\t\tif ( target !== undefined || target !== null ) {\n\t\t\t// Click handler to show / hide the details rows when they are available\n\t\t\t$( dt.table().body() )\n\t\t\t\t.on( 'click.dtr mousedown.dtr mouseup.dtr', selector, function (e) {\n\t\t\t\t\t// If the table is not collapsed (i.e. there is no hidden columns)\n\t\t\t\t\t// then take no action\n\t\t\t\t\tif ( ! $(dt.table().node()).hasClass('collapsed' ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check that the row is actually a DataTable's controlled node\n\t\t\t\t\tif ( $.inArray( $(this).closest('tr').get(0), dt.rows().nodes().toArray() ) === -1 ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// For column index, we determine if we should act or not in the\n\t\t\t\t\t// handler - otherwise it is already okay\n\t\t\t\t\tif ( typeof target === 'number' ) {\n\t\t\t\t\t\tvar targetIdx = target < 0 ?\n\t\t\t\t\t\t\tdt.columns().eq(0).length + target :\n\t\t\t\t\t\t\ttarget;\n\n\t\t\t\t\t\tif ( dt.cell( this ).index().column !== targetIdx ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// $().closest() includes itself in its check\n\t\t\t\t\tvar row = dt.row( $(this).closest('tr') );\n\n\t\t\t\t\t// Check event type to do an action\n\t\t\t\t\tif ( e.type === 'click' ) {\n\t\t\t\t\t\t// The renderer is given as a function so the caller can execute it\n\t\t\t\t\t\t// only when they need (i.e. if hiding there is no point is running\n\t\t\t\t\t\t// the renderer)\n\t\t\t\t\t\tthat._detailsDisplay( row, false );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( e.type === 'mousedown' ) {\n\t\t\t\t\t\t// For mouse users, prevent the focus ring from showing\n\t\t\t\t\t\t$(this).css('outline', 'none');\n\t\t\t\t\t}\n\t\t\t\t\telse if ( e.type === 'mouseup' ) {\n\t\t\t\t\t\t// And then re-allow at the end of the click\n\t\t\t\t\t\t$(this).trigger('blur').css('outline', '');\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}\n\t},\n\n\n\t/**\n\t * Get the details to pass to a renderer for a row\n\t * @param  {int} rowIdx Row index\n\t * @private\n\t */\n\t_detailsObj: function ( rowIdx )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\n\t\treturn $.map( this.s.columns, function( col, i ) {\n\t\t\t// Never and control columns should not be passed to the renderer\n\t\t\tif ( col.never || col.control ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar dtCol = dt.settings()[0].aoColumns[ i ];\n\n\t\t\treturn {\n\t\t\t\tclassName:   dtCol.sClass,\n\t\t\t\tcolumnIndex: i,\n\t\t\t\tdata:        dt.cell( rowIdx, i ).render( that.c.orthogonal ),\n\t\t\t\thidden:      dt.column( i ).visible() && !that.s.current[ i ],\n\t\t\t\trowIndex:    rowIdx,\n\t\t\t\ttitle:       dtCol.sTitle !== null ?\n\t\t\t\t\tdtCol.sTitle :\n\t\t\t\t\t$(dt.column(i).header()).text()\n\t\t\t};\n\t\t} );\n\t},\n\n\n\t/**\n\t * Find a breakpoint object from a name\n\t *\n\t * @param  {string} name Breakpoint name to find\n\t * @return {object}      Breakpoint description object\n\t * @private\n\t */\n\t_find: function ( name )\n\t{\n\t\tvar breakpoints = this.c.breakpoints;\n\n\t\tfor ( var i=0, ien=breakpoints.length ; i<ien ; i++ ) {\n\t\t\tif ( breakpoints[i].name === name ) {\n\t\t\t\treturn breakpoints[i];\n\t\t\t}\n\t\t}\n\t},\n\n\n\t/**\n\t * Re-create the contents of the child rows as the display has changed in\n\t * some way.\n\t *\n\t * @private\n\t */\n\t_redrawChildren: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\n\t\tdt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) {\n\t\t\tvar row = dt.row( idx );\n\n\t\t\tthat._detailsDisplay( dt.row( idx ), true );\n\t\t} );\n\t},\n\n\n\t/**\n\t * Alter the table display for a resized viewport. This involves first\n\t * determining what breakpoint the window currently is in, getting the\n\t * column visibilities to apply and then setting them.\n\t *\n\t * @param  {boolean} forceRedraw Force a redraw\n\t * @private\n\t */\n\t_resize: function (forceRedraw)\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar width = $(window).innerWidth();\n\t\tvar breakpoints = this.c.breakpoints;\n\t\tvar breakpoint = breakpoints[0].name;\n\t\tvar columns = this.s.columns;\n\t\tvar i, ien;\n\t\tvar oldVis = this.s.current.slice();\n\n\t\t// Determine what breakpoint we are currently at\n\t\tfor ( i=breakpoints.length-1 ; i>=0 ; i-- ) {\n\t\t\tif ( width <= breakpoints[i].width ) {\n\t\t\t\tbreakpoint = breakpoints[i].name;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Show the columns for that break point\n\t\tvar columnsVis = this._columnsVisiblity( breakpoint );\n\t\tthis.s.current = columnsVis;\n\n\t\t// Set the class before the column visibility is changed so event\n\t\t// listeners know what the state is. Need to determine if there are\n\t\t// any columns that are not visible but can be shown\n\t\tvar collapsedClass = false;\n\t\n\t\tfor ( i=0, ien=columns.length ; i<ien ; i++ ) {\n\t\t\tif ( columnsVis[i] === false && ! columns[i].never && ! columns[i].control && ! dt.column(i).visible() === false ) {\n\t\t\t\tcollapsedClass = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t$( dt.table().node() ).toggleClass( 'collapsed', collapsedClass );\n\n\t\tvar changed = false;\n\t\tvar visible = 0;\n\n\t\tdt.columns().eq(0).each( function ( colIdx, i ) {\n\t\t\tif ( columnsVis[i] === true ) {\n\t\t\t\tvisible++;\n\t\t\t}\n\n\t\t\tif ( forceRedraw || columnsVis[i] !== oldVis[i] ) {\n\t\t\t\tchanged = true;\n\t\t\t\tthat._setColumnVis( colIdx, columnsVis[i] );\n\t\t\t}\n\t\t} );\n\n\t\tif ( changed ) {\n\t\t\tthis._redrawChildren();\n\n\t\t\t// Inform listeners of the change\n\t\t\t$(dt.table().node()).trigger( 'responsive-resize.dt', [dt, this.s.current] );\n\n\t\t\t// If no records, update the \"No records\" display element\n\t\t\tif ( dt.page.info().recordsDisplay === 0 ) {\n\t\t\t\t$('td', dt.table().body()).eq(0).attr('colspan', visible);\n\t\t\t}\n\t\t}\n\n\t\tthat._controlClass();\n\t},\n\n\n\t/**\n\t * Determine the width of each column in the table so the auto column hiding\n\t * has that information to work with. This method is never going to be 100%\n\t * perfect since column widths can change slightly per page, but without\n\t * seriously compromising performance this is quite effective.\n\t *\n\t * @private\n\t */\n\t_resizeAuto: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar columns = this.s.columns;\n\n\t\t// Are we allowed to do auto sizing?\n\t\tif ( ! this.c.auto ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Are there any columns that actually need auto-sizing, or do they all\n\t\t// have classes defined\n\t\tif ( $.inArray( true, $.map( columns, function (c) { return c.auto; } ) ) === -1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Need to restore all children. They will be reinstated by a re-render\n\t\tif ( ! $.isEmptyObject( _childNodeStore ) ) {\n\t\t\t$.each( _childNodeStore, function ( key ) {\n\t\t\t\tvar idx = key.split('-');\n\n\t\t\t\t_childNodesRestore( dt, idx[0]*1, idx[1]*1 );\n\t\t\t} );\n\t\t}\n\n\t\t// Clone the table with the current data in it\n\t\tvar tableWidth   = dt.table().node().offsetWidth;\n\t\tvar columnWidths = dt.columns;\n\t\tvar clonedTable  = dt.table().node().cloneNode( false );\n\t\tvar clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );\n\t\tvar clonedBody   = $( dt.table().body() ).clone( false, false ).empty().appendTo( clonedTable ); // use jQuery because of IE8\n\n\t\tclonedTable.style.width = 'auto';\n\n\t\t// Header\n\t\tvar headerCells = dt.columns()\n\t\t\t.header()\n\t\t\t.filter( function (idx) {\n\t\t\t\treturn dt.column(idx).visible();\n\t\t\t} )\n\t\t\t.to$()\n\t\t\t.clone( false )\n\t\t\t.css( 'display', 'table-cell' )\n\t\t\t.css( 'width', 'auto' )\n\t\t\t.css( 'min-width', 0 );\n\n\t\t// Body rows - we don't need to take account of DataTables' column\n\t\t// visibility since we implement our own here (hence the `display` set)\n\t\t$(clonedBody)\n\t\t\t.append( $(dt.rows( { page: 'current' } ).nodes()).clone( false ) )\n\t\t\t.find( 'th, td' ).css( 'display', '' );\n\n\t\t// Footer\n\t\tvar footer = dt.table().footer();\n\t\tif ( footer ) {\n\t\t\tvar clonedFooter = $( footer.cloneNode( false ) ).appendTo( clonedTable );\n\t\t\tvar footerCells = dt.columns()\n\t\t\t\t.footer()\n\t\t\t\t.filter( function (idx) {\n\t\t\t\t\treturn dt.column(idx).visible();\n\t\t\t\t} )\n\t\t\t\t.to$()\n\t\t\t\t.clone( false )\n\t\t\t\t.css( 'display', 'table-cell' );\n\n\t\t\t$('<tr/>')\n\t\t\t\t.append( footerCells )\n\t\t\t\t.appendTo( clonedFooter );\n\t\t}\n\n\t\t$('<tr/>')\n\t\t\t.append( headerCells )\n\t\t\t.appendTo( clonedHeader );\n\n\t\t// In the inline case extra padding is applied to the first column to\n\t\t// give space for the show / hide icon. We need to use this in the\n\t\t// calculation\n\t\tif ( this.c.details.type === 'inline' ) {\n\t\t\t$(clonedTable).addClass( 'dtr-inline collapsed' );\n\t\t}\n\t\t\n\t\t// It is unsafe to insert elements with the same name into the DOM\n\t\t// multiple times. For example, cloning and inserting a checked radio\n\t\t// clears the chcecked state of the original radio.\n\t\t$( clonedTable ).find( '[name]' ).removeAttr( 'name' );\n\n\t\t// A position absolute table would take the table out of the flow of\n\t\t// our container element, bypassing the height and width (Scroller)\n\t\t$( clonedTable ).css( 'position', 'relative' )\n\t\t\n\t\tvar inserted = $('<div/>')\n\t\t\t.css( {\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tclear: 'both'\n\t\t\t} )\n\t\t\t.append( clonedTable );\n\n\t\tinserted.insertBefore( dt.table().node() );\n\n\t\t// The cloned header now contains the smallest that each column can be\n\t\theaderCells.each( function (i) {\n\t\t\tvar idx = dt.column.index( 'fromVisible', i );\n\t\t\tcolumns[ idx ].minWidth =  this.offsetWidth || 0;\n\t\t} );\n\n\t\tinserted.remove();\n\t},\n\n\t/**\n\t * Get the state of the current hidden columns - controlled by Responsive only\n\t */\n\t_responsiveOnlyHidden: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\n\t\treturn $.map( this.s.current, function (v, i) {\n\t\t\t// If the column is hidden by DataTables then it can't be hidden by\n\t\t\t// Responsive!\n\t\t\tif ( dt.column(i).visible() === false ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn v;\n\t\t} );\n\t},\n\n\t/**\n\t * Set a column's visibility.\n\t *\n\t * We don't use DataTables' column visibility controls in order to ensure\n\t * that column visibility can Responsive can no-exist. Since only IE8+ is\n\t * supported (and all evergreen browsers of course) the control of the\n\t * display attribute works well.\n\t *\n\t * @param {integer} col      Column index\n\t * @param {boolean} showHide Show or hide (true or false)\n\t * @private\n\t */\n\t_setColumnVis: function ( col, showHide )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar display = showHide ? '' : 'none'; // empty string will remove the attr\n\n\t\t$( dt.column( col ).header() ).css( 'display', display );\n\t\t$( dt.column( col ).footer() ).css( 'display', display );\n\t\tdt.column( col ).nodes().to$().css( 'display', display );\n\n\t\t// If the are child nodes stored, we might need to reinsert them\n\t\tif ( ! $.isEmptyObject( _childNodeStore ) ) {\n\t\t\tdt.cells( null, col ).indexes().each( function (idx) {\n\t\t\t\t_childNodesRestore( dt, idx.row, idx.column );\n\t\t\t} );\n\t\t}\n\t},\n\n\n\t/**\n\t * Update the cell tab indexes for keyboard accessibility. This is called on\n\t * every table draw - that is potentially inefficient, but also the least\n\t * complex option given that column visibility can change on the fly. Its a\n\t * shame user-focus was removed from CSS 3 UI, as it would have solved this\n\t * issue with a single CSS statement.\n\t *\n\t * @private\n\t */\n\t_tabIndexes: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar cells = dt.cells( { page: 'current' } ).nodes().to$();\n\t\tvar ctx = dt.settings()[0];\n\t\tvar target = this.c.details.target;\n\n\t\tcells.filter( '[data-dtr-keyboard]' ).removeData( '[data-dtr-keyboard]' );\n\n\t\tif ( typeof target === 'number' ) {\n\t\t\tdt.cells( null, target, { page: 'current' } ).nodes().to$()\n\t\t\t\t.attr( 'tabIndex', ctx.iTabIndex )\n\t\t\t\t.data( 'dtr-keyboard', 1 );\n\t\t}\n\t\telse {\n\t\t\t// This is a bit of a hack - we need to limit the selected nodes to just\n\t\t\t// those of this table\n\t\t\tif ( target === 'td:first-child, th:first-child' ) {\n\t\t\t\ttarget = '>td:first-child, >th:first-child';\n\t\t\t}\n\n\t\t\t$( target, dt.rows( { page: 'current' } ).nodes() )\n\t\t\t\t.attr( 'tabIndex', ctx.iTabIndex )\n\t\t\t\t.data( 'dtr-keyboard', 1 );\n\t\t}\n\t}\n} );\n\n\n/**\n * List of default breakpoints. Each item in the array is an object with two\n * properties:\n *\n * * `name` - the breakpoint name.\n * * `width` - the breakpoint width\n *\n * @name Responsive.breakpoints\n * @static\n */\nResponsive.breakpoints = [\n\t{ name: 'desktop',  width: Infinity },\n\t{ name: 'tablet-l', width: 1024 },\n\t{ name: 'tablet-p', width: 768 },\n\t{ name: 'mobile-l', width: 480 },\n\t{ name: 'mobile-p', width: 320 }\n];\n\n\n/**\n * Display methods - functions which define how the hidden data should be shown\n * in the table.\n *\n * @namespace\n * @name Responsive.defaults\n * @static\n */\nResponsive.display = {\n\tchildRow: function ( row, update, render ) {\n\t\tif ( update ) {\n\t\t\tif ( $(row.node()).hasClass('parent') ) {\n\t\t\t\trow.child( render(), 'child' ).show();\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif ( ! row.child.isShown()  ) {\n\t\t\t\trow.child( render(), 'child' ).show();\n\t\t\t\t$( row.node() ).addClass( 'parent' );\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\trow.child( false );\n\t\t\t\t$( row.node() ).removeClass( 'parent' );\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\tchildRowImmediate: function ( row, update, render ) {\n\t\tif ( (! update && row.child.isShown()) || ! row.responsive.hasHidden() ) {\n\t\t\t// User interaction and the row is show, or nothing to show\n\t\t\trow.child( false );\n\t\t\t$( row.node() ).removeClass( 'parent' );\n\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\t// Display\n\t\t\trow.child( render(), 'child' ).show();\n\t\t\t$( row.node() ).addClass( 'parent' );\n\n\t\t\treturn true;\n\t\t}\n\t},\n\n\t// This is a wrapper so the modal options for Bootstrap and jQuery UI can\n\t// have options passed into them. This specific one doesn't need to be a\n\t// function but it is for consistency in the `modal` name\n\tmodal: function ( options ) {\n\t\treturn function ( row, update, render ) {\n\t\t\tif ( ! update ) {\n\t\t\t\t// Show a modal\n\t\t\t\tvar close = function () {\n\t\t\t\t\tmodal.remove(); // will tidy events for us\n\t\t\t\t\t$(document).off( 'keypress.dtr' );\n\t\t\t\t};\n\n\t\t\t\tvar modal = $('<div class=\"dtr-modal\"/>')\n\t\t\t\t\t.append( $('<div class=\"dtr-modal-display\"/>')\n\t\t\t\t\t\t.append( $('<div class=\"dtr-modal-content\"/>')\n\t\t\t\t\t\t\t.append( render() )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.append( $('<div class=\"dtr-modal-close\">&times;</div>' )\n\t\t\t\t\t\t\t.click( function () {\n\t\t\t\t\t\t\t\tclose();\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.append( $('<div class=\"dtr-modal-background\"/>')\n\t\t\t\t\t\t.click( function () {\n\t\t\t\t\t\t\tclose();\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t\t.appendTo( 'body' );\n\n\t\t\t\t$(document).on( 'keyup.dtr', function (e) {\n\t\t\t\t\tif ( e.keyCode === 27 ) {\n\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\tclose();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$('div.dtr-modal-content')\n\t\t\t\t\t.empty()\n\t\t\t\t\t.append( render() );\n\t\t\t}\n\n\t\t\tif ( options && options.header ) {\n\t\t\t\t$('div.dtr-modal-content').prepend(\n\t\t\t\t\t'<h2>'+options.header( row )+'</h2>'\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}\n};\n\n\nvar _childNodeStore = {};\n\nfunction _childNodes( dt, row, col ) {\n\tvar name = row+'-'+col;\n\n\tif ( _childNodeStore[ name ] ) {\n\t\treturn _childNodeStore[ name ];\n\t}\n\n\t// https://jsperf.com/childnodes-array-slice-vs-loop\n\tvar nodes = [];\n\tvar children = dt.cell( row, col ).node().childNodes;\n\tfor ( var i=0, ien=children.length ; i<ien ; i++ ) {\n\t\tnodes.push( children[i] );\n\t}\n\n\t_childNodeStore[ name ] = nodes;\n\n\treturn nodes;\n}\n\nfunction _childNodesRestore( dt, row, col ) {\n\tvar name = row+'-'+col;\n\n\tif ( ! _childNodeStore[ name ] ) {\n\t\treturn;\n\t}\n\n\tvar node = dt.cell( row, col ).node();\n\tvar store = _childNodeStore[ name ];\n\tvar parent = store[0].parentNode;\n\tvar parentChildren = parent.childNodes;\n\tvar a = [];\n\n\tfor ( var i=0, ien=parentChildren.length ; i<ien ; i++ ) {\n\t\ta.push( parentChildren[i] );\n\t}\n\n\tfor ( var j=0, jen=a.length ; j<jen ; j++ ) {\n\t\tnode.appendChild( a[j] );\n\t}\n\n\t_childNodeStore[ name ] = undefined;\n}\n\n\n/**\n * Display methods - functions which define how the hidden data should be shown\n * in the table.\n *\n * @namespace\n * @name Responsive.defaults\n * @static\n */\nResponsive.renderer = {\n\tlistHiddenNodes: function () {\n\t\treturn function ( api, rowIdx, columns ) {\n\t\t\tvar ul = $('<ul data-dtr-index=\"'+rowIdx+'\" class=\"dtr-details\"/>');\n\t\t\tvar found = false;\n\n\t\t\tvar data = $.each( columns, function ( i, col ) {\n\t\t\t\tif ( col.hidden ) {\n\t\t\t\t\tvar klass = col.className ?\n\t\t\t\t\t\t'class=\"'+ col.className +'\"' :\n\t\t\t\t\t\t'';\n\t\n\t\t\t\t\t$(\n\t\t\t\t\t\t'<li '+klass+' data-dtr-index=\"'+col.columnIndex+'\" data-dt-row=\"'+col.rowIndex+'\" data-dt-column=\"'+col.columnIndex+'\">'+\n\t\t\t\t\t\t\t'<span class=\"dtr-title\">'+\n\t\t\t\t\t\t\t\tcol.title+\n\t\t\t\t\t\t\t'</span> '+\n\t\t\t\t\t\t'</li>'\n\t\t\t\t\t)\n\t\t\t\t\t\t.append( $('<span class=\"dtr-data\"/>').append( _childNodes( api, col.rowIndex, col.columnIndex ) ) )// api.cell( col.rowIndex, col.columnIndex ).node().childNodes ) )\n\t\t\t\t\t\t.appendTo( ul );\n\n\t\t\t\t\tfound = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn found ?\n\t\t\t\tul :\n\t\t\t\tfalse;\n\t\t};\n\t},\n\n\tlistHidden: function () {\n\t\treturn function ( api, rowIdx, columns ) {\n\t\t\tvar data = $.map( columns, function ( col ) {\n\t\t\t\tvar klass = col.className ?\n\t\t\t\t\t'class=\"'+ col.className +'\"' :\n\t\t\t\t\t'';\n\n\t\t\t\treturn col.hidden ?\n\t\t\t\t\t'<li '+klass+' data-dtr-index=\"'+col.columnIndex+'\" data-dt-row=\"'+col.rowIndex+'\" data-dt-column=\"'+col.columnIndex+'\">'+\n\t\t\t\t\t\t'<span class=\"dtr-title\">'+\n\t\t\t\t\t\t\tcol.title+\n\t\t\t\t\t\t'</span> '+\n\t\t\t\t\t\t'<span class=\"dtr-data\">'+\n\t\t\t\t\t\t\tcol.data+\n\t\t\t\t\t\t'</span>'+\n\t\t\t\t\t'</li>' :\n\t\t\t\t\t'';\n\t\t\t} ).join('');\n\n\t\t\treturn data ?\n\t\t\t\t$('<ul data-dtr-index=\"'+rowIdx+'\" class=\"dtr-details\"/>').append( data ) :\n\t\t\t\tfalse;\n\t\t}\n\t},\n\n\ttableAll: function ( options ) {\n\t\toptions = $.extend( {\n\t\t\ttableClass: ''\n\t\t}, options );\n\n\t\treturn function ( api, rowIdx, columns ) {\n\t\t\tvar data = $.map( columns, function ( col ) {\n\t\t\t\tvar klass = col.className ?\n\t\t\t\t\t'class=\"'+ col.className +'\"' :\n\t\t\t\t\t'';\n\n\t\t\t\treturn '<tr '+klass+' data-dt-row=\"'+col.rowIndex+'\" data-dt-column=\"'+col.columnIndex+'\">'+\n\t\t\t\t\t\t'<td>'+col.title+':'+'</td> '+\n\t\t\t\t\t\t'<td>'+col.data+'</td>'+\n\t\t\t\t\t'</tr>';\n\t\t\t} ).join('');\n\n\t\t\treturn $('<table class=\"'+options.tableClass+' dtr-details\" width=\"100%\"/>').append( data );\n\t\t}\n\t}\n};\n\n/**\n * Responsive default settings for initialisation\n *\n * @namespace\n * @name Responsive.defaults\n * @static\n */\nResponsive.defaults = {\n\t/**\n\t * List of breakpoints for the instance. Note that this means that each\n\t * instance can have its own breakpoints. Additionally, the breakpoints\n\t * cannot be changed once an instance has been creased.\n\t *\n\t * @type {Array}\n\t * @default Takes the value of `Responsive.breakpoints`\n\t */\n\tbreakpoints: Responsive.breakpoints,\n\n\t/**\n\t * Enable / disable auto hiding calculations. It can help to increase\n\t * performance slightly if you disable this option, but all columns would\n\t * need to have breakpoint classes assigned to them\n\t *\n\t * @type {Boolean}\n\t * @default  `true`\n\t */\n\tauto: true,\n\n\t/**\n\t * Details control. If given as a string value, the `type` property of the\n\t * default object is set to that value, and the defaults used for the rest\n\t * of the object - this is for ease of implementation.\n\t *\n\t * The object consists of the following properties:\n\t *\n\t * * `display` - A function that is used to show and hide the hidden details\n\t * * `renderer` - function that is called for display of the child row data.\n\t *   The default function will show the data from the hidden columns\n\t * * `target` - Used as the selector for what objects to attach the child\n\t *   open / close to\n\t * * `type` - `false` to disable the details display, `inline` or `column`\n\t *   for the two control types\n\t *\n\t * @type {Object|string}\n\t */\n\tdetails: {\n\t\tdisplay: Responsive.display.childRow,\n\n\t\trenderer: Responsive.renderer.listHidden(),\n\n\t\ttarget: 0,\n\n\t\ttype: 'inline'\n\t},\n\n\t/**\n\t * Orthogonal data request option. This is used to define the data type\n\t * requested when Responsive gets the data to show in the child row.\n\t *\n\t * @type {String}\n\t */\n\torthogonal: 'display'\n};\n\n\n/*\n * API\n */\nvar Api = $.fn.dataTable.Api;\n\n// Doesn't do anything - work around for a bug in DT... Not documented\nApi.register( 'responsive()', function () {\n\treturn this;\n} );\n\nApi.register( 'responsive.index()', function ( li ) {\n\tli = $(li);\n\n\treturn {\n\t\tcolumn: li.data('dtr-index'),\n\t\trow:    li.parent().data('dtr-index')\n\t};\n} );\n\nApi.register( 'responsive.rebuild()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._responsive ) {\n\t\t\tctx._responsive._classLogic();\n\t\t}\n\t} );\n} );\n\nApi.register( 'responsive.recalc()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx._responsive ) {\n\t\t\tctx._responsive._resizeAuto();\n\t\t\tctx._responsive._resize();\n\t\t}\n\t} );\n} );\n\nApi.register( 'responsive.hasHidden()', function () {\n\tvar ctx = this.context[0];\n\n\treturn ctx._responsive ?\n\t\t$.inArray( false, ctx._responsive._responsiveOnlyHidden() ) !== -1 :\n\t\tfalse;\n} );\n\nApi.registerPlural( 'columns().responsiveHidden()', 'column().responsiveHidden()', function () {\n\treturn this.iterator( 'column', function ( settings, column ) {\n\t\treturn settings._responsive ?\n\t\t\tsettings._responsive._responsiveOnlyHidden()[ column ] :\n\t\t\tfalse;\n\t}, 1 );\n} );\n\n\n/**\n * Version information\n *\n * @name Responsive.version\n * @static\n */\nResponsive.version = '2.2.7';\n\n\n$.fn.dataTable.Responsive = Responsive;\n$.fn.DataTable.Responsive = Responsive;\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.dtr', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tif ( $(settings.nTable).hasClass( 'responsive' ) ||\n\t\t $(settings.nTable).hasClass( 'dt-responsive' ) ||\n\t\t settings.oInit.responsive ||\n\t\t DataTable.defaults.responsive\n\t) {\n\t\tvar init = settings.oInit.responsive;\n\n\t\tif ( init !== false ) {\n\t\t\tnew Responsive( settings, $.isPlainObject( init ) ? init : {}  );\n\t\t}\n\t}\n} );\n\n\nreturn Responsive;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-responsive/js/responsive.bootstrap4.js",
    "content": "/*! Bootstrap 4 integration for DataTables' Responsive\n * ©2016 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-responsive'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Responsive ) {\n\t\t\t\trequire('datatables.net-responsive')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nvar _display = DataTable.Responsive.display;\nvar _original = _display.modal;\nvar _modal = $(\n\t'<div class=\"modal fade dtr-bs-modal\" role=\"dialog\">'+\n\t\t'<div class=\"modal-dialog\" role=\"document\">'+\n\t\t\t'<div class=\"modal-content\">'+\n\t\t\t\t'<div class=\"modal-header\">'+\n\t\t\t\t\t'<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>'+\n\t\t\t\t'</div>'+\n\t\t\t\t'<div class=\"modal-body\"/>'+\n\t\t\t'</div>'+\n\t\t'</div>'+\n\t'</div>'\n);\n\n_display.modal = function ( options ) {\n\treturn function ( row, update, render ) {\n\t\tif ( ! $.fn.modal ) {\n\t\t\t_original( row, update, render );\n\t\t}\n\t\telse {\n\t\t\tif ( ! update ) {\n\t\t\t\tif ( options && options.header ) {\n\t\t\t\t\tvar header = _modal.find('div.modal-header');\n\t\t\t\t\tvar button = header.find('button').detach();\n\t\t\t\t\t\n\t\t\t\t\theader\n\t\t\t\t\t\t.empty()\n\t\t\t\t\t\t.append( '<h4 class=\"modal-title\">'+options.header( row )+'</h4>' )\n\t\t\t\t\t\t.append( button );\n\t\t\t\t}\n\n\t\t\t\t_modal.find( 'div.modal-body' )\n\t\t\t\t\t.empty()\n\t\t\t\t\t.append( render() );\n\n\t\t\t\t_modal\n\t\t\t\t\t.appendTo( 'body' )\n\t\t\t\t\t.modal();\n\t\t\t}\n\t\t}\n\t};\n};\n\n\nreturn DataTable.Responsive;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowgroup/css/rowGroup.bootstrap4.css",
    "content": "table.dataTable tr.dtrg-group td {\n  background-color: #e0e0e0;\n}\n\ntable.dataTable tr.dtrg-group.dtrg-level-0 td {\n  font-weight: bold;\n}\n\ntable.dataTable tr.dtrg-group.dtrg-level-1 td,\ntable.dataTable tr.dtrg-group.dtrg-level-2 td {\n  background-color: #f0f0f0;\n  padding-top: 0.25em;\n  padding-bottom: 0.25em;\n  padding-left: 2em;\n  font-size: 0.9em;\n}\n\ntable.dataTable tr.dtrg-group.dtrg-level-2 td {\n  background-color: #f3f3f3;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowgroup/js/dataTables.rowGroup.js",
    "content": "/*! RowGroup 1.1.2\n * ©2017-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     RowGroup\n * @description RowGrouping for DataTables\n * @version     1.1.2\n * @file        dataTables.rowGroup.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     datatables.net\n * @copyright   Copyright 2017-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\nvar RowGroup = function ( dt, opts ) {\n\t// Sanity check that we are using DataTables 1.10 or newer\n\tif ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.8' ) ) {\n\t\tthrow 'RowGroup requires DataTables 1.10.8 or newer';\n\t}\n\n\t// User and defaults configuration object\n\tthis.c = $.extend( true, {},\n\t\tDataTable.defaults.rowGroup,\n\t\tRowGroup.defaults,\n\t\topts\n\t);\n\n\t// Internal settings\n\tthis.s = {\n\t\tdt: new DataTable.Api( dt )\n\t};\n\n\t// DOM items\n\tthis.dom = {\n\n\t};\n\n\t// Check if row grouping has already been initialised on this table\n\tvar settings = this.s.dt.settings()[0];\n\tvar existing = settings.rowGroup;\n\tif ( existing ) {\n\t\treturn existing;\n\t}\n\n\tsettings.rowGroup = this;\n\tthis._constructor();\n};\n\n\n$.extend( RowGroup.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * API methods for DataTables API interface\n\t */\n\n\t/**\n\t * Get/set the grouping data source - need to call draw after this is\n\t * executed as a setter\n\t * @returns string~RowGroup\n\t */\n\tdataSrc: function ( val )\n\t{\n\t\tif ( val === undefined ) {\n\t\t\treturn this.c.dataSrc;\n\t\t}\n\n\t\tvar dt = this.s.dt;\n\n\t\tthis.c.dataSrc = val;\n\n\t\t$(dt.table().node()).triggerHandler( 'rowgroup-datasrc.dt', [ dt, val ] );\n\n\t\treturn this;\n\t},\n\n\t/**\n\t * Disable - need to call draw after this is executed\n\t * @returns RowGroup\n\t */\n\tdisable: function ()\n\t{\n\t\tthis.c.enable = false;\n\t\treturn this;\n\t},\n\n\t/**\n\t * Enable - need to call draw after this is executed\n\t * @returns RowGroup\n\t */\n\tenable: function ( flag )\n\t{\n\t\tif ( flag === false ) {\n\t\t\treturn this.disable();\n\t\t}\n\n\t\tthis.c.enable = true;\n\t\treturn this;\n\t},\n\n\t/**\n\t * Get enabled flag\n\t * @returns boolean\n\t */\n\tenabled: function ()\n\t{\n\t\treturn this.c.enable;\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar hostSettings = dt.settings()[0];\n\n\t\tdt.on( 'draw.dtrg', function (e, s) {\n\t\t\tif ( that.c.enable && hostSettings === s ) {\n\t\t\t\tthat._draw();\n\t\t\t}\n\t\t} );\n\n\t\tdt.on( 'column-visibility.dt.dtrg responsive-resize.dt.dtrg', function () {\n\t\t\tthat._adjustColspan();\n\t\t} );\n\n\t\tdt.on( 'destroy', function () {\n\t\t\tdt.off( '.dtrg' );\n\t\t} );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Adjust column span when column visibility changes\n\t * @private\n\t */\n\t_adjustColspan: function ()\n\t{\n\t\t$( 'tr.'+this.c.className, this.s.dt.table().body() ).find('td:visible')\n\t\t\t.attr( 'colspan', this._colspan() );\n\t},\n\n\t/**\n\t * Get the number of columns that a grouping row should span\n\t * @private\n\t */\n\t_colspan: function ()\n\t{\n\t\treturn this.s.dt.columns().visible().reduce( function (a, b) {\n\t\t\treturn a + b;\n\t\t}, 0 );\n\t},\n\n\n\t/**\n\t * Update function that is called whenever we need to draw the grouping rows.\n\t * This is basically a bootstrap for the self iterative _group and _groupDisplay\n\t * methods\n\t * @private\n\t */\n\t_draw: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar groupedRows = this._group( 0, dt.rows( { page: 'current' } ).indexes() );\n\n\t\tthis._groupDisplay( 0, groupedRows );\n\t},\n\n\t/**\n\t * Get the grouping information from a data set (index) of rows\n\t * @param {number} level Nesting level\n\t * @param {DataTables.Api} rows API of the rows to consider for this group\n\t * @returns {object[]} Nested grouping information - it is structured like this:\n\t *\t{\n\t *\t\tdataPoint: 'Edinburgh',\n\t *\t\trows: [ 1,2,3,4,5,6,7 ],\n\t *\t\tchildren: [ {\n\t *\t\t\tdataPoint: 'developer'\n\t *\t\t\trows: [ 1, 2, 3 ]\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tdataPoint: 'support',\n\t *\t\t\trows: [ 4, 5, 6, 7 ]\n\t *\t\t} ]\n\t *\t}\n\t * @private\n\t */\n\t_group: function ( level, rows ) {\n\t\tvar fns = $.isArray( this.c.dataSrc ) ? this.c.dataSrc : [ this.c.dataSrc ];\n\t\tvar fn = DataTable.ext.oApi._fnGetObjectDataFn( fns[ level ] );\n\t\tvar dt = this.s.dt;\n\t\tvar group, last;\n\t\tvar data = [];\n\t\tvar that = this;\n\n\t\tfor ( var i=0, ien=rows.length ; i<ien ; i++ ) {\n\t\t\tvar rowIndex = rows[i];\n\t\t\tvar rowData = dt.row( rowIndex ).data();\n\t\t\tvar group = fn( rowData );\n\n\t\t\tif ( group === null || group === undefined ) {\n\t\t\t\tgroup = that.c.emptyDataGroup;\n\t\t\t}\n\t\t\t\n\t\t\tif ( last === undefined || group !== last ) {\n\t\t\t\tdata.push( {\n\t\t\t\t\tdataPoint: group,\n\t\t\t\t\trows: []\n\t\t\t\t} );\n\n\t\t\t\tlast = group;\n\t\t\t}\n\n\t\t\tdata[ data.length-1 ].rows.push( rowIndex );\n\t\t}\n\n\t\tif ( fns[ level+1 ] !== undefined ) {\n\t\t\tfor ( var i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\tdata[i].children = this._group( level+1, data[i].rows );\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Row group display - insert the rows into the document\n\t * @param {number} level Nesting level\n\t * @param {object[]} groups Takes the nested array from `_group`\n\t * @private\n\t */\n\t_groupDisplay: function ( level, groups )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar display;\n\t\n\t\tfor ( var i=0, ien=groups.length ; i<ien ; i++ ) {\n\t\t\tvar group = groups[i];\n\t\t\tvar groupName = group.dataPoint;\n\t\t\tvar row;\n\t\t\tvar rows = group.rows;\n\n\t\t\tif ( this.c.startRender ) {\n\t\t\t\tdisplay = this.c.startRender.call( this, dt.rows(rows), groupName, level );\n\t\t\t\trow = this._rowWrap( display, this.c.startClassName, level );\n\n\t\t\t\tif ( row ) {\n\t\t\t\t\trow.insertBefore( dt.row( rows[0] ).node() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( this.c.endRender ) {\n\t\t\t\tdisplay = this.c.endRender.call( this, dt.rows(rows), groupName, level );\n\t\t\t\trow = this._rowWrap( display, this.c.endClassName, level );\n\n\t\t\t\tif ( row ) {\n\t\t\t\t\trow.insertAfter( dt.row( rows[ rows.length-1 ] ).node() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( group.children ) {\n\t\t\t\tthis._groupDisplay( level+1, group.children );\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Take a rendered value from an end user and make it suitable for display\n\t * as a row, by wrapping it in a row, or detecting that it is a row.\n\t * @param {node|jQuery|string} display Display value\n\t * @param {string} className Class to add to the row\n\t * @param {array} group\n\t * @param {number} group level\n\t * @private\n\t */\n\t_rowWrap: function ( display, className, level )\n\t{\n\t\tvar row;\n\t\t\n\t\tif ( display === null || display === '' ) {\n\t\t\tdisplay = this.c.emptyDataGroup;\n\t\t}\n\n\t\tif ( display === undefined || display === null ) {\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tif ( typeof display === 'object' && display.nodeName && display.nodeName.toLowerCase() === 'tr') {\n\t\t\trow = $(display);\n\t\t}\n\t\telse if (display instanceof $ && display.length && display[0].nodeName.toLowerCase() === 'tr') {\n\t\t\trow = display;\n\t\t}\n\t\telse {\n\t\t\trow = $('<tr/>')\n\t\t\t\t.append(\n\t\t\t\t\t$('<td/>')\n\t\t\t\t\t\t.attr( 'colspan', this._colspan() )\n\t\t\t\t\t\t.append( display  )\n\t\t\t\t);\n\t\t}\n\n\t\treturn row\n\t\t\t.addClass( this.c.className )\n\t\t\t.addClass( className )\n\t\t\t.addClass( 'dtrg-level-'+level );\n\t}\n} );\n\n\n/**\n * RowGroup default settings for initialisation\n *\n * @namespace\n * @name RowGroup.defaults\n * @static\n */\nRowGroup.defaults = {\n\t/**\n\t * Class to apply to grouping rows - applied to both the start and\n\t * end grouping rows.\n\t * @type string\n\t */\n\tclassName: 'dtrg-group',\n\n\t/**\n\t * Data property from which to read the grouping information\n\t * @type string|integer|array\n\t */\n\tdataSrc: 0,\n\n\t/**\n\t * Text to show if no data is found for a group\n\t * @type string\n\t */\n\temptyDataGroup: 'No group',\n\n\t/**\n\t * Initial enablement state\n\t * @boolean\n\t */\n\tenable: true,\n\n\t/**\n\t * Class name to give to the end grouping row\n\t * @type string\n\t */\n\tendClassName: 'dtrg-end',\n\n\t/**\n\t * End grouping label function\n\t * @function\n\t */\n\tendRender: null,\n\n\t/**\n\t * Class name to give to the start grouping row\n\t * @type string\n\t */\n\tstartClassName: 'dtrg-start',\n\n\t/**\n\t * Start grouping label function\n\t * @function\n\t */\n\tstartRender: function ( rows, group ) {\n\t\treturn group;\n\t}\n};\n\n\nRowGroup.version = \"1.1.2\";\n\n\n$.fn.dataTable.RowGroup = RowGroup;\n$.fn.DataTable.RowGroup = RowGroup;\n\n\nDataTable.Api.register( 'rowGroup()', function () {\n\treturn this;\n} );\n\nDataTable.Api.register( 'rowGroup().disable()', function () {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.rowGroup ) {\n\t\t\tctx.rowGroup.enable( false );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'rowGroup().enable()', function ( opts ) {\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.rowGroup ) {\n\t\t\tctx.rowGroup.enable( opts === undefined ? true : opts );\n\t\t}\n\t} );\n} );\n\nDataTable.Api.register( 'rowGroup().enabled()', function () {\n\tvar ctx = this.context;\n\n\treturn ctx.length && ctx[0].rowGroup ?\n\t\tctx[0].rowGroup.enabled() :\n\t\tfalse;\n} );\n\nDataTable.Api.register( 'rowGroup().dataSrc()', function ( val ) {\n\tif ( val === undefined ) {\n\t\treturn this.context[0].rowGroup.dataSrc();\n\t}\n\n\treturn this.iterator( 'table', function (ctx) {\n\t\tif ( ctx.rowGroup ) {\n\t\t\tctx.rowGroup.dataSrc( val );\n\t\t}\n\t} );\n} );\n\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.dtrg', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.rowGroup;\n\tvar defaults = DataTable.defaults.rowGroup;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, defaults, init );\n\n\t\tif ( init !== false ) {\n\t\t\tnew RowGroup( settings, opts  );\n\t\t}\n\t}\n} );\n\n\nreturn RowGroup;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowgroup/js/rowGroup.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for RowGroup\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-rowgroup'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.RowGroup ) {\n\t\t\t\trequire('datatables.net-rowgroup')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowreorder/css/rowReorder.bootstrap4.css",
    "content": "table.dt-rowReorder-float {\n  position: absolute !important;\n  opacity: 0.8;\n  table-layout: fixed;\n  outline: 2px solid #0275d8;\n  outline-offset: -2px;\n  z-index: 2001;\n}\n\ntr.dt-rowReorder-moving {\n  outline: 2px solid #888888;\n  outline-offset: -2px;\n}\n\nbody.dt-rowReorder-noOverflow {\n  overflow-x: hidden;\n}\n\ntable.dataTable td.reorder {\n  text-align: center;\n  cursor: move;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowreorder/js/dataTables.rowReorder.js",
    "content": "/*! RowReorder 1.2.7\n * 2015-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     RowReorder\n * @description Row reordering extension for DataTables\n * @version     1.2.7\n * @file        dataTables.rowReorder.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2015-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/**\n * RowReorder provides the ability in DataTables to click and drag rows to\n * reorder them. When a row is dropped the data for the rows effected will be\n * updated to reflect the change. Normally this data point should also be the\n * column being sorted upon in the DataTable but this does not need to be the\n * case. RowReorder implements a \"data swap\" method - so the rows being\n * reordered take the value of the data point from the row that used to occupy\n * the row's new position.\n *\n * Initialisation is done by either:\n *\n * * `rowReorder` parameter in the DataTable initialisation object\n * * `new $.fn.dataTable.RowReorder( table, opts )` after DataTables\n *   initialisation.\n * \n *  @class\n *  @param {object} settings DataTables settings object for the host table\n *  @param {object} [opts] Configuration options\n *  @requires jQuery 1.7+\n *  @requires DataTables 1.10.7+\n */\nvar RowReorder = function ( dt, opts ) {\n\t// Sanity check that we are using DataTables 1.10 or newer\n\tif ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.8' ) ) {\n\t\tthrow 'DataTables RowReorder requires DataTables 1.10.8 or newer';\n\t}\n\n\t// User and defaults configuration object\n\tthis.c = $.extend( true, {},\n\t\tDataTable.defaults.rowReorder,\n\t\tRowReorder.defaults,\n\t\topts\n\t);\n\n\t// Internal settings\n\tthis.s = {\n\t\t/** @type {integer} Scroll body top cache */\n\t\tbodyTop: null,\n\n\t\t/** @type {DataTable.Api} DataTables' API instance */\n\t\tdt: new DataTable.Api( dt ),\n\n\t\t/** @type {function} Data fetch function */\n\t\tgetDataFn: DataTable.ext.oApi._fnGetObjectDataFn( this.c.dataSrc ),\n\n\t\t/** @type {array} Pixel positions for row insertion calculation */\n\t\tmiddles: null,\n\n\t\t/** @type {Object} Cached dimension information for use in the mouse move event handler */\n\t\tscroll: {},\n\n\t\t/** @type {integer} Interval object used for smooth scrolling */\n\t\tscrollInterval: null,\n\n\t\t/** @type {function} Data set function */\n\t\tsetDataFn: DataTable.ext.oApi._fnSetObjectDataFn( this.c.dataSrc ),\n\n\t\t/** @type {Object} Mouse down information */\n\t\tstart: {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 0,\n\t\t\tnodes: []\n\t\t},\n\n\t\t/** @type {integer} Window height cached value */\n\t\twindowHeight: 0,\n\n\t\t/** @type {integer} Document outer height cached value */\n\t\tdocumentOuterHeight: 0,\n\n\t\t/** @type {integer} DOM clone outer height cached value */\n\t\tdomCloneOuterHeight: 0\n\t};\n\n\t// DOM items\n\tthis.dom = {\n\t\t/** @type {jQuery} Cloned row being moved around */\n\t\tclone: null,\n\n\t\t/** @type {jQuery} DataTables scrolling container */\n\t\tdtScroll: $('div.dataTables_scrollBody', this.s.dt.table().container())\n\t};\n\n\t// Check if row reorder has already been initialised on this table\n\tvar settings = this.s.dt.settings()[0];\n\tvar exisiting = settings.rowreorder;\n\n\tif ( exisiting ) {\n\t\treturn exisiting;\n\t}\n\n\tif ( !this.dom.dtScroll.length ) {\n\t\tthis.dom.dtScroll = $(this.s.dt.table().container(), 'tbody')\n\t}\n\n\tsettings.rowreorder = this;\n\tthis._constructor();\n};\n\n\n$.extend( RowReorder.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Initialise the RowReorder instance\n\t *\n\t * @private\n\t */\n\t_constructor: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar table = $( dt.table().node() );\n\n\t\t// Need to be able to calculate the row positions relative to the table\n\t\tif ( table.css('position') === 'static' ) {\n\t\t\ttable.css( 'position', 'relative' );\n\t\t}\n\n\t\t// listen for mouse down on the target column - we have to implement\n\t\t// this rather than using HTML5 drag and drop as drag and drop doesn't\n\t\t// appear to work on table rows at this time. Also mobile browsers are\n\t\t// not supported.\n\t\t// Use `table().container()` rather than just the table node for IE8 -\n\t\t// otherwise it only works once...\n\t\t$(dt.table().container()).on( 'mousedown.rowReorder touchstart.rowReorder', this.c.selector, function (e) {\n\t\t\tif ( ! that.c.enable ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Ignore excluded children of the selector\n\t\t\tif ( $(e.target).is(that.c.excludedChildren) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar tr = $(this).closest('tr');\n\t\t\tvar row = dt.row( tr );\n\n\t\t\t// Double check that it is a DataTable row\n\t\t\tif ( row.any() ) {\n\t\t\t\tthat._emitEvent( 'pre-row-reorder', {\n\t\t\t\t\tnode: row.node(),\n\t\t\t\t\tindex: row.index()\n\t\t\t\t} );\n\n\t\t\t\tthat._mouseDown( e, tr );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\n\t\tdt.on( 'destroy.rowReorder', function () {\n\t\t\t$(dt.table().container()).off( '.rowReorder' );\n\t\t\tdt.off( '.rowReorder' );\n\t\t} );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\t\n\t/**\n\t * Cache the measurements that RowReorder needs in the mouse move handler\n\t * to attempt to speed things up, rather than reading from the DOM.\n\t *\n\t * @private\n\t */\n\t_cachePositions: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\n\t\t// Frustratingly, if we add `position:relative` to the tbody, the\n\t\t// position is still relatively to the parent. So we need to adjust\n\t\t// for that\n\t\tvar headerHeight = $( dt.table().node() ).find('thead').outerHeight();\n\n\t\t// Need to pass the nodes through jQuery to get them in document order,\n\t\t// not what DataTables thinks it is, since we have been altering the\n\t\t// order\n\t\tvar nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );\n\t\tvar middles = $.map( nodes, function ( node, i ) {\n\t\t\tvar top = $(node).position().top - headerHeight;\n\n\t\t\treturn (top + top + $(node).outerHeight() ) / 2;\n\t\t} );\n\n\t\tthis.s.middles = middles;\n\t\tthis.s.bodyTop = $( dt.table().body() ).offset().top;\n\t\tthis.s.windowHeight = $(window).height();\n\t\tthis.s.documentOuterHeight = $(document).outerHeight();\n\t},\n\n\n\t/**\n\t * Clone a row so it can be floated around the screen\n\t *\n\t * @param  {jQuery} target Node to be cloned\n\t * @private\n\t */\n\t_clone: function ( target )\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar clone = $( dt.table().node().cloneNode(false) )\n\t\t\t.addClass( 'dt-rowReorder-float' )\n\t\t\t.append('<tbody/>')\n\t\t\t.append( target.clone( false ) );\n\n\t\t// Match the table and column widths - read all sizes before setting\n\t\t// to reduce reflows\n\t\tvar tableWidth = target.outerWidth();\n\t\tvar tableHeight = target.outerHeight();\n\t\tvar sizes = target.children().map( function () {\n\t\t\treturn $(this).width();\n\t\t} );\n\n\t\tclone\n\t\t\t.width( tableWidth )\n\t\t\t.height( tableHeight )\n\t\t\t.find('tr').children().each( function (i) {\n\t\t\t\tthis.style.width = sizes[i]+'px';\n\t\t\t} );\n\n\t\t// Insert into the document to have it floating around\n\t\tclone.appendTo( 'body' );\n\n\t\tthis.dom.clone = clone;\n\t\tthis.s.domCloneOuterHeight = clone.outerHeight();\n\t},\n\n\n\t/**\n\t * Update the cloned item's position in the document\n\t *\n\t * @param  {object} e Event giving the mouse's position\n\t * @private\n\t */\n\t_clonePosition: function ( e )\n\t{\n\t\tvar start = this.s.start;\n\t\tvar topDiff = this._eventToPage( e, 'Y' ) - start.top;\n\t\tvar leftDiff = this._eventToPage( e, 'X' ) - start.left;\n\t\tvar snap = this.c.snapX;\n\t\tvar left;\n\t\tvar top = topDiff + start.offsetTop;\n\n\t\tif ( snap === true ) {\n\t\t\tleft = start.offsetLeft;\n\t\t}\n\t\telse if ( typeof snap === 'number' ) {\n\t\t\tleft = start.offsetLeft + snap;\n\t\t}\n\t\telse {\n\t\t\tleft = leftDiff + start.offsetLeft;\n\t\t}\n\n\t\tif(top < 0) {\n\t\t\ttop = 0\n\t\t}\n\t\telse if(top + this.s.domCloneOuterHeight > this.s.documentOuterHeight) {\n\t\t\ttop = this.s.documentOuterHeight - this.s.domCloneOuterHeight;\n\t\t}\n\n\t\tthis.dom.clone.css( {\n\t\t\ttop: top,\n\t\t\tleft: left\n\t\t} );\n\t},\n\n\n\t/**\n\t * Emit an event on the DataTable for listeners\n\t *\n\t * @param  {string} name Event name\n\t * @param  {array} args Event arguments\n\t * @private\n\t */\n\t_emitEvent: function ( name, args )\n\t{\n\t\tthis.s.dt.iterator( 'table', function ( ctx, i ) {\n\t\t\t$(ctx.nTable).triggerHandler( name+'.dt', args );\n\t\t} );\n\t},\n\n\n\t/**\n\t * Get pageX/Y position from an event, regardless of if it is a mouse or\n\t * touch event.\n\t *\n\t * @param  {object} e Event\n\t * @param  {string} pos X or Y (must be a capital)\n\t * @private\n\t */\n\t_eventToPage: function ( e, pos )\n\t{\n\t\tif ( e.type.indexOf( 'touch' ) !== -1 ) {\n\t\t\treturn e.originalEvent.touches[0][ 'page'+pos ];\n\t\t}\n\n\t\treturn e[ 'page'+pos ];\n\t},\n\n\n\t/**\n\t * Mouse down event handler. Read initial positions and add event handlers\n\t * for the move.\n\t *\n\t * @param  {object} e      Mouse event\n\t * @param  {jQuery} target TR element that is to be moved\n\t * @private\n\t */\n\t_mouseDown: function ( e, target )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar start = this.s.start;\n\n\t\tvar offset = target.offset();\n\t\tstart.top = this._eventToPage( e, 'Y' );\n\t\tstart.left = this._eventToPage( e, 'X' );\n\t\tstart.offsetTop = offset.top;\n\t\tstart.offsetLeft = offset.left;\n\t\tstart.nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );\n\n\t\tthis._cachePositions();\n\t\tthis._clone( target );\n\t\tthis._clonePosition( e );\n\n\t\tthis.dom.target = target;\n\t\ttarget.addClass( 'dt-rowReorder-moving' );\n\n\t\t$( document )\n\t\t\t.on( 'mouseup.rowReorder touchend.rowReorder', function (e) {\n\t\t\t\tthat._mouseUp(e);\n\t\t\t} )\n\t\t\t.on( 'mousemove.rowReorder touchmove.rowReorder', function (e) {\n\t\t\t\tthat._mouseMove(e);\n\t\t\t} );\n\n\t\t// Check if window is x-scrolling - if not, disable it for the duration\n\t\t// of the drag\n\t\tif ( $(window).width() === $(document).width() ) {\n\t\t\t$(document.body).addClass( 'dt-rowReorder-noOverflow' );\n\t\t}\n\n\t\t// Cache scrolling information so mouse move doesn't need to read.\n\t\t// This assumes that the window and DT scroller will not change size\n\t\t// during an row drag, which I think is a fair assumption\n\t\tvar scrollWrapper = this.dom.dtScroll;\n\t\tthis.s.scroll = {\n\t\t\twindowHeight: $(window).height(),\n\t\t\twindowWidth:  $(window).width(),\n\t\t\tdtTop:        scrollWrapper.length ? scrollWrapper.offset().top : null,\n\t\t\tdtLeft:       scrollWrapper.length ? scrollWrapper.offset().left : null,\n\t\t\tdtHeight:     scrollWrapper.length ? scrollWrapper.outerHeight() : null,\n\t\t\tdtWidth:      scrollWrapper.length ? scrollWrapper.outerWidth() : null\n\t\t};\n\t},\n\n\n\t/**\n\t * Mouse move event handler - move the cloned row and shuffle the table's\n\t * rows if required.\n\t *\n\t * @param  {object} e Mouse event\n\t * @private\n\t */\n\t_mouseMove: function ( e )\n\t{\n\t\tthis._clonePosition( e );\n\n\t\t// Transform the mouse position into a position in the table's body\n\t\tvar bodyY = this._eventToPage( e, 'Y' ) - this.s.bodyTop;\n\t\tvar middles = this.s.middles;\n\t\tvar insertPoint = null;\n\t\tvar dt = this.s.dt;\n\n\t\t// Determine where the row should be inserted based on the mouse\n\t\t// position\n\t\tfor ( var i=0, ien=middles.length ; i<ien ; i++ ) {\n\t\t\tif ( bodyY < middles[i] ) {\n\t\t\t\tinsertPoint = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif ( insertPoint === null ) {\n\t\t\tinsertPoint = middles.length;\n\t\t}\n\n\t\t// Perform the DOM shuffle if it has changed from last time\n\t\tif ( this.s.lastInsert === null || this.s.lastInsert !== insertPoint ) {\n\t\t\tvar nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );\n\n\t\t\tif ( insertPoint > this.s.lastInsert ) {\n\t\t\t\tthis.dom.target.insertAfter( nodes[ insertPoint-1 ] );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dom.target.insertBefore( nodes[ insertPoint ] );\n\t\t\t}\n\n\t\t\tthis._cachePositions();\n\n\t\t\tthis.s.lastInsert = insertPoint;\n\t\t}\n\n\t\tthis._shiftScroll( e );\n\t},\n\n\n\t/**\n\t * Mouse up event handler - release the event handlers and perform the\n\t * table updates\n\t *\n\t * @param  {object} e Mouse event\n\t * @private\n\t */\n\t_mouseUp: function ( e )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar i, ien;\n\t\tvar dataSrc = this.c.dataSrc;\n\n\t\tthis.dom.clone.remove();\n\t\tthis.dom.clone = null;\n\n\t\tthis.dom.target.removeClass( 'dt-rowReorder-moving' );\n\t\t//this.dom.target = null;\n\n\t\t$(document).off( '.rowReorder' );\n\t\t$(document.body).removeClass( 'dt-rowReorder-noOverflow' );\n\n\t\tclearInterval( this.s.scrollInterval );\n\t\tthis.s.scrollInterval = null;\n\n\t\t// Calculate the difference\n\t\tvar startNodes = this.s.start.nodes;\n\t\tvar endNodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );\n\t\tvar idDiff = {};\n\t\tvar fullDiff = [];\n\t\tvar diffNodes = [];\n\t\tvar getDataFn = this.s.getDataFn;\n\t\tvar setDataFn = this.s.setDataFn;\n\n\t\tfor ( i=0, ien=startNodes.length ; i<ien ; i++ ) {\n\t\t\tif ( startNodes[i] !== endNodes[i] ) {\n\t\t\t\tvar id = dt.row( endNodes[i] ).id();\n\t\t\t\tvar endRowData = dt.row( endNodes[i] ).data();\n\t\t\t\tvar startRowData = dt.row( startNodes[i] ).data();\n\n\t\t\t\tif ( id ) {\n\t\t\t\t\tidDiff[ id ] = getDataFn( startRowData );\n\t\t\t\t}\n\n\t\t\t\tfullDiff.push( {\n\t\t\t\t\tnode: endNodes[i],\n\t\t\t\t\toldData: getDataFn( endRowData ),\n\t\t\t\t\tnewData: getDataFn( startRowData ),\n\t\t\t\t\tnewPosition: i,\n\t\t\t\t\toldPosition: $.inArray( endNodes[i], startNodes )\n\t\t\t\t} );\n\n\t\t\t\tdiffNodes.push( endNodes[i] );\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Create event args\n\t\tvar eventArgs = [ fullDiff, {\n\t\t\tdataSrc:       dataSrc,\n\t\t\tnodes:         diffNodes,\n\t\t\tvalues:        idDiff,\n\t\t\ttriggerRow:    dt.row( this.dom.target ),\n\t\t\toriginalEvent: e\n\t\t} ];\n\t\t\n\t\t// Emit event\n\t\tthis._emitEvent( 'row-reorder', eventArgs );\n\n\t\tvar update = function () {\n\t\t\tif ( that.c.update ) {\n\t\t\t\tfor ( i=0, ien=fullDiff.length ; i<ien ; i++ ) {\n\t\t\t\t\tvar row = dt.row( fullDiff[i].node );\n\t\t\t\t\tvar rowData = row.data();\n\n\t\t\t\t\tsetDataFn( rowData, fullDiff[i].newData );\n\n\t\t\t\t\t// Invalidate the cell that has the same data source as the dataSrc\n\t\t\t\t\tdt.columns().every( function () {\n\t\t\t\t\t\tif ( this.dataSrc() === dataSrc ) {\n\t\t\t\t\t\t\tdt.cell( fullDiff[i].node, this.index() ).invalidate( 'data' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Trigger row reordered event\n\t\t\t\tthat._emitEvent( 'row-reordered', eventArgs );\n\n\t\t\t\tdt.draw( false );\n\t\t\t}\n\t\t};\n\n\t\t// Editor interface\n\t\tif ( this.c.editor ) {\n\t\t\t// Disable user interaction while Editor is submitting\n\t\t\tthis.c.enable = false;\n\n\t\t\tthis.c.editor\n\t\t\t\t.edit(\n\t\t\t\t\tdiffNodes,\n\t\t\t\t\tfalse,\n\t\t\t\t\t$.extend( {submit: 'changed'}, this.c.formOptions )\n\t\t\t\t)\n\t\t\t\t.multiSet( dataSrc, idDiff )\n\t\t\t\t.one( 'preSubmitCancelled.rowReorder', function () {\n\t\t\t\t\tthat.c.enable = true;\n\t\t\t\t\tthat.c.editor.off( '.rowReorder' );\n\t\t\t\t\tdt.draw( false );\n\t\t\t\t} )\n\t\t\t\t.one( 'submitUnsuccessful.rowReorder', function () {\n\t\t\t\t\tdt.draw( false );\n\t\t\t\t} )\n\t\t\t\t.one( 'submitSuccess.rowReorder', function () {\n\t\t\t\t\tupdate();\n\t\t\t\t} )\n\t\t\t\t.one( 'submitComplete', function () {\n\t\t\t\t\tthat.c.enable = true;\n\t\t\t\t\tthat.c.editor.off( '.rowReorder' );\n\t\t\t\t} )\n\t\t\t\t.submit();\n\t\t}\n\t\telse {\n\t\t\tupdate();\n\t\t}\n\t},\n\n\n\t/**\n\t * Move the window and DataTables scrolling during a drag to scroll new\n\t * content into view.\n\t *\n\t * This matches the `_shiftScroll` method used in AutoFill, but only\n\t * horizontal scrolling is considered here.\n\t *\n\t * @param  {object} e Mouse move event object\n\t * @private\n\t */\n\t_shiftScroll: function ( e )\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dt;\n\t\tvar scroll = this.s.scroll;\n\t\tvar runInterval = false;\n\t\tvar scrollSpeed = 5;\n\t\tvar buffer = 65;\n\t\tvar\n\t\t\twindowY = e.pageY - document.body.scrollTop,\n\t\t\twindowVert,\n\t\t\tdtVert;\n\n\t\t// Window calculations - based on the mouse position in the window,\n\t\t// regardless of scrolling\n\t\tif ( windowY < $(window).scrollTop() + buffer ) {\n\t\t\twindowVert = scrollSpeed * -1;\n\t\t}\n\t\telse if ( windowY > scroll.windowHeight + $(window).scrollTop() - buffer ) {\n\t\t\twindowVert = scrollSpeed;\n\t\t}\n\n\t\t// DataTables scrolling calculations - based on the table's position in\n\t\t// the document and the mouse position on the page\n\t\tif ( scroll.dtTop !== null && e.pageY < scroll.dtTop + buffer ) {\n\t\t\tdtVert = scrollSpeed * -1;\n\t\t}\n\t\telse if ( scroll.dtTop !== null && e.pageY > scroll.dtTop + scroll.dtHeight - buffer ) {\n\t\t\tdtVert = scrollSpeed;\n\t\t}\n\n\t\t// This is where it gets interesting. We want to continue scrolling\n\t\t// without requiring a mouse move, so we need an interval to be\n\t\t// triggered. The interval should continue until it is no longer needed,\n\t\t// but it must also use the latest scroll commands (for example consider\n\t\t// that the mouse might move from scrolling up to scrolling left, all\n\t\t// with the same interval running. We use the `scroll` object to \"pass\"\n\t\t// this information to the interval. Can't use local variables as they\n\t\t// wouldn't be the ones that are used by an already existing interval!\n\t\tif ( windowVert || dtVert ) {\n\t\t\tscroll.windowVert = windowVert;\n\t\t\tscroll.dtVert = dtVert;\n\t\t\trunInterval = true;\n\t\t}\n\t\telse if ( this.s.scrollInterval ) {\n\t\t\t// Don't need to scroll - remove any existing timer\n\t\t\tclearInterval( this.s.scrollInterval );\n\t\t\tthis.s.scrollInterval = null;\n\t\t}\n\n\t\t// If we need to run the interval to scroll and there is no existing\n\t\t// interval (if there is an existing one, it will continue to run)\n\t\tif ( ! this.s.scrollInterval && runInterval ) {\n\t\t\tthis.s.scrollInterval = setInterval( function () {\n\t\t\t\t// Don't need to worry about setting scroll <0 or beyond the\n\t\t\t\t// scroll bound as the browser will just reject that.\n\t\t\t\tif ( scroll.windowVert ) {\n\t\t\t\t\tvar top = $(document).scrollTop();\n\t\t\t\t\t$(document).scrollTop(top + scroll.windowVert);\n\n\t\t\t\t\tif ( top !== $(document).scrollTop() ) {\n\t\t\t\t\t\tvar move = parseFloat(that.dom.clone.css(\"top\"));\n\t\t\t\t\t\tthat.dom.clone.css(\"top\", move + scroll.windowVert);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// DataTables scrolling\n\t\t\t\tif ( scroll.dtVert ) {\n\t\t\t\t\tvar scroller = that.dom.dtScroll[0];\n\n\t\t\t\t\tif ( scroll.dtVert ) {\n\t\t\t\t\t\tscroller.scrollTop += scroll.dtVert;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 20 );\n\t\t}\n\t}\n} );\n\n\n\n/**\n * RowReorder default settings for initialisation\n *\n * @namespace\n * @name RowReorder.defaults\n * @static\n */\nRowReorder.defaults = {\n\t/**\n\t * Data point in the host row's data source object for where to get and set\n\t * the data to reorder. This will normally also be the sorting column.\n\t *\n\t * @type {Number}\n\t */\n\tdataSrc: 0,\n\n\t/**\n\t * Editor instance that will be used to perform the update\n\t *\n\t * @type {DataTable.Editor}\n\t */\n\teditor: null,\n\n\t/**\n\t * Enable / disable RowReorder's user interaction\n\t * @type {Boolean}\n\t */\n\tenable: true,\n\n\t/**\n\t * Form options to pass to Editor when submitting a change in the row order.\n\t * See the Editor `from-options` object for details of the options\n\t * available.\n\t * @type {Object}\n\t */\n\tformOptions: {},\n\n\t/**\n\t * Drag handle selector. This defines the element that when dragged will\n\t * reorder a row.\n\t *\n\t * @type {String}\n\t */\n\tselector: 'td:first-child',\n\n\t/**\n\t * Optionally lock the dragged row's x-position. This can be `true` to\n\t * fix the position match the host table's, `false` to allow free movement\n\t * of the row, or a number to define an offset from the host table.\n\t *\n\t * @type {Boolean|number}\n\t */\n\tsnapX: false,\n\n\t/**\n\t * Update the table's data on drop\n\t *\n\t * @type {Boolean}\n\t */\n\tupdate: true,\n\n\t/**\n\t * Selector for children of the drag handle selector that mouseDown events\n\t * will be passed through to and drag will not activate\n\t *\n\t * @type {String}\n\t */\n\texcludedChildren: 'a'\n};\n\n\n/*\n * API\n */\nvar Api = $.fn.dataTable.Api;\n\n// Doesn't do anything - work around for a bug in DT... Not documented\nApi.register( 'rowReorder()', function () {\n\treturn this;\n} );\n\nApi.register( 'rowReorder.enable()', function ( toggle ) {\n\tif ( toggle === undefined ) {\n\t\ttoggle = true;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.rowreorder ) {\n\t\t\tctx.rowreorder.c.enable = toggle;\n\t\t}\n\t} );\n} );\n\nApi.register( 'rowReorder.disable()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.rowreorder ) {\n\t\t\tctx.rowreorder.c.enable = false;\n\t\t}\n\t} );\n} );\n\n\n/**\n * Version information\n *\n * @name RowReorder.version\n * @static\n */\nRowReorder.version = '1.2.6';\n\n\n$.fn.dataTable.RowReorder = RowReorder;\n$.fn.DataTable.RowReorder = RowReorder;\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'init.dt.dtr', function (e, settings, json) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.rowReorder;\n\tvar defaults = DataTable.defaults.rowReorder;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, init, defaults );\n\n\t\tif ( init !== false ) {\n\t\t\tnew RowReorder( settings, opts  );\n\t\t}\n\t}\n} );\n\n\nreturn RowReorder;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-rowreorder/js/rowReorder.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for RowReorder\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-rowreorder'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.RowReorder ) {\n\t\t\t\trequire('datatables.net-rowreorder')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-scroller/css/scroller.bootstrap4.css",
    "content": "div.dts {\n  display: block !important;\n}\ndiv.dts tbody th,\ndiv.dts tbody td {\n  white-space: nowrap;\n}\ndiv.dts div.dts_loading {\n  z-index: 1;\n}\ndiv.dts div.dts_label {\n  position: absolute;\n  right: 10px;\n  background: rgba(0, 0, 0, 0.8);\n  color: white;\n  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);\n  text-align: right;\n  border-radius: 3px;\n  padding: 0.4em;\n  z-index: 2;\n  display: none;\n}\ndiv.dts div.dataTables_scrollBody {\n  background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px);\n}\ndiv.dts div.dataTables_scrollBody table {\n  z-index: 2;\n}\ndiv.dts div.dataTables_paginate,\ndiv.dts div.dataTables_length {\n  display: none;\n}\n\ndiv.DTS div.dataTables_scrollBody table {\n  background-color: white;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-scroller/js/dataTables.scroller.js",
    "content": "/*! Scroller 2.0.3\n * ©2011-2020 SpryMedia Ltd - datatables.net/license\n */\n\n/**\n * @summary     Scroller\n * @description Virtual rendering for DataTables\n * @version     2.0.3\n * @file        dataTables.scroller.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     www.sprymedia.co.uk/contact\n * @copyright   Copyright 2011-2020 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n/**\n * Scroller is a virtual rendering plug-in for DataTables which allows large\n * datasets to be drawn on screen every quickly. What the virtual rendering means\n * is that only the visible portion of the table (and a bit to either side to make\n * the scrolling smooth) is drawn, while the scrolling container gives the\n * visual impression that the whole table is visible. This is done by making use\n * of the pagination abilities of DataTables and moving the table around in the\n * scrolling container DataTables adds to the page. The scrolling container is\n * forced to the height it would be for the full table display using an extra\n * element.\n *\n * Note that rows in the table MUST all be the same height. Information in a cell\n * which expands on to multiple lines will cause some odd behaviour in the scrolling.\n *\n * Scroller is initialised by simply including the letter 'S' in the sDom for the\n * table you want to have this feature enabled on. Note that the 'S' must come\n * AFTER the 't' parameter in `dom`.\n *\n * Key features include:\n *   <ul class=\"limit_length\">\n *     <li>Speed! The aim of Scroller for DataTables is to make rendering large data sets fast</li>\n *     <li>Full compatibility with deferred rendering in DataTables for maximum speed</li>\n *     <li>Display millions of rows</li>\n *     <li>Integration with state saving in DataTables (scrolling position is saved)</li>\n *     <li>Easy to use</li>\n *   </ul>\n *\n *  @class\n *  @constructor\n *  @global\n *  @param {object} dt DataTables settings object or API instance\n *  @param {object} [opts={}] Configuration object for FixedColumns. Options \n *    are defined by {@link Scroller.defaults}\n *\n *  @requires jQuery 1.7+\n *  @requires DataTables 1.10.0+\n *\n *  @example\n *    $(document).ready(function() {\n *        $('#example').DataTable( {\n *            \"scrollY\": \"200px\",\n *            \"ajax\": \"media/dataset/large.txt\",\n *            \"scroller\": true,\n *            \"deferRender\": true\n *        } );\n *    } );\n */\nvar Scroller = function ( dt, opts ) {\n\t/* Sanity check - you just know it will happen */\n\tif ( ! (this instanceof Scroller) ) {\n\t\talert( \"Scroller warning: Scroller must be initialised with the 'new' keyword.\" );\n\t\treturn;\n\t}\n\n\tif ( opts === undefined ) {\n\t\topts = {};\n\t}\n\n\tvar dtApi = $.fn.dataTable.Api( dt );\n\n\t/**\n\t * Settings object which contains customisable information for the Scroller instance\n\t * @namespace\n\t * @private\n\t * @extends Scroller.defaults\n\t */\n\tthis.s = {\n\t\t/**\n\t\t * DataTables settings object\n\t\t *  @type     object\n\t\t *  @default  Passed in as first parameter to constructor\n\t\t */\n\t\tdt: dtApi.settings()[0],\n\n\t\t/**\n\t\t * DataTables API instance\n\t\t *  @type     DataTable.Api\n\t\t */\n\t\tdtApi: dtApi,\n\n\t\t/**\n\t\t * Pixel location of the top of the drawn table in the viewport\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\ttableTop: 0,\n\n\t\t/**\n\t\t * Pixel location of the bottom of the drawn table in the viewport\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\ttableBottom: 0,\n\n\t\t/**\n\t\t * Pixel location of the boundary for when the next data set should be loaded and drawn\n\t\t * when scrolling up the way.\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t *  @private\n\t\t */\n\t\tredrawTop: 0,\n\n\t\t/**\n\t\t * Pixel location of the boundary for when the next data set should be loaded and drawn\n\t\t * when scrolling down the way. Note that this is actually calculated as the offset from\n\t\t * the top.\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t *  @private\n\t\t */\n\t\tredrawBottom: 0,\n\n\t\t/**\n\t\t * Auto row height or not indicator\n\t\t *  @type     bool\n\t\t *  @default  0\n\t\t */\n\t\tautoHeight: true,\n\n\t\t/**\n\t\t * Number of rows calculated as visible in the visible viewport\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\tviewportRows: 0,\n\n\t\t/**\n\t\t * setTimeout reference for state saving, used when state saving is enabled in the DataTable\n\t\t * and when the user scrolls the viewport in order to stop the cookie set taking too much\n\t\t * CPU!\n\t\t *  @type     int\n\t\t *  @default  0\n\t\t */\n\t\tstateTO: null,\n\n\t\tstateSaveThrottle: function () {},\n\n\t\t/**\n\t\t * setTimeout reference for the redraw, used when server-side processing is enabled in the\n\t\t * DataTables in order to prevent DoSing the server\n\t\t *  @type     int\n\t\t *  @default  null\n\t\t */\n\t\tdrawTO: null,\n\n\t\theights: {\n\t\t\tjump: null,\n\t\t\tpage: null,\n\t\t\tvirtual: null,\n\t\t\tscroll: null,\n\n\t\t\t/**\n\t\t\t * Height of rows in the table\n\t\t\t *  @type     int\n\t\t\t *  @default  0\n\t\t\t */\n\t\t\trow: null,\n\n\t\t\t/**\n\t\t\t * Pixel height of the viewport\n\t\t\t *  @type     int\n\t\t\t *  @default  0\n\t\t\t */\n\t\t\tviewport: null,\n\t\t\tlabelFactor: 1\n\t\t},\n\n\t\ttopRowFloat: 0,\n\t\tscrollDrawDiff: null,\n\t\tloaderVisible: false,\n\t\tforceReposition: false,\n\t\tbaseRowTop: 0,\n\t\tbaseScrollTop: 0,\n\t\tmousedown: false,\n\t\tlastScrollTop: 0\n\t};\n\n\t// @todo The defaults should extend a `c` property and the internal settings\n\t// only held in the `s` property. At the moment they are mixed\n\tthis.s = $.extend( this.s, Scroller.oDefaults, opts );\n\n\t// Workaround for row height being read from height object (see above comment)\n\tthis.s.heights.row = this.s.rowHeight;\n\n\t/**\n\t * DOM elements used by the class instance\n\t * @private\n\t * @namespace\n\t *\n\t */\n\tthis.dom = {\n\t\t\"force\":    document.createElement('div'),\n\t\t\"label\":    $('<div class=\"dts_label\">0</div>'),\n\t\t\"scroller\": null,\n\t\t\"table\":    null,\n\t\t\"loader\":   null\n\t};\n\n\t// Attach the instance to the DataTables instance so it can be accessed in\n\t// future. Don't initialise Scroller twice on the same table\n\tif ( this.s.dt.oScroller ) {\n\t\treturn;\n\t}\n\n\tthis.s.dt.oScroller = this;\n\n\t/* Let's do it */\n\tthis.construct();\n};\n\n\n\n$.extend( Scroller.prototype, {\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Public methods - to be exposed via the DataTables API\n\t */\n\n\t/**\n\t * Calculate and store information about how many rows are to be displayed\n\t * in the scrolling viewport, based on current dimensions in the browser's\n\t * rendering. This can be particularly useful if the table is initially\n\t * drawn in a hidden element - for example in a tab.\n\t *  @param {bool} [redraw=true] Redraw the table automatically after the recalculation, with\n\t *    the new dimensions forming the basis for the draw.\n\t *  @returns {void}\n\t */\n\tmeasure: function ( redraw )\n\t{\n\t\tif ( this.s.autoHeight )\n\t\t{\n\t\t\tthis._calcRowHeight();\n\t\t}\n\n\t\tvar heights = this.s.heights;\n\n\t\tif ( heights.row ) {\n\t\t\theights.viewport = this._parseHeight($(this.dom.scroller).css('max-height'));\n\n\t\t\tthis.s.viewportRows = parseInt( heights.viewport / heights.row, 10 )+1;\n\t\t\tthis.s.dt._iDisplayLength = this.s.viewportRows * this.s.displayBuffer;\n\t\t}\n\n\t\tvar label = this.dom.label.outerHeight();\n\t\theights.labelFactor = (heights.viewport-label) / heights.scroll;\n\n\t\tif ( redraw === undefined || redraw )\n\t\t{\n\t\t\tthis.s.dt.oInstance.fnDraw( false );\n\t\t}\n\t},\n\n\t/**\n\t * Get information about current displayed record range. This corresponds to\n\t * the information usually displayed in the \"Info\" block of the table.\n\t *\n\t * @returns {object} info as an object:\n\t *  {\n\t *      start: {int}, // the 0-indexed record at the top of the viewport\n\t *      end:   {int}, // the 0-indexed record at the bottom of the viewport\n\t *  }\n\t*/\n\tpageInfo: function()\n\t{\n\t\tvar \n\t\t\tdt = this.s.dt,\n\t\t\tiScrollTop = this.dom.scroller.scrollTop,\n\t\t\tiTotal = dt.fnRecordsDisplay(),\n\t\t\tiPossibleEnd = Math.ceil(this.pixelsToRow(iScrollTop + this.s.heights.viewport, false, this.s.ani));\n\n\t\treturn {\n\t\t\tstart: Math.floor(this.pixelsToRow(iScrollTop, false, this.s.ani)),\n\t\t\tend: iTotal < iPossibleEnd ? iTotal-1 : iPossibleEnd-1\n\t\t};\n\t},\n\n\t/**\n\t * Calculate the row number that will be found at the given pixel position\n\t * (y-scroll).\n\t *\n\t * Please note that when the height of the full table exceeds 1 million\n\t * pixels, Scroller switches into a non-linear mode for the scrollbar to fit\n\t * all of the records into a finite area, but this function returns a linear\n\t * value (relative to the last non-linear positioning).\n\t *  @param {int} pixels Offset from top to calculate the row number of\n\t *  @param {int} [intParse=true] If an integer value should be returned\n\t *  @param {int} [virtual=false] Perform the calculations in the virtual domain\n\t *  @returns {int} Row index\n\t */\n\tpixelsToRow: function ( pixels, intParse, virtual )\n\t{\n\t\tvar diff = pixels - this.s.baseScrollTop;\n\t\tvar row = virtual ?\n\t\t\t(this._domain( 'physicalToVirtual', this.s.baseScrollTop ) + diff) / this.s.heights.row :\n\t\t\t( diff / this.s.heights.row ) + this.s.baseRowTop;\n\n\t\treturn intParse || intParse === undefined ?\n\t\t\tparseInt( row, 10 ) :\n\t\t\trow;\n\t},\n\n\t/**\n\t * Calculate the pixel position from the top of the scrolling container for\n\t * a given row\n\t *  @param {int} iRow Row number to calculate the position of\n\t *  @returns {int} Pixels\n\t */\n\trowToPixels: function ( rowIdx, intParse, virtual )\n\t{\n\t\tvar pixels;\n\t\tvar diff = rowIdx - this.s.baseRowTop;\n\n\t\tif ( virtual ) {\n\t\t\tpixels = this._domain( 'virtualToPhysical', this.s.baseScrollTop );\n\t\t\tpixels += diff * this.s.heights.row;\n\t\t}\n\t\telse {\n\t\t\tpixels = this.s.baseScrollTop;\n\t\t\tpixels += diff * this.s.heights.row;\n\t\t}\n\n\t\treturn intParse || intParse === undefined ?\n\t\t\tparseInt( pixels, 10 ) :\n\t\t\tpixels;\n\t},\n\n\n\t/**\n\t * Calculate the row number that will be found at the given pixel position (y-scroll)\n\t *  @param {int} row Row index to scroll to\n\t *  @param {bool} [animate=true] Animate the transition or not\n\t *  @returns {void}\n\t */\n\tscrollToRow: function ( row, animate )\n\t{\n\t\tvar that = this;\n\t\tvar ani = false;\n\t\tvar px = this.rowToPixels( row );\n\n\t\t// We need to know if the table will redraw or not before doing the\n\t\t// scroll. If it will not redraw, then we need to use the currently\n\t\t// displayed table, and scroll with the physical pixels. Otherwise, we\n\t\t// need to calculate the table's new position from the virtual\n\t\t// transform.\n\t\tvar preRows = ((this.s.displayBuffer-1)/2) * this.s.viewportRows;\n\t\tvar drawRow = row - preRows;\n\t\tif ( drawRow < 0 ) {\n\t\t\tdrawRow = 0;\n\t\t}\n\n\t\tif ( (px > this.s.redrawBottom || px < this.s.redrawTop) && this.s.dt._iDisplayStart !== drawRow ) {\n\t\t\tani = true;\n\t\t\tpx = this._domain( 'virtualToPhysical', row * this.s.heights.row );\n\n\t\t\t// If we need records outside the current draw region, but the new\n\t\t\t// scrolling position is inside that (due to the non-linear nature\n\t\t\t// for larger numbers of records), we need to force position update.\n\t\t\tif ( this.s.redrawTop < px && px < this.s.redrawBottom ) {\n\t\t\t\tthis.s.forceReposition = true;\n\t\t\t\tanimate = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( animate === undefined || animate )\n\t\t{\n\t\t\tthis.s.ani = ani;\n\t\t\t$(this.dom.scroller).animate( {\n\t\t\t\t\"scrollTop\": px\n\t\t\t}, function () {\n\t\t\t\t// This needs to happen after the animation has completed and\n\t\t\t\t// the final scroll event fired\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\tthat.s.ani = false;\n\t\t\t\t}, 250 );\n\t\t\t} );\n\t\t}\n\t\telse\n\t\t{\n\t\t\t$(this.dom.scroller).scrollTop( px );\n\t\t}\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Constructor\n\t */\n\n\t/**\n\t * Initialisation for Scroller\n\t *  @returns {void}\n\t *  @private\n\t */\n\tconstruct: function ()\n\t{\n\t\tvar that = this;\n\t\tvar dt = this.s.dtApi;\n\n\t\t/* Sanity check */\n\t\tif ( !this.s.dt.oFeatures.bPaginate ) {\n\t\t\tthis.s.dt.oApi._fnLog( this.s.dt, 0, 'Pagination must be enabled for Scroller' );\n\t\t\treturn;\n\t\t}\n\n\t\t/* Insert a div element that we can use to force the DT scrolling container to\n\t\t * the height that would be required if the whole table was being displayed\n\t\t */\n\t\tthis.dom.force.style.position = \"relative\";\n\t\tthis.dom.force.style.top = \"0px\";\n\t\tthis.dom.force.style.left = \"0px\";\n\t\tthis.dom.force.style.width = \"1px\";\n\n\t\tthis.dom.scroller = $('div.'+this.s.dt.oClasses.sScrollBody, this.s.dt.nTableWrapper)[0];\n\t\tthis.dom.scroller.appendChild( this.dom.force );\n\t\tthis.dom.scroller.style.position = \"relative\";\n\n\t\tthis.dom.table = $('>table', this.dom.scroller)[0];\n\t\tthis.dom.table.style.position = \"absolute\";\n\t\tthis.dom.table.style.top = \"0px\";\n\t\tthis.dom.table.style.left = \"0px\";\n\n\t\t// Add class to 'announce' that we are a Scroller table\n\t\t$(dt.table().container()).addClass('dts DTS');\n\n\t\t// Add a 'loading' indicator\n\t\tif ( this.s.loadingIndicator )\n\t\t{\n\t\t\tthis.dom.loader = $('<div class=\"dataTables_processing dts_loading\">'+this.s.dt.oLanguage.sLoadingRecords+'</div>')\n\t\t\t\t.css('display', 'none');\n\n\t\t\t$(this.dom.scroller.parentNode)\n\t\t\t\t.css('position', 'relative')\n\t\t\t\t.append( this.dom.loader );\n\t\t}\n\n\t\tthis.dom.label.appendTo(this.dom.scroller);\n\n\t\t/* Initial size calculations */\n\t\tif ( this.s.heights.row && this.s.heights.row != 'auto' )\n\t\t{\n\t\t\tthis.s.autoHeight = false;\n\t\t}\n\n\t\t// Scrolling callback to see if a page change is needed\n\t\tthis.s.ingnoreScroll = true;\n\t\t$(this.dom.scroller).on( 'scroll.dt-scroller', function (e) {\n\t\t\tthat._scroll.call( that );\n\t\t} );\n\n\t\t// In iOS we catch the touchstart event in case the user tries to scroll\n\t\t// while the display is already scrolling\n\t\t$(this.dom.scroller).on('touchstart.dt-scroller', function () {\n\t\t\tthat._scroll.call( that );\n\t\t} );\n\n\t\t$(this.dom.scroller)\n\t\t\t.on('mousedown.dt-scroller', function () {\n\t\t\t\tthat.s.mousedown = true;\n\t\t\t})\n\t\t\t.on('mouseup.dt-scroller', function () {\n\t\t\t\tthat.s.labelVisible = false;\n\t\t\t\tthat.s.mousedown = false;\n\t\t\t\tthat.dom.label.css('display', 'none');\n\t\t\t});\n\n\t\t// On resize, update the information element, since the number of rows shown might change\n\t\t$(window).on( 'resize.dt-scroller', function () {\n\t\t\tthat.measure( false );\n\t\t\tthat._info();\n\t\t} );\n\n\t\t// Add a state saving parameter to the DT state saving so we can restore the exact\n\t\t// position of the scrolling.\n\t\tvar initialStateSave = true;\n\t\tvar loadedState = dt.state.loaded();\n\n\t\tdt.on( 'stateSaveParams.scroller', function ( e, settings, data ) {\n\t\t\tif ( initialStateSave && loadedState ) {\n\t\t\t\tdata.scroller = loadedState.scroller;\n\t\t\t\tinitialStateSave = false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Need to used the saved position on init\n\t\t\t\tdata.scroller = {\n\t\t\t\t\ttopRow: that.s.topRowFloat,\n\t\t\t\t\tbaseScrollTop: that.s.baseScrollTop,\n\t\t\t\t\tbaseRowTop: that.s.baseRowTop,\n\t\t\t\t\tscrollTop: that.s.lastScrollTop\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tif ( loadedState && loadedState.scroller ) {\n\t\t\tthis.s.topRowFloat = loadedState.scroller.topRow;\n\t\t\tthis.s.baseScrollTop = loadedState.scroller.baseScrollTop;\n\t\t\tthis.s.baseRowTop = loadedState.scroller.baseRowTop;\n\t\t}\n\n\t\tthis.measure( false );\n\t\n\t\tthat.s.stateSaveThrottle = that.s.dt.oApi._fnThrottle( function () {\n\t\t\tthat.s.dtApi.state.save();\n\t\t}, 500 );\n\n\t\tdt.on( 'init.scroller', function () {\n\t\t\tthat.measure( false );\n\n\t\t\t// Setting to `jump` will instruct _draw to calculate the scroll top\n\t\t\t// position\n\t\t\tthat.s.scrollType = 'jump';\n\t\t\tthat._draw();\n\n\t\t\t// Update the scroller when the DataTable is redrawn\n\t\t\tdt.on( 'draw.scroller', function () {\n\t\t\t\tthat._draw();\n\t\t\t});\n\t\t} );\n\n\t\t// Set height before the draw happens, allowing everything else to update\n\t\t// on draw complete without worry for roder.\n\t\tdt.on( 'preDraw.dt.scroller', function () {\n\t\t\tthat._scrollForce();\n\t\t} );\n\n\t\t// Destructor\n\t\tdt.on( 'destroy.scroller', function () {\n\t\t\t$(window).off( 'resize.dt-scroller' );\n\t\t\t$(that.dom.scroller).off('.dt-scroller');\n\t\t\t$(that.s.dt.nTable).off( '.scroller' );\n\n\t\t\t$(that.s.dt.nTableWrapper).removeClass('DTS');\n\t\t\t$('div.DTS_Loading', that.dom.scroller.parentNode).remove();\n\n\t\t\tthat.dom.table.style.position = \"\";\n\t\t\tthat.dom.table.style.top = \"\";\n\t\t\tthat.dom.table.style.left = \"\";\n\t\t} );\n\t},\n\n\n\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t * Private methods\n\t */\n\n\t/**\n\t * Automatic calculation of table row height. This is just a little tricky here as using\n\t * initialisation DataTables has tale the table out of the document, so we need to create\n\t * a new table and insert it into the document, calculate the row height and then whip the\n\t * table out.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t_calcRowHeight: function ()\n\t{\n\t\tvar dt = this.s.dt;\n\t\tvar origTable = dt.nTable;\n\t\tvar nTable = origTable.cloneNode( false );\n\t\tvar tbody = $('<tbody/>').appendTo( nTable );\n\t\tvar container = $(\n\t\t\t'<div class=\"'+dt.oClasses.sWrapper+' DTS\">'+\n\t\t\t\t'<div class=\"'+dt.oClasses.sScrollWrapper+'\">'+\n\t\t\t\t\t'<div class=\"'+dt.oClasses.sScrollBody+'\"></div>'+\n\t\t\t\t'</div>'+\n\t\t\t'</div>'\n\t\t);\n\n\t\t// Want 3 rows in the sizing table so :first-child and :last-child\n\t\t// CSS styles don't come into play - take the size of the middle row\n\t\t$('tbody tr:lt(4)', origTable).clone().appendTo( tbody );\n        var rowsCount = $('tr', tbody).length;\n\n        if ( rowsCount === 1 ) {\n            tbody.prepend('<tr><td>&#160;</td></tr>');\n            tbody.append('<tr><td>&#160;</td></tr>');\n\t\t}\n\t\telse {\n            for (; rowsCount < 3; rowsCount++) {\n                tbody.append('<tr><td>&#160;</td></tr>');\n            }\n\t\t}\n\t\n\t\t$('div.'+dt.oClasses.sScrollBody, container).append( nTable );\n\n\t\t// If initialised using `dom`, use the holding element as the insert point\n\t\tvar insertEl = this.s.dt.nHolding || origTable.parentNode;\n\n\t\tif ( ! $(insertEl).is(':visible') ) {\n\t\t\tinsertEl = 'body';\n\t\t}\n\n\t\t// Remove form element links as they might select over others (particularly radio and checkboxes)\n\t\tcontainer.find(\"input\").removeAttr(\"name\");\n\n\t\tcontainer.appendTo( insertEl );\n\t\tthis.s.heights.row = $('tr', tbody).eq(1).outerHeight();\n\n\t\tcontainer.remove();\n\t},\n\n\t/**\n\t * Draw callback function which is fired when the DataTable is redrawn. The main function of\n\t * this method is to position the drawn table correctly the scrolling container for the rows\n\t * that is displays as a result of the scrolling position.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t_draw: function ()\n\t{\n\t\tvar\n\t\t\tthat = this,\n\t\t\theights = this.s.heights,\n\t\t\tiScrollTop = this.dom.scroller.scrollTop,\n\t\t\tiTableHeight = $(this.s.dt.nTable).height(),\n\t\t\tdisplayStart = this.s.dt._iDisplayStart,\n\t\t\tdisplayLen = this.s.dt._iDisplayLength,\n\t\t\tdisplayEnd = this.s.dt.fnRecordsDisplay();\n\n\t\t// Disable the scroll event listener while we are updating the DOM\n\t\tthis.s.skip = true;\n\n\t\t// If paging is reset\n\t\tif ( (this.s.dt.bSorted || this.s.dt.bFiltered) && displayStart === 0 && !this.s.dt._drawHold ) {\n\t\t\tthis.s.topRowFloat = 0;\n\t\t}\n\n\t\tiScrollTop = this.s.scrollType === 'jump' ?\n\t\t\tthis._domain( 'virtualToPhysical', this.s.topRowFloat * heights.row ) :\n\t\t\tiScrollTop;\n\n\t\t// Store positional information so positional calculations can be based\n\t\t// upon the current table draw position\n\t\tthis.s.baseScrollTop = iScrollTop;\n\t\tthis.s.baseRowTop = this.s.topRowFloat;\n\n\t\t// Position the table in the virtual scroller\n\t\tvar tableTop = iScrollTop - ((this.s.topRowFloat - displayStart) * heights.row);\n\t\tif ( displayStart === 0 ) {\n\t\t\ttableTop = 0;\n\t\t}\n\t\telse if ( displayStart + displayLen >= displayEnd ) {\n\t\t\ttableTop = heights.scroll - iTableHeight;\n\t\t}\n\n\t\tthis.dom.table.style.top = tableTop+'px';\n\n\t\t/* Cache some information for the scroller */\n\t\tthis.s.tableTop = tableTop;\n\t\tthis.s.tableBottom = iTableHeight + this.s.tableTop;\n\n\t\t// Calculate the boundaries for where a redraw will be triggered by the\n\t\t// scroll event listener\n\t\tvar boundaryPx = (iScrollTop - this.s.tableTop) * this.s.boundaryScale;\n\t\tthis.s.redrawTop = iScrollTop - boundaryPx;\n\t\tthis.s.redrawBottom = iScrollTop + boundaryPx > heights.scroll - heights.viewport - heights.row ?\n\t\t\theights.scroll - heights.viewport - heights.row :\n\t\t\tiScrollTop + boundaryPx;\n\n\t\tthis.s.skip = false;\n\n\t\t// Restore the scrolling position that was saved by DataTable's state\n\t\t// saving Note that this is done on the second draw when data is Ajax\n\t\t// sourced, and the first draw when DOM soured\n\t\tif ( this.s.dt.oFeatures.bStateSave && this.s.dt.oLoadedState !== null &&\n\t\t\t typeof this.s.dt.oLoadedState.scroller != 'undefined' )\n\t\t{\n\t\t\t// A quirk of DataTables is that the draw callback will occur on an\n\t\t\t// empty set if Ajax sourced, but not if server-side processing.\n\t\t\tvar ajaxSourced = (this.s.dt.sAjaxSource || that.s.dt.ajax) && ! this.s.dt.oFeatures.bServerSide ?\n\t\t\t\ttrue :\n\t\t\t\tfalse;\n\n\t\t\tif ( ( ajaxSourced && this.s.dt.iDraw == 2) ||\n\t\t\t     (!ajaxSourced && this.s.dt.iDraw == 1) )\n\t\t\t{\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t$(that.dom.scroller).scrollTop( that.s.dt.oLoadedState.scroller.scrollTop );\n\n\t\t\t\t\t// In order to prevent layout thrashing we need another\n\t\t\t\t\t// small delay\n\t\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t\tthat.s.ingnoreScroll = false;\n\t\t\t\t\t}, 0 );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthat.s.ingnoreScroll = false;\n\t\t}\n\n\t\t// Because of the order of the DT callbacks, the info update will\n\t\t// take precedence over the one we want here. So a 'thread' break is\n\t\t// needed.  Only add the thread break if bInfo is set\n\t\tif ( this.s.dt.oFeatures.bInfo ) {\n\t\t\tsetTimeout( function () {\n\t\t\t\tthat._info.call( that );\n\t\t\t}, 0 );\n\t\t}\n\n\t\t// Hide the loading indicator\n\t\tif ( this.dom.loader && this.s.loaderVisible ) {\n\t\t\tthis.dom.loader.css( 'display', 'none' );\n\t\t\tthis.s.loaderVisible = false;\n\t\t}\n\t},\n\n\t/**\n\t * Convert from one domain to another. The physical domain is the actual\n\t * pixel count on the screen, while the virtual is if we had browsers which\n\t * had scrolling containers of infinite height (i.e. the absolute value)\n\t *\n\t *  @param {string} dir Domain transform direction, `virtualToPhysical` or\n\t *    `physicalToVirtual` \n\t *  @returns {number} Calculated transform\n\t *  @private\n\t */\n\t_domain: function ( dir, val )\n\t{\n\t\tvar heights = this.s.heights;\n\t\tvar diff;\n\t\tvar magic = 10000; // the point at which the non-linear calculations start to happen\n\n\t\t// If the virtual and physical height match, then we use a linear\n\t\t// transform between the two, allowing the scrollbar to be linear\n\t\tif ( heights.virtual === heights.scroll ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// In the first 10k pixels and the last 10k pixels, we want the scrolling\n\t\t// to be linear. After that it can be non-linear. It would be unusual for\n\t\t// anyone to mouse wheel through that much.\n\t\tif ( val < magic ) {\n\t\t\treturn val;\n\t\t}\n\t\telse if ( dir === 'virtualToPhysical' && val >= heights.virtual - magic ) {\n\t\t\tdiff = heights.virtual - val;\n\t\t\treturn heights.scroll - diff;\n\t\t}\n\t\telse if ( dir === 'physicalToVirtual' && val >= heights.scroll - magic ) {\n\t\t\tdiff = heights.scroll - val;\n\t\t\treturn heights.virtual - diff;\n\t\t}\n\n\t\t// Otherwise, we want a non-linear scrollbar to take account of the\n\t\t// redrawing regions at the start and end of the table, otherwise these\n\t\t// can stutter badly - on large tables 30px (for example) scroll might\n\t\t// be hundreds of rows, so the table would be redrawing every few px at\n\t\t// the start and end. Use a simple linear eq. to stop this, effectively\n\t\t// causing a kink in the scrolling ratio. It does mean the scrollbar is\n\t\t// non-linear, but with such massive data sets, the scrollbar is going\n\t\t// to be a best guess anyway\n\t\tvar m = (heights.virtual - magic - magic) / (heights.scroll - magic - magic);\n\t\tvar c = magic - (m*magic);\n\n\t\treturn dir === 'virtualToPhysical' ?\n\t\t\t(val-c) / m :\n\t\t\t(m*val) + c;\n\t},\n\n\t/**\n\t * Update any information elements that are controlled by the DataTable based on the scrolling\n\t * viewport and what rows are visible in it. This function basically acts in the same way as\n\t * _fnUpdateInfo in DataTables, and effectively replaces that function.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t_info: function ()\n\t{\n\t\tif ( !this.s.dt.oFeatures.bInfo )\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvar\n\t\t\tdt = this.s.dt,\n\t\t\tlanguage = dt.oLanguage,\n\t\t\tiScrollTop = this.dom.scroller.scrollTop,\n\t\t\tiStart = Math.floor( this.pixelsToRow(iScrollTop, false, this.s.ani)+1 ),\n\t\t\tiMax = dt.fnRecordsTotal(),\n\t\t\tiTotal = dt.fnRecordsDisplay(),\n\t\t\tiPossibleEnd = Math.ceil( this.pixelsToRow(iScrollTop+this.s.heights.viewport, false, this.s.ani) ),\n\t\t\tiEnd = iTotal < iPossibleEnd ? iTotal : iPossibleEnd,\n\t\t\tsStart = dt.fnFormatNumber( iStart ),\n\t\t\tsEnd = dt.fnFormatNumber( iEnd ),\n\t\t\tsMax = dt.fnFormatNumber( iMax ),\n\t\t\tsTotal = dt.fnFormatNumber( iTotal ),\n\t\t\tsOut;\n\n\t\tif ( dt.fnRecordsDisplay() === 0 &&\n\t\t\t   dt.fnRecordsDisplay() == dt.fnRecordsTotal() )\n\t\t{\n\t\t\t/* Empty record set */\n\t\t\tsOut = language.sInfoEmpty+ language.sInfoPostFix;\n\t\t}\n\t\telse if ( dt.fnRecordsDisplay() === 0 )\n\t\t{\n\t\t\t/* Empty record set after filtering */\n\t\t\tsOut = language.sInfoEmpty +' '+\n\t\t\t\tlanguage.sInfoFiltered.replace('_MAX_', sMax)+\n\t\t\t\t\tlanguage.sInfoPostFix;\n\t\t}\n\t\telse if ( dt.fnRecordsDisplay() == dt.fnRecordsTotal() )\n\t\t{\n\t\t\t/* Normal record set */\n\t\t\tsOut = language.sInfo.\n\t\t\t\t\treplace('_START_', sStart).\n\t\t\t\t\treplace('_END_',   sEnd).\n\t\t\t\t\treplace('_MAX_',   sMax).\n\t\t\t\t\treplace('_TOTAL_', sTotal)+\n\t\t\t\tlanguage.sInfoPostFix;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t/* Record set after filtering */\n\t\t\tsOut = language.sInfo.\n\t\t\t\t\treplace('_START_', sStart).\n\t\t\t\t\treplace('_END_',   sEnd).\n\t\t\t\t\treplace('_MAX_',   sMax).\n\t\t\t\t\treplace('_TOTAL_', sTotal) +' '+\n\t\t\t\tlanguage.sInfoFiltered.replace(\n\t\t\t\t\t'_MAX_',\n\t\t\t\t\tdt.fnFormatNumber(dt.fnRecordsTotal())\n\t\t\t\t)+\n\t\t\t\tlanguage.sInfoPostFix;\n\t\t}\n\n\t\tvar callback = language.fnInfoCallback;\n\t\tif ( callback ) {\n\t\t\tsOut = callback.call( dt.oInstance,\n\t\t\t\tdt, iStart, iEnd, iMax, iTotal, sOut\n\t\t\t);\n\t\t}\n\n\t\tvar n = dt.aanFeatures.i;\n\t\tif ( typeof n != 'undefined' )\n\t\t{\n\t\t\tfor ( var i=0, iLen=n.length ; i<iLen ; i++ )\n\t\t\t{\n\t\t\t\t$(n[i]).html( sOut );\n\t\t\t}\n\t\t}\n\n\t\t// DT doesn't actually (yet) trigger this event, but it will in future\n\t\t$(dt.nTable).triggerHandler( 'info.dt' );\n\t},\n\n\t/**\n\t * Parse CSS height property string as number\n\t *\n\t * An attempt is made to parse the string as a number. Currently supported units are 'px',\n\t * 'vh', and 'rem'. 'em' is partially supported; it works as long as the parent element's\n\t * font size matches the body element. Zero is returned for unrecognized strings.\n\t *  @param {string} cssHeight CSS height property string\n\t *  @returns {number} height\n\t *  @private\n\t */\n\t_parseHeight: function(cssHeight) {\n\t\tvar height;\n\t\tvar matches = /^([+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))(px|em|rem|vh)$/.exec(cssHeight);\n\n\t\tif (matches === null) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar value = parseFloat(matches[1]);\n\t\tvar unit = matches[2];\n\n\t\tif ( unit === 'px' ) {\n\t\t\theight = value;\n\t\t}\n\t\telse if ( unit === 'vh' ) {\n\t\t\theight = ( value / 100 ) * $(window).height();\n\t\t}\n\t\telse if ( unit === 'rem' ) {\n\t\t\theight = value * parseFloat($(':root').css('font-size'));\n\t\t}\n\t\telse if ( unit === 'em' ) {\n\t\t\theight = value * parseFloat($('body').css('font-size'));\n\t\t}\n\n\t\treturn height ?\n\t\t\theight :\n\t\t\t0;\n\t},\n\n\t/**\n\t * Scrolling function - fired whenever the scrolling position is changed.\n\t * This method needs to use the stored values to see if the table should be\n\t * redrawn as we are moving towards the end of the information that is\n\t * currently drawn or not. If needed, then it will redraw the table based on\n\t * the new position.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t_scroll: function ()\n\t{\n\t\tvar\n\t\t\tthat = this,\n\t\t\theights = this.s.heights,\n\t\t\tiScrollTop = this.dom.scroller.scrollTop,\n\t\t\tiTopRow;\n\n\t\tif ( this.s.skip ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.s.ingnoreScroll ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( iScrollTop === this.s.lastScrollTop ) {\n\t\t\treturn;\n\t\t}\n\n\t\t/* If the table has been sorted or filtered, then we use the redraw that\n\t\t * DataTables as done, rather than performing our own\n\t\t */\n\t\tif ( this.s.dt.bFiltered || this.s.dt.bSorted ) {\n\t\t\tthis.s.lastScrollTop = 0;\n\t\t\treturn;\n\t\t}\n\n\t\t/* Update the table's information display for what is now in the viewport */\n\t\tthis._info();\n\n\t\t/* We don't want to state save on every scroll event - that's heavy\n\t\t * handed, so use a timeout to update the state saving only when the\n\t\t * scrolling has finished\n\t\t */\n\t\tclearTimeout( this.s.stateTO );\n\t\tthis.s.stateTO = setTimeout( function () {\n\t\t\tthat.s.dtApi.state.save();\n\t\t}, 250 );\n\n\t\tthis.s.scrollType = Math.abs(iScrollTop - this.s.lastScrollTop) > heights.viewport ?\n\t\t\t'jump' :\n\t\t\t'cont';\n\n\t\tthis.s.topRowFloat = this.s.scrollType === 'cont' ?\n\t\t\tthis.pixelsToRow( iScrollTop, false, false ) :\n\t\t\tthis._domain( 'physicalToVirtual', iScrollTop ) / heights.row;\n\n\t\tif ( this.s.topRowFloat < 0 ) {\n\t\t\tthis.s.topRowFloat = 0;\n\t\t}\n\n\t\t/* Check if the scroll point is outside the trigger boundary which would required\n\t\t * a DataTables redraw\n\t\t */\n\t\tif ( this.s.forceReposition || iScrollTop < this.s.redrawTop || iScrollTop > this.s.redrawBottom ) {\n\t\t\tvar preRows = Math.ceil( ((this.s.displayBuffer-1)/2) * this.s.viewportRows );\n\n\t\t\tiTopRow = parseInt(this.s.topRowFloat, 10) - preRows;\n\t\t\tthis.s.forceReposition = false;\n\n\t\t\tif ( iTopRow <= 0 ) {\n\t\t\t\t/* At the start of the table */\n\t\t\t\tiTopRow = 0;\n\t\t\t}\n\t\t\telse if ( iTopRow + this.s.dt._iDisplayLength > this.s.dt.fnRecordsDisplay() ) {\n\t\t\t\t/* At the end of the table */\n\t\t\t\tiTopRow = this.s.dt.fnRecordsDisplay() - this.s.dt._iDisplayLength;\n\t\t\t\tif ( iTopRow < 0 ) {\n\t\t\t\t\tiTopRow = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( iTopRow % 2 !== 0 ) {\n\t\t\t\t// For the row-striping classes (odd/even) we want only to start\n\t\t\t\t// on evens otherwise the stripes will change between draws and\n\t\t\t\t// look rubbish\n\t\t\t\tiTopRow++;\n\t\t\t}\n\n\t\t\t// Store calcuated value, in case the following condition is not met, but so\n\t\t\t// that the draw function will still use it.\n\t\t\tthis.s.targetTop = iTopRow;\n\n\t\t\tif ( iTopRow != this.s.dt._iDisplayStart ) {\n\t\t\t\t/* Cache the new table position for quick lookups */\n\t\t\t\tthis.s.tableTop = $(this.s.dt.nTable).offset().top;\n\t\t\t\tthis.s.tableBottom = $(this.s.dt.nTable).height() + this.s.tableTop;\n\n\t\t\t\tvar draw = function () {\n\t\t\t\t\tthat.s.dt._iDisplayStart = that.s.targetTop;\n\t\t\t\t\tthat.s.dt.oApi._fnDraw( that.s.dt );\n\t\t\t\t};\n\n\t\t\t\t/* Do the DataTables redraw based on the calculated start point - note that when\n\t\t\t\t * using server-side processing we introduce a small delay to not DoS the server...\n\t\t\t\t */\n\t\t\t\tif ( this.s.dt.oFeatures.bServerSide ) {\n\t\t\t\t\tthis.s.forceReposition = true;\n\n\t\t\t\t\tclearTimeout( this.s.drawTO );\n\t\t\t\t\tthis.s.drawTO = setTimeout( draw, this.s.serverWait );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdraw();\n\t\t\t\t}\n\n\t\t\t\tif ( this.dom.loader && ! this.s.loaderVisible ) {\n\t\t\t\t\tthis.dom.loader.css( 'display', 'block' );\n\t\t\t\t\tthis.s.loaderVisible = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.s.topRowFloat = this.pixelsToRow( iScrollTop, false, true );\n\t\t}\n\n\t\tthis.s.lastScrollTop = iScrollTop;\n\t\tthis.s.stateSaveThrottle();\n\n\t\tif ( this.s.scrollType === 'jump' && this.s.mousedown ) {\n\t\t\tthis.s.labelVisible = true;\n\t\t}\n\t\tif (this.s.labelVisible) {\n\t\t\tthis.dom.label\n\t\t\t\t.html( this.s.dt.fnFormatNumber( parseInt( this.s.topRowFloat, 10 )+1 ) )\n\t\t\t\t.css( 'top', iScrollTop + (iScrollTop * heights.labelFactor ) )\n\t\t\t\t.css( 'display', 'block' );\n\t\t}\n\t},\n\n\t/**\n\t * Force the scrolling container to have height beyond that of just the\n\t * table that has been drawn so the user can scroll the whole data set.\n\t *\n\t * Note that if the calculated required scrolling height exceeds a maximum\n\t * value (1 million pixels - hard-coded) the forcing element will be set\n\t * only to that maximum value and virtual / physical domain transforms will\n\t * be used to allow Scroller to display tables of any number of records.\n\t *  @returns {void}\n\t *  @private\n\t */\n\t_scrollForce: function ()\n\t{\n\t\tvar heights = this.s.heights;\n\t\tvar max = 1000000;\n\n\t\theights.virtual = heights.row * this.s.dt.fnRecordsDisplay();\n\t\theights.scroll = heights.virtual;\n\n\t\tif ( heights.scroll > max ) {\n\t\t\theights.scroll = max;\n\t\t}\n\n\t\t// Minimum height so there is always a row visible (the 'no rows found'\n\t\t// if reduced to zero filtering)\n\t\tthis.dom.force.style.height = heights.scroll > this.s.heights.row ?\n\t\t\theights.scroll+'px' :\n\t\t\tthis.s.heights.row+'px';\n\t}\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Statics\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n\n/**\n * Scroller default settings for initialisation\n *  @namespace\n *  @name Scroller.defaults\n *  @static\n */\nScroller.defaults = {\n\t/**\n\t * Scroller uses the boundary scaling factor to decide when to redraw the table - which it\n\t * typically does before you reach the end of the currently loaded data set (in order to\n\t * allow the data to look continuous to a user scrolling through the data). If given as 0\n\t * then the table will be redrawn whenever the viewport is scrolled, while 1 would not\n\t * redraw the table until the currently loaded data has all been shown. You will want\n\t * something in the middle - the default factor of 0.5 is usually suitable.\n\t *  @type     float\n\t *  @default  0.5\n\t *  @static\n\t */\n\tboundaryScale: 0.5,\n\n\t/**\n\t * The display buffer is what Scroller uses to calculate how many rows it should pre-fetch\n\t * for scrolling. Scroller automatically adjusts DataTables' display length to pre-fetch\n\t * rows that will be shown in \"near scrolling\" (i.e. just beyond the current display area).\n\t * The value is based upon the number of rows that can be displayed in the viewport (i.e.\n\t * a value of 1), and will apply the display range to records before before and after the\n\t * current viewport - i.e. a factor of 3 will allow Scroller to pre-fetch 1 viewport's worth\n\t * of rows before the current viewport, the current viewport's rows and 1 viewport's worth\n\t * of rows after the current viewport. Adjusting this value can be useful for ensuring\n\t * smooth scrolling based on your data set.\n\t *  @type     int\n\t *  @default  7\n\t *  @static\n\t */\n\tdisplayBuffer: 9,\n\n\t/**\n\t * Show (or not) the loading element in the background of the table. Note that you should\n\t * include the dataTables.scroller.css file for this to be displayed correctly.\n\t *  @type     boolean\n\t *  @default  false\n\t *  @static\n\t */\n\tloadingIndicator: false,\n\n\t/**\n\t * Scroller will attempt to automatically calculate the height of rows for it's internal\n\t * calculations. However the height that is used can be overridden using this parameter.\n\t *  @type     int|string\n\t *  @default  auto\n\t *  @static\n\t */\n\trowHeight: \"auto\",\n\n\t/**\n\t * When using server-side processing, Scroller will wait a small amount of time to allow\n\t * the scrolling to finish before requesting more data from the server. This prevents\n\t * you from DoSing your own server! The wait time can be configured by this parameter.\n\t *  @type     int\n\t *  @default  200\n\t *  @static\n\t */\n\tserverWait: 200\n};\n\nScroller.oDefaults = Scroller.defaults;\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Constants\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/**\n * Scroller version\n *  @type      String\n *  @default   See code\n *  @name      Scroller.version\n *  @static\n */\nScroller.version = \"2.0.3\";\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Initialisation\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n// Attach a listener to the document which listens for DataTables initialisation\n// events so we can automatically initialise\n$(document).on( 'preInit.dt.dtscroller', function (e, settings) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tvar init = settings.oInit.scroller;\n\tvar defaults = DataTable.defaults.scroller;\n\n\tif ( init || defaults ) {\n\t\tvar opts = $.extend( {}, init, defaults );\n\n\t\tif ( init !== false ) {\n\t\t\tnew Scroller( settings, opts  );\n\t\t}\n\t}\n} );\n\n\n// Attach Scroller to DataTables so it can be accessed as an 'extra'\n$.fn.dataTable.Scroller = Scroller;\n$.fn.DataTable.Scroller = Scroller;\n\n\n// DataTables 1.10 API method aliases\nvar Api = $.fn.dataTable.Api;\n\nApi.register( 'scroller()', function () {\n\treturn this;\n} );\n\n// Undocumented and deprecated - is it actually useful at all?\nApi.register( 'scroller().rowToPixels()', function ( rowIdx, intParse, virtual ) {\n\tvar ctx = this.context;\n\n\tif ( ctx.length && ctx[0].oScroller ) {\n\t\treturn ctx[0].oScroller.rowToPixels( rowIdx, intParse, virtual );\n\t}\n\t// undefined\n} );\n\n// Undocumented and deprecated - is it actually useful at all?\nApi.register( 'scroller().pixelsToRow()', function ( pixels, intParse, virtual ) {\n\tvar ctx = this.context;\n\n\tif ( ctx.length && ctx[0].oScroller ) {\n\t\treturn ctx[0].oScroller.pixelsToRow( pixels, intParse, virtual );\n\t}\n\t// undefined\n} );\n\n// `scroller().scrollToRow()` is undocumented and deprecated. Use `scroller.toPosition()\nApi.register( ['scroller().scrollToRow()', 'scroller.toPosition()'], function ( idx, ani ) {\n\tthis.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.oScroller ) {\n\t\t\tctx.oScroller.scrollToRow( idx, ani );\n\t\t}\n\t} );\n\n\treturn this;\n} );\n\nApi.register( 'row().scrollTo()', function ( ani ) {\n\tvar that = this;\n\n\tthis.iterator( 'row', function ( ctx, rowIdx ) {\n\t\tif ( ctx.oScroller ) {\n\t\t\tvar displayIdx = that\n\t\t\t\t.rows( { order: 'applied', search: 'applied' } )\n\t\t\t\t.indexes()\n\t\t\t\t.indexOf( rowIdx );\n\n\t\t\tctx.oScroller.scrollToRow( displayIdx, ani );\n\t\t}\n\t} );\n\n\treturn this;\n} );\n\nApi.register( 'scroller.measure()', function ( redraw ) {\n\tthis.iterator( 'table', function ( ctx ) {\n\t\tif ( ctx.oScroller ) {\n\t\t\tctx.oScroller.measure( redraw );\n\t\t}\n\t} );\n\n\treturn this;\n} );\n\nApi.register( 'scroller.page()', function() {\n\tvar ctx = this.context;\n\n\tif ( ctx.length && ctx[0].oScroller ) {\n\t\treturn ctx[0].oScroller.pageInfo();\n\t}\n\t// undefined\n} );\n\nreturn Scroller;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-scroller/js/scroller.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for Scroller\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-scroller'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.Scroller ) {\n\t\t\t\trequire('datatables.net-scroller')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchbuilder/css/searchBuilder.bootstrap4.css",
    "content": "div.dt-datetime {\n  position: absolute;\n  background-color: white;\n  z-index: 2050;\n  border: 1px solid #ccc;\n  box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.5);\n  padding: 0 20px 6px 20px;\n  width: 275px;\n}\ndiv.dt-datetime.inline {\n  position: relative;\n  box-shadow: none;\n}\ndiv.dt-datetime div.dt-datetime-title {\n  text-align: center;\n  padding: 5px 0px 3px;\n}\ndiv.dt-datetime table {\n  border-spacing: 0;\n  margin: 12px 0;\n  width: 100%;\n}\ndiv.dt-datetime table.dt-datetime-table-nospace {\n  margin-top: -12px;\n}\ndiv.dt-datetime table th {\n  font-size: 0.8em;\n  color: #777;\n  font-weight: normal;\n  width: 14.285714286%;\n  padding: 0 0 4px 0;\n  text-align: center;\n}\ndiv.dt-datetime table td {\n  font-size: 0.9em;\n  color: #444;\n  padding: 0;\n}\ndiv.dt-datetime table td.selectable {\n  text-align: center;\n  background: #f5f5f5;\n}\ndiv.dt-datetime table td.selectable.disabled {\n  color: #aaa;\n  background: white;\n}\ndiv.dt-datetime table td.selectable.disabled button:hover {\n  color: #aaa;\n  background: white;\n}\ndiv.dt-datetime table td.selectable.now {\n  background-color: #ddd;\n}\ndiv.dt-datetime table td.selectable.now button {\n  font-weight: bold;\n}\ndiv.dt-datetime table td.selectable.selected button {\n  background: #4E6CA3;\n  color: white;\n  border-radius: 2px;\n}\ndiv.dt-datetime table td.selectable button:hover {\n  background: #ff8000;\n  color: white;\n  border-radius: 2px;\n}\ndiv.dt-datetime table td.dt-datetime-week {\n  font-size: 0.7em;\n}\ndiv.dt-datetime table button {\n  width: 100%;\n  box-sizing: border-box;\n  border: none;\n  background: transparent;\n  font-size: inherit;\n  color: inherit;\n  text-align: center;\n  padding: 4px 0;\n  cursor: pointer;\n  margin: 0;\n}\ndiv.dt-datetime table button span {\n  display: inline-block;\n  min-width: 14px;\n  text-align: right;\n}\ndiv.dt-datetime table.weekNumber th {\n  width: 12.5%;\n}\ndiv.dt-datetime div.dt-datetime-calendar table {\n  margin-top: 0;\n}\ndiv.dt-datetime div.dt-datetime-label {\n  position: relative;\n  display: inline-block;\n  height: 30px;\n  padding: 5px 6px;\n  border: 1px solid transparent;\n  box-sizing: border-box;\n  cursor: pointer;\n}\ndiv.dt-datetime div.dt-datetime-label:hover {\n  border: 1px solid #ddd;\n  border-radius: 2px;\n  background-color: #f5f5f5;\n}\ndiv.dt-datetime div.dt-datetime-label select {\n  position: absolute;\n  top: 6px;\n  left: 0;\n  cursor: pointer;\n  opacity: 0;\n}\ndiv.dt-datetime.horizontal {\n  width: 550px;\n}\ndiv.dt-datetime.horizontal div.dt-datetime-date,\ndiv.dt-datetime.horizontal div.dt-datetime-time {\n  width: 48%;\n}\ndiv.dt-datetime.horizontal div.dt-datetime-time {\n  margin-left: 4%;\n}\ndiv.dt-datetime div.dt-datetime-date {\n  position: relative;\n  float: left;\n  width: 100%;\n}\ndiv.dt-datetime div.dt-datetime-time {\n  position: relative;\n  float: left;\n  width: 100%;\n  text-align: center;\n}\ndiv.dt-datetime div.dt-datetime-time > span {\n  vertical-align: middle;\n}\ndiv.dt-datetime div.dt-datetime-time th {\n  text-align: left;\n}\ndiv.dt-datetime div.dt-datetime-time div.dt-datetime-timeblock {\n  display: inline-block;\n  vertical-align: middle;\n}\ndiv.dt-datetime div.dt-datetime-iconLeft,\ndiv.dt-datetime div.dt-datetime-iconRight,\ndiv.dt-datetime div.dt-datetime-iconUp,\ndiv.dt-datetime div.dt-datetime-iconDown {\n  width: 30px;\n  height: 30px;\n  background-position: center;\n  background-repeat: no-repeat;\n  opacity: 0.3;\n  overflow: hidden;\n  box-sizing: border-box;\n}\ndiv.dt-datetime div.dt-datetime-iconLeft:hover,\ndiv.dt-datetime div.dt-datetime-iconRight:hover,\ndiv.dt-datetime div.dt-datetime-iconUp:hover,\ndiv.dt-datetime div.dt-datetime-iconDown:hover {\n  border: 1px solid #ccc;\n  border-radius: 2px;\n  background-color: #f0f0f0;\n  opacity: 0.6;\n}\ndiv.dt-datetime div.dt-datetime-iconLeft button,\ndiv.dt-datetime div.dt-datetime-iconRight button,\ndiv.dt-datetime div.dt-datetime-iconUp button,\ndiv.dt-datetime div.dt-datetime-iconDown button {\n  border: none;\n  background: transparent;\n  text-indent: 30px;\n  height: 100%;\n  width: 100%;\n  cursor: pointer;\n}\ndiv.dt-datetime div.dt-datetime-iconLeft {\n  position: absolute;\n  top: 5px;\n  left: 5px;\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\");\n}\ndiv.dt-datetime div.dt-datetime-iconRight {\n  position: absolute;\n  top: 5px;\n  right: 5px;\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\");\n}\ndiv.dt-datetime div.dt-datetime-iconUp {\n  height: 20px;\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAALCAMAAABf9c24AAAAFVBMVEX///99fX1+fn57e3t6enoAAAAAAAC73bqPAAAABnRSTlMAYmJkZt92bnysAAAAL0lEQVR4AWOgJmBhxCvLyopHnpmVjY2VCadeoCxIHrcsWJ4RlyxCHlMWCTBRJxwAjrIBDMWSiM0AAAAASUVORK5CYII=\");\n}\ndiv.dt-datetime div.dt-datetime-iconDown {\n  height: 20px;\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAALCAMAAABf9c24AAAAFVBMVEX///99fX1+fn57e3t6enoAAAAAAAC73bqPAAAABnRSTlMAYmJkZt92bnysAAAAMElEQVR4AWOgDmBiRQIsmPKMrGxQgJDFlEfIYpoPk8Utz8qM232MYFfhkQfKUg8AANefAQxecJ58AAAAAElFTkSuQmCC\");\n}\n\ndiv.dt-datetime-error {\n  clear: both;\n  padding: 0 1em;\n  max-width: 240px;\n  font-size: 11px;\n  line-height: 1.25em;\n  text-align: center;\n  color: #b11f1f;\n}\n\ndiv.dt-button-collection {\n  overflow: visible !important;\n}\n\n.dtsb-greyscale {\n  border: 1px solid #cecece !important;\n}\n\ndiv.dtsb-logicContainer .dtsb-greyscale {\n  border: none !important;\n}\n\ndiv.dtsb-searchBuilder {\n  justify-content: space-evenly;\n  cursor: default;\n  margin-bottom: 1em;\n  text-align: left;\n}\ndiv.dtsb-searchBuilder button.dtsb-button,\ndiv.dtsb-searchBuilder select {\n  font-size: 1em;\n}\ndiv.dtsb-searchBuilder div.dtsb-titleRow {\n  justify-content: space-evenly;\n  margin-bottom: 0.5em;\n}\ndiv.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title {\n  display: inline-block;\n  padding-top: 6px;\n}\ndiv.dtsb-searchBuilder div.dtsb-titleRow button.dtsb-clearAll {\n  float: right;\n  margin-bottom: 0.333em;\n}\ndiv.dtsb-searchBuilder div.dtsb-vertical .dtsb-value, div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data, div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition {\n  display: block;\n}\ndiv.dtsb-searchBuilder div.dtsb-group {\n  position: relative;\n  clear: both;\n  margin-bottom: 0.8em;\n}\ndiv.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup {\n  margin: 2px;\n  text-align: center;\n  padding: 0;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {\n  -webkit-transform: rotate(90deg);\n  -moz-transform: rotate(90deg);\n  -o-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n  position: absolute;\n  margin-top: 0.8em;\n  margin-right: 0.8em;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {\n  margin-bottom: 0.8em;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {\n  padding: 0.4em;\n  margin-right: 0.8em;\n  max-width: 20em;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown option.dtsb-notItalic,\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic {\n  font-style: normal;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic {\n  font-style: italic;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {\n  float: right;\n  display: inline-block;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left {\n  margin-right: 0.8em;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete:last-child, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right:last-child, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left:last-child {\n  margin-right: 0;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria span.dtsp-joiner {\n  margin-right: 0.8em;\n}\n\ndiv.dtsb-searchBuilder div.dtsb-titleRow {\n  height: 40px;\n}\ndiv.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title {\n  padding-top: 10px;\n}\ndiv.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup {\n  margin-right: 8px;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria .form-control {\n  width: auto;\n  display: inline-block;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition {\n  border-color: #28a745;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data {\n  border-color: #dc3545;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value {\n  border-color: #007bff;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {\n  border-radius: 4px;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-content: flex-start;\n  align-items: flex-start;\n  margin-top: 10px;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic {\n  border: none;\n  border-radius: 0px;\n  flex-grow: 1;\n  flex-shrink: 0;\n  flex-basis: 40px;\n  margin: 0px;\n}\ndiv.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup {\n  border: none;\n  border-radius: 0px;\n  width: 30px;\n  margin: 0px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js",
    "content": "(function () {\n\t'use strict';\n\n\t/*! DateTime picker for DataTables.net v1.0.1\n\t *\n\t * ©2020 SpryMedia Ltd, all rights reserved.\n\t * License: MIT datatables.net/license/mit\n\t */\n\n\t/**\n\t * @summary     DateTime picker for DataTables.net\n\t * @version     1.0.1\n\t * @file        dataTables.dateTime.js\n\t * @author      SpryMedia Ltd\n\t * @contact     www.datatables.net/contact\n\t */\n\t(function( factory ){\n\t\tif ( typeof define === 'function' && define.amd ) {\n\t\t\t// AMD\n\t\t\tdefine( ['jquery'], function ( $ ) {\n\t\t\t\treturn factory( $, window, document );\n\t\t\t} );\n\t\t}\n\t\telse if ( typeof exports === 'object' ) {\n\t\t\t// CommonJS\n\t\t\tmodule.exports = function (root, $) {\n\t\t\t\tif ( ! root ) {\n\t\t\t\t\troot = window;\n\t\t\t\t}\n\n\t\t\t\treturn factory( $, root, root.document );\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\t// Browser\n\t\t\tfactory( jQuery, window, document );\n\t\t}\n\t}(function( $, window, document, undefined$1 ) {\n\n\t// Support libraries which support a Moment like API\n\tvar dateLib = window.moment\n\t\t? window.moment\n\t\t: window.dayjs\n\t\t\t? window.dayjs\n\t\t\t: null;\n\n\t/*\n\t * This file provides a DateTime GUI picker (calendar and time input). Only the\n\t * format YYYY-MM-DD is supported without additional software, but the end user\n\t * experience can be greatly enhanced by including the momentjs or dayjs library\n\t * which provide date / time parsing and formatting options.\n\t *\n\t * This functionality is required because the HTML5 date and datetime input\n\t * types are not widely supported in desktop browsers.\n\t *\n\t * Constructed by using:\n\t *\n\t *     new DateTime( input, opts )\n\t *\n\t * where `input` is the HTML input element to use and `opts` is an object of\n\t * options based on the `DateTime.defaults` object.\n\t */\n\tvar DateTime = function ( input, opts ) {\n\t\tthis.c = $.extend( true, {}, DateTime.defaults, opts );\n\t\tvar classPrefix = this.c.classPrefix;\n\t\tvar i18n = this.c.i18n;\n\n\t\t// Only IS8601 dates are supported without moment pr dayjs\n\t\tif ( ! dateLib && this.c.format !== 'YYYY-MM-DD' ) {\n\t\t\tthrow \"DateTime: Without momentjs or dayjs only the format 'YYYY-MM-DD' can be used\";\n\t\t}\n\n\t\t// Min and max need to be `Date` objects in the config\n\t\tif (typeof this.c.minDate === 'string') {\n\t\t\tthis.c.minDate = new Date(this.c.minDate);\n\t\t}\n\t\tif (typeof this.c.maxDate === 'string') {\n\t\t\tthis.c.maxDate = new Date(this.c.maxDate);\n\t\t}\n\n\t\t// DOM structure\n\t\tvar structure = $(\n\t\t\t'<div class=\"'+classPrefix+'\">'+\n\t\t\t\t'<div class=\"'+classPrefix+'-date\">'+\n\t\t\t\t\t'<div class=\"'+classPrefix+'-title\">'+\n\t\t\t\t\t\t'<div class=\"'+classPrefix+'-iconLeft\">'+\n\t\t\t\t\t\t\t'<button>'+i18n.previous+'</button>'+\n\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'<div class=\"'+classPrefix+'-iconRight\">'+\n\t\t\t\t\t\t\t'<button>'+i18n.next+'</button>'+\n\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'<div class=\"'+classPrefix+'-label\">'+\n\t\t\t\t\t\t\t'<span></span>'+\n\t\t\t\t\t\t\t'<select class=\"'+classPrefix+'-month\"></select>'+\n\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'<div class=\"'+classPrefix+'-label\">'+\n\t\t\t\t\t\t\t'<span></span>'+\n\t\t\t\t\t\t\t'<select class=\"'+classPrefix+'-year\"></select>'+\n\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t'</div>'+\n\t\t\t\t\t'<div class=\"'+classPrefix+'-calendar\"></div>'+\n\t\t\t\t'</div>'+\n\t\t\t\t'<div class=\"'+classPrefix+'-time\">'+\n\t\t\t\t\t'<div class=\"'+classPrefix+'-hours\"></div>'+\n\t\t\t\t\t'<div class=\"'+classPrefix+'-minutes\"></div>'+\n\t\t\t\t\t'<div class=\"'+classPrefix+'-seconds\"></div>'+\n\t\t\t\t'</div>'+\n\t\t\t\t'<div class=\"'+classPrefix+'-error\"></div>'+\n\t\t\t'</div>'\n\t\t);\n\n\t\tthis.dom = {\n\t\t\tcontainer: structure,\n\t\t\tdate:      structure.find( '.'+classPrefix+'-date' ),\n\t\t\ttitle:     structure.find( '.'+classPrefix+'-title' ),\n\t\t\tcalendar:  structure.find( '.'+classPrefix+'-calendar' ),\n\t\t\ttime:      structure.find( '.'+classPrefix+'-time' ),\n\t\t\terror:     structure.find( '.'+classPrefix+'-error' ),\n\t\t\tinput:     $(input)\n\t\t};\n\n\t\tthis.s = {\n\t\t\t/** @type {Date} Date value that the picker has currently selected */\n\t\t\td: null,\n\n\t\t\t/** @type {Date} Date of the calendar - might not match the value */\n\t\t\tdisplay: null,\n\n\t\t\t/** @type {number} Used to select minutes in a range where the range base is itself unavailable */\n\t\t\tminutesRange: null,\n\n\t\t\t/** @type {number} Used to select minutes in a range where the range base is itself unavailable */\n\t\t\tsecondsRange: null,\n\n\t\t\t/** @type {String} Unique namespace string for this instance */\n\t\t\tnamespace: 'dateime-'+(DateTime._instance++),\n\n\t\t\t/** @type {Object} Parts of the picker that should be shown */\n\t\t\tparts: {\n\t\t\t\tdate:    this.c.format.match( /[YMD]|L(?!T)|l/ ) !== null,\n\t\t\t\ttime:    this.c.format.match( /[Hhm]|LT|LTS/ ) !== null,\n\t\t\t\tseconds: this.c.format.indexOf( 's' )   !== -1,\n\t\t\t\thours12: this.c.format.match( /[haA]/ ) !== null\n\t\t\t}\n\t\t};\n\n\t\tthis.dom.container\n\t\t\t.append( this.dom.date )\n\t\t\t.append( this.dom.time )\n\t\t\t.append( this.dom.error );\n\n\t\tthis.dom.date\n\t\t\t.append( this.dom.title )\n\t\t\t.append( this.dom.calendar );\n\n\t\tthis._constructor();\n\t};\n\n\t$.extend( DateTime.prototype, {\n\t\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t\t * Public\n\t\t */\n\t\t\n\t\t/**\n\t\t * Destroy the control\n\t\t */\n\t\tdestroy: function () {\n\t\t\tthis._hide(true);\n\t\t\tthis.dom.container.off().empty();\n\t\t\tthis.dom.input.off('.datetime');\n\t\t},\n\n\t\terrorMsg: function ( msg ) {\n\t\t\tvar error = this.dom.error;\n\n\t\t\tif ( msg ) {\n\t\t\t\terror.html( msg );\n\t\t\t}\n\t\t\telse {\n\t\t\t\terror.empty();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis._hide();\n\n\t\t\treturn this;\n\t\t},\n\n\t\tmax: function ( date ) {\n\t\t\tthis.c.maxDate = typeof date === 'string'\n\t\t\t\t? new Date(date)\n\t\t\t\t: date;\n\n\t\t\tthis._optionsTitle();\n\t\t\tthis._setCalander();\n\n\t\t\treturn this;\n\t\t},\n\n\t\tmin: function ( date ) {\n\t\t\tthis.c.minDate = typeof date === 'string'\n\t\t\t\t? new Date(date)\n\t\t\t\t: date;\n\n\t\t\tthis._optionsTitle();\n\t\t\tthis._setCalander();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Check if an element belongs to this control\n\t\t *\n\t\t * @param  {node} node Element to check\n\t\t * @return {boolean}   true if owned by this control, false otherwise\n\t\t */\n\t\towns: function ( node ) {\n\t\t\treturn $(node).parents().filter( this.dom.container ).length > 0;\n\t\t},\n\n\t\t/**\n\t\t * Get / set the value\n\t\t *\n\t\t * @param  {string|Date} set   Value to set\n\t\t * @param  {boolean} [write=true] Flag to indicate if the formatted value\n\t\t *   should be written into the input element\n\t\t */\n\t\tval: function ( set, write ) {\n\t\t\tif ( set === undefined$1 ) {\n\t\t\t\treturn this.s.d;\n\t\t\t}\n\n\t\t\tif ( set instanceof Date ) {\n\t\t\t\tthis.s.d = this._dateToUtc( set );\n\t\t\t}\n\t\t\telse if ( set === null || set === '' ) {\n\t\t\t\tthis.s.d = null;\n\t\t\t}\n\t\t\telse if ( set === '--now' ) {\n\t\t\t\tthis.s.d = new Date();\n\t\t\t}\n\t\t\telse if ( typeof set === 'string' ) {\n\t\t\t\tif ( dateLib ) {\n\t\t\t\t\t// Use moment or dayjs if possible (even for ISO8601 strings, since it\n\t\t\t\t\t// will correctly handle 0000-00-00 and the like)\n\t\t\t\t\tvar m = dateLib.utc( set, this.c.format, this.c.locale, this.c.strict );\n\t\t\t\t\tthis.s.d = m.isValid() ? m.toDate() : null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Else must be using ISO8601 without a date library (constructor would\n\t\t\t\t\t// have thrown an error otherwise)\n\t\t\t\t\tvar match = set.match(/(\\d{4})\\-(\\d{2})\\-(\\d{2})/ );\n\t\t\t\t\tthis.s.d = match ?\n\t\t\t\t\t\tnew Date( Date.UTC(match[1], match[2]-1, match[3]) ) :\n\t\t\t\t\t\tnull;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( write || write === undefined$1 ) {\n\t\t\t\tif ( this.s.d ) {\n\t\t\t\t\tthis._writeOutput();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// The input value was not valid...\n\t\t\t\t\tthis.dom.input.val( set );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We need a date to be able to display the calendar at all\n\t\t\tif ( ! this.s.d ) {\n\t\t\t\tthis.s.d = this._dateToUtc( new Date() );\n\t\t\t}\n\n\t\t\tthis.s.display = new Date( this.s.d.toString() );\n\n\t\t\t// Set the day of the month to be 1 so changing between months doesn't\n\t        // run into issues when going from day 31 to 28 (for example)\n\t\t\tthis.s.display.setUTCDate( 1 );\n\n\t\t\t// Update the display elements for the new value\n\t\t\tthis._setTitle();\n\t\t\tthis._setCalander();\n\t\t\tthis._setTime();\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t\t * Constructor\n\t\t */\n\t\t\n\t\t/**\n\t\t * Build the control and assign initial event handlers\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_constructor: function () {\n\t\t\tvar that = this;\n\t\t\tvar classPrefix = this.c.classPrefix;\n\t\t\tvar onChange = function () {\n\t\t\t\tthat.c.onChange.call( that, that.dom.input.val(), that.s.d, that.dom.input );\n\t\t\t};\n\n\t\t\tif ( ! this.s.parts.date ) {\n\t\t\t\tthis.dom.date.css( 'display', 'none' );\n\t\t\t}\n\n\t\t\tif ( ! this.s.parts.time ) {\n\t\t\t\tthis.dom.time.css( 'display', 'none' );\n\t\t\t}\n\n\t\t\tif ( ! this.s.parts.seconds ) {\n\t\t\t\tthis.dom.time.children('div.'+classPrefix+'-seconds').remove();\n\t\t\t\tthis.dom.time.children('span').eq(1).remove();\n\t\t\t}\n\n\t\t\t// Render the options\n\t\t\tthis._optionsTitle();\n\n\t\t\twindow.allan = this;\n\n\t\t\t// When attached to a hidden input, we always show the input picker, and\n\t\t\t// do so inline\n\t\t\tif (this.dom.input.attr('type') === 'hidden') {\n\t\t\t\tthis.dom.container.addClass('inline');\n\t\t\t\tthis.c.attachTo = 'input';\n\n\t\t\t\tthis.val( this.dom.input.val(), false );\n\t\t\t\tthis._show();\n\t\t\t}\n\n\t\t\t// Trigger the display of the widget when clicking or focusing on the\n\t\t\t// input element\n\t\t\tthis.dom.input\n\t\t\t\t.attr('autocomplete', 'off')\n\t\t\t\t.on('focus.datetime click.datetime', function () {\n\t\t\t\t\t// If already visible - don't do anything\n\t\t\t\t\tif ( that.dom.container.is(':visible') || that.dom.input.is(':disabled') ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// In case the value has changed by text\n\t\t\t\t\tthat.val( that.dom.input.val(), false );\n\n\t\t\t\t\tthat._show();\n\t\t\t\t} )\n\t\t\t\t.on('keyup.datetime', function () {\n\t\t\t\t\t// Update the calendar's displayed value as the user types\n\t\t\t\t\tif ( that.dom.container.is(':visible') ) {\n\t\t\t\t\t\tthat.val( that.dom.input.val(), false );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t// Main event handlers for input in the widget\n\t\t\tthis.dom.container\n\t\t\t\t.on( 'change', 'select', function () {\n\t\t\t\t\tvar select = $(this);\n\t\t\t\t\tvar val = select.val();\n\n\t\t\t\t\tif ( select.hasClass(classPrefix+'-month') ) {\n\t\t\t\t\t\t// Month select\n\t\t\t\t\t\tthat._correctMonth( that.s.display, val );\n\t\t\t\t\t\tthat._setTitle();\n\t\t\t\t\t\tthat._setCalander();\n\t\t\t\t\t}\n\t\t\t\t\telse if ( select.hasClass(classPrefix+'-year') ) {\n\t\t\t\t\t\t// Year select\n\t\t\t\t\t\tthat.s.display.setUTCFullYear( val );\n\t\t\t\t\t\tthat._setTitle();\n\t\t\t\t\t\tthat._setCalander();\n\t\t\t\t\t}\n\t\t\t\t\telse if ( select.hasClass(classPrefix+'-hours') || select.hasClass(classPrefix+'-ampm') ) {\n\t\t\t\t\t\t// Hours - need to take account of AM/PM input if present\n\t\t\t\t\t\tif ( that.s.parts.hours12 ) {\n\t\t\t\t\t\t\tvar hours = $(that.dom.container).find('.'+classPrefix+'-hours').val() * 1;\n\t\t\t\t\t\t\tvar pm = $(that.dom.container).find('.'+classPrefix+'-ampm').val() === 'pm';\n\n\t\t\t\t\t\t\tthat.s.d.setUTCHours( hours === 12 && !pm ?\n\t\t\t\t\t\t\t\t0 :\n\t\t\t\t\t\t\t\tpm && hours !== 12 ?\n\t\t\t\t\t\t\t\t\thours + 12 :\n\t\t\t\t\t\t\t\t\thours\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthat.s.d.setUTCHours( val );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\tthat._writeOutput( true );\n\n\t\t\t\t\t\tonChange();\n\t\t\t\t\t}\n\t\t\t\t\telse if ( select.hasClass(classPrefix+'-minutes') ) {\n\t\t\t\t\t\t// Minutes select\n\t\t\t\t\t\tthat.s.d.setUTCMinutes( val );\n\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\tthat._writeOutput( true );\n\n\t\t\t\t\t\tonChange();\n\t\t\t\t\t}\n\t\t\t\t\telse if ( select.hasClass(classPrefix+'-seconds') ) {\n\t\t\t\t\t\t// Seconds select\n\t\t\t\t\t\tthat.s.d.setSeconds( val );\n\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\tthat._writeOutput( true );\n\n\t\t\t\t\t\tonChange();\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.dom.input.focus();\n\t\t\t\t\tthat._position();\n\t\t\t\t} )\n\t\t\t\t.on( 'click', function (e) {\n\t\t\t\t\tvar d = that.s.d;\n\t\t\t\t\tvar nodeName = e.target.nodeName.toLowerCase();\n\t\t\t\t\tvar target = nodeName === 'span' ?\n\t\t\t\t\t\te.target.parentNode :\n\t\t\t\t\t\te.target;\n\n\t\t\t\t\tnodeName = target.nodeName.toLowerCase();\n\n\t\t\t\t\tif ( nodeName === 'select' ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tif ( nodeName === 'button' ) {\n\t\t\t\t\t\tvar button = $(target);\n\t\t\t\t\t\tvar parent = button.parent();\n\n\t\t\t\t\t\tif ( parent.hasClass('disabled') && ! parent.hasClass('range') ) {\n\t\t\t\t\t\t\tbutton.blur();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( parent.hasClass(classPrefix+'-iconLeft') ) {\n\t\t\t\t\t\t\t// Previous month\n\t\t\t\t\t\t\tthat.s.display.setUTCMonth( that.s.display.getUTCMonth()-1 );\n\t\t\t\t\t\t\tthat._setTitle();\n\t\t\t\t\t\t\tthat._setCalander();\n\n\t\t\t\t\t\t\tthat.dom.input.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ( parent.hasClass(classPrefix+'-iconRight') ) {\n\t\t\t\t\t\t\t// Next month\n\t\t\t\t\t\t\tthat._correctMonth( that.s.display, that.s.display.getUTCMonth()+1 );\n\t\t\t\t\t\t\tthat._setTitle();\n\t\t\t\t\t\t\tthat._setCalander();\n\n\t\t\t\t\t\t\tthat.dom.input.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ( button.parents('.'+classPrefix+'-time').length ) {\n\t\t\t\t\t\t\tvar val = button.data('value');\n\t\t\t\t\t\t\tvar unit = button.data('unit');\n\n\t\t\t\t\t\t\tif ( unit === 'minutes' ) {\n\t\t\t\t\t\t\t\tif ( parent.hasClass('disabled') && parent.hasClass('range') ) {\n\t\t\t\t\t\t\t\t\tthat.s.minutesRange = val;\n\t\t\t\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthat.s.minutesRange = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( unit === 'seconds' ) {\n\t\t\t\t\t\t\t\tif ( parent.hasClass('disabled') && parent.hasClass('range') ) {\n\t\t\t\t\t\t\t\t\tthat.s.secondsRange = val;\n\t\t\t\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthat.s.secondsRange = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Specific to hours for 12h clock\n\t\t\t\t\t\t\tif ( val === 'am' ) {\n\t\t\t\t\t\t\t\tif ( d.getUTCHours() >= 12 ) {\n\t\t\t\t\t\t\t\t\tval = d.getUTCHours() - 12;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if ( val === 'pm' ) {\n\t\t\t\t\t\t\t\tif ( d.getUTCHours() < 12 ) {\n\t\t\t\t\t\t\t\t\tval = d.getUTCHours() + 12;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar set = unit === 'hours' ?\n\t\t\t\t\t\t\t\t'setUTCHours' :\n\t\t\t\t\t\t\t\tunit === 'minutes' ?\n\t\t\t\t\t\t\t\t\t'setUTCMinutes' :\n\t\t\t\t\t\t\t\t\t'setSeconds';\n\n\t\t\t\t\t\t\td[set]( val );\n\t\t\t\t\t\t\tthat._setTime();\n\t\t\t\t\t\t\tthat._writeOutput( true );\n\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Calendar click\n\t\t\t\t\t\t\tif ( ! d ) {\n\t\t\t\t\t\t\t\td = that._dateToUtc( new Date() );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Can't be certain that the current day will exist in\n\t\t\t\t\t\t\t// the new month, and likewise don't know that the\n\t\t\t\t\t\t\t// new day will exist in the old month, But 1 always\n\t\t\t\t\t\t\t// does, so we can change the month without worry of a\n\t\t\t\t\t\t\t// recalculation being done automatically by `Date`\n\t\t\t\t\t\t\td.setUTCDate( 1 );\n\t\t\t\t\t\t\td.setUTCFullYear( button.data('year') );\n\t\t\t\t\t\t\td.setUTCMonth( button.data('month') );\n\t\t\t\t\t\t\td.setUTCDate( button.data('day') );\n\n\t\t\t\t\t\t\tthat._writeOutput( true );\n\n\t\t\t\t\t\t\t// Don't hide if there is a time picker, since we want to\n\t\t\t\t\t\t\t// be able to select a time as well.\n\t\t\t\t\t\t\tif ( ! that.s.parts.time ) {\n\t\t\t\t\t\t\t\t// This is annoying but IE has some kind of async\n\t\t\t\t\t\t\t\t// behaviour with focus and the focus from the above\n\t\t\t\t\t\t\t\t// write would occur after this hide - resulting in the\n\t\t\t\t\t\t\t\t// calendar opening immediately\n\t\t\t\t\t\t\t\tsetTimeout( function () {\n\t\t\t\t\t\t\t\t\tthat._hide();\n\t\t\t\t\t\t\t\t}, 10 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthat._setCalander();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Click anywhere else in the widget - return focus to the\n\t\t\t\t\t\t// input element\n\t\t\t\t\t\tthat.dom.input.focus();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\n\n\t\t/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\t\t * Private\n\t\t */\n\n\t\t/**\n\t\t * Compare the date part only of two dates - this is made super easy by the\n\t\t * toDateString method!\n\t\t *\n\t\t * @param  {Date} a Date 1\n\t\t * @param  {Date} b Date 2\n\t\t * @private\n\t\t */\n\t\t_compareDates: function( a, b ) {\n\t\t\t// Can't use toDateString as that converts to local time\n\t\t\treturn this._dateToUtcString(a) === this._dateToUtcString(b);\n\t\t},\n\n\t\t/**\n\t\t * When changing month, take account of the fact that some months don't have\n\t\t * the same number of days. For example going from January to February you\n\t\t * can have the 31st of Jan selected and just add a month since the date\n\t\t * would still be 31, and thus drop you into March.\n\t\t *\n\t\t * @param  {Date} date  Date - will be modified\n\t\t * @param  {integer} month Month to set\n\t\t * @private\n\t\t */\n\t\t_correctMonth: function ( date, month ) {\n\t\t\tvar days = this._daysInMonth( date.getUTCFullYear(), month );\n\t\t\tvar correctDays = date.getUTCDate() > days;\n\n\t\t\tdate.setUTCMonth( month );\n\n\t\t\tif ( correctDays ) {\n\t\t\t\tdate.setUTCDate( days );\n\t\t\t\tdate.setUTCMonth( month );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the number of days in a method. Based on\n\t\t * http://stackoverflow.com/a/4881951 by Matti Virkkunen\n\t\t *\n\t\t * @param  {integer} year  Year\n\t\t * @param  {integer} month Month (starting at 0)\n\t\t * @private\n\t\t */\n\t\t_daysInMonth: function ( year, month ) {\n\t\t\t// \n\t\t\tvar isLeap = ((year % 4) === 0 && ((year % 100) !== 0 || (year % 400) === 0));\n\t\t\tvar months = [31, (isLeap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n\t\t\treturn months[month];\n\t\t},\n\n\t\t/**\n\t\t * Create a new date object which has the UTC values set to the local time.\n\t\t * This allows the local time to be used directly for the library which\n\t\t * always bases its calculations and display on UTC.\n\t\t *\n\t\t * @param  {Date} s Date to \"convert\"\n\t\t * @return {Date}   Shifted date\n\t\t */\n\t\t_dateToUtc: function ( s ) {\n\t\t\treturn new Date( Date.UTC(\n\t\t\t\ts.getFullYear(), s.getMonth(), s.getDate(),\n\t\t\t\ts.getHours(), s.getMinutes(), s.getSeconds()\n\t\t\t) );\n\t\t},\n\n\t\t/**\n\t\t * Create a UTC ISO8601 date part from a date object\n\t\t *\n\t\t * @param  {Date} d Date to \"convert\"\n\t\t * @return {string} ISO formatted date\n\t\t */\n\t\t_dateToUtcString: function ( d ) {\n\t\t\treturn d.getUTCFullYear()+'-'+\n\t\t\t\tthis._pad(d.getUTCMonth()+1)+'-'+\n\t\t\t\tthis._pad(d.getUTCDate());\n\t\t},\n\n\t\t/**\n\t\t * Hide the control and remove events related to its display\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_hide: function (destroy) {\n\t\t\tif (! destroy && this.dom.input.attr('type') === 'hidden') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar namespace = this.s.namespace;\n\n\t\t\tthis.dom.container.detach();\n\n\t\t\t$(window).off( '.'+namespace );\n\t\t\t$(document).off( 'keydown.'+namespace );\n\t\t\t$('div.dataTables_scrollBody').off( 'scroll.'+namespace );\n\t\t\t$('div.DTE_Body_Content').off( 'scroll.'+namespace );\n\t\t\t$('body').off( 'click.'+namespace );\n\t\t},\n\n\t\t/**\n\t\t * Convert a 24 hour value to a 12 hour value\n\t\t *\n\t\t * @param  {integer} val 24 hour value\n\t\t * @return {integer}     12 hour value\n\t\t * @private\n\t\t */\n\t\t_hours24To12: function ( val ) {\n\t\t\treturn val === 0 ?\n\t\t\t\t12 :\n\t\t\t\tval > 12 ?\n\t\t\t\t\tval - 12 :\n\t\t\t\t\tval;\n\t\t},\n\n\t\t/**\n\t\t * Generate the HTML for a single day in the calendar - this is basically\n\t\t * and HTML cell with a button that has data attributes so we know what was\n\t\t * clicked on (if it is clicked on) and a bunch of classes for styling.\n\t\t *\n\t\t * @param  {object} day Day object from the `_htmlMonth` method\n\t\t * @return {string}     HTML cell\n\t\t */\n\t\t_htmlDay: function( day )\n\t\t{\n\t\t\tif ( day.empty ) {\n\t\t\t\treturn '<td class=\"empty\"></td>';\n\t\t\t}\n\n\t\t\tvar classes = [ 'selectable' ];\n\t\t\tvar classPrefix = this.c.classPrefix;\n\n\t\t\tif ( day.disabled ) {\n\t\t\t\tclasses.push( 'disabled' );\n\t\t\t}\n\n\t\t\tif ( day.today ) {\n\t\t\t\tclasses.push( 'now' );\n\t\t\t}\n\n\t\t\tif ( day.selected ) {\n\t\t\t\tclasses.push( 'selected' );\n\t\t\t}\n\n\t\t\treturn '<td data-day=\"' + day.day + '\" class=\"' + classes.join(' ') + '\">' +\n\t\t\t\t\t'<button class=\"'+classPrefix+'-button '+classPrefix+'-day\" type=\"button\" ' +'data-year=\"' + day.year + '\" data-month=\"' + day.month + '\" data-day=\"' + day.day + '\">' +\n\t\t\t\t\t\t'<span>'+day.day+'</span>'+\n\t\t\t\t\t'</button>' +\n\t\t\t\t'</td>';\n\t\t},\n\n\n\t\t/**\n\t\t * Create the HTML for a month to be displayed in the calendar table.\n\t\t * \n\t\t * Based upon the logic used in Pikaday - MIT licensed\n\t\t * Copyright (c) 2014 David Bushell\n\t\t * https://github.com/dbushell/Pikaday\n\t\t *\n\t\t * @param  {integer} year  Year\n\t\t * @param  {integer} month Month (starting at 0)\n\t\t * @return {string} Calendar month HTML\n\t\t * @private\n\t\t */\n\t\t_htmlMonth: function ( year, month ) {\n\t\t\tvar now    = this._dateToUtc( new Date() ),\n\t\t\t\tdays   = this._daysInMonth( year, month ),\n\t\t\t\tbefore = new Date( Date.UTC(year, month, 1) ).getUTCDay(),\n\t\t\t\tdata   = [],\n\t\t\t\trow    = [];\n\n\t\t\tif ( this.c.firstDay > 0 ) {\n\t\t\t\tbefore -= this.c.firstDay;\n\n\t\t\t\tif (before < 0) {\n\t\t\t\t\tbefore += 7;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar cells = days + before,\n\t\t\t\tafter = cells;\n\n\t\t\twhile ( after > 7 ) {\n\t\t\t\tafter -= 7;\n\t\t\t}\n\n\t\t\tcells += 7 - after;\n\n\t\t\tvar minDate = this.c.minDate;\n\t\t\tvar maxDate = this.c.maxDate;\n\n\t\t\tif ( minDate ) {\n\t\t\t\tminDate.setUTCHours(0);\n\t\t\t\tminDate.setUTCMinutes(0);\n\t\t\t\tminDate.setSeconds(0);\n\t\t\t}\n\n\t\t\tif ( maxDate ) {\n\t\t\t\tmaxDate.setUTCHours(23);\n\t\t\t\tmaxDate.setUTCMinutes(59);\n\t\t\t\tmaxDate.setSeconds(59);\n\t\t\t}\n\n\t\t\tfor ( var i=0, r=0 ; i<cells ; i++ ) {\n\t\t\t\tvar day      = new Date( Date.UTC(year, month, 1 + (i - before)) ),\n\t\t\t\t\tselected = this.s.d ? this._compareDates(day, this.s.d) : false,\n\t\t\t\t\ttoday    = this._compareDates(day, now),\n\t\t\t\t\tempty    = i < before || i >= (days + before),\n\t\t\t\t\tdisabled = (minDate && day < minDate) ||\n\t\t\t\t\t           (maxDate && day > maxDate);\n\n\t\t\t\tvar disableDays = this.c.disableDays;\n\t\t\t\tif ( Array.isArray( disableDays ) && $.inArray( day.getUTCDay(), disableDays ) !== -1 ) {\n\t\t\t\t\tdisabled = true;\n\t\t\t\t}\n\t\t\t\telse if ( typeof disableDays === 'function' && disableDays( day ) === true ) {\n\t\t\t\t\tdisabled = true;\n\t\t\t\t}\n\n\t\t\t\tvar dayConfig = {\n\t\t\t\t\tday:      1 + (i - before),\n\t\t\t\t\tmonth:    month,\n\t\t\t\t\tyear:     year,\n\t\t\t\t\tselected: selected,\n\t\t\t\t\ttoday:    today,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\tempty:    empty\n\t\t\t\t};\n\n\t\t\t\trow.push( this._htmlDay(dayConfig) );\n\n\t\t\t\tif ( ++r === 7 ) {\n\t\t\t\t\tif ( this.c.showWeekNumber ) {\n\t\t\t\t\t\trow.unshift( this._htmlWeekOfYear(i - before, month, year) );\n\t\t\t\t\t}\n\n\t\t\t\t\tdata.push( '<tr>'+row.join('')+'</tr>' );\n\t\t\t\t\trow = [];\n\t\t\t\t\tr = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar classPrefix = this.c.classPrefix;\n\t\t\tvar className = classPrefix+'-table';\n\t\t\tif ( this.c.showWeekNumber ) {\n\t\t\t\tclassName += ' weekNumber';\n\t\t\t}\n\n\t\t\t// Show / hide month icons based on min/max\n\t\t\tif ( minDate ) {\n\t\t\t\tvar underMin = minDate >= new Date( Date.UTC(year, month, 1, 0, 0, 0 ) );\n\n\t\t\t\tthis.dom.title.find('div.'+classPrefix+'-iconLeft')\n\t\t\t\t\t.css( 'display', underMin ? 'none' : 'block' );\n\t\t\t}\n\n\t\t\tif ( maxDate ) {\n\t\t\t\tvar overMax = maxDate < new Date( Date.UTC(year, month+1, 1, 0, 0, 0 ) );\n\n\t\t\t\tthis.dom.title.find('div.'+classPrefix+'-iconRight')\n\t\t\t\t\t.css( 'display', overMax ? 'none' : 'block' );\n\t\t\t}\n\n\t\t\treturn '<table class=\"'+className+'\">' +\n\t\t\t\t\t'<thead>'+\n\t\t\t\t\t\tthis._htmlMonthHead() +\n\t\t\t\t\t'</thead>'+\n\t\t\t\t\t'<tbody>'+\n\t\t\t\t\t\tdata.join('') +\n\t\t\t\t\t'</tbody>'+\n\t\t\t\t'</table>';\n\t\t},\n\n\t\t/**\n\t\t * Create the calendar table's header (week days)\n\t\t *\n\t\t * @return {string} HTML cells for the row\n\t\t * @private\n\t\t */\n\t\t_htmlMonthHead: function () {\n\t\t\tvar a = [];\n\t\t\tvar firstDay = this.c.firstDay;\n\t\t\tvar i18n = this.c.i18n;\n\n\t\t\t// Take account of the first day shift\n\t\t\tvar dayName = function ( day ) {\n\t\t\t\tday += firstDay;\n\n\t\t\t\twhile (day >= 7) {\n\t\t\t\t\tday -= 7;\n\t\t\t\t}\n\n\t\t\t\treturn i18n.weekdays[day];\n\t\t\t};\n\t\t\t\n\t\t\t// Empty cell in the header\n\t\t\tif ( this.c.showWeekNumber ) {\n\t\t\t\ta.push( '<th></th>' );\n\t\t\t}\n\n\t\t\tfor ( var i=0 ; i<7 ; i++ ) {\n\t\t\t\ta.push( '<th>'+dayName( i )+'</th>' );\n\t\t\t}\n\n\t\t\treturn a.join('');\n\t\t},\n\n\t\t/**\n\t\t * Create a cell that contains week of the year - ISO8601\n\t\t *\n\t\t * Based on https://stackoverflow.com/questions/6117814/ and\n\t\t * http://techblog.procurios.nl/k/n618/news/view/33796/14863/\n\t\t *\n\t\t * @param  {integer} d Day of month\n\t\t * @param  {integer} m Month of year (zero index)\n\t\t * @param  {integer} y Year\n\t\t * @return {string}   \n\t\t * @private\n\t\t */\n\t\t_htmlWeekOfYear: function ( d, m, y ) {\n\t\t\tvar date = new Date( y, m, d, 0, 0, 0, 0 );\n\n\t\t\t// First week of the year always has 4th January in it\n\t\t\tdate.setDate( date.getDate() + 4 - (date.getDay() || 7) );\n\n\t\t\tvar oneJan = new Date( y, 0, 1 );\n\t\t\tvar weekNum = Math.ceil( ( ( (date - oneJan) / 86400000) + 1)/7 );\n\n\t\t\treturn '<td class=\"'+this.c.classPrefix+'-week\">' + weekNum + '</td>';\n\t\t},\n\n\t\t/**\n\t\t * Create option elements from a range in an array\n\t\t *\n\t\t * @param  {string} selector Class name unique to the select element to use\n\t\t * @param  {array} values   Array of values\n\t\t * @param  {array} [labels] Array of labels. If given must be the same\n\t\t *   length as the values parameter.\n\t\t * @private\n\t\t */\n\t\t_options: function ( selector, values, labels ) {\n\t\t\tif ( ! labels ) {\n\t\t\t\tlabels = values;\n\t\t\t}\n\n\t\t\tvar select = this.dom.container.find('select.'+this.c.classPrefix+'-'+selector);\n\t\t\tselect.empty();\n\n\t\t\tfor ( var i=0, ien=values.length ; i<ien ; i++ ) {\n\t\t\t\tselect.append( '<option value=\"'+values[i]+'\">'+labels[i]+'</option>' );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set an option and update the option's span pair (since the select element\n\t\t * has opacity 0 for styling)\n\t\t *\n\t\t * @param  {string} selector Class name unique to the select element to use\n\t\t * @param  {*}      val      Value to set\n\t\t * @private\n\t\t */\n\t\t_optionSet: function ( selector, val ) {\n\t\t\tvar select = this.dom.container.find('select.'+this.c.classPrefix+'-'+selector);\n\t\t\tvar span = select.parent().children('span');\n\n\t\t\tselect.val( val );\n\n\t\t\tvar selected = select.find('option:selected');\n\t\t\tspan.html( selected.length !== 0 ?\n\t\t\t\tselected.text() :\n\t\t\t\tthis.c.i18n.unknown\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Create time options list.\n\t\t *\n\t\t * @param  {string} unit Time unit - hours, minutes or seconds\n\t\t * @param  {integer} count Count range - 12, 24 or 60\n\t\t * @param  {integer} val Existing value for this unit\n\t\t * @param  {integer[]} allowed Values allow for selection\n\t\t * @param  {integer} range Override range\n\t\t * @private\n\t\t */\n\t\t_optionsTime: function ( unit, count, val, allowed, range ) {\n\t\t\tvar classPrefix = this.c.classPrefix;\n\t\t\tvar container = this.dom.container.find('div.'+classPrefix+'-'+unit);\n\t\t\tvar i, j;\n\t\t\tvar render = count === 12 ?\n\t\t\t\tfunction (i) { return i; } :\n\t\t\t\tthis._pad;\n\t\t\tvar classPrefix = this.c.classPrefix;\n\t\t\tvar className = classPrefix+'-table';\n\t\t\tvar i18n = this.c.i18n;\n\n\t\t\tif ( ! container.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar a = '';\n\t\t\tvar span = 10;\n\t\t\tvar button = function (value, label, className) {\n\t\t\t\t// Shift the value for PM\n\t\t\t\tif ( count === 12 && typeof value === 'number' ) {\n\t\t\t\t\tif (val >= 12 ) {\n\t\t\t\t\t\tvalue += 12;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (value == 12) {\n\t\t\t\t\t\tvalue = 0;\n\t\t\t\t\t}\n\t\t\t\t\telse if (value == 24) {\n\t\t\t\t\t\tvalue = 12;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar selected = val === value || (value === 'am' && val < 12) || (value === 'pm' && val >= 12) ?\n\t\t\t\t\t'selected' :\n\t\t\t\t\t'';\n\t\t\t\t\n\t\t\t\tif (allowed && $.inArray(value, allowed) === -1) {\n\t\t\t\t\tselected += ' disabled';\n\t\t\t\t}\n\n\t\t\t\tif ( className ) {\n\t\t\t\t\tselected += ' '+className;\n\t\t\t\t}\n\n\t\t\t\treturn '<td class=\"selectable '+selected+'\">' +\n\t\t\t\t\t'<button class=\"'+classPrefix+'-button '+classPrefix+'-day\" type=\"button\" data-unit=\"'+unit+'\" data-value=\"'+value+ '\">' +\n\t\t\t\t\t\t'<span>'+label+'</span>'+\n\t\t\t\t\t'</button>' +\n\t\t\t\t'</td>';\n\t\t\t};\n\n\t\t\tif ( count === 12 ) {\n\t\t\t\t// Hours with AM/PM\n\t\t\t\ta += '<tr>';\n\t\t\t\t\n\t\t\t\tfor ( i=1 ; i<=6 ; i++ ) {\n\t\t\t\t\ta += button(i, render(i));\n\t\t\t\t}\n\t\t\t\ta += button('am', i18n.amPm[0]);\n\n\t\t\t\ta += '</tr>';\n\t\t\t\ta += '<tr>';\n\n\t\t\t\tfor ( i=7 ; i<=12 ; i++ ) {\n\t\t\t\t\ta += button(i, render(i));\n\t\t\t\t}\n\t\t\t\ta += button('pm', i18n.amPm[1]);\n\t\t\t\ta += '</tr>';\n\n\t\t\t\tspan = 7;\n\t\t\t}\n\t\t\telse if ( count === 24 ) {\n\t\t\t\t// Hours - 24\n\t\t\t\tvar c = 0;\n\t\t\t\tfor (j=0 ; j<4 ; j++ ) {\n\t\t\t\t\ta += '<tr>';\n\t\t\t\t\tfor ( i=0 ; i<6 ; i++ ) {\n\t\t\t\t\t\ta += button(c, render(c));\n\t\t\t\t\t\tc++;\n\t\t\t\t\t}\n\t\t\t\t\ta += '</tr>';\n\t\t\t\t}\n\n\t\t\t\tspan = 6;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Minutes and seconds\n\t\t\t\ta += '<tr>';\n\t\t\t\tfor (j=0 ; j<60 ; j+=10 ) {\n\t\t\t\t\ta += button(j, render(j), 'range');\n\t\t\t\t}\n\t\t\t\ta += '</tr>';\n\t\t\t\t\n\t\t\t\t// Slight hack to allow for the different number of columns\n\t\t\t\ta += '</tbody></thead><table class=\"'+className+' '+className+'-nospace\"><tbody>';\n\n\t\t\t\tvar start = range !== null ?\n\t\t\t\t\trange :\n\t\t\t\t\tMath.floor( val / 10 )*10;\n\n\t\t\t\ta += '<tr>';\n\t\t\t\tfor (j=start+1 ; j<start+10 ; j++ ) {\n\t\t\t\t\ta += button(j, render(j));\n\t\t\t\t}\n\t\t\t\ta += '</tr>';\n\n\t\t\t\tspan = 6;\n\t\t\t}\n\n\t\t\tcontainer\n\t\t\t\t.empty()\n\t\t\t\t.append(\n\t\t\t\t\t'<table class=\"'+className+'\">'+\n\t\t\t\t\t\t'<thead><tr><th colspan=\"'+span+'\">'+\n\t\t\t\t\t\t\ti18n[unit] +\n\t\t\t\t\t\t'</th></tr></thead>'+\n\t\t\t\t\t\t'<tbody>'+\n\t\t\t\t\t\t\ta+\n\t\t\t\t\t\t'</tbody>'+\n\t\t\t\t\t'</table>'\n\t\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Create the options for the month and year\n\t\t *\n\t\t * @param  {integer} year  Year\n\t\t * @param  {integer} month Month (starting at 0)\n\t\t * @private\n\t\t */\n\t\t_optionsTitle: function () {\n\t\t\tvar i18n = this.c.i18n;\n\t\t\tvar min = this.c.minDate;\n\t\t\tvar max = this.c.maxDate;\n\t\t\tvar minYear = min ? min.getFullYear() : null;\n\t\t\tvar maxYear = max ? max.getFullYear() : null;\n\n\t\t\tvar i = minYear !== null ? minYear : new Date().getFullYear() - this.c.yearRange;\n\t\t\tvar j = maxYear !== null ? maxYear : new Date().getFullYear() + this.c.yearRange;\n\n\t\t\tthis._options( 'month', this._range( 0, 11 ), i18n.months );\n\t\t\tthis._options( 'year', this._range( i, j ) );\n\t\t},\n\n\t\t/**\n\t\t * Simple two digit pad\n\t\t *\n\t\t * @param  {integer} i      Value that might need padding\n\t\t * @return {string|integer} Padded value\n\t\t * @private\n\t\t */\n\t\t_pad: function ( i ) {\n\t\t\treturn i<10 ? '0'+i : i;\n\t\t},\n\n\t\t/**\n\t\t * Position the calendar to look attached to the input element\n\t\t * @private\n\t\t */\n\t\t_position: function () {\n\t\t\tvar offset = this.c.attachTo === 'input' ? this.dom.input.position() : this.dom.input.offset();\n\t\t\tvar container = this.dom.container;\n\t\t\tvar inputHeight = this.dom.input.outerHeight();\n\n\t\t\tif (container.hasClass('inline')) {\n\t\t\t\tcontainer.insertAfter( this.dom.input );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.s.parts.date && this.s.parts.time && $(window).width() > 550 ) {\n\t\t\t\tcontainer.addClass('horizontal');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcontainer.removeClass('horizontal');\n\t\t\t}\n\n\t\t\tif(this.c.attachTo === 'input') {\n\t\t\t\tcontainer\n\t\t\t\t\t.css( {\n\t\t\t\t\t\ttop: offset.top + inputHeight,\n\t\t\t\t\t\tleft: offset.left\n\t\t\t\t\t} )\n\t\t\t\t\t.insertAfter( this.dom.input );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcontainer\n\t\t\t\t\t.css( {\n\t\t\t\t\t\ttop: offset.top + inputHeight,\n\t\t\t\t\t\tleft: offset.left\n\t\t\t\t\t} )\n\t\t\t\t\t.appendTo( 'body' );\n\t\t\t}\n\n\t\t\tvar calHeight = container.outerHeight();\n\t\t\tvar calWidth = container.outerWidth();\n\t\t\tvar scrollTop = $(window).scrollTop();\n\n\t\t\t// Correct to the bottom\n\t\t\tif ( offset.top + inputHeight + calHeight - scrollTop > $(window).height() ) {\n\t\t\t\tvar newTop = offset.top - calHeight;\n\n\t\t\t\tcontainer.css( 'top', newTop < 0 ? 0 : newTop );\n\t\t\t}\n\n\t\t\t// Correct to the right\n\t\t\tif ( calWidth + offset.left > $(window).width() ) {\n\t\t\t\tvar newLeft = $(window).width() - calWidth;\n\n\t\t\t\t// Account for elements which are inside a position absolute element\n\t\t\t\tif (this.c.attachTo === 'input') {\n\t\t\t\t\tnewLeft -= $(container).offsetParent().offset().left;\n\t\t\t\t}\n\n\t\t\t\tcontainer.css( 'left', newLeft < 0 ? 0 : newLeft );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Create a simple array with a range of values\n\t\t *\n\t\t * @param  {integer} start   Start value (inclusive)\n\t\t * @param  {integer} end     End value (inclusive)\n\t\t * @param  {integer} [inc=1] Increment value\n\t\t * @return {array}           Created array\n\t\t * @private\n\t\t */\n\t\t_range: function ( start, end, inc ) {\n\t\t\tvar a = [];\n\n\t\t\tif ( ! inc ) {\n\t\t\t\tinc = 1;\n\t\t\t}\n\n\t\t\tfor ( var i=start ; i<=end ; i+=inc ) {\n\t\t\t\ta.push( i );\n\t\t\t}\n\n\t\t\treturn a;\n\t\t},\n\n\t\t/**\n\t\t * Redraw the calendar based on the display date - this is a destructive\n\t\t * operation\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_setCalander: function () {\n\t\t\tif ( this.s.display ) {\n\t\t\t\tthis.dom.calendar\n\t\t\t\t\t.empty()\n\t\t\t\t\t.append( this._htmlMonth(\n\t\t\t\t\t\tthis.s.display.getUTCFullYear(),\n\t\t\t\t\t\tthis.s.display.getUTCMonth()\n\t\t\t\t\t) );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set the month and year for the calendar based on the current display date\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_setTitle: function () {\n\t\t\tthis._optionSet( 'month', this.s.display.getUTCMonth() );\n\t\t\tthis._optionSet( 'year', this.s.display.getUTCFullYear() );\n\t\t},\n\n\t\t/**\n\t\t * Set the time based on the current value of the widget\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_setTime: function () {\n\t\t\tvar that = this;\n\t\t\tvar d = this.s.d;\n\t\t\tvar hours = d ? d.getUTCHours() : 0;\n\t\t\tvar allowed = function ( prop ) { // Backwards compt with `Increment` option\n\t\t\t\treturn that.c[prop+'Available'] ?\n\t\t\t\t\tthat.c[prop+'Available'] :\n\t\t\t\t\tthat._range( 0, 59, that.c[prop+'Increment'] );\n\t\t\t};\n\n\t\t\tthis._optionsTime( 'hours', this.s.parts.hours12 ? 12 : 24, hours, this.c.hoursAvailable );\n\t\t\tthis._optionsTime( 'minutes', 60, d ? d.getUTCMinutes() : 0, allowed('minutes'), this.s.minutesRange );\n\t\t\tthis._optionsTime( 'seconds', 60, d ? d.getSeconds() : 0, allowed('seconds'), this.s.secondsRange );\n\t\t},\n\n\t\t/**\n\t\t * Show the widget and add events to the document required only while it\n\t\t * is displayed\n\t\t * \n\t\t * @private\n\t\t */\n\t\t_show: function () {\n\t\t\tvar that = this;\n\t\t\tvar namespace = this.s.namespace;\n\n\t\t\tthis._position();\n\n\t\t\t// Need to reposition on scroll\n\t\t\t$(window).on( 'scroll.'+namespace+' resize.'+namespace, function () {\n\t\t\t\tthat._hide();\n\t\t\t} );\n\n\t\t\t$('div.DTE_Body_Content').on( 'scroll.'+namespace, function () {\n\t\t\t\tthat._hide();\n\t\t\t} );\n\n\t\t\t$('div.dataTables_scrollBody').on( 'scroll.'+namespace, function () {\n\t\t\t\tthat._hide();\n\t\t\t} );\n\n\t\t\tvar offsetParent = this.dom.input[0].offsetParent;\n\n\t\t\tif ( offsetParent !== document.body ) {\n\t\t\t\t$(offsetParent).on( 'scroll.'+namespace, function () {\n\t\t\t\t\tthat._hide();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// On tab focus will move to a different field (no keyboard navigation\n\t\t\t// in the date picker - this might need to be changed).\n\t\t\t$(document).on( 'keydown.'+namespace, function (e) {\n\t\t\t\tif (\n\t\t\t\t\te.keyCode === 9  || // tab\n\t\t\t\t\te.keyCode === 27 || // esc\n\t\t\t\t\te.keyCode === 13    // return\n\t\t\t\t) {\n\t\t\t\t\tthat._hide();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Hide if clicking outside of the widget - but in a different click\n\t\t\t// event from the one that was used to trigger the show (bubble and\n\t\t\t// inline)\n\t\t\tsetTimeout( function () {\n\t\t\t\t$('body').on( 'click.'+namespace, function (e) {\n\t\t\t\t\tvar parents = $(e.target).parents();\n\n\t\t\t\t\tif ( ! parents.filter( that.dom.container ).length && e.target !== that.dom.input[0] ) {\n\t\t\t\t\t\tthat._hide();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}, 10 );\n\t\t},\n\n\t\t/**\n\t\t * Write the formatted string to the input element this control is attached\n\t\t * to\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_writeOutput: function ( focus ) {\n\t\t\tvar date = this.s.d;\n\n\t\t\t// Use moment or dayjs if possible - otherwise it must be ISO8601 (or the\n\t\t\t// constructor would have thrown an error)\n\t\t\tvar out = dateLib ?\n\t\t\t\tdateLib.utc( date, undefined$1, this.c.locale, this.c.strict ).format( this.c.format ) :\n\t\t\t\tdate.getUTCFullYear() +'-'+\n\t\t\t\t\tthis._pad(date.getUTCMonth() + 1) +'-'+\n\t\t\t\t\tthis._pad(date.getUTCDate());\n\n\t\t\t\tthis.dom.input\n\t\t\t\t\t.val( out )\n\t\t\t\t\t.trigger('change', {write: date});\n\t\t\t\n\t\t\tif ( this.dom.input.attr('type') === 'hidden' ) {\n\t\t\t\tthis.val(out, false);\n\t\t\t}\n\n\t\t\tif ( focus ) {\n\t\t\t\tthis.dom.input.focus();\n\t\t\t}\n\t\t}\n\t} );\n\n\t/**\n\t * Use a specificmoment compatible date library\n\t */\n\tDateTime.use = function (lib) {\n\t\tdateLib = lib;\n\t};\n\n\t/**\n\t * For generating unique namespaces\n\t *\n\t * @type {Number}\n\t * @private\n\t */\n\tDateTime._instance = 0;\n\n\t/**\n\t * Defaults for the date time picker\n\t *\n\t * @type {Object}\n\t */\n\tDateTime.defaults = {\n\t\tattachTo: 'body',\n\n\t\t// Not documented - could be an internal property\n\t\tclassPrefix: 'dt-datetime',\n\n\t\t// function or array of ints\n\t\tdisableDays: null,\n\n\t\t// first day of the week (0: Sunday, 1: Monday, etc)\n\t\tfirstDay: 1,\n\n\t\tformat: 'YYYY-MM-DD',\n\n\t\thoursAvailable: null,\n\n\t\ti18n: {\n\t\t\tprevious: 'Previous',\n\t\t\tnext:     'Next',\n\t\t\tmonths:   [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],\n\t\t\tweekdays: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\n\t\t\tamPm:     [ 'am', 'pm' ],\n\t\t\thours:    'Hour',\n\t\t\tminutes:  'Minute',\n\t\t\tseconds:  'Second',\n\t\t\tunknown:  '-'\n\t\t},\n\n\t\tmaxDate: null,\n\n\t\tminDate: null,\n\n\t\tminutesAvailable: null,\n\n\t\tminutesIncrement: 1, // deprecated\n\n\t\tstrict: true,\n\n\t\tlocale: 'en',\n\n\t\tonChange: function () {},\n\n\t\tsecondsAvailable: null,\n\n\t\tsecondsIncrement: 1, // deprecated\n\n\t\t// show the ISO week number at the head of the row\n\t\tshowWeekNumber: false,\n\n\t\t// overruled by max / min date\n\t\tyearRange: 25\n\t};\n\n\tDateTime.version = '1.0.1';\n\n\t// Global export - if no conflicts\n\tif (! window.DateTime) {\n\t\twindow.DateTime = DateTime;\n\t}\n\n\t// Make available via jQuery\n\t$.fn.dtDateTime = function (options) {\n\t\treturn this.each(function() {\n\t\t\tnew DateTime(this, options);\n\t\t});\n\t};\n\n\t// Attach to DataTables if present\n\tif ($.fn.dataTable) {\n\t\t$.fn.dataTable.DateTime = DateTime;\n\t\t$.fn.DataTable.DateTime = DateTime;\n\t}\n\n\treturn DateTime;\n\n\t}));\n\n\tvar $;\n\tvar DataTable;\n\tvar moment = window.moment;\n\t/**\n\t * Sets the value of jQuery for use in the file\n\t * @param jq the instance of jQuery to be set\n\t */\n\tfunction setJQuery(jq) {\n\t    $ = jq;\n\t    DataTable = jq.fn.dataTable;\n\t}\n\t/**\n\t * The Criteria class is used within SearchBuilder to represent a search criteria\n\t */\n\tvar Criteria = /** @class */ (function () {\n\t    function Criteria(table, opts, topGroup, index, depth) {\n\t        var _this = this;\n\t        if (index === void 0) { index = 0; }\n\t        if (depth === void 0) { depth = 1; }\n\t        // Check that the required version of DataTables is included\n\t        if (!DataTable || !DataTable.versionCheck || !DataTable.versionCheck('1.10.0')) {\n\t            throw new Error('SearchPane requires DataTables 1.10 or newer');\n\t        }\n\t        this.classes = $.extend(true, {}, Criteria.classes);\n\t        // Get options from user and any extra conditions/column types defined by plug-ins\n\t        this.c = $.extend(true, {}, Criteria.defaults, $.fn.dataTable.ext.searchBuilder, opts);\n\t        var i18n = this.c.i18n;\n\t        this.s = {\n\t            condition: undefined,\n\t            conditions: {},\n\t            data: undefined,\n\t            dataIdx: -1,\n\t            dataPoints: [],\n\t            depth: depth,\n\t            dt: table,\n\t            filled: false,\n\t            index: index,\n\t            momentFormat: false,\n\t            topGroup: topGroup,\n\t            type: '',\n\t            value: []\n\t        };\n\t        this.dom = {\n\t            buttons: $('<div/>')\n\t                .addClass(this.classes.buttonContainer),\n\t            condition: $('<select disabled/>')\n\t                .addClass(this.classes.condition)\n\t                .addClass(this.classes.dropDown)\n\t                .addClass(this.classes.italic)\n\t                .attr('autocomplete', 'hacking'),\n\t            conditionTitle: $('<option value=\"\" disabled selected hidden/>')\n\t                .text(this.s.dt.i18n('searchBuilder.condition', i18n.condition)),\n\t            container: $('<div/>')\n\t                .addClass(this.classes.container),\n\t            data: $('<select/>')\n\t                .addClass(this.classes.data)\n\t                .addClass(this.classes.dropDown)\n\t                .addClass(this.classes.italic),\n\t            dataTitle: $('<option value=\"\" disabled selected hidden/>')\n\t                .text(this.s.dt.i18n('searchBuilder.data', i18n.data)),\n\t            defaultValue: $('<select disabled/>')\n\t                .addClass(this.classes.value)\n\t                .addClass(this.classes.dropDown),\n\t            \"delete\": $('<button>&times</button>')\n\t                .addClass(this.classes[\"delete\"])\n\t                .addClass(this.classes.button)\n\t                .attr('title', this.s.dt.i18n('searchBuilder.deleteTitle', i18n.deleteTitle))\n\t                .attr('type', 'button'),\n\t            left: $('<button>\\<</button>')\n\t                .addClass(this.classes.left)\n\t                .addClass(this.classes.button)\n\t                .attr('title', this.s.dt.i18n('searchBuilder.leftTitle', i18n.leftTitle))\n\t                .attr('type', 'button'),\n\t            right: $('<button>\\></button>')\n\t                .addClass(this.classes.right)\n\t                .addClass(this.classes.button)\n\t                .attr('title', this.s.dt.i18n('searchBuilder.rightTitle', i18n.rightTitle))\n\t                .attr('type', 'button'),\n\t            value: [\n\t                $('<select disabled/>').addClass(this.classes.value).addClass(this.classes.dropDown).addClass(this.classes.italic)\n\t            ],\n\t            valueTitle: $('<option value=\"--valueTitle--\" selected/>').text(this.s.dt.i18n('searchBuilder.value', i18n.value))\n\t        };\n\t        // If the greyscale option is selected then add the class to add the grey colour to SearchBuilder\n\t        if (this.c.greyscale) {\n\t            $(this.dom.data).addClass(this.classes.greyscale);\n\t            $(this.dom.condition).addClass(this.classes.greyscale);\n\t            $(this.dom.defaultValue).addClass(this.classes.greyscale);\n\t            for (var _i = 0, _a = this.dom.value; _i < _a.length; _i++) {\n\t                var val = _a[_i];\n\t                $(val).addClass(this.classes.greyscale);\n\t            }\n\t        }\n\t        // For responsive design, adjust the criterias properties on the following events\n\t        this.s.dt.on('draw.dtsp', function () {\n\t            _this._adjustCriteria();\n\t        });\n\t        this.s.dt.on('buttons-action', function () {\n\t            _this._adjustCriteria();\n\t        });\n\t        $(window).on('resize.dtsp', DataTable.util.throttle(function () {\n\t            _this._adjustCriteria();\n\t        }));\n\t        this._buildCriteria();\n\t        return this;\n\t    }\n\t    /**\n\t     * Adds the left button to the criteria\n\t     */\n\t    Criteria.prototype.updateArrows = function (hasSiblings, redraw) {\n\t        if (hasSiblings === void 0) { hasSiblings = false; }\n\t        if (redraw === void 0) { redraw = true; }\n\t        // Empty the container and append all of the elements in the correct order\n\t        $(this.dom.container)\n\t            .empty()\n\t            .append(this.dom.data)\n\t            .append(this.dom.condition)\n\t            .append(this.dom.value[0]);\n\t        // Trigger the inserted events for the value elements as they are inserted\n\t        $(this.dom.value[0]).trigger('dtsb-inserted');\n\t        for (var i = 1; i < this.dom.value.length; i++) {\n\t            $(this.dom.container).append(this.dom.value[i]);\n\t            $(this.dom.value[i]).trigger('dtsb-inserted');\n\t        }\n\t        // If this is a top level criteria then don't let it move left\n\t        if (this.s.depth > 1) {\n\t            $(this.dom.buttons).append(this.dom.left);\n\t        }\n\t        // If the depthLimit of the query has been hit then don't add the right button\n\t        if ((this.c.depthLimit === false || this.s.depth < this.c.depthLimit) && hasSiblings) {\n\t            $(this.dom.buttons).append(this.dom.right);\n\t        }\n\t        else {\n\t            $(this.dom.right).remove();\n\t        }\n\t        $(this.dom.buttons).append(this.dom[\"delete\"]);\n\t        $(this.dom.container).append(this.dom.buttons);\n\t        if (redraw) {\n\t            // A different combination of arrows and selectors may lead to a need for responsive to be triggered\n\t            this._adjustCriteria();\n\t        }\n\t    };\n\t    /**\n\t     * Destroys the criteria, removing listeners and container from the dom\n\t     */\n\t    Criteria.prototype.destroy = function () {\n\t        // Turn off listeners\n\t        $(this.dom.data).off('.dtsb');\n\t        $(this.dom.condition).off('.dtsb');\n\t        $(this.dom[\"delete\"]).off('.dtsb');\n\t        for (var _i = 0, _a = this.dom.value; _i < _a.length; _i++) {\n\t            var val = _a[_i];\n\t            $(val).off('.dtsb');\n\t        }\n\t        // Remove container from the dom\n\t        $(this.dom.container).remove();\n\t    };\n\t    /**\n\t     * Passes in the data for the row and compares it against this single criteria\n\t     * @param rowData The data for the row to be compared\n\t     * @returns boolean Whether the criteria has passed\n\t     */\n\t    Criteria.prototype.search = function (rowData, rowIdx) {\n\t        var condition = this.s.conditions[this.s.condition];\n\t        if (this.s.condition !== undefined && condition !== undefined) {\n\t            // This check is in place for if a custom decimal character is in place\n\t            if (this.s.type.indexOf('num') !== -1 && this.s.dt.settings()[0].oLanguage.sDecimal !== '') {\n\t                rowData[this.s.dataIdx] = rowData[this.s.dataIdx].replace(this.s.dt.settings()[0].oLanguage.sDecimal, '.');\n\t            }\n\t            var filter = rowData[this.s.dataIdx];\n\t            // If orthogonal data is in place we need to get it's values for searching\n\t            if (this.c.orthogonal.search !== 'search') {\n\t                var settings = this.s.dt.settings()[0];\n\t                filter = settings.oApi._fnGetCellData(settings, rowIdx, this.s.dataIdx, typeof this.c.orthogonal === 'string' ?\n\t                    this.c.orthogonal :\n\t                    this.c.orthogonal.search);\n\t            }\n\t            if (this.s.type === 'array') {\n\t                // Make sure we are working with an array\n\t                if (!Array.isArray(filter)) {\n\t                    filter = [filter];\n\t                }\n\t                filter.sort();\n\t            }\n\t            return condition.search(filter, this.s.value, this);\n\t        }\n\t    };\n\t    /**\n\t     * Gets the details required to rebuild the criteria\n\t     */\n\t    Criteria.prototype.getDetails = function () {\n\t        var value = this.s.value;\n\t        // This check is in place for if a custom decimal character is in place\n\t        if (this.s.type.indexOf('num') !== -1 && this.s.dt.settings()[0].oLanguage.sDecimal !== '') {\n\t            for (var i = 0; i < this.s.value.length; i++) {\n\t                if (this.s.value[i].indexOf('.') !== -1) {\n\t                    value[i] = this.s.value[i].replace('.', this.s.dt.settings()[0].oLanguage.sDecimal);\n\t                }\n\t            }\n\t        }\n\t        return {\n\t            condition: this.s.condition,\n\t            data: this.s.data,\n\t            value: value\n\t        };\n\t    };\n\t    /**\n\t     * Getter for the node for the container of the criteria\n\t     * @returns JQuery<HTMLElement> the node for the container\n\t     */\n\t    Criteria.prototype.getNode = function () {\n\t        return this.dom.container;\n\t    };\n\t    /**\n\t     * Populates the criteria data, condition and value(s) as far as has been selected\n\t     */\n\t    Criteria.prototype.populate = function () {\n\t        this._populateData();\n\t        // If the column index has been found attempt to select a condition\n\t        if (this.s.dataIdx !== -1) {\n\t            this._populateCondition();\n\t            // If the condittion has been found attempt to select the values\n\t            if (this.s.condition !== undefined) {\n\t                this._populateValue();\n\t            }\n\t        }\n\t    };\n\t    /**\n\t     * Rebuilds the criteria based upon the details passed in\n\t     * @param loadedCriteria the details required to rebuild the criteria\n\t     */\n\t    Criteria.prototype.rebuild = function (loadedCriteria) {\n\t        // Check to see if the previously selected data exists, if so select it\n\t        var foundData = false;\n\t        var dataIdx;\n\t        this._populateData();\n\t        // If a data selection has previously been made attempt to find and select it\n\t        if (loadedCriteria.data !== undefined) {\n\t            var italic_1 = this.classes.italic;\n\t            var data_1 = this.dom.data;\n\t            $(this.dom.data).children('option').each(function () {\n\t                if ($(this).text() === loadedCriteria.data) {\n\t                    $(this).attr('selected', true);\n\t                    $(data_1).removeClass(italic_1);\n\t                    foundData = true;\n\t                    dataIdx = $(this).val();\n\t                }\n\t            });\n\t        }\n\t        // If the data has been found and selected then the condition can be populated and searched\n\t        if (foundData) {\n\t            this.s.data = loadedCriteria.data;\n\t            this.s.dataIdx = dataIdx;\n\t            $(this.dom.dataTitle).remove();\n\t            this._populateCondition();\n\t            $(this.dom.conditionTitle).remove();\n\t            var condition_1;\n\t            // Check to see if the previously selected condition exists, if so select it\n\t            $(this.dom.condition).children('option').each(function () {\n\t                if ((loadedCriteria.condition !== undefined &&\n\t                    $(this).val() === loadedCriteria.condition &&\n\t                    typeof loadedCriteria.condition === 'string')) {\n\t                    $(this).attr('selected', true);\n\t                    condition_1 = $(this).val();\n\t                }\n\t            });\n\t            this.s.condition = condition_1;\n\t            // If the condition has been found and selected then the value can be populated and searched\n\t            if (this.s.condition !== undefined) {\n\t                $(this.dom.conditionTitle).remove();\n\t                $(this.dom.condition).removeClass(this.classes.italic);\n\t                this._populateValue(loadedCriteria);\n\t            }\n\t            else {\n\t                $(this.dom.conditionTitle).prependTo(this.dom.condition).attr('selected', true);\n\t            }\n\t        }\n\t    };\n\t    /**\n\t     * Sets the listeners for the criteria\n\t     */\n\t    Criteria.prototype.setListeners = function () {\n\t        var _this = this;\n\t        $(this.dom.data)\n\t            .unbind('input change')\n\t            .on('input change', function () {\n\t            $(_this.dom.dataTitle).attr('selected', false);\n\t            $(_this.dom.data).removeClass(_this.classes.italic);\n\t            _this.s.dataIdx = $(_this.dom.data).children('option:selected').val();\n\t            _this.s.data = $(_this.dom.data).children('option:selected').text();\n\t            _this.c.orthogonal = _this._getOptions().orthogonal;\n\t            // When the data is changed, the values in condition and value may also change so need to renew them\n\t            _this._clearCondition();\n\t            _this._clearValue();\n\t            _this._populateCondition();\n\t            // If this criteria was previously active in the search then remove it from the search and trigger a new search\n\t            if (_this.s.filled) {\n\t                _this.s.filled = false;\n\t                _this.s.dt.draw();\n\t                _this.setListeners();\n\t            }\n\t            _this.s.dt.state.save();\n\t        });\n\t        $(this.dom.condition)\n\t            .unbind('input change')\n\t            .on('input change', function () {\n\t            $(_this.dom.conditionTitle).attr('selected', false);\n\t            $(_this.dom.condition).removeClass(_this.classes.italic);\n\t            var condDisp = $(_this.dom.condition).children('option:selected').val();\n\t            // Find the condition that has been selected and store it internally\n\t            for (var _i = 0, _a = Object.keys(_this.s.conditions); _i < _a.length; _i++) {\n\t                var cond = _a[_i];\n\t                if (cond === condDisp) {\n\t                    _this.s.condition = condDisp;\n\t                    break;\n\t                }\n\t            }\n\t            // When the condition is changed, the value selector may switch between a select element and an input element\n\t            _this._clearValue();\n\t            _this._populateValue();\n\t            for (var _b = 0, _c = _this.dom.value; _b < _c.length; _b++) {\n\t                var val = _c[_b];\n\t                // If this criteria was previously active in the search then remove it from the search and trigger a new search\n\t                if (_this.s.filled && $(_this.dom.container).has(val).length !== 0) {\n\t                    _this.s.filled = false;\n\t                    _this.s.dt.draw();\n\t                    _this.setListeners();\n\t                }\n\t            }\n\t            _this.s.dt.draw();\n\t        });\n\t    };\n\t    /**\n\t     * Adjusts the criteria to make SearchBuilder responsive\n\t     */\n\t    Criteria.prototype._adjustCriteria = function () {\n\t        // If this criteria is not present then don't bother adjusting it\n\t        if ($(document).has(this.dom.container).length === 0) {\n\t            return;\n\t        }\n\t        var valRight;\n\t        var valWidth;\n\t        var outmostval = this.dom.value[this.dom.value.length - 1];\n\t        // Calculate the width and right value of the outmost value element\n\t        if ($(this.dom.container).has(outmostval).length !== 0) {\n\t            valWidth = $(outmostval).outerWidth(true);\n\t            valRight = $(outmostval).offset().left + valWidth;\n\t        }\n\t        else {\n\t            return;\n\t        }\n\t        var leftOffset = $(this.dom.left).offset();\n\t        var rightOffset = $(this.dom.right).offset();\n\t        var clearOffset = $(this.dom[\"delete\"]).offset();\n\t        var hasLeft = $(this.dom.container).has(this.dom.left).length !== 0;\n\t        var hasRight = $(this.dom.container).has(this.dom.right).length !== 0;\n\t        var buttonsLeft = hasLeft ?\n\t            leftOffset.left :\n\t            hasRight ?\n\t                rightOffset.left :\n\t                clearOffset.left;\n\t        // Perform the responsive calculations and redraw where necessary\n\t        if (buttonsLeft - valRight < 15 ||\n\t            (hasLeft && leftOffset.top !== clearOffset.top) ||\n\t            (hasRight && rightOffset.top !== clearOffset.top)) {\n\t            $(this.dom.container).parent().addClass(this.classes.vertical);\n\t            $(this.s.topGroup).trigger('dtsb-redrawContents');\n\t        }\n\t        else if (buttonsLeft -\n\t            ($(this.dom.data).offset().left +\n\t                $(this.dom.data).outerWidth(true) +\n\t                $(this.dom.condition).outerWidth(true) +\n\t                valWidth) > 15) {\n\t            $(this.dom.container).parent().removeClass(this.classes.vertical);\n\t            $(this.s.topGroup).trigger('dtsb-redrawContents');\n\t        }\n\t    };\n\t    /**\n\t     * Builds the elements of the dom together\n\t     */\n\t    Criteria.prototype._buildCriteria = function () {\n\t        // Append Titles for select elements\n\t        $(this.dom.data).append(this.dom.dataTitle);\n\t        $(this.dom.condition).append(this.dom.conditionTitle);\n\t        // Add elements to container\n\t        $(this.dom.container)\n\t            .append(this.dom.data)\n\t            .append(this.dom.condition);\n\t        for (var _i = 0, _a = this.dom.value; _i < _a.length; _i++) {\n\t            var val = _a[_i];\n\t            $(val).append(this.dom.valueTitle);\n\t            $(this.dom.container).append(val);\n\t        }\n\t        // Add buttons to container\n\t        $(this.dom.container)\n\t            .append(this.dom[\"delete\"])\n\t            .append(this.dom.right);\n\t        this.setListeners();\n\t    };\n\t    /**\n\t     * Clears the condition select element\n\t     */\n\t    Criteria.prototype._clearCondition = function () {\n\t        $(this.dom.condition).empty();\n\t        $(this.dom.conditionTitle).attr('selected', true).attr('disabled', true);\n\t        $(this.dom.condition).prepend(this.dom.conditionTitle).prop('selectedIndex', 0);\n\t        this.s.conditions = {};\n\t        this.s.condition = undefined;\n\t    };\n\t    /**\n\t     * Clears the value elements\n\t     */\n\t    Criteria.prototype._clearValue = function () {\n\t        if (this.s.condition !== undefined) {\n\t            // Remove all of the value elements\n\t            for (var _i = 0, _a = this.dom.value; _i < _a.length; _i++) {\n\t                var val = _a[_i];\n\t                $(val).remove();\n\t            }\n\t            // Call the init function to get the value elements for this condition\n\t            this.dom.value = [].concat(this.s.conditions[this.s.condition].init(this, Criteria.updateListener));\n\t            $(this.dom.value[0]).insertAfter(this.dom.condition).trigger('dtsb-inserted');\n\t            // Insert all of the value elements\n\t            for (var i = 1; i < this.dom.value.length; i++) {\n\t                $(this.dom.value[i]).insertAfter(this.dom.value[i - 1]).trigger('dtsb-inserted');\n\t            }\n\t        }\n\t        else {\n\t            // Remove all of the value elements\n\t            for (var _b = 0, _c = this.dom.value; _b < _c.length; _b++) {\n\t                var val = _c[_b];\n\t                $(val).remove();\n\t            }\n\t            // Append the default valueTitle to the default select element\n\t            $(this.dom.valueTitle)\n\t                .attr('selected', true);\n\t            $(this.dom.defaultValue)\n\t                .append(this.dom.valueTitle)\n\t                .insertAfter(this.dom.condition);\n\t        }\n\t        this.s.value = [];\n\t    };\n\t    /**\n\t     * Gets the options for the column\n\t     * @returns {object} The options for the column\n\t     */\n\t    Criteria.prototype._getOptions = function () {\n\t        var table = this.s.dt;\n\t        return $.extend(true, {}, Criteria.defaults, table.settings()[0].aoColumns[this.s.dataIdx].searchBuilder);\n\t    };\n\t    /**\n\t     * Populates the condition dropdown\n\t     */\n\t    Criteria.prototype._populateCondition = function () {\n\t        var conditionOpts = [];\n\t        var conditionsLength = Object.keys(this.s.conditions).length;\n\t        // If there are no conditions stored then we need to get them from the appropriate type\n\t        if (conditionsLength === 0) {\n\t            var column = $(this.dom.data).children('option:selected').val();\n\t            this.s.type = this.s.dt.columns().type().toArray()[column];\n\t            // If the column type is unknown, call a draw to try reading it again\n\t            if (this.s.type === null) {\n\t                this.s.dt.draw();\n\t                this.setListeners();\n\t                this.s.type = this.s.dt.columns().type().toArray()[column];\n\t            }\n\t            // Enable the condition element\n\t            $(this.dom.condition)\n\t                .attr('disabled', false)\n\t                .empty()\n\t                .append(this.dom.conditionTitle)\n\t                .addClass(this.classes.italic);\n\t            $(this.dom.conditionTitle)\n\t                .attr('selected', true);\n\t            var decimal = this.s.dt.settings()[0].oLanguage.sDecimal;\n\t            // This check is in place for if a custom decimal character is in place\n\t            if (decimal !== '' && this.s.type.indexOf(decimal) === this.s.type.length - decimal.length) {\n\t                if (this.s.type.indexOf('num-fmt') !== -1) {\n\t                    this.s.type = this.s.type.replace(decimal, '');\n\t                }\n\t                else if (this.s.type.indexOf('num') !== -1) {\n\t                    this.s.type = this.s.type.replace(decimal, '');\n\t                }\n\t            }\n\t            // Select which conditions are going to be used based on the column type\n\t            var conditionObj = this.c.conditions[this.s.type] !== undefined ?\n\t                this.c.conditions[this.s.type] :\n\t                this.s.type.indexOf('moment') !== -1 ?\n\t                    this.c.conditions.moment :\n\t                    this.c.conditions.string;\n\t            // If it is a moment format then extract the date format\n\t            if (this.s.type.indexOf('moment') !== -1) {\n\t                this.s.momentFormat = this.s.type.replace(/moment\\-/g, '');\n\t            }\n\t            // Add all of the conditions to the select element\n\t            for (var _i = 0, _a = Object.keys(conditionObj); _i < _a.length; _i++) {\n\t                var condition = _a[_i];\n\t                if (conditionObj[condition] !== null) {\n\t                    this.s.conditions[condition] = conditionObj[condition];\n\t                    var condName = conditionObj[condition].conditionName;\n\t                    if (typeof condName === 'function') {\n\t                        condName = condName(this.s.dt, this.c.i18n);\n\t                    }\n\t                    conditionOpts.push($('<option>', {\n\t                        text: condName,\n\t                        value: condition\n\t                    })\n\t                        .addClass(this.classes.option)\n\t                        .addClass(this.classes.notItalic));\n\t                }\n\t            }\n\t        }\n\t        // Otherwise we can just load them in\n\t        else if (conditionsLength > 0) {\n\t            $(this.dom.condition).empty().attr('disabled', false).addClass(this.classes.italic);\n\t            for (var _b = 0, _c = Object.keys(this.s.conditions); _b < _c.length; _b++) {\n\t                var condition = _c[_b];\n\t                var condName = this.s.conditions[condition].conditionName;\n\t                if (typeof condName === 'function') {\n\t                    condName = condName(this.s.dt, this.c.i18n);\n\t                }\n\t                var newOpt = $('<option>', {\n\t                    text: condName,\n\t                    value: condition\n\t                })\n\t                    .addClass(this.classes.option)\n\t                    .addClass(this.classes.notItalic);\n\t                if (this.s.condition !== undefined && this.s.condition === condName) {\n\t                    $(newOpt).attr('selected', true);\n\t                    $(this.dom.condition).removeClass(this.classes.italic);\n\t                }\n\t                conditionOpts.push(newOpt);\n\t            }\n\t        }\n\t        else {\n\t            $(this.dom.condition)\n\t                .attr('disabled', true)\n\t                .addClass(this.classes.italic);\n\t            return;\n\t        }\n\t        for (var _d = 0, conditionOpts_1 = conditionOpts; _d < conditionOpts_1.length; _d++) {\n\t            var opt = conditionOpts_1[_d];\n\t            $(this.dom.condition).append(opt);\n\t        }\n\t        $(this.dom.condition).prop('selectedIndex', 0);\n\t    };\n\t    /**\n\t     * Populates the data select element\n\t     */\n\t    Criteria.prototype._populateData = function () {\n\t        var _this = this;\n\t        $(this.dom.data).empty().append(this.dom.dataTitle);\n\t        // If there are no datas stored then we need to get them from the table\n\t        if (this.s.dataPoints.length === 0) {\n\t            this.s.dt.columns().every(function (index) {\n\t                // Need to check that the column can be filtered on before adding it\n\t                if (_this.c.columns === true ||\n\t                    (_this.s.dt.columns(_this.c.columns).indexes().toArray().indexOf(index) !== -1)) {\n\t                    var found = false;\n\t                    for (var _i = 0, _a = _this.s.dataPoints; _i < _a.length; _i++) {\n\t                        var val = _a[_i];\n\t                        if (val.index === index) {\n\t                            found = true;\n\t                            break;\n\t                        }\n\t                    }\n\t                    if (!found) {\n\t                        var opt = { text: _this.s.dt.settings()[0].aoColumns[index].sTitle, index: index };\n\t                        _this.s.dataPoints.push(opt);\n\t                        $(_this.dom.data).append($('<option>', {\n\t                            text: opt.text,\n\t                            value: opt.index\n\t                        })\n\t                            .addClass(_this.classes.option)\n\t                            .addClass(_this.classes.notItalic));\n\t                    }\n\t                }\n\t            });\n\t        }\n\t        // Otherwise we can just load them in\n\t        else {\n\t            var _loop_1 = function (data) {\n\t                this_1.s.dt.columns().every(function (index) {\n\t                    if (_this.s.dt.settings()[0].aoColumns[index].sTitle === data.text) {\n\t                        data.index = index;\n\t                    }\n\t                });\n\t                var newOpt = $('<option>', {\n\t                    text: data.text,\n\t                    value: data.index\n\t                })\n\t                    .addClass(this_1.classes.option)\n\t                    .addClass(this_1.classes.notItalic);\n\t                if (this_1.s.data === data.text) {\n\t                    this_1.s.dataIdx = data.index;\n\t                    $(newOpt).attr('selected', true);\n\t                    $(this_1.dom.data).removeClass(this_1.classes.italic);\n\t                }\n\t                $(this_1.dom.data).append(newOpt);\n\t            };\n\t            var this_1 = this;\n\t            for (var _i = 0, _a = this.s.dataPoints; _i < _a.length; _i++) {\n\t                var data = _a[_i];\n\t                _loop_1(data);\n\t            }\n\t        }\n\t    };\n\t    /**\n\t     * Populates the Value select element\n\t     * @param loadedCriteria optional, used to reload criteria from predefined filters\n\t     */\n\t    Criteria.prototype._populateValue = function (loadedCriteria) {\n\t        var _this = this;\n\t        var prevFilled = this.s.filled;\n\t        this.s.filled = false;\n\t        // Remove any previous value elements\n\t        $(this.dom.defaultValue).remove();\n\t        for (var _i = 0, _a = this.dom.value; _i < _a.length; _i++) {\n\t            var val = _a[_i];\n\t            $(val).remove();\n\t        }\n\t        var children = $(this.dom.container).children();\n\t        if (children.length > 3) {\n\t            for (var i = 2; i < children.length - 1; i++) {\n\t                $(children[i]).remove();\n\t            }\n\t        }\n\t        // Find the column with the title matching the data for the criteria and take note of the index\n\t        if (loadedCriteria !== undefined) {\n\t            this.s.dt.columns().every(function (index) {\n\t                if (_this.s.dt.settings()[0].aoColumns[index].sTitle === loadedCriteria.data) {\n\t                    _this.s.dataIdx = index;\n\t                }\n\t            });\n\t        }\n\t        // Initialise the value elements based on the condition\n\t        this.dom.value = [].concat(this.s.conditions[this.s.condition].init(this, Criteria.updateListener, loadedCriteria !== undefined ? loadedCriteria.value : undefined));\n\t        if (loadedCriteria !== undefined && loadedCriteria.value !== undefined) {\n\t            this.s.value = loadedCriteria.value;\n\t        }\n\t        // Insert value elements and trigger the inserted event\n\t        $(this.dom.value[0])\n\t            .insertAfter(this.dom.condition)\n\t            .trigger('dtsb-inserted');\n\t        for (var i = 1; i < this.dom.value.length; i++) {\n\t            $(this.dom.value[i])\n\t                .insertAfter(this.dom.value[i - 1])\n\t                .trigger('dtsb-inserted');\n\t        }\n\t        // Check if the criteria can be used in a search\n\t        this.s.filled = this.s.conditions[this.s.condition].isInputValid(this.dom.value, this);\n\t        this.setListeners();\n\t        // If it can and this is different to before then trigger a draw\n\t        if (prevFilled !== this.s.filled) {\n\t            this.s.dt.draw();\n\t            this.setListeners();\n\t        }\n\t    };\n\t    Criteria.version = '1.0.0';\n\t    Criteria.classes = {\n\t        button: 'dtsb-button',\n\t        buttonContainer: 'dtsb-buttonContainer',\n\t        condition: 'dtsb-condition',\n\t        container: 'dtsb-criteria',\n\t        data: 'dtsb-data',\n\t        \"delete\": 'dtsb-delete',\n\t        dropDown: 'dtsb-dropDown',\n\t        greyscale: 'dtsb-greyscale',\n\t        input: 'dtsb-input',\n\t        italic: 'dtsb-italic',\n\t        joiner: 'dtsp-joiner',\n\t        left: 'dtsb-left',\n\t        notItalic: 'dtsb-notItalic',\n\t        option: 'dtsb-option',\n\t        right: 'dtsb-right',\n\t        value: 'dtsb-value',\n\t        vertical: 'dtsb-vertical'\n\t    };\n\t    /**\n\t     * Default initialisation function for select conditions\n\t     */\n\t    Criteria.initSelect = function (that, fn, preDefined, array) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        if (array === void 0) { array = false; }\n\t        var column = $(that.dom.data).children('option:selected').val();\n\t        var indexArray = that.s.dt.rows().indexes().toArray();\n\t        var settings = that.s.dt.settings()[0];\n\t        // Declare select element to be used with all of the default classes and listeners.\n\t        var el = $('<select/>')\n\t            .addClass(Criteria.classes.value)\n\t            .addClass(Criteria.classes.dropDown)\n\t            .addClass(Criteria.classes.italic)\n\t            .append(that.dom.valueTitle)\n\t            .on('input change', function () {\n\t            $(this).removeClass(Criteria.classes.italic);\n\t            fn(that, this);\n\t        });\n\t        if (that.c.greyscale) {\n\t            $(el).addClass(Criteria.classes.greyscale);\n\t        }\n\t        var added = [];\n\t        var options = [];\n\t        // Add all of the options from the table to the select element.\n\t        // Only add one option for each possible value\n\t        for (var _i = 0, indexArray_1 = indexArray; _i < indexArray_1.length; _i++) {\n\t            var index = indexArray_1[_i];\n\t            var filter = settings.oApi._fnGetCellData(settings, index, column, typeof that.c.orthogonal === 'string' ?\n\t                that.c.orthogonal :\n\t                that.c.orthogonal.search);\n\t            var value = {\n\t                filter: typeof filter === 'string' ?\n\t                    filter.replace(/[\\r\\n\\u2028]/g, ' ') : // Need to replace certain characters to match the search values\n\t                    filter,\n\t                index: index,\n\t                text: settings.oApi._fnGetCellData(settings, index, column, typeof that.c.orthogonal === 'string' ?\n\t                    that.c.orthogonal :\n\t                    that.c.orthogonal.display)\n\t            };\n\t            // If we are dealing with an array type, either make sure we are working with arrays, or sort them\n\t            if (that.s.type === 'array') {\n\t                value.filter = !Array.isArray(value.filter) ?\n\t                    [value.filter] :\n\t                    value.filter = value.filter.sort();\n\t                value.text = !Array.isArray(value.text) ?\n\t                    [value.text] :\n\t                    value.text = value.text.sort();\n\t            }\n\t            // Function to add an option to the select element\n\t            var addOption = function (filt, text) {\n\t                // Add text and value, stripping out any html if that is the column type\n\t                var opt = $('<option>', {\n\t                    text: typeof text === 'string' ?\n\t                        text.replace(/(<([^>]+)>)/ig, '') :\n\t                        text,\n\t                    type: Array.isArray(filt) ? 'Array' : 'String',\n\t                    value: that.s.type.indexOf('html') !== -1 && filt !== null && typeof filt === 'string' ?\n\t                        filt.replace(/(<([^>]+)>)/ig, '') :\n\t                        filt\n\t                })\n\t                    .addClass(that.classes.option)\n\t                    .addClass(that.classes.notItalic);\n\t                var val = $(opt).val();\n\t                // Check that this value has not already been added\n\t                if (added.indexOf(val) === -1) {\n\t                    added.push(val);\n\t                    options.push(opt);\n\t                    if (preDefined !== null && Array.isArray(preDefined[0])) {\n\t                        preDefined[0] = preDefined[0].sort().join(',');\n\t                    }\n\t                    // If this value was previously selected as indicated by preDefined, then select it again\n\t                    if (preDefined !== null && opt.val() === preDefined[0]) {\n\t                        opt.attr('selected', true);\n\t                        $(el).removeClass(Criteria.classes.italic);\n\t                    }\n\t                }\n\t            };\n\t            // If this is to add the individual values within the array we need to loop over the array\n\t            if (array) {\n\t                for (var i = 0; i < value.filter.length; i++) {\n\t                    addOption(value.filter[i], value.text[i]);\n\t                }\n\t            }\n\t            // Otherwise the value that is in the cell is to be added\n\t            else {\n\t                addOption(value.filter, value.text);\n\t            }\n\t        }\n\t        options.sort(function (a, b) {\n\t            if (that.s.type === 'string' || that.s.type === 'num' || that.s.type === 'html' || that.s.type === 'html-num') {\n\t                if ($(a).val() < $(b).val()) {\n\t                    return -1;\n\t                }\n\t                else if ($(a).val() < $(b).val()) {\n\t                    return 1;\n\t                }\n\t                else {\n\t                    return 0;\n\t                }\n\t            }\n\t            else if (that.s.type === 'num-fmt' || that.s.type === 'html-num-fmt') {\n\t                if (+$(a).val().replace(/[^0-9.]/g, '') < +$(b).val().replace(/[^0-9.]/g, '')) {\n\t                    return -1;\n\t                }\n\t                else if (+$(a).val().replace(/[^0-9.]/g, '') < +$(b).val().replace(/[^0-9.]/g, '')) {\n\t                    return 1;\n\t                }\n\t                else {\n\t                    return 0;\n\t                }\n\t            }\n\t        });\n\t        for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n\t            var opt = options_1[_a];\n\t            $(el).append(opt);\n\t        }\n\t        return el;\n\t    };\n\t    /**\n\t     * Default initialisation function for select array conditions\n\t     *\n\t     * This exists because there needs to be different select functionality for contains/without and equals/not\n\t     */\n\t    Criteria.initSelectArray = function (that, fn, preDefined) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        return Criteria.initSelect(that, fn, preDefined, true);\n\t    };\n\t    /**\n\t     * Default initialisation function for input conditions\n\t     */\n\t    Criteria.initInput = function (that, fn, preDefined) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        // Declare the input element\n\t        var el = $('<input/>')\n\t            .addClass(Criteria.classes.value)\n\t            .addClass(Criteria.classes.input)\n\t            .on('input', function () { fn(that, this); });\n\t        if (that.c.greyscale) {\n\t            $(el).addClass(Criteria.classes.greyscale);\n\t        }\n\t        // If there is a preDefined value then add it\n\t        if (preDefined !== null) {\n\t            $(el).val(preDefined[0]);\n\t        }\n\t        return el;\n\t    };\n\t    /**\n\t     * Default initialisation function for conditions requiring 2 inputs\n\t     */\n\t    Criteria.init2Input = function (that, fn, preDefined) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        // Declare all of the necessary jQuery elements\n\t        var els = [\n\t            $('<input/>')\n\t                .addClass(Criteria.classes.value)\n\t                .addClass(Criteria.classes.input)\n\t                .on('input', function () { fn(that, this); }),\n\t            $('<span>')\n\t                .addClass(that.classes.joiner).text(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),\n\t            $('<input/>')\n\t                .addClass(Criteria.classes.value)\n\t                .addClass(Criteria.classes.input)\n\t                .on('input', function () { fn(that, this); })\n\t        ];\n\t        if (that.c.greyscale) {\n\t            $(els[0]).addClass(Criteria.classes.greyscale);\n\t            $(els[2]).addClass(Criteria.classes.greyscale);\n\t        }\n\t        // If there is a preDefined value then add it\n\t        if (preDefined !== null) {\n\t            $(els[0]).val(preDefined[0]);\n\t            $(els[2]).val(preDefined[1]);\n\t        }\n\t        that.s.dt.off('draw');\n\t        that.s.dt.one('draw', function () {\n\t            $(that.s.topGroup).trigger('dtsb-redrawContents');\n\t        });\n\t        return els;\n\t    };\n\t    /**\n\t     * Default initialisation function for date conditions\n\t     */\n\t    Criteria.initDate = function (that, fn, preDefined) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        // Declare date element using DataTables dateTime plugin\n\t        var el = $('<input/>')\n\t            .addClass(Criteria.classes.value)\n\t            .addClass(Criteria.classes.input)\n\t            .dtDateTime({\n\t            attachTo: 'input',\n\t            format: that.s.momentFormat ? that.s.momentFormat : undefined\n\t        })\n\t            .on('input change', function () { fn(that, this); });\n\t        if (that.c.greyscale) {\n\t            $(el).addClass(Criteria.classes.greyscale);\n\t        }\n\t        // If there is a preDefined value then add it\n\t        if (preDefined !== null) {\n\t            $(el).val(preDefined[0]);\n\t        }\n\t        return el;\n\t    };\n\t    Criteria.initNoValue = function (that) {\n\t        that.s.dt.off('draw');\n\t        that.s.dt.one('draw', function () {\n\t            $(that.s.topGroup).trigger('dtsb-redrawContents');\n\t        });\n\t    };\n\t    Criteria.init2Date = function (that, fn, preDefined) {\n\t        if (preDefined === void 0) { preDefined = null; }\n\t        // Declare all of the date elements that are required using DataTables dateTime plugin\n\t        var els = [\n\t            $('<input/>')\n\t                .addClass(Criteria.classes.value)\n\t                .addClass(Criteria.classes.input)\n\t                .dtDateTime({\n\t                attachTo: 'input',\n\t                format: that.s.momentFormat ? that.s.momentFormat : undefined\n\t            })\n\t                .on('input change', function () { fn(that, this); }),\n\t            $('<span>')\n\t                .addClass(that.classes.joiner)\n\t                .text(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),\n\t            $('<input/>')\n\t                .addClass(Criteria.classes.value)\n\t                .addClass(Criteria.classes.input)\n\t                .dtDateTime({\n\t                attachTo: 'input',\n\t                format: that.s.momentFormat ? that.s.momentFormat : undefined\n\t            })\n\t                .on('input change', function () { fn(that, this); })\n\t        ];\n\t        if (that.c.greyscale) {\n\t            $(els[0]).addClass(Criteria.classes.greyscale);\n\t            $(els[2]).addClass(Criteria.classes.greyscale);\n\t        }\n\t        // If there are and preDefined values then add them\n\t        if (preDefined !== null && preDefined.length > 0) {\n\t            $(els[0]).val(preDefined[0]);\n\t            $(els[2]).val(preDefined[1]);\n\t        }\n\t        that.s.dt.off('draw');\n\t        that.s.dt.one('draw', function () {\n\t            $(that.s.topGroup).trigger('dtsb-redrawContents');\n\t        });\n\t        return els;\n\t    };\n\t    /**\n\t     * Default function for select elements to validate condition\n\t     */\n\t    Criteria.isInputValidSelect = function (el) {\n\t        var allFilled = true;\n\t        // Check each element to make sure that the selections are valid\n\t        for (var _i = 0, el_1 = el; _i < el_1.length; _i++) {\n\t            var element = el_1[_i];\n\t            if ($(element).children('option:selected').length === $(element).children('option').length - $(element).children('option.' + Criteria.classes.notItalic).length &&\n\t                $(element).children('option:selected').length === 1 &&\n\t                $(element).children('option:selected')[0] === $(element).children('option:hidden')[0]) {\n\t                allFilled = false;\n\t            }\n\t        }\n\t        return allFilled;\n\t    };\n\t    /**\n\t     * Default function for input and date elements to validate condition\n\t     */\n\t    Criteria.isInputValidInput = function (el) {\n\t        var allFilled = true;\n\t        // Check each element to make sure that the inputs are valid\n\t        for (var _i = 0, el_2 = el; _i < el_2.length; _i++) {\n\t            var element = el_2[_i];\n\t            if ($(element).is('input') && $(element).val().length === 0) {\n\t                allFilled = false;\n\t            }\n\t        }\n\t        return allFilled;\n\t    };\n\t    /**\n\t     * Default function for getting select conditions\n\t     */\n\t    Criteria.inputValueSelect = function (el) {\n\t        var values = [];\n\t        // Go through the select elements and push each selected option to the return array\n\t        for (var _i = 0, el_3 = el; _i < el_3.length; _i++) {\n\t            var element = el_3[_i];\n\t            if ($(element).is('select')) {\n\t                var val = $(element).children('option:selected').val();\n\t                // If the type of the option is an array we need to split it up and sort it\n\t                values.push($(element).children('option:selected').attr('type') === 'Array' ?\n\t                    val.split(',').sort() :\n\t                    val);\n\t            }\n\t        }\n\t        return values;\n\t    };\n\t    /**\n\t     * Default function for getting input conditions\n\t     */\n\t    Criteria.inputValueInput = function (el) {\n\t        var values = [];\n\t        // Go through the input elements and push each value to the return array\n\t        for (var _i = 0, el_4 = el; _i < el_4.length; _i++) {\n\t            var element = el_4[_i];\n\t            if ($(element).is('input')) {\n\t                values.push($(element).val());\n\t            }\n\t        }\n\t        return values;\n\t    };\n\t    /**\n\t     * Function that is run on each element as a call back when a search should be triggered\n\t     */\n\t    Criteria.updateListener = function (that, el) {\n\t        // When the value is changed the criteria is now complete so can be included in searches\n\t        // Get the condition from the map based on the key that has been selected for the condition\n\t        var condition = that.s.conditions[that.s.condition];\n\t        that.s.filled = condition.isInputValid(that.dom.value, that);\n\t        that.s.value = condition.inputValue(that.dom.value, that);\n\t        if (!Array.isArray(that.s.value)) {\n\t            that.s.value = [that.s.value];\n\t        }\n\t        for (var i = 0; i < that.s.value.length; i++) {\n\t            // If the value is an array we need to sort it\n\t            if (Array.isArray(that.s.value[i])) {\n\t                that.s.value[i].sort();\n\t            }\n\t            // Otherwise replace the decimal place character for i18n\n\t            else if (that.s.dt.settings()[0].oLanguage.sDecimal !== '') {\n\t                that.s.value[i] = that.s.value[i].replace(that.s.dt.settings()[0].oLanguage.sDecimal, '.');\n\t            }\n\t        }\n\t        // Take note of the cursor position so that we can refocus there later\n\t        var idx = null;\n\t        var cursorPos = null;\n\t        for (var i = 0; i < that.dom.value.length; i++) {\n\t            if (el === that.dom.value[i][0]) {\n\t                idx = i;\n\t                if (el.selectionStart !== undefined) {\n\t                    cursorPos = el.selectionStart;\n\t                }\n\t            }\n\t        }\n\t        // Trigger a search\n\t        that.s.dt.draw();\n\t        // Refocus the element and set the correct cursor position\n\t        if (idx !== null) {\n\t            $(that.dom.value[idx]).removeClass(that.classes.italic);\n\t            $(that.dom.value[idx]).focus();\n\t            if (cursorPos !== null) {\n\t                $(that.dom.value[idx])[0].setSelectionRange(cursorPos, cursorPos);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.dateConditions = {\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.equals', i18n.conditions.date.equals);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                return value === comparison[0];\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.not', i18n.conditions.date.not);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                return value !== comparison[0];\n\t            }\n\t        },\n\t        '<': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.before', i18n.conditions.date.before);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                return value < comparison[0];\n\t            }\n\t        },\n\t        '>': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.after', i18n.conditions.date.after);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                return value > comparison[0];\n\t            }\n\t        },\n\t        'between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.between', i18n.conditions.date.between);\n\t            },\n\t            init: Criteria.init2Date,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                if (comparison[0] < comparison[1]) {\n\t                    return comparison[0] <= value && value <= comparison[1];\n\t                }\n\t                else {\n\t                    return comparison[1] <= value && value <= comparison[0];\n\t                }\n\t            }\n\t        },\n\t        '!between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.notBetween', i18n.conditions.date.notBetween);\n\t            },\n\t            init: Criteria.init2Date,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                value = value.replace(/(\\/|\\-|\\,)/g, '-');\n\t                if (comparison[0] < comparison[1]) {\n\t                    return !(comparison[0] <= value && value <= comparison[1]);\n\t                }\n\t                else {\n\t                    return !(comparison[1] <= value && value <= comparison[0]);\n\t                }\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.empty', i18n.conditions.date.empty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.date.notEmpty', i18n.conditions.date.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return !(value === null || value === undefined || value.length === 0);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.momentDateConditions = {\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.equals', i18n.conditions.moment.equals);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                return moment(value, that.s.momentFormat).valueOf() === moment(comparison[0], that.s.momentFormat).valueOf();\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.not', i18n.conditions.moment.not);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                return moment(value, that.s.momentFormat).valueOf() !== moment(comparison[0], that.s.momentFormat).valueOf();\n\t            }\n\t        },\n\t        '<': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.before', i18n.conditions.moment.before);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                return moment(value, that.s.momentFormat).valueOf() < moment(comparison[0], that.s.momentFormat).valueOf();\n\t            }\n\t        },\n\t        '>': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.after', i18n.conditions.moment.after);\n\t            },\n\t            init: Criteria.initDate,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                return moment(value, that.s.momentFormat).valueOf() > moment(comparison[0], that.s.momentFormat).valueOf();\n\t            }\n\t        },\n\t        'between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.between', i18n.conditions.moment.between);\n\t            },\n\t            init: Criteria.init2Date,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                var val = moment(value, that.s.momentFormat).valueOf();\n\t                var comp0 = moment(comparison[0], that.s.momentFormat).valueOf();\n\t                var comp1 = moment(comparison[1], that.s.momentFormat).valueOf();\n\t                if (comp0 < comp1) {\n\t                    return comp0 <= val && val <= comp1;\n\t                }\n\t                else {\n\t                    return comp1 <= val && val <= comp0;\n\t                }\n\t            }\n\t        },\n\t        '!between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.notBetween', i18n.conditions.moment.notBetween);\n\t            },\n\t            init: Criteria.init2Date,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison, that) {\n\t                var val = moment(value, that.s.momentFormat).valueOf();\n\t                var comp0 = moment(comparison[0], that.s.momentFormat).valueOf();\n\t                var comp1 = moment(comparison[1], that.s.momentFormat).valueOf();\n\t                if (comp0 < comp1) {\n\t                    return !(+comp0 <= +val && +val <= +comp1);\n\t                }\n\t                else {\n\t                    return !(+comp1 <= +val && +val <= +comp0);\n\t                }\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.empty', i18n.conditions.moment.empty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.moment.notEmpty', i18n.conditions.moment.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return !(value === null || value === undefined || value.length === 0);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.numConditions = {\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.equals', i18n.conditions.number.equals);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                return +value === +comparison[0];\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.not', i18n.conditions.number.not);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                return +value !== +comparison[0];\n\t            }\n\t        },\n\t        '<': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.lt', i18n.conditions.number.lt);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return +value < +comparison[0];\n\t            }\n\t        },\n\t        '<=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.lte', i18n.conditions.number.lte);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return +value <= +comparison[0];\n\t            }\n\t        },\n\t        '>=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.gte', i18n.conditions.number.gte);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return +value >= +comparison[0];\n\t            }\n\t        },\n\t        '>': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.gt', i18n.conditions.number.gt);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return +value > +comparison[0];\n\t            }\n\t        },\n\t        'between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.between', i18n.conditions.number.between);\n\t            },\n\t            init: Criteria.init2Input,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                if (+comparison[0] < +comparison[1]) {\n\t                    return +comparison[0] <= +value && +value <= +comparison[1];\n\t                }\n\t                else {\n\t                    return +comparison[1] <= +value && +value <= +comparison[0];\n\t                }\n\t            }\n\t        },\n\t        '!between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.notBetween', i18n.conditions.number.notBetween);\n\t            },\n\t            init: Criteria.init2Input,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                if (+comparison[0] < +comparison[1]) {\n\t                    return !(+comparison[0] <= +value && +value <= +comparison[1]);\n\t                }\n\t                else {\n\t                    return !(+comparison[1] <= +value && +value <= +comparison[0]);\n\t                }\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.empty', i18n.conditions.number.empty);\n\t            },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () { return; },\n\t            isInputValid: function () { return true; },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.notEmpty', i18n.conditions.number.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return !(value === null || value === undefined || value.length === 0);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.numFmtConditions = {\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.equals', i18n.conditions.number.equals);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val === +comp;\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.not', i18n.conditions.number.not);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val !== +comp;\n\t            }\n\t        },\n\t        '<': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.lt', i18n.conditions.number.lt);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val < +comp;\n\t            }\n\t        },\n\t        '<=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.lte', i18n.conditions.number.lte);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val <= +comp;\n\t            }\n\t        },\n\t        '>=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.gte', i18n.conditions.number.gte);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val >= +comp;\n\t            }\n\t        },\n\t        '>': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.gt', i18n.conditions.number.gt);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                return +val > +comp;\n\t            }\n\t        },\n\t        'between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.between', i18n.conditions.number.between);\n\t            },\n\t            init: Criteria.init2Input,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp0 = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                var comp1 = comparison[1].indexOf('-') === 0 ?\n\t                    '-' + comparison[1].replace(/[^0-9.]/g, '') :\n\t                    comparison[1].replace(/[^0-9.]/g, '');\n\t                if (+comp0 < +comp1) {\n\t                    return +comp0 <= +val && +val <= +comp1;\n\t                }\n\t                else {\n\t                    return +comp1 <= +val && +val <= +comp0;\n\t                }\n\t            }\n\t        },\n\t        '!between': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.notBetween', i18n.conditions.number.notBetween);\n\t            },\n\t            init: Criteria.init2Input,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                var val = value.indexOf('-') === 0 ?\n\t                    '-' + value.replace(/[^0-9.]/g, '') :\n\t                    value.replace(/[^0-9.]/g, '');\n\t                var comp0 = comparison[0].indexOf('-') === 0 ?\n\t                    '-' + comparison[0].replace(/[^0-9.]/g, '') :\n\t                    comparison[0].replace(/[^0-9.]/g, '');\n\t                var comp1 = comparison[1].indexOf('-') === 0 ?\n\t                    '-' + comparison[1].replace(/[^0-9.]/g, '') :\n\t                    comparison[1].replace(/[^0-9.]/g, '');\n\t                if (+comp0 < +comp1) {\n\t                    return !(+comp0 <= +val && +val <= +comp1);\n\t                }\n\t                else {\n\t                    return !(+comp1 <= +val && +val <= +comp0);\n\t                }\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.empty', i18n.conditions.number.empty);\n\t            },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () { return; },\n\t            isInputValid: function () { return true; },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.number.notEmpty', i18n.conditions.number.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return !(value === null || value === undefined || value.length === 0);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.stringConditions = {\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.equals', i18n.conditions.string.equals);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                return value === comparison[0];\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.not', i18n.conditions.string.not);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return value !== comparison[0];\n\t            }\n\t        },\n\t        'starts': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.startsWith', i18n.conditions.string.startsWith);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return value.toLowerCase().indexOf(comparison[0].toLowerCase()) === 0;\n\t            }\n\t        },\n\t        'contains': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.contains', i18n.conditions.string.contains);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return value.toLowerCase().indexOf(comparison[0].toLowerCase()) !== -1;\n\t            }\n\t        },\n\t        'ends': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.endsWith', i18n.conditions.string.endsWith);\n\t            },\n\t            init: Criteria.initInput,\n\t            inputValue: Criteria.inputValueInput,\n\t            isInputValid: Criteria.isInputValidInput,\n\t            search: function (value, comparison) {\n\t                return value.toLowerCase().endsWith(comparison[0].toLowerCase());\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.empty', i18n.conditions.string.empty);\n\t            },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () { return; },\n\t            isInputValid: function () { return true; },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.string.notEmpty', i18n.conditions.string.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () {\n\t                return;\n\t            },\n\t            search: function (value) {\n\t                return !(value === null || value === undefined || value.length === 0);\n\t            }\n\t        }\n\t    };\n\t    // The order of the conditions will make tslint sad :(\n\t    Criteria.arrayConditions = {\n\t        'contains': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.contains', i18n.conditions.array.contains);\n\t            },\n\t            init: Criteria.initSelectArray,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                return value.indexOf(comparison[0]) !== -1;\n\t            }\n\t        },\n\t        'without': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.without', i18n.conditions.array.without);\n\t            },\n\t            init: Criteria.initSelectArray,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                return value.indexOf(comparison[0]) === -1;\n\t            }\n\t        },\n\t        '=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.equals', i18n.conditions.array.equals);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                if (value.length === comparison[0].length) {\n\t                    for (var i = 0; i < value.length; i++) {\n\t                        if (value[i] !== comparison[0][i]) {\n\t                            return false;\n\t                        }\n\t                    }\n\t                    return true;\n\t                }\n\t                return false;\n\t            }\n\t        },\n\t        '!=': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.not', i18n.conditions.array.not);\n\t            },\n\t            init: Criteria.initSelect,\n\t            inputValue: Criteria.inputValueSelect,\n\t            isInputValid: Criteria.isInputValidSelect,\n\t            search: function (value, comparison) {\n\t                if (value.length === comparison[0].length) {\n\t                    for (var i = 0; i < value.length; i++) {\n\t                        if (value[i] !== comparison[0][i]) {\n\t                            return true;\n\t                        }\n\t                    }\n\t                    return false;\n\t                }\n\t                return true;\n\t            }\n\t        },\n\t        'null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.empty', i18n.conditions.array.empty);\n\t            },\n\t            init: Criteria.initNoValue,\n\t            isInputValid: function () { return true; },\n\t            inputValue: function () { return; },\n\t            search: function (value) {\n\t                return (value === null || value === undefined || value.length === 0);\n\t            }\n\t        },\n\t        '!null': {\n\t            conditionName: function (dt, i18n) {\n\t                return dt.i18n('searchBuilder.conditions.array.notEmpty', i18n.conditions.array.notEmpty);\n\t            },\n\t            isInputValid: function () { return true; },\n\t            init: Criteria.initNoValue,\n\t            inputValue: function () { return; },\n\t            search: function (value) {\n\t                return (value !== null && value !== undefined && value.length !== 0);\n\t            }\n\t        }\n\t    };\n\t    Criteria.defaults = {\n\t        columns: true,\n\t        conditions: {\n\t            'array': Criteria.arrayConditions,\n\t            'date': Criteria.dateConditions,\n\t            'html': Criteria.stringConditions,\n\t            'html-num': Criteria.numConditions,\n\t            'html-num-fmt': Criteria.numFmtConditions,\n\t            'moment': Criteria.momentDateConditions,\n\t            'num': Criteria.numConditions,\n\t            'num-fmt': Criteria.numFmtConditions,\n\t            'string': Criteria.stringConditions\n\t        },\n\t        depthLimit: false,\n\t        filterChanged: undefined,\n\t        greyscale: false,\n\t        i18n: {\n\t            add: 'Add Condition',\n\t            button: {\n\t                0: 'Search Builder',\n\t                _: 'Search Builder (%d)'\n\t            },\n\t            clearAll: 'Clear All',\n\t            condition: 'Condition',\n\t            data: 'Data',\n\t            deleteTitle: 'Delete filtering rule',\n\t            leftTitle: 'Outdent criteria',\n\t            logicAnd: 'And',\n\t            logicOr: 'Or',\n\t            rightTitle: 'Indent criteria',\n\t            title: {\n\t                0: 'Custom Search Builder',\n\t                _: 'Custom Search Builder (%d)'\n\t            },\n\t            value: 'Value',\n\t            valueJoiner: 'and'\n\t        },\n\t        logic: 'AND',\n\t        orthogonal: {\n\t            display: 'display',\n\t            search: 'filter'\n\t        },\n\t        preDefined: false\n\t    };\n\t    return Criteria;\n\t}());\n\n\tvar $$1;\n\tvar DataTable$1;\n\t/**\n\t * Sets the value of jQuery for use in the file\n\t * @param jq the instance of jQuery to be set\n\t */\n\tfunction setJQuery$1(jq) {\n\t    $$1 = jq;\n\t    DataTable$1 = jq.fn.dataTable;\n\t}\n\t/**\n\t * The Group class is used within SearchBuilder to represent a group of criteria\n\t */\n\tvar Group = /** @class */ (function () {\n\t    function Group(table, opts, topGroup, index, isChild, depth) {\n\t        if (index === void 0) { index = 0; }\n\t        if (isChild === void 0) { isChild = false; }\n\t        if (depth === void 0) { depth = 1; }\n\t        // Check that the required version of DataTables is included\n\t        if (!DataTable$1 || !DataTable$1.versionCheck || !DataTable$1.versionCheck('1.10.0')) {\n\t            throw new Error('SearchBuilder requires DataTables 1.10 or newer');\n\t        }\n\t        this.classes = $$1.extend(true, {}, Group.classes);\n\t        // Get options from user\n\t        this.c = $$1.extend(true, {}, Group.defaults, opts);\n\t        this.s = {\n\t            criteria: [],\n\t            depth: depth,\n\t            dt: table,\n\t            index: index,\n\t            isChild: isChild,\n\t            logic: undefined,\n\t            opts: opts,\n\t            toDrop: undefined,\n\t            topGroup: topGroup\n\t        };\n\t        this.dom = {\n\t            add: $$1('<button/>')\n\t                .addClass(this.classes.add)\n\t                .addClass(this.classes.button)\n\t                .attr('type', 'button'),\n\t            clear: $$1('<button>&times</button>')\n\t                .addClass(this.classes.button)\n\t                .addClass(this.classes.clearGroup)\n\t                .attr('type', 'button'),\n\t            container: $$1('<div/>')\n\t                .addClass(this.classes.group),\n\t            logic: $$1('<button/>')\n\t                .addClass(this.classes.logic)\n\t                .addClass(this.classes.button)\n\t                .attr('type', 'button'),\n\t            logicContainer: $$1('<div/>')\n\t                .addClass(this.classes.logicContainer)\n\t        };\n\t        // A reference to the top level group is maintained throughout any subgroups and criteria that may be created\n\t        if (this.s.topGroup === undefined) {\n\t            this.s.topGroup = this.dom.container;\n\t        }\n\t        this._setup();\n\t        return this;\n\t    }\n\t    /**\n\t     * Destroys the groups buttons, clears the internal criteria and removes it from the dom\n\t     */\n\t    Group.prototype.destroy = function () {\n\t        // Turn off listeners\n\t        $$1(this.dom.add).off('.dtsb');\n\t        $$1(this.dom.logic).off('.dtsb');\n\t        // Trigger event for groups at a higher level to pick up on\n\t        $$1(this.dom.container)\n\t            .trigger('dtsb-destroy')\n\t            .remove();\n\t        this.s.criteria = [];\n\t    };\n\t    /**\n\t     * Gets the details required to rebuild the group\n\t     */\n\t    Group.prototype.getDetails = function () {\n\t        if (this.s.criteria.length === 0) {\n\t            return {};\n\t        }\n\t        var details = {\n\t            criteria: [],\n\t            logic: this.s.logic\n\t        };\n\t        // NOTE here crit could be either a subgroup or a criteria\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            details.criteria.push(crit.criteria.getDetails());\n\t        }\n\t        return details;\n\t    };\n\t    /**\n\t     * Getter for the node for the container of the group\n\t     * @returns Node for the container of the group\n\t     */\n\t    Group.prototype.getNode = function () {\n\t        return this.dom.container;\n\t    };\n\t    /**\n\t     * Rebuilds the group based upon the details passed in\n\t     * @param loadedDetails the details required to rebuild the group\n\t     */\n\t    Group.prototype.rebuild = function (loadedDetails) {\n\t        // If no criteria are stored then just return\n\t        if (loadedDetails.criteria === undefined || loadedDetails.criteria === null || loadedDetails.criteria.length === 0) {\n\t            return;\n\t        }\n\t        this.s.logic = loadedDetails.logic;\n\t        $$1(this.dom.logic).text(this.s.logic === 'OR'\n\t            ? this.s.dt.i18n('searchBuilder.logicOr', this.c.i18n.logicOr)\n\t            : this.s.dt.i18n('searchBuilder.logicAnd', this.c.i18n.logicAnd));\n\t        // Add all of the criteria, be it a sub group or a criteria\n\t        for (var _i = 0, _a = loadedDetails.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            if (crit.logic !== undefined) {\n\t                this._addPrevGroup(crit);\n\t            }\n\t            else if (crit.logic === undefined) {\n\t                this._addPrevCriteria(crit);\n\t            }\n\t        }\n\t        // For all of the criteria children, update the arrows incase they require changing and set the listeners\n\t        for (var _b = 0, _c = this.s.criteria; _b < _c.length; _b++) {\n\t            var crit = _c[_b];\n\t            if (crit.criteria instanceof Criteria) {\n\t                crit.criteria.updateArrows(this.s.criteria.length > 1, false);\n\t                this._setCriteriaListeners(crit.criteria);\n\t            }\n\t        }\n\t    };\n\t    /**\n\t     * Redraws the Contents of the searchBuilder Groups and Criteria\n\t     */\n\t    Group.prototype.redrawContents = function () {\n\t        // Clear the container out and add the basic elements\n\t        $$1(this.dom.container)\n\t            .empty()\n\t            .append(this.dom.logicContainer)\n\t            .append(this.dom.add);\n\t        // Sort the criteria by index so that they appear in the correct order\n\t        this.s.criteria.sort(function (a, b) {\n\t            if (a.criteria.s.index < b.criteria.s.index) {\n\t                return -1;\n\t            }\n\t            else if (a.criteria.s.index > b.criteria.s.index) {\n\t                return 1;\n\t            }\n\t            return 0;\n\t        });\n\t        this.setListeners();\n\t        for (var i = 0; i < this.s.criteria.length; i++) {\n\t            var crit = this.s.criteria[i].criteria;\n\t            if (crit instanceof Criteria) {\n\t                // Reset the index to the new value\n\t                this.s.criteria[i].index = i;\n\t                this.s.criteria[i].criteria.s.index = i;\n\t                // Add to the group\n\t                $$1(this.s.criteria[i].criteria.dom.container).insertBefore(this.dom.add);\n\t                // Set listeners for various points\n\t                this._setCriteriaListeners(crit);\n\t                this.s.criteria[i].criteria.rebuild(this.s.criteria[i].criteria.getDetails());\n\t            }\n\t            else if (crit instanceof Group && crit.s.criteria.length > 0) {\n\t                // Reset the index to the new value\n\t                this.s.criteria[i].index = i;\n\t                this.s.criteria[i].criteria.s.index = i;\n\t                // Add the sub group to the group\n\t                $$1(this.s.criteria[i].criteria.dom.container).insertBefore(this.dom.add);\n\t                // Redraw the contents of the group\n\t                crit.redrawContents();\n\t                this._setGroupListeners(crit);\n\t            }\n\t            else {\n\t                // The group is empty so remove it\n\t                this.s.criteria.splice(i, 1);\n\t                i--;\n\t            }\n\t        }\n\t        this.setupLogic();\n\t    };\n\t    /**\n\t     * Search method, checking the row data against the criteria in the group\n\t     * @param rowData The row data to be compared\n\t     * @returns boolean The result of the search\n\t     */\n\t    Group.prototype.search = function (rowData, rowIdx) {\n\t        if (this.s.logic === 'AND') {\n\t            return this._andSearch(rowData, rowIdx);\n\t        }\n\t        else if (this.s.logic === 'OR') {\n\t            return this._orSearch(rowData, rowIdx);\n\t        }\n\t        return true;\n\t    };\n\t    /**\n\t     * Locates the groups logic button to the correct location on the page\n\t     */\n\t    Group.prototype.setupLogic = function () {\n\t        // Remove logic button\n\t        $$1(this.dom.logicContainer).remove();\n\t        $$1(this.dom.clear).remove();\n\t        // If there are no criteria in the group then keep the logic removed and return\n\t        if (this.s.criteria.length < 1) {\n\t            if (!this.s.isChild) {\n\t                $$1(this.dom.container).trigger('dtsb-destroy');\n\t                // Set criteria left margin\n\t                $$1(this.dom.container).css('margin-left', 0);\n\t            }\n\t            return;\n\t        }\n\t        // Set width, take 2 for the border\n\t        var height = $$1(this.dom.container).height() - 2;\n\t        $$1(this.dom.clear).height('0px');\n\t        $$1(this.dom.logicContainer).append(this.dom.clear).width(height);\n\t        // Prepend logic button\n\t        $$1(this.dom.container).prepend(this.dom.logicContainer);\n\t        this._setLogicListener();\n\t        // Set criteria left margin\n\t        $$1(this.dom.container).css('margin-left', $$1(this.dom.logicContainer).outerHeight(true));\n\t        var logicOffset = $$1(this.dom.logicContainer).offset();\n\t        // Set horizontal alignment\n\t        var currentLeft = logicOffset.left;\n\t        var groupLeft = $$1(this.dom.container).offset().left;\n\t        var shuffleLeft = currentLeft - groupLeft;\n\t        var newPos = currentLeft - shuffleLeft - $$1(this.dom.logicContainer).outerHeight(true);\n\t        $$1(this.dom.logicContainer).offset({ left: newPos });\n\t        // Set vertical alignment\n\t        var firstCrit = $$1(this.dom.logicContainer).next();\n\t        var currentTop = logicOffset.top;\n\t        var firstTop = $$1(firstCrit).offset().top;\n\t        var shuffleTop = currentTop - firstTop;\n\t        var newTop = currentTop - shuffleTop;\n\t        $$1(this.dom.logicContainer).offset({ top: newTop });\n\t        $$1(this.dom.clear).outerHeight($$1(this.dom.logicContainer).height());\n\t        this._setClearListener();\n\t    };\n\t    /**\n\t     * Sets listeners on the groups elements\n\t     */\n\t    Group.prototype.setListeners = function () {\n\t        var _this = this;\n\t        $$1(this.dom.add).unbind('click');\n\t        $$1(this.dom.add).on('click', function () {\n\t            // If this is the parent group then the logic button has not been added yet\n\t            if (!_this.s.isChild) {\n\t                $$1(_this.dom.container).prepend(_this.dom.logicContainer);\n\t            }\n\t            _this.addCriteria();\n\t            $$1(_this.dom.container).trigger('dtsb-add');\n\t            _this.s.dt.state.save();\n\t            return false;\n\t        });\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            crit.criteria.setListeners();\n\t        }\n\t        this._setClearListener();\n\t        this._setLogicListener();\n\t    };\n\t    /**\n\t     * Adds a criteria to the group\n\t     * @param crit Instance of Criteria to be added to the group\n\t     */\n\t    Group.prototype.addCriteria = function (crit, redraw) {\n\t        if (crit === void 0) { crit = null; }\n\t        if (redraw === void 0) { redraw = true; }\n\t        var index = crit === null ? this.s.criteria.length : crit.s.index;\n\t        var criteria = new Criteria(this.s.dt, this.s.opts, this.s.topGroup, index, this.s.depth);\n\t        // If a Criteria has been passed in then set the values to continue that\n\t        if (crit !== null) {\n\t            criteria.c = crit.c;\n\t            criteria.s = crit.s;\n\t            criteria.s.depth = this.s.depth;\n\t            criteria.classes = crit.classes;\n\t        }\n\t        criteria.populate();\n\t        var inserted = false;\n\t        for (var i = 0; i < this.s.criteria.length; i++) {\n\t            if (i === 0 && this.s.criteria[i].criteria.s.index > criteria.s.index) {\n\t                // Add the node for the criteria at the start of the group\n\t                $$1(criteria.getNode()).insertBefore(this.s.criteria[i].criteria.dom.container);\n\t                inserted = true;\n\t            }\n\t            else if (i < this.s.criteria.length - 1 &&\n\t                this.s.criteria[i].criteria.s.index < criteria.s.index &&\n\t                this.s.criteria[i + 1].criteria.s.index > criteria.s.index) {\n\t                // Add the node for the criteria in the correct location\n\t                $$1(criteria.getNode()).insertAfter(this.s.criteria[i].criteria.dom.container);\n\t                inserted = true;\n\t            }\n\t        }\n\t        if (!inserted) {\n\t            $$1(criteria.getNode()).insertBefore(this.dom.add);\n\t        }\n\t        // Add the details for this criteria to the array\n\t        this.s.criteria.push({\n\t            criteria: criteria,\n\t            index: index\n\t        });\n\t        this.s.criteria = this.s.criteria.sort(function (a, b) {\n\t            return a.criteria.s.index - b.criteria.s.index;\n\t        });\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var opt = _a[_i];\n\t            if (opt.criteria instanceof Criteria) {\n\t                opt.criteria.updateArrows(this.s.criteria.length > 1, redraw);\n\t            }\n\t        }\n\t        this._setCriteriaListeners(criteria);\n\t        criteria.setListeners();\n\t        this.setupLogic();\n\t    };\n\t    /**\n\t     * Checks the group to see if it has any filled criteria\n\t     */\n\t    Group.prototype.checkFilled = function () {\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            if ((crit.criteria instanceof Criteria && crit.criteria.s.filled) ||\n\t                (crit.criteria instanceof Group && crit.criteria.checkFilled())) {\n\t                return true;\n\t            }\n\t        }\n\t        return false;\n\t    };\n\t    /**\n\t     * Gets the count for the number of criteria in this group and any sub groups\n\t     */\n\t    Group.prototype.count = function () {\n\t        var count = 0;\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            if (crit.criteria instanceof Group) {\n\t                count += crit.criteria.count();\n\t            }\n\t            else {\n\t                count++;\n\t            }\n\t        }\n\t        return count;\n\t    };\n\t    /**\n\t     * Rebuilds a sub group that previously existed\n\t     * @param loadedGroup The details of a group within this group\n\t     */\n\t    Group.prototype._addPrevGroup = function (loadedGroup) {\n\t        var idx = this.s.criteria.length;\n\t        var group = new Group(this.s.dt, this.c, this.s.topGroup, idx, true, this.s.depth + 1);\n\t        // Add the new group to the criteria array\n\t        this.s.criteria.push({\n\t            criteria: group,\n\t            index: idx,\n\t            logic: group.s.logic\n\t        });\n\t        // Rebuild it with the previous conditions for that group\n\t        group.rebuild(loadedGroup);\n\t        this.s.criteria[idx].criteria = group;\n\t        $$1(this.s.topGroup).trigger('dtsb-redrawContents');\n\t        this._setGroupListeners(group);\n\t    };\n\t    /**\n\t     * Rebuilds a criteria of this group that previously existed\n\t     * @param loadedCriteria The details of a criteria within the group\n\t     */\n\t    Group.prototype._addPrevCriteria = function (loadedCriteria) {\n\t        var idx = this.s.criteria.length;\n\t        var criteria = new Criteria(this.s.dt, this.s.opts, this.s.topGroup, idx, this.s.depth);\n\t        criteria.populate();\n\t        // Add the new criteria to the criteria array\n\t        this.s.criteria.push({\n\t            criteria: criteria,\n\t            index: idx\n\t        });\n\t        // Rebuild it with the previous conditions for that criteria\n\t        criteria.rebuild(loadedCriteria);\n\t        this.s.criteria[idx].criteria = criteria;\n\t        $$1(this.s.topGroup).trigger('dtsb-redrawContents');\n\t    };\n\t    /**\n\t     * Checks And the criteria using AND logic\n\t     * @param rowData The row data to be checked against the search criteria\n\t     * @returns boolean The result of the AND search\n\t     */\n\t    Group.prototype._andSearch = function (rowData, rowIdx) {\n\t        // If there are no criteria then return true for this group\n\t        if (this.s.criteria.length === 0) {\n\t            return true;\n\t        }\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            // If the criteria is not complete then skip it\n\t            if (crit.criteria instanceof Criteria && !crit.criteria.s.filled) {\n\t                continue;\n\t            }\n\t            // Otherwise if a single one fails return false\n\t            else if (!crit.criteria.search(rowData, rowIdx)) {\n\t                return false;\n\t            }\n\t        }\n\t        // If we get to here then everything has passed, so return true for the group\n\t        return true;\n\t    };\n\t    /**\n\t     * Checks And the criteria using OR logic\n\t     * @param rowData The row data to be checked against the search criteria\n\t     * @returns boolean The result of the OR search\n\t     */\n\t    Group.prototype._orSearch = function (rowData, rowIdx) {\n\t        // If there are no criteria in the group then return true\n\t        if (this.s.criteria.length === 0) {\n\t            return true;\n\t        }\n\t        // This will check to make sure that at least one criteria in the group is complete\n\t        var filledfound = false;\n\t        for (var _i = 0, _a = this.s.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            if (crit.criteria instanceof Criteria && crit.criteria.s.filled) {\n\t                // A completed criteria has been found so set the flag\n\t                filledfound = true;\n\t                // If the search passes then return true\n\t                if (crit.criteria.search(rowData, rowIdx)) {\n\t                    return true;\n\t                }\n\t            }\n\t            else if (crit.criteria instanceof Group && crit.criteria.checkFilled()) {\n\t                filledfound = true;\n\t                if (crit.criteria.search(rowData, rowIdx)) {\n\t                    return true;\n\t                }\n\t            }\n\t        }\n\t        // If we get here we need to return the inverse of filledfound,\n\t        //  as if any have been found and we are here then none have passed\n\t        return !filledfound;\n\t    };\n\t    /**\n\t     * Removes a criteria from the group\n\t     * @param criteria The criteria instance to be removed\n\t     */\n\t    Group.prototype._removeCriteria = function (criteria, group) {\n\t        if (group === void 0) { group = false; }\n\t        // If removing a criteria and there is only then then just destroy the group\n\t        if (this.s.criteria.length <= 1 && this.s.isChild) {\n\t            this.destroy();\n\t        }\n\t        else {\n\t            // Otherwise splice the given criteria out and redo the indexes\n\t            var last = void 0;\n\t            for (var i = 0; i < this.s.criteria.length; i++) {\n\t                if (this.s.criteria[i].index === criteria.s.index && (!group || this.s.criteria[i].criteria instanceof Group)) {\n\t                    last = i;\n\t                }\n\t            }\n\t            // We want to remove the last element with the desired index, as its replacement will be inserted before it\n\t            if (last !== undefined) {\n\t                this.s.criteria.splice(last, 1);\n\t            }\n\t            for (var i = 0; i < this.s.criteria.length; i++) {\n\t                this.s.criteria[i].index = i;\n\t                this.s.criteria[i].criteria.s.index = i;\n\t            }\n\t        }\n\t    };\n\t    /**\n\t     * Sets the listeners in group for a criteria\n\t     * @param criteria The criteria for the listeners to be set on\n\t     */\n\t    Group.prototype._setCriteriaListeners = function (criteria) {\n\t        var _this = this;\n\t        $$1(criteria.dom[\"delete\"])\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            _this._removeCriteria(criteria);\n\t            $$1(criteria.dom.container).remove();\n\t            for (var _i = 0, _a = _this.s.criteria; _i < _a.length; _i++) {\n\t                var crit = _a[_i];\n\t                if (crit.criteria instanceof Criteria) {\n\t                    crit.criteria.updateArrows(_this.s.criteria.length > 1);\n\t                }\n\t            }\n\t            criteria.destroy();\n\t            _this.s.dt.draw();\n\t            $$1(_this.s.topGroup).trigger('dtsb-redrawContents');\n\t            $$1(_this.s.topGroup).trigger('dtsb-updateTitle');\n\t            return false;\n\t        });\n\t        $$1(criteria.dom.right)\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            var idx = criteria.s.index;\n\t            var group = new Group(_this.s.dt, _this.s.opts, _this.s.topGroup, criteria.s.index, true, _this.s.depth + 1);\n\t            // Add the criteria that is to be moved to the new group\n\t            group.addCriteria(criteria);\n\t            // Update the details in the current groups criteria array\n\t            _this.s.criteria[idx].criteria = group;\n\t            _this.s.criteria[idx].logic = 'AND';\n\t            $$1(_this.s.topGroup).trigger('dtsb-redrawContents');\n\t            _this._setGroupListeners(group);\n\t            return false;\n\t        });\n\t        $$1(criteria.dom.left)\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            _this.s.toDrop = new Criteria(_this.s.dt, _this.s.opts, _this.s.topGroup, criteria.s.index);\n\t            _this.s.toDrop.s = criteria.s;\n\t            _this.s.toDrop.c = criteria.c;\n\t            _this.s.toDrop.classes = criteria.classes;\n\t            _this.s.toDrop.populate();\n\t            // The dropCriteria event mutates the reference to the index so need to store it\n\t            var index = _this.s.toDrop.s.index;\n\t            $$1(_this.dom.container).trigger('dtsb-dropCriteria');\n\t            criteria.s.index = index;\n\t            _this._removeCriteria(criteria);\n\t            // By tracking the top level group we can directly trigger a redraw on it,\n\t            //  bubbling is also possible, but that is slow with deep levelled groups\n\t            $$1(_this.s.topGroup).trigger('dtsb-redrawContents');\n\t            _this.s.dt.draw();\n\t            return false;\n\t        });\n\t    };\n\t    /**\n\t     * Set's the listeners for the group clear button\n\t     */\n\t    Group.prototype._setClearListener = function () {\n\t        var _this = this;\n\t        $$1(this.dom.clear)\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            if (!_this.s.isChild) {\n\t                $$1(_this.dom.container).trigger('dtsb-clearContents');\n\t                return false;\n\t            }\n\t            _this.destroy();\n\t            $$1(_this.s.topGroup).trigger('dtsb-updateTitle');\n\t            $$1(_this.s.topGroup).trigger('dtsb-redrawContents');\n\t            return false;\n\t        });\n\t    };\n\t    /**\n\t     * Sets listeners for sub groups of this group\n\t     * @param group The sub group that the listeners are to be set on\n\t     */\n\t    Group.prototype._setGroupListeners = function (group) {\n\t        var _this = this;\n\t        // Set listeners for the new group\n\t        $$1(group.dom.add)\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            _this.setupLogic();\n\t            $$1(_this.dom.container).trigger('dtsb-add');\n\t            return false;\n\t        });\n\t        $$1(group.dom.container)\n\t            .unbind('dtsb-add')\n\t            .on('dtsb-add', function () {\n\t            _this.setupLogic();\n\t            $$1(_this.dom.container).trigger('dtsb-add');\n\t            return false;\n\t        });\n\t        $$1(group.dom.container)\n\t            .unbind('dtsb-destroy')\n\t            .on('dtsb-destroy', function () {\n\t            _this._removeCriteria(group, true);\n\t            $$1(group.dom.container).remove();\n\t            _this.setupLogic();\n\t            return false;\n\t        });\n\t        $$1(group.dom.container)\n\t            .unbind('dtsb-dropCriteria')\n\t            .on('dtsb-dropCriteria', function () {\n\t            var toDrop = group.s.toDrop;\n\t            toDrop.s.index = group.s.index;\n\t            toDrop.updateArrows(_this.s.criteria.length > 1, false);\n\t            _this.addCriteria(toDrop, false);\n\t            return false;\n\t        });\n\t        group.setListeners();\n\t    };\n\t    /**\n\t     * Sets up the Group instance, setting listeners and appending elements\n\t     */\n\t    Group.prototype._setup = function () {\n\t        this.setListeners();\n\t        $$1(this.dom.add).text(this.s.dt.i18n('searchBuilder.add', this.c.i18n.add));\n\t        $$1(this.dom.logic).text(this.c.logic === 'OR'\n\t            ? this.s.dt.i18n('searchBuilder.logicOr', this.c.i18n.logicOr)\n\t            : this.s.dt.i18n('searchBuilder.logicAnd', this.c.i18n.logicAnd));\n\t        this.s.logic = this.c.logic === 'OR' ? 'OR' : 'AND';\n\t        if (this.c.greyscale) {\n\t            $$1(this.dom.logic).addClass(this.classes.greyscale);\n\t        }\n\t        $$1(this.dom.logicContainer).append(this.dom.logic).append(this.dom.clear);\n\t        // Only append the logic button immediately if this is a sub group,\n\t        //  otherwise it will be prepended later when adding a criteria\n\t        if (this.s.isChild) {\n\t            $$1(this.dom.container).append(this.dom.logicContainer);\n\t        }\n\t        $$1(this.dom.container).append(this.dom.add);\n\t    };\n\t    /**\n\t     * Sets the listener for the logic button\n\t     */\n\t    Group.prototype._setLogicListener = function () {\n\t        var _this = this;\n\t        $$1(this.dom.logic)\n\t            .unbind('click')\n\t            .on('click', function () {\n\t            _this._toggleLogic();\n\t            _this.s.dt.draw();\n\t            for (var _i = 0, _a = _this.s.criteria; _i < _a.length; _i++) {\n\t                var crit = _a[_i];\n\t                crit.criteria.setListeners();\n\t            }\n\t        });\n\t    };\n\t    /**\n\t     * Toggles the logic for the group\n\t     */\n\t    Group.prototype._toggleLogic = function () {\n\t        if (this.s.logic === 'OR') {\n\t            this.s.logic = 'AND';\n\t            $$1(this.dom.logic).text(this.s.dt.i18n('searchBuilder.logicAnd', this.c.i18n.logicAnd));\n\t        }\n\t        else if (this.s.logic === 'AND') {\n\t            this.s.logic = 'OR';\n\t            $$1(this.dom.logic).text(this.s.dt.i18n('searchBuilder.logicOr', this.c.i18n.logicOr));\n\t        }\n\t    };\n\t    Group.version = '1.0.0';\n\t    Group.classes = {\n\t        add: 'dtsb-add',\n\t        button: 'dtsb-button',\n\t        clearGroup: 'dtsb-clearGroup',\n\t        greyscale: 'dtsb-greyscale',\n\t        group: 'dtsb-group',\n\t        inputButton: 'dtsb-iptbtn',\n\t        logic: 'dtsb-logic',\n\t        logicContainer: 'dtsb-logicContainer'\n\t    };\n\t    Group.defaults = {\n\t        columns: true,\n\t        conditions: {\n\t            'date': Criteria.dateConditions,\n\t            'html': Criteria.stringConditions,\n\t            'html-num': Criteria.numConditions,\n\t            'html-num-fmt': Criteria.numFmtConditions,\n\t            'moment': Criteria.momentDateConditions,\n\t            'num': Criteria.numConditions,\n\t            'num-fmt': Criteria.numFmtConditions,\n\t            'string': Criteria.stringConditions\n\t        },\n\t        depthLimit: false,\n\t        filterChanged: undefined,\n\t        greyscale: false,\n\t        i18n: {\n\t            add: 'Add Condition',\n\t            button: {\n\t                0: 'Search Builder',\n\t                _: 'Search Builder (%d)'\n\t            },\n\t            clearAll: 'Clear All',\n\t            condition: 'Condition',\n\t            data: 'Data',\n\t            deleteTitle: 'Delete filtering rule',\n\t            leftTitle: 'Outdent criteria',\n\t            logicAnd: 'And',\n\t            logicOr: 'Or',\n\t            rightTitle: 'Indent criteria',\n\t            title: {\n\t                0: 'Custom Search Builder',\n\t                _: 'Custom Search Builder (%d)'\n\t            },\n\t            value: 'Value',\n\t            valueJoiner: 'and'\n\t        },\n\t        logic: 'AND',\n\t        orthogonal: {\n\t            display: 'display',\n\t            search: 'filter'\n\t        },\n\t        preDefined: false\n\t    };\n\t    return Group;\n\t}());\n\n\tvar $$2;\n\tvar DataTable$2;\n\t/**\n\t * Sets the value of jQuery for use in the file\n\t * @param jq the instance of jQuery to be set\n\t */\n\tfunction setJQuery$2(jq) {\n\t    $$2 = jq;\n\t    DataTable$2 = jq.fn.DataTable;\n\t}\n\t/**\n\t * SearchBuilder class for DataTables.\n\t * Allows for complex search queries to be constructed and implemented on a DataTable\n\t */\n\tvar SearchBuilder = /** @class */ (function () {\n\t    function SearchBuilder(builderSettings, opts) {\n\t        var _this = this;\n\t        // Check that the required version of DataTables is included\n\t        if (!DataTable$2 || !DataTable$2.versionCheck || !DataTable$2.versionCheck('1.10.0')) {\n\t            throw new Error('SearchBuilder requires DataTables 1.10 or newer');\n\t        }\n\t        var table = new DataTable$2.Api(builderSettings);\n\t        this.classes = $$2.extend(true, {}, SearchBuilder.classes);\n\t        // Get options from user\n\t        this.c = $$2.extend(true, {}, SearchBuilder.defaults, opts);\n\t        this.dom = {\n\t            clearAll: $$2('<button type=\"button\">' + table.i18n('searchBuilder.clearAll', this.c.i18n.clearAll) + '</button>')\n\t                .addClass(this.classes.clearAll)\n\t                .addClass(this.classes.button)\n\t                .attr('type', 'button'),\n\t            container: $$2('<div/>')\n\t                .addClass(this.classes.container),\n\t            title: $$2('<div/>')\n\t                .addClass(this.classes.title),\n\t            titleRow: $$2('<div/>')\n\t                .addClass(this.classes.titleRow),\n\t            topGroup: undefined\n\t        };\n\t        this.s = {\n\t            dt: table,\n\t            opts: opts,\n\t            search: undefined,\n\t            topGroup: undefined\n\t        };\n\t        // If searchbuilder is already defined for this table then return\n\t        if (table.settings()[0]._searchBuilder !== undefined) {\n\t            return;\n\t        }\n\t        table.settings()[0]._searchBuilder = this;\n\t        // Run the remaining setup when the table is initialised\n\t        if (this.s.dt.settings()[0]._bInitComplete) {\n\t            this._setUp();\n\t        }\n\t        else {\n\t            table.one('init.dt', function () {\n\t                _this._setUp();\n\t            });\n\t        }\n\t        return this;\n\t    }\n\t    /**\n\t     * Gets the details required to rebuild the SearchBuilder as it currently is\n\t     */\n\t    SearchBuilder.prototype.getDetails = function () {\n\t        return this.s.topGroup.getDetails();\n\t    };\n\t    /**\n\t     * Getter for the node of the container for the searchBuilder\n\t     * @returns JQuery<HTMLElement> the node of the container\n\t     */\n\t    SearchBuilder.prototype.getNode = function () {\n\t        return this.dom.container;\n\t    };\n\t    /**\n\t     * Rebuilds the SearchBuilder to a state that is provided\n\t     * @param details The details required to perform a rebuild\n\t     */\n\t    SearchBuilder.prototype.rebuild = function (details) {\n\t        $$2(this.dom.clearAll).click();\n\t        // If there are no details to rebuild then return\n\t        if (details === undefined || details === null) {\n\t            return this;\n\t        }\n\t        this.s.topGroup.rebuild(details);\n\t        this.s.dt.draw();\n\t        this.s.topGroup.setListeners();\n\t        return this;\n\t    };\n\t    /**\n\t     * Applies the defaults to preDefined criteria\n\t     * @param preDef the array of criteria to be processed.\n\t     */\n\t    SearchBuilder.prototype._applyPreDefDefaults = function (preDef) {\n\t        var _this = this;\n\t        if (preDef.criteria !== undefined && preDef.logic === undefined) {\n\t            preDef.logic = 'AND';\n\t        }\n\t        var _loop_1 = function (crit) {\n\t            // Apply the defaults to any further criteria\n\t            if (crit.criteria !== undefined) {\n\t                crit = this_1._applyPreDefDefaults(crit);\n\t            }\n\t            else {\n\t                this_1.s.dt.columns().every(function (index) {\n\t                    if (_this.s.dt.settings()[0].aoColumns[index].sTitle === crit.data) {\n\t                        crit.dataIdx = index;\n\t                    }\n\t                });\n\t            }\n\t        };\n\t        var this_1 = this;\n\t        for (var _i = 0, _a = preDef.criteria; _i < _a.length; _i++) {\n\t            var crit = _a[_i];\n\t            _loop_1(crit);\n\t        }\n\t        return preDef;\n\t    };\n\t    /**\n\t     * Set's up the SearchBuilder\n\t     */\n\t    SearchBuilder.prototype._setUp = function (loadState) {\n\t        var _this = this;\n\t        if (loadState === void 0) { loadState = true; }\n\t        this.s.topGroup = new Group(this.s.dt, this.c, undefined);\n\t        this._setClearListener();\n\t        this.s.dt.on('stateSaveParams', function (e, settings, data) {\n\t            data.searchBuilder = _this.getDetails();\n\t            data.page = _this.s.dt.page();\n\t        });\n\t        this._build();\n\t        if (loadState) {\n\t            var loadedState = this.s.dt.state.loaded();\n\t            // If the loaded State is not null rebuild based on it for statesave\n\t            if (loadedState !== null && loadedState.searchBuilder !== undefined) {\n\t                this.s.topGroup.rebuild(loadedState.searchBuilder);\n\t                $$2(this.s.topGroup.dom.container).trigger('dtsb-redrawContents');\n\t                this.s.dt.page(loadedState.page).draw('page');\n\t                this.s.topGroup.setListeners();\n\t            }\n\t            // Otherwise load any predefined options\n\t            else if (this.c.preDefined !== false) {\n\t                this.c.preDefined = this._applyPreDefDefaults(this.c.preDefined);\n\t                this.rebuild(this.c.preDefined);\n\t            }\n\t        }\n\t        this._setEmptyListener();\n\t        this.s.dt.state.save();\n\t    };\n\t    /**\n\t     * Updates the title of the SearchBuilder\n\t     * @param count the number of filters in the SearchBuilder\n\t     */\n\t    SearchBuilder.prototype._updateTitle = function (count) {\n\t        $$2(this.dom.title).text(this.s.dt.i18n('searchBuilder.title', this.c.i18n.title, count));\n\t    };\n\t    /**\n\t     * Builds all of the dom elements together\n\t     */\n\t    SearchBuilder.prototype._build = function () {\n\t        var _this = this;\n\t        // Empty and setup the container\n\t        $$2(this.dom.clearAll).remove();\n\t        $$2(this.dom.container).empty();\n\t        var count = this.s.topGroup.count();\n\t        this._updateTitle(count);\n\t        $$2(this.dom.titleRow).append(this.dom.title);\n\t        $$2(this.dom.container).append(this.dom.titleRow);\n\t        this.dom.topGroup = this.s.topGroup.getNode();\n\t        $$2(this.dom.container).append(this.dom.topGroup);\n\t        this._setRedrawListener();\n\t        var tableNode = this.s.dt.table(0).node();\n\t        if ($$2.fn.dataTable.ext.search.indexOf(this.s.search) === -1) {\n\t            // Custom search function for SearchBuilder\n\t            this.s.search = function (settings, searchData, dataIndex, origData) {\n\t                if (settings.nTable !== tableNode) {\n\t                    return true;\n\t                }\n\t                return _this.s.topGroup.search(searchData, dataIndex);\n\t            };\n\t            // Add SearchBuilder search function to the dataTables search array\n\t            $$2.fn.dataTable.ext.search.push(this.s.search);\n\t        }\n\t        // Register an Api method for getting the column type\n\t        $$2.fn.DataTable.Api.registerPlural('columns().type()', 'column().type()', function (selector, opts) {\n\t            return this.iterator('column', function (settings, column) {\n\t                return settings.aoColumns[column].sType;\n\t            }, 1);\n\t        });\n\t        this.s.dt.on('destroy.dt', function () {\n\t            $$2(_this.dom.container).remove();\n\t            $$2(_this.dom.clearAll).remove();\n\t            var searchIdx = $$2.fn.dataTable.ext.search.indexOf(_this.s.search);\n\t            while (searchIdx !== -1) {\n\t                $$2.fn.dataTable.ext.search.splice(searchIdx, 1);\n\t                searchIdx = $$2.fn.dataTable.ext.search.indexOf(_this.s.search);\n\t            }\n\t        });\n\t    };\n\t    /**\n\t     * Checks if the clearAll button should be added or not\n\t     */\n\t    SearchBuilder.prototype._checkClear = function () {\n\t        if (this.s.topGroup.s.criteria.length > 0) {\n\t            $$2(this.dom.clearAll).insertAfter(this.dom.title);\n\t            this._setClearListener();\n\t        }\n\t        else {\n\t            $$2(this.dom.clearAll).remove();\n\t        }\n\t    };\n\t    /**\n\t     * Update the count in the title/button\n\t     * @param count Number of filters applied\n\t     */\n\t    SearchBuilder.prototype._filterChanged = function (count) {\n\t        var fn = this.c.filterChanged;\n\t        if (typeof fn === 'function') {\n\t            fn(count, this.s.dt.i18n('searchBuilder.button', this.c.i18n.button, count));\n\t        }\n\t    };\n\t    /**\n\t     * Set the listener for the clear button\n\t     */\n\t    SearchBuilder.prototype._setClearListener = function () {\n\t        var _this = this;\n\t        $$2(this.dom.clearAll).unbind('click');\n\t        $$2(this.dom.clearAll).on('click', function () {\n\t            _this.s.topGroup = new Group(_this.s.dt, _this.c, undefined);\n\t            _this._build();\n\t            _this.s.dt.draw();\n\t            _this.s.topGroup.setListeners();\n\t            $$2(_this.dom.clearAll).remove();\n\t            _this._setEmptyListener();\n\t            _this._filterChanged(0);\n\t            return false;\n\t        });\n\t    };\n\t    /**\n\t     * Set the listener for the Redraw event\n\t     */\n\t    SearchBuilder.prototype._setRedrawListener = function () {\n\t        var _this = this;\n\t        $$2(this.s.topGroup.dom.container).unbind('dtsb-redrawContents');\n\t        $$2(this.s.topGroup.dom.container).on('dtsb-redrawContents', function () {\n\t            _this._checkClear();\n\t            _this.s.topGroup.redrawContents();\n\t            _this.s.topGroup.setupLogic();\n\t            _this._setEmptyListener();\n\t            var count = _this.s.topGroup.count();\n\t            _this._updateTitle(count);\n\t            _this._filterChanged(count);\n\t            _this.s.dt.state.save();\n\t        });\n\t        $$2(this.s.topGroup.dom.container).unbind('dtsb-clearContents');\n\t        $$2(this.s.topGroup.dom.container).on('dtsb-clearContents', function () {\n\t            _this._setUp(false);\n\t            _this._filterChanged(0);\n\t            _this.s.dt.draw();\n\t        });\n\t        $$2(this.s.topGroup.dom.container).on('dtsb-updateTitle', function () {\n\t            var count = _this.s.topGroup.count();\n\t            _this._updateTitle(count);\n\t            _this._filterChanged(count);\n\t        });\n\t    };\n\t    /**\n\t     * Sets listeners to check whether clearAll should be added or removed\n\t     */\n\t    SearchBuilder.prototype._setEmptyListener = function () {\n\t        var _this = this;\n\t        $$2(this.s.topGroup.dom.add).on('click', function () {\n\t            _this._checkClear();\n\t        });\n\t        $$2(this.s.topGroup.dom.container).on('dtsb-destroy', function () {\n\t            $$2(_this.dom.clearAll).remove();\n\t        });\n\t    };\n\t    SearchBuilder.version = '1.0.1';\n\t    SearchBuilder.classes = {\n\t        button: 'dtsb-button',\n\t        clearAll: 'dtsb-clearAll',\n\t        container: 'dtsb-searchBuilder',\n\t        inputButton: 'dtsb-iptbtn',\n\t        title: 'dtsb-title',\n\t        titleRow: 'dtsb-titleRow'\n\t    };\n\t    SearchBuilder.defaults = {\n\t        columns: true,\n\t        conditions: {\n\t            'date': Criteria.dateConditions,\n\t            'html': Criteria.stringConditions,\n\t            'html-num': Criteria.numConditions,\n\t            'html-num-fmt': Criteria.numFmtConditions,\n\t            'moment': Criteria.momentDateConditions,\n\t            'num': Criteria.numConditions,\n\t            'num-fmt': Criteria.numFmtConditions,\n\t            'string': Criteria.stringConditions\n\t        },\n\t        depthLimit: false,\n\t        filterChanged: undefined,\n\t        greyscale: false,\n\t        i18n: {\n\t            add: 'Add Condition',\n\t            button: {\n\t                0: 'Search Builder',\n\t                _: 'Search Builder (%d)'\n\t            },\n\t            clearAll: 'Clear All',\n\t            condition: 'Condition',\n\t            conditions: {\n\t                array: {\n\t                    contains: 'Contains',\n\t                    empty: 'Empty',\n\t                    equals: 'Equals',\n\t                    not: 'Not',\n\t                    notEmpty: 'Not Empty',\n\t                    without: 'Without'\n\t                },\n\t                date: {\n\t                    after: 'After',\n\t                    before: 'Before',\n\t                    between: 'Between',\n\t                    empty: 'Empty',\n\t                    equals: 'Equals',\n\t                    not: 'Not',\n\t                    notBetween: 'Not Between',\n\t                    notEmpty: 'Not Empty'\n\t                },\n\t                moment: {\n\t                    after: 'After',\n\t                    before: 'Before',\n\t                    between: 'Between',\n\t                    empty: 'Empty',\n\t                    equals: 'Equals',\n\t                    not: 'Not',\n\t                    notBetween: 'Not Between',\n\t                    notEmpty: 'Not Empty'\n\t                },\n\t                number: {\n\t                    between: 'Between',\n\t                    empty: 'Empty',\n\t                    equals: 'Equals',\n\t                    gt: 'Greater Than',\n\t                    gte: 'Greater Than Equal To',\n\t                    lt: 'Less Than',\n\t                    lte: 'Less Than Equal To',\n\t                    not: 'Not',\n\t                    notBetween: 'Not Between',\n\t                    notEmpty: 'Not Empty'\n\t                },\n\t                string: {\n\t                    contains: 'Contains',\n\t                    empty: 'Empty',\n\t                    endsWith: 'Ends With',\n\t                    equals: 'Equals',\n\t                    not: 'Not',\n\t                    notEmpty: 'Not Empty',\n\t                    startsWith: 'Starts With'\n\t                }\n\t            },\n\t            data: 'Data',\n\t            deleteTitle: 'Delete filtering rule',\n\t            leftTitle: 'Outdent criteria',\n\t            logicAnd: 'And',\n\t            logicOr: 'Or',\n\t            rightTitle: 'Indent criteria',\n\t            title: {\n\t                0: 'Custom Search Builder',\n\t                _: 'Custom Search Builder (%d)'\n\t            },\n\t            value: 'Value',\n\t            valueJoiner: 'and'\n\t        },\n\t        logic: 'AND',\n\t        orthogonal: {\n\t            display: 'display',\n\t            search: 'filter'\n\t        },\n\t        preDefined: false\n\t    };\n\t    return SearchBuilder;\n\t}());\n\n\t/*! SearchBuilder 1.0.1\n\t * ©2020 SpryMedia Ltd - datatables.net/license/mit\n\t */\n\t// DataTables extensions common UMD. Note that this allows for AMD, CommonJS\n\t// (with window and jQuery being allowed as parameters to the returned\n\t// function) or just default browser loading.\n\t(function (factory) {\n\t    if (typeof define === 'function' && define.amd) {\n\t        // AMD\n\t        define(['jquery', 'datatables.net'], function ($) {\n\t            return factory($, window, document);\n\t        });\n\t    }\n\t    else if (typeof exports === 'object') {\n\t        // CommonJS\n\t        module.exports = function (root, $) {\n\t            if (!root) {\n\t                root = window;\n\t            }\n\t            if (!$ || !$.fn.dataTable) {\n\t                $ = require('datatables.net')(root, $).$;\n\t            }\n\t            return factory($, root, root.document);\n\t        };\n\t    }\n\t    else {\n\t        // Browser - assume jQuery has already been loaded\n\t        factory(window.jQuery, window, document);\n\t    }\n\t}(function ($, window, document) {\n\t    setJQuery$2($);\n\t    setJQuery$1($);\n\t    setJQuery($);\n\t    var DataTable = $.fn.dataTable;\n\t    $.fn.dataTable.SearchBuilder = SearchBuilder;\n\t    $.fn.DataTable.SearchBuilder = SearchBuilder;\n\t    $.fn.dataTable.Group = Group;\n\t    $.fn.DataTable.Group = Group;\n\t    $.fn.dataTable.Criteria = Criteria;\n\t    $.fn.DataTable.Criteria = Criteria;\n\t    var apiRegister = $.fn.dataTable.Api.register;\n\t    // Set up object for plugins\n\t    $.fn.dataTable.ext.searchBuilder = {\n\t        conditions: {}\n\t    };\n\t    $.fn.dataTable.ext.buttons.searchBuilder = {\n\t        action: function (e, dt, node, config) {\n\t            e.stopPropagation();\n\t            this.popover(config._searchBuilder.getNode(), {\n\t                align: 'dt-container'\n\t            });\n\t        },\n\t        config: {},\n\t        init: function (dt, node, config) {\n\t            var sb = new $.fn.dataTable.SearchBuilder(dt, $.extend({\n\t                filterChanged: function (count, text) {\n\t                    dt.button(node).text(text);\n\t                }\n\t            }, config.config));\n\t            dt.button(node).text(config.text || dt.i18n('searchBuilder.button', sb.c.i18n.button, 0));\n\t            config._searchBuilder = sb;\n\t        },\n\t        text: null\n\t    };\n\t    apiRegister('searchBuilder.getDetails()', function () {\n\t        var ctx = this.context[0];\n\t        return ctx._searchBuilder.getDetails();\n\t    });\n\t    apiRegister('searchBuilder.rebuild()', function (details) {\n\t        var ctx = this.context[0];\n\t        ctx._searchBuilder.rebuild(details);\n\t        return this;\n\t    });\n\t    apiRegister('searchBuilder.container()', function () {\n\t        var ctx = this.context[0];\n\t        return ctx._searchBuilder.getNode();\n\t    });\n\t    /**\n\t     * Init function for SearchBuilder\n\t     * @param settings the settings to be applied\n\t     * @param options the options for SearchBuilder\n\t     * @returns JQUERY<HTMLElement> Returns the node of the SearchBuilder\n\t     */\n\t    function _init(settings, options) {\n\t        var api = new DataTable.Api(settings);\n\t        var opts = options\n\t            ? options\n\t            : api.init().searchBuilder || DataTable.defaults.searchBuilder;\n\t        var searchBuilder = new SearchBuilder(api, opts);\n\t        var node = searchBuilder.getNode();\n\t        return node;\n\t    }\n\t    // Attach a listener to the document which listens for DataTables initialisation\n\t    // events so we can automatically initialise\n\t    $(document).on('preInit.dt.dtsp', function (e, settings, json) {\n\t        if (e.namespace !== 'dt') {\n\t            return;\n\t        }\n\t        if (settings.oInit.searchBuilder ||\n\t            DataTable.defaults.searchBuilder) {\n\t            if (!settings._searchBuilder) {\n\t                _init(settings);\n\t            }\n\t        }\n\t    });\n\t    // DataTables `dom` feature option\n\t    DataTable.ext.feature.push({\n\t        cFeature: 'Q',\n\t        fnInit: _init\n\t    });\n\t    // DataTables 2 layout feature\n\t    if (DataTable.ext.features) {\n\t        DataTable.ext.features.register('searchBuilder', _init);\n\t    }\n\t}));\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchbuilder/js/searchBuilder.bootstrap4.js",
    "content": "(function () {\n    'use strict';\n\n    (function (factory) {\n        if (typeof define === 'function' && define.amd) {\n            // AMD\n            define(['jquery', 'datatables.net-bs4', 'datatables.net-searchbuilder'], function ($) {\n                return factory($, window, document);\n            });\n        }\n        else if (typeof exports === 'object') {\n            // CommonJS\n            module.exports = function (root, $) {\n                if (!root) {\n                    root = window;\n                }\n                if (!$ || !$.fn.dataTable) {\n                    $ = require('datatables.net-bs4')(root, $).$;\n                }\n                if (!$.fn.dataTable.searchBuilder) {\n                    require('datatables.net-searchbuilder')(root, $);\n                }\n                return factory($, root, root.document);\n            };\n        }\n        else {\n            // Browser\n            factory(jQuery, window, document);\n        }\n    }(function ($, window, document) {\n        var DataTable = $.fn.dataTable;\n        $.extend(true, DataTable.SearchBuilder.classes, {\n            clearAll: 'btn btn-light dtsb-clearAll'\n        });\n        $.extend(true, DataTable.Group.classes, {\n            add: 'btn btn-light dtsb-add',\n            clearGroup: 'btn btn-light dtsb-clearGroup',\n            logic: 'btn btn-light dtsb-logic'\n        });\n        $.extend(true, DataTable.Criteria.classes, {\n            condition: 'form-control dtsb-condition',\n            data: 'form-control dtsb-data',\n            \"delete\": 'btn btn-light dtsb-delete',\n            left: 'btn btn-light dtsb-left',\n            right: 'btn btn-light dtsb-right',\n            value: 'form-control dtsb-value'\n        });\n        return DataTable.searchPanes;\n    }));\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchpanes/css/searchPanes.bootstrap4.css",
    "content": "div.dtsp-topRow {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  justify-content: space-around;\n  align-content: flex-start;\n  align-items: flex-start;\n}\ndiv.dtsp-topRow input.dtsp-search {\n  text-overflow: ellipsis;\n}\ndiv.dtsp-topRow div.dtsp-subRow1 {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  flex-grow: 1;\n  flex-shrink: 0;\n  flex-basis: 0;\n}\ndiv.dtsp-topRow div.dtsp-searchCont {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  flex-grow: 1;\n  flex-shrink: 0;\n  flex-basis: 0;\n}\ndiv.dtsp-topRow button.dtsp-nameButton {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAK2SURBVFgJ7ZY9j41BFICvryCExrJBQ6HyEYVEIREaUZDQIRoR2ViJKCioxV+gkVXYTVZEQiEUhG2EQnxUCh0FKolY4ut5XnM2cyfva3Pt5m7EPcmzZ2bemTNnzjkzd1utnvQi0IvAfxiBy5z5FoxO89kPY+8mbMjtzs47RXs5/WVpbAG6bWExt5PuIibvhVkwmC+ck3eK9ln6/fAddFojYzBVuYSBpcnIEvRaqOw2RcaN18FPuJH0JvRUxbT3wWf4ltiKPgfVidWlbGZgPozDFfgAC+EA/K2EI4cwcAJ+gPaeQ+VQU2SOMMGcPgPl/m/V2p50rrbRsRgt9Iv5h6xtpP22Bz7Ce1C+gFFxfKzOmShcU+Qmyh2w3w8rIJfddHTck66EukL/xPhj+JM8rHNmFys0Pg4v0up3aFNlwR9NYyodd3OL/C64zpsymcTFcf6ElM4YzjAWKYrJkaq8kE/yUYNP4BoYvS1QRo+hNtF5xfkTUjoTheukSFFMjlTFm6PjceOca/SMpKfeCR1L6Uzk/y2WIkVhNFJlJAZhP+hYns7b9D3IPuhY5mYrIv8OrQJvR5NYyNaW4jsU8pSGNySiVx4o5tXq3JkoXE/mg5R/M8dGJCJpKhaDcjBRdbI/Rm8g69c122om33BHmj2CHoV5qa9jUXBraJ+G1fAVjIBO1klc87ro1K4JZ/K35SWW3TwcyDd6TecqnAEd8cGq2+w84xvBm1n3vS0izKkkwh5XNC/GmFPqqAtPF89AOScKuemaNzoTV1SD5dtSbmLf1/RV+tC0WTgcj6R7HEtrVGWaqu/lYDZ/2pvxQ/kIyw/gFByHC9AHw910hv1aUUumyd8yy0QfhmEkfiNod0Xusct68J1qc8Tdux0Z97Q+hsDb+AYGYEbF/4Guw2Q/qDPqZG/zXgT+3Qj8AtKnfWhFwmuAAAAAAElFTkSuQmCC\");\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 23px;\n  vertical-align: bottom;\n}\ndiv.dtsp-topRow button.dtsp-countButton {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAG5SURBVEgN3VU9LwVBFF0fiYhofUSlEQkKhU7z/oBCQkIiGr9BgUbhVzy9BAnhFyjV/AYFiU5ICM7ZN+c5Zud5dm3lJmfmzrkz9+7cu3c3y/6jjOBSF8CxXS7FmTkbwqIJjDpJvTcmsJ4K3KPZUpyZsx0sxoB9J6mnAkyC7wGuuCFIipNtEcpcWExgXpOBc78vgj6N+QO4NVsjwdFM59tUIDxDrHMBOeIQ34C5ZDregXuAQm4YcI68nN9B3wr2PcwPAIPkN2EqtJH6b+QZm1ajjTx7BqwAr26Lb+C2Kvpbt0Mb2HAJ7NrGFGfmXO3DeA4UshDfQAVmH0gaUFg852TTTDvlxwBlCtxy9zXyBhQFaq0wMmIdRebrfgosA3zb2hKnqG0oqchp4QbuR8X0TjzABhbdOT8jnQ/atcgqpnfwOA7yqZyTU587ZkIGdesLTt2EkynOnbreMUUKMI/dA4B/QVOcO13CQh+5wWCgDwo/75u59odB/wjmfhbgvACcAOyZPHihMWAoIwxyCLgf1oxfgjzVbgBXSTzIN+f0pg6s5DkcesLMRpsBrgE2XO3CN64JFP7JtUeKHX4CKtRRXFZ+7dEAAAAASUVORK5CYII=\");\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 18px;\n  vertical-align: bottom;\n}\ndiv.dtsp-topRow button.dtsp-searchIcon {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAEnSURBVCgVpdG7SgNBFIDh1RhJsBBEsDIgIhaWFjZa2GtpKb6AnU0MprKOWEjK2IuFFxCxS2lhZyOWXh5AQVER/X+zuwwywoIHvp3dM3Nm55Ik/4i+P2or5FewiBIe0cEt8ogVz9LbhEVf+cgkcew1tvAZ5PPXGm9HOMEanMAYQhunaCAazuqA1UjvILl9HGPc/n4fabjPGbzjMM2FjfkDuPw5O8JilzgA9/OKWDynyWnbsPiF7yc4SRWxmEyTN7ZhsSd7gTLW8TuGSSzBcZd2hsV+n+MNC9jGCNzjPDwsz8XCO/x02Bqeptcxhg+4gjD8YxetLOkBGRbuwcIr+NdRLMPl3uMM2YHx2gsLd+D97qKEQuGe65jCAzbgVRWOCUZuovAfs5m/AdVxL0R1AIsLAAAAAElFTkSuQmCC\");\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 12px;\n}\n\ndiv.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane table thead th,\ndiv.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane table thead td {\n  width: 100% !important;\n}\n\ndiv.dt-button-collection {\n  z-index: 2002;\n}\n\ndiv.dataTables_scrollBody {\n  background: white !important;\n}\n\ndiv.dtsp-columns-1 {\n  min-width: 98%;\n  max-width: 98%;\n  padding-left: 1%;\n  padding-right: 1%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-2 {\n  min-width: 48%;\n  max-width: 48%;\n  padding-left: 1%;\n  padding-right: 1%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-3 {\n  min-width: 30.333%;\n  max-width: 30.333%;\n  padding-left: 1%;\n  padding-right: 1%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-4 {\n  min-width: 23%;\n  max-width: 23%;\n  padding-left: 1%;\n  padding-right: 1%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-5 {\n  min-width: 18%;\n  max-width: 18%;\n  padding-left: 1%;\n  padding-right: 1%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-6 {\n  min-width: 15.666%;\n  max-width: 15.666%;\n  padding-left: 0.5%;\n  padding-right: 0.5%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-7 {\n  min-width: 13.28%;\n  max-width: 13.28%;\n  padding-left: 0.5%;\n  padding-right: 0.5%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-8 {\n  min-width: 11.5%;\n  max-width: 11.5%;\n  padding-left: 0.5%;\n  padding-right: 0.5%;\n  margin: 0px !important;\n}\n\ndiv.dtsp-columns-9 {\n  min-width: 11.111%;\n  max-width: 11.111%;\n  padding-left: 0.5%;\n  padding-right: 0.5%;\n  margin: 0px !important;\n}\n\ndiv.dt-button-collection {\n  float: none;\n}\n\ndiv.dtsp-panesContainer {\n  width: 100%;\n}\ndiv.dtsp-panesContainer div.dataTables_wrapper {\n  width: 100%;\n}\n\ndiv.dtsp-searchPanes {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: space-evenly;\n  align-content: flex-start;\n  align-items: stretch;\n  clear: both;\n}\ndiv.dtsp-searchPanes button.btn {\n  margin: 0;\n}\ndiv.dtsp-searchPanes button.dtsp-clearAll {\n  max-width: 50px;\n}\n\ndiv.dtsp-columns-1,\ndiv.dtsp-columns-2,\ndiv.dtsp-columns-3,\ndiv.dtsp-columns-4,\ndiv.dtsp-columns-5,\ndiv.dtsp-columns-6,\ndiv.dtsp-columns-7,\ndiv.dtsp-columns-8,\ndiv.dtsp-columns-9 {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n\ndiv.dtsp-searchPane {\n  flex-direction: row;\n  flex-wrap: nowrap;\n  flex-grow: 1;\n  flex-shrink: 0;\n  flex-basis: 280px;\n  justify-content: space-around;\n  align-content: flex-start;\n  align-items: stretch;\n  padding-top: 0px;\n  padding-bottom: 5px;\n  margin: 5px 0;\n  margin-top: 0px;\n  margin-bottom: 0px;\n  font-size: 0.9em;\n  margin: 5px;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper {\n  flex: 1;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper div.dataTables_filter {\n  display: none;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper div.row div.col-sm-12:empty {\n  display: none;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper div.row div.dataTables_filter {\n  display: none;\n}\ndiv.dtsp-searchPane div.btn-group {\n  padding: 0px;\n}\ndiv.dtsp-searchPane div.dtsp-topRow {\n  padding: 0px !important;\n  margin: 0px;\n  margin-bottom: 0.5rem;\n}\ndiv.dtsp-searchPane div.dtsp-topRow div.dtsp-subRows {\n  padding: 0px !important;\n  text-align: right;\n}\ndiv.dtsp-searchPane div.dtsp-topRow div.row {\n  width: 100%;\n}\ndiv.dtsp-searchPane div.dtsp-topRow button {\n  min-width: 35px;\n  max-width: 35px;\n  border: 1px solid #ced4da;\n}\ndiv.dtsp-searchPane div.dtsp-topRow div.dtsp-subRow2 {\n  margin-left: 5px;\n}\ndiv.dtsp-searchPane div.dtsp-topRow button.clearButton {\n  padding-left: 10px;\n}\ndiv.dtsp-searchPane thead {\n  display: none;\n}\ndiv.dtsp-searchPane .mb-3 {\n  margin-bottom: none !important;\n}\ndiv.dtsp-searchPane .col-sm-12 {\n  padding: 5px;\n}\ndiv.dtsp-searchPane .input-group {\n  padding: 0px !important;\n}\ndiv.dtsp-searchPane .input-group .input-group-append {\n  display: inline-block;\n}\ndiv.dtsp-searchPane div.dataTables_scrollHead {\n  display: none;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody {\n  padding: 2px;\n  border: 2px #f0f0f0 solid;\n  border-radius: 4px;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody:hover {\n  border: 2px solid #cfcfcf !important;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table {\n  table-layout: fixed;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table tbody tr td.dtsp-nameColumn {\n  width: 100% !important;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table tbody tr div.dtsp-nameCont {\n  width: 100%;\n  display: flex;\n  flex-direction: row;\n  justify-content: flex-start;\n  align-content: flex-start;\n  align-items: flex-start;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table tbody tr div.dtsp-nameCont span.dtsp-name {\n  text-overflow: ellipsis;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: middle;\n  white-space: nowrap;\n  flex-grow: 1;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table tbody tr div.dtsp-nameCont span.badge {\n  min-width: 30px;\n  display: inline-block;\n  line-height: 1;\n  margin-top: 3.5px;\n}\ndiv.dtsp-searchPane div.dataTables_scrollBody table tbody tr td.dtsp-countColumn {\n  text-align: right;\n}\ndiv.dtsp-searchPane .dtsp-searchIcon {\n  display: block;\n  position: relative;\n  padding: 18px 13px;\n  border: 1px solid #ced4da;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper div.dataTables_filter {\n  display: none;\n}\ndiv.dtsp-searchPane div.dataTables_wrapper div.row {\n  margin-left: -7px;\n  margin-right: -7px;\n}\ndiv.dtsp-searchPane div.badge {\n  min-width: 30px;\n}\n\ndiv.dtsp-panes {\n  padding: 5px;\n  border: 2px solid #f0f0f0;\n  border-radius: 10px;\n  margin: 5px;\n  clear: both;\n}\ndiv.dtsp-panes div.dtsp-titleRow {\n  padding-bottom: 10px;\n  padding-left: 20px;\n  padding-right: 20px;\n}\ndiv.dtsp-panes div.dtsp-title {\n  float: left;\n  margin-bottom: 0px;\n  margin-top: 10px;\n  padding-left: 0;\n  padding-right: 0;\n}\ndiv.dtsp-panes button.dtsp-clearAll {\n  float: right;\n}\n\ndiv.dtsp-hidden {\n  display: none !important;\n}\n\n@media screen and (max-width: 767px) {\n  div.dtsp-columns-4,\ndiv.dtsp-columns-5,\ndiv.dtsp-columns-6 {\n    max-width: 31% !important;\n    min-width: 31% !important;\n  }\n}\n@media screen and (max-width: 640px) {\n  div.dtsp-searchPanes {\n    flex-direction: column !important;\n  }\n\n  div.dtsp-searchPane {\n    max-width: 98% !important;\n    min-width: 98% !important;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchpanes/js/dataTables.searchPanes.js",
    "content": "/*! SearchPanes 1.2.1\n * 2019-2020 SpryMedia Ltd - datatables.net/license\n */\n(function () {\n    'use strict';\n\n    var $;\n    var DataTable;\n    function setJQuery(jq) {\n        $ = jq;\n        DataTable = jq.fn.dataTable;\n    }\n    var SearchPane = /** @class */ (function () {\n        /**\n         * Creates the panes, sets up the search function\n         * @param paneSettings The settings for the searchPanes\n         * @param opts The options for the default features\n         * @param idx the index of the column for this pane\n         * @returns {object} the pane that has been created, including the table and the index of the pane\n         */\n        function SearchPane(paneSettings, opts, idx, layout, panesContainer, panes) {\n            var _this = this;\n            if (panes === void 0) { panes = null; }\n            // Check that the required version of DataTables is included\n            if (!DataTable || !DataTable.versionCheck || !DataTable.versionCheck('1.10.0')) {\n                throw new Error('SearchPane requires DataTables 1.10 or newer');\n            }\n            // Check that Select is included\n            if (!DataTable.select) {\n                throw new Error('SearchPane requires Select');\n            }\n            var table = new DataTable.Api(paneSettings);\n            this.classes = $.extend(true, {}, SearchPane.classes);\n            // Get options from user\n            this.c = $.extend(true, {}, SearchPane.defaults, opts);\n            this.customPaneSettings = panes;\n            this.s = {\n                cascadeRegen: false,\n                clearing: false,\n                colOpts: [],\n                deselect: false,\n                displayed: false,\n                dt: table,\n                dtPane: undefined,\n                filteringActive: false,\n                index: idx,\n                indexes: [],\n                lastCascade: false,\n                lastSelect: false,\n                listSet: false,\n                name: undefined,\n                redraw: false,\n                rowData: {\n                    arrayFilter: [],\n                    arrayOriginal: [],\n                    arrayTotals: [],\n                    bins: {},\n                    binsOriginal: {},\n                    binsTotal: {},\n                    filterMap: new Map(),\n                    totalOptions: 0\n                },\n                scrollTop: 0,\n                searchFunction: undefined,\n                selectPresent: false,\n                serverSelect: [],\n                serverSelecting: false,\n                showFiltered: false,\n                tableLength: null,\n                updating: false\n            };\n            var rowLength = table.columns().eq(0).toArray().length;\n            this.colExists = this.s.index < rowLength;\n            // Add extra elements to DOM object including clear and hide buttons\n            this.c.layout = layout;\n            var layVal = parseInt(layout.split('-')[1], 10);\n            this.dom = {\n                buttonGroup: $('<div/>').addClass(this.classes.buttonGroup),\n                clear: $('<button type=\"button\">&#215;</button>')\n                    .addClass(this.classes.dull)\n                    .addClass(this.classes.paneButton)\n                    .addClass(this.classes.clearButton),\n                container: $('<div/>').addClass(this.classes.container).addClass(this.classes.layout +\n                    (layVal < 10 ? layout : layout.split('-')[0] + '-9')),\n                countButton: $('<button type=\"button\"></button>')\n                    .addClass(this.classes.paneButton)\n                    .addClass(this.classes.countButton),\n                dtP: $('<table><thead><tr><th>' +\n                    (this.colExists\n                        ? $(table.column(this.colExists ? this.s.index : 0).header()).text()\n                        : this.customPaneSettings.header || 'Custom Pane') + '</th><th/></tr></thead></table>'),\n                lower: $('<div/>').addClass(this.classes.subRow2).addClass(this.classes.narrowButton),\n                nameButton: $('<button type=\"button\"></button>').addClass(this.classes.paneButton).addClass(this.classes.nameButton),\n                panesContainer: panesContainer,\n                searchBox: $('<input/>').addClass(this.classes.paneInputButton).addClass(this.classes.search),\n                searchButton: $('<button type = \"button\" class=\"' + this.classes.searchIcon + '\"></button>')\n                    .addClass(this.classes.paneButton),\n                searchCont: $('<div/>').addClass(this.classes.searchCont),\n                searchLabelCont: $('<div/>').addClass(this.classes.searchLabelCont),\n                topRow: $('<div/>').addClass(this.classes.topRow),\n                upper: $('<div/>').addClass(this.classes.subRow1).addClass(this.classes.narrowSearch)\n            };\n            this.s.displayed = false;\n            table = this.s.dt;\n            this.selections = [];\n            this.s.colOpts = this.colExists ? this._getOptions() : this._getBonusOptions();\n            var colOpts = this.s.colOpts;\n            var clear = $('<button type=\"button\">X</button>').addClass(this.classes.paneButton);\n            $(clear).text(table.i18n('searchPanes.clearPane', 'X'));\n            this.dom.container.addClass(colOpts.className);\n            this.dom.container.addClass((this.customPaneSettings !== null && this.customPaneSettings.className !== undefined)\n                ? this.customPaneSettings.className\n                : '');\n            // Set the value of name incase ordering is desired\n            if (this.s.colOpts.name !== undefined) {\n                this.s.name = this.s.colOpts.name;\n            }\n            else if (this.customPaneSettings !== null && this.customPaneSettings.name !== undefined) {\n                this.s.name = this.customPaneSettings.name;\n            }\n            else {\n                this.s.name = this.colExists ?\n                    $(table.column(this.s.index).header()).text() :\n                    this.customPaneSettings.header || 'Custom Pane';\n            }\n            $(panesContainer).append(this.dom.container);\n            var tableNode = table.table(0).node();\n            // Custom search function for table\n            this.s.searchFunction = function (settings, searchData, dataIndex, origData) {\n                // If no data has been selected then show all\n                if (_this.selections.length === 0) {\n                    return true;\n                }\n                if (settings.nTable !== tableNode) {\n                    return true;\n                }\n                var filter = null;\n                if (_this.colExists) {\n                    // Get the current filtered data\n                    filter = searchData[_this.s.index];\n                    if (colOpts.orthogonal.filter !== 'filter') {\n                        // get the filter value from the map\n                        filter = _this.s.rowData.filterMap.get(dataIndex);\n                        if (filter instanceof $.fn.dataTable.Api) {\n                            filter = filter.toArray();\n                        }\n                    }\n                }\n                return _this._search(filter, dataIndex);\n            };\n            $.fn.dataTable.ext.search.push(this.s.searchFunction);\n            // If the clear button for this pane is clicked clear the selections\n            if (this.c.clear) {\n                $(clear).on('click', function () {\n                    var searches = _this.dom.container.find(_this.classes.search);\n                    searches.each(function () {\n                        $(this).val('');\n                        $(this).trigger('input');\n                    });\n                    _this.clearPane();\n                });\n            }\n            // Sometimes the top row of the panes containing the search box and ordering buttons appears\n            //  weird if the width of the panes is lower than expected, this fixes the design.\n            // Equally this may occur when the table is resized.\n            table.on('draw.dtsp', function () {\n                _this._adjustTopRow();\n            });\n            table.on('buttons-action', function () {\n                _this._adjustTopRow();\n            });\n            $(window).on('resize.dtsp', DataTable.util.throttle(function () {\n                _this._adjustTopRow();\n            }));\n            // When column-reorder is present and the columns are moved, it is necessary to\n            //  reassign all of the panes indexes to the new index of the column.\n            table.on('column-reorder.dtsp', function (e, settings, details) {\n                _this.s.index = details.mapping[_this.s.index];\n            });\n            return this;\n        }\n        /**\n         * In the case of a rebuild there is potential for new data to have been included or removed\n         * so all of the rowData must be reset as a precaution.\n         */\n        SearchPane.prototype.clearData = function () {\n            this.s.rowData = {\n                arrayFilter: [],\n                arrayOriginal: [],\n                arrayTotals: [],\n                bins: {},\n                binsOriginal: {},\n                binsTotal: {},\n                filterMap: new Map(),\n                totalOptions: 0\n            };\n        };\n        /**\n         * Clear the selections in the pane\n         */\n        SearchPane.prototype.clearPane = function () {\n            // Deselect all rows which are selected and update the table and filter count.\n            this.s.dtPane.rows({ selected: true }).deselect();\n            this.updateTable();\n            return this;\n        };\n        /**\n         * Strips all of the SearchPanes elements from the document and turns all of the listeners for the buttons off\n         */\n        SearchPane.prototype.destroy = function () {\n            $(this.s.dtPane).off('.dtsp');\n            $(this.s.dt).off('.dtsp');\n            $(this.dom.nameButton).off('.dtsp');\n            $(this.dom.countButton).off('.dtsp');\n            $(this.dom.clear).off('.dtsp');\n            $(this.dom.searchButton).off('.dtsp');\n            $(this.dom.container).remove();\n            var searchIdx = $.fn.dataTable.ext.search.indexOf(this.s.searchFunction);\n            while (searchIdx !== -1) {\n                $.fn.dataTable.ext.search.splice(searchIdx, 1);\n                searchIdx = $.fn.dataTable.ext.search.indexOf(this.s.searchFunction);\n            }\n            // If the datatables have been defined for the panes then also destroy these\n            if (this.s.dtPane !== undefined) {\n                this.s.dtPane.destroy();\n            }\n            this.s.listSet = false;\n        };\n        /**\n         * Updates the number of filters that have been applied in the title\n         */\n        SearchPane.prototype.getPaneCount = function () {\n            return this.s.dtPane !== undefined ?\n                this.s.dtPane.rows({ selected: true }).data().toArray().length :\n                0;\n        };\n        /**\n         * Rebuilds the panes from the start having deleted the old ones\n         * @param? last boolean to indicate if this is the last pane a selection was made in\n         * @param? dataIn data to be used in buildPane\n         * @param? init Whether this is the initial draw or not\n         * @param? maintainSelection Whether the current selections are to be maintained over rebuild\n         */\n        SearchPane.prototype.rebuildPane = function (last, dataIn, init, maintainSelection) {\n            if (last === void 0) { last = false; }\n            if (dataIn === void 0) { dataIn = null; }\n            if (init === void 0) { init = null; }\n            if (maintainSelection === void 0) { maintainSelection = false; }\n            this.clearData();\n            var selectedRows = [];\n            this.s.serverSelect = [];\n            var prevEl = null;\n            // When rebuilding strip all of the HTML Elements out of the container and start from scratch\n            if (this.s.dtPane !== undefined) {\n                if (maintainSelection) {\n                    if (!this.s.dt.page.info().serverSide) {\n                        selectedRows = this.s.dtPane.rows({ selected: true }).data().toArray();\n                    }\n                    else {\n                        this.s.serverSelect = this.s.dtPane.rows({ selected: true }).data().toArray();\n                    }\n                }\n                this.s.dtPane.clear().destroy();\n                prevEl = $(this.dom.container).prev();\n                this.destroy();\n                this.s.dtPane = undefined;\n                $.fn.dataTable.ext.search.push(this.s.searchFunction);\n            }\n            this.dom.container.removeClass(this.classes.hidden);\n            this.s.displayed = false;\n            this._buildPane(!this.s.dt.page.info().serverSide ?\n                selectedRows :\n                this.s.serverSelect, last, dataIn, init, prevEl);\n            return this;\n        };\n        /**\n         * removes the pane from the page and sets the displayed property to false.\n         */\n        SearchPane.prototype.removePane = function () {\n            this.s.displayed = false;\n            $(this.dom.container).hide();\n        };\n        /**\n         * Sets the cascadeRegen property of the pane. Accessible from above because as SearchPanes.ts deals with the rebuilds.\n         * @param val the boolean value that the cascadeRegen property is to be set to\n         */\n        SearchPane.prototype.setCascadeRegen = function (val) {\n            this.s.cascadeRegen = val;\n        };\n        /**\n         * This function allows the clearing property to be assigned. This is used when implementing cascadePane.\n         * In setting this to true for the clearing of the panes selection on the deselects it forces the pane to\n         * repopulate from the entire dataset not just the displayed values.\n         * @param val the boolean value which the clearing property is to be assigned\n         */\n        SearchPane.prototype.setClear = function (val) {\n            this.s.clearing = val;\n        };\n        /**\n         * Updates the values of all of the panes\n         * @param draw whether this has been triggered by a draw event or not\n         */\n        SearchPane.prototype.updatePane = function (draw) {\n            if (draw === void 0) { draw = false; }\n            this.s.updating = true;\n            this._updateCommon(draw);\n            this.s.updating = false;\n        };\n        /**\n         * Updates the panes if one of the options to do so has been set to true\n         *   rather than the filtered message when using viewTotal.\n         */\n        SearchPane.prototype.updateTable = function () {\n            var selectedRows = this.s.dtPane.rows({ selected: true }).data().toArray();\n            this.selections = selectedRows;\n            this._searchExtras();\n            // If either of the options that effect how the panes are displayed are selected then update the Panes\n            if (this.c.cascadePanes || this.c.viewTotal) {\n                this.updatePane();\n            }\n        };\n        /**\n         * Sets the listeners for the pane.\n         *\n         * Having it in it's own function makes it easier to only set them once\n         */\n        SearchPane.prototype._setListeners = function () {\n            var _this = this;\n            var rowData = this.s.rowData;\n            var t0;\n            // When an item is selected on the pane, add these to the array which holds selected items.\n            // Custom search will perform.\n            this.s.dtPane.on('select.dtsp', function () {\n                clearTimeout(t0);\n                if (_this.s.dt.page.info().serverSide && !_this.s.updating) {\n                    if (!_this.s.serverSelecting) {\n                        _this.s.serverSelect = _this.s.dtPane.rows({ selected: true }).data().toArray();\n                        _this.s.scrollTop = $(_this.s.dtPane.table().node()).parent()[0].scrollTop;\n                        _this.s.selectPresent = true;\n                        _this.s.dt.draw(false);\n                    }\n                }\n                else {\n                    $(_this.dom.clear).removeClass(_this.classes.dull);\n                    _this.s.selectPresent = true;\n                    if (!_this.s.updating) {\n                        _this._makeSelection();\n                    }\n                    _this.s.selectPresent = false;\n                }\n            });\n            // When an item is deselected on the pane, re add the currently selected items to the array\n            // which holds selected items. Custom search will be performed.\n            this.s.dtPane.on('deselect.dtsp', function () {\n                t0 = setTimeout(function () {\n                    if (_this.s.dt.page.info().serverSide && !_this.s.updating) {\n                        if (!_this.s.serverSelecting) {\n                            _this.s.serverSelect = _this.s.dtPane.rows({ selected: true }).data().toArray();\n                            _this.s.deselect = true;\n                            _this.s.dt.draw(false);\n                        }\n                    }\n                    else {\n                        _this.s.deselect = true;\n                        if (_this.s.dtPane.rows({ selected: true }).data().toArray().length === 0) {\n                            $(_this.dom.clear).addClass(_this.classes.dull);\n                        }\n                        _this._makeSelection();\n                        _this.s.deselect = false;\n                        _this.s.dt.state.save();\n                    }\n                }, 50);\n            });\n            // When saving the state store all of the selected rows for preselection next time around\n            this.s.dt.on('stateSaveParams.dtsp', function (e, settings, data) {\n                // If the data being passed in is empty then a state clear must have occured so clear the panes state as well\n                if ($.isEmptyObject(data)) {\n                    _this.s.dtPane.state.clear();\n                    return;\n                }\n                var selected = [];\n                var searchTerm;\n                var order;\n                var bins;\n                var arrayFilter;\n                // Get all of the data needed for the state save from the pane\n                if (_this.s.dtPane !== undefined) {\n                    selected = _this.s.dtPane.rows({ selected: true }).data().map(function (item) { return item.filter.toString(); }).toArray();\n                    searchTerm = $(_this.dom.searchBox).val();\n                    order = _this.s.dtPane.order();\n                    bins = rowData.binsOriginal;\n                    arrayFilter = rowData.arrayOriginal;\n                }\n                if (data.searchPanes === undefined) {\n                    data.searchPanes = {};\n                }\n                if (data.searchPanes.panes === undefined) {\n                    data.searchPanes.panes = [];\n                }\n                for (var i = 0; i < data.searchPanes.panes.length; i++) {\n                    if (data.searchPanes.panes[i].id === _this.s.index) {\n                        data.searchPanes.panes.splice(i, 1);\n                        i--;\n                    }\n                }\n                // Add the panes data to the state object\n                data.searchPanes.panes.push({\n                    arrayFilter: arrayFilter,\n                    bins: bins,\n                    id: _this.s.index,\n                    order: order,\n                    searchTerm: searchTerm,\n                    selected: selected\n                });\n            });\n            this.s.dtPane.on('user-select.dtsp', function (e, _dt, type, cell, originalEvent) {\n                originalEvent.stopPropagation();\n            });\n            this.s.dtPane.on('draw.dtsp', function () {\n                _this._adjustTopRow();\n            });\n            // When the button to order by the name of the options is clicked then\n            //  change the ordering to whatever it isn't currently\n            $(this.dom.nameButton).on('click.dtsp', function () {\n                var currentOrder = _this.s.dtPane.order()[0][1];\n                _this.s.dtPane.order([0, currentOrder === 'asc' ? 'desc' : 'asc']).draw();\n                _this.s.dt.state.save();\n            });\n            // When the button to order by the number of entries in the column is clicked then\n            //  change the ordering to whatever it isn't currently\n            $(this.dom.countButton).on('click.dtsp', function () {\n                var currentOrder = _this.s.dtPane.order()[0][1];\n                _this.s.dtPane.order([1, currentOrder === 'asc' ? 'desc' : 'asc']).draw();\n                _this.s.dt.state.save();\n            });\n            // When the clear button is clicked reset the pane\n            $(this.dom.clear).on('click.dtsp', function () {\n                var searches = _this.dom.container.find('.' + _this.classes.search);\n                searches.each(function () {\n                    // set the value of the search box to be an empty string and then search on that, effectively reseting\n                    $(this).val('');\n                    $(this).trigger('input');\n                });\n                _this.clearPane();\n            });\n            // When the search button is clicked then draw focus to the search box\n            $(this.dom.searchButton).on('click.dtsp', function () {\n                $(_this.dom.searchBox).focus();\n            });\n            // When a character is inputted into the searchbox search the pane for matching values.\n            // Doing it this way means that no button has to be clicked to trigger a search, it is done asynchronously\n            $(this.dom.searchBox).on('input.dtsp', function () {\n                _this.s.dtPane.search($(_this.dom.searchBox).val()).draw();\n                _this.s.dt.state.save();\n            });\n            // Make sure to save the state once the pane has been built\n            this.s.dt.state.save();\n            return true;\n        };\n        /**\n         * Takes in potentially undetected rows and adds them to the array if they are not yet featured\n         * @param filter the filter value of the potential row\n         * @param display the display value of the potential row\n         * @param sort the sort value of the potential row\n         * @param type the type value of the potential row\n         * @param arrayFilter the array to be populated\n         * @param bins the bins to be populated\n         */\n        SearchPane.prototype._addOption = function (filter, display, sort, type, arrayFilter, bins) {\n            // If the filter is an array then take a note of this, and add the elements to the arrayFilter array\n            if (Array.isArray(filter) || filter instanceof DataTable.Api) {\n                // Convert to an array so that we can work with it\n                if (filter instanceof DataTable.Api) {\n                    filter = filter.toArray();\n                    display = display.toArray();\n                }\n                if (filter.length === display.length) {\n                    for (var i = 0; i < filter.length; i++) {\n                        // If we haven't seen this row before add it\n                        if (!bins[filter[i]]) {\n                            bins[filter[i]] = 1;\n                            arrayFilter.push({\n                                display: display[i],\n                                filter: filter[i],\n                                sort: sort[i],\n                                type: type[i]\n                            });\n                        }\n                        // Otherwise just increment the count\n                        else {\n                            bins[filter[i]]++;\n                        }\n                        this.s.rowData.totalOptions++;\n                    }\n                    return;\n                }\n                else {\n                    throw new Error('display and filter not the same length');\n                }\n            }\n            // If the values were affected by othogonal data and are not an array then check if it is already present\n            else if (typeof this.s.colOpts.orthogonal === 'string') {\n                if (!bins[filter]) {\n                    bins[filter] = 1;\n                    arrayFilter.push({\n                        display: display,\n                        filter: filter,\n                        sort: sort,\n                        type: type\n                    });\n                    this.s.rowData.totalOptions++;\n                }\n                else {\n                    bins[filter]++;\n                    this.s.rowData.totalOptions++;\n                    return;\n                }\n            }\n            // Otherwise we must just be adding an option\n            else {\n                arrayFilter.push({\n                    display: display,\n                    filter: filter,\n                    sort: sort,\n                    type: type\n                });\n            }\n        };\n        /**\n         * Adds a row to the panes table\n         * @param display the value to be displayed to the user\n         * @param filter the value to be filtered on when searchpanes is implemented\n         * @param shown the number of rows in the table that are currently visible matching this criteria\n         * @param total the total number of rows in the table that match this criteria\n         * @param sort the value to be sorted in the pane table\n         * @param type the value of which the type is to be derived from\n         */\n        SearchPane.prototype._addRow = function (display, filter, shown, total, sort, type, className) {\n            var index;\n            for (var _i = 0, _a = this.s.indexes; _i < _a.length; _i++) {\n                var entry = _a[_i];\n                if (entry.filter === filter) {\n                    index = entry.index;\n                }\n            }\n            if (index === undefined) {\n                index = this.s.indexes.length;\n                this.s.indexes.push({ filter: filter, index: index });\n            }\n            return this.s.dtPane.row.add({\n                className: className,\n                display: display !== '' ?\n                    display :\n                    this.s.colOpts.emptyMessage !== false ?\n                        this.s.colOpts.emptyMessage :\n                        this.c.emptyMessage,\n                filter: filter,\n                index: index,\n                shown: shown,\n                sort: sort !== '' ?\n                    sort :\n                    this.s.colOpts.emptyMessage !== false ?\n                        this.s.colOpts.emptyMessage :\n                        this.c.emptyMessage,\n                total: total,\n                type: type\n            });\n        };\n        /**\n         * Adjusts the layout of the top row when the screen is resized\n         */\n        SearchPane.prototype._adjustTopRow = function () {\n            var subContainers = this.dom.container.find('.' + this.classes.subRowsContainer);\n            var subRow1 = this.dom.container.find('.dtsp-subRow1');\n            var subRow2 = this.dom.container.find('.dtsp-subRow2');\n            var topRow = this.dom.container.find('.' + this.classes.topRow);\n            // If the width is 0 then it is safe to assume that the pane has not yet been displayed.\n            //  Even if it has, if the width is 0 it won't make a difference if it has the narrow class or not\n            if (($(subContainers[0]).width() < 252 || $(topRow[0]).width() < 252) && $(subContainers[0]).width() !== 0) {\n                $(subContainers[0]).addClass(this.classes.narrow);\n                $(subRow1[0]).addClass(this.classes.narrowSub).removeClass(this.classes.narrowSearch);\n                $(subRow2[0]).addClass(this.classes.narrowSub).removeClass(this.classes.narrowButton);\n            }\n            else {\n                $(subContainers[0]).removeClass(this.classes.narrow);\n                $(subRow1[0]).removeClass(this.classes.narrowSub).addClass(this.classes.narrowSearch);\n                $(subRow2[0]).removeClass(this.classes.narrowSub).addClass(this.classes.narrowButton);\n            }\n        };\n        /**\n         * Method to construct the actual pane.\n         * @param selectedRows previously selected Rows to be reselected\n         * @last boolean to indicate whether this pane was the last one to have a selection made\n         */\n        SearchPane.prototype._buildPane = function (selectedRows, last, dataIn, init, prevEl) {\n            var _this = this;\n            if (selectedRows === void 0) { selectedRows = []; }\n            if (last === void 0) { last = false; }\n            if (dataIn === void 0) { dataIn = null; }\n            if (init === void 0) { init = null; }\n            if (prevEl === void 0) { prevEl = null; }\n            // Aliases\n            this.selections = [];\n            var table = this.s.dt;\n            var column = table.column(this.colExists ? this.s.index : 0);\n            var colOpts = this.s.colOpts;\n            var rowData = this.s.rowData;\n            // Other Variables\n            var countMessage = table.i18n('searchPanes.count', '{total}');\n            var filteredMessage = table.i18n('searchPanes.countFiltered', '{shown} ({total})');\n            var loadedFilter = table.state.loaded();\n            // If the listeners have not been set yet then using the latest state may result in funny errors\n            if (this.s.listSet) {\n                loadedFilter = table.state();\n            }\n            // If it is not a custom pane in place\n            if (this.colExists) {\n                var idx = -1;\n                if (loadedFilter && loadedFilter.searchPanes && loadedFilter.searchPanes.panes) {\n                    for (var i = 0; i < loadedFilter.searchPanes.panes.length; i++) {\n                        if (loadedFilter.searchPanes.panes[i].id === this.s.index) {\n                            idx = i;\n                            break;\n                        }\n                    }\n                }\n                // Perform checks that do not require populate pane to run\n                if ((colOpts.show === false\n                    || (colOpts.show !== undefined && colOpts.show !== true)) &&\n                    idx === -1) {\n                    this.dom.container.addClass(this.classes.hidden);\n                    this.s.displayed = false;\n                    return false;\n                }\n                else if (colOpts.show === true || idx !== -1) {\n                    this.s.displayed = true;\n                }\n                if (!this.s.dt.page.info().serverSide &&\n                    (dataIn === null ||\n                        dataIn.searchPanes === null ||\n                        dataIn.searchPanes.options === null)) {\n                    // Only run populatePane if the data has not been collected yet\n                    if (rowData.arrayFilter.length === 0) {\n                        this._populatePane(last);\n                        this.s.rowData.totalOptions = 0;\n                        this._detailsPane();\n                        // If the index is not found then no data has been added to the state for this pane,\n                        //  which will only occur if it has previously failed to meet the criteria to be\n                        //  displayed, therefore we can just hide it again here\n                        if (loadedFilter && loadedFilter.searchPanes && loadedFilter.searchPanes.panes && idx === -1) {\n                            this.dom.container.addClass(this.classes.hidden);\n                            this.s.displayed = false;\n                            return;\n                        }\n                        rowData.arrayOriginal = rowData.arrayTotals;\n                        rowData.binsOriginal = rowData.binsTotal;\n                    }\n                    var binLength = Object.keys(rowData.binsOriginal).length;\n                    var uniqueRatio = this._uniqueRatio(binLength, table.rows()[0].length);\n                    // Don't show the pane if there isn't enough variance in the data, or there is only 1 entry for that pane\n                    if (this.s.displayed === false && ((colOpts.show === undefined && colOpts.threshold === null ?\n                        uniqueRatio > this.c.threshold :\n                        uniqueRatio > colOpts.threshold)\n                        || (colOpts.show !== true && binLength <= 1))) {\n                        this.dom.container.addClass(this.classes.hidden);\n                        this.s.displayed = false;\n                        return;\n                    }\n                    // If the option viewTotal is true then find\n                    // the total count for the whole table to display alongside the displayed count\n                    if (this.c.viewTotal && rowData.arrayTotals.length === 0) {\n                        this.s.rowData.totalOptions = 0;\n                        this._detailsPane();\n                    }\n                    else {\n                        rowData.binsTotal = rowData.bins;\n                    }\n                    this.dom.container.addClass(this.classes.show);\n                    this.s.displayed = true;\n                }\n                else if (dataIn !== null && dataIn.searchPanes !== null && dataIn.searchPanes.options !== null) {\n                    if (dataIn.tableLength !== undefined) {\n                        this.s.tableLength = dataIn.tableLength;\n                        this.s.rowData.totalOptions = this.s.tableLength;\n                    }\n                    else if (this.s.tableLength === null || table.rows()[0].length > this.s.tableLength) {\n                        this.s.tableLength = table.rows()[0].length;\n                        this.s.rowData.totalOptions = this.s.tableLength;\n                    }\n                    var colTitle = table.column(this.s.index).dataSrc();\n                    if (dataIn.searchPanes.options[colTitle] !== undefined) {\n                        for (var _i = 0, _a = dataIn.searchPanes.options[colTitle]; _i < _a.length; _i++) {\n                            var dataPoint = _a[_i];\n                            this.s.rowData.arrayFilter.push({\n                                display: dataPoint.label,\n                                filter: dataPoint.value,\n                                sort: dataPoint.label,\n                                type: dataPoint.label\n                            });\n                            this.s.rowData.bins[dataPoint.value] = this.c.viewTotal || this.c.cascadePanes ?\n                                dataPoint.count :\n                                dataPoint.total;\n                            this.s.rowData.binsTotal[dataPoint.value] = dataPoint.total;\n                        }\n                    }\n                    var binLength = Object.keys(rowData.binsTotal).length;\n                    var uniqueRatio = this._uniqueRatio(binLength, this.s.tableLength);\n                    // Don't show the pane if there isn't enough variance in the data, or there is only 1 entry for that pane\n                    if (this.s.displayed === false && ((colOpts.show === undefined && colOpts.threshold === null ?\n                        uniqueRatio > this.c.threshold :\n                        uniqueRatio > colOpts.threshold)\n                        || (colOpts.show !== true && binLength <= 1))) {\n                        this.dom.container.addClass(this.classes.hidden);\n                        this.s.displayed = false;\n                        return;\n                    }\n                    this.s.rowData.arrayOriginal = this.s.rowData.arrayFilter;\n                    this.s.rowData.binsOriginal = this.s.rowData.bins;\n                    this.s.displayed = true;\n                }\n            }\n            else {\n                this.s.displayed = true;\n            }\n            // If the variance is accceptable then display the search pane\n            this._displayPane();\n            if (!this.s.listSet) {\n                // Here, when the state is loaded if the data object on the original table is empty,\n                //  then a state.clear() must have occurred, so delete all of the panes tables state objects too.\n                this.dom.dtP.on('stateLoadParams.dt', function (e, settings, data) {\n                    if ($.isEmptyObject(table.state.loaded())) {\n                        $.each(data, function (index, value) {\n                            delete data[index];\n                        });\n                    }\n                });\n            }\n            // Add the container to the document in its original location\n            if (prevEl !== null && $(this.dom.panesContainer).has(prevEl).length > 0) {\n                $(this.dom.container).insertAfter(prevEl);\n            }\n            else {\n                $(this.dom.panesContainer).prepend(this.dom.container);\n            }\n            // Declare the datatable for the pane\n            var errMode = $.fn.dataTable.ext.errMode;\n            $.fn.dataTable.ext.errMode = 'none';\n            var haveScroller = DataTable.Scroller;\n            this.s.dtPane = $(this.dom.dtP).DataTable($.extend(true, {\n                columnDefs: [\n                    {\n                        className: 'dtsp-nameColumn',\n                        data: 'display',\n                        render: function (data, type, row) {\n                            if (type === 'sort') {\n                                return row.sort;\n                            }\n                            else if (type === 'type') {\n                                return row.type;\n                            }\n                            var message;\n                            (_this.s.filteringActive || _this.s.showFiltered) && _this.c.viewTotal\n                                ? message = filteredMessage.replace(/{total}/, row.total)\n                                : message = countMessage.replace(/{total}/, row.total);\n                            message = message.replace(/{shown}/, row.shown);\n                            while (message.indexOf('{total}') !== -1) {\n                                message = message.replace(/{total}/, row.total);\n                            }\n                            while (message.indexOf('{shown}') !== -1) {\n                                message = message.replace(/{shown}/, row.shown);\n                            }\n                            // We are displaying the count in the same columne as the name of the search option.\n                            // This is so that there is not need to call columns.adjust(), which in turn speeds up the code\n                            var pill = '<span class=\"' + _this.classes.pill + '\">' + message + '</span>';\n                            if (_this.c.hideCount || colOpts.hideCount) {\n                                pill = '';\n                            }\n                            return '<div class=\"' + _this.classes.nameCont + '\"><span title=\"' +\n                                (typeof data === 'string' && data.match(/<[^>]*>/) !== null ? data.replace(/<[^>]*>/g, '') : data) +\n                                '\" class=\"' + _this.classes.name + '\">' +\n                                data + '</span>' +\n                                pill + '</div>';\n                        },\n                        targets: 0,\n                        // Accessing the private datatables property to set type based on the original table.\n                        // This is null if not defined by the user, meaning that automatic type detection would take place\n                        type: table.settings()[0].aoColumns[this.s.index] !== undefined ?\n                            table.settings()[0].aoColumns[this.s.index]._sManualType :\n                            null\n                    },\n                    {\n                        className: 'dtsp-countColumn ' + this.classes.badgePill,\n                        data: 'shown',\n                        orderData: [1, 2],\n                        targets: 1,\n                        visible: false\n                    },\n                    {\n                        data: 'total',\n                        targets: 2,\n                        visible: false\n                    }\n                ],\n                deferRender: true,\n                dom: 't',\n                info: false,\n                language: this.s.dt.settings()[0].oLanguage,\n                paging: haveScroller ? true : false,\n                scrollX: false,\n                scrollY: '200px',\n                scroller: haveScroller ? true : false,\n                select: true,\n                stateSave: table.settings()[0].oFeatures.bStateSave ? true : false\n            }, this.c.dtOpts, colOpts !== undefined ? colOpts.dtOpts : {}, (this.s.colOpts.options !== undefined || !this.colExists)\n                ? {\n                    createdRow: function (row, data, dataIndex) {\n                        $(row).addClass(data.className);\n                    }\n                }\n                : undefined, (this.customPaneSettings !== null && this.customPaneSettings.dtOpts !== undefined)\n                ? this.customPaneSettings.dtOpts\n                : {}));\n            $(this.dom.dtP).addClass(this.classes.table);\n            // This is hacky but necessary for when datatables is generating the column titles automatically\n            $(this.dom.searchBox).attr('placeholder', colOpts.header !== undefined\n                ? colOpts.header\n                : this.colExists\n                    ? table.settings()[0].aoColumns[this.s.index].sTitle\n                    : this.customPaneSettings.header || 'Custom Pane');\n            // As the pane table is not in the document yet we must initialise select ourselves\n            $.fn.dataTable.select.init(this.s.dtPane);\n            $.fn.dataTable.ext.errMode = errMode;\n            // If it is not a custom pane\n            if (this.colExists) {\n                // On initialisation, do we need to set a filtering value from a\n                // saved state or init option?\n                var search = column.search();\n                search = search ? search.substr(1, search.length - 2).split('|') : [];\n                // Count the number of empty cells\n                var count_1 = 0;\n                rowData.arrayFilter.forEach(function (element) {\n                    if (element.filter === '') {\n                        count_1++;\n                    }\n                });\n                // Add all of the search options to the pane\n                for (var i = 0, ien = rowData.arrayFilter.length; i < ien; i++) {\n                    var selected = false;\n                    for (var _b = 0, _c = this.s.serverSelect; _b < _c.length; _b++) {\n                        var option = _c[_b];\n                        if (option.filter === rowData.arrayFilter[i].filter) {\n                            selected = true;\n                        }\n                    }\n                    if (this.s.dt.page.info().serverSide &&\n                        (!this.c.cascadePanes ||\n                            (this.c.cascadePanes && rowData.bins[rowData.arrayFilter[i].filter] !== 0) ||\n                            (this.c.cascadePanes && init !== null) ||\n                            selected)) {\n                        var row = this._addRow(rowData.arrayFilter[i].display, rowData.arrayFilter[i].filter, init ?\n                            rowData.binsTotal[rowData.arrayFilter[i].filter] :\n                            rowData.bins[rowData.arrayFilter[i].filter], this.c.viewTotal || init\n                            ? String(rowData.binsTotal[rowData.arrayFilter[i].filter])\n                            : rowData.bins[rowData.arrayFilter[i].filter], rowData.arrayFilter[i].sort, rowData.arrayFilter[i].type);\n                        for (var _d = 0, _e = this.s.serverSelect; _d < _e.length; _d++) {\n                            var option = _e[_d];\n                            if (option.filter === rowData.arrayFilter[i].filter) {\n                                this.s.serverSelecting = true;\n                                row.select();\n                                this.s.serverSelecting = false;\n                            }\n                        }\n                    }\n                    else if (!this.s.dt.page.info().serverSide &&\n                        rowData.arrayFilter[i] &&\n                        (rowData.bins[rowData.arrayFilter[i].filter] !== undefined || !this.c.cascadePanes)) {\n                        this._addRow(rowData.arrayFilter[i].display, rowData.arrayFilter[i].filter, rowData.bins[rowData.arrayFilter[i].filter], rowData.binsTotal[rowData.arrayFilter[i].filter], rowData.arrayFilter[i].sort, rowData.arrayFilter[i].type);\n                    }\n                    else if (!this.s.dt.page.info().serverSide) {\n                        // Just pass an empty string as the message will be calculated based on that in _addRow()\n                        this._addRow('', count_1, count_1, '', '', '');\n                    }\n                }\n            }\n            DataTable.select.init(this.s.dtPane);\n            // If there are custom options set or it is a custom pane then get them\n            if (colOpts.options !== undefined ||\n                (this.customPaneSettings !== null && this.customPaneSettings.options !== undefined)) {\n                this._getComparisonRows();\n            }\n            // Display the pane\n            this.s.dtPane.draw();\n            this._adjustTopRow();\n            if (!this.s.listSet) {\n                this._setListeners();\n                this.s.listSet = true;\n            }\n            for (var _f = 0, selectedRows_1 = selectedRows; _f < selectedRows_1.length; _f++) {\n                var selection = selectedRows_1[_f];\n                if (selection !== undefined) {\n                    for (var _g = 0, _h = this.s.dtPane.rows().indexes().toArray(); _g < _h.length; _g++) {\n                        var row = _h[_g];\n                        if (this.s.dtPane.row(row).data() !== undefined && selection.filter === this.s.dtPane.row(row).data().filter) {\n                            // If this is happening when serverSide processing is happening then different behaviour is needed\n                            if (this.s.dt.page.info().serverSide) {\n                                this.s.serverSelecting = true;\n                                this.s.dtPane.row(row).select();\n                                this.s.serverSelecting = false;\n                            }\n                            else {\n                                this.s.dtPane.row(row).select();\n                            }\n                        }\n                    }\n                }\n            }\n            //  If SSP and the table is ready, apply the search for the pane\n            if (this.s.dt.page.info().serverSide) {\n                this.s.dtPane.search($(this.dom.searchBox).val()).draw();\n            }\n            // Reload the selection, searchbox entry and ordering from the previous state\n            // Need to check here if SSP that this is the first draw, otherwise it will infinite loop\n            if (loadedFilter &&\n                loadedFilter.searchPanes &&\n                loadedFilter.searchPanes.panes &&\n                (dataIn === null ||\n                    dataIn.draw === 1)) {\n                if (!this.c.cascadePanes) {\n                    this._reloadSelect(loadedFilter);\n                }\n                for (var _j = 0, _k = loadedFilter.searchPanes.panes; _j < _k.length; _j++) {\n                    var pane = _k[_j];\n                    if (pane.id === this.s.index) {\n                        $(this.dom.searchBox).val(pane.searchTerm);\n                        $(this.dom.searchBox).trigger('input');\n                        this.s.dtPane.order(pane.order).draw();\n                    }\n                }\n            }\n            // Make sure to save the state once the pane has been built\n            this.s.dt.state.save();\n            return true;\n        };\n        /**\n         * Update the array which holds the display and filter values for the table\n         */\n        SearchPane.prototype._detailsPane = function () {\n            var table = this.s.dt;\n            this.s.rowData.arrayTotals = [];\n            this.s.rowData.binsTotal = {};\n            var settings = this.s.dt.settings()[0];\n            var indexArray = table.rows().indexes();\n            if (!this.s.dt.page.info().serverSide) {\n                for (var _i = 0, indexArray_1 = indexArray; _i < indexArray_1.length; _i++) {\n                    var rowIdx = indexArray_1[_i];\n                    this._populatePaneArray(rowIdx, this.s.rowData.arrayTotals, settings, this.s.rowData.binsTotal);\n                }\n            }\n        };\n        /**\n         * Appends all of the HTML elements to their relevant parent Elements\n         */\n        SearchPane.prototype._displayPane = function () {\n            var container = this.dom.container;\n            var colOpts = this.s.colOpts;\n            var layVal = parseInt(this.c.layout.split('-')[1], 10);\n            //  Empty everything to start again\n            $(this.dom.topRow).empty();\n            $(this.dom.dtP).empty();\n            $(this.dom.topRow).addClass(this.classes.topRow);\n            // If there are more than 3 columns defined then make there be a smaller gap between the panes\n            if (layVal > 3) {\n                $(this.dom.container).addClass(this.classes.smallGap);\n            }\n            $(this.dom.topRow).addClass(this.classes.subRowsContainer);\n            $(this.dom.upper).appendTo(this.dom.topRow);\n            $(this.dom.lower).appendTo(this.dom.topRow);\n            $(this.dom.searchCont).appendTo(this.dom.upper);\n            $(this.dom.buttonGroup).appendTo(this.dom.lower);\n            // If no selections have been made in the pane then disable the clear button\n            if (this.c.dtOpts.searching === false ||\n                (colOpts.dtOpts !== undefined &&\n                    colOpts.dtOpts.searching === false) ||\n                (!this.c.controls || !colOpts.controls) ||\n                (this.customPaneSettings !== null &&\n                    this.customPaneSettings.dtOpts !== undefined &&\n                    this.customPaneSettings.dtOpts.searching !== undefined &&\n                    !this.customPaneSettings.dtOpts.searching)) {\n                $(this.dom.searchBox).attr('disabled', 'disabled')\n                    .removeClass(this.classes.paneInputButton)\n                    .addClass(this.classes.disabledButton);\n            }\n            $(this.dom.searchBox).appendTo(this.dom.searchCont);\n            // Create the contents of the searchCont div. Worth noting that this function will change when using semantic ui\n            this._searchContSetup();\n            // If the clear button is allowed to show then display it\n            if (this.c.clear && this.c.controls && colOpts.controls) {\n                $(this.dom.clear).appendTo(this.dom.buttonGroup);\n            }\n            if (this.c.orderable && colOpts.orderable && this.c.controls && colOpts.controls) {\n                $(this.dom.nameButton).appendTo(this.dom.buttonGroup);\n            }\n            // If the count column is hidden then don't display the ordering button for it\n            if (!this.c.hideCount &&\n                !colOpts.hideCount &&\n                this.c.orderable &&\n                colOpts.orderable &&\n                this.c.controls &&\n                colOpts.controls) {\n                $(this.dom.countButton).appendTo(this.dom.buttonGroup);\n            }\n            $(this.dom.topRow).prependTo(this.dom.container);\n            $(container).append(this.dom.dtP);\n            $(container).show();\n        };\n        /**\n         * Gets the options for the row for the customPanes\n         * @returns {object} The options for the row extended to include the options from the user.\n         */\n        SearchPane.prototype._getBonusOptions = function () {\n            // We need to reset the thresholds as if they have a value in colOpts then that value will be used\n            var defaultMutator = {\n                orthogonal: {\n                    threshold: null\n                },\n                threshold: null\n            };\n            return $.extend(true, {}, SearchPane.defaults, defaultMutator, this.c !== undefined ? this.c : {});\n        };\n        /**\n         * Adds the custom options to the pane\n         * @returns {Array} Returns the array of rows which have been added to the pane\n         */\n        SearchPane.prototype._getComparisonRows = function () {\n            var colOpts = this.s.colOpts;\n            // Find the appropriate options depending on whether this is a pane for a specific column or a custom pane\n            var options = colOpts.options !== undefined\n                ? colOpts.options\n                : this.customPaneSettings !== null && this.customPaneSettings.options !== undefined\n                    ? this.customPaneSettings.options\n                    : undefined;\n            if (options === undefined) {\n                return;\n            }\n            var tableVals = this.s.dt.rows({ search: 'applied' }).data().toArray();\n            var appRows = this.s.dt.rows({ search: 'applied' });\n            var tableValsTotal = this.s.dt.rows().data().toArray();\n            var allRows = this.s.dt.rows();\n            var rows = [];\n            // Clear all of the other rows from the pane, only custom options are to be displayed when they are defined\n            this.s.dtPane.clear();\n            for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n                var comp = options_1[_i];\n                // Initialise the object which is to be placed in the row\n                var insert = comp.label !== '' ? comp.label : this.c.emptyMessage;\n                var comparisonObj = {\n                    className: comp.className,\n                    display: insert,\n                    filter: typeof comp.value === 'function' ? comp.value : [],\n                    shown: 0,\n                    sort: insert,\n                    total: 0,\n                    type: insert\n                };\n                // If a custom function is in place\n                if (typeof comp.value === 'function') {\n                    // Count the number of times the function evaluates to true for the data currently being displayed\n                    for (var tVal = 0; tVal < tableVals.length; tVal++) {\n                        if (comp.value.call(this.s.dt, tableVals[tVal], appRows[0][tVal])) {\n                            comparisonObj.shown++;\n                        }\n                    }\n                    // Count the number of times the function evaluates to true for the original data in the Table\n                    for (var i = 0; i < tableValsTotal.length; i++) {\n                        if (comp.value.call(this.s.dt, tableValsTotal[i], allRows[0][i])) {\n                            comparisonObj.total++;\n                        }\n                    }\n                    // Update the comparisonObj\n                    if (typeof comparisonObj.filter !== 'function') {\n                        comparisonObj.filter.push(comp.filter);\n                    }\n                }\n                // If cascadePanes is not active or if it is and the comparisonObj should be shown then add it to the pane\n                if (!this.c.cascadePanes || (this.c.cascadePanes && comparisonObj.shown !== 0)) {\n                    rows.push(this._addRow(comparisonObj.display, comparisonObj.filter, comparisonObj.shown, comparisonObj.total, comparisonObj.sort, comparisonObj.type, comparisonObj.className));\n                }\n            }\n            return rows;\n        };\n        /**\n         * Gets the options for the row for the customPanes\n         * @returns {object} The options for the row extended to include the options from the user.\n         */\n        SearchPane.prototype._getOptions = function () {\n            var table = this.s.dt;\n            // We need to reset the thresholds as if they have a value in colOpts then that value will be used\n            var defaultMutator = {\n                emptyMessage: false,\n                orthogonal: {\n                    threshold: null\n                },\n                threshold: null\n            };\n            return $.extend(true, {}, SearchPane.defaults, defaultMutator, table.settings()[0].aoColumns[this.s.index].searchPanes);\n        };\n        /**\n         * This method allows for changes to the panes and table to be made when a selection or a deselection occurs\n         * @param select Denotes whether a selection has been made or not\n         */\n        SearchPane.prototype._makeSelection = function () {\n            this.updateTable();\n            this.s.updating = true;\n            this.s.dt.draw();\n            this.s.updating = false;\n        };\n        /**\n         * Fill the array with the values that are currently being displayed in the table\n         * @param last boolean to indicate whether this was the last pane a selection was made in\n         */\n        SearchPane.prototype._populatePane = function (last) {\n            if (last === void 0) { last = false; }\n            var table = this.s.dt;\n            this.s.rowData.arrayFilter = [];\n            this.s.rowData.bins = {};\n            var settings = this.s.dt.settings()[0];\n            // If cascadePanes or viewTotal are active it is necessary to get the data which is currently\n            //  being displayed for their functionality. Also make sure that this was not the last pane to have a selection made\n            if (!this.s.dt.page.info().serverSide) {\n                var indexArray = (this.c.cascadePanes || this.c.viewTotal) && (!this.s.clearing && !last) ?\n                    table.rows({ search: 'applied' }).indexes() :\n                    table.rows().indexes();\n                for (var _i = 0, _a = indexArray.toArray(); _i < _a.length; _i++) {\n                    var index = _a[_i];\n                    this._populatePaneArray(index, this.s.rowData.arrayFilter, settings);\n                }\n            }\n        };\n        /**\n         * Populates an array with all of the data for the table\n         * @param rowIdx The current row index to be compared\n         * @param arrayFilter The array that is to be populated with row Details\n         * @param bins The bins object that is to be populated with the row counts\n         */\n        SearchPane.prototype._populatePaneArray = function (rowIdx, arrayFilter, settings, bins) {\n            if (bins === void 0) { bins = this.s.rowData.bins; }\n            var colOpts = this.s.colOpts;\n            // Retrieve the rendered data from the cell using the fnGetCellData function\n            //  rather than the cell().render API method for optimisation\n            if (typeof colOpts.orthogonal === 'string') {\n                var rendered = settings.oApi._fnGetCellData(settings, rowIdx, this.s.index, colOpts.orthogonal);\n                this.s.rowData.filterMap.set(rowIdx, rendered);\n                this._addOption(rendered, rendered, rendered, rendered, arrayFilter, bins);\n            }\n            else {\n                var filter = settings.oApi._fnGetCellData(settings, rowIdx, this.s.index, colOpts.orthogonal.search);\n                // Null and empty string are to be considered the same value\n                if (filter === null) {\n                    filter = '';\n                }\n                if (typeof filter === 'string') {\n                    filter = filter.replace(/<[^>]*>/g, '');\n                }\n                this.s.rowData.filterMap.set(rowIdx, filter);\n                if (!bins[filter]) {\n                    bins[filter] = 1;\n                    this._addOption(filter, settings.oApi._fnGetCellData(settings, rowIdx, this.s.index, colOpts.orthogonal.display), settings.oApi._fnGetCellData(settings, rowIdx, this.s.index, colOpts.orthogonal.sort), settings.oApi._fnGetCellData(settings, rowIdx, this.s.index, colOpts.orthogonal.type), arrayFilter, bins);\n                    this.s.rowData.totalOptions++;\n                }\n                else {\n                    bins[filter]++;\n                    this.s.rowData.totalOptions++;\n                    return;\n                }\n            }\n        };\n        /**\n         * Reloads all of the previous selects into the panes\n         * @param loadedFilter The loaded filters from a previous state\n         */\n        SearchPane.prototype._reloadSelect = function (loadedFilter) {\n            // If the state was not saved don't selected any\n            if (loadedFilter === undefined) {\n                return;\n            }\n            var idx;\n            // For each pane, check that the loadedFilter list exists and is not null,\n            // find the id of each search item and set it to be selected.\n            for (var i = 0; i < loadedFilter.searchPanes.panes.length; i++) {\n                if (loadedFilter.searchPanes.panes[i].id === this.s.index) {\n                    idx = i;\n                    break;\n                }\n            }\n            if (idx !== undefined) {\n                var table = this.s.dtPane;\n                var rows = table.rows({ order: 'index' }).data().map(function (item) { return item.filter !== null ?\n                    item.filter.toString() :\n                    null; }).toArray();\n                for (var _i = 0, _a = loadedFilter.searchPanes.panes[idx].selected; _i < _a.length; _i++) {\n                    var filter = _a[_i];\n                    var id = -1;\n                    if (filter !== null) {\n                        id = rows.indexOf(filter.toString());\n                    }\n                    if (id > -1) {\n                        this.s.serverSelecting = true;\n                        table.row(id).select();\n                        this.s.serverSelecting = false;\n                    }\n                }\n            }\n        };\n        /**\n         * This method decides whether a row should contribute to the pane or not\n         * @param filter the value that the row is to be filtered on\n         * @param dataIndex the row index\n         */\n        SearchPane.prototype._search = function (filter, dataIndex) {\n            var colOpts = this.s.colOpts;\n            var table = this.s.dt;\n            // For each item selected in the pane, check if it is available in the cell\n            for (var _i = 0, _a = this.selections; _i < _a.length; _i++) {\n                var colSelect = _a[_i];\n                if (typeof colSelect.filter === 'string') {\n                    // The filter value will not have the &amp; in place but a &,\n                    //  so we need to do a replace to make sure that they will match\n                    colSelect.filter = colSelect.filter.replaceAll('&amp;', '&');\n                }\n                // if the filter is an array then is the column present in it\n                if (Array.isArray(filter)) {\n                    if (filter.indexOf(colSelect.filter) !== -1) {\n                        return true;\n                    }\n                }\n                // if the filter is a function then does it meet the criteria of that function or not\n                else if (typeof colSelect.filter === 'function') {\n                    if (colSelect.filter.call(table, table.row(dataIndex).data(), dataIndex)) {\n                        if (colOpts.combiner === 'or') {\n                            return true;\n                        }\n                    }\n                    // If the combiner is an \"and\" then we need to check against all possible selections\n                    //  so if it fails here then the and is not met and return false\n                    else if (colOpts.combiner === 'and') {\n                        return false;\n                    }\n                }\n                // otherwise if the two filter values are equal then return true\n                // Loose type checking incase number type in column comparing to a string\n                else if ((filter === colSelect.filter) ||\n                    (!(typeof filter === 'string' && filter.length === 0) && filter == colSelect.filter) ||\n                    (colSelect.filter === null && typeof filter === 'string' && filter === '')) {\n                    return true;\n                }\n            }\n            // If the combiner is an and then we need to check against all possible selections\n            //  so return true here if so because it would have returned false earlier if it had failed\n            if (colOpts.combiner === 'and') {\n                return true;\n            }\n            // Otherwise it hasn't matched with anything by this point so it must be false\n            else {\n                return false;\n            }\n        };\n        /**\n         * Creates the contents of the searchCont div\n         *\n         * NOTE This is overridden when semantic ui styling in order to integrate the search button into the text box.\n         */\n        SearchPane.prototype._searchContSetup = function () {\n            if (this.c.controls && this.s.colOpts.controls) {\n                $(this.dom.searchButton).appendTo(this.dom.searchLabelCont);\n            }\n            if (!(this.c.dtOpts.searching === false ||\n                this.s.colOpts.dtOpts.searching === false ||\n                (this.customPaneSettings !== null &&\n                    this.customPaneSettings.dtOpts !== undefined &&\n                    this.customPaneSettings.dtOpts.searching !== undefined &&\n                    !this.customPaneSettings.dtOpts.searching))) {\n                $(this.dom.searchLabelCont).appendTo(this.dom.searchCont);\n            }\n        };\n        /**\n         * Adds outline to the pane when a selection has been made\n         */\n        SearchPane.prototype._searchExtras = function () {\n            var updating = this.s.updating;\n            this.s.updating = true;\n            var filters = this.s.dtPane.rows({ selected: true }).data().pluck('filter').toArray();\n            var nullIndex = filters.indexOf(this.s.colOpts.emptyMessage !== false ?\n                this.s.colOpts.emptyMessage :\n                this.c.emptyMessage);\n            var container = $(this.s.dtPane.table().container());\n            // If null index is found then search for empty cells as a filter.\n            if (nullIndex > -1) {\n                filters[nullIndex] = '';\n            }\n            // If a filter has been applied then outline the respective pane, remove it when it no longer is.\n            if (filters.length > 0) {\n                container.addClass(this.classes.selected);\n            }\n            else if (filters.length === 0) {\n                container.removeClass(this.classes.selected);\n            }\n            this.s.updating = updating;\n        };\n        /**\n         * Finds the ratio of the number of different options in the table to the number of rows\n         * @param bins the number of different options in the table\n         * @param rowCount the total number of rows in the table\n         * @returns {number} returns the ratio\n         */\n        SearchPane.prototype._uniqueRatio = function (bins, rowCount) {\n            if (rowCount > 0 &&\n                ((this.s.rowData.totalOptions > 0 && !this.s.dt.page.info().serverSide) ||\n                    (this.s.dt.page.info().serverSide && this.s.tableLength > 0))) {\n                return bins / this.s.rowData.totalOptions;\n            }\n            else {\n                return 1;\n            }\n        };\n        /**\n         * updates the options within the pane\n         * @param draw a flag to define whether this has been called due to a draw event or not\n         */\n        SearchPane.prototype._updateCommon = function (draw) {\n            if (draw === void 0) { draw = false; }\n            // Update the panes if doing a deselect. if doing a select then\n            // update all of the panes except for the one causing the change\n            if (!this.s.dt.page.info().serverSide &&\n                this.s.dtPane !== undefined &&\n                (!this.s.filteringActive || this.c.cascadePanes || draw === true) &&\n                (this.c.cascadePanes !== true || this.s.selectPresent !== true) && (!this.s.lastSelect || !this.s.lastCascade)) {\n                var colOpts = this.s.colOpts;\n                var selected = this.s.dtPane.rows({ selected: true }).data().toArray();\n                var scrollTop = $(this.s.dtPane.table().node()).parent()[0].scrollTop;\n                var rowData = this.s.rowData;\n                // Clear the pane in preparation for adding the updated search options\n                this.s.dtPane.clear();\n                // If it is not a custom pane\n                if (this.colExists) {\n                    // Only run populatePane if the data has not been collected yet\n                    if (rowData.arrayFilter.length === 0) {\n                        this._populatePane();\n                    }\n                    // If cascadePanes is active and the table has returned to its default state then\n                    //  there is a need to update certain parts ofthe rowData.\n                    else if (this.c.cascadePanes\n                        && this.s.dt.rows().data().toArray().length === this.s.dt.rows({ search: 'applied' }).data().toArray().length) {\n                        rowData.arrayFilter = rowData.arrayOriginal;\n                        rowData.bins = rowData.binsOriginal;\n                    }\n                    // Otherwise if viewTotal or cascadePanes is active then the data from the table must be read.\n                    else if (this.c.viewTotal || this.c.cascadePanes) {\n                        this._populatePane();\n                    }\n                    // If the viewTotal option is selected then find the totals for the table\n                    if (this.c.viewTotal) {\n                        this._detailsPane();\n                    }\n                    else {\n                        rowData.binsTotal = rowData.bins;\n                    }\n                    if (this.c.viewTotal && !this.c.cascadePanes) {\n                        rowData.arrayFilter = rowData.arrayTotals;\n                    }\n                    var _loop_1 = function (dataP) {\n                        // If both view Total and cascadePanes have been selected and the count of the row is not 0 then add it to pane\n                        // Do this also if the viewTotal option has been selected and cascadePanes has not\n                        if (dataP && ((rowData.bins[dataP.filter] !== undefined && rowData.bins[dataP.filter] !== 0 && this_1.c.cascadePanes)\n                            || !this_1.c.cascadePanes\n                            || this_1.s.clearing)) {\n                            var row = this_1._addRow(dataP.display, dataP.filter, !this_1.c.viewTotal\n                                ? rowData.bins[dataP.filter]\n                                : rowData.bins[dataP.filter] !== undefined\n                                    ? rowData.bins[dataP.filter]\n                                    : 0, this_1.c.viewTotal\n                                ? String(rowData.binsTotal[dataP.filter])\n                                : rowData.bins[dataP.filter], dataP.sort, dataP.type);\n                            // Find out if the filter was selected in the previous search, if so select it and remove from array.\n                            var selectIndex = selected.findIndex(function (element) {\n                                return element.filter === dataP.filter;\n                            });\n                            if (selectIndex !== -1) {\n                                row.select();\n                                selected.splice(selectIndex, 1);\n                            }\n                        }\n                    };\n                    var this_1 = this;\n                    for (var _i = 0, _a = rowData.arrayFilter; _i < _a.length; _i++) {\n                        var dataP = _a[_i];\n                        _loop_1(dataP);\n                    }\n                }\n                if ((colOpts.searchPanes !== undefined && colOpts.searchPanes.options !== undefined) ||\n                    colOpts.options !== undefined ||\n                    (this.customPaneSettings !== null && this.customPaneSettings.options !== undefined)) {\n                    var rows = this._getComparisonRows();\n                    var _loop_2 = function (row) {\n                        var selectIndex = selected.findIndex(function (element) {\n                            if (element.display === row.data().display) {\n                                return true;\n                            }\n                        });\n                        if (selectIndex !== -1) {\n                            row.select();\n                            selected.splice(selectIndex, 1);\n                        }\n                    };\n                    for (var _b = 0, rows_1 = rows; _b < rows_1.length; _b++) {\n                        var row = rows_1[_b];\n                        _loop_2(row);\n                    }\n                }\n                // Add search options which were previously selected but whos results are no\n                // longer present in the resulting data set.\n                for (var _c = 0, selected_1 = selected; _c < selected_1.length; _c++) {\n                    var selectedEl = selected_1[_c];\n                    var row = this._addRow(selectedEl.display, selectedEl.filter, 0, this.c.viewTotal\n                        ? selectedEl.total\n                        : 0, selectedEl.display, selectedEl.display);\n                    this.s.updating = true;\n                    row.select();\n                    this.s.updating = false;\n                }\n                this.s.dtPane.draw();\n                this.s.dtPane.table().node().parentNode.scrollTop = scrollTop;\n            }\n        };\n        SearchPane.version = '1.1.0';\n        SearchPane.classes = {\n            buttonGroup: 'dtsp-buttonGroup',\n            buttonSub: 'dtsp-buttonSub',\n            clear: 'dtsp-clear',\n            clearAll: 'dtsp-clearAll',\n            clearButton: 'clearButton',\n            container: 'dtsp-searchPane',\n            countButton: 'dtsp-countButton',\n            disabledButton: 'dtsp-disabledButton',\n            dull: 'dtsp-dull',\n            hidden: 'dtsp-hidden',\n            hide: 'dtsp-hide',\n            layout: 'dtsp-',\n            name: 'dtsp-name',\n            nameButton: 'dtsp-nameButton',\n            nameCont: 'dtsp-nameCont',\n            narrow: 'dtsp-narrow',\n            paneButton: 'dtsp-paneButton',\n            paneInputButton: 'dtsp-paneInputButton',\n            pill: 'dtsp-pill',\n            search: 'dtsp-search',\n            searchCont: 'dtsp-searchCont',\n            searchIcon: 'dtsp-searchIcon',\n            searchLabelCont: 'dtsp-searchButtonCont',\n            selected: 'dtsp-selected',\n            smallGap: 'dtsp-smallGap',\n            subRow1: 'dtsp-subRow1',\n            subRow2: 'dtsp-subRow2',\n            subRowsContainer: 'dtsp-subRowsContainer',\n            title: 'dtsp-title',\n            topRow: 'dtsp-topRow'\n        };\n        // Define SearchPanes default options\n        SearchPane.defaults = {\n            cascadePanes: false,\n            clear: true,\n            combiner: 'or',\n            controls: true,\n            container: function (dt) {\n                return dt.table().container();\n            },\n            dtOpts: {},\n            emptyMessage: '<i>No Data</i>',\n            hideCount: false,\n            layout: 'columns-3',\n            name: undefined,\n            orderable: true,\n            orthogonal: {\n                display: 'display',\n                filter: 'filter',\n                hideCount: false,\n                search: 'filter',\n                show: undefined,\n                sort: 'sort',\n                threshold: 0.6,\n                type: 'type'\n            },\n            preSelect: [],\n            threshold: 0.6,\n            viewTotal: false\n        };\n        return SearchPane;\n    }());\n\n    var $$1;\n    var DataTable$1;\n    function setJQuery$1(jq) {\n        $$1 = jq;\n        DataTable$1 = jq.fn.dataTable;\n    }\n    var SearchPanes = /** @class */ (function () {\n        function SearchPanes(paneSettings, opts, fromInit) {\n            var _this = this;\n            if (fromInit === void 0) { fromInit = false; }\n            this.regenerating = false;\n            // Check that the required version of DataTables is included\n            if (!DataTable$1 || !DataTable$1.versionCheck || !DataTable$1.versionCheck('1.10.0')) {\n                throw new Error('SearchPane requires DataTables 1.10 or newer');\n            }\n            // Check that Select is included\n            if (!DataTable$1.select) {\n                throw new Error('SearchPane requires Select');\n            }\n            var table = new DataTable$1.Api(paneSettings);\n            this.classes = $$1.extend(true, {}, SearchPanes.classes);\n            // Get options from user\n            this.c = $$1.extend(true, {}, SearchPanes.defaults, opts);\n            // Add extra elements to DOM object including clear\n            this.dom = {\n                clearAll: $$1('<button type=\"button\">Clear All</button>').addClass(this.classes.clearAll),\n                container: $$1('<div/>').addClass(this.classes.panes).text(table.i18n('searchPanes.loadMessage', 'Loading Search Panes...')),\n                emptyMessage: $$1('<div/>').addClass(this.classes.emptyMessage),\n                options: $$1('<div/>').addClass(this.classes.container),\n                panes: $$1('<div/>').addClass(this.classes.container),\n                title: $$1('<div/>').addClass(this.classes.title),\n                titleRow: $$1('<div/>').addClass(this.classes.titleRow),\n                wrapper: $$1('<div/>')\n            };\n            this.s = {\n                colOpts: [],\n                dt: table,\n                filterCount: 0,\n                filterPane: -1,\n                page: 0,\n                panes: [],\n                selectionList: [],\n                serverData: {},\n                stateRead: false,\n                updating: false\n            };\n            if (table.settings()[0]._searchPanes !== undefined) {\n                return;\n            }\n            this._getState();\n            if (this.s.dt.page.info().serverSide) {\n                table.on('preXhr.dt', function (e, settings, data) {\n                    if (data.searchPanes === undefined) {\n                        data.searchPanes = {};\n                    }\n                    for (var _i = 0, _a = _this.s.selectionList; _i < _a.length; _i++) {\n                        var selection = _a[_i];\n                        var src = _this.s.dt.column(selection.index).dataSrc();\n                        if (data.searchPanes[src] === undefined) {\n                            data.searchPanes[src] = {};\n                        }\n                        for (var i = 0; i < selection.rows.length; i++) {\n                            data.searchPanes[src][i] = selection.rows[i].filter;\n                        }\n                    }\n                });\n            }\n            // We are using the xhr event to rebuild the panes if required due to viewTotal being enabled\n            // If viewTotal is not enabled then we simply update the data from the server\n            table.on('xhr', function (e, settings, json, xhr) {\n                if (json && json.searchPanes && json.searchPanes.options) {\n                    _this.s.serverData = json;\n                    _this.s.serverData.tableLength = json.recordsTotal;\n                    _this._serverTotals();\n                }\n            });\n            table.settings()[0]._searchPanes = this;\n            this.dom.clearAll.text(table.i18n('searchPanes.clearMessage', 'Clear All'));\n            if (this.s.dt.settings()[0]._bInitComplete || fromInit) {\n                this._paneDeclare(table, paneSettings, opts);\n            }\n            else {\n                table.one('preInit.dt', function (settings) {\n                    _this._paneDeclare(table, paneSettings, opts);\n                });\n            }\n            return this;\n        }\n        /**\n         * Clear the selections of all of the panes\n         */\n        SearchPanes.prototype.clearSelections = function () {\n            // Load in all of the searchBoxes in the documents\n            var searches = this.dom.container.find(this.classes.search);\n            // For each searchBox set the input text to be empty and then trigger\n            //  an input on them so that they no longer filter the panes\n            searches.each(function () {\n                $$1(this).val('');\n                $$1(this).trigger('input');\n            });\n            var returnArray = [];\n            // For every pane, clear the selections in the pane\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.dtPane !== undefined) {\n                    returnArray.push(pane.clearPane());\n                }\n            }\n            this.s.dt.draw();\n            return returnArray;\n        };\n        /**\n         * returns the container node for the searchPanes\n         */\n        SearchPanes.prototype.getNode = function () {\n            return this.dom.container;\n        };\n        /**\n         * rebuilds all of the panes\n         */\n        SearchPanes.prototype.rebuild = function (targetIdx, maintainSelection) {\n            if (targetIdx === void 0) { targetIdx = false; }\n            if (maintainSelection === void 0) { maintainSelection = false; }\n            $$1(this.dom.emptyMessage).remove();\n            // As a rebuild from scratch is required, empty the searchpanes container.\n            var returnArray = [];\n            // Rebuild each pane individually, if a specific pane has been selected then only rebuild that one\n            if (targetIdx === false) {\n                $$1(this.dom.panes).empty();\n            }\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (targetIdx !== false && pane.s.index !== targetIdx) {\n                    continue;\n                }\n                pane.clearData();\n                returnArray.push(\n                // Pass a boolean to say whether this is the last choice made for maintaining selections when rebuilding\n                pane.rebuildPane(this.s.selectionList[this.s.selectionList.length - 1] !== undefined ?\n                    pane.s.index === this.s.selectionList[this.s.selectionList.length - 1].index :\n                    false, this.s.dt.page.info().serverSide ?\n                    this.s.serverData :\n                    undefined, null, maintainSelection));\n                $$1(this.dom.panes).append(pane.dom.container);\n            }\n            // Only need to trigger a search if it is not server side processing\n            if (!this.s.dt.page.info().serverSide) {\n                this.s.dt.draw();\n            }\n            if (this.c.cascadePanes || this.c.viewTotal) {\n                this.redrawPanes(true);\n            }\n            else {\n                this._updateSelection();\n            }\n            // Attach panes, clear buttons, and title bar to the document\n            this._updateFilterCount();\n            this._attachPaneContainer();\n            this.s.dt.draw();\n            // If a single pane has been rebuilt then return only that pane\n            if (returnArray.length === 1) {\n                return returnArray[0];\n            }\n            // Otherwise return all of the panes that have been rebuilt\n            else {\n                return returnArray;\n            }\n        };\n        /**\n         * Redraws all of the panes\n         */\n        SearchPanes.prototype.redrawPanes = function (rebuild) {\n            if (rebuild === void 0) { rebuild = false; }\n            var table = this.s.dt;\n            // Only do this if the redraw isn't being triggered by the panes updating themselves\n            if (!this.s.updating && !this.s.dt.page.info().serverSide) {\n                var filterActive = true;\n                var filterPane = this.s.filterPane;\n                // If the number of rows currently visible is equal to the number of rows in the table\n                //  then there can't be any filtering taking place\n                if (table.rows({ search: 'applied' }).data().toArray().length === table.rows().data().toArray().length) {\n                    filterActive = false;\n                }\n                // Otherwise if viewTotal is active then it is necessary to determine which panes a select is present in.\n                //  If there is only one pane with a selection present then it should not show the filtered message as\n                //  more selections may be made in that pane.\n                else if (this.c.viewTotal) {\n                    for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                        var pane = _a[_i];\n                        if (pane.s.dtPane !== undefined) {\n                            var selectLength = pane.s.dtPane.rows({ selected: true }).data().toArray().length;\n                            if (selectLength === 0) {\n                                for (var _b = 0, _c = this.s.selectionList; _b < _c.length; _b++) {\n                                    var selection = _c[_b];\n                                    if (selection.index === pane.s.index && selection.rows.length !== 0) {\n                                        selectLength = selection.rows.length;\n                                    }\n                                }\n                            }\n                            // If filterPane === -1 then a pane with a selection has not been found yet, so set filterPane to that panes index\n                            if (selectLength > 0 && filterPane === -1) {\n                                filterPane = pane.s.index;\n                            }\n                            // Then if another pane is found with a selection then set filterPane to null to\n                            //  show that multiple panes have selections present\n                            else if (selectLength > 0) {\n                                filterPane = null;\n                            }\n                        }\n                    }\n                }\n                var deselectIdx = void 0;\n                var newSelectionList = [];\n                // Don't run this if it is due to the panes regenerating\n                if (!this.regenerating) {\n                    for (var _d = 0, _e = this.s.panes; _d < _e.length; _d++) {\n                        var pane = _e[_d];\n                        // Identify the pane where a selection or deselection has been made and add it to the list.\n                        if (pane.s.selectPresent) {\n                            this.s.selectionList.push({ index: pane.s.index, rows: pane.s.dtPane.rows({ selected: true }).data().toArray(), protect: false });\n                            table.state.save();\n                            break;\n                        }\n                        else if (pane.s.deselect) {\n                            deselectIdx = pane.s.index;\n                            var selectedData = pane.s.dtPane.rows({ selected: true }).data().toArray();\n                            if (selectedData.length > 0) {\n                                this.s.selectionList.push({ index: pane.s.index, rows: selectedData, protect: true });\n                            }\n                        }\n                    }\n                    if (this.s.selectionList.length > 0) {\n                        var last = this.s.selectionList[this.s.selectionList.length - 1].index;\n                        for (var _f = 0, _g = this.s.panes; _f < _g.length; _f++) {\n                            var pane = _g[_f];\n                            pane.s.lastSelect = (pane.s.index === last);\n                        }\n                    }\n                    // Remove selections from the list from the pane where a deselect has taken place\n                    for (var i = 0; i < this.s.selectionList.length; i++) {\n                        if (this.s.selectionList[i].index !== deselectIdx || this.s.selectionList[i].protect === true) {\n                            var further = false;\n                            // Find out if this selection is the last one in the list for that pane\n                            for (var j = i + 1; j < this.s.selectionList.length; j++) {\n                                if (this.s.selectionList[j].index === this.s.selectionList[i].index) {\n                                    further = true;\n                                }\n                            }\n                            // If there are no selections for this pane in the list then just push this one\n                            if (!further) {\n                                newSelectionList.push(this.s.selectionList[i]);\n                                this.s.selectionList[i].protect = false;\n                            }\n                        }\n                    }\n                    var solePane = -1;\n                    if (newSelectionList.length === 1) {\n                        solePane = newSelectionList[0].index;\n                    }\n                    // Update all of the panes to reflect the current state of the filters\n                    for (var _h = 0, _j = this.s.panes; _h < _j.length; _h++) {\n                        var pane = _j[_h];\n                        if (pane.s.dtPane !== undefined) {\n                            var tempFilter = true;\n                            pane.s.filteringActive = true;\n                            if ((filterPane !== -1 && filterPane !== null && filterPane === pane.s.index) ||\n                                filterActive === false ||\n                                pane.s.index === solePane) {\n                                tempFilter = false;\n                                pane.s.filteringActive = false;\n                            }\n                            pane.updatePane(!tempFilter ? false : filterActive);\n                        }\n                    }\n                    // Update the label that shows how many filters are in place\n                    this._updateFilterCount();\n                    // If the length of the selections are different then some of them have been removed and a deselect has occured\n                    if (newSelectionList.length > 0 && (newSelectionList.length < this.s.selectionList.length || rebuild)) {\n                        this._cascadeRegen(newSelectionList);\n                        var last = newSelectionList[newSelectionList.length - 1].index;\n                        for (var _k = 0, _l = this.s.panes; _k < _l.length; _k++) {\n                            var pane = _l[_k];\n                            pane.s.lastSelect = (pane.s.index === last);\n                        }\n                    }\n                    else if (newSelectionList.length > 0) {\n                        // Update all of the other panes as you would just making a normal selection\n                        for (var _m = 0, _o = this.s.panes; _m < _o.length; _m++) {\n                            var paneUpdate = _o[_m];\n                            if (paneUpdate.s.dtPane !== undefined) {\n                                var tempFilter = true;\n                                paneUpdate.s.filteringActive = true;\n                                if ((filterPane !== -1 && filterPane !== null && filterPane === paneUpdate.s.index) || filterActive === false) {\n                                    tempFilter = false;\n                                    paneUpdate.s.filteringActive = false;\n                                }\n                                paneUpdate.updatePane(!tempFilter ? tempFilter : filterActive);\n                            }\n                        }\n                    }\n                }\n                else {\n                    var solePane = -1;\n                    if (newSelectionList.length === 1) {\n                        solePane = newSelectionList[0].index;\n                    }\n                    for (var _p = 0, _q = this.s.panes; _p < _q.length; _p++) {\n                        var pane = _q[_p];\n                        if (pane.s.dtPane !== undefined) {\n                            var tempFilter = true;\n                            pane.s.filteringActive = true;\n                            if ((filterPane !== -1 && filterPane !== null && filterPane === pane.s.index) ||\n                                filterActive === false ||\n                                pane.s.index === solePane) {\n                                tempFilter = false;\n                                pane.s.filteringActive = false;\n                            }\n                            pane.updatePane(!tempFilter ? tempFilter : filterActive);\n                        }\n                    }\n                    // Update the label that shows how many filters are in place\n                    this._updateFilterCount();\n                }\n                if (!filterActive) {\n                    this.s.selectionList = [];\n                }\n            }\n        };\n        /**\n         * Attach the panes, buttons and title to the document\n         */\n        SearchPanes.prototype._attach = function () {\n            var _this = this;\n            $$1(this.dom.container).removeClass(this.classes.hide);\n            $$1(this.dom.titleRow).removeClass(this.classes.hide);\n            $$1(this.dom.titleRow).remove();\n            $$1(this.dom.title).appendTo(this.dom.titleRow);\n            // If the clear button is permitted attach it\n            if (this.c.clear) {\n                $$1(this.dom.clearAll).appendTo(this.dom.titleRow);\n                $$1(this.dom.clearAll).on('click.dtsps', function () {\n                    _this.clearSelections();\n                });\n            }\n            $$1(this.dom.titleRow).appendTo(this.dom.container);\n            // Attach the container for each individual pane to the overall container\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                $$1(pane.dom.container).appendTo(this.dom.panes);\n            }\n            // Attach everything to the document\n            $$1(this.dom.panes).appendTo(this.dom.container);\n            if ($$1('div.' + this.classes.container).length === 0) {\n                $$1(this.dom.container).prependTo(this.s.dt);\n            }\n            return this.dom.container;\n        };\n        /**\n         * Attach the top row containing the filter count and clear all button\n         */\n        SearchPanes.prototype._attachExtras = function () {\n            $$1(this.dom.container).removeClass(this.classes.hide);\n            $$1(this.dom.titleRow).removeClass(this.classes.hide);\n            $$1(this.dom.titleRow).remove();\n            $$1(this.dom.title).appendTo(this.dom.titleRow);\n            // If the clear button is permitted attach it\n            if (this.c.clear) {\n                $$1(this.dom.clearAll).appendTo(this.dom.titleRow);\n            }\n            $$1(this.dom.titleRow).appendTo(this.dom.container);\n            return this.dom.container;\n        };\n        /**\n         * If there are no panes to display then this method is called to either\n         *   display a message in their place or hide them completely.\n         */\n        SearchPanes.prototype._attachMessage = function () {\n            // Create a message to display on the screen\n            var message;\n            try {\n                message = this.s.dt.i18n('searchPanes.emptyPanes', 'No SearchPanes');\n            }\n            catch (error) {\n                message = null;\n            }\n            // If the message is an empty string then searchPanes.emptyPanes is undefined,\n            //  therefore the pane container should be removed from the display\n            if (message === null) {\n                $$1(this.dom.container).addClass(this.classes.hide);\n                $$1(this.dom.titleRow).removeClass(this.classes.hide);\n                return;\n            }\n            else {\n                $$1(this.dom.container).removeClass(this.classes.hide);\n                $$1(this.dom.titleRow).addClass(this.classes.hide);\n            }\n            // Otherwise display the message\n            $$1(this.dom.emptyMessage).text(message);\n            this.dom.emptyMessage.appendTo(this.dom.container);\n            return this.dom.container;\n        };\n        /**\n         * Attaches the panes to the document and displays a message or hides if there are none\n         */\n        SearchPanes.prototype._attachPaneContainer = function () {\n            // If a pane is to be displayed then attach the normal pane output\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.displayed === true) {\n                    return this._attach();\n                }\n            }\n            // Otherwise attach the custom message or remove the container from the display\n            return this._attachMessage();\n        };\n        /**\n         * Prepares the panes for selections to be made when cascade is active and a deselect has occured\n         * @param newSelectionList the list of selections which are to be made\n         */\n        SearchPanes.prototype._cascadeRegen = function (newSelectionList) {\n            // Set this to true so that the actions taken do not cause this to run until it is finished\n            this.regenerating = true;\n            // If only one pane has been selected then take note of its index\n            var solePane = -1;\n            if (newSelectionList.length === 1) {\n                solePane = newSelectionList[0].index;\n            }\n            // Let the pane know that a cascadeRegen is taking place to avoid unexpected behaviour\n            //  and clear all of the previous selections in the pane\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                pane.setCascadeRegen(true);\n                pane.setClear(true);\n                // If this is the same as the pane with the only selection then pass it as a parameter into clearPane\n                if ((pane.s.dtPane !== undefined && pane.s.index === solePane) || pane.s.dtPane !== undefined) {\n                    pane.clearPane();\n                }\n                pane.setClear(false);\n            }\n            // Remake Selections\n            this._makeCascadeSelections(newSelectionList);\n            // Set the selection list property to be the list without the selections from the deselect pane\n            this.s.selectionList = newSelectionList;\n            // The regeneration of selections is over so set it back to false\n            for (var _b = 0, _c = this.s.panes; _b < _c.length; _b++) {\n                var pane = _c[_b];\n                pane.setCascadeRegen(false);\n            }\n            this.regenerating = false;\n        };\n        /**\n         * Attaches the message to the document but does not add any panes\n         */\n        SearchPanes.prototype._checkMessage = function () {\n            // If a pane is to be displayed then attach the normal pane output\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.displayed === true) {\n                    return;\n                }\n            }\n            // Otherwise attach the custom message or remove the container from the display\n            return this._attachMessage();\n        };\n        /**\n         * Gets the selection list from the previous state and stores it in the selectionList Property\n         */\n        SearchPanes.prototype._getState = function () {\n            var loadedFilter = this.s.dt.state.loaded();\n            if (loadedFilter && loadedFilter.searchPanes && loadedFilter.searchPanes.selectionList !== undefined) {\n                this.s.selectionList = loadedFilter.searchPanes.selectionList;\n            }\n        };\n        /**\n         * Makes all of the selections when cascade is active\n         * @param newSelectionList the list of selections to be made, in the order they were originally selected\n         */\n        SearchPanes.prototype._makeCascadeSelections = function (newSelectionList) {\n            // make selections in the order they were made previously, excluding those from the pane where a deselect was made\n            for (var i = 0; i < newSelectionList.length; i++) {\n                var _loop_1 = function (pane) {\n                    if (pane.s.index === newSelectionList[i].index && pane.s.dtPane !== undefined) {\n                        // When regenerating the cascade selections we need this flag so that the panes are only ignored if it\n                        //  is the last selection and the pane for that selection\n                        if (i === newSelectionList.length - 1) {\n                            pane.s.lastCascade = true;\n                        }\n                        // if there are any selections currently in the pane then deselect them as we are about to make our new selections\n                        if (pane.s.dtPane.rows({ selected: true }).data().toArray().length > 0 && pane.s.dtPane !== undefined) {\n                            pane.setClear(true);\n                            pane.clearPane();\n                            pane.setClear(false);\n                        }\n                        var _loop_2 = function (row) {\n                            pane.s.dtPane.rows().every(function (rowIdx) {\n                                if (pane.s.dtPane.row(rowIdx).data() !== undefined &&\n                                    row !== undefined &&\n                                    pane.s.dtPane.row(rowIdx).data().filter === row.filter) {\n                                    pane.s.dtPane.row(rowIdx).select();\n                                }\n                            });\n                        };\n                        // select every row in the pane that was selected previously\n                        for (var _i = 0, _a = newSelectionList[i].rows; _i < _a.length; _i++) {\n                            var row = _a[_i];\n                            _loop_2(row);\n                        }\n                        // Update the label that shows how many filters are in place\n                        this_1._updateFilterCount();\n                        pane.s.lastCascade = false;\n                    }\n                };\n                var this_1 = this;\n                // As the selections may have been made across the panes in a different order to the pane index we must identify\n                //  which pane has the index of the selection. This is also important for colreorder etc\n                for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                    var pane = _a[_i];\n                    _loop_1(pane);\n                }\n            }\n            // Make sure that the state is saved after all of these selections\n            this.s.dt.state.save();\n        };\n        /**\n         * Declares the instances of individual searchpanes dependant on the number of columns.\n         * It is necessary to run this once preInit has completed otherwise no panes will be\n         *  created as the column count will be 0.\n         * @param table the DataTable api for the parent table\n         * @param paneSettings the settings passed into the constructor\n         * @param opts the options passed into the constructor\n         */\n        SearchPanes.prototype._paneDeclare = function (table, paneSettings, opts) {\n            var _this = this;\n            // Create Panes\n            table\n                .columns(this.c.columns.length > 0 ? this.c.columns : undefined)\n                .eq(0)\n                .each(function (idx) {\n                _this.s.panes.push(new SearchPane(paneSettings, opts, idx, _this.c.layout, _this.dom.panes));\n            });\n            // If there is any extra custom panes defined then create panes for them too\n            var rowLength = table.columns().eq(0).toArray().length;\n            var paneLength = this.c.panes.length;\n            for (var i = 0; i < paneLength; i++) {\n                var id = rowLength + i;\n                this.s.panes.push(new SearchPane(paneSettings, opts, id, this.c.layout, this.dom.panes, this.c.panes[i]));\n            }\n            // If a custom ordering is being used\n            if (this.c.order.length > 0) {\n                // Make a new Array of panes based upon the order\n                var newPanes = this.c.order.map(function (name, index, values) {\n                    return _this._findPane(name);\n                });\n                // Remove the old panes from the dom\n                this.dom.panes.empty();\n                this.s.panes = newPanes;\n                // Append the panes in the correct order\n                for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                    var pane = _a[_i];\n                    this.dom.panes.append(pane.dom.container);\n                }\n            }\n            // If this internal property is true then the DataTable has been initialised already\n            if (this.s.dt.settings()[0]._bInitComplete) {\n                this._startup(table);\n            }\n            else {\n                // Otherwise add the paneStartup function to the list of functions that are to be run when the table is initialised\n                // This will garauntee that the panes are initialised before the init event and init Complete callback is fired\n                this.s.dt.settings()[0].aoInitComplete.push({ fn: function () {\n                        _this._startup(table);\n                    } });\n            }\n        };\n        /**\n         * Finds a pane based upon the name of that pane\n         * @param name string representing the name of the pane\n         * @returns SearchPane The pane which has that name\n         */\n        SearchPanes.prototype._findPane = function (name) {\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (name === pane.s.name) {\n                    return pane;\n                }\n            }\n        };\n        /**\n         * Works out which panes to update when data is recieved from the server and viewTotal is active\n         */\n        SearchPanes.prototype._serverTotals = function () {\n            var selectPresent = false;\n            var deselectPresent = false;\n            var table = this.s.dt;\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                // Identify the pane where a selection or deselection has been made and add it to the list.\n                if (pane.s.selectPresent) {\n                    this.s.selectionList.push({ index: pane.s.index, rows: pane.s.dtPane.rows({ selected: true }).data().toArray(), protect: false });\n                    table.state.save();\n                    pane.s.selectPresent = false;\n                    selectPresent = true;\n                    break;\n                }\n                else if (pane.s.deselect) {\n                    var selectedData = pane.s.dtPane.rows({ selected: true }).data().toArray();\n                    if (selectedData.length > 0) {\n                        this.s.selectionList.push({ index: pane.s.index, rows: selectedData, protect: true });\n                    }\n                    selectPresent = true;\n                    deselectPresent = true;\n                }\n            }\n            // Build an updated list based on any selections or deselections added\n            if (!selectPresent) {\n                this.s.selectionList = [];\n            }\n            else {\n                var newSelectionList = [];\n                for (var i = 0; i < this.s.selectionList.length; i++) {\n                    var further = false;\n                    // Find out if this selection is the last one in the list for that pane\n                    for (var j = i + 1; j < this.s.selectionList.length; j++) {\n                        if (this.s.selectionList[j].index === this.s.selectionList[i].index) {\n                            further = true;\n                        }\n                    }\n                    // If there are no selections for this pane in the list then just push this one\n                    if (!further) {\n                        var push = false;\n                        for (var _b = 0, _c = this.s.panes; _b < _c.length; _b++) {\n                            var pane = _c[_b];\n                            if (pane.s.index === this.s.selectionList[i].index &&\n                                pane.s.dtPane.rows({ selected: true }).data().toArray().length > 0) {\n                                push = true;\n                            }\n                        }\n                        if (push) {\n                            newSelectionList.push(this.s.selectionList[i]);\n                        }\n                    }\n                }\n                this.s.selectionList = newSelectionList;\n            }\n            var initIdx = -1;\n            // If there has been a deselect and only one pane has a selection then update everything\n            if (deselectPresent && this.s.selectionList.length === 1) {\n                for (var _d = 0, _e = this.s.panes; _d < _e.length; _d++) {\n                    var pane = _e[_d];\n                    pane.s.lastSelect = false;\n                    pane.s.deselect = false;\n                    if (pane.s.dtPane !== undefined && pane.s.dtPane.rows({ selected: true }).data().toArray().length > 0) {\n                        initIdx = pane.s.index;\n                    }\n                }\n            }\n            // Otherwise if there are more 1 selections then find the last one and set it to not update that pane\n            else if (this.s.selectionList.length > 0) {\n                var last = this.s.selectionList[this.s.selectionList.length - 1].index;\n                for (var _f = 0, _g = this.s.panes; _f < _g.length; _f++) {\n                    var pane = _g[_f];\n                    pane.s.lastSelect = (pane.s.index === last);\n                    pane.s.deselect = false;\n                }\n            }\n            // Otherwise if there are no selections then find where that took place and do not update to maintain scrolling\n            else if (this.s.selectionList.length === 0) {\n                for (var _h = 0, _j = this.s.panes; _h < _j.length; _h++) {\n                    var pane = _j[_h];\n                    // pane.s.lastSelect = (pane.s.deselect === true);\n                    pane.s.lastSelect = false;\n                    pane.s.deselect = false;\n                }\n            }\n            $$1(this.dom.panes).empty();\n            // Rebuild the desired panes\n            for (var _k = 0, _l = this.s.panes; _k < _l.length; _k++) {\n                var pane = _l[_k];\n                if (!pane.s.lastSelect) {\n                    pane.rebuildPane(undefined, this.s.dt.page.info().serverSide ? this.s.serverData : undefined, pane.s.index === initIdx ? true : null, true);\n                }\n                else {\n                    pane._setListeners();\n                }\n                // append all of the panes and enable select\n                $$1(this.dom.panes).append(pane.dom.container);\n                if (pane.s.dtPane !== undefined) {\n                    $$1(pane.s.dtPane.table().node()).parent()[0].scrollTop = pane.s.scrollTop;\n                    $$1.fn.dataTable.select.init(pane.s.dtPane);\n                }\n            }\n            // Only need to trigger a search if it is not server side processing\n            if (!this.s.dt.page.info().serverSide) {\n                this.s.dt.draw();\n            }\n        };\n        /**\n         * Initialises the tables previous/preset selections and initialises callbacks for events\n         * @param table the parent table for which the searchPanes are being created\n         */\n        SearchPanes.prototype._startup = function (table) {\n            var _this = this;\n            $$1(this.dom.container).text('');\n            // Attach clear button and title bar to the document\n            this._attachExtras();\n            $$1(this.dom.container).append(this.dom.panes);\n            $$1(this.dom.panes).empty();\n            var loadedFilter = this.s.dt.state.loaded();\n            if (this.c.viewTotal && !this.c.cascadePanes) {\n                if (loadedFilter !== null &&\n                    loadedFilter !== undefined &&\n                    loadedFilter.searchPanes !== undefined &&\n                    loadedFilter.searchPanes.panes !== undefined) {\n                    var filterActive = false;\n                    for (var _i = 0, _a = loadedFilter.searchPanes.panes; _i < _a.length; _i++) {\n                        var pane = _a[_i];\n                        if (pane.selected.length > 0) {\n                            filterActive = true;\n                            break;\n                        }\n                    }\n                    if (filterActive) {\n                        for (var _b = 0, _c = this.s.panes; _b < _c.length; _b++) {\n                            var pane = _c[_b];\n                            pane.s.showFiltered = true;\n                        }\n                    }\n                }\n            }\n            for (var _d = 0, _e = this.s.panes; _d < _e.length; _d++) {\n                var pane = _e[_d];\n                pane.rebuildPane(undefined, Object.keys(this.s.serverData).length > 0 ? this.s.serverData : undefined);\n                $$1(this.dom.panes).append(pane.dom.container);\n            }\n            // Only need to trigger a search if it is not server side processing\n            if (!this.s.dt.page.info().serverSide) {\n                this.s.dt.draw();\n            }\n            // Reset the paging if that has been saved in the state\n            if (!this.s.stateRead && loadedFilter !== null && loadedFilter !== undefined) {\n                this.s.dt.page((loadedFilter.start / this.s.dt.page.len()));\n                this.s.dt.draw('page');\n            }\n            this.s.stateRead = true;\n            if (this.c.viewTotal && !this.c.cascadePanes) {\n                for (var _f = 0, _g = this.s.panes; _f < _g.length; _f++) {\n                    var pane = _g[_f];\n                    pane.updatePane();\n                }\n            }\n            this._updateFilterCount();\n            this._checkMessage();\n            // When a draw is called on the DataTable, update all of the panes incase the data in the DataTable has changed\n            table.on('preDraw.dtsps', function () {\n                _this._updateFilterCount();\n                if ((_this.c.cascadePanes || _this.c.viewTotal) && !_this.s.dt.page.info().serverSide) {\n                    _this.redrawPanes();\n                }\n                else {\n                    _this._updateSelection();\n                }\n                _this.s.filterPane = -1;\n            });\n            // Whenever a state save occurs store the selection list in the state object\n            this.s.dt.on('stateSaveParams.dtsp', function (e, settings, data) {\n                if (data.searchPanes === undefined) {\n                    data.searchPanes = {};\n                }\n                data.searchPanes.selectionList = _this.s.selectionList;\n            });\n            if (this.s.dt.page.info().serverSide) {\n                table.off('page');\n                table.on('page', function () {\n                    _this.s.page = _this.s.dt.page();\n                });\n                table.off('preXhr.dt');\n                table.on('preXhr.dt', function (e, settings, data) {\n                    if (data.searchPanes === undefined) {\n                        data.searchPanes = {};\n                    }\n                    // Count how many filters are being applied\n                    var filterCount = 0;\n                    for (var _i = 0, _a = _this.s.panes; _i < _a.length; _i++) {\n                        var pane = _a[_i];\n                        var src = _this.s.dt.column(pane.s.index).dataSrc();\n                        if (data.searchPanes[src] === undefined) {\n                            data.searchPanes[src] = {};\n                        }\n                        if (pane.s.dtPane !== undefined) {\n                            var rowData = pane.s.dtPane.rows({ selected: true }).data().toArray();\n                            for (var i = 0; i < rowData.length; i++) {\n                                data.searchPanes[src][i] = rowData[i].filter;\n                                filterCount++;\n                            }\n                        }\n                    }\n                    if (_this.c.viewTotal) {\n                        _this._prepViewTotal();\n                    }\n                    // If there is a filter to be applied, then we need to read from the start of the result set\n                    //  and set the paging to 0. This matches the behaviour of client side processing\n                    if (filterCount > 0) {\n                        // If the number of filters has changed we need to read from the start of the result set and reset the paging\n                        if (filterCount !== _this.s.filterCount) {\n                            data.start = 0;\n                            _this.s.page = 0;\n                        }\n                        // Otherwise it is a paging request and we need to read from whatever the paging has been set to\n                        else {\n                            data.start = _this.s.page * _this.s.dt.page.len();\n                        }\n                        _this.s.dt.page(_this.s.page);\n                        _this.s.filterCount = filterCount;\n                    }\n                });\n            }\n            else {\n                table.on('preXhr.dt', function (e, settings, data) {\n                    for (var _i = 0, _a = _this.s.panes; _i < _a.length; _i++) {\n                        var pane = _a[_i];\n                        pane.clearData();\n                    }\n                });\n            }\n            // If the data is reloaded from the server then it is possible that it has changed completely,\n            // so we need to rebuild the panes\n            this.s.dt.on('xhr', function (e, settings, json, xhr) {\n                var processing = false;\n                if (!_this.s.dt.page.info().serverSide) {\n                    _this.s.dt.one('preDraw', function () {\n                        if (processing) {\n                            return;\n                        }\n                        var page = _this.s.dt.page();\n                        processing = true;\n                        $$1(_this.dom.panes).empty();\n                        for (var _i = 0, _a = _this.s.panes; _i < _a.length; _i++) {\n                            var pane = _a[_i];\n                            pane.clearData(); // Clears all of the bins and will mean that the data has to be re-read\n                            // Pass a boolean to say whether this is the last choice made for maintaining selections when rebuilding\n                            pane.rebuildPane(_this.s.selectionList[_this.s.selectionList.length - 1] !== undefined ?\n                                pane.s.index === _this.s.selectionList[_this.s.selectionList.length - 1].index :\n                                false, undefined, undefined, true);\n                            $$1(_this.dom.panes).append(pane.dom.container);\n                        }\n                        if (!_this.s.dt.page.info().serverSide) {\n                            _this.s.dt.draw();\n                        }\n                        if (_this.c.cascadePanes || _this.c.viewTotal) {\n                            _this.redrawPanes(_this.c.cascadePanes);\n                        }\n                        else {\n                            _this._updateSelection();\n                        }\n                        _this._checkMessage();\n                        _this.s.dt.one('draw', function () {\n                            _this.s.dt.page(page).draw(false);\n                        });\n                    });\n                }\n            });\n            // PreSelect any selections which have been defined using the preSelect option\n            for (var _h = 0, _j = this.s.panes; _h < _j.length; _h++) {\n                var pane = _j[_h];\n                if (pane !== undefined &&\n                    pane.s.dtPane !== undefined &&\n                    ((pane.s.colOpts.preSelect !== undefined && pane.s.colOpts.preSelect.length > 0) ||\n                        (pane.customPaneSettings !== null &&\n                            pane.customPaneSettings.preSelect !== undefined &&\n                            pane.customPaneSettings.preSelect.length > 0))) {\n                    var tableLength = pane.s.dtPane.rows().data().toArray().length;\n                    for (var i = 0; i < tableLength; i++) {\n                        if (pane.s.colOpts.preSelect.indexOf(pane.s.dtPane.cell(i, 0).data()) !== -1 ||\n                            (pane.customPaneSettings !== null &&\n                                pane.customPaneSettings.preSelect !== undefined &&\n                                pane.customPaneSettings.preSelect.indexOf(pane.s.dtPane.cell(i, 0).data()) !== -1)) {\n                            pane.s.dtPane.row(i).select();\n                        }\n                    }\n                    pane.updateTable();\n                }\n            }\n            if (this.s.selectionList !== undefined && this.s.selectionList.length > 0) {\n                var last = this.s.selectionList[this.s.selectionList.length - 1].index;\n                for (var _k = 0, _l = this.s.panes; _k < _l.length; _k++) {\n                    var pane = _l[_k];\n                    pane.s.lastSelect = (pane.s.index === last);\n                }\n            }\n            // If cascadePanes is active then make the previous selections in the order they were previously\n            if (this.s.selectionList.length > 0 && this.c.cascadePanes) {\n                this._cascadeRegen(this.s.selectionList);\n            }\n            // Update the title bar to show how many filters have been selected\n            this._updateFilterCount();\n            // If the table is destroyed and restarted then clear the selections so that they do not persist.\n            table.on('destroy.dtsps', function () {\n                for (var _i = 0, _a = _this.s.panes; _i < _a.length; _i++) {\n                    var pane = _a[_i];\n                    pane.destroy();\n                }\n                table.off('.dtsps');\n                $$1(_this.dom.clearAll).off('.dtsps');\n                $$1(_this.dom.container).remove();\n                _this.clearSelections();\n            });\n            // When the clear All button has been pressed clear all of the selections in the panes\n            if (this.c.clear) {\n                $$1(this.dom.clearAll).on('click.dtsps', function () {\n                    _this.clearSelections();\n                });\n            }\n            table.settings()[0]._searchPanes = this;\n        };\n        SearchPanes.prototype._prepViewTotal = function () {\n            var filterPane = this.s.filterPane;\n            var filterActive = false;\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.dtPane !== undefined) {\n                    var selectLength = pane.s.dtPane.rows({ selected: true }).data().toArray().length;\n                    // If filterPane === -1 then a pane with a selection has not been found yet, so set filterPane to that panes index\n                    if (selectLength > 0 && filterPane === -1) {\n                        filterPane = pane.s.index;\n                        filterActive = true;\n                    }\n                    // Then if another pane is found with a selection then set filterPane to null to\n                    //  show that multiple panes have selections present\n                    else if (selectLength > 0) {\n                        filterPane = null;\n                    }\n                }\n            }\n            // Update all of the panes to reflect the current state of the filters\n            for (var _b = 0, _c = this.s.panes; _b < _c.length; _b++) {\n                var pane = _c[_b];\n                if (pane.s.dtPane !== undefined) {\n                    pane.s.filteringActive = true;\n                    if ((filterPane !== -1 && filterPane !== null && filterPane === pane.s.index) || filterActive === false) {\n                        pane.s.filteringActive = false;\n                    }\n                }\n            }\n        };\n        /**\n         * Updates the number of filters that have been applied in the title\n         */\n        SearchPanes.prototype._updateFilterCount = function () {\n            var filterCount = 0;\n            // Add the number of all of the filters throughout the panes\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.dtPane !== undefined) {\n                    filterCount += pane.getPaneCount();\n                }\n            }\n            // Run the message through the internationalisation method to improve readability\n            var message = this.s.dt.i18n('searchPanes.title', 'Filters Active - %d', filterCount);\n            $$1(this.dom.title).text(message);\n            if (this.c.filterChanged !== undefined && typeof this.c.filterChanged === 'function') {\n                this.c.filterChanged.call(this.s.dt, filterCount);\n            }\n        };\n        /**\n         * Updates the selectionList when cascade is not in place\n         */\n        SearchPanes.prototype._updateSelection = function () {\n            this.s.selectionList = [];\n            for (var _i = 0, _a = this.s.panes; _i < _a.length; _i++) {\n                var pane = _a[_i];\n                if (pane.s.dtPane !== undefined) {\n                    this.s.selectionList.push({ index: pane.s.index, rows: pane.s.dtPane.rows({ selected: true }).data().toArray(), protect: false });\n                }\n            }\n            this.s.dt.state.save();\n        };\n        SearchPanes.version = '1.2.1';\n        SearchPanes.classes = {\n            clear: 'dtsp-clear',\n            clearAll: 'dtsp-clearAll',\n            container: 'dtsp-searchPanes',\n            emptyMessage: 'dtsp-emptyMessage',\n            hide: 'dtsp-hidden',\n            panes: 'dtsp-panesContainer',\n            search: 'dtsp-search',\n            title: 'dtsp-title',\n            titleRow: 'dtsp-titleRow'\n        };\n        // Define SearchPanes default options\n        SearchPanes.defaults = {\n            cascadePanes: false,\n            clear: true,\n            container: function (dt) {\n                return dt.table().container();\n            },\n            columns: [],\n            filterChanged: undefined,\n            layout: 'columns-3',\n            order: [],\n            panes: [],\n            viewTotal: false\n        };\n        return SearchPanes;\n    }());\n\n    /*! SearchPanes 1.2.1\n     * 2019-2020 SpryMedia Ltd - datatables.net/license\n     */\n    // DataTables extensions common UMD. Note that this allows for AMD, CommonJS\n    // (with window and jQuery being allowed as parameters to the returned\n    // function) or just default browser loading.\n    (function (factory) {\n        if (typeof define === 'function' && define.amd) {\n            // AMD\n            define(['jquery', 'datatables.net'], function ($) {\n                return factory($, window, document);\n            });\n        }\n        else if (typeof exports === 'object') {\n            // CommonJS\n            module.exports = function (root, $) {\n                if (!root) {\n                    root = window;\n                }\n                if (!$ || !$.fn.dataTable) {\n                    $ = require('datatables.net')(root, $).$;\n                }\n                return factory($, root, root.document);\n            };\n        }\n        else {\n            // Browser - assume jQuery has already been loaded\n            factory(window.jQuery, window, document);\n        }\n    }(function ($, window, document) {\n        setJQuery($);\n        setJQuery$1($);\n        var DataTable = $.fn.dataTable;\n        $.fn.dataTable.SearchPanes = SearchPanes;\n        $.fn.DataTable.SearchPanes = SearchPanes;\n        $.fn.dataTable.SearchPane = SearchPane;\n        $.fn.DataTable.SearchPane = SearchPane;\n        var apiRegister = $.fn.dataTable.Api.register;\n        apiRegister('searchPanes()', function () {\n            return this;\n        });\n        apiRegister('searchPanes.clearSelections()', function () {\n            return this.iterator('table', function (ctx) {\n                if (ctx._searchPanes) {\n                    ctx._searchPanes.clearSelections();\n                }\n            });\n        });\n        apiRegister('searchPanes.rebuildPane()', function (targetIdx, maintainSelections) {\n            return this.iterator('table', function (ctx) {\n                if (ctx._searchPanes) {\n                    ctx._searchPanes.rebuild(targetIdx, maintainSelections);\n                }\n            });\n        });\n        apiRegister('searchPanes.container()', function () {\n            var ctx = this.context[0];\n            return ctx._searchPanes\n                ? ctx._searchPanes.getNode()\n                : null;\n        });\n        $.fn.dataTable.ext.buttons.searchPanesClear = {\n            text: 'Clear Panes',\n            action: function (e, dt, node, config) {\n                dt.searchPanes.clearSelections();\n            }\n        };\n        $.fn.dataTable.ext.buttons.searchPanes = {\n            action: function (e, dt, node, config) {\n                e.stopPropagation();\n                this.popover(config._panes.getNode(), {\n                    align: 'dt-container'\n                });\n                config._panes.rebuild(undefined, true);\n            },\n            config: {},\n            init: function (dt, node, config) {\n                var panes = new $.fn.dataTable.SearchPanes(dt, $.extend({\n                    filterChanged: function (count) {\n                        dt.button(node).text(dt.i18n('searchPanes.collapse', { 0: 'SearchPanes', _: 'SearchPanes (%d)' }, count));\n                    }\n                }, config.config));\n                var message = dt.i18n('searchPanes.collapse', 'SearchPanes', 0);\n                dt.button(node).text(message);\n                config._panes = panes;\n            },\n            text: 'Search Panes'\n        };\n        function _init(settings, fromPre) {\n            if (fromPre === void 0) { fromPre = false; }\n            var api = new DataTable.Api(settings);\n            var opts = api.init().searchPanes || DataTable.defaults.searchPanes;\n            var searchPanes = new SearchPanes(api, opts, fromPre);\n            var node = searchPanes.getNode();\n            return node;\n        }\n        // Attach a listener to the document which listens for DataTables initialisation\n        // events so we can automatically initialise\n        $(document).on('preInit.dt.dtsp', function (e, settings, json) {\n            if (e.namespace !== 'dt') {\n                return;\n            }\n            if (settings.oInit.searchPanes ||\n                DataTable.defaults.searchPanes) {\n                if (!settings._searchPanes) {\n                    _init(settings, true);\n                }\n            }\n        });\n        // DataTables `dom` feature option\n        DataTable.ext.feature.push({\n            cFeature: 'P',\n            fnInit: _init\n        });\n        // DataTables 2 layout feature\n        if (DataTable.ext.features) {\n            DataTable.ext.features.register('searchPanes', _init);\n        }\n    }));\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-searchpanes/js/searchPanes.bootstrap4.js",
    "content": "(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD\n        define(['jquery', 'datatables.net-bs4', 'datatables.net-searchpanes'], function ($) {\n            return factory($, window, document);\n        });\n    }\n    else if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = function (root, $) {\n            if (!root) {\n                root = window;\n            }\n            if (!$ || !$.fn.dataTable) {\n                $ = require('datatables.net-bs4')(root, $).$;\n            }\n            console.log($.fn.dataTable);\n            if (!$.fn.dataTable.SearchPanes) {\n                console.log(\"not present\");\n                require('datatables.net-searchpanes')(root, $);\n            }\n            return factory($, root, root.document);\n        };\n    }\n    else {\n        // Browser\n        factory(jQuery, window, document);\n    }\n}(function ($, window, document) {\n    'use strict';\n    var DataTable = $.fn.dataTable;\n    $.extend(true, DataTable.SearchPane.classes, {\n        buttonGroup: 'btn-group col justify-content-end',\n        disabledButton: 'disabled',\n        dull: '',\n        narrow: 'col',\n        pane: {\n            container: 'table'\n        },\n        paneButton: 'btn btn-light',\n        pill: 'pill badge badge-pill badge-secondary',\n        search: 'col-sm form-control search',\n        searchCont: 'input-group col-sm',\n        searchLabelCont: 'input-group-append',\n        subRow1: 'dtsp-subRow1',\n        subRow2: 'dtsp-subRow2',\n        table: 'table table-sm table-borderless',\n        topRow: 'dtsp-topRow row'\n    });\n    $.extend(true, DataTable.SearchPanes.classes, {\n        clearAll: 'dtsp-clearAll col-auto btn btn-light',\n        container: 'dtsp-searchPanes',\n        panes: 'dtsp-panes dtsp-container',\n        title: 'dtsp-title col',\n        titleRow: 'dtsp-titleRow row'\n    });\n    return DataTable.searchPanes;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-select/css/select.bootstrap4.css",
    "content": "@charset \"UTF-8\";\ntable.dataTable tbody > tr.selected,\ntable.dataTable tbody > tr > .selected {\n  background-color: #0275d8;\n}\ntable.dataTable.stripe tbody > tr.odd.selected,\ntable.dataTable.stripe tbody > tr.odd > .selected, table.dataTable.display tbody > tr.odd.selected,\ntable.dataTable.display tbody > tr.odd > .selected {\n  background-color: #0272d3;\n}\ntable.dataTable.hover tbody > tr.selected:hover,\ntable.dataTable.hover tbody > tr > .selected:hover, table.dataTable.display tbody > tr.selected:hover,\ntable.dataTable.display tbody > tr > .selected:hover {\n  background-color: #0271d0;\n}\ntable.dataTable.order-column tbody > tr.selected > .sorting_1,\ntable.dataTable.order-column tbody > tr.selected > .sorting_2,\ntable.dataTable.order-column tbody > tr.selected > .sorting_3,\ntable.dataTable.order-column tbody > tr > .selected, table.dataTable.display tbody > tr.selected > .sorting_1,\ntable.dataTable.display tbody > tr.selected > .sorting_2,\ntable.dataTable.display tbody > tr.selected > .sorting_3,\ntable.dataTable.display tbody > tr > .selected {\n  background-color: #0273d4;\n}\ntable.dataTable.display tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 {\n  background-color: #026fcc;\n}\ntable.dataTable.display tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 {\n  background-color: #0270ce;\n}\ntable.dataTable.display tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 {\n  background-color: #0270d0;\n}\ntable.dataTable.display tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 {\n  background-color: #0273d4;\n}\ntable.dataTable.display tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 {\n  background-color: #0274d5;\n}\ntable.dataTable.display tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 {\n  background-color: #0275d7;\n}\ntable.dataTable.display tbody > tr.odd > .selected, table.dataTable.order-column.stripe tbody > tr.odd > .selected {\n  background-color: #026fcc;\n}\ntable.dataTable.display tbody > tr.even > .selected, table.dataTable.order-column.stripe tbody > tr.even > .selected {\n  background-color: #0273d4;\n}\ntable.dataTable.display tbody > tr.selected:hover > .sorting_1, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 {\n  background-color: #026bc6;\n}\ntable.dataTable.display tbody > tr.selected:hover > .sorting_2, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 {\n  background-color: #026cc8;\n}\ntable.dataTable.display tbody > tr.selected:hover > .sorting_3, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 {\n  background-color: #026eca;\n}\ntable.dataTable.display tbody > tr:hover > .selected,\ntable.dataTable.display tbody > tr > .selected:hover, table.dataTable.order-column.hover tbody > tr:hover > .selected,\ntable.dataTable.order-column.hover tbody > tr > .selected:hover {\n  background-color: #026bc6;\n}\ntable.dataTable tbody td.select-checkbox,\ntable.dataTable tbody th.select-checkbox {\n  position: relative;\n}\ntable.dataTable tbody td.select-checkbox:before, table.dataTable tbody td.select-checkbox:after,\ntable.dataTable tbody th.select-checkbox:before,\ntable.dataTable tbody th.select-checkbox:after {\n  display: block;\n  position: absolute;\n  top: 1.2em;\n  left: 50%;\n  width: 12px;\n  height: 12px;\n  box-sizing: border-box;\n}\ntable.dataTable tbody td.select-checkbox:before,\ntable.dataTable tbody th.select-checkbox:before {\n  content: \" \";\n  margin-top: -2px;\n  margin-left: -6px;\n  border: 1px solid black;\n  border-radius: 3px;\n}\ntable.dataTable tr.selected td.select-checkbox:after,\ntable.dataTable tr.selected th.select-checkbox:after {\n  content: \"✓\";\n  font-size: 20px;\n  margin-top: -19px;\n  margin-left: -6px;\n  text-align: center;\n  text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9;\n}\ntable.dataTable.compact tbody td.select-checkbox:before,\ntable.dataTable.compact tbody th.select-checkbox:before {\n  margin-top: -12px;\n}\ntable.dataTable.compact tr.selected td.select-checkbox:after,\ntable.dataTable.compact tr.selected th.select-checkbox:after {\n  margin-top: -16px;\n}\n\ndiv.dataTables_wrapper span.select-info,\ndiv.dataTables_wrapper span.select-item {\n  margin-left: 0.5em;\n}\n\n@media screen and (max-width: 640px) {\n  div.dataTables_wrapper span.select-info,\ndiv.dataTables_wrapper span.select-item {\n    margin-left: 0;\n    display: block;\n  }\n}\ntable.dataTable tbody tr.selected,\ntable.dataTable tbody th.selected,\ntable.dataTable tbody td.selected {\n  color: white;\n}\ntable.dataTable tbody tr.selected a,\ntable.dataTable tbody th.selected a,\ntable.dataTable tbody td.selected a {\n  color: #a2d4ed;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-select/js/dataTables.select.js",
    "content": "/*! Select for DataTables 1.3.2\n * 2015-2021 SpryMedia Ltd - datatables.net/license/mit\n */\n\n/**\n * @summary     Select for DataTables\n * @description A collection of API methods, events and buttons for DataTables\n *   that provides selection options of the items in a DataTable\n * @version     1.3.2\n * @file        dataTables.select.js\n * @author      SpryMedia Ltd (www.sprymedia.co.uk)\n * @contact     datatables.net/forums\n * @copyright   Copyright 2015-2021 SpryMedia Ltd.\n *\n * This source file is free software, available under the following license:\n *   MIT license - http://datatables.net/license/mit\n *\n * This source file is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n *\n * For details please refer to: http://www.datatables.net/extensions/select\n */\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net')(root, $).$;\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n'use strict';\nvar DataTable = $.fn.dataTable;\n\n\n// Version information for debugger\nDataTable.select = {};\n\nDataTable.select.version = '1.3.2';\n\nDataTable.select.init = function ( dt ) {\n\tvar ctx = dt.settings()[0];\n\tvar init = ctx.oInit.select;\n\tvar defaults = DataTable.defaults.select;\n\tvar opts = init === undefined ?\n\t\tdefaults :\n\t\tinit;\n\n\t// Set defaults\n\tvar items = 'row';\n\tvar style = 'api';\n\tvar blurable = false;\n\tvar toggleable = true;\n\tvar info = true;\n\tvar selector = 'td, th';\n\tvar className = 'selected';\n\tvar setStyle = false;\n\n\tctx._select = {};\n\n\t// Initialisation customisations\n\tif ( opts === true ) {\n\t\tstyle = 'os';\n\t\tsetStyle = true;\n\t}\n\telse if ( typeof opts === 'string' ) {\n\t\tstyle = opts;\n\t\tsetStyle = true;\n\t}\n\telse if ( $.isPlainObject( opts ) ) {\n\t\tif ( opts.blurable !== undefined ) {\n\t\t\tblurable = opts.blurable;\n\t\t}\n\t\t\n\t\tif ( opts.toggleable !== undefined ) {\n\t\t\ttoggleable = opts.toggleable;\n\t\t}\n\n\t\tif ( opts.info !== undefined ) {\n\t\t\tinfo = opts.info;\n\t\t}\n\n\t\tif ( opts.items !== undefined ) {\n\t\t\titems = opts.items;\n\t\t}\n\n\t\tif ( opts.style !== undefined ) {\n\t\t\tstyle = opts.style;\n\t\t\tsetStyle = true;\n\t\t}\n\t\telse {\n\t\t\tstyle = 'os';\n\t\t\tsetStyle = true;\n\t\t}\n\n\t\tif ( opts.selector !== undefined ) {\n\t\t\tselector = opts.selector;\n\t\t}\n\n\t\tif ( opts.className !== undefined ) {\n\t\t\tclassName = opts.className;\n\t\t}\n\t}\n\n\tdt.select.selector( selector );\n\tdt.select.items( items );\n\tdt.select.style( style );\n\tdt.select.blurable( blurable );\n\tdt.select.toggleable( toggleable );\n\tdt.select.info( info );\n\tctx._select.className = className;\n\n\n\t// Sort table based on selected rows. Requires Select Datatables extension\n\t$.fn.dataTable.ext.order['select-checkbox'] = function ( settings, col ) {\n\t\treturn this.api().column( col, {order: 'index'} ).nodes().map( function ( td ) {\n\t\t\tif ( settings._select.items === 'row' ) {\n\t\t\t\treturn $( td ).parent().hasClass( settings._select.className );\n\t\t\t} else if ( settings._select.items === 'cell' ) {\n\t\t\t\treturn $( td ).hasClass( settings._select.className );\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t};\n\n\t// If the init options haven't enabled select, but there is a selectable\n\t// class name, then enable\n\tif ( ! setStyle && $( dt.table().node() ).hasClass( 'selectable' ) ) {\n\t\tdt.select.style( 'os' );\n\t}\n};\n\n/*\n\nSelect is a collection of API methods, event handlers, event emitters and\nbuttons (for the `Buttons` extension) for DataTables. It provides the following\nfeatures, with an overview of how they are implemented:\n\n## Selection of rows, columns and cells. Whether an item is selected or not is\n   stored in:\n\n* rows: a `_select_selected` property which contains a boolean value of the\n  DataTables' `aoData` object for each row\n* columns: a `_select_selected` property which contains a boolean value of the\n  DataTables' `aoColumns` object for each column\n* cells: a `_selected_cells` property which contains an array of boolean values\n  of the `aoData` object for each row. The array is the same length as the\n  columns array, with each element of it representing a cell.\n\nThis method of using boolean flags allows Select to operate when nodes have not\nbeen created for rows / cells (DataTables' defer rendering feature).\n\n## API methods\n\nA range of API methods are available for triggering selection and de-selection\nof rows. Methods are also available to configure the selection events that can\nbe triggered by an end user (such as which items are to be selected). To a large\nextent, these of API methods *is* Select. It is basically a collection of helper\nfunctions that can be used to select items in a DataTable.\n\nConfiguration of select is held in the object `_select` which is attached to the\nDataTables settings object on initialisation. Select being available on a table\nis not optional when Select is loaded, but its default is for selection only to\nbe available via the API - so the end user wouldn't be able to select rows\nwithout additional configuration.\n\nThe `_select` object contains the following properties:\n\n```\n{\n\titems:string       - Can be `rows`, `columns` or `cells`. Defines what item \n\t                     will be selected if the user is allowed to activate row\n\t                     selection using the mouse.\n\tstyle:string       - Can be `none`, `single`, `multi` or `os`. Defines the\n\t                     interaction style when selecting items\n\tblurable:boolean   - If row selection can be cleared by clicking outside of\n\t                     the table\n\ttoggleable:boolean - If row selection can be cancelled by repeated clicking\n\t                     on the row\n\tinfo:boolean       - If the selection summary should be shown in the table\n\t                     information elements\n}\n```\n\nIn addition to the API methods, Select also extends the DataTables selector\noptions for rows, columns and cells adding a `selected` option to the selector\noptions object, allowing the developer to select only selected items or\nunselected items.\n\n## Mouse selection of items\n\nClicking on items can be used to select items. This is done by a simple event\nhandler that will select the items using the API methods.\n\n */\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Local functions\n */\n\n/**\n * Add one or more cells to the selection when shift clicking in OS selection\n * style cell selection.\n *\n * Cell range is more complicated than row and column as we want to select\n * in the visible grid rather than by index in sequence. For example, if you\n * click first in cell 1-1 and then shift click in 2-2 - cells 1-2 and 2-1\n * should also be selected (and not 1-3, 1-4. etc)\n * \n * @param  {DataTable.Api} dt   DataTable\n * @param  {object}        idx  Cell index to select to\n * @param  {object}        last Cell index to select from\n * @private\n */\nfunction cellRange( dt, idx, last )\n{\n\tvar indexes;\n\tvar columnIndexes;\n\tvar rowIndexes;\n\tvar selectColumns = function ( start, end ) {\n\t\tif ( start > end ) {\n\t\t\tvar tmp = end;\n\t\t\tend = start;\n\t\t\tstart = tmp;\n\t\t}\n\t\t\n\t\tvar record = false;\n\t\treturn dt.columns( ':visible' ).indexes().filter( function (i) {\n\t\t\tif ( i === start ) {\n\t\t\t\trecord = true;\n\t\t\t}\n\t\t\t\n\t\t\tif ( i === end ) { // not else if, as start might === end\n\t\t\t\trecord = false;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn record;\n\t\t} );\n\t};\n\n\tvar selectRows = function ( start, end ) {\n\t\tvar indexes = dt.rows( { search: 'applied' } ).indexes();\n\n\t\t// Which comes first - might need to swap\n\t\tif ( indexes.indexOf( start ) > indexes.indexOf( end ) ) {\n\t\t\tvar tmp = end;\n\t\t\tend = start;\n\t\t\tstart = tmp;\n\t\t}\n\n\t\tvar record = false;\n\t\treturn indexes.filter( function (i) {\n\t\t\tif ( i === start ) {\n\t\t\t\trecord = true;\n\t\t\t}\n\t\t\t\n\t\t\tif ( i === end ) {\n\t\t\t\trecord = false;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn record;\n\t\t} );\n\t};\n\n\tif ( ! dt.cells( { selected: true } ).any() && ! last ) {\n\t\t// select from the top left cell to this one\n\t\tcolumnIndexes = selectColumns( 0, idx.column );\n\t\trowIndexes = selectRows( 0 , idx.row );\n\t}\n\telse {\n\t\t// Get column indexes between old and new\n\t\tcolumnIndexes = selectColumns( last.column, idx.column );\n\t\trowIndexes = selectRows( last.row , idx.row );\n\t}\n\n\tindexes = dt.cells( rowIndexes, columnIndexes ).flatten();\n\n\tif ( ! dt.cells( idx, { selected: true } ).any() ) {\n\t\t// Select range\n\t\tdt.cells( indexes ).select();\n\t}\n\telse {\n\t\t// Deselect range\n\t\tdt.cells( indexes ).deselect();\n\t}\n}\n\n/**\n * Disable mouse selection by removing the selectors\n *\n * @param {DataTable.Api} dt DataTable to remove events from\n * @private\n */\nfunction disableMouseSelection( dt )\n{\n\tvar ctx = dt.settings()[0];\n\tvar selector = ctx._select.selector;\n\n\t$( dt.table().container() )\n\t\t.off( 'mousedown.dtSelect', selector )\n\t\t.off( 'mouseup.dtSelect', selector )\n\t\t.off( 'click.dtSelect', selector );\n\n\t$('body').off( 'click.dtSelect' + _safeId(dt.table().node()) );\n}\n\n/**\n * Attach mouse listeners to the table to allow mouse selection of items\n *\n * @param {DataTable.Api} dt DataTable to remove events from\n * @private\n */\nfunction enableMouseSelection ( dt )\n{\n\tvar container = $( dt.table().container() );\n\tvar ctx = dt.settings()[0];\n\tvar selector = ctx._select.selector;\n\tvar matchSelection;\n\n\tcontainer\n\t\t.on( 'mousedown.dtSelect', selector, function(e) {\n\t\t\t// Disallow text selection for shift clicking on the table so multi\n\t\t\t// element selection doesn't look terrible!\n\t\t\tif ( e.shiftKey || e.metaKey || e.ctrlKey ) {\n\t\t\t\tcontainer\n\t\t\t\t\t.css( '-moz-user-select', 'none' )\n\t\t\t\t\t.one('selectstart.dtSelect', selector, function () {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( window.getSelection ) {\n\t\t\t\tmatchSelection = window.getSelection();\n\t\t\t}\n\t\t} )\n\t\t.on( 'mouseup.dtSelect', selector, function() {\n\t\t\t// Allow text selection to occur again, Mozilla style (tested in FF\n\t\t\t// 35.0.1 - still required)\n\t\t\tcontainer.css( '-moz-user-select', '' );\n\t\t} )\n\t\t.on( 'click.dtSelect', selector, function ( e ) {\n\t\t\tvar items = dt.select.items();\n\t\t\tvar idx;\n\n\t\t\t// If text was selected (click and drag), then we shouldn't change\n\t\t\t// the row's selected state\n\t\t\tif ( matchSelection ) {\n\t\t\t\tvar selection = window.getSelection();\n\n\t\t\t\t// If the element that contains the selection is not in the table, we can ignore it\n\t\t\t\t// This can happen if the developer selects text from the click event\n\t\t\t\tif ( ! selection.anchorNode || $(selection.anchorNode).closest('table')[0] === dt.table().node() ) {\n\t\t\t\t\tif ( selection !== matchSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar ctx = dt.settings()[0];\n\t\t\tvar wrapperClass = dt.settings()[0].oClasses.sWrapper.trim().replace(/ +/g, '.');\n\n\t\t\t// Ignore clicks inside a sub-table\n\t\t\tif ( $(e.target).closest('div.'+wrapperClass)[0] != dt.table().container() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar cell = dt.cell( $(e.target).closest('td, th') );\n\n\t\t\t// Check the cell actually belongs to the host DataTable (so child\n\t\t\t// rows, etc, are ignored)\n\t\t\tif ( ! cell.any() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar event = $.Event('user-select.dt');\n\t\t\teventTrigger( dt, event, [ items, cell, e ] );\n\n\t\t\tif ( event.isDefaultPrevented() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar cellIndex = cell.index();\n\t\t\tif ( items === 'row' ) {\n\t\t\t\tidx = cellIndex.row;\n\t\t\t\ttypeSelect( e, dt, ctx, 'row', idx );\n\t\t\t}\n\t\t\telse if ( items === 'column' ) {\n\t\t\t\tidx = cell.index().column;\n\t\t\t\ttypeSelect( e, dt, ctx, 'column', idx );\n\t\t\t}\n\t\t\telse if ( items === 'cell' ) {\n\t\t\t\tidx = cell.index();\n\t\t\t\ttypeSelect( e, dt, ctx, 'cell', idx );\n\t\t\t}\n\n\t\t\tctx._select_lastCell = cellIndex;\n\t\t} );\n\n\t// Blurable\n\t$('body').on( 'click.dtSelect' + _safeId(dt.table().node()), function ( e ) {\n\t\tif ( ctx._select.blurable ) {\n\t\t\t// If the click was inside the DataTables container, don't blur\n\t\t\tif ( $(e.target).parents().filter( dt.table().container() ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Ignore elements which have been removed from the DOM (i.e. paging\n\t\t\t// buttons)\n\t\t\tif ( $(e.target).parents('html').length === 0 ) {\n\t\t\t \treturn;\n\t\t\t}\n\n\t\t\t// Don't blur in Editor form\n\t\t\tif ( $(e.target).parents('div.DTE').length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclear( ctx, true );\n\t\t}\n\t} );\n}\n\n/**\n * Trigger an event on a DataTable\n *\n * @param {DataTable.Api} api      DataTable to trigger events on\n * @param  {boolean}      selected true if selected, false if deselected\n * @param  {string}       type     Item type acting on\n * @param  {boolean}      any      Require that there are values before\n *     triggering\n * @private\n */\nfunction eventTrigger ( api, type, args, any )\n{\n\tif ( any && ! api.flatten().length ) {\n\t\treturn;\n\t}\n\n\tif ( typeof type === 'string' ) {\n\t\ttype = type +'.dt';\n\t}\n\n\targs.unshift( api );\n\n\t$(api.table().node()).trigger( type, args );\n}\n\n/**\n * Update the information element of the DataTable showing information about the\n * items selected. This is done by adding tags to the existing text\n * \n * @param {DataTable.Api} api DataTable to update\n * @private\n */\nfunction info ( api )\n{\n\tvar ctx = api.settings()[0];\n\n\tif ( ! ctx._select.info || ! ctx.aanFeatures.i ) {\n\t\treturn;\n\t}\n\n\tif ( api.select.style() === 'api' ) {\n\t\treturn;\n\t}\n\n\tvar rows    = api.rows( { selected: true } ).flatten().length;\n\tvar columns = api.columns( { selected: true } ).flatten().length;\n\tvar cells   = api.cells( { selected: true } ).flatten().length;\n\n\tvar add = function ( el, name, num ) {\n\t\tel.append( $('<span class=\"select-item\"/>').append( api.i18n(\n\t\t\t'select.'+name+'s',\n\t\t\t{ _: '%d '+name+'s selected', 0: '', 1: '1 '+name+' selected' },\n\t\t\tnum\n\t\t) ) );\n\t};\n\n\t// Internal knowledge of DataTables to loop over all information elements\n\t$.each( ctx.aanFeatures.i, function ( i, el ) {\n\t\tel = $(el);\n\n\t\tvar output  = $('<span class=\"select-info\"/>');\n\t\tadd( output, 'row', rows );\n\t\tadd( output, 'column', columns );\n\t\tadd( output, 'cell', cells  );\n\n\t\tvar exisiting = el.children('span.select-info');\n\t\tif ( exisiting.length ) {\n\t\t\texisiting.remove();\n\t\t}\n\n\t\tif ( output.text() !== '' ) {\n\t\t\tel.append( output );\n\t\t}\n\t} );\n}\n\n/**\n * Initialisation of a new table. Attach event handlers and callbacks to allow\n * Select to operate correctly.\n *\n * This will occur _after_ the initial DataTables initialisation, although\n * before Ajax data is rendered, if there is ajax data\n *\n * @param  {DataTable.settings} ctx Settings object to operate on\n * @private\n */\nfunction init ( ctx ) {\n\tvar api = new DataTable.Api( ctx );\n\n\t// Row callback so that classes can be added to rows and cells if the item\n\t// was selected before the element was created. This will happen with the\n\t// `deferRender` option enabled.\n\t// \n\t// This method of attaching to `aoRowCreatedCallback` is a hack until\n\t// DataTables has proper events for row manipulation If you are reviewing\n\t// this code to create your own plug-ins, please do not do this!\n\tctx.aoRowCreatedCallback.push( {\n\t\tfn: function ( row, data, index ) {\n\t\t\tvar i, ien;\n\t\t\tvar d = ctx.aoData[ index ];\n\n\t\t\t// Row\n\t\t\tif ( d._select_selected ) {\n\t\t\t\t$( row ).addClass( ctx._select.className );\n\t\t\t}\n\n\t\t\t// Cells and columns - if separated out, we would need to do two\n\t\t\t// loops, so it makes sense to combine them into a single one\n\t\t\tfor ( i=0, ien=ctx.aoColumns.length ; i<ien ; i++ ) {\n\t\t\t\tif ( ctx.aoColumns[i]._select_selected || (d._selected_cells && d._selected_cells[i]) ) {\n\t\t\t\t\t$(d.anCells[i]).addClass( ctx._select.className );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsName: 'select-deferRender'\n\t} );\n\n\t// On Ajax reload we want to reselect all rows which are currently selected,\n\t// if there is an rowId (i.e. a unique value to identify each row with)\n\tapi.on( 'preXhr.dt.dtSelect', function (e, settings) {\n\t\tif (settings !== api.settings()[0]) {\n\t\t\t// Not triggered by our DataTable!\n\t\t\treturn;\n\t\t}\n\n\t\t// note that column selection doesn't need to be cached and then\n\t\t// reselected, as they are already selected\n\t\tvar rows = api.rows( { selected: true } ).ids( true ).filter( function ( d ) {\n\t\t\treturn d !== undefined;\n\t\t} );\n\n\t\tvar cells = api.cells( { selected: true } ).eq(0).map( function ( cellIdx ) {\n\t\t\tvar id = api.row( cellIdx.row ).id( true );\n\t\t\treturn id ?\n\t\t\t\t{ row: id, column: cellIdx.column } :\n\t\t\t\tundefined;\n\t\t} ).filter( function ( d ) {\n\t\t\treturn d !== undefined;\n\t\t} );\n\n\t\t// On the next draw, reselect the currently selected items\n\t\tapi.one( 'draw.dt.dtSelect', function () {\n\t\t\tapi.rows( rows ).select();\n\n\t\t\t// `cells` is not a cell index selector, so it needs a loop\n\t\t\tif ( cells.any() ) {\n\t\t\t\tcells.each( function ( id ) {\n\t\t\t\t\tapi.cells( id.row, id.column ).select();\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\t// Update the table information element with selected item summary\n\tapi.on( 'draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt', function () {\n\t\tinfo( api );\n\t} );\n\n\t// Clean up and release\n\tapi.on( 'destroy.dtSelect', function () {\n\t\tapi.rows({selected: true}).deselect();\n\n\t\tdisableMouseSelection( api );\n\t\tapi.off( '.dtSelect' );\n\t} );\n}\n\n/**\n * Add one or more items (rows or columns) to the selection when shift clicking\n * in OS selection style\n *\n * @param  {DataTable.Api} dt   DataTable\n * @param  {string}        type Row or column range selector\n * @param  {object}        idx  Item index to select to\n * @param  {object}        last Item index to select from\n * @private\n */\nfunction rowColumnRange( dt, type, idx, last )\n{\n\t// Add a range of rows from the last selected row to this one\n\tvar indexes = dt[type+'s']( { search: 'applied' } ).indexes();\n\tvar idx1 = $.inArray( last, indexes );\n\tvar idx2 = $.inArray( idx, indexes );\n\n\tif ( ! dt[type+'s']( { selected: true } ).any() && idx1 === -1 ) {\n\t\t// select from top to here - slightly odd, but both Windows and Mac OS\n\t\t// do this\n\t\tindexes.splice( $.inArray( idx, indexes )+1, indexes.length );\n\t}\n\telse {\n\t\t// reverse so we can shift click 'up' as well as down\n\t\tif ( idx1 > idx2 ) {\n\t\t\tvar tmp = idx2;\n\t\t\tidx2 = idx1;\n\t\t\tidx1 = tmp;\n\t\t}\n\n\t\tindexes.splice( idx2+1, indexes.length );\n\t\tindexes.splice( 0, idx1 );\n\t}\n\n\tif ( ! dt[type]( idx, { selected: true } ).any() ) {\n\t\t// Select range\n\t\tdt[type+'s']( indexes ).select();\n\t}\n\telse {\n\t\t// Deselect range - need to keep the clicked on row selected\n\t\tindexes.splice( $.inArray( idx, indexes ), 1 );\n\t\tdt[type+'s']( indexes ).deselect();\n\t}\n}\n\n/**\n * Clear all selected items\n *\n * @param  {DataTable.settings} ctx Settings object of the host DataTable\n * @param  {boolean} [force=false] Force the de-selection to happen, regardless\n *     of selection style\n * @private\n */\nfunction clear( ctx, force )\n{\n\tif ( force || ctx._select.style === 'single' ) {\n\t\tvar api = new DataTable.Api( ctx );\n\t\t\n\t\tapi.rows( { selected: true } ).deselect();\n\t\tapi.columns( { selected: true } ).deselect();\n\t\tapi.cells( { selected: true } ).deselect();\n\t}\n}\n\n/**\n * Select items based on the current configuration for style and items.\n *\n * @param  {object}             e    Mouse event object\n * @param  {DataTables.Api}     dt   DataTable\n * @param  {DataTable.settings} ctx  Settings object of the host DataTable\n * @param  {string}             type Items to select\n * @param  {int|object}         idx  Index of the item to select\n * @private\n */\nfunction typeSelect ( e, dt, ctx, type, idx )\n{\n\tvar style = dt.select.style();\n\tvar toggleable = dt.select.toggleable();\n\tvar isSelected = dt[type]( idx, { selected: true } ).any();\n\t\n\tif ( isSelected && ! toggleable ) {\n\t\treturn;\n\t}\n\n\tif ( style === 'os' ) {\n\t\tif ( e.ctrlKey || e.metaKey ) {\n\t\t\t// Add or remove from the selection\n\t\t\tdt[type]( idx ).select( ! isSelected );\n\t\t}\n\t\telse if ( e.shiftKey ) {\n\t\t\tif ( type === 'cell' ) {\n\t\t\t\tcellRange( dt, idx, ctx._select_lastCell || null );\n\t\t\t}\n\t\t\telse {\n\t\t\t\trowColumnRange( dt, type, idx, ctx._select_lastCell ?\n\t\t\t\t\tctx._select_lastCell[type] :\n\t\t\t\t\tnull\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// No cmd or shift click - deselect if selected, or select\n\t\t\t// this row only\n\t\t\tvar selected = dt[type+'s']( { selected: true } );\n\n\t\t\tif ( isSelected && selected.flatten().length === 1 ) {\n\t\t\t\tdt[type]( idx ).deselect();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tselected.deselect();\n\t\t\t\tdt[type]( idx ).select();\n\t\t\t}\n\t\t}\n\t} else if ( style == 'multi+shift' ) {\n\t\tif ( e.shiftKey ) {\n\t\t\tif ( type === 'cell' ) {\n\t\t\t\tcellRange( dt, idx, ctx._select_lastCell || null );\n\t\t\t}\n\t\t\telse {\n\t\t\t\trowColumnRange( dt, type, idx, ctx._select_lastCell ?\n\t\t\t\t\tctx._select_lastCell[type] :\n\t\t\t\t\tnull\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdt[ type ]( idx ).select( ! isSelected );\n\t\t}\n\t}\n\telse {\n\t\tdt[ type ]( idx ).select( ! isSelected );\n\t}\n}\n\nfunction _safeId( node ) {\n\treturn node.id.replace(/[^a-zA-Z0-9\\-\\_]/g, '-');\n}\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables selectors\n */\n\n// row and column are basically identical just assigned to different properties\n// and checking a different array, so we can dynamically create the functions to\n// reduce the code size\n$.each( [\n\t{ type: 'row', prop: 'aoData' },\n\t{ type: 'column', prop: 'aoColumns' }\n], function ( i, o ) {\n\tDataTable.ext.selector[ o.type ].push( function ( settings, opts, indexes ) {\n\t\tvar selected = opts.selected;\n\t\tvar data;\n\t\tvar out = [];\n\n\t\tif ( selected !== true && selected !== false ) {\n\t\t\treturn indexes;\n\t\t}\n\n\t\tfor ( var i=0, ien=indexes.length ; i<ien ; i++ ) {\n\t\t\tdata = settings[ o.prop ][ indexes[i] ];\n\n\t\t\tif ( (selected === true && data._select_selected === true) ||\n\t\t\t     (selected === false && ! data._select_selected )\n\t\t\t) {\n\t\t\t\tout.push( indexes[i] );\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t} );\n} );\n\nDataTable.ext.selector.cell.push( function ( settings, opts, cells ) {\n\tvar selected = opts.selected;\n\tvar rowData;\n\tvar out = [];\n\n\tif ( selected === undefined ) {\n\t\treturn cells;\n\t}\n\n\tfor ( var i=0, ien=cells.length ; i<ien ; i++ ) {\n\t\trowData = settings.aoData[ cells[i].row ];\n\n\t\tif ( (selected === true && rowData._selected_cells && rowData._selected_cells[ cells[i].column ] === true) ||\n\t\t     (selected === false && ( ! rowData._selected_cells || ! rowData._selected_cells[ cells[i].column ] ) )\n\t\t) {\n\t\t\tout.push( cells[i] );\n\t\t}\n\t}\n\n\treturn out;\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * DataTables API\n *\n * For complete documentation, please refer to the docs/api directory or the\n * DataTables site\n */\n\n// Local variables to improve compression\nvar apiRegister = DataTable.Api.register;\nvar apiRegisterPlural = DataTable.Api.registerPlural;\n\napiRegister( 'select()', function () {\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tDataTable.select.init( new DataTable.Api( ctx ) );\n\t} );\n} );\n\napiRegister( 'select.blurable()', function ( flag ) {\n\tif ( flag === undefined ) {\n\t\treturn this.context[0]._select.blurable;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._select.blurable = flag;\n\t} );\n} );\n\napiRegister( 'select.toggleable()', function ( flag ) {\n\tif ( flag === undefined ) {\n\t\treturn this.context[0]._select.toggleable;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._select.toggleable = flag;\n\t} );\n} );\n\napiRegister( 'select.info()', function ( flag ) {\n\tif ( flag === undefined ) {\n\t\treturn this.context[0]._select.info;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._select.info = flag;\n\t} );\n} );\n\napiRegister( 'select.items()', function ( items ) {\n\tif ( items === undefined ) {\n\t\treturn this.context[0]._select.items;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._select.items = items;\n\n\t\teventTrigger( new DataTable.Api( ctx ), 'selectItems', [ items ] );\n\t} );\n} );\n\n// Takes effect from the _next_ selection. None disables future selection, but\n// does not clear the current selection. Use the `deselect` methods for that\napiRegister( 'select.style()', function ( style ) {\n\tif ( style === undefined ) {\n\t\treturn this.context[0]._select.style;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tctx._select.style = style;\n\n\t\tif ( ! ctx._select_init ) {\n\t\t\tinit( ctx );\n\t\t}\n\n\t\t// Add / remove mouse event handlers. They aren't required when only\n\t\t// API selection is available\n\t\tvar dt = new DataTable.Api( ctx );\n\t\tdisableMouseSelection( dt );\n\t\t\n\t\tif ( style !== 'api' ) {\n\t\t\tenableMouseSelection( dt );\n\t\t}\n\n\t\teventTrigger( new DataTable.Api( ctx ), 'selectStyle', [ style ] );\n\t} );\n} );\n\napiRegister( 'select.selector()', function ( selector ) {\n\tif ( selector === undefined ) {\n\t\treturn this.context[0]._select.selector;\n\t}\n\n\treturn this.iterator( 'table', function ( ctx ) {\n\t\tdisableMouseSelection( new DataTable.Api( ctx ) );\n\n\t\tctx._select.selector = selector;\n\n\t\tif ( ctx._select.style !== 'api' ) {\n\t\t\tenableMouseSelection( new DataTable.Api( ctx ) );\n\t\t}\n\t} );\n} );\n\n\n\napiRegisterPlural( 'rows().select()', 'row().select()', function ( select ) {\n\tvar api = this;\n\n\tif ( select === false ) {\n\t\treturn this.deselect();\n\t}\n\n\tthis.iterator( 'row', function ( ctx, idx ) {\n\t\tclear( ctx );\n\n\t\tctx.aoData[ idx ]._select_selected = true;\n\t\t$( ctx.aoData[ idx ].nTr ).addClass( ctx._select.className );\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'select', [ 'row', api[i] ], true );\n\t} );\n\n\treturn this;\n} );\n\napiRegisterPlural( 'columns().select()', 'column().select()', function ( select ) {\n\tvar api = this;\n\n\tif ( select === false ) {\n\t\treturn this.deselect();\n\t}\n\n\tthis.iterator( 'column', function ( ctx, idx ) {\n\t\tclear( ctx );\n\n\t\tctx.aoColumns[ idx ]._select_selected = true;\n\n\t\tvar column = new DataTable.Api( ctx ).column( idx );\n\n\t\t$( column.header() ).addClass( ctx._select.className );\n\t\t$( column.footer() ).addClass( ctx._select.className );\n\n\t\tcolumn.nodes().to$().addClass( ctx._select.className );\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'select', [ 'column', api[i] ], true );\n\t} );\n\n\treturn this;\n} );\n\napiRegisterPlural( 'cells().select()', 'cell().select()', function ( select ) {\n\tvar api = this;\n\n\tif ( select === false ) {\n\t\treturn this.deselect();\n\t}\n\n\tthis.iterator( 'cell', function ( ctx, rowIdx, colIdx ) {\n\t\tclear( ctx );\n\n\t\tvar data = ctx.aoData[ rowIdx ];\n\n\t\tif ( data._selected_cells === undefined ) {\n\t\t\tdata._selected_cells = [];\n\t\t}\n\n\t\tdata._selected_cells[ colIdx ] = true;\n\n\t\tif ( data.anCells ) {\n\t\t\t$( data.anCells[ colIdx ] ).addClass( ctx._select.className );\n\t\t}\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'select', [ 'cell', api.cells(api[i]).indexes().toArray() ], true );\n\t} );\n\n\treturn this;\n} );\n\n\napiRegisterPlural( 'rows().deselect()', 'row().deselect()', function () {\n\tvar api = this;\n\n\tthis.iterator( 'row', function ( ctx, idx ) {\n\t\tctx.aoData[ idx ]._select_selected = false;\n\t\tctx._select_lastCell = null;\n\t\t$( ctx.aoData[ idx ].nTr ).removeClass( ctx._select.className );\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'deselect', [ 'row', api[i] ], true );\n\t} );\n\n\treturn this;\n} );\n\napiRegisterPlural( 'columns().deselect()', 'column().deselect()', function () {\n\tvar api = this;\n\n\tthis.iterator( 'column', function ( ctx, idx ) {\n\t\tctx.aoColumns[ idx ]._select_selected = false;\n\n\t\tvar api = new DataTable.Api( ctx );\n\t\tvar column = api.column( idx );\n\n\t\t$( column.header() ).removeClass( ctx._select.className );\n\t\t$( column.footer() ).removeClass( ctx._select.className );\n\n\t\t// Need to loop over each cell, rather than just using\n\t\t// `column().nodes()` as cells which are individually selected should\n\t\t// not have the `selected` class removed from them\n\t\tapi.cells( null, idx ).indexes().each( function (cellIdx) {\n\t\t\tvar data = ctx.aoData[ cellIdx.row ];\n\t\t\tvar cellSelected = data._selected_cells;\n\n\t\t\tif ( data.anCells && (! cellSelected || ! cellSelected[ cellIdx.column ]) ) {\n\t\t\t\t$( data.anCells[ cellIdx.column  ] ).removeClass( ctx._select.className );\n\t\t\t}\n\t\t} );\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'deselect', [ 'column', api[i] ], true );\n\t} );\n\n\treturn this;\n} );\n\napiRegisterPlural( 'cells().deselect()', 'cell().deselect()', function () {\n\tvar api = this;\n\n\tthis.iterator( 'cell', function ( ctx, rowIdx, colIdx ) {\n\t\tvar data = ctx.aoData[ rowIdx ];\n\n\t\tdata._selected_cells[ colIdx ] = false;\n\n\t\t// Remove class only if the cells exist, and the cell is not column\n\t\t// selected, in which case the class should remain (since it is selected\n\t\t// in the column)\n\t\tif ( data.anCells && ! ctx.aoColumns[ colIdx ]._select_selected ) {\n\t\t\t$( data.anCells[ colIdx ] ).removeClass( ctx._select.className );\n\t\t}\n\t} );\n\n\tthis.iterator( 'table', function ( ctx, i ) {\n\t\teventTrigger( api, 'deselect', [ 'cell', api[i] ], true );\n\t} );\n\n\treturn this;\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Buttons\n */\nfunction i18n( label, def ) {\n\treturn function (dt) {\n\t\treturn dt.i18n( 'buttons.'+label, def );\n\t};\n}\n\n// Common events with suitable namespaces\nfunction namespacedEvents ( config ) {\n\tvar unique = config._eventNamespace;\n\n\treturn 'draw.dt.DT'+unique+' select.dt.DT'+unique+' deselect.dt.DT'+unique;\n}\n\nfunction enabled ( dt, config ) {\n\tif ( $.inArray( 'rows', config.limitTo ) !== -1 && dt.rows( { selected: true } ).any() ) {\n\t\treturn true;\n\t}\n\n\tif ( $.inArray( 'columns', config.limitTo ) !== -1 && dt.columns( { selected: true } ).any() ) {\n\t\treturn true;\n\t}\n\n\tif ( $.inArray( 'cells', config.limitTo ) !== -1 && dt.cells( { selected: true } ).any() ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nvar _buttonNamespace = 0;\n\n$.extend( DataTable.ext.buttons, {\n\tselected: {\n\t\ttext: i18n( 'selected', 'Selected' ),\n\t\tclassName: 'buttons-selected',\n\t\tlimitTo: [ 'rows', 'columns', 'cells' ],\n\t\tinit: function ( dt, node, config ) {\n\t\t\tvar that = this;\n\t\t\tconfig._eventNamespace = '.select'+(_buttonNamespace++);\n\n\t\t\t// .DT namespace listeners are removed by DataTables automatically\n\t\t\t// on table destroy\n\t\t\tdt.on( namespacedEvents(config), function () {\n\t\t\t\tthat.enable( enabled(dt, config) );\n\t\t\t} );\n\n\t\t\tthis.disable();\n\t\t},\n\t\tdestroy: function ( dt, node, config ) {\n\t\t\tdt.off( config._eventNamespace );\n\t\t}\n\t},\n\tselectedSingle: {\n\t\ttext: i18n( 'selectedSingle', 'Selected single' ),\n\t\tclassName: 'buttons-selected-single',\n\t\tinit: function ( dt, node, config ) {\n\t\t\tvar that = this;\n\t\t\tconfig._eventNamespace = '.select'+(_buttonNamespace++);\n\n\t\t\tdt.on( namespacedEvents(config), function () {\n\t\t\t\tvar count = dt.rows( { selected: true } ).flatten().length +\n\t\t\t\t            dt.columns( { selected: true } ).flatten().length +\n\t\t\t\t            dt.cells( { selected: true } ).flatten().length;\n\n\t\t\t\tthat.enable( count === 1 );\n\t\t\t} );\n\n\t\t\tthis.disable();\n\t\t},\n\t\tdestroy: function ( dt, node, config ) {\n\t\t\tdt.off( config._eventNamespace );\n\t\t}\n\t},\n\tselectAll: {\n\t\ttext: i18n( 'selectAll', 'Select all' ),\n\t\tclassName: 'buttons-select-all',\n\t\taction: function () {\n\t\t\tvar items = this.select.items();\n\t\t\tthis[ items+'s' ]().select();\n\t\t}\n\t},\n\tselectNone: {\n\t\ttext: i18n( 'selectNone', 'Deselect all' ),\n\t\tclassName: 'buttons-select-none',\n\t\taction: function () {\n\t\t\tclear( this.settings()[0], true );\n\t\t},\n\t\tinit: function ( dt, node, config ) {\n\t\t\tvar that = this;\n\t\t\tconfig._eventNamespace = '.select'+(_buttonNamespace++);\n\n\t\t\tdt.on( namespacedEvents(config), function () {\n\t\t\t\tvar count = dt.rows( { selected: true } ).flatten().length +\n\t\t\t\t            dt.columns( { selected: true } ).flatten().length +\n\t\t\t\t            dt.cells( { selected: true } ).flatten().length;\n\n\t\t\t\tthat.enable( count > 0 );\n\t\t\t} );\n\n\t\t\tthis.disable();\n\t\t},\n\t\tdestroy: function ( dt, node, config ) {\n\t\t\tdt.off( config._eventNamespace );\n\t\t}\n\t}\n} );\n\n$.each( [ 'Row', 'Column', 'Cell' ], function ( i, item ) {\n\tvar lc = item.toLowerCase();\n\n\tDataTable.ext.buttons[ 'select'+item+'s' ] = {\n\t\ttext: i18n( 'select'+item+'s', 'Select '+lc+'s' ),\n\t\tclassName: 'buttons-select-'+lc+'s',\n\t\taction: function () {\n\t\t\tthis.select.items( lc );\n\t\t},\n\t\tinit: function ( dt ) {\n\t\t\tvar that = this;\n\n\t\t\tdt.on( 'selectItems.dt.DT', function ( e, ctx, items ) {\n\t\t\t\tthat.active( items === lc );\n\t\t\t} );\n\t\t}\n\t};\n} );\n\n\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Initialisation\n */\n\n// DataTables creation - check if select has been defined in the options. Note\n// this required that the table be in the document! If it isn't then something\n// needs to trigger this method unfortunately. The next major release of\n// DataTables will rework the events and address this.\n$(document).on( 'preInit.dt.dtSelect', function (e, ctx) {\n\tif ( e.namespace !== 'dt' ) {\n\t\treturn;\n\t}\n\n\tDataTable.select.init( new DataTable.Api( ctx ) );\n} );\n\n\nreturn DataTable.select;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/datatables-select/js/select.bootstrap4.js",
    "content": "/*! Bootstrap 4 styling wrapper for Select\n * ©2018 SpryMedia Ltd - datatables.net/license\n */\n\n(function( factory ){\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD\n\t\tdefine( ['jquery', 'datatables.net-bs4', 'datatables.net-select'], function ( $ ) {\n\t\t\treturn factory( $, window, document );\n\t\t} );\n\t}\n\telse if ( typeof exports === 'object' ) {\n\t\t// CommonJS\n\t\tmodule.exports = function (root, $) {\n\t\t\tif ( ! root ) {\n\t\t\t\troot = window;\n\t\t\t}\n\n\t\t\tif ( ! $ || ! $.fn.dataTable ) {\n\t\t\t\t$ = require('datatables.net-bs4')(root, $).$;\n\t\t\t}\n\n\t\t\tif ( ! $.fn.dataTable.select ) {\n\t\t\t\trequire('datatables.net-select')(root, $);\n\t\t\t}\n\n\t\t\treturn factory( $, root, root.document );\n\t\t};\n\t}\n\telse {\n\t\t// Browser\n\t\tfactory( jQuery, window, document );\n\t}\n}(function( $, window, document, undefined ) {\n\nreturn $.fn.dataTable;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/daterangepicker/daterangepicker.css",
    "content": ".daterangepicker {\n  position: absolute;\n  color: inherit;\n  background-color: #fff;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  width: 278px;\n  max-width: none;\n  padding: 0;\n  margin-top: 7px;\n  top: 100px;\n  left: 20px;\n  z-index: 3001;\n  display: none;\n  font-family: arial;\n  font-size: 15px;\n  line-height: 1em;\n}\n\n.daterangepicker:before, .daterangepicker:after {\n  position: absolute;\n  display: inline-block;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker:before {\n  top: -7px;\n  border-right: 7px solid transparent;\n  border-left: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n}\n\n.daterangepicker:after {\n  top: -6px;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n}\n\n.daterangepicker.opensleft:before {\n  right: 9px;\n}\n\n.daterangepicker.opensleft:after {\n  right: 10px;\n}\n\n.daterangepicker.openscenter:before {\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.daterangepicker.openscenter:after {\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.daterangepicker.opensright:before {\n  left: 9px;\n}\n\n.daterangepicker.opensright:after {\n  left: 10px;\n}\n\n.daterangepicker.drop-up {\n  margin-top: -7px;\n}\n\n.daterangepicker.drop-up:before {\n  top: initial;\n  bottom: -7px;\n  border-bottom: initial;\n  border-top: 7px solid #ccc;\n}\n\n.daterangepicker.drop-up:after {\n  top: initial;\n  bottom: -6px;\n  border-bottom: initial;\n  border-top: 6px solid #fff;\n}\n\n.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar {\n  float: none;\n}\n\n.daterangepicker.single .drp-selected {\n  display: none;\n}\n\n.daterangepicker.show-calendar .drp-calendar {\n  display: block;\n}\n\n.daterangepicker.show-calendar .drp-buttons {\n  display: block;\n}\n\n.daterangepicker.auto-apply .drp-buttons {\n  display: none;\n}\n\n.daterangepicker .drp-calendar {\n  display: none;\n  max-width: 270px;\n}\n\n.daterangepicker .drp-calendar.left {\n  padding: 8px 0 8px 8px;\n}\n\n.daterangepicker .drp-calendar.right {\n  padding: 8px;\n}\n\n.daterangepicker .drp-calendar.single .calendar-table {\n  border: none;\n}\n\n.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {\n  color: #fff;\n  border: solid black;\n  border-width: 0 2px 2px 0;\n  border-radius: 0;\n  display: inline-block;\n  padding: 3px;\n}\n\n.daterangepicker .calendar-table .next span {\n  transform: rotate(-45deg);\n  -webkit-transform: rotate(-45deg);\n}\n\n.daterangepicker .calendar-table .prev span {\n  transform: rotate(135deg);\n  -webkit-transform: rotate(135deg);\n}\n\n.daterangepicker .calendar-table th, .daterangepicker .calendar-table td {\n  white-space: nowrap;\n  text-align: center;\n  vertical-align: middle;\n  min-width: 32px;\n  width: 32px;\n  height: 24px;\n  line-height: 24px;\n  font-size: 12px;\n  border-radius: 4px;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  cursor: pointer;\n}\n\n.daterangepicker .calendar-table {\n  border: 1px solid #fff;\n  border-radius: 4px;\n  background-color: #fff;\n}\n\n.daterangepicker .calendar-table table {\n  width: 100%;\n  margin: 0;\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n\n.daterangepicker td.available:hover, .daterangepicker th.available:hover {\n  background-color: #eee;\n  border-color: transparent;\n  color: inherit;\n}\n\n.daterangepicker td.week, .daterangepicker th.week {\n  font-size: 80%;\n  color: #ccc;\n}\n\n.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {\n  background-color: #fff;\n  border-color: transparent;\n  color: #999;\n}\n\n.daterangepicker td.in-range {\n  background-color: #ebf4f8;\n  border-color: transparent;\n  color: #000;\n  border-radius: 0;\n}\n\n.daterangepicker td.start-date {\n  border-radius: 4px 0 0 4px;\n}\n\n.daterangepicker td.end-date {\n  border-radius: 0 4px 4px 0;\n}\n\n.daterangepicker td.start-date.end-date {\n  border-radius: 4px;\n}\n\n.daterangepicker td.active, .daterangepicker td.active:hover {\n  background-color: #357ebd;\n  border-color: transparent;\n  color: #fff;\n}\n\n.daterangepicker th.month {\n  width: auto;\n}\n\n.daterangepicker td.disabled, .daterangepicker option.disabled {\n  color: #999;\n  cursor: not-allowed;\n  text-decoration: line-through;\n}\n\n.daterangepicker select.monthselect, .daterangepicker select.yearselect {\n  font-size: 12px;\n  padding: 1px;\n  height: auto;\n  margin: 0;\n  cursor: default;\n}\n\n.daterangepicker select.monthselect {\n  margin-right: 2%;\n  width: 56%;\n}\n\n.daterangepicker select.yearselect {\n  width: 40%;\n}\n\n.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {\n  width: 50px;\n  margin: 0 auto;\n  background: #eee;\n  border: 1px solid #eee;\n  padding: 2px;\n  outline: 0;\n  font-size: 12px;\n}\n\n.daterangepicker .calendar-time {\n  text-align: center;\n  margin: 4px auto 0 auto;\n  line-height: 30px;\n  position: relative;\n}\n\n.daterangepicker .calendar-time select.disabled {\n  color: #ccc;\n  cursor: not-allowed;\n}\n\n.daterangepicker .drp-buttons {\n  clear: both;\n  text-align: right;\n  padding: 8px;\n  border-top: 1px solid #ddd;\n  display: none;\n  line-height: 12px;\n  vertical-align: middle;\n}\n\n.daterangepicker .drp-selected {\n  display: inline-block;\n  font-size: 12px;\n  padding-right: 8px;\n}\n\n.daterangepicker .drp-buttons .btn {\n  margin-left: 8px;\n  font-size: 12px;\n  font-weight: bold;\n  padding: 4px 8px;\n}\n\n.daterangepicker.show-ranges.single.rtl .drp-calendar.left {\n  border-right: 1px solid #ddd;\n}\n\n.daterangepicker.show-ranges.single.ltr .drp-calendar.left {\n  border-left: 1px solid #ddd;\n}\n\n.daterangepicker.show-ranges.rtl .drp-calendar.right {\n  border-right: 1px solid #ddd;\n}\n\n.daterangepicker.show-ranges.ltr .drp-calendar.left {\n  border-left: 1px solid #ddd;\n}\n\n.daterangepicker .ranges {\n  float: none;\n  text-align: left;\n  margin: 0;\n}\n\n.daterangepicker.show-calendar .ranges {\n  margin-top: 8px;\n}\n\n.daterangepicker .ranges ul {\n  list-style: none;\n  margin: 0 auto;\n  padding: 0;\n  width: 100%;\n}\n\n.daterangepicker .ranges li {\n  font-size: 12px;\n  padding: 8px 12px;\n  cursor: pointer;\n}\n\n.daterangepicker .ranges li:hover {\n  background-color: #eee;\n}\n\n.daterangepicker .ranges li.active {\n  background-color: #08c;\n  color: #fff;\n}\n\n/*  Larger Screen Styling */\n@media (min-width: 564px) {\n  .daterangepicker {\n    width: auto;\n  }\n\n  .daterangepicker .ranges ul {\n    width: 140px;\n  }\n\n  .daterangepicker.single .ranges ul {\n    width: 100%;\n  }\n\n  .daterangepicker.single .drp-calendar.left {\n    clear: none;\n  }\n\n  .daterangepicker.single .ranges, .daterangepicker.single .drp-calendar {\n    float: left;\n  }\n\n  .daterangepicker {\n    direction: ltr;\n    text-align: left;\n  }\n\n  .daterangepicker .drp-calendar.left {\n    clear: left;\n    margin-right: 0;\n  }\n\n  .daterangepicker .drp-calendar.left .calendar-table {\n    border-right: none;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  .daterangepicker .drp-calendar.right {\n    margin-left: 0;\n  }\n\n  .daterangepicker .drp-calendar.right .calendar-table {\n    border-left: none;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .daterangepicker .drp-calendar.left .calendar-table {\n    padding-right: 8px;\n  }\n\n  .daterangepicker .ranges, .daterangepicker .drp-calendar {\n    float: left;\n  }\n}\n\n@media (min-width: 730px) {\n  .daterangepicker .ranges {\n    width: auto;\n  }\n\n  .daterangepicker .ranges {\n    float: left;\n  }\n\n  .daterangepicker.rtl .ranges {\n    float: right;\n  }\n\n  .daterangepicker .drp-calendar.left {\n    clear: none !important;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/daterangepicker/daterangepicker.js",
    "content": "/**\n* @version: 3.1\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: http://www.daterangepicker.com/\n*/\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\n(function (root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Make globaly available as well\n        define(['moment', 'jquery'], function (moment, jquery) {\n            if (!jquery.fn) jquery.fn = {}; // webpack server rendering\n            if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default']\n            return factory(moment, jquery);\n        });\n    } else if (typeof module === 'object' && module.exports) {\n        // Node / Browserify\n        //isomorphic issue\n        var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;\n        if (!jQuery) {\n            jQuery = require('jquery');\n            if (!jQuery.fn) jQuery.fn = {};\n        }\n        var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');\n        module.exports = factory(moment, jQuery);\n    } else {\n        // Browser globals\n        root.daterangepicker = factory(root.moment, root.jQuery);\n    }\n}(this, function(moment, $) {\n    var DateRangePicker = function(element, options, cb) {\n\n        //default settings for options\n        this.parentEl = 'body';\n        this.element = $(element);\n        this.startDate = moment().startOf('day');\n        this.endDate = moment().endOf('day');\n        this.minDate = false;\n        this.maxDate = false;\n        this.maxSpan = false;\n        this.autoApply = false;\n        this.singleDatePicker = false;\n        this.showDropdowns = false;\n        this.minYear = moment().subtract(100, 'year').format('YYYY');\n        this.maxYear = moment().add(100, 'year').format('YYYY');\n        this.showWeekNumbers = false;\n        this.showISOWeekNumbers = false;\n        this.showCustomRangeLabel = true;\n        this.timePicker = false;\n        this.timePicker24Hour = false;\n        this.timePickerIncrement = 1;\n        this.timePickerSeconds = false;\n        this.linkedCalendars = true;\n        this.autoUpdateInput = true;\n        this.alwaysShowCalendars = false;\n        this.ranges = {};\n\n        this.opens = 'right';\n        if (this.element.hasClass('pull-right'))\n            this.opens = 'left';\n\n        this.drops = 'down';\n        if (this.element.hasClass('dropup'))\n            this.drops = 'up';\n\n        this.buttonClasses = 'btn btn-sm';\n        this.applyButtonClasses = 'btn-primary';\n        this.cancelButtonClasses = 'btn-default';\n\n        this.locale = {\n            direction: 'ltr',\n            format: moment.localeData().longDateFormat('L'),\n            separator: ' - ',\n            applyLabel: 'Apply',\n            cancelLabel: 'Cancel',\n            weekLabel: 'W',\n            customRangeLabel: 'Custom Range',\n            daysOfWeek: moment.weekdaysMin(),\n            monthNames: moment.monthsShort(),\n            firstDay: moment.localeData().firstDayOfWeek()\n        };\n\n        this.callback = function() { };\n\n        //some state information\n        this.isShowing = false;\n        this.leftCalendar = {};\n        this.rightCalendar = {};\n\n        //custom options from user\n        if (typeof options !== 'object' || options === null)\n            options = {};\n\n        //allow setting options with data attributes\n        //data-api options will be overwritten with custom javascript options\n        options = $.extend(this.element.data(), options);\n\n        //html template for the picker UI\n        if (typeof options.template !== 'string' && !(options.template instanceof $))\n            options.template =\n            '<div class=\"daterangepicker\">' +\n                '<div class=\"ranges\"></div>' +\n                '<div class=\"drp-calendar left\">' +\n                    '<div class=\"calendar-table\"></div>' +\n                    '<div class=\"calendar-time\"></div>' +\n                '</div>' +\n                '<div class=\"drp-calendar right\">' +\n                    '<div class=\"calendar-table\"></div>' +\n                    '<div class=\"calendar-time\"></div>' +\n                '</div>' +\n                '<div class=\"drp-buttons\">' +\n                    '<span class=\"drp-selected\"></span>' +\n                    '<button class=\"cancelBtn\" type=\"button\"></button>' +\n                    '<button class=\"applyBtn\" disabled=\"disabled\" type=\"button\"></button> ' +\n                '</div>' +\n            '</div>';\n\n        this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\n        this.container = $(options.template).appendTo(this.parentEl);\n\n        //\n        // handle all the possible options overriding defaults\n        //\n\n        if (typeof options.locale === 'object') {\n\n            if (typeof options.locale.direction === 'string')\n                this.locale.direction = options.locale.direction;\n\n            if (typeof options.locale.format === 'string')\n                this.locale.format = options.locale.format;\n\n            if (typeof options.locale.separator === 'string')\n                this.locale.separator = options.locale.separator;\n\n            if (typeof options.locale.daysOfWeek === 'object')\n                this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n\n            if (typeof options.locale.monthNames === 'object')\n              this.locale.monthNames = options.locale.monthNames.slice();\n\n            if (typeof options.locale.firstDay === 'number')\n              this.locale.firstDay = options.locale.firstDay;\n\n            if (typeof options.locale.applyLabel === 'string')\n              this.locale.applyLabel = options.locale.applyLabel;\n\n            if (typeof options.locale.cancelLabel === 'string')\n              this.locale.cancelLabel = options.locale.cancelLabel;\n\n            if (typeof options.locale.weekLabel === 'string')\n              this.locale.weekLabel = options.locale.weekLabel;\n\n            if (typeof options.locale.customRangeLabel === 'string'){\n                //Support unicode chars in the custom range name.\n                var elem = document.createElement('textarea');\n                elem.innerHTML = options.locale.customRangeLabel;\n                var rangeHtml = elem.value;\n                this.locale.customRangeLabel = rangeHtml;\n            }\n        }\n        this.container.addClass(this.locale.direction);\n\n        if (typeof options.startDate === 'string')\n            this.startDate = moment(options.startDate, this.locale.format);\n\n        if (typeof options.endDate === 'string')\n            this.endDate = moment(options.endDate, this.locale.format);\n\n        if (typeof options.minDate === 'string')\n            this.minDate = moment(options.minDate, this.locale.format);\n\n        if (typeof options.maxDate === 'string')\n            this.maxDate = moment(options.maxDate, this.locale.format);\n\n        if (typeof options.startDate === 'object')\n            this.startDate = moment(options.startDate);\n\n        if (typeof options.endDate === 'object')\n            this.endDate = moment(options.endDate);\n\n        if (typeof options.minDate === 'object')\n            this.minDate = moment(options.minDate);\n\n        if (typeof options.maxDate === 'object')\n            this.maxDate = moment(options.maxDate);\n\n        // sanity check for bad options\n        if (this.minDate && this.startDate.isBefore(this.minDate))\n            this.startDate = this.minDate.clone();\n\n        // sanity check for bad options\n        if (this.maxDate && this.endDate.isAfter(this.maxDate))\n            this.endDate = this.maxDate.clone();\n\n        if (typeof options.applyButtonClasses === 'string')\n            this.applyButtonClasses = options.applyButtonClasses;\n\n        if (typeof options.applyClass === 'string') //backwards compat\n            this.applyButtonClasses = options.applyClass;\n\n        if (typeof options.cancelButtonClasses === 'string')\n            this.cancelButtonClasses = options.cancelButtonClasses;\n\n        if (typeof options.cancelClass === 'string') //backwards compat\n            this.cancelButtonClasses = options.cancelClass;\n\n        if (typeof options.maxSpan === 'object')\n            this.maxSpan = options.maxSpan;\n\n        if (typeof options.dateLimit === 'object') //backwards compat\n            this.maxSpan = options.dateLimit;\n\n        if (typeof options.opens === 'string')\n            this.opens = options.opens;\n\n        if (typeof options.drops === 'string')\n            this.drops = options.drops;\n\n        if (typeof options.showWeekNumbers === 'boolean')\n            this.showWeekNumbers = options.showWeekNumbers;\n\n        if (typeof options.showISOWeekNumbers === 'boolean')\n            this.showISOWeekNumbers = options.showISOWeekNumbers;\n\n        if (typeof options.buttonClasses === 'string')\n            this.buttonClasses = options.buttonClasses;\n\n        if (typeof options.buttonClasses === 'object')\n            this.buttonClasses = options.buttonClasses.join(' ');\n\n        if (typeof options.showDropdowns === 'boolean')\n            this.showDropdowns = options.showDropdowns;\n\n        if (typeof options.minYear === 'number')\n            this.minYear = options.minYear;\n\n        if (typeof options.maxYear === 'number')\n            this.maxYear = options.maxYear;\n\n        if (typeof options.showCustomRangeLabel === 'boolean')\n            this.showCustomRangeLabel = options.showCustomRangeLabel;\n\n        if (typeof options.singleDatePicker === 'boolean') {\n            this.singleDatePicker = options.singleDatePicker;\n            if (this.singleDatePicker)\n                this.endDate = this.startDate.clone();\n        }\n\n        if (typeof options.timePicker === 'boolean')\n            this.timePicker = options.timePicker;\n\n        if (typeof options.timePickerSeconds === 'boolean')\n            this.timePickerSeconds = options.timePickerSeconds;\n\n        if (typeof options.timePickerIncrement === 'number')\n            this.timePickerIncrement = options.timePickerIncrement;\n\n        if (typeof options.timePicker24Hour === 'boolean')\n            this.timePicker24Hour = options.timePicker24Hour;\n\n        if (typeof options.autoApply === 'boolean')\n            this.autoApply = options.autoApply;\n\n        if (typeof options.autoUpdateInput === 'boolean')\n            this.autoUpdateInput = options.autoUpdateInput;\n\n        if (typeof options.linkedCalendars === 'boolean')\n            this.linkedCalendars = options.linkedCalendars;\n\n        if (typeof options.isInvalidDate === 'function')\n            this.isInvalidDate = options.isInvalidDate;\n\n        if (typeof options.isCustomDate === 'function')\n            this.isCustomDate = options.isCustomDate;\n\n        if (typeof options.alwaysShowCalendars === 'boolean')\n            this.alwaysShowCalendars = options.alwaysShowCalendars;\n\n        // update day names order to firstDay\n        if (this.locale.firstDay != 0) {\n            var iterator = this.locale.firstDay;\n            while (iterator > 0) {\n                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n                iterator--;\n            }\n        }\n\n        var start, end, range;\n\n        //if no start/end dates set, check if an input element contains initial values\n        if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\n            if ($(this.element).is(':text')) {\n                var val = $(this.element).val(),\n                    split = val.split(this.locale.separator);\n\n                start = end = null;\n\n                if (split.length == 2) {\n                    start = moment(split[0], this.locale.format);\n                    end = moment(split[1], this.locale.format);\n                } else if (this.singleDatePicker && val !== \"\") {\n                    start = moment(val, this.locale.format);\n                    end = moment(val, this.locale.format);\n                }\n                if (start !== null && end !== null) {\n                    this.setStartDate(start);\n                    this.setEndDate(end);\n                }\n            }\n        }\n\n        if (typeof options.ranges === 'object') {\n            for (range in options.ranges) {\n\n                if (typeof options.ranges[range][0] === 'string')\n                    start = moment(options.ranges[range][0], this.locale.format);\n                else\n                    start = moment(options.ranges[range][0]);\n\n                if (typeof options.ranges[range][1] === 'string')\n                    end = moment(options.ranges[range][1], this.locale.format);\n                else\n                    end = moment(options.ranges[range][1]);\n\n                // If the start or end date exceed those allowed by the minDate or maxSpan\n                // options, shorten the range to the allowable period.\n                if (this.minDate && start.isBefore(this.minDate))\n                    start = this.minDate.clone();\n\n                var maxDate = this.maxDate;\n                if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))\n                    maxDate = start.clone().add(this.maxSpan);\n                if (maxDate && end.isAfter(maxDate))\n                    end = maxDate.clone();\n\n                // If the end of the range is before the minimum or the start of the range is\n                // after the maximum, don't display this range option at all.\n                if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))\n                  || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))\n                    continue;\n\n                //Support unicode chars in the range names.\n                var elem = document.createElement('textarea');\n                elem.innerHTML = range;\n                var rangeHtml = elem.value;\n\n                this.ranges[rangeHtml] = [start, end];\n            }\n\n            var list = '<ul>';\n            for (range in this.ranges) {\n                list += '<li data-range-key=\"' + range + '\">' + range + '</li>';\n            }\n            if (this.showCustomRangeLabel) {\n                list += '<li data-range-key=\"' + this.locale.customRangeLabel + '\">' + this.locale.customRangeLabel + '</li>';\n            }\n            list += '</ul>';\n            this.container.find('.ranges').prepend(list);\n        }\n\n        if (typeof cb === 'function') {\n            this.callback = cb;\n        }\n\n        if (!this.timePicker) {\n            this.startDate = this.startDate.startOf('day');\n            this.endDate = this.endDate.endOf('day');\n            this.container.find('.calendar-time').hide();\n        }\n\n        //can't be used together for now\n        if (this.timePicker && this.autoApply)\n            this.autoApply = false;\n\n        if (this.autoApply) {\n            this.container.addClass('auto-apply');\n        }\n\n        if (typeof options.ranges === 'object')\n            this.container.addClass('show-ranges');\n\n        if (this.singleDatePicker) {\n            this.container.addClass('single');\n            this.container.find('.drp-calendar.left').addClass('single');\n            this.container.find('.drp-calendar.left').show();\n            this.container.find('.drp-calendar.right').hide();\n            if (!this.timePicker && this.autoApply) {\n                this.container.addClass('auto-apply');\n            }\n        }\n\n        if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {\n            this.container.addClass('show-calendar');\n        }\n\n        this.container.addClass('opens' + this.opens);\n\n        //apply CSS classes and labels to buttons\n        this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n        if (this.applyButtonClasses.length)\n            this.container.find('.applyBtn').addClass(this.applyButtonClasses);\n        if (this.cancelButtonClasses.length)\n            this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\n        this.container.find('.applyBtn').html(this.locale.applyLabel);\n        this.container.find('.cancelBtn').html(this.locale.cancelLabel);\n\n        //\n        // event listeners\n        //\n\n        this.container.find('.drp-calendar')\n            .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\n            .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\n            .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\n            .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\n            .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\n\n        this.container.find('.ranges')\n            .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\n\n        this.container.find('.drp-buttons')\n            .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\n            .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\n\n        if (this.element.is('input') || this.element.is('button')) {\n            this.element.on({\n                'click.daterangepicker': $.proxy(this.show, this),\n                'focus.daterangepicker': $.proxy(this.show, this),\n                'keyup.daterangepicker': $.proxy(this.elementChanged, this),\n                'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\n            });\n        } else {\n            this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n            this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\n        }\n\n        //\n        // if attached to a text input, set the initial value\n        //\n\n        this.updateElement();\n\n    };\n\n    DateRangePicker.prototype = {\n\n        constructor: DateRangePicker,\n\n        setStartDate: function(startDate) {\n            if (typeof startDate === 'string')\n                this.startDate = moment(startDate, this.locale.format);\n\n            if (typeof startDate === 'object')\n                this.startDate = moment(startDate);\n\n            if (!this.timePicker)\n                this.startDate = this.startDate.startOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.minDate && this.startDate.isBefore(this.minDate)) {\n                this.startDate = this.minDate.clone();\n                if (this.timePicker && this.timePickerIncrement)\n                    this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n            }\n\n            if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\n                this.startDate = this.maxDate.clone();\n                if (this.timePicker && this.timePickerIncrement)\n                    this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n            }\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        setEndDate: function(endDate) {\n            if (typeof endDate === 'string')\n                this.endDate = moment(endDate, this.locale.format);\n\n            if (typeof endDate === 'object')\n                this.endDate = moment(endDate);\n\n            if (!this.timePicker)\n                this.endDate = this.endDate.endOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.endDate.isBefore(this.startDate))\n                this.endDate = this.startDate.clone();\n\n            if (this.maxDate && this.endDate.isAfter(this.maxDate))\n                this.endDate = this.maxDate.clone();\n\n            if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\n                this.endDate = this.startDate.clone().add(this.maxSpan);\n\n            this.previousRightTime = this.endDate.clone();\n\n            this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        isInvalidDate: function() {\n            return false;\n        },\n\n        isCustomDate: function() {\n            return false;\n        },\n\n        updateView: function() {\n            if (this.timePicker) {\n                this.renderTimePicker('left');\n                this.renderTimePicker('right');\n                if (!this.endDate) {\n                    this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');\n                } else {\n                    this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');\n                }\n            }\n            if (this.endDate)\n                this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n            this.updateMonthsInView();\n            this.updateCalendars();\n            this.updateFormInputs();\n        },\n\n        updateMonthsInView: function() {\n            if (this.endDate) {\n\n                //if both dates are visible already, do nothing\n                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\n                    (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    &&\n                    (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    ) {\n                    return;\n                }\n\n                this.leftCalendar.month = this.startDate.clone().date(2);\n                if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n                    this.rightCalendar.month = this.endDate.clone().date(2);\n                } else {\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n\n            } else {\n                if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\n                    this.leftCalendar.month = this.startDate.clone().date(2);\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n            }\n            if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\n              this.rightCalendar.month = this.maxDate.clone().date(2);\n              this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\n            }\n        },\n\n        updateCalendars: function() {\n\n            if (this.timePicker) {\n                var hour, minute, second;\n                if (this.endDate) {\n                    hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    if (isNaN(minute)) {\n                        minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n                    }\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.left .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                } else {\n                    hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    if (isNaN(minute)) {\n                        minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n                    }\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                }\n                this.leftCalendar.month.hour(hour).minute(minute).second(second);\n                this.rightCalendar.month.hour(hour).minute(minute).second(second);\n            }\n\n            this.renderCalendar('left');\n            this.renderCalendar('right');\n\n            //highlight any predefined range matching the current start and end dates\n            this.container.find('.ranges li').removeClass('active');\n            if (this.endDate == null) return;\n\n            this.calculateChosenLabel();\n        },\n\n        renderCalendar: function(side) {\n\n            //\n            // Build the matrix of dates that will populate the calendar\n            //\n\n            var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\n            var month = calendar.month.month();\n            var year = calendar.month.year();\n            var hour = calendar.month.hour();\n            var minute = calendar.month.minute();\n            var second = calendar.month.second();\n            var daysInMonth = moment([year, month]).daysInMonth();\n            var firstDay = moment([year, month, 1]);\n            var lastDay = moment([year, month, daysInMonth]);\n            var lastMonth = moment(firstDay).subtract(1, 'month').month();\n            var lastYear = moment(firstDay).subtract(1, 'month').year();\n            var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n            var dayOfWeek = firstDay.day();\n\n            //initialize a 6 rows x 7 columns array for the calendar\n            var calendar = [];\n            calendar.firstDay = firstDay;\n            calendar.lastDay = lastDay;\n\n            for (var i = 0; i < 6; i++) {\n                calendar[i] = [];\n            }\n\n            //populate the calendar with date objects\n            var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n            if (startDay > daysInLastMonth)\n                startDay -= 7;\n\n            if (dayOfWeek == this.locale.firstDay)\n                startDay = daysInLastMonth - 6;\n\n            var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n\n            var col, row;\n            for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\n                if (i > 0 && col % 7 === 0) {\n                    col = 0;\n                    row++;\n                }\n                calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n                curDate.hour(12);\n\n                if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\n                    calendar[row][col] = this.minDate.clone();\n                }\n\n                if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\n                    calendar[row][col] = this.maxDate.clone();\n                }\n\n            }\n\n            //make the calendar object available to hoverDate/clickDate\n            if (side == 'left') {\n                this.leftCalendar.calendar = calendar;\n            } else {\n                this.rightCalendar.calendar = calendar;\n            }\n\n            //\n            // Display the calendar\n            //\n\n            var minDate = side == 'left' ? this.minDate : this.startDate;\n            var maxDate = this.maxDate;\n            var selected = side == 'left' ? this.startDate : this.endDate;\n            var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};\n\n            var html = '<table class=\"table-condensed\">';\n            html += '<thead>';\n            html += '<tr>';\n\n            // add empty cell for week number\n            if (this.showWeekNumbers || this.showISOWeekNumbers)\n                html += '<th></th>';\n\n            if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\n                html += '<th class=\"prev available\"><span></span></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n            if (this.showDropdowns) {\n                var currentMonth = calendar[1][1].month();\n                var currentYear = calendar[1][1].year();\n                var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\n                var minYear = (minDate && minDate.year()) || (this.minYear);\n                var inMinYear = currentYear == minYear;\n                var inMaxYear = currentYear == maxYear;\n\n                var monthHtml = '<select class=\"monthselect\">';\n                for (var m = 0; m < 12; m++) {\n                    if ((!inMinYear || (minDate && m >= minDate.month())) && (!inMaxYear || (maxDate && m <= maxDate.month()))) {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \">\" + this.locale.monthNames[m] + \"</option>\";\n                    } else {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \" disabled='disabled'>\" + this.locale.monthNames[m] + \"</option>\";\n                    }\n                }\n                monthHtml += \"</select>\";\n\n                var yearHtml = '<select class=\"yearselect\">';\n                for (var y = minYear; y <= maxYear; y++) {\n                    yearHtml += '<option value=\"' + y + '\"' +\n                        (y === currentYear ? ' selected=\"selected\"' : '') +\n                        '>' + y + '</option>';\n                }\n                yearHtml += '</select>';\n\n                dateHtml = monthHtml + yearHtml;\n            }\n\n            html += '<th colspan=\"5\" class=\"month\">' + dateHtml + '</th>';\n            if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\n                html += '<th class=\"next available\"><span></span></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            html += '</tr>';\n            html += '<tr>';\n\n            // add week number label\n            if (this.showWeekNumbers || this.showISOWeekNumbers)\n                html += '<th class=\"week\">' + this.locale.weekLabel + '</th>';\n\n            $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\n                html += '<th>' + dayOfWeek + '</th>';\n            });\n\n            html += '</tr>';\n            html += '</thead>';\n            html += '<tbody>';\n\n            //adjust maxDate to reflect the maxSpan setting in order to\n            //grey out end dates beyond the maxSpan\n            if (this.endDate == null && this.maxSpan) {\n                var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\n                if (!maxDate || maxLimit.isBefore(maxDate)) {\n                    maxDate = maxLimit;\n                }\n            }\n\n            for (var row = 0; row < 6; row++) {\n                html += '<tr>';\n\n                // add week number\n                if (this.showWeekNumbers)\n                    html += '<td class=\"week\">' + calendar[row][0].week() + '</td>';\n                else if (this.showISOWeekNumbers)\n                    html += '<td class=\"week\">' + calendar[row][0].isoWeek() + '</td>';\n\n                for (var col = 0; col < 7; col++) {\n\n                    var classes = [];\n\n                    //highlight today's date\n                    if (calendar[row][col].isSame(new Date(), \"day\"))\n                        classes.push('today');\n\n                    //highlight weekends\n                    if (calendar[row][col].isoWeekday() > 5)\n                        classes.push('weekend');\n\n                    //grey out the dates in other months displayed at beginning and end of this calendar\n                    if (calendar[row][col].month() != calendar[1][1].month())\n                        classes.push('off', 'ends');\n\n                    //don't allow selection of dates before the minimum date\n                    if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of dates after the maximum date\n                    if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of date if a custom function decides it's invalid\n                    if (this.isInvalidDate(calendar[row][col]))\n                        classes.push('off', 'disabled');\n\n                    //highlight the currently selected start date\n                    if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'start-date');\n\n                    //highlight the currently selected end date\n                    if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'end-date');\n\n                    //highlight dates in-between the selected dates\n                    if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\n                        classes.push('in-range');\n\n                    //apply custom classes for this date\n                    var isCustom = this.isCustomDate(calendar[row][col]);\n                    if (isCustom !== false) {\n                        if (typeof isCustom === 'string')\n                            classes.push(isCustom);\n                        else\n                            Array.prototype.push.apply(classes, isCustom);\n                    }\n\n                    var cname = '', disabled = false;\n                    for (var i = 0; i < classes.length; i++) {\n                        cname += classes[i] + ' ';\n                        if (classes[i] == 'disabled')\n                            disabled = true;\n                    }\n                    if (!disabled)\n                        cname += 'available';\n\n                    html += '<td class=\"' + cname.replace(/^\\s+|\\s+$/g, '') + '\" data-title=\"' + 'r' + row + 'c' + col + '\">' + calendar[row][col].date() + '</td>';\n\n                }\n                html += '</tr>';\n            }\n\n            html += '</tbody>';\n            html += '</table>';\n\n            this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\n\n        },\n\n        renderTimePicker: function(side) {\n\n            // Don't bother updating the time picker if it's currently disabled\n            // because an end date hasn't been clicked yet\n            if (side == 'right' && !this.endDate) return;\n\n            var html, selected, minDate, maxDate = this.maxDate;\n\n            if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))\n                maxDate = this.startDate.clone().add(this.maxSpan);\n\n            if (side == 'left') {\n                selected = this.startDate.clone();\n                minDate = this.minDate;\n            } else if (side == 'right') {\n                selected = this.endDate.clone();\n                minDate = this.startDate;\n\n                //Preserve the time already selected\n                var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\n                if (timeSelector.html() != '') {\n\n                    selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\n                    selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\n                    selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\n\n                    if (!this.timePicker24Hour) {\n                        var ampm = timeSelector.find('.ampmselect option:selected').val();\n                        if (ampm === 'PM' && selected.hour() < 12)\n                            selected.hour(selected.hour() + 12);\n                        if (ampm === 'AM' && selected.hour() === 12)\n                            selected.hour(0);\n                    }\n\n                }\n\n                if (selected.isBefore(this.startDate))\n                    selected = this.startDate.clone();\n\n                if (maxDate && selected.isAfter(maxDate))\n                    selected = maxDate.clone();\n\n            }\n\n            //\n            // hours\n            //\n\n            html = '<select class=\"hourselect\">';\n\n            var start = this.timePicker24Hour ? 0 : 1;\n            var end = this.timePicker24Hour ? 23 : 12;\n\n            for (var i = start; i <= end; i++) {\n                var i_in_24 = i;\n                if (!this.timePicker24Hour)\n                    i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\n\n                var time = selected.clone().hour(i_in_24);\n                var disabled = false;\n                if (minDate && time.minute(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.minute(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (i_in_24 == selected.hour() && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + i + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + i + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + i + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // minutes\n            //\n\n            html += ': <select class=\"minuteselect\">';\n\n            for (var i = 0; i < 60; i += this.timePickerIncrement) {\n                var padded = i < 10 ? '0' + i : i;\n                var time = selected.clone().minute(i);\n\n                var disabled = false;\n                if (minDate && time.second(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.second(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (selected.minute() == i && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + padded + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // seconds\n            //\n\n            if (this.timePickerSeconds) {\n                html += ': <select class=\"secondselect\">';\n\n                for (var i = 0; i < 60; i++) {\n                    var padded = i < 10 ? '0' + i : i;\n                    var time = selected.clone().second(i);\n\n                    var disabled = false;\n                    if (minDate && time.isBefore(minDate))\n                        disabled = true;\n                    if (maxDate && time.isAfter(maxDate))\n                        disabled = true;\n\n                    if (selected.second() == i && !disabled) {\n                        html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                    } else if (disabled) {\n                        html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                    } else {\n                        html += '<option value=\"' + i + '\">' + padded + '</option>';\n                    }\n                }\n\n                html += '</select> ';\n            }\n\n            //\n            // AM/PM\n            //\n\n            if (!this.timePicker24Hour) {\n                html += '<select class=\"ampmselect\">';\n\n                var am_html = '';\n                var pm_html = '';\n\n                if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))\n                    am_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))\n                    pm_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (selected.hour() >= 12) {\n                    html += '<option value=\"AM\"' + am_html + '>AM</option><option value=\"PM\" selected=\"selected\"' + pm_html + '>PM</option>';\n                } else {\n                    html += '<option value=\"AM\" selected=\"selected\"' + am_html + '>AM</option><option value=\"PM\"' + pm_html + '>PM</option>';\n                }\n\n                html += '</select>';\n            }\n\n            this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\n\n        },\n\n        updateFormInputs: function() {\n\n            if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\n                this.container.find('button.applyBtn').prop('disabled', false);\n            } else {\n                this.container.find('button.applyBtn').prop('disabled', true);\n            }\n\n        },\n\n        move: function() {\n            var parentOffset = { top: 0, left: 0 },\n                containerTop,\n                drops = this.drops;\n\n            var parentRightEdge = $(window).width();\n            if (!this.parentEl.is('body')) {\n                parentOffset = {\n                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),\n                    left: this.parentEl.offset().left - this.parentEl.scrollLeft()\n                };\n                parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\n            }\n\n            switch (drops) {\n            case 'auto':\n                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\n                if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) {\n                    containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\n                    drops = 'up';\n                }\n                break;\n            case 'up':\n                containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\n                break;\n            default:\n                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\n                break;\n            }\n\n            // Force the container to it's actual width\n            this.container.css({\n              top: 0,\n              left: 0,\n              right: 'auto'\n            });\n            var containerWidth = this.container.outerWidth();\n\n            this.container.toggleClass('drop-up', drops == 'up');\n\n            if (this.opens == 'left') {\n                var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\n                if (containerWidth + containerRight > $(window).width()) {\n                    this.container.css({\n                        top: containerTop,\n                        right: 'auto',\n                        left: 9\n                    });\n                } else {\n                    this.container.css({\n                        top: containerTop,\n                        right: containerRight,\n                        left: 'auto'\n                    });\n                }\n            } else if (this.opens == 'center') {\n                var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\n                                        - containerWidth / 2;\n                if (containerLeft < 0) {\n                    this.container.css({\n                        top: containerTop,\n                        right: 'auto',\n                        left: 9\n                    });\n                } else if (containerLeft + containerWidth > $(window).width()) {\n                    this.container.css({\n                        top: containerTop,\n                        left: 'auto',\n                        right: 0\n                    });\n                } else {\n                    this.container.css({\n                        top: containerTop,\n                        left: containerLeft,\n                        right: 'auto'\n                    });\n                }\n            } else {\n                var containerLeft = this.element.offset().left - parentOffset.left;\n                if (containerLeft + containerWidth > $(window).width()) {\n                    this.container.css({\n                        top: containerTop,\n                        left: 'auto',\n                        right: 0\n                    });\n                } else {\n                    this.container.css({\n                        top: containerTop,\n                        left: containerLeft,\n                        right: 'auto'\n                    });\n                }\n            }\n        },\n\n        show: function(e) {\n            if (this.isShowing) return;\n\n            // Create a click proxy that is private to this instance of datepicker, for unbinding\n            this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\n\n            // Bind global datepicker mousedown for hiding and\n            $(document)\n              .on('mousedown.daterangepicker', this._outsideClickProxy)\n              // also support mobile devices\n              .on('touchend.daterangepicker', this._outsideClickProxy)\n              // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n              .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\n              // and also close when focus changes to outside the picker (eg. tabbing between controls)\n              .on('focusin.daterangepicker', this._outsideClickProxy);\n\n            // Reposition the picker if the window is resized while it's open\n            $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\n\n            this.oldStartDate = this.startDate.clone();\n            this.oldEndDate = this.endDate.clone();\n            this.previousRightTime = this.endDate.clone();\n\n            this.updateView();\n            this.container.show();\n            this.move();\n            this.element.trigger('show.daterangepicker', this);\n            this.isShowing = true;\n        },\n\n        hide: function(e) {\n            if (!this.isShowing) return;\n\n            //incomplete date selection, revert to last values\n            if (!this.endDate) {\n                this.startDate = this.oldStartDate.clone();\n                this.endDate = this.oldEndDate.clone();\n            }\n\n            //if a new date range was selected, invoke the user callback function\n            if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\n                this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);\n\n            //if picker is attached to a text input, update it\n            this.updateElement();\n\n            $(document).off('.daterangepicker');\n            $(window).off('.daterangepicker');\n            this.container.hide();\n            this.element.trigger('hide.daterangepicker', this);\n            this.isShowing = false;\n        },\n\n        toggle: function(e) {\n            if (this.isShowing) {\n                this.hide();\n            } else {\n                this.show();\n            }\n        },\n\n        outsideClick: function(e) {\n            var target = $(e.target);\n            // if the page is clicked anywhere except within the daterangerpicker/button\n            // itself then call this.hide()\n            if (\n                // ie modal dialog fix\n                e.type == \"focusin\" ||\n                target.closest(this.element).length ||\n                target.closest(this.container).length ||\n                target.closest('.calendar-table').length\n                ) return;\n            this.hide();\n            this.element.trigger('outsideClick.daterangepicker', this);\n        },\n\n        showCalendars: function() {\n            this.container.addClass('show-calendar');\n            this.move();\n            this.element.trigger('showCalendar.daterangepicker', this);\n        },\n\n        hideCalendars: function() {\n            this.container.removeClass('show-calendar');\n            this.element.trigger('hideCalendar.daterangepicker', this);\n        },\n\n        clickRange: function(e) {\n            var label = e.target.getAttribute('data-range-key');\n            this.chosenLabel = label;\n            if (label == this.locale.customRangeLabel) {\n                this.showCalendars();\n            } else {\n                var dates = this.ranges[label];\n                this.startDate = dates[0];\n                this.endDate = dates[1];\n\n                if (!this.timePicker) {\n                    this.startDate.startOf('day');\n                    this.endDate.endOf('day');\n                }\n\n                if (!this.alwaysShowCalendars)\n                    this.hideCalendars();\n                this.clickApply();\n            }\n        },\n\n        clickPrev: function(e) {\n            var cal = $(e.target).parents('.drp-calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.subtract(1, 'month');\n                if (this.linkedCalendars)\n                    this.rightCalendar.month.subtract(1, 'month');\n            } else {\n                this.rightCalendar.month.subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        clickNext: function(e) {\n            var cal = $(e.target).parents('.drp-calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.add(1, 'month');\n            } else {\n                this.rightCalendar.month.add(1, 'month');\n                if (this.linkedCalendars)\n                    this.leftCalendar.month.add(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        hoverDate: function(e) {\n\n            //ignore dates that can't be selected\n            if (!$(e.target).hasClass('available')) return;\n\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.drp-calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            //highlight the dates between the start date and the date being hovered as a potential end date\n            var leftCalendar = this.leftCalendar;\n            var rightCalendar = this.rightCalendar;\n            var startDate = this.startDate;\n            if (!this.endDate) {\n                this.container.find('.drp-calendar tbody td').each(function(index, el) {\n\n                    //skip week numbers, only look at dates\n                    if ($(el).hasClass('week')) return;\n\n                    var title = $(el).attr('data-title');\n                    var row = title.substr(1, 1);\n                    var col = title.substr(3, 1);\n                    var cal = $(el).parents('.drp-calendar');\n                    var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\n\n                    if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\n                        $(el).addClass('in-range');\n                    } else {\n                        $(el).removeClass('in-range');\n                    }\n\n                });\n            }\n\n        },\n\n        clickDate: function(e) {\n\n            if (!$(e.target).hasClass('available')) return;\n\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.drp-calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            //\n            // this function needs to do a few things:\n            // * alternate between selecting a start and end date for the range,\n            // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n            // * if autoapply is enabled, and an end date was chosen, apply the selection\n            // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n            // * if one of the inputs above the calendars was focused, cancel that manual input\n            //\n\n            if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.left .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    if (isNaN(minute)) {\n                        minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n                    }\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.endDate = null;\n                this.setStartDate(date.clone());\n            } else if (!this.endDate && date.isBefore(this.startDate)) {\n                //special case: clicking the same date for start/end,\n                //but the time of the end date is before the start date\n                this.setEndDate(this.startDate.clone());\n            } else { // picking end\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    if (isNaN(minute)) {\n                        minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n                    }\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.setEndDate(date.clone());\n                if (this.autoApply) {\n                  this.calculateChosenLabel();\n                  this.clickApply();\n                }\n            }\n\n            if (this.singleDatePicker) {\n                this.setEndDate(this.startDate);\n                if (!this.timePicker && this.autoApply)\n                    this.clickApply();\n            }\n\n            this.updateView();\n\n            //This is to cancel the blur event handler if the mouse was in one of the inputs\n            e.stopPropagation();\n\n        },\n\n        calculateChosenLabel: function () {\n            var customRange = true;\n            var i = 0;\n            for (var range in this.ranges) {\n              if (this.timePicker) {\n                    var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\n                    //ignore times when comparing dates if time picker seconds is not enabled\n                    if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n                        break;\n                    }\n                } else {\n                    //ignore times when comparing dates if time picker is not enabled\n                    if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n                        break;\n                    }\n                }\n                i++;\n            }\n            if (customRange) {\n                if (this.showCustomRangeLabel) {\n                    this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\n                } else {\n                    this.chosenLabel = null;\n                }\n                this.showCalendars();\n            }\n        },\n\n        clickApply: function(e) {\n            this.hide();\n            this.element.trigger('apply.daterangepicker', this);\n        },\n\n        clickCancel: function(e) {\n            this.startDate = this.oldStartDate;\n            this.endDate = this.oldEndDate;\n            this.hide();\n            this.element.trigger('cancel.daterangepicker', this);\n        },\n\n        monthOrYearChanged: function(e) {\n            var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\n                leftOrRight = isLeft ? 'left' : 'right',\n                cal = this.container.find('.drp-calendar.'+leftOrRight);\n\n            // Month must be Number for new moment versions\n            var month = parseInt(cal.find('.monthselect').val(), 10);\n            var year = cal.find('.yearselect').val();\n\n            if (!isLeft) {\n                if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\n                    month = this.startDate.month();\n                    year = this.startDate.year();\n                }\n            }\n\n            if (this.minDate) {\n                if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\n                    month = this.minDate.month();\n                    year = this.minDate.year();\n                }\n            }\n\n            if (this.maxDate) {\n                if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\n                    month = this.maxDate.month();\n                    year = this.maxDate.year();\n                }\n            }\n\n            if (isLeft) {\n                this.leftCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n            } else {\n                this.rightCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        timeChanged: function(e) {\n\n            var cal = $(e.target).closest('.drp-calendar'),\n                isLeft = cal.hasClass('left');\n\n            var hour = parseInt(cal.find('.hourselect').val(), 10);\n            var minute = parseInt(cal.find('.minuteselect').val(), 10);\n            if (isNaN(minute)) {\n                minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\n            }\n            var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\n\n            if (!this.timePicker24Hour) {\n                var ampm = cal.find('.ampmselect').val();\n                if (ampm === 'PM' && hour < 12)\n                    hour += 12;\n                if (ampm === 'AM' && hour === 12)\n                    hour = 0;\n            }\n\n            if (isLeft) {\n                var start = this.startDate.clone();\n                start.hour(hour);\n                start.minute(minute);\n                start.second(second);\n                this.setStartDate(start);\n                if (this.singleDatePicker) {\n                    this.endDate = this.startDate.clone();\n                } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\n                    this.setEndDate(start.clone());\n                }\n            } else if (this.endDate) {\n                var end = this.endDate.clone();\n                end.hour(hour);\n                end.minute(minute);\n                end.second(second);\n                this.setEndDate(end);\n            }\n\n            //update the calendars so all clickable dates reflect the new time component\n            this.updateCalendars();\n\n            //update the form inputs above the calendars with the new time\n            this.updateFormInputs();\n\n            //re-render the time pickers because changing one selection can affect what's enabled in another\n            this.renderTimePicker('left');\n            this.renderTimePicker('right');\n\n        },\n\n        elementChanged: function() {\n            if (!this.element.is('input')) return;\n            if (!this.element.val().length) return;\n\n            var dateString = this.element.val().split(this.locale.separator),\n                start = null,\n                end = null;\n\n            if (dateString.length === 2) {\n                start = moment(dateString[0], this.locale.format);\n                end = moment(dateString[1], this.locale.format);\n            }\n\n            if (this.singleDatePicker || start === null || end === null) {\n                start = moment(this.element.val(), this.locale.format);\n                end = start;\n            }\n\n            if (!start.isValid() || !end.isValid()) return;\n\n            this.setStartDate(start);\n            this.setEndDate(end);\n            this.updateView();\n        },\n\n        keydown: function(e) {\n            //hide on tab or enter\n            if ((e.keyCode === 9) || (e.keyCode === 13)) {\n                this.hide();\n            }\n\n            //hide on esc and prevent propagation\n            if (e.keyCode === 27) {\n                e.preventDefault();\n                e.stopPropagation();\n\n                this.hide();\n            }\n        },\n\n        updateElement: function() {\n            if (this.element.is('input') && this.autoUpdateInput) {\n                var newValue = this.startDate.format(this.locale.format);\n                if (!this.singleDatePicker) {\n                    newValue += this.locale.separator + this.endDate.format(this.locale.format);\n                }\n                if (newValue !== this.element.val()) {\n                    this.element.val(newValue).trigger('change');\n                }\n            }\n        },\n\n        remove: function() {\n            this.container.remove();\n            this.element.off('.daterangepicker');\n            this.element.removeData();\n        }\n\n    };\n\n    $.fn.daterangepicker = function(options, callback) {\n        var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\n        this.each(function() {\n            var el = $(this);\n            if (el.data('daterangepicker'))\n                el.data('daterangepicker').remove();\n            el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\n        });\n        return this;\n    };\n\n    return DateRangePicker;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/basic.css",
    "content": ".dropzone, .dropzone * {\n  box-sizing: border-box;\n}\n\n.dropzone {\n  position: relative;\n}\n.dropzone .dz-preview {\n  position: relative;\n  display: inline-block;\n  width: 120px;\n  margin: 0.5em;\n}\n.dropzone .dz-preview .dz-progress {\n  display: block;\n  height: 15px;\n  border: 1px solid #aaa;\n}\n.dropzone .dz-preview .dz-progress .dz-upload {\n  display: block;\n  height: 100%;\n  width: 0;\n  background: green;\n}\n.dropzone .dz-preview .dz-error-message {\n  color: red;\n  display: none;\n}\n.dropzone .dz-preview.dz-error .dz-error-message, .dropzone .dz-preview.dz-error .dz-error-mark {\n  display: block;\n}\n.dropzone .dz-preview.dz-success .dz-success-mark {\n  display: block;\n}\n.dropzone .dz-preview .dz-error-mark, .dropzone .dz-preview .dz-success-mark {\n  position: absolute;\n  display: none;\n  left: 30px;\n  top: 30px;\n  width: 54px;\n  height: 58px;\n  left: 50%;\n  margin-left: -27px;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/dropzone-amd-module.js",
    "content": "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 3099:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 6077:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 1223:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar create = __webpack_require__(30);\nvar definePropertyModule = __webpack_require__(3070);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ 1530:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ 5787:\n/***/ (function(module) {\n\nmodule.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 9670:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 4019:\n/***/ (function(module) {\n\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar defineProperty = __webpack_require__(3070).f;\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar uid = __webpack_require__(9711);\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n\n/***/ 3331:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefineAll = __webpack_require__(2248);\nvar fails = __webpack_require__(7293);\nvar anInstance = __webpack_require__(5787);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar IEEE754 = __webpack_require__(1179);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar defineProperty = __webpack_require__(3070).f;\nvar arrayFill = __webpack_require__(1285);\nvar setToStringTag = __webpack_require__(8003);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = bytes.slice(start, start + count);\n  return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: arrayFill.call(new Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  /* eslint-disable no-new -- required for testing */\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1);\n  }) || fails(function () {\n    new NativeArrayBuffer();\n    new NativeArrayBuffer(1.5);\n    new NativeArrayBuffer(NaN);\n    return NativeArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n  /* eslint-enable no-new -- required for testing */\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) {\n        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n      }\n    }\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf($DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var nativeSetInt8 = $DataViewPrototype.setInt8;\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n\n\n/***/ }),\n\n/***/ 1048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n\n\n/***/ }),\n\n/***/ 1285:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 8533:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(2092).forEach;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ 8457:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(9974);\nvar toObject = __webpack_require__(7908);\nvar callWithSafeIterationClosing = __webpack_require__(3411);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar getIteratorMethod = __webpack_require__(1246);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 1318:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 2092:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(9974);\nvar IndexedObject = __webpack_require__(8361);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar arraySpeciesCreate = __webpack_require__(5417);\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_OUT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push.call(target, value); // filterOut\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterOut` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterOut: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ 6583:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = toLength(O.length);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : nativeLastIndexOf;\n\n\n/***/ }),\n\n/***/ 1194:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n\n\n/***/ }),\n\n/***/ 9341:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n\n\n/***/ }),\n\n/***/ 3671:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 5417:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ 3411:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar iteratorClose = __webpack_require__(9212);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    iteratorClose(iterator);\n    throw error;\n  }\n};\n\n\n/***/ }),\n\n/***/ 7072:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ 4326:\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ 648:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classofRaw = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ 9920:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar ownKeys = __webpack_require__(3887);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar definePropertyModule = __webpack_require__(3070);\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n\n\n/***/ }),\n\n/***/ 8544:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ 4994:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(3383).IteratorPrototype;\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar setToStringTag = __webpack_require__(8003);\nvar Iterators = __webpack_require__(7497);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ 8880:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ 9114:\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ 6135:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(7593);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ 654:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar setToStringTag = __webpack_require__(8003);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\nvar Iterators = __webpack_require__(7497);\nvar IteratorsCore = __webpack_require__(3383);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n\n\n/***/ }),\n\n/***/ 9781:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ 317:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ 8324:\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ 8113:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ 7392:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar userAgent = __webpack_require__(8113);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ 748:\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n/***/ }),\n\n/***/ 2109:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar getOwnPropertyDescriptor = __webpack_require__(1236).f;\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar setGlobal = __webpack_require__(3505);\nvar copyConstructorProperties = __webpack_require__(9920);\nvar isForced = __webpack_require__(4705);\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n\n\n/***/ }),\n\n/***/ 7293:\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ 7007:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(4916);\nvar redefine = __webpack_require__(1320);\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar regexpExec = __webpack_require__(2261);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !(\n      REPLACE_SUPPORTS_NAMED_GROUPS &&\n      REPLACE_KEEPS_$0 &&\n      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    )) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      if (regexp.exec === regexpExec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n        }\n        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n      }\n      return { done: false };\n    }, {\n      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    });\n    var stringMethod = methods[0];\n    var regexMethod = methods[1];\n\n    redefine(String.prototype, KEY, stringMethod);\n    redefine(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return regexMethod.call(string, this); }\n    );\n  }\n\n  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n\n/***/ 9974:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ 5005:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(857);\nvar global = __webpack_require__(7854);\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ 1246:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(648);\nvar Iterators = __webpack_require__(7497);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ 8554:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar getIteratorMethod = __webpack_require__(1246);\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n\n\n/***/ }),\n\n/***/ 647:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace.call(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (ch.charAt(0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return str.slice(0, position);\n      case \"'\": return str.slice(tailPos);\n      case '<':\n        capture = namedCaptures[ch.slice(1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n/***/ }),\n\n/***/ 7854:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  /* global globalThis -- safe */\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ 6656:\n/***/ (function(module) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ 3501:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 490:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ 4664:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar createElement = __webpack_require__(317);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ 1179:\n/***/ (function(module) {\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = new Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    if (number * (c = pow(2, -exponent)) < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n\n\n/***/ }),\n\n/***/ 8361:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar classof = __webpack_require__(4326);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ 9587:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar setPrototypeOf = __webpack_require__(7674);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n/***/ }),\n\n/***/ 2788:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(5465);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ 9909:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8536);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar objectHas = __webpack_require__(6656);\nvar shared = __webpack_require__(5465);\nvar sharedKey = __webpack_require__(6200);\nvar hiddenKeys = __webpack_require__(3501);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ 7659:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar Iterators = __webpack_require__(7497);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ 3157:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ 4705:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ 111:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ 1913:\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ 7850:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar classof = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ 9212:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\n\nmodule.exports = function (iterator) {\n  var returnMethod = iterator['return'];\n  if (returnMethod !== undefined) {\n    return anObject(returnMethod.call(iterator)).value;\n  }\n};\n\n\n/***/ }),\n\n/***/ 3383:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\nvar getPrototypeOf = __webpack_require__(9518);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ 7497:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  /* global Symbol -- required for testing */\n  return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ 590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n\n/***/ 8536:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar inspectSource = __webpack_require__(2788);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ 1574:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar objectKeys = __webpack_require__(1956);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  /* global Symbol -- required for testing */\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar defineProperties = __webpack_require__(6048);\nvar enumBugKeys = __webpack_require__(748);\nvar hiddenKeys = __webpack_require__(3501);\nvar html = __webpack_require__(490);\nvar documentCreateElement = __webpack_require__(317);\nvar sharedKey = __webpack_require__(6200);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject -- old IE */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ 6048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar anObject = __webpack_require__(9670);\nvar objectKeys = __webpack_require__(1956);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 3070:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\nvar anObject = __webpack_require__(9670);\nvar toPrimitive = __webpack_require__(7593);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 1236:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar toIndexedObject = __webpack_require__(5656);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ 8006:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ 5181:\n/***/ (function(__unused_webpack_module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ 9518:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toObject = __webpack_require__(7908);\nvar sharedKey = __webpack_require__(6200);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ 6324:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toIndexedObject = __webpack_require__(5656);\nvar indexOf = __webpack_require__(1318).indexOf;\nvar hiddenKeys = __webpack_require__(3501);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 1956:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ 5296:\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ 7674:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(9670);\nvar aPossiblePrototype = __webpack_require__(6077);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classof = __webpack_require__(648);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ 3887:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\nvar getOwnPropertyNamesModule = __webpack_require__(8006);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar anObject = __webpack_require__(9670);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ 2248:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(1320);\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n\n\n/***/ }),\n\n/***/ 1320:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar setGlobal = __webpack_require__(3505);\nvar inspectSource = __webpack_require__(2788);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var state;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) {\n      createNonEnumerableProperty(value, 'name', key);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ 7651:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\nvar regexpExec = __webpack_require__(2261);\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n\n  if (classof(R) !== 'RegExp') {\n    throw TypeError('RegExp#exec called on incompatible receiver');\n  }\n\n  return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ 2261:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpFlags = __webpack_require__(7066);\nvar stickyHelpers = __webpack_require__(2999);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\n// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = regexpFlags.call(re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = flags.replace('y', '');\n      if (flags.indexOf('g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = String(str).slice(re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = match.input.slice(charsAdded);\n        match[0] = match[0].slice(charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ 7066:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(9670);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 2999:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fails = __webpack_require__(7293);\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n  return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n  var re = RE('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = RE('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\n\n/***/ }),\n\n/***/ 4488:\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ 3505:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n\n\n/***/ }),\n\n/***/ 6340:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(5005);\nvar definePropertyModule = __webpack_require__(3070);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar DESCRIPTORS = __webpack_require__(9781);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n\n\n/***/ }),\n\n/***/ 8003:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(3070).f;\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n\n/***/ }),\n\n/***/ 6200:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(2309);\nvar uid = __webpack_require__(9711);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ 5465:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar setGlobal = __webpack_require__(3505);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ 2309:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(1913);\nvar store = __webpack_require__(5465);\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.9.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ 6707:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar aFunction = __webpack_require__(3099);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n\n/***/ 8710:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 3197:\n/***/ (function(module) {\n\n\"use strict\";\n\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n\n\n/***/ }),\n\n/***/ 6091:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar whitespaces = __webpack_require__(1361);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n\n\n/***/ }),\n\n/***/ 3111:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\nvar whitespaces = __webpack_require__(1361);\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ 1400:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ 7067:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n\n\n/***/ }),\n\n/***/ 5656:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(8361);\nvar requireObjectCoercible = __webpack_require__(4488);\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ 9958:\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ 7466:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ 7908:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ 4590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(3002);\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n\n\n/***/ }),\n\n/***/ 3002:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nmodule.exports = function (it) {\n  var result = toInteger(it);\n  if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 7593:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ 1694:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ 9843:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayBufferModule = __webpack_require__(3331);\nvar anInstance = __webpack_require__(5787);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar toOffset = __webpack_require__(4590);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar typedArrayFrom = __webpack_require__(7321);\nvar forEach = __webpack_require__(2092).forEach;\nvar setSpecies = __webpack_require__(6340);\nvar definePropertyModule = __webpack_require__(3070);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar InternalStateModule = __webpack_require__(9909);\nvar inheritIfRequired = __webpack_require__(9587);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && typeof key != 'symbol'\n    && key in target\n    && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  return isTypedArrayIndex(target, key = toPrimitive(key, true))\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n    && isObject(descriptor)\n    && has(descriptor, 'value')\n    && !has(descriptor, 'get')\n    && !has(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!has(descriptor, 'writable') || descriptor.writable)\n    && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ 3832:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-new -- required for testing */\nvar global = __webpack_require__(7854);\nvar fails = __webpack_require__(7293);\nvar checkCorrectnessOfIteration = __webpack_require__(7072);\nvar NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n\n\n/***/ }),\n\n/***/ 3074:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\nvar speciesConstructor = __webpack_require__(6707);\n\nmodule.exports = function (instance, list) {\n  var C = speciesConstructor(instance, instance.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 7321:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar getIteratorMethod = __webpack_require__(1246);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar bind = __webpack_require__(9974);\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator, next;\n  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    O = [];\n    while (!(step = next.call(iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2], 2);\n  }\n  length = toLength(O.length);\n  result = new (aTypedArrayConstructor(this))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 9711:\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ 3307:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(133);\n\nmodule.exports = NATIVE_SYMBOL\n  /* global Symbol -- safe */\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ 5112:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar shared = __webpack_require__(2309);\nvar has = __webpack_require__(6656);\nvar uid = __webpack_require__(9711);\nvar NATIVE_SYMBOL = __webpack_require__(133);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3307);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ 1361:\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ 8264:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar arrayBufferModule = __webpack_require__(3331);\nvar setSpecies = __webpack_require__(6340);\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n\n\n/***/ }),\n\n/***/ 2222:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar isArray = __webpack_require__(3157);\nvar isObject = __webpack_require__(111);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n\n\n/***/ }),\n\n/***/ 7327:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $filter = __webpack_require__(2092).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 2772:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $indexOf = __webpack_require__(1318).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 6992:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar addToUnscopables = __webpack_require__(1223);\nvar Iterators = __webpack_require__(7497);\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ 1249:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $map = __webpack_require__(2092).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 7042:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\nvar toIndexedObject = __webpack_require__(5656);\nvar createProperty = __webpack_require__(6135);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n\n\n/***/ }),\n\n/***/ 561:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toObject = __webpack_require__(7908);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar createProperty = __webpack_require__(6135);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = toLength(O.length);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n\n\n/***/ }),\n\n/***/ 8309:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar defineProperty = __webpack_require__(3070).f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n\n\n/***/ }),\n\n/***/ 489:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar toObject = __webpack_require__(7908);\nvar nativeGetPrototypeOf = __webpack_require__(9518);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n\n\n/***/ }),\n\n/***/ 1539:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar redefine = __webpack_require__(1320);\nvar toString = __webpack_require__(288);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 4916:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar exec = __webpack_require__(2261);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n\n\n/***/ }),\n\n/***/ 9714:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(1320);\nvar anObject = __webpack_require__(9670);\nvar fails = __webpack_require__(7293);\nvar flags = __webpack_require__(7066);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 8783:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ 4723:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar regExpExec = __webpack_require__(7651);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : regexp[MATCH];\n      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative(nativeMatch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n\n\n/***/ }),\n\n/***/ 5306:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar getSubstitution = __webpack_require__(647);\nvar regExpExec = __webpack_require__(7651);\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return replacer !== undefined\n        ? replacer.call(searchValue, O, replaceValue)\n        : nativeReplace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      if (\n        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n      ) {\n        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        results.push(result);\n        if (!global) break;\n\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n});\n\n\n/***/ }),\n\n/***/ 3123:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar isRegExp = __webpack_require__(7850);\nvar anObject = __webpack_require__(9670);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar speciesConstructor = __webpack_require__(6707);\nvar advanceStringIndex = __webpack_require__(1530);\nvar toLength = __webpack_require__(7466);\nvar callRegExpExec = __webpack_require__(7651);\nvar regexpExec = __webpack_require__(2261);\nvar fails = __webpack_require__(7293);\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    // eslint-disable-next-line regexp/no-empty-group -- required for testing\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return nativeSplit.call(string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output.length > lim ? output.slice(0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n}, !SUPPORTS_Y);\n\n\n/***/ }),\n\n/***/ 3210:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $trim = __webpack_require__(3111).trim;\nvar forcedStringTrimMethod = __webpack_require__(6091);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n\n\n/***/ }),\n\n/***/ 2990:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $copyWithin = __webpack_require__(1048);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 8927:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $every = __webpack_require__(2092).every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3105:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $fill = __webpack_require__(1285);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  return $fill.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 5035:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $filter = __webpack_require__(2092).filter;\nvar fromSpeciesAndList = __webpack_require__(3074);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSpeciesAndList(this, list);\n});\n\n\n/***/ }),\n\n/***/ 7174:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $findIndex = __webpack_require__(2092).findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4345:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $find = __webpack_require__(2092).find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2846:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $forEach = __webpack_require__(2092).forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4731:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $includes = __webpack_require__(1318).includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 7209:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $indexOf = __webpack_require__(1318).indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 6319:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayIterators = __webpack_require__(6992);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n  return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n\n/***/ 8867:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n  return $join.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 7789:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $lastIndexOf = __webpack_require__(6583);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 3739:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $map = __webpack_require__(2092).map;\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n  });\n});\n\n\n/***/ }),\n\n/***/ 4483:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduceRight = __webpack_require__(3671).right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 9368:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduce = __webpack_require__(3671).left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2056:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n\n\n/***/ }),\n\n/***/ 3462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toOffset = __webpack_require__(4590);\nvar toObject = __webpack_require__(7908);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  /* global Int8Array -- safe */\n  new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var length = this.length;\n  var src = toObject(arrayLike);\n  var len = toLength(src.length);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 678:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar speciesConstructor = __webpack_require__(6707);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  /* global Int8Array -- safe */\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 7462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $some = __webpack_require__(2092).some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3824:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n\n/***/ 5021:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  return new (speciesConstructor(O, O.constructor))(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n\n\n/***/ }),\n\n/***/ 2974:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar fails = __webpack_require__(7293);\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 5016:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod;\nvar fails = __webpack_require__(7293);\nvar global = __webpack_require__(7854);\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return arrayJoin.call(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n\n/***/ 2472:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(9843);\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n\n/***/ }),\n\n/***/ 4747:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar forEach = __webpack_require__(8533);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n}\n\n\n/***/ }),\n\n/***/ 3948:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar ArrayIteratorMethods = __webpack_require__(6992);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n\n\n/***/ }),\n\n/***/ 1637:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(6992);\nvar $ = __webpack_require__(2109);\nvar getBuiltIn = __webpack_require__(5005);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar redefine = __webpack_require__(1320);\nvar redefineAll = __webpack_require__(2248);\nvar setToStringTag = __webpack_require__(8003);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar InternalStateModule = __webpack_require__(9909);\nvar anInstance = __webpack_require__(5787);\nvar hasOwn = __webpack_require__(6656);\nvar bind = __webpack_require__(9974);\nvar classof = __webpack_require__(648);\nvar anObject = __webpack_require__(9670);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar getIterator = __webpack_require__(8554);\nvar getIteratorMethod = __webpack_require__(1246);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.append` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(8783);\nvar $ = __webpack_require__(2109);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar global = __webpack_require__(7854);\nvar defineProperties = __webpack_require__(6048);\nvar redefine = __webpack_require__(1320);\nvar anInstance = __webpack_require__(5787);\nvar has = __webpack_require__(6656);\nvar assign = __webpack_require__(1574);\nvar arrayFrom = __webpack_require__(8457);\nvar codeAt = __webpack_require__(8710).codeAt;\nvar toASCII = __webpack_require__(3197);\nvar setToStringTag = __webpack_require__(8003);\nvar URLSearchParamsModule = __webpack_require__(1637);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"Dropzone\": function() { return /* reexport */ Dropzone; },\n  \"default\": function() { return /* binding */ dropzone_dist; }\n});\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js\nvar es_array_concat = __webpack_require__(2222);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js\nvar es_array_filter = __webpack_require__(7327);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js\nvar es_array_index_of = __webpack_require__(2772);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__(6992);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js\nvar es_array_map = __webpack_require__(1249);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__(7042);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js\nvar es_array_splice = __webpack_require__(561);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js\nvar es_array_buffer_constructor = __webpack_require__(8264);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__(8309);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js\nvar es_object_get_prototype_of = __webpack_require__(489);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__(1539);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js\nvar es_regexp_exec = __webpack_require__(4916);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js\nvar es_regexp_to_string = __webpack_require__(9714);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__(8783);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js\nvar es_string_match = __webpack_require__(4723);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js\nvar es_string_replace = __webpack_require__(5306);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js\nvar es_string_split = __webpack_require__(3123);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js\nvar es_string_trim = __webpack_require__(3210);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js\nvar es_typed_array_uint8_array = __webpack_require__(2472);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js\nvar es_typed_array_copy_within = __webpack_require__(2990);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js\nvar es_typed_array_every = __webpack_require__(8927);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js\nvar es_typed_array_fill = __webpack_require__(3105);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js\nvar es_typed_array_filter = __webpack_require__(5035);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js\nvar es_typed_array_find = __webpack_require__(4345);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js\nvar es_typed_array_find_index = __webpack_require__(7174);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js\nvar es_typed_array_for_each = __webpack_require__(2846);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js\nvar es_typed_array_includes = __webpack_require__(4731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js\nvar es_typed_array_index_of = __webpack_require__(7209);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js\nvar es_typed_array_iterator = __webpack_require__(6319);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js\nvar es_typed_array_join = __webpack_require__(8867);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js\nvar es_typed_array_last_index_of = __webpack_require__(7789);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js\nvar es_typed_array_map = __webpack_require__(3739);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js\nvar es_typed_array_reduce = __webpack_require__(9368);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js\nvar es_typed_array_reduce_right = __webpack_require__(4483);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js\nvar es_typed_array_reverse = __webpack_require__(2056);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js\nvar es_typed_array_set = __webpack_require__(3462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js\nvar es_typed_array_slice = __webpack_require__(678);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js\nvar es_typed_array_some = __webpack_require__(7462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js\nvar es_typed_array_sort = __webpack_require__(3824);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js\nvar es_typed_array_subarray = __webpack_require__(5021);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js\nvar es_typed_array_to_locale_string = __webpack_require__(2974);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js\nvar es_typed_array_to_string = __webpack_require__(5016);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js\nvar web_dom_collections_for_each = __webpack_require__(4747);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__(3948);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js\nvar web_url = __webpack_require__(285);\n;// CONCATENATED MODULE: ./src/emitter.js\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nvar Emitter = /*#__PURE__*/function () {\n  function Emitter() {\n    _classCallCheck(this, Emitter);\n  }\n\n  _createClass(Emitter, [{\n    key: \"on\",\n    value: // Add an event listener for given event\n    function on(event, fn) {\n      this._callbacks = this._callbacks || {}; // Create namespace for this event\n\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n\n      this._callbacks[event].push(fn);\n\n      return this;\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      this._callbacks = this._callbacks || {};\n      var callbacks = this._callbacks[event];\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (callbacks) {\n        var _iterator = _createForOfIteratorHelper(callbacks, true),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var callback = _step.value;\n            callback.apply(this, args);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      } // trigger a corresponding DOM event\n\n\n      if (this.element) {\n        this.element.dispatchEvent(this.makeEvent(\"dropzone:\" + event, {\n          args: args\n        }));\n      }\n\n      return this;\n    }\n  }, {\n    key: \"makeEvent\",\n    value: function makeEvent(eventName, detail) {\n      var params = {\n        bubbles: true,\n        cancelable: true,\n        detail: detail\n      };\n\n      if (typeof window.CustomEvent === \"function\") {\n        return new CustomEvent(eventName, params);\n      } else {\n        // IE 11 support\n        // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n        var evt = document.createEvent(\"CustomEvent\");\n        evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);\n        return evt;\n      }\n    } // Remove event listener for given event. If fn is not provided, all event\n    // listeners for that event will be removed. If neither is provided, all\n    // event listeners will be removed.\n\n  }, {\n    key: \"off\",\n    value: function off(event, fn) {\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      } // specific event\n\n\n      var callbacks = this._callbacks[event];\n\n      if (!callbacks) {\n        return this;\n      } // remove all handlers\n\n\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      } // remove specific handler\n\n\n      for (var i = 0; i < callbacks.length; i++) {\n        var callback = callbacks[i];\n\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n\n      return this;\n    }\n  }]);\n\n  return Emitter;\n}();\n\n\n;// CONCATENATED MODULE: ./src/preview-template.html\n// Module\nvar code = \"<div class=\\\"dz-preview dz-file-preview\\\"> <div class=\\\"dz-image\\\"><img data-dz-thumbnail/></div> <div class=\\\"dz-details\\\"> <div class=\\\"dz-size\\\"><span data-dz-size></span></div> <div class=\\\"dz-filename\\\"><span data-dz-name></span></div> </div> <div class=\\\"dz-progress\\\"> <span class=\\\"dz-upload\\\" data-dz-uploadprogress></span> </div> <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div> <div class=\\\"dz-success-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Check</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\"></path> </g> </svg> </div> <div class=\\\"dz-error-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Error</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\"> <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\"></path> </g> </g> </svg> </div> </div> \";\n// Exports\n/* harmony default export */ var preview_template = (code);\n;// CONCATENATED MODULE: ./src/options.js\n\n\n\n\n\nfunction options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); }\n\nfunction options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\nvar defaultOptions = {\n  /**\n   * Has to be specified on elements other than form (or when the form\n   * doesn't have an `action` attribute). You can also\n   * provide a function that will be called with `files` and\n   * must return the url (since `v3.12.0`)\n   */\n  url: null,\n\n  /**\n   * Can be changed to `\"put\"` if necessary. You can also provide a function\n   * that will be called with `files` and must return the method (since `v3.12.0`).\n   */\n  method: \"post\",\n\n  /**\n   * Will be set on the XHRequest.\n   */\n  withCredentials: false,\n\n  /**\n   * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n   */\n  timeout: 30000,\n\n  /**\n   * How many file uploads to process in parallel (See the\n   * Enqueuing file uploads documentation section for more info)\n   */\n  parallelUploads: 2,\n\n  /**\n   * Whether to send multiple files in one request. If\n   * this it set to true, then the fallback file input element will\n   * have the `multiple` attribute as well. This option will\n   * also trigger additional events (like `processingmultiple`). See the events\n   * documentation section for more information.\n   */\n  uploadMultiple: false,\n\n  /**\n   * Whether you want files to be uploaded in chunks to your server. This can't be\n   * used in combination with `uploadMultiple`.\n   *\n   * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n   */\n  chunking: false,\n\n  /**\n   * If `chunking` is enabled, this defines whether **every** file should be chunked,\n   * even if the file size is below chunkSize. This means, that the additional chunk\n   * form data will be submitted and the `chunksUploaded` callback will be invoked.\n   */\n  forceChunking: false,\n\n  /**\n   * If `chunking` is `true`, then this defines the chunk size in bytes.\n   */\n  chunkSize: 2000000,\n\n  /**\n   * If `true`, the individual chunks of a file are being uploaded simultaneously.\n   */\n  parallelChunkUploads: false,\n\n  /**\n   * Whether a chunk should be retried if it fails.\n   */\n  retryChunks: false,\n\n  /**\n   * If `retryChunks` is true, how many times should it be retried.\n   */\n  retryChunksLimit: 3,\n\n  /**\n   * The maximum filesize (in bytes) that is allowed to be uploaded.\n   */\n  maxFilesize: 256,\n\n  /**\n   * The name of the file param that gets transferred.\n   * **NOTE**: If you have the option  `uploadMultiple` set to `true`, then\n   * Dropzone will append `[]` to the name.\n   */\n  paramName: \"file\",\n\n  /**\n   * Whether thumbnails for images should be generated\n   */\n  createImageThumbnails: true,\n\n  /**\n   * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n   */\n  maxThumbnailFilesize: 10,\n\n  /**\n   * If `null`, the ratio of the image will be used to calculate it.\n   */\n  thumbnailWidth: 120,\n\n  /**\n   * The same as `thumbnailWidth`. If both are null, images will not be resized.\n   */\n  thumbnailHeight: 120,\n\n  /**\n   * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  thumbnailMethod: \"crop\",\n\n  /**\n   * If set, images will be resized to these dimensions before being **uploaded**.\n   * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n   * ratio of the file will be preserved.\n   *\n   * The `options.transformFile` function uses these options, so if the `transformFile` function\n   * is overridden, these options don't do anything.\n   */\n  resizeWidth: null,\n\n  /**\n   * See `resizeWidth`.\n   */\n  resizeHeight: null,\n\n  /**\n   * The mime type of the resized image (before it gets uploaded to the server).\n   * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n   * See `resizeWidth` for more information.\n   */\n  resizeMimeType: null,\n\n  /**\n   * The quality of the resized images. See `resizeWidth`.\n   */\n  resizeQuality: 0.8,\n\n  /**\n   * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  resizeMethod: \"contain\",\n\n  /**\n   * The base that is used to calculate the **displayed** filesize. You can\n   * change this to 1024 if you would rather display kibibytes, mebibytes,\n   * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n   * not `1 kilobyte`. You can change this to `1024` if you don't care about\n   * validity.\n   */\n  filesizeBase: 1000,\n\n  /**\n   * If not `null` defines how many files this Dropzone handles. If it exceeds,\n   * the event `maxfilesexceeded` will be called. The dropzone element gets the\n   * class `dz-max-files-reached` accordingly so you can provide visual\n   * feedback.\n   */\n  maxFiles: null,\n\n  /**\n   * An optional object to send additional headers to the server. Eg:\n   * `{ \"My-Awesome-Header\": \"header value\" }`\n   */\n  headers: null,\n\n  /**\n   * If `true`, the dropzone element itself will be clickable, if `false`\n   * nothing will be clickable.\n   *\n   * You can also pass an HTML element, a CSS selector (for multiple elements)\n   * or an array of those. In that case, all of those elements will trigger an\n   * upload when clicked.\n   */\n  clickable: true,\n\n  /**\n   * Whether hidden files in directories should be ignored.\n   */\n  ignoreHiddenFiles: true,\n\n  /**\n   * The default implementation of `accept` checks the file's mime type or\n   * extension against this list. This is a comma separated list of mime\n   * types or file extensions.\n   *\n   * Eg.: `image/*,application/pdf,.psd`\n   *\n   * If the Dropzone is `clickable` this option will also be used as\n   * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n   * parameter on the hidden file input as well.\n   */\n  acceptedFiles: null,\n\n  /**\n   * **Deprecated!**\n   * Use acceptedFiles instead.\n   */\n  acceptedMimeTypes: null,\n\n  /**\n   * If false, files will be added to the queue but the queue will not be\n   * processed automatically.\n   * This can be useful if you need some additional user input before sending\n   * files (or if you want want all files sent at once).\n   * If you're ready to send the file simply call `myDropzone.processQueue()`.\n   *\n   * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n   * section for more information.\n   */\n  autoProcessQueue: true,\n\n  /**\n   * If false, files added to the dropzone will not be queued by default.\n   * You'll have to call `enqueueFile(file)` manually.\n   */\n  autoQueue: true,\n\n  /**\n   * If `true`, this will add a link to every file preview to remove or cancel (if\n   * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n   * and `dictRemoveFile` options are used for the wording.\n   */\n  addRemoveLinks: false,\n\n  /**\n   * Defines where to display the file previews – if `null` the\n   * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n   * selector. The element should have the `dropzone-previews` class so\n   * the previews are displayed properly.\n   */\n  previewsContainer: null,\n\n  /**\n   * Set this to `true` if you don't want previews to be shown.\n   */\n  disablePreviews: false,\n\n  /**\n   * This is the element the hidden input field (which is used when clicking on the\n   * dropzone to trigger file selection) will be appended to. This might\n   * be important in case you use frameworks to switch the content of your page.\n   *\n   * Can be a selector string, or an element directly.\n   */\n  hiddenInputContainer: \"body\",\n\n  /**\n   * If null, no capture type will be specified\n   * If camera, mobile devices will skip the file selection and choose camera\n   * If microphone, mobile devices will skip the file selection and choose the microphone\n   * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n   * On apple devices multiple must be set to false.  AcceptedFiles may need to\n   * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n   */\n  capture: null,\n\n  /**\n   * **Deprecated**. Use `renameFile` instead.\n   */\n  renameFilename: null,\n\n  /**\n   * A function that is invoked before the file is uploaded to the server and renames the file.\n   * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n   * file that gets used during the upload can be accessed through `file.upload.filename`.\n   */\n  renameFile: null,\n\n  /**\n   * If `true` the fallback will be forced. This is very useful to test your server\n   * implementations first and make sure that everything works as\n   * expected without dropzone if you experience problems, and to test\n   * how your fallbacks will look.\n   */\n  forceFallback: false,\n\n  /**\n   * The text used before any files are dropped.\n   */\n  dictDefaultMessage: \"Drop files here to upload\",\n\n  /**\n   * The text that replaces the default message text it the browser is not supported.\n   */\n  dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n  /**\n   * The text that will be added before the fallback form.\n   * If you provide a  fallback element yourself, or if this option is `null` this will\n   * be ignored.\n   */\n  dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n  /**\n   * If the filesize is too big.\n   * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n   */\n  dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n  /**\n   * If the file doesn't match the file type.\n   */\n  dictInvalidFileType: \"You can't upload files of this type.\",\n\n  /**\n   * If the server response was invalid.\n   * `{{statusCode}}` will be replaced with the servers status code.\n   */\n  dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n   */\n  dictCancelUpload: \"Cancel upload\",\n\n  /**\n   * The text that is displayed if an upload was manually canceled\n   */\n  dictUploadCanceled: \"Upload canceled.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n   */\n  dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used to remove a file.\n   */\n  dictRemoveFile: \"Remove file\",\n\n  /**\n   * If this is not null, then the user will be prompted before removing a file.\n   */\n  dictRemoveFileConfirmation: null,\n\n  /**\n   * Displayed if `maxFiles` is st and exceeded.\n   * The string `{{maxFiles}}` will be replaced by the configuration value.\n   */\n  dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n  /**\n   * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n   * `b` for bytes.\n   */\n  dictFileSizeUnits: {\n    tb: \"TB\",\n    gb: \"GB\",\n    mb: \"MB\",\n    kb: \"KB\",\n    b: \"b\"\n  },\n\n  /**\n   * Called when dropzone initialized\n   * You can add event listeners here\n   */\n  init: function init() {},\n\n  /**\n   * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n   * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n   * of a function, this needs to return a map.\n   *\n   * The default implementation does nothing for normal uploads, but adds relevant information for\n   * chunked uploads.\n   *\n   * This is the same as adding hidden input fields in the form element.\n   */\n  params: function params(files, xhr, chunk) {\n    if (chunk) {\n      return {\n        dzuuid: chunk.file.upload.uuid,\n        dzchunkindex: chunk.index,\n        dztotalfilesize: chunk.file.size,\n        dzchunksize: this.options.chunkSize,\n        dztotalchunkcount: chunk.file.upload.totalChunkCount,\n        dzchunkbyteoffset: chunk.index * this.options.chunkSize\n      };\n    }\n  },\n\n  /**\n   * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n   * and a `done` function as parameters.\n   *\n   * If the done function is invoked without arguments, the file is \"accepted\" and will\n   * be processed. If you pass an error message, the file is rejected, and the error\n   * message will be displayed.\n   * This function will not be called if the file is too big or doesn't match the mime types.\n   */\n  accept: function accept(file, done) {\n    return done();\n  },\n\n  /**\n   * The callback that will be invoked when all chunks have been uploaded for a file.\n   * It gets the file for which the chunks have been uploaded as the first parameter,\n   * and the `done` function as second. `done()` needs to be invoked when everything\n   * needed to finish the upload process is done.\n   */\n  chunksUploaded: function chunksUploaded(file, done) {\n    done();\n  },\n\n  /**\n   * Gets called when the browser is not supported.\n   * The default implementation shows the fallback input field and adds\n   * a text.\n   */\n  fallback: function fallback() {\n    // This code should pass in IE7... :(\n    var messageElement;\n    this.element.className = \"\".concat(this.element.className, \" dz-browser-not-supported\");\n\n    var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName(\"div\"), true),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var child = _step.value;\n\n        if (/(^| )dz-message($| )/.test(child.className)) {\n          messageElement = child;\n          child.className = \"dz-message\"; // Removes the 'dz-default' class\n\n          break;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    if (!messageElement) {\n      messageElement = Dropzone.createElement('<div class=\"dz-message\"><span></span></div>');\n      this.element.appendChild(messageElement);\n    }\n\n    var span = messageElement.getElementsByTagName(\"span\")[0];\n\n    if (span) {\n      if (span.textContent != null) {\n        span.textContent = this.options.dictFallbackMessage;\n      } else if (span.innerText != null) {\n        span.innerText = this.options.dictFallbackMessage;\n      }\n    }\n\n    return this.element.appendChild(this.getFallbackForm());\n  },\n\n  /**\n   * Gets called to calculate the thumbnail dimensions.\n   *\n   * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n   *\n   *  - `srcWidth` & `srcHeight` (required)\n   *  - `trgWidth` & `trgHeight` (required)\n   *  - `srcX` & `srcY` (optional, default `0`)\n   *  - `trgX` & `trgY` (optional, default `0`)\n   *\n   * Those values are going to be used by `ctx.drawImage()`.\n   */\n  resize: function resize(file, width, height, resizeMethod) {\n    var info = {\n      srcX: 0,\n      srcY: 0,\n      srcWidth: file.width,\n      srcHeight: file.height\n    };\n    var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified\n\n    if (width == null && height == null) {\n      width = info.srcWidth;\n      height = info.srcHeight;\n    } else if (width == null) {\n      width = height * srcRatio;\n    } else if (height == null) {\n      height = width / srcRatio;\n    } // Make sure images aren't upscaled\n\n\n    width = Math.min(width, info.srcWidth);\n    height = Math.min(height, info.srcHeight);\n    var trgRatio = width / height;\n\n    if (info.srcWidth > width || info.srcHeight > height) {\n      // Image is bigger and needs rescaling\n      if (resizeMethod === \"crop\") {\n        if (srcRatio > trgRatio) {\n          info.srcHeight = file.height;\n          info.srcWidth = info.srcHeight * trgRatio;\n        } else {\n          info.srcWidth = file.width;\n          info.srcHeight = info.srcWidth / trgRatio;\n        }\n      } else if (resizeMethod === \"contain\") {\n        // Method 'contain'\n        if (srcRatio > trgRatio) {\n          height = width / srcRatio;\n        } else {\n          width = height * srcRatio;\n        }\n      } else {\n        throw new Error(\"Unknown resizeMethod '\".concat(resizeMethod, \"'\"));\n      }\n    }\n\n    info.srcX = (file.width - info.srcWidth) / 2;\n    info.srcY = (file.height - info.srcHeight) / 2;\n    info.trgWidth = width;\n    info.trgHeight = height;\n    return info;\n  },\n\n  /**\n   * Can be used to transform the file (for example, resize an image if necessary).\n   *\n   * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n   * images according to those dimensions.\n   *\n   * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n   * to be invoked with the file when the transformation is done.\n   */\n  transformFile: function transformFile(file, done) {\n    if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n      return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n    } else {\n      return done(file);\n    }\n  },\n\n  /**\n   * A string that contains the template used for each dropped\n   * file. Change it to fulfill your needs but make sure to properly\n   * provide all elements.\n   *\n   * If you want to use an actual HTML element instead of providing a String\n   * as a config option, you could create a div with the id `tpl`,\n   * put the template inside it and provide the element like this:\n   *\n   *     document\n   *       .querySelector('#tpl')\n   *       .innerHTML\n   *\n   */\n  previewTemplate: preview_template,\n\n  /*\n   Those functions register themselves to the events on init and handle all\n   the user interface specific stuff. Overwriting them won't break the upload\n   but can break the way it's displayed.\n   You can overwrite them if you don't like the default behavior. If you just\n   want to add an additional event handler, register it on the dropzone object\n   and don't overwrite those options.\n   */\n  // Those are self explanatory and simply concern the DragnDrop.\n  drop: function drop(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragstart: function dragstart(e) {},\n  dragend: function dragend(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragenter: function dragenter(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragover: function dragover(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragleave: function dragleave(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  paste: function paste(e) {},\n  // Called whenever there are no files left in the dropzone anymore, and the\n  // dropzone should be displayed as if in the initial state.\n  reset: function reset() {\n    return this.element.classList.remove(\"dz-started\");\n  },\n  // Called when a file is added to the queue\n  // Receives `file`\n  addedfile: function addedfile(file) {\n    var _this = this;\n\n    if (this.element === this.previewsContainer) {\n      this.element.classList.add(\"dz-started\");\n    }\n\n    if (this.previewsContainer && !this.options.disablePreviews) {\n      file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n      file.previewTemplate = file.previewElement; // Backwards compatibility\n\n      this.previewsContainer.appendChild(file.previewElement);\n\n      var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-name]\"), true),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var node = _step2.value;\n          node.textContent = file.name;\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-size]\"), true),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          node = _step3.value;\n          node.innerHTML = this.filesize(file.size);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      if (this.options.addRemoveLinks) {\n        file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\".concat(this.options.dictRemoveFile, \"</a>\"));\n        file.previewElement.appendChild(file._removeLink);\n      }\n\n      var removeFileEvent = function removeFileEvent(e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        if (file.status === Dropzone.UPLOADING) {\n          return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () {\n            return _this.removeFile(file);\n          });\n        } else {\n          if (_this.options.dictRemoveFileConfirmation) {\n            return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () {\n              return _this.removeFile(file);\n            });\n          } else {\n            return _this.removeFile(file);\n          }\n        }\n      };\n\n      var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-remove]\"), true),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var removeLink = _step4.value;\n          removeLink.addEventListener(\"click\", removeFileEvent);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n    }\n  },\n  // Called whenever a file is removed.\n  removedfile: function removedfile(file) {\n    if (file.previewElement != null && file.previewElement.parentNode != null) {\n      file.previewElement.parentNode.removeChild(file.previewElement);\n    }\n\n    return this._updateMaxFilesReachedClass();\n  },\n  // Called when a thumbnail has been generated\n  // Receives `file` and `dataUrl`\n  thumbnail: function thumbnail(file, dataUrl) {\n    if (file.previewElement) {\n      file.previewElement.classList.remove(\"dz-file-preview\");\n\n      var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\"), true),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var thumbnailElement = _step5.value;\n          thumbnailElement.alt = file.name;\n          thumbnailElement.src = dataUrl;\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return setTimeout(function () {\n        return file.previewElement.classList.add(\"dz-image-preview\");\n      }, 1);\n    }\n  },\n  // Called whenever an error occurs\n  // Receives `file` and `message`\n  error: function error(file, message) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-error\");\n\n      if (typeof message !== \"string\" && message.error) {\n        message = message.error;\n      }\n\n      var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-errormessage]\"), true),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var node = _step6.value;\n          node.textContent = message;\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n    }\n  },\n  errormultiple: function errormultiple() {},\n  // Called when a file gets processed. Since there is a cue, not all added\n  // files are processed immediately.\n  // Receives `file`\n  processing: function processing(file) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-processing\");\n\n      if (file._removeLink) {\n        return file._removeLink.innerHTML = this.options.dictCancelUpload;\n      }\n    }\n  },\n  processingmultiple: function processingmultiple() {},\n  // Called whenever the upload progress gets updated.\n  // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n  // To get the total number of bytes of the file, use `file.size`\n  uploadprogress: function uploadprogress(file, progress, bytesSent) {\n    if (file.previewElement) {\n      var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\"), true),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var node = _step7.value;\n          node.nodeName === \"PROGRESS\" ? node.value = progress : node.style.width = \"\".concat(progress, \"%\");\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n    }\n  },\n  // Called whenever the total upload progress gets updated.\n  // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n  totaluploadprogress: function totaluploadprogress() {},\n  // Called just before the file is sent. Gets the `xhr` object as second\n  // parameter, so you can modify it (for example to add a CSRF token) and a\n  // `formData` object to add additional information.\n  sending: function sending() {},\n  sendingmultiple: function sendingmultiple() {},\n  // When the complete upload is finished and successful\n  // Receives `file`\n  success: function success(file) {\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-success\");\n    }\n  },\n  successmultiple: function successmultiple() {},\n  // When the upload is canceled.\n  canceled: function canceled(file) {\n    return this.emit(\"error\", file, this.options.dictUploadCanceled);\n  },\n  canceledmultiple: function canceledmultiple() {},\n  // When the upload is finished, either with success or an error.\n  // Receives `file`\n  complete: function complete(file) {\n    if (file._removeLink) {\n      file._removeLink.innerHTML = this.options.dictRemoveFile;\n    }\n\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-complete\");\n    }\n  },\n  completemultiple: function completemultiple() {},\n  maxfilesexceeded: function maxfilesexceeded() {},\n  maxfilesreached: function maxfilesreached() {},\n  queuecomplete: function queuecomplete() {},\n  addedfiles: function addedfiles() {}\n};\n/* harmony default export */ var src_options = (defaultOptions);\n;// CONCATENATED MODULE: ./src/dropzone.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); }\n\nfunction dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Dropzone = /*#__PURE__*/function (_Emitter) {\n  _inherits(Dropzone, _Emitter);\n\n  var _super = _createSuper(Dropzone);\n\n  function Dropzone(el, options) {\n    var _this;\n\n    dropzone_classCallCheck(this, Dropzone);\n\n    _this = _super.call(this);\n    var fallback, left;\n    _this.element = el; // For backwards compatibility since the version was in the prototype previously\n\n    _this.version = Dropzone.version;\n    _this.clickableElements = [];\n    _this.listeners = [];\n    _this.files = []; // All files\n\n    if (typeof _this.element === \"string\") {\n      _this.element = document.querySelector(_this.element);\n    } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n\n\n    if (!_this.element || _this.element.nodeType == null) {\n      throw new Error(\"Invalid dropzone element.\");\n    }\n\n    if (_this.element.dropzone) {\n      throw new Error(\"Dropzone already attached.\");\n    } // Now add this dropzone to the instances.\n\n\n    Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself.\n\n    _this.element.dropzone = _assertThisInitialized(_this);\n    var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {};\n    _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {});\n    _this.options.previewTemplate = _this.options.previewTemplate.replace(/\\n*/g, \"\"); // If the browser failed, just call the fallback and leave\n\n    if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n      return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this)));\n    } // @options.url = @element.getAttribute \"action\" unless @options.url?\n\n\n    if (_this.options.url == null) {\n      _this.options.url = _this.element.getAttribute(\"action\");\n    }\n\n    if (!_this.options.url) {\n      throw new Error(\"No URL provided.\");\n    }\n\n    if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) {\n      throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n    }\n\n    if (_this.options.uploadMultiple && _this.options.chunking) {\n      throw new Error(\"You cannot set both: uploadMultiple and chunking.\");\n    } // Backwards compatibility\n\n\n    if (_this.options.acceptedMimeTypes) {\n      _this.options.acceptedFiles = _this.options.acceptedMimeTypes;\n      delete _this.options.acceptedMimeTypes;\n    } // Backwards compatibility\n\n\n    if (_this.options.renameFilename != null) {\n      _this.options.renameFile = function (file) {\n        return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file);\n      };\n    }\n\n    if (typeof _this.options.method === \"string\") {\n      _this.options.method = _this.options.method.toUpperCase();\n    }\n\n    if ((fallback = _this.getExistingFallback()) && fallback.parentNode) {\n      // Remove the fallback\n      fallback.parentNode.removeChild(fallback);\n    } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n\n\n    if (_this.options.previewsContainer !== false) {\n      if (_this.options.previewsContainer) {\n        _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, \"previewsContainer\");\n      } else {\n        _this.previewsContainer = _this.element;\n      }\n    }\n\n    if (_this.options.clickable) {\n      if (_this.options.clickable === true) {\n        _this.clickableElements = [_this.element];\n      } else {\n        _this.clickableElements = Dropzone.getElements(_this.options.clickable, \"clickable\");\n      }\n    }\n\n    _this.init();\n\n    return _this;\n  } // Returns all files that have been accepted\n\n\n  dropzone_createClass(Dropzone, [{\n    key: \"getAcceptedFiles\",\n    value: function getAcceptedFiles() {\n      return this.files.filter(function (file) {\n        return file.accepted;\n      }).map(function (file) {\n        return file;\n      });\n    } // Returns all files that have been rejected\n    // Not sure when that's going to be useful, but added for completeness.\n\n  }, {\n    key: \"getRejectedFiles\",\n    value: function getRejectedFiles() {\n      return this.files.filter(function (file) {\n        return !file.accepted;\n      }).map(function (file) {\n        return file;\n      });\n    }\n  }, {\n    key: \"getFilesWithStatus\",\n    value: function getFilesWithStatus(status) {\n      return this.files.filter(function (file) {\n        return file.status === status;\n      }).map(function (file) {\n        return file;\n      });\n    } // Returns all files that are in the queue\n\n  }, {\n    key: \"getQueuedFiles\",\n    value: function getQueuedFiles() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    }\n  }, {\n    key: \"getUploadingFiles\",\n    value: function getUploadingFiles() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    }\n  }, {\n    key: \"getAddedFiles\",\n    value: function getAddedFiles() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    } // Files that are either queued or uploading\n\n  }, {\n    key: \"getActiveFiles\",\n    value: function getActiveFiles() {\n      return this.files.filter(function (file) {\n        return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED;\n      }).map(function (file) {\n        return file;\n      });\n    } // The function that gets called when Dropzone is initialized. You\n    // can (and should) setup event listeners inside this function.\n\n  }, {\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      // In case it isn't set already\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><button class=\\\"dz-button\\\" type=\\\"button\\\">\".concat(this.options.dictDefaultMessage, \"</button></div>\")));\n      }\n\n      if (this.clickableElements.length) {\n        var setupHiddenFileInput = function setupHiddenFileInput() {\n          if (_this2.hiddenFileInput) {\n            _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput);\n          }\n\n          _this2.hiddenFileInput = document.createElement(\"input\");\n\n          _this2.hiddenFileInput.setAttribute(\"type\", \"file\");\n\n          if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) {\n            _this2.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n          }\n\n          _this2.hiddenFileInput.className = \"dz-hidden-input\";\n\n          if (_this2.options.acceptedFiles !== null) {\n            _this2.hiddenFileInput.setAttribute(\"accept\", _this2.options.acceptedFiles);\n          }\n\n          if (_this2.options.capture !== null) {\n            _this2.hiddenFileInput.setAttribute(\"capture\", _this2.options.capture);\n          } // Making sure that no one can \"tab\" into this field.\n\n\n          _this2.hiddenFileInput.setAttribute(\"tabindex\", \"-1\"); // Not setting `display=\"none\"` because some browsers don't accept clicks\n          // on elements that aren't displayed.\n\n\n          _this2.hiddenFileInput.style.visibility = \"hidden\";\n          _this2.hiddenFileInput.style.position = \"absolute\";\n          _this2.hiddenFileInput.style.top = \"0\";\n          _this2.hiddenFileInput.style.left = \"0\";\n          _this2.hiddenFileInput.style.height = \"0\";\n          _this2.hiddenFileInput.style.width = \"0\";\n          Dropzone.getElement(_this2.options.hiddenInputContainer, \"hiddenInputContainer\").appendChild(_this2.hiddenFileInput);\n\n          _this2.hiddenFileInput.addEventListener(\"change\", function () {\n            var files = _this2.hiddenFileInput.files;\n\n            if (files.length) {\n              var _iterator = dropzone_createForOfIteratorHelper(files, true),\n                  _step;\n\n              try {\n                for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                  var file = _step.value;\n\n                  _this2.addFile(file);\n                }\n              } catch (err) {\n                _iterator.e(err);\n              } finally {\n                _iterator.f();\n              }\n            }\n\n            _this2.emit(\"addedfiles\", files);\n\n            setupHiddenFileInput();\n          });\n        };\n\n        setupHiddenFileInput();\n      }\n\n      this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself.\n      // They're not in @setupEventListeners() because they shouldn't be removed\n      // again when the dropzone gets disabled.\n\n      var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var eventName = _step2.value;\n          this.on(eventName, this.options[eventName]);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.on(\"uploadprogress\", function () {\n        return _this2.updateTotalUploadProgress();\n      });\n      this.on(\"removedfile\", function () {\n        return _this2.updateTotalUploadProgress();\n      });\n      this.on(\"canceled\", function (file) {\n        return _this2.emit(\"complete\", file);\n      }); // Emit a `queuecomplete` event if all files finished uploading.\n\n      this.on(\"complete\", function (file) {\n        if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) {\n          // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n          return setTimeout(function () {\n            return _this2.emit(\"queuecomplete\");\n          }, 0);\n        }\n      });\n\n      var containsFiles = function containsFiles(e) {\n        if (e.dataTransfer.types) {\n          // Because e.dataTransfer.types is an Object in\n          // IE, we need to iterate like this instead of\n          // using e.dataTransfer.types.some()\n          for (var i = 0; i < e.dataTransfer.types.length; i++) {\n            if (e.dataTransfer.types[i] === \"Files\") return true;\n          }\n        }\n\n        return false;\n      };\n\n      var noPropagation = function noPropagation(e) {\n        // If there are no files, we don't want to stop\n        // propagation so we don't interfere with other\n        // drag and drop behaviour.\n        if (!containsFiles(e)) return;\n        e.stopPropagation();\n\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      }; // Create the listeners\n\n\n      this.listeners = [{\n        element: this.element,\n        events: {\n          dragstart: function dragstart(e) {\n            return _this2.emit(\"dragstart\", e);\n          },\n          dragenter: function dragenter(e) {\n            noPropagation(e);\n            return _this2.emit(\"dragenter\", e);\n          },\n          dragover: function dragover(e) {\n            // Makes it possible to drag files from chrome's download bar\n            // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n            // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n            var efct;\n\n            try {\n              efct = e.dataTransfer.effectAllowed;\n            } catch (error) {}\n\n            e.dataTransfer.dropEffect = \"move\" === efct || \"linkMove\" === efct ? \"move\" : \"copy\";\n            noPropagation(e);\n            return _this2.emit(\"dragover\", e);\n          },\n          dragleave: function dragleave(e) {\n            return _this2.emit(\"dragleave\", e);\n          },\n          drop: function drop(e) {\n            noPropagation(e);\n            return _this2.drop(e);\n          },\n          dragend: function dragend(e) {\n            return _this2.emit(\"dragend\", e);\n          }\n        } // This is disabled right now, because the browsers don't implement it properly.\n        // \"paste\": (e) =>\n        //   noPropagation e\n        //   @paste e\n\n      }];\n      this.clickableElements.forEach(function (clickableElement) {\n        return _this2.listeners.push({\n          element: clickableElement,\n          events: {\n            click: function click(evt) {\n              // Only the actual dropzone or the message element should trigger file selection\n              if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(\".dz-message\"))) {\n                _this2.hiddenFileInput.click(); // Forward the click\n\n              }\n\n              return true;\n            }\n          }\n        });\n      });\n      this.enable();\n      return this.options.init.call(this);\n    } // Not fully tested yet\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.disable();\n      this.removeAllFiles(true);\n\n      if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    }\n  }, {\n    key: \"updateTotalUploadProgress\",\n    value: function updateTotalUploadProgress() {\n      var totalUploadProgress;\n      var totalBytesSent = 0;\n      var totalBytes = 0;\n      var activeFiles = this.getActiveFiles();\n\n      if (activeFiles.length) {\n        var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true),\n            _step3;\n\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var file = _step3.value;\n            totalBytesSent += file.upload.bytesSent;\n            totalBytes += file.upload.total;\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    } // @options.paramName can be a function taking one parameter rather than a string.\n    // A parameter name for a file is obtained simply by calling this with an index number.\n\n  }, {\n    key: \"_getParamName\",\n    value: function _getParamName(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\".concat(this.options.paramName).concat(this.options.uploadMultiple ? \"[\".concat(n, \"]\") : \"\");\n      }\n    } // If @options.renameFile is a function,\n    // the function will be used to rename the file.name before appending it to the formData\n\n  }, {\n    key: \"_renameFile\",\n    value: function _renameFile(file) {\n      if (typeof this.options.renameFile !== \"function\") {\n        return file.name;\n      }\n\n      return this.options.renameFile(file);\n    } // Returns a form that can be used as fallback if the browser does not support DragnDrop\n    //\n    // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n    // This code has to pass in IE7 :(\n\n  }, {\n    key: \"getFallbackForm\",\n    value: function getFallbackForm() {\n      var existingFallback, form;\n\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n\n      var fieldsString = '<div class=\"dz-fallback\">';\n\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\".concat(this.options.dictFallbackText, \"</p>\");\n      }\n\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\".concat(this._getParamName(0), \"\\\" \").concat(this.options.uploadMultiple ? 'multiple=\"multiple\"' : undefined, \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\");\n      var fields = Dropzone.createElement(fieldsString);\n\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\".concat(this.options.url, \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\").concat(this.options.method, \"\\\"></form>\"));\n        form.appendChild(fields);\n      } else {\n        // Make sure that the enctype and method attributes are set properly\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n\n      return form != null ? form : fields;\n    } // Returns the fallback elements if they exist already\n    //\n    // This code has to pass in IE7 :(\n\n  }, {\n    key: \"getExistingFallback\",\n    value: function getExistingFallback() {\n      var getFallback = function getFallback(elements) {\n        var _iterator4 = dropzone_createForOfIteratorHelper(elements, true),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var el = _step4.value;\n\n            if (/(^| )fallback($| )/.test(el.className)) {\n              return el;\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      };\n\n      for (var _i = 0, _arr = [\"div\", \"form\"]; _i < _arr.length; _i++) {\n        var tagName = _arr[_i];\n        var fallback;\n\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    } // Activates all listeners stored in @listeners\n\n  }, {\n    key: \"setupEventListeners\",\n    value: function setupEventListeners() {\n      return this.listeners.map(function (elementListeners) {\n        return function () {\n          var result = [];\n\n          for (var event in elementListeners.events) {\n            var listener = elementListeners.events[event];\n            result.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n\n          return result;\n        }();\n      });\n    } // Deactivates all listeners stored in @listeners\n\n  }, {\n    key: \"removeEventListeners\",\n    value: function removeEventListeners() {\n      return this.listeners.map(function (elementListeners) {\n        return function () {\n          var result = [];\n\n          for (var event in elementListeners.events) {\n            var listener = elementListeners.events[event];\n            result.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n\n          return result;\n        }();\n      });\n    } // Removes all event listeners and cancels all files in the queue or being processed.\n\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      var _this3 = this;\n\n      this.clickableElements.forEach(function (element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      this.disabled = true;\n      return this.files.map(function (file) {\n        return _this3.cancelUpload(file);\n      });\n    }\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      delete this.disabled;\n      this.clickableElements.forEach(function (element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    } // Returns a nicely formatted filesize\n\n  }, {\n    key: \"filesize\",\n    value: function filesize(size) {\n      var selectedSize = 0;\n      var selectedUnit = \"b\";\n\n      if (size > 0) {\n        var units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n        for (var i = 0; i < units.length; i++) {\n          var unit = units[i];\n          var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n\n        selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n      }\n\n      return \"<strong>\".concat(selectedSize, \"</strong> \").concat(this.options.dictFileSizeUnits[selectedUnit]);\n    } // Adds or removes the `dz-max-files-reached` class from the form.\n\n  }, {\n    key: \"_updateMaxFilesReachedClass\",\n    value: function _updateMaxFilesReachedClass() {\n      if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit(\"maxfilesreached\", this.files);\n        }\n\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    }\n  }, {\n    key: \"drop\",\n    value: function drop(e) {\n      if (!e.dataTransfer) {\n        return;\n      }\n\n      this.emit(\"drop\", e); // Convert the FileList to an Array\n      // This is necessary for IE11\n\n      var files = [];\n\n      for (var i = 0; i < e.dataTransfer.files.length; i++) {\n        files[i] = e.dataTransfer.files[i];\n      } // Even if it's a folder, files.length will contain the folders.\n\n\n      if (files.length) {\n        var items = e.dataTransfer.items;\n\n        if (items && items.length && items[0].webkitGetAsEntry != null) {\n          // The browser supports dropping of folders, so handle items instead of files\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n\n      this.emit(\"addedfiles\", files);\n    }\n  }, {\n    key: \"paste\",\n    value: function paste(e) {\n      if (__guard__(e != null ? e.clipboardData : undefined, function (x) {\n        return x.items;\n      }) == null) {\n        return;\n      }\n\n      this.emit(\"paste\", e);\n      var items = e.clipboardData.items;\n\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    }\n  }, {\n    key: \"handleFiles\",\n    value: function handleFiles(files) {\n      var _iterator5 = dropzone_createForOfIteratorHelper(files, true),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var file = _step5.value;\n          this.addFile(file);\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n    } // When a folder is dropped (or files are pasted), items must be handled\n    // instead of files.\n\n  }, {\n    key: \"_addFilesFromItems\",\n    value: function _addFilesFromItems(items) {\n      var _this4 = this;\n\n      return function () {\n        var result = [];\n\n        var _iterator6 = dropzone_createForOfIteratorHelper(items, true),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var item = _step6.value;\n            var entry;\n\n            if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) {\n              if (entry.isFile) {\n                result.push(_this4.addFile(item.getAsFile()));\n              } else if (entry.isDirectory) {\n                // Append all files from that directory to files\n                result.push(_this4._addFilesFromDirectory(entry, entry.name));\n              } else {\n                result.push(undefined);\n              }\n            } else if (item.getAsFile != null) {\n              if (item.kind == null || item.kind === \"file\") {\n                result.push(_this4.addFile(item.getAsFile()));\n              } else {\n                result.push(undefined);\n              }\n            } else {\n              result.push(undefined);\n            }\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n\n        return result;\n      }();\n    } // Goes through the directory, and adds each file it finds recursively\n\n  }, {\n    key: \"_addFilesFromDirectory\",\n    value: function _addFilesFromDirectory(directory, path) {\n      var _this5 = this;\n\n      var dirReader = directory.createReader();\n\n      var errorHandler = function errorHandler(error) {\n        return __guardMethod__(console, \"log\", function (o) {\n          return o.log(error);\n        });\n      };\n\n      var readEntries = function readEntries() {\n        return dirReader.readEntries(function (entries) {\n          if (entries.length > 0) {\n            var _iterator7 = dropzone_createForOfIteratorHelper(entries, true),\n                _step7;\n\n            try {\n              for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n                var entry = _step7.value;\n\n                if (entry.isFile) {\n                  entry.file(function (file) {\n                    if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === \".\") {\n                      return;\n                    }\n\n                    file.fullPath = \"\".concat(path, \"/\").concat(file.name);\n                    return _this5.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this5._addFilesFromDirectory(entry, \"\".concat(path, \"/\").concat(entry.name));\n                }\n              } // Recursively call readEntries() again, since browser only handle\n              // the first 100 entries.\n              // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n\n            } catch (err) {\n              _iterator7.e(err);\n            } finally {\n              _iterator7.f();\n            }\n\n            readEntries();\n          }\n\n          return null;\n        }, errorHandler);\n      };\n\n      return readEntries();\n    } // If `done()` is called without argument the file is accepted\n    // If you call it with an error message, the file is rejected\n    // (This allows for asynchronous validation)\n    //\n    // This function checks the filesize, and if the file.type passes the\n    // `acceptedFiles` check.\n\n  }, {\n    key: \"accept\",\n    value: function accept(file, done) {\n      if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) {\n        done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        done(this.options.dictInvalidFileType);\n      } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        this.emit(\"maxfilesexceeded\", file);\n      } else {\n        this.options.accept.call(this, file, done);\n      }\n    }\n  }, {\n    key: \"addFile\",\n    value: function addFile(file) {\n      var _this6 = this;\n\n      file.upload = {\n        uuid: Dropzone.uuidv4(),\n        progress: 0,\n        // Setting the total upload size to file.size for the beginning\n        // It's actual different than the size to be transmitted.\n        total: file.size,\n        bytesSent: 0,\n        filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and\n        // thus the chunks — might change if `options.transformFile` is set\n        // and does something to the data.\n\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n\n      this._enqueueThumbnail(file);\n\n      this.accept(file, function (error) {\n        if (error) {\n          file.accepted = false;\n\n          _this6._errorProcessing([file], error); // Will set the file.status\n\n        } else {\n          file.accepted = true;\n\n          if (_this6.options.autoQueue) {\n            _this6.enqueueFile(file);\n          } // Will set .accepted = true\n\n        }\n\n        _this6._updateMaxFilesReachedClass();\n      });\n    } // Wrapper for enqueueFile\n\n  }, {\n    key: \"enqueueFiles\",\n    value: function enqueueFiles(files) {\n      var _iterator8 = dropzone_createForOfIteratorHelper(files, true),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var file = _step8.value;\n          this.enqueueFile(file);\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      return null;\n    }\n  }, {\n    key: \"enqueueFile\",\n    value: function enqueueFile(file) {\n      var _this7 = this;\n\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n\n        if (this.options.autoProcessQueue) {\n          return setTimeout(function () {\n            return _this7.processQueue();\n          }, 0); // Deferring the call\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    }\n  }, {\n    key: \"_enqueueThumbnail\",\n    value: function _enqueueThumbnail(file) {\n      var _this8 = this;\n\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n\n        return setTimeout(function () {\n          return _this8._processThumbnailQueue();\n        }, 0); // Deferring the call\n      }\n    }\n  }, {\n    key: \"_processThumbnailQueue\",\n    value: function _processThumbnailQueue() {\n      var _this9 = this;\n\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n\n      this._processingThumbnail = true;\n\n      var file = this._thumbnailQueue.shift();\n\n      return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) {\n        _this9.emit(\"thumbnail\", file, dataUrl);\n\n        _this9._processingThumbnail = false;\n        return _this9._processThumbnailQueue();\n      });\n    } // Can be called by the user to remove a file\n\n  }, {\n    key: \"removeFile\",\n    value: function removeFile(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    } // Removes all files that aren't currently processed from the list\n\n  }, {\n    key: \"removeAllFiles\",\n    value: function removeAllFiles(cancelIfNecessary) {\n      // Create a copy of files since removeFile() changes the @files array.\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n\n      var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var file = _step9.value;\n\n          if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n            this.removeFile(file);\n          }\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      return null;\n    } // Resizes an image before it gets sent to the server. This function is the default behavior of\n    // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n    // the resized blob.\n\n  }, {\n    key: \"resizeImage\",\n    value: function resizeImage(file, width, height, resizeMethod, callback) {\n      var _this10 = this;\n\n      return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) {\n        if (canvas == null) {\n          // The image has not been resized\n          return callback(file);\n        } else {\n          var resizeMimeType = _this10.options.resizeMimeType;\n\n          if (resizeMimeType == null) {\n            resizeMimeType = file.type;\n          }\n\n          var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality);\n\n          if (resizeMimeType === \"image/jpeg\" || resizeMimeType === \"image/jpg\") {\n            // Now add the original EXIF information\n            resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n          }\n\n          return callback(Dropzone.dataURItoBlob(resizedDataURL));\n        }\n      });\n    }\n  }, {\n    key: \"createThumbnail\",\n    value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n      var _this11 = this;\n\n      var fileReader = new FileReader();\n\n      fileReader.onload = function () {\n        file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector\n\n        if (file.type === \"image/svg+xml\") {\n          if (callback != null) {\n            callback(fileReader.result);\n          }\n\n          return;\n        }\n\n        _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n      };\n\n      fileReader.readAsDataURL(file);\n    } // `mockFile` needs to have these attributes:\n    //\n    //     { name: 'name', size: 12345, imageUrl: '' }\n    //\n    // `callback` will be invoked when the image has been downloaded and displayed.\n    // `crossOrigin` will be added to the `img` tag when accessing the file.\n\n  }, {\n    key: \"displayExistingFile\",\n    value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) {\n      var _this12 = this;\n\n      var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n      this.emit(\"addedfile\", mockFile);\n      this.emit(\"complete\", mockFile);\n\n      if (!resizeThumbnail) {\n        this.emit(\"thumbnail\", mockFile, imageUrl);\n        if (callback) callback();\n      } else {\n        var onDone = function onDone(thumbnail) {\n          _this12.emit(\"thumbnail\", mockFile, thumbnail);\n\n          if (callback) callback();\n        };\n\n        mockFile.dataURL = imageUrl;\n        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, onDone, crossOrigin);\n      }\n    }\n  }, {\n    key: \"createThumbnailFromUrl\",\n    value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n      var _this13 = this;\n\n      // Not using `new Image` here because of a bug in latest Chrome versions.\n      // See https://github.com/enyo/dropzone/pull/226\n      var img = document.createElement(\"img\");\n\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      } // fixOrientation is not needed anymore with browsers handling imageOrientation\n\n\n      fixOrientation = getComputedStyle(document.body)[\"imageOrientation\"] == \"from-image\" ? false : fixOrientation;\n\n      img.onload = function () {\n        var loadExif = function loadExif(callback) {\n          return callback(1);\n        };\n\n        if (typeof EXIF !== \"undefined\" && EXIF !== null && fixOrientation) {\n          loadExif = function loadExif(callback) {\n            return EXIF.getData(img, function () {\n              return callback(EXIF.getTag(this, \"Orientation\"));\n            });\n          };\n        }\n\n        return loadExif(function (orientation) {\n          file.width = img.width;\n          file.height = img.height;\n\n          var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod);\n\n          var canvas = document.createElement(\"canvas\");\n          var ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n\n          if (orientation > 4) {\n            canvas.width = resizeInfo.trgHeight;\n            canvas.height = resizeInfo.trgWidth;\n          }\n\n          switch (orientation) {\n            case 2:\n              // horizontal flip\n              ctx.translate(canvas.width, 0);\n              ctx.scale(-1, 1);\n              break;\n\n            case 3:\n              // 180° rotate left\n              ctx.translate(canvas.width, canvas.height);\n              ctx.rotate(Math.PI);\n              break;\n\n            case 4:\n              // vertical flip\n              ctx.translate(0, canvas.height);\n              ctx.scale(1, -1);\n              break;\n\n            case 5:\n              // vertical flip + 90 rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.scale(1, -1);\n              break;\n\n            case 6:\n              // 90° rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.translate(0, -canvas.width);\n              break;\n\n            case 7:\n              // horizontal flip + 90 rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.translate(canvas.height, -canvas.width);\n              ctx.scale(-1, 1);\n              break;\n\n            case 8:\n              // 90° rotate left\n              ctx.rotate(-0.5 * Math.PI);\n              ctx.translate(-canvas.height, 0);\n              break;\n          } // This is a bugfix for iOS' scaling bug.\n\n\n          drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          var thumbnail = canvas.toDataURL(\"image/png\");\n\n          if (callback != null) {\n            return callback(thumbnail, canvas);\n          }\n        });\n      };\n\n      if (callback != null) {\n        img.onerror = callback;\n      }\n\n      return img.src = file.dataURL;\n    } // Goes through the queue and processes files if there aren't too many already.\n\n  }, {\n    key: \"processQueue\",\n    value: function processQueue() {\n      var parallelUploads = this.options.parallelUploads;\n      var processingLength = this.getUploadingFiles().length;\n      var i = processingLength; // There are already at least as many files uploading than should be\n\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n\n      var queuedFiles = this.getQueuedFiles();\n\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n\n      if (this.options.uploadMultiple) {\n        // The files should be uploaded in one request\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          } // Nothing left to process\n\n\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    } // Wrapper for `processFiles`\n\n  }, {\n    key: \"processFile\",\n    value: function processFile(file) {\n      return this.processFiles([file]);\n    } // Loads the file, then calls finishedLoading()\n\n  }, {\n    key: \"processFiles\",\n    value: function processFiles(files) {\n      var _iterator10 = dropzone_createForOfIteratorHelper(files, true),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var file = _step10.value;\n          file.processing = true; // Backwards compatibility\n\n          file.status = Dropzone.UPLOADING;\n          this.emit(\"processing\", file);\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n\n      return this.uploadFiles(files);\n    }\n  }, {\n    key: \"_getFilesWithXhr\",\n    value: function _getFilesWithXhr(xhr) {\n      var files;\n      return files = this.files.filter(function (file) {\n        return file.xhr === xhr;\n      }).map(function (file) {\n        return file;\n      });\n    } // Cancels the file upload and sets the status to CANCELED\n    // **if** the file is actually being uploaded.\n    // If it's still in the queue, the file is being removed from it and the status\n    // set to CANCELED.\n\n  }, {\n    key: \"cancelUpload\",\n    value: function cancelUpload(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        var groupedFiles = this._getFilesWithXhr(file.xhr);\n\n        var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n            _step11;\n\n        try {\n          for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n            var groupedFile = _step11.value;\n            groupedFile.status = Dropzone.CANCELED;\n          }\n        } catch (err) {\n          _iterator11.e(err);\n        } finally {\n          _iterator11.f();\n        }\n\n        if (typeof file.xhr !== \"undefined\") {\n          file.xhr.abort();\n        }\n\n        var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n            _step12;\n\n        try {\n          for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n            var _groupedFile = _step12.value;\n            this.emit(\"canceled\", _groupedFile);\n          }\n        } catch (err) {\n          _iterator12.e(err);\n        } finally {\n          _iterator12.f();\n        }\n\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    }\n  }, {\n    key: \"resolveOption\",\n    value: function resolveOption(option) {\n      if (typeof option === \"function\") {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        return option.apply(this, args);\n      }\n\n      return option;\n    }\n  }, {\n    key: \"uploadFile\",\n    value: function uploadFile(file) {\n      return this.uploadFiles([file]);\n    }\n  }, {\n    key: \"uploadFiles\",\n    value: function uploadFiles(files) {\n      var _this14 = this;\n\n      this._transformFiles(files, function (transformedFiles) {\n        if (_this14.options.chunking) {\n          // Chunking is not allowed to be used with `uploadMultiple` so we know\n          // that there is only __one__file.\n          var transformedFile = transformedFiles[0];\n          files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize);\n          files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize);\n        }\n\n        if (files[0].upload.chunked) {\n          // This file should be sent in chunks!\n          // If the chunking option is set, we **know** that there can only be **one** file, since\n          // uploadMultiple is not allowed with this option.\n          var file = files[0];\n          var _transformedFile = transformedFiles[0];\n          var startedChunkCount = 0;\n          file.upload.chunks = [];\n\n          var handleNextChunk = function handleNextChunk() {\n            var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet.\n\n            while (file.upload.chunks[chunkIndex] !== undefined) {\n              chunkIndex++;\n            } // This means, that all chunks have already been started.\n\n\n            if (chunkIndex >= file.upload.totalChunkCount) return;\n            startedChunkCount++;\n            var start = chunkIndex * _this14.options.chunkSize;\n            var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size);\n            var dataBlock = {\n              name: _this14._getParamName(0),\n              data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end),\n              filename: file.upload.filename,\n              chunkIndex: chunkIndex\n            };\n            file.upload.chunks[chunkIndex] = {\n              file: file,\n              index: chunkIndex,\n              dataBlock: dataBlock,\n              // In case we want to retry.\n              status: Dropzone.UPLOADING,\n              progress: 0,\n              retries: 0 // The number of times this block has been retried.\n\n            };\n\n            _this14._uploadData(files, [dataBlock]);\n          };\n\n          file.upload.finishedChunkUpload = function (chunk) {\n            var allFinished = true;\n            chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk\n\n            chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n\n            chunk.xhr = null;\n\n            for (var i = 0; i < file.upload.totalChunkCount; i++) {\n              if (file.upload.chunks[i] === undefined) {\n                return handleNextChunk();\n              }\n\n              if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n                allFinished = false;\n              }\n            }\n\n            if (allFinished) {\n              _this14.options.chunksUploaded(file, function () {\n                _this14._finished(files, \"\", null);\n              });\n            }\n          };\n\n          if (_this14.options.parallelChunkUploads) {\n            for (var i = 0; i < file.upload.totalChunkCount; i++) {\n              handleNextChunk();\n            }\n          } else {\n            handleNextChunk();\n          }\n        } else {\n          var dataBlocks = [];\n\n          for (var _i2 = 0; _i2 < files.length; _i2++) {\n            dataBlocks[_i2] = {\n              name: _this14._getParamName(_i2),\n              data: transformedFiles[_i2],\n              filename: files[_i2].upload.filename\n            };\n          }\n\n          _this14._uploadData(files, dataBlocks);\n        }\n      });\n    } /// Returns the right chunk for given file and xhr\n\n  }, {\n    key: \"_getChunk\",\n    value: function _getChunk(file, xhr) {\n      for (var i = 0; i < file.upload.totalChunkCount; i++) {\n        if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n          return file.upload.chunks[i];\n        }\n      }\n    } // This function actually uploads the file(s) to the server.\n    // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n    // files, or individual chunks for chunked upload).\n\n  }, {\n    key: \"_uploadData\",\n    value: function _uploadData(files, dataBlocks) {\n      var _this15 = this;\n\n      var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later.\n\n      var _iterator13 = dropzone_createForOfIteratorHelper(files, true),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var file = _step13.value;\n          file.xhr = xhr;\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n\n      if (files[0].upload.chunked) {\n        // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n        files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n      }\n\n      var method = this.resolveOption(this.options.method, files);\n      var url = this.resolveOption(this.options.url, files);\n      xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n\n      xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n      xhr.withCredentials = !!this.options.withCredentials;\n\n      xhr.onload = function (e) {\n        _this15._finishedUploading(files, xhr, e);\n      };\n\n      xhr.ontimeout = function () {\n        _this15._handleUploadError(files, xhr, \"Request timedout after \".concat(_this15.options.timeout / 1000, \" seconds\"));\n      };\n\n      xhr.onerror = function () {\n        _this15._handleUploadError(files, xhr);\n      }; // Some browsers do not have the .upload property\n\n\n      var progressObj = xhr.upload != null ? xhr.upload : xhr;\n\n      progressObj.onprogress = function (e) {\n        return _this15._updateFilesUploadProgress(files, xhr, e);\n      };\n\n      var headers = {\n        Accept: \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n\n      if (this.options.headers) {\n        Dropzone.extend(headers, this.options.headers);\n      }\n\n      for (var headerName in headers) {\n        var headerValue = headers[headerName];\n\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n\n      var formData = new FormData(); // Adding all @options parameters\n\n      if (this.options.params) {\n        var additionalParams = this.options.params;\n\n        if (typeof additionalParams === \"function\") {\n          additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n        }\n\n        for (var key in additionalParams) {\n          var value = additionalParams[key];\n\n          if (Array.isArray(value)) {\n            // The additional parameter contains an array,\n            // so lets iterate over it to attach each value\n            // individually.\n            for (var i = 0; i < value.length; i++) {\n              formData.append(key, value[i]);\n            }\n          } else {\n            formData.append(key, value);\n          }\n        }\n      } // Let the user add additional data if necessary\n\n\n      var _iterator14 = dropzone_createForOfIteratorHelper(files, true),\n          _step14;\n\n      try {\n        for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n          var _file = _step14.value;\n          this.emit(\"sending\", _file, xhr, formData);\n        }\n      } catch (err) {\n        _iterator14.e(err);\n      } finally {\n        _iterator14.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n\n      this._addFormElementData(formData); // Finally add the files\n      // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n\n\n      for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) {\n        var dataBlock = dataBlocks[_i3];\n        formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n      }\n\n      this.submitRequest(xhr, formData, files);\n    } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n\n  }, {\n    key: \"_transformFiles\",\n    value: function _transformFiles(files, done) {\n      var _this16 = this;\n\n      var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n\n      var doneCounter = 0;\n\n      var _loop = function _loop(i) {\n        _this16.options.transformFile.call(_this16, files[i], function (transformedFile) {\n          transformedFiles[i] = transformedFile;\n\n          if (++doneCounter === files.length) {\n            done(transformedFiles);\n          }\n        });\n      };\n\n      for (var i = 0; i < files.length; i++) {\n        _loop(i);\n      }\n    } // Takes care of adding other input elements of the form to the AJAX request\n\n  }, {\n    key: \"_addFormElementData\",\n    value: function _addFormElementData(formData) {\n      // Take care of other input elements\n      if (this.element.tagName === \"FORM\") {\n        var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll(\"input, textarea, select, button\"), true),\n            _step15;\n\n        try {\n          for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n            var input = _step15.value;\n            var inputName = input.getAttribute(\"name\");\n            var inputType = input.getAttribute(\"type\");\n            if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it.\n\n            if (typeof inputName === \"undefined\" || inputName === null) continue;\n\n            if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n              // Possibly multiple values\n              var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true),\n                  _step16;\n\n              try {\n                for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n                  var option = _step16.value;\n\n                  if (option.selected) {\n                    formData.append(inputName, option.value);\n                  }\n                }\n              } catch (err) {\n                _iterator16.e(err);\n              } finally {\n                _iterator16.f();\n              }\n            } else if (!inputType || inputType !== \"checkbox\" && inputType !== \"radio\" || input.checked) {\n              formData.append(inputName, input.value);\n            }\n          }\n        } catch (err) {\n          _iterator15.e(err);\n        } finally {\n          _iterator15.f();\n        }\n      }\n    } // Invoked when there is new progress information about given files.\n    // If e is not provided, it is assumed that the upload is finished.\n\n  }, {\n    key: \"_updateFilesUploadProgress\",\n    value: function _updateFilesUploadProgress(files, xhr, e) {\n      var progress;\n\n      if (typeof e !== \"undefined\") {\n        progress = 100 * e.loaded / e.total;\n\n        if (files[0].upload.chunked) {\n          var file = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk progress.\n\n          var chunk = this._getChunk(file, xhr);\n\n          chunk.progress = progress;\n          chunk.total = e.total;\n          chunk.bytesSent = e.loaded;\n          var fileProgress = 0,\n              fileTotal,\n              fileBytesSent;\n          file.upload.progress = 0;\n          file.upload.total = 0;\n          file.upload.bytesSent = 0;\n\n          for (var i = 0; i < file.upload.totalChunkCount; i++) {\n            if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].progress !== undefined) {\n              file.upload.progress += file.upload.chunks[i].progress;\n              file.upload.total += file.upload.chunks[i].total;\n              file.upload.bytesSent += file.upload.chunks[i].bytesSent;\n            }\n          }\n\n          file.upload.progress = file.upload.progress / file.upload.totalChunkCount;\n        } else {\n          var _iterator17 = dropzone_createForOfIteratorHelper(files, true),\n              _step17;\n\n          try {\n            for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n              var _file2 = _step17.value;\n              _file2.upload.progress = progress;\n              _file2.upload.total = e.total;\n              _file2.upload.bytesSent = e.loaded;\n            }\n          } catch (err) {\n            _iterator17.e(err);\n          } finally {\n            _iterator17.f();\n          }\n        }\n\n        var _iterator18 = dropzone_createForOfIteratorHelper(files, true),\n            _step18;\n\n        try {\n          for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n            var _file3 = _step18.value;\n            this.emit(\"uploadprogress\", _file3, _file3.upload.progress, _file3.upload.bytesSent);\n          }\n        } catch (err) {\n          _iterator18.e(err);\n        } finally {\n          _iterator18.f();\n        }\n      } else {\n        // Called when the file finished uploading\n        var allFilesFinished = true;\n        progress = 100;\n\n        var _iterator19 = dropzone_createForOfIteratorHelper(files, true),\n            _step19;\n\n        try {\n          for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n            var _file4 = _step19.value;\n\n            if (_file4.upload.progress !== 100 || _file4.upload.bytesSent !== _file4.upload.total) {\n              allFilesFinished = false;\n            }\n\n            _file4.upload.progress = progress;\n            _file4.upload.bytesSent = _file4.upload.total;\n          } // Nothing to do, all files already at 100%\n\n        } catch (err) {\n          _iterator19.e(err);\n        } finally {\n          _iterator19.f();\n        }\n\n        if (allFilesFinished) {\n          return;\n        }\n\n        var _iterator20 = dropzone_createForOfIteratorHelper(files, true),\n            _step20;\n\n        try {\n          for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n            var _file5 = _step20.value;\n            this.emit(\"uploadprogress\", _file5, progress, _file5.upload.bytesSent);\n          }\n        } catch (err) {\n          _iterator20.e(err);\n        } finally {\n          _iterator20.f();\n        }\n      }\n    }\n  }, {\n    key: \"_finishedUploading\",\n    value: function _finishedUploading(files, xhr, e) {\n      var response;\n\n      if (files[0].status === Dropzone.CANCELED) {\n        return;\n      }\n\n      if (xhr.readyState !== 4) {\n        return;\n      }\n\n      if (xhr.responseType !== \"arraybuffer\" && xhr.responseType !== \"blob\") {\n        response = xhr.responseText;\n\n        if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n          try {\n            response = JSON.parse(response);\n          } catch (error) {\n            e = error;\n            response = \"Invalid JSON response from server.\";\n          }\n        }\n      }\n\n      this._updateFilesUploadProgress(files);\n\n      if (!(200 <= xhr.status && xhr.status < 300)) {\n        this._handleUploadError(files, xhr, response);\n      } else {\n        if (files[0].upload.chunked) {\n          files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));\n        } else {\n          this._finished(files, response, e);\n        }\n      }\n    }\n  }, {\n    key: \"_handleUploadError\",\n    value: function _handleUploadError(files, xhr, response) {\n      if (files[0].status === Dropzone.CANCELED) {\n        return;\n      }\n\n      if (files[0].upload.chunked && this.options.retryChunks) {\n        var chunk = this._getChunk(files[0], xhr);\n\n        if (chunk.retries++ < this.options.retryChunksLimit) {\n          this._uploadData(files, [chunk.dataBlock]);\n\n          return;\n        } else {\n          console.warn(\"Retried this chunk too often. Giving up.\");\n        }\n      }\n\n      this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n    }\n  }, {\n    key: \"submitRequest\",\n    value: function submitRequest(xhr, formData, files) {\n      xhr.send(formData);\n    } // Called internally when processing is finished.\n    // Individual callbacks have to be called in the appropriate sections.\n\n  }, {\n    key: \"_finished\",\n    value: function _finished(files, responseText, e) {\n      var _iterator21 = dropzone_createForOfIteratorHelper(files, true),\n          _step21;\n\n      try {\n        for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n          var file = _step21.value;\n          file.status = Dropzone.SUCCESS;\n          this.emit(\"success\", file, responseText, e);\n          this.emit(\"complete\", file);\n        }\n      } catch (err) {\n        _iterator21.e(err);\n      } finally {\n        _iterator21.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    } // Called internally when processing is finished.\n    // Individual callbacks have to be called in the appropriate sections.\n\n  }, {\n    key: \"_errorProcessing\",\n    value: function _errorProcessing(files, message, xhr) {\n      var _iterator22 = dropzone_createForOfIteratorHelper(files, true),\n          _step22;\n\n      try {\n        for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n          var file = _step22.value;\n          file.status = Dropzone.ERROR;\n          this.emit(\"error\", file, message, xhr);\n          this.emit(\"complete\", file);\n        }\n      } catch (err) {\n        _iterator22.e(err);\n      } finally {\n        _iterator22.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    }\n  }], [{\n    key: \"initClass\",\n    value: function initClass() {\n      // Exposing the emitter class, mainly for tests\n      this.prototype.Emitter = Emitter;\n      /*\n       This is a list of all available events you can register on a dropzone object.\n        You can register an event handler like this:\n        dropzone.on(\"dragEnter\", function() { });\n        */\n\n      this.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n      this.prototype._thumbnailQueue = [];\n      this.prototype._processingThumbnail = false;\n    } // global utility\n\n  }, {\n    key: \"extend\",\n    value: function extend(target) {\n      for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        objects[_key2 - 1] = arguments[_key2];\n      }\n\n      for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) {\n        var object = _objects[_i4];\n\n        for (var key in object) {\n          var val = object[key];\n          target[key] = val;\n        }\n      }\n\n      return target;\n    }\n  }, {\n    key: \"uuidv4\",\n    value: function uuidv4() {\n      return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n        var r = Math.random() * 16 | 0,\n            v = c === \"x\" ? r : r & 0x3 | 0x8;\n        return v.toString(16);\n      });\n    }\n  }]);\n\n  return Dropzone;\n}(Emitter);\n\n\nDropzone.initClass();\nDropzone.version = \"5.8.1\"; // This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n//     Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n//     Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n//     <form action=\"/upload\" id=\"my-dropzone-element-id\" class=\"dropzone\"></form>\n\nDropzone.options = {}; // Returns the options for an element or undefined if none available.\n\nDropzone.optionsForElement = function (element) {\n  // Get the `Dropzone.options.elementId` for this element if it exists\n  if (element.getAttribute(\"id\")) {\n    return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n  } else {\n    return undefined;\n  }\n}; // Holds a list of all dropzone instances\n\n\nDropzone.instances = []; // Returns the dropzone for given element if any\n\nDropzone.forElement = function (element) {\n  if (typeof element === \"string\") {\n    element = document.querySelector(element);\n  }\n\n  if ((element != null ? element.dropzone : undefined) == null) {\n    throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n  }\n\n  return element.dropzone;\n}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\n\n\nDropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them\n\nDropzone.discover = function () {\n  var dropzones;\n\n  if (document.querySelectorAll) {\n    dropzones = document.querySelectorAll(\".dropzone\");\n  } else {\n    dropzones = []; // IE :(\n\n    var checkElements = function checkElements(elements) {\n      return function () {\n        var result = [];\n\n        var _iterator23 = dropzone_createForOfIteratorHelper(elements, true),\n            _step23;\n\n        try {\n          for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n            var el = _step23.value;\n\n            if (/(^| )dropzone($| )/.test(el.className)) {\n              result.push(dropzones.push(el));\n            } else {\n              result.push(undefined);\n            }\n          }\n        } catch (err) {\n          _iterator23.e(err);\n        } finally {\n          _iterator23.f();\n        }\n\n        return result;\n      }();\n    };\n\n    checkElements(document.getElementsByTagName(\"div\"));\n    checkElements(document.getElementsByTagName(\"form\"));\n  }\n\n  return function () {\n    var result = [];\n\n    var _iterator24 = dropzone_createForOfIteratorHelper(dropzones, true),\n        _step24;\n\n    try {\n      for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n        var dropzone = _step24.value;\n\n        // Create a dropzone unless auto discover has been disabled for specific element\n        if (Dropzone.optionsForElement(dropzone) !== false) {\n          result.push(new Dropzone(dropzone));\n        } else {\n          result.push(undefined);\n        }\n      }\n    } catch (err) {\n      _iterator24.e(err);\n    } finally {\n      _iterator24.f();\n    }\n\n    return result;\n  }();\n}; // Some browsers support drag and drog functionality, but not correctly.\n//\n// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n\n\nDropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n/opera.*(Macintosh|Windows Phone).*version\\/12/i]; // Checks if the browser is supported\n\nDropzone.isBrowserSupported = function () {\n  var capableBrowser = true;\n\n  if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n    if (!(\"classList\" in document.createElement(\"a\"))) {\n      capableBrowser = false;\n    } else {\n      if (Dropzone.blacklistedBrowsers !== undefined) {\n        // Since this has been renamed, this makes sure we don't break older\n        // configuration.\n        Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers;\n      } // The browser supports the API, but may be blocked.\n\n\n      var _iterator25 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true),\n          _step25;\n\n      try {\n        for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n          var regex = _step25.value;\n\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      } catch (err) {\n        _iterator25.e(err);\n      } finally {\n        _iterator25.f();\n      }\n    }\n  } else {\n    capableBrowser = false;\n  }\n\n  return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n  // convert base64 to raw binary data held in a string\n  // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n  var byteString = atob(dataURI.split(\",\")[1]); // separate out the mime component\n\n  var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0]; // write the bytes of the string to an ArrayBuffer\n\n  var ab = new ArrayBuffer(byteString.length);\n  var ia = new Uint8Array(ab);\n\n  for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n    ia[i] = byteString.charCodeAt(i);\n  } // write the ArrayBuffer to a blob\n\n\n  return new Blob([ab], {\n    type: mimeString\n  });\n}; // Returns an array without the rejected item\n\n\nvar without = function without(list, rejectedItem) {\n  return list.filter(function (item) {\n    return item !== rejectedItem;\n  }).map(function (item) {\n    return item;\n  });\n}; // abc-def_ghi -> abcDefGhi\n\n\nvar camelize = function camelize(str) {\n  return str.replace(/[\\-_](\\w)/g, function (match) {\n    return match.charAt(1).toUpperCase();\n  });\n}; // Creates an element from string\n\n\nDropzone.createElement = function (string) {\n  var div = document.createElement(\"div\");\n  div.innerHTML = string;\n  return div.childNodes[0];\n}; // Tests if given element is inside (or simply is) the container\n\n\nDropzone.elementInside = function (element, container) {\n  if (element === container) {\n    return true;\n  } // Coffeescript doesn't support do/while loops\n\n\n  while (element = element.parentNode) {\n    if (element === container) {\n      return true;\n    }\n  }\n\n  return false;\n};\n\nDropzone.getElement = function (el, name) {\n  var element;\n\n  if (typeof el === \"string\") {\n    element = document.querySelector(el);\n  } else if (el.nodeType != null) {\n    element = el;\n  }\n\n  if (element == null) {\n    throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector or a plain HTML element.\"));\n  }\n\n  return element;\n};\n\nDropzone.getElements = function (els, name) {\n  var el, elements;\n\n  if (els instanceof Array) {\n    elements = [];\n\n    try {\n      var _iterator26 = dropzone_createForOfIteratorHelper(els, true),\n          _step26;\n\n      try {\n        for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n          el = _step26.value;\n          elements.push(this.getElement(el, name));\n        }\n      } catch (err) {\n        _iterator26.e(err);\n      } finally {\n        _iterator26.f();\n      }\n    } catch (e) {\n      elements = null;\n    }\n  } else if (typeof els === \"string\") {\n    elements = [];\n\n    var _iterator27 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true),\n        _step27;\n\n    try {\n      for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {\n        el = _step27.value;\n        elements.push(el);\n      }\n    } catch (err) {\n      _iterator27.e(err);\n    } finally {\n      _iterator27.f();\n    }\n  } else if (els.nodeType != null) {\n    elements = [els];\n  }\n\n  if (elements == null || !elements.length) {\n    throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\"));\n  }\n\n  return elements;\n}; // Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\n\n\nDropzone.confirm = function (question, accepted, rejected) {\n  if (window.confirm(question)) {\n    return accepted();\n  } else if (rejected != null) {\n    return rejected();\n  }\n}; // Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\n\n\nDropzone.isValidFile = function (file, acceptedFiles) {\n  if (!acceptedFiles) {\n    return true;\n  } // If there are no accepted mime types, it's OK\n\n\n  acceptedFiles = acceptedFiles.split(\",\");\n  var mimeType = file.type;\n  var baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n  var _iterator28 = dropzone_createForOfIteratorHelper(acceptedFiles, true),\n      _step28;\n\n  try {\n    for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {\n      var validType = _step28.value;\n      validType = validType.trim();\n\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        // This is something like a image/* mime type\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n  } catch (err) {\n    _iterator28.e(err);\n  } finally {\n    _iterator28.f();\n  }\n\n  return false;\n}; // Augment jQuery\n\n\nif (typeof jQuery !== \"undefined\" && jQuery !== null) {\n  jQuery.fn.dropzone = function (options) {\n    return this.each(function () {\n      return new Dropzone(this, options);\n    });\n  };\n} // Dropzone file status codes\n\n\nDropzone.ADDED = \"added\";\nDropzone.QUEUED = \"queued\"; // For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\n\nDropzone.ACCEPTED = Dropzone.QUEUED;\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\n\nvar detectVerticalSquash = function detectVerticalSquash(img) {\n  var iw = img.naturalWidth;\n  var ih = img.naturalHeight;\n  var canvas = document.createElement(\"canvas\");\n  canvas.width = 1;\n  canvas.height = ih;\n  var ctx = canvas.getContext(\"2d\");\n  ctx.drawImage(img, 0, 0);\n\n  var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih),\n      data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically.\n\n\n  var sy = 0;\n  var ey = ih;\n  var py = ih;\n\n  while (py > sy) {\n    var alpha = data[(py - 1) * 4 + 3];\n\n    if (alpha === 0) {\n      ey = py;\n    } else {\n      sy = py;\n    }\n\n    py = ey + sy >> 1;\n  }\n\n  var ratio = py / ih;\n\n  if (ratio === 0) {\n    return 1;\n  } else {\n    return ratio;\n  }\n}; // A replacement for context.drawImage\n// (args are for source and destination).\n\n\nvar drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n  var vertSquashRatio = detectVerticalSquash(img);\n  return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n}; // Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\n\n\nvar ExifRestore = /*#__PURE__*/function () {\n  function ExifRestore() {\n    dropzone_classCallCheck(this, ExifRestore);\n  }\n\n  dropzone_createClass(ExifRestore, null, [{\n    key: \"initClass\",\n    value: function initClass() {\n      this.KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n    }\n  }, {\n    key: \"encode64\",\n    value: function encode64(input) {\n      var output = \"\";\n      var chr1 = undefined;\n      var chr2 = undefined;\n      var chr3 = \"\";\n      var enc1 = undefined;\n      var enc2 = undefined;\n      var enc3 = undefined;\n      var enc4 = \"\";\n      var i = 0;\n\n      while (true) {\n        chr1 = input[i++];\n        chr2 = input[i++];\n        chr3 = input[i++];\n        enc1 = chr1 >> 2;\n        enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n        enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n        enc4 = chr3 & 63;\n\n        if (isNaN(chr2)) {\n          enc3 = enc4 = 64;\n        } else if (isNaN(chr3)) {\n          enc4 = 64;\n        }\n\n        output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n        chr1 = chr2 = chr3 = \"\";\n        enc1 = enc2 = enc3 = enc4 = \"\";\n\n        if (!(i < input.length)) {\n          break;\n        }\n      }\n\n      return output;\n    }\n  }, {\n    key: \"restore\",\n    value: function restore(origFileBase64, resizedFileBase64) {\n      if (!origFileBase64.match(\"data:image/jpeg;base64,\")) {\n        return resizedFileBase64;\n      }\n\n      var rawImage = this.decode64(origFileBase64.replace(\"data:image/jpeg;base64,\", \"\"));\n      var segments = this.slice2Segments(rawImage);\n      var image = this.exifManipulation(resizedFileBase64, segments);\n      return \"data:image/jpeg;base64,\".concat(this.encode64(image));\n    }\n  }, {\n    key: \"exifManipulation\",\n    value: function exifManipulation(resizedFileBase64, segments) {\n      var exifArray = this.getExifArray(segments);\n      var newImageArray = this.insertExif(resizedFileBase64, exifArray);\n      var aBuffer = new Uint8Array(newImageArray);\n      return aBuffer;\n    }\n  }, {\n    key: \"getExifArray\",\n    value: function getExifArray(segments) {\n      var seg = undefined;\n      var x = 0;\n\n      while (x < segments.length) {\n        seg = segments[x];\n\n        if (seg[0] === 255 & seg[1] === 225) {\n          return seg;\n        }\n\n        x++;\n      }\n\n      return [];\n    }\n  }, {\n    key: \"insertExif\",\n    value: function insertExif(resizedFileBase64, exifArray) {\n      var imageData = resizedFileBase64.replace(\"data:image/jpeg;base64,\", \"\");\n      var buf = this.decode64(imageData);\n      var separatePoint = buf.indexOf(255, 3);\n      var mae = buf.slice(0, separatePoint);\n      var ato = buf.slice(separatePoint);\n      var array = mae;\n      array = array.concat(exifArray);\n      array = array.concat(ato);\n      return array;\n    }\n  }, {\n    key: \"slice2Segments\",\n    value: function slice2Segments(rawImageArray) {\n      var head = 0;\n      var segments = [];\n\n      while (true) {\n        var length;\n\n        if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) {\n          break;\n        }\n\n        if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) {\n          head += 2;\n        } else {\n          length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3];\n          var endPoint = head + length + 2;\n          var seg = rawImageArray.slice(head, endPoint);\n          segments.push(seg);\n          head = endPoint;\n        }\n\n        if (head > rawImageArray.length) {\n          break;\n        }\n      }\n\n      return segments;\n    }\n  }, {\n    key: \"decode64\",\n    value: function decode64(input) {\n      var output = \"\";\n      var chr1 = undefined;\n      var chr2 = undefined;\n      var chr3 = \"\";\n      var enc1 = undefined;\n      var enc2 = undefined;\n      var enc3 = undefined;\n      var enc4 = \"\";\n      var i = 0;\n      var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n      var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n\n      if (base64test.exec(input)) {\n        console.warn(\"There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\\nExpect errors in decoding.\");\n      }\n\n      input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n      while (true) {\n        enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n        chr1 = enc1 << 2 | enc2 >> 4;\n        chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n        chr3 = (enc3 & 3) << 6 | enc4;\n        buf.push(chr1);\n\n        if (enc3 !== 64) {\n          buf.push(chr2);\n        }\n\n        if (enc4 !== 64) {\n          buf.push(chr3);\n        }\n\n        chr1 = chr2 = chr3 = \"\";\n        enc1 = enc2 = enc3 = enc4 = \"\";\n\n        if (!(i < input.length)) {\n          break;\n        }\n      }\n\n      return buf;\n    }\n  }]);\n\n  return ExifRestore;\n}();\n\nExifRestore.initClass();\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n// @win window reference\n// @fn function reference\n\nvar contentLoaded = function contentLoaded(win, fn) {\n  var done = false;\n  var top = true;\n  var doc = win.document;\n  var root = doc.documentElement;\n  var add = doc.addEventListener ? \"addEventListener\" : \"attachEvent\";\n  var rem = doc.addEventListener ? \"removeEventListener\" : \"detachEvent\";\n  var pre = doc.addEventListener ? \"\" : \"on\";\n\n  var init = function init(e) {\n    if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n      return;\n    }\n\n    (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\n    if (!done && (done = true)) {\n      return fn.call(win, e.type || e);\n    }\n  };\n\n  var poll = function poll() {\n    try {\n      root.doScroll(\"left\");\n    } catch (e) {\n      setTimeout(poll, 50);\n      return;\n    }\n\n    return init(\"poll\");\n  };\n\n  if (doc.readyState !== \"complete\") {\n    if (doc.createEventObject && root.doScroll) {\n      try {\n        top = !win.frameElement;\n      } catch (error) {}\n\n      if (top) {\n        poll();\n      }\n    }\n\n    doc[add](pre + \"DOMContentLoaded\", init, false);\n    doc[add](pre + \"readystatechange\", init, false);\n    return win[add](pre + \"load\", init, false);\n  }\n}; // As a single function to be able to write tests.\n\n\nDropzone._autoDiscoverFunction = function () {\n  if (Dropzone.autoDiscover) {\n    return Dropzone.discover();\n  }\n};\n\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n  return typeof value !== \"undefined\" && value !== null ? transform(value) : undefined;\n}\n\nfunction __guardMethod__(obj, methodName, transform) {\n  if (typeof obj !== \"undefined\" && obj !== null && typeof obj[methodName] === \"function\") {\n    return transform(obj, methodName);\n  } else {\n    return undefined;\n  }\n}\n\n\n;// CONCATENATED MODULE: ./tool/dropzone.dist.js\n /// Make Dropzone a global variable.\n\nwindow.Dropzone = Dropzone;\n/* harmony default export */ var dropzone_dist = (Dropzone);\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/dropzone.css",
    "content": "@-webkit-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px);\n  }\n}\n@-moz-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px);\n  }\n}\n@keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px);\n  }\n}\n@-webkit-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n}\n@-moz-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n}\n@keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px);\n  }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px);\n  }\n}\n@-webkit-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1);\n  }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@-moz-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1);\n  }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n}\n@keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1);\n  }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1);\n  }\n}\n.dropzone, .dropzone * {\n  box-sizing: border-box;\n}\n\n.dropzone {\n  min-height: 150px;\n  border: 2px solid rgba(0, 0, 0, 0.3);\n  background: white;\n  padding: 20px 20px;\n}\n.dropzone.dz-clickable {\n  cursor: pointer;\n}\n.dropzone.dz-clickable * {\n  cursor: default;\n}\n.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {\n  cursor: pointer;\n}\n.dropzone.dz-started .dz-message {\n  display: none;\n}\n.dropzone.dz-drag-hover {\n  border-style: solid;\n}\n.dropzone.dz-drag-hover .dz-message {\n  opacity: 0.5;\n}\n.dropzone .dz-message {\n  text-align: center;\n  margin: 2em 0;\n}\n.dropzone .dz-message .dz-button {\n  background: none;\n  color: inherit;\n  border: none;\n  padding: 0;\n  font: inherit;\n  cursor: pointer;\n  outline: inherit;\n}\n.dropzone .dz-preview {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  margin: 16px;\n  min-height: 100px;\n}\n.dropzone .dz-preview:hover {\n  z-index: 1000;\n}\n.dropzone .dz-preview:hover .dz-details {\n  opacity: 1;\n}\n.dropzone .dz-preview.dz-file-preview .dz-image {\n  border-radius: 20px;\n  background: #999;\n  background: linear-gradient(to bottom, #eee, #ddd);\n}\n.dropzone .dz-preview.dz-file-preview .dz-details {\n  opacity: 1;\n}\n.dropzone .dz-preview.dz-image-preview {\n  background: white;\n}\n.dropzone .dz-preview.dz-image-preview .dz-details {\n  -webkit-transition: opacity 0.2s linear;\n  -moz-transition: opacity 0.2s linear;\n  -ms-transition: opacity 0.2s linear;\n  -o-transition: opacity 0.2s linear;\n  transition: opacity 0.2s linear;\n}\n.dropzone .dz-preview .dz-remove {\n  font-size: 14px;\n  text-align: center;\n  display: block;\n  cursor: pointer;\n  border: none;\n}\n.dropzone .dz-preview .dz-remove:hover {\n  text-decoration: underline;\n}\n.dropzone .dz-preview:hover .dz-details {\n  opacity: 1;\n}\n.dropzone .dz-preview .dz-details {\n  z-index: 20;\n  position: absolute;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  font-size: 13px;\n  min-width: 100%;\n  max-width: 100%;\n  padding: 2em 1em;\n  text-align: center;\n  color: rgba(0, 0, 0, 0.9);\n  line-height: 150%;\n}\n.dropzone .dz-preview .dz-details .dz-size {\n  margin-bottom: 1em;\n  font-size: 16px;\n}\n.dropzone .dz-preview .dz-details .dz-filename {\n  white-space: nowrap;\n}\n.dropzone .dz-preview .dz-details .dz-filename:hover span {\n  border: 1px solid rgba(200, 200, 200, 0.8);\n  background-color: rgba(255, 255, 255, 0.8);\n}\n.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {\n  border: 1px solid transparent;\n}\n.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {\n  background-color: rgba(255, 255, 255, 0.4);\n  padding: 0 0.4em;\n  border-radius: 3px;\n}\n.dropzone .dz-preview:hover .dz-image img {\n  -webkit-transform: scale(1.05, 1.05);\n  -moz-transform: scale(1.05, 1.05);\n  -ms-transform: scale(1.05, 1.05);\n  -o-transform: scale(1.05, 1.05);\n  transform: scale(1.05, 1.05);\n  -webkit-filter: blur(8px);\n  filter: blur(8px);\n}\n.dropzone .dz-preview .dz-image {\n  border-radius: 20px;\n  overflow: hidden;\n  width: 120px;\n  height: 120px;\n  position: relative;\n  display: block;\n  z-index: 10;\n}\n.dropzone .dz-preview .dz-image img {\n  display: block;\n}\n.dropzone .dz-preview.dz-success .dz-success-mark {\n  -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n  animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n}\n.dropzone .dz-preview.dz-error .dz-error-mark {\n  opacity: 1;\n  -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n  -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n  animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n}\n.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {\n  pointer-events: none;\n  opacity: 0;\n  z-index: 500;\n  position: absolute;\n  display: block;\n  top: 50%;\n  left: 50%;\n  margin-left: -27px;\n  margin-top: -27px;\n}\n.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {\n  display: block;\n  width: 54px;\n  height: 54px;\n}\n.dropzone .dz-preview.dz-processing .dz-progress {\n  opacity: 1;\n  -webkit-transition: all 0.2s linear;\n  -moz-transition: all 0.2s linear;\n  -ms-transition: all 0.2s linear;\n  -o-transition: all 0.2s linear;\n  transition: all 0.2s linear;\n}\n.dropzone .dz-preview.dz-complete .dz-progress {\n  opacity: 0;\n  -webkit-transition: opacity 0.4s ease-in;\n  -moz-transition: opacity 0.4s ease-in;\n  -ms-transition: opacity 0.4s ease-in;\n  -o-transition: opacity 0.4s ease-in;\n  transition: opacity 0.4s ease-in;\n}\n.dropzone .dz-preview:not(.dz-processing) .dz-progress {\n  -webkit-animation: pulse 6s ease infinite;\n  -moz-animation: pulse 6s ease infinite;\n  -ms-animation: pulse 6s ease infinite;\n  -o-animation: pulse 6s ease infinite;\n  animation: pulse 6s ease infinite;\n}\n.dropzone .dz-preview .dz-progress {\n  opacity: 1;\n  z-index: 1000;\n  pointer-events: none;\n  position: absolute;\n  height: 16px;\n  left: 50%;\n  top: 50%;\n  margin-top: -8px;\n  width: 80px;\n  margin-left: -40px;\n  background: rgba(255, 255, 255, 0.9);\n  -webkit-transform: scale(1);\n  border-radius: 8px;\n  overflow: hidden;\n}\n.dropzone .dz-preview .dz-progress .dz-upload {\n  background: #333;\n  background: linear-gradient(to bottom, #666, #444);\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 0;\n  -webkit-transition: width 300ms ease-in-out;\n  -moz-transition: width 300ms ease-in-out;\n  -ms-transition: width 300ms ease-in-out;\n  -o-transition: width 300ms ease-in-out;\n  transition: width 300ms ease-in-out;\n}\n.dropzone .dz-preview.dz-error .dz-error-message {\n  display: block;\n}\n.dropzone .dz-preview.dz-error:hover .dz-error-message {\n  opacity: 1;\n  pointer-events: auto;\n}\n.dropzone .dz-preview .dz-error-message {\n  pointer-events: none;\n  z-index: 1000;\n  position: absolute;\n  display: block;\n  display: none;\n  opacity: 0;\n  -webkit-transition: opacity 0.3s ease;\n  -moz-transition: opacity 0.3s ease;\n  -ms-transition: opacity 0.3s ease;\n  -o-transition: opacity 0.3s ease;\n  transition: opacity 0.3s ease;\n  border-radius: 8px;\n  font-size: 13px;\n  top: 130px;\n  left: -10px;\n  width: 140px;\n  background: #be2626;\n  background: linear-gradient(to bottom, #be2626, #a92222);\n  padding: 0.5em 1.2em;\n  color: white;\n}\n.dropzone .dz-preview .dz-error-message:after {\n  content: \"\";\n  position: absolute;\n  top: -6px;\n  left: 64px;\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #be2626;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/dropzone.js",
    "content": "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 3099:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 6077:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 1223:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar create = __webpack_require__(30);\nvar definePropertyModule = __webpack_require__(3070);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ 1530:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ 5787:\n/***/ (function(module) {\n\nmodule.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 9670:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n\n\n/***/ }),\n\n/***/ 4019:\n/***/ (function(module) {\n\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar defineProperty = __webpack_require__(3070).f;\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar uid = __webpack_require__(9711);\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n\n/***/ 3331:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefineAll = __webpack_require__(2248);\nvar fails = __webpack_require__(7293);\nvar anInstance = __webpack_require__(5787);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar IEEE754 = __webpack_require__(1179);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar defineProperty = __webpack_require__(3070).f;\nvar arrayFill = __webpack_require__(1285);\nvar setToStringTag = __webpack_require__(8003);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = bytes.slice(start, start + count);\n  return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: arrayFill.call(new Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  /* eslint-disable no-new -- required for testing */\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1);\n  }) || fails(function () {\n    new NativeArrayBuffer();\n    new NativeArrayBuffer(1.5);\n    new NativeArrayBuffer(NaN);\n    return NativeArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n  /* eslint-enable no-new -- required for testing */\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) {\n        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n      }\n    }\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf($DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var nativeSetInt8 = $DataViewPrototype.setInt8;\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n\n\n/***/ }),\n\n/***/ 1048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n\n\n/***/ }),\n\n/***/ 1285:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 8533:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(2092).forEach;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ 8457:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(9974);\nvar toObject = __webpack_require__(7908);\nvar callWithSafeIterationClosing = __webpack_require__(3411);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar getIteratorMethod = __webpack_require__(1246);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 1318:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 2092:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(9974);\nvar IndexedObject = __webpack_require__(8361);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar arraySpeciesCreate = __webpack_require__(5417);\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_OUT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push.call(target, value); // filterOut\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterOut` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterOut: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ 6583:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = toLength(O.length);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : nativeLastIndexOf;\n\n\n/***/ }),\n\n/***/ 1194:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n\n\n/***/ }),\n\n/***/ 9341:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n\n\n/***/ }),\n\n/***/ 3671:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 5417:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ 3411:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar iteratorClose = __webpack_require__(9212);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    iteratorClose(iterator);\n    throw error;\n  }\n};\n\n\n/***/ }),\n\n/***/ 7072:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ 4326:\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ 648:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classofRaw = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ 9920:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar ownKeys = __webpack_require__(3887);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar definePropertyModule = __webpack_require__(3070);\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n\n\n/***/ }),\n\n/***/ 8544:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ 4994:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(3383).IteratorPrototype;\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar setToStringTag = __webpack_require__(8003);\nvar Iterators = __webpack_require__(7497);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ 8880:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ 9114:\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ 6135:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(7593);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ 654:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar setToStringTag = __webpack_require__(8003);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\nvar Iterators = __webpack_require__(7497);\nvar IteratorsCore = __webpack_require__(3383);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n\n\n/***/ }),\n\n/***/ 9781:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ 317:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ 8324:\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ 8113:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ 7392:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar userAgent = __webpack_require__(8113);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ 748:\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n/***/ }),\n\n/***/ 2109:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar getOwnPropertyDescriptor = __webpack_require__(1236).f;\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar setGlobal = __webpack_require__(3505);\nvar copyConstructorProperties = __webpack_require__(9920);\nvar isForced = __webpack_require__(4705);\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n\n\n/***/ }),\n\n/***/ 7293:\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ 7007:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(4916);\nvar redefine = __webpack_require__(1320);\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar regexpExec = __webpack_require__(2261);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !(\n      REPLACE_SUPPORTS_NAMED_GROUPS &&\n      REPLACE_KEEPS_$0 &&\n      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    )) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      if (regexp.exec === regexpExec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n        }\n        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n      }\n      return { done: false };\n    }, {\n      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    });\n    var stringMethod = methods[0];\n    var regexMethod = methods[1];\n\n    redefine(String.prototype, KEY, stringMethod);\n    redefine(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return regexMethod.call(string, this); }\n    );\n  }\n\n  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n\n/***/ 9974:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ 5005:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(857);\nvar global = __webpack_require__(7854);\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ 1246:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(648);\nvar Iterators = __webpack_require__(7497);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ 8554:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar getIteratorMethod = __webpack_require__(1246);\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n\n\n/***/ }),\n\n/***/ 647:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace.call(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (ch.charAt(0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return str.slice(0, position);\n      case \"'\": return str.slice(tailPos);\n      case '<':\n        capture = namedCaptures[ch.slice(1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n/***/ }),\n\n/***/ 7854:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  /* global globalThis -- safe */\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ 6656:\n/***/ (function(module) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ 3501:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 490:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ 4664:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar createElement = __webpack_require__(317);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ 1179:\n/***/ (function(module) {\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = new Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    if (number * (c = pow(2, -exponent)) < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n\n\n/***/ }),\n\n/***/ 8361:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar classof = __webpack_require__(4326);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ 9587:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar setPrototypeOf = __webpack_require__(7674);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n/***/ }),\n\n/***/ 2788:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(5465);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ 9909:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8536);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar objectHas = __webpack_require__(6656);\nvar shared = __webpack_require__(5465);\nvar sharedKey = __webpack_require__(6200);\nvar hiddenKeys = __webpack_require__(3501);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ 7659:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar Iterators = __webpack_require__(7497);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ 3157:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ 4705:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ 111:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ 1913:\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ 7850:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar classof = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ 9212:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\n\nmodule.exports = function (iterator) {\n  var returnMethod = iterator['return'];\n  if (returnMethod !== undefined) {\n    return anObject(returnMethod.call(iterator)).value;\n  }\n};\n\n\n/***/ }),\n\n/***/ 3383:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\nvar getPrototypeOf = __webpack_require__(9518);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ 7497:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  /* global Symbol -- required for testing */\n  return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ 590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n\n/***/ 8536:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar inspectSource = __webpack_require__(2788);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ 1574:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar objectKeys = __webpack_require__(1956);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  /* global Symbol -- required for testing */\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar defineProperties = __webpack_require__(6048);\nvar enumBugKeys = __webpack_require__(748);\nvar hiddenKeys = __webpack_require__(3501);\nvar html = __webpack_require__(490);\nvar documentCreateElement = __webpack_require__(317);\nvar sharedKey = __webpack_require__(6200);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject -- old IE */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ 6048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar anObject = __webpack_require__(9670);\nvar objectKeys = __webpack_require__(1956);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 3070:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\nvar anObject = __webpack_require__(9670);\nvar toPrimitive = __webpack_require__(7593);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ 1236:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar toIndexedObject = __webpack_require__(5656);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ 8006:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ 5181:\n/***/ (function(__unused_webpack_module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ 9518:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toObject = __webpack_require__(7908);\nvar sharedKey = __webpack_require__(6200);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ 6324:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toIndexedObject = __webpack_require__(5656);\nvar indexOf = __webpack_require__(1318).indexOf;\nvar hiddenKeys = __webpack_require__(3501);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 1956:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ 5296:\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ 7674:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(9670);\nvar aPossiblePrototype = __webpack_require__(6077);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classof = __webpack_require__(648);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ 3887:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\nvar getOwnPropertyNamesModule = __webpack_require__(8006);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar anObject = __webpack_require__(9670);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ 2248:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(1320);\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n\n\n/***/ }),\n\n/***/ 1320:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar setGlobal = __webpack_require__(3505);\nvar inspectSource = __webpack_require__(2788);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var state;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) {\n      createNonEnumerableProperty(value, 'name', key);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ 7651:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\nvar regexpExec = __webpack_require__(2261);\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n\n  if (classof(R) !== 'RegExp') {\n    throw TypeError('RegExp#exec called on incompatible receiver');\n  }\n\n  return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ 2261:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpFlags = __webpack_require__(7066);\nvar stickyHelpers = __webpack_require__(2999);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\n// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = regexpFlags.call(re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = flags.replace('y', '');\n      if (flags.indexOf('g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = String(str).slice(re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = match.input.slice(charsAdded);\n        match[0] = match[0].slice(charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ 7066:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(9670);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 2999:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fails = __webpack_require__(7293);\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n  return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n  var re = RE('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = RE('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\n\n/***/ }),\n\n/***/ 4488:\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ 3505:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n\n\n/***/ }),\n\n/***/ 6340:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(5005);\nvar definePropertyModule = __webpack_require__(3070);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar DESCRIPTORS = __webpack_require__(9781);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n\n\n/***/ }),\n\n/***/ 8003:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(3070).f;\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n\n/***/ }),\n\n/***/ 6200:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(2309);\nvar uid = __webpack_require__(9711);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ 5465:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar setGlobal = __webpack_require__(3505);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ 2309:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(1913);\nvar store = __webpack_require__(5465);\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.9.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ 6707:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar aFunction = __webpack_require__(3099);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n\n/***/ 8710:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 3197:\n/***/ (function(module) {\n\n\"use strict\";\n\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n\n\n/***/ }),\n\n/***/ 6091:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar whitespaces = __webpack_require__(1361);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n\n\n/***/ }),\n\n/***/ 3111:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\nvar whitespaces = __webpack_require__(1361);\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ 1400:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ 7067:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n\n\n/***/ }),\n\n/***/ 5656:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(8361);\nvar requireObjectCoercible = __webpack_require__(4488);\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ 9958:\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ 7466:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ 7908:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ 4590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(3002);\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n\n\n/***/ }),\n\n/***/ 3002:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nmodule.exports = function (it) {\n  var result = toInteger(it);\n  if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 7593:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ 1694:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ 9843:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayBufferModule = __webpack_require__(3331);\nvar anInstance = __webpack_require__(5787);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar toOffset = __webpack_require__(4590);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar typedArrayFrom = __webpack_require__(7321);\nvar forEach = __webpack_require__(2092).forEach;\nvar setSpecies = __webpack_require__(6340);\nvar definePropertyModule = __webpack_require__(3070);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar InternalStateModule = __webpack_require__(9909);\nvar inheritIfRequired = __webpack_require__(9587);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && typeof key != 'symbol'\n    && key in target\n    && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  return isTypedArrayIndex(target, key = toPrimitive(key, true))\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n    && isObject(descriptor)\n    && has(descriptor, 'value')\n    && !has(descriptor, 'get')\n    && !has(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!has(descriptor, 'writable') || descriptor.writable)\n    && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ 3832:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-new -- required for testing */\nvar global = __webpack_require__(7854);\nvar fails = __webpack_require__(7293);\nvar checkCorrectnessOfIteration = __webpack_require__(7072);\nvar NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n\n\n/***/ }),\n\n/***/ 3074:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\nvar speciesConstructor = __webpack_require__(6707);\n\nmodule.exports = function (instance, list) {\n  var C = speciesConstructor(instance, instance.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 7321:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar getIteratorMethod = __webpack_require__(1246);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar bind = __webpack_require__(9974);\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator, next;\n  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    O = [];\n    while (!(step = next.call(iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2], 2);\n  }\n  length = toLength(O.length);\n  result = new (aTypedArrayConstructor(this))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ 9711:\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ 3307:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(133);\n\nmodule.exports = NATIVE_SYMBOL\n  /* global Symbol -- safe */\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ 5112:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar shared = __webpack_require__(2309);\nvar has = __webpack_require__(6656);\nvar uid = __webpack_require__(9711);\nvar NATIVE_SYMBOL = __webpack_require__(133);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3307);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ 1361:\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ 8264:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar arrayBufferModule = __webpack_require__(3331);\nvar setSpecies = __webpack_require__(6340);\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n\n\n/***/ }),\n\n/***/ 2222:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar isArray = __webpack_require__(3157);\nvar isObject = __webpack_require__(111);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n\n\n/***/ }),\n\n/***/ 7327:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $filter = __webpack_require__(2092).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 2772:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $indexOf = __webpack_require__(1318).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 6992:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar addToUnscopables = __webpack_require__(1223);\nvar Iterators = __webpack_require__(7497);\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ 1249:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $map = __webpack_require__(2092).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ 7042:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\nvar toIndexedObject = __webpack_require__(5656);\nvar createProperty = __webpack_require__(6135);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n\n\n/***/ }),\n\n/***/ 561:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toObject = __webpack_require__(7908);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar createProperty = __webpack_require__(6135);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = toLength(O.length);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n\n\n/***/ }),\n\n/***/ 8309:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar defineProperty = __webpack_require__(3070).f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n\n\n/***/ }),\n\n/***/ 489:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar toObject = __webpack_require__(7908);\nvar nativeGetPrototypeOf = __webpack_require__(9518);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n\n\n/***/ }),\n\n/***/ 1539:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar redefine = __webpack_require__(1320);\nvar toString = __webpack_require__(288);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 4916:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar exec = __webpack_require__(2261);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n\n\n/***/ }),\n\n/***/ 9714:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(1320);\nvar anObject = __webpack_require__(9670);\nvar fails = __webpack_require__(7293);\nvar flags = __webpack_require__(7066);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 8783:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ 4723:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar regExpExec = __webpack_require__(7651);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : regexp[MATCH];\n      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative(nativeMatch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n\n\n/***/ }),\n\n/***/ 5306:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar getSubstitution = __webpack_require__(647);\nvar regExpExec = __webpack_require__(7651);\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return replacer !== undefined\n        ? replacer.call(searchValue, O, replaceValue)\n        : nativeReplace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      if (\n        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n      ) {\n        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        results.push(result);\n        if (!global) break;\n\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n});\n\n\n/***/ }),\n\n/***/ 3123:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar isRegExp = __webpack_require__(7850);\nvar anObject = __webpack_require__(9670);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar speciesConstructor = __webpack_require__(6707);\nvar advanceStringIndex = __webpack_require__(1530);\nvar toLength = __webpack_require__(7466);\nvar callRegExpExec = __webpack_require__(7651);\nvar regexpExec = __webpack_require__(2261);\nvar fails = __webpack_require__(7293);\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    // eslint-disable-next-line regexp/no-empty-group -- required for testing\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return nativeSplit.call(string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output.length > lim ? output.slice(0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n}, !SUPPORTS_Y);\n\n\n/***/ }),\n\n/***/ 3210:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $trim = __webpack_require__(3111).trim;\nvar forcedStringTrimMethod = __webpack_require__(6091);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n\n\n/***/ }),\n\n/***/ 2990:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $copyWithin = __webpack_require__(1048);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 8927:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $every = __webpack_require__(2092).every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3105:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $fill = __webpack_require__(1285);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  return $fill.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 5035:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $filter = __webpack_require__(2092).filter;\nvar fromSpeciesAndList = __webpack_require__(3074);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSpeciesAndList(this, list);\n});\n\n\n/***/ }),\n\n/***/ 7174:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $findIndex = __webpack_require__(2092).findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4345:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $find = __webpack_require__(2092).find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2846:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $forEach = __webpack_require__(2092).forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4731:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $includes = __webpack_require__(1318).includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 7209:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $indexOf = __webpack_require__(1318).indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 6319:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayIterators = __webpack_require__(6992);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n  return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n\n/***/ 8867:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n  return $join.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 7789:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $lastIndexOf = __webpack_require__(6583);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 3739:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $map = __webpack_require__(2092).map;\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n  });\n});\n\n\n/***/ }),\n\n/***/ 4483:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduceRight = __webpack_require__(3671).right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 9368:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduce = __webpack_require__(3671).left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2056:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n\n\n/***/ }),\n\n/***/ 3462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toOffset = __webpack_require__(4590);\nvar toObject = __webpack_require__(7908);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  /* global Int8Array -- safe */\n  new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var length = this.length;\n  var src = toObject(arrayLike);\n  var len = toLength(src.length);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 678:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar speciesConstructor = __webpack_require__(6707);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  /* global Int8Array -- safe */\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 7462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $some = __webpack_require__(2092).some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3824:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n\n/***/ 5021:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  return new (speciesConstructor(O, O.constructor))(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n\n\n/***/ }),\n\n/***/ 2974:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar fails = __webpack_require__(7293);\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 5016:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod;\nvar fails = __webpack_require__(7293);\nvar global = __webpack_require__(7854);\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return arrayJoin.call(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n\n/***/ 2472:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(9843);\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n\n/***/ }),\n\n/***/ 4747:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar forEach = __webpack_require__(8533);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n}\n\n\n/***/ }),\n\n/***/ 3948:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar ArrayIteratorMethods = __webpack_require__(6992);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n\n\n/***/ }),\n\n/***/ 1637:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(6992);\nvar $ = __webpack_require__(2109);\nvar getBuiltIn = __webpack_require__(5005);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar redefine = __webpack_require__(1320);\nvar redefineAll = __webpack_require__(2248);\nvar setToStringTag = __webpack_require__(8003);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar InternalStateModule = __webpack_require__(9909);\nvar anInstance = __webpack_require__(5787);\nvar hasOwn = __webpack_require__(6656);\nvar bind = __webpack_require__(9974);\nvar classof = __webpack_require__(648);\nvar anObject = __webpack_require__(9670);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar getIterator = __webpack_require__(8554);\nvar getIteratorMethod = __webpack_require__(1246);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.append` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(8783);\nvar $ = __webpack_require__(2109);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar global = __webpack_require__(7854);\nvar defineProperties = __webpack_require__(6048);\nvar redefine = __webpack_require__(1320);\nvar anInstance = __webpack_require__(5787);\nvar has = __webpack_require__(6656);\nvar assign = __webpack_require__(1574);\nvar arrayFrom = __webpack_require__(8457);\nvar codeAt = __webpack_require__(8710).codeAt;\nvar toASCII = __webpack_require__(3197);\nvar setToStringTag = __webpack_require__(8003);\nvar URLSearchParamsModule = __webpack_require__(1637);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"Dropzone\": function() { return /* reexport */ Dropzone; },\n  \"default\": function() { return /* binding */ dropzone_dist; }\n});\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js\nvar es_array_concat = __webpack_require__(2222);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js\nvar es_array_filter = __webpack_require__(7327);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js\nvar es_array_index_of = __webpack_require__(2772);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__(6992);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js\nvar es_array_map = __webpack_require__(1249);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__(7042);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js\nvar es_array_splice = __webpack_require__(561);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js\nvar es_array_buffer_constructor = __webpack_require__(8264);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__(8309);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js\nvar es_object_get_prototype_of = __webpack_require__(489);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__(1539);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js\nvar es_regexp_exec = __webpack_require__(4916);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js\nvar es_regexp_to_string = __webpack_require__(9714);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__(8783);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js\nvar es_string_match = __webpack_require__(4723);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js\nvar es_string_replace = __webpack_require__(5306);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js\nvar es_string_split = __webpack_require__(3123);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js\nvar es_string_trim = __webpack_require__(3210);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js\nvar es_typed_array_uint8_array = __webpack_require__(2472);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js\nvar es_typed_array_copy_within = __webpack_require__(2990);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js\nvar es_typed_array_every = __webpack_require__(8927);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js\nvar es_typed_array_fill = __webpack_require__(3105);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js\nvar es_typed_array_filter = __webpack_require__(5035);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js\nvar es_typed_array_find = __webpack_require__(4345);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js\nvar es_typed_array_find_index = __webpack_require__(7174);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js\nvar es_typed_array_for_each = __webpack_require__(2846);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js\nvar es_typed_array_includes = __webpack_require__(4731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js\nvar es_typed_array_index_of = __webpack_require__(7209);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js\nvar es_typed_array_iterator = __webpack_require__(6319);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js\nvar es_typed_array_join = __webpack_require__(8867);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js\nvar es_typed_array_last_index_of = __webpack_require__(7789);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js\nvar es_typed_array_map = __webpack_require__(3739);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js\nvar es_typed_array_reduce = __webpack_require__(9368);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js\nvar es_typed_array_reduce_right = __webpack_require__(4483);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js\nvar es_typed_array_reverse = __webpack_require__(2056);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js\nvar es_typed_array_set = __webpack_require__(3462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js\nvar es_typed_array_slice = __webpack_require__(678);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js\nvar es_typed_array_some = __webpack_require__(7462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js\nvar es_typed_array_sort = __webpack_require__(3824);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js\nvar es_typed_array_subarray = __webpack_require__(5021);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js\nvar es_typed_array_to_locale_string = __webpack_require__(2974);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js\nvar es_typed_array_to_string = __webpack_require__(5016);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js\nvar web_dom_collections_for_each = __webpack_require__(4747);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__(3948);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js\nvar web_url = __webpack_require__(285);\n;// CONCATENATED MODULE: ./src/emitter.js\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nvar Emitter = /*#__PURE__*/function () {\n  function Emitter() {\n    _classCallCheck(this, Emitter);\n  }\n\n  _createClass(Emitter, [{\n    key: \"on\",\n    value: // Add an event listener for given event\n    function on(event, fn) {\n      this._callbacks = this._callbacks || {}; // Create namespace for this event\n\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n\n      this._callbacks[event].push(fn);\n\n      return this;\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      this._callbacks = this._callbacks || {};\n      var callbacks = this._callbacks[event];\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (callbacks) {\n        var _iterator = _createForOfIteratorHelper(callbacks, true),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var callback = _step.value;\n            callback.apply(this, args);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      } // trigger a corresponding DOM event\n\n\n      if (this.element) {\n        this.element.dispatchEvent(this.makeEvent(\"dropzone:\" + event, {\n          args: args\n        }));\n      }\n\n      return this;\n    }\n  }, {\n    key: \"makeEvent\",\n    value: function makeEvent(eventName, detail) {\n      var params = {\n        bubbles: true,\n        cancelable: true,\n        detail: detail\n      };\n\n      if (typeof window.CustomEvent === \"function\") {\n        return new CustomEvent(eventName, params);\n      } else {\n        // IE 11 support\n        // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n        var evt = document.createEvent(\"CustomEvent\");\n        evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);\n        return evt;\n      }\n    } // Remove event listener for given event. If fn is not provided, all event\n    // listeners for that event will be removed. If neither is provided, all\n    // event listeners will be removed.\n\n  }, {\n    key: \"off\",\n    value: function off(event, fn) {\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      } // specific event\n\n\n      var callbacks = this._callbacks[event];\n\n      if (!callbacks) {\n        return this;\n      } // remove all handlers\n\n\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      } // remove specific handler\n\n\n      for (var i = 0; i < callbacks.length; i++) {\n        var callback = callbacks[i];\n\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n\n      return this;\n    }\n  }]);\n\n  return Emitter;\n}();\n\n\n;// CONCATENATED MODULE: ./src/preview-template.html\n// Module\nvar code = \"<div class=\\\"dz-preview dz-file-preview\\\"> <div class=\\\"dz-image\\\"><img data-dz-thumbnail/></div> <div class=\\\"dz-details\\\"> <div class=\\\"dz-size\\\"><span data-dz-size></span></div> <div class=\\\"dz-filename\\\"><span data-dz-name></span></div> </div> <div class=\\\"dz-progress\\\"> <span class=\\\"dz-upload\\\" data-dz-uploadprogress></span> </div> <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div> <div class=\\\"dz-success-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Check</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\"></path> </g> </svg> </div> <div class=\\\"dz-error-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Error</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\"> <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\"></path> </g> </g> </svg> </div> </div> \";\n// Exports\n/* harmony default export */ var preview_template = (code);\n;// CONCATENATED MODULE: ./src/options.js\n\n\n\n\n\nfunction options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); }\n\nfunction options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\nvar defaultOptions = {\n  /**\n   * Has to be specified on elements other than form (or when the form\n   * doesn't have an `action` attribute). You can also\n   * provide a function that will be called with `files` and\n   * must return the url (since `v3.12.0`)\n   */\n  url: null,\n\n  /**\n   * Can be changed to `\"put\"` if necessary. You can also provide a function\n   * that will be called with `files` and must return the method (since `v3.12.0`).\n   */\n  method: \"post\",\n\n  /**\n   * Will be set on the XHRequest.\n   */\n  withCredentials: false,\n\n  /**\n   * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n   */\n  timeout: 30000,\n\n  /**\n   * How many file uploads to process in parallel (See the\n   * Enqueuing file uploads documentation section for more info)\n   */\n  parallelUploads: 2,\n\n  /**\n   * Whether to send multiple files in one request. If\n   * this it set to true, then the fallback file input element will\n   * have the `multiple` attribute as well. This option will\n   * also trigger additional events (like `processingmultiple`). See the events\n   * documentation section for more information.\n   */\n  uploadMultiple: false,\n\n  /**\n   * Whether you want files to be uploaded in chunks to your server. This can't be\n   * used in combination with `uploadMultiple`.\n   *\n   * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n   */\n  chunking: false,\n\n  /**\n   * If `chunking` is enabled, this defines whether **every** file should be chunked,\n   * even if the file size is below chunkSize. This means, that the additional chunk\n   * form data will be submitted and the `chunksUploaded` callback will be invoked.\n   */\n  forceChunking: false,\n\n  /**\n   * If `chunking` is `true`, then this defines the chunk size in bytes.\n   */\n  chunkSize: 2000000,\n\n  /**\n   * If `true`, the individual chunks of a file are being uploaded simultaneously.\n   */\n  parallelChunkUploads: false,\n\n  /**\n   * Whether a chunk should be retried if it fails.\n   */\n  retryChunks: false,\n\n  /**\n   * If `retryChunks` is true, how many times should it be retried.\n   */\n  retryChunksLimit: 3,\n\n  /**\n   * The maximum filesize (in bytes) that is allowed to be uploaded.\n   */\n  maxFilesize: 256,\n\n  /**\n   * The name of the file param that gets transferred.\n   * **NOTE**: If you have the option  `uploadMultiple` set to `true`, then\n   * Dropzone will append `[]` to the name.\n   */\n  paramName: \"file\",\n\n  /**\n   * Whether thumbnails for images should be generated\n   */\n  createImageThumbnails: true,\n\n  /**\n   * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n   */\n  maxThumbnailFilesize: 10,\n\n  /**\n   * If `null`, the ratio of the image will be used to calculate it.\n   */\n  thumbnailWidth: 120,\n\n  /**\n   * The same as `thumbnailWidth`. If both are null, images will not be resized.\n   */\n  thumbnailHeight: 120,\n\n  /**\n   * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  thumbnailMethod: \"crop\",\n\n  /**\n   * If set, images will be resized to these dimensions before being **uploaded**.\n   * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n   * ratio of the file will be preserved.\n   *\n   * The `options.transformFile` function uses these options, so if the `transformFile` function\n   * is overridden, these options don't do anything.\n   */\n  resizeWidth: null,\n\n  /**\n   * See `resizeWidth`.\n   */\n  resizeHeight: null,\n\n  /**\n   * The mime type of the resized image (before it gets uploaded to the server).\n   * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n   * See `resizeWidth` for more information.\n   */\n  resizeMimeType: null,\n\n  /**\n   * The quality of the resized images. See `resizeWidth`.\n   */\n  resizeQuality: 0.8,\n\n  /**\n   * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  resizeMethod: \"contain\",\n\n  /**\n   * The base that is used to calculate the **displayed** filesize. You can\n   * change this to 1024 if you would rather display kibibytes, mebibytes,\n   * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n   * not `1 kilobyte`. You can change this to `1024` if you don't care about\n   * validity.\n   */\n  filesizeBase: 1000,\n\n  /**\n   * If not `null` defines how many files this Dropzone handles. If it exceeds,\n   * the event `maxfilesexceeded` will be called. The dropzone element gets the\n   * class `dz-max-files-reached` accordingly so you can provide visual\n   * feedback.\n   */\n  maxFiles: null,\n\n  /**\n   * An optional object to send additional headers to the server. Eg:\n   * `{ \"My-Awesome-Header\": \"header value\" }`\n   */\n  headers: null,\n\n  /**\n   * If `true`, the dropzone element itself will be clickable, if `false`\n   * nothing will be clickable.\n   *\n   * You can also pass an HTML element, a CSS selector (for multiple elements)\n   * or an array of those. In that case, all of those elements will trigger an\n   * upload when clicked.\n   */\n  clickable: true,\n\n  /**\n   * Whether hidden files in directories should be ignored.\n   */\n  ignoreHiddenFiles: true,\n\n  /**\n   * The default implementation of `accept` checks the file's mime type or\n   * extension against this list. This is a comma separated list of mime\n   * types or file extensions.\n   *\n   * Eg.: `image/*,application/pdf,.psd`\n   *\n   * If the Dropzone is `clickable` this option will also be used as\n   * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n   * parameter on the hidden file input as well.\n   */\n  acceptedFiles: null,\n\n  /**\n   * **Deprecated!**\n   * Use acceptedFiles instead.\n   */\n  acceptedMimeTypes: null,\n\n  /**\n   * If false, files will be added to the queue but the queue will not be\n   * processed automatically.\n   * This can be useful if you need some additional user input before sending\n   * files (or if you want want all files sent at once).\n   * If you're ready to send the file simply call `myDropzone.processQueue()`.\n   *\n   * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n   * section for more information.\n   */\n  autoProcessQueue: true,\n\n  /**\n   * If false, files added to the dropzone will not be queued by default.\n   * You'll have to call `enqueueFile(file)` manually.\n   */\n  autoQueue: true,\n\n  /**\n   * If `true`, this will add a link to every file preview to remove or cancel (if\n   * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n   * and `dictRemoveFile` options are used for the wording.\n   */\n  addRemoveLinks: false,\n\n  /**\n   * Defines where to display the file previews – if `null` the\n   * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n   * selector. The element should have the `dropzone-previews` class so\n   * the previews are displayed properly.\n   */\n  previewsContainer: null,\n\n  /**\n   * Set this to `true` if you don't want previews to be shown.\n   */\n  disablePreviews: false,\n\n  /**\n   * This is the element the hidden input field (which is used when clicking on the\n   * dropzone to trigger file selection) will be appended to. This might\n   * be important in case you use frameworks to switch the content of your page.\n   *\n   * Can be a selector string, or an element directly.\n   */\n  hiddenInputContainer: \"body\",\n\n  /**\n   * If null, no capture type will be specified\n   * If camera, mobile devices will skip the file selection and choose camera\n   * If microphone, mobile devices will skip the file selection and choose the microphone\n   * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n   * On apple devices multiple must be set to false.  AcceptedFiles may need to\n   * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n   */\n  capture: null,\n\n  /**\n   * **Deprecated**. Use `renameFile` instead.\n   */\n  renameFilename: null,\n\n  /**\n   * A function that is invoked before the file is uploaded to the server and renames the file.\n   * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n   * file that gets used during the upload can be accessed through `file.upload.filename`.\n   */\n  renameFile: null,\n\n  /**\n   * If `true` the fallback will be forced. This is very useful to test your server\n   * implementations first and make sure that everything works as\n   * expected without dropzone if you experience problems, and to test\n   * how your fallbacks will look.\n   */\n  forceFallback: false,\n\n  /**\n   * The text used before any files are dropped.\n   */\n  dictDefaultMessage: \"Drop files here to upload\",\n\n  /**\n   * The text that replaces the default message text it the browser is not supported.\n   */\n  dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n  /**\n   * The text that will be added before the fallback form.\n   * If you provide a  fallback element yourself, or if this option is `null` this will\n   * be ignored.\n   */\n  dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n  /**\n   * If the filesize is too big.\n   * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n   */\n  dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n  /**\n   * If the file doesn't match the file type.\n   */\n  dictInvalidFileType: \"You can't upload files of this type.\",\n\n  /**\n   * If the server response was invalid.\n   * `{{statusCode}}` will be replaced with the servers status code.\n   */\n  dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n   */\n  dictCancelUpload: \"Cancel upload\",\n\n  /**\n   * The text that is displayed if an upload was manually canceled\n   */\n  dictUploadCanceled: \"Upload canceled.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n   */\n  dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used to remove a file.\n   */\n  dictRemoveFile: \"Remove file\",\n\n  /**\n   * If this is not null, then the user will be prompted before removing a file.\n   */\n  dictRemoveFileConfirmation: null,\n\n  /**\n   * Displayed if `maxFiles` is st and exceeded.\n   * The string `{{maxFiles}}` will be replaced by the configuration value.\n   */\n  dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n  /**\n   * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n   * `b` for bytes.\n   */\n  dictFileSizeUnits: {\n    tb: \"TB\",\n    gb: \"GB\",\n    mb: \"MB\",\n    kb: \"KB\",\n    b: \"b\"\n  },\n\n  /**\n   * Called when dropzone initialized\n   * You can add event listeners here\n   */\n  init: function init() {},\n\n  /**\n   * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n   * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n   * of a function, this needs to return a map.\n   *\n   * The default implementation does nothing for normal uploads, but adds relevant information for\n   * chunked uploads.\n   *\n   * This is the same as adding hidden input fields in the form element.\n   */\n  params: function params(files, xhr, chunk) {\n    if (chunk) {\n      return {\n        dzuuid: chunk.file.upload.uuid,\n        dzchunkindex: chunk.index,\n        dztotalfilesize: chunk.file.size,\n        dzchunksize: this.options.chunkSize,\n        dztotalchunkcount: chunk.file.upload.totalChunkCount,\n        dzchunkbyteoffset: chunk.index * this.options.chunkSize\n      };\n    }\n  },\n\n  /**\n   * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n   * and a `done` function as parameters.\n   *\n   * If the done function is invoked without arguments, the file is \"accepted\" and will\n   * be processed. If you pass an error message, the file is rejected, and the error\n   * message will be displayed.\n   * This function will not be called if the file is too big or doesn't match the mime types.\n   */\n  accept: function accept(file, done) {\n    return done();\n  },\n\n  /**\n   * The callback that will be invoked when all chunks have been uploaded for a file.\n   * It gets the file for which the chunks have been uploaded as the first parameter,\n   * and the `done` function as second. `done()` needs to be invoked when everything\n   * needed to finish the upload process is done.\n   */\n  chunksUploaded: function chunksUploaded(file, done) {\n    done();\n  },\n\n  /**\n   * Gets called when the browser is not supported.\n   * The default implementation shows the fallback input field and adds\n   * a text.\n   */\n  fallback: function fallback() {\n    // This code should pass in IE7... :(\n    var messageElement;\n    this.element.className = \"\".concat(this.element.className, \" dz-browser-not-supported\");\n\n    var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName(\"div\"), true),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var child = _step.value;\n\n        if (/(^| )dz-message($| )/.test(child.className)) {\n          messageElement = child;\n          child.className = \"dz-message\"; // Removes the 'dz-default' class\n\n          break;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    if (!messageElement) {\n      messageElement = Dropzone.createElement('<div class=\"dz-message\"><span></span></div>');\n      this.element.appendChild(messageElement);\n    }\n\n    var span = messageElement.getElementsByTagName(\"span\")[0];\n\n    if (span) {\n      if (span.textContent != null) {\n        span.textContent = this.options.dictFallbackMessage;\n      } else if (span.innerText != null) {\n        span.innerText = this.options.dictFallbackMessage;\n      }\n    }\n\n    return this.element.appendChild(this.getFallbackForm());\n  },\n\n  /**\n   * Gets called to calculate the thumbnail dimensions.\n   *\n   * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n   *\n   *  - `srcWidth` & `srcHeight` (required)\n   *  - `trgWidth` & `trgHeight` (required)\n   *  - `srcX` & `srcY` (optional, default `0`)\n   *  - `trgX` & `trgY` (optional, default `0`)\n   *\n   * Those values are going to be used by `ctx.drawImage()`.\n   */\n  resize: function resize(file, width, height, resizeMethod) {\n    var info = {\n      srcX: 0,\n      srcY: 0,\n      srcWidth: file.width,\n      srcHeight: file.height\n    };\n    var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified\n\n    if (width == null && height == null) {\n      width = info.srcWidth;\n      height = info.srcHeight;\n    } else if (width == null) {\n      width = height * srcRatio;\n    } else if (height == null) {\n      height = width / srcRatio;\n    } // Make sure images aren't upscaled\n\n\n    width = Math.min(width, info.srcWidth);\n    height = Math.min(height, info.srcHeight);\n    var trgRatio = width / height;\n\n    if (info.srcWidth > width || info.srcHeight > height) {\n      // Image is bigger and needs rescaling\n      if (resizeMethod === \"crop\") {\n        if (srcRatio > trgRatio) {\n          info.srcHeight = file.height;\n          info.srcWidth = info.srcHeight * trgRatio;\n        } else {\n          info.srcWidth = file.width;\n          info.srcHeight = info.srcWidth / trgRatio;\n        }\n      } else if (resizeMethod === \"contain\") {\n        // Method 'contain'\n        if (srcRatio > trgRatio) {\n          height = width / srcRatio;\n        } else {\n          width = height * srcRatio;\n        }\n      } else {\n        throw new Error(\"Unknown resizeMethod '\".concat(resizeMethod, \"'\"));\n      }\n    }\n\n    info.srcX = (file.width - info.srcWidth) / 2;\n    info.srcY = (file.height - info.srcHeight) / 2;\n    info.trgWidth = width;\n    info.trgHeight = height;\n    return info;\n  },\n\n  /**\n   * Can be used to transform the file (for example, resize an image if necessary).\n   *\n   * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n   * images according to those dimensions.\n   *\n   * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n   * to be invoked with the file when the transformation is done.\n   */\n  transformFile: function transformFile(file, done) {\n    if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n      return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n    } else {\n      return done(file);\n    }\n  },\n\n  /**\n   * A string that contains the template used for each dropped\n   * file. Change it to fulfill your needs but make sure to properly\n   * provide all elements.\n   *\n   * If you want to use an actual HTML element instead of providing a String\n   * as a config option, you could create a div with the id `tpl`,\n   * put the template inside it and provide the element like this:\n   *\n   *     document\n   *       .querySelector('#tpl')\n   *       .innerHTML\n   *\n   */\n  previewTemplate: preview_template,\n\n  /*\n   Those functions register themselves to the events on init and handle all\n   the user interface specific stuff. Overwriting them won't break the upload\n   but can break the way it's displayed.\n   You can overwrite them if you don't like the default behavior. If you just\n   want to add an additional event handler, register it on the dropzone object\n   and don't overwrite those options.\n   */\n  // Those are self explanatory and simply concern the DragnDrop.\n  drop: function drop(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragstart: function dragstart(e) {},\n  dragend: function dragend(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragenter: function dragenter(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragover: function dragover(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragleave: function dragleave(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  paste: function paste(e) {},\n  // Called whenever there are no files left in the dropzone anymore, and the\n  // dropzone should be displayed as if in the initial state.\n  reset: function reset() {\n    return this.element.classList.remove(\"dz-started\");\n  },\n  // Called when a file is added to the queue\n  // Receives `file`\n  addedfile: function addedfile(file) {\n    var _this = this;\n\n    if (this.element === this.previewsContainer) {\n      this.element.classList.add(\"dz-started\");\n    }\n\n    if (this.previewsContainer && !this.options.disablePreviews) {\n      file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n      file.previewTemplate = file.previewElement; // Backwards compatibility\n\n      this.previewsContainer.appendChild(file.previewElement);\n\n      var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-name]\"), true),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var node = _step2.value;\n          node.textContent = file.name;\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-size]\"), true),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          node = _step3.value;\n          node.innerHTML = this.filesize(file.size);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      if (this.options.addRemoveLinks) {\n        file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\".concat(this.options.dictRemoveFile, \"</a>\"));\n        file.previewElement.appendChild(file._removeLink);\n      }\n\n      var removeFileEvent = function removeFileEvent(e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        if (file.status === Dropzone.UPLOADING) {\n          return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () {\n            return _this.removeFile(file);\n          });\n        } else {\n          if (_this.options.dictRemoveFileConfirmation) {\n            return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () {\n              return _this.removeFile(file);\n            });\n          } else {\n            return _this.removeFile(file);\n          }\n        }\n      };\n\n      var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-remove]\"), true),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var removeLink = _step4.value;\n          removeLink.addEventListener(\"click\", removeFileEvent);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n    }\n  },\n  // Called whenever a file is removed.\n  removedfile: function removedfile(file) {\n    if (file.previewElement != null && file.previewElement.parentNode != null) {\n      file.previewElement.parentNode.removeChild(file.previewElement);\n    }\n\n    return this._updateMaxFilesReachedClass();\n  },\n  // Called when a thumbnail has been generated\n  // Receives `file` and `dataUrl`\n  thumbnail: function thumbnail(file, dataUrl) {\n    if (file.previewElement) {\n      file.previewElement.classList.remove(\"dz-file-preview\");\n\n      var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\"), true),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var thumbnailElement = _step5.value;\n          thumbnailElement.alt = file.name;\n          thumbnailElement.src = dataUrl;\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return setTimeout(function () {\n        return file.previewElement.classList.add(\"dz-image-preview\");\n      }, 1);\n    }\n  },\n  // Called whenever an error occurs\n  // Receives `file` and `message`\n  error: function error(file, message) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-error\");\n\n      if (typeof message !== \"string\" && message.error) {\n        message = message.error;\n      }\n\n      var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-errormessage]\"), true),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var node = _step6.value;\n          node.textContent = message;\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n    }\n  },\n  errormultiple: function errormultiple() {},\n  // Called when a file gets processed. Since there is a cue, not all added\n  // files are processed immediately.\n  // Receives `file`\n  processing: function processing(file) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-processing\");\n\n      if (file._removeLink) {\n        return file._removeLink.innerHTML = this.options.dictCancelUpload;\n      }\n    }\n  },\n  processingmultiple: function processingmultiple() {},\n  // Called whenever the upload progress gets updated.\n  // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n  // To get the total number of bytes of the file, use `file.size`\n  uploadprogress: function uploadprogress(file, progress, bytesSent) {\n    if (file.previewElement) {\n      var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\"), true),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var node = _step7.value;\n          node.nodeName === \"PROGRESS\" ? node.value = progress : node.style.width = \"\".concat(progress, \"%\");\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n    }\n  },\n  // Called whenever the total upload progress gets updated.\n  // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n  totaluploadprogress: function totaluploadprogress() {},\n  // Called just before the file is sent. Gets the `xhr` object as second\n  // parameter, so you can modify it (for example to add a CSRF token) and a\n  // `formData` object to add additional information.\n  sending: function sending() {},\n  sendingmultiple: function sendingmultiple() {},\n  // When the complete upload is finished and successful\n  // Receives `file`\n  success: function success(file) {\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-success\");\n    }\n  },\n  successmultiple: function successmultiple() {},\n  // When the upload is canceled.\n  canceled: function canceled(file) {\n    return this.emit(\"error\", file, this.options.dictUploadCanceled);\n  },\n  canceledmultiple: function canceledmultiple() {},\n  // When the upload is finished, either with success or an error.\n  // Receives `file`\n  complete: function complete(file) {\n    if (file._removeLink) {\n      file._removeLink.innerHTML = this.options.dictRemoveFile;\n    }\n\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-complete\");\n    }\n  },\n  completemultiple: function completemultiple() {},\n  maxfilesexceeded: function maxfilesexceeded() {},\n  maxfilesreached: function maxfilesreached() {},\n  queuecomplete: function queuecomplete() {},\n  addedfiles: function addedfiles() {}\n};\n/* harmony default export */ var src_options = (defaultOptions);\n;// CONCATENATED MODULE: ./src/dropzone.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); }\n\nfunction dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Dropzone = /*#__PURE__*/function (_Emitter) {\n  _inherits(Dropzone, _Emitter);\n\n  var _super = _createSuper(Dropzone);\n\n  function Dropzone(el, options) {\n    var _this;\n\n    dropzone_classCallCheck(this, Dropzone);\n\n    _this = _super.call(this);\n    var fallback, left;\n    _this.element = el; // For backwards compatibility since the version was in the prototype previously\n\n    _this.version = Dropzone.version;\n    _this.clickableElements = [];\n    _this.listeners = [];\n    _this.files = []; // All files\n\n    if (typeof _this.element === \"string\") {\n      _this.element = document.querySelector(_this.element);\n    } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n\n\n    if (!_this.element || _this.element.nodeType == null) {\n      throw new Error(\"Invalid dropzone element.\");\n    }\n\n    if (_this.element.dropzone) {\n      throw new Error(\"Dropzone already attached.\");\n    } // Now add this dropzone to the instances.\n\n\n    Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself.\n\n    _this.element.dropzone = _assertThisInitialized(_this);\n    var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {};\n    _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {});\n    _this.options.previewTemplate = _this.options.previewTemplate.replace(/\\n*/g, \"\"); // If the browser failed, just call the fallback and leave\n\n    if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n      return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this)));\n    } // @options.url = @element.getAttribute \"action\" unless @options.url?\n\n\n    if (_this.options.url == null) {\n      _this.options.url = _this.element.getAttribute(\"action\");\n    }\n\n    if (!_this.options.url) {\n      throw new Error(\"No URL provided.\");\n    }\n\n    if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) {\n      throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n    }\n\n    if (_this.options.uploadMultiple && _this.options.chunking) {\n      throw new Error(\"You cannot set both: uploadMultiple and chunking.\");\n    } // Backwards compatibility\n\n\n    if (_this.options.acceptedMimeTypes) {\n      _this.options.acceptedFiles = _this.options.acceptedMimeTypes;\n      delete _this.options.acceptedMimeTypes;\n    } // Backwards compatibility\n\n\n    if (_this.options.renameFilename != null) {\n      _this.options.renameFile = function (file) {\n        return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file);\n      };\n    }\n\n    if (typeof _this.options.method === \"string\") {\n      _this.options.method = _this.options.method.toUpperCase();\n    }\n\n    if ((fallback = _this.getExistingFallback()) && fallback.parentNode) {\n      // Remove the fallback\n      fallback.parentNode.removeChild(fallback);\n    } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n\n\n    if (_this.options.previewsContainer !== false) {\n      if (_this.options.previewsContainer) {\n        _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, \"previewsContainer\");\n      } else {\n        _this.previewsContainer = _this.element;\n      }\n    }\n\n    if (_this.options.clickable) {\n      if (_this.options.clickable === true) {\n        _this.clickableElements = [_this.element];\n      } else {\n        _this.clickableElements = Dropzone.getElements(_this.options.clickable, \"clickable\");\n      }\n    }\n\n    _this.init();\n\n    return _this;\n  } // Returns all files that have been accepted\n\n\n  dropzone_createClass(Dropzone, [{\n    key: \"getAcceptedFiles\",\n    value: function getAcceptedFiles() {\n      return this.files.filter(function (file) {\n        return file.accepted;\n      }).map(function (file) {\n        return file;\n      });\n    } // Returns all files that have been rejected\n    // Not sure when that's going to be useful, but added for completeness.\n\n  }, {\n    key: \"getRejectedFiles\",\n    value: function getRejectedFiles() {\n      return this.files.filter(function (file) {\n        return !file.accepted;\n      }).map(function (file) {\n        return file;\n      });\n    }\n  }, {\n    key: \"getFilesWithStatus\",\n    value: function getFilesWithStatus(status) {\n      return this.files.filter(function (file) {\n        return file.status === status;\n      }).map(function (file) {\n        return file;\n      });\n    } // Returns all files that are in the queue\n\n  }, {\n    key: \"getQueuedFiles\",\n    value: function getQueuedFiles() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    }\n  }, {\n    key: \"getUploadingFiles\",\n    value: function getUploadingFiles() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    }\n  }, {\n    key: \"getAddedFiles\",\n    value: function getAddedFiles() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    } // Files that are either queued or uploading\n\n  }, {\n    key: \"getActiveFiles\",\n    value: function getActiveFiles() {\n      return this.files.filter(function (file) {\n        return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED;\n      }).map(function (file) {\n        return file;\n      });\n    } // The function that gets called when Dropzone is initialized. You\n    // can (and should) setup event listeners inside this function.\n\n  }, {\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      // In case it isn't set already\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><button class=\\\"dz-button\\\" type=\\\"button\\\">\".concat(this.options.dictDefaultMessage, \"</button></div>\")));\n      }\n\n      if (this.clickableElements.length) {\n        var setupHiddenFileInput = function setupHiddenFileInput() {\n          if (_this2.hiddenFileInput) {\n            _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput);\n          }\n\n          _this2.hiddenFileInput = document.createElement(\"input\");\n\n          _this2.hiddenFileInput.setAttribute(\"type\", \"file\");\n\n          if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) {\n            _this2.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n          }\n\n          _this2.hiddenFileInput.className = \"dz-hidden-input\";\n\n          if (_this2.options.acceptedFiles !== null) {\n            _this2.hiddenFileInput.setAttribute(\"accept\", _this2.options.acceptedFiles);\n          }\n\n          if (_this2.options.capture !== null) {\n            _this2.hiddenFileInput.setAttribute(\"capture\", _this2.options.capture);\n          } // Making sure that no one can \"tab\" into this field.\n\n\n          _this2.hiddenFileInput.setAttribute(\"tabindex\", \"-1\"); // Not setting `display=\"none\"` because some browsers don't accept clicks\n          // on elements that aren't displayed.\n\n\n          _this2.hiddenFileInput.style.visibility = \"hidden\";\n          _this2.hiddenFileInput.style.position = \"absolute\";\n          _this2.hiddenFileInput.style.top = \"0\";\n          _this2.hiddenFileInput.style.left = \"0\";\n          _this2.hiddenFileInput.style.height = \"0\";\n          _this2.hiddenFileInput.style.width = \"0\";\n          Dropzone.getElement(_this2.options.hiddenInputContainer, \"hiddenInputContainer\").appendChild(_this2.hiddenFileInput);\n\n          _this2.hiddenFileInput.addEventListener(\"change\", function () {\n            var files = _this2.hiddenFileInput.files;\n\n            if (files.length) {\n              var _iterator = dropzone_createForOfIteratorHelper(files, true),\n                  _step;\n\n              try {\n                for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                  var file = _step.value;\n\n                  _this2.addFile(file);\n                }\n              } catch (err) {\n                _iterator.e(err);\n              } finally {\n                _iterator.f();\n              }\n            }\n\n            _this2.emit(\"addedfiles\", files);\n\n            setupHiddenFileInput();\n          });\n        };\n\n        setupHiddenFileInput();\n      }\n\n      this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself.\n      // They're not in @setupEventListeners() because they shouldn't be removed\n      // again when the dropzone gets disabled.\n\n      var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var eventName = _step2.value;\n          this.on(eventName, this.options[eventName]);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.on(\"uploadprogress\", function () {\n        return _this2.updateTotalUploadProgress();\n      });\n      this.on(\"removedfile\", function () {\n        return _this2.updateTotalUploadProgress();\n      });\n      this.on(\"canceled\", function (file) {\n        return _this2.emit(\"complete\", file);\n      }); // Emit a `queuecomplete` event if all files finished uploading.\n\n      this.on(\"complete\", function (file) {\n        if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) {\n          // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n          return setTimeout(function () {\n            return _this2.emit(\"queuecomplete\");\n          }, 0);\n        }\n      });\n\n      var containsFiles = function containsFiles(e) {\n        if (e.dataTransfer.types) {\n          // Because e.dataTransfer.types is an Object in\n          // IE, we need to iterate like this instead of\n          // using e.dataTransfer.types.some()\n          for (var i = 0; i < e.dataTransfer.types.length; i++) {\n            if (e.dataTransfer.types[i] === \"Files\") return true;\n          }\n        }\n\n        return false;\n      };\n\n      var noPropagation = function noPropagation(e) {\n        // If there are no files, we don't want to stop\n        // propagation so we don't interfere with other\n        // drag and drop behaviour.\n        if (!containsFiles(e)) return;\n        e.stopPropagation();\n\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      }; // Create the listeners\n\n\n      this.listeners = [{\n        element: this.element,\n        events: {\n          dragstart: function dragstart(e) {\n            return _this2.emit(\"dragstart\", e);\n          },\n          dragenter: function dragenter(e) {\n            noPropagation(e);\n            return _this2.emit(\"dragenter\", e);\n          },\n          dragover: function dragover(e) {\n            // Makes it possible to drag files from chrome's download bar\n            // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n            // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n            var efct;\n\n            try {\n              efct = e.dataTransfer.effectAllowed;\n            } catch (error) {}\n\n            e.dataTransfer.dropEffect = \"move\" === efct || \"linkMove\" === efct ? \"move\" : \"copy\";\n            noPropagation(e);\n            return _this2.emit(\"dragover\", e);\n          },\n          dragleave: function dragleave(e) {\n            return _this2.emit(\"dragleave\", e);\n          },\n          drop: function drop(e) {\n            noPropagation(e);\n            return _this2.drop(e);\n          },\n          dragend: function dragend(e) {\n            return _this2.emit(\"dragend\", e);\n          }\n        } // This is disabled right now, because the browsers don't implement it properly.\n        // \"paste\": (e) =>\n        //   noPropagation e\n        //   @paste e\n\n      }];\n      this.clickableElements.forEach(function (clickableElement) {\n        return _this2.listeners.push({\n          element: clickableElement,\n          events: {\n            click: function click(evt) {\n              // Only the actual dropzone or the message element should trigger file selection\n              if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(\".dz-message\"))) {\n                _this2.hiddenFileInput.click(); // Forward the click\n\n              }\n\n              return true;\n            }\n          }\n        });\n      });\n      this.enable();\n      return this.options.init.call(this);\n    } // Not fully tested yet\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.disable();\n      this.removeAllFiles(true);\n\n      if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    }\n  }, {\n    key: \"updateTotalUploadProgress\",\n    value: function updateTotalUploadProgress() {\n      var totalUploadProgress;\n      var totalBytesSent = 0;\n      var totalBytes = 0;\n      var activeFiles = this.getActiveFiles();\n\n      if (activeFiles.length) {\n        var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true),\n            _step3;\n\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var file = _step3.value;\n            totalBytesSent += file.upload.bytesSent;\n            totalBytes += file.upload.total;\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    } // @options.paramName can be a function taking one parameter rather than a string.\n    // A parameter name for a file is obtained simply by calling this with an index number.\n\n  }, {\n    key: \"_getParamName\",\n    value: function _getParamName(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\".concat(this.options.paramName).concat(this.options.uploadMultiple ? \"[\".concat(n, \"]\") : \"\");\n      }\n    } // If @options.renameFile is a function,\n    // the function will be used to rename the file.name before appending it to the formData\n\n  }, {\n    key: \"_renameFile\",\n    value: function _renameFile(file) {\n      if (typeof this.options.renameFile !== \"function\") {\n        return file.name;\n      }\n\n      return this.options.renameFile(file);\n    } // Returns a form that can be used as fallback if the browser does not support DragnDrop\n    //\n    // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n    // This code has to pass in IE7 :(\n\n  }, {\n    key: \"getFallbackForm\",\n    value: function getFallbackForm() {\n      var existingFallback, form;\n\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n\n      var fieldsString = '<div class=\"dz-fallback\">';\n\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\".concat(this.options.dictFallbackText, \"</p>\");\n      }\n\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\".concat(this._getParamName(0), \"\\\" \").concat(this.options.uploadMultiple ? 'multiple=\"multiple\"' : undefined, \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\");\n      var fields = Dropzone.createElement(fieldsString);\n\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\".concat(this.options.url, \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\").concat(this.options.method, \"\\\"></form>\"));\n        form.appendChild(fields);\n      } else {\n        // Make sure that the enctype and method attributes are set properly\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n\n      return form != null ? form : fields;\n    } // Returns the fallback elements if they exist already\n    //\n    // This code has to pass in IE7 :(\n\n  }, {\n    key: \"getExistingFallback\",\n    value: function getExistingFallback() {\n      var getFallback = function getFallback(elements) {\n        var _iterator4 = dropzone_createForOfIteratorHelper(elements, true),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var el = _step4.value;\n\n            if (/(^| )fallback($| )/.test(el.className)) {\n              return el;\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      };\n\n      for (var _i = 0, _arr = [\"div\", \"form\"]; _i < _arr.length; _i++) {\n        var tagName = _arr[_i];\n        var fallback;\n\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    } // Activates all listeners stored in @listeners\n\n  }, {\n    key: \"setupEventListeners\",\n    value: function setupEventListeners() {\n      return this.listeners.map(function (elementListeners) {\n        return function () {\n          var result = [];\n\n          for (var event in elementListeners.events) {\n            var listener = elementListeners.events[event];\n            result.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n\n          return result;\n        }();\n      });\n    } // Deactivates all listeners stored in @listeners\n\n  }, {\n    key: \"removeEventListeners\",\n    value: function removeEventListeners() {\n      return this.listeners.map(function (elementListeners) {\n        return function () {\n          var result = [];\n\n          for (var event in elementListeners.events) {\n            var listener = elementListeners.events[event];\n            result.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n\n          return result;\n        }();\n      });\n    } // Removes all event listeners and cancels all files in the queue or being processed.\n\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      var _this3 = this;\n\n      this.clickableElements.forEach(function (element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      this.disabled = true;\n      return this.files.map(function (file) {\n        return _this3.cancelUpload(file);\n      });\n    }\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      delete this.disabled;\n      this.clickableElements.forEach(function (element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    } // Returns a nicely formatted filesize\n\n  }, {\n    key: \"filesize\",\n    value: function filesize(size) {\n      var selectedSize = 0;\n      var selectedUnit = \"b\";\n\n      if (size > 0) {\n        var units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n        for (var i = 0; i < units.length; i++) {\n          var unit = units[i];\n          var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n\n        selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n      }\n\n      return \"<strong>\".concat(selectedSize, \"</strong> \").concat(this.options.dictFileSizeUnits[selectedUnit]);\n    } // Adds or removes the `dz-max-files-reached` class from the form.\n\n  }, {\n    key: \"_updateMaxFilesReachedClass\",\n    value: function _updateMaxFilesReachedClass() {\n      if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit(\"maxfilesreached\", this.files);\n        }\n\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    }\n  }, {\n    key: \"drop\",\n    value: function drop(e) {\n      if (!e.dataTransfer) {\n        return;\n      }\n\n      this.emit(\"drop\", e); // Convert the FileList to an Array\n      // This is necessary for IE11\n\n      var files = [];\n\n      for (var i = 0; i < e.dataTransfer.files.length; i++) {\n        files[i] = e.dataTransfer.files[i];\n      } // Even if it's a folder, files.length will contain the folders.\n\n\n      if (files.length) {\n        var items = e.dataTransfer.items;\n\n        if (items && items.length && items[0].webkitGetAsEntry != null) {\n          // The browser supports dropping of folders, so handle items instead of files\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n\n      this.emit(\"addedfiles\", files);\n    }\n  }, {\n    key: \"paste\",\n    value: function paste(e) {\n      if (__guard__(e != null ? e.clipboardData : undefined, function (x) {\n        return x.items;\n      }) == null) {\n        return;\n      }\n\n      this.emit(\"paste\", e);\n      var items = e.clipboardData.items;\n\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    }\n  }, {\n    key: \"handleFiles\",\n    value: function handleFiles(files) {\n      var _iterator5 = dropzone_createForOfIteratorHelper(files, true),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var file = _step5.value;\n          this.addFile(file);\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n    } // When a folder is dropped (or files are pasted), items must be handled\n    // instead of files.\n\n  }, {\n    key: \"_addFilesFromItems\",\n    value: function _addFilesFromItems(items) {\n      var _this4 = this;\n\n      return function () {\n        var result = [];\n\n        var _iterator6 = dropzone_createForOfIteratorHelper(items, true),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var item = _step6.value;\n            var entry;\n\n            if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) {\n              if (entry.isFile) {\n                result.push(_this4.addFile(item.getAsFile()));\n              } else if (entry.isDirectory) {\n                // Append all files from that directory to files\n                result.push(_this4._addFilesFromDirectory(entry, entry.name));\n              } else {\n                result.push(undefined);\n              }\n            } else if (item.getAsFile != null) {\n              if (item.kind == null || item.kind === \"file\") {\n                result.push(_this4.addFile(item.getAsFile()));\n              } else {\n                result.push(undefined);\n              }\n            } else {\n              result.push(undefined);\n            }\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n\n        return result;\n      }();\n    } // Goes through the directory, and adds each file it finds recursively\n\n  }, {\n    key: \"_addFilesFromDirectory\",\n    value: function _addFilesFromDirectory(directory, path) {\n      var _this5 = this;\n\n      var dirReader = directory.createReader();\n\n      var errorHandler = function errorHandler(error) {\n        return __guardMethod__(console, \"log\", function (o) {\n          return o.log(error);\n        });\n      };\n\n      var readEntries = function readEntries() {\n        return dirReader.readEntries(function (entries) {\n          if (entries.length > 0) {\n            var _iterator7 = dropzone_createForOfIteratorHelper(entries, true),\n                _step7;\n\n            try {\n              for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n                var entry = _step7.value;\n\n                if (entry.isFile) {\n                  entry.file(function (file) {\n                    if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === \".\") {\n                      return;\n                    }\n\n                    file.fullPath = \"\".concat(path, \"/\").concat(file.name);\n                    return _this5.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this5._addFilesFromDirectory(entry, \"\".concat(path, \"/\").concat(entry.name));\n                }\n              } // Recursively call readEntries() again, since browser only handle\n              // the first 100 entries.\n              // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n\n            } catch (err) {\n              _iterator7.e(err);\n            } finally {\n              _iterator7.f();\n            }\n\n            readEntries();\n          }\n\n          return null;\n        }, errorHandler);\n      };\n\n      return readEntries();\n    } // If `done()` is called without argument the file is accepted\n    // If you call it with an error message, the file is rejected\n    // (This allows for asynchronous validation)\n    //\n    // This function checks the filesize, and if the file.type passes the\n    // `acceptedFiles` check.\n\n  }, {\n    key: \"accept\",\n    value: function accept(file, done) {\n      if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) {\n        done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        done(this.options.dictInvalidFileType);\n      } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        this.emit(\"maxfilesexceeded\", file);\n      } else {\n        this.options.accept.call(this, file, done);\n      }\n    }\n  }, {\n    key: \"addFile\",\n    value: function addFile(file) {\n      var _this6 = this;\n\n      file.upload = {\n        uuid: Dropzone.uuidv4(),\n        progress: 0,\n        // Setting the total upload size to file.size for the beginning\n        // It's actual different than the size to be transmitted.\n        total: file.size,\n        bytesSent: 0,\n        filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and\n        // thus the chunks — might change if `options.transformFile` is set\n        // and does something to the data.\n\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n\n      this._enqueueThumbnail(file);\n\n      this.accept(file, function (error) {\n        if (error) {\n          file.accepted = false;\n\n          _this6._errorProcessing([file], error); // Will set the file.status\n\n        } else {\n          file.accepted = true;\n\n          if (_this6.options.autoQueue) {\n            _this6.enqueueFile(file);\n          } // Will set .accepted = true\n\n        }\n\n        _this6._updateMaxFilesReachedClass();\n      });\n    } // Wrapper for enqueueFile\n\n  }, {\n    key: \"enqueueFiles\",\n    value: function enqueueFiles(files) {\n      var _iterator8 = dropzone_createForOfIteratorHelper(files, true),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var file = _step8.value;\n          this.enqueueFile(file);\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      return null;\n    }\n  }, {\n    key: \"enqueueFile\",\n    value: function enqueueFile(file) {\n      var _this7 = this;\n\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n\n        if (this.options.autoProcessQueue) {\n          return setTimeout(function () {\n            return _this7.processQueue();\n          }, 0); // Deferring the call\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    }\n  }, {\n    key: \"_enqueueThumbnail\",\n    value: function _enqueueThumbnail(file) {\n      var _this8 = this;\n\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n\n        return setTimeout(function () {\n          return _this8._processThumbnailQueue();\n        }, 0); // Deferring the call\n      }\n    }\n  }, {\n    key: \"_processThumbnailQueue\",\n    value: function _processThumbnailQueue() {\n      var _this9 = this;\n\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n\n      this._processingThumbnail = true;\n\n      var file = this._thumbnailQueue.shift();\n\n      return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) {\n        _this9.emit(\"thumbnail\", file, dataUrl);\n\n        _this9._processingThumbnail = false;\n        return _this9._processThumbnailQueue();\n      });\n    } // Can be called by the user to remove a file\n\n  }, {\n    key: \"removeFile\",\n    value: function removeFile(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    } // Removes all files that aren't currently processed from the list\n\n  }, {\n    key: \"removeAllFiles\",\n    value: function removeAllFiles(cancelIfNecessary) {\n      // Create a copy of files since removeFile() changes the @files array.\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n\n      var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var file = _step9.value;\n\n          if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n            this.removeFile(file);\n          }\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      return null;\n    } // Resizes an image before it gets sent to the server. This function is the default behavior of\n    // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n    // the resized blob.\n\n  }, {\n    key: \"resizeImage\",\n    value: function resizeImage(file, width, height, resizeMethod, callback) {\n      var _this10 = this;\n\n      return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) {\n        if (canvas == null) {\n          // The image has not been resized\n          return callback(file);\n        } else {\n          var resizeMimeType = _this10.options.resizeMimeType;\n\n          if (resizeMimeType == null) {\n            resizeMimeType = file.type;\n          }\n\n          var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality);\n\n          if (resizeMimeType === \"image/jpeg\" || resizeMimeType === \"image/jpg\") {\n            // Now add the original EXIF information\n            resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n          }\n\n          return callback(Dropzone.dataURItoBlob(resizedDataURL));\n        }\n      });\n    }\n  }, {\n    key: \"createThumbnail\",\n    value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n      var _this11 = this;\n\n      var fileReader = new FileReader();\n\n      fileReader.onload = function () {\n        file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector\n\n        if (file.type === \"image/svg+xml\") {\n          if (callback != null) {\n            callback(fileReader.result);\n          }\n\n          return;\n        }\n\n        _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n      };\n\n      fileReader.readAsDataURL(file);\n    } // `mockFile` needs to have these attributes:\n    //\n    //     { name: 'name', size: 12345, imageUrl: '' }\n    //\n    // `callback` will be invoked when the image has been downloaded and displayed.\n    // `crossOrigin` will be added to the `img` tag when accessing the file.\n\n  }, {\n    key: \"displayExistingFile\",\n    value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) {\n      var _this12 = this;\n\n      var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n      this.emit(\"addedfile\", mockFile);\n      this.emit(\"complete\", mockFile);\n\n      if (!resizeThumbnail) {\n        this.emit(\"thumbnail\", mockFile, imageUrl);\n        if (callback) callback();\n      } else {\n        var onDone = function onDone(thumbnail) {\n          _this12.emit(\"thumbnail\", mockFile, thumbnail);\n\n          if (callback) callback();\n        };\n\n        mockFile.dataURL = imageUrl;\n        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, onDone, crossOrigin);\n      }\n    }\n  }, {\n    key: \"createThumbnailFromUrl\",\n    value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n      var _this13 = this;\n\n      // Not using `new Image` here because of a bug in latest Chrome versions.\n      // See https://github.com/enyo/dropzone/pull/226\n      var img = document.createElement(\"img\");\n\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      } // fixOrientation is not needed anymore with browsers handling imageOrientation\n\n\n      fixOrientation = getComputedStyle(document.body)[\"imageOrientation\"] == \"from-image\" ? false : fixOrientation;\n\n      img.onload = function () {\n        var loadExif = function loadExif(callback) {\n          return callback(1);\n        };\n\n        if (typeof EXIF !== \"undefined\" && EXIF !== null && fixOrientation) {\n          loadExif = function loadExif(callback) {\n            return EXIF.getData(img, function () {\n              return callback(EXIF.getTag(this, \"Orientation\"));\n            });\n          };\n        }\n\n        return loadExif(function (orientation) {\n          file.width = img.width;\n          file.height = img.height;\n\n          var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod);\n\n          var canvas = document.createElement(\"canvas\");\n          var ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n\n          if (orientation > 4) {\n            canvas.width = resizeInfo.trgHeight;\n            canvas.height = resizeInfo.trgWidth;\n          }\n\n          switch (orientation) {\n            case 2:\n              // horizontal flip\n              ctx.translate(canvas.width, 0);\n              ctx.scale(-1, 1);\n              break;\n\n            case 3:\n              // 180° rotate left\n              ctx.translate(canvas.width, canvas.height);\n              ctx.rotate(Math.PI);\n              break;\n\n            case 4:\n              // vertical flip\n              ctx.translate(0, canvas.height);\n              ctx.scale(1, -1);\n              break;\n\n            case 5:\n              // vertical flip + 90 rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.scale(1, -1);\n              break;\n\n            case 6:\n              // 90° rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.translate(0, -canvas.width);\n              break;\n\n            case 7:\n              // horizontal flip + 90 rotate right\n              ctx.rotate(0.5 * Math.PI);\n              ctx.translate(canvas.height, -canvas.width);\n              ctx.scale(-1, 1);\n              break;\n\n            case 8:\n              // 90° rotate left\n              ctx.rotate(-0.5 * Math.PI);\n              ctx.translate(-canvas.height, 0);\n              break;\n          } // This is a bugfix for iOS' scaling bug.\n\n\n          drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          var thumbnail = canvas.toDataURL(\"image/png\");\n\n          if (callback != null) {\n            return callback(thumbnail, canvas);\n          }\n        });\n      };\n\n      if (callback != null) {\n        img.onerror = callback;\n      }\n\n      return img.src = file.dataURL;\n    } // Goes through the queue and processes files if there aren't too many already.\n\n  }, {\n    key: \"processQueue\",\n    value: function processQueue() {\n      var parallelUploads = this.options.parallelUploads;\n      var processingLength = this.getUploadingFiles().length;\n      var i = processingLength; // There are already at least as many files uploading than should be\n\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n\n      var queuedFiles = this.getQueuedFiles();\n\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n\n      if (this.options.uploadMultiple) {\n        // The files should be uploaded in one request\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          } // Nothing left to process\n\n\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    } // Wrapper for `processFiles`\n\n  }, {\n    key: \"processFile\",\n    value: function processFile(file) {\n      return this.processFiles([file]);\n    } // Loads the file, then calls finishedLoading()\n\n  }, {\n    key: \"processFiles\",\n    value: function processFiles(files) {\n      var _iterator10 = dropzone_createForOfIteratorHelper(files, true),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var file = _step10.value;\n          file.processing = true; // Backwards compatibility\n\n          file.status = Dropzone.UPLOADING;\n          this.emit(\"processing\", file);\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n\n      return this.uploadFiles(files);\n    }\n  }, {\n    key: \"_getFilesWithXhr\",\n    value: function _getFilesWithXhr(xhr) {\n      var files;\n      return files = this.files.filter(function (file) {\n        return file.xhr === xhr;\n      }).map(function (file) {\n        return file;\n      });\n    } // Cancels the file upload and sets the status to CANCELED\n    // **if** the file is actually being uploaded.\n    // If it's still in the queue, the file is being removed from it and the status\n    // set to CANCELED.\n\n  }, {\n    key: \"cancelUpload\",\n    value: function cancelUpload(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        var groupedFiles = this._getFilesWithXhr(file.xhr);\n\n        var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n            _step11;\n\n        try {\n          for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n            var groupedFile = _step11.value;\n            groupedFile.status = Dropzone.CANCELED;\n          }\n        } catch (err) {\n          _iterator11.e(err);\n        } finally {\n          _iterator11.f();\n        }\n\n        if (typeof file.xhr !== \"undefined\") {\n          file.xhr.abort();\n        }\n\n        var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n            _step12;\n\n        try {\n          for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n            var _groupedFile = _step12.value;\n            this.emit(\"canceled\", _groupedFile);\n          }\n        } catch (err) {\n          _iterator12.e(err);\n        } finally {\n          _iterator12.f();\n        }\n\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    }\n  }, {\n    key: \"resolveOption\",\n    value: function resolveOption(option) {\n      if (typeof option === \"function\") {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n\n        return option.apply(this, args);\n      }\n\n      return option;\n    }\n  }, {\n    key: \"uploadFile\",\n    value: function uploadFile(file) {\n      return this.uploadFiles([file]);\n    }\n  }, {\n    key: \"uploadFiles\",\n    value: function uploadFiles(files) {\n      var _this14 = this;\n\n      this._transformFiles(files, function (transformedFiles) {\n        if (_this14.options.chunking) {\n          // Chunking is not allowed to be used with `uploadMultiple` so we know\n          // that there is only __one__file.\n          var transformedFile = transformedFiles[0];\n          files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize);\n          files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize);\n        }\n\n        if (files[0].upload.chunked) {\n          // This file should be sent in chunks!\n          // If the chunking option is set, we **know** that there can only be **one** file, since\n          // uploadMultiple is not allowed with this option.\n          var file = files[0];\n          var _transformedFile = transformedFiles[0];\n          var startedChunkCount = 0;\n          file.upload.chunks = [];\n\n          var handleNextChunk = function handleNextChunk() {\n            var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet.\n\n            while (file.upload.chunks[chunkIndex] !== undefined) {\n              chunkIndex++;\n            } // This means, that all chunks have already been started.\n\n\n            if (chunkIndex >= file.upload.totalChunkCount) return;\n            startedChunkCount++;\n            var start = chunkIndex * _this14.options.chunkSize;\n            var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size);\n            var dataBlock = {\n              name: _this14._getParamName(0),\n              data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end),\n              filename: file.upload.filename,\n              chunkIndex: chunkIndex\n            };\n            file.upload.chunks[chunkIndex] = {\n              file: file,\n              index: chunkIndex,\n              dataBlock: dataBlock,\n              // In case we want to retry.\n              status: Dropzone.UPLOADING,\n              progress: 0,\n              retries: 0 // The number of times this block has been retried.\n\n            };\n\n            _this14._uploadData(files, [dataBlock]);\n          };\n\n          file.upload.finishedChunkUpload = function (chunk) {\n            var allFinished = true;\n            chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk\n\n            chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n\n            chunk.xhr = null;\n\n            for (var i = 0; i < file.upload.totalChunkCount; i++) {\n              if (file.upload.chunks[i] === undefined) {\n                return handleNextChunk();\n              }\n\n              if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n                allFinished = false;\n              }\n            }\n\n            if (allFinished) {\n              _this14.options.chunksUploaded(file, function () {\n                _this14._finished(files, \"\", null);\n              });\n            }\n          };\n\n          if (_this14.options.parallelChunkUploads) {\n            for (var i = 0; i < file.upload.totalChunkCount; i++) {\n              handleNextChunk();\n            }\n          } else {\n            handleNextChunk();\n          }\n        } else {\n          var dataBlocks = [];\n\n          for (var _i2 = 0; _i2 < files.length; _i2++) {\n            dataBlocks[_i2] = {\n              name: _this14._getParamName(_i2),\n              data: transformedFiles[_i2],\n              filename: files[_i2].upload.filename\n            };\n          }\n\n          _this14._uploadData(files, dataBlocks);\n        }\n      });\n    } /// Returns the right chunk for given file and xhr\n\n  }, {\n    key: \"_getChunk\",\n    value: function _getChunk(file, xhr) {\n      for (var i = 0; i < file.upload.totalChunkCount; i++) {\n        if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n          return file.upload.chunks[i];\n        }\n      }\n    } // This function actually uploads the file(s) to the server.\n    // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n    // files, or individual chunks for chunked upload).\n\n  }, {\n    key: \"_uploadData\",\n    value: function _uploadData(files, dataBlocks) {\n      var _this15 = this;\n\n      var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later.\n\n      var _iterator13 = dropzone_createForOfIteratorHelper(files, true),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var file = _step13.value;\n          file.xhr = xhr;\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n\n      if (files[0].upload.chunked) {\n        // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n        files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n      }\n\n      var method = this.resolveOption(this.options.method, files);\n      var url = this.resolveOption(this.options.url, files);\n      xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n\n      xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n      xhr.withCredentials = !!this.options.withCredentials;\n\n      xhr.onload = function (e) {\n        _this15._finishedUploading(files, xhr, e);\n      };\n\n      xhr.ontimeout = function () {\n        _this15._handleUploadError(files, xhr, \"Request timedout after \".concat(_this15.options.timeout / 1000, \" seconds\"));\n      };\n\n      xhr.onerror = function () {\n        _this15._handleUploadError(files, xhr);\n      }; // Some browsers do not have the .upload property\n\n\n      var progressObj = xhr.upload != null ? xhr.upload : xhr;\n\n      progressObj.onprogress = function (e) {\n        return _this15._updateFilesUploadProgress(files, xhr, e);\n      };\n\n      var headers = {\n        Accept: \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n\n      if (this.options.headers) {\n        Dropzone.extend(headers, this.options.headers);\n      }\n\n      for (var headerName in headers) {\n        var headerValue = headers[headerName];\n\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n\n      var formData = new FormData(); // Adding all @options parameters\n\n      if (this.options.params) {\n        var additionalParams = this.options.params;\n\n        if (typeof additionalParams === \"function\") {\n          additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n        }\n\n        for (var key in additionalParams) {\n          var value = additionalParams[key];\n\n          if (Array.isArray(value)) {\n            // The additional parameter contains an array,\n            // so lets iterate over it to attach each value\n            // individually.\n            for (var i = 0; i < value.length; i++) {\n              formData.append(key, value[i]);\n            }\n          } else {\n            formData.append(key, value);\n          }\n        }\n      } // Let the user add additional data if necessary\n\n\n      var _iterator14 = dropzone_createForOfIteratorHelper(files, true),\n          _step14;\n\n      try {\n        for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n          var _file = _step14.value;\n          this.emit(\"sending\", _file, xhr, formData);\n        }\n      } catch (err) {\n        _iterator14.e(err);\n      } finally {\n        _iterator14.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n\n      this._addFormElementData(formData); // Finally add the files\n      // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n\n\n      for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) {\n        var dataBlock = dataBlocks[_i3];\n        formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n      }\n\n      this.submitRequest(xhr, formData, files);\n    } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n\n  }, {\n    key: \"_transformFiles\",\n    value: function _transformFiles(files, done) {\n      var _this16 = this;\n\n      var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n\n      var doneCounter = 0;\n\n      var _loop = function _loop(i) {\n        _this16.options.transformFile.call(_this16, files[i], function (transformedFile) {\n          transformedFiles[i] = transformedFile;\n\n          if (++doneCounter === files.length) {\n            done(transformedFiles);\n          }\n        });\n      };\n\n      for (var i = 0; i < files.length; i++) {\n        _loop(i);\n      }\n    } // Takes care of adding other input elements of the form to the AJAX request\n\n  }, {\n    key: \"_addFormElementData\",\n    value: function _addFormElementData(formData) {\n      // Take care of other input elements\n      if (this.element.tagName === \"FORM\") {\n        var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll(\"input, textarea, select, button\"), true),\n            _step15;\n\n        try {\n          for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n            var input = _step15.value;\n            var inputName = input.getAttribute(\"name\");\n            var inputType = input.getAttribute(\"type\");\n            if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it.\n\n            if (typeof inputName === \"undefined\" || inputName === null) continue;\n\n            if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n              // Possibly multiple values\n              var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true),\n                  _step16;\n\n              try {\n                for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n                  var option = _step16.value;\n\n                  if (option.selected) {\n                    formData.append(inputName, option.value);\n                  }\n                }\n              } catch (err) {\n                _iterator16.e(err);\n              } finally {\n                _iterator16.f();\n              }\n            } else if (!inputType || inputType !== \"checkbox\" && inputType !== \"radio\" || input.checked) {\n              formData.append(inputName, input.value);\n            }\n          }\n        } catch (err) {\n          _iterator15.e(err);\n        } finally {\n          _iterator15.f();\n        }\n      }\n    } // Invoked when there is new progress information about given files.\n    // If e is not provided, it is assumed that the upload is finished.\n\n  }, {\n    key: \"_updateFilesUploadProgress\",\n    value: function _updateFilesUploadProgress(files, xhr, e) {\n      var progress;\n\n      if (typeof e !== \"undefined\") {\n        progress = 100 * e.loaded / e.total;\n\n        if (files[0].upload.chunked) {\n          var file = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk progress.\n\n          var chunk = this._getChunk(file, xhr);\n\n          chunk.progress = progress;\n          chunk.total = e.total;\n          chunk.bytesSent = e.loaded;\n          var fileProgress = 0,\n              fileTotal,\n              fileBytesSent;\n          file.upload.progress = 0;\n          file.upload.total = 0;\n          file.upload.bytesSent = 0;\n\n          for (var i = 0; i < file.upload.totalChunkCount; i++) {\n            if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].progress !== undefined) {\n              file.upload.progress += file.upload.chunks[i].progress;\n              file.upload.total += file.upload.chunks[i].total;\n              file.upload.bytesSent += file.upload.chunks[i].bytesSent;\n            }\n          }\n\n          file.upload.progress = file.upload.progress / file.upload.totalChunkCount;\n        } else {\n          var _iterator17 = dropzone_createForOfIteratorHelper(files, true),\n              _step17;\n\n          try {\n            for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n              var _file2 = _step17.value;\n              _file2.upload.progress = progress;\n              _file2.upload.total = e.total;\n              _file2.upload.bytesSent = e.loaded;\n            }\n          } catch (err) {\n            _iterator17.e(err);\n          } finally {\n            _iterator17.f();\n          }\n        }\n\n        var _iterator18 = dropzone_createForOfIteratorHelper(files, true),\n            _step18;\n\n        try {\n          for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n            var _file3 = _step18.value;\n            this.emit(\"uploadprogress\", _file3, _file3.upload.progress, _file3.upload.bytesSent);\n          }\n        } catch (err) {\n          _iterator18.e(err);\n        } finally {\n          _iterator18.f();\n        }\n      } else {\n        // Called when the file finished uploading\n        var allFilesFinished = true;\n        progress = 100;\n\n        var _iterator19 = dropzone_createForOfIteratorHelper(files, true),\n            _step19;\n\n        try {\n          for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n            var _file4 = _step19.value;\n\n            if (_file4.upload.progress !== 100 || _file4.upload.bytesSent !== _file4.upload.total) {\n              allFilesFinished = false;\n            }\n\n            _file4.upload.progress = progress;\n            _file4.upload.bytesSent = _file4.upload.total;\n          } // Nothing to do, all files already at 100%\n\n        } catch (err) {\n          _iterator19.e(err);\n        } finally {\n          _iterator19.f();\n        }\n\n        if (allFilesFinished) {\n          return;\n        }\n\n        var _iterator20 = dropzone_createForOfIteratorHelper(files, true),\n            _step20;\n\n        try {\n          for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n            var _file5 = _step20.value;\n            this.emit(\"uploadprogress\", _file5, progress, _file5.upload.bytesSent);\n          }\n        } catch (err) {\n          _iterator20.e(err);\n        } finally {\n          _iterator20.f();\n        }\n      }\n    }\n  }, {\n    key: \"_finishedUploading\",\n    value: function _finishedUploading(files, xhr, e) {\n      var response;\n\n      if (files[0].status === Dropzone.CANCELED) {\n        return;\n      }\n\n      if (xhr.readyState !== 4) {\n        return;\n      }\n\n      if (xhr.responseType !== \"arraybuffer\" && xhr.responseType !== \"blob\") {\n        response = xhr.responseText;\n\n        if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n          try {\n            response = JSON.parse(response);\n          } catch (error) {\n            e = error;\n            response = \"Invalid JSON response from server.\";\n          }\n        }\n      }\n\n      this._updateFilesUploadProgress(files);\n\n      if (!(200 <= xhr.status && xhr.status < 300)) {\n        this._handleUploadError(files, xhr, response);\n      } else {\n        if (files[0].upload.chunked) {\n          files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));\n        } else {\n          this._finished(files, response, e);\n        }\n      }\n    }\n  }, {\n    key: \"_handleUploadError\",\n    value: function _handleUploadError(files, xhr, response) {\n      if (files[0].status === Dropzone.CANCELED) {\n        return;\n      }\n\n      if (files[0].upload.chunked && this.options.retryChunks) {\n        var chunk = this._getChunk(files[0], xhr);\n\n        if (chunk.retries++ < this.options.retryChunksLimit) {\n          this._uploadData(files, [chunk.dataBlock]);\n\n          return;\n        } else {\n          console.warn(\"Retried this chunk too often. Giving up.\");\n        }\n      }\n\n      this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n    }\n  }, {\n    key: \"submitRequest\",\n    value: function submitRequest(xhr, formData, files) {\n      xhr.send(formData);\n    } // Called internally when processing is finished.\n    // Individual callbacks have to be called in the appropriate sections.\n\n  }, {\n    key: \"_finished\",\n    value: function _finished(files, responseText, e) {\n      var _iterator21 = dropzone_createForOfIteratorHelper(files, true),\n          _step21;\n\n      try {\n        for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n          var file = _step21.value;\n          file.status = Dropzone.SUCCESS;\n          this.emit(\"success\", file, responseText, e);\n          this.emit(\"complete\", file);\n        }\n      } catch (err) {\n        _iterator21.e(err);\n      } finally {\n        _iterator21.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    } // Called internally when processing is finished.\n    // Individual callbacks have to be called in the appropriate sections.\n\n  }, {\n    key: \"_errorProcessing\",\n    value: function _errorProcessing(files, message, xhr) {\n      var _iterator22 = dropzone_createForOfIteratorHelper(files, true),\n          _step22;\n\n      try {\n        for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n          var file = _step22.value;\n          file.status = Dropzone.ERROR;\n          this.emit(\"error\", file, message, xhr);\n          this.emit(\"complete\", file);\n        }\n      } catch (err) {\n        _iterator22.e(err);\n      } finally {\n        _iterator22.f();\n      }\n\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    }\n  }], [{\n    key: \"initClass\",\n    value: function initClass() {\n      // Exposing the emitter class, mainly for tests\n      this.prototype.Emitter = Emitter;\n      /*\n       This is a list of all available events you can register on a dropzone object.\n        You can register an event handler like this:\n        dropzone.on(\"dragEnter\", function() { });\n        */\n\n      this.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n      this.prototype._thumbnailQueue = [];\n      this.prototype._processingThumbnail = false;\n    } // global utility\n\n  }, {\n    key: \"extend\",\n    value: function extend(target) {\n      for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        objects[_key2 - 1] = arguments[_key2];\n      }\n\n      for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) {\n        var object = _objects[_i4];\n\n        for (var key in object) {\n          var val = object[key];\n          target[key] = val;\n        }\n      }\n\n      return target;\n    }\n  }, {\n    key: \"uuidv4\",\n    value: function uuidv4() {\n      return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n        var r = Math.random() * 16 | 0,\n            v = c === \"x\" ? r : r & 0x3 | 0x8;\n        return v.toString(16);\n      });\n    }\n  }]);\n\n  return Dropzone;\n}(Emitter);\n\n\nDropzone.initClass();\nDropzone.version = \"5.8.1\"; // This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n//     Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n//     Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n//     <form action=\"/upload\" id=\"my-dropzone-element-id\" class=\"dropzone\"></form>\n\nDropzone.options = {}; // Returns the options for an element or undefined if none available.\n\nDropzone.optionsForElement = function (element) {\n  // Get the `Dropzone.options.elementId` for this element if it exists\n  if (element.getAttribute(\"id\")) {\n    return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n  } else {\n    return undefined;\n  }\n}; // Holds a list of all dropzone instances\n\n\nDropzone.instances = []; // Returns the dropzone for given element if any\n\nDropzone.forElement = function (element) {\n  if (typeof element === \"string\") {\n    element = document.querySelector(element);\n  }\n\n  if ((element != null ? element.dropzone : undefined) == null) {\n    throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n  }\n\n  return element.dropzone;\n}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\n\n\nDropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them\n\nDropzone.discover = function () {\n  var dropzones;\n\n  if (document.querySelectorAll) {\n    dropzones = document.querySelectorAll(\".dropzone\");\n  } else {\n    dropzones = []; // IE :(\n\n    var checkElements = function checkElements(elements) {\n      return function () {\n        var result = [];\n\n        var _iterator23 = dropzone_createForOfIteratorHelper(elements, true),\n            _step23;\n\n        try {\n          for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n            var el = _step23.value;\n\n            if (/(^| )dropzone($| )/.test(el.className)) {\n              result.push(dropzones.push(el));\n            } else {\n              result.push(undefined);\n            }\n          }\n        } catch (err) {\n          _iterator23.e(err);\n        } finally {\n          _iterator23.f();\n        }\n\n        return result;\n      }();\n    };\n\n    checkElements(document.getElementsByTagName(\"div\"));\n    checkElements(document.getElementsByTagName(\"form\"));\n  }\n\n  return function () {\n    var result = [];\n\n    var _iterator24 = dropzone_createForOfIteratorHelper(dropzones, true),\n        _step24;\n\n    try {\n      for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n        var dropzone = _step24.value;\n\n        // Create a dropzone unless auto discover has been disabled for specific element\n        if (Dropzone.optionsForElement(dropzone) !== false) {\n          result.push(new Dropzone(dropzone));\n        } else {\n          result.push(undefined);\n        }\n      }\n    } catch (err) {\n      _iterator24.e(err);\n    } finally {\n      _iterator24.f();\n    }\n\n    return result;\n  }();\n}; // Some browsers support drag and drog functionality, but not correctly.\n//\n// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n\n\nDropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n/opera.*(Macintosh|Windows Phone).*version\\/12/i]; // Checks if the browser is supported\n\nDropzone.isBrowserSupported = function () {\n  var capableBrowser = true;\n\n  if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n    if (!(\"classList\" in document.createElement(\"a\"))) {\n      capableBrowser = false;\n    } else {\n      if (Dropzone.blacklistedBrowsers !== undefined) {\n        // Since this has been renamed, this makes sure we don't break older\n        // configuration.\n        Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers;\n      } // The browser supports the API, but may be blocked.\n\n\n      var _iterator25 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true),\n          _step25;\n\n      try {\n        for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n          var regex = _step25.value;\n\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      } catch (err) {\n        _iterator25.e(err);\n      } finally {\n        _iterator25.f();\n      }\n    }\n  } else {\n    capableBrowser = false;\n  }\n\n  return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n  // convert base64 to raw binary data held in a string\n  // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n  var byteString = atob(dataURI.split(\",\")[1]); // separate out the mime component\n\n  var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0]; // write the bytes of the string to an ArrayBuffer\n\n  var ab = new ArrayBuffer(byteString.length);\n  var ia = new Uint8Array(ab);\n\n  for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n    ia[i] = byteString.charCodeAt(i);\n  } // write the ArrayBuffer to a blob\n\n\n  return new Blob([ab], {\n    type: mimeString\n  });\n}; // Returns an array without the rejected item\n\n\nvar without = function without(list, rejectedItem) {\n  return list.filter(function (item) {\n    return item !== rejectedItem;\n  }).map(function (item) {\n    return item;\n  });\n}; // abc-def_ghi -> abcDefGhi\n\n\nvar camelize = function camelize(str) {\n  return str.replace(/[\\-_](\\w)/g, function (match) {\n    return match.charAt(1).toUpperCase();\n  });\n}; // Creates an element from string\n\n\nDropzone.createElement = function (string) {\n  var div = document.createElement(\"div\");\n  div.innerHTML = string;\n  return div.childNodes[0];\n}; // Tests if given element is inside (or simply is) the container\n\n\nDropzone.elementInside = function (element, container) {\n  if (element === container) {\n    return true;\n  } // Coffeescript doesn't support do/while loops\n\n\n  while (element = element.parentNode) {\n    if (element === container) {\n      return true;\n    }\n  }\n\n  return false;\n};\n\nDropzone.getElement = function (el, name) {\n  var element;\n\n  if (typeof el === \"string\") {\n    element = document.querySelector(el);\n  } else if (el.nodeType != null) {\n    element = el;\n  }\n\n  if (element == null) {\n    throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector or a plain HTML element.\"));\n  }\n\n  return element;\n};\n\nDropzone.getElements = function (els, name) {\n  var el, elements;\n\n  if (els instanceof Array) {\n    elements = [];\n\n    try {\n      var _iterator26 = dropzone_createForOfIteratorHelper(els, true),\n          _step26;\n\n      try {\n        for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {\n          el = _step26.value;\n          elements.push(this.getElement(el, name));\n        }\n      } catch (err) {\n        _iterator26.e(err);\n      } finally {\n        _iterator26.f();\n      }\n    } catch (e) {\n      elements = null;\n    }\n  } else if (typeof els === \"string\") {\n    elements = [];\n\n    var _iterator27 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true),\n        _step27;\n\n    try {\n      for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {\n        el = _step27.value;\n        elements.push(el);\n      }\n    } catch (err) {\n      _iterator27.e(err);\n    } finally {\n      _iterator27.f();\n    }\n  } else if (els.nodeType != null) {\n    elements = [els];\n  }\n\n  if (elements == null || !elements.length) {\n    throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\"));\n  }\n\n  return elements;\n}; // Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\n\n\nDropzone.confirm = function (question, accepted, rejected) {\n  if (window.confirm(question)) {\n    return accepted();\n  } else if (rejected != null) {\n    return rejected();\n  }\n}; // Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\n\n\nDropzone.isValidFile = function (file, acceptedFiles) {\n  if (!acceptedFiles) {\n    return true;\n  } // If there are no accepted mime types, it's OK\n\n\n  acceptedFiles = acceptedFiles.split(\",\");\n  var mimeType = file.type;\n  var baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n  var _iterator28 = dropzone_createForOfIteratorHelper(acceptedFiles, true),\n      _step28;\n\n  try {\n    for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {\n      var validType = _step28.value;\n      validType = validType.trim();\n\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        // This is something like a image/* mime type\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n  } catch (err) {\n    _iterator28.e(err);\n  } finally {\n    _iterator28.f();\n  }\n\n  return false;\n}; // Augment jQuery\n\n\nif (typeof jQuery !== \"undefined\" && jQuery !== null) {\n  jQuery.fn.dropzone = function (options) {\n    return this.each(function () {\n      return new Dropzone(this, options);\n    });\n  };\n} // Dropzone file status codes\n\n\nDropzone.ADDED = \"added\";\nDropzone.QUEUED = \"queued\"; // For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\n\nDropzone.ACCEPTED = Dropzone.QUEUED;\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\n\nvar detectVerticalSquash = function detectVerticalSquash(img) {\n  var iw = img.naturalWidth;\n  var ih = img.naturalHeight;\n  var canvas = document.createElement(\"canvas\");\n  canvas.width = 1;\n  canvas.height = ih;\n  var ctx = canvas.getContext(\"2d\");\n  ctx.drawImage(img, 0, 0);\n\n  var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih),\n      data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically.\n\n\n  var sy = 0;\n  var ey = ih;\n  var py = ih;\n\n  while (py > sy) {\n    var alpha = data[(py - 1) * 4 + 3];\n\n    if (alpha === 0) {\n      ey = py;\n    } else {\n      sy = py;\n    }\n\n    py = ey + sy >> 1;\n  }\n\n  var ratio = py / ih;\n\n  if (ratio === 0) {\n    return 1;\n  } else {\n    return ratio;\n  }\n}; // A replacement for context.drawImage\n// (args are for source and destination).\n\n\nvar drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n  var vertSquashRatio = detectVerticalSquash(img);\n  return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n}; // Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\n\n\nvar ExifRestore = /*#__PURE__*/function () {\n  function ExifRestore() {\n    dropzone_classCallCheck(this, ExifRestore);\n  }\n\n  dropzone_createClass(ExifRestore, null, [{\n    key: \"initClass\",\n    value: function initClass() {\n      this.KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n    }\n  }, {\n    key: \"encode64\",\n    value: function encode64(input) {\n      var output = \"\";\n      var chr1 = undefined;\n      var chr2 = undefined;\n      var chr3 = \"\";\n      var enc1 = undefined;\n      var enc2 = undefined;\n      var enc3 = undefined;\n      var enc4 = \"\";\n      var i = 0;\n\n      while (true) {\n        chr1 = input[i++];\n        chr2 = input[i++];\n        chr3 = input[i++];\n        enc1 = chr1 >> 2;\n        enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n        enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n        enc4 = chr3 & 63;\n\n        if (isNaN(chr2)) {\n          enc3 = enc4 = 64;\n        } else if (isNaN(chr3)) {\n          enc4 = 64;\n        }\n\n        output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n        chr1 = chr2 = chr3 = \"\";\n        enc1 = enc2 = enc3 = enc4 = \"\";\n\n        if (!(i < input.length)) {\n          break;\n        }\n      }\n\n      return output;\n    }\n  }, {\n    key: \"restore\",\n    value: function restore(origFileBase64, resizedFileBase64) {\n      if (!origFileBase64.match(\"data:image/jpeg;base64,\")) {\n        return resizedFileBase64;\n      }\n\n      var rawImage = this.decode64(origFileBase64.replace(\"data:image/jpeg;base64,\", \"\"));\n      var segments = this.slice2Segments(rawImage);\n      var image = this.exifManipulation(resizedFileBase64, segments);\n      return \"data:image/jpeg;base64,\".concat(this.encode64(image));\n    }\n  }, {\n    key: \"exifManipulation\",\n    value: function exifManipulation(resizedFileBase64, segments) {\n      var exifArray = this.getExifArray(segments);\n      var newImageArray = this.insertExif(resizedFileBase64, exifArray);\n      var aBuffer = new Uint8Array(newImageArray);\n      return aBuffer;\n    }\n  }, {\n    key: \"getExifArray\",\n    value: function getExifArray(segments) {\n      var seg = undefined;\n      var x = 0;\n\n      while (x < segments.length) {\n        seg = segments[x];\n\n        if (seg[0] === 255 & seg[1] === 225) {\n          return seg;\n        }\n\n        x++;\n      }\n\n      return [];\n    }\n  }, {\n    key: \"insertExif\",\n    value: function insertExif(resizedFileBase64, exifArray) {\n      var imageData = resizedFileBase64.replace(\"data:image/jpeg;base64,\", \"\");\n      var buf = this.decode64(imageData);\n      var separatePoint = buf.indexOf(255, 3);\n      var mae = buf.slice(0, separatePoint);\n      var ato = buf.slice(separatePoint);\n      var array = mae;\n      array = array.concat(exifArray);\n      array = array.concat(ato);\n      return array;\n    }\n  }, {\n    key: \"slice2Segments\",\n    value: function slice2Segments(rawImageArray) {\n      var head = 0;\n      var segments = [];\n\n      while (true) {\n        var length;\n\n        if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) {\n          break;\n        }\n\n        if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) {\n          head += 2;\n        } else {\n          length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3];\n          var endPoint = head + length + 2;\n          var seg = rawImageArray.slice(head, endPoint);\n          segments.push(seg);\n          head = endPoint;\n        }\n\n        if (head > rawImageArray.length) {\n          break;\n        }\n      }\n\n      return segments;\n    }\n  }, {\n    key: \"decode64\",\n    value: function decode64(input) {\n      var output = \"\";\n      var chr1 = undefined;\n      var chr2 = undefined;\n      var chr3 = \"\";\n      var enc1 = undefined;\n      var enc2 = undefined;\n      var enc3 = undefined;\n      var enc4 = \"\";\n      var i = 0;\n      var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n      var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n\n      if (base64test.exec(input)) {\n        console.warn(\"There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\\nExpect errors in decoding.\");\n      }\n\n      input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n      while (true) {\n        enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n        enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n        chr1 = enc1 << 2 | enc2 >> 4;\n        chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n        chr3 = (enc3 & 3) << 6 | enc4;\n        buf.push(chr1);\n\n        if (enc3 !== 64) {\n          buf.push(chr2);\n        }\n\n        if (enc4 !== 64) {\n          buf.push(chr3);\n        }\n\n        chr1 = chr2 = chr3 = \"\";\n        enc1 = enc2 = enc3 = enc4 = \"\";\n\n        if (!(i < input.length)) {\n          break;\n        }\n      }\n\n      return buf;\n    }\n  }]);\n\n  return ExifRestore;\n}();\n\nExifRestore.initClass();\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n// @win window reference\n// @fn function reference\n\nvar contentLoaded = function contentLoaded(win, fn) {\n  var done = false;\n  var top = true;\n  var doc = win.document;\n  var root = doc.documentElement;\n  var add = doc.addEventListener ? \"addEventListener\" : \"attachEvent\";\n  var rem = doc.addEventListener ? \"removeEventListener\" : \"detachEvent\";\n  var pre = doc.addEventListener ? \"\" : \"on\";\n\n  var init = function init(e) {\n    if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n      return;\n    }\n\n    (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\n    if (!done && (done = true)) {\n      return fn.call(win, e.type || e);\n    }\n  };\n\n  var poll = function poll() {\n    try {\n      root.doScroll(\"left\");\n    } catch (e) {\n      setTimeout(poll, 50);\n      return;\n    }\n\n    return init(\"poll\");\n  };\n\n  if (doc.readyState !== \"complete\") {\n    if (doc.createEventObject && root.doScroll) {\n      try {\n        top = !win.frameElement;\n      } catch (error) {}\n\n      if (top) {\n        poll();\n      }\n    }\n\n    doc[add](pre + \"DOMContentLoaded\", init, false);\n    doc[add](pre + \"readystatechange\", init, false);\n    return win[add](pre + \"load\", init, false);\n  }\n}; // As a single function to be able to write tests.\n\n\nDropzone._autoDiscoverFunction = function () {\n  if (Dropzone.autoDiscover) {\n    return Dropzone.discover();\n  }\n};\n\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n  return typeof value !== \"undefined\" && value !== null ? transform(value) : undefined;\n}\n\nfunction __guardMethod__(obj, methodName, transform) {\n  if (typeof obj !== \"undefined\" && obj !== null && typeof obj[methodName] === \"function\") {\n    return transform(obj, methodName);\n  } else {\n    return undefined;\n  }\n}\n\n\n;// CONCATENATED MODULE: ./tool/dropzone.dist.js\n /// Make Dropzone a global variable.\n\nwindow.Dropzone = Dropzone;\n/* harmony default export */ var dropzone_dist = (Dropzone);\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/min/basic.css",
    "content": ".dropzone,.dropzone *{box-sizing:border-box}.dropzone{position:relative}.dropzone .dz-preview{position:relative;display:inline-block;width:120px;margin:.5em}.dropzone .dz-preview .dz-progress{display:block;height:15px;border:1px solid #aaa}.dropzone .dz-preview .dz-progress .dz-upload{display:block;height:100%;width:0;background:green}.dropzone .dz-preview .dz-error-message{color:red;display:none}.dropzone .dz-preview.dz-error .dz-error-message,.dropzone .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{position:absolute;display:none;left:30px;top:30px;width:54px;height:58px;left:50%;margin-left:-27px}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/dropzone/min/dropzone.css",
    "content": "@-webkit-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-moz-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}}@-moz-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}}@keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0px);-moz-transform:translateY(0px);-ms-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@-moz-keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,.3);background:#fff;padding:20px 20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-message .dz-button{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(to bottom, #eee, #ddd)}.dropzone .dz-preview.dz-file-preview .dz-details{opacity:1}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{-webkit-transition:opacity 0.2s linear;-moz-transition:opacity 0.2s linear;-ms-transition:opacity 0.2s linear;-o-transition:opacity 0.2s linear;transition:opacity 0.2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid rgba(200,200,200,.8);background-color:rgba(255,255,255,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:rgba(255,255,255,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{-webkit-transform:scale(1.05, 1.05);-moz-transform:scale(1.05, 1.05);-ms-transform:scale(1.05, 1.05);-o-transform:scale(1.05, 1.05);transform:scale(1.05, 1.05);-webkit-filter:blur(8px);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);-moz-animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);-ms-animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);-o-animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);animation:passing-through 3s cubic-bezier(0.77, 0, 0.175, 1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);-moz-animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);-ms-animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);-o-animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);animation:slide-in 3s cubic-bezier(0.77, 0, 0.175, 1)}.dropzone .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-success-mark svg,.dropzone .dz-preview .dz-error-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;-webkit-transition:all 0.2s linear;-moz-transition:all 0.2s linear;-ms-transition:all 0.2s linear;-o-transition:all 0.2s linear;transition:all 0.2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;-webkit-transition:opacity 0.4s ease-in;-moz-transition:opacity 0.4s ease-in;-ms-transition:opacity 0.4s ease-in;-o-transition:opacity 0.4s ease-in;transition:opacity 0.4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;-moz-animation:pulse 6s ease infinite;-ms-animation:pulse 6s ease infinite;-o-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:rgba(255,255,255,.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(to bottom, #666, #444);position:absolute;top:0;left:0;bottom:0;width:0;-webkit-transition:width 300ms ease-in-out;-moz-transition:width 300ms ease-in-out;-ms-transition:width 300ms ease-in-out;-o-transition:width 300ms ease-in-out;transition:width 300ms ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;-webkit-transition:opacity 0.3s ease;-moz-transition:opacity 0.3s ease;-ms-transition:opacity 0.3s ease;-o-transition:opacity 0.3s ease;transition:opacity 0.3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(to bottom, #be2626, #a92222);padding:.5em 1.2em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:\"\";position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/ekko-lightbox/ekko-lightbox.css",
    "content": ".ekko-lightbox{display:-ms-flexbox!important;display:flex!important;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding-right:0!important}.ekko-lightbox-container{position:relative}.ekko-lightbox-container>div.ekko-lightbox-item{position:absolute;top:0;left:0;bottom:0;right:0;width:100%}.ekko-lightbox iframe{width:100%;height:100%}.ekko-lightbox-nav-overlay{z-index:1;position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex}.ekko-lightbox-nav-overlay a{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0;transition:opacity .5s;color:#fff;font-size:30px;z-index:1}.ekko-lightbox-nav-overlay a>*{-ms-flex-positive:1;flex-grow:1}.ekko-lightbox-nav-overlay a>:focus{outline:none}.ekko-lightbox-nav-overlay a span{padding:0 30px}.ekko-lightbox-nav-overlay a:last-child span{text-align:right}.ekko-lightbox-nav-overlay a:hover{text-decoration:none}.ekko-lightbox-nav-overlay a:focus{outline:none}.ekko-lightbox-nav-overlay a.disabled{cursor:default;visibility:hidden}.ekko-lightbox a:hover{opacity:1;text-decoration:none}.ekko-lightbox .modal-dialog{display:none}.ekko-lightbox .modal-footer{text-align:left}.ekko-lightbox-loader{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.ekko-lightbox-loader>div{width:40px;height:40px;position:relative;text-align:center}.ekko-lightbox-loader>div>div{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;animation:a 2s infinite ease-in-out}.ekko-lightbox-loader>div>div:last-child{animation-delay:-1s}.modal-dialog .ekko-lightbox-loader>div>div{background-color:#333}@keyframes a{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVra28tbGlnaHRib3guY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQ0UsOEJBQXlCLEFBQXpCLHVCQUF5QixBQUN6QixzQkFBb0IsQUFBcEIsbUJBQW9CLEFBQ3BCLHFCQUF3QixBQUF4Qix1QkFBd0IsQUFDeEIseUJBQTZCLENBQzlCLEFBQ0QseUJBQ0UsaUJBQW1CLENBQ3BCLEFBQ0QsZ0RBQ0Usa0JBQW1CLEFBQ25CLE1BQU8sQUFDUCxPQUFRLEFBQ1IsU0FBVSxBQUNWLFFBQVMsQUFDVCxVQUFZLENBQ2IsQUFDRCxzQkFDRSxXQUFZLEFBQ1osV0FBYSxDQUNkLEFBQ0QsMkJBQ0UsVUFBYSxBQUNiLGtCQUFtQixBQUNuQixNQUFPLEFBQ1AsT0FBUSxBQUNSLFdBQVksQUFDWixZQUFhLEFBQ2Isb0JBQWMsQUFBZCxZQUFjLENBQ2YsQUFDRCw2QkFDRSxXQUFRLEFBQVIsT0FBUSxBQUNSLG9CQUFjLEFBQWQsYUFBYyxBQUNkLHNCQUFvQixBQUFwQixtQkFBb0IsQUFDcEIsVUFBVyxBQUNYLHVCQUF5QixBQUN6QixXQUFZLEFBQ1osZUFBZ0IsQUFDaEIsU0FBYSxDQUNkLEFBQ0QsK0JBQ0Usb0JBQWEsQUFBYixXQUFhLENBQ2QsQUFDRCxvQ0FDRSxZQUFjLENBQ2YsQUFDRCxrQ0FDRSxjQUFnQixDQUNqQixBQUNELDZDQUNFLGdCQUFrQixDQUNuQixBQUNELG1DQUNFLG9CQUFzQixDQUN2QixBQUNELG1DQUNFLFlBQWMsQ0FDZixBQUNELHNDQUNFLGVBQWdCLEFBQ2hCLGlCQUFtQixDQUNwQixBQUNELHVCQUNFLFVBQVcsQUFDWCxvQkFBc0IsQ0FDdkIsQUFDRCw2QkFDRSxZQUFjLENBQ2YsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGtCQUFtQixBQUNuQixNQUFPLEFBQ1AsT0FBUSxBQUNSLFNBQVUsQUFDVixRQUFTLEFBQ1QsV0FBWSxBQUNaLG9CQUFjLEFBQWQsYUFBYyxBQUVkLDBCQUF1QixBQUF2QixzQkFBdUIsQUFFdkIscUJBQXdCLEFBQXhCLHVCQUF3QixBQUV4QixzQkFBb0IsQUFBcEIsa0JBQW9CLENBQ3JCLEFBQ0QsMEJBQ0UsV0FBWSxBQUNaLFlBQWEsQUFDYixrQkFBbUIsQUFDbkIsaUJBQW1CLENBQ3BCLEFBQ0QsOEJBQ0UsV0FBWSxBQUNaLFlBQWEsQUFDYixrQkFBbUIsQUFDbkIsc0JBQXVCLEFBQ3ZCLFdBQWEsQUFDYixrQkFBbUIsQUFDbkIsTUFBTyxBQUNQLE9BQVEsQUFDUixtQ0FBNkMsQ0FDOUMsQUFDRCx5Q0FDRSxtQkFBcUIsQ0FDdEIsQUFDRCw0Q0FDRSxxQkFBdUIsQ0FDeEIsQUFVRCxhQUNFLE1BRUUsbUJBQW9CLEFBQ3BCLDBCQUE0QixDQUM3QixBQUNELElBQ0UsbUJBQW9CLEFBQ3BCLDBCQUE0QixDQUM3QixDQUNGIiwiZmlsZSI6ImVra28tbGlnaHRib3guY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmVra28tbGlnaHRib3gge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAwcHghaW1wb3J0YW50O1xufVxuLmVra28tbGlnaHRib3gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmVra28tbGlnaHRib3gtY29udGFpbmVyID4gZGl2LmVra28tbGlnaHRib3gtaXRlbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5la2tvLWxpZ2h0Ym94IGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uZWtrby1saWdodGJveC1uYXYtb3ZlcmxheSB7XG4gIHotaW5kZXg6IDEwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uZWtrby1saWdodGJveC1uYXYtb3ZlcmxheSBhIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAzMHB4O1xuICB6LWluZGV4OiAxMDA7XG59XG4uZWtrby1saWdodGJveC1uYXYtb3ZlcmxheSBhID4gKiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5IGEgPiAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5IGEgc3BhbiB7XG4gIHBhZGRpbmc6IDAgMzBweDtcbn1cbi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5IGE6bGFzdC1jaGlsZCBzcGFuIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uZWtrby1saWdodGJveC1uYXYtb3ZlcmxheSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmVra28tbGlnaHRib3gtbmF2LW92ZXJsYXkgYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uZWtrby1saWdodGJveC1uYXYtb3ZlcmxheSBhLmRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uZWtrby1saWdodGJveCBhOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmVra28tbGlnaHRib3ggLm1vZGFsLWRpYWxvZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZWtrby1saWdodGJveCAubW9kYWwtZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5la2tvLWxpZ2h0Ym94LWxvYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogZXN0YWJsaXNoIGZsZXggY29udGFpbmVyICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIG1ha2UgbWFpbiBheGlzIHZlcnRpY2FsICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAvKiBjZW50ZXIgaXRlbXMgdmVydGljYWxseSwgaW4gdGhpcyBjYXNlICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZWtrby1saWdodGJveC1sb2FkZXIgPiBkaXYge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5la2tvLWxpZ2h0Ym94LWxvYWRlciA+IGRpdiA+IGRpdiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMC42O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYW5pbWF0aW9uOiBzay1ib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG4uZWtrby1saWdodGJveC1sb2FkZXIgPiBkaXYgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTFzO1xufVxuLm1vZGFsLWRpYWxvZyAuZWtrby1saWdodGJveC1sb2FkZXIgPiBkaXYgPiBkaXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNrLWJvdW5jZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2stYm91bmNlIHtcbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbiJdfQ== */"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/ekko-lightbox/ekko-lightbox.js",
    "content": "/*!\n * Lightbox for Bootstrap by @ashleydw\n * https://github.com/ashleydw/lightbox\n *\n * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n+function ($) {\n\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar Lightbox = (function ($) {\n\n\tvar NAME = 'ekkoLightbox';\n\tvar JQUERY_NO_CONFLICT = $.fn[NAME];\n\n\tvar Default = {\n\t\ttitle: '',\n\t\tfooter: '',\n\t\tmaxWidth: 9999,\n\t\tmaxHeight: 9999,\n\t\tshowArrows: true, //display the left / right arrows or not\n\t\twrapping: true, //if true, gallery loops infinitely\n\t\ttype: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it\n\t\talwaysShowClose: false, //always show the close button, even if there is no title\n\t\tloadingMessage: '<div class=\"ekko-lightbox-loader\"><div><div></div><div></div></div></div>', // http://tobiasahlin.com/spinkit/\n\t\tleftArrow: '<span>&#10094;</span>',\n\t\trightArrow: '<span>&#10095;</span>',\n\t\tstrings: {\n\t\t\tclose: 'Close',\n\t\t\tfail: 'Failed to load image:',\n\t\t\ttype: 'Could not detect remote target type. Force the type using data-type'\n\t\t},\n\t\tdoc: document, // if in an iframe can specify top.document\n\t\tonShow: function onShow() {},\n\t\tonShown: function onShown() {},\n\t\tonHide: function onHide() {},\n\t\tonHidden: function onHidden() {},\n\t\tonNavigate: function onNavigate() {},\n\t\tonContentLoaded: function onContentLoaded() {}\n\t};\n\n\tvar Lightbox = (function () {\n\t\t_createClass(Lightbox, null, [{\n\t\t\tkey: 'Default',\n\n\t\t\t/**\n       Class properties:\n   \t _$element: null -> the <a> element currently being displayed\n    _$modal: The bootstrap modal generated\n       _$modalDialog: The .modal-dialog\n       _$modalContent: The .modal-content\n       _$modalBody: The .modal-body\n       _$modalHeader: The .modal-header\n       _$modalFooter: The .modal-footer\n    _$lightboxContainerOne: Container of the first lightbox element\n    _$lightboxContainerTwo: Container of the second lightbox element\n    _$lightboxBody: First element in the container\n    _$modalArrows: The overlayed arrows container\n   \t _$galleryItems: Other <a>'s available for this gallery\n    _galleryName: Name of the current data('gallery') showing\n    _galleryIndex: The current index of the _$galleryItems being shown\n   \t _config: {} the options for the modal\n    _modalId: unique id for the current lightbox\n    _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content\n   \t */\n\n\t\t\tget: function get() {\n\t\t\t\treturn Default;\n\t\t\t}\n\t\t}]);\n\n\t\tfunction Lightbox($element, config) {\n\t\t\tvar _this = this;\n\n\t\t\t_classCallCheck(this, Lightbox);\n\n\t\t\tthis._config = $.extend({}, Default, config);\n\t\t\tthis._$modalArrows = null;\n\t\t\tthis._galleryIndex = 0;\n\t\t\tthis._galleryName = null;\n\t\t\tthis._padding = null;\n\t\t\tthis._border = null;\n\t\t\tthis._titleIsShown = false;\n\t\t\tthis._footerIsShown = false;\n\t\t\tthis._wantedWidth = 0;\n\t\t\tthis._wantedHeight = 0;\n\t\t\tthis._touchstartX = 0;\n\t\t\tthis._touchendX = 0;\n\n\t\t\tthis._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1);\n\t\t\tthis._$element = $element instanceof jQuery ? $element : $($element);\n\n\t\t\tthis._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;\n\n\t\t\tvar h4 = '<h4 class=\"modal-title\">' + (this._config.title || \"&nbsp;\") + '</h4>';\n\t\t\tvar btn = '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"' + this._config.strings.close + '\"><span aria-hidden=\"true\">&times;</span></button>';\n\n\t\t\tvar header = '<div class=\"modal-header' + (this._config.title || this._config.alwaysShowClose ? '' : ' hide') + '\">' + (this._isBootstrap3 ? btn + h4 : h4 + btn) + '</div>';\n\t\t\tvar footer = '<div class=\"modal-footer' + (this._config.footer ? '' : ' hide') + '\">' + (this._config.footer || \"&nbsp;\") + '</div>';\n\t\t\tvar body = '<div class=\"modal-body\"><div class=\"ekko-lightbox-container\"><div class=\"ekko-lightbox-item fade in show\"></div><div class=\"ekko-lightbox-item fade\"></div></div></div>';\n\t\t\tvar dialog = '<div class=\"modal-dialog\" role=\"document\"><div class=\"modal-content\">' + header + body + footer + '</div></div>';\n\t\t\t$(this._config.doc.body).append('<div id=\"' + this._modalId + '\" class=\"ekko-lightbox modal fade\" tabindex=\"-1\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">' + dialog + '</div>');\n\n\t\t\tthis._$modal = $('#' + this._modalId, this._config.doc);\n\t\t\tthis._$modalDialog = this._$modal.find('.modal-dialog').first();\n\t\t\tthis._$modalContent = this._$modal.find('.modal-content').first();\n\t\t\tthis._$modalBody = this._$modal.find('.modal-body').first();\n\t\t\tthis._$modalHeader = this._$modal.find('.modal-header').first();\n\t\t\tthis._$modalFooter = this._$modal.find('.modal-footer').first();\n\n\t\t\tthis._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first();\n\t\t\tthis._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first();\n\t\t\tthis._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();\n\n\t\t\tthis._border = this._calculateBorders();\n\t\t\tthis._padding = this._calculatePadding();\n\n\t\t\tthis._galleryName = this._$element.data('gallery');\n\t\t\tif (this._galleryName) {\n\t\t\t\tthis._$galleryItems = $(document.body).find('*[data-gallery=\"' + this._galleryName + '\"]');\n\t\t\t\tthis._galleryIndex = this._$galleryItems.index(this._$element);\n\t\t\t\t$(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));\n\n\t\t\t\t// add the directional arrows to the modal\n\t\t\t\tif (this._config.showArrows && this._$galleryItems.length > 1) {\n\t\t\t\t\tthis._$lightboxContainer.append('<div class=\"ekko-lightbox-nav-overlay\"><a href=\"#\">' + this._config.leftArrow + '</a><a href=\"#\">' + this._config.rightArrow + '</a></div>');\n\t\t\t\t\tthis._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first();\n\t\t\t\t\tthis._$lightboxContainer.on('click', 'a:first-child', function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn _this.navigateLeft();\n\t\t\t\t\t});\n\t\t\t\t\tthis._$lightboxContainer.on('click', 'a:last-child', function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn _this.navigateRight();\n\t\t\t\t\t});\n\t\t\t\t\tthis.updateNavigation();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () {\n\t\t\t\t_this._toggleLoading(true);\n\t\t\t\t_this._handle();\n\t\t\t\treturn _this._config.onShown.call(_this);\n\t\t\t}).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () {\n\t\t\t\tif (_this._galleryName) {\n\t\t\t\t\t$(document).off('keydown.ekkoLightbox');\n\t\t\t\t\t$(window).off('resize.ekkoLightbox');\n\t\t\t\t}\n\t\t\t\t_this._$modal.remove();\n\t\t\t\treturn _this._config.onHidden.call(_this);\n\t\t\t}).modal(this._config);\n\n\t\t\t$(window).on('resize.ekkoLightbox', function () {\n\t\t\t\t_this._resize(_this._wantedWidth, _this._wantedHeight);\n\t\t\t});\n\t\t\tthis._$lightboxContainer.on('touchstart', function () {\n\t\t\t\t_this._touchstartX = event.changedTouches[0].screenX;\n\t\t\t}).on('touchend', function () {\n\t\t\t\t_this._touchendX = event.changedTouches[0].screenX;\n\t\t\t\t_this._swipeGesure();\n\t\t\t});\n\t\t}\n\n\t\t_createClass(Lightbox, [{\n\t\t\tkey: 'element',\n\t\t\tvalue: function element() {\n\t\t\t\treturn this._$element;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'modal',\n\t\t\tvalue: function modal() {\n\t\t\t\treturn this._$modal;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateTo',\n\t\t\tvalue: function navigateTo(index) {\n\n\t\t\t\tif (index < 0 || index > this._$galleryItems.length - 1) return this;\n\n\t\t\t\tthis._galleryIndex = index;\n\n\t\t\t\tthis.updateNavigation();\n\n\t\t\t\tthis._$element = $(this._$galleryItems.get(this._galleryIndex));\n\t\t\t\tthis._handle();\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateLeft',\n\t\t\tvalue: function navigateLeft() {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tif (this._$galleryItems.length === 1) return;\n\n\t\t\t\tif (this._galleryIndex === 0) {\n\t\t\t\t\tif (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return;\n\t\t\t\t} else //circular\n\t\t\t\t\tthis._galleryIndex--;\n\n\t\t\t\tthis._config.onNavigate.call(this, 'left', this._galleryIndex);\n\t\t\t\treturn this.navigateTo(this._galleryIndex);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateRight',\n\t\t\tvalue: function navigateRight() {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tif (this._$galleryItems.length === 1) return;\n\n\t\t\t\tif (this._galleryIndex === this._$galleryItems.length - 1) {\n\t\t\t\t\tif (this._config.wrapping) this._galleryIndex = 0;else return;\n\t\t\t\t} else //circular\n\t\t\t\t\tthis._galleryIndex++;\n\n\t\t\t\tthis._config.onNavigate.call(this, 'right', this._galleryIndex);\n\t\t\t\treturn this.navigateTo(this._galleryIndex);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'updateNavigation',\n\t\t\tvalue: function updateNavigation() {\n\t\t\t\tif (!this._config.wrapping) {\n\t\t\t\t\tvar $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay');\n\t\t\t\t\tif (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');\n\n\t\t\t\t\tif (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled');\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'close',\n\t\t\tvalue: function close() {\n\t\t\t\treturn this._$modal.modal('hide');\n\t\t\t}\n\n\t\t\t// helper private methods\n\t\t}, {\n\t\t\tkey: '_navigationalBinder',\n\t\t\tvalue: function _navigationalBinder(event) {\n\t\t\t\tevent = event || window.event;\n\t\t\t\tif (event.keyCode === 39) return this.navigateRight();\n\t\t\t\tif (event.keyCode === 37) return this.navigateLeft();\n\t\t\t}\n\n\t\t\t// type detection private methods\n\t\t}, {\n\t\t\tkey: '_detectRemoteType',\n\t\t\tvalue: function _detectRemoteType(src, type) {\n\n\t\t\t\ttype = type || false;\n\n\t\t\t\tif (!type && this._isImage(src)) type = 'image';\n\t\t\t\tif (!type && this._getYoutubeId(src)) type = 'youtube';\n\t\t\t\tif (!type && this._getVimeoId(src)) type = 'vimeo';\n\t\t\t\tif (!type && this._getInstagramId(src)) type = 'instagram';\n\n\t\t\t\tif (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';\n\n\t\t\t\treturn type;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_isImage',\n\t\t\tvalue: function _isImage(string) {\n\t\t\t\treturn string && string.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_containerToUse',\n\t\t\tvalue: function _containerToUse() {\n\t\t\t\tvar _this2 = this;\n\n\t\t\t\t// if currently showing an image, fade it out and remove\n\t\t\t\tvar $toUse = this._$lightboxBodyTwo;\n\t\t\t\tvar $current = this._$lightboxBodyOne;\n\n\t\t\t\tif (this._$lightboxBodyTwo.hasClass('in')) {\n\t\t\t\t\t$toUse = this._$lightboxBodyOne;\n\t\t\t\t\t$current = this._$lightboxBodyTwo;\n\t\t\t\t}\n\n\t\t\t\t$current.removeClass('in show');\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tif (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty();\n\t\t\t\t\tif (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty();\n\t\t\t\t}, 500);\n\n\t\t\t\t$toUse.addClass('in show');\n\t\t\t\treturn $toUse;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_handle',\n\t\t\tvalue: function _handle() {\n\n\t\t\t\tvar $toUse = this._containerToUse();\n\t\t\t\tthis._updateTitleAndFooter();\n\n\t\t\t\tvar currentRemote = this._$element.attr('data-remote') || this._$element.attr('href');\n\t\t\t\tvar currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);\n\n\t\t\t\tif (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);\n\n\t\t\t\tswitch (currentType) {\n\t\t\t\t\tcase 'image':\n\t\t\t\t\t\tthis._preloadImage(currentRemote, $toUse);\n\t\t\t\t\t\tthis._preloadImageByIndex(this._galleryIndex, 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'youtube':\n\t\t\t\t\t\tthis._showYoutubeVideo(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vimeo':\n\t\t\t\t\t\tthis._showVimeoVideo(this._getVimeoId(currentRemote), $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'instagram':\n\t\t\t\t\t\tthis._showInstagramVideo(this._getInstagramId(currentRemote), $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'video':\n\t\t\t\t\t\tthis._showHtml5Video(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t// url\n\t\t\t\t\t\tthis._loadRemoteContent(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getYoutubeId',\n\t\t\tvalue: function _getYoutubeId(string) {\n\t\t\t\tif (!string) return false;\n\t\t\t\tvar matches = string.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n\t\t\t\treturn matches && matches[2].length === 11 ? matches[2] : false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getVimeoId',\n\t\t\tvalue: function _getVimeoId(string) {\n\t\t\t\treturn string && string.indexOf('vimeo') > 0 ? string : false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getInstagramId',\n\t\t\tvalue: function _getInstagramId(string) {\n\t\t\t\treturn string && string.indexOf('instagram') > 0 ? string : false;\n\t\t\t}\n\n\t\t\t// layout private methods\n\t\t}, {\n\t\t\tkey: '_toggleLoading',\n\t\t\tvalue: function _toggleLoading(show) {\n\t\t\t\tshow = show || false;\n\t\t\t\tif (show) {\n\t\t\t\t\tthis._$modalDialog.css('display', 'none');\n\t\t\t\t\tthis._$modal.removeClass('in show');\n\t\t\t\t\t$('.modal-backdrop').append(this._config.loadingMessage);\n\t\t\t\t} else {\n\t\t\t\t\tthis._$modalDialog.css('display', 'block');\n\t\t\t\t\tthis._$modal.addClass('in show');\n\t\t\t\t\t$('.modal-backdrop').find('.ekko-lightbox-loader').remove();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_calculateBorders',\n\t\t\tvalue: function _calculateBorders() {\n\t\t\t\treturn {\n\t\t\t\t\ttop: this._totalCssByAttribute('border-top-width'),\n\t\t\t\t\tright: this._totalCssByAttribute('border-right-width'),\n\t\t\t\t\tbottom: this._totalCssByAttribute('border-bottom-width'),\n\t\t\t\t\tleft: this._totalCssByAttribute('border-left-width')\n\t\t\t\t};\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_calculatePadding',\n\t\t\tvalue: function _calculatePadding() {\n\t\t\t\treturn {\n\t\t\t\t\ttop: this._totalCssByAttribute('padding-top'),\n\t\t\t\t\tright: this._totalCssByAttribute('padding-right'),\n\t\t\t\t\tbottom: this._totalCssByAttribute('padding-bottom'),\n\t\t\t\t\tleft: this._totalCssByAttribute('padding-left')\n\t\t\t\t};\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_totalCssByAttribute',\n\t\t\tvalue: function _totalCssByAttribute(attribute) {\n\t\t\t\treturn parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_updateTitleAndFooter',\n\t\t\tvalue: function _updateTitleAndFooter() {\n\t\t\t\tvar title = this._$element.data('title') || \"\";\n\t\t\t\tvar caption = this._$element.data('footer') || \"\";\n\n\t\t\t\tthis._titleIsShown = false;\n\t\t\t\tif (title || this._config.alwaysShowClose) {\n\t\t\t\t\tthis._titleIsShown = true;\n\t\t\t\t\tthis._$modalHeader.css('display', '').find('.modal-title').html(title || \"&nbsp;\");\n\t\t\t\t} else this._$modalHeader.css('display', 'none');\n\n\t\t\t\tthis._footerIsShown = false;\n\t\t\t\tif (caption) {\n\t\t\t\t\tthis._footerIsShown = true;\n\t\t\t\t\tthis._$modalFooter.css('display', '').html(caption);\n\t\t\t\t} else this._$modalFooter.css('display', 'none');\n\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showYoutubeVideo',\n\t\t\tvalue: function _showYoutubeVideo(remote, $containerForElement) {\n\t\t\t\tvar id = this._getYoutubeId(remote);\n\t\t\t\tvar query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : '';\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\treturn this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showVimeoVideo',\n\t\t\tvalue: function _showVimeoVideo(id, $containerForElement) {\n\t\t\t\tvar width = this._$element.data('width') || 500;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\treturn this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showInstagramVideo',\n\t\t\tvalue: function _showInstagramVideo(id, $containerForElement) {\n\t\t\t\t// instagram load their content into iframe's so this can be put straight into the element\n\t\t\t\tvar width = this._$element.data('width') || 612;\n\t\t\t\tvar height = width + 80;\n\t\t\t\tid = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash\n\t\t\t\t$containerForElement.html('<iframe width=\"' + width + '\" height=\"' + height + '\" src=\"' + id + 'embed/\" frameborder=\"0\" allowfullscreen></iframe>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) //hide the arrows when showing video\n\t\t\t\t\tthis._$modalArrows.css('display', 'none');\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showVideoIframe',\n\t\t\tvalue: function _showVideoIframe(url, width, height, $containerForElement) {\n\t\t\t\t// should be used for videos only. for remote content use loadRemoteContent (data-type=url)\n\t\t\t\theight = height || width; // default to square\n\t\t\t\t$containerForElement.html('<div class=\"embed-responsive embed-responsive-16by9\"><iframe width=\"' + width + '\" height=\"' + height + '\" src=\"' + url + '\" frameborder=\"0\" allowfullscreen class=\"embed-responsive-item\"></iframe></div>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showHtml5Video',\n\t\t\tvalue: function _showHtml5Video(url, $containerForElement) {\n\t\t\t\t// should be used for videos only. for remote content use loadRemoteContent (data-type=url)\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\t$containerForElement.html('<div class=\"embed-responsive embed-responsive-16by9\"><video width=\"' + width + '\" height=\"' + height + '\" src=\"' + url + '\" preload=\"auto\" autoplay controls class=\"embed-responsive-item\"></video></div>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_loadRemoteContent',\n\t\t\tvalue: function _loadRemoteContent(url, $containerForElement) {\n\t\t\t\tvar _this3 = this;\n\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || 560;\n\n\t\t\t\tvar disableExternalCheck = this._$element.data('disableExternalCheck') || false;\n\t\t\t\tthis._toggleLoading(false);\n\n\t\t\t\t// external urls are loading into an iframe\n\t\t\t\t// local ajax can be loaded into the container itself\n\t\t\t\tif (!disableExternalCheck && !this._isExternal(url)) {\n\t\t\t\t\t$containerForElement.load(url, $.proxy(function () {\n\t\t\t\t\t\treturn _this3._$element.trigger('loaded.bs.modal');l;\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\t$containerForElement.html('<iframe src=\"' + url + '\" frameborder=\"0\" allowfullscreen></iframe>');\n\t\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\t}\n\n\t\t\t\tif (this._$modalArrows) //hide the arrows when remote content\n\t\t\t\t\tthis._$modalArrows.css('display', 'none');\n\n\t\t\t\tthis._resize(width, height);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_isExternal',\n\t\t\tvalue: function _isExternal(url) {\n\t\t\t\tvar match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n\t\t\t\tif (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;\n\n\t\t\t\tif (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({\n\t\t\t\t\t\"http:\": 80,\n\t\t\t\t\t\"https:\": 443\n\t\t\t\t})[location.protocol] + ')?$'), \"\") !== location.host) return true;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_error',\n\t\t\tvalue: function _error(message) {\n\t\t\t\tconsole.error(message);\n\t\t\t\tthis._containerToUse().html(message);\n\t\t\t\tthis._resize(300, 300);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_preloadImageByIndex',\n\t\t\tvalue: function _preloadImageByIndex(startIndex, numberOfTimes) {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tvar next = $(this._$galleryItems.get(startIndex), false);\n\t\t\t\tif (typeof next == 'undefined') return;\n\n\t\t\t\tvar src = next.attr('data-remote') || next.attr('href');\n\t\t\t\tif (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);\n\n\t\t\t\tif (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_preloadImage',\n\t\t\tvalue: function _preloadImage(src, $containerForImage) {\n\t\t\t\tvar _this4 = this;\n\n\t\t\t\t$containerForImage = $containerForImage || false;\n\n\t\t\t\tvar img = new Image();\n\t\t\t\tif ($containerForImage) {\n\t\t\t\t\t(function () {\n\n\t\t\t\t\t\t// if loading takes > 200ms show a loader\n\t\t\t\t\t\tvar loadingTimeout = setTimeout(function () {\n\t\t\t\t\t\t\t$containerForImage.append(_this4._config.loadingMessage);\n\t\t\t\t\t\t}, 200);\n\n\t\t\t\t\t\timg.onload = function () {\n\t\t\t\t\t\t\tif (loadingTimeout) clearTimeout(loadingTimeout);\n\t\t\t\t\t\t\tloadingTimeout = null;\n\t\t\t\t\t\t\tvar image = $('<img />');\n\t\t\t\t\t\t\timage.attr('src', img.src);\n\t\t\t\t\t\t\timage.addClass('img-fluid');\n\n\t\t\t\t\t\t\t// backward compatibility for bootstrap v3\n\t\t\t\t\t\t\timage.css('width', '100%');\n\n\t\t\t\t\t\t\t$containerForImage.html(image);\n\t\t\t\t\t\t\tif (_this4._$modalArrows) _this4._$modalArrows.css('display', ''); // remove display to default to css property\n\n\t\t\t\t\t\t\t_this4._resize(img.width, img.height);\n\t\t\t\t\t\t\t_this4._toggleLoading(false);\n\t\t\t\t\t\t\treturn _this4._config.onContentLoaded.call(_this4);\n\t\t\t\t\t\t};\n\t\t\t\t\t\timg.onerror = function () {\n\t\t\t\t\t\t\t_this4._toggleLoading(false);\n\t\t\t\t\t\t\treturn _this4._error(_this4._config.strings.fail + ('  ' + src));\n\t\t\t\t\t\t};\n\t\t\t\t\t})();\n\t\t\t\t}\n\n\t\t\t\timg.src = src;\n\t\t\t\treturn img;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_swipeGesure',\n\t\t\tvalue: function _swipeGesure() {\n\t\t\t\tif (this._touchendX < this._touchstartX) {\n\t\t\t\t\treturn this.navigateRight();\n\t\t\t\t}\n\t\t\t\tif (this._touchendX > this._touchstartX) {\n\t\t\t\t\treturn this.navigateLeft();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_resize',\n\t\t\tvalue: function _resize(width, height) {\n\n\t\t\t\theight = height || width;\n\t\t\t\tthis._wantedWidth = width;\n\t\t\t\tthis._wantedHeight = height;\n\n\t\t\t\tvar imageAspecRatio = width / height;\n\n\t\t\t\t// if width > the available space, scale down the expected width and height\n\t\t\t\tvar widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;\n\n\t\t\t\t// force 10px margin if window size > 575px\n\t\t\t\tvar addMargin = this._config.doc.body.clientWidth > 575 ? 20 : 0;\n\t\t\t\tvar discountMargin = this._config.doc.body.clientWidth > 575 ? 0 : 20;\n\n\t\t\t\tvar maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth - addMargin, this._config.maxWidth);\n\n\t\t\t\tif (width + widthBorderAndPadding > maxWidth) {\n\t\t\t\t\theight = (maxWidth - widthBorderAndPadding - discountMargin) / imageAspecRatio;\n\t\t\t\t\twidth = maxWidth;\n\t\t\t\t} else width = width + widthBorderAndPadding;\n\n\t\t\t\tvar headerHeight = 0,\n\t\t\t\t    footerHeight = 0;\n\n\t\t\t\t// as the resize is performed the modal is show, the calculate might fail\n\t\t\t\t// if so, default to the default sizes\n\t\t\t\tif (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;\n\n\t\t\t\tif (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;\n\n\t\t\t\tvar borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;\n\n\t\t\t\t//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins\n\t\t\t\tvar margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));\n\n\t\t\t\tvar maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight, this._config.maxHeight - borderPadding - headerHeight - footerHeight);\n\n\t\t\t\tif (height > maxHeight) {\n\t\t\t\t\t// if height > the available height, scale down the width\n\t\t\t\t\twidth = Math.ceil(maxHeight * imageAspecRatio) + widthBorderAndPadding;\n\t\t\t\t}\n\n\t\t\t\tthis._$lightboxContainer.css('height', maxHeight);\n\t\t\t\tthis._$modalDialog.css('flex', 1).css('maxWidth', width);\n\n\t\t\t\tvar modal = this._$modal.data('bs.modal');\n\t\t\t\tif (modal) {\n\t\t\t\t\t// v4 method is mistakenly protected\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmodal._handleUpdate();\n\t\t\t\t\t} catch (Exception) {\n\t\t\t\t\t\tmodal.handleUpdate();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}], [{\n\t\t\tkey: '_jQueryInterface',\n\t\t\tvalue: function _jQueryInterface(config) {\n\t\t\t\tvar _this5 = this;\n\n\t\t\t\tconfig = config || {};\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\tvar $this = $(_this5);\n\t\t\t\t\tvar _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);\n\n\t\t\t\t\tnew Lightbox(_this5, _config);\n\t\t\t\t});\n\t\t\t}\n\t\t}]);\n\n\t\treturn Lightbox;\n\t})();\n\n\t$.fn[NAME] = Lightbox._jQueryInterface;\n\t$.fn[NAME].Constructor = Lightbox;\n\t$.fn[NAME].noConflict = function () {\n\t\t$.fn[NAME] = JQUERY_NO_CONFLICT;\n\t\treturn Lightbox._jQueryInterface;\n\t};\n\n\treturn Lightbox;\n})(jQuery);\n//# sourceMappingURL=ekko-lightbox.js.map\n\n}(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fastclick/fastclick.js",
    "content": ";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flag-icon-css/css/flag-icon.css",
    "content": ".flag-icon-background {\n  background-size: contain;\n  background-position: 50%;\n  background-repeat: no-repeat;\n}\n.flag-icon {\n  background-size: contain;\n  background-position: 50%;\n  background-repeat: no-repeat;\n  position: relative;\n  display: inline-block;\n  width: 1.33333333em;\n  line-height: 1em;\n}\n.flag-icon:before {\n  content: \"\\00a0\";\n}\n.flag-icon.flag-icon-squared {\n  width: 1em;\n}\n.flag-icon-ad {\n  background-image: url(../flags/4x3/ad.svg);\n}\n.flag-icon-ad.flag-icon-squared {\n  background-image: url(../flags/1x1/ad.svg);\n}\n.flag-icon-ae {\n  background-image: url(../flags/4x3/ae.svg);\n}\n.flag-icon-ae.flag-icon-squared {\n  background-image: url(../flags/1x1/ae.svg);\n}\n.flag-icon-af {\n  background-image: url(../flags/4x3/af.svg);\n}\n.flag-icon-af.flag-icon-squared {\n  background-image: url(../flags/1x1/af.svg);\n}\n.flag-icon-ag {\n  background-image: url(../flags/4x3/ag.svg);\n}\n.flag-icon-ag.flag-icon-squared {\n  background-image: url(../flags/1x1/ag.svg);\n}\n.flag-icon-ai {\n  background-image: url(../flags/4x3/ai.svg);\n}\n.flag-icon-ai.flag-icon-squared {\n  background-image: url(../flags/1x1/ai.svg);\n}\n.flag-icon-al {\n  background-image: url(../flags/4x3/al.svg);\n}\n.flag-icon-al.flag-icon-squared {\n  background-image: url(../flags/1x1/al.svg);\n}\n.flag-icon-am {\n  background-image: url(../flags/4x3/am.svg);\n}\n.flag-icon-am.flag-icon-squared {\n  background-image: url(../flags/1x1/am.svg);\n}\n.flag-icon-ao {\n  background-image: url(../flags/4x3/ao.svg);\n}\n.flag-icon-ao.flag-icon-squared {\n  background-image: url(../flags/1x1/ao.svg);\n}\n.flag-icon-aq {\n  background-image: url(../flags/4x3/aq.svg);\n}\n.flag-icon-aq.flag-icon-squared {\n  background-image: url(../flags/1x1/aq.svg);\n}\n.flag-icon-ar {\n  background-image: url(../flags/4x3/ar.svg);\n}\n.flag-icon-ar.flag-icon-squared {\n  background-image: url(../flags/1x1/ar.svg);\n}\n.flag-icon-as {\n  background-image: url(../flags/4x3/as.svg);\n}\n.flag-icon-as.flag-icon-squared {\n  background-image: url(../flags/1x1/as.svg);\n}\n.flag-icon-at {\n  background-image: url(../flags/4x3/at.svg);\n}\n.flag-icon-at.flag-icon-squared {\n  background-image: url(../flags/1x1/at.svg);\n}\n.flag-icon-au {\n  background-image: url(../flags/4x3/au.svg);\n}\n.flag-icon-au.flag-icon-squared {\n  background-image: url(../flags/1x1/au.svg);\n}\n.flag-icon-aw {\n  background-image: url(../flags/4x3/aw.svg);\n}\n.flag-icon-aw.flag-icon-squared {\n  background-image: url(../flags/1x1/aw.svg);\n}\n.flag-icon-ax {\n  background-image: url(../flags/4x3/ax.svg);\n}\n.flag-icon-ax.flag-icon-squared {\n  background-image: url(../flags/1x1/ax.svg);\n}\n.flag-icon-az {\n  background-image: url(../flags/4x3/az.svg);\n}\n.flag-icon-az.flag-icon-squared {\n  background-image: url(../flags/1x1/az.svg);\n}\n.flag-icon-ba {\n  background-image: url(../flags/4x3/ba.svg);\n}\n.flag-icon-ba.flag-icon-squared {\n  background-image: url(../flags/1x1/ba.svg);\n}\n.flag-icon-bb {\n  background-image: url(../flags/4x3/bb.svg);\n}\n.flag-icon-bb.flag-icon-squared {\n  background-image: url(../flags/1x1/bb.svg);\n}\n.flag-icon-bd {\n  background-image: url(../flags/4x3/bd.svg);\n}\n.flag-icon-bd.flag-icon-squared {\n  background-image: url(../flags/1x1/bd.svg);\n}\n.flag-icon-be {\n  background-image: url(../flags/4x3/be.svg);\n}\n.flag-icon-be.flag-icon-squared {\n  background-image: url(../flags/1x1/be.svg);\n}\n.flag-icon-bf {\n  background-image: url(../flags/4x3/bf.svg);\n}\n.flag-icon-bf.flag-icon-squared {\n  background-image: url(../flags/1x1/bf.svg);\n}\n.flag-icon-bg {\n  background-image: url(../flags/4x3/bg.svg);\n}\n.flag-icon-bg.flag-icon-squared {\n  background-image: url(../flags/1x1/bg.svg);\n}\n.flag-icon-bh {\n  background-image: url(../flags/4x3/bh.svg);\n}\n.flag-icon-bh.flag-icon-squared {\n  background-image: url(../flags/1x1/bh.svg);\n}\n.flag-icon-bi {\n  background-image: url(../flags/4x3/bi.svg);\n}\n.flag-icon-bi.flag-icon-squared {\n  background-image: url(../flags/1x1/bi.svg);\n}\n.flag-icon-bj {\n  background-image: url(../flags/4x3/bj.svg);\n}\n.flag-icon-bj.flag-icon-squared {\n  background-image: url(../flags/1x1/bj.svg);\n}\n.flag-icon-bl {\n  background-image: url(../flags/4x3/bl.svg);\n}\n.flag-icon-bl.flag-icon-squared {\n  background-image: url(../flags/1x1/bl.svg);\n}\n.flag-icon-bm {\n  background-image: url(../flags/4x3/bm.svg);\n}\n.flag-icon-bm.flag-icon-squared {\n  background-image: url(../flags/1x1/bm.svg);\n}\n.flag-icon-bn {\n  background-image: url(../flags/4x3/bn.svg);\n}\n.flag-icon-bn.flag-icon-squared {\n  background-image: url(../flags/1x1/bn.svg);\n}\n.flag-icon-bo {\n  background-image: url(../flags/4x3/bo.svg);\n}\n.flag-icon-bo.flag-icon-squared {\n  background-image: url(../flags/1x1/bo.svg);\n}\n.flag-icon-bq {\n  background-image: url(../flags/4x3/bq.svg);\n}\n.flag-icon-bq.flag-icon-squared {\n  background-image: url(../flags/1x1/bq.svg);\n}\n.flag-icon-br {\n  background-image: url(../flags/4x3/br.svg);\n}\n.flag-icon-br.flag-icon-squared {\n  background-image: url(../flags/1x1/br.svg);\n}\n.flag-icon-bs {\n  background-image: url(../flags/4x3/bs.svg);\n}\n.flag-icon-bs.flag-icon-squared {\n  background-image: url(../flags/1x1/bs.svg);\n}\n.flag-icon-bt {\n  background-image: url(../flags/4x3/bt.svg);\n}\n.flag-icon-bt.flag-icon-squared {\n  background-image: url(../flags/1x1/bt.svg);\n}\n.flag-icon-bv {\n  background-image: url(../flags/4x3/bv.svg);\n}\n.flag-icon-bv.flag-icon-squared {\n  background-image: url(../flags/1x1/bv.svg);\n}\n.flag-icon-bw {\n  background-image: url(../flags/4x3/bw.svg);\n}\n.flag-icon-bw.flag-icon-squared {\n  background-image: url(../flags/1x1/bw.svg);\n}\n.flag-icon-by {\n  background-image: url(../flags/4x3/by.svg);\n}\n.flag-icon-by.flag-icon-squared {\n  background-image: url(../flags/1x1/by.svg);\n}\n.flag-icon-bz {\n  background-image: url(../flags/4x3/bz.svg);\n}\n.flag-icon-bz.flag-icon-squared {\n  background-image: url(../flags/1x1/bz.svg);\n}\n.flag-icon-ca {\n  background-image: url(../flags/4x3/ca.svg);\n}\n.flag-icon-ca.flag-icon-squared {\n  background-image: url(../flags/1x1/ca.svg);\n}\n.flag-icon-cc {\n  background-image: url(../flags/4x3/cc.svg);\n}\n.flag-icon-cc.flag-icon-squared {\n  background-image: url(../flags/1x1/cc.svg);\n}\n.flag-icon-cd {\n  background-image: url(../flags/4x3/cd.svg);\n}\n.flag-icon-cd.flag-icon-squared {\n  background-image: url(../flags/1x1/cd.svg);\n}\n.flag-icon-cf {\n  background-image: url(../flags/4x3/cf.svg);\n}\n.flag-icon-cf.flag-icon-squared {\n  background-image: url(../flags/1x1/cf.svg);\n}\n.flag-icon-cg {\n  background-image: url(../flags/4x3/cg.svg);\n}\n.flag-icon-cg.flag-icon-squared {\n  background-image: url(../flags/1x1/cg.svg);\n}\n.flag-icon-ch {\n  background-image: url(../flags/4x3/ch.svg);\n}\n.flag-icon-ch.flag-icon-squared {\n  background-image: url(../flags/1x1/ch.svg);\n}\n.flag-icon-ci {\n  background-image: url(../flags/4x3/ci.svg);\n}\n.flag-icon-ci.flag-icon-squared {\n  background-image: url(../flags/1x1/ci.svg);\n}\n.flag-icon-ck {\n  background-image: url(../flags/4x3/ck.svg);\n}\n.flag-icon-ck.flag-icon-squared {\n  background-image: url(../flags/1x1/ck.svg);\n}\n.flag-icon-cl {\n  background-image: url(../flags/4x3/cl.svg);\n}\n.flag-icon-cl.flag-icon-squared {\n  background-image: url(../flags/1x1/cl.svg);\n}\n.flag-icon-cm {\n  background-image: url(../flags/4x3/cm.svg);\n}\n.flag-icon-cm.flag-icon-squared {\n  background-image: url(../flags/1x1/cm.svg);\n}\n.flag-icon-cn {\n  background-image: url(../flags/4x3/cn.svg);\n}\n.flag-icon-cn.flag-icon-squared {\n  background-image: url(../flags/1x1/cn.svg);\n}\n.flag-icon-co {\n  background-image: url(../flags/4x3/co.svg);\n}\n.flag-icon-co.flag-icon-squared {\n  background-image: url(../flags/1x1/co.svg);\n}\n.flag-icon-cr {\n  background-image: url(../flags/4x3/cr.svg);\n}\n.flag-icon-cr.flag-icon-squared {\n  background-image: url(../flags/1x1/cr.svg);\n}\n.flag-icon-cu {\n  background-image: url(../flags/4x3/cu.svg);\n}\n.flag-icon-cu.flag-icon-squared {\n  background-image: url(../flags/1x1/cu.svg);\n}\n.flag-icon-cv {\n  background-image: url(../flags/4x3/cv.svg);\n}\n.flag-icon-cv.flag-icon-squared {\n  background-image: url(../flags/1x1/cv.svg);\n}\n.flag-icon-cw {\n  background-image: url(../flags/4x3/cw.svg);\n}\n.flag-icon-cw.flag-icon-squared {\n  background-image: url(../flags/1x1/cw.svg);\n}\n.flag-icon-cx {\n  background-image: url(../flags/4x3/cx.svg);\n}\n.flag-icon-cx.flag-icon-squared {\n  background-image: url(../flags/1x1/cx.svg);\n}\n.flag-icon-cy {\n  background-image: url(../flags/4x3/cy.svg);\n}\n.flag-icon-cy.flag-icon-squared {\n  background-image: url(../flags/1x1/cy.svg);\n}\n.flag-icon-cz {\n  background-image: url(../flags/4x3/cz.svg);\n}\n.flag-icon-cz.flag-icon-squared {\n  background-image: url(../flags/1x1/cz.svg);\n}\n.flag-icon-de {\n  background-image: url(../flags/4x3/de.svg);\n}\n.flag-icon-de.flag-icon-squared {\n  background-image: url(../flags/1x1/de.svg);\n}\n.flag-icon-dj {\n  background-image: url(../flags/4x3/dj.svg);\n}\n.flag-icon-dj.flag-icon-squared {\n  background-image: url(../flags/1x1/dj.svg);\n}\n.flag-icon-dk {\n  background-image: url(../flags/4x3/dk.svg);\n}\n.flag-icon-dk.flag-icon-squared {\n  background-image: url(../flags/1x1/dk.svg);\n}\n.flag-icon-dm {\n  background-image: url(../flags/4x3/dm.svg);\n}\n.flag-icon-dm.flag-icon-squared {\n  background-image: url(../flags/1x1/dm.svg);\n}\n.flag-icon-do {\n  background-image: url(../flags/4x3/do.svg);\n}\n.flag-icon-do.flag-icon-squared {\n  background-image: url(../flags/1x1/do.svg);\n}\n.flag-icon-dz {\n  background-image: url(../flags/4x3/dz.svg);\n}\n.flag-icon-dz.flag-icon-squared {\n  background-image: url(../flags/1x1/dz.svg);\n}\n.flag-icon-ec {\n  background-image: url(../flags/4x3/ec.svg);\n}\n.flag-icon-ec.flag-icon-squared {\n  background-image: url(../flags/1x1/ec.svg);\n}\n.flag-icon-ee {\n  background-image: url(../flags/4x3/ee.svg);\n}\n.flag-icon-ee.flag-icon-squared {\n  background-image: url(../flags/1x1/ee.svg);\n}\n.flag-icon-eg {\n  background-image: url(../flags/4x3/eg.svg);\n}\n.flag-icon-eg.flag-icon-squared {\n  background-image: url(../flags/1x1/eg.svg);\n}\n.flag-icon-eh {\n  background-image: url(../flags/4x3/eh.svg);\n}\n.flag-icon-eh.flag-icon-squared {\n  background-image: url(../flags/1x1/eh.svg);\n}\n.flag-icon-er {\n  background-image: url(../flags/4x3/er.svg);\n}\n.flag-icon-er.flag-icon-squared {\n  background-image: url(../flags/1x1/er.svg);\n}\n.flag-icon-es {\n  background-image: url(../flags/4x3/es.svg);\n}\n.flag-icon-es.flag-icon-squared {\n  background-image: url(../flags/1x1/es.svg);\n}\n.flag-icon-et {\n  background-image: url(../flags/4x3/et.svg);\n}\n.flag-icon-et.flag-icon-squared {\n  background-image: url(../flags/1x1/et.svg);\n}\n.flag-icon-fi {\n  background-image: url(../flags/4x3/fi.svg);\n}\n.flag-icon-fi.flag-icon-squared {\n  background-image: url(../flags/1x1/fi.svg);\n}\n.flag-icon-fj {\n  background-image: url(../flags/4x3/fj.svg);\n}\n.flag-icon-fj.flag-icon-squared {\n  background-image: url(../flags/1x1/fj.svg);\n}\n.flag-icon-fk {\n  background-image: url(../flags/4x3/fk.svg);\n}\n.flag-icon-fk.flag-icon-squared {\n  background-image: url(../flags/1x1/fk.svg);\n}\n.flag-icon-fm {\n  background-image: url(../flags/4x3/fm.svg);\n}\n.flag-icon-fm.flag-icon-squared {\n  background-image: url(../flags/1x1/fm.svg);\n}\n.flag-icon-fo {\n  background-image: url(../flags/4x3/fo.svg);\n}\n.flag-icon-fo.flag-icon-squared {\n  background-image: url(../flags/1x1/fo.svg);\n}\n.flag-icon-fr {\n  background-image: url(../flags/4x3/fr.svg);\n}\n.flag-icon-fr.flag-icon-squared {\n  background-image: url(../flags/1x1/fr.svg);\n}\n.flag-icon-ga {\n  background-image: url(../flags/4x3/ga.svg);\n}\n.flag-icon-ga.flag-icon-squared {\n  background-image: url(../flags/1x1/ga.svg);\n}\n.flag-icon-gb {\n  background-image: url(../flags/4x3/gb.svg);\n}\n.flag-icon-gb.flag-icon-squared {\n  background-image: url(../flags/1x1/gb.svg);\n}\n.flag-icon-gd {\n  background-image: url(../flags/4x3/gd.svg);\n}\n.flag-icon-gd.flag-icon-squared {\n  background-image: url(../flags/1x1/gd.svg);\n}\n.flag-icon-ge {\n  background-image: url(../flags/4x3/ge.svg);\n}\n.flag-icon-ge.flag-icon-squared {\n  background-image: url(../flags/1x1/ge.svg);\n}\n.flag-icon-gf {\n  background-image: url(../flags/4x3/gf.svg);\n}\n.flag-icon-gf.flag-icon-squared {\n  background-image: url(../flags/1x1/gf.svg);\n}\n.flag-icon-gg {\n  background-image: url(../flags/4x3/gg.svg);\n}\n.flag-icon-gg.flag-icon-squared {\n  background-image: url(../flags/1x1/gg.svg);\n}\n.flag-icon-gh {\n  background-image: url(../flags/4x3/gh.svg);\n}\n.flag-icon-gh.flag-icon-squared {\n  background-image: url(../flags/1x1/gh.svg);\n}\n.flag-icon-gi {\n  background-image: url(../flags/4x3/gi.svg);\n}\n.flag-icon-gi.flag-icon-squared {\n  background-image: url(../flags/1x1/gi.svg);\n}\n.flag-icon-gl {\n  background-image: url(../flags/4x3/gl.svg);\n}\n.flag-icon-gl.flag-icon-squared {\n  background-image: url(../flags/1x1/gl.svg);\n}\n.flag-icon-gm {\n  background-image: url(../flags/4x3/gm.svg);\n}\n.flag-icon-gm.flag-icon-squared {\n  background-image: url(../flags/1x1/gm.svg);\n}\n.flag-icon-gn {\n  background-image: url(../flags/4x3/gn.svg);\n}\n.flag-icon-gn.flag-icon-squared {\n  background-image: url(../flags/1x1/gn.svg);\n}\n.flag-icon-gp {\n  background-image: url(../flags/4x3/gp.svg);\n}\n.flag-icon-gp.flag-icon-squared {\n  background-image: url(../flags/1x1/gp.svg);\n}\n.flag-icon-gq {\n  background-image: url(../flags/4x3/gq.svg);\n}\n.flag-icon-gq.flag-icon-squared {\n  background-image: url(../flags/1x1/gq.svg);\n}\n.flag-icon-gr {\n  background-image: url(../flags/4x3/gr.svg);\n}\n.flag-icon-gr.flag-icon-squared {\n  background-image: url(../flags/1x1/gr.svg);\n}\n.flag-icon-gs {\n  background-image: url(../flags/4x3/gs.svg);\n}\n.flag-icon-gs.flag-icon-squared {\n  background-image: url(../flags/1x1/gs.svg);\n}\n.flag-icon-gt {\n  background-image: url(../flags/4x3/gt.svg);\n}\n.flag-icon-gt.flag-icon-squared {\n  background-image: url(../flags/1x1/gt.svg);\n}\n.flag-icon-gu {\n  background-image: url(../flags/4x3/gu.svg);\n}\n.flag-icon-gu.flag-icon-squared {\n  background-image: url(../flags/1x1/gu.svg);\n}\n.flag-icon-gw {\n  background-image: url(../flags/4x3/gw.svg);\n}\n.flag-icon-gw.flag-icon-squared {\n  background-image: url(../flags/1x1/gw.svg);\n}\n.flag-icon-gy {\n  background-image: url(../flags/4x3/gy.svg);\n}\n.flag-icon-gy.flag-icon-squared {\n  background-image: url(../flags/1x1/gy.svg);\n}\n.flag-icon-hk {\n  background-image: url(../flags/4x3/hk.svg);\n}\n.flag-icon-hk.flag-icon-squared {\n  background-image: url(../flags/1x1/hk.svg);\n}\n.flag-icon-hm {\n  background-image: url(../flags/4x3/hm.svg);\n}\n.flag-icon-hm.flag-icon-squared {\n  background-image: url(../flags/1x1/hm.svg);\n}\n.flag-icon-hn {\n  background-image: url(../flags/4x3/hn.svg);\n}\n.flag-icon-hn.flag-icon-squared {\n  background-image: url(../flags/1x1/hn.svg);\n}\n.flag-icon-hr {\n  background-image: url(../flags/4x3/hr.svg);\n}\n.flag-icon-hr.flag-icon-squared {\n  background-image: url(../flags/1x1/hr.svg);\n}\n.flag-icon-ht {\n  background-image: url(../flags/4x3/ht.svg);\n}\n.flag-icon-ht.flag-icon-squared {\n  background-image: url(../flags/1x1/ht.svg);\n}\n.flag-icon-hu {\n  background-image: url(../flags/4x3/hu.svg);\n}\n.flag-icon-hu.flag-icon-squared {\n  background-image: url(../flags/1x1/hu.svg);\n}\n.flag-icon-id {\n  background-image: url(../flags/4x3/id.svg);\n}\n.flag-icon-id.flag-icon-squared {\n  background-image: url(../flags/1x1/id.svg);\n}\n.flag-icon-ie {\n  background-image: url(../flags/4x3/ie.svg);\n}\n.flag-icon-ie.flag-icon-squared {\n  background-image: url(../flags/1x1/ie.svg);\n}\n.flag-icon-il {\n  background-image: url(../flags/4x3/il.svg);\n}\n.flag-icon-il.flag-icon-squared {\n  background-image: url(../flags/1x1/il.svg);\n}\n.flag-icon-im {\n  background-image: url(../flags/4x3/im.svg);\n}\n.flag-icon-im.flag-icon-squared {\n  background-image: url(../flags/1x1/im.svg);\n}\n.flag-icon-in {\n  background-image: url(../flags/4x3/in.svg);\n}\n.flag-icon-in.flag-icon-squared {\n  background-image: url(../flags/1x1/in.svg);\n}\n.flag-icon-io {\n  background-image: url(../flags/4x3/io.svg);\n}\n.flag-icon-io.flag-icon-squared {\n  background-image: url(../flags/1x1/io.svg);\n}\n.flag-icon-iq {\n  background-image: url(../flags/4x3/iq.svg);\n}\n.flag-icon-iq.flag-icon-squared {\n  background-image: url(../flags/1x1/iq.svg);\n}\n.flag-icon-ir {\n  background-image: url(../flags/4x3/ir.svg);\n}\n.flag-icon-ir.flag-icon-squared {\n  background-image: url(../flags/1x1/ir.svg);\n}\n.flag-icon-is {\n  background-image: url(../flags/4x3/is.svg);\n}\n.flag-icon-is.flag-icon-squared {\n  background-image: url(../flags/1x1/is.svg);\n}\n.flag-icon-it {\n  background-image: url(../flags/4x3/it.svg);\n}\n.flag-icon-it.flag-icon-squared {\n  background-image: url(../flags/1x1/it.svg);\n}\n.flag-icon-je {\n  background-image: url(../flags/4x3/je.svg);\n}\n.flag-icon-je.flag-icon-squared {\n  background-image: url(../flags/1x1/je.svg);\n}\n.flag-icon-jm {\n  background-image: url(../flags/4x3/jm.svg);\n}\n.flag-icon-jm.flag-icon-squared {\n  background-image: url(../flags/1x1/jm.svg);\n}\n.flag-icon-jo {\n  background-image: url(../flags/4x3/jo.svg);\n}\n.flag-icon-jo.flag-icon-squared {\n  background-image: url(../flags/1x1/jo.svg);\n}\n.flag-icon-jp {\n  background-image: url(../flags/4x3/jp.svg);\n}\n.flag-icon-jp.flag-icon-squared {\n  background-image: url(../flags/1x1/jp.svg);\n}\n.flag-icon-ke {\n  background-image: url(../flags/4x3/ke.svg);\n}\n.flag-icon-ke.flag-icon-squared {\n  background-image: url(../flags/1x1/ke.svg);\n}\n.flag-icon-kg {\n  background-image: url(../flags/4x3/kg.svg);\n}\n.flag-icon-kg.flag-icon-squared {\n  background-image: url(../flags/1x1/kg.svg);\n}\n.flag-icon-kh {\n  background-image: url(../flags/4x3/kh.svg);\n}\n.flag-icon-kh.flag-icon-squared {\n  background-image: url(../flags/1x1/kh.svg);\n}\n.flag-icon-ki {\n  background-image: url(../flags/4x3/ki.svg);\n}\n.flag-icon-ki.flag-icon-squared {\n  background-image: url(../flags/1x1/ki.svg);\n}\n.flag-icon-km {\n  background-image: url(../flags/4x3/km.svg);\n}\n.flag-icon-km.flag-icon-squared {\n  background-image: url(../flags/1x1/km.svg);\n}\n.flag-icon-kn {\n  background-image: url(../flags/4x3/kn.svg);\n}\n.flag-icon-kn.flag-icon-squared {\n  background-image: url(../flags/1x1/kn.svg);\n}\n.flag-icon-kp {\n  background-image: url(../flags/4x3/kp.svg);\n}\n.flag-icon-kp.flag-icon-squared {\n  background-image: url(../flags/1x1/kp.svg);\n}\n.flag-icon-kr {\n  background-image: url(../flags/4x3/kr.svg);\n}\n.flag-icon-kr.flag-icon-squared {\n  background-image: url(../flags/1x1/kr.svg);\n}\n.flag-icon-kw {\n  background-image: url(../flags/4x3/kw.svg);\n}\n.flag-icon-kw.flag-icon-squared {\n  background-image: url(../flags/1x1/kw.svg);\n}\n.flag-icon-ky {\n  background-image: url(../flags/4x3/ky.svg);\n}\n.flag-icon-ky.flag-icon-squared {\n  background-image: url(../flags/1x1/ky.svg);\n}\n.flag-icon-kz {\n  background-image: url(../flags/4x3/kz.svg);\n}\n.flag-icon-kz.flag-icon-squared {\n  background-image: url(../flags/1x1/kz.svg);\n}\n.flag-icon-la {\n  background-image: url(../flags/4x3/la.svg);\n}\n.flag-icon-la.flag-icon-squared {\n  background-image: url(../flags/1x1/la.svg);\n}\n.flag-icon-lb {\n  background-image: url(../flags/4x3/lb.svg);\n}\n.flag-icon-lb.flag-icon-squared {\n  background-image: url(../flags/1x1/lb.svg);\n}\n.flag-icon-lc {\n  background-image: url(../flags/4x3/lc.svg);\n}\n.flag-icon-lc.flag-icon-squared {\n  background-image: url(../flags/1x1/lc.svg);\n}\n.flag-icon-li {\n  background-image: url(../flags/4x3/li.svg);\n}\n.flag-icon-li.flag-icon-squared {\n  background-image: url(../flags/1x1/li.svg);\n}\n.flag-icon-lk {\n  background-image: url(../flags/4x3/lk.svg);\n}\n.flag-icon-lk.flag-icon-squared {\n  background-image: url(../flags/1x1/lk.svg);\n}\n.flag-icon-lr {\n  background-image: url(../flags/4x3/lr.svg);\n}\n.flag-icon-lr.flag-icon-squared {\n  background-image: url(../flags/1x1/lr.svg);\n}\n.flag-icon-ls {\n  background-image: url(../flags/4x3/ls.svg);\n}\n.flag-icon-ls.flag-icon-squared {\n  background-image: url(../flags/1x1/ls.svg);\n}\n.flag-icon-lt {\n  background-image: url(../flags/4x3/lt.svg);\n}\n.flag-icon-lt.flag-icon-squared {\n  background-image: url(../flags/1x1/lt.svg);\n}\n.flag-icon-lu {\n  background-image: url(../flags/4x3/lu.svg);\n}\n.flag-icon-lu.flag-icon-squared {\n  background-image: url(../flags/1x1/lu.svg);\n}\n.flag-icon-lv {\n  background-image: url(../flags/4x3/lv.svg);\n}\n.flag-icon-lv.flag-icon-squared {\n  background-image: url(../flags/1x1/lv.svg);\n}\n.flag-icon-ly {\n  background-image: url(../flags/4x3/ly.svg);\n}\n.flag-icon-ly.flag-icon-squared {\n  background-image: url(../flags/1x1/ly.svg);\n}\n.flag-icon-ma {\n  background-image: url(../flags/4x3/ma.svg);\n}\n.flag-icon-ma.flag-icon-squared {\n  background-image: url(../flags/1x1/ma.svg);\n}\n.flag-icon-mc {\n  background-image: url(../flags/4x3/mc.svg);\n}\n.flag-icon-mc.flag-icon-squared {\n  background-image: url(../flags/1x1/mc.svg);\n}\n.flag-icon-md {\n  background-image: url(../flags/4x3/md.svg);\n}\n.flag-icon-md.flag-icon-squared {\n  background-image: url(../flags/1x1/md.svg);\n}\n.flag-icon-me {\n  background-image: url(../flags/4x3/me.svg);\n}\n.flag-icon-me.flag-icon-squared {\n  background-image: url(../flags/1x1/me.svg);\n}\n.flag-icon-mf {\n  background-image: url(../flags/4x3/mf.svg);\n}\n.flag-icon-mf.flag-icon-squared {\n  background-image: url(../flags/1x1/mf.svg);\n}\n.flag-icon-mg {\n  background-image: url(../flags/4x3/mg.svg);\n}\n.flag-icon-mg.flag-icon-squared {\n  background-image: url(../flags/1x1/mg.svg);\n}\n.flag-icon-mh {\n  background-image: url(../flags/4x3/mh.svg);\n}\n.flag-icon-mh.flag-icon-squared {\n  background-image: url(../flags/1x1/mh.svg);\n}\n.flag-icon-mk {\n  background-image: url(../flags/4x3/mk.svg);\n}\n.flag-icon-mk.flag-icon-squared {\n  background-image: url(../flags/1x1/mk.svg);\n}\n.flag-icon-ml {\n  background-image: url(../flags/4x3/ml.svg);\n}\n.flag-icon-ml.flag-icon-squared {\n  background-image: url(../flags/1x1/ml.svg);\n}\n.flag-icon-mm {\n  background-image: url(../flags/4x3/mm.svg);\n}\n.flag-icon-mm.flag-icon-squared {\n  background-image: url(../flags/1x1/mm.svg);\n}\n.flag-icon-mn {\n  background-image: url(../flags/4x3/mn.svg);\n}\n.flag-icon-mn.flag-icon-squared {\n  background-image: url(../flags/1x1/mn.svg);\n}\n.flag-icon-mo {\n  background-image: url(../flags/4x3/mo.svg);\n}\n.flag-icon-mo.flag-icon-squared {\n  background-image: url(../flags/1x1/mo.svg);\n}\n.flag-icon-mp {\n  background-image: url(../flags/4x3/mp.svg);\n}\n.flag-icon-mp.flag-icon-squared {\n  background-image: url(../flags/1x1/mp.svg);\n}\n.flag-icon-mq {\n  background-image: url(../flags/4x3/mq.svg);\n}\n.flag-icon-mq.flag-icon-squared {\n  background-image: url(../flags/1x1/mq.svg);\n}\n.flag-icon-mr {\n  background-image: url(../flags/4x3/mr.svg);\n}\n.flag-icon-mr.flag-icon-squared {\n  background-image: url(../flags/1x1/mr.svg);\n}\n.flag-icon-ms {\n  background-image: url(../flags/4x3/ms.svg);\n}\n.flag-icon-ms.flag-icon-squared {\n  background-image: url(../flags/1x1/ms.svg);\n}\n.flag-icon-mt {\n  background-image: url(../flags/4x3/mt.svg);\n}\n.flag-icon-mt.flag-icon-squared {\n  background-image: url(../flags/1x1/mt.svg);\n}\n.flag-icon-mu {\n  background-image: url(../flags/4x3/mu.svg);\n}\n.flag-icon-mu.flag-icon-squared {\n  background-image: url(../flags/1x1/mu.svg);\n}\n.flag-icon-mv {\n  background-image: url(../flags/4x3/mv.svg);\n}\n.flag-icon-mv.flag-icon-squared {\n  background-image: url(../flags/1x1/mv.svg);\n}\n.flag-icon-mw {\n  background-image: url(../flags/4x3/mw.svg);\n}\n.flag-icon-mw.flag-icon-squared {\n  background-image: url(../flags/1x1/mw.svg);\n}\n.flag-icon-mx {\n  background-image: url(../flags/4x3/mx.svg);\n}\n.flag-icon-mx.flag-icon-squared {\n  background-image: url(../flags/1x1/mx.svg);\n}\n.flag-icon-my {\n  background-image: url(../flags/4x3/my.svg);\n}\n.flag-icon-my.flag-icon-squared {\n  background-image: url(../flags/1x1/my.svg);\n}\n.flag-icon-mz {\n  background-image: url(../flags/4x3/mz.svg);\n}\n.flag-icon-mz.flag-icon-squared {\n  background-image: url(../flags/1x1/mz.svg);\n}\n.flag-icon-na {\n  background-image: url(../flags/4x3/na.svg);\n}\n.flag-icon-na.flag-icon-squared {\n  background-image: url(../flags/1x1/na.svg);\n}\n.flag-icon-nc {\n  background-image: url(../flags/4x3/nc.svg);\n}\n.flag-icon-nc.flag-icon-squared {\n  background-image: url(../flags/1x1/nc.svg);\n}\n.flag-icon-ne {\n  background-image: url(../flags/4x3/ne.svg);\n}\n.flag-icon-ne.flag-icon-squared {\n  background-image: url(../flags/1x1/ne.svg);\n}\n.flag-icon-nf {\n  background-image: url(../flags/4x3/nf.svg);\n}\n.flag-icon-nf.flag-icon-squared {\n  background-image: url(../flags/1x1/nf.svg);\n}\n.flag-icon-ng {\n  background-image: url(../flags/4x3/ng.svg);\n}\n.flag-icon-ng.flag-icon-squared {\n  background-image: url(../flags/1x1/ng.svg);\n}\n.flag-icon-ni {\n  background-image: url(../flags/4x3/ni.svg);\n}\n.flag-icon-ni.flag-icon-squared {\n  background-image: url(../flags/1x1/ni.svg);\n}\n.flag-icon-nl {\n  background-image: url(../flags/4x3/nl.svg);\n}\n.flag-icon-nl.flag-icon-squared {\n  background-image: url(../flags/1x1/nl.svg);\n}\n.flag-icon-no {\n  background-image: url(../flags/4x3/no.svg);\n}\n.flag-icon-no.flag-icon-squared {\n  background-image: url(../flags/1x1/no.svg);\n}\n.flag-icon-np {\n  background-image: url(../flags/4x3/np.svg);\n}\n.flag-icon-np.flag-icon-squared {\n  background-image: url(../flags/1x1/np.svg);\n}\n.flag-icon-nr {\n  background-image: url(../flags/4x3/nr.svg);\n}\n.flag-icon-nr.flag-icon-squared {\n  background-image: url(../flags/1x1/nr.svg);\n}\n.flag-icon-nu {\n  background-image: url(../flags/4x3/nu.svg);\n}\n.flag-icon-nu.flag-icon-squared {\n  background-image: url(../flags/1x1/nu.svg);\n}\n.flag-icon-nz {\n  background-image: url(../flags/4x3/nz.svg);\n}\n.flag-icon-nz.flag-icon-squared {\n  background-image: url(../flags/1x1/nz.svg);\n}\n.flag-icon-om {\n  background-image: url(../flags/4x3/om.svg);\n}\n.flag-icon-om.flag-icon-squared {\n  background-image: url(../flags/1x1/om.svg);\n}\n.flag-icon-pa {\n  background-image: url(../flags/4x3/pa.svg);\n}\n.flag-icon-pa.flag-icon-squared {\n  background-image: url(../flags/1x1/pa.svg);\n}\n.flag-icon-pe {\n  background-image: url(../flags/4x3/pe.svg);\n}\n.flag-icon-pe.flag-icon-squared {\n  background-image: url(../flags/1x1/pe.svg);\n}\n.flag-icon-pf {\n  background-image: url(../flags/4x3/pf.svg);\n}\n.flag-icon-pf.flag-icon-squared {\n  background-image: url(../flags/1x1/pf.svg);\n}\n.flag-icon-pg {\n  background-image: url(../flags/4x3/pg.svg);\n}\n.flag-icon-pg.flag-icon-squared {\n  background-image: url(../flags/1x1/pg.svg);\n}\n.flag-icon-ph {\n  background-image: url(../flags/4x3/ph.svg);\n}\n.flag-icon-ph.flag-icon-squared {\n  background-image: url(../flags/1x1/ph.svg);\n}\n.flag-icon-pk {\n  background-image: url(../flags/4x3/pk.svg);\n}\n.flag-icon-pk.flag-icon-squared {\n  background-image: url(../flags/1x1/pk.svg);\n}\n.flag-icon-pl {\n  background-image: url(../flags/4x3/pl.svg);\n}\n.flag-icon-pl.flag-icon-squared {\n  background-image: url(../flags/1x1/pl.svg);\n}\n.flag-icon-pm {\n  background-image: url(../flags/4x3/pm.svg);\n}\n.flag-icon-pm.flag-icon-squared {\n  background-image: url(../flags/1x1/pm.svg);\n}\n.flag-icon-pn {\n  background-image: url(../flags/4x3/pn.svg);\n}\n.flag-icon-pn.flag-icon-squared {\n  background-image: url(../flags/1x1/pn.svg);\n}\n.flag-icon-pr {\n  background-image: url(../flags/4x3/pr.svg);\n}\n.flag-icon-pr.flag-icon-squared {\n  background-image: url(../flags/1x1/pr.svg);\n}\n.flag-icon-ps {\n  background-image: url(../flags/4x3/ps.svg);\n}\n.flag-icon-ps.flag-icon-squared {\n  background-image: url(../flags/1x1/ps.svg);\n}\n.flag-icon-pt {\n  background-image: url(../flags/4x3/pt.svg);\n}\n.flag-icon-pt.flag-icon-squared {\n  background-image: url(../flags/1x1/pt.svg);\n}\n.flag-icon-pw {\n  background-image: url(../flags/4x3/pw.svg);\n}\n.flag-icon-pw.flag-icon-squared {\n  background-image: url(../flags/1x1/pw.svg);\n}\n.flag-icon-py {\n  background-image: url(../flags/4x3/py.svg);\n}\n.flag-icon-py.flag-icon-squared {\n  background-image: url(../flags/1x1/py.svg);\n}\n.flag-icon-qa {\n  background-image: url(../flags/4x3/qa.svg);\n}\n.flag-icon-qa.flag-icon-squared {\n  background-image: url(../flags/1x1/qa.svg);\n}\n.flag-icon-re {\n  background-image: url(../flags/4x3/re.svg);\n}\n.flag-icon-re.flag-icon-squared {\n  background-image: url(../flags/1x1/re.svg);\n}\n.flag-icon-ro {\n  background-image: url(../flags/4x3/ro.svg);\n}\n.flag-icon-ro.flag-icon-squared {\n  background-image: url(../flags/1x1/ro.svg);\n}\n.flag-icon-rs {\n  background-image: url(../flags/4x3/rs.svg);\n}\n.flag-icon-rs.flag-icon-squared {\n  background-image: url(../flags/1x1/rs.svg);\n}\n.flag-icon-ru {\n  background-image: url(../flags/4x3/ru.svg);\n}\n.flag-icon-ru.flag-icon-squared {\n  background-image: url(../flags/1x1/ru.svg);\n}\n.flag-icon-rw {\n  background-image: url(../flags/4x3/rw.svg);\n}\n.flag-icon-rw.flag-icon-squared {\n  background-image: url(../flags/1x1/rw.svg);\n}\n.flag-icon-sa {\n  background-image: url(../flags/4x3/sa.svg);\n}\n.flag-icon-sa.flag-icon-squared {\n  background-image: url(../flags/1x1/sa.svg);\n}\n.flag-icon-sb {\n  background-image: url(../flags/4x3/sb.svg);\n}\n.flag-icon-sb.flag-icon-squared {\n  background-image: url(../flags/1x1/sb.svg);\n}\n.flag-icon-sc {\n  background-image: url(../flags/4x3/sc.svg);\n}\n.flag-icon-sc.flag-icon-squared {\n  background-image: url(../flags/1x1/sc.svg);\n}\n.flag-icon-sd {\n  background-image: url(../flags/4x3/sd.svg);\n}\n.flag-icon-sd.flag-icon-squared {\n  background-image: url(../flags/1x1/sd.svg);\n}\n.flag-icon-se {\n  background-image: url(../flags/4x3/se.svg);\n}\n.flag-icon-se.flag-icon-squared {\n  background-image: url(../flags/1x1/se.svg);\n}\n.flag-icon-sg {\n  background-image: url(../flags/4x3/sg.svg);\n}\n.flag-icon-sg.flag-icon-squared {\n  background-image: url(../flags/1x1/sg.svg);\n}\n.flag-icon-sh {\n  background-image: url(../flags/4x3/sh.svg);\n}\n.flag-icon-sh.flag-icon-squared {\n  background-image: url(../flags/1x1/sh.svg);\n}\n.flag-icon-si {\n  background-image: url(../flags/4x3/si.svg);\n}\n.flag-icon-si.flag-icon-squared {\n  background-image: url(../flags/1x1/si.svg);\n}\n.flag-icon-sj {\n  background-image: url(../flags/4x3/sj.svg);\n}\n.flag-icon-sj.flag-icon-squared {\n  background-image: url(../flags/1x1/sj.svg);\n}\n.flag-icon-sk {\n  background-image: url(../flags/4x3/sk.svg);\n}\n.flag-icon-sk.flag-icon-squared {\n  background-image: url(../flags/1x1/sk.svg);\n}\n.flag-icon-sl {\n  background-image: url(../flags/4x3/sl.svg);\n}\n.flag-icon-sl.flag-icon-squared {\n  background-image: url(../flags/1x1/sl.svg);\n}\n.flag-icon-sm {\n  background-image: url(../flags/4x3/sm.svg);\n}\n.flag-icon-sm.flag-icon-squared {\n  background-image: url(../flags/1x1/sm.svg);\n}\n.flag-icon-sn {\n  background-image: url(../flags/4x3/sn.svg);\n}\n.flag-icon-sn.flag-icon-squared {\n  background-image: url(../flags/1x1/sn.svg);\n}\n.flag-icon-so {\n  background-image: url(../flags/4x3/so.svg);\n}\n.flag-icon-so.flag-icon-squared {\n  background-image: url(../flags/1x1/so.svg);\n}\n.flag-icon-sr {\n  background-image: url(../flags/4x3/sr.svg);\n}\n.flag-icon-sr.flag-icon-squared {\n  background-image: url(../flags/1x1/sr.svg);\n}\n.flag-icon-ss {\n  background-image: url(../flags/4x3/ss.svg);\n}\n.flag-icon-ss.flag-icon-squared {\n  background-image: url(../flags/1x1/ss.svg);\n}\n.flag-icon-st {\n  background-image: url(../flags/4x3/st.svg);\n}\n.flag-icon-st.flag-icon-squared {\n  background-image: url(../flags/1x1/st.svg);\n}\n.flag-icon-sv {\n  background-image: url(../flags/4x3/sv.svg);\n}\n.flag-icon-sv.flag-icon-squared {\n  background-image: url(../flags/1x1/sv.svg);\n}\n.flag-icon-sx {\n  background-image: url(../flags/4x3/sx.svg);\n}\n.flag-icon-sx.flag-icon-squared {\n  background-image: url(../flags/1x1/sx.svg);\n}\n.flag-icon-sy {\n  background-image: url(../flags/4x3/sy.svg);\n}\n.flag-icon-sy.flag-icon-squared {\n  background-image: url(../flags/1x1/sy.svg);\n}\n.flag-icon-sz {\n  background-image: url(../flags/4x3/sz.svg);\n}\n.flag-icon-sz.flag-icon-squared {\n  background-image: url(../flags/1x1/sz.svg);\n}\n.flag-icon-tc {\n  background-image: url(../flags/4x3/tc.svg);\n}\n.flag-icon-tc.flag-icon-squared {\n  background-image: url(../flags/1x1/tc.svg);\n}\n.flag-icon-td {\n  background-image: url(../flags/4x3/td.svg);\n}\n.flag-icon-td.flag-icon-squared {\n  background-image: url(../flags/1x1/td.svg);\n}\n.flag-icon-tf {\n  background-image: url(../flags/4x3/tf.svg);\n}\n.flag-icon-tf.flag-icon-squared {\n  background-image: url(../flags/1x1/tf.svg);\n}\n.flag-icon-tg {\n  background-image: url(../flags/4x3/tg.svg);\n}\n.flag-icon-tg.flag-icon-squared {\n  background-image: url(../flags/1x1/tg.svg);\n}\n.flag-icon-th {\n  background-image: url(../flags/4x3/th.svg);\n}\n.flag-icon-th.flag-icon-squared {\n  background-image: url(../flags/1x1/th.svg);\n}\n.flag-icon-tj {\n  background-image: url(../flags/4x3/tj.svg);\n}\n.flag-icon-tj.flag-icon-squared {\n  background-image: url(../flags/1x1/tj.svg);\n}\n.flag-icon-tk {\n  background-image: url(../flags/4x3/tk.svg);\n}\n.flag-icon-tk.flag-icon-squared {\n  background-image: url(../flags/1x1/tk.svg);\n}\n.flag-icon-tl {\n  background-image: url(../flags/4x3/tl.svg);\n}\n.flag-icon-tl.flag-icon-squared {\n  background-image: url(../flags/1x1/tl.svg);\n}\n.flag-icon-tm {\n  background-image: url(../flags/4x3/tm.svg);\n}\n.flag-icon-tm.flag-icon-squared {\n  background-image: url(../flags/1x1/tm.svg);\n}\n.flag-icon-tn {\n  background-image: url(../flags/4x3/tn.svg);\n}\n.flag-icon-tn.flag-icon-squared {\n  background-image: url(../flags/1x1/tn.svg);\n}\n.flag-icon-to {\n  background-image: url(../flags/4x3/to.svg);\n}\n.flag-icon-to.flag-icon-squared {\n  background-image: url(../flags/1x1/to.svg);\n}\n.flag-icon-tr {\n  background-image: url(../flags/4x3/tr.svg);\n}\n.flag-icon-tr.flag-icon-squared {\n  background-image: url(../flags/1x1/tr.svg);\n}\n.flag-icon-tt {\n  background-image: url(../flags/4x3/tt.svg);\n}\n.flag-icon-tt.flag-icon-squared {\n  background-image: url(../flags/1x1/tt.svg);\n}\n.flag-icon-tv {\n  background-image: url(../flags/4x3/tv.svg);\n}\n.flag-icon-tv.flag-icon-squared {\n  background-image: url(../flags/1x1/tv.svg);\n}\n.flag-icon-tw {\n  background-image: url(../flags/4x3/tw.svg);\n}\n.flag-icon-tw.flag-icon-squared {\n  background-image: url(../flags/1x1/tw.svg);\n}\n.flag-icon-tz {\n  background-image: url(../flags/4x3/tz.svg);\n}\n.flag-icon-tz.flag-icon-squared {\n  background-image: url(../flags/1x1/tz.svg);\n}\n.flag-icon-ua {\n  background-image: url(../flags/4x3/ua.svg);\n}\n.flag-icon-ua.flag-icon-squared {\n  background-image: url(../flags/1x1/ua.svg);\n}\n.flag-icon-ug {\n  background-image: url(../flags/4x3/ug.svg);\n}\n.flag-icon-ug.flag-icon-squared {\n  background-image: url(../flags/1x1/ug.svg);\n}\n.flag-icon-um {\n  background-image: url(../flags/4x3/um.svg);\n}\n.flag-icon-um.flag-icon-squared {\n  background-image: url(../flags/1x1/um.svg);\n}\n.flag-icon-us {\n  background-image: url(../flags/4x3/us.svg);\n}\n.flag-icon-us.flag-icon-squared {\n  background-image: url(../flags/1x1/us.svg);\n}\n.flag-icon-uy {\n  background-image: url(../flags/4x3/uy.svg);\n}\n.flag-icon-uy.flag-icon-squared {\n  background-image: url(../flags/1x1/uy.svg);\n}\n.flag-icon-uz {\n  background-image: url(../flags/4x3/uz.svg);\n}\n.flag-icon-uz.flag-icon-squared {\n  background-image: url(../flags/1x1/uz.svg);\n}\n.flag-icon-va {\n  background-image: url(../flags/4x3/va.svg);\n}\n.flag-icon-va.flag-icon-squared {\n  background-image: url(../flags/1x1/va.svg);\n}\n.flag-icon-vc {\n  background-image: url(../flags/4x3/vc.svg);\n}\n.flag-icon-vc.flag-icon-squared {\n  background-image: url(../flags/1x1/vc.svg);\n}\n.flag-icon-ve {\n  background-image: url(../flags/4x3/ve.svg);\n}\n.flag-icon-ve.flag-icon-squared {\n  background-image: url(../flags/1x1/ve.svg);\n}\n.flag-icon-vg {\n  background-image: url(../flags/4x3/vg.svg);\n}\n.flag-icon-vg.flag-icon-squared {\n  background-image: url(../flags/1x1/vg.svg);\n}\n.flag-icon-vi {\n  background-image: url(../flags/4x3/vi.svg);\n}\n.flag-icon-vi.flag-icon-squared {\n  background-image: url(../flags/1x1/vi.svg);\n}\n.flag-icon-vn {\n  background-image: url(../flags/4x3/vn.svg);\n}\n.flag-icon-vn.flag-icon-squared {\n  background-image: url(../flags/1x1/vn.svg);\n}\n.flag-icon-vu {\n  background-image: url(../flags/4x3/vu.svg);\n}\n.flag-icon-vu.flag-icon-squared {\n  background-image: url(../flags/1x1/vu.svg);\n}\n.flag-icon-wf {\n  background-image: url(../flags/4x3/wf.svg);\n}\n.flag-icon-wf.flag-icon-squared {\n  background-image: url(../flags/1x1/wf.svg);\n}\n.flag-icon-ws {\n  background-image: url(../flags/4x3/ws.svg);\n}\n.flag-icon-ws.flag-icon-squared {\n  background-image: url(../flags/1x1/ws.svg);\n}\n.flag-icon-ye {\n  background-image: url(../flags/4x3/ye.svg);\n}\n.flag-icon-ye.flag-icon-squared {\n  background-image: url(../flags/1x1/ye.svg);\n}\n.flag-icon-yt {\n  background-image: url(../flags/4x3/yt.svg);\n}\n.flag-icon-yt.flag-icon-squared {\n  background-image: url(../flags/1x1/yt.svg);\n}\n.flag-icon-za {\n  background-image: url(../flags/4x3/za.svg);\n}\n.flag-icon-za.flag-icon-squared {\n  background-image: url(../flags/1x1/za.svg);\n}\n.flag-icon-zm {\n  background-image: url(../flags/4x3/zm.svg);\n}\n.flag-icon-zm.flag-icon-squared {\n  background-image: url(../flags/1x1/zm.svg);\n}\n.flag-icon-zw {\n  background-image: url(../flags/4x3/zw.svg);\n}\n.flag-icon-zw.flag-icon-squared {\n  background-image: url(../flags/1x1/zw.svg);\n}\n.flag-icon-es-ca {\n  background-image: url(../flags/4x3/es-ca.svg);\n}\n.flag-icon-es-ca.flag-icon-squared {\n  background-image: url(../flags/1x1/es-ca.svg);\n}\n.flag-icon-es-ga {\n  background-image: url(../flags/4x3/es-ga.svg);\n}\n.flag-icon-es-ga.flag-icon-squared {\n  background-image: url(../flags/1x1/es-ga.svg);\n}\n.flag-icon-eu {\n  background-image: url(../flags/4x3/eu.svg);\n}\n.flag-icon-eu.flag-icon-squared {\n  background-image: url(../flags/1x1/eu.svg);\n}\n.flag-icon-gb-eng {\n  background-image: url(../flags/4x3/gb-eng.svg);\n}\n.flag-icon-gb-eng.flag-icon-squared {\n  background-image: url(../flags/1x1/gb-eng.svg);\n}\n.flag-icon-gb-nir {\n  background-image: url(../flags/4x3/gb-nir.svg);\n}\n.flag-icon-gb-nir.flag-icon-squared {\n  background-image: url(../flags/1x1/gb-nir.svg);\n}\n.flag-icon-gb-sct {\n  background-image: url(../flags/4x3/gb-sct.svg);\n}\n.flag-icon-gb-sct.flag-icon-squared {\n  background-image: url(../flags/1x1/gb-sct.svg);\n}\n.flag-icon-gb-wls {\n  background-image: url(../flags/4x3/gb-wls.svg);\n}\n.flag-icon-gb-wls.flag-icon-squared {\n  background-image: url(../flags/1x1/gb-wls.svg);\n}\n.flag-icon-un {\n  background-image: url(../flags/4x3/un.svg);\n}\n.flag-icon-un.flag-icon-squared {\n  background-image: url(../flags/1x1/un.svg);\n}\n.flag-icon-xk {\n  background-image: url(../flags/4x3/xk.svg);\n}\n.flag-icon-xk.flag-icon-squared {\n  background-image: url(../flags/1x1/xk.svg);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/jquery.flot.js",
    "content": "\"use strict\";function _typeof(t){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function _typeof(t){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(r){var t=function(t,e){var n=e.getElementsByClassName(t)[0];if(!n&&((n=document.createElement(\"canvas\")).className=t,n.style.direction=\"ltr\",n.style.position=\"absolute\",n.style.left=\"0px\",n.style.top=\"0px\",e.appendChild(n),!n.getContext))throw new Error(\"Canvas is not available.\");this.element=n;var o=this.context=n.getContext(\"2d\");this.pixelRatio=r.plot.browser.getPixelRatio(o);var i=r(e).width(),a=r(e).height();this.resize(i,a),this.SVGContainer=null,this.SVG={},this._textCache={}};function f(e,t){e.transform.baseVal.clear(),t&&t.forEach(function(t){e.transform.baseVal.appendItem(t)})}t.prototype.resize=function(t,e){t=t<10?10:t,e=e<10?10:e;var n=this.element,o=this.context,i=this.pixelRatio;this.width!==t&&(n.width=t*i,n.style.width=t+\"px\",this.width=t),this.height!==e&&(n.height=e*i,n.style.height=e+\"px\",this.height=e),o.restore(),o.save(),o.scale(i,i)},t.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},t.prototype.render=function(){var t=this._textCache;for(var e in t)if(hasOwnProperty.call(t,e)){var n=this.getSVGLayer(e),o=t[e],i=n.style.display;for(var a in n.style.display=\"none\",o)if(hasOwnProperty.call(o,a)){var r=o[a];for(var s in r)if(hasOwnProperty.call(r,s)){for(var l,c=r[s],u=c.positions,p=0;u[p];p++)if((l=u[p]).active)l.rendered||(n.appendChild(l.element),l.rendered=!0);else if(u.splice(p--,1),l.rendered){for(;l.element.firstChild;)l.element.removeChild(l.element.firstChild);l.element.parentNode.removeChild(l.element)}0===u.length&&(c.measured?c.measured=!1:delete r[s])}}n.style.display=i}},t.prototype.getSVGLayer=function(t){var e,n=this.SVG[t];n||(this.SVGContainer?e=this.SVGContainer.firstChild:(this.SVGContainer=document.createElement(\"div\"),this.SVGContainer.className=\"flot-svg\",this.SVGContainer.style.position=\"absolute\",this.SVGContainer.style.top=\"0px\",this.SVGContainer.style.left=\"0px\",this.SVGContainer.style.height=\"100%\",this.SVGContainer.style.width=\"100%\",this.SVGContainer.style.pointerEvents=\"none\",this.element.parentNode.appendChild(this.SVGContainer),(e=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\")).style.width=\"100%\",e.style.height=\"100%\",this.SVGContainer.appendChild(e)),(n=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")).setAttribute(\"class\",t),n.style.position=\"absolute\",n.style.top=\"0px\",n.style.left=\"0px\",n.style.bottom=\"0px\",n.style.right=\"0px\",e.appendChild(n),this.SVG[t]=n);return n},t.prototype.getTextInfo=function(t,e,n,o,i){var a,r,s,l;e=\"\"+e,a=\"object\"===_typeof(n)?n.style+\" \"+n.variant+\" \"+n.weight+\" \"+n.size+\"px/\"+n.lineHeight+\"px \"+n.family:n,null==(r=this._textCache[t])&&(r=this._textCache[t]={}),null==(s=r[a])&&(s=r[a]={});var c=e.replace(/0|1|2|3|4|5|6|7|8|9/g,\"0\");if(!(l=s[c])){var u=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");if(-1!==e.indexOf(\"<br>\"))m(e,u,-9999);else{var p=document.createTextNode(e);u.appendChild(p)}u.style.position=\"absolute\",u.style.maxWidth=i,u.setAttributeNS(null,\"x\",-9999),u.setAttributeNS(null,\"y\",-9999),\"object\"===_typeof(n)?(u.style.font=a,u.style.fill=n.fill):\"string\"==typeof n&&u.setAttribute(\"class\",n),this.getSVGLayer(t).appendChild(u);var h=u.getBBox();for(l=s[c]={width:h.width,height:h.height,measured:!0,element:u,positions:[]};u.firstChild;)u.removeChild(u.firstChild);u.parentNode.removeChild(u)}return l.measured=!0,l},t.prototype.addText=function(t,e,n,o,i,a,r,s,l,c){var u=this.getTextInfo(t,o,i,a,r),p=u.positions;\"center\"===s?e-=u.width/2:\"right\"===s&&(e-=u.width),\"middle\"===l?n-=u.height/2:\"bottom\"===l&&(n-=u.height),n+=.75*u.height;for(var h,d=0;p[d];d++){if((h=p[d]).x===e&&h.y===n&&h.text===o)return h.active=!0,void f(h.element,c);if(!1===h.active)return h.active=!0,-1!==(h.text=o).indexOf(\"<br>\")?(n-=.25*u.height,m(o,h.element,e)):h.element.textContent=o,h.element.setAttributeNS(null,\"x\",e),h.element.setAttributeNS(null,\"y\",n),h.x=e,h.y=n,void f(h.element,c)}h={active:!0,rendered:!1,element:p.length?u.element.cloneNode():u.element,text:o,x:e,y:n},p.push(h),-1!==o.indexOf(\"<br>\")?(n-=.25*u.height,m(o,h.element,e)):h.element.textContent=o,h.element.setAttributeNS(null,\"x\",e),h.element.setAttributeNS(null,\"y\",n),h.element.style.textAlign=s,f(h.element,c)};var m=function(t,e,n){var o,i,a,r=t.split(\"<br>\");for(i=0;i<r.length;i++)e.childNodes[i]?o=e.childNodes[i]:(o=document.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\"),e.appendChild(o)),o.textContent=r[i],a=(0===i?0:1)+\"em\",o.setAttributeNS(null,\"dy\",a),o.setAttributeNS(null,\"x\",n)};t.prototype.removeText=function(t,e,n,o,i,a){var r,s;if(null==o){var l=this._textCache[t];if(null!=l)for(var c in l)if(hasOwnProperty.call(l,c)){var u=l[c];for(var p in u)if(hasOwnProperty.call(u,p)){var h=u[p].positions;h.forEach(function(t){t.active=!1})}}}else(h=(r=this.getTextInfo(t,o,i,a)).positions).forEach(function(t){s=n+.75*r.height,t.x===e&&t.y===s&&t.text===o&&(t.active=!1)})},t.prototype.clearCache=function(){var t=this._textCache;for(var e in t)if(hasOwnProperty.call(t,e))for(var n=this.getSVGLayer(e);n.firstChild;)n.removeChild(n.firstChild);this._textCache={}},window.Flot||(window.Flot={}),window.Flot.Canvas=t}(jQuery),function(a){a.color={},a.color.make=function(t,e,n,o){var i={};return i.r=t||0,i.g=e||0,i.b=n||0,i.a=null!=o?o:1,i.add=function(t,e){for(var n=0;n<t.length;++n)i[t.charAt(n)]+=e;return i.normalize()},i.scale=function(t,e){for(var n=0;n<t.length;++n)i[t.charAt(n)]*=e;return i.normalize()},i.toString=function(){return 1<=i.a?\"rgb(\"+[i.r,i.g,i.b].join(\",\")+\")\":\"rgba(\"+[i.r,i.g,i.b,i.a].join(\",\")+\")\"},i.normalize=function(){function t(t,e,n){return e<t?t:n<e?n:e}return i.r=t(0,parseInt(i.r),255),i.g=t(0,parseInt(i.g),255),i.b=t(0,parseInt(i.b),255),i.a=t(0,i.a,1),i},i.clone=function(){return a.color.make(i.r,i.b,i.g,i.a)},i.normalize()},a.color.extract=function(t,e){var n;do{if(\"\"!==(n=t.css(e).toLowerCase())&&\"transparent\"!==n)break;t=t.parent()}while(t.length&&!a.nodeName(t.get(0),\"body\"));return\"rgba(0, 0, 0, 0)\"===n&&(n=\"transparent\"),a.color.parse(n)},a.color.parse=function(t){var e,n=a.color.make;if(e=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(t))return n(parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10));if(e=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(t))return n(parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),parseFloat(e[4]));if(e=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*\\)/.exec(t))return n(2.55*parseFloat(e[1]),2.55*parseFloat(e[2]),2.55*parseFloat(e[3]));if(e=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(t))return n(2.55*parseFloat(e[1]),2.55*parseFloat(e[2]),2.55*parseFloat(e[3]),parseFloat(e[4]));if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(t))return n(parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16));if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(t))return n(parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16));var o=a.trim(t).toLowerCase();return\"transparent\"===o?n(255,255,255,0):n((e=i[o]||[0,0,0])[0],e[1],e[2])};var i={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}}(jQuery),function(K){var $=window.Flot.Canvas;function tt(t){var e,n=[],o=K.plot.saturated.saturate(K.plot.saturated.floorInBase(t.min,t.tickSize)),i=0,a=Number.NaN;for(o===-Number.MAX_VALUE&&(n.push(o),o=K.plot.saturated.floorInBase(t.min+t.tickSize,t.tickSize));e=a,a=K.plot.saturated.multiplyAdd(t.tickSize,i,o),n.push(a),++i,a<t.max&&a!==e;);return n}function et(t,e,n){var o=e.tickDecimals;if(-1!==(\"\"+t).indexOf(\"e\"))return l(t,e,n);0<n&&(e.tickDecimals=n);var i=e.tickDecimals?parseFloat(\"1e\"+e.tickDecimals):1,a=\"\"+Math.round(t*i)/i;if(null!=e.tickDecimals){var r=a.indexOf(\".\"),s=-1===r?0:a.length-r-1;if(s<e.tickDecimals)a=(s?a:a+\".\")+(\"\"+i).substr(1,e.tickDecimals-s)}return e.tickDecimals=o,a}function l(t,e,n){var o=(\"\"+t).indexOf(\"e\"),i=parseInt((\"\"+t).substr(o+1)),a=-1!==o?i:0<t?Math.floor(Math.log(t)/Math.LN10):0,r=parseFloat(\"1e\"+a),s=t/r;if(n){var l=c(t,n);return(t/r).toFixed(l)+\"e\"+a}return 0<e.tickDecimals?s.toFixed(c(t,e.tickDecimals))+\"e\"+a:s.toFixed()+\"e\"+a}function c(t,e){var n=Math.log(Math.abs(t))*Math.LOG10E,o=Math.abs(n+e);return o<=20?Math.floor(o):20}function o(l,t,e,o){var y=[],f={colors:[\"#edc240\",\"#afd8f8\",\"#cb4b4b\",\"#4da74d\",\"#9440ed\"],xaxis:{show:null,position:\"bottom\",mode:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoScaleMargin:null,autoScale:\"exact\",windowSize:null,growOnly:null,ticks:null,tickFormatter:null,showTickLabels:\"major\",labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,showMinorTicks:null,showTicks:null,gridLines:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,offset:{below:0,above:0},boxPosition:{centerX:0,centerY:0}},yaxis:{autoScaleMargin:.02,autoScale:\"loose\",growOnly:null,position:\"left\",showTickLabels:\"major\",offset:{below:0,above:0},boxPosition:{centerX:0,centerY:0}},xaxes:[],yaxes:[],series:{points:{show:!1,radius:3,lineWidth:2,fill:!0,fillColor:\"#ffffff\",symbol:\"circle\"},lines:{lineWidth:1,fill:!1,fillColor:null,steps:!1},bars:{show:!1,lineWidth:2,horizontal:!1,barWidth:.8,fill:!0,fillColor:null,align:\"left\",zero:!0},shadowSize:3,highlightColor:null},grid:{show:!0,aboveData:!1,color:\"#545454\",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:1,minBorderMargin:null,markings:null,markingsColor:\"#f4f4f4\",markingsLineWidth:2,clickable:!1,hoverable:!1,autoHighlight:!0,mouseActiveRadius:15},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},x=null,n=null,i=null,g=null,a=null,m=[],v=[],b={left:0,right:0,top:0,bottom:0},w=0,T=0,k={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],setupGrid:[],adjustSeriesDataRange:[],setRange:[],drawBackground:[],drawSeries:[],drawAxis:[],draw:[],findNearbyItems:[],axisReserveSpace:[],bindEvents:[],drawOverlay:[],resize:[],shutdown:[]},M=this,r={},s=null;M.setData=c,M.setupGrid=A,M.draw=W,M.getPlaceholder=function(){return l},M.getCanvas=function(){return x.element},M.getSurface=function(){return x},M.getEventHolder=function(){return i[0]},M.getPlotOffset=function(){return b},M.width=function(){return w},M.height=function(){return T},M.offset=function(){var t=i.offset();return t.left+=b.left,t.top+=b.top,t},M.getData=function(){return y},M.getAxes=function(){var n={};return K.each(m.concat(v),function(t,e){e&&(n[e.direction+(1!==e.n?e.n:\"\")+\"axis\"]=e)}),n},M.getXAxes=function(){return m},M.getYAxes=function(){return v},M.c2p=function(t){var e,n,o={};for(e=0;e<m.length;++e)(n=m[e])&&n.used&&(o[\"x\"+n.n]=n.c2p(t.left));for(e=0;e<v.length;++e)(n=v[e])&&n.used&&(o[\"y\"+n.n]=n.c2p(t.top));void 0!==o.x1&&(o.x=o.x1);void 0!==o.y1&&(o.y=o.y1);return o},M.p2c=function(t){var e,n,o,i={};for(e=0;e<m.length;++e)if((n=m[e])&&n.used&&(o=\"x\"+n.n,null==t[o]&&1===n.n&&(o=\"x\"),null!=t[o])){i.left=n.p2c(t[o]);break}for(e=0;e<v.length;++e)if((n=v[e])&&n.used&&(o=\"y\"+n.n,null==t[o]&&1===n.n&&(o=\"y\"),null!=t[o])){i.top=n.p2c(t[o]);break}return i},M.getOptions=function(){return f},M.triggerRedrawOverlay=Q,M.pointOffset=function(t){return{left:parseInt(m[N(t,\"x\")-1].p2c(+t.x)+b.left,10),top:parseInt(v[N(t,\"y\")-1].p2c(+t.y)+b.top,10)}},M.shutdown=u,M.destroy=function(){u(),l.removeData(\"plot\").empty(),y=[],m=[],v=[],M=k=a=g=i=n=x=f=null},M.resize=function(){var t=l.width(),e=l.height();x.resize(t,e),n.resize(t,e),C(k.resize,[t,e])},M.clearTextCache=function(){x.clearCache(),n.clearCache()},M.autoScaleAxis=E,M.computeRangeForDataSeries=function(t,e,n){for(var o=t.datapoints.points,i=t.datapoints.pointsize,a=t.datapoints.format,r=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,l={xmin:r,ymin:r,xmax:s,ymax:s},c=0;c<o.length;c+=i)if(null!==o[c]&&(\"function\"!=typeof n||n(o[c])))for(var u=0;u<i;++u){var p=o[c+u],h=a[u];null!=h&&((\"function\"!=typeof n||n(p))&&(e||h.computeRange)&&p!==1/0&&p!==-1/0&&(!0===h.x&&(p<l.xmin&&(l.xmin=p),p>l.xmax&&(l.xmax=p)),!0===h.y&&(p<l.ymin&&(l.ymin=p),p>l.ymax&&(l.ymax=p))))}return l},M.adjustSeriesDataRange=function(t,e){if(t.bars.show){var n,o=t.bars.barWidth[1];t.datapoints&&t.datapoints.points&&!o&&function(t){var e=[],n=t.datapoints.pointsize,o=Number.MAX_VALUE;t.datapoints.points.length<=n&&(o=1);for(var i=t.bars.horizontal?1:0;i<t.datapoints.points.length;i+=n)isFinite(t.datapoints.points[i])&&null!==t.datapoints.points[i]&&e.push(t.datapoints.points[i]);(e=e.filter(function(t,e,n){return n.indexOf(t)===e})).sort(function(t,e){return t-e});for(var a=1;a<e.length;a++){var r=Math.abs(e[a]-e[a-1]);r<o&&isFinite(r)&&(o=r)}\"number\"==typeof t.bars.barWidth?t.bars.barWidth=t.bars.barWidth*o:t.bars.barWidth[0]=t.bars.barWidth[0]*o}(t);var i=t.bars.barWidth[0]||t.bars.barWidth;switch(t.bars.align){case\"left\":n=0;break;case\"right\":n=-i;break;default:n=-i/2}t.bars.horizontal?(e.ymin+=n,e.ymax+=n+i):(e.xmin+=n,e.xmax+=n+i)}if(t.bars.show&&t.bars.zero||t.lines.show&&t.lines.zero){var a=t.datapoints.pointsize;a<=2&&(e.ymin=Math.min(0,e.ymin),e.ymax=Math.max(0,e.ymax))}return e},M.findNearbyItem=function(t,e,n,o,i){var a=_(t,e,n,o,i);return void 0!==a[0]?a[0]:null},M.findNearbyItems=_,M.findNearbyInterpolationPoint=function(t,e,n){var o,i,a,r,s,l,c,u=Number.MAX_VALUE;for(o=0;o<y.length;++o)if(n(o)){var p=y[o].datapoints.points;l=y[o].datapoints.pointsize;var h=p[p.length-l]<p[0]?function(t,e){return e<t}:function(t,e){return t<e};if(!h(t,p[0])){for(i=l;i<p.length&&!h(t,p[i]);i+=l);var d=p[i-l],f=p[i-l+1],m=p[i],g=p[i+1];void 0!==d&&void 0!==m&&void 0!==f&&void 0!==g&&(e=d===m?g:f+(g-f)*(t-d)/(m-d),r=Math.abs(y[o].xaxis.p2c(m)-t),s=Math.abs(y[o].yaxis.p2c(g)-e),(a=r*r+s*s)<u&&(u=a,c=[t,e,o,i]))}}if(c)return o=c[2],i=c[3],l=y[o].datapoints.pointsize,p=y[o].datapoints.points,d=p[i-l],f=p[i-l+1],m=p[i],g=p[i+1],{datapoint:[c[0],c[1]],leftPoint:[d,f],rightPoint:[m,g],seriesIndex:o};return null},M.computeValuePrecision=I,M.computeTickSize=O,M.addEventHandler=function(t,e,n,o){var i=n+t,a=r[i]||[];a.push({event:t,handler:e,eventHolder:n,priority:o}),a.sort(function(t,e){return e.priority-t.priority}),a.forEach(function(t){t.eventHolder.unbind(t.event,t.handler),t.eventHolder.bind(t.event,t.handler)}),r[i]=a},M.hooks=k;var S=K.plot.uiConstants.MINOR_TICKS_COUNT_CONSTANT,P=K.plot.uiConstants.TICK_LENGTH_CONSTANT;function C(t,e){e=[M].concat(e);for(var n=0;n<t.length;++n)t[n].apply(this,e)}function c(t){var e=y;y=function(t){for(var e=[],n=0;n<t.length;++n){var o=K.extend(!0,{},f.series);null!=t[n].data?(o.data=t[n].data,delete t[n].data,K.extend(!0,o,t[n]),t[n].data=o.data):o.data=t[n],e.push(o)}return e}(t),function(){var t,e=y.length,n=-1;for(t=0;t<y.length;++t){var o=y[t].color;null!=o&&(e--,\"number\"==typeof o&&n<o&&(n=o))}e<=n&&(e=n+1);var i,a=[],r=f.colors,s=r.length,l=0,c=Math.max(0,y.length-e);for(t=0;t<e;t++)i=K.color.parse(r[(c+t)%s]||\"#666\"),t%s==0&&t&&(l=0<=l?l<.5?-l-.2:0:-l),a[t]=i.scale(\"rgb\",1+l);var u,p=0;for(t=0;t<y.length;++t){if(null==(u=y[t]).color?(u.color=a[p].toString(),++p):\"number\"==typeof u.color&&(u.color=a[u.color].toString()),null==u.lines.show){var h,d=!0;for(h in u)if(u[h]&&u[h].show){d=!1;break}d&&(u.lines.show=!0)}null==u.lines.zero&&(u.lines.zero=!!u.lines.fill),u.xaxis=L(m,N(u,\"x\")),u.yaxis=L(v,N(u,\"y\"))}}(),function(t){var e,n,o,i,a,r,s,l,c,u,p,h,d=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY;function m(t,e,n){e<t.datamin&&e!==-1/0&&(t.datamin=e),n>t.datamax&&n!==1/0&&(t.datamax=n)}function g(t,e){return t&&t[e]&&t[e].datapoints&&t[e].datapoints.points?t[e].datapoints.points:[]}for(K.each(z(),function(t,e){!0!==e.options.growOnly?(e.datamin=d,e.datamax=f):(void 0===e.datamin&&(e.datamin=d),void 0===e.datamax&&(e.datamax=f)),e.used=!1}),e=0;e<y.length;++e)(a=y[e]).datapoints={points:[]},0===a.datapoints.points.length&&(a.datapoints.points=g(t,e)),C(k.processRawData,[a,a.data,a.datapoints]);for(e=0;e<y.length;++e){if(a=y[e],p=a.data,!(h=a.datapoints.format)){if((h=[]).push({x:!0,y:!1,number:!0,required:!0,computeRange:\"none\"!==a.xaxis.options.autoScale,defaultValue:null}),h.push({x:!1,y:!0,number:!0,required:!0,computeRange:\"none\"!==a.yaxis.options.autoScale,defaultValue:null}),a.stack||a.bars.show||a.lines.show&&a.lines.fill){var x=null!=a.datapoints.pointsize?a.datapoints.pointsize:a.data&&a.data[0]&&a.data[0].length?a.data[0].length:3;2<x&&h.push({x:a.bars.horizontal,y:!a.bars.horizontal,number:!0,required:!1,computeRange:\"none\"!==a.yaxis.options.autoScale,defaultValue:0})}a.datapoints.format=h}if(a.xaxis.used=a.yaxis.used=!0,null==a.datapoints.pointsize){for(a.datapoints.pointsize=h.length,s=a.datapoints.pointsize,r=a.datapoints.points,n=o=0;n<p.length;++n,o+=s){var v=null==(u=p[n]);if(!v)for(i=0;i<s;++i)l=u[i],(c=h[i])&&(c.number&&null!=l&&(l=+l,isNaN(l)&&(l=null)),null==l&&(c.required&&(v=!0),null!=c.defaultValue&&(l=c.defaultValue))),r[o+i]=l;if(v)for(i=0;i<s;++i)null!=(l=r[o+i])&&(c=h[i]).computeRange&&(c.x&&m(a.xaxis,l,l),c.y&&m(a.yaxis,l,l)),r[o+i]=null}r.length=o}}for(e=0;e<y.length;++e)a=y[e],C(k.processDatapoints,[a,a.datapoints]);for(e=0;e<y.length;++e)if(a=y[e],!(h=a.datapoints.format).every(function(t){return!t.computeRange})){var b=M.adjustSeriesDataRange(a,M.computeRangeForDataSeries(a));C(k.adjustSeriesDataRange,[a,b]),m(a.xaxis,b.xmin,b.xmax),m(a.yaxis,b.ymin,b.ymax)}K.each(z(),function(t,e){e.datamin===d&&(e.datamin=null),e.datamax===f&&(e.datamax=null)})}(e)}function N(t,e){var n=t[e+\"axis\"];return\"object\"===_typeof(n)&&(n=n.n),\"number\"!=typeof n&&(n=1),n}function z(){return m.concat(v).filter(function(t){return t})}function L(t,e){return t[e-1]||(t[e-1]={n:e,direction:t===m?\"x\":\"y\",options:K.extend(!0,{},t===m?f.xaxis:f.yaxis)}),t[e-1]}function u(){s&&clearTimeout(s),C(k.shutdown,[i])}function p(t){function e(t){return t}var n,o,i=t.options.transform||e,a=t.options.inverseTransform;o=\"x\"===t.direction?(n=isFinite(i(t.max)-i(t.min))?t.scale=w/Math.abs(i(t.max)-i(t.min)):t.scale=1/Math.abs(K.plot.saturated.delta(i(t.min),i(t.max),w)),Math.min(i(t.max),i(t.min))):(n=-(n=isFinite(i(t.max)-i(t.min))?t.scale=T/Math.abs(i(t.max)-i(t.min)):t.scale=1/Math.abs(K.plot.saturated.delta(i(t.min),i(t.max),T))),Math.max(i(t.max),i(t.min))),t.p2c=i===e?function(t){return isFinite(t-o)?(t-o)*n:(t/4-o/4)*n*4}:function(t){var e=i(t);return isFinite(e-o)?(e-o)*n:(e/4-o/4)*n*4},t.c2p=a?function(t){return a(o+t/n)}:function(t){return o+t/n}}function h(n){C(k.axisReserveSpace,[n]);var t=n.labelWidth,e=n.labelHeight,o=n.options.position,i=\"x\"===n.direction,a=n.options.tickLength,r=n.options.showTicks,s=n.options.showMinorTicks,l=n.options.gridLines,c=f.grid.axisMargin,u=f.grid.labelMargin,p=!0,h=!0,d=!1;K.each(i?m:v,function(t,e){e&&(e.show||e.reserveSpace)&&(e===n?d=!0:e.options.position===o&&(d?h=!1:p=!1))}),h&&(c=0),null==a&&(a=P),null==r&&(r=!0),null==s&&(s=!0),null==l&&(l=!!p),isNaN(+a)||(u+=r?+a:0),i?(e+=u,\"bottom\"===o?(b.bottom+=e+c,n.box={top:x.height-b.bottom,height:e}):(n.box={top:b.top+c,height:e},b.top+=e+c)):(t+=u,\"left\"===o?(n.box={left:b.left+c,width:t},b.left+=t+c):(b.right+=t+c,n.box={left:x.width-b.right,width:t})),n.position=o,n.tickLength=a,n.showMinorTicks=s,n.showTicks=r,n.gridLines=l,n.box.padding=u,n.innermost=p}function d(t,e,n){\"x\"===t.direction?(\"bottom\"===t.position&&n(e.bottom)&&(t.box.top-=Math.ceil(e.bottom)),\"top\"===t.position&&n(e.top)&&(t.box.top+=Math.ceil(e.top))):(\"left\"===t.position&&n(e.left)&&(t.box.left+=Math.ceil(e.left)),\"right\"===t.position&&n(e.right)&&(t.box.left-=Math.ceil(e.right)))}function A(a){var t,e,n=z(),o=f.grid.show;for(e in b)b[e]=0;for(e in C(k.processOffset,[b]),b)\"object\"===_typeof(f.grid.borderWidth)?b[e]+=o?f.grid.borderWidth[e]:0:b[e]+=o?f.grid.borderWidth:0;if(K.each(n,function(t,e){var n,o,i=e.options;e.show=null==i.show?e.used:i.show,e.reserveSpace=null==i.reserveSpace?e.show:i.reserveSpace,o=(n=e).options,n.tickFormatter||(\"function\"==typeof o.tickFormatter?n.tickFormatter=function(){var t=Array.prototype.slice.call(arguments);return\"\"+o.tickFormatter.apply(null,t)}:n.tickFormatter=et),C(k.setRange,[e,a]),function(t,e){var n=\"number\"==typeof t.options.min?t.options.min:t.min,o=\"number\"==typeof t.options.max?t.options.max:t.max,i=t.options.offset;e&&(E(t),n=t.autoScaledMin,o=t.autoScaledMax);if(n=(null!=n?n:-1)+(i.below||0),(o=(null!=o?o:1)+(i.above||0))<n){var a=n;n=o,o=a,t.options.offset={above:0,below:0}}t.min=K.plot.saturated.saturate(n),t.max=K.plot.saturated.saturate(o)}(e,a)}),o){w=x.width-b.left-b.right,T=x.height-b.bottom-b.top;var i=K.grep(n,function(t){return t.show||t.reserveSpace});for(K.each(i,function(t,e){var n,o,i,a;!function(t){var e,n=t.options;e=R(t.direction,x,n.ticks),t.delta=K.plot.saturated.delta(t.min,t.max,e);var o=M.computeValuePrecision(t.min,t.max,t.direction,e,n.tickDecimals);t.tickDecimals=Math.max(0,null!=n.tickDecimals?n.tickDecimals:o),t.tickSize=function(t,e,n,o,i){var a;a=\"number\"==typeof o.ticks&&0<o.ticks?o.ticks:.3*Math.sqrt(\"x\"===n?x.width:x.height);var r=O(t,e,a,i);return null!=o.minTickSize&&r<o.minTickSize&&(r=o.minTickSize),o.tickSize||r}(t.min,t.max,t.direction,n,n.tickDecimals),t.tickGenerator||(\"function\"==typeof n.tickGenerator?t.tickGenerator=n.tickGenerator:t.tickGenerator=tt);if(null!=n.alignTicksWithAxis){var i=(\"x\"===t.direction?m:v)[n.alignTicksWithAxis-1];if(i&&i.used&&i!==t){var a=t.tickGenerator(t,M);if(0<a.length&&(null==n.min&&(t.min=Math.min(t.min,a[0])),null==n.max&&1<a.length&&(t.max=Math.max(t.max,a[a.length-1]))),t.tickGenerator=function(t){var e,n,o=[];for(n=0;n<i.ticks.length;++n)e=(i.ticks[n].v-i.min)/(i.max-i.min),e=t.min+e*(t.max-t.min),o.push(e);return o},!t.mode&&null==n.tickDecimals){var r=Math.max(0,1-Math.floor(Math.log(t.delta)/Math.LN10)),s=t.tickGenerator(t,M);1<s.length&&/\\..*0$/.test((s[1]-s[0]).toFixed(r))||(t.tickDecimals=r)}}}}(e),function(t){var e,n,o=t.options.ticks,i=[];null==o||\"number\"==typeof o&&0<o?i=t.tickGenerator(t,M):o&&(i=K.isFunction(o)?o(t):o);for(t.ticks=[],e=0;e<i.length;++e){var a=null,r=i[e];\"object\"===_typeof(r)?(n=+r[0],1<r.length&&(a=r[1])):n=+r,isNaN(n)||t.ticks.push(D(n,a,t,\"major\"))}}(e),o=(n=e).ticks,i=y,\"loose\"===n.options.autoScale&&0<o.length&&i.some(function(t){return 0<t.datapoints.points.length})&&(n.min=Math.min(n.min,o[0].v),n.max=Math.max(n.max,o[o.length-1].v)),p(e),function(e,t){if(\"endpoints\"===e.options.showTickLabels)return!0;if(\"all\"!==e.options.showTickLabels)return\"major\"!==e.options.showTickLabels&&\"none\"!==e.options.showTickLabels&&void 0;var n=t.filter(function(t){return t.bars.horizontal?t.yaxis===e:t.xaxis===e}),o=n.some(function(t){return!t.bars.show});return 0===n.length||o}(a=e,y)&&(a.ticks.unshift(D(a.min,null,a,\"min\")),a.ticks.push(D(a.max,null,a,\"max\"))),function(t){for(var e=t.options,n=\"none\"!==e.showTickLabels&&t.ticks?t.ticks:[],o=\"major\"===e.showTickLabels||\"all\"===e.showTickLabels,i=\"endpoints\"===e.showTickLabels||\"all\"===e.showTickLabels,a=e.labelWidth||0,r=e.labelHeight||0,s=t.direction+\"Axis \"+t.direction+t.n+\"Axis\",l=\"flot-\"+t.direction+\"-axis flot-\"+t.direction+t.n+\"-axis \"+s,c=e.font||\"flot-tick-label tickLabel\",u=0;u<n.length;++u){var p=n[u],h=p.label;if(p.label&&!(!1===o&&0<u&&u<n.length-1)&&(!1!==i||0!==u&&u!==n.length-1)){\"object\"===_typeof(p.label)&&(h=p.label.name);var d=x.getTextInfo(l,h,c);a=Math.max(a,d.width),r=Math.max(r,d.height)}}t.labelWidth=e.labelWidth||a,t.labelHeight=e.labelHeight||r}(e)}),t=i.length-1;0<=t;--t)h(i[t]);!function(){var t,e=f.grid.minBorderMargin;if(null==e)for(t=e=0;t<y.length;++t)e=Math.max(e,2*(y[t].points.radius+y[t].points.lineWidth/2));var n,o={},i={left:e,right:e,top:e,bottom:e};for(n in K.each(z(),function(t,e){e.reserveSpace&&e.ticks&&e.ticks.length&&(\"x\"===e.direction?(i.left=Math.max(i.left,e.labelWidth/2),i.right=Math.max(i.right,e.labelWidth/2)):(i.bottom=Math.max(i.bottom,e.labelHeight/2),i.top=Math.max(i.top,e.labelHeight/2)))}),i)o[n]=i[n]-b[n];K.each(m.concat(v),function(t,e){d(e,o,function(t){return 0<t})}),b.left=Math.ceil(Math.max(i.left,b.left)),b.right=Math.ceil(Math.max(i.right,b.right)),b.top=Math.ceil(Math.max(i.top,b.top)),b.bottom=Math.ceil(Math.max(i.bottom,b.bottom))}(),K.each(i,function(t,e){var n;\"x\"===(n=e).direction?(n.box.left=b.left-n.labelWidth/2,n.box.width=x.width-b.left-b.right+n.labelWidth):(n.box.top=b.top-n.labelHeight/2,n.box.height=x.height-b.bottom-b.top+n.labelHeight)})}if(f.grid.margin){for(e in b){var r=f.grid.margin||0;b[e]+=\"number\"==typeof r?r:r[e]||0}K.each(m.concat(v),function(t,e){d(e,f.grid.margin,function(t){return null!=t})})}w=x.width-b.left-b.right,T=x.height-b.bottom-b.top,K.each(n,function(t,e){p(e)}),o&&K.each(z(),function(t,o){var e,i,a,r,s,l,c,u=o.box,n=o.direction+\"Axis \"+o.direction+o.n+\"Axis\",p=\"flot-\"+o.direction+\"-axis flot-\"+o.direction+o.n+\"-axis \"+n,h=o.options.font||\"flot-tick-label tickLabel\",d={x:NaN,y:NaN,width:NaN,height:NaN},f=[],m=function(t,e,n,o,i,a,r,s){return(t<=i&&i<=n||i<=t&&t<=r)&&(e<=a&&a<=o||a<=e&&e<=s)},g=function(t,e){return!t||!t.label||t.v<o.min||t.v>o.max?d:(l=x.getTextInfo(p,t.label,h),\"x\"===o.direction?(r=\"center\",i=b.left+o.p2c(t.v),\"bottom\"===o.position?a=u.top+u.padding-o.boxPosition.centerY:(a=u.top+u.height-u.padding+o.boxPosition.centerY,s=\"bottom\")):(s=\"middle\",a=b.top+o.p2c(t.v),\"left\"===o.position?(i=u.left+u.width-u.padding-o.boxPosition.centerX,r=\"right\"):i=u.left+u.padding+o.boxPosition.centerX),c={x:i-l.width/2-3,y:a-3,width:l.width+6,height:l.height+6},n=c,e.some(function(t){return m(n.x,n.y,n.x+n.width,n.y+n.height,t.x,t.y,t.x+t.width,t.y+t.height)})?d:(x.addText(p,i,a,t.label,h,null,null,r,s),c));var n};if(x.removeText(p),C(k.drawAxis,[o,x]),o.show)switch(o.options.showTickLabels){case\"none\":break;case\"endpoints\":f.push(g(o.ticks[0],f)),f.push(g(o.ticks[o.ticks.length-1],f));break;case\"major\":for(f.push(g(o.ticks[0],f)),f.push(g(o.ticks[o.ticks.length-1],f)),e=1;e<o.ticks.length-1;++e)f.push(g(o.ticks[e],f));break;case\"all\":for(f.push(g(o.ticks[0],[])),f.push(g(o.ticks[o.ticks.length-1],f)),e=1;e<o.ticks.length-1;++e)f.push(g(o.ticks[e],f))}}),C(k.setupGrid,[])}function E(t){var e,n=t.options,o=n.min,i=n.max,a=t.datamin,r=t.datamax;switch(n.autoScale){case\"none\":o=+(null!=n.min?n.min:a),i=+(null!=n.max?n.max:r);break;case\"loose\":if(null!=a&&null!=r){o=a,i=r,e=K.plot.saturated.saturate(i-o);var s=\"number\"==typeof n.autoScaleMargin?n.autoScaleMargin:.02;o=K.plot.saturated.saturate(o-e*s),i=K.plot.saturated.saturate(i+e*s),o<0&&0<=a&&(o=0)}else o=n.min,i=n.max;break;case\"exact\":o=null!=a?a:n.min,i=null!=r?r:n.max;break;case\"sliding-window\":i<r&&(i=r,o=Math.max(r-(n.windowSize||100),o))}var l=function(t,e){var n=void 0===t?null:t,o=void 0===e?null:e;if(0==o-n){var i=0===o?1:.01,a=null;null==n&&(a-=i),null!=o&&null==n||(o+=i),null!=a&&(n=a)}return{min:n,max:o}}(o,i);o=l.min,i=l.max,!0===n.growOnly&&\"none\"!==n.autoScale&&\"sliding-window\"!==n.autoScale&&(o=o<a?o:null!==a?a:o,i=r<i?i:null!==r?r:i),t.autoScaledMin=o,t.autoScaledMax=i}function I(t,e,n,o,i){var a=R(n,x,o),r=K.plot.saturated.delta(t,e,a),s=-Math.floor(Math.log(r)/Math.LN10);i&&i<s&&(s=i);var l=r/parseFloat(\"1e\"+-s);return 2.25<l&&l<3&&s+1<=i&&++s,isFinite(s)?s:0}function O(t,e,n,o){var i=K.plot.saturated.delta(t,e,n),a=-Math.floor(Math.log(i)/Math.LN10);o&&o<a&&(a=o);var r,s=parseFloat(\"1e\"+-a),l=i/s;return l<1.5?r=1:l<3?(r=2,2.25<l&&(null==o||a+1<=o)&&(r=2.5)):r=l<7.5?5:10,r*=s}function R(t,e,n){return\"number\"==typeof n&&0<n?n:.3*Math.sqrt(\"x\"===t?e.width:e.height)}function D(t,e,n,o){if(null===e)switch(o){case\"min\":case\"max\":var i=(a=t,r=n,s=Math.floor(r.p2c(a)),l=\"x\"===r.direction?s+1:s-1,c=r.c2p(s),u=r.c2p(l),I(c,u,r.direction,1));isFinite(i),e=n.tickFormatter(t,n,i,M);break;case\"major\":e=n.tickFormatter(t,n,void 0,M)}var a,r,s,l,c,u;return{v:t,label:e}}function W(){x.clear(),C(k.drawBackground,[g]);var t=f.grid;t.show&&t.backgroundColor&&(g.save(),g.translate(b.left,b.top),g.fillStyle=J(f.grid.backgroundColor,T,0,\"rgba(255, 255, 255, 0)\"),g.fillRect(0,0,w,T),g.restore()),t.show&&!t.aboveData&&H();for(var e=0;e<y.length;++e)C(k.drawSeries,[g,y[e],e,J]),V(y[e]);C(k.draw,[g]),t.show&&t.aboveData&&H(),x.render(),Q()}function F(t,e){for(var n,o,i,a,r=z(),s=0;s<r.length;++s)if((n=r[s]).direction===e&&(t[a=e+n.n+\"axis\"]||1!==n.n||(a=e+\"axis\"),t[a])){o=t[a].from,i=t[a].to;break}if(t[a]||(n=\"x\"===e?m[0]:v[0],o=t[e+\"1\"],i=t[e+\"2\"]),null!=o&&null!=i&&i<o){var l=o;o=i,i=l}return{from:o,to:i,axis:n}}function Y(t){var e=t.box,n=0,o=0;return\"x\"===t.direction?(n=0,o=e.top-b.top+(\"top\"===t.position?e.height:0)):(o=0,n=e.left-b.left+(\"left\"===t.position?e.width:0)+t.boxPosition.centerX),{x:n,y:o}}function X(t,e){return t%2!=0?Math.floor(e)+.5:e}function G(t){g.lineWidth=1;var e=Y(t),n=e.x,o=e.y;if(t.show){var i=0,a=0;g.strokeStyle=t.options.color,g.beginPath(),\"x\"===t.direction?i=w+1:a=T+1,\"x\"===t.direction?o=X(g.lineWidth,o):n=X(g.lineWidth,n),g.moveTo(n,o),g.lineTo(n+i,o+a),g.stroke()}}function B(t){var e=t.tickLength,n=t.showMinorTicks,o=S,i=Y(t),a=i.x,r=i.y,s=0;for(g.strokeStyle=t.options.color,g.beginPath(),s=0;s<t.ticks.length;++s){var l,c=t.ticks[s].v,u=0,p=0,h=0,d=0;if(!isNaN(c)&&c>=t.min&&c<=t.max&&(\"x\"===t.direction?(a=t.p2c(c),p=e,\"top\"===t.position&&(p=-p)):(r=t.p2c(c),u=e,\"left\"===t.position&&(u=-u)),\"x\"===t.direction?a=X(g.lineWidth,a):r=X(g.lineWidth,r),g.moveTo(a,r),g.lineTo(a+u,r+p)),!0===n&&s<t.ticks.length-1){var f=t.ticks[s].v,m=(t.ticks[s+1].v-f)/(o+1);for(l=1;l<=o;l++){if(\"x\"===t.direction){if(d=e/2,a=X(g.lineWidth,t.p2c(f+l*m)),\"top\"===t.position&&(d=-d),a<0||w<a)continue}else if(h=e/2,r=X(g.lineWidth,t.p2c(f+l*m)),\"left\"===t.position&&(h=-h),r<0||T<r)continue;g.moveTo(a,r),g.lineTo(a+h,r+d)}}}g.stroke()}function j(t){var e,n,o;for(g.strokeStyle=f.grid.tickColor,g.beginPath(),e=0;e<t.ticks.length;++e){var i=t.ticks[e].v,a=0,r=0,s=0,l=0;isNaN(i)||i<t.min||i>t.max||(n=i,void 0,o=f.grid.borderWidth,(!(\"object\"===_typeof(o)&&0<o[t.position]||0<o)||n!==t.min&&n!==t.max)&&(\"x\"===t.direction?(s=t.p2c(i),r=-(l=T)):(s=0,l=t.p2c(i),a=w),\"x\"===t.direction?s=X(g.lineWidth,s):l=X(g.lineWidth,l),g.moveTo(s,l),g.lineTo(s+a,l+r)))}g.stroke()}function H(){var t,e,n,o;g.save(),g.translate(b.left,b.top),function(){var t,e,n=f.grid.markings;if(n)for(K.isFunction(n)&&((t=M.getAxes()).xmin=t.xaxis.min,t.xmax=t.xaxis.max,t.ymin=t.yaxis.min,t.ymax=t.yaxis.max,n=n(t)),e=0;e<n.length;++e){var o=n[e],i=F(o,\"x\"),a=F(o,\"y\");if(null==i.from&&(i.from=i.axis.min),null==i.to&&(i.to=i.axis.max),null==a.from&&(a.from=a.axis.min),null==a.to&&(a.to=a.axis.max),!(i.to<i.axis.min||i.from>i.axis.max||a.to<a.axis.min||a.from>a.axis.max)){i.from=Math.max(i.from,i.axis.min),i.to=Math.min(i.to,i.axis.max),a.from=Math.max(a.from,a.axis.min),a.to=Math.min(a.to,a.axis.max);var r=i.from===i.to,s=a.from===a.to;if(!r||!s)if(i.from=Math.floor(i.axis.p2c(i.from)),i.to=Math.floor(i.axis.p2c(i.to)),a.from=Math.floor(a.axis.p2c(a.from)),a.to=Math.floor(a.axis.p2c(a.to)),r||s){var l=o.lineWidth||f.grid.markingsLineWidth,c=l%2?.5:0;g.beginPath(),g.strokeStyle=o.color||f.grid.markingsColor,g.lineWidth=l,r?(g.moveTo(i.to+c,a.from),g.lineTo(i.to+c,a.to)):(g.moveTo(i.from,a.to+c),g.lineTo(i.to,a.to+c)),g.stroke()}else g.fillStyle=o.color||f.grid.markingsColor,g.fillRect(i.from,a.to,i.to-i.from,a.from-a.to)}}}(),t=z(),e=f.grid.borderWidth;for(var i=0;i<t.length;++i){var a=t[i];a.show&&(G(a),!0===a.showTicks&&B(a),!0===a.gridLines&&j(a))}e&&(n=f.grid.borderWidth,o=f.grid.borderColor,\"object\"===_typeof(n)||\"object\"===_typeof(o)?(\"object\"!==_typeof(n)&&(n={top:n,right:n,bottom:n,left:n}),\"object\"!==_typeof(o)&&(o={top:o,right:o,bottom:o,left:o}),0<n.top&&(g.strokeStyle=o.top,g.lineWidth=n.top,g.beginPath(),g.moveTo(0-n.left,0-n.top/2),g.lineTo(w,0-n.top/2),g.stroke()),0<n.right&&(g.strokeStyle=o.right,g.lineWidth=n.right,g.beginPath(),g.moveTo(w+n.right/2,0-n.top),g.lineTo(w+n.right/2,T),g.stroke()),0<n.bottom&&(g.strokeStyle=o.bottom,g.lineWidth=n.bottom,g.beginPath(),g.moveTo(w+n.right,T+n.bottom/2),g.lineTo(0,T+n.bottom/2),g.stroke()),0<n.left&&(g.strokeStyle=o.left,g.lineWidth=n.left,g.beginPath(),g.moveTo(0-n.left/2,T+n.bottom),g.lineTo(0-n.left/2,0),g.stroke())):(g.lineWidth=n,g.strokeStyle=f.grid.borderColor,g.strokeRect(-n/2,-n/2,w+n,T+n))),g.restore()}function V(t){t.lines.show&&K.plot.drawSeries.drawSeriesLines(t,g,b,w,T,M.drawSymbol,J),t.bars.show&&K.plot.drawSeries.drawSeriesBars(t,g,b,w,T,M.drawSymbol,J),t.points.show&&K.plot.drawSeries.drawSeriesPoints(t,g,b,w,T,M.drawSymbol,J)}function _(t,e,n,o,i){for(var a=function(t,e,n,o,i){var a,r=[],s=[],l=o*o+1;for(a=y.length-1;0<=a;--a)if(n(a)){var c=y[a];if(!c.datapoints)return;var u=!1;if(c.lines.show||c.points.show){var p=q(c,t,e,o,i);p&&(s.push({seriesIndex:a,dataIndex:p.dataIndex,distance:p.distance}),u=!0)}if(c.bars.show&&!u){var h=U(c,t,e);0<=h&&s.push({seriesIndex:a,dataIndex:h,distance:l})}}for(a=0;a<s.length;a++){var d=s[a].seriesIndex,f=s[a].dataIndex,m=s[a].distance,g=y[d].datapoints.pointsize;r.push({datapoint:y[d].datapoints.points.slice(f*g,(f+1)*g),dataIndex:f,series:y[d],seriesIndex:d,distance:Math.sqrt(m)})}return r}(t,e,n,o,i),r=0;r<y.length;++r)n(r)&&C(k.findNearbyItems,[t,e,y,r,o,i,a]);return a.sort(function(t,e){return void 0===e.distance?-1:void 0===t.distance&&void 0!==e.distance?1:t.distance-e.distance})}function q(t,e,n,o,i){var a=t.xaxis.c2p(e),r=t.yaxis.c2p(n),s=o/t.xaxis.scale,l=o/t.yaxis.scale,c=t.datapoints.points,u=t.datapoints.pointsize,p=Number.POSITIVE_INFINITY;t.xaxis.options.inverseTransform&&(s=Number.MAX_VALUE),t.yaxis.options.inverseTransform&&(l=Number.MAX_VALUE);for(var h=null,d=0;d<c.length;d+=u){var f=c[d],m=c[d+1];if(null!=f&&!(s<f-a||f-a<-s||l<m-r||m-r<-l)){var g=Math.abs(t.xaxis.p2c(f)-e),x=Math.abs(t.yaxis.p2c(m)-n),v=i?i(g,x):g*g+x*x;v<p&&(h={dataIndex:d/u,distance:p=v})}}return h}function U(t,e,n){var o,i,a=t.bars.barWidth[0]||t.bars.barWidth,r=t.xaxis.c2p(e),s=t.yaxis.c2p(n),l=t.datapoints.points,c=t.datapoints.pointsize;switch(t.bars.align){case\"left\":o=0;break;case\"right\":o=-a;break;default:o=-a/2}i=o+a;for(var u=t.bars.fillTowards||0,p=u>t.yaxis.min?Math.min(t.yaxis.max,u):t.yaxis.min,h=-1,d=0;d<l.length;d+=c){var f=l[d],m=l[d+1];if(null!=f){var g=3===c?l[d+2]:p;(t.bars.horizontal?r<=Math.max(g,f)&&r>=Math.min(g,f)&&m+o<=s&&s<=m+i:f+o<=r&&r<=f+i&&s>=Math.min(g,m)&&s<=Math.max(g,m))&&(h=d/c)}}return h}function Q(){var t=f.interaction.redrawOverlayInterval;-1!==t?s||(s=setTimeout(function(){Z(M)},t)):Z()}function Z(t){if(s=null,a){n.clear(),C(k.drawOverlay,[a,n]);var e=new CustomEvent(\"onDrawingDone\");t.getEventHolder().dispatchEvent(e),t.getPlaceholder().trigger(\"drawingdone\")}}function J(t,e,n,o){if(\"string\"==typeof t)return t;for(var i=g.createLinearGradient(0,n,0,e),a=0,r=t.colors.length;a<r;++a){var s=t.colors[a];if(\"string\"!=typeof s){var l=K.color.parse(o);null!=s.brightness&&(l=l.scale(\"rgb\",s.brightness)),null!=s.opacity&&(l.a*=s.opacity),s=l.toString()}i.addColorStop(a/(r-1),s)}return i}!function(){for(var t={Canvas:$},e=0;e<o.length;++e){var n=o[e];n.init(M,t),n.options&&K.extend(!0,f,n.options)}}(),function(){l.css(\"padding\",0).children().filter(function(){return!K(this).hasClass(\"flot-overlay\")&&!K(this).hasClass(\"flot-base\")}).remove(),\"static\"===l.css(\"position\")&&l.css(\"position\",\"relative\");x=new $(\"flot-base\",l[0]),n=new $(\"flot-overlay\",l[0]),g=x.context,a=n.context,i=K(n.element).unbind();var t=l.data(\"plot\");t&&(t.shutdown(),n.clear());l.data(\"plot\",M)}(),function(t){K.extend(!0,f,t),t&&t.colors&&(f.colors=t.colors);null==f.xaxis.color&&(f.xaxis.color=K.color.parse(f.grid.color).scale(\"a\",.22).toString());null==f.yaxis.color&&(f.yaxis.color=K.color.parse(f.grid.color).scale(\"a\",.22).toString());null==f.xaxis.tickColor&&(f.xaxis.tickColor=f.grid.tickColor||f.xaxis.color);null==f.yaxis.tickColor&&(f.yaxis.tickColor=f.grid.tickColor||f.yaxis.color);null==f.grid.borderColor&&(f.grid.borderColor=f.grid.color);null==f.grid.tickColor&&(f.grid.tickColor=K.color.parse(f.grid.color).scale(\"a\",.22).toString());var e,n,o,i=l.css(\"font-size\"),a=i?+i.replace(\"px\",\"\"):13,r={style:l.css(\"font-style\"),size:Math.round(.8*a),variant:l.css(\"font-variant\"),weight:l.css(\"font-weight\"),family:l.css(\"font-family\")};for(o=f.xaxes.length||1,e=0;e<o;++e)(n=f.xaxes[e])&&!n.tickColor&&(n.tickColor=n.color),n=K.extend(!0,{},f.xaxis,n),(f.xaxes[e]=n).font&&(n.font=K.extend({},r,n.font),n.font.color||(n.font.color=n.color),n.font.lineHeight||(n.font.lineHeight=Math.round(1.15*n.font.size)));for(o=f.yaxes.length||1,e=0;e<o;++e)(n=f.yaxes[e])&&!n.tickColor&&(n.tickColor=n.color),n=K.extend(!0,{},f.yaxis,n),(f.yaxes[e]=n).font&&(n.font=K.extend({},r,n.font),n.font.color||(n.font.color=n.color),n.font.lineHeight||(n.font.lineHeight=Math.round(1.15*n.font.size)));for(e=0;e<f.xaxes.length;++e)L(m,e+1).options=f.xaxes[e];for(e=0;e<f.yaxes.length;++e)L(v,e+1).options=f.yaxes[e];for(var s in K.each(z(),function(t,e){e.boxPosition=e.options.boxPosition||{centerX:0,centerY:0}}),k)f.hooks[s]&&f.hooks[s].length&&(k[s]=k[s].concat(f.hooks[s]));C(k.processOptions,[f])}(e),c(t),A(!0),W(),C(k.bindEvents,[i])}K.plot=function(t,e,n){return new o(K(t),e,n,K.plot.plugins)},K.plot.version=\"3.0.0\",K.plot.plugins=[],K.fn.plot=function(t,e){return this.each(function(){K.plot(this,t,e)})},K.plot.linearTickGenerator=tt,K.plot.defaultTickFormatter=et,K.plot.expRepTickFormatter=l}(jQuery),function(t){var a={saturate:function(t){return t===1/0?Number.MAX_VALUE:t===-1/0?-Number.MAX_VALUE:t},delta:function(t,e,n){return(e-t)/n==1/0?e/n-t/n:(e-t)/n},multiply:function(t,e){return a.saturate(t*e)},multiplyAdd:function(t,e,n){if(isFinite(t*e))return a.saturate(t*e+n);for(var o=n,i=0;i<e;i++)o+=t;return a.saturate(o)},floorInBase:function(t,e){return e*Math.floor(t/e)}};t.plot.saturated=a}(jQuery),function(t){var e={getPageXY:function(t){var e=document.documentElement;return{X:t.clientX+(window.pageXOffset||e.scrollLeft)-(e.clientLeft||0),Y:t.clientY+(window.pageYOffset||e.scrollTop)-(e.clientTop||0)}},getPixelRatio:function(t){return(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)},isSafari:function(){return/constructor/i.test(window.top.HTMLElement)||\"[object SafariRemoteNotification]\"===(!window.top.safari||void 0!==window.top.safari&&window.top.safari.pushNotification).toString()},isMobileSafari:function(){return navigator.userAgent.match(/(iPod|iPhone|iPad)/)&&navigator.userAgent.match(/AppleWebKit/)},isOpera:function(){return!!window.opr&&!!opr.addons||!!window.opera||0<=navigator.userAgent.indexOf(\" OPR/\")},isFirefox:function(){return\"undefined\"!=typeof InstallTrigger},isIE:function(){return!!document.documentMode},isEdge:function(){return!e.isIE()&&!!window.StyleMedia},isChrome:function(){return!!window.chrome&&!!window.chrome.webstore},isBlink:function(){return(e.isChrome()||e.isOpera())&&!!window.CSS}};t.plot.browser=e}(jQuery),function(s){s.plot.drawSeries=new function(){function f(t,e,n,o,i,a,r,s,l,c,u){var p,h,d,f,m=t+o,g=t+i,x=n,v=e,b=!1;p=h=d=!0,c?(b=h=d=!0,p=!1,v=e+o,x=e+i,(g=t)<(m=n)&&(f=g,g=m,m=f,h=!(p=!0))):(p=h=d=!0,b=!1,m=t+o,g=t+i,(v=e)<(x=n)&&(f=v,v=x,x=f,d=!(b=!0))),g<r.min||m>r.max||v<s.min||x>s.max||(m<r.min&&(m=r.min,p=!1),g>r.max&&(g=r.max,h=!1),x<s.min&&(x=s.min,b=!1),v>s.max&&(v=s.max,d=!1),m=r.p2c(m),x=s.p2c(x),g=r.p2c(g),v=s.p2c(v),a&&(l.fillStyle=a(x,v),l.fillRect(m,v,g-m,x-v)),0<u&&(p||h||d||b)&&(l.beginPath(),l.moveTo(m,x),p?l.lineTo(m,v):l.moveTo(m,v),d?l.lineTo(g,v):l.moveTo(g,v),h?l.lineTo(g,x):l.moveTo(g,x),b?l.lineTo(m,x):l.moveTo(m,x),l.stroke()))}function m(t,e,n,o,i){var a=t.fill;if(!a)return null;if(t.fillColor)return i(t.fillColor,n,o,e);var r=s.color.parse(e);return r.a=\"number\"==typeof a?a:.4,r.normalize(),r.toString()}this.drawSeriesLines=function(t,e,n,o,i,a,r){e.save(),e.translate(n.left,n.top),e.lineJoin=\"round\",t.lines.dashes&&e.setLineDash&&e.setLineDash(t.lines.dashes);var s={format:t.datapoints.format,points:t.datapoints.points,pointsize:t.datapoints.pointsize};t.decimate&&(s.points=t.decimate(t,t.xaxis.min,t.xaxis.max,o,t.yaxis.min,t.yaxis.max,i));var l=t.lines.lineWidth;e.lineWidth=l,e.strokeStyle=t.color;var c=m(t.lines,t.color,0,i,r);c&&(e.fillStyle=c,function(t,e,n,o,i,a){for(var r=t.points,s=t.pointsize,l=o>n.min?Math.min(n.max,o):n.min,c=0,u=1,p=!1,h=0,d=0,f=null,m=null;!(0<s&&c>r.length+s);){var g=r[(c+=s)-s],x=r[c-s+u],v=r[c],b=r[c+u];if(-2===s&&(x=b=l),p){if(0<s&&null!=g&&null==v){d=c,s=-s,u=2;continue}if(s<0&&c===h+s){i.fill(),p=!1,u=1,c=h=d+(s=-s);continue}}if(null!=g&&null!=v){if(a&&(null!==f&&null!==m?(v=g,b=x,g=f,x=m,m=f=null,c-=s):x!==b&&g!==v&&(f=v,m=b=x)),g<=v&&g<e.min){if(v<e.min)continue;x=(e.min-g)/(v-g)*(b-x)+x,g=e.min}else if(v<=g&&v<e.min){if(g<e.min)continue;b=(e.min-g)/(v-g)*(b-x)+x,v=e.min}if(v<=g&&g>e.max){if(v>e.max)continue;x=(e.max-g)/(v-g)*(b-x)+x,g=e.max}else if(g<=v&&v>e.max){if(g>e.max)continue;b=(e.max-g)/(v-g)*(b-x)+x,v=e.max}if(p||(i.beginPath(),i.moveTo(e.p2c(g),n.p2c(l)),p=!0),x>=n.max&&b>=n.max)i.lineTo(e.p2c(g),n.p2c(n.max)),i.lineTo(e.p2c(v),n.p2c(n.max));else if(x<=n.min&&b<=n.min)i.lineTo(e.p2c(g),n.p2c(n.min)),i.lineTo(e.p2c(v),n.p2c(n.min));else{var y=g,w=v;x<=b&&x<n.min&&b>=n.min?(g=(n.min-x)/(b-x)*(v-g)+g,x=n.min):b<=x&&b<n.min&&x>=n.min&&(v=(n.min-x)/(b-x)*(v-g)+g,b=n.min),b<=x&&x>n.max&&b<=n.max?(g=(n.max-x)/(b-x)*(v-g)+g,x=n.max):x<=b&&b>n.max&&x<=n.max&&(v=(n.max-x)/(b-x)*(v-g)+g,b=n.max),g!==y&&i.lineTo(e.p2c(y),n.p2c(x)),i.lineTo(e.p2c(g),n.p2c(x)),i.lineTo(e.p2c(v),n.p2c(b)),v!==w&&(i.lineTo(e.p2c(v),n.p2c(b)),i.lineTo(e.p2c(w),n.p2c(b)))}}else m=f=null}}(s,t.xaxis,t.yaxis,t.lines.fillTowards||0,e,t.lines.steps)),0<l&&function(t,e,n,o,i,a,r){var s=t.points,l=t.pointsize,c=null,u=null,p=0,h=0,d=0,f=0,m=null,g=null,x=0;for(a.beginPath(),x=l;x<s.length;x+=l)if(p=s[x-l],h=s[x-l+1],d=s[x],f=s[x+1],null!==p&&null!==d)if(isNaN(p)||isNaN(d)||isNaN(h)||isNaN(f))u=c=null;else{if(r&&(null!==m&&null!==g?(d=p,f=h,p=m,h=g,g=m=null,x-=l):h!==f&&p!==d&&(m=d,g=f=h)),h<=f&&h<i.min){if(f<i.min)continue;p=(i.min-h)/(f-h)*(d-p)+p,h=i.min}else if(f<=h&&f<i.min){if(h<i.min)continue;d=(i.min-h)/(f-h)*(d-p)+p,f=i.min}if(f<=h&&h>i.max){if(f>i.max)continue;p=(i.max-h)/(f-h)*(d-p)+p,h=i.max}else if(h<=f&&f>i.max){if(h>i.max)continue;d=(i.max-h)/(f-h)*(d-p)+p,f=i.max}if(p<=d&&p<o.min){if(d<o.min)continue;h=(o.min-p)/(d-p)*(f-h)+h,p=o.min}else if(d<=p&&d<o.min){if(p<o.min)continue;f=(o.min-p)/(d-p)*(f-h)+h,d=o.min}if(d<=p&&p>o.max){if(d>o.max)continue;h=(o.max-p)/(d-p)*(f-h)+h,p=o.max}else if(p<=d&&d>o.max){if(p>o.max)continue;f=(o.max-p)/(d-p)*(f-h)+h,d=o.max}p===c&&h===u||a.moveTo(o.p2c(p)+e,i.p2c(h)+n),c=d,u=f,a.lineTo(o.p2c(d)+e,i.p2c(f)+n)}else g=m=null;a.stroke()}(s,0,0,t.xaxis,t.yaxis,e,t.lines.steps),e.restore()},this.drawSeriesPoints=function(t,d,e,n,o,i,a){function r(t,e,n,o,i,a){t.moveTo(e+o,n),t.arc(e,n,o,0,i?Math.PI:2*Math.PI,!1)}r.fill=!0,d.save(),d.translate(e.left,e.top);var s={format:t.datapoints.format,points:t.datapoints.points,pointsize:t.datapoints.pointsize};t.decimatePoints&&(s.points=t.decimatePoints(t,t.xaxis.min,t.xaxis.max,n,t.yaxis.min,t.yaxis.max,o));var l,c=t.points.lineWidth,u=t.points.radius,p=t.points.symbol;\"circle\"===p?l=r:\"string\"==typeof p&&i&&i[p]?l=i[p]:\"function\"==typeof i&&(l=i),0===c&&(c=1e-4),d.lineWidth=c,d.fillStyle=m(t.points,t.color,null,null,a),d.strokeStyle=t.color,function(t,e,n,o,i,a,r,s){var l=t.points,c=t.pointsize;d.beginPath();for(var u=0;u<l.length;u+=c){var p=l[u],h=l[u+1];null==p||p<a.min||p>a.max||h<r.min||h>r.max||(p=a.p2c(p),h=r.p2c(h)+o,s(d,p,h,e,i,n))}s.fill&&!i&&d.fill(),d.stroke()}(s,u,!0,0,!1,t.xaxis,t.yaxis,l),d.restore()},this.drawSeriesBars=function(h,d,t,e,n,o,i){d.save(),d.translate(t.left,t.top);var a,r={format:h.datapoints.format,points:h.datapoints.points,pointsize:h.datapoints.pointsize};h.decimate&&(r.points=h.decimate(h,h.xaxis.min,h.xaxis.max,e)),d.lineWidth=h.bars.lineWidth,d.strokeStyle=h.color;var s=h.bars.barWidth[0]||h.bars.barWidth;switch(h.bars.align){case\"left\":a=0;break;case\"right\":a=-s;break;default:a=-s/2}!function(t,e,n,o,i,a){for(var r=t.points,s=t.pointsize,l=h.bars.fillTowards||0,c=l>a.min?Math.min(a.max,l):a.min,u=0;u<r.length;u+=s)if(null!=r[u]){var p=3===s?r[u+2]:c;f(r[u],r[u+1],p,e,n,o,i,a,d,h.bars.horizontal,h.bars.lineWidth)}}(r,a,a+s,h.bars.fill?function(t,e){return m(h.bars,h.color,t,e,i)}:null,h.xaxis,h.yaxis),d.restore()},this.drawBar=f}}(jQuery),function(p){function e(t,e,n,o){if(e.points.errorbars){var i=[{x:!0,number:!0,required:!0},{y:!0,number:!0,required:!0}],a=e.points.errorbars;\"x\"!==a&&\"xy\"!==a||(e.points.xerr.asymmetric&&i.push({x:!0,number:!0,required:!0}),i.push({x:!0,number:!0,required:!0})),\"y\"!==a&&\"xy\"!==a||(e.points.yerr.asymmetric&&i.push({y:!0,number:!0,required:!0}),i.push({y:!0,number:!0,required:!0})),o.format=i}}function M(t,e){var n=t.datapoints.points,o=null,i=null,a=null,r=null,s=t.points.xerr,l=t.points.yerr,c=t.points.errorbars;\"x\"===c||\"xy\"===c?s.asymmetric?(o=n[e+2],i=n[e+3],\"xy\"===c&&(l.asymmetric?(a=n[e+4],r=n[e+5]):a=n[e+4])):(o=n[e+2],\"xy\"===c&&(l.asymmetric?(a=n[e+3],r=n[e+4]):a=n[e+3])):\"y\"===c&&(l.asymmetric?(a=n[e+2],r=n[e+3]):a=n[e+2]),null==i&&(i=o),null==r&&(r=a);var u=[o,i,a,r];return s.show||(u[0]=null,u[1]=null),l.show||(u[2]=null,u[3]=null),u}function S(t,e,n,o,i,a,r,s,l,c,u){o+=c,i+=c,a+=c,\"x\"===e.err?(n+l<i?h(t,[[i,o],[Math.max(n+l,u[0]),o]]):r=!1,a<n-l?h(t,[[Math.min(n-l,u[1]),o],[a,o]]):s=!1):(i<o-l?h(t,[[n,i],[n,Math.min(o-l,u[0])]]):r=!1,o+l<a?h(t,[[n,Math.max(o+l,u[1])],[n,a]]):s=!1),l=null!=e.radius?e.radius:l,r&&(\"-\"===e.upperCap?\"x\"===e.err?h(t,[[i,o-l],[i,o+l]]):h(t,[[n-l,i],[n+l,i]]):p.isFunction(e.upperCap)&&(\"x\"===e.err?e.upperCap(t,i,o,l):e.upperCap(t,n,i,l))),s&&(\"-\"===e.lowerCap?\"x\"===e.err?h(t,[[a,o-l],[a,o+l]]):h(t,[[n-l,a],[n+l,a]]):p.isFunction(e.lowerCap)&&(\"x\"===e.err?e.lowerCap(t,a,o,l):e.lowerCap(t,n,a,l)))}function h(t,e){t.beginPath(),t.moveTo(e[0][0],e[0][1]);for(var n=1;n<e.length;n++)t.lineTo(e[n][0],e[n][1]);t.stroke()}function n(t,n){var e=t.getPlotOffset();n.save(),n.translate(e.left,e.top),p.each(t.getData(),function(t,e){e.points.errorbars&&(e.points.xerr.show||e.points.yerr.show)&&function(t,e,n){var o,i=n.datapoints.points,a=n.datapoints.pointsize,r=[n.xaxis,n.yaxis],s=n.points.radius,l=[n.points.xerr,n.points.yerr],c=!1;r[0].p2c(r[0].max)<r[0].p2c(r[0].min)&&(c=!0,o=l[0].lowerCap,l[0].lowerCap=l[0].upperCap,l[0].upperCap=o);var u=!1;r[1].p2c(r[1].min)<r[1].p2c(r[1].max)&&(u=!0,o=l[1].lowerCap,l[1].lowerCap=l[1].upperCap,l[1].upperCap=o);for(var p=0;p<n.datapoints.points.length;p+=a)for(var h=M(n,p),d=0;d<l.length;d++){var f=[r[d].min,r[d].max];if(h[d*l.length]){var m=i[p],g=i[p+1],x=[m,g][d]+h[d*l.length+1],v=[m,g][d]-h[d*l.length];if(\"x\"===l[d].err&&(g>r[1].max||g<r[1].min||x<r[0].min||v>r[0].max))continue;if(\"y\"===l[d].err&&(m>r[0].max||m<r[0].min||x<r[1].min||v>r[1].max))continue;var b=!0,y=!0;x>f[1]&&(b=!1,x=f[1]),v<f[0]&&(y=!1,v=f[0]),(\"x\"===l[d].err&&c||\"y\"===l[d].err&&u)&&(o=v,v=x,x=o,o=y,y=b,b=o,o=f[0],f[0]=f[1],f[1]=o),m=r[0].p2c(m),g=r[1].p2c(g),x=r[d].p2c(x),v=r[d].p2c(v),f[0]=r[d].p2c(f[0]),f[1]=r[d].p2c(f[1]);var w=l[d].lineWidth?l[d].lineWidth:n.points.lineWidth,T=null!=n.points.shadowSize?n.points.shadowSize:n.shadowSize;if(0<w&&0<T){var k=T/2;e.lineWidth=k,e.strokeStyle=\"rgba(0,0,0,0.1)\",S(e,l[d],m,g,x,v,b,y,s,k+k/2,f),e.strokeStyle=\"rgba(0,0,0,0.2)\",S(e,l[d],m,g,x,v,b,y,s,k/2,f)}e.strokeStyle=l[d].color?l[d].color:n.color,e.lineWidth=w,S(e,l[d],m,g,x,v,b,y,s,0,f)}}}(0,n,e)}),n.restore()}p.plot.plugins.push({init:function(t){t.hooks.processRawData.push(e),t.hooks.draw.push(n)},options:{series:{points:{errorbars:null,xerr:{err:\"x\",show:null,asymmetric:null,upperCap:null,lowerCap:null,color:null,radius:null},yerr:{err:\"y\",show:null,asymmetric:null,upperCap:null,lowerCap:null,color:null,radius:null}}}},name:\"errorbars\",version:\"1.0\"})}(jQuery),jQuery.plot.uiConstants={SNAPPING_CONSTANT:20,PANHINT_LENGTH_CONSTANT:10,MINOR_TICKS_COUNT_CONSTANT:4,TICK_LENGTH_CONSTANT:10,ZOOM_DISTANCE_MARGIN:25},function(v){var b=t(Number.MAX_VALUE,10),y=t(Number.MAX_VALUE,4);function t(t,e){for(var n,o,i=Math.floor(Math.log(t)*Math.LOG10E)-1,a=[],r=-i;r<=i;r++){o=parseFloat(\"1e\"+r);for(var s=1;s<9;s+=e)n=o*s,a.push(n)}return a}var i=function(t,e,n){var o=[],i=-1,a=-1,r=t.getCanvas(),s=b,l=w(e,t),c=e.max;n||(n=.3*Math.sqrt(\"x\"===e.direction?r.width:r.height)),b.some(function(t,e){return l<=t&&(i=e,!0)}),b.some(function(t,e){return c<=t&&(a=e,!0)}),-1===a&&(a=b.length-1),a-i<=n/4&&s.length!==y.length&&(s=y,i*=2,a*=2);var u,p,h,d=null,f=1/n;if(n/4<=a-i){for(var m=a;i<=m;m--)u=s[m],p=(Math.log(u)-Math.log(l))/(Math.log(c)-Math.log(l)),h=u,null===d?d={pixelCoord:p,idealPixelCoord:p}:Math.abs(p-d.pixelCoord)>=f?d={pixelCoord:p,idealPixelCoord:d.idealPixelCoord-f}:h=null,h&&o.push(h);o.reverse()}else{var g=t.computeTickSize(l,c,n),x={min:l,max:c,tickSize:g};o=v.plot.linearTickGenerator(x)}return o},w=function(t,e){var n=t.min,o=t.max;return n<=0&&o<(n=null===t.datamin?t.min=.1:h(e,t))&&(t.max=null!==t.datamax?t.datamax:t.options.max,t.options.offset.below=0,t.options.offset.above=0),n},a=function(t,e,n){var o=0<t?Math.floor(Math.log(t)/Math.LN10):0;if(n)return-4<=o&&o<=7?v.plot.defaultTickFormatter(t,e,n):v.plot.expRepTickFormatter(t,e,n);if(-4<=o&&o<=7){var i=o<0?t.toFixed(-o):t.toFixed(o+2);if(-1!==i.indexOf(\".\")){for(var a=i.lastIndexOf(\"0\");a===i.length-1;)a=(i=i.slice(0,-1)).lastIndexOf(\"0\");i.indexOf(\".\")===i.length-1&&(i=i.slice(0,-1))}return i}return v.plot.expRepTickFormatter(t,e)},r=function(t){return t<b[0]&&(t=b[0]),Math.log(t)},s=function(t){return Math.exp(t)},l=function(t){return-t},c=function(t){return-r(t)},u=function(t){return s(-t)};function p(t,e){\"log\"===e.options.mode&&e.datamin<=0&&(null===e.datamin?e.datamin=.1:e.datamin=h(t,e))}function h(e,n){var t=e.getData().filter(function(t){return t.xaxis===n||t.yaxis===n}).map(function(t){return e.computeRangeForDataSeries(t,null,d)}),o=\"x\"===n.direction?Math.min(.1,t&&t[0]?t[0].xmin:.1):Math.min(.1,t&&t[0]?t[0].ymin:.1);return n.min=o}function d(t){return 0<t}v.plot.plugins.push({init:function(t){t.hooks.processOptions.push(function(o){v.each(o.getAxes(),function(t,e){var n=e.options;\"log\"===n.mode?(e.tickGenerator=function(t){return i(o,t,11)},\"function\"!=typeof e.options.tickFormatter&&(e.options.tickFormatter=a),e.options.transform=n.inverted?c:r,e.options.inverseTransform=n.inverted?u:s,e.options.autoScaleMargin=0,o.hooks.setRange.push(p)):n.inverted&&(e.options.transform=l,e.options.inverseTransform=l)})})},options:{xaxis:{}},name:\"log\",version:\"0.1\"}),v.plot.logTicksGenerator=i,v.plot.logTickFormatter=a}(jQuery),function(t){var e=function(t,e,n,o,i){var a=o*Math.sqrt(Math.PI)/2;t.rect(e-a,n-a,a+a,a+a)},n=function(t,e,n,o,i){var a=o*Math.sqrt(Math.PI)/2;t.rect(e-a,n-a,a+a,a+a)},o=function(t,e,n,o,i){var a=o*Math.sqrt(Math.PI/2);t.moveTo(e-a,n),t.lineTo(e,n-a),t.lineTo(e+a,n),t.lineTo(e,n+a),t.lineTo(e-a,n),t.lineTo(e,n-a)},i=function(t,e,n,o,i){var a=o*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3)),r=a*Math.sin(Math.PI/3);t.moveTo(e-a/2,n+r/2),t.lineTo(e+a/2,n+r/2),i||(t.lineTo(e,n-r/2),t.lineTo(e-a/2,n+r/2),t.lineTo(e+a/2,n+r/2))},a=function(t,e,n,o,i,a){i||(t.moveTo(e+o,n),t.arc(e,n,o,0,2*Math.PI,!1))},r={square:e,rectangle:n,diamond:o,triangle:i,cross:function(t,e,n,o,i){var a=o*Math.sqrt(Math.PI)/2;t.moveTo(e-a,n-a),t.lineTo(e+a,n+a),t.moveTo(e-a,n+a),t.lineTo(e+a,n-a)},ellipse:a,plus:function(t,e,n,o,i){var a=o*Math.sqrt(Math.PI/2);t.moveTo(e-a,n),t.lineTo(e+a,n),t.moveTo(e,n+a),t.lineTo(e,n-a)}};a.fill=i.fill=o.fill=n.fill=e.fill=!0,t.plot.plugins.push({init:function(t){t.drawSymbol=r},name:\"symbols\",version:\"1.0\"})}(jQuery),function(t){function e(t,e,n,o){if(!0===e.flatdata){var i=e.start||0,a=\"number\"==typeof e.step?e.step:1;o.pointsize=2;for(var r=0,s=0;r<n.length;r++,s+=2)o.points[s]=i+r*a,o.points[s+1]=n[r];void 0!==o.points?o.points.length=2*n.length:o.points=[]}}jQuery.plot.plugins.push({init:function(t){t.hooks.processRawData.push(e)},name:\"flatdata\",version:\"0.0.2\"})}(),function(S){var t={zoom:{interactive:!1,active:!1,amount:1.5},pan:{interactive:!1,active:!1,cursor:\"move\",frameRate:60,mode:\"smart\"},recenter:{interactive:!0},xaxis:{axisZoom:!0,plotZoom:!0,axisPan:!0,plotPan:!0,panRange:[void 0,void 0],zoomRange:[void 0,void 0]},yaxis:{axisZoom:!0,plotZoom:!0,axisPan:!0,plotPan:!0,panRange:[void 0,void 0],zoomRange:[void 0,void 0]}},P=S.plot.saturated,C=S.plot.browser,N=S.plot.uiConstants.SNAPPING_CONSTANT,z=S.plot.uiConstants.PANHINT_LENGTH_CONSTANT;function e(y,t){var s=null,i=!1,a=\"manual\"===t.pan.mode,o=\"smartLock\"===t.pan.mode,r=o||\"smart\"===t.pan.mode;var l,c=\"default\",w=null,u=null,p={x:0,y:0},h=!1;function d(t,e){var n=Math.abs(t.originalEvent.deltaY)<=1?1+Math.abs(t.originalEvent.deltaY)/50:null;if(h&&v(t),y.getOptions().zoom.active)return t.preventDefault(),function(t,e,n){var o=C.getPageXY(t),i=y.offset();i.left=o.X-i.left,i.top=o.Y-i.top;var a=y.getPlaceholder().offset();a.left=o.X-a.left,a.top=o.Y-a.top;var r=y.getXAxes().concat(y.getYAxes()).filter(function(t){var e=t.box;if(void 0!==e)return a.left>e.left&&a.left<e.left+e.width&&a.top>e.top&&a.top<e.top+e.height});0===r.length&&(r=void 0),e?y.zoomOut({center:i,axes:r,amount:n}):y.zoom({center:i,axes:r,amount:n})}(t,e<0,n),!1}function f(t){i=!0}function m(t){i=!1}function g(t){if(!i||0!==t.button)return!1;h=!0;var e=C.getPageXY(t),n=y.getPlaceholder().offset();n.left=e.X-n.left,n.top=e.Y-n.top,0===(s=y.getXAxes().concat(y.getYAxes()).filter(function(t){var e=t.box;if(void 0!==e)return n.left>e.left&&n.left<e.left+e.width&&n.top>e.top&&n.top<e.top+e.height})).length&&(s=void 0);var o=y.getPlaceholder().css(\"cursor\");o&&(c=o),y.getPlaceholder().css(\"cursor\",y.getOptions().pan.cursor),r?l=y.navigationState(e.X,e.Y):a&&(p.x=e.X,p.y=e.Y)}function x(t){if(h){var e=C.getPageXY(t),n=y.getOptions().pan.frameRate;-1!==n?!u&&n&&(u=setTimeout(function(){r?y.smartPan({x:l.startPageX-e.X,y:l.startPageY-e.Y},l,s,!1,o):a&&(y.pan({left:p.x-e.X,top:p.y-e.Y,axes:s}),p.x=e.X,p.y=e.Y),u=null},1/n*1e3)):r?y.smartPan({x:l.startPageX-e.X,y:l.startPageY-e.Y},l,s,!1,o):a&&(y.pan({left:p.x-e.X,top:p.y-e.Y,axes:s}),p.x=e.X,p.y=e.Y)}}function v(t){if(h){u&&(clearTimeout(u),u=null),h=!1;var e=C.getPageXY(t);y.getPlaceholder().css(\"cursor\",c),r?(y.smartPan({x:l.startPageX-e.X,y:l.startPageY-e.Y},l,s,!1,o),y.smartPan.end()):a&&(y.pan({left:p.x-e.X,top:p.y-e.Y,axes:s}),p.x=0,p.y=0)}}function b(t){if(y.activate(),y.getOptions().recenter.interactive){var e,n=y.getTouchedAxis(t.clientX,t.clientY);y.recenter({axes:n[0]?n:null}),e=n[0]?new S.Event(\"re-center\",{detail:{axisTouched:n[0]}}):new S.Event(\"re-center\",{detail:t}),y.getPlaceholder().trigger(e)}}function T(t){return y.activate(),h&&v(t),!1}y.navigationState=function(t,e){var n=this.getAxes(),o={};return Object.keys(n).forEach(function(t){var e=n[t];o[t]={navigationOffset:{below:e.options.offset.below||0,above:e.options.offset.above||0},axisMin:e.min,axisMax:e.max,diagMode:!1}}),o.startPageX=t||0,o.startPageY=e||0,o},y.activate=function(){var t=y.getOptions();t.pan.active&&t.zoom.active||(t.pan.active=!0,t.zoom.active=!0,y.getPlaceholder().trigger(\"plotactivated\",[y]))},y.zoomOut=function(t){t||(t={}),t.amount||(t.amount=y.getOptions().zoom.amount),t.amount=1/t.amount,y.zoom(t)},y.zoom=function(t){t||(t={});var e=t.center,n=t.amount||y.getOptions().zoom.amount,o=y.width(),i=y.height(),a=t.axes||y.getAxes();e||(e={left:o/2,top:i/2});var r=e.left/o,s=e.top/i,l={x:{min:e.left-r*o/n,max:e.left+(1-r)*o/n},y:{min:e.top-s*i/n,max:e.top+(1-s)*i/n}};for(var c in a)if(a.hasOwnProperty(c)){var u=a[c],p=u.options,h=l[u.direction].min,d=l[u.direction].max,f=u.options.offset;if((p.axisZoom||!t.axes)&&(t.axes||p.plotZoom)){if(h=S.plot.saturated.saturate(u.c2p(h)),(d=S.plot.saturated.saturate(u.c2p(d)))<h){var m=h;h=d,d=m}if(p.zoomRange){if(d-h<p.zoomRange[0])continue;if(d-h>p.zoomRange[1])continue}var g=S.plot.saturated.saturate(f.below-(u.min-h)),x=S.plot.saturated.saturate(f.above-(u.max-d));p.offset={below:g,above:x}}}y.setupGrid(!0),y.draw(),t.preventEvent||y.getPlaceholder().trigger(\"plotzoom\",[y,t])},y.pan=function(l){var c={x:+l.left,y:+l.top};isNaN(c.x)&&(c.x=0),isNaN(c.y)&&(c.y=0),S.each(l.axes||y.getAxes(),function(t,e){var n=e.options,o=c[e.direction];if((n.axisPan||!l.axes)&&(n.plotPan||l.axes)){var i=e.p2c(n.panRange[0])-e.p2c(e.min),a=e.p2c(n.panRange[1])-e.p2c(e.max);if(void 0!==n.panRange[0]&&a<=o&&(o=a),void 0!==n.panRange[1]&&o<=i&&(o=i),0!==o){var r=P.saturate(e.c2p(e.p2c(e.min)+o)-e.c2p(e.p2c(e.min))),s=P.saturate(e.c2p(e.p2c(e.max)+o)-e.c2p(e.p2c(e.max)));isFinite(r)||(r=0),isFinite(s)||(s=0),n.offset={below:P.saturate(r+(n.offset.below||0)),above:P.saturate(s+(n.offset.above||0))}}}}),y.setupGrid(!0),y.draw(),l.preventEvent||y.getPlaceholder().trigger(\"plotpan\",[y,l])},y.recenter=function(n){S.each(n.axes||y.getAxes(),function(t,e){n.axes?\"x\"===this.direction?e.options.offset={below:0}:\"y\"===this.direction&&(e.options.offset={above:0}):e.options.offset={below:0,above:0}}),y.setupGrid(!0),y.draw()};var k=null,M={x:0,y:0};y.smartPan=function(a,t,r,e,n){var s,o,i,l,c,u,p,h,d,f,m,g,x,v=!!n||(o=a,Math.abs(o.y)<N&&Math.abs(o.x)>=N||Math.abs(o.x)<N&&Math.abs(o.y)>=N),b=y.getAxes();a=n?function(t){switch(!k&&Math.max(Math.abs(t.x),Math.abs(t.y))>=N&&(k=Math.abs(t.x)<Math.abs(t.y)?\"y\":\"x\"),k){case\"x\":return{x:t.x,y:0};case\"y\":return{x:0,y:t.y};default:return{x:0,y:0}}}(a):(i=a,Math.abs(i.x)<N&&Math.abs(i.y)>=N?{x:0,y:i.y}:Math.abs(i.y)<N&&Math.abs(i.x)>=N?{x:i.x,y:0}:i),l=a,0<Math.abs(l.x)&&0<Math.abs(l.y)&&(t.diagMode=!0),v&&!0===t.diagMode&&(t.diagMode=!1,c=b,u=t,p=a,Object.keys(c).forEach(function(t){h=c[t],0===p[h.direction]&&(h.options.offset.below=u[t].navigationOffset.below,h.options.offset.above=u[t].navigationOffset.above)})),w=v?{start:{x:t.startPageX-y.offset().left+y.getPlotOffset().left,y:t.startPageY-y.offset().top+y.getPlotOffset().top},end:{x:t.startPageX-a.x-y.offset().left+y.getPlotOffset().left,y:t.startPageY-a.y-y.offset().top+y.getPlotOffset().top}}:{start:{x:t.startPageX-y.offset().left+y.getPlotOffset().left,y:t.startPageY-y.offset().top+y.getPlotOffset().top},end:!1},isNaN(a.x)&&(a.x=0),isNaN(a.y)&&(a.y=0),r&&(b=r),Object.keys(b).forEach(function(t){if(d=b[t],f=d.min,m=d.max,s=d.options,x=a[d.direction],g=M[d.direction],(s.axisPan||!r)&&(r||s.plotPan)){var e=g+d.p2c(s.panRange[0])-d.p2c(f),n=g+d.p2c(s.panRange[1])-d.p2c(m);if(void 0!==s.panRange[0]&&n<=x&&(x=n),void 0!==s.panRange[1]&&x<=e&&(x=e),0!==x){var o=P.saturate(d.c2p(d.p2c(f)-(g-x))-d.c2p(d.p2c(f))),i=P.saturate(d.c2p(d.p2c(m)-(g-x))-d.c2p(d.p2c(m)));isFinite(o)||(o=0),isFinite(i)||(i=0),d.options.offset.below=P.saturate(o+(d.options.offset.below||0)),d.options.offset.above=P.saturate(i+(d.options.offset.above||0))}}}),M=a,y.setupGrid(!0),y.draw(),e||y.getPlaceholder().trigger(\"plotpan\",[y,a,r,t])},y.smartPan.end=function(){k=w=null,M={x:0,y:0},y.triggerRedrawOverlay()},y.getTouchedAxis=function(t,e){var n=y.getPlaceholder().offset();return n.left=t-n.left,n.top=e-n.top,y.getXAxes().concat(y.getYAxes()).filter(function(t){var e=t.box;if(void 0!==e)return n.left>e.left&&n.left<e.left+e.width&&n.top>e.top&&n.top<e.top+e.height})},y.hooks.drawOverlay.push(function(t,e){if(w){e.strokeStyle=\"rgba(96, 160, 208, 0.7)\",e.lineWidth=2,e.lineJoin=\"round\";var n,o,i=Math.round(w.start.x),a=Math.round(w.start.y);if(s?\"x\"===s[0].direction?(o=Math.round(w.start.y),n=Math.round(w.end.x)):\"y\"===s[0].direction&&(n=Math.round(w.start.x),o=Math.round(w.end.y)):(n=Math.round(w.end.x),o=Math.round(w.end.y)),e.beginPath(),!1===w.end)e.moveTo(i,a-z),e.lineTo(i,a+z),e.moveTo(i+z,a),e.lineTo(i-z,a);else{var r=a===o;e.moveTo(i-(r?0:z),a-(r?z:0)),e.lineTo(i+(r?0:z),a+(r?z:0)),e.moveTo(i,a),e.lineTo(n,o),e.moveTo(n-(r?0:z),o-(r?z:0)),e.lineTo(n+(r?0:z),o+(r?z:0))}e.stroke()}}),y.hooks.bindEvents.push(function(t,e){var n=t.getOptions();n.zoom.interactive&&e.mousewheel(d),n.pan.interactive&&(t.addEventHandler(\"dragstart\",g,e,0),t.addEventHandler(\"drag\",x,e,0),t.addEventHandler(\"dragend\",v,e,0),e.bind(\"mousedown\",f),e.bind(\"mouseup\",m)),e.dblclick(b),e.click(T)}),y.hooks.shutdown.push(function(t,e){e.unbind(\"mousewheel\",d),e.unbind(\"mousedown\",f),e.unbind(\"mouseup\",m),e.unbind(\"dragstart\",g),e.unbind(\"drag\",x),e.unbind(\"dragend\",v),e.unbind(\"dblclick\",b),e.unbind(\"click\",T),u&&clearTimeout(u)})}S.plot.plugins.push({init:function(t){t.hooks.processOptions.push(e)},options:t,name:\"navigate\",version:\"1.3\"})}(jQuery),jQuery.plot.plugins.push({init:function(t){t.hooks.processRawData.push(function(o,t,e,n){if(null!=t.fillBetween){var i=n.format;i||((i=[]).push({x:!0,number:!0,computeRange:\"none\"!==t.xaxis.options.autoScale,required:!0}),i.push({y:!0,number:!0,computeRange:\"none\"!==t.yaxis.options.autoScale,required:!0}),void 0!==t.fillBetween&&\"\"!==t.fillBetween&&function(t){for(var e=o.getData(),n=0;n<e.length;n++)if(e[n].id===t)return!0;return!1}(t.fillBetween)&&t.fillBetween!==t.id&&i.push({x:!1,y:!0,number:!0,required:!1,computeRange:\"none\"!==t.yaxis.options.autoScale,defaultValue:0}),n.format=i)}}),t.hooks.processDatapoints.push(function(t,e,n){if(null!=e.fillBetween){var o=function(t,e){var n;for(n=0;n<e.length;++n)if(e[n].id===t.fillBetween)return e[n];return\"number\"==typeof t.fillBetween?t.fillBetween<0||t.fillBetween>=e.length?null:e[t.fillBetween]:null}(e,t.getData());if(o){for(var i,a,r,s,l,c,u,p,h=n.pointsize,d=n.points,f=o.datapoints.pointsize,m=o.datapoints.points,g=[],x=e.lines.show,v=2<h&&n.format[2].y,b=x&&e.lines.steps,y=!0,w=0,T=0;!(w>=d.length);){if(u=g.length,null==d[w]){for(p=0;p<h;++p)g.push(d[w+p]);w+=h}else if(T>=m.length){if(!x)for(p=0;p<h;++p)g.push(d[w+p]);w+=h}else if(null==m[T]){for(p=0;p<h;++p)g.push(null);y=!0,T+=f}else{if(i=d[w],a=d[w+1],s=m[T],l=m[T+1],c=0,i===s){for(p=0;p<h;++p)g.push(d[w+p]);c=l,w+=h,T+=f}else if(s<i){if(x&&0<w&&null!=d[w-h]){for(r=a+(d[w-h+1]-a)*(s-i)/(d[w-h]-i),g.push(s),g.push(r),p=2;p<h;++p)g.push(d[w+p]);c=l}T+=f}else{if(y&&x){w+=h;continue}for(p=0;p<h;++p)g.push(d[w+p]);x&&0<T&&null!=m[T-f]&&(c=l+(m[T-f+1]-l)*(i-s)/(m[T-f]-s)),w+=h}y=!1,u!==g.length&&v&&(g[u+2]=c)}if(b&&u!==g.length&&0<u&&null!==g[u]&&g[u]!==g[u-h]&&g[u+1]!==g[u-h+1]){for(p=0;p<h;++p)g[u+h+p]=g[u+p];g[u+1]=g[u-h+1]}}n.points=g}}})},options:{series:{fillBetween:null}},name:\"fillbetween\",version:\"1.0\"}),function(s){function e(t,e,n,o){var i=\"categories\"===e.xaxis.options.mode,a=\"categories\"===e.yaxis.options.mode;if(i||a){var r=o.format;if(!r){var s=e;if((r=[]).push({x:!0,number:!0,required:!0,computeRange:!0}),r.push({y:!0,number:!0,required:!0,computeRange:!0}),s.bars.show||s.lines.show&&s.lines.fill){var l=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);r.push({y:!0,number:!0,required:!1,defaultValue:0,computeRange:l}),s.bars.horizontal&&(delete r[r.length-1].y,r[r.length-1].x=!0)}o.format=r}for(var c=0;c<r.length;++c)r[c].x&&i&&(r[c].number=!1),r[c].y&&a&&(r[c].number=!1,r[c].computeRange=!1)}}function l(t){var e=[];for(var n in t.categories){var o=t.categories[n];o>=t.min&&o<=t.max&&e.push([o,n])}return e.sort(function(t,e){return t[0]-e[0]}),e}function o(t,e,n){if(\"categories\"===t[e].options.mode){if(!t[e].categories){var o={},i=t[e].options.categories||{};if(s.isArray(i))for(var a=0;a<i.length;++a)o[i[a]]=a;else for(var r in i)o[r]=i[r];t[e].categories=o}t[e].options.ticks||(t[e].options.ticks=l),function(t,e,n){for(var o=t.points,i=t.pointsize,a=t.format,r=e.charAt(0),s=function(t){var e=-1;for(var n in t)t[n]>e&&(e=t[n]);return e+1}(n),l=0;l<o.length;l+=i)if(null!=o[l])for(var c=0;c<i;++c){var u=o[l+c];null!=u&&a[c][r]&&(u in n||(n[u]=s,++s),o[l+c]=n[u])}}(n,e,t[e].categories)}}function n(t,e,n){o(e,\"xaxis\",n),o(e,\"yaxis\",n)}s.plot.plugins.push({init:function(t){t.hooks.processRawData.push(e),t.hooks.processDatapoints.push(n)},options:{xaxis:{categories:null},yaxis:{categories:null}},name:\"categories\",version:\"1.0\"})}(jQuery),jQuery.plot.plugins.push({init:function(t){t.hooks.processDatapoints.push(function(t,e,n){if(null!=e.stack&&!1!==e.stack){var o=e.bars.show||e.lines.show&&e.lines.fill,i=2<n.pointsize&&(e.bars.horizontal?n.format[2].x:n.format[2].y);o&&!i&&function(t,e){for(var n=[],o=0;o<e.points.length;o+=2)n.push(e.points[o]),n.push(e.points[o+1]),n.push(0);e.format.push({x:t.bars.horizontal,y:!t.bars.horizontal,number:!0,required:!1,computeRange:\"none\"!==t.yaxis.options.autoScale,defaultValue:0}),e.points=n,e.pointsize=3}(e,n);var a=function(t,e){for(var n=null,o=0;o<e.length&&t!==e[o];++o)e[o].stack===t.stack&&(n=e[o]);return n}(e,t.getData());if(a){for(var r,s,l,c,u,p,h,d,f=n.pointsize,m=n.points,g=a.datapoints.pointsize,x=a.datapoints.points,v=[],b=e.lines.show,y=e.bars.horizontal,w=b&&e.lines.steps,T=!0,k=y?1:0,M=y?0:1,S=0,P=0;!(S>=m.length);){if(h=v.length,null==m[S]){for(d=0;d<f;++d)v.push(m[S+d]);S+=f}else if(P>=x.length){if(!b)for(d=0;d<f;++d)v.push(m[S+d]);S+=f}else if(null==x[P]){for(d=0;d<f;++d)v.push(null);T=!0,P+=g}else{if(r=m[S+k],s=m[S+M],c=x[P+k],u=x[P+M],p=0,r===c){for(d=0;d<f;++d)v.push(m[S+d]);v[h+M]+=u,p=u,S+=f,P+=g}else if(c<r){if(b&&0<S&&null!=m[S-f]){for(l=s+(m[S-f+M]-s)*(c-r)/(m[S-f+k]-r),v.push(c),v.push(l+u),d=2;d<f;++d)v.push(m[S+d]);p=u}P+=g}else{if(T&&b){S+=f;continue}for(d=0;d<f;++d)v.push(m[S+d]);b&&0<P&&null!=x[P-g]&&(p=u+(x[P-g+M]-u)*(r-c)/(x[P-g+k]-c)),v[h+M]+=p,S+=f}T=!1,h!==v.length&&o&&(v[h+2]+=p)}if(w&&h!==v.length&&0<h&&null!==v[h]&&v[h]!==v[h-f]&&v[h+1]!==v[h-f+1]){for(d=0;d<f;++d)v[h+f+d]=v[h+d];v[h+1]=v[h-f+1]}}n.points=v}}})},options:{series:{stack:null}},name:\"stack\",version:\"1.2\"}),function(c){var m=c.plot.uiConstants.ZOOM_DISTANCE_MARGIN;function e(u,t){var o,i,a,p,h={zoomEnable:!1,prevDistance:null,prevTapTime:0,prevPanPosition:{x:0,y:0},prevTapPosition:{x:0,y:0}},d={prevTouchedAxis:\"none\",currentTouchedAxis:\"none\",touchedAxis:null,navigationConstraint:\"unconstrained\",initialState:null},n=t.pan.interactive&&\"manual\"===t.pan.touchMode,r=\"smartLock\"===t.pan.touchMode,s=t.pan.interactive&&(r||\"smart\"===t.pan.touchMode);function f(t,e,n){d.touchedAxis=function(t,e,n,o){{if(\"pinchstart\"!==e.type)return\"panstart\"===e.type?t.getTouchedAxis(e.detail.touches[0].pageX,e.detail.touches[0].pageY):\"pinchend\"===e.type?t.getTouchedAxis(e.detail.touches[0].pageX,e.detail.touches[0].pageY):o.touchedAxis;var i=t.getTouchedAxis(e.detail.touches[0].pageX,e.detail.touches[0].pageY),a=t.getTouchedAxis(e.detail.touches[1].pageX,e.detail.touches[1].pageY);if(i.length===a.length&&i.toString()===a.toString())return i}}(u,t,0,d),g(d)?d.navigationConstraint=\"unconstrained\":d.navigationConstraint=\"axisConstrained\"}o={start:function(t){if(f(t,\"pan\",h),l(t,\"pan\",h,d),s){var e=y(t,\"pan\");d.initialState=u.navigationState(e.x,e.y)}},drag:function(t){if(f(t,\"pan\",h),s){var e=y(t,\"pan\");u.smartPan({x:d.initialState.startPageX-e.x,y:d.initialState.startPageY-e.y},d.initialState,d.touchedAxis,!1,r)}else n&&(u.pan({left:-b(t,\"pan\",h).x,top:-b(t,\"pan\",h).y,axes:d.touchedAxis}),v(t,\"pan\",h,d))},end:function(t){var e;f(t,\"pan\",h),s&&u.smartPan.end(),e=t,h.zoomEnable&&1===e.detail.touches.length&&updateprevPanPosition(t,\"pan\",h,d)}},i={start:function(t){var e;p&&(clearTimeout(p),p=null),f(t,\"pinch\",h),e=t,h.prevDistance=x(e),l(t,\"pinch\",h,d)},drag:function(c){p||(p=setTimeout(function(){f(c,\"pinch\",h),u.pan({left:-b(c,\"pinch\",h).x,top:-b(c,\"pinch\",h).y,axes:d.touchedAxis}),v(c,\"pinch\",h,d);var t,e,n,o,i,a,r,s,l=x(c);(h.zoomEnable||Math.abs(l-h.prevDistance)>m)&&(e=c,n=h,o=d,i=(t=u).offset(),a={left:0,top:0},r=x(e)/n.prevDistance,s=x(e),a.left=y(e,\"pinch\").x-i.left,a.top=y(e,\"pinch\").y-i.top,t.zoom({center:a,amount:r,axes:o.touchedAxis}),n.prevDistance=s,h.zoomEnable=!0),p=null},1e3/60))},end:function(t){p&&(clearTimeout(p),p=null),f(t,\"pinch\",h),h.prevDistance=null}},a={recenterPlot:function(t){t&&t.detail&&\"touchstart\"===t.detail.type&&function(t,e,n,o){if(a=t,r=e,s=o,l=a.getTouchedAxis(r.detail.firstTouch.x,r.detail.firstTouch.y),void 0!==l[0]&&(s.prevTouchedAxis=l[0].direction),void 0!==(l=a.getTouchedAxis(r.detail.secondTouch.x,r.detail.secondTouch.y))[0]&&(s.touchedAxis=l,s.currentTouchedAxis=l[0].direction),g(s)&&(s.touchedAxis=null,s.prevTouchedAxis=\"none\",s.currentTouchedAxis=\"none\"),\"x\"===o.currentTouchedAxis&&\"x\"===o.prevTouchedAxis||\"y\"===o.currentTouchedAxis&&\"y\"===o.prevTouchedAxis||\"none\"===o.currentTouchedAxis&&\"none\"===o.prevTouchedAxis){var i;t.recenter({axes:o.touchedAxis}),i=o.touchedAxis?new c.Event(\"re-center\",{detail:{axisTouched:o.touchedAxis}}):new c.Event(\"re-center\",{detail:e}),t.getPlaceholder().trigger(i)}var a,r,s,l}(u,t,0,d)}},!0!==t.pan.enableTouch&&!0!==t.zoom.enableTouch||(u.hooks.bindEvents.push(function(t,e){var n=t.getOptions();n.zoom.interactive&&n.zoom.enableTouch&&(e[0].addEventListener(\"pinchstart\",i.start,!1),e[0].addEventListener(\"pinchdrag\",i.drag,!1),e[0].addEventListener(\"pinchend\",i.end,!1)),n.pan.interactive&&n.pan.enableTouch&&(e[0].addEventListener(\"panstart\",o.start,!1),e[0].addEventListener(\"pandrag\",o.drag,!1),e[0].addEventListener(\"panend\",o.end,!1)),n.recenter.interactive&&n.recenter.enableTouch&&e[0].addEventListener(\"doubletap\",a.recenterPlot,!1)}),u.hooks.shutdown.push(function(t,e){e[0].removeEventListener(\"panstart\",o.start),e[0].removeEventListener(\"pandrag\",o.drag),e[0].removeEventListener(\"panend\",o.end),e[0].removeEventListener(\"pinchstart\",i.start),e[0].removeEventListener(\"pinchdrag\",i.drag),e[0].removeEventListener(\"pinchend\",i.end),e[0].removeEventListener(\"doubletap\",a.recenterPlot)}))}function g(t){return!t.touchedAxis||0===t.touchedAxis.length}function l(t,e,n,o){var i,a=y(t,e);switch(o.navigationConstraint){case\"unconstrained\":o.touchedAxis=null,n.prevTapPosition={x:n.prevPanPosition.x,y:n.prevPanPosition.y},n.prevPanPosition={x:a.x,y:a.y};break;case\"axisConstrained\":i=o.touchedAxis[0].direction,o.currentTouchedAxis=i,n.prevTapPosition[i]=n.prevPanPosition[i],n.prevPanPosition[i]=a[i]}}function x(t){var e,n,o,i,a=t.detail.touches[0],r=t.detail.touches[1];return e=a.pageX,n=a.pageY,o=r.pageX,i=r.pageY,Math.sqrt((e-o)*(e-o)+(n-i)*(n-i))}function v(t,e,n,o){var i=y(t,e);switch(o.navigationConstraint){case\"unconstrained\":n.prevPanPosition.x=i.x,n.prevPanPosition.y=i.y;break;case\"axisConstrained\":n.prevPanPosition[o.currentTouchedAxis]=i[o.currentTouchedAxis]}}function b(t,e,n){var o=y(t,e);return{x:o.x-n.prevPanPosition.x,y:o.y-n.prevPanPosition.y}}function y(t,e){return\"pinch\"===e?{x:(t.detail.touches[0].pageX+t.detail.touches[1].pageX)/2,y:(t.detail.touches[0].pageY+t.detail.touches[1].pageY)/2}:{x:t.detail.touches[0].pageX,y:t.detail.touches[0].pageY}}c.plot.plugins.push({init:function(t){t.hooks.processOptions.push(e)},options:{zoom:{enableTouch:!1},pan:{enableTouch:!1,touchMode:\"manual\"},recenter:{enableTouch:!0}},name:\"navigateTouch\",version:\"0.3\"})}(jQuery),function(y){var w=y.plot.browser,e=\"click\",T=\"hover\";y.plot.plugins.push({init:function(g){var n,x=[];function o(t){var e=g.getOptions(),n=new CustomEvent(\"mouseevent\");return n.pageX=t.detail.changedTouches[0].pageX,n.pageY=t.detail.changedTouches[0].pageY,n.clientX=t.detail.changedTouches[0].clientX,n.clientY=t.detail.changedTouches[0].clientY,e.grid.hoverable&&i(n,T,30),!1}function i(t,e,n){var o=g.getData();if(void 0!==t&&0<o.length&&void 0!==o[0].xaxis.c2p&&void 0!==o[0].yaxis.c2p){var i=e+\"able\";c(\"plot\"+e,t,function(t){return!1!==o[t][i]},n)}}function a(t){n=t,i(g.getPlaceholder()[0].lastMouseMoveEvent=t,T)}function r(t){n=void 0,g.getPlaceholder()[0].lastMouseMoveEvent=void 0,c(\"plothover\",t,function(t){return!1})}function s(t){i(t,e)}function l(){g.unhighlight(),g.getPlaceholder().trigger(\"plothovercleanup\")}function c(t,e,n,o){var i=g.getOptions(),a=g.offset(),r=w.getPageXY(e),s=r.X-a.left,l=r.Y-a.top,c=g.c2p({left:s,top:l}),u=void 0!==o?o:i.grid.mouseActiveRadius;c.pageX=r.X,c.pageY=r.Y;for(var p=g.findNearbyItems(s,l,n,u),h=p[0],d=1;d<p.length;++d)(void 0===h.distance||p[d].distance<h.distance)&&(h=p[d]);if(h?(h.pageX=parseInt(h.series.xaxis.p2c(h.datapoint[0])+a.left,10),h.pageY=parseInt(h.series.yaxis.p2c(h.datapoint[1])+a.top,10)):h=null,i.grid.autoHighlight){for(var f=0;f<x.length;++f){var m=x[f];(m.auto!==t||h&&m.series===h.series&&m.point[0]===h.datapoint[0]&&m.point[1]===h.datapoint[1])&&h||b(m.series,m.point)}h&&v(h.series,h.datapoint,t)}g.getPlaceholder().trigger(t,[c,h,p])}function v(t,e,n){if(\"number\"==typeof t&&(t=g.getData()[t]),\"number\"==typeof e){var o=t.datapoints.pointsize;e=t.datapoints.points.slice(o*e,o*(e+1))}var i=u(t,e);-1===i?(x.push({series:t,point:e,auto:n}),g.triggerRedrawOverlay()):n||(x[i].auto=!1)}function b(t,e){if(null==t&&null==e)return x=[],void g.triggerRedrawOverlay();if(\"number\"==typeof t&&(t=g.getData()[t]),\"number\"==typeof e){var n=t.datapoints.pointsize;e=t.datapoints.points.slice(n*e,n*(e+1))}var o=u(t,e);-1!==o&&(x.splice(o,1),g.triggerRedrawOverlay())}function u(t,e){for(var n=0;n<x.length;++n){var o=x[n];if(o.series===t&&o.point[0]===e[0]&&o.point[1]===e[1])return n}return-1}function p(){l(),i(n,T)}function h(){i(n,T)}function d(t,e,n){var o,i,a=t.getPlotOffset();for(e.save(),e.translate(a.left,a.top),o=0;o<x.length;++o)(i=x[o]).series.bars.show?m(i.series,i.point,e):f(i.series,i.point,e,t);e.restore()}function f(t,e,n,o){var i=e[0],a=e[1],r=t.xaxis,s=t.yaxis,l=\"string\"==typeof t.highlightColor?t.highlightColor:y.color.parse(t.color).scale(\"a\",.5).toString();if(!(i<r.min||i>r.max||a<s.min||a>s.max)){var c=t.points.radius+t.points.lineWidth/2;n.lineWidth=c,n.strokeStyle=l;var u=1.5*c;i=r.p2c(i),a=s.p2c(a),n.beginPath();var p=t.points.symbol;\"circle\"===p?n.arc(i,a,u,0,2*Math.PI,!1):\"string\"==typeof p&&o.drawSymbol&&o.drawSymbol[p]&&o.drawSymbol[p](n,i,a,u,!1),n.closePath(),n.stroke()}}function m(t,e,n){var o,i=\"string\"==typeof t.highlightColor?t.highlightColor:y.color.parse(t.color).scale(\"a\",.5).toString(),a=i,r=t.bars.barWidth[0]||t.bars.barWidth;switch(t.bars.align){case\"left\":o=0;break;case\"right\":o=-r;break;default:o=-r/2}n.lineWidth=t.bars.lineWidth,n.strokeStyle=i;var s=t.bars.fillTowards||0,l=s>t.yaxis.min?Math.min(t.yaxis.max,s):t.yaxis.min;y.plot.drawSeries.drawBar(e[0],e[1],e[2]||l,o,o+r,function(){return a},t.xaxis,t.yaxis,n,t.bars.horizontal,t.bars.lineWidth)}g.hooks.bindEvents.push(function(t,e){var n=t.getOptions();(n.grid.hoverable||n.grid.clickable)&&(e[0].addEventListener(\"touchevent\",l,!1),e[0].addEventListener(\"tap\",o,!1)),n.grid.clickable&&e.bind(\"click\",s),n.grid.hoverable&&(e.bind(\"mousemove\",a),e.bind(\"mouseleave\",r))}),g.hooks.shutdown.push(function(t,e){e[0].removeEventListener(\"tap\",o),e[0].removeEventListener(\"touchevent\",l),e.unbind(\"mousemove\",a),e.unbind(\"mouseleave\",r),e.unbind(\"click\",s),x=[]}),g.hooks.processOptions.push(function(t,e){t.highlight=v,t.unhighlight=b,(e.grid.hoverable||e.grid.clickable)&&(t.hooks.drawOverlay.push(d),t.hooks.processDatapoints.push(p),t.hooks.setupGrid.push(h)),n=t.getPlaceholder()[0].lastMouseMoveEvent})},options:{grid:{hoverable:!1,clickable:!1}},name:\"hover\",version:\"0.1\"})}(jQuery),function(t){function e(n,t){var o,i={twoTouches:!1,currentTapStart:{x:0,y:0},currentTapEnd:{x:0,y:0},prevTap:{x:0,y:0},currentTap:{x:0,y:0},interceptedLongTap:!1,isUnsupportedGesture:!1,prevTapTime:null,tapStartTime:null,longTapTriggerId:null},a=20,r=500;function s(t){var e=n.getOptions();(e.pan.active||e.zoom.active)&&(3<=t.touches.length?i.isUnsupportedGesture=!0:i.isUnsupportedGesture=!1,o.dispatchEvent(new CustomEvent(\"touchevent\",{detail:t})),v(t)?l(t,\"pinch\"):(l(t,\"pan\"),x(t)||(function(t){var e=(new Date).getTime(),n=e-i.prevTapTime;if(0<=n&&n<r&&g(i.prevTap.x,i.prevTap.y,i.currentTap.x,i.currentTap.y)<a)return t.firstTouch=i.prevTap,t.secondTouch=i.currentTap,!0;return i.prevTapTime=e,!1}(t)&&l(t,\"doubleTap\"),l(t,\"tap\"),l(t,\"longTap\"))))}function l(t,e){switch(e){case\"pan\":c[t.type](t);break;case\"pinch\":u[t.type](t);break;case\"doubleTap\":p.onDoubleTap(t);break;case\"longTap\":h[t.type](t);break;case\"tap\":d[t.type](t)}}var c={touchstart:function(t){var e;i.prevTap={x:i.currentTap.x,y:i.currentTap.y},f(t),e=t,i.tapStartTime=(new Date).getTime(),i.interceptedLongTap=!1,i.currentTapStart={x:e.touches[0].pageX,y:e.touches[0].pageY},i.currentTapEnd={x:e.touches[0].pageX,y:e.touches[0].pageY},o.dispatchEvent(new CustomEvent(\"panstart\",{detail:t}))},touchmove:function(t){var e;m(t),f(t),e=t,i.currentTapEnd={x:e.touches[0].pageX,y:e.touches[0].pageY},i.isUnsupportedGesture||o.dispatchEvent(new CustomEvent(\"pandrag\",{detail:t}))},touchend:function(t){var e;m(t),x(t)?(o.dispatchEvent(new CustomEvent(\"pinchend\",{detail:t})),o.dispatchEvent(new CustomEvent(\"panstart\",{detail:t}))):(e=t).touches&&0===e.touches.length&&o.dispatchEvent(new CustomEvent(\"panend\",{detail:t}))}},u={touchstart:function(t){o.dispatchEvent(new CustomEvent(\"pinchstart\",{detail:t}))},touchmove:function(t){m(t),i.twoTouches=v(t),i.isUnsupportedGesture||o.dispatchEvent(new CustomEvent(\"pinchdrag\",{detail:t}))},touchend:function(t){m(t)}},p={onDoubleTap:function(t){m(t),o.dispatchEvent(new CustomEvent(\"doubletap\",{detail:t}))}},h={touchstart:function(t){h.waitForLongTap(t)},touchmove:function(t){},touchend:function(t){i.longTapTriggerId&&(clearTimeout(i.longTapTriggerId),i.longTapTriggerId=null)},isLongTap:function(t){return 1500<=(new Date).getTime()-i.tapStartTime&&!i.interceptedLongTap&&g(i.currentTapStart.x,i.currentTapStart.y,i.currentTapEnd.x,i.currentTapEnd.y)<20&&(i.interceptedLongTap=!0)},waitForLongTap:function(t){i.longTapTriggerId||(i.longTapTriggerId=setTimeout(function(){h.isLongTap(t)&&o.dispatchEvent(new CustomEvent(\"longtap\",{detail:t})),i.longTapTriggerId=null},1500))}},d={touchstart:function(t){i.tapStartTime=(new Date).getTime()},touchmove:function(t){},touchend:function(t){d.isTap(t)&&(o.dispatchEvent(new CustomEvent(\"tap\",{detail:t})),m(t))},isTap:function(t){return(new Date).getTime()-i.tapStartTime<=125&&g(i.currentTapStart.x,i.currentTapStart.y,i.currentTapEnd.x,i.currentTapEnd.y)<20}};function f(t){i.currentTap={x:t.touches[0].pageX,y:t.touches[0].pageY}}function m(t){i.isUnsupportedGesture||(t.preventDefault(),n.getOptions().propagateSupportedGesture||t.stopPropagation())}function g(t,e,n,o){return Math.sqrt((t-n)*(t-n)+(e-o)*(e-o))}function x(t){return i.twoTouches&&1===t.touches.length}function v(t){return!!(t.touches&&2<=t.touches.length&&t.touches[0].target===n.getEventHolder()&&t.touches[1].target===n.getEventHolder())}(!0===t.pan.enableTouch||t.zoom.enableTouch)&&(n.hooks.bindEvents.push(function(t,e){o=e[0],e[0].addEventListener(\"touchstart\",s,!1),e[0].addEventListener(\"touchmove\",s,!1),e[0].addEventListener(\"touchend\",s,!1)}),n.hooks.shutdown.push(function(t,e){e[0].removeEventListener(\"touchstart\",s),e[0].removeEventListener(\"touchmove\",s),e[0].removeEventListener(\"touchend\",s),i.longTapTriggerId&&(clearTimeout(i.longTapTriggerId),i.longTapTriggerId=null)}))}jQuery.plot.plugins.push({init:function(t){t.hooks.processOptions.push(e)},options:{propagateSupportedGesture:!1},name:\"navigateTouch\",version:\"0.3\"})}(),function(e){var y=e.plot.saturated.floorInBase,i=function(t,e){var n=new t(e),o=n.setTime.bind(n);n.update=function(t){o(t),t=Math.round(1e3*t)/1e3,this.microseconds=1e3*(t-Math.floor(t))};var i=n.getTime.bind(n);return n.getTime=function(){return i()+this.microseconds/1e3},n.setTime=function(t){this.update(t)},n.getMicroseconds=function(){return this.microseconds},n.setMicroseconds=function(t){var e=i()+t/1e3;this.update(e)},n.setUTCMicroseconds=function(t){this.setMicroseconds(t)},n.getUTCMicroseconds=function(){return this.getMicroseconds()},n.microseconds=null,n.microEpoch=null,n.update(e),n};function d(t,e,n,o){if(\"function\"==typeof t.strftime)return t.strftime(e);var i,a=function(t,e){return e=\"\"+(null==e?\"0\":e),1===(t=\"\"+t).length?e+t:t},r=function(t,e,n){var o,i=1e3*t+e;if(n<6&&0<n){var a=parseFloat(\"1e\"+(n-6));o=(\"00000\"+(i=Math.round(Math.round(i*a)/a))).slice(-6,-(6-n))}else o=(\"00000\"+(i=Math.round(i))).slice(-6);return o},s=[],l=!1,c=t.getHours(),u=c<12;n||(n=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]),o||(o=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]),i=12<c?c-12:0===c?12:c;for(var p=-1,h=0;h<e.length;++h){var d=e.charAt(h);if(!isNaN(Number(d))&&0<Number(d))p=Number(d);else if(l){switch(d){case\"a\":d=\"\"+o[t.getDay()];break;case\"b\":d=\"\"+n[t.getMonth()];break;case\"d\":d=a(t.getDate());break;case\"e\":d=a(t.getDate(),\" \");break;case\"h\":case\"H\":d=a(c);break;case\"I\":d=a(i);break;case\"l\":d=a(i,\" \");break;case\"m\":d=a(t.getMonth()+1);break;case\"M\":d=a(t.getMinutes());break;case\"q\":d=\"\"+(Math.floor(t.getMonth()/3)+1);break;case\"S\":d=a(t.getSeconds());break;case\"s\":d=\"\"+r(t.getMilliseconds(),t.getMicroseconds(),p);break;case\"y\":d=a(t.getFullYear()%100);break;case\"Y\":d=\"\"+t.getFullYear();break;case\"p\":d=u?\"am\":\"pm\";break;case\"P\":d=u?\"AM\":\"PM\";break;case\"w\":d=\"\"+t.getDay()}s.push(d),l=!1}else\"%\"===d?l=!0:s.push(d)}return s.join(\"\")}function a(t){function e(t,e,n,o){t[e]=function(){return n[o].apply(n,arguments)}}var n={date:t};void 0!==t.strftime&&e(n,\"strftime\",t,\"strftime\"),e(n,\"getTime\",t,\"getTime\"),e(n,\"setTime\",t,\"setTime\");for(var o=[\"Date\",\"Day\",\"FullYear\",\"Hours\",\"Minutes\",\"Month\",\"Seconds\",\"Milliseconds\",\"Microseconds\"],i=0;i<o.length;i++)e(n,\"get\"+o[i],t,\"getUTC\"+o[i]),e(n,\"set\"+o[i],t,\"setUTC\"+o[i]);return n}function w(t,e){var n=864e13;if(e&&\"seconds\"===e.timeBase?t*=1e3:\"microseconds\"===e.timeBase&&(t/=1e3),n<t?t=n:t<-n&&(t=-n),\"browser\"===e.timezone)return i(Date,t);if(e.timezone&&\"utc\"!==e.timezone){if(\"undefined\"==typeof timezoneJS||void 0===timezoneJS.Date)return a(i(Date,t));var o=i(timezoneJS.Date,t);return o.setTimezone(e.timezone),o.setTime(t),o}return a(i(Date,t))}var T={microsecond:1e-6,millisecond:.001,second:1,minute:60,hour:3600,day:86400,month:2592e3,quarter:7776e3,year:525949.2*60},k={microsecond:.001,millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,month:2592e6,quarter:7776e6,year:525949.2*60*1e3},M={microsecond:1,millisecond:1e3,second:1e6,minute:6e7,hour:36e8,day:864e8,month:2592e9,quarter:7776e9,year:525949.2*60*1e6},t=[[1,\"microsecond\"],[2,\"microsecond\"],[5,\"microsecond\"],[10,\"microsecond\"],[25,\"microsecond\"],[50,\"microsecond\"],[100,\"microsecond\"],[250,\"microsecond\"],[500,\"microsecond\"],[1,\"millisecond\"],[2,\"millisecond\"],[5,\"millisecond\"],[10,\"millisecond\"],[25,\"millisecond\"],[50,\"millisecond\"],[100,\"millisecond\"],[250,\"millisecond\"],[500,\"millisecond\"],[1,\"second\"],[2,\"second\"],[5,\"second\"],[10,\"second\"],[30,\"second\"],[1,\"minute\"],[2,\"minute\"],[5,\"minute\"],[10,\"minute\"],[30,\"minute\"],[1,\"hour\"],[2,\"hour\"],[4,\"hour\"],[8,\"hour\"],[12,\"hour\"],[1,\"day\"],[2,\"day\"],[3,\"day\"],[.25,\"month\"],[.5,\"month\"],[1,\"month\"],[2,\"month\"]],S=t.concat([[3,\"month\"],[6,\"month\"],[1,\"year\"]]),P=t.concat([[1,\"quarter\"],[2,\"quarter\"],[1,\"year\"]]);function n(t){var e,n=t.options,o=[],i=w(t.min,n),a=0,r=n.tickSize&&\"quarter\"===n.tickSize[1]||n.minTickSize&&\"quarter\"===n.minTickSize[1]?P:S;e=\"seconds\"===n.timeBase?T:\"microseconds\"===n.timeBase?M:k,null!==n.minTickSize&&void 0!==n.minTickSize&&(a=\"number\"==typeof n.tickSize?n.tickSize:n.minTickSize[0]*e[n.minTickSize[1]]);for(var s=0;s<r.length-1&&!(t.delta<(r[s][0]*e[r[s][1]]+r[s+1][0]*e[r[s+1][1]])/2&&r[s][0]*e[r[s][1]]>=a);++s);var l=r[s][0],c=r[s][1];if(\"year\"===c){if(null!==n.minTickSize&&void 0!==n.minTickSize&&\"year\"===n.minTickSize[1])l=Math.floor(n.minTickSize[0]);else{var u=parseFloat(\"1e\"+Math.floor(Math.log(t.delta/e.year)/Math.LN10)),p=t.delta/e.year/u;l=p<1.5?1:p<3?2:p<7.5?5:10,l*=u}l<1&&(l=1)}t.tickSize=n.tickSize||[l,c];var h=t.tickSize[0],d=h*e[c=t.tickSize[1]];\"microsecond\"===c?i.setMicroseconds(y(i.getMicroseconds(),h)):\"millisecond\"===c?i.setMilliseconds(y(i.getMilliseconds(),h)):\"second\"===c?i.setSeconds(y(i.getSeconds(),h)):\"minute\"===c?i.setMinutes(y(i.getMinutes(),h)):\"hour\"===c?i.setHours(y(i.getHours(),h)):\"month\"===c?i.setMonth(y(i.getMonth(),h)):\"quarter\"===c?i.setMonth(3*y(i.getMonth()/3,h)):\"year\"===c&&i.setFullYear(y(i.getFullYear(),h)),d>=e.millisecond&&(d>=e.second?i.setMicroseconds(0):i.setMicroseconds(1e3*i.getMilliseconds())),d>=e.minute&&i.setSeconds(0),d>=e.hour&&i.setMinutes(0),d>=e.day&&i.setHours(0),d>=4*e.day&&i.setDate(1),d>=2*e.month&&i.setMonth(y(i.getMonth(),3)),d>=2*e.quarter&&i.setMonth(y(i.getMonth(),6)),d>=e.year&&i.setMonth(0);var f,m,g=0,x=Number.NaN;do{if(m=x,f=i.getTime(),x=n&&\"seconds\"===n.timeBase?f/1e3:n&&\"microseconds\"===n.timeBase?1e3*f:f,o.push(x),\"month\"===c||\"quarter\"===c)if(h<1){i.setDate(1);var v=i.getTime();i.setMonth(i.getMonth()+(\"quarter\"===c?3:1));var b=i.getTime();i.setTime(x+g*e.hour+(b-v)*h),g=i.getHours(),i.setHours(0)}else i.setMonth(i.getMonth()+h*(\"quarter\"===c?3:1));else\"year\"===c?i.setFullYear(i.getFullYear()+h):\"seconds\"===n.timeBase?i.setTime(1e3*(x+d)):\"microseconds\"===n.timeBase?i.setTime((x+d)/1e3):i.setTime(x+d)}while(x<t.max&&x!==m);return o}e.plot.plugins.push({init:function(t){t.hooks.processOptions.push(function(t){e.each(t.getAxes(),function(t,e){var h=e.options;if(\"time\"===h.mode){if(e.tickGenerator=n,\"tickFormatter\"in h&&\"function\"==typeof h.tickFormatter)return;e.tickFormatter=function(t,e){var n=w(t,e.options);if(null!=h.timeformat)return d(n,h.timeformat,h.monthNames,h.dayNames);var o,i=e.options.tickSize&&\"quarter\"===e.options.tickSize[1]||e.options.minTickSize&&\"quarter\"===e.options.minTickSize[1];o=\"seconds\"===h.timeBase?T:\"microseconds\"===h.timeBase?M:k;var a,r,s=e.tickSize[0]*o[e.tickSize[1]],l=e.max-e.min,c=h.twelveHourClock?\" %p\":\"\",u=h.twelveHourClock?\"%I\":\"%H\";if(a=\"seconds\"===h.timeBase?1:\"microseconds\"===h.timeBase?1e6:1e3,s<o.second){var p=-Math.floor(Math.log10(s/a));-1<String(s).indexOf(\"25\")&&p++,r=\"%S.%\"+p+\"s\"}else r=s<o.minute?u+\":%M:%S\"+c:s<o.day?l<2*o.day?u+\":%M\"+c:\"%b %d \"+u+\":%M\"+c:s<o.month?\"%b %d\":i&&s<o.quarter||!i&&s<o.year?l<o.year?\"%b\":\"%b %Y\":i&&s<o.year?l<o.year?\"Q%q\":\"Q%q %Y\":\"%Y\";return d(n,r,h.monthNames,h.dayNames)}}})})},options:{xaxis:{timezone:null,timeformat:null,twelveHourClock:!1,monthNames:null,timeBase:\"seconds\"},yaxis:{timeBase:\"seconds\"}},name:\"time\",version:\"1.0\"}),e.plot.formatDate=d,e.plot.dateGenerator=w,e.plot.dateTickGenerator=n,e.plot.makeUtcWrapper=a}(jQuery),function(n){function s(t,e,n,o,i,a){this.axisName=t,this.position=e,this.padding=n,this.placeholder=o,this.axisLabel=i,this.surface=a,this.width=0,this.height=0,this.elem=null}s.prototype.calculateSize=function(){var t=this.axisName+\"Label\",e=t+\"Layer\",n=t+\" axisLabels\",o=this.surface.getTextInfo(e,this.axisLabel,n);this.labelWidth=o.width,this.labelHeight=o.height,\"left\"===this.position||\"right\"===this.position?(this.width=this.labelHeight+this.padding,this.height=0):(this.width=0,this.height=this.labelHeight+this.padding)},s.prototype.transforms=function(t,e,n,o){var i,a,r=[];if(0===e&&0===n||((i=o.createSVGTransform()).setTranslate(e,n),r.push(i)),0!==t){a=o.createSVGTransform();var s=Math.round(this.labelWidth/2);a.setRotate(t,s,0),r.push(a)}return r},s.prototype.calculateOffsets=function(t){var e={x:0,y:0,degrees:0};return\"bottom\"===this.position?(e.x=t.left+t.width/2-this.labelWidth/2,e.y=t.top+t.height-this.labelHeight):\"top\"===this.position?(e.x=t.left+t.width/2-this.labelWidth/2,e.y=t.top):\"left\"===this.position?(e.degrees=-90,e.x=t.left-this.labelWidth/2,e.y=t.height/2+t.top):\"right\"===this.position&&(e.degrees=90,e.x=t.left+t.width-this.labelWidth/2,e.y=t.height/2+t.top),e.x=Math.round(e.x),e.y=Math.round(e.y),e},s.prototype.cleanup=function(){var t=this.axisName+\"Label\",e=t+\"Layer\",n=t+\" axisLabels\";this.surface.removeText(e,0,0,this.axisLabel,n)},s.prototype.draw=function(t){var e=this.axisName+\"Label\",n=e+\"Layer\",o=e+\" axisLabels\",i=this.calculateOffsets(t),a={position:\"absolute\",bottom:\"\",right:\"\",display:\"inline-block\",\"white-space\":\"nowrap\"},r=this.surface.getSVGLayer(n),s=this.transforms(i.degrees,i.x,i.y,r.parentNode);this.surface.addText(n,0,0,this.axisLabel,o,void 0,void 0,void 0,void 0,s),this.surface.render(),Object.keys(a).forEach(function(t){r.style[t]=a[t]})},n.plot.plugins.push({init:function(t){t.hooks.processOptions.push(function(t,e){if(e.axisLabels.show){var r={};t.hooks.axisReserveSpace.push(function(t,e){var n=e.options,o=e.direction+e.n;if(e.labelHeight+=e.boxPosition.centerY,e.labelWidth+=e.boxPosition.centerX,n&&n.axisLabel&&e.show){var i=void 0===n.axisLabelPadding?2:n.axisLabelPadding,a=r[o];a||(a=new s(o,n.position,i,t.getPlaceholder()[0],n.axisLabel,t.getSurface()),r[o]=a),a.calculateSize(),e.labelHeight+=a.height,e.labelWidth+=a.width}}),t.hooks.draw.push(function(t,e){n.each(t.getAxes(),function(t,e){var n=e.options;if(n&&n.axisLabel&&e.show){var o=e.direction+e.n;r[o].draw(e.box)}})}),t.hooks.shutdown.push(function(t,e){for(var n in r)r[n].cleanup()})}})},options:{axisLabels:{show:!0}},name:\"axisLabels\",version:\"3.0\"})}(jQuery),function(P){P.plot.plugins.push({init:function(c){var k={first:{x:-1,y:-1},second:{x:-1,y:-1},show:!1,currentMode:\"xy\",active:!1},i=P.plot.uiConstants.SNAPPING_CONSTANT,n={};function o(t){k.active&&(p(t),c.getPlaceholder().trigger(\"plotselecting\",[e()]))}function a(t){var e=c.getOptions();1===t.which&&null!==e.selection.mode&&(k.currentMode=\"xy\",document.body.focus(),void 0!==document.onselectstart&&null==n.onselectstart&&(n.onselectstart=document.onselectstart,document.onselectstart=function(){return!1}),void 0!==document.ondrag&&null==n.ondrag&&(n.ondrag=document.ondrag,document.ondrag=function(){return!1}),u(k.first,t),k.active=!0)}function r(t){return void 0!==document.onselectstart&&(document.onselectstart=n.onselectstart),void 0!==document.ondrag&&(document.ondrag=n.ondrag),k.active=!1,p(t),S()?s():(c.getPlaceholder().trigger(\"plotunselected\",[]),c.getPlaceholder().trigger(\"plotselecting\",[null])),!1}function e(){if(!S())return null;if(!k.show)return null;var i={},a={x:k.first.x,y:k.first.y},r={x:k.second.x,y:k.second.y};return\"x\"===M(c)&&(a.y=0,r.y=c.height()),\"y\"===M(c)&&(a.x=0,r.x=c.width()),P.each(c.getAxes(),function(t,e){if(e.used){var n=e.c2p(a[e.direction]),o=e.c2p(r[e.direction]);i[t]={from:Math.min(n,o),to:Math.max(n,o)}}}),i}function s(){var t=e();c.getPlaceholder().trigger(\"plotselected\",[t]),t.xaxis&&t.yaxis&&c.getPlaceholder().trigger(\"selected\",[{x1:t.xaxis.from,y1:t.yaxis.from,x2:t.xaxis.to,y2:t.yaxis.to}])}function l(t,e,n){return e<t?t:n<e?n:e}function M(t){var e=t.getOptions();return\"smart\"===e.selection.mode?k.currentMode:e.selection.mode}function u(t,e){var n=c.getPlaceholder().offset(),o=c.getPlotOffset();t.x=l(0,e.pageX-n.left-o.left,c.width()),t.y=l(0,e.pageY-n.top-o.top,c.height()),t!==k.first&&function(t){if(k.first){var e={x:t.x-k.first.x,y:t.y-k.first.y};Math.abs(e.x)<i?k.currentMode=\"y\":Math.abs(e.y)<i?k.currentMode=\"x\":k.currentMode=\"xy\"}}(t),\"y\"===M(c)&&(t.x=t===k.first?0:c.width()),\"x\"===M(c)&&(t.y=t===k.first?0:c.height())}function p(t){null!=t.pageX&&(u(k.second,t),S()?(k.show=!0,c.triggerRedrawOverlay()):h(!0))}function h(t){k.show&&(k.show=!1,k.currentMode=\"\",c.triggerRedrawOverlay(),t||c.getPlaceholder().trigger(\"plotunselected\",[]))}function d(t,e){var n,o,i,a,r=c.getAxes();for(var s in r)if((n=r[s]).direction===e&&(t[a=e+n.n+\"axis\"]||1!==n.n||(a=e+\"axis\"),t[a])){o=t[a].from,i=t[a].to;break}if(t[a]||(n=\"x\"===e?c.getXAxes()[0]:c.getYAxes()[0],o=t[e+\"1\"],i=t[e+\"2\"]),null!=o&&null!=i&&i<o){var l=o;o=i,i=l}return{from:o,to:i,axis:n}}function S(){var t=c.getOptions().selection.minSize;return Math.abs(k.second.x-k.first.x)>=t&&Math.abs(k.second.y-k.first.y)>=t}c.clearSelection=h,c.setSelection=function(t,e){var n;\"y\"===M(c)?(k.first.x=0,k.second.x=c.width()):(n=d(t,\"x\"),k.first.x=n.axis.p2c(n.from),k.second.x=n.axis.p2c(n.to)),\"x\"===M(c)?(k.first.y=0,k.second.y=c.height()):(n=d(t,\"y\"),k.first.y=n.axis.p2c(n.from),k.second.y=n.axis.p2c(n.to)),k.show=!0,c.triggerRedrawOverlay(),!e&&S()&&s()},c.getSelection=e,c.hooks.bindEvents.push(function(t,e){null!=t.getOptions().selection.mode&&(t.addEventHandler(\"dragstart\",a,e,0),t.addEventHandler(\"drag\",o,e,0),t.addEventHandler(\"dragend\",r,e,0))}),c.hooks.drawOverlay.push(function(t,e){if(k.show&&S()){var n=t.getPlotOffset(),o=t.getOptions();e.save(),e.translate(n.left,n.top);var i=P.color.parse(o.selection.color),a=o.selection.visualization,r=o.selection.displaySelectionDecorations,s=1;\"fill\"===a&&(s=.8),e.strokeStyle=i.scale(\"a\",s).toString(),e.lineWidth=1,e.lineJoin=o.selection.shape,e.fillStyle=i.scale(\"a\",.4).toString();var l=Math.min(k.first.x,k.second.x)+.5,c=l,u=Math.min(k.first.y,k.second.y)+.5,p=u,h=Math.abs(k.second.x-k.first.x)-1,d=Math.abs(k.second.y-k.first.y)-1;\"x\"===M(t)&&(d+=u,u=0),\"y\"===M(t)&&(h+=l,l=0),\"fill\"===a?(e.fillRect(l,u,h,d),e.strokeRect(l,u,h,d)):(e.fillRect(0,0,t.width(),t.height()),e.clearRect(l,u,h,d),r&&(f=e,m=l,g=u,x=h,v=d,b=c,y=p,w=M(t),T=Math.max(0,Math.min(15,x/2-2,v/2-2)),f.fillStyle=\"#ffffff\",\"xy\"===w&&(f.beginPath(),f.moveTo(m,g+T),f.lineTo(m-3,g+T),f.lineTo(m-3,g-3),f.lineTo(m+T,g-3),f.lineTo(m+T,g),f.lineTo(m,g),f.closePath(),f.moveTo(m,g+v-T),f.lineTo(m-3,g+v-T),f.lineTo(m-3,g+v+3),f.lineTo(m+T,g+v+3),f.lineTo(m+T,g+v),f.lineTo(m,g+v),f.closePath(),f.moveTo(m+x,g+T),f.lineTo(m+x+3,g+T),f.lineTo(m+x+3,g-3),f.lineTo(m+x-T,g-3),f.lineTo(m+x-T,g),f.lineTo(m+x,g),f.closePath(),f.moveTo(m+x,g+v-T),f.lineTo(m+x+3,g+v-T),f.lineTo(m+x+3,g+v+3),f.lineTo(m+x-T,g+v+3),f.lineTo(m+x-T,g+v),f.lineTo(m+x,g+v),f.closePath(),f.stroke(),f.fill()),m=b,g=y,\"x\"===w&&(f.beginPath(),f.moveTo(m,g+15),f.lineTo(m,g-15),f.lineTo(m-3,g-15),f.lineTo(m-3,g+15),f.closePath(),f.moveTo(m+x,g+15),f.lineTo(m+x,g-15),f.lineTo(m+x+3,g-15),f.lineTo(m+x+3,g+15),f.closePath(),f.stroke(),f.fill()),\"y\"===w&&(f.beginPath(),f.moveTo(m-15,g),f.lineTo(m+15,g),f.lineTo(m+15,g-3),f.lineTo(m-15,g-3),f.closePath(),f.moveTo(m-15,g+v),f.lineTo(m+15,g+v),f.lineTo(m+15,g+v+3),f.lineTo(m-15,g+v+3),f.closePath(),f.stroke(),f.fill()))),e.restore()}var f,m,g,x,v,b,y,w,T}),c.hooks.shutdown.push(function(t,e){e.unbind(\"dragstart\",a),e.unbind(\"drag\",o),e.unbind(\"dragend\",r)})},options:{selection:{mode:null,visualization:\"focus\",displaySelectionDecorations:!0,color:\"#888888\",shape:\"round\",minSize:5}},name:\"selection\",version:\"1.1\"})}(jQuery),function(t){var e=-100,c=0,u=-1,p=-2,h=1,g=t.plot.browser,a=g.getPixelRatio;function n(t,e){var n=t.filter(r);h=a(e.getContext(\"2d\"));var o,i=n.map(function(t){var f,m,e=new Image;return new Promise((m=t,(f=e).sourceDescription='<info className=\"'+m.className+'\" tagName=\"'+m.tagName+'\" id=\"'+m.id+'\">',f.sourceComponent=m,function(e,t){var n,o,i,a,r,s,l,c,u,p,h,d;f.onload=function(t){f.successfullyLoaded=!0,e(f)},f.onabort=function(t){f.successfullyLoaded=!1,console.log(\"Can't generate temp image from \"+f.sourceDescription+\". It is possible that it is missing some properties or its content is not supported by this browser. Source component:\",f.sourceComponent),e(f)},f.onerror=function(t){f.successfullyLoaded=!1,console.log(\"Can't generate temp image from \"+f.sourceDescription+\". It is possible that it is missing some properties or its content is not supported by this browser. Source component:\",f.sourceComponent),e(f)},o=f,\"CANVAS\"===(n=m).tagName&&(i=n,o.src=i.toDataURL(\"image/png\")),\"svg\"===n.tagName&&(a=n,r=o,g.isSafari()||g.isMobileSafari()?(s=a,l=r,p=b(p=v(x(document),s)),u=function(t){for(var e=\"\",n=new Uint8Array(t),o=0;o<n.length;o+=16384){var i=String.fromCharCode.apply(null,n.subarray(o,o+16384));e+=i}return e}(new(TextEncoder||TextEncoderLite)(\"utf-8\").encode(p)),c=\"data:image/svg+xml;base64,\"+btoa(u),l.src=c):function(t,e){var n=v(x(document),t);n=b(n);var o=new Blob([n],{type:\"image/svg+xml;charset=utf-8\"}),i=(self.URL||self.webkitURL||self).createObjectURL(o);e.src=i}(a,r)),o.srcImgTagName=n.tagName,h=n,(d=o).genLeft=h.getBoundingClientRect().left,d.genTop=h.getBoundingClientRect().top,\"CANVAS\"===h.tagName&&(d.genRight=d.genLeft+h.width,d.genBottom=d.genTop+h.height),\"svg\"===h.tagName&&(d.genRight=h.getBoundingClientRect().right,d.genBottom=h.getBoundingClientRect().bottom)}))});return Promise.all(i).then((o=e,function(t){var e=function(t,e){var n=function(t,e){var n,o=c;if(0===t.length)o=u;else{var i=t[0].genLeft,a=t[0].genTop,r=t[0].genRight,s=t[0].genBottom,l=0;for(l=1;l<t.length;l++)i>t[l].genLeft&&(i=t[l].genLeft),a>t[l].genTop&&(a=t[l].genTop);for(l=1;l<t.length;l++)r<t[l].genRight&&(r=t[l].genRight),s<t[l].genBottom&&(s=t[l].genBottom);if(r-i<=0||s-a<=0)o=p;else{for(e.width=Math.round(r-i),e.height=Math.round(s-a),l=0;l<t.length;l++)t[l].xCompOffset=t[l].genLeft-i,t[l].yCompOffset=t[l].genTop-a;n=e,void 0!==t.find(function(t){return\"svg\"===t.srcImgTagName})&&h<1&&(n.width=n.width*h,n.height=n.height*h)}}return o}(t,e);if(n===c)for(var o=e.getContext(\"2d\"),i=0;i<t.length;i++)!0===t[i].successfullyLoaded&&o.drawImage(t[i],t[i].xCompOffset*h,t[i].yCompOffset*h);return n}(t,o);return e}),s)}function r(t){var e=!0,n=!0;return null==t?n=!1:\"CANVAS\"===t.tagName&&(t.getBoundingClientRect().right!==t.getBoundingClientRect().left&&t.getBoundingClientRect().bottom!==t.getBoundingClientRect().top||(e=!1)),n&&e&&\"visible\"===window.getComputedStyle(t).visibility}function x(t){for(var e=t.styleSheets,n=[],o=0;o<e.length;o++)try{for(var i=e[o].cssRules||[],a=0;a<i.length;a++){var r=i[a];n.push(r.cssText)}}catch(t){console.log(\"Failed to get some css rules\")}return n}function v(t,e){return['<svg class=\"snapshot '+e.classList+'\" width=\"'+e.width.baseVal.value*h+'\" height=\"'+e.height.baseVal.value*h+'\" viewBox=\"0 0 '+e.width.baseVal.value+\" \"+e.height.baseVal.value+'\" xmlns=\"http://www.w3.org/2000/svg\">',\"<style>\",\"/* <![CDATA[ */\",t.join(\"\\n\"),\"/* ]]> */\",\"</style>\",e.innerHTML,\"</svg>\"].join(\"\\n\")}function b(t){var e=\"\";return t.match(/^<svg[^>]+xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg\"/)||(e=t.replace(/^<svg/,'<svg xmlns=\"http://www.w3.org/2000/svg\"')),t.match(/^<svg[^>]+\"http:\\/\\/www\\.w3\\.org\\/1999\\/xlink\"/)||(e=t.replace(/^<svg/,'<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\"')),'<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n'+e}function s(){return e}t.plot.composeImages=n,t.plot.plugins.push({init:function(t){t.composeImages=n},name:\"composeImages\",version:\"1.0\"})}(jQuery),function(S){function P(t){var e=\"\",n=t.name,o=t.xPos,i=t.yPos,a=t.fillColor,r=t.strokeColor,s=t.strokeWidth;switch(n){case\"circle\":e='<use xlink:href=\"#circle\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"diamond\":e='<use xlink:href=\"#diamond\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"cross\":e='<use xlink:href=\"#cross\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"rectangle\":e='<use xlink:href=\"#rectangle\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"plus\":e='<use xlink:href=\"#plus\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"bar\":e='<use xlink:href=\"#bars\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"area\":e='<use xlink:href=\"#area\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" width=\"1.5em\" height=\"1.5em\"/>';break;case\"line\":e='<use xlink:href=\"#line\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>';break;default:e='<use xlink:href=\"#circle\" class=\"legendIcon\" x=\"'+o+'\" y=\"'+i+'\" fill=\"'+a+'\" stroke=\"'+r+'\" stroke-width=\"'+s+'\" width=\"1.5em\" height=\"1.5em\"/>'}return e}var C='<defs><symbol id=\"line\" fill=\"none\" viewBox=\"-5 -5 25 25\"><polyline points=\"0,15 5,5 10,10 15,0\"/></symbol><symbol id=\"area\" stroke-width=\"1\" viewBox=\"-5 -5 25 25\"><polyline points=\"0,15 5,5 10,10 15,0, 15,15, 0,15\"/></symbol><symbol id=\"bars\" stroke-width=\"1\" viewBox=\"-5 -5 25 25\"><polyline points=\"1.5,15.5 1.5,12.5, 4.5,12.5 4.5,15.5 6.5,15.5 6.5,3.5, 9.5,3.5 9.5,15.5 11.5,15.5 11.5,7.5 14.5,7.5 14.5,15.5 1.5,15.5\"/></symbol><symbol id=\"circle\" viewBox=\"-5 -5 25 25\"><circle cx=\"0\" cy=\"15\" r=\"2.5\"/><circle cx=\"5\" cy=\"5\" r=\"2.5\"/><circle cx=\"10\" cy=\"10\" r=\"2.5\"/><circle cx=\"15\" cy=\"0\" r=\"2.5\"/></symbol><symbol id=\"rectangle\" viewBox=\"-5 -5 25 25\"><rect x=\"-2.1\" y=\"12.9\" width=\"4.2\" height=\"4.2\"/><rect x=\"2.9\" y=\"2.9\" width=\"4.2\" height=\"4.2\"/><rect x=\"7.9\" y=\"7.9\" width=\"4.2\" height=\"4.2\"/><rect x=\"12.9\" y=\"-2.1\" width=\"4.2\" height=\"4.2\"/></symbol><symbol id=\"diamond\" viewBox=\"-5 -5 25 25\"><path d=\"M-3,15 L0,12 L3,15, L0,18 Z\"/><path d=\"M2,5 L5,2 L8,5, L5,8 Z\"/><path d=\"M7,10 L10,7 L13,10, L10,13 Z\"/><path d=\"M12,0 L15,-3 L18,0, L15,3 Z\"/></symbol><symbol id=\"cross\" fill=\"none\" viewBox=\"-5 -5 25 25\"><path d=\"M-2.1,12.9 L2.1,17.1, M2.1,12.9 L-2.1,17.1 Z\"/><path d=\"M2.9,2.9 L7.1,7.1 M7.1,2.9 L2.9,7.1 Z\"/><path d=\"M7.9,7.9 L12.1,12.1 M12.1,7.9 L7.9,12.1 Z\"/><path d=\"M12.9,-2.1 L17.1,2.1 M17.1,-2.1 L12.9,2.1 Z\"/></symbol><symbol id=\"plus\" fill=\"none\" viewBox=\"-5 -5 25 25\"><path d=\"M0,12 L0,18, M-3,15 L3,15 Z\"/><path d=\"M5,2 L5,8 M2,5 L8,5 Z\"/><path d=\"M10,7 L10,13 M7,10 L13,10 Z\"/><path d=\"M15,-3 L15,3 M12,0 L18,0 Z\"/></symbol></defs>';function l(t,e){for(var n in t)if(t.hasOwnProperty(n)&&t[n]!==e[n])return!0;return!1}S.plot.plugins.push({init:function(t){t.hooks.setupGrid.push(function(t){var e=t.getOptions(),n=t.getData(),o=e.legend.labelFormatter,i=e.legend.legendEntries,a=e.legend.plotOffset,r=function(t,e,n){var a=e,o=t.reduce(function(t,e,n){var o=a?a(e.label,e):e.label;if(!e.hasOwnProperty(\"label\")||o){var i={label:o||\"Plot \"+(n+1),color:e.color,options:{lines:e.lines,points:e.points,bars:e.bars}};t.push(i)}return t},[]);if(n)if(S.isFunction(n))o.sort(n);else if(\"reverse\"===n)o.reverse();else{var i=\"descending\"!==n;o.sort(function(t,e){return t.label===e.label?0:t.label<e.label!==i?1:-1})}return o}(n,o,e.legend.sorted),s=t.getPlotOffset();(function(t,e){if(!t||!e)return!0;if(t.length!==e.length)return!0;var n,o,i;for(n=0;n<e.length;n++){if(o=e[n],i=t[n],o.label!==i.label)return!0;if(o.color!==i.color)return!0;if(l(o.options.lines,i.options.lines))return!0;if(l(o.options.points,i.options.points))return!0;if(l(o.options.bars,i.options.bars))return!0}return!1}(i,r)||l(a,s))&&function(t,e,n,o){if(null!=e.legend.container?S(e.legend.container).html(\"\"):n.find(\".legend\").remove(),e.legend.show){var i,a,r,s,l=e.legend.legendEntries=o,c=e.legend.plotOffset=t.getPlotOffset(),u=[],p=0,h=\"\",d=e.legend.position,f=e.legend.margin,m={name:\"\",label:\"\",xPos:\"\",yPos:\"\"};u[p++]='<svg class=\"legendLayer\" style=\"width:inherit;height:inherit;\">',u[p++]='<rect class=\"background\" width=\"100%\" height=\"100%\"/>',u[p++]=C;var g=0,x=[],v=window.getComputedStyle(document.querySelector(\"body\"));for(s=0;s<l.length;++s){var b=s%e.legend.noColumns;i=l[s],m.label=i.label;var y=t.getSurface().getTextInfo(\"\",m.label,{style:v.fontStyle,variant:v.fontVariant,weight:v.fontWeight,size:parseInt(v.fontSize),lineHeight:parseInt(v.lineHeight),family:v.fontFamily}).width;x[b]?y>x[b]&&(x[b]=y+48):x[b]=y+48}for(s=0;s<l.length;++s){var w=s%e.legend.noColumns;i=l[s],r=\"\",m.label=i.label,m.xPos=g+3+\"px\",g+=x[w],(s+1)%e.legend.noColumns==0&&(g=0),m.yPos=1.5*Math.floor(s/e.legend.noColumns)+\"em\",i.options.lines.show&&i.options.lines.fill&&(m.name=\"area\",m.fillColor=i.color,r+=P(m)),i.options.bars.show&&(m.name=\"bar\",m.fillColor=i.color,r+=P(m)),i.options.lines.show&&!i.options.lines.fill&&(m.name=\"line\",m.strokeColor=i.color,m.strokeWidth=i.options.lines.lineWidth,r+=P(m)),i.options.points.show&&(m.name=i.options.points.symbol,m.strokeColor=i.color,m.fillColor=i.options.points.fillColor,m.strokeWidth=i.options.points.lineWidth,r+=P(m)),a='<text x=\"'+m.xPos+'\" y=\"'+m.yPos+'\" text-anchor=\"start\"><tspan dx=\"2em\" dy=\"1.2em\">'+m.label+\"</tspan></text>\",u[p++]=\"<g>\"+r+a+\"</g>\"}u[p++]=\"</svg>\",null==f[0]&&(f=[f,f]),\"n\"===d.charAt(0)?h+=\"top:\"+(f[1]+c.top)+\"px;\":\"s\"===d.charAt(0)&&(h+=\"bottom:\"+(f[1]+c.bottom)+\"px;\"),\"e\"===d.charAt(1)?h+=\"right:\"+(f[0]+c.right)+\"px;\":\"w\"===d.charAt(1)&&(h+=\"left:\"+(f[0]+c.left)+\"px;\");var T=6;for(s=0;s<x.length;++s)T+=x[s];var k,M=1.6*Math.ceil(l.length/e.legend.noColumns);e.legend.container?(k=S(u.join(\"\")).appendTo(e.legend.container)[0],e.legend.container.style.width=T+\"px\",e.legend.container.style.height=M+\"em\"):((k=S('<div class=\"legend\" style=\"position:absolute;'+h+'\">'+u.join(\"\")+\"</div>\").appendTo(n)).css(\"width\",T+\"px\"),k.css(\"height\",M+\"em\"),k.css(\"pointerEvents\",\"none\"))}}(t,e,t.getPlaceholder(),r)})},options:{legend:{show:!1,noColumns:1,labelFormatter:null,container:null,position:\"ne\",margin:5,sorted:null}},name:\"legend\",version:\"1.0\"})}(jQuery);\n//# sourceMappingURL=jquery.flot.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.axislabels.js",
    "content": "/*\nAxis label plugin for flot\n\nDerived from:\nAxis Labels Plugin for flot.\nhttp://github.com/markrcote/flot-axislabels\n\nOriginal code is Copyright (c) 2010 Xuan Luo.\nOriginal code was released under the GPLv3 license by Xuan Luo, September 2010.\nOriginal code was rereleased under the MIT license by Xuan Luo, April 2012.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n(function($) {\n    \"use strict\";\n\n    var options = {\n        axisLabels: {\n            show: true\n        }\n    };\n\n    function AxisLabel(axisName, position, padding, placeholder, axisLabel, surface) {\n        this.axisName = axisName;\n        this.position = position;\n        this.padding = padding;\n        this.placeholder = placeholder;\n        this.axisLabel = axisLabel;\n        this.surface = surface;\n        this.width = 0;\n        this.height = 0;\n        this.elem = null;\n    }\n\n    AxisLabel.prototype.calculateSize = function() {\n        var axisId = this.axisName + 'Label',\n            layerId = axisId + 'Layer',\n            className = axisId + ' axisLabels';\n\n        var info = this.surface.getTextInfo(layerId, this.axisLabel, className);\n        this.labelWidth = info.width;\n        this.labelHeight = info.height;\n\n        if (this.position === 'left' || this.position === 'right') {\n            this.width = this.labelHeight + this.padding;\n            this.height = 0;\n        } else {\n            this.width = 0;\n            this.height = this.labelHeight + this.padding;\n        }\n    };\n\n    AxisLabel.prototype.transforms = function(degrees, x, y, svgLayer) {\n        var transforms = [], translate, rotate;\n        if (x !== 0 || y !== 0) {\n            translate = svgLayer.createSVGTransform();\n            translate.setTranslate(x, y);\n            transforms.push(translate);\n        }\n        if (degrees !== 0) {\n            rotate = svgLayer.createSVGTransform();\n            var centerX = Math.round(this.labelWidth / 2),\n                centerY = 0;\n            rotate.setRotate(degrees, centerX, centerY);\n            transforms.push(rotate);\n        }\n\n        return transforms;\n    };\n\n    AxisLabel.prototype.calculateOffsets = function(box) {\n        var offsets = {\n            x: 0,\n            y: 0,\n            degrees: 0\n        };\n        if (this.position === 'bottom') {\n            offsets.x = box.left + box.width / 2 - this.labelWidth / 2;\n            offsets.y = box.top + box.height - this.labelHeight;\n        } else if (this.position === 'top') {\n            offsets.x = box.left + box.width / 2 - this.labelWidth / 2;\n            offsets.y = box.top;\n        } else if (this.position === 'left') {\n            offsets.degrees = -90;\n            offsets.x = box.left - this.labelWidth / 2;\n            offsets.y = box.height / 2 + box.top;\n        } else if (this.position === 'right') {\n            offsets.degrees = 90;\n            offsets.x = box.left + box.width - this.labelWidth / 2;\n            offsets.y = box.height / 2 + box.top;\n        }\n        offsets.x = Math.round(offsets.x);\n        offsets.y = Math.round(offsets.y);\n\n        return offsets;\n    };\n\n    AxisLabel.prototype.cleanup = function() {\n        var axisId = this.axisName + 'Label',\n            layerId = axisId + 'Layer',\n            className = axisId + ' axisLabels';\n        this.surface.removeText(layerId, 0, 0, this.axisLabel, className);\n    };\n\n    AxisLabel.prototype.draw = function(box) {\n        var axisId = this.axisName + 'Label',\n            layerId = axisId + 'Layer',\n            className = axisId + ' axisLabels',\n            offsets = this.calculateOffsets(box),\n            style = {\n                position: 'absolute',\n                bottom: '',\n                right: '',\n                display: 'inline-block',\n                'white-space': 'nowrap'\n            };\n\n        var layer = this.surface.getSVGLayer(layerId);\n        var transforms = this.transforms(offsets.degrees, offsets.x, offsets.y, layer.parentNode);\n\n        this.surface.addText(layerId, 0, 0, this.axisLabel, className, undefined, undefined, undefined, undefined, transforms);\n        this.surface.render();\n        Object.keys(style).forEach(function(key) {\n            layer.style[key] = style[key];\n        });\n    };\n\n    function init(plot) {\n        plot.hooks.processOptions.push(function(plot, options) {\n            if (!options.axisLabels.show) {\n                return;\n            }\n\n            var axisLabels = {};\n            var defaultPadding = 2; // padding between axis and tick labels\n\n            plot.hooks.axisReserveSpace.push(function(plot, axis) {\n                var opts = axis.options;\n                var axisName = axis.direction + axis.n;\n\n                axis.labelHeight += axis.boxPosition.centerY;\n                axis.labelWidth += axis.boxPosition.centerX;\n\n                if (!opts || !opts.axisLabel || !axis.show) {\n                    return;\n                }\n\n                var padding = opts.axisLabelPadding === undefined\n                    ? defaultPadding\n                    : opts.axisLabelPadding;\n\n                var axisLabel = axisLabels[axisName];\n                if (!axisLabel) {\n                    axisLabel = new AxisLabel(axisName,\n                        opts.position, padding,\n                        plot.getPlaceholder()[0], opts.axisLabel, plot.getSurface());\n                    axisLabels[axisName] = axisLabel;\n                }\n\n                axisLabel.calculateSize();\n\n                // Incrementing the sizes of the tick labels.\n                axis.labelHeight += axisLabel.height;\n                axis.labelWidth += axisLabel.width;\n            });\n\n            // TODO - use the drawAxis hook\n            plot.hooks.draw.push(function(plot, ctx) {\n                $.each(plot.getAxes(), function(flotAxisName, axis) {\n                    var opts = axis.options;\n                    if (!opts || !opts.axisLabel || !axis.show) {\n                        return;\n                    }\n\n                    var axisName = axis.direction + axis.n;\n                    axisLabels[axisName].draw(axis.box);\n                });\n            });\n\n            plot.hooks.shutdown.push(function(plot, eventHolder) {\n                for (var axisName in axisLabels) {\n                    axisLabels[axisName].cleanup();\n                }\n            });\n        });\n    };\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'axisLabels',\n        version: '3.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.browser.js",
    "content": "/** ## jquery.flot.browser.js\n\nThis plugin is used to make available some browser-related utility functions.\n\n### Methods\n*/\n\n(function ($) {\n    'use strict';\n\n    var browser = {\n        /**\n        - getPageXY(e)\n\n         Calculates the pageX and pageY using the screenX, screenY properties of the event\n         and the scrolling of the page. This is needed because the pageX and pageY\n         properties of the event are not correct while running tests in Edge. */\n        getPageXY: function (e) {\n            // This code is inspired from https://stackoverflow.com/a/3464890\n            var doc = document.documentElement,\n                pageX = e.clientX + (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),\n                pageY = e.clientY + (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n            return { X: pageX, Y: pageY };\n        },\n\n        /**\n        - getPixelRatio(context)\n\n         This function returns the current pixel ratio defined by the product of desktop\n         zoom and page zoom.\n         Additional info: https://www.html5rocks.com/en/tutorials/canvas/hidpi/\n        */\n        getPixelRatio: function(context) {\n            var devicePixelRatio = window.devicePixelRatio || 1,\n                backingStoreRatio =\n                context.webkitBackingStorePixelRatio ||\n                context.mozBackingStorePixelRatio ||\n                context.msBackingStorePixelRatio ||\n                context.oBackingStorePixelRatio ||\n                context.backingStorePixelRatio || 1;\n            return devicePixelRatio / backingStoreRatio;\n        },\n\n        /**\n        - isSafari, isMobileSafari, isOpera, isFirefox, isIE, isEdge, isChrome, isBlink\n\n         This is a collection of functions, used to check if the code is running in a\n         particular browser or Javascript engine.\n        */\n        isSafari: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            // Safari 3.0+ \"[object HTMLElementConstructor]\"\n            return /constructor/i.test(window.top.HTMLElement) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window.top['safari'] || (typeof window.top.safari !== 'undefined' && window.top.safari.pushNotification));\n        },\n\n        isMobileSafari: function() {\n            //isMobileSafari adapted from https://stackoverflow.com/questions/3007480/determine-if-user-navigated-from-mobile-safari\n            return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/);\n        },\n\n        isOpera: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            //Opera 8.0+\n            return (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\n        },\n\n        isFirefox: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            // Firefox 1.0+\n            return typeof InstallTrigger !== 'undefined';\n        },\n\n        isIE: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            // Internet Explorer 6-11\n            return /*@cc_on!@*/false || !!document.documentMode;\n        },\n\n        isEdge: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            // Edge 20+\n            return !browser.isIE() && !!window.StyleMedia;\n        },\n\n        isChrome: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            // Chrome 1+\n            return !!window.chrome && !!window.chrome.webstore;\n        },\n\n        isBlink: function() {\n            // *** https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n            return (browser.isChrome() || browser.isOpera()) && !!window.CSS;\n        }\n    };\n\n    $.plot.browser = browser;\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.categories.js",
    "content": "/* Flot plugin for plotting textual data or categories.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nConsider a dataset like [[\"February\", 34], [\"March\", 20], ...]. This plugin\nallows you to plot such a dataset directly.\n\nTo enable it, you must specify mode: \"categories\" on the axis with the textual\nlabels, e.g.\n\n    $.plot(\"#placeholder\", data, { xaxis: { mode: \"categories\" } });\n\nBy default, the labels are ordered as they are met in the data series. If you\nneed a different ordering, you can specify \"categories\" on the axis options\nand list the categories there:\n\n    xaxis: {\n        mode: \"categories\",\n        categories: [\"February\", \"March\", \"April\"]\n    }\n\nIf you need to customize the distances between the categories, you can specify\n\"categories\" as an object mapping labels to values\n\n    xaxis: {\n        mode: \"categories\",\n        categories: { \"February\": 1, \"March\": 3, \"April\": 4 }\n    }\n\nIf you don't specify all categories, the remaining categories will be numbered\nfrom the max value plus 1 (with a spacing of 1 between each).\n\nInternally, the plugin works by transforming the input data through an auto-\ngenerated mapping where the first category becomes 0, the second 1, etc.\nHence, a point like [\"February\", 34] becomes [0, 34] internally in Flot (this\nis visible in hover and click events that return numbers rather than the\ncategory labels). The plugin also overrides the tick generator to spit out the\ncategories as ticks instead of the values.\n\nIf you need to map a value back to its label, the mapping is always accessible\nas \"categories\" on the axis object, e.g. plot.getAxes().xaxis.categories.\n\n*/\n\n(function ($) {\n    var options = {\n        xaxis: {\n            categories: null\n        },\n        yaxis: {\n            categories: null\n        }\n    };\n\n    function processRawData(plot, series, data, datapoints) {\n        // if categories are enabled, we need to disable\n        // auto-transformation to numbers so the strings are intact\n        // for later processing\n\n        var xCategories = series.xaxis.options.mode === \"categories\",\n            yCategories = series.yaxis.options.mode === \"categories\";\n\n        if (!(xCategories || yCategories)) {\n            return;\n        }\n\n        var format = datapoints.format;\n\n        if (!format) {\n            // FIXME: auto-detection should really not be defined here\n            var s = series;\n            format = [];\n            format.push({ x: true, number: true, required: true, computeRange: true});\n            format.push({ y: true, number: true, required: true, computeRange: true });\n\n            if (s.bars.show || (s.lines.show && s.lines.fill)) {\n                var autoScale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));\n                format.push({ y: true, number: true, required: false, defaultValue: 0, computeRange: autoScale });\n                if (s.bars.horizontal) {\n                    delete format[format.length - 1].y;\n                    format[format.length - 1].x = true;\n                }\n            }\n\n            datapoints.format = format;\n        }\n\n        for (var m = 0; m < format.length; ++m) {\n            if (format[m].x && xCategories) {\n                format[m].number = false;\n            }\n\n            if (format[m].y && yCategories) {\n                format[m].number = false;\n                format[m].computeRange = false;\n            }\n        }\n    }\n\n    function getNextIndex(categories) {\n        var index = -1;\n\n        for (var v in categories) {\n            if (categories[v] > index) {\n                index = categories[v];\n            }\n        }\n\n        return index + 1;\n    }\n\n    function categoriesTickGenerator(axis) {\n        var res = [];\n        for (var label in axis.categories) {\n            var v = axis.categories[label];\n            if (v >= axis.min && v <= axis.max) {\n                res.push([v, label]);\n            }\n        }\n\n        res.sort(function (a, b) { return a[0] - b[0]; });\n\n        return res;\n    }\n\n    function setupCategoriesForAxis(series, axis, datapoints) {\n        if (series[axis].options.mode !== \"categories\") {\n            return;\n        }\n\n        if (!series[axis].categories) {\n            // parse options\n            var c = {}, o = series[axis].options.categories || {};\n            if ($.isArray(o)) {\n                for (var i = 0; i < o.length; ++i) {\n                    c[o[i]] = i;\n                }\n            } else {\n                for (var v in o) {\n                    c[v] = o[v];\n                }\n            }\n\n            series[axis].categories = c;\n        }\n\n        // fix ticks\n        if (!series[axis].options.ticks) {\n            series[axis].options.ticks = categoriesTickGenerator;\n        }\n\n        transformPointsOnAxis(datapoints, axis, series[axis].categories);\n    }\n\n    function transformPointsOnAxis(datapoints, axis, categories) {\n        // go through the points, transforming them\n        var points = datapoints.points,\n            ps = datapoints.pointsize,\n            format = datapoints.format,\n            formatColumn = axis.charAt(0),\n            index = getNextIndex(categories);\n\n        for (var i = 0; i < points.length; i += ps) {\n            if (points[i] == null) {\n                continue;\n            }\n\n            for (var m = 0; m < ps; ++m) {\n                var val = points[i + m];\n\n                if (val == null || !format[m][formatColumn]) {\n                    continue;\n                }\n\n                if (!(val in categories)) {\n                    categories[val] = index;\n                    ++index;\n                }\n\n                points[i + m] = categories[val];\n            }\n        }\n    }\n\n    function processDatapoints(plot, series, datapoints) {\n        setupCategoriesForAxis(series, \"xaxis\", datapoints);\n        setupCategoriesForAxis(series, \"yaxis\", datapoints);\n    }\n\n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.processDatapoints.push(processDatapoints);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'categories',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.composeImages.js",
    "content": "/** ## jquery.flot.composeImages.js\n\nThis plugin is used to expose a function used to overlap several canvases and\nSVGs, for the purpose of creating a snaphot out of them.\n\n### When composeImages is used:\nWhen multiple canvases and SVGs have to be overlapped into a single image\nand their offset on the page, must be preserved.\n\n### Where can be used:\nIn creating a downloadable snapshot of the plots, axes, cursors etc of a graph.\n\n### How it works:\nThe entry point is composeImages function. It expects an array of objects,\nwhich should be either canvases or SVGs (or a mix). It does a prevalidation\nof them, by verifying if they will be usable or not, later in the flow.\nAfter selecting only usable sources, it passes them to getGenerateTempImg\nfunction, which generates temporary images out of them. This function\nexpects that some of the passed sources (canvas or SVG) may still have\nproblems being converted to an image and makes sure the promises system,\nused by composeImages function, moves forward. As an example, SVGs with\nmissing information from header or with unsupported content, may lead to\nfailure in generating the temporary image. Temporary images are required\nmostly on extracting content from SVGs, but this is also where the x/y\noffsets are extracted for each image which will be added. For SVGs in\nparticular, their CSS rules have to be applied.\nAfter all temporary images are generated, they are overlapped using\ngetExecuteImgComposition function. This is where the destination canvas\nis set to the proper dimensions. It is then output by composeImages.\nThis function returns a promise, which can be used to wait for the whole\ncomposition process. It requires to be asynchronous, because this is how\ntemporary images load their data.\n*/\n\n(function($) {\n    \"use strict\";\n    const GENERALFAILURECALLBACKERROR = -100; //simply a negative number\n    const SUCCESSFULIMAGEPREPARATION = 0;\n    const EMPTYARRAYOFIMAGESOURCES = -1;\n    const NEGATIVEIMAGESIZE = -2;\n    var pixelRatio = 1;\n    var browser = $.plot.browser;\n    var getPixelRatio = browser.getPixelRatio;\n\n    function composeImages(canvasOrSvgSources, destinationCanvas) {\n        var validCanvasOrSvgSources = canvasOrSvgSources.filter(isValidSource);\n        pixelRatio = getPixelRatio(destinationCanvas.getContext('2d'));\n\n        var allImgCompositionPromises = validCanvasOrSvgSources.map(function(validCanvasOrSvgSource) {\n            var tempImg = new Image();\n            var currentPromise = new Promise(getGenerateTempImg(tempImg, validCanvasOrSvgSource));\n            return currentPromise;\n        });\n\n        var lastPromise = Promise.all(allImgCompositionPromises).then(getExecuteImgComposition(destinationCanvas), failureCallback);\n        return lastPromise;\n    }\n\n    function isValidSource(canvasOrSvgSource) {\n        var isValidFromCanvas = true;\n        var isValidFromContent = true;\n        if ((canvasOrSvgSource === null) || (canvasOrSvgSource === undefined)) {\n            isValidFromContent = false;\n        } else {\n            if (canvasOrSvgSource.tagName === 'CANVAS') {\n                if ((canvasOrSvgSource.getBoundingClientRect().right === canvasOrSvgSource.getBoundingClientRect().left) ||\n                    (canvasOrSvgSource.getBoundingClientRect().bottom === canvasOrSvgSource.getBoundingClientRect().top)) {\n                    isValidFromCanvas = false;\n                }\n            }\n        }\n        return isValidFromContent && isValidFromCanvas && (window.getComputedStyle(canvasOrSvgSource).visibility === 'visible');\n    }\n\n    function getGenerateTempImg(tempImg, canvasOrSvgSource) {\n        tempImg.sourceDescription = '<info className=\"' + canvasOrSvgSource.className + '\" tagName=\"' + canvasOrSvgSource.tagName + '\" id=\"' + canvasOrSvgSource.id + '\">';\n        tempImg.sourceComponent = canvasOrSvgSource;\n\n        return function doGenerateTempImg(successCallbackFunc, failureCallbackFunc) {\n            tempImg.onload = function(evt) {\n                tempImg.successfullyLoaded = true;\n                successCallbackFunc(tempImg);\n            };\n\n            tempImg.onabort = function(evt) {\n                tempImg.successfullyLoaded = false;\n                console.log('Can\\'t generate temp image from ' + tempImg.sourceDescription + '. It is possible that it is missing some properties or its content is not supported by this browser. Source component:', tempImg.sourceComponent);\n                successCallbackFunc(tempImg); //call successCallback, to allow snapshot of all working images\n            };\n\n            tempImg.onerror = function(evt) {\n                tempImg.successfullyLoaded = false;\n                console.log('Can\\'t generate temp image from ' + tempImg.sourceDescription + '. It is possible that it is missing some properties or its content is not supported by this browser. Source component:', tempImg.sourceComponent);\n                successCallbackFunc(tempImg); //call successCallback, to allow snapshot of all working images\n            };\n\n            generateTempImageFromCanvasOrSvg(canvasOrSvgSource, tempImg);\n        };\n    }\n\n    function getExecuteImgComposition(destinationCanvas) {\n        return function executeImgComposition(tempImgs) {\n            var compositionResult = copyImgsToCanvas(tempImgs, destinationCanvas);\n            return compositionResult;\n        };\n    }\n\n    function copyCanvasToImg(canvas, img) {\n        img.src = canvas.toDataURL('image/png');\n    }\n\n    function getCSSRules(document) {\n        var styleSheets = document.styleSheets,\n            rulesList = [];\n        for (var i = 0; i < styleSheets.length; i++) {\n            // CORS requests for style sheets throw and an exception on Chrome > 64\n            try {\n                // in Chrome, the external CSS files are empty when the page is directly loaded from disk\n                var rules = styleSheets[i].cssRules || [];\n                for (var j = 0; j < rules.length; j++) {\n                    var rule = rules[j];\n                    rulesList.push(rule.cssText);\n                }\n            } catch (e) {\n                console.log('Failed to get some css rules');\n            }\n        }\n        return rulesList;\n    }\n\n    function embedCSSRulesInSVG(rules, svg) {\n        var text = [\n            '<svg class=\"snapshot ' + svg.classList + '\" width=\"' + svg.width.baseVal.value * pixelRatio + '\" height=\"' + svg.height.baseVal.value * pixelRatio + '\" viewBox=\"0 0 ' + svg.width.baseVal.value + ' ' + svg.height.baseVal.value + '\" xmlns=\"http://www.w3.org/2000/svg\">',\n            '<style>',\n            '/* <![CDATA[ */',\n            rules.join('\\n'),\n            '/* ]]> */',\n            '</style>',\n            svg.innerHTML,\n            '</svg>'\n        ].join('\\n');\n        return text;\n    }\n\n    function copySVGToImgMostBrowsers(svg, img) {\n        var rules = getCSSRules(document),\n            source = embedCSSRulesInSVG(rules, svg);\n\n        source = patchSVGSource(source);\n\n        var blob = new Blob([source], {type: \"image/svg+xml;charset=utf-8\"}),\n            domURL = self.URL || self.webkitURL || self,\n            url = domURL.createObjectURL(blob);\n        img.src = url;\n    }\n\n    function copySVGToImgSafari(svg, img) {\n        // Use this method to convert a string buffer array to a binary string.\n        // Do so by breaking up large strings into smaller substrings; this is necessary to avoid the\n        // \"maximum call stack size exceeded\" exception that can happen when calling 'String.fromCharCode.apply'\n        // with a very long array.\n        function buildBinaryString (arrayBuffer) {\n            var binaryString = \"\";\n            const utf8Array = new Uint8Array(arrayBuffer);\n            const blockSize = 16384;\n            for (var i = 0; i < utf8Array.length; i = i + blockSize) {\n                const binarySubString = String.fromCharCode.apply(null, utf8Array.subarray(i, i + blockSize));\n                binaryString = binaryString + binarySubString;\n            }\n            return binaryString;\n        };\n\n        var rules = getCSSRules(document),\n            source = embedCSSRulesInSVG(rules, svg),\n            data,\n            utf8BinaryString;\n\n        source = patchSVGSource(source);\n\n        // Encode the string as UTF-8 and convert it to a binary string. The UTF-8 encoding is required to\n        // capture unicode characters correctly.\n        utf8BinaryString = buildBinaryString(new (TextEncoder || TextEncoderLite)('utf-8').encode(source));\n\n        data = \"data:image/svg+xml;base64,\" + btoa(utf8BinaryString);\n        img.src = data;\n    }\n\n    function patchSVGSource(svgSource) {\n        var source = '';\n        //add name spaces.\n        if (!svgSource.match(/^<svg[^>]+xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg\"/)) {\n            source = svgSource.replace(/^<svg/, '<svg xmlns=\"http://www.w3.org/2000/svg\"');\n        }\n        if (!svgSource.match(/^<svg[^>]+\"http:\\/\\/www\\.w3\\.org\\/1999\\/xlink\"/)) {\n            source = svgSource.replace(/^<svg/, '<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\"');\n        }\n\n        //add xml declaration\n        return '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + source;\n    }\n\n    function copySVGToImg(svg, img) {\n        if (browser.isSafari() || browser.isMobileSafari()) {\n            copySVGToImgSafari(svg, img);\n        } else {\n            copySVGToImgMostBrowsers(svg, img);\n        }\n    }\n\n    function adaptDestSizeToZoom(destinationCanvas, sources) {\n        function containsSVGs(source) {\n            return source.srcImgTagName === 'svg';\n        }\n\n        if (sources.find(containsSVGs) !== undefined) {\n            if (pixelRatio < 1) {\n                destinationCanvas.width = destinationCanvas.width * pixelRatio;\n                destinationCanvas.height = destinationCanvas.height * pixelRatio;\n            }\n        }\n    }\n\n    function prepareImagesToBeComposed(sources, destination) {\n        var result = SUCCESSFULIMAGEPREPARATION;\n        if (sources.length === 0) {\n            result = EMPTYARRAYOFIMAGESOURCES; //nothing to do if called without sources\n        } else {\n            var minX = sources[0].genLeft;\n            var minY = sources[0].genTop;\n            var maxX = sources[0].genRight;\n            var maxY = sources[0].genBottom;\n            var i = 0;\n\n            for (i = 1; i < sources.length; i++) {\n                if (minX > sources[i].genLeft) {\n                    minX = sources[i].genLeft;\n                }\n\n                if (minY > sources[i].genTop) {\n                    minY = sources[i].genTop;\n                }\n            }\n\n            for (i = 1; i < sources.length; i++) {\n                if (maxX < sources[i].genRight) {\n                    maxX = sources[i].genRight;\n                }\n\n                if (maxY < sources[i].genBottom) {\n                    maxY = sources[i].genBottom;\n                }\n            }\n\n            if ((maxX - minX <= 0) || (maxY - minY <= 0)) {\n                result = NEGATIVEIMAGESIZE; //this might occur on hidden images\n            } else {\n                destination.width = Math.round(maxX - minX);\n                destination.height = Math.round(maxY - minY);\n\n                for (i = 0; i < sources.length; i++) {\n                    sources[i].xCompOffset = sources[i].genLeft - minX;\n                    sources[i].yCompOffset = sources[i].genTop - minY;\n                }\n\n                adaptDestSizeToZoom(destination, sources);\n            }\n        }\n        return result;\n    }\n\n    function copyImgsToCanvas(sources, destination) {\n        var prepareImagesResult = prepareImagesToBeComposed(sources, destination);\n        if (prepareImagesResult === SUCCESSFULIMAGEPREPARATION) {\n            var destinationCtx = destination.getContext('2d');\n\n            for (var i = 0; i < sources.length; i++) {\n                if (sources[i].successfullyLoaded === true) {\n                    destinationCtx.drawImage(sources[i], sources[i].xCompOffset * pixelRatio, sources[i].yCompOffset * pixelRatio);\n                }\n            }\n        }\n        return prepareImagesResult;\n    }\n\n    function adnotateDestImgWithBoundingClientRect(srcCanvasOrSvg, destImg) {\n        destImg.genLeft = srcCanvasOrSvg.getBoundingClientRect().left;\n        destImg.genTop = srcCanvasOrSvg.getBoundingClientRect().top;\n\n        if (srcCanvasOrSvg.tagName === 'CANVAS') {\n            destImg.genRight = destImg.genLeft + srcCanvasOrSvg.width;\n            destImg.genBottom = destImg.genTop + srcCanvasOrSvg.height;\n        }\n\n        if (srcCanvasOrSvg.tagName === 'svg') {\n            destImg.genRight = srcCanvasOrSvg.getBoundingClientRect().right;\n            destImg.genBottom = srcCanvasOrSvg.getBoundingClientRect().bottom;\n        }\n    }\n\n    function generateTempImageFromCanvasOrSvg(srcCanvasOrSvg, destImg) {\n        if (srcCanvasOrSvg.tagName === 'CANVAS') {\n            copyCanvasToImg(srcCanvasOrSvg, destImg);\n        }\n\n        if (srcCanvasOrSvg.tagName === 'svg') {\n            copySVGToImg(srcCanvasOrSvg, destImg);\n        }\n\n        destImg.srcImgTagName = srcCanvasOrSvg.tagName;\n        adnotateDestImgWithBoundingClientRect(srcCanvasOrSvg, destImg);\n    }\n\n    function failureCallback() {\n        return GENERALFAILURECALLBACKERROR;\n    }\n\n    // used for testing\n    $.plot.composeImages = composeImages;\n\n    function init(plot) {\n        // used to extend the public API of the plot\n        plot.composeImages = composeImages;\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        name: 'composeImages',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.crosshair.js",
    "content": "/* Flot plugin for showing crosshairs when the mouse hovers over the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n    crosshair: {\n        mode: null or \"x\" or \"y\" or \"xy\"\n        color: color\n        lineWidth: number\n    }\n\nSet the mode to one of \"x\", \"y\" or \"xy\". The \"x\" mode enables a vertical\ncrosshair that lets you trace the values on the x axis, \"y\" enables a\nhorizontal crosshair and \"xy\" enables them both. \"color\" is the color of the\ncrosshair (default is \"rgba(170, 0, 0, 0.80)\"), \"lineWidth\" is the width of\nthe drawn lines (default is 1).\n\nThe plugin also adds four public methods:\n\n  - setCrosshair( pos )\n\n    Set the position of the crosshair. Note that this is cleared if the user\n    moves the mouse. \"pos\" is in coordinates of the plot and should be on the\n    form { x: xpos, y: ypos } (you can use x2/x3/... if you're using multiple\n    axes), which is coincidentally the same format as what you get from a\n    \"plothover\" event. If \"pos\" is null, the crosshair is cleared.\n\n  - clearCrosshair()\n\n    Clear the crosshair.\n\n  - lockCrosshair(pos)\n\n    Cause the crosshair to lock to the current location, no longer updating if\n    the user moves the mouse. Optionally supply a position (passed on to\n    setCrosshair()) to move it to.\n\n    Example usage:\n\n    var myFlot = $.plot( $(\"#graph\"), ..., { crosshair: { mode: \"x\" } } };\n    $(\"#graph\").bind( \"plothover\", function ( evt, position, item ) {\n        if ( item ) {\n            // Lock the crosshair to the data point being hovered\n            myFlot.lockCrosshair({\n                x: item.datapoint[ 0 ],\n                y: item.datapoint[ 1 ]\n            });\n        } else {\n            // Return normal crosshair operation\n            myFlot.unlockCrosshair();\n        }\n    });\n\n  - unlockCrosshair()\n\n    Free the crosshair to move again after locking it.\n*/\n\n(function ($) {\n    var options = {\n        crosshair: {\n            mode: null, // one of null, \"x\", \"y\" or \"xy\",\n            color: \"rgba(170, 0, 0, 0.80)\",\n            lineWidth: 1\n        }\n    };\n\n    function init(plot) {\n        // position of crosshair in pixels\n        var crosshair = {x: -1, y: -1, locked: false, highlighted: false};\n\n        plot.setCrosshair = function setCrosshair(pos) {\n            if (!pos) {\n                crosshair.x = -1;\n            } else {\n                var o = plot.p2c(pos);\n                crosshair.x = Math.max(0, Math.min(o.left, plot.width()));\n                crosshair.y = Math.max(0, Math.min(o.top, plot.height()));\n            }\n\n            plot.triggerRedrawOverlay();\n        };\n\n        plot.clearCrosshair = plot.setCrosshair; // passes null for pos\n\n        plot.lockCrosshair = function lockCrosshair(pos) {\n            if (pos) {\n                plot.setCrosshair(pos);\n            }\n\n            crosshair.locked = true;\n        };\n\n        plot.unlockCrosshair = function unlockCrosshair() {\n            crosshair.locked = false;\n            crosshair.rect = null;\n        };\n\n        function onMouseOut(e) {\n            if (crosshair.locked) {\n                return;\n            }\n\n            if (crosshair.x !== -1) {\n                crosshair.x = -1;\n                plot.triggerRedrawOverlay();\n            }\n        }\n\n        function onMouseMove(e) {\n            var offset = plot.offset();\n            if (crosshair.locked) {\n                var mouseX = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));\n                var mouseY = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));\n\n                if ((mouseX > crosshair.x - 4) && (mouseX < crosshair.x + 4) && (mouseY > crosshair.y - 4) && (mouseY < crosshair.y + 4)) {\n                    if (!crosshair.highlighted) {\n                        crosshair.highlighted = true;\n                        plot.triggerRedrawOverlay();\n                    }\n                } else {\n                    if (crosshair.highlighted) {\n                        crosshair.highlighted = false;\n                        plot.triggerRedrawOverlay();\n                    }\n                }\n                return;\n            }\n\n            if (plot.getSelection && plot.getSelection()) {\n                crosshair.x = -1; // hide the crosshair while selecting\n                return;\n            }\n\n            crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));\n            crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));\n            plot.triggerRedrawOverlay();\n        }\n\n        plot.hooks.bindEvents.push(function (plot, eventHolder) {\n            if (!plot.getOptions().crosshair.mode) {\n                return;\n            }\n\n            eventHolder.mouseout(onMouseOut);\n            eventHolder.mousemove(onMouseMove);\n        });\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            var c = plot.getOptions().crosshair;\n            if (!c.mode) {\n                return;\n            }\n\n            var plotOffset = plot.getPlotOffset();\n\n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n\n            if (crosshair.x !== -1) {\n                var adj = plot.getOptions().crosshair.lineWidth % 2 ? 0.5 : 0;\n\n                ctx.strokeStyle = c.color;\n                ctx.lineWidth = c.lineWidth;\n                ctx.lineJoin = \"round\";\n\n                ctx.beginPath();\n                if (c.mode.indexOf(\"x\") !== -1) {\n                    var drawX = Math.floor(crosshair.x) + adj;\n                    ctx.moveTo(drawX, 0);\n                    ctx.lineTo(drawX, plot.height());\n                }\n                if (c.mode.indexOf(\"y\") !== -1) {\n                    var drawY = Math.floor(crosshair.y) + adj;\n                    ctx.moveTo(0, drawY);\n                    ctx.lineTo(plot.width(), drawY);\n                }\n                if (crosshair.locked) {\n                    if (crosshair.highlighted) ctx.fillStyle = 'orange';\n                    else ctx.fillStyle = c.color;\n                    ctx.fillRect(Math.floor(crosshair.x) + adj - 4, Math.floor(crosshair.y) + adj - 4, 8, 8);\n                }\n                ctx.stroke();\n            }\n            ctx.restore();\n        });\n\n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mouseout\", onMouseOut);\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n        });\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'crosshair',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.drawSeries.js",
    "content": "/**\n## jquery.flot.drawSeries.js\n\nThis plugin is used by flot for drawing lines, plots, bars or area.\n\n### Public methods\n*/\n\n(function($) {\n    \"use strict\";\n\n    function DrawSeries() {\n        function plotLine(datapoints, xoffset, yoffset, axisx, axisy, ctx, steps) {\n            var points = datapoints.points,\n                ps = datapoints.pointsize,\n                prevx = null,\n                prevy = null;\n            var x1 = 0.0,\n                y1 = 0.0,\n                x2 = 0.0,\n                y2 = 0.0,\n                mx = null,\n                my = null,\n                i = 0;\n\n            ctx.beginPath();\n            for (i = ps; i < points.length; i += ps) {\n                x1 = points[i - ps];\n                y1 = points[i - ps + 1];\n                x2 = points[i];\n                y2 = points[i + 1];\n\n                if (x1 === null || x2 === null) {\n                    mx = null;\n                    my = null;\n                    continue;\n                }\n\n                if (isNaN(x1) || isNaN(x2) || isNaN(y1) || isNaN(y2)) {\n                    prevx = null;\n                    prevy = null;\n                    continue;\n                }\n\n                if (steps) {\n                    if (mx !== null && my !== null) {\n                        // if middle point exists, transfer p2 -> p1 and p1 -> mp\n                        x2 = x1;\n                        y2 = y1;\n                        x1 = mx;\n                        y1 = my;\n\n                        // 'remove' middle point\n                        mx = null;\n                        my = null;\n\n                        // subtract pointsize from i to have current point p1 handled again\n                        i -= ps;\n                    } else if (y1 !== y2 && x1 !== x2) {\n                        // create a middle point\n                        y2 = y1;\n                        mx = x2;\n                        my = y1;\n                    }\n                }\n\n                // clip with ymin\n                if (y1 <= y2 && y1 < axisy.min) {\n                    if (y2 < axisy.min) {\n                        // line segment is outside\n                        continue;\n                    }\n                    // compute new intersection point\n                    x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y1 = axisy.min;\n                } else if (y2 <= y1 && y2 < axisy.min) {\n                    if (y1 < axisy.min) {\n                        continue;\n                    }\n\n                    x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y2 = axisy.min;\n                }\n\n                // clip with ymax\n                if (y1 >= y2 && y1 > axisy.max) {\n                    if (y2 > axisy.max) {\n                        continue;\n                    }\n\n                    x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y1 = axisy.max;\n                } else if (y2 >= y1 && y2 > axisy.max) {\n                    if (y1 > axisy.max) {\n                        continue;\n                    }\n\n                    x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y2 = axisy.max;\n                }\n\n                // clip with xmin\n                if (x1 <= x2 && x1 < axisx.min) {\n                    if (x2 < axisx.min) {\n                        continue;\n                    }\n\n                    y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x1 = axisx.min;\n                } else if (x2 <= x1 && x2 < axisx.min) {\n                    if (x1 < axisx.min) {\n                        continue;\n                    }\n\n                    y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x2 = axisx.min;\n                }\n\n                // clip with xmax\n                if (x1 >= x2 && x1 > axisx.max) {\n                    if (x2 > axisx.max) {\n                        continue;\n                    }\n\n                    y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x1 = axisx.max;\n                } else if (x2 >= x1 && x2 > axisx.max) {\n                    if (x1 > axisx.max) {\n                        continue;\n                    }\n\n                    y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x2 = axisx.max;\n                }\n\n                if (x1 !== prevx || y1 !== prevy) {\n                    ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);\n                }\n\n                prevx = x2;\n                prevy = y2;\n                ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);\n            }\n            ctx.stroke();\n        }\n\n        function plotLineArea(datapoints, axisx, axisy, fillTowards, ctx, steps) {\n            var points = datapoints.points,\n                ps = datapoints.pointsize,\n                bottom = fillTowards > axisy.min ? Math.min(axisy.max, fillTowards) : axisy.min,\n                i = 0,\n                ypos = 1,\n                areaOpen = false,\n                segmentStart = 0,\n                segmentEnd = 0,\n                mx = null,\n                my = null;\n\n            // we process each segment in two turns, first forward\n            // direction to sketch out top, then once we hit the\n            // end we go backwards to sketch the bottom\n            while (true) {\n                if (ps > 0 && i > points.length + ps) {\n                    break;\n                }\n\n                i += ps; // ps is negative if going backwards\n\n                var x1 = points[i - ps],\n                    y1 = points[i - ps + ypos],\n                    x2 = points[i],\n                    y2 = points[i + ypos];\n\n                if (ps === -2) {\n                    /* going backwards and no value for the bottom provided in the series*/\n                    y1 = y2 = bottom;\n                }\n\n                if (areaOpen) {\n                    if (ps > 0 && x1 != null && x2 == null) {\n                        // at turning point\n                        segmentEnd = i;\n                        ps = -ps;\n                        ypos = 2;\n                        continue;\n                    }\n\n                    if (ps < 0 && i === segmentStart + ps) {\n                        // done with the reverse sweep\n                        ctx.fill();\n                        areaOpen = false;\n                        ps = -ps;\n                        ypos = 1;\n                        i = segmentStart = segmentEnd + ps;\n                        continue;\n                    }\n                }\n\n                if (x1 == null || x2 == null) {\n                    mx = null;\n                    my = null;\n                    continue;\n                }\n\n                if (steps) {\n                    if (mx !== null && my !== null) {\n                        // if middle point exists, transfer p2 -> p1 and p1 -> mp\n                        x2 = x1;\n                        y2 = y1;\n                        x1 = mx;\n                        y1 = my;\n\n                        // 'remove' middle point\n                        mx = null;\n                        my = null;\n\n                        // subtract pointsize from i to have current point p1 handled again\n                        i -= ps;\n                    } else if (y1 !== y2 && x1 !== x2) {\n                        // create a middle point\n                        y2 = y1;\n                        mx = x2;\n                        my = y1;\n                    }\n                }\n\n                // clip x values\n\n                // clip with xmin\n                if (x1 <= x2 && x1 < axisx.min) {\n                    if (x2 < axisx.min) {\n                        continue;\n                    }\n\n                    y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x1 = axisx.min;\n                } else if (x2 <= x1 && x2 < axisx.min) {\n                    if (x1 < axisx.min) {\n                        continue;\n                    }\n\n                    y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x2 = axisx.min;\n                }\n\n                // clip with xmax\n                if (x1 >= x2 && x1 > axisx.max) {\n                    if (x2 > axisx.max) {\n                        continue;\n                    }\n\n                    y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x1 = axisx.max;\n                } else if (x2 >= x1 && x2 > axisx.max) {\n                    if (x1 > axisx.max) {\n                        continue;\n                    }\n\n                    y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n                    x2 = axisx.max;\n                }\n\n                if (!areaOpen) {\n                    // open area\n                    ctx.beginPath();\n                    ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));\n                    areaOpen = true;\n                }\n\n                // now first check the case where both is outside\n                if (y1 >= axisy.max && y2 >= axisy.max) {\n                    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));\n                    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));\n                    continue;\n                } else if (y1 <= axisy.min && y2 <= axisy.min) {\n                    ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));\n                    ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));\n                    continue;\n                }\n\n                // else it's a bit more complicated, there might\n                // be a flat maxed out rectangle first, then a\n                // triangular cutout or reverse; to find these\n                // keep track of the current x values\n                var x1old = x1,\n                    x2old = x2;\n\n                // clip the y values, without shortcutting, we\n                // go through all cases in turn\n\n                // clip with ymin\n                if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {\n                    x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y1 = axisy.min;\n                } else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {\n                    x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y2 = axisy.min;\n                }\n\n                // clip with ymax\n                if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {\n                    x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y1 = axisy.max;\n                } else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {\n                    x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n                    y2 = axisy.max;\n                }\n\n                // if the x value was changed we got a rectangle\n                // to fill\n                if (x1 !== x1old) {\n                    ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));\n                    // it goes to (x1, y1), but we fill that below\n                }\n\n                // fill triangular section, this sometimes result\n                // in redundant points if (x1, y1) hasn't changed\n                // from previous line to, but we just ignore that\n                ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));\n                ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\n\n                // fill the other rectangle if it's there\n                if (x2 !== x2old) {\n                    ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));\n                    ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));\n                }\n            }\n        }\n\n        /**\n        - drawSeriesLines(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient)\n\n         This function is used for drawing lines or area fill.  In case the series has line decimation function\n         attached, before starting to draw, as an optimization the points will first be decimated.\n\n         The series parameter contains the series to be drawn on ctx context. The plotOffset, plotWidth and\n         plotHeight are the corresponding parameters of flot used to determine the drawing surface.\n         The function getColorOrGradient is used to compute the fill style of lines and area.\n        */\n        function drawSeriesLines(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient) {\n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n            ctx.lineJoin = \"round\";\n\n            if (series.lines.dashes && ctx.setLineDash) {\n                ctx.setLineDash(series.lines.dashes);\n            }\n\n            var datapoints = {\n                format: series.datapoints.format,\n                points: series.datapoints.points,\n                pointsize: series.datapoints.pointsize\n            };\n\n            if (series.decimate) {\n                datapoints.points = series.decimate(series, series.xaxis.min, series.xaxis.max, plotWidth, series.yaxis.min, series.yaxis.max, plotHeight);\n            }\n\n            var lw = series.lines.lineWidth;\n\n            ctx.lineWidth = lw;\n            ctx.strokeStyle = series.color;\n            var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight, getColorOrGradient);\n            if (fillStyle) {\n                ctx.fillStyle = fillStyle;\n                plotLineArea(datapoints, series.xaxis, series.yaxis, series.lines.fillTowards || 0, ctx, series.lines.steps);\n            }\n\n            if (lw > 0) {\n                plotLine(datapoints, 0, 0, series.xaxis, series.yaxis, ctx, series.lines.steps);\n            }\n\n            ctx.restore();\n        }\n\n        /**\n        - drawSeriesPoints(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient)\n\n         This function is used for drawing points using a given symbol. In case the series has points decimation\n         function attached, before starting to draw, as an optimization the points will first be decimated.\n\n         The series parameter contains the series to be drawn on ctx context. The plotOffset, plotWidth and\n         plotHeight are the corresponding parameters of flot used to determine the drawing surface.\n         The function drawSymbol is used to compute and draw the symbol chosen for the points.\n        */\n        function drawSeriesPoints(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient) {\n            function drawCircle(ctx, x, y, radius, shadow, fill) {\n                ctx.moveTo(x + radius, y);\n                ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);\n            }\n            drawCircle.fill = true;\n            function plotPoints(datapoints, radius, fill, offset, shadow, axisx, axisy, drawSymbolFn) {\n                var points = datapoints.points,\n                    ps = datapoints.pointsize;\n\n                ctx.beginPath();\n                for (var i = 0; i < points.length; i += ps) {\n                    var x = points[i],\n                        y = points[i + 1];\n                    if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) {\n                        continue;\n                    }\n\n                    x = axisx.p2c(x);\n                    y = axisy.p2c(y) + offset;\n\n                    drawSymbolFn(ctx, x, y, radius, shadow, fill);\n                }\n                if (drawSymbolFn.fill && !shadow) {\n                    ctx.fill();\n                }\n                ctx.stroke();\n            }\n\n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n\n            var datapoints = {\n                format: series.datapoints.format,\n                points: series.datapoints.points,\n                pointsize: series.datapoints.pointsize\n            };\n\n            if (series.decimatePoints) {\n                datapoints.points = series.decimatePoints(series, series.xaxis.min, series.xaxis.max, plotWidth, series.yaxis.min, series.yaxis.max, plotHeight);\n            }\n\n            var lw = series.points.lineWidth,\n                radius = series.points.radius,\n                symbol = series.points.symbol,\n                drawSymbolFn;\n\n            if (symbol === 'circle') {\n                drawSymbolFn = drawCircle;\n            } else if (typeof symbol === 'string' && drawSymbol && drawSymbol[symbol]) {\n                drawSymbolFn = drawSymbol[symbol];\n            } else if (typeof drawSymbol === 'function') {\n                drawSymbolFn = drawSymbol;\n            }\n\n            // If the user sets the line width to 0, we change it to a very\n            // small value. A line width of 0 seems to force the default of 1.\n\n            if (lw === 0) {\n                lw = 0.0001;\n            }\n\n            ctx.lineWidth = lw;\n            ctx.fillStyle = getFillStyle(series.points, series.color, null, null, getColorOrGradient);\n            ctx.strokeStyle = series.color;\n            plotPoints(datapoints, radius,\n                true, 0, false,\n                series.xaxis, series.yaxis, drawSymbolFn);\n            ctx.restore();\n        }\n\n        function drawBar(x, y, b, barLeft, barRight, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {\n            var left = x + barLeft,\n                right = x + barRight,\n                bottom = b, top = y,\n                drawLeft, drawRight, drawTop, drawBottom = false,\n                tmp;\n\n            drawLeft = drawRight = drawTop = true;\n\n            // in horizontal mode, we start the bar from the left\n            // instead of from the bottom so it appears to be\n            // horizontal rather than vertical\n            if (horizontal) {\n                drawBottom = drawRight = drawTop = true;\n                drawLeft = false;\n                left = b;\n                right = x;\n                top = y + barLeft;\n                bottom = y + barRight;\n\n                // account for negative bars\n                if (right < left) {\n                    tmp = right;\n                    right = left;\n                    left = tmp;\n                    drawLeft = true;\n                    drawRight = false;\n                }\n            } else {\n                drawLeft = drawRight = drawTop = true;\n                drawBottom = false;\n                left = x + barLeft;\n                right = x + barRight;\n                bottom = b;\n                top = y;\n\n                // account for negative bars\n                if (top < bottom) {\n                    tmp = top;\n                    top = bottom;\n                    bottom = tmp;\n                    drawBottom = true;\n                    drawTop = false;\n                }\n            }\n\n            // clip\n            if (right < axisx.min || left > axisx.max ||\n                top < axisy.min || bottom > axisy.max) {\n                return;\n            }\n\n            if (left < axisx.min) {\n                left = axisx.min;\n                drawLeft = false;\n            }\n\n            if (right > axisx.max) {\n                right = axisx.max;\n                drawRight = false;\n            }\n\n            if (bottom < axisy.min) {\n                bottom = axisy.min;\n                drawBottom = false;\n            }\n\n            if (top > axisy.max) {\n                top = axisy.max;\n                drawTop = false;\n            }\n\n            left = axisx.p2c(left);\n            bottom = axisy.p2c(bottom);\n            right = axisx.p2c(right);\n            top = axisy.p2c(top);\n\n            // fill the bar\n            if (fillStyleCallback) {\n                c.fillStyle = fillStyleCallback(bottom, top);\n                c.fillRect(left, top, right - left, bottom - top)\n            }\n\n            // draw outline\n            if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {\n                c.beginPath();\n\n                // FIXME: inline moveTo is buggy with excanvas\n                c.moveTo(left, bottom);\n                if (drawLeft) {\n                    c.lineTo(left, top);\n                } else {\n                    c.moveTo(left, top);\n                }\n\n                if (drawTop) {\n                    c.lineTo(right, top);\n                } else {\n                    c.moveTo(right, top);\n                }\n\n                if (drawRight) {\n                    c.lineTo(right, bottom);\n                } else {\n                    c.moveTo(right, bottom);\n                }\n\n                if (drawBottom) {\n                    c.lineTo(left, bottom);\n                } else {\n                    c.moveTo(left, bottom);\n                }\n\n                c.stroke();\n            }\n        }\n\n        /**\n        - drawSeriesBars(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient)\n\n         This function is used for drawing series represented as bars. In case the series has decimation\n         function attached, before starting to draw, as an optimization the points will first be decimated.\n\n         The series parameter contains the series to be drawn on ctx context. The plotOffset, plotWidth and\n         plotHeight are the corresponding parameters of flot used to determine the drawing surface.\n         The function getColorOrGradient is used to compute the fill style of bars.\n        */\n        function drawSeriesBars(series, ctx, plotOffset, plotWidth, plotHeight, drawSymbol, getColorOrGradient) {\n            function plotBars(datapoints, barLeft, barRight, fillStyleCallback, axisx, axisy) {\n                var points = datapoints.points,\n                    ps = datapoints.pointsize,\n                    fillTowards = series.bars.fillTowards || 0,\n                    defaultBottom = fillTowards > axisy.min ? Math.min(axisy.max, fillTowards) : axisy.min;\n\n                for (var i = 0; i < points.length; i += ps) {\n                    if (points[i] == null) {\n                        continue;\n                    }\n\n                    // Use third point as bottom if pointsize is 3\n                    var bottom = ps === 3 ? points[i + 2] : defaultBottom;\n                    drawBar(points[i], points[i + 1], bottom, barLeft, barRight, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);\n                }\n            }\n\n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n\n            var datapoints = {\n                format: series.datapoints.format,\n                points: series.datapoints.points,\n                pointsize: series.datapoints.pointsize\n            };\n\n            if (series.decimate) {\n                datapoints.points = series.decimate(series, series.xaxis.min, series.xaxis.max, plotWidth);\n            }\n\n            ctx.lineWidth = series.bars.lineWidth;\n            ctx.strokeStyle = series.color;\n\n            var barLeft;\n            var barWidth = series.bars.barWidth[0] || series.bars.barWidth;\n            switch (series.bars.align) {\n                case \"left\":\n                    barLeft = 0;\n                    break;\n                case \"right\":\n                    barLeft = -barWidth;\n                    break;\n                default:\n                    barLeft = -barWidth / 2;\n            }\n\n            var fillStyleCallback = series.bars.fill ? function(bottom, top) {\n                return getFillStyle(series.bars, series.color, bottom, top, getColorOrGradient);\n            } : null;\n\n            plotBars(datapoints, barLeft, barLeft + barWidth, fillStyleCallback, series.xaxis, series.yaxis);\n            ctx.restore();\n        }\n\n        function getFillStyle(filloptions, seriesColor, bottom, top, getColorOrGradient) {\n            var fill = filloptions.fill;\n            if (!fill) {\n                return null;\n            }\n\n            if (filloptions.fillColor) {\n                return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);\n            }\n\n            var c = $.color.parse(seriesColor);\n            c.a = typeof fill === \"number\" ? fill : 0.4;\n            c.normalize();\n            return c.toString();\n        }\n\n        this.drawSeriesLines = drawSeriesLines;\n        this.drawSeriesPoints = drawSeriesPoints;\n        this.drawSeriesBars = drawSeriesBars;\n        this.drawBar = drawBar;\n    };\n\n    $.plot.drawSeries = new DrawSeries();\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.errorbars.js",
    "content": "/* Flot plugin for plotting error bars.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nError bars are used to show standard deviation and other statistical\nproperties in a plot.\n\n* Created by Rui Pereira  -  rui (dot) pereira (at) gmail (dot) com\n\nThis plugin allows you to plot error-bars over points. Set \"errorbars\" inside\nthe points series to the axis name over which there will be error values in\nyour data array (*even* if you do not intend to plot them later, by setting\n\"show: null\" on xerr/yerr).\n\nThe plugin supports these options:\n\n    series: {\n        points: {\n            errorbars: \"x\" or \"y\" or \"xy\",\n            xerr: {\n                show: null/false or true,\n                asymmetric: null/false or true,\n                upperCap: null or \"-\" or function,\n                lowerCap: null or \"-\" or function,\n                color: null or color,\n                radius: null or number\n            },\n            yerr: { same options as xerr }\n        }\n    }\n\nEach data point array is expected to be of the type:\n\n    \"x\"  [ x, y, xerr ]\n    \"y\"  [ x, y, yerr ]\n    \"xy\" [ x, y, xerr, yerr ]\n\nWhere xerr becomes xerr_lower,xerr_upper for the asymmetric error case, and\nequivalently for yerr. Eg., a datapoint for the \"xy\" case with symmetric\nerror-bars on X and asymmetric on Y would be:\n\n    [ x, y, xerr, yerr_lower, yerr_upper ]\n\nBy default no end caps are drawn. Setting upperCap and/or lowerCap to \"-\" will\ndraw a small cap perpendicular to the error bar. They can also be set to a\nuser-defined drawing function, with (ctx, x, y, radius) as parameters, as eg.\n\n    function drawSemiCircle( ctx, x, y, radius ) {\n        ctx.beginPath();\n        ctx.arc( x, y, radius, 0, Math.PI, false );\n        ctx.moveTo( x - radius, y );\n        ctx.lineTo( x + radius, y );\n        ctx.stroke();\n    }\n\nColor and radius both default to the same ones of the points series if not\nset. The independent radius parameter on xerr/yerr is useful for the case when\nwe may want to add error-bars to a line, without showing the interconnecting\npoints (with radius: 0), and still showing end caps on the error-bars.\nshadowSize and lineWidth are derived as well from the points series.\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            points: {\n                errorbars: null, //should be 'x', 'y' or 'xy'\n                xerr: {err: 'x', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null},\n                yerr: {err: 'y', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null}\n            }\n        }\n    };\n\n    function processRawData(plot, series, data, datapoints) {\n        if (!series.points.errorbars) {\n            return;\n        }\n\n        // x,y values\n        var format = [\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n\n        var errors = series.points.errorbars;\n        // error bars - first X then Y\n        if (errors === 'x' || errors === 'xy') {\n            // lower / upper error\n            if (series.points.xerr.asymmetric) {\n                format.push({ x: true, number: true, required: true });\n                format.push({ x: true, number: true, required: true });\n            } else {\n                format.push({ x: true, number: true, required: true });\n            }\n        }\n        if (errors === 'y' || errors === 'xy') {\n            // lower / upper error\n            if (series.points.yerr.asymmetric) {\n                format.push({ y: true, number: true, required: true });\n                format.push({ y: true, number: true, required: true });\n            } else {\n                format.push({ y: true, number: true, required: true });\n            }\n        }\n        datapoints.format = format;\n    }\n\n    function parseErrors(series, i) {\n        var points = series.datapoints.points;\n\n        // read errors from points array\n        var exl = null,\n            exu = null,\n            eyl = null,\n            eyu = null;\n        var xerr = series.points.xerr,\n            yerr = series.points.yerr;\n\n        var eb = series.points.errorbars;\n        // error bars - first X\n        if (eb === 'x' || eb === 'xy') {\n            if (xerr.asymmetric) {\n                exl = points[i + 2];\n                exu = points[i + 3];\n                if (eb === 'xy') {\n                    if (yerr.asymmetric) {\n                        eyl = points[i + 4];\n                        eyu = points[i + 5];\n                    } else {\n                        eyl = points[i + 4];\n                    }\n                }\n            } else {\n                exl = points[i + 2];\n                if (eb === 'xy') {\n                    if (yerr.asymmetric) {\n                        eyl = points[i + 3];\n                        eyu = points[i + 4];\n                    } else {\n                        eyl = points[i + 3];\n                    }\n                }\n            }\n        // only Y\n        } else {\n            if (eb === 'y') {\n                if (yerr.asymmetric) {\n                    eyl = points[i + 2];\n                    eyu = points[i + 3];\n                } else {\n                    eyl = points[i + 2];\n                }\n            }\n        }\n\n        // symmetric errors?\n        if (exu == null) exu = exl;\n        if (eyu == null) eyu = eyl;\n\n        var errRanges = [exl, exu, eyl, eyu];\n        // nullify if not showing\n        if (!xerr.show) {\n            errRanges[0] = null;\n            errRanges[1] = null;\n        }\n        if (!yerr.show) {\n            errRanges[2] = null;\n            errRanges[3] = null;\n        }\n        return errRanges;\n    }\n\n    function drawSeriesErrors(plot, ctx, s) {\n        var points = s.datapoints.points,\n            ps = s.datapoints.pointsize,\n            ax = [s.xaxis, s.yaxis],\n            radius = s.points.radius,\n            err = [s.points.xerr, s.points.yerr],\n            tmp;\n\n        //sanity check, in case some inverted axis hack is applied to flot\n        var invertX = false;\n        if (ax[0].p2c(ax[0].max) < ax[0].p2c(ax[0].min)) {\n            invertX = true;\n            tmp = err[0].lowerCap;\n            err[0].lowerCap = err[0].upperCap;\n            err[0].upperCap = tmp;\n        }\n\n        var invertY = false;\n        if (ax[1].p2c(ax[1].min) < ax[1].p2c(ax[1].max)) {\n            invertY = true;\n            tmp = err[1].lowerCap;\n            err[1].lowerCap = err[1].upperCap;\n            err[1].upperCap = tmp;\n        }\n\n        for (var i = 0; i < s.datapoints.points.length; i += ps) {\n            //parse\n            var errRanges = parseErrors(s, i);\n\n            //cycle xerr & yerr\n            for (var e = 0; e < err.length; e++) {\n                var minmax = [ax[e].min, ax[e].max];\n\n                //draw this error?\n                if (errRanges[e * err.length]) {\n                    //data coordinates\n                    var x = points[i],\n                        y = points[i + 1];\n\n                    //errorbar ranges\n                    var upper = [x, y][e] + errRanges[e * err.length + 1],\n                        lower = [x, y][e] - errRanges[e * err.length];\n\n                    //points outside of the canvas\n                    if (err[e].err === 'x') {\n                        if (y > ax[1].max || y < ax[1].min || upper < ax[0].min || lower > ax[0].max) {\n                            continue;\n                        }\n                    }\n\n                    if (err[e].err === 'y') {\n                        if (x > ax[0].max || x < ax[0].min || upper < ax[1].min || lower > ax[1].max) {\n                            continue;\n                        }\n                    }\n\n                    // prevent errorbars getting out of the canvas\n                    var drawUpper = true,\n                        drawLower = true;\n\n                    if (upper > minmax[1]) {\n                        drawUpper = false;\n                        upper = minmax[1];\n                    }\n                    if (lower < minmax[0]) {\n                        drawLower = false;\n                        lower = minmax[0];\n                    }\n\n                    //sanity check, in case some inverted axis hack is applied to flot\n                    if ((err[e].err === 'x' && invertX) || (err[e].err === 'y' && invertY)) {\n                        //swap coordinates\n                        tmp = lower;\n                        lower = upper;\n                        upper = tmp;\n                        tmp = drawLower;\n                        drawLower = drawUpper;\n                        drawUpper = tmp;\n                        tmp = minmax[0];\n                        minmax[0] = minmax[1];\n                        minmax[1] = tmp;\n                    }\n\n                    // convert to pixels\n                    x = ax[0].p2c(x);\n                    y = ax[1].p2c(y);\n                    upper = ax[e].p2c(upper);\n                    lower = ax[e].p2c(lower);\n                    minmax[0] = ax[e].p2c(minmax[0]);\n                    minmax[1] = ax[e].p2c(minmax[1]);\n\n                    //same style as points by default\n                    var lw = err[e].lineWidth ? err[e].lineWidth : s.points.lineWidth,\n                        sw = s.points.shadowSize != null ? s.points.shadowSize : s.shadowSize;\n\n                    //shadow as for points\n                    if (lw > 0 && sw > 0) {\n                        var w = sw / 2;\n                        ctx.lineWidth = w;\n                        ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w + w / 2, minmax);\n\n                        ctx.strokeStyle = \"rgba(0,0,0,0.2)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w / 2, minmax);\n                    }\n\n                    ctx.strokeStyle = err[e].color\n                        ? err[e].color\n                        : s.color;\n                    ctx.lineWidth = lw;\n                    //draw it\n                    drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, 0, minmax);\n                }\n            }\n        }\n    }\n\n    function drawError(ctx, err, x, y, upper, lower, drawUpper, drawLower, radius, offset, minmax) {\n        //shadow offset\n        y += offset;\n        upper += offset;\n        lower += offset;\n\n        // error bar - avoid plotting over circles\n        if (err.err === 'x') {\n            if (upper > x + radius) drawPath(ctx, [[upper, y], [Math.max(x + radius, minmax[0]), y]]);\n            else drawUpper = false;\n\n            if (lower < x - radius) drawPath(ctx, [[Math.min(x - radius, minmax[1]), y], [lower, y]]);\n            else drawLower = false;\n        } else {\n            if (upper < y - radius) drawPath(ctx, [[x, upper], [x, Math.min(y - radius, minmax[0])]]);\n            else drawUpper = false;\n\n            if (lower > y + radius) drawPath(ctx, [[x, Math.max(y + radius, minmax[1])], [x, lower]]);\n            else drawLower = false;\n        }\n\n        //internal radius value in errorbar, allows to plot radius 0 points and still keep proper sized caps\n        //this is a way to get errorbars on lines without visible connecting dots\n        radius = err.radius != null\n            ? err.radius\n            : radius;\n\n        // upper cap\n        if (drawUpper) {\n            if (err.upperCap === '-') {\n                if (err.err === 'x') drawPath(ctx, [[upper, y - radius], [upper, y + radius]]);\n                else drawPath(ctx, [[x - radius, upper], [x + radius, upper]]);\n            } else if ($.isFunction(err.upperCap)) {\n                if (err.err === 'x') err.upperCap(ctx, upper, y, radius);\n                else err.upperCap(ctx, x, upper, radius);\n            }\n        }\n        // lower cap\n        if (drawLower) {\n            if (err.lowerCap === '-') {\n                if (err.err === 'x') drawPath(ctx, [[lower, y - radius], [lower, y + radius]]);\n                else drawPath(ctx, [[x - radius, lower], [x + radius, lower]]);\n            } else if ($.isFunction(err.lowerCap)) {\n                if (err.err === 'x') err.lowerCap(ctx, lower, y, radius);\n                else err.lowerCap(ctx, x, lower, radius);\n            }\n        }\n    }\n\n    function drawPath(ctx, pts) {\n        ctx.beginPath();\n        ctx.moveTo(pts[0][0], pts[0][1]);\n        for (var p = 1; p < pts.length; p++) {\n            ctx.lineTo(pts[p][0], pts[p][1]);\n        }\n\n        ctx.stroke();\n    }\n\n    function draw(plot, ctx) {\n        var plotOffset = plot.getPlotOffset();\n\n        ctx.save();\n        ctx.translate(plotOffset.left, plotOffset.top);\n        $.each(plot.getData(), function (i, s) {\n            if (s.points.errorbars && (s.points.xerr.show || s.points.yerr.show)) {\n                drawSeriesErrors(plot, ctx, s);\n            }\n        });\n        ctx.restore();\n    }\n\n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.draw.push(draw);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'errorbars',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.fillbetween.js",
    "content": "/* Flot plugin for computing bottoms for filled line and bar charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe case: you've got two series that you want to fill the area between. In Flot\nterms, you need to use one as the fill bottom of the other. You can specify the\nbottom of each data point as the third coordinate manually, or you can use this\nplugin to compute it for you.\n\nIn order to name the other series, you need to give it an id, like this:\n\n    var dataset = [\n        { data: [ ... ], id: \"foo\" } ,         // use default bottom\n        { data: [ ... ], fillBetween: \"foo\" }, // use first dataset as bottom\n    ];\n\n    $.plot($(\"#placeholder\"), dataset, { lines: { show: true, fill: true }});\n\nAs a convenience, if the id given is a number that doesn't appear as an id in\nthe series, it is interpreted as the index in the array instead (so fillBetween:\n0 can also mean the first series).\n\nInternally, the plugin modifies the datapoints in each series. For line series,\nextra data points might be inserted through interpolation. Note that at points\nwhere the bottom line is not defined (due to a null point or start/end of line),\nthe current line will show a gap too. The algorithm comes from the\njquery.flot.stack.js plugin, possibly some code could be shared.\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            fillBetween: null // or number\n        }\n    };\n\n    function init(plot) {\n        function findBottomSeries(s, allseries) {\n            var i;\n\n            for (i = 0; i < allseries.length; ++i) {\n                if (allseries[ i ].id === s.fillBetween) {\n                    return allseries[ i ];\n                }\n            }\n\n            if (typeof s.fillBetween === \"number\") {\n                if (s.fillBetween < 0 || s.fillBetween >= allseries.length) {\n                    return null;\n                }\n                return allseries[ s.fillBetween ];\n            }\n\n            return null;\n        }\n\n        function computeFormat(plot, s, data, datapoints) {\n            if (s.fillBetween == null) {\n                return;\n            }\n\n            var format = datapoints.format;\n            var plotHasId = function(id) {\n                var plotData = plot.getData();\n                for (var i = 0; i < plotData.length; i++) {\n                    if (plotData[i].id === id) {\n                        return true;\n                    }\n                }\n\n                return false;\n            }\n\n            if (!format) {\n                format = [];\n\n                format.push({\n                    x: true,\n                    number: true,\n                    computeRange: s.xaxis.options.autoScale !== 'none',\n                    required: true\n                });\n                format.push({\n                    y: true,\n                    number: true,\n                    computeRange: s.yaxis.options.autoScale !== 'none',\n                    required: true\n                });\n\n                if (s.fillBetween !== undefined && s.fillBetween !== '' && plotHasId(s.fillBetween) && s.fillBetween !== s.id) {\n                    format.push({\n                        x: false,\n                        y: true,\n                        number: true,\n                        required: false,\n                        computeRange: s.yaxis.options.autoScale !== 'none',\n                        defaultValue: 0\n                    });\n                }\n\n                datapoints.format = format;\n            }\n        }\n\n        function computeFillBottoms(plot, s, datapoints) {\n            if (s.fillBetween == null) {\n                return;\n            }\n\n            var other = findBottomSeries(s, plot.getData());\n\n            if (!other) {\n                return;\n            }\n\n            var ps = datapoints.pointsize,\n                points = datapoints.points,\n                otherps = other.datapoints.pointsize,\n                otherpoints = other.datapoints.points,\n                newpoints = [],\n                px, py, intery, qx, qy, bottom,\n                withlines = s.lines.show,\n                withbottom = ps > 2 && datapoints.format[2].y,\n                withsteps = withlines && s.lines.steps,\n                fromgap = true,\n                i = 0,\n                j = 0,\n                l, m;\n\n            while (true) {\n                if (i >= points.length) {\n                    break;\n                }\n\n                l = newpoints.length;\n\n                if (points[ i ] == null) {\n                    // copy gaps\n                    for (m = 0; m < ps; ++m) {\n                        newpoints.push(points[ i + m ]);\n                    }\n\n                    i += ps;\n                } else if (j >= otherpoints.length) {\n                    // for lines, we can't use the rest of the points\n                    if (!withlines) {\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[ i + m ]);\n                        }\n                    }\n\n                    i += ps;\n                } else if (otherpoints[ j ] == null) {\n                    // oops, got a gap\n                    for (m = 0; m < ps; ++m) {\n                        newpoints.push(null);\n                    }\n\n                    fromgap = true;\n                    j += otherps;\n                } else {\n                    // cases where we actually got two points\n                    px = points[ i ];\n                    py = points[ i + 1 ];\n                    qx = otherpoints[ j ];\n                    qy = otherpoints[ j + 1 ];\n                    bottom = 0;\n\n                    if (px === qx) {\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[ i + m ]);\n                        }\n\n                        //newpoints[ l + 1 ] += qy;\n                        bottom = qy;\n\n                        i += ps;\n                        j += otherps;\n                    } else if (px > qx) {\n                        // we got past point below, might need to\n                        // insert interpolated extra point\n\n                        if (withlines && i > 0 && points[ i - ps ] != null) {\n                            intery = py + (points[ i - ps + 1 ] - py) * (qx - px) / (points[ i - ps ] - px);\n                            newpoints.push(qx);\n                            newpoints.push(intery);\n                            for (m = 2; m < ps; ++m) {\n                                newpoints.push(points[ i + m ]);\n                            }\n                            bottom = qy;\n                        }\n\n                        j += otherps;\n                    } else {\n                        // px < qx\n                        // if we come from a gap, we just skip this point\n\n                        if (fromgap && withlines) {\n                            i += ps;\n                            continue;\n                        }\n\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[ i + m ]);\n                        }\n\n                        // we might be able to interpolate a point below,\n                        // this can give us a better y\n\n                        if (withlines && j > 0 && otherpoints[ j - otherps ] != null) {\n                            bottom = qy + (otherpoints[ j - otherps + 1 ] - qy) * (px - qx) / (otherpoints[ j - otherps ] - qx);\n                        }\n\n                        //newpoints[l + 1] += bottom;\n\n                        i += ps;\n                    }\n\n                    fromgap = false;\n\n                    if (l !== newpoints.length && withbottom) {\n                        newpoints[ l + 2 ] = bottom;\n                    }\n                }\n\n                // maintain the line steps invariant\n\n                if (withsteps && l !== newpoints.length && l > 0 &&\n                    newpoints[ l ] !== null &&\n                    newpoints[ l ] !== newpoints[ l - ps ] &&\n                    newpoints[ l + 1 ] !== newpoints[ l - ps + 1 ]) {\n                    for (m = 0; m < ps; ++m) {\n                        newpoints[ l + ps + m ] = newpoints[ l + m ];\n                    }\n                    newpoints[ l + 1 ] = newpoints[ l - ps + 1 ];\n                }\n            }\n\n            datapoints.points = newpoints;\n        }\n\n        plot.hooks.processRawData.push(computeFormat);\n        plot.hooks.processDatapoints.push(computeFillBottoms);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: \"fillbetween\",\n        version: \"1.0\"\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.flatdata.js",
    "content": "/* Support for flat 1D data series.\n\nA 1D flat data series is a data series in the form of a regular 1D array. The\nmain reason for using a flat data series is that it performs better, consumes\nless memory and generates less garbage collection than the regular flot format.\n\nExample:\n\n    plot.setData([[[0,0], [1,1], [2,2], [3,3]]]); // regular flot format\n    plot.setData([{flatdata: true, data: [0, 1, 2, 3]}]); // flatdata format\n\nSet series.flatdata to true to enable this plugin.\n\nYou can use series.start to specify the starting index of the series (default is 0)\nYou can use series.step to specify the interval between consecutive indexes of the series (default is 1)\n*/\n\n/* global jQuery*/\n\n(function ($) {\n    'use strict';\n\n    function process1DRawData(plot, series, data, datapoints) {\n        if (series.flatdata === true) {\n            var start = series.start || 0;\n            var step = typeof series.step === 'number' ? series.step : 1;\n            datapoints.pointsize = 2;\n            for (var i = 0, j = 0; i < data.length; i++, j += 2) {\n                datapoints.points[j] = start + (i * step);\n                datapoints.points[j + 1] = data[i];\n            }\n            if (datapoints.points !== undefined) {\n                datapoints.points.length = data.length * 2;\n            } else {\n                datapoints.points = [];\n            }\n        }\n    }\n\n    $.plot.plugins.push({\n        init: function(plot) {\n            plot.hooks.processRawData.push(process1DRawData);\n        },\n        name: 'flatdata',\n        version: '0.0.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.hover.js",
    "content": "/* global jQuery */\n\n/**\n## jquery.flot.hover.js\n\nThis plugin is used for mouse hover and tap on a point of plot series.\nIt supports the following options:\n```js\ngrid: {\n    hoverable: false, //to trigger plothover event on mouse hover or tap on a point\n    clickable: false //to trigger plotclick event on mouse hover\n}\n```\n\nIt listens to native mouse move event or click, as well as artificial generated\ntap and touchevent.\n\nWhen the mouse is over a point or a tap on a point is performed, that point or\nthe correscponding bar will be highlighted and a \"plothover\" event will be generated.\n\nCustom \"touchevent\" is triggered when any touch interaction is made. Hover plugin\nhandles this events by unhighlighting all of the previously highlighted points and generates\n\"plothovercleanup\" event to notify any part that is handling plothover (for exemple to cleanup\nthe tooltip from webcharts).\n*/\n\n(function($) {\n    'use strict';\n\n    var options = {\n        grid: {\n            hoverable: false,\n            clickable: false\n        }\n    };\n\n    var browser = $.plot.browser;\n\n    var eventType = {\n        click: 'click',\n        hover: 'hover'\n    }\n\n    function init(plot) {\n        var lastMouseMoveEvent;\n        var highlights = [];\n\n        function bindEvents(plot, eventHolder) {\n            var o = plot.getOptions();\n\n            if (o.grid.hoverable || o.grid.clickable) {\n                eventHolder[0].addEventListener('touchevent', triggerCleanupEvent, false);\n                eventHolder[0].addEventListener('tap', generatePlothoverEvent, false);\n            }\n\n            if (o.grid.clickable) {\n                eventHolder.bind(\"click\", onClick);\n            }\n\n            if (o.grid.hoverable) {\n                eventHolder.bind(\"mousemove\", onMouseMove);\n\n                // Use bind, rather than .mouseleave, because we officially\n                // still support jQuery 1.2.6, which doesn't define a shortcut\n                // for mouseenter or mouseleave.  This was a bug/oversight that\n                // was fixed somewhere around 1.3.x.  We can return to using\n                // .mouseleave when we drop support for 1.2.6.\n\n                eventHolder.bind(\"mouseleave\", onMouseLeave);\n            }\n        }\n\n        function shutdown(plot, eventHolder) {\n            eventHolder[0].removeEventListener('tap', generatePlothoverEvent);\n            eventHolder[0].removeEventListener('touchevent', triggerCleanupEvent);\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n            eventHolder.unbind(\"mouseleave\", onMouseLeave);\n            eventHolder.unbind(\"click\", onClick);\n            highlights = [];\n        }\n\n        function generatePlothoverEvent(e) {\n            var o = plot.getOptions(),\n                newEvent = new CustomEvent('mouseevent');\n\n            //transform from touch event to mouse event format\n            newEvent.pageX = e.detail.changedTouches[0].pageX;\n            newEvent.pageY = e.detail.changedTouches[0].pageY;\n            newEvent.clientX = e.detail.changedTouches[0].clientX;\n            newEvent.clientY = e.detail.changedTouches[0].clientY;\n\n            if (o.grid.hoverable) {\n                doTriggerClickHoverEvent(newEvent, eventType.hover, 30);\n            }\n            return false;\n        }\n\n        function doTriggerClickHoverEvent(event, eventType, searchDistance) {\n            var series = plot.getData();\n            if (event !== undefined &&\n                series.length > 0 &&\n                series[0].xaxis.c2p !== undefined &&\n                series[0].yaxis.c2p !== undefined) {\n                var eventToTrigger = \"plot\" + eventType;\n                var seriesFlag = eventType + \"able\";\n                triggerClickHoverEvent(eventToTrigger, event,\n                    function(i) {\n                        return series[i][seriesFlag] !== false;\n                    }, searchDistance);\n            }\n        }\n\n        function onMouseMove(e) {\n            lastMouseMoveEvent = e;\n            plot.getPlaceholder()[0].lastMouseMoveEvent = e;\n            doTriggerClickHoverEvent(e, eventType.hover);\n        }\n\n        function onMouseLeave(e) {\n            lastMouseMoveEvent = undefined;\n            plot.getPlaceholder()[0].lastMouseMoveEvent = undefined;\n            triggerClickHoverEvent(\"plothover\", e,\n                function(i) {\n                    return false;\n                });\n        }\n\n        function onClick(e) {\n            doTriggerClickHoverEvent(e, eventType.click);\n        }\n\n        function triggerCleanupEvent() {\n            plot.unhighlight();\n            plot.getPlaceholder().trigger('plothovercleanup');\n        }\n\n        // trigger click or hover event (they send the same parameters\n        // so we share their code)\n        function triggerClickHoverEvent(eventname, event, seriesFilter, searchDistance) {\n            var options = plot.getOptions(),\n                offset = plot.offset(),\n                page = browser.getPageXY(event),\n                canvasX = page.X - offset.left,\n                canvasY = page.Y - offset.top,\n                pos = plot.c2p({\n                    left: canvasX,\n                    top: canvasY\n                }),\n                distance = searchDistance !== undefined ? searchDistance : options.grid.mouseActiveRadius;\n\n            pos.pageX = page.X;\n            pos.pageY = page.Y;\n\n            var items = plot.findNearbyItems(canvasX, canvasY, seriesFilter, distance);\n            var item = items[0];\n\n            for (let i = 1; i < items.length; ++i) {\n                if (item.distance === undefined ||\n                    items[i].distance < item.distance) {\n                    item = items[i];\n                }\n            }\n\n            if (item) {\n                // fill in mouse pos for any listeners out there\n                item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left, 10);\n                item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top, 10);\n            } else {\n                item = null;\n            }\n\n            if (options.grid.autoHighlight) {\n                // clear auto-highlights\n                for (let i = 0; i < highlights.length; ++i) {\n                    var h = highlights[i];\n                    if ((h.auto === eventname &&\n                        !(item && h.series === item.series &&\n                            h.point[0] === item.datapoint[0] &&\n                            h.point[1] === item.datapoint[1])) || !item) {\n                        unhighlight(h.series, h.point);\n                    }\n                }\n\n                if (item) {\n                    highlight(item.series, item.datapoint, eventname);\n                }\n            }\n\n            plot.getPlaceholder().trigger(eventname, [pos, item, items]);\n        }\n\n        function highlight(s, point, auto) {\n            if (typeof s === \"number\") {\n                s = plot.getData()[s];\n            }\n\n            if (typeof point === \"number\") {\n                var ps = s.datapoints.pointsize;\n                point = s.datapoints.points.slice(ps * point, ps * (point + 1));\n            }\n\n            var i = indexOfHighlight(s, point);\n            if (i === -1) {\n                highlights.push({\n                    series: s,\n                    point: point,\n                    auto: auto\n                });\n\n                plot.triggerRedrawOverlay();\n            } else if (!auto) {\n                highlights[i].auto = false;\n            }\n        }\n\n        function unhighlight(s, point) {\n            if (s == null && point == null) {\n                highlights = [];\n                plot.triggerRedrawOverlay();\n                return;\n            }\n\n            if (typeof s === \"number\") {\n                s = plot.getData()[s];\n            }\n\n            if (typeof point === \"number\") {\n                var ps = s.datapoints.pointsize;\n                point = s.datapoints.points.slice(ps * point, ps * (point + 1));\n            }\n\n            var i = indexOfHighlight(s, point);\n            if (i !== -1) {\n                highlights.splice(i, 1);\n\n                plot.triggerRedrawOverlay();\n            }\n        }\n\n        function indexOfHighlight(s, p) {\n            for (var i = 0; i < highlights.length; ++i) {\n                var h = highlights[i];\n                if (h.series === s &&\n                    h.point[0] === p[0] &&\n                    h.point[1] === p[1]) {\n                    return i;\n                }\n            }\n\n            return -1;\n        }\n\n        function processDatapoints() {\n            triggerCleanupEvent();\n            doTriggerClickHoverEvent(lastMouseMoveEvent, eventType.hover);\n        }\n\n        function setupGrid() {\n            doTriggerClickHoverEvent(lastMouseMoveEvent, eventType.hover);\n        }\n\n        function drawOverlay(plot, octx, overlay) {\n            var plotOffset = plot.getPlotOffset(),\n                i, hi;\n\n            octx.save();\n            octx.translate(plotOffset.left, plotOffset.top);\n            for (i = 0; i < highlights.length; ++i) {\n                hi = highlights[i];\n\n                if (hi.series.bars.show) drawBarHighlight(hi.series, hi.point, octx);\n                else drawPointHighlight(hi.series, hi.point, octx, plot);\n            }\n            octx.restore();\n        }\n\n        function drawPointHighlight(series, point, octx, plot) {\n            var x = point[0],\n                y = point[1],\n                axisx = series.xaxis,\n                axisy = series.yaxis,\n                highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString();\n\n            if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) {\n                return;\n            }\n\n            var pointRadius = series.points.radius + series.points.lineWidth / 2;\n            octx.lineWidth = pointRadius;\n            octx.strokeStyle = highlightColor;\n            var radius = 1.5 * pointRadius;\n            x = axisx.p2c(x);\n            y = axisy.p2c(y);\n\n            octx.beginPath();\n            var symbol = series.points.symbol;\n            if (symbol === 'circle') {\n                octx.arc(x, y, radius, 0, 2 * Math.PI, false);\n            } else if (typeof symbol === 'string' && plot.drawSymbol && plot.drawSymbol[symbol]) {\n                plot.drawSymbol[symbol](octx, x, y, radius, false);\n            }\n\n            octx.closePath();\n            octx.stroke();\n        }\n\n        function drawBarHighlight(series, point, octx) {\n            var highlightColor = (typeof series.highlightColor === \"string\") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(),\n                fillStyle = highlightColor,\n                barLeft;\n\n            var barWidth = series.bars.barWidth[0] || series.bars.barWidth;\n            switch (series.bars.align) {\n                case \"left\":\n                    barLeft = 0;\n                    break;\n                case \"right\":\n                    barLeft = -barWidth;\n                    break;\n                default:\n                    barLeft = -barWidth / 2;\n            }\n\n            octx.lineWidth = series.bars.lineWidth;\n            octx.strokeStyle = highlightColor;\n\n            var fillTowards = series.bars.fillTowards || 0,\n                bottom = fillTowards > series.yaxis.min ? Math.min(series.yaxis.max, fillTowards) : series.yaxis.min;\n\n            $.plot.drawSeries.drawBar(point[0], point[1], point[2] || bottom, barLeft, barLeft + barWidth,\n                function() {\n                    return fillStyle;\n                }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);\n        }\n\n        function initHover(plot, options) {\n            plot.highlight = highlight;\n            plot.unhighlight = unhighlight;\n            if (options.grid.hoverable || options.grid.clickable) {\n                plot.hooks.drawOverlay.push(drawOverlay);\n                plot.hooks.processDatapoints.push(processDatapoints);\n                plot.hooks.setupGrid.push(setupGrid);\n            }\n\n            lastMouseMoveEvent = plot.getPlaceholder()[0].lastMouseMoveEvent;\n        }\n\n        plot.hooks.bindEvents.push(bindEvents);\n        plot.hooks.shutdown.push(shutdown);\n        plot.hooks.processOptions.push(initHover);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'hover',\n        version: '0.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.image.js",
    "content": "/* Flot plugin for plotting images.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe data syntax is [ [ image, x1, y1, x2, y2 ], ... ] where (x1, y1) and\n(x2, y2) are where you intend the two opposite corners of the image to end up\nin the plot. Image must be a fully loaded Javascript image (you can make one\nwith new Image()). If the image is not complete, it's skipped when plotting.\n\nThere are two helpers included for retrieving images. The easiest work the way\nthat you put in URLs instead of images in the data, like this:\n\n    [ \"myimage.png\", 0, 0, 10, 10 ]\n\nThen call $.plot.image.loadData( data, options, callback ) where data and\noptions are the same as you pass in to $.plot. This loads the images, replaces\nthe URLs in the data with the corresponding images and calls \"callback\" when\nall images are loaded (or failed loading). In the callback, you can then call\n$.plot with the data set. See the included example.\n\nA more low-level helper, $.plot.image.load(urls, callback) is also included.\nGiven a list of URLs, it calls callback with an object mapping from URL to\nImage object when all images are loaded or have failed loading.\n\nThe plugin supports these options:\n\n    series: {\n        images: {\n            show: boolean\n            anchor: \"corner\" or \"center\"\n            alpha: [ 0, 1 ]\n        }\n    }\n\nThey can be specified for a specific series:\n\n    $.plot( $(\"#placeholder\"), [{\n        data: [ ... ],\n        images: { ... }\n    ])\n\nNote that because the data format is different from usual data points, you\ncan't use images with anything else in a specific data series.\n\nSetting \"anchor\" to \"center\" causes the pixels in the image to be anchored at\nthe corner pixel centers inside of at the pixel corners, effectively letting\nhalf a pixel stick out to each side in the plot.\n\nA possible future direction could be support for tiling for large images (like\nGoogle Maps).\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            images: {\n                show: false,\n                alpha: 1,\n                anchor: \"corner\" // or \"center\"\n            }\n        }\n    };\n\n    $.plot.image = {};\n\n    $.plot.image.loadDataImages = function (series, options, callback) {\n        var urls = [], points = [];\n\n        var defaultShow = options.series.images.show;\n\n        $.each(series, function (i, s) {\n            if (!(defaultShow || s.images.show)) {\n                return;\n            }\n\n            if (s.data) {\n                s = s.data;\n            }\n\n            $.each(s, function (i, p) {\n                if (typeof p[0] === \"string\") {\n                    urls.push(p[0]);\n                    points.push(p);\n                }\n            });\n        });\n\n        $.plot.image.load(urls, function (loadedImages) {\n            $.each(points, function (i, p) {\n                var url = p[0];\n                if (loadedImages[url]) {\n                    p[0] = loadedImages[url];\n                }\n            });\n\n            callback();\n        });\n    }\n\n    $.plot.image.load = function (urls, callback) {\n        var missing = urls.length, loaded = {};\n        if (missing === 0) {\n            callback({});\n        }\n\n        $.each(urls, function (i, url) {\n            var handler = function () {\n                --missing;\n                loaded[url] = this;\n\n                if (missing === 0) {\n                    callback(loaded);\n                }\n            };\n\n            $('<img />').load(handler).error(handler).attr('src', url);\n        });\n    };\n\n    function drawSeries(plot, ctx, series) {\n        var plotOffset = plot.getPlotOffset();\n\n        if (!series.images || !series.images.show) {\n            return;\n        }\n\n        var points = series.datapoints.points,\n            ps = series.datapoints.pointsize;\n\n        for (var i = 0; i < points.length; i += ps) {\n            var img = points[i],\n                x1 = points[i + 1], y1 = points[i + 2],\n                x2 = points[i + 3], y2 = points[i + 4],\n                xaxis = series.xaxis, yaxis = series.yaxis,\n                tmp;\n\n            // actually we should check img.complete, but it\n            // appears to be a somewhat unreliable indicator in\n            // IE6 (false even after load event)\n            if (!img || img.width <= 0 || img.height <= 0) {\n                continue;\n            }\n\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n\n            // if the anchor is at the center of the pixel, expand the\n            // image by 1/2 pixel in each direction\n            if (series.images.anchor === \"center\") {\n                tmp = 0.5 * (x2 - x1) / (img.width - 1);\n                x1 -= tmp;\n                x2 += tmp;\n                tmp = 0.5 * (y2 - y1) / (img.height - 1);\n                y1 -= tmp;\n                y2 += tmp;\n            }\n\n            // clip\n            if (x1 === x2 || y1 === y2 ||\n                x1 >= xaxis.max || x2 <= xaxis.min ||\n                y1 >= yaxis.max || y2 <= yaxis.min) {\n                continue;\n            }\n\n            var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height;\n            if (x1 < xaxis.min) {\n                sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1);\n                x1 = xaxis.min;\n            }\n\n            if (x2 > xaxis.max) {\n                sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1);\n                x2 = xaxis.max;\n            }\n\n            if (y1 < yaxis.min) {\n                sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1);\n                y1 = yaxis.min;\n            }\n\n            if (y2 > yaxis.max) {\n                sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1);\n                y2 = yaxis.max;\n            }\n\n            x1 = xaxis.p2c(x1);\n            x2 = xaxis.p2c(x2);\n            y1 = yaxis.p2c(y1);\n            y2 = yaxis.p2c(y2);\n\n            // the transformation may have swapped us\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n\n            tmp = ctx.globalAlpha;\n            ctx.globalAlpha *= series.images.alpha;\n            ctx.drawImage(img,\n                          sx1, sy1, sx2 - sx1, sy2 - sy1,\n                          x1 + plotOffset.left, y1 + plotOffset.top,\n                          x2 - x1, y2 - y1);\n            ctx.globalAlpha = tmp;\n        }\n    }\n\n    function processRawData(plot, series, data, datapoints) {\n        if (!series.images.show) {\n            return;\n        }\n\n        // format is Image, x1, y1, x2, y2 (opposite corners)\n        datapoints.format = [\n            { required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n    }\n\n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.drawSeries.push(drawSeries);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'image',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.legend.js",
    "content": "/* Flot plugin for drawing legends.\n\n*/\n\n(function($) {\n    var defaultOptions = {\n        legend: {\n            show: false,\n            noColumns: 1,\n            labelFormatter: null, // fn: string -> string\n            container: null, // container (as jQuery object) to put legend in, null means default on top of graph\n            position: 'ne', // position of default legend container within plot\n            margin: 5, // distance from grid edge to default legend container within plot\n            sorted: null // default to no legend sorting\n        }\n    };\n\n    function insertLegend(plot, options, placeholder, legendEntries) {\n        // clear before redraw\n        if (options.legend.container != null) {\n            $(options.legend.container).html('');\n        } else {\n            placeholder.find('.legend').remove();\n        }\n\n        if (!options.legend.show) {\n            return;\n        }\n\n        // Save the legend entries in legend options\n        var entries = options.legend.legendEntries = legendEntries,\n            plotOffset = options.legend.plotOffset = plot.getPlotOffset(),\n            html = [],\n            entry, labelHtml, iconHtml,\n            j = 0,\n            i,\n            pos = \"\",\n            p = options.legend.position,\n            m = options.legend.margin,\n            shape = {\n                name: '',\n                label: '',\n                xPos: '',\n                yPos: ''\n            };\n\n        html[j++] = '<svg class=\"legendLayer\" style=\"width:inherit;height:inherit;\">';\n        html[j++] = '<rect class=\"background\" width=\"100%\" height=\"100%\"/>';\n        html[j++] = svgShapeDefs;\n\n        var left = 0;\n        var columnWidths = [];\n        var style = window.getComputedStyle(document.querySelector('body'));\n        for (i = 0; i < entries.length; ++i) {\n            let columnIndex = i % options.legend.noColumns;\n            entry = entries[i];\n            shape.label = entry.label;\n            var info = plot.getSurface().getTextInfo('', shape.label, {\n                style: style.fontStyle,\n                variant: style.fontVariant,\n                weight: style.fontWeight,\n                size: parseInt(style.fontSize),\n                lineHeight: parseInt(style.lineHeight),\n                family: style.fontFamily\n            });\n\n            var labelWidth = info.width;\n            // 36px = 1.5em + 6px margin\n            var iconWidth = 48;\n            if (columnWidths[columnIndex]) {\n                if (labelWidth > columnWidths[columnIndex]) {\n                    columnWidths[columnIndex] = labelWidth + iconWidth;\n                }\n            } else {\n                columnWidths[columnIndex] = labelWidth + iconWidth;\n            }\n        }\n\n        // Generate html for icons and labels from a list of entries\n        for (i = 0; i < entries.length; ++i) {\n            let columnIndex = i % options.legend.noColumns;\n            entry = entries[i];\n            iconHtml = '';\n            shape.label = entry.label;\n            shape.xPos = (left + 3) + 'px';\n            left += columnWidths[columnIndex];\n            if ((i + 1) % options.legend.noColumns === 0) {\n                left = 0;\n            }\n            shape.yPos = Math.floor(i / options.legend.noColumns) * 1.5 + 'em';\n            // area\n            if (entry.options.lines.show && entry.options.lines.fill) {\n                shape.name = 'area';\n                shape.fillColor = entry.color;\n                iconHtml += getEntryIconHtml(shape);\n            }\n            // bars\n            if (entry.options.bars.show) {\n                shape.name = 'bar';\n                shape.fillColor = entry.color;\n                iconHtml += getEntryIconHtml(shape);\n            }\n            // lines\n            if (entry.options.lines.show && !entry.options.lines.fill) {\n                shape.name = 'line';\n                shape.strokeColor = entry.color;\n                shape.strokeWidth = entry.options.lines.lineWidth;\n                iconHtml += getEntryIconHtml(shape);\n            }\n            // points\n            if (entry.options.points.show) {\n                shape.name = entry.options.points.symbol;\n                shape.strokeColor = entry.color;\n                shape.fillColor = entry.options.points.fillColor;\n                shape.strokeWidth = entry.options.points.lineWidth;\n                iconHtml += getEntryIconHtml(shape);\n            }\n\n            labelHtml = '<text x=\"' + shape.xPos + '\" y=\"' + shape.yPos + '\" text-anchor=\"start\"><tspan dx=\"2em\" dy=\"1.2em\">' + shape.label + '</tspan></text>'\n            html[j++] = '<g>' + iconHtml + labelHtml + '</g>';\n        }\n\n        html[j++] = '</svg>';\n        if (m[0] == null) {\n            m = [m, m];\n        }\n\n        if (p.charAt(0) === 'n') {\n            pos += 'top:' + (m[1] + plotOffset.top) + 'px;';\n        } else if (p.charAt(0) === 's') {\n            pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';\n        }\n\n        if (p.charAt(1) === 'e') {\n            pos += 'right:' + (m[0] + plotOffset.right) + 'px;';\n        } else if (p.charAt(1) === 'w') {\n            pos += 'left:' + (m[0] + plotOffset.left) + 'px;';\n        }\n\n        var width = 6;\n        for (i = 0; i < columnWidths.length; ++i) {\n            width += columnWidths[i];\n        }\n\n        var legendEl,\n            height = Math.ceil(entries.length / options.legend.noColumns) * 1.6;\n        if (!options.legend.container) {\n            legendEl = $('<div class=\"legend\" style=\"position:absolute;' + pos + '\">' + html.join('') + '</div>').appendTo(placeholder);\n            legendEl.css('width', width + 'px');\n            legendEl.css('height', height + 'em');\n            legendEl.css('pointerEvents', 'none');\n        } else {\n            legendEl = $(html.join('')).appendTo(options.legend.container)[0];\n            options.legend.container.style.width = width + 'px';\n            options.legend.container.style.height = height + 'em';\n        }\n    }\n\n    // Generate html for a shape\n    function getEntryIconHtml(shape) {\n        var html = '',\n            name = shape.name,\n            x = shape.xPos,\n            y = shape.yPos,\n            fill = shape.fillColor,\n            stroke = shape.strokeColor,\n            width = shape.strokeWidth;\n        switch (name) {\n            case 'circle':\n                html = '<use xlink:href=\"#circle\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'diamond':\n                html = '<use xlink:href=\"#diamond\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'cross':\n                html = '<use xlink:href=\"#cross\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    // 'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'rectangle':\n                html = '<use xlink:href=\"#rectangle\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'plus':\n                html = '<use xlink:href=\"#plus\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    // 'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'bar':\n                html = '<use xlink:href=\"#bars\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    // 'stroke=\"' + stroke + '\" ' +\n                    // 'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'area':\n                html = '<use xlink:href=\"#area\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    // 'stroke=\"' + stroke + '\" ' +\n                    // 'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            case 'line':\n                html = '<use xlink:href=\"#line\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    // 'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n                break;\n            default:\n                // default is circle\n                html = '<use xlink:href=\"#circle\" class=\"legendIcon\" ' +\n                    'x=\"' + x + '\" ' +\n                    'y=\"' + y + '\" ' +\n                    'fill=\"' + fill + '\" ' +\n                    'stroke=\"' + stroke + '\" ' +\n                    'stroke-width=\"' + width + '\" ' +\n                    'width=\"1.5em\" height=\"1.5em\"' +\n                    '/>';\n        }\n\n        return html;\n    }\n\n    // Define svg symbols for shapes\n    var svgShapeDefs = '' +\n        '<defs>' +\n            '<symbol id=\"line\" fill=\"none\" viewBox=\"-5 -5 25 25\">' +\n                '<polyline points=\"0,15 5,5 10,10 15,0\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"area\" stroke-width=\"1\" viewBox=\"-5 -5 25 25\">' +\n                '<polyline points=\"0,15 5,5 10,10 15,0, 15,15, 0,15\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"bars\" stroke-width=\"1\" viewBox=\"-5 -5 25 25\">' +\n                '<polyline points=\"1.5,15.5 1.5,12.5, 4.5,12.5 4.5,15.5 6.5,15.5 6.5,3.5, 9.5,3.5 9.5,15.5 11.5,15.5 11.5,7.5 14.5,7.5 14.5,15.5 1.5,15.5\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"circle\" viewBox=\"-5 -5 25 25\">' +\n                '<circle cx=\"0\" cy=\"15\" r=\"2.5\"/>' +\n                '<circle cx=\"5\" cy=\"5\" r=\"2.5\"/>' +\n                '<circle cx=\"10\" cy=\"10\" r=\"2.5\"/>' +\n                '<circle cx=\"15\" cy=\"0\" r=\"2.5\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"rectangle\" viewBox=\"-5 -5 25 25\">' +\n                '<rect x=\"-2.1\" y=\"12.9\" width=\"4.2\" height=\"4.2\"/>' +\n                '<rect x=\"2.9\" y=\"2.9\" width=\"4.2\" height=\"4.2\"/>' +\n                '<rect x=\"7.9\" y=\"7.9\" width=\"4.2\" height=\"4.2\"/>' +\n                '<rect x=\"12.9\" y=\"-2.1\" width=\"4.2\" height=\"4.2\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"diamond\" viewBox=\"-5 -5 25 25\">' +\n                '<path d=\"M-3,15 L0,12 L3,15, L0,18 Z\"/>' +\n                '<path d=\"M2,5 L5,2 L8,5, L5,8 Z\"/>' +\n                '<path d=\"M7,10 L10,7 L13,10, L10,13 Z\"/>' +\n                '<path d=\"M12,0 L15,-3 L18,0, L15,3 Z\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"cross\" fill=\"none\" viewBox=\"-5 -5 25 25\">' +\n                '<path d=\"M-2.1,12.9 L2.1,17.1, M2.1,12.9 L-2.1,17.1 Z\"/>' +\n                '<path d=\"M2.9,2.9 L7.1,7.1 M7.1,2.9 L2.9,7.1 Z\"/>' +\n                '<path d=\"M7.9,7.9 L12.1,12.1 M12.1,7.9 L7.9,12.1 Z\"/>' +\n                '<path d=\"M12.9,-2.1 L17.1,2.1 M17.1,-2.1 L12.9,2.1 Z\"/>' +\n            '</symbol>' +\n\n            '<symbol id=\"plus\" fill=\"none\" viewBox=\"-5 -5 25 25\">' +\n                '<path d=\"M0,12 L0,18, M-3,15 L3,15 Z\"/>' +\n                '<path d=\"M5,2 L5,8 M2,5 L8,5 Z\"/>' +\n                '<path d=\"M10,7 L10,13 M7,10 L13,10 Z\"/>' +\n                '<path d=\"M15,-3 L15,3 M12,0 L18,0 Z\"/>' +\n            '</symbol>' +\n        '</defs>';\n\n    // Generate a list of legend entries in their final order\n    function getLegendEntries(series, labelFormatter, sorted) {\n        var lf = labelFormatter,\n            legendEntries = series.reduce(function(validEntries, s, i) {\n                var labelEval = (lf ? lf(s.label, s) : s.label)\n                if (s.hasOwnProperty(\"label\") ? labelEval : true) {\n                    var entry = {\n                        label: labelEval || 'Plot ' + (i + 1),\n                        color: s.color,\n                        options: {\n                            lines: s.lines,\n                            points: s.points,\n                            bars: s.bars\n                        }\n                    }\n                    validEntries.push(entry)\n                }\n                return validEntries;\n            }, []);\n\n        // Sort the legend using either the default or a custom comparator\n        if (sorted) {\n            if ($.isFunction(sorted)) {\n                legendEntries.sort(sorted);\n            } else if (sorted === 'reverse') {\n                legendEntries.reverse();\n            } else {\n                var ascending = (sorted !== 'descending');\n                legendEntries.sort(function(a, b) {\n                    return a.label === b.label\n                        ? 0\n                        : ((a.label < b.label) !== ascending ? 1 : -1 // Logical XOR\n                        );\n                });\n            }\n        }\n\n        return legendEntries;\n    }\n\n    // return false if opts1 same as opts2\n    function checkOptions(opts1, opts2) {\n        for (var prop in opts1) {\n            if (opts1.hasOwnProperty(prop)) {\n                if (opts1[prop] !== opts2[prop]) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n\n    // Compare two lists of legend entries\n    function shouldRedraw(oldEntries, newEntries) {\n        if (!oldEntries || !newEntries) {\n            return true;\n        }\n\n        if (oldEntries.length !== newEntries.length) {\n            return true;\n        }\n        var i, newEntry, oldEntry, newOpts, oldOpts;\n        for (i = 0; i < newEntries.length; i++) {\n            newEntry = newEntries[i];\n            oldEntry = oldEntries[i];\n\n            if (newEntry.label !== oldEntry.label) {\n                return true;\n            }\n\n            if (newEntry.color !== oldEntry.color) {\n                return true;\n            }\n\n            // check for changes in lines options\n            newOpts = newEntry.options.lines;\n            oldOpts = oldEntry.options.lines;\n            if (checkOptions(newOpts, oldOpts)) {\n                return true;\n            }\n\n            // check for changes in points options\n            newOpts = newEntry.options.points;\n            oldOpts = oldEntry.options.points;\n            if (checkOptions(newOpts, oldOpts)) {\n                return true;\n            }\n\n            // check for changes in bars options\n            newOpts = newEntry.options.bars;\n            oldOpts = oldEntry.options.bars;\n            if (checkOptions(newOpts, oldOpts)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    function init(plot) {\n        plot.hooks.setupGrid.push(function (plot) {\n            var options = plot.getOptions();\n            var series = plot.getData(),\n                labelFormatter = options.legend.labelFormatter,\n                oldEntries = options.legend.legendEntries,\n                oldPlotOffset = options.legend.plotOffset,\n                newEntries = getLegendEntries(series, labelFormatter, options.legend.sorted),\n                newPlotOffset = plot.getPlotOffset();\n\n            if (shouldRedraw(oldEntries, newEntries) ||\n                checkOptions(oldPlotOffset, newPlotOffset)) {\n                insertLegend(plot, options, plot.getPlaceholder(), newEntries);\n            }\n        });\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: defaultOptions,\n        name: 'legend',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.logaxis.js",
    "content": "/* Pretty handling of log axes.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nCopyright (c) 2015 Ciprian Ceteras cipix2000@gmail.com.\nCopyright (c) 2017 Raluca Portase\nLicensed under the MIT license.\n\nSet axis.mode to \"log\" to enable.\n*/\n\n/* global jQuery*/\n\n/**\n## jquery.flot.logaxis\nThis plugin is used to create logarithmic axis. This includes tick generation,\nformatters and transformers to and from logarithmic representation.\n\n### Methods and hooks\n*/\n\n(function ($) {\n    'use strict';\n\n    var options = {\n        xaxis: {}\n    };\n\n    /*tick generators and formatters*/\n    var PREFERRED_LOG_TICK_VALUES = computePreferedLogTickValues(Number.MAX_VALUE, 10),\n        EXTENDED_LOG_TICK_VALUES = computePreferedLogTickValues(Number.MAX_VALUE, 4);\n\n    function computePreferedLogTickValues(endLimit, rangeStep) {\n        var log10End = Math.floor(Math.log(endLimit) * Math.LOG10E) - 1,\n            log10Start = -log10End,\n            val, range, vals = [];\n\n        for (var power = log10Start; power <= log10End; power++) {\n            range = parseFloat('1e' + power);\n            for (var mult = 1; mult < 9; mult += rangeStep) {\n                val = range * mult;\n                vals.push(val);\n            }\n        }\n        return vals;\n    }\n\n    /**\n    - logTickGenerator(plot, axis, noTicks)\n\n    Generates logarithmic ticks, depending on axis range.\n    In case the number of ticks that can be generated is less than the expected noTicks/4,\n    a linear tick generation is used.\n    */\n    var logTickGenerator = function (plot, axis, noTicks) {\n        var ticks = [],\n            minIdx = -1,\n            maxIdx = -1,\n            surface = plot.getCanvas(),\n            logTickValues = PREFERRED_LOG_TICK_VALUES,\n            min = clampAxis(axis, plot),\n            max = axis.max;\n\n        if (!noTicks) {\n            noTicks = 0.3 * Math.sqrt(axis.direction === \"x\" ? surface.width : surface.height);\n        }\n\n        PREFERRED_LOG_TICK_VALUES.some(function (val, i) {\n            if (val >= min) {\n                minIdx = i;\n                return true;\n            } else {\n                return false;\n            }\n        });\n\n        PREFERRED_LOG_TICK_VALUES.some(function (val, i) {\n            if (val >= max) {\n                maxIdx = i;\n                return true;\n            } else {\n                return false;\n            }\n        });\n\n        if (maxIdx === -1) {\n            maxIdx = PREFERRED_LOG_TICK_VALUES.length - 1;\n        }\n\n        if (maxIdx - minIdx <= noTicks / 4 && logTickValues.length !== EXTENDED_LOG_TICK_VALUES.length) {\n            //try with multiple of 5 for tick values\n            logTickValues = EXTENDED_LOG_TICK_VALUES;\n            minIdx *= 2;\n            maxIdx *= 2;\n        }\n\n        var lastDisplayed = null,\n            inverseNoTicks = 1 / noTicks,\n            tickValue, pixelCoord, tick;\n\n        // Count the number of tick values would appear, if we can get at least\n        // nTicks / 4 accept them.\n        if (maxIdx - minIdx >= noTicks / 4) {\n            for (var idx = maxIdx; idx >= minIdx; idx--) {\n                tickValue = logTickValues[idx];\n                pixelCoord = (Math.log(tickValue) - Math.log(min)) / (Math.log(max) - Math.log(min));\n                tick = tickValue;\n\n                if (lastDisplayed === null) {\n                    lastDisplayed = {\n                        pixelCoord: pixelCoord,\n                        idealPixelCoord: pixelCoord\n                    };\n                } else {\n                    if (Math.abs(pixelCoord - lastDisplayed.pixelCoord) >= inverseNoTicks) {\n                        lastDisplayed = {\n                            pixelCoord: pixelCoord,\n                            idealPixelCoord: lastDisplayed.idealPixelCoord - inverseNoTicks\n                        };\n                    } else {\n                        tick = null;\n                    }\n                }\n\n                if (tick) {\n                    ticks.push(tick);\n                }\n            }\n            // Since we went in backwards order.\n            ticks.reverse();\n        } else {\n            var tickSize = plot.computeTickSize(min, max, noTicks),\n                customAxis = {min: min, max: max, tickSize: tickSize};\n            ticks = $.plot.linearTickGenerator(customAxis);\n        }\n\n        return ticks;\n    };\n\n    var clampAxis = function (axis, plot) {\n        var min = axis.min,\n            max = axis.max;\n\n        if (min <= 0) {\n            //for empty graph if axis.min is not strictly positive make it 0.1\n            if (axis.datamin === null) {\n                min = axis.min = 0.1;\n            } else {\n                min = processAxisOffset(plot, axis);\n            }\n\n            if (max < min) {\n                axis.max = axis.datamax !== null ? axis.datamax : axis.options.max;\n                axis.options.offset.below = 0;\n                axis.options.offset.above = 0;\n            }\n        }\n\n        return min;\n    }\n\n    /**\n    - logTickFormatter(value, axis, precision)\n\n    This is the corresponding tickFormatter of the logaxis.\n    For a number greater that 10^6 or smaller than 10^(-3), this will be drawn\n    with e representation\n    */\n    var logTickFormatter = function (value, axis, precision) {\n        var tenExponent = value > 0 ? Math.floor(Math.log(value) / Math.LN10) : 0;\n\n        if (precision) {\n            if ((tenExponent >= -4) && (tenExponent <= 7)) {\n                return $.plot.defaultTickFormatter(value, axis, precision);\n            } else {\n                return $.plot.expRepTickFormatter(value, axis, precision);\n            }\n        }\n        if ((tenExponent >= -4) && (tenExponent <= 7)) {\n            //if we have float numbers, return a limited length string(ex: 0.0009 is represented as 0.000900001)\n            var formattedValue = tenExponent < 0 ? value.toFixed(-tenExponent) : value.toFixed(tenExponent + 2);\n            if (formattedValue.indexOf('.') !== -1) {\n                var lastZero = formattedValue.lastIndexOf('0');\n\n                while (lastZero === formattedValue.length - 1) {\n                    formattedValue = formattedValue.slice(0, -1);\n                    lastZero = formattedValue.lastIndexOf('0');\n                }\n\n                //delete the dot if is last\n                if (formattedValue.indexOf('.') === formattedValue.length - 1) {\n                    formattedValue = formattedValue.slice(0, -1);\n                }\n            }\n            return formattedValue;\n        } else {\n            return $.plot.expRepTickFormatter(value, axis);\n        }\n    };\n\n    /*logaxis caracteristic functions*/\n    var logTransform = function (v) {\n        if (v < PREFERRED_LOG_TICK_VALUES[0]) {\n            v = PREFERRED_LOG_TICK_VALUES[0];\n        }\n\n        return Math.log(v);\n    };\n\n    var logInverseTransform = function (v) {\n        return Math.exp(v);\n    };\n\n    var invertedTransform = function (v) {\n        return -v;\n    }\n\n    var invertedLogTransform = function (v) {\n        return -logTransform(v);\n    }\n\n    var invertedLogInverseTransform = function (v) {\n        return logInverseTransform(-v);\n    }\n\n    /**\n    - setDataminRange(plot, axis)\n\n    It is used for clamping the starting point of a logarithmic axis.\n    This will set the axis datamin range to 0.1 or to the first datapoint greater then 0.\n    The function is usefull since the logarithmic representation can not show\n    values less than or equal to 0.\n    */\n    function setDataminRange(plot, axis) {\n        if (axis.options.mode === 'log' && axis.datamin <= 0) {\n            if (axis.datamin === null) {\n                axis.datamin = 0.1;\n            } else {\n                axis.datamin = processAxisOffset(plot, axis);\n            }\n        }\n    }\n\n    function processAxisOffset(plot, axis) {\n        var series = plot.getData(),\n            range = series\n                .filter(function(series) {\n                    return series.xaxis === axis || series.yaxis === axis;\n                })\n                .map(function(series) {\n                    return plot.computeRangeForDataSeries(series, null, isValid);\n                }),\n            min = axis.direction === 'x'\n                ? Math.min(0.1, range && range[0] ? range[0].xmin : 0.1)\n                : Math.min(0.1, range && range[0] ? range[0].ymin : 0.1);\n\n        axis.min = min;\n\n        return min;\n    }\n\n    function isValid(a) {\n        return a > 0;\n    }\n\n    function init(plot) {\n        plot.hooks.processOptions.push(function (plot) {\n            $.each(plot.getAxes(), function (axisName, axis) {\n                var opts = axis.options;\n                if (opts.mode === 'log') {\n                    axis.tickGenerator = function (axis) {\n                        var noTicks = 11;\n                        return logTickGenerator(plot, axis, noTicks);\n                    };\n                    if (typeof axis.options.tickFormatter !== 'function') {\n                        axis.options.tickFormatter = logTickFormatter;\n                    }\n                    axis.options.transform = opts.inverted ? invertedLogTransform : logTransform;\n                    axis.options.inverseTransform = opts.inverted ? invertedLogInverseTransform : logInverseTransform;\n                    axis.options.autoScaleMargin = 0;\n                    plot.hooks.setRange.push(setDataminRange);\n                } else if (opts.inverted) {\n                    axis.options.transform = invertedTransform;\n                    axis.options.inverseTransform = invertedTransform;\n                }\n            });\n        });\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'log',\n        version: '0.1'\n    });\n\n    $.plot.logTicksGenerator = logTickGenerator;\n    $.plot.logTickFormatter = logTickFormatter;\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.navigate.js",
    "content": "/* Flot plugin for adding the ability to pan and zoom the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nCopyright (c) 2016 Ciprian Ceteras.\nCopyright (c) 2017 Raluca Portase.\nLicensed under the MIT license.\n\n*/\n\n/**\n## jquery.flot.navigate.js\n\nThis flot plugin is used for adding the ability to pan and zoom the plot.\nA higher level overview is available at [interactions](interactions.md) documentation.\n\nThe default behaviour is scrollwheel up/down to zoom in, drag\nto pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and\nplot.pan( offset ) so you easily can add custom controls. It also fires\n\"plotpan\" and \"plotzoom\" events, useful for synchronizing plots.\n\nThe plugin supports these options:\n```js\n    zoom: {\n        interactive: false,\n        active: false,\n        amount: 1.5         // 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n    }\n\n    pan: {\n        interactive: false,\n        active: false,\n        cursor: \"move\",     // CSS mouse cursor value used when dragging, e.g. \"pointer\"\n        frameRate: 60,\n        mode: \"smart\"       // enable smart pan mode\n    }\n\n    xaxis: {\n        axisZoom: true, //zoom axis when mouse over it is allowed\n        plotZoom: true, //zoom axis is allowed for plot zoom\n        axisPan: true, //pan axis when mouse over it is allowed\n        plotPan: true, //pan axis is allowed for plot pan\n        panRange: [undefined, undefined], // no limit on pan range, or [min, max] in axis units\n        zoomRange: [undefined, undefined], // no limit on zoom range, or [closest zoom, furthest zoom] in axis units\n    }\n\n    yaxis: {\n        axisZoom: true, //zoom axis when mouse over it is allowed\n        plotZoom: true, //zoom axis is allowed for plot zoom\n        axisPan: true, //pan axis when mouse over it is allowed\n        plotPan: true //pan axis is allowed for plot pan\n        panRange: [undefined, undefined], // no limit on pan range, or [min, max] in axis units\n        zoomRange: [undefined, undefined], // no limit on zoom range, or [closest zoom, furthest zoom] in axis units\n    }\n```\n**interactive** enables the built-in drag/click behaviour. If you enable\ninteractive for pan, then you'll have a basic plot that supports moving\naround; the same for zoom.\n\n**active** is true after a touch tap on plot. This enables plot navigation.\nOnce activated, zoom and pan cannot be deactivated. When the plot becomes active,\n\"plotactivated\" event is triggered.\n\n**amount** specifies the default amount to zoom in (so 1.5 = 150%) relative to\nthe current viewport.\n\n**cursor** is a standard CSS mouse cursor string used for visual feedback to the\nuser when dragging.\n\n**frameRate** specifies the maximum number of times per second the plot will\nupdate itself while the user is panning around on it (set to null to disable\nintermediate pans, the plot will then not update until the mouse button is\nreleased).\n\n**mode** a string specifies the pan mode for mouse interaction. Accepted values:\n'manual': no pan hint or direction snapping;\n'smart': The graph shows pan hint bar and the pan movement will snap\nto one direction when the drag direction is close to it;\n'smartLock'. The graph shows pan hint bar and the pan movement will always\nsnap to a direction that the drag diorection started with.\n\nExample API usage:\n```js\n    plot = $.plot(...);\n\n    // zoom default amount in on the pixel ( 10, 20 )\n    plot.zoom({ center: { left: 10, top: 20 } });\n\n    // zoom out again\n    plot.zoomOut({ center: { left: 10, top: 20 } });\n\n    // zoom 200% in on the pixel (10, 20)\n    plot.zoom({ amount: 2, center: { left: 10, top: 20 } });\n\n    // pan 100 pixels to the left (changing x-range in a positive way) and 20 down\n    plot.pan({ left: -100, top: 20 })\n```\n\nHere, \"center\" specifies where the center of the zooming should happen. Note\nthat this is defined in pixel space, not the space of the data points (you can\nuse the p2c helpers on the axes in Flot to help you convert between these).\n\n**amount** is the amount to zoom the viewport relative to the current range, so\n1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You\ncan set the default in the options.\n*/\n\n/* eslint-enable */\n(function($) {\n    'use strict';\n\n    var options = {\n        zoom: {\n            interactive: false,\n            active: false,\n            amount: 1.5 // how much to zoom relative to current position, 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n        },\n        pan: {\n            interactive: false,\n            active: false,\n            cursor: \"move\",\n            frameRate: 60,\n            mode: 'smart'\n        },\n        recenter: {\n            interactive: true\n        },\n        xaxis: {\n            axisZoom: true, //zoom axis when mouse over it is allowed\n            plotZoom: true, //zoom axis is allowed for plot zoom\n            axisPan: true, //pan axis when mouse over it is allowed\n            plotPan: true, //pan axis is allowed for plot pan\n            panRange: [undefined, undefined], // no limit on pan range, or [min, max] in axis units\n            zoomRange: [undefined, undefined] // no limit on zoom range, or [closest zoom, furthest zoom] in axis units\n        },\n        yaxis: {\n            axisZoom: true,\n            plotZoom: true,\n            axisPan: true,\n            plotPan: true,\n            panRange: [undefined, undefined], // no limit on pan range, or [min, max] in axis units\n            zoomRange: [undefined, undefined] // no limit on zoom range, or [closest zoom, furthest zoom] in axis units\n        }\n    };\n\n    var saturated = $.plot.saturated;\n    var browser = $.plot.browser;\n    var SNAPPING_CONSTANT = $.plot.uiConstants.SNAPPING_CONSTANT;\n    var PANHINT_LENGTH_CONSTANT = $.plot.uiConstants.PANHINT_LENGTH_CONSTANT;\n\n    function init(plot) {\n        plot.hooks.processOptions.push(initNevigation);\n    }\n\n    function initNevigation(plot, options) {\n        var panAxes = null;\n        var canDrag = false;\n        var useManualPan = options.pan.mode === 'manual',\n            smartPanLock = options.pan.mode === 'smartLock',\n            useSmartPan = smartPanLock || options.pan.mode === 'smart';\n\n        function onZoomClick(e, zoomOut, amount) {\n            var page = browser.getPageXY(e);\n\n            var c = plot.offset();\n            c.left = page.X - c.left;\n            c.top = page.Y - c.top;\n\n            var ec = plot.getPlaceholder().offset();\n            ec.left = page.X - ec.left;\n            ec.top = page.Y - ec.top;\n\n            var axes = plot.getXAxes().concat(plot.getYAxes()).filter(function (axis) {\n                var box = axis.box;\n                if (box !== undefined) {\n                    return (ec.left > box.left) && (ec.left < box.left + box.width) &&\n                        (ec.top > box.top) && (ec.top < box.top + box.height);\n                }\n            });\n\n            if (axes.length === 0) {\n                axes = undefined;\n            }\n\n            if (zoomOut) {\n                plot.zoomOut({\n                    center: c,\n                    axes: axes,\n                    amount: amount\n                });\n            } else {\n                plot.zoom({\n                    center: c,\n                    axes: axes,\n                    amount: amount\n                });\n            }\n        }\n\n        var prevCursor = 'default',\n            panHint = null,\n            panTimeout = null,\n            plotState,\n            prevDragPosition = { x: 0, y: 0 },\n            isPanAction = false;\n\n        function onMouseWheel(e, delta) {\n            var maxAbsoluteDeltaOnMac = 1,\n                isMacScroll = Math.abs(e.originalEvent.deltaY) <= maxAbsoluteDeltaOnMac,\n                defaultNonMacScrollAmount = null,\n                macMagicRatio = 50,\n                amount = isMacScroll ? 1 + Math.abs(e.originalEvent.deltaY) / macMagicRatio : defaultNonMacScrollAmount;\n\n            if (isPanAction) {\n                onDragEnd(e);\n            }\n\n            if (plot.getOptions().zoom.active) {\n                e.preventDefault();\n                onZoomClick(e, delta < 0, amount);\n                return false;\n            }\n        }\n\n        plot.navigationState = function(startPageX, startPageY) {\n            var axes = this.getAxes();\n            var result = {};\n            Object.keys(axes).forEach(function(axisName) {\n                var axis = axes[axisName];\n                result[axisName] = {\n                    navigationOffset: { below: axis.options.offset.below || 0,\n                        above: axis.options.offset.above || 0},\n                    axisMin: axis.min,\n                    axisMax: axis.max,\n                    diagMode: false\n                }\n            });\n\n            result.startPageX = startPageX || 0;\n            result.startPageY = startPageY || 0;\n            return result;\n        }\n\n        function onMouseDown(e) {\n            canDrag = true;\n        }\n\n        function onMouseUp(e) {\n            canDrag = false;\n        }\n\n        function isLeftMouseButtonPressed(e) {\n            return e.button === 0;\n        }\n\n        function onDragStart(e) {\n            if (!canDrag || !isLeftMouseButtonPressed(e)) {\n                return false;\n            }\n\n            isPanAction = true;\n            var page = browser.getPageXY(e);\n\n            var ec = plot.getPlaceholder().offset();\n            ec.left = page.X - ec.left;\n            ec.top = page.Y - ec.top;\n\n            panAxes = plot.getXAxes().concat(plot.getYAxes()).filter(function (axis) {\n                var box = axis.box;\n                if (box !== undefined) {\n                    return (ec.left > box.left) && (ec.left < box.left + box.width) &&\n                        (ec.top > box.top) && (ec.top < box.top + box.height);\n                }\n            });\n\n            if (panAxes.length === 0) {\n                panAxes = undefined;\n            }\n\n            var c = plot.getPlaceholder().css('cursor');\n            if (c) {\n                prevCursor = c;\n            }\n\n            plot.getPlaceholder().css('cursor', plot.getOptions().pan.cursor);\n\n            if (useSmartPan) {\n                plotState = plot.navigationState(page.X, page.Y);\n            } else if (useManualPan) {\n                prevDragPosition.x = page.X;\n                prevDragPosition.y = page.Y;\n            }\n        }\n\n        function onDrag(e) {\n            if (!isPanAction) {\n                return;\n            }\n\n            var page = browser.getPageXY(e);\n            var frameRate = plot.getOptions().pan.frameRate;\n\n            if (frameRate === -1) {\n                if (useSmartPan) {\n                    plot.smartPan({\n                        x: plotState.startPageX - page.X,\n                        y: plotState.startPageY - page.Y\n                    }, plotState, panAxes, false, smartPanLock);\n                } else if (useManualPan) {\n                    plot.pan({\n                        left: prevDragPosition.x - page.X,\n                        top: prevDragPosition.y - page.Y,\n                        axes: panAxes\n                    });\n                    prevDragPosition.x = page.X;\n                    prevDragPosition.y = page.Y;\n                }\n                return;\n            }\n\n            if (panTimeout || !frameRate) return;\n\n            panTimeout = setTimeout(function() {\n                if (useSmartPan) {\n                    plot.smartPan({\n                        x: plotState.startPageX - page.X,\n                        y: plotState.startPageY - page.Y\n                    }, plotState, panAxes, false, smartPanLock);\n                } else if (useManualPan) {\n                    plot.pan({\n                        left: prevDragPosition.x - page.X,\n                        top: prevDragPosition.y - page.Y,\n                        axes: panAxes\n                    });\n                    prevDragPosition.x = page.X;\n                    prevDragPosition.y = page.Y;\n                }\n\n                panTimeout = null;\n            }, 1 / frameRate * 1000);\n        }\n\n        function onDragEnd(e) {\n            if (!isPanAction) {\n                return;\n            }\n\n            if (panTimeout) {\n                clearTimeout(panTimeout);\n                panTimeout = null;\n            }\n\n            isPanAction = false;\n            var page = browser.getPageXY(e);\n\n            plot.getPlaceholder().css('cursor', prevCursor);\n\n            if (useSmartPan) {\n                plot.smartPan({\n                    x: plotState.startPageX - page.X,\n                    y: plotState.startPageY - page.Y\n                }, plotState, panAxes, false, smartPanLock);\n                plot.smartPan.end();\n            } else if (useManualPan) {\n                plot.pan({\n                    left: prevDragPosition.x - page.X,\n                    top: prevDragPosition.y - page.Y,\n                    axes: panAxes\n                });\n                prevDragPosition.x = 0;\n                prevDragPosition.y = 0;\n            }\n        }\n\n        function onDblClick(e) {\n            plot.activate();\n            var o = plot.getOptions()\n\n            if (!o.recenter.interactive) { return; }\n\n            var axes = plot.getTouchedAxis(e.clientX, e.clientY),\n                event;\n\n            plot.recenter({ axes: axes[0] ? axes : null });\n\n            if (axes[0]) {\n                event = new $.Event('re-center', { detail: {\n                    axisTouched: axes[0]\n                }});\n            } else {\n                event = new $.Event('re-center', { detail: e });\n            }\n            plot.getPlaceholder().trigger(event);\n        }\n\n        function onClick(e) {\n            plot.activate();\n\n            if (isPanAction) {\n                onDragEnd(e);\n            }\n\n            return false;\n        }\n\n        plot.activate = function() {\n            var o = plot.getOptions();\n            if (!o.pan.active || !o.zoom.active) {\n                o.pan.active = true;\n                o.zoom.active = true;\n                plot.getPlaceholder().trigger(\"plotactivated\", [plot]);\n            }\n        }\n\n        function bindEvents(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.zoom.interactive) {\n                eventHolder.mousewheel(onMouseWheel);\n            }\n\n            if (o.pan.interactive) {\n                plot.addEventHandler(\"dragstart\", onDragStart, eventHolder, 0);\n                plot.addEventHandler(\"drag\", onDrag, eventHolder, 0);\n                plot.addEventHandler(\"dragend\", onDragEnd, eventHolder, 0);\n                eventHolder.bind(\"mousedown\", onMouseDown);\n                eventHolder.bind(\"mouseup\", onMouseUp);\n            }\n\n            eventHolder.dblclick(onDblClick);\n            eventHolder.click(onClick);\n        }\n\n        plot.zoomOut = function(args) {\n            if (!args) {\n                args = {};\n            }\n\n            if (!args.amount) {\n                args.amount = plot.getOptions().zoom.amount;\n            }\n\n            args.amount = 1 / args.amount;\n            plot.zoom(args);\n        };\n\n        plot.zoom = function(args) {\n            if (!args) {\n                args = {};\n            }\n\n            var c = args.center,\n                amount = args.amount || plot.getOptions().zoom.amount,\n                w = plot.width(),\n                h = plot.height(),\n                axes = args.axes || plot.getAxes();\n\n            if (!c) {\n                c = {\n                    left: w / 2,\n                    top: h / 2\n                };\n            }\n\n            var xf = c.left / w,\n                yf = c.top / h,\n                minmax = {\n                    x: {\n                        min: c.left - xf * w / amount,\n                        max: c.left + (1 - xf) * w / amount\n                    },\n                    y: {\n                        min: c.top - yf * h / amount,\n                        max: c.top + (1 - yf) * h / amount\n                    }\n                };\n\n            for (var key in axes) {\n                if (!axes.hasOwnProperty(key)) {\n                    continue;\n                }\n\n                var axis = axes[key],\n                    opts = axis.options,\n                    min = minmax[axis.direction].min,\n                    max = minmax[axis.direction].max,\n                    navigationOffset = axis.options.offset;\n\n                //skip axis without axisZoom when zooming only on certain axis or axis without plotZoom for zoom on entire plot\n                if ((!opts.axisZoom && args.axes) || (!args.axes && !opts.plotZoom)) {\n                    continue;\n                }\n\n                min = $.plot.saturated.saturate(axis.c2p(min));\n                max = $.plot.saturated.saturate(axis.c2p(max));\n                if (min > max) {\n                    // make sure min < max\n                    var tmp = min;\n                    min = max;\n                    max = tmp;\n                }\n\n                // test for zoom limits zoomRange: [min,max]\n                if (opts.zoomRange) {\n                    // zoomed in too far\n                    if (max - min < opts.zoomRange[0]) {\n                        continue;\n                    }\n                    // zoomed out to far\n                    if (max - min > opts.zoomRange[1]) {\n                        continue;\n                    }\n                }\n\n                var offsetBelow = $.plot.saturated.saturate(navigationOffset.below - (axis.min - min));\n                var offsetAbove = $.plot.saturated.saturate(navigationOffset.above - (axis.max - max));\n                opts.offset = { below: offsetBelow, above: offsetAbove };\n            };\n\n            plot.setupGrid(true);\n            plot.draw();\n\n            if (!args.preventEvent) {\n                plot.getPlaceholder().trigger(\"plotzoom\", [plot, args]);\n            }\n        };\n\n        plot.pan = function(args) {\n            var delta = {\n                x: +args.left,\n                y: +args.top\n            };\n\n            if (isNaN(delta.x)) delta.x = 0;\n            if (isNaN(delta.y)) delta.y = 0;\n\n            $.each(args.axes || plot.getAxes(), function(_, axis) {\n                var opts = axis.options,\n                    d = delta[axis.direction];\n\n                //skip axis without axisPan when panning only on certain axis or axis without plotPan for pan the entire plot\n                if ((!opts.axisPan && args.axes) || (!opts.plotPan && !args.axes)) {\n                    return;\n                }\n\n                // calc min delta (revealing left edge of plot)\n                var minD = axis.p2c(opts.panRange[0]) - axis.p2c(axis.min);\n                // calc max delta (revealing right edge of plot)\n                var maxD = axis.p2c(opts.panRange[1]) - axis.p2c(axis.max);\n                // limit delta to min or max if enabled\n                if (opts.panRange[0] !== undefined && d >= maxD) d = maxD;\n                if (opts.panRange[1] !== undefined && d <= minD) d = minD;\n\n                if (d !== 0) {\n                    var navigationOffsetBelow = saturated.saturate(axis.c2p(axis.p2c(axis.min) + d) - axis.c2p(axis.p2c(axis.min))),\n                        navigationOffsetAbove = saturated.saturate(axis.c2p(axis.p2c(axis.max) + d) - axis.c2p(axis.p2c(axis.max)));\n\n                    if (!isFinite(navigationOffsetBelow)) {\n                        navigationOffsetBelow = 0;\n                    }\n\n                    if (!isFinite(navigationOffsetAbove)) {\n                        navigationOffsetAbove = 0;\n                    }\n\n                    opts.offset = {\n                        below: saturated.saturate(navigationOffsetBelow + (opts.offset.below || 0)),\n                        above: saturated.saturate(navigationOffsetAbove + (opts.offset.above || 0))\n                    };\n                }\n            });\n\n            plot.setupGrid(true);\n            plot.draw();\n            if (!args.preventEvent) {\n                plot.getPlaceholder().trigger(\"plotpan\", [plot, args]);\n            }\n        };\n\n        plot.recenter = function(args) {\n            $.each(args.axes || plot.getAxes(), function(_, axis) {\n                if (args.axes) {\n                    if (this.direction === 'x') {\n                        axis.options.offset = { below: 0 };\n                    } else if (this.direction === 'y') {\n                        axis.options.offset = { above: 0 };\n                    }\n                } else {\n                    axis.options.offset = { below: 0, above: 0 };\n                }\n            });\n            plot.setupGrid(true);\n            plot.draw();\n        };\n\n        var shouldSnap = function(delta) {\n            return (Math.abs(delta.y) < SNAPPING_CONSTANT && Math.abs(delta.x) >= SNAPPING_CONSTANT) ||\n                (Math.abs(delta.x) < SNAPPING_CONSTANT && Math.abs(delta.y) >= SNAPPING_CONSTANT);\n        }\n\n        // adjust delta so the pan action is constrained on the vertical or horizontal direction\n        // it the movements in the other direction are small\n        var adjustDeltaToSnap = function(delta) {\n            if (Math.abs(delta.x) < SNAPPING_CONSTANT && Math.abs(delta.y) >= SNAPPING_CONSTANT) {\n                return {x: 0, y: delta.y};\n            }\n\n            if (Math.abs(delta.y) < SNAPPING_CONSTANT && Math.abs(delta.x) >= SNAPPING_CONSTANT) {\n                return {x: delta.x, y: 0};\n            }\n\n            return delta;\n        }\n\n        var lockedDirection = null;\n        var lockDeltaDirection = function(delta) {\n            if (!lockedDirection && Math.max(Math.abs(delta.x), Math.abs(delta.y)) >= SNAPPING_CONSTANT) {\n                lockedDirection = Math.abs(delta.x) < Math.abs(delta.y) ? 'y' : 'x';\n            }\n\n            switch (lockedDirection) {\n                case 'x':\n                    return { x: delta.x, y: 0 };\n                case 'y':\n                    return { x: 0, y: delta.y };\n                default:\n                    return { x: 0, y: 0 };\n            }\n        }\n\n        var isDiagonalMode = function(delta) {\n            if (Math.abs(delta.x) > 0 && Math.abs(delta.y) > 0) {\n                return true;\n            }\n            return false;\n        }\n\n        var restoreAxisOffset = function(axes, initialState, delta) {\n            var axis;\n            Object.keys(axes).forEach(function(axisName) {\n                axis = axes[axisName];\n                if (delta[axis.direction] === 0) {\n                    axis.options.offset.below = initialState[axisName].navigationOffset.below;\n                    axis.options.offset.above = initialState[axisName].navigationOffset.above;\n                }\n            });\n        }\n\n        var prevDelta = { x: 0, y: 0 };\n        plot.smartPan = function(delta, initialState, panAxes, preventEvent, smartLock) {\n            var snap = smartLock ? true : shouldSnap(delta),\n                axes = plot.getAxes(),\n                opts;\n            delta = smartLock ? lockDeltaDirection(delta) : adjustDeltaToSnap(delta);\n\n            if (isDiagonalMode(delta)) {\n                initialState.diagMode = true;\n            }\n\n            if (snap && initialState.diagMode === true) {\n                initialState.diagMode = false;\n                restoreAxisOffset(axes, initialState, delta);\n            }\n\n            if (snap) {\n                panHint = {\n                    start: {\n                        x: initialState.startPageX - plot.offset().left + plot.getPlotOffset().left,\n                        y: initialState.startPageY - plot.offset().top + plot.getPlotOffset().top\n                    },\n                    end: {\n                        x: initialState.startPageX - delta.x - plot.offset().left + plot.getPlotOffset().left,\n                        y: initialState.startPageY - delta.y - plot.offset().top + plot.getPlotOffset().top\n                    }\n                }\n            } else {\n                panHint = {\n                    start: {\n                        x: initialState.startPageX - plot.offset().left + plot.getPlotOffset().left,\n                        y: initialState.startPageY - plot.offset().top + plot.getPlotOffset().top\n                    },\n                    end: false\n                }\n            }\n\n            if (isNaN(delta.x)) delta.x = 0;\n            if (isNaN(delta.y)) delta.y = 0;\n\n            if (panAxes) {\n                axes = panAxes;\n            }\n\n            var axis, axisMin, axisMax, p, d;\n            Object.keys(axes).forEach(function(axisName) {\n                axis = axes[axisName];\n                axisMin = axis.min;\n                axisMax = axis.max;\n                opts = axis.options;\n\n                d = delta[axis.direction];\n                p = prevDelta[axis.direction];\n\n                //skip axis without axisPan when panning only on certain axis or axis without plotPan for pan the entire plot\n                if ((!opts.axisPan && panAxes) || (!panAxes && !opts.plotPan)) {\n                    return;\n                }\n\n                // calc min delta (revealing left edge of plot)\n                var minD = p + axis.p2c(opts.panRange[0]) - axis.p2c(axisMin);\n                // calc max delta (revealing right edge of plot)\n                var maxD = p + axis.p2c(opts.panRange[1]) - axis.p2c(axisMax);\n                // limit delta to min or max if enabled\n                if (opts.panRange[0] !== undefined && d >= maxD) d = maxD;\n                if (opts.panRange[1] !== undefined && d <= minD) d = minD;\n\n                if (d !== 0) {\n                    var navigationOffsetBelow = saturated.saturate(axis.c2p(axis.p2c(axisMin) - (p - d)) - axis.c2p(axis.p2c(axisMin))),\n                        navigationOffsetAbove = saturated.saturate(axis.c2p(axis.p2c(axisMax) - (p - d)) - axis.c2p(axis.p2c(axisMax)));\n\n                    if (!isFinite(navigationOffsetBelow)) {\n                        navigationOffsetBelow = 0;\n                    }\n\n                    if (!isFinite(navigationOffsetAbove)) {\n                        navigationOffsetAbove = 0;\n                    }\n\n                    axis.options.offset.below = saturated.saturate(navigationOffsetBelow + (axis.options.offset.below || 0));\n                    axis.options.offset.above = saturated.saturate(navigationOffsetAbove + (axis.options.offset.above || 0));\n                }\n            });\n\n            prevDelta = delta;\n            plot.setupGrid(true);\n            plot.draw();\n\n            if (!preventEvent) {\n                plot.getPlaceholder().trigger(\"plotpan\", [plot, delta, panAxes, initialState]);\n            }\n        };\n\n        plot.smartPan.end = function() {\n            panHint = null;\n            lockedDirection = null;\n            prevDelta = { x: 0, y: 0 };\n            plot.triggerRedrawOverlay();\n        }\n\n        function shutdown(plot, eventHolder) {\n            eventHolder.unbind(\"mousewheel\", onMouseWheel);\n            eventHolder.unbind(\"mousedown\", onMouseDown);\n            eventHolder.unbind(\"mouseup\", onMouseUp);\n            eventHolder.unbind(\"dragstart\", onDragStart);\n            eventHolder.unbind(\"drag\", onDrag);\n            eventHolder.unbind(\"dragend\", onDragEnd);\n            eventHolder.unbind(\"dblclick\", onDblClick);\n            eventHolder.unbind(\"click\", onClick);\n\n            if (panTimeout) clearTimeout(panTimeout);\n        }\n\n        function drawOverlay(plot, ctx) {\n            if (panHint) {\n                ctx.strokeStyle = 'rgba(96, 160, 208, 0.7)';\n                ctx.lineWidth = 2;\n                ctx.lineJoin = \"round\";\n                var startx = Math.round(panHint.start.x),\n                    starty = Math.round(panHint.start.y),\n                    endx, endy;\n\n                if (panAxes) {\n                    if (panAxes[0].direction === 'x') {\n                        endy = Math.round(panHint.start.y);\n                        endx = Math.round(panHint.end.x);\n                    } else if (panAxes[0].direction === 'y') {\n                        endx = Math.round(panHint.start.x);\n                        endy = Math.round(panHint.end.y);\n                    }\n                } else {\n                    endx = Math.round(panHint.end.x);\n                    endy = Math.round(panHint.end.y);\n                }\n\n                ctx.beginPath();\n\n                if (panHint.end === false) {\n                    ctx.moveTo(startx, starty - PANHINT_LENGTH_CONSTANT);\n                    ctx.lineTo(startx, starty + PANHINT_LENGTH_CONSTANT);\n\n                    ctx.moveTo(startx + PANHINT_LENGTH_CONSTANT, starty);\n                    ctx.lineTo(startx - PANHINT_LENGTH_CONSTANT, starty);\n                } else {\n                    var dirX = starty === endy;\n\n                    ctx.moveTo(startx - (dirX ? 0 : PANHINT_LENGTH_CONSTANT), starty - (dirX ? PANHINT_LENGTH_CONSTANT : 0));\n                    ctx.lineTo(startx + (dirX ? 0 : PANHINT_LENGTH_CONSTANT), starty + (dirX ? PANHINT_LENGTH_CONSTANT : 0));\n\n                    ctx.moveTo(startx, starty);\n                    ctx.lineTo(endx, endy);\n\n                    ctx.moveTo(endx - (dirX ? 0 : PANHINT_LENGTH_CONSTANT), endy - (dirX ? PANHINT_LENGTH_CONSTANT : 0));\n                    ctx.lineTo(endx + (dirX ? 0 : PANHINT_LENGTH_CONSTANT), endy + (dirX ? PANHINT_LENGTH_CONSTANT : 0));\n                }\n\n                ctx.stroke();\n            }\n        }\n\n        plot.getTouchedAxis = function(touchPointX, touchPointY) {\n            var ec = plot.getPlaceholder().offset();\n            ec.left = touchPointX - ec.left;\n            ec.top = touchPointY - ec.top;\n\n            var axis = plot.getXAxes().concat(plot.getYAxes()).filter(function (axis) {\n                var box = axis.box;\n                if (box !== undefined) {\n                    return (ec.left > box.left) && (ec.left < box.left + box.width) &&\n                            (ec.top > box.top) && (ec.top < box.top + box.height);\n                }\n            });\n\n            return axis;\n        }\n\n        plot.hooks.drawOverlay.push(drawOverlay);\n        plot.hooks.bindEvents.push(bindEvents);\n        plot.hooks.shutdown.push(shutdown);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'navigate',\n        version: '1.3'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.pie.js",
    "content": "/* Flot plugin for rendering pie charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes that each series has a single data value, and that each\nvalue is a positive integer or zero.  Negative numbers don't make sense for a\npie chart, and have unpredictable results.  The values do NOT need to be\npassed in as percentages; the plugin will calculate the total and per-slice\npercentages internally.\n\n* Created by Brian Medendorp\n\n* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars\n\nThe plugin supports these options:\n\n    series: {\n        pie: {\n            show: true/false\n            radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto'\n            innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect\n            startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result\n            tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show)\n            offset: {\n                top: integer value to move the pie up or down\n                left: integer value to move the pie left or right, or 'auto'\n            },\n            stroke: {\n                color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF')\n                width: integer pixel width of the stroke\n            },\n            label: {\n                show: true/false, or 'auto'\n                formatter:  a user-defined function that modifies the text/style of the label text\n                radius: 0-1 for percentage of fullsize, or a specified pixel length\n                background: {\n                    color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000')\n                    opacity: 0-1\n                },\n                threshold: 0-1 for the percentage value at which to hide labels (if they're too small)\n            },\n            combine: {\n                threshold: 0-1 for the percentage value at which to combine slices (if they're too small)\n                color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined\n                label: any text value of what the combined slice should be labeled\n            }\n            highlight: {\n                opacity: 0-1\n            }\n        }\n    }\n\nMore detail and specific examples can be found in the included HTML file.\n\n*/\n\n(function($) {\n    // Maximum redraw attempts when fitting labels within the plot\n\n    var REDRAW_ATTEMPTS = 10;\n\n    // Factor by which to shrink the pie when fitting labels within the plot\n\n    var REDRAW_SHRINK = 0.95;\n\n    function init(plot) {\n        var canvas = null,\n            target = null,\n            options = null,\n            maxRadius = null,\n            centerLeft = null,\n            centerTop = null,\n            processed = false,\n            ctx = null;\n\n        // interactive variables\n\n        var highlights = [];\n\n        // add hook to determine if pie plugin in enabled, and then perform necessary operations\n\n        plot.hooks.processOptions.push(function(plot, options) {\n            if (options.series.pie.show) {\n                options.grid.show = false;\n\n                // set labels.show\n\n                if (options.series.pie.label.show === \"auto\") {\n                    if (options.legend.show) {\n                        options.series.pie.label.show = false;\n                    } else {\n                        options.series.pie.label.show = true;\n                    }\n                }\n\n                // set radius\n\n                if (options.series.pie.radius === \"auto\") {\n                    if (options.series.pie.label.show) {\n                        options.series.pie.radius = 3 / 4;\n                    } else {\n                        options.series.pie.radius = 1;\n                    }\n                }\n\n                // ensure sane tilt\n\n                if (options.series.pie.tilt > 1) {\n                    options.series.pie.tilt = 1;\n                } else if (options.series.pie.tilt < 0) {\n                    options.series.pie.tilt = 0;\n                }\n            }\n        });\n\n        plot.hooks.bindEvents.push(function(plot, eventHolder) {\n            var options = plot.getOptions();\n            if (options.series.pie.show) {\n                if (options.grid.hoverable) {\n                    eventHolder.unbind(\"mousemove\").mousemove(onMouseMove);\n                    eventHolder.bind(\"mouseleave\", onMouseMove);\n                }\n                if (options.grid.clickable) {\n                    eventHolder.unbind(\"click\").click(onClick);\n                }\n            }\n        });\n\n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n            eventHolder.unbind(\"mouseleave\", onMouseMove);\n            eventHolder.unbind(\"click\", onClick);\n            highlights = [];\n        });\n\n        plot.hooks.processDatapoints.push(function(plot, series, data, datapoints) {\n            var options = plot.getOptions();\n            if (options.series.pie.show) {\n                processDatapoints(plot, series, data, datapoints);\n            }\n        });\n\n        plot.hooks.drawOverlay.push(function(plot, octx) {\n            var options = plot.getOptions();\n            if (options.series.pie.show) {\n                drawOverlay(plot, octx);\n            }\n        });\n\n        plot.hooks.draw.push(function(plot, newCtx) {\n            var options = plot.getOptions();\n            if (options.series.pie.show) {\n                draw(plot, newCtx);\n            }\n        });\n\n        function processDatapoints(plot, series, datapoints) {\n            if (!processed) {\n                processed = true;\n                canvas = plot.getCanvas();\n                target = $(canvas).parent();\n                options = plot.getOptions();\n                plot.setData(combine(plot.getData()));\n            }\n        }\n\n        function combine(data) {\n            var total = 0,\n                combined = 0,\n                numCombined = 0,\n                color = options.series.pie.combine.color,\n                newdata = [],\n                i,\n                value;\n\n            // Fix up the raw data from Flot, ensuring the data is numeric\n\n            for (i = 0; i < data.length; ++i) {\n                value = data[i].data;\n\n                // If the data is an array, we'll assume that it's a standard\n                // Flot x-y pair, and are concerned only with the second value.\n\n                // Note how we use the original array, rather than creating a\n                // new one; this is more efficient and preserves any extra data\n                // that the user may have stored in higher indexes.\n\n                if ($.isArray(value) && value.length === 1) {\n                    value = value[0];\n                }\n\n                if ($.isArray(value)) {\n                    // Equivalent to $.isNumeric() but compatible with jQuery < 1.7\n                    if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) {\n                        value[1] = +value[1];\n                    } else {\n                        value[1] = 0;\n                    }\n                } else if (!isNaN(parseFloat(value)) && isFinite(value)) {\n                    value = [1, +value];\n                } else {\n                    value = [1, 0];\n                }\n\n                data[i].data = [value];\n            }\n\n            // Sum up all the slices, so we can calculate percentages for each\n\n            for (i = 0; i < data.length; ++i) {\n                total += data[i].data[0][1];\n            }\n\n            // Count the number of slices with percentages below the combine\n            // threshold; if it turns out to be just one, we won't combine.\n\n            for (i = 0; i < data.length; ++i) {\n                value = data[i].data[0][1];\n                if (value / total <= options.series.pie.combine.threshold) {\n                    combined += value;\n                    numCombined++;\n                    if (!color) {\n                        color = data[i].color;\n                    }\n                }\n            }\n\n            for (i = 0; i < data.length; ++i) {\n                value = data[i].data[0][1];\n                if (numCombined < 2 || value / total > options.series.pie.combine.threshold) {\n                    newdata.push(\n                        $.extend(data[i], {     /* extend to allow keeping all other original data values\n                                                   and using them e.g. in labelFormatter. */\n                            data: [[1, value]],\n                            color: data[i].color,\n                            label: data[i].label,\n                            angle: value * Math.PI * 2 / total,\n                            percent: value / (total / 100)\n                        })\n                    );\n                }\n            }\n\n            if (numCombined > 1) {\n                newdata.push({\n                    data: [[1, combined]],\n                    color: color,\n                    label: options.series.pie.combine.label,\n                    angle: combined * Math.PI * 2 / total,\n                    percent: combined / (total / 100)\n                });\n            }\n\n            return newdata;\n        }\n\n        function draw(plot, newCtx) {\n            if (!target) {\n                return; // if no series were passed\n            }\n\n            var canvasWidth = plot.getPlaceholder().width(),\n                canvasHeight = plot.getPlaceholder().height(),\n                legendWidth = target.children().filter(\".legend\").children().width() || 0;\n\n            ctx = newCtx;\n\n            // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE!\n\n            // When combining smaller slices into an 'other' slice, we need to\n            // add a new series.  Since Flot gives plugins no way to modify the\n            // list of series, the pie plugin uses a hack where the first call\n            // to processDatapoints results in a call to setData with the new\n            // list of series, then subsequent processDatapoints do nothing.\n\n            // The plugin-global 'processed' flag is used to control this hack;\n            // it starts out false, and is set to true after the first call to\n            // processDatapoints.\n\n            // Unfortunately this turns future setData calls into no-ops; they\n            // call processDatapoints, the flag is true, and nothing happens.\n\n            // To fix this we'll set the flag back to false here in draw, when\n            // all series have been processed, so the next sequence of calls to\n            // processDatapoints once again starts out with a slice-combine.\n            // This is really a hack; in 0.9 we need to give plugins a proper\n            // way to modify series before any processing begins.\n\n            processed = false;\n\n            // calculate maximum radius and center point\n            maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2;\n            centerTop = canvasHeight / 2 + options.series.pie.offset.top;\n            centerLeft = canvasWidth / 2;\n\n            if (options.series.pie.offset.left === \"auto\") {\n                if (options.legend.position.match(\"w\")) {\n                    centerLeft += legendWidth / 2;\n                } else {\n                    centerLeft -= legendWidth / 2;\n                }\n                if (centerLeft < maxRadius) {\n                    centerLeft = maxRadius;\n                } else if (centerLeft > canvasWidth - maxRadius) {\n                    centerLeft = canvasWidth - maxRadius;\n                }\n            } else {\n                centerLeft += options.series.pie.offset.left;\n            }\n\n            var slices = plot.getData(),\n                attempts = 0;\n\n            // Keep shrinking the pie's radius until drawPie returns true,\n            // indicating that all the labels fit, or we try too many times.\n            do {\n                if (attempts > 0) {\n                    maxRadius *= REDRAW_SHRINK;\n                }\n                attempts += 1;\n                clear();\n                if (options.series.pie.tilt <= 0.8) {\n                    drawShadow();\n                }\n            } while (!drawPie() && attempts < REDRAW_ATTEMPTS)\n\n            if (attempts >= REDRAW_ATTEMPTS) {\n                clear();\n                target.prepend(\"<div class='error'>Could not draw pie with labels contained inside canvas</div>\");\n            }\n\n            if (plot.setSeries && plot.insertLegend) {\n                plot.setSeries(slices);\n                plot.insertLegend();\n            }\n\n            // we're actually done at this point, just defining internal functions at this point\n            function clear() {\n                ctx.clearRect(0, 0, canvasWidth, canvasHeight);\n                target.children().filter(\".pieLabel, .pieLabelBackground\").remove();\n            }\n\n            function drawShadow() {\n                var shadowLeft = options.series.pie.shadow.left;\n                var shadowTop = options.series.pie.shadow.top;\n                var edge = 10;\n                var alpha = options.series.pie.shadow.alpha;\n                var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n                if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) {\n                    return;    // shadow would be outside canvas, so don't draw it\n                }\n\n                ctx.save();\n                ctx.translate(shadowLeft, shadowTop);\n                ctx.globalAlpha = alpha;\n                ctx.fillStyle = \"#000\";\n\n                // center and rotate to starting position\n                ctx.translate(centerLeft, centerTop);\n                ctx.scale(1, options.series.pie.tilt);\n\n                //radius -= edge;\n                for (var i = 1; i <= edge; i++) {\n                    ctx.beginPath();\n                    ctx.arc(0, 0, radius, 0, Math.PI * 2, false);\n                    ctx.fill();\n                    radius -= i;\n                }\n\n                ctx.restore();\n            }\n\n            function drawPie() {\n                var startAngle = Math.PI * options.series.pie.startAngle;\n                var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n                var i;\n                // center and rotate to starting position\n\n                ctx.save();\n                ctx.translate(centerLeft, centerTop);\n                ctx.scale(1, options.series.pie.tilt);\n                //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera\n\n                // draw slices\n                ctx.save();\n\n                var currentAngle = startAngle;\n                for (i = 0; i < slices.length; ++i) {\n                    slices[i].startAngle = currentAngle;\n                    drawSlice(slices[i].angle, slices[i].color, true);\n                }\n\n                ctx.restore();\n\n                // draw slice outlines\n                if (options.series.pie.stroke.width > 0) {\n                    ctx.save();\n                    ctx.lineWidth = options.series.pie.stroke.width;\n                    currentAngle = startAngle;\n                    for (i = 0; i < slices.length; ++i) {\n                        drawSlice(slices[i].angle, options.series.pie.stroke.color, false);\n                    }\n\n                    ctx.restore();\n                }\n\n                // draw donut hole\n                drawDonutHole(ctx);\n\n                ctx.restore();\n\n                // Draw the labels, returning true if they fit within the plot\n                if (options.series.pie.label.show) {\n                    return drawLabels();\n                } else return true;\n\n                function drawSlice(angle, color, fill) {\n                    if (angle <= 0 || isNaN(angle)) {\n                        return;\n                    }\n\n                    if (fill) {\n                        ctx.fillStyle = color;\n                    } else {\n                        ctx.strokeStyle = color;\n                        ctx.lineJoin = \"round\";\n                    }\n\n                    ctx.beginPath();\n                    if (Math.abs(angle - Math.PI * 2) > 0.000000001) {\n                        ctx.moveTo(0, 0); // Center of the pie\n                    }\n\n                    //ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera\n                    ctx.arc(0, 0, radius, currentAngle, currentAngle + angle / 2, false);\n                    ctx.arc(0, 0, radius, currentAngle + angle / 2, currentAngle + angle, false);\n                    ctx.closePath();\n                    //ctx.rotate(angle); // This doesn't work properly in Opera\n                    currentAngle += angle;\n\n                    if (fill) {\n                        ctx.fill();\n                    } else {\n                        ctx.stroke();\n                    }\n                }\n\n                function drawLabels() {\n                    var currentAngle = startAngle;\n                    var radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius;\n\n                    for (var i = 0; i < slices.length; ++i) {\n                        if (slices[i].percent >= options.series.pie.label.threshold * 100) {\n                            if (!drawLabel(slices[i], currentAngle, i)) {\n                                return false;\n                            }\n                        }\n                        currentAngle += slices[i].angle;\n                    }\n\n                    return true;\n\n                    function drawLabel(slice, startAngle, index) {\n                        if (slice.data[0][1] === 0) {\n                            return true;\n                        }\n\n                        // format label text\n                        var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;\n\n                        if (lf) {\n                            text = lf(slice.label, slice);\n                        } else {\n                            text = slice.label;\n                        }\n\n                        if (plf) {\n                            text = plf(text, slice);\n                        }\n\n                        var halfAngle = ((startAngle + slice.angle) + startAngle) / 2;\n                        var x = centerLeft + Math.round(Math.cos(halfAngle) * radius);\n                        var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;\n\n                        var html = \"<span class='pieLabel' id='pieLabel\" + index + \"' style='position:absolute;top:\" + y + \"px;left:\" + x + \"px;'>\" + text + \"</span>\";\n                        target.append(html);\n\n                        var label = target.children(\"#pieLabel\" + index);\n                        var labelTop = (y - label.height() / 2);\n                        var labelLeft = (x - label.width() / 2);\n\n                        label.css(\"top\", labelTop);\n                        label.css(\"left\", labelLeft);\n\n                        // check to make sure that the label is not outside the canvas\n                        if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) {\n                            return false;\n                        }\n\n                        if (options.series.pie.label.background.opacity !== 0) {\n                            // put in the transparent background separately to avoid blended labels and label boxes\n                            var c = options.series.pie.label.background.color;\n                            if (c == null) {\n                                c = slice.color;\n                            }\n\n                            var pos = \"top:\" + labelTop + \"px;left:\" + labelLeft + \"px;\";\n                            $(\"<div class='pieLabelBackground' style='position:absolute;width:\" + label.width() + \"px;height:\" + label.height() + \"px;\" + pos + \"background-color:\" + c + \";'></div>\")\n                                .css(\"opacity\", options.series.pie.label.background.opacity)\n                                .insertBefore(label);\n                        }\n\n                        return true;\n                    } // end individual label function\n                } // end drawLabels function\n            } // end drawPie function\n        } // end draw function\n\n        // Placed here because it needs to be accessed from multiple locations\n\n        function drawDonutHole(layer) {\n            if (options.series.pie.innerRadius > 0) {\n                // subtract the center\n                layer.save();\n                var innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius;\n                layer.globalCompositeOperation = \"destination-out\"; // this does not work with excanvas, but it will fall back to using the stroke color\n                layer.beginPath();\n                layer.fillStyle = options.series.pie.stroke.color;\n                layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n                layer.fill();\n                layer.closePath();\n                layer.restore();\n\n                // add inner stroke\n                layer.save();\n                layer.beginPath();\n                layer.strokeStyle = options.series.pie.stroke.color;\n                layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n                layer.stroke();\n                layer.closePath();\n                layer.restore();\n\n                // TODO: add extra shadow inside hole (with a mask) if the pie is tilted.\n            }\n        }\n\n        //-- Additional Interactive related functions --\n\n        function isPointInPoly(poly, pt) {\n            for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) {\n                ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) ||\n                (poly[j][1] <= pt[1] && pt[1] < poly[i][1])) &&\n                (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) &&\n                (c = !c);\n            }\n            return c;\n        }\n\n        function findNearbySlice(mouseX, mouseY) {\n            var slices = plot.getData(),\n                options = plot.getOptions(),\n                radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius,\n                x, y;\n\n            for (var i = 0; i < slices.length; ++i) {\n                var s = slices[i];\n                if (s.pie.show) {\n                    ctx.save();\n                    ctx.beginPath();\n                    ctx.moveTo(0, 0); // Center of the pie\n                    //ctx.scale(1, options.series.pie.tilt);    // this actually seems to break everything when here.\n                    ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false);\n                    ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false);\n                    ctx.closePath();\n                    x = mouseX - centerLeft;\n                    y = mouseY - centerTop;\n\n                    if (ctx.isPointInPath) {\n                        if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) {\n                            ctx.restore();\n                            return {\n                                datapoint: [s.percent, s.data],\n                                dataIndex: 0,\n                                series: s,\n                                seriesIndex: i\n                            };\n                        }\n                    } else {\n                        // excanvas for IE doesn;t support isPointInPath, this is a workaround.\n                        var p1X = radius * Math.cos(s.startAngle),\n                            p1Y = radius * Math.sin(s.startAngle),\n                            p2X = radius * Math.cos(s.startAngle + s.angle / 4),\n                            p2Y = radius * Math.sin(s.startAngle + s.angle / 4),\n                            p3X = radius * Math.cos(s.startAngle + s.angle / 2),\n                            p3Y = radius * Math.sin(s.startAngle + s.angle / 2),\n                            p4X = radius * Math.cos(s.startAngle + s.angle / 1.5),\n                            p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5),\n                            p5X = radius * Math.cos(s.startAngle + s.angle),\n                            p5Y = radius * Math.sin(s.startAngle + s.angle),\n                            arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]],\n                            arrPoint = [x, y];\n\n                        // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt?\n\n                        if (isPointInPoly(arrPoly, arrPoint)) {\n                            ctx.restore();\n                            return {\n                                datapoint: [s.percent, s.data],\n                                dataIndex: 0,\n                                series: s,\n                                seriesIndex: i\n                            };\n                        }\n                    }\n\n                    ctx.restore();\n                }\n            }\n\n            return null;\n        }\n\n        function onMouseMove(e) {\n            triggerClickHoverEvent(\"plothover\", e);\n        }\n\n        function onClick(e) {\n            triggerClickHoverEvent(\"plotclick\", e);\n        }\n\n        // trigger click or hover event (they send the same parameters so we share their code)\n\n        function triggerClickHoverEvent(eventname, e) {\n            var offset = plot.offset();\n            var canvasX = parseInt(e.pageX - offset.left);\n            var canvasY = parseInt(e.pageY - offset.top);\n            var item = findNearbySlice(canvasX, canvasY);\n\n            if (options.grid.autoHighlight) {\n                // clear auto-highlights\n                for (var i = 0; i < highlights.length; ++i) {\n                    var h = highlights[i];\n                    if (h.auto === eventname && !(item && h.series === item.series)) {\n                        unhighlight(h.series);\n                    }\n                }\n            }\n\n            // highlight the slice\n\n            if (item) {\n                highlight(item.series, eventname);\n            }\n\n            // trigger any hover bind events\n\n            var pos = { pageX: e.pageX, pageY: e.pageY };\n            target.trigger(eventname, [pos, item]);\n        }\n\n        function highlight(s, auto) {\n            //if (typeof s == \"number\") {\n            //    s = series[s];\n            //}\n\n            var i = indexOfHighlight(s);\n\n            if (i === -1) {\n                highlights.push({ series: s, auto: auto });\n                plot.triggerRedrawOverlay();\n            } else if (!auto) {\n                highlights[i].auto = false;\n            }\n        }\n\n        function unhighlight(s) {\n            if (s == null) {\n                highlights = [];\n                plot.triggerRedrawOverlay();\n            }\n\n            //if (typeof s == \"number\") {\n            //    s = series[s];\n            //}\n\n            var i = indexOfHighlight(s);\n\n            if (i !== -1) {\n                highlights.splice(i, 1);\n                plot.triggerRedrawOverlay();\n            }\n        }\n\n        function indexOfHighlight(s) {\n            for (var i = 0; i < highlights.length; ++i) {\n                var h = highlights[i];\n                if (h.series === s) {\n                    return i;\n                }\n            }\n            return -1;\n        }\n\n        function drawOverlay(plot, octx) {\n            var options = plot.getOptions();\n            var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n            octx.save();\n            octx.translate(centerLeft, centerTop);\n            octx.scale(1, options.series.pie.tilt);\n\n            for (var i = 0; i < highlights.length; ++i) {\n                drawHighlight(highlights[i].series);\n            }\n\n            drawDonutHole(octx);\n\n            octx.restore();\n\n            function drawHighlight(series) {\n                if (series.angle <= 0 || isNaN(series.angle)) {\n                    return;\n                }\n\n                //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString();\n                octx.fillStyle = \"rgba(255, 255, 255, \" + options.series.pie.highlight.opacity + \")\"; // this is temporary until we have access to parseColor\n                octx.beginPath();\n                if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) {\n                    octx.moveTo(0, 0); // Center of the pie\n                }\n                octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false);\n                octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false);\n                octx.closePath();\n                octx.fill();\n            }\n        }\n    } // end init (plugin body)\n\n    // define pie specific options and their default values\n    var options = {\n        series: {\n            pie: {\n                show: false,\n                radius: \"auto\",    // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value)\n                innerRadius: 0, /* for donut */\n                startAngle: 3 / 2,\n                tilt: 1,\n                shadow: {\n                    left: 5,    // shadow left offset\n                    top: 15,    // shadow top offset\n                    alpha: 0.02    // shadow alpha\n                },\n                offset: {\n                    top: 0,\n                    left: \"auto\"\n                },\n                stroke: {\n                    color: \"#fff\",\n                    width: 1\n                },\n                label: {\n                    show: \"auto\",\n                    formatter: function(label, slice) {\n                        return \"<div style='font-size:x-small;text-align:center;padding:2px;color:\" + slice.color + \";'>\" + label + \"<br/>\" + Math.round(slice.percent) + \"%</div>\";\n                    },    // formatter function\n                    radius: 1,    // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value)\n                    background: {\n                        color: null,\n                        opacity: 0\n                    },\n                    threshold: 0    // percentage at which to hide the label (i.e. the slice is too narrow)\n                },\n                combine: {\n                    threshold: -1,    // percentage at which to combine little slices into one larger slice\n                    color: null,    // color to give the new slice (auto-generated if null)\n                    label: \"Other\"    // label to give the new slice\n                },\n                highlight: {\n                    //color: \"#fff\",        // will add this functionality once parseColor is available\n                    opacity: 0.5\n                }\n            }\n        }\n    };\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: \"pie\",\n        version: \"1.1\"\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.resize.js",
    "content": "/* eslint-disable */\n/* Flot plugin for automatically redrawing plots as the placeholder resizes.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nIt works by listening for changes on the placeholder div (through the jQuery\nresize event plugin) - if the size changes, it will redraw the plot.\n\nThere are no options. If you need to disable the plugin for some plots, you\ncan just fix the size of their placeholders.\n\n*/\n\n/* Inline dependency:\n * jQuery resize event - v1.1 - 3/14/2010\n * http://benalman.com/projects/jquery-resize-plugin/\n *\n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n */\n(function($,e,t){\"$:nomunge\";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s=\"setTimeout\",u=\"resize\",m=u+\"-special-event\",o=\"pendingDelay\",l=\"activeDelay\",f=\"throttleWindow\";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(\":visible\")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,window);\n\n/* eslint-enable */\n(function ($) {\n    var options = { }; // no options\n\n    function init(plot) {\n        function onResize() {\n            var placeholder = plot.getPlaceholder();\n\n            // somebody might have hidden us and we can't plot\n            // when we don't have the dimensions\n            if (placeholder.width() === 0 || placeholder.height() === 0) return;\n\n            plot.resize();\n            plot.setupGrid();\n            plot.draw();\n        }\n\n        function bindEvents(plot, eventHolder) {\n            plot.getPlaceholder().resize(onResize);\n        }\n\n        function shutdown(plot, eventHolder) {\n            plot.getPlaceholder().unbind(\"resize\", onResize);\n        }\n\n        plot.hooks.bindEvents.push(bindEvents);\n        plot.hooks.shutdown.push(shutdown);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'resize',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.saturated.js",
    "content": "(function ($) {\n    'use strict';\n    var saturated = {\n        saturate: function (a) {\n            if (a === Infinity) {\n                return Number.MAX_VALUE;\n            }\n\n            if (a === -Infinity) {\n                return -Number.MAX_VALUE;\n            }\n\n            return a;\n        },\n        delta: function(min, max, noTicks) {\n            return ((max - min) / noTicks) === Infinity ? (max / noTicks - min / noTicks) : (max - min) / noTicks\n        },\n        multiply: function (a, b) {\n            return saturated.saturate(a * b);\n        },\n        // returns c * bInt * a. Beahves properly in the case where c is negative\n        // and bInt * a is bigger that Number.MAX_VALUE (Infinity)\n        multiplyAdd: function (a, bInt, c) {\n            if (isFinite(a * bInt)) {\n                return saturated.saturate(a * bInt + c);\n            } else {\n                var result = c;\n\n                for (var i = 0; i < bInt; i++) {\n                    result += a;\n                }\n\n                return saturated.saturate(result);\n            }\n        },\n        // round to nearby lower multiple of base\n        floorInBase: function(n, base) {\n            return base * Math.floor(n / base);\n        }\n    };\n\n    $.plot.saturated = saturated;\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.selection.js",
    "content": "/* Flot plugin for selecting regions of a plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\nselection: {\n    mode: null or \"x\" or \"y\" or \"xy\" or \"smart\",\n    color: color,\n    shape: \"round\" or \"miter\" or \"bevel\",\n    visualization: \"fill\" or \"focus\",\n    displaySelectionDecorations: true or false,\n    minSize: number of pixels\n}\n\nSelection support is enabled by setting the mode to one of \"x\", \"y\" or \"xy\".\nIn \"x\" mode, the user will only be able to specify the x range, similarly for\n\"y\" mode. For \"xy\", the selection becomes a rectangle where both ranges can be\nspecified. \"color\" is color of the selection (if you need to change the color\nlater on, you can get to it with plot.getOptions().selection.color). \"shape\"\nis the shape of the corners of the selection.\n\nThe way how the selection is visualized, can be changed by using the option\n\"visualization\". Flot currently supports two modes: \"focus\" and \"fill\". The\noption \"focus\" draws a colored bezel around the selected area while keeping\nthe selected area clear. The option \"fill\" highlights (i.e., fills) the\nselected area with a colored highlight.\n\nThere are optional selection decorations (handles) that are rendered with the\n\"focus\" visualization option. The selection decoration is rendered by default\nbut can be turned off by setting displaySelectionDecorations to false.\n\n\"minSize\" is the minimum size a selection can be in pixels. This value can\nbe customized to determine the smallest size a selection can be and still\nhave the selection rectangle be displayed. When customizing this value, the\nfact that it refers to pixels, not axis units must be taken into account.\nThus, for example, if there is a bar graph in time mode with BarWidth set to 1\nminute, setting \"minSize\" to 1 will not make the minimum selection size 1\nminute, but rather 1 pixel. Note also that setting \"minSize\" to 0 will prevent\n\"plotunselected\" events from being fired when the user clicks the mouse without\ndragging.\n\nWhen selection support is enabled, a \"plotselected\" event will be emitted on\nthe DOM element you passed into the plot function. The event handler gets a\nparameter with the ranges selected on the axes, like this:\n\n    placeholder.bind( \"plotselected\", function( event, ranges ) {\n        alert(\"You selected \" + ranges.xaxis.from + \" to \" + ranges.xaxis.to)\n        // similar for yaxis - with multiple axes, the extra ones are in\n        // x2axis, x3axis, ...\n    });\n\nThe \"plotselected\" event is only fired when the user has finished making the\nselection. A \"plotselecting\" event is fired during the process with the same\nparameters as the \"plotselected\" event, in case you want to know what's\nhappening while it's happening,\n\nA \"plotunselected\" event with no arguments is emitted when the user clicks the\nmouse to remove the selection. As stated above, setting \"minSize\" to 0 will\ndestroy this behavior.\n\nThe plugin allso adds the following methods to the plot object:\n\n- setSelection( ranges, preventEvent )\n\n  Set the selection rectangle. The passed in ranges is on the same form as\n  returned in the \"plotselected\" event. If the selection mode is \"x\", you\n  should put in either an xaxis range, if the mode is \"y\" you need to put in\n  an yaxis range and both xaxis and yaxis if the selection mode is \"xy\", like\n  this:\n\n    setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } });\n\n  setSelection will trigger the \"plotselected\" event when called. If you don't\n  want that to happen, e.g. if you're inside a \"plotselected\" handler, pass\n  true as the second parameter. If you are using multiple axes, you can\n  specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of\n  xaxis, the plugin picks the first one it sees.\n\n- clearSelection( preventEvent )\n\n  Clear the selection rectangle. Pass in true to avoid getting a\n  \"plotunselected\" event.\n\n- getSelection()\n\n  Returns the current selection in the same format as the \"plotselected\"\n  event. If there's currently no selection, the function returns null.\n\n*/\n\n(function ($) {\n    function init(plot) {\n        var selection = {\n            first: {x: -1, y: -1},\n            second: {x: -1, y: -1},\n            show: false,\n            currentMode: 'xy',\n            active: false\n        };\n\n        var SNAPPING_CONSTANT = $.plot.uiConstants.SNAPPING_CONSTANT;\n\n        // FIXME: The drag handling implemented here should be\n        // abstracted out, there's some similar code from a library in\n        // the navigation plugin, this should be massaged a bit to fit\n        // the Flot cases here better and reused. Doing this would\n        // make this plugin much slimmer.\n        var savedhandlers = {};\n\n        function onDrag(e) {\n            if (selection.active) {\n                updateSelection(e);\n\n                plot.getPlaceholder().trigger(\"plotselecting\", [ getSelection() ]);\n            }\n        }\n\n        function onDragStart(e) {\n            var o = plot.getOptions();\n            // only accept left-click\n            if (e.which !== 1 || o.selection.mode === null) return;\n\n            // reinitialize currentMode\n            selection.currentMode = 'xy';\n\n            // cancel out any text selections\n            document.body.focus();\n\n            // prevent text selection and drag in old-school browsers\n            if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) {\n                savedhandlers.onselectstart = document.onselectstart;\n                document.onselectstart = function () { return false; };\n            }\n            if (document.ondrag !== undefined && savedhandlers.ondrag == null) {\n                savedhandlers.ondrag = document.ondrag;\n                document.ondrag = function () { return false; };\n            }\n\n            setSelectionPos(selection.first, e);\n\n            selection.active = true;\n        }\n\n        function onDragEnd(e) {\n            // revert drag stuff for old-school browsers\n            if (document.onselectstart !== undefined) {\n                document.onselectstart = savedhandlers.onselectstart;\n            }\n\n            if (document.ondrag !== undefined) {\n                document.ondrag = savedhandlers.ondrag;\n            }\n\n            // no more dragging\n            selection.active = false;\n            updateSelection(e);\n\n            if (selectionIsSane()) {\n                triggerSelectedEvent();\n            } else {\n                // this counts as a clear\n                plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n                plot.getPlaceholder().trigger(\"plotselecting\", [ null ]);\n            }\n\n            return false;\n        }\n\n        function getSelection() {\n            if (!selectionIsSane()) return null;\n\n            if (!selection.show) return null;\n\n            var r = {},\n                c1 = {x: selection.first.x, y: selection.first.y},\n                c2 = {x: selection.second.x, y: selection.second.y};\n\n            if (selectionDirection(plot) === 'x') {\n                c1.y = 0;\n                c2.y = plot.height();\n            }\n\n            if (selectionDirection(plot) === 'y') {\n                c1.x = 0;\n                c2.x = plot.width();\n            }\n\n            $.each(plot.getAxes(), function (name, axis) {\n                if (axis.used) {\n                    var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]);\n                    r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };\n                }\n            });\n            return r;\n        }\n\n        function triggerSelectedEvent() {\n            var r = getSelection();\n\n            plot.getPlaceholder().trigger(\"plotselected\", [ r ]);\n\n            // backwards-compat stuff, to be removed in future\n            if (r.xaxis && r.yaxis) {\n                plot.getPlaceholder().trigger(\"selected\", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);\n            }\n        }\n\n        function clamp(min, value, max) {\n            return value < min ? min : (value > max ? max : value);\n        }\n\n        function selectionDirection(plot) {\n            var o = plot.getOptions();\n\n            if (o.selection.mode === 'smart') {\n                return selection.currentMode;\n            } else {\n                return o.selection.mode;\n            }\n        }\n\n        function updateMode(pos) {\n            if (selection.first) {\n                var delta = {\n                    x: pos.x - selection.first.x,\n                    y: pos.y - selection.first.y\n                };\n\n                if (Math.abs(delta.x) < SNAPPING_CONSTANT) {\n                    selection.currentMode = 'y';\n                } else if (Math.abs(delta.y) < SNAPPING_CONSTANT) {\n                    selection.currentMode = 'x';\n                } else {\n                    selection.currentMode = 'xy';\n                }\n            }\n        }\n\n        function setSelectionPos(pos, e) {\n            var offset = plot.getPlaceholder().offset();\n            var plotOffset = plot.getPlotOffset();\n            pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width());\n            pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height());\n\n            if (pos !== selection.first) updateMode(pos);\n\n            if (selectionDirection(plot) === \"y\") {\n                pos.x = pos === selection.first ? 0 : plot.width();\n            }\n\n            if (selectionDirection(plot) === \"x\") {\n                pos.y = pos === selection.first ? 0 : plot.height();\n            }\n        }\n\n        function updateSelection(pos) {\n            if (pos.pageX == null) return;\n\n            setSelectionPos(selection.second, pos);\n            if (selectionIsSane()) {\n                selection.show = true;\n                plot.triggerRedrawOverlay();\n            } else clearSelection(true);\n        }\n\n        function clearSelection(preventEvent) {\n            if (selection.show) {\n                selection.show = false;\n                selection.currentMode = '';\n                plot.triggerRedrawOverlay();\n                if (!preventEvent) {\n                    plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n                }\n            }\n        }\n\n        // function taken from markings support in Flot\n        function extractRange(ranges, coord) {\n            var axis, from, to, key, axes = plot.getAxes();\n\n            for (var k in axes) {\n                axis = axes[k];\n                if (axis.direction === coord) {\n                    key = coord + axis.n + \"axis\";\n                    if (!ranges[key] && axis.n === 1) {\n                        // support x1axis as xaxis\n                        key = coord + \"axis\";\n                    }\n\n                    if (ranges[key]) {\n                        from = ranges[key].from;\n                        to = ranges[key].to;\n                        break;\n                    }\n                }\n            }\n\n            // backwards-compat stuff - to be removed in future\n            if (!ranges[key]) {\n                axis = coord === \"x\" ? plot.getXAxes()[0] : plot.getYAxes()[0];\n                from = ranges[coord + \"1\"];\n                to = ranges[coord + \"2\"];\n            }\n\n            // auto-reverse as an added bonus\n            if (from != null && to != null && from > to) {\n                var tmp = from;\n                from = to;\n                to = tmp;\n            }\n\n            return { from: from, to: to, axis: axis };\n        }\n\n        function setSelection(ranges, preventEvent) {\n            var range;\n\n            if (selectionDirection(plot) === \"y\") {\n                selection.first.x = 0;\n                selection.second.x = plot.width();\n            } else {\n                range = extractRange(ranges, \"x\");\n                selection.first.x = range.axis.p2c(range.from);\n                selection.second.x = range.axis.p2c(range.to);\n            }\n\n            if (selectionDirection(plot) === \"x\") {\n                selection.first.y = 0;\n                selection.second.y = plot.height();\n            } else {\n                range = extractRange(ranges, \"y\");\n                selection.first.y = range.axis.p2c(range.from);\n                selection.second.y = range.axis.p2c(range.to);\n            }\n\n            selection.show = true;\n            plot.triggerRedrawOverlay();\n            if (!preventEvent && selectionIsSane()) {\n                triggerSelectedEvent();\n            }\n        }\n\n        function selectionIsSane() {\n            var minSize = plot.getOptions().selection.minSize;\n            return Math.abs(selection.second.x - selection.first.x) >= minSize &&\n                Math.abs(selection.second.y - selection.first.y) >= minSize;\n        }\n\n        plot.clearSelection = clearSelection;\n        plot.setSelection = setSelection;\n        plot.getSelection = getSelection;\n\n        plot.hooks.bindEvents.push(function(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.selection.mode != null) {\n                plot.addEventHandler(\"dragstart\", onDragStart, eventHolder, 0);\n                plot.addEventHandler(\"drag\", onDrag, eventHolder, 0);\n                plot.addEventHandler(\"dragend\", onDragEnd, eventHolder, 0);\n            }\n        });\n\n        function drawSelectionDecorations(ctx, x, y, w, h, oX, oY, mode) {\n            var spacing = 3;\n            var fullEarWidth = 15;\n            var earWidth = Math.max(0, Math.min(fullEarWidth, w / 2 - 2, h / 2 - 2));\n            ctx.fillStyle = '#ffffff';\n\n            if (mode === 'xy') {\n                ctx.beginPath();\n                ctx.moveTo(x, y + earWidth);\n                ctx.lineTo(x - 3, y + earWidth);\n                ctx.lineTo(x - 3, y - 3);\n                ctx.lineTo(x + earWidth, y - 3);\n                ctx.lineTo(x + earWidth, y);\n                ctx.lineTo(x, y);\n                ctx.closePath();\n\n                ctx.moveTo(x, y + h - earWidth);\n                ctx.lineTo(x - 3, y + h - earWidth);\n                ctx.lineTo(x - 3, y + h + 3);\n                ctx.lineTo(x + earWidth, y + h + 3);\n                ctx.lineTo(x + earWidth, y + h);\n                ctx.lineTo(x, y + h);\n                ctx.closePath();\n\n                ctx.moveTo(x + w, y + earWidth);\n                ctx.lineTo(x + w + 3, y + earWidth);\n                ctx.lineTo(x + w + 3, y - 3);\n                ctx.lineTo(x + w - earWidth, y - 3);\n                ctx.lineTo(x + w - earWidth, y);\n                ctx.lineTo(x + w, y);\n                ctx.closePath();\n\n                ctx.moveTo(x + w, y + h - earWidth);\n                ctx.lineTo(x + w + 3, y + h - earWidth);\n                ctx.lineTo(x + w + 3, y + h + 3);\n                ctx.lineTo(x + w - earWidth, y + h + 3);\n                ctx.lineTo(x + w - earWidth, y + h);\n                ctx.lineTo(x + w, y + h);\n                ctx.closePath();\n\n                ctx.stroke();\n                ctx.fill();\n            }\n\n            x = oX;\n            y = oY;\n\n            if (mode === 'x') {\n                ctx.beginPath();\n                ctx.moveTo(x, y + fullEarWidth);\n                ctx.lineTo(x, y - fullEarWidth);\n                ctx.lineTo(x - spacing, y - fullEarWidth);\n                ctx.lineTo(x - spacing, y + fullEarWidth);\n                ctx.closePath();\n\n                ctx.moveTo(x + w, y + fullEarWidth);\n                ctx.lineTo(x + w, y - fullEarWidth);\n                ctx.lineTo(x + w + spacing, y - fullEarWidth);\n                ctx.lineTo(x + w + spacing, y + fullEarWidth);\n                ctx.closePath();\n                ctx.stroke();\n                ctx.fill();\n            }\n\n            if (mode === 'y') {\n                ctx.beginPath();\n\n                ctx.moveTo(x - fullEarWidth, y);\n                ctx.lineTo(x + fullEarWidth, y);\n                ctx.lineTo(x + fullEarWidth, y - spacing);\n                ctx.lineTo(x - fullEarWidth, y - spacing);\n                ctx.closePath();\n\n                ctx.moveTo(x - fullEarWidth, y + h);\n                ctx.lineTo(x + fullEarWidth, y + h);\n                ctx.lineTo(x + fullEarWidth, y + h + spacing);\n                ctx.lineTo(x - fullEarWidth, y + h + spacing);\n                ctx.closePath();\n                ctx.stroke();\n                ctx.fill();\n            }\n        }\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            // draw selection\n            if (selection.show && selectionIsSane()) {\n                var plotOffset = plot.getPlotOffset();\n                var o = plot.getOptions();\n\n                ctx.save();\n                ctx.translate(plotOffset.left, plotOffset.top);\n\n                var c = $.color.parse(o.selection.color);\n                var visualization = o.selection.visualization;\n                var displaySelectionDecorations = o.selection.displaySelectionDecorations;\n\n                var scalingFactor = 1;\n\n                // use a dimmer scaling factor if visualization is \"fill\"\n                if (visualization === \"fill\") {\n                    scalingFactor = 0.8;\n                }\n\n                ctx.strokeStyle = c.scale('a', scalingFactor).toString();\n                ctx.lineWidth = 1;\n                ctx.lineJoin = o.selection.shape;\n                ctx.fillStyle = c.scale('a', 0.4).toString();\n\n                var x = Math.min(selection.first.x, selection.second.x) + 0.5,\n                    oX = x,\n                    y = Math.min(selection.first.y, selection.second.y) + 0.5,\n                    oY = y,\n                    w = Math.abs(selection.second.x - selection.first.x) - 1,\n                    h = Math.abs(selection.second.y - selection.first.y) - 1;\n\n                if (selectionDirection(plot) === 'x') {\n                    h += y;\n                    y = 0;\n                }\n\n                if (selectionDirection(plot) === 'y') {\n                    w += x;\n                    x = 0;\n                }\n\n                if (visualization === \"fill\") {\n                    ctx.fillRect(x, y, w, h);\n                    ctx.strokeRect(x, y, w, h);\n                } else {\n                    ctx.fillRect(0, 0, plot.width(), plot.height());\n                    ctx.clearRect(x, y, w, h);\n\n                    if (displaySelectionDecorations) {\n                        drawSelectionDecorations(ctx, x, y, w, h, oX, oY, selectionDirection(plot));\n                    }\n                }\n\n                ctx.restore();\n            }\n        });\n\n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"dragstart\", onDragStart);\n            eventHolder.unbind(\"drag\", onDrag);\n            eventHolder.unbind(\"dragend\", onDragEnd);\n        });\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: {\n            selection: {\n                mode: null, // one of null, \"x\", \"y\" or \"xy\"\n                visualization: \"focus\", // \"focus\" or \"fill\"\n                displaySelectionDecorations: true, // true or false (currently only relevant for the focus visualization)\n                color: \"#888888\",\n                shape: \"round\", // one of \"round\", \"miter\", or \"bevel\"\n                minSize: 5 // minimum number of pixels\n            }\n        },\n        name: 'selection',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.stack.js",
    "content": "/* Flot plugin for stacking data sets rather than overlaying them.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes the data is sorted on x (or y if stacking horizontally).\nFor line charts, it is assumed that if a line has an undefined gap (from a\nnull point), then the line above it should have the same gap - insert zeros\ninstead of \"null\" if you want another behaviour. This also holds for the start\nand end of the chart. Note that stacking a mix of positive and negative values\nin most instances doesn't make sense (so it looks weird).\n\nTwo or more series are stacked when their \"stack\" attribute is set to the same\nkey (which can be any number or string or just \"true\"). To specify the default\nstack, you can set the stack option like this:\n\n    series: {\n        stack: null/false, true, or a key (number/string)\n    }\n\nYou can also specify it for a single series, like this:\n\n    $.plot( $(\"#placeholder\"), [{\n        data: [ ... ],\n        stack: true\n    }])\n\nThe stacking order is determined by the order of the data series in the array\n(later series end up on top of the previous).\n\nInternally, the plugin modifies the datapoints in each series, adding an\noffset to the y value. For line series, extra data points are inserted through\ninterpolation. If there's a second y value, it's also adjusted (e.g for bar\ncharts or filled areas).\n\n*/\n\n(function ($) {\n    var options = {\n        series: { stack: null } // or number/string\n    };\n\n    function init(plot) {\n        function findMatchingSeries(s, allseries) {\n            var res = null;\n            for (var i = 0; i < allseries.length; ++i) {\n                if (s === allseries[i]) break;\n\n                if (allseries[i].stack === s.stack) {\n                    res = allseries[i];\n                }\n            }\n\n            return res;\n        }\n\n        function addBottomPoints (s, datapoints) {\n            var formattedPoints = [];\n            for (var i = 0; i < datapoints.points.length; i += 2) {\n                formattedPoints.push(datapoints.points[i]);\n                formattedPoints.push(datapoints.points[i + 1]);\n                formattedPoints.push(0);\n            }\n\n            datapoints.format.push({\n                x: s.bars.horizontal,\n                y: !s.bars.horizontal,\n                number: true,\n                required: false,\n                computeRange: s.yaxis.options.autoScale !== 'none',\n                defaultValue: 0\n            });\n            datapoints.points = formattedPoints;\n            datapoints.pointsize = 3;\n        }\n\n        function stackData(plot, s, datapoints) {\n            if (s.stack == null || s.stack === false) return;\n\n            var needsBottom = s.bars.show || (s.lines.show && s.lines.fill);\n            var hasBottom = datapoints.pointsize > 2 && (s.bars.horizontal ? datapoints.format[2].x : datapoints.format[2].y);\n            // Series data is missing bottom points - need to format\n            if (needsBottom && !hasBottom) {\n                addBottomPoints(s, datapoints);\n            }\n\n            var other = findMatchingSeries(s, plot.getData());\n            if (!other) return;\n\n            var ps = datapoints.pointsize,\n                points = datapoints.points,\n                otherps = other.datapoints.pointsize,\n                otherpoints = other.datapoints.points,\n                newpoints = [],\n                px, py, intery, qx, qy, bottom,\n                withlines = s.lines.show,\n                horizontal = s.bars.horizontal,\n                withsteps = withlines && s.lines.steps,\n                fromgap = true,\n                keyOffset = horizontal ? 1 : 0,\n                accumulateOffset = horizontal ? 0 : 1,\n                i = 0, j = 0, l, m;\n\n            while (true) {\n                if (i >= points.length) break;\n\n                l = newpoints.length;\n\n                if (points[i] == null) {\n                    // copy gaps\n                    for (m = 0; m < ps; ++m) {\n                        newpoints.push(points[i + m]);\n                    }\n\n                    i += ps;\n                } else if (j >= otherpoints.length) {\n                    // for lines, we can't use the rest of the points\n                    if (!withlines) {\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[i + m]);\n                        }\n                    }\n\n                    i += ps;\n                } else if (otherpoints[j] == null) {\n                    // oops, got a gap\n                    for (m = 0; m < ps; ++m) {\n                        newpoints.push(null);\n                    }\n\n                    fromgap = true;\n                    j += otherps;\n                } else {\n                    // cases where we actually got two points\n                    px = points[i + keyOffset];\n                    py = points[i + accumulateOffset];\n                    qx = otherpoints[j + keyOffset];\n                    qy = otherpoints[j + accumulateOffset];\n                    bottom = 0;\n\n                    if (px === qx) {\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[i + m]);\n                        }\n\n                        newpoints[l + accumulateOffset] += qy;\n                        bottom = qy;\n\n                        i += ps;\n                        j += otherps;\n                    } else if (px > qx) {\n                        // we got past point below, might need to\n                        // insert interpolated extra point\n                        if (withlines && i > 0 && points[i - ps] != null) {\n                            intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px);\n                            newpoints.push(qx);\n                            newpoints.push(intery + qy);\n                            for (m = 2; m < ps; ++m) {\n                                newpoints.push(points[i + m]);\n                            }\n\n                            bottom = qy;\n                        }\n\n                        j += otherps;\n                    } else { // px < qx\n                        if (fromgap && withlines) {\n                            // if we come from a gap, we just skip this point\n                            i += ps;\n                            continue;\n                        }\n\n                        for (m = 0; m < ps; ++m) {\n                            newpoints.push(points[i + m]);\n                        }\n\n                        // we might be able to interpolate a point below,\n                        // this can give us a better y\n                        if (withlines && j > 0 && otherpoints[j - otherps] != null) {\n                            bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx);\n                        }\n\n                        newpoints[l + accumulateOffset] += bottom;\n\n                        i += ps;\n                    }\n\n                    fromgap = false;\n\n                    if (l !== newpoints.length && needsBottom) {\n                        newpoints[l + 2] += bottom;\n                    }\n                }\n\n                // maintain the line steps invariant\n                if (withsteps && l !== newpoints.length && l > 0 &&\n                    newpoints[l] !== null &&\n                    newpoints[l] !== newpoints[l - ps] &&\n                    newpoints[l + 1] !== newpoints[l - ps + 1]) {\n                    for (m = 0; m < ps; ++m) {\n                        newpoints[l + ps + m] = newpoints[l + m];\n                    }\n\n                    newpoints[l + 1] = newpoints[l - ps + 1];\n                }\n            }\n\n            datapoints.points = newpoints;\n        }\n\n        plot.hooks.processDatapoints.push(stackData);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'stack',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.symbol.js",
    "content": "/* Flot plugin that adds some extra symbols for plotting points.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe symbols are accessed as strings through the standard symbol options:\n\n    series: {\n        points: {\n            symbol: \"square\" // or \"diamond\", \"triangle\", \"cross\", \"plus\", \"ellipse\", \"rectangle\"\n        }\n    }\n\n*/\n\n(function ($) {\n    // we normalize the area of each symbol so it is approximately the\n    // same as a circle of the given radius\n\n    var square = function (ctx, x, y, radius, shadow) {\n            // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n            var size = radius * Math.sqrt(Math.PI) / 2;\n            ctx.rect(x - size, y - size, size + size, size + size);\n        },\n        rectangle = function (ctx, x, y, radius, shadow) {\n            // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n            var size = radius * Math.sqrt(Math.PI) / 2;\n            ctx.rect(x - size, y - size, size + size, size + size);\n        },\n        diamond = function (ctx, x, y, radius, shadow) {\n            // pi * r^2 = 2s^2  =>  s = r * sqrt(pi/2)\n            var size = radius * Math.sqrt(Math.PI / 2);\n            ctx.moveTo(x - size, y);\n            ctx.lineTo(x, y - size);\n            ctx.lineTo(x + size, y);\n            ctx.lineTo(x, y + size);\n            ctx.lineTo(x - size, y);\n            ctx.lineTo(x, y - size);\n        },\n        triangle = function (ctx, x, y, radius, shadow) {\n            // pi * r^2 = 1/2 * s^2 * sin (pi / 3)  =>  s = r * sqrt(2 * pi / sin(pi / 3))\n            var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));\n            var height = size * Math.sin(Math.PI / 3);\n            ctx.moveTo(x - size / 2, y + height / 2);\n            ctx.lineTo(x + size / 2, y + height / 2);\n            if (!shadow) {\n                ctx.lineTo(x, y - height / 2);\n                ctx.lineTo(x - size / 2, y + height / 2);\n                ctx.lineTo(x + size / 2, y + height / 2);\n            }\n        },\n        cross = function (ctx, x, y, radius, shadow) {\n            // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n            var size = radius * Math.sqrt(Math.PI) / 2;\n            ctx.moveTo(x - size, y - size);\n            ctx.lineTo(x + size, y + size);\n            ctx.moveTo(x - size, y + size);\n            ctx.lineTo(x + size, y - size);\n        },\n        ellipse = function(ctx, x, y, radius, shadow, fill) {\n            if (!shadow) {\n                ctx.moveTo(x + radius, y);\n                ctx.arc(x, y, radius, 0, Math.PI * 2, false);\n            }\n        },\n        plus = function (ctx, x, y, radius, shadow) {\n            var size = radius * Math.sqrt(Math.PI / 2);\n            ctx.moveTo(x - size, y);\n            ctx.lineTo(x + size, y);\n            ctx.moveTo(x, y + size);\n            ctx.lineTo(x, y - size);\n        },\n        handlers = {\n            square: square,\n            rectangle: rectangle,\n            diamond: diamond,\n            triangle: triangle,\n            cross: cross,\n            ellipse: ellipse,\n            plus: plus\n        };\n\n    square.fill = true;\n    rectangle.fill = true;\n    diamond.fill = true;\n    triangle.fill = true;\n    ellipse.fill = true;\n\n    function init(plot) {\n        plot.drawSymbol = handlers;\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        name: 'symbols',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.threshold.js",
    "content": "/* Flot plugin for thresholding data.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n    series: {\n        threshold: {\n            below: number\n            color: colorspec\n        }\n    }\n\nIt can also be applied to a single series, like this:\n\n    $.plot( $(\"#placeholder\"), [{\n        data: [ ... ],\n        threshold: { ... }\n    }])\n\nAn array can be passed for multiple thresholding, like this:\n\n    threshold: [{\n        below: number1\n        color: color1\n    },{\n        below: number2\n        color: color2\n    }]\n\nThese multiple threshold objects can be passed in any order since they are\nsorted by the processing function.\n\nThe data points below \"below\" are drawn with the specified color. This makes\nit easy to mark points below 0, e.g. for budget data.\n\nInternally, the plugin works by splitting the data into two series, above and\nbelow the threshold. The extra series below the threshold will have its label\ncleared and the special \"originSeries\" attribute set to the original series.\nYou may need to check for this in hover events.\n\n*/\n\n(function ($) {\n    var options = {\n        series: { threshold: null } // or { below: number, color: color spec}\n    };\n\n    function init(plot) {\n        function thresholdData(plot, s, datapoints, below, color) {\n            var ps = datapoints.pointsize, i, x, y, p, prevp,\n                thresholded = $.extend({}, s); // note: shallow copy\n\n            thresholded.datapoints = { points: [], pointsize: ps, format: datapoints.format };\n            thresholded.label = null;\n            thresholded.color = color;\n            thresholded.threshold = null;\n            thresholded.originSeries = s;\n            thresholded.data = [];\n\n            var origpoints = datapoints.points,\n                addCrossingPoints = s.lines.show;\n\n            var threspoints = [];\n            var newpoints = [];\n            var m;\n\n            for (i = 0; i < origpoints.length; i += ps) {\n                x = origpoints[i];\n                y = origpoints[i + 1];\n\n                prevp = p;\n                if (y < below) p = threspoints;\n                else p = newpoints;\n\n                if (addCrossingPoints && prevp !== p &&\n                    x !== null && i > 0 &&\n                    origpoints[i - ps] != null) {\n                    var interx = x + (below - y) * (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]);\n                    prevp.push(interx);\n                    prevp.push(below);\n                    for (m = 2; m < ps; ++m) {\n                        prevp.push(origpoints[i + m]);\n                    }\n\n                    p.push(null); // start new segment\n                    p.push(null);\n                    for (m = 2; m < ps; ++m) {\n                        p.push(origpoints[i + m]);\n                    }\n\n                    p.push(interx);\n                    p.push(below);\n                    for (m = 2; m < ps; ++m) {\n                        p.push(origpoints[i + m]);\n                    }\n                }\n\n                p.push(x);\n                p.push(y);\n                for (m = 2; m < ps; ++m) {\n                    p.push(origpoints[i + m]);\n                }\n            }\n\n            datapoints.points = newpoints;\n            thresholded.datapoints.points = threspoints;\n\n            if (thresholded.datapoints.points.length > 0) {\n                var origIndex = $.inArray(s, plot.getData());\n                // Insert newly-generated series right after original one (to prevent it from becoming top-most)\n                plot.getData().splice(origIndex + 1, 0, thresholded);\n            }\n\n            // FIXME: there are probably some edge cases left in bars\n        }\n\n        function processThresholds(plot, s, datapoints) {\n            if (!s.threshold) return;\n            if (s.threshold instanceof Array) {\n                s.threshold.sort(function(a, b) {\n                    return a.below - b.below;\n                });\n\n                $(s.threshold).each(function(i, th) {\n                    thresholdData(plot, s, datapoints, th.below, th.color);\n                });\n            } else {\n                thresholdData(plot, s, datapoints, s.threshold.below, s.threshold.color);\n            }\n        }\n\n        plot.hooks.processDatapoints.push(processThresholds);\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'threshold',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.time.js",
    "content": "/* Pretty handling of time axes.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nSet axis.mode to \"time\" to enable. See the section \"Time series data\" in\nAPI.txt for details.\n*/\n\n(function($) {\n    'use strict';\n\n    var options = {\n        xaxis: {\n            timezone: null, // \"browser\" for local to the client or timezone for timezone-js\n            timeformat: null, // format string to use\n            twelveHourClock: false, // 12 or 24 time in time mode\n            monthNames: null, // list of names of months\n            timeBase: 'seconds' // are the values in given in mircoseconds, milliseconds or seconds\n        },\n        yaxis: {\n            timeBase: 'seconds'\n        }\n    };\n\n    var floorInBase = $.plot.saturated.floorInBase;\n\n    // Method to provide microsecond support to Date like classes.\n    var CreateMicroSecondDate = function(DateType, microEpoch) {\n        var newDate = new DateType(microEpoch);\n\n        var oldSetTime = newDate.setTime.bind(newDate);\n        newDate.update = function(microEpoch) {\n            oldSetTime(microEpoch);\n\n            // Round epoch to 3 decimal accuracy\n            microEpoch = Math.round(microEpoch * 1000) / 1000;\n\n            // Microseconds are stored as integers\n            this.microseconds = 1000 * (microEpoch - Math.floor(microEpoch));\n        };\n\n        var oldGetTime = newDate.getTime.bind(newDate);\n        newDate.getTime = function () {\n            var microEpoch = oldGetTime() + this.microseconds / 1000;\n            return microEpoch;\n        };\n\n        newDate.setTime = function (microEpoch) {\n            this.update(microEpoch);\n        };\n\n        newDate.getMicroseconds = function() {\n            return this.microseconds;\n        };\n\n        newDate.setMicroseconds = function(microseconds) {\n            var epochWithoutMicroseconds = oldGetTime();\n            var newEpoch = epochWithoutMicroseconds + microseconds / 1000;\n            this.update(newEpoch);\n        };\n\n        newDate.setUTCMicroseconds = function(microseconds) { this.setMicroseconds(microseconds); }\n\n        newDate.getUTCMicroseconds = function() { return this.getMicroseconds(); }\n\n        newDate.microseconds = null;\n        newDate.microEpoch = null;\n        newDate.update(microEpoch);\n        return newDate;\n    }\n\n    // Returns a string with the date d formatted according to fmt.\n    // A subset of the Open Group's strftime format is supported.\n\n    function formatDate(d, fmt, monthNames, dayNames) {\n        if (typeof d.strftime === \"function\") {\n            return d.strftime(fmt);\n        }\n\n        var leftPad = function(n, pad) {\n            n = \"\" + n;\n            pad = \"\" + (pad == null ? \"0\" : pad);\n            return n.length === 1 ? pad + n : n;\n        };\n\n        var formatSubSeconds = function(milliseconds, microseconds, numberDecimalPlaces) {\n            var totalMicroseconds = milliseconds * 1000 + microseconds;\n            var formattedString;\n            if (numberDecimalPlaces < 6 && numberDecimalPlaces > 0) {\n                var magnitude = parseFloat('1e' + (numberDecimalPlaces - 6));\n                totalMicroseconds = Math.round(Math.round(totalMicroseconds * magnitude) / magnitude);\n                formattedString = ('00000' + totalMicroseconds).slice(-6, -(6 - numberDecimalPlaces));\n            } else {\n                totalMicroseconds = Math.round(totalMicroseconds)\n                formattedString = ('00000' + totalMicroseconds).slice(-6);\n            }\n            return formattedString;\n        };\n\n        var r = [];\n        var escape = false;\n        var hours = d.getHours();\n        var isAM = hours < 12;\n\n        if (!monthNames) {\n            monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n        }\n\n        if (!dayNames) {\n            dayNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n        }\n\n        var hours12;\n        if (hours > 12) {\n            hours12 = hours - 12;\n        } else if (hours === 0) {\n            hours12 = 12;\n        } else {\n            hours12 = hours;\n        }\n\n        var decimals = -1;\n        for (var i = 0; i < fmt.length; ++i) {\n            var c = fmt.charAt(i);\n\n            if (!isNaN(Number(c)) && Number(c) > 0) {\n                decimals = Number(c);\n            } else if (escape) {\n                switch (c) {\n                    case 'a': c = \"\" + dayNames[d.getDay()]; break;\n                    case 'b': c = \"\" + monthNames[d.getMonth()]; break;\n                    case 'd': c = leftPad(d.getDate()); break;\n                    case 'e': c = leftPad(d.getDate(), \" \"); break;\n                    case 'h': // For back-compat with 0.7; remove in 1.0\n                    case 'H': c = leftPad(hours); break;\n                    case 'I': c = leftPad(hours12); break;\n                    case 'l': c = leftPad(hours12, \" \"); break;\n                    case 'm': c = leftPad(d.getMonth() + 1); break;\n                    case 'M': c = leftPad(d.getMinutes()); break;\n                    // quarters not in Open Group's strftime specification\n                    case 'q':\n                        c = \"\" + (Math.floor(d.getMonth() / 3) + 1); break;\n                    case 'S': c = leftPad(d.getSeconds()); break;\n                    case 's': c = \"\" + formatSubSeconds(d.getMilliseconds(), d.getMicroseconds(), decimals); break;\n                    case 'y': c = leftPad(d.getFullYear() % 100); break;\n                    case 'Y': c = \"\" + d.getFullYear(); break;\n                    case 'p': c = (isAM) ? (\"\" + \"am\") : (\"\" + \"pm\"); break;\n                    case 'P': c = (isAM) ? (\"\" + \"AM\") : (\"\" + \"PM\"); break;\n                    case 'w': c = \"\" + d.getDay(); break;\n                }\n                r.push(c);\n                escape = false;\n            } else {\n                if (c === \"%\") {\n                    escape = true;\n                } else {\n                    r.push(c);\n                }\n            }\n        }\n\n        return r.join(\"\");\n    }\n\n    // To have a consistent view of time-based data independent of which time\n    // zone the client happens to be in we need a date-like object independent\n    // of time zones.  This is done through a wrapper that only calls the UTC\n    // versions of the accessor methods.\n\n    function makeUtcWrapper(d) {\n        function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {\n            sourceObj[sourceMethod] = function() {\n                return targetObj[targetMethod].apply(targetObj, arguments);\n            };\n        }\n\n        var utc = {\n            date: d\n        };\n\n        // support strftime, if found\n        if (d.strftime !== undefined) {\n            addProxyMethod(utc, \"strftime\", d, \"strftime\");\n        }\n\n        addProxyMethod(utc, \"getTime\", d, \"getTime\");\n        addProxyMethod(utc, \"setTime\", d, \"setTime\");\n\n        var props = [\"Date\", \"Day\", \"FullYear\", \"Hours\", \"Minutes\", \"Month\", \"Seconds\", \"Milliseconds\", \"Microseconds\"];\n\n        for (var p = 0; p < props.length; p++) {\n            addProxyMethod(utc, \"get\" + props[p], d, \"getUTC\" + props[p]);\n            addProxyMethod(utc, \"set\" + props[p], d, \"setUTC\" + props[p]);\n        }\n\n        return utc;\n    }\n\n    // select time zone strategy.  This returns a date-like object tied to the\n    // desired timezone\n    function dateGenerator(ts, opts) {\n        var maxDateValue = 8640000000000000;\n\n        if (opts && opts.timeBase === 'seconds') {\n            ts *= 1000;\n        } else if (opts.timeBase === 'microseconds') {\n            ts /= 1000;\n        }\n\n        if (ts > maxDateValue) {\n            ts = maxDateValue;\n        } else if (ts < -maxDateValue) {\n            ts = -maxDateValue;\n        }\n\n        if (opts.timezone === \"browser\") {\n            return CreateMicroSecondDate(Date, ts);\n        } else if (!opts.timezone || opts.timezone === \"utc\") {\n            return makeUtcWrapper(CreateMicroSecondDate(Date, ts));\n        } else if (typeof timezoneJS !== \"undefined\" && typeof timezoneJS.Date !== \"undefined\") {\n            var d = CreateMicroSecondDate(timezoneJS.Date, ts);\n            // timezone-js is fickle, so be sure to set the time zone before\n            // setting the time.\n            d.setTimezone(opts.timezone);\n            d.setTime(ts);\n            return d;\n        } else {\n            return makeUtcWrapper(CreateMicroSecondDate(Date, ts));\n        }\n    }\n\n    // map of app. size of time units in seconds\n    var timeUnitSizeSeconds = {\n        \"microsecond\": 0.000001,\n        \"millisecond\": 0.001,\n        \"second\": 1,\n        \"minute\": 60,\n        \"hour\": 60 * 60,\n        \"day\": 24 * 60 * 60,\n        \"month\": 30 * 24 * 60 * 60,\n        \"quarter\": 3 * 30 * 24 * 60 * 60,\n        \"year\": 365.2425 * 24 * 60 * 60\n    };\n\n    // map of app. size of time units in milliseconds\n    var timeUnitSizeMilliseconds = {\n        \"microsecond\": 0.001,\n        \"millisecond\": 1,\n        \"second\": 1000,\n        \"minute\": 60 * 1000,\n        \"hour\": 60 * 60 * 1000,\n        \"day\": 24 * 60 * 60 * 1000,\n        \"month\": 30 * 24 * 60 * 60 * 1000,\n        \"quarter\": 3 * 30 * 24 * 60 * 60 * 1000,\n        \"year\": 365.2425 * 24 * 60 * 60 * 1000\n    };\n\n    // map of app. size of time units in microseconds\n    var timeUnitSizeMicroseconds = {\n        \"microsecond\": 1,\n        \"millisecond\": 1000,\n        \"second\": 1000000,\n        \"minute\": 60 * 1000000,\n        \"hour\": 60 * 60 * 1000000,\n        \"day\": 24 * 60 * 60 * 1000000,\n        \"month\": 30 * 24 * 60 * 60 * 1000000,\n        \"quarter\": 3 * 30 * 24 * 60 * 60 * 1000000,\n        \"year\": 365.2425 * 24 * 60 * 60 * 1000000\n    };\n\n    // the allowed tick sizes, after 1 year we use\n    // an integer algorithm\n\n    var baseSpec = [\n        [1, \"microsecond\"], [2, \"microsecond\"], [5, \"microsecond\"], [10, \"microsecond\"],\n        [25, \"microsecond\"], [50, \"microsecond\"], [100, \"microsecond\"], [250, \"microsecond\"], [500, \"microsecond\"],\n        [1, \"millisecond\"], [2, \"millisecond\"], [5, \"millisecond\"], [10, \"millisecond\"],\n        [25, \"millisecond\"], [50, \"millisecond\"], [100, \"millisecond\"], [250, \"millisecond\"], [500, \"millisecond\"],\n        [1, \"second\"], [2, \"second\"], [5, \"second\"], [10, \"second\"],\n        [30, \"second\"],\n        [1, \"minute\"], [2, \"minute\"], [5, \"minute\"], [10, \"minute\"],\n        [30, \"minute\"],\n        [1, \"hour\"], [2, \"hour\"], [4, \"hour\"],\n        [8, \"hour\"], [12, \"hour\"],\n        [1, \"day\"], [2, \"day\"], [3, \"day\"],\n        [0.25, \"month\"], [0.5, \"month\"], [1, \"month\"],\n        [2, \"month\"]\n    ];\n\n    // we don't know which variant(s) we'll need yet, but generating both is\n    // cheap\n\n    var specMonths = baseSpec.concat([[3, \"month\"], [6, \"month\"],\n        [1, \"year\"]]);\n    var specQuarters = baseSpec.concat([[1, \"quarter\"], [2, \"quarter\"],\n        [1, \"year\"]]);\n\n    function dateTickGenerator(axis) {\n        var opts = axis.options,\n            ticks = [],\n            d = dateGenerator(axis.min, opts),\n            minSize = 0;\n\n        // make quarter use a possibility if quarters are\n        // mentioned in either of these options\n        var spec = (opts.tickSize && opts.tickSize[1] ===\n            \"quarter\") ||\n            (opts.minTickSize && opts.minTickSize[1] ===\n            \"quarter\") ? specQuarters : specMonths;\n\n        var timeUnitSize;\n        if (opts.timeBase === 'seconds') {\n            timeUnitSize = timeUnitSizeSeconds;\n        } else if (opts.timeBase === 'microseconds') {\n            timeUnitSize = timeUnitSizeMicroseconds;\n        } else {\n            timeUnitSize = timeUnitSizeMilliseconds;\n        }\n\n        if (opts.minTickSize !== null && opts.minTickSize !== undefined) {\n            if (typeof opts.tickSize === \"number\") {\n                minSize = opts.tickSize;\n            } else {\n                minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];\n            }\n        }\n\n        for (var i = 0; i < spec.length - 1; ++i) {\n            if (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]] +\n                spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 &&\n                spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) {\n                break;\n            }\n        }\n\n        var size = spec[i][0];\n        var unit = spec[i][1];\n        // special-case the possibility of several years\n        if (unit === \"year\") {\n            // if given a minTickSize in years, just use it,\n            // ensuring that it's an integer\n\n            if (opts.minTickSize !== null && opts.minTickSize !== undefined && opts.minTickSize[1] === \"year\") {\n                size = Math.floor(opts.minTickSize[0]);\n            } else {\n                var magn = parseFloat('1e' + Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));\n                var norm = (axis.delta / timeUnitSize.year) / magn;\n\n                if (norm < 1.5) {\n                    size = 1;\n                } else if (norm < 3) {\n                    size = 2;\n                } else if (norm < 7.5) {\n                    size = 5;\n                } else {\n                    size = 10;\n                }\n\n                size *= magn;\n            }\n\n            // minimum size for years is 1\n\n            if (size < 1) {\n                size = 1;\n            }\n        }\n\n        axis.tickSize = opts.tickSize || [size, unit];\n        var tickSize = axis.tickSize[0];\n        unit = axis.tickSize[1];\n\n        var step = tickSize * timeUnitSize[unit];\n\n        if (unit === \"microsecond\") {\n            d.setMicroseconds(floorInBase(d.getMicroseconds(), tickSize));\n        } else if (unit === \"millisecond\") {\n            d.setMilliseconds(floorInBase(d.getMilliseconds(), tickSize));\n        } else if (unit === \"second\") {\n            d.setSeconds(floorInBase(d.getSeconds(), tickSize));\n        } else if (unit === \"minute\") {\n            d.setMinutes(floorInBase(d.getMinutes(), tickSize));\n        } else if (unit === \"hour\") {\n            d.setHours(floorInBase(d.getHours(), tickSize));\n        } else if (unit === \"month\") {\n            d.setMonth(floorInBase(d.getMonth(), tickSize));\n        } else if (unit === \"quarter\") {\n            d.setMonth(3 * floorInBase(d.getMonth() / 3,\n                tickSize));\n        } else if (unit === \"year\") {\n            d.setFullYear(floorInBase(d.getFullYear(), tickSize));\n        }\n\n        // reset smaller components\n\n        if (step >= timeUnitSize.millisecond) {\n            if (step >= timeUnitSize.second) {\n                d.setMicroseconds(0);\n            } else {\n                d.setMicroseconds(d.getMilliseconds() * 1000);\n            }\n        }\n        if (step >= timeUnitSize.minute) {\n            d.setSeconds(0);\n        }\n        if (step >= timeUnitSize.hour) {\n            d.setMinutes(0);\n        }\n        if (step >= timeUnitSize.day) {\n            d.setHours(0);\n        }\n        if (step >= timeUnitSize.day * 4) {\n            d.setDate(1);\n        }\n        if (step >= timeUnitSize.month * 2) {\n            d.setMonth(floorInBase(d.getMonth(), 3));\n        }\n        if (step >= timeUnitSize.quarter * 2) {\n            d.setMonth(floorInBase(d.getMonth(), 6));\n        }\n        if (step >= timeUnitSize.year) {\n            d.setMonth(0);\n        }\n\n        var carry = 0;\n        var v = Number.NaN;\n        var v1000;\n        var prev;\n        do {\n            prev = v;\n            v1000 = d.getTime();\n            if (opts && opts.timeBase === 'seconds') {\n                v = v1000 / 1000;\n            } else if (opts && opts.timeBase === 'microseconds') {\n                v = v1000 * 1000;\n            } else {\n                v = v1000;\n            }\n\n            ticks.push(v);\n\n            if (unit === \"month\" || unit === \"quarter\") {\n                if (tickSize < 1) {\n                    // a bit complicated - we'll divide the\n                    // month/quarter up but we need to take\n                    // care of fractions so we don't end up in\n                    // the middle of a day\n                    d.setDate(1);\n                    var start = d.getTime();\n                    d.setMonth(d.getMonth() +\n                        (unit === \"quarter\" ? 3 : 1));\n                    var end = d.getTime();\n                    d.setTime((v + carry * timeUnitSize.hour + (end - start) * tickSize));\n                    carry = d.getHours();\n                    d.setHours(0);\n                } else {\n                    d.setMonth(d.getMonth() +\n                        tickSize * (unit === \"quarter\" ? 3 : 1));\n                }\n            } else if (unit === \"year\") {\n                d.setFullYear(d.getFullYear() + tickSize);\n            } else {\n                if (opts.timeBase === 'seconds') {\n                    d.setTime((v + step) * 1000);\n                } else if (opts.timeBase === 'microseconds') {\n                    d.setTime((v + step) / 1000);\n                } else {\n                    d.setTime(v + step);\n                }\n            }\n        } while (v < axis.max && v !== prev);\n\n        return ticks;\n    };\n\n    function init(plot) {\n        plot.hooks.processOptions.push(function (plot) {\n            $.each(plot.getAxes(), function(axisName, axis) {\n                var opts = axis.options;\n                if (opts.mode === \"time\") {\n                    axis.tickGenerator = dateTickGenerator;\n\n                    // if a tick formatter is already provided do not overwrite it\n                    if ('tickFormatter' in opts && typeof opts.tickFormatter === 'function') return;\n\n                    axis.tickFormatter = function (v, axis) {\n                        var d = dateGenerator(v, axis.options);\n\n                        // first check global format\n                        if (opts.timeformat != null) {\n                            return formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames);\n                        }\n\n                        // possibly use quarters if quarters are mentioned in\n                        // any of these places\n                        var useQuarters = (axis.options.tickSize &&\n                                axis.options.tickSize[1] === \"quarter\") ||\n                            (axis.options.minTickSize &&\n                                axis.options.minTickSize[1] === \"quarter\");\n\n                        var timeUnitSize;\n                        if (opts.timeBase === 'seconds') {\n                            timeUnitSize = timeUnitSizeSeconds;\n                        } else if (opts.timeBase === 'microseconds') {\n                            timeUnitSize = timeUnitSizeMicroseconds;\n                        } else {\n                            timeUnitSize = timeUnitSizeMilliseconds;\n                        }\n\n                        var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];\n                        var span = axis.max - axis.min;\n                        var suffix = (opts.twelveHourClock) ? \" %p\" : \"\";\n                        var hourCode = (opts.twelveHourClock) ? \"%I\" : \"%H\";\n                        var factor;\n                        var fmt;\n\n                        if (opts.timeBase === 'seconds') {\n                            factor = 1;\n                        } else if (opts.timeBase === 'microseconds') {\n                            factor = 1000000\n                        } else {\n                            factor = 1000;\n                        }\n\n                        if (t < timeUnitSize.second) {\n                            var decimals = -Math.floor(Math.log10(t / factor))\n\n                            // the two-and-halves require an additional decimal\n                            if (String(t).indexOf('25') > -1) {\n                                decimals++;\n                            }\n\n                            fmt = \"%S.%\" + decimals + \"s\";\n                        } else\n                        if (t < timeUnitSize.minute) {\n                            fmt = hourCode + \":%M:%S\" + suffix;\n                        } else if (t < timeUnitSize.day) {\n                            if (span < 2 * timeUnitSize.day) {\n                                fmt = hourCode + \":%M\" + suffix;\n                            } else {\n                                fmt = \"%b %d \" + hourCode + \":%M\" + suffix;\n                            }\n                        } else if (t < timeUnitSize.month) {\n                            fmt = \"%b %d\";\n                        } else if ((useQuarters && t < timeUnitSize.quarter) ||\n                            (!useQuarters && t < timeUnitSize.year)) {\n                            if (span < timeUnitSize.year) {\n                                fmt = \"%b\";\n                            } else {\n                                fmt = \"%b %Y\";\n                            }\n                        } else if (useQuarters && t < timeUnitSize.year) {\n                            if (span < timeUnitSize.year) {\n                                fmt = \"Q%q\";\n                            } else {\n                                fmt = \"Q%q %Y\";\n                            }\n                        } else {\n                            fmt = \"%Y\";\n                        }\n\n                        var rt = formatDate(d, fmt, opts.monthNames, opts.dayNames);\n\n                        return rt;\n                    };\n                }\n            });\n        });\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'time',\n        version: '1.0'\n    });\n\n    // Time-axis support used to be in Flot core, which exposed the\n    // formatDate function on the plot object.  Various plugins depend\n    // on the function, so we need to re-expose it here.\n\n    $.plot.formatDate = formatDate;\n    $.plot.dateGenerator = dateGenerator;\n    $.plot.dateTickGenerator = dateTickGenerator;\n    $.plot.makeUtcWrapper = makeUtcWrapper;\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.touch.js",
    "content": "\n/* global jQuery */\n\n(function($) {\n    'use strict';\n\n    var options = {\n        propagateSupportedGesture: false\n    };\n\n    function init(plot) {\n        plot.hooks.processOptions.push(initTouchNavigation);\n    }\n\n    function initTouchNavigation(plot, options) {\n        var gestureState = {\n                twoTouches: false,\n                currentTapStart: { x: 0, y: 0 },\n                currentTapEnd: { x: 0, y: 0 },\n                prevTap: { x: 0, y: 0 },\n                currentTap: { x: 0, y: 0 },\n                interceptedLongTap: false,\n                isUnsupportedGesture: false,\n                prevTapTime: null,\n                tapStartTime: null,\n                longTapTriggerId: null\n            },\n            maxDistanceBetweenTaps = 20,\n            maxIntervalBetweenTaps = 500,\n            maxLongTapDistance = 20,\n            minLongTapDuration = 1500,\n            pressedTapDuration = 125,\n            mainEventHolder;\n\n        function interpretGestures(e) {\n            var o = plot.getOptions();\n\n            if (!o.pan.active && !o.zoom.active) {\n                return;\n            }\n\n            updateOnMultipleTouches(e);\n            mainEventHolder.dispatchEvent(new CustomEvent('touchevent', { detail: e }));\n\n            if (isPinchEvent(e)) {\n                executeAction(e, 'pinch');\n            } else {\n                executeAction(e, 'pan');\n                if (!wasPinchEvent(e)) {\n                    if (isDoubleTap(e)) {\n                        executeAction(e, 'doubleTap');\n                    }\n                    executeAction(e, 'tap');\n                    executeAction(e, 'longTap');\n                }\n            }\n        }\n\n        function executeAction(e, gesture) {\n            switch (gesture) {\n                case 'pan':\n                    pan[e.type](e);\n                    break;\n                case 'pinch':\n                    pinch[e.type](e);\n                    break;\n                case 'doubleTap':\n                    doubleTap.onDoubleTap(e);\n                    break;\n                case 'longTap':\n                    longTap[e.type](e);\n                    break;\n                case 'tap':\n                    tap[e.type](e);\n                    break;\n            }\n        }\n\n        function bindEvents(plot, eventHolder) {\n            mainEventHolder = eventHolder[0];\n            eventHolder[0].addEventListener('touchstart', interpretGestures, false);\n            eventHolder[0].addEventListener('touchmove', interpretGestures, false);\n            eventHolder[0].addEventListener('touchend', interpretGestures, false);\n        }\n\n        function shutdown(plot, eventHolder) {\n            eventHolder[0].removeEventListener('touchstart', interpretGestures);\n            eventHolder[0].removeEventListener('touchmove', interpretGestures);\n            eventHolder[0].removeEventListener('touchend', interpretGestures);\n            if (gestureState.longTapTriggerId) {\n                clearTimeout(gestureState.longTapTriggerId);\n                gestureState.longTapTriggerId = null;\n            }\n        }\n\n        var pan = {\n            touchstart: function(e) {\n                updatePrevForDoubleTap();\n                updateCurrentForDoubleTap(e);\n                updateStateForLongTapStart(e);\n\n                mainEventHolder.dispatchEvent(new CustomEvent('panstart', { detail: e }));\n            },\n\n            touchmove: function(e) {\n                preventEventBehaviors(e);\n\n                updateCurrentForDoubleTap(e);\n                updateStateForLongTapEnd(e);\n\n                if (!gestureState.isUnsupportedGesture) {\n                    mainEventHolder.dispatchEvent(new CustomEvent('pandrag', { detail: e }));\n                }\n            },\n\n            touchend: function(e) {\n                preventEventBehaviors(e);\n\n                if (wasPinchEvent(e)) {\n                    mainEventHolder.dispatchEvent(new CustomEvent('pinchend', { detail: e }));\n                    mainEventHolder.dispatchEvent(new CustomEvent('panstart', { detail: e }));\n                } else if (noTouchActive(e)) {\n                    mainEventHolder.dispatchEvent(new CustomEvent('panend', { detail: e }));\n                }\n            }\n        };\n\n        var pinch = {\n            touchstart: function(e) {\n                mainEventHolder.dispatchEvent(new CustomEvent('pinchstart', { detail: e }));\n            },\n\n            touchmove: function(e) {\n                preventEventBehaviors(e);\n                gestureState.twoTouches = isPinchEvent(e);\n                if (!gestureState.isUnsupportedGesture) {\n                    mainEventHolder.dispatchEvent(new CustomEvent('pinchdrag', { detail: e }));\n                }\n            },\n\n            touchend: function(e) {\n                preventEventBehaviors(e);\n            }\n        };\n\n        var doubleTap = {\n            onDoubleTap: function(e) {\n                preventEventBehaviors(e);\n                mainEventHolder.dispatchEvent(new CustomEvent('doubletap', { detail: e }));\n            }\n        };\n\n        var longTap = {\n            touchstart: function(e) {\n                longTap.waitForLongTap(e);\n            },\n\n            touchmove: function(e) {\n            },\n\n            touchend: function(e) {\n                if (gestureState.longTapTriggerId) {\n                    clearTimeout(gestureState.longTapTriggerId);\n                    gestureState.longTapTriggerId = null;\n                }\n            },\n\n            isLongTap: function(e) {\n                var currentTime = new Date().getTime(),\n                    tapDuration = currentTime - gestureState.tapStartTime;\n                if (tapDuration >= minLongTapDuration && !gestureState.interceptedLongTap) {\n                    if (distance(gestureState.currentTapStart.x, gestureState.currentTapStart.y, gestureState.currentTapEnd.x, gestureState.currentTapEnd.y) < maxLongTapDistance) {\n                        gestureState.interceptedLongTap = true;\n                        return true;\n                    }\n                }\n                return false;\n            },\n\n            waitForLongTap: function(e) {\n                var longTapTrigger = function() {\n                    if (longTap.isLongTap(e)) {\n                        mainEventHolder.dispatchEvent(new CustomEvent('longtap', { detail: e }));\n                    }\n                    gestureState.longTapTriggerId = null;\n                };\n                if (!gestureState.longTapTriggerId) {\n                    gestureState.longTapTriggerId = setTimeout(longTapTrigger, minLongTapDuration);\n                }\n            }\n        };\n\n        var tap = {\n            touchstart: function(e) {\n                gestureState.tapStartTime = new Date().getTime();\n            },\n\n            touchmove: function(e) {\n            },\n\n            touchend: function(e) {\n                if (tap.isTap(e)) {\n                    mainEventHolder.dispatchEvent(new CustomEvent('tap', { detail: e }));\n                    preventEventBehaviors(e);\n                }\n            },\n\n            isTap: function(e) {\n                var currentTime = new Date().getTime(),\n                    tapDuration = currentTime - gestureState.tapStartTime;\n                if (tapDuration <= pressedTapDuration) {\n                    if (distance(gestureState.currentTapStart.x, gestureState.currentTapStart.y, gestureState.currentTapEnd.x, gestureState.currentTapEnd.y) < maxLongTapDistance) {\n                        return true;\n                    }\n                }\n                return false;\n            }\n        };\n\n        if (options.pan.enableTouch === true || options.zoom.enableTouch) {\n            plot.hooks.bindEvents.push(bindEvents);\n            plot.hooks.shutdown.push(shutdown);\n        };\n\n        function updatePrevForDoubleTap() {\n            gestureState.prevTap = {\n                x: gestureState.currentTap.x,\n                y: gestureState.currentTap.y\n            };\n        };\n\n        function updateCurrentForDoubleTap(e) {\n            gestureState.currentTap = {\n                x: e.touches[0].pageX,\n                y: e.touches[0].pageY\n            };\n        }\n\n        function updateStateForLongTapStart(e) {\n            gestureState.tapStartTime = new Date().getTime();\n            gestureState.interceptedLongTap = false;\n            gestureState.currentTapStart = {\n                x: e.touches[0].pageX,\n                y: e.touches[0].pageY\n            };\n            gestureState.currentTapEnd = {\n                x: e.touches[0].pageX,\n                y: e.touches[0].pageY\n            };\n        };\n\n        function updateStateForLongTapEnd(e) {\n            gestureState.currentTapEnd = {\n                x: e.touches[0].pageX,\n                y: e.touches[0].pageY\n            };\n        };\n\n        function isDoubleTap(e) {\n            var currentTime = new Date().getTime(),\n                intervalBetweenTaps = currentTime - gestureState.prevTapTime;\n\n            if (intervalBetweenTaps >= 0 && intervalBetweenTaps < maxIntervalBetweenTaps) {\n                if (distance(gestureState.prevTap.x, gestureState.prevTap.y, gestureState.currentTap.x, gestureState.currentTap.y) < maxDistanceBetweenTaps) {\n                    e.firstTouch = gestureState.prevTap;\n                    e.secondTouch = gestureState.currentTap;\n                    return true;\n                }\n            }\n            gestureState.prevTapTime = currentTime;\n            return false;\n        }\n\n        function preventEventBehaviors(e) {\n            if (!gestureState.isUnsupportedGesture) {\n                e.preventDefault();\n                if (!plot.getOptions().propagateSupportedGesture) {\n                    e.stopPropagation();\n                }\n            }\n        }\n\n        function distance(x1, y1, x2, y2) {\n            return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n        }\n\n        function noTouchActive(e) {\n            return (e.touches && e.touches.length === 0);\n        }\n\n        function wasPinchEvent(e) {\n            return (gestureState.twoTouches && e.touches.length === 1);\n        }\n\n        function updateOnMultipleTouches(e) {\n            if (e.touches.length >= 3) {\n                gestureState.isUnsupportedGesture = true;\n            } else {\n                gestureState.isUnsupportedGesture = false;\n            }\n        }\n\n        function isPinchEvent(e) {\n            if (e.touches && e.touches.length >= 2) {\n                if (e.touches[0].target === plot.getEventHolder() &&\n                    e.touches[1].target === plot.getEventHolder()) {\n                    return true;\n                }\n            }\n            return false;\n        }\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'navigateTouch',\n        version: '0.3'\n    });\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.touchNavigate.js",
    "content": "/* global jQuery */\n\n(function($) {\n    'use strict';\n\n    var options = {\n        zoom: {\n            enableTouch: false\n        },\n        pan: {\n            enableTouch: false,\n            touchMode: 'manual'\n        },\n        recenter: {\n            enableTouch: true\n        }\n    };\n\n    var ZOOM_DISTANCE_MARGIN = $.plot.uiConstants.ZOOM_DISTANCE_MARGIN;\n\n    function init(plot) {\n        plot.hooks.processOptions.push(initTouchNavigation);\n    }\n\n    function initTouchNavigation(plot, options) {\n        var gestureState = {\n                zoomEnable: false,\n                prevDistance: null,\n                prevTapTime: 0,\n                prevPanPosition: { x: 0, y: 0 },\n                prevTapPosition: { x: 0, y: 0 }\n            },\n            navigationState = {\n                prevTouchedAxis: 'none',\n                currentTouchedAxis: 'none',\n                touchedAxis: null,\n                navigationConstraint: 'unconstrained',\n                initialState: null\n            },\n            useManualPan = options.pan.interactive && options.pan.touchMode === 'manual',\n            smartPanLock = options.pan.touchMode === 'smartLock',\n            useSmartPan = options.pan.interactive && (smartPanLock || options.pan.touchMode === 'smart'),\n            pan, pinch, doubleTap;\n\n        function bindEvents(plot, eventHolder) {\n            var o = plot.getOptions();\n\n            if (o.zoom.interactive && o.zoom.enableTouch) {\n                eventHolder[0].addEventListener('pinchstart', pinch.start, false);\n                eventHolder[0].addEventListener('pinchdrag', pinch.drag, false);\n                eventHolder[0].addEventListener('pinchend', pinch.end, false);\n            }\n\n            if (o.pan.interactive && o.pan.enableTouch) {\n                eventHolder[0].addEventListener('panstart', pan.start, false);\n                eventHolder[0].addEventListener('pandrag', pan.drag, false);\n                eventHolder[0].addEventListener('panend', pan.end, false);\n            }\n\n            if ((o.recenter.interactive && o.recenter.enableTouch)) {\n                eventHolder[0].addEventListener('doubletap', doubleTap.recenterPlot, false);\n            }\n        }\n\n        function shutdown(plot, eventHolder) {\n            eventHolder[0].removeEventListener('panstart', pan.start);\n            eventHolder[0].removeEventListener('pandrag', pan.drag);\n            eventHolder[0].removeEventListener('panend', pan.end);\n            eventHolder[0].removeEventListener('pinchstart', pinch.start);\n            eventHolder[0].removeEventListener('pinchdrag', pinch.drag);\n            eventHolder[0].removeEventListener('pinchend', pinch.end);\n            eventHolder[0].removeEventListener('doubletap', doubleTap.recenterPlot);\n        }\n\n        pan = {\n            start: function(e) {\n                presetNavigationState(e, 'pan', gestureState);\n                updateData(e, 'pan', gestureState, navigationState);\n\n                if (useSmartPan) {\n                    var point = getPoint(e, 'pan');\n                    navigationState.initialState = plot.navigationState(point.x, point.y);\n                }\n            },\n\n            drag: function(e) {\n                presetNavigationState(e, 'pan', gestureState);\n\n                if (useSmartPan) {\n                    var point = getPoint(e, 'pan');\n                    plot.smartPan({\n                        x: navigationState.initialState.startPageX - point.x,\n                        y: navigationState.initialState.startPageY - point.y\n                    }, navigationState.initialState, navigationState.touchedAxis, false, smartPanLock);\n                } else if (useManualPan) {\n                    plot.pan({\n                        left: -delta(e, 'pan', gestureState).x,\n                        top: -delta(e, 'pan', gestureState).y,\n                        axes: navigationState.touchedAxis\n                    });\n                    updatePrevPanPosition(e, 'pan', gestureState, navigationState);\n                }\n            },\n\n            end: function(e) {\n                presetNavigationState(e, 'pan', gestureState);\n\n                if (useSmartPan) {\n                    plot.smartPan.end();\n                }\n\n                if (wasPinchEvent(e, gestureState)) {\n                    updateprevPanPosition(e, 'pan', gestureState, navigationState);\n                }\n            }\n        };\n\n        var pinchDragTimeout;\n        pinch = {\n            start: function(e) {\n                if (pinchDragTimeout) {\n                    clearTimeout(pinchDragTimeout);\n                    pinchDragTimeout = null;\n                }\n                presetNavigationState(e, 'pinch', gestureState);\n                setPrevDistance(e, gestureState);\n                updateData(e, 'pinch', gestureState, navigationState);\n            },\n\n            drag: function(e) {\n                if (pinchDragTimeout) {\n                    return;\n                }\n                pinchDragTimeout = setTimeout(function() {\n                    presetNavigationState(e, 'pinch', gestureState);\n                    plot.pan({\n                        left: -delta(e, 'pinch', gestureState).x,\n                        top: -delta(e, 'pinch', gestureState).y,\n                        axes: navigationState.touchedAxis\n                    });\n                    updatePrevPanPosition(e, 'pinch', gestureState, navigationState);\n\n                    var dist = pinchDistance(e);\n\n                    if (gestureState.zoomEnable || Math.abs(dist - gestureState.prevDistance) > ZOOM_DISTANCE_MARGIN) {\n                        zoomPlot(plot, e, gestureState, navigationState);\n\n                        //activate zoom mode\n                        gestureState.zoomEnable = true;\n                    }\n                    pinchDragTimeout = null;\n                }, 1000 / 60);\n            },\n\n            end: function(e) {\n                if (pinchDragTimeout) {\n                    clearTimeout(pinchDragTimeout);\n                    pinchDragTimeout = null;\n                }\n                presetNavigationState(e, 'pinch', gestureState);\n                gestureState.prevDistance = null;\n            }\n        };\n\n        doubleTap = {\n            recenterPlot: function(e) {\n                if (e && e.detail && e.detail.type === 'touchstart') {\n                    // only do not recenter for touch start;\n                    recenterPlotOnDoubleTap(plot, e, gestureState, navigationState);\n                }\n            }\n        };\n\n        if (options.pan.enableTouch === true || options.zoom.enableTouch === true) {\n            plot.hooks.bindEvents.push(bindEvents);\n            plot.hooks.shutdown.push(shutdown);\n        }\n\n        function presetNavigationState(e, gesture, gestureState) {\n            navigationState.touchedAxis = getAxis(plot, e, gesture, navigationState);\n            if (noAxisTouched(navigationState)) {\n                navigationState.navigationConstraint = 'unconstrained';\n            } else {\n                navigationState.navigationConstraint = 'axisConstrained';\n            }\n        }\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'navigateTouch',\n        version: '0.3'\n    });\n\n    function recenterPlotOnDoubleTap(plot, e, gestureState, navigationState) {\n        checkAxesForDoubleTap(plot, e, navigationState);\n        if ((navigationState.currentTouchedAxis === 'x' && navigationState.prevTouchedAxis === 'x') ||\n            (navigationState.currentTouchedAxis === 'y' && navigationState.prevTouchedAxis === 'y') ||\n            (navigationState.currentTouchedAxis === 'none' && navigationState.prevTouchedAxis === 'none')) {\n            var event;\n\n            plot.recenter({ axes: navigationState.touchedAxis });\n\n            if (navigationState.touchedAxis) {\n                event = new $.Event('re-center', { detail: { axisTouched: navigationState.touchedAxis } });\n            } else {\n                event = new $.Event('re-center', { detail: e });\n            }\n            plot.getPlaceholder().trigger(event);\n        }\n    }\n\n    function checkAxesForDoubleTap(plot, e, navigationState) {\n        var axis = plot.getTouchedAxis(e.detail.firstTouch.x, e.detail.firstTouch.y);\n        if (axis[0] !== undefined) {\n            navigationState.prevTouchedAxis = axis[0].direction;\n        }\n\n        axis = plot.getTouchedAxis(e.detail.secondTouch.x, e.detail.secondTouch.y);\n        if (axis[0] !== undefined) {\n            navigationState.touchedAxis = axis;\n            navigationState.currentTouchedAxis = axis[0].direction;\n        }\n\n        if (noAxisTouched(navigationState)) {\n            navigationState.touchedAxis = null;\n            navigationState.prevTouchedAxis = 'none';\n            navigationState.currentTouchedAxis = 'none';\n        }\n    }\n\n    function zoomPlot(plot, e, gestureState, navigationState) {\n        var offset = plot.offset(),\n            center = {\n                left: 0,\n                top: 0\n            },\n            zoomAmount = pinchDistance(e) / gestureState.prevDistance,\n            dist = pinchDistance(e);\n\n        center.left = getPoint(e, 'pinch').x - offset.left;\n        center.top = getPoint(e, 'pinch').y - offset.top;\n\n        // send the computed touched axis to the zoom function so that it only zooms on that one\n        plot.zoom({\n            center: center,\n            amount: zoomAmount,\n            axes: navigationState.touchedAxis\n        });\n        gestureState.prevDistance = dist;\n    }\n\n    function wasPinchEvent(e, gestureState) {\n        return (gestureState.zoomEnable && e.detail.touches.length === 1);\n    }\n\n    function getAxis(plot, e, gesture, navigationState) {\n        if (e.type === 'pinchstart') {\n            var axisTouch1 = plot.getTouchedAxis(e.detail.touches[0].pageX, e.detail.touches[0].pageY);\n            var axisTouch2 = plot.getTouchedAxis(e.detail.touches[1].pageX, e.detail.touches[1].pageY);\n\n            if (axisTouch1.length === axisTouch2.length && axisTouch1.toString() === axisTouch2.toString()) {\n                return axisTouch1;\n            }\n        } else if (e.type === 'panstart') {\n            return plot.getTouchedAxis(e.detail.touches[0].pageX, e.detail.touches[0].pageY);\n        } else if (e.type === 'pinchend') {\n            //update axis since instead on pinch, a pan event is made\n            return plot.getTouchedAxis(e.detail.touches[0].pageX, e.detail.touches[0].pageY);\n        } else {\n            return navigationState.touchedAxis;\n        }\n    }\n\n    function noAxisTouched(navigationState) {\n        return (!navigationState.touchedAxis || navigationState.touchedAxis.length === 0);\n    }\n\n    function setPrevDistance(e, gestureState) {\n        gestureState.prevDistance = pinchDistance(e);\n    }\n\n    function updateData(e, gesture, gestureState, navigationState) {\n        var axisDir,\n            point = getPoint(e, gesture);\n\n        switch (navigationState.navigationConstraint) {\n            case 'unconstrained':\n                navigationState.touchedAxis = null;\n                gestureState.prevTapPosition = {\n                    x: gestureState.prevPanPosition.x,\n                    y: gestureState.prevPanPosition.y\n                };\n                gestureState.prevPanPosition = {\n                    x: point.x,\n                    y: point.y\n                };\n                break;\n            case 'axisConstrained':\n                axisDir = navigationState.touchedAxis[0].direction;\n                navigationState.currentTouchedAxis = axisDir;\n                gestureState.prevTapPosition[axisDir] = gestureState.prevPanPosition[axisDir];\n                gestureState.prevPanPosition[axisDir] = point[axisDir];\n                break;\n            default:\n                break;\n        }\n    }\n\n    function distance(x1, y1, x2, y2) {\n        return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n    }\n\n    function pinchDistance(e) {\n        var t1 = e.detail.touches[0],\n            t2 = e.detail.touches[1];\n        return distance(t1.pageX, t1.pageY, t2.pageX, t2.pageY);\n    }\n\n    function updatePrevPanPosition(e, gesture, gestureState, navigationState) {\n        var point = getPoint(e, gesture);\n\n        switch (navigationState.navigationConstraint) {\n            case 'unconstrained':\n                gestureState.prevPanPosition.x = point.x;\n                gestureState.prevPanPosition.y = point.y;\n                break;\n            case 'axisConstrained':\n                gestureState.prevPanPosition[navigationState.currentTouchedAxis] =\n                point[navigationState.currentTouchedAxis];\n                break;\n            default:\n                break;\n        }\n    }\n\n    function delta(e, gesture, gestureState) {\n        var point = getPoint(e, gesture);\n\n        return {\n            x: point.x - gestureState.prevPanPosition.x,\n            y: point.y - gestureState.prevPanPosition.y\n        }\n    }\n\n    function getPoint(e, gesture) {\n        if (gesture === 'pinch') {\n            return {\n                x: (e.detail.touches[0].pageX + e.detail.touches[1].pageX) / 2,\n                y: (e.detail.touches[0].pageY + e.detail.touches[1].pageY) / 2\n            }\n        } else {\n            return {\n                x: e.detail.touches[0].pageX,\n                y: e.detail.touches[0].pageY\n            }\n        }\n    }\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/flot/plugins/jquery.flot.uiConstants.js",
    "content": "(function ($) {\n    'use strict';\n    $.plot.uiConstants = {\n        SNAPPING_CONSTANT: 20,\n        PANHINT_LENGTH_CONSTANT: 10,\n        MINOR_TICKS_COUNT_CONSTANT: 4,\n        TICK_LENGTH_CONSTANT: 10,\n        ZOOM_DISTANCE_MARGIN: 25\n    };\n})(jQuery);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/all.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/brands.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/fontawesome.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/regular.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/solid.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/svg-with-js.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nsvg:not(:root).svg-inline--fa {\n  overflow: visible; }\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -.125em; }\n  .svg-inline--fa.fa-lg {\n    vertical-align: -.225em; }\n  .svg-inline--fa.fa-w-1 {\n    width: 0.0625em; }\n  .svg-inline--fa.fa-w-2 {\n    width: 0.125em; }\n  .svg-inline--fa.fa-w-3 {\n    width: 0.1875em; }\n  .svg-inline--fa.fa-w-4 {\n    width: 0.25em; }\n  .svg-inline--fa.fa-w-5 {\n    width: 0.3125em; }\n  .svg-inline--fa.fa-w-6 {\n    width: 0.375em; }\n  .svg-inline--fa.fa-w-7 {\n    width: 0.4375em; }\n  .svg-inline--fa.fa-w-8 {\n    width: 0.5em; }\n  .svg-inline--fa.fa-w-9 {\n    width: 0.5625em; }\n  .svg-inline--fa.fa-w-10 {\n    width: 0.625em; }\n  .svg-inline--fa.fa-w-11 {\n    width: 0.6875em; }\n  .svg-inline--fa.fa-w-12 {\n    width: 0.75em; }\n  .svg-inline--fa.fa-w-13 {\n    width: 0.8125em; }\n  .svg-inline--fa.fa-w-14 {\n    width: 0.875em; }\n  .svg-inline--fa.fa-w-15 {\n    width: 0.9375em; }\n  .svg-inline--fa.fa-w-16 {\n    width: 1em; }\n  .svg-inline--fa.fa-w-17 {\n    width: 1.0625em; }\n  .svg-inline--fa.fa-w-18 {\n    width: 1.125em; }\n  .svg-inline--fa.fa-w-19 {\n    width: 1.1875em; }\n  .svg-inline--fa.fa-w-20 {\n    width: 1.25em; }\n  .svg-inline--fa.fa-pull-left {\n    margin-right: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-pull-right {\n    margin-left: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-border {\n    height: 1.5em; }\n  .svg-inline--fa.fa-li {\n    width: 2em; }\n  .svg-inline--fa.fa-fw {\n    width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -.125em;\n  width: 1em; }\n  .fa-layers svg.svg-inline--fa {\n    -webkit-transform-origin: center center;\n            transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n  display: inline-block;\n  position: absolute;\n  text-align: center; }\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center; }\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  line-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: .25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left; }\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-top-left {\n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em; }\n\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em; }\n\n.fa-inverse {\n  color: #fff; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black; }\n\n.fad.fa-inverse {\n  color: #fff; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fontawesome-free/css/v4-shims.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa.fa-glass:before {\n  content: \"\\f000\"; }\n\n.fa.fa-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-o:before {\n  content: \"\\f005\"; }\n\n.fa.fa-remove:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-close:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-gear:before {\n  content: \"\\f013\"; }\n\n.fa.fa-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-trash-o:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-o:before {\n  content: \"\\f15b\"; }\n\n.fa.fa-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-clock-o:before {\n  content: \"\\f017\"; }\n\n.fa.fa-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-down:before {\n  content: \"\\f358\"; }\n\n.fa.fa-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-up:before {\n  content: \"\\f35b\"; }\n\n.fa.fa-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-play-circle-o:before {\n  content: \"\\f144\"; }\n\n.fa.fa-repeat:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-rotate-right:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-refresh:before {\n  content: \"\\f021\"; }\n\n.fa.fa-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dedent:before {\n  content: \"\\f03b\"; }\n\n.fa.fa-video-camera:before {\n  content: \"\\f03d\"; }\n\n.fa.fa-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-picture-o:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-photo:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-pencil:before {\n  content: \"\\f303\"; }\n\n.fa.fa-map-marker:before {\n  content: \"\\f3c5\"; }\n\n.fa.fa-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pencil-square-o:before {\n  content: \"\\f044\"; }\n\n.fa.fa-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-share-square-o:before {\n  content: \"\\f14d\"; }\n\n.fa.fa-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-square-o:before {\n  content: \"\\f14a\"; }\n\n.fa.fa-arrows:before {\n  content: \"\\f0b2\"; }\n\n.fa.fa-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-circle-o:before {\n  content: \"\\f057\"; }\n\n.fa.fa-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-circle-o:before {\n  content: \"\\f058\"; }\n\n.fa.fa-mail-forward:before {\n  content: \"\\f064\"; }\n\n.fa.fa-expand:before {\n  content: \"\\f424\"; }\n\n.fa.fa-compress:before {\n  content: \"\\f422\"; }\n\n.fa.fa-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-warning:before {\n  content: \"\\f071\"; }\n\n.fa.fa-calendar:before {\n  content: \"\\f073\"; }\n\n.fa.fa-arrows-v:before {\n  content: \"\\f338\"; }\n\n.fa.fa-arrows-h:before {\n  content: \"\\f337\"; }\n\n.fa.fa-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart:before {\n  content: \"\\f080\"; }\n\n.fa.fa-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart-o:before {\n  content: \"\\f080\"; }\n\n.fa.fa-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gears:before {\n  content: \"\\f085\"; }\n\n.fa.fa-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-up:before {\n  content: \"\\f164\"; }\n\n.fa.fa-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-down:before {\n  content: \"\\f165\"; }\n\n.fa.fa-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-heart-o:before {\n  content: \"\\f004\"; }\n\n.fa.fa-sign-out:before {\n  content: \"\\f2f5\"; }\n\n.fa.fa-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin-square:before {\n  content: \"\\f08c\"; }\n\n.fa.fa-thumb-tack:before {\n  content: \"\\f08d\"; }\n\n.fa.fa-external-link:before {\n  content: \"\\f35d\"; }\n\n.fa.fa-sign-in:before {\n  content: \"\\f2f6\"; }\n\n.fa.fa-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lemon-o:before {\n  content: \"\\f094\"; }\n\n.fa.fa-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-square-o:before {\n  content: \"\\f0c8\"; }\n\n.fa.fa-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bookmark-o:before {\n  content: \"\\f02e\"; }\n\n.fa.fa-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-feed:before {\n  content: \"\\f09e\"; }\n\n.fa.fa-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hdd-o:before {\n  content: \"\\f0a0\"; }\n\n.fa.fa-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-right:before {\n  content: \"\\f0a4\"; }\n\n.fa.fa-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-left:before {\n  content: \"\\f0a5\"; }\n\n.fa.fa-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-up:before {\n  content: \"\\f0a6\"; }\n\n.fa.fa-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-down:before {\n  content: \"\\f0a7\"; }\n\n.fa.fa-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa.fa-group:before {\n  content: \"\\f0c0\"; }\n\n.fa.fa-chain:before {\n  content: \"\\f0c1\"; }\n\n.fa.fa-scissors:before {\n  content: \"\\f0c4\"; }\n\n.fa.fa-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-files-o:before {\n  content: \"\\f0c5\"; }\n\n.fa.fa-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-floppy-o:before {\n  content: \"\\f0c7\"; }\n\n.fa.fa-navicon:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-reorder:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus:before {\n  content: \"\\f0d5\"; }\n\n.fa.fa-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-money:before {\n  content: \"\\f3d1\"; }\n\n.fa.fa-unsorted:before {\n  content: \"\\f0dc\"; }\n\n.fa.fa-sort-desc:before {\n  content: \"\\f0dd\"; }\n\n.fa.fa-sort-asc:before {\n  content: \"\\f0de\"; }\n\n.fa.fa-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin:before {\n  content: \"\\f0e1\"; }\n\n.fa.fa-rotate-left:before {\n  content: \"\\f0e2\"; }\n\n.fa.fa-legal:before {\n  content: \"\\f0e3\"; }\n\n.fa.fa-tachometer:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-dashboard:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comment-o:before {\n  content: \"\\f075\"; }\n\n.fa.fa-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comments-o:before {\n  content: \"\\f086\"; }\n\n.fa.fa-flash:before {\n  content: \"\\f0e7\"; }\n\n.fa.fa-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste:before {\n  content: \"\\f328\"; }\n\n.fa.fa-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lightbulb-o:before {\n  content: \"\\f0eb\"; }\n\n.fa.fa-exchange:before {\n  content: \"\\f362\"; }\n\n.fa.fa-cloud-download:before {\n  content: \"\\f381\"; }\n\n.fa.fa-cloud-upload:before {\n  content: \"\\f382\"; }\n\n.fa.fa-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-o:before {\n  content: \"\\f0f3\"; }\n\n.fa.fa-cutlery:before {\n  content: \"\\f2e7\"; }\n\n.fa.fa-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-text-o:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-building-o:before {\n  content: \"\\f1ad\"; }\n\n.fa.fa-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hospital-o:before {\n  content: \"\\f0f8\"; }\n\n.fa.fa-tablet:before {\n  content: \"\\f3fa\"; }\n\n.fa.fa-mobile:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-mobile-phone:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-o:before {\n  content: \"\\f111\"; }\n\n.fa.fa-mail-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa.fa-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-o:before {\n  content: \"\\f07b\"; }\n\n.fa.fa-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-open-o:before {\n  content: \"\\f07c\"; }\n\n.fa.fa-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-smile-o:before {\n  content: \"\\f118\"; }\n\n.fa.fa-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-frown-o:before {\n  content: \"\\f119\"; }\n\n.fa.fa-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-meh-o:before {\n  content: \"\\f11a\"; }\n\n.fa.fa-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-keyboard-o:before {\n  content: \"\\f11c\"; }\n\n.fa.fa-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-flag-o:before {\n  content: \"\\f024\"; }\n\n.fa.fa-mail-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa.fa-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-o:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-empty:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-full:before {\n  content: \"\\f089\"; }\n\n.fa.fa-code-fork:before {\n  content: \"\\f126\"; }\n\n.fa.fa-chain-broken:before {\n  content: \"\\f127\"; }\n\n.fa.fa-shield:before {\n  content: \"\\f3ed\"; }\n\n.fa.fa-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-o:before {\n  content: \"\\f133\"; }\n\n.fa.fa-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ticket:before {\n  content: \"\\f3ff\"; }\n\n.fa.fa-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-minus-square-o:before {\n  content: \"\\f146\"; }\n\n.fa.fa-level-up:before {\n  content: \"\\f3bf\"; }\n\n.fa.fa-level-down:before {\n  content: \"\\f3be\"; }\n\n.fa.fa-pencil-square:before {\n  content: \"\\f14b\"; }\n\n.fa.fa-external-link-square:before {\n  content: \"\\f360\"; }\n\n.fa.fa-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-eur:before {\n  content: \"\\f153\"; }\n\n.fa.fa-euro:before {\n  content: \"\\f153\"; }\n\n.fa.fa-gbp:before {\n  content: \"\\f154\"; }\n\n.fa.fa-usd:before {\n  content: \"\\f155\"; }\n\n.fa.fa-dollar:before {\n  content: \"\\f155\"; }\n\n.fa.fa-inr:before {\n  content: \"\\f156\"; }\n\n.fa.fa-rupee:before {\n  content: \"\\f156\"; }\n\n.fa.fa-jpy:before {\n  content: \"\\f157\"; }\n\n.fa.fa-cny:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rmb:before {\n  content: \"\\f157\"; }\n\n.fa.fa-yen:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rub:before {\n  content: \"\\f158\"; }\n\n.fa.fa-ruble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-rouble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-krw:before {\n  content: \"\\f159\"; }\n\n.fa.fa-won:before {\n  content: \"\\f159\"; }\n\n.fa.fa-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin:before {\n  content: \"\\f15a\"; }\n\n.fa.fa-file-text:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-sort-alpha-asc:before {\n  content: \"\\f15d\"; }\n\n.fa.fa-sort-alpha-desc:before {\n  content: \"\\f881\"; }\n\n.fa.fa-sort-amount-asc:before {\n  content: \"\\f160\"; }\n\n.fa.fa-sort-amount-desc:before {\n  content: \"\\f884\"; }\n\n.fa.fa-sort-numeric-asc:before {\n  content: \"\\f162\"; }\n\n.fa.fa-sort-numeric-desc:before {\n  content: \"\\f886\"; }\n\n.fa.fa-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play:before {\n  content: \"\\f167\"; }\n\n.fa.fa-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square:before {\n  content: \"\\f171\"; }\n\n.fa.fa-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-long-arrow-down:before {\n  content: \"\\f309\"; }\n\n.fa.fa-long-arrow-up:before {\n  content: \"\\f30c\"; }\n\n.fa.fa-long-arrow-left:before {\n  content: \"\\f30a\"; }\n\n.fa.fa-long-arrow-right:before {\n  content: \"\\f30b\"; }\n\n.fa.fa-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip:before {\n  content: \"\\f184\"; }\n\n.fa.fa-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sun-o:before {\n  content: \"\\f185\"; }\n\n.fa.fa-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-moon-o:before {\n  content: \"\\f186\"; }\n\n.fa.fa-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right:before {\n  content: \"\\f35a\"; }\n\n.fa.fa-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-left:before {\n  content: \"\\f359\"; }\n\n.fa.fa-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dot-circle-o:before {\n  content: \"\\f192\"; }\n\n.fa.fa-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-try:before {\n  content: \"\\f195\"; }\n\n.fa.fa-turkish-lira:before {\n  content: \"\\f195\"; }\n\n.fa.fa-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-plus-square-o:before {\n  content: \"\\f0fe\"; }\n\n.fa.fa-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-institution:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-bank:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-mortar-board:before {\n  content: \"\\f19d\"; }\n\n.fa.fa-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa.fa-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-automobile:before {\n  content: \"\\f1b9\"; }\n\n.fa.fa-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-o:before {\n  content: \"\\f0e0\"; }\n\n.fa.fa-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o:before {\n  content: \"\\f1c1\"; }\n\n.fa.fa-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-word-o:before {\n  content: \"\\f1c2\"; }\n\n.fa.fa-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-excel-o:before {\n  content: \"\\f1c3\"; }\n\n.fa.fa-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\"; }\n\n.fa.fa-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-image-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-photo-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-picture-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-archive-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-zip-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-audio-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-sound-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-video-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-movie-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-code-o:before {\n  content: \"\\f1c9\"; }\n\n.fa.fa-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-buoy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-saver:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-support:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-circle-o-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa.fa-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-resistance:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge:before {\n  content: \"\\f1d1\"; }\n\n.fa.fa-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat:before {\n  content: \"\\f1d7\"; }\n\n.fa.fa-send:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paper-plane-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-send-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-thin:before {\n  content: \"\\f111\"; }\n\n.fa.fa-header:before {\n  content: \"\\f1dc\"; }\n\n.fa.fa-sliders:before {\n  content: \"\\f1de\"; }\n\n.fa.fa-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-futbol-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-soccer-ball-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o:before {\n  content: \"\\f1ea\"; }\n\n.fa.fa-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o:before {\n  content: \"\\f1f6\"; }\n\n.fa.fa-trash:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eyedropper:before {\n  content: \"\\f1fb\"; }\n\n.fa.fa-area-chart:before {\n  content: \"\\f1fe\"; }\n\n.fa.fa-pie-chart:before {\n  content: \"\\f200\"; }\n\n.fa.fa-line-chart:before {\n  content: \"\\f201\"; }\n\n.fa.fa-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-cc:before {\n  content: \"\\f20a\"; }\n\n.fa.fa-ils:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-shekel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-sheqel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-meanpath:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-diamond:before {\n  content: \"\\f3a5\"; }\n\n.fa.fa-intersex:before {\n  content: \"\\f224\"; }\n\n.fa.fa-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-official:before {\n  content: \"\\f09a\"; }\n\n.fa.fa-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hotel:before {\n  content: \"\\f236\"; }\n\n.fa.fa-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc:before {\n  content: \"\\f23b\"; }\n\n.fa.fa-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-battery-4:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery-3:before {\n  content: \"\\f241\"; }\n\n.fa.fa-battery-2:before {\n  content: \"\\f242\"; }\n\n.fa.fa-battery-1:before {\n  content: \"\\f243\"; }\n\n.fa.fa-battery-0:before {\n  content: \"\\f244\"; }\n\n.fa.fa-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o:before {\n  content: \"\\f249\"; }\n\n.fa.fa-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o:before {\n  content: \"\\f254\"; }\n\n.fa.fa-hourglass-1:before {\n  content: \"\\f251\"; }\n\n.fa.fa-hourglass-2:before {\n  content: \"\\f252\"; }\n\n.fa.fa-hourglass-3:before {\n  content: \"\\f253\"; }\n\n.fa.fa-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-rock-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-grab-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-paper-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-stop-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-scissors-o:before {\n  content: \"\\f257\"; }\n\n.fa.fa-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-lizard-o:before {\n  content: \"\\f258\"; }\n\n.fa.fa-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-spock-o:before {\n  content: \"\\f259\"; }\n\n.fa.fa-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-pointer-o:before {\n  content: \"\\f25a\"; }\n\n.fa.fa-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-peace-o:before {\n  content: \"\\f25b\"; }\n\n.fa.fa-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-television:before {\n  content: \"\\f26c\"; }\n\n.fa.fa-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o:before {\n  content: \"\\f271\"; }\n\n.fa.fa-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-minus-o:before {\n  content: \"\\f272\"; }\n\n.fa.fa-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-times-o:before {\n  content: \"\\f273\"; }\n\n.fa.fa-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-check-o:before {\n  content: \"\\f274\"; }\n\n.fa.fa-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-map-o:before {\n  content: \"\\f279\"; }\n\n.fa.fa-commenting:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-commenting-o:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo:before {\n  content: \"\\f27d\"; }\n\n.fa.fa-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card-alt:before {\n  content: \"\\f09d\"; }\n\n.fa.fa-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o:before {\n  content: \"\\f28b\"; }\n\n.fa.fa-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-stop-circle-o:before {\n  content: \"\\f28d\"; }\n\n.fa.fa-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt:before {\n  content: \"\\f368\"; }\n\n.fa.fa-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-question-circle-o:before {\n  content: \"\\f059\"; }\n\n.fa.fa-volume-control-phone:before {\n  content: \"\\f2a0\"; }\n\n.fa.fa-asl-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa.fa-deafness:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-hard-of-hearing:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-signing:before {\n  content: \"\\f2a7\"; }\n\n.fa.fa-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-circle:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-handshake-o:before {\n  content: \"\\f2b5\"; }\n\n.fa.fa-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-open-o:before {\n  content: \"\\f2b6\"; }\n\n.fa.fa-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-book-o:before {\n  content: \"\\f2b9\"; }\n\n.fa.fa-vcard:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-card-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-vcard-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-circle-o:before {\n  content: \"\\f2bd\"; }\n\n.fa.fa-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-o:before {\n  content: \"\\f007\"; }\n\n.fa.fa-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-id-card-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-thermometer-4:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer-3:before {\n  content: \"\\f2c8\"; }\n\n.fa.fa-thermometer-2:before {\n  content: \"\\f2c9\"; }\n\n.fa.fa-thermometer-1:before {\n  content: \"\\f2ca\"; }\n\n.fa.fa-thermometer-0:before {\n  content: \"\\f2cb\"; }\n\n.fa.fa-bathtub:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-s15:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle:before {\n  content: \"\\f410\"; }\n\n.fa.fa-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-close-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast:before {\n  content: \"\\f2da\"; }\n\n.fa.fa-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-snowflake-o:before {\n  content: \"\\f2dc\"; }\n\n.fa.fa-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cab:before {\n  content: \"\\f1ba\"; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/LICENSE.txt",
    "content": "MIT License\n\nCopyright (c) 2020 Adam Shaw\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/af.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var af = {\n    code: 'af',\n    week: {\n      dow: 1, // Maandag is die eerste dag van die week.\n      doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n    },\n    buttonText: {\n      prev: 'Vorige',\n      next: 'Volgende',\n      today: 'Vandag',\n      year: 'Jaar',\n      month: 'Maand',\n      week: 'Week',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    allDayText: 'Heeldag',\n    moreLinkText: 'Addisionele',\n    noEventsText: 'Daar is geen gebeurtenisse nie',\n  };\n\n  return af;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-dz.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arDz = {\n    code: 'ar-dz',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 4, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arDz;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-kw.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arKw = {\n    code: 'ar-kw',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arKw;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-ly.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arLy = {\n    code: 'ar-ly',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arLy;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-ma.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arMa = {\n    code: 'ar-ma',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arMa;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-sa.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arSa = {\n    code: 'ar-sa',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arSa;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar-tn.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var arTn = {\n    code: 'ar-tn',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return arTn;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ar.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ar = {\n    code: 'ar',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  return ar;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/az.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var az = {\n    code: 'az',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Əvvəl',\n      next: 'Sonra',\n      today: 'Bu Gün',\n      month: 'Ay',\n      week: 'Həftə',\n      day: 'Gün',\n      list: 'Gündəm',\n    },\n    weekText: 'Həftə',\n    allDayText: 'Bütün Gün',\n    moreLinkText: function(n) {\n      return '+ daha çox ' + n\n    },\n    noEventsText: 'Göstərmək üçün hadisə yoxdur',\n  };\n\n  return az;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/bg.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var bg = {\n    code: 'bg',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'назад',\n      next: 'напред',\n      today: 'днес',\n      month: 'Месец',\n      week: 'Седмица',\n      day: 'Ден',\n      list: 'График',\n    },\n    allDayText: 'Цял ден',\n    moreLinkText: function(n) {\n      return '+още ' + n\n    },\n    noEventsText: 'Няма събития за показване',\n  };\n\n  return bg;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/bs.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var bs = {\n    code: 'bs',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prošli',\n      next: 'Sljedeći',\n      today: 'Danas',\n      month: 'Mjesec',\n      week: 'Sedmica',\n      day: 'Dan',\n      list: 'Raspored',\n    },\n    weekText: 'Sed',\n    allDayText: 'Cijeli dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nema događaja za prikazivanje',\n  };\n\n  return bs;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ca.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ca = {\n    code: 'ca',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Següent',\n      today: 'Avui',\n      month: 'Mes',\n      week: 'Setmana',\n      day: 'Dia',\n      list: 'Agenda',\n    },\n    weekText: 'Set',\n    allDayText: 'Tot el dia',\n    moreLinkText: 'més',\n    noEventsText: 'No hi ha esdeveniments per mostrar',\n  };\n\n  return ca;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/cs.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var cs = {\n    code: 'cs',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Dříve',\n      next: 'Později',\n      today: 'Nyní',\n      month: 'Měsíc',\n      week: 'Týden',\n      day: 'Den',\n      list: 'Agenda',\n    },\n    weekText: 'Týd',\n    allDayText: 'Celý den',\n    moreLinkText: function(n) {\n      return '+další: ' + n\n    },\n    noEventsText: 'Žádné akce k zobrazení',\n  };\n\n  return cs;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/cy.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var cy = {\n    code: 'cy',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Blaenorol',\n      next: 'Nesaf',\n      today: 'Heddiw',\n      year: 'Blwyddyn',\n      month: 'Mis',\n      week: 'Wythnos',\n      day: 'Dydd',\n      list: 'Rhestr',\n    },\n    weekText: 'Wythnos',\n    allDayText: 'Trwy\\'r dydd',\n    moreLinkText: 'Mwy',\n    noEventsText: 'Dim digwyddiadau',\n  };\n\n  return cy;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/da.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var da = {\n    code: 'da',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Forrige',\n      next: 'Næste',\n      today: 'I dag',\n      month: 'Måned',\n      week: 'Uge',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Uge',\n    allDayText: 'Hele dagen',\n    moreLinkText: 'flere',\n    noEventsText: 'Ingen arrangementer at vise',\n  };\n\n  return da;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/de-at.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var deAt = {\n    code: 'de-at',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zurück',\n      next: 'Vor',\n      today: 'Heute',\n      year: 'Jahr',\n      month: 'Monat',\n      week: 'Woche',\n      day: 'Tag',\n      list: 'Terminübersicht',\n    },\n    weekText: 'KW',\n    allDayText: 'Ganztägig',\n    moreLinkText: function(n) {\n      return '+ weitere ' + n\n    },\n    noEventsText: 'Keine Ereignisse anzuzeigen',\n  };\n\n  return deAt;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/de.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var de = {\n    code: 'de',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zurück',\n      next: 'Vor',\n      today: 'Heute',\n      year: 'Jahr',\n      month: 'Monat',\n      week: 'Woche',\n      day: 'Tag',\n      list: 'Terminübersicht',\n    },\n    weekText: 'KW',\n    allDayText: 'Ganztägig',\n    moreLinkText: function(n) {\n      return '+ weitere ' + n\n    },\n    noEventsText: 'Keine Ereignisse anzuzeigen',\n  };\n\n  return de;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/el.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var el = {\n    code: 'el',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Προηγούμενος',\n      next: 'Επόμενος',\n      today: 'Σήμερα',\n      month: 'Μήνας',\n      week: 'Εβδομάδα',\n      day: 'Ημέρα',\n      list: 'Ατζέντα',\n    },\n    weekText: 'Εβδ',\n    allDayText: 'Ολοήμερο',\n    moreLinkText: 'περισσότερα',\n    noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση',\n  };\n\n  return el;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/en-au.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var enAu = {\n    code: 'en-au',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  return enAu;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/en-gb.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var enGb = {\n    code: 'en-gb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  return enGb;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/en-nz.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var enNz = {\n    code: 'en-nz',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  return enNz;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/eo.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var eo = {\n    code: 'eo',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Antaŭa',\n      next: 'Sekva',\n      today: 'Hodiaŭ',\n      month: 'Monato',\n      week: 'Semajno',\n      day: 'Tago',\n      list: 'Tagordo',\n    },\n    weekText: 'Sm',\n    allDayText: 'Tuta tago',\n    moreLinkText: 'pli',\n    noEventsText: 'Neniuj eventoj por montri',\n  };\n\n  return eo;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/es-us.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var esUs = {\n    code: 'es',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Sig',\n      today: 'Hoy',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo el día',\n    moreLinkText: 'más',\n    noEventsText: 'No hay eventos para mostrar',\n  };\n\n  return esUs;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/es.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var es = {\n    code: 'es',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Sig',\n      today: 'Hoy',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo el día',\n    moreLinkText: 'más',\n    noEventsText: 'No hay eventos para mostrar',\n  };\n\n  return es;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/et.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var et = {\n    code: 'et',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Eelnev',\n      next: 'Järgnev',\n      today: 'Täna',\n      month: 'Kuu',\n      week: 'Nädal',\n      day: 'Päev',\n      list: 'Päevakord',\n    },\n    weekText: 'näd',\n    allDayText: 'Kogu päev',\n    moreLinkText: function(n) {\n      return '+ veel ' + n\n    },\n    noEventsText: 'Kuvamiseks puuduvad sündmused',\n  };\n\n  return et;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/eu.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var eu = {\n    code: 'eu',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Aur',\n      next: 'Hur',\n      today: 'Gaur',\n      month: 'Hilabetea',\n      week: 'Astea',\n      day: 'Eguna',\n      list: 'Agenda',\n    },\n    weekText: 'As',\n    allDayText: 'Egun osoa',\n    moreLinkText: 'gehiago',\n    noEventsText: 'Ez dago ekitaldirik erakusteko',\n  };\n\n  return eu;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/fa.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var fa = {\n    code: 'fa',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'قبلی',\n      next: 'بعدی',\n      today: 'امروز',\n      month: 'ماه',\n      week: 'هفته',\n      day: 'روز',\n      list: 'برنامه',\n    },\n    weekText: 'هف',\n    allDayText: 'تمام روز',\n    moreLinkText: function(n) {\n      return 'بیش از ' + n\n    },\n    noEventsText: 'هیچ رویدادی به نمایش',\n  };\n\n  return fa;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/fi.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var fi = {\n    code: 'fi',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Edellinen',\n      next: 'Seuraava',\n      today: 'Tänään',\n      month: 'Kuukausi',\n      week: 'Viikko',\n      day: 'Päivä',\n      list: 'Tapahtumat',\n    },\n    weekText: 'Vk',\n    allDayText: 'Koko päivä',\n    moreLinkText: 'lisää',\n    noEventsText: 'Ei näytettäviä tapahtumia',\n  };\n\n  return fi;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/fr-ca.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var frCa = {\n    code: 'fr',\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: \"Aujourd'hui\",\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Mon planning',\n    },\n    weekText: 'Sem.',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  return frCa;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/fr-ch.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var frCh = {\n    code: 'fr-ch',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: 'Courant',\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Mon planning',\n    },\n    weekText: 'Sm',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  return frCh;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/fr.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var fr = {\n    code: 'fr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: \"Aujourd'hui\",\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Planning',\n    },\n    weekText: 'Sem.',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  return fr;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/gl.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var gl = {\n    code: 'gl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Seg',\n      today: 'Hoxe',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Axenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo o día',\n    moreLinkText: 'máis',\n    noEventsText: 'Non hai eventos para amosar',\n  };\n\n  return gl;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/he.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var he = {\n    code: 'he',\n    direction: 'rtl',\n    buttonText: {\n      prev: 'הקודם',\n      next: 'הבא',\n      today: 'היום',\n      month: 'חודש',\n      week: 'שבוע',\n      day: 'יום',\n      list: 'סדר יום',\n    },\n    allDayText: 'כל היום',\n    moreLinkText: 'אחר',\n    noEventsText: 'אין אירועים להצגה',\n    weekText: 'שבוע',\n  };\n\n  return he;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/hi.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var hi = {\n    code: 'hi',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'पिछला',\n      next: 'अगला',\n      today: 'आज',\n      month: 'महीना',\n      week: 'सप्ताह',\n      day: 'दिन',\n      list: 'कार्यसूची',\n    },\n    weekText: 'हफ्ता',\n    allDayText: 'सभी दिन',\n    moreLinkText: function(n) {\n      return '+अधिक ' + n\n    },\n    noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए',\n  };\n\n  return hi;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/hr.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var hr = {\n    code: 'hr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prijašnji',\n      next: 'Sljedeći',\n      today: 'Danas',\n      month: 'Mjesec',\n      week: 'Tjedan',\n      day: 'Dan',\n      list: 'Raspored',\n    },\n    weekText: 'Tje',\n    allDayText: 'Cijeli dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nema događaja za prikaz',\n  };\n\n  return hr;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/hu.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var hu = {\n    code: 'hu',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'vissza',\n      next: 'előre',\n      today: 'ma',\n      month: 'Hónap',\n      week: 'Hét',\n      day: 'Nap',\n      list: 'Napló',\n    },\n    weekText: 'Hét',\n    allDayText: 'Egész nap',\n    moreLinkText: 'további',\n    noEventsText: 'Nincs megjeleníthető esemény',\n  };\n\n  return hu;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/hy-am.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var hyAm = {\n    code: 'hy-am',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Նախորդ',\n      next: 'Հաջորդ',\n      today: 'Այսօր',\n      month: 'Ամիս',\n      week: 'Շաբաթ',\n      day: 'Օր',\n      list: 'Օրվա ցուցակ',\n    },\n    weekText: 'Շաբ',\n    allDayText: 'Ամբողջ օր',\n    moreLinkText: function(n) {\n      return '+ ևս ' + n\n    },\n    noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու',\n  };\n\n  return hyAm;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/id.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var id = {\n    code: 'id',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'mundur',\n      next: 'maju',\n      today: 'hari ini',\n      month: 'Bulan',\n      week: 'Minggu',\n      day: 'Hari',\n      list: 'Agenda',\n    },\n    weekText: 'Mg',\n    allDayText: 'Sehari penuh',\n    moreLinkText: 'lebih',\n    noEventsText: 'Tidak ada acara untuk ditampilkan',\n  };\n\n  return id;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/is.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var is = {\n    code: 'is',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Fyrri',\n      next: 'Næsti',\n      today: 'Í dag',\n      month: 'Mánuður',\n      week: 'Vika',\n      day: 'Dagur',\n      list: 'Dagskrá',\n    },\n    weekText: 'Vika',\n    allDayText: 'Allan daginn',\n    moreLinkText: 'meira',\n    noEventsText: 'Engir viðburðir til að sýna',\n  };\n\n  return is;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/it.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var it = {\n    code: 'it',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prec',\n      next: 'Succ',\n      today: 'Oggi',\n      month: 'Mese',\n      week: 'Settimana',\n      day: 'Giorno',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Tutto il giorno',\n    moreLinkText: function(n) {\n      return '+altri ' + n\n    },\n    noEventsText: 'Non ci sono eventi da visualizzare',\n  };\n\n  return it;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ja.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ja = {\n    code: 'ja',\n    buttonText: {\n      prev: '前',\n      next: '次',\n      today: '今日',\n      month: '月',\n      week: '週',\n      day: '日',\n      list: '予定リスト',\n    },\n    weekText: '週',\n    allDayText: '終日',\n    moreLinkText: function(n) {\n      return '他 ' + n + ' 件'\n    },\n    noEventsText: '表示する予定はありません',\n  };\n\n  return ja;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ka.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ka = {\n    code: 'ka',\n    week: {\n      dow: 1,\n      doy: 7,\n    },\n    buttonText: {\n      prev: 'წინა',\n      next: 'შემდეგი',\n      today: 'დღეს',\n      month: 'თვე',\n      week: 'კვირა',\n      day: 'დღე',\n      list: 'დღის წესრიგი',\n    },\n    weekText: 'კვ',\n    allDayText: 'მთელი დღე',\n    moreLinkText: function(n) {\n      return '+ კიდევ ' + n\n    },\n    noEventsText: 'ღონისძიებები არ არის',\n  };\n\n  return ka;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/kk.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var kk = {\n    code: 'kk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Алдыңғы',\n      next: 'Келесі',\n      today: 'Бүгін',\n      month: 'Ай',\n      week: 'Апта',\n      day: 'Күн',\n      list: 'Күн тәртібі',\n    },\n    weekText: 'Не',\n    allDayText: 'Күні бойы',\n    moreLinkText: function(n) {\n      return '+ тағы ' + n\n    },\n    noEventsText: 'Көрсету үшін оқиғалар жоқ',\n  };\n\n  return kk;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ko.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ko = {\n    code: 'ko',\n    buttonText: {\n      prev: '이전달',\n      next: '다음달',\n      today: '오늘',\n      month: '월',\n      week: '주',\n      day: '일',\n      list: '일정목록',\n    },\n    weekText: '주',\n    allDayText: '종일',\n    moreLinkText: '개',\n    noEventsText: '일정이 없습니다',\n  };\n\n  return ko;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/lb.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var lb = {\n    code: 'lb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zréck',\n      next: 'Weider',\n      today: 'Haut',\n      month: 'Mount',\n      week: 'Woch',\n      day: 'Dag',\n      list: 'Terminiwwersiicht',\n    },\n    weekText: 'W',\n    allDayText: 'Ganzen Dag',\n    moreLinkText: 'méi',\n    noEventsText: 'Nee Evenementer ze affichéieren',\n  };\n\n  return lb;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/lt.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var lt = {\n    code: 'lt',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Atgal',\n      next: 'Pirmyn',\n      today: 'Šiandien',\n      month: 'Mėnuo',\n      week: 'Savaitė',\n      day: 'Diena',\n      list: 'Darbotvarkė',\n    },\n    weekText: 'SAV',\n    allDayText: 'Visą dieną',\n    moreLinkText: 'daugiau',\n    noEventsText: 'Nėra įvykių rodyti',\n  };\n\n  return lt;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/lv.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var lv = {\n    code: 'lv',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Iepr.',\n      next: 'Nāk.',\n      today: 'Šodien',\n      month: 'Mēnesis',\n      week: 'Nedēļa',\n      day: 'Diena',\n      list: 'Dienas kārtība',\n    },\n    weekText: 'Ned.',\n    allDayText: 'Visu dienu',\n    moreLinkText: function(n) {\n      return '+vēl ' + n\n    },\n    noEventsText: 'Nav notikumu',\n  };\n\n  return lv;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/mk.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var mk = {\n    code: 'mk',\n    buttonText: {\n      prev: 'претходно',\n      next: 'следно',\n      today: 'Денес',\n      month: 'Месец',\n      week: 'Недела',\n      day: 'Ден',\n      list: 'График',\n    },\n    weekText: 'Сед',\n    allDayText: 'Цел ден',\n    moreLinkText: function(n) {\n      return '+повеќе ' + n\n    },\n    noEventsText: 'Нема настани за прикажување',\n  };\n\n  return mk;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ms.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ms = {\n    code: 'ms',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Sebelum',\n      next: 'Selepas',\n      today: 'hari ini',\n      month: 'Bulan',\n      week: 'Minggu',\n      day: 'Hari',\n      list: 'Agenda',\n    },\n    weekText: 'Mg',\n    allDayText: 'Sepanjang hari',\n    moreLinkText: function(n) {\n      return 'masih ada ' + n + ' acara'\n    },\n    noEventsText: 'Tiada peristiwa untuk dipaparkan',\n  };\n\n  return ms;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/nb.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var nb = {\n    code: 'nb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Forrige',\n      next: 'Neste',\n      today: 'I dag',\n      month: 'Måned',\n      week: 'Uke',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Uke',\n    allDayText: 'Hele dagen',\n    moreLinkText: 'til',\n    noEventsText: 'Ingen hendelser å vise',\n  };\n\n  return nb;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ne.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ne = {\n    code: 'ne', // code for nepal\n    week: {\n      dow: 7, // Sunday is the first day of the week.\n      doy: 1, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'अघिल्लो',\n      next: 'अर्को',\n      today: 'आज',\n      month: 'महिना',\n      week: 'हप्ता',\n      day: 'दिन',\n      list: 'सूची',\n    },\n    weekText: 'हप्ता',\n    allDayText: 'दिनभरि',\n    moreLinkText: 'थप लिंक',\n    noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्',\n  };\n\n  return ne;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/nl.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var nl = {\n    code: 'nl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Vorige',\n      next: 'Volgende',\n      today: 'Vandaag',\n      year: 'Jaar',\n      month: 'Maand',\n      week: 'Week',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    allDayText: 'Hele dag',\n    moreLinkText: 'extra',\n    noEventsText: 'Geen evenementen om te laten zien',\n  };\n\n  return nl;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/nn.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var nn = {\n    code: 'nn',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Førre',\n      next: 'Neste',\n      today: 'I dag',\n      month: 'Månad',\n      week: 'Veke',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Veke',\n    allDayText: 'Heile dagen',\n    moreLinkText: 'til',\n    noEventsText: 'Ingen hendelser å vise',\n  };\n\n  return nn;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/pl.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var pl = {\n    code: 'pl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Poprzedni',\n      next: 'Następny',\n      today: 'Dziś',\n      month: 'Miesiąc',\n      week: 'Tydzień',\n      day: 'Dzień',\n      list: 'Plan dnia',\n    },\n    weekText: 'Tydz',\n    allDayText: 'Cały dzień',\n    moreLinkText: 'więcej',\n    noEventsText: 'Brak wydarzeń do wyświetlenia',\n  };\n\n  return pl;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/pt-br.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ptBr = {\n    code: 'pt-br',\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Próximo',\n      today: 'Hoje',\n      month: 'Mês',\n      week: 'Semana',\n      day: 'Dia',\n      list: 'Lista',\n    },\n    weekText: 'Sm',\n    allDayText: 'dia inteiro',\n    moreLinkText: function(n) {\n      return 'mais +' + n\n    },\n    noEventsText: 'Não há eventos para mostrar',\n  };\n\n  return ptBr;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/pt.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var pt = {\n    code: 'pt',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Seguinte',\n      today: 'Hoje',\n      month: 'Mês',\n      week: 'Semana',\n      day: 'Dia',\n      list: 'Agenda',\n    },\n    weekText: 'Sem',\n    allDayText: 'Todo o dia',\n    moreLinkText: 'mais',\n    noEventsText: 'Não há eventos para mostrar',\n  };\n\n  return pt;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ro.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ro = {\n    code: 'ro',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'precedentă',\n      next: 'următoare',\n      today: 'Azi',\n      month: 'Lună',\n      week: 'Săptămână',\n      day: 'Zi',\n      list: 'Agendă',\n    },\n    weekText: 'Săpt',\n    allDayText: 'Toată ziua',\n    moreLinkText: function(n) {\n      return '+alte ' + n\n    },\n    noEventsText: 'Nu există evenimente de afișat',\n  };\n\n  return ro;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ru.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ru = {\n    code: 'ru',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Пред',\n      next: 'След',\n      today: 'Сегодня',\n      month: 'Месяц',\n      week: 'Неделя',\n      day: 'День',\n      list: 'Повестка дня',\n    },\n    weekText: 'Нед',\n    allDayText: 'Весь день',\n    moreLinkText: function(n) {\n      return '+ ещё ' + n\n    },\n    noEventsText: 'Нет событий для отображения',\n  };\n\n  return ru;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sk.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var sk = {\n    code: 'sk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Predchádzajúci',\n      next: 'Nasledujúci',\n      today: 'Dnes',\n      month: 'Mesiac',\n      week: 'Týždeň',\n      day: 'Deň',\n      list: 'Rozvrh',\n    },\n    weekText: 'Ty',\n    allDayText: 'Celý deň',\n    moreLinkText: function(n) {\n      return '+ďalšie: ' + n\n    },\n    noEventsText: 'Žiadne akcie na zobrazenie',\n  };\n\n  return sk;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sl.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var sl = {\n    code: 'sl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prejšnji',\n      next: 'Naslednji',\n      today: 'Trenutni',\n      month: 'Mesec',\n      week: 'Teden',\n      day: 'Dan',\n      list: 'Dnevni red',\n    },\n    weekText: 'Teden',\n    allDayText: 'Ves dan',\n    moreLinkText: 'več',\n    noEventsText: 'Ni dogodkov za prikaz',\n  };\n\n  return sl;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sq.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var sq = {\n    code: 'sq',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'mbrapa',\n      next: 'Përpara',\n      today: 'sot',\n      month: 'Muaj',\n      week: 'Javë',\n      day: 'Ditë',\n      list: 'Listë',\n    },\n    weekText: 'Ja',\n    allDayText: 'Gjithë ditën',\n    moreLinkText: function(n) {\n      return '+më tepër ' + n\n    },\n    noEventsText: 'Nuk ka evente për të shfaqur',\n  };\n\n  return sq;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sr-cyrl.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var srCyrl = {\n    code: 'sr-cyrl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Претходна',\n      next: 'следећи',\n      today: 'Данас',\n      month: 'Месец',\n      week: 'Недеља',\n      day: 'Дан',\n      list: 'Планер',\n    },\n    weekText: 'Сед',\n    allDayText: 'Цео дан',\n    moreLinkText: function(n) {\n      return '+ још ' + n\n    },\n    noEventsText: 'Нема догађаја за приказ',\n  };\n\n  return srCyrl;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sr.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var sr = {\n    code: 'sr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prethodna',\n      next: 'Sledeći',\n      today: 'Danas',\n      month: 'Mеsеc',\n      week: 'Nеdеlja',\n      day: 'Dan',\n      list: 'Planеr',\n    },\n    weekText: 'Sed',\n    allDayText: 'Cеo dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nеma događaja za prikaz',\n  };\n\n  return sr;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/sv.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var sv = {\n    code: 'sv',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Förra',\n      next: 'Nästa',\n      today: 'Idag',\n      month: 'Månad',\n      week: 'Vecka',\n      day: 'Dag',\n      list: 'Program',\n    },\n    weekText: 'v.',\n    allDayText: 'Heldag',\n    moreLinkText: 'till',\n    noEventsText: 'Inga händelser att visa',\n  };\n\n  return sv;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ta-in.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var taIn = {\n    code: 'ta-in',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'முந்தைய',\n      next: 'அடுத்தது',\n      today: 'இன்று',\n      month: 'மாதம்',\n      week: 'சனிக்கிழமை',\n      day: 'நாள்',\n      list: 'தினசரி கதை',\n    },\n    weekText: 'வார',\n    allDayText: 'நாள் முழுவதும்',\n    moreLinkText: function(n) {\n      return '+ மேலும் ' + n\n    },\n    noEventsText: 'நிகழ்வைக் காட்டவில்லை',\n  };\n\n  return taIn;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/th.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var th = {\n    code: 'th',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'ก่อนหน้า',\n      next: 'ถัดไป',\n      prevYear: 'ปีก่อนหน้า',\n      nextYear: 'ปีถัดไป',\n      year: 'ปี',\n      today: 'วันนี้',\n      month: 'เดือน',\n      week: 'สัปดาห์',\n      day: 'วัน',\n      list: 'กำหนดการ',\n    },\n    weekText: 'สัปดาห์',\n    allDayText: 'ตลอดวัน',\n    moreLinkText: 'เพิ่มเติม',\n    noEventsText: 'ไม่มีกิจกรรมที่จะแสดง',\n  };\n\n  return th;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/tr.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var tr = {\n    code: 'tr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'geri',\n      next: 'ileri',\n      today: 'bugün',\n      month: 'Ay',\n      week: 'Hafta',\n      day: 'Gün',\n      list: 'Ajanda',\n    },\n    weekText: 'Hf',\n    allDayText: 'Tüm gün',\n    moreLinkText: 'daha fazla',\n    noEventsText: 'Gösterilecek etkinlik yok',\n  };\n\n  return tr;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/ug.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var ug = {\n    code: 'ug',\n    buttonText: {\n      month: 'ئاي',\n      week: 'ھەپتە',\n      day: 'كۈن',\n      list: 'كۈنتەرتىپ',\n    },\n    allDayText: 'پۈتۈن كۈن',\n  };\n\n  return ug;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/uk.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var uk = {\n    code: 'uk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Попередній',\n      next: 'далі',\n      today: 'Сьогодні',\n      month: 'Місяць',\n      week: 'Тиждень',\n      day: 'День',\n      list: 'Порядок денний',\n    },\n    weekText: 'Тиж',\n    allDayText: 'Увесь день',\n    moreLinkText: function(n) {\n      return '+ще ' + n + '...'\n    },\n    noEventsText: 'Немає подій для відображення',\n  };\n\n  return uk;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/uz.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var uz = {\n    code: 'uz',\n    buttonText: {\n      month: 'Oy',\n      week: 'Xafta',\n      day: 'Kun',\n      list: 'Kun tartibi',\n    },\n    allDayText: \"Kun bo'yi\",\n    moreLinkText: function(n) {\n      return '+ yana ' + n\n    },\n    noEventsText: \"Ko'rsatish uchun voqealar yo'q\",\n  };\n\n  return uz;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/vi.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var vi = {\n    code: 'vi',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Trước',\n      next: 'Tiếp',\n      today: 'Hôm nay',\n      month: 'Tháng',\n      week: 'Tuần',\n      day: 'Ngày',\n      list: 'Lịch biểu',\n    },\n    weekText: 'Tu',\n    allDayText: 'Cả ngày',\n    moreLinkText: function(n) {\n      return '+ thêm ' + n\n    },\n    noEventsText: 'Không có sự kiện để hiển thị',\n  };\n\n  return vi;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/zh-cn.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var zhCn = {\n    code: 'zh-cn',\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: '上月',\n      next: '下月',\n      today: '今天',\n      month: '月',\n      week: '周',\n      day: '日',\n      list: '日程',\n    },\n    weekText: '周',\n    allDayText: '全天',\n    moreLinkText: function(n) {\n      return '另外 ' + n + ' 个'\n    },\n    noEventsText: '没有事件显示',\n  };\n\n  return zhCn;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales/zh-tw.js",
    "content": "FullCalendar.globalLocales.push(function () {\n  'use strict';\n\n  var zhTw = {\n    code: 'zh-tw',\n    buttonText: {\n      prev: '上月',\n      next: '下月',\n      today: '今天',\n      month: '月',\n      week: '週',\n      day: '天',\n      list: '活動列表',\n    },\n    weekText: '周',\n    allDayText: '整天',\n    moreLinkText: '顯示更多',\n    noEventsText: '没有任何活動',\n  };\n\n  return zhTw;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/locales-all.js",
    "content": "[].push.apply(FullCalendar.globalLocales, function () {\n  'use strict';\n\n  var l0 = {\n    code: 'af',\n    week: {\n      dow: 1, // Maandag is die eerste dag van die week.\n      doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n    },\n    buttonText: {\n      prev: 'Vorige',\n      next: 'Volgende',\n      today: 'Vandag',\n      year: 'Jaar',\n      month: 'Maand',\n      week: 'Week',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    allDayText: 'Heeldag',\n    moreLinkText: 'Addisionele',\n    noEventsText: 'Daar is geen gebeurtenisse nie',\n  };\n\n  var l1 = {\n    code: 'ar-dz',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 4, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l2 = {\n    code: 'ar-kw',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l3 = {\n    code: 'ar-ly',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l4 = {\n    code: 'ar-ma',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l5 = {\n    code: 'ar-sa',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l6 = {\n    code: 'ar-tn',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l7 = {\n    code: 'ar',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'السابق',\n      next: 'التالي',\n      today: 'اليوم',\n      month: 'شهر',\n      week: 'أسبوع',\n      day: 'يوم',\n      list: 'أجندة',\n    },\n    weekText: 'أسبوع',\n    allDayText: 'اليوم كله',\n    moreLinkText: 'أخرى',\n    noEventsText: 'أي أحداث لعرض',\n  };\n\n  var l8 = {\n    code: 'az',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Əvvəl',\n      next: 'Sonra',\n      today: 'Bu Gün',\n      month: 'Ay',\n      week: 'Həftə',\n      day: 'Gün',\n      list: 'Gündəm',\n    },\n    weekText: 'Həftə',\n    allDayText: 'Bütün Gün',\n    moreLinkText: function(n) {\n      return '+ daha çox ' + n\n    },\n    noEventsText: 'Göstərmək üçün hadisə yoxdur',\n  };\n\n  var l9 = {\n    code: 'bg',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'назад',\n      next: 'напред',\n      today: 'днес',\n      month: 'Месец',\n      week: 'Седмица',\n      day: 'Ден',\n      list: 'График',\n    },\n    allDayText: 'Цял ден',\n    moreLinkText: function(n) {\n      return '+още ' + n\n    },\n    noEventsText: 'Няма събития за показване',\n  };\n\n  var l10 = {\n    code: 'bs',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prošli',\n      next: 'Sljedeći',\n      today: 'Danas',\n      month: 'Mjesec',\n      week: 'Sedmica',\n      day: 'Dan',\n      list: 'Raspored',\n    },\n    weekText: 'Sed',\n    allDayText: 'Cijeli dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nema događaja za prikazivanje',\n  };\n\n  var l11 = {\n    code: 'ca',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Següent',\n      today: 'Avui',\n      month: 'Mes',\n      week: 'Setmana',\n      day: 'Dia',\n      list: 'Agenda',\n    },\n    weekText: 'Set',\n    allDayText: 'Tot el dia',\n    moreLinkText: 'més',\n    noEventsText: 'No hi ha esdeveniments per mostrar',\n  };\n\n  var l12 = {\n    code: 'cs',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Dříve',\n      next: 'Později',\n      today: 'Nyní',\n      month: 'Měsíc',\n      week: 'Týden',\n      day: 'Den',\n      list: 'Agenda',\n    },\n    weekText: 'Týd',\n    allDayText: 'Celý den',\n    moreLinkText: function(n) {\n      return '+další: ' + n\n    },\n    noEventsText: 'Žádné akce k zobrazení',\n  };\n\n  var l13 = {\n    code: 'cy',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Blaenorol',\n      next: 'Nesaf',\n      today: 'Heddiw',\n      year: 'Blwyddyn',\n      month: 'Mis',\n      week: 'Wythnos',\n      day: 'Dydd',\n      list: 'Rhestr',\n    },\n    weekText: 'Wythnos',\n    allDayText: 'Trwy\\'r dydd',\n    moreLinkText: 'Mwy',\n    noEventsText: 'Dim digwyddiadau',\n  };\n\n  var l14 = {\n    code: 'da',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Forrige',\n      next: 'Næste',\n      today: 'I dag',\n      month: 'Måned',\n      week: 'Uge',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Uge',\n    allDayText: 'Hele dagen',\n    moreLinkText: 'flere',\n    noEventsText: 'Ingen arrangementer at vise',\n  };\n\n  var l15 = {\n    code: 'de-at',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zurück',\n      next: 'Vor',\n      today: 'Heute',\n      year: 'Jahr',\n      month: 'Monat',\n      week: 'Woche',\n      day: 'Tag',\n      list: 'Terminübersicht',\n    },\n    weekText: 'KW',\n    allDayText: 'Ganztägig',\n    moreLinkText: function(n) {\n      return '+ weitere ' + n\n    },\n    noEventsText: 'Keine Ereignisse anzuzeigen',\n  };\n\n  var l16 = {\n    code: 'de',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zurück',\n      next: 'Vor',\n      today: 'Heute',\n      year: 'Jahr',\n      month: 'Monat',\n      week: 'Woche',\n      day: 'Tag',\n      list: 'Terminübersicht',\n    },\n    weekText: 'KW',\n    allDayText: 'Ganztägig',\n    moreLinkText: function(n) {\n      return '+ weitere ' + n\n    },\n    noEventsText: 'Keine Ereignisse anzuzeigen',\n  };\n\n  var l17 = {\n    code: 'el',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Προηγούμενος',\n      next: 'Επόμενος',\n      today: 'Σήμερα',\n      month: 'Μήνας',\n      week: 'Εβδομάδα',\n      day: 'Ημέρα',\n      list: 'Ατζέντα',\n    },\n    weekText: 'Εβδ',\n    allDayText: 'Ολοήμερο',\n    moreLinkText: 'περισσότερα',\n    noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση',\n  };\n\n  var l18 = {\n    code: 'en-au',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  var l19 = {\n    code: 'en-gb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  var l20 = {\n    code: 'en-nz',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n  };\n\n  var l21 = {\n    code: 'eo',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Antaŭa',\n      next: 'Sekva',\n      today: 'Hodiaŭ',\n      month: 'Monato',\n      week: 'Semajno',\n      day: 'Tago',\n      list: 'Tagordo',\n    },\n    weekText: 'Sm',\n    allDayText: 'Tuta tago',\n    moreLinkText: 'pli',\n    noEventsText: 'Neniuj eventoj por montri',\n  };\n\n  var l22 = {\n    code: 'es',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Sig',\n      today: 'Hoy',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo el día',\n    moreLinkText: 'más',\n    noEventsText: 'No hay eventos para mostrar',\n  };\n\n  var l23 = {\n    code: 'es',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Sig',\n      today: 'Hoy',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo el día',\n    moreLinkText: 'más',\n    noEventsText: 'No hay eventos para mostrar',\n  };\n\n  var l24 = {\n    code: 'et',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Eelnev',\n      next: 'Järgnev',\n      today: 'Täna',\n      month: 'Kuu',\n      week: 'Nädal',\n      day: 'Päev',\n      list: 'Päevakord',\n    },\n    weekText: 'näd',\n    allDayText: 'Kogu päev',\n    moreLinkText: function(n) {\n      return '+ veel ' + n\n    },\n    noEventsText: 'Kuvamiseks puuduvad sündmused',\n  };\n\n  var l25 = {\n    code: 'eu',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Aur',\n      next: 'Hur',\n      today: 'Gaur',\n      month: 'Hilabetea',\n      week: 'Astea',\n      day: 'Eguna',\n      list: 'Agenda',\n    },\n    weekText: 'As',\n    allDayText: 'Egun osoa',\n    moreLinkText: 'gehiago',\n    noEventsText: 'Ez dago ekitaldirik erakusteko',\n  };\n\n  var l26 = {\n    code: 'fa',\n    week: {\n      dow: 6, // Saturday is the first day of the week.\n      doy: 12, // The week that contains Jan 1st is the first week of the year.\n    },\n    direction: 'rtl',\n    buttonText: {\n      prev: 'قبلی',\n      next: 'بعدی',\n      today: 'امروز',\n      month: 'ماه',\n      week: 'هفته',\n      day: 'روز',\n      list: 'برنامه',\n    },\n    weekText: 'هف',\n    allDayText: 'تمام روز',\n    moreLinkText: function(n) {\n      return 'بیش از ' + n\n    },\n    noEventsText: 'هیچ رویدادی به نمایش',\n  };\n\n  var l27 = {\n    code: 'fi',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Edellinen',\n      next: 'Seuraava',\n      today: 'Tänään',\n      month: 'Kuukausi',\n      week: 'Viikko',\n      day: 'Päivä',\n      list: 'Tapahtumat',\n    },\n    weekText: 'Vk',\n    allDayText: 'Koko päivä',\n    moreLinkText: 'lisää',\n    noEventsText: 'Ei näytettäviä tapahtumia',\n  };\n\n  var l28 = {\n    code: 'fr',\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: \"Aujourd'hui\",\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Mon planning',\n    },\n    weekText: 'Sem.',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  var l29 = {\n    code: 'fr-ch',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: 'Courant',\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Mon planning',\n    },\n    weekText: 'Sm',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  var l30 = {\n    code: 'fr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      today: \"Aujourd'hui\",\n      year: 'Année',\n      month: 'Mois',\n      week: 'Semaine',\n      day: 'Jour',\n      list: 'Planning',\n    },\n    weekText: 'Sem.',\n    allDayText: 'Toute la journée',\n    moreLinkText: 'en plus',\n    noEventsText: 'Aucun événement à afficher',\n  };\n\n  var l31 = {\n    code: 'gl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Ant',\n      next: 'Seg',\n      today: 'Hoxe',\n      month: 'Mes',\n      week: 'Semana',\n      day: 'Día',\n      list: 'Axenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Todo o día',\n    moreLinkText: 'máis',\n    noEventsText: 'Non hai eventos para amosar',\n  };\n\n  var l32 = {\n    code: 'he',\n    direction: 'rtl',\n    buttonText: {\n      prev: 'הקודם',\n      next: 'הבא',\n      today: 'היום',\n      month: 'חודש',\n      week: 'שבוע',\n      day: 'יום',\n      list: 'סדר יום',\n    },\n    allDayText: 'כל היום',\n    moreLinkText: 'אחר',\n    noEventsText: 'אין אירועים להצגה',\n    weekText: 'שבוע',\n  };\n\n  var l33 = {\n    code: 'hi',\n    week: {\n      dow: 0, // Sunday is the first day of the week.\n      doy: 6, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'पिछला',\n      next: 'अगला',\n      today: 'आज',\n      month: 'महीना',\n      week: 'सप्ताह',\n      day: 'दिन',\n      list: 'कार्यसूची',\n    },\n    weekText: 'हफ्ता',\n    allDayText: 'सभी दिन',\n    moreLinkText: function(n) {\n      return '+अधिक ' + n\n    },\n    noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए',\n  };\n\n  var l34 = {\n    code: 'hr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prijašnji',\n      next: 'Sljedeći',\n      today: 'Danas',\n      month: 'Mjesec',\n      week: 'Tjedan',\n      day: 'Dan',\n      list: 'Raspored',\n    },\n    weekText: 'Tje',\n    allDayText: 'Cijeli dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nema događaja za prikaz',\n  };\n\n  var l35 = {\n    code: 'hu',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'vissza',\n      next: 'előre',\n      today: 'ma',\n      month: 'Hónap',\n      week: 'Hét',\n      day: 'Nap',\n      list: 'Napló',\n    },\n    weekText: 'Hét',\n    allDayText: 'Egész nap',\n    moreLinkText: 'további',\n    noEventsText: 'Nincs megjeleníthető esemény',\n  };\n\n  var l36 = {\n    code: 'hy-am',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Նախորդ',\n      next: 'Հաջորդ',\n      today: 'Այսօր',\n      month: 'Ամիս',\n      week: 'Շաբաթ',\n      day: 'Օր',\n      list: 'Օրվա ցուցակ',\n    },\n    weekText: 'Շաբ',\n    allDayText: 'Ամբողջ օր',\n    moreLinkText: function(n) {\n      return '+ ևս ' + n\n    },\n    noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու',\n  };\n\n  var l37 = {\n    code: 'id',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'mundur',\n      next: 'maju',\n      today: 'hari ini',\n      month: 'Bulan',\n      week: 'Minggu',\n      day: 'Hari',\n      list: 'Agenda',\n    },\n    weekText: 'Mg',\n    allDayText: 'Sehari penuh',\n    moreLinkText: 'lebih',\n    noEventsText: 'Tidak ada acara untuk ditampilkan',\n  };\n\n  var l38 = {\n    code: 'is',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Fyrri',\n      next: 'Næsti',\n      today: 'Í dag',\n      month: 'Mánuður',\n      week: 'Vika',\n      day: 'Dagur',\n      list: 'Dagskrá',\n    },\n    weekText: 'Vika',\n    allDayText: 'Allan daginn',\n    moreLinkText: 'meira',\n    noEventsText: 'Engir viðburðir til að sýna',\n  };\n\n  var l39 = {\n    code: 'it',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prec',\n      next: 'Succ',\n      today: 'Oggi',\n      month: 'Mese',\n      week: 'Settimana',\n      day: 'Giorno',\n      list: 'Agenda',\n    },\n    weekText: 'Sm',\n    allDayText: 'Tutto il giorno',\n    moreLinkText: function(n) {\n      return '+altri ' + n\n    },\n    noEventsText: 'Non ci sono eventi da visualizzare',\n  };\n\n  var l40 = {\n    code: 'ja',\n    buttonText: {\n      prev: '前',\n      next: '次',\n      today: '今日',\n      month: '月',\n      week: '週',\n      day: '日',\n      list: '予定リスト',\n    },\n    weekText: '週',\n    allDayText: '終日',\n    moreLinkText: function(n) {\n      return '他 ' + n + ' 件'\n    },\n    noEventsText: '表示する予定はありません',\n  };\n\n  var l41 = {\n    code: 'ka',\n    week: {\n      dow: 1,\n      doy: 7,\n    },\n    buttonText: {\n      prev: 'წინა',\n      next: 'შემდეგი',\n      today: 'დღეს',\n      month: 'თვე',\n      week: 'კვირა',\n      day: 'დღე',\n      list: 'დღის წესრიგი',\n    },\n    weekText: 'კვ',\n    allDayText: 'მთელი დღე',\n    moreLinkText: function(n) {\n      return '+ კიდევ ' + n\n    },\n    noEventsText: 'ღონისძიებები არ არის',\n  };\n\n  var l42 = {\n    code: 'kk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Алдыңғы',\n      next: 'Келесі',\n      today: 'Бүгін',\n      month: 'Ай',\n      week: 'Апта',\n      day: 'Күн',\n      list: 'Күн тәртібі',\n    },\n    weekText: 'Не',\n    allDayText: 'Күні бойы',\n    moreLinkText: function(n) {\n      return '+ тағы ' + n\n    },\n    noEventsText: 'Көрсету үшін оқиғалар жоқ',\n  };\n\n  var l43 = {\n    code: 'ko',\n    buttonText: {\n      prev: '이전달',\n      next: '다음달',\n      today: '오늘',\n      month: '월',\n      week: '주',\n      day: '일',\n      list: '일정목록',\n    },\n    weekText: '주',\n    allDayText: '종일',\n    moreLinkText: '개',\n    noEventsText: '일정이 없습니다',\n  };\n\n  var l44 = {\n    code: 'lb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Zréck',\n      next: 'Weider',\n      today: 'Haut',\n      month: 'Mount',\n      week: 'Woch',\n      day: 'Dag',\n      list: 'Terminiwwersiicht',\n    },\n    weekText: 'W',\n    allDayText: 'Ganzen Dag',\n    moreLinkText: 'méi',\n    noEventsText: 'Nee Evenementer ze affichéieren',\n  };\n\n  var l45 = {\n    code: 'lt',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Atgal',\n      next: 'Pirmyn',\n      today: 'Šiandien',\n      month: 'Mėnuo',\n      week: 'Savaitė',\n      day: 'Diena',\n      list: 'Darbotvarkė',\n    },\n    weekText: 'SAV',\n    allDayText: 'Visą dieną',\n    moreLinkText: 'daugiau',\n    noEventsText: 'Nėra įvykių rodyti',\n  };\n\n  var l46 = {\n    code: 'lv',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Iepr.',\n      next: 'Nāk.',\n      today: 'Šodien',\n      month: 'Mēnesis',\n      week: 'Nedēļa',\n      day: 'Diena',\n      list: 'Dienas kārtība',\n    },\n    weekText: 'Ned.',\n    allDayText: 'Visu dienu',\n    moreLinkText: function(n) {\n      return '+vēl ' + n\n    },\n    noEventsText: 'Nav notikumu',\n  };\n\n  var l47 = {\n    code: 'mk',\n    buttonText: {\n      prev: 'претходно',\n      next: 'следно',\n      today: 'Денес',\n      month: 'Месец',\n      week: 'Недела',\n      day: 'Ден',\n      list: 'График',\n    },\n    weekText: 'Сед',\n    allDayText: 'Цел ден',\n    moreLinkText: function(n) {\n      return '+повеќе ' + n\n    },\n    noEventsText: 'Нема настани за прикажување',\n  };\n\n  var l48 = {\n    code: 'ms',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Sebelum',\n      next: 'Selepas',\n      today: 'hari ini',\n      month: 'Bulan',\n      week: 'Minggu',\n      day: 'Hari',\n      list: 'Agenda',\n    },\n    weekText: 'Mg',\n    allDayText: 'Sepanjang hari',\n    moreLinkText: function(n) {\n      return 'masih ada ' + n + ' acara'\n    },\n    noEventsText: 'Tiada peristiwa untuk dipaparkan',\n  };\n\n  var l49 = {\n    code: 'nb',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Forrige',\n      next: 'Neste',\n      today: 'I dag',\n      month: 'Måned',\n      week: 'Uke',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Uke',\n    allDayText: 'Hele dagen',\n    moreLinkText: 'til',\n    noEventsText: 'Ingen hendelser å vise',\n  };\n\n  var l50 = {\n    code: 'ne', // code for nepal\n    week: {\n      dow: 7, // Sunday is the first day of the week.\n      doy: 1, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'अघिल्लो',\n      next: 'अर्को',\n      today: 'आज',\n      month: 'महिना',\n      week: 'हप्ता',\n      day: 'दिन',\n      list: 'सूची',\n    },\n    weekText: 'हप्ता',\n    allDayText: 'दिनभरि',\n    moreLinkText: 'थप लिंक',\n    noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्',\n  };\n\n  var l51 = {\n    code: 'nl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Vorige',\n      next: 'Volgende',\n      today: 'Vandaag',\n      year: 'Jaar',\n      month: 'Maand',\n      week: 'Week',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    allDayText: 'Hele dag',\n    moreLinkText: 'extra',\n    noEventsText: 'Geen evenementen om te laten zien',\n  };\n\n  var l52 = {\n    code: 'nn',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Førre',\n      next: 'Neste',\n      today: 'I dag',\n      month: 'Månad',\n      week: 'Veke',\n      day: 'Dag',\n      list: 'Agenda',\n    },\n    weekText: 'Veke',\n    allDayText: 'Heile dagen',\n    moreLinkText: 'til',\n    noEventsText: 'Ingen hendelser å vise',\n  };\n\n  var l53 = {\n    code: 'pl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Poprzedni',\n      next: 'Następny',\n      today: 'Dziś',\n      month: 'Miesiąc',\n      week: 'Tydzień',\n      day: 'Dzień',\n      list: 'Plan dnia',\n    },\n    weekText: 'Tydz',\n    allDayText: 'Cały dzień',\n    moreLinkText: 'więcej',\n    noEventsText: 'Brak wydarzeń do wyświetlenia',\n  };\n\n  var l54 = {\n    code: 'pt-br',\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Próximo',\n      today: 'Hoje',\n      month: 'Mês',\n      week: 'Semana',\n      day: 'Dia',\n      list: 'Lista',\n    },\n    weekText: 'Sm',\n    allDayText: 'dia inteiro',\n    moreLinkText: function(n) {\n      return 'mais +' + n\n    },\n    noEventsText: 'Não há eventos para mostrar',\n  };\n\n  var l55 = {\n    code: 'pt',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Anterior',\n      next: 'Seguinte',\n      today: 'Hoje',\n      month: 'Mês',\n      week: 'Semana',\n      day: 'Dia',\n      list: 'Agenda',\n    },\n    weekText: 'Sem',\n    allDayText: 'Todo o dia',\n    moreLinkText: 'mais',\n    noEventsText: 'Não há eventos para mostrar',\n  };\n\n  var l56 = {\n    code: 'ro',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'precedentă',\n      next: 'următoare',\n      today: 'Azi',\n      month: 'Lună',\n      week: 'Săptămână',\n      day: 'Zi',\n      list: 'Agendă',\n    },\n    weekText: 'Săpt',\n    allDayText: 'Toată ziua',\n    moreLinkText: function(n) {\n      return '+alte ' + n\n    },\n    noEventsText: 'Nu există evenimente de afișat',\n  };\n\n  var l57 = {\n    code: 'ru',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Пред',\n      next: 'След',\n      today: 'Сегодня',\n      month: 'Месяц',\n      week: 'Неделя',\n      day: 'День',\n      list: 'Повестка дня',\n    },\n    weekText: 'Нед',\n    allDayText: 'Весь день',\n    moreLinkText: function(n) {\n      return '+ ещё ' + n\n    },\n    noEventsText: 'Нет событий для отображения',\n  };\n\n  var l58 = {\n    code: 'sk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Predchádzajúci',\n      next: 'Nasledujúci',\n      today: 'Dnes',\n      month: 'Mesiac',\n      week: 'Týždeň',\n      day: 'Deň',\n      list: 'Rozvrh',\n    },\n    weekText: 'Ty',\n    allDayText: 'Celý deň',\n    moreLinkText: function(n) {\n      return '+ďalšie: ' + n\n    },\n    noEventsText: 'Žiadne akcie na zobrazenie',\n  };\n\n  var l59 = {\n    code: 'sl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prejšnji',\n      next: 'Naslednji',\n      today: 'Trenutni',\n      month: 'Mesec',\n      week: 'Teden',\n      day: 'Dan',\n      list: 'Dnevni red',\n    },\n    weekText: 'Teden',\n    allDayText: 'Ves dan',\n    moreLinkText: 'več',\n    noEventsText: 'Ni dogodkov za prikaz',\n  };\n\n  var l60 = {\n    code: 'sq',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'mbrapa',\n      next: 'Përpara',\n      today: 'sot',\n      month: 'Muaj',\n      week: 'Javë',\n      day: 'Ditë',\n      list: 'Listë',\n    },\n    weekText: 'Ja',\n    allDayText: 'Gjithë ditën',\n    moreLinkText: function(n) {\n      return '+më tepër ' + n\n    },\n    noEventsText: 'Nuk ka evente për të shfaqur',\n  };\n\n  var l61 = {\n    code: 'sr-cyrl',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Претходна',\n      next: 'следећи',\n      today: 'Данас',\n      month: 'Месец',\n      week: 'Недеља',\n      day: 'Дан',\n      list: 'Планер',\n    },\n    weekText: 'Сед',\n    allDayText: 'Цео дан',\n    moreLinkText: function(n) {\n      return '+ још ' + n\n    },\n    noEventsText: 'Нема догађаја за приказ',\n  };\n\n  var l62 = {\n    code: 'sr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Prethodna',\n      next: 'Sledeći',\n      today: 'Danas',\n      month: 'Mеsеc',\n      week: 'Nеdеlja',\n      day: 'Dan',\n      list: 'Planеr',\n    },\n    weekText: 'Sed',\n    allDayText: 'Cеo dan',\n    moreLinkText: function(n) {\n      return '+ još ' + n\n    },\n    noEventsText: 'Nеma događaja za prikaz',\n  };\n\n  var l63 = {\n    code: 'sv',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Förra',\n      next: 'Nästa',\n      today: 'Idag',\n      month: 'Månad',\n      week: 'Vecka',\n      day: 'Dag',\n      list: 'Program',\n    },\n    weekText: 'v.',\n    allDayText: 'Heldag',\n    moreLinkText: 'till',\n    noEventsText: 'Inga händelser att visa',\n  };\n\n  var l64 = {\n    code: 'ta-in',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'முந்தைய',\n      next: 'அடுத்தது',\n      today: 'இன்று',\n      month: 'மாதம்',\n      week: 'சனிக்கிழமை',\n      day: 'நாள்',\n      list: 'தினசரி கதை',\n    },\n    weekText: 'வார',\n    allDayText: 'நாள் முழுவதும்',\n    moreLinkText: function(n) {\n      return '+ மேலும் ' + n\n    },\n    noEventsText: 'நிகழ்வைக் காட்டவில்லை',\n  };\n\n  var l65 = {\n    code: 'th',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'ก่อนหน้า',\n      next: 'ถัดไป',\n      prevYear: 'ปีก่อนหน้า',\n      nextYear: 'ปีถัดไป',\n      year: 'ปี',\n      today: 'วันนี้',\n      month: 'เดือน',\n      week: 'สัปดาห์',\n      day: 'วัน',\n      list: 'กำหนดการ',\n    },\n    weekText: 'สัปดาห์',\n    allDayText: 'ตลอดวัน',\n    moreLinkText: 'เพิ่มเติม',\n    noEventsText: 'ไม่มีกิจกรรมที่จะแสดง',\n  };\n\n  var l66 = {\n    code: 'tr',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'geri',\n      next: 'ileri',\n      today: 'bugün',\n      month: 'Ay',\n      week: 'Hafta',\n      day: 'Gün',\n      list: 'Ajanda',\n    },\n    weekText: 'Hf',\n    allDayText: 'Tüm gün',\n    moreLinkText: 'daha fazla',\n    noEventsText: 'Gösterilecek etkinlik yok',\n  };\n\n  var l67 = {\n    code: 'ug',\n    buttonText: {\n      month: 'ئاي',\n      week: 'ھەپتە',\n      day: 'كۈن',\n      list: 'كۈنتەرتىپ',\n    },\n    allDayText: 'پۈتۈن كۈن',\n  };\n\n  var l68 = {\n    code: 'uk',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 7, // The week that contains Jan 1st is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Попередній',\n      next: 'далі',\n      today: 'Сьогодні',\n      month: 'Місяць',\n      week: 'Тиждень',\n      day: 'День',\n      list: 'Порядок денний',\n    },\n    weekText: 'Тиж',\n    allDayText: 'Увесь день',\n    moreLinkText: function(n) {\n      return '+ще ' + n + '...'\n    },\n    noEventsText: 'Немає подій для відображення',\n  };\n\n  var l69 = {\n    code: 'uz',\n    buttonText: {\n      month: 'Oy',\n      week: 'Xafta',\n      day: 'Kun',\n      list: 'Kun tartibi',\n    },\n    allDayText: \"Kun bo'yi\",\n    moreLinkText: function(n) {\n      return '+ yana ' + n\n    },\n    noEventsText: \"Ko'rsatish uchun voqealar yo'q\",\n  };\n\n  var l70 = {\n    code: 'vi',\n    week: {\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: 'Trước',\n      next: 'Tiếp',\n      today: 'Hôm nay',\n      month: 'Tháng',\n      week: 'Tuần',\n      day: 'Ngày',\n      list: 'Lịch biểu',\n    },\n    weekText: 'Tu',\n    allDayText: 'Cả ngày',\n    moreLinkText: function(n) {\n      return '+ thêm ' + n\n    },\n    noEventsText: 'Không có sự kiện để hiển thị',\n  };\n\n  var l71 = {\n    code: 'zh-cn',\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1, // Monday is the first day of the week.\n      doy: 4, // The week that contains Jan 4th is the first week of the year.\n    },\n    buttonText: {\n      prev: '上月',\n      next: '下月',\n      today: '今天',\n      month: '月',\n      week: '周',\n      day: '日',\n      list: '日程',\n    },\n    weekText: '周',\n    allDayText: '全天',\n    moreLinkText: function(n) {\n      return '另外 ' + n + ' 个'\n    },\n    noEventsText: '没有事件显示',\n  };\n\n  var l72 = {\n    code: 'zh-tw',\n    buttonText: {\n      prev: '上月',\n      next: '下月',\n      today: '今天',\n      month: '月',\n      week: '週',\n      day: '天',\n      list: '活動列表',\n    },\n    weekText: '周',\n    allDayText: '整天',\n    moreLinkText: '顯示更多',\n    noEventsText: '没有任何活動',\n  };\n\n  /* eslint max-len: off */\n\n  var localesAll = [\n    l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, \n  ];\n\n  return localesAll;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/main.css",
    "content": "\n/* classes attached to <body> */\n\n.fc-not-allowed,\n.fc-not-allowed .fc-event { /* override events' custom cursors */\n  cursor: not-allowed;\n}\n\n.fc-unselectable {\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  -webkit-touch-callout: none;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.fc {\n  /* layout of immediate children */\n  display: flex;\n  flex-direction: column;\n\n  font-size: 1em\n}\n.fc,\n  .fc *,\n  .fc *:before,\n  .fc *:after {\n    box-sizing: border-box;\n  }\n.fc table {\n    border-collapse: collapse;\n    border-spacing: 0;\n    font-size: 1em; /* normalize cross-browser */\n  }\n.fc th {\n    text-align: center;\n  }\n.fc th,\n  .fc td {\n    vertical-align: top;\n    padding: 0;\n  }\n.fc a[data-navlink] {\n    cursor: pointer;\n  }\n.fc a[data-navlink]:hover {\n    text-decoration: underline;\n  }\n.fc-direction-ltr {\n  direction: ltr;\n  text-align: left;\n}\n.fc-direction-rtl {\n  direction: rtl;\n  text-align: right;\n}\n.fc-theme-standard td,\n  .fc-theme-standard th {\n    border: 1px solid #ddd;\n    border: 1px solid var(--fc-border-color, #ddd);\n  }\n/* for FF, which doesn't expand a 100% div within a table cell. use absolute positioning */\n/* inner-wrappers are responsible for being absolute */\n/* TODO: best place for this? */\n.fc-liquid-hack td,\n  .fc-liquid-hack th {\n    position: relative;\n  }\n\n@font-face {\n  font-family: 'fcicons';\n  src: url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format('truetype');\n  font-weight: normal;\n  font-style: normal;\n}\n\n.fc-icon {\n  /* added for fc */\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  text-align: center;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n\n  /* use !important to prevent issues with browser extensions that change fonts */\n  font-family: 'fcicons' !important;\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  line-height: 1;\n\n  /* Better Font Rendering =========== */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n.fc-icon-chevron-left:before {\n  content: \"\\e900\";\n}\n\n.fc-icon-chevron-right:before {\n  content: \"\\e901\";\n}\n\n.fc-icon-chevrons-left:before {\n  content: \"\\e902\";\n}\n\n.fc-icon-chevrons-right:before {\n  content: \"\\e903\";\n}\n\n.fc-icon-minus-square:before {\n  content: \"\\e904\";\n}\n\n.fc-icon-plus-square:before {\n  content: \"\\e905\";\n}\n\n.fc-icon-x:before {\n  content: \"\\e906\";\n}\n/*\nLots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css\n\nThese styles only apply when the standard-theme is activated.\nWhen it's NOT activated, the fc-button classes won't even be in the DOM.\n*/\n.fc {\n\n  /* reset */\n\n}\n.fc .fc-button {\n    border-radius: 0;\n    overflow: visible;\n    text-transform: none;\n    margin: 0;\n    font-family: inherit;\n    font-size: inherit;\n    line-height: inherit;\n  }\n.fc .fc-button:focus {\n    outline: 1px dotted;\n    outline: 5px auto -webkit-focus-ring-color;\n  }\n.fc .fc-button {\n    -webkit-appearance: button;\n  }\n.fc .fc-button:not(:disabled) {\n    cursor: pointer;\n  }\n.fc .fc-button::-moz-focus-inner {\n    padding: 0;\n    border-style: none;\n  }\n.fc {\n\n  /* theme */\n\n}\n.fc .fc-button {\n    display: inline-block;\n    font-weight: 400;\n    text-align: center;\n    vertical-align: middle;\n    -webkit-user-select: none;\n       -moz-user-select: none;\n        -ms-user-select: none;\n            user-select: none;\n    background-color: transparent;\n    border: 1px solid transparent;\n    padding: 0.4em 0.65em;\n    font-size: 1em;\n    line-height: 1.5;\n    border-radius: 0.25em;\n  }\n.fc .fc-button:hover {\n    text-decoration: none;\n  }\n.fc .fc-button:focus {\n    outline: 0;\n    box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);\n  }\n.fc .fc-button:disabled {\n    opacity: 0.65;\n  }\n.fc {\n\n  /* \"primary\" coloring */\n\n}\n.fc .fc-button-primary {\n    color: #fff;\n    color: var(--fc-button-text-color, #fff);\n    background-color: #2C3E50;\n    background-color: var(--fc-button-bg-color, #2C3E50);\n    border-color: #2C3E50;\n    border-color: var(--fc-button-border-color, #2C3E50);\n  }\n.fc .fc-button-primary:hover {\n    color: #fff;\n    color: var(--fc-button-text-color, #fff);\n    background-color: #1e2b37;\n    background-color: var(--fc-button-hover-bg-color, #1e2b37);\n    border-color: #1a252f;\n    border-color: var(--fc-button-hover-border-color, #1a252f);\n  }\n.fc .fc-button-primary:disabled { /* not DRY */\n    color: #fff;\n    color: var(--fc-button-text-color, #fff);\n    background-color: #2C3E50;\n    background-color: var(--fc-button-bg-color, #2C3E50);\n    border-color: #2C3E50;\n    border-color: var(--fc-button-border-color, #2C3E50); /* overrides :hover */\n  }\n.fc .fc-button-primary:focus {\n    box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);\n  }\n.fc .fc-button-primary:not(:disabled):active,\n  .fc .fc-button-primary:not(:disabled).fc-button-active {\n    color: #fff;\n    color: var(--fc-button-text-color, #fff);\n    background-color: #1a252f;\n    background-color: var(--fc-button-active-bg-color, #1a252f);\n    border-color: #151e27;\n    border-color: var(--fc-button-active-border-color, #151e27);\n  }\n.fc .fc-button-primary:not(:disabled):active:focus,\n  .fc .fc-button-primary:not(:disabled).fc-button-active:focus {\n    box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);\n  }\n.fc {\n\n  /* icons within buttons */\n\n}\n.fc .fc-button .fc-icon {\n    vertical-align: middle;\n    font-size: 1.5em; /* bump up the size (but don't make it bigger than line-height of button, which is 1.5em also) */\n  }\n.fc .fc-button-group {\n    position: relative;\n    display: inline-flex;\n    vertical-align: middle;\n  }\n.fc .fc-button-group > .fc-button {\n    position: relative;\n    flex: 1 1 auto;\n  }\n.fc .fc-button-group > .fc-button:hover {\n    z-index: 1;\n  }\n.fc .fc-button-group > .fc-button:focus,\n  .fc .fc-button-group > .fc-button:active,\n  .fc .fc-button-group > .fc-button.fc-button-active {\n    z-index: 1;\n  }\n.fc-direction-ltr .fc-button-group > .fc-button:not(:first-child) {\n    margin-left: -1px;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n.fc-direction-ltr .fc-button-group > .fc-button:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n.fc-direction-rtl .fc-button-group > .fc-button:not(:first-child) {\n    margin-right: -1px;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n.fc-direction-rtl .fc-button-group > .fc-button:not(:last-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n.fc .fc-toolbar {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n  }\n.fc .fc-toolbar.fc-header-toolbar {\n    margin-bottom: 1.5em;\n  }\n.fc .fc-toolbar.fc-footer-toolbar {\n    margin-top: 1.5em;\n  }\n.fc .fc-toolbar-title {\n    font-size: 1.75em;\n    margin: 0;\n  }\n.fc-direction-ltr .fc-toolbar > * > :not(:first-child) {\n    margin-left: .75em; /* space between */\n  }\n.fc-direction-rtl .fc-toolbar > * > :not(:first-child) {\n    margin-right: .75em; /* space between */\n  }\n.fc-direction-rtl .fc-toolbar-ltr { /* when the toolbar-chunk positioning system is explicitly left-to-right */\n    flex-direction: row-reverse;\n  }\n.fc .fc-scroller {\n    -webkit-overflow-scrolling: touch;\n    position: relative; /* for abs-positioned elements within */\n  }\n.fc .fc-scroller-liquid {\n    height: 100%;\n  }\n.fc .fc-scroller-liquid-absolute {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n  }\n.fc .fc-scroller-harness {\n    position: relative;\n    overflow: hidden;\n    direction: ltr;\n      /* hack for chrome computing the scroller's right/left wrong for rtl. undone below... */\n      /* TODO: demonstrate in codepen */\n  }\n.fc .fc-scroller-harness-liquid {\n    height: 100%;\n  }\n.fc-direction-rtl .fc-scroller-harness > .fc-scroller { /* undo above hack */\n    direction: rtl;\n  }\n.fc-theme-standard .fc-scrollgrid {\n    border: 1px solid #ddd;\n    border: 1px solid var(--fc-border-color, #ddd); /* bootstrap does this. match */\n  }\n.fc .fc-scrollgrid,\n    .fc .fc-scrollgrid table { /* all tables (self included) */\n      width: 100%; /* because tables don't normally do this */\n      table-layout: fixed;\n    }\n.fc .fc-scrollgrid table { /* inner tables */\n      border-top-style: hidden;\n      border-left-style: hidden;\n      border-right-style: hidden;\n    }\n.fc .fc-scrollgrid {\n\n    border-collapse: separate;\n    border-right-width: 0;\n    border-bottom-width: 0;\n\n  }\n.fc .fc-scrollgrid-liquid {\n    height: 100%;\n  }\n.fc .fc-scrollgrid-section { /* a <tr> */\n    height: 1px /* better than 0, for firefox */\n\n  }\n.fc .fc-scrollgrid-section > td {\n      height: 1px; /* needs a height so inner div within grow. better than 0, for firefox */\n    }\n.fc .fc-scrollgrid-section table {\n      height: 1px;\n        /* for most browsers, if a height isn't set on the table, can't do liquid-height within cells */\n        /* serves as a min-height. harmless */\n    }\n.fc .fc-scrollgrid-section-liquid {\n    height: auto\n\n  }\n.fc .fc-scrollgrid-section-liquid > td {\n      height: 100%; /* better than `auto`, for firefox */\n    }\n.fc .fc-scrollgrid-section > * {\n    border-top-width: 0;\n    border-left-width: 0;\n  }\n.fc .fc-scrollgrid-section-header > *,\n  .fc .fc-scrollgrid-section-footer > * {\n    border-bottom-width: 0;\n  }\n.fc .fc-scrollgrid-section-body table,\n  .fc .fc-scrollgrid-section-footer table {\n    border-bottom-style: hidden; /* head keeps its bottom border tho */\n  }\n.fc {\n\n  /* stickiness */\n\n}\n.fc .fc-scrollgrid-section-sticky > * {\n    background: #fff;\n    background: var(--fc-page-bg-color, #fff);\n    position: -webkit-sticky;\n    position: sticky;\n    z-index: 2; /* TODO: var */\n    /* TODO: box-shadow when sticking */\n  }\n.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {\n    top: 0; /* because border-sharing causes a gap at the top */\n      /* TODO: give safari -1. has bug */\n  }\n.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky > * {\n    bottom: 0; /* known bug: bottom-stickiness doesn't work in safari */\n  }\n.fc .fc-scrollgrid-sticky-shim { /* for horizontal scrollbar */\n    height: 1px; /* needs height to create scrollbars */\n    margin-bottom: -1px;\n  }\n.fc-sticky { /* no .fc wrap because used as child of body */\n  position: -webkit-sticky;\n  position: sticky;\n}\n.fc .fc-view-harness {\n    flex-grow: 1; /* because this harness is WITHIN the .fc's flexbox */\n    position: relative;\n  }\n.fc {\n\n  /* when the harness controls the height, make the view liquid */\n\n}\n.fc .fc-view-harness-active > .fc-view {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n  }\n.fc .fc-col-header-cell-cushion {\n    display: inline-block; /* x-browser for when sticky (when multi-tier header) */\n    padding: 2px 4px;\n  }\n.fc .fc-bg-event,\n  .fc .fc-non-business,\n  .fc .fc-highlight {\n    /* will always have a harness with position:relative/absolute, so absolutely expand */\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n  }\n.fc .fc-non-business {\n    background: rgba(215, 215, 215, 0.3);\n    background: var(--fc-non-business-color, rgba(215, 215, 215, 0.3));\n  }\n.fc .fc-bg-event {\n    background: rgb(143, 223, 130);\n    background: var(--fc-bg-event-color, rgb(143, 223, 130));\n    opacity: 0.3;\n    opacity: var(--fc-bg-event-opacity, 0.3)\n  }\n.fc .fc-bg-event .fc-event-title {\n      margin: .5em;\n      font-size: .85em;\n      font-size: var(--fc-small-font-size, .85em);\n      font-style: italic;\n    }\n.fc .fc-highlight {\n    background: rgba(188, 232, 241, 0.3);\n    background: var(--fc-highlight-color, rgba(188, 232, 241, 0.3));\n  }\n.fc .fc-cell-shaded,\n  .fc .fc-day-disabled {\n    background: rgba(208, 208, 208, 0.3);\n    background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n  }\n/* link resets */\n/* ---------------------------------------------------------------------------------------------------- */\na.fc-event,\na.fc-event:hover {\n  text-decoration: none;\n}\n/* cursor */\n.fc-event[href],\n.fc-event.fc-event-draggable {\n  cursor: pointer;\n}\n/* event text content */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event .fc-event-main {\n    position: relative;\n    z-index: 2;\n  }\n/* dragging */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event-dragging:not(.fc-event-selected) { /* MOUSE */\n    opacity: 0.75;\n  }\n.fc-event-dragging.fc-event-selected { /* TOUCH */\n    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);\n  }\n/* resizing */\n/* ---------------------------------------------------------------------------------------------------- */\n/* (subclasses should hone positioning for touch and non-touch) */\n.fc-event .fc-event-resizer {\n    display: none;\n    position: absolute;\n    z-index: 4;\n  }\n.fc-event:hover, /* MOUSE */\n.fc-event-selected { /* TOUCH */\n\n}\n.fc-event:hover .fc-event-resizer, .fc-event-selected .fc-event-resizer {\n    display: block;\n  }\n.fc-event-selected .fc-event-resizer {\n    border-radius: 4px;\n    border-radius: calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);\n    border-width: 1px;\n    border-width: var(--fc-event-resizer-dot-border-width, 1px);\n    width: 8px;\n    width: var(--fc-event-resizer-dot-total-width, 8px);\n    height: 8px;\n    height: var(--fc-event-resizer-dot-total-width, 8px);\n    border-style: solid;\n    border-color: inherit;\n    background: #fff;\n    background: var(--fc-page-bg-color, #fff)\n\n    /* expand hit area */\n\n  }\n.fc-event-selected .fc-event-resizer:before {\n      content: '';\n      position: absolute;\n      top: -20px;\n      left: -20px;\n      right: -20px;\n      bottom: -20px;\n    }\n/* selecting (always TOUCH) */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event-selected {\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2)\n\n  /* expand hit area (subclasses should expand) */\n\n}\n.fc-event-selected:before {\n    content: \"\";\n    position: absolute;\n    z-index: 3;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n  }\n.fc-event-selected {\n\n  /* dimmer effect */\n\n}\n.fc-event-selected:after {\n    content: \"\";\n    background: rgba(0, 0, 0, 0.25);\n    background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25));\n    position: absolute;\n    z-index: 1;\n\n    /* assume there's a border on all sides. overcome it. */\n    /* sometimes there's NOT a border, in which case the dimmer will go over */\n    /* an adjacent border, which looks fine. */\n    top: -1px;\n    left: -1px;\n    right: -1px;\n    bottom: -1px;\n  }\n/*\nA HORIZONTAL event\n*/\n.fc-h-event { /* allowed to be top-level */\n  display: block;\n  border: 1px solid #3788d8;\n  border: 1px solid var(--fc-event-border-color, #3788d8);\n  background-color: #3788d8;\n  background-color: var(--fc-event-bg-color, #3788d8)\n\n}\n.fc-h-event .fc-event-main {\n    color: #fff;\n    color: var(--fc-event-text-color, #fff);\n  }\n.fc-h-event .fc-event-main-frame {\n    display: flex; /* for make fc-event-title-container expand */\n  }\n.fc-h-event .fc-event-time {\n    max-width: 100%; /* clip overflow on this element */\n    overflow: hidden;\n  }\n.fc-h-event .fc-event-title-container { /* serves as a container for the sticky cushion */\n    flex-grow: 1;\n    flex-shrink: 1;\n    min-width: 0; /* important for allowing to shrink all the way */\n  }\n.fc-h-event .fc-event-title {\n    display: inline-block; /* need this to be sticky cross-browser */\n    vertical-align: top; /* for not messing up line-height */\n    left: 0;  /* for sticky */\n    right: 0; /* for sticky */\n    max-width: 100%; /* clip overflow on this element */\n    overflow: hidden;\n  }\n.fc-h-event.fc-event-selected:before {\n    /* expand hit area */\n    top: -10px;\n    bottom: -10px;\n  }\n/* adjust border and border-radius (if there is any) for non-start/end */\n.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),\n.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n  border-left-width: 0;\n}\n.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),\n.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n  border-right-width: 0;\n}\n/* resizers */\n.fc-h-event:not(.fc-event-selected) .fc-event-resizer {\n  top: 0;\n  bottom: 0;\n  width: 8px;\n  width: var(--fc-event-resizer-thickness, 8px);\n}\n.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,\n.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end {\n  cursor: w-resize;\n  left: -4px;\n  left: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,\n.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start {\n  cursor: e-resize;\n  right: -4px;\n  right: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n/* resizers for TOUCH */\n.fc-h-event.fc-event-selected .fc-event-resizer {\n  top: 50%;\n  margin-top: -4px;\n  margin-top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,\n.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end {\n  left: -4px;\n  left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,\n.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start {\n  right: -4px;\n  right: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n\n:root {\n  --fc-daygrid-event-dot-width: 8px;\n}\n.fc .fc-popover {\n    position: fixed;\n    top: 0; /* for when not positioned yet */\n    box-shadow: 0 2px 6px rgba(0,0,0,.15);\n  }\n.fc .fc-popover-header {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    align-items: center;\n    padding: 3px 4px;\n  }\n.fc .fc-popover-title {\n    margin: 0 2px;\n  }\n.fc .fc-popover-close {\n    cursor: pointer;\n    opacity: 0.65;\n    font-size: 1.1em;\n  }\n.fc-theme-standard .fc-popover {\n    border: 1px solid #ddd;\n    border: 1px solid var(--fc-border-color, #ddd);\n    background: #fff;\n    background: var(--fc-page-bg-color, #fff);\n  }\n.fc-theme-standard .fc-popover-header {\n    background: rgba(208, 208, 208, 0.3);\n    background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n  }\n/* help things clear margins of inner content */\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n  content: \"\";\n  clear: both;\n  display: table; }\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n  content: \"\";\n  clear: both;\n  display: table; }\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n    position: relative;\n    z-index: 1; /* container inner z-index's because <tr>s can't do it */\n  }\n.fc .fc-daygrid-day.fc-day-today {\n      background-color: rgba(255, 220, 40, 0.15);\n      background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n    }\n.fc .fc-daygrid-day-frame {\n    position: relative;\n    min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n  }\n.fc {\n\n  /* cell top */\n\n}\n.fc .fc-daygrid-day-top {\n    display: flex;\n    flex-direction: row-reverse;\n  }\n.fc .fc-day-other .fc-daygrid-day-top {\n    opacity: 0.3;\n  }\n.fc {\n\n  /* day number (within cell top) */\n\n}\n.fc .fc-daygrid-day-number {\n    position: relative;\n    z-index: 4;\n    padding: 4px;\n  }\n.fc {\n\n  /* event container */\n\n}\n.fc .fc-daygrid-day-events {\n    margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n  }\n.fc {\n\n  /* positioning for balanced vs natural */\n\n}\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n      position: absolute;\n      left: 0;\n      right: 0;\n    }\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n      position: relative; /* for containing abs positioned event harnesses */\n      min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n    }\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n  }\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n      margin-bottom: 1em;\n    }\n.fc {\n\n  /* event harness */\n\n}\n.fc .fc-daygrid-event-harness {\n    position: relative;\n  }\n.fc .fc-daygrid-event-harness-abs {\n    position: absolute;\n    top: 0; /* fallback coords for when cannot yet be computed */\n    left: 0; /* */\n    right: 0; /* */\n  }\n.fc .fc-daygrid-bg-harness {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n  }\n.fc {\n\n  /* bg content */\n\n}\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n.fc {\n\n  /* events */\n\n}\n.fc .fc-daygrid-event {\n    z-index: 6;\n    margin-top: 1px;\n  }\n.fc .fc-daygrid-event.fc-event-mirror {\n    z-index: 7;\n  }\n.fc {\n\n  /* cell bottom (within day-events) */\n\n}\n.fc .fc-daygrid-day-bottom {\n    font-size: .85em;\n    margin: 2px 3px 0;\n  }\n.fc .fc-daygrid-more-link {\n    position: relative;\n    z-index: 4;\n    cursor: pointer;\n  }\n.fc {\n\n  /* week number (within frame) */\n\n}\n.fc .fc-daygrid-week-number {\n    position: absolute;\n    z-index: 5;\n    top: 0;\n    padding: 2px;\n    min-width: 1.5em;\n    text-align: center;\n    background-color: rgba(208, 208, 208, 0.3);\n    background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n    color: #808080;\n    color: var(--fc-neutral-text-color, #808080);\n  }\n.fc {\n\n  /* popover */\n\n}\n.fc .fc-more-popover {\n    z-index: 8;\n  }\n.fc .fc-more-popover .fc-popover-body {\n    min-width: 220px;\n    padding: 10px;\n  }\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n  margin-left: 2px;\n}\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n  margin-right: 2px;\n}\n.fc-direction-ltr .fc-daygrid-week-number {\n    left: 0;\n    border-radius: 0 0 3px 0;\n  }\n.fc-direction-rtl .fc-daygrid-week-number {\n    right: 0;\n    border-radius: 0 0 0 3px;\n  }\n.fc-liquid-hack .fc-daygrid-day-frame {\n    position: static; /* will cause inner absolute stuff to expand to <td> */\n  }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n  position: relative; /* for z-indexes assigned later */\n  white-space: nowrap;\n  border-radius: 3px; /* dot event needs this to when selected */\n  font-size: .85em;\n  font-size: var(--fc-small-font-size, .85em);\n}\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n    font-weight: bold;\n  }\n.fc-daygrid-block-event .fc-event-time,\n  .fc-daygrid-block-event .fc-event-title {\n    padding: 1px;\n  }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n  display: flex;\n  align-items: center;\n  padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n    flex-grow: 1;\n    flex-shrink: 1;\n    min-width: 0; /* important for allowing to shrink all the way */\n    overflow: hidden;\n    font-weight: bold;\n  }\n.fc-daygrid-dot-event:hover,\n  .fc-daygrid-dot-event.fc-event-mirror {\n    background: rgba(0, 0, 0, 0.1);\n  }\n.fc-daygrid-dot-event.fc-event-selected:before {\n    /* expand hit area */\n    top: -10px;\n    bottom: -10px;\n  }\n.fc-daygrid-event-dot { /* the actual dot */\n  margin: 0 4px;\n  box-sizing: content-box;\n  width: 0;\n  height: 0;\n  border: 4px solid #3788d8;\n  border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);\n  border-radius: 4px;\n  border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n    margin-right: 3px;\n  }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n    margin-left: 3px;\n  }\n\n\n/*\nA VERTICAL event\n*/\n\n.fc-v-event { /* allowed to be top-level */\n  display: block;\n  border: 1px solid #3788d8;\n  border: 1px solid var(--fc-event-border-color, #3788d8);\n  background-color: #3788d8;\n  background-color: var(--fc-event-bg-color, #3788d8)\n\n}\n\n.fc-v-event .fc-event-main {\n    color: #fff;\n    color: var(--fc-event-text-color, #fff);\n    height: 100%;\n  }\n\n.fc-v-event .fc-event-main-frame {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n  }\n\n.fc-v-event .fc-event-time {\n    flex-grow: 0;\n    flex-shrink: 0;\n    max-height: 100%;\n    overflow: hidden;\n  }\n\n.fc-v-event .fc-event-title-container { /* a container for the sticky cushion */\n    flex-grow: 1;\n    flex-shrink: 1;\n    min-height: 0; /* important for allowing to shrink all the way */\n  }\n\n.fc-v-event .fc-event-title { /* will have fc-sticky on it */\n    top: 0;\n    bottom: 0;\n    max-height: 100%; /* clip overflow */\n    overflow: hidden;\n  }\n\n.fc-v-event:not(.fc-event-start) {\n    border-top-width: 0;\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n\n.fc-v-event:not(.fc-event-end) {\n    border-bottom-width: 0;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n.fc-v-event.fc-event-selected:before {\n    /* expand hit area */\n    left: -10px;\n    right: -10px;\n  }\n\n.fc-v-event {\n\n  /* resizer (mouse AND touch) */\n\n}\n\n.fc-v-event .fc-event-resizer-start {\n    cursor: n-resize;\n  }\n\n.fc-v-event .fc-event-resizer-end {\n    cursor: s-resize;\n  }\n\n.fc-v-event {\n\n  /* resizer for MOUSE */\n\n}\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer {\n      height: 8px;\n      height: var(--fc-event-resizer-thickness, 8px);\n      left: 0;\n      right: 0;\n    }\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start {\n      top: -4px;\n      top: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n    }\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end {\n      bottom: -4px;\n      bottom: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n    }\n\n.fc-v-event {\n\n  /* resizer for TOUCH (when event is \"selected\") */\n\n}\n\n.fc-v-event.fc-event-selected .fc-event-resizer {\n      left: 50%;\n      margin-left: -4px;\n      margin-left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n    }\n\n.fc-v-event.fc-event-selected .fc-event-resizer-start {\n      top: -4px;\n      top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n    }\n\n.fc-v-event.fc-event-selected .fc-event-resizer-end {\n      bottom: -4px;\n      bottom: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n    }\n.fc .fc-timegrid .fc-daygrid-body { /* the all-day daygrid within the timegrid view */\n    z-index: 2; /* put above the timegrid-body so that more-popover is above everything. TODO: better solution */\n  }\n.fc .fc-timegrid-divider {\n    padding: 0 0 2px; /* browsers get confused when you set height. use padding instead */\n  }\n.fc .fc-timegrid-body {\n    position: relative;\n    z-index: 1; /* scope the z-indexes of slots and cols */\n    min-height: 100%; /* fill height always, even when slat table doesn't grow */\n  }\n.fc .fc-timegrid-axis-chunk { /* for advanced ScrollGrid */\n    position: relative /* offset parent for now-indicator-container */\n\n  }\n.fc .fc-timegrid-axis-chunk > table {\n      position: relative;\n      z-index: 1; /* above the now-indicator-container */\n    }\n.fc .fc-timegrid-slots {\n    position: relative;\n    z-index: 1;\n  }\n.fc .fc-timegrid-slot { /* a <td> */\n    height: 1.5em;\n    border-bottom: 0 /* each cell owns its top border */\n  }\n.fc .fc-timegrid-slot:empty:before {\n      content: '\\00a0'; /* make sure there's at least an empty space to create height for height syncing */\n    }\n.fc .fc-timegrid-slot-minor {\n    border-top-style: dotted;\n  }\n.fc .fc-timegrid-slot-label-cushion {\n    display: inline-block;\n    white-space: nowrap;\n  }\n.fc .fc-timegrid-slot-label {\n    vertical-align: middle; /* vertical align the slots */\n  }\n.fc {\n\n\n  /* slots AND axis cells (top-left corner of view including the \"all-day\" text) */\n\n}\n.fc .fc-timegrid-axis-cushion,\n  .fc .fc-timegrid-slot-label-cushion {\n    padding: 0 4px;\n  }\n.fc {\n\n\n  /* axis cells (top-left corner of view including the \"all-day\" text) */\n  /* vertical align is more complicated, uses flexbox */\n\n}\n.fc .fc-timegrid-axis-frame-liquid {\n    height: 100%; /* will need liquid-hack in FF */\n  }\n.fc .fc-timegrid-axis-frame {\n    overflow: hidden;\n    display: flex;\n    align-items: center; /* vertical align */\n    justify-content: flex-end; /* horizontal align. matches text-align below */\n  }\n.fc .fc-timegrid-axis-cushion {\n    max-width: 60px; /* limits the width of the \"all-day\" text */\n    flex-shrink: 0; /* allows text to expand how it normally would, regardless of constrained width */\n  }\n.fc-direction-ltr .fc-timegrid-slot-label-frame {\n    text-align: right;\n  }\n.fc-direction-rtl .fc-timegrid-slot-label-frame {\n    text-align: left;\n  }\n.fc-liquid-hack .fc-timegrid-axis-frame-liquid {\n  height: auto;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  }\n.fc .fc-timegrid-col.fc-day-today {\n      background-color: rgba(255, 220, 40, 0.15);\n      background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n    }\n.fc .fc-timegrid-col-frame {\n    min-height: 100%; /* liquid-hack is below */\n    position: relative;\n  }\n.fc-liquid-hack .fc-timegrid-col-frame {\n  height: auto;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  }\n.fc-media-screen .fc-timegrid-cols {\n    position: absolute; /* no z-index. children will decide and go above slots */\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0\n  }\n.fc-media-screen .fc-timegrid-cols > table {\n      height: 100%;\n    }\n.fc-media-screen .fc-timegrid-col-bg,\n  .fc-media-screen .fc-timegrid-col-events,\n  .fc-media-screen .fc-timegrid-now-indicator-container {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n  }\n.fc-media-screen .fc-timegrid-event-harness {\n    position: absolute; /* top/left/right/bottom will all be set by JS */\n  }\n.fc {\n\n  /* bg */\n\n}\n.fc .fc-timegrid-col-bg {\n    z-index: 2; /* TODO: kill */\n  }\n.fc .fc-timegrid-col-bg .fc-non-business { z-index: 1 }\n.fc .fc-timegrid-col-bg .fc-bg-event { z-index: 2 }\n.fc .fc-timegrid-col-bg .fc-highlight { z-index: 3 }\n.fc .fc-timegrid-bg-harness {\n    position: absolute; /* top/bottom will be set by JS */\n    left: 0;\n    right: 0;\n  }\n.fc {\n\n  /* fg events */\n  /* (the mirror segs are put into a separate container with same classname, */\n  /* and they must be after the normal seg container to appear at a higher z-index) */\n\n}\n.fc .fc-timegrid-col-events {\n    z-index: 3;\n    /* child event segs have z-indexes that are scoped within this div */\n  }\n.fc {\n\n  /* now indicator */\n\n}\n.fc .fc-timegrid-now-indicator-container {\n    bottom: 0;\n    overflow: hidden; /* don't let overflow of lines/arrows cause unnecessary scrolling */\n    /* z-index is set on the individual elements */\n  }\n.fc-direction-ltr .fc-timegrid-col-events {\n    margin: 0 2.5% 0 2px;\n  }\n.fc-direction-rtl .fc-timegrid-col-events {\n    margin: 0 2px 0 2.5%;\n  }\n.fc-timegrid-event-harness-inset .fc-timegrid-event,\n.fc-timegrid-event.fc-event-mirror {\n  box-shadow: 0px 0px 0px 1px #fff;\n  box-shadow: 0px 0px 0px 1px var(--fc-page-bg-color, #fff);\n}\n.fc-timegrid-event { /* events need to be root */\n\n  font-size: .85em;\n\n  font-size: var(--fc-small-font-size, .85em);\n  border-radius: 3px\n\n}\n.fc-timegrid-event .fc-event-main {\n    padding: 1px 1px 0;\n  }\n.fc-timegrid-event .fc-event-time {\n    white-space: nowrap;\n    font-size: .85em;\n    font-size: var(--fc-small-font-size, .85em);\n    margin-bottom: 1px;\n  }\n.fc-timegrid-event-condensed .fc-event-main-frame {\n    flex-direction: row;\n    overflow: hidden;\n  }\n.fc-timegrid-event-condensed .fc-event-time:after {\n    content: '\\00a0-\\00a0'; /* dash surrounded by non-breaking spaces */\n  }\n.fc-timegrid-event-condensed .fc-event-title {\n    font-size: .85em;\n    font-size: var(--fc-small-font-size, .85em)\n  }\n.fc-media-screen .fc-timegrid-event {\n    position: absolute; /* absolute WITHIN the harness */\n    top: 0;\n    bottom: 1px; /* stay away from bottom slot line */\n    left: 0;\n    right: 0;\n  }\n.fc {\n\n  /* line */\n\n}\n.fc .fc-timegrid-now-indicator-line {\n    position: absolute;\n    z-index: 4;\n    left: 0;\n    right: 0;\n    border-style: solid;\n    border-color: red;\n    border-color: var(--fc-now-indicator-color, red);\n    border-width: 1px 0 0;\n  }\n.fc {\n\n  /* arrow */\n\n}\n.fc .fc-timegrid-now-indicator-arrow {\n    position: absolute;\n    z-index: 4;\n    margin-top: -5px; /* vertically center on top coordinate */\n    border-style: solid;\n    border-color: red;\n    border-color: var(--fc-now-indicator-color, red);\n  }\n.fc-direction-ltr .fc-timegrid-now-indicator-arrow {\n    left: 0;\n\n    /* triangle pointing right. TODO: mixin */\n    border-width: 5px 0 5px 6px;\n    border-top-color: transparent;\n    border-bottom-color: transparent;\n  }\n.fc-direction-rtl .fc-timegrid-now-indicator-arrow {\n    right: 0;\n\n    /* triangle pointing left. TODO: mixin */\n    border-width: 5px 6px 5px 0;\n    border-top-color: transparent;\n    border-bottom-color: transparent;\n  }\n\n\n:root {\n  --fc-list-event-dot-width: 10px;\n  --fc-list-event-hover-bg-color: #f5f5f5;\n}\n.fc-theme-standard .fc-list {\n    border: 1px solid #ddd;\n    border: 1px solid var(--fc-border-color, #ddd);\n  }\n.fc {\n\n  /* message when no events */\n\n}\n.fc .fc-list-empty {\n    background-color: rgba(208, 208, 208, 0.3);\n    background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n    height: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center; /* vertically aligns fc-list-empty-inner */\n  }\n.fc .fc-list-empty-cushion {\n    margin: 5em 0;\n  }\n.fc {\n\n  /* table within the scroller */\n  /* ---------------------------------------------------------------------------------------------------- */\n\n}\n.fc .fc-list-table {\n    width: 100%;\n    border-style: hidden; /* kill outer border on theme */\n  }\n.fc .fc-list-table tr > * {\n    border-left: 0;\n    border-right: 0;\n  }\n.fc .fc-list-sticky .fc-list-day > * { /* the cells */\n      position: -webkit-sticky;\n      position: sticky;\n      top: 0;\n      background: #fff;\n      background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */\n    }\n.fc .fc-list-table th {\n    padding: 0; /* uses an inner-wrapper instead... */\n  }\n.fc .fc-list-table td,\n  .fc .fc-list-day-cushion {\n    padding: 8px 14px;\n  }\n.fc {\n\n\n  /* date heading rows */\n  /* ---------------------------------------------------------------------------------------------------- */\n\n}\n.fc .fc-list-day-cushion:after {\n  content: \"\";\n  clear: both;\n  display: table; /* clear floating */\n    }\n.fc-theme-standard .fc-list-day-cushion {\n    background-color: rgba(208, 208, 208, 0.3);\n    background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n  }\n.fc-direction-ltr .fc-list-day-text,\n.fc-direction-rtl .fc-list-day-side-text {\n  float: left;\n}\n.fc-direction-ltr .fc-list-day-side-text,\n.fc-direction-rtl .fc-list-day-text {\n  float: right;\n}\n/* make the dot closer to the event title */\n.fc-direction-ltr .fc-list-table .fc-list-event-graphic { padding-right: 0 }\n.fc-direction-rtl .fc-list-table .fc-list-event-graphic { padding-left: 0 }\n.fc .fc-list-event.fc-event-forced-url {\n    cursor: pointer; /* whole row will seem clickable */\n  }\n.fc .fc-list-event:hover td {\n    background-color: #f5f5f5;\n    background-color: var(--fc-list-event-hover-bg-color, #f5f5f5);\n  }\n.fc {\n\n  /* shrink certain cols */\n\n}\n.fc .fc-list-event-graphic,\n  .fc .fc-list-event-time {\n    white-space: nowrap;\n    width: 1px;\n  }\n.fc .fc-list-event-dot {\n    display: inline-block;\n    box-sizing: content-box;\n    width: 0;\n    height: 0;\n    border: 5px solid #3788d8;\n    border: calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);\n    border-radius: 5px;\n    border-radius: calc(var(--fc-list-event-dot-width, 10px) / 2);\n  }\n.fc {\n\n  /* reset <a> styling */\n\n}\n.fc .fc-list-event-title a {\n    color: inherit;\n    text-decoration: none;\n  }\n.fc {\n\n  /* underline link when hovering over any part of row */\n\n}\n.fc .fc-list-event.fc-event-forced-url:hover a {\n    text-decoration: underline;\n  }\n\n\n\n  .fc-theme-bootstrap a:not([href]) {\n    color: inherit; /* natural color for navlinks */\n  }\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/fullcalendar/main.js",
    "content": "/*!\nFullCalendar v5.5.1\nDocs & License: https://fullcalendar.io/\n(c) 2020 Adam Shaw\n*/\nvar FullCalendar = (function (exports) {\n    'use strict';\n\n    /*! *****************************************************************************\n    Copyright (c) Microsoft Corporation.\n\n    Permission to use, copy, modify, and/or distribute this software for any\n    purpose with or without fee is hereby granted.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n    PERFORMANCE OF THIS SOFTWARE.\n    ***************************************************************************** */\n    /* global Reflect, Promise */\n\n    var extendStatics = function(d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n\n    function __extends(d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    }\n\n    var __assign = function() {\n        __assign = Object.assign || function __assign(t) {\n            for (var s, i = 1, n = arguments.length; i < n; i++) {\n                s = arguments[i];\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n            }\n            return t;\n        };\n        return __assign.apply(this, arguments);\n    };\n\n    function __spreadArrays() {\n        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n        for (var r = Array(s), k = 0, i = 0; i < il; i++)\n            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n                r[k] = a[j];\n        return r;\n    }\n\n    var n,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n);}function v(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return h(n,f,i,t,null)}function h(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function y(){return {current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l;}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return \"function\"==typeof n.type?_(n):null}function w(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return w(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!g.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(g);}function g(){for(var n;g.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r,f;n.__d&&(r=(o=(l=n).__v).__e,(f=l.__P)&&(u=[],(i=s({},o)).__v=o.__v+1,t=$(f,o,i,l.__n,void 0!==f.ownerSVGElement,null!=o.__h?[r]:null,u,null==r?_(o):r,o.__h),j(u,o),t!=r&&w(o)));});}function m(n,l,u,i,t,o,r,c,s,v){var y,d,w,k,g,m,b,A=i&&i.__k||e,P=A.length;for(s==f&&(s=null!=r?r[0]:P?_(i,0):null),u.__k=[],y=0;y<l.length;y++)if(null!=(k=u.__k[y]=null==(k=l[y])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k?h(null,k,null,null,k):Array.isArray(k)?h(p,{children:k},null,null,null):null!=k.__e||null!=k.__c?h(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(w=A[y])||w&&k.key==w.key&&k.type===w.type)A[y]=void 0;else for(d=0;d<P;d++){if((w=A[d])&&k.key==w.key&&k.type===w.type){A[d]=void 0;break}w=null;}g=$(n,k,w=w||f,t,o,r,c,s,v),(d=k.ref)&&w.ref!=d&&(b||(b=[]),w.ref&&b.push(w.ref,null,k),b.push(d,k.__c||g,k)),null!=g?(null==m&&(m=g),s=x(n,k,w,A,r,g,s),v||\"option\"!=u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&w.__e==s&&s.parentNode!=n&&(s=_(w));}if(u.__e=m,null!=r&&\"function\"!=typeof u.type)for(y=r.length;y--;)null!=r[y]&&a(r[y]);for(y=P;y--;)null!=A[y]&&L(A[y],A[y]);if(b)for(y=0;y<b.length;y++)I(b[y],b[++y],b[++y]);}function x(n,l,u,i,t,o,r){var f,e,c;if(void 0!==l.__d)f=l.__d,l.__d=void 0;else if(t==u||o!=r||null==o.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(o),f=null;else {for(e=r,c=0;(e=e.nextSibling)&&c<i.length;c+=2)if(e==o)break n;n.insertBefore(o,r),f=r;}return void 0!==f?f:o.nextSibling}function A(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||C(n,o,l[o],u[o],i);}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||c.test(l)?u:u+\"px\";}function C(n,l,u,i,t){var o,r,f;if(t&&\"className\"==l&&(l=\"class\"),\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else {if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l]);}else \"o\"===l[0]&&\"n\"===l[1]?(o=l!==(l=l.replace(/Capture$/,\"\")),(r=l.toLowerCase())in n&&(l=r),l=l.slice(2),n.l||(n.l={}),n.l[l+o]=u,f=o?N:z,u?i||n.addEventListener(l,f,o):n.removeEventListener(l,f,o)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&\"type\"!==l&&\"size\"!==l&&\"download\"!==l&&\"href\"!==l&&!t&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u&&!/^ar/.test(l)?n.removeAttribute(l):n.setAttribute(l,u));}function z(l){this.l[l.type+!1](n.event?n.event(l):l);}function N(l){this.l[l.type+!0](n.event?n.event(l):l);}function T(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,t.__e&&(\"function\"==typeof t.type&&t.__k.length>1&&T(t,l,u),l=x(u,t,t,n.__k,null,t.__e,l),\"function\"==typeof n.type&&(n.__d=l)));}function $(l,u,i,t,o,r,f,e,c){var a,v,h,y,_,w,k,g,b,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,b=(a=P.contextType)&&t[a.__c],x=a?b?b.props.value:a.__:t,i.__c?k=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new d(g,x),v.constructor=P,v.render=M),b&&b.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=s({},v.__s)),s(v.__s,P.getDerivedStateFromProps(g,v.__s))),y=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else {if(null==P.getDerivedStateFromProps&&g!==y&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,v.__h.length&&f.push(v),T(u,e,l);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(y,_,w);});}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=s(s({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(w=v.getSnapshotBeforeUpdate(y,_)),A=null!=a&&a.type==p&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),k&&(v.__E=v.__=null),v.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=H(i.__e,u,i,t,o,r,f,c);(a=n.diffed)&&a(u);}catch(l){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),n.__e(l,u,i);}return u.__e}function j(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u);});}catch(l){n.__e(l,u.__v);}});}function H(n,l,u,i,t,o,r,c){var s,a,v,h,y,p=u.props,d=l.props;if(t=\"svg\"===l.type||t,null!=o)for(s=0;s<o.length;s++)if(null!=(a=o[s])&&((null===l.type?3===a.nodeType:a.localName===l.type)||n==a)){n=a,o[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type,d.is&&{is:d.is}),o=null,c=!1;}if(null===l.type)p===d||c&&n.data===d||(n.data=d);else {if(null!=o&&(o=e.slice.call(n.childNodes)),v=(p=u.props||f).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"));}A(n,d,p,t,c),h?l.__k=[]:(s=l.props.children,m(n,Array.isArray(s)?s:[s],l,u,i,\"foreignObject\"!==l.type&&t,o,r,f,c)),c||(\"value\"in d&&void 0!==(s=d.value)&&(s!==n.value||\"progress\"===l.type&&!s)&&C(n,\"value\",s,p.value,!1),\"checked\"in d&&void 0!==(s=d.checked)&&s!==n.checked&&C(n,\"checked\",s,p.checked,!1));}return n}function I(l,u,i){try{\"function\"==typeof l?l(u):l.current=u;}catch(l){n.__e(l,i);}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||I(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(l){n.__e(l,u);}t.base=t.__P=null;}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&a(o);}function M(n,l,u){return this.constructor(n,u)}function O(l,u,i){var t,r,c;n.__&&n.__(l,u),r=(t=i===o)?null:i&&i.__k||u.__k,l=v(p,null,[l]),c=[],$(u,(t?u:i||u).__k=l,r||f,f,void 0!==u.ownerSVGElement,i&&!t?[i]:r?null:u.childNodes.length?e.slice.call(u.childNodes):null,c,i||f,t),j(c,l);}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n,u,i){return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k);},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t,o=l.__h;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return l.__h=o,u.__E=u}catch(l){n=l;}throw n},__v:0},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this));},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this));},d.prototype.render=p,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,o=f,r=0;\n\n    var globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support\n    if (globalObj.FullCalendarVDom) {\n        console.warn('FullCalendar VDOM already loaded');\n    }\n    else {\n        globalObj.FullCalendarVDom = {\n            Component: d,\n            createElement: v,\n            render: O,\n            createRef: y,\n            Fragment: p,\n            createContext: createContext,\n            flushToDom: flushToDom,\n            unmountComponentAtNode: unmountComponentAtNode,\n        };\n    }\n    // HACKS...\n    // TODO: lock version\n    // TODO: link gh issues\n    function flushToDom() {\n        var oldDebounceRendering = n.debounceRendering; // orig\n        var callbackQ = [];\n        function execCallbackSync(callback) {\n            callbackQ.push(callback);\n        }\n        n.debounceRendering = execCallbackSync;\n        O(v(FakeComponent, {}), document.createElement('div'));\n        while (callbackQ.length) {\n            callbackQ.shift()();\n        }\n        n.debounceRendering = oldDebounceRendering;\n    }\n    var FakeComponent = /** @class */ (function (_super) {\n        __extends(FakeComponent, _super);\n        function FakeComponent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        FakeComponent.prototype.render = function () { return v('div', {}); };\n        FakeComponent.prototype.componentDidMount = function () { this.setState({}); };\n        return FakeComponent;\n    }(d));\n    function createContext(defaultValue) {\n        var ContextType = B(defaultValue);\n        var origProvider = ContextType.Provider;\n        ContextType.Provider = function () {\n            var _this = this;\n            var isNew = !this.getChildContext;\n            var children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n            if (isNew) {\n                var subs_1 = [];\n                this.shouldComponentUpdate = function (_props) {\n                    if (_this.props.value !== _props.value) {\n                        subs_1.forEach(function (c) {\n                            c.context = _props.value;\n                            c.forceUpdate();\n                        });\n                    }\n                };\n                this.sub = function (c) {\n                    subs_1.push(c);\n                    var old = c.componentWillUnmount;\n                    c.componentWillUnmount = function () {\n                        subs_1.splice(subs_1.indexOf(c), 1);\n                        old && old.call(c);\n                    };\n                };\n            }\n            return children;\n        };\n        return ContextType;\n    }\n    function unmountComponentAtNode(node) {\n        O(null, node);\n    }\n\n    // no public types yet. when there are, export from:\n    // import {} from './api-type-deps'\n    var EventSourceApi = /** @class */ (function () {\n        function EventSourceApi(context, internalEventSource) {\n            this.context = context;\n            this.internalEventSource = internalEventSource;\n        }\n        EventSourceApi.prototype.remove = function () {\n            this.context.dispatch({\n                type: 'REMOVE_EVENT_SOURCE',\n                sourceId: this.internalEventSource.sourceId,\n            });\n        };\n        EventSourceApi.prototype.refetch = function () {\n            this.context.dispatch({\n                type: 'FETCH_EVENT_SOURCES',\n                sourceIds: [this.internalEventSource.sourceId],\n            });\n        };\n        Object.defineProperty(EventSourceApi.prototype, \"id\", {\n            get: function () {\n                return this.internalEventSource.publicId;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventSourceApi.prototype, \"url\", {\n            get: function () {\n                return this.internalEventSource.meta.url;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventSourceApi.prototype, \"format\", {\n            get: function () {\n                return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return EventSourceApi;\n    }());\n\n    function removeElement(el) {\n        if (el.parentNode) {\n            el.parentNode.removeChild(el);\n        }\n    }\n    // Querying\n    // ----------------------------------------------------------------------------------------------------------------\n    function elementClosest(el, selector) {\n        if (el.closest) {\n            return el.closest(selector);\n            // really bad fallback for IE\n            // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n        }\n        if (!document.documentElement.contains(el)) {\n            return null;\n        }\n        do {\n            if (elementMatches(el, selector)) {\n                return el;\n            }\n            el = (el.parentElement || el.parentNode);\n        } while (el !== null && el.nodeType === 1);\n        return null;\n    }\n    function elementMatches(el, selector) {\n        var method = el.matches || el.matchesSelector || el.msMatchesSelector;\n        return method.call(el, selector);\n    }\n    // accepts multiple subject els\n    // returns a real array. good for methods like forEach\n    // TODO: accept the document\n    function findElements(container, selector) {\n        var containers = container instanceof HTMLElement ? [container] : container;\n        var allMatches = [];\n        for (var i = 0; i < containers.length; i += 1) {\n            var matches = containers[i].querySelectorAll(selector);\n            for (var j = 0; j < matches.length; j += 1) {\n                allMatches.push(matches[j]);\n            }\n        }\n        return allMatches;\n    }\n    // accepts multiple subject els\n    // only queries direct child elements // TODO: rename to findDirectChildren!\n    function findDirectChildren(parent, selector) {\n        var parents = parent instanceof HTMLElement ? [parent] : parent;\n        var allMatches = [];\n        for (var i = 0; i < parents.length; i += 1) {\n            var childNodes = parents[i].children; // only ever elements\n            for (var j = 0; j < childNodes.length; j += 1) {\n                var childNode = childNodes[j];\n                if (!selector || elementMatches(childNode, selector)) {\n                    allMatches.push(childNode);\n                }\n            }\n        }\n        return allMatches;\n    }\n    // Style\n    // ----------------------------------------------------------------------------------------------------------------\n    var PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\n    function applyStyle(el, props) {\n        for (var propName in props) {\n            applyStyleProp(el, propName, props[propName]);\n        }\n    }\n    function applyStyleProp(el, name, val) {\n        if (val == null) {\n            el.style[name] = '';\n        }\n        else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n            el.style[name] = val + \"px\";\n        }\n        else {\n            el.style[name] = val;\n        }\n    }\n\n    // Stops a mouse/touch event from doing it's native browser action\n    function preventDefault(ev) {\n        ev.preventDefault();\n    }\n    // Event Delegation\n    // ----------------------------------------------------------------------------------------------------------------\n    function buildDelegationHandler(selector, handler) {\n        return function (ev) {\n            var matchedChild = elementClosest(ev.target, selector);\n            if (matchedChild) {\n                handler.call(matchedChild, ev, matchedChild);\n            }\n        };\n    }\n    function listenBySelector(container, eventType, selector, handler) {\n        var attachedHandler = buildDelegationHandler(selector, handler);\n        container.addEventListener(eventType, attachedHandler);\n        return function () {\n            container.removeEventListener(eventType, attachedHandler);\n        };\n    }\n    function listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n        var currentMatchedChild;\n        return listenBySelector(container, 'mouseover', selector, function (mouseOverEv, matchedChild) {\n            if (matchedChild !== currentMatchedChild) {\n                currentMatchedChild = matchedChild;\n                onMouseEnter(mouseOverEv, matchedChild);\n                var realOnMouseLeave_1 = function (mouseLeaveEv) {\n                    currentMatchedChild = null;\n                    onMouseLeave(mouseLeaveEv, matchedChild);\n                    matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n                };\n                // listen to the next mouseleave, and then unattach\n                matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n            }\n        });\n    }\n    // Animation\n    // ----------------------------------------------------------------------------------------------------------------\n    var transitionEventNames = [\n        'webkitTransitionEnd',\n        'otransitionend',\n        'oTransitionEnd',\n        'msTransitionEnd',\n        'transitionend',\n    ];\n    // triggered only when the next single subsequent transition finishes\n    function whenTransitionDone(el, callback) {\n        var realCallback = function (ev) {\n            callback(ev);\n            transitionEventNames.forEach(function (eventName) {\n                el.removeEventListener(eventName, realCallback);\n            });\n        };\n        transitionEventNames.forEach(function (eventName) {\n            el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n        });\n    }\n\n    var guidNumber = 0;\n    function guid() {\n        guidNumber += 1;\n        return String(guidNumber);\n    }\n    /* FullCalendar-specific DOM Utilities\n    ----------------------------------------------------------------------------------------------------------------------*/\n    // Make the mouse cursor express that an event is not allowed in the current area\n    function disableCursor() {\n        document.body.classList.add('fc-not-allowed');\n    }\n    // Returns the mouse cursor to its original look\n    function enableCursor() {\n        document.body.classList.remove('fc-not-allowed');\n    }\n    /* Selection\n    ----------------------------------------------------------------------------------------------------------------------*/\n    function preventSelection(el) {\n        el.classList.add('fc-unselectable');\n        el.addEventListener('selectstart', preventDefault);\n    }\n    function allowSelection(el) {\n        el.classList.remove('fc-unselectable');\n        el.removeEventListener('selectstart', preventDefault);\n    }\n    /* Context Menu\n    ----------------------------------------------------------------------------------------------------------------------*/\n    function preventContextMenu(el) {\n        el.addEventListener('contextmenu', preventDefault);\n    }\n    function allowContextMenu(el) {\n        el.removeEventListener('contextmenu', preventDefault);\n    }\n    function parseFieldSpecs(input) {\n        var specs = [];\n        var tokens = [];\n        var i;\n        var token;\n        if (typeof input === 'string') {\n            tokens = input.split(/\\s*,\\s*/);\n        }\n        else if (typeof input === 'function') {\n            tokens = [input];\n        }\n        else if (Array.isArray(input)) {\n            tokens = input;\n        }\n        for (i = 0; i < tokens.length; i += 1) {\n            token = tokens[i];\n            if (typeof token === 'string') {\n                specs.push(token.charAt(0) === '-' ?\n                    { field: token.substring(1), order: -1 } :\n                    { field: token, order: 1 });\n            }\n            else if (typeof token === 'function') {\n                specs.push({ func: token });\n            }\n        }\n        return specs;\n    }\n    function compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n        var i;\n        var cmp;\n        for (i = 0; i < fieldSpecs.length; i += 1) {\n            cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n            if (cmp) {\n                return cmp;\n            }\n        }\n        return 0;\n    }\n    function compareByFieldSpec(obj0, obj1, fieldSpec) {\n        if (fieldSpec.func) {\n            return fieldSpec.func(obj0, obj1);\n        }\n        return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n            * (fieldSpec.order || 1);\n    }\n    function flexibleCompare(a, b) {\n        if (!a && !b) {\n            return 0;\n        }\n        if (b == null) {\n            return -1;\n        }\n        if (a == null) {\n            return 1;\n        }\n        if (typeof a === 'string' || typeof b === 'string') {\n            return String(a).localeCompare(String(b));\n        }\n        return a - b;\n    }\n    /* String Utilities\n    ----------------------------------------------------------------------------------------------------------------------*/\n    function padStart(val, len) {\n        var s = String(val);\n        return '000'.substr(0, len - s.length) + s;\n    }\n    /* Number Utilities\n    ----------------------------------------------------------------------------------------------------------------------*/\n    function compareNumbers(a, b) {\n        return a - b;\n    }\n    function isInt(n) {\n        return n % 1 === 0;\n    }\n    /* FC-specific DOM dimension stuff\n    ----------------------------------------------------------------------------------------------------------------------*/\n    function computeSmallestCellWidth(cellEl) {\n        var allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n        var contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n        if (!allWidthEl) {\n            throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n        }\n        if (!contentWidthEl) {\n            throw new Error('needs fc-scrollgrid-shrink-cushion className');\n        }\n        return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n            contentWidthEl.getBoundingClientRect().width;\n    }\n\n    var DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n    // Adding\n    function addWeeks(m, n) {\n        var a = dateToUtcArray(m);\n        a[2] += n * 7;\n        return arrayToUtcDate(a);\n    }\n    function addDays(m, n) {\n        var a = dateToUtcArray(m);\n        a[2] += n;\n        return arrayToUtcDate(a);\n    }\n    function addMs(m, n) {\n        var a = dateToUtcArray(m);\n        a[6] += n;\n        return arrayToUtcDate(a);\n    }\n    // Diffing (all return floats)\n    // TODO: why not use ranges?\n    function diffWeeks(m0, m1) {\n        return diffDays(m0, m1) / 7;\n    }\n    function diffDays(m0, m1) {\n        return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n    }\n    function diffHours(m0, m1) {\n        return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n    }\n    function diffMinutes(m0, m1) {\n        return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n    }\n    function diffSeconds(m0, m1) {\n        return (m1.valueOf() - m0.valueOf()) / 1000;\n    }\n    function diffDayAndTime(m0, m1) {\n        var m0day = startOfDay(m0);\n        var m1day = startOfDay(m1);\n        return {\n            years: 0,\n            months: 0,\n            days: Math.round(diffDays(m0day, m1day)),\n            milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n        };\n    }\n    // Diffing Whole Units\n    function diffWholeWeeks(m0, m1) {\n        var d = diffWholeDays(m0, m1);\n        if (d !== null && d % 7 === 0) {\n            return d / 7;\n        }\n        return null;\n    }\n    function diffWholeDays(m0, m1) {\n        if (timeAsMs(m0) === timeAsMs(m1)) {\n            return Math.round(diffDays(m0, m1));\n        }\n        return null;\n    }\n    // Start-Of\n    function startOfDay(m) {\n        return arrayToUtcDate([\n            m.getUTCFullYear(),\n            m.getUTCMonth(),\n            m.getUTCDate(),\n        ]);\n    }\n    function startOfHour(m) {\n        return arrayToUtcDate([\n            m.getUTCFullYear(),\n            m.getUTCMonth(),\n            m.getUTCDate(),\n            m.getUTCHours(),\n        ]);\n    }\n    function startOfMinute(m) {\n        return arrayToUtcDate([\n            m.getUTCFullYear(),\n            m.getUTCMonth(),\n            m.getUTCDate(),\n            m.getUTCHours(),\n            m.getUTCMinutes(),\n        ]);\n    }\n    function startOfSecond(m) {\n        return arrayToUtcDate([\n            m.getUTCFullYear(),\n            m.getUTCMonth(),\n            m.getUTCDate(),\n            m.getUTCHours(),\n            m.getUTCMinutes(),\n            m.getUTCSeconds(),\n        ]);\n    }\n    // Week Computation\n    function weekOfYear(marker, dow, doy) {\n        var y = marker.getUTCFullYear();\n        var w = weekOfGivenYear(marker, y, dow, doy);\n        if (w < 1) {\n            return weekOfGivenYear(marker, y - 1, dow, doy);\n        }\n        var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n        if (nextW >= 1) {\n            return Math.min(w, nextW);\n        }\n        return w;\n    }\n    function weekOfGivenYear(marker, year, dow, doy) {\n        var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n        var dayStart = startOfDay(marker);\n        var days = Math.round(diffDays(firstWeekStart, dayStart));\n        return Math.floor(days / 7) + 1; // zero-indexed\n    }\n    // start-of-first-week - start-of-year\n    function firstWeekOffset(year, dow, doy) {\n        // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n        var fwd = 7 + dow - doy;\n        // first-week day local weekday -- which local weekday is fwd\n        var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n        return -fwdlw + fwd - 1;\n    }\n    // Array Conversion\n    function dateToLocalArray(date) {\n        return [\n            date.getFullYear(),\n            date.getMonth(),\n            date.getDate(),\n            date.getHours(),\n            date.getMinutes(),\n            date.getSeconds(),\n            date.getMilliseconds(),\n        ];\n    }\n    function arrayToLocalDate(a) {\n        return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n        a[3] || 0, a[4] || 0, a[5] || 0);\n    }\n    function dateToUtcArray(date) {\n        return [\n            date.getUTCFullYear(),\n            date.getUTCMonth(),\n            date.getUTCDate(),\n            date.getUTCHours(),\n            date.getUTCMinutes(),\n            date.getUTCSeconds(),\n            date.getUTCMilliseconds(),\n        ];\n    }\n    function arrayToUtcDate(a) {\n        // according to web standards (and Safari), a month index is required.\n        // massage if only given a year.\n        if (a.length === 1) {\n            a = a.concat([0]);\n        }\n        return new Date(Date.UTC.apply(Date, a));\n    }\n    // Other Utils\n    function isValidDate(m) {\n        return !isNaN(m.valueOf());\n    }\n    function timeAsMs(m) {\n        return m.getUTCHours() * 1000 * 60 * 60 +\n            m.getUTCMinutes() * 1000 * 60 +\n            m.getUTCSeconds() * 1000 +\n            m.getUTCMilliseconds();\n    }\n\n    function createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n        return {\n            instanceId: guid(),\n            defId: defId,\n            range: range,\n            forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n            forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,\n        };\n    }\n\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    // Merges an array of objects into a single object.\n    // The second argument allows for an array of property names who's object values will be merged together.\n    function mergeProps(propObjs, complexPropsMap) {\n        var dest = {};\n        if (complexPropsMap) {\n            for (var name_1 in complexPropsMap) {\n                var complexObjs = [];\n                // collect the trailing object values, stopping when a non-object is discovered\n                for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n                    var val = propObjs[i][name_1];\n                    if (typeof val === 'object' && val) { // non-null object\n                        complexObjs.unshift(val);\n                    }\n                    else if (val !== undefined) {\n                        dest[name_1] = val; // if there were no objects, this value will be used\n                        break;\n                    }\n                }\n                // if the trailing values were objects, use the merged value\n                if (complexObjs.length) {\n                    dest[name_1] = mergeProps(complexObjs);\n                }\n            }\n        }\n        // copy values into the destination, going from last to first\n        for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n            var props = propObjs[i];\n            for (var name_2 in props) {\n                if (!(name_2 in dest)) { // if already assigned by previous props or complex props, don't reassign\n                    dest[name_2] = props[name_2];\n                }\n            }\n        }\n        return dest;\n    }\n    function filterHash(hash, func) {\n        var filtered = {};\n        for (var key in hash) {\n            if (func(hash[key], key)) {\n                filtered[key] = hash[key];\n            }\n        }\n        return filtered;\n    }\n    function mapHash(hash, func) {\n        var newHash = {};\n        for (var key in hash) {\n            newHash[key] = func(hash[key], key);\n        }\n        return newHash;\n    }\n    function arrayToHash(a) {\n        var hash = {};\n        for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n            var item = a_1[_i];\n            hash[item] = true;\n        }\n        return hash;\n    }\n    function buildHashFromArray(a, func) {\n        var hash = {};\n        for (var i = 0; i < a.length; i += 1) {\n            var tuple = func(a[i], i);\n            hash[tuple[0]] = tuple[1];\n        }\n        return hash;\n    }\n    function hashValuesToArray(obj) {\n        var a = [];\n        for (var key in obj) {\n            a.push(obj[key]);\n        }\n        return a;\n    }\n    function isPropsEqual(obj0, obj1) {\n        if (obj0 === obj1) {\n            return true;\n        }\n        for (var key in obj0) {\n            if (hasOwnProperty.call(obj0, key)) {\n                if (!(key in obj1)) {\n                    return false;\n                }\n            }\n        }\n        for (var key in obj1) {\n            if (hasOwnProperty.call(obj1, key)) {\n                if (obj0[key] !== obj1[key]) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    function getUnequalProps(obj0, obj1) {\n        var keys = [];\n        for (var key in obj0) {\n            if (hasOwnProperty.call(obj0, key)) {\n                if (!(key in obj1)) {\n                    keys.push(key);\n                }\n            }\n        }\n        for (var key in obj1) {\n            if (hasOwnProperty.call(obj1, key)) {\n                if (obj0[key] !== obj1[key]) {\n                    keys.push(key);\n                }\n            }\n        }\n        return keys;\n    }\n    function compareObjs(oldProps, newProps, equalityFuncs) {\n        if (equalityFuncs === void 0) { equalityFuncs = {}; }\n        if (oldProps === newProps) {\n            return true;\n        }\n        for (var key in newProps) {\n            if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;\n            else {\n                return false;\n            }\n        }\n        // check for props that were omitted in the new\n        for (var key in oldProps) {\n            if (!(key in newProps)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /*\n    assumed \"true\" equality for handler names like \"onReceiveSomething\"\n    */\n    function isObjValsEqual(val0, val1, comparator) {\n        if (val0 === val1 || comparator === true) {\n            return true;\n        }\n        if (comparator) {\n            return comparator(val0, val1);\n        }\n        return false;\n    }\n    function collectFromHash(hash, startIndex, endIndex, step) {\n        if (startIndex === void 0) { startIndex = 0; }\n        if (step === void 0) { step = 1; }\n        var res = [];\n        if (endIndex == null) {\n            endIndex = Object.keys(hash).length;\n        }\n        for (var i = startIndex; i < endIndex; i += step) {\n            var val = hash[i];\n            if (val !== undefined) { // will disregard undefined for sparse arrays\n                res.push(val);\n            }\n        }\n        return res;\n    }\n\n    function parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n        for (var i = 0; i < recurringTypes.length; i += 1) {\n            var parsed = recurringTypes[i].parse(refined, dateEnv);\n            if (parsed) {\n                var allDay = refined.allDay;\n                if (allDay == null) {\n                    allDay = defaultAllDay;\n                    if (allDay == null) {\n                        allDay = parsed.allDayGuess;\n                        if (allDay == null) {\n                            allDay = false;\n                        }\n                    }\n                }\n                return {\n                    allDay: allDay,\n                    duration: parsed.duration,\n                    typeData: parsed.typeData,\n                    typeId: i,\n                };\n            }\n        }\n        return null;\n    }\n    function expandRecurring(eventStore, framingRange, context) {\n        var dateEnv = context.dateEnv, pluginHooks = context.pluginHooks, options = context.options;\n        var defs = eventStore.defs, instances = eventStore.instances;\n        // remove existing recurring instances\n        // TODO: bad. always expand events as a second step\n        instances = filterHash(instances, function (instance) { return !defs[instance.defId].recurringDef; });\n        for (var defId in defs) {\n            var def = defs[defId];\n            if (def.recurringDef) {\n                var duration = def.recurringDef.duration;\n                if (!duration) {\n                    duration = def.allDay ?\n                        options.defaultAllDayEventDuration :\n                        options.defaultTimedEventDuration;\n                }\n                var starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n                for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n                    var start = starts_1[_i];\n                    var instance = createEventInstance(defId, {\n                        start: start,\n                        end: dateEnv.add(start, duration),\n                    });\n                    instances[instance.instanceId] = instance;\n                }\n            }\n        }\n        return { defs: defs, instances: instances };\n    }\n    /*\n    Event MUST have a recurringDef\n    */\n    function expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n        var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n        var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n            start: dateEnv.subtract(framingRange.start, duration),\n            end: framingRange.end,\n        }, dateEnv);\n        // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n        if (eventDef.allDay) {\n            markers = markers.map(startOfDay);\n        }\n        return markers;\n    }\n\n    var INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\n    var PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n    // Parsing and Creation\n    function createDuration(input, unit) {\n        var _a;\n        if (typeof input === 'string') {\n            return parseString(input);\n        }\n        if (typeof input === 'object' && input) { // non-null object\n            return parseObject(input);\n        }\n        if (typeof input === 'number') {\n            return parseObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n        }\n        return null;\n    }\n    function parseString(s) {\n        var m = PARSE_RE.exec(s);\n        if (m) {\n            var sign = m[1] ? -1 : 1;\n            return {\n                years: 0,\n                months: 0,\n                days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n                milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n                    (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n                    (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n                    (m[6] ? parseInt(m[6], 10) : 0) // ms\n                ),\n            };\n        }\n        return null;\n    }\n    function parseObject(obj) {\n        var duration = {\n            years: obj.years || obj.year || 0,\n            months: obj.months || obj.month || 0,\n            days: obj.days || obj.day || 0,\n            milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n                (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n                (obj.seconds || obj.second || 0) * 1000 + // seconds\n                (obj.milliseconds || obj.millisecond || obj.ms || 0),\n        };\n        var weeks = obj.weeks || obj.week;\n        if (weeks) {\n            duration.days += weeks * 7;\n            duration.specifiedWeeks = true;\n        }\n        return duration;\n    }\n    // Equality\n    function durationsEqual(d0, d1) {\n        return d0.years === d1.years &&\n            d0.months === d1.months &&\n            d0.days === d1.days &&\n            d0.milliseconds === d1.milliseconds;\n    }\n    function asCleanDays(dur) {\n        if (!dur.years && !dur.months && !dur.milliseconds) {\n            return dur.days;\n        }\n        return 0;\n    }\n    // Simple Math\n    function addDurations(d0, d1) {\n        return {\n            years: d0.years + d1.years,\n            months: d0.months + d1.months,\n            days: d0.days + d1.days,\n            milliseconds: d0.milliseconds + d1.milliseconds,\n        };\n    }\n    function subtractDurations(d1, d0) {\n        return {\n            years: d1.years - d0.years,\n            months: d1.months - d0.months,\n            days: d1.days - d0.days,\n            milliseconds: d1.milliseconds - d0.milliseconds,\n        };\n    }\n    function multiplyDuration(d, n) {\n        return {\n            years: d.years * n,\n            months: d.months * n,\n            days: d.days * n,\n            milliseconds: d.milliseconds * n,\n        };\n    }\n    // Conversions\n    // \"Rough\" because they are based on average-case Gregorian months/years\n    function asRoughYears(dur) {\n        return asRoughDays(dur) / 365;\n    }\n    function asRoughMonths(dur) {\n        return asRoughDays(dur) / 30;\n    }\n    function asRoughDays(dur) {\n        return asRoughMs(dur) / 864e5;\n    }\n    function asRoughMinutes(dur) {\n        return asRoughMs(dur) / (1000 * 60);\n    }\n    function asRoughSeconds(dur) {\n        return asRoughMs(dur) / 1000;\n    }\n    function asRoughMs(dur) {\n        return dur.years * (365 * 864e5) +\n            dur.months * (30 * 864e5) +\n            dur.days * 864e5 +\n            dur.milliseconds;\n    }\n    // Advanced Math\n    function wholeDivideDurations(numerator, denominator) {\n        var res = null;\n        for (var i = 0; i < INTERNAL_UNITS.length; i += 1) {\n            var unit = INTERNAL_UNITS[i];\n            if (denominator[unit]) {\n                var localRes = numerator[unit] / denominator[unit];\n                if (!isInt(localRes) || (res !== null && res !== localRes)) {\n                    return null;\n                }\n                res = localRes;\n            }\n            else if (numerator[unit]) {\n                // needs to divide by something but can't!\n                return null;\n            }\n        }\n        return res;\n    }\n    function greatestDurationDenominator(dur) {\n        var ms = dur.milliseconds;\n        if (ms) {\n            if (ms % 1000 !== 0) {\n                return { unit: 'millisecond', value: ms };\n            }\n            if (ms % (1000 * 60) !== 0) {\n                return { unit: 'second', value: ms / 1000 };\n            }\n            if (ms % (1000 * 60 * 60) !== 0) {\n                return { unit: 'minute', value: ms / (1000 * 60) };\n            }\n            if (ms) {\n                return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n            }\n        }\n        if (dur.days) {\n            if (dur.specifiedWeeks && dur.days % 7 === 0) {\n                return { unit: 'week', value: dur.days / 7 };\n            }\n            return { unit: 'day', value: dur.days };\n        }\n        if (dur.months) {\n            return { unit: 'month', value: dur.months };\n        }\n        if (dur.years) {\n            return { unit: 'year', value: dur.years };\n        }\n        return { unit: 'millisecond', value: 0 };\n    }\n\n    // timeZoneOffset is in minutes\n    function buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n        if (stripZeroTime === void 0) { stripZeroTime = false; }\n        var s = marker.toISOString();\n        s = s.replace('.000', '');\n        if (stripZeroTime) {\n            s = s.replace('T00:00:00Z', '');\n        }\n        if (s.length > 10) { // time part wasn't stripped, can add timezone info\n            if (timeZoneOffset == null) {\n                s = s.replace('Z', '');\n            }\n            else if (timeZoneOffset !== 0) {\n                s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n            }\n            // otherwise, its UTC-0 and we want to keep the Z\n        }\n        return s;\n    }\n    // formats the date, but with no time part\n    // TODO: somehow merge with buildIsoString and stripZeroTime\n    // TODO: rename. omit \"string\"\n    function formatDayString(marker) {\n        return marker.toISOString().replace(/T.*$/, '');\n    }\n    // TODO: use Date::toISOString and use everything after the T?\n    function formatIsoTimeString(marker) {\n        return padStart(marker.getUTCHours(), 2) + ':' +\n            padStart(marker.getUTCMinutes(), 2) + ':' +\n            padStart(marker.getUTCSeconds(), 2);\n    }\n    function formatTimeZoneOffset(minutes, doIso) {\n        if (doIso === void 0) { doIso = false; }\n        var sign = minutes < 0 ? '-' : '+';\n        var abs = Math.abs(minutes);\n        var hours = Math.floor(abs / 60);\n        var mins = Math.round(abs % 60);\n        if (doIso) {\n            return sign + padStart(hours, 2) + \":\" + padStart(mins, 2);\n        }\n        return \"GMT\" + sign + hours + (mins ? \":\" + padStart(mins, 2) : '');\n    }\n\n    // TODO: new util arrayify?\n    function removeExact(array, exactVal) {\n        var removeCnt = 0;\n        var i = 0;\n        while (i < array.length) {\n            if (array[i] === exactVal) {\n                array.splice(i, 1);\n                removeCnt += 1;\n            }\n            else {\n                i += 1;\n            }\n        }\n        return removeCnt;\n    }\n    function isArraysEqual(a0, a1, equalityFunc) {\n        if (a0 === a1) {\n            return true;\n        }\n        var len = a0.length;\n        var i;\n        if (len !== a1.length) { // not array? or not same length?\n            return false;\n        }\n        for (i = 0; i < len; i += 1) {\n            if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function memoize(workerFunc, resEquality, teardownFunc) {\n        var currentArgs;\n        var currentRes;\n        return function () {\n            var newArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                newArgs[_i] = arguments[_i];\n            }\n            if (!currentArgs) {\n                currentRes = workerFunc.apply(this, newArgs);\n            }\n            else if (!isArraysEqual(currentArgs, newArgs)) {\n                if (teardownFunc) {\n                    teardownFunc(currentRes);\n                }\n                var res = workerFunc.apply(this, newArgs);\n                if (!resEquality || !resEquality(res, currentRes)) {\n                    currentRes = res;\n                }\n            }\n            currentArgs = newArgs;\n            return currentRes;\n        };\n    }\n    function memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n        var _this = this;\n        var currentArg;\n        var currentRes;\n        return function (newArg) {\n            if (!currentArg) {\n                currentRes = workerFunc.call(_this, newArg);\n            }\n            else if (!isPropsEqual(currentArg, newArg)) {\n                if (teardownFunc) {\n                    teardownFunc(currentRes);\n                }\n                var res = workerFunc.call(_this, newArg);\n                if (!resEquality || !resEquality(res, currentRes)) {\n                    currentRes = res;\n                }\n            }\n            currentArg = newArg;\n            return currentRes;\n        };\n    }\n    function memoizeArraylike(// used at all?\n    workerFunc, resEquality, teardownFunc) {\n        var _this = this;\n        var currentArgSets = [];\n        var currentResults = [];\n        return function (newArgSets) {\n            var currentLen = currentArgSets.length;\n            var newLen = newArgSets.length;\n            var i = 0;\n            for (; i < currentLen; i += 1) {\n                if (!newArgSets[i]) { // one of the old sets no longer exists\n                    if (teardownFunc) {\n                        teardownFunc(currentResults[i]);\n                    }\n                }\n                else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n                    if (teardownFunc) {\n                        teardownFunc(currentResults[i]);\n                    }\n                    var res = workerFunc.apply(_this, newArgSets[i]);\n                    if (!resEquality || !resEquality(res, currentResults[i])) {\n                        currentResults[i] = res;\n                    }\n                }\n            }\n            for (; i < newLen; i += 1) {\n                currentResults[i] = workerFunc.apply(_this, newArgSets[i]);\n            }\n            currentArgSets = newArgSets;\n            currentResults.splice(newLen); // remove excess\n            return currentResults;\n        };\n    }\n    function memoizeHashlike(// used?\n    workerFunc, resEquality, teardownFunc) {\n        var _this = this;\n        var currentArgHash = {};\n        var currentResHash = {};\n        return function (newArgHash) {\n            var newResHash = {};\n            for (var key in newArgHash) {\n                if (!currentResHash[key]) {\n                    newResHash[key] = workerFunc.apply(_this, newArgHash[key]);\n                }\n                else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n                    if (teardownFunc) {\n                        teardownFunc(currentResHash[key]);\n                    }\n                    var res = workerFunc.apply(_this, newArgHash[key]);\n                    newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n                        ? currentResHash[key]\n                        : res;\n                }\n                else {\n                    newResHash[key] = currentResHash[key];\n                }\n            }\n            currentArgHash = newArgHash;\n            currentResHash = newResHash;\n            return newResHash;\n        };\n    }\n\n    var EXTENDED_SETTINGS_AND_SEVERITIES = {\n        week: 3,\n        separator: 0,\n        omitZeroMinute: 0,\n        meridiem: 0,\n        omitCommas: 0,\n    };\n    var STANDARD_DATE_PROP_SEVERITIES = {\n        timeZoneName: 7,\n        era: 6,\n        year: 5,\n        month: 4,\n        day: 2,\n        weekday: 2,\n        hour: 1,\n        minute: 1,\n        second: 1,\n    };\n    var MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\n    var COMMA_RE = /,/g; // we need re for globalness\n    var MULTI_SPACE_RE = /\\s+/g;\n    var LTR_RE = /\\u200e/g; // control character\n    var UTC_RE = /UTC|GMT/;\n    var NativeFormatter = /** @class */ (function () {\n        function NativeFormatter(formatSettings) {\n            var standardDateProps = {};\n            var extendedSettings = {};\n            var severity = 0;\n            for (var name_1 in formatSettings) {\n                if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n                    extendedSettings[name_1] = formatSettings[name_1];\n                    severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n                }\n                else {\n                    standardDateProps[name_1] = formatSettings[name_1];\n                    if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n                        severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n                    }\n                }\n            }\n            this.standardDateProps = standardDateProps;\n            this.extendedSettings = extendedSettings;\n            this.severity = severity;\n            this.buildFormattingFunc = memoize(buildFormattingFunc);\n        }\n        NativeFormatter.prototype.format = function (date, context) {\n            return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n        };\n        NativeFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n            var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings;\n            var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n            if (!diffSeverity) {\n                return this.format(start, context);\n            }\n            var biggestUnitForPartial = diffSeverity;\n            if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n                (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n                (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n                (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n                biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n            }\n            var full0 = this.format(start, context);\n            var full1 = this.format(end, context);\n            if (full0 === full1) {\n                return full0;\n            }\n            var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n            var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n            var partial0 = partialFormattingFunc(start);\n            var partial1 = partialFormattingFunc(end);\n            var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n            var separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n            if (insertion) {\n                return insertion.before + partial0 + separator + partial1 + insertion.after;\n            }\n            return full0 + separator + full1;\n        };\n        NativeFormatter.prototype.getLargestUnit = function () {\n            switch (this.severity) {\n                case 7:\n                case 6:\n                case 5:\n                    return 'year';\n                case 4:\n                    return 'month';\n                case 3:\n                    return 'week';\n                case 2:\n                    return 'day';\n                default:\n                    return 'time'; // really?\n            }\n        };\n        return NativeFormatter;\n    }());\n    function buildFormattingFunc(standardDateProps, extendedSettings, context) {\n        var standardDatePropCnt = Object.keys(standardDateProps).length;\n        if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n            return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };\n        }\n        if (standardDatePropCnt === 0 && extendedSettings.week) {\n            return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.locale, extendedSettings.week)); };\n        }\n        return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n    }\n    function buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n        standardDateProps = __assign({}, standardDateProps); // copy\n        extendedSettings = __assign({}, extendedSettings); // copy\n        sanitizeSettings(standardDateProps, extendedSettings);\n        standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n        var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n        var zeroFormat; // needed?\n        if (extendedSettings.omitZeroMinute) {\n            var zeroProps = __assign({}, standardDateProps);\n            delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n            zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n        }\n        return function (date) {\n            var marker = date.marker;\n            var format;\n            if (zeroFormat && !marker.getUTCMinutes()) {\n                format = zeroFormat;\n            }\n            else {\n                format = normalFormat;\n            }\n            var s = format.format(marker);\n            return postProcess(s, date, standardDateProps, extendedSettings, context);\n        };\n    }\n    function sanitizeSettings(standardDateProps, extendedSettings) {\n        // deal with a browser inconsistency where formatting the timezone\n        // requires that the hour/minute be present.\n        if (standardDateProps.timeZoneName) {\n            if (!standardDateProps.hour) {\n                standardDateProps.hour = '2-digit';\n            }\n            if (!standardDateProps.minute) {\n                standardDateProps.minute = '2-digit';\n            }\n        }\n        // only support short timezone names\n        if (standardDateProps.timeZoneName === 'long') {\n            standardDateProps.timeZoneName = 'short';\n        }\n        // if requesting to display seconds, MUST display minutes\n        if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n            delete extendedSettings.omitZeroMinute;\n        }\n    }\n    function postProcess(s, date, standardDateProps, extendedSettings, context) {\n        s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n        if (standardDateProps.timeZoneName === 'short') {\n            s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n                'UTC' : // important to normalize for IE, which does \"GMT\"\n                formatTimeZoneOffset(date.timeZoneOffset));\n        }\n        if (extendedSettings.omitCommas) {\n            s = s.replace(COMMA_RE, '').trim();\n        }\n        if (extendedSettings.omitZeroMinute) {\n            s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n        }\n        // ^ do anything that might create adjacent spaces before this point,\n        // because MERIDIEM_RE likes to eat up loading spaces\n        if (extendedSettings.meridiem === false) {\n            s = s.replace(MERIDIEM_RE, '').trim();\n        }\n        else if (extendedSettings.meridiem === 'narrow') { // a/p\n            s = s.replace(MERIDIEM_RE, function (m0, m1) { return m1.toLocaleLowerCase(); });\n        }\n        else if (extendedSettings.meridiem === 'short') { // am/pm\n            s = s.replace(MERIDIEM_RE, function (m0, m1) { return m1.toLocaleLowerCase() + \"m\"; });\n        }\n        else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n            s = s.replace(MERIDIEM_RE, function (m0) { return m0.toLocaleLowerCase(); });\n        }\n        s = s.replace(MULTI_SPACE_RE, ' ');\n        s = s.trim();\n        return s;\n    }\n    function injectTzoStr(s, tzoStr) {\n        var replaced = false;\n        s = s.replace(UTC_RE, function () {\n            replaced = true;\n            return tzoStr;\n        });\n        // IE11 doesn't include UTC/GMT in the original string, so append to end\n        if (!replaced) {\n            s += \" \" + tzoStr;\n        }\n        return s;\n    }\n    function formatWeekNumber(num, weekText, locale, display) {\n        var parts = [];\n        if (display === 'narrow') {\n            parts.push(weekText);\n        }\n        else if (display === 'short') {\n            parts.push(weekText, ' ');\n        }\n        // otherwise, considered 'numeric'\n        parts.push(locale.simpleNumberFormat.format(num));\n        if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n            parts.reverse();\n        }\n        return parts.join('');\n    }\n    // Range Formatting Utils\n    // 0 = exactly the same\n    // 1 = different by time\n    // and bigger\n    function computeMarkerDiffSeverity(d0, d1, ca) {\n        if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n            return 5;\n        }\n        if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n            return 4;\n        }\n        if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n            return 2;\n        }\n        if (timeAsMs(d0) !== timeAsMs(d1)) {\n            return 1;\n        }\n        return 0;\n    }\n    function computePartialFormattingOptions(options, biggestUnit) {\n        var partialOptions = {};\n        for (var name_2 in options) {\n            if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n                STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n                partialOptions[name_2] = options[name_2];\n            }\n        }\n        return partialOptions;\n    }\n    function findCommonInsertion(full0, partial0, full1, partial1) {\n        var i0 = 0;\n        while (i0 < full0.length) {\n            var found0 = full0.indexOf(partial0, i0);\n            if (found0 === -1) {\n                break;\n            }\n            var before0 = full0.substr(0, found0);\n            i0 = found0 + partial0.length;\n            var after0 = full0.substr(i0);\n            var i1 = 0;\n            while (i1 < full1.length) {\n                var found1 = full1.indexOf(partial1, i1);\n                if (found1 === -1) {\n                    break;\n                }\n                var before1 = full1.substr(0, found1);\n                i1 = found1 + partial1.length;\n                var after1 = full1.substr(i1);\n                if (before0 === before1 && after0 === after1) {\n                    return {\n                        before: before0,\n                        after: after0,\n                    };\n                }\n            }\n        }\n        return null;\n    }\n\n    function expandZonedMarker(dateInfo, calendarSystem) {\n        var a = calendarSystem.markerToArray(dateInfo.marker);\n        return {\n            marker: dateInfo.marker,\n            timeZoneOffset: dateInfo.timeZoneOffset,\n            array: a,\n            year: a[0],\n            month: a[1],\n            day: a[2],\n            hour: a[3],\n            minute: a[4],\n            second: a[5],\n            millisecond: a[6],\n        };\n    }\n\n    function createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n        var startInfo = expandZonedMarker(start, context.calendarSystem);\n        var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n        return {\n            date: startInfo,\n            start: startInfo,\n            end: endInfo,\n            timeZone: context.timeZone,\n            localeCodes: context.locale.codes,\n            defaultSeparator: betterDefaultSeparator || context.defaultSeparator,\n        };\n    }\n\n    /*\n    TODO: fix the terminology of \"formatter\" vs \"formatting func\"\n    */\n    /*\n    At the time of instantiation, this object does not know which cmd-formatting system it will use.\n    It receives this at the time of formatting, as a setting.\n    */\n    var CmdFormatter = /** @class */ (function () {\n        function CmdFormatter(cmdStr) {\n            this.cmdStr = cmdStr;\n        }\n        CmdFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n            return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n        };\n        CmdFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n            return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n        };\n        return CmdFormatter;\n    }());\n\n    var FuncFormatter = /** @class */ (function () {\n        function FuncFormatter(func) {\n            this.func = func;\n        }\n        FuncFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n            return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n        };\n        FuncFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n            return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n        };\n        return FuncFormatter;\n    }());\n\n    function createFormatter(input) {\n        if (typeof input === 'object' && input) { // non-null object\n            return new NativeFormatter(input);\n        }\n        if (typeof input === 'string') {\n            return new CmdFormatter(input);\n        }\n        if (typeof input === 'function') {\n            return new FuncFormatter(input);\n        }\n        return null;\n    }\n\n    // base options\n    // ------------\n    var BASE_OPTION_REFINERS = {\n        navLinkDayClick: identity,\n        navLinkWeekClick: identity,\n        duration: createDuration,\n        bootstrapFontAwesome: identity,\n        buttonIcons: identity,\n        customButtons: identity,\n        defaultAllDayEventDuration: createDuration,\n        defaultTimedEventDuration: createDuration,\n        nextDayThreshold: createDuration,\n        scrollTime: createDuration,\n        slotMinTime: createDuration,\n        slotMaxTime: createDuration,\n        dayPopoverFormat: createFormatter,\n        slotDuration: createDuration,\n        snapDuration: createDuration,\n        headerToolbar: identity,\n        footerToolbar: identity,\n        defaultRangeSeparator: String,\n        titleRangeSeparator: String,\n        forceEventDuration: Boolean,\n        dayHeaders: Boolean,\n        dayHeaderFormat: createFormatter,\n        dayHeaderClassNames: identity,\n        dayHeaderContent: identity,\n        dayHeaderDidMount: identity,\n        dayHeaderWillUnmount: identity,\n        dayCellClassNames: identity,\n        dayCellContent: identity,\n        dayCellDidMount: identity,\n        dayCellWillUnmount: identity,\n        initialView: String,\n        aspectRatio: Number,\n        weekends: Boolean,\n        weekNumberCalculation: identity,\n        weekNumbers: Boolean,\n        weekNumberClassNames: identity,\n        weekNumberContent: identity,\n        weekNumberDidMount: identity,\n        weekNumberWillUnmount: identity,\n        editable: Boolean,\n        viewClassNames: identity,\n        viewDidMount: identity,\n        viewWillUnmount: identity,\n        nowIndicator: Boolean,\n        nowIndicatorClassNames: identity,\n        nowIndicatorContent: identity,\n        nowIndicatorDidMount: identity,\n        nowIndicatorWillUnmount: identity,\n        showNonCurrentDates: Boolean,\n        lazyFetching: Boolean,\n        startParam: String,\n        endParam: String,\n        timeZoneParam: String,\n        timeZone: String,\n        locales: identity,\n        locale: identity,\n        themeSystem: String,\n        dragRevertDuration: Number,\n        dragScroll: Boolean,\n        allDayMaintainDuration: Boolean,\n        unselectAuto: Boolean,\n        dropAccept: identity,\n        eventOrder: parseFieldSpecs,\n        handleWindowResize: Boolean,\n        windowResizeDelay: Number,\n        longPressDelay: Number,\n        eventDragMinDistance: Number,\n        expandRows: Boolean,\n        height: identity,\n        contentHeight: identity,\n        direction: String,\n        weekNumberFormat: createFormatter,\n        eventResizableFromStart: Boolean,\n        displayEventTime: Boolean,\n        displayEventEnd: Boolean,\n        weekText: String,\n        progressiveEventRendering: Boolean,\n        businessHours: identity,\n        initialDate: identity,\n        now: identity,\n        eventDataTransform: identity,\n        stickyHeaderDates: identity,\n        stickyFooterScrollbar: identity,\n        viewHeight: identity,\n        defaultAllDay: Boolean,\n        eventSourceFailure: identity,\n        eventSourceSuccess: identity,\n        eventDisplay: String,\n        eventStartEditable: Boolean,\n        eventDurationEditable: Boolean,\n        eventOverlap: identity,\n        eventConstraint: identity,\n        eventAllow: identity,\n        eventBackgroundColor: String,\n        eventBorderColor: String,\n        eventTextColor: String,\n        eventColor: String,\n        eventClassNames: identity,\n        eventContent: identity,\n        eventDidMount: identity,\n        eventWillUnmount: identity,\n        selectConstraint: identity,\n        selectOverlap: identity,\n        selectAllow: identity,\n        droppable: Boolean,\n        unselectCancel: String,\n        slotLabelFormat: identity,\n        slotLaneClassNames: identity,\n        slotLaneContent: identity,\n        slotLaneDidMount: identity,\n        slotLaneWillUnmount: identity,\n        slotLabelClassNames: identity,\n        slotLabelContent: identity,\n        slotLabelDidMount: identity,\n        slotLabelWillUnmount: identity,\n        dayMaxEvents: identity,\n        dayMaxEventRows: identity,\n        dayMinWidth: Number,\n        slotLabelInterval: createDuration,\n        allDayText: String,\n        allDayClassNames: identity,\n        allDayContent: identity,\n        allDayDidMount: identity,\n        allDayWillUnmount: identity,\n        slotMinWidth: Number,\n        navLinks: Boolean,\n        eventTimeFormat: createFormatter,\n        rerenderDelay: Number,\n        moreLinkText: identity,\n        selectMinDistance: Number,\n        selectable: Boolean,\n        selectLongPressDelay: Number,\n        eventLongPressDelay: Number,\n        selectMirror: Boolean,\n        eventMinHeight: Number,\n        slotEventOverlap: Boolean,\n        plugins: identity,\n        firstDay: Number,\n        dayCount: Number,\n        dateAlignment: String,\n        dateIncrement: createDuration,\n        hiddenDays: identity,\n        monthMode: Boolean,\n        fixedWeekCount: Boolean,\n        validRange: identity,\n        visibleRange: identity,\n        titleFormat: identity,\n        // only used by list-view, but languages define the value, so we need it in base options\n        noEventsText: String,\n    };\n    // do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n    // raw values.\n    var BASE_OPTION_DEFAULTS = {\n        eventDisplay: 'auto',\n        defaultRangeSeparator: ' - ',\n        titleRangeSeparator: ' \\u2013 ',\n        defaultTimedEventDuration: '01:00:00',\n        defaultAllDayEventDuration: { day: 1 },\n        forceEventDuration: false,\n        nextDayThreshold: '00:00:00',\n        dayHeaders: true,\n        initialView: '',\n        aspectRatio: 1.35,\n        headerToolbar: {\n            start: 'title',\n            center: '',\n            end: 'today prev,next',\n        },\n        weekends: true,\n        weekNumbers: false,\n        weekNumberCalculation: 'local',\n        editable: false,\n        nowIndicator: false,\n        scrollTime: '06:00:00',\n        slotMinTime: '00:00:00',\n        slotMaxTime: '24:00:00',\n        showNonCurrentDates: true,\n        lazyFetching: true,\n        startParam: 'start',\n        endParam: 'end',\n        timeZoneParam: 'timeZone',\n        timeZone: 'local',\n        locales: [],\n        locale: '',\n        themeSystem: 'standard',\n        dragRevertDuration: 500,\n        dragScroll: true,\n        allDayMaintainDuration: false,\n        unselectAuto: true,\n        dropAccept: '*',\n        eventOrder: 'start,-duration,allDay,title',\n        dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n        handleWindowResize: true,\n        windowResizeDelay: 100,\n        longPressDelay: 1000,\n        eventDragMinDistance: 5,\n        expandRows: false,\n        navLinks: false,\n        selectable: false,\n    };\n    // calendar listeners\n    // ------------------\n    var CALENDAR_LISTENER_REFINERS = {\n        datesSet: identity,\n        eventsSet: identity,\n        eventAdd: identity,\n        eventChange: identity,\n        eventRemove: identity,\n        windowResize: identity,\n        eventClick: identity,\n        eventMouseEnter: identity,\n        eventMouseLeave: identity,\n        select: identity,\n        unselect: identity,\n        loading: identity,\n        // internal\n        _unmount: identity,\n        _beforeprint: identity,\n        _afterprint: identity,\n        _noEventDrop: identity,\n        _noEventResize: identity,\n        _resize: identity,\n        _scrollRequest: identity,\n    };\n    // calendar-specific options\n    // -------------------------\n    var CALENDAR_OPTION_REFINERS = {\n        buttonText: identity,\n        views: identity,\n        plugins: identity,\n        initialEvents: identity,\n        events: identity,\n        eventSources: identity,\n    };\n    var COMPLEX_OPTION_COMPARATORS = {\n        headerToolbar: isBoolComplexEqual,\n        footerToolbar: isBoolComplexEqual,\n        buttonText: isBoolComplexEqual,\n        buttonIcons: isBoolComplexEqual,\n    };\n    function isBoolComplexEqual(a, b) {\n        if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects\n            return isPropsEqual(a, b);\n        }\n        return a === b;\n    }\n    // view-specific options\n    // ---------------------\n    var VIEW_OPTION_REFINERS = {\n        type: String,\n        component: identity,\n        buttonText: String,\n        buttonTextKey: String,\n        dateProfileGeneratorClass: identity,\n        usesMinMaxTime: Boolean,\n        classNames: identity,\n        content: identity,\n        didMount: identity,\n        willUnmount: identity,\n    };\n    // util funcs\n    // ----------------------------------------------------------------------------------------------------\n    function mergeRawOptions(optionSets) {\n        return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n    }\n    function refineProps(input, refiners) {\n        var refined = {};\n        var extra = {};\n        for (var propName in refiners) {\n            if (propName in input) {\n                refined[propName] = refiners[propName](input[propName]);\n            }\n        }\n        for (var propName in input) {\n            if (!(propName in refiners)) {\n                extra[propName] = input[propName];\n            }\n        }\n        return { refined: refined, extra: extra };\n    }\n    function identity(raw) {\n        return raw;\n    }\n\n    function parseEvents(rawEvents, eventSource, context, allowOpenRange) {\n        var eventStore = createEmptyEventStore();\n        var eventRefiners = buildEventRefiners(context);\n        for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n            var rawEvent = rawEvents_1[_i];\n            var tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners);\n            if (tuple) {\n                eventTupleToStore(tuple, eventStore);\n            }\n        }\n        return eventStore;\n    }\n    function eventTupleToStore(tuple, eventStore) {\n        if (eventStore === void 0) { eventStore = createEmptyEventStore(); }\n        eventStore.defs[tuple.def.defId] = tuple.def;\n        if (tuple.instance) {\n            eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n        }\n        return eventStore;\n    }\n    // retrieves events that have the same groupId as the instance specified by `instanceId`\n    // or they are the same as the instance.\n    // why might instanceId not be in the store? an event from another calendar?\n    function getRelevantEvents(eventStore, instanceId) {\n        var instance = eventStore.instances[instanceId];\n        if (instance) {\n            var def_1 = eventStore.defs[instance.defId];\n            // get events/instances with same group\n            var newStore = filterEventStoreDefs(eventStore, function (lookDef) { return isEventDefsGrouped(def_1, lookDef); });\n            // add the original\n            // TODO: wish we could use eventTupleToStore or something like it\n            newStore.defs[def_1.defId] = def_1;\n            newStore.instances[instance.instanceId] = instance;\n            return newStore;\n        }\n        return createEmptyEventStore();\n    }\n    function isEventDefsGrouped(def0, def1) {\n        return Boolean(def0.groupId && def0.groupId === def1.groupId);\n    }\n    function createEmptyEventStore() {\n        return { defs: {}, instances: {} };\n    }\n    function mergeEventStores(store0, store1) {\n        return {\n            defs: __assign(__assign({}, store0.defs), store1.defs),\n            instances: __assign(__assign({}, store0.instances), store1.instances),\n        };\n    }\n    function filterEventStoreDefs(eventStore, filterFunc) {\n        var defs = filterHash(eventStore.defs, filterFunc);\n        var instances = filterHash(eventStore.instances, function (instance) { return (defs[instance.defId] // still exists?\n        ); });\n        return { defs: defs, instances: instances };\n    }\n    function excludeSubEventStore(master, sub) {\n        var defs = master.defs, instances = master.instances;\n        var filteredDefs = {};\n        var filteredInstances = {};\n        for (var defId in defs) {\n            if (!sub.defs[defId]) { // not explicitly excluded\n                filteredDefs[defId] = defs[defId];\n            }\n        }\n        for (var instanceId in instances) {\n            if (!sub.instances[instanceId] && // not explicitly excluded\n                filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n            ) {\n                filteredInstances[instanceId] = instances[instanceId];\n            }\n        }\n        return {\n            defs: filteredDefs,\n            instances: filteredInstances,\n        };\n    }\n\n    function normalizeConstraint(input, context) {\n        if (Array.isArray(input)) {\n            return parseEvents(input, null, context, true); // allowOpenRange=true\n        }\n        if (typeof input === 'object' && input) { // non-null object\n            return parseEvents([input], null, context, true); // allowOpenRange=true\n        }\n        if (input != null) {\n            return String(input);\n        }\n        return null;\n    }\n\n    function parseClassNames(raw) {\n        if (Array.isArray(raw)) {\n            return raw;\n        }\n        if (typeof raw === 'string') {\n            return raw.split(/\\s+/);\n        }\n        return [];\n    }\n\n    // TODO: better called \"EventSettings\" or \"EventConfig\"\n    // TODO: move this file into structs\n    // TODO: separate constraint/overlap/allow, because selection uses only that, not other props\n    var EVENT_UI_REFINERS = {\n        display: String,\n        editable: Boolean,\n        startEditable: Boolean,\n        durationEditable: Boolean,\n        constraint: identity,\n        overlap: identity,\n        allow: identity,\n        className: parseClassNames,\n        classNames: parseClassNames,\n        color: String,\n        backgroundColor: String,\n        borderColor: String,\n        textColor: String,\n    };\n    var EMPTY_EVENT_UI = {\n        display: null,\n        startEditable: null,\n        durationEditable: null,\n        constraints: [],\n        overlap: null,\n        allows: [],\n        backgroundColor: '',\n        borderColor: '',\n        textColor: '',\n        classNames: [],\n    };\n    function createEventUi(refined, context) {\n        var constraint = normalizeConstraint(refined.constraint, context);\n        return {\n            display: refined.display || null,\n            startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n            durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n            constraints: constraint != null ? [constraint] : [],\n            overlap: refined.overlap != null ? refined.overlap : null,\n            allows: refined.allow != null ? [refined.allow] : [],\n            backgroundColor: refined.backgroundColor || refined.color || '',\n            borderColor: refined.borderColor || refined.color || '',\n            textColor: refined.textColor || '',\n            classNames: (refined.className || []).concat(refined.classNames || []),\n        };\n    }\n    // TODO: prevent against problems with <2 args!\n    function combineEventUis(uis) {\n        return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n    }\n    function combineTwoEventUis(item0, item1) {\n        return {\n            display: item1.display != null ? item1.display : item0.display,\n            startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n            durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n            constraints: item0.constraints.concat(item1.constraints),\n            overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n            allows: item0.allows.concat(item1.allows),\n            backgroundColor: item1.backgroundColor || item0.backgroundColor,\n            borderColor: item1.borderColor || item0.borderColor,\n            textColor: item1.textColor || item0.textColor,\n            classNames: item0.classNames.concat(item1.classNames),\n        };\n    }\n\n    var EVENT_NON_DATE_REFINERS = {\n        id: String,\n        groupId: String,\n        title: String,\n        url: String,\n    };\n    var EVENT_DATE_REFINERS = {\n        start: identity,\n        end: identity,\n        date: identity,\n        allDay: Boolean,\n    };\n    var EVENT_REFINERS = __assign(__assign(__assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });\n    function parseEvent(raw, eventSource, context, allowOpenRange, refiners) {\n        if (refiners === void 0) { refiners = buildEventRefiners(context); }\n        var _a = refineEventDef(raw, context, refiners), refined = _a.refined, extra = _a.extra;\n        var defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n        var recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n        if (recurringRes) {\n            var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context);\n            def.recurringDef = {\n                typeId: recurringRes.typeId,\n                typeData: recurringRes.typeData,\n                duration: recurringRes.duration,\n            };\n            return { def: def, instance: null };\n        }\n        var singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n        if (singleRes) {\n            var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context);\n            var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n            return { def: def, instance: instance };\n        }\n        return null;\n    }\n    function refineEventDef(raw, context, refiners) {\n        if (refiners === void 0) { refiners = buildEventRefiners(context); }\n        return refineProps(raw, refiners);\n    }\n    function buildEventRefiners(context) {\n        return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n    }\n    /*\n    Will NOT populate extendedProps with the leftover properties.\n    Will NOT populate date-related props.\n    */\n    function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {\n        var def = {\n            title: refined.title || '',\n            groupId: refined.groupId || '',\n            publicId: refined.id || '',\n            url: refined.url || '',\n            recurringDef: null,\n            defId: guid(),\n            sourceId: sourceId,\n            allDay: allDay,\n            hasEnd: hasEnd,\n            ui: createEventUi(refined, context),\n            extendedProps: __assign(__assign({}, (refined.extendedProps || {})), extra),\n        };\n        for (var _i = 0, _a = context.pluginHooks.eventDefMemberAdders; _i < _a.length; _i++) {\n            var memberAdder = _a[_i];\n            __assign(def, memberAdder(refined));\n        }\n        // help out EventApi from having user modify props\n        Object.freeze(def.ui.classNames);\n        Object.freeze(def.extendedProps);\n        return def;\n    }\n    function parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n        var allDay = refined.allDay;\n        var startMeta;\n        var startMarker = null;\n        var hasEnd = false;\n        var endMeta;\n        var endMarker = null;\n        var startInput = refined.start != null ? refined.start : refined.date;\n        startMeta = context.dateEnv.createMarkerMeta(startInput);\n        if (startMeta) {\n            startMarker = startMeta.marker;\n        }\n        else if (!allowOpenRange) {\n            return null;\n        }\n        if (refined.end != null) {\n            endMeta = context.dateEnv.createMarkerMeta(refined.end);\n        }\n        if (allDay == null) {\n            if (defaultAllDay != null) {\n                allDay = defaultAllDay;\n            }\n            else {\n                // fall back to the date props LAST\n                allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n                    (!endMeta || endMeta.isTimeUnspecified);\n            }\n        }\n        if (allDay && startMarker) {\n            startMarker = startOfDay(startMarker);\n        }\n        if (endMeta) {\n            endMarker = endMeta.marker;\n            if (allDay) {\n                endMarker = startOfDay(endMarker);\n            }\n            if (startMarker && endMarker <= startMarker) {\n                endMarker = null;\n            }\n        }\n        if (endMarker) {\n            hasEnd = true;\n        }\n        else if (!allowOpenRange) {\n            hasEnd = context.options.forceEventDuration || false;\n            endMarker = context.dateEnv.add(startMarker, allDay ?\n                context.options.defaultAllDayEventDuration :\n                context.options.defaultTimedEventDuration);\n        }\n        return {\n            allDay: allDay,\n            hasEnd: hasEnd,\n            range: { start: startMarker, end: endMarker },\n            forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n            forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n        };\n    }\n    function computeIsDefaultAllDay(eventSource, context) {\n        var res = null;\n        if (eventSource) {\n            res = eventSource.defaultAllDay;\n        }\n        if (res == null) {\n            res = context.options.defaultAllDay;\n        }\n        return res;\n    }\n\n    /* Date stuff that doesn't belong in datelib core\n    ----------------------------------------------------------------------------------------------------------------------*/\n    // given a timed range, computes an all-day range that has the same exact duration,\n    // but whose start time is aligned with the start of the day.\n    function computeAlignedDayRange(timedRange) {\n        var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n        var start = startOfDay(timedRange.start);\n        var end = addDays(start, dayCnt);\n        return { start: start, end: end };\n    }\n    // given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n    // TODO: give nextDayThreshold a default arg\n    function computeVisibleDayRange(timedRange, nextDayThreshold) {\n        if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); }\n        var startDay = null;\n        var endDay = null;\n        if (timedRange.end) {\n            endDay = startOfDay(timedRange.end);\n            var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n            // If the end time is actually inclusively part of the next day and is equal to or\n            // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n            // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n            if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n                endDay = addDays(endDay, 1);\n            }\n        }\n        if (timedRange.start) {\n            startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n            // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n            if (endDay && endDay <= startDay) {\n                endDay = addDays(startDay, 1);\n            }\n        }\n        return { start: startDay, end: endDay };\n    }\n    // spans from one day into another?\n    function isMultiDayRange(range) {\n        var visibleRange = computeVisibleDayRange(range);\n        return diffDays(visibleRange.start, visibleRange.end) > 1;\n    }\n    function diffDates(date0, date1, dateEnv, largeUnit) {\n        if (largeUnit === 'year') {\n            return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n        }\n        if (largeUnit === 'month') {\n            return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n        }\n        return diffDayAndTime(date0, date1); // returns a duration\n    }\n\n    function parseRange(input, dateEnv) {\n        var start = null;\n        var end = null;\n        if (input.start) {\n            start = dateEnv.createMarker(input.start);\n        }\n        if (input.end) {\n            end = dateEnv.createMarker(input.end);\n        }\n        if (!start && !end) {\n            return null;\n        }\n        if (start && end && end < start) {\n            return null;\n        }\n        return { start: start, end: end };\n    }\n    // SIDE-EFFECT: will mutate ranges.\n    // Will return a new array result.\n    function invertRanges(ranges, constraintRange) {\n        var invertedRanges = [];\n        var start = constraintRange.start; // the end of the previous range. the start of the new range\n        var i;\n        var dateRange;\n        // ranges need to be in order. required for our date-walking algorithm\n        ranges.sort(compareRanges);\n        for (i = 0; i < ranges.length; i += 1) {\n            dateRange = ranges[i];\n            // add the span of time before the event (if there is any)\n            if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n                invertedRanges.push({ start: start, end: dateRange.start });\n            }\n            if (dateRange.end > start) {\n                start = dateRange.end;\n            }\n        }\n        // add the span of time after the last event (if there is any)\n        if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n            invertedRanges.push({ start: start, end: constraintRange.end });\n        }\n        return invertedRanges;\n    }\n    function compareRanges(range0, range1) {\n        return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n    }\n    function intersectRanges(range0, range1) {\n        var start = range0.start, end = range0.end;\n        var newRange = null;\n        if (range1.start !== null) {\n            if (start === null) {\n                start = range1.start;\n            }\n            else {\n                start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n            }\n        }\n        if (range1.end != null) {\n            if (end === null) {\n                end = range1.end;\n            }\n            else {\n                end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n            }\n        }\n        if (start === null || end === null || start < end) {\n            newRange = { start: start, end: end };\n        }\n        return newRange;\n    }\n    function rangesEqual(range0, range1) {\n        return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n            (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n    }\n    function rangesIntersect(range0, range1) {\n        return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n            (range0.start === null || range1.end === null || range0.start < range1.end);\n    }\n    function rangeContainsRange(outerRange, innerRange) {\n        return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n            (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n    }\n    function rangeContainsMarker(range, date) {\n        return (range.start === null || date >= range.start) &&\n            (range.end === null || date < range.end);\n    }\n    // If the given date is not within the given range, move it inside.\n    // (If it's past the end, make it one millisecond before the end).\n    function constrainMarkerToRange(date, range) {\n        if (range.start != null && date < range.start) {\n            return range.start;\n        }\n        if (range.end != null && date >= range.end) {\n            return new Date(range.end.valueOf() - 1);\n        }\n        return date;\n    }\n\n    /*\n    Specifying nextDayThreshold signals that all-day ranges should be sliced.\n    */\n    function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n        var inverseBgByGroupId = {};\n        var inverseBgByDefId = {};\n        var defByGroupId = {};\n        var bgRanges = [];\n        var fgRanges = [];\n        var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n        for (var defId in eventStore.defs) {\n            var def = eventStore.defs[defId];\n            var ui = eventUis[def.defId];\n            if (ui.display === 'inverse-background') {\n                if (def.groupId) {\n                    inverseBgByGroupId[def.groupId] = [];\n                    if (!defByGroupId[def.groupId]) {\n                        defByGroupId[def.groupId] = def;\n                    }\n                }\n                else {\n                    inverseBgByDefId[defId] = [];\n                }\n            }\n        }\n        for (var instanceId in eventStore.instances) {\n            var instance = eventStore.instances[instanceId];\n            var def = eventStore.defs[instance.defId];\n            var ui = eventUis[def.defId];\n            var origRange = instance.range;\n            var normalRange = (!def.allDay && nextDayThreshold) ?\n                computeVisibleDayRange(origRange, nextDayThreshold) :\n                origRange;\n            var slicedRange = intersectRanges(normalRange, framingRange);\n            if (slicedRange) {\n                if (ui.display === 'inverse-background') {\n                    if (def.groupId) {\n                        inverseBgByGroupId[def.groupId].push(slicedRange);\n                    }\n                    else {\n                        inverseBgByDefId[instance.defId].push(slicedRange);\n                    }\n                }\n                else if (ui.display !== 'none') {\n                    (ui.display === 'background' ? bgRanges : fgRanges).push({\n                        def: def,\n                        ui: ui,\n                        instance: instance,\n                        range: slicedRange,\n                        isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n                        isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),\n                    });\n                }\n            }\n        }\n        for (var groupId in inverseBgByGroupId) { // BY GROUP\n            var ranges = inverseBgByGroupId[groupId];\n            var invertedRanges = invertRanges(ranges, framingRange);\n            for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n                var invertedRange = invertedRanges_1[_i];\n                var def = defByGroupId[groupId];\n                var ui = eventUis[def.defId];\n                bgRanges.push({\n                    def: def,\n                    ui: ui,\n                    instance: null,\n                    range: invertedRange,\n                    isStart: false,\n                    isEnd: false,\n                });\n            }\n        }\n        for (var defId in inverseBgByDefId) {\n            var ranges = inverseBgByDefId[defId];\n            var invertedRanges = invertRanges(ranges, framingRange);\n            for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n                var invertedRange = invertedRanges_2[_a];\n                bgRanges.push({\n                    def: eventStore.defs[defId],\n                    ui: eventUis[defId],\n                    instance: null,\n                    range: invertedRange,\n                    isStart: false,\n                    isEnd: false,\n                });\n            }\n        }\n        return { bg: bgRanges, fg: fgRanges };\n    }\n    function hasBgRendering(def) {\n        return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n    }\n    function setElSeg(el, seg) {\n        el.fcSeg = seg;\n    }\n    function getElSeg(el) {\n        return el.fcSeg ||\n            el.parentNode.fcSeg || // for the harness\n            null;\n    }\n    // event ui computation\n    function compileEventUis(eventDefs, eventUiBases) {\n        return mapHash(eventDefs, function (eventDef) { return compileEventUi(eventDef, eventUiBases); });\n    }\n    function compileEventUi(eventDef, eventUiBases) {\n        var uis = [];\n        if (eventUiBases['']) {\n            uis.push(eventUiBases['']);\n        }\n        if (eventUiBases[eventDef.defId]) {\n            uis.push(eventUiBases[eventDef.defId]);\n        }\n        uis.push(eventDef.ui);\n        return combineEventUis(uis);\n    }\n    function sortEventSegs(segs, eventOrderSpecs) {\n        var objs = segs.map(buildSegCompareObj);\n        objs.sort(function (obj0, obj1) { return compareByFieldSpecs(obj0, obj1, eventOrderSpecs); });\n        return objs.map(function (c) { return c._seg; });\n    }\n    // returns a object with all primitive props that can be compared\n    function buildSegCompareObj(seg) {\n        var eventRange = seg.eventRange;\n        var eventDef = eventRange.def;\n        var range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n        var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n        var end = range.end ? range.end.valueOf() : 0; // \"\n        return __assign(__assign(__assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start: start,\n            end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });\n    }\n    function computeSegDraggable(seg, context) {\n        var pluginHooks = context.pluginHooks;\n        var transformers = pluginHooks.isDraggableTransformers;\n        var _a = seg.eventRange, def = _a.def, ui = _a.ui;\n        var val = ui.startEditable;\n        for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n            var transformer = transformers_1[_i];\n            val = transformer(val, def, ui, context);\n        }\n        return val;\n    }\n    function computeSegStartResizable(seg, context) {\n        return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n    }\n    function computeSegEndResizable(seg, context) {\n        return seg.isEnd && seg.eventRange.ui.durationEditable;\n    }\n    function buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\n    defaultDisplayEventEnd, // defaults to true\n    startOverride, endOverride) {\n        var dateEnv = context.dateEnv, options = context.options;\n        var displayEventTime = options.displayEventTime, displayEventEnd = options.displayEventEnd;\n        var eventDef = seg.eventRange.def;\n        var eventInstance = seg.eventRange.instance;\n        if (displayEventTime == null) {\n            displayEventTime = defaultDisplayEventTime !== false;\n        }\n        if (displayEventEnd == null) {\n            displayEventEnd = defaultDisplayEventEnd !== false;\n        }\n        if (displayEventTime && !eventDef.allDay && (seg.isStart || seg.isEnd)) {\n            var segStart = startOverride || (seg.isStart ? eventInstance.range.start : (seg.start || seg.eventRange.range.start));\n            var segEnd = endOverride || (seg.isEnd ? eventInstance.range.end : (seg.end || seg.eventRange.range.end));\n            if (displayEventEnd && eventDef.hasEnd) {\n                return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n                    forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n                    forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,\n                });\n            }\n            return dateEnv.format(segStart, timeFormat, {\n                forcedTzo: startOverride ? null : eventInstance.forcedStartTzo,\n            });\n        }\n        return '';\n    }\n    function getSegMeta(seg, todayRange, nowDate) {\n        var segRange = seg.eventRange.range;\n        return {\n            isPast: segRange.end < (nowDate || todayRange.start),\n            isFuture: segRange.start >= (nowDate || todayRange.end),\n            isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),\n        };\n    }\n    function getEventClassNames(props) {\n        var classNames = ['fc-event'];\n        if (props.isMirror) {\n            classNames.push('fc-event-mirror');\n        }\n        if (props.isDraggable) {\n            classNames.push('fc-event-draggable');\n        }\n        if (props.isStartResizable || props.isEndResizable) {\n            classNames.push('fc-event-resizable');\n        }\n        if (props.isDragging) {\n            classNames.push('fc-event-dragging');\n        }\n        if (props.isResizing) {\n            classNames.push('fc-event-resizing');\n        }\n        if (props.isSelected) {\n            classNames.push('fc-event-selected');\n        }\n        if (props.isStart) {\n            classNames.push('fc-event-start');\n        }\n        if (props.isEnd) {\n            classNames.push('fc-event-end');\n        }\n        if (props.isPast) {\n            classNames.push('fc-event-past');\n        }\n        if (props.isToday) {\n            classNames.push('fc-event-today');\n        }\n        if (props.isFuture) {\n            classNames.push('fc-event-future');\n        }\n        return classNames;\n    }\n    function buildEventRangeKey(eventRange) {\n        return eventRange.instance\n            ? eventRange.instance.instanceId\n            : eventRange.def.defId + \":\" + eventRange.range.start.toISOString();\n        // inverse-background events don't have specific instances. TODO: better solution\n    }\n\n    var STANDARD_PROPS = {\n        start: identity,\n        end: identity,\n        allDay: Boolean,\n    };\n    function parseDateSpan(raw, dateEnv, defaultDuration) {\n        var span = parseOpenDateSpan(raw, dateEnv);\n        var range = span.range;\n        if (!range.start) {\n            return null;\n        }\n        if (!range.end) {\n            if (defaultDuration == null) {\n                return null;\n            }\n            range.end = dateEnv.add(range.start, defaultDuration);\n        }\n        return span;\n    }\n    /*\n    TODO: somehow combine with parseRange?\n    Will return null if the start/end props were present but parsed invalidly.\n    */\n    function parseOpenDateSpan(raw, dateEnv) {\n        var _a = refineProps(raw, STANDARD_PROPS), standardProps = _a.refined, extra = _a.extra;\n        var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n        var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n        var allDay = standardProps.allDay;\n        if (allDay == null) {\n            allDay = (startMeta && startMeta.isTimeUnspecified) &&\n                (!endMeta || endMeta.isTimeUnspecified);\n        }\n        return __assign({ range: {\n                start: startMeta ? startMeta.marker : null,\n                end: endMeta ? endMeta.marker : null,\n            }, allDay: allDay }, extra);\n    }\n    function isDateSpansEqual(span0, span1) {\n        return rangesEqual(span0.range, span1.range) &&\n            span0.allDay === span1.allDay &&\n            isSpanPropsEqual(span0, span1);\n    }\n    // the NON-DATE-RELATED props\n    function isSpanPropsEqual(span0, span1) {\n        for (var propName in span1) {\n            if (propName !== 'range' && propName !== 'allDay') {\n                if (span0[propName] !== span1[propName]) {\n                    return false;\n                }\n            }\n        }\n        // are there any props that span0 has that span1 DOESN'T have?\n        // both have range/allDay, so no need to special-case.\n        for (var propName in span0) {\n            if (!(propName in span1)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    function buildDateSpanApi(span, dateEnv) {\n        return __assign(__assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });\n    }\n    function buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n        return __assign(__assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });\n    }\n    function buildRangeApi(range, dateEnv, omitTime) {\n        return {\n            start: dateEnv.toDate(range.start),\n            end: dateEnv.toDate(range.end),\n            startStr: dateEnv.formatIso(range.start, { omitTime: omitTime }),\n            endStr: dateEnv.formatIso(range.end, { omitTime: omitTime }),\n        };\n    }\n    function fabricateEventRange(dateSpan, eventUiBases, context) {\n        var res = refineEventDef({ editable: false }, context);\n        var def = parseEventDef(res.refined, res.extra, '', // sourceId\n        dateSpan.allDay, true, // hasEnd\n        context);\n        return {\n            def: def,\n            ui: compileEventUi(def, eventUiBases),\n            instance: createEventInstance(def.defId, dateSpan.range),\n            range: dateSpan.range,\n            isStart: true,\n            isEnd: true,\n        };\n    }\n\n    function triggerDateSelect(selection, pev, context) {\n        context.emitter.trigger('select', __assign(__assign({}, buildDateSpanApiWithContext(selection, context)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));\n    }\n    function triggerDateUnselect(pev, context) {\n        context.emitter.trigger('unselect', {\n            jsEvent: pev ? pev.origEvent : null,\n            view: context.viewApi || context.calendarApi.view,\n        });\n    }\n    function buildDateSpanApiWithContext(dateSpan, context) {\n        var props = {};\n        for (var _i = 0, _a = context.pluginHooks.dateSpanTransforms; _i < _a.length; _i++) {\n            var transform = _a[_i];\n            __assign(props, transform(dateSpan, context));\n        }\n        __assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n        return props;\n    }\n    // Given an event's allDay status and start date, return what its fallback end date should be.\n    // TODO: rename to computeDefaultEventEnd\n    function getDefaultEventEnd(allDay, marker, context) {\n        var dateEnv = context.dateEnv, options = context.options;\n        var end = marker;\n        if (allDay) {\n            end = startOfDay(end);\n            end = dateEnv.add(end, options.defaultAllDayEventDuration);\n        }\n        else {\n            end = dateEnv.add(end, options.defaultTimedEventDuration);\n        }\n        return end;\n    }\n\n    // applies the mutation to ALL defs/instances within the event store\n    function applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n        var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n        var dest = createEmptyEventStore();\n        for (var defId in eventStore.defs) {\n            var def = eventStore.defs[defId];\n            dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n        }\n        for (var instanceId in eventStore.instances) {\n            var instance = eventStore.instances[instanceId];\n            var def = dest.defs[instance.defId]; // important to grab the newly modified def\n            dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n        }\n        return dest;\n    }\n    function applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n        var standardProps = mutation.standardProps || {};\n        // if hasEnd has not been specified, guess a good value based on deltas.\n        // if duration will change, there's no way the default duration will persist,\n        // and thus, we need to mark the event as having a real end\n        if (standardProps.hasEnd == null &&\n            eventConfig.durationEditable &&\n            (mutation.startDelta || mutation.endDelta)) {\n            standardProps.hasEnd = true; // TODO: is this mutation okay?\n        }\n        var copy = __assign(__assign(__assign({}, eventDef), standardProps), { ui: __assign(__assign({}, eventDef.ui), standardProps.ui) });\n        if (mutation.extendedProps) {\n            copy.extendedProps = __assign(__assign({}, copy.extendedProps), mutation.extendedProps);\n        }\n        for (var _i = 0, _a = context.pluginHooks.eventDefMutationAppliers; _i < _a.length; _i++) {\n            var applier = _a[_i];\n            applier(copy, mutation, context);\n        }\n        if (!copy.hasEnd && context.options.forceEventDuration) {\n            copy.hasEnd = true;\n        }\n        return copy;\n    }\n    function applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\n    eventConfig, mutation, context) {\n        var dateEnv = context.dateEnv;\n        var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n        var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n        var copy = __assign({}, eventInstance);\n        if (forceAllDay) {\n            copy.range = computeAlignedDayRange(copy.range);\n        }\n        if (mutation.datesDelta && eventConfig.startEditable) {\n            copy.range = {\n                start: dateEnv.add(copy.range.start, mutation.datesDelta),\n                end: dateEnv.add(copy.range.end, mutation.datesDelta),\n            };\n        }\n        if (mutation.startDelta && eventConfig.durationEditable) {\n            copy.range = {\n                start: dateEnv.add(copy.range.start, mutation.startDelta),\n                end: copy.range.end,\n            };\n        }\n        if (mutation.endDelta && eventConfig.durationEditable) {\n            copy.range = {\n                start: copy.range.start,\n                end: dateEnv.add(copy.range.end, mutation.endDelta),\n            };\n        }\n        if (clearEnd) {\n            copy.range = {\n                start: copy.range.start,\n                end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n            };\n        }\n        // in case event was all-day but the supplied deltas were not\n        // better util for this?\n        if (eventDef.allDay) {\n            copy.range = {\n                start: startOfDay(copy.range.start),\n                end: startOfDay(copy.range.end),\n            };\n        }\n        // handle invalid durations\n        if (copy.range.end < copy.range.start) {\n            copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n        }\n        return copy;\n    }\n\n    // no public types yet. when there are, export from:\n    // import {} from './api-type-deps'\n    var ViewApi = /** @class */ (function () {\n        function ViewApi(type, getCurrentData, dateEnv) {\n            this.type = type;\n            this.getCurrentData = getCurrentData;\n            this.dateEnv = dateEnv;\n        }\n        Object.defineProperty(ViewApi.prototype, \"calendar\", {\n            get: function () {\n                return this.getCurrentData().calendarApi;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ViewApi.prototype, \"title\", {\n            get: function () {\n                return this.getCurrentData().viewTitle;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ViewApi.prototype, \"activeStart\", {\n            get: function () {\n                return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ViewApi.prototype, \"activeEnd\", {\n            get: function () {\n                return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ViewApi.prototype, \"currentStart\", {\n            get: function () {\n                return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ViewApi.prototype, \"currentEnd\", {\n            get: function () {\n                return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        ViewApi.prototype.getOption = function (name) {\n            return this.getCurrentData().options[name]; // are the view-specific options\n        };\n        return ViewApi;\n    }());\n\n    var EVENT_SOURCE_REFINERS = {\n        id: String,\n        defaultAllDay: Boolean,\n        url: String,\n        format: String,\n        events: identity,\n        eventDataTransform: identity,\n        // for any network-related sources\n        success: identity,\n        failure: identity,\n    };\n    function parseEventSource(raw, context, refiners) {\n        if (refiners === void 0) { refiners = buildEventSourceRefiners(context); }\n        var rawObj;\n        if (typeof raw === 'string') {\n            rawObj = { url: raw };\n        }\n        else if (typeof raw === 'function' || Array.isArray(raw)) {\n            rawObj = { events: raw };\n        }\n        else if (typeof raw === 'object' && raw) { // not null\n            rawObj = raw;\n        }\n        if (rawObj) {\n            var _a = refineProps(rawObj, refiners), refined = _a.refined, extra = _a.extra;\n            var metaRes = buildEventSourceMeta(refined, context);\n            if (metaRes) {\n                return {\n                    _raw: raw,\n                    isFetching: false,\n                    latestFetchId: '',\n                    fetchRange: null,\n                    defaultAllDay: refined.defaultAllDay,\n                    eventDataTransform: refined.eventDataTransform,\n                    success: refined.success,\n                    failure: refined.failure,\n                    publicId: refined.id || '',\n                    sourceId: guid(),\n                    sourceDefId: metaRes.sourceDefId,\n                    meta: metaRes.meta,\n                    ui: createEventUi(refined, context),\n                    extendedProps: extra,\n                };\n            }\n        }\n        return null;\n    }\n    function buildEventSourceRefiners(context) {\n        return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n    }\n    function buildEventSourceMeta(raw, context) {\n        var defs = context.pluginHooks.eventSourceDefs;\n        for (var i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n            var def = defs[i];\n            var meta = def.parseMeta(raw);\n            if (meta) {\n                return { sourceDefId: i, meta: meta };\n            }\n        }\n        return null;\n    }\n\n    function reduceCurrentDate(currentDate, action) {\n        switch (action.type) {\n            case 'CHANGE_DATE':\n                return action.dateMarker;\n            default:\n                return currentDate;\n        }\n    }\n    function getInitialDate(options, dateEnv) {\n        var initialDateInput = options.initialDate;\n        // compute the initial ambig-timezone date\n        if (initialDateInput != null) {\n            return dateEnv.createMarker(initialDateInput);\n        }\n        return getNow(options.now, dateEnv); // getNow already returns unzoned\n    }\n    function getNow(nowInput, dateEnv) {\n        if (typeof nowInput === 'function') {\n            nowInput = nowInput();\n        }\n        if (nowInput == null) {\n            return dateEnv.createNowMarker();\n        }\n        return dateEnv.createMarker(nowInput);\n    }\n\n    var CalendarApi = /** @class */ (function () {\n        function CalendarApi() {\n        }\n        CalendarApi.prototype.getCurrentData = function () {\n            return this.currentDataManager.getCurrentData();\n        };\n        CalendarApi.prototype.dispatch = function (action) {\n            return this.currentDataManager.dispatch(action);\n        };\n        Object.defineProperty(CalendarApi.prototype, \"view\", {\n            get: function () { return this.getCurrentData().viewApi; } // for public API\n            ,\n            enumerable: false,\n            configurable: true\n        });\n        CalendarApi.prototype.batchRendering = function (callback) {\n            callback();\n        };\n        CalendarApi.prototype.updateSize = function () {\n            this.trigger('_resize', true);\n        };\n        // Options\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.setOption = function (name, val) {\n            this.dispatch({\n                type: 'SET_OPTION',\n                optionName: name,\n                rawOptionValue: val,\n            });\n        };\n        CalendarApi.prototype.getOption = function (name) {\n            return this.currentDataManager.currentCalendarOptionsInput[name];\n        };\n        CalendarApi.prototype.getAvailableLocaleCodes = function () {\n            return Object.keys(this.getCurrentData().availableRawLocales);\n        };\n        // Trigger\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.on = function (handlerName, handler) {\n            var currentDataManager = this.currentDataManager;\n            if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n                currentDataManager.emitter.on(handlerName, handler);\n            }\n            else {\n                console.warn(\"Unknown listener name '\" + handlerName + \"'\");\n            }\n        };\n        CalendarApi.prototype.off = function (handlerName, handler) {\n            this.currentDataManager.emitter.off(handlerName, handler);\n        };\n        // not meant for public use\n        CalendarApi.prototype.trigger = function (handlerName) {\n            var _a;\n            var args = [];\n            for (var _i = 1; _i < arguments.length; _i++) {\n                args[_i - 1] = arguments[_i];\n            }\n            (_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArrays([handlerName], args));\n        };\n        // View\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.changeView = function (viewType, dateOrRange) {\n            var _this = this;\n            this.batchRendering(function () {\n                _this.unselect();\n                if (dateOrRange) {\n                    if (dateOrRange.start && dateOrRange.end) { // a range\n                        _this.dispatch({\n                            type: 'CHANGE_VIEW_TYPE',\n                            viewType: viewType,\n                        });\n                        _this.dispatch({\n                            type: 'SET_OPTION',\n                            optionName: 'visibleRange',\n                            rawOptionValue: dateOrRange,\n                        });\n                    }\n                    else {\n                        var dateEnv = _this.getCurrentData().dateEnv;\n                        _this.dispatch({\n                            type: 'CHANGE_VIEW_TYPE',\n                            viewType: viewType,\n                            dateMarker: dateEnv.createMarker(dateOrRange),\n                        });\n                    }\n                }\n                else {\n                    _this.dispatch({\n                        type: 'CHANGE_VIEW_TYPE',\n                        viewType: viewType,\n                    });\n                }\n            });\n        };\n        // Forces navigation to a view for the given date.\n        // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n        // needs to change\n        CalendarApi.prototype.zoomTo = function (dateMarker, viewType) {\n            var state = this.getCurrentData();\n            var spec;\n            viewType = viewType || 'day'; // day is default zoom\n            spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n            this.unselect();\n            if (spec) {\n                this.dispatch({\n                    type: 'CHANGE_VIEW_TYPE',\n                    viewType: spec.type,\n                    dateMarker: dateMarker,\n                });\n            }\n            else {\n                this.dispatch({\n                    type: 'CHANGE_DATE',\n                    dateMarker: dateMarker,\n                });\n            }\n        };\n        // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n        // Preference is given to views that have corresponding buttons.\n        CalendarApi.prototype.getUnitViewSpec = function (unit) {\n            var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;\n            var viewTypes = [].concat(toolbarConfig.viewsWithButtons);\n            var i;\n            var spec;\n            for (var viewType in viewSpecs) {\n                viewTypes.push(viewType);\n            }\n            for (i = 0; i < viewTypes.length; i += 1) {\n                spec = viewSpecs[viewTypes[i]];\n                if (spec) {\n                    if (spec.singleUnit === unit) {\n                        return spec;\n                    }\n                }\n            }\n            return null;\n        };\n        // Current Date\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.prev = function () {\n            this.unselect();\n            this.dispatch({ type: 'PREV' });\n        };\n        CalendarApi.prototype.next = function () {\n            this.unselect();\n            this.dispatch({ type: 'NEXT' });\n        };\n        CalendarApi.prototype.prevYear = function () {\n            var state = this.getCurrentData();\n            this.unselect();\n            this.dispatch({\n                type: 'CHANGE_DATE',\n                dateMarker: state.dateEnv.addYears(state.currentDate, -1),\n            });\n        };\n        CalendarApi.prototype.nextYear = function () {\n            var state = this.getCurrentData();\n            this.unselect();\n            this.dispatch({\n                type: 'CHANGE_DATE',\n                dateMarker: state.dateEnv.addYears(state.currentDate, 1),\n            });\n        };\n        CalendarApi.prototype.today = function () {\n            var state = this.getCurrentData();\n            this.unselect();\n            this.dispatch({\n                type: 'CHANGE_DATE',\n                dateMarker: getNow(state.calendarOptions.now, state.dateEnv),\n            });\n        };\n        CalendarApi.prototype.gotoDate = function (zonedDateInput) {\n            var state = this.getCurrentData();\n            this.unselect();\n            this.dispatch({\n                type: 'CHANGE_DATE',\n                dateMarker: state.dateEnv.createMarker(zonedDateInput),\n            });\n        };\n        CalendarApi.prototype.incrementDate = function (deltaInput) {\n            var state = this.getCurrentData();\n            var delta = createDuration(deltaInput);\n            if (delta) { // else, warn about invalid input?\n                this.unselect();\n                this.dispatch({\n                    type: 'CHANGE_DATE',\n                    dateMarker: state.dateEnv.add(state.currentDate, delta),\n                });\n            }\n        };\n        // for external API\n        CalendarApi.prototype.getDate = function () {\n            var state = this.getCurrentData();\n            return state.dateEnv.toDate(state.currentDate);\n        };\n        // Date Formatting Utils\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.formatDate = function (d, formatter) {\n            var dateEnv = this.getCurrentData().dateEnv;\n            return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n        };\n        // `settings` is for formatter AND isEndExclusive\n        CalendarApi.prototype.formatRange = function (d0, d1, settings) {\n            var dateEnv = this.getCurrentData().dateEnv;\n            return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n        };\n        CalendarApi.prototype.formatIso = function (d, omitTime) {\n            var dateEnv = this.getCurrentData().dateEnv;\n            return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime });\n        };\n        // Date Selection / Event Selection / DayClick\n        // -----------------------------------------------------------------------------------------------------------------\n        // this public method receives start/end dates in any format, with any timezone\n        // NOTE: args were changed from v3\n        CalendarApi.prototype.select = function (dateOrObj, endDate) {\n            var selectionInput;\n            if (endDate == null) {\n                if (dateOrObj.start != null) {\n                    selectionInput = dateOrObj;\n                }\n                else {\n                    selectionInput = {\n                        start: dateOrObj,\n                        end: null,\n                    };\n                }\n            }\n            else {\n                selectionInput = {\n                    start: dateOrObj,\n                    end: endDate,\n                };\n            }\n            var state = this.getCurrentData();\n            var selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));\n            if (selection) { // throw parse error otherwise?\n                this.dispatch({ type: 'SELECT_DATES', selection: selection });\n                triggerDateSelect(selection, null, state);\n            }\n        };\n        // public method\n        CalendarApi.prototype.unselect = function (pev) {\n            var state = this.getCurrentData();\n            if (state.dateSelection) {\n                this.dispatch({ type: 'UNSELECT_DATES' });\n                triggerDateUnselect(pev, state);\n            }\n        };\n        // Public Events API\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.addEvent = function (eventInput, sourceInput) {\n            if (eventInput instanceof EventApi) {\n                var def = eventInput._def;\n                var instance = eventInput._instance;\n                var currentData = this.getCurrentData();\n                // not already present? don't want to add an old snapshot\n                if (!currentData.eventStore.defs[def.defId]) {\n                    this.dispatch({\n                        type: 'ADD_EVENTS',\n                        eventStore: eventTupleToStore({ def: def, instance: instance }),\n                    });\n                    this.triggerEventAdd(eventInput);\n                }\n                return eventInput;\n            }\n            var state = this.getCurrentData();\n            var eventSource;\n            if (sourceInput instanceof EventSourceApi) {\n                eventSource = sourceInput.internalEventSource;\n            }\n            else if (typeof sourceInput === 'boolean') {\n                if (sourceInput) { // true. part of the first event source\n                    eventSource = hashValuesToArray(state.eventSources)[0];\n                }\n            }\n            else if (sourceInput != null) { // an ID. accepts a number too\n                var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n                if (!sourceApi) {\n                    console.warn(\"Could not find an event source with ID \\\"\" + sourceInput + \"\\\"\"); // TODO: test\n                    return null;\n                }\n                eventSource = sourceApi.internalEventSource;\n            }\n            var tuple = parseEvent(eventInput, eventSource, state, false);\n            if (tuple) {\n                var newEventApi = new EventApi(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n                this.dispatch({\n                    type: 'ADD_EVENTS',\n                    eventStore: eventTupleToStore(tuple),\n                });\n                this.triggerEventAdd(newEventApi);\n                return newEventApi;\n            }\n            return null;\n        };\n        CalendarApi.prototype.triggerEventAdd = function (eventApi) {\n            var _this = this;\n            var emitter = this.getCurrentData().emitter;\n            emitter.trigger('eventAdd', {\n                event: eventApi,\n                relatedEvents: [],\n                revert: function () {\n                    _this.dispatch({\n                        type: 'REMOVE_EVENTS',\n                        eventStore: eventApiToStore(eventApi),\n                    });\n                },\n            });\n        };\n        // TODO: optimize\n        CalendarApi.prototype.getEventById = function (id) {\n            var state = this.getCurrentData();\n            var _a = state.eventStore, defs = _a.defs, instances = _a.instances;\n            id = String(id);\n            for (var defId in defs) {\n                var def = defs[defId];\n                if (def.publicId === id) {\n                    if (def.recurringDef) {\n                        return new EventApi(state, def, null);\n                    }\n                    for (var instanceId in instances) {\n                        var instance = instances[instanceId];\n                        if (instance.defId === def.defId) {\n                            return new EventApi(state, def, instance);\n                        }\n                    }\n                }\n            }\n            return null;\n        };\n        CalendarApi.prototype.getEvents = function () {\n            var currentData = this.getCurrentData();\n            return buildEventApis(currentData.eventStore, currentData);\n        };\n        CalendarApi.prototype.removeAllEvents = function () {\n            this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n        };\n        // Public Event Sources API\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.getEventSources = function () {\n            var state = this.getCurrentData();\n            var sourceHash = state.eventSources;\n            var sourceApis = [];\n            for (var internalId in sourceHash) {\n                sourceApis.push(new EventSourceApi(state, sourceHash[internalId]));\n            }\n            return sourceApis;\n        };\n        CalendarApi.prototype.getEventSourceById = function (id) {\n            var state = this.getCurrentData();\n            var sourceHash = state.eventSources;\n            id = String(id);\n            for (var sourceId in sourceHash) {\n                if (sourceHash[sourceId].publicId === id) {\n                    return new EventSourceApi(state, sourceHash[sourceId]);\n                }\n            }\n            return null;\n        };\n        CalendarApi.prototype.addEventSource = function (sourceInput) {\n            var state = this.getCurrentData();\n            if (sourceInput instanceof EventSourceApi) {\n                // not already present? don't want to add an old snapshot\n                if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n                    this.dispatch({\n                        type: 'ADD_EVENT_SOURCES',\n                        sources: [sourceInput.internalEventSource],\n                    });\n                }\n                return sourceInput;\n            }\n            var eventSource = parseEventSource(sourceInput, state);\n            if (eventSource) { // TODO: error otherwise?\n                this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n                return new EventSourceApi(state, eventSource);\n            }\n            return null;\n        };\n        CalendarApi.prototype.removeAllEventSources = function () {\n            this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n        };\n        CalendarApi.prototype.refetchEvents = function () {\n            this.dispatch({ type: 'FETCH_EVENT_SOURCES' });\n        };\n        // Scroll\n        // -----------------------------------------------------------------------------------------------------------------\n        CalendarApi.prototype.scrollToTime = function (timeInput) {\n            var time = createDuration(timeInput);\n            if (time) {\n                this.trigger('_scrollRequest', { time: time });\n            }\n        };\n        return CalendarApi;\n    }());\n\n    var EventApi = /** @class */ (function () {\n        // instance will be null if expressing a recurring event that has no current instances,\n        // OR if trying to validate an incoming external event that has no dates assigned\n        function EventApi(context, def, instance) {\n            this._context = context;\n            this._def = def;\n            this._instance = instance || null;\n        }\n        /*\n        TODO: make event struct more responsible for this\n        */\n        EventApi.prototype.setProp = function (name, val) {\n            var _a, _b;\n            if (name in EVENT_DATE_REFINERS) {\n                console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.');\n            }\n            else if (name in EVENT_NON_DATE_REFINERS) {\n                val = EVENT_NON_DATE_REFINERS[name](val);\n                this.mutate({\n                    standardProps: (_a = {}, _a[name] = val, _a),\n                });\n            }\n            else if (name in EVENT_UI_REFINERS) {\n                var ui = EVENT_UI_REFINERS[name](val);\n                if (name === 'color') {\n                    ui = { backgroundColor: val, borderColor: val };\n                }\n                else if (name === 'editable') {\n                    ui = { startEditable: val, durationEditable: val };\n                }\n                else {\n                    ui = (_b = {}, _b[name] = val, _b);\n                }\n                this.mutate({\n                    standardProps: { ui: ui },\n                });\n            }\n            else {\n                console.warn(\"Could not set prop '\" + name + \"'. Use setExtendedProp instead.\");\n            }\n        };\n        EventApi.prototype.setExtendedProp = function (name, val) {\n            var _a;\n            this.mutate({\n                extendedProps: (_a = {}, _a[name] = val, _a),\n            });\n        };\n        EventApi.prototype.setStart = function (startInput, options) {\n            if (options === void 0) { options = {}; }\n            var dateEnv = this._context.dateEnv;\n            var start = dateEnv.createMarker(startInput);\n            if (start && this._instance) { // TODO: warning if parsed bad\n                var instanceRange = this._instance.range;\n                var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n                if (options.maintainDuration) {\n                    this.mutate({ datesDelta: startDelta });\n                }\n                else {\n                    this.mutate({ startDelta: startDelta });\n                }\n            }\n        };\n        EventApi.prototype.setEnd = function (endInput, options) {\n            if (options === void 0) { options = {}; }\n            var dateEnv = this._context.dateEnv;\n            var end;\n            if (endInput != null) {\n                end = dateEnv.createMarker(endInput);\n                if (!end) {\n                    return; // TODO: warning if parsed bad\n                }\n            }\n            if (this._instance) {\n                if (end) {\n                    var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n                    this.mutate({ endDelta: endDelta });\n                }\n                else {\n                    this.mutate({ standardProps: { hasEnd: false } });\n                }\n            }\n        };\n        EventApi.prototype.setDates = function (startInput, endInput, options) {\n            if (options === void 0) { options = {}; }\n            var dateEnv = this._context.dateEnv;\n            var standardProps = { allDay: options.allDay };\n            var start = dateEnv.createMarker(startInput);\n            var end;\n            if (!start) {\n                return; // TODO: warning if parsed bad\n            }\n            if (endInput != null) {\n                end = dateEnv.createMarker(endInput);\n                if (!end) { // TODO: warning if parsed bad\n                    return;\n                }\n            }\n            if (this._instance) {\n                var instanceRange = this._instance.range;\n                // when computing the diff for an event being converted to all-day,\n                // compute diff off of the all-day values the way event-mutation does.\n                if (options.allDay === true) {\n                    instanceRange = computeAlignedDayRange(instanceRange);\n                }\n                var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n                if (end) {\n                    var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n                    if (durationsEqual(startDelta, endDelta)) {\n                        this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n                    }\n                    else {\n                        this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps });\n                    }\n                }\n                else { // means \"clear the end\"\n                    standardProps.hasEnd = false;\n                    this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n                }\n            }\n        };\n        EventApi.prototype.moveStart = function (deltaInput) {\n            var delta = createDuration(deltaInput);\n            if (delta) { // TODO: warning if parsed bad\n                this.mutate({ startDelta: delta });\n            }\n        };\n        EventApi.prototype.moveEnd = function (deltaInput) {\n            var delta = createDuration(deltaInput);\n            if (delta) { // TODO: warning if parsed bad\n                this.mutate({ endDelta: delta });\n            }\n        };\n        EventApi.prototype.moveDates = function (deltaInput) {\n            var delta = createDuration(deltaInput);\n            if (delta) { // TODO: warning if parsed bad\n                this.mutate({ datesDelta: delta });\n            }\n        };\n        EventApi.prototype.setAllDay = function (allDay, options) {\n            if (options === void 0) { options = {}; }\n            var standardProps = { allDay: allDay };\n            var maintainDuration = options.maintainDuration;\n            if (maintainDuration == null) {\n                maintainDuration = this._context.options.allDayMaintainDuration;\n            }\n            if (this._def.allDay !== allDay) {\n                standardProps.hasEnd = maintainDuration;\n            }\n            this.mutate({ standardProps: standardProps });\n        };\n        EventApi.prototype.formatRange = function (formatInput) {\n            var dateEnv = this._context.dateEnv;\n            var instance = this._instance;\n            var formatter = createFormatter(formatInput);\n            if (this._def.hasEnd) {\n                return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n                    forcedStartTzo: instance.forcedStartTzo,\n                    forcedEndTzo: instance.forcedEndTzo,\n                });\n            }\n            return dateEnv.format(instance.range.start, formatter, {\n                forcedTzo: instance.forcedStartTzo,\n            });\n        };\n        EventApi.prototype.mutate = function (mutation) {\n            var instance = this._instance;\n            if (instance) {\n                var def = this._def;\n                var context_1 = this._context;\n                var eventStore_1 = context_1.getCurrentData().eventStore;\n                var relevantEvents = getRelevantEvents(eventStore_1, instance.instanceId);\n                var eventConfigBase = {\n                    '': {\n                        display: '',\n                        startEditable: true,\n                        durationEditable: true,\n                        constraints: [],\n                        overlap: null,\n                        allows: [],\n                        backgroundColor: '',\n                        borderColor: '',\n                        textColor: '',\n                        classNames: [],\n                    },\n                };\n                relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context_1);\n                var oldEvent = new EventApi(context_1, def, instance); // snapshot\n                this._def = relevantEvents.defs[def.defId];\n                this._instance = relevantEvents.instances[instance.instanceId];\n                context_1.dispatch({\n                    type: 'MERGE_EVENTS',\n                    eventStore: relevantEvents,\n                });\n                context_1.emitter.trigger('eventChange', {\n                    oldEvent: oldEvent,\n                    event: this,\n                    relatedEvents: buildEventApis(relevantEvents, context_1, instance),\n                    revert: function () {\n                        context_1.dispatch({\n                            type: 'RESET_EVENTS',\n                            eventStore: eventStore_1,\n                        });\n                    },\n                });\n            }\n        };\n        EventApi.prototype.remove = function () {\n            var context = this._context;\n            var asStore = eventApiToStore(this);\n            context.dispatch({\n                type: 'REMOVE_EVENTS',\n                eventStore: asStore,\n            });\n            context.emitter.trigger('eventRemove', {\n                event: this,\n                relatedEvents: [],\n                revert: function () {\n                    context.dispatch({\n                        type: 'MERGE_EVENTS',\n                        eventStore: asStore,\n                    });\n                },\n            });\n        };\n        Object.defineProperty(EventApi.prototype, \"source\", {\n            get: function () {\n                var sourceId = this._def.sourceId;\n                if (sourceId) {\n                    return new EventSourceApi(this._context, this._context.getCurrentData().eventSources[sourceId]);\n                }\n                return null;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"start\", {\n            get: function () {\n                return this._instance ?\n                    this._context.dateEnv.toDate(this._instance.range.start) :\n                    null;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"end\", {\n            get: function () {\n                return (this._instance && this._def.hasEnd) ?\n                    this._context.dateEnv.toDate(this._instance.range.end) :\n                    null;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"startStr\", {\n            get: function () {\n                var instance = this._instance;\n                if (instance) {\n                    return this._context.dateEnv.formatIso(instance.range.start, {\n                        omitTime: this._def.allDay,\n                        forcedTzo: instance.forcedStartTzo,\n                    });\n                }\n                return '';\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"endStr\", {\n            get: function () {\n                var instance = this._instance;\n                if (instance && this._def.hasEnd) {\n                    return this._context.dateEnv.formatIso(instance.range.end, {\n                        omitTime: this._def.allDay,\n                        forcedTzo: instance.forcedEndTzo,\n                    });\n                }\n                return '';\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"id\", {\n            // computable props that all access the def\n            // TODO: find a TypeScript-compatible way to do this at scale\n            get: function () { return this._def.publicId; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"groupId\", {\n            get: function () { return this._def.groupId; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"allDay\", {\n            get: function () { return this._def.allDay; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"title\", {\n            get: function () { return this._def.title; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"url\", {\n            get: function () { return this._def.url; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"display\", {\n            get: function () { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier\n            ,\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"startEditable\", {\n            get: function () { return this._def.ui.startEditable; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n            get: function () { return this._def.ui.durationEditable; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"constraint\", {\n            get: function () { return this._def.ui.constraints[0] || null; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"overlap\", {\n            get: function () { return this._def.ui.overlap; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"allow\", {\n            get: function () { return this._def.ui.allows[0] || null; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n            get: function () { return this._def.ui.backgroundColor; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"borderColor\", {\n            get: function () { return this._def.ui.borderColor; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"textColor\", {\n            get: function () { return this._def.ui.textColor; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"classNames\", {\n            // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n            get: function () { return this._def.ui.classNames; },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n            get: function () { return this._def.extendedProps; },\n            enumerable: false,\n            configurable: true\n        });\n        EventApi.prototype.toPlainObject = function (settings) {\n            if (settings === void 0) { settings = {}; }\n            var def = this._def;\n            var ui = def.ui;\n            var _a = this, startStr = _a.startStr, endStr = _a.endStr;\n            var res = {};\n            if (def.title) {\n                res.title = def.title;\n            }\n            if (startStr) {\n                res.start = startStr;\n            }\n            if (endStr) {\n                res.end = endStr;\n            }\n            if (def.publicId) {\n                res.id = def.publicId;\n            }\n            if (def.groupId) {\n                res.groupId = def.groupId;\n            }\n            if (def.url) {\n                res.url = def.url;\n            }\n            if (ui.display && ui.display !== 'auto') {\n                res.display = ui.display;\n            }\n            // TODO: what about recurring-event properties???\n            // TODO: include startEditable/durationEditable/constraint/overlap/allow\n            if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n                res.color = ui.backgroundColor;\n            }\n            else {\n                if (ui.backgroundColor) {\n                    res.backgroundColor = ui.backgroundColor;\n                }\n                if (ui.borderColor) {\n                    res.borderColor = ui.borderColor;\n                }\n            }\n            if (ui.textColor) {\n                res.textColor = ui.textColor;\n            }\n            if (ui.classNames.length) {\n                res.classNames = ui.classNames;\n            }\n            if (Object.keys(def.extendedProps).length) {\n                if (settings.collapseExtendedProps) {\n                    __assign(res, def.extendedProps);\n                }\n                else {\n                    res.extendedProps = def.extendedProps;\n                }\n            }\n            return res;\n        };\n        EventApi.prototype.toJSON = function () {\n            return this.toPlainObject();\n        };\n        return EventApi;\n    }());\n    function eventApiToStore(eventApi) {\n        var _a, _b;\n        var def = eventApi._def;\n        var instance = eventApi._instance;\n        return {\n            defs: (_a = {}, _a[def.defId] = def, _a),\n            instances: instance\n                ? (_b = {}, _b[instance.instanceId] = instance, _b) : {},\n        };\n    }\n    function buildEventApis(eventStore, context, excludeInstance) {\n        var defs = eventStore.defs, instances = eventStore.instances;\n        var eventApis = [];\n        var excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n        for (var id in instances) {\n            var instance = instances[id];\n            var def = defs[instance.defId];\n            if (instance.instanceId !== excludeInstanceId) {\n                eventApis.push(new EventApi(context, def, instance));\n            }\n        }\n        return eventApis;\n    }\n\n    var calendarSystemClassMap = {};\n    function registerCalendarSystem(name, theClass) {\n        calendarSystemClassMap[name] = theClass;\n    }\n    function createCalendarSystem(name) {\n        return new calendarSystemClassMap[name]();\n    }\n    var GregorianCalendarSystem = /** @class */ (function () {\n        function GregorianCalendarSystem() {\n        }\n        GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n            return d.getUTCFullYear();\n        };\n        GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n            return d.getUTCMonth();\n        };\n        GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n            return d.getUTCDate();\n        };\n        GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n            return arrayToUtcDate(arr);\n        };\n        GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n            return dateToUtcArray(marker);\n        };\n        return GregorianCalendarSystem;\n    }());\n    registerCalendarSystem('gregory', GregorianCalendarSystem);\n\n    var ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\n    function parse(str) {\n        var m = ISO_RE.exec(str);\n        if (m) {\n            var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(\"0.\" + m[12]) * 1000 : 0));\n            if (isValidDate(marker)) {\n                var timeZoneOffset = null;\n                if (m[13]) {\n                    timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n                        Number(m[18] || 0));\n                }\n                return {\n                    marker: marker,\n                    isTimeUnspecified: !m[6],\n                    timeZoneOffset: timeZoneOffset,\n                };\n            }\n        }\n        return null;\n    }\n\n    var DateEnv = /** @class */ (function () {\n        function DateEnv(settings) {\n            var timeZone = this.timeZone = settings.timeZone;\n            var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n            if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n                this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n            }\n            this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n            this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n            this.locale = settings.locale;\n            this.weekDow = settings.locale.week.dow;\n            this.weekDoy = settings.locale.week.doy;\n            if (settings.weekNumberCalculation === 'ISO') {\n                this.weekDow = 1;\n                this.weekDoy = 4;\n            }\n            if (typeof settings.firstDay === 'number') {\n                this.weekDow = settings.firstDay;\n            }\n            if (typeof settings.weekNumberCalculation === 'function') {\n                this.weekNumberFunc = settings.weekNumberCalculation;\n            }\n            this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n            this.cmdFormatter = settings.cmdFormatter;\n            this.defaultSeparator = settings.defaultSeparator;\n        }\n        // Creating / Parsing\n        DateEnv.prototype.createMarker = function (input) {\n            var meta = this.createMarkerMeta(input);\n            if (meta === null) {\n                return null;\n            }\n            return meta.marker;\n        };\n        DateEnv.prototype.createNowMarker = function () {\n            if (this.canComputeOffset) {\n                return this.timestampToMarker(new Date().valueOf());\n            }\n            // if we can't compute the current date val for a timezone,\n            // better to give the current local date vals than UTC\n            return arrayToUtcDate(dateToLocalArray(new Date()));\n        };\n        DateEnv.prototype.createMarkerMeta = function (input) {\n            if (typeof input === 'string') {\n                return this.parse(input);\n            }\n            var marker = null;\n            if (typeof input === 'number') {\n                marker = this.timestampToMarker(input);\n            }\n            else if (input instanceof Date) {\n                input = input.valueOf();\n                if (!isNaN(input)) {\n                    marker = this.timestampToMarker(input);\n                }\n            }\n            else if (Array.isArray(input)) {\n                marker = arrayToUtcDate(input);\n            }\n            if (marker === null || !isValidDate(marker)) {\n                return null;\n            }\n            return { marker: marker, isTimeUnspecified: false, forcedTzo: null };\n        };\n        DateEnv.prototype.parse = function (s) {\n            var parts = parse(s);\n            if (parts === null) {\n                return null;\n            }\n            var marker = parts.marker;\n            var forcedTzo = null;\n            if (parts.timeZoneOffset !== null) {\n                if (this.canComputeOffset) {\n                    marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n                }\n                else {\n                    forcedTzo = parts.timeZoneOffset;\n                }\n            }\n            return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo };\n        };\n        // Accessors\n        DateEnv.prototype.getYear = function (marker) {\n            return this.calendarSystem.getMarkerYear(marker);\n        };\n        DateEnv.prototype.getMonth = function (marker) {\n            return this.calendarSystem.getMarkerMonth(marker);\n        };\n        // Adding / Subtracting\n        DateEnv.prototype.add = function (marker, dur) {\n            var a = this.calendarSystem.markerToArray(marker);\n            a[0] += dur.years;\n            a[1] += dur.months;\n            a[2] += dur.days;\n            a[6] += dur.milliseconds;\n            return this.calendarSystem.arrayToMarker(a);\n        };\n        DateEnv.prototype.subtract = function (marker, dur) {\n            var a = this.calendarSystem.markerToArray(marker);\n            a[0] -= dur.years;\n            a[1] -= dur.months;\n            a[2] -= dur.days;\n            a[6] -= dur.milliseconds;\n            return this.calendarSystem.arrayToMarker(a);\n        };\n        DateEnv.prototype.addYears = function (marker, n) {\n            var a = this.calendarSystem.markerToArray(marker);\n            a[0] += n;\n            return this.calendarSystem.arrayToMarker(a);\n        };\n        DateEnv.prototype.addMonths = function (marker, n) {\n            var a = this.calendarSystem.markerToArray(marker);\n            a[1] += n;\n            return this.calendarSystem.arrayToMarker(a);\n        };\n        // Diffing Whole Units\n        DateEnv.prototype.diffWholeYears = function (m0, m1) {\n            var calendarSystem = this.calendarSystem;\n            if (timeAsMs(m0) === timeAsMs(m1) &&\n                calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n                calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n                return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n            }\n            return null;\n        };\n        DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n            var calendarSystem = this.calendarSystem;\n            if (timeAsMs(m0) === timeAsMs(m1) &&\n                calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n                return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n                    (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n            }\n            return null;\n        };\n        // Range / Duration\n        DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n            var n = this.diffWholeYears(m0, m1);\n            if (n !== null) {\n                return { unit: 'year', value: n };\n            }\n            n = this.diffWholeMonths(m0, m1);\n            if (n !== null) {\n                return { unit: 'month', value: n };\n            }\n            n = diffWholeWeeks(m0, m1);\n            if (n !== null) {\n                return { unit: 'week', value: n };\n            }\n            n = diffWholeDays(m0, m1);\n            if (n !== null) {\n                return { unit: 'day', value: n };\n            }\n            n = diffHours(m0, m1);\n            if (isInt(n)) {\n                return { unit: 'hour', value: n };\n            }\n            n = diffMinutes(m0, m1);\n            if (isInt(n)) {\n                return { unit: 'minute', value: n };\n            }\n            n = diffSeconds(m0, m1);\n            if (isInt(n)) {\n                return { unit: 'second', value: n };\n            }\n            return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n        };\n        DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n            // TODO: can use greatestWholeUnit\n            var diff;\n            if (d.years) {\n                diff = this.diffWholeYears(m0, m1);\n                if (diff !== null) {\n                    return diff / asRoughYears(d);\n                }\n            }\n            if (d.months) {\n                diff = this.diffWholeMonths(m0, m1);\n                if (diff !== null) {\n                    return diff / asRoughMonths(d);\n                }\n            }\n            if (d.days) {\n                diff = diffWholeDays(m0, m1);\n                if (diff !== null) {\n                    return diff / asRoughDays(d);\n                }\n            }\n            return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n        };\n        // Start-Of\n        // these DON'T return zoned-dates. only UTC start-of dates\n        DateEnv.prototype.startOf = function (m, unit) {\n            if (unit === 'year') {\n                return this.startOfYear(m);\n            }\n            if (unit === 'month') {\n                return this.startOfMonth(m);\n            }\n            if (unit === 'week') {\n                return this.startOfWeek(m);\n            }\n            if (unit === 'day') {\n                return startOfDay(m);\n            }\n            if (unit === 'hour') {\n                return startOfHour(m);\n            }\n            if (unit === 'minute') {\n                return startOfMinute(m);\n            }\n            if (unit === 'second') {\n                return startOfSecond(m);\n            }\n            return null;\n        };\n        DateEnv.prototype.startOfYear = function (m) {\n            return this.calendarSystem.arrayToMarker([\n                this.calendarSystem.getMarkerYear(m),\n            ]);\n        };\n        DateEnv.prototype.startOfMonth = function (m) {\n            return this.calendarSystem.arrayToMarker([\n                this.calendarSystem.getMarkerYear(m),\n                this.calendarSystem.getMarkerMonth(m),\n            ]);\n        };\n        DateEnv.prototype.startOfWeek = function (m) {\n            return this.calendarSystem.arrayToMarker([\n                this.calendarSystem.getMarkerYear(m),\n                this.calendarSystem.getMarkerMonth(m),\n                m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n            ]);\n        };\n        // Week Number\n        DateEnv.prototype.computeWeekNumber = function (marker) {\n            if (this.weekNumberFunc) {\n                return this.weekNumberFunc(this.toDate(marker));\n            }\n            return weekOfYear(marker, this.weekDow, this.weekDoy);\n        };\n        // TODO: choke on timeZoneName: long\n        DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n            if (dateOptions === void 0) { dateOptions = {}; }\n            return formatter.format({\n                marker: marker,\n                timeZoneOffset: dateOptions.forcedTzo != null ?\n                    dateOptions.forcedTzo :\n                    this.offsetForMarker(marker),\n            }, this);\n        };\n        DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n            if (dateOptions === void 0) { dateOptions = {}; }\n            if (dateOptions.isEndExclusive) {\n                end = addMs(end, -1);\n            }\n            return formatter.formatRange({\n                marker: start,\n                timeZoneOffset: dateOptions.forcedStartTzo != null ?\n                    dateOptions.forcedStartTzo :\n                    this.offsetForMarker(start),\n            }, {\n                marker: end,\n                timeZoneOffset: dateOptions.forcedEndTzo != null ?\n                    dateOptions.forcedEndTzo :\n                    this.offsetForMarker(end),\n            }, this, dateOptions.defaultSeparator);\n        };\n        /*\n        DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n        might as well use buildIsoString or some other util directly\n        */\n        DateEnv.prototype.formatIso = function (marker, extraOptions) {\n            if (extraOptions === void 0) { extraOptions = {}; }\n            var timeZoneOffset = null;\n            if (!extraOptions.omitTimeZoneOffset) {\n                if (extraOptions.forcedTzo != null) {\n                    timeZoneOffset = extraOptions.forcedTzo;\n                }\n                else {\n                    timeZoneOffset = this.offsetForMarker(marker);\n                }\n            }\n            return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n        };\n        // TimeZone\n        DateEnv.prototype.timestampToMarker = function (ms) {\n            if (this.timeZone === 'local') {\n                return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n            }\n            if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n                return new Date(ms);\n            }\n            return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n        };\n        DateEnv.prototype.offsetForMarker = function (m) {\n            if (this.timeZone === 'local') {\n                return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n            }\n            if (this.timeZone === 'UTC') {\n                return 0;\n            }\n            if (this.namedTimeZoneImpl) {\n                return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n            }\n            return null;\n        };\n        // Conversion\n        DateEnv.prototype.toDate = function (m, forcedTzo) {\n            if (this.timeZone === 'local') {\n                return arrayToLocalDate(dateToUtcArray(m));\n            }\n            if (this.timeZone === 'UTC') {\n                return new Date(m.valueOf()); // make sure it's a copy\n            }\n            if (!this.namedTimeZoneImpl) {\n                return new Date(m.valueOf() - (forcedTzo || 0));\n            }\n            return new Date(m.valueOf() -\n                this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n        };\n        return DateEnv;\n    }());\n\n    var globalLocales = [];\n\n    var RAW_EN_LOCALE = {\n        code: 'en',\n        week: {\n            dow: 0,\n            doy: 4,\n        },\n        direction: 'ltr',\n        buttonText: {\n            prev: 'prev',\n            next: 'next',\n            prevYear: 'prev year',\n            nextYear: 'next year',\n            year: 'year',\n            today: 'today',\n            month: 'month',\n            week: 'week',\n            day: 'day',\n            list: 'list',\n        },\n        weekText: 'W',\n        allDayText: 'all-day',\n        moreLinkText: 'more',\n        noEventsText: 'No events to display',\n    };\n    function organizeRawLocales(explicitRawLocales) {\n        var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n        var allRawLocales = globalLocales.concat(explicitRawLocales);\n        var rawLocaleMap = {\n            en: RAW_EN_LOCALE,\n        };\n        for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n            var rawLocale = allRawLocales_1[_i];\n            rawLocaleMap[rawLocale.code] = rawLocale;\n        }\n        return {\n            map: rawLocaleMap,\n            defaultCode: defaultCode,\n        };\n    }\n    function buildLocale(inputSingular, available) {\n        if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n            return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n        }\n        return queryLocale(inputSingular, available);\n    }\n    function queryLocale(codeArg, available) {\n        var codes = [].concat(codeArg || []); // will convert to array\n        var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n        return parseLocale(codeArg, codes, raw);\n    }\n    function queryRawLocale(codes, available) {\n        for (var i = 0; i < codes.length; i += 1) {\n            var parts = codes[i].toLocaleLowerCase().split('-');\n            for (var j = parts.length; j > 0; j -= 1) {\n                var simpleId = parts.slice(0, j).join('-');\n                if (available[simpleId]) {\n                    return available[simpleId];\n                }\n            }\n        }\n        return null;\n    }\n    function parseLocale(codeArg, codes, raw) {\n        var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);\n        delete merged.code; // don't want this part of the options\n        var week = merged.week;\n        delete merged.week;\n        return {\n            codeArg: codeArg,\n            codes: codes,\n            week: week,\n            simpleNumberFormat: new Intl.NumberFormat(codeArg),\n            options: merged,\n        };\n    }\n\n    function formatDate(dateInput, options) {\n        if (options === void 0) { options = {}; }\n        var dateEnv = buildDateEnv(options);\n        var formatter = createFormatter(options);\n        var dateMeta = dateEnv.createMarkerMeta(dateInput);\n        if (!dateMeta) { // TODO: warning?\n            return '';\n        }\n        return dateEnv.format(dateMeta.marker, formatter, {\n            forcedTzo: dateMeta.forcedTzo,\n        });\n    }\n    function formatRange(startInput, endInput, options) {\n        var dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n        var formatter = createFormatter(options);\n        var startMeta = dateEnv.createMarkerMeta(startInput);\n        var endMeta = dateEnv.createMarkerMeta(endInput);\n        if (!startMeta || !endMeta) { // TODO: warning?\n            return '';\n        }\n        return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n            forcedStartTzo: startMeta.forcedTzo,\n            forcedEndTzo: endMeta.forcedTzo,\n            isEndExclusive: options.isEndExclusive,\n            defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n        });\n    }\n    // TODO: more DRY and optimized\n    function buildDateEnv(settings) {\n        var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n        return new DateEnv(__assign(__assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale: locale }));\n    }\n\n    var DEF_DEFAULTS = {\n        startTime: '09:00',\n        endTime: '17:00',\n        daysOfWeek: [1, 2, 3, 4, 5],\n        display: 'inverse-background',\n        classNames: 'fc-non-business',\n        groupId: '_businessHours',\n    };\n    /*\n    TODO: pass around as EventDefHash!!!\n    */\n    function parseBusinessHours(input, context) {\n        return parseEvents(refineInputs(input), null, context);\n    }\n    function refineInputs(input) {\n        var rawDefs;\n        if (input === true) {\n            rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n        }\n        else if (Array.isArray(input)) {\n            // if specifying an array, every sub-definition NEEDS a day-of-week\n            rawDefs = input.filter(function (rawDef) { return rawDef.daysOfWeek; });\n        }\n        else if (typeof input === 'object' && input) { // non-null object\n            rawDefs = [input];\n        }\n        else { // is probably false\n            rawDefs = [];\n        }\n        rawDefs = rawDefs.map(function (rawDef) { return (__assign(__assign({}, DEF_DEFAULTS), rawDef)); });\n        return rawDefs;\n    }\n\n    function pointInsideRect(point, rect) {\n        return point.left >= rect.left &&\n            point.left < rect.right &&\n            point.top >= rect.top &&\n            point.top < rect.bottom;\n    }\n    // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\n    function intersectRects(rect1, rect2) {\n        var res = {\n            left: Math.max(rect1.left, rect2.left),\n            right: Math.min(rect1.right, rect2.right),\n            top: Math.max(rect1.top, rect2.top),\n            bottom: Math.min(rect1.bottom, rect2.bottom),\n        };\n        if (res.left < res.right && res.top < res.bottom) {\n            return res;\n        }\n        return false;\n    }\n    function translateRect(rect, deltaX, deltaY) {\n        return {\n            left: rect.left + deltaX,\n            right: rect.right + deltaX,\n            top: rect.top + deltaY,\n            bottom: rect.bottom + deltaY,\n        };\n    }\n    // Returns a new point that will have been moved to reside within the given rectangle\n    function constrainPoint(point, rect) {\n        return {\n            left: Math.min(Math.max(point.left, rect.left), rect.right),\n            top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n        };\n    }\n    // Returns a point that is the center of the given rectangle\n    function getRectCenter(rect) {\n        return {\n            left: (rect.left + rect.right) / 2,\n            top: (rect.top + rect.bottom) / 2,\n        };\n    }\n    // Subtracts point2's coordinates from point1's coordinates, returning a delta\n    function diffPoints(point1, point2) {\n        return {\n            left: point1.left - point2.left,\n            top: point1.top - point2.top,\n        };\n    }\n\n    var canVGrowWithinCell;\n    function getCanVGrowWithinCell() {\n        if (canVGrowWithinCell == null) {\n            canVGrowWithinCell = computeCanVGrowWithinCell();\n        }\n        return canVGrowWithinCell;\n    }\n    function computeCanVGrowWithinCell() {\n        // for SSR, because this function is call immediately at top-level\n        // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n        if (typeof document === 'undefined') {\n            return true;\n        }\n        var el = document.createElement('div');\n        el.style.position = 'absolute';\n        el.style.top = '0px';\n        el.style.left = '0px';\n        el.innerHTML = '<table><tr><td><div></div></td></tr></table>';\n        el.querySelector('table').style.height = '100px';\n        el.querySelector('div').style.height = '100%';\n        document.body.appendChild(el);\n        var div = el.querySelector('div');\n        var possible = div.offsetHeight > 0;\n        document.body.removeChild(el);\n        return possible;\n    }\n\n    var EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\n    var Splitter = /** @class */ (function () {\n        function Splitter() {\n            this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n            this.splitDateSelection = memoize(this._splitDateSpan);\n            this.splitEventStore = memoize(this._splitEventStore);\n            this.splitIndividualUi = memoize(this._splitIndividualUi);\n            this.splitEventDrag = memoize(this._splitInteraction);\n            this.splitEventResize = memoize(this._splitInteraction);\n            this.eventUiBuilders = {}; // TODO: typescript protection\n        }\n        Splitter.prototype.splitProps = function (props) {\n            var _this = this;\n            var keyInfos = this.getKeyInfo(props);\n            var defKeys = this.getKeysForEventDefs(props.eventStore);\n            var dateSelections = this.splitDateSelection(props.dateSelection);\n            var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n            var eventStores = this.splitEventStore(props.eventStore, defKeys);\n            var eventDrags = this.splitEventDrag(props.eventDrag);\n            var eventResizes = this.splitEventResize(props.eventResize);\n            var splitProps = {};\n            this.eventUiBuilders = mapHash(keyInfos, function (info, key) { return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); });\n            for (var key in keyInfos) {\n                var keyInfo = keyInfos[key];\n                var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n                var buildEventUi = this.eventUiBuilders[key];\n                splitProps[key] = {\n                    businessHours: keyInfo.businessHours || props.businessHours,\n                    dateSelection: dateSelections[key] || null,\n                    eventStore: eventStore,\n                    eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n                    eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n                    eventDrag: eventDrags[key] || null,\n                    eventResize: eventResizes[key] || null,\n                };\n            }\n            return splitProps;\n        };\n        Splitter.prototype._splitDateSpan = function (dateSpan) {\n            var dateSpans = {};\n            if (dateSpan) {\n                var keys = this.getKeysForDateSpan(dateSpan);\n                for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n                    var key = keys_1[_i];\n                    dateSpans[key] = dateSpan;\n                }\n            }\n            return dateSpans;\n        };\n        Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n            var _this = this;\n            return mapHash(eventStore.defs, function (eventDef) { return _this.getKeysForEventDef(eventDef); });\n        };\n        Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n            var defs = eventStore.defs, instances = eventStore.instances;\n            var splitStores = {};\n            for (var defId in defs) {\n                for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n                    var key = _a[_i];\n                    if (!splitStores[key]) {\n                        splitStores[key] = createEmptyEventStore();\n                    }\n                    splitStores[key].defs[defId] = defs[defId];\n                }\n            }\n            for (var instanceId in instances) {\n                var instance = instances[instanceId];\n                for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n                    var key = _c[_b];\n                    if (splitStores[key]) { // must have already been created\n                        splitStores[key].instances[instanceId] = instance;\n                    }\n                }\n            }\n            return splitStores;\n        };\n        Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n            var splitHashes = {};\n            for (var defId in eventUiBases) {\n                if (defId) { // not the '' key\n                    for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n                        var key = _a[_i];\n                        if (!splitHashes[key]) {\n                            splitHashes[key] = {};\n                        }\n                        splitHashes[key][defId] = eventUiBases[defId];\n                    }\n                }\n            }\n            return splitHashes;\n        };\n        Splitter.prototype._splitInteraction = function (interaction) {\n            var splitStates = {};\n            if (interaction) {\n                var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n                // can't rely on defKeys because event data is mutated\n                var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n                var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n                var populate = function (key) {\n                    if (!splitStates[key]) {\n                        splitStates[key] = {\n                            affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n                            mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n                            isEvent: interaction.isEvent,\n                        };\n                    }\n                };\n                for (var key in affectedStores_1) {\n                    populate(key);\n                }\n                for (var key in mutatedStores_1) {\n                    populate(key);\n                }\n            }\n            return splitStates;\n        };\n        return Splitter;\n    }());\n    function buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n        var baseParts = [];\n        if (allUi) {\n            baseParts.push(allUi);\n        }\n        if (eventUiForKey) {\n            baseParts.push(eventUiForKey);\n        }\n        var stuff = {\n            '': combineEventUis(baseParts),\n        };\n        if (individualUi) {\n            __assign(stuff, individualUi);\n        }\n        return stuff;\n    }\n\n    function getDateMeta(date, todayRange, nowDate, dateProfile) {\n        return {\n            dow: date.getUTCDay(),\n            isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n            isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n            isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n            isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),\n            isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),\n        };\n    }\n    function getDayClassNames(meta, theme) {\n        var classNames = [\n            'fc-day',\n            \"fc-day-\" + DAY_IDS[meta.dow],\n        ];\n        if (meta.isDisabled) {\n            classNames.push('fc-day-disabled');\n        }\n        else {\n            if (meta.isToday) {\n                classNames.push('fc-day-today');\n                classNames.push(theme.getClass('today'));\n            }\n            if (meta.isPast) {\n                classNames.push('fc-day-past');\n            }\n            if (meta.isFuture) {\n                classNames.push('fc-day-future');\n            }\n            if (meta.isOther) {\n                classNames.push('fc-day-other');\n            }\n        }\n        return classNames;\n    }\n    function getSlotClassNames(meta, theme) {\n        var classNames = [\n            'fc-slot',\n            \"fc-slot-\" + DAY_IDS[meta.dow],\n        ];\n        if (meta.isDisabled) {\n            classNames.push('fc-slot-disabled');\n        }\n        else {\n            if (meta.isToday) {\n                classNames.push('fc-slot-today');\n                classNames.push(theme.getClass('today'));\n            }\n            if (meta.isPast) {\n                classNames.push('fc-slot-past');\n            }\n            if (meta.isFuture) {\n                classNames.push('fc-slot-future');\n            }\n        }\n        return classNames;\n    }\n\n    function buildNavLinkData(date, type) {\n        if (type === void 0) { type = 'day'; }\n        return JSON.stringify({\n            date: formatDayString(date),\n            type: type,\n        });\n    }\n\n    var _isRtlScrollbarOnLeft = null;\n    function getIsRtlScrollbarOnLeft() {\n        if (_isRtlScrollbarOnLeft === null) {\n            _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n        }\n        return _isRtlScrollbarOnLeft;\n    }\n    function computeIsRtlScrollbarOnLeft() {\n        var outerEl = document.createElement('div');\n        applyStyle(outerEl, {\n            position: 'absolute',\n            top: -1000,\n            left: 0,\n            border: 0,\n            padding: 0,\n            overflow: 'scroll',\n            direction: 'rtl',\n        });\n        outerEl.innerHTML = '<div></div>';\n        document.body.appendChild(outerEl);\n        var innerEl = outerEl.firstChild;\n        var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n        removeElement(outerEl);\n        return res;\n    }\n\n    var _scrollbarWidths;\n    function getScrollbarWidths() {\n        if (!_scrollbarWidths) {\n            _scrollbarWidths = computeScrollbarWidths();\n        }\n        return _scrollbarWidths;\n    }\n    function computeScrollbarWidths() {\n        var el = document.createElement('div');\n        el.style.overflow = 'scroll';\n        el.style.position = 'absolute';\n        el.style.top = '-9999px';\n        el.style.left = '-9999px';\n        document.body.appendChild(el);\n        var res = computeScrollbarWidthsForEl(el);\n        document.body.removeChild(el);\n        return res;\n    }\n    // WARNING: will include border\n    function computeScrollbarWidthsForEl(el) {\n        return {\n            x: el.offsetHeight - el.clientHeight,\n            y: el.offsetWidth - el.clientWidth,\n        };\n    }\n\n    function computeEdges(el, getPadding) {\n        if (getPadding === void 0) { getPadding = false; }\n        var computedStyle = window.getComputedStyle(el);\n        var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n        var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n        var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n        var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n        var badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n        var scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n        var scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n        var res = {\n            borderLeft: borderLeft,\n            borderRight: borderRight,\n            borderTop: borderTop,\n            borderBottom: borderBottom,\n            scrollbarBottom: scrollbarBottom,\n            scrollbarLeft: 0,\n            scrollbarRight: 0,\n        };\n        if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n            res.scrollbarLeft = scrollbarLeftRight;\n        }\n        else {\n            res.scrollbarRight = scrollbarLeftRight;\n        }\n        if (getPadding) {\n            res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n            res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n            res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n            res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n        }\n        return res;\n    }\n    function computeInnerRect(el, goWithinPadding, doFromWindowViewport) {\n        if (goWithinPadding === void 0) { goWithinPadding = false; }\n        var outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n        var edges = computeEdges(el, goWithinPadding);\n        var res = {\n            left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n            right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n            top: outerRect.top + edges.borderTop,\n            bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,\n        };\n        if (goWithinPadding) {\n            res.left += edges.paddingLeft;\n            res.right -= edges.paddingRight;\n            res.top += edges.paddingTop;\n            res.bottom -= edges.paddingBottom;\n        }\n        return res;\n    }\n    function computeRect(el) {\n        var rect = el.getBoundingClientRect();\n        return {\n            left: rect.left + window.pageXOffset,\n            top: rect.top + window.pageYOffset,\n            right: rect.right + window.pageXOffset,\n            bottom: rect.bottom + window.pageYOffset,\n        };\n    }\n    function computeHeightAndMargins(el) {\n        return el.getBoundingClientRect().height + computeVMargins(el);\n    }\n    function computeVMargins(el) {\n        var computed = window.getComputedStyle(el);\n        return parseInt(computed.marginTop, 10) +\n            parseInt(computed.marginBottom, 10);\n    }\n    // does not return window\n    function getClippingParents(el) {\n        var parents = [];\n        while (el instanceof HTMLElement) { // will stop when gets to document or null\n            var computedStyle = window.getComputedStyle(el);\n            if (computedStyle.position === 'fixed') {\n                break;\n            }\n            if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n                parents.push(el);\n            }\n            el = el.parentNode;\n        }\n        return parents;\n    }\n\n    // given a function that resolves a result asynchronously.\n    // the function can either call passed-in success and failure callbacks,\n    // or it can return a promise.\n    // if you need to pass additional params to func, bind them first.\n    function unpromisify(func, success, failure) {\n        // guard against success/failure callbacks being called more than once\n        // and guard against a promise AND callback being used together.\n        var isResolved = false;\n        var wrappedSuccess = function () {\n            if (!isResolved) {\n                isResolved = true;\n                success.apply(this, arguments); // eslint-disable-line prefer-rest-params\n            }\n        };\n        var wrappedFailure = function () {\n            if (!isResolved) {\n                isResolved = true;\n                if (failure) {\n                    failure.apply(this, arguments); // eslint-disable-line prefer-rest-params\n                }\n            }\n        };\n        var res = func(wrappedSuccess, wrappedFailure);\n        if (res && typeof res.then === 'function') {\n            res.then(wrappedSuccess, wrappedFailure);\n        }\n    }\n\n    var Emitter = /** @class */ (function () {\n        function Emitter() {\n            this.handlers = {};\n            this.thisContext = null;\n        }\n        Emitter.prototype.setThisContext = function (thisContext) {\n            this.thisContext = thisContext;\n        };\n        Emitter.prototype.setOptions = function (options) {\n            this.options = options;\n        };\n        Emitter.prototype.on = function (type, handler) {\n            addToHash(this.handlers, type, handler);\n        };\n        Emitter.prototype.off = function (type, handler) {\n            removeFromHash(this.handlers, type, handler);\n        };\n        Emitter.prototype.trigger = function (type) {\n            var args = [];\n            for (var _i = 1; _i < arguments.length; _i++) {\n                args[_i - 1] = arguments[_i];\n            }\n            var attachedHandlers = this.handlers[type] || [];\n            var optionHandler = this.options && this.options[type];\n            var handlers = [].concat(optionHandler || [], attachedHandlers);\n            for (var _a = 0, handlers_1 = handlers; _a < handlers_1.length; _a++) {\n                var handler = handlers_1[_a];\n                handler.apply(this.thisContext, args);\n            }\n        };\n        Emitter.prototype.hasHandlers = function (type) {\n            return (this.handlers[type] && this.handlers[type].length) ||\n                (this.options && this.options[type]);\n        };\n        return Emitter;\n    }());\n    function addToHash(hash, type, handler) {\n        (hash[type] || (hash[type] = []))\n            .push(handler);\n    }\n    function removeFromHash(hash, type, handler) {\n        if (handler) {\n            if (hash[type]) {\n                hash[type] = hash[type].filter(function (func) { return func !== handler; });\n            }\n        }\n        else {\n            delete hash[type]; // remove all handler funcs for this type\n        }\n    }\n\n    /*\n    Records offset information for a set of elements, relative to an origin element.\n    Can record the left/right OR the top/bottom OR both.\n    Provides methods for querying the cache by position.\n    */\n    var PositionCache = /** @class */ (function () {\n        function PositionCache(originEl, els, isHorizontal, isVertical) {\n            this.els = els;\n            var originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n            if (isHorizontal) {\n                this.buildElHorizontals(originClientRect.left);\n            }\n            if (isVertical) {\n                this.buildElVerticals(originClientRect.top);\n            }\n        }\n        // Populates the left/right internal coordinate arrays\n        PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n            var lefts = [];\n            var rights = [];\n            for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n                var el = _a[_i];\n                var rect = el.getBoundingClientRect();\n                lefts.push(rect.left - originClientLeft);\n                rights.push(rect.right - originClientLeft);\n            }\n            this.lefts = lefts;\n            this.rights = rights;\n        };\n        // Populates the top/bottom internal coordinate arrays\n        PositionCache.prototype.buildElVerticals = function (originClientTop) {\n            var tops = [];\n            var bottoms = [];\n            for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n                var el = _a[_i];\n                var rect = el.getBoundingClientRect();\n                tops.push(rect.top - originClientTop);\n                bottoms.push(rect.bottom - originClientTop);\n            }\n            this.tops = tops;\n            this.bottoms = bottoms;\n        };\n        // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n        // If no intersection is made, returns undefined.\n        PositionCache.prototype.leftToIndex = function (leftPosition) {\n            var _a = this, lefts = _a.lefts, rights = _a.rights;\n            var len = lefts.length;\n            var i;\n            for (i = 0; i < len; i += 1) {\n                if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n                    return i;\n                }\n            }\n            return undefined; // TODO: better\n        };\n        // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n        // If no intersection is made, returns undefined.\n        PositionCache.prototype.topToIndex = function (topPosition) {\n            var _a = this, tops = _a.tops, bottoms = _a.bottoms;\n            var len = tops.length;\n            var i;\n            for (i = 0; i < len; i += 1) {\n                if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n                    return i;\n                }\n            }\n            return undefined; // TODO: better\n        };\n        // Gets the width of the element at the given index\n        PositionCache.prototype.getWidth = function (leftIndex) {\n            return this.rights[leftIndex] - this.lefts[leftIndex];\n        };\n        // Gets the height of the element at the given index\n        PositionCache.prototype.getHeight = function (topIndex) {\n            return this.bottoms[topIndex] - this.tops[topIndex];\n        };\n        return PositionCache;\n    }());\n\n    /* eslint max-classes-per-file: \"off\" */\n    /*\n    An object for getting/setting scroll-related information for an element.\n    Internally, this is done very differently for window versus DOM element,\n    so this object serves as a common interface.\n    */\n    var ScrollController = /** @class */ (function () {\n        function ScrollController() {\n        }\n        ScrollController.prototype.getMaxScrollTop = function () {\n            return this.getScrollHeight() - this.getClientHeight();\n        };\n        ScrollController.prototype.getMaxScrollLeft = function () {\n            return this.getScrollWidth() - this.getClientWidth();\n        };\n        ScrollController.prototype.canScrollVertically = function () {\n            return this.getMaxScrollTop() > 0;\n        };\n        ScrollController.prototype.canScrollHorizontally = function () {\n            return this.getMaxScrollLeft() > 0;\n        };\n        ScrollController.prototype.canScrollUp = function () {\n            return this.getScrollTop() > 0;\n        };\n        ScrollController.prototype.canScrollDown = function () {\n            return this.getScrollTop() < this.getMaxScrollTop();\n        };\n        ScrollController.prototype.canScrollLeft = function () {\n            return this.getScrollLeft() > 0;\n        };\n        ScrollController.prototype.canScrollRight = function () {\n            return this.getScrollLeft() < this.getMaxScrollLeft();\n        };\n        return ScrollController;\n    }());\n    var ElementScrollController = /** @class */ (function (_super) {\n        __extends(ElementScrollController, _super);\n        function ElementScrollController(el) {\n            var _this = _super.call(this) || this;\n            _this.el = el;\n            return _this;\n        }\n        ElementScrollController.prototype.getScrollTop = function () {\n            return this.el.scrollTop;\n        };\n        ElementScrollController.prototype.getScrollLeft = function () {\n            return this.el.scrollLeft;\n        };\n        ElementScrollController.prototype.setScrollTop = function (top) {\n            this.el.scrollTop = top;\n        };\n        ElementScrollController.prototype.setScrollLeft = function (left) {\n            this.el.scrollLeft = left;\n        };\n        ElementScrollController.prototype.getScrollWidth = function () {\n            return this.el.scrollWidth;\n        };\n        ElementScrollController.prototype.getScrollHeight = function () {\n            return this.el.scrollHeight;\n        };\n        ElementScrollController.prototype.getClientHeight = function () {\n            return this.el.clientHeight;\n        };\n        ElementScrollController.prototype.getClientWidth = function () {\n            return this.el.clientWidth;\n        };\n        return ElementScrollController;\n    }(ScrollController));\n    var WindowScrollController = /** @class */ (function (_super) {\n        __extends(WindowScrollController, _super);\n        function WindowScrollController() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        WindowScrollController.prototype.getScrollTop = function () {\n            return window.pageYOffset;\n        };\n        WindowScrollController.prototype.getScrollLeft = function () {\n            return window.pageXOffset;\n        };\n        WindowScrollController.prototype.setScrollTop = function (n) {\n            window.scroll(window.pageXOffset, n);\n        };\n        WindowScrollController.prototype.setScrollLeft = function (n) {\n            window.scroll(n, window.pageYOffset);\n        };\n        WindowScrollController.prototype.getScrollWidth = function () {\n            return document.documentElement.scrollWidth;\n        };\n        WindowScrollController.prototype.getScrollHeight = function () {\n            return document.documentElement.scrollHeight;\n        };\n        WindowScrollController.prototype.getClientHeight = function () {\n            return document.documentElement.clientHeight;\n        };\n        WindowScrollController.prototype.getClientWidth = function () {\n            return document.documentElement.clientWidth;\n        };\n        return WindowScrollController;\n    }(ScrollController));\n\n    var Theme = /** @class */ (function () {\n        function Theme(calendarOptions) {\n            if (this.iconOverrideOption) {\n                this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n            }\n        }\n        Theme.prototype.setIconOverride = function (iconOverrideHash) {\n            var iconClassesCopy;\n            var buttonName;\n            if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n                iconClassesCopy = __assign({}, this.iconClasses);\n                for (buttonName in iconOverrideHash) {\n                    iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n                }\n                this.iconClasses = iconClassesCopy;\n            }\n            else if (iconOverrideHash === false) {\n                this.iconClasses = {};\n            }\n        };\n        Theme.prototype.applyIconOverridePrefix = function (className) {\n            var prefix = this.iconOverridePrefix;\n            if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n                className = prefix + className;\n            }\n            return className;\n        };\n        Theme.prototype.getClass = function (key) {\n            return this.classes[key] || '';\n        };\n        Theme.prototype.getIconClass = function (buttonName, isRtl) {\n            var className;\n            if (isRtl && this.rtlIconClasses) {\n                className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n            }\n            else {\n                className = this.iconClasses[buttonName];\n            }\n            if (className) {\n                return this.baseIconClass + \" \" + className;\n            }\n            return '';\n        };\n        Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n            var className;\n            if (this.iconOverrideCustomButtonOption) {\n                className = customButtonProps[this.iconOverrideCustomButtonOption];\n                if (className) {\n                    return this.baseIconClass + \" \" + this.applyIconOverridePrefix(className);\n                }\n            }\n            return '';\n        };\n        return Theme;\n    }());\n    Theme.prototype.classes = {};\n    Theme.prototype.iconClasses = {};\n    Theme.prototype.baseIconClass = '';\n    Theme.prototype.iconOverridePrefix = '';\n\n    /// <reference types=\"@fullcalendar/core-preact\" />\n    if (typeof FullCalendarVDom === 'undefined') {\n        throw new Error('Please import the top-level fullcalendar lib before attempting to import a plugin.');\n    }\n    var Component = FullCalendarVDom.Component;\n    var createElement = FullCalendarVDom.createElement;\n    var render = FullCalendarVDom.render;\n    var createRef = FullCalendarVDom.createRef;\n    var Fragment = FullCalendarVDom.Fragment;\n    var createContext$1 = FullCalendarVDom.createContext;\n    var flushToDom$1 = FullCalendarVDom.flushToDom;\n    var unmountComponentAtNode$1 = FullCalendarVDom.unmountComponentAtNode;\n\n    var ScrollResponder = /** @class */ (function () {\n        function ScrollResponder(execFunc, emitter, scrollTime) {\n            var _this = this;\n            this.execFunc = execFunc;\n            this.emitter = emitter;\n            this.scrollTime = scrollTime;\n            this.handleScrollRequest = function (request) {\n                _this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);\n                _this.drain();\n            };\n            emitter.on('_scrollRequest', this.handleScrollRequest);\n            this.fireInitialScroll();\n        }\n        ScrollResponder.prototype.detach = function () {\n            this.emitter.off('_scrollRequest', this.handleScrollRequest);\n        };\n        ScrollResponder.prototype.update = function (isDatesNew) {\n            if (isDatesNew) {\n                this.fireInitialScroll(); // will drain\n            }\n            else {\n                this.drain();\n            }\n        };\n        ScrollResponder.prototype.fireInitialScroll = function () {\n            this.handleScrollRequest({\n                time: this.scrollTime,\n            });\n        };\n        ScrollResponder.prototype.drain = function () {\n            if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n                this.queuedRequest = null;\n            }\n        };\n        return ScrollResponder;\n    }());\n\n    var ViewContextType = createContext$1({}); // for Components\n    function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n        return {\n            dateEnv: dateEnv,\n            options: viewOptions,\n            pluginHooks: pluginHooks,\n            emitter: emitter,\n            dispatch: dispatch,\n            getCurrentData: getCurrentData,\n            calendarApi: calendarApi,\n            viewSpec: viewSpec,\n            viewApi: viewApi,\n            dateProfileGenerator: dateProfileGenerator,\n            theme: theme,\n            isRtl: viewOptions.direction === 'rtl',\n            addResizeHandler: function (handler) {\n                emitter.on('_resize', handler);\n            },\n            removeResizeHandler: function (handler) {\n                emitter.off('_resize', handler);\n            },\n            createScrollResponder: function (execFunc) {\n                return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime));\n            },\n            registerInteractiveComponent: registerInteractiveComponent,\n            unregisterInteractiveComponent: unregisterInteractiveComponent,\n        };\n    }\n\n    /* eslint max-classes-per-file: off */\n    var PureComponent = /** @class */ (function (_super) {\n        __extends(PureComponent, _super);\n        function PureComponent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        PureComponent.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n            if (this.debug) {\n                // eslint-disable-next-line no-console\n                console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n            }\n            return !compareObjs(this.props, nextProps, this.propEquality) ||\n                !compareObjs(this.state, nextState, this.stateEquality);\n        };\n        PureComponent.addPropsEquality = addPropsEquality;\n        PureComponent.addStateEquality = addStateEquality;\n        PureComponent.contextType = ViewContextType;\n        return PureComponent;\n    }(Component));\n    PureComponent.prototype.propEquality = {};\n    PureComponent.prototype.stateEquality = {};\n    var BaseComponent = /** @class */ (function (_super) {\n        __extends(BaseComponent, _super);\n        function BaseComponent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        BaseComponent.contextType = ViewContextType;\n        return BaseComponent;\n    }(PureComponent));\n    function addPropsEquality(propEquality) {\n        var hash = Object.create(this.prototype.propEquality);\n        __assign(hash, propEquality);\n        this.prototype.propEquality = hash;\n    }\n    function addStateEquality(stateEquality) {\n        var hash = Object.create(this.prototype.stateEquality);\n        __assign(hash, stateEquality);\n        this.prototype.stateEquality = hash;\n    }\n    // use other one\n    function setRef(ref, current) {\n        if (typeof ref === 'function') {\n            ref(current);\n        }\n        else if (ref) {\n            // see https://github.com/facebook/react/issues/13029\n            ref.current = current;\n        }\n    }\n\n    function reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n        switch (action.type) {\n            case 'RECEIVE_EVENTS': // raw\n                return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n            case 'ADD_EVENTS': // already parsed, but not expanded\n                return addEvent(eventStore, action.eventStore, // new ones\n                dateProfile ? dateProfile.activeRange : null, context);\n            case 'RESET_EVENTS':\n                return action.eventStore;\n            case 'MERGE_EVENTS': // already parsed and expanded\n                return mergeEventStores(eventStore, action.eventStore);\n            case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n            case 'NEXT':\n            case 'CHANGE_DATE':\n            case 'CHANGE_VIEW_TYPE':\n                if (dateProfile) {\n                    return expandRecurring(eventStore, dateProfile.activeRange, context);\n                }\n                return eventStore;\n            case 'REMOVE_EVENTS':\n                return excludeSubEventStore(eventStore, action.eventStore);\n            case 'REMOVE_EVENT_SOURCE':\n                return excludeEventsBySourceId(eventStore, action.sourceId);\n            case 'REMOVE_ALL_EVENT_SOURCES':\n                return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id\n                ); });\n            case 'REMOVE_ALL_EVENTS':\n                return createEmptyEventStore();\n            default:\n                return eventStore;\n        }\n    }\n    function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n        if (eventSource && // not already removed\n            fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n        ) {\n            var subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n            if (fetchRange) {\n                subset = expandRecurring(subset, fetchRange, context);\n            }\n            return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n        }\n        return eventStore;\n    }\n    function transformRawEvents(rawEvents, eventSource, context) {\n        var calEachTransform = context.options.eventDataTransform;\n        var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n        if (sourceEachTransform) {\n            rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n        }\n        if (calEachTransform) {\n            rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n        }\n        return rawEvents;\n    }\n    function transformEachRawEvent(rawEvents, func) {\n        var refinedEvents;\n        if (!func) {\n            refinedEvents = rawEvents;\n        }\n        else {\n            refinedEvents = [];\n            for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n                var rawEvent = rawEvents_1[_i];\n                var refinedEvent = func(rawEvent);\n                if (refinedEvent) {\n                    refinedEvents.push(refinedEvent);\n                }\n                else if (refinedEvent == null) {\n                    refinedEvents.push(rawEvent);\n                } // if a different falsy value, do nothing\n            }\n        }\n        return refinedEvents;\n    }\n    function addEvent(eventStore, subset, expandRange, context) {\n        if (expandRange) {\n            subset = expandRecurring(subset, expandRange, context);\n        }\n        return mergeEventStores(eventStore, subset);\n    }\n    function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n        var defs = eventStore.defs;\n        var instances = mapHash(eventStore.instances, function (instance) {\n            var def = defs[instance.defId];\n            if (def.allDay || def.recurringDef) {\n                return instance; // isn't dependent on timezone\n            }\n            return __assign(__assign({}, instance), { range: {\n                    start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n                    end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n                }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n        });\n        return { defs: defs, instances: instances };\n    }\n    function excludeEventsBySourceId(eventStore, sourceId) {\n        return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });\n    }\n    // QUESTION: why not just return instances? do a general object-property-exclusion util\n    function excludeInstances(eventStore, removals) {\n        return {\n            defs: eventStore.defs,\n            instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),\n        };\n    }\n\n    // high-level segmenting-aware tester functions\n    // ------------------------------------------------------------------------------------------------------------------------\n    function isInteractionValid(interaction, context) {\n        return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions\n    }\n    function isDateSelectionValid(dateSelection, context) {\n        return isNewPropsValid({ dateSelection: dateSelection }, context);\n    }\n    function isNewPropsValid(newProps, context) {\n        var calendarState = context.getCurrentData();\n        var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n        return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n    }\n    function isPropsValid(state, context, dateSpanMeta, filterConfig) {\n        if (dateSpanMeta === void 0) { dateSpanMeta = {}; }\n        if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n            return false;\n        }\n        if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n            return false;\n        }\n        return true;\n    }\n    // Moving Event Validation\n    // ------------------------------------------------------------------------------------------------------------------------\n    function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n        var currentState = context.getCurrentData();\n        var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n        var subjectEventStore = interaction.mutatedEvents;\n        var subjectDefs = subjectEventStore.defs;\n        var subjectInstances = subjectEventStore.instances;\n        var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n            state.eventUiBases :\n            { '': currentState.selectionConfig });\n        if (filterConfig) {\n            subjectConfigs = mapHash(subjectConfigs, filterConfig);\n        }\n        // exclude the subject events. TODO: exclude defs too?\n        var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n        var otherDefs = otherEventStore.defs;\n        var otherInstances = otherEventStore.instances;\n        var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n        for (var subjectInstanceId in subjectInstances) {\n            var subjectInstance = subjectInstances[subjectInstanceId];\n            var subjectRange = subjectInstance.range;\n            var subjectConfig = subjectConfigs[subjectInstance.defId];\n            var subjectDef = subjectDefs[subjectInstance.defId];\n            // constraint\n            if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n                return false;\n            }\n            // overlap\n            var eventOverlap = context.options.eventOverlap;\n            var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n            for (var otherInstanceId in otherInstances) {\n                var otherInstance = otherInstances[otherInstanceId];\n                // intersect! evaluate\n                if (rangesIntersect(subjectRange, otherInstance.range)) {\n                    var otherOverlap = otherConfigs[otherInstance.defId].overlap;\n                    // consider the other event's overlap. only do this if the subject event is a \"real\" event\n                    if (otherOverlap === false && interaction.isEvent) {\n                        return false;\n                    }\n                    if (subjectConfig.overlap === false) {\n                        return false;\n                    }\n                    if (eventOverlapFunc && !eventOverlapFunc(new EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event\n                    new EventApi(context, subjectDef, subjectInstance))) {\n                        return false;\n                    }\n                }\n            }\n            // allow (a function)\n            var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n            for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n                var subjectAllow = _a[_i];\n                var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });\n                var origDef = calendarEventStore.defs[subjectDef.defId];\n                var origInstance = calendarEventStore.instances[subjectInstanceId];\n                var eventApi = void 0;\n                if (origDef) { // was previously in the calendar\n                    eventApi = new EventApi(context, origDef, origInstance);\n                }\n                else { // was an external event\n                    eventApi = new EventApi(context, subjectDef); // no instance, because had no dates\n                }\n                if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    // Date Selection Validation\n    // ------------------------------------------------------------------------------------------------------------------------\n    function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n        var relevantEventStore = state.eventStore;\n        var relevantDefs = relevantEventStore.defs;\n        var relevantInstances = relevantEventStore.instances;\n        var selection = state.dateSelection;\n        var selectionRange = selection.range;\n        var selectionConfig = context.getCurrentData().selectionConfig;\n        if (filterConfig) {\n            selectionConfig = filterConfig(selectionConfig);\n        }\n        // constraint\n        if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n            return false;\n        }\n        // overlap\n        var selectOverlap = context.options.selectOverlap;\n        var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n        for (var relevantInstanceId in relevantInstances) {\n            var relevantInstance = relevantInstances[relevantInstanceId];\n            // intersect! evaluate\n            if (rangesIntersect(selectionRange, relevantInstance.range)) {\n                if (selectionConfig.overlap === false) {\n                    return false;\n                }\n                if (selectOverlapFunc && !selectOverlapFunc(new EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n                    return false;\n                }\n            }\n        }\n        // allow (a function)\n        for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n            var selectionAllow = _a[_i];\n            var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);\n            if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    // Constraint Utils\n    // ------------------------------------------------------------------------------------------------------------------------\n    function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n        for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n            var constraint = constraints_1[_i];\n            if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\n    otherEventStore, // for if constraint is an even group ID\n    businessHoursUnexpanded, // for if constraint is 'businessHours'\n    context) {\n        if (constraint === 'businessHours') {\n            return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n        }\n        if (typeof constraint === 'string') { // an group ID\n            return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));\n        }\n        if (typeof constraint === 'object' && constraint) { // non-null object\n            return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n        }\n        return []; // if it's false\n    }\n    // TODO: move to event-store file?\n    function eventStoreToRanges(eventStore) {\n        var instances = eventStore.instances;\n        var ranges = [];\n        for (var instanceId in instances) {\n            ranges.push(instances[instanceId].range);\n        }\n        return ranges;\n    }\n    // TODO: move to geom file?\n    function anyRangesContainRange(outerRanges, innerRange) {\n        for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n            var outerRange = outerRanges_1[_i];\n            if (rangeContainsRange(outerRange, innerRange)) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /*\n    an INTERACTABLE date component\n\n    PURPOSES:\n    - hook up to fg, fill, and mirror renderers\n    - interface for dragging and hits\n    */\n    var DateComponent = /** @class */ (function (_super) {\n        __extends(DateComponent, _super);\n        function DateComponent() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.uid = guid();\n            return _this;\n        }\n        // Hit System\n        // -----------------------------------------------------------------------------------------------------------------\n        DateComponent.prototype.prepareHits = function () {\n        };\n        DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n            return null; // this should be abstract\n        };\n        // Validation\n        // -----------------------------------------------------------------------------------------------------------------\n        DateComponent.prototype.isInteractionValid = function (interaction) {\n            var dateProfile = this.props.dateProfile; // HACK\n            var instances = interaction.mutatedEvents.instances;\n            if (dateProfile) { // HACK for MorePopover\n                for (var instanceId in instances) {\n                    if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n                        return false;\n                    }\n                }\n            }\n            return isInteractionValid(interaction, this.context);\n        };\n        DateComponent.prototype.isDateSelectionValid = function (selection) {\n            var dateProfile = this.props.dateProfile; // HACK\n            if (dateProfile && // HACK for MorePopover\n                !rangeContainsRange(dateProfile.validRange, selection.range)) {\n                return false;\n            }\n            return isDateSelectionValid(selection, this.context);\n        };\n        // Pointer Interaction Utils\n        // -----------------------------------------------------------------------------------------------------------------\n        DateComponent.prototype.isValidSegDownEl = function (el) {\n            return !this.props.eventDrag && // HACK\n                !this.props.eventResize && // HACK\n                !elementClosest(el, '.fc-event-mirror');\n        };\n        DateComponent.prototype.isValidDateDownEl = function (el) {\n            return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n                !elementClosest(el, '.fc-daygrid-more-link') && // a \"more..\" link\n                !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n                !elementClosest(el, '.fc-popover'); // hack\n        };\n        return DateComponent;\n    }(BaseComponent));\n\n    // TODO: easier way to add new hooks? need to update a million things\n    function createPlugin(input) {\n        return {\n            id: guid(),\n            deps: input.deps || [],\n            reducers: input.reducers || [],\n            isLoadingFuncs: input.isLoadingFuncs || [],\n            contextInit: [].concat(input.contextInit || []),\n            eventRefiners: input.eventRefiners || {},\n            eventDefMemberAdders: input.eventDefMemberAdders || [],\n            eventSourceRefiners: input.eventSourceRefiners || {},\n            isDraggableTransformers: input.isDraggableTransformers || [],\n            eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n            eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n            dateSelectionTransformers: input.dateSelectionTransformers || [],\n            datePointTransforms: input.datePointTransforms || [],\n            dateSpanTransforms: input.dateSpanTransforms || [],\n            views: input.views || {},\n            viewPropsTransformers: input.viewPropsTransformers || [],\n            isPropsValid: input.isPropsValid || null,\n            externalDefTransforms: input.externalDefTransforms || [],\n            eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],\n            viewContainerAppends: input.viewContainerAppends || [],\n            eventDropTransformers: input.eventDropTransformers || [],\n            componentInteractions: input.componentInteractions || [],\n            calendarInteractions: input.calendarInteractions || [],\n            themeClasses: input.themeClasses || {},\n            eventSourceDefs: input.eventSourceDefs || [],\n            cmdFormatter: input.cmdFormatter,\n            recurringTypes: input.recurringTypes || [],\n            namedTimeZonedImpl: input.namedTimeZonedImpl,\n            initialView: input.initialView || '',\n            elementDraggingImpl: input.elementDraggingImpl,\n            optionChangeHandlers: input.optionChangeHandlers || {},\n            scrollGridImpl: input.scrollGridImpl || null,\n            contentTypeHandlers: input.contentTypeHandlers || {},\n            listenerRefiners: input.listenerRefiners || {},\n            optionRefiners: input.optionRefiners || {},\n            propSetHandlers: input.propSetHandlers || {},\n        };\n    }\n    function buildPluginHooks(pluginDefs, globalDefs) {\n        var isAdded = {};\n        var hooks = {\n            reducers: [],\n            isLoadingFuncs: [],\n            contextInit: [],\n            eventRefiners: {},\n            eventDefMemberAdders: [],\n            eventSourceRefiners: {},\n            isDraggableTransformers: [],\n            eventDragMutationMassagers: [],\n            eventDefMutationAppliers: [],\n            dateSelectionTransformers: [],\n            datePointTransforms: [],\n            dateSpanTransforms: [],\n            views: {},\n            viewPropsTransformers: [],\n            isPropsValid: null,\n            externalDefTransforms: [],\n            eventResizeJoinTransforms: [],\n            viewContainerAppends: [],\n            eventDropTransformers: [],\n            componentInteractions: [],\n            calendarInteractions: [],\n            themeClasses: {},\n            eventSourceDefs: [],\n            cmdFormatter: null,\n            recurringTypes: [],\n            namedTimeZonedImpl: null,\n            initialView: '',\n            elementDraggingImpl: null,\n            optionChangeHandlers: {},\n            scrollGridImpl: null,\n            contentTypeHandlers: {},\n            listenerRefiners: {},\n            optionRefiners: {},\n            propSetHandlers: {},\n        };\n        function addDefs(defs) {\n            for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {\n                var def = defs_1[_i];\n                if (!isAdded[def.id]) {\n                    isAdded[def.id] = true;\n                    addDefs(def.deps);\n                    hooks = combineHooks(hooks, def);\n                }\n            }\n        }\n        if (pluginDefs) {\n            addDefs(pluginDefs);\n        }\n        addDefs(globalDefs);\n        return hooks;\n    }\n    function buildBuildPluginHooks() {\n        var currentOverrideDefs = [];\n        var currentGlobalDefs = [];\n        var currentHooks;\n        return function (overrideDefs, globalDefs) {\n            if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n                currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n            }\n            currentOverrideDefs = overrideDefs;\n            currentGlobalDefs = globalDefs;\n            return currentHooks;\n        };\n    }\n    function combineHooks(hooks0, hooks1) {\n        return {\n            reducers: hooks0.reducers.concat(hooks1.reducers),\n            isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n            contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n            eventRefiners: __assign(__assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n            eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n            eventSourceRefiners: __assign(__assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n            isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n            eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n            eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n            dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n            datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n            dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n            views: __assign(__assign({}, hooks0.views), hooks1.views),\n            viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n            isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n            externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n            eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),\n            viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n            eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n            calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n            componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n            themeClasses: __assign(__assign({}, hooks0.themeClasses), hooks1.themeClasses),\n            eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n            cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n            recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n            namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n            initialView: hooks0.initialView || hooks1.initialView,\n            elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n            optionChangeHandlers: __assign(__assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n            scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n            contentTypeHandlers: __assign(__assign({}, hooks0.contentTypeHandlers), hooks1.contentTypeHandlers),\n            listenerRefiners: __assign(__assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n            optionRefiners: __assign(__assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n            propSetHandlers: __assign(__assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),\n        };\n    }\n\n    var StandardTheme = /** @class */ (function (_super) {\n        __extends(StandardTheme, _super);\n        function StandardTheme() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        return StandardTheme;\n    }(Theme));\n    StandardTheme.prototype.classes = {\n        root: 'fc-theme-standard',\n        tableCellShaded: 'fc-cell-shaded',\n        buttonGroup: 'fc-button-group',\n        button: 'fc-button fc-button-primary',\n        buttonActive: 'fc-button-active',\n    };\n    StandardTheme.prototype.baseIconClass = 'fc-icon';\n    StandardTheme.prototype.iconClasses = {\n        close: 'fc-icon-x',\n        prev: 'fc-icon-chevron-left',\n        next: 'fc-icon-chevron-right',\n        prevYear: 'fc-icon-chevrons-left',\n        nextYear: 'fc-icon-chevrons-right',\n    };\n    StandardTheme.prototype.rtlIconClasses = {\n        prev: 'fc-icon-chevron-right',\n        next: 'fc-icon-chevron-left',\n        prevYear: 'fc-icon-chevrons-right',\n        nextYear: 'fc-icon-chevrons-left',\n    };\n    StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\n    StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\n    StandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\n    function compileViewDefs(defaultConfigs, overrideConfigs) {\n        var hash = {};\n        var viewType;\n        for (viewType in defaultConfigs) {\n            ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n        }\n        for (viewType in overrideConfigs) {\n            ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n        }\n        return hash;\n    }\n    function ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n        if (hash[viewType]) {\n            return hash[viewType];\n        }\n        var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n        if (viewDef) {\n            hash[viewType] = viewDef;\n        }\n        return viewDef;\n    }\n    function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n        var defaultConfig = defaultConfigs[viewType];\n        var overrideConfig = overrideConfigs[viewType];\n        var queryProp = function (name) { return ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n            ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null)); };\n        var theComponent = queryProp('component');\n        var superType = queryProp('superType');\n        var superDef = null;\n        if (superType) {\n            if (superType === viewType) {\n                throw new Error('Can\\'t have a custom view type that references itself');\n            }\n            superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n        }\n        if (!theComponent && superDef) {\n            theComponent = superDef.component;\n        }\n        if (!theComponent) {\n            return null; // don't throw a warning, might be settings for a single-unit view\n        }\n        return {\n            type: viewType,\n            component: theComponent,\n            defaults: __assign(__assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),\n            overrides: __assign(__assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),\n        };\n    }\n\n    /* eslint max-classes-per-file: off */\n    // NOTE: in JSX, you should always use this class with <HookProps> arg. otherwise, will default to any???\n    var RenderHook = /** @class */ (function (_super) {\n        __extends(RenderHook, _super);\n        function RenderHook() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.rootElRef = createRef();\n            _this.handleRootEl = function (el) {\n                setRef(_this.rootElRef, el);\n                if (_this.props.elRef) {\n                    setRef(_this.props.elRef, el);\n                }\n            };\n            return _this;\n        }\n        RenderHook.prototype.render = function () {\n            var _this = this;\n            var props = this.props;\n            var hookProps = props.hookProps;\n            return (createElement(MountHook, { hookProps: hookProps, didMount: props.didMount, willUnmount: props.willUnmount, elRef: this.handleRootEl }, function (rootElRef) { return (createElement(ContentHook, { hookProps: hookProps, content: props.content, defaultContent: props.defaultContent, backupElRef: _this.rootElRef }, function (innerElRef, innerContent) { return props.children(rootElRef, normalizeClassNames(props.classNames, hookProps), innerElRef, innerContent); })); }));\n        };\n        return RenderHook;\n    }(BaseComponent));\n    // TODO: rename to be about function, not default. use in above type\n    // for forcing rerender of components that use the ContentHook\n    var CustomContentRenderContext = createContext$1(0);\n    function ContentHook(props) {\n        return (createElement(CustomContentRenderContext.Consumer, null, function (renderId) { return (createElement(ContentHookInner, __assign({ renderId: renderId }, props))); }));\n    }\n    var ContentHookInner = /** @class */ (function (_super) {\n        __extends(ContentHookInner, _super);\n        function ContentHookInner() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.innerElRef = createRef();\n            return _this;\n        }\n        ContentHookInner.prototype.render = function () {\n            return this.props.children(this.innerElRef, this.renderInnerContent());\n        };\n        ContentHookInner.prototype.componentDidMount = function () {\n            this.updateCustomContent();\n        };\n        ContentHookInner.prototype.componentDidUpdate = function () {\n            this.updateCustomContent();\n        };\n        ContentHookInner.prototype.componentWillUnmount = function () {\n            if (this.customContentInfo && this.customContentInfo.destroy) {\n                this.customContentInfo.destroy();\n            }\n        };\n        ContentHookInner.prototype.renderInnerContent = function () {\n            var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;\n            var _a = this, props = _a.props, customContentInfo = _a.customContentInfo;\n            var rawVal = props.content;\n            var innerContent = normalizeContent(rawVal, props.hookProps);\n            var innerContentVDom = null;\n            if (innerContent === undefined) { // use the default\n                innerContent = normalizeContent(props.defaultContent, props.hookProps);\n            }\n            if (innerContent !== undefined) { // we allow custom content handlers to return nothing\n                if (customContentInfo) {\n                    customContentInfo.contentVal = innerContent[customContentInfo.contentKey];\n                }\n                else if (typeof innerContent === 'object') {\n                    // look for a prop that would indicate a custom content handler is needed\n                    for (var contentKey in contentTypeHandlers) {\n                        if (innerContent[contentKey] !== undefined) {\n                            var stuff = contentTypeHandlers[contentKey]();\n                            customContentInfo = this.customContentInfo = __assign({ contentKey: contentKey, contentVal: innerContent[contentKey] }, stuff);\n                            break;\n                        }\n                    }\n                }\n                if (customContentInfo) {\n                    innerContentVDom = []; // signal that something was specified\n                }\n                else {\n                    innerContentVDom = innerContent; // assume a [p]react vdom node. use it\n                }\n            }\n            return innerContentVDom;\n        };\n        ContentHookInner.prototype.updateCustomContent = function () {\n            if (this.customContentInfo) {\n                this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, // the element to render into\n                this.customContentInfo.contentVal);\n            }\n        };\n        return ContentHookInner;\n    }(BaseComponent));\n    var MountHook = /** @class */ (function (_super) {\n        __extends(MountHook, _super);\n        function MountHook() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.handleRootEl = function (rootEl) {\n                _this.rootEl = rootEl;\n                if (_this.props.elRef) {\n                    setRef(_this.props.elRef, rootEl);\n                }\n            };\n            return _this;\n        }\n        MountHook.prototype.render = function () {\n            return this.props.children(this.handleRootEl);\n        };\n        MountHook.prototype.componentDidMount = function () {\n            var callback = this.props.didMount;\n            if (callback) {\n                callback(__assign(__assign({}, this.props.hookProps), { el: this.rootEl }));\n            }\n        };\n        MountHook.prototype.componentWillUnmount = function () {\n            var callback = this.props.willUnmount;\n            if (callback) {\n                callback(__assign(__assign({}, this.props.hookProps), { el: this.rootEl }));\n            }\n        };\n        return MountHook;\n    }(BaseComponent));\n    function buildClassNameNormalizer() {\n        var currentGenerator;\n        var currentHookProps;\n        var currentClassNames = [];\n        return function (generator, hookProps) {\n            if (!currentHookProps || !isPropsEqual(currentHookProps, hookProps) || generator !== currentGenerator) {\n                currentGenerator = generator;\n                currentHookProps = hookProps;\n                currentClassNames = normalizeClassNames(generator, hookProps);\n            }\n            return currentClassNames;\n        };\n    }\n    function normalizeClassNames(classNames, hookProps) {\n        if (typeof classNames === 'function') {\n            classNames = classNames(hookProps);\n        }\n        return parseClassNames(classNames);\n    }\n    function normalizeContent(input, hookProps) {\n        if (typeof input === 'function') {\n            return input(hookProps, createElement); // give the function the vdom-creation func\n        }\n        return input;\n    }\n\n    var ViewRoot = /** @class */ (function (_super) {\n        __extends(ViewRoot, _super);\n        function ViewRoot() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.normalizeClassNames = buildClassNameNormalizer();\n            return _this;\n        }\n        ViewRoot.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var options = context.options;\n            var hookProps = { view: context.viewApi };\n            var customClassNames = this.normalizeClassNames(options.viewClassNames, hookProps);\n            return (createElement(MountHook, { hookProps: hookProps, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount, elRef: props.elRef }, function (rootElRef) { return props.children(rootElRef, [\"fc-\" + props.viewSpec.type + \"-view\", 'fc-view'].concat(customClassNames)); }));\n        };\n        return ViewRoot;\n    }(BaseComponent));\n\n    function parseViewConfigs(inputs) {\n        return mapHash(inputs, parseViewConfig);\n    }\n    function parseViewConfig(input) {\n        var rawOptions = typeof input === 'function' ?\n            { component: input } :\n            input;\n        var component = rawOptions.component;\n        if (rawOptions.content) {\n            component = createViewHookComponent(rawOptions);\n            // TODO: remove content/classNames/didMount/etc from options?\n        }\n        return {\n            superType: rawOptions.type,\n            component: component,\n            rawOptions: rawOptions,\n        };\n    }\n    function createViewHookComponent(options) {\n        return function (viewProps) { return (createElement(ViewContextType.Consumer, null, function (context) { return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (viewElRef, viewClassNames) {\n            var hookProps = __assign(__assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold });\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.classNames, content: options.content, didMount: options.didMount, willUnmount: options.willUnmount, elRef: viewElRef }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"div\", { className: viewClassNames.concat(customClassNames).join(' '), ref: rootElRef }, innerContent)); }));\n        })); })); };\n    }\n\n    function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n        var defaultConfigs = parseViewConfigs(defaultInputs);\n        var overrideConfigs = parseViewConfigs(optionOverrides.views);\n        var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n        return mapHash(viewDefs, function (viewDef) { return buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults); });\n    }\n    function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n        var durationInput = viewDef.overrides.duration ||\n            viewDef.defaults.duration ||\n            dynamicOptionOverrides.duration ||\n            optionOverrides.duration;\n        var duration = null;\n        var durationUnit = '';\n        var singleUnit = '';\n        var singleUnitOverrides = {};\n        if (durationInput) {\n            duration = createDurationCached(durationInput);\n            if (duration) { // valid?\n                var denom = greatestDurationDenominator(duration);\n                durationUnit = denom.unit;\n                if (denom.value === 1) {\n                    singleUnit = durationUnit;\n                    singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n                }\n            }\n        }\n        var queryButtonText = function (optionsSubset) {\n            var buttonTextMap = optionsSubset.buttonText || {};\n            var buttonTextKey = viewDef.defaults.buttonTextKey;\n            if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n                return buttonTextMap[buttonTextKey];\n            }\n            if (buttonTextMap[viewDef.type] != null) {\n                return buttonTextMap[viewDef.type];\n            }\n            if (buttonTextMap[singleUnit] != null) {\n                return buttonTextMap[singleUnit];\n            }\n            return null;\n        };\n        return {\n            type: viewDef.type,\n            component: viewDef.component,\n            duration: duration,\n            durationUnit: durationUnit,\n            singleUnit: singleUnit,\n            optionDefaults: viewDef.defaults,\n            optionOverrides: __assign(__assign({}, singleUnitOverrides), viewDef.overrides),\n            buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||\n                queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n                viewDef.overrides.buttonText,\n            buttonTextDefault: queryButtonText(localeDefaults) ||\n                viewDef.defaults.buttonText ||\n                queryButtonText(BASE_OPTION_DEFAULTS) ||\n                viewDef.type,\n        };\n    }\n    // hack to get memoization working\n    var durationInputMap = {};\n    function createDurationCached(durationInput) {\n        var json = JSON.stringify(durationInput);\n        var res = durationInputMap[json];\n        if (res === undefined) {\n            res = createDuration(durationInput);\n            durationInputMap[json] = res;\n        }\n        return res;\n    }\n\n    var DateProfileGenerator = /** @class */ (function () {\n        function DateProfileGenerator(props) {\n            this.props = props;\n            this.nowDate = getNow(props.nowInput, props.dateEnv);\n            this.initHiddenDays();\n        }\n        /* Date Range Computation\n        ------------------------------------------------------------------------------------------------------------------*/\n        // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n        DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate, forceToValid) {\n            var dateEnv = this.props.dateEnv;\n            var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n            currentDateProfile.dateIncrement);\n            return this.build(prevDate, -1, forceToValid);\n        };\n        // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n        DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate, forceToValid) {\n            var dateEnv = this.props.dateEnv;\n            var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n            currentDateProfile.dateIncrement);\n            return this.build(nextDate, 1, forceToValid);\n        };\n        // Builds a structure holding dates/ranges for rendering around the given date.\n        // Optional direction param indicates whether the date is being incremented/decremented\n        // from its previous value. decremented = -1, incremented = 1 (default).\n        DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n            if (forceToValid === void 0) { forceToValid = true; }\n            var props = this.props;\n            var validRange;\n            var currentInfo;\n            var isRangeAllDay;\n            var renderRange;\n            var activeRange;\n            var isValid;\n            validRange = this.buildValidRange();\n            validRange = this.trimHiddenDays(validRange);\n            if (forceToValid) {\n                currentDate = constrainMarkerToRange(currentDate, validRange);\n            }\n            currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n            isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n            renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n            renderRange = this.trimHiddenDays(renderRange);\n            activeRange = renderRange;\n            if (!props.showNonCurrentDates) {\n                activeRange = intersectRanges(activeRange, currentInfo.range);\n            }\n            activeRange = this.adjustActiveRange(activeRange);\n            activeRange = intersectRanges(activeRange, validRange); // might return null\n            // it's invalid if the originally requested date is not contained,\n            // or if the range is completely outside of the valid range.\n            isValid = rangesIntersect(currentInfo.range, validRange);\n            return {\n                // constraint for where prev/next operations can go and where events can be dragged/resized to.\n                // an object with optional start and end properties.\n                validRange: validRange,\n                // range the view is formally responsible for.\n                // for example, a month view might have 1st-31st, excluding padded dates\n                currentRange: currentInfo.range,\n                // name of largest unit being displayed, like \"month\" or \"week\"\n                currentRangeUnit: currentInfo.unit,\n                isRangeAllDay: isRangeAllDay,\n                // dates that display events and accept drag-n-drop\n                // will be `null` if no dates accept events\n                activeRange: activeRange,\n                // date range with a rendered skeleton\n                // includes not-active days that need some sort of DOM\n                renderRange: renderRange,\n                // Duration object that denotes the first visible time of any given day\n                slotMinTime: props.slotMinTime,\n                // Duration object that denotes the exclusive visible end time of any given day\n                slotMaxTime: props.slotMaxTime,\n                isValid: isValid,\n                // how far the current date will move for a prev/next operation\n                dateIncrement: this.buildDateIncrement(currentInfo.duration),\n            };\n        };\n        // Builds an object with optional start/end properties.\n        // Indicates the minimum/maximum dates to display.\n        // not responsible for trimming hidden days.\n        DateProfileGenerator.prototype.buildValidRange = function () {\n            var input = this.props.validRangeInput;\n            var simpleInput = typeof input === 'function'\n                ? input.call(this.props.calendarApi, this.nowDate)\n                : input;\n            return this.refineRange(simpleInput) ||\n                { start: null, end: null }; // completely open-ended\n        };\n        // Builds a structure with info about the \"current\" range, the range that is\n        // highlighted as being the current month for example.\n        // See build() for a description of `direction`.\n        // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n        DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n            var props = this.props;\n            var duration = null;\n            var unit = null;\n            var range = null;\n            var dayCount;\n            if (props.duration) {\n                duration = props.duration;\n                unit = props.durationUnit;\n                range = this.buildRangeFromDuration(date, direction, duration, unit);\n            }\n            else if ((dayCount = this.props.dayCount)) {\n                unit = 'day';\n                range = this.buildRangeFromDayCount(date, direction, dayCount);\n            }\n            else if ((range = this.buildCustomVisibleRange(date))) {\n                unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n            }\n            else {\n                duration = this.getFallbackDuration();\n                unit = greatestDurationDenominator(duration).unit;\n                range = this.buildRangeFromDuration(date, direction, duration, unit);\n            }\n            return { duration: duration, unit: unit, range: range };\n        };\n        DateProfileGenerator.prototype.getFallbackDuration = function () {\n            return createDuration({ day: 1 });\n        };\n        // Returns a new activeRange to have time values (un-ambiguate)\n        // slotMinTime or slotMaxTime causes the range to expand.\n        DateProfileGenerator.prototype.adjustActiveRange = function (range) {\n            var _a = this.props, dateEnv = _a.dateEnv, usesMinMaxTime = _a.usesMinMaxTime, slotMinTime = _a.slotMinTime, slotMaxTime = _a.slotMaxTime;\n            var start = range.start, end = range.end;\n            if (usesMinMaxTime) {\n                // expand active range if slotMinTime is negative (why not when positive?)\n                if (asRoughDays(slotMinTime) < 0) {\n                    start = startOfDay(start); // necessary?\n                    start = dateEnv.add(start, slotMinTime);\n                }\n                // expand active range if slotMaxTime is beyond one day (why not when negative?)\n                if (asRoughDays(slotMaxTime) > 1) {\n                    end = startOfDay(end); // necessary?\n                    end = addDays(end, -1);\n                    end = dateEnv.add(end, slotMaxTime);\n                }\n            }\n            return { start: start, end: end };\n        };\n        // Builds the \"current\" range when it is specified as an explicit duration.\n        // `unit` is the already-computed greatestDurationDenominator unit of duration.\n        DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n            var _a = this.props, dateEnv = _a.dateEnv, dateAlignment = _a.dateAlignment;\n            var start;\n            var end;\n            var res;\n            // compute what the alignment should be\n            if (!dateAlignment) {\n                var dateIncrement = this.props.dateIncrement;\n                if (dateIncrement) {\n                    // use the smaller of the two units\n                    if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n                        dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n                    }\n                    else {\n                        dateAlignment = unit;\n                    }\n                }\n                else {\n                    dateAlignment = unit;\n                }\n            }\n            // if the view displays a single day or smaller\n            if (asRoughDays(duration) <= 1) {\n                if (this.isHiddenDay(start)) {\n                    start = this.skipHiddenDays(start, direction);\n                    start = startOfDay(start);\n                }\n            }\n            function computeRes() {\n                start = dateEnv.startOf(date, dateAlignment);\n                end = dateEnv.add(start, duration);\n                res = { start: start, end: end };\n            }\n            computeRes();\n            // if range is completely enveloped by hidden days, go past the hidden days\n            if (!this.trimHiddenDays(res)) {\n                date = this.skipHiddenDays(date, direction);\n                computeRes();\n            }\n            return res;\n        };\n        // Builds the \"current\" range when a dayCount is specified.\n        DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n            var _a = this.props, dateEnv = _a.dateEnv, dateAlignment = _a.dateAlignment;\n            var runningCount = 0;\n            var start = date;\n            var end;\n            if (dateAlignment) {\n                start = dateEnv.startOf(start, dateAlignment);\n            }\n            start = startOfDay(start);\n            start = this.skipHiddenDays(start, direction);\n            end = start;\n            do {\n                end = addDays(end, 1);\n                if (!this.isHiddenDay(end)) {\n                    runningCount += 1;\n                }\n            } while (runningCount < dayCount);\n            return { start: start, end: end };\n        };\n        // Builds a normalized range object for the \"visible\" range,\n        // which is a way to define the currentRange and activeRange at the same time.\n        DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n            var props = this.props;\n            var input = props.visibleRangeInput;\n            var simpleInput = typeof input === 'function'\n                ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n                : input;\n            var range = this.refineRange(simpleInput);\n            if (range && (range.start == null || range.end == null)) {\n                return null;\n            }\n            return range;\n        };\n        // Computes the range that will represent the element/cells for *rendering*,\n        // but which may have voided days/times.\n        // not responsible for trimming hidden days.\n        DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n            return currentRange;\n        };\n        // Compute the duration value that should be added/substracted to the current date\n        // when a prev/next operation happens.\n        DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n            var dateIncrement = this.props.dateIncrement;\n            var customAlignment;\n            if (dateIncrement) {\n                return dateIncrement;\n            }\n            if ((customAlignment = this.props.dateAlignment)) {\n                return createDuration(1, customAlignment);\n            }\n            if (fallback) {\n                return fallback;\n            }\n            return createDuration({ days: 1 });\n        };\n        DateProfileGenerator.prototype.refineRange = function (rangeInput) {\n            if (rangeInput) {\n                var range = parseRange(rangeInput, this.props.dateEnv);\n                if (range) {\n                    range = computeVisibleDayRange(range);\n                }\n                return range;\n            }\n            return null;\n        };\n        /* Hidden Days\n        ------------------------------------------------------------------------------------------------------------------*/\n        // Initializes internal variables related to calculating hidden days-of-week\n        DateProfileGenerator.prototype.initHiddenDays = function () {\n            var hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n            var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n            var dayCnt = 0;\n            var i;\n            if (this.props.weekends === false) {\n                hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n            }\n            for (i = 0; i < 7; i += 1) {\n                if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n                    dayCnt += 1;\n                }\n            }\n            if (!dayCnt) {\n                throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n            }\n            this.isHiddenDayHash = isHiddenDayHash;\n        };\n        // Remove days from the beginning and end of the range that are computed as hidden.\n        // If the whole range is trimmed off, returns null\n        DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n            var start = range.start, end = range.end;\n            if (start) {\n                start = this.skipHiddenDays(start);\n            }\n            if (end) {\n                end = this.skipHiddenDays(end, -1, true);\n            }\n            if (start == null || end == null || start < end) {\n                return { start: start, end: end };\n            }\n            return null;\n        };\n        // Is the current day hidden?\n        // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n        DateProfileGenerator.prototype.isHiddenDay = function (day) {\n            if (day instanceof Date) {\n                day = day.getUTCDay();\n            }\n            return this.isHiddenDayHash[day];\n        };\n        // Incrementing the current day until it is no longer a hidden day, returning a copy.\n        // DOES NOT CONSIDER validRange!\n        // If the initial value of `date` is not a hidden day, don't do anything.\n        // Pass `isExclusive` as `true` if you are dealing with an end date.\n        // `inc` defaults to `1` (increment one day forward each time)\n        DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n            if (inc === void 0) { inc = 1; }\n            if (isExclusive === void 0) { isExclusive = false; }\n            while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n                date = addDays(date, inc);\n            }\n            return date;\n        };\n        return DateProfileGenerator;\n    }());\n\n    function reduceViewType(viewType, action) {\n        switch (action.type) {\n            case 'CHANGE_VIEW_TYPE':\n                viewType = action.viewType;\n        }\n        return viewType;\n    }\n\n    function reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n        var _a;\n        switch (action.type) {\n            case 'SET_OPTION':\n                return __assign(__assign({}, dynamicOptionOverrides), (_a = {}, _a[action.optionName] = action.rawOptionValue, _a));\n            default:\n                return dynamicOptionOverrides;\n        }\n    }\n\n    function reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n        var dp;\n        switch (action.type) {\n            case 'CHANGE_VIEW_TYPE':\n                return dateProfileGenerator.build(action.dateMarker || currentDate);\n            case 'CHANGE_DATE':\n                if (!currentDateProfile.activeRange ||\n                    !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker) // don't move if date already in view\n                ) {\n                    return dateProfileGenerator.build(action.dateMarker);\n                }\n                break;\n            case 'PREV':\n                dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n                if (dp.isValid) {\n                    return dp;\n                }\n                break;\n            case 'NEXT':\n                dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n                if (dp.isValid) {\n                    return dp;\n                }\n                break;\n        }\n        return currentDateProfile;\n    }\n\n    function initEventSources(calendarOptions, dateProfile, context) {\n        var activeRange = dateProfile ? dateProfile.activeRange : null;\n        return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n    }\n    function reduceEventSources(eventSources, action, dateProfile, context) {\n        var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n        switch (action.type) {\n            case 'ADD_EVENT_SOURCES': // already parsed\n                return addSources(eventSources, action.sources, activeRange, context);\n            case 'REMOVE_EVENT_SOURCE':\n                return removeSource(eventSources, action.sourceId);\n            case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n            case 'NEXT':\n            case 'CHANGE_DATE':\n            case 'CHANGE_VIEW_TYPE':\n                if (dateProfile) {\n                    return fetchDirtySources(eventSources, activeRange, context);\n                }\n                return eventSources;\n            case 'FETCH_EVENT_SOURCES':\n                return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n                    arrayToHash(action.sourceIds) :\n                    excludeStaticSources(eventSources, context), activeRange, context);\n            case 'RECEIVE_EVENTS':\n            case 'RECEIVE_EVENT_ERROR':\n                return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n            case 'REMOVE_ALL_EVENT_SOURCES':\n                return {};\n            default:\n                return eventSources;\n        }\n    }\n    function reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n        var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n        return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, context);\n    }\n    function computeEventSourcesLoading(eventSources) {\n        for (var sourceId in eventSources) {\n            if (eventSources[sourceId].isFetching) {\n                return true;\n            }\n        }\n        return false;\n    }\n    function addSources(eventSourceHash, sources, fetchRange, context) {\n        var hash = {};\n        for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n            var source = sources_1[_i];\n            hash[source.sourceId] = source;\n        }\n        if (fetchRange) {\n            hash = fetchDirtySources(hash, fetchRange, context);\n        }\n        return __assign(__assign({}, eventSourceHash), hash);\n    }\n    function removeSource(eventSourceHash, sourceId) {\n        return filterHash(eventSourceHash, function (eventSource) { return eventSource.sourceId !== sourceId; });\n    }\n    function fetchDirtySources(sourceHash, fetchRange, context) {\n        return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, context);\n    }\n    function isSourceDirty(eventSource, fetchRange, context) {\n        if (!doesSourceNeedRange(eventSource, context)) {\n            return !eventSource.latestFetchId;\n        }\n        return !context.options.lazyFetching ||\n            !eventSource.fetchRange ||\n            eventSource.isFetching || // always cancel outdated in-progress fetches\n            fetchRange.start < eventSource.fetchRange.start ||\n            fetchRange.end > eventSource.fetchRange.end;\n    }\n    function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, context) {\n        var nextSources = {};\n        for (var sourceId in prevSources) {\n            var source = prevSources[sourceId];\n            if (sourceIdHash[sourceId]) {\n                nextSources[sourceId] = fetchSource(source, fetchRange, context);\n            }\n            else {\n                nextSources[sourceId] = source;\n            }\n        }\n        return nextSources;\n    }\n    function fetchSource(eventSource, fetchRange, context) {\n        var options = context.options, calendarApi = context.calendarApi;\n        var sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n        var fetchId = guid();\n        sourceDef.fetch({\n            eventSource: eventSource,\n            range: fetchRange,\n            context: context,\n        }, function (res) {\n            var rawEvents = res.rawEvents;\n            if (options.eventSourceSuccess) {\n                rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n            }\n            if (eventSource.success) {\n                rawEvents = eventSource.success.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n            }\n            context.dispatch({\n                type: 'RECEIVE_EVENTS',\n                sourceId: eventSource.sourceId,\n                fetchId: fetchId,\n                fetchRange: fetchRange,\n                rawEvents: rawEvents,\n            });\n        }, function (error) {\n            console.warn(error.message, error);\n            if (options.eventSourceFailure) {\n                options.eventSourceFailure.call(calendarApi, error);\n            }\n            if (eventSource.failure) {\n                eventSource.failure(error);\n            }\n            context.dispatch({\n                type: 'RECEIVE_EVENT_ERROR',\n                sourceId: eventSource.sourceId,\n                fetchId: fetchId,\n                fetchRange: fetchRange,\n                error: error,\n            });\n        });\n        return __assign(__assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });\n    }\n    function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n        var _a;\n        var eventSource = sourceHash[sourceId];\n        if (eventSource && // not already removed\n            fetchId === eventSource.latestFetchId) {\n            return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), { isFetching: false, fetchRange: fetchRange }), _a));\n        }\n        return sourceHash;\n    }\n    function excludeStaticSources(eventSources, context) {\n        return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });\n    }\n    function parseInitialSources(rawOptions, context) {\n        var refiners = buildEventSourceRefiners(context);\n        var rawSources = [].concat(rawOptions.eventSources || []);\n        var sources = []; // parsed\n        if (rawOptions.initialEvents) {\n            rawSources.unshift(rawOptions.initialEvents);\n        }\n        if (rawOptions.events) {\n            rawSources.unshift(rawOptions.events);\n        }\n        for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {\n            var rawSource = rawSources_1[_i];\n            var source = parseEventSource(rawSource, context, refiners);\n            if (source) {\n                sources.push(source);\n            }\n        }\n        return sources;\n    }\n    function doesSourceNeedRange(eventSource, context) {\n        var defs = context.pluginHooks.eventSourceDefs;\n        return !defs[eventSource.sourceDefId].ignoreRange;\n    }\n\n    function reduceDateSelection(currentSelection, action) {\n        switch (action.type) {\n            case 'UNSELECT_DATES':\n                return null;\n            case 'SELECT_DATES':\n                return action.selection;\n            default:\n                return currentSelection;\n        }\n    }\n\n    function reduceSelectedEvent(currentInstanceId, action) {\n        switch (action.type) {\n            case 'UNSELECT_EVENT':\n                return '';\n            case 'SELECT_EVENT':\n                return action.eventInstanceId;\n            default:\n                return currentInstanceId;\n        }\n    }\n\n    function reduceEventDrag(currentDrag, action) {\n        var newDrag;\n        switch (action.type) {\n            case 'UNSET_EVENT_DRAG':\n                return null;\n            case 'SET_EVENT_DRAG':\n                newDrag = action.state;\n                return {\n                    affectedEvents: newDrag.affectedEvents,\n                    mutatedEvents: newDrag.mutatedEvents,\n                    isEvent: newDrag.isEvent,\n                };\n            default:\n                return currentDrag;\n        }\n    }\n\n    function reduceEventResize(currentResize, action) {\n        var newResize;\n        switch (action.type) {\n            case 'UNSET_EVENT_RESIZE':\n                return null;\n            case 'SET_EVENT_RESIZE':\n                newResize = action.state;\n                return {\n                    affectedEvents: newResize.affectedEvents,\n                    mutatedEvents: newResize.mutatedEvents,\n                    isEvent: newResize.isEvent,\n                };\n            default:\n                return currentResize;\n        }\n    }\n\n    function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n        var viewsWithButtons = [];\n        var headerToolbar = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;\n        var footerToolbar = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;\n        return { headerToolbar: headerToolbar, footerToolbar: footerToolbar, viewsWithButtons: viewsWithButtons };\n    }\n    function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {\n        return mapHash(sectionStrHash, function (sectionStr) { return parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons); });\n    }\n    /*\n    BAD: querying icons and text here. should be done at render time\n    */\n    function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {\n        var isRtl = calendarOptions.direction === 'rtl';\n        var calendarCustomButtons = calendarOptions.customButtons || {};\n        var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n        var calendarButtonText = calendarOptions.buttonText || {};\n        var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n        return sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {\n            if (buttonName === 'title') {\n                return { buttonName: buttonName };\n            }\n            var customButtonProps;\n            var viewSpec;\n            var buttonClick;\n            var buttonIcon; // only one of these will be set\n            var buttonText; // \"\n            if ((customButtonProps = calendarCustomButtons[buttonName])) {\n                buttonClick = function (ev) {\n                    if (customButtonProps.click) {\n                        customButtonProps.click.call(ev.target, ev, ev.target);\n                    }\n                };\n                (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n                    (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n                    (buttonText = customButtonProps.text);\n            }\n            else if ((viewSpec = viewSpecs[buttonName])) {\n                viewsWithButtons.push(buttonName);\n                buttonClick = function () {\n                    calendarApi.changeView(buttonName);\n                };\n                (buttonText = viewSpec.buttonTextOverride) ||\n                    (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n                    (buttonText = viewSpec.buttonTextDefault);\n            }\n            else if (calendarApi[buttonName]) { // a calendarApi method\n                buttonClick = function () {\n                    calendarApi[buttonName]();\n                };\n                (buttonText = calendarButtonTextOverrides[buttonName]) ||\n                    (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n                    (buttonText = calendarButtonText[buttonName]);\n                //            ^ everything else is considered default\n            }\n            return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText };\n        })); });\n    }\n\n    var eventSourceDef = {\n        ignoreRange: true,\n        parseMeta: function (refined) {\n            if (Array.isArray(refined.events)) {\n                return refined.events;\n            }\n            return null;\n        },\n        fetch: function (arg, success) {\n            success({\n                rawEvents: arg.eventSource.meta,\n            });\n        },\n    };\n    var arrayEventSourcePlugin = createPlugin({\n        eventSourceDefs: [eventSourceDef],\n    });\n\n    var eventSourceDef$1 = {\n        parseMeta: function (refined) {\n            if (typeof refined.events === 'function') {\n                return refined.events;\n            }\n            return null;\n        },\n        fetch: function (arg, success, failure) {\n            var dateEnv = arg.context.dateEnv;\n            var func = arg.eventSource.meta;\n            unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), function (rawEvents) {\n                success({ rawEvents: rawEvents }); // needs an object response\n            }, failure);\n        },\n    };\n    var funcEventSourcePlugin = createPlugin({\n        eventSourceDefs: [eventSourceDef$1],\n    });\n\n    function requestJson(method, url, params, successCallback, failureCallback) {\n        method = method.toUpperCase();\n        var body = null;\n        if (method === 'GET') {\n            url = injectQueryStringParams(url, params);\n        }\n        else {\n            body = encodeParams(params);\n        }\n        var xhr = new XMLHttpRequest();\n        xhr.open(method, url, true);\n        if (method !== 'GET') {\n            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n        }\n        xhr.onload = function () {\n            if (xhr.status >= 200 && xhr.status < 400) {\n                var parsed = false;\n                var res = void 0;\n                try {\n                    res = JSON.parse(xhr.responseText);\n                    parsed = true;\n                }\n                catch (err) {\n                    // will handle parsed=false\n                }\n                if (parsed) {\n                    successCallback(res, xhr);\n                }\n                else {\n                    failureCallback('Failure parsing JSON', xhr);\n                }\n            }\n            else {\n                failureCallback('Request failed', xhr);\n            }\n        };\n        xhr.onerror = function () {\n            failureCallback('Request failed', xhr);\n        };\n        xhr.send(body);\n    }\n    function injectQueryStringParams(url, params) {\n        return url +\n            (url.indexOf('?') === -1 ? '?' : '&') +\n            encodeParams(params);\n    }\n    function encodeParams(params) {\n        var parts = [];\n        for (var key in params) {\n            parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]));\n        }\n        return parts.join('&');\n    }\n\n    var JSON_FEED_EVENT_SOURCE_REFINERS = {\n        method: String,\n        extraParams: identity,\n        startParam: String,\n        endParam: String,\n        timeZoneParam: String,\n    };\n\n    var eventSourceDef$2 = {\n        parseMeta: function (refined) {\n            if (refined.url && (refined.format === 'json' || !refined.format)) {\n                return {\n                    url: refined.url,\n                    format: 'json',\n                    method: (refined.method || 'GET').toUpperCase(),\n                    extraParams: refined.extraParams,\n                    startParam: refined.startParam,\n                    endParam: refined.endParam,\n                    timeZoneParam: refined.timeZoneParam,\n                };\n            }\n            return null;\n        },\n        fetch: function (arg, success, failure) {\n            var meta = arg.eventSource.meta;\n            var requestParams = buildRequestParams(meta, arg.range, arg.context);\n            requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n                success({ rawEvents: rawEvents, xhr: xhr });\n            }, function (errorMessage, xhr) {\n                failure({ message: errorMessage, xhr: xhr });\n            });\n        },\n    };\n    var jsonFeedEventSourcePlugin = createPlugin({\n        eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n        eventSourceDefs: [eventSourceDef$2],\n    });\n    function buildRequestParams(meta, range, context) {\n        var dateEnv = context.dateEnv, options = context.options;\n        var startParam;\n        var endParam;\n        var timeZoneParam;\n        var customRequestParams;\n        var params = {};\n        startParam = meta.startParam;\n        if (startParam == null) {\n            startParam = options.startParam;\n        }\n        endParam = meta.endParam;\n        if (endParam == null) {\n            endParam = options.endParam;\n        }\n        timeZoneParam = meta.timeZoneParam;\n        if (timeZoneParam == null) {\n            timeZoneParam = options.timeZoneParam;\n        }\n        // retrieve any outbound GET/POST data from the options\n        if (typeof meta.extraParams === 'function') {\n            // supplied as a function that returns a key/value object\n            customRequestParams = meta.extraParams();\n        }\n        else {\n            // probably supplied as a straight key/value object\n            customRequestParams = meta.extraParams || {};\n        }\n        __assign(params, customRequestParams);\n        params[startParam] = dateEnv.formatIso(range.start);\n        params[endParam] = dateEnv.formatIso(range.end);\n        if (dateEnv.timeZone !== 'local') {\n            params[timeZoneParam] = dateEnv.timeZone;\n        }\n        return params;\n    }\n\n    var SIMPLE_RECURRING_REFINERS = {\n        daysOfWeek: identity,\n        startTime: createDuration,\n        endTime: createDuration,\n        duration: createDuration,\n        startRecur: identity,\n        endRecur: identity,\n    };\n\n    var recurring = {\n        parse: function (refined, dateEnv) {\n            if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n                var recurringData = {\n                    daysOfWeek: refined.daysOfWeek || null,\n                    startTime: refined.startTime || null,\n                    endTime: refined.endTime || null,\n                    startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n                    endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n                };\n                var duration = void 0;\n                if (refined.duration) {\n                    duration = refined.duration;\n                }\n                if (!duration && refined.startTime && refined.endTime) {\n                    duration = subtractDurations(refined.endTime, refined.startTime);\n                }\n                return {\n                    allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n                    duration: duration,\n                    typeData: recurringData,\n                };\n            }\n            return null;\n        },\n        expand: function (typeData, framingRange, dateEnv) {\n            var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n            if (clippedFramingRange) {\n                return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n            }\n            return [];\n        },\n    };\n    var simpleRecurringEventsPlugin = createPlugin({\n        recurringTypes: [recurring],\n        eventRefiners: SIMPLE_RECURRING_REFINERS,\n    });\n    function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n        var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n        var dayMarker = startOfDay(framingRange.start);\n        var endMarker = framingRange.end;\n        var instanceStarts = [];\n        while (dayMarker < endMarker) {\n            var instanceStart \n            // if everyday, or this particular day-of-week\n            = void 0;\n            // if everyday, or this particular day-of-week\n            if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n                if (startTime) {\n                    instanceStart = dateEnv.add(dayMarker, startTime);\n                }\n                else {\n                    instanceStart = dayMarker;\n                }\n                instanceStarts.push(instanceStart);\n            }\n            dayMarker = addDays(dayMarker, 1);\n        }\n        return instanceStarts;\n    }\n\n    var changeHandlerPlugin = createPlugin({\n        optionChangeHandlers: {\n            events: function (events, context) {\n                handleEventSources([events], context);\n            },\n            eventSources: handleEventSources,\n        },\n    });\n    /*\n    BUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n    */\n    function handleEventSources(inputs, context) {\n        var unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n        var newInputs = [];\n        for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n            var input = inputs_1[_i];\n            var inputFound = false;\n            for (var i = 0; i < unfoundSources.length; i += 1) {\n                if (unfoundSources[i]._raw === input) {\n                    unfoundSources.splice(i, 1); // delete\n                    inputFound = true;\n                    break;\n                }\n            }\n            if (!inputFound) {\n                newInputs.push(input);\n            }\n        }\n        for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n            var unfoundSource = unfoundSources_1[_a];\n            context.dispatch({\n                type: 'REMOVE_EVENT_SOURCE',\n                sourceId: unfoundSource.sourceId,\n            });\n        }\n        for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n            var newInput = newInputs_1[_b];\n            context.calendarApi.addEventSource(newInput);\n        }\n    }\n\n    function handleDateProfile(dateProfile, context) {\n        context.emitter.trigger('datesSet', __assign(__assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n    }\n\n    function handleEventStore(eventStore, context) {\n        var emitter = context.emitter;\n        if (emitter.hasHandlers('eventsSet')) {\n            emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n        }\n    }\n\n    /*\n    this array is exposed on the root namespace so that UMD plugins can add to it.\n    see the rollup-bundles script.\n    */\n    var globalPlugins = [\n        arrayEventSourcePlugin,\n        funcEventSourcePlugin,\n        jsonFeedEventSourcePlugin,\n        simpleRecurringEventsPlugin,\n        changeHandlerPlugin,\n        createPlugin({\n            isLoadingFuncs: [\n                function (state) { return computeEventSourcesLoading(state.eventSources); },\n            ],\n            contentTypeHandlers: {\n                html: function () { return ({ render: injectHtml }); },\n                domNodes: function () { return ({ render: injectDomNodes }); },\n            },\n            propSetHandlers: {\n                dateProfile: handleDateProfile,\n                eventStore: handleEventStore,\n            },\n        }),\n    ];\n    function injectHtml(el, html) {\n        el.innerHTML = html;\n    }\n    function injectDomNodes(el, domNodes) {\n        var oldNodes = Array.prototype.slice.call(el.childNodes); // TODO: use array util\n        var newNodes = Array.prototype.slice.call(domNodes); // TODO: use array util\n        if (!isArraysEqual(oldNodes, newNodes)) {\n            for (var _i = 0, newNodes_1 = newNodes; _i < newNodes_1.length; _i++) {\n                var newNode = newNodes_1[_i];\n                el.appendChild(newNode);\n            }\n            oldNodes.forEach(removeElement);\n        }\n    }\n\n    var DelayedRunner = /** @class */ (function () {\n        function DelayedRunner(drainedOption) {\n            this.drainedOption = drainedOption;\n            this.isRunning = false;\n            this.isDirty = false;\n            this.pauseDepths = {};\n            this.timeoutId = 0;\n        }\n        DelayedRunner.prototype.request = function (delay) {\n            this.isDirty = true;\n            if (!this.isPaused()) {\n                this.clearTimeout();\n                if (delay == null) {\n                    this.tryDrain();\n                }\n                else {\n                    this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce\n                    this.tryDrain.bind(this), delay);\n                }\n            }\n        };\n        DelayedRunner.prototype.pause = function (scope) {\n            if (scope === void 0) { scope = ''; }\n            var pauseDepths = this.pauseDepths;\n            pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n            this.clearTimeout();\n        };\n        DelayedRunner.prototype.resume = function (scope, force) {\n            if (scope === void 0) { scope = ''; }\n            var pauseDepths = this.pauseDepths;\n            if (scope in pauseDepths) {\n                if (force) {\n                    delete pauseDepths[scope];\n                }\n                else {\n                    pauseDepths[scope] -= 1;\n                    var depth = pauseDepths[scope];\n                    if (depth <= 0) {\n                        delete pauseDepths[scope];\n                    }\n                }\n                this.tryDrain();\n            }\n        };\n        DelayedRunner.prototype.isPaused = function () {\n            return Object.keys(this.pauseDepths).length;\n        };\n        DelayedRunner.prototype.tryDrain = function () {\n            if (!this.isRunning && !this.isPaused()) {\n                this.isRunning = true;\n                while (this.isDirty) {\n                    this.isDirty = false;\n                    this.drained(); // might set isDirty to true again\n                }\n                this.isRunning = false;\n            }\n        };\n        DelayedRunner.prototype.clear = function () {\n            this.clearTimeout();\n            this.isDirty = false;\n            this.pauseDepths = {};\n        };\n        DelayedRunner.prototype.clearTimeout = function () {\n            if (this.timeoutId) {\n                clearTimeout(this.timeoutId);\n                this.timeoutId = 0;\n            }\n        };\n        DelayedRunner.prototype.drained = function () {\n            if (this.drainedOption) {\n                this.drainedOption();\n            }\n        };\n        return DelayedRunner;\n    }());\n\n    var TaskRunner = /** @class */ (function () {\n        function TaskRunner(runTaskOption, drainedOption) {\n            this.runTaskOption = runTaskOption;\n            this.drainedOption = drainedOption;\n            this.queue = [];\n            this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n        }\n        TaskRunner.prototype.request = function (task, delay) {\n            this.queue.push(task);\n            this.delayedRunner.request(delay);\n        };\n        TaskRunner.prototype.pause = function (scope) {\n            this.delayedRunner.pause(scope);\n        };\n        TaskRunner.prototype.resume = function (scope, force) {\n            this.delayedRunner.resume(scope, force);\n        };\n        TaskRunner.prototype.drain = function () {\n            var queue = this.queue;\n            while (queue.length) {\n                var completedTasks = [];\n                var task = void 0;\n                while ((task = queue.shift())) {\n                    this.runTask(task);\n                    completedTasks.push(task);\n                }\n                this.drained(completedTasks);\n            } // keep going, in case new tasks were added in the drained handler\n        };\n        TaskRunner.prototype.runTask = function (task) {\n            if (this.runTaskOption) {\n                this.runTaskOption(task);\n            }\n        };\n        TaskRunner.prototype.drained = function (completedTasks) {\n            if (this.drainedOption) {\n                this.drainedOption(completedTasks);\n            }\n        };\n        return TaskRunner;\n    }());\n\n    // Computes what the title at the top of the calendarApi should be for this view\n    function buildTitle(dateProfile, viewOptions, dateEnv) {\n        var range;\n        // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n        if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n            range = dateProfile.currentRange;\n        }\n        else { // for day units or smaller, use the actual day range\n            range = dateProfile.activeRange;\n        }\n        return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n            isEndExclusive: dateProfile.isRangeAllDay,\n            defaultSeparator: viewOptions.titleRangeSeparator,\n        });\n    }\n    // Generates the format string that should be used to generate the title for the current date range.\n    // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\n    function buildTitleFormat(dateProfile) {\n        var currentRangeUnit = dateProfile.currentRangeUnit;\n        if (currentRangeUnit === 'year') {\n            return { year: 'numeric' };\n        }\n        if (currentRangeUnit === 'month') {\n            return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n        }\n        var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n        if (days !== null && days > 1) {\n            // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n            return { year: 'numeric', month: 'short', day: 'numeric' };\n        }\n        // one day. longer, like \"September 9 2014\"\n        return { year: 'numeric', month: 'long', day: 'numeric' };\n    }\n\n    // in future refactor, do the redux-style function(state=initial) for initial-state\n    // also, whatever is happening in constructor, have it happen in action queue too\n    var CalendarDataManager = /** @class */ (function () {\n        function CalendarDataManager(props) {\n            var _this = this;\n            this.computeOptionsData = memoize(this._computeOptionsData);\n            this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n            this.organizeRawLocales = memoize(organizeRawLocales);\n            this.buildLocale = memoize(buildLocale);\n            this.buildPluginHooks = buildBuildPluginHooks();\n            this.buildDateEnv = memoize(buildDateEnv$1);\n            this.buildTheme = memoize(buildTheme);\n            this.parseToolbars = memoize(parseToolbars);\n            this.buildViewSpecs = memoize(buildViewSpecs);\n            this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n            this.buildViewApi = memoize(buildViewApi);\n            this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n            this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n            this.buildEventUiBases = memoize(buildEventUiBases);\n            this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n            this.buildTitle = memoize(buildTitle);\n            this.emitter = new Emitter();\n            this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n            this.currentCalendarOptionsInput = {};\n            this.currentCalendarOptionsRefined = {};\n            this.currentViewOptionsInput = {};\n            this.currentViewOptionsRefined = {};\n            this.currentCalendarOptionsRefiners = {};\n            this.getCurrentData = function () { return _this.data; };\n            this.dispatch = function (action) {\n                _this.actionRunner.request(action); // protects against recursive calls to _handleAction\n            };\n            this.props = props;\n            this.actionRunner.pause();\n            var dynamicOptionOverrides = {};\n            var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n            var currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n            var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n            // wire things up\n            // TODO: not DRY\n            props.calendarApi.currentDataManager = this;\n            this.emitter.setThisContext(props.calendarApi);\n            this.emitter.setOptions(currentViewData.options);\n            var currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n            var dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n            if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n                currentDate = dateProfile.currentRange.start;\n            }\n            var calendarContext = {\n                dateEnv: optionsData.dateEnv,\n                options: optionsData.calendarOptions,\n                pluginHooks: optionsData.pluginHooks,\n                calendarApi: props.calendarApi,\n                dispatch: this.dispatch,\n                emitter: this.emitter,\n                getCurrentData: this.getCurrentData,\n            };\n            // needs to be after setThisContext\n            for (var _i = 0, _a = optionsData.pluginHooks.contextInit; _i < _a.length; _i++) {\n                var callback = _a[_i];\n                callback(calendarContext);\n            }\n            // NOT DRY\n            var eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n            var initialState = {\n                dynamicOptionOverrides: dynamicOptionOverrides,\n                currentViewType: currentViewType,\n                currentDate: currentDate,\n                dateProfile: dateProfile,\n                businessHours: this.parseContextBusinessHours(calendarContext),\n                eventSources: eventSources,\n                eventUiBases: {},\n                eventStore: createEmptyEventStore(),\n                renderableEventStore: createEmptyEventStore(),\n                dateSelection: null,\n                eventSelection: '',\n                eventDrag: null,\n                eventResize: null,\n                selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n            };\n            var contextAndState = __assign(__assign({}, calendarContext), initialState);\n            for (var _b = 0, _c = optionsData.pluginHooks.reducers; _b < _c.length; _b++) {\n                var reducer = _c[_b];\n                __assign(initialState, reducer(null, null, contextAndState));\n            }\n            if (computeIsLoading(initialState, calendarContext)) {\n                this.emitter.trigger('loading', true); // NOT DRY\n            }\n            this.state = initialState;\n            this.updateData();\n            this.actionRunner.resume();\n        }\n        CalendarDataManager.prototype.resetOptions = function (optionOverrides, append) {\n            var props = this.props;\n            props.optionOverrides = append\n                ? __assign(__assign({}, props.optionOverrides), optionOverrides) : optionOverrides;\n            this.actionRunner.request({\n                type: 'NOTHING',\n            });\n        };\n        CalendarDataManager.prototype._handleAction = function (action) {\n            var _a = this, props = _a.props, state = _a.state, emitter = _a.emitter;\n            var dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n            var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n            var currentViewType = reduceViewType(state.currentViewType, action);\n            var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n            // wire things up\n            // TODO: not DRY\n            props.calendarApi.currentDataManager = this;\n            emitter.setThisContext(props.calendarApi);\n            emitter.setOptions(currentViewData.options);\n            var calendarContext = {\n                dateEnv: optionsData.dateEnv,\n                options: optionsData.calendarOptions,\n                pluginHooks: optionsData.pluginHooks,\n                calendarApi: props.calendarApi,\n                dispatch: this.dispatch,\n                emitter: emitter,\n                getCurrentData: this.getCurrentData,\n            };\n            var currentDate = state.currentDate, dateProfile = state.dateProfile;\n            if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n                dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n            }\n            currentDate = reduceCurrentDate(currentDate, action);\n            dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n            if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n                currentDate = dateProfile.currentRange.start;\n            }\n            var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n            var eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n            var isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n            var renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n                (state.renderableEventStore || eventStore) : // try from previous state\n                eventStore;\n            var _b = this.buildViewUiProps(calendarContext), eventUiSingleBase = _b.eventUiSingleBase, selectionConfig = _b.selectionConfig; // will memoize obj\n            var eventUiBySource = this.buildEventUiBySource(eventSources);\n            var eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n            var newState = {\n                dynamicOptionOverrides: dynamicOptionOverrides,\n                currentViewType: currentViewType,\n                currentDate: currentDate,\n                dateProfile: dateProfile,\n                eventSources: eventSources,\n                eventStore: eventStore,\n                renderableEventStore: renderableEventStore,\n                selectionConfig: selectionConfig,\n                eventUiBases: eventUiBases,\n                businessHours: this.parseContextBusinessHours(calendarContext),\n                dateSelection: reduceDateSelection(state.dateSelection, action),\n                eventSelection: reduceSelectedEvent(state.eventSelection, action),\n                eventDrag: reduceEventDrag(state.eventDrag, action),\n                eventResize: reduceEventResize(state.eventResize, action),\n            };\n            var contextAndState = __assign(__assign({}, calendarContext), newState);\n            for (var _i = 0, _c = optionsData.pluginHooks.reducers; _i < _c.length; _i++) {\n                var reducer = _c[_i];\n                __assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n            }\n            var wasLoading = computeIsLoading(state, calendarContext);\n            var isLoading = computeIsLoading(newState, calendarContext);\n            // TODO: use propSetHandlers in plugin system\n            if (!wasLoading && isLoading) {\n                emitter.trigger('loading', true);\n            }\n            else if (wasLoading && !isLoading) {\n                emitter.trigger('loading', false);\n            }\n            this.state = newState;\n            if (props.onAction) {\n                props.onAction(action);\n            }\n        };\n        CalendarDataManager.prototype.updateData = function () {\n            var _a = this, props = _a.props, state = _a.state;\n            var oldData = this.data;\n            var optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n            var currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n            var data = this.data = __assign(__assign(__assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n            var changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n            var oldCalendarOptions = oldData && oldData.calendarOptions;\n            var newCalendarOptions = optionsData.calendarOptions;\n            if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n                if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n                    // hack\n                    state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n                    state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n                }\n                for (var optionName in changeHandlers) {\n                    if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n                        changeHandlers[optionName](newCalendarOptions[optionName], data);\n                    }\n                }\n            }\n            if (props.onData) {\n                props.onData(data);\n            }\n        };\n        CalendarDataManager.prototype._computeOptionsData = function (optionOverrides, dynamicOptionOverrides, calendarApi) {\n            // TODO: blacklist options that are handled by optionChangeHandlers\n            var _a = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides), refinedOptions = _a.refinedOptions, pluginHooks = _a.pluginHooks, localeDefaults = _a.localeDefaults, availableLocaleData = _a.availableLocaleData, extra = _a.extra;\n            warnUnknownOptions(extra);\n            var dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n            var viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults);\n            var theme = this.buildTheme(refinedOptions, pluginHooks);\n            var toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi);\n            return {\n                calendarOptions: refinedOptions,\n                pluginHooks: pluginHooks,\n                dateEnv: dateEnv,\n                viewSpecs: viewSpecs,\n                theme: theme,\n                toolbarConfig: toolbarConfig,\n                localeDefaults: localeDefaults,\n                availableRawLocales: availableLocaleData.map,\n            };\n        };\n        // always called from behind a memoizer\n        CalendarDataManager.prototype.processRawCalendarOptions = function (optionOverrides, dynamicOptionOverrides) {\n            var _a = mergeRawOptions([\n                BASE_OPTION_DEFAULTS,\n                optionOverrides,\n                dynamicOptionOverrides,\n            ]), locales = _a.locales, locale = _a.locale;\n            var availableLocaleData = this.organizeRawLocales(locales);\n            var availableRawLocales = availableLocaleData.map;\n            var localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n            var pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n            var refiners = this.currentCalendarOptionsRefiners = __assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n            var extra = {};\n            var raw = mergeRawOptions([\n                BASE_OPTION_DEFAULTS,\n                localeDefaults,\n                optionOverrides,\n                dynamicOptionOverrides,\n            ]);\n            var refined = {};\n            var currentRaw = this.currentCalendarOptionsInput;\n            var currentRefined = this.currentCalendarOptionsRefined;\n            var anyChanges = false;\n            for (var optionName in raw) {\n                if (optionName !== 'plugins') { // because plugins is special-cased\n                    if (raw[optionName] === currentRaw[optionName] ||\n                        (COMPLEX_OPTION_COMPARATORS[optionName] &&\n                            (optionName in currentRaw) &&\n                            COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {\n                        refined[optionName] = currentRefined[optionName];\n                    }\n                    else if (refiners[optionName]) {\n                        refined[optionName] = refiners[optionName](raw[optionName]);\n                        anyChanges = true;\n                    }\n                    else {\n                        extra[optionName] = currentRaw[optionName];\n                    }\n                }\n            }\n            if (anyChanges) {\n                this.currentCalendarOptionsInput = raw;\n                this.currentCalendarOptionsRefined = refined;\n            }\n            return {\n                rawOptions: this.currentCalendarOptionsInput,\n                refinedOptions: this.currentCalendarOptionsRefined,\n                pluginHooks: pluginHooks,\n                availableLocaleData: availableLocaleData,\n                localeDefaults: localeDefaults,\n                extra: extra,\n            };\n        };\n        CalendarDataManager.prototype._computeCurrentViewData = function (viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n            var viewSpec = optionsData.viewSpecs[viewType];\n            if (!viewSpec) {\n                throw new Error(\"viewType \\\"\" + viewType + \"\\\" is not available. Please make sure you've loaded all neccessary plugins\");\n            }\n            var _a = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides), refinedOptions = _a.refinedOptions, extra = _a.extra;\n            warnUnknownOptions(extra);\n            var dateProfileGenerator = this.buildDateProfileGenerator({\n                dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n                duration: viewSpec.duration,\n                durationUnit: viewSpec.durationUnit,\n                usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n                dateEnv: optionsData.dateEnv,\n                calendarApi: this.props.calendarApi,\n                slotMinTime: refinedOptions.slotMinTime,\n                slotMaxTime: refinedOptions.slotMaxTime,\n                showNonCurrentDates: refinedOptions.showNonCurrentDates,\n                dayCount: refinedOptions.dayCount,\n                dateAlignment: refinedOptions.dateAlignment,\n                dateIncrement: refinedOptions.dateIncrement,\n                hiddenDays: refinedOptions.hiddenDays,\n                weekends: refinedOptions.weekends,\n                nowInput: refinedOptions.now,\n                validRangeInput: refinedOptions.validRange,\n                visibleRangeInput: refinedOptions.visibleRange,\n                monthMode: refinedOptions.monthMode,\n                fixedWeekCount: refinedOptions.fixedWeekCount,\n            });\n            var viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n            return { viewSpec: viewSpec, options: refinedOptions, dateProfileGenerator: dateProfileGenerator, viewApi: viewApi };\n        };\n        CalendarDataManager.prototype.processRawViewOptions = function (viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n            var raw = mergeRawOptions([\n                BASE_OPTION_DEFAULTS,\n                viewSpec.optionDefaults,\n                localeDefaults,\n                optionOverrides,\n                viewSpec.optionOverrides,\n                dynamicOptionOverrides,\n            ]);\n            var refiners = __assign(__assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n            var refined = {};\n            var currentRaw = this.currentViewOptionsInput;\n            var currentRefined = this.currentViewOptionsRefined;\n            var anyChanges = false;\n            var extra = {};\n            for (var optionName in raw) {\n                if (raw[optionName] === currentRaw[optionName]) {\n                    refined[optionName] = currentRefined[optionName];\n                }\n                else {\n                    if (raw[optionName] === this.currentCalendarOptionsInput[optionName]) {\n                        if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n                            refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n                        }\n                    }\n                    else if (refiners[optionName]) {\n                        refined[optionName] = refiners[optionName](raw[optionName]);\n                    }\n                    else {\n                        extra[optionName] = raw[optionName];\n                    }\n                    anyChanges = true;\n                }\n            }\n            if (anyChanges) {\n                this.currentViewOptionsInput = raw;\n                this.currentViewOptionsRefined = refined;\n            }\n            return {\n                rawOptions: this.currentViewOptionsInput,\n                refinedOptions: this.currentViewOptionsRefined,\n                extra: extra,\n            };\n        };\n        return CalendarDataManager;\n    }());\n    function buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n        var locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n        return new DateEnv({\n            calendarSystem: 'gregory',\n            timeZone: timeZone,\n            namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n            locale: locale,\n            weekNumberCalculation: weekNumberCalculation,\n            firstDay: firstDay,\n            weekText: weekText,\n            cmdFormatter: pluginHooks.cmdFormatter,\n            defaultSeparator: defaultSeparator,\n        });\n    }\n    function buildTheme(options, pluginHooks) {\n        var ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n        return new ThemeClass(options);\n    }\n    function buildDateProfileGenerator(props) {\n        var DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n        return new DateProfileGeneratorClass(props);\n    }\n    function buildViewApi(type, getCurrentData, dateEnv) {\n        return new ViewApi(type, getCurrentData, dateEnv);\n    }\n    function buildEventUiBySource(eventSources) {\n        return mapHash(eventSources, function (eventSource) { return eventSource.ui; });\n    }\n    function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n        var eventUiBases = { '': eventUiSingleBase };\n        for (var defId in eventDefs) {\n            var def = eventDefs[defId];\n            if (def.sourceId && eventUiBySource[def.sourceId]) {\n                eventUiBases[defId] = eventUiBySource[def.sourceId];\n            }\n        }\n        return eventUiBases;\n    }\n    function buildViewUiProps(calendarContext) {\n        var options = calendarContext.options;\n        return {\n            eventUiSingleBase: createEventUi({\n                display: options.eventDisplay,\n                editable: options.editable,\n                startEditable: options.eventStartEditable,\n                durationEditable: options.eventDurationEditable,\n                constraint: options.eventConstraint,\n                overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n                allow: options.eventAllow,\n                backgroundColor: options.eventBackgroundColor,\n                borderColor: options.eventBorderColor,\n                textColor: options.eventTextColor,\n                color: options.eventColor,\n            }, calendarContext),\n            selectionConfig: createEventUi({\n                constraint: options.selectConstraint,\n                overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n                allow: options.selectAllow,\n            }, calendarContext),\n        };\n    }\n    function computeIsLoading(state, context) {\n        for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {\n            var isLoadingFunc = _a[_i];\n            if (isLoadingFunc(state)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    function parseContextBusinessHours(calendarContext) {\n        return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n    }\n    function warnUnknownOptions(options, viewName) {\n        for (var optionName in options) {\n            console.warn(\"Unknown option '\" + optionName + \"'\" +\n                (viewName ? \" for view '\" + viewName + \"'\" : ''));\n        }\n    }\n\n    // TODO: move this to react plugin?\n    var CalendarDataProvider = /** @class */ (function (_super) {\n        __extends(CalendarDataProvider, _super);\n        function CalendarDataProvider(props) {\n            var _this = _super.call(this, props) || this;\n            _this.handleData = function (data) {\n                if (!_this.dataManager) { // still within initial run, before assignment in constructor\n                    // eslint-disable-next-line react/no-direct-mutation-state\n                    _this.state = data; // can't use setState yet\n                }\n                else {\n                    _this.setState(data);\n                }\n            };\n            _this.dataManager = new CalendarDataManager({\n                optionOverrides: props.optionOverrides,\n                calendarApi: props.calendarApi,\n                onData: _this.handleData,\n            });\n            return _this;\n        }\n        CalendarDataProvider.prototype.render = function () {\n            return this.props.children(this.state);\n        };\n        CalendarDataProvider.prototype.componentDidUpdate = function (prevProps) {\n            var newOptionOverrides = this.props.optionOverrides;\n            if (newOptionOverrides !== prevProps.optionOverrides) { // prevent recursive handleData\n                this.dataManager.resetOptions(newOptionOverrides);\n            }\n        };\n        return CalendarDataProvider;\n    }(Component));\n\n    // HELPERS\n    /*\n    if nextDayThreshold is specified, slicing is done in an all-day fashion.\n    you can get nextDayThreshold from context.nextDayThreshold\n    */\n    function sliceEvents(props, allDay) {\n        return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n    }\n\n    var NamedTimeZoneImpl = /** @class */ (function () {\n        function NamedTimeZoneImpl(timeZoneName) {\n            this.timeZoneName = timeZoneName;\n        }\n        return NamedTimeZoneImpl;\n    }());\n\n    var Interaction = /** @class */ (function () {\n        function Interaction(settings) {\n            this.component = settings.component;\n        }\n        Interaction.prototype.destroy = function () {\n        };\n        return Interaction;\n    }());\n    function parseInteractionSettings(component, input) {\n        return {\n            component: component,\n            el: input.el,\n            useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n        };\n    }\n    function interactionSettingsToStore(settings) {\n        var _a;\n        return _a = {},\n            _a[settings.component.uid] = settings,\n            _a;\n    }\n    // global state\n    var interactionSettingsStore = {};\n\n    /*\n    An abstraction for a dragging interaction originating on an event.\n    Does higher-level things than PointerDragger, such as possibly:\n    - a \"mirror\" that moves with the pointer\n    - a minimum number of pixels or other criteria for a true drag to begin\n\n    subclasses must emit:\n    - pointerdown\n    - dragstart\n    - dragmove\n    - pointerup\n    - dragend\n    */\n    var ElementDragging = /** @class */ (function () {\n        function ElementDragging(el, selector) {\n            this.emitter = new Emitter();\n        }\n        ElementDragging.prototype.destroy = function () {\n        };\n        ElementDragging.prototype.setMirrorIsVisible = function (bool) {\n            // optional if subclass doesn't want to support a mirror\n        };\n        ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n            // optional if subclass doesn't want to support a mirror\n        };\n        ElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n            // optional\n        };\n        return ElementDragging;\n    }());\n\n    // TODO: get rid of this in favor of options system,\n    // tho it's really easy to access this globally rather than pass thru options.\n    var config = {};\n\n    /*\n    Information about what will happen when an external element is dragged-and-dropped\n    onto a calendar. Contains information for creating an event.\n    */\n    var DRAG_META_REFINERS = {\n        startTime: createDuration,\n        duration: createDuration,\n        create: Boolean,\n        sourceId: String,\n    };\n    function parseDragMeta(raw) {\n        var _a = refineProps(raw, DRAG_META_REFINERS), refined = _a.refined, extra = _a.extra;\n        return {\n            startTime: refined.startTime || null,\n            duration: refined.duration || null,\n            create: refined.create != null ? refined.create : true,\n            sourceId: refined.sourceId,\n            leftoverProps: extra,\n        };\n    }\n\n    var ToolbarSection = /** @class */ (function (_super) {\n        __extends(ToolbarSection, _super);\n        function ToolbarSection() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        ToolbarSection.prototype.render = function () {\n            var _this = this;\n            var children = this.props.widgetGroups.map(function (widgetGroup) { return _this.renderWidgetGroup(widgetGroup); });\n            return createElement.apply(void 0, __spreadArrays(['div', { className: 'fc-toolbar-chunk' }], children));\n        };\n        ToolbarSection.prototype.renderWidgetGroup = function (widgetGroup) {\n            var props = this.props;\n            var theme = this.context.theme;\n            var children = [];\n            var isOnlyButtons = true;\n            for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {\n                var widget = widgetGroup_1[_i];\n                var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon;\n                if (buttonName === 'title') {\n                    isOnlyButtons = false;\n                    children.push(createElement(\"h2\", { className: \"fc-toolbar-title\" }, props.title));\n                }\n                else {\n                    var ariaAttrs = buttonIcon ? { 'aria-label': buttonName } : {};\n                    var buttonClasses = [\"fc-\" + buttonName + \"-button\", theme.getClass('button')];\n                    if (buttonName === props.activeButton) {\n                        buttonClasses.push(theme.getClass('buttonActive'));\n                    }\n                    var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n                        (!props.isPrevEnabled && buttonName === 'prev') ||\n                        (!props.isNextEnabled && buttonName === 'next');\n                    children.push(createElement(\"button\", __assign({ disabled: isDisabled, className: buttonClasses.join(' '), onClick: buttonClick, type: \"button\" }, ariaAttrs), buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon }) : '')));\n                }\n            }\n            if (children.length > 1) {\n                var groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n                return createElement.apply(void 0, __spreadArrays(['div', { className: groupClassName }], children));\n            }\n            return children[0];\n        };\n        return ToolbarSection;\n    }(BaseComponent));\n\n    var Toolbar = /** @class */ (function (_super) {\n        __extends(Toolbar, _super);\n        function Toolbar() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        Toolbar.prototype.render = function () {\n            var _a = this.props, model = _a.model, extraClassName = _a.extraClassName;\n            var forceLtr = false;\n            var startContent;\n            var endContent;\n            var centerContent = model.center;\n            if (model.left) {\n                forceLtr = true;\n                startContent = model.left;\n            }\n            else {\n                startContent = model.start;\n            }\n            if (model.right) {\n                forceLtr = true;\n                endContent = model.right;\n            }\n            else {\n                endContent = model.end;\n            }\n            var classNames = [\n                extraClassName || '',\n                'fc-toolbar',\n                forceLtr ? 'fc-toolbar-ltr' : '',\n            ];\n            return (createElement(\"div\", { className: classNames.join(' ') },\n                this.renderSection('start', startContent || []),\n                this.renderSection('center', centerContent || []),\n                this.renderSection('end', endContent || [])));\n        };\n        Toolbar.prototype.renderSection = function (key, widgetGroups) {\n            var props = this.props;\n            return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));\n        };\n        return Toolbar;\n    }(BaseComponent));\n\n    // TODO: do function component?\n    var ViewContainer = /** @class */ (function (_super) {\n        __extends(ViewContainer, _super);\n        function ViewContainer() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.state = {\n                availableWidth: null,\n            };\n            _this.handleEl = function (el) {\n                _this.el = el;\n                setRef(_this.props.elRef, el);\n                _this.updateAvailableWidth();\n            };\n            _this.handleResize = function () {\n                _this.updateAvailableWidth();\n            };\n            return _this;\n        }\n        ViewContainer.prototype.render = function () {\n            var _a = this, props = _a.props, state = _a.state;\n            var aspectRatio = props.aspectRatio;\n            var classNames = [\n                'fc-view-harness',\n                (aspectRatio || props.liquid || props.height)\n                    ? 'fc-view-harness-active' // harness controls the height\n                    : 'fc-view-harness-passive',\n            ];\n            var height = '';\n            var paddingBottom = '';\n            if (aspectRatio) {\n                if (state.availableWidth !== null) {\n                    height = state.availableWidth / aspectRatio;\n                }\n                else {\n                    // while waiting to know availableWidth, we can't set height to *zero*\n                    // because will cause lots of unnecessary scrollbars within scrollgrid.\n                    // BETTER: don't start rendering ANYTHING yet until we know container width\n                    // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n                    paddingBottom = (1 / aspectRatio) * 100 + \"%\";\n                }\n            }\n            else {\n                height = props.height || '';\n            }\n            return (createElement(\"div\", { ref: this.handleEl, onClick: props.onClick, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));\n        };\n        ViewContainer.prototype.componentDidMount = function () {\n            this.context.addResizeHandler(this.handleResize);\n        };\n        ViewContainer.prototype.componentWillUnmount = function () {\n            this.context.removeResizeHandler(this.handleResize);\n        };\n        ViewContainer.prototype.updateAvailableWidth = function () {\n            if (this.el && // needed. but why?\n                this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n            ) {\n                this.setState({ availableWidth: this.el.offsetWidth });\n            }\n        };\n        return ViewContainer;\n    }(BaseComponent));\n\n    /*\n    Detects when the user clicks on an event within a DateComponent\n    */\n    var EventClicking = /** @class */ (function (_super) {\n        __extends(EventClicking, _super);\n        function EventClicking(settings) {\n            var _this = _super.call(this, settings) || this;\n            _this.handleSegClick = function (ev, segEl) {\n                var component = _this.component;\n                var context = component.context;\n                var seg = getElSeg(segEl);\n                if (seg && // might be the <div> surrounding the more link\n                    component.isValidSegDownEl(ev.target)) {\n                    // our way to simulate a link click for elements that can't be <a> tags\n                    // grab before trigger fired in case trigger trashes DOM thru rerendering\n                    var hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n                    var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n                    context.emitter.trigger('eventClick', {\n                        el: segEl,\n                        event: new EventApi(component.context, seg.eventRange.def, seg.eventRange.instance),\n                        jsEvent: ev,\n                        view: context.viewApi,\n                    });\n                    if (url && !ev.defaultPrevented) {\n                        window.location.href = url;\n                    }\n                }\n            };\n            _this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n            _this.handleSegClick);\n            return _this;\n        }\n        return EventClicking;\n    }(Interaction));\n\n    /*\n    Triggers events and adds/removes core classNames when the user's pointer\n    enters/leaves event-elements of a component.\n    */\n    var EventHovering = /** @class */ (function (_super) {\n        __extends(EventHovering, _super);\n        function EventHovering(settings) {\n            var _this = _super.call(this, settings) || this;\n            // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n            _this.handleEventElRemove = function (el) {\n                if (el === _this.currentSegEl) {\n                    _this.handleSegLeave(null, _this.currentSegEl);\n                }\n            };\n            _this.handleSegEnter = function (ev, segEl) {\n                if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n                    _this.currentSegEl = segEl;\n                    _this.triggerEvent('eventMouseEnter', ev, segEl);\n                }\n            };\n            _this.handleSegLeave = function (ev, segEl) {\n                if (_this.currentSegEl) {\n                    _this.currentSegEl = null;\n                    _this.triggerEvent('eventMouseLeave', ev, segEl);\n                }\n            };\n            _this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n            _this.handleSegEnter, _this.handleSegLeave);\n            return _this;\n        }\n        EventHovering.prototype.destroy = function () {\n            this.removeHoverListeners();\n        };\n        EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n            var component = this.component;\n            var context = component.context;\n            var seg = getElSeg(segEl);\n            if (!ev || component.isValidSegDownEl(ev.target)) {\n                context.emitter.trigger(publicEvName, {\n                    el: segEl,\n                    event: new EventApi(context, seg.eventRange.def, seg.eventRange.instance),\n                    jsEvent: ev,\n                    view: context.viewApi,\n                });\n            }\n        };\n        return EventHovering;\n    }(Interaction));\n\n    var CalendarContent = /** @class */ (function (_super) {\n        __extends(CalendarContent, _super);\n        function CalendarContent() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.buildViewContext = memoize(buildViewContext);\n            _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n            _this.buildToolbarProps = memoize(buildToolbarProps);\n            _this.handleNavLinkClick = buildDelegationHandler('a[data-navlink]', _this._handleNavLinkClick.bind(_this));\n            _this.headerRef = createRef();\n            _this.footerRef = createRef();\n            _this.interactionsStore = {};\n            // Component Registration\n            // -----------------------------------------------------------------------------------------------------------------\n            _this.registerInteractiveComponent = function (component, settingsInput) {\n                var settings = parseInteractionSettings(component, settingsInput);\n                var DEFAULT_INTERACTIONS = [\n                    EventClicking,\n                    EventHovering,\n                ];\n                var interactionClasses = DEFAULT_INTERACTIONS.concat(_this.props.pluginHooks.componentInteractions);\n                var interactions = interactionClasses.map(function (TheInteractionClass) { return new TheInteractionClass(settings); });\n                _this.interactionsStore[component.uid] = interactions;\n                interactionSettingsStore[component.uid] = settings;\n            };\n            _this.unregisterInteractiveComponent = function (component) {\n                for (var _i = 0, _a = _this.interactionsStore[component.uid]; _i < _a.length; _i++) {\n                    var listener = _a[_i];\n                    listener.destroy();\n                }\n                delete _this.interactionsStore[component.uid];\n                delete interactionSettingsStore[component.uid];\n            };\n            // Resizing\n            // -----------------------------------------------------------------------------------------------------------------\n            _this.resizeRunner = new DelayedRunner(function () {\n                _this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n                _this.props.emitter.trigger('windowResize', { view: _this.props.viewApi });\n            });\n            _this.handleWindowResize = function (ev) {\n                var options = _this.props.options;\n                if (options.handleWindowResize &&\n                    ev.target === window // avoid jqui events\n                ) {\n                    _this.resizeRunner.request(options.windowResizeDelay);\n                }\n            };\n            return _this;\n        }\n        /*\n        renders INSIDE of an outer div\n        */\n        CalendarContent.prototype.render = function () {\n            var props = this.props;\n            var toolbarConfig = props.toolbarConfig, options = props.options;\n            var toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n            props.viewTitle);\n            var viewVGrow = false;\n            var viewHeight = '';\n            var viewAspectRatio;\n            if (props.isHeightAuto || props.forPrint) {\n                viewHeight = '';\n            }\n            else if (options.height != null) {\n                viewVGrow = true;\n            }\n            else if (options.contentHeight != null) {\n                viewHeight = options.contentHeight;\n            }\n            else {\n                viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n            }\n            var viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n            return (createElement(ViewContextType.Provider, { value: viewContext },\n                toolbarConfig.headerToolbar && (createElement(Toolbar, __assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.headerToolbar }, toolbarProps))),\n                createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, onClick: this.handleNavLinkClick },\n                    this.renderView(props),\n                    this.buildAppendContent()),\n                toolbarConfig.footerToolbar && (createElement(Toolbar, __assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footerToolbar }, toolbarProps)))));\n        };\n        CalendarContent.prototype.componentDidMount = function () {\n            var props = this.props;\n            this.calendarInteractions = props.pluginHooks.calendarInteractions\n                .map(function (CalendarInteractionClass) { return new CalendarInteractionClass(props); });\n            window.addEventListener('resize', this.handleWindowResize);\n            var propSetHandlers = props.pluginHooks.propSetHandlers;\n            for (var propName in propSetHandlers) {\n                propSetHandlers[propName](props[propName], props);\n            }\n        };\n        CalendarContent.prototype.componentDidUpdate = function (prevProps) {\n            var props = this.props;\n            var propSetHandlers = props.pluginHooks.propSetHandlers;\n            for (var propName in propSetHandlers) {\n                if (props[propName] !== prevProps[propName]) {\n                    propSetHandlers[propName](props[propName], props);\n                }\n            }\n        };\n        CalendarContent.prototype.componentWillUnmount = function () {\n            window.removeEventListener('resize', this.handleWindowResize);\n            this.resizeRunner.clear();\n            for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n                var interaction = _a[_i];\n                interaction.destroy();\n            }\n            this.props.emitter.trigger('_unmount');\n        };\n        CalendarContent.prototype._handleNavLinkClick = function (ev, anchorEl) {\n            var _a = this.props, dateEnv = _a.dateEnv, options = _a.options, calendarApi = _a.calendarApi;\n            var navLinkOptions = anchorEl.getAttribute('data-navlink');\n            navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {};\n            var dateMarker = dateEnv.createMarker(navLinkOptions.date);\n            var viewType = navLinkOptions.type;\n            var customAction = viewType === 'day' ? options.navLinkDayClick :\n                viewType === 'week' ? options.navLinkWeekClick : null;\n            if (typeof customAction === 'function') {\n                customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n            }\n            else {\n                if (typeof customAction === 'string') {\n                    viewType = customAction;\n                }\n                calendarApi.zoomTo(dateMarker, viewType);\n            }\n        };\n        CalendarContent.prototype.buildAppendContent = function () {\n            var props = this.props;\n            var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });\n            return createElement.apply(void 0, __spreadArrays([Fragment, {}], children));\n        };\n        CalendarContent.prototype.renderView = function (props) {\n            var pluginHooks = props.pluginHooks;\n            var viewSpec = props.viewSpec;\n            var viewProps = {\n                dateProfile: props.dateProfile,\n                businessHours: props.businessHours,\n                eventStore: props.renderableEventStore,\n                eventUiBases: props.eventUiBases,\n                dateSelection: props.dateSelection,\n                eventSelection: props.eventSelection,\n                eventDrag: props.eventDrag,\n                eventResize: props.eventResize,\n                isHeightAuto: props.isHeightAuto,\n                forPrint: props.forPrint,\n            };\n            var transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n            for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n                var transformer = transformers_1[_i];\n                __assign(viewProps, transformer.transform(viewProps, props));\n            }\n            var ViewComponent = viewSpec.component;\n            return (createElement(ViewComponent, __assign({}, viewProps)));\n        };\n        return CalendarContent;\n    }(PureComponent));\n    function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n        // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n        var todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n        var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n        var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n        return {\n            title: title,\n            activeButton: viewSpec.type,\n            isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n            isPrevEnabled: prevInfo.isValid,\n            isNextEnabled: nextInfo.isValid,\n        };\n    }\n    // Plugin\n    // -----------------------------------------------------------------------------------------------------------------\n    function buildViewPropTransformers(theClasses) {\n        return theClasses.map(function (TheClass) { return new TheClass(); });\n    }\n\n    var CalendarRoot = /** @class */ (function (_super) {\n        __extends(CalendarRoot, _super);\n        function CalendarRoot() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.state = {\n                forPrint: false,\n            };\n            _this.handleBeforePrint = function () {\n                _this.setState({ forPrint: true });\n            };\n            _this.handleAfterPrint = function () {\n                _this.setState({ forPrint: false });\n            };\n            return _this;\n        }\n        CalendarRoot.prototype.render = function () {\n            var props = this.props;\n            var options = props.options;\n            var forPrint = this.state.forPrint;\n            var isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n            var height = (!isHeightAuto && options.height != null) ? options.height : '';\n            var classNames = [\n                'fc',\n                forPrint ? 'fc-media-print' : 'fc-media-screen',\n                \"fc-direction-\" + options.direction,\n                props.theme.getClass('root'),\n            ];\n            if (!getCanVGrowWithinCell()) {\n                classNames.push('fc-liquid-hack');\n            }\n            return props.children(classNames, height, isHeightAuto, forPrint);\n        };\n        CalendarRoot.prototype.componentDidMount = function () {\n            var emitter = this.props.emitter;\n            emitter.on('_beforeprint', this.handleBeforePrint);\n            emitter.on('_afterprint', this.handleAfterPrint);\n        };\n        CalendarRoot.prototype.componentWillUnmount = function () {\n            var emitter = this.props.emitter;\n            emitter.off('_beforeprint', this.handleBeforePrint);\n            emitter.off('_afterprint', this.handleAfterPrint);\n        };\n        return CalendarRoot;\n    }(BaseComponent));\n\n    // Computes a default column header formatting string if `colFormat` is not explicitly defined\n    function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n        // if more than one week row, or if there are a lot of columns with not much space,\n        // put just the day numbers will be in each cell\n        if (!datesRepDistinctDays || dayCnt > 10) {\n            return createFormatter({ weekday: 'short' }); // \"Sat\"\n        }\n        if (dayCnt > 1) {\n            return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // \"Sat 11/12\"\n        }\n        return createFormatter({ weekday: 'long' }); // \"Saturday\"\n    }\n\n    var CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\n    function renderInner(hookProps) {\n        return hookProps.text;\n    }\n\n    var TableDateCell = /** @class */ (function (_super) {\n        __extends(TableDateCell, _super);\n        function TableDateCell() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TableDateCell.prototype.render = function () {\n            var _a = this.context, dateEnv = _a.dateEnv, options = _a.options, theme = _a.theme, viewApi = _a.viewApi;\n            var props = this.props;\n            var date = props.date, dateProfile = props.dateProfile;\n            var dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n            var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n            var text = dateEnv.format(date, props.dayHeaderFormat);\n            // if colCnt is 1, we are already in a day-view and don't need a navlink\n            var navLinkAttrs = (options.navLinks && !dayMeta.isDisabled && props.colCnt > 1)\n                ? { 'data-navlink': buildNavLinkData(date), tabIndex: 0 }\n                : {};\n            var hookProps = __assign(__assign(__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"th\", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-date\": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),\n                createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" }, !dayMeta.isDisabled && (createElement(\"a\", __assign({ ref: innerElRef, className: [\n                        'fc-col-header-cell-cushion',\n                        props.isSticky ? 'fc-sticky' : '',\n                    ].join(' ') }, navLinkAttrs), innerContent))))); }));\n        };\n        return TableDateCell;\n    }(BaseComponent));\n\n    var TableDowCell = /** @class */ (function (_super) {\n        __extends(TableDowCell, _super);\n        function TableDowCell() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TableDowCell.prototype.render = function () {\n            var props = this.props;\n            var _a = this.context, dateEnv = _a.dateEnv, theme = _a.theme, viewApi = _a.viewApi, options = _a.options;\n            var date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n            var dateMeta = {\n                dow: props.dow,\n                isDisabled: false,\n                isFuture: false,\n                isPast: false,\n                isToday: false,\n                isOther: false,\n            };\n            var classNames = [CLASS_NAME].concat(getDayClassNames(dateMeta, theme), props.extraClassNames || []);\n            var text = dateEnv.format(date, props.dayHeaderFormat);\n            var hookProps = __assign(__assign(__assign(__assign({ // TODO: make this public?\n                date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"th\", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),\n                createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n                    createElement(\"a\", { className: [\n                            'fc-col-header-cell-cushion',\n                            props.isSticky ? 'fc-sticky' : '',\n                        ].join(' '), ref: innerElRef }, innerContent)))); }));\n        };\n        return TableDowCell;\n    }(BaseComponent));\n\n    var NowTimer = /** @class */ (function (_super) {\n        __extends(NowTimer, _super);\n        function NowTimer(props, context) {\n            var _this = _super.call(this, props, context) || this;\n            _this.initialNowDate = getNow(context.options.now, context.dateEnv);\n            _this.initialNowQueriedMs = new Date().valueOf();\n            _this.state = _this.computeTiming().currentState;\n            return _this;\n        }\n        NowTimer.prototype.render = function () {\n            var _a = this, props = _a.props, state = _a.state;\n            return props.children(state.nowDate, state.todayRange);\n        };\n        NowTimer.prototype.componentDidMount = function () {\n            this.setTimeout();\n        };\n        NowTimer.prototype.componentDidUpdate = function (prevProps) {\n            if (prevProps.unit !== this.props.unit) {\n                this.clearTimeout();\n                this.setTimeout();\n            }\n        };\n        NowTimer.prototype.componentWillUnmount = function () {\n            this.clearTimeout();\n        };\n        NowTimer.prototype.computeTiming = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n            var currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n            var nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n            var waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();\n            // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n            // ensure no longer than a day\n            waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n            return {\n                currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },\n                nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },\n                waitMs: waitMs,\n            };\n        };\n        NowTimer.prototype.setTimeout = function () {\n            var _this = this;\n            var _a = this.computeTiming(), nextState = _a.nextState, waitMs = _a.waitMs;\n            this.timeoutId = setTimeout(function () {\n                _this.setState(nextState, function () {\n                    _this.setTimeout();\n                });\n            }, waitMs);\n        };\n        NowTimer.prototype.clearTimeout = function () {\n            if (this.timeoutId) {\n                clearTimeout(this.timeoutId);\n            }\n        };\n        NowTimer.contextType = ViewContextType;\n        return NowTimer;\n    }(Component));\n    function buildDayRange(date) {\n        var start = startOfDay(date);\n        var end = addDays(start, 1);\n        return { start: start, end: end };\n    }\n\n    var DayHeader = /** @class */ (function (_super) {\n        __extends(DayHeader, _super);\n        function DayHeader() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n            return _this;\n        }\n        DayHeader.prototype.render = function () {\n            var context = this.context;\n            var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;\n            var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n            return (createElement(NowTimer, { unit: \"day\" }, function (nowDate, todayRange) { return (createElement(\"tr\", null,\n                renderIntro && renderIntro('day'),\n                dates.map(function (date) { return (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))); }))); }));\n        };\n        return DayHeader;\n    }(BaseComponent));\n    function createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n        return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n    }\n\n    var DaySeriesModel = /** @class */ (function () {\n        function DaySeriesModel(range, dateProfileGenerator) {\n            var date = range.start;\n            var end = range.end;\n            var indices = [];\n            var dates = [];\n            var dayIndex = -1;\n            while (date < end) { // loop each day from start to end\n                if (dateProfileGenerator.isHiddenDay(date)) {\n                    indices.push(dayIndex + 0.5); // mark that it's between indices\n                }\n                else {\n                    dayIndex += 1;\n                    indices.push(dayIndex);\n                    dates.push(date);\n                }\n                date = addDays(date, 1);\n            }\n            this.dates = dates;\n            this.indices = indices;\n            this.cnt = dates.length;\n        }\n        DaySeriesModel.prototype.sliceRange = function (range) {\n            var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n            var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n            var clippedFirstIndex = Math.max(0, firstIndex);\n            var clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n            // deal with in-between indices\n            clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n            clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n            if (clippedFirstIndex <= clippedLastIndex) {\n                return {\n                    firstIndex: clippedFirstIndex,\n                    lastIndex: clippedLastIndex,\n                    isStart: firstIndex === clippedFirstIndex,\n                    isEnd: lastIndex === clippedLastIndex,\n                };\n            }\n            return null;\n        };\n        // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n        // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n        // If before the first offset, returns a negative number.\n        // If after the last offset, returns an offset past the last cell offset.\n        // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n        DaySeriesModel.prototype.getDateDayIndex = function (date) {\n            var indices = this.indices;\n            var dayOffset = Math.floor(diffDays(this.dates[0], date));\n            if (dayOffset < 0) {\n                return indices[0] - 1;\n            }\n            if (dayOffset >= indices.length) {\n                return indices[indices.length - 1] + 1;\n            }\n            return indices[dayOffset];\n        };\n        return DaySeriesModel;\n    }());\n\n    var DayTableModel = /** @class */ (function () {\n        function DayTableModel(daySeries, breakOnWeeks) {\n            var dates = daySeries.dates;\n            var daysPerRow;\n            var firstDay;\n            var rowCnt;\n            if (breakOnWeeks) {\n                // count columns until the day-of-week repeats\n                firstDay = dates[0].getUTCDay();\n                for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n                    if (dates[daysPerRow].getUTCDay() === firstDay) {\n                        break;\n                    }\n                }\n                rowCnt = Math.ceil(dates.length / daysPerRow);\n            }\n            else {\n                rowCnt = 1;\n                daysPerRow = dates.length;\n            }\n            this.rowCnt = rowCnt;\n            this.colCnt = daysPerRow;\n            this.daySeries = daySeries;\n            this.cells = this.buildCells();\n            this.headerDates = this.buildHeaderDates();\n        }\n        DayTableModel.prototype.buildCells = function () {\n            var rows = [];\n            for (var row = 0; row < this.rowCnt; row += 1) {\n                var cells = [];\n                for (var col = 0; col < this.colCnt; col += 1) {\n                    cells.push(this.buildCell(row, col));\n                }\n                rows.push(cells);\n            }\n            return rows;\n        };\n        DayTableModel.prototype.buildCell = function (row, col) {\n            var date = this.daySeries.dates[row * this.colCnt + col];\n            return {\n                key: date.toISOString(),\n                date: date,\n            };\n        };\n        DayTableModel.prototype.buildHeaderDates = function () {\n            var dates = [];\n            for (var col = 0; col < this.colCnt; col += 1) {\n                dates.push(this.cells[0][col].date);\n            }\n            return dates;\n        };\n        DayTableModel.prototype.sliceRange = function (range) {\n            var colCnt = this.colCnt;\n            var seriesSeg = this.daySeries.sliceRange(range);\n            var segs = [];\n            if (seriesSeg) {\n                var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex;\n                var index = firstIndex;\n                while (index <= lastIndex) {\n                    var row = Math.floor(index / colCnt);\n                    var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n                    segs.push({\n                        row: row,\n                        firstCol: index % colCnt,\n                        lastCol: (nextIndex - 1) % colCnt,\n                        isStart: seriesSeg.isStart && index === firstIndex,\n                        isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n                    });\n                    index = nextIndex;\n                }\n            }\n            return segs;\n        };\n        return DayTableModel;\n    }());\n\n    var Slicer = /** @class */ (function () {\n        function Slicer() {\n            this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n            this.sliceDateSelection = memoize(this._sliceDateSpan);\n            this.sliceEventStore = memoize(this._sliceEventStore);\n            this.sliceEventDrag = memoize(this._sliceInteraction);\n            this.sliceEventResize = memoize(this._sliceInteraction);\n            this.forceDayIfListItem = false; // hack\n        }\n        Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, context) {\n            var extraArgs = [];\n            for (var _i = 4; _i < arguments.length; _i++) {\n                extraArgs[_i - 4] = arguments[_i];\n            }\n            var eventUiBases = props.eventUiBases;\n            var eventSegs = this.sliceEventStore.apply(this, __spreadArrays([props.eventStore, eventUiBases, dateProfile, nextDayThreshold], extraArgs));\n            return {\n                dateSelectionSegs: this.sliceDateSelection.apply(this, __spreadArrays([props.dateSelection, eventUiBases, context], extraArgs)),\n                businessHourSegs: this.sliceBusinessHours.apply(this, __spreadArrays([props.businessHours, dateProfile, nextDayThreshold, context], extraArgs)),\n                fgEventSegs: eventSegs.fg,\n                bgEventSegs: eventSegs.bg,\n                eventDrag: this.sliceEventDrag.apply(this, __spreadArrays([props.eventDrag, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n                eventResize: this.sliceEventResize.apply(this, __spreadArrays([props.eventResize, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n                eventSelection: props.eventSelection,\n            }; // TODO: give interactionSegs?\n        };\n        Slicer.prototype.sliceNowDate = function (// does not memoize\n        date, context) {\n            var extraArgs = [];\n            for (var _i = 2; _i < arguments.length; _i++) {\n                extraArgs[_i - 2] = arguments[_i];\n            }\n            return this._sliceDateSpan.apply(this, __spreadArrays([{ range: { start: date, end: addMs(date, 1) }, allDay: false },\n                {},\n                context], extraArgs));\n        };\n        Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, context) {\n            var extraArgs = [];\n            for (var _i = 4; _i < arguments.length; _i++) {\n                extraArgs[_i - 4] = arguments[_i];\n            }\n            if (!businessHours) {\n                return [];\n            }\n            return this._sliceEventStore.apply(this, __spreadArrays([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context),\n                {},\n                dateProfile,\n                nextDayThreshold], extraArgs)).bg;\n        };\n        Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold) {\n            var extraArgs = [];\n            for (var _i = 4; _i < arguments.length; _i++) {\n                extraArgs[_i - 4] = arguments[_i];\n            }\n            if (eventStore) {\n                var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n                return {\n                    bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n                    fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n                };\n            }\n            return { bg: [], fg: [] };\n        };\n        Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold) {\n            var extraArgs = [];\n            for (var _i = 4; _i < arguments.length; _i++) {\n                extraArgs[_i - 4] = arguments[_i];\n            }\n            if (!interaction) {\n                return null;\n            }\n            var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n            return {\n                segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n                affectedInstances: interaction.affectedEvents.instances,\n                isEvent: interaction.isEvent,\n            };\n        };\n        Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, context) {\n            var extraArgs = [];\n            for (var _i = 3; _i < arguments.length; _i++) {\n                extraArgs[_i - 3] = arguments[_i];\n            }\n            if (!dateSpan) {\n                return [];\n            }\n            var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n            var segs = this.sliceRange.apply(this, __spreadArrays([dateSpan.range], extraArgs));\n            for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n                var seg = segs_1[_a];\n                seg.eventRange = eventRange;\n            }\n            return segs;\n        };\n        /*\n        \"complete\" seg means it has component and eventRange\n        */\n        Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {\n            var segs = [];\n            for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n                var eventRange = eventRanges_1[_i];\n                segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));\n            }\n            return segs;\n        };\n        /*\n        \"complete\" seg means it has component and eventRange\n        */\n        Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {\n            var dateRange = eventRange.range;\n            // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n            if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n                dateRange = {\n                    start: dateRange.start,\n                    end: addDays(dateRange.start, 1),\n                };\n            }\n            var segs = this.sliceRange.apply(this, __spreadArrays([dateRange], extraArgs));\n            for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n                var seg = segs_2[_i];\n                seg.eventRange = eventRange;\n                seg.isStart = eventRange.isStart && seg.isStart;\n                seg.isEnd = eventRange.isEnd && seg.isEnd;\n            }\n            return segs;\n        };\n        return Slicer;\n    }());\n    /*\n    for incorporating slotMinTime/slotMaxTime if appropriate\n    TODO: should be part of DateProfile!\n    TimelineDateProfile already does this btw\n    */\n    function computeActiveRange(dateProfile, isComponentAllDay) {\n        var range = dateProfile.activeRange;\n        if (isComponentAllDay) {\n            return range;\n        }\n        return {\n            start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n            end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5),\n        };\n    }\n\n    var VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\n    var Scroller = /** @class */ (function (_super) {\n        __extends(Scroller, _super);\n        function Scroller() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.handleEl = function (el) {\n                _this.el = el;\n                setRef(_this.props.elRef, el);\n            };\n            return _this;\n        }\n        Scroller.prototype.render = function () {\n            var props = this.props;\n            var liquid = props.liquid, liquidIsAbsolute = props.liquidIsAbsolute;\n            var isAbsolute = liquid && liquidIsAbsolute;\n            var className = ['fc-scroller'];\n            if (liquid) {\n                if (liquidIsAbsolute) {\n                    className.push('fc-scroller-liquid-absolute');\n                }\n                else {\n                    className.push('fc-scroller-liquid');\n                }\n            }\n            return (createElement(\"div\", { ref: this.handleEl, className: className.join(' '), style: {\n                    overflowX: props.overflowX,\n                    overflowY: props.overflowY,\n                    left: (isAbsolute && -(props.overcomeLeft || 0)) || '',\n                    right: (isAbsolute && -(props.overcomeRight || 0)) || '',\n                    bottom: (isAbsolute && -(props.overcomeBottom || 0)) || '',\n                    marginLeft: (!isAbsolute && -(props.overcomeLeft || 0)) || '',\n                    marginRight: (!isAbsolute && -(props.overcomeRight || 0)) || '',\n                    marginBottom: (!isAbsolute && -(props.overcomeBottom || 0)) || '',\n                    maxHeight: props.maxHeight || '',\n                } }, props.children));\n        };\n        Scroller.prototype.needsXScrolling = function () {\n            if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n                return false;\n            }\n            // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n            // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n            // inner-child margins and absolute positioning\n            var el = this.el;\n            var realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n            var children = el.children;\n            for (var i = 0; i < children.length; i += 1) {\n                var childEl = children[i];\n                if (childEl.getBoundingClientRect().width > realClientWidth) {\n                    return true;\n                }\n            }\n            return false;\n        };\n        Scroller.prototype.needsYScrolling = function () {\n            if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n                return false;\n            }\n            // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n            // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n            // inner-child margins and absolute positioning\n            var el = this.el;\n            var realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n            var children = el.children;\n            for (var i = 0; i < children.length; i += 1) {\n                var childEl = children[i];\n                if (childEl.getBoundingClientRect().height > realClientHeight) {\n                    return true;\n                }\n            }\n            return false;\n        };\n        Scroller.prototype.getXScrollbarWidth = function () {\n            if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n                return 0;\n            }\n            return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n        };\n        Scroller.prototype.getYScrollbarWidth = function () {\n            if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n                return 0;\n            }\n            return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n        };\n        return Scroller;\n    }(BaseComponent));\n\n    /*\n    TODO: somehow infer OtherArgs from masterCallback?\n    TODO: infer RefType from masterCallback if provided\n    */\n    var RefMap = /** @class */ (function () {\n        function RefMap(masterCallback) {\n            var _this = this;\n            this.masterCallback = masterCallback;\n            this.currentMap = {};\n            this.depths = {};\n            this.callbackMap = {};\n            this.handleValue = function (val, key) {\n                var _a = _this, depths = _a.depths, currentMap = _a.currentMap;\n                var removed = false;\n                var added = false;\n                if (val !== null) {\n                    // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n                    removed = (key in currentMap);\n                    currentMap[key] = val;\n                    depths[key] = (depths[key] || 0) + 1;\n                    added = true;\n                }\n                else {\n                    depths[key] -= 1;\n                    if (!depths[key]) {\n                        delete currentMap[key];\n                        delete _this.callbackMap[key];\n                        removed = true;\n                    }\n                }\n                if (_this.masterCallback) {\n                    if (removed) {\n                        _this.masterCallback(null, String(key));\n                    }\n                    if (added) {\n                        _this.masterCallback(val, String(key));\n                    }\n                }\n            };\n        }\n        RefMap.prototype.createRef = function (key) {\n            var _this = this;\n            var refCallback = this.callbackMap[key];\n            if (!refCallback) {\n                refCallback = this.callbackMap[key] = function (val) {\n                    _this.handleValue(val, String(key));\n                };\n            }\n            return refCallback;\n        };\n        // TODO: check callers that don't care about order. should use getAll instead\n        // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n        // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n        RefMap.prototype.collect = function (startIndex, endIndex, step) {\n            return collectFromHash(this.currentMap, startIndex, endIndex, step);\n        };\n        RefMap.prototype.getAll = function () {\n            return hashValuesToArray(this.currentMap);\n        };\n        return RefMap;\n    }());\n\n    function computeShrinkWidth(chunkEls) {\n        var shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n        var largestWidth = 0;\n        for (var _i = 0, shrinkCells_1 = shrinkCells; _i < shrinkCells_1.length; _i++) {\n            var shrinkCell = shrinkCells_1[_i];\n            largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n        }\n        return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits\n    }\n    function getSectionHasLiquidHeight(props, sectionConfig) {\n        return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n    }\n    function getAllowYScrolling(props, sectionConfig) {\n        return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n            getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n    }\n    // TODO: ONLY use `arg`. force out internal function to use same API\n    function renderChunkContent(sectionConfig, chunkConfig, arg) {\n        var expandRows = arg.expandRows;\n        var content = typeof chunkConfig.content === 'function' ?\n            chunkConfig.content(arg) :\n            createElement('table', {\n                className: [\n                    chunkConfig.tableClassName,\n                    sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n                ].join(' '),\n                style: {\n                    minWidth: arg.tableMinWidth,\n                    width: arg.clientWidth,\n                    height: expandRows ? arg.clientHeight : '',\n                },\n            }, arg.tableColGroupNode, createElement('tbody', {}, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));\n        return content;\n    }\n    function isColPropsEqual(cols0, cols1) {\n        return isArraysEqual(cols0, cols1, isPropsEqual);\n    }\n    function renderMicroColGroup(cols, shrinkWidth) {\n        var colNodes = [];\n        /*\n        for ColProps with spans, it would have been great to make a single <col span=\"\">\n        HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.\n        SOLUTION: making individual <col> elements makes Chrome behave.\n        */\n        for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\n            var colProps = cols_1[_i];\n            var span = colProps.span || 1;\n            for (var i = 0; i < span; i += 1) {\n                colNodes.push(createElement(\"col\", { style: {\n                        width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),\n                        minWidth: colProps.minWidth || '',\n                    } }));\n            }\n        }\n        return createElement.apply(void 0, __spreadArrays(['colgroup', {}], colNodes));\n    }\n    function sanitizeShrinkWidth(shrinkWidth) {\n        /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n        4 accounts for 2 2-pixel borders. TODO: better solution? */\n        return shrinkWidth == null ? 4 : shrinkWidth;\n    }\n    function hasShrinkWidth(cols) {\n        for (var _i = 0, cols_2 = cols; _i < cols_2.length; _i++) {\n            var col = cols_2[_i];\n            if (col.width === 'shrink') {\n                return true;\n            }\n        }\n        return false;\n    }\n    function getScrollGridClassNames(liquid, context) {\n        var classNames = [\n            'fc-scrollgrid',\n            context.theme.getClass('table'),\n        ];\n        if (liquid) {\n            classNames.push('fc-scrollgrid-liquid');\n        }\n        return classNames;\n    }\n    function getSectionClassNames(sectionConfig, wholeTableVGrow) {\n        var classNames = [\n            'fc-scrollgrid-section',\n            \"fc-scrollgrid-section-\" + sectionConfig.type,\n            sectionConfig.className,\n        ];\n        if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n            classNames.push('fc-scrollgrid-section-liquid');\n        }\n        if (sectionConfig.isSticky) {\n            classNames.push('fc-scrollgrid-section-sticky');\n        }\n        return classNames;\n    }\n    function renderScrollShim(arg) {\n        return (createElement(\"div\", { className: \"fc-scrollgrid-sticky-shim\", style: {\n                width: arg.clientWidth,\n                minWidth: arg.tableMinWidth,\n            } }));\n    }\n    function getStickyHeaderDates(options) {\n        var stickyHeaderDates = options.stickyHeaderDates;\n        if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n            stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n        }\n        return stickyHeaderDates;\n    }\n    function getStickyFooterScrollbar(options) {\n        var stickyFooterScrollbar = options.stickyFooterScrollbar;\n        if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n            stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n        }\n        return stickyFooterScrollbar;\n    }\n\n    var SimpleScrollGrid = /** @class */ (function (_super) {\n        __extends(SimpleScrollGrid, _super);\n        function SimpleScrollGrid() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.processCols = memoize(function (a) { return a; }, isColPropsEqual); // so we get same `cols` props every time\n            // yucky to memoize VNodes, but much more efficient for consumers\n            _this.renderMicroColGroup = memoize(renderMicroColGroup);\n            _this.scrollerRefs = new RefMap();\n            _this.scrollerElRefs = new RefMap(_this._handleScrollerEl.bind(_this));\n            _this.state = {\n                shrinkWidth: null,\n                forceYScrollbars: false,\n                scrollerClientWidths: {},\n                scrollerClientHeights: {},\n            };\n            // TODO: can do a really simple print-view. dont need to join rows\n            _this.handleSizing = function () {\n                _this.setState(__assign({ shrinkWidth: _this.computeShrinkWidth() }, _this.computeScrollerDims()));\n            };\n            return _this;\n        }\n        SimpleScrollGrid.prototype.render = function () {\n            var _a = this, props = _a.props, state = _a.state, context = _a.context;\n            var sectionConfigs = props.sections || [];\n            var cols = this.processCols(props.cols);\n            var microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n            var classNames = getScrollGridClassNames(props.liquid, context);\n            // TODO: make DRY\n            var configCnt = sectionConfigs.length;\n            var configI = 0;\n            var currentConfig;\n            var headSectionNodes = [];\n            var bodySectionNodes = [];\n            var footSectionNodes = [];\n            while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n                headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));\n                configI += 1;\n            }\n            while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n                bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode));\n                configI += 1;\n            }\n            while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n                footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));\n                configI += 1;\n            }\n            // firefox bug: when setting height on table and there is a thead or tfoot,\n            // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n            // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n            // if so, use a simpler dom structure, jam everything into a lone tbody.\n            var isBuggy = !getCanVGrowWithinCell();\n            return createElement('table', {\n                className: classNames.join(' '),\n                style: { height: props.height },\n            }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArrays(['thead', {}], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArrays(['tbody', {}], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArrays(['tfoot', {}], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArrays(['tbody', {}], headSectionNodes, bodySectionNodes, footSectionNodes)));\n        };\n        SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode) {\n            if ('outerContent' in sectionConfig) {\n                return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));\n            }\n            return (createElement(\"tr\", { key: sectionConfig.key, className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk)));\n        };\n        SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig) {\n            if ('outerContent' in chunkConfig) {\n                return chunkConfig.outerContent;\n            }\n            var props = this.props;\n            var _a = this.state, forceYScrollbars = _a.forceYScrollbars, scrollerClientWidths = _a.scrollerClientWidths, scrollerClientHeights = _a.scrollerClientHeights;\n            var needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n            var isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n            // for `!props.liquid` - is WHOLE scrollgrid natural height?\n            // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n            var overflowY = !props.liquid ? 'visible' :\n                forceYScrollbars ? 'scroll' :\n                    !needsYScrolling ? 'hidden' :\n                        'auto';\n            var sectionKey = sectionConfig.key;\n            var content = renderChunkContent(sectionConfig, chunkConfig, {\n                tableColGroupNode: microColGroupNode,\n                tableMinWidth: '',\n                clientWidth: scrollerClientWidths[sectionKey] !== undefined ? scrollerClientWidths[sectionKey] : null,\n                clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n                expandRows: sectionConfig.expandRows,\n                syncRowHeights: false,\n                rowSyncHeights: [],\n                reportRowHeightChange: function () { },\n            });\n            return (createElement(\"td\", { ref: chunkConfig.elRef },\n                createElement(\"div\", { className: \"fc-scroller-harness\" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },\n                    createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness\n                        : true }, content))));\n        };\n        SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {\n            var section = getSectionByKey(this.props.sections, key);\n            if (section) {\n                setRef(section.chunk.scrollerElRef, scrollerEl);\n            }\n        };\n        SimpleScrollGrid.prototype.componentDidMount = function () {\n            this.handleSizing();\n            this.context.addResizeHandler(this.handleSizing);\n        };\n        SimpleScrollGrid.prototype.componentDidUpdate = function () {\n            // TODO: need better solution when state contains non-sizing things\n            this.handleSizing();\n        };\n        SimpleScrollGrid.prototype.componentWillUnmount = function () {\n            this.context.removeResizeHandler(this.handleSizing);\n        };\n        SimpleScrollGrid.prototype.computeShrinkWidth = function () {\n            return hasShrinkWidth(this.props.cols)\n                ? computeShrinkWidth(this.scrollerElRefs.getAll())\n                : 0;\n        };\n        SimpleScrollGrid.prototype.computeScrollerDims = function () {\n            var scrollbarWidth = getScrollbarWidths();\n            var _a = this, scrollerRefs = _a.scrollerRefs, scrollerElRefs = _a.scrollerElRefs;\n            var forceYScrollbars = false;\n            var scrollerClientWidths = {};\n            var scrollerClientHeights = {};\n            for (var sectionKey in scrollerRefs.currentMap) {\n                var scroller = scrollerRefs.currentMap[sectionKey];\n                if (scroller && scroller.needsYScrolling()) {\n                    forceYScrollbars = true;\n                    break;\n                }\n            }\n            for (var _i = 0, _b = this.props.sections; _i < _b.length; _i++) {\n                var section = _b[_i];\n                var sectionKey = section.key;\n                var scrollerEl = scrollerElRefs.currentMap[sectionKey];\n                if (scrollerEl) {\n                    var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n                    scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars\n                        ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n                        : 0));\n                    scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n                }\n            }\n            return { forceYScrollbars: forceYScrollbars, scrollerClientWidths: scrollerClientWidths, scrollerClientHeights: scrollerClientHeights };\n        };\n        return SimpleScrollGrid;\n    }(BaseComponent));\n    SimpleScrollGrid.addStateEquality({\n        scrollerClientWidths: isPropsEqual,\n        scrollerClientHeights: isPropsEqual,\n    });\n    function getSectionByKey(sections, key) {\n        for (var _i = 0, sections_1 = sections; _i < sections_1.length; _i++) {\n            var section = sections_1[_i];\n            if (section.key === key) {\n                return section;\n            }\n        }\n        return null;\n    }\n\n    var EventRoot = /** @class */ (function (_super) {\n        __extends(EventRoot, _super);\n        function EventRoot() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.elRef = createRef();\n            return _this;\n        }\n        EventRoot.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var options = context.options;\n            var seg = props.seg;\n            var eventRange = seg.eventRange;\n            var ui = eventRange.ui;\n            var hookProps = {\n                event: new EventApi(context, eventRange.def, eventRange.instance),\n                view: context.viewApi,\n                timeText: props.timeText,\n                textColor: ui.textColor,\n                backgroundColor: ui.backgroundColor,\n                borderColor: ui.borderColor,\n                isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n                isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n                isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n                isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n                isStart: Boolean(seg.isStart),\n                isEnd: Boolean(seg.isEnd),\n                isPast: Boolean(props.isPast),\n                isFuture: Boolean(props.isFuture),\n                isToday: Boolean(props.isToday),\n                isSelected: Boolean(props.isSelected),\n                isDragging: Boolean(props.isDragging),\n                isResizing: Boolean(props.isResizing),\n            };\n            var standardClassNames = getEventClassNames(hookProps).concat(ui.classNames);\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.eventClassNames, content: options.eventContent, defaultContent: props.defaultContent, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount, elRef: this.elRef }, function (rootElRef, customClassNames, innerElRef, innerContent) { return props.children(rootElRef, standardClassNames.concat(customClassNames), innerElRef, innerContent, hookProps); }));\n        };\n        EventRoot.prototype.componentDidMount = function () {\n            setElSeg(this.elRef.current, this.props.seg);\n        };\n        /*\n        need to re-assign seg to the element if seg changes, even if the element is the same\n        */\n        EventRoot.prototype.componentDidUpdate = function (prevProps) {\n            var seg = this.props.seg;\n            if (seg !== prevProps.seg) {\n                setElSeg(this.elRef.current, seg);\n            }\n        };\n        return EventRoot;\n    }(BaseComponent));\n\n    // should not be a purecomponent\n    var StandardEvent = /** @class */ (function (_super) {\n        __extends(StandardEvent, _super);\n        function StandardEvent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        StandardEvent.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var seg = props.seg;\n            var timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat;\n            var timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n            return (createElement(EventRoot, { seg: seg, timeText: timeText, disableDragging: props.disableDragging, disableResizing: props.disableResizing, defaultContent: props.defaultContent || renderInnerContent, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"a\", __assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {\n                    borderColor: hookProps.borderColor,\n                    backgroundColor: hookProps.backgroundColor,\n                }, ref: rootElRef }, getSegAnchorAttrs(seg)),\n                createElement(\"div\", { className: \"fc-event-main\", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),\n                hookProps.isStartResizable &&\n                    createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-start\" }),\n                hookProps.isEndResizable &&\n                    createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-end\" }))); }));\n        };\n        return StandardEvent;\n    }(BaseComponent));\n    function renderInnerContent(innerProps) {\n        return (createElement(\"div\", { className: \"fc-event-main-frame\" },\n            innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n            createElement(\"div\", { className: \"fc-event-title-container\" },\n                createElement(\"div\", { className: \"fc-event-title fc-sticky\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\")))));\n    }\n    function getSegAnchorAttrs(seg) {\n        var url = seg.eventRange.def.url;\n        return url ? { href: url } : {};\n    }\n\n    var NowIndicatorRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {\n        var options = context.options;\n        var hookProps = {\n            isAxis: props.isAxis,\n            date: context.dateEnv.toDate(props.date),\n            view: context.viewApi,\n        };\n        return (createElement(RenderHook, { hookProps: hookProps, classNames: options.nowIndicatorClassNames, content: options.nowIndicatorContent, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount }, props.children));\n    })); };\n\n    var DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\n    var DayCellContent = /** @class */ (function (_super) {\n        __extends(DayCellContent, _super);\n        function DayCellContent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        DayCellContent.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var options = context.options;\n            var hookProps = refineDayCellHookProps({\n                date: props.date,\n                dateProfile: props.dateProfile,\n                todayRange: props.todayRange,\n                showDayNumber: props.showDayNumber,\n                extraProps: props.extraHookProps,\n                viewApi: context.viewApi,\n                dateEnv: context.dateEnv,\n            });\n            return (createElement(ContentHook, { hookProps: hookProps, content: options.dayCellContent, defaultContent: props.defaultContent }, props.children));\n        };\n        return DayCellContent;\n    }(BaseComponent));\n    function refineDayCellHookProps(raw) {\n        var date = raw.date, dateEnv = raw.dateEnv;\n        var dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);\n        return __assign(__assign(__assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : '' }), raw.extraProps);\n    }\n\n    var DayCellRoot = /** @class */ (function (_super) {\n        __extends(DayCellRoot, _super);\n        function DayCellRoot() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.refineHookProps = memoizeObjArg(refineDayCellHookProps);\n            _this.normalizeClassNames = buildClassNameNormalizer();\n            return _this;\n        }\n        DayCellRoot.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var options = context.options;\n            var hookProps = this.refineHookProps({\n                date: props.date,\n                dateProfile: props.dateProfile,\n                todayRange: props.todayRange,\n                showDayNumber: props.showDayNumber,\n                extraProps: props.extraHookProps,\n                viewApi: context.viewApi,\n                dateEnv: context.dateEnv,\n            });\n            var classNames = getDayClassNames(hookProps, context.theme).concat(hookProps.isDisabled\n                ? [] // don't use custom classNames if disabled\n                : this.normalizeClassNames(options.dayCellClassNames, hookProps));\n            var dataAttrs = hookProps.isDisabled ? {} : {\n                'data-date': formatDayString(props.date),\n            };\n            return (createElement(MountHook, { hookProps: hookProps, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount, elRef: props.elRef }, function (rootElRef) { return props.children(rootElRef, classNames, dataAttrs, hookProps.isDisabled); }));\n        };\n        return DayCellRoot;\n    }(BaseComponent));\n\n    function renderFill(fillType) {\n        return (createElement(\"div\", { className: \"fc-\" + fillType }));\n    }\n    var BgEvent = function (props) { return (createElement(EventRoot, { defaultContent: renderInnerContent$1, seg: props.seg /* uselesss i think */, timeText: \"\", disableDragging: true, disableResizing: true, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-bg-event'].concat(classNames).join(' '), style: {\n            backgroundColor: hookProps.backgroundColor,\n        } }, innerContent)); })); };\n    function renderInnerContent$1(props) {\n        var title = props.event.title;\n        return title && (createElement(\"div\", { className: \"fc-event-title\" }, props.event.title));\n    }\n\n    var WeekNumberRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {\n        var dateEnv = context.dateEnv, options = context.options;\n        var date = props.date;\n        var format = options.weekNumberFormat || props.defaultFormat;\n        var num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n        var text = dateEnv.format(date, format);\n        var hookProps = { num: num, text: text, date: date };\n        return (createElement(RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner$1, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount }, props.children));\n    })); };\n    function renderInner$1(innerProps) {\n        return innerProps.text;\n    }\n\n    // exports\n    // --------------------------------------------------------------------------------------------------\n    var version = '5.5.1'; // important to type it, so .d.ts has generic string\n\n    var Calendar = /** @class */ (function (_super) {\n        __extends(Calendar, _super);\n        function Calendar(el, optionOverrides) {\n            if (optionOverrides === void 0) { optionOverrides = {}; }\n            var _this = _super.call(this) || this;\n            _this.isRendering = false;\n            _this.isRendered = false;\n            _this.currentClassNames = [];\n            _this.customContentRenderId = 0; // will affect custom generated classNames?\n            _this.handleAction = function (action) {\n                // actions we know we want to render immediately\n                switch (action.type) {\n                    case 'SET_EVENT_DRAG':\n                    case 'SET_EVENT_RESIZE':\n                        _this.renderRunner.tryDrain();\n                }\n            };\n            _this.handleData = function (data) {\n                _this.currentData = data;\n                _this.renderRunner.request(data.calendarOptions.rerenderDelay);\n            };\n            _this.handleRenderRequest = function () {\n                if (_this.isRendering) {\n                    _this.isRendered = true;\n                    var currentData_1 = _this.currentData;\n                    render(createElement(CalendarRoot, { options: currentData_1.calendarOptions, theme: currentData_1.theme, emitter: currentData_1.emitter }, function (classNames, height, isHeightAuto, forPrint) {\n                        _this.setClassNames(classNames);\n                        _this.setHeight(height);\n                        return (createElement(CustomContentRenderContext.Provider, { value: _this.customContentRenderId },\n                            createElement(CalendarContent, __assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData_1))));\n                    }), _this.el);\n                }\n                else if (_this.isRendered) {\n                    _this.isRendered = false;\n                    unmountComponentAtNode$1(_this.el);\n                    _this.setClassNames([]);\n                    _this.setHeight('');\n                }\n                flushToDom$1();\n            };\n            _this.el = el;\n            _this.renderRunner = new DelayedRunner(_this.handleRenderRequest);\n            new CalendarDataManager({\n                optionOverrides: optionOverrides,\n                calendarApi: _this,\n                onAction: _this.handleAction,\n                onData: _this.handleData,\n            });\n            return _this;\n        }\n        Object.defineProperty(Calendar.prototype, \"view\", {\n            get: function () { return this.currentData.viewApi; } // for public API\n            ,\n            enumerable: false,\n            configurable: true\n        });\n        Calendar.prototype.render = function () {\n            var wasRendering = this.isRendering;\n            if (!wasRendering) {\n                this.isRendering = true;\n            }\n            else {\n                this.customContentRenderId += 1;\n            }\n            this.renderRunner.request();\n            if (wasRendering) {\n                this.updateSize();\n            }\n        };\n        Calendar.prototype.destroy = function () {\n            if (this.isRendering) {\n                this.isRendering = false;\n                this.renderRunner.request();\n            }\n        };\n        Calendar.prototype.updateSize = function () {\n            _super.prototype.updateSize.call(this);\n            flushToDom$1();\n        };\n        Calendar.prototype.batchRendering = function (func) {\n            this.renderRunner.pause('batchRendering');\n            func();\n            this.renderRunner.resume('batchRendering');\n        };\n        Calendar.prototype.pauseRendering = function () {\n            this.renderRunner.pause('pauseRendering');\n        };\n        Calendar.prototype.resumeRendering = function () {\n            this.renderRunner.resume('pauseRendering', true);\n        };\n        Calendar.prototype.resetOptions = function (optionOverrides, append) {\n            this.currentDataManager.resetOptions(optionOverrides, append);\n        };\n        Calendar.prototype.setClassNames = function (classNames) {\n            if (!isArraysEqual(classNames, this.currentClassNames)) {\n                var classList = this.el.classList;\n                for (var _i = 0, _a = this.currentClassNames; _i < _a.length; _i++) {\n                    var className = _a[_i];\n                    classList.remove(className);\n                }\n                for (var _b = 0, classNames_1 = classNames; _b < classNames_1.length; _b++) {\n                    var className = classNames_1[_b];\n                    classList.add(className);\n                }\n                this.currentClassNames = classNames;\n            }\n        };\n        Calendar.prototype.setHeight = function (height) {\n            applyStyleProp(this.el, 'height', height);\n        };\n        return Calendar;\n    }(CalendarApi));\n\n    config.touchMouseIgnoreWait = 500;\n    var ignoreMouseDepth = 0;\n    var listenerCnt = 0;\n    var isWindowTouchMoveCancelled = false;\n    /*\n    Uses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\n    Tracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\n    Also, tracks if there was touch-scrolling.\n    Also, can prevent touch-scrolling from happening.\n    Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\n    emits:\n    - pointerdown\n    - pointermove\n    - pointerup\n    */\n    var PointerDragging = /** @class */ (function () {\n        function PointerDragging(containerEl) {\n            var _this = this;\n            this.subjectEl = null;\n            // options that can be directly assigned by caller\n            this.selector = ''; // will cause subjectEl in all emitted events to be this element\n            this.handleSelector = '';\n            this.shouldIgnoreMove = false;\n            this.shouldWatchScroll = true; // for simulating pointermove on scroll\n            // internal states\n            this.isDragging = false;\n            this.isTouchDragging = false;\n            this.wasTouchScroll = false;\n            // Mouse\n            // ----------------------------------------------------------------------------------------------------\n            this.handleMouseDown = function (ev) {\n                if (!_this.shouldIgnoreMouse() &&\n                    isPrimaryMouseButton(ev) &&\n                    _this.tryStart(ev)) {\n                    var pev = _this.createEventFromMouse(ev, true);\n                    _this.emitter.trigger('pointerdown', pev);\n                    _this.initScrollWatch(pev);\n                    if (!_this.shouldIgnoreMove) {\n                        document.addEventListener('mousemove', _this.handleMouseMove);\n                    }\n                    document.addEventListener('mouseup', _this.handleMouseUp);\n                }\n            };\n            this.handleMouseMove = function (ev) {\n                var pev = _this.createEventFromMouse(ev);\n                _this.recordCoords(pev);\n                _this.emitter.trigger('pointermove', pev);\n            };\n            this.handleMouseUp = function (ev) {\n                document.removeEventListener('mousemove', _this.handleMouseMove);\n                document.removeEventListener('mouseup', _this.handleMouseUp);\n                _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev));\n                _this.cleanup(); // call last so that pointerup has access to props\n            };\n            // Touch\n            // ----------------------------------------------------------------------------------------------------\n            this.handleTouchStart = function (ev) {\n                if (_this.tryStart(ev)) {\n                    _this.isTouchDragging = true;\n                    var pev = _this.createEventFromTouch(ev, true);\n                    _this.emitter.trigger('pointerdown', pev);\n                    _this.initScrollWatch(pev);\n                    // unlike mouse, need to attach to target, not document\n                    // https://stackoverflow.com/a/45760014\n                    var targetEl = ev.target;\n                    if (!_this.shouldIgnoreMove) {\n                        targetEl.addEventListener('touchmove', _this.handleTouchMove);\n                    }\n                    targetEl.addEventListener('touchend', _this.handleTouchEnd);\n                    targetEl.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end\n                    // attach a handler to get called when ANY scroll action happens on the page.\n                    // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n                    // http://stackoverflow.com/a/32954565/96342\n                    window.addEventListener('scroll', _this.handleTouchScroll, true);\n                }\n            };\n            this.handleTouchMove = function (ev) {\n                var pev = _this.createEventFromTouch(ev);\n                _this.recordCoords(pev);\n                _this.emitter.trigger('pointermove', pev);\n            };\n            this.handleTouchEnd = function (ev) {\n                if (_this.isDragging) { // done to guard against touchend followed by touchcancel\n                    var targetEl = ev.target;\n                    targetEl.removeEventListener('touchmove', _this.handleTouchMove);\n                    targetEl.removeEventListener('touchend', _this.handleTouchEnd);\n                    targetEl.removeEventListener('touchcancel', _this.handleTouchEnd);\n                    window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true\n                    _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev));\n                    _this.cleanup(); // call last so that pointerup has access to props\n                    _this.isTouchDragging = false;\n                    startIgnoringMouse();\n                }\n            };\n            this.handleTouchScroll = function () {\n                _this.wasTouchScroll = true;\n            };\n            this.handleScroll = function (ev) {\n                if (!_this.shouldIgnoreMove) {\n                    var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX;\n                    var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY;\n                    _this.emitter.trigger('pointermove', {\n                        origEvent: ev,\n                        isTouch: _this.isTouchDragging,\n                        subjectEl: _this.subjectEl,\n                        pageX: pageX,\n                        pageY: pageY,\n                        deltaX: pageX - _this.origPageX,\n                        deltaY: pageY - _this.origPageY,\n                    });\n                }\n            };\n            this.containerEl = containerEl;\n            this.emitter = new Emitter();\n            containerEl.addEventListener('mousedown', this.handleMouseDown);\n            containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n            listenerCreated();\n        }\n        PointerDragging.prototype.destroy = function () {\n            this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n            this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n            listenerDestroyed();\n        };\n        PointerDragging.prototype.tryStart = function (ev) {\n            var subjectEl = this.querySubjectEl(ev);\n            var downEl = ev.target;\n            if (subjectEl &&\n                (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n                this.subjectEl = subjectEl;\n                this.isDragging = true; // do this first so cancelTouchScroll will work\n                this.wasTouchScroll = false;\n                return true;\n            }\n            return false;\n        };\n        PointerDragging.prototype.cleanup = function () {\n            isWindowTouchMoveCancelled = false;\n            this.isDragging = false;\n            this.subjectEl = null;\n            // keep wasTouchScroll around for later access\n            this.destroyScrollWatch();\n        };\n        PointerDragging.prototype.querySubjectEl = function (ev) {\n            if (this.selector) {\n                return elementClosest(ev.target, this.selector);\n            }\n            return this.containerEl;\n        };\n        PointerDragging.prototype.shouldIgnoreMouse = function () {\n            return ignoreMouseDepth || this.isTouchDragging;\n        };\n        // can be called by user of this class, to cancel touch-based scrolling for the current drag\n        PointerDragging.prototype.cancelTouchScroll = function () {\n            if (this.isDragging) {\n                isWindowTouchMoveCancelled = true;\n            }\n        };\n        // Scrolling that simulates pointermoves\n        // ----------------------------------------------------------------------------------------------------\n        PointerDragging.prototype.initScrollWatch = function (ev) {\n            if (this.shouldWatchScroll) {\n                this.recordCoords(ev);\n                window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n            }\n        };\n        PointerDragging.prototype.recordCoords = function (ev) {\n            if (this.shouldWatchScroll) {\n                this.prevPageX = ev.pageX;\n                this.prevPageY = ev.pageY;\n                this.prevScrollX = window.pageXOffset;\n                this.prevScrollY = window.pageYOffset;\n            }\n        };\n        PointerDragging.prototype.destroyScrollWatch = function () {\n            if (this.shouldWatchScroll) {\n                window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n            }\n        };\n        // Event Normalization\n        // ----------------------------------------------------------------------------------------------------\n        PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) {\n            var deltaX = 0;\n            var deltaY = 0;\n            // TODO: repeat code\n            if (isFirst) {\n                this.origPageX = ev.pageX;\n                this.origPageY = ev.pageY;\n            }\n            else {\n                deltaX = ev.pageX - this.origPageX;\n                deltaY = ev.pageY - this.origPageY;\n            }\n            return {\n                origEvent: ev,\n                isTouch: false,\n                subjectEl: this.subjectEl,\n                pageX: ev.pageX,\n                pageY: ev.pageY,\n                deltaX: deltaX,\n                deltaY: deltaY,\n            };\n        };\n        PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) {\n            var touches = ev.touches;\n            var pageX;\n            var pageY;\n            var deltaX = 0;\n            var deltaY = 0;\n            // if touch coords available, prefer,\n            // because FF would give bad ev.pageX ev.pageY\n            if (touches && touches.length) {\n                pageX = touches[0].pageX;\n                pageY = touches[0].pageY;\n            }\n            else {\n                pageX = ev.pageX;\n                pageY = ev.pageY;\n            }\n            // TODO: repeat code\n            if (isFirst) {\n                this.origPageX = pageX;\n                this.origPageY = pageY;\n            }\n            else {\n                deltaX = pageX - this.origPageX;\n                deltaY = pageY - this.origPageY;\n            }\n            return {\n                origEvent: ev,\n                isTouch: true,\n                subjectEl: this.subjectEl,\n                pageX: pageX,\n                pageY: pageY,\n                deltaX: deltaX,\n                deltaY: deltaY,\n            };\n        };\n        return PointerDragging;\n    }());\n    // Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\n    function isPrimaryMouseButton(ev) {\n        return ev.button === 0 && !ev.ctrlKey;\n    }\n    // Ignoring fake mouse events generated by touch\n    // ----------------------------------------------------------------------------------------------------\n    function startIgnoringMouse() {\n        ignoreMouseDepth += 1;\n        setTimeout(function () {\n            ignoreMouseDepth -= 1;\n        }, config.touchMouseIgnoreWait);\n    }\n    // We want to attach touchmove as early as possible for Safari\n    // ----------------------------------------------------------------------------------------------------\n    function listenerCreated() {\n        listenerCnt += 1;\n        if (listenerCnt === 1) {\n            window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n        }\n    }\n    function listenerDestroyed() {\n        listenerCnt -= 1;\n        if (!listenerCnt) {\n            window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });\n        }\n    }\n    function onWindowTouchMove(ev) {\n        if (isWindowTouchMoveCancelled) {\n            ev.preventDefault();\n        }\n    }\n\n    /*\n    An effect in which an element follows the movement of a pointer across the screen.\n    The moving element is a clone of some other element.\n    Must call start + handleMove + stop.\n    */\n    var ElementMirror = /** @class */ (function () {\n        function ElementMirror() {\n            this.isVisible = false; // must be explicitly enabled\n            this.sourceEl = null;\n            this.mirrorEl = null;\n            this.sourceElRect = null; // screen coords relative to viewport\n            // options that can be set directly by caller\n            this.parentNode = document.body;\n            this.zIndex = 9999;\n            this.revertDuration = 0;\n        }\n        ElementMirror.prototype.start = function (sourceEl, pageX, pageY) {\n            this.sourceEl = sourceEl;\n            this.sourceElRect = this.sourceEl.getBoundingClientRect();\n            this.origScreenX = pageX - window.pageXOffset;\n            this.origScreenY = pageY - window.pageYOffset;\n            this.deltaX = 0;\n            this.deltaY = 0;\n            this.updateElPosition();\n        };\n        ElementMirror.prototype.handleMove = function (pageX, pageY) {\n            this.deltaX = (pageX - window.pageXOffset) - this.origScreenX;\n            this.deltaY = (pageY - window.pageYOffset) - this.origScreenY;\n            this.updateElPosition();\n        };\n        // can be called before start\n        ElementMirror.prototype.setIsVisible = function (bool) {\n            if (bool) {\n                if (!this.isVisible) {\n                    if (this.mirrorEl) {\n                        this.mirrorEl.style.display = '';\n                    }\n                    this.isVisible = bool; // needs to happen before updateElPosition\n                    this.updateElPosition(); // because was not updating the position while invisible\n                }\n            }\n            else if (this.isVisible) {\n                if (this.mirrorEl) {\n                    this.mirrorEl.style.display = 'none';\n                }\n                this.isVisible = bool;\n            }\n        };\n        // always async\n        ElementMirror.prototype.stop = function (needsRevertAnimation, callback) {\n            var _this = this;\n            var done = function () {\n                _this.cleanup();\n                callback();\n            };\n            if (needsRevertAnimation &&\n                this.mirrorEl &&\n                this.isVisible &&\n                this.revertDuration && // if 0, transition won't work\n                (this.deltaX || this.deltaY) // if same coords, transition won't work\n            ) {\n                this.doRevertAnimation(done, this.revertDuration);\n            }\n            else {\n                setTimeout(done, 0);\n            }\n        };\n        ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) {\n            var mirrorEl = this.mirrorEl;\n            var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n            mirrorEl.style.transition =\n                'top ' + revertDuration + 'ms,' +\n                    'left ' + revertDuration + 'ms';\n            applyStyle(mirrorEl, {\n                left: finalSourceElRect.left,\n                top: finalSourceElRect.top,\n            });\n            whenTransitionDone(mirrorEl, function () {\n                mirrorEl.style.transition = '';\n                callback();\n            });\n        };\n        ElementMirror.prototype.cleanup = function () {\n            if (this.mirrorEl) {\n                removeElement(this.mirrorEl);\n                this.mirrorEl = null;\n            }\n            this.sourceEl = null;\n        };\n        ElementMirror.prototype.updateElPosition = function () {\n            if (this.sourceEl && this.isVisible) {\n                applyStyle(this.getMirrorEl(), {\n                    left: this.sourceElRect.left + this.deltaX,\n                    top: this.sourceElRect.top + this.deltaY,\n                });\n            }\n        };\n        ElementMirror.prototype.getMirrorEl = function () {\n            var sourceElRect = this.sourceElRect;\n            var mirrorEl = this.mirrorEl;\n            if (!mirrorEl) {\n                mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n                // we don't want long taps or any mouse interaction causing selection/menus.\n                // would use preventSelection(), but that prevents selectstart, causing problems.\n                mirrorEl.classList.add('fc-unselectable');\n                mirrorEl.classList.add('fc-event-dragging');\n                applyStyle(mirrorEl, {\n                    position: 'fixed',\n                    zIndex: this.zIndex,\n                    visibility: '',\n                    boxSizing: 'border-box',\n                    width: sourceElRect.right - sourceElRect.left,\n                    height: sourceElRect.bottom - sourceElRect.top,\n                    right: 'auto',\n                    bottom: 'auto',\n                    margin: 0,\n                });\n                this.parentNode.appendChild(mirrorEl);\n            }\n            return mirrorEl;\n        };\n        return ElementMirror;\n    }());\n\n    /*\n    Is a cache for a given element's scroll information (all the info that ScrollController stores)\n    in addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\n    The cache can be in one of two modes:\n    - doesListening:false - ignores when the container is scrolled by someone else\n    - doesListening:true - watch for scrolling and update the cache\n    */\n    var ScrollGeomCache = /** @class */ (function (_super) {\n        __extends(ScrollGeomCache, _super);\n        function ScrollGeomCache(scrollController, doesListening) {\n            var _this = _super.call(this) || this;\n            _this.handleScroll = function () {\n                _this.scrollTop = _this.scrollController.getScrollTop();\n                _this.scrollLeft = _this.scrollController.getScrollLeft();\n                _this.handleScrollChange();\n            };\n            _this.scrollController = scrollController;\n            _this.doesListening = doesListening;\n            _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop();\n            _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft();\n            _this.scrollWidth = scrollController.getScrollWidth();\n            _this.scrollHeight = scrollController.getScrollHeight();\n            _this.clientWidth = scrollController.getClientWidth();\n            _this.clientHeight = scrollController.getClientHeight();\n            _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values\n            if (_this.doesListening) {\n                _this.getEventTarget().addEventListener('scroll', _this.handleScroll);\n            }\n            return _this;\n        }\n        ScrollGeomCache.prototype.destroy = function () {\n            if (this.doesListening) {\n                this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n            }\n        };\n        ScrollGeomCache.prototype.getScrollTop = function () {\n            return this.scrollTop;\n        };\n        ScrollGeomCache.prototype.getScrollLeft = function () {\n            return this.scrollLeft;\n        };\n        ScrollGeomCache.prototype.setScrollTop = function (top) {\n            this.scrollController.setScrollTop(top);\n            if (!this.doesListening) {\n                // we are not relying on the element to normalize out-of-bounds scroll values\n                // so we need to sanitize ourselves\n                this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n                this.handleScrollChange();\n            }\n        };\n        ScrollGeomCache.prototype.setScrollLeft = function (top) {\n            this.scrollController.setScrollLeft(top);\n            if (!this.doesListening) {\n                // we are not relying on the element to normalize out-of-bounds scroll values\n                // so we need to sanitize ourselves\n                this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n                this.handleScrollChange();\n            }\n        };\n        ScrollGeomCache.prototype.getClientWidth = function () {\n            return this.clientWidth;\n        };\n        ScrollGeomCache.prototype.getClientHeight = function () {\n            return this.clientHeight;\n        };\n        ScrollGeomCache.prototype.getScrollWidth = function () {\n            return this.scrollWidth;\n        };\n        ScrollGeomCache.prototype.getScrollHeight = function () {\n            return this.scrollHeight;\n        };\n        ScrollGeomCache.prototype.handleScrollChange = function () {\n        };\n        return ScrollGeomCache;\n    }(ScrollController));\n\n    var ElementScrollGeomCache = /** @class */ (function (_super) {\n        __extends(ElementScrollGeomCache, _super);\n        function ElementScrollGeomCache(el, doesListening) {\n            return _super.call(this, new ElementScrollController(el), doesListening) || this;\n        }\n        ElementScrollGeomCache.prototype.getEventTarget = function () {\n            return this.scrollController.el;\n        };\n        ElementScrollGeomCache.prototype.computeClientRect = function () {\n            return computeInnerRect(this.scrollController.el);\n        };\n        return ElementScrollGeomCache;\n    }(ScrollGeomCache));\n\n    var WindowScrollGeomCache = /** @class */ (function (_super) {\n        __extends(WindowScrollGeomCache, _super);\n        function WindowScrollGeomCache(doesListening) {\n            return _super.call(this, new WindowScrollController(), doesListening) || this;\n        }\n        WindowScrollGeomCache.prototype.getEventTarget = function () {\n            return window;\n        };\n        WindowScrollGeomCache.prototype.computeClientRect = function () {\n            return {\n                left: this.scrollLeft,\n                right: this.scrollLeft + this.clientWidth,\n                top: this.scrollTop,\n                bottom: this.scrollTop + this.clientHeight,\n            };\n        };\n        // the window is the only scroll object that changes it's rectangle relative\n        // to the document's topleft as it scrolls\n        WindowScrollGeomCache.prototype.handleScrollChange = function () {\n            this.clientRect = this.computeClientRect();\n        };\n        return WindowScrollGeomCache;\n    }(ScrollGeomCache));\n\n    // If available we are using native \"performance\" API instead of \"Date\"\n    // Read more about it on MDN:\n    // https://developer.mozilla.org/en-US/docs/Web/API/Performance\n    var getTime = typeof performance === 'function' ? performance.now : Date.now;\n    /*\n    For a pointer interaction, automatically scrolls certain scroll containers when the pointer\n    approaches the edge.\n\n    The caller must call start + handleMove + stop.\n    */\n    var AutoScroller = /** @class */ (function () {\n        function AutoScroller() {\n            var _this = this;\n            // options that can be set by caller\n            this.isEnabled = true;\n            this.scrollQuery = [window, '.fc-scroller'];\n            this.edgeThreshold = 50; // pixels\n            this.maxVelocity = 300; // pixels per second\n            // internal state\n            this.pointerScreenX = null;\n            this.pointerScreenY = null;\n            this.isAnimating = false;\n            this.scrollCaches = null;\n            // protect against the initial pointerdown being too close to an edge and starting the scroll\n            this.everMovedUp = false;\n            this.everMovedDown = false;\n            this.everMovedLeft = false;\n            this.everMovedRight = false;\n            this.animate = function () {\n                if (_this.isAnimating) { // wasn't cancelled between animation calls\n                    var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset);\n                    if (edge) {\n                        var now = getTime();\n                        _this.handleSide(edge, (now - _this.msSinceRequest) / 1000);\n                        _this.requestAnimation(now);\n                    }\n                    else {\n                        _this.isAnimating = false; // will stop animation\n                    }\n                }\n            };\n        }\n        AutoScroller.prototype.start = function (pageX, pageY) {\n            if (this.isEnabled) {\n                this.scrollCaches = this.buildCaches();\n                this.pointerScreenX = null;\n                this.pointerScreenY = null;\n                this.everMovedUp = false;\n                this.everMovedDown = false;\n                this.everMovedLeft = false;\n                this.everMovedRight = false;\n                this.handleMove(pageX, pageY);\n            }\n        };\n        AutoScroller.prototype.handleMove = function (pageX, pageY) {\n            if (this.isEnabled) {\n                var pointerScreenX = pageX - window.pageXOffset;\n                var pointerScreenY = pageY - window.pageYOffset;\n                var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n                var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n                if (yDelta < 0) {\n                    this.everMovedUp = true;\n                }\n                else if (yDelta > 0) {\n                    this.everMovedDown = true;\n                }\n                if (xDelta < 0) {\n                    this.everMovedLeft = true;\n                }\n                else if (xDelta > 0) {\n                    this.everMovedRight = true;\n                }\n                this.pointerScreenX = pointerScreenX;\n                this.pointerScreenY = pointerScreenY;\n                if (!this.isAnimating) {\n                    this.isAnimating = true;\n                    this.requestAnimation(getTime());\n                }\n            }\n        };\n        AutoScroller.prototype.stop = function () {\n            if (this.isEnabled) {\n                this.isAnimating = false; // will stop animation\n                for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                    var scrollCache = _a[_i];\n                    scrollCache.destroy();\n                }\n                this.scrollCaches = null;\n            }\n        };\n        AutoScroller.prototype.requestAnimation = function (now) {\n            this.msSinceRequest = now;\n            requestAnimationFrame(this.animate);\n        };\n        AutoScroller.prototype.handleSide = function (edge, seconds) {\n            var scrollCache = edge.scrollCache;\n            var edgeThreshold = this.edgeThreshold;\n            var invDistance = edgeThreshold - edge.distance;\n            var velocity = // the closer to the edge, the faster we scroll\n             ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic\n                this.maxVelocity * seconds;\n            var sign = 1;\n            switch (edge.name) {\n                case 'left':\n                    sign = -1;\n                // falls through\n                case 'right':\n                    scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n                    break;\n                case 'top':\n                    sign = -1;\n                // falls through\n                case 'bottom':\n                    scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n                    break;\n            }\n        };\n        // left/top are relative to document topleft\n        AutoScroller.prototype.computeBestEdge = function (left, top) {\n            var edgeThreshold = this.edgeThreshold;\n            var bestSide = null;\n            for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                var scrollCache = _a[_i];\n                var rect = scrollCache.clientRect;\n                var leftDist = left - rect.left;\n                var rightDist = rect.right - left;\n                var topDist = top - rect.top;\n                var bottomDist = rect.bottom - top;\n                // completely within the rect?\n                if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n                    if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n                        (!bestSide || bestSide.distance > topDist)) {\n                        bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist };\n                    }\n                    if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n                        (!bestSide || bestSide.distance > bottomDist)) {\n                        bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist };\n                    }\n                    if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n                        (!bestSide || bestSide.distance > leftDist)) {\n                        bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist };\n                    }\n                    if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n                        (!bestSide || bestSide.distance > rightDist)) {\n                        bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist };\n                    }\n                }\n            }\n            return bestSide;\n        };\n        AutoScroller.prototype.buildCaches = function () {\n            return this.queryScrollEls().map(function (el) {\n                if (el === window) {\n                    return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n                }\n                return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n            });\n        };\n        AutoScroller.prototype.queryScrollEls = function () {\n            var els = [];\n            for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) {\n                var query = _a[_i];\n                if (typeof query === 'object') {\n                    els.push(query);\n                }\n                else {\n                    els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query)));\n                }\n            }\n            return els;\n        };\n        return AutoScroller;\n    }());\n\n    /*\n    Monitors dragging on an element. Has a number of high-level features:\n    - minimum distance required before dragging\n    - minimum wait time (\"delay\") before dragging\n    - a mirror element that follows the pointer\n    */\n    var FeaturefulElementDragging = /** @class */ (function (_super) {\n        __extends(FeaturefulElementDragging, _super);\n        function FeaturefulElementDragging(containerEl, selector) {\n            var _this = _super.call(this, containerEl) || this;\n            // options that can be directly set by caller\n            // the caller can also set the PointerDragging's options as well\n            _this.delay = null;\n            _this.minDistance = 0;\n            _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n            _this.mirrorNeedsRevert = false;\n            _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n            _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n            _this.isDelayEnded = false;\n            _this.isDistanceSurpassed = false;\n            _this.delayTimeoutId = null;\n            _this.onPointerDown = function (ev) {\n                if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going\n                    _this.isInteracting = true;\n                    _this.isDelayEnded = false;\n                    _this.isDistanceSurpassed = false;\n                    preventSelection(document.body);\n                    preventContextMenu(document.body);\n                    // prevent links from being visited if there's an eventual drag.\n                    // also prevents selection in older browsers (maybe?).\n                    // not necessary for touch, besides, browser would complain about passiveness.\n                    if (!ev.isTouch) {\n                        ev.origEvent.preventDefault();\n                    }\n                    _this.emitter.trigger('pointerdown', ev);\n                    if (_this.isInteracting && // not destroyed via pointerdown handler\n                        !_this.pointer.shouldIgnoreMove) {\n                        // actions related to initiating dragstart+dragmove+dragend...\n                        _this.mirror.setIsVisible(false); // reset. caller must set-visible\n                        _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n                        _this.startDelay(ev);\n                        if (!_this.minDistance) {\n                            _this.handleDistanceSurpassed(ev);\n                        }\n                    }\n                }\n            };\n            _this.onPointerMove = function (ev) {\n                if (_this.isInteracting) {\n                    _this.emitter.trigger('pointermove', ev);\n                    if (!_this.isDistanceSurpassed) {\n                        var minDistance = _this.minDistance;\n                        var distanceSq = void 0; // current distance from the origin, squared\n                        var deltaX = ev.deltaX, deltaY = ev.deltaY;\n                        distanceSq = deltaX * deltaX + deltaY * deltaY;\n                        if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n                            _this.handleDistanceSurpassed(ev);\n                        }\n                    }\n                    if (_this.isDragging) {\n                        // a real pointer move? (not one simulated by scrolling)\n                        if (ev.origEvent.type !== 'scroll') {\n                            _this.mirror.handleMove(ev.pageX, ev.pageY);\n                            _this.autoScroller.handleMove(ev.pageX, ev.pageY);\n                        }\n                        _this.emitter.trigger('dragmove', ev);\n                    }\n                }\n            };\n            _this.onPointerUp = function (ev) {\n                if (_this.isInteracting) {\n                    _this.isInteracting = false;\n                    allowSelection(document.body);\n                    allowContextMenu(document.body);\n                    _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n                    if (_this.isDragging) {\n                        _this.autoScroller.stop();\n                        _this.tryStopDrag(ev); // which will stop the mirror\n                    }\n                    if (_this.delayTimeoutId) {\n                        clearTimeout(_this.delayTimeoutId);\n                        _this.delayTimeoutId = null;\n                    }\n                }\n            };\n            var pointer = _this.pointer = new PointerDragging(containerEl);\n            pointer.emitter.on('pointerdown', _this.onPointerDown);\n            pointer.emitter.on('pointermove', _this.onPointerMove);\n            pointer.emitter.on('pointerup', _this.onPointerUp);\n            if (selector) {\n                pointer.selector = selector;\n            }\n            _this.mirror = new ElementMirror();\n            _this.autoScroller = new AutoScroller();\n            return _this;\n        }\n        FeaturefulElementDragging.prototype.destroy = function () {\n            this.pointer.destroy();\n            // HACK: simulate a pointer-up to end the current drag\n            // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n            this.onPointerUp({});\n        };\n        FeaturefulElementDragging.prototype.startDelay = function (ev) {\n            var _this = this;\n            if (typeof this.delay === 'number') {\n                this.delayTimeoutId = setTimeout(function () {\n                    _this.delayTimeoutId = null;\n                    _this.handleDelayEnd(ev);\n                }, this.delay); // not assignable to number!\n            }\n            else {\n                this.handleDelayEnd(ev);\n            }\n        };\n        FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) {\n            this.isDelayEnded = true;\n            this.tryStartDrag(ev);\n        };\n        FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) {\n            this.isDistanceSurpassed = true;\n            this.tryStartDrag(ev);\n        };\n        FeaturefulElementDragging.prototype.tryStartDrag = function (ev) {\n            if (this.isDelayEnded && this.isDistanceSurpassed) {\n                if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n                    this.isDragging = true;\n                    this.mirrorNeedsRevert = false;\n                    this.autoScroller.start(ev.pageX, ev.pageY);\n                    this.emitter.trigger('dragstart', ev);\n                    if (this.touchScrollAllowed === false) {\n                        this.pointer.cancelTouchScroll();\n                    }\n                }\n            }\n        };\n        FeaturefulElementDragging.prototype.tryStopDrag = function (ev) {\n            // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n            // that come from the document to fire beforehand. much more convenient this way.\n            this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));\n        };\n        FeaturefulElementDragging.prototype.stopDrag = function (ev) {\n            this.isDragging = false;\n            this.emitter.trigger('dragend', ev);\n        };\n        // fill in the implementations...\n        FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) {\n            this.pointer.shouldIgnoreMove = bool;\n        };\n        FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) {\n            this.mirror.setIsVisible(bool);\n        };\n        FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n            this.mirrorNeedsRevert = bool;\n        };\n        FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n            this.autoScroller.isEnabled = bool;\n        };\n        return FeaturefulElementDragging;\n    }(ElementDragging));\n\n    /*\n    When this class is instantiated, it records the offset of an element (relative to the document topleft),\n    and continues to monitor scrolling, updating the cached coordinates if it needs to.\n    Does not access the DOM after instantiation, so highly performant.\n\n    Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element\n    and an determine if a given point is inside the combined clipping rectangle.\n    */\n    var OffsetTracker = /** @class */ (function () {\n        function OffsetTracker(el) {\n            this.origRect = computeRect(el);\n            // will work fine for divs that have overflow:hidden\n            this.scrollCaches = getClippingParents(el).map(function (scrollEl) { return new ElementScrollGeomCache(scrollEl, true); });\n        }\n        OffsetTracker.prototype.destroy = function () {\n            for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                var scrollCache = _a[_i];\n                scrollCache.destroy();\n            }\n        };\n        OffsetTracker.prototype.computeLeft = function () {\n            var left = this.origRect.left;\n            for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                var scrollCache = _a[_i];\n                left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n            }\n            return left;\n        };\n        OffsetTracker.prototype.computeTop = function () {\n            var top = this.origRect.top;\n            for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                var scrollCache = _a[_i];\n                top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n            }\n            return top;\n        };\n        OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) {\n            var point = { left: pageX, top: pageY };\n            for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n                var scrollCache = _a[_i];\n                if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n                    !pointInsideRect(point, scrollCache.clientRect)) {\n                    return false;\n                }\n            }\n            return true;\n        };\n        return OffsetTracker;\n    }());\n    // certain clipping containers should never constrain interactions, like <html> and <body>\n    // https://github.com/fullcalendar/fullcalendar/issues/3615\n    function isIgnoredClipping(node) {\n        var tagName = node.tagName;\n        return tagName === 'HTML' || tagName === 'BODY';\n    }\n\n    /*\n    Tracks movement over multiple droppable areas (aka \"hits\")\n    that exist in one or more DateComponents.\n    Relies on an existing draggable.\n\n    emits:\n    - pointerdown\n    - dragstart\n    - hitchange - fires initially, even if not over a hit\n    - pointerup\n    - (hitchange - again, to null, if ended over a hit)\n    - dragend\n    */\n    var HitDragging = /** @class */ (function () {\n        function HitDragging(dragging, droppableStore) {\n            var _this = this;\n            // options that can be set by caller\n            this.useSubjectCenter = false;\n            this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n            this.initialHit = null;\n            this.movingHit = null;\n            this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n            this.handlePointerDown = function (ev) {\n                var dragging = _this.dragging;\n                _this.initialHit = null;\n                _this.movingHit = null;\n                _this.finalHit = null;\n                _this.prepareHits();\n                _this.processFirstCoord(ev);\n                if (_this.initialHit || !_this.requireInitial) {\n                    dragging.setIgnoreMove(false);\n                    // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n                    _this.emitter.trigger('pointerdown', ev);\n                }\n                else {\n                    dragging.setIgnoreMove(true);\n                }\n            };\n            this.handleDragStart = function (ev) {\n                _this.emitter.trigger('dragstart', ev);\n                _this.handleMove(ev, true); // force = fire even if initially null\n            };\n            this.handleDragMove = function (ev) {\n                _this.emitter.trigger('dragmove', ev);\n                _this.handleMove(ev);\n            };\n            this.handlePointerUp = function (ev) {\n                _this.releaseHits();\n                _this.emitter.trigger('pointerup', ev);\n            };\n            this.handleDragEnd = function (ev) {\n                if (_this.movingHit) {\n                    _this.emitter.trigger('hitupdate', null, true, ev);\n                }\n                _this.finalHit = _this.movingHit;\n                _this.movingHit = null;\n                _this.emitter.trigger('dragend', ev);\n            };\n            this.droppableStore = droppableStore;\n            dragging.emitter.on('pointerdown', this.handlePointerDown);\n            dragging.emitter.on('dragstart', this.handleDragStart);\n            dragging.emitter.on('dragmove', this.handleDragMove);\n            dragging.emitter.on('pointerup', this.handlePointerUp);\n            dragging.emitter.on('dragend', this.handleDragEnd);\n            this.dragging = dragging;\n            this.emitter = new Emitter();\n        }\n        // sets initialHit\n        // sets coordAdjust\n        HitDragging.prototype.processFirstCoord = function (ev) {\n            var origPoint = { left: ev.pageX, top: ev.pageY };\n            var adjustedPoint = origPoint;\n            var subjectEl = ev.subjectEl;\n            var subjectRect;\n            if (subjectEl !== document) {\n                subjectRect = computeRect(subjectEl);\n                adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n            }\n            var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n            if (initialHit) {\n                if (this.useSubjectCenter && subjectRect) {\n                    var slicedSubjectRect = intersectRects(subjectRect, initialHit.rect);\n                    if (slicedSubjectRect) {\n                        adjustedPoint = getRectCenter(slicedSubjectRect);\n                    }\n                }\n                this.coordAdjust = diffPoints(adjustedPoint, origPoint);\n            }\n            else {\n                this.coordAdjust = { left: 0, top: 0 };\n            }\n        };\n        HitDragging.prototype.handleMove = function (ev, forceHandle) {\n            var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n            if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n                this.movingHit = hit;\n                this.emitter.trigger('hitupdate', hit, false, ev);\n            }\n        };\n        HitDragging.prototype.prepareHits = function () {\n            this.offsetTrackers = mapHash(this.droppableStore, function (interactionSettings) {\n                interactionSettings.component.prepareHits();\n                return new OffsetTracker(interactionSettings.el);\n            });\n        };\n        HitDragging.prototype.releaseHits = function () {\n            var offsetTrackers = this.offsetTrackers;\n            for (var id in offsetTrackers) {\n                offsetTrackers[id].destroy();\n            }\n            this.offsetTrackers = {};\n        };\n        HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) {\n            var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers;\n            var bestHit = null;\n            for (var id in droppableStore) {\n                var component = droppableStore[id].component;\n                var offsetTracker = offsetTrackers[id];\n                if (offsetTracker && // wasn't destroyed mid-drag\n                    offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n                    var originLeft = offsetTracker.computeLeft();\n                    var originTop = offsetTracker.computeTop();\n                    var positionLeft = offsetLeft - originLeft;\n                    var positionTop = offsetTop - originTop;\n                    var origRect = offsetTracker.origRect;\n                    var width = origRect.right - origRect.left;\n                    var height = origRect.bottom - origRect.top;\n                    if (\n                    // must be within the element's bounds\n                    positionLeft >= 0 && positionLeft < width &&\n                        positionTop >= 0 && positionTop < height) {\n                        var hit = component.queryHit(positionLeft, positionTop, width, height);\n                        var dateProfile = component.context.getCurrentData().dateProfile;\n                        if (hit &&\n                            (\n                            // make sure the hit is within activeRange, meaning it's not a deal cell\n                            rangeContainsRange(dateProfile.activeRange, hit.dateSpan.range)) &&\n                            (!bestHit || hit.layer > bestHit.layer)) {\n                            // TODO: better way to re-orient rectangle\n                            hit.rect.left += originLeft;\n                            hit.rect.right += originLeft;\n                            hit.rect.top += originTop;\n                            hit.rect.bottom += originTop;\n                            bestHit = hit;\n                        }\n                    }\n                }\n            }\n            return bestHit;\n        };\n        return HitDragging;\n    }());\n    function isHitsEqual(hit0, hit1) {\n        if (!hit0 && !hit1) {\n            return true;\n        }\n        if (Boolean(hit0) !== Boolean(hit1)) {\n            return false;\n        }\n        return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan);\n    }\n\n    function buildDatePointApiWithContext(dateSpan, context) {\n        var props = {};\n        for (var _i = 0, _a = context.pluginHooks.datePointTransforms; _i < _a.length; _i++) {\n            var transform = _a[_i];\n            __assign(props, transform(dateSpan, context));\n        }\n        __assign(props, buildDatePointApi(dateSpan, context.dateEnv));\n        return props;\n    }\n    function buildDatePointApi(span, dateEnv) {\n        return {\n            date: dateEnv.toDate(span.range.start),\n            dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n            allDay: span.allDay,\n        };\n    }\n\n    /*\n    Monitors when the user clicks on a specific date/time of a component.\n    A pointerdown+pointerup on the same \"hit\" constitutes a click.\n    */\n    var DateClicking = /** @class */ (function (_super) {\n        __extends(DateClicking, _super);\n        function DateClicking(settings) {\n            var _this = _super.call(this, settings) || this;\n            _this.handlePointerDown = function (pev) {\n                var dragging = _this.dragging;\n                var downEl = pev.origEvent.target;\n                // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n                dragging.setIgnoreMove(!_this.component.isValidDateDownEl(downEl));\n            };\n            // won't even fire if moving was ignored\n            _this.handleDragEnd = function (ev) {\n                var component = _this.component;\n                var pointer = _this.dragging.pointer;\n                if (!pointer.wasTouchScroll) {\n                    var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit;\n                    if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n                        var context = component.context;\n                        var arg = __assign(__assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), { dayEl: initialHit.dayEl, jsEvent: ev.origEvent, view: context.viewApi || context.calendarApi.view });\n                        context.emitter.trigger('dateClick', arg);\n                    }\n                }\n            };\n            // we DO want to watch pointer moves because otherwise finalHit won't get populated\n            _this.dragging = new FeaturefulElementDragging(settings.el);\n            _this.dragging.autoScroller.isEnabled = false;\n            var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n            hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n            hitDragging.emitter.on('dragend', _this.handleDragEnd);\n            return _this;\n        }\n        DateClicking.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        return DateClicking;\n    }(Interaction));\n\n    /*\n    Tracks when the user selects a portion of time of a component,\n    constituted by a drag over date cells, with a possible delay at the beginning of the drag.\n    */\n    var DateSelecting = /** @class */ (function (_super) {\n        __extends(DateSelecting, _super);\n        function DateSelecting(settings) {\n            var _this = _super.call(this, settings) || this;\n            _this.dragSelection = null;\n            _this.handlePointerDown = function (ev) {\n                var _a = _this, component = _a.component, dragging = _a.dragging;\n                var options = component.context.options;\n                var canSelect = options.selectable &&\n                    component.isValidDateDownEl(ev.origEvent.target);\n                // don't bother to watch expensive moves if component won't do selection\n                dragging.setIgnoreMove(!canSelect);\n                // if touch, require user to hold down\n                dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null;\n            };\n            _this.handleDragStart = function (ev) {\n                _this.component.context.calendarApi.unselect(ev); // unselect previous selections\n            };\n            _this.handleHitUpdate = function (hit, isFinal) {\n                var context = _this.component.context;\n                var dragSelection = null;\n                var isInvalid = false;\n                if (hit) {\n                    dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, context.pluginHooks.dateSelectionTransformers);\n                    if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) {\n                        isInvalid = true;\n                        dragSelection = null;\n                    }\n                }\n                if (dragSelection) {\n                    context.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n                }\n                else if (!isFinal) { // only unselect if moved away while dragging\n                    context.dispatch({ type: 'UNSELECT_DATES' });\n                }\n                if (!isInvalid) {\n                    enableCursor();\n                }\n                else {\n                    disableCursor();\n                }\n                if (!isFinal) {\n                    _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n                }\n            };\n            _this.handlePointerUp = function (pev) {\n                if (_this.dragSelection) {\n                    // selection is already rendered, so just need to report selection\n                    triggerDateSelect(_this.dragSelection, pev, _this.component.context);\n                    _this.dragSelection = null;\n                }\n            };\n            var component = settings.component;\n            var options = component.context.options;\n            var dragging = _this.dragging = new FeaturefulElementDragging(settings.el);\n            dragging.touchScrollAllowed = false;\n            dragging.minDistance = options.selectMinDistance || 0;\n            dragging.autoScroller.isEnabled = options.dragScroll;\n            var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n            hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n            hitDragging.emitter.on('dragstart', _this.handleDragStart);\n            hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n            hitDragging.emitter.on('pointerup', _this.handlePointerUp);\n            return _this;\n        }\n        DateSelecting.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        return DateSelecting;\n    }(Interaction));\n    function getComponentTouchDelay(component) {\n        var options = component.context.options;\n        var delay = options.selectLongPressDelay;\n        if (delay == null) {\n            delay = options.longPressDelay;\n        }\n        return delay;\n    }\n    function joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n        var dateSpan0 = hit0.dateSpan;\n        var dateSpan1 = hit1.dateSpan;\n        var ms = [\n            dateSpan0.range.start,\n            dateSpan0.range.end,\n            dateSpan1.range.start,\n            dateSpan1.range.end,\n        ];\n        ms.sort(compareNumbers);\n        var props = {};\n        for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) {\n            var transformer = dateSelectionTransformers_1[_i];\n            var res = transformer(hit0, hit1);\n            if (res === false) {\n                return null;\n            }\n            if (res) {\n                __assign(props, res);\n            }\n        }\n        props.range = { start: ms[0], end: ms[3] };\n        props.allDay = dateSpan0.allDay;\n        return props;\n    }\n\n    var EventDragging = /** @class */ (function (_super) {\n        __extends(EventDragging, _super);\n        function EventDragging(settings) {\n            var _this = _super.call(this, settings) || this;\n            // internal state\n            _this.subjectEl = null;\n            _this.subjectSeg = null; // the seg being selected/dragged\n            _this.isDragging = false;\n            _this.eventRange = null;\n            _this.relevantEvents = null; // the events being dragged\n            _this.receivingContext = null;\n            _this.validMutation = null;\n            _this.mutatedRelevantEvents = null;\n            _this.handlePointerDown = function (ev) {\n                var origTarget = ev.origEvent.target;\n                var _a = _this, component = _a.component, dragging = _a.dragging;\n                var mirror = dragging.mirror;\n                var options = component.context.options;\n                var initialContext = component.context;\n                _this.subjectEl = ev.subjectEl;\n                var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl);\n                var eventRange = _this.eventRange = subjectSeg.eventRange;\n                var eventInstanceId = eventRange.instance.instanceId;\n                _this.relevantEvents = getRelevantEvents(initialContext.getCurrentData().eventStore, eventInstanceId);\n                dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n                dragging.delay =\n                    // only do a touch delay if touch and this event hasn't been selected yet\n                    (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n                        getComponentTouchDelay$1(component) :\n                        null;\n                if (options.fixedMirrorParent) {\n                    mirror.parentNode = options.fixedMirrorParent;\n                }\n                else {\n                    mirror.parentNode = elementClosest(origTarget, '.fc');\n                }\n                mirror.revertDuration = options.dragRevertDuration;\n                var isValid = component.isValidSegDownEl(origTarget) &&\n                    !elementClosest(origTarget, '.fc-event-resizer'); // NOT on a resizer\n                dragging.setIgnoreMove(!isValid);\n                // disable dragging for elements that are resizable (ie, selectable)\n                // but are not draggable\n                _this.isDragging = isValid &&\n                    ev.subjectEl.classList.contains('fc-event-draggable');\n            };\n            _this.handleDragStart = function (ev) {\n                var initialContext = _this.component.context;\n                var eventRange = _this.eventRange;\n                var eventInstanceId = eventRange.instance.instanceId;\n                if (ev.isTouch) {\n                    // need to select a different event?\n                    if (eventInstanceId !== _this.component.props.eventSelection) {\n                        initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId });\n                    }\n                }\n                else {\n                    // if now using mouse, but was previous touch interaction, clear selected event\n                    initialContext.dispatch({ type: 'UNSELECT_EVENT' });\n                }\n                if (_this.isDragging) {\n                    initialContext.calendarApi.unselect(ev); // unselect *date* selection\n                    initialContext.emitter.trigger('eventDragStart', {\n                        el: _this.subjectEl,\n                        event: new EventApi(initialContext, eventRange.def, eventRange.instance),\n                        jsEvent: ev.origEvent,\n                        view: initialContext.viewApi,\n                    });\n                }\n            };\n            _this.handleHitUpdate = function (hit, isFinal) {\n                if (!_this.isDragging) {\n                    return;\n                }\n                var relevantEvents = _this.relevantEvents;\n                var initialHit = _this.hitDragging.initialHit;\n                var initialContext = _this.component.context;\n                // states based on new hit\n                var receivingContext = null;\n                var mutation = null;\n                var mutatedRelevantEvents = null;\n                var isInvalid = false;\n                var interaction = {\n                    affectedEvents: relevantEvents,\n                    mutatedEvents: createEmptyEventStore(),\n                    isEvent: true,\n                };\n                if (hit) {\n                    var receivingComponent = hit.component;\n                    receivingContext = receivingComponent.context;\n                    var receivingOptions = receivingContext.options;\n                    if (initialContext === receivingContext ||\n                        (receivingOptions.editable && receivingOptions.droppable)) {\n                        mutation = computeEventMutation(initialHit, hit, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);\n                        if (mutation) {\n                            mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);\n                            interaction.mutatedEvents = mutatedRelevantEvents;\n                            if (!receivingComponent.isInteractionValid(interaction)) {\n                                isInvalid = true;\n                                mutation = null;\n                                mutatedRelevantEvents = null;\n                                interaction.mutatedEvents = createEmptyEventStore();\n                            }\n                        }\n                    }\n                    else {\n                        receivingContext = null;\n                    }\n                }\n                _this.displayDrag(receivingContext, interaction);\n                if (!isInvalid) {\n                    enableCursor();\n                }\n                else {\n                    disableCursor();\n                }\n                if (!isFinal) {\n                    if (initialContext === receivingContext && // TODO: write test for this\n                        isHitsEqual(initialHit, hit)) {\n                        mutation = null;\n                    }\n                    _this.dragging.setMirrorNeedsRevert(!mutation);\n                    // render the mirror if no already-rendered mirror\n                    // TODO: wish we could somehow wait for dispatch to guarantee render\n                    _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-event-mirror'));\n                    // assign states based on new hit\n                    _this.receivingContext = receivingContext;\n                    _this.validMutation = mutation;\n                    _this.mutatedRelevantEvents = mutatedRelevantEvents;\n                }\n            };\n            _this.handlePointerUp = function () {\n                if (!_this.isDragging) {\n                    _this.cleanup(); // because handleDragEnd won't fire\n                }\n            };\n            _this.handleDragEnd = function (ev) {\n                if (_this.isDragging) {\n                    var initialContext_1 = _this.component.context;\n                    var initialView = initialContext_1.viewApi;\n                    var _a = _this, receivingContext_1 = _a.receivingContext, validMutation = _a.validMutation;\n                    var eventDef = _this.eventRange.def;\n                    var eventInstance = _this.eventRange.instance;\n                    var eventApi = new EventApi(initialContext_1, eventDef, eventInstance);\n                    var relevantEvents_1 = _this.relevantEvents;\n                    var mutatedRelevantEvents_1 = _this.mutatedRelevantEvents;\n                    var finalHit = _this.hitDragging.finalHit;\n                    _this.clearDrag(); // must happen after revert animation\n                    initialContext_1.emitter.trigger('eventDragStop', {\n                        el: _this.subjectEl,\n                        event: eventApi,\n                        jsEvent: ev.origEvent,\n                        view: initialView,\n                    });\n                    if (validMutation) {\n                        // dropped within same calendar\n                        if (receivingContext_1 === initialContext_1) {\n                            var updatedEventApi = new EventApi(initialContext_1, mutatedRelevantEvents_1.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents_1.instances[eventInstance.instanceId] : null);\n                            initialContext_1.dispatch({\n                                type: 'MERGE_EVENTS',\n                                eventStore: mutatedRelevantEvents_1,\n                            });\n                            var eventChangeArg = {\n                                oldEvent: eventApi,\n                                event: updatedEventApi,\n                                relatedEvents: buildEventApis(mutatedRelevantEvents_1, initialContext_1, eventInstance),\n                                revert: function () {\n                                    initialContext_1.dispatch({\n                                        type: 'MERGE_EVENTS',\n                                        eventStore: relevantEvents_1,\n                                    });\n                                },\n                            };\n                            var transformed = {};\n                            for (var _i = 0, _b = initialContext_1.getCurrentData().pluginHooks.eventDropTransformers; _i < _b.length; _i++) {\n                                var transformer = _b[_i];\n                                __assign(transformed, transformer(validMutation, initialContext_1));\n                            }\n                            initialContext_1.emitter.trigger('eventDrop', __assign(__assign(__assign({}, eventChangeArg), transformed), { el: ev.subjectEl, delta: validMutation.datesDelta, jsEvent: ev.origEvent, view: initialView }));\n                            initialContext_1.emitter.trigger('eventChange', eventChangeArg);\n                            // dropped in different calendar\n                        }\n                        else if (receivingContext_1) {\n                            var eventRemoveArg = {\n                                event: eventApi,\n                                relatedEvents: buildEventApis(relevantEvents_1, initialContext_1, eventInstance),\n                                revert: function () {\n                                    initialContext_1.dispatch({\n                                        type: 'MERGE_EVENTS',\n                                        eventStore: relevantEvents_1,\n                                    });\n                                },\n                            };\n                            initialContext_1.emitter.trigger('eventLeave', __assign(__assign({}, eventRemoveArg), { draggedEl: ev.subjectEl, view: initialView }));\n                            initialContext_1.dispatch({\n                                type: 'REMOVE_EVENTS',\n                                eventStore: relevantEvents_1,\n                            });\n                            initialContext_1.emitter.trigger('eventRemove', eventRemoveArg);\n                            var addedEventDef = mutatedRelevantEvents_1.defs[eventDef.defId];\n                            var addedEventInstance = mutatedRelevantEvents_1.instances[eventInstance.instanceId];\n                            var addedEventApi = new EventApi(receivingContext_1, addedEventDef, addedEventInstance);\n                            receivingContext_1.dispatch({\n                                type: 'MERGE_EVENTS',\n                                eventStore: mutatedRelevantEvents_1,\n                            });\n                            var eventAddArg = {\n                                event: addedEventApi,\n                                relatedEvents: buildEventApis(mutatedRelevantEvents_1, receivingContext_1, addedEventInstance),\n                                revert: function () {\n                                    receivingContext_1.dispatch({\n                                        type: 'REMOVE_EVENTS',\n                                        eventStore: mutatedRelevantEvents_1,\n                                    });\n                                },\n                            };\n                            receivingContext_1.emitter.trigger('eventAdd', eventAddArg);\n                            if (ev.isTouch) {\n                                receivingContext_1.dispatch({\n                                    type: 'SELECT_EVENT',\n                                    eventInstanceId: eventInstance.instanceId,\n                                });\n                            }\n                            receivingContext_1.emitter.trigger('drop', __assign(__assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext_1)), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component.context.viewApi }));\n                            receivingContext_1.emitter.trigger('eventReceive', __assign(__assign({}, eventAddArg), { draggedEl: ev.subjectEl, view: finalHit.component.context.viewApi }));\n                        }\n                    }\n                    else {\n                        initialContext_1.emitter.trigger('_noEventDrop');\n                    }\n                }\n                _this.cleanup();\n            };\n            var component = _this.component;\n            var options = component.context.options;\n            var dragging = _this.dragging = new FeaturefulElementDragging(settings.el);\n            dragging.pointer.selector = EventDragging.SELECTOR;\n            dragging.touchScrollAllowed = false;\n            dragging.autoScroller.isEnabled = options.dragScroll;\n            var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsStore);\n            hitDragging.useSubjectCenter = settings.useEventCenter;\n            hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n            hitDragging.emitter.on('dragstart', _this.handleDragStart);\n            hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n            hitDragging.emitter.on('pointerup', _this.handlePointerUp);\n            hitDragging.emitter.on('dragend', _this.handleDragEnd);\n            return _this;\n        }\n        EventDragging.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        // render a drag state on the next receivingCalendar\n        EventDragging.prototype.displayDrag = function (nextContext, state) {\n            var initialContext = this.component.context;\n            var prevContext = this.receivingContext;\n            // does the previous calendar need to be cleared?\n            if (prevContext && prevContext !== nextContext) {\n                // does the initial calendar need to be cleared?\n                // if so, don't clear all the way. we still need to to hide the affectedEvents\n                if (prevContext === initialContext) {\n                    prevContext.dispatch({\n                        type: 'SET_EVENT_DRAG',\n                        state: {\n                            affectedEvents: state.affectedEvents,\n                            mutatedEvents: createEmptyEventStore(),\n                            isEvent: true,\n                        },\n                    });\n                    // completely clear the old calendar if it wasn't the initial\n                }\n                else {\n                    prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n                }\n            }\n            if (nextContext) {\n                nextContext.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n            }\n        };\n        EventDragging.prototype.clearDrag = function () {\n            var initialCalendar = this.component.context;\n            var receivingContext = this.receivingContext;\n            if (receivingContext) {\n                receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n            }\n            // the initial calendar might have an dummy drag state from displayDrag\n            if (initialCalendar !== receivingContext) {\n                initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n            }\n        };\n        EventDragging.prototype.cleanup = function () {\n            this.subjectSeg = null;\n            this.isDragging = false;\n            this.eventRange = null;\n            this.relevantEvents = null;\n            this.receivingContext = null;\n            this.validMutation = null;\n            this.mutatedRelevantEvents = null;\n        };\n        // TODO: test this in IE11\n        // QUESTION: why do we need it on the resizable???\n        EventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';\n        return EventDragging;\n    }(Interaction));\n    function computeEventMutation(hit0, hit1, massagers) {\n        var dateSpan0 = hit0.dateSpan;\n        var dateSpan1 = hit1.dateSpan;\n        var date0 = dateSpan0.range.start;\n        var date1 = dateSpan1.range.start;\n        var standardProps = {};\n        if (dateSpan0.allDay !== dateSpan1.allDay) {\n            standardProps.allDay = dateSpan1.allDay;\n            standardProps.hasEnd = hit1.component.context.options.allDayMaintainDuration;\n            if (dateSpan1.allDay) {\n                // means date1 is already start-of-day,\n                // but date0 needs to be converted\n                date0 = startOfDay(date0);\n            }\n        }\n        var delta = diffDates(date0, date1, hit0.component.context.dateEnv, hit0.component === hit1.component ?\n            hit0.component.largeUnit :\n            null);\n        if (delta.milliseconds) { // has hours/minutes/seconds\n            standardProps.allDay = false;\n        }\n        var mutation = {\n            datesDelta: delta,\n            standardProps: standardProps,\n        };\n        for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) {\n            var massager = massagers_1[_i];\n            massager(mutation, hit0, hit1);\n        }\n        return mutation;\n    }\n    function getComponentTouchDelay$1(component) {\n        var options = component.context.options;\n        var delay = options.eventLongPressDelay;\n        if (delay == null) {\n            delay = options.longPressDelay;\n        }\n        return delay;\n    }\n\n    var EventResizing = /** @class */ (function (_super) {\n        __extends(EventResizing, _super);\n        function EventResizing(settings) {\n            var _this = _super.call(this, settings) || this;\n            // internal state\n            _this.draggingSegEl = null;\n            _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n            _this.eventRange = null;\n            _this.relevantEvents = null;\n            _this.validMutation = null;\n            _this.mutatedRelevantEvents = null;\n            _this.handlePointerDown = function (ev) {\n                var component = _this.component;\n                var segEl = _this.querySegEl(ev);\n                var seg = getElSeg(segEl);\n                var eventRange = _this.eventRange = seg.eventRange;\n                _this.dragging.minDistance = component.context.options.eventDragMinDistance;\n                // if touch, need to be working with a selected event\n                _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) ||\n                    (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId));\n            };\n            _this.handleDragStart = function (ev) {\n                var context = _this.component.context;\n                var eventRange = _this.eventRange;\n                _this.relevantEvents = getRelevantEvents(context.getCurrentData().eventStore, _this.eventRange.instance.instanceId);\n                var segEl = _this.querySegEl(ev);\n                _this.draggingSegEl = segEl;\n                _this.draggingSeg = getElSeg(segEl);\n                context.calendarApi.unselect();\n                context.emitter.trigger('eventResizeStart', {\n                    el: segEl,\n                    event: new EventApi(context, eventRange.def, eventRange.instance),\n                    jsEvent: ev.origEvent,\n                    view: context.viewApi,\n                });\n            };\n            _this.handleHitUpdate = function (hit, isFinal, ev) {\n                var context = _this.component.context;\n                var relevantEvents = _this.relevantEvents;\n                var initialHit = _this.hitDragging.initialHit;\n                var eventInstance = _this.eventRange.instance;\n                var mutation = null;\n                var mutatedRelevantEvents = null;\n                var isInvalid = false;\n                var interaction = {\n                    affectedEvents: relevantEvents,\n                    mutatedEvents: createEmptyEventStore(),\n                    isEvent: true,\n                };\n                if (hit) {\n                    mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range, context.pluginHooks.eventResizeJoinTransforms);\n                }\n                if (mutation) {\n                    mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);\n                    interaction.mutatedEvents = mutatedRelevantEvents;\n                    if (!_this.component.isInteractionValid(interaction)) {\n                        isInvalid = true;\n                        mutation = null;\n                        mutatedRelevantEvents = null;\n                        interaction.mutatedEvents = null;\n                    }\n                }\n                if (mutatedRelevantEvents) {\n                    context.dispatch({\n                        type: 'SET_EVENT_RESIZE',\n                        state: interaction,\n                    });\n                }\n                else {\n                    context.dispatch({ type: 'UNSET_EVENT_RESIZE' });\n                }\n                if (!isInvalid) {\n                    enableCursor();\n                }\n                else {\n                    disableCursor();\n                }\n                if (!isFinal) {\n                    if (mutation && isHitsEqual(initialHit, hit)) {\n                        mutation = null;\n                    }\n                    _this.validMutation = mutation;\n                    _this.mutatedRelevantEvents = mutatedRelevantEvents;\n                }\n            };\n            _this.handleDragEnd = function (ev) {\n                var context = _this.component.context;\n                var eventDef = _this.eventRange.def;\n                var eventInstance = _this.eventRange.instance;\n                var eventApi = new EventApi(context, eventDef, eventInstance);\n                var relevantEvents = _this.relevantEvents;\n                var mutatedRelevantEvents = _this.mutatedRelevantEvents;\n                context.emitter.trigger('eventResizeStop', {\n                    el: _this.draggingSegEl,\n                    event: eventApi,\n                    jsEvent: ev.origEvent,\n                    view: context.viewApi,\n                });\n                if (_this.validMutation) {\n                    var updatedEventApi = new EventApi(context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n                    context.dispatch({\n                        type: 'MERGE_EVENTS',\n                        eventStore: mutatedRelevantEvents,\n                    });\n                    var eventChangeArg = {\n                        oldEvent: eventApi,\n                        event: updatedEventApi,\n                        relatedEvents: buildEventApis(mutatedRelevantEvents, context, eventInstance),\n                        revert: function () {\n                            context.dispatch({\n                                type: 'MERGE_EVENTS',\n                                eventStore: relevantEvents,\n                            });\n                        },\n                    };\n                    context.emitter.trigger('eventResize', __assign(__assign({}, eventChangeArg), { el: _this.draggingSegEl, startDelta: _this.validMutation.startDelta || createDuration(0), endDelta: _this.validMutation.endDelta || createDuration(0), jsEvent: ev.origEvent, view: context.viewApi }));\n                    context.emitter.trigger('eventChange', eventChangeArg);\n                }\n                else {\n                    context.emitter.trigger('_noEventResize');\n                }\n                // reset all internal state\n                _this.draggingSeg = null;\n                _this.relevantEvents = null;\n                _this.validMutation = null;\n                // okay to keep eventInstance around. useful to set it in handlePointerDown\n            };\n            var component = settings.component;\n            var dragging = _this.dragging = new FeaturefulElementDragging(settings.el);\n            dragging.pointer.selector = '.fc-event-resizer';\n            dragging.touchScrollAllowed = false;\n            dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n            var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n            hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n            hitDragging.emitter.on('dragstart', _this.handleDragStart);\n            hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n            hitDragging.emitter.on('dragend', _this.handleDragEnd);\n            return _this;\n        }\n        EventResizing.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        EventResizing.prototype.querySegEl = function (ev) {\n            return elementClosest(ev.subjectEl, '.fc-event');\n        };\n        return EventResizing;\n    }(Interaction));\n    function computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) {\n        var dateEnv = hit0.component.context.dateEnv;\n        var date0 = hit0.dateSpan.range.start;\n        var date1 = hit1.dateSpan.range.start;\n        var delta = diffDates(date0, date1, dateEnv, hit0.component.largeUnit);\n        var props = {};\n        for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {\n            var transform = transforms_1[_i];\n            var res = transform(hit0, hit1);\n            if (res === false) {\n                return null;\n            }\n            if (res) {\n                __assign(props, res);\n            }\n        }\n        if (isFromStart) {\n            if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n                props.startDelta = delta;\n                return props;\n            }\n        }\n        else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n            props.endDelta = delta;\n            return props;\n        }\n        return null;\n    }\n\n    var UnselectAuto = /** @class */ (function () {\n        function UnselectAuto(context) {\n            var _this = this;\n            this.context = context;\n            this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n            this.matchesCancel = false;\n            this.matchesEvent = false;\n            this.onSelect = function (selectInfo) {\n                if (selectInfo.jsEvent) {\n                    _this.isRecentPointerDateSelect = true;\n                }\n            };\n            this.onDocumentPointerDown = function (pev) {\n                var unselectCancel = _this.context.options.unselectCancel;\n                var downEl = pev.origEvent.target;\n                _this.matchesCancel = !!elementClosest(downEl, unselectCancel);\n                _this.matchesEvent = !!elementClosest(downEl, EventDragging.SELECTOR); // interaction started on an event?\n            };\n            this.onDocumentPointerUp = function (pev) {\n                var context = _this.context;\n                var documentPointer = _this.documentPointer;\n                var calendarState = context.getCurrentData();\n                // touch-scrolling should never unfocus any type of selection\n                if (!documentPointer.wasTouchScroll) {\n                    if (calendarState.dateSelection && // an existing date selection?\n                        !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n                    ) {\n                        var unselectAuto = context.options.unselectAuto;\n                        if (unselectAuto && (!unselectAuto || !_this.matchesCancel)) {\n                            context.calendarApi.unselect(pev);\n                        }\n                    }\n                    if (calendarState.eventSelection && // an existing event selected?\n                        !_this.matchesEvent // interaction DIDN'T start on an event\n                    ) {\n                        context.dispatch({ type: 'UNSELECT_EVENT' });\n                    }\n                }\n                _this.isRecentPointerDateSelect = false;\n            };\n            var documentPointer = this.documentPointer = new PointerDragging(document);\n            documentPointer.shouldIgnoreMove = true;\n            documentPointer.shouldWatchScroll = false;\n            documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);\n            documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n            /*\n            TODO: better way to know about whether there was a selection with the pointer\n            */\n            context.emitter.on('select', this.onSelect);\n        }\n        UnselectAuto.prototype.destroy = function () {\n            this.context.emitter.off('select', this.onSelect);\n            this.documentPointer.destroy();\n        };\n        return UnselectAuto;\n    }());\n\n    var OPTION_REFINERS = {\n        fixedMirrorParent: identity,\n    };\n    var LISTENER_REFINERS = {\n        dateClick: identity,\n        eventDragStart: identity,\n        eventDragStop: identity,\n        eventDrop: identity,\n        eventResizeStart: identity,\n        eventResizeStop: identity,\n        eventResize: identity,\n        drop: identity,\n        eventReceive: identity,\n        eventLeave: identity,\n    };\n\n    /*\n    Given an already instantiated draggable object for one-or-more elements,\n    Interprets any dragging as an attempt to drag an events that lives outside\n    of a calendar onto a calendar.\n    */\n    var ExternalElementDragging = /** @class */ (function () {\n        function ExternalElementDragging(dragging, suppliedDragMeta) {\n            var _this = this;\n            this.receivingContext = null;\n            this.droppableEvent = null; // will exist for all drags, even if create:false\n            this.suppliedDragMeta = null;\n            this.dragMeta = null;\n            this.handleDragStart = function (ev) {\n                _this.dragMeta = _this.buildDragMeta(ev.subjectEl);\n            };\n            this.handleHitUpdate = function (hit, isFinal, ev) {\n                var dragging = _this.hitDragging.dragging;\n                var receivingContext = null;\n                var droppableEvent = null;\n                var isInvalid = false;\n                var interaction = {\n                    affectedEvents: createEmptyEventStore(),\n                    mutatedEvents: createEmptyEventStore(),\n                    isEvent: _this.dragMeta.create,\n                };\n                if (hit) {\n                    receivingContext = hit.component.context;\n                    if (_this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {\n                        droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingContext);\n                        interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n                        isInvalid = !isInteractionValid(interaction, receivingContext);\n                        if (isInvalid) {\n                            interaction.mutatedEvents = createEmptyEventStore();\n                            droppableEvent = null;\n                        }\n                    }\n                }\n                _this.displayDrag(receivingContext, interaction);\n                // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n                // TODO: wish we could somehow wait for dispatch to guarantee render\n                dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));\n                if (!isInvalid) {\n                    enableCursor();\n                }\n                else {\n                    disableCursor();\n                }\n                if (!isFinal) {\n                    dragging.setMirrorNeedsRevert(!droppableEvent);\n                    _this.receivingContext = receivingContext;\n                    _this.droppableEvent = droppableEvent;\n                }\n            };\n            this.handleDragEnd = function (pev) {\n                var _a = _this, receivingContext = _a.receivingContext, droppableEvent = _a.droppableEvent;\n                _this.clearDrag();\n                if (receivingContext && droppableEvent) {\n                    var finalHit = _this.hitDragging.finalHit;\n                    var finalView = finalHit.component.context.viewApi;\n                    var dragMeta = _this.dragMeta;\n                    receivingContext.emitter.trigger('drop', __assign(__assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }));\n                    if (dragMeta.create) {\n                        var addingEvents_1 = eventTupleToStore(droppableEvent);\n                        receivingContext.dispatch({\n                            type: 'MERGE_EVENTS',\n                            eventStore: addingEvents_1,\n                        });\n                        if (pev.isTouch) {\n                            receivingContext.dispatch({\n                                type: 'SELECT_EVENT',\n                                eventInstanceId: droppableEvent.instance.instanceId,\n                            });\n                        }\n                        // signal that an external event landed\n                        receivingContext.emitter.trigger('eventReceive', {\n                            event: new EventApi(receivingContext, droppableEvent.def, droppableEvent.instance),\n                            relatedEvents: [],\n                            revert: function () {\n                                receivingContext.dispatch({\n                                    type: 'REMOVE_EVENTS',\n                                    eventStore: addingEvents_1,\n                                });\n                            },\n                            draggedEl: pev.subjectEl,\n                            view: finalView,\n                        });\n                    }\n                }\n                _this.receivingContext = null;\n                _this.droppableEvent = null;\n            };\n            var hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore);\n            hitDragging.requireInitial = false; // will start outside of a component\n            hitDragging.emitter.on('dragstart', this.handleDragStart);\n            hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n            hitDragging.emitter.on('dragend', this.handleDragEnd);\n            this.suppliedDragMeta = suppliedDragMeta;\n        }\n        ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) {\n            if (typeof this.suppliedDragMeta === 'object') {\n                return parseDragMeta(this.suppliedDragMeta);\n            }\n            if (typeof this.suppliedDragMeta === 'function') {\n                return parseDragMeta(this.suppliedDragMeta(subjectEl));\n            }\n            return getDragMetaFromEl(subjectEl);\n        };\n        ExternalElementDragging.prototype.displayDrag = function (nextContext, state) {\n            var prevContext = this.receivingContext;\n            if (prevContext && prevContext !== nextContext) {\n                prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n            }\n            if (nextContext) {\n                nextContext.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n            }\n        };\n        ExternalElementDragging.prototype.clearDrag = function () {\n            if (this.receivingContext) {\n                this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n            }\n        };\n        ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingContext) {\n            var dropAccept = receivingContext.options.dropAccept;\n            if (typeof dropAccept === 'function') {\n                return dropAccept.call(receivingContext.calendarApi, el);\n            }\n            if (typeof dropAccept === 'string' && dropAccept) {\n                return Boolean(elementMatches(el, dropAccept));\n            }\n            return true;\n        };\n        return ExternalElementDragging;\n    }());\n    // Utils for computing event store from the DragMeta\n    // ----------------------------------------------------------------------------------------------------\n    function computeEventForDateSpan(dateSpan, dragMeta, context) {\n        var defProps = __assign({}, dragMeta.leftoverProps);\n        for (var _i = 0, _a = context.pluginHooks.externalDefTransforms; _i < _a.length; _i++) {\n            var transform = _a[_i];\n            __assign(defProps, transform(dateSpan, dragMeta));\n        }\n        var _b = refineEventDef(defProps, context), refined = _b.refined, extra = _b.extra;\n        var def = parseEventDef(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd\n        context);\n        var start = dateSpan.range.start;\n        // only rely on time info if drop zone is all-day,\n        // otherwise, we already know the time\n        if (dateSpan.allDay && dragMeta.startTime) {\n            start = context.dateEnv.add(start, dragMeta.startTime);\n        }\n        var end = dragMeta.duration ?\n            context.dateEnv.add(start, dragMeta.duration) :\n            getDefaultEventEnd(dateSpan.allDay, start, context);\n        var instance = createEventInstance(def.defId, { start: start, end: end });\n        return { def: def, instance: instance };\n    }\n    // Utils for extracting data from element\n    // ----------------------------------------------------------------------------------------------------\n    function getDragMetaFromEl(el) {\n        var str = getEmbeddedElData(el, 'event');\n        var obj = str ?\n            JSON.parse(str) :\n            { create: false }; // if no embedded data, assume no event creation\n        return parseDragMeta(obj);\n    }\n    config.dataAttrPrefix = '';\n    function getEmbeddedElData(el, name) {\n        var prefix = config.dataAttrPrefix;\n        var prefixedName = (prefix ? prefix + '-' : '') + name;\n        return el.getAttribute('data-' + prefixedName) || '';\n    }\n\n    /*\n    Makes an element (that is *external* to any calendar) draggable.\n    Can pass in data that determines how an event will be created when dropped onto a calendar.\n    Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n    */\n    var ExternalDraggable = /** @class */ (function () {\n        function ExternalDraggable(el, settings) {\n            var _this = this;\n            if (settings === void 0) { settings = {}; }\n            this.handlePointerDown = function (ev) {\n                var dragging = _this.dragging;\n                var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay;\n                dragging.minDistance =\n                    minDistance != null ?\n                        minDistance :\n                        (ev.isTouch ? 0 : BASE_OPTION_DEFAULTS.eventDragMinDistance);\n                dragging.delay =\n                    ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n                        (longPressDelay != null ? longPressDelay : BASE_OPTION_DEFAULTS.longPressDelay) :\n                        0;\n            };\n            this.handleDragStart = function (ev) {\n                if (ev.isTouch &&\n                    _this.dragging.delay &&\n                    ev.subjectEl.classList.contains('fc-event')) {\n                    _this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');\n                }\n            };\n            this.settings = settings;\n            var dragging = this.dragging = new FeaturefulElementDragging(el);\n            dragging.touchScrollAllowed = false;\n            if (settings.itemSelector != null) {\n                dragging.pointer.selector = settings.itemSelector;\n            }\n            if (settings.appendTo != null) {\n                dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n            }\n            dragging.emitter.on('pointerdown', this.handlePointerDown);\n            dragging.emitter.on('dragstart', this.handleDragStart);\n            new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n        }\n        ExternalDraggable.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        return ExternalDraggable;\n    }());\n\n    /*\n    Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\n    The third-party system is responsible for drawing the visuals effects of the drag.\n    This class simply monitors for pointer movements and fires events.\n    It also has the ability to hide the moving element (the \"mirror\") during the drag.\n    */\n    var InferredElementDragging = /** @class */ (function (_super) {\n        __extends(InferredElementDragging, _super);\n        function InferredElementDragging(containerEl) {\n            var _this = _super.call(this, containerEl) || this;\n            _this.shouldIgnoreMove = false;\n            _this.mirrorSelector = '';\n            _this.currentMirrorEl = null;\n            _this.handlePointerDown = function (ev) {\n                _this.emitter.trigger('pointerdown', ev);\n                if (!_this.shouldIgnoreMove) {\n                    // fire dragstart right away. does not support delay or min-distance\n                    _this.emitter.trigger('dragstart', ev);\n                }\n            };\n            _this.handlePointerMove = function (ev) {\n                if (!_this.shouldIgnoreMove) {\n                    _this.emitter.trigger('dragmove', ev);\n                }\n            };\n            _this.handlePointerUp = function (ev) {\n                _this.emitter.trigger('pointerup', ev);\n                if (!_this.shouldIgnoreMove) {\n                    // fire dragend right away. does not support a revert animation\n                    _this.emitter.trigger('dragend', ev);\n                }\n            };\n            var pointer = _this.pointer = new PointerDragging(containerEl);\n            pointer.emitter.on('pointerdown', _this.handlePointerDown);\n            pointer.emitter.on('pointermove', _this.handlePointerMove);\n            pointer.emitter.on('pointerup', _this.handlePointerUp);\n            return _this;\n        }\n        InferredElementDragging.prototype.destroy = function () {\n            this.pointer.destroy();\n        };\n        InferredElementDragging.prototype.setIgnoreMove = function (bool) {\n            this.shouldIgnoreMove = bool;\n        };\n        InferredElementDragging.prototype.setMirrorIsVisible = function (bool) {\n            if (bool) {\n                // restore a previously hidden element.\n                // use the reference in case the selector class has already been removed.\n                if (this.currentMirrorEl) {\n                    this.currentMirrorEl.style.visibility = '';\n                    this.currentMirrorEl = null;\n                }\n            }\n            else {\n                var mirrorEl = this.mirrorSelector ?\n                    document.querySelector(this.mirrorSelector) :\n                    null;\n                if (mirrorEl) {\n                    this.currentMirrorEl = mirrorEl;\n                    mirrorEl.style.visibility = 'hidden';\n                }\n            }\n        };\n        return InferredElementDragging;\n    }(ElementDragging));\n\n    /*\n    Bridges third-party drag-n-drop systems with FullCalendar.\n    Must be instantiated and destroyed by caller.\n    */\n    var ThirdPartyDraggable = /** @class */ (function () {\n        function ThirdPartyDraggable(containerOrSettings, settings) {\n            var containerEl = document;\n            if (\n            // wish we could just test instanceof EventTarget, but doesn't work in IE11\n            containerOrSettings === document ||\n                containerOrSettings instanceof Element) {\n                containerEl = containerOrSettings;\n                settings = settings || {};\n            }\n            else {\n                settings = (containerOrSettings || {});\n            }\n            var dragging = this.dragging = new InferredElementDragging(containerEl);\n            if (typeof settings.itemSelector === 'string') {\n                dragging.pointer.selector = settings.itemSelector;\n            }\n            else if (containerEl === document) {\n                dragging.pointer.selector = '[data-event]';\n            }\n            if (typeof settings.mirrorSelector === 'string') {\n                dragging.mirrorSelector = settings.mirrorSelector;\n            }\n            new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n        }\n        ThirdPartyDraggable.prototype.destroy = function () {\n            this.dragging.destroy();\n        };\n        return ThirdPartyDraggable;\n    }());\n\n    var interactionPlugin = createPlugin({\n        componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n        calendarInteractions: [UnselectAuto],\n        elementDraggingImpl: FeaturefulElementDragging,\n        optionRefiners: OPTION_REFINERS,\n        listenerRefiners: LISTENER_REFINERS,\n    });\n\n    /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n    ----------------------------------------------------------------------------------------------------------------------*/\n    // It is a manager for a Table subcomponent, which does most of the heavy lifting.\n    // It is responsible for managing width/height.\n    var TableView = /** @class */ (function (_super) {\n        __extends(TableView, _super);\n        function TableView() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.headerElRef = createRef();\n            return _this;\n        }\n        TableView.prototype.renderSimpleLayout = function (headerRowContent, bodyContent) {\n            var _a = this, props = _a.props, context = _a.context;\n            var sections = [];\n            var stickyHeaderDates = getStickyHeaderDates(context.options);\n            if (headerRowContent) {\n                sections.push({\n                    type: 'header',\n                    key: 'header',\n                    isSticky: stickyHeaderDates,\n                    chunk: {\n                        elRef: this.headerElRef,\n                        tableClassName: 'fc-col-header',\n                        rowContent: headerRowContent,\n                    },\n                });\n            }\n            sections.push({\n                type: 'body',\n                key: 'body',\n                liquid: true,\n                chunk: { content: bodyContent },\n            });\n            return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },\n                createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); }));\n        };\n        TableView.prototype.renderHScrollLayout = function (headerRowContent, bodyContent, colCnt, dayMinWidth) {\n            var ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n            if (!ScrollGrid) {\n                throw new Error('No ScrollGrid implementation');\n            }\n            var _a = this, props = _a.props, context = _a.context;\n            var stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n            var stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n            var sections = [];\n            if (headerRowContent) {\n                sections.push({\n                    type: 'header',\n                    key: 'header',\n                    isSticky: stickyHeaderDates,\n                    chunks: [{\n                            key: 'main',\n                            elRef: this.headerElRef,\n                            tableClassName: 'fc-col-header',\n                            rowContent: headerRowContent,\n                        }],\n                });\n            }\n            sections.push({\n                type: 'body',\n                key: 'body',\n                liquid: true,\n                chunks: [{\n                        key: 'main',\n                        content: bodyContent,\n                    }],\n            });\n            if (stickyFooterScrollbar) {\n                sections.push({\n                    type: 'footer',\n                    key: 'footer',\n                    isSticky: true,\n                    chunks: [{\n                            key: 'main',\n                            content: renderScrollShim,\n                        }],\n                });\n            }\n            return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },\n                createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); }));\n        };\n        return TableView;\n    }(DateComponent));\n\n    function splitSegsByRow(segs, rowCnt) {\n        var byRow = [];\n        for (var i = 0; i < rowCnt; i += 1) {\n            byRow[i] = [];\n        }\n        for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n            var seg = segs_1[_i];\n            byRow[seg.row].push(seg);\n        }\n        return byRow;\n    }\n    function splitSegsByFirstCol(segs, colCnt) {\n        var byCol = [];\n        for (var i = 0; i < colCnt; i += 1) {\n            byCol[i] = [];\n        }\n        for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n            var seg = segs_2[_i];\n            byCol[seg.firstCol].push(seg);\n        }\n        return byCol;\n    }\n    function splitInteractionByRow(ui, rowCnt) {\n        var byRow = [];\n        if (!ui) {\n            for (var i = 0; i < rowCnt; i += 1) {\n                byRow[i] = null;\n            }\n        }\n        else {\n            for (var i = 0; i < rowCnt; i += 1) {\n                byRow[i] = {\n                    affectedInstances: ui.affectedInstances,\n                    isEvent: ui.isEvent,\n                    segs: [],\n                };\n            }\n            for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {\n                var seg = _a[_i];\n                byRow[seg.row].segs.push(seg);\n            }\n        }\n        return byRow;\n    }\n\n    var TableCellTop = /** @class */ (function (_super) {\n        __extends(TableCellTop, _super);\n        function TableCellTop() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TableCellTop.prototype.render = function () {\n            var props = this.props;\n            var navLinkAttrs = this.context.options.navLinks\n                ? { 'data-navlink': buildNavLinkData(props.date), tabIndex: 0 }\n                : {};\n            return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, function (innerElRef, innerContent) { return ((innerContent || props.forceDayTop) && (createElement(\"div\", { className: \"fc-daygrid-day-top\", ref: innerElRef },\n                createElement(\"a\", __assign({ className: \"fc-daygrid-day-number\" }, navLinkAttrs), innerContent || createElement(Fragment, null, \"\\u00A0\"))))); }));\n        };\n        return TableCellTop;\n    }(BaseComponent));\n    function renderTopInner(props) {\n        return props.dayNumberText;\n    }\n\n    var DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\n    var TableCell = /** @class */ (function (_super) {\n        __extends(TableCell, _super);\n        function TableCell() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.handleRootEl = function (el) {\n                _this.rootEl = el;\n                setRef(_this.props.elRef, el);\n            };\n            _this.handleMoreLinkClick = function (ev) {\n                var props = _this.props;\n                if (props.onMoreClick) {\n                    var allSegs = props.segsByEachCol;\n                    var hiddenSegs = allSegs.filter(function (seg) { return props.segIsHidden[seg.eventRange.instance.instanceId]; });\n                    props.onMoreClick({\n                        date: props.date,\n                        allSegs: allSegs,\n                        hiddenSegs: hiddenSegs,\n                        moreCnt: props.moreCnt,\n                        dayEl: _this.rootEl,\n                        ev: ev,\n                    });\n                }\n            };\n            return _this;\n        }\n        TableCell.prototype.render = function () {\n            var _this = this;\n            var _a = this.context, options = _a.options, viewApi = _a.viewApi;\n            var props = this.props;\n            var date = props.date, dateProfile = props.dateProfile;\n            var hookProps = {\n                num: props.moreCnt,\n                text: props.buildMoreLinkText(props.moreCnt),\n                view: viewApi,\n            };\n            var navLinkAttrs = options.navLinks\n                ? { 'data-navlink': buildNavLinkData(date, 'week'), tabIndex: 0 }\n                : {};\n            return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (createElement(\"td\", __assign({ ref: dayElRef, className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs),\n                createElement(\"div\", { className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", ref: props.innerElRef /* different from hook system! RENAME */ },\n                    props.showWeekNumber && (createElement(WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (createElement(\"a\", __assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),\n                    !isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),\n                    createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef, style: { paddingBottom: props.fgPaddingBottom } },\n                        props.fgContent,\n                        Boolean(props.moreCnt) && (createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n                            createElement(RenderHook, { hookProps: hookProps, classNames: options.moreLinkClassNames, content: options.moreLinkContent, defaultContent: renderMoreLinkInner, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"a\", { ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), onClick: _this.handleMoreLinkClick }, innerContent)); })))),\n                    createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))); }));\n        };\n        return TableCell;\n    }(DateComponent));\n    TableCell.addPropsEquality({\n        onMoreClick: true,\n    });\n    function renderMoreLinkInner(props) {\n        return props.text;\n    }\n\n    var DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n        hour: 'numeric',\n        minute: '2-digit',\n        omitZeroMinute: true,\n        meridiem: 'narrow',\n    });\n    function hasListItemDisplay(seg) {\n        var display = seg.eventRange.ui.display;\n        return display === 'list-item' || (display === 'auto' &&\n            !seg.eventRange.def.allDay &&\n            seg.firstCol === seg.lastCol && // can't be multi-day\n            seg.isStart && // \"\n            seg.isEnd // \"\n        );\n    }\n\n    var TableListItemEvent = /** @class */ (function (_super) {\n        __extends(TableListItemEvent, _super);\n        function TableListItemEvent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TableListItemEvent.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n            var timeText = buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n            return (createElement(EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent$2, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent) { return ( // we don't use styles!\n            createElement(\"a\", __assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs$1(props.seg)), innerContent)); }));\n        };\n        return TableListItemEvent;\n    }(BaseComponent));\n    function renderInnerContent$2(innerProps) {\n        return (createElement(Fragment, null,\n            createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: innerProps.borderColor || innerProps.backgroundColor } }),\n            innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n            createElement(\"div\", { className: \"fc-event-title\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n    }\n    function getSegAnchorAttrs$1(seg) {\n        var url = seg.eventRange.def.url;\n        return url ? { href: url } : {};\n    }\n\n    var TableBlockEvent = /** @class */ (function (_super) {\n        __extends(TableBlockEvent, _super);\n        function TableBlockEvent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TableBlockEvent.prototype.render = function () {\n            var props = this.props;\n            return (createElement(StandardEvent, __assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n        };\n        return TableBlockEvent;\n    }(BaseComponent));\n\n    function computeFgSegPlacement(// for one row. TODO: print mode?\n    cellModels, segs, dayMaxEvents, dayMaxEventRows, eventHeights, maxContentHeight, colCnt, eventOrderSpecs) {\n        var colPlacements = []; // if event spans multiple cols, its present in each col\n        var moreCnts = []; // by-col\n        var segIsHidden = {};\n        var segTops = {}; // always populated for each seg\n        var segMarginTops = {}; // simetimes populated for each seg\n        var moreTops = {};\n        var paddingBottoms = {}; // for each cell's inner-wrapper div\n        for (var i = 0; i < colCnt; i += 1) {\n            colPlacements.push([]);\n            moreCnts.push(0);\n        }\n        segs = sortEventSegs(segs, eventOrderSpecs);\n        for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n            var seg = segs_1[_i];\n            var instanceId = seg.eventRange.instance.instanceId;\n            var eventHeight = eventHeights[instanceId + ':' + seg.firstCol];\n            placeSeg(seg, eventHeight || 0); // will keep colPlacements sorted by top\n        }\n        if (dayMaxEvents === true || dayMaxEventRows === true) {\n            limitByMaxHeight(moreCnts, segIsHidden, colPlacements, maxContentHeight); // populates moreCnts/segIsHidden\n        }\n        else if (typeof dayMaxEvents === 'number') {\n            limitByMaxEvents(moreCnts, segIsHidden, colPlacements, dayMaxEvents); // populates moreCnts/segIsHidden\n        }\n        else if (typeof dayMaxEventRows === 'number') {\n            limitByMaxRows(moreCnts, segIsHidden, colPlacements, dayMaxEventRows); // populates moreCnts/segIsHidden\n        }\n        // computes segTops/segMarginTops/moreTops/paddingBottoms\n        for (var col = 0; col < colCnt; col += 1) {\n            var placements = colPlacements[col];\n            var currentNonAbsBottom = 0;\n            var currentAbsHeight = 0;\n            for (var _a = 0, placements_1 = placements; _a < placements_1.length; _a++) {\n                var placement = placements_1[_a];\n                var seg = placement.seg;\n                if (!segIsHidden[seg.eventRange.instance.instanceId]) {\n                    segTops[seg.eventRange.instance.instanceId] = placement.top; // from top of container\n                    if (seg.firstCol === seg.lastCol && seg.isStart && seg.isEnd) { // TODO: simpler way? NOT DRY\n                        segMarginTops[seg.eventRange.instance.instanceId] =\n                            placement.top - currentNonAbsBottom; // from previous seg bottom\n                        currentAbsHeight = 0;\n                        currentNonAbsBottom = placement.bottom;\n                    }\n                    else { // multi-col event, abs positioned\n                        currentAbsHeight = placement.bottom - currentNonAbsBottom;\n                    }\n                }\n            }\n            if (currentAbsHeight) {\n                if (moreCnts[col]) {\n                    moreTops[col] = currentAbsHeight;\n                }\n                else {\n                    paddingBottoms[col] = currentAbsHeight;\n                }\n            }\n        }\n        function placeSeg(seg, segHeight) {\n            if (!tryPlaceSegAt(seg, segHeight, 0)) {\n                for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {\n                    for (var _i = 0, _a = colPlacements[col]; _i < _a.length; _i++) { // will repeat multi-day segs!!!!!!! bad!!!!!!\n                        var placement = _a[_i];\n                        if (tryPlaceSegAt(seg, segHeight, placement.bottom)) {\n                            return;\n                        }\n                    }\n                }\n            }\n        }\n        function tryPlaceSegAt(seg, segHeight, top) {\n            if (canPlaceSegAt(seg, segHeight, top)) {\n                for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {\n                    var placements = colPlacements[col];\n                    var insertionIndex = 0;\n                    while (insertionIndex < placements.length &&\n                        top >= placements[insertionIndex].top) {\n                        insertionIndex += 1;\n                    }\n                    placements.splice(insertionIndex, 0, {\n                        seg: seg,\n                        top: top,\n                        bottom: top + segHeight,\n                    });\n                }\n                return true;\n            }\n            return false;\n        }\n        function canPlaceSegAt(seg, segHeight, top) {\n            for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {\n                for (var _i = 0, _a = colPlacements[col]; _i < _a.length; _i++) {\n                    var placement = _a[_i];\n                    if (top < placement.bottom && top + segHeight > placement.top) { // collide?\n                        return false;\n                    }\n                }\n            }\n            return true;\n        }\n        // what does this do!?\n        for (var instanceIdAndFirstCol in eventHeights) {\n            if (!eventHeights[instanceIdAndFirstCol]) {\n                segIsHidden[instanceIdAndFirstCol.split(':')[0]] = true;\n            }\n        }\n        var segsByFirstCol = colPlacements.map(extractFirstColSegs); // operates on the sorted cols\n        var segsByEachCol = colPlacements.map(function (placements, col) {\n            var segsForCols = extractAllColSegs(placements);\n            segsForCols = resliceDaySegs(segsForCols, cellModels[col].date, col);\n            return segsForCols;\n        });\n        return {\n            segsByFirstCol: segsByFirstCol,\n            segsByEachCol: segsByEachCol,\n            segIsHidden: segIsHidden,\n            segTops: segTops,\n            segMarginTops: segMarginTops,\n            moreCnts: moreCnts,\n            moreTops: moreTops,\n            paddingBottoms: paddingBottoms,\n        };\n    }\n    function extractFirstColSegs(oneColPlacements, col) {\n        var segs = [];\n        for (var _i = 0, oneColPlacements_1 = oneColPlacements; _i < oneColPlacements_1.length; _i++) {\n            var placement = oneColPlacements_1[_i];\n            if (placement.seg.firstCol === col) {\n                segs.push(placement.seg);\n            }\n        }\n        return segs;\n    }\n    function extractAllColSegs(oneColPlacements) {\n        var segs = [];\n        for (var _i = 0, oneColPlacements_2 = oneColPlacements; _i < oneColPlacements_2.length; _i++) {\n            var placement = oneColPlacements_2[_i];\n            segs.push(placement.seg);\n        }\n        return segs;\n    }\n    function limitByMaxHeight(hiddenCnts, segIsHidden, colPlacements, maxContentHeight) {\n        limitEvents(hiddenCnts, segIsHidden, colPlacements, true, function (placement) { return placement.bottom <= maxContentHeight; });\n    }\n    function limitByMaxEvents(hiddenCnts, segIsHidden, colPlacements, dayMaxEvents) {\n        limitEvents(hiddenCnts, segIsHidden, colPlacements, false, function (placement, levelIndex) { return levelIndex < dayMaxEvents; });\n    }\n    function limitByMaxRows(hiddenCnts, segIsHidden, colPlacements, dayMaxEventRows) {\n        limitEvents(hiddenCnts, segIsHidden, colPlacements, true, function (placement, levelIndex) { return levelIndex < dayMaxEventRows; });\n    }\n    /*\n    populates the given hiddenCnts/segIsHidden, which are supplied empty.\n    TODO: return them instead\n    */\n    function limitEvents(hiddenCnts, segIsHidden, colPlacements, _moreLinkConsumesLevel, isPlacementInBounds) {\n        var colCnt = hiddenCnts.length;\n        var segIsVisible = {}; // TODO: instead, use segIsHidden with true/false?\n        var visibleColPlacements = []; // will mirror colPlacements\n        for (var col = 0; col < colCnt; col += 1) {\n            visibleColPlacements.push([]);\n        }\n        for (var col = 0; col < colCnt; col += 1) {\n            var placements = colPlacements[col];\n            var level = 0;\n            for (var _i = 0, placements_2 = placements; _i < placements_2.length; _i++) {\n                var placement = placements_2[_i];\n                if (isPlacementInBounds(placement, level)) {\n                    recordVisible(placement);\n                }\n                else {\n                    recordHidden(placement, level, _moreLinkConsumesLevel);\n                }\n                // only considered a level if the seg had height\n                if (placement.top !== placement.bottom) {\n                    level += 1;\n                }\n            }\n        }\n        function recordVisible(placement) {\n            var seg = placement.seg;\n            var instanceId = seg.eventRange.instance.instanceId;\n            if (!segIsVisible[instanceId]) {\n                segIsVisible[instanceId] = true;\n                for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {\n                    var destPlacements = visibleColPlacements[col];\n                    var newPosition = 0;\n                    // insert while keeping top sorted in each column\n                    while (newPosition < destPlacements.length &&\n                        placement.top >= destPlacements[newPosition].top) {\n                        newPosition += 1;\n                    }\n                    destPlacements.splice(newPosition, 0, placement);\n                }\n            }\n        }\n        function recordHidden(placement, currentLevel, moreLinkConsumesLevel) {\n            var seg = placement.seg;\n            var instanceId = seg.eventRange.instance.instanceId;\n            if (!segIsHidden[instanceId]) {\n                segIsHidden[instanceId] = true;\n                for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {\n                    hiddenCnts[col] += 1;\n                    var hiddenCnt = hiddenCnts[col];\n                    if (moreLinkConsumesLevel && hiddenCnt === 1 && currentLevel > 0) {\n                        var doomedLevel = currentLevel - 1;\n                        while (visibleColPlacements[col].length > doomedLevel) {\n                            recordHidden(visibleColPlacements[col].pop(), // removes\n                            visibleColPlacements[col].length, // will execute after the pop. will be the index of the removed placement\n                            false);\n                        }\n                    }\n                }\n            }\n        }\n    }\n    // Given the events within an array of segment objects, reslice them to be in a single day\n    function resliceDaySegs(segs, dayDate, colIndex) {\n        var dayStart = dayDate;\n        var dayEnd = addDays(dayStart, 1);\n        var dayRange = { start: dayStart, end: dayEnd };\n        var newSegs = [];\n        for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n            var seg = segs_2[_i];\n            var eventRange = seg.eventRange;\n            var origRange = eventRange.range;\n            var slicedRange = intersectRanges(origRange, dayRange);\n            if (slicedRange) {\n                newSegs.push(__assign(__assign({}, seg), { firstCol: colIndex, lastCol: colIndex, eventRange: {\n                        def: eventRange.def,\n                        ui: __assign(__assign({}, eventRange.ui), { durationEditable: false }),\n                        instance: eventRange.instance,\n                        range: slicedRange,\n                    }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() }));\n            }\n        }\n        return newSegs;\n    }\n\n    var TableRow = /** @class */ (function (_super) {\n        __extends(TableRow, _super);\n        function TableRow() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.cellElRefs = new RefMap(); // the <td>\n            _this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n            _this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n            _this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n            _this.rootElRef = createRef();\n            _this.state = {\n                framePositions: null,\n                maxContentHeight: null,\n                segHeights: {},\n            };\n            return _this;\n        }\n        TableRow.prototype.render = function () {\n            var _this = this;\n            var _a = this, props = _a.props, state = _a.state, context = _a.context;\n            var colCnt = props.cells.length;\n            var businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n            var bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n            var highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n            var mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n            var _b = computeFgSegPlacement(props.cells, props.fgEventSegs, props.dayMaxEvents, props.dayMaxEventRows, state.segHeights, state.maxContentHeight, colCnt, context.options.eventOrder), paddingBottoms = _b.paddingBottoms, segsByFirstCol = _b.segsByFirstCol, segsByEachCol = _b.segsByEachCol, segIsHidden = _b.segIsHidden, segTops = _b.segTops, segMarginTops = _b.segMarginTops, moreCnts = _b.moreCnts, moreTops = _b.moreTops;\n            var selectedInstanceHash = // TODO: messy way to compute this\n             (props.eventDrag && props.eventDrag.affectedInstances) ||\n                (props.eventResize && props.eventResize.affectedInstances) ||\n                {};\n            return (createElement(\"tr\", { ref: this.rootElRef },\n                props.renderIntro && props.renderIntro(),\n                props.cells.map(function (cell, col) {\n                    var normalFgNodes = _this.renderFgSegs(segsByFirstCol[col], segIsHidden, segTops, segMarginTops, selectedInstanceHash, props.todayRange);\n                    var mirrorFgNodes = _this.renderFgSegs(mirrorSegsByCol[col], {}, segTops, // use same tops as real rendering\n                    {}, {}, props.todayRange, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n                    return (createElement(TableCell, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), innerElRef: _this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, moreCnt: moreCnts[col], buildMoreLinkText: props.buildMoreLinkText, onMoreClick: function (arg) {\n                            props.onMoreClick(__assign(__assign({}, arg), { fromCol: col }));\n                        }, segIsHidden: segIsHidden, moreMarginTop: moreTops[col] /* rename */, segsByEachCol: segsByEachCol[col], fgPaddingBottom: paddingBottoms[col], fgContentElRef: _this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n                        createElement(Fragment, null,\n                            createElement(Fragment, null, normalFgNodes),\n                            createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n                        createElement(Fragment, null,\n                            _this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n                            _this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n                            _this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));\n                })));\n        };\n        TableRow.prototype.componentDidMount = function () {\n            this.updateSizing(true);\n        };\n        TableRow.prototype.componentDidUpdate = function (prevProps, prevState) {\n            var currentProps = this.props;\n            this.updateSizing(!isPropsEqual(prevProps, currentProps));\n        };\n        TableRow.prototype.getHighlightSegs = function () {\n            var props = this.props;\n            if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n                return props.eventDrag.segs;\n            }\n            if (props.eventResize && props.eventResize.segs.length) { // messy check\n                return props.eventResize.segs;\n            }\n            return props.dateSelectionSegs;\n        };\n        TableRow.prototype.getMirrorSegs = function () {\n            var props = this.props;\n            if (props.eventResize && props.eventResize.segs.length) { // messy check\n                return props.eventResize.segs;\n            }\n            return [];\n        };\n        TableRow.prototype.renderFgSegs = function (segs, segIsHidden, // does NOT mean display:hidden\n        segTops, segMarginTops, selectedInstanceHash, todayRange, isDragging, isResizing, isDateSelecting) {\n            var context = this.context;\n            var eventSelection = this.props.eventSelection;\n            var framePositions = this.state.framePositions;\n            var defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n            var nodes = [];\n            if (framePositions) {\n                for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n                    var seg = segs_1[_i];\n                    var instanceId = seg.eventRange.instance.instanceId;\n                    var isMirror = isDragging || isResizing || isDateSelecting;\n                    var isSelected = selectedInstanceHash[instanceId];\n                    var isInvisible = segIsHidden[instanceId] || isSelected;\n                    // TODO: simpler way? NOT DRY\n                    var isAbsolute = segIsHidden[instanceId] || isMirror || seg.firstCol !== seg.lastCol || !seg.isStart || !seg.isEnd;\n                    var marginTop = void 0;\n                    var top_1 = void 0;\n                    var left = void 0;\n                    var right = void 0;\n                    if (isAbsolute) {\n                        top_1 = segTops[instanceId];\n                        if (context.isRtl) {\n                            right = 0;\n                            left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n                        }\n                        else {\n                            left = 0;\n                            right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n                        }\n                    }\n                    else {\n                        marginTop = segMarginTops[instanceId];\n                    }\n                    /*\n                    known bug: events that are force to be list-item but span multiple days still take up space in later columns\n                    */\n                    nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: instanceId, \n                        // in print mode when in mult cols, could collide\n                        ref: isMirror ? null : this.segHarnessRefs.createRef(instanceId + ':' + seg.firstCol), style: {\n                            visibility: isInvisible ? 'hidden' : '',\n                            marginTop: marginTop || '',\n                            top: top_1 || '',\n                            left: left || '',\n                            right: right || '',\n                        } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, __assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, __assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n                }\n            }\n            return nodes;\n        };\n        TableRow.prototype.renderFillSegs = function (segs, fillType) {\n            var isRtl = this.context.isRtl;\n            var todayRange = this.props.todayRange;\n            var framePositions = this.state.framePositions;\n            var nodes = [];\n            if (framePositions) {\n                for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n                    var seg = segs_2[_i];\n                    var leftRightCss = isRtl ? {\n                        right: 0,\n                        left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n                    } : {\n                        left: 0,\n                        right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n                    };\n                    nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n                        createElement(BgEvent, __assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n                        renderFill(fillType)));\n                }\n            }\n            return createElement.apply(void 0, __spreadArrays([Fragment, {}], nodes));\n        };\n        TableRow.prototype.updateSizing = function (isExternalSizingChange) {\n            var _a = this, props = _a.props, frameElRefs = _a.frameElRefs;\n            if (props.clientWidth !== null) { // positioning ready?\n                if (isExternalSizingChange) {\n                    var frameEls = props.cells.map(function (cell) { return frameElRefs.currentMap[cell.key]; });\n                    if (frameEls.length) {\n                        var originEl = this.rootElRef.current;\n                        this.setState({\n                            framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n                            false),\n                        });\n                    }\n                }\n                var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n                this.setState({\n                    segHeights: this.computeSegHeights(),\n                    maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n                });\n            }\n        };\n        TableRow.prototype.computeSegHeights = function () {\n            return mapHash(this.segHarnessRefs.currentMap, function (eventHarnessEl) { return (eventHarnessEl.getBoundingClientRect().height); });\n        };\n        TableRow.prototype.computeMaxContentHeight = function () {\n            var firstKey = this.props.cells[0].key;\n            var cellEl = this.cellElRefs.currentMap[firstKey];\n            var fcContainerEl = this.fgElRefs.currentMap[firstKey];\n            return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n        };\n        TableRow.prototype.getCellEls = function () {\n            var elMap = this.cellElRefs.currentMap;\n            return this.props.cells.map(function (cell) { return elMap[cell.key]; });\n        };\n        return TableRow;\n    }(DateComponent));\n    TableRow.addPropsEquality({\n        onMoreClick: true,\n    });\n    TableRow.addStateEquality({\n        segHeights: isPropsEqual,\n    });\n\n    var PADDING_FROM_VIEWPORT = 10;\n    var SCROLL_DEBOUNCE = 10;\n    var Popover = /** @class */ (function (_super) {\n        __extends(Popover, _super);\n        function Popover() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.repositioner = new DelayedRunner(_this.updateSize.bind(_this));\n            _this.handleRootEl = function (el) {\n                _this.rootEl = el;\n                if (_this.props.elRef) {\n                    setRef(_this.props.elRef, el);\n                }\n            };\n            // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n            _this.handleDocumentMousedown = function (ev) {\n                var onClose = _this.props.onClose;\n                // only hide the popover if the click happened outside the popover\n                if (onClose && !_this.rootEl.contains(ev.target)) {\n                    onClose();\n                }\n            };\n            _this.handleDocumentScroll = function () {\n                _this.repositioner.request(SCROLL_DEBOUNCE);\n            };\n            _this.handleCloseClick = function () {\n                var onClose = _this.props.onClose;\n                if (onClose) {\n                    onClose();\n                }\n            };\n            return _this;\n        }\n        Popover.prototype.render = function () {\n            var theme = this.context.theme;\n            var props = this.props;\n            var classNames = [\n                'fc-popover',\n                theme.getClass('popover'),\n            ].concat(props.extraClassNames || []);\n            return (createElement(\"div\", __assign({ className: classNames.join(' ') }, props.extraAttrs, { ref: this.handleRootEl }),\n                createElement(\"div\", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },\n                    createElement(\"span\", { className: \"fc-popover-title\" }, props.title),\n                    createElement(\"span\", { className: 'fc-popover-close ' + theme.getIconClass('close'), onClick: this.handleCloseClick })),\n                createElement(\"div\", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)));\n        };\n        Popover.prototype.componentDidMount = function () {\n            document.addEventListener('mousedown', this.handleDocumentMousedown);\n            document.addEventListener('scroll', this.handleDocumentScroll);\n            this.updateSize();\n        };\n        Popover.prototype.componentWillUnmount = function () {\n            document.removeEventListener('mousedown', this.handleDocumentMousedown);\n            document.removeEventListener('scroll', this.handleDocumentScroll);\n        };\n        // TODO: adjust on window resize\n        /*\n        NOTE: the popover is position:fixed, so coordinates are relative to the viewport\n        NOTE: the PARENT calls this as well, on window resize. we would have wanted to use the repositioner,\n              but need to ensure that all other components have updated size first (for alignmentEl)\n        */\n        Popover.prototype.updateSize = function () {\n            var _a = this.props, alignmentEl = _a.alignmentEl, topAlignmentEl = _a.topAlignmentEl;\n            var rootEl = this.rootEl;\n            if (!rootEl) {\n                return; // not sure why this was null, but we shouldn't let external components call updateSize() anyway\n            }\n            var dims = rootEl.getBoundingClientRect(); // only used for width,height\n            var alignment = alignmentEl.getBoundingClientRect();\n            var top = topAlignmentEl ? topAlignmentEl.getBoundingClientRect().top : alignment.top;\n            top = Math.min(top, window.innerHeight - dims.height - PADDING_FROM_VIEWPORT);\n            top = Math.max(top, PADDING_FROM_VIEWPORT);\n            var left;\n            if (this.context.isRtl) {\n                left = alignment.right - dims.width;\n            }\n            else {\n                left = alignment.left;\n            }\n            left = Math.min(left, window.innerWidth - dims.width - PADDING_FROM_VIEWPORT);\n            left = Math.max(left, PADDING_FROM_VIEWPORT);\n            applyStyle(rootEl, { top: top, left: left });\n        };\n        return Popover;\n    }(BaseComponent));\n\n    var MorePopover = /** @class */ (function (_super) {\n        __extends(MorePopover, _super);\n        function MorePopover() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.rootElRef = createRef();\n            return _this;\n        }\n        MorePopover.prototype.render = function () {\n            var _a = this.context, options = _a.options, dateEnv = _a.dateEnv;\n            var props = this.props;\n            var date = props.date, hiddenInstances = props.hiddenInstances, todayRange = props.todayRange, dateProfile = props.dateProfile, selectedInstanceId = props.selectedInstanceId;\n            var title = dateEnv.format(date, options.dayPopoverFormat);\n            return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: todayRange, elRef: this.rootElRef }, function (rootElRef, dayClassNames, dataAttrs) { return (createElement(Popover, { elRef: rootElRef, title: title, extraClassNames: ['fc-more-popover'].concat(dayClassNames), extraAttrs: dataAttrs, onClose: props.onCloseClick, alignmentEl: props.alignmentEl, topAlignmentEl: props.topAlignmentEl },\n                createElement(DayCellContent, { date: date, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&\n                    createElement(\"div\", { className: \"fc-more-popover-misc\", ref: innerElRef }, innerContent)); }),\n                props.segs.map(function (seg) {\n                    var instanceId = seg.eventRange.instance.instanceId;\n                    return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n                            visibility: hiddenInstances[instanceId] ? 'hidden' : '',\n                        } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, __assign({ seg: seg, isDragging: false, isSelected: instanceId === selectedInstanceId, defaultDisplayEventEnd: false }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === selectedInstanceId, defaultDisplayEventEnd: false }, getSegMeta(seg, todayRange))))));\n                }))); }));\n        };\n        MorePopover.prototype.positionToHit = function (positionLeft, positionTop, originEl) {\n            var rootEl = this.rootElRef.current;\n            if (!originEl || !rootEl) { // why?\n                return null;\n            }\n            var originRect = originEl.getBoundingClientRect();\n            var elRect = rootEl.getBoundingClientRect();\n            var newOriginLeft = elRect.left - originRect.left;\n            var newOriginTop = elRect.top - originRect.top;\n            var localLeft = positionLeft - newOriginLeft;\n            var localTop = positionTop - newOriginTop;\n            var date = this.props.date;\n            if ( // ugly way to detect intersection\n            localLeft >= 0 && localLeft < elRect.width &&\n                localTop >= 0 && localTop < elRect.height) {\n                return {\n                    dateSpan: {\n                        allDay: true,\n                        range: { start: date, end: addDays(date, 1) },\n                    },\n                    dayEl: rootEl,\n                    relativeRect: {\n                        left: newOriginLeft,\n                        top: newOriginTop,\n                        right: elRect.width,\n                        bottom: elRect.height,\n                    },\n                    layer: 1,\n                };\n            }\n            return null;\n        };\n        return MorePopover;\n    }(DateComponent));\n\n    var Table = /** @class */ (function (_super) {\n        __extends(Table, _super);\n        function Table() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.splitBusinessHourSegs = memoize(splitSegsByRow);\n            _this.splitBgEventSegs = memoize(splitSegsByRow);\n            _this.splitFgEventSegs = memoize(splitSegsByRow);\n            _this.splitDateSelectionSegs = memoize(splitSegsByRow);\n            _this.splitEventDrag = memoize(splitInteractionByRow);\n            _this.splitEventResize = memoize(splitInteractionByRow);\n            _this.buildBuildMoreLinkText = memoize(buildBuildMoreLinkText);\n            _this.morePopoverRef = createRef();\n            _this.rowRefs = new RefMap();\n            _this.state = {\n                morePopoverState: null,\n            };\n            _this.handleRootEl = function (rootEl) {\n                _this.rootEl = rootEl;\n                setRef(_this.props.elRef, rootEl);\n            };\n            // TODO: bad names \"more link click\" versus \"more click\"\n            _this.handleMoreLinkClick = function (arg) {\n                var context = _this.context;\n                var dateEnv = context.dateEnv;\n                var clickOption = context.options.moreLinkClick;\n                function segForPublic(seg) {\n                    var _a = seg.eventRange, def = _a.def, instance = _a.instance, range = _a.range;\n                    return {\n                        event: new EventApi(context, def, instance),\n                        start: dateEnv.toDate(range.start),\n                        end: dateEnv.toDate(range.end),\n                        isStart: seg.isStart,\n                        isEnd: seg.isEnd,\n                    };\n                }\n                if (typeof clickOption === 'function') {\n                    clickOption = clickOption({\n                        date: dateEnv.toDate(arg.date),\n                        allDay: true,\n                        allSegs: arg.allSegs.map(segForPublic),\n                        hiddenSegs: arg.hiddenSegs.map(segForPublic),\n                        jsEvent: arg.ev,\n                        view: context.viewApi,\n                    }); // hack to handle void\n                }\n                if (!clickOption || clickOption === 'popover') {\n                    _this.setState({\n                        morePopoverState: __assign(__assign({}, arg), { currentFgEventSegs: _this.props.fgEventSegs, fromRow: arg.fromRow, fromCol: arg.fromCol }),\n                    });\n                }\n                else if (typeof clickOption === 'string') { // a view name\n                    context.calendarApi.zoomTo(arg.date, clickOption);\n                }\n            };\n            _this.handleMorePopoverClose = function () {\n                _this.setState({\n                    morePopoverState: null,\n                });\n            };\n            return _this;\n        }\n        Table.prototype.render = function () {\n            var _this = this;\n            var props = this.props;\n            var dateProfile = props.dateProfile, dayMaxEventRows = props.dayMaxEventRows, dayMaxEvents = props.dayMaxEvents, expandRows = props.expandRows;\n            var morePopoverState = this.state.morePopoverState;\n            var rowCnt = props.cells.length;\n            var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n            var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n            var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n            var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n            var eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n            var eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n            var buildMoreLinkText = this.buildBuildMoreLinkText(this.context.options.moreLinkText);\n            var limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n            // if rows can't expand to fill fixed height, can't do balanced-height event limit\n            // TODO: best place to normalize these options?\n            if (limitViaBalanced && !expandRows) {\n                limitViaBalanced = false;\n                dayMaxEventRows = null;\n                dayMaxEvents = null;\n            }\n            var classNames = [\n                'fc-daygrid-body',\n                limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n                expandRows ? '' : 'fc-daygrid-body-natural',\n            ];\n            return (createElement(\"div\", { className: classNames.join(' '), ref: this.handleRootEl, style: {\n                    // these props are important to give this wrapper correct dimensions for interactions\n                    // TODO: if we set it here, can we avoid giving to inner tables?\n                    width: props.clientWidth,\n                    minWidth: props.tableMinWidth,\n                } },\n                createElement(NowTimer, { unit: \"day\" }, function (nowDate, todayRange) { return (createElement(Fragment, null,\n                    createElement(\"table\", { className: \"fc-scrollgrid-sync-table\", style: {\n                            width: props.clientWidth,\n                            minWidth: props.tableMinWidth,\n                            height: expandRows ? props.clientHeight : '',\n                        } },\n                        props.colGroupNode,\n                        createElement(\"tbody\", null, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length\n                                ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n                                : row // in case there are no cells (like when resource view is loading)\n                            , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, buildMoreLinkText: buildMoreLinkText, onMoreClick: function (arg) {\n                                _this.handleMoreLinkClick(__assign(__assign({}, arg), { fromRow: row }));\n                            } })); }))),\n                    (!props.forPrint && morePopoverState && morePopoverState.currentFgEventSegs === props.fgEventSegs) && (createElement(MorePopover, { ref: _this.morePopoverRef, date: morePopoverState.date, dateProfile: dateProfile, segs: morePopoverState.allSegs, alignmentEl: morePopoverState.dayEl, topAlignmentEl: rowCnt === 1 ? props.headerAlignElRef.current : null, onCloseClick: _this.handleMorePopoverClose, selectedInstanceId: props.eventSelection, hiddenInstances: // yuck\n                        (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n                            (props.eventResize ? props.eventResize.affectedInstances : null) ||\n                            {}, todayRange: todayRange })))); })));\n        };\n        // Hit System\n        // ----------------------------------------------------------------------------------------------------\n        Table.prototype.prepareHits = function () {\n            this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map(function (rowObj) { return rowObj.getCellEls()[0]; }), // first cell el in each row. TODO: not optimal\n            false, true);\n            this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n            true, // horizontal\n            false);\n        };\n        Table.prototype.positionToHit = function (leftPosition, topPosition) {\n            var morePopover = this.morePopoverRef.current;\n            var morePopoverHit = morePopover ? morePopover.positionToHit(leftPosition, topPosition, this.rootEl) : null;\n            var morePopoverState = this.state.morePopoverState;\n            if (morePopoverHit) {\n                return __assign({ row: morePopoverState.fromRow, col: morePopoverState.fromCol }, morePopoverHit);\n            }\n            var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;\n            var col = colPositions.leftToIndex(leftPosition);\n            var row = rowPositions.topToIndex(topPosition);\n            if (row != null && col != null) {\n                return {\n                    row: row,\n                    col: col,\n                    dateSpan: {\n                        range: this.getCellRange(row, col),\n                        allDay: true,\n                    },\n                    dayEl: this.getCellEl(row, col),\n                    relativeRect: {\n                        left: colPositions.lefts[col],\n                        right: colPositions.rights[col],\n                        top: rowPositions.tops[row],\n                        bottom: rowPositions.bottoms[row],\n                    },\n                };\n            }\n            return null;\n        };\n        Table.prototype.getCellEl = function (row, col) {\n            return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n        };\n        Table.prototype.getCellRange = function (row, col) {\n            var start = this.props.cells[row][col].date;\n            var end = addDays(start, 1);\n            return { start: start, end: end };\n        };\n        return Table;\n    }(DateComponent));\n    function buildBuildMoreLinkText(moreLinkTextInput) {\n        if (typeof moreLinkTextInput === 'function') {\n            return moreLinkTextInput;\n        }\n        return function (num) { return \"+\" + num + \" \" + moreLinkTextInput; };\n    }\n    function isSegAllDay(seg) {\n        return seg.eventRange.def.allDay;\n    }\n\n    var DayTableSlicer = /** @class */ (function (_super) {\n        __extends(DayTableSlicer, _super);\n        function DayTableSlicer() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.forceDayIfListItem = true;\n            return _this;\n        }\n        DayTableSlicer.prototype.sliceRange = function (dateRange, dayTableModel) {\n            return dayTableModel.sliceRange(dateRange);\n        };\n        return DayTableSlicer;\n    }(Slicer));\n\n    var DayTable = /** @class */ (function (_super) {\n        __extends(DayTable, _super);\n        function DayTable() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.slicer = new DayTableSlicer();\n            _this.tableRef = createRef();\n            _this.handleRootEl = function (rootEl) {\n                if (rootEl) {\n                    _this.context.registerInteractiveComponent(_this, { el: rootEl });\n                }\n                else {\n                    _this.context.unregisterInteractiveComponent(_this);\n                }\n            };\n            return _this;\n        }\n        DayTable.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            return (createElement(Table, __assign({ ref: this.tableRef, elRef: this.handleRootEl }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n        };\n        DayTable.prototype.prepareHits = function () {\n            this.tableRef.current.prepareHits();\n        };\n        DayTable.prototype.queryHit = function (positionLeft, positionTop) {\n            var rawHit = this.tableRef.current.positionToHit(positionLeft, positionTop);\n            if (rawHit) {\n                return {\n                    component: this,\n                    dateSpan: rawHit.dateSpan,\n                    dayEl: rawHit.dayEl,\n                    rect: {\n                        left: rawHit.relativeRect.left,\n                        right: rawHit.relativeRect.right,\n                        top: rawHit.relativeRect.top,\n                        bottom: rawHit.relativeRect.bottom,\n                    },\n                    layer: 0,\n                };\n            }\n            return null;\n        };\n        return DayTable;\n    }(DateComponent));\n\n    var DayTableView = /** @class */ (function (_super) {\n        __extends(DayTableView, _super);\n        function DayTableView() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.buildDayTableModel = memoize(buildDayTableModel);\n            _this.headerRef = createRef();\n            _this.tableRef = createRef();\n            return _this;\n        }\n        DayTableView.prototype.render = function () {\n            var _this = this;\n            var _a = this.context, options = _a.options, dateProfileGenerator = _a.dateProfileGenerator;\n            var props = this.props;\n            var dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n            var headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n            var bodyContent = function (contentArg) { return (createElement(DayTable, { ref: _this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); };\n            return options.dayMinWidth\n                ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n                : this.renderSimpleLayout(headerContent, bodyContent);\n        };\n        return DayTableView;\n    }(TableView));\n    function buildDayTableModel(dateProfile, dateProfileGenerator) {\n        var daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n        return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n    }\n\n    var TableDateProfileGenerator = /** @class */ (function (_super) {\n        __extends(TableDateProfileGenerator, _super);\n        function TableDateProfileGenerator() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        // Computes the date range that will be rendered.\n        TableDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n            var dateEnv = this.props.dateEnv;\n            var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);\n            var start = renderRange.start;\n            var end = renderRange.end;\n            var endOfWeek;\n            // year and month views should be aligned with weeks. this is already done for week\n            if (/^(year|month)$/.test(currentRangeUnit)) {\n                start = dateEnv.startOfWeek(start);\n                // make end-of-week if not already\n                endOfWeek = dateEnv.startOfWeek(end);\n                if (endOfWeek.valueOf() !== end.valueOf()) {\n                    end = addWeeks(endOfWeek, 1);\n                }\n            }\n            // ensure 6 weeks\n            if (this.props.monthMode &&\n                this.props.fixedWeekCount) {\n                var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n                diffWeeks(start, end));\n                end = addWeeks(end, 6 - rowCnt);\n            }\n            return { start: start, end: end };\n        };\n        return TableDateProfileGenerator;\n    }(DateProfileGenerator));\n\n    var OPTION_REFINERS$1 = {\n        moreLinkClick: identity,\n        moreLinkClassNames: identity,\n        moreLinkContent: identity,\n        moreLinkDidMount: identity,\n        moreLinkWillUnmount: identity,\n    };\n\n    var dayGridPlugin = createPlugin({\n        initialView: 'dayGridMonth',\n        optionRefiners: OPTION_REFINERS$1,\n        views: {\n            dayGrid: {\n                component: DayTableView,\n                dateProfileGeneratorClass: TableDateProfileGenerator,\n            },\n            dayGridDay: {\n                type: 'dayGrid',\n                duration: { days: 1 },\n            },\n            dayGridWeek: {\n                type: 'dayGrid',\n                duration: { weeks: 1 },\n            },\n            dayGridMonth: {\n                type: 'dayGrid',\n                duration: { months: 1 },\n                monthMode: true,\n                fixedWeekCount: true,\n            },\n        },\n    });\n\n    var AllDaySplitter = /** @class */ (function (_super) {\n        __extends(AllDaySplitter, _super);\n        function AllDaySplitter() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        AllDaySplitter.prototype.getKeyInfo = function () {\n            return {\n                allDay: {},\n                timed: {},\n            };\n        };\n        AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n            if (dateSpan.allDay) {\n                return ['allDay'];\n            }\n            return ['timed'];\n        };\n        AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {\n            if (!eventDef.allDay) {\n                return ['timed'];\n            }\n            if (hasBgRendering(eventDef)) {\n                return ['timed', 'allDay'];\n            }\n            return ['allDay'];\n        };\n        return AllDaySplitter;\n    }(Splitter));\n\n    var DEFAULT_SLAT_LABEL_FORMAT = createFormatter({\n        hour: 'numeric',\n        minute: '2-digit',\n        omitZeroMinute: true,\n        meridiem: 'short',\n    });\n    function TimeColsAxisCell(props) {\n        var classNames = [\n            'fc-timegrid-slot',\n            'fc-timegrid-slot-label',\n            props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',\n        ];\n        return (createElement(ViewContextType.Consumer, null, function (context) {\n            if (!props.isLabeled) {\n                return (createElement(\"td\", { className: classNames.join(' '), \"data-time\": props.isoTimeStr }));\n            }\n            var dateEnv = context.dateEnv, options = context.options, viewApi = context.viewApi;\n            var labelFormat = // TODO: fully pre-parse\n             options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT :\n                Array.isArray(options.slotLabelFormat) ? createFormatter(options.slotLabelFormat[0]) :\n                    createFormatter(options.slotLabelFormat);\n            var hookProps = {\n                level: 0,\n                time: props.time,\n                date: dateEnv.toDate(props.date),\n                view: viewApi,\n                text: dateEnv.format(props.date, labelFormat),\n            };\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.slotLabelClassNames, content: options.slotLabelContent, defaultContent: renderInnerContent$3, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-time\": props.isoTimeStr },\n                createElement(\"div\", { className: \"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame\" },\n                    createElement(\"div\", { className: \"fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion\", ref: innerElRef }, innerContent)))); }));\n        }));\n    }\n    function renderInnerContent$3(props) {\n        return props.text;\n    }\n\n    var TimeBodyAxis = /** @class */ (function (_super) {\n        __extends(TimeBodyAxis, _super);\n        function TimeBodyAxis() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TimeBodyAxis.prototype.render = function () {\n            return this.props.slatMetas.map(function (slatMeta) { return (createElement(\"tr\", { key: slatMeta.key },\n                createElement(TimeColsAxisCell, __assign({}, slatMeta)))); });\n        };\n        return TimeBodyAxis;\n    }(BaseComponent));\n\n    var DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'short' });\n    var AUTO_ALL_DAY_MAX_EVENT_ROWS = 5;\n    var TimeColsView = /** @class */ (function (_super) {\n        __extends(TimeColsView, _super);\n        function TimeColsView() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.allDaySplitter = new AllDaySplitter(); // for use by subclasses\n            _this.headerElRef = createRef();\n            _this.rootElRef = createRef();\n            _this.scrollerElRef = createRef();\n            _this.state = {\n                slatCoords: null,\n            };\n            _this.handleScrollTopRequest = function (scrollTop) {\n                var scrollerEl = _this.scrollerElRef.current;\n                if (scrollerEl) { // TODO: not sure how this could ever be null. weirdness with the reducer\n                    scrollerEl.scrollTop = scrollTop;\n                }\n            };\n            /* Header Render Methods\n            ------------------------------------------------------------------------------------------------------------------*/\n            _this.renderHeadAxis = function (rowKey, frameHeight) {\n                if (frameHeight === void 0) { frameHeight = ''; }\n                var options = _this.context.options;\n                var dateProfile = _this.props.dateProfile;\n                var range = dateProfile.renderRange;\n                var dayCnt = diffDays(range.start, range.end);\n                var navLinkAttrs = (options.navLinks && dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)\n                    ? { 'data-navlink': buildNavLinkData(range.start, 'week'), tabIndex: 0 }\n                    : {};\n                if (options.weekNumbers && rowKey === 'day') {\n                    return (createElement(WeekNumberRoot, { date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"th\", { ref: rootElRef, className: [\n                            'fc-timegrid-axis',\n                            'fc-scrollgrid-shrink',\n                        ].concat(classNames).join(' ') },\n                        createElement(\"div\", { className: \"fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid\", style: { height: frameHeight } },\n                            createElement(\"a\", __assign({ ref: innerElRef, className: \"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner\" }, navLinkAttrs), innerContent)))); }));\n                }\n                return (createElement(\"th\", { className: \"fc-timegrid-axis\" },\n                    createElement(\"div\", { className: \"fc-timegrid-axis-frame\", style: { height: frameHeight } })));\n            };\n            /* Table Component Render Methods\n            ------------------------------------------------------------------------------------------------------------------*/\n            // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n            // but DayGrid still needs to have classNames on inner elements in order to measure.\n            _this.renderTableRowAxis = function (rowHeight) {\n                var _a = _this.context, options = _a.options, viewApi = _a.viewApi;\n                var hookProps = {\n                    text: options.allDayText,\n                    view: viewApi,\n                };\n                return (\n                // TODO: make reusable hook. used in list view too\n                createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, className: [\n                        'fc-timegrid-axis',\n                        'fc-scrollgrid-shrink',\n                    ].concat(classNames).join(' ') },\n                    createElement(\"div\", { className: 'fc-timegrid-axis-frame fc-scrollgrid-shrink-frame' + (rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : ''), style: { height: rowHeight } },\n                        createElement(\"span\", { className: \"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner\", ref: innerElRef }, innerContent)))); }));\n            };\n            _this.handleSlatCoords = function (slatCoords) {\n                _this.setState({ slatCoords: slatCoords });\n            };\n            return _this;\n        }\n        // rendering\n        // ----------------------------------------------------------------------------------------------------\n        TimeColsView.prototype.renderSimpleLayout = function (headerRowContent, allDayContent, timeContent) {\n            var _a = this, context = _a.context, props = _a.props;\n            var sections = [];\n            var stickyHeaderDates = getStickyHeaderDates(context.options);\n            if (headerRowContent) {\n                sections.push({\n                    type: 'header',\n                    key: 'header',\n                    isSticky: stickyHeaderDates,\n                    chunk: {\n                        elRef: this.headerElRef,\n                        tableClassName: 'fc-col-header',\n                        rowContent: headerRowContent,\n                    },\n                });\n            }\n            if (allDayContent) {\n                sections.push({\n                    type: 'body',\n                    key: 'all-day',\n                    chunk: { content: allDayContent },\n                });\n                sections.push({\n                    type: 'body',\n                    key: 'all-day-divider',\n                    outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n                    createElement(\"tr\", { className: \"fc-scrollgrid-section\" },\n                        createElement(\"td\", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n                });\n            }\n            sections.push({\n                type: 'body',\n                key: 'body',\n                liquid: true,\n                expandRows: Boolean(context.options.expandRows),\n                chunk: {\n                    scrollerElRef: this.scrollerElRef,\n                    content: timeContent,\n                },\n            });\n            return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.rootElRef }, function (rootElRef, classNames) { return (createElement(\"div\", { className: ['fc-timegrid'].concat(classNames).join(' '), ref: rootElRef },\n                createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, cols: [{ width: 'shrink' }], sections: sections }))); }));\n        };\n        TimeColsView.prototype.renderHScrollLayout = function (headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {\n            var _this = this;\n            var ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n            if (!ScrollGrid) {\n                throw new Error('No ScrollGrid implementation');\n            }\n            var _a = this, context = _a.context, props = _a.props;\n            var stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n            var stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n            var sections = [];\n            if (headerRowContent) {\n                sections.push({\n                    type: 'header',\n                    key: 'header',\n                    isSticky: stickyHeaderDates,\n                    syncRowHeights: true,\n                    chunks: [\n                        {\n                            key: 'axis',\n                            rowContent: function (arg) { return (createElement(\"tr\", null, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },\n                        },\n                        {\n                            key: 'cols',\n                            elRef: this.headerElRef,\n                            tableClassName: 'fc-col-header',\n                            rowContent: headerRowContent,\n                        },\n                    ],\n                });\n            }\n            if (allDayContent) {\n                sections.push({\n                    type: 'body',\n                    key: 'all-day',\n                    syncRowHeights: true,\n                    chunks: [\n                        {\n                            key: 'axis',\n                            rowContent: function (contentArg) { return (createElement(\"tr\", null, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },\n                        },\n                        {\n                            key: 'cols',\n                            content: allDayContent,\n                        },\n                    ],\n                });\n                sections.push({\n                    key: 'all-day-divider',\n                    type: 'body',\n                    outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n                    createElement(\"tr\", { className: \"fc-scrollgrid-section\" },\n                        createElement(\"td\", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n                });\n            }\n            var isNowIndicator = context.options.nowIndicator;\n            sections.push({\n                type: 'body',\n                key: 'body',\n                liquid: true,\n                expandRows: Boolean(context.options.expandRows),\n                chunks: [\n                    {\n                        key: 'axis',\n                        content: function (arg) { return (\n                        // TODO: make this now-indicator arrow more DRY with TimeColsContent\n                        createElement(\"div\", { className: \"fc-timegrid-axis-chunk\" },\n                            createElement(\"table\", { style: { height: arg.expandRows ? arg.clientHeight : '' } },\n                                arg.tableColGroupNode,\n                                createElement(\"tbody\", null,\n                                    createElement(TimeBodyAxis, { slatMetas: slatMetas }))),\n                            createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" },\n                                createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, function (nowDate) {\n                                    var nowIndicatorTop = isNowIndicator &&\n                                        slatCoords &&\n                                        slatCoords.safeComputeTop(nowDate); // might return void\n                                    if (typeof nowIndicatorTop === 'number') {\n                                        return (createElement(NowIndicatorRoot, { isAxis: true, date: nowDate }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-arrow'].concat(classNames).join(' '), style: { top: nowIndicatorTop } }, innerContent)); }));\n                                    }\n                                    return null;\n                                })))); },\n                    },\n                    {\n                        key: 'cols',\n                        scrollerElRef: this.scrollerElRef,\n                        content: timeContent,\n                    },\n                ],\n            });\n            if (stickyFooterScrollbar) {\n                sections.push({\n                    key: 'footer',\n                    type: 'footer',\n                    isSticky: true,\n                    chunks: [\n                        {\n                            key: 'axis',\n                            content: renderScrollShim,\n                        },\n                        {\n                            key: 'cols',\n                            content: renderScrollShim,\n                        },\n                    ],\n                });\n            }\n            return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.rootElRef }, function (rootElRef, classNames) { return (createElement(\"div\", { className: ['fc-timegrid'].concat(classNames).join(' '), ref: rootElRef },\n                createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, colGroups: [\n                        { width: 'shrink', cols: [{ width: 'shrink' }] },\n                        { cols: [{ span: colCnt, minWidth: dayMinWidth }] },\n                    ], sections: sections }))); }));\n        };\n        /* Dimensions\n        ------------------------------------------------------------------------------------------------------------------*/\n        TimeColsView.prototype.getAllDayMaxEventProps = function () {\n            var _a = this.context.options, dayMaxEvents = _a.dayMaxEvents, dayMaxEventRows = _a.dayMaxEventRows;\n            if (dayMaxEvents === true || dayMaxEventRows === true) { // is auto?\n                dayMaxEvents = undefined;\n                dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS; // make sure \"auto\" goes to a real number\n            }\n            return { dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows };\n        };\n        return TimeColsView;\n    }(DateComponent));\n    function renderAllDayInner(hookProps) {\n        return hookProps.text;\n    }\n\n    var TimeColsSlatsCoords = /** @class */ (function () {\n        function TimeColsSlatsCoords(positions, dateProfile, slotDuration) {\n            this.positions = positions;\n            this.dateProfile = dateProfile;\n            this.slotDuration = slotDuration;\n        }\n        TimeColsSlatsCoords.prototype.safeComputeTop = function (date) {\n            var dateProfile = this.dateProfile;\n            if (rangeContainsMarker(dateProfile.currentRange, date)) {\n                var startOfDayDate = startOfDay(date);\n                var timeMs = date.valueOf() - startOfDayDate.valueOf();\n                if (timeMs >= asRoughMs(dateProfile.slotMinTime) &&\n                    timeMs < asRoughMs(dateProfile.slotMaxTime)) {\n                    return this.computeTimeTop(createDuration(timeMs));\n                }\n            }\n            return null;\n        };\n        // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n        // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n        TimeColsSlatsCoords.prototype.computeDateTop = function (when, startOfDayDate) {\n            if (!startOfDayDate) {\n                startOfDayDate = startOfDay(when);\n            }\n            return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n        };\n        // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n        // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n        // Eventually allow computation with arbirary slat dates.\n        TimeColsSlatsCoords.prototype.computeTimeTop = function (duration) {\n            var _a = this, positions = _a.positions, dateProfile = _a.dateProfile;\n            var len = positions.els.length;\n            // floating-point value of # of slots covered\n            var slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.slotMinTime)) / asRoughMs(this.slotDuration);\n            var slatIndex;\n            var slatRemainder;\n            // compute a floating-point number for how many slats should be progressed through.\n            // from 0 to number of slats (inclusive)\n            // constrained because slotMinTime/slotMaxTime might be customized.\n            slatCoverage = Math.max(0, slatCoverage);\n            slatCoverage = Math.min(len, slatCoverage);\n            // an integer index of the furthest whole slat\n            // from 0 to number slats (*exclusive*, so len-1)\n            slatIndex = Math.floor(slatCoverage);\n            slatIndex = Math.min(slatIndex, len - 1);\n            // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n            // could be 1.0 if slatCoverage is covering *all* the slots\n            slatRemainder = slatCoverage - slatIndex;\n            return positions.tops[slatIndex] +\n                positions.getHeight(slatIndex) * slatRemainder;\n        };\n        return TimeColsSlatsCoords;\n    }());\n\n    var TimeColsSlatsBody = /** @class */ (function (_super) {\n        __extends(TimeColsSlatsBody, _super);\n        function TimeColsSlatsBody() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TimeColsSlatsBody.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var options = context.options;\n            var slatElRefs = props.slatElRefs;\n            return (createElement(\"tbody\", null, props.slatMetas.map(function (slatMeta, i) {\n                var hookProps = {\n                    time: slatMeta.time,\n                    date: context.dateEnv.toDate(slatMeta.date),\n                    view: context.viewApi,\n                };\n                var classNames = [\n                    'fc-timegrid-slot',\n                    'fc-timegrid-slot-lane',\n                    slatMeta.isLabeled ? '' : 'fc-timegrid-slot-minor',\n                ];\n                return (createElement(\"tr\", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },\n                    props.axis && (createElement(TimeColsAxisCell, __assign({}, slatMeta))),\n                    createElement(RenderHook, { hookProps: hookProps, classNames: options.slotLaneClassNames, content: options.slotLaneContent, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-time\": slatMeta.isoTimeStr }, innerContent)); })));\n            })));\n        };\n        return TimeColsSlatsBody;\n    }(BaseComponent));\n\n    /*\n    for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n    */\n    var TimeColsSlats = /** @class */ (function (_super) {\n        __extends(TimeColsSlats, _super);\n        function TimeColsSlats() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.rootElRef = createRef();\n            _this.slatElRefs = new RefMap();\n            return _this;\n        }\n        TimeColsSlats.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            return (createElement(\"div\", { className: \"fc-timegrid-slots\", ref: this.rootElRef },\n                createElement(\"table\", { className: context.theme.getClass('table'), style: {\n                        minWidth: props.tableMinWidth,\n                        width: props.clientWidth,\n                        height: props.minHeight,\n                    } },\n                    props.tableColGroupNode /* relies on there only being a single <col> for the axis */,\n                    createElement(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));\n        };\n        TimeColsSlats.prototype.componentDidMount = function () {\n            this.updateSizing();\n        };\n        TimeColsSlats.prototype.componentDidUpdate = function () {\n            this.updateSizing();\n        };\n        TimeColsSlats.prototype.componentWillUnmount = function () {\n            if (this.props.onCoords) {\n                this.props.onCoords(null);\n            }\n        };\n        TimeColsSlats.prototype.updateSizing = function () {\n            var _a = this, context = _a.context, props = _a.props;\n            if (props.onCoords &&\n                props.clientWidth !== null // means sizing has stabilized\n            ) {\n                var rootEl = this.rootElRef.current;\n                if (rootEl.offsetHeight) { // not hidden by css\n                    props.onCoords(new TimeColsSlatsCoords(new PositionCache(this.rootElRef.current, collectSlatEls(this.slatElRefs.currentMap, props.slatMetas), false, true), this.props.dateProfile, context.options.slotDuration));\n                }\n            }\n        };\n        return TimeColsSlats;\n    }(BaseComponent));\n    function collectSlatEls(elMap, slatMetas) {\n        return slatMetas.map(function (slatMeta) { return elMap[slatMeta.key]; });\n    }\n\n    function splitSegsByCol(segs, colCnt) {\n        var segsByCol = [];\n        var i;\n        for (i = 0; i < colCnt; i += 1) {\n            segsByCol.push([]);\n        }\n        if (segs) {\n            for (i = 0; i < segs.length; i += 1) {\n                segsByCol[segs[i].col].push(segs[i]);\n            }\n        }\n        return segsByCol;\n    }\n    function splitInteractionByCol(ui, colCnt) {\n        var byRow = [];\n        if (!ui) {\n            for (var i = 0; i < colCnt; i += 1) {\n                byRow[i] = null;\n            }\n        }\n        else {\n            for (var i = 0; i < colCnt; i += 1) {\n                byRow[i] = {\n                    affectedInstances: ui.affectedInstances,\n                    isEvent: ui.isEvent,\n                    segs: [],\n                };\n            }\n            for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {\n                var seg = _a[_i];\n                byRow[seg.col].segs.push(seg);\n            }\n        }\n        return byRow;\n    }\n\n    // UNFORTUNATELY, assigns results to the top/bottom/level/forwardCoord/backwardCoord props of the actual segs.\n    // TODO: return hash (by instanceId) of results\n    function computeSegCoords(segs, dayDate, slatCoords, eventMinHeight, eventOrderSpecs) {\n        computeSegVerticals(segs, dayDate, slatCoords, eventMinHeight);\n        return computeSegHorizontals(segs, eventOrderSpecs); // requires top/bottom from computeSegVerticals\n    }\n    // For each segment in an array, computes and assigns its top and bottom properties\n    function computeSegVerticals(segs, dayDate, slatCoords, eventMinHeight) {\n        for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n            var seg = segs_1[_i];\n            seg.top = slatCoords.computeDateTop(seg.start, dayDate);\n            seg.bottom = Math.max(seg.top + (eventMinHeight || 0), // yuck\n            slatCoords.computeDateTop(seg.end, dayDate));\n        }\n    }\n    // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\n    // Assumed the segs are already ordered.\n    // NOTE: Also reorders the given array by date!\n    function computeSegHorizontals(segs, eventOrderSpecs) {\n        // IMPORTANT TO CLEAR OLD RESULTS :(\n        for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n            var seg = segs_2[_i];\n            seg.level = null;\n            seg.forwardCoord = null;\n            seg.backwardCoord = null;\n            seg.forwardPressure = null;\n        }\n        segs = sortEventSegs(segs, eventOrderSpecs);\n        var level0;\n        var levels = buildSlotSegLevels(segs);\n        computeForwardSlotSegs(levels);\n        if ((level0 = levels[0])) {\n            for (var _a = 0, level0_1 = level0; _a < level0_1.length; _a++) {\n                var seg = level0_1[_a];\n                computeSlotSegPressures(seg);\n            }\n            for (var _b = 0, level0_2 = level0; _b < level0_2.length; _b++) {\n                var seg = level0_2[_b];\n                computeSegForwardBack(seg, 0, 0, eventOrderSpecs);\n            }\n        }\n        return segs;\n    }\n    // Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\n    // left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\n    function buildSlotSegLevels(segs) {\n        var levels = [];\n        var i;\n        var seg;\n        var j;\n        for (i = 0; i < segs.length; i += 1) {\n            seg = segs[i];\n            // go through all the levels and stop on the first level where there are no collisions\n            for (j = 0; j < levels.length; j += 1) {\n                if (!computeSlotSegCollisions(seg, levels[j]).length) {\n                    break;\n                }\n            }\n            seg.level = j;\n            (levels[j] || (levels[j] = [])).push(seg);\n        }\n        return levels;\n    }\n    // Find all the segments in `otherSegs` that vertically collide with `seg`.\n    // Append into an optionally-supplied `results` array and return.\n    function computeSlotSegCollisions(seg, otherSegs, results) {\n        if (results === void 0) { results = []; }\n        for (var i = 0; i < otherSegs.length; i += 1) {\n            if (isSlotSegCollision(seg, otherSegs[i])) {\n                results.push(otherSegs[i]);\n            }\n        }\n        return results;\n    }\n    // Do these segments occupy the same vertical space?\n    function isSlotSegCollision(seg1, seg2) {\n        return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\n    }\n    // For every segment, figure out the other segments that are in subsequent\n    // levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\n    function computeForwardSlotSegs(levels) {\n        var i;\n        var level;\n        var j;\n        var seg;\n        var k;\n        for (i = 0; i < levels.length; i += 1) {\n            level = levels[i];\n            for (j = 0; j < level.length; j += 1) {\n                seg = level[j];\n                seg.forwardSegs = [];\n                for (k = i + 1; k < levels.length; k += 1) {\n                    computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\n                }\n            }\n        }\n    }\n    // Figure out which path forward (via seg.forwardSegs) results in the longest path until\n    // the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\n    function computeSlotSegPressures(seg) {\n        var forwardSegs = seg.forwardSegs;\n        var forwardPressure = 0;\n        var i;\n        var forwardSeg;\n        if (seg.forwardPressure == null) { // not already computed\n            for (i = 0; i < forwardSegs.length; i += 1) {\n                forwardSeg = forwardSegs[i];\n                // figure out the child's maximum forward path\n                computeSlotSegPressures(forwardSeg);\n                // either use the existing maximum, or use the child's forward pressure\n                // plus one (for the forwardSeg itself)\n                forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\n            }\n            seg.forwardPressure = forwardPressure;\n        }\n    }\n    // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\n    // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\n    // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\n    //\n    // The segment might be part of a \"series\", which means consecutive segments with the same pressure\n    // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\n    // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\n    // coordinate of the first segment in the series.\n    function computeSegForwardBack(seg, seriesBackwardPressure, seriesBackwardCoord, eventOrderSpecs) {\n        var forwardSegs = seg.forwardSegs;\n        var i;\n        if (seg.forwardCoord == null) { // not already computed\n            if (!forwardSegs.length) {\n                // if there are no forward segments, this segment should butt up against the edge\n                seg.forwardCoord = 1;\n            }\n            else {\n                // sort highest pressure first\n                sortForwardSegs(forwardSegs, eventOrderSpecs);\n                // this segment's forwardCoord will be calculated from the backwardCoord of the\n                // highest-pressure forward segment.\n                computeSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord, eventOrderSpecs);\n                seg.forwardCoord = forwardSegs[0].backwardCoord;\n            }\n            // calculate the backwardCoord from the forwardCoord. consider the series\n            seg.backwardCoord = seg.forwardCoord -\n                (seg.forwardCoord - seriesBackwardCoord) / // available width for series\n                    (seriesBackwardPressure + 1); // # of segments in the series\n            // use this segment's coordinates to computed the coordinates of the less-pressurized\n            // forward segments\n            for (i = 0; i < forwardSegs.length; i += 1) {\n                computeSegForwardBack(forwardSegs[i], 0, seg.forwardCoord, eventOrderSpecs);\n            }\n        }\n    }\n    function sortForwardSegs(forwardSegs, eventOrderSpecs) {\n        var objs = forwardSegs.map(buildTimeGridSegCompareObj);\n        var specs = [\n            // put higher-pressure first\n            { field: 'forwardPressure', order: -1 },\n            // put segments that are closer to initial edge first (and favor ones with no coords yet)\n            { field: 'backwardCoord', order: 1 },\n        ].concat(eventOrderSpecs);\n        objs.sort(function (obj0, obj1) { return compareByFieldSpecs(obj0, obj1, specs); });\n        return objs.map(function (c) { return c._seg; });\n    }\n    function buildTimeGridSegCompareObj(seg) {\n        var obj = buildSegCompareObj(seg);\n        obj.forwardPressure = seg.forwardPressure;\n        obj.backwardCoord = seg.backwardCoord;\n        return obj;\n    }\n\n    var DEFAULT_TIME_FORMAT = createFormatter({\n        hour: 'numeric',\n        minute: '2-digit',\n        meridiem: false,\n    });\n    var TimeColEvent = /** @class */ (function (_super) {\n        __extends(TimeColEvent, _super);\n        function TimeColEvent() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TimeColEvent.prototype.render = function () {\n            var classNames = [\n                'fc-timegrid-event',\n                'fc-v-event',\n            ];\n            if (this.props.isCondensed) {\n                classNames.push('fc-timegrid-event-condensed');\n            }\n            return (createElement(StandardEvent, __assign({}, this.props, { defaultTimeFormat: DEFAULT_TIME_FORMAT, extraClassNames: classNames })));\n        };\n        return TimeColEvent;\n    }(BaseComponent));\n\n    var TimeColMisc = /** @class */ (function (_super) {\n        __extends(TimeColMisc, _super);\n        function TimeColMisc() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TimeColMisc.prototype.render = function () {\n            var props = this.props;\n            return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (innerElRef, innerContent) { return (innerContent &&\n                createElement(\"div\", { className: \"fc-timegrid-col-misc\", ref: innerElRef }, innerContent)); }));\n        };\n        return TimeColMisc;\n    }(BaseComponent));\n\n    config.timeGridEventCondensedHeight = 30;\n    var TimeCol = /** @class */ (function (_super) {\n        __extends(TimeCol, _super);\n        function TimeCol() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        TimeCol.prototype.render = function () {\n            var _this = this;\n            var _a = this, props = _a.props, context = _a.context;\n            var isSelectMirror = context.options.selectMirror;\n            var mirrorSegs = (props.eventDrag && props.eventDrag.segs) ||\n                (props.eventResize && props.eventResize.segs) ||\n                (isSelectMirror && props.dateSelectionSegs) ||\n                [];\n            var interactionAffectedInstances = // TODO: messy way to compute this\n             (props.eventDrag && props.eventDrag.affectedInstances) ||\n                (props.eventResize && props.eventResize.affectedInstances) ||\n                {};\n            return (createElement(DayCellRoot, { elRef: props.elRef, date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (rootElRef, classNames, dataAttrs) { return (createElement(\"td\", __assign({ ref: rootElRef, className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),\n                createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n                    createElement(\"div\", { className: \"fc-timegrid-col-bg\" },\n                        _this.renderFillSegs(props.businessHourSegs, 'non-business'),\n                        _this.renderFillSegs(props.bgEventSegs, 'bg-event'),\n                        _this.renderFillSegs(props.dateSelectionSegs, 'highlight')),\n                    createElement(\"div\", { className: \"fc-timegrid-col-events\" }, _this.renderFgSegs(props.fgEventSegs, interactionAffectedInstances)),\n                    createElement(\"div\", { className: \"fc-timegrid-col-events\" }, _this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror))),\n                    createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, _this.renderNowIndicator(props.nowIndicatorSegs)),\n                    createElement(TimeColMisc, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps })))); }));\n        };\n        TimeCol.prototype.renderFgSegs = function (segs, segIsInvisible, isDragging, isResizing, isDateSelecting) {\n            var props = this.props;\n            if (props.forPrint) {\n                return this.renderPrintFgSegs(segs);\n            }\n            if (props.slatCoords) {\n                return this.renderPositionedFgSegs(segs, segIsInvisible, isDragging, isResizing, isDateSelecting);\n            }\n            return null;\n        };\n        TimeCol.prototype.renderPrintFgSegs = function (segs) {\n            var _a = this, props = _a.props, context = _a.context;\n            // not DRY\n            segs = sortEventSegs(segs, context.options.eventOrder);\n            return segs.map(function (seg) { return (createElement(\"div\", { className: \"fc-timegrid-event-harness\", key: seg.eventRange.instance.instanceId },\n                createElement(TimeColEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isCondensed: false }, getSegMeta(seg, props.todayRange, props.nowDate))))); });\n        };\n        TimeCol.prototype.renderPositionedFgSegs = function (segs, segIsInvisible, isDragging, isResizing, isDateSelecting) {\n            var _this = this;\n            var _a = this, context = _a.context, props = _a.props;\n            // assigns TO THE SEGS THEMSELVES\n            // also, receives resorted array\n            segs = computeSegCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight, context.options.eventOrder);\n            return segs.map(function (seg) {\n                var instanceId = seg.eventRange.instance.instanceId;\n                var isMirror = isDragging || isResizing || isDateSelecting;\n                var positionCss = isMirror\n                    // will span entire column width\n                    // also, won't assign z-index, which is good, fc-event-mirror will overpower other harnesses\n                    ? __assign({ left: 0, right: 0 }, _this.computeSegTopBottomCss(seg)) : _this.computeFgSegPositionCss(seg);\n                return (createElement(\"div\", { className: 'fc-timegrid-event-harness' + (seg.level > 0 ? ' fc-timegrid-event-harness-inset' : ''), key: instanceId, style: __assign({ visibility: segIsInvisible[instanceId] ? 'hidden' : '' }, positionCss) },\n                    createElement(TimeColEvent, __assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === props.eventSelection, isCondensed: (seg.bottom - seg.top) < config.timeGridEventCondensedHeight }, getSegMeta(seg, props.todayRange, props.nowDate)))));\n            });\n        };\n        TimeCol.prototype.renderFillSegs = function (segs, fillType) {\n            var _this = this;\n            var _a = this, context = _a.context, props = _a.props;\n            if (!props.slatCoords) {\n                return null;\n            }\n            // BAD: assigns TO THE SEGS THEMSELVES\n            computeSegVerticals(segs, props.date, props.slatCoords, context.options.eventMinHeight);\n            var children = segs.map(function (seg) { return (createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-timegrid-bg-harness\", style: _this.computeSegTopBottomCss(seg) }, fillType === 'bg-event' ?\n                createElement(BgEvent, __assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :\n                renderFill(fillType))); });\n            return createElement(Fragment, null, children);\n        };\n        TimeCol.prototype.renderNowIndicator = function (segs) {\n            var _a = this.props, slatCoords = _a.slatCoords, date = _a.date;\n            if (!slatCoords) {\n                return null;\n            }\n            return segs.map(function (seg, i) { return (createElement(NowIndicatorRoot, { isAxis: false, date: date, \n                // key doesn't matter. will only ever be one\n                key: i }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-line'].concat(classNames).join(' '), style: { top: slatCoords.computeDateTop(seg.start, date) } }, innerContent)); })); });\n        };\n        TimeCol.prototype.computeFgSegPositionCss = function (seg) {\n            var _a = this.context, isRtl = _a.isRtl, options = _a.options;\n            var shouldOverlap = options.slotEventOverlap;\n            var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\n            var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\n            var left; // amount of space from left edge, a fraction of the total width\n            var right; // amount of space from right edge, a fraction of the total width\n            if (shouldOverlap) {\n                // double the width, but don't go beyond the maximum forward coordinate (1.0)\n                forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\n            }\n            if (isRtl) {\n                left = 1 - forwardCoord;\n                right = backwardCoord;\n            }\n            else {\n                left = backwardCoord;\n                right = 1 - forwardCoord;\n            }\n            var props = {\n                zIndex: seg.level + 1,\n                left: left * 100 + '%',\n                right: right * 100 + '%',\n            };\n            if (shouldOverlap && seg.forwardPressure) {\n                // add padding to the edge so that forward stacked events don't cover the resizer's icon\n                props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n            }\n            return __assign(__assign({}, props), this.computeSegTopBottomCss(seg));\n        };\n        TimeCol.prototype.computeSegTopBottomCss = function (seg) {\n            return {\n                top: seg.top,\n                bottom: -seg.bottom,\n            };\n        };\n        return TimeCol;\n    }(BaseComponent));\n\n    var TimeColsContent = /** @class */ (function (_super) {\n        __extends(TimeColsContent, _super);\n        function TimeColsContent() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.splitFgEventSegs = memoize(splitSegsByCol);\n            _this.splitBgEventSegs = memoize(splitSegsByCol);\n            _this.splitBusinessHourSegs = memoize(splitSegsByCol);\n            _this.splitNowIndicatorSegs = memoize(splitSegsByCol);\n            _this.splitDateSelectionSegs = memoize(splitSegsByCol);\n            _this.splitEventDrag = memoize(splitInteractionByCol);\n            _this.splitEventResize = memoize(splitInteractionByCol);\n            _this.rootElRef = createRef();\n            _this.cellElRefs = new RefMap();\n            return _this;\n        }\n        TimeColsContent.prototype.render = function () {\n            var _this = this;\n            var _a = this, props = _a.props, context = _a.context;\n            var nowIndicatorTop = context.options.nowIndicator &&\n                props.slatCoords &&\n                props.slatCoords.safeComputeTop(props.nowDate); // might return void\n            var colCnt = props.cells.length;\n            var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt);\n            var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt);\n            var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt);\n            var nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt);\n            var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);\n            var eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);\n            var eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);\n            return (createElement(\"div\", { className: \"fc-timegrid-cols\", ref: this.rootElRef },\n                createElement(\"table\", { style: {\n                        minWidth: props.tableMinWidth,\n                        width: props.clientWidth,\n                    } },\n                    props.tableColGroupNode,\n                    createElement(\"tbody\", null,\n                        createElement(\"tr\", null,\n                            props.axis && (createElement(\"td\", { className: \"fc-timegrid-col fc-timegrid-axis\" },\n                                createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n                                    createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, typeof nowIndicatorTop === 'number' && (createElement(NowIndicatorRoot, { isAxis: true, date: props.nowDate }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-arrow'].concat(classNames).join(' '), style: { top: nowIndicatorTop } }, innerContent)); })))))),\n                            props.cells.map(function (cell, i) { return (createElement(TimeCol, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint })); }))))));\n        };\n        TimeColsContent.prototype.componentDidMount = function () {\n            this.updateCoords();\n        };\n        TimeColsContent.prototype.componentDidUpdate = function () {\n            this.updateCoords();\n        };\n        TimeColsContent.prototype.updateCoords = function () {\n            var props = this.props;\n            if (props.onColCoords &&\n                props.clientWidth !== null // means sizing has stabilized\n            ) {\n                props.onColCoords(new PositionCache(this.rootElRef.current, collectCellEls(this.cellElRefs.currentMap, props.cells), true, // horizontal\n                false));\n            }\n        };\n        return TimeColsContent;\n    }(BaseComponent));\n    function collectCellEls(elMap, cells) {\n        return cells.map(function (cell) { return elMap[cell.key]; });\n    }\n\n    /* A component that renders one or more columns of vertical time slots\n    ----------------------------------------------------------------------------------------------------------------------*/\n    var TimeCols = /** @class */ (function (_super) {\n        __extends(TimeCols, _super);\n        function TimeCols() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.processSlotOptions = memoize(processSlotOptions);\n            _this.state = {\n                slatCoords: null,\n            };\n            _this.handleScrollRequest = function (request) {\n                var onScrollTopRequest = _this.props.onScrollTopRequest;\n                var slatCoords = _this.state.slatCoords;\n                if (onScrollTopRequest && slatCoords) {\n                    if (request.time) {\n                        var top_1 = slatCoords.computeTimeTop(request.time);\n                        top_1 = Math.ceil(top_1); // zoom can give weird floating-point values. rather scroll a little bit further\n                        if (top_1) {\n                            top_1 += 1; // to overcome top border that slots beyond the first have. looks better\n                        }\n                        onScrollTopRequest(top_1);\n                    }\n                    return true;\n                }\n                return false;\n            };\n            _this.handleColCoords = function (colCoords) {\n                _this.colCoords = colCoords;\n            };\n            _this.handleSlatCoords = function (slatCoords) {\n                _this.setState({ slatCoords: slatCoords });\n                if (_this.props.onSlatCoords) {\n                    _this.props.onSlatCoords(slatCoords);\n                }\n            };\n            return _this;\n        }\n        TimeCols.prototype.render = function () {\n            var _a = this, props = _a.props, state = _a.state;\n            return (createElement(\"div\", { className: \"fc-timegrid-body\", ref: props.rootElRef, style: {\n                    // these props are important to give this wrapper correct dimensions for interactions\n                    // TODO: if we set it here, can we avoid giving to inner tables?\n                    width: props.clientWidth,\n                    minWidth: props.tableMinWidth,\n                } },\n                createElement(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),\n                createElement(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));\n        };\n        TimeCols.prototype.componentDidMount = function () {\n            this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);\n        };\n        TimeCols.prototype.componentDidUpdate = function (prevProps) {\n            this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile);\n        };\n        TimeCols.prototype.componentWillUnmount = function () {\n            this.scrollResponder.detach();\n        };\n        TimeCols.prototype.positionToHit = function (positionLeft, positionTop) {\n            var _a = this.context, dateEnv = _a.dateEnv, options = _a.options;\n            var colCoords = this.colCoords;\n            var dateProfile = this.props.dateProfile;\n            var slatCoords = this.state.slatCoords;\n            var _b = this.processSlotOptions(this.props.slotDuration, options.snapDuration), snapDuration = _b.snapDuration, snapsPerSlot = _b.snapsPerSlot;\n            var colIndex = colCoords.leftToIndex(positionLeft);\n            var slatIndex = slatCoords.positions.topToIndex(positionTop);\n            if (colIndex != null && slatIndex != null) {\n                var slatTop = slatCoords.positions.tops[slatIndex];\n                var slatHeight = slatCoords.positions.getHeight(slatIndex);\n                var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n                var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n                var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n                var dayDate = this.props.cells[colIndex].date;\n                var time = addDurations(dateProfile.slotMinTime, multiplyDuration(snapDuration, snapIndex));\n                var start = dateEnv.add(dayDate, time);\n                var end = dateEnv.add(start, snapDuration);\n                return {\n                    col: colIndex,\n                    dateSpan: {\n                        range: { start: start, end: end },\n                        allDay: false,\n                    },\n                    dayEl: colCoords.els[colIndex],\n                    relativeRect: {\n                        left: colCoords.lefts[colIndex],\n                        right: colCoords.rights[colIndex],\n                        top: slatTop,\n                        bottom: slatTop + slatHeight,\n                    },\n                };\n            }\n            return null;\n        };\n        return TimeCols;\n    }(BaseComponent));\n    function processSlotOptions(slotDuration, snapDurationOverride) {\n        var snapDuration = snapDurationOverride || slotDuration;\n        var snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n        if (snapsPerSlot === null) {\n            snapDuration = slotDuration;\n            snapsPerSlot = 1;\n            // TODO: say warning?\n        }\n        return { snapDuration: snapDuration, snapsPerSlot: snapsPerSlot };\n    }\n\n    var DayTimeColsSlicer = /** @class */ (function (_super) {\n        __extends(DayTimeColsSlicer, _super);\n        function DayTimeColsSlicer() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        DayTimeColsSlicer.prototype.sliceRange = function (range, dayRanges) {\n            var segs = [];\n            for (var col = 0; col < dayRanges.length; col += 1) {\n                var segRange = intersectRanges(range, dayRanges[col]);\n                if (segRange) {\n                    segs.push({\n                        start: segRange.start,\n                        end: segRange.end,\n                        isStart: segRange.start.valueOf() === range.start.valueOf(),\n                        isEnd: segRange.end.valueOf() === range.end.valueOf(),\n                        col: col,\n                    });\n                }\n            }\n            return segs;\n        };\n        return DayTimeColsSlicer;\n    }(Slicer));\n\n    var DayTimeCols = /** @class */ (function (_super) {\n        __extends(DayTimeCols, _super);\n        function DayTimeCols() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.buildDayRanges = memoize(buildDayRanges);\n            _this.slicer = new DayTimeColsSlicer();\n            _this.timeColsRef = createRef();\n            _this.handleRootEl = function (rootEl) {\n                if (rootEl) {\n                    _this.context.registerInteractiveComponent(_this, { el: rootEl });\n                }\n                else {\n                    _this.context.unregisterInteractiveComponent(_this);\n                }\n            };\n            return _this;\n        }\n        DayTimeCols.prototype.render = function () {\n            var _this = this;\n            var _a = this, props = _a.props, context = _a.context;\n            var dateProfile = props.dateProfile, dayTableModel = props.dayTableModel;\n            var isNowIndicator = context.options.nowIndicator;\n            var dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);\n            // give it the first row of cells\n            // TODO: would move this further down hierarchy, but sliceNowDate needs it\n            return (createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' }, function (nowDate, todayRange) { return (createElement(TimeCols, __assign({ ref: _this.timeColsRef, rootElRef: _this.handleRootEl }, _this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: isNowIndicator && _this.slicer.sliceNowDate(nowDate, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords }))); }));\n        };\n        DayTimeCols.prototype.queryHit = function (positionLeft, positionTop) {\n            var rawHit = this.timeColsRef.current.positionToHit(positionLeft, positionTop);\n            if (rawHit) {\n                return {\n                    component: this,\n                    dateSpan: rawHit.dateSpan,\n                    dayEl: rawHit.dayEl,\n                    rect: {\n                        left: rawHit.relativeRect.left,\n                        right: rawHit.relativeRect.right,\n                        top: rawHit.relativeRect.top,\n                        bottom: rawHit.relativeRect.bottom,\n                    },\n                    layer: 0,\n                };\n            }\n            return null;\n        };\n        return DayTimeCols;\n    }(DateComponent));\n    function buildDayRanges(dayTableModel, dateProfile, dateEnv) {\n        var ranges = [];\n        for (var _i = 0, _a = dayTableModel.headerDates; _i < _a.length; _i++) {\n            var date = _a[_i];\n            ranges.push({\n                start: dateEnv.add(date, dateProfile.slotMinTime),\n                end: dateEnv.add(date, dateProfile.slotMaxTime),\n            });\n        }\n        return ranges;\n    }\n\n    // potential nice values for the slot-duration and interval-duration\n    // from largest to smallest\n    var STOCK_SUB_DURATIONS = [\n        { hours: 1 },\n        { minutes: 30 },\n        { minutes: 15 },\n        { seconds: 30 },\n        { seconds: 15 },\n    ];\n    function buildSlatMetas(slotMinTime, slotMaxTime, explicitLabelInterval, slotDuration, dateEnv) {\n        var dayStart = new Date(0);\n        var slatTime = slotMinTime;\n        var slatIterator = createDuration(0);\n        var labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration);\n        var metas = [];\n        while (asRoughMs(slatTime) < asRoughMs(slotMaxTime)) {\n            var date = dateEnv.add(dayStart, slatTime);\n            var isLabeled = wholeDivideDurations(slatIterator, labelInterval) !== null;\n            metas.push({\n                date: date,\n                time: slatTime,\n                key: date.toISOString(),\n                isoTimeStr: formatIsoTimeString(date),\n                isLabeled: isLabeled,\n            });\n            slatTime = addDurations(slatTime, slotDuration);\n            slatIterator = addDurations(slatIterator, slotDuration);\n        }\n        return metas;\n    }\n    // Computes an automatic value for slotLabelInterval\n    function computeLabelInterval(slotDuration) {\n        var i;\n        var labelInterval;\n        var slotsPerLabel;\n        // find the smallest stock label interval that results in more than one slots-per-label\n        for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n            labelInterval = createDuration(STOCK_SUB_DURATIONS[i]);\n            slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n            if (slotsPerLabel !== null && slotsPerLabel > 1) {\n                return labelInterval;\n            }\n        }\n        return slotDuration; // fall back\n    }\n\n    var DayTimeColsView = /** @class */ (function (_super) {\n        __extends(DayTimeColsView, _super);\n        function DayTimeColsView() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.buildTimeColsModel = memoize(buildTimeColsModel);\n            _this.buildSlatMetas = memoize(buildSlatMetas);\n            return _this;\n        }\n        DayTimeColsView.prototype.render = function () {\n            var _this = this;\n            var _a = this.context, options = _a.options, dateEnv = _a.dateEnv, dateProfileGenerator = _a.dateProfileGenerator;\n            var props = this.props;\n            var dateProfile = props.dateProfile;\n            var dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator);\n            var splitProps = this.allDaySplitter.splitProps(props);\n            var slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);\n            var dayMinWidth = options.dayMinWidth;\n            var hasAttachedAxis = !dayMinWidth;\n            var hasDetachedAxis = dayMinWidth;\n            var headerContent = options.dayHeaders && (createElement(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));\n            var allDayContent = (options.allDaySlot !== false) && (function (contentArg) { return (createElement(DayTable, __assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? _this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, _this.getAllDayMaxEventProps()))); });\n            var timeGridContent = function (contentArg) { return (createElement(DayTimeCols, __assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: _this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: _this.handleScrollTopRequest }))); };\n            return hasDetachedAxis\n                ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)\n                : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);\n        };\n        return DayTimeColsView;\n    }(TimeColsView));\n    function buildTimeColsModel(dateProfile, dateProfileGenerator) {\n        var daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n        return new DayTableModel(daySeries, false);\n    }\n\n    var OPTION_REFINERS$2 = {\n        allDaySlot: Boolean,\n    };\n\n    var timeGridPlugin = createPlugin({\n        initialView: 'timeGridWeek',\n        optionRefiners: OPTION_REFINERS$2,\n        views: {\n            timeGrid: {\n                component: DayTimeColsView,\n                usesMinMaxTime: true,\n                allDaySlot: true,\n                slotDuration: '00:30:00',\n                slotEventOverlap: true,\n            },\n            timeGridDay: {\n                type: 'timeGrid',\n                duration: { days: 1 },\n            },\n            timeGridWeek: {\n                type: 'timeGrid',\n                duration: { weeks: 1 },\n            },\n        },\n    });\n\n    var ListViewHeaderRow = /** @class */ (function (_super) {\n        __extends(ListViewHeaderRow, _super);\n        function ListViewHeaderRow() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        ListViewHeaderRow.prototype.render = function () {\n            var _a = this.props, dayDate = _a.dayDate, todayRange = _a.todayRange;\n            var _b = this.context, theme = _b.theme, dateEnv = _b.dateEnv, options = _b.options, viewApi = _b.viewApi;\n            var dayMeta = getDateMeta(dayDate, todayRange);\n            // will ever be falsy?\n            var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';\n            // will ever be falsy? also, BAD NAME \"alt\"\n            var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';\n            var navLinkData = options.navLinks\n                ? buildNavLinkData(dayDate)\n                : null;\n            var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,\n                sideText: sideText,\n                navLinkData: navLinkData }, dayMeta);\n            var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));\n            // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent$4, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"tr\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-date\": formatDayString(dayDate) },\n                createElement(\"th\", { colSpan: 3 },\n                    createElement(\"div\", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));\n        };\n        return ListViewHeaderRow;\n    }(BaseComponent));\n    function renderInnerContent$4(props) {\n        var navLinkAttrs = props.navLinkData // is there a type for this?\n            ? { 'data-navlink': props.navLinkData, tabIndex: 0 }\n            : {};\n        return (createElement(Fragment, null,\n            props.text && (createElement(\"a\", __assign({ className: \"fc-list-day-text\" }, navLinkAttrs), props.text)),\n            props.sideText && (createElement(\"a\", __assign({ className: \"fc-list-day-side-text\" }, navLinkAttrs), props.sideText))));\n    }\n\n    var DEFAULT_TIME_FORMAT$1 = createFormatter({\n        hour: 'numeric',\n        minute: '2-digit',\n        meridiem: 'short',\n    });\n    var ListViewEventRow = /** @class */ (function (_super) {\n        __extends(ListViewEventRow, _super);\n        function ListViewEventRow() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        ListViewEventRow.prototype.render = function () {\n            var _a = this, props = _a.props, context = _a.context;\n            var seg = props.seg;\n            var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT$1;\n            return (createElement(EventRoot, { seg: seg, timeText: \"\" // BAD. because of all-day content\n                , disableDragging: true, disableResizing: true, defaultContent: renderEventInnerContent, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"tr\", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },\n                buildTimeContent(seg, timeFormat, context),\n                createElement(\"td\", { className: \"fc-list-event-graphic\" },\n                    createElement(\"span\", { className: \"fc-list-event-dot\", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),\n                createElement(\"td\", { className: \"fc-list-event-title\", ref: innerElRef }, innerContent))); }));\n        };\n        return ListViewEventRow;\n    }(BaseComponent));\n    function renderEventInnerContent(props) {\n        var event = props.event;\n        var url = event.url;\n        var anchorAttrs = url ? { href: url } : {};\n        return (createElement(\"a\", __assign({}, anchorAttrs), event.title));\n    }\n    function buildTimeContent(seg, timeFormat, context) {\n        var options = context.options;\n        if (options.displayEventTime !== false) {\n            var eventDef = seg.eventRange.def;\n            var eventInstance = seg.eventRange.instance;\n            var doAllDay = false;\n            var timeText = void 0;\n            if (eventDef.allDay) {\n                doAllDay = true;\n            }\n            else if (isMultiDayRange(seg.eventRange.range)) { // TODO: use (!isStart || !isEnd) instead?\n                if (seg.isStart) {\n                    timeText = buildSegTimeText(seg, timeFormat, context, null, null, eventInstance.range.start, seg.end);\n                }\n                else if (seg.isEnd) {\n                    timeText = buildSegTimeText(seg, timeFormat, context, null, null, seg.start, eventInstance.range.end);\n                }\n                else {\n                    doAllDay = true;\n                }\n            }\n            else {\n                timeText = buildSegTimeText(seg, timeFormat, context);\n            }\n            if (doAllDay) {\n                var hookProps = {\n                    text: context.options.allDayText,\n                    view: context.viewApi,\n                };\n                return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner$1, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"td\", { className: ['fc-list-event-time'].concat(classNames).join(' '), ref: rootElRef }, innerContent)); }));\n            }\n            return (createElement(\"td\", { className: \"fc-list-event-time\" }, timeText));\n        }\n        return null;\n    }\n    function renderAllDayInner$1(hookProps) {\n        return hookProps.text;\n    }\n\n    /*\n    Responsible for the scroller, and forwarding event-related actions into the \"grid\".\n    */\n    var ListView = /** @class */ (function (_super) {\n        __extends(ListView, _super);\n        function ListView() {\n            var _this = _super !== null && _super.apply(this, arguments) || this;\n            _this.computeDateVars = memoize(computeDateVars);\n            _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);\n            _this.setRootEl = function (rootEl) {\n                if (rootEl) {\n                    _this.context.registerInteractiveComponent(_this, {\n                        el: rootEl,\n                    });\n                }\n                else {\n                    _this.context.unregisterInteractiveComponent(_this);\n                }\n            };\n            return _this;\n        }\n        ListView.prototype.render = function () {\n            var _this = this;\n            var _a = this, props = _a.props, context = _a.context;\n            var extraClassNames = [\n                'fc-list',\n                context.theme.getClass('table'),\n                context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',\n            ];\n            var _b = this.computeDateVars(props.dateProfile), dayDates = _b.dayDates, dayRanges = _b.dayRanges;\n            var eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);\n            return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, function (rootElRef, classNames) { return (createElement(\"div\", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },\n                createElement(Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?\n                    _this.renderSegList(eventSegs, dayDates) :\n                    _this.renderEmptyMessage()))); }));\n        };\n        ListView.prototype.renderEmptyMessage = function () {\n            var _a = this.context, options = _a.options, viewApi = _a.viewApi;\n            var hookProps = {\n                text: options.noEventsText,\n                view: viewApi,\n            };\n            return (createElement(RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },\n                createElement(\"div\", { className: \"fc-list-empty-cushion\", ref: innerElRef }, innerContent))); }));\n        };\n        ListView.prototype.renderSegList = function (allSegs, dayDates) {\n            var _a = this.context, theme = _a.theme, options = _a.options;\n            var segsByDay = groupSegsByDay(allSegs); // sparse array\n            return (createElement(NowTimer, { unit: \"day\" }, function (nowDate, todayRange) {\n                var innerNodes = [];\n                for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {\n                    var daySegs = segsByDay[dayIndex];\n                    if (daySegs) { // sparse array, so might be undefined\n                        var dayStr = dayDates[dayIndex].toISOString();\n                        // append a day header\n                        innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));\n                        daySegs = sortEventSegs(daySegs, options.eventOrder);\n                        for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {\n                            var seg = daySegs_1[_i];\n                            innerNodes.push(createElement(ListViewEventRow, __assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false }, getSegMeta(seg, todayRange, nowDate))));\n                        }\n                    }\n                }\n                return (createElement(\"table\", { className: 'fc-list-table ' + theme.getClass('table') },\n                    createElement(\"tbody\", null, innerNodes)));\n            }));\n        };\n        ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {\n            return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, dayRanges);\n        };\n        ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {\n            var segs = [];\n            for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n                var eventRange = eventRanges_1[_i];\n                segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));\n            }\n            return segs;\n        };\n        ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {\n            var dateEnv = this.context.dateEnv;\n            var nextDayThreshold = this.context.options.nextDayThreshold;\n            var range = eventRange.range;\n            var allDay = eventRange.def.allDay;\n            var dayIndex;\n            var segRange;\n            var seg;\n            var segs = [];\n            for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {\n                segRange = intersectRanges(range, dayRanges[dayIndex]);\n                if (segRange) {\n                    seg = {\n                        component: this,\n                        eventRange: eventRange,\n                        start: segRange.start,\n                        end: segRange.end,\n                        isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n                        isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n                        dayIndex: dayIndex,\n                    };\n                    segs.push(seg);\n                    // detect when range won't go fully into the next day,\n                    // and mutate the latest seg to the be the end.\n                    if (!seg.isEnd && !allDay &&\n                        dayIndex + 1 < dayRanges.length &&\n                        range.end <\n                            dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) {\n                        seg.end = range.end;\n                        seg.isEnd = true;\n                        break;\n                    }\n                }\n            }\n            return segs;\n        };\n        return ListView;\n    }(DateComponent));\n    function renderNoEventsInner(hookProps) {\n        return hookProps.text;\n    }\n    function computeDateVars(dateProfile) {\n        var dayStart = startOfDay(dateProfile.renderRange.start);\n        var viewEnd = dateProfile.renderRange.end;\n        var dayDates = [];\n        var dayRanges = [];\n        while (dayStart < viewEnd) {\n            dayDates.push(dayStart);\n            dayRanges.push({\n                start: dayStart,\n                end: addDays(dayStart, 1),\n            });\n            dayStart = addDays(dayStart, 1);\n        }\n        return { dayDates: dayDates, dayRanges: dayRanges };\n    }\n    // Returns a sparse array of arrays, segs grouped by their dayIndex\n    function groupSegsByDay(segs) {\n        var segsByDay = []; // sparse array\n        var i;\n        var seg;\n        for (i = 0; i < segs.length; i += 1) {\n            seg = segs[i];\n            (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\n                .push(seg);\n        }\n        return segsByDay;\n    }\n\n    var OPTION_REFINERS$3 = {\n        listDayFormat: createFalsableFormatter,\n        listDaySideFormat: createFalsableFormatter,\n        noEventsClassNames: identity,\n        noEventsContent: identity,\n        noEventsDidMount: identity,\n        noEventsWillUnmount: identity,\n    };\n    function createFalsableFormatter(input) {\n        return input === false ? null : createFormatter(input);\n    }\n\n    var listPlugin = createPlugin({\n        optionRefiners: OPTION_REFINERS$3,\n        views: {\n            list: {\n                component: ListView,\n                buttonTextKey: 'list',\n                listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n            },\n            listDay: {\n                type: 'list',\n                duration: { days: 1 },\n                listDayFormat: { weekday: 'long' },\n            },\n            listWeek: {\n                type: 'list',\n                duration: { weeks: 1 },\n                listDayFormat: { weekday: 'long' },\n                listDaySideFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n            },\n            listMonth: {\n                type: 'list',\n                duration: { month: 1 },\n                listDaySideFormat: { weekday: 'long' },\n            },\n            listYear: {\n                type: 'list',\n                duration: { year: 1 },\n                listDaySideFormat: { weekday: 'long' },\n            },\n        },\n    });\n\n    var BootstrapTheme = /** @class */ (function (_super) {\n        __extends(BootstrapTheme, _super);\n        function BootstrapTheme() {\n            return _super !== null && _super.apply(this, arguments) || this;\n        }\n        return BootstrapTheme;\n    }(Theme));\n    BootstrapTheme.prototype.classes = {\n        root: 'fc-theme-bootstrap',\n        table: 'table-bordered',\n        tableCellShaded: 'table-active',\n        buttonGroup: 'btn-group',\n        button: 'btn btn-primary',\n        buttonActive: 'active',\n        popover: 'popover',\n        popoverHeader: 'popover-header',\n        popoverContent: 'popover-body',\n    };\n    BootstrapTheme.prototype.baseIconClass = 'fa';\n    BootstrapTheme.prototype.iconClasses = {\n        close: 'fa-times',\n        prev: 'fa-chevron-left',\n        next: 'fa-chevron-right',\n        prevYear: 'fa-angle-double-left',\n        nextYear: 'fa-angle-double-right',\n    };\n    BootstrapTheme.prototype.rtlIconClasses = {\n        prev: 'fa-chevron-right',\n        next: 'fa-chevron-left',\n        prevYear: 'fa-angle-double-right',\n        nextYear: 'fa-angle-double-left',\n    };\n    BootstrapTheme.prototype.iconOverrideOption = 'bootstrapFontAwesome'; // TODO: make TS-friendly. move the option-processing into this plugin\n    BootstrapTheme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';\n    BootstrapTheme.prototype.iconOverridePrefix = 'fa-';\n    var plugin = createPlugin({\n        themeClasses: {\n            bootstrap: BootstrapTheme,\n        },\n    });\n\n    // rename this file to options.ts like other packages?\n    var OPTION_REFINERS$4 = {\n        googleCalendarApiKey: String,\n    };\n\n    var EVENT_SOURCE_REFINERS$1 = {\n        googleCalendarApiKey: String,\n        googleCalendarId: String,\n        googleCalendarApiBase: String,\n        extraParams: identity,\n    };\n\n    // TODO: expose somehow\n    var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';\n    var eventSourceDef$3 = {\n        parseMeta: function (refined) {\n            var googleCalendarId = refined.googleCalendarId;\n            if (!googleCalendarId && refined.url) {\n                googleCalendarId = parseGoogleCalendarId(refined.url);\n            }\n            if (googleCalendarId) {\n                return {\n                    googleCalendarId: googleCalendarId,\n                    googleCalendarApiKey: refined.googleCalendarApiKey,\n                    googleCalendarApiBase: refined.googleCalendarApiBase,\n                    extraParams: refined.extraParams,\n                };\n            }\n            return null;\n        },\n        fetch: function (arg, onSuccess, onFailure) {\n            var _a = arg.context, dateEnv = _a.dateEnv, options = _a.options;\n            var meta = arg.eventSource.meta;\n            var apiKey = meta.googleCalendarApiKey || options.googleCalendarApiKey;\n            if (!apiKey) {\n                onFailure({\n                    message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/',\n                });\n            }\n            else {\n                var url = buildUrl(meta);\n                // TODO: make DRY with json-feed-event-source\n                var extraParams = meta.extraParams;\n                var extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;\n                var requestParams_1 = buildRequestParams$1(arg.range, apiKey, extraParamsObj, dateEnv);\n                requestJson('GET', url, requestParams_1, function (body, xhr) {\n                    if (body.error) {\n                        onFailure({\n                            message: 'Google Calendar API: ' + body.error.message,\n                            errors: body.error.errors,\n                            xhr: xhr,\n                        });\n                    }\n                    else {\n                        onSuccess({\n                            rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone),\n                            xhr: xhr,\n                        });\n                    }\n                }, function (message, xhr) {\n                    onFailure({ message: message, xhr: xhr });\n                });\n            }\n        },\n    };\n    function parseGoogleCalendarId(url) {\n        var match;\n        // detect if the ID was specified as a single string.\n        // will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n        if (/^[^/]+@([^/.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n            return url;\n        }\n        if ((match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^/]*)/.exec(url)) ||\n            (match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^/]*)/.exec(url))) {\n            return decodeURIComponent(match[1]);\n        }\n        return null;\n    }\n    function buildUrl(meta) {\n        var apiBase = meta.googleCalendarApiBase;\n        if (!apiBase) {\n            apiBase = API_BASE;\n        }\n        return apiBase + '/' + encodeURIComponent(meta.googleCalendarId) + '/events';\n    }\n    function buildRequestParams$1(range, apiKey, extraParams, dateEnv) {\n        var params;\n        var startStr;\n        var endStr;\n        if (dateEnv.canComputeOffset) {\n            // strings will naturally have offsets, which GCal needs\n            startStr = dateEnv.formatIso(range.start);\n            endStr = dateEnv.formatIso(range.end);\n        }\n        else {\n            // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day\n            // from the UTC day-start to guarantee we're getting all the events\n            // (start/end will be UTC-coerced dates, so toISOString is okay)\n            startStr = addDays(range.start, -1).toISOString();\n            endStr = addDays(range.end, 1).toISOString();\n        }\n        params = __assign(__assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });\n        if (dateEnv.timeZone !== 'local') {\n            params.timeZone = dateEnv.timeZone;\n        }\n        return params;\n    }\n    function gcalItemsToRawEventDefs(items, gcalTimezone) {\n        return items.map(function (item) { return gcalItemToRawEventDef(item, gcalTimezone); });\n    }\n    function gcalItemToRawEventDef(item, gcalTimezone) {\n        var url = item.htmlLink || null;\n        // make the URLs for each event show times in the correct timezone\n        if (url && gcalTimezone) {\n            url = injectQsComponent(url, 'ctz=' + gcalTimezone);\n        }\n        return {\n            id: item.id,\n            title: item.summary,\n            start: item.start.dateTime || item.start.date,\n            end: item.end.dateTime || item.end.date,\n            url: url,\n            location: item.location,\n            description: item.description,\n        };\n    }\n    // Injects a string like \"arg=value\" into the querystring of a URL\n    // TODO: move to a general util file?\n    function injectQsComponent(url, component) {\n        // inject it after the querystring but before the fragment\n        return url.replace(/(\\?.*?)?(#|$)/, function (whole, qs, hash) { return (qs ? qs + '&' : '?') + component + hash; });\n    }\n    var googleCalendarPlugin = createPlugin({\n        eventSourceDefs: [eventSourceDef$3],\n        optionRefiners: OPTION_REFINERS$4,\n        eventSourceRefiners: EVENT_SOURCE_REFINERS$1,\n    });\n\n    globalPlugins.push(interactionPlugin, dayGridPlugin, timeGridPlugin, listPlugin, plugin, googleCalendarPlugin);\n\n    exports.BASE_OPTION_DEFAULTS = BASE_OPTION_DEFAULTS;\n    exports.BASE_OPTION_REFINERS = BASE_OPTION_REFINERS;\n    exports.BaseComponent = BaseComponent;\n    exports.BgEvent = BgEvent;\n    exports.BootstrapTheme = BootstrapTheme;\n    exports.Calendar = Calendar;\n    exports.CalendarApi = CalendarApi;\n    exports.CalendarContent = CalendarContent;\n    exports.CalendarDataManager = CalendarDataManager;\n    exports.CalendarDataProvider = CalendarDataProvider;\n    exports.CalendarRoot = CalendarRoot;\n    exports.Component = Component;\n    exports.ContentHook = ContentHook;\n    exports.CustomContentRenderContext = CustomContentRenderContext;\n    exports.DateComponent = DateComponent;\n    exports.DateEnv = DateEnv;\n    exports.DateProfileGenerator = DateProfileGenerator;\n    exports.DayCellContent = DayCellContent;\n    exports.DayCellRoot = DayCellRoot;\n    exports.DayGridView = DayTableView;\n    exports.DayHeader = DayHeader;\n    exports.DaySeriesModel = DaySeriesModel;\n    exports.DayTable = DayTable;\n    exports.DayTableModel = DayTableModel;\n    exports.DayTableSlicer = DayTableSlicer;\n    exports.DayTimeCols = DayTimeCols;\n    exports.DayTimeColsSlicer = DayTimeColsSlicer;\n    exports.DayTimeColsView = DayTimeColsView;\n    exports.DelayedRunner = DelayedRunner;\n    exports.Draggable = ExternalDraggable;\n    exports.ElementDragging = ElementDragging;\n    exports.ElementScrollController = ElementScrollController;\n    exports.Emitter = Emitter;\n    exports.EventApi = EventApi;\n    exports.EventRoot = EventRoot;\n    exports.EventSourceApi = EventSourceApi;\n    exports.FeaturefulElementDragging = FeaturefulElementDragging;\n    exports.Fragment = Fragment;\n    exports.Interaction = Interaction;\n    exports.ListView = ListView;\n    exports.MountHook = MountHook;\n    exports.NamedTimeZoneImpl = NamedTimeZoneImpl;\n    exports.NowIndicatorRoot = NowIndicatorRoot;\n    exports.NowTimer = NowTimer;\n    exports.PointerDragging = PointerDragging;\n    exports.PositionCache = PositionCache;\n    exports.RefMap = RefMap;\n    exports.RenderHook = RenderHook;\n    exports.ScrollController = ScrollController;\n    exports.ScrollResponder = ScrollResponder;\n    exports.Scroller = Scroller;\n    exports.SimpleScrollGrid = SimpleScrollGrid;\n    exports.Slicer = Slicer;\n    exports.Splitter = Splitter;\n    exports.StandardEvent = StandardEvent;\n    exports.Table = Table;\n    exports.TableDateCell = TableDateCell;\n    exports.TableDowCell = TableDowCell;\n    exports.TableView = TableView;\n    exports.Theme = Theme;\n    exports.ThirdPartyDraggable = ThirdPartyDraggable;\n    exports.TimeCols = TimeCols;\n    exports.TimeColsSlatsCoords = TimeColsSlatsCoords;\n    exports.TimeColsView = TimeColsView;\n    exports.ViewApi = ViewApi;\n    exports.ViewContextType = ViewContextType;\n    exports.ViewRoot = ViewRoot;\n    exports.WeekNumberRoot = WeekNumberRoot;\n    exports.WindowScrollController = WindowScrollController;\n    exports.addDays = addDays;\n    exports.addDurations = addDurations;\n    exports.addMs = addMs;\n    exports.addWeeks = addWeeks;\n    exports.allowContextMenu = allowContextMenu;\n    exports.allowSelection = allowSelection;\n    exports.applyMutationToEventStore = applyMutationToEventStore;\n    exports.applyStyle = applyStyle;\n    exports.applyStyleProp = applyStyleProp;\n    exports.asCleanDays = asCleanDays;\n    exports.asRoughMinutes = asRoughMinutes;\n    exports.asRoughMs = asRoughMs;\n    exports.asRoughSeconds = asRoughSeconds;\n    exports.buildClassNameNormalizer = buildClassNameNormalizer;\n    exports.buildDayRanges = buildDayRanges;\n    exports.buildDayTableModel = buildDayTableModel;\n    exports.buildEventApis = buildEventApis;\n    exports.buildEventRangeKey = buildEventRangeKey;\n    exports.buildHashFromArray = buildHashFromArray;\n    exports.buildNavLinkData = buildNavLinkData;\n    exports.buildSegCompareObj = buildSegCompareObj;\n    exports.buildSegTimeText = buildSegTimeText;\n    exports.buildSlatMetas = buildSlatMetas;\n    exports.buildTimeColsModel = buildTimeColsModel;\n    exports.collectFromHash = collectFromHash;\n    exports.combineEventUis = combineEventUis;\n    exports.compareByFieldSpec = compareByFieldSpec;\n    exports.compareByFieldSpecs = compareByFieldSpecs;\n    exports.compareNumbers = compareNumbers;\n    exports.compareObjs = compareObjs;\n    exports.computeEdges = computeEdges;\n    exports.computeFallbackHeaderFormat = computeFallbackHeaderFormat;\n    exports.computeHeightAndMargins = computeHeightAndMargins;\n    exports.computeInnerRect = computeInnerRect;\n    exports.computeRect = computeRect;\n    exports.computeSegDraggable = computeSegDraggable;\n    exports.computeSegEndResizable = computeSegEndResizable;\n    exports.computeSegStartResizable = computeSegStartResizable;\n    exports.computeShrinkWidth = computeShrinkWidth;\n    exports.computeSmallestCellWidth = computeSmallestCellWidth;\n    exports.computeVisibleDayRange = computeVisibleDayRange;\n    exports.config = config;\n    exports.constrainPoint = constrainPoint;\n    exports.createContext = createContext$1;\n    exports.createDuration = createDuration;\n    exports.createElement = createElement;\n    exports.createEmptyEventStore = createEmptyEventStore;\n    exports.createEventInstance = createEventInstance;\n    exports.createEventUi = createEventUi;\n    exports.createFormatter = createFormatter;\n    exports.createPlugin = createPlugin;\n    exports.createRef = createRef;\n    exports.diffDates = diffDates;\n    exports.diffDayAndTime = diffDayAndTime;\n    exports.diffDays = diffDays;\n    exports.diffPoints = diffPoints;\n    exports.diffWeeks = diffWeeks;\n    exports.diffWholeDays = diffWholeDays;\n    exports.diffWholeWeeks = diffWholeWeeks;\n    exports.disableCursor = disableCursor;\n    exports.elementClosest = elementClosest;\n    exports.elementMatches = elementMatches;\n    exports.enableCursor = enableCursor;\n    exports.eventTupleToStore = eventTupleToStore;\n    exports.filterEventStoreDefs = filterEventStoreDefs;\n    exports.filterHash = filterHash;\n    exports.findDirectChildren = findDirectChildren;\n    exports.findElements = findElements;\n    exports.flexibleCompare = flexibleCompare;\n    exports.flushToDom = flushToDom$1;\n    exports.formatDate = formatDate;\n    exports.formatDayString = formatDayString;\n    exports.formatIsoTimeString = formatIsoTimeString;\n    exports.formatRange = formatRange;\n    exports.getAllowYScrolling = getAllowYScrolling;\n    exports.getCanVGrowWithinCell = getCanVGrowWithinCell;\n    exports.getClippingParents = getClippingParents;\n    exports.getDateMeta = getDateMeta;\n    exports.getDayClassNames = getDayClassNames;\n    exports.getDefaultEventEnd = getDefaultEventEnd;\n    exports.getElSeg = getElSeg;\n    exports.getEventClassNames = getEventClassNames;\n    exports.getIsRtlScrollbarOnLeft = getIsRtlScrollbarOnLeft;\n    exports.getRectCenter = getRectCenter;\n    exports.getRelevantEvents = getRelevantEvents;\n    exports.getScrollGridClassNames = getScrollGridClassNames;\n    exports.getScrollbarWidths = getScrollbarWidths;\n    exports.getSectionClassNames = getSectionClassNames;\n    exports.getSectionHasLiquidHeight = getSectionHasLiquidHeight;\n    exports.getSegMeta = getSegMeta;\n    exports.getSlotClassNames = getSlotClassNames;\n    exports.getStickyFooterScrollbar = getStickyFooterScrollbar;\n    exports.getStickyHeaderDates = getStickyHeaderDates;\n    exports.getUnequalProps = getUnequalProps;\n    exports.globalLocales = globalLocales;\n    exports.globalPlugins = globalPlugins;\n    exports.greatestDurationDenominator = greatestDurationDenominator;\n    exports.guid = guid;\n    exports.hasBgRendering = hasBgRendering;\n    exports.hasShrinkWidth = hasShrinkWidth;\n    exports.identity = identity;\n    exports.interactionSettingsStore = interactionSettingsStore;\n    exports.interactionSettingsToStore = interactionSettingsToStore;\n    exports.intersectRanges = intersectRanges;\n    exports.intersectRects = intersectRects;\n    exports.isArraysEqual = isArraysEqual;\n    exports.isColPropsEqual = isColPropsEqual;\n    exports.isDateSpansEqual = isDateSpansEqual;\n    exports.isInt = isInt;\n    exports.isInteractionValid = isInteractionValid;\n    exports.isMultiDayRange = isMultiDayRange;\n    exports.isPropsEqual = isPropsEqual;\n    exports.isPropsValid = isPropsValid;\n    exports.isValidDate = isValidDate;\n    exports.listenBySelector = listenBySelector;\n    exports.mapHash = mapHash;\n    exports.memoize = memoize;\n    exports.memoizeArraylike = memoizeArraylike;\n    exports.memoizeHashlike = memoizeHashlike;\n    exports.memoizeObjArg = memoizeObjArg;\n    exports.mergeEventStores = mergeEventStores;\n    exports.multiplyDuration = multiplyDuration;\n    exports.padStart = padStart;\n    exports.parseBusinessHours = parseBusinessHours;\n    exports.parseClassNames = parseClassNames;\n    exports.parseDragMeta = parseDragMeta;\n    exports.parseEventDef = parseEventDef;\n    exports.parseFieldSpecs = parseFieldSpecs;\n    exports.parseMarker = parse;\n    exports.pointInsideRect = pointInsideRect;\n    exports.preventContextMenu = preventContextMenu;\n    exports.preventDefault = preventDefault;\n    exports.preventSelection = preventSelection;\n    exports.rangeContainsMarker = rangeContainsMarker;\n    exports.rangeContainsRange = rangeContainsRange;\n    exports.rangesEqual = rangesEqual;\n    exports.rangesIntersect = rangesIntersect;\n    exports.refineEventDef = refineEventDef;\n    exports.refineProps = refineProps;\n    exports.removeElement = removeElement;\n    exports.removeExact = removeExact;\n    exports.render = render;\n    exports.renderChunkContent = renderChunkContent;\n    exports.renderFill = renderFill;\n    exports.renderMicroColGroup = renderMicroColGroup;\n    exports.renderScrollShim = renderScrollShim;\n    exports.requestJson = requestJson;\n    exports.sanitizeShrinkWidth = sanitizeShrinkWidth;\n    exports.setElSeg = setElSeg;\n    exports.setRef = setRef;\n    exports.sliceEventStore = sliceEventStore;\n    exports.sliceEvents = sliceEvents;\n    exports.sortEventSegs = sortEventSegs;\n    exports.startOfDay = startOfDay;\n    exports.translateRect = translateRect;\n    exports.triggerDateSelect = triggerDateSelect;\n    exports.unmountComponentAtNode = unmountComponentAtNode$1;\n    exports.unpromisify = unpromisify;\n    exports.version = version;\n    exports.whenTransitionDone = whenTransitionDone;\n    exports.wholeDivideDurations = wholeDivideDurations;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n    return exports;\n\n}({}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/icheck-bootstrap/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Hovhannes Bantikyan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/icheck-bootstrap/icheck-bootstrap.css",
    "content": "/*!\n * icheck-bootstrap v3.0.1 (https://github.com/bantikyan/icheck-bootstrap)\n * Copyright 2018 Hovhannes Bantikyan.\n * Licensed under MIT (https://github.com/bantikyan/icheck-bootstrap/blob/master/LICENSE)\n */\n\n [class*=\"icheck-\"] {\n    min-height: 22px;\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n    padding-left: 0px;\n}\n\n.icheck-inline {\n    display: inline-block;\n}\n\n    .icheck-inline + .icheck-inline {\n        margin-left: .75rem;\n        margin-top: 6px;\n    }\n\n[class*=\"icheck-\"] > label {\n    padding-left: 29px !important;\n    min-height: 22px;\n    line-height: 22px;\n    display: inline-block;\n    position: relative;\n    vertical-align: top;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer;\n}\n\n[class*=\"icheck-\"] > input:first-child {\n    position: absolute !important;\n    opacity: 0;\n    margin: 0;\n}\n\n    [class*=\"icheck-\"] > input:first-child:disabled {\n        cursor: default;\n    }\n\n    [class*=\"icheck-\"] > input:first-child + label::before,\n    [class*=\"icheck-\"] > input:first-child + input[type=\"hidden\"] + label::before {\n        content: \"\";\n        display: inline-block;\n        position: absolute;\n        width: 22px;\n        height: 22px;\n        border: 1px solid #D3CFC8;\n        border-radius: 0px;\n        margin-left: -29px;\n    }\n\n    [class*=\"icheck-\"] > input:first-child:checked + label::after,\n    [class*=\"icheck-\"] > input:first-child:checked + input[type=\"hidden\"] + label::after {\n        content: \"\";\n        display: inline-block;\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 7px;\n        height: 10px;\n        border: solid 2px #fff;\n        border-left: none;\n        border-top: none;\n        transform: translate(7.75px, 4.5px) rotate(45deg);\n        -ms-transform: translate(7.75px, 4.5px) rotate(45deg);\n    }\n\n[class*=\"icheck-\"] > input[type=\"radio\"]:first-child + label::before,\n[class*=\"icheck-\"] > input[type=\"radio\"]:first-child + input[type=\"hidden\"] + label::before {\n    border-radius: 50%;\n}\n\n[class*=\"icheck-\"] > input:first-child:not(:checked):not(:disabled):hover + label::before,\n[class*=\"icheck-\"] > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-width: 2px;\n}\n\n[class*=\"icheck-\"] > input:first-child:disabled + label,\n[class*=\"icheck-\"] > input:first-child:disabled + input[type=\"hidden\"] + label,\n[class*=\"icheck-\"] > input:first-child:disabled + label::before,\n[class*=\"icheck-\"] > input:first-child:disabled + input[type=\"hidden\"] + label::before {\n    pointer-events: none;\n    cursor: default;\n    filter: alpha(opacity=65);\n    -webkit-box-shadow: none;\n    box-shadow: none;\n    opacity: .65;\n}\n\n.icheck-default > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-default > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #adadad;\n}\n\n.icheck-default > input:first-child:checked + label::before,\n.icheck-default > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #e6e6e6;\n    border-color: #adadad;\n}\n\n.icheck-default > input:first-child:checked + label::after,\n.icheck-default > input:first-child:checked + input[type=\"hidden\"] + label::after {\n    border-bottom-color: #333;\n    border-right-color: #333;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #2e6da4;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #337ab7;\n    border-color: #2e6da4;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #4cae4c;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #5cb85c;\n    border-color: #4cae4c;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #46b8da;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #5bc0de;\n    border-color: #46b8da;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #eea236;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #f0ad4e;\n    border-color: #eea236;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #d43f3a;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #d9534f;\n    border-color: #d43f3a;\n}\n\n.icheck-turquoise > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-turquoise > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #1abc9c;\n}\n\n.icheck-turquoise > input:first-child:checked + label::before,\n.icheck-turquoise > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #1abc9c;\n    border-color: #1abc9c;\n}\n\n.icheck-emerland > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-emerland > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #2ecc71;\n}\n\n.icheck-emerland > input:first-child:checked + label::before,\n.icheck-emerland > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #2ecc71;\n    border-color: #2ecc71;\n}\n\n.icheck-peterriver > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-peterriver > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #3498db;\n}\n\n.icheck-peterriver > input:first-child:checked + label::before,\n.icheck-peterriver > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #3498db;\n    border-color: #3498db;\n}\n\n.icheck-amethyst > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-amethyst > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #9b59b6;\n}\n\n.icheck-amethyst > input:first-child:checked + label::before,\n.icheck-amethyst > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #9b59b6;\n    border-color: #9b59b6;\n}\n\n.icheck-wetasphalt > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-wetasphalt > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #34495e;\n}\n\n.icheck-wetasphalt > input:first-child:checked + label::before,\n.icheck-wetasphalt > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #34495e;\n    border-color: #34495e;\n}\n\n.icheck-greensea > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-greensea > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #16a085;\n}\n\n.icheck-greensea > input:first-child:checked + label::before,\n.icheck-greensea > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #16a085;\n    border-color: #16a085;\n}\n\n.icheck-nephritis > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-nephritis > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #27ae60;\n}\n\n.icheck-nephritis > input:first-child:checked + label::before,\n.icheck-nephritis > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #27ae60;\n    border-color: #27ae60;\n}\n\n.icheck-belizehole > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-belizehole > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #2980b9;\n}\n\n.icheck-belizehole > input:first-child:checked + label::before,\n.icheck-belizehole > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #2980b9;\n    border-color: #2980b9;\n}\n\n.icheck-wisteria > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-wisteria > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #8e44ad;\n}\n\n.icheck-wisteria > input:first-child:checked + label::before,\n.icheck-wisteria > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #8e44ad;\n    border-color: #8e44ad;\n}\n\n.icheck-midnightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-midnightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #2c3e50;\n}\n\n.icheck-midnightblue > input:first-child:checked + label::before,\n.icheck-midnightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #2c3e50;\n    border-color: #2c3e50;\n}\n\n.icheck-sunflower > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-sunflower > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #f1c40f;\n}\n\n.icheck-sunflower > input:first-child:checked + label::before,\n.icheck-sunflower > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #f1c40f;\n    border-color: #f1c40f;\n}\n\n.icheck-carrot > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-carrot > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #e67e22;\n}\n\n.icheck-carrot > input:first-child:checked + label::before,\n.icheck-carrot > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #e67e22;\n    border-color: #e67e22;\n}\n\n.icheck-alizarin > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-alizarin > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #e74c3c;\n}\n\n.icheck-alizarin > input:first-child:checked + label::before,\n.icheck-alizarin > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #e74c3c;\n    border-color: #e74c3c;\n}\n\n.icheck-clouds > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-clouds > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #ecf0f1;\n}\n\n.icheck-clouds > input:first-child:checked + label::before,\n.icheck-clouds > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #ecf0f1;\n    border-color: #ecf0f1;\n}\n\n.icheck-clouds > input:first-child:checked + label::after,\n.icheck-clouds > input:first-child:checked + input[type=\"hidden\"] + label::after {\n    border-bottom-color: #95a5a6;\n    border-right-color: #95a5a6;\n}\n\n.icheck-concrete > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-concrete > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #95a5a6;\n}\n\n.icheck-concrete > input:first-child:checked + label::before,\n.icheck-concrete > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #95a5a6;\n    border-color: #95a5a6;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #f39c12;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #f39c12;\n    border-color: #f39c12;\n}\n\n.icheck-pumpkin > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pumpkin > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #d35400;\n}\n\n.icheck-pumpkin > input:first-child:checked + label::before,\n.icheck-pumpkin > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #d35400;\n    border-color: #d35400;\n}\n\n.icheck-pomegranate > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pomegranate > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #c0392b;\n}\n\n.icheck-pomegranate > input:first-child:checked + label::before,\n.icheck-pomegranate > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #c0392b;\n    border-color: #c0392b;\n}\n\n.icheck-silver > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-silver > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #bdc3c7;\n}\n\n.icheck-silver > input:first-child:checked + label::before,\n.icheck-silver > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #bdc3c7;\n    border-color: #bdc3c7;\n}\n\n.icheck-asbestos > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-asbestos > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n    border-color: #7f8c8d;\n}\n\n.icheck-asbestos > input:first-child:checked + label::before,\n.icheck-asbestos > input:first-child:checked + input[type=\"hidden\"] + label::before {\n    background-color: #7f8c8d;\n    border-color: #7f8c8d;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/inputmask/inputmask.js",
    "content": "/*!\n * dist/inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2020 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.5-beta.0\n */\n!function webpackUniversalModuleDefinition(root, factory) {\n    if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = factory(); else if (\"function\" == typeof define && define.amd) define([], factory); else {\n        var a = factory();\n        for (var i in a) (\"object\" == typeof exports ? exports : root)[i] = a[i];\n    }\n}(window, function() {\n    return modules = [ function(module) {\n        module.exports = JSON.parse('{\"BACKSPACE\":8,\"BACKSPACE_SAFARI\":127,\"DELETE\":46,\"DOWN\":40,\"END\":35,\"ENTER\":13,\"ESCAPE\":27,\"HOME\":36,\"INSERT\":45,\"LEFT\":37,\"PAGE_DOWN\":34,\"PAGE_UP\":33,\"RIGHT\":39,\"SPACE\":32,\"TAB\":9,\"UP\":38,\"X\":88,\"CONTROL\":17,\"KEY_229\":229}');\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0, __webpack_require__(10);\n        var _mask = __webpack_require__(11), _inputmask = _interopRequireDefault(__webpack_require__(9)), _window = _interopRequireDefault(__webpack_require__(6)), _maskLexer = __webpack_require__(19), _validationTests = __webpack_require__(3), _positioning = __webpack_require__(2), _validation = __webpack_require__(4), _inputHandling = __webpack_require__(5), _eventruler = __webpack_require__(12), _definitions = _interopRequireDefault(__webpack_require__(20)), _defaults = _interopRequireDefault(__webpack_require__(21));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var document = _window.default.document, dataKey = \"_inputmask_opts\";\n        function Inputmask(alias, options, internal) {\n            if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);\n            this.dependencyLib = _inputmask.default, this.el = void 0, this.events = {}, this.maskset = void 0, \n            !0 !== internal && (\"[object Object]\" === Object.prototype.toString.call(alias) ? options = alias : (options = options || {}, \n            alias && (options.alias = alias)), this.opts = _inputmask.default.extend(!0, {}, this.defaults, options), \n            this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, \n            resolveAlias(this.opts.alias, options, this.opts)), this.refreshValue = !1, this.undoValue = void 0, \n            this.$el = void 0, this.skipKeyPressEvent = !1, this.skipInputEvent = !1, this.validationEvent = !1, \n            this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.originalPlaceholder = void 0, \n            this.isComposing = !1;\n        }\n        function resolveAlias(aliasStr, options, opts) {\n            var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n            return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), \n            _inputmask.default.extend(!0, opts, aliasDefinition), _inputmask.default.extend(!0, opts, options), \n            !0) : (null === opts.mask && (opts.mask = aliasStr), !1);\n        }\n        function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n            function importOption(option, optionData) {\n                var attrOption = \"\" === dataAttribute ? option : dataAttribute + \"-\" + option;\n                optionData = void 0 !== optionData ? optionData : npt.getAttribute(attrOption), \n                null !== optionData && (\"string\" == typeof optionData && (0 === option.indexOf(\"on\") ? optionData = _window.default[optionData] : \"false\" === optionData ? optionData = !1 : \"true\" === optionData && (optionData = !0)), \n                userOptions[option] = optionData);\n            }\n            if (!0 === opts.importDataAttributes) {\n                var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;\n                if (attrOptions && \"\" !== attrOptions && (attrOptions = attrOptions.replace(/'/g, '\"'), \n                dataoptions = JSON.parse(\"{\" + attrOptions + \"}\")), dataoptions) for (p in optionData = void 0, \n                dataoptions) if (\"alias\" === p.toLowerCase()) {\n                    optionData = dataoptions[p];\n                    break;\n                }\n                for (option in importOption(\"alias\", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts), \n                opts) {\n                    if (dataoptions) for (p in optionData = void 0, dataoptions) if (p.toLowerCase() === option.toLowerCase()) {\n                        optionData = dataoptions[p];\n                        break;\n                    }\n                    importOption(option, optionData);\n                }\n            }\n            return _inputmask.default.extend(!0, opts, userOptions), \"rtl\" !== npt.dir && !opts.rightAlign || (npt.style.textAlign = \"right\"), \n            \"rtl\" !== npt.dir && !opts.numericInput || (npt.dir = \"ltr\", npt.removeAttribute(\"dir\"), \n            opts.isRTL = !0), Object.keys(userOptions).length;\n        }\n        Inputmask.prototype = {\n            dataAttribute: \"data-inputmask\",\n            defaults: _defaults.default,\n            definitions: _definitions.default,\n            aliases: {},\n            masksCache: {},\n            get isRTL() {\n                return this.opts.isRTL || this.opts.numericInput;\n            },\n            mask: function mask(elems) {\n                var that = this;\n                return \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n                elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el, ndx) {\n                    var scopedOpts = _inputmask.default.extend(!0, {}, that.opts);\n                    if (importAttributeOptions(el, scopedOpts, _inputmask.default.extend(!0, {}, that.userOptions), that.dataAttribute)) {\n                        var maskset = (0, _maskLexer.generateMaskSet)(scopedOpts, that.noMasksCache);\n                        void 0 !== maskset && (void 0 !== el.inputmask && (el.inputmask.opts.autoUnmask = !0, \n                        el.inputmask.remove()), el.inputmask = new Inputmask(void 0, void 0, !0), el.inputmask.opts = scopedOpts, \n                        el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = _inputmask.default.extend(!0, {}, that.userOptions), \n                        el.inputmask.el = el, el.inputmask.$el = (0, _inputmask.default)(el), el.inputmask.maskset = maskset, \n                        _inputmask.default.data(el, dataKey, that.userOptions), _mask.mask.call(el.inputmask));\n                    }\n                }), elems && elems[0] && elems[0].inputmask || this;\n            },\n            option: function option(options, noremask) {\n                return \"string\" == typeof options ? this.opts[options] : \"object\" === _typeof(options) ? (_inputmask.default.extend(this.userOptions, options), \n                this.el && !0 !== noremask && this.mask(this.el), this) : void 0;\n            },\n            unmaskedvalue: function unmaskedvalue(value) {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                void 0 === this.el || void 0 !== value) {\n                    var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                    _inputHandling.checkVal.call(this, void 0, !1, !1, valueBuffer), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, _positioning.getBuffer.call(this), 0, this.opts);\n                }\n                return _inputHandling.unmaskedvalue.call(this, this.el);\n            },\n            remove: function remove() {\n                if (this.el) {\n                    _inputmask.default.data(this.el, dataKey, null);\n                    var cv = this.opts.autoUnmask ? (0, _inputHandling.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask), valueProperty;\n                    cv !== _positioning.getBufferTemplate.call(this).join(\"\") ? this._valueSet(cv, this.opts.autoUnmask) : this._valueSet(\"\"), \n                    _eventruler.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? (valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\"), \n                    valueProperty && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n                        get: this.__valueGet,\n                        set: this.__valueSet,\n                        configurable: !0\n                    })) : document.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), \n                    this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n                }\n                return this.el;\n            },\n            getemptymask: function getemptymask() {\n                return this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                _positioning.getBufferTemplate.call(this).join(\"\");\n            },\n            hasMaskedValue: function hasMaskedValue() {\n                return !this.opts.autoUnmask;\n            },\n            isComplete: function isComplete() {\n                return this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                _validation.isComplete.call(this, _positioning.getBuffer.call(this));\n            },\n            getmetadata: function getmetadata() {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                Array.isArray(this.maskset.metadata)) {\n                    var maskTarget = _validationTests.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n                    return this.maskset.metadata.forEach(function(mtdt) {\n                        return mtdt.mask !== maskTarget || (maskTarget = mtdt, !1);\n                    }), maskTarget;\n                }\n                return this.maskset.metadata;\n            },\n            isValid: function isValid(value) {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                value) {\n                    var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                    _inputHandling.checkVal.call(this, void 0, !0, !1, valueBuffer);\n                } else value = this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\");\n                for (var buffer = _positioning.getBuffer.call(this), rl = _positioning.determineLastRequiredPosition.call(this), lmib = buffer.length - 1; rl < lmib && !_positioning.isMask.call(this, lmib); lmib--) ;\n                return buffer.splice(rl, lmib + 1 - rl), _validation.isComplete.call(this, buffer) && value === (this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\"));\n            },\n            format: function format(value, metadata) {\n                this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache);\n                var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                _inputHandling.checkVal.call(this, void 0, !0, !1, valueBuffer);\n                var formattedValue = this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\");\n                return metadata ? {\n                    value: formattedValue,\n                    metadata: this.getmetadata()\n                } : formattedValue;\n            },\n            setValue: function setValue(value) {\n                this.el && (0, _inputmask.default)(this.el).trigger(\"setvalue\", [ value ]);\n            },\n            analyseMask: _maskLexer.analyseMask\n        }, Inputmask.extendDefaults = function(options) {\n            _inputmask.default.extend(!0, Inputmask.prototype.defaults, options);\n        }, Inputmask.extendDefinitions = function(definition) {\n            _inputmask.default.extend(!0, Inputmask.prototype.definitions, definition);\n        }, Inputmask.extendAliases = function(alias) {\n            _inputmask.default.extend(!0, Inputmask.prototype.aliases, alias);\n        }, Inputmask.format = function(value, options, metadata) {\n            return Inputmask(options).format(value, metadata);\n        }, Inputmask.unmask = function(value, options) {\n            return Inputmask(options).unmaskedvalue(value);\n        }, Inputmask.isValid = function(value, options) {\n            return Inputmask(options).isValid(value);\n        }, Inputmask.remove = function(elems) {\n            \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n            elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el) {\n                el.inputmask && el.inputmask.remove();\n            });\n        }, Inputmask.setValue = function(elems, value) {\n            \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n            elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el) {\n                el.inputmask ? el.inputmask.setValue(value) : (0, _inputmask.default)(el).trigger(\"setvalue\", [ value ]);\n            });\n        }, Inputmask.dependencyLib = _inputmask.default, _window.default.Inputmask = Inputmask;\n        var _default = Inputmask;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.caret = caret, exports.determineLastRequiredPosition = determineLastRequiredPosition, \n        exports.determineNewCaretPosition = determineNewCaretPosition, exports.getBuffer = getBuffer, \n        exports.getBufferTemplate = getBufferTemplate, exports.getLastValidPosition = getLastValidPosition, \n        exports.isMask = isMask, exports.resetMaskSet = resetMaskSet, exports.seekNext = seekNext, \n        exports.seekPrevious = seekPrevious, exports.translatePosition = translatePosition;\n        var _validationTests = __webpack_require__(3), _validation = __webpack_require__(4), _mask = __webpack_require__(11);\n        function caret(input, begin, end, notranslate, isDelete) {\n            var inputmask = this, opts = this.opts, range;\n            if (void 0 === begin) return \"selectionStart\" in input && \"selectionEnd\" in input ? (begin = input.selectionStart, \n            end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), \n            range.commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset, \n            end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), \n            begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length), \n            end = begin + range.text.length), {\n                begin: notranslate ? begin : translatePosition.call(this, begin),\n                end: notranslate ? end : translatePosition.call(this, end)\n            };\n            if (Array.isArray(begin) && (end = this.isRTL ? begin[0] : begin[1], begin = this.isRTL ? begin[1] : begin[0]), \n            void 0 !== begin.begin && (end = this.isRTL ? begin.begin : begin.end, begin = this.isRTL ? begin.end : begin.begin), \n            \"number\" == typeof begin) {\n                begin = notranslate ? begin : translatePosition.call(this, begin), end = notranslate ? end : translatePosition.call(this, end), \n                end = \"number\" == typeof end ? end : begin;\n                var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n                if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, input.inputmask.caretPos = {\n                    begin: begin,\n                    end: end\n                }, opts.insertModeVisual && !1 === opts.insertMode && begin === end && (isDelete || end++), \n                input === (input.inputmask.shadowRoot || document).activeElement) if (\"setSelectionRange\" in input) input.setSelectionRange(begin, end); else if (window.getSelection) {\n                    if (range = document.createRange(), void 0 === input.firstChild || null === input.firstChild) {\n                        var textNode = document.createTextNode(\"\");\n                        input.appendChild(textNode);\n                    }\n                    range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), \n                    range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), \n                    range.collapse(!0);\n                    var sel = window.getSelection();\n                    sel.removeAllRanges(), sel.addRange(range);\n                } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), \n                range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\n            }\n        }\n        function determineLastRequiredPosition(returnDefinition) {\n            var inputmask = this, maskset = this.maskset, $ = this.dependencyLib, buffer = _validationTests.getMaskTemplate.call(this, !0, getLastValidPosition.call(this), !0, !0), bl = buffer.length, pos, lvp = getLastValidPosition.call(this), positions = {}, lvTest = maskset.validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0, testPos;\n            for (pos = lvp + 1; pos < buffer.length; pos++) testPos = _validationTests.getTestTemplate.call(this, pos, ndxIntlzr, pos - 1), \n            ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);\n            var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0;\n            for (pos = bl - 1; lvp < pos && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && 1 != testPos.match.static || !0 === testPos.match.static && testPos.locator[lvTest.alternation] && _validation.checkAlternationMatch.call(this, testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && \"\" !== _validationTests.getTests.call(this, pos)[0].def)) && buffer[pos] === _validationTests.getPlaceholder.call(this, pos, testPos.match)); pos--) bl--;\n            return returnDefinition ? {\n                l: bl,\n                def: positions[bl] ? positions[bl].match : void 0\n            } : bl;\n        }\n        function determineNewCaretPosition(selectedCaret, tabbed) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts;\n            function doRadixFocus(clickPos) {\n                if (\"\" !== opts.radixPoint && 0 !== opts.digits) {\n                    var vps = maskset.validPositions;\n                    if (void 0 === vps[clickPos] || vps[clickPos].input === _validationTests.getPlaceholder.call(inputmask, clickPos)) {\n                        if (clickPos < seekNext.call(inputmask, -1)) return !0;\n                        var radixPos = getBuffer.call(inputmask).indexOf(opts.radixPoint);\n                        if (-1 !== radixPos) {\n                            for (var vp in vps) if (vps[vp] && radixPos < vp && vps[vp].input !== _validationTests.getPlaceholder.call(inputmask, vp)) return !1;\n                            return !0;\n                        }\n                    }\n                }\n                return !1;\n            }\n            if (tabbed && (inputmask.isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end), \n            selectedCaret.begin === selectedCaret.end) {\n                switch (opts.positionCaretOnClick) {\n                  case \"none\":\n                    break;\n\n                  case \"select\":\n                    selectedCaret = {\n                        begin: 0,\n                        end: getBuffer.call(inputmask).length\n                    };\n                    break;\n\n                  case \"ignore\":\n                    selectedCaret.end = selectedCaret.begin = seekNext.call(inputmask, getLastValidPosition.call(inputmask));\n                    break;\n\n                  case \"radixFocus\":\n                    if (doRadixFocus(selectedCaret.begin)) {\n                        var radixPos = getBuffer.call(inputmask).join(\"\").indexOf(opts.radixPoint);\n                        selectedCaret.end = selectedCaret.begin = opts.numericInput ? seekNext.call(inputmask, radixPos) : radixPos;\n                        break;\n                    }\n\n                  default:\n                    var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition.call(inputmask, clickPosition, !0), lastPosition = seekNext.call(inputmask, -1 !== lvclickPosition || isMask.call(inputmask, 0) ? lvclickPosition : -1);\n                    if (clickPosition <= lastPosition) selectedCaret.end = selectedCaret.begin = isMask.call(inputmask, clickPosition, !1, !0) ? clickPosition : seekNext.call(inputmask, clickPosition); else {\n                        var lvp = maskset.validPositions[lvclickPosition], tt = _validationTests.getTestTemplate.call(inputmask, lastPosition, lvp ? lvp.match.locator : void 0, lvp), placeholder = _validationTests.getPlaceholder.call(inputmask, lastPosition, tt.match);\n                        if (\"\" !== placeholder && getBuffer.call(inputmask)[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask.call(inputmask, lastPosition, opts.keepStatic, !0) && tt.match.def === placeholder) {\n                            var newPos = seekNext.call(inputmask, lastPosition);\n                            (newPos <= clickPosition || clickPosition === lastPosition) && (lastPosition = newPos);\n                        }\n                        selectedCaret.end = selectedCaret.begin = lastPosition;\n                    }\n                }\n                return selectedCaret;\n            }\n        }\n        function getBuffer(noCache) {\n            var inputmask = this, maskset = this.maskset;\n            return void 0 !== maskset.buffer && !0 !== noCache || (maskset.buffer = _validationTests.getMaskTemplate.call(this, !0, getLastValidPosition.call(this), !0), \n            void 0 === maskset._buffer && (maskset._buffer = maskset.buffer.slice())), maskset.buffer;\n        }\n        function getBufferTemplate() {\n            var inputmask = this, maskset = this.maskset;\n            return void 0 === maskset._buffer && (maskset._buffer = _validationTests.getMaskTemplate.call(this, !1, 1), \n            void 0 === maskset.buffer && (maskset.buffer = maskset._buffer.slice())), maskset._buffer;\n        }\n        function getLastValidPosition(closestTo, strict, validPositions) {\n            var maskset = this.maskset, before = -1, after = -1, valids = validPositions || maskset.validPositions;\n            for (var posNdx in void 0 === closestTo && (closestTo = -1), valids) {\n                var psNdx = parseInt(posNdx);\n                valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx), \n                closestTo <= psNdx && (after = psNdx));\n            }\n            return -1 === before || before == closestTo ? after : -1 == after ? before : closestTo - before < after - closestTo ? before : after;\n        }\n        function isMask(pos, strict, fuzzy) {\n            var inputmask = this, maskset = this.maskset, test = _validationTests.getTestTemplate.call(this, pos).match;\n            if (\"\" === test.def && (test = _validationTests.getTest.call(this, pos).match), \n            !0 !== test.static) return test.fn;\n            if (!0 === fuzzy && void 0 !== maskset.validPositions[pos] && !0 !== maskset.validPositions[pos].generatedInput) return !0;\n            if (!0 !== strict && -1 < pos) {\n                if (fuzzy) {\n                    var tests = _validationTests.getTests.call(this, pos);\n                    return tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0);\n                }\n                var testTemplate = _validationTests.determineTestTemplate.call(this, pos, _validationTests.getTests.call(this, pos)), testPlaceHolder = _validationTests.getPlaceholder.call(this, pos, testTemplate.match);\n                return testTemplate.match.def !== testPlaceHolder;\n            }\n            return !1;\n        }\n        function resetMaskSet(soft) {\n            var maskset = this.maskset;\n            maskset.buffer = void 0, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);\n        }\n        function seekNext(pos, newBlock, fuzzy) {\n            var inputmask = this;\n            void 0 === fuzzy && (fuzzy = !0);\n            for (var position = pos + 1; \"\" !== _validationTests.getTest.call(this, position).match.def && (!0 === newBlock && (!0 !== _validationTests.getTest.call(this, position).match.newBlockMarker || !isMask.call(this, position, void 0, !0)) || !0 !== newBlock && !isMask.call(this, position, void 0, fuzzy)); ) position++;\n            return position;\n        }\n        function seekPrevious(pos, newBlock) {\n            var inputmask = this, position = pos - 1;\n            if (pos <= 0) return 0;\n            for (;0 < position && (!0 === newBlock && (!0 !== _validationTests.getTest.call(this, position).match.newBlockMarker || !isMask.call(this, position, void 0, !0)) || !0 !== newBlock && !isMask.call(this, position, void 0, !0)); ) position--;\n            return position;\n        }\n        function translatePosition(pos) {\n            var inputmask = this, opts = this.opts, el = this.el;\n            return !this.isRTL || \"number\" != typeof pos || opts.greedy && \"\" === opts.placeholder || !el || (pos = this._valueGet().length - pos), \n            pos;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function getLocator(tst, align) {\n            var locator = (null != tst.alternation ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(\"\");\n            if (\"\" !== locator) for (;locator.length < align; ) locator += \"0\";\n            return locator;\n        }\n        function getDecisionTaker(tst) {\n            var decisionTaker = tst.locator[tst.alternation];\n            return \"string\" == typeof decisionTaker && 0 < decisionTaker.length && (decisionTaker = decisionTaker.split(\",\")[0]), \n            void 0 !== decisionTaker ? decisionTaker.toString() : \"\";\n        }\n        function getPlaceholder(pos, test, returnPL) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset;\n            if (test = test || getTest.call(this, pos).match, void 0 !== test.placeholder || !0 === returnPL) return \"function\" == typeof test.placeholder ? test.placeholder(opts) : test.placeholder;\n            if (!0 !== test.static) return opts.placeholder.charAt(pos % opts.placeholder.length);\n            if (-1 < pos && void 0 === maskset.validPositions[pos]) {\n                var tests = getTests.call(this, pos), staticAlternations = [], prevTest;\n                if (tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (\"\" !== tests[i].match.def && !0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (!0 === tests[i].match.static || void 0 === prevTest || !1 !== tests[i].match.fn.test(prevTest.match.def, maskset, pos, !0, opts)) && (staticAlternations.push(tests[i]), \n                !0 === tests[i].match.static && (prevTest = tests[i]), 1 < staticAlternations.length && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);\n            }\n            return test.def;\n        }\n        function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset, greedy = opts.greedy;\n            clearOptionalTail && (opts.greedy = !1), minimalPos = minimalPos || 0;\n            var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, jitRenderStatic;\n            do {\n                if (!0 === baseOnInput && maskset.validPositions[pos]) testPos = clearOptionalTail && !0 === maskset.validPositions[pos].match.optionality && void 0 === maskset.validPositions[pos + 1] && (!0 === maskset.validPositions[pos].generatedInput || maskset.validPositions[pos].input == opts.skipOptionalPartCharacter && 0 < pos) ? determineTestTemplate.call(this, pos, getTests.call(this, pos, ndxIntlzr, pos - 1)) : maskset.validPositions[pos], \n                test = testPos.match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder.call(this, pos, test)); else {\n                    testPos = getTestTemplate.call(this, pos, ndxIntlzr, pos - 1), test = testPos.match, \n                    ndxIntlzr = testPos.locator.slice();\n                    var jitMasking = !0 !== noJit && (!1 !== opts.jitMasking ? opts.jitMasking : test.jit);\n                    jitRenderStatic = jitRenderStatic && test.static && test.def !== opts.groupSeparator && null === test.fn || maskset.validPositions[pos - 1] && test.static && test.def !== opts.groupSeparator && null === test.fn, \n                    jitRenderStatic || !1 === jitMasking || void 0 === jitMasking || \"number\" == typeof jitMasking && isFinite(jitMasking) && pos < jitMasking ? maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder.call(this, pos, test)) : jitRenderStatic = !1;\n                }\n                pos++;\n            } while ((void 0 === this.maxLength || pos < this.maxLength) && (!0 !== test.static || \"\" !== test.def) || pos < minimalPos);\n            return \"\" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), !1 === includeMode && void 0 !== maskset.maskLength || (maskset.maskLength = pos - 1), \n            opts.greedy = greedy, maskTemplate;\n        }\n        function getTestTemplate(pos, ndxIntlzr, tstPs) {\n            var inputmask = this, maskset = this.maskset;\n            return maskset.validPositions[pos] || determineTestTemplate.call(this, pos, getTests.call(this, pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n        }\n        function determineTestTemplate(pos, tests) {\n            var inputmask = this, opts = this.opts;\n            pos = 0 < pos ? pos - 1 : 0;\n            for (var altTest = getTest.call(this, pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch, ndx = 0; ndx < tests.length; ndx++) {\n                var tst = tests[ndx];\n                tstLocator = getLocator(tst, targetLocator.length);\n                var distance = Math.abs(tstLocator - targetLocator);\n                (void 0 === closest || \"\" !== tstLocator && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && \"master\" === bestMatch.match.newBlockMarker && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) && (closest = distance, \n                bestMatch = tst);\n            }\n            return bestMatch;\n        }\n        function getTest(pos, tests) {\n            var inputmask = this, maskset = this.maskset;\n            return maskset.validPositions[pos] ? maskset.validPositions[pos] : (tests || getTests.call(this, pos))[0];\n        }\n        function getTests(pos, ndxIntlzr, tstPs) {\n            var inputmask = this, $ = this.dependencyLib, maskset = this.maskset, opts = this.opts, el = this.el, maskTokens = maskset.maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n            function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n                function handleMatch(match, loopNdx, quantifierRecurse) {\n                    function isFirstMatch(latestMatch, tokenGroup) {\n                        var firstMatch = 0 === tokenGroup.matches.indexOf(latestMatch);\n                        return firstMatch || tokenGroup.matches.every(function(match, ndx) {\n                            return !0 === match.isQuantifier ? firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]) : Object.prototype.hasOwnProperty.call(match, \"matches\") && (firstMatch = isFirstMatch(latestMatch, match)), \n                            !firstMatch;\n                        }), firstMatch;\n                    }\n                    function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n                        var bestMatch, indexPos;\n                        if ((maskset.tests[pos] || maskset.validPositions[pos]) && (maskset.tests[pos] || [ maskset.validPositions[pos] ]).every(function(lmnt, ndx) {\n                            if (lmnt.mloc[alternateNdx]) return bestMatch = lmnt, !1;\n                            var alternation = void 0 !== targetAlternation ? targetAlternation : lmnt.alternation, ndxPos = void 0 !== lmnt.locator[alternation] ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n                            return (void 0 === indexPos || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt, \n                            indexPos = ndxPos), !0;\n                        }), bestMatch) {\n                            var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation], locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;\n                            return locator.slice((void 0 !== targetAlternation ? targetAlternation : bestMatch.alternation) + 1);\n                        }\n                        return void 0 !== targetAlternation ? resolveNdxInitializer(pos, alternateNdx) : void 0;\n                    }\n                    function isSubsetOf(source, target) {\n                        function expand(pattern) {\n                            for (var expanded = [], start = -1, end, i = 0, l = pattern.length; i < l; i++) if (\"-\" === pattern.charAt(i)) for (end = pattern.charCodeAt(i + 1); ++start < end; ) expanded.push(String.fromCharCode(start)); else start = pattern.charCodeAt(i), \n                            expanded.push(pattern.charAt(i));\n                            return expanded.join(\"\");\n                        }\n                        return source.match.def === target.match.nativeDef || !(!(opts.regex || source.match.fn instanceof RegExp && target.match.fn instanceof RegExp) || !0 === source.match.static || !0 === target.match.static) && -1 !== expand(target.match.fn.toString().replace(/[[\\]/]/g, \"\")).indexOf(expand(source.match.fn.toString().replace(/[[\\]/]/g, \"\")));\n                    }\n                    function staticCanMatchDefinition(source, target) {\n                        return !0 === source.match.static && !0 !== target.match.static && target.match.fn.test(source.match.def, maskset, pos, !1, opts, !1);\n                    }\n                    function setMergeLocators(targetMatch, altMatch) {\n                        var alternationNdx = targetMatch.alternation, shouldMerge = void 0 === altMatch || alternationNdx === altMatch.alternation && -1 === targetMatch.locator[alternationNdx].toString().indexOf(altMatch.locator[alternationNdx]);\n                        if (!shouldMerge && alternationNdx > altMatch.alternation) for (var i = altMatch.alternation; i < alternationNdx; i++) if (targetMatch.locator[i] !== altMatch.locator[i]) {\n                            alternationNdx = i, shouldMerge = !0;\n                            break;\n                        }\n                        if (shouldMerge) {\n                            targetMatch.mloc = targetMatch.mloc || {};\n                            var locNdx = targetMatch.locator[alternationNdx];\n                            if (void 0 !== locNdx) {\n                                if (\"string\" == typeof locNdx && (locNdx = locNdx.split(\",\")[0]), void 0 === targetMatch.mloc[locNdx] && (targetMatch.mloc[locNdx] = targetMatch.locator.slice()), \n                                void 0 !== altMatch) {\n                                    for (var ndx in altMatch.mloc) \"string\" == typeof ndx && (ndx = ndx.split(\",\")[0]), \n                                    void 0 === targetMatch.mloc[ndx] && (targetMatch.mloc[ndx] = altMatch.mloc[ndx]);\n                                    targetMatch.locator[alternationNdx] = Object.keys(targetMatch.mloc).join(\",\");\n                                }\n                                return !0;\n                            }\n                            targetMatch.alternation = void 0;\n                        }\n                        return !1;\n                    }\n                    function isSameLevel(targetMatch, altMatch) {\n                        if (targetMatch.locator.length !== altMatch.locator.length) return !1;\n                        for (var locNdx = targetMatch.alternation + 1; locNdx < targetMatch.locator.length; locNdx++) if (targetMatch.locator[locNdx] !== altMatch.locator[locNdx]) return !1;\n                        return !0;\n                    }\n                    if (testPos > pos + opts._maxTestPos) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + maskset.mask;\n                    if (testPos === pos && void 0 === match.matches) return matches.push({\n                        match: match,\n                        locator: loopNdx.reverse(),\n                        cd: cacheDependency,\n                        mloc: {}\n                    }), !0;\n                    if (void 0 !== match.matches) {\n                        if (match.isGroup && quantifierRecurse !== match) {\n                            if (match = handleMatch(maskToken.matches[maskToken.matches.indexOf(match) + 1], loopNdx, quantifierRecurse), \n                            match) return !0;\n                        } else if (match.isOptional) {\n                            var optionalToken = match, mtchsNdx = matches.length;\n                            if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse), \n                            match) {\n                                if (matches.forEach(function(mtch, ndx) {\n                                    mtchsNdx <= ndx && (mtch.match.optionality = !0);\n                                }), latestMatch = matches[matches.length - 1].match, void 0 !== quantifierRecurse || !isFirstMatch(latestMatch, optionalToken)) return !0;\n                                insertStop = !0, testPos = pos;\n                            }\n                        } else if (match.isAlternator) {\n                            var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = 0 < ndxInitializer.length ? ndxInitializer.shift() : -1;\n                            if (-1 === altIndex || \"string\" == typeof altIndex) {\n                                var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;\n                                if (\"string\" == typeof altIndex) altIndexArr = altIndex.split(\",\"); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx.toString());\n                                if (void 0 !== maskset.excludes[pos]) {\n                                    for (var altIndexArrClone = altIndexArr.slice(), i = 0, exl = maskset.excludes[pos].length; i < exl; i++) {\n                                        var excludeSet = maskset.excludes[pos][i].toString().split(\":\");\n                                        loopNdx.length == excludeSet[1] && altIndexArr.splice(altIndexArr.indexOf(excludeSet[0]), 1);\n                                    }\n                                    0 === altIndexArr.length && (delete maskset.excludes[pos], altIndexArr = altIndexArrClone);\n                                }\n                                (!0 === opts.keepStatic || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) && (altIndexArr = altIndexArr.slice(0, 1));\n                                for (var unMatchedAlternation = !1, ndx = 0; ndx < altIndexArr.length; ndx++) {\n                                    amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = \"string\" == typeof altIndex && resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(), \n                                    alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) ? match = !0 : 0 === ndx && (unMatchedAlternation = !0), \n                                    maltMatches = matches.slice(), testPos = currentPos, matches = [];\n                                    for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n                                        var altMatch = maltMatches[ndx1], dropMatch = !1;\n                                        altMatch.match.jit = altMatch.match.jit || unMatchedAlternation, altMatch.alternation = altMatch.alternation || loopNdxCnt, \n                                        setMergeLocators(altMatch);\n                                        for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n                                            var altMatch2 = malternateMatches[ndx2];\n                                            if (\"string\" != typeof altIndex || void 0 !== altMatch.alternation && altIndexArr.includes(altMatch.locator[altMatch.alternation].toString())) {\n                                                if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {\n                                                    dropMatch = !0, setMergeLocators(altMatch2, altMatch);\n                                                    break;\n                                                }\n                                                if (isSubsetOf(altMatch, altMatch2)) {\n                                                    setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));\n                                                    break;\n                                                }\n                                                if (isSubsetOf(altMatch2, altMatch)) {\n                                                    setMergeLocators(altMatch2, altMatch);\n                                                    break;\n                                                }\n                                                if (staticCanMatchDefinition(altMatch, altMatch2)) {\n                                                    isSameLevel(altMatch, altMatch2) || void 0 !== el.inputmask.userOptions.keepStatic ? setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, \n                                                    malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch)) : opts.keepStatic = !0;\n                                                    break;\n                                                }\n                                            }\n                                        }\n                                        dropMatch || malternateMatches.push(altMatch);\n                                    }\n                                }\n                                matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = 0 < matches.length, \n                                match = 0 < malternateMatches.length, ndxInitializer = ndxInitializerClone.slice();\n                            } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n                            if (match) return !0;\n                        } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[maskToken.matches.indexOf(match) - 1]) for (var qt = match, qndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n                            var tokenGroup = maskToken.matches[maskToken.matches.indexOf(qt) - 1];\n                            if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup), match) {\n                                if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx >= qt.quantifier.min, \n                                latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit, \n                                latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {\n                                    insertStop = !0, testPos = pos;\n                                    break;\n                                }\n                                return latestMatch.jit && (maskset.jitOffset[pos] = tokenGroup.matches.length - tokenGroup.matches.indexOf(latestMatch)), \n                                !0;\n                            }\n                        } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse), \n                        match) return !0;\n                    } else testPos++;\n                }\n                for (var tndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {\n                    var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n                    if (match && testPos === pos) return match;\n                    if (pos < testPos) break;\n                }\n            }\n            function mergeLocators(pos, tests) {\n                var locator = [], alternation;\n                return Array.isArray(tests) || (tests = [ tests ]), 0 < tests.length && (void 0 === tests[0].alternation || !0 === opts.keepStatic ? (locator = determineTestTemplate.call(inputmask, pos, tests.slice()).locator.slice(), \n                0 === locator.length && (locator = tests[0].locator.slice())) : tests.forEach(function(tst) {\n                    \"\" !== tst.def && (0 === locator.length ? (alternation = tst.alternation, locator = tst.locator.slice()) : tst.locator[alternation] && -1 === locator[alternation].toString().indexOf(tst.locator[alternation]) && (locator[alternation] += \",\" + tst.locator[alternation]));\n                })), locator;\n            }\n            if (-1 < pos && (void 0 === inputmask.maxLength || pos < inputmask.maxLength)) {\n                if (void 0 === ndxIntlzr) {\n                    for (var previousPos = pos - 1, test; void 0 === (test = maskset.validPositions[previousPos] || maskset.tests[previousPos]) && -1 < previousPos; ) previousPos--;\n                    void 0 !== test && -1 < previousPos && (ndxInitializer = mergeLocators(previousPos, test), \n                    cacheDependency = ndxInitializer.join(\"\"), testPos = previousPos);\n                }\n                if (maskset.tests[pos] && maskset.tests[pos][0].cd === cacheDependency) return maskset.tests[pos];\n                for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n                    var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);\n                    if (match && testPos === pos || pos < testPos) break;\n                }\n            }\n            return 0 !== matches.length && !insertStop || matches.push({\n                match: {\n                    fn: null,\n                    static: !0,\n                    optionality: !1,\n                    casing: null,\n                    def: \"\",\n                    placeholder: \"\"\n                },\n                locator: [],\n                mloc: {},\n                cd: cacheDependency\n            }), void 0 !== ndxIntlzr && maskset.tests[pos] ? $.extend(!0, [], matches) : (maskset.tests[pos] = $.extend(!0, [], matches), \n            maskset.tests[pos]);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.determineTestTemplate = determineTestTemplate, exports.getDecisionTaker = getDecisionTaker, \n        exports.getMaskTemplate = getMaskTemplate, exports.getPlaceholder = getPlaceholder, \n        exports.getTest = getTest, exports.getTests = getTests, exports.getTestTemplate = getTestTemplate;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.alternate = alternate, exports.checkAlternationMatch = checkAlternationMatch, \n        exports.isComplete = isComplete, exports.isValid = isValid, exports.refreshFromBuffer = refreshFromBuffer, \n        exports.revalidateMask = revalidateMask, exports.handleRemove = handleRemove;\n        var _validationTests = __webpack_require__(3), _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _eventhandlers = __webpack_require__(7);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function alternate(maskPos, c, strict, fromIsValid, rAltPos, selection) {\n            var inputmask = this, $ = this.dependencyLib, opts = this.opts, maskset = this.maskset, validPsClone = $.extend(!0, {}, maskset.validPositions), tstClone = $.extend(!0, {}, maskset.tests), lastAlt, alternation, isValidRslt = !1, returnRslt = !1, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = void 0 !== rAltPos ? rAltPos : _positioning.getLastValidPosition.call(this), nextPos, input, begin, end;\n            if (selection && (begin = selection.begin, end = selection.end, selection.begin > selection.end && (begin = selection.end, \n            end = selection.begin)), -1 === lAltPos && void 0 === rAltPos) lastAlt = 0, prevAltPos = _validationTests.getTest.call(this, lastAlt), \n            alternation = prevAltPos.alternation; else for (;0 <= lAltPos; lAltPos--) if (altPos = maskset.validPositions[lAltPos], \n            altPos && void 0 !== altPos.alternation) {\n                if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;\n                lastAlt = lAltPos, alternation = maskset.validPositions[lastAlt].alternation, prevAltPos = altPos;\n            }\n            if (void 0 !== alternation) {\n                decisionPos = parseInt(lastAlt), maskset.excludes[decisionPos] = maskset.excludes[decisionPos] || [], \n                !0 !== maskPos && maskset.excludes[decisionPos].push((0, _validationTests.getDecisionTaker)(prevAltPos) + \":\" + prevAltPos.alternation);\n                var validInputs = [], resultPos = -1;\n                for (i = decisionPos; i < _positioning.getLastValidPosition.call(this, void 0, !0) + 1; i++) -1 === resultPos && maskPos <= i && void 0 !== c && (validInputs.push(c), \n                resultPos = validInputs.length - 1), validPos = maskset.validPositions[i], validPos && !0 !== validPos.generatedInput && (void 0 === selection || i < begin || end <= i) && validInputs.push(validPos.input), \n                delete maskset.validPositions[i];\n                for (-1 === resultPos && void 0 !== c && (validInputs.push(c), resultPos = validInputs.length - 1); void 0 !== maskset.excludes[decisionPos] && maskset.excludes[decisionPos].length < 10; ) {\n                    for (maskset.tests = {}, _positioning.resetMaskSet.call(this, !0), isValidRslt = !0, \n                    i = 0; i < validInputs.length && (nextPos = isValidRslt.caret || _positioning.getLastValidPosition.call(this, void 0, !0) + 1, \n                    input = validInputs[i], isValidRslt = isValid.call(this, nextPos, input, !1, fromIsValid, !0)); i++) i === resultPos && (returnRslt = isValidRslt), \n                    1 == maskPos && isValidRslt && (returnRslt = {\n                        caretPos: i\n                    });\n                    if (isValidRslt) break;\n                    if (_positioning.resetMaskSet.call(this), prevAltPos = _validationTests.getTest.call(this, decisionPos), \n                    maskset.validPositions = $.extend(!0, {}, validPsClone), maskset.tests = $.extend(!0, {}, tstClone), \n                    !maskset.excludes[decisionPos]) {\n                        returnRslt = alternate.call(this, maskPos, c, strict, fromIsValid, decisionPos - 1, selection);\n                        break;\n                    }\n                    var decisionTaker = (0, _validationTests.getDecisionTaker)(prevAltPos);\n                    if (-1 !== maskset.excludes[decisionPos].indexOf(decisionTaker + \":\" + prevAltPos.alternation)) {\n                        returnRslt = alternate.call(this, maskPos, c, strict, fromIsValid, decisionPos - 1, selection);\n                        break;\n                    }\n                    for (maskset.excludes[decisionPos].push(decisionTaker + \":\" + prevAltPos.alternation), \n                    i = decisionPos; i < _positioning.getLastValidPosition.call(this, void 0, !0) + 1; i++) delete maskset.validPositions[i];\n                }\n            }\n            return returnRslt && !1 === opts.keepStatic || delete maskset.excludes[decisionPos], \n            returnRslt;\n        }\n        function casing(elem, test, pos) {\n            var opts = this.opts, maskset = this.maskset;\n            switch (opts.casing || test.casing) {\n              case \"upper\":\n                elem = elem.toUpperCase();\n                break;\n\n              case \"lower\":\n                elem = elem.toLowerCase();\n                break;\n\n              case \"title\":\n                var posBefore = maskset.validPositions[pos - 1];\n                elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(_keycode.default.SPACE) ? elem.toUpperCase() : elem.toLowerCase();\n                break;\n\n              default:\n                if (\"function\" == typeof opts.casing) {\n                    var args = Array.prototype.slice.call(arguments);\n                    args.push(maskset.validPositions), elem = opts.casing.apply(this, args);\n                }\n            }\n            return elem;\n        }\n        function checkAlternationMatch(altArr1, altArr2, na) {\n            for (var opts = this.opts, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = void 0 !== na ? na.split(\",\") : [], naNdx, i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);\n            for (var alndx = 0; alndx < altArr1.length; alndx++) if (altArrC.includes(altArr1[alndx])) {\n                isMatch = !0;\n                break;\n            }\n            return isMatch;\n        }\n        function handleRemove(input, k, pos, strict, fromIsValid) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts;\n            if ((opts.numericInput || this.isRTL) && (k === _keycode.default.BACKSPACE ? k = _keycode.default.DELETE : k === _keycode.default.DELETE && (k = _keycode.default.BACKSPACE), \n            this.isRTL)) {\n                var pend = pos.end;\n                pos.end = pos.begin, pos.begin = pend;\n            }\n            var lvp = _positioning.getLastValidPosition.call(this, void 0, !0), offset;\n            if (pos.end >= _positioning.getBuffer.call(this).length && lvp >= pos.end && (pos.end = lvp + 1), \n            k === _keycode.default.BACKSPACE ? pos.end - pos.begin < 1 && (pos.begin = _positioning.seekPrevious.call(this, pos.begin)) : k === _keycode.default.DELETE && pos.begin === pos.end && (pos.end = _positioning.isMask.call(this, pos.end, !0, !0) ? pos.end + 1 : _positioning.seekNext.call(this, pos.end) + 1), \n            !1 !== (offset = revalidateMask.call(this, pos))) {\n                if (!0 !== strict && !1 !== opts.keepStatic || null !== opts.regex && -1 !== _validationTests.getTest.call(this, pos.begin).match.def.indexOf(\"|\")) {\n                    var result = alternate.call(this, !0);\n                    if (result) {\n                        var newPos = void 0 !== result.caret ? result.caret : result.pos ? _positioning.seekNext.call(this, result.pos.begin ? result.pos.begin : result.pos) : _positioning.getLastValidPosition.call(this, -1, !0);\n                        (k !== _keycode.default.DELETE || pos.begin > newPos) && pos.begin;\n                    }\n                }\n                !0 !== strict && (maskset.p = k === _keycode.default.DELETE ? pos.begin + offset : pos.begin);\n            }\n        }\n        function isComplete(buffer) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset;\n            if (\"function\" == typeof opts.isComplete) return opts.isComplete(buffer, opts);\n            if (\"*\" !== opts.repeat) {\n                var complete = !1, lrp = _positioning.determineLastRequiredPosition.call(this, !0), aml = _positioning.seekPrevious.call(this, lrp.l);\n                if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n                    complete = !0;\n                    for (var i = 0; i <= aml; i++) {\n                        var test = _validationTests.getTestTemplate.call(this, i).match;\n                        if (!0 !== test.static && void 0 === maskset.validPositions[i] && !0 !== test.optionality && !0 !== test.optionalQuantifier || !0 === test.static && buffer[i] !== _validationTests.getPlaceholder.call(this, i, test)) {\n                            complete = !1;\n                            break;\n                        }\n                    }\n                }\n                return complete;\n            }\n        }\n        function isValid(pos, c, strict, fromIsValid, fromAlternate, validateOnly, fromCheckval) {\n            var inputmask = this, $ = this.dependencyLib, opts = this.opts, el = inputmask.el, maskset = inputmask.maskset;\n            function isSelection(posObj) {\n                return inputmask.isRTL ? 1 < posObj.begin - posObj.end || posObj.begin - posObj.end == 1 : 1 < posObj.end - posObj.begin || posObj.end - posObj.begin == 1;\n            }\n            strict = !0 === strict;\n            var maskPos = pos;\n            function processCommandObject(commandObj) {\n                if (void 0 !== commandObj) {\n                    if (void 0 !== commandObj.remove && (Array.isArray(commandObj.remove) || (commandObj.remove = [ commandObj.remove ]), \n                    commandObj.remove.sort(function(a, b) {\n                        return b.pos - a.pos;\n                    }).forEach(function(lmnt) {\n                        revalidateMask.call(inputmask, {\n                            begin: lmnt,\n                            end: lmnt + 1\n                        });\n                    }), commandObj.remove = void 0), void 0 !== commandObj.insert && (Array.isArray(commandObj.insert) || (commandObj.insert = [ commandObj.insert ]), \n                    commandObj.insert.sort(function(a, b) {\n                        return a.pos - b.pos;\n                    }).forEach(function(lmnt) {\n                        \"\" !== lmnt.c && isValid.call(inputmask, lmnt.pos, lmnt.c, void 0 === lmnt.strict || lmnt.strict, void 0 !== lmnt.fromIsValid ? lmnt.fromIsValid : fromIsValid);\n                    }), commandObj.insert = void 0), commandObj.refreshFromBuffer && commandObj.buffer) {\n                        var refresh = commandObj.refreshFromBuffer;\n                        refreshFromBuffer.call(inputmask, !0 === refresh ? refresh : refresh.start, refresh.end, commandObj.buffer), \n                        commandObj.refreshFromBuffer = void 0;\n                    }\n                    void 0 !== commandObj.rewritePosition && (maskPos = commandObj.rewritePosition, \n                    commandObj = !0);\n                }\n                return commandObj;\n            }\n            function _isValid(position, c, strict) {\n                var rslt = !1;\n                return _validationTests.getTests.call(inputmask, position).every(function(tst, ndx) {\n                    var test = tst.match;\n                    if (_positioning.getBuffer.call(inputmask, !0), rslt = null != test.fn ? test.fn.test(c, maskset, position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && \"\" !== test.def && {\n                        c: _validationTests.getPlaceholder.call(inputmask, position, test, !0) || test.def,\n                        pos: position\n                    }, !1 === rslt) return !0;\n                    var elem = void 0 !== rslt.c ? rslt.c : c, validatedPos = position;\n                    return elem = elem === opts.skipOptionalPartCharacter && !0 === test.static ? _validationTests.getPlaceholder.call(inputmask, position, test, !0) || test.def : elem, \n                    rslt = processCommandObject(rslt), !0 !== rslt && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos), \n                    !0 !== rslt && void 0 === rslt.pos && void 0 === rslt.c || !1 === revalidateMask.call(inputmask, pos, $.extend({}, tst, {\n                        input: casing.call(inputmask, elem, test, validatedPos)\n                    }), fromIsValid, validatedPos) && (rslt = !1), !1;\n                }), rslt;\n            }\n            void 0 !== pos.begin && (maskPos = inputmask.isRTL ? pos.end : pos.begin);\n            var result = !0, positionsClone = $.extend(!0, {}, maskset.validPositions);\n            if (!1 === opts.keepStatic && void 0 !== maskset.excludes[maskPos] && !0 !== fromAlternate && !0 !== fromIsValid) for (var i = maskPos; i < (inputmask.isRTL ? pos.begin : pos.end); i++) void 0 !== maskset.excludes[i] && (maskset.excludes[i] = void 0, \n            delete maskset.tests[i]);\n            if (\"function\" == typeof opts.preValidation && !0 !== fromIsValid && !0 !== validateOnly && (result = opts.preValidation.call(el, _positioning.getBuffer.call(inputmask), maskPos, c, isSelection(pos), opts, maskset, pos, strict || fromAlternate), \n            result = processCommandObject(result)), !0 === result) {\n                if (void 0 === inputmask.maxLength || maskPos < inputmask.maxLength) {\n                    if (result = _isValid(maskPos, c, strict), (!strict || !0 === fromIsValid) && !1 === result && !0 !== validateOnly) {\n                        var currentPosValid = maskset.validPositions[maskPos];\n                        if (!currentPosValid || !0 !== currentPosValid.match.static || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {\n                            if (opts.insertMode || void 0 === maskset.validPositions[_positioning.seekNext.call(inputmask, maskPos)] || pos.end > maskPos) {\n                                var skip = !1;\n                                if (maskset.jitOffset[maskPos] && void 0 === maskset.validPositions[_positioning.seekNext.call(inputmask, maskPos)] && (result = isValid.call(inputmask, maskPos + maskset.jitOffset[maskPos], c, !0), \n                                !1 !== result && (!0 !== fromAlternate && (result.caret = maskPos), skip = !0)), \n                                pos.end > maskPos && (maskset.validPositions[maskPos] = void 0), !skip && !_positioning.isMask.call(inputmask, maskPos, opts.keepStatic && 0 === maskPos)) for (var nPos = maskPos + 1, snPos = _positioning.seekNext.call(inputmask, maskPos, !1, 0 !== maskPos); nPos <= snPos; nPos++) if (result = _isValid(nPos, c, strict), \n                                !1 !== result) {\n                                    result = trackbackPositions.call(inputmask, maskPos, void 0 !== result.pos ? result.pos : nPos) || result, \n                                    maskPos = nPos;\n                                    break;\n                                }\n                            }\n                        } else result = {\n                            caret: _positioning.seekNext.call(inputmask, maskPos)\n                        };\n                    }\n                } else result = !1;\n                !1 !== result || !opts.keepStatic || !isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && 0 !== maskPos || strict || !0 === fromAlternate ? isSelection(pos) && maskset.tests[maskPos] && 1 < maskset.tests[maskPos].length && opts.keepStatic && !strict && !0 !== fromAlternate && (result = alternate.call(inputmask, !0)) : result = alternate.call(inputmask, maskPos, c, strict, fromIsValid, void 0, pos), \n                !0 === result && (result = {\n                    pos: maskPos\n                });\n            }\n            if (\"function\" == typeof opts.postValidation && !0 !== fromIsValid && !0 !== validateOnly) {\n                var postResult = opts.postValidation.call(el, _positioning.getBuffer.call(inputmask, !0), void 0 !== pos.begin ? inputmask.isRTL ? pos.end : pos.begin : pos, c, result, opts, maskset, strict, fromCheckval);\n                void 0 !== postResult && (result = !0 === postResult ? result : postResult);\n            }\n            result && void 0 === result.pos && (result.pos = maskPos), !1 === result || !0 === validateOnly ? (_positioning.resetMaskSet.call(inputmask, !0), \n            maskset.validPositions = $.extend(!0, {}, positionsClone)) : trackbackPositions.call(inputmask, void 0, maskPos, !0);\n            var endResult = processCommandObject(result);\n            return endResult;\n        }\n        function positionCanMatchDefinition(pos, testDefinition, opts) {\n            for (var inputmask = this, maskset = this.maskset, valid = !1, tests = _validationTests.getTests.call(this, pos), tndx = 0; tndx < tests.length; tndx++) {\n                if (tests[tndx].match && (!(tests[tndx].match.nativeDef !== testDefinition.match[opts.shiftPositions ? \"def\" : \"nativeDef\"] || opts.shiftPositions && testDefinition.match.static) || tests[tndx].match.nativeDef === testDefinition.match.nativeDef)) {\n                    valid = !0;\n                    break;\n                }\n                if (tests[tndx].match && tests[tndx].match.def === testDefinition.match.nativeDef) {\n                    valid = void 0;\n                    break;\n                }\n            }\n            return !1 === valid && void 0 !== maskset.jitOffset[pos] && (valid = positionCanMatchDefinition.call(this, pos + maskset.jitOffset[pos], testDefinition, opts)), \n            valid;\n        }\n        function refreshFromBuffer(start, end, buffer) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts, $ = this.dependencyLib, el = this.el, i, p, skipOptionalPartCharacter = opts.skipOptionalPartCharacter, bffr = this.isRTL ? buffer.slice().reverse() : buffer;\n            if (opts.skipOptionalPartCharacter = \"\", !0 === start) _positioning.resetMaskSet.call(this), \n            maskset.tests = {}, start = 0, end = buffer.length, p = _positioning.determineNewCaretPosition.call(this, {\n                begin: 0,\n                end: 0\n            }, !1).begin; else {\n                for (i = start; i < end; i++) delete maskset.validPositions[i];\n                p = start;\n            }\n            var keypress = new $.Event(\"keypress\");\n            for (i = start; i < end; i++) {\n                keypress.which = bffr[i].toString().charCodeAt(0), this.ignorable = !1;\n                var valResult = _eventhandlers.EventHandlers.keypressEvent.call(el, keypress, !0, !1, !1, p);\n                !1 !== valResult && (p = valResult.forwardPosition);\n            }\n            opts.skipOptionalPartCharacter = skipOptionalPartCharacter;\n        }\n        function trackbackPositions(originalPos, newPos, fillOnly) {\n            var inputmask = this, maskset = this.maskset, $ = this.dependencyLib;\n            if (void 0 === originalPos) for (originalPos = newPos - 1; 0 < originalPos && !maskset.validPositions[originalPos]; originalPos--) ;\n            for (var ps = originalPos; ps < newPos; ps++) if (void 0 === maskset.validPositions[ps] && !_positioning.isMask.call(this, ps, !0)) {\n                var vp = 0 == ps ? _validationTests.getTest.call(this, ps) : maskset.validPositions[ps - 1];\n                if (vp) {\n                    var tests = _validationTests.getTests.call(this, ps).slice();\n                    \"\" === tests[tests.length - 1].match.def && tests.pop();\n                    var bestMatch = _validationTests.determineTestTemplate.call(this, ps, tests), np;\n                    if (bestMatch && (!0 !== bestMatch.match.jit || \"master\" === bestMatch.match.newBlockMarker && (np = maskset.validPositions[ps + 1]) && !0 === np.match.optionalQuantifier) && (bestMatch = $.extend({}, bestMatch, {\n                        input: _validationTests.getPlaceholder.call(this, ps, bestMatch.match, !0) || bestMatch.match.def\n                    }), bestMatch.generatedInput = !0, revalidateMask.call(this, ps, bestMatch, !0), \n                    !0 !== fillOnly)) {\n                        var cvpInput = maskset.validPositions[newPos].input;\n                        return maskset.validPositions[newPos] = void 0, isValid.call(this, newPos, cvpInput, !0, !0);\n                    }\n                }\n            }\n        }\n        function revalidateMask(pos, validTest, fromIsValid, validatedPos) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts, $ = this.dependencyLib;\n            function IsEnclosedStatic(pos, valids, selection) {\n                var posMatch = valids[pos];\n                if (void 0 === posMatch || !0 !== posMatch.match.static || !0 === posMatch.match.optionality || void 0 !== valids[0] && void 0 !== valids[0].alternation) return !1;\n                var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && !0 === valids[pos - 1].match.static && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && !0 === valids[pos + 1].match.static && valids[pos + 1] : valids[pos + 1];\n                return prevMatch && nextMatch;\n            }\n            var offset = 0, begin = void 0 !== pos.begin ? pos.begin : pos, end = void 0 !== pos.end ? pos.end : pos;\n            if (pos.begin > pos.end && (begin = pos.end, end = pos.begin), validatedPos = void 0 !== validatedPos ? validatedPos : begin, \n            begin !== end || opts.insertMode && void 0 !== maskset.validPositions[validatedPos] && void 0 === fromIsValid || void 0 === validTest) {\n                var positionsClone = $.extend(!0, {}, maskset.validPositions), lvp = _positioning.getLastValidPosition.call(this, void 0, !0), i;\n                for (maskset.p = begin, i = lvp; begin <= i; i--) delete maskset.validPositions[i], \n                void 0 === validTest && delete maskset.tests[i + 1];\n                var valid = !0, j = validatedPos, posMatch = j, t, canMatch;\n                for (validTest && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest), \n                posMatch++, j++), i = validTest ? end : end - 1; i <= lvp; i++) {\n                    if (void 0 !== (t = positionsClone[i]) && !0 !== t.generatedInput && (end <= i || begin <= i && IsEnclosedStatic(i, positionsClone, {\n                        begin: begin,\n                        end: end\n                    }))) {\n                        for (;\"\" !== _validationTests.getTest.call(this, posMatch).match.def; ) {\n                            if (!1 !== (canMatch = positionCanMatchDefinition.call(this, posMatch, t, opts)) || \"+\" === t.match.def) {\n                                \"+\" === t.match.def && _positioning.getBuffer.call(this, !0);\n                                var result = isValid.call(this, posMatch, t.input, \"+\" !== t.match.def, \"+\" !== t.match.def);\n                                if (valid = !1 !== result, j = (result.pos || posMatch) + 1, !valid && canMatch) break;\n                            } else valid = !1;\n                            if (valid) {\n                                void 0 === validTest && t.match.static && i === pos.begin && offset++;\n                                break;\n                            }\n                            if (!valid && posMatch > maskset.maskLength) break;\n                            posMatch++;\n                        }\n                        \"\" == _validationTests.getTest.call(this, posMatch).match.def && (valid = !1), posMatch = j;\n                    }\n                    if (!valid) break;\n                }\n                if (!valid) return maskset.validPositions = $.extend(!0, {}, positionsClone), _positioning.resetMaskSet.call(this, !0), \n                !1;\n            } else validTest && _validationTests.getTest.call(this, validatedPos).match.cd === validTest.match.cd && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest));\n            return _positioning.resetMaskSet.call(this, !0), offset;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.applyInputValue = applyInputValue, exports.clearOptionalTail = clearOptionalTail, \n        exports.checkVal = checkVal, exports.HandleNativePlaceholder = HandleNativePlaceholder, \n        exports.unmaskedvalue = unmaskedvalue, exports.writeBuffer = writeBuffer;\n        var _keycode = _interopRequireDefault(__webpack_require__(0)), _validationTests = __webpack_require__(3), _positioning = __webpack_require__(2), _validation = __webpack_require__(4), _environment = __webpack_require__(8), _eventhandlers = __webpack_require__(7);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function applyInputValue(input, value) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts;\n            input.inputmask.refreshValue = !1, \"function\" == typeof opts.onBeforeMask && (value = opts.onBeforeMask.call(inputmask, value, opts) || value), \n            value = value.toString().split(\"\"), checkVal(input, !0, !1, value), inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n            (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === _positioning.getBufferTemplate.call(inputmask).join(\"\") && -1 === _positioning.getLastValidPosition.call(inputmask) && input.inputmask._valueSet(\"\");\n        }\n        function clearOptionalTail(buffer) {\n            var inputmask = this;\n            buffer.length = 0;\n            for (var template = _validationTests.getMaskTemplate.call(this, !0, 0, !0, void 0, !0), lmnt; void 0 !== (lmnt = template.shift()); ) buffer.push(lmnt);\n            return buffer;\n        }\n        function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n            var inputmask = input ? input.inputmask : this, maskset = inputmask.maskset, opts = inputmask.opts, $ = inputmask.dependencyLib, inputValue = nptvl.slice(), charCodes = \"\", initialNdx = -1, result = void 0, skipOptionalPartCharacter = opts.skipOptionalPartCharacter;\n            function isTemplateMatch(ndx, charCodes) {\n                for (var targetTemplate = _validationTests.getMaskTemplate.call(inputmask, !0, 0).slice(ndx, _positioning.seekNext.call(inputmask, ndx)).join(\"\").replace(/'/g, \"\"), charCodeNdx = targetTemplate.indexOf(charCodes); 0 < charCodeNdx && \" \" === targetTemplate[charCodeNdx - 1]; ) charCodeNdx--;\n                var match = 0 === charCodeNdx && !_positioning.isMask.call(inputmask, ndx) && (_validationTests.getTest.call(inputmask, ndx).match.nativeDef === charCodes.charAt(0) || !0 === _validationTests.getTest.call(inputmask, ndx).match.static && _validationTests.getTest.call(inputmask, ndx).match.nativeDef === \"'\" + charCodes.charAt(0) || \" \" === _validationTests.getTest.call(inputmask, ndx).match.nativeDef && (_validationTests.getTest.call(inputmask, ndx + 1).match.nativeDef === charCodes.charAt(0) || !0 === _validationTests.getTest.call(inputmask, ndx + 1).match.static && _validationTests.getTest.call(inputmask, ndx + 1).match.nativeDef === \"'\" + charCodes.charAt(0)));\n                if (!match && 0 < charCodeNdx && !_positioning.isMask.call(inputmask, ndx, !1, !0)) {\n                    var nextPos = _positioning.seekNext.call(inputmask, ndx);\n                    inputmask.caretPos.begin < nextPos && (inputmask.caretPos = {\n                        begin: nextPos\n                    });\n                }\n                return match;\n            }\n            opts.skipOptionalPartCharacter = \"\", _positioning.resetMaskSet.call(inputmask), \n            maskset.tests = {}, initialNdx = opts.radixPoint ? _positioning.determineNewCaretPosition.call(inputmask, {\n                begin: 0,\n                end: 0\n            }).begin : 0, maskset.p = initialNdx, inputmask.caretPos = {\n                begin: initialNdx\n            };\n            var staticMatches = [], prevCaretPos = inputmask.caretPos;\n            if (inputValue.forEach(function(charCode, ndx) {\n                if (void 0 !== charCode) if (void 0 === maskset.validPositions[ndx] && inputValue[ndx] === _validationTests.getPlaceholder.call(inputmask, ndx) && _positioning.isMask.call(inputmask, ndx, !0) && !1 === _validation.isValid.call(inputmask, ndx, inputValue[ndx], !0, void 0, void 0, !0)) maskset.p++; else {\n                    var keypress = new $.Event(\"_checkval\");\n                    keypress.which = charCode.toString().charCodeAt(0), charCodes += charCode;\n                    var lvp = _positioning.getLastValidPosition.call(inputmask, void 0, !0);\n                    isTemplateMatch(initialNdx, charCodes) ? result = _eventhandlers.EventHandlers.keypressEvent.call(input || inputmask, keypress, !0, !1, strict, lvp + 1) : (result = _eventhandlers.EventHandlers.keypressEvent.call(input || inputmask, keypress, !0, !1, strict, inputmask.caretPos.begin), \n                    result && (initialNdx = inputmask.caretPos.begin + 1, charCodes = \"\")), result ? (void 0 !== result.pos && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static && void 0 === maskset.validPositions[result.pos].alternation && (staticMatches.push(result.pos), \n                    inputmask.isRTL || (result.forwardPosition = result.pos + 1)), writeBuffer.call(inputmask, void 0, _positioning.getBuffer.call(inputmask), result.forwardPosition, keypress, !1), \n                    inputmask.caretPos = {\n                        begin: result.forwardPosition,\n                        end: result.forwardPosition\n                    }, prevCaretPos = inputmask.caretPos) : inputmask.caretPos = prevCaretPos;\n                }\n            }), 0 < staticMatches.length) {\n                var sndx, validPos, nextValid = _positioning.seekNext.call(inputmask, -1, void 0, !1);\n                if (!_validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && staticMatches.length <= nextValid || _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && 0 < staticMatches.length && staticMatches.length !== nextValid && 0 === staticMatches[0]) for (var nextSndx = nextValid; void 0 !== (sndx = staticMatches.shift()); ) {\n                    var keypress = new $.Event(\"_checkval\");\n                    if (validPos = maskset.validPositions[sndx], validPos.generatedInput = !0, keypress.which = validPos.input.charCodeAt(0), \n                    result = _eventhandlers.EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, nextSndx), \n                    result && void 0 !== result.pos && result.pos !== sndx && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static) staticMatches.push(result.pos); else if (!result) break;\n                    nextSndx++;\n                }\n            }\n            writeOut && writeBuffer.call(inputmask, input, _positioning.getBuffer.call(inputmask), result ? result.forwardPosition : inputmask.caretPos.begin, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && \"input\" === initiatingEvent.type && inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\")), \n            opts.skipOptionalPartCharacter = skipOptionalPartCharacter;\n        }\n        function HandleNativePlaceholder(npt, value) {\n            var inputmask = npt ? npt.inputmask : this;\n            if (_environment.ie) {\n                if (npt.inputmask._valueGet() !== value && (npt.placeholder !== value || \"\" === npt.placeholder)) {\n                    var buffer = _positioning.getBuffer.call(inputmask).slice(), nptValue = npt.inputmask._valueGet();\n                    if (nptValue !== value) {\n                        var lvp = _positioning.getLastValidPosition.call(inputmask);\n                        -1 === lvp && nptValue === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? buffer = [] : -1 !== lvp && clearOptionalTail.call(inputmask, buffer), \n                        writeBuffer(npt, buffer);\n                    }\n                }\n            } else npt.placeholder !== value && (npt.placeholder = value, \"\" === npt.placeholder && npt.removeAttribute(\"placeholder\"));\n        }\n        function unmaskedvalue(input) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts, maskset = inputmask.maskset;\n            if (input) {\n                if (void 0 === input.inputmask) return input.value;\n                input.inputmask && input.inputmask.refreshValue && applyInputValue(input, input.inputmask._valueGet(!0));\n            }\n            var umValue = [], vps = maskset.validPositions;\n            for (var pndx in vps) vps[pndx] && vps[pndx].match && (1 != vps[pndx].match.static || Array.isArray(maskset.metadata) && !0 !== vps[pndx].generatedInput) && umValue.push(vps[pndx].input);\n            var unmaskedValue = 0 === umValue.length ? \"\" : (inputmask.isRTL ? umValue.reverse() : umValue).join(\"\");\n            if (\"function\" == typeof opts.onUnMask) {\n                var bufferValue = (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice().reverse() : _positioning.getBuffer.call(inputmask)).join(\"\");\n                unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);\n            }\n            return unmaskedValue;\n        }\n        function writeBuffer(input, buffer, caretPos, event, triggerEvents) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts, $ = inputmask.dependencyLib;\n            if (event && \"function\" == typeof opts.onBeforeWrite) {\n                var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);\n                if (result) {\n                    if (result.refreshFromBuffer) {\n                        var refresh = result.refreshFromBuffer;\n                        _validation.refreshFromBuffer.call(inputmask, !0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer), \n                        buffer = _positioning.getBuffer.call(inputmask, !0);\n                    }\n                    void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);\n                }\n            }\n            if (void 0 !== input && (input.inputmask._valueSet(buffer.join(\"\")), void 0 === caretPos || void 0 !== event && \"blur\" === event.type || _positioning.caret.call(inputmask, input, caretPos, void 0, void 0, void 0 !== event && \"keydown\" === event.type && (event.keyCode === _keycode.default.DELETE || event.keyCode === _keycode.default.BACKSPACE)), \n            !0 === triggerEvents)) {\n                var $input = $(input), nptVal = input.inputmask._valueGet();\n                input.inputmask.skipInputEvent = !0, $input.trigger(\"input\"), setTimeout(function() {\n                    nptVal === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? $input.trigger(\"cleared\") : !0 === _validation.isComplete.call(inputmask, buffer) && $input.trigger(\"complete\");\n                }, 0);\n            }\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = \"undefined\" != typeof window ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.EventHandlers = void 0;\n        var _positioning = __webpack_require__(2), _keycode = _interopRequireDefault(__webpack_require__(0)), _environment = __webpack_require__(8), _validation = __webpack_require__(4), _inputHandling = __webpack_require__(5), _validationTests = __webpack_require__(3);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var EventHandlers = {\n            keydownEvent: function keydownEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib, maskset = inputmask.maskset, input = this, $input = $(input), k = e.keyCode, pos = _positioning.caret.call(inputmask, input), kdResult = opts.onKeyDown.call(this, e, _positioning.getBuffer.call(inputmask), pos, opts);\n                if (void 0 !== kdResult) return kdResult;\n                if (k === _keycode.default.BACKSPACE || k === _keycode.default.DELETE || _environment.iphone && k === _keycode.default.BACKSPACE_SAFARI || e.ctrlKey && k === _keycode.default.X && !(\"oncut\" in input)) e.preventDefault(), \n                _validation.handleRemove.call(inputmask, input, k, pos), (0, _inputHandling.writeBuffer)(input, _positioning.getBuffer.call(inputmask, !0), maskset.p, e, input.inputmask._valueGet() !== _positioning.getBuffer.call(inputmask).join(\"\")); else if (k === _keycode.default.END || k === _keycode.default.PAGE_DOWN) {\n                    e.preventDefault();\n                    var caretPos = _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask));\n                    _positioning.caret.call(inputmask, input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);\n                } else k === _keycode.default.HOME && !e.shiftKey || k === _keycode.default.PAGE_UP ? (e.preventDefault(), \n                _positioning.caret.call(inputmask, input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === _keycode.default.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? ((0, \n                _inputHandling.checkVal)(input, !0, !1, inputmask.undoValue.split(\"\")), $input.trigger(\"click\")) : !0 === opts.tabThrough && k === _keycode.default.TAB ? !0 === e.shiftKey ? (pos.end = _positioning.seekPrevious.call(inputmask, pos.end, !0), \n                !0 === _validationTests.getTest.call(inputmask, pos.end - 1).match.static && pos.end--, \n                pos.begin = _positioning.seekPrevious.call(inputmask, pos.end, !0), 0 <= pos.begin && 0 < pos.end && (e.preventDefault(), \n                _positioning.caret.call(inputmask, input, pos.begin, pos.end))) : (pos.begin = _positioning.seekNext.call(inputmask, pos.begin, !0), \n                pos.end = _positioning.seekNext.call(inputmask, pos.begin, !0), pos.end < maskset.maskLength && pos.end--, \n                pos.begin <= maskset.maskLength && (e.preventDefault(), _positioning.caret.call(inputmask, input, pos.begin, pos.end))) : e.shiftKey || opts.insertModeVisual && !1 === opts.insertMode && (k === _keycode.default.RIGHT ? setTimeout(function() {\n                    var caretPos = _positioning.caret.call(inputmask, input);\n                    _positioning.caret.call(inputmask, input, caretPos.begin);\n                }, 0) : k === _keycode.default.LEFT && setTimeout(function() {\n                    var caretPos_begin = _positioning.translatePosition.call(inputmask, input.inputmask.caretPos.begin), caretPos_end = _positioning.translatePosition.call(inputmask, input.inputmask.caretPos.end);\n                    inputmask.isRTL ? _positioning.caret.call(inputmask, input, caretPos_begin + (caretPos_begin === maskset.maskLength ? 0 : 1)) : _positioning.caret.call(inputmask, input, caretPos_begin - (0 === caretPos_begin ? 0 : 1));\n                }, 0));\n                inputmask.ignorable = opts.ignorables.includes(k);\n            },\n            keypressEvent: function keypressEvent(e, checkval, writeOut, strict, ndx) {\n                var inputmask = this.inputmask || this, opts = inputmask.opts, $ = inputmask.dependencyLib, maskset = inputmask.maskset, input = inputmask.el, $input = $(input), k = e.which || e.charCode || e.keyCode;\n                if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || inputmask.ignorable)) return k === _keycode.default.ENTER && inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n                setTimeout(function() {\n                    $input.trigger(\"change\");\n                }, 0)), inputmask.skipInputEvent = !0, !0;\n                if (k) {\n                    44 !== k && 46 !== k || 3 !== e.location || \"\" === opts.radixPoint || (k = opts.radixPoint.charCodeAt(0));\n                    var pos = checkval ? {\n                        begin: ndx,\n                        end: ndx\n                    } : _positioning.caret.call(inputmask, input), forwardPosition, c = String.fromCharCode(k);\n                    maskset.writeOutBuffer = !0;\n                    var valResult = _validation.isValid.call(inputmask, pos, c, strict, void 0, void 0, void 0, checkval);\n                    if (!1 !== valResult && (_positioning.resetMaskSet.call(inputmask, !0), forwardPosition = void 0 !== valResult.caret ? valResult.caret : _positioning.seekNext.call(inputmask, valResult.pos.begin ? valResult.pos.begin : valResult.pos), \n                    maskset.p = forwardPosition), forwardPosition = opts.numericInput && void 0 === valResult.caret ? _positioning.seekPrevious.call(inputmask, forwardPosition) : forwardPosition, \n                    !1 !== writeOut && (setTimeout(function() {\n                        opts.onKeyValidation.call(input, k, valResult);\n                    }, 0), maskset.writeOutBuffer && !1 !== valResult)) {\n                        var buffer = _positioning.getBuffer.call(inputmask);\n                        (0, _inputHandling.writeBuffer)(input, buffer, forwardPosition, e, !0 !== checkval);\n                    }\n                    if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition), \n                    valResult;\n                }\n            },\n            keyupEvent: function keyupEvent(e) {\n                var inputmask = this.inputmask;\n                !inputmask.isComposing || e.keyCode !== _keycode.default.KEY_229 && e.keyCode !== _keycode.default.ENTER || inputmask.$el.trigger(\"input\");\n            },\n            pasteEvent: function pasteEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this, inputValue = inputmask._valueGet(!0), caretPos = _positioning.caret.call(inputmask, this), tempValue;\n                inputmask.isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);\n                var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n                if (valueBeforeCaret == (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).slice(0, caretPos.begin).join(\"\") && (valueBeforeCaret = \"\"), \n                valueAfterCaret == (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).slice(caretPos.end).join(\"\") && (valueAfterCaret = \"\"), \n                window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret; else {\n                    if (!e.clipboardData || !e.clipboardData.getData) return !0;\n                    inputValue = valueBeforeCaret + e.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n                }\n                var pasteValue = inputValue;\n                if (\"function\" == typeof opts.onBeforePaste) {\n                    if (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts), !1 === pasteValue) return e.preventDefault();\n                    pasteValue = pasteValue || inputValue;\n                }\n                return (0, _inputHandling.checkVal)(this, !0, !1, pasteValue.toString().split(\"\"), e), \n                e.preventDefault();\n            },\n            inputFallBackEvent: function inputFallBackEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib;\n                function ieMobileHandler(input, inputValue, caretPos) {\n                    if (_environment.iemobile) {\n                        var inputChar = inputValue.replace(_positioning.getBuffer.call(inputmask).join(\"\"), \"\");\n                        if (1 === inputChar.length) {\n                            var iv = inputValue.split(\"\");\n                            iv.splice(caretPos.begin, 0, inputChar), inputValue = iv.join(\"\");\n                        }\n                    }\n                    return inputValue;\n                }\n                function analyseChanges(inputValue, buffer, caretPos) {\n                    for (var frontPart = inputValue.substr(0, caretPos.begin).split(\"\"), backPart = inputValue.substr(caretPos.begin).split(\"\"), frontBufferPart = buffer.substr(0, caretPos.begin).split(\"\"), backBufferPart = buffer.substr(caretPos.begin).split(\"\"), fpl = frontPart.length >= frontBufferPart.length ? frontPart.length : frontBufferPart.length, bpl = backPart.length >= backBufferPart.length ? backPart.length : backBufferPart.length, bl, i, action = \"\", data = [], marker = \"~\", placeholder; frontPart.length < fpl; ) frontPart.push(\"~\");\n                    for (;frontBufferPart.length < fpl; ) frontBufferPart.push(\"~\");\n                    for (;backPart.length < bpl; ) backPart.unshift(\"~\");\n                    for (;backBufferPart.length < bpl; ) backBufferPart.unshift(\"~\");\n                    var newBuffer = frontPart.concat(backPart), oldBuffer = frontBufferPart.concat(backBufferPart);\n                    for (i = 0, bl = newBuffer.length; i < bl; i++) switch (placeholder = _validationTests.getPlaceholder.call(inputmask, _positioning.translatePosition.call(inputmask, i)), \n                    action) {\n                      case \"insertText\":\n                        oldBuffer[i - 1] === newBuffer[i] && caretPos.begin == newBuffer.length - 1 && data.push(newBuffer[i]), \n                        i = bl;\n                        break;\n\n                      case \"insertReplacementText\":\n                        \"~\" === newBuffer[i] ? caretPos.end++ : i = bl;\n                        break;\n\n                      case \"deleteContentBackward\":\n                        \"~\" === newBuffer[i] ? caretPos.end++ : i = bl;\n                        break;\n\n                      default:\n                        newBuffer[i] !== oldBuffer[i] && (\"~\" !== newBuffer[i + 1] && newBuffer[i + 1] !== placeholder && void 0 !== newBuffer[i + 1] || (oldBuffer[i] !== placeholder || \"~\" !== oldBuffer[i + 1]) && \"~\" !== oldBuffer[i] ? \"~\" === oldBuffer[i + 1] && oldBuffer[i] === newBuffer[i + 1] ? (action = \"insertText\", \n                        data.push(newBuffer[i]), caretPos.begin--, caretPos.end--) : newBuffer[i] !== placeholder && \"~\" !== newBuffer[i] && (\"~\" === newBuffer[i + 1] || oldBuffer[i] !== newBuffer[i] && oldBuffer[i + 1] === newBuffer[i + 1]) ? (action = \"insertReplacementText\", \n                        data.push(newBuffer[i]), caretPos.begin--) : \"~\" === newBuffer[i] ? (action = \"deleteContentBackward\", \n                        !_positioning.isMask.call(inputmask, _positioning.translatePosition.call(inputmask, i), !0) && oldBuffer[i] !== opts.radixPoint || caretPos.end++) : i = bl : (action = \"insertText\", \n                        data.push(newBuffer[i]), caretPos.begin--, caretPos.end--));\n                        break;\n                    }\n                    return {\n                        action: action,\n                        data: data,\n                        caret: caretPos\n                    };\n                }\n                var input = this, inputValue = input.inputmask._valueGet(!0), buffer = (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice().reverse() : _positioning.getBuffer.call(inputmask)).join(\"\"), caretPos = _positioning.caret.call(inputmask, input, void 0, void 0, !0);\n                if (buffer !== inputValue) {\n                    inputValue = ieMobileHandler(input, inputValue, caretPos);\n                    var changes = analyseChanges(inputValue, buffer, caretPos);\n                    switch ((input.inputmask.shadowRoot || document).activeElement !== input && input.focus(), \n                    (0, _inputHandling.writeBuffer)(input, _positioning.getBuffer.call(inputmask)), \n                    _positioning.caret.call(inputmask, input, caretPos.begin, caretPos.end, !0), changes.action) {\n                      case \"insertText\":\n                      case \"insertReplacementText\":\n                        changes.data.forEach(function(entry, ndx) {\n                            var keypress = new $.Event(\"keypress\");\n                            keypress.which = entry.charCodeAt(0), inputmask.ignorable = !1, EventHandlers.keypressEvent.call(input, keypress);\n                        }), setTimeout(function() {\n                            inputmask.$el.trigger(\"keyup\");\n                        }, 0);\n                        break;\n\n                      case \"deleteContentBackward\":\n                        var keydown = new $.Event(\"keydown\");\n                        keydown.keyCode = _keycode.default.BACKSPACE, EventHandlers.keydownEvent.call(input, keydown);\n                        break;\n\n                      default:\n                        (0, _inputHandling.applyInputValue)(input, inputValue);\n                        break;\n                    }\n                    e.preventDefault();\n                }\n            },\n            compositionendEvent: function compositionendEvent(e) {\n                var inputmask = this.inputmask;\n                inputmask.isComposing = !1, inputmask.$el.trigger(\"input\");\n            },\n            setValueEvent: function setValueEvent(e, argument_1, argument_2) {\n                var inputmask = this.inputmask, input = this, value = e && e.detail ? e.detail[0] : argument_1;\n                void 0 === value && (value = this.inputmask._valueGet(!0)), (0, _inputHandling.applyInputValue)(this, value), \n                (e.detail && void 0 !== e.detail[1] || void 0 !== argument_2) && _positioning.caret.call(inputmask, this, e.detail ? e.detail[1] : argument_2);\n            },\n            focusEvent: function focusEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this, nptValue = this.inputmask._valueGet();\n                opts.showMaskOnFocus && nptValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (0, \n                _inputHandling.writeBuffer)(this, _positioning.getBuffer.call(inputmask), _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask))), \n                !0 !== opts.positionCaretOnTab || !1 !== inputmask.mouseEnter || _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && -1 !== _positioning.getLastValidPosition.call(inputmask) || EventHandlers.clickEvent.apply(this, [ e, !0 ]), \n                inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\");\n            },\n            invalidEvent: function invalidEvent(e) {\n                this.inputmask.validationEvent = !0;\n            },\n            mouseleaveEvent: function mouseleaveEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this;\n                inputmask.mouseEnter = !1, opts.clearMaskOnLostFocus && (this.inputmask.shadowRoot || document).activeElement !== this && (0, \n                _inputHandling.HandleNativePlaceholder)(this, inputmask.originalPlaceholder);\n            },\n            clickEvent: function clickEvent(e, tabbed) {\n                var inputmask = this.inputmask, input = this;\n                if ((this.inputmask.shadowRoot || document).activeElement === this) {\n                    var newCaretPosition = _positioning.determineNewCaretPosition.call(inputmask, _positioning.caret.call(inputmask, this), tabbed);\n                    void 0 !== newCaretPosition && _positioning.caret.call(inputmask, this, newCaretPosition);\n                }\n            },\n            cutEvent: function cutEvent(e) {\n                var inputmask = this.inputmask, maskset = inputmask.maskset, input = this, pos = _positioning.caret.call(inputmask, this), clipboardData = window.clipboardData || e.clipboardData, clipData = inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice(pos.end, pos.begin) : _positioning.getBuffer.call(inputmask).slice(pos.begin, pos.end);\n                clipboardData.setData(\"text\", inputmask.isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\")), \n                document.execCommand && document.execCommand(\"copy\"), _validation.handleRemove.call(inputmask, this, _keycode.default.DELETE, pos), \n                (0, _inputHandling.writeBuffer)(this, _positioning.getBuffer.call(inputmask), maskset.p, e, inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\"));\n            },\n            blurEvent: function blurEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib, $input = $(this), input = this;\n                if (this.inputmask) {\n                    (0, _inputHandling.HandleNativePlaceholder)(this, inputmask.originalPlaceholder);\n                    var nptValue = this.inputmask._valueGet(), buffer = _positioning.getBuffer.call(inputmask).slice();\n                    \"\" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === _positioning.getLastValidPosition.call(inputmask) && nptValue === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? buffer = [] : _inputHandling.clearOptionalTail.call(inputmask, buffer)), \n                    !1 === _validation.isComplete.call(inputmask, buffer) && (setTimeout(function() {\n                        $input.trigger(\"incomplete\");\n                    }, 0), opts.clearIncomplete && (_positioning.resetMaskSet.call(inputmask), buffer = opts.clearMaskOnLostFocus ? [] : _positioning.getBufferTemplate.call(inputmask).slice())), \n                    (0, _inputHandling.writeBuffer)(this, buffer, void 0, e)), inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n                    $input.trigger(\"change\"));\n                }\n            },\n            mouseenterEvent: function mouseenterEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this;\n                inputmask.mouseEnter = !0, (this.inputmask.shadowRoot || document).activeElement !== this && (null == inputmask.originalPlaceholder && this.placeholder !== inputmask.originalPlaceholder && (inputmask.originalPlaceholder = this.placeholder), \n                opts.showMaskOnHover && (0, _inputHandling.HandleNativePlaceholder)(this, (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).join(\"\")));\n            },\n            submitEvent: function submitEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts;\n                inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && inputmask.$el.trigger(\"change\"), \n                opts.clearMaskOnLostFocus && -1 === _positioning.getLastValidPosition.call(inputmask) && inputmask._valueGet && inputmask._valueGet() === _positioning.getBufferTemplate.call(inputmask).join(\"\") && inputmask._valueSet(\"\"), \n                opts.clearIncomplete && !1 === _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && inputmask._valueSet(\"\"), \n                opts.removeMaskOnSubmit && (inputmask._valueSet(inputmask.unmaskedvalue(), !0), \n                setTimeout(function() {\n                    (0, _inputHandling.writeBuffer)(inputmask.el, _positioning.getBuffer.call(inputmask));\n                }, 0));\n            },\n            resetEvent: function resetEvent() {\n                var inputmask = this.inputmask;\n                inputmask.refreshValue = !0, setTimeout(function() {\n                    (0, _inputHandling.applyInputValue)(inputmask.el, inputmask._valueGet(!0));\n                }, 0);\n            }\n        };\n        exports.EventHandlers = EventHandlers;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.iphone = exports.iemobile = exports.mobile = exports.ie = exports.ua = void 0;\n        var ua = window.navigator && window.navigator.userAgent || \"\", ie = 0 < ua.indexOf(\"MSIE \") || 0 < ua.indexOf(\"Trident/\"), mobile = \"ontouchstart\" in window, iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;\n        exports.iphone = iphone, exports.iemobile = iemobile, exports.mobile = mobile, exports.ie = ie, \n        exports.ua = ua;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _extend = _interopRequireDefault(__webpack_require__(13)), _window = _interopRequireDefault(__webpack_require__(6)), _data = _interopRequireDefault(__webpack_require__(17)), _events = __webpack_require__(18);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var document = _window.default.document;\n        function DependencyLib(elem) {\n            return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (null != elem && elem !== _window.default && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem), \n            void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);\n        }\n        DependencyLib.prototype = {\n            on: _events.on,\n            off: _events.off,\n            trigger: _events.trigger\n        }, DependencyLib.extend = _extend.default, DependencyLib.data = _data.default, DependencyLib.Event = _events.Event;\n        var _default = DependencyLib;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === _typeof(\"test\".__proto__) ? function(object) {\n            return object.__proto__;\n        } : function(object) {\n            return object.constructor.prototype;\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.mask = mask, __webpack_require__(10);\n        var _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _inputHandling = __webpack_require__(5), _eventruler = __webpack_require__(12), _environment = __webpack_require__(8), _validation = __webpack_require__(4), _eventhandlers = __webpack_require__(7);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function mask() {\n            var inputmask = this, opts = this.opts, el = this.el, $ = this.dependencyLib;\n            function isElementTypeSupported(input, opts) {\n                function patchValueProperty(npt) {\n                    var valueGet, valueSet;\n                    function patchValhook(type) {\n                        if ($.valHooks && (void 0 === $.valHooks[type] || !0 !== $.valHooks[type].inputmaskpatch)) {\n                            var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n                                return elem.value;\n                            }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n                                return elem.value = value, elem;\n                            };\n                            $.valHooks[type] = {\n                                get: function get(elem) {\n                                    if (elem.inputmask) {\n                                        if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();\n                                        var result = valhookGet(elem);\n                                        return -1 !== _positioning.getLastValidPosition.call(inputmask, void 0, void 0, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : \"\";\n                                    }\n                                    return valhookGet(elem);\n                                },\n                                set: function set(elem, value) {\n                                    var result = valhookSet(elem, value);\n                                    return elem.inputmask && (0, _inputHandling.applyInputValue)(elem, value), result;\n                                },\n                                inputmaskpatch: !0\n                            };\n                        }\n                    }\n                    function getter() {\n                        return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== _positioning.getLastValidPosition.call(inputmask) || !0 !== opts.nullable ? (this.inputmask.shadowRoot || document.activeElement) === this && opts.clearMaskOnLostFocus ? (inputmask.isRTL ? _inputHandling.clearOptionalTail.call(inputmask, _positioning.getBuffer.call(inputmask).slice()).reverse() : _inputHandling.clearOptionalTail.call(inputmask, _positioning.getBuffer.call(inputmask).slice())).join(\"\") : valueGet.call(this) : \"\" : valueGet.call(this);\n                    }\n                    function setter(value) {\n                        valueSet.call(this, value), this.inputmask && (0, _inputHandling.applyInputValue)(this, value);\n                    }\n                    function installNativeValueSetFallback(npt) {\n                        _eventruler.EventRuler.on(npt, \"mouseenter\", function() {\n                            var input = this, value = this.inputmask._valueGet(!0);\n                            value !== (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).reverse() : _positioning.getBuffer.call(inputmask)).join(\"\") && (0, \n                            _inputHandling.applyInputValue)(this, value);\n                        });\n                    }\n                    if (!npt.inputmask.__valueGet) {\n                        if (!0 !== opts.noValuePatching) {\n                            if (Object.getOwnPropertyDescriptor) {\n                                var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : void 0;\n                                valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, \n                                valueSet = valueProperty.set, Object.defineProperty(npt, \"value\", {\n                                    get: getter,\n                                    set: setter,\n                                    configurable: !0\n                                })) : \"input\" !== npt.tagName.toLowerCase() && (valueGet = function valueGet() {\n                                    return this.textContent;\n                                }, valueSet = function valueSet(value) {\n                                    this.textContent = value;\n                                }, Object.defineProperty(npt, \"value\", {\n                                    get: getter,\n                                    set: setter,\n                                    configurable: !0\n                                }));\n                            } else document.__lookupGetter__ && npt.__lookupGetter__(\"value\") && (valueGet = npt.__lookupGetter__(\"value\"), \n                            valueSet = npt.__lookupSetter__(\"value\"), npt.__defineGetter__(\"value\", getter), \n                            npt.__defineSetter__(\"value\", setter));\n                            npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;\n                        }\n                        npt.inputmask._valueGet = function(overruleRTL) {\n                            return inputmask.isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n                        }, npt.inputmask._valueSet = function(value, overruleRTL) {\n                            valueSet.call(this.el, null == value ? \"\" : !0 !== overruleRTL && inputmask.isRTL ? value.split(\"\").reverse().join(\"\") : value);\n                        }, void 0 === valueGet && (valueGet = function valueGet() {\n                            return this.value;\n                        }, valueSet = function valueSet(value) {\n                            this.value = value;\n                        }, patchValhook(npt.type), installNativeValueSetFallback(npt));\n                    }\n                }\n                \"textarea\" !== input.tagName.toLowerCase() && opts.ignorables.push(_keycode.default.ENTER);\n                var elementType = input.getAttribute(\"type\"), isSupported = \"input\" === input.tagName.toLowerCase() && opts.supportsInputType.includes(elementType) || input.isContentEditable || \"textarea\" === input.tagName.toLowerCase();\n                if (!isSupported) if (\"input\" === input.tagName.toLowerCase()) {\n                    var el = document.createElement(\"input\");\n                    el.setAttribute(\"type\", elementType), isSupported = \"text\" === el.type, el = null;\n                } else isSupported = \"partial\";\n                return !1 !== isSupported ? patchValueProperty(input) : input.inputmask = void 0, \n                isSupported;\n            }\n            _eventruler.EventRuler.off(el);\n            var isSupported = isElementTypeSupported(el, opts);\n            if (!1 !== isSupported) {\n                inputmask.originalPlaceholder = el.placeholder, inputmask.maxLength = void 0 !== el ? el.maxLength : void 0, \n                -1 === inputmask.maxLength && (inputmask.maxLength = void 0), \"inputMode\" in el && null === el.getAttribute(\"inputmode\") && (el.inputMode = opts.inputmode, \n                el.setAttribute(\"inputmode\", opts.inputmode)), !0 === isSupported && (opts.showMaskOnFocus = opts.showMaskOnFocus && -1 === [ \"cc-number\", \"cc-exp\" ].indexOf(el.autocomplete), \n                _environment.iphone && (opts.insertModeVisual = !1), _eventruler.EventRuler.on(el, \"submit\", _eventhandlers.EventHandlers.submitEvent), \n                _eventruler.EventRuler.on(el, \"reset\", _eventhandlers.EventHandlers.resetEvent), \n                _eventruler.EventRuler.on(el, \"blur\", _eventhandlers.EventHandlers.blurEvent), _eventruler.EventRuler.on(el, \"focus\", _eventhandlers.EventHandlers.focusEvent), \n                _eventruler.EventRuler.on(el, \"invalid\", _eventhandlers.EventHandlers.invalidEvent), \n                _eventruler.EventRuler.on(el, \"click\", _eventhandlers.EventHandlers.clickEvent), \n                _eventruler.EventRuler.on(el, \"mouseleave\", _eventhandlers.EventHandlers.mouseleaveEvent), \n                _eventruler.EventRuler.on(el, \"mouseenter\", _eventhandlers.EventHandlers.mouseenterEvent), \n                _eventruler.EventRuler.on(el, \"paste\", _eventhandlers.EventHandlers.pasteEvent), \n                _eventruler.EventRuler.on(el, \"cut\", _eventhandlers.EventHandlers.cutEvent), _eventruler.EventRuler.on(el, \"complete\", opts.oncomplete), \n                _eventruler.EventRuler.on(el, \"incomplete\", opts.onincomplete), _eventruler.EventRuler.on(el, \"cleared\", opts.oncleared), \n                !0 !== opts.inputEventOnly && (_eventruler.EventRuler.on(el, \"keydown\", _eventhandlers.EventHandlers.keydownEvent), \n                _eventruler.EventRuler.on(el, \"keypress\", _eventhandlers.EventHandlers.keypressEvent), \n                _eventruler.EventRuler.on(el, \"keyup\", _eventhandlers.EventHandlers.keyupEvent)), \n                (_environment.mobile || opts.inputEventOnly) && el.removeAttribute(\"maxLength\"), \n                _eventruler.EventRuler.on(el, \"input\", _eventhandlers.EventHandlers.inputFallBackEvent), \n                _eventruler.EventRuler.on(el, \"compositionend\", _eventhandlers.EventHandlers.compositionendEvent)), \n                _eventruler.EventRuler.on(el, \"setvalue\", _eventhandlers.EventHandlers.setValueEvent), \n                inputmask.undoValue = _positioning.getBufferTemplate.call(inputmask).join(\"\");\n                var activeElement = (el.inputmask.shadowRoot || document).activeElement;\n                if (\"\" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || activeElement === el) {\n                    (0, _inputHandling.applyInputValue)(el, el.inputmask._valueGet(!0), opts);\n                    var buffer = _positioning.getBuffer.call(inputmask).slice();\n                    !1 === _validation.isComplete.call(inputmask, buffer) && opts.clearIncomplete && _positioning.resetMaskSet.call(inputmask), \n                    opts.clearMaskOnLostFocus && activeElement !== el && (-1 === _positioning.getLastValidPosition.call(inputmask) ? buffer = [] : _inputHandling.clearOptionalTail.call(inputmask, buffer)), \n                    (!1 === opts.clearMaskOnLostFocus || opts.showMaskOnFocus && activeElement === el || \"\" !== el.inputmask._valueGet(!0)) && (0, \n                    _inputHandling.writeBuffer)(el, buffer), activeElement === el && _positioning.caret.call(inputmask, el, _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask)));\n                }\n            }\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.EventRuler = void 0;\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _inputHandling = __webpack_require__(5);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var EventRuler = {\n            on: function on(input, eventName, eventHandler) {\n                var $ = input.inputmask.dependencyLib, ev = function ev(e) {\n                    e.originalEvent && (e = e.originalEvent || e, arguments[0] = e);\n                    var that = this, args, inputmask = that.inputmask, opts = inputmask ? inputmask.opts : void 0, $ = inputmask.dependencyLib;\n                    if (void 0 === inputmask && \"FORM\" !== this.nodeName) {\n                        var imOpts = $.data(that, \"_inputmask_opts\");\n                        $(that).off(), imOpts && new _inputmask.default(imOpts).mask(that);\n                    } else {\n                        if (\"setvalue\" === e.type || \"FORM\" === this.nodeName || !(that.disabled || that.readOnly && !(\"keydown\" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === _keycode.default.TAB))) {\n                            switch (e.type) {\n                              case \"input\":\n                                if (!0 === inputmask.skipInputEvent || e.inputType && \"insertCompositionText\" === e.inputType) return inputmask.skipInputEvent = !1, \n                                e.preventDefault();\n                                break;\n\n                              case \"keydown\":\n                                inputmask.skipKeyPressEvent = !1, inputmask.skipInputEvent = inputmask.isComposing = e.keyCode === _keycode.default.KEY_229;\n                                break;\n\n                              case \"keyup\":\n                              case \"compositionend\":\n                                inputmask.isComposing && (inputmask.skipInputEvent = !1);\n                                break;\n\n                              case \"keypress\":\n                                if (!0 === inputmask.skipKeyPressEvent) return e.preventDefault();\n                                inputmask.skipKeyPressEvent = !0;\n                                break;\n\n                              case \"click\":\n                              case \"focus\":\n                                return inputmask.validationEvent ? (inputmask.validationEvent = !1, input.blur(), \n                                (0, _inputHandling.HandleNativePlaceholder)(input, (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).join(\"\")), \n                                setTimeout(function() {\n                                    input.focus();\n                                }, 3e3)) : (args = arguments, setTimeout(function() {\n                                    input.inputmask && eventHandler.apply(that, args);\n                                }, 0)), !1;\n                            }\n                            var returnVal = eventHandler.apply(that, arguments);\n                            return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;\n                        }\n                        e.preventDefault();\n                    }\n                };\n                input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), \n                [ \"submit\", \"reset\" ].includes(eventName) ? null !== input.form && $(input.form).on(eventName, ev.bind(input)) : $(input).on(eventName, ev);\n            },\n            off: function off(input, event) {\n                if (input.inputmask && input.inputmask.events) {\n                    var $ = input.inputmask.dependencyLib, events = input.inputmask.events;\n                    for (var eventName in event && (events = [], events[event] = input.inputmask.events[event]), \n                    events) {\n                        for (var evArr = events[eventName]; 0 < evArr.length; ) {\n                            var ev = evArr.pop();\n                            [ \"submit\", \"reset\" ].includes(eventName) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);\n                        }\n                        delete input.inputmask.events[eventName];\n                    }\n                }\n            }\n        };\n        exports.EventRuler = EventRuler;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function extend() {\n            var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;\n            for (\"boolean\" == typeof target && (deep = target, target = arguments[i] || {}, \n            i++), \"object\" !== _typeof(target) && \"function\" != typeof target && (target = {}); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name], \n            copy = options[name], target !== copy && (deep && copy && (\"[object Object]\" === Object.prototype.toString.call(copy) || (copyIsArray = Array.isArray(copy))) ? (clone = copyIsArray ? (copyIsArray = !1, \n            src && Array.isArray(src) ? src : []) : src && \"[object Object]\" === Object.prototype.toString.call(src) ? src : {}, \n            target[name] = extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));\n            return target;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = extend;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = _default;\n        var escapeRegexRegex = new RegExp(\"(\\\\\" + [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ].join(\"|\\\\\") + \")\", \"gim\");\n        function _default(str) {\n            return str.replace(escapeRegexRegex, \"\\\\$1\");\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0, __webpack_require__(16), __webpack_require__(22), \n        __webpack_require__(23), __webpack_require__(24);\n        var _inputmask2 = _interopRequireDefault(__webpack_require__(1));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var _default = _inputmask2.default;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        _inputmask.default.extendDefinitions({\n            A: {\n                validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                casing: \"upper\"\n            },\n            \"&\": {\n                validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                casing: \"upper\"\n            },\n            \"#\": {\n                validator: \"[0-9A-Fa-f]\",\n                casing: \"upper\"\n            }\n        });\n        var ipValidatorRegex = new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\");\n        function ipValidator(chrs, maskset, pos, strict, opts) {\n            return chrs = -1 < pos - 1 && \".\" !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, \n            -1 < pos - 2 && \".\" !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : \"0\" + chrs) : \"00\" + chrs, \n            ipValidatorRegex.test(chrs);\n        }\n        _inputmask.default.extendAliases({\n            cssunit: {\n                regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n            },\n            url: {\n                regex: \"(https?|ftp)://.*\",\n                autoUnmask: !1,\n                keepStatic: !1,\n                tabThrough: !0\n            },\n            ip: {\n                mask: \"i[i[i]].j[j[j]].k[k[k]].l[l[l]]\",\n                definitions: {\n                    i: {\n                        validator: ipValidator\n                    },\n                    j: {\n                        validator: ipValidator\n                    },\n                    k: {\n                        validator: ipValidator\n                    },\n                    l: {\n                        validator: ipValidator\n                    }\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return maskedValue;\n                },\n                inputmode: \"numeric\"\n            },\n            email: {\n                mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\n                greedy: !1,\n                casing: \"lower\",\n                onBeforePaste: function onBeforePaste(pastedValue, opts) {\n                    return pastedValue = pastedValue.toLowerCase(), pastedValue.replace(\"mailto:\", \"\");\n                },\n                definitions: {\n                    \"*\": {\n                        validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n                    },\n                    \"-\": {\n                        validator: \"[0-9A-Za-z-]\"\n                    }\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return maskedValue;\n                },\n                inputmode: \"email\"\n            },\n            mac: {\n                mask: \"##:##:##:##:##:##\"\n            },\n            vin: {\n                mask: \"V{13}9{4}\",\n                definitions: {\n                    V: {\n                        validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n                        casing: \"upper\"\n                    }\n                },\n                clearIncomplete: !0,\n                autoUnmask: !0\n            },\n            ssn: {\n                mask: \"999-99-9999\",\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {\n                    return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(buffer.join(\"\"));\n                }\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _default(owner, key, value) {\n            if (void 0 === value) return owner.__data ? owner.__data[key] : null;\n            owner.__data = owner.__data || {}, owner.__data[key] = value;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.on = on, exports.off = off, exports.trigger = trigger, exports.Event = void 0;\n        var _extend = _interopRequireDefault(__webpack_require__(13)), _window = _interopRequireDefault(__webpack_require__(6)), _inputmask = _interopRequireDefault(__webpack_require__(9)), Event;\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function isValidElement(elem) {\n            return elem instanceof Element;\n        }\n        function on(events, handler) {\n            function addEvent(ev, namespace) {\n                elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent(\"on\" + ev, handler), \n                eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [], \n                eventRegistry[ev][namespace].push(handler);\n            }\n            if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) {\n                var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n                addEvent(ev, namespace);\n            }\n            return this;\n        }\n        function off(events, handler) {\n            var eventRegistry, elem;\n            function removeEvent(ev, namespace, handler) {\n                if (ev in eventRegistry == !0) if (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent(\"on\" + ev, handler), \n                \"global\" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);\n            }\n            function resolveNamespace(ev, namespace) {\n                var evts = [], hndx, hndL;\n                if (0 < ev.length) if (void 0 === handler) for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) evts.push({\n                    ev: ev,\n                    namespace: namespace && 0 < namespace.length ? namespace : \"global\",\n                    handler: eventRegistry[ev][namespace][hndx]\n                }); else evts.push({\n                    ev: ev,\n                    namespace: namespace && 0 < namespace.length ? namespace : \"global\",\n                    handler: handler\n                }); else if (0 < namespace.length) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (hndx = 0, \n                hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) evts.push({\n                    ev: evNdx,\n                    namespace: nmsp,\n                    handler: eventRegistry[evNdx][nmsp][hndx]\n                }); else evts.push({\n                    ev: evNdx,\n                    namespace: nmsp,\n                    handler: handler\n                });\n                return evts;\n            }\n            if (isValidElement(this[0])) {\n                eventRegistry = this[0].eventRegistry, elem = this[0];\n                for (var _events = events.split(\" \"), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split(\".\"), offEvents = resolveNamespace(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; i < offEventsL; i++) removeEvent(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);\n            }\n            return this;\n        }\n        function trigger(events) {\n            if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = \"string\" == typeof events ? events.split(\" \") : [ events.type ], endx = 0; endx < _events.length; endx++) {\n                var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n                if (void 0 !== document && \"global\" === namespace) {\n                    var evnt, i, params = {\n                        bubbles: !0,\n                        cancelable: !0,\n                        detail: arguments[1]\n                    };\n                    if (document.createEvent) {\n                        try {\n                            evnt = new CustomEvent(ev, params);\n                        } catch (e) {\n                            evnt = document.createEvent(\"CustomEvent\"), evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);\n                        }\n                        events.type && (0, _extend.default)(evnt, events), elem.dispatchEvent(evnt);\n                    } else evnt = document.createEventObject(), evnt.eventType = ev, evnt.detail = arguments[1], \n                    events.type && (0, _extend.default)(evnt, events), elem.fireEvent(\"on\" + evnt.eventType, evnt);\n                } else if (void 0 !== eventRegistry[ev]) if (arguments[0] = arguments[0].type ? arguments[0] : _inputmask.default.Event(arguments[0]), \n                arguments[0].detail = arguments.slice(1), \"global\" === namespace) for (var nmsp in eventRegistry[ev]) for (i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);\n            }\n            return this;\n        }\n        exports.Event = Event, \"function\" == typeof _window.default.CustomEvent ? exports.Event = Event = _window.default.CustomEvent : (exports.Event = Event = function Event(event, params) {\n            params = params || {\n                bubbles: !1,\n                cancelable: !1,\n                detail: void 0\n            };\n            var evt = document.createEvent(\"CustomEvent\");\n            return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail), \n            evt;\n        }, Event.prototype = _window.default.Event.prototype);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.generateMaskSet = generateMaskSet, exports.analyseMask = analyseMask;\n        var _inputmask = _interopRequireDefault(__webpack_require__(9));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function generateMaskSet(opts, nocache) {\n            var ms;\n            function generateMask(mask, metadata, opts) {\n                var regexMask = !1, masksetDefinition, maskdefKey;\n                if (null !== mask && \"\" !== mask || (regexMask = null !== opts.regex, mask = regexMask ? (mask = opts.regex, \n                mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\")) : (regexMask = !0, \".*\")), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = \"\"), \n                0 < opts.repeat || \"*\" === opts.repeat || \"+\" === opts.repeat) {\n                    var repeatStart = \"*\" === opts.repeat ? 0 : \"+\" === opts.repeat ? 1 : opts.repeat;\n                    mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + \",\" + opts.repeat + opts.quantifiermarker[1];\n                }\n                return maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask, \n                !1 !== opts.keepStatic && (maskdefKey = \"ks_\" + maskdefKey), void 0 === Inputmask.prototype.masksCache[maskdefKey] || !0 === nocache ? (masksetDefinition = {\n                    mask: mask,\n                    maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n                    validPositions: {},\n                    _buffer: void 0,\n                    buffer: void 0,\n                    tests: {},\n                    excludes: {},\n                    metadata: metadata,\n                    maskLength: void 0,\n                    jitOffset: {}\n                }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition, \n                masksetDefinition = _inputmask.default.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = _inputmask.default.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]), \n                masksetDefinition;\n            }\n            if (\"function\" == typeof opts.mask && (opts.mask = opts.mask(opts)), Array.isArray(opts.mask)) {\n                if (1 < opts.mask.length) {\n                    null === opts.keepStatic && (opts.keepStatic = !0);\n                    var altMask = opts.groupmarker[0];\n                    return (opts.isRTL ? opts.mask.reverse() : opts.mask).forEach(function(msk) {\n                        1 < altMask.length && (altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]), \n                        void 0 !== msk.mask && \"function\" != typeof msk.mask ? altMask += msk.mask : altMask += msk;\n                    }), altMask += opts.groupmarker[1], generateMask(altMask, opts.mask, opts);\n                }\n                opts.mask = opts.mask.pop();\n            }\n            return null === opts.keepStatic && (opts.keepStatic = !1), ms = opts.mask && void 0 !== opts.mask.mask && \"function\" != typeof opts.mask.mask ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts), \n            ms;\n        }\n        function analyseMask(mask, regexMask, opts) {\n            var tokenizer = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = !1, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, closeRegexGroup = !1;\n            function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n                this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1, \n                this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, \n                this.quantifier = {\n                    min: 1,\n                    max: 1\n                };\n            }\n            function insertTestDefinition(mtoken, element, position) {\n                position = void 0 !== position ? position : mtoken.matches.length;\n                var prevMatch = mtoken.matches[position - 1];\n                if (regexMask) 0 === element.indexOf(\"[\") || escaped && /\\\\d|\\\\s|\\\\w]/i.test(element) || \".\" === element ? mtoken.matches.splice(position++, 0, {\n                    fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n                    static: !1,\n                    optionality: !1,\n                    newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== element,\n                    casing: null,\n                    def: element,\n                    placeholder: void 0,\n                    nativeDef: element\n                }) : (escaped && (element = element[element.length - 1]), element.split(\"\").forEach(function(lmnt, ndx) {\n                    prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {\n                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || lmnt) ? new RegExp(\"[\" + (opts.staticDefinitionSymbol || lmnt) + \"]\", opts.casing ? \"i\" : \"\") : null,\n                        static: !0,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== lmnt && !0 !== prevMatch.static,\n                        casing: null,\n                        def: opts.staticDefinitionSymbol || lmnt,\n                        placeholder: void 0 !== opts.staticDefinitionSymbol ? lmnt : void 0,\n                        nativeDef: (escaped ? \"'\" : \"\") + lmnt\n                    });\n                })), escaped = !1; else {\n                    var maskdef = opts.definitions && opts.definitions[element] || opts.usePrototypeDefinitions && Inputmask.prototype.definitions[element];\n                    maskdef && !escaped ? mtoken.matches.splice(position++, 0, {\n                        fn: maskdef.validator ? \"string\" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n                            this.test = maskdef.validator;\n                        }() : new RegExp(\".\"),\n                        static: maskdef.static || !1,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== (maskdef.definitionSymbol || element),\n                        casing: maskdef.casing,\n                        def: maskdef.definitionSymbol || element,\n                        placeholder: maskdef.placeholder,\n                        nativeDef: element,\n                        generated: maskdef.generated\n                    }) : (mtoken.matches.splice(position++, 0, {\n                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || element) ? new RegExp(\"[\" + (opts.staticDefinitionSymbol || element) + \"]\", opts.casing ? \"i\" : \"\") : null,\n                        static: !0,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== element && !0 !== prevMatch.static,\n                        casing: null,\n                        def: opts.staticDefinitionSymbol || element,\n                        placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0,\n                        nativeDef: (escaped ? \"'\" : \"\") + element\n                    }), escaped = !1);\n                }\n            }\n            function verifyGroupMarker(maskToken) {\n                maskToken && maskToken.matches && maskToken.matches.forEach(function(token, ndx) {\n                    var nextToken = maskToken.matches[ndx + 1];\n                    (void 0 === nextToken || void 0 === nextToken.matches || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1, \n                    regexMask || (insertTestDefinition(token, opts.groupmarker[0], 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker[1]))), \n                    verifyGroupMarker(token);\n                });\n            }\n            function defaultCase() {\n                if (0 < openenings.length) {\n                    if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m), \n                    currentOpeningToken.isAlternator) {\n                        alternator = openenings.pop();\n                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup && (alternator.matches[mndx].isGroup = !1);\n                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1], \n                        currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n                    }\n                } else insertTestDefinition(currentToken, m);\n            }\n            function reverseTokens(maskToken) {\n                function reverseStatic(st) {\n                    return st === opts.optionalmarker[0] ? st = opts.optionalmarker[1] : st === opts.optionalmarker[1] ? st = opts.optionalmarker[0] : st === opts.groupmarker[0] ? st = opts.groupmarker[1] : st === opts.groupmarker[1] && (st = opts.groupmarker[0]), \n                    st;\n                }\n                for (var match in maskToken.matches = maskToken.matches.reverse(), maskToken.matches) if (Object.prototype.hasOwnProperty.call(maskToken.matches, match)) {\n                    var intMatch = parseInt(match);\n                    if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n                        var qt = maskToken.matches[match];\n                        maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);\n                    }\n                    void 0 !== maskToken.matches[match].matches ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\n                }\n                return maskToken;\n            }\n            function groupify(matches) {\n                var groupToken = new MaskToken(!0);\n                return groupToken.openGroup = !1, groupToken.matches = matches, groupToken;\n            }\n            function closeGroup() {\n                if (openingToken = openenings.pop(), openingToken.openGroup = !1, void 0 !== openingToken) if (0 < openenings.length) {\n                    if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), \n                    currentOpeningToken.isAlternator) {\n                        alternator = openenings.pop();\n                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1, \n                        alternator.matches[mndx].alternatorGroup = !1;\n                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1], \n                        currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n                    }\n                } else currentToken.matches.push(openingToken); else defaultCase();\n            }\n            function groupQuantifier(matches) {\n                var lastMatch = matches.pop();\n                return lastMatch.isQuantifier && (lastMatch = groupify([ matches.pop(), lastMatch ])), \n                lastMatch;\n            }\n            for (regexMask && (opts.optionalmarker[0] = void 0, opts.optionalmarker[1] = void 0); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {\n                if (m = match[0], regexMask) switch (m.charAt(0)) {\n                  case \"?\":\n                    m = \"{0,1}\";\n                    break;\n\n                  case \"+\":\n                  case \"*\":\n                    m = \"{\" + m + \"}\";\n                    break;\n\n                  case \"|\":\n                    if (0 === openenings.length) {\n                        var altRegexGroup = groupify(currentToken.matches);\n                        altRegexGroup.openGroup = !0, openenings.push(altRegexGroup), currentToken.matches = [], \n                        closeRegexGroup = !0;\n                    }\n                    break;\n                }\n                if (escaped) defaultCase(); else switch (m.charAt(0)) {\n                  case \"$\":\n                  case \"^\":\n                    regexMask || defaultCase();\n                    break;\n\n                  case \"(?=\":\n                    break;\n\n                  case \"(?!\":\n                    break;\n\n                  case \"(?<=\":\n                    break;\n\n                  case \"(?<!\":\n                    break;\n\n                  case opts.escapeChar:\n                    escaped = !0, regexMask && defaultCase();\n                    break;\n\n                  case opts.optionalmarker[1]:\n                  case opts.groupmarker[1]:\n                    closeGroup();\n                    break;\n\n                  case opts.optionalmarker[0]:\n                    openenings.push(new MaskToken(!1, !0));\n                    break;\n\n                  case opts.groupmarker[0]:\n                    openenings.push(new MaskToken(!0));\n                    break;\n\n                  case opts.quantifiermarker[0]:\n                    var quantifier = new MaskToken(!1, !1, !0);\n                    m = m.replace(/[{}]/g, \"\");\n                    var mqj = m.split(\"|\"), mq = mqj[0].split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n                    \"*\" !== mq0 && \"+\" !== mq0 || (mq0 = \"*\" === mq1 ? 0 : 1), quantifier.quantifier = {\n                        min: mq0,\n                        max: mq1,\n                        jit: mqj[1]\n                    };\n                    var matches = 0 < openenings.length ? openenings[openenings.length - 1].matches : currentToken.matches;\n                    if (match = matches.pop(), match.isAlternator) {\n                        matches.push(match), matches = match.matches;\n                        var groupToken = new MaskToken(!0), tmpMatch = matches.pop();\n                        matches.push(groupToken), matches = groupToken.matches, match = tmpMatch;\n                    }\n                    match.isGroup || (match = groupify([ match ])), matches.push(match), matches.push(quantifier);\n                    break;\n\n                  case opts.alternatormarker:\n                    if (0 < openenings.length) {\n                        currentOpeningToken = openenings[openenings.length - 1];\n                        var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n                        lastMatch = currentOpeningToken.openGroup && (void 0 === subToken.matches || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : groupQuantifier(currentOpeningToken.matches);\n                    } else lastMatch = groupQuantifier(currentToken.matches);\n                    if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(), \n                    lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch), \n                    openenings.push(alternator), lastMatch.openGroup) {\n                        lastMatch.openGroup = !1;\n                        var alternatorGroup = new MaskToken(!0);\n                        alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);\n                    }\n                    break;\n\n                  default:\n                    defaultCase();\n                }\n            }\n            for (closeRegexGroup && closeGroup(); 0 < openenings.length; ) openingToken = openenings.pop(), \n            currentToken.matches.push(openingToken);\n            return 0 < currentToken.matches.length && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)), \n            (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = {\n            9: {\n                validator: \"[0-9\\uff10-\\uff19]\",\n                definitionSymbol: \"*\"\n            },\n            a: {\n                validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                definitionSymbol: \"*\"\n            },\n            \"*\": {\n                validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n            }\n        };\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = {\n            _maxTestPos: 500,\n            placeholder: \"_\",\n            optionalmarker: [ \"[\", \"]\" ],\n            quantifiermarker: [ \"{\", \"}\" ],\n            groupmarker: [ \"(\", \")\" ],\n            alternatormarker: \"|\",\n            escapeChar: \"\\\\\",\n            mask: null,\n            regex: null,\n            oncomplete: function oncomplete() {},\n            onincomplete: function onincomplete() {},\n            oncleared: function oncleared() {},\n            repeat: 0,\n            greedy: !1,\n            autoUnmask: !1,\n            removeMaskOnSubmit: !1,\n            clearMaskOnLostFocus: !0,\n            insertMode: !0,\n            insertModeVisual: !0,\n            clearIncomplete: !1,\n            alias: null,\n            onKeyDown: function onKeyDown() {},\n            onBeforeMask: null,\n            onBeforePaste: function onBeforePaste(pastedValue, opts) {\n                return \"function\" == typeof opts.onBeforeMask ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;\n            },\n            onBeforeWrite: null,\n            onUnMask: null,\n            showMaskOnFocus: !0,\n            showMaskOnHover: !0,\n            onKeyValidation: function onKeyValidation() {},\n            skipOptionalPartCharacter: \" \",\n            numericInput: !1,\n            rightAlign: !1,\n            undoOnEscape: !0,\n            radixPoint: \"\",\n            _radixDance: !1,\n            groupSeparator: \"\",\n            keepStatic: null,\n            positionCaretOnTab: !0,\n            tabThrough: !1,\n            supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n            ignorables: [ 8, 9, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n            isComplete: null,\n            preValidation: null,\n            postValidation: null,\n            staticDefinitionSymbol: void 0,\n            jitMasking: !1,\n            nullable: !0,\n            inputEventOnly: !1,\n            noValuePatching: !1,\n            positionCaretOnClick: \"lvp\",\n            casing: null,\n            inputmode: \"text\",\n            importDataAttributes: !0,\n            shiftPositions: !0,\n            usePrototypeDefinitions: !0\n        };\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _escapeRegex = _interopRequireDefault(__webpack_require__(14));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var $ = _inputmask.default.dependencyLib, currentYear = new Date().getFullYear(), formatCode = {\n            d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n            dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n                return pad(Date.prototype.getDate.call(this), 2);\n            } ],\n            ddd: [ \"\" ],\n            dddd: [ \"\" ],\n            m: [ \"[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n                return Date.prototype.getMonth.call(this) + 1;\n            } ],\n            mm: [ \"0[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n                return pad(Date.prototype.getMonth.call(this) + 1, 2);\n            } ],\n            mmm: [ \"\" ],\n            mmmm: [ \"\" ],\n            yy: [ \"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function() {\n                return pad(Date.prototype.getFullYear.call(this), 2);\n            } ],\n            yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n                return pad(Date.prototype.getFullYear.call(this), 4);\n            } ],\n            h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n            hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n                return pad(Date.prototype.getHours.call(this), 2);\n            } ],\n            hx: [ function(x) {\n                return \"[0-9]{\".concat(x, \"}\");\n            }, Date.prototype.setHours, \"hours\", function(x) {\n                return Date.prototype.getHours;\n            } ],\n            H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n            HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n                return pad(Date.prototype.getHours.call(this), 2);\n            } ],\n            Hx: [ function(x) {\n                return \"[0-9]{\".concat(x, \"}\");\n            }, Date.prototype.setHours, \"hours\", function(x) {\n                return function() {\n                    return pad(Date.prototype.getHours.call(this), x);\n                };\n            } ],\n            M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n            MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n                return pad(Date.prototype.getMinutes.call(this), 2);\n            } ],\n            s: [ \"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds ],\n            ss: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n                return pad(Date.prototype.getSeconds.call(this), 2);\n            } ],\n            l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n                return pad(Date.prototype.getMilliseconds.call(this), 3);\n            } ],\n            L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n                return pad(Date.prototype.getMilliseconds.call(this), 2);\n            } ],\n            t: [ \"[ap]\" ],\n            tt: [ \"[ap]m\" ],\n            T: [ \"[AP]\" ],\n            TT: [ \"[AP]M\" ],\n            Z: [ \"\" ],\n            o: [ \"\" ],\n            S: [ \"\" ]\n        }, formatAlias = {\n            isoDate: \"yyyy-mm-dd\",\n            isoTime: \"HH:MM:ss\",\n            isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n            isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n        };\n        function formatcode(match) {\n            var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]);\n            if (dynMatches && void 0 !== dynMatches[0]) {\n                var fcode = formatCode[match[0][0] + \"x\"].slice(\"\");\n                return fcode[0] = fcode[0](dynMatches[0]), fcode[3] = fcode[3](dynMatches[0]), fcode;\n            }\n            if (formatCode[match[0]]) return formatCode[match[0]];\n        }\n        function getTokenizer(opts) {\n            if (!opts.tokenizer) {\n                var tokens = [], dyntokens = [];\n                for (var ndx in formatCode) if (/\\.*x$/.test(ndx)) {\n                    var dynToken = ndx[0] + \"\\\\d+\";\n                    -1 === dyntokens.indexOf(dynToken) && dyntokens.push(dynToken);\n                } else -1 === tokens.indexOf(ndx[0]) && tokens.push(ndx[0]);\n                opts.tokenizer = \"(\" + (0 < dyntokens.length ? dyntokens.join(\"|\") + \"|\" : \"\") + tokens.join(\"+|\") + \")+?|.\", \n                opts.tokenizer = new RegExp(opts.tokenizer, \"g\");\n            }\n            return opts.tokenizer;\n        }\n        function prefillYear(dateParts, currentResult, opts) {\n            if (dateParts.year !== dateParts.rawyear) {\n                var crrntyear = currentYear.toString(), enteredPart = dateParts.rawyear.replace(/[^0-9]/g, \"\"), currentYearPart = crrntyear.slice(0, enteredPart.length), currentYearNextPart = crrntyear.slice(enteredPart.length);\n                if (2 === enteredPart.length && enteredPart === currentYearPart) {\n                    var entryCurrentYear = new Date(currentYear, dateParts.month - 1, dateParts.day);\n                    dateParts.day == entryCurrentYear.getDate() && (!opts.max || opts.max.date.getTime() >= entryCurrentYear.getTime()) && (dateParts.date.setFullYear(currentYear), \n                    dateParts.year = crrntyear, currentResult.insert = [ {\n                        pos: currentResult.pos + 1,\n                        c: currentYearNextPart[0]\n                    }, {\n                        pos: currentResult.pos + 2,\n                        c: currentYearNextPart[1]\n                    } ]);\n                }\n            }\n            return currentResult;\n        }\n        function isValidDate(dateParts, currentResult, opts) {\n            if (!isFinite(dateParts.rawday) || \"29\" == dateParts.day && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day) return currentResult;\n            if (\"29\" == dateParts.day) {\n                var tokenMatch = getTokenMatch(currentResult.pos, opts);\n                if (\"yyyy\" === tokenMatch.targetMatch[0] && currentResult.pos - tokenMatch.targetMatchIndex == 2) return currentResult.remove = currentResult.pos + 1, \n                currentResult;\n            }\n            return !1;\n        }\n        function isDateInRange(dateParts, result, opts, maskset, fromCheckval) {\n            if (!result) return result;\n            if (opts.min) {\n                if (dateParts.rawyear) {\n                    var rawYear = dateParts.rawyear.replace(/[^0-9]/g, \"\"), minYear = opts.min.year.substr(0, rawYear.length), maxYear;\n                    if (rawYear < minYear) {\n                        var tokenMatch = getTokenMatch(result.pos, opts);\n                        if (rawYear = dateParts.rawyear.substr(0, result.pos - tokenMatch.targetMatchIndex + 1), \n                        minYear = opts.min.year.substr(0, rawYear.length), minYear <= rawYear) return result.remove = tokenMatch.targetMatchIndex + rawYear.length, \n                        result;\n                        if (rawYear = \"yyyy\" === tokenMatch.targetMatch[0] ? dateParts.rawyear.substr(1, 1) : dateParts.rawyear.substr(0, 1), \n                        minYear = opts.min.year.substr(2, 1), maxYear = opts.max ? opts.max.year.substr(2, 1) : rawYear, \n                        1 === rawYear.length && minYear <= rawYear <= maxYear && !0 !== fromCheckval) return \"yyyy\" === tokenMatch.targetMatch[0] ? (result.insert = [ {\n                            pos: result.pos + 1,\n                            c: rawYear,\n                            strict: !0\n                        } ], result.caret = result.pos + 2, maskset.validPositions[result.pos].input = opts.min.year[1]) : (result.insert = [ {\n                            pos: result.pos + 1,\n                            c: opts.min.year[1],\n                            strict: !0\n                        }, {\n                            pos: result.pos + 2,\n                            c: rawYear,\n                            strict: !0\n                        } ], result.caret = result.pos + 3, maskset.validPositions[result.pos].input = opts.min.year[0]), \n                        result;\n                        result = !1;\n                    }\n                }\n                result && dateParts.year && dateParts.year === dateParts.rawyear && opts.min.date.getTime() == opts.min.date.getTime() && (result = opts.min.date.getTime() <= dateParts.date.getTime());\n            }\n            return result && opts.max && opts.max.date.getTime() == opts.max.date.getTime() && (result = opts.max.date.getTime() >= dateParts.date.getTime()), \n            result;\n        }\n        function parse(format, dateObjValue, opts, raw) {\n            var mask = \"\", match, fcode;\n            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) if (void 0 === dateObjValue) if (fcode = formatcode(match)) mask += \"(\" + fcode[0] + \")\"; else switch (match[0]) {\n              case \"[\":\n                mask += \"(\";\n                break;\n\n              case \"]\":\n                mask += \")?\";\n                break;\n\n              default:\n                mask += (0, _escapeRegex.default)(match[0]);\n            } else if (fcode = formatcode(match)) if (!0 !== raw && fcode[3]) {\n                var getFn = fcode[3];\n                mask += getFn.call(dateObjValue.date);\n            } else fcode[2] ? mask += dateObjValue[\"raw\" + fcode[2]] : mask += match[0]; else mask += match[0];\n            return mask;\n        }\n        function pad(val, len) {\n            for (val = String(val), len = len || 2; val.length < len; ) val = \"0\" + val;\n            return val;\n        }\n        function analyseMask(maskString, format, opts) {\n            var dateObj = {\n                date: new Date(1, 0, 1)\n            }, targetProp, mask = maskString, match, dateOperation;\n            function setValue(dateObj, value, opts) {\n                dateObj[targetProp] = value.replace(/[^0-9]/g, \"0\"), dateObj[\"raw\" + targetProp] = value, \n                void 0 !== dateOperation && dateOperation.call(dateObj.date, \"month\" == targetProp ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);\n            }\n            if (\"string\" == typeof mask) {\n                for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) {\n                    var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]), fcode = dynMatches ? match[0][0] + \"x\" : match[0], value = void 0;\n                    if (dynMatches) {\n                        var lastIndex = getTokenizer(opts).lastIndex, tokanMatch = getTokenMatch(match.index, opts);\n                        getTokenizer(opts).lastIndex = lastIndex, value = mask.slice(0, mask.indexOf(tokanMatch.nextMatch[0]));\n                    } else value = mask.slice(0, fcode.length);\n                    Object.prototype.hasOwnProperty.call(formatCode, fcode) && (targetProp = formatCode[fcode][2], \n                    dateOperation = formatCode[fcode][1], setValue(dateObj, value, opts)), mask = mask.slice(value.length);\n                }\n                return dateObj;\n            }\n            if (mask && \"object\" === _typeof(mask) && Object.prototype.hasOwnProperty.call(mask, \"date\")) return mask;\n        }\n        function importDate(dateObj, opts) {\n            return parse(opts.inputFormat, {\n                date: dateObj\n            }, opts);\n        }\n        function getTokenMatch(pos, opts) {\n            var calcPos = 0, targetMatch, match, matchLength = 0;\n            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(opts.inputFormat); ) {\n                var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]);\n                if (matchLength = dynMatches ? parseInt(dynMatches[0]) : match[0].length, calcPos += matchLength, \n                pos <= calcPos) {\n                    targetMatch = match, match = getTokenizer(opts).exec(opts.inputFormat);\n                    break;\n                }\n            }\n            return {\n                targetMatchIndex: calcPos - matchLength,\n                nextMatch: match,\n                targetMatch: targetMatch\n            };\n        }\n        _inputmask.default.extendAliases({\n            datetime: {\n                mask: function mask(opts) {\n                    return opts.numericInput = !1, formatCode.S = opts.i18n.ordinalSuffix.join(\"|\"), \n                    opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat, opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat, \n                    opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat, \n                    opts.placeholder = \"\" !== opts.placeholder ? opts.placeholder : opts.inputFormat.replace(/[[\\]]/, \"\"), \n                    opts.regex = parse(opts.inputFormat, void 0, opts), opts.min = analyseMask(opts.min, opts.inputFormat, opts), \n                    opts.max = analyseMask(opts.max, opts.inputFormat, opts), null;\n                },\n                placeholder: \"\",\n                inputFormat: \"isoDateTime\",\n                displayFormat: void 0,\n                outputFormat: void 0,\n                min: null,\n                max: null,\n                skipOptionalPartCharacter: \"\",\n                i18n: {\n                    dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n                    monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n                    ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n                },\n                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {\n                    if (strict) return !0;\n                    if (isNaN(c) && buffer[pos] !== c) {\n                        var tokenMatch = getTokenMatch(pos, opts);\n                        if (tokenMatch.nextMatch && tokenMatch.nextMatch[0] === c && 1 < tokenMatch.targetMatch[0].length) {\n                            var validator = formatCode[tokenMatch.targetMatch[0]][0];\n                            if (new RegExp(validator).test(\"0\" + buffer[pos - 1])) return buffer[pos] = buffer[pos - 1], \n                            buffer[pos - 1] = \"0\", {\n                                fuzzy: !0,\n                                buffer: buffer,\n                                refreshFromBuffer: {\n                                    start: pos - 1,\n                                    end: pos + 1\n                                },\n                                pos: pos + 1\n                            };\n                        }\n                    }\n                    return !0;\n                },\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict, fromCheckval) {\n                    if (strict) return !0;\n                    var tokenMatch, validator;\n                    if (!1 === currentResult) return tokenMatch = getTokenMatch(pos + 1, opts), tokenMatch.targetMatch && tokenMatch.targetMatchIndex === pos && 1 < tokenMatch.targetMatch[0].length && void 0 !== formatCode[tokenMatch.targetMatch[0]] && (validator = formatCode[tokenMatch.targetMatch[0]][0], \n                    new RegExp(validator).test(\"0\" + c)) ? {\n                        insert: [ {\n                            pos: pos,\n                            c: \"0\"\n                        }, {\n                            pos: pos + 1,\n                            c: c\n                        } ],\n                        pos: pos + 1\n                    } : currentResult;\n                    if (currentResult.fuzzy && (buffer = currentResult.buffer, pos = currentResult.pos), \n                    tokenMatch = getTokenMatch(pos, opts), tokenMatch.targetMatch && tokenMatch.targetMatch[0] && void 0 !== formatCode[tokenMatch.targetMatch[0]]) {\n                        validator = formatCode[tokenMatch.targetMatch[0]][0];\n                        var part = buffer.slice(tokenMatch.targetMatchIndex, tokenMatch.targetMatchIndex + tokenMatch.targetMatch[0].length);\n                        !1 === new RegExp(validator).test(part.join(\"\")) && 2 === tokenMatch.targetMatch[0].length && maskset.validPositions[tokenMatch.targetMatchIndex] && maskset.validPositions[tokenMatch.targetMatchIndex + 1] && (maskset.validPositions[tokenMatch.targetMatchIndex + 1].input = \"0\");\n                    }\n                    var result = currentResult, dateParts = analyseMask(buffer.join(\"\"), opts.inputFormat, opts);\n                    return result && dateParts.date.getTime() == dateParts.date.getTime() && (result = prefillYear(dateParts, result, opts), \n                    result = isValidDate(dateParts, result, opts), result = isDateInRange(dateParts, result, opts, maskset, fromCheckval)), \n                    pos && result && currentResult.pos !== pos ? {\n                        buffer: parse(opts.inputFormat, dateParts, opts).split(\"\"),\n                        refreshFromBuffer: {\n                            start: pos,\n                            end: currentResult.pos\n                        }\n                    } : result;\n                },\n                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\n                    var input = this;\n                    e.ctrlKey && e.keyCode === _keycode.default.RIGHT && (this.inputmask._valueSet(importDate(new Date(), opts)), \n                    $(this).trigger(\"setvalue\"));\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return unmaskedValue ? parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, !0) : unmaskedValue;\n                },\n                casing: function casing(elem, test, pos, validPositions) {\n                    return 0 == test.nativeDef.indexOf(\"[ap]\") ? elem.toLowerCase() : 0 == test.nativeDef.indexOf(\"[AP]\") ? elem.toUpperCase() : elem;\n                },\n                onBeforeMask: function onBeforeMask(initialValue, opts) {\n                    return \"[object Date]\" === Object.prototype.toString.call(initialValue) && (initialValue = importDate(initialValue, opts)), \n                    initialValue;\n                },\n                insertMode: !1,\n                shiftPositions: !1,\n                keepStatic: !1,\n                inputmode: \"numeric\"\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _escapeRegex = _interopRequireDefault(__webpack_require__(14));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var $ = _inputmask.default.dependencyLib;\n        function autoEscape(txt, opts) {\n            for (var escapedTxt = \"\", i = 0; i < txt.length; i++) _inputmask.default.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker[0] === txt.charAt(i) || opts.optionalmarker[1] === txt.charAt(i) || opts.quantifiermarker[0] === txt.charAt(i) || opts.quantifiermarker[1] === txt.charAt(i) || opts.groupmarker[0] === txt.charAt(i) || opts.groupmarker[1] === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += \"\\\\\" + txt.charAt(i) : escapedTxt += txt.charAt(i);\n            return escapedTxt;\n        }\n        function alignDigits(buffer, digits, opts, force) {\n            if (0 < buffer.length && 0 < digits && (!opts.digitsOptional || force)) {\n                var radixPosition = buffer.indexOf(opts.radixPoint), negationBack = !1;\n                opts.negationSymbol.back === buffer[buffer.length - 1] && (negationBack = !0, buffer.length--), \n                -1 === radixPosition && (buffer.push(opts.radixPoint), radixPosition = buffer.length - 1);\n                for (var i = 1; i <= digits; i++) isFinite(buffer[radixPosition + i]) || (buffer[radixPosition + i] = \"0\");\n            }\n            return negationBack && buffer.push(opts.negationSymbol.back), buffer;\n        }\n        function findValidator(symbol, maskset) {\n            var posNdx = 0;\n            if (\"+\" === symbol) {\n                for (posNdx in maskset.validPositions) ;\n                posNdx = parseInt(posNdx);\n            }\n            for (var tstNdx in maskset.tests) if (tstNdx = parseInt(tstNdx), posNdx <= tstNdx) for (var ndx = 0, ndxl = maskset.tests[tstNdx].length; ndx < ndxl; ndx++) if ((void 0 === maskset.validPositions[tstNdx] || \"-\" === symbol) && maskset.tests[tstNdx][ndx].match.def === symbol) return tstNdx + (void 0 !== maskset.validPositions[tstNdx] && \"-\" !== symbol ? 1 : 0);\n            return posNdx;\n        }\n        function findValid(symbol, maskset) {\n            var ret = -1;\n            for (var ndx in maskset.validPositions) {\n                var tst = maskset.validPositions[ndx];\n                if (tst && tst.match.def === symbol) {\n                    ret = parseInt(ndx);\n                    break;\n                }\n            }\n            return ret;\n        }\n        function parseMinMaxOptions(opts) {\n            void 0 === opts.parseMinMaxOptions && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp((0, \n            _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \",\" === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, \".\")), \n            opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)), \n            null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp((0, _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \n            \",\" === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, \".\")), \n            opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)), \n            opts.parseMinMaxOptions = \"done\");\n        }\n        function genMask(opts) {\n            opts.repeat = 0, opts.groupSeparator === opts.radixPoint && opts.digits && \"0\" !== opts.digits && (\".\" === opts.radixPoint ? opts.groupSeparator = \",\" : \",\" === opts.radixPoint ? opts.groupSeparator = \".\" : opts.groupSeparator = \"\"), \n            \" \" === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), 1 < opts.placeholder.length && (opts.placeholder = opts.placeholder.charAt(0)), \n            \"radixFocus\" === opts.positionCaretOnClick && \"\" === opts.placeholder && (opts.positionCaretOnClick = \"lvp\");\n            var decimalDef = \"0\", radixPointDef = opts.radixPoint;\n            !0 === opts.numericInput && void 0 === opts.__financeInput ? (decimalDef = \"1\", \n            opts.positionCaretOnClick = \"radixFocus\" === opts.positionCaretOnClick ? \"lvp\" : opts.positionCaretOnClick, \n            opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts._radixDance = !1, \n            radixPointDef = \",\" === opts.radixPoint ? \"?\" : \"!\", \"\" !== opts.radixPoint && void 0 === opts.definitions[radixPointDef] && (opts.definitions[radixPointDef] = {}, \n            opts.definitions[radixPointDef].validator = \"[\" + opts.radixPoint + \"]\", opts.definitions[radixPointDef].placeholder = opts.radixPoint, \n            opts.definitions[radixPointDef].static = !0, opts.definitions[radixPointDef].generated = !0)) : (opts.__financeInput = !1, \n            opts.numericInput = !0);\n            var mask = \"[+]\", altMask;\n            if (mask += autoEscape(opts.prefix, opts), \"\" !== opts.groupSeparator ? (void 0 === opts.definitions[opts.groupSeparator] && (opts.definitions[opts.groupSeparator] = {}, \n            opts.definitions[opts.groupSeparator].validator = \"[\" + opts.groupSeparator + \"]\", \n            opts.definitions[opts.groupSeparator].placeholder = opts.groupSeparator, opts.definitions[opts.groupSeparator].static = !0, \n            opts.definitions[opts.groupSeparator].generated = !0), mask += opts._mask(opts)) : mask += \"9{+}\", \n            void 0 !== opts.digits && 0 !== opts.digits) {\n                var dq = opts.digits.toString().split(\",\");\n                isFinite(dq[0]) && dq[1] && isFinite(dq[1]) ? mask += radixPointDef + decimalDef + \"{\" + opts.digits + \"}\" : (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && (opts.digitsOptional ? (altMask = mask + radixPointDef + decimalDef + \"{0,\" + opts.digits + \"}\", \n                opts.keepStatic = !0) : mask += radixPointDef + decimalDef + \"{\" + opts.digits + \"}\");\n            }\n            return mask += autoEscape(opts.suffix, opts), mask += \"[-]\", altMask && (mask = [ altMask + autoEscape(opts.suffix, opts) + \"[-]\", mask ]), \n            opts.greedy = !1, parseMinMaxOptions(opts), mask;\n        }\n        function hanndleRadixDance(pos, c, radixPos, maskset, opts) {\n            return opts._radixDance && opts.numericInput && c !== opts.negationSymbol.back && pos <= radixPos && (0 < radixPos || c == opts.radixPoint) && (void 0 === maskset.validPositions[pos - 1] || maskset.validPositions[pos - 1].input !== opts.negationSymbol.back) && (pos -= 1), \n            pos;\n        }\n        function decimalValidator(chrs, maskset, pos, strict, opts) {\n            var radixPos = maskset.buffer ? maskset.buffer.indexOf(opts.radixPoint) : -1, result = -1 !== radixPos && new RegExp(\"[0-9\\uff11-\\uff19]\").test(chrs);\n            return opts._radixDance && result && null == maskset.validPositions[radixPos] ? {\n                insert: {\n                    pos: radixPos === pos ? radixPos + 1 : radixPos,\n                    c: opts.radixPoint\n                },\n                pos: pos\n            } : result;\n        }\n        function checkForLeadingZeroes(buffer, opts) {\n            var numberMatches = new RegExp(\"(^\" + (\"\" !== opts.negationSymbol.front ? (0, _escapeRegex.default)(opts.negationSymbol.front) + \"?\" : \"\") + (0, \n            _escapeRegex.default)(opts.prefix) + \")(.*)(\" + (0, _escapeRegex.default)(opts.suffix) + (\"\" != opts.negationSymbol.back ? (0, \n            _escapeRegex.default)(opts.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(buffer.slice().reverse().join(\"\")), number = numberMatches ? numberMatches[2] : \"\", leadingzeroes = !1;\n            return number && (number = number.split(opts.radixPoint.charAt(0))[0], leadingzeroes = new RegExp(\"^[0\" + opts.groupSeparator + \"]*\").exec(number)), \n            !(!leadingzeroes || !(1 < leadingzeroes[0].length || 0 < leadingzeroes[0].length && leadingzeroes[0].length < number.length)) && leadingzeroes;\n        }\n        _inputmask.default.extendAliases({\n            numeric: {\n                mask: genMask,\n                _mask: function _mask(opts) {\n                    return \"(\" + opts.groupSeparator + \"999){+|1}\";\n                },\n                digits: \"*\",\n                digitsOptional: !0,\n                enforceDigitsOnBlur: !1,\n                radixPoint: \".\",\n                positionCaretOnClick: \"radixFocus\",\n                _radixDance: !0,\n                groupSeparator: \"\",\n                allowMinus: !0,\n                negationSymbol: {\n                    front: \"-\",\n                    back: \"\"\n                },\n                prefix: \"\",\n                suffix: \"\",\n                min: null,\n                max: null,\n                SetMaxOnOverflow: !1,\n                step: 1,\n                inputType: \"text\",\n                unmaskAsNumber: !1,\n                roundingFN: Math.round,\n                inputmode: \"numeric\",\n                shortcuts: {\n                    k: \"000\",\n                    m: \"000000\"\n                },\n                placeholder: \"0\",\n                greedy: !1,\n                rightAlign: !0,\n                insertMode: !0,\n                autoUnmask: !1,\n                skipOptionalPartCharacter: \"\",\n                definitions: {\n                    0: {\n                        validator: decimalValidator\n                    },\n                    1: {\n                        validator: decimalValidator,\n                        definitionSymbol: \"9\"\n                    },\n                    \"+\": {\n                        validator: function validator(chrs, maskset, pos, strict, opts) {\n                            return opts.allowMinus && (\"-\" === chrs || chrs === opts.negationSymbol.front);\n                        }\n                    },\n                    \"-\": {\n                        validator: function validator(chrs, maskset, pos, strict, opts) {\n                            return opts.allowMinus && chrs === opts.negationSymbol.back;\n                        }\n                    }\n                },\n                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {\n                    if (!1 !== opts.__financeInput && c === opts.radixPoint) return !1;\n                    var pattern;\n                    if (pattern = opts.shortcuts && opts.shortcuts[c]) {\n                        if (1 < pattern.length) for (var inserts = [], i = 0; i < pattern.length; i++) inserts.push({\n                            pos: pos + i,\n                            c: pattern[i],\n                            strict: !1\n                        });\n                        return {\n                            insert: inserts\n                        };\n                    }\n                    var radixPos = buffer.indexOf(opts.radixPoint), initPos = pos;\n                    if (pos = hanndleRadixDance(pos, c, radixPos, maskset, opts), \"-\" === c || c === opts.negationSymbol.front) {\n                        if (!0 !== opts.allowMinus) return !1;\n                        var isNegative = !1, front = findValid(\"+\", maskset), back = findValid(\"-\", maskset);\n                        return -1 !== front && (isNegative = [ front, back ]), !1 !== isNegative ? {\n                            remove: isNegative,\n                            caret: initPos - opts.negationSymbol.front.length\n                        } : {\n                            insert: [ {\n                                pos: findValidator(\"+\", maskset),\n                                c: opts.negationSymbol.front,\n                                fromIsValid: !0\n                            }, {\n                                pos: findValidator(\"-\", maskset),\n                                c: opts.negationSymbol.back,\n                                fromIsValid: void 0\n                            } ],\n                            caret: initPos + opts.negationSymbol.back.length\n                        };\n                    }\n                    if (c === opts.groupSeparator) return {\n                        caret: initPos\n                    };\n                    if (strict) return !0;\n                    if (-1 !== radixPos && !0 === opts._radixDance && !1 === isSelection && c === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && radixPos !== pos) return {\n                        caret: opts._radixDance && pos === radixPos - 1 ? radixPos + 1 : radixPos\n                    };\n                    if (!1 === opts.__financeInput) if (isSelection) {\n                        if (opts.digitsOptional) return {\n                            rewritePosition: caretPos.end\n                        };\n                        if (!opts.digitsOptional) {\n                            if (caretPos.begin > radixPos && caretPos.end <= radixPos) return c === opts.radixPoint ? {\n                                insert: {\n                                    pos: radixPos + 1,\n                                    c: \"0\",\n                                    fromIsValid: !0\n                                },\n                                rewritePosition: radixPos\n                            } : {\n                                rewritePosition: radixPos + 1\n                            };\n                            if (caretPos.begin < radixPos) return {\n                                rewritePosition: caretPos.begin - 1\n                            };\n                        }\n                    } else if (!opts.showMaskOnHover && !opts.showMaskOnFocus && !opts.digitsOptional && 0 < opts.digits && \"\" === this.inputmask.__valueGet.call(this)) return {\n                        rewritePosition: radixPos\n                    };\n                    return {\n                        rewritePosition: pos\n                    };\n                },\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {\n                    if (!1 === currentResult) return currentResult;\n                    if (strict) return !0;\n                    if (null !== opts.min || null !== opts.max) {\n                        var unmasked = opts.onUnMask(buffer.slice().reverse().join(\"\"), void 0, $.extend({}, opts, {\n                            unmaskAsNumber: !0\n                        }));\n                        if (null !== opts.min && unmasked < opts.min && (unmasked.toString().length > opts.min.toString().length || unmasked < 0)) return !1;\n                        if (null !== opts.max && unmasked > opts.max) return !!opts.SetMaxOnOverflow && {\n                            refreshFromBuffer: !0,\n                            buffer: alignDigits(opts.max.toString().replace(\".\", opts.radixPoint).split(\"\"), opts.digits, opts).reverse()\n                        };\n                    }\n                    return currentResult;\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    if (\"\" === unmaskedValue && !0 === opts.nullable) return unmaskedValue;\n                    var processValue = maskedValue.replace(opts.prefix, \"\");\n                    return processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp((0, \n                    _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \"\" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), \"g\"), \"0\")), \n                    opts.unmaskAsNumber ? (\"\" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(_escapeRegex.default.call(this, opts.radixPoint), \".\")), \n                    processValue = processValue.replace(new RegExp(\"^\" + (0, _escapeRegex.default)(opts.negationSymbol.front)), \"-\"), \n                    processValue = processValue.replace(new RegExp((0, _escapeRegex.default)(opts.negationSymbol.back) + \"$\"), \"\"), \n                    Number(processValue)) : processValue;\n                },\n                isComplete: function isComplete(buffer, opts) {\n                    var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(\"\");\n                    return maskedValue = maskedValue.replace(new RegExp(\"^\" + (0, _escapeRegex.default)(opts.negationSymbol.front)), \"-\"), \n                    maskedValue = maskedValue.replace(new RegExp((0, _escapeRegex.default)(opts.negationSymbol.back) + \"$\"), \"\"), \n                    maskedValue = maskedValue.replace(opts.prefix, \"\"), maskedValue = maskedValue.replace(opts.suffix, \"\"), \n                    maskedValue = maskedValue.replace(new RegExp((0, _escapeRegex.default)(opts.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \n                    \",\" === opts.radixPoint && (maskedValue = maskedValue.replace((0, _escapeRegex.default)(opts.radixPoint), \".\")), \n                    isFinite(maskedValue);\n                },\n                onBeforeMask: function onBeforeMask(initialValue, opts) {\n                    var radixPoint = opts.radixPoint || \",\";\n                    isFinite(opts.digits) && (opts.digits = parseInt(opts.digits)), \"number\" != typeof initialValue && \"number\" !== opts.inputType || \"\" === radixPoint || (initialValue = initialValue.toString().replace(\".\", radixPoint));\n                    var isNagtive = \"-\" === initialValue.charAt(0) || initialValue.charAt(0) === opts.negationSymbol.front, valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\\-0-9]/g, \"\"), decimalPart = 1 < valueParts.length ? valueParts[1].replace(/[^0-9]/g, \"\") : \"\", forceDigits = 1 < valueParts.length;\n                    initialValue = integerPart + (\"\" !== decimalPart ? radixPoint + decimalPart : decimalPart);\n                    var digits = 0;\n                    if (\"\" !== radixPoint && (digits = opts.digitsOptional ? opts.digits < decimalPart.length ? opts.digits : decimalPart.length : opts.digits, \n                    \"\" !== decimalPart || !opts.digitsOptional)) {\n                        var digitsFactor = Math.pow(10, digits || 1);\n                        initialValue = initialValue.replace((0, _escapeRegex.default)(radixPoint), \".\"), \n                        isNaN(parseFloat(initialValue)) || (initialValue = (opts.roundingFN(parseFloat(initialValue) * digitsFactor) / digitsFactor).toFixed(digits)), \n                        initialValue = initialValue.toString().replace(\".\", radixPoint);\n                    }\n                    if (0 === opts.digits && -1 !== initialValue.indexOf(radixPoint) && (initialValue = initialValue.substring(0, initialValue.indexOf(radixPoint))), \n                    null !== opts.min || null !== opts.max) {\n                        var numberValue = initialValue.toString().replace(radixPoint, \".\");\n                        null !== opts.min && numberValue < opts.min ? initialValue = opts.min.toString().replace(\".\", radixPoint) : null !== opts.max && numberValue > opts.max && (initialValue = opts.max.toString().replace(\".\", radixPoint));\n                    }\n                    return isNagtive && \"-\" !== initialValue.charAt(0) && (initialValue = \"-\" + initialValue), \n                    alignDigits(initialValue.toString().split(\"\"), digits, opts, forceDigits).join(\"\");\n                },\n                onBeforeWrite: function onBeforeWrite(e, buffer, caretPos, opts) {\n                    function stripBuffer(buffer, stripRadix) {\n                        if (!1 !== opts.__financeInput || stripRadix) {\n                            var position = buffer.indexOf(opts.radixPoint);\n                            -1 !== position && buffer.splice(position, 1);\n                        }\n                        if (\"\" !== opts.groupSeparator) for (;-1 !== (position = buffer.indexOf(opts.groupSeparator)); ) buffer.splice(position, 1);\n                        return buffer;\n                    }\n                    var result, leadingzeroes = checkForLeadingZeroes(buffer, opts);\n                    if (leadingzeroes) for (var caretNdx = buffer.join(\"\").lastIndexOf(leadingzeroes[0].split(\"\").reverse().join(\"\")) - (leadingzeroes[0] == leadingzeroes.input ? 0 : 1), offset = leadingzeroes[0] == leadingzeroes.input ? 1 : 0, i = leadingzeroes[0].length - offset; 0 < i; i--) delete this.maskset.validPositions[caretNdx + i], \n                    delete buffer[caretNdx + i];\n                    if (e) switch (e.type) {\n                      case \"blur\":\n                      case \"checkval\":\n                        if (null !== opts.min) {\n                            var unmasked = opts.onUnMask(buffer.slice().reverse().join(\"\"), void 0, $.extend({}, opts, {\n                                unmaskAsNumber: !0\n                            }));\n                            if (null !== opts.min && unmasked < opts.min) return {\n                                refreshFromBuffer: !0,\n                                buffer: alignDigits(opts.min.toString().replace(\".\", opts.radixPoint).split(\"\"), opts.digits, opts).reverse()\n                            };\n                        }\n                        if (buffer[buffer.length - 1] === opts.negationSymbol.front) {\n                            var nmbrMtchs = new RegExp(\"(^\" + (\"\" != opts.negationSymbol.front ? (0, _escapeRegex.default)(opts.negationSymbol.front) + \"?\" : \"\") + (0, \n                            _escapeRegex.default)(opts.prefix) + \")(.*)(\" + (0, _escapeRegex.default)(opts.suffix) + (\"\" != opts.negationSymbol.back ? (0, \n                            _escapeRegex.default)(opts.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(stripBuffer(buffer.slice(), !0).reverse().join(\"\")), number = nmbrMtchs ? nmbrMtchs[2] : \"\";\n                            0 == number && (result = {\n                                refreshFromBuffer: !0,\n                                buffer: [ 0 ]\n                            });\n                        } else \"\" !== opts.radixPoint && buffer[0] === opts.radixPoint && (result && result.buffer ? result.buffer.shift() : (buffer.shift(), \n                        result = {\n                            refreshFromBuffer: !0,\n                            buffer: stripBuffer(buffer)\n                        }));\n                        if (opts.enforceDigitsOnBlur) {\n                            result = result || {};\n                            var bffr = result && result.buffer || buffer.slice().reverse();\n                            result.refreshFromBuffer = !0, result.buffer = alignDigits(bffr, opts.digits, opts, !0).reverse();\n                        }\n                    }\n                    return result;\n                },\n                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\n                    var $input = $(this), bffr;\n                    if (e.ctrlKey) switch (e.keyCode) {\n                      case _keycode.default.UP:\n                        return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), \n                        $input.trigger(\"setvalue\"), !1;\n\n                      case _keycode.default.DOWN:\n                        return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), \n                        $input.trigger(\"setvalue\"), !1;\n                    }\n                    if (!e.shiftKey && (e.keyCode === _keycode.default.DELETE || e.keyCode === _keycode.default.BACKSPACE || e.keyCode === _keycode.default.BACKSPACE_SAFARI) && caretPos.begin !== buffer.length) {\n                        if (buffer[e.keyCode === _keycode.default.DELETE ? caretPos.begin - 1 : caretPos.end] === opts.negationSymbol.front) return bffr = buffer.slice().reverse(), \n                        \"\" !== opts.negationSymbol.front && bffr.shift(), \"\" !== opts.negationSymbol.back && bffr.pop(), \n                        $input.trigger(\"setvalue\", [ bffr.join(\"\"), caretPos.begin ]), !1;\n                        if (!0 === opts._radixDance) {\n                            var radixPos = buffer.indexOf(opts.radixPoint);\n                            if (opts.digitsOptional) {\n                                if (0 === radixPos) return bffr = buffer.slice().reverse(), bffr.pop(), $input.trigger(\"setvalue\", [ bffr.join(\"\"), caretPos.begin >= bffr.length ? bffr.length : caretPos.begin ]), \n                                !1;\n                            } else if (-1 !== radixPos && (caretPos.begin < radixPos || caretPos.end < radixPos || e.keyCode === _keycode.default.DELETE && caretPos.begin === radixPos)) return caretPos.begin !== caretPos.end || e.keyCode !== _keycode.default.BACKSPACE && e.keyCode !== _keycode.default.BACKSPACE_SAFARI || caretPos.begin++, \n                            bffr = buffer.slice().reverse(), bffr.splice(bffr.length - caretPos.begin, caretPos.begin - caretPos.end + 1), \n                            bffr = alignDigits(bffr, opts.digits, opts).join(\"\"), $input.trigger(\"setvalue\", [ bffr, caretPos.begin >= bffr.length ? radixPos + 1 : caretPos.begin ]), \n                            !1;\n                        }\n                    }\n                }\n            },\n            currency: {\n                prefix: \"\",\n                groupSeparator: \",\",\n                alias: \"numeric\",\n                digits: 2,\n                digitsOptional: !1\n            },\n            decimal: {\n                alias: \"numeric\"\n            },\n            integer: {\n                alias: \"numeric\",\n                digits: 0\n            },\n            percentage: {\n                alias: \"numeric\",\n                min: 0,\n                max: 100,\n                suffix: \" %\",\n                digits: 0,\n                allowMinus: !1\n            },\n            indianns: {\n                alias: \"numeric\",\n                _mask: function _mask(opts) {\n                    return \"(\" + opts.groupSeparator + \"99){*|1}(\" + opts.groupSeparator + \"999){1|1}\";\n                },\n                groupSeparator: \",\",\n                radixPoint: \".\",\n                placeholder: \"0\",\n                digits: 2,\n                digitsOptional: !1\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _window = _interopRequireDefault(__webpack_require__(6)), _inputmask = _interopRequireDefault(__webpack_require__(1));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _classCallCheck(instance, Constructor) {\n            if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n        }\n        function _inherits(subClass, superClass) {\n            if (\"function\" != typeof superClass && null !== superClass) throw new TypeError(\"Super expression must either be null or a function\");\n            subClass.prototype = Object.create(superClass && superClass.prototype, {\n                constructor: {\n                    value: subClass,\n                    writable: !0,\n                    configurable: !0\n                }\n            }), superClass && _setPrototypeOf(subClass, superClass);\n        }\n        function _createSuper(Derived) {\n            var hasNativeReflectConstruct = _isNativeReflectConstruct();\n            return function _createSuperInternal() {\n                var Super = _getPrototypeOf(Derived), result;\n                if (hasNativeReflectConstruct) {\n                    var NewTarget = _getPrototypeOf(this).constructor;\n                    result = Reflect.construct(Super, arguments, NewTarget);\n                } else result = Super.apply(this, arguments);\n                return _possibleConstructorReturn(this, result);\n            };\n        }\n        function _possibleConstructorReturn(self, call) {\n            return !call || \"object\" !== _typeof(call) && \"function\" != typeof call ? _assertThisInitialized(self) : call;\n        }\n        function _assertThisInitialized(self) {\n            if (void 0 === self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n            return self;\n        }\n        function _wrapNativeSuper(Class) {\n            var _cache = \"function\" == typeof Map ? new Map() : void 0;\n            return _wrapNativeSuper = function _wrapNativeSuper(Class) {\n                if (null === Class || !_isNativeFunction(Class)) return Class;\n                if (\"function\" != typeof Class) throw new TypeError(\"Super expression must either be null or a function\");\n                if (\"undefined\" != typeof _cache) {\n                    if (_cache.has(Class)) return _cache.get(Class);\n                    _cache.set(Class, Wrapper);\n                }\n                function Wrapper() {\n                    return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n                }\n                return Wrapper.prototype = Object.create(Class.prototype, {\n                    constructor: {\n                        value: Wrapper,\n                        enumerable: !1,\n                        writable: !0,\n                        configurable: !0\n                    }\n                }), _setPrototypeOf(Wrapper, Class);\n            }, _wrapNativeSuper(Class);\n        }\n        function _construct(Parent, args, Class) {\n            return _construct = _isNativeReflectConstruct() ? Reflect.construct : function _construct(Parent, args, Class) {\n                var a = [ null ];\n                a.push.apply(a, args);\n                var Constructor = Function.bind.apply(Parent, a), instance = new Constructor();\n                return Class && _setPrototypeOf(instance, Class.prototype), instance;\n            }, _construct.apply(null, arguments);\n        }\n        function _isNativeReflectConstruct() {\n            if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n            if (Reflect.construct.sham) return !1;\n            if (\"function\" == typeof Proxy) return !0;\n            try {\n                return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), \n                !0;\n            } catch (e) {\n                return !1;\n            }\n        }\n        function _isNativeFunction(fn) {\n            return -1 !== Function.toString.call(fn).indexOf(\"[native code]\");\n        }\n        function _setPrototypeOf(o, p) {\n            return _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n                return o.__proto__ = p, o;\n            }, _setPrototypeOf(o, p);\n        }\n        function _getPrototypeOf(o) {\n            return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n                return o.__proto__ || Object.getPrototypeOf(o);\n            }, _getPrototypeOf(o);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var document = _window.default.document;\n        if (document && document.head && document.head.attachShadow && _window.default.customElements && void 0 === _window.default.customElements.get(\"input-mask\")) {\n            var InputmaskElement = function(_HTMLElement) {\n                _inherits(InputmaskElement, _HTMLElement);\n                var _super = _createSuper(InputmaskElement);\n                function InputmaskElement() {\n                    var _this;\n                    _classCallCheck(this, InputmaskElement), _this = _super.call(this);\n                    var attributeNames = _this.getAttributeNames(), shadow = _this.attachShadow({\n                        mode: \"closed\"\n                    }), input = document.createElement(\"input\");\n                    for (var attr in input.type = \"text\", shadow.appendChild(input), attributeNames) Object.prototype.hasOwnProperty.call(attributeNames, attr) && input.setAttribute(attributeNames[attr], _this.getAttribute(attributeNames[attr]));\n                    var im = new _inputmask.default();\n                    return im.dataAttribute = \"\", im.mask(input), input.inputmask.shadowRoot = shadow, \n                    _this;\n                }\n                return InputmaskElement;\n            }(_wrapNativeSuper(HTMLElement));\n            _window.default.customElements.define(\"input-mask\", InputmaskElement);\n        }\n    } ], installedModules = {}, __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n    __webpack_require__.d = function(exports, name, getter) {\n        __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n            enumerable: !0,\n            get: getter\n        });\n    }, __webpack_require__.r = function(exports) {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n    }, __webpack_require__.t = function(value, mode) {\n        if (1 & mode && (value = __webpack_require__(value)), 8 & mode) return value;\n        if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n        var ns = Object.create(null);\n        if (__webpack_require__.r(ns), Object.defineProperty(ns, \"default\", {\n            enumerable: !0,\n            value: value\n        }), 2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n            return value[key];\n        }.bind(null, key));\n        return ns;\n    }, __webpack_require__.n = function(module) {\n        var getter = module && module.__esModule ? function getDefault() {\n            return module.default;\n        } : function getModuleExports() {\n            return module;\n        };\n        return __webpack_require__.d(getter, \"a\", getter), getter;\n    }, __webpack_require__.o = function(object, property) {\n        return Object.prototype.hasOwnProperty.call(object, property);\n    }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 15);\n    function __webpack_require__(moduleId) {\n        if (installedModules[moduleId]) return installedModules[moduleId].exports;\n        var module = installedModules[moduleId] = {\n            i: moduleId,\n            l: !1,\n            exports: {}\n        };\n        return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n        module.l = !0, module.exports;\n    }\n    var modules, installedModules;\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/inputmask/jquery.inputmask.js",
    "content": "/*!\n * dist/jquery.inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2020 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.5-beta.0\n */\n!function webpackUniversalModuleDefinition(root, factory) {\n    if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = factory(require(\"jquery\")); else if (\"function\" == typeof define && define.amd) define([ \"jquery\" ], factory); else {\n        var a = \"object\" == typeof exports ? factory(require(\"jquery\")) : factory(root.jQuery);\n        for (var i in a) (\"object\" == typeof exports ? exports : root)[i] = a[i];\n    }\n}(window, function(__WEBPACK_EXTERNAL_MODULE__8__) {\n    return modules = [ function(module) {\n        module.exports = JSON.parse('{\"BACKSPACE\":8,\"BACKSPACE_SAFARI\":127,\"DELETE\":46,\"DOWN\":40,\"END\":35,\"ENTER\":13,\"ESCAPE\":27,\"HOME\":36,\"INSERT\":45,\"LEFT\":37,\"PAGE_DOWN\":34,\"PAGE_UP\":33,\"RIGHT\":39,\"SPACE\":32,\"TAB\":9,\"UP\":38,\"X\":88,\"CONTROL\":17,\"KEY_229\":229}');\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0, __webpack_require__(9);\n        var _mask = __webpack_require__(10), _inputmask = _interopRequireDefault(__webpack_require__(12)), _window = _interopRequireDefault(__webpack_require__(13)), _maskLexer = __webpack_require__(17), _validationTests = __webpack_require__(3), _positioning = __webpack_require__(2), _validation = __webpack_require__(4), _inputHandling = __webpack_require__(5), _eventruler = __webpack_require__(11), _definitions = _interopRequireDefault(__webpack_require__(18)), _defaults = _interopRequireDefault(__webpack_require__(19));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var document = _window.default.document, dataKey = \"_inputmask_opts\";\n        function Inputmask(alias, options, internal) {\n            if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);\n            this.dependencyLib = _inputmask.default, this.el = void 0, this.events = {}, this.maskset = void 0, \n            !0 !== internal && (\"[object Object]\" === Object.prototype.toString.call(alias) ? options = alias : (options = options || {}, \n            alias && (options.alias = alias)), this.opts = _inputmask.default.extend(!0, {}, this.defaults, options), \n            this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, \n            resolveAlias(this.opts.alias, options, this.opts)), this.refreshValue = !1, this.undoValue = void 0, \n            this.$el = void 0, this.skipKeyPressEvent = !1, this.skipInputEvent = !1, this.validationEvent = !1, \n            this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.originalPlaceholder = void 0, \n            this.isComposing = !1;\n        }\n        function resolveAlias(aliasStr, options, opts) {\n            var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n            return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), \n            _inputmask.default.extend(!0, opts, aliasDefinition), _inputmask.default.extend(!0, opts, options), \n            !0) : (null === opts.mask && (opts.mask = aliasStr), !1);\n        }\n        function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n            function importOption(option, optionData) {\n                var attrOption = \"\" === dataAttribute ? option : dataAttribute + \"-\" + option;\n                optionData = void 0 !== optionData ? optionData : npt.getAttribute(attrOption), \n                null !== optionData && (\"string\" == typeof optionData && (0 === option.indexOf(\"on\") ? optionData = _window.default[optionData] : \"false\" === optionData ? optionData = !1 : \"true\" === optionData && (optionData = !0)), \n                userOptions[option] = optionData);\n            }\n            if (!0 === opts.importDataAttributes) {\n                var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;\n                if (attrOptions && \"\" !== attrOptions && (attrOptions = attrOptions.replace(/'/g, '\"'), \n                dataoptions = JSON.parse(\"{\" + attrOptions + \"}\")), dataoptions) for (p in optionData = void 0, \n                dataoptions) if (\"alias\" === p.toLowerCase()) {\n                    optionData = dataoptions[p];\n                    break;\n                }\n                for (option in importOption(\"alias\", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts), \n                opts) {\n                    if (dataoptions) for (p in optionData = void 0, dataoptions) if (p.toLowerCase() === option.toLowerCase()) {\n                        optionData = dataoptions[p];\n                        break;\n                    }\n                    importOption(option, optionData);\n                }\n            }\n            return _inputmask.default.extend(!0, opts, userOptions), \"rtl\" !== npt.dir && !opts.rightAlign || (npt.style.textAlign = \"right\"), \n            \"rtl\" !== npt.dir && !opts.numericInput || (npt.dir = \"ltr\", npt.removeAttribute(\"dir\"), \n            opts.isRTL = !0), Object.keys(userOptions).length;\n        }\n        Inputmask.prototype = {\n            dataAttribute: \"data-inputmask\",\n            defaults: _defaults.default,\n            definitions: _definitions.default,\n            aliases: {},\n            masksCache: {},\n            get isRTL() {\n                return this.opts.isRTL || this.opts.numericInput;\n            },\n            mask: function mask(elems) {\n                var that = this;\n                return \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n                elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el, ndx) {\n                    var scopedOpts = _inputmask.default.extend(!0, {}, that.opts);\n                    if (importAttributeOptions(el, scopedOpts, _inputmask.default.extend(!0, {}, that.userOptions), that.dataAttribute)) {\n                        var maskset = (0, _maskLexer.generateMaskSet)(scopedOpts, that.noMasksCache);\n                        void 0 !== maskset && (void 0 !== el.inputmask && (el.inputmask.opts.autoUnmask = !0, \n                        el.inputmask.remove()), el.inputmask = new Inputmask(void 0, void 0, !0), el.inputmask.opts = scopedOpts, \n                        el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = _inputmask.default.extend(!0, {}, that.userOptions), \n                        el.inputmask.el = el, el.inputmask.$el = (0, _inputmask.default)(el), el.inputmask.maskset = maskset, \n                        _inputmask.default.data(el, dataKey, that.userOptions), _mask.mask.call(el.inputmask));\n                    }\n                }), elems && elems[0] && elems[0].inputmask || this;\n            },\n            option: function option(options, noremask) {\n                return \"string\" == typeof options ? this.opts[options] : \"object\" === _typeof(options) ? (_inputmask.default.extend(this.userOptions, options), \n                this.el && !0 !== noremask && this.mask(this.el), this) : void 0;\n            },\n            unmaskedvalue: function unmaskedvalue(value) {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                void 0 === this.el || void 0 !== value) {\n                    var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                    _inputHandling.checkVal.call(this, void 0, !1, !1, valueBuffer), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, _positioning.getBuffer.call(this), 0, this.opts);\n                }\n                return _inputHandling.unmaskedvalue.call(this, this.el);\n            },\n            remove: function remove() {\n                if (this.el) {\n                    _inputmask.default.data(this.el, dataKey, null);\n                    var cv = this.opts.autoUnmask ? (0, _inputHandling.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask), valueProperty;\n                    cv !== _positioning.getBufferTemplate.call(this).join(\"\") ? this._valueSet(cv, this.opts.autoUnmask) : this._valueSet(\"\"), \n                    _eventruler.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? (valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\"), \n                    valueProperty && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n                        get: this.__valueGet,\n                        set: this.__valueSet,\n                        configurable: !0\n                    })) : document.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), \n                    this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n                }\n                return this.el;\n            },\n            getemptymask: function getemptymask() {\n                return this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                _positioning.getBufferTemplate.call(this).join(\"\");\n            },\n            hasMaskedValue: function hasMaskedValue() {\n                return !this.opts.autoUnmask;\n            },\n            isComplete: function isComplete() {\n                return this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                _validation.isComplete.call(this, _positioning.getBuffer.call(this));\n            },\n            getmetadata: function getmetadata() {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                Array.isArray(this.maskset.metadata)) {\n                    var maskTarget = _validationTests.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n                    return this.maskset.metadata.forEach(function(mtdt) {\n                        return mtdt.mask !== maskTarget || (maskTarget = mtdt, !1);\n                    }), maskTarget;\n                }\n                return this.maskset.metadata;\n            },\n            isValid: function isValid(value) {\n                if (this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache), \n                value) {\n                    var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                    _inputHandling.checkVal.call(this, void 0, !0, !1, valueBuffer);\n                } else value = this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\");\n                for (var buffer = _positioning.getBuffer.call(this), rl = _positioning.determineLastRequiredPosition.call(this), lmib = buffer.length - 1; rl < lmib && !_positioning.isMask.call(this, lmib); lmib--) ;\n                return buffer.splice(rl, lmib + 1 - rl), _validation.isComplete.call(this, buffer) && value === (this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\"));\n            },\n            format: function format(value, metadata) {\n                this.maskset = this.maskset || (0, _maskLexer.generateMaskSet)(this.opts, this.noMasksCache);\n                var valueBuffer = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, value, this.opts) || value).split(\"\");\n                _inputHandling.checkVal.call(this, void 0, !0, !1, valueBuffer);\n                var formattedValue = this.isRTL ? _positioning.getBuffer.call(this).slice().reverse().join(\"\") : _positioning.getBuffer.call(this).join(\"\");\n                return metadata ? {\n                    value: formattedValue,\n                    metadata: this.getmetadata()\n                } : formattedValue;\n            },\n            setValue: function setValue(value) {\n                this.el && (0, _inputmask.default)(this.el).trigger(\"setvalue\", [ value ]);\n            },\n            analyseMask: _maskLexer.analyseMask\n        }, Inputmask.extendDefaults = function(options) {\n            _inputmask.default.extend(!0, Inputmask.prototype.defaults, options);\n        }, Inputmask.extendDefinitions = function(definition) {\n            _inputmask.default.extend(!0, Inputmask.prototype.definitions, definition);\n        }, Inputmask.extendAliases = function(alias) {\n            _inputmask.default.extend(!0, Inputmask.prototype.aliases, alias);\n        }, Inputmask.format = function(value, options, metadata) {\n            return Inputmask(options).format(value, metadata);\n        }, Inputmask.unmask = function(value, options) {\n            return Inputmask(options).unmaskedvalue(value);\n        }, Inputmask.isValid = function(value, options) {\n            return Inputmask(options).isValid(value);\n        }, Inputmask.remove = function(elems) {\n            \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n            elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el) {\n                el.inputmask && el.inputmask.remove();\n            });\n        }, Inputmask.setValue = function(elems, value) {\n            \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \n            elems = elems.nodeName ? [ elems ] : elems, elems.forEach(function(el) {\n                el.inputmask ? el.inputmask.setValue(value) : (0, _inputmask.default)(el).trigger(\"setvalue\", [ value ]);\n            });\n        }, Inputmask.dependencyLib = _inputmask.default, _window.default.Inputmask = Inputmask;\n        var _default = Inputmask;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.caret = caret, exports.determineLastRequiredPosition = determineLastRequiredPosition, \n        exports.determineNewCaretPosition = determineNewCaretPosition, exports.getBuffer = getBuffer, \n        exports.getBufferTemplate = getBufferTemplate, exports.getLastValidPosition = getLastValidPosition, \n        exports.isMask = isMask, exports.resetMaskSet = resetMaskSet, exports.seekNext = seekNext, \n        exports.seekPrevious = seekPrevious, exports.translatePosition = translatePosition;\n        var _validationTests = __webpack_require__(3), _validation = __webpack_require__(4), _mask = __webpack_require__(10);\n        function caret(input, begin, end, notranslate, isDelete) {\n            var inputmask = this, opts = this.opts, range;\n            if (void 0 === begin) return \"selectionStart\" in input && \"selectionEnd\" in input ? (begin = input.selectionStart, \n            end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), \n            range.commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset, \n            end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), \n            begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length), \n            end = begin + range.text.length), {\n                begin: notranslate ? begin : translatePosition.call(this, begin),\n                end: notranslate ? end : translatePosition.call(this, end)\n            };\n            if (Array.isArray(begin) && (end = this.isRTL ? begin[0] : begin[1], begin = this.isRTL ? begin[1] : begin[0]), \n            void 0 !== begin.begin && (end = this.isRTL ? begin.begin : begin.end, begin = this.isRTL ? begin.end : begin.begin), \n            \"number\" == typeof begin) {\n                begin = notranslate ? begin : translatePosition.call(this, begin), end = notranslate ? end : translatePosition.call(this, end), \n                end = \"number\" == typeof end ? end : begin;\n                var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n                if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, input.inputmask.caretPos = {\n                    begin: begin,\n                    end: end\n                }, opts.insertModeVisual && !1 === opts.insertMode && begin === end && (isDelete || end++), \n                input === (input.inputmask.shadowRoot || document).activeElement) if (\"setSelectionRange\" in input) input.setSelectionRange(begin, end); else if (window.getSelection) {\n                    if (range = document.createRange(), void 0 === input.firstChild || null === input.firstChild) {\n                        var textNode = document.createTextNode(\"\");\n                        input.appendChild(textNode);\n                    }\n                    range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), \n                    range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), \n                    range.collapse(!0);\n                    var sel = window.getSelection();\n                    sel.removeAllRanges(), sel.addRange(range);\n                } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), \n                range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\n            }\n        }\n        function determineLastRequiredPosition(returnDefinition) {\n            var inputmask = this, maskset = this.maskset, $ = this.dependencyLib, buffer = _validationTests.getMaskTemplate.call(this, !0, getLastValidPosition.call(this), !0, !0), bl = buffer.length, pos, lvp = getLastValidPosition.call(this), positions = {}, lvTest = maskset.validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0, testPos;\n            for (pos = lvp + 1; pos < buffer.length; pos++) testPos = _validationTests.getTestTemplate.call(this, pos, ndxIntlzr, pos - 1), \n            ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);\n            var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0;\n            for (pos = bl - 1; lvp < pos && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && 1 != testPos.match.static || !0 === testPos.match.static && testPos.locator[lvTest.alternation] && _validation.checkAlternationMatch.call(this, testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && \"\" !== _validationTests.getTests.call(this, pos)[0].def)) && buffer[pos] === _validationTests.getPlaceholder.call(this, pos, testPos.match)); pos--) bl--;\n            return returnDefinition ? {\n                l: bl,\n                def: positions[bl] ? positions[bl].match : void 0\n            } : bl;\n        }\n        function determineNewCaretPosition(selectedCaret, tabbed) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts;\n            function doRadixFocus(clickPos) {\n                if (\"\" !== opts.radixPoint && 0 !== opts.digits) {\n                    var vps = maskset.validPositions;\n                    if (void 0 === vps[clickPos] || vps[clickPos].input === _validationTests.getPlaceholder.call(inputmask, clickPos)) {\n                        if (clickPos < seekNext.call(inputmask, -1)) return !0;\n                        var radixPos = getBuffer.call(inputmask).indexOf(opts.radixPoint);\n                        if (-1 !== radixPos) {\n                            for (var vp in vps) if (vps[vp] && radixPos < vp && vps[vp].input !== _validationTests.getPlaceholder.call(inputmask, vp)) return !1;\n                            return !0;\n                        }\n                    }\n                }\n                return !1;\n            }\n            if (tabbed && (inputmask.isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end), \n            selectedCaret.begin === selectedCaret.end) {\n                switch (opts.positionCaretOnClick) {\n                  case \"none\":\n                    break;\n\n                  case \"select\":\n                    selectedCaret = {\n                        begin: 0,\n                        end: getBuffer.call(inputmask).length\n                    };\n                    break;\n\n                  case \"ignore\":\n                    selectedCaret.end = selectedCaret.begin = seekNext.call(inputmask, getLastValidPosition.call(inputmask));\n                    break;\n\n                  case \"radixFocus\":\n                    if (doRadixFocus(selectedCaret.begin)) {\n                        var radixPos = getBuffer.call(inputmask).join(\"\").indexOf(opts.radixPoint);\n                        selectedCaret.end = selectedCaret.begin = opts.numericInput ? seekNext.call(inputmask, radixPos) : radixPos;\n                        break;\n                    }\n\n                  default:\n                    var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition.call(inputmask, clickPosition, !0), lastPosition = seekNext.call(inputmask, -1 !== lvclickPosition || isMask.call(inputmask, 0) ? lvclickPosition : -1);\n                    if (clickPosition <= lastPosition) selectedCaret.end = selectedCaret.begin = isMask.call(inputmask, clickPosition, !1, !0) ? clickPosition : seekNext.call(inputmask, clickPosition); else {\n                        var lvp = maskset.validPositions[lvclickPosition], tt = _validationTests.getTestTemplate.call(inputmask, lastPosition, lvp ? lvp.match.locator : void 0, lvp), placeholder = _validationTests.getPlaceholder.call(inputmask, lastPosition, tt.match);\n                        if (\"\" !== placeholder && getBuffer.call(inputmask)[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask.call(inputmask, lastPosition, opts.keepStatic, !0) && tt.match.def === placeholder) {\n                            var newPos = seekNext.call(inputmask, lastPosition);\n                            (newPos <= clickPosition || clickPosition === lastPosition) && (lastPosition = newPos);\n                        }\n                        selectedCaret.end = selectedCaret.begin = lastPosition;\n                    }\n                }\n                return selectedCaret;\n            }\n        }\n        function getBuffer(noCache) {\n            var inputmask = this, maskset = this.maskset;\n            return void 0 !== maskset.buffer && !0 !== noCache || (maskset.buffer = _validationTests.getMaskTemplate.call(this, !0, getLastValidPosition.call(this), !0), \n            void 0 === maskset._buffer && (maskset._buffer = maskset.buffer.slice())), maskset.buffer;\n        }\n        function getBufferTemplate() {\n            var inputmask = this, maskset = this.maskset;\n            return void 0 === maskset._buffer && (maskset._buffer = _validationTests.getMaskTemplate.call(this, !1, 1), \n            void 0 === maskset.buffer && (maskset.buffer = maskset._buffer.slice())), maskset._buffer;\n        }\n        function getLastValidPosition(closestTo, strict, validPositions) {\n            var maskset = this.maskset, before = -1, after = -1, valids = validPositions || maskset.validPositions;\n            for (var posNdx in void 0 === closestTo && (closestTo = -1), valids) {\n                var psNdx = parseInt(posNdx);\n                valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx), \n                closestTo <= psNdx && (after = psNdx));\n            }\n            return -1 === before || before == closestTo ? after : -1 == after ? before : closestTo - before < after - closestTo ? before : after;\n        }\n        function isMask(pos, strict, fuzzy) {\n            var inputmask = this, maskset = this.maskset, test = _validationTests.getTestTemplate.call(this, pos).match;\n            if (\"\" === test.def && (test = _validationTests.getTest.call(this, pos).match), \n            !0 !== test.static) return test.fn;\n            if (!0 === fuzzy && void 0 !== maskset.validPositions[pos] && !0 !== maskset.validPositions[pos].generatedInput) return !0;\n            if (!0 !== strict && -1 < pos) {\n                if (fuzzy) {\n                    var tests = _validationTests.getTests.call(this, pos);\n                    return tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0);\n                }\n                var testTemplate = _validationTests.determineTestTemplate.call(this, pos, _validationTests.getTests.call(this, pos)), testPlaceHolder = _validationTests.getPlaceholder.call(this, pos, testTemplate.match);\n                return testTemplate.match.def !== testPlaceHolder;\n            }\n            return !1;\n        }\n        function resetMaskSet(soft) {\n            var maskset = this.maskset;\n            maskset.buffer = void 0, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);\n        }\n        function seekNext(pos, newBlock, fuzzy) {\n            var inputmask = this;\n            void 0 === fuzzy && (fuzzy = !0);\n            for (var position = pos + 1; \"\" !== _validationTests.getTest.call(this, position).match.def && (!0 === newBlock && (!0 !== _validationTests.getTest.call(this, position).match.newBlockMarker || !isMask.call(this, position, void 0, !0)) || !0 !== newBlock && !isMask.call(this, position, void 0, fuzzy)); ) position++;\n            return position;\n        }\n        function seekPrevious(pos, newBlock) {\n            var inputmask = this, position = pos - 1;\n            if (pos <= 0) return 0;\n            for (;0 < position && (!0 === newBlock && (!0 !== _validationTests.getTest.call(this, position).match.newBlockMarker || !isMask.call(this, position, void 0, !0)) || !0 !== newBlock && !isMask.call(this, position, void 0, !0)); ) position--;\n            return position;\n        }\n        function translatePosition(pos) {\n            var inputmask = this, opts = this.opts, el = this.el;\n            return !this.isRTL || \"number\" != typeof pos || opts.greedy && \"\" === opts.placeholder || !el || (pos = this._valueGet().length - pos), \n            pos;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function getLocator(tst, align) {\n            var locator = (null != tst.alternation ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(\"\");\n            if (\"\" !== locator) for (;locator.length < align; ) locator += \"0\";\n            return locator;\n        }\n        function getDecisionTaker(tst) {\n            var decisionTaker = tst.locator[tst.alternation];\n            return \"string\" == typeof decisionTaker && 0 < decisionTaker.length && (decisionTaker = decisionTaker.split(\",\")[0]), \n            void 0 !== decisionTaker ? decisionTaker.toString() : \"\";\n        }\n        function getPlaceholder(pos, test, returnPL) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset;\n            if (test = test || getTest.call(this, pos).match, void 0 !== test.placeholder || !0 === returnPL) return \"function\" == typeof test.placeholder ? test.placeholder(opts) : test.placeholder;\n            if (!0 !== test.static) return opts.placeholder.charAt(pos % opts.placeholder.length);\n            if (-1 < pos && void 0 === maskset.validPositions[pos]) {\n                var tests = getTests.call(this, pos), staticAlternations = [], prevTest;\n                if (tests.length > 1 + (\"\" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (\"\" !== tests[i].match.def && !0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (!0 === tests[i].match.static || void 0 === prevTest || !1 !== tests[i].match.fn.test(prevTest.match.def, maskset, pos, !0, opts)) && (staticAlternations.push(tests[i]), \n                !0 === tests[i].match.static && (prevTest = tests[i]), 1 < staticAlternations.length && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);\n            }\n            return test.def;\n        }\n        function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset, greedy = opts.greedy;\n            clearOptionalTail && (opts.greedy = !1), minimalPos = minimalPos || 0;\n            var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, jitRenderStatic;\n            do {\n                if (!0 === baseOnInput && maskset.validPositions[pos]) testPos = clearOptionalTail && !0 === maskset.validPositions[pos].match.optionality && void 0 === maskset.validPositions[pos + 1] && (!0 === maskset.validPositions[pos].generatedInput || maskset.validPositions[pos].input == opts.skipOptionalPartCharacter && 0 < pos) ? determineTestTemplate.call(this, pos, getTests.call(this, pos, ndxIntlzr, pos - 1)) : maskset.validPositions[pos], \n                test = testPos.match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder.call(this, pos, test)); else {\n                    testPos = getTestTemplate.call(this, pos, ndxIntlzr, pos - 1), test = testPos.match, \n                    ndxIntlzr = testPos.locator.slice();\n                    var jitMasking = !0 !== noJit && (!1 !== opts.jitMasking ? opts.jitMasking : test.jit);\n                    jitRenderStatic = jitRenderStatic && test.static && test.def !== opts.groupSeparator && null === test.fn || maskset.validPositions[pos - 1] && test.static && test.def !== opts.groupSeparator && null === test.fn, \n                    jitRenderStatic || !1 === jitMasking || void 0 === jitMasking || \"number\" == typeof jitMasking && isFinite(jitMasking) && pos < jitMasking ? maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder.call(this, pos, test)) : jitRenderStatic = !1;\n                }\n                pos++;\n            } while ((void 0 === this.maxLength || pos < this.maxLength) && (!0 !== test.static || \"\" !== test.def) || pos < minimalPos);\n            return \"\" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), !1 === includeMode && void 0 !== maskset.maskLength || (maskset.maskLength = pos - 1), \n            opts.greedy = greedy, maskTemplate;\n        }\n        function getTestTemplate(pos, ndxIntlzr, tstPs) {\n            var inputmask = this, maskset = this.maskset;\n            return maskset.validPositions[pos] || determineTestTemplate.call(this, pos, getTests.call(this, pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n        }\n        function determineTestTemplate(pos, tests) {\n            var inputmask = this, opts = this.opts;\n            pos = 0 < pos ? pos - 1 : 0;\n            for (var altTest = getTest.call(this, pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch, ndx = 0; ndx < tests.length; ndx++) {\n                var tst = tests[ndx];\n                tstLocator = getLocator(tst, targetLocator.length);\n                var distance = Math.abs(tstLocator - targetLocator);\n                (void 0 === closest || \"\" !== tstLocator && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && \"master\" === bestMatch.match.newBlockMarker && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) && (closest = distance, \n                bestMatch = tst);\n            }\n            return bestMatch;\n        }\n        function getTest(pos, tests) {\n            var inputmask = this, maskset = this.maskset;\n            return maskset.validPositions[pos] ? maskset.validPositions[pos] : (tests || getTests.call(this, pos))[0];\n        }\n        function getTests(pos, ndxIntlzr, tstPs) {\n            var inputmask = this, $ = this.dependencyLib, maskset = this.maskset, opts = this.opts, el = this.el, maskTokens = maskset.maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n            function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n                function handleMatch(match, loopNdx, quantifierRecurse) {\n                    function isFirstMatch(latestMatch, tokenGroup) {\n                        var firstMatch = 0 === tokenGroup.matches.indexOf(latestMatch);\n                        return firstMatch || tokenGroup.matches.every(function(match, ndx) {\n                            return !0 === match.isQuantifier ? firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]) : Object.prototype.hasOwnProperty.call(match, \"matches\") && (firstMatch = isFirstMatch(latestMatch, match)), \n                            !firstMatch;\n                        }), firstMatch;\n                    }\n                    function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n                        var bestMatch, indexPos;\n                        if ((maskset.tests[pos] || maskset.validPositions[pos]) && (maskset.tests[pos] || [ maskset.validPositions[pos] ]).every(function(lmnt, ndx) {\n                            if (lmnt.mloc[alternateNdx]) return bestMatch = lmnt, !1;\n                            var alternation = void 0 !== targetAlternation ? targetAlternation : lmnt.alternation, ndxPos = void 0 !== lmnt.locator[alternation] ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n                            return (void 0 === indexPos || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt, \n                            indexPos = ndxPos), !0;\n                        }), bestMatch) {\n                            var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation], locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;\n                            return locator.slice((void 0 !== targetAlternation ? targetAlternation : bestMatch.alternation) + 1);\n                        }\n                        return void 0 !== targetAlternation ? resolveNdxInitializer(pos, alternateNdx) : void 0;\n                    }\n                    function isSubsetOf(source, target) {\n                        function expand(pattern) {\n                            for (var expanded = [], start = -1, end, i = 0, l = pattern.length; i < l; i++) if (\"-\" === pattern.charAt(i)) for (end = pattern.charCodeAt(i + 1); ++start < end; ) expanded.push(String.fromCharCode(start)); else start = pattern.charCodeAt(i), \n                            expanded.push(pattern.charAt(i));\n                            return expanded.join(\"\");\n                        }\n                        return source.match.def === target.match.nativeDef || !(!(opts.regex || source.match.fn instanceof RegExp && target.match.fn instanceof RegExp) || !0 === source.match.static || !0 === target.match.static) && -1 !== expand(target.match.fn.toString().replace(/[[\\]/]/g, \"\")).indexOf(expand(source.match.fn.toString().replace(/[[\\]/]/g, \"\")));\n                    }\n                    function staticCanMatchDefinition(source, target) {\n                        return !0 === source.match.static && !0 !== target.match.static && target.match.fn.test(source.match.def, maskset, pos, !1, opts, !1);\n                    }\n                    function setMergeLocators(targetMatch, altMatch) {\n                        var alternationNdx = targetMatch.alternation, shouldMerge = void 0 === altMatch || alternationNdx === altMatch.alternation && -1 === targetMatch.locator[alternationNdx].toString().indexOf(altMatch.locator[alternationNdx]);\n                        if (!shouldMerge && alternationNdx > altMatch.alternation) for (var i = altMatch.alternation; i < alternationNdx; i++) if (targetMatch.locator[i] !== altMatch.locator[i]) {\n                            alternationNdx = i, shouldMerge = !0;\n                            break;\n                        }\n                        if (shouldMerge) {\n                            targetMatch.mloc = targetMatch.mloc || {};\n                            var locNdx = targetMatch.locator[alternationNdx];\n                            if (void 0 !== locNdx) {\n                                if (\"string\" == typeof locNdx && (locNdx = locNdx.split(\",\")[0]), void 0 === targetMatch.mloc[locNdx] && (targetMatch.mloc[locNdx] = targetMatch.locator.slice()), \n                                void 0 !== altMatch) {\n                                    for (var ndx in altMatch.mloc) \"string\" == typeof ndx && (ndx = ndx.split(\",\")[0]), \n                                    void 0 === targetMatch.mloc[ndx] && (targetMatch.mloc[ndx] = altMatch.mloc[ndx]);\n                                    targetMatch.locator[alternationNdx] = Object.keys(targetMatch.mloc).join(\",\");\n                                }\n                                return !0;\n                            }\n                            targetMatch.alternation = void 0;\n                        }\n                        return !1;\n                    }\n                    function isSameLevel(targetMatch, altMatch) {\n                        if (targetMatch.locator.length !== altMatch.locator.length) return !1;\n                        for (var locNdx = targetMatch.alternation + 1; locNdx < targetMatch.locator.length; locNdx++) if (targetMatch.locator[locNdx] !== altMatch.locator[locNdx]) return !1;\n                        return !0;\n                    }\n                    if (testPos > pos + opts._maxTestPos) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + maskset.mask;\n                    if (testPos === pos && void 0 === match.matches) return matches.push({\n                        match: match,\n                        locator: loopNdx.reverse(),\n                        cd: cacheDependency,\n                        mloc: {}\n                    }), !0;\n                    if (void 0 !== match.matches) {\n                        if (match.isGroup && quantifierRecurse !== match) {\n                            if (match = handleMatch(maskToken.matches[maskToken.matches.indexOf(match) + 1], loopNdx, quantifierRecurse), \n                            match) return !0;\n                        } else if (match.isOptional) {\n                            var optionalToken = match, mtchsNdx = matches.length;\n                            if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse), \n                            match) {\n                                if (matches.forEach(function(mtch, ndx) {\n                                    mtchsNdx <= ndx && (mtch.match.optionality = !0);\n                                }), latestMatch = matches[matches.length - 1].match, void 0 !== quantifierRecurse || !isFirstMatch(latestMatch, optionalToken)) return !0;\n                                insertStop = !0, testPos = pos;\n                            }\n                        } else if (match.isAlternator) {\n                            var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = 0 < ndxInitializer.length ? ndxInitializer.shift() : -1;\n                            if (-1 === altIndex || \"string\" == typeof altIndex) {\n                                var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;\n                                if (\"string\" == typeof altIndex) altIndexArr = altIndex.split(\",\"); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx.toString());\n                                if (void 0 !== maskset.excludes[pos]) {\n                                    for (var altIndexArrClone = altIndexArr.slice(), i = 0, exl = maskset.excludes[pos].length; i < exl; i++) {\n                                        var excludeSet = maskset.excludes[pos][i].toString().split(\":\");\n                                        loopNdx.length == excludeSet[1] && altIndexArr.splice(altIndexArr.indexOf(excludeSet[0]), 1);\n                                    }\n                                    0 === altIndexArr.length && (delete maskset.excludes[pos], altIndexArr = altIndexArrClone);\n                                }\n                                (!0 === opts.keepStatic || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) && (altIndexArr = altIndexArr.slice(0, 1));\n                                for (var unMatchedAlternation = !1, ndx = 0; ndx < altIndexArr.length; ndx++) {\n                                    amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = \"string\" == typeof altIndex && resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(), \n                                    alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) ? match = !0 : 0 === ndx && (unMatchedAlternation = !0), \n                                    maltMatches = matches.slice(), testPos = currentPos, matches = [];\n                                    for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n                                        var altMatch = maltMatches[ndx1], dropMatch = !1;\n                                        altMatch.match.jit = altMatch.match.jit || unMatchedAlternation, altMatch.alternation = altMatch.alternation || loopNdxCnt, \n                                        setMergeLocators(altMatch);\n                                        for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n                                            var altMatch2 = malternateMatches[ndx2];\n                                            if (\"string\" != typeof altIndex || void 0 !== altMatch.alternation && altIndexArr.includes(altMatch.locator[altMatch.alternation].toString())) {\n                                                if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {\n                                                    dropMatch = !0, setMergeLocators(altMatch2, altMatch);\n                                                    break;\n                                                }\n                                                if (isSubsetOf(altMatch, altMatch2)) {\n                                                    setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));\n                                                    break;\n                                                }\n                                                if (isSubsetOf(altMatch2, altMatch)) {\n                                                    setMergeLocators(altMatch2, altMatch);\n                                                    break;\n                                                }\n                                                if (staticCanMatchDefinition(altMatch, altMatch2)) {\n                                                    isSameLevel(altMatch, altMatch2) || void 0 !== el.inputmask.userOptions.keepStatic ? setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, \n                                                    malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch)) : opts.keepStatic = !0;\n                                                    break;\n                                                }\n                                            }\n                                        }\n                                        dropMatch || malternateMatches.push(altMatch);\n                                    }\n                                }\n                                matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = 0 < matches.length, \n                                match = 0 < malternateMatches.length, ndxInitializer = ndxInitializerClone.slice();\n                            } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n                            if (match) return !0;\n                        } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[maskToken.matches.indexOf(match) - 1]) for (var qt = match, qndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n                            var tokenGroup = maskToken.matches[maskToken.matches.indexOf(qt) - 1];\n                            if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup), match) {\n                                if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx >= qt.quantifier.min, \n                                latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit, \n                                latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {\n                                    insertStop = !0, testPos = pos;\n                                    break;\n                                }\n                                return latestMatch.jit && (maskset.jitOffset[pos] = tokenGroup.matches.length - tokenGroup.matches.indexOf(latestMatch)), \n                                !0;\n                            }\n                        } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse), \n                        match) return !0;\n                    } else testPos++;\n                }\n                for (var tndx = 0 < ndxInitializer.length ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {\n                    var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n                    if (match && testPos === pos) return match;\n                    if (pos < testPos) break;\n                }\n            }\n            function mergeLocators(pos, tests) {\n                var locator = [], alternation;\n                return Array.isArray(tests) || (tests = [ tests ]), 0 < tests.length && (void 0 === tests[0].alternation || !0 === opts.keepStatic ? (locator = determineTestTemplate.call(inputmask, pos, tests.slice()).locator.slice(), \n                0 === locator.length && (locator = tests[0].locator.slice())) : tests.forEach(function(tst) {\n                    \"\" !== tst.def && (0 === locator.length ? (alternation = tst.alternation, locator = tst.locator.slice()) : tst.locator[alternation] && -1 === locator[alternation].toString().indexOf(tst.locator[alternation]) && (locator[alternation] += \",\" + tst.locator[alternation]));\n                })), locator;\n            }\n            if (-1 < pos && (void 0 === inputmask.maxLength || pos < inputmask.maxLength)) {\n                if (void 0 === ndxIntlzr) {\n                    for (var previousPos = pos - 1, test; void 0 === (test = maskset.validPositions[previousPos] || maskset.tests[previousPos]) && -1 < previousPos; ) previousPos--;\n                    void 0 !== test && -1 < previousPos && (ndxInitializer = mergeLocators(previousPos, test), \n                    cacheDependency = ndxInitializer.join(\"\"), testPos = previousPos);\n                }\n                if (maskset.tests[pos] && maskset.tests[pos][0].cd === cacheDependency) return maskset.tests[pos];\n                for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n                    var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);\n                    if (match && testPos === pos || pos < testPos) break;\n                }\n            }\n            return 0 !== matches.length && !insertStop || matches.push({\n                match: {\n                    fn: null,\n                    static: !0,\n                    optionality: !1,\n                    casing: null,\n                    def: \"\",\n                    placeholder: \"\"\n                },\n                locator: [],\n                mloc: {},\n                cd: cacheDependency\n            }), void 0 !== ndxIntlzr && maskset.tests[pos] ? $.extend(!0, [], matches) : (maskset.tests[pos] = $.extend(!0, [], matches), \n            maskset.tests[pos]);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.determineTestTemplate = determineTestTemplate, exports.getDecisionTaker = getDecisionTaker, \n        exports.getMaskTemplate = getMaskTemplate, exports.getPlaceholder = getPlaceholder, \n        exports.getTest = getTest, exports.getTests = getTests, exports.getTestTemplate = getTestTemplate;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.alternate = alternate, exports.checkAlternationMatch = checkAlternationMatch, \n        exports.isComplete = isComplete, exports.isValid = isValid, exports.refreshFromBuffer = refreshFromBuffer, \n        exports.revalidateMask = revalidateMask, exports.handleRemove = handleRemove;\n        var _validationTests = __webpack_require__(3), _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _eventhandlers = __webpack_require__(6);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function alternate(maskPos, c, strict, fromIsValid, rAltPos, selection) {\n            var inputmask = this, $ = this.dependencyLib, opts = this.opts, maskset = this.maskset, validPsClone = $.extend(!0, {}, maskset.validPositions), tstClone = $.extend(!0, {}, maskset.tests), lastAlt, alternation, isValidRslt = !1, returnRslt = !1, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = void 0 !== rAltPos ? rAltPos : _positioning.getLastValidPosition.call(this), nextPos, input, begin, end;\n            if (selection && (begin = selection.begin, end = selection.end, selection.begin > selection.end && (begin = selection.end, \n            end = selection.begin)), -1 === lAltPos && void 0 === rAltPos) lastAlt = 0, prevAltPos = _validationTests.getTest.call(this, lastAlt), \n            alternation = prevAltPos.alternation; else for (;0 <= lAltPos; lAltPos--) if (altPos = maskset.validPositions[lAltPos], \n            altPos && void 0 !== altPos.alternation) {\n                if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;\n                lastAlt = lAltPos, alternation = maskset.validPositions[lastAlt].alternation, prevAltPos = altPos;\n            }\n            if (void 0 !== alternation) {\n                decisionPos = parseInt(lastAlt), maskset.excludes[decisionPos] = maskset.excludes[decisionPos] || [], \n                !0 !== maskPos && maskset.excludes[decisionPos].push((0, _validationTests.getDecisionTaker)(prevAltPos) + \":\" + prevAltPos.alternation);\n                var validInputs = [], resultPos = -1;\n                for (i = decisionPos; i < _positioning.getLastValidPosition.call(this, void 0, !0) + 1; i++) -1 === resultPos && maskPos <= i && void 0 !== c && (validInputs.push(c), \n                resultPos = validInputs.length - 1), validPos = maskset.validPositions[i], validPos && !0 !== validPos.generatedInput && (void 0 === selection || i < begin || end <= i) && validInputs.push(validPos.input), \n                delete maskset.validPositions[i];\n                for (-1 === resultPos && void 0 !== c && (validInputs.push(c), resultPos = validInputs.length - 1); void 0 !== maskset.excludes[decisionPos] && maskset.excludes[decisionPos].length < 10; ) {\n                    for (maskset.tests = {}, _positioning.resetMaskSet.call(this, !0), isValidRslt = !0, \n                    i = 0; i < validInputs.length && (nextPos = isValidRslt.caret || _positioning.getLastValidPosition.call(this, void 0, !0) + 1, \n                    input = validInputs[i], isValidRslt = isValid.call(this, nextPos, input, !1, fromIsValid, !0)); i++) i === resultPos && (returnRslt = isValidRslt), \n                    1 == maskPos && isValidRslt && (returnRslt = {\n                        caretPos: i\n                    });\n                    if (isValidRslt) break;\n                    if (_positioning.resetMaskSet.call(this), prevAltPos = _validationTests.getTest.call(this, decisionPos), \n                    maskset.validPositions = $.extend(!0, {}, validPsClone), maskset.tests = $.extend(!0, {}, tstClone), \n                    !maskset.excludes[decisionPos]) {\n                        returnRslt = alternate.call(this, maskPos, c, strict, fromIsValid, decisionPos - 1, selection);\n                        break;\n                    }\n                    var decisionTaker = (0, _validationTests.getDecisionTaker)(prevAltPos);\n                    if (-1 !== maskset.excludes[decisionPos].indexOf(decisionTaker + \":\" + prevAltPos.alternation)) {\n                        returnRslt = alternate.call(this, maskPos, c, strict, fromIsValid, decisionPos - 1, selection);\n                        break;\n                    }\n                    for (maskset.excludes[decisionPos].push(decisionTaker + \":\" + prevAltPos.alternation), \n                    i = decisionPos; i < _positioning.getLastValidPosition.call(this, void 0, !0) + 1; i++) delete maskset.validPositions[i];\n                }\n            }\n            return returnRslt && !1 === opts.keepStatic || delete maskset.excludes[decisionPos], \n            returnRslt;\n        }\n        function casing(elem, test, pos) {\n            var opts = this.opts, maskset = this.maskset;\n            switch (opts.casing || test.casing) {\n              case \"upper\":\n                elem = elem.toUpperCase();\n                break;\n\n              case \"lower\":\n                elem = elem.toLowerCase();\n                break;\n\n              case \"title\":\n                var posBefore = maskset.validPositions[pos - 1];\n                elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(_keycode.default.SPACE) ? elem.toUpperCase() : elem.toLowerCase();\n                break;\n\n              default:\n                if (\"function\" == typeof opts.casing) {\n                    var args = Array.prototype.slice.call(arguments);\n                    args.push(maskset.validPositions), elem = opts.casing.apply(this, args);\n                }\n            }\n            return elem;\n        }\n        function checkAlternationMatch(altArr1, altArr2, na) {\n            for (var opts = this.opts, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = void 0 !== na ? na.split(\",\") : [], naNdx, i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);\n            for (var alndx = 0; alndx < altArr1.length; alndx++) if (altArrC.includes(altArr1[alndx])) {\n                isMatch = !0;\n                break;\n            }\n            return isMatch;\n        }\n        function handleRemove(input, k, pos, strict, fromIsValid) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts;\n            if ((opts.numericInput || this.isRTL) && (k === _keycode.default.BACKSPACE ? k = _keycode.default.DELETE : k === _keycode.default.DELETE && (k = _keycode.default.BACKSPACE), \n            this.isRTL)) {\n                var pend = pos.end;\n                pos.end = pos.begin, pos.begin = pend;\n            }\n            var lvp = _positioning.getLastValidPosition.call(this, void 0, !0), offset;\n            if (pos.end >= _positioning.getBuffer.call(this).length && lvp >= pos.end && (pos.end = lvp + 1), \n            k === _keycode.default.BACKSPACE ? pos.end - pos.begin < 1 && (pos.begin = _positioning.seekPrevious.call(this, pos.begin)) : k === _keycode.default.DELETE && pos.begin === pos.end && (pos.end = _positioning.isMask.call(this, pos.end, !0, !0) ? pos.end + 1 : _positioning.seekNext.call(this, pos.end) + 1), \n            !1 !== (offset = revalidateMask.call(this, pos))) {\n                if (!0 !== strict && !1 !== opts.keepStatic || null !== opts.regex && -1 !== _validationTests.getTest.call(this, pos.begin).match.def.indexOf(\"|\")) {\n                    var result = alternate.call(this, !0);\n                    if (result) {\n                        var newPos = void 0 !== result.caret ? result.caret : result.pos ? _positioning.seekNext.call(this, result.pos.begin ? result.pos.begin : result.pos) : _positioning.getLastValidPosition.call(this, -1, !0);\n                        (k !== _keycode.default.DELETE || pos.begin > newPos) && pos.begin;\n                    }\n                }\n                !0 !== strict && (maskset.p = k === _keycode.default.DELETE ? pos.begin + offset : pos.begin);\n            }\n        }\n        function isComplete(buffer) {\n            var inputmask = this, opts = this.opts, maskset = this.maskset;\n            if (\"function\" == typeof opts.isComplete) return opts.isComplete(buffer, opts);\n            if (\"*\" !== opts.repeat) {\n                var complete = !1, lrp = _positioning.determineLastRequiredPosition.call(this, !0), aml = _positioning.seekPrevious.call(this, lrp.l);\n                if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n                    complete = !0;\n                    for (var i = 0; i <= aml; i++) {\n                        var test = _validationTests.getTestTemplate.call(this, i).match;\n                        if (!0 !== test.static && void 0 === maskset.validPositions[i] && !0 !== test.optionality && !0 !== test.optionalQuantifier || !0 === test.static && buffer[i] !== _validationTests.getPlaceholder.call(this, i, test)) {\n                            complete = !1;\n                            break;\n                        }\n                    }\n                }\n                return complete;\n            }\n        }\n        function isValid(pos, c, strict, fromIsValid, fromAlternate, validateOnly, fromCheckval) {\n            var inputmask = this, $ = this.dependencyLib, opts = this.opts, el = inputmask.el, maskset = inputmask.maskset;\n            function isSelection(posObj) {\n                return inputmask.isRTL ? 1 < posObj.begin - posObj.end || posObj.begin - posObj.end == 1 : 1 < posObj.end - posObj.begin || posObj.end - posObj.begin == 1;\n            }\n            strict = !0 === strict;\n            var maskPos = pos;\n            function processCommandObject(commandObj) {\n                if (void 0 !== commandObj) {\n                    if (void 0 !== commandObj.remove && (Array.isArray(commandObj.remove) || (commandObj.remove = [ commandObj.remove ]), \n                    commandObj.remove.sort(function(a, b) {\n                        return b.pos - a.pos;\n                    }).forEach(function(lmnt) {\n                        revalidateMask.call(inputmask, {\n                            begin: lmnt,\n                            end: lmnt + 1\n                        });\n                    }), commandObj.remove = void 0), void 0 !== commandObj.insert && (Array.isArray(commandObj.insert) || (commandObj.insert = [ commandObj.insert ]), \n                    commandObj.insert.sort(function(a, b) {\n                        return a.pos - b.pos;\n                    }).forEach(function(lmnt) {\n                        \"\" !== lmnt.c && isValid.call(inputmask, lmnt.pos, lmnt.c, void 0 === lmnt.strict || lmnt.strict, void 0 !== lmnt.fromIsValid ? lmnt.fromIsValid : fromIsValid);\n                    }), commandObj.insert = void 0), commandObj.refreshFromBuffer && commandObj.buffer) {\n                        var refresh = commandObj.refreshFromBuffer;\n                        refreshFromBuffer.call(inputmask, !0 === refresh ? refresh : refresh.start, refresh.end, commandObj.buffer), \n                        commandObj.refreshFromBuffer = void 0;\n                    }\n                    void 0 !== commandObj.rewritePosition && (maskPos = commandObj.rewritePosition, \n                    commandObj = !0);\n                }\n                return commandObj;\n            }\n            function _isValid(position, c, strict) {\n                var rslt = !1;\n                return _validationTests.getTests.call(inputmask, position).every(function(tst, ndx) {\n                    var test = tst.match;\n                    if (_positioning.getBuffer.call(inputmask, !0), rslt = null != test.fn ? test.fn.test(c, maskset, position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && \"\" !== test.def && {\n                        c: _validationTests.getPlaceholder.call(inputmask, position, test, !0) || test.def,\n                        pos: position\n                    }, !1 === rslt) return !0;\n                    var elem = void 0 !== rslt.c ? rslt.c : c, validatedPos = position;\n                    return elem = elem === opts.skipOptionalPartCharacter && !0 === test.static ? _validationTests.getPlaceholder.call(inputmask, position, test, !0) || test.def : elem, \n                    rslt = processCommandObject(rslt), !0 !== rslt && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos), \n                    !0 !== rslt && void 0 === rslt.pos && void 0 === rslt.c || !1 === revalidateMask.call(inputmask, pos, $.extend({}, tst, {\n                        input: casing.call(inputmask, elem, test, validatedPos)\n                    }), fromIsValid, validatedPos) && (rslt = !1), !1;\n                }), rslt;\n            }\n            void 0 !== pos.begin && (maskPos = inputmask.isRTL ? pos.end : pos.begin);\n            var result = !0, positionsClone = $.extend(!0, {}, maskset.validPositions);\n            if (!1 === opts.keepStatic && void 0 !== maskset.excludes[maskPos] && !0 !== fromAlternate && !0 !== fromIsValid) for (var i = maskPos; i < (inputmask.isRTL ? pos.begin : pos.end); i++) void 0 !== maskset.excludes[i] && (maskset.excludes[i] = void 0, \n            delete maskset.tests[i]);\n            if (\"function\" == typeof opts.preValidation && !0 !== fromIsValid && !0 !== validateOnly && (result = opts.preValidation.call(el, _positioning.getBuffer.call(inputmask), maskPos, c, isSelection(pos), opts, maskset, pos, strict || fromAlternate), \n            result = processCommandObject(result)), !0 === result) {\n                if (void 0 === inputmask.maxLength || maskPos < inputmask.maxLength) {\n                    if (result = _isValid(maskPos, c, strict), (!strict || !0 === fromIsValid) && !1 === result && !0 !== validateOnly) {\n                        var currentPosValid = maskset.validPositions[maskPos];\n                        if (!currentPosValid || !0 !== currentPosValid.match.static || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {\n                            if (opts.insertMode || void 0 === maskset.validPositions[_positioning.seekNext.call(inputmask, maskPos)] || pos.end > maskPos) {\n                                var skip = !1;\n                                if (maskset.jitOffset[maskPos] && void 0 === maskset.validPositions[_positioning.seekNext.call(inputmask, maskPos)] && (result = isValid.call(inputmask, maskPos + maskset.jitOffset[maskPos], c, !0), \n                                !1 !== result && (!0 !== fromAlternate && (result.caret = maskPos), skip = !0)), \n                                pos.end > maskPos && (maskset.validPositions[maskPos] = void 0), !skip && !_positioning.isMask.call(inputmask, maskPos, opts.keepStatic && 0 === maskPos)) for (var nPos = maskPos + 1, snPos = _positioning.seekNext.call(inputmask, maskPos, !1, 0 !== maskPos); nPos <= snPos; nPos++) if (result = _isValid(nPos, c, strict), \n                                !1 !== result) {\n                                    result = trackbackPositions.call(inputmask, maskPos, void 0 !== result.pos ? result.pos : nPos) || result, \n                                    maskPos = nPos;\n                                    break;\n                                }\n                            }\n                        } else result = {\n                            caret: _positioning.seekNext.call(inputmask, maskPos)\n                        };\n                    }\n                } else result = !1;\n                !1 !== result || !opts.keepStatic || !isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && 0 !== maskPos || strict || !0 === fromAlternate ? isSelection(pos) && maskset.tests[maskPos] && 1 < maskset.tests[maskPos].length && opts.keepStatic && !strict && !0 !== fromAlternate && (result = alternate.call(inputmask, !0)) : result = alternate.call(inputmask, maskPos, c, strict, fromIsValid, void 0, pos), \n                !0 === result && (result = {\n                    pos: maskPos\n                });\n            }\n            if (\"function\" == typeof opts.postValidation && !0 !== fromIsValid && !0 !== validateOnly) {\n                var postResult = opts.postValidation.call(el, _positioning.getBuffer.call(inputmask, !0), void 0 !== pos.begin ? inputmask.isRTL ? pos.end : pos.begin : pos, c, result, opts, maskset, strict, fromCheckval);\n                void 0 !== postResult && (result = !0 === postResult ? result : postResult);\n            }\n            result && void 0 === result.pos && (result.pos = maskPos), !1 === result || !0 === validateOnly ? (_positioning.resetMaskSet.call(inputmask, !0), \n            maskset.validPositions = $.extend(!0, {}, positionsClone)) : trackbackPositions.call(inputmask, void 0, maskPos, !0);\n            var endResult = processCommandObject(result);\n            return endResult;\n        }\n        function positionCanMatchDefinition(pos, testDefinition, opts) {\n            for (var inputmask = this, maskset = this.maskset, valid = !1, tests = _validationTests.getTests.call(this, pos), tndx = 0; tndx < tests.length; tndx++) {\n                if (tests[tndx].match && (!(tests[tndx].match.nativeDef !== testDefinition.match[opts.shiftPositions ? \"def\" : \"nativeDef\"] || opts.shiftPositions && testDefinition.match.static) || tests[tndx].match.nativeDef === testDefinition.match.nativeDef)) {\n                    valid = !0;\n                    break;\n                }\n                if (tests[tndx].match && tests[tndx].match.def === testDefinition.match.nativeDef) {\n                    valid = void 0;\n                    break;\n                }\n            }\n            return !1 === valid && void 0 !== maskset.jitOffset[pos] && (valid = positionCanMatchDefinition.call(this, pos + maskset.jitOffset[pos], testDefinition, opts)), \n            valid;\n        }\n        function refreshFromBuffer(start, end, buffer) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts, $ = this.dependencyLib, el = this.el, i, p, skipOptionalPartCharacter = opts.skipOptionalPartCharacter, bffr = this.isRTL ? buffer.slice().reverse() : buffer;\n            if (opts.skipOptionalPartCharacter = \"\", !0 === start) _positioning.resetMaskSet.call(this), \n            maskset.tests = {}, start = 0, end = buffer.length, p = _positioning.determineNewCaretPosition.call(this, {\n                begin: 0,\n                end: 0\n            }, !1).begin; else {\n                for (i = start; i < end; i++) delete maskset.validPositions[i];\n                p = start;\n            }\n            var keypress = new $.Event(\"keypress\");\n            for (i = start; i < end; i++) {\n                keypress.which = bffr[i].toString().charCodeAt(0), this.ignorable = !1;\n                var valResult = _eventhandlers.EventHandlers.keypressEvent.call(el, keypress, !0, !1, !1, p);\n                !1 !== valResult && (p = valResult.forwardPosition);\n            }\n            opts.skipOptionalPartCharacter = skipOptionalPartCharacter;\n        }\n        function trackbackPositions(originalPos, newPos, fillOnly) {\n            var inputmask = this, maskset = this.maskset, $ = this.dependencyLib;\n            if (void 0 === originalPos) for (originalPos = newPos - 1; 0 < originalPos && !maskset.validPositions[originalPos]; originalPos--) ;\n            for (var ps = originalPos; ps < newPos; ps++) if (void 0 === maskset.validPositions[ps] && !_positioning.isMask.call(this, ps, !0)) {\n                var vp = 0 == ps ? _validationTests.getTest.call(this, ps) : maskset.validPositions[ps - 1];\n                if (vp) {\n                    var tests = _validationTests.getTests.call(this, ps).slice();\n                    \"\" === tests[tests.length - 1].match.def && tests.pop();\n                    var bestMatch = _validationTests.determineTestTemplate.call(this, ps, tests), np;\n                    if (bestMatch && (!0 !== bestMatch.match.jit || \"master\" === bestMatch.match.newBlockMarker && (np = maskset.validPositions[ps + 1]) && !0 === np.match.optionalQuantifier) && (bestMatch = $.extend({}, bestMatch, {\n                        input: _validationTests.getPlaceholder.call(this, ps, bestMatch.match, !0) || bestMatch.match.def\n                    }), bestMatch.generatedInput = !0, revalidateMask.call(this, ps, bestMatch, !0), \n                    !0 !== fillOnly)) {\n                        var cvpInput = maskset.validPositions[newPos].input;\n                        return maskset.validPositions[newPos] = void 0, isValid.call(this, newPos, cvpInput, !0, !0);\n                    }\n                }\n            }\n        }\n        function revalidateMask(pos, validTest, fromIsValid, validatedPos) {\n            var inputmask = this, maskset = this.maskset, opts = this.opts, $ = this.dependencyLib;\n            function IsEnclosedStatic(pos, valids, selection) {\n                var posMatch = valids[pos];\n                if (void 0 === posMatch || !0 !== posMatch.match.static || !0 === posMatch.match.optionality || void 0 !== valids[0] && void 0 !== valids[0].alternation) return !1;\n                var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && !0 === valids[pos - 1].match.static && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && !0 === valids[pos + 1].match.static && valids[pos + 1] : valids[pos + 1];\n                return prevMatch && nextMatch;\n            }\n            var offset = 0, begin = void 0 !== pos.begin ? pos.begin : pos, end = void 0 !== pos.end ? pos.end : pos;\n            if (pos.begin > pos.end && (begin = pos.end, end = pos.begin), validatedPos = void 0 !== validatedPos ? validatedPos : begin, \n            begin !== end || opts.insertMode && void 0 !== maskset.validPositions[validatedPos] && void 0 === fromIsValid || void 0 === validTest) {\n                var positionsClone = $.extend(!0, {}, maskset.validPositions), lvp = _positioning.getLastValidPosition.call(this, void 0, !0), i;\n                for (maskset.p = begin, i = lvp; begin <= i; i--) delete maskset.validPositions[i], \n                void 0 === validTest && delete maskset.tests[i + 1];\n                var valid = !0, j = validatedPos, posMatch = j, t, canMatch;\n                for (validTest && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest), \n                posMatch++, j++), i = validTest ? end : end - 1; i <= lvp; i++) {\n                    if (void 0 !== (t = positionsClone[i]) && !0 !== t.generatedInput && (end <= i || begin <= i && IsEnclosedStatic(i, positionsClone, {\n                        begin: begin,\n                        end: end\n                    }))) {\n                        for (;\"\" !== _validationTests.getTest.call(this, posMatch).match.def; ) {\n                            if (!1 !== (canMatch = positionCanMatchDefinition.call(this, posMatch, t, opts)) || \"+\" === t.match.def) {\n                                \"+\" === t.match.def && _positioning.getBuffer.call(this, !0);\n                                var result = isValid.call(this, posMatch, t.input, \"+\" !== t.match.def, \"+\" !== t.match.def);\n                                if (valid = !1 !== result, j = (result.pos || posMatch) + 1, !valid && canMatch) break;\n                            } else valid = !1;\n                            if (valid) {\n                                void 0 === validTest && t.match.static && i === pos.begin && offset++;\n                                break;\n                            }\n                            if (!valid && posMatch > maskset.maskLength) break;\n                            posMatch++;\n                        }\n                        \"\" == _validationTests.getTest.call(this, posMatch).match.def && (valid = !1), posMatch = j;\n                    }\n                    if (!valid) break;\n                }\n                if (!valid) return maskset.validPositions = $.extend(!0, {}, positionsClone), _positioning.resetMaskSet.call(this, !0), \n                !1;\n            } else validTest && _validationTests.getTest.call(this, validatedPos).match.cd === validTest.match.cd && (maskset.validPositions[validatedPos] = $.extend(!0, {}, validTest));\n            return _positioning.resetMaskSet.call(this, !0), offset;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.applyInputValue = applyInputValue, exports.clearOptionalTail = clearOptionalTail, \n        exports.checkVal = checkVal, exports.HandleNativePlaceholder = HandleNativePlaceholder, \n        exports.unmaskedvalue = unmaskedvalue, exports.writeBuffer = writeBuffer;\n        var _keycode = _interopRequireDefault(__webpack_require__(0)), _validationTests = __webpack_require__(3), _positioning = __webpack_require__(2), _validation = __webpack_require__(4), _environment = __webpack_require__(7), _eventhandlers = __webpack_require__(6);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function applyInputValue(input, value) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts;\n            input.inputmask.refreshValue = !1, \"function\" == typeof opts.onBeforeMask && (value = opts.onBeforeMask.call(inputmask, value, opts) || value), \n            value = value.toString().split(\"\"), checkVal(input, !0, !1, value), inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n            (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === _positioning.getBufferTemplate.call(inputmask).join(\"\") && -1 === _positioning.getLastValidPosition.call(inputmask) && input.inputmask._valueSet(\"\");\n        }\n        function clearOptionalTail(buffer) {\n            var inputmask = this;\n            buffer.length = 0;\n            for (var template = _validationTests.getMaskTemplate.call(this, !0, 0, !0, void 0, !0), lmnt; void 0 !== (lmnt = template.shift()); ) buffer.push(lmnt);\n            return buffer;\n        }\n        function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n            var inputmask = input ? input.inputmask : this, maskset = inputmask.maskset, opts = inputmask.opts, $ = inputmask.dependencyLib, inputValue = nptvl.slice(), charCodes = \"\", initialNdx = -1, result = void 0, skipOptionalPartCharacter = opts.skipOptionalPartCharacter;\n            function isTemplateMatch(ndx, charCodes) {\n                for (var targetTemplate = _validationTests.getMaskTemplate.call(inputmask, !0, 0).slice(ndx, _positioning.seekNext.call(inputmask, ndx)).join(\"\").replace(/'/g, \"\"), charCodeNdx = targetTemplate.indexOf(charCodes); 0 < charCodeNdx && \" \" === targetTemplate[charCodeNdx - 1]; ) charCodeNdx--;\n                var match = 0 === charCodeNdx && !_positioning.isMask.call(inputmask, ndx) && (_validationTests.getTest.call(inputmask, ndx).match.nativeDef === charCodes.charAt(0) || !0 === _validationTests.getTest.call(inputmask, ndx).match.static && _validationTests.getTest.call(inputmask, ndx).match.nativeDef === \"'\" + charCodes.charAt(0) || \" \" === _validationTests.getTest.call(inputmask, ndx).match.nativeDef && (_validationTests.getTest.call(inputmask, ndx + 1).match.nativeDef === charCodes.charAt(0) || !0 === _validationTests.getTest.call(inputmask, ndx + 1).match.static && _validationTests.getTest.call(inputmask, ndx + 1).match.nativeDef === \"'\" + charCodes.charAt(0)));\n                if (!match && 0 < charCodeNdx && !_positioning.isMask.call(inputmask, ndx, !1, !0)) {\n                    var nextPos = _positioning.seekNext.call(inputmask, ndx);\n                    inputmask.caretPos.begin < nextPos && (inputmask.caretPos = {\n                        begin: nextPos\n                    });\n                }\n                return match;\n            }\n            opts.skipOptionalPartCharacter = \"\", _positioning.resetMaskSet.call(inputmask), \n            maskset.tests = {}, initialNdx = opts.radixPoint ? _positioning.determineNewCaretPosition.call(inputmask, {\n                begin: 0,\n                end: 0\n            }).begin : 0, maskset.p = initialNdx, inputmask.caretPos = {\n                begin: initialNdx\n            };\n            var staticMatches = [], prevCaretPos = inputmask.caretPos;\n            if (inputValue.forEach(function(charCode, ndx) {\n                if (void 0 !== charCode) if (void 0 === maskset.validPositions[ndx] && inputValue[ndx] === _validationTests.getPlaceholder.call(inputmask, ndx) && _positioning.isMask.call(inputmask, ndx, !0) && !1 === _validation.isValid.call(inputmask, ndx, inputValue[ndx], !0, void 0, void 0, !0)) maskset.p++; else {\n                    var keypress = new $.Event(\"_checkval\");\n                    keypress.which = charCode.toString().charCodeAt(0), charCodes += charCode;\n                    var lvp = _positioning.getLastValidPosition.call(inputmask, void 0, !0);\n                    isTemplateMatch(initialNdx, charCodes) ? result = _eventhandlers.EventHandlers.keypressEvent.call(input || inputmask, keypress, !0, !1, strict, lvp + 1) : (result = _eventhandlers.EventHandlers.keypressEvent.call(input || inputmask, keypress, !0, !1, strict, inputmask.caretPos.begin), \n                    result && (initialNdx = inputmask.caretPos.begin + 1, charCodes = \"\")), result ? (void 0 !== result.pos && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static && void 0 === maskset.validPositions[result.pos].alternation && (staticMatches.push(result.pos), \n                    inputmask.isRTL || (result.forwardPosition = result.pos + 1)), writeBuffer.call(inputmask, void 0, _positioning.getBuffer.call(inputmask), result.forwardPosition, keypress, !1), \n                    inputmask.caretPos = {\n                        begin: result.forwardPosition,\n                        end: result.forwardPosition\n                    }, prevCaretPos = inputmask.caretPos) : inputmask.caretPos = prevCaretPos;\n                }\n            }), 0 < staticMatches.length) {\n                var sndx, validPos, nextValid = _positioning.seekNext.call(inputmask, -1, void 0, !1);\n                if (!_validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && staticMatches.length <= nextValid || _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && 0 < staticMatches.length && staticMatches.length !== nextValid && 0 === staticMatches[0]) for (var nextSndx = nextValid; void 0 !== (sndx = staticMatches.shift()); ) {\n                    var keypress = new $.Event(\"_checkval\");\n                    if (validPos = maskset.validPositions[sndx], validPos.generatedInput = !0, keypress.which = validPos.input.charCodeAt(0), \n                    result = _eventhandlers.EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, nextSndx), \n                    result && void 0 !== result.pos && result.pos !== sndx && maskset.validPositions[result.pos] && !0 === maskset.validPositions[result.pos].match.static) staticMatches.push(result.pos); else if (!result) break;\n                    nextSndx++;\n                }\n            }\n            writeOut && writeBuffer.call(inputmask, input, _positioning.getBuffer.call(inputmask), result ? result.forwardPosition : inputmask.caretPos.begin, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && \"input\" === initiatingEvent.type && inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\")), \n            opts.skipOptionalPartCharacter = skipOptionalPartCharacter;\n        }\n        function HandleNativePlaceholder(npt, value) {\n            var inputmask = npt ? npt.inputmask : this;\n            if (_environment.ie) {\n                if (npt.inputmask._valueGet() !== value && (npt.placeholder !== value || \"\" === npt.placeholder)) {\n                    var buffer = _positioning.getBuffer.call(inputmask).slice(), nptValue = npt.inputmask._valueGet();\n                    if (nptValue !== value) {\n                        var lvp = _positioning.getLastValidPosition.call(inputmask);\n                        -1 === lvp && nptValue === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? buffer = [] : -1 !== lvp && clearOptionalTail.call(inputmask, buffer), \n                        writeBuffer(npt, buffer);\n                    }\n                }\n            } else npt.placeholder !== value && (npt.placeholder = value, \"\" === npt.placeholder && npt.removeAttribute(\"placeholder\"));\n        }\n        function unmaskedvalue(input) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts, maskset = inputmask.maskset;\n            if (input) {\n                if (void 0 === input.inputmask) return input.value;\n                input.inputmask && input.inputmask.refreshValue && applyInputValue(input, input.inputmask._valueGet(!0));\n            }\n            var umValue = [], vps = maskset.validPositions;\n            for (var pndx in vps) vps[pndx] && vps[pndx].match && (1 != vps[pndx].match.static || Array.isArray(maskset.metadata) && !0 !== vps[pndx].generatedInput) && umValue.push(vps[pndx].input);\n            var unmaskedValue = 0 === umValue.length ? \"\" : (inputmask.isRTL ? umValue.reverse() : umValue).join(\"\");\n            if (\"function\" == typeof opts.onUnMask) {\n                var bufferValue = (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice().reverse() : _positioning.getBuffer.call(inputmask)).join(\"\");\n                unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);\n            }\n            return unmaskedValue;\n        }\n        function writeBuffer(input, buffer, caretPos, event, triggerEvents) {\n            var inputmask = input ? input.inputmask : this, opts = inputmask.opts, $ = inputmask.dependencyLib;\n            if (event && \"function\" == typeof opts.onBeforeWrite) {\n                var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);\n                if (result) {\n                    if (result.refreshFromBuffer) {\n                        var refresh = result.refreshFromBuffer;\n                        _validation.refreshFromBuffer.call(inputmask, !0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer), \n                        buffer = _positioning.getBuffer.call(inputmask, !0);\n                    }\n                    void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);\n                }\n            }\n            if (void 0 !== input && (input.inputmask._valueSet(buffer.join(\"\")), void 0 === caretPos || void 0 !== event && \"blur\" === event.type || _positioning.caret.call(inputmask, input, caretPos, void 0, void 0, void 0 !== event && \"keydown\" === event.type && (event.keyCode === _keycode.default.DELETE || event.keyCode === _keycode.default.BACKSPACE)), \n            !0 === triggerEvents)) {\n                var $input = $(input), nptVal = input.inputmask._valueGet();\n                input.inputmask.skipInputEvent = !0, $input.trigger(\"input\"), setTimeout(function() {\n                    nptVal === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? $input.trigger(\"cleared\") : !0 === _validation.isComplete.call(inputmask, buffer) && $input.trigger(\"complete\");\n                }, 0);\n            }\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.EventHandlers = void 0;\n        var _positioning = __webpack_require__(2), _keycode = _interopRequireDefault(__webpack_require__(0)), _environment = __webpack_require__(7), _validation = __webpack_require__(4), _inputHandling = __webpack_require__(5), _validationTests = __webpack_require__(3);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var EventHandlers = {\n            keydownEvent: function keydownEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib, maskset = inputmask.maskset, input = this, $input = $(input), k = e.keyCode, pos = _positioning.caret.call(inputmask, input), kdResult = opts.onKeyDown.call(this, e, _positioning.getBuffer.call(inputmask), pos, opts);\n                if (void 0 !== kdResult) return kdResult;\n                if (k === _keycode.default.BACKSPACE || k === _keycode.default.DELETE || _environment.iphone && k === _keycode.default.BACKSPACE_SAFARI || e.ctrlKey && k === _keycode.default.X && !(\"oncut\" in input)) e.preventDefault(), \n                _validation.handleRemove.call(inputmask, input, k, pos), (0, _inputHandling.writeBuffer)(input, _positioning.getBuffer.call(inputmask, !0), maskset.p, e, input.inputmask._valueGet() !== _positioning.getBuffer.call(inputmask).join(\"\")); else if (k === _keycode.default.END || k === _keycode.default.PAGE_DOWN) {\n                    e.preventDefault();\n                    var caretPos = _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask));\n                    _positioning.caret.call(inputmask, input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);\n                } else k === _keycode.default.HOME && !e.shiftKey || k === _keycode.default.PAGE_UP ? (e.preventDefault(), \n                _positioning.caret.call(inputmask, input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === _keycode.default.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? ((0, \n                _inputHandling.checkVal)(input, !0, !1, inputmask.undoValue.split(\"\")), $input.trigger(\"click\")) : !0 === opts.tabThrough && k === _keycode.default.TAB ? !0 === e.shiftKey ? (pos.end = _positioning.seekPrevious.call(inputmask, pos.end, !0), \n                !0 === _validationTests.getTest.call(inputmask, pos.end - 1).match.static && pos.end--, \n                pos.begin = _positioning.seekPrevious.call(inputmask, pos.end, !0), 0 <= pos.begin && 0 < pos.end && (e.preventDefault(), \n                _positioning.caret.call(inputmask, input, pos.begin, pos.end))) : (pos.begin = _positioning.seekNext.call(inputmask, pos.begin, !0), \n                pos.end = _positioning.seekNext.call(inputmask, pos.begin, !0), pos.end < maskset.maskLength && pos.end--, \n                pos.begin <= maskset.maskLength && (e.preventDefault(), _positioning.caret.call(inputmask, input, pos.begin, pos.end))) : e.shiftKey || opts.insertModeVisual && !1 === opts.insertMode && (k === _keycode.default.RIGHT ? setTimeout(function() {\n                    var caretPos = _positioning.caret.call(inputmask, input);\n                    _positioning.caret.call(inputmask, input, caretPos.begin);\n                }, 0) : k === _keycode.default.LEFT && setTimeout(function() {\n                    var caretPos_begin = _positioning.translatePosition.call(inputmask, input.inputmask.caretPos.begin), caretPos_end = _positioning.translatePosition.call(inputmask, input.inputmask.caretPos.end);\n                    inputmask.isRTL ? _positioning.caret.call(inputmask, input, caretPos_begin + (caretPos_begin === maskset.maskLength ? 0 : 1)) : _positioning.caret.call(inputmask, input, caretPos_begin - (0 === caretPos_begin ? 0 : 1));\n                }, 0));\n                inputmask.ignorable = opts.ignorables.includes(k);\n            },\n            keypressEvent: function keypressEvent(e, checkval, writeOut, strict, ndx) {\n                var inputmask = this.inputmask || this, opts = inputmask.opts, $ = inputmask.dependencyLib, maskset = inputmask.maskset, input = inputmask.el, $input = $(input), k = e.which || e.charCode || e.keyCode;\n                if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || inputmask.ignorable)) return k === _keycode.default.ENTER && inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n                setTimeout(function() {\n                    $input.trigger(\"change\");\n                }, 0)), inputmask.skipInputEvent = !0, !0;\n                if (k) {\n                    44 !== k && 46 !== k || 3 !== e.location || \"\" === opts.radixPoint || (k = opts.radixPoint.charCodeAt(0));\n                    var pos = checkval ? {\n                        begin: ndx,\n                        end: ndx\n                    } : _positioning.caret.call(inputmask, input), forwardPosition, c = String.fromCharCode(k);\n                    maskset.writeOutBuffer = !0;\n                    var valResult = _validation.isValid.call(inputmask, pos, c, strict, void 0, void 0, void 0, checkval);\n                    if (!1 !== valResult && (_positioning.resetMaskSet.call(inputmask, !0), forwardPosition = void 0 !== valResult.caret ? valResult.caret : _positioning.seekNext.call(inputmask, valResult.pos.begin ? valResult.pos.begin : valResult.pos), \n                    maskset.p = forwardPosition), forwardPosition = opts.numericInput && void 0 === valResult.caret ? _positioning.seekPrevious.call(inputmask, forwardPosition) : forwardPosition, \n                    !1 !== writeOut && (setTimeout(function() {\n                        opts.onKeyValidation.call(input, k, valResult);\n                    }, 0), maskset.writeOutBuffer && !1 !== valResult)) {\n                        var buffer = _positioning.getBuffer.call(inputmask);\n                        (0, _inputHandling.writeBuffer)(input, buffer, forwardPosition, e, !0 !== checkval);\n                    }\n                    if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition), \n                    valResult;\n                }\n            },\n            keyupEvent: function keyupEvent(e) {\n                var inputmask = this.inputmask;\n                !inputmask.isComposing || e.keyCode !== _keycode.default.KEY_229 && e.keyCode !== _keycode.default.ENTER || inputmask.$el.trigger(\"input\");\n            },\n            pasteEvent: function pasteEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this, inputValue = inputmask._valueGet(!0), caretPos = _positioning.caret.call(inputmask, this), tempValue;\n                inputmask.isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);\n                var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n                if (valueBeforeCaret == (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).slice(0, caretPos.begin).join(\"\") && (valueBeforeCaret = \"\"), \n                valueAfterCaret == (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).slice(caretPos.end).join(\"\") && (valueAfterCaret = \"\"), \n                window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret; else {\n                    if (!e.clipboardData || !e.clipboardData.getData) return !0;\n                    inputValue = valueBeforeCaret + e.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n                }\n                var pasteValue = inputValue;\n                if (\"function\" == typeof opts.onBeforePaste) {\n                    if (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts), !1 === pasteValue) return e.preventDefault();\n                    pasteValue = pasteValue || inputValue;\n                }\n                return (0, _inputHandling.checkVal)(this, !0, !1, pasteValue.toString().split(\"\"), e), \n                e.preventDefault();\n            },\n            inputFallBackEvent: function inputFallBackEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib;\n                function ieMobileHandler(input, inputValue, caretPos) {\n                    if (_environment.iemobile) {\n                        var inputChar = inputValue.replace(_positioning.getBuffer.call(inputmask).join(\"\"), \"\");\n                        if (1 === inputChar.length) {\n                            var iv = inputValue.split(\"\");\n                            iv.splice(caretPos.begin, 0, inputChar), inputValue = iv.join(\"\");\n                        }\n                    }\n                    return inputValue;\n                }\n                function analyseChanges(inputValue, buffer, caretPos) {\n                    for (var frontPart = inputValue.substr(0, caretPos.begin).split(\"\"), backPart = inputValue.substr(caretPos.begin).split(\"\"), frontBufferPart = buffer.substr(0, caretPos.begin).split(\"\"), backBufferPart = buffer.substr(caretPos.begin).split(\"\"), fpl = frontPart.length >= frontBufferPart.length ? frontPart.length : frontBufferPart.length, bpl = backPart.length >= backBufferPart.length ? backPart.length : backBufferPart.length, bl, i, action = \"\", data = [], marker = \"~\", placeholder; frontPart.length < fpl; ) frontPart.push(\"~\");\n                    for (;frontBufferPart.length < fpl; ) frontBufferPart.push(\"~\");\n                    for (;backPart.length < bpl; ) backPart.unshift(\"~\");\n                    for (;backBufferPart.length < bpl; ) backBufferPart.unshift(\"~\");\n                    var newBuffer = frontPart.concat(backPart), oldBuffer = frontBufferPart.concat(backBufferPart);\n                    for (i = 0, bl = newBuffer.length; i < bl; i++) switch (placeholder = _validationTests.getPlaceholder.call(inputmask, _positioning.translatePosition.call(inputmask, i)), \n                    action) {\n                      case \"insertText\":\n                        oldBuffer[i - 1] === newBuffer[i] && caretPos.begin == newBuffer.length - 1 && data.push(newBuffer[i]), \n                        i = bl;\n                        break;\n\n                      case \"insertReplacementText\":\n                        \"~\" === newBuffer[i] ? caretPos.end++ : i = bl;\n                        break;\n\n                      case \"deleteContentBackward\":\n                        \"~\" === newBuffer[i] ? caretPos.end++ : i = bl;\n                        break;\n\n                      default:\n                        newBuffer[i] !== oldBuffer[i] && (\"~\" !== newBuffer[i + 1] && newBuffer[i + 1] !== placeholder && void 0 !== newBuffer[i + 1] || (oldBuffer[i] !== placeholder || \"~\" !== oldBuffer[i + 1]) && \"~\" !== oldBuffer[i] ? \"~\" === oldBuffer[i + 1] && oldBuffer[i] === newBuffer[i + 1] ? (action = \"insertText\", \n                        data.push(newBuffer[i]), caretPos.begin--, caretPos.end--) : newBuffer[i] !== placeholder && \"~\" !== newBuffer[i] && (\"~\" === newBuffer[i + 1] || oldBuffer[i] !== newBuffer[i] && oldBuffer[i + 1] === newBuffer[i + 1]) ? (action = \"insertReplacementText\", \n                        data.push(newBuffer[i]), caretPos.begin--) : \"~\" === newBuffer[i] ? (action = \"deleteContentBackward\", \n                        !_positioning.isMask.call(inputmask, _positioning.translatePosition.call(inputmask, i), !0) && oldBuffer[i] !== opts.radixPoint || caretPos.end++) : i = bl : (action = \"insertText\", \n                        data.push(newBuffer[i]), caretPos.begin--, caretPos.end--));\n                        break;\n                    }\n                    return {\n                        action: action,\n                        data: data,\n                        caret: caretPos\n                    };\n                }\n                var input = this, inputValue = input.inputmask._valueGet(!0), buffer = (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice().reverse() : _positioning.getBuffer.call(inputmask)).join(\"\"), caretPos = _positioning.caret.call(inputmask, input, void 0, void 0, !0);\n                if (buffer !== inputValue) {\n                    inputValue = ieMobileHandler(input, inputValue, caretPos);\n                    var changes = analyseChanges(inputValue, buffer, caretPos);\n                    switch ((input.inputmask.shadowRoot || document).activeElement !== input && input.focus(), \n                    (0, _inputHandling.writeBuffer)(input, _positioning.getBuffer.call(inputmask)), \n                    _positioning.caret.call(inputmask, input, caretPos.begin, caretPos.end, !0), changes.action) {\n                      case \"insertText\":\n                      case \"insertReplacementText\":\n                        changes.data.forEach(function(entry, ndx) {\n                            var keypress = new $.Event(\"keypress\");\n                            keypress.which = entry.charCodeAt(0), inputmask.ignorable = !1, EventHandlers.keypressEvent.call(input, keypress);\n                        }), setTimeout(function() {\n                            inputmask.$el.trigger(\"keyup\");\n                        }, 0);\n                        break;\n\n                      case \"deleteContentBackward\":\n                        var keydown = new $.Event(\"keydown\");\n                        keydown.keyCode = _keycode.default.BACKSPACE, EventHandlers.keydownEvent.call(input, keydown);\n                        break;\n\n                      default:\n                        (0, _inputHandling.applyInputValue)(input, inputValue);\n                        break;\n                    }\n                    e.preventDefault();\n                }\n            },\n            compositionendEvent: function compositionendEvent(e) {\n                var inputmask = this.inputmask;\n                inputmask.isComposing = !1, inputmask.$el.trigger(\"input\");\n            },\n            setValueEvent: function setValueEvent(e, argument_1, argument_2) {\n                var inputmask = this.inputmask, input = this, value = e && e.detail ? e.detail[0] : argument_1;\n                void 0 === value && (value = this.inputmask._valueGet(!0)), (0, _inputHandling.applyInputValue)(this, value), \n                (e.detail && void 0 !== e.detail[1] || void 0 !== argument_2) && _positioning.caret.call(inputmask, this, e.detail ? e.detail[1] : argument_2);\n            },\n            focusEvent: function focusEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this, nptValue = this.inputmask._valueGet();\n                opts.showMaskOnFocus && nptValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (0, \n                _inputHandling.writeBuffer)(this, _positioning.getBuffer.call(inputmask), _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask))), \n                !0 !== opts.positionCaretOnTab || !1 !== inputmask.mouseEnter || _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && -1 !== _positioning.getLastValidPosition.call(inputmask) || EventHandlers.clickEvent.apply(this, [ e, !0 ]), \n                inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\");\n            },\n            invalidEvent: function invalidEvent(e) {\n                this.inputmask.validationEvent = !0;\n            },\n            mouseleaveEvent: function mouseleaveEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this;\n                inputmask.mouseEnter = !1, opts.clearMaskOnLostFocus && (this.inputmask.shadowRoot || document).activeElement !== this && (0, \n                _inputHandling.HandleNativePlaceholder)(this, inputmask.originalPlaceholder);\n            },\n            clickEvent: function clickEvent(e, tabbed) {\n                var inputmask = this.inputmask, input = this;\n                if ((this.inputmask.shadowRoot || document).activeElement === this) {\n                    var newCaretPosition = _positioning.determineNewCaretPosition.call(inputmask, _positioning.caret.call(inputmask, this), tabbed);\n                    void 0 !== newCaretPosition && _positioning.caret.call(inputmask, this, newCaretPosition);\n                }\n            },\n            cutEvent: function cutEvent(e) {\n                var inputmask = this.inputmask, maskset = inputmask.maskset, input = this, pos = _positioning.caret.call(inputmask, this), clipboardData = window.clipboardData || e.clipboardData, clipData = inputmask.isRTL ? _positioning.getBuffer.call(inputmask).slice(pos.end, pos.begin) : _positioning.getBuffer.call(inputmask).slice(pos.begin, pos.end);\n                clipboardData.setData(\"text\", inputmask.isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\")), \n                document.execCommand && document.execCommand(\"copy\"), _validation.handleRemove.call(inputmask, this, _keycode.default.DELETE, pos), \n                (0, _inputHandling.writeBuffer)(this, _positioning.getBuffer.call(inputmask), maskset.p, e, inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\"));\n            },\n            blurEvent: function blurEvent(e) {\n                var inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib, $input = $(this), input = this;\n                if (this.inputmask) {\n                    (0, _inputHandling.HandleNativePlaceholder)(this, inputmask.originalPlaceholder);\n                    var nptValue = this.inputmask._valueGet(), buffer = _positioning.getBuffer.call(inputmask).slice();\n                    \"\" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === _positioning.getLastValidPosition.call(inputmask) && nptValue === _positioning.getBufferTemplate.call(inputmask).join(\"\") ? buffer = [] : _inputHandling.clearOptionalTail.call(inputmask, buffer)), \n                    !1 === _validation.isComplete.call(inputmask, buffer) && (setTimeout(function() {\n                        $input.trigger(\"incomplete\");\n                    }, 0), opts.clearIncomplete && (_positioning.resetMaskSet.call(inputmask), buffer = opts.clearMaskOnLostFocus ? [] : _positioning.getBufferTemplate.call(inputmask).slice())), \n                    (0, _inputHandling.writeBuffer)(this, buffer, void 0, e)), inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && (inputmask.undoValue = _positioning.getBuffer.call(inputmask).join(\"\"), \n                    $input.trigger(\"change\"));\n                }\n            },\n            mouseenterEvent: function mouseenterEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts, input = this;\n                inputmask.mouseEnter = !0, (this.inputmask.shadowRoot || document).activeElement !== this && (null == inputmask.originalPlaceholder && this.placeholder !== inputmask.originalPlaceholder && (inputmask.originalPlaceholder = this.placeholder), \n                opts.showMaskOnHover && (0, _inputHandling.HandleNativePlaceholder)(this, (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).join(\"\")));\n            },\n            submitEvent: function submitEvent() {\n                var inputmask = this.inputmask, opts = inputmask.opts;\n                inputmask.undoValue !== _positioning.getBuffer.call(inputmask).join(\"\") && inputmask.$el.trigger(\"change\"), \n                opts.clearMaskOnLostFocus && -1 === _positioning.getLastValidPosition.call(inputmask) && inputmask._valueGet && inputmask._valueGet() === _positioning.getBufferTemplate.call(inputmask).join(\"\") && inputmask._valueSet(\"\"), \n                opts.clearIncomplete && !1 === _validation.isComplete.call(inputmask, _positioning.getBuffer.call(inputmask)) && inputmask._valueSet(\"\"), \n                opts.removeMaskOnSubmit && (inputmask._valueSet(inputmask.unmaskedvalue(), !0), \n                setTimeout(function() {\n                    (0, _inputHandling.writeBuffer)(inputmask.el, _positioning.getBuffer.call(inputmask));\n                }, 0));\n            },\n            resetEvent: function resetEvent() {\n                var inputmask = this.inputmask;\n                inputmask.refreshValue = !0, setTimeout(function() {\n                    (0, _inputHandling.applyInputValue)(inputmask.el, inputmask._valueGet(!0));\n                }, 0);\n            }\n        };\n        exports.EventHandlers = EventHandlers;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.iphone = exports.iemobile = exports.mobile = exports.ie = exports.ua = void 0;\n        var ua = window.navigator && window.navigator.userAgent || \"\", ie = 0 < ua.indexOf(\"MSIE \") || 0 < ua.indexOf(\"Trident/\"), mobile = \"ontouchstart\" in window, iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;\n        exports.iphone = iphone, exports.iemobile = iemobile, exports.mobile = mobile, exports.ie = ie, \n        exports.ua = ua;\n    }, function(module, exports) {\n        module.exports = __WEBPACK_EXTERNAL_MODULE__8__;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === _typeof(\"test\".__proto__) ? function(object) {\n            return object.__proto__;\n        } : function(object) {\n            return object.constructor.prototype;\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.mask = mask, __webpack_require__(9);\n        var _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _inputHandling = __webpack_require__(5), _eventruler = __webpack_require__(11), _environment = __webpack_require__(7), _validation = __webpack_require__(4), _eventhandlers = __webpack_require__(6);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function mask() {\n            var inputmask = this, opts = this.opts, el = this.el, $ = this.dependencyLib;\n            function isElementTypeSupported(input, opts) {\n                function patchValueProperty(npt) {\n                    var valueGet, valueSet;\n                    function patchValhook(type) {\n                        if ($.valHooks && (void 0 === $.valHooks[type] || !0 !== $.valHooks[type].inputmaskpatch)) {\n                            var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n                                return elem.value;\n                            }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n                                return elem.value = value, elem;\n                            };\n                            $.valHooks[type] = {\n                                get: function get(elem) {\n                                    if (elem.inputmask) {\n                                        if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();\n                                        var result = valhookGet(elem);\n                                        return -1 !== _positioning.getLastValidPosition.call(inputmask, void 0, void 0, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : \"\";\n                                    }\n                                    return valhookGet(elem);\n                                },\n                                set: function set(elem, value) {\n                                    var result = valhookSet(elem, value);\n                                    return elem.inputmask && (0, _inputHandling.applyInputValue)(elem, value), result;\n                                },\n                                inputmaskpatch: !0\n                            };\n                        }\n                    }\n                    function getter() {\n                        return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== _positioning.getLastValidPosition.call(inputmask) || !0 !== opts.nullable ? (this.inputmask.shadowRoot || document.activeElement) === this && opts.clearMaskOnLostFocus ? (inputmask.isRTL ? _inputHandling.clearOptionalTail.call(inputmask, _positioning.getBuffer.call(inputmask).slice()).reverse() : _inputHandling.clearOptionalTail.call(inputmask, _positioning.getBuffer.call(inputmask).slice())).join(\"\") : valueGet.call(this) : \"\" : valueGet.call(this);\n                    }\n                    function setter(value) {\n                        valueSet.call(this, value), this.inputmask && (0, _inputHandling.applyInputValue)(this, value);\n                    }\n                    function installNativeValueSetFallback(npt) {\n                        _eventruler.EventRuler.on(npt, \"mouseenter\", function() {\n                            var input = this, value = this.inputmask._valueGet(!0);\n                            value !== (inputmask.isRTL ? _positioning.getBuffer.call(inputmask).reverse() : _positioning.getBuffer.call(inputmask)).join(\"\") && (0, \n                            _inputHandling.applyInputValue)(this, value);\n                        });\n                    }\n                    if (!npt.inputmask.__valueGet) {\n                        if (!0 !== opts.noValuePatching) {\n                            if (Object.getOwnPropertyDescriptor) {\n                                var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : void 0;\n                                valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, \n                                valueSet = valueProperty.set, Object.defineProperty(npt, \"value\", {\n                                    get: getter,\n                                    set: setter,\n                                    configurable: !0\n                                })) : \"input\" !== npt.tagName.toLowerCase() && (valueGet = function valueGet() {\n                                    return this.textContent;\n                                }, valueSet = function valueSet(value) {\n                                    this.textContent = value;\n                                }, Object.defineProperty(npt, \"value\", {\n                                    get: getter,\n                                    set: setter,\n                                    configurable: !0\n                                }));\n                            } else document.__lookupGetter__ && npt.__lookupGetter__(\"value\") && (valueGet = npt.__lookupGetter__(\"value\"), \n                            valueSet = npt.__lookupSetter__(\"value\"), npt.__defineGetter__(\"value\", getter), \n                            npt.__defineSetter__(\"value\", setter));\n                            npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;\n                        }\n                        npt.inputmask._valueGet = function(overruleRTL) {\n                            return inputmask.isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n                        }, npt.inputmask._valueSet = function(value, overruleRTL) {\n                            valueSet.call(this.el, null == value ? \"\" : !0 !== overruleRTL && inputmask.isRTL ? value.split(\"\").reverse().join(\"\") : value);\n                        }, void 0 === valueGet && (valueGet = function valueGet() {\n                            return this.value;\n                        }, valueSet = function valueSet(value) {\n                            this.value = value;\n                        }, patchValhook(npt.type), installNativeValueSetFallback(npt));\n                    }\n                }\n                \"textarea\" !== input.tagName.toLowerCase() && opts.ignorables.push(_keycode.default.ENTER);\n                var elementType = input.getAttribute(\"type\"), isSupported = \"input\" === input.tagName.toLowerCase() && opts.supportsInputType.includes(elementType) || input.isContentEditable || \"textarea\" === input.tagName.toLowerCase();\n                if (!isSupported) if (\"input\" === input.tagName.toLowerCase()) {\n                    var el = document.createElement(\"input\");\n                    el.setAttribute(\"type\", elementType), isSupported = \"text\" === el.type, el = null;\n                } else isSupported = \"partial\";\n                return !1 !== isSupported ? patchValueProperty(input) : input.inputmask = void 0, \n                isSupported;\n            }\n            _eventruler.EventRuler.off(el);\n            var isSupported = isElementTypeSupported(el, opts);\n            if (!1 !== isSupported) {\n                inputmask.originalPlaceholder = el.placeholder, inputmask.maxLength = void 0 !== el ? el.maxLength : void 0, \n                -1 === inputmask.maxLength && (inputmask.maxLength = void 0), \"inputMode\" in el && null === el.getAttribute(\"inputmode\") && (el.inputMode = opts.inputmode, \n                el.setAttribute(\"inputmode\", opts.inputmode)), !0 === isSupported && (opts.showMaskOnFocus = opts.showMaskOnFocus && -1 === [ \"cc-number\", \"cc-exp\" ].indexOf(el.autocomplete), \n                _environment.iphone && (opts.insertModeVisual = !1), _eventruler.EventRuler.on(el, \"submit\", _eventhandlers.EventHandlers.submitEvent), \n                _eventruler.EventRuler.on(el, \"reset\", _eventhandlers.EventHandlers.resetEvent), \n                _eventruler.EventRuler.on(el, \"blur\", _eventhandlers.EventHandlers.blurEvent), _eventruler.EventRuler.on(el, \"focus\", _eventhandlers.EventHandlers.focusEvent), \n                _eventruler.EventRuler.on(el, \"invalid\", _eventhandlers.EventHandlers.invalidEvent), \n                _eventruler.EventRuler.on(el, \"click\", _eventhandlers.EventHandlers.clickEvent), \n                _eventruler.EventRuler.on(el, \"mouseleave\", _eventhandlers.EventHandlers.mouseleaveEvent), \n                _eventruler.EventRuler.on(el, \"mouseenter\", _eventhandlers.EventHandlers.mouseenterEvent), \n                _eventruler.EventRuler.on(el, \"paste\", _eventhandlers.EventHandlers.pasteEvent), \n                _eventruler.EventRuler.on(el, \"cut\", _eventhandlers.EventHandlers.cutEvent), _eventruler.EventRuler.on(el, \"complete\", opts.oncomplete), \n                _eventruler.EventRuler.on(el, \"incomplete\", opts.onincomplete), _eventruler.EventRuler.on(el, \"cleared\", opts.oncleared), \n                !0 !== opts.inputEventOnly && (_eventruler.EventRuler.on(el, \"keydown\", _eventhandlers.EventHandlers.keydownEvent), \n                _eventruler.EventRuler.on(el, \"keypress\", _eventhandlers.EventHandlers.keypressEvent), \n                _eventruler.EventRuler.on(el, \"keyup\", _eventhandlers.EventHandlers.keyupEvent)), \n                (_environment.mobile || opts.inputEventOnly) && el.removeAttribute(\"maxLength\"), \n                _eventruler.EventRuler.on(el, \"input\", _eventhandlers.EventHandlers.inputFallBackEvent), \n                _eventruler.EventRuler.on(el, \"compositionend\", _eventhandlers.EventHandlers.compositionendEvent)), \n                _eventruler.EventRuler.on(el, \"setvalue\", _eventhandlers.EventHandlers.setValueEvent), \n                inputmask.undoValue = _positioning.getBufferTemplate.call(inputmask).join(\"\");\n                var activeElement = (el.inputmask.shadowRoot || document).activeElement;\n                if (\"\" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || activeElement === el) {\n                    (0, _inputHandling.applyInputValue)(el, el.inputmask._valueGet(!0), opts);\n                    var buffer = _positioning.getBuffer.call(inputmask).slice();\n                    !1 === _validation.isComplete.call(inputmask, buffer) && opts.clearIncomplete && _positioning.resetMaskSet.call(inputmask), \n                    opts.clearMaskOnLostFocus && activeElement !== el && (-1 === _positioning.getLastValidPosition.call(inputmask) ? buffer = [] : _inputHandling.clearOptionalTail.call(inputmask, buffer)), \n                    (!1 === opts.clearMaskOnLostFocus || opts.showMaskOnFocus && activeElement === el || \"\" !== el.inputmask._valueGet(!0)) && (0, \n                    _inputHandling.writeBuffer)(el, buffer), activeElement === el && _positioning.caret.call(inputmask, el, _positioning.seekNext.call(inputmask, _positioning.getLastValidPosition.call(inputmask)));\n                }\n            }\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.EventRuler = void 0;\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _positioning = __webpack_require__(2), _inputHandling = __webpack_require__(5);\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var EventRuler = {\n            on: function on(input, eventName, eventHandler) {\n                var $ = input.inputmask.dependencyLib, ev = function ev(e) {\n                    e.originalEvent && (e = e.originalEvent || e, arguments[0] = e);\n                    var that = this, args, inputmask = that.inputmask, opts = inputmask ? inputmask.opts : void 0, $ = inputmask.dependencyLib;\n                    if (void 0 === inputmask && \"FORM\" !== this.nodeName) {\n                        var imOpts = $.data(that, \"_inputmask_opts\");\n                        $(that).off(), imOpts && new _inputmask.default(imOpts).mask(that);\n                    } else {\n                        if (\"setvalue\" === e.type || \"FORM\" === this.nodeName || !(that.disabled || that.readOnly && !(\"keydown\" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === _keycode.default.TAB))) {\n                            switch (e.type) {\n                              case \"input\":\n                                if (!0 === inputmask.skipInputEvent || e.inputType && \"insertCompositionText\" === e.inputType) return inputmask.skipInputEvent = !1, \n                                e.preventDefault();\n                                break;\n\n                              case \"keydown\":\n                                inputmask.skipKeyPressEvent = !1, inputmask.skipInputEvent = inputmask.isComposing = e.keyCode === _keycode.default.KEY_229;\n                                break;\n\n                              case \"keyup\":\n                              case \"compositionend\":\n                                inputmask.isComposing && (inputmask.skipInputEvent = !1);\n                                break;\n\n                              case \"keypress\":\n                                if (!0 === inputmask.skipKeyPressEvent) return e.preventDefault();\n                                inputmask.skipKeyPressEvent = !0;\n                                break;\n\n                              case \"click\":\n                              case \"focus\":\n                                return inputmask.validationEvent ? (inputmask.validationEvent = !1, input.blur(), \n                                (0, _inputHandling.HandleNativePlaceholder)(input, (inputmask.isRTL ? _positioning.getBufferTemplate.call(inputmask).slice().reverse() : _positioning.getBufferTemplate.call(inputmask)).join(\"\")), \n                                setTimeout(function() {\n                                    input.focus();\n                                }, 3e3)) : (args = arguments, setTimeout(function() {\n                                    input.inputmask && eventHandler.apply(that, args);\n                                }, 0)), !1;\n                            }\n                            var returnVal = eventHandler.apply(that, arguments);\n                            return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;\n                        }\n                        e.preventDefault();\n                    }\n                };\n                input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), \n                [ \"submit\", \"reset\" ].includes(eventName) ? null !== input.form && $(input.form).on(eventName, ev.bind(input)) : $(input).on(eventName, ev);\n            },\n            off: function off(input, event) {\n                if (input.inputmask && input.inputmask.events) {\n                    var $ = input.inputmask.dependencyLib, events = input.inputmask.events;\n                    for (var eventName in event && (events = [], events[event] = input.inputmask.events[event]), \n                    events) {\n                        for (var evArr = events[eventName]; 0 < evArr.length; ) {\n                            var ev = evArr.pop();\n                            [ \"submit\", \"reset\" ].includes(eventName) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);\n                        }\n                        delete input.inputmask.events[eventName];\n                    }\n                }\n            }\n        };\n        exports.EventRuler = EventRuler;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _jquery = _interopRequireDefault(__webpack_require__(8));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        if (void 0 === _jquery.default) throw \"jQuery not loaded!\";\n        var _default = _jquery.default;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = \"undefined\" != typeof window ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = _default;\n        var escapeRegexRegex = new RegExp(\"(\\\\\" + [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ].join(\"|\\\\\") + \")\", \"gim\");\n        function _default(str) {\n            return str.replace(escapeRegexRegex, \"\\\\$1\");\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0, __webpack_require__(16), __webpack_require__(20), \n        __webpack_require__(21), __webpack_require__(22);\n        var _inputmask2 = _interopRequireDefault(__webpack_require__(1));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var _default = _inputmask2.default;\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        _inputmask.default.extendDefinitions({\n            A: {\n                validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                casing: \"upper\"\n            },\n            \"&\": {\n                validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                casing: \"upper\"\n            },\n            \"#\": {\n                validator: \"[0-9A-Fa-f]\",\n                casing: \"upper\"\n            }\n        });\n        var ipValidatorRegex = new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\");\n        function ipValidator(chrs, maskset, pos, strict, opts) {\n            return chrs = -1 < pos - 1 && \".\" !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, \n            -1 < pos - 2 && \".\" !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : \"0\" + chrs) : \"00\" + chrs, \n            ipValidatorRegex.test(chrs);\n        }\n        _inputmask.default.extendAliases({\n            cssunit: {\n                regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n            },\n            url: {\n                regex: \"(https?|ftp)://.*\",\n                autoUnmask: !1,\n                keepStatic: !1,\n                tabThrough: !0\n            },\n            ip: {\n                mask: \"i[i[i]].j[j[j]].k[k[k]].l[l[l]]\",\n                definitions: {\n                    i: {\n                        validator: ipValidator\n                    },\n                    j: {\n                        validator: ipValidator\n                    },\n                    k: {\n                        validator: ipValidator\n                    },\n                    l: {\n                        validator: ipValidator\n                    }\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return maskedValue;\n                },\n                inputmode: \"numeric\"\n            },\n            email: {\n                mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\n                greedy: !1,\n                casing: \"lower\",\n                onBeforePaste: function onBeforePaste(pastedValue, opts) {\n                    return pastedValue = pastedValue.toLowerCase(), pastedValue.replace(\"mailto:\", \"\");\n                },\n                definitions: {\n                    \"*\": {\n                        validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n                    },\n                    \"-\": {\n                        validator: \"[0-9A-Za-z-]\"\n                    }\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return maskedValue;\n                },\n                inputmode: \"email\"\n            },\n            mac: {\n                mask: \"##:##:##:##:##:##\"\n            },\n            vin: {\n                mask: \"V{13}9{4}\",\n                definitions: {\n                    V: {\n                        validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n                        casing: \"upper\"\n                    }\n                },\n                clearIncomplete: !0,\n                autoUnmask: !0\n            },\n            ssn: {\n                mask: \"999-99-9999\",\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {\n                    return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(buffer.join(\"\"));\n                }\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.generateMaskSet = generateMaskSet, exports.analyseMask = analyseMask;\n        var _inputmask = _interopRequireDefault(__webpack_require__(12));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        function generateMaskSet(opts, nocache) {\n            var ms;\n            function generateMask(mask, metadata, opts) {\n                var regexMask = !1, masksetDefinition, maskdefKey;\n                if (null !== mask && \"\" !== mask || (regexMask = null !== opts.regex, mask = regexMask ? (mask = opts.regex, \n                mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\")) : (regexMask = !0, \".*\")), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = \"\"), \n                0 < opts.repeat || \"*\" === opts.repeat || \"+\" === opts.repeat) {\n                    var repeatStart = \"*\" === opts.repeat ? 0 : \"+\" === opts.repeat ? 1 : opts.repeat;\n                    mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + \",\" + opts.repeat + opts.quantifiermarker[1];\n                }\n                return maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask, \n                !1 !== opts.keepStatic && (maskdefKey = \"ks_\" + maskdefKey), void 0 === Inputmask.prototype.masksCache[maskdefKey] || !0 === nocache ? (masksetDefinition = {\n                    mask: mask,\n                    maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n                    validPositions: {},\n                    _buffer: void 0,\n                    buffer: void 0,\n                    tests: {},\n                    excludes: {},\n                    metadata: metadata,\n                    maskLength: void 0,\n                    jitOffset: {}\n                }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition, \n                masksetDefinition = _inputmask.default.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = _inputmask.default.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]), \n                masksetDefinition;\n            }\n            if (\"function\" == typeof opts.mask && (opts.mask = opts.mask(opts)), Array.isArray(opts.mask)) {\n                if (1 < opts.mask.length) {\n                    null === opts.keepStatic && (opts.keepStatic = !0);\n                    var altMask = opts.groupmarker[0];\n                    return (opts.isRTL ? opts.mask.reverse() : opts.mask).forEach(function(msk) {\n                        1 < altMask.length && (altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]), \n                        void 0 !== msk.mask && \"function\" != typeof msk.mask ? altMask += msk.mask : altMask += msk;\n                    }), altMask += opts.groupmarker[1], generateMask(altMask, opts.mask, opts);\n                }\n                opts.mask = opts.mask.pop();\n            }\n            return null === opts.keepStatic && (opts.keepStatic = !1), ms = opts.mask && void 0 !== opts.mask.mask && \"function\" != typeof opts.mask.mask ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts), \n            ms;\n        }\n        function analyseMask(mask, regexMask, opts) {\n            var tokenizer = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = !1, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, closeRegexGroup = !1;\n            function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n                this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1, \n                this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, \n                this.quantifier = {\n                    min: 1,\n                    max: 1\n                };\n            }\n            function insertTestDefinition(mtoken, element, position) {\n                position = void 0 !== position ? position : mtoken.matches.length;\n                var prevMatch = mtoken.matches[position - 1];\n                if (regexMask) 0 === element.indexOf(\"[\") || escaped && /\\\\d|\\\\s|\\\\w]/i.test(element) || \".\" === element ? mtoken.matches.splice(position++, 0, {\n                    fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n                    static: !1,\n                    optionality: !1,\n                    newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== element,\n                    casing: null,\n                    def: element,\n                    placeholder: void 0,\n                    nativeDef: element\n                }) : (escaped && (element = element[element.length - 1]), element.split(\"\").forEach(function(lmnt, ndx) {\n                    prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {\n                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || lmnt) ? new RegExp(\"[\" + (opts.staticDefinitionSymbol || lmnt) + \"]\", opts.casing ? \"i\" : \"\") : null,\n                        static: !0,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== lmnt && !0 !== prevMatch.static,\n                        casing: null,\n                        def: opts.staticDefinitionSymbol || lmnt,\n                        placeholder: void 0 !== opts.staticDefinitionSymbol ? lmnt : void 0,\n                        nativeDef: (escaped ? \"'\" : \"\") + lmnt\n                    });\n                })), escaped = !1; else {\n                    var maskdef = opts.definitions && opts.definitions[element] || opts.usePrototypeDefinitions && Inputmask.prototype.definitions[element];\n                    maskdef && !escaped ? mtoken.matches.splice(position++, 0, {\n                        fn: maskdef.validator ? \"string\" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n                            this.test = maskdef.validator;\n                        }() : new RegExp(\".\"),\n                        static: maskdef.static || !1,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== (maskdef.definitionSymbol || element),\n                        casing: maskdef.casing,\n                        def: maskdef.definitionSymbol || element,\n                        placeholder: maskdef.placeholder,\n                        nativeDef: element,\n                        generated: maskdef.generated\n                    }) : (mtoken.matches.splice(position++, 0, {\n                        fn: /[a-z]/i.test(opts.staticDefinitionSymbol || element) ? new RegExp(\"[\" + (opts.staticDefinitionSymbol || element) + \"]\", opts.casing ? \"i\" : \"\") : null,\n                        static: !0,\n                        optionality: !1,\n                        newBlockMarker: void 0 === prevMatch ? \"master\" : prevMatch.def !== element && !0 !== prevMatch.static,\n                        casing: null,\n                        def: opts.staticDefinitionSymbol || element,\n                        placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0,\n                        nativeDef: (escaped ? \"'\" : \"\") + element\n                    }), escaped = !1);\n                }\n            }\n            function verifyGroupMarker(maskToken) {\n                maskToken && maskToken.matches && maskToken.matches.forEach(function(token, ndx) {\n                    var nextToken = maskToken.matches[ndx + 1];\n                    (void 0 === nextToken || void 0 === nextToken.matches || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1, \n                    regexMask || (insertTestDefinition(token, opts.groupmarker[0], 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker[1]))), \n                    verifyGroupMarker(token);\n                });\n            }\n            function defaultCase() {\n                if (0 < openenings.length) {\n                    if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m), \n                    currentOpeningToken.isAlternator) {\n                        alternator = openenings.pop();\n                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup && (alternator.matches[mndx].isGroup = !1);\n                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1], \n                        currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n                    }\n                } else insertTestDefinition(currentToken, m);\n            }\n            function reverseTokens(maskToken) {\n                function reverseStatic(st) {\n                    return st === opts.optionalmarker[0] ? st = opts.optionalmarker[1] : st === opts.optionalmarker[1] ? st = opts.optionalmarker[0] : st === opts.groupmarker[0] ? st = opts.groupmarker[1] : st === opts.groupmarker[1] && (st = opts.groupmarker[0]), \n                    st;\n                }\n                for (var match in maskToken.matches = maskToken.matches.reverse(), maskToken.matches) if (Object.prototype.hasOwnProperty.call(maskToken.matches, match)) {\n                    var intMatch = parseInt(match);\n                    if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n                        var qt = maskToken.matches[match];\n                        maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);\n                    }\n                    void 0 !== maskToken.matches[match].matches ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\n                }\n                return maskToken;\n            }\n            function groupify(matches) {\n                var groupToken = new MaskToken(!0);\n                return groupToken.openGroup = !1, groupToken.matches = matches, groupToken;\n            }\n            function closeGroup() {\n                if (openingToken = openenings.pop(), openingToken.openGroup = !1, void 0 !== openingToken) if (0 < openenings.length) {\n                    if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), \n                    currentOpeningToken.isAlternator) {\n                        alternator = openenings.pop();\n                        for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1, \n                        alternator.matches[mndx].alternatorGroup = !1;\n                        0 < openenings.length ? (currentOpeningToken = openenings[openenings.length - 1], \n                        currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\n                    }\n                } else currentToken.matches.push(openingToken); else defaultCase();\n            }\n            function groupQuantifier(matches) {\n                var lastMatch = matches.pop();\n                return lastMatch.isQuantifier && (lastMatch = groupify([ matches.pop(), lastMatch ])), \n                lastMatch;\n            }\n            for (regexMask && (opts.optionalmarker[0] = void 0, opts.optionalmarker[1] = void 0); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {\n                if (m = match[0], regexMask) switch (m.charAt(0)) {\n                  case \"?\":\n                    m = \"{0,1}\";\n                    break;\n\n                  case \"+\":\n                  case \"*\":\n                    m = \"{\" + m + \"}\";\n                    break;\n\n                  case \"|\":\n                    if (0 === openenings.length) {\n                        var altRegexGroup = groupify(currentToken.matches);\n                        altRegexGroup.openGroup = !0, openenings.push(altRegexGroup), currentToken.matches = [], \n                        closeRegexGroup = !0;\n                    }\n                    break;\n                }\n                if (escaped) defaultCase(); else switch (m.charAt(0)) {\n                  case \"$\":\n                  case \"^\":\n                    regexMask || defaultCase();\n                    break;\n\n                  case \"(?=\":\n                    break;\n\n                  case \"(?!\":\n                    break;\n\n                  case \"(?<=\":\n                    break;\n\n                  case \"(?<!\":\n                    break;\n\n                  case opts.escapeChar:\n                    escaped = !0, regexMask && defaultCase();\n                    break;\n\n                  case opts.optionalmarker[1]:\n                  case opts.groupmarker[1]:\n                    closeGroup();\n                    break;\n\n                  case opts.optionalmarker[0]:\n                    openenings.push(new MaskToken(!1, !0));\n                    break;\n\n                  case opts.groupmarker[0]:\n                    openenings.push(new MaskToken(!0));\n                    break;\n\n                  case opts.quantifiermarker[0]:\n                    var quantifier = new MaskToken(!1, !1, !0);\n                    m = m.replace(/[{}]/g, \"\");\n                    var mqj = m.split(\"|\"), mq = mqj[0].split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n                    \"*\" !== mq0 && \"+\" !== mq0 || (mq0 = \"*\" === mq1 ? 0 : 1), quantifier.quantifier = {\n                        min: mq0,\n                        max: mq1,\n                        jit: mqj[1]\n                    };\n                    var matches = 0 < openenings.length ? openenings[openenings.length - 1].matches : currentToken.matches;\n                    if (match = matches.pop(), match.isAlternator) {\n                        matches.push(match), matches = match.matches;\n                        var groupToken = new MaskToken(!0), tmpMatch = matches.pop();\n                        matches.push(groupToken), matches = groupToken.matches, match = tmpMatch;\n                    }\n                    match.isGroup || (match = groupify([ match ])), matches.push(match), matches.push(quantifier);\n                    break;\n\n                  case opts.alternatormarker:\n                    if (0 < openenings.length) {\n                        currentOpeningToken = openenings[openenings.length - 1];\n                        var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n                        lastMatch = currentOpeningToken.openGroup && (void 0 === subToken.matches || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : groupQuantifier(currentOpeningToken.matches);\n                    } else lastMatch = groupQuantifier(currentToken.matches);\n                    if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(), \n                    lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch), \n                    openenings.push(alternator), lastMatch.openGroup) {\n                        lastMatch.openGroup = !1;\n                        var alternatorGroup = new MaskToken(!0);\n                        alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);\n                    }\n                    break;\n\n                  default:\n                    defaultCase();\n                }\n            }\n            for (closeRegexGroup && closeGroup(); 0 < openenings.length; ) openingToken = openenings.pop(), \n            currentToken.matches.push(openingToken);\n            return 0 < currentToken.matches.length && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)), \n            (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = {\n            9: {\n                validator: \"[0-9\\uff10-\\uff19]\",\n                definitionSymbol: \"*\"\n            },\n            a: {\n                validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n                definitionSymbol: \"*\"\n            },\n            \"*\": {\n                validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n            }\n        };\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _default = {\n            _maxTestPos: 500,\n            placeholder: \"_\",\n            optionalmarker: [ \"[\", \"]\" ],\n            quantifiermarker: [ \"{\", \"}\" ],\n            groupmarker: [ \"(\", \")\" ],\n            alternatormarker: \"|\",\n            escapeChar: \"\\\\\",\n            mask: null,\n            regex: null,\n            oncomplete: function oncomplete() {},\n            onincomplete: function onincomplete() {},\n            oncleared: function oncleared() {},\n            repeat: 0,\n            greedy: !1,\n            autoUnmask: !1,\n            removeMaskOnSubmit: !1,\n            clearMaskOnLostFocus: !0,\n            insertMode: !0,\n            insertModeVisual: !0,\n            clearIncomplete: !1,\n            alias: null,\n            onKeyDown: function onKeyDown() {},\n            onBeforeMask: null,\n            onBeforePaste: function onBeforePaste(pastedValue, opts) {\n                return \"function\" == typeof opts.onBeforeMask ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;\n            },\n            onBeforeWrite: null,\n            onUnMask: null,\n            showMaskOnFocus: !0,\n            showMaskOnHover: !0,\n            onKeyValidation: function onKeyValidation() {},\n            skipOptionalPartCharacter: \" \",\n            numericInput: !1,\n            rightAlign: !1,\n            undoOnEscape: !0,\n            radixPoint: \"\",\n            _radixDance: !1,\n            groupSeparator: \"\",\n            keepStatic: null,\n            positionCaretOnTab: !0,\n            tabThrough: !1,\n            supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n            ignorables: [ 8, 9, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n            isComplete: null,\n            preValidation: null,\n            postValidation: null,\n            staticDefinitionSymbol: void 0,\n            jitMasking: !1,\n            nullable: !0,\n            inputEventOnly: !1,\n            noValuePatching: !1,\n            positionCaretOnClick: \"lvp\",\n            casing: null,\n            inputmode: \"text\",\n            importDataAttributes: !0,\n            shiftPositions: !0,\n            usePrototypeDefinitions: !0\n        };\n        exports.default = _default;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _escapeRegex = _interopRequireDefault(__webpack_require__(14));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var $ = _inputmask.default.dependencyLib, currentYear = new Date().getFullYear(), formatCode = {\n            d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n            dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n                return pad(Date.prototype.getDate.call(this), 2);\n            } ],\n            ddd: [ \"\" ],\n            dddd: [ \"\" ],\n            m: [ \"[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n                return Date.prototype.getMonth.call(this) + 1;\n            } ],\n            mm: [ \"0[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n                return pad(Date.prototype.getMonth.call(this) + 1, 2);\n            } ],\n            mmm: [ \"\" ],\n            mmmm: [ \"\" ],\n            yy: [ \"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function() {\n                return pad(Date.prototype.getFullYear.call(this), 2);\n            } ],\n            yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n                return pad(Date.prototype.getFullYear.call(this), 4);\n            } ],\n            h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n            hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n                return pad(Date.prototype.getHours.call(this), 2);\n            } ],\n            hx: [ function(x) {\n                return \"[0-9]{\".concat(x, \"}\");\n            }, Date.prototype.setHours, \"hours\", function(x) {\n                return Date.prototype.getHours;\n            } ],\n            H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n            HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n                return pad(Date.prototype.getHours.call(this), 2);\n            } ],\n            Hx: [ function(x) {\n                return \"[0-9]{\".concat(x, \"}\");\n            }, Date.prototype.setHours, \"hours\", function(x) {\n                return function() {\n                    return pad(Date.prototype.getHours.call(this), x);\n                };\n            } ],\n            M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n            MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n                return pad(Date.prototype.getMinutes.call(this), 2);\n            } ],\n            s: [ \"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds ],\n            ss: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n                return pad(Date.prototype.getSeconds.call(this), 2);\n            } ],\n            l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n                return pad(Date.prototype.getMilliseconds.call(this), 3);\n            } ],\n            L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n                return pad(Date.prototype.getMilliseconds.call(this), 2);\n            } ],\n            t: [ \"[ap]\" ],\n            tt: [ \"[ap]m\" ],\n            T: [ \"[AP]\" ],\n            TT: [ \"[AP]M\" ],\n            Z: [ \"\" ],\n            o: [ \"\" ],\n            S: [ \"\" ]\n        }, formatAlias = {\n            isoDate: \"yyyy-mm-dd\",\n            isoTime: \"HH:MM:ss\",\n            isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n            isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n        };\n        function formatcode(match) {\n            var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]);\n            if (dynMatches && void 0 !== dynMatches[0]) {\n                var fcode = formatCode[match[0][0] + \"x\"].slice(\"\");\n                return fcode[0] = fcode[0](dynMatches[0]), fcode[3] = fcode[3](dynMatches[0]), fcode;\n            }\n            if (formatCode[match[0]]) return formatCode[match[0]];\n        }\n        function getTokenizer(opts) {\n            if (!opts.tokenizer) {\n                var tokens = [], dyntokens = [];\n                for (var ndx in formatCode) if (/\\.*x$/.test(ndx)) {\n                    var dynToken = ndx[0] + \"\\\\d+\";\n                    -1 === dyntokens.indexOf(dynToken) && dyntokens.push(dynToken);\n                } else -1 === tokens.indexOf(ndx[0]) && tokens.push(ndx[0]);\n                opts.tokenizer = \"(\" + (0 < dyntokens.length ? dyntokens.join(\"|\") + \"|\" : \"\") + tokens.join(\"+|\") + \")+?|.\", \n                opts.tokenizer = new RegExp(opts.tokenizer, \"g\");\n            }\n            return opts.tokenizer;\n        }\n        function prefillYear(dateParts, currentResult, opts) {\n            if (dateParts.year !== dateParts.rawyear) {\n                var crrntyear = currentYear.toString(), enteredPart = dateParts.rawyear.replace(/[^0-9]/g, \"\"), currentYearPart = crrntyear.slice(0, enteredPart.length), currentYearNextPart = crrntyear.slice(enteredPart.length);\n                if (2 === enteredPart.length && enteredPart === currentYearPart) {\n                    var entryCurrentYear = new Date(currentYear, dateParts.month - 1, dateParts.day);\n                    dateParts.day == entryCurrentYear.getDate() && (!opts.max || opts.max.date.getTime() >= entryCurrentYear.getTime()) && (dateParts.date.setFullYear(currentYear), \n                    dateParts.year = crrntyear, currentResult.insert = [ {\n                        pos: currentResult.pos + 1,\n                        c: currentYearNextPart[0]\n                    }, {\n                        pos: currentResult.pos + 2,\n                        c: currentYearNextPart[1]\n                    } ]);\n                }\n            }\n            return currentResult;\n        }\n        function isValidDate(dateParts, currentResult, opts) {\n            if (!isFinite(dateParts.rawday) || \"29\" == dateParts.day && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day) return currentResult;\n            if (\"29\" == dateParts.day) {\n                var tokenMatch = getTokenMatch(currentResult.pos, opts);\n                if (\"yyyy\" === tokenMatch.targetMatch[0] && currentResult.pos - tokenMatch.targetMatchIndex == 2) return currentResult.remove = currentResult.pos + 1, \n                currentResult;\n            }\n            return !1;\n        }\n        function isDateInRange(dateParts, result, opts, maskset, fromCheckval) {\n            if (!result) return result;\n            if (opts.min) {\n                if (dateParts.rawyear) {\n                    var rawYear = dateParts.rawyear.replace(/[^0-9]/g, \"\"), minYear = opts.min.year.substr(0, rawYear.length), maxYear;\n                    if (rawYear < minYear) {\n                        var tokenMatch = getTokenMatch(result.pos, opts);\n                        if (rawYear = dateParts.rawyear.substr(0, result.pos - tokenMatch.targetMatchIndex + 1), \n                        minYear = opts.min.year.substr(0, rawYear.length), minYear <= rawYear) return result.remove = tokenMatch.targetMatchIndex + rawYear.length, \n                        result;\n                        if (rawYear = \"yyyy\" === tokenMatch.targetMatch[0] ? dateParts.rawyear.substr(1, 1) : dateParts.rawyear.substr(0, 1), \n                        minYear = opts.min.year.substr(2, 1), maxYear = opts.max ? opts.max.year.substr(2, 1) : rawYear, \n                        1 === rawYear.length && minYear <= rawYear <= maxYear && !0 !== fromCheckval) return \"yyyy\" === tokenMatch.targetMatch[0] ? (result.insert = [ {\n                            pos: result.pos + 1,\n                            c: rawYear,\n                            strict: !0\n                        } ], result.caret = result.pos + 2, maskset.validPositions[result.pos].input = opts.min.year[1]) : (result.insert = [ {\n                            pos: result.pos + 1,\n                            c: opts.min.year[1],\n                            strict: !0\n                        }, {\n                            pos: result.pos + 2,\n                            c: rawYear,\n                            strict: !0\n                        } ], result.caret = result.pos + 3, maskset.validPositions[result.pos].input = opts.min.year[0]), \n                        result;\n                        result = !1;\n                    }\n                }\n                result && dateParts.year && dateParts.year === dateParts.rawyear && opts.min.date.getTime() == opts.min.date.getTime() && (result = opts.min.date.getTime() <= dateParts.date.getTime());\n            }\n            return result && opts.max && opts.max.date.getTime() == opts.max.date.getTime() && (result = opts.max.date.getTime() >= dateParts.date.getTime()), \n            result;\n        }\n        function parse(format, dateObjValue, opts, raw) {\n            var mask = \"\", match, fcode;\n            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) if (void 0 === dateObjValue) if (fcode = formatcode(match)) mask += \"(\" + fcode[0] + \")\"; else switch (match[0]) {\n              case \"[\":\n                mask += \"(\";\n                break;\n\n              case \"]\":\n                mask += \")?\";\n                break;\n\n              default:\n                mask += (0, _escapeRegex.default)(match[0]);\n            } else if (fcode = formatcode(match)) if (!0 !== raw && fcode[3]) {\n                var getFn = fcode[3];\n                mask += getFn.call(dateObjValue.date);\n            } else fcode[2] ? mask += dateObjValue[\"raw\" + fcode[2]] : mask += match[0]; else mask += match[0];\n            return mask;\n        }\n        function pad(val, len) {\n            for (val = String(val), len = len || 2; val.length < len; ) val = \"0\" + val;\n            return val;\n        }\n        function analyseMask(maskString, format, opts) {\n            var dateObj = {\n                date: new Date(1, 0, 1)\n            }, targetProp, mask = maskString, match, dateOperation;\n            function setValue(dateObj, value, opts) {\n                dateObj[targetProp] = value.replace(/[^0-9]/g, \"0\"), dateObj[\"raw\" + targetProp] = value, \n                void 0 !== dateOperation && dateOperation.call(dateObj.date, \"month\" == targetProp ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);\n            }\n            if (\"string\" == typeof mask) {\n                for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(format); ) {\n                    var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]), fcode = dynMatches ? match[0][0] + \"x\" : match[0], value = void 0;\n                    if (dynMatches) {\n                        var lastIndex = getTokenizer(opts).lastIndex, tokanMatch = getTokenMatch(match.index, opts);\n                        getTokenizer(opts).lastIndex = lastIndex, value = mask.slice(0, mask.indexOf(tokanMatch.nextMatch[0]));\n                    } else value = mask.slice(0, fcode.length);\n                    Object.prototype.hasOwnProperty.call(formatCode, fcode) && (targetProp = formatCode[fcode][2], \n                    dateOperation = formatCode[fcode][1], setValue(dateObj, value, opts)), mask = mask.slice(value.length);\n                }\n                return dateObj;\n            }\n            if (mask && \"object\" === _typeof(mask) && Object.prototype.hasOwnProperty.call(mask, \"date\")) return mask;\n        }\n        function importDate(dateObj, opts) {\n            return parse(opts.inputFormat, {\n                date: dateObj\n            }, opts);\n        }\n        function getTokenMatch(pos, opts) {\n            var calcPos = 0, targetMatch, match, matchLength = 0;\n            for (getTokenizer(opts).lastIndex = 0; match = getTokenizer(opts).exec(opts.inputFormat); ) {\n                var dynMatches = new RegExp(\"\\\\d+$\").exec(match[0]);\n                if (matchLength = dynMatches ? parseInt(dynMatches[0]) : match[0].length, calcPos += matchLength, \n                pos <= calcPos) {\n                    targetMatch = match, match = getTokenizer(opts).exec(opts.inputFormat);\n                    break;\n                }\n            }\n            return {\n                targetMatchIndex: calcPos - matchLength,\n                nextMatch: match,\n                targetMatch: targetMatch\n            };\n        }\n        _inputmask.default.extendAliases({\n            datetime: {\n                mask: function mask(opts) {\n                    return opts.numericInput = !1, formatCode.S = opts.i18n.ordinalSuffix.join(\"|\"), \n                    opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat, opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat, \n                    opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat, \n                    opts.placeholder = \"\" !== opts.placeholder ? opts.placeholder : opts.inputFormat.replace(/[[\\]]/, \"\"), \n                    opts.regex = parse(opts.inputFormat, void 0, opts), opts.min = analyseMask(opts.min, opts.inputFormat, opts), \n                    opts.max = analyseMask(opts.max, opts.inputFormat, opts), null;\n                },\n                placeholder: \"\",\n                inputFormat: \"isoDateTime\",\n                displayFormat: void 0,\n                outputFormat: void 0,\n                min: null,\n                max: null,\n                skipOptionalPartCharacter: \"\",\n                i18n: {\n                    dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n                    monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n                    ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n                },\n                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {\n                    if (strict) return !0;\n                    if (isNaN(c) && buffer[pos] !== c) {\n                        var tokenMatch = getTokenMatch(pos, opts);\n                        if (tokenMatch.nextMatch && tokenMatch.nextMatch[0] === c && 1 < tokenMatch.targetMatch[0].length) {\n                            var validator = formatCode[tokenMatch.targetMatch[0]][0];\n                            if (new RegExp(validator).test(\"0\" + buffer[pos - 1])) return buffer[pos] = buffer[pos - 1], \n                            buffer[pos - 1] = \"0\", {\n                                fuzzy: !0,\n                                buffer: buffer,\n                                refreshFromBuffer: {\n                                    start: pos - 1,\n                                    end: pos + 1\n                                },\n                                pos: pos + 1\n                            };\n                        }\n                    }\n                    return !0;\n                },\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict, fromCheckval) {\n                    if (strict) return !0;\n                    var tokenMatch, validator;\n                    if (!1 === currentResult) return tokenMatch = getTokenMatch(pos + 1, opts), tokenMatch.targetMatch && tokenMatch.targetMatchIndex === pos && 1 < tokenMatch.targetMatch[0].length && void 0 !== formatCode[tokenMatch.targetMatch[0]] && (validator = formatCode[tokenMatch.targetMatch[0]][0], \n                    new RegExp(validator).test(\"0\" + c)) ? {\n                        insert: [ {\n                            pos: pos,\n                            c: \"0\"\n                        }, {\n                            pos: pos + 1,\n                            c: c\n                        } ],\n                        pos: pos + 1\n                    } : currentResult;\n                    if (currentResult.fuzzy && (buffer = currentResult.buffer, pos = currentResult.pos), \n                    tokenMatch = getTokenMatch(pos, opts), tokenMatch.targetMatch && tokenMatch.targetMatch[0] && void 0 !== formatCode[tokenMatch.targetMatch[0]]) {\n                        validator = formatCode[tokenMatch.targetMatch[0]][0];\n                        var part = buffer.slice(tokenMatch.targetMatchIndex, tokenMatch.targetMatchIndex + tokenMatch.targetMatch[0].length);\n                        !1 === new RegExp(validator).test(part.join(\"\")) && 2 === tokenMatch.targetMatch[0].length && maskset.validPositions[tokenMatch.targetMatchIndex] && maskset.validPositions[tokenMatch.targetMatchIndex + 1] && (maskset.validPositions[tokenMatch.targetMatchIndex + 1].input = \"0\");\n                    }\n                    var result = currentResult, dateParts = analyseMask(buffer.join(\"\"), opts.inputFormat, opts);\n                    return result && dateParts.date.getTime() == dateParts.date.getTime() && (result = prefillYear(dateParts, result, opts), \n                    result = isValidDate(dateParts, result, opts), result = isDateInRange(dateParts, result, opts, maskset, fromCheckval)), \n                    pos && result && currentResult.pos !== pos ? {\n                        buffer: parse(opts.inputFormat, dateParts, opts).split(\"\"),\n                        refreshFromBuffer: {\n                            start: pos,\n                            end: currentResult.pos\n                        }\n                    } : result;\n                },\n                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\n                    var input = this;\n                    e.ctrlKey && e.keyCode === _keycode.default.RIGHT && (this.inputmask._valueSet(importDate(new Date(), opts)), \n                    $(this).trigger(\"setvalue\"));\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    return unmaskedValue ? parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, !0) : unmaskedValue;\n                },\n                casing: function casing(elem, test, pos, validPositions) {\n                    return 0 == test.nativeDef.indexOf(\"[ap]\") ? elem.toLowerCase() : 0 == test.nativeDef.indexOf(\"[AP]\") ? elem.toUpperCase() : elem;\n                },\n                onBeforeMask: function onBeforeMask(initialValue, opts) {\n                    return \"[object Date]\" === Object.prototype.toString.call(initialValue) && (initialValue = importDate(initialValue, opts)), \n                    initialValue;\n                },\n                insertMode: !1,\n                shiftPositions: !1,\n                keepStatic: !1,\n                inputmode: \"numeric\"\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _inputmask = _interopRequireDefault(__webpack_require__(1)), _keycode = _interopRequireDefault(__webpack_require__(0)), _escapeRegex = _interopRequireDefault(__webpack_require__(14));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var $ = _inputmask.default.dependencyLib;\n        function autoEscape(txt, opts) {\n            for (var escapedTxt = \"\", i = 0; i < txt.length; i++) _inputmask.default.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker[0] === txt.charAt(i) || opts.optionalmarker[1] === txt.charAt(i) || opts.quantifiermarker[0] === txt.charAt(i) || opts.quantifiermarker[1] === txt.charAt(i) || opts.groupmarker[0] === txt.charAt(i) || opts.groupmarker[1] === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += \"\\\\\" + txt.charAt(i) : escapedTxt += txt.charAt(i);\n            return escapedTxt;\n        }\n        function alignDigits(buffer, digits, opts, force) {\n            if (0 < buffer.length && 0 < digits && (!opts.digitsOptional || force)) {\n                var radixPosition = buffer.indexOf(opts.radixPoint), negationBack = !1;\n                opts.negationSymbol.back === buffer[buffer.length - 1] && (negationBack = !0, buffer.length--), \n                -1 === radixPosition && (buffer.push(opts.radixPoint), radixPosition = buffer.length - 1);\n                for (var i = 1; i <= digits; i++) isFinite(buffer[radixPosition + i]) || (buffer[radixPosition + i] = \"0\");\n            }\n            return negationBack && buffer.push(opts.negationSymbol.back), buffer;\n        }\n        function findValidator(symbol, maskset) {\n            var posNdx = 0;\n            if (\"+\" === symbol) {\n                for (posNdx in maskset.validPositions) ;\n                posNdx = parseInt(posNdx);\n            }\n            for (var tstNdx in maskset.tests) if (tstNdx = parseInt(tstNdx), posNdx <= tstNdx) for (var ndx = 0, ndxl = maskset.tests[tstNdx].length; ndx < ndxl; ndx++) if ((void 0 === maskset.validPositions[tstNdx] || \"-\" === symbol) && maskset.tests[tstNdx][ndx].match.def === symbol) return tstNdx + (void 0 !== maskset.validPositions[tstNdx] && \"-\" !== symbol ? 1 : 0);\n            return posNdx;\n        }\n        function findValid(symbol, maskset) {\n            var ret = -1;\n            for (var ndx in maskset.validPositions) {\n                var tst = maskset.validPositions[ndx];\n                if (tst && tst.match.def === symbol) {\n                    ret = parseInt(ndx);\n                    break;\n                }\n            }\n            return ret;\n        }\n        function parseMinMaxOptions(opts) {\n            void 0 === opts.parseMinMaxOptions && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp((0, \n            _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \",\" === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, \".\")), \n            opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)), \n            null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp((0, _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \n            \",\" === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, \".\")), \n            opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)), \n            opts.parseMinMaxOptions = \"done\");\n        }\n        function genMask(opts) {\n            opts.repeat = 0, opts.groupSeparator === opts.radixPoint && opts.digits && \"0\" !== opts.digits && (\".\" === opts.radixPoint ? opts.groupSeparator = \",\" : \",\" === opts.radixPoint ? opts.groupSeparator = \".\" : opts.groupSeparator = \"\"), \n            \" \" === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), 1 < opts.placeholder.length && (opts.placeholder = opts.placeholder.charAt(0)), \n            \"radixFocus\" === opts.positionCaretOnClick && \"\" === opts.placeholder && (opts.positionCaretOnClick = \"lvp\");\n            var decimalDef = \"0\", radixPointDef = opts.radixPoint;\n            !0 === opts.numericInput && void 0 === opts.__financeInput ? (decimalDef = \"1\", \n            opts.positionCaretOnClick = \"radixFocus\" === opts.positionCaretOnClick ? \"lvp\" : opts.positionCaretOnClick, \n            opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts._radixDance = !1, \n            radixPointDef = \",\" === opts.radixPoint ? \"?\" : \"!\", \"\" !== opts.radixPoint && void 0 === opts.definitions[radixPointDef] && (opts.definitions[radixPointDef] = {}, \n            opts.definitions[radixPointDef].validator = \"[\" + opts.radixPoint + \"]\", opts.definitions[radixPointDef].placeholder = opts.radixPoint, \n            opts.definitions[radixPointDef].static = !0, opts.definitions[radixPointDef].generated = !0)) : (opts.__financeInput = !1, \n            opts.numericInput = !0);\n            var mask = \"[+]\", altMask;\n            if (mask += autoEscape(opts.prefix, opts), \"\" !== opts.groupSeparator ? (void 0 === opts.definitions[opts.groupSeparator] && (opts.definitions[opts.groupSeparator] = {}, \n            opts.definitions[opts.groupSeparator].validator = \"[\" + opts.groupSeparator + \"]\", \n            opts.definitions[opts.groupSeparator].placeholder = opts.groupSeparator, opts.definitions[opts.groupSeparator].static = !0, \n            opts.definitions[opts.groupSeparator].generated = !0), mask += opts._mask(opts)) : mask += \"9{+}\", \n            void 0 !== opts.digits && 0 !== opts.digits) {\n                var dq = opts.digits.toString().split(\",\");\n                isFinite(dq[0]) && dq[1] && isFinite(dq[1]) ? mask += radixPointDef + decimalDef + \"{\" + opts.digits + \"}\" : (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && (opts.digitsOptional ? (altMask = mask + radixPointDef + decimalDef + \"{0,\" + opts.digits + \"}\", \n                opts.keepStatic = !0) : mask += radixPointDef + decimalDef + \"{\" + opts.digits + \"}\");\n            }\n            return mask += autoEscape(opts.suffix, opts), mask += \"[-]\", altMask && (mask = [ altMask + autoEscape(opts.suffix, opts) + \"[-]\", mask ]), \n            opts.greedy = !1, parseMinMaxOptions(opts), mask;\n        }\n        function hanndleRadixDance(pos, c, radixPos, maskset, opts) {\n            return opts._radixDance && opts.numericInput && c !== opts.negationSymbol.back && pos <= radixPos && (0 < radixPos || c == opts.radixPoint) && (void 0 === maskset.validPositions[pos - 1] || maskset.validPositions[pos - 1].input !== opts.negationSymbol.back) && (pos -= 1), \n            pos;\n        }\n        function decimalValidator(chrs, maskset, pos, strict, opts) {\n            var radixPos = maskset.buffer ? maskset.buffer.indexOf(opts.radixPoint) : -1, result = -1 !== radixPos && new RegExp(\"[0-9\\uff11-\\uff19]\").test(chrs);\n            return opts._radixDance && result && null == maskset.validPositions[radixPos] ? {\n                insert: {\n                    pos: radixPos === pos ? radixPos + 1 : radixPos,\n                    c: opts.radixPoint\n                },\n                pos: pos\n            } : result;\n        }\n        function checkForLeadingZeroes(buffer, opts) {\n            var numberMatches = new RegExp(\"(^\" + (\"\" !== opts.negationSymbol.front ? (0, _escapeRegex.default)(opts.negationSymbol.front) + \"?\" : \"\") + (0, \n            _escapeRegex.default)(opts.prefix) + \")(.*)(\" + (0, _escapeRegex.default)(opts.suffix) + (\"\" != opts.negationSymbol.back ? (0, \n            _escapeRegex.default)(opts.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(buffer.slice().reverse().join(\"\")), number = numberMatches ? numberMatches[2] : \"\", leadingzeroes = !1;\n            return number && (number = number.split(opts.radixPoint.charAt(0))[0], leadingzeroes = new RegExp(\"^[0\" + opts.groupSeparator + \"]*\").exec(number)), \n            !(!leadingzeroes || !(1 < leadingzeroes[0].length || 0 < leadingzeroes[0].length && leadingzeroes[0].length < number.length)) && leadingzeroes;\n        }\n        _inputmask.default.extendAliases({\n            numeric: {\n                mask: genMask,\n                _mask: function _mask(opts) {\n                    return \"(\" + opts.groupSeparator + \"999){+|1}\";\n                },\n                digits: \"*\",\n                digitsOptional: !0,\n                enforceDigitsOnBlur: !1,\n                radixPoint: \".\",\n                positionCaretOnClick: \"radixFocus\",\n                _radixDance: !0,\n                groupSeparator: \"\",\n                allowMinus: !0,\n                negationSymbol: {\n                    front: \"-\",\n                    back: \"\"\n                },\n                prefix: \"\",\n                suffix: \"\",\n                min: null,\n                max: null,\n                SetMaxOnOverflow: !1,\n                step: 1,\n                inputType: \"text\",\n                unmaskAsNumber: !1,\n                roundingFN: Math.round,\n                inputmode: \"numeric\",\n                shortcuts: {\n                    k: \"000\",\n                    m: \"000000\"\n                },\n                placeholder: \"0\",\n                greedy: !1,\n                rightAlign: !0,\n                insertMode: !0,\n                autoUnmask: !1,\n                skipOptionalPartCharacter: \"\",\n                definitions: {\n                    0: {\n                        validator: decimalValidator\n                    },\n                    1: {\n                        validator: decimalValidator,\n                        definitionSymbol: \"9\"\n                    },\n                    \"+\": {\n                        validator: function validator(chrs, maskset, pos, strict, opts) {\n                            return opts.allowMinus && (\"-\" === chrs || chrs === opts.negationSymbol.front);\n                        }\n                    },\n                    \"-\": {\n                        validator: function validator(chrs, maskset, pos, strict, opts) {\n                            return opts.allowMinus && chrs === opts.negationSymbol.back;\n                        }\n                    }\n                },\n                preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset, caretPos, strict) {\n                    if (!1 !== opts.__financeInput && c === opts.radixPoint) return !1;\n                    var pattern;\n                    if (pattern = opts.shortcuts && opts.shortcuts[c]) {\n                        if (1 < pattern.length) for (var inserts = [], i = 0; i < pattern.length; i++) inserts.push({\n                            pos: pos + i,\n                            c: pattern[i],\n                            strict: !1\n                        });\n                        return {\n                            insert: inserts\n                        };\n                    }\n                    var radixPos = buffer.indexOf(opts.radixPoint), initPos = pos;\n                    if (pos = hanndleRadixDance(pos, c, radixPos, maskset, opts), \"-\" === c || c === opts.negationSymbol.front) {\n                        if (!0 !== opts.allowMinus) return !1;\n                        var isNegative = !1, front = findValid(\"+\", maskset), back = findValid(\"-\", maskset);\n                        return -1 !== front && (isNegative = [ front, back ]), !1 !== isNegative ? {\n                            remove: isNegative,\n                            caret: initPos - opts.negationSymbol.front.length\n                        } : {\n                            insert: [ {\n                                pos: findValidator(\"+\", maskset),\n                                c: opts.negationSymbol.front,\n                                fromIsValid: !0\n                            }, {\n                                pos: findValidator(\"-\", maskset),\n                                c: opts.negationSymbol.back,\n                                fromIsValid: void 0\n                            } ],\n                            caret: initPos + opts.negationSymbol.back.length\n                        };\n                    }\n                    if (c === opts.groupSeparator) return {\n                        caret: initPos\n                    };\n                    if (strict) return !0;\n                    if (-1 !== radixPos && !0 === opts._radixDance && !1 === isSelection && c === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || 0 < parseInt(opts.digits)) && radixPos !== pos) return {\n                        caret: opts._radixDance && pos === radixPos - 1 ? radixPos + 1 : radixPos\n                    };\n                    if (!1 === opts.__financeInput) if (isSelection) {\n                        if (opts.digitsOptional) return {\n                            rewritePosition: caretPos.end\n                        };\n                        if (!opts.digitsOptional) {\n                            if (caretPos.begin > radixPos && caretPos.end <= radixPos) return c === opts.radixPoint ? {\n                                insert: {\n                                    pos: radixPos + 1,\n                                    c: \"0\",\n                                    fromIsValid: !0\n                                },\n                                rewritePosition: radixPos\n                            } : {\n                                rewritePosition: radixPos + 1\n                            };\n                            if (caretPos.begin < radixPos) return {\n                                rewritePosition: caretPos.begin - 1\n                            };\n                        }\n                    } else if (!opts.showMaskOnHover && !opts.showMaskOnFocus && !opts.digitsOptional && 0 < opts.digits && \"\" === this.inputmask.__valueGet.call(this)) return {\n                        rewritePosition: radixPos\n                    };\n                    return {\n                        rewritePosition: pos\n                    };\n                },\n                postValidation: function postValidation(buffer, pos, c, currentResult, opts, maskset, strict) {\n                    if (!1 === currentResult) return currentResult;\n                    if (strict) return !0;\n                    if (null !== opts.min || null !== opts.max) {\n                        var unmasked = opts.onUnMask(buffer.slice().reverse().join(\"\"), void 0, $.extend({}, opts, {\n                            unmaskAsNumber: !0\n                        }));\n                        if (null !== opts.min && unmasked < opts.min && (unmasked.toString().length > opts.min.toString().length || unmasked < 0)) return !1;\n                        if (null !== opts.max && unmasked > opts.max) return !!opts.SetMaxOnOverflow && {\n                            refreshFromBuffer: !0,\n                            buffer: alignDigits(opts.max.toString().replace(\".\", opts.radixPoint).split(\"\"), opts.digits, opts).reverse()\n                        };\n                    }\n                    return currentResult;\n                },\n                onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\n                    if (\"\" === unmaskedValue && !0 === opts.nullable) return unmaskedValue;\n                    var processValue = maskedValue.replace(opts.prefix, \"\");\n                    return processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp((0, \n                    _escapeRegex.default)(opts.groupSeparator), \"g\"), \"\"), \"\" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), \"g\"), \"0\")), \n                    opts.unmaskAsNumber ? (\"\" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(_escapeRegex.default.call(this, opts.radixPoint), \".\")), \n                    processValue = processValue.replace(new RegExp(\"^\" + (0, _escapeRegex.default)(opts.negationSymbol.front)), \"-\"), \n                    processValue = processValue.replace(new RegExp((0, _escapeRegex.default)(opts.negationSymbol.back) + \"$\"), \"\"), \n                    Number(processValue)) : processValue;\n                },\n                isComplete: function isComplete(buffer, opts) {\n                    var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(\"\");\n                    return maskedValue = maskedValue.replace(new RegExp(\"^\" + (0, _escapeRegex.default)(opts.negationSymbol.front)), \"-\"), \n                    maskedValue = maskedValue.replace(new RegExp((0, _escapeRegex.default)(opts.negationSymbol.back) + \"$\"), \"\"), \n                    maskedValue = maskedValue.replace(opts.prefix, \"\"), maskedValue = maskedValue.replace(opts.suffix, \"\"), \n                    maskedValue = maskedValue.replace(new RegExp((0, _escapeRegex.default)(opts.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \n                    \",\" === opts.radixPoint && (maskedValue = maskedValue.replace((0, _escapeRegex.default)(opts.radixPoint), \".\")), \n                    isFinite(maskedValue);\n                },\n                onBeforeMask: function onBeforeMask(initialValue, opts) {\n                    var radixPoint = opts.radixPoint || \",\";\n                    isFinite(opts.digits) && (opts.digits = parseInt(opts.digits)), \"number\" != typeof initialValue && \"number\" !== opts.inputType || \"\" === radixPoint || (initialValue = initialValue.toString().replace(\".\", radixPoint));\n                    var isNagtive = \"-\" === initialValue.charAt(0) || initialValue.charAt(0) === opts.negationSymbol.front, valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\\-0-9]/g, \"\"), decimalPart = 1 < valueParts.length ? valueParts[1].replace(/[^0-9]/g, \"\") : \"\", forceDigits = 1 < valueParts.length;\n                    initialValue = integerPart + (\"\" !== decimalPart ? radixPoint + decimalPart : decimalPart);\n                    var digits = 0;\n                    if (\"\" !== radixPoint && (digits = opts.digitsOptional ? opts.digits < decimalPart.length ? opts.digits : decimalPart.length : opts.digits, \n                    \"\" !== decimalPart || !opts.digitsOptional)) {\n                        var digitsFactor = Math.pow(10, digits || 1);\n                        initialValue = initialValue.replace((0, _escapeRegex.default)(radixPoint), \".\"), \n                        isNaN(parseFloat(initialValue)) || (initialValue = (opts.roundingFN(parseFloat(initialValue) * digitsFactor) / digitsFactor).toFixed(digits)), \n                        initialValue = initialValue.toString().replace(\".\", radixPoint);\n                    }\n                    if (0 === opts.digits && -1 !== initialValue.indexOf(radixPoint) && (initialValue = initialValue.substring(0, initialValue.indexOf(radixPoint))), \n                    null !== opts.min || null !== opts.max) {\n                        var numberValue = initialValue.toString().replace(radixPoint, \".\");\n                        null !== opts.min && numberValue < opts.min ? initialValue = opts.min.toString().replace(\".\", radixPoint) : null !== opts.max && numberValue > opts.max && (initialValue = opts.max.toString().replace(\".\", radixPoint));\n                    }\n                    return isNagtive && \"-\" !== initialValue.charAt(0) && (initialValue = \"-\" + initialValue), \n                    alignDigits(initialValue.toString().split(\"\"), digits, opts, forceDigits).join(\"\");\n                },\n                onBeforeWrite: function onBeforeWrite(e, buffer, caretPos, opts) {\n                    function stripBuffer(buffer, stripRadix) {\n                        if (!1 !== opts.__financeInput || stripRadix) {\n                            var position = buffer.indexOf(opts.radixPoint);\n                            -1 !== position && buffer.splice(position, 1);\n                        }\n                        if (\"\" !== opts.groupSeparator) for (;-1 !== (position = buffer.indexOf(opts.groupSeparator)); ) buffer.splice(position, 1);\n                        return buffer;\n                    }\n                    var result, leadingzeroes = checkForLeadingZeroes(buffer, opts);\n                    if (leadingzeroes) for (var caretNdx = buffer.join(\"\").lastIndexOf(leadingzeroes[0].split(\"\").reverse().join(\"\")) - (leadingzeroes[0] == leadingzeroes.input ? 0 : 1), offset = leadingzeroes[0] == leadingzeroes.input ? 1 : 0, i = leadingzeroes[0].length - offset; 0 < i; i--) delete this.maskset.validPositions[caretNdx + i], \n                    delete buffer[caretNdx + i];\n                    if (e) switch (e.type) {\n                      case \"blur\":\n                      case \"checkval\":\n                        if (null !== opts.min) {\n                            var unmasked = opts.onUnMask(buffer.slice().reverse().join(\"\"), void 0, $.extend({}, opts, {\n                                unmaskAsNumber: !0\n                            }));\n                            if (null !== opts.min && unmasked < opts.min) return {\n                                refreshFromBuffer: !0,\n                                buffer: alignDigits(opts.min.toString().replace(\".\", opts.radixPoint).split(\"\"), opts.digits, opts).reverse()\n                            };\n                        }\n                        if (buffer[buffer.length - 1] === opts.negationSymbol.front) {\n                            var nmbrMtchs = new RegExp(\"(^\" + (\"\" != opts.negationSymbol.front ? (0, _escapeRegex.default)(opts.negationSymbol.front) + \"?\" : \"\") + (0, \n                            _escapeRegex.default)(opts.prefix) + \")(.*)(\" + (0, _escapeRegex.default)(opts.suffix) + (\"\" != opts.negationSymbol.back ? (0, \n                            _escapeRegex.default)(opts.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(stripBuffer(buffer.slice(), !0).reverse().join(\"\")), number = nmbrMtchs ? nmbrMtchs[2] : \"\";\n                            0 == number && (result = {\n                                refreshFromBuffer: !0,\n                                buffer: [ 0 ]\n                            });\n                        } else \"\" !== opts.radixPoint && buffer[0] === opts.radixPoint && (result && result.buffer ? result.buffer.shift() : (buffer.shift(), \n                        result = {\n                            refreshFromBuffer: !0,\n                            buffer: stripBuffer(buffer)\n                        }));\n                        if (opts.enforceDigitsOnBlur) {\n                            result = result || {};\n                            var bffr = result && result.buffer || buffer.slice().reverse();\n                            result.refreshFromBuffer = !0, result.buffer = alignDigits(bffr, opts.digits, opts, !0).reverse();\n                        }\n                    }\n                    return result;\n                },\n                onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\n                    var $input = $(this), bffr;\n                    if (e.ctrlKey) switch (e.keyCode) {\n                      case _keycode.default.UP:\n                        return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), \n                        $input.trigger(\"setvalue\"), !1;\n\n                      case _keycode.default.DOWN:\n                        return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), \n                        $input.trigger(\"setvalue\"), !1;\n                    }\n                    if (!e.shiftKey && (e.keyCode === _keycode.default.DELETE || e.keyCode === _keycode.default.BACKSPACE || e.keyCode === _keycode.default.BACKSPACE_SAFARI) && caretPos.begin !== buffer.length) {\n                        if (buffer[e.keyCode === _keycode.default.DELETE ? caretPos.begin - 1 : caretPos.end] === opts.negationSymbol.front) return bffr = buffer.slice().reverse(), \n                        \"\" !== opts.negationSymbol.front && bffr.shift(), \"\" !== opts.negationSymbol.back && bffr.pop(), \n                        $input.trigger(\"setvalue\", [ bffr.join(\"\"), caretPos.begin ]), !1;\n                        if (!0 === opts._radixDance) {\n                            var radixPos = buffer.indexOf(opts.radixPoint);\n                            if (opts.digitsOptional) {\n                                if (0 === radixPos) return bffr = buffer.slice().reverse(), bffr.pop(), $input.trigger(\"setvalue\", [ bffr.join(\"\"), caretPos.begin >= bffr.length ? bffr.length : caretPos.begin ]), \n                                !1;\n                            } else if (-1 !== radixPos && (caretPos.begin < radixPos || caretPos.end < radixPos || e.keyCode === _keycode.default.DELETE && caretPos.begin === radixPos)) return caretPos.begin !== caretPos.end || e.keyCode !== _keycode.default.BACKSPACE && e.keyCode !== _keycode.default.BACKSPACE_SAFARI || caretPos.begin++, \n                            bffr = buffer.slice().reverse(), bffr.splice(bffr.length - caretPos.begin, caretPos.begin - caretPos.end + 1), \n                            bffr = alignDigits(bffr, opts.digits, opts).join(\"\"), $input.trigger(\"setvalue\", [ bffr, caretPos.begin >= bffr.length ? radixPos + 1 : caretPos.begin ]), \n                            !1;\n                        }\n                    }\n                }\n            },\n            currency: {\n                prefix: \"\",\n                groupSeparator: \",\",\n                alias: \"numeric\",\n                digits: 2,\n                digitsOptional: !1\n            },\n            decimal: {\n                alias: \"numeric\"\n            },\n            integer: {\n                alias: \"numeric\",\n                digits: 0\n            },\n            percentage: {\n                alias: \"numeric\",\n                min: 0,\n                max: 100,\n                suffix: \" %\",\n                digits: 0,\n                allowMinus: !1\n            },\n            indianns: {\n                alias: \"numeric\",\n                _mask: function _mask(opts) {\n                    return \"(\" + opts.groupSeparator + \"99){*|1}(\" + opts.groupSeparator + \"999){1|1}\";\n                },\n                groupSeparator: \",\",\n                radixPoint: \".\",\n                placeholder: \"0\",\n                digits: 2,\n                digitsOptional: !1\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _window = _interopRequireDefault(__webpack_require__(13)), _inputmask = _interopRequireDefault(__webpack_require__(1));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _classCallCheck(instance, Constructor) {\n            if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n        }\n        function _inherits(subClass, superClass) {\n            if (\"function\" != typeof superClass && null !== superClass) throw new TypeError(\"Super expression must either be null or a function\");\n            subClass.prototype = Object.create(superClass && superClass.prototype, {\n                constructor: {\n                    value: subClass,\n                    writable: !0,\n                    configurable: !0\n                }\n            }), superClass && _setPrototypeOf(subClass, superClass);\n        }\n        function _createSuper(Derived) {\n            var hasNativeReflectConstruct = _isNativeReflectConstruct();\n            return function _createSuperInternal() {\n                var Super = _getPrototypeOf(Derived), result;\n                if (hasNativeReflectConstruct) {\n                    var NewTarget = _getPrototypeOf(this).constructor;\n                    result = Reflect.construct(Super, arguments, NewTarget);\n                } else result = Super.apply(this, arguments);\n                return _possibleConstructorReturn(this, result);\n            };\n        }\n        function _possibleConstructorReturn(self, call) {\n            return !call || \"object\" !== _typeof(call) && \"function\" != typeof call ? _assertThisInitialized(self) : call;\n        }\n        function _assertThisInitialized(self) {\n            if (void 0 === self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n            return self;\n        }\n        function _wrapNativeSuper(Class) {\n            var _cache = \"function\" == typeof Map ? new Map() : void 0;\n            return _wrapNativeSuper = function _wrapNativeSuper(Class) {\n                if (null === Class || !_isNativeFunction(Class)) return Class;\n                if (\"function\" != typeof Class) throw new TypeError(\"Super expression must either be null or a function\");\n                if (\"undefined\" != typeof _cache) {\n                    if (_cache.has(Class)) return _cache.get(Class);\n                    _cache.set(Class, Wrapper);\n                }\n                function Wrapper() {\n                    return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n                }\n                return Wrapper.prototype = Object.create(Class.prototype, {\n                    constructor: {\n                        value: Wrapper,\n                        enumerable: !1,\n                        writable: !0,\n                        configurable: !0\n                    }\n                }), _setPrototypeOf(Wrapper, Class);\n            }, _wrapNativeSuper(Class);\n        }\n        function _construct(Parent, args, Class) {\n            return _construct = _isNativeReflectConstruct() ? Reflect.construct : function _construct(Parent, args, Class) {\n                var a = [ null ];\n                a.push.apply(a, args);\n                var Constructor = Function.bind.apply(Parent, a), instance = new Constructor();\n                return Class && _setPrototypeOf(instance, Class.prototype), instance;\n            }, _construct.apply(null, arguments);\n        }\n        function _isNativeReflectConstruct() {\n            if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n            if (Reflect.construct.sham) return !1;\n            if (\"function\" == typeof Proxy) return !0;\n            try {\n                return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), \n                !0;\n            } catch (e) {\n                return !1;\n            }\n        }\n        function _isNativeFunction(fn) {\n            return -1 !== Function.toString.call(fn).indexOf(\"[native code]\");\n        }\n        function _setPrototypeOf(o, p) {\n            return _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n                return o.__proto__ = p, o;\n            }, _setPrototypeOf(o, p);\n        }\n        function _getPrototypeOf(o) {\n            return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n                return o.__proto__ || Object.getPrototypeOf(o);\n            }, _getPrototypeOf(o);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        var document = _window.default.document;\n        if (document && document.head && document.head.attachShadow && _window.default.customElements && void 0 === _window.default.customElements.get(\"input-mask\")) {\n            var InputmaskElement = function(_HTMLElement) {\n                _inherits(InputmaskElement, _HTMLElement);\n                var _super = _createSuper(InputmaskElement);\n                function InputmaskElement() {\n                    var _this;\n                    _classCallCheck(this, InputmaskElement), _this = _super.call(this);\n                    var attributeNames = _this.getAttributeNames(), shadow = _this.attachShadow({\n                        mode: \"closed\"\n                    }), input = document.createElement(\"input\");\n                    for (var attr in input.type = \"text\", shadow.appendChild(input), attributeNames) Object.prototype.hasOwnProperty.call(attributeNames, attr) && input.setAttribute(attributeNames[attr], _this.getAttribute(attributeNames[attr]));\n                    var im = new _inputmask.default();\n                    return im.dataAttribute = \"\", im.mask(input), input.inputmask.shadowRoot = shadow, \n                    _this;\n                }\n                return InputmaskElement;\n            }(_wrapNativeSuper(HTMLElement));\n            _window.default.customElements.define(\"input-mask\", InputmaskElement);\n        }\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        var _jquery = _interopRequireDefault(__webpack_require__(8)), _inputmask = _interopRequireDefault(__webpack_require__(1));\n        function _typeof(obj) {\n            return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function _typeof(obj) {\n                return typeof obj;\n            } : function _typeof(obj) {\n                return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n            }, _typeof(obj);\n        }\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        void 0 === _jquery.default.fn.inputmask && (_jquery.default.fn.inputmask = function(fn, options) {\n            var nptmask, input = this[0];\n            if (void 0 === options && (options = {}), \"string\" == typeof fn) switch (fn) {\n              case \"unmaskedvalue\":\n                return input && input.inputmask ? input.inputmask.unmaskedvalue() : (0, _jquery.default)(input).val();\n\n              case \"remove\":\n                return this.each(function() {\n                    this.inputmask && this.inputmask.remove();\n                });\n\n              case \"getemptymask\":\n                return input && input.inputmask ? input.inputmask.getemptymask() : \"\";\n\n              case \"hasMaskedValue\":\n                return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();\n\n              case \"isComplete\":\n                return !input || !input.inputmask || input.inputmask.isComplete();\n\n              case \"getmetadata\":\n                return input && input.inputmask ? input.inputmask.getmetadata() : void 0;\n\n              case \"setvalue\":\n                _inputmask.default.setValue(input, options);\n                break;\n\n              case \"option\":\n                if (\"string\" != typeof options) return this.each(function() {\n                    if (void 0 !== this.inputmask) return this.inputmask.option(options);\n                });\n                if (input && void 0 !== input.inputmask) return input.inputmask.option(options);\n                break;\n\n              default:\n                return options.alias = fn, nptmask = new _inputmask.default(options), this.each(function() {\n                    nptmask.mask(this);\n                });\n            } else {\n                if (Array.isArray(fn)) return options.alias = fn, nptmask = new _inputmask.default(options), \n                this.each(function() {\n                    nptmask.mask(this);\n                });\n                if (\"object\" == _typeof(fn)) return nptmask = new _inputmask.default(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {\n                    if (void 0 !== this.inputmask) return this.inputmask.option(fn);\n                    nptmask.mask(this);\n                }) : this.each(function() {\n                    nptmask.mask(this);\n                });\n                if (void 0 === fn) return this.each(function() {\n                    nptmask = new _inputmask.default(options), nptmask.mask(this);\n                });\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.default = void 0;\n        var _bundle = _interopRequireDefault(__webpack_require__(15));\n        function _interopRequireDefault(obj) {\n            return obj && obj.__esModule ? obj : {\n                default: obj\n            };\n        }\n        __webpack_require__(23);\n        var _default = _bundle.default;\n        exports.default = _default;\n    } ], installedModules = {}, __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n    __webpack_require__.d = function(exports, name, getter) {\n        __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n            enumerable: !0,\n            get: getter\n        });\n    }, __webpack_require__.r = function(exports) {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n    }, __webpack_require__.t = function(value, mode) {\n        if (1 & mode && (value = __webpack_require__(value)), 8 & mode) return value;\n        if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n        var ns = Object.create(null);\n        if (__webpack_require__.r(ns), Object.defineProperty(ns, \"default\", {\n            enumerable: !0,\n            value: value\n        }), 2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n            return value[key];\n        }.bind(null, key));\n        return ns;\n    }, __webpack_require__.n = function(module) {\n        var getter = module && module.__esModule ? function getDefault() {\n            return module.default;\n        } : function getModuleExports() {\n            return module;\n        };\n        return __webpack_require__.d(getter, \"a\", getter), getter;\n    }, __webpack_require__.o = function(object, property) {\n        return Object.prototype.hasOwnProperty.call(object, property);\n    }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 24);\n    function __webpack_require__(moduleId) {\n        if (installedModules[moduleId]) return installedModules[moduleId].exports;\n        var module = installedModules[moduleId] = {\n            i: moduleId,\n            l: !1,\n            exports: {}\n        };\n        return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n        module.l = !0, module.exports;\n    }\n    var modules, installedModules;\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/ion-rangeslider/License.md",
    "content": "## The MIT License\n\nCopyright © 2019 by Denis Ineshin (http://ionden.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/ion-rangeslider/css/ion.rangeSlider.css",
    "content": "/**\nIon.RangeSlider, 2.3.1\n© Denis Ineshin, 2010 - 2019, IonDen.com\nBuild date: 2019-12-19 16:51:02\n*/\n.irs {\n  position: relative;\n  display: block;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  font-size: 12px;\n  font-family: Arial, sans-serif;\n}\n.irs-line {\n  position: relative;\n  display: block;\n  overflow: hidden;\n  outline: none !important;\n}\n.irs-bar {\n  position: absolute;\n  display: block;\n  left: 0;\n  width: 0;\n}\n.irs-shadow {\n  position: absolute;\n  display: none;\n  left: 0;\n  width: 0;\n}\n.irs-handle {\n  position: absolute;\n  display: block;\n  box-sizing: border-box;\n  cursor: default;\n  z-index: 1;\n}\n.irs-handle.type_last {\n  z-index: 2;\n}\n.irs-min,\n.irs-max {\n  position: absolute;\n  display: block;\n  cursor: default;\n}\n.irs-min {\n  left: 0;\n}\n.irs-max {\n  right: 0;\n}\n.irs-from,\n.irs-to,\n.irs-single {\n  position: absolute;\n  display: block;\n  top: 0;\n  left: 0;\n  cursor: default;\n  white-space: nowrap;\n}\n.irs-grid {\n  position: absolute;\n  display: none;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 20px;\n}\n.irs-with-grid .irs-grid {\n  display: block;\n}\n.irs-grid-pol {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 1px;\n  height: 8px;\n  background: #000;\n}\n.irs-grid-pol.small {\n  height: 4px;\n}\n.irs-grid-text {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  white-space: nowrap;\n  text-align: center;\n  font-size: 9px;\n  line-height: 9px;\n  padding: 0 3px;\n  color: #000;\n}\n.irs-disable-mask {\n  position: absolute;\n  display: block;\n  top: 0;\n  left: -1%;\n  width: 102%;\n  height: 100%;\n  cursor: default;\n  background: rgba(0, 0, 0, 0);\n  z-index: 2;\n}\n.lt-ie9 .irs-disable-mask {\n  background: #000;\n  filter: alpha(opacity=0);\n  cursor: not-allowed;\n}\n.irs-disabled {\n  opacity: 0.4;\n}\n.irs-hidden-input {\n  position: absolute !important;\n  display: block !important;\n  top: 0 !important;\n  left: 0 !important;\n  width: 0 !important;\n  height: 0 !important;\n  font-size: 0 !important;\n  line-height: 0 !important;\n  padding: 0 !important;\n  margin: 0 !important;\n  overflow: hidden;\n  outline: none !important;\n  z-index: -9999 !important;\n  background: none !important;\n  border-style: solid !important;\n  border-color: transparent !important;\n}\n.irs--flat {\n  height: 40px;\n}\n.irs--flat.irs-with-grid {\n  height: 60px;\n}\n.irs--flat .irs-line {\n  top: 25px;\n  height: 12px;\n  background-color: #e1e4e9;\n  border-radius: 4px;\n}\n.irs--flat .irs-bar {\n  top: 25px;\n  height: 12px;\n  background-color: #ed5565;\n}\n.irs--flat .irs-bar--single {\n  border-radius: 4px 0 0 4px;\n}\n.irs--flat .irs-shadow {\n  height: 1px;\n  bottom: 16px;\n  background-color: #e1e4e9;\n}\n.irs--flat .irs-handle {\n  top: 22px;\n  width: 16px;\n  height: 18px;\n  background-color: transparent;\n}\n.irs--flat .irs-handle > i:first-child {\n  position: absolute;\n  display: block;\n  top: 0;\n  left: 50%;\n  width: 2px;\n  height: 100%;\n  margin-left: -1px;\n  background-color: #da4453;\n}\n.irs--flat .irs-handle.state_hover > i:first-child,\n.irs--flat .irs-handle:hover > i:first-child {\n  background-color: #a43540;\n}\n.irs--flat .irs-min,\n.irs--flat .irs-max {\n  top: 0;\n  padding: 1px 3px;\n  color: #999;\n  font-size: 10px;\n  line-height: 1.333;\n  text-shadow: none;\n  background-color: #e1e4e9;\n  border-radius: 4px;\n}\n.irs--flat .irs-from,\n.irs--flat .irs-to,\n.irs--flat .irs-single {\n  color: white;\n  font-size: 10px;\n  line-height: 1.333;\n  text-shadow: none;\n  padding: 1px 5px;\n  background-color: #ed5565;\n  border-radius: 4px;\n}\n.irs--flat .irs-from:before,\n.irs--flat .irs-to:before,\n.irs--flat .irs-single:before {\n  position: absolute;\n  display: block;\n  content: \"\";\n  bottom: -6px;\n  left: 50%;\n  width: 0;\n  height: 0;\n  margin-left: -3px;\n  overflow: hidden;\n  border: 3px solid transparent;\n  border-top-color: #ed5565;\n}\n.irs--flat .irs-grid-pol {\n  background-color: #e1e4e9;\n}\n.irs--flat .irs-grid-text {\n  color: #999;\n}\n.irs--big {\n  height: 55px;\n}\n.irs--big.irs-with-grid {\n  height: 70px;\n}\n.irs--big .irs-line {\n  top: 33px;\n  height: 12px;\n  background-color: white;\n  background: linear-gradient(to bottom, #ddd -50%, white 150%);\n  border: 1px solid #ccc;\n  border-radius: 12px;\n}\n.irs--big .irs-bar {\n  top: 33px;\n  height: 12px;\n  background-color: #92bce0;\n  border: 1px solid #428bca;\n  background: linear-gradient(to bottom, #ffffff 0%, #428bca 30%, #b9d4ec 100%);\n  box-shadow: inset 0 0 1px 1px rgba(255, 255, 255, 0.5);\n}\n.irs--big .irs-bar--single {\n  border-radius: 12px 0 0 12px;\n}\n.irs--big .irs-shadow {\n  height: 1px;\n  bottom: 16px;\n  background-color: rgba(66, 139, 202, 0.5);\n}\n.irs--big .irs-handle {\n  top: 25px;\n  width: 30px;\n  height: 30px;\n  border: 1px solid rgba(0, 0, 0, 0.3);\n  background-color: #cbcfd5;\n  background: linear-gradient(to bottom, white 0%, #B4B9BE 30%, white 100%);\n  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2), inset 0 0 3px 1px white;\n  border-radius: 30px;\n}\n.irs--big .irs-handle.state_hover,\n.irs--big .irs-handle:hover {\n  border-color: rgba(0, 0, 0, 0.45);\n  background-color: #939ba7;\n  background: linear-gradient(to bottom, white 0%, #919BA5 30%, white 100%);\n}\n.irs--big .irs-min,\n.irs--big .irs-max {\n  top: 0;\n  padding: 1px 5px;\n  color: white;\n  text-shadow: none;\n  background-color: #9f9f9f;\n  border-radius: 3px;\n}\n.irs--big .irs-from,\n.irs--big .irs-to,\n.irs--big .irs-single {\n  color: white;\n  text-shadow: none;\n  padding: 1px 5px;\n  background-color: #428bca;\n  background: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);\n  border-radius: 3px;\n}\n.irs--big .irs-grid-pol {\n  background-color: #428bca;\n}\n.irs--big .irs-grid-text {\n  color: #428bca;\n}\n.irs--modern {\n  height: 55px;\n}\n.irs--modern.irs-with-grid {\n  height: 55px;\n}\n.irs--modern .irs-line {\n  top: 25px;\n  height: 5px;\n  background-color: #d1d6e0;\n  background: linear-gradient(to bottom, #e0e4ea 0%, #d1d6e0 100%);\n  border: 1px solid #a3adc1;\n  border-bottom-width: 0;\n  border-radius: 5px;\n}\n.irs--modern .irs-bar {\n  top: 25px;\n  height: 5px;\n  background: #20b426;\n  background: linear-gradient(to bottom, #20b426 0%, #18891d 100%);\n}\n.irs--modern .irs-bar--single {\n  border-radius: 5px 0 0 5px;\n}\n.irs--modern .irs-shadow {\n  height: 1px;\n  bottom: 21px;\n  background-color: rgba(209, 214, 224, 0.5);\n}\n.irs--modern .irs-handle {\n  top: 37px;\n  width: 12px;\n  height: 13px;\n  border: 1px solid #a3adc1;\n  border-top-width: 0;\n  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);\n  border-radius: 0 0 3px 3px;\n}\n.irs--modern .irs-handle > i:nth-child(1) {\n  position: absolute;\n  display: block;\n  top: -4px;\n  left: 1px;\n  width: 6px;\n  height: 6px;\n  border: 1px solid #a3adc1;\n  background: white;\n  transform: rotate(45deg);\n}\n.irs--modern .irs-handle > i:nth-child(2) {\n  position: absolute;\n  display: block;\n  box-sizing: border-box;\n  top: 0;\n  left: 0;\n  width: 10px;\n  height: 12px;\n  background: #e9e6e6;\n  background: linear-gradient(to bottom, white 0%, #e9e6e6 100%);\n  border-radius: 0 0 3px 3px;\n}\n.irs--modern .irs-handle > i:nth-child(3) {\n  position: absolute;\n  display: block;\n  box-sizing: border-box;\n  top: 3px;\n  left: 3px;\n  width: 4px;\n  height: 5px;\n  border-left: 1px solid #a3adc1;\n  border-right: 1px solid #a3adc1;\n}\n.irs--modern .irs-handle.state_hover,\n.irs--modern .irs-handle:hover {\n  border-color: #7685a2;\n  background: #c3c7cd;\n  background: linear-gradient(to bottom, #ffffff 0%, #919ba5 30%, #ffffff 100%);\n}\n.irs--modern .irs-handle.state_hover > i:nth-child(1),\n.irs--modern .irs-handle:hover > i:nth-child(1) {\n  border-color: #7685a2;\n}\n.irs--modern .irs-handle.state_hover > i:nth-child(3),\n.irs--modern .irs-handle:hover > i:nth-child(3) {\n  border-color: #48536a;\n}\n.irs--modern .irs-min,\n.irs--modern .irs-max {\n  top: 0;\n  font-size: 10px;\n  line-height: 1.333;\n  text-shadow: none;\n  padding: 1px 5px;\n  color: white;\n  background-color: #d1d6e0;\n  border-radius: 5px;\n}\n.irs--modern .irs-from,\n.irs--modern .irs-to,\n.irs--modern .irs-single {\n  font-size: 10px;\n  line-height: 1.333;\n  text-shadow: none;\n  padding: 1px 5px;\n  background-color: #20b426;\n  color: white;\n  border-radius: 5px;\n}\n.irs--modern .irs-from:before,\n.irs--modern .irs-to:before,\n.irs--modern .irs-single:before {\n  position: absolute;\n  display: block;\n  content: \"\";\n  bottom: -6px;\n  left: 50%;\n  width: 0;\n  height: 0;\n  margin-left: -3px;\n  overflow: hidden;\n  border: 3px solid transparent;\n  border-top-color: #20b426;\n}\n.irs--modern .irs-grid {\n  height: 25px;\n}\n.irs--modern .irs-grid-pol {\n  background-color: #dedede;\n}\n.irs--modern .irs-grid-text {\n  color: silver;\n  font-size: 13px;\n}\n.irs--sharp {\n  height: 50px;\n  font-size: 12px;\n  line-height: 1;\n}\n.irs--sharp.irs-with-grid {\n  height: 57px;\n}\n.irs--sharp .irs-line {\n  top: 30px;\n  height: 2px;\n  background-color: black;\n  border-radius: 2px;\n}\n.irs--sharp .irs-bar {\n  top: 30px;\n  height: 2px;\n  background-color: #ee22fa;\n}\n.irs--sharp .irs-bar--single {\n  border-radius: 2px 0 0 2px;\n}\n.irs--sharp .irs-shadow {\n  height: 1px;\n  bottom: 21px;\n  background-color: rgba(0, 0, 0, 0.5);\n}\n.irs--sharp .irs-handle {\n  top: 25px;\n  width: 10px;\n  height: 10px;\n  background-color: #a804b2;\n}\n.irs--sharp .irs-handle > i:first-child {\n  position: absolute;\n  display: block;\n  top: 100%;\n  left: 0;\n  width: 0;\n  height: 0;\n  border: 5px solid transparent;\n  border-top-color: #a804b2;\n}\n.irs--sharp .irs-handle.state_hover,\n.irs--sharp .irs-handle:hover {\n  background-color: black;\n}\n.irs--sharp .irs-handle.state_hover > i:first-child,\n.irs--sharp .irs-handle:hover > i:first-child {\n  border-top-color: black;\n}\n.irs--sharp .irs-min,\n.irs--sharp .irs-max {\n  color: white;\n  font-size: 14px;\n  line-height: 1;\n  top: 0;\n  padding: 3px 4px;\n  opacity: 0.4;\n  background-color: #a804b2;\n  border-radius: 2px;\n}\n.irs--sharp .irs-from,\n.irs--sharp .irs-to,\n.irs--sharp .irs-single {\n  font-size: 14px;\n  line-height: 1;\n  text-shadow: none;\n  padding: 3px 4px;\n  background-color: #a804b2;\n  color: white;\n  border-radius: 2px;\n}\n.irs--sharp .irs-from:before,\n.irs--sharp .irs-to:before,\n.irs--sharp .irs-single:before {\n  position: absolute;\n  display: block;\n  content: \"\";\n  bottom: -6px;\n  left: 50%;\n  width: 0;\n  height: 0;\n  margin-left: -3px;\n  overflow: hidden;\n  border: 3px solid transparent;\n  border-top-color: #a804b2;\n}\n.irs--sharp .irs-grid {\n  height: 25px;\n}\n.irs--sharp .irs-grid-pol {\n  background-color: #dedede;\n}\n.irs--sharp .irs-grid-text {\n  color: silver;\n  font-size: 13px;\n}\n.irs--round {\n  height: 50px;\n}\n.irs--round.irs-with-grid {\n  height: 65px;\n}\n.irs--round .irs-line {\n  top: 36px;\n  height: 4px;\n  background-color: #dee4ec;\n  border-radius: 4px;\n}\n.irs--round .irs-bar {\n  top: 36px;\n  height: 4px;\n  background-color: #006cfa;\n}\n.irs--round .irs-bar--single {\n  border-radius: 4px 0 0 4px;\n}\n.irs--round .irs-shadow {\n  height: 4px;\n  bottom: 21px;\n  background-color: rgba(222, 228, 236, 0.5);\n}\n.irs--round .irs-handle {\n  top: 26px;\n  width: 24px;\n  height: 24px;\n  border: 4px solid #006cfa;\n  background-color: white;\n  border-radius: 24px;\n  box-shadow: 0 1px 3px rgba(0, 0, 255, 0.3);\n}\n.irs--round .irs-handle.state_hover,\n.irs--round .irs-handle:hover {\n  background-color: #f0f6ff;\n}\n.irs--round .irs-min,\n.irs--round .irs-max {\n  color: #333;\n  font-size: 14px;\n  line-height: 1;\n  top: 0;\n  padding: 3px 5px;\n  background-color: rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n}\n.irs--round .irs-from,\n.irs--round .irs-to,\n.irs--round .irs-single {\n  font-size: 14px;\n  line-height: 1;\n  text-shadow: none;\n  padding: 3px 5px;\n  background-color: #006cfa;\n  color: white;\n  border-radius: 4px;\n}\n.irs--round .irs-from:before,\n.irs--round .irs-to:before,\n.irs--round .irs-single:before {\n  position: absolute;\n  display: block;\n  content: \"\";\n  bottom: -6px;\n  left: 50%;\n  width: 0;\n  height: 0;\n  margin-left: -3px;\n  overflow: hidden;\n  border: 3px solid transparent;\n  border-top-color: #006cfa;\n}\n.irs--round .irs-grid {\n  height: 25px;\n}\n.irs--round .irs-grid-pol {\n  background-color: #dedede;\n}\n.irs--round .irs-grid-text {\n  color: silver;\n  font-size: 13px;\n}\n.irs--square {\n  height: 50px;\n}\n.irs--square.irs-with-grid {\n  height: 60px;\n}\n.irs--square .irs-line {\n  top: 31px;\n  height: 4px;\n  background-color: #dedede;\n}\n.irs--square .irs-bar {\n  top: 31px;\n  height: 4px;\n  background-color: black;\n}\n.irs--square .irs-shadow {\n  height: 2px;\n  bottom: 21px;\n  background-color: #dedede;\n}\n.irs--square .irs-handle {\n  top: 25px;\n  width: 16px;\n  height: 16px;\n  border: 3px solid black;\n  background-color: white;\n  -webkit-transform: rotate(45deg);\n  -ms-transform: rotate(45deg);\n  transform: rotate(45deg);\n}\n.irs--square .irs-handle.state_hover,\n.irs--square .irs-handle:hover {\n  background-color: #f0f6ff;\n}\n.irs--square .irs-min,\n.irs--square .irs-max {\n  color: #333;\n  font-size: 14px;\n  line-height: 1;\n  top: 0;\n  padding: 3px 5px;\n  background-color: rgba(0, 0, 0, 0.1);\n}\n.irs--square .irs-from,\n.irs--square .irs-to,\n.irs--square .irs-single {\n  font-size: 14px;\n  line-height: 1;\n  text-shadow: none;\n  padding: 3px 5px;\n  background-color: black;\n  color: white;\n}\n.irs--square .irs-grid {\n  height: 25px;\n}\n.irs--square .irs-grid-pol {\n  background-color: #dedede;\n}\n.irs--square .irs-grid-text {\n  color: silver;\n  font-size: 11px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/ion-rangeslider/js/ion.rangeSlider.js",
    "content": "// Ion.RangeSlider\n// version 2.3.1 Build: 382\n// © Denis Ineshin, 2019\n// https://github.com/IonDen\n//\n// Project page:    http://ionden.com/a/plugins/ion.rangeSlider/en.html\n// GitHub page:     https://github.com/IonDen/ion.rangeSlider\n//\n// Released under MIT licence:\n// http://ionden.com/a/plugins/licence-en.html\n// =====================================================================================================================\n\n;(function(factory) {\n    if ((typeof jQuery === 'undefined' || !jQuery) && typeof define === \"function\" && define.amd) {\n        define([\"jquery\"], function (jQuery) {\n            return factory(jQuery, document, window, navigator);\n        });\n    } else if ((typeof jQuery === 'undefined' || !jQuery) && typeof exports === \"object\") {\n        factory(require(\"jquery\"), document, window, navigator);\n    } else {\n        factory(jQuery, document, window, navigator);\n    }\n} (function ($, document, window, navigator, undefined) {\n    \"use strict\";\n\n    // =================================================================================================================\n    // Service\n\n    var plugin_count = 0;\n\n    // IE8 fix\n    var is_old_ie = (function () {\n        var n = navigator.userAgent,\n            r = /msie\\s\\d+/i,\n            v;\n        if (n.search(r) > 0) {\n            v = r.exec(n).toString();\n            v = v.split(\" \")[1];\n            if (v < 9) {\n                $(\"html\").addClass(\"lt-ie9\");\n                return true;\n            }\n        }\n        return false;\n    } ());\n    if (!Function.prototype.bind) {\n        Function.prototype.bind = function bind(that) {\n\n            var target = this;\n            var slice = [].slice;\n\n            if (typeof target != \"function\") {\n                throw new TypeError();\n            }\n\n            var args = slice.call(arguments, 1),\n                bound = function () {\n\n                    if (this instanceof bound) {\n\n                        var F = function(){};\n                        F.prototype = target.prototype;\n                        var self = new F();\n\n                        var result = target.apply(\n                            self,\n                            args.concat(slice.call(arguments))\n                        );\n                        if (Object(result) === result) {\n                            return result;\n                        }\n                        return self;\n\n                    } else {\n\n                        return target.apply(\n                            that,\n                            args.concat(slice.call(arguments))\n                        );\n\n                    }\n\n                };\n\n            return bound;\n        };\n    }\n    if (!Array.prototype.indexOf) {\n        Array.prototype.indexOf = function(searchElement, fromIndex) {\n            var k;\n            if (this == null) {\n                throw new TypeError('\"this\" is null or not defined');\n            }\n            var O = Object(this);\n            var len = O.length >>> 0;\n            if (len === 0) {\n                return -1;\n            }\n            var n = +fromIndex || 0;\n            if (Math.abs(n) === Infinity) {\n                n = 0;\n            }\n            if (n >= len) {\n                return -1;\n            }\n            k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n            while (k < len) {\n                if (k in O && O[k] === searchElement) {\n                    return k;\n                }\n                k++;\n            }\n            return -1;\n        };\n    }\n\n\n\n    // =================================================================================================================\n    // Template\n\n    var base_html =\n        '<span class=\"irs\">' +\n        '<span class=\"irs-line\" tabindex=\"0\"></span>' +\n        '<span class=\"irs-min\">0</span><span class=\"irs-max\">1</span>' +\n        '<span class=\"irs-from\">0</span><span class=\"irs-to\">0</span><span class=\"irs-single\">0</span>' +\n        '</span>' +\n        '<span class=\"irs-grid\"></span>';\n\n    var single_html =\n        '<span class=\"irs-bar irs-bar--single\"></span>' +\n        '<span class=\"irs-shadow shadow-single\"></span>' +\n        '<span class=\"irs-handle single\"><i></i><i></i><i></i></span>';\n\n    var double_html =\n        '<span class=\"irs-bar\"></span>' +\n        '<span class=\"irs-shadow shadow-from\"></span>' +\n        '<span class=\"irs-shadow shadow-to\"></span>' +\n        '<span class=\"irs-handle from\"><i></i><i></i><i></i></span>' +\n        '<span class=\"irs-handle to\"><i></i><i></i><i></i></span>';\n\n    var disable_html =\n        '<span class=\"irs-disable-mask\"></span>';\n\n\n\n    // =================================================================================================================\n    // Core\n\n    /**\n     * Main plugin constructor\n     *\n     * @param input {Object} link to base input element\n     * @param options {Object} slider config\n     * @param plugin_count {Number}\n     * @constructor\n     */\n    var IonRangeSlider = function (input, options, plugin_count) {\n        this.VERSION = \"2.3.1\";\n        this.input = input;\n        this.plugin_count = plugin_count;\n        this.current_plugin = 0;\n        this.calc_count = 0;\n        this.update_tm = 0;\n        this.old_from = 0;\n        this.old_to = 0;\n        this.old_min_interval = null;\n        this.raf_id = null;\n        this.dragging = false;\n        this.force_redraw = false;\n        this.no_diapason = false;\n        this.has_tab_index = true;\n        this.is_key = false;\n        this.is_update = false;\n        this.is_start = true;\n        this.is_finish = false;\n        this.is_active = false;\n        this.is_resize = false;\n        this.is_click = false;\n\n        options = options || {};\n\n        // cache for links to all DOM elements\n        this.$cache = {\n            win: $(window),\n            body: $(document.body),\n            input: $(input),\n            cont: null,\n            rs: null,\n            min: null,\n            max: null,\n            from: null,\n            to: null,\n            single: null,\n            bar: null,\n            line: null,\n            s_single: null,\n            s_from: null,\n            s_to: null,\n            shad_single: null,\n            shad_from: null,\n            shad_to: null,\n            edge: null,\n            grid: null,\n            grid_labels: []\n        };\n\n        // storage for measure variables\n        this.coords = {\n            // left\n            x_gap: 0,\n            x_pointer: 0,\n\n            // width\n            w_rs: 0,\n            w_rs_old: 0,\n            w_handle: 0,\n\n            // percents\n            p_gap: 0,\n            p_gap_left: 0,\n            p_gap_right: 0,\n            p_step: 0,\n            p_pointer: 0,\n            p_handle: 0,\n            p_single_fake: 0,\n            p_single_real: 0,\n            p_from_fake: 0,\n            p_from_real: 0,\n            p_to_fake: 0,\n            p_to_real: 0,\n            p_bar_x: 0,\n            p_bar_w: 0,\n\n            // grid\n            grid_gap: 0,\n            big_num: 0,\n            big: [],\n            big_w: [],\n            big_p: [],\n            big_x: []\n        };\n\n        // storage for labels measure variables\n        this.labels = {\n            // width\n            w_min: 0,\n            w_max: 0,\n            w_from: 0,\n            w_to: 0,\n            w_single: 0,\n\n            // percents\n            p_min: 0,\n            p_max: 0,\n            p_from_fake: 0,\n            p_from_left: 0,\n            p_to_fake: 0,\n            p_to_left: 0,\n            p_single_fake: 0,\n            p_single_left: 0\n        };\n\n\n\n        /**\n         * get and validate config\n         */\n        var $inp = this.$cache.input,\n            val = $inp.prop(\"value\"),\n            config, config_from_data, prop;\n\n        // default config\n        config = {\n            skin: \"flat\",\n            type: \"single\",\n\n            min: 10,\n            max: 100,\n            from: null,\n            to: null,\n            step: 1,\n\n            min_interval: 0,\n            max_interval: 0,\n            drag_interval: false,\n\n            values: [],\n            p_values: [],\n\n            from_fixed: false,\n            from_min: null,\n            from_max: null,\n            from_shadow: false,\n\n            to_fixed: false,\n            to_min: null,\n            to_max: null,\n            to_shadow: false,\n\n            prettify_enabled: true,\n            prettify_separator: \" \",\n            prettify: null,\n\n            force_edges: false,\n\n            keyboard: true,\n\n            grid: false,\n            grid_margin: true,\n            grid_num: 4,\n            grid_snap: false,\n\n            hide_min_max: false,\n            hide_from_to: false,\n\n            prefix: \"\",\n            postfix: \"\",\n            max_postfix: \"\",\n            decorate_both: true,\n            values_separator: \" — \",\n\n            input_values_separator: \";\",\n\n            disable: false,\n            block: false,\n\n            extra_classes: \"\",\n\n            scope: null,\n            onStart: null,\n            onChange: null,\n            onFinish: null,\n            onUpdate: null\n        };\n\n\n        // check if base element is input\n        if ($inp[0].nodeName !== \"INPUT\") {\n            console && console.warn && console.warn(\"Base element should be <input>!\", $inp[0]);\n        }\n\n\n        // config from data-attributes extends js config\n        config_from_data = {\n            skin: $inp.data(\"skin\"),\n            type: $inp.data(\"type\"),\n\n            min: $inp.data(\"min\"),\n            max: $inp.data(\"max\"),\n            from: $inp.data(\"from\"),\n            to: $inp.data(\"to\"),\n            step: $inp.data(\"step\"),\n\n            min_interval: $inp.data(\"minInterval\"),\n            max_interval: $inp.data(\"maxInterval\"),\n            drag_interval: $inp.data(\"dragInterval\"),\n\n            values: $inp.data(\"values\"),\n\n            from_fixed: $inp.data(\"fromFixed\"),\n            from_min: $inp.data(\"fromMin\"),\n            from_max: $inp.data(\"fromMax\"),\n            from_shadow: $inp.data(\"fromShadow\"),\n\n            to_fixed: $inp.data(\"toFixed\"),\n            to_min: $inp.data(\"toMin\"),\n            to_max: $inp.data(\"toMax\"),\n            to_shadow: $inp.data(\"toShadow\"),\n\n            prettify_enabled: $inp.data(\"prettifyEnabled\"),\n            prettify_separator: $inp.data(\"prettifySeparator\"),\n\n            force_edges: $inp.data(\"forceEdges\"),\n\n            keyboard: $inp.data(\"keyboard\"),\n\n            grid: $inp.data(\"grid\"),\n            grid_margin: $inp.data(\"gridMargin\"),\n            grid_num: $inp.data(\"gridNum\"),\n            grid_snap: $inp.data(\"gridSnap\"),\n\n            hide_min_max: $inp.data(\"hideMinMax\"),\n            hide_from_to: $inp.data(\"hideFromTo\"),\n\n            prefix: $inp.data(\"prefix\"),\n            postfix: $inp.data(\"postfix\"),\n            max_postfix: $inp.data(\"maxPostfix\"),\n            decorate_both: $inp.data(\"decorateBoth\"),\n            values_separator: $inp.data(\"valuesSeparator\"),\n\n            input_values_separator: $inp.data(\"inputValuesSeparator\"),\n\n            disable: $inp.data(\"disable\"),\n            block: $inp.data(\"block\"),\n\n            extra_classes: $inp.data(\"extraClasses\"),\n        };\n        config_from_data.values = config_from_data.values && config_from_data.values.split(\",\");\n\n        for (prop in config_from_data) {\n            if (config_from_data.hasOwnProperty(prop)) {\n                if (config_from_data[prop] === undefined || config_from_data[prop] === \"\") {\n                    delete config_from_data[prop];\n                }\n            }\n        }\n\n\n        // input value extends default config\n        if (val !== undefined && val !== \"\") {\n            val = val.split(config_from_data.input_values_separator || options.input_values_separator || \";\");\n\n            if (val[0] && val[0] == +val[0]) {\n                val[0] = +val[0];\n            }\n            if (val[1] && val[1] == +val[1]) {\n                val[1] = +val[1];\n            }\n\n            if (options && options.values && options.values.length) {\n                config.from = val[0] && options.values.indexOf(val[0]);\n                config.to = val[1] && options.values.indexOf(val[1]);\n            } else {\n                config.from = val[0] && +val[0];\n                config.to = val[1] && +val[1];\n            }\n        }\n\n\n\n        // js config extends default config\n        $.extend(config, options);\n\n\n        // data config extends config\n        $.extend(config, config_from_data);\n        this.options = config;\n\n\n\n        // validate config, to be sure that all data types are correct\n        this.update_check = {};\n        this.validate();\n\n\n\n        // default result object, returned to callbacks\n        this.result = {\n            input: this.$cache.input,\n            slider: null,\n\n            min: this.options.min,\n            max: this.options.max,\n\n            from: this.options.from,\n            from_percent: 0,\n            from_value: null,\n\n            to: this.options.to,\n            to_percent: 0,\n            to_value: null\n        };\n\n\n\n        this.init();\n    };\n\n    IonRangeSlider.prototype = {\n\n        /**\n         * Starts or updates the plugin instance\n         *\n         * @param [is_update] {boolean}\n         */\n        init: function (is_update) {\n            this.no_diapason = false;\n            this.coords.p_step = this.convertToPercent(this.options.step, true);\n\n            this.target = \"base\";\n\n            this.toggleInput();\n            this.append();\n            this.setMinMax();\n\n            if (is_update) {\n                this.force_redraw = true;\n                this.calc(true);\n\n                // callbacks called\n                this.callOnUpdate();\n            } else {\n                this.force_redraw = true;\n                this.calc(true);\n\n                // callbacks called\n                this.callOnStart();\n            }\n\n            this.updateScene();\n        },\n\n        /**\n         * Appends slider template to a DOM\n         */\n        append: function () {\n            var container_html = '<span class=\"irs irs--' + this.options.skin + ' js-irs-' + this.plugin_count + ' ' + this.options.extra_classes + '\"></span>';\n            this.$cache.input.before(container_html);\n            this.$cache.input.prop(\"readonly\", true);\n            this.$cache.cont = this.$cache.input.prev();\n            this.result.slider = this.$cache.cont;\n\n            this.$cache.cont.html(base_html);\n            this.$cache.rs = this.$cache.cont.find(\".irs\");\n            this.$cache.min = this.$cache.cont.find(\".irs-min\");\n            this.$cache.max = this.$cache.cont.find(\".irs-max\");\n            this.$cache.from = this.$cache.cont.find(\".irs-from\");\n            this.$cache.to = this.$cache.cont.find(\".irs-to\");\n            this.$cache.single = this.$cache.cont.find(\".irs-single\");\n            this.$cache.line = this.$cache.cont.find(\".irs-line\");\n            this.$cache.grid = this.$cache.cont.find(\".irs-grid\");\n\n            if (this.options.type === \"single\") {\n                this.$cache.cont.append(single_html);\n                this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n                this.$cache.edge = this.$cache.cont.find(\".irs-bar-edge\");\n                this.$cache.s_single = this.$cache.cont.find(\".single\");\n                this.$cache.from[0].style.visibility = \"hidden\";\n                this.$cache.to[0].style.visibility = \"hidden\";\n                this.$cache.shad_single = this.$cache.cont.find(\".shadow-single\");\n            } else {\n                this.$cache.cont.append(double_html);\n                this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n                this.$cache.s_from = this.$cache.cont.find(\".from\");\n                this.$cache.s_to = this.$cache.cont.find(\".to\");\n                this.$cache.shad_from = this.$cache.cont.find(\".shadow-from\");\n                this.$cache.shad_to = this.$cache.cont.find(\".shadow-to\");\n\n                this.setTopHandler();\n            }\n\n            if (this.options.hide_from_to) {\n                this.$cache.from[0].style.display = \"none\";\n                this.$cache.to[0].style.display = \"none\";\n                this.$cache.single[0].style.display = \"none\";\n            }\n\n            this.appendGrid();\n\n            if (this.options.disable) {\n                this.appendDisableMask();\n                this.$cache.input[0].disabled = true;\n            } else {\n                this.$cache.input[0].disabled = false;\n                this.removeDisableMask();\n                this.bindEvents();\n            }\n\n            // block only if not disabled\n            if (!this.options.disable) {\n                if (this.options.block) {\n                    this.appendDisableMask();\n                } else {\n                    this.removeDisableMask();\n                }\n            }\n\n            if (this.options.drag_interval) {\n                this.$cache.bar[0].style.cursor = \"ew-resize\";\n            }\n        },\n\n        /**\n         * Determine which handler has a priority\n         * works only for double slider type\n         */\n        setTopHandler: function () {\n            var min = this.options.min,\n                max = this.options.max,\n                from = this.options.from,\n                to = this.options.to;\n\n            if (from > min && to === max) {\n                this.$cache.s_from.addClass(\"type_last\");\n            } else if (to < max) {\n                this.$cache.s_to.addClass(\"type_last\");\n            }\n        },\n\n        /**\n         * Determine which handles was clicked last\n         * and which handler should have hover effect\n         *\n         * @param target {String}\n         */\n        changeLevel: function (target) {\n            switch (target) {\n                case \"single\":\n                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);\n                    this.$cache.s_single.addClass(\"state_hover\");\n                    break;\n                case \"from\":\n                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n                    this.$cache.s_from.addClass(\"state_hover\");\n                    this.$cache.s_from.addClass(\"type_last\");\n                    this.$cache.s_to.removeClass(\"type_last\");\n                    break;\n                case \"to\":\n                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);\n                    this.$cache.s_to.addClass(\"state_hover\");\n                    this.$cache.s_to.addClass(\"type_last\");\n                    this.$cache.s_from.removeClass(\"type_last\");\n                    break;\n                case \"both\":\n                    this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n                    this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);\n                    this.$cache.s_to.removeClass(\"type_last\");\n                    this.$cache.s_from.removeClass(\"type_last\");\n                    break;\n            }\n        },\n\n        /**\n         * Then slider is disabled\n         * appends extra layer with opacity\n         */\n        appendDisableMask: function () {\n            this.$cache.cont.append(disable_html);\n            this.$cache.cont.addClass(\"irs-disabled\");\n        },\n\n        /**\n         * Then slider is not disabled\n         * remove disable mask\n         */\n        removeDisableMask: function () {\n            this.$cache.cont.remove(\".irs-disable-mask\");\n            this.$cache.cont.removeClass(\"irs-disabled\");\n        },\n\n        /**\n         * Remove slider instance\n         * and unbind all events\n         */\n        remove: function () {\n            this.$cache.cont.remove();\n            this.$cache.cont = null;\n\n            this.$cache.line.off(\"keydown.irs_\" + this.plugin_count);\n\n            this.$cache.body.off(\"touchmove.irs_\" + this.plugin_count);\n            this.$cache.body.off(\"mousemove.irs_\" + this.plugin_count);\n\n            this.$cache.win.off(\"touchend.irs_\" + this.plugin_count);\n            this.$cache.win.off(\"mouseup.irs_\" + this.plugin_count);\n\n            if (is_old_ie) {\n                this.$cache.body.off(\"mouseup.irs_\" + this.plugin_count);\n                this.$cache.body.off(\"mouseleave.irs_\" + this.plugin_count);\n            }\n\n            this.$cache.grid_labels = [];\n            this.coords.big = [];\n            this.coords.big_w = [];\n            this.coords.big_p = [];\n            this.coords.big_x = [];\n\n            cancelAnimationFrame(this.raf_id);\n        },\n\n        /**\n         * bind all slider events\n         */\n        bindEvents: function () {\n            if (this.no_diapason) {\n                return;\n            }\n\n            this.$cache.body.on(\"touchmove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n            this.$cache.body.on(\"mousemove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n\n            this.$cache.win.on(\"touchend.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n            this.$cache.win.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n\n            this.$cache.line.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n            this.$cache.line.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n            this.$cache.line.on(\"focus.irs_\" + this.plugin_count, this.pointerFocus.bind(this));\n\n            if (this.options.drag_interval && this.options.type === \"double\") {\n                this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n                this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n            } else {\n                this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n                this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n            }\n\n            if (this.options.type === \"single\") {\n                this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n                this.$cache.s_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n                this.$cache.shad_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n                this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n                this.$cache.s_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n                this.$cache.edge.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n                this.$cache.shad_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n            } else {\n                this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n                this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n\n                this.$cache.from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n                this.$cache.s_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n                this.$cache.to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n                this.$cache.s_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n                this.$cache.shad_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n                this.$cache.shad_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n                this.$cache.from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n                this.$cache.s_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n                this.$cache.to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n                this.$cache.s_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n                this.$cache.shad_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n                this.$cache.shad_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n            }\n\n            if (this.options.keyboard) {\n                this.$cache.line.on(\"keydown.irs_\" + this.plugin_count, this.key.bind(this, \"keyboard\"));\n            }\n\n            if (is_old_ie) {\n                this.$cache.body.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n                this.$cache.body.on(\"mouseleave.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n            }\n        },\n\n        /**\n         * Focus with tabIndex\n         *\n         * @param e {Object} event object\n         */\n        pointerFocus: function (e) {\n            if (!this.target) {\n                var x;\n                var $handle;\n\n                if (this.options.type === \"single\") {\n                    $handle = this.$cache.single;\n                } else {\n                    $handle = this.$cache.from;\n                }\n\n                x = $handle.offset().left;\n                x += ($handle.width() / 2) - 1;\n\n                this.pointerClick(\"single\", {preventDefault: function () {}, pageX: x});\n            }\n        },\n\n        /**\n         * Mousemove or touchmove\n         * only for handlers\n         *\n         * @param e {Object} event object\n         */\n        pointerMove: function (e) {\n            if (!this.dragging) {\n                return;\n            }\n\n            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n            this.coords.x_pointer = x - this.coords.x_gap;\n\n            this.calc();\n        },\n\n        /**\n         * Mouseup or touchend\n         * only for handlers\n         *\n         * @param e {Object} event object\n         */\n        pointerUp: function (e) {\n            if (this.current_plugin !== this.plugin_count) {\n                return;\n            }\n\n            if (this.is_active) {\n                this.is_active = false;\n            } else {\n                return;\n            }\n\n            this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\");\n\n            this.force_redraw = true;\n\n            if (is_old_ie) {\n                $(\"*\").prop(\"unselectable\", false);\n            }\n\n            this.updateScene();\n            this.restoreOriginalMinInterval();\n\n            // callbacks call\n            if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {\n                this.callOnFinish();\n            }\n\n            this.dragging = false;\n        },\n\n        /**\n         * Mousedown or touchstart\n         * only for handlers\n         *\n         * @param target {String|null}\n         * @param e {Object} event object\n         */\n        pointerDown: function (target, e) {\n            e.preventDefault();\n            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n            if (e.button === 2) {\n                return;\n            }\n\n            if (target === \"both\") {\n                this.setTempMinInterval();\n            }\n\n            if (!target) {\n                target = this.target || \"from\";\n            }\n\n            this.current_plugin = this.plugin_count;\n            this.target = target;\n\n            this.is_active = true;\n            this.dragging = true;\n\n            this.coords.x_gap = this.$cache.rs.offset().left;\n            this.coords.x_pointer = x - this.coords.x_gap;\n\n            this.calcPointerPercent();\n            this.changeLevel(target);\n\n            if (is_old_ie) {\n                $(\"*\").prop(\"unselectable\", true);\n            }\n\n            this.$cache.line.trigger(\"focus\");\n\n            this.updateScene();\n        },\n\n        /**\n         * Mousedown or touchstart\n         * for other slider elements, like diapason line\n         *\n         * @param target {String}\n         * @param e {Object} event object\n         */\n        pointerClick: function (target, e) {\n            e.preventDefault();\n            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n            if (e.button === 2) {\n                return;\n            }\n\n            this.current_plugin = this.plugin_count;\n            this.target = target;\n\n            this.is_click = true;\n            this.coords.x_gap = this.$cache.rs.offset().left;\n            this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();\n\n            this.force_redraw = true;\n            this.calc();\n\n            this.$cache.line.trigger(\"focus\");\n        },\n\n        /**\n         * Keyborard controls for focused slider\n         *\n         * @param target {String}\n         * @param e {Object} event object\n         * @returns {boolean|undefined}\n         */\n        key: function (target, e) {\n            if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\n                return;\n            }\n\n            switch (e.which) {\n                case 83: // W\n                case 65: // A\n                case 40: // DOWN\n                case 37: // LEFT\n                    e.preventDefault();\n                    this.moveByKey(false);\n                    break;\n\n                case 87: // S\n                case 68: // D\n                case 38: // UP\n                case 39: // RIGHT\n                    e.preventDefault();\n                    this.moveByKey(true);\n                    break;\n            }\n\n            return true;\n        },\n\n        /**\n         * Move by key\n         *\n         * @param right {boolean} direction to move\n         */\n        moveByKey: function (right) {\n            var p = this.coords.p_pointer;\n            var p_step = (this.options.max - this.options.min) / 100;\n            p_step = this.options.step / p_step;\n\n            if (right) {\n                p += p_step;\n            } else {\n                p -= p_step;\n            }\n\n            this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);\n            this.is_key = true;\n            this.calc();\n        },\n\n        /**\n         * Set visibility and content\n         * of Min and Max labels\n         */\n        setMinMax: function () {\n            if (!this.options) {\n                return;\n            }\n\n            if (this.options.hide_min_max) {\n                this.$cache.min[0].style.display = \"none\";\n                this.$cache.max[0].style.display = \"none\";\n                return;\n            }\n\n            if (this.options.values.length) {\n                this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));\n                this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));\n            } else {\n                var min_pretty = this._prettify(this.options.min);\n                var max_pretty = this._prettify(this.options.max);\n\n                this.result.min_pretty = min_pretty;\n                this.result.max_pretty = max_pretty;\n\n                this.$cache.min.html(this.decorate(min_pretty, this.options.min));\n                this.$cache.max.html(this.decorate(max_pretty, this.options.max));\n            }\n\n            this.labels.w_min = this.$cache.min.outerWidth(false);\n            this.labels.w_max = this.$cache.max.outerWidth(false);\n        },\n\n        /**\n         * Then dragging interval, prevent interval collapsing\n         * using min_interval option\n         */\n        setTempMinInterval: function () {\n            var interval = this.result.to - this.result.from;\n\n            if (this.old_min_interval === null) {\n                this.old_min_interval = this.options.min_interval;\n            }\n\n            this.options.min_interval = interval;\n        },\n\n        /**\n         * Restore min_interval option to original\n         */\n        restoreOriginalMinInterval: function () {\n            if (this.old_min_interval !== null) {\n                this.options.min_interval = this.old_min_interval;\n                this.old_min_interval = null;\n            }\n        },\n\n\n\n        // =============================================================================================================\n        // Calculations\n\n        /**\n         * All calculations and measures start here\n         *\n         * @param update {boolean=}\n         */\n        calc: function (update) {\n            if (!this.options) {\n                return;\n            }\n\n            this.calc_count++;\n\n            if (this.calc_count === 10 || update) {\n                this.calc_count = 0;\n                this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n                this.calcHandlePercent();\n            }\n\n            if (!this.coords.w_rs) {\n                return;\n            }\n\n            this.calcPointerPercent();\n            var handle_x = this.getHandleX();\n\n\n            if (this.target === \"both\") {\n                this.coords.p_gap = 0;\n                handle_x = this.getHandleX();\n            }\n\n            if (this.target === \"click\") {\n                this.coords.p_gap = this.coords.p_handle / 2;\n                handle_x = this.getHandleX();\n\n                if (this.options.drag_interval) {\n                    this.target = \"both_one\";\n                } else {\n                    this.target = this.chooseHandle(handle_x);\n                }\n            }\n\n            switch (this.target) {\n                case \"base\":\n                    var w = (this.options.max - this.options.min) / 100,\n                        f = (this.result.from - this.options.min) / w,\n                        t = (this.result.to - this.options.min) / w;\n\n                    this.coords.p_single_real = this.toFixed(f);\n                    this.coords.p_from_real = this.toFixed(f);\n                    this.coords.p_to_real = this.toFixed(t);\n\n                    this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n\n                    this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n                    this.target = null;\n\n                    break;\n\n                case \"single\":\n                    if (this.options.from_fixed) {\n                        break;\n                    }\n\n                    this.coords.p_single_real = this.convertToRealPercent(handle_x);\n                    this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);\n                    this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n\n                    this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n\n                    break;\n\n                case \"from\":\n                    if (this.options.from_fixed) {\n                        break;\n                    }\n\n                    this.coords.p_from_real = this.convertToRealPercent(handle_x);\n                    this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n                    if (this.coords.p_from_real > this.coords.p_to_real) {\n                        this.coords.p_from_real = this.coords.p_to_real;\n                    }\n                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n                    this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n                    this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n\n                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n                    break;\n\n                case \"to\":\n                    if (this.options.to_fixed) {\n                        break;\n                    }\n\n                    this.coords.p_to_real = this.convertToRealPercent(handle_x);\n                    this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n                    if (this.coords.p_to_real < this.coords.p_from_real) {\n                        this.coords.p_to_real = this.coords.p_from_real;\n                    }\n                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n                    this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n                    this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n\n                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n                    break;\n\n                case \"both\":\n                    if (this.options.from_fixed || this.options.to_fixed) {\n                        break;\n                    }\n\n                    handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));\n\n                    this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;\n                    this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n                    this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n                    this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;\n                    this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n                    this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n                    break;\n\n                case \"both_one\":\n                    if (this.options.from_fixed || this.options.to_fixed) {\n                        break;\n                    }\n\n                    var real_x = this.convertToRealPercent(handle_x),\n                        from = this.result.from_percent,\n                        to = this.result.to_percent,\n                        full = to - from,\n                        half = full / 2,\n                        new_from = real_x - half,\n                        new_to = real_x + half;\n\n                    if (new_from < 0) {\n                        new_from = 0;\n                        new_to = new_from + full;\n                    }\n\n                    if (new_to > 100) {\n                        new_to = 100;\n                        new_from = new_to - full;\n                    }\n\n                    this.coords.p_from_real = this.calcWithStep(new_from);\n                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n                    this.coords.p_to_real = this.calcWithStep(new_to);\n                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n                    break;\n            }\n\n            if (this.options.type === \"single\") {\n                this.coords.p_bar_x = (this.coords.p_handle / 2);\n                this.coords.p_bar_w = this.coords.p_single_fake;\n\n                this.result.from_percent = this.coords.p_single_real;\n                this.result.from = this.convertToValue(this.coords.p_single_real);\n                this.result.from_pretty = this._prettify(this.result.from);\n\n                if (this.options.values.length) {\n                    this.result.from_value = this.options.values[this.result.from];\n                }\n            } else {\n                this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));\n                this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);\n\n                this.result.from_percent = this.coords.p_from_real;\n                this.result.from = this.convertToValue(this.coords.p_from_real);\n                this.result.from_pretty = this._prettify(this.result.from);\n                this.result.to_percent = this.coords.p_to_real;\n                this.result.to = this.convertToValue(this.coords.p_to_real);\n                this.result.to_pretty = this._prettify(this.result.to);\n\n                if (this.options.values.length) {\n                    this.result.from_value = this.options.values[this.result.from];\n                    this.result.to_value = this.options.values[this.result.to];\n                }\n            }\n\n            this.calcMinMax();\n            this.calcLabels();\n        },\n\n\n        /**\n         * calculates pointer X in percent\n         */\n        calcPointerPercent: function () {\n            if (!this.coords.w_rs) {\n                this.coords.p_pointer = 0;\n                return;\n            }\n\n            if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer)  ) {\n                this.coords.x_pointer = 0;\n            } else if (this.coords.x_pointer > this.coords.w_rs) {\n                this.coords.x_pointer = this.coords.w_rs;\n            }\n\n            this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);\n        },\n\n        convertToRealPercent: function (fake) {\n            var full = 100 - this.coords.p_handle;\n            return fake / full * 100;\n        },\n\n        convertToFakePercent: function (real) {\n            var full = 100 - this.coords.p_handle;\n            return real / 100 * full;\n        },\n\n        getHandleX: function () {\n            var max = 100 - this.coords.p_handle,\n                x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);\n\n            if (x < 0) {\n                x = 0;\n            } else if (x > max) {\n                x = max;\n            }\n\n            return x;\n        },\n\n        calcHandlePercent: function () {\n            if (this.options.type === \"single\") {\n                this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n            } else {\n                this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n            }\n\n            this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\n        },\n\n        /**\n         * Find closest handle to pointer click\n         *\n         * @param real_x {Number}\n         * @returns {String}\n         */\n        chooseHandle: function (real_x) {\n            if (this.options.type === \"single\") {\n                return \"single\";\n            } else {\n                var m_point = this.coords.p_from_real + ((this.coords.p_to_real - this.coords.p_from_real) / 2);\n                if (real_x >= m_point) {\n                    return this.options.to_fixed ? \"from\" : \"to\";\n                } else {\n                    return this.options.from_fixed ? \"to\" : \"from\";\n                }\n            }\n        },\n\n        /**\n         * Measure Min and Max labels width in percent\n         */\n        calcMinMax: function () {\n            if (!this.coords.w_rs) {\n                return;\n            }\n\n            this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;\n            this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;\n        },\n\n        /**\n         * Measure labels width and X in percent\n         */\n        calcLabels: function () {\n            if (!this.coords.w_rs || this.options.hide_from_to) {\n                return;\n            }\n\n            if (this.options.type === \"single\") {\n\n                this.labels.w_single = this.$cache.single.outerWidth(false);\n                this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n                this.labels.p_single_left = this.coords.p_single_fake + (this.coords.p_handle / 2) - (this.labels.p_single_fake / 2);\n                this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n\n            } else {\n\n                this.labels.w_from = this.$cache.from.outerWidth(false);\n                this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;\n                this.labels.p_from_left = this.coords.p_from_fake + (this.coords.p_handle / 2) - (this.labels.p_from_fake / 2);\n                this.labels.p_from_left = this.toFixed(this.labels.p_from_left);\n                this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);\n\n                this.labels.w_to = this.$cache.to.outerWidth(false);\n                this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;\n                this.labels.p_to_left = this.coords.p_to_fake + (this.coords.p_handle / 2) - (this.labels.p_to_fake / 2);\n                this.labels.p_to_left = this.toFixed(this.labels.p_to_left);\n                this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);\n\n                this.labels.w_single = this.$cache.single.outerWidth(false);\n                this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n                this.labels.p_single_left = ((this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2) - (this.labels.p_single_fake / 2);\n                this.labels.p_single_left = this.toFixed(this.labels.p_single_left);\n                this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n\n            }\n        },\n\n\n\n        // =============================================================================================================\n        // Drawings\n\n        /**\n         * Main function called in request animation frame\n         * to update everything\n         */\n        updateScene: function () {\n            if (this.raf_id) {\n                cancelAnimationFrame(this.raf_id);\n                this.raf_id = null;\n            }\n\n            clearTimeout(this.update_tm);\n            this.update_tm = null;\n\n            if (!this.options) {\n                return;\n            }\n\n            this.drawHandles();\n\n            if (this.is_active) {\n                this.raf_id = requestAnimationFrame(this.updateScene.bind(this));\n            } else {\n                this.update_tm = setTimeout(this.updateScene.bind(this), 300);\n            }\n        },\n\n        /**\n         * Draw handles\n         */\n        drawHandles: function () {\n            this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n            if (!this.coords.w_rs) {\n                return;\n            }\n\n            if (this.coords.w_rs !== this.coords.w_rs_old) {\n                this.target = \"base\";\n                this.is_resize = true;\n            }\n\n            if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {\n                this.setMinMax();\n                this.calc(true);\n                this.drawLabels();\n                if (this.options.grid) {\n                    this.calcGridMargin();\n                    this.calcGridLabels();\n                }\n                this.force_redraw = true;\n                this.coords.w_rs_old = this.coords.w_rs;\n                this.drawShadow();\n            }\n\n            if (!this.coords.w_rs) {\n                return;\n            }\n\n            if (!this.dragging && !this.force_redraw && !this.is_key) {\n                return;\n            }\n\n            if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {\n\n                this.drawLabels();\n\n                this.$cache.bar[0].style.left = this.coords.p_bar_x + \"%\";\n                this.$cache.bar[0].style.width = this.coords.p_bar_w + \"%\";\n\n                if (this.options.type === \"single\") {\n                    this.$cache.bar[0].style.left = 0;\n                    this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + \"%\";\n\n                    this.$cache.s_single[0].style.left = this.coords.p_single_fake + \"%\";\n\n                    this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n                } else {\n                    this.$cache.s_from[0].style.left = this.coords.p_from_fake + \"%\";\n                    this.$cache.s_to[0].style.left = this.coords.p_to_fake + \"%\";\n\n                    if (this.old_from !== this.result.from || this.force_redraw) {\n                        this.$cache.from[0].style.left = this.labels.p_from_left + \"%\";\n                    }\n                    if (this.old_to !== this.result.to || this.force_redraw) {\n                        this.$cache.to[0].style.left = this.labels.p_to_left + \"%\";\n                    }\n\n                    this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n                }\n\n                this.writeToInput();\n\n                if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {\n                    this.$cache.input.trigger(\"change\");\n                    this.$cache.input.trigger(\"input\");\n                }\n\n                this.old_from = this.result.from;\n                this.old_to = this.result.to;\n\n                // callbacks call\n                if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {\n                    this.callOnChange();\n                }\n                if (this.is_key || this.is_click) {\n                    this.is_key = false;\n                    this.is_click = false;\n                    this.callOnFinish();\n                }\n\n                this.is_update = false;\n                this.is_resize = false;\n                this.is_finish = false;\n            }\n\n            this.is_start = false;\n            this.is_key = false;\n            this.is_click = false;\n            this.force_redraw = false;\n        },\n\n        /**\n         * Draw labels\n         * measure labels collisions\n         * collapse close labels\n         */\n        drawLabels: function () {\n            if (!this.options) {\n                return;\n            }\n\n            var values_num = this.options.values.length;\n            var p_values = this.options.p_values;\n            var text_single;\n            var text_from;\n            var text_to;\n            var from_pretty;\n            var to_pretty;\n\n            if (this.options.hide_from_to) {\n                return;\n            }\n\n            if (this.options.type === \"single\") {\n\n                if (values_num) {\n                    text_single = this.decorate(p_values[this.result.from]);\n                    this.$cache.single.html(text_single);\n                } else {\n                    from_pretty = this._prettify(this.result.from);\n\n                    text_single = this.decorate(from_pretty, this.result.from);\n                    this.$cache.single.html(text_single);\n                }\n\n                this.calcLabels();\n\n                if (this.labels.p_single_left < this.labels.p_min + 1) {\n                    this.$cache.min[0].style.visibility = \"hidden\";\n                } else {\n                    this.$cache.min[0].style.visibility = \"visible\";\n                }\n\n                if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {\n                    this.$cache.max[0].style.visibility = \"hidden\";\n                } else {\n                    this.$cache.max[0].style.visibility = \"visible\";\n                }\n\n            } else {\n\n                if (values_num) {\n\n                    if (this.options.decorate_both) {\n                        text_single = this.decorate(p_values[this.result.from]);\n                        text_single += this.options.values_separator;\n                        text_single += this.decorate(p_values[this.result.to]);\n                    } else {\n                        text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);\n                    }\n                    text_from = this.decorate(p_values[this.result.from]);\n                    text_to = this.decorate(p_values[this.result.to]);\n\n                    this.$cache.single.html(text_single);\n                    this.$cache.from.html(text_from);\n                    this.$cache.to.html(text_to);\n\n                } else {\n                    from_pretty = this._prettify(this.result.from);\n                    to_pretty = this._prettify(this.result.to);\n\n                    if (this.options.decorate_both) {\n                        text_single = this.decorate(from_pretty, this.result.from);\n                        text_single += this.options.values_separator;\n                        text_single += this.decorate(to_pretty, this.result.to);\n                    } else {\n                        text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);\n                    }\n                    text_from = this.decorate(from_pretty, this.result.from);\n                    text_to = this.decorate(to_pretty, this.result.to);\n\n                    this.$cache.single.html(text_single);\n                    this.$cache.from.html(text_from);\n                    this.$cache.to.html(text_to);\n\n                }\n\n                this.calcLabels();\n\n                var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),\n                    single_left = this.labels.p_single_left + this.labels.p_single_fake,\n                    to_left = this.labels.p_to_left + this.labels.p_to_fake,\n                    max = Math.max(single_left, to_left);\n\n                if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {\n                    this.$cache.from[0].style.visibility = \"hidden\";\n                    this.$cache.to[0].style.visibility = \"hidden\";\n                    this.$cache.single[0].style.visibility = \"visible\";\n\n                    if (this.result.from === this.result.to) {\n                        if (this.target === \"from\") {\n                            this.$cache.from[0].style.visibility = \"visible\";\n                        } else if (this.target === \"to\") {\n                            this.$cache.to[0].style.visibility = \"visible\";\n                        } else if (!this.target) {\n                            this.$cache.from[0].style.visibility = \"visible\";\n                        }\n                        this.$cache.single[0].style.visibility = \"hidden\";\n                        max = to_left;\n                    } else {\n                        this.$cache.from[0].style.visibility = \"hidden\";\n                        this.$cache.to[0].style.visibility = \"hidden\";\n                        this.$cache.single[0].style.visibility = \"visible\";\n                        max = Math.max(single_left, to_left);\n                    }\n                } else {\n                    this.$cache.from[0].style.visibility = \"visible\";\n                    this.$cache.to[0].style.visibility = \"visible\";\n                    this.$cache.single[0].style.visibility = \"hidden\";\n                }\n\n                if (min < this.labels.p_min + 1) {\n                    this.$cache.min[0].style.visibility = \"hidden\";\n                } else {\n                    this.$cache.min[0].style.visibility = \"visible\";\n                }\n\n                if (max > 100 - this.labels.p_max - 1) {\n                    this.$cache.max[0].style.visibility = \"hidden\";\n                } else {\n                    this.$cache.max[0].style.visibility = \"visible\";\n                }\n\n            }\n        },\n\n        /**\n         * Draw shadow intervals\n         */\n        drawShadow: function () {\n            var o = this.options,\n                c = this.$cache,\n\n                is_from_min = typeof o.from_min === \"number\" && !isNaN(o.from_min),\n                is_from_max = typeof o.from_max === \"number\" && !isNaN(o.from_max),\n                is_to_min = typeof o.to_min === \"number\" && !isNaN(o.to_min),\n                is_to_max = typeof o.to_max === \"number\" && !isNaN(o.to_max),\n\n                from_min,\n                from_max,\n                to_min,\n                to_max;\n\n            if (o.type === \"single\") {\n                if (o.from_shadow && (is_from_min || is_from_max)) {\n                    from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n                    from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n                    from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\n                    from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\n                    from_min = from_min + (this.coords.p_handle / 2);\n\n                    c.shad_single[0].style.display = \"block\";\n                    c.shad_single[0].style.left = from_min + \"%\";\n                    c.shad_single[0].style.width = from_max + \"%\";\n                } else {\n                    c.shad_single[0].style.display = \"none\";\n                }\n            } else {\n                if (o.from_shadow && (is_from_min || is_from_max)) {\n                    from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n                    from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n                    from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\n                    from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\n                    from_min = from_min + (this.coords.p_handle / 2);\n\n                    c.shad_from[0].style.display = \"block\";\n                    c.shad_from[0].style.left = from_min + \"%\";\n                    c.shad_from[0].style.width = from_max + \"%\";\n                } else {\n                    c.shad_from[0].style.display = \"none\";\n                }\n\n                if (o.to_shadow && (is_to_min || is_to_max)) {\n                    to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);\n                    to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;\n                    to_min = this.toFixed(to_min - (this.coords.p_handle / 100 * to_min));\n                    to_max = this.toFixed(to_max - (this.coords.p_handle / 100 * to_max));\n                    to_min = to_min + (this.coords.p_handle / 2);\n\n                    c.shad_to[0].style.display = \"block\";\n                    c.shad_to[0].style.left = to_min + \"%\";\n                    c.shad_to[0].style.width = to_max + \"%\";\n                } else {\n                    c.shad_to[0].style.display = \"none\";\n                }\n            }\n        },\n\n\n\n        /**\n         * Write values to input element\n         */\n        writeToInput: function () {\n            if (this.options.type === \"single\") {\n                if (this.options.values.length) {\n                    this.$cache.input.prop(\"value\", this.result.from_value);\n                } else {\n                    this.$cache.input.prop(\"value\", this.result.from);\n                }\n                this.$cache.input.data(\"from\", this.result.from);\n            } else {\n                if (this.options.values.length) {\n                    this.$cache.input.prop(\"value\", this.result.from_value + this.options.input_values_separator + this.result.to_value);\n                } else {\n                    this.$cache.input.prop(\"value\", this.result.from + this.options.input_values_separator + this.result.to);\n                }\n                this.$cache.input.data(\"from\", this.result.from);\n                this.$cache.input.data(\"to\", this.result.to);\n            }\n        },\n\n\n\n        // =============================================================================================================\n        // Callbacks\n\n        callOnStart: function () {\n            this.writeToInput();\n\n            if (this.options.onStart && typeof this.options.onStart === \"function\") {\n                if (this.options.scope) {\n                    this.options.onStart.call(this.options.scope, this.result);\n                } else {\n                    this.options.onStart(this.result);\n                }\n            }\n        },\n        callOnChange: function () {\n            this.writeToInput();\n\n            if (this.options.onChange && typeof this.options.onChange === \"function\") {\n                if (this.options.scope) {\n                    this.options.onChange.call(this.options.scope, this.result);\n                } else {\n                    this.options.onChange(this.result);\n                }\n            }\n        },\n        callOnFinish: function () {\n            this.writeToInput();\n\n            if (this.options.onFinish && typeof this.options.onFinish === \"function\") {\n                if (this.options.scope) {\n                    this.options.onFinish.call(this.options.scope, this.result);\n                } else {\n                    this.options.onFinish(this.result);\n                }\n            }\n        },\n        callOnUpdate: function () {\n            this.writeToInput();\n\n            if (this.options.onUpdate && typeof this.options.onUpdate === \"function\") {\n                if (this.options.scope) {\n                    this.options.onUpdate.call(this.options.scope, this.result);\n                } else {\n                    this.options.onUpdate(this.result);\n                }\n            }\n        },\n\n\n\n\n        // =============================================================================================================\n        // Service methods\n\n        toggleInput: function () {\n            this.$cache.input.toggleClass(\"irs-hidden-input\");\n\n            if (this.has_tab_index) {\n                this.$cache.input.prop(\"tabindex\", -1);\n            } else {\n                this.$cache.input.removeProp(\"tabindex\");\n            }\n\n            this.has_tab_index = !this.has_tab_index;\n        },\n\n        /**\n         * Convert real value to percent\n         *\n         * @param value {Number} X in real\n         * @param no_min {boolean=} don't use min value\n         * @returns {Number} X in percent\n         */\n        convertToPercent: function (value, no_min) {\n            var diapason = this.options.max - this.options.min,\n                one_percent = diapason / 100,\n                val, percent;\n\n            if (!diapason) {\n                this.no_diapason = true;\n                return 0;\n            }\n\n            if (no_min) {\n                val = value;\n            } else {\n                val = value - this.options.min;\n            }\n\n            percent = val / one_percent;\n\n            return this.toFixed(percent);\n        },\n\n        /**\n         * Convert percent to real values\n         *\n         * @param percent {Number} X in percent\n         * @returns {Number} X in real\n         */\n        convertToValue: function (percent) {\n            var min = this.options.min,\n                max = this.options.max,\n                min_decimals = min.toString().split(\".\")[1],\n                max_decimals = max.toString().split(\".\")[1],\n                min_length, max_length,\n                avg_decimals = 0,\n                abs = 0;\n\n            if (percent === 0) {\n                return this.options.min;\n            }\n            if (percent === 100) {\n                return this.options.max;\n            }\n\n\n            if (min_decimals) {\n                min_length = min_decimals.length;\n                avg_decimals = min_length;\n            }\n            if (max_decimals) {\n                max_length = max_decimals.length;\n                avg_decimals = max_length;\n            }\n            if (min_length && max_length) {\n                avg_decimals = (min_length >= max_length) ? min_length : max_length;\n            }\n\n            if (min < 0) {\n                abs = Math.abs(min);\n                min = +(min + abs).toFixed(avg_decimals);\n                max = +(max + abs).toFixed(avg_decimals);\n            }\n\n            var number = ((max - min) / 100 * percent) + min,\n                string = this.options.step.toString().split(\".\")[1],\n                result;\n\n            if (string) {\n                number = +number.toFixed(string.length);\n            } else {\n                number = number / this.options.step;\n                number = number * this.options.step;\n\n                number = +number.toFixed(0);\n            }\n\n            if (abs) {\n                number -= abs;\n            }\n\n            if (string) {\n                result = +number.toFixed(string.length);\n            } else {\n                result = this.toFixed(number);\n            }\n\n            if (result < this.options.min) {\n                result = this.options.min;\n            } else if (result > this.options.max) {\n                result = this.options.max;\n            }\n\n            return result;\n        },\n\n        /**\n         * Round percent value with step\n         *\n         * @param percent {Number}\n         * @returns percent {Number} rounded\n         */\n        calcWithStep: function (percent) {\n            var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;\n\n            if (rounded > 100) {\n                rounded = 100;\n            }\n            if (percent === 100) {\n                rounded = 100;\n            }\n\n            return this.toFixed(rounded);\n        },\n\n        checkMinInterval: function (p_current, p_next, type) {\n            var o = this.options,\n                current,\n                next;\n\n            if (!o.min_interval) {\n                return p_current;\n            }\n\n            current = this.convertToValue(p_current);\n            next = this.convertToValue(p_next);\n\n            if (type === \"from\") {\n\n                if (next - current < o.min_interval) {\n                    current = next - o.min_interval;\n                }\n\n            } else {\n\n                if (current - next < o.min_interval) {\n                    current = next + o.min_interval;\n                }\n\n            }\n\n            return this.convertToPercent(current);\n        },\n\n        checkMaxInterval: function (p_current, p_next, type) {\n            var o = this.options,\n                current,\n                next;\n\n            if (!o.max_interval) {\n                return p_current;\n            }\n\n            current = this.convertToValue(p_current);\n            next = this.convertToValue(p_next);\n\n            if (type === \"from\") {\n\n                if (next - current > o.max_interval) {\n                    current = next - o.max_interval;\n                }\n\n            } else {\n\n                if (current - next > o.max_interval) {\n                    current = next + o.max_interval;\n                }\n\n            }\n\n            return this.convertToPercent(current);\n        },\n\n        checkDiapason: function (p_num, min, max) {\n            var num = this.convertToValue(p_num),\n                o = this.options;\n\n            if (typeof min !== \"number\") {\n                min = o.min;\n            }\n\n            if (typeof max !== \"number\") {\n                max = o.max;\n            }\n\n            if (num < min) {\n                num = min;\n            }\n\n            if (num > max) {\n                num = max;\n            }\n\n            return this.convertToPercent(num);\n        },\n\n        toFixed: function (num) {\n            num = num.toFixed(20);\n            return +num;\n        },\n\n        _prettify: function (num) {\n            if (!this.options.prettify_enabled) {\n                return num;\n            }\n\n            if (this.options.prettify && typeof this.options.prettify === \"function\") {\n                return this.options.prettify(num);\n            } else {\n                return this.prettify(num);\n            }\n        },\n\n        prettify: function (num) {\n            var n = num.toString();\n            return n.replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + this.options.prettify_separator);\n        },\n\n        checkEdges: function (left, width) {\n            if (!this.options.force_edges) {\n                return this.toFixed(left);\n            }\n\n            if (left < 0) {\n                left = 0;\n            } else if (left > 100 - width) {\n                left = 100 - width;\n            }\n\n            return this.toFixed(left);\n        },\n\n        validate: function () {\n            var o = this.options,\n                r = this.result,\n                v = o.values,\n                vl = v.length,\n                value,\n                i;\n\n            if (typeof o.min === \"string\") o.min = +o.min;\n            if (typeof o.max === \"string\") o.max = +o.max;\n            if (typeof o.from === \"string\") o.from = +o.from;\n            if (typeof o.to === \"string\") o.to = +o.to;\n            if (typeof o.step === \"string\") o.step = +o.step;\n\n            if (typeof o.from_min === \"string\") o.from_min = +o.from_min;\n            if (typeof o.from_max === \"string\") o.from_max = +o.from_max;\n            if (typeof o.to_min === \"string\") o.to_min = +o.to_min;\n            if (typeof o.to_max === \"string\") o.to_max = +o.to_max;\n\n            if (typeof o.grid_num === \"string\") o.grid_num = +o.grid_num;\n\n            if (o.max < o.min) {\n                o.max = o.min;\n            }\n\n            if (vl) {\n                o.p_values = [];\n                o.min = 0;\n                o.max = vl - 1;\n                o.step = 1;\n                o.grid_num = o.max;\n                o.grid_snap = true;\n\n                for (i = 0; i < vl; i++) {\n                    value = +v[i];\n\n                    if (!isNaN(value)) {\n                        v[i] = value;\n                        value = this._prettify(value);\n                    } else {\n                        value = v[i];\n                    }\n\n                    o.p_values.push(value);\n                }\n            }\n\n            if (typeof o.from !== \"number\" || isNaN(o.from)) {\n                o.from = o.min;\n            }\n\n            if (typeof o.to !== \"number\" || isNaN(o.to)) {\n                o.to = o.max;\n            }\n\n            if (o.type === \"single\") {\n\n                if (o.from < o.min) o.from = o.min;\n                if (o.from > o.max) o.from = o.max;\n\n            } else {\n\n                if (o.from < o.min) o.from = o.min;\n                if (o.from > o.max) o.from = o.max;\n\n                if (o.to < o.min) o.to = o.min;\n                if (o.to > o.max) o.to = o.max;\n\n                if (this.update_check.from) {\n\n                    if (this.update_check.from !== o.from) {\n                        if (o.from > o.to) o.from = o.to;\n                    }\n                    if (this.update_check.to !== o.to) {\n                        if (o.to < o.from) o.to = o.from;\n                    }\n\n                }\n\n                if (o.from > o.to) o.from = o.to;\n                if (o.to < o.from) o.to = o.from;\n\n            }\n\n            if (typeof o.step !== \"number\" || isNaN(o.step) || !o.step || o.step < 0) {\n                o.step = 1;\n            }\n\n            if (typeof o.from_min === \"number\" && o.from < o.from_min) {\n                o.from = o.from_min;\n            }\n\n            if (typeof o.from_max === \"number\" && o.from > o.from_max) {\n                o.from = o.from_max;\n            }\n\n            if (typeof o.to_min === \"number\" && o.to < o.to_min) {\n                o.to = o.to_min;\n            }\n\n            if (typeof o.to_max === \"number\" && o.from > o.to_max) {\n                o.to = o.to_max;\n            }\n\n            if (r) {\n                if (r.min !== o.min) {\n                    r.min = o.min;\n                }\n\n                if (r.max !== o.max) {\n                    r.max = o.max;\n                }\n\n                if (r.from < r.min || r.from > r.max) {\n                    r.from = o.from;\n                }\n\n                if (r.to < r.min || r.to > r.max) {\n                    r.to = o.to;\n                }\n            }\n\n            if (typeof o.min_interval !== \"number\" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {\n                o.min_interval = 0;\n            }\n\n            if (typeof o.max_interval !== \"number\" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {\n                o.max_interval = 0;\n            }\n\n            if (o.min_interval && o.min_interval > o.max - o.min) {\n                o.min_interval = o.max - o.min;\n            }\n\n            if (o.max_interval && o.max_interval > o.max - o.min) {\n                o.max_interval = o.max - o.min;\n            }\n        },\n\n        decorate: function (num, original) {\n            var decorated = \"\",\n                o = this.options;\n\n            if (o.prefix) {\n                decorated += o.prefix;\n            }\n\n            decorated += num;\n\n            if (o.max_postfix) {\n                if (o.values.length && num === o.p_values[o.max]) {\n                    decorated += o.max_postfix;\n                    if (o.postfix) {\n                        decorated += \" \";\n                    }\n                } else if (original === o.max) {\n                    decorated += o.max_postfix;\n                    if (o.postfix) {\n                        decorated += \" \";\n                    }\n                }\n            }\n\n            if (o.postfix) {\n                decorated += o.postfix;\n            }\n\n            return decorated;\n        },\n\n        updateFrom: function () {\n            this.result.from = this.options.from;\n            this.result.from_percent = this.convertToPercent(this.result.from);\n            this.result.from_pretty = this._prettify(this.result.from);\n            if (this.options.values) {\n                this.result.from_value = this.options.values[this.result.from];\n            }\n        },\n\n        updateTo: function () {\n            this.result.to = this.options.to;\n            this.result.to_percent = this.convertToPercent(this.result.to);\n            this.result.to_pretty = this._prettify(this.result.to);\n            if (this.options.values) {\n                this.result.to_value = this.options.values[this.result.to];\n            }\n        },\n\n        updateResult: function () {\n            this.result.min = this.options.min;\n            this.result.max = this.options.max;\n            this.updateFrom();\n            this.updateTo();\n        },\n\n\n        // =============================================================================================================\n        // Grid\n\n        appendGrid: function () {\n            if (!this.options.grid) {\n                return;\n            }\n\n            var o = this.options,\n                i, z,\n\n                total = o.max - o.min,\n                big_num = o.grid_num,\n                big_p = 0,\n                big_w = 0,\n\n                small_max = 4,\n                local_small_max,\n                small_p,\n                small_w = 0,\n\n                result,\n                html = '';\n\n\n\n            this.calcGridMargin();\n\n            if (o.grid_snap) {\n                big_num = total / o.step;\n            }\n\n            if (big_num > 50) big_num = 50;\n            big_p = this.toFixed(100 / big_num);\n\n            if (big_num > 4) {\n                small_max = 3;\n            }\n            if (big_num > 7) {\n                small_max = 2;\n            }\n            if (big_num > 14) {\n                small_max = 1;\n            }\n            if (big_num > 28) {\n                small_max = 0;\n            }\n\n            for (i = 0; i < big_num + 1; i++) {\n                local_small_max = small_max;\n\n                big_w = this.toFixed(big_p * i);\n\n                if (big_w > 100) {\n                    big_w = 100;\n                }\n                this.coords.big[i] = big_w;\n\n                small_p = (big_w - (big_p * (i - 1))) / (local_small_max + 1);\n\n                for (z = 1; z <= local_small_max; z++) {\n                    if (big_w === 0) {\n                        break;\n                    }\n\n                    small_w = this.toFixed(big_w - (small_p * z));\n\n                    html += '<span class=\"irs-grid-pol small\" style=\"left: ' + small_w + '%\"></span>';\n                }\n\n                html += '<span class=\"irs-grid-pol\" style=\"left: ' + big_w + '%\"></span>';\n\n                result = this.convertToValue(big_w);\n                if (o.values.length) {\n                    result = o.p_values[result];\n                } else {\n                    result = this._prettify(result);\n                }\n\n                html += '<span class=\"irs-grid-text js-grid-text-' + i + '\" style=\"left: ' + big_w + '%\">' + result + '</span>';\n            }\n            this.coords.big_num = Math.ceil(big_num + 1);\n\n\n\n            this.$cache.cont.addClass(\"irs-with-grid\");\n            this.$cache.grid.html(html);\n            this.cacheGridLabels();\n        },\n\n        cacheGridLabels: function () {\n            var $label, i,\n                num = this.coords.big_num;\n\n            for (i = 0; i < num; i++) {\n                $label = this.$cache.grid.find(\".js-grid-text-\" + i);\n                this.$cache.grid_labels.push($label);\n            }\n\n            this.calcGridLabels();\n        },\n\n        calcGridLabels: function () {\n            var i, label, start = [], finish = [],\n                num = this.coords.big_num;\n\n            for (i = 0; i < num; i++) {\n                this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);\n                this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);\n                this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);\n\n                start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);\n                finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);\n            }\n\n            if (this.options.force_edges) {\n                if (start[0] < -this.coords.grid_gap) {\n                    start[0] = -this.coords.grid_gap;\n                    finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);\n\n                    this.coords.big_x[0] = this.coords.grid_gap;\n                }\n\n                if (finish[num - 1] > 100 + this.coords.grid_gap) {\n                    finish[num - 1] = 100 + this.coords.grid_gap;\n                    start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);\n\n                    this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);\n                }\n            }\n\n            this.calcGridCollision(2, start, finish);\n            this.calcGridCollision(4, start, finish);\n\n            for (i = 0; i < num; i++) {\n                label = this.$cache.grid_labels[i][0];\n\n                if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {\n                    label.style.marginLeft = -this.coords.big_x[i] + \"%\";\n                }\n            }\n        },\n\n        // Collisions Calc Beta\n        // TODO: Refactor then have plenty of time\n        calcGridCollision: function (step, start, finish) {\n            var i, next_i, label,\n                num = this.coords.big_num;\n\n            for (i = 0; i < num; i += step) {\n                next_i = i + (step / 2);\n                if (next_i >= num) {\n                    break;\n                }\n\n                label = this.$cache.grid_labels[next_i][0];\n\n                if (finish[i] <= start[next_i]) {\n                    label.style.visibility = \"visible\";\n                } else {\n                    label.style.visibility = \"hidden\";\n                }\n            }\n        },\n\n        calcGridMargin: function () {\n            if (!this.options.grid_margin) {\n                return;\n            }\n\n            this.coords.w_rs = this.$cache.rs.outerWidth(false);\n            if (!this.coords.w_rs) {\n                return;\n            }\n\n            if (this.options.type === \"single\") {\n                this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n            } else {\n                this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n            }\n            this.coords.p_handle = this.toFixed(this.coords.w_handle  / this.coords.w_rs * 100);\n            this.coords.grid_gap = this.toFixed((this.coords.p_handle / 2) - 0.1);\n\n            this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + \"%\";\n            this.$cache.grid[0].style.left = this.coords.grid_gap + \"%\";\n        },\n\n\n\n        // =============================================================================================================\n        // Public methods\n\n        update: function (options) {\n            if (!this.input) {\n                return;\n            }\n\n            this.is_update = true;\n\n            this.options.from = this.result.from;\n            this.options.to = this.result.to;\n            this.update_check.from = this.result.from;\n            this.update_check.to = this.result.to;\n\n            this.options = $.extend(this.options, options);\n            this.validate();\n            this.updateResult(options);\n\n            this.toggleInput();\n            this.remove();\n            this.init(true);\n        },\n\n        reset: function () {\n            if (!this.input) {\n                return;\n            }\n\n            this.updateResult();\n            this.update();\n        },\n\n        destroy: function () {\n            if (!this.input) {\n                return;\n            }\n\n            this.toggleInput();\n            this.$cache.input.prop(\"readonly\", false);\n            $.data(this.input, \"ionRangeSlider\", null);\n\n            this.remove();\n            this.input = null;\n            this.options = null;\n        }\n    };\n\n    $.fn.ionRangeSlider = function (options) {\n        return this.each(function() {\n            if (!$.data(this, \"ionRangeSlider\")) {\n                $.data(this, \"ionRangeSlider\", new IonRangeSlider(this, options, plugin_count++));\n            }\n        });\n    };\n\n\n\n    // =================================================================================================================\n    // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n    // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n    // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n    // MIT license\n\n    (function() {\n        var lastTime = 0;\n        var vendors = ['ms', 'moz', 'webkit', 'o'];\n        for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n            window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n            window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n                || window[vendors[x]+'CancelRequestAnimationFrame'];\n        }\n\n        if (!window.requestAnimationFrame)\n            window.requestAnimationFrame = function(callback, element) {\n                var currTime = new Date().getTime();\n                var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n                var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n                    timeToCall);\n                lastTime = currTime + timeToCall;\n                return id;\n            };\n\n        if (!window.cancelAnimationFrame)\n            window.cancelAnimationFrame = function(id) {\n                clearTimeout(id);\n            };\n    }());\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery/jquery.slim.js",
    "content": "/*!\n * jQuery JavaScript Library v3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/jquery.mapael.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires jQuery, raphael.js and jquery.mousewheel\n *\n * Version: 2.2.0\n *\n * Copyright (c) 2017 Vincent Brouté (https://www.vincentbroute.fr/mapael)\n * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).\n *\n * Thanks to Indigo744\n *\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('raphael'), require('jquery-mousewheel'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'raphael', 'mousewheel'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, Raphael, jQuery.fn.mousewheel);\n    }\n}(function ($, Raphael, mousewheel, undefined) {\n\n    \"use strict\";\n\n    // The plugin name (used on several places)\n    var pluginName = \"mapael\";\n\n    // Version number of jQuery Mapael. See http://semver.org/ for more information.\n    var version = \"2.2.0\";\n\n    /*\n     * Mapael constructor\n     * Init instance vars and call init()\n     * @param container the DOM element on which to apply the plugin\n     * @param options the complete options to use\n     */\n    var Mapael = function (container, options) {\n        var self = this;\n\n        // the global container (DOM element object)\n        self.container = container;\n\n        // the global container (jQuery object)\n        self.$container = $(container);\n\n        // the global options\n        self.options = self.extendDefaultOptions(options);\n\n        // zoom TimeOut handler (used to set and clear)\n        self.zoomTO = 0;\n\n        // zoom center coordinate (set at touchstart)\n        self.zoomCenterX = 0;\n        self.zoomCenterY = 0;\n\n        // Zoom pinch (set at touchstart and touchmove)\n        self.previousPinchDist = 0;\n\n        // Zoom data\n        self.zoomData = {\n            zoomLevel: 0,\n            zoomX: 0,\n            zoomY: 0,\n            panX: 0,\n            panY: 0\n        };\n\n        self.currentViewBox = {\n            x: 0, y: 0, w: 0, h: 0\n        };\n\n        // Panning: tell if panning action is in progress\n        self.panning = false;\n\n        // Animate view box\n        self.zoomAnimID = null; // Interval handler (used to set and clear)\n        self.zoomAnimStartTime = null; // Animation start time\n        self.zoomAnimCVBTarget = null; // Current ViewBox target\n\n        // Map subcontainer jQuery object\n        self.$map = $(\".\" + self.options.map.cssClass, self.container);\n\n        // Save initial HTML content (used by destroy method)\n        self.initialMapHTMLContent = self.$map.html();\n\n        // The tooltip jQuery object\n        self.$tooltip = {};\n\n        // The paper Raphael object\n        self.paper = {};\n\n        // The areas object list\n        self.areas = {};\n\n        // The plots object list\n        self.plots = {};\n\n        // The links object list\n        self.links = {};\n\n        // The legends list\n        self.legends = {};\n\n        // The map configuration object (taken from map file)\n        self.mapConf = {};\n\n        // Holds all custom event handlers\n        self.customEventHandlers = {};\n\n        // Let's start the initialization\n        self.init();\n    };\n\n    /*\n     * Mapael Prototype\n     * Defines all methods and properties needed by Mapael\n     * Each mapael object inherits their properties and methods from this prototype\n     */\n    Mapael.prototype = {\n\n        /* Filtering TimeOut value in ms\n         * Used for mouseover trigger over elements */\n        MouseOverFilteringTO: 120,\n        /* Filtering TimeOut value in ms\n         * Used for afterPanning trigger when panning */\n        panningFilteringTO: 150,\n        /* Filtering TimeOut value in ms\n         * Used for mouseup/touchend trigger when panning */\n        panningEndFilteringTO: 50,\n        /* Filtering TimeOut value in ms\n         * Used for afterZoom trigger when zooming */\n        zoomFilteringTO: 150,\n        /* Filtering TimeOut value in ms\n         * Used for when resizing window */\n        resizeFilteringTO: 150,\n\n        /*\n         * Initialize the plugin\n         * Called by the constructor\n         */\n        init: function () {\n            var self = this;\n\n            // Init check for class existence\n            if (self.options.map.cssClass === \"\" || $(\".\" + self.options.map.cssClass, self.container).length === 0) {\n                throw new Error(\"The map class `\" + self.options.map.cssClass + \"` doesn't exists\");\n            }\n\n            // Create the tooltip container\n            self.$tooltip = $(\"<div>\").addClass(self.options.map.tooltip.cssClass).css(\"display\", \"none\");\n\n            // Get the map container, empty it then append tooltip\n            self.$map.empty().append(self.$tooltip);\n\n            // Get the map from $.mapael or $.fn.mapael (backward compatibility)\n            if ($[pluginName] && $[pluginName].maps && $[pluginName].maps[self.options.map.name]) {\n                // Mapael version >= 2.x\n                self.mapConf = $[pluginName].maps[self.options.map.name];\n            } else if ($.fn[pluginName] && $.fn[pluginName].maps && $.fn[pluginName].maps[self.options.map.name]) {\n                // Mapael version <= 1.x - DEPRECATED\n                self.mapConf = $.fn[pluginName].maps[self.options.map.name];\n                if (window.console && window.console.warn) {\n                    window.console.warn(\"Extending $.fn.mapael is deprecated (map '\" + self.options.map.name + \"')\");\n                }\n            } else {\n                throw new Error(\"Unknown map '\" + self.options.map.name + \"'\");\n            }\n\n            // Create Raphael paper\n            self.paper = new Raphael(self.$map[0], self.mapConf.width, self.mapConf.height);\n\n            // issue #135: Check for Raphael bug on text element boundaries\n            if (self.isRaphaelBBoxBugPresent() === true) {\n                self.destroy();\n                throw new Error(\"Can't get boundary box for text (is your container hidden? See #135)\");\n            }\n\n            // add plugin class name on element\n            self.$container.addClass(pluginName);\n\n            if (self.options.map.tooltip.css) self.$tooltip.css(self.options.map.tooltip.css);\n            self.setViewBox(0, 0, self.mapConf.width, self.mapConf.height);\n\n            // Handle map size\n            if (self.options.map.width) {\n                // NOT responsive: map has a fixed width\n                self.paper.setSize(self.options.map.width, self.mapConf.height * (self.options.map.width / self.mapConf.width));\n            } else {\n                // Responsive: handle resizing of the map\n                self.initResponsiveSize();\n            }\n\n            // Draw map areas\n            $.each(self.mapConf.elems, function (id) {\n                // Init area object\n                self.areas[id] = {};\n                // Set area options\n                self.areas[id].options = self.getElemOptions(\n                    self.options.map.defaultArea,\n                    (self.options.areas[id] ? self.options.areas[id] : {}),\n                    self.options.legend.area\n                );\n                // draw area\n                self.areas[id].mapElem = self.paper.path(self.mapConf.elems[id]);\n            });\n\n            // Hook that allows to add custom processing on the map\n            if (self.options.map.beforeInit) self.options.map.beforeInit(self.$container, self.paper, self.options);\n\n            // Init map areas in a second loop\n            // Allows text to be added after ALL areas and prevent them from being hidden\n            $.each(self.mapConf.elems, function (id) {\n                self.initElem(id, 'area', self.areas[id]);\n            });\n\n            // Draw links\n            self.links = self.drawLinksCollection(self.options.links);\n\n            // Draw plots\n            $.each(self.options.plots, function (id) {\n                self.plots[id] = self.drawPlot(id);\n            });\n\n            // Attach zoom event\n            self.$container.on(\"zoom.\" + pluginName, function (e, zoomOptions) {\n                self.onZoomEvent(e, zoomOptions);\n            });\n\n            if (self.options.map.zoom.enabled) {\n                // Enable zoom\n                self.initZoom(self.mapConf.width, self.mapConf.height, self.options.map.zoom);\n            }\n\n            // Set initial zoom\n            if (self.options.map.zoom.init !== undefined) {\n                if (self.options.map.zoom.init.animDuration === undefined) {\n                    self.options.map.zoom.init.animDuration = 0;\n                }\n                self.$container.trigger(\"zoom\", self.options.map.zoom.init);\n            }\n\n            // Create the legends for areas\n            self.createLegends(\"area\", self.areas, 1);\n\n            // Create the legends for plots taking into account the scale of the map\n            self.createLegends(\"plot\", self.plots, self.paper.width / self.mapConf.width);\n\n            // Attach update event\n            self.$container.on(\"update.\" + pluginName, function (e, opt) {\n                self.onUpdateEvent(e, opt);\n            });\n\n            // Attach showElementsInRange event\n            self.$container.on(\"showElementsInRange.\" + pluginName, function (e, opt) {\n                self.onShowElementsInRange(e, opt);\n            });\n\n            // Attach delegated events\n            self.initDelegatedMapEvents();\n            // Attach delegated custom events\n            self.initDelegatedCustomEvents();\n\n            // Hook that allows to add custom processing on the map\n            if (self.options.map.afterInit) self.options.map.afterInit(self.$container, self.paper, self.areas, self.plots, self.options);\n\n            $(self.paper.desc).append(\" and Mapael \" + self.version + \" (https://www.vincentbroute.fr/mapael/)\");\n        },\n\n        /*\n         * Destroy mapael\n         * This function effectively detach mapael from the container\n         *   - Set the container back to the way it was before mapael instanciation\n         *   - Remove all data associated to it (memory can then be free'ed by browser)\n         *\n         * This method can be call directly by user:\n         *     $(\".mapcontainer\").data(\"mapael\").destroy();\n         *\n         * This method is also automatically called if the user try to call mapael\n         * on a container already containing a mapael instance\n         */\n        destroy: function () {\n            var self = this;\n\n            // Detach all event listeners attached to the container\n            self.$container.off(\".\" + pluginName);\n            self.$map.off(\".\" + pluginName);\n\n            // Detach the global resize event handler\n            if (self.onResizeEvent) $(window).off(\"resize.\" + pluginName, self.onResizeEvent);\n\n            // Empty the container (this will also detach all event listeners)\n            self.$map.empty();\n\n            // Replace initial HTML content\n            self.$map.html(self.initialMapHTMLContent);\n\n            // Empty legend containers and replace initial HTML content\n            $.each(self.legends, function(legendType) {\n                $.each(self.legends[legendType], function(legendIndex) {\n                    var legend = self.legends[legendType][legendIndex];\n                    legend.container.empty();\n                    legend.container.html(legend.initialHTMLContent);\n                });\n            });\n\n            // Remove mapael class\n            self.$container.removeClass(pluginName);\n\n            // Remove the data\n            self.$container.removeData(pluginName);\n\n            // Remove all internal reference\n            self.container = undefined;\n            self.$container = undefined;\n            self.options = undefined;\n            self.paper = undefined;\n            self.$map = undefined;\n            self.$tooltip = undefined;\n            self.mapConf = undefined;\n            self.areas = undefined;\n            self.plots = undefined;\n            self.links = undefined;\n            self.customEventHandlers = undefined;\n        },\n\n        initResponsiveSize: function () {\n            var self = this;\n            var resizeTO = null;\n\n            // Function that actually handle the resizing\n            var handleResize = function(isInit) {\n                var containerWidth = self.$map.width();\n\n                if (self.paper.width !== containerWidth) {\n                    var newScale = containerWidth / self.mapConf.width;\n                    // Set new size\n                    self.paper.setSize(containerWidth, self.mapConf.height * newScale);\n\n                    // Create plots legend again to take into account the new scale\n                    // Do not do this on init (it will be done later)\n                    if (isInit !== true && self.options.legend.redrawOnResize) {\n                        self.createLegends(\"plot\", self.plots, newScale);\n                    }\n                }\n            };\n\n            self.onResizeEvent = function() {\n                // Clear any previous setTimeout (avoid too much triggering)\n                clearTimeout(resizeTO);\n                // setTimeout to wait for the user to finish its resizing\n                resizeTO = setTimeout(function () {\n                    handleResize();\n                }, self.resizeFilteringTO);\n            };\n\n            // Attach resize handler\n            $(window).on(\"resize.\" + pluginName, self.onResizeEvent);\n\n            // Call once\n            handleResize(true);\n        },\n\n        /*\n         * Extend the user option with the default one\n         * @param options the user options\n         * @return new options object\n         */\n        extendDefaultOptions: function (options) {\n\n            // Extend default options with user options\n            options = $.extend(true, {}, Mapael.prototype.defaultOptions, options);\n\n            // Extend legend default options\n            $.each(['area', 'plot'], function (key, type) {\n                if ($.isArray(options.legend[type])) {\n                    for (var i = 0; i < options.legend[type].length; ++i)\n                        options.legend[type][i] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type][i]);\n                } else {\n                    options.legend[type] = $.extend(true, {}, Mapael.prototype.legendDefaultOptions[type], options.legend[type]);\n                }\n            });\n\n            return options;\n        },\n\n        /*\n         * Init all delegated events for the whole map:\n         *  mouseover\n         *  mousemove\n         *  mouseout\n         */\n        initDelegatedMapEvents: function() {\n            var self = this;\n\n            // Mapping between data-type value and the corresponding elements array\n            // Note: legend-elem and legend-label are not in this table because\n            //       they need a special processing\n            var dataTypeToElementMapping = {\n                'area'  : self.areas,\n                'area-text' : self.areas,\n                'plot' : self.plots,\n                'plot-text' : self.plots,\n                'link' : self.links,\n                'link-text' : self.links\n            };\n\n            /* Attach mouseover event delegation\n             * Note: we filter the event with a timeout to reduce the firing when the mouse moves quickly\n             */\n            var mapMouseOverTimeoutID;\n            self.$container.on(\"mouseover.\" + pluginName, \"[data-id]\", function () {\n                var elem = this;\n                clearTimeout(mapMouseOverTimeoutID);\n                mapMouseOverTimeoutID = setTimeout(function() {\n                    var $elem = $(elem);\n                    var id = $elem.attr('data-id');\n                    var type = $elem.attr('data-type');\n\n                    if (dataTypeToElementMapping[type] !== undefined) {\n                        self.elemEnter(dataTypeToElementMapping[type][id]);\n                    } else if (type === 'legend-elem' || type === 'legend-label') {\n                        var legendIndex = $elem.attr('data-legend-id');\n                        var legendType = $elem.attr('data-legend-type');\n                        self.elemEnter(self.legends[legendType][legendIndex].elems[id]);\n                    }\n                }, self.MouseOverFilteringTO);\n            });\n\n            /* Attach mousemove event delegation\n             * Note: timeout filtering is small to update the Tooltip position fast\n             */\n            var mapMouseMoveTimeoutID;\n            self.$container.on(\"mousemove.\" + pluginName, \"[data-id]\", function (event) {\n                var elem = this;\n                clearTimeout(mapMouseMoveTimeoutID);\n                mapMouseMoveTimeoutID = setTimeout(function() {\n                    var $elem = $(elem);\n                    var id = $elem.attr('data-id');\n                    var type = $elem.attr('data-type');\n\n                    if (dataTypeToElementMapping[type] !== undefined) {\n                        self.elemHover(dataTypeToElementMapping[type][id], event);\n                    } else if (type === 'legend-elem' || type === 'legend-label') {\n                        /* Nothing to do */\n                    }\n\n                }, 0);\n            });\n\n            /* Attach mouseout event delegation\n             * Note: we don't perform any timeout filtering to clear & reset elem ASAP\n             * Otherwise an element may be stuck in 'hover' state (which is NOT good)\n             */\n            self.$container.on(\"mouseout.\" + pluginName, \"[data-id]\", function () {\n                var elem = this;\n                // Clear any\n                clearTimeout(mapMouseOverTimeoutID);\n                clearTimeout(mapMouseMoveTimeoutID);\n                var $elem = $(elem);\n                var id = $elem.attr('data-id');\n                var type = $elem.attr('data-type');\n\n                if (dataTypeToElementMapping[type] !== undefined) {\n                    self.elemOut(dataTypeToElementMapping[type][id]);\n                } else if (type === 'legend-elem' || type === 'legend-label') {\n                    var legendIndex = $elem.attr('data-legend-id');\n                    var legendType = $elem.attr('data-legend-type');\n                    self.elemOut(self.legends[legendType][legendIndex].elems[id]);\n                }\n            });\n\n            /* Attach click event delegation\n             * Note: we filter the event with a timeout to avoid double click\n             */\n            self.$container.on(\"click.\" + pluginName, \"[data-id]\", function (evt, opts) {\n                var $elem = $(this);\n                var id = $elem.attr('data-id');\n                var type = $elem.attr('data-type');\n\n                if (dataTypeToElementMapping[type] !== undefined) {\n                    self.elemClick(dataTypeToElementMapping[type][id]);\n                } else if (type === 'legend-elem' || type === 'legend-label') {\n                    var legendIndex = $elem.attr('data-legend-id');\n                    var legendType = $elem.attr('data-legend-type');\n                    self.handleClickOnLegendElem(self.legends[legendType][legendIndex].elems[id], id, legendIndex, legendType, opts);\n                }\n            });\n        },\n\n        /*\n         * Init all delegated custom events\n         */\n        initDelegatedCustomEvents: function() {\n            var self = this;\n\n            $.each(self.customEventHandlers, function(eventName) {\n                // Namespace the custom event\n                // This allow to easily unbound only custom events and not regular ones\n                var fullEventName = eventName + '.' + pluginName + \".custom\";\n                self.$container.off(fullEventName).on(fullEventName, \"[data-id]\", function (e) {\n                    var $elem = $(this);\n                    var id = $elem.attr('data-id');\n                    var type = $elem.attr('data-type').replace('-text', '');\n\n                    if (!self.panning &&\n                        self.customEventHandlers[eventName][type] !== undefined &&\n                        self.customEventHandlers[eventName][type][id] !== undefined)\n                    {\n                        // Get back related elem\n                        var elem = self.customEventHandlers[eventName][type][id];\n                        // Run callback provided by user\n                        elem.options.eventHandlers[eventName](e, id, elem.mapElem, elem.textElem, elem.options);\n                    }\n                });\n            });\n\n        },\n\n        /*\n         * Init the element \"elem\" on the map (drawing text, setting attributes, events, tooltip, ...)\n         *\n         * @param id the id of the element\n         * @param type the type of the element (area, plot, link)\n         * @param elem object the element object (with mapElem), it will be updated\n         */\n        initElem: function (id, type, elem) {\n            var self = this;\n            var $mapElem = $(elem.mapElem.node);\n\n            // If an HTML link exists for this element, add cursor attributes\n            if (elem.options.href) {\n                elem.options.attrs.cursor = \"pointer\";\n                if (elem.options.text) elem.options.text.attrs.cursor = \"pointer\";\n            }\n\n            // Set SVG attributes to map element\n            elem.mapElem.attr(elem.options.attrs);\n            // Set DOM attributes to map element\n            $mapElem.attr({\n                \"data-id\": id,\n                \"data-type\": type\n            });\n            if (elem.options.cssClass !== undefined) {\n                $mapElem.addClass(elem.options.cssClass);\n            }\n\n            // Init the label related to the element\n            if (elem.options.text && elem.options.text.content !== undefined) {\n                // Set a text label in the area\n                var textPosition = self.getTextPosition(elem.mapElem.getBBox(), elem.options.text.position, elem.options.text.margin);\n                elem.options.text.attrs.text = elem.options.text.content;\n                elem.options.text.attrs.x = textPosition.x;\n                elem.options.text.attrs.y = textPosition.y;\n                elem.options.text.attrs['text-anchor'] = textPosition.textAnchor;\n                // Draw text\n                elem.textElem = self.paper.text(textPosition.x, textPosition.y, elem.options.text.content);\n                // Apply SVG attributes to text element\n                elem.textElem.attr(elem.options.text.attrs);\n                // Apply DOM attributes\n                $(elem.textElem.node).attr({\n                    \"data-id\": id,\n                    \"data-type\": type + '-text'\n                });\n            }\n\n            // Set user event handlers\n            if (elem.options.eventHandlers) self.setEventHandlers(id, type, elem);\n\n            // Set hover option for mapElem\n            self.setHoverOptions(elem.mapElem, elem.options.attrs, elem.options.attrsHover);\n\n            // Set hover option for textElem\n            if (elem.textElem) self.setHoverOptions(elem.textElem, elem.options.text.attrs, elem.options.text.attrsHover);\n        },\n\n        /*\n         * Init zoom and panning for the map\n         * @param mapWidth\n         * @param mapHeight\n         * @param zoomOptions\n         */\n        initZoom: function (mapWidth, mapHeight, zoomOptions) {\n            var self = this;\n            var mousedown = false;\n            var previousX = 0;\n            var previousY = 0;\n            var fnZoomButtons = {\n                \"reset\": function () {\n                    self.$container.trigger(\"zoom\", {\"level\": 0});\n                },\n                \"in\": function () {\n                    self.$container.trigger(\"zoom\", {\"level\": \"+1\"});\n                },\n                \"out\": function () {\n                    self.$container.trigger(\"zoom\", {\"level\": -1});\n                }\n            };\n\n            // init Zoom data\n            $.extend(self.zoomData, {\n                zoomLevel: 0,\n                panX: 0,\n                panY: 0\n            });\n\n            // init zoom buttons\n            $.each(zoomOptions.buttons, function(type, opt) {\n                if (fnZoomButtons[type] === undefined) throw new Error(\"Unknown zoom button '\" + type + \"'\");\n                // Create div with classes, contents and title (for tooltip)\n                var $button = $(\"<div>\").addClass(opt.cssClass)\n                    .html(opt.content)\n                    .attr(\"title\", opt.title);\n                // Assign click event\n                $button.on(\"click.\" + pluginName, fnZoomButtons[type]);\n                // Append to map\n                self.$map.append($button);\n            });\n\n            // Update the zoom level of the map on mousewheel\n            if (self.options.map.zoom.mousewheel) {\n                self.$map.on(\"mousewheel.\" + pluginName, function (e) {\n                    var zoomLevel = (e.deltaY > 0) ? 1 : -1;\n                    var coord = self.mapPagePositionToXY(e.pageX, e.pageY);\n\n                    self.$container.trigger(\"zoom\", {\n                        \"fixedCenter\": true,\n                        \"level\": self.zoomData.zoomLevel + zoomLevel,\n                        \"x\": coord.x,\n                        \"y\": coord.y\n                    });\n\n                    e.preventDefault();\n                });\n            }\n\n            // Update the zoom level of the map on touch pinch\n            if (self.options.map.zoom.touch) {\n                self.$map.on(\"touchstart.\" + pluginName, function (e) {\n                    if (e.originalEvent.touches.length === 2) {\n                        self.zoomCenterX = (e.originalEvent.touches[0].pageX + e.originalEvent.touches[1].pageX) / 2;\n                        self.zoomCenterY = (e.originalEvent.touches[0].pageY + e.originalEvent.touches[1].pageY) / 2;\n                        self.previousPinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2));\n                    }\n                });\n\n                self.$map.on(\"touchmove.\" + pluginName, function (e) {\n                    var pinchDist = 0;\n                    var zoomLevel = 0;\n\n                    if (e.originalEvent.touches.length === 2) {\n                        pinchDist = Math.sqrt(Math.pow((e.originalEvent.touches[1].pageX - e.originalEvent.touches[0].pageX), 2) + Math.pow((e.originalEvent.touches[1].pageY - e.originalEvent.touches[0].pageY), 2));\n\n                        if (Math.abs(pinchDist - self.previousPinchDist) > 15) {\n                            var coord = self.mapPagePositionToXY(self.zoomCenterX, self.zoomCenterY);\n                            zoomLevel = (pinchDist - self.previousPinchDist) / Math.abs(pinchDist - self.previousPinchDist);\n                            self.$container.trigger(\"zoom\", {\n                                \"fixedCenter\": true,\n                                \"level\": self.zoomData.zoomLevel + zoomLevel,\n                                \"x\": coord.x,\n                                \"y\": coord.y\n                            });\n                            self.previousPinchDist = pinchDist;\n                        }\n                        return false;\n                    }\n                });\n            }\n\n            // When the user drag the map, prevent to move the clicked element instead of dragging the map (behaviour seen with Firefox)\n            self.$map.on(\"dragstart\", function() {\n                return false;\n            });\n\n            // Panning\n            var panningMouseUpTO = null;\n            var panningMouseMoveTO = null;\n            $(\"body\").on(\"mouseup.\" + pluginName + (zoomOptions.touch ? \" touchend.\" + pluginName : \"\"), function () {\n                mousedown = false;\n                clearTimeout(panningMouseUpTO);\n                clearTimeout(panningMouseMoveTO);\n                panningMouseUpTO = setTimeout(function () {\n                    self.panning = false;\n                }, self.panningEndFilteringTO);\n            });\n\n            self.$map.on(\"mousedown.\" + pluginName + (zoomOptions.touch ? \" touchstart.\" + pluginName : \"\"), function (e) {\n                clearTimeout(panningMouseUpTO);\n                clearTimeout(panningMouseMoveTO);\n                if (e.pageX !== undefined) {\n                    mousedown = true;\n                    previousX = e.pageX;\n                    previousY = e.pageY;\n                } else {\n                    if (e.originalEvent.touches.length === 1) {\n                        mousedown = true;\n                        previousX = e.originalEvent.touches[0].pageX;\n                        previousY = e.originalEvent.touches[0].pageY;\n                    }\n                }\n            }).on(\"mousemove.\" + pluginName + (zoomOptions.touch ? \" touchmove.\" + pluginName : \"\"), function (e) {\n                var currentLevel = self.zoomData.zoomLevel;\n                var pageX = 0;\n                var pageY = 0;\n\n                clearTimeout(panningMouseUpTO);\n                clearTimeout(panningMouseMoveTO);\n\n                if (e.pageX !== undefined) {\n                    pageX = e.pageX;\n                    pageY = e.pageY;\n                } else {\n                    if (e.originalEvent.touches.length === 1) {\n                        pageX = e.originalEvent.touches[0].pageX;\n                        pageY = e.originalEvent.touches[0].pageY;\n                    } else {\n                        mousedown = false;\n                    }\n                }\n\n                if (mousedown && currentLevel !== 0) {\n                    var offsetX = (previousX - pageX) / (1 + (currentLevel * zoomOptions.step)) * (mapWidth / self.paper.width);\n                    var offsetY = (previousY - pageY) / (1 + (currentLevel * zoomOptions.step)) * (mapHeight / self.paper.height);\n                    var panX = Math.min(Math.max(0, self.currentViewBox.x + offsetX), (mapWidth - self.currentViewBox.w));\n                    var panY = Math.min(Math.max(0, self.currentViewBox.y + offsetY), (mapHeight - self.currentViewBox.h));\n\n                    if (Math.abs(offsetX) > 5 || Math.abs(offsetY) > 5) {\n                        $.extend(self.zoomData, {\n                            panX: panX,\n                            panY: panY,\n                            zoomX: panX + self.currentViewBox.w / 2,\n                            zoomY: panY + self.currentViewBox.h / 2\n                        });\n                        self.setViewBox(panX, panY, self.currentViewBox.w, self.currentViewBox.h);\n\n                        panningMouseMoveTO = setTimeout(function () {\n                            self.$map.trigger(\"afterPanning\", {\n                                x1: panX,\n                                y1: panY,\n                                x2: (panX + self.currentViewBox.w),\n                                y2: (panY + self.currentViewBox.h)\n                            });\n                        }, self.panningFilteringTO);\n\n                        previousX = pageX;\n                        previousY = pageY;\n                        self.panning = true;\n                    }\n                    return false;\n                }\n            });\n        },\n\n        /*\n         * Map a mouse position to a map position\n         *      Transformation principle:\n         *          ** start with (pageX, pageY) absolute mouse coordinate\n         *          - Apply translation: take into accounts the map offset in the page\n         *          ** from this point, we have relative mouse coordinate\n         *          - Apply homothetic transformation: take into accounts initial factor of map sizing (fullWidth / actualWidth)\n         *          - Apply homothetic transformation: take into accounts the zoom factor\n         *          ** from this point, we have relative map coordinate\n         *          - Apply translation: take into accounts the current panning of the map\n         *          ** from this point, we have absolute map coordinate\n         * @param pageX: mouse client coordinate on X\n         * @param pageY: mouse client coordinate on Y\n         * @return map coordinate {x, y}\n         */\n        mapPagePositionToXY: function(pageX, pageY) {\n            var self = this;\n            var offset = self.$map.offset();\n            var initFactor = (self.options.map.width) ? (self.mapConf.width / self.options.map.width) : (self.mapConf.width / self.$map.width());\n            var zoomFactor = 1 / (1 + (self.zoomData.zoomLevel * self.options.map.zoom.step));\n            return {\n                x: (zoomFactor * initFactor * (pageX - offset.left)) + self.zoomData.panX,\n                y: (zoomFactor * initFactor * (pageY - offset.top)) + self.zoomData.panY\n            };\n        },\n\n        /*\n         * Zoom on the map\n         *\n         * zoomOptions.animDuration zoom duration\n         *\n         * zoomOptions.level        level of the zoom between minLevel and maxLevel (absolute number, or relative string +1 or -1)\n         * zoomOptions.fixedCenter  set to true in order to preserve the position of x,y in the canvas when zoomed\n         *\n         * zoomOptions.x            x coordinate of the point to focus on\n         * zoomOptions.y            y coordinate of the point to focus on\n         * - OR -\n         * zoomOptions.latitude     latitude of the point to focus on\n         * zoomOptions.longitude    longitude of the point to focus on\n         * - OR -\n         * zoomOptions.plot         plot ID to focus on\n         * - OR -\n         * zoomOptions.area         area ID to focus on\n         * zoomOptions.areaMargin   margin (in pixels) around the area\n         *\n         * If an area ID is specified, the algorithm will override the zoom level to focus on the area\n         * but it may be limited by the min/max zoom level limits set at initialization.\n         *\n         * If no coordinates are specified, the zoom will be focused on the center of the current view box\n         *\n         */\n        onZoomEvent: function (e, zoomOptions) {\n            var self = this;\n\n            // new Top/Left corner coordinates\n            var panX;\n            var panY;\n            // new Width/Height viewbox size\n            var panWidth;\n            var panHeight;\n\n            // Zoom level in absolute scale (from 0 to max, by step of 1)\n            var zoomLevel = self.zoomData.zoomLevel;\n\n            // Relative zoom level (from 1 to max, by step of 0.25 (default))\n            var previousRelativeZoomLevel = 1 + self.zoomData.zoomLevel * self.options.map.zoom.step;\n            var relativeZoomLevel;\n\n            var animDuration = (zoomOptions.animDuration !== undefined) ? zoomOptions.animDuration : self.options.map.zoom.animDuration;\n\n            if (zoomOptions.area !== undefined) {\n                /* An area is given\n                 * We will define x/y coordinate AND a new zoom level to fill the area\n                 */\n                if (self.areas[zoomOptions.area] === undefined) throw new Error(\"Unknown area '\" + zoomOptions.area + \"'\");\n                var areaMargin = (zoomOptions.areaMargin !== undefined) ? zoomOptions.areaMargin : 10;\n                var areaBBox = self.areas[zoomOptions.area].mapElem.getBBox();\n                var areaFullWidth = areaBBox.width + 2 * areaMargin;\n                var areaFullHeight = areaBBox.height + 2 * areaMargin;\n\n                // Compute new x/y focus point (center of area)\n                zoomOptions.x = areaBBox.cx;\n                zoomOptions.y = areaBBox.cy;\n\n                // Compute a new absolute zoomLevel value (inverse of relative -> absolute)\n                // Take the min between zoomLevel on width vs. height to be able to see the whole area\n                zoomLevel = Math.min(Math.floor((self.mapConf.width / areaFullWidth - 1) / self.options.map.zoom.step),\n                                     Math.floor((self.mapConf.height / areaFullHeight - 1) / self.options.map.zoom.step));\n\n            } else {\n\n                // Get user defined zoom level\n                if (zoomOptions.level !== undefined) {\n                    if (typeof zoomOptions.level === \"string\") {\n                        // level is a string, either \"n\", \"+n\" or \"-n\"\n                        if ((zoomOptions.level.slice(0, 1) === '+') || (zoomOptions.level.slice(0, 1) === '-')) {\n                            // zoomLevel is relative\n                            zoomLevel = self.zoomData.zoomLevel + parseInt(zoomOptions.level, 10);\n                        } else {\n                            // zoomLevel is absolute\n                            zoomLevel = parseInt(zoomOptions.level, 10);\n                        }\n                    } else {\n                        // level is integer\n                        if (zoomOptions.level < 0) {\n                            // zoomLevel is relative\n                            zoomLevel = self.zoomData.zoomLevel + zoomOptions.level;\n                        } else {\n                            // zoomLevel is absolute\n                            zoomLevel = zoomOptions.level;\n                        }\n                    }\n                }\n\n                if (zoomOptions.plot !== undefined) {\n                    if (self.plots[zoomOptions.plot] === undefined) throw new Error(\"Unknown plot '\" + zoomOptions.plot + \"'\");\n\n                    zoomOptions.x = self.plots[zoomOptions.plot].coords.x;\n                    zoomOptions.y = self.plots[zoomOptions.plot].coords.y;\n                } else {\n                    if (zoomOptions.latitude !== undefined && zoomOptions.longitude !== undefined) {\n                        var coords = self.mapConf.getCoords(zoomOptions.latitude, zoomOptions.longitude);\n                        zoomOptions.x = coords.x;\n                        zoomOptions.y = coords.y;\n                    }\n\n                    if (zoomOptions.x === undefined) {\n                        zoomOptions.x = self.currentViewBox.x + self.currentViewBox.w / 2;\n                    }\n\n                    if (zoomOptions.y === undefined) {\n                        zoomOptions.y = self.currentViewBox.y + self.currentViewBox.h / 2;\n                    }\n                }\n            }\n\n            // Make sure we stay in the zoom level boundaries\n            zoomLevel = Math.min(Math.max(zoomLevel, self.options.map.zoom.minLevel), self.options.map.zoom.maxLevel);\n\n            // Compute relative zoom level\n            relativeZoomLevel = 1 + zoomLevel * self.options.map.zoom.step;\n\n            // Compute panWidth / panHeight\n            panWidth = self.mapConf.width / relativeZoomLevel;\n            panHeight = self.mapConf.height / relativeZoomLevel;\n\n            if (zoomLevel === 0) {\n                panX = 0;\n                panY = 0;\n            } else {\n                if (zoomOptions.fixedCenter !== undefined && zoomOptions.fixedCenter === true) {\n                    panX = self.zoomData.panX + ((zoomOptions.x - self.zoomData.panX) * (relativeZoomLevel - previousRelativeZoomLevel)) / relativeZoomLevel;\n                    panY = self.zoomData.panY + ((zoomOptions.y - self.zoomData.panY) * (relativeZoomLevel - previousRelativeZoomLevel)) / relativeZoomLevel;\n                } else {\n                    panX = zoomOptions.x - panWidth / 2;\n                    panY = zoomOptions.y - panHeight / 2;\n                }\n\n                // Make sure we stay in the map boundaries\n                panX = Math.min(Math.max(0, panX), self.mapConf.width - panWidth);\n                panY = Math.min(Math.max(0, panY), self.mapConf.height - panHeight);\n            }\n\n            // Update zoom level of the map\n            if (relativeZoomLevel === previousRelativeZoomLevel && panX === self.zoomData.panX && panY === self.zoomData.panY) return;\n\n            if (animDuration > 0) {\n                self.animateViewBox(panX, panY, panWidth, panHeight, animDuration, self.options.map.zoom.animEasing);\n            } else {\n                self.setViewBox(panX, panY, panWidth, panHeight);\n                clearTimeout(self.zoomTO);\n                self.zoomTO = setTimeout(function () {\n                    self.$map.trigger(\"afterZoom\", {\n                        x1: panX,\n                        y1: panY,\n                        x2: panX + panWidth,\n                        y2: panY + panHeight\n                    });\n                }, self.zoomFilteringTO);\n            }\n\n            $.extend(self.zoomData, {\n                zoomLevel: zoomLevel,\n                panX: panX,\n                panY: panY,\n                zoomX: panX + panWidth / 2,\n                zoomY: panY + panHeight / 2\n            });\n        },\n\n        /*\n         * Show some element in range defined by user\n         * Triggered by user $(\".mapcontainer\").trigger(\"showElementsInRange\", [opt]);\n         *\n         * @param opt the options\n         *  opt.hiddenOpacity opacity for hidden element (default = 0.3)\n         *  opt.animDuration animation duration in ms (default = 0)\n         *  opt.afterShowRange callback\n         *  opt.ranges the range to show:\n         *  Example:\n         *  opt.ranges = {\n         *      'plot' : {\n         *          0 : {                        // valueIndex\n         *              'min': 1000,\n         *              'max': 1200\n         *          },\n         *          1 : {                        // valueIndex\n         *              'min': 10,\n         *              'max': 12\n         *          }\n         *      },\n         *      'area' : {\n         *          {'min': 10, 'max': 20}    // No valueIndex, only an object, use 0 as valueIndex (easy case)\n         *      }\n         *  }\n         */\n        onShowElementsInRange: function(e, opt) {\n            var self = this;\n\n            // set animDuration to default if not defined\n            if (opt.animDuration === undefined) {\n                opt.animDuration = 0;\n            }\n\n            // set hiddenOpacity to default if not defined\n            if (opt.hiddenOpacity === undefined) {\n                opt.hiddenOpacity = 0.3;\n            }\n\n            // handle area\n            if (opt.ranges && opt.ranges.area) {\n                self.showElemByRange(opt.ranges.area, self.areas, opt.hiddenOpacity, opt.animDuration);\n            }\n\n            // handle plot\n            if (opt.ranges && opt.ranges.plot) {\n                self.showElemByRange(opt.ranges.plot, self.plots, opt.hiddenOpacity, opt.animDuration);\n            }\n\n            // handle link\n            if (opt.ranges && opt.ranges.link) {\n                self.showElemByRange(opt.ranges.link, self.links, opt.hiddenOpacity, opt.animDuration);\n            }\n\n            // Call user callback\n            if (opt.afterShowRange) opt.afterShowRange();\n        },\n\n        /*\n         * Show some element in range\n         * @param ranges: the ranges\n         * @param elems: list of element on which to check against previous range\n         * @hiddenOpacity: the opacity when hidden\n         * @animDuration: the animation duration\n         */\n        showElemByRange: function(ranges, elems, hiddenOpacity, animDuration) {\n            var self = this;\n            // Hold the final opacity value for all elements consolidated after applying each ranges\n            // This allow to set the opacity only once for each elements\n            var elemsFinalOpacity = {};\n\n            // set object with one valueIndex to 0 if we have directly the min/max\n            if (ranges.min !== undefined || ranges.max !== undefined) {\n                ranges = {0: ranges};\n            }\n\n            // Loop through each valueIndex\n            $.each(ranges, function (valueIndex) {\n                var range = ranges[valueIndex];\n                // Check if user defined at least a min or max value\n                if (range.min === undefined && range.max === undefined) {\n                    return true; // skip this iteration (each loop), goto next range\n                }\n                // Loop through each elements\n                $.each(elems, function (id) {\n                    var elemValue = elems[id].options.value;\n                    // set value with one valueIndex to 0 if not object\n                    if (typeof elemValue !== \"object\") {\n                        elemValue = [elemValue];\n                    }\n                    // Check existence of this value index\n                    if (elemValue[valueIndex] === undefined) {\n                        return true; // skip this iteration (each loop), goto next element\n                    }\n                    // Check if in range\n                    if ((range.min !== undefined && elemValue[valueIndex] < range.min) ||\n                        (range.max !== undefined && elemValue[valueIndex] > range.max)) {\n                        // Element not in range\n                        elemsFinalOpacity[id] = hiddenOpacity;\n                    } else {\n                        // Element in range\n                        elemsFinalOpacity[id] = 1;\n                    }\n                });\n            });\n            // Now that we looped through all ranges, we can really assign the final opacity\n            $.each(elemsFinalOpacity, function (id) {\n                self.setElementOpacity(elems[id], elemsFinalOpacity[id], animDuration);\n            });\n        },\n\n        /*\n         * Set element opacity\n         * Handle elem.mapElem and elem.textElem\n         * @param elem the element\n         * @param opacity the opacity to apply\n         * @param animDuration the animation duration to use\n         */\n        setElementOpacity: function(elem, opacity, animDuration) {\n            var self = this;\n\n            // Ensure no animation is running\n            //elem.mapElem.stop();\n            //if (elem.textElem) elem.textElem.stop();\n\n            // If final opacity is not null, ensure element is shown before proceeding\n            if (opacity > 0) {\n                elem.mapElem.show();\n                if (elem.textElem) elem.textElem.show();\n            }\n\n            self.animate(elem.mapElem, {\"opacity\": opacity}, animDuration, function () {\n                // If final attribute is 0, hide\n                if (opacity === 0) elem.mapElem.hide();\n            });\n\n            self.animate(elem.textElem, {\"opacity\": opacity}, animDuration, function () {\n                // If final attribute is 0, hide\n                if (opacity === 0) elem.textElem.hide();\n            });\n        },\n\n        /*\n         * Update the current map\n         *\n         * Refresh attributes and tooltips for areas and plots\n         * @param opt option for the refresh :\n         *  opt.mapOptions: options to update for plots and areas\n         *  opt.replaceOptions: whether mapsOptions should entirely replace current map options, or just extend it\n         *  opt.opt.newPlots new plots to add to the map\n         *  opt.newLinks new links to add to the map\n         *  opt.deletePlotKeys plots to delete from the map (array, or \"all\" to remove all plots)\n         *  opt.deleteLinkKeys links to remove from the map (array, or \"all\" to remove all links)\n         *  opt.setLegendElemsState the state of legend elements to be set : show (default) or hide\n         *  opt.animDuration animation duration in ms (default = 0)\n         *  opt.afterUpdate hook that allows to add custom processing on the map\n         */\n        onUpdateEvent: function (e, opt) {\n            var self = this;\n            // Abort if opt is undefined\n            if (typeof opt !== \"object\")  return;\n\n            var i = 0;\n            var animDuration = (opt.animDuration) ? opt.animDuration : 0;\n\n            // This function remove an element using animation (or not, depending on animDuration)\n            // Used for deletePlotKeys and deleteLinkKeys\n            var fnRemoveElement = function (elem) {\n\n                self.animate(elem.mapElem, {\"opacity\": 0}, animDuration, function () {\n                    elem.mapElem.remove();\n                });\n\n                self.animate(elem.textElem, {\"opacity\": 0}, animDuration, function () {\n                    elem.textElem.remove();\n                });\n            };\n\n            // This function show an element using animation\n            // Used for newPlots and newLinks\n            var fnShowElement = function (elem) {\n                // Starts with hidden elements\n                elem.mapElem.attr({opacity: 0});\n                if (elem.textElem) elem.textElem.attr({opacity: 0});\n                // Set final element opacity\n                self.setElementOpacity(\n                    elem,\n                    (elem.mapElem.originalAttrs.opacity !== undefined) ? elem.mapElem.originalAttrs.opacity : 1,\n                    animDuration\n                );\n            };\n\n            if (typeof opt.mapOptions === \"object\") {\n                if (opt.replaceOptions === true) self.options = self.extendDefaultOptions(opt.mapOptions);\n                else $.extend(true, self.options, opt.mapOptions);\n\n                // IF we update areas, plots or legend, then reset all legend state to \"show\"\n                if (opt.mapOptions.areas !== undefined || opt.mapOptions.plots !== undefined || opt.mapOptions.legend !== undefined) {\n                    $(\"[data-type='legend-elem']\", self.$container).each(function (id, elem) {\n                        if ($(elem).attr('data-hidden') === \"1\") {\n                            // Toggle state of element by clicking\n                            $(elem).trigger(\"click\", {hideOtherElems: false, animDuration: animDuration});\n                        }\n                    });\n                }\n            }\n\n            // Delete plots by name if deletePlotKeys is array\n            if (typeof opt.deletePlotKeys === \"object\") {\n                for (; i < opt.deletePlotKeys.length; i++) {\n                    if (self.plots[opt.deletePlotKeys[i]] !== undefined) {\n                        fnRemoveElement(self.plots[opt.deletePlotKeys[i]]);\n                        delete self.plots[opt.deletePlotKeys[i]];\n                    }\n                }\n                // Delete ALL plots if deletePlotKeys is set to \"all\"\n            } else if (opt.deletePlotKeys === \"all\") {\n                $.each(self.plots, function (id, elem) {\n                    fnRemoveElement(elem);\n                });\n                // Empty plots object\n                self.plots = {};\n            }\n\n            // Delete links by name if deleteLinkKeys is array\n            if (typeof opt.deleteLinkKeys === \"object\") {\n                for (i = 0; i < opt.deleteLinkKeys.length; i++) {\n                    if (self.links[opt.deleteLinkKeys[i]] !== undefined) {\n                        fnRemoveElement(self.links[opt.deleteLinkKeys[i]]);\n                        delete self.links[opt.deleteLinkKeys[i]];\n                    }\n                }\n                // Delete ALL links if deleteLinkKeys is set to \"all\"\n            } else if (opt.deleteLinkKeys === \"all\") {\n                $.each(self.links, function (id, elem) {\n                    fnRemoveElement(elem);\n                });\n                // Empty links object\n                self.links = {};\n            }\n\n            // New plots\n            if (typeof opt.newPlots === \"object\") {\n                $.each(opt.newPlots, function (id) {\n                    if (self.plots[id] === undefined) {\n                        self.options.plots[id] = opt.newPlots[id];\n                        self.plots[id] = self.drawPlot(id);\n                        if (animDuration > 0) {\n                            fnShowElement(self.plots[id]);\n                        }\n                    }\n                });\n            }\n\n            // New links\n            if (typeof opt.newLinks === \"object\") {\n                var newLinks = self.drawLinksCollection(opt.newLinks);\n                $.extend(self.links, newLinks);\n                $.extend(self.options.links, opt.newLinks);\n                if (animDuration > 0) {\n                    $.each(newLinks, function (id) {\n                        fnShowElement(newLinks[id]);\n                    });\n                }\n            }\n\n            // Update areas attributes and tooltips\n            $.each(self.areas, function (id) {\n                // Avoid updating unchanged elements\n                if ((typeof opt.mapOptions === \"object\" &&\n                    (\n                        (typeof opt.mapOptions.map === \"object\" && typeof opt.mapOptions.map.defaultArea === \"object\") ||\n                        (typeof opt.mapOptions.areas === \"object\" && typeof opt.mapOptions.areas[id] === \"object\") ||\n                        (typeof opt.mapOptions.legend === \"object\" && typeof opt.mapOptions.legend.area === \"object\")\n                    )) || opt.replaceOptions === true\n                ) {\n                    self.areas[id].options = self.getElemOptions(\n                        self.options.map.defaultArea,\n                        (self.options.areas[id] ? self.options.areas[id] : {}),\n                        self.options.legend.area\n                    );\n                    self.updateElem(self.areas[id], animDuration);\n                }\n            });\n\n            // Update plots attributes and tooltips\n            $.each(self.plots, function (id) {\n                // Avoid updating unchanged elements\n                if ((typeof opt.mapOptions ===\"object\" &&\n                    (\n                        (typeof opt.mapOptions.map === \"object\" && typeof opt.mapOptions.map.defaultPlot === \"object\") ||\n                        (typeof opt.mapOptions.plots === \"object\" && typeof opt.mapOptions.plots[id] === \"object\") ||\n                        (typeof opt.mapOptions.legend === \"object\" && typeof opt.mapOptions.legend.plot === \"object\")\n                    )) || opt.replaceOptions === true\n                ) {\n                    self.plots[id].options = self.getElemOptions(\n                        self.options.map.defaultPlot,\n                        (self.options.plots[id] ? self.options.plots[id] : {}),\n                        self.options.legend.plot\n                    );\n\n                    self.setPlotCoords(self.plots[id]);\n                    self.setPlotAttributes(self.plots[id]);\n\n                    self.updateElem(self.plots[id], animDuration);\n                }\n            });\n\n            // Update links attributes and tooltips\n            $.each(self.links, function (id) {\n                // Avoid updating unchanged elements\n                if ((typeof opt.mapOptions === \"object\" &&\n                    (\n                        (typeof opt.mapOptions.map === \"object\" && typeof opt.mapOptions.map.defaultLink === \"object\") ||\n                        (typeof opt.mapOptions.links === \"object\" && typeof opt.mapOptions.links[id] === \"object\")\n                    )) || opt.replaceOptions === true\n                ) {\n                    self.links[id].options = self.getElemOptions(\n                        self.options.map.defaultLink,\n                        (self.options.links[id] ? self.options.links[id] : {}),\n                        {}\n                    );\n\n                    self.updateElem(self.links[id], animDuration);\n                }\n            });\n\n            // Update legends\n            if (opt.mapOptions && (\n                    (typeof opt.mapOptions.legend === \"object\") ||\n                    (typeof opt.mapOptions.map === \"object\" && typeof opt.mapOptions.map.defaultArea === \"object\") ||\n                    (typeof opt.mapOptions.map === \"object\" && typeof opt.mapOptions.map.defaultPlot === \"object\")\n                )) {\n                // Show all elements on the map before updating the legends\n                $(\"[data-type='legend-elem']\", self.$container).each(function (id, elem) {\n                    if ($(elem).attr('data-hidden') === \"1\") {\n                        $(elem).trigger(\"click\", {hideOtherElems: false, animDuration: animDuration});\n                    }\n                });\n\n                self.createLegends(\"area\", self.areas, 1);\n                if (self.options.map.width) {\n                    self.createLegends(\"plot\", self.plots, (self.options.map.width / self.mapConf.width));\n                } else {\n                    self.createLegends(\"plot\", self.plots, (self.$map.width() / self.mapConf.width));\n                }\n            }\n\n            // Hide/Show all elements based on showlegendElems\n            //      Toggle (i.e. click) only if:\n            //          - slice legend is shown AND we want to hide\n            //          - slice legend is hidden AND we want to show\n            if (typeof opt.setLegendElemsState === \"object\") {\n                // setLegendElemsState is an object listing the legend we want to hide/show\n                $.each(opt.setLegendElemsState, function (legendCSSClass, action) {\n                    // Search for the legend\n                    var $legend = self.$container.find(\".\" + legendCSSClass)[0];\n                    if ($legend !== undefined) {\n                        // Select all elem inside this legend\n                        $(\"[data-type='legend-elem']\", $legend).each(function (id, elem) {\n                            if (($(elem).attr('data-hidden') === \"0\" && action === \"hide\") ||\n                                ($(elem).attr('data-hidden') === \"1\" && action === \"show\")) {\n                                // Toggle state of element by clicking\n                                $(elem).trigger(\"click\", {hideOtherElems: false, animDuration: animDuration});\n                            }\n                        });\n                    }\n                });\n            } else {\n                // setLegendElemsState is a string, or is undefined\n                // Default : \"show\"\n                var action = (opt.setLegendElemsState === \"hide\") ? \"hide\" : \"show\";\n\n                $(\"[data-type='legend-elem']\", self.$container).each(function (id, elem) {\n                    if (($(elem).attr('data-hidden') === \"0\" && action === \"hide\") ||\n                        ($(elem).attr('data-hidden') === \"1\" && action === \"show\")) {\n                        // Toggle state of element by clicking\n                        $(elem).trigger(\"click\", {hideOtherElems: false, animDuration: animDuration});\n                    }\n                });\n            }\n\n            // Always rebind custom events on update\n            self.initDelegatedCustomEvents();\n\n            if (opt.afterUpdate) opt.afterUpdate(self.$container, self.paper, self.areas, self.plots, self.options, self.links);\n        },\n\n        /*\n         * Set plot coordinates\n         * @param plot object plot element\n         */\n        setPlotCoords: function(plot) {\n            var self = this;\n\n            if (plot.options.x !== undefined && plot.options.y !== undefined) {\n                plot.coords = {\n                    x: plot.options.x,\n                    y: plot.options.y\n                };\n            } else if (plot.options.plotsOn !== undefined && self.areas[plot.options.plotsOn] !== undefined) {\n                var areaBBox = self.areas[plot.options.plotsOn].mapElem.getBBox();\n                plot.coords = {\n                    x: areaBBox.cx,\n                    y: areaBBox.cy\n                };\n            } else {\n                plot.coords = self.mapConf.getCoords(plot.options.latitude, plot.options.longitude);\n            }\n        },\n\n        /*\n         * Set plot size attributes according to its type\n         * Note: for SVG, plot.mapElem needs to exists beforehand\n         * @param plot object plot element\n         */\n        setPlotAttributes: function(plot) {\n            if (plot.options.type === \"square\") {\n                plot.options.attrs.width = plot.options.size;\n                plot.options.attrs.height = plot.options.size;\n                plot.options.attrs.x = plot.coords.x - (plot.options.size / 2);\n                plot.options.attrs.y = plot.coords.y - (plot.options.size / 2);\n            } else if (plot.options.type === \"image\") {\n                plot.options.attrs.src = plot.options.url;\n                plot.options.attrs.width = plot.options.width;\n                plot.options.attrs.height = plot.options.height;\n                plot.options.attrs.x = plot.coords.x - (plot.options.width / 2);\n                plot.options.attrs.y = plot.coords.y - (plot.options.height / 2);\n            } else if (plot.options.type === \"svg\") {\n                plot.options.attrs.path = plot.options.path;\n\n                // Init transform string\n                if (plot.options.attrs.transform === undefined) {\n                    plot.options.attrs.transform = \"\";\n                }\n\n                // Retrieve original boundary box if not defined\n                if (plot.mapElem.originalBBox === undefined) {\n                    plot.mapElem.originalBBox = plot.mapElem.getBBox();\n                }\n\n                // The base transform will resize the SVG path to the one specified by width/height\n                // and also move the path to the actual coordinates\n                plot.mapElem.baseTransform = \"m\" + (plot.options.width / plot.mapElem.originalBBox.width) + \",0,0,\" +\n                                                   (plot.options.height / plot.mapElem.originalBBox.height) + \",\" +\n                                                   (plot.coords.x - plot.options.width / 2) + \",\" +\n                                                   (plot.coords.y - plot.options.height / 2);\n\n                plot.options.attrs.transform = plot.mapElem.baseTransform + plot.options.attrs.transform;\n\n            } else { // Default : circle\n                plot.options.attrs.x = plot.coords.x;\n                plot.options.attrs.y = plot.coords.y;\n                plot.options.attrs.r = plot.options.size / 2;\n            }\n        },\n\n        /*\n         * Draw all links between plots on the paper\n         */\n        drawLinksCollection: function (linksCollection) {\n            var self = this;\n            var p1 = {};\n            var p2 = {};\n            var coordsP1 = {};\n            var coordsP2 = {};\n            var links = {};\n\n            $.each(linksCollection, function (id) {\n                var elemOptions = self.getElemOptions(self.options.map.defaultLink, linksCollection[id], {});\n\n                if (typeof linksCollection[id].between[0] === 'string') {\n                    p1 = self.options.plots[linksCollection[id].between[0]];\n                } else {\n                    p1 = linksCollection[id].between[0];\n                }\n\n                if (typeof linksCollection[id].between[1] === 'string') {\n                    p2 = self.options.plots[linksCollection[id].between[1]];\n                } else {\n                    p2 = linksCollection[id].between[1];\n                }\n\n                if (p1.plotsOn !== undefined && self.areas[p1.plotsOn] !== undefined) {\n                    var p1BBox = self.areas[p1.plotsOn].mapElem.getBBox();\n                    coordsP1 = {\n                        x: p1BBox.cx,\n                        y: p1BBox.cy\n                    };\n                }\n                else if (p1.latitude !== undefined && p1.longitude !== undefined) {\n                    coordsP1 = self.mapConf.getCoords(p1.latitude, p1.longitude);\n                } else {\n                    coordsP1.x = p1.x;\n                    coordsP1.y = p1.y;\n                }\n\n                if (p2.plotsOn !== undefined && self.areas[p2.plotsOn] !== undefined) {\n                    var p2BBox = self.areas[p2.plotsOn].mapElem.getBBox();\n                    coordsP2 = {\n                        x: p2BBox.cx,\n                        y: p2BBox.cy\n                    };\n                }\n                else if (p2.latitude !== undefined && p2.longitude !== undefined) {\n                    coordsP2 = self.mapConf.getCoords(p2.latitude, p2.longitude);\n                } else {\n                    coordsP2.x = p2.x;\n                    coordsP2.y = p2.y;\n                }\n                links[id] = self.drawLink(id, coordsP1.x, coordsP1.y, coordsP2.x, coordsP2.y, elemOptions);\n            });\n            return links;\n        },\n\n        /*\n         * Draw a curved link between two couples of coordinates a(xa,ya) and b(xb, yb) on the paper\n         */\n        drawLink: function (id, xa, ya, xb, yb, elemOptions) {\n            var self = this;\n            var link = {\n                options: elemOptions\n            };\n            // Compute the \"curveto\" SVG point, d(x,y)\n            // c(xc, yc) is the center of (xa,ya) and (xb, yb)\n            var xc = (xa + xb) / 2;\n            var yc = (ya + yb) / 2;\n\n            // Equation for (cd) : y = acd * x + bcd (d is the cure point)\n            var acd = -1 / ((yb - ya) / (xb - xa));\n            var bcd = yc - acd * xc;\n\n            // dist(c,d) = dist(a,b) (=abDist)\n            var abDist = Math.sqrt((xb - xa) * (xb - xa) + (yb - ya) * (yb - ya));\n\n            // Solution for equation dist(cd) = sqrt((xd - xc)² + (yd - yc)²)\n            // dist(c,d)² = (xd - xc)² + (yd - yc)²\n            // We assume that dist(c,d) = dist(a,b)\n            // so : (xd - xc)² + (yd - yc)² - dist(a,b)² = 0\n            // With the factor : (xd - xc)² + (yd - yc)² - (factor*dist(a,b))² = 0\n            // (xd - xc)² + (acd*xd + bcd - yc)² - (factor*dist(a,b))² = 0\n            var a = 1 + acd * acd;\n            var b = -2 * xc + 2 * acd * bcd - 2 * acd * yc;\n            var c = xc * xc + bcd * bcd - bcd * yc - yc * bcd + yc * yc - ((elemOptions.factor * abDist) * (elemOptions.factor * abDist));\n            var delta = b * b - 4 * a * c;\n            var x = 0;\n            var y = 0;\n\n            // There are two solutions, we choose one or the other depending on the sign of the factor\n            if (elemOptions.factor > 0) {\n                x = (-b + Math.sqrt(delta)) / (2 * a);\n                y = acd * x + bcd;\n            } else {\n                x = (-b - Math.sqrt(delta)) / (2 * a);\n                y = acd * x + bcd;\n            }\n\n            link.mapElem = self.paper.path(\"m \" + xa + \",\" + ya + \" C \" + x + \",\" + y + \" \" + xb + \",\" + yb + \" \" + xb + \",\" + yb + \"\");\n\n            self.initElem(id, 'link', link);\n\n            return link;\n        },\n\n        /*\n         * Check wether newAttrs object bring modifications to originalAttrs object\n         */\n        isAttrsChanged: function(originalAttrs, newAttrs) {\n            for (var key in newAttrs) {\n                if (newAttrs.hasOwnProperty(key) && typeof originalAttrs[key] === 'undefined' || newAttrs[key] !== originalAttrs[key]) {\n                    return true;\n                }\n            }\n            return false;\n        },\n\n        /*\n         * Update the element \"elem\" on the map with the new options\n         */\n        updateElem: function (elem, animDuration) {\n            var self = this;\n            var mapElemBBox;\n            var plotOffsetX;\n            var plotOffsetY;\n\n            if (elem.options.toFront === true) {\n                elem.mapElem.toFront();\n            }\n\n            // Set the cursor attribute related to the HTML link\n            if (elem.options.href !== undefined) {\n                elem.options.attrs.cursor = \"pointer\";\n                if (elem.options.text) elem.options.text.attrs.cursor = \"pointer\";\n            } else {\n                // No HTML links, check if a cursor was defined to pointer\n                if (elem.mapElem.attrs.cursor === 'pointer') {\n                    elem.options.attrs.cursor = \"auto\";\n                    if (elem.options.text) elem.options.text.attrs.cursor = \"auto\";\n                }\n            }\n\n            // Update the label\n            if (elem.textElem) {\n                // Update text attr\n                elem.options.text.attrs.text = elem.options.text.content;\n\n                // Get mapElem size, and apply an offset to handle future width/height change\n                mapElemBBox = elem.mapElem.getBBox();\n                if (elem.options.size || (elem.options.width && elem.options.height)) {\n                    if (elem.options.type === \"image\" || elem.options.type === \"svg\") {\n                        plotOffsetX = (elem.options.width - mapElemBBox.width) / 2;\n                        plotOffsetY = (elem.options.height - mapElemBBox.height) / 2;\n                    } else {\n                        plotOffsetX = (elem.options.size - mapElemBBox.width) / 2;\n                        plotOffsetY = (elem.options.size - mapElemBBox.height) / 2;\n                    }\n                    mapElemBBox.x -= plotOffsetX;\n                    mapElemBBox.x2 += plotOffsetX;\n                    mapElemBBox.y -= plotOffsetY;\n                    mapElemBBox.y2 += plotOffsetY;\n                }\n\n                // Update position attr\n                var textPosition = self.getTextPosition(mapElemBBox, elem.options.text.position, elem.options.text.margin);\n                elem.options.text.attrs.x = textPosition.x;\n                elem.options.text.attrs.y = textPosition.y;\n                elem.options.text.attrs['text-anchor'] = textPosition.textAnchor;\n\n                // Update text element attrs and attrsHover\n                self.setHoverOptions(elem.textElem, elem.options.text.attrs, elem.options.text.attrsHover);\n\n                if (self.isAttrsChanged(elem.textElem.attrs, elem.options.text.attrs)) {\n                    self.animate(elem.textElem, elem.options.text.attrs, animDuration);\n                }\n            }\n\n            // Update elements attrs and attrsHover\n            self.setHoverOptions(elem.mapElem, elem.options.attrs, elem.options.attrsHover);\n\n            if (self.isAttrsChanged(elem.mapElem.attrs, elem.options.attrs)) {\n                self.animate(elem.mapElem, elem.options.attrs, animDuration);\n            }\n\n            // Update the cssClass\n            if (elem.options.cssClass !== undefined) {\n                $(elem.mapElem.node).removeClass().addClass(elem.options.cssClass);\n            }\n        },\n\n        /*\n         * Draw the plot\n         */\n        drawPlot: function (id) {\n            var self = this;\n            var plot = {};\n\n            // Get plot options and store it\n            plot.options = self.getElemOptions(\n                self.options.map.defaultPlot,\n                (self.options.plots[id] ? self.options.plots[id] : {}),\n                self.options.legend.plot\n            );\n\n            // Set plot coords\n            self.setPlotCoords(plot);\n\n            // Draw SVG before setPlotAttributes()\n            if (plot.options.type === \"svg\") {\n                plot.mapElem = self.paper.path(plot.options.path);\n            }\n\n            // Set plot size attrs\n            self.setPlotAttributes(plot);\n\n            // Draw other types of plots\n            if (plot.options.type === \"square\") {\n                plot.mapElem = self.paper.rect(\n                    plot.options.attrs.x,\n                    plot.options.attrs.y,\n                    plot.options.attrs.width,\n                    plot.options.attrs.height\n                );\n            } else if (plot.options.type === \"image\") {\n                plot.mapElem = self.paper.image(\n                    plot.options.attrs.src,\n                    plot.options.attrs.x,\n                    plot.options.attrs.y,\n                    plot.options.attrs.width,\n                    plot.options.attrs.height\n                );\n            } else if (plot.options.type === \"svg\") {\n                // Nothing to do\n            } else {\n                // Default = circle\n                plot.mapElem = self.paper.circle(\n                    plot.options.attrs.x,\n                    plot.options.attrs.y,\n                    plot.options.attrs.r\n                );\n            }\n\n            self.initElem(id, 'plot', plot);\n\n            return plot;\n        },\n\n        /*\n         * Set user defined handlers for events on areas and plots\n         * @param id the id of the element\n         * @param type the type of the element (area, plot, link)\n         * @param elem the element object {mapElem, textElem, options, ...}\n         */\n        setEventHandlers: function (id, type, elem) {\n            var self = this;\n            $.each(elem.options.eventHandlers, function (event) {\n                if (self.customEventHandlers[event] === undefined) self.customEventHandlers[event] = {};\n                if (self.customEventHandlers[event][type] === undefined) self.customEventHandlers[event][type] = {};\n                self.customEventHandlers[event][type][id] = elem;\n            });\n        },\n\n        /*\n         * Draw a legend for areas and / or plots\n         * @param legendOptions options for the legend to draw\n         * @param legendType the type of the legend : \"area\" or \"plot\"\n         * @param elems collection of plots or areas on the maps\n         * @param legendIndex index of the legend in the conf array\n         */\n        drawLegend: function (legendOptions, legendType, elems, scale, legendIndex) {\n            var self = this;\n            var $legend = {};\n            var legendPaper = {};\n            var width = 0;\n            var height = 0;\n            var title = null;\n            var titleBBox = null;\n            var legendElems = {};\n            var i = 0;\n            var x = 0;\n            var y = 0;\n            var yCenter = 0;\n            var sliceOptions = [];\n\n            $legend = $(\".\" + legendOptions.cssClass, self.$container);\n\n            // Save content for later\n            var initialHTMLContent = $legend.html();\n            $legend.empty();\n\n            legendPaper = new Raphael($legend.get(0));\n            // Set some data to object\n            $(legendPaper.canvas).attr({\"data-legend-type\": legendType, \"data-legend-id\": legendIndex});\n\n            height = width = 0;\n\n            // Set the title of the legend\n            if (legendOptions.title && legendOptions.title !== \"\") {\n                title = legendPaper.text(legendOptions.marginLeftTitle, 0, legendOptions.title).attr(legendOptions.titleAttrs);\n                titleBBox = title.getBBox();\n                title.attr({y: 0.5 * titleBBox.height});\n\n                width = legendOptions.marginLeftTitle + titleBBox.width;\n                height += legendOptions.marginBottomTitle + titleBBox.height;\n            }\n\n            // Calculate attrs (and width, height and r (radius)) for legend elements, and yCenter for horizontal legends\n\n            for (i = 0; i < legendOptions.slices.length; ++i) {\n                var yCenterCurrent = 0;\n\n                sliceOptions[i] = $.extend(true, {}, (legendType === \"plot\") ? self.options.map.defaultPlot : self.options.map.defaultArea, legendOptions.slices[i]);\n\n                if (legendOptions.slices[i].legendSpecificAttrs === undefined) {\n                    legendOptions.slices[i].legendSpecificAttrs = {};\n                }\n\n                $.extend(true, sliceOptions[i].attrs, legendOptions.slices[i].legendSpecificAttrs);\n\n                if (legendType === \"area\") {\n                    if (sliceOptions[i].attrs.width === undefined)\n                        sliceOptions[i].attrs.width = 30;\n                    if (sliceOptions[i].attrs.height === undefined)\n                        sliceOptions[i].attrs.height = 20;\n                } else if (sliceOptions[i].type === \"square\") {\n                    if (sliceOptions[i].attrs.width === undefined)\n                        sliceOptions[i].attrs.width = sliceOptions[i].size;\n                    if (sliceOptions[i].attrs.height === undefined)\n                        sliceOptions[i].attrs.height = sliceOptions[i].size;\n                } else if (sliceOptions[i].type === \"image\" || sliceOptions[i].type === \"svg\") {\n                    if (sliceOptions[i].attrs.width === undefined)\n                        sliceOptions[i].attrs.width = sliceOptions[i].width;\n                    if (sliceOptions[i].attrs.height === undefined)\n                        sliceOptions[i].attrs.height = sliceOptions[i].height;\n                } else {\n                    if (sliceOptions[i].attrs.r === undefined)\n                        sliceOptions[i].attrs.r = sliceOptions[i].size / 2;\n                }\n\n                // Compute yCenter for this legend slice\n                yCenterCurrent = legendOptions.marginBottomTitle;\n                // Add title height if it exists\n                if (title) {\n                    yCenterCurrent += titleBBox.height;\n                }\n                if (legendType === \"plot\" && (sliceOptions[i].type === undefined || sliceOptions[i].type === \"circle\")) {\n                    yCenterCurrent += scale * sliceOptions[i].attrs.r;\n                } else {\n                    yCenterCurrent += scale * sliceOptions[i].attrs.height / 2;\n                }\n                // Update yCenter if current larger\n                yCenter = Math.max(yCenter, yCenterCurrent);\n            }\n\n            if (legendOptions.mode === \"horizontal\") {\n                width = legendOptions.marginLeft;\n            }\n\n            // Draw legend elements (circle, square or image in vertical or horizontal mode)\n            for (i = 0; i < sliceOptions.length; ++i) {\n                var legendElem = {};\n                var legendElemBBox = {};\n                var legendLabel = {};\n\n                if (sliceOptions[i].display === undefined || sliceOptions[i].display === true) {\n                    if (legendType === \"area\") {\n                        if (legendOptions.mode === \"horizontal\") {\n                            x = width + legendOptions.marginLeft;\n                            y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height);\n                        } else {\n                            x = legendOptions.marginLeft;\n                            y = height;\n                        }\n\n                        legendElem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height));\n                    } else if (sliceOptions[i].type === \"square\") {\n                        if (legendOptions.mode === \"horizontal\") {\n                            x = width + legendOptions.marginLeft;\n                            y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height);\n                        } else {\n                            x = legendOptions.marginLeft;\n                            y = height;\n                        }\n\n                        legendElem = legendPaper.rect(x, y, scale * (sliceOptions[i].attrs.width), scale * (sliceOptions[i].attrs.height));\n\n                    } else if (sliceOptions[i].type === \"image\" || sliceOptions[i].type === \"svg\") {\n                        if (legendOptions.mode === \"horizontal\") {\n                            x = width + legendOptions.marginLeft;\n                            y = yCenter - (0.5 * scale * sliceOptions[i].attrs.height);\n                        } else {\n                            x = legendOptions.marginLeft;\n                            y = height;\n                        }\n\n                        if (sliceOptions[i].type === \"image\") {\n                            legendElem = legendPaper.image(\n                                sliceOptions[i].url, x, y, scale * sliceOptions[i].attrs.width, scale * sliceOptions[i].attrs.height);\n                        } else {\n                            legendElem = legendPaper.path(sliceOptions[i].path);\n\n                            if (sliceOptions[i].attrs.transform === undefined) {\n                                sliceOptions[i].attrs.transform = \"\";\n                            }\n                            legendElemBBox = legendElem.getBBox();\n                            sliceOptions[i].attrs.transform = \"m\" + ((scale * sliceOptions[i].width) / legendElemBBox.width) + \",0,0,\" + ((scale * sliceOptions[i].height) / legendElemBBox.height) + \",\" + x + \",\" + y + sliceOptions[i].attrs.transform;\n                        }\n                    } else {\n                        if (legendOptions.mode === \"horizontal\") {\n                            x = width + legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r);\n                            y = yCenter;\n                        } else {\n                            x = legendOptions.marginLeft + scale * (sliceOptions[i].attrs.r);\n                            y = height + scale * (sliceOptions[i].attrs.r);\n                        }\n                        legendElem = legendPaper.circle(x, y, scale * (sliceOptions[i].attrs.r));\n                    }\n\n                    // Set attrs to the element drawn above\n                    delete sliceOptions[i].attrs.width;\n                    delete sliceOptions[i].attrs.height;\n                    delete sliceOptions[i].attrs.r;\n                    legendElem.attr(sliceOptions[i].attrs);\n                    legendElemBBox = legendElem.getBBox();\n\n                    // Draw the label associated with the element\n                    if (legendOptions.mode === \"horizontal\") {\n                        x = width + legendOptions.marginLeft + legendElemBBox.width + legendOptions.marginLeftLabel;\n                        y = yCenter;\n                    } else {\n                        x = legendOptions.marginLeft + legendElemBBox.width + legendOptions.marginLeftLabel;\n                        y = height + (legendElemBBox.height / 2);\n                    }\n\n                    legendLabel = legendPaper.text(x, y, sliceOptions[i].label).attr(legendOptions.labelAttrs);\n\n                    // Update the width and height for the paper\n                    if (legendOptions.mode === \"horizontal\") {\n                        var currentHeight = legendOptions.marginBottom + legendElemBBox.height;\n                        width += legendOptions.marginLeft + legendElemBBox.width + legendOptions.marginLeftLabel + legendLabel.getBBox().width;\n                        if (sliceOptions[i].type !== \"image\" && legendType !== \"area\") {\n                            currentHeight += legendOptions.marginBottomTitle;\n                        }\n                        // Add title height if it exists\n                        if (title) {\n                            currentHeight += titleBBox.height;\n                        }\n                        height = Math.max(height, currentHeight);\n                    } else {\n                        width = Math.max(width, legendOptions.marginLeft + legendElemBBox.width + legendOptions.marginLeftLabel + legendLabel.getBBox().width);\n                        height += legendOptions.marginBottom + legendElemBBox.height;\n                    }\n\n                    // Set some data to elements\n                    $(legendElem.node).attr({\n                        \"data-legend-id\": legendIndex,\n                        \"data-legend-type\": legendType,\n                        \"data-type\": \"legend-elem\",\n                        \"data-id\": i,\n                        \"data-hidden\": 0\n                    });\n                    $(legendLabel.node).attr({\n                        \"data-legend-id\": legendIndex,\n                        \"data-legend-type\": legendType,\n                        \"data-type\": \"legend-label\",\n                        \"data-id\": i,\n                        \"data-hidden\": 0\n                    });\n\n                    // Set array content\n                    // We use similar names like map/plots/links\n                    legendElems[i] = {\n                        mapElem: legendElem,\n                        textElem: legendLabel\n                    };\n\n                    // Hide map elements when the user clicks on a legend item\n                    if (legendOptions.hideElemsOnClick.enabled) {\n                        // Hide/show elements when user clicks on a legend element\n                        legendLabel.attr({cursor: \"pointer\"});\n                        legendElem.attr({cursor: \"pointer\"});\n\n                        self.setHoverOptions(legendElem, sliceOptions[i].attrs, sliceOptions[i].attrs);\n                        self.setHoverOptions(legendLabel, legendOptions.labelAttrs, legendOptions.labelAttrsHover);\n\n                        if (sliceOptions[i].clicked !== undefined && sliceOptions[i].clicked === true) {\n                            self.handleClickOnLegendElem(legendElems[i], i, legendIndex, legendType, {hideOtherElems: false});\n                        }\n                    }\n                }\n            }\n\n            // VMLWidth option allows you to set static width for the legend\n            // only for VML render because text.getBBox() returns wrong values on IE6/7\n            if (Raphael.type !== \"SVG\" && legendOptions.VMLWidth)\n                width = legendOptions.VMLWidth;\n\n            legendPaper.setSize(width, height);\n\n            return {\n                container: $legend,\n                initialHTMLContent: initialHTMLContent,\n                elems: legendElems\n            };\n        },\n\n        /*\n         * Allow to hide elements of the map when the user clicks on a related legend item\n         * @param elem legend element\n         * @param id legend element ID\n         * @param legendIndex corresponding legend index\n         * @param legendType corresponding legend type (area or plot)\n         * @param opts object additionnal options\n         *          hideOtherElems boolean, if other elems shall be hidden\n         *          animDuration duration of animation\n         */\n        handleClickOnLegendElem: function(elem, id, legendIndex, legendType, opts) {\n            var self = this;\n            var legendOptions;\n            opts = opts || {};\n\n            if (!$.isArray(self.options.legend[legendType])) {\n                legendOptions = self.options.legend[legendType];\n            } else {\n                legendOptions = self.options.legend[legendType][legendIndex];\n            }\n\n            var legendElem = elem.mapElem;\n            var legendLabel = elem.textElem;\n            var $legendElem = $(legendElem.node);\n            var $legendLabel = $(legendLabel.node);\n            var sliceOptions = legendOptions.slices[id];\n            var mapElems = legendType === 'area' ? self.areas : self.plots;\n            // Check animDuration: if not set, this is a regular click, use the value specified in options\n            var animDuration = opts.animDuration !== undefined ? opts.animDuration : legendOptions.hideElemsOnClick.animDuration ;\n\n            var hidden = $legendElem.attr('data-hidden');\n            var hiddenNewAttr = (hidden === '0') ? {\"data-hidden\": '1'} : {\"data-hidden\": '0'};\n\n            if (hidden === '0') {\n                self.animate(legendLabel, {\"opacity\": 0.5}, animDuration);\n            } else {\n                self.animate(legendLabel, {\"opacity\": 1}, animDuration);\n            }\n\n            $.each(mapElems, function (y) {\n                var elemValue;\n\n                // Retreive stored data of element\n                //      'hidden-by' contains the list of legendIndex that is hiding this element\n                var hiddenBy = mapElems[y].mapElem.data('hidden-by');\n                // Set to empty object if undefined\n                if (hiddenBy === undefined) hiddenBy = {};\n\n                if ($.isArray(mapElems[y].options.value)) {\n                    elemValue = mapElems[y].options.value[legendIndex];\n                } else {\n                    elemValue = mapElems[y].options.value;\n                }\n\n                // Hide elements whose value matches with the slice of the clicked legend item\n                if (self.getLegendSlice(elemValue, legendOptions) === sliceOptions) {\n                    if (hidden === '0') { // we want to hide this element\n                        hiddenBy[legendIndex] = true; // add legendIndex to the data object for later use\n                        self.setElementOpacity(mapElems[y], legendOptions.hideElemsOnClick.opacity, animDuration);\n                    } else { // We want to show this element\n                        delete hiddenBy[legendIndex]; // Remove this legendIndex from object\n                        // Check if another legendIndex is defined\n                        // We will show this element only if no legend is no longer hiding it\n                        if ($.isEmptyObject(hiddenBy)) {\n                            self.setElementOpacity(\n                                mapElems[y],\n                                mapElems[y].mapElem.originalAttrs.opacity !== undefined ? mapElems[y].mapElem.originalAttrs.opacity : 1,\n                                animDuration\n                            );\n                        }\n                    }\n                    // Update elem data with new values\n                    mapElems[y].mapElem.data('hidden-by', hiddenBy);\n                }\n            });\n\n            $legendElem.attr(hiddenNewAttr);\n            $legendLabel.attr(hiddenNewAttr);\n\n            if ((opts.hideOtherElems === undefined || opts.hideOtherElems === true) && legendOptions.exclusive === true ) {\n                $(\"[data-type='legend-elem'][data-hidden=0]\", self.$container).each(function () {\n                    var $elem = $(this);\n                    if ($elem.attr('data-id') !== id) {\n                        $elem.trigger(\"click\", {hideOtherElems: false});\n                    }\n                });\n            }\n\n        },\n\n        /*\n         * Create all legends for a specified type (area or plot)\n         * @param legendType the type of the legend : \"area\" or \"plot\"\n         * @param elems collection of plots or areas displayed on the map\n         * @param scale scale ratio of the map\n         */\n        createLegends: function (legendType, elems, scale) {\n            var self = this;\n            var legendsOptions = self.options.legend[legendType];\n\n            if (!$.isArray(self.options.legend[legendType])) {\n                legendsOptions = [self.options.legend[legendType]];\n            }\n\n            self.legends[legendType] = {};\n            for (var j = 0; j < legendsOptions.length; ++j) {\n                if (legendsOptions[j].display === true  && $.isArray(legendsOptions[j].slices) && legendsOptions[j].slices.length > 0 &&\n                    legendsOptions[j].cssClass !== \"\" && $(\".\" + legendsOptions[j].cssClass, self.$container).length !== 0\n                ) {\n                    self.legends[legendType][j] = self.drawLegend(legendsOptions[j], legendType, elems, scale, j);\n                }\n            }\n        },\n\n        /*\n         * Set the attributes on hover and the attributes to restore for a map element\n         * @param elem the map element\n         * @param originalAttrs the original attributes to restore on mouseout event\n         * @param attrsHover the attributes to set on mouseover event\n         */\n        setHoverOptions: function (elem, originalAttrs, attrsHover) {\n            // Disable transform option on hover for VML (IE<9) because of several bugs\n            if (Raphael.type !== \"SVG\") delete attrsHover.transform;\n            elem.attrsHover = attrsHover;\n\n            if (elem.attrsHover.transform) elem.originalAttrs = $.extend({transform: \"s1\"}, originalAttrs);\n            else elem.originalAttrs = originalAttrs;\n        },\n\n        /*\n         * Set the behaviour when mouse enters element (\"mouseover\" event)\n         * It may be an area, a plot, a link or a legend element\n         * @param elem the map element\n         */\n        elemEnter: function (elem) {\n            var self = this;\n            if (elem === undefined) return;\n\n            /* Handle mapElem Hover attributes */\n            if (elem.mapElem !== undefined) {\n                self.animate(elem.mapElem, elem.mapElem.attrsHover, elem.mapElem.attrsHover.animDuration);\n            }\n\n            /* Handle textElem Hover attributes */\n            if (elem.textElem !== undefined) {\n                self.animate(elem.textElem, elem.textElem.attrsHover, elem.textElem.attrsHover.animDuration);\n            }\n\n            /* Handle tooltip init */\n            if (elem.options && elem.options.tooltip !== undefined) {\n                var content = '';\n                // Reset classes\n                self.$tooltip.removeClass().addClass(self.options.map.tooltip.cssClass);\n                // Get content\n                if (elem.options.tooltip.content !== undefined) {\n                    // if tooltip.content is function, call it. Otherwise, assign it directly.\n                    if (typeof elem.options.tooltip.content === \"function\") content = elem.options.tooltip.content(elem.mapElem);\n                    else content = elem.options.tooltip.content;\n                }\n                if (elem.options.tooltip.cssClass !== undefined) {\n                    self.$tooltip.addClass(elem.options.tooltip.cssClass);\n                }\n                self.$tooltip.html(content).css(\"display\", \"block\");\n            }\n\n            // workaround for older version of Raphael\n            if (elem.mapElem !== undefined || elem.textElem !== undefined) {\n                if (self.paper.safari) self.paper.safari();\n            }\n        },\n\n        /*\n         * Set the behaviour when mouse moves in element (\"mousemove\" event)\n         * @param elem the map element\n         */\n        elemHover: function (elem, event) {\n            var self = this;\n            if (elem === undefined) return;\n\n            /* Handle tooltip position update */\n            if (elem.options.tooltip !== undefined) {\n                var mouseX = event.pageX;\n                var mouseY = event.pageY;\n\n                var offsetLeft = 10;\n                var offsetTop = 20;\n                if (typeof elem.options.tooltip.offset === \"object\") {\n                    if (typeof elem.options.tooltip.offset.left !== \"undefined\") {\n                        offsetLeft = elem.options.tooltip.offset.left;\n                    }\n                    if (typeof elem.options.tooltip.offset.top !== \"undefined\") {\n                        offsetTop = elem.options.tooltip.offset.top;\n                    }\n                }\n\n                var tooltipPosition = {\n                    \"left\": Math.min(self.$map.width() - self.$tooltip.outerWidth() - 5,\n                                     mouseX - self.$map.offset().left + offsetLeft),\n                    \"top\": Math.min(self.$map.height() - self.$tooltip.outerHeight() - 5,\n                                    mouseY - self.$map.offset().top + offsetTop)\n                };\n\n                if (typeof elem.options.tooltip.overflow === \"object\") {\n                    if (elem.options.tooltip.overflow.right === true) {\n                        tooltipPosition.left = mouseX - self.$map.offset().left + 10;\n                    }\n                    if (elem.options.tooltip.overflow.bottom === true) {\n                        tooltipPosition.top = mouseY - self.$map.offset().top + 20;\n                    }\n                }\n\n                self.$tooltip.css(tooltipPosition);\n            }\n        },\n\n        /*\n         * Set the behaviour when mouse leaves element (\"mouseout\" event)\n         * It may be an area, a plot, a link or a legend element\n         * @param elem the map element\n         */\n        elemOut: function (elem) {\n            var self = this;\n            if (elem === undefined) return;\n\n            /* reset mapElem attributes */\n            if (elem.mapElem !== undefined) {\n                self.animate(elem.mapElem, elem.mapElem.originalAttrs, elem.mapElem.attrsHover.animDuration);\n            }\n\n            /* reset textElem attributes */\n            if (elem.textElem !== undefined) {\n                self.animate(elem.textElem, elem.textElem.originalAttrs, elem.textElem.attrsHover.animDuration);\n            }\n\n            /* reset tooltip */\n            if (elem.options && elem.options.tooltip !== undefined) {\n                self.$tooltip.css({\n                    'display': 'none',\n                    'top': -1000,\n                    'left': -1000\n                });\n            }\n\n            // workaround for older version of Raphael\n            if (elem.mapElem !== undefined || elem.textElem !== undefined) {\n                if (self.paper.safari) self.paper.safari();\n            }\n        },\n\n        /*\n         * Set the behaviour when mouse clicks element (\"click\" event)\n         * It may be an area, a plot or a link (but not a legend element which has its own function)\n         * @param elem the map element\n         */\n        elemClick: function (elem) {\n            var self = this;\n            if (elem === undefined) return;\n\n            /* Handle click when href defined */\n            if (!self.panning && elem.options.href !== undefined) {\n                window.open(elem.options.href, elem.options.target);\n            }\n        },\n\n        /*\n         * Get element options by merging default options, element options and legend options\n         * @param defaultOptions\n         * @param elemOptions\n         * @param legendOptions\n         */\n        getElemOptions: function (defaultOptions, elemOptions, legendOptions) {\n            var self = this;\n            var options = $.extend(true, {}, defaultOptions, elemOptions);\n            if (options.value !== undefined) {\n                if ($.isArray(legendOptions)) {\n                    for (var i = 0; i < legendOptions.length; ++i) {\n                        options = $.extend(true, {}, options, self.getLegendSlice(options.value[i], legendOptions[i]));\n                    }\n                } else {\n                    options = $.extend(true, {}, options, self.getLegendSlice(options.value, legendOptions));\n                }\n            }\n            return options;\n        },\n\n        /*\n         * Get the coordinates of the text relative to a bbox and a position\n         * @param bbox the boundary box of the element\n         * @param textPosition the wanted text position (inner, right, left, top or bottom)\n         * @param margin number or object {x: val, y:val} margin between the bbox and the text\n         */\n        getTextPosition: function (bbox, textPosition, margin) {\n            var textX = 0;\n            var textY = 0;\n            var textAnchor = \"\";\n\n            if (typeof margin === \"number\") {\n                if (textPosition === \"bottom\" || textPosition === \"top\") {\n                    margin = {x: 0, y: margin};\n                } else if (textPosition === \"right\" || textPosition === \"left\") {\n                    margin = {x: margin, y: 0};\n                } else {\n                    margin = {x: 0, y: 0};\n                }\n            }\n\n            switch (textPosition) {\n                case \"bottom\" :\n                    textX = ((bbox.x + bbox.x2) / 2) + margin.x;\n                    textY = bbox.y2 + margin.y;\n                    textAnchor = \"middle\";\n                    break;\n                case \"top\" :\n                    textX = ((bbox.x + bbox.x2) / 2) + margin.x;\n                    textY = bbox.y - margin.y;\n                    textAnchor = \"middle\";\n                    break;\n                case \"left\" :\n                    textX = bbox.x - margin.x;\n                    textY = ((bbox.y + bbox.y2) / 2) + margin.y;\n                    textAnchor = \"end\";\n                    break;\n                case \"right\" :\n                    textX = bbox.x2 + margin.x;\n                    textY = ((bbox.y + bbox.y2) / 2) + margin.y;\n                    textAnchor = \"start\";\n                    break;\n                default : // \"inner\" position\n                    textX = ((bbox.x + bbox.x2) / 2) + margin.x;\n                    textY = ((bbox.y + bbox.y2) / 2) + margin.y;\n                    textAnchor = \"middle\";\n            }\n            return {\"x\": textX, \"y\": textY, \"textAnchor\": textAnchor};\n        },\n\n        /*\n         * Get the legend conf matching with the value\n         * @param value the value to match with a slice in the legend\n         * @param legend the legend params object\n         * @return the legend slice matching with the value\n         */\n        getLegendSlice: function (value, legend) {\n            for (var i = 0; i < legend.slices.length; ++i) {\n                if ((legend.slices[i].sliceValue !== undefined && value === legend.slices[i].sliceValue) ||\n                    ((legend.slices[i].sliceValue === undefined) &&\n                        (legend.slices[i].min === undefined || value >= legend.slices[i].min) &&\n                        (legend.slices[i].max === undefined || value <= legend.slices[i].max))\n                ) {\n                    return legend.slices[i];\n                }\n            }\n            return {};\n        },\n\n        /*\n         * Animated view box changes\n         * As from http://code.voidblossom.com/animating-viewbox-easing-formulas/,\n         * (from https://github.com/theshaun works on mapael)\n         * @param x coordinate of the point to focus on\n         * @param y coordinate of the point to focus on\n         * @param w map defined width\n         * @param h map defined height\n         * @param duration defined length of time for animation\n         * @param easingFunction defined Raphael supported easing_formula to use\n         */\n        animateViewBox: function (targetX, targetY, targetW, targetH, duration, easingFunction) {\n            var self = this;\n\n            var cx = self.currentViewBox.x;\n            var dx = targetX - cx;\n            var cy = self.currentViewBox.y;\n            var dy = targetY - cy;\n            var cw = self.currentViewBox.w;\n            var dw = targetW - cw;\n            var ch = self.currentViewBox.h;\n            var dh = targetH - ch;\n\n            // Init current ViewBox target if undefined\n            if (!self.zoomAnimCVBTarget) {\n                self.zoomAnimCVBTarget = {\n                    x: targetX, y: targetY, w: targetW, h: targetH\n                };\n            }\n\n            // Determine zoom direction by comparig current vs. target width\n            var zoomDir = (cw > targetW) ? 'in' : 'out';\n\n            var easingFormula = Raphael.easing_formulas[easingFunction || \"linear\"];\n\n            // To avoid another frame when elapsed time approach end (2%)\n            var durationWithMargin = duration - (duration * 2 / 100);\n\n            // Save current zoomAnimStartTime before assigning a new one\n            var oldZoomAnimStartTime = self.zoomAnimStartTime;\n            self.zoomAnimStartTime = (new Date()).getTime();\n\n            /* Actual function to animate the ViewBox\n             * Uses requestAnimationFrame to schedule itself again until animation is over\n             */\n            var computeNextStep = function () {\n                // Cancel any remaining animationFrame\n                // It means this new step will take precedence over the old one scheduled\n                // This is the case when the user is triggering the zoom fast (e.g. with a big mousewheel run)\n                // This actually does nothing when performing a single zoom action\n                self.cancelAnimationFrame(self.zoomAnimID);\n                // Compute elapsed time\n                var elapsed = (new Date()).getTime() - self.zoomAnimStartTime;\n                // Check if animation should finish\n                if (elapsed < durationWithMargin) {\n                    // Hold the future ViewBox values\n                    var x, y, w, h;\n\n                    // There are two ways to compute the next ViewBox size\n                    //  1. If the target ViewBox has changed between steps (=> ADAPTATION step)\n                    //  2. Or if the target ViewBox is the same (=> NORMAL step)\n                    //\n                    // A change of ViewBox target between steps means the user is triggering\n                    // the zoom fast (like a big scroll with its mousewheel)\n                    //\n                    // The new animation step with the new target will always take precedence over the\n                    // last one and start from 0 (we overwrite zoomAnimStartTime and cancel the scheduled frame)\n                    //\n                    // So if we don't detect the change of target and adapt our computation,\n                    // the user will see a delay at beginning the ratio will stays at 0 for some frames\n                    //\n                    // Hence when detecting the change of target, we animate from the previous target.\n                    //\n                    // The next step will then take the lead and continue from there, achieving a nicer\n                    // experience for user.\n\n                    // Change of target IF: an old animation start value exists AND the target has actually changed\n                    if (oldZoomAnimStartTime && self.zoomAnimCVBTarget && self.zoomAnimCVBTarget.w !== targetW) {\n                        // Compute the real time elapsed with the last step\n                        var realElapsed = (new Date()).getTime() - oldZoomAnimStartTime;\n                        // Compute then the actual ratio we're at\n                        var realRatio = easingFormula(realElapsed / duration);\n                        // Compute new ViewBox values\n                        // The difference with the normal function is regarding the delta  value used\n                        // We don't take the current (dx, dy, dw, dh) values yet because they are related to the new target\n                        // But we take the old target\n                        x = cx + (self.zoomAnimCVBTarget.x - cx) * realRatio;\n                        y = cy + (self.zoomAnimCVBTarget.y - cy) * realRatio;\n                        w = cw + (self.zoomAnimCVBTarget.w - cw) * realRatio;\n                        h = ch + (self.zoomAnimCVBTarget.h - ch) * realRatio;\n                        // Update cw, cy, cw and ch so the next step take animation from here\n                        cx = x;\n                        dx = targetX - cx;\n                        cy = y;\n                        dy = targetY - cy;\n                        cw = w;\n                        dw = targetW - cw;\n                        ch = h;\n                        dh = targetH - ch;\n                        // Update the current ViewBox target\n                        self.zoomAnimCVBTarget = {\n                            x: targetX, y: targetY, w: targetW, h: targetH\n                        };\n                    } else {\n                        // This is the classical approach when nothing come interrupting the zoom\n                        // Compute ratio according to elasped time and easing formula\n                        var ratio = easingFormula(elapsed / duration);\n                        // From the current value, we add a delta with a ratio that will leads us to the target\n                        x = cx + dx * ratio;\n                        y = cy + dy * ratio;\n                        w = cw + dw * ratio;\n                        h = ch + dh * ratio;\n                    }\n\n                    // Some checks before applying the new viewBox\n                    if (zoomDir === 'in' && (w > self.currentViewBox.w || w < targetW)) {\n                        // Zooming IN and the new ViewBox seems larger than the current value, or smaller than target value\n                        // We do NOT set the ViewBox with this value\n                        // Otherwise, the user would see the camera going back and forth\n                    } else if (zoomDir === 'out' && (w < self.currentViewBox.w || w > targetW)) {\n                        // Zooming OUT and the new ViewBox seems smaller than the current value, or larger than target value\n                        // We do NOT set the ViewBox with this value\n                        // Otherwise, the user would see the camera going back and forth\n                    } else {\n                        // New values look good, applying\n                        self.setViewBox(x, y, w, h);\n                    }\n\n                    // Schedule the next step\n                    self.zoomAnimID = self.requestAnimationFrame(computeNextStep);\n                } else {\n                    /* Zoom animation done ! */\n                    // Perform some cleaning\n                    self.zoomAnimStartTime = null;\n                    self.zoomAnimCVBTarget = null;\n                    // Make sure the ViewBox hits the target!\n                    if (self.currentViewBox.w !== targetW) {\n                        self.setViewBox(targetX, targetY, targetW, targetH);\n                    }\n                    // Finally trigger afterZoom event\n                    self.$map.trigger(\"afterZoom\", {\n                        x1: targetX, y1: targetY,\n                        x2: (targetX + targetW), y2: (targetY + targetH)\n                    });\n                }\n            };\n\n            // Invoke the first step directly\n            computeNextStep();\n        },\n\n        /*\n         * requestAnimationFrame/cancelAnimationFrame polyfill\n         * Based on https://gist.github.com/jlmakes/47eba84c54bc306186ac1ab2ffd336d4\n         * and also https://gist.github.com/paulirish/1579671\n         *\n         * _requestAnimationFrameFn and _cancelAnimationFrameFn hold the current functions\n         * But requestAnimationFrame and cancelAnimationFrame shall be called since\n         * in order to be in window context\n         */\n        // The function to use for requestAnimationFrame\n        requestAnimationFrame: function(callback) {\n            return this._requestAnimationFrameFn.call(window, callback);\n        },\n        // The function to use for cancelAnimationFrame\n        cancelAnimationFrame: function(id) {\n            this._cancelAnimationFrameFn.call(window, id);\n        },\n        // The requestAnimationFrame polyfill'd function\n        // Value set by self-invoking function, will be run only once\n        _requestAnimationFrameFn: (function () {\n            var polyfill = (function () {\n                var clock = (new Date()).getTime();\n\n                return function (callback) {\n                    var currentTime = (new Date()).getTime();\n\n                    // requestAnimationFrame strive to run @60FPS\n                    // (e.g. every 16 ms)\n                    if (currentTime - clock > 16) {\n                        clock = currentTime;\n                        callback(currentTime);\n                    } else {\n                        // Ask browser to schedule next callback when possible\n                        return setTimeout(function () {\n                            polyfill(callback);\n                        }, 0);\n                    }\n                };\n            })();\n\n            return window.requestAnimationFrame ||\n                window.webkitRequestAnimationFrame ||\n                window.mozRequestAnimationFrame ||\n                window.msRequestAnimationFrame ||\n                window.oRequestAnimationFrame ||\n                polyfill;\n        })(),\n        // The CancelAnimationFrame polyfill'd function\n        // Value set by self-invoking function, will be run only once\n        _cancelAnimationFrameFn: (function () {\n            return window.cancelAnimationFrame ||\n                window.webkitCancelAnimationFrame ||\n                window.webkitCancelRequestAnimationFrame ||\n                window.mozCancelAnimationFrame ||\n                window.mozCancelRequestAnimationFrame ||\n                window.msCancelAnimationFrame ||\n                window.msCancelRequestAnimationFrame ||\n                window.oCancelAnimationFrame ||\n                window.oCancelRequestAnimationFrame ||\n                clearTimeout;\n        })(),\n\n        /*\n         * SetViewBox wrapper\n         * Apply new viewbox values and keep track of them\n         *\n         * This avoid using the internal variable paper._viewBox which\n         * may not be present in future version of Raphael\n         */\n        setViewBox: function(x, y, w, h) {\n            var self = this;\n            // Update current value\n            self.currentViewBox.x = x;\n            self.currentViewBox.y = y;\n            self.currentViewBox.w = w;\n            self.currentViewBox.h = h;\n            // Perform set view box\n            self.paper.setViewBox(x, y, w, h, false);\n        },\n\n        /*\n         * Animate wrapper for Raphael element\n         *\n         * Perform an animation and ensure the non-animated attr are set.\n         * This is needed for specific attributes like cursor who will not\n         * be animated, and thus not set.\n         *\n         * If duration is set to 0 (or not set), no animation are performed\n         * and attributes are directly set (and the callback directly called)\n         */\n        // List extracted from Raphael internal vars\n        // Diff between Raphael.availableAttrs  and  Raphael._availableAnimAttrs\n        _nonAnimatedAttrs: [\n            \"arrow-end\", \"arrow-start\", \"gradient\",\n            \"class\", \"cursor\", \"text-anchor\",\n            \"font\", \"font-family\", \"font-style\", \"font-weight\", \"letter-spacing\",\n            \"src\", \"href\", \"target\", \"title\",\n            \"stroke-dasharray\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\"\n        ],\n        /*\n         * @param element Raphael element\n         * @param attrs Attributes object to animate\n         * @param duration Animation duration in ms\n         * @param callback Callback to eventually call after animation is done\n         */\n        animate: function(element, attrs, duration, callback) {\n            var self = this;\n            // Check element\n            if (!element) return;\n            if (duration > 0) {\n                // Filter out non-animated attributes\n                // Note: we don't need to delete from original attribute (they won't be set anyway)\n                var attrsNonAnimated = {};\n                for (var i=0 ; i < self._nonAnimatedAttrs.length ; i++) {\n                    var attrName = self._nonAnimatedAttrs[i];\n                    if (attrs[attrName] !== undefined) {\n                        attrsNonAnimated[attrName] = attrs[attrName];\n                    }\n                }\n                // Set non-animated attributes\n                element.attr(attrsNonAnimated);\n                // Start animation for all attributes\n                element.animate(attrs, duration, 'linear', function() {\n                    if (callback) callback();\n                });\n            } else {\n                // No animation: simply set all attributes...\n                element.attr(attrs);\n                // ... and call the callback if needed\n                if (callback) callback();\n            }\n        },\n\n        /*\n         * Check for Raphael bug regarding drawing while beeing hidden (under display:none)\n         * See https://github.com/neveldo/jQuery-Mapael/issues/135\n         * @return true/false\n         *\n         * Wants to override this behavior? Use prototype overriding:\n         *     $.mapael.prototype.isRaphaelBBoxBugPresent = function() {return false;};\n         */\n        isRaphaelBBoxBugPresent: function() {\n            var self = this;\n            // Draw text, then get its boundaries\n            var textElem = self.paper.text(-50, -50, \"TEST\");\n            var textElemBBox = textElem.getBBox();\n            // remove element\n            textElem.remove();\n            // If it has no height and width, then the paper is hidden\n            return (textElemBBox.width === 0 && textElemBBox.height === 0);\n        },\n\n        // Default map options\n        defaultOptions: {\n            map: {\n                cssClass: \"map\",\n                tooltip: {\n                    cssClass: \"mapTooltip\"\n                },\n                defaultArea: {\n                    attrs: {\n                        fill: \"#343434\",\n                        stroke: \"#5d5d5d\",\n                        \"stroke-width\": 1,\n                        \"stroke-linejoin\": \"round\"\n                    },\n                    attrsHover: {\n                        fill: \"#f38a03\",\n                        animDuration: 300\n                    },\n                    text: {\n                        position: \"inner\",\n                        margin: 10,\n                        attrs: {\n                            \"font-size\": 15,\n                            fill: \"#c7c7c7\"\n                        },\n                        attrsHover: {\n                            fill: \"#eaeaea\",\n                            \"animDuration\": 300\n                        }\n                    },\n                    target: \"_self\",\n                    cssClass: \"area\"\n                },\n                defaultPlot: {\n                    type: \"circle\",\n                    size: 15,\n                    attrs: {\n                        fill: \"#0088db\",\n                        stroke: \"#fff\",\n                        \"stroke-width\": 0,\n                        \"stroke-linejoin\": \"round\"\n                    },\n                    attrsHover: {\n                        \"stroke-width\": 3,\n                        animDuration: 300\n                    },\n                    text: {\n                        position: \"right\",\n                        margin: 10,\n                        attrs: {\n                            \"font-size\": 15,\n                            fill: \"#c7c7c7\"\n                        },\n                        attrsHover: {\n                            fill: \"#eaeaea\",\n                            animDuration: 300\n                        }\n                    },\n                    target: \"_self\",\n                    cssClass: \"plot\"\n                },\n                defaultLink: {\n                    factor: 0.5,\n                    attrs: {\n                        stroke: \"#0088db\",\n                        \"stroke-width\": 2\n                    },\n                    attrsHover: {\n                        animDuration: 300\n                    },\n                    text: {\n                        position: \"inner\",\n                        margin: 10,\n                        attrs: {\n                            \"font-size\": 15,\n                            fill: \"#c7c7c7\"\n                        },\n                        attrsHover: {\n                            fill: \"#eaeaea\",\n                            animDuration: 300\n                        }\n                    },\n                    target: \"_self\",\n                    cssClass: \"link\"\n                },\n                zoom: {\n                    enabled: false,\n                    minLevel: 0,\n                    maxLevel: 10,\n                    step: 0.25,\n                    mousewheel: true,\n                    touch: true,\n                    animDuration: 200,\n                    animEasing: \"linear\",\n                    buttons: {\n                        \"reset\": {\n                            cssClass: \"zoomButton zoomReset\",\n                            content: \"&#8226;\", // bullet sign\n                            title: \"Reset zoom\"\n                        },\n                        \"in\": {\n                            cssClass: \"zoomButton zoomIn\",\n                            content: \"+\",\n                            title: \"Zoom in\"\n                        },\n                        \"out\": {\n                            cssClass: \"zoomButton zoomOut\",\n                            content: \"&#8722;\", // minus sign\n                            title: \"Zoom out\"\n                        }\n                    }\n                }\n            },\n            legend: {\n                redrawOnResize: true,\n                area: [],\n                plot: []\n            },\n            areas: {},\n            plots: {},\n            links: {}\n        },\n\n        // Default legends option\n        legendDefaultOptions: {\n            area: {\n                cssClass: \"areaLegend\",\n                display: true,\n                marginLeft: 10,\n                marginLeftTitle: 5,\n                marginBottomTitle: 10,\n                marginLeftLabel: 10,\n                marginBottom: 10,\n                titleAttrs: {\n                    \"font-size\": 16,\n                    fill: \"#343434\",\n                    \"text-anchor\": \"start\"\n                },\n                labelAttrs: {\n                    \"font-size\": 12,\n                    fill: \"#343434\",\n                    \"text-anchor\": \"start\"\n                },\n                labelAttrsHover: {\n                    fill: \"#787878\",\n                    animDuration: 300\n                },\n                hideElemsOnClick: {\n                    enabled: true,\n                    opacity: 0.2,\n                    animDuration: 300\n                },\n                slices: [],\n                mode: \"vertical\"\n            },\n            plot: {\n                cssClass: \"plotLegend\",\n                display: true,\n                marginLeft: 10,\n                marginLeftTitle: 5,\n                marginBottomTitle: 10,\n                marginLeftLabel: 10,\n                marginBottom: 10,\n                titleAttrs: {\n                    \"font-size\": 16,\n                    fill: \"#343434\",\n                    \"text-anchor\": \"start\"\n                },\n                labelAttrs: {\n                    \"font-size\": 12,\n                    fill: \"#343434\",\n                    \"text-anchor\": \"start\"\n                },\n                labelAttrsHover: {\n                    fill: \"#787878\",\n                    animDuration: 300\n                },\n                hideElemsOnClick: {\n                    enabled: true,\n                    opacity: 0.2,\n                    animDuration: 300\n                },\n                slices: [],\n                mode: \"vertical\"\n            }\n        }\n\n    };\n\n    // Mapael version number\n    // Accessible as $.mapael.version\n    Mapael.version = version;\n\n    // Extend jQuery with Mapael\n    if ($[pluginName] === undefined) $[pluginName] = Mapael;\n\n    // Add jQuery DOM function\n    $.fn[pluginName] = function (options) {\n        // Call Mapael on each element\n        return this.each(function () {\n            // Avoid leaking problem on multiple instanciation by removing an old mapael object on a container\n            if ($.data(this, pluginName)) {\n                $.data(this, pluginName).destroy();\n            }\n            // Create Mapael and save it as jQuery data\n            // This allow external access to Mapael using $(\".mapcontainer\").data(\"mapael\")\n            $.data(this, pluginName, new Mapael(this, options));\n        });\n    };\n\n    return Mapael;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/README.txt",
    "content": "Additional maps are stored in the repository neveldo/mapael-maps\n\nFull link: https://github.com/neveldo/mapael-maps\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/france_departments.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires jQuery and Mapael\n *\n * Map of metropolitan France by department\n * Equirectangular projection\n *\n * @author Vincent Brouté\n * @source http://fr.m.wikipedia.org/wiki/Fichier:France_location_map-Departements.svg\n *\n * @deprecated : this map will be definitely moved to 'mapael-maps' repository starting from the next major release (3.0.0).\n * You can use instead https://github.com/neveldo/mapael-maps/blob/master/france/france_departments.js\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('jquery-mapael'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'mapael'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, jQuery.mapael);\n    }\n}(function ($, Mapael) {\n\n    \"use strict\";\n    \n    $.extend(true, Mapael, \n        {\n            maps : {\n                france_departments : {\n                    width : 600.08728, \n                    height : 626.26221,\n                    getCoords : function (lat, lon) {\n                        var xfactor,\n                            xoffset,\n                            yfactor,\n                            yoffset,\n                            x,\n                            y;\n                        // Corse\n                        if (lat < 43.15710 && lon > 8.17199) {\n                            xfactor = 43.64246;\n                            xoffset = 181.34520;\n                            x = (lon * xfactor) + xoffset;\n                            \n                            yfactor = -65.77758;\n                            yoffset = 3346.37839;\n                            y = (lat * yfactor) + yoffset;\n                        } else {\n                            xfactor = 45.48385;\n                            xoffset = 220.22005;\n                            x = (lon * xfactor) + xoffset;\n                            \n                            yfactor = -65.97284;\n                            yoffset = 3371.10748;\n                            y = (lat * yfactor) + yoffset;\n                        }\n                        return {x : x, y : y};\n                    },\n                    elems : {\n                        \"department-29\" : \"m 37.28,156.11 c -1.42,1.23 -3.84,1.18 -3.99,3.49 -1.31,-2.24 -8,-0.27 -6.23,1.86 -0.83,0.29 -3.61,-0.09 -4.72,1.08 1.27,-3.15 -2.84,-2.76 -4.74,-1.32 -1.52,0.3 0.5,1.51 -1.67,1.26 -1.43,1.46 -5.78,-1.22 -5,1.7 2.01,2.28 -4.44,-1.17 -2.19,2.21 2.05,2.35 -1.91,-1.21 -3.2,0.17 -2.44,0.46 -5.9,3.28 -4.27,6.2 1.31,1.03 -2.45,2.79 -0.89,4.68 1.85,1.54 -1.54,4.66 1.85,4.99 2.29,0.7 2.49,-2.98 4.87,-0.96 3.08,0.74 5.89,-2.07 8.89,-2.74 1.93,-0.34 5.67,-2.04 6.34,-1.85 -2,1.78 -5.83,1.89 -6.41,4.93 -0.69,1.92 2.11,-0.67 2.33,1.07 1.34,-0.89 2.68,-1.87 3.94,-1.39 3.81,-2.03 -2.75,2.24 0.52,1.99 1.47,0.34 4.01,0.96 4.33,1.46 -1.94,0.3 -3.28,1.07 -4.57,-0.08 -2.38,0.71 -4.58,1.45 -6.63,0.05 -2.75,0.86 -5.75,0.61 -4.18,-2.84 -3.29,-0.24 -0.4,5.1 -3.79,3.67 -1.2,2.84 5.41,0.67 2.62,3.42 0.89,1.41 -0.15,5.78 1.86,2.76 0.83,-2.29 2.62,-4.57 5.09,-2.36 1.97,1.37 5.1,0.79 5.41,4 1.86,2.04 -0.29,6.23 -3,3.6 -3.95,0.62 -7.67,1.95 -11.58,2.45 -2.09,0.38 -5.98,-0.08 -4.41,2.7 2.53,0.06 4.87,1.62 7.03,1.82 2.62,-1.48 5.9,3.16 7.51,5.27 1.61,2.44 2.66,5.4 0.91,7.66 1.94,1.19 5.11,1.18 7.5,0.75 1.99,-0.45 3.16,-2.44 1.04,-3.28 -1.05,-1.98 0.82,-2.27 1.51,-0.45 3.34,0.23 -0.63,-4.11 0.69,-3.65 0.91,2.75 3.66,3.46 5.82,3.53 2.26,0.86 -0.02,-4.66 2.92,-2.01 2.11,1.7 2.69,4.22 4.57,6.13 2.01,0.11 4.17,0.12 6.01,-0.65 1.82,2.12 5.68,2.27 8.25,2.23 1.8,-1.51 -1.55,-4.66 0.95,-5.09 0.94,2.57 3.24,-0.19 3.58,-1.33 2.95,0.23 0.38,-3.13 2.08,-4.2 -0.21,-1.43 -0.64,-3.61 -2.53,-1.94 -1.44,2.09 -1.76,-1.59 -3.7,-1.52 -2.13,-1.41 -5.77,1.37 -6.1,-2.55 -0.44,-2.07 -2.04,-3.22 -2.32,-5.05 -2.23,-0.45 0.49,-4.53 2.59,-4.02 1.42,-1.43 5.76,-1.87 5.77,-3.15 -3.54,-1.5 2.53,-4.55 -0.88,-5.73 0.6,-1.35 -0.87,-3.79 -0.56,-5.72 -3.53,0.13 -1.65,-3.79 0.06,-4.6 -3.56,-1.53 -0.98,-4.21 0.33,-6.05 -1.3,-1.16 -2.22,-1.16 -1.99,-2.94 -3.12,-0.26 -3.41,-4.67 -2.3,-6.54 -0.38,-1.53 -3.23,-0.42 -4.45,-1.94 -2.01,-0.12 -5.18,-1.19 -4.7,2.29 -0.84,1.4 0.25,4.35 -1.82,2.22 -1.36,-0.49 -0.48,-3.38 -2.36,-1.3 -1.28,1.93 -1.52,-3.86 -1.99,-4.38 z m -9.88,28.66 0,0.02 0,-0.02 z\",\n                        \"department-22\" : \"m 77.67,146.73 c -2.58,0.94 -4.37,2.6 -5.78,4.84 1.21,-2.76 0.01,-6.18 -2.26,-2.58 -2.86,-0.54 -4.85,2.02 -7.32,2.35 0.05,-2.38 -5.14,-2.89 -4.97,-0.27 -1.65,0.69 -2.79,2.55 -0.54,3.83 1.42,1.41 -3.19,1.12 -1.21,3.58 0.75,2.79 -2.62,-0.53 -2.95,1.74 -2.03,2.25 0.93,5.14 2.73,6.11 -0.89,1.81 3.77,1.87 0.94,3.62 -2.27,1.33 -1.69,4.1 0.71,4.68 -2.37,0.99 -3.54,4.66 -0.18,4.93 -0.75,1.8 0.34,4.07 1.35,3.89 -2.23,1.45 2.07,3.31 -1.02,4.81 -1.32,1.63 3.39,3.81 -0.37,3.46 -0,1.68 3.4,-0.17 4.6,0.64 2.17,-1.15 0.09,3.47 2.84,1.65 2.78,-2.51 5.12,2.28 8.16,0.11 1.28,-1.21 4.21,0.16 3.71,-2.72 2.36,-2.11 5.53,-0.32 6.55,2.07 3.1,-1.66 5.66,1.79 8.52,1.44 1.09,1.13 1.31,4.63 2.54,1.67 1.77,0.69 4.7,-2.67 4.36,1 -1.42,1.92 -0.06,5.98 2.29,3.25 2.15,-1.33 3.24,-3.52 3.71,-5.84 -1.55,-1.8 3.03,-1.29 4.1,-2.17 2.56,0.5 2.84,5.71 5.3,2.6 2.48,-0.52 4.76,-2.21 4.35,-5.23 2.66,1.35 0.38,-3.98 3.68,-3.07 2.3,0.76 0.88,-1.21 2.74,-1.68 0.93,-2.46 3.26,2.1 3.88,-0.74 2.87,-0.05 0.28,-3.49 2.75,-3.67 -0.67,-1.88 -0.1,-4.12 -0.62,-6.07 1.57,-1.46 2.25,-5.3 0.59,-6.78 -0.36,1.32 -2.86,3.56 -2.08,0.75 -0.58,-2.28 -2.24,-1.04 -3,-0.66 -0.39,-2.19 -3.7,-1.69 -4.26,-4.29 -2.01,-0.96 -0.92,3.96 -2.61,1.33 -0.93,2.11 -1.72,-1.85 -2.25,-2.64 -0.23,-2.69 -5.02,3.57 -3.11,-0.38 2.12,-1.4 -0.5,-4.55 -1.42,-1.9 -1.94,1.15 -2.92,1.92 -4.85,1.1 -2.9,-0.12 0.52,1.54 -2.1,2.49 -3.58,0.78 -5.19,5.69 -8.5,5.48 0.49,3.36 -2.74,-0.19 -2.06,-1.81 -2.95,-1.1 -4.73,-3.24 -4.7,-6.38 -2,-2 -5.44,-3.63 -5.11,-6.81 -0.95,-1.07 -6.79,-1.08 -3.38,-3.09 0.47,-2.76 -4.12,-1.19 -3.66,1.11 -0.44,1.73 -2.27,2.41 -0.65,0.39 1.33,-1.47 1.44,-4.62 0.53,-6.14 z\",\n                        \"department-56\" : \"m 78.99,190.76 c -3.41,-1.13 -2.2,3.92 -5.32,2.9 -1.41,0.4 -1.19,1.61 -2.99,0.82 -1.13,0.79 -2.69,-0.38 -3.4,-0.47 -0.84,-2.28 -6.08,2.96 -4.76,-1.3 -1.92,-0.69 -4.61,-0.08 -6.81,-0.32 -2.56,1.49 -6.48,1.43 -6.89,4.97 1.66,0.45 1.27,1.18 1.54,2.72 2.29,1.28 1.38,6.71 5.21,4.85 2.27,-0.57 4.21,1.54 5.35,2.54 1.09,-1.75 3.9,-1.39 3.21,0.95 0.1,1.55 -1.11,2.84 -0.3,4.77 -2.2,-0.71 -3.03,4.58 -5.67,1.76 -1.43,0.94 1.23,2.98 -0.19,4.47 0.79,3.11 4.25,6.81 7.21,3.89 -1.96,-1.82 1.17,-1.04 2.08,-2.79 1.53,-1.34 1.85,-1.47 0.72,0.46 -0.96,1.01 -3.43,3.3 -0.38,3.09 1.49,0.45 3.45,4.36 4.77,2.88 -0.27,-2.53 3.83,-3.05 1.1,-5.44 1.05,0.63 2.71,-0.96 2.12,1.15 2.98,0.99 -0.94,3.03 -2.44,3.55 -2.08,3.14 3.5,3.77 1.75,6.92 -0.29,1.59 0.31,5.9 2.13,4.03 -1.68,-0.96 -1.89,-7.61 0.51,-4.94 -0.5,1.26 4.8,0.74 3.44,-1.25 0.35,-0.76 1.34,3.45 1.43,0.83 0.89,1.74 3.91,2.47 1.59,0.06 -0.51,-1.47 -0.02,-3.03 -0.87,-4.45 1.76,1.65 1.37,4.11 4.01,4.31 0.21,-1.28 1.88,-0.67 1.78,-2.23 1.83,0.46 2.89,-0.48 3.79,-0.93 2.28,0.82 -0.59,1.71 2.06,2.43 1.57,0.52 0.39,-4.11 1.62,-1.05 -0.46,2.03 -2.17,6.08 -4.56,4.17 -1.51,0.14 -2.97,0.56 -4.53,-0.67 -3.37,0.66 2.51,2.11 2.17,4.25 2.28,1.57 4.95,-1.33 7.46,-0.04 0.09,-2.03 1.34,-0.88 2.36,-1.71 -1.31,-1.38 4.01,-1.27 0.96,-0.1 0.22,1.93 4.41,-1.17 5.9,0.75 1.01,1.43 4.31,0.26 4.44,1.04 -2.33,0.43 -6.75,-0.69 -5.01,3.23 1.5,1.03 2.59,-3.6 4.01,-0.77 1.99,-0.12 4.3,0.38 4.4,-2.43 0.29,-2.58 2.25,-0.15 3.16,-0.22 1.19,-1.05 2.3,-1.01 2.74,0.42 1.6,-0.29 0.66,-3.06 3.03,-2.61 0.96,-1.59 -0.11,-4.05 1.01,-5.76 -1.21,-2.25 -1.75,-4.67 -1.62,-7.13 1.06,-1.01 4.05,-0.69 1.57,-1.96 -1.94,-0.06 -2.1,-1.17 -0.12,-1.66 0.89,-1.32 3.49,-4.07 1.04,-4.6 -2.47,1.93 -2.55,-3.4 -0.68,-4.04 -0.57,-3.25 -3.22,-4.81 -6.13,-5.41 -2.4,0.4 -4.25,0.1 -2.46,-2.49 0.6,-2.26 5.5,-0.56 4.09,-3.23 -1.75,-0.22 -3.84,2.7 -3.33,-0.63 0.01,-3.41 -3.32,-2.88 -4.84,-1.45 -0.88,-3.11 -3.48,-4.72 -6.36,-3.01 -2.15,-0.01 0.26,2.97 -2.05,3.88 -0.09,2.06 -3.87,4.92 -5.31,3.84 -1.21,-1.39 2.06,-7.27 -1.57,-5.21 -1.38,0.54 -2.88,0.33 -3.62,2.06 -0.18,-2.38 -1.59,-4.23 -4.05,-3.7 -1.5,-2.53 -4.89,-0.74 -6.39,-1.56 -0.77,-1.17 -1.33,-2.65 -3.1,-2.43 z\",\n                        \"department-35\" : \"m 134.53,157.78 c -2.29,1.25 -4.29,0.31 -6.19,1.59 -0.35,1.67 -2.93,2.17 -1.16,4.31 0.18,1.71 3.99,2.25 1.51,3.04 0.71,1.27 0.98,3.59 2.33,1.22 1.69,2.12 0.9,4.75 -0.11,6.67 -1.16,1.66 0.84,3.78 -0.19,5.68 1.34,1.46 -2.11,1.58 -0.78,3.48 0.21,2.25 -2.03,-0.13 -2.56,2.08 -1.42,-0.68 -2.58,-1.61 -3.47,0.21 -1.19,0.31 -0.39,2.42 -2.44,1.14 -3.01,-0.11 -1.06,4.1 -3.56,3.46 -0.04,2.21 -0.64,4.46 -2.86,4.2 0.62,1.53 1.56,3.49 1.75,5.16 0.54,-2.03 5.23,-1.03 2.52,0.76 -2.33,-0.69 -5.1,2.03 -3.97,3.88 2.89,-0.33 6.41,0.27 7.93,3.03 1.44,1.66 0.87,2.99 -0.39,4.33 0.11,1.6 0.84,3.69 2.2,1.35 0.71,-0.77 0.83,2.07 1.01,2.45 -1.23,1.26 -2.05,2.91 -3.28,3.92 1.71,0.13 3.61,2.39 0.59,2.1 -2.68,1.22 0.26,4 -0.22,5.86 2.34,-0.34 4.15,-1.76 6.12,-3.07 0.06,2.7 3.03,-0.8 4.56,-0.57 2.43,-1.1 5.63,0.82 7.84,-0.63 3.6,0.5 2.72,-4.87 6.32,-4.78 1.62,-0.77 5.16,-0.84 3.73,-3.31 2.85,-0.62 4.57,1.21 6.54,2.5 1.91,0.57 5.04,2.11 4.63,-1.3 1.15,-1.21 0.6,-2.9 1.92,-3.9 0.7,-1.81 1.08,-4.73 2.39,-6.4 1.07,-2.4 6.58,0.52 5.22,-3.48 -0.09,-3.31 -1.44,-6.24 -2.22,-9.58 0.1,-2.96 -2.26,-6.23 0.02,-8.8 1.83,-2.19 0.74,-5.58 -0.28,-8.01 0.55,-2.21 1.33,-6.39 -2.22,-6.48 -2.56,-0.06 -6.32,-3.21 -7.21,0.93 -2.37,0.79 -4.8,5.49 -7.02,1.82 -2.57,-0.44 -4.28,-3.63 -3.95,-6.18 -0.99,-1.91 -2.39,-5.92 -4.86,-2.88 -3.41,0.04 -8.02,2.16 -10.43,-0.96 -1.67,-2.06 2.03,-3.1 0.24,-4.85 z\",\n                        \"department-44\" : \"m 152.12,215.29 c 0.59,4.69 -7.52,2.23 -7.55,6.92 -2.45,2.92 -6.64,1.42 -9.84,1.79 -2.21,0.47 -4.62,2.21 -6.1,1.16 -2.15,1.71 -5.77,2.38 -4.86,5.66 -0.41,1.99 0.14,5.32 -2.78,5.46 0.29,3.39 -2.45,-0.35 -3.39,1.23 -1.97,-0.43 -3.4,-1.22 -3.87,1.43 -1.39,3.38 -7.86,-1.72 -6.53,3.45 1.04,0.36 3.95,1.27 1.26,1.45 -1.78,0.18 -4.38,-0.42 -5.51,2.1 0.81,1.67 6.76,3.88 3.55,5.8 -1.04,-0.85 -4.89,-1.36 -1.91,0.14 1.73,1.23 3.86,1.82 5.03,0.15 2.77,0.79 5.25,4.76 7.99,1.3 2.33,-2.98 5.67,-3.71 9.18,-3.56 3.26,1.31 7.02,1.76 9.14,4.89 0.59,1.56 5.82,2.63 2.15,2.16 -4.08,-0.08 -5.45,-5.45 -9.25,-4.42 -2.59,-1.44 -6.59,-0.45 -8.62,1.17 0.15,2.98 1.07,6.99 -2.64,7.63 1.56,2.78 6.83,0.77 8.69,4.16 2.99,2.74 4.83,7.09 8.9,8.42 0.9,1.88 5.53,0.57 5.08,3.59 3.08,0.7 6.82,2.86 9.67,1.11 2.13,-1.29 -2.55,-2.42 -0.14,-3.94 -2.91,-1.74 -0.81,-8.5 2.35,-5.93 0.6,2.44 -0.71,8.47 3.28,5.3 3.57,-0.9 -1,-7.35 3.9,-6.19 0.83,-0.5 2.39,-4.6 3.91,-1.32 1.06,2.31 6.94,2.33 4.03,-0.72 -1.16,-2.43 -6.27,-0.49 -4.19,-3.49 1.19,-2.09 4.14,-3.59 2.27,-6.58 -0.11,-2.99 -2.79,0.14 -3.66,-2.47 -0.42,-1.81 -2.18,-3.14 -3.54,-3 1.51,-3.16 6.07,-2.52 8.85,-3.95 3.12,-0.79 9.37,1.47 9.71,-3.23 -1.08,-2.47 -1.12,-5.9 -4.66,-5.46 -2.8,0.23 -7.97,-1.25 -5.65,-4.79 1.85,-0.34 7.04,1.35 6.32,-1.48 -2.96,-1.34 -7.7,-2.06 -7.06,-6.38 -0.89,-2.42 -4.47,-2.43 -3.18,-5.19 -2.78,-1.29 -5.51,-2.7 -8.1,-4.12 -0.73,-0.11 -1.47,-0.12 -2.19,-0.28 z\",\n                        \"department-50\" : \"m 131.13,90.31 c -1.88,0.95 -0.8,4.82 1.86,4.23 3.56,1.9 1.73,6.62 0.2,9.04 2.05,2.45 3.1,5.7 3,9 0.14,1.74 2.63,0.2 3.07,2.34 0.75,1.03 1.85,2.12 2.19,0.36 1.37,1.6 -1.38,2.27 1.05,3.66 1.37,1.28 0.99,6.4 3.69,4.06 1.9,0.29 2.45,1.19 0.04,0.86 -1.6,1.67 0.46,4.57 0.89,5.74 -2.97,1.02 -0.03,4.32 -0.89,6.45 0.25,4.18 2.26,-2.3 3.97,0.71 -3,-1.64 -2.73,4.63 -1.52,5.52 -1.39,1.53 -0.75,4.59 -2.48,6.57 2.85,1.89 0.3,6.73 3.77,8.41 0.72,3.65 6.47,2.47 6.87,4.86 -3.09,-0.67 -6.13,1.28 -9.29,0.14 2.12,2.48 1.69,5.44 3.35,8.16 0.49,2.03 2.9,1.69 3.89,3.28 2.85,0.97 3.52,-2.95 6.22,-3.35 0.5,-4.19 4.83,-0.16 7.12,-0.52 2.46,0.21 4.49,2.11 6.88,1.58 1.14,-3.4 4.72,2.61 6.05,-1.83 2.14,-1.71 4.11,-4.11 4,-6.8 -2.86,-1.65 2.62,-4.05 -1.04,-4.65 -1.19,-1.03 -1.99,-2.17 -3.44,-2.39 0.65,-1.72 0.69,-2.24 -1.24,-1.46 -2.15,-1.56 -3.83,-1.87 -6.18,-1.16 -1.5,-0.55 -4.16,0.68 -4.02,-2.14 -1.26,-0.78 -4.15,-1.48 -1.38,-2.84 0.99,-1.27 1.76,-1.9 2.97,-1.76 1.12,-1.18 3.8,-4.02 0.24,-2.9 -1.76,-0.83 1.02,-4.16 2.87,-2.17 3.08,-0.43 3.89,-3.82 6.01,-5.35 -2.27,-0.59 1.2,-4.39 -1.22,-5.32 -2.09,1.3 -1,0.15 0.07,-0.89 -1.07,-1.07 -4.55,-2.49 -1.49,-2.88 2.17,-1.47 -0.09,-4.82 -1.5,-1.9 -3.17,0.81 -5.99,-2.78 -7.94,-5.02 -1.69,-1.95 2.34,-3.94 -0.73,-4.53 -0.02,-1.64 -2.94,0.31 -1.33,-2.17 1.04,-2.89 -2.27,-4.45 -3.47,-6.64 -1.37,-1.99 -4.59,-6.54 -0.56,-7.31 0.17,-1.79 2.56,-1.35 1.09,-3.59 -0.43,-3.65 -3.79,-3.85 -6.83,-3.94 -3.88,-1.03 -4.69,4.08 -8.52,3.07 -3.16,1.2 -5.48,-1.83 -8.81,-1.65 -2.47,0.02 -3.19,-2.65 -5.7,-1.92 -0.51,-0.38 -1.01,-1.1 -1.74,-0.94 z\",\n                        \"department-53\" : \"m 208.55,167.1 c -1.01,1 0.05,3.16 -1.88,3.54 -1.52,-1.01 -2.64,-0.44 -3.16,1.13 -2.16,0.27 -4.3,-2.6 -6.35,-0.72 -2.51,0.71 -4.34,2.89 -6.91,3.52 -1.47,-0.07 -0.73,-3.05 -2.63,-1.24 -1.44,-0.25 -1.57,0.24 -1.23,1.52 -1.95,1.91 -3.12,-1.9 -4.31,-1.2 -0.57,-2.91 -4.17,-1.79 -5.68,-3.27 -1.71,1.43 -3.54,2.05 -5.24,0.23 -1.62,1.36 -0.04,4.11 -0.87,5.96 1,2.8 1.94,6.2 -0.3,8.68 -1.8,2.64 0.64,5.51 0.63,8.4 0.26,2.57 1.34,4.89 2.01,7.32 0.27,1.9 0.56,4.67 -2.4,4.46 -3.58,-1.21 -3.75,3.46 -4.8,5.71 -0.32,2.32 -3.14,4.44 -1.31,6.55 2.18,1.99 5.34,0.43 7.83,1.57 1.63,0.66 3.95,1.05 3.53,-1.27 2.64,-0.54 3.9,3.91 6.54,1.42 2.25,1.91 5.27,1.85 7.94,2.38 1.76,-0.55 3.96,-1.63 5.33,-1.8 0.74,-3.63 3.49,1.65 5.63,-0.72 3.1,-0.49 -0.69,-2.25 -1.75,-2.95 -1.24,-2.55 5.38,-2.7 2.17,-4.78 -2.1,-2.18 2.21,-3.41 3.9,-3.25 2.7,-2.12 -2.9,-5 -0.82,-7.18 1.54,-1.12 5.56,-0.07 4.23,-2.96 2.04,-1.51 -2.56,-3.7 0.57,-5.19 2.14,-0.95 4.31,-2.8 2.75,-5.2 0.4,-1.84 1.4,-3.83 0.29,-5.45 0.84,-2.27 2.74,-2.67 4.64,-3.69 0.49,-2.31 0.11,-5.38 -2.99,-3.91 -2.18,-0.9 -2.07,-4.02 -1.67,-5.52 -0.9,-1.11 -2.32,-1.86 -3.72,-2.1 z\",\n                        \"department-49\" : \"m 163.22,217.21 c -0.83,2.37 -1.6,5.33 1.37,5.86 1.81,2.08 0.91,5.95 4.42,6.63 2.22,0.05 6.13,2.61 1.99,3.38 -1.68,0.33 -6.88,-1.51 -4.42,1.8 -0.28,3.95 5.62,1.28 7.64,2.98 2.45,0.74 1.41,5.07 2.67,6.48 -2.29,2.93 -6.35,1.4 -9.46,1.86 -2.75,1.47 -6.15,1.11 -8.63,2.95 -2.19,2.35 2.81,0.48 2.57,3.2 0.31,2.29 2.55,1.71 3.57,1.87 1.63,2.89 1.11,5.74 -1.65,7.56 -1.38,3.05 3.73,1.85 4.64,4.57 0.65,0.86 -1.19,3.33 1.44,2.98 2.09,1.51 5.06,-0.93 6.83,0.87 2.12,0.24 3.87,3.37 5.76,0.52 2.61,-0.75 5.23,0.76 7.87,-0.16 3.45,0.68 4.18,-2.89 4.98,-5 2.46,-1.53 5.74,1.7 7.32,-1.15 3.52,-0.32 7.2,-1.11 10.47,-0.77 1.05,1.17 -2.26,1.94 0.29,2.63 2.66,0.88 1.49,-3.86 4.67,-2.23 0.32,-1.55 1.08,-6.07 4.26,-4.7 1.02,-3.55 0.54,-7.68 3.15,-10.63 1.2,-1.75 2.78,-3.33 2.02,-5.32 0.89,-2.49 1.94,-4.87 2.33,-7.52 -2.3,-1.25 2.95,-6.06 -1.28,-5.83 -1.14,3.4 -4.78,-0.25 -6.77,-0.21 -1.89,-1.86 -5.83,-3.95 -7.59,-1.47 -2.9,0.48 -5.51,-3.13 -2.87,-5.2 -1.31,-0.36 -3.53,1.25 -5.3,-0.11 -1.96,-0.38 -3.12,0.57 -3.07,-1.96 -1.12,-2.87 -4.12,0.14 -5.77,-2.2 -1.77,-0.71 -0.8,2.61 -3.03,1.75 -3.13,1.53 -6.89,1.32 -10.17,-0.06 -1.72,-2.25 -3.57,1.59 -5.08,-1.25 -0.8,-0.99 -3.72,-1.84 -2.9,0.37 -3.4,0.17 -6.97,-0.89 -10.18,-1.14 -0.72,-0.44 -1.37,-0.99 -2.14,-1.36 z\",\n                        \"department-85\" : \"m 161.28,265.2 c -0.97,1.7 -1.54,3.91 -3.7,2.64 -1.76,1.98 1.21,6.33 -3.05,6.68 -4.15,2.13 -1.3,-4.19 -2.86,-6.14 -3.81,-0.88 -3.43,4.2 -2.06,6.39 -1.18,1.59 2.88,3.89 -0.56,4.36 -2.8,1.01 -5.58,-1.25 -8.45,-1.27 -0.94,-1.21 -1.09,-3.22 -3.4,-2.64 -2.06,0.15 -1.35,-2.2 -3.49,-1.71 -2.48,-1.21 -5.24,-7.8 -7.15,-2.42 -0.59,3.85 -5.53,4.8 -4.91,9.21 0.37,4.17 5.72,4.87 7.16,8.67 2.67,2.58 4.99,5.43 6.65,8.8 0.87,1.89 0.24,6.13 2,6.75 0.16,-1.73 0.12,-2.45 1.07,-0.5 1.66,2.86 6.15,2.45 7.02,5.1 3.4,-0.42 6.93,0.3 7.04,4.36 1.27,2.81 4.49,-1.27 6.02,1.84 2.09,-0.13 3,3.11 4.96,3.02 -0.36,-3.97 4.41,-1.93 6.48,-3.3 1.71,-1.96 4.7,-2.5 6.81,-2.37 -1.17,1.68 -0.83,3.92 1.65,2.75 2.07,-0.36 4.04,-2.66 5.25,0.14 2.09,1.8 3.55,-0.97 5.61,-0.12 1.62,-1.38 3.3,-2.9 5.04,-3.72 0.18,-2.56 -3.47,-1.87 -3.87,-1.44 -0.63,-2.59 1.8,-5.29 -0.47,-7.7 0.94,-1.38 2.03,-1.54 1.08,-3.45 0.09,-2.1 -0.29,-4.13 -1.61,-5.22 0.65,-2.15 -1.16,-2.52 -0.79,-4.52 -1.57,-1.94 -3.3,-3.94 -1.89,-6.5 -1.72,-1.62 -5.39,-2.92 -5.22,-6.11 0.38,-2.29 -3.29,-2.9 -3.68,-5.31 -1.81,-2.01 -4.49,-1.74 -7.1,-1.32 -3.49,-1.03 -6.73,-2.66 -9.6,-4.96 z\",\n                        \"department-79\" : \"m 211.41,263.54 c -3.47,1 -7.46,-0.24 -10.55,2.01 -1.54,0.87 -3.61,1.5 -3.45,-0.55 -2.89,-0.11 -3.46,3 -4.1,4.64 -2.76,1.84 -6.3,1.53 -9.35,1.02 -2.77,-0.37 -6.01,2.62 -2.55,4.27 1.05,2.29 0.26,5.24 3.5,6.22 3.7,1.27 0.35,4.83 3.08,6.91 1.95,2.46 1.89,5.88 3.13,8.43 0.79,2.29 0.53,5.23 -0.6,6.69 2.08,1.92 -1.04,5.98 0.79,6.87 2.26,-2.05 4.86,2.6 1.35,3.21 -1.82,2.1 -4.84,2.03 -7.01,3.55 -1.92,3.7 2.7,4.91 3.24,8.13 1.44,0.37 2.62,0.88 2.81,2.1 3.32,-0.93 5.83,3.57 8.63,3.01 2.89,1.17 6.03,0.6 8.47,3.22 3.7,-0.54 3.87,6.56 7.56,4.57 1.73,-2.11 1.24,-5.98 4.87,-5.81 1.63,-2.21 4.23,-2.49 6.45,-1.63 1.55,-1.48 2.11,-4.78 -0.83,-4.33 -3.29,-1.46 -1.71,-5.49 -0.5,-7.4 1.75,-0.97 0.56,-7.43 -1.84,-3.75 -2.3,2.89 -5.28,-1.21 -4.22,-3.39 -2.48,-2.03 -1.19,-5.37 -2.68,-7.99 1.33,-2.02 1.71,-4.55 3.11,-6.42 -0.55,-0.92 -2.28,-2.13 -2.08,-2.45 -3.66,1.58 0.19,-4.05 1.24,-5.25 2.3,-2.33 -3.14,-3.07 -0.93,-5.56 1.44,-1.85 -3.47,-1.82 -0.33,-2.92 3.33,-0.16 0.56,-1.18 -0.24,-2.53 0.5,-2.54 0.1,-5.85 -1.91,-7.36 -1.96,-0.52 -0.38,-5.88 -4.15,-4.77 -2.43,-0.12 2.22,-3.17 -0.9,-2.74 z\",\n                        \"department-17\" : \"m 175.73,312.62 c -2.1,1.05 -4.89,0.98 -6.33,3.16 -2.59,0.12 1.24,4.72 -2.26,5.02 -2,0.79 -4.42,5.17 -2.11,6.01 2.93,0 2.49,3.17 4.17,4.84 0.72,1.37 3.67,5.65 0.03,4.87 -2.18,0.36 1.95,2.77 0.48,4.24 1.55,2.23 0.05,3.13 -1.55,3.46 -0.38,1.57 -2.23,1.63 -0.92,3.81 0.7,3.56 3.92,5.46 6.53,7.53 -3.66,-0.31 -5.1,-4.96 -7.98,-5.25 -3.89,-1.1 -3.52,4.91 -2.88,6.67 2.74,-1.46 4.76,2.94 7.48,3.54 3.34,1.31 3.69,5.42 7.19,6.15 4.09,3 7.55,7.17 8.5,12.27 0.26,3.76 5.67,2.29 7.12,1.56 -1.08,5.27 6.99,0.78 7.08,5.12 0.92,1.82 -0.24,5.87 1.93,6.53 3.38,-1.84 5.25,4.16 8.91,4.29 2.53,1.16 3.84,-3.72 5.99,-0.43 0.42,-1.35 1.41,-3.02 1.97,-3.79 -0.43,-1.67 1.72,-4.75 -1.44,-5.53 -1.82,-0.53 -4.59,0.36 -3.27,-2.54 -1.47,-1.11 -5.11,-3.27 -7.08,-1.29 -2.02,-1.16 -0.75,-3.34 0.78,-3.22 -1.02,-0.53 -4.64,-2.27 -1.19,-3.33 4.28,-0.66 -2.5,-4.27 0.56,-5.26 2.44,-2.46 -2.28,-2.77 -2.54,-4.29 2.17,-2.32 -2.75,-3.59 -3.55,-5.14 -2.87,0.92 -0.97,-2.62 0.33,-2.63 -2.65,-1.14 -0.44,-4.4 -1.57,-5.27 -2.89,0.77 -1.45,-2.34 0.53,-2.18 1.34,-1.34 4.68,-0.44 6.11,-2.14 2.35,-0.74 2.26,3.5 4.57,1.02 2.44,-0.29 1.26,-3.78 2.59,-5.17 -1.46,-1.93 -1.99,-4.68 1.15,-4.47 0.21,-2.43 -3.03,-4.09 -3.83,-6.1 -0.81,-1.69 -4.49,-0.9 -5.2,-3.54 -1.75,0.56 -3.25,0.45 -4.22,-0.82 -1.42,1.85 -1.72,-1.94 -2.91,-0.25 -3.3,-0.03 -3.97,-4.4 -7.72,-2.73 0.56,-2.08 -4.7,-2.08 -3.15,-4.59 -0.87,-1.66 -4.22,-2.08 -2.44,-4.29 -0.3,-2.54 -4.15,-5.59 -5.48,-2.93 -1.22,-0.57 -5.78,1.4 -3.85,-1.55 0.3,-0.71 0.63,-1.62 -0.55,-1.38 z m -24.48,7.33 c -2.5,0.03 -3.87,1.14 -1.7,3.09 3.95,0.17 7.19,2.31 10.9,3.68 3.89,-1.05 -3.64,-4.87 -5.82,-4.1 0.29,-2.41 -4.61,1.24 -3.83,-1.48 1.5,1.02 1.83,-1.02 0.46,-1.19 z m 4.27,13.72 c -0.7,1.54 2.03,3.7 0.87,5.86 3.02,2.81 6.53,5.8 7.08,10.16 2.32,-1.62 3.28,-6.49 0.08,-7.91 -0.51,-2.29 -0.47,-5.1 -3.54,-5.11 -1.46,-1 -2.65,-2.71 -4.49,-2.99 z\",\n                        \"department-33\" : \"m 170.37,365.5 c -2.88,2.39 -3.66,6.38 -3.67,9.99 -0.06,6.47 -0.57,12.93 -1.99,19.26 -0.93,8.17 -1.59,16.38 -2.58,24.55 0.15,2.18 -1.38,7.44 -0.06,8.1 -0.08,-3.31 1.98,-7.54 4.36,-8.96 1.97,1.72 7.34,5.74 3.76,7.49 -2.73,1.04 -6.38,-2.36 -6.38,2.52 -1.52,2.69 -2.74,7 -1.06,9.24 2.84,-0.63 5.96,-2.27 7.61,-3.75 2.03,1.26 5.7,0.92 3.77,4.43 -2.89,4.65 3.5,-0.33 5.45,2.23 3.86,1.51 7.87,-3.74 11.26,-0.84 -1.42,4.09 4.44,3.2 5.19,6.56 1.94,1.37 4.07,0.77 4.89,3.31 2.18,0.86 -1.21,6.6 3.33,5.68 2.58,1.12 6.14,0.42 4.75,-3.03 1.75,-3.72 3.17,3 5.62,1.04 3.5,-1.1 3.84,-4.91 0.95,-7.06 1.78,-1.99 6.6,-1.58 3.43,-5.47 1.27,-2.35 -1.77,-5.16 1.09,-7.2 -1.95,-2.11 4.08,0.01 3.42,-3.48 2.15,-0.49 2.85,-2.17 2.61,-3.54 1.82,1.01 2.01,-3.15 -0.54,-1.86 -1.24,-1.31 -2.01,-2.64 0.2,-3.47 -0.33,-1.44 2,-1.21 2.56,-1.67 0.96,3.46 0.77,-3.24 2.88,-0.59 3.44,-0.12 -2.08,-5.38 2.19,-5.6 -0.3,-3.57 -4.29,-0.98 -5.16,1.24 -2.94,-0.94 -4.42,-0.02 -6.92,-0.52 -0.48,-1.95 -5.24,-0.86 -1.96,-2.84 3,-2.61 -1.26,-5.76 1.74,-8.21 0.18,-2.65 3.61,-7.86 -1.4,-8.03 -1.8,0.66 -3.02,1.85 -4.53,-0.13 -2.79,3.68 -7.23,0.65 -9.47,-1.85 -1.02,0.81 -2.89,-3.34 -3.74,-0.02 -1.83,-2.9 -1.15,-5.89 -1.94,-8.56 -2.49,-1.97 -7.58,0.6 -7.16,-4.13 -0.99,3.32 -7.86,-1.7 -5.65,3.47 1.12,5.25 -0.04,11.74 4.13,15.79 1.6,0.97 5.46,1.4 5.09,3.59 -1.14,-1.76 -5.95,-2.2 -2.42,0.16 0.89,1.86 0.32,4.86 0.46,6.96 -0.86,-3.57 -0.31,-7.65 -4.4,-9.5 -4,-3.65 -3.81,-9.3 -4.62,-14.2 -0.83,-4.14 -2.82,-8.05 -6.26,-10.61 -1.82,-3.68 -6.55,-3.9 -8.36,-7.63 -0.3,-0.84 1.03,-2.73 -0.47,-2.88 z\",\n                        \"department-40\" : \"m 169.77,433.93 c -1.39,4.09 -9.03,1.92 -8.11,7.38 -1.02,7.04 -1.81,14.11 -3.21,21.09 -1.27,6.3 -2.02,12.7 -3.64,18.93 -1,6.23 -2.25,12.44 -3.8,18.55 2.58,-1.5 3.77,4.05 6.97,1.91 3.34,1.32 5.68,-3.95 8.44,-2.39 2.07,1.33 0.83,1.91 -0.48,2.62 2.25,0.71 3.66,-2.53 5.72,-0.83 1.43,1.01 3.09,-0.31 2.14,-1.78 2.65,0.58 4.62,-1.18 7.1,-0.71 0.89,-0.91 2.56,-0.97 3.4,-1.93 1.42,1.18 2.14,3.21 3.39,1.18 1.9,-0.75 2.12,-1.21 2.41,0.33 1.62,2.42 3.07,-1.23 4.2,0.55 1.35,-0.65 5.1,-4.97 5.14,-2 -2.25,3.45 3.32,-1.25 4.51,1.48 1.42,-0.66 5.29,-2.61 3.41,-4.06 -2.62,-1.1 2.2,-2.69 0.51,-4.53 -0.4,-2.09 3.75,-3.09 1.72,-4.6 0.25,-1.62 -1.17,-3.73 0.82,-4.32 -0.1,-1.59 -0.15,-2.99 -0.15,-4.15 -3.84,-1.04 1.14,-3.46 2.82,-3.81 1.4,0.08 1.6,0.86 2.46,-0.49 1.85,-0.5 2.29,-3.87 4,-0.74 -0.03,1.42 -1.08,2.56 1.12,3.35 3.85,1.54 0.42,-3.68 2.06,-5.19 -1.31,-3.01 1.52,-6.01 2.73,-8.67 -3.45,-0.68 -6.76,-2.36 -10.44,-2.46 -3.14,0.72 -0.38,-5.12 -3.37,-6.17 -1.68,-2.94 -3.31,0.33 -2.44,2.4 -1.45,2.03 -6.15,0.75 -7.76,-0.49 0.06,-2.43 0.64,-4.45 -1.66,-5.74 -0.75,-1.94 -4.67,-0.97 -4.92,-3.99 -2.01,-1.55 -5.69,-1.4 -4.21,-4.64 -1.24,-2.31 -3.79,0.2 -5.94,-0.34 -3.05,3.71 -7.01,-1.41 -10.49,1 -4.03,1.42 2.63,-4.52 -0.65,-5.54 -1.61,0.68 -2.43,-1.07 -3.83,-1.21 z\",\n                        \"department-64\" : \"m 211.2,495.72 c -1.9,1.07 -4.71,-0.23 -5.99,2.39 -1.98,0.52 -4.11,-1.44 -6.18,0.45 -1.47,-0.65 2.04,-3.79 -1.1,-2.24 -1.84,1.1 -3.29,3.13 -5.1,2.48 -1.96,1.45 -5,-2.73 -6.29,0.37 -1.3,-1.42 -2.42,-3.2 -3.7,-1.06 -1.86,0.3 -2.9,1.44 -5.06,0.79 -0.86,1.97 -4.19,-0.71 -3.64,2.4 -2.25,0.68 -5.49,-1.09 -7.26,1.32 -3.27,-0.97 2.34,-1.26 -0.09,-2.53 -2.18,-3.25 -4.64,2.8 -7.39,1.71 -2.74,0.92 -5.67,0.14 -7,-2.21 -3.51,1.11 -4.76,4.93 -7.06,7.37 -1.86,2.09 -5.86,0.94 -7.14,3.17 0.39,1.82 2.63,2.08 2.45,4.31 2.16,-0.79 5.47,-0.83 4.92,2.37 1.44,2.55 2.98,-0.5 3.6,-1.51 2.37,0.53 4.98,1.17 7.12,1.91 1.21,3.15 -0.34,6.66 -1.84,9.39 -3.7,1.82 -0.21,5.81 2.82,5.62 2.52,-0.18 0.25,-6.64 4.3,-5.38 -2.77,2.45 0.66,4.77 3.15,4.41 2.76,1.62 4.75,2.53 7.73,3.53 2.51,0.74 4.11,3.68 7.28,2.92 2.81,1.52 7.35,-3.02 7.16,2.26 -1.02,2.96 3.25,2.28 4.34,4.46 1.78,1.41 3.01,6.8 5.13,3.41 1.29,-2.94 5.1,2.52 7.14,-0.85 1.53,-1.11 3.1,-1.71 2.2,-4.29 -2.14,-2.89 3.19,-3.06 1.08,-6.08 -0.73,-2.21 1.82,-2.45 1.78,-4.48 3.8,1.19 0.42,-4.25 3.06,-5 2.06,-1.26 1.63,-4.46 4.21,-4.01 0.61,-1.33 0.15,-2.87 1.47,-3.33 2.68,-2.17 -1.51,-4.94 1.51,-6.75 3.94,0.18 -1.17,-3.74 0.89,-5.91 -0.71,-3.82 -1.88,1.82 -3.23,0.54 -0.52,-1.85 0.16,-3.46 1.54,-4.09 -0.91,-1.78 -0.41,-4.39 -2.84,-4.92 0.66,-3.73 -2.6,-1.04 -3.99,-2.95 z\",\n                        \"department-65\" : \"m 216.99,494.91 c -1.84,0.25 -2.8,4.03 -0.53,4.11 1.88,1.3 0.29,3.67 2.23,4.92 -1.93,0.09 -2.67,2 -1.81,3.38 0.3,1.54 2.42,-3.88 2.78,-0.62 0.04,1.77 -0.37,4.08 1.04,5.66 -0.74,1.52 -3.19,0.65 -3.23,3.06 1.46,1.22 1.22,2.8 0.07,4.31 -0.99,0.9 -1.52,1.78 -1.24,3.38 -1.18,1.4 -2.47,-0.59 -2.75,1.65 -0.31,2.34 -3.5,2.62 -2.83,5.08 -0.23,1.21 0.77,2.46 -1.27,2.75 -1.74,-1.03 -0.67,2.29 -2.47,2.46 -0.22,2.15 1.18,4.49 -1.44,5.52 0.13,2.35 0.39,5.58 3.33,6.26 1.51,1 2.85,2.84 4.69,1.37 -0.57,1.85 1.47,3.6 2.41,4.96 1.56,0.38 2.66,3.5 4.75,1.97 1.8,-0.64 3.96,-1.24 5.98,-1.71 2.21,-1.74 5.92,-0.18 6.53,2.47 2.16,1.45 2.84,-4.54 5.11,-1.48 1.05,2.42 6.1,0.26 2.72,-1.38 -0.47,-1.86 -0.16,-4.75 -0.08,-7.05 -0.01,-1.71 0.82,-4 2.68,-2.21 3.39,1.23 2.02,-4.26 4.56,-5.2 1.78,-1.39 -1.78,-2.01 -0.27,-3.71 -0.3,-0.99 -0.83,-2.98 -1.65,-1.25 -1.08,0.21 -3.2,2.39 -2.44,-0.12 -0.09,-1.57 2.08,-1.37 1.06,-3.26 -1.4,-1.24 -3.29,-2.47 -4.49,-3.12 -2.02,-2.1 3.51,-3.46 2.42,-5.76 0.93,-0.47 4.3,-0.56 1.96,-2.04 0.32,-1.95 5.47,-3.77 2.06,-5.05 -2.3,-1.28 -4.63,-0.69 -6.84,-1.39 -2.1,2.1 -2.26,-2.3 -4.28,-0.93 -1.76,1.3 -0.81,-1.74 -2.47,-1.53 -0.55,-2.46 -4.01,1.85 -5.67,-0.21 0.62,-1.85 -3.42,-2.4 -1.35,-4.21 1.51,-1.16 -1.9,-2.45 -1.19,-4.22 -1.14,-1.21 -3.48,-0.65 -4.39,-2.66 -2.13,-0.62 -0.57,-4.95 -3.7,-4.22 z\",\n                        \"department-32\" : \"m 246.37,463.78 c -1.87,2.87 -5.69,0.08 -7.22,3.28 -1.88,1.49 -4.2,0.57 -5.81,2.33 -2.39,-0.54 -4.55,-3.39 -6.11,0.1 -0.16,1.89 -1.71,0.96 -1.7,-0.3 -2.5,0.36 -4.05,2.53 -2.63,4.96 0.01,3.29 -6.18,-0.5 -3.3,-1.85 -0.54,-2.21 -2.13,-1.97 -3.07,-0.29 -1.34,0.89 -1.71,2.04 -3.36,1.03 -1.68,0.34 -3.48,1.37 -4.38,2.76 1.22,0.28 3.13,1.71 1.37,2.42 1.01,1.6 0.51,3.2 -0.73,3.83 -0.07,2.44 2.42,4.6 -0.76,5.86 -1.18,1.63 0.66,4.33 -1.94,5.01 -0.42,1.69 2.27,1.13 1.62,3.13 2.18,-0.55 3.63,0.28 6.01,0.22 1.55,-0.54 3.47,-2.96 4.82,-0.45 0.15,2.77 2.68,4.35 4.51,5.25 2.48,-0.68 1.19,3.49 3.25,4.21 -0.48,0.88 -2.09,2.3 -0,3.14 1.28,0.27 0.25,2.29 2,2.07 2.01,0.08 3.81,-1.91 5.13,-0.1 0.83,0.3 0.34,2.73 2.13,1.32 1.65,-1.02 1.99,3.25 3.69,0.87 2.91,0.44 5.72,1.25 8.79,1.59 2.28,-1 2.83,-4 4.96,-4.85 -0.08,-1.97 1.2,-2.17 2.72,-1.09 2.04,-2.03 5.8,0.4 7.36,1.79 1.25,2.38 1.53,-1.44 1.56,-2.27 1.63,-0.08 0.78,-2.07 1.64,-3.14 -1.95,-1.43 1.97,-2.65 1.07,-4.39 -0.66,-1.2 0.97,-1.78 2.08,-0.85 0.33,-1.45 2.39,-1.29 3.2,-2.18 2.33,0.7 0.78,-3.33 -0.81,-2.33 -0.96,-0.86 -0.26,-2.97 -2.3,-2.06 -1.55,-0.33 0.33,-2.07 -1.76,-1.78 -1.88,-0.75 0.92,-3.18 -2.09,-3.14 -1.61,-1.44 -2.45,-4.37 -4.36,-5.15 -3.35,1.69 1.17,-3.08 -1.5,-3.24 0.76,-1.49 -1.03,-2.76 -0.22,-4.22 -1.16,-1.24 -2.92,-1.03 -4.29,-1.63 -2.35,1.17 -1.75,-1.94 -0.23,-2.55 1.5,-1.23 1.3,-2.73 1.39,-4.08 3.53,-0.83 -1.38,-2.38 -2.33,-0.22 -1.18,0.08 -0.41,-3.33 -2.53,-1.63 -1.28,0.69 -2.36,3.52 -3.35,0.81 -0.67,-0.82 -1.46,-1.92 -2.53,-2.18 z\",\n                        \"department-47\" : \"m 230.07,418.5 c -0.81,0.77 -0.9,3.82 -1.83,1.38 -1.82,-0.02 -3.21,2.14 -3.88,3.3 1.04,0.9 2.08,1.66 3.3,1.8 -0.04,1.51 -1.7,2.55 -2.03,4.05 -1.55,0.64 -2.55,2.47 -3.24,3.29 -3.01,0.59 -4.44,4.14 -2.78,6.75 -1.33,1.76 2.46,5.68 -1.08,5.69 -2.16,-0.16 -3.67,2.4 -1.25,3.45 1.89,2.62 -1.53,5.28 -3.79,5.58 -0.01,1.94 -0.52,5.85 2.43,4.84 2.83,-0.58 4.82,1.94 7.53,1.7 1.96,-0.36 2.73,1.43 1.07,2.55 -0.51,2.08 -4.01,5.95 -0.67,6.93 1.39,-0.27 1.71,-1.54 2.32,0.34 1.42,0.2 1.56,-3.84 3.99,-2.43 2.21,2.53 4.49,0.26 7.07,0 2.57,-0.7 3.69,-3.71 6.77,-2.71 1.7,-0.39 3.39,-2.44 4.44,0.28 1.31,3.29 3.19,-0.23 4.88,-1.16 0.36,-1.62 1.13,-2.69 2.56,-3.54 -1.25,-2.97 5.51,1.65 4.18,-2.52 -0.96,-0.29 -2.25,-1.68 -0.22,-2.14 2.35,-0.03 2.05,-4.03 2.4,-5.78 -1.23,-1.07 -4.15,-1.71 -2.2,-3.71 -0.38,-1.68 1.32,-4.27 2.55,-1.77 1.53,0.85 4.19,-0.22 5.25,-0.41 0.48,-2.12 -0.42,-3.89 -1.57,-5.33 0.06,-1.97 -1.67,-5.18 -1.15,-6.13 2.23,0.07 5.01,-2.93 1.78,-3.93 -1.73,-2.48 -5.12,-2.94 -6.92,-0.28 -2.08,2.1 -3.89,-1.44 -2.14,-3.04 0.26,-1.39 -1.37,-4.01 -2.62,-1.92 -2.44,1.01 -5.83,0.37 -7,-0.95 -2.41,-0.18 -2.86,2.94 -5.17,1.62 -2.31,0.8 -5.39,2.91 -7.69,0.67 0.42,-2.17 -0.14,-6.16 -2.93,-6.02 -0.81,0.25 -1.86,0.44 -2.38,-0.43 z\",\n                        \"department-31\" : \"m 290.02,474.31 c -1.06,1.38 -2.08,2.2 -3.14,1.27 -0.58,4.46 -6.27,-1.79 -5.29,3.06 -1.9,-0.93 -3.5,1.28 -0.64,0.98 2.48,2.1 -3.77,2.63 -4.93,4.19 -2.22,1.21 -0.1,-1.87 -2.62,-1.46 -1.27,-3.41 -2.92,1.42 -4.53,-1.01 -1.38,1.57 -7.9,0.39 -4.49,3.87 1.19,2.36 4.47,2.68 3.64,5.37 2.67,0.06 0.55,2.9 3.52,1.95 0.58,0.93 0.66,2.79 2.12,2.09 2.71,3.12 -2.63,3.32 -4.16,4.93 -1.1,-1.53 -1.56,1.15 -1.34,1.61 0.44,1.44 -2.97,2.2 -1.16,3.88 -0.09,2.59 -2.4,2.6 -1.68,5.18 -1.9,1.75 -3.41,-2.85 -6.25,-2.48 -1.97,-0.25 -2.83,1.49 -4.6,-0.2 -0.73,3 -3.35,2.98 -4.53,6.1 -1.7,0.77 -1.89,0.75 -1.75,2.05 -1.29,1.74 -3.85,2.87 -2.67,4.97 -1.64,0.77 -2.86,0.43 -2.8,2.37 -2.19,1.55 -3.92,4.34 -0.36,4.93 1.97,0.94 4.52,4.07 1.77,4.79 -1.3,4.88 3.7,-2.96 3.72,1.66 0.49,1.32 -0.65,2.24 1.07,3.28 -2.79,1.64 -2.18,9.05 -6.68,5.6 -1.73,2.41 -1.93,7.77 -0.38,10.18 1.27,3.59 5.97,0.17 8.88,1.83 2.51,-1.92 -1.95,-5.09 0.25,-7.4 -0.76,-3.42 2.9,-4.02 4.93,-2.32 1.62,-0.12 4.31,1.32 2.68,-1.53 -0.93,-1.79 -1.4,-4.59 1.53,-4.74 -1.15,-3.31 5.98,-1.18 5.47,-5.37 -2.22,-1.5 -0.83,-5.26 0.13,-6.33 2.45,2.03 0.85,-3.56 3.56,-1.87 1.66,-2.07 2.75,0.56 4.53,0.43 1.14,1.96 2.46,4.41 4.04,1.37 2.25,-2.5 -5.64,-2.56 -1.56,-4.98 1.91,-0.32 6.85,-0.7 5.84,-3.41 -3.62,0.11 -4.71,-4.72 -0.54,-4.92 1.7,1.78 3.23,3.99 3.46,6.31 3.43,1.14 2.88,-2.05 2.74,-4.44 1.24,-0.74 2.86,2.59 3.98,0.85 2.05,0.25 3.31,3.93 3.51,0.42 1.87,-1.02 3.37,-2.54 3.2,-4.86 1.65,-0.79 5.11,0.92 3.61,-2.58 0.23,-2.56 3.55,-6.11 4.18,-1.52 0.52,0.87 1.91,-3.3 3.78,-0.91 2.24,0.69 2.87,-1.22 1.62,-2.8 0.91,-0.95 2.23,-3.84 -0.03,-2.5 -1.07,2.43 -6.09,-0.82 -6.91,-3.1 -0.98,-3.43 -6.75,-3 -7.98,-6.29 2.91,-1.68 0.76,-3.48 -1.25,-4.16 3.26,-0.53 0.29,-2.11 -0.5,-3.7 0.64,-3.06 -3.23,-3.07 -3.17,-5.79 -1.79,-0.87 -1.06,-3.76 -1.85,-4.82 z\",\n                        \"department-09\" : \"m 281,514.26 c -1.93,0.45 -2.81,3.42 -0.61,3.74 0.47,1.06 3.65,0.84 1.91,2.92 -1.78,0.48 -2.86,1.94 -5,1.65 -1.94,-0.47 -2.72,3.01 -0.2,2.59 2.24,0.58 1.95,2.32 0.27,3.21 -1.24,2.42 -2.69,-0.31 -3.19,-1.7 -1.18,-0.65 -2.35,-0.74 -3.49,-1.68 -1.21,1.5 -3.6,0.41 -3.5,3.08 -0.69,0.69 -2.14,-1.23 -2.07,0.85 0.78,1.23 -1.59,1.79 -0.08,3.25 -1.18,1.45 2.43,1.96 0.17,3.11 -0.33,2.96 -5.7,1.12 -4.88,4.08 -1,0.73 -3.51,0.76 -1.93,2.67 -0.14,2.58 1.36,4.98 3.85,6.04 1.3,1.43 2.44,-0.82 3.84,0.84 2.2,0.69 5.28,-0.08 6.42,2.49 -0.04,2.84 2.56,2.9 4.54,2 2.27,0.7 5.31,-0.62 6.28,1.97 2.47,1.03 1.46,6.42 4.53,5.84 0.33,-1.46 -0.02,-3.65 2.25,-2.77 2.58,-1.67 3.67,2.32 6.42,1.51 1.59,0.01 4.16,0.09 3.44,2.23 1.96,0.82 4.9,1.1 6.14,-0.77 0.17,-1.61 2.36,0.02 3.34,-1.21 1.09,-1.15 1.09,-3.64 3.34,-2.57 1.75,-1.21 4.32,-0.24 5.87,-0.95 0.4,-2.48 -3.41,-3.46 -4.42,-5.35 -2.08,0.81 -4.89,2.28 -6.69,-0.08 -1.29,-0.72 0.48,-2.24 -1.27,-3.27 -1.88,-0.45 -2.07,-2.21 -0.54,-3.2 2.84,0.11 5.65,-1.41 4.42,-4.62 -1.62,-0.54 -3.31,-2.15 -0.6,-2.68 1.86,-1.01 -0.44,-3.29 0.61,-4.77 -1.01,-0.87 -2.68,-1.46 -1.18,-2.69 -0.07,-1.43 -0.47,-4.45 -2.45,-3.41 -0.92,1.43 -0.96,-2.2 -2.67,-1.24 -2.3,-0.25 -5.38,-1.98 -6.1,-3.66 0.91,-1.6 -0.72,-3.91 -1.67,-5.05 -0.92,0.6 -1.38,4.39 -1.98,1.49 -1.2,-0.67 -2.47,-1.05 -3.16,-0.2 -0.47,-1.65 -2.24,-0.25 -2.45,-1.94 -1.91,1 1.34,4.52 -1.22,4.39 -1.46,2.03 -3.74,-0.79 -2.75,-2.52 -1.34,-0.95 -2.09,-3.13 -3.54,-3.63 z\",\n                        \"department-11\" : \"m 322.74,505.07 c -2.05,0.87 -0.82,6.47 -3.43,3.37 -1.24,-1.83 -5.19,2.71 -5.61,-1.17 -0.96,-1.29 -3.24,1.91 -4.87,-0.09 -1.63,-0.8 -2.35,3.52 -2.64,0.63 -0.96,-2.44 -1.93,-1.82 -2.84,-0.31 -0.91,1.07 -1.52,2.84 -0.93,4.7 -1.36,0.65 -4.52,-0.56 -3.73,2 -2.59,1.87 -0.87,4.71 -0.49,7.11 -1.27,1.72 2.24,1.99 3.14,3.2 1.19,0.53 2.27,1.21 2.96,0.05 1.12,0.9 1.35,2.64 3.05,1.69 2.12,0.9 2.09,4.11 1.18,5.21 3.13,0.75 0.58,4.42 2.61,6.09 -0.39,0.99 -3.64,-0.55 -2.72,1.47 3.15,0.22 2.69,5.73 -0.43,5.57 -2.23,-0.56 -4.71,2.43 -1.69,3.29 1.21,1.07 1.25,2.2 0.94,3.14 2.17,2.52 4.98,0.67 7.49,0.33 1.51,2.48 4.82,3.48 4.44,6.58 1.77,-0.41 3.17,-3.16 4.49,-3.39 3.31,0.6 4.11,-3.13 3.04,-5.57 -1.83,-2.22 -0.3,-4.53 2.45,-3.77 2.55,1.09 4.79,-0.72 7.38,0.01 2.84,0.15 6.37,1.82 8.78,-0.17 0.65,-3.39 5.24,-6.04 7.54,-2.78 1.85,0.63 5.78,4.21 6.08,0.38 -0.45,-2.41 3.52,0.65 2.08,-2.31 -2.01,-0.09 -2.51,-4.47 -0.81,-3.38 -1.64,2.12 0.92,2.66 1.07,0.34 -0.46,-2.15 2.38,-4.6 1.05,-6.15 -2.36,0.27 -1.35,-5.67 0.64,-3.13 -2.54,0.73 1.01,4.03 1.12,0.84 1.32,-2.4 3.72,-4.96 4.13,-7.43 -1.48,-1.18 -2.13,-3.67 -4.25,-2.51 -1.21,-1.56 -3.82,-0.43 -5.13,-2.43 -2.87,1.08 -0.98,-4.2 -4.12,-2.08 -1.35,-0.41 -2.91,-0.78 -3.72,-1.82 -0.39,1.7 -3.42,0.2 -2.88,2.31 -1.03,1.88 -2.16,4.69 -4.29,2.05 -1.21,-0.21 -0.6,-4.63 -2.32,-1.66 -2.18,1.62 -3.12,-0.12 -3.87,-2.12 -3.09,-0.03 -1.41,-4.42 0.31,-5.1 -2.19,-1.27 -5.18,-2.28 -7.77,-1.42 -1.98,2 -4.51,-1.63 -6.72,-1.15 -0.21,-0.07 -0.4,-0.62 -0.72,-0.42 z\",\n                        \"department-34\" : \"m 390.74,470.95 c -2.99,-0.26 -2.82,5.22 -4.91,4.05 -0.85,-0.82 -3.55,2.9 -1.7,3.78 -2.23,1.02 -3.63,-1.19 -4.2,-2.93 -1.16,0.9 -4.89,3.4 -3.25,0.24 -0.72,-2.79 -3.95,-1 -5.3,0 -2.69,-1.07 -4.43,1.99 -3.3,4.01 -2.19,2.21 -5.5,0.8 -7.8,-0.28 -1.78,1.11 -0.38,3.61 -0.42,5.05 -1.55,1.49 1.67,5.37 -2.24,4.09 -1.98,-1.46 -4.85,0.46 -4.95,2.6 -2.71,0.38 -5.15,2.58 -7.61,2.47 -1.2,-2.9 -5.65,-2.66 -5.41,0.83 -0.2,2.13 -0.02,4.29 2.09,5.91 -1.23,1.35 0.72,3.85 -1.77,4.6 -0.84,1.05 -3.22,1.42 -1.8,2.86 -2.1,0.55 -3.27,4.78 -0.38,4.9 0.41,3.09 3.29,3.1 4.71,0.7 1.12,1.12 0.35,3.34 2.55,3.76 2.97,1.15 1.66,-5.18 5.05,-4.27 1.09,-0.26 0.38,-2.58 1.62,-0.55 1.21,1.33 3.32,1.66 5.28,1.1 -0.81,3.2 2.64,2.34 4.33,4 1.73,-0.69 2.59,1.52 4.38,0.6 1.39,1.92 3.62,4.56 5.52,1.34 2.58,-2.15 5.39,-4.64 8.99,-3.22 1.68,-2.14 3.28,-4.7 5.33,-6.66 2.9,-0.94 5.12,-2.93 7.63,-4.62 1.32,-0.52 2.38,-2.93 0.36,-1.17 -0.86,0.97 -3.9,2.82 -4.09,1.95 2.86,-0.54 3.94,-3.18 5.35,-4.98 2.22,-0.89 3.15,-3.57 5.97,-3.69 2.76,-1.69 5.46,-2.2 8.14,-1.32 3.13,-2.28 2.15,-5.6 0.6,-8.52 -0.42,-1.85 -2.64,-1.51 -3.41,-3.24 -1.72,-0.64 -2.58,-4.02 -5.12,-2.47 -0.36,-1.17 1.06,-3.05 -1.22,-3.23 -1.16,-1.21 -1.48,-2.47 -3.51,-1.47 -2.48,1.54 -3.44,-1.7 -1.82,-3.25 0.15,-1.49 -1.98,-1.29 -2.11,-2.79 -0.5,-0.22 -1.04,-0.13 -1.56,-0.19 z\",\n                        \"department-81\" : \"m 317.26,455.8 c -1.38,0.45 -1.96,1.61 -3.59,0.76 -0.3,1.95 -3.52,3.22 -5.56,2.27 -1.35,-1.6 -1.97,-0.02 -0.95,1.04 -0.95,0.36 -4.67,-1.27 -3.47,1.46 -0.16,1.66 -2.33,-1.92 -2.18,0.76 -1.1,0.98 -2.79,-1.57 -4.48,-0.74 -2.96,-0.67 -1.32,3.31 0.16,3.83 0.79,1.92 -1.89,3.01 -2.42,4.25 -1.32,0.93 -1.16,3.17 -3.54,1.88 -3.23,0.63 2.44,1.72 -0.33,3.16 -1.29,2.54 1.59,4.57 1.92,6.82 3.43,0.3 1.18,4.78 4.33,5.68 1.56,1.28 -3.01,2.06 -0.13,2.25 2.4,0.02 1.46,2.84 -0.02,3.51 0.41,1.89 3.59,2.46 5.14,3.73 3.27,0.27 2.72,5.06 6.14,5.64 1.57,0.82 3.54,1.72 3.47,-0.75 2.28,-0.44 1.4,2 0.21,3 0.06,1.82 2.22,2.93 2.93,4.31 2.14,0.3 3.89,-2.52 5.16,0.35 2.18,0.85 0.37,-3.47 2.64,-4.11 1.88,0.14 4.42,2.05 6.83,2.16 2.71,-2.86 6.35,1.58 9.11,-0.98 1.2,-0.64 2.07,-1.84 2.78,-2.36 -0.59,-1.87 0.29,-4.05 -1.8,-5.38 -0.4,-2.17 -0.06,-5.25 1.22,-6.85 1.68,0.37 3.78,1.08 4.87,2.68 2.13,-1.79 6.04,-1.49 7.35,-3.74 0.82,-2 0.39,-5.04 -2.37,-4.51 -1.51,-1.26 -3.19,-1.55 -4.19,0.39 -2.37,0.97 -5.11,-0.89 -6.55,-2.85 -1.52,-2.15 -3.76,-4.35 -2.85,-6.85 -1.52,-0.96 -0.28,-3.74 -2.85,-4.01 -0.47,-0.84 1.76,-2.39 -0.4,-3.07 -0.29,-2.52 -2.16,-4.07 -4.11,-4.88 -0.57,-2.53 -3.81,-3.32 -5.31,-4.22 -0.15,-2.48 -4.32,0.72 -4.86,-1.12 1.44,0.14 3.17,-1.78 0.74,-1.46 -0.91,0.39 -2.23,-1.71 -3,-2.06 z\",\n                        \"department-82\" : \"m 270.52,443.01 c -2.14,1.16 -4.19,2.19 -6.63,2.16 -1.8,1.76 -1.62,-2.78 -3.54,-0.83 0.31,1.77 -1.92,4.88 1.19,4.85 2.39,1.55 0.09,4.21 -0.3,6.31 -0.44,1.21 -4,0.94 -1.6,2.01 1.97,0.84 -0.06,4.23 -1.88,2.4 -1.71,-1.22 -1.76,0.34 -2.14,1.6 -2.88,-0.32 -2.21,4.49 -0.81,4.92 0.76,-1.3 4.97,-1.27 3.43,0.36 -1.84,1.04 -0.66,3.8 -2.94,4.81 -1.25,0.84 -0.68,2.87 0.84,1.84 1.82,0.52 5.75,1.1 3.97,3.56 1.04,0.67 0.69,2.25 0.98,2.38 1.77,0.78 -1.98,4.07 1.01,3.39 2.26,-0.43 4.92,-0.42 6.74,-1.49 1.27,0.58 2.39,0.31 3.28,-0.35 1.56,0.75 2.53,2.41 3.56,2.88 1.74,-0.62 2.22,-2.04 4.12,-2 1.89,-0.5 1.91,-2.44 -0.22,-2.07 -1.95,-1.13 1.52,-1.46 1.74,-1.49 -0.38,-2.02 1.51,-2.5 2.7,-1.14 2.06,1 2.76,-3.06 4.11,-1.34 0.99,-1.05 2.54,-1.76 3.38,-2.23 -0.31,-0.89 -2.82,-2.03 -0.52,-2.27 3.19,1.02 3.39,-3.02 5.79,-4.18 1.52,-1.98 -2.9,-3.42 -1.35,-5.63 1.94,-1.07 4.17,0.24 5.66,0.61 0.71,-1.21 1.03,-1.65 2.08,-0.63 0.24,-1.33 0.21,-2.59 2.09,-1.85 1.1,0.24 2.24,0.41 1.15,-0.79 0.51,-1.8 4.19,2 3.66,-0.96 -0.31,-2.1 -2.39,0.61 -2.47,-1.31 -3.3,-1.19 0.65,-3.45 1.77,-4.89 0.21,-2.45 -4.44,-0.16 -4.38,-2.98 0.49,-1.88 -1.6,-1.91 -2.4,-1.54 -1.21,-0.58 -1.91,1.84 -3.15,0.41 -2.28,-0.21 -4.04,4.15 -5.85,2.74 -0.79,-2.47 -3.62,0.05 -1.56,1.51 0.31,2.35 -3.95,2.36 -3.07,-0.25 -2.24,-2.68 -3.51,1.69 -5.86,2.39 -1.45,2.53 -2.73,-0.71 -4.63,-0.48 -0.83,-1.02 1.91,-4.61 -0.86,-3.31 -1.97,2.14 -4.17,-0.81 -5.73,-2.04 -1.54,-0.03 -2.07,-2.27 -2.71,-3.05 0.48,-0.77 3.85,-1.24 1.34,-2.04 z\",\n                        \"department-12\" : \"m 344.82,407.22 c -2.14,2.24 -4.92,3.53 -5.91,6.44 -0.2,3.05 -2.88,4.6 -2.81,7.85 -2.78,1.77 -2.83,6.44 -7.03,4.76 -2.85,0.81 -3.66,-2.92 -6.7,-0.63 -2.79,-0.18 -0.5,4.84 -3.68,4.44 -1,2.09 -4.35,0.18 -4.99,0.68 -2.27,1.36 -4.93,3.35 -6.47,5.56 -0.5,0.74 -1.33,-2.39 -1.72,0.49 -3.55,0.2 0.23,4.71 0.28,6.73 2.91,2.12 -2.27,3.27 -0.47,5.85 1.39,1.46 5.91,0.06 3.8,3.53 -3.1,-0.35 -2.94,5.1 0.37,3.8 0.84,2.24 2.93,2.1 3.97,0.28 0.64,-0.72 3.02,-0.92 4.38,-1.29 0.38,2.53 5.59,1.47 2.9,3.68 1.7,0.61 3.86,-0.93 4.36,1.52 3.19,-0.21 4.33,4.36 7.18,4.97 1.07,2.25 3.3,4.6 2.21,6.63 2.23,0.9 1.85,3.49 2.9,4.9 -1.38,2.72 2.8,5.25 4.08,7.58 2.19,1.85 5.01,1.88 6.77,-0.28 2.08,1.32 5.71,0.5 5.44,3.99 1.27,0.35 3.33,-1.02 4.93,0.31 1.97,-0.43 -0.03,-3.71 1.21,-5.08 -2.26,-3.18 1.08,-5.37 3.72,-2.96 2.82,0.94 5.31,-0.91 4.29,-3.64 1.04,-3.15 6.02,0.38 5.11,-4.28 0.93,-2.39 7.18,-5.33 2.04,-7.25 -1.51,-0.47 -2.97,-0.34 -3.42,-2.06 -1.73,1.9 -3.93,-2.51 -0.51,-1.95 0.48,-1.6 1.14,-3.68 2.65,-4.73 -0.68,-4.43 -9.42,2.3 -6.63,-3.08 -1.18,-1.25 -3.15,-1.32 -3.65,-2.81 -2.6,0.85 1.8,-4.01 -0.75,-5.21 -0.72,-3.41 2.21,-7.15 -2.14,-9.54 -0.76,-2.6 0.83,-5.86 -2.52,-7.49 -2.49,-2.83 -5.19,-5.99 -4.63,-9.9 -1,-0.3 1.62,-2.72 -0.79,-2.1 -2.92,-0.77 -0.83,-7.54 -5.15,-5.36 -2.76,2.56 0.68,-4.65 -2.57,-4.34 z\",\n                        \"department-46\" : \"m 289.52,399.9 c -1.93,0.63 -3.22,2.08 -5.19,2.51 -0.55,2.48 1.91,5.04 0.2,6.77 1.53,1.17 0.68,2.13 -0.64,2.71 -0.49,1.39 -2.82,1.08 -2.03,3.22 -2.04,0.31 -3.93,1.87 -1.84,3.73 -0.63,1.48 -1.5,2.57 -2.96,3.19 -1.15,2.55 -6.2,0.92 -4.86,4.75 -0.81,1.54 -2.94,2.2 -2.41,4.25 -2.21,-0.14 -3.42,2.82 -5.02,1.78 1.06,2.16 1.42,4.31 1.76,6.68 1.42,0.87 1.66,2.27 1.65,3.98 1.08,0.06 4.12,-1.76 2.93,0.81 -1.71,0.25 -2.37,1.31 -0.78,2.24 0.3,2.25 3.42,1.16 3.62,3.37 1.9,1.69 3.3,-0.16 5.08,-0.35 0.72,1.57 -2.26,4.22 0.76,4.02 1.46,0.62 1.81,2.15 3.19,0.31 1.85,-0.6 3.07,-3.05 4.33,-3.46 2.43,-0.2 1.29,4.21 3.91,2.83 1.72,-1.05 -1.79,-4.67 1.45,-4.27 1,-0.03 1.35,3.17 2.11,1.18 -1.32,-1.83 1.53,0.24 1.9,-1.51 1.38,-1.16 3.1,-1.29 4.45,-0.92 0.2,-1.96 1.81,0.11 2.71,-1.11 1.67,0.1 4.18,-1.49 1.89,-2.9 -0.47,-2.26 -2.34,-4.82 -1.67,-6.85 1.76,-0.03 1.59,-1.88 3.42,-1.54 2.32,-1.45 3.8,-3.77 6.26,-4.75 1.66,-0.78 4.05,1.82 5.11,-0.84 2.37,0.13 1.47,-2.41 -0.05,-3.14 -0.16,-1.64 0.62,-3.82 -1.82,-3.9 0.88,-2.1 0.95,-4.43 1.69,-6.42 -0.75,-2.19 -3.06,-3.63 -3.78,-5.98 -0.22,-1.15 1.69,-2.17 -0.2,-3.09 0.38,-3.82 -4.01,-3.64 -6.05,-1.43 -0.4,-1.8 -2.37,-1.92 -3.03,-0.03 -1.66,0.66 -3.24,2.7 -4.53,1.71 -1.67,0.61 -1.38,-2.93 -3.39,-2.7 -0.94,-2.08 -2.85,-4.19 -5.2,-4.37 -1.54,-0.53 -2.13,1.38 -2.99,-0.49 z\",\n                        \"department-24\" : \"m 247.71,356.64 c -1.33,1.72 -2.15,5.44 -4.37,3.98 -1.29,2.19 0.65,6.02 -2.78,7.22 -1.07,1.73 -1.22,3.17 -3.43,2.89 -1.35,1.3 -2.7,2.47 -3.69,2.4 1.31,1.44 -2.43,1.19 -1.92,3.33 -1.11,2.86 2.21,7.18 -2.16,7.82 -1.72,1.11 -2.1,4.21 -4.37,4.44 -1.83,-1.85 -4.84,-0.09 -5.58,2.19 -1.71,0.92 1.62,1.85 -0.97,2.36 -2.09,3.33 4.38,0.08 4.2,3.85 0.13,2.45 -1.7,4.67 -1.9,7.15 -2.34,1.81 1.75,4.57 -1.01,6.63 -1.98,1.62 -0.57,1.93 1.18,2.08 1.5,2.41 4.72,0.24 7.34,1.24 1.58,-2.14 3.57,-4.36 5.67,-1.25 -1.59,1.46 -2.98,1.82 -1.65,4.38 2.67,1.95 3.57,5.11 3.66,7.87 2.89,2.27 5.83,-2.31 8.31,-0.64 1.5,-0.14 1.73,-2.6 3.78,-2.17 1.74,-0.66 1.71,2.87 4.06,1.59 2.32,0.27 4.87,-3.2 5.62,0.33 1.53,0.48 -2.2,5.61 1.71,4.55 1.86,-2.63 5.57,-3.37 7.55,-0.26 1.61,0.15 2.83,4.14 2.8,0.73 3.09,-1.47 0.93,-6.06 5.03,-5.87 2.1,-1.49 4.63,-2.68 4.89,-5.07 -3.18,-2.94 3.24,-2.15 2.07,-5.03 1.39,-0.77 2.75,-1.97 3.62,-3.12 -2.55,-1.45 1.11,-2.89 -0.92,-4.95 -0.82,-1.88 -0.06,-3.23 0.88,-4.14 -1.12,-2.13 -3.92,-5.19 -1.35,-6.5 -1.47,-1.44 -7.7,-0.59 -6.45,-3.12 3.25,-2.31 -3.9,-1.43 -1.21,-3.75 2.08,-0.54 1.75,-2.32 -0.17,-2.44 -0.66,-1.42 -0.44,-4.25 1.4,-4.42 0.7,-1.32 4.27,-4.12 0.61,-3.76 -2.11,-1.25 -0.47,-1.95 0.2,-2.77 -1.16,-1.12 -2.39,-0.61 -3.26,-2.06 -1.89,0.78 -2.29,-1.48 -4.2,-1.06 -0.44,-1.95 3.54,-4.4 -0.69,-4.44 -2.48,1.66 -3.1,-3.01 -4.18,-4.31 -2.45,-0.69 -5.34,1.33 -6.92,-0.8 -0.28,1.94 -2.24,3.99 -3.3,1.71 -4.01,-0.32 1.3,-5.83 -3.25,-6.54 -2.23,1.7 -3.48,-1.31 -4.85,-0.28 z\",\n                        \"department-16\" : \"m 252.54,327.65 c -2.29,0.72 -1.44,3.44 -4.4,2.98 -1.27,1.85 -4.05,0.47 -4.98,-1.39 -0.68,-3.54 -5.06,1.6 -1.79,2.2 -0.58,3.13 -3.4,1.11 -5.1,0.91 -3.14,1.37 -5.19,-1.3 -7.86,-1.81 -1.52,1.5 -2.93,-1.91 -4.66,0.15 -1.97,-0.37 -2.45,3.38 -5.06,2.24 -1.93,0.04 0.82,2.24 -1.2,2.74 0.87,2.68 -3.95,2.15 -2.09,4.68 -0.28,1.91 -3.6,0.31 -2.2,2.53 -0.11,1.44 2.16,2.96 -0.03,4.42 -0.09,1.53 -0.09,4.77 -2.18,3.4 -1.96,2.42 -3.18,-3.47 -5.22,-0.43 -2.04,1.16 -4.38,0.45 -6.15,1.89 -2.73,1.16 0.38,1.62 1.39,1.98 -2.76,2.08 2.9,5.14 -0.46,5.78 -1.46,1.75 0.17,2.05 1.51,1.62 1.01,2.19 5.21,3.29 2.97,5.77 2.34,0.08 4.85,3.05 1.84,4.29 -0.18,1.67 3.8,4.33 0.08,4.95 -3.11,0.84 0.04,2.57 1.34,2.89 -0.62,0.79 -3.1,1.95 -1.06,3.18 2.2,-2.04 4.86,0.36 7.25,0.92 -0.44,1.96 0.03,3.48 2.36,2.77 1.73,0.17 2.65,2.07 3.44,2.83 1.42,-1.43 3.54,-1.84 5.23,-0.38 1.69,-1.46 2.03,-3.29 3.72,-4.47 1.1,-1.12 3.55,-1.27 2.27,-3.69 -1.79,-2.79 1.03,-5.85 1.8,-7.57 0.23,-1.21 1.54,0.42 2.16,-1.12 1.02,-1.12 2.42,-1.8 3.66,-1.6 0.38,-3.16 4.03,-3.24 3.74,-6.43 -0.64,-1.42 -0.09,-4.56 1.85,-3.02 1.5,-1.35 2.27,-4.04 4,-5.85 1.03,-2.13 3.92,-2.7 3.46,-5.45 1.36,-0.67 3.4,1.91 3.05,-0.98 1.5,-1.75 2.07,-3.92 1.46,-6.01 -0.57,-2.93 3.18,0.64 4.34,-1.8 2.69,-1.02 0.69,-6.52 -1.66,-5.43 -1.88,-0.53 -3.24,-3.11 -1.94,-5.21 -0.3,-3.28 -2.38,-2.24 -4.88,-2.46 z\",\n                        \"department-86\" : \"m 220.19,259.01 c -2.67,1.11 -1.14,6.66 -4.7,5.46 -1.12,2.67 -0.28,6.33 2.34,7.3 1.21,2.8 -0.12,6.86 2.81,8.58 -0.34,0.88 -4.74,0.94 -2.01,2.12 1.66,0.91 -1.21,4.66 1.86,5.01 0.17,2.88 -3.53,4.96 -3.39,7.51 2.34,-1.74 2.86,1.09 4.01,2.56 -2.36,1.41 -1.42,4.19 -3.11,6.09 1.11,2.79 0.46,6.03 2.68,8.32 -0.98,2.26 1.88,5.6 3.64,2.56 3.26,-2.86 4.22,4.09 1.42,5.44 -1.17,2.3 -1.1,6.6 2.78,6.31 1.76,0.42 -1.54,4.9 1.9,4.82 2.58,2.29 6.42,0.33 9.24,2 3.12,-1.13 -1.64,-3.61 1.54,-4.88 2.93,-0.45 3.66,4.64 7.15,2.55 2.65,-1.24 4.01,-4.64 7.5,-3.07 5.18,0.43 -2.68,-6.17 1.99,-6.32 0.93,-3.5 4.73,-3.96 7.28,-4.09 1.27,-2.3 2.21,-5.88 5.59,-4.54 3.05,-1.23 4.82,-4.66 1.43,-6.65 -0.96,-2.09 -0.63,-5.43 -4.09,-4.96 -2.4,-0.38 -3.1,-2.52 -5.49,-3.06 -4.32,-2.56 0.87,-7.41 -2.39,-10.17 -3.73,-2.36 -3.49,-7.19 -7.25,-9.59 -1.82,-2.65 -1.18,-7.21 -5.41,-7.83 -3.82,-1.6 1.37,4.35 -2.65,2.83 -3.22,-0.17 -6.05,2.2 -9.36,1.21 -5,0.41 0.09,-6.41 -3.44,-7.54 -1.02,-1.75 -5.86,1.14 -3.94,-2.42 -1.49,-2.05 -5.43,-1.78 -6.57,-4.86 -0.36,-0.36 -0.83,-0.61 -1.33,-0.67 z\",\n                        \"department-37\" : \"m 248.48,223.77 c -1.42,3.62 -6.45,2.73 -8.2,5.37 -1.46,1.36 -3.9,-2.72 -3.72,0.4 1.37,1.11 1.66,4.33 -0.82,2.81 -1.82,-1.23 -6.06,-3.74 -5.96,0.05 -1.81,2.38 0.79,4.4 -1.19,6.79 -1.59,2.5 -0.38,5.84 -2.27,7.78 -1.62,2.49 -3.61,4.89 -3.44,8.06 -0.62,2.26 -1.45,6.53 1.54,7.19 1.25,-0.87 1.94,2.54 3.31,0.71 0.97,1.11 -0.63,5.21 2.13,3.2 1.8,-1.1 1.89,1.61 3.57,1.4 0.89,2.11 -1.82,7.48 2.05,6.94 1.94,-0.66 4.56,0.68 6.7,-0.98 1.61,-0.96 6.42,0.73 3.58,-2.33 -0.63,-2.85 4.7,0.45 5.56,1.73 0.59,2.71 0.86,5.99 3.94,7.28 1.95,1.88 1.63,7.78 6,6.31 1.43,1.23 2.54,1.03 3.52,-0.09 1.84,-0.7 -1.13,-3.48 0.89,-4.6 0.94,-2.88 0.5,-6.24 2.1,-8.75 -0.51,-3.01 1.88,-5.04 4.77,-5.05 2.3,-0.22 4.18,2.32 5.36,-0.8 1.09,-2.04 2.29,-3.59 3.83,-4.89 -0.17,-3.29 -2.68,-5.86 -4.09,-8.7 -1.3,-3.91 -5.06,-1e-4 -7.13,-2.72 -1.96,-2.54 1.63,-6.07 -1.07,-8.64 1.91,-0.4 1.97,-2.18 -0.13,-2.78 -0.17,-1.99 -3.11,-4.5 -0.71,-6.14 -0.62,-1.2 -2.55,-4.44 -3.27,-1.51 -0.57,-2.17 -2.63,-4.19 -4.63,-1.88 -3.07,2.82 -2.07,-3.8 -2.27,-4.29 -2.95,-0.2 -5.98,-1.05 -8.71,-0.82 -1.21,0.63 -0.51,-1.11 -1.23,-1.05 z\",\n                        \"department-72\" : \"m 231.9,172.51 c -2.61,0.34 -4.43,1.91 -6.19,3.04 -1.38,0.48 -2.05,1.94 -3.42,2.6 -0.33,3.05 -3.2,-1.34 -4.33,0.83 -1.43,1.08 -5.63,0.06 -4.24,2.95 -3.08,-0.79 0.86,3.38 -1.37,4.58 -0.86,1.81 1.85,4.28 -0.94,5.2 -2.01,1.1 -4.73,3.07 -1.86,4.9 -0.99,1.29 0.02,2.59 -0.74,3.79 -2.44,-0.68 -6.78,1.67 -3.4,3.85 0.73,2.09 1.76,4.48 -1.53,4.5 -2.58,-0.44 -3.89,2.42 -1.36,3.52 0.5,2.29 -5.19,2.01 -2.45,4.82 3.47,-0.45 1.48,4.86 3.4,5.98 2.31,-1.32 4.91,2 6.78,-0.52 3.29,0.6 -2.46,2.42 0.25,4.06 0.74,1.66 3.87,2.49 4.49,0.08 2.3,1.12 4.71,0.48 6.02,2.83 1.69,1.36 4.05,0.33 5.35,2.19 1.62,-0.93 1.69,-2.65 3.94,-1.78 2.54,-0.05 4.67,2.82 7.14,2.4 0.9,-1.5 -2.93,-3.52 -0.02,-4.31 1.04,1.34 2.82,2.12 3.33,-0.2 2.31,-0.39 4.79,-1.35 6.51,-2.6 -2.85,-2.23 1.58,-5.3 3.79,-5.52 0.46,-1.4 2.4,-3.52 3.78,-4.83 -1.44,-1.85 -0.29,-6.03 1.78,-3.82 -1.09,-2.59 3.21,-2.96 0.58,-5.37 0.08,-1.7 1.43,-3.61 -1.11,-3.97 -1.64,-2.45 2.4,-1.51 1.74,-3.29 -2.05,-0.4 1.4,-1.62 0.89,-2.96 2.29,0.52 3.2,-1.49 0.55,-1.94 -2.01,-0.09 -3.25,-2.56 -5.32,-1.22 -2.38,-0.82 -2.49,-6.22 -5.36,-4.81 0.79,2.39 -2.74,0.17 -4.1,0.37 -1.11,-1.06 -2.58,-1.99 -2.45,-3.6 -1.86,0.23 -5.36,-0.71 -4.94,-3.08 -0.44,-3.4 0.09,-8.02 -4.58,-8.58 l -0.59,-0.08 2e-5,0 z\",\n                        \"department-61\" : \"m 236.9,140.22 c -1.37,2.93 -4.44,0.95 -5.77,0.51 -0.7,2.09 -2.92,0.83 -4.24,2.34 -1.35,-2.77 -4.38,-0.25 -5.26,1.87 -3.09,0.73 -4.56,4.12 -8.22,4.12 0.6,2.97 -3.23,-1.05 -4.99,-0.78 -2.07,-0.19 -4.42,-1.53 -4.55,1.51 -1.86,-0.97 -4.38,-5.01 -6.99,-1.88 -2.67,0.7 -5.63,2.58 -8.38,0.81 -1.94,-0.21 0.58,2.41 -2,2.73 -2.21,0.79 -4.81,2.48 -5.8,4.18 1.64,0.47 4.03,2.64 4.89,3.81 -2.6,1.08 -0.04,3.17 -0.37,4.16 -0.1,3.46 -3.63,4.61 -4.76,7.47 1.29,1.59 1.78,3.06 3.56,2.81 -0.2,2.49 3.05,0.83 2.04,-0.77 2.19,0.16 3.37,-1.72 3.97,1.42 2.29,-1.26 4.74,-2.16 6.49,-3.76 2.15,-0.24 4.6,-0.72 6.51,1.02 1.07,-1.63 2.35,-2.41 3.95,-1.42 1.83,-1.07 -0.27,-4.47 3.02,-3.12 1.81,1.18 3.45,2.14 1.99,3.87 0.35,2.25 1.92,4.62 4.47,2.94 1.72,0.65 -0.84,6.99 2.46,4.03 1.16,0.36 3.03,2.09 3.43,-0.38 1.63,-0.81 2.66,-2.19 4.04,-2.85 0.28,-1.38 5.31,-3.16 7.52,-1.96 3.9,1.26 2.59,5.53 3.26,8.6 -0.11,2.92 4.56,1.76 5.41,3.53 -0.07,1.99 3.35,3.78 5.67,2.91 3.19,-3.99 3.88,7.21 7.66,3.4 3.17,-1.53 -1.64,-4 -0.17,-6.33 -3.57,-0.8 0.8,-4.69 3.13,-4.08 2.2,-1.01 6.03,-4.76 3.83,-6.66 -0.95,-2.15 2.33,-4.5 -0.88,-5.72 0.72,-2.4 -4.26,-1.56 -3.98,-4.43 -1.88,-0.39 0.25,-5.19 -3.06,-4.1 -0.43,-1.15 -0.37,-2.32 -1.89,-2.36 3.89,-2.53 -0.45,-5.72 -3.19,-6.87 -1.23,-0.78 -2.92,-1.32 -1.88,-2.86 -1.36,-1.19 -1.22,-3.67 -3.26,-1.5 -2.58,-0.67 -7.27,0.22 -7.13,-3.52 0.64,-0.73 0.75,-2.65 -0.53,-2.7 z\",\n                        \"department-27\" : \"m 242.33,106.21 c -2.25,1.4 -4.46,3.12 -7.27,3.2 -3.13,0.01 -1.44,3.96 -0.97,5.79 -0.25,1.42 -0.2,3.07 0.05,4.32 1.56,-2.67 4.74,1.16 1.61,1.68 -3.49,1.51 3.09,2.25 1.65,4.56 -0.6,1.84 0.47,2.5 1.82,3.11 -1.56,1.19 -0.91,2.9 -0.68,4.31 -3.08,-0.3 -1.43,3.4 0.78,3.14 1.11,2.25 -1.15,5.22 -2.03,7.57 1.97,1.86 5.79,2.95 8.17,1.67 1.68,-0.94 2.06,2.46 2.78,2.55 -1.38,3.04 5.18,3.21 5.92,5.84 1.68,1.55 -0.55,2.63 -0.78,3.74 1.84,0.46 1,3.47 3.6,1.89 2.3,-0.06 2.09,-4.03 4.58,-2.4 2.21,-1.11 4.77,-0.84 6.52,-3.04 1.78,1 3.18,0.1 2.69,-1.95 1.73,0.3 3.34,2.1 5.52,1.18 1.73,0.91 5.58,0.54 5.97,-1.71 -2.26,-3.14 2.59,-4.24 4.24,-5.72 -0.13,-1.58 -1.51,-4.22 1.43,-3.88 0.74,-0.67 -0.33,-1.93 0.53,-2.57 -1.47,0.74 -2.69,-0.27 -1.44,-1.58 -1.04,-1.31 -2.12,-4.8 0.61,-3.44 1.11,-1.2 0.8,-1.98 2.49,-1.09 3.37,-0.07 4.6,-2.86 5.45,-5.81 0.13,-2.58 1.39,-4.89 2.52,-6.95 1.56,-1.59 3.56,2.74 3.6,-0.58 -1.93,-1.54 -0.62,-5.1 -2.69,-7.09 -0.94,-2.78 -3.12,-0.33 -5.23,-1.99 -1.74,0.33 -2.23,-3.11 -4.08,-1.45 -2.23,-1.34 -5.13,-1.37 -7.71,-1.23 -0.89,1.39 -2.82,1.34 -2.49,3.35 -1.48,1.47 -1.23,4.8 -4.4,3.5 -1.42,0.9 -3.69,0.83 -4.18,2.58 -2.63,-0.42 -3.44,1.09 -2.81,3.24 -1.76,0.32 -3.16,0.76 -4.2,-0.95 -1.28,0.44 -0.68,-4.41 -2.73,-1.94 -0.92,0.95 -1.47,-2.05 -3.03,-1.54 0.47,-2.75 5.09,0.66 3.34,-3.08 -0.36,-1.37 -2.02,1.31 -1.95,-1 -2.7,-0.13 -3.88,-2.85 -6.72,-1.29 -2.27,1 -3.56,-0.22 -5.16,-1.45 -2.66,0.51 -3.03,-3.16 -5.33,-3.52 z\",\n                        \"department-14\" : \"m 231.23,109.9 c -4.06,0.09 -6.85,2.84 -9.55,5.38 -3.34,2.06 -7.05,3.56 -10.99,3.85 -1.95,1.92 -3.54,-1.01 -5.94,-1.28 -2.67,-1.83 -5.65,-1.96 -8.71,-2.47 -2.52,-0.48 -5.06,0.57 -7.64,-0.13 -3.42,-0.41 -7.08,-0.38 -10.19,-1.98 -1.94,-1.82 -4.91,-0.74 -7.32,-0.9 -3.6,0.27 -1.56,4.12 -3.38,5.89 0.35,2.42 2.43,4.3 4.66,5.41 1.29,2.26 4.25,1.82 4.95,-0.81 0.89,1.47 2.18,1.84 0.71,3.15 -2.85,2.72 2.74,3.63 1.8,6.79 0.25,1.58 -1.34,2.53 0.39,3.45 -2.56,1.47 -4.13,6.64 -7.82,4.57 -1.7,0.05 -2.56,3.86 0.25,2.27 1.68,0.8 -1.5,3.01 -2.33,3.69 -1.18,-0.64 -2.61,2.05 -3.44,2.77 1.51,0.52 3.07,1.11 2.99,2.92 1.94,0.53 4.35,0.57 6.32,-0.18 1.55,1.73 4.66,1.77 5.78,1.31 0.33,1.85 2.06,-2.55 3.65,-1.79 1.67,-0.4 2.88,-1.72 1.91,-3.16 2.07,-1.17 2.99,1.93 4.94,0.32 1.69,0.63 2.6,-1.47 4.44,-1.14 2.02,-2.53 4.71,-0.49 6.27,0.75 0.09,2.25 1.52,-0.03 1.58,-1.02 2.72,0.42 5.75,0.47 7.89,2.34 0.72,-2.21 4.15,-0.58 5.38,-3.06 1.98,-1.59 4.45,-2.16 5.53,-4.57 1.56,-0.47 2.62,-1.63 3.42,0.6 1.16,-0.33 2.13,-1.63 3.58,-1.13 0.5,-2.08 1.78,-0.88 2.61,-0.44 1.61,0.55 3,0.24 4,-1.29 0.95,1.22 2.59,1.22 2.01,-0.7 1.28,-2.16 0.25,-3.37 -2.04,-3.81 -1.78,-1.67 1.38,-2.37 1.39,-3.02 -1.93,-1.58 2.62,-4.1 -0.98,-4.39 -0.16,-2.06 0.6,-4.48 -2.13,-4.95 -3.24,-2.19 4.22,-2.19 0.79,-4.43 -0.9,-0.04 -3.11,2.04 -1.98,-0.25 -0.33,-1.14 -1.2,-1.29 -0.01,-2.61 -1.49,-1.67 0.64,-7.09 -2.8,-5.97 z\",\n                        \"department-76\" : \"m 285.08,67.51 c -1.66,1.28 -3.92,-0.27 -5.32,2.21 -2.55,2.82 -5.75,4.75 -9.23,6.16 -2.69,2.07 -6.27,0.91 -9.1,2.49 -3.04,0.83 -5.97,2.2 -9.16,2.2 -4.64,-0.08 -8.38,2.85 -12.2,5.03 -3.19,1.24 -5.65,3.53 -8.97,4.44 -4.45,0.63 -4.32,5.58 -6.08,8.7 -1.33,2.41 -3.69,6.09 0.02,7.66 2.71,1.09 5.28,1.25 8.39,1.98 3.84,1.23 7.92,-4.2 10.87,-0.97 1.02,1.67 2.99,3.04 4.68,1.44 -0.81,3.45 3.88,2.23 5.92,1.74 1.25,0.7 1.48,-1.8 1.82,0.62 0.74,1.56 3.24,0.12 3.81,1.84 1.65,-0.96 2.48,4.22 -0.34,2.48 -3.28,0.03 0.21,1.48 0.51,2.68 2.73,-3.35 2.83,4.25 5.77,2.84 2.8,-0.27 -0.27,-3.85 3.3,-3.41 1.82,-0.28 2.83,-2.57 4.57,-2.23 0.36,-1.37 4.68,0.8 4.04,-2.57 1.27,-2.05 1.52,-4.08 4.3,-5.05 2.08,0.14 5.31,0.85 7.56,1.4 2.14,-0.45 3.59,3.15 6.18,2.19 2.06,0.69 2.28,-3.97 4.3,-4.86 1.52,-1.49 -0.75,-3.01 -1.45,-0.94 -2.42,-0.89 0.93,-2.53 -0.81,-3.95 0.3,-1.61 -2.27,-1.27 -1.03,-2.58 -0.73,-1.35 1.8,-2.21 -0.04,-3.48 1.02,-1.01 3.32,-5.11 0.67,-2.57 -2.48,-0.31 0.5,-3.34 1.11,-4.23 -0.07,-1.57 3.34,-0.34 1.01,-2.16 -2.4,-2.69 -1.34,-6.85 -4.28,-9.1 -3.65,-1.5 -5.37,-5.07 -8.6,-7.13 -2.03,-0.46 -0.42,-2.8 -2.2,-2.85 z\",\n                        \"department-60\" : \"m 299.82,88.06 c -0.68,1.53 -2.52,3 -2.62,4.61 0.88,0.83 2.72,-2.26 2.36,0.47 -2.03,0.88 -1.5,2.81 -1.5,4.35 -1.65,1.28 0.75,1.64 0.2,3.03 0.54,1.64 1.83,2.54 0.02,4.14 0.78,1.65 2.88,-1.94 3.18,0.81 -0.81,1.88 -3.2,3.3 -3.32,5.72 1.83,-0.19 -0.44,1.38 1.38,2.1 1.48,2.13 0.75,4.92 2.41,6.82 0.2,2.27 -1.63,1.56 -2.48,0.39 -2.21,-0.34 -2.49,2.24 -0.48,2.81 -0.83,1.16 -0.47,2.78 1.13,3 2.38,-0.91 4.68,1.32 7.04,0.62 2.19,-0.63 4.26,-0.42 6.14,-1.88 1.82,-1.52 2.59,1.29 4.7,0.92 0.24,2.48 3.26,-1.11 3.69,1.4 -0.75,1.55 3.2,0.09 3.21,-1.39 1.69,-0.21 1.93,2.59 3.71,1.86 2.57,0.22 4.8,1.97 6.25,3.43 0.62,-1.34 1.71,-1.33 1.95,0.34 1.46,2.81 2.94,-2.02 4.79,0.35 1.09,0.96 1.32,2.68 2.73,1.05 0.38,2.06 2.62,0.41 2.41,-0.61 2.06,-2.04 3.56,2.74 5.7,0.23 1.37,0.79 3.07,-1.58 3.55,0.59 0.9,-2.08 4.02,0.32 3.84,-2.61 0.97,-1.2 1.9,-2.09 3.15,-2.84 -1.43,-0.2 -1,-3.93 -2.02,-1.23 0.12,2.36 -0.59,-0.15 -0.51,-1.14 -0.98,-0.34 -1.96,-0.8 -2.82,-1.45 1.46,-1.59 0.58,-5.08 -1.78,-5.51 -1.64,-1.93 1.32,-3.14 3,-2.37 2.78,-1.33 1.45,-5.56 2.96,-6.93 1.83,1.02 3.46,-1.08 0.88,-1.43 -2.12,-0.58 0.91,-1.96 -1.18,-3 -0.31,-1.21 1.9,-1.71 1.13,-3.46 1.11,-2.28 -2.26,-3.66 -0.83,-5.46 -1.28,-1.35 1.28,-1.82 0.48,-3.31 0.33,-2.37 -2.35,1.17 -1.98,-1.22 -1.06,0.07 -2.21,3.33 -3.26,0.83 -1.15,-1.16 -2.97,0.6 -2.46,1.87 -0.95,-1.04 -2.28,-2.96 -3.61,-2.19 0.98,1.2 1.14,2.51 -0.39,1.26 -0.14,2.4 -4.2,0.61 -3.1,3.55 -0.54,2.6 -5.29,-1.86 -5.5,1.9 0.32,2.24 -2.85,2.23 -2.21,0.03 -1.14,-1.83 -2.74,1.59 -3.58,-0.97 -1.21,-1.4 -2.44,-1.07 -3.66,-0.6 -0.85,-3.25 -4.16,-1.53 -6.1,-3.1 -0.93,-1.42 -3.34,-0.98 -4.87,-2.04 -2.87,-0.39 -5.38,1.28 -8.22,0.91 -0.21,-2.15 -3.87,-1.59 -4.92,-1.24 -1.09,-1.54 -2.79,1.74 -4.47,0.11 -1.06,-0.76 -1.06,-1.17 -0.69,-2.16 -0.99,-0.72 -2.08,-1.47 -3.42,-1.36 z\",\n                        \"department-80\" : \"m 292.25,47.76 c -3.3,0.48 -3.7,7.09 -0.18,7.88 1.08,1.67 4.2,2.74 3.06,4.24 -2.73,-1.29 -6.63,-3.63 -7.9,0.8 -0.08,3.06 -3.29,5.38 -4.22,7.27 1.37,-0.11 3.64,-1.46 3.18,1.37 3.11,1.87 5.05,5.06 7.98,7.06 3.9,1.29 3.89,5.38 5.12,8.61 0.56,2.66 4.89,3.47 4.09,5.66 1.46,2.82 4.15,-0.88 5.54,0.73 2.25,-2 4.72,2.18 7.27,1.01 2.7,-0.93 5.98,-1.02 8.68,0.5 1.84,-0.03 3.1,2.73 5.49,1.65 1.93,0.79 2.11,3.17 3.94,1.57 2.03,0.38 2.41,3.33 4.24,1.67 1.8,-0.87 1.46,4.54 3.03,1.36 0.02,-3.92 4.11,-1.35 5.69,-2.17 -0.71,-2.24 0.89,-2.61 2.47,-2.96 0.23,-1.49 2.58,-0.96 0.98,-2.41 1.05,-1.53 0.91,1.46 2.09,-0.25 0.9,2.74 1.49,1.35 3.01,0.23 1.35,0.58 3.49,2.16 3.45,-0.59 1.21,0.66 3.53,0.99 2.21,-1.27 0.39,-2.05 -3.23,-2.65 -0.99,-4.12 0.13,-1.56 -2.17,-2.32 -0.06,-3.42 -0.06,-1.95 2.47,-2.66 2.02,-5.11 0.89,-1.27 2.86,-3.19 2.9,-4.11 -2.64,0.29 0.37,-2.52 -2.05,-2.42 -2.22,-1.41 -5.14,-3.16 -7.9,-1.23 -1.34,-2.15 -4.91,2.97 -5.09,0.51 1.42,-1.44 -0.8,-3.49 -2.15,-1.79 -0.94,1.46 -4.33,1.85 -2.41,-0.4 3.11,-2.33 -2.99,-5.63 -2.46,-2.07 1.41,1.98 -2.63,-0.12 -3.46,-0.4 -1.61,-0.21 -3.12,-0.74 -2.69,-2.12 -1.34,-0.69 -1.48,3.04 -2.43,0.22 -3.21,-2.44 -3.38,5.35 -5.85,1.64 -1.72,-1.93 1.49,-5.21 3.99,-5.44 1.33,-2.2 -4.48,-3.79 -5.35,-1.18 -0.74,-1.34 -1.37,-2.06 -1.64,-0.43 -2.88,-0.65 -5.6,0.07 -8.2,1.37 -1.11,-1.55 -3.47,0.2 -3.68,-2.58 1.41,-3.13 -8.2,-2.22 -4.92,-5.34 -0.16,-2.3 -3.14,1.95 -4.11,-1.07 -2.18,-2.39 -5.42,-2.15 -7.98,-0.54 -2.27,1.67 -2.44,-2.55 -4.75,-1.91 z\",\n                        \"department-95\" : \"m 297.89,122.77 c -1.93,0.92 -1.82,3.28 -2.24,5.06 -0.18,1.39 -0.88,2.57 -1.71,3.66 -1.18,2.5 3.25,0.35 3.28,2.76 0.67,1.03 2.44,0.71 2.86,-0.15 1.62,0.83 1.89,-1.96 3.5,-0.67 1.15,0.5 1.54,1.3 0.91,2.4 0.05,1.46 1.28,0.91 1.47,-0.15 1.23,-1.85 1.56,1.36 3.2,0.93 1.81,-0.33 2.63,2.19 4.51,1.19 1,-0.65 2.03,-0.32 2.94,-0.74 0.27,0.84 -0.01,2.32 1.49,2.09 1.39,0.41 0.73,2.42 2.34,2.4 -0.26,0.82 -0.29,3.2 0.91,1.57 0.86,-1.05 2.61,-1.25 3.07,-2.57 1.17,0.19 2.33,0.34 3.34,-0.64 1.5,0.48 3.52,2.04 5,0.44 1.28,-0.6 2.07,-1.91 3.13,-2.67 -1.04,-1.28 1.15,-1.17 1.41,-2.36 0.47,-0.74 -0.21,-1.51 0.41,-2.34 -0.57,-0.87 -1.19,-1.72 -1.74,-2.51 -0.76,0.04 -0.35,1.66 -1.56,0.99 -1.63,0.01 0.09,-1.59 -1.48,-1.79 -0.96,-0.62 -1.98,-0.38 -2.67,-1.33 -1.15,-0.06 -2.21,-0.73 -3.09,-0.09 -0.52,-1.59 -2.64,-3.14 -3.11,-0.65 -0.81,0.43 -3.97,1.21 -2.53,-0.5 -0.87,-1.58 -3.19,1.28 -3.56,-1.01 -1.15,-0.35 -2.65,-0.19 -3.11,-1.46 -1.37,0.13 -2.53,1.17 -3.72,1.84 -1.32,-0.26 -2.69,0.49 -4.1,0.64 -1.33,0.67 -2.12,-0.84 -3.46,0.08 -0.96,-1.47 -2.91,-0.73 -4.2,-0.81 -0.5,-0.95 -2.12,-1.82 -0.57,-2.52 0.13,-0.53 -0.36,-1.09 -0.9,-1.1 z\",\n                        \"department-78\" : \"m 292.32,132.84 c -1.68,0.81 -3.67,0.76 -5.14,1.83 -1.97,-1.3 -0.99,2.02 -0.1,2.67 0.55,0.79 -1.34,2.61 0.69,2.07 1.64,-0.39 0.59,0.65 0.37,1.44 0.56,0.92 0.3,2.44 1.88,2.64 -0.09,1.26 1.67,1.89 0.48,3.08 1.64,0.66 2.24,2.6 1.48,4.19 -1.03,2.01 0.99,3.08 1.85,4.34 -0.58,1.19 -2.9,3.12 -0.68,3.75 -0.47,1.26 0.09,2.42 1.54,2.47 0.18,1.99 1.68,2.21 3.27,2.53 -0.41,1.11 -0.51,2.96 1.4,2.43 1.42,0.39 2.18,2 1.59,3.43 0.23,1.67 0.57,3.89 2.53,3.87 0.36,1.68 3.78,2.12 3.77,0.29 -0.23,-1.35 1.17,-2.66 1.54,-4.05 1.67,-0.97 -2.33,-2.06 -0.18,-2.66 1.44,0.17 3.44,0.88 3.57,-1.25 0.08,-1.12 0.7,-1.71 1.35,-2.36 -0.8,-1.15 -2.97,-2.42 -1.13,-3.55 0.61,-1.71 3.54,-1.04 3.46,-3.33 -0.81,-1.48 0.7,-1.23 1.5,-1.61 0.73,-1.13 2.67,-0.43 2.55,-1.99 1.23,0.53 1.88,-0.53 0.53,-1.07 -0.97,-1.07 -3.27,-1.54 -2.66,-3.59 -0.02,-1.82 0.75,-3.53 2.25,-4.55 0.27,-1.43 0.56,-2.46 -1.03,-2.77 0.42,-2.23 -2.99,-1.71 -2.63,-3.73 -1.61,-0.09 -3.2,1.35 -4.8,0.6 -1.14,-1.79 -3.8,-0.64 -4.79,-2.64 -0.79,0.03 -1.9,3.2 -2.31,1.04 -0.6,-0.85 0.89,-2.23 -0.76,-2.51 -1.37,-1.91 -2.01,1.2 -3.59,0.52 -1.03,1.41 -3.22,0.49 -3.58,-1.01 -1.62,-1.22 -2.88,0.79 -4.21,-0.53 z\",\n                        \"department-28\" : \"m 287.11,142.32 c -2.1,1.04 1.22,5.31 -2.55,5.04 -3.13,0.47 -2.25,4.05 -2.79,5.7 -2.08,1.39 -4.66,0.71 -6.89,0.79 -1.67,0.17 -4.55,-2.91 -4.14,0.39 -0.94,1.3 -4.08,-0.75 -3.86,1.85 -2.43,0.08 -5.51,1.27 -7.37,1.58 -1.08,1.71 -3.78,2.6 -2.33,4.99 0.77,3.5 4.78,4.24 6.38,7.09 -0.22,2.23 -1.98,4.13 0.4,5.86 -1.32,2.12 -2.68,4.96 -5.61,5.63 -2.31,-0.78 -5.36,3.02 -2.13,3.95 -1.7,2.27 2.62,5.08 0.17,6.87 0.96,1.32 5.87,1.56 4.27,3.23 -2.59,-0.41 -2.61,3.43 0.12,2 1.93,-0.18 2.86,0.02 4.27,-1.38 2.46,-1.17 2.35,1.12 0.44,1.89 0.94,1.94 5.72,-0.14 5.24,3.16 2.38,1.44 2.98,5.53 5.88,5 2.46,1.01 5.04,1.84 7.07,-0.1 2.12,0.96 1.21,-4.35 3.42,-1.33 2.91,1.91 0.9,-4.73 4.83,-2.76 1.99,-0.3 2.54,-3.35 5.19,-2.24 2.89,0.64 5.49,-1.07 8.22,-1.66 2.33,-1.48 0.35,-5.82 3.98,-5.14 -0.56,-1.06 0.03,-1.81 0.2,-2.18 -1.12,-2.33 1.98,-4.62 -0.13,-6.47 1.22,-2.57 0.51,-6.45 -1.46,-7.17 0.98,-3.67 -3.12,-0.53 -4.61,-2.82 -3.57,-1.35 -1.08,-6.34 -4.19,-7.79 -2.86,0.53 -0.05,-3.49 -3.13,-2.7 -2.21,-2.24 -5.44,-5.53 -2.5,-8.36 -1.41,-1.65 -2.75,-3.31 -1.37,-5.55 -0.35,-2.12 -1.91,-3.29 -1.97,-5.44 -0.63,-1.06 -1.8,-1.83 -3.04,-1.94 z\",\n                        \"department-75\" : \"m 326.98,144.71 c -1.27,-0.06 -2.46,0.68 -3.27,1.54 -0.47,-0.15 -0.85,0.06 -1.23,0.25 -0.65,0.03 -1.66,1.18 -0.69,1.52 0.81,0.18 0.93,1.2 1.8,1.35 1.65,0.28 3.42,1.43 5.03,0.39 1.03,-0.88 2.21,0.62 3.32,0.28 0.54,-0.43 0.6,-1.27 -0.33,-1.23 -0.68,-0.16 -1.14,-0.33 -1.46,-0.06 -0.34,-1.13 -0.06,-2.23 -0.93,-3.14 -0.12,-1.14 -1.17,-0.96 -2.05,-0.92 l -0.18,0 -0.03,3e-4 z\",\n                        \"department-93\" : \"m 336.5,137.58 c -0.46,0.33 -1.14,0.34 -1.42,0.97 -0.75,1.19 -2.15,1.71 -3.14,2.62 -0.82,-0.03 -1.72,-0.07 -2.53,-0.25 -0.64,-0.37 -1.29,-1.34 -2.07,-0.64 -0.6,0.3 -1.08,1.1 -1.81,0.59 -0.35,-0.19 -1.46,-0.42 -1.19,0.3 0.56,0.53 2.05,0.32 2.05,1.33 -0.06,0.69 -1.13,1.34 -0.68,2.02 1.05,0.43 2.37,-0.21 3.33,0.37 0.27,0.54 0.5,1.08 0.89,1.55 0.18,0.57 -0.13,1.72 0.86,1.53 1.07,-0.15 2.16,-1.04 3.23,-0.34 1.04,0.72 2.32,1.35 3.05,2.37 -0.11,0.74 1.41,0.94 1.04,0.05 -0.24,-0.71 -0.92,-1.55 -0.78,-2.26 0.67,-0.23 -0.04,-0.79 -0.4,-0.86 0.27,-0.43 -0.26,-0.81 -0.29,-1.14 0.41,-0.57 1.31,-0.71 1.23,-1.58 -0.09,-0.8 0.8,-1.4 0.35,-2.19 -0.23,-0.84 -1.06,-1.46 -1.25,-2.26 0.77,-0.61 0.45,-1.99 -0.49,-2.17 z\",\n                        \"department-94\" : \"m 332.85,147.49 c -0.56,0.21 -2.03,0.43 -2.18,1.01 0.31,0.21 1.82,-0.09 1.77,0.51 0.02,0.58 -0.23,1.64 -1.05,1.16 -1.03,-0.16 -2.09,-1.01 -3.03,-0.14 -0.7,0.5 -1.59,0.2 -2.33,0.5 -0.4,1.12 0.01,2.46 -0.66,3.53 -0.23,0.79 0.87,0.44 1.11,0.99 0.42,0.39 0.99,0.13 1.33,-0.1 0.46,0.44 -0.1,1.74 0.84,1.68 0.59,-0.25 1.17,-0.38 1.79,-0.16 1.34,-0.05 2.64,-0.54 3.94,-0.71 0.51,0.63 0.39,1.61 1.15,2.11 0.31,0.19 0.6,0.29 0.75,0.66 0.59,0.31 1.26,-0.47 0.77,-0.99 -0.01,-0.93 1.56,-1.44 0.88,-2.44 0.49,-0.32 0.24,-1.11 0.85,-1.28 0.43,-0.58 -0.47,-0.6 -0.83,-0.71 -0.34,-0.52 0.66,-1.17 0.14,-1.69 0.12,-0.8 -1.11,-0.7 -1.2,-1.46 -1.03,-1.05 -2.25,-2.13 -3.71,-2.49 -0.1,-0.01 -0.2,-0.01 -0.31,0 z\",\n                        \"department-92\" : \"m 324.24,141.53 c -2,0.52 -3.26,2.41 -5.06,3.32 -1.07,0.77 -1.1,2.2 -0.99,3.39 -0.4,0.4 -0.48,0.98 -0.25,1.53 0.01,0.71 0.73,0.52 1.15,0.65 0.16,0.65 0.67,1.01 1.28,1.14 0.25,0.33 0.49,0.67 0.86,0.85 0.32,0.72 0.72,1.57 1.66,1.53 0.78,-0.01 1.11,0.83 1.08,1.46 0.36,0.27 0.92,-0.2 1.18,0.31 0.73,-0.09 0.08,-1 0.1,-1.43 0.14,-0.72 0.7,-1.47 0.38,-2.22 -0.12,-0.62 0.28,-1.24 0.24,-1.78 -0.96,-0.79 -2.46,-0.33 -3.22,-1.42 -0.37,-0.47 -1.1,-0.68 -1.44,-1.08 0.22,-1.13 1.41,-1.83 2.5,-1.7 0.39,-0.7 1.58,-0.82 1.76,-1.68 -0.35,-0.89 1.37,-1.42 0.54,-2.3 -0.48,-0.39 -1.16,-0.56 -1.77,-0.58 z\",\n                        \"department-91\" : \"m 320.25,153.32 c -0.58,0.51 -0.49,1.56 -1.65,1.15 -1.09,0.27 -1.38,1.31 -2.58,1.12 0.11,1.05 -0.02,2.93 -1.5,3.32 -1.61,-0.22 -1.97,1.45 -2.84,2.24 0.58,0.86 2.2,1.77 1.79,2.96 -1.64,0.36 -0.55,3.52 -2.55,3.44 -0.79,0.15 -3.39,-0.81 -2.43,0.71 1.02,0.53 2.16,1.11 0.51,1.61 -0.86,0.93 -0.75,2.41 -1.65,3.25 0.14,1.24 1.76,2.59 0.46,3.92 0.71,0.75 2.78,0.14 2.06,1.92 1.07,1.28 -0.54,2.43 0.19,3.85 0.08,0.92 -1.54,1.43 -0.06,2.16 1.67,1.02 3.4,-0.35 5.09,-0.44 0.79,-1.48 2.15,0.97 2.97,-0.44 -0.22,-1.14 1.58,-0.26 1.55,-1.49 0.43,-1.63 2.01,-0.33 2.65,0.23 -0.12,0.95 0.48,1.61 1.08,0.67 0.98,0.38 1.68,0 2.09,-1.03 1.19,-0.35 1.89,2.24 3.4,1.07 0.49,-0.63 -0.03,-1.81 1.37,-1.59 1.11,-0.46 0.12,-2.39 1.77,-2.49 0.99,-0.33 0.83,-1.84 2.2,-1.42 0.62,-0.47 2.15,-0.38 0.97,-1.39 -1.69,-0.77 -1.16,-2.85 -1,-4.34 0.63,-1.35 -0.62,-2.47 -0.1,-3.88 0.63,-1.33 0.75,-2.86 1.78,-3.97 -0.3,-0.67 -1.97,-1.85 -0.32,-2.16 1.12,-0.7 -0.81,-1.91 0.75,-2.52 1.46,0.63 1.85,-1.77 0.18,-1 -1.09,-0.51 -1.76,-1.71 -2.13,-2.88 -1.08,-0.05 -2.24,1 -2.98,0.91 -0.9,-0.56 -2.37,0.31 -3.35,-0.26 0.08,-0.81 -0.25,-1.5 -1.11,-1.09 -0.9,-1.03 -1.16,0.24 -1.83,0.61 -0.49,-0.5 -1.91,-0.11 -1.24,-1.2 -0.57,-1.05 -2.44,-1.17 -3.52,-1.52 z\",\n                        \"department-45\" : \"m 320.43,181.91 c -1.93,3.75 -6.85,2.12 -9.9,4.16 -1.95,2.44 0.54,6.83 -3.34,8.04 -0.15,3.54 -2.85,4.96 -6.06,5.24 -2.92,1.1 -6.42,-0.72 -8.49,2.39 -1.57,0.69 -5.05,0.19 -3.17,3.06 1.8,0.69 1.81,1.21 0.63,2.66 -1.69,2.43 4.05,3.22 1.25,6.02 -2.34,2.28 -0.38,4.59 0.09,7.04 1.76,1.74 4.95,-1.17 6.29,2.07 1.03,2.45 2.79,7.52 5.89,3.78 1.72,-3.2 5.45,1.69 8.15,-0.49 3.31,-0.11 8.68,-1.55 10.42,2.55 3,0.8 5.42,3.73 8.74,2.17 2.13,1.16 4.32,2.3 6.96,2.83 1.97,1.01 3.09,6.61 5.84,4.26 -0,-3.62 2.76,-1.68 4.41,-0.43 2.59,0.81 2.19,-2.3 2.2,-3.37 1.94,-0.4 6.46,-0.48 3.87,-3.36 0.34,-3.56 -2.17,-6.48 -4.41,-8.39 0.34,-3.92 6.29,-1.58 7.84,-4.63 1.26,-2.84 -2.35,-5.65 1.12,-7.77 4,-1.7 4.51,-6.41 1.51,-9.33 -2.16,-2.35 -2.73,-6.91 -6.87,-6.87 -1.86,0.13 -5.92,3.75 -6.03,-0.07 -2.63,1.14 -5.36,4.25 -8.22,1.8 -2.17,-0.24 -6.58,1.49 -7.34,0.08 2.67,-1.6 4.53,-6.27 0.45,-7.38 -2.86,-1.04 -1.71,-5.28 -5.43,-4.57 -1.53,-1.38 -4.89,2.52 -5.34,-1.02 -0.33,-0.2 -0.71,-0.32 -1.06,-0.48 z\",\n                        \"department-41\" : \"m 266.29,195.63 c -2.06,2.95 -7.43,0.3 -8.5,3.42 -1.9,1 -2.23,2.67 -0.22,3.62 0.19,3.26 0.26,5.82 -1.16,8.6 -4.07,-1.69 0.07,5.24 -3.5,5.91 -0.99,3.4 -6.81,3.06 -5.94,7 2.53,-0.22 6.07,1.21 9.36,0.87 2.33,-0.38 3.21,0.87 2.33,3.13 -0.6,3 2.08,2.14 3.12,0.52 2.68,-0.46 3,3.47 5.15,1.95 3.31,1.92 -0.52,5.3 2.24,7.5 2.87,2.54 0.27,5.57 1.51,8.9 -2.12,3.16 1.39,5.4 4.47,4.52 3.84,-0.06 2.69,7.22 7.32,5.56 1.87,-1.68 3.74,-3.34 6.46,-2 0.88,-3.66 5.55,-2.27 8.48,-2.51 2.88,0.7 4.8,4.16 8.08,3.56 2.17,-0.93 0.23,-5.2 4,-4.24 2.53,1.03 9.23,0.49 7.7,-3.24 -2.46,-1.98 -1.75,-6.33 1.55,-6.48 1.62,0.43 3.89,1.9 3.49,-1.2 0.4,-2.84 -2.55,-3.04 -1.96,-5.71 -0.66,-1.86 -5.5,-1.35 -2.85,-4.03 2.3,-0.71 6.5,-3.18 2.67,-5.2 -3.4,-0.6 -6.94,-0.37 -10.34,0.3 -2.3,0.89 -5.75,-3.14 -6.32,0.82 -3.73,2.59 -5.33,-2.8 -6.15,-5.3 -2.21,-2.59 -5.58,2.04 -6.3,-1.81 -0.8,-1.62 0.46,-2.55 -1.18,-3.79 1.15,-2.66 3.49,-5.56 -0.29,-7.32 0.2,-1.64 2.39,-4.45 -1.04,-3.94 -1.34,-0.61 -4.15,-1.65 -3.51,1.01 -2.97,0.88 -5.87,1.72 -8.76,0.26 -3.05,-0.48 -3.65,-3.81 -5.67,-5.58 -0.41,-3.18 -5.31,-0.86 -5.28,-3.08 0.5,-0.52 3.23,-1.6 1.02,-2.02 z\",\n                        \"department-36\" : \"m 292.75,252.32 c -0.22,1.96 -4.71,0.36 -3.09,3.11 -2.43,-0.72 -5.02,-1.03 -6.59,1.34 -2.69,0.52 -2.88,2.56 -1.18,4.37 -0.27,2.79 -3.21,4.19 -4.35,6.82 -1.44,3.03 -4.42,-1.33 -6.53,0.46 -3.18,0.46 -2.88,3.92 -3.68,6.03 -1.05,3.06 -0.95,6.5 -2.13,9.41 1.56,2.64 -2,4.95 -4.07,2.91 -3.4,-0.16 1.5,2.15 0.47,4.03 -1.36,3.26 -0.89,7.48 3.29,8.02 1.63,1.02 1.82,2.51 4.05,2.13 3.15,0.49 2.87,3.8 3.42,5.86 3.01,0.61 1.99,2.49 1.57,4.47 1.47,-0.43 1.97,1.71 3.8,0.38 1.85,0.34 2.68,-2.93 4.56,-0.65 1.37,1.89 2.88,2.94 4.14,0.35 1.12,-1.38 3.37,-4.31 4.14,-1.21 1.33,-0.81 3.52,-2.34 3.35,0.47 1.47,0.6 2.78,-3.28 3.75,-0.32 2.88,0.93 1.17,-5.91 4.57,-3.2 2.52,2.22 5.64,-0.66 8.59,0.82 2.5,1.04 7.68,2.32 7.46,-1.55 4.04,-2.02 -1.08,-5.26 0.41,-8.47 1.23,-2.22 0.34,-4.16 -1.32,-5.77 1.29,-2.28 -5.15,-3.19 -2.63,-5.41 3.7,-2.03 -4.12,-5.08 0.13,-6.45 0.15,-1.85 5.09,-3.55 1.3,-4.36 -3.14,-0.2 -1.71,-2.81 -0.75,-4.45 0.55,-3.16 -4.43,-3.11 -2.28,-6.14 0.71,-2.59 -1.84,-0.34 -2.34,-2.38 -2.14,-1.4 -4.51,2.29 -6.97,0.12 -1.89,-0.3 -3.87,-1.35 -1.68,-3.08 2.9,-1.88 1.03,-5.37 -2,-5.37 -1.57,-1.11 -2.26,-2.41 -4.45,-1.38 -1.18,-0.07 -1.7,-1.07 -2.98,-0.88 z\",\n                        \"department-18\" : \"m 323.87,229.07 c -2.35,0.13 -9.34,2.52 -5.77,4.83 3.63,-0.55 1.32,4.29 3.95,4.19 1.09,2.3 -0.24,7.95 -2.97,4.02 -2.53,0.84 -4.38,3.27 -2.23,5.76 1.94,2.35 0.54,4.87 -2.44,4.09 -2,0.97 -4.54,0.79 -6.09,-0.04 -3.26,0.8 0.48,4.8 -3.11,4.5 -2.3,-0.84 -0.78,2.92 -3.07,3.74 -2.13,3.21 4.52,3.78 6.54,2.69 2.19,-2.06 2.95,2.09 4.74,0.99 0.13,1.95 -1.78,4.73 1.47,5.08 2.39,1.98 -3.09,7.46 2.34,7.01 1.98,2.06 -4.63,4.48 -3.1,6.87 3.2,0.9 1.23,3.63 0.29,5.24 0.67,1.68 4.73,1.92 3.03,4.22 4.54,2.34 -0.65,6.57 2.07,9.85 1.42,2.13 -0.12,3.45 -1.35,4.8 0.97,3.01 6.38,2.02 6.61,-1.43 1.68,-1.43 2.79,-4.1 5.74,-3.71 2.61,-0.19 8.61,0.85 7.95,-3.28 -1.28,-1.97 -0.29,-4.02 -0.99,-5.76 1.11,-0.26 2.76,0.38 2.1,-1.66 2.77,0.03 3.8,-5.99 6.55,-2.38 4.02,-0.1 5.48,-4.84 9.43,-5.17 5.09,1.19 4.04,-5.2 3.91,-8.3 0.71,-2.84 1.27,-6.86 -1.24,-8.77 -0.49,-3.87 -0.61,-7.69 -2.18,-11.39 0.6,-4.25 -6.27,-4.24 -4.71,-8.26 2.14,-3.02 2.74,-7.4 -0.15,-10.16 -1.82,-0.35 -3.52,2.23 -5.06,-0.44 -2.66,-2.76 -1.08,3.94 -4.37,2.1 -2.06,-1.93 -3.82,-6.36 -7.51,-5.63 -1.58,-0.2 -3.8,-3.83 -5.86,-1.15 -1.78,-0.24 -2.82,-2.01 -4.51,-2.45 z\",\n                        \"department-23\" : \"m 301.06,306.59 c -2.18,-0.09 -0.48,5.24 -3.46,3.84 -1.17,-2.86 -2.05,0.79 -3.59,0.42 -1.13,-0.79 -0,-3.31 -1.73,-1.25 -1.24,0.55 -2.36,1.38 -2.36,-0.7 -1.54,-0.88 -2.18,2.59 -3.79,3.02 -0.98,0.84 -2.88,2.44 -0.45,2.76 0.29,1.69 -1.79,2.6 -0.56,4.04 -2.11,0.16 0.28,2.07 -1.84,2.35 -1.71,2.37 1.37,3.88 3.12,3.98 -0.87,1.98 3.03,2.32 1.47,4.18 0.81,1.46 2.68,2.16 2.08,4.13 0.59,1.41 -1.07,3.49 1.38,3.72 1.8,2.32 -4.92,2.97 -1.35,4.46 1.26,1.18 3.64,-2.06 4.21,0.35 0.31,1.19 0.8,2.47 -1.06,2.08 -1.31,1.78 2.07,3.75 3.94,3.02 1.79,0.62 3.88,-3.62 3.75,-0.15 0.21,1.27 2.24,2.17 2.82,1.56 1.47,1.11 3.83,3.39 1.98,4.77 0.21,1.09 -0.08,4.28 1.82,2.42 1.13,0.08 1.99,-1.04 3.2,-0.95 0.33,-2.76 3.75,-2.96 4.66,-0.46 1.35,-0.17 2.6,0.94 3.34,-0.03 1.49,1.32 3.49,2.43 4.82,3.44 0.2,2.09 4,0.09 3.38,-1.73 2.36,-0.58 5.37,1.33 6.38,-2.1 -1.37,-1.09 -2.62,-1.96 -3.06,-3.78 -1.55,-1.24 -1.59,-2.93 0.65,-2.9 0.54,-1.38 1.04,-2.45 2.73,-1.85 0.62,-1.79 3.09,-2.23 2.56,-4.51 0.36,-1.75 3.84,-1.53 2.12,-3.52 1.2,-2.89 -2.25,-4.14 -2.04,-6.95 -0.08,-2.21 1.4,-4.81 -1.02,-6.11 0.02,-2.5 -1.86,-3.91 -2.39,-6.08 -1.13,-1.7 -3.1,0.63 -2.89,-2.06 -0.52,-1.65 -1.48,-0.92 -2.17,-0.16 -2.13,-0.72 -3.54,-2.45 -1.59,-4.12 -3.08,0.61 -1.54,-4.21 -4.75,-3.19 -2.85,-0.75 -5.52,1.57 -8.05,0.18 -2.39,-0.94 -4.83,-0.98 -7.12,-1.05 -1.87,0.89 -3.74,0.71 -4.87,-1.08 l -0.28,-0.01 10e-6,10e-5 z\",\n                        \"department-87\" : \"m 281.04,310.22 c -0.51,0.05 -1.17,0.12 -1.14,0.78 -0.25,1 -1.41,1.2 -2.23,0.78 -0.91,-0.55 -1.46,0.97 -2.37,0.47 -0.41,-0.24 -0.15,-1.36 -0.88,-1.06 -0.15,0.36 -0.49,0.69 -0.87,0.31 -0.42,-0.56 -1.48,-0.46 -1.39,0.36 -0.29,0.51 -0.98,0.78 -0.95,1.46 -0.55,0.47 -1.05,-0.38 -1.56,-0.48 -1.22,-0.29 -2.83,0.17 -3.07,1.56 0.1,1.34 -1.16,2.36 -1.14,3.65 -1.12,-0.21 -2.43,-0.58 -3.48,-0.02 -0.57,-0.29 -1.43,-0.46 -1.55,0.41 -0.29,0.71 -1.42,0.57 -1.53,1.41 -0.45,0.32 -0.59,0.81 -0.41,1.28 -0.57,0.79 -2.14,-0.04 -2.35,1.21 -0.11,1.15 1.52,1.66 1.49,2.82 0.45,0.61 -0.22,1.55 0.51,2.07 0.3,0.78 -1.04,0.68 -1.22,1.21 0.1,0.73 1.16,1.32 0.57,2.1 -0.2,0.88 -0.43,1.82 -0.37,2.7 0.55,0.71 1.53,1.06 1.85,1.96 0.6,0.29 0.77,-1.11 1.42,-0.47 0.52,0.57 1.56,1 1.37,1.9 0.17,0.33 0.61,0.45 0.5,0.91 0.25,0.56 0.69,1.22 0.15,1.8 -0.4,0.33 -0.69,0.93 -0.79,1.33 -1.08,0.03 -1.62,1.44 -2.79,1.15 -0.74,0.09 -1.45,-0.83 -2.12,-0.41 -0.07,0.49 0.25,0.98 0.12,1.53 -0.13,0.54 0.63,1.01 0.41,1.49 -0.44,0.28 -0.27,0.69 -0.21,1.04 -0.23,1.22 -1.06,2.19 -1.62,3.25 -0.26,0.54 0.17,1.51 -0.39,1.85 -0.92,-0.16 -1.85,-1.49 -2.8,-0.78 -0.33,0.63 -0.36,1.44 0.03,2.02 -0.07,0.89 -1.28,0.52 -1.72,1.1 -0.39,0.39 -0.56,0.91 -1.06,1.2 -0.36,0.39 -0.09,1.12 -0.8,1.16 -0.53,0.7 0.73,1.29 1.05,1.78 1.12,0.48 2.72,-0.73 3.83,0.16 0.41,0.49 0.74,1.16 1.39,1.34 0.08,1.16 -0.5,2.25 -0.79,3.32 0.28,0.85 0.98,1.77 1.99,1.46 0.49,0.16 0.41,1.27 1.18,1.08 1.27,-0.42 1.02,-2.31 2.06,-2.9 0.55,0.27 0.58,1.69 1.39,1.27 0.5,-0.37 1.3,-0.2 1.85,-0.57 0.8,-0.12 1.59,0.64 2.37,0.08 1.2,-0.25 2.21,0.92 2.02,2.08 -0.09,0.92 0.66,1.5 1.35,1.88 0.41,0.32 0.61,1.42 1.32,0.86 0.49,-0.58 1.3,-0.68 1.86,-0.14 0.33,0.35 1.23,0.52 1.23,1.08 -0.69,0.87 -1.91,1.66 -1.92,2.87 0.34,0.84 1.26,0.35 1.87,0.21 0.56,0.26 0.58,0.97 0.93,1.33 0.84,-0.26 2.33,-0.56 2.49,0.7 0.19,0.63 0.87,0.23 0.77,-0.27 0.67,-0.31 0.04,-1.73 0.98,-1.81 0.57,0.07 0.21,-0.87 0.71,-0.67 0.95,0.21 1.74,1.1 2.68,1.15 0.76,-1.2 1.96,-2.1 2.52,-3.45 0.35,-0.6 1.02,-0.45 1.52,-0.23 0.86,-0.13 0.35,-1.3 0.75,-1.74 0.56,-0.03 0.98,-0.4 1.21,-0.85 0.63,0.05 0.58,1.16 1.29,0.85 0.37,-0.17 0.08,-0.99 0.68,-0.63 0.79,0.46 1.82,0.91 2.6,0.18 0.48,-0.4 0.34,-1.43 1.2,-1.3 1.25,0.1 2.05,-1.03 2.55,-1.98 0.73,-0.73 1.34,-1.82 2.34,-2.13 0.74,0.12 1.5,-0.28 1.86,-0.87 0.93,-0.17 1.13,-1.16 1.48,-1.85 0.37,-0.07 0.64,0.49 1.11,0.2 0.61,0.2 0.96,1.44 1.71,0.76 0.42,-0.5 1.1,0.52 1.33,-0.26 -0.03,-0.66 0.6,-0.53 1.03,-0.64 0.45,-0.2 0.16,-0.77 -0.12,-0.88 -0.02,-0.51 -0.84,-0.68 -0.83,-1.1 0.48,-0.35 0.14,-0.82 -0.21,-1.07 0.24,-0.6 0.41,-1.25 0.01,-1.83 -0.05,-0.55 1.2,0 0.86,-0.75 -0.45,-0.79 -0.3,-1.85 -1.25,-2.36 -0.47,-0.29 -0.97,-0.56 -1.37,-0.86 -0.42,0.28 -0.85,0.21 -1.19,-0.2 -0.57,-0.6 -1.85,-0.61 -1.72,-1.7 0.17,-0.43 0.1,-1.78 -0.62,-1.22 -0.17,0.44 -0.43,0.74 -0.89,0.86 -0.71,0.92 -2.04,0.24 -2.93,0.86 -0.49,0.28 -0.9,0.12 -1.15,-0.31 -0.68,-0.45 -1.84,-0.44 -2.21,-1.23 0.21,-0.61 -0.04,-1.24 -0.49,-1.61 0.25,-0.59 1.1,-0.28 1.36,-0.78 0.47,0.27 0.94,-0.21 0.51,-0.63 -0.6,-0.41 0.17,-1.39 -0.62,-1.58 -0.8,-0.29 -1.69,0.05 -2.03,0.8 -0.73,0.21 -1.51,-0.02 -1.97,-0.63 -0.45,-0.19 -1.31,-0.18 -0.96,-0.92 0.42,-1.4 2.91,-1.11 2.81,-2.77 -0.02,-0.79 -0.76,-1.12 -1.46,-1.02 -0.74,-0.49 -0.23,-1.62 0.01,-2.28 0.07,-0.84 -0.67,-1.62 -0.2,-2.45 -0.01,-0.95 -1.08,-1.21 -1.63,-1.75 -0.29,-0.44 -0.89,-1.12 -0.22,-1.54 0.59,-0.47 -0.22,-1.14 -0.7,-1.29 -0.29,-0.51 -0.96,-0.67 -1.32,-1.01 0.65,-0.4 0.49,-1.69 -0.42,-1.53 -0.93,0.06 -2.05,-0.18 -2.28,-1.2 -0.52,-0.39 -1.08,-1.35 -0.53,-1.94 0.31,-0.58 0.65,-1.21 1.38,-1.2 0.66,-0.47 -0.77,-0.84 -0.18,-1.34 0.43,-0.32 0.7,-0.79 0.48,-1.28 -0.02,-0.63 0.42,-1.1 0.86,-1.45 0.24,-0.83 0.18,-2.06 -0.9,-2.22 -0.7,-0.32 -0.2,-1.35 -0.83,-1.79 -0.85,-0.67 -1.34,-1.98 -2.45,-2.23 l -0.03,0.01 z\",\n                        \"department-19\" : \"m 313.35,352.38 c -1.86,0.13 -2.22,1.42 -2.96,2.7 -1.7,-0.45 -2.02,1.25 -3.41,1.04 0.1,2.65 -3.23,3.39 -4.97,1.84 -1.53,1.04 -2.82,2.64 -4.95,2.95 -1.42,1.63 -2.47,3.68 -4.63,4.05 -0.78,2.4 -3.28,0.32 -4.72,1.32 -0.15,-2.02 -2.14,1.24 -2.3,2.01 -1.89,-1.15 -2.49,2.34 -3.89,3.21 -1.28,0.53 -3.65,-2.27 -4.12,0.75 -1.21,1.38 2.97,2.44 0.01,3.18 -0.68,2.09 4.29,0.8 2.12,3.47 -1.5,0.61 -1.7,2.64 -3.24,3.07 -0.37,1.74 -0.74,3.8 1.62,4.02 0.64,1.56 -3.73,2.47 -1.44,3.5 2.52,-0.79 2.31,2.08 0.75,2.84 2.1,1.86 4.91,0.57 6.95,2.2 -1.97,1.83 -0.08,4.96 1.55,6.77 1.57,0.57 3.76,-3.02 4.88,-0.71 2.49,-1.36 5.15,0.9 6.6,2.82 0.89,1.66 2.62,2.3 3.51,3.98 0.84,-0.76 2.22,0.94 2.83,-0.95 1.95,-0.25 4.19,-4.21 5.12,-0.84 2.18,-2.19 5.35,-1.42 8,-1.89 1.92,-1.72 -3.18,-4.39 -0.13,-5.96 1.44,-0.92 3.38,-0.83 2.82,-3.25 -0.27,-1.27 3.56,-2.56 1.06,-3.66 -2.12,-2.49 1.31,-4.07 2.09,-6.03 1.52,-1.54 3.08,-3.21 4.69,-4.48 0.47,-1.62 0.7,-3.32 -0.12,-4.93 2.48,-0.49 5.95,4.22 7.88,1.25 -2.68,-1.36 -0.86,-4.01 -0.65,-6.27 0.65,-2.61 -0.12,-4.5 -1.81,-6.42 -0.37,-1.09 0.41,-2.79 1.03,-3.68 2.2,0.41 0.72,-2.34 1.39,-3.43 -0.08,-1.62 -1.77,-3.7 -2.72,-1.42 -1.49,2.45 -5.53,-1.84 -5.69,2.21 -1.2,1.04 -3.48,1.86 -3.57,-0.45 -2.4,-0.22 -2.77,-1.54 -4.33,-2.87 -0.57,1 -2.92,0.03 -3.77,-0.11 0.11,-0.94 -1.07,-1.2 -1.5,-1.83 z\",\n                        \"department-15\" : \"m 334.72,370.94 c -1.28,1.82 -1.55,4.58 0.43,5.9 -1.81,2.51 -4.37,0.04 -6.57,-1.17 -2.6,-1.06 0.22,2.76 -1.15,4.1 -0.02,1.86 -2.79,1.83 -3.22,3.86 -1.83,1.13 -3.51,3.59 -4.24,5.64 0.35,1.77 2.71,2.41 0.56,3.82 -1.95,0.87 -0.07,4.99 -2.89,4.16 -3.55,0.88 -0.82,4.03 -0.22,5.71 -0.43,1.88 -4.6,-0.03 -2.81,2.9 -0.04,1.62 2.21,2.57 0.46,3.91 0.13,3.08 4.46,4.57 3.6,7.69 -0.92,1.52 -0.85,3.76 -1.46,5.32 3.14,-0.54 0.43,4.14 3.05,4.94 0.99,0 -0.12,-3.03 2.23,-2.19 1.58,-0.83 4.01,-1.56 4.43,0.74 2.75,-0.34 6.48,0.85 7.12,-2.96 2.85,-1.73 1.71,-5.71 4.3,-7.33 -0.14,-2.33 1,-4.52 2.76,-5.39 0.66,-1.77 2.62,-2.11 3.53,-3.79 2.71,0.19 1.23,4.39 2.14,5.14 1.36,-1.39 4.37,-1.42 3.78,1.12 0.34,1.62 0.97,4.51 2.8,3.48 0.84,2.32 -0.52,5.11 1.01,7.65 0.5,1.69 1.9,2.45 2.17,0.12 0.35,-2.14 2.27,-2.85 1.68,-4.93 0.92,-1.91 0.56,-5.47 2.78,-5.83 -0.12,-1.77 1.65,-6.61 3.22,-3.03 1.26,2.36 3.56,-0.59 3.31,-2.05 0.59,-1.14 0.92,-2.65 1.95,-1.09 1.6,-1 4.29,-1.63 3.3,-3.81 1.88,-0.88 -1.23,-1.49 -1.31,-2.37 -2.47,-0.36 0.7,-4.16 -1.68,-4.86 0.04,-1.43 3.56,1.01 2.84,-0.76 -3.52,-0.25 -3.97,-3.78 -3.79,-6.72 -2.86,-0.25 -0.48,-5.68 -3.84,-4.2 -1,0.06 -0.92,-1.73 -2.53,-0.75 -1.83,0.05 -2.03,-0.79 -0.71,-1.66 -1.98,-0.82 1.54,-2.18 -0.51,-2.67 -1.63,1.16 -2.03,4.92 -4.8,3.76 -3.45,-0.77 -2.59,-5.89 -6.01,-5.8 -1.98,-1.95 -3.93,0.16 -6.22,-0.38 -1.82,0.76 -1.98,-2.81 -2.23,-3.3 -2,0.21 -2.37,-1.95 -4.2,-1.04 -0.86,-1.4 -2.85,0.57 -2.19,-1.65 -0.21,-0.26 -0.61,-0.13 -0.87,-0.22 z\",\n                        \"department-30\" : \"m 402.45,438.56 c -1.2,2.08 -2.01,3.99 -4.41,4.18 -0.91,2.13 4,4.03 1.37,6.32 -0.45,1.86 3.55,2.45 0.94,3.7 -0.76,1.99 0.11,3.59 0.97,5.15 -2.84,-2.29 -3.24,4.22 -6.65,2.09 -2.84,1.31 -5.14,-3.82 -7.86,-2.71 -1.9,-0.09 0.68,4.12 -2.36,3.87 -3.59,-0.21 -7.54,0.01 -9.81,-3.3 -3.88,-0.94 -1.76,4.82 -5.2,4.63 -0.2,1.99 1.7,1.26 2.49,1.37 0.64,2.2 6.26,1.35 5.12,4.79 -0.92,1.9 -5.78,3.67 -3.13,5.83 2.48,-0.75 3.13,1.64 2.84,3.17 1.93,-1.62 4.32,-2.9 4.52,0.69 1.23,0.34 3.7,1.07 1.85,-0.84 1.05,-1.8 2.07,-3.7 4.36,-3.11 -0.01,-3.76 5,-4.67 6.38,-1.85 2.32,1.17 -2.54,5.3 1.82,4.76 1.89,-0.76 3.45,-1.45 3.7,1.02 2.53,0.02 1.7,2.08 1.81,3.51 2.89,-1.55 4.4,2.61 6.33,3.87 2.8,0.69 3.15,4.82 3.78,7.11 -0.67,2.22 -2.4,3.52 -4.18,3.93 1.03,2.15 2.04,4.41 2.86,6.75 1.85,2.05 3.54,0.51 3.74,-1.66 2.08,-0.46 3.52,-1.72 3.36,-3.55 0.97,2.31 4.15,-0.86 5.01,-1.94 1.98,0.27 2.78,-2.49 0.23,-2.01 -0.41,-2.17 1.81,-4.53 3.24,-5.76 1.92,-1.29 6.52,3.05 5.01,-1.07 0.59,-2.7 2.29,-5.32 1.74,-7.95 1.25,-0.84 -1.73,-1.91 0.74,-2.53 2.32,-1.47 3.71,-3.79 6.04,-5.21 0.4,-1.57 0.8,-2.1 2,-2.68 -1.38,-1.85 -2.67,-6.36 -5.46,-5.62 -1.54,-2.69 0.63,-6.1 -0.98,-8.69 -2.44,0.11 -1.5,-4.81 -4.22,-4.74 -2.14,-0.69 -5.48,-5.75 -7.17,-2.57 0.92,4.08 -4.49,2.27 -2.46,-0.85 -1.91,-1.19 -5.21,1.01 -5.19,3.34 -1.4,3.16 -4.03,-1.21 -5.4,-1.88 -1.7,0.52 -1.47,-2.53 -3.73,-1.05 -1.71,1.8 -2.68,-0.11 -1.46,-1.57 -0.15,-1.56 -0.74,-2.62 0.35,-3.62 -1.57,-1 -0.67,-2.78 -2.91,-3.32 z\",\n                        \"department-48\" : \"m 373.48,404.94 c -1.47,0.89 -3.46,3.53 -5.12,1.98 -0.01,1.49 -1.57,1.93 -1.04,3.5 -1.43,1.81 -3.11,1.2 -3.88,-0.85 -2.88,-0.45 -1.07,4.27 -3.39,4.9 -1.4,1.6 -1.16,4.02 -1.76,5.9 0.45,1.49 -1.64,2.13 -1.6,3.92 -1.61,2.48 1.66,4.55 3.09,6.26 2.11,1.84 -1.38,5.67 2.08,6.72 1.92,1.77 1.3,4.27 0.7,6.32 -0.81,2.08 2.13,3.68 0.68,5.63 -1.2,1 -0.69,2.92 0.49,1.55 -0.34,2.49 4.49,1.53 3.22,4.04 -0.61,3.08 3.16,-0.47 4.71,0.57 2.33,-0.24 2.39,2.9 4.55,3.55 1.02,2.18 4.4,1.65 6.21,1.9 1.73,0.64 4.49,-0.1 3.28,-2.39 -0.17,-1.71 2.49,-2.35 3.14,-0.7 2.15,-0.14 3.4,3.16 5.36,2.3 1.4,-0.48 2.81,0.78 3.7,-1.01 1.48,-0.27 0.79,-2.83 2.56,-1.71 0.48,-1.13 -1.37,-1.78 -0.45,-3.23 -0.32,-1.45 2.55,-2.77 -0.12,-3.02 -0.49,-1.4 -1.27,-2.69 0.33,-3.79 -0.9,-1.25 -2.65,-3.18 -2.62,-4.42 1.46,-1.07 3.7,-0.89 3.95,-3.34 1.21,-1.8 0.03,-4.2 -0.54,-6.13 -0.14,-2.55 -3.1,-2.32 -3.01,-4.96 -0.51,-1.42 -0.74,-3.3 -1.23,-4.8 0.21,-0.99 -1.02,-2.2 -0.2,-3.43 -0.96,-0.75 -2.32,-0.83 -1.55,-2.36 -1.84,1.16 -1.86,-1.71 -3.45,-2.23 0.02,-3.18 -3.5,-0.79 -4.63,-2.01 2.18,-2.04 -3.67,-4.45 -2.82,-1.23 0.29,3.23 -3.33,0.7 -4.65,2.81 -2.12,0.38 -2.38,-3.83 -3.37,-5.42 -0.69,-1.57 0.03,-3.98 -2.15,-4.28 l -0.25,-0.51 -0.23,-0.01 -2.2e-4,-1e-4 z\",\n                        \"department-63\" : \"m 350.25,319.87 c -2.41,0.1 -1.39,6.08 -4.36,2.69 -2.2,-1.55 -1.13,2.91 -3.36,2.6 -0.99,2.15 -2.4,5.06 -4.99,2.48 -3.53,1.71 0.74,5.9 1.02,8.31 0.33,2.26 -0.13,3.09 -1.85,4.34 -0.59,3.07 -2.87,5.1 -5.46,5.93 -0.78,1.08 -3.3,2.29 -0.7,4.14 1.84,2.94 6.68,6.33 3.76,10.01 -3.59,1.58 -0.37,5.2 0.63,7.47 -1.63,3.1 2.57,5.33 4.8,4.69 1.04,1.88 3.32,0.49 2.64,2.92 1.95,3.55 6.09,-0.43 8.67,2.01 3.48,0.74 2.44,6.76 6.82,5.67 2.39,-1.04 2.55,-4.68 5.97,-4.03 2.84,-0.11 5.33,-4.21 7.45,-3.45 1.17,-0.15 2.17,-1.54 3.06,0.31 2.88,1.39 5.17,-2.92 7.03,0.16 3.24,-0.64 2.05,6.51 5.21,2.85 1.13,-3.37 5.41,3.07 6.68,-1.35 0.83,-2.19 5.07,4.34 4.28,-0.59 0.72,-2.92 5.73,-4.1 3.45,-7.91 -0.98,-3.57 -2.63,-6.42 -6.17,-8.13 -2.69,-2.1 -1.82,-6.45 -4.74,-8.34 -0.45,-1.7 -2.19,-2.8 -0.35,-4.4 -0.69,-2.91 2.62,-4.84 -0.62,-6.96 -2.59,-1.57 -3.98,-4.12 -5.91,-6.12 -2.16,0.37 -6.24,1.62 -5.45,-1.98 -1.98,-2.68 -5.33,1.55 -7.73,-0.76 -2.66,-0.65 -5.11,0.01 -7.56,-0.72 -1.51,-1.52 -2.18,-2.56 -4.49,-2.07 -3.09,-0.49 -3.15,-3.91 -5.15,-5.29 0.27,-2.13 2.01,-5.11 -1.71,-4.35 l -0.47,-0.05 -0.43,-0.12 0,0 z\",\n                        \"department-42\" : \"m 397.37,318.49 c -1.6,0.83 -3.4,1.29 -4.64,2.21 -1.3,0.59 1.02,2.59 0.48,3.98 0.61,1.85 -0.41,4.23 1.11,6.23 -1.61,2.5 2.37,7.25 -2.15,7.3 -1.09,-0.11 -1.49,1.09 -2.88,0.34 -2.32,2.56 2.22,3.36 1.74,5.81 -1.98,1.61 -0.24,4.65 -2.31,6.15 1.69,0.49 1.3,2.13 2.33,2.91 2.23,1.34 1.14,4.92 3.25,6.83 1.78,1.97 5.01,2.91 6.17,5.68 -1.24,2.45 2.85,3.93 0.67,5.95 0.89,3.06 -5.47,3.2 -3.23,7.04 0.42,3.41 2.25,-3.4 4.17,-0.43 0.87,1.44 1.19,2.02 2.38,0.77 1.23,1.18 1.39,0.75 2.25,-0.33 1.05,-0.89 3.38,0.13 2.65,-1.8 2.25,-0.56 4.93,-0.17 6.2,1.72 1.74,-1.96 5.45,1.48 2.47,2.65 0.55,1.23 1.98,1.3 0.84,2.91 0.86,2.54 3.62,-1.67 4.48,1.3 1.58,2.36 4.9,0.89 6.79,-0.08 -1.25,-1.91 1.2,-3.4 2.26,-5.02 1.49,-1.32 5.89,-1.48 4.47,-4.32 -0.52,-1.74 0.97,-3.48 -0.58,-5.25 -0.48,-1.69 -3.61,1.7 -3.93,-1.3 0.42,-2.1 -0.24,-3.68 -1.93,-4.86 -1.43,0.06 -2.67,-1.02 -4.29,-0.14 -2.32,-0.62 -2.91,-2.86 -5.1,-4.24 -1.42,-1.8 -2.51,-3.8 -0.78,-6.03 1.82,-2.31 -3.43,-0.74 -1.14,-3.43 0.94,-1.31 1.04,-3.98 1.15,-5.42 -2.5,-0.01 -3.12,-2.67 -2.32,-4.33 -1.63,-1.26 -2.43,-3.07 -4.07,-4.21 0.9,-0.54 3.97,0.36 2.35,-1.72 -1.31,0.09 -3.3,-2.79 -0.85,-2.47 1.97,-1.74 0.65,-5.53 4.11,-6 0.97,-0.45 2.45,1.37 2.78,-0.77 -0.25,-1.57 -2.38,-2.12 -0.65,-3.5 -1.51,-1.51 -2.16,1.22 -2.41,1.83 -1.97,-0.74 -4.16,3.26 -5.16,1 1.12,-2.05 -1.54,-0.14 -2.23,-1.49 -1.1,1.9 -3.25,0.89 -4.63,-0.3 -2.08,0.61 -5.43,3.53 -6.14,-0.27 -1.61,-0.39 -4.74,-0.44 -2.93,-2.93 0.29,-0.63 0.34,-2.13 -0.72,-1.99 z\",\n                        \"department-69\" : \"m 433.73,316.51 c -1.23,0.46 -2.5,0.15 -2.78,2.07 -0.74,1.45 -2.37,-0.51 -2.67,-1.28 -0.69,1.49 -2.76,2.38 -3.71,0.45 -1.68,-1.33 -4.39,-0.82 -4.01,1.84 -0.71,1.65 0.63,2.41 1.38,3.48 -2.55,0.77 0.51,1.73 0.61,2.71 -0.41,1.66 -1.38,2.06 -2.7,1.09 -2.04,0.63 -3.43,2.17 -3.25,4.46 0.34,2.11 -3.89,1.45 -1.52,3.28 0.64,0.85 2.57,0.6 1.5,2.34 -0.59,0.49 -3.83,-0.49 -1.93,0.9 1.83,0.38 1.7,2.77 3.5,3.41 0.3,1.24 -1.23,2.13 0.17,3.34 0.85,1.23 3.47,0.4 1.96,2.6 -0.03,1.87 -0.27,3.49 -1.48,4.83 0.06,1.49 3.29,0.29 1.61,2.31 -1.06,1.85 -1.32,4.02 0.45,5.41 1.27,1.35 2.68,3.31 4.18,4.13 1.51,1.5 3.36,-0.41 4.88,1.05 1.7,-0.73 1.49,2.06 2.91,2.19 -1.19,1.71 0.21,5.2 2.42,3.21 1.24,-1.16 2.04,4.15 2.96,1.45 1.23,-1.41 3.83,-2.33 3.98,-4.32 -1.76,-0.7 -2.47,-2.54 -4.09,-3.51 1.84,-0.94 3.53,1.28 4.58,-0.77 1.51,-1.17 4.45,-0.14 5.27,-1.51 0.95,-0.25 2.74,0.97 2.03,-1.03 1.24,-1.85 2.79,-4.63 5.26,-4.54 0.24,-2.22 -3.33,-1.77 -3.23,-3.97 -1.59,-0.5 -1.14,-2.19 0.43,-1.77 0.7,-2.69 -4,-0.18 -5.55,-0.99 -1.61,0.21 -2.66,0.21 -2.4,-1.73 -0.63,-1.95 -1.32,-4.61 -3.64,-4.95 -0.96,0.68 -1.86,1.05 -1.38,-0.57 -0.83,-1.37 -2.55,-0.91 -3.49,-1.92 2.14,-2.03 -0.39,-5.26 0.95,-7.43 1.04,-0.99 -1.1,-2.32 0.59,-3.24 1.49,-1.45 2.32,-4.9 -0.84,-4.45 -2.61,-1.01 0.89,-5.07 -2.78,-5.24 -1.21,-1.33 2.19,-1.14 0.43,-2.68 -0.12,-0.26 -0.3,-0.58 -0.61,-0.66 z\",\n                        \"department-43\" : \"m 379.31,374.73 c -1.62,2.39 -4.9,1.8 -6.71,0.33 -0.7,1.72 -0.87,1.21 -1.91,0.1 -0.8,1.98 -3.58,1.56 -4.38,3.23 -1.25,1.09 -2.57,1.35 -4.33,1.17 0.74,1.5 -1.58,1.78 -0.04,2.79 -2.08,1.77 1.79,1.15 2.36,1.2 -0.13,1.97 3.13,-0.54 2.89,1.98 -0.29,1.8 0.97,2.96 2.14,3.73 -0.86,2.28 -0.05,5.34 2.48,5.9 2.93,0.43 -0.37,2.07 -1.36,0.74 -1.49,0.56 1.82,1.51 0.26,2.94 -1.01,2.64 2.59,2.31 2.97,4.1 -2.04,1.24 0.26,1.73 1.03,2.74 1.8,0.69 0.7,3.92 2.11,5.44 0.56,1.74 1.53,5.67 3.68,3.09 2.13,0.18 4,-0.58 3.52,-3.06 1.72,-1.57 4.47,0.99 3.25,2.73 2.03,-0.35 4.24,-0.91 4.56,1.81 1.6,0.42 1.42,3.2 3.32,1.95 -0.31,0.86 -0.01,2.7 1.4,1.48 3.08,-0.04 2.22,-4.19 4.35,-5.07 0.8,1.72 0.74,-0.65 2.16,-0.3 0.91,-0.43 0.22,-3.47 2.51,-2.52 2.14,-0.66 5.33,0.63 5.55,-2.64 1.54,-1.36 1.15,-4.48 3.81,-3.54 1.57,0.05 2.24,-1.12 0.99,-2.15 -1.14,-2.94 5.69,-1.67 3.23,-3.83 -1.6,-1.11 -0.01,-3.44 1.47,-3.61 -1.01,-0.84 -1.65,-2.84 0.52,-2.06 0.75,0.25 1.93,2.57 1.79,0.63 -0.57,-2.5 2.93,-4.77 1.26,-7.19 -1.2,-1.98 -2.64,-2.48 -4.48,-1.26 -2.08,-0.82 0.53,-3 -1.95,-3.68 1.6,-1.09 1.44,-3.36 -0.89,-3.47 -2.17,2.19 -2.9,-2.58 -5.24,-0.98 -1.45,-1.18 -2.23,0.2 -2.36,1.14 -1.72,-0.24 -2.79,0.8 -3.72,1.87 -0.74,-1.86 -1.9,-0.59 -2.28,0.4 -0.52,-2.16 -2.78,-4.05 -4.23,-1.53 -0.3,1.52 -1.03,1.38 -1.49,0.05 -2.13,0.67 -3.37,-3.95 -4.67,-1.3 0.12,2.86 -4.25,0.82 -5.13,-0.4 -0.84,1.48 -2.99,4.23 -4.08,1.09 -0.06,-2.97 -3.34,-1.73 -4.39,-4.01 z\",\n                        \"department-07\" : \"m 436.62,378.68 c -2.11,1.19 -5.05,1.82 -5.73,4.31 -0.61,0.74 -1.7,1.47 -0.63,2.83 -1.48,1.55 -5.39,0.21 -5.65,3.05 -0.4,2.17 -2.13,4.1 -1.51,6.11 -0.82,1.35 -2.2,-3.55 -3.34,-0.83 2.87,1.6 -1.37,1.64 -1.06,3.7 -0.07,1.01 2.58,2.11 0.3,2.78 -2.43,-0.04 -3.73,1.92 -2.22,3.92 -1.62,1.35 -4.39,-0.37 -4.36,2.53 -1.51,1.8 -1.89,5.12 -5.04,3.9 -1.64,0.68 -4.72,-0.35 -3.54,2.75 -1.69,0.44 -2.07,1.93 -3.57,0.7 -0.65,2.39 -1.67,4.38 -3.7,5.18 0.05,1.23 -0.23,2.66 0.56,3.58 -0.09,2.42 0.91,5.06 1.8,7.31 3.3,1.24 2.04,5.97 4.07,8.24 1.96,0.49 1.37,2.56 2.59,3.64 -1.74,0.94 0.2,3.57 -1,5.13 1.45,0.08 4.13,-2.2 4.71,0.49 2.27,-0.88 3.84,4.84 5.98,2.4 0.11,-2.69 3.06,-5.02 5.54,-4.01 -0.84,1.71 0.49,4.93 2.22,2.69 -1.12,-4.19 4.37,-2.87 5.2,-0.35 2.07,1.28 5.06,2.67 3.99,-1.18 -0.44,-2.49 0.5,-4.84 0.92,-7.23 2.57,-1.67 0.05,-4.72 1.41,-6.94 -1.34,-2.75 2.73,-3.36 2.63,-6.07 2.5,-3.08 -0.98,-6.81 0.47,-10.07 2,-1.59 2.83,-4.11 4.16,-6.22 -0.81,-2.28 2.55,-4.4 -0.11,-6.44 -1.37,-1.98 -0.41,-4.12 -0.17,-5.92 -1.82,-0.69 -0.96,-3.19 -2.25,-4.49 1.8,-2.26 -0.83,-5.08 0.05,-7.93 1.49,-3.08 -3.02,-4.17 -1.77,-7.12 l -0.36,-0.33 -0.59,-0.1 0,0 z\",\n                        \"department-26\" : \"m 448.07,380.12 c -2.89,1.17 -5.09,3.5 -8.19,2.69 -0.39,2.66 -1.05,6.79 0.49,9.42 -1.96,1.97 0.32,3.64 0.34,5.76 2.35,1.37 -0.99,4.81 1.33,6.93 2.06,2.38 -0.62,5.13 -0.81,7.77 -1.22,2.58 -4.32,4.41 -3.69,7.71 1.66,3.46 0.06,6.59 -1.3,9.7 -3.02,0.93 -0.83,4.24 -2.03,6.3 0.95,3.33 -2.55,6.12 -1.92,9.81 1.2,3.03 7.51,-0.99 7.1,4.18 0.14,2.04 0.67,4.67 2.58,1.79 2.97,-0.92 6.04,-2.27 9.06,-3.52 1.12,3.67 4.14,-0.81 5.13,-0.14 -0.85,1.68 -0.59,3.54 -0.5,5.19 1.36,1.14 3.35,1.14 4.16,-0.1 1.72,1.86 4.28,0.89 5.95,1.95 0.03,1.94 0.09,3.52 2.41,3.44 1.06,4.04 4.77,0.96 6.47,-0.43 -1.58,-2.47 1.9,-2.75 3,-1.1 1.64,-1.37 2.06,-2.86 1.41,-5.21 1.53,-2.36 -2.87,-0.24 -1.73,-2.96 -1.59,-0.67 -0.77,-1.18 -0.59,-2.32 -2.51,0.48 -4.35,-1.04 -6.35,-0.89 -1.23,-1.45 -2.87,-1.53 -2.12,-3.69 -1.62,-1.67 -0.01,-2.82 1.69,-1.61 2.12,-0.83 -1.87,-1.85 -0.65,-3.64 -0.28,-2.93 4.33,0.48 6.05,0.59 1.73,0.39 1.15,-2.66 3.01,-2.35 -1.71,-1.67 -3.84,-2.97 -1.6,-5.43 1.79,-1.45 -0.55,-5.71 2.99,-3.98 1.94,0.82 3.33,-0.86 4.9,-1.06 1.29,-0.88 2.08,-3.19 -0.35,-2.44 -2.24,0.57 -3.91,-2.09 -6.41,-1.58 -1.16,-1.43 -2.84,-3.52 -4.34,-3.81 0.14,1.78 -6.09,-0.53 -3.44,-2.33 -1.37,-2.79 0.85,-6.84 0.11,-10.1 0.96,-2.47 -1.42,-5.35 0.09,-7.37 -2.07,0.93 -4.59,4.84 -6.88,1.6 -1.84,0.62 -4.04,-0.31 -5.88,-1.61 -1.29,0.02 -2.1,2.02 -3.13,0.34 2.95,-1.62 2.73,-5.57 1.54,-8.29 2.1,-1.71 -0.25,-3.63 -2.12,-2.9 0.27,-1.74 0.99,-4.37 -1.59,-2.47 -1.31,0.06 -1.04,-2.86 -3.02,-2.37 -0.42,-0.45 -0.36,-1.52 -1.19,-1.46 z m -1.27,60.35 c 2.68,0.18 1.93,3.2 4.79,3.14 -1.88,1.51 -2.98,3.63 -4.06,5.91 -1.76,-1.35 -5.66,0.15 -4.33,-3.15 -1.66,-0.66 1.47,-2.81 1.37,-4.36 0.67,-0.62 1.73,-0.72 2.23,-1.54 z\",\n                        \"department-84\" : \"m 446.86,440.69 c -1.95,0.68 -2.59,2.23 -3.24,3.95 -1.54,1.08 0.24,1.84 -0.38,3.25 0.79,1.16 2.95,0.74 4.3,1.12 1.33,-1.76 1.41,-4.26 3.76,-4.92 -0.23,-0.92 -2.69,-0.73 -2.57,-2.42 -0.66,-0.27 -1.12,-0.97 -1.86,-0.99 z m -10.7,6.69 c -1.75,0.63 -4.36,-0.72 -3.75,2.23 -0.47,1.96 1.22,3.5 1.32,5.13 2.22,-0.26 1.8,3.29 1.6,4.89 -0.71,1.78 -0.16,4.41 1.97,3.57 1.39,1.79 2.8,3.83 3.94,5.76 0.11,1.52 -2.28,0.28 -1.54,2.26 -0.27,1.54 -4.74,2.54 -1.78,2.92 1.98,0.36 4.26,0.33 5.81,1.82 2.69,0.61 4.43,2.7 6.08,4.74 0.55,2.14 2.45,3.17 4.31,4.09 2.3,2.43 5.12,0.03 7.83,1.23 2.38,1.21 4.48,2.96 6.96,4.03 2.69,1.26 6.11,1.9 8.79,0.34 1.35,-1.61 3.7,-0.97 4.73,-3.09 0.97,-1.51 -1.94,-2.24 -1.96,-3.86 -1.56,-1.86 -3.42,-4.41 -6.24,-2.8 -2.07,0.95 -0.48,-2.95 0.61,-3.43 0.51,-1.33 1.55,-2.66 -0.1,-3.23 -0.29,-2.08 -4.3,-0.54 -3.06,-3.3 0.45,-2.01 1.86,-3.87 1.45,-6.01 -1.1,0.12 -2.63,0.07 -2.14,-1.74 0.53,-2.35 -2.66,-1.28 -2.71,-3.51 -1.05,-0.88 -3.35,-0.4 -2.48,-2.73 -0.01,-3.12 -4.03,-0.26 -5.3,-2.66 -1.51,-1.06 -0.98,1.74 -2.66,0.68 -2.01,-0.15 -3.06,-1.35 -2.27,-3.12 -1.69,-0.64 1.81,-3.73 -0.28,-2.95 -1.07,2.14 -3.56,1.91 -4.6,0.21 -2.41,0.78 -4.55,2.65 -7.11,2.79 -1.53,-0.33 -4,4.19 -3.94,0.55 -0.37,-2.16 -0.51,-5.06 -3.51,-4.81 z\",\n                        \"department-13\" : \"m 436.6,474.08 c -0.74,1.85 -4.74,2.73 -4.06,4.51 1.26,0.66 -1.41,1.72 -0.12,3.06 0.08,2.7 -2.74,5.11 -1.37,7.86 -2.28,-0.28 -6.4,-2.34 -7.04,1.21 -2.02,1.17 -2.34,4.33 0.25,4.07 -0.26,2.18 -2.99,1.15 -3.24,3.2 -2.53,0.88 -3.65,1.48 -5.33,3.13 -3.12,0.45 -3.32,4.69 0.25,3.69 2.78,0.47 5.55,1.05 8.35,0.35 2.37,-0.45 7.29,1.42 4.55,4.28 -0.6,3.55 5.03,2.05 7.33,2.58 1.71,0.43 5.71,0.01 2.7,-2.11 -3.88,-1.35 -2.85,-5.16 -3.05,-8.31 -0.04,-1.21 -2.55,-5.59 -0.42,-2.89 1.89,2.36 1,5.34 0.95,8.05 0.88,2.13 3.62,3.05 5.46,4.22 1.53,-0.81 -2.25,-2.45 0.5,-3.11 1.91,-1.46 4.03,-0.52 5.49,0.58 3.35,0.39 4.55,-4.15 1.3,-5.2 -0.68,-1.48 -0.16,-6.09 1.79,-3.06 2.23,-0.56 2.91,0.56 2.79,2.29 1.26,2.1 3.09,1.09 4.71,0.38 1.06,3.09 -3.48,5.94 -6.44,5.14 -4.78,-0.48 -3.49,6.19 0.68,5.18 2.9,-0.06 6.07,0.58 8.6,-1.26 3.09,-1.75 3.91,2.83 3.27,4.72 2.03,1.28 -2.35,4.61 1.58,4.55 2.59,-0.26 5.17,0.78 7.33,0.32 0.97,2.95 3.72,1.97 5.67,1.14 -0.33,-3.01 1.95,-4.41 4.07,-5.87 -0.58,-2.14 -2.28,-2.58 -3.96,-3.03 2.56,-1.22 -1.49,-6.49 2.6,-5.65 1.54,0.73 3.39,-0.95 1.08,-1.75 -1.32,-1.96 -3.23,-3.39 -1.84,-5.73 2.26,-2.81 -4.73,-2.76 -1.41,-4.42 -0.82,-3.37 2.37,-4.88 5.13,-5.19 1.46,-1.69 -2.03,-5.66 -3.21,-2.42 -1.87,0.81 -3.79,1.87 -5.79,2.74 -4.96,0.73 -9.29,-2.44 -13.26,-4.94 -3.21,-1.31 -6.53,0.84 -9.27,-1.96 -2.79,-0.81 -2.96,-3.66 -4.98,-5.35 -1.7,-2.34 -4.64,-3.03 -7.08,-4.31 -1.52,-0.14 -3,-0.57 -4.52,-0.71 z\",\n                        \"department-83\" : \"m 517.2,482.16 c -2.21,0.45 -4.51,0.15 -4.56,3.03 -1.71,2.89 -5.34,-0.75 -6.7,-2.47 -3.07,-2.54 -3.41,4.73 -6.6,3.29 -1.58,1.5 -2.96,3.5 -4.46,4.67 -1.25,-1.47 -1.71,-3.25 -3.55,-3.95 0.03,-1.86 -1.87,-1.86 -1.91,-0.09 -1.33,1.02 -2.66,0.95 -3.16,-0.75 -1.91,-1.9 -4.18,0.89 -2.09,2.04 0.53,1.23 1.97,1.94 0.53,3.38 -2.84,-0.21 -5.92,2 -4.84,5.1 -3.44,1.27 3.35,1.25 1.35,3.57 -0.22,1.94 -1.24,3.31 0.74,4.69 0.22,1.73 4.1,2.93 0.81,3.75 -2.63,-1.28 -3.72,1.11 -2.27,3.16 -1.33,1.63 -0.65,2.88 1.29,2.7 1.09,1.33 2.34,3.31 -0.22,3.83 -2.89,1.3 -2.33,4.54 -1.48,6.82 1.05,1.11 2.71,1.01 3.71,1.52 -0.45,1.28 3.17,1.21 0.61,2.02 -2.2,1.64 1.53,2.03 2.31,3.24 1.87,0.49 2.01,-2.69 4.02,-1.64 0.25,-1.17 -3.62,-2.32 -0.77,-2.94 1.5,-0.75 1.25,1.72 3.11,0.9 1.98,-0.44 2.88,1.82 4.97,0.72 2.49,0.17 1.79,3.18 -0.25,3.1 1.03,0.17 3.75,1.02 4.22,-0.22 -1.87,-1.01 -0.43,-5.47 2.18,-4.51 2.27,-1.02 4.3,0.74 5.47,2.2 2.95,0.7 -0.7,-3.95 2.56,-4.14 1.82,-1.17 4.32,-0.11 5.81,-1.82 1.19,-1.87 3.53,-0.69 3.91,0.87 1.83,-0.26 1.02,-2.97 3.25,-2.97 -1.94,-1.52 0.52,-2.56 0.71,-4.09 -0.88,-1.35 -6.14,0.84 -4.2,-1.29 1.98,-0.49 3.13,-1.3 3.41,-3.27 3.09,-0.38 1.58,-4.33 3.42,-5.76 2.02,1.51 4.49,0.53 6.29,-0.38 1.97,-1.45 2.07,-3.69 -0.21,-4.86 0.39,-1.48 -0.82,-2.76 0.73,-4.13 0.32,-1.33 0.43,-3.31 -1.68,-2.51 -2.08,-0.91 -4.86,-2.77 -4.6,-5.2 1.21,-2.45 -1.26,-3.59 -2.82,-4.44 -1.3,-0.4 -2.5,0.43 -2.84,-1.45 -0.36,-2.95 -3.06,-1.75 -4.46,-0.37 0.04,-0.84 -0.83,-2.43 -1.72,-1.38 z\",\n                        \"department-06\" : \"m 534.65,445.17 c -2.26,1.07 -5.06,2.58 -4.36,5.66 -3,-0.21 -3.04,3.43 -4.06,5.54 -1.08,2.46 0.95,4.86 2.25,6.92 -1.14,3.22 2.36,4.62 4.05,6.69 0.63,2.61 3.53,3.37 4.77,5.63 -2.57,2.29 -4.92,-3.17 -6.86,-0.03 -0.74,2.32 -3.13,1.4 -4.56,1.36 1.15,1.61 -2.67,2.88 0.34,3.69 1.19,1.89 -4.95,1.17 -2.32,3.78 0.53,1.35 2.49,-0.04 3.3,1.63 2.89,-0.16 1.89,3.58 2.03,5.2 1.45,1.97 3.65,3.89 6.12,3.69 1.22,2.02 -1.58,4.04 -0.48,6.02 -0.26,2.6 3.76,2.43 2.74,-0.52 1.75,-2.03 4.78,-1.82 7.05,-2.83 2.15,2.34 0.79,-2.94 1.42,-4.1 0.35,-2.64 3.85,-1.42 4.44,-3.92 1.43,-0.64 4.04,-1.22 4.41,0.38 0.69,-1.18 0.32,-2.51 2.45,-2.28 -0.13,-1.76 1.58,-4.07 3.07,-2.16 1.7,0.06 1.19,-2.66 3.34,-2.27 -0.27,-2.4 -3,-5.81 0.3,-7.3 1.54,-1.45 0.99,-4.2 3.51,-4.76 2.78,-1.39 1.89,-4.43 4.17,-6.12 1.59,-2.77 -3.27,-4.24 -1.5,-7.3 -1.21,-2.71 -2.61,1.55 -4.47,0.73 -2.22,0.84 -4.68,1.32 -6.76,2.38 -2.04,0.2 -3.62,-0.51 -4.81,-1.86 -2.43,0.52 -3.44,-1.96 -5.53,-2.49 -1.15,-2.34 -3.58,-0.83 -4.96,-2.82 -1.54,-1.59 -4.78,0.61 -4.95,-2.66 -1.4,-1.9 -2.37,-3.95 -3.93,-5.85 l -0.23,-0.02 -1.8e-4,10e-5 z\",\n                        \"department-04\" : \"m 536.03,425.47 c -1.91,1.96 -3.88,3.46 -6.49,4.44 -1.02,2.88 -4.75,3.12 -5.32,6.34 -1.11,1.83 -1.21,3.9 -4.02,3.07 -3.01,-0.06 -6.66,-0.3 -8.11,-3.08 -0.64,-1.8 -3.43,-1.98 -2.19,0.22 -0.26,3.25 -2.7,-0.14 -4.23,1.68 -1.44,0.61 2.06,5.8 -1.43,5.09 -2.1,-2.16 -2.71,-5.63 -6.09,-5.69 -0.87,3.33 -6.54,3.63 -7.12,7.81 -0.96,1.13 -2.01,2.66 -0.4,3.1 -0.61,1.4 0.72,5.52 -1.66,2.94 -0.44,-1.65 -2.49,-3.59 -2.83,-0.6 1.02,1.86 2.62,3.82 3.95,5.12 -2.91,0.83 -6.3,-2.29 -9.28,0.12 -0.78,0.38 -3.94,0.37 -2.37,1.8 0.52,0.59 -1.17,0.62 -1.27,-0.25 -1.21,-2.36 -3.58,-0.6 -2.43,1.22 -2.05,0.82 -5.12,3.55 -2.92,5.69 3.34,-0.23 0.15,4.71 -0.09,6.55 -0.21,2.32 3.26,0.85 3.55,3.17 2.24,1.52 -3.59,5.18 -1.33,6.48 2.81,-2.13 5.06,0.73 6.7,2.59 0.57,1.46 2.26,4.38 3.61,1.7 2.13,0.13 4.41,4.24 5.38,0.42 1.94,-1.62 1.55,2.48 3.59,2.29 0.43,1.7 2.31,4.04 2.93,1.23 2.03,-0.76 2.24,-3.96 4.52,-2.9 1.73,-1.32 3.93,-6.5 5.92,-2.58 1.76,2.61 6.67,4.01 6.46,-0.53 1.66,-0.48 3.88,-1.21 5.41,-0.9 0.99,2.9 3.19,-2.27 4.59,0.48 1.62,-0.3 5.25,-1.56 1.66,-2.44 0.5,-1.52 2.15,-2.44 0.07,-3.65 2.45,0.82 5.17,0.99 6.43,-1.88 1.98,-0.91 4.27,3.34 5.6,0.53 -2.39,-1.94 -3.94,-3.66 -5.54,-6.13 -1.97,-1.55 -3.7,-3.16 -3.01,-5.85 -1.63,-2.1 -3.46,-4.86 -1.89,-7.35 0.29,-2.57 2.02,-4.78 3.68,-5.75 -0.2,-4 5.64,-3.6 4.5,-7.78 -0.28,-2.01 3.78,-1.57 1.15,-3.33 -2.21,-1.59 -4,-5.51 -0.76,-7.08 1.56,-1.02 4.77,-6.03 1.11,-6.32 z\",\n                        \"department-05\" : \"m 505.98,394.66 c -0.92,0.25 -1.63,1.24 -1.1,2.16 0.19,0.48 0.58,1.51 -0.28,1.51 -1.03,0.5 -0.62,1.96 -1.08,2.79 -0.5,0.85 0.81,1.35 1.44,1.52 1.22,0.46 2.5,-0.16 3.7,-0.25 0.54,0.61 -0.39,1.36 0.2,1.99 0.46,0.55 -0.24,1.49 0.61,1.76 1.28,0.11 1.04,1.22 0.99,2.19 0.04,1.33 -0.36,2.63 -0.12,3.94 -0.53,0.79 -1.69,0.39 -2,-0.4 -0.51,-1.19 -2.09,-0.47 -2.63,0.32 -1,0.97 -2.33,-0.4 -3.46,0.21 -0.85,0.38 -1.73,-1.03 -2.42,-0.12 -0.98,1 -2.08,1.88 -3.19,2.74 -0.6,-0.52 -1.36,-2.29 -1.99,-0.92 -0.19,0.45 -0.47,0.63 -0.95,0.63 -0.5,0.26 -1.64,0.37 -1.59,1.05 0.28,0.44 1.46,0.83 1.02,1.47 -0.54,0.3 -1.13,0.65 -1.29,1.26 -0.7,-0.05 -1.3,0.89 -1.97,0.42 -0.72,-0.21 -1.09,0.98 -1.85,0.43 -0.58,0.09 -1.28,-0.82 -1.74,-0.36 0.25,1.1 -0.94,2.04 -0.76,3.1 0.52,0.18 0.81,0.66 0.78,1.23 -0.53,0.61 -1.46,0.99 -1.58,1.94 -0.18,0.9 -1.25,0.06 -1.79,0.32 -0.68,0.37 -1.24,1.41 -2.12,0.79 -0.93,-0.21 -2.04,-0.85 -2.95,-0.39 -0.57,0.89 0.83,2.18 -0.26,2.82 -0.65,0.74 -0.7,1.84 -1.37,2.59 -0.33,0.63 -0.72,1.79 0.31,1.98 1.01,0.26 1.61,1.36 2.24,2.13 -0.07,0.59 -1.06,0.18 -1.47,0.37 -0.6,0.27 -0.26,1.22 -0.74,1.67 -0.29,0.65 -1.01,0.59 -1.49,0.18 -0.57,-0.34 -1.27,-0.05 -1.74,-0.61 -0.9,-0.62 -2,-0.67 -3.03,-0.83 -0.44,-0.35 -1.26,-0.9 -0.84,0.18 0.34,0.85 -0.18,1.94 0.35,2.71 0.46,0.27 1.64,0.66 1.06,1.38 -0.5,0.81 -1.41,0.3 -2.05,-0.05 -0.52,-0.37 -1.25,0.09 -0.87,0.7 0.33,0.77 0.86,1.66 0.62,2.5 -0.66,0.38 0.12,0.97 0.62,0.79 0.61,0.08 0.48,1.09 1.17,1.15 0.27,0.47 0.79,0.78 1.25,0.32 0.66,-0.57 1.26,0.29 1.64,0.72 1.26,0.36 2.77,-0.21 3.93,0.31 -0.15,0.66 -1.33,1.39 -0.16,1.75 0.4,0.17 0.78,0.55 0.44,0.97 -0.13,0.75 0.67,1.6 1.38,1.06 0.44,-0.36 1.29,0.39 0.73,0.76 -0.45,0.57 -0.47,1.41 -0.01,1.94 -0.06,0.96 -0.14,2.01 0.32,2.89 0.74,-0.36 1.48,-0.84 2.32,-1.03 0.89,-0.54 2.04,-0.3 3.03,-0.47 1.36,0.7 2.9,1.36 4.48,1.28 0.82,-0.57 -0.52,-1.06 -0.97,-1.25 -0.83,-0.92 -1,-2.37 -2.18,-3.02 -0.89,-0.61 -0.47,-1.72 -0.01,-2.44 0.2,-0.82 1.38,-0.21 1.78,0.12 0.44,0.5 0.07,1.39 0.76,1.79 0.27,0.34 1.29,1.11 1.39,0.28 -0.46,-0.7 -0.4,-1.72 0.04,-2.4 0.24,-0.63 -0.28,-0.96 -0.8,-0.99 -0.4,-0.58 -0.19,-1.66 0.53,-1.93 1.11,-0.98 1.03,-2.64 1.93,-3.7 0.84,-0.83 2.18,-1.02 2.91,-1.96 0.3,-0.69 1.08,-1.23 1.8,-1.37 0.77,0.34 0.76,-0.99 0.72,-1.47 0.2,-0.8 1.42,-0.33 1.96,-0.19 0.77,0.29 1.87,0.6 1.76,1.64 -0.03,0.5 0.41,0.7 0.8,0.64 0.65,1.23 1.63,2.21 2.33,3.38 0.67,0.53 1.08,-0.73 1.28,-1.18 0.53,-1.39 -0.98,-2.61 -0.83,-3.89 0.95,-0.06 1.68,-0.79 2.53,-1.06 0.55,0.33 1.53,1.41 2.02,0.36 0.44,-0.73 0.48,-1.61 -0.08,-2.27 0.17,-0.42 0.83,-0.77 1.24,-0.86 0.91,1 1.94,1.96 2.46,3.23 0.51,0.3 1.22,-0.11 1.7,0.41 0.56,0.61 1.25,1.09 2.14,1 1.98,0.14 3.96,0.2 5.94,0.29 0.53,-0.84 0.08,-2.27 1.05,-2.94 1.09,-0.75 1.13,-2.18 1.48,-3.28 1.39,0.19 2.51,-0.88 3.23,-1.94 0.77,-0.23 0.49,-1.3 1.27,-1.53 0.82,-0.72 1.93,-0.86 2.92,-1.25 0.49,-0.42 0.51,-1.23 1.32,-1.26 0.83,-0.36 1.14,-1.4 1.93,-1.78 0.77,0.27 1.79,0.29 2.08,-0.66 0.66,-1.38 2.4,-1.81 3.71,-1.06 0.39,0.18 1.29,0.5 1.12,-0.27 0.09,-1.44 -0.99,-2.46 -1.92,-3.38 -0.16,-1.25 0.2,-2.81 -0.7,-3.82 0.26,-0.63 1.23,-1.27 0.5,-1.95 -0.48,-0.56 -0.7,-1.27 -1.5,-1.47 -0.9,-0.29 -1.99,-1.36 -2.93,-0.65 -1.03,0.93 -2.61,0.14 -3.63,-0.46 -1.39,-1.22 -3.06,-2.05 -4.52,-3.16 -0.14,-0.64 0.04,-1.36 -0.18,-2.01 0.26,-0.67 0.64,-1.39 0.32,-2.14 -0.46,-0.77 -0.27,-1.65 -0.34,-2.48 -0.67,-1.47 -2.82,-0.12 -3.68,-1.29 -0.42,-1.05 0.19,-2.49 -0.93,-3.24 -0.45,-0.58 -0.89,-1.29 -0.84,-2.02 -0.58,-0.55 -1.68,-0.52 -2.38,-0.21 -0.4,0.9 -1.61,1.62 -2.44,0.8 -0.83,-0.16 -1.61,0.86 -1.3,1.66 0.16,0.65 0.15,1.68 -0.74,1.69 -0.9,0.39 -1.54,-0.53 -2.43,-0.47 -0.85,-0.07 -1.72,-0.21 -2.49,-0.62 0.67,-1.13 -0.23,-2.74 -1.37,-3.11 -0.83,0.45 -1.99,0.92 -2.79,0.12 -0.24,-0.12 -0.29,-0.52 -0.63,-0.43 z\",\n                        \"department-38\" : \"m 464.21,344.5 c -2.79,1.9 -2.68,8.48 -7.27,6.99 -0.9,-2.78 -3.83,-2.24 -5.03,-0.76 -2.02,0.29 1.51,1.68 1.08,3.08 2.47,0.08 3.5,3.16 0.44,2.72 -1.73,1.6 -3.23,3.88 -3.85,5.57 -1.57,-1.3 -1.06,1.72 -2.92,0.29 -3.28,-0.47 -4.55,3.17 -7.48,1.48 -1.5,1.31 5.74,3.47 2.07,5.5 -2.26,2.06 -5.1,3.74 -4.23,6.93 0.77,2.57 -0.06,8.04 4.48,6.03 2.27,2 6.34,-5.1 8.45,-0.76 1.77,0.21 1.71,3.96 3.93,1.45 1.68,0.13 -1.09,4.61 1.72,3.03 1.9,0.92 2.02,2.4 0.5,3.24 1.61,2.88 0.73,6.17 -0.85,8.65 1.08,-0.16 3.1,-1.79 4.37,0.45 2.36,0.7 4.24,0.15 6.23,1.33 0.84,-0.27 3.02,-1.03 3.81,-2.77 2.64,0.63 -1.49,2.67 0.72,4.47 0.38,3.59 -0.09,7.56 -0.56,11.3 0.4,1.45 0.41,2.4 -0.01,3.62 1.24,0.79 4,2.16 3.74,0.13 2.61,1.83 4.3,5.05 7.54,4.72 2.17,2.94 5.3,0.26 5.21,-2.58 1.66,1.44 8.14,-0.42 5.75,-2.57 -0.07,-1 2.61,-2.26 3.54,-2.4 2.26,2.99 3.89,-3.83 6.67,-1.32 2.19,0.23 3.45,-0.22 5.31,-1.27 0.97,1.39 3.24,2.32 2.54,-0.45 1.1,-3.23 -1.77,-5.43 -1.86,-8.01 -3.37,1.84 -6.82,-1.82 -3.61,-4.41 -0.13,-1.84 0.52,-3.31 1.32,-4.86 -1.82,-0.13 -3.26,-1.51 -5.13,-0.74 1.43,-2.69 -1.8,-4.98 -0.71,-7.76 -0.38,-2.56 4.12,-3.93 2.03,-6.04 0.5,-3.14 -3.24,-5.89 -6.15,-5.13 -1.66,-1.14 -3.77,-5.23 -5.46,-1.87 -0.31,1.87 -0.63,3.21 -0.4,4.62 -2.15,1.23 -4.77,-3.87 -7.68,-2.52 -0.95,-2.94 -2.79,-6.19 -4.33,-9.02 -1.66,-2.41 -2.31,-5.84 -4.73,-7.23 -0.04,-3.77 -5.4,-5.53 -5.81,-9.3 0.88,-1.39 -2.2,-3.36 -3.39,-3.83 z\",\n                        \"department-73\" : \"m 486.16,340.96 c -0.45,0.45 0.31,1.19 0.03,1.77 -0.43,2.29 -1.49,4.41 -1.88,6.69 -0.26,1.38 -0.01,2.88 -0.3,4.22 -0.62,0.31 0.02,1.17 -0.58,1.57 -0.45,1.17 -1.58,0.73 -2.55,0.64 -0.84,0.07 0.16,1.14 -0.18,1.7 -0.39,0.69 -1.23,1.27 -0.9,2.19 0.16,0.81 -0.73,0.85 -1.28,0.92 -0.46,0.22 -0.52,0.84 -0.99,1.02 -0.1,0.57 -0.89,1.04 -0.26,1.63 0.76,1.32 2.36,2.45 2.11,4.11 0.23,0.33 0.74,0.34 0.74,0.83 0.84,0.69 0.84,1.99 1.51,2.8 0.86,0.69 -0.26,2.79 1.33,2.79 0.69,-0.42 1.75,-0.43 2.21,0.36 0.86,0.8 2.15,0.9 3.12,1.6 0.57,0.15 0.69,0.71 1.06,1.03 0.59,0.02 1.32,-1.15 0.42,-1.31 -0.57,-0.83 0.26,-1.71 0.62,-2.42 0.32,-0.63 -0.18,-1.37 -0.02,-1.93 0.76,-0.47 1.65,-0.69 2.47,-1.04 0.43,0.56 1.01,1.07 1.58,1.38 0.13,0.76 0.39,1.57 1.25,1.79 0.96,0.51 2.24,-0.49 3,0.51 0.5,0.17 1.21,-0.47 1.46,0.31 0.64,1.59 2.48,2.51 2.66,4.29 -0.29,0.15 -0.79,0.54 -0.21,0.73 0.85,0.23 0.12,1.35 0.11,1.91 -0.05,0.98 -1.42,0.76 -1.63,1.63 -0.67,0.52 -0.97,1.32 -0.71,2.16 0.28,0.8 -0.51,1.41 -0.41,2.16 0.41,0.87 0.74,1.73 1.41,2.45 0.62,1.01 -0.59,1.95 -0.5,2.93 0.52,0.56 1.11,-0.22 1.49,-0.5 0.92,-0.1 1.37,0.91 2.13,1.15 0.63,-0.3 1.62,-0.2 1.66,0.68 -0.1,1.41 1.8,2.18 2.81,1.25 0.65,-0.79 1.23,0.33 1.67,0.84 0.46,0.64 0.68,1.43 0.45,2.15 0.54,0.74 1.75,0.36 2.53,0.62 0.86,0.16 1.92,1 2.66,0.13 0.38,-0.92 -0.65,-2.23 0.57,-2.71 0.35,-0.45 0.85,-0.56 1.27,-0.15 0.94,0.49 1.73,-0.4 2.13,-1.14 0.91,-0.24 1.86,0.12 2.72,0.29 0.81,-0.21 1.62,-0.66 2.1,-1.32 0.99,-0.68 2.46,0.1 3.22,-1.02 0.35,-0.43 0.97,-0.89 1.45,-0.3 0.85,0.52 2.11,0.47 2.52,1.51 0.72,0.63 1.87,0.09 2.61,-0.25 0.41,-0.56 -0.74,-1.63 0.24,-1.82 0.89,-0.31 2.18,-0.09 2.35,-1.31 0.28,-0.94 0.93,-1.7 1.94,-1.85 1,-0.19 1.96,-0.56 2.92,-0.94 0.28,0.29 0.54,1.02 1.07,0.58 0.47,-0.87 0.96,-2.03 2.06,-2.12 0.86,-0.78 0.12,-2.12 -0.06,-3.06 -0.11,-0.72 -1,-1.93 0.07,-2.33 0.68,-0.07 0.41,-0.73 0.59,-1.12 0.98,-0.99 1.63,-2.36 1.9,-3.7 -0.59,-0.97 -1.87,-1.22 -2.71,-1.86 -0.94,-0.95 -0.87,-3.04 -2.54,-3.15 -0.56,-0.01 -0.92,-0.42 -0.89,-0.96 -0.58,-0.7 -1.85,-0.56 -2.18,-1.57 -0.64,-1.44 -0.23,-3.2 -1.06,-4.6 -0.34,-1.1 0.49,-2.08 0.76,-3.02 -0.69,-0.83 -1.62,-1.51 -2.76,-1.31 -0.88,0.14 -0.91,-0.82 -1.25,-1.33 -0.99,-0.62 -2.63,-0.33 -3.11,-1.66 -0.83,-0.95 -1.39,-2.07 -1.33,-3.37 -0.05,-0.49 -0.09,-1.83 -0.91,-1.34 -0.91,0.06 -1.72,0.7 -1.99,1.6 -0.42,0.52 -0.86,1.4 -1.45,1.52 -0.4,-0.17 -1.27,-0.31 -0.7,-0.87 0.23,-0.66 -0.51,-1.2 -0.28,-1.88 -0.34,-0.89 -0.91,-2.04 -1.95,-2.2 -0.89,-0.13 -2.19,0.76 -2.83,-0.15 -0.09,-0.52 -0.37,-0.96 -0.88,-1.06 -0.72,-0.81 -1.07,-2.03 -1.15,-3.07 0.63,0.06 1.62,-0.31 1.26,-1.11 -0.35,-1.05 -1.53,-1.04 -2.36,-1.47 -0.67,-0.01 -0.86,0.94 -1.52,1.08 -0.85,0.88 -1.48,2.09 -1.51,3.29 -0.72,0.95 -0.91,2.24 -1.97,2.95 -0.76,0.61 -1.69,1.28 -1.54,2.39 -0.21,0.67 -0.99,1.04 -1.01,1.82 -0.44,0.97 -0.54,2.37 -1.86,2.41 -1.14,0.38 -2.33,0.53 -3.53,0.54 -0.06,-0.45 0.01,-1.66 -0.76,-1.32 -0.31,0.13 -0.76,0.69 -1.03,0.56 -0.25,-0.91 0.24,-2.16 -0.62,-2.79 -0.14,-0.81 -1.14,-1.57 -1.94,-1.34 -0.21,0.5 -0.78,0.26 -1.03,-0.06 -0.76,0.04 -0.24,1.32 -0.76,1.53 -0.34,-0.65 -1.25,-0.37 -1.8,-0.73 -0.47,-0.07 -0.73,0.7 -1.2,0.25 -0.48,-0.36 -1.21,-0.4 -1.7,-0.51 0.01,-0.61 -0.44,-1.04 -0.93,-1.29 0.04,-0.57 0.55,-1.77 -0.49,-1.68 -0.47,-0.1 -0.19,-0.97 -0.81,-1.05 -0.66,-0.37 -1.22,0.91 -1.76,0.14 -0.38,-0.36 -0.12,-1.3 -0.92,-1.18 -1.02,-0.5 -0.45,-1.96 -0.7,-2.86 -0.23,-1.29 -0.31,-2.65 -0.65,-3.91 -0.34,-0.35 -0.97,-0.38 -1.43,-0.38 z\",\n                        \"department-74\" : \"m 522.73,306.41 c -1.97,0.51 -4.09,-0.11 -6.02,0.54 -1.69,0.88 -2.87,2.78 -4.92,2.88 -1.61,0.19 -3.71,0.06 -4.62,1.7 -1.07,1.16 -2.72,2.21 -2.73,3.97 0.1,0.69 1.48,0.71 0.93,1.55 -0.41,0.84 0.21,1.93 0.9,2.4 0.42,0.09 0.95,-0.58 1.26,0.01 0.37,0.53 0.48,1.32 -0.23,1.62 -1.53,1.19 -3.48,2.08 -4.62,3.7 0.15,0.96 -1.06,1.44 -1.7,1.89 -0.92,0.54 -2.12,0.67 -2.99,-0.02 -0.94,-0.11 -1.74,0.7 -2.72,0.57 -1.73,-0.1 -3.26,0.92 -4.93,1 -0.77,0.2 -1.52,0.85 -1.16,1.71 0.19,0.63 -0.32,1.15 -0.97,1 -0.99,0.19 -1.36,-0.93 -2.04,-1.36 -0.25,0.5 -0.16,1.27 -0.57,1.8 -0.32,1.76 -0.11,3.58 -0.18,5.37 -0.05,1.02 1.4,1.33 1.1,2.4 -0.08,0.89 -0.37,2.18 0.97,1.91 0.75,0.22 0.29,1.37 0.52,1.94 0.31,1.44 0.48,2.91 0.5,4.37 0.07,0.67 0.88,0.58 1.19,0.96 -0.06,0.61 0.65,1.43 1.18,0.8 0.34,-0.42 1.1,-0.12 1.48,0.06 -0.19,0.54 0.13,1.08 0.73,0.94 0.45,0.32 -0.03,1.12 0.02,1.58 0.26,0.43 0.87,0.53 0.99,1.06 0.58,0.39 1.43,1.09 2.13,0.73 0.22,-0.52 0.78,-0.22 1.09,0 0.59,0.21 1.53,0.05 1.32,-0.78 -0.01,-0.66 0.68,-0.27 0.9,0.03 0.57,0.28 0.97,-0.69 1.55,-0.21 0.84,0.25 1.11,1.08 1.58,1.67 0.61,0.22 0.16,1.19 0.32,1.69 -0.08,0.68 0.71,0.6 0.85,0.07 0.5,-0.09 1,0.52 0.86,1.04 0.4,0.69 1.5,0.24 2.16,0.27 0.76,-0.24 1.79,-0.22 2.32,-0.85 0.55,-0.82 0.59,-1.89 1.06,-2.69 0.59,-0.47 1.08,-1.17 0.58,-1.84 1.1,-1.12 2.6,-2.01 3.15,-3.59 0.44,-0.46 0.57,-1.04 0.46,-1.64 0.43,-1.24 1.14,-2.4 2.27,-3.1 0.24,-0.19 0.68,-1.23 1.02,-0.66 0.87,0.56 2.4,0.81 2.5,2.07 0.05,0.67 -0.39,0.98 -1.01,0.85 -0.65,0.38 0.05,1.31 0.13,1.86 0.25,0.92 1.4,1.05 1.58,2.03 0.48,0.87 1.65,0.01 2.41,0.12 0.73,-0.31 1.18,0.28 1.5,0.85 0.45,0.56 1.16,1.11 0.82,1.91 -0.09,0.58 0.7,0.95 0.24,1.52 -0.21,0.76 0.9,0.79 1.18,0.23 0.84,-0.71 0.9,-2.01 2.02,-2.43 1.02,-0.06 1.62,-1 1.61,-1.96 -0.09,-1.02 0.58,-2.66 1.85,-2.26 0.39,0.29 1.11,0.3 0.98,-0.35 0.01,-0.41 0.22,-0.99 0.72,-0.64 1.66,0.72 3.32,-0.42 4.67,-1.3 1.07,-1.02 1.17,-2.69 2.2,-3.72 0.24,-1.07 0.13,-2.38 -0.92,-2.98 -0.31,-0.29 0.4,-0.66 0.03,-1.04 -1.08,-1.72 -2.7,-3.09 -3.82,-4.78 -0.93,-0.47 -1.81,1.29 -2.7,0.56 -0.35,-0.84 0.72,-1.72 0.05,-2.53 0.03,-0.72 1.46,-1.61 0.49,-2.23 -0.76,-0.34 -1.61,-0.31 -2.36,-0.72 -0.84,-0.04 -2.06,-0.19 -2.06,-1.31 0.09,-1.22 0.81,-2.32 0.63,-3.59 0.03,-1.74 2.08,-2.69 2.14,-4.38 -0.61,-2.1 -2.81,-3.32 -3.41,-5.34 0.58,-0.82 1.83,-1.33 1.69,-2.56 0.1,-0.89 0.32,-2.26 -0.88,-2.5 -2.33,-0.82 -4.77,-1.84 -7.27,-1.85 z\",\n                        \"department-71\" : \"m 412,260.36 c -2.93,0.55 -4.26,2.21 -6.96,2.68 -1.28,2.48 2.3,4.5 -0.5,6.99 -1.43,0.66 -3.07,3.09 -0.49,1.44 1.9,1.91 -1.31,5.49 2.35,6.61 2.41,2.48 -3.47,2.49 -1.06,5.02 0.77,3.39 -3.9,1.03 -5.18,3.67 -2.25,1.4 -4.63,2.62 -7.04,3.38 -0.31,-4.58 -4.86,-2.18 -7.6,-2.64 0.33,3.18 3.53,4.95 4.3,8.11 0.37,1.27 1.28,3.31 0.8,5.05 2.56,1.6 5.5,0.03 6.06,3.56 2.3,-0.67 6.83,0.19 5.63,3.81 -1.65,2.24 1.1,6.27 -0.41,7.48 -1.83,-0.26 -2.1,1.92 -4,2.06 1.17,2.28 -1.61,6.17 2.72,5.49 0.93,1.98 2.84,2.96 4.81,1.08 2.24,-1.83 4.53,2.66 6.18,-0.34 0.99,0.81 3.97,-0.12 2.52,2.07 1.82,0.5 3.17,-1.98 5.29,-1.84 0.91,-1.94 0.34,-5.84 2.53,-7.3 2.38,-0.25 4.64,4.02 6.14,0.44 0.69,1.02 2.58,2.86 3.18,0.21 1.5,-2.57 5.41,0.79 2.63,2.19 4.35,0.26 -0.17,5.73 3.79,5.35 1.63,-2.32 1.8,-5.62 3.02,-8.28 1.07,-3.54 2,-7.12 3.47,-10.47 -0.24,-4.22 3.76,-4.44 6.12,-2.01 2.73,0.91 5.4,-3.24 7.43,-0.63 0.71,4.46 5.42,3.07 8.23,1.96 3.48,-0.33 -0.18,-2.98 -1.2,-3.64 -0.19,-2.06 -0.14,-4 2.12,-4.12 -1.13,-2.06 2.54,-2.7 0.55,-4.54 0.27,-1.18 -1.25,-2.07 -0.87,-3.37 -1.29,-1.52 -2.14,-2.53 -0.54,-4.28 -1.91,-0.7 -4.07,-3.41 -0.68,-3.56 1.47,-0.64 5.77,0.15 2.85,-1.99 -1.77,-0.79 -1.54,-3.02 -3.84,-2.16 -2.27,0.63 -1.51,-5.03 -4.1,-2.86 0.12,-2.06 -1.07,-4.73 -3.5,-2.61 -2.78,0.86 -4.3,2.07 -6.4,-0.46 -1.94,0.4 -2.39,2.11 -4.89,0.86 -2.61,0.33 -5.24,2.44 -8.14,3.19 -1.76,-0.3 -4.71,2.29 -4.23,-1.06 -3.18,-0.15 -5.08,-3.48 -5.63,-5.52 -2.23,0.19 -4.16,-1.65 -6.41,-2.36 0.94,-2.91 -1.62,-1.37 -2.5,-0.96 0.79,-4 -4.82,-1.4 -5.2,-5.1 -0.71,0.24 -0.8,-0.59 -1.34,-0.6 z\",\n                        \"department-03\" : \"m 355.26,283.59 c -2.47,0.46 -4.86,3.44 -6.02,4.72 -1.76,-0.99 -3.8,2.31 -4.59,-0.78 -1.76,0.08 -2.97,3.69 -5.04,3.94 1.97,2.84 -4.43,0.31 -1.55,2.39 0.4,1.42 -1.37,2.94 0.6,3.99 1.55,3.09 -3.65,5.08 -5.37,3.61 -2.24,1.35 -6.48,-0.24 -7.16,3.06 -1.54,1.23 -3.6,4.68 -1.43,6.74 2.23,0.25 1.54,1.18 0.45,2.24 0.46,1.75 3.06,2.36 3.77,1.35 1.79,0.78 0.58,3.48 2.71,2.33 2.32,1.7 3.03,4.85 4.13,7.52 1.59,1.1 1.36,3.94 4.21,3.81 2.2,-0.4 1.29,-4.32 4.06,-4.34 -0.38,-2.36 1.13,-2.81 2.64,-1.17 2.87,2.05 0.78,-4.7 4.25,-3.15 2.6,-0.56 4.31,1.53 2.01,3.27 -0.51,2.53 2.71,1.85 2.18,4.56 1.6,1.64 4.19,2.18 6.12,1.98 0.53,3.71 5.09,1.32 7.41,2.58 2.46,-0.35 4.25,2.07 6.4,-0.15 2.05,-0.87 3.81,1.48 3.14,3.62 2.97,-0.38 6.89,-1.86 7.42,2.51 1.3,0.31 3.13,3.55 3.29,0.55 1.79,-0.98 4.46,0.16 5.67,-2.24 -1.33,-3.25 -0.2,-6.45 -1.49,-9.65 1.17,-1.65 -1.28,-4.71 -0.7,-6.42 1.4,-0.12 2.34,-1.59 4.2,-1.58 1.27,-1.45 2.99,-2.22 4.25,-3.49 2.82,-0.46 -0.34,-5.16 1.28,-7.19 1.51,-3 -3.08,-4.88 -5.16,-3.65 -1.18,-1.3 -1.26,-3.58 -3.47,-2.38 -1.93,-1.04 -3.95,-1.45 -2.9,-4.14 -1.14,-2.8 -2.34,-5.73 -4.5,-8.23 0.48,-2.03 -3.61,-4.95 -2.1,-1.56 -0.34,1.45 -3.05,0.68 -1.66,2.91 -1.17,0.41 -2.72,0.17 -3.32,2.29 -3.21,0.75 -0.8,-5.19 -4.58,-3.84 -1.04,2.99 -3.56,1.08 -4.7,-0.26 -2.1,1.25 -4.73,3.83 -6.34,0.2 -2.17,-1.67 -4.84,-2.89 -5.84,-5.6 -0.73,-0.27 -1.51,-0.18 -2.26,-0.35 z\",\n                        \"department-58\" : \"m 361.05,231.75 c -1.61,0.98 -3.32,2.58 -5.23,1.22 -1.54,0.66 -5.16,0.31 -5.72,1.84 1.58,2.33 4.2,5.39 3.03,8.27 -0.46,2.34 -4.01,5.74 -0.25,7.04 1.92,1.64 3.66,3.16 3.28,5.91 2.2,3.19 1.4,7.61 2.45,10.69 2.84,1.44 0.59,4.96 1.6,7.25 -1.99,2.66 1.02,5.99 -1.24,8.7 -1.75,2.29 0.81,5.12 3.16,5.53 1.64,1.06 3.28,4.95 5.39,2.27 1.52,-1.93 3.16,-1.38 4.16,0.57 1.96,0.7 3.24,-3.41 4.93,-1.11 0.68,1.01 0.94,1.95 1.13,3.28 1.84,0.37 2.58,-2.94 4.39,-2.04 -0.61,-1.82 -0.49,-2.4 1.36,-2.38 -0.2,-1.17 -0.22,-3.61 1.45,-1.97 2.29,2.03 7.01,-1.91 8.02,2.31 1.41,2.29 3.54,-1.84 5.75,-1.47 1.68,-2.02 4.85,-2.71 6.51,-3.23 -0.22,-2.14 -1.12,-3.85 1.59,-4.65 -0.2,-2.28 -4.24,-3.86 -1.97,-6.79 0.18,-2.41 -4.07,0.3 -1.77,-2.02 2.77,-1.18 2.72,-4.62 1.41,-6.48 -0.21,-2.71 3.29,-1.57 3.61,-3.64 2.41,0.12 4.36,-0.55 4.66,-3.1 0.33,-2.07 -2.28,-4.7 -4.14,-3.18 -2.16,-1.91 1.5,-6.7 -2.23,-6.47 -2.06,-0.11 -3.88,3.63 -5.15,0.03 -0.32,-1.35 -0.05,-4.35 -2.03,-2.79 -1.29,0.05 -2.91,2.04 -2.96,-0.58 1.08,-0.8 1.65,-3.07 -0.35,-2.77 -1.09,1.35 -0.9,4.62 -3.13,2.61 -0.88,-1.42 -3.65,0.48 -4.06,-2.21 -1.01,-1.24 -3.05,-2.54 -4.54,-2.45 -1.62,0.35 -0.42,-3.16 -2.49,-3.09 -1.47,-0.17 -1.9,-4.94 -2.3,-1.85 0.35,2 -0.34,3.67 -2.39,2.1 -2.63,-1.51 -3.86,4.14 -5.82,1.03 -1.87,-1.04 -4.17,1.13 -5,-2 -2.26,0.34 -4.45,-1.48 -4.25,-4 -0.17,-0.32 -0.55,-0.4 -0.88,-0.38 z\",\n                        \"department-89\" : \"m 374.12,178.1 c -1.36,2.82 -5.36,0.91 -7.76,1.83 -2.91,0.12 -7.22,-0.23 -8.27,2.98 0.14,3.17 1.58,6.21 -2.22,8.02 -3.13,1.63 -1.03,2.94 1.17,4.04 2.28,2.02 1.91,5.48 4.92,6.98 0.09,2.23 1.57,5.13 -1.56,6.65 -2.34,1.36 -4.04,3.95 -2.14,6.31 -0.68,1.5 0.04,4.08 -2.76,4.29 -2.25,0.39 -7.34,0.64 -4.79,4.05 2.45,0.93 4.06,4.45 3.33,7.05 1.14,3.61 5.07,3.17 7.39,1.37 1.4,1.71 1.46,5.08 4.64,4.36 1.07,1.7 2.94,2.2 4.19,1.56 2.83,2.78 4.94,-2.42 8.04,-0.36 2.24,0.32 0.05,-5.91 2.11,-2.26 1.33,1.79 2.94,3.05 3.85,4.95 3.33,-1.09 4.42,4.4 7.1,3.73 1.63,0.4 3.4,2.47 3.61,-0.47 1.06,-2.78 3.75,-0.39 1.71,1.41 -0.27,3 5.9,-2.28 4.47,2.93 0.46,3.12 3.19,1.32 4.4,0.59 4.42,-0.6 -2.45,-5.06 1.49,-6.94 2.21,-1.57 -0.41,-5.47 2.78,-6.83 1.14,-2.73 3.9,-5.69 3.26,-8.58 1.88,-0.52 1.26,-1.92 0.64,-3.48 1.6,-1.09 4.66,-1.22 3.88,-4.34 0.07,-2.34 -0.26,-3.73 -2.7,-3.42 -3.53,-2.05 4.19,-4.69 -0.03,-5.12 -1.97,-0.1 -2.62,-5.1 -3.28,-1.27 -2.05,-2.67 -2.92,2.59 -5.45,0.23 -2.35,0.79 -5.27,0.01 -8.15,0.79 0.15,-1.59 0.88,-6.21 -1.65,-3.46 -2.36,-1.38 1.3,-2.55 -1.24,-3.58 -0.94,-2.75 -2.25,-5.79 -4.33,-7.09 0.87,-2.25 -1.27,-2.36 -1.7,-0.43 -3.07,1.65 -2.16,-4.29 -5.46,-2.45 0.07,-1.1 1.54,-2.74 1.12,-4.43 -0.2,-2.34 -3.48,-5.41 -5.2,-7.74 -2.07,-0.04 -3.97,0.46 -4.78,-1.75 -0.22,-0.05 -0.43,-0.1 -0.65,-0.14 z\",\n                        \"department-77\" : \"m 360.11,130.7 c -0.75,1.23 -0.27,2.29 -2.33,1.67 -1.38,-0.38 -1.84,2.1 -2.56,0.07 -2.14,0.21 -4.49,1.91 -6.24,0.1 -2.04,-1.53 -3.2,3.4 -5.16,0.88 -1.56,1.65 -2.68,-3.86 -4.86,-1.22 -1.42,0.6 -1.4,2.29 -1.08,2.9 -0.79,0.91 -3.3,2.12 -0.93,2.41 0.92,1.64 0.15,3.36 1.66,4.95 -0.21,1.86 -2.5,3.75 -0.77,5.03 -0.42,1.69 1.07,3.83 0.45,5.54 1.88,0.5 -0.47,2.18 -0.41,3.35 -1.82,0.99 1.36,3.93 -1.65,3.64 -0.82,0.84 0.31,2.38 -1.22,3.04 1.7,1.22 -0.11,2.87 -0.29,4.11 -0.83,2.76 -0.35,5.7 -0.38,8.61 1.13,0.77 2.32,2.24 0.22,2.19 -1.67,0.77 -3.86,1.83 -3.71,4.1 -3.26,-0.23 0.46,3.05 -0.39,4.73 1.93,0.89 5.35,1.9 4.16,4.93 0.05,1.63 -0.21,2.35 -1.8,2.26 -2.59,2.58 2.06,2.09 3.18,0.95 1.95,0.94 4.16,-0.38 5.89,1.16 1.74,-0.08 3.98,-1.65 3.26,-2.69 2.16,-0.61 3.3,-0.11 2.62,2.03 1.99,0.05 3.64,-2.23 5.85,-2.23 1.28,-2.5 4.18,-3.1 5.17,-5.95 -1.75,-1.86 -0.91,-4.39 0.11,-6.51 2.23,0.08 3.58,-0.87 5.81,-1.29 2.4,1.59 4.47,-0.91 6.89,0.03 1.85,0.05 2.21,-2.32 4.09,-1.22 1.02,-1.56 -1.94,-1.95 -0.46,-3.63 -1.01,-1.71 -0.67,-2.54 1.28,-3.16 -0.64,-1.19 -1.85,-3.14 0.59,-2.27 3.2,-0.16 -0.39,-3.09 2.44,-3.84 0.11,-1.36 2.11,-1.25 2.34,-2.32 -1.35,-1.35 -2.61,-1.35 -4.33,-0.87 -0.83,-1.72 0,-2.93 0.73,-4.28 -0.27,-1.41 0.18,-2.58 -1.57,-2.81 -0.08,-1.26 -2.46,0.08 -1.43,-1.87 0.29,-0.92 3.06,-1.11 0.77,-1.96 -2,-1.6 4.65,-0.07 2.85,-3.04 -0.62,0.26 -2.18,0.96 -1.62,-0.5 -2.19,-0.35 -3.93,-1.72 -3.63,-4.09 -1.91,1.44 -2.54,-0.3 -3.11,-1.76 -2.53,1.6 -2.02,-2.84 -4.2,-3.33 -1.26,-1.06 -2.94,-1.79 -1.15,-3.4 -0.57,-2.97 -1.82,-4.38 -5.07,-4.44 z\",\n                        \"department-10\" : \"m 415.76,157.34 c -2.6,0.51 -5.55,-0.05 -7.71,1.48 -2.64,-2.28 -2.21,2.93 -5.08,1.84 -1.93,0.67 -1.61,4.36 -4.3,3.88 -0.4,1.61 -1.36,1.64 -2.59,1.72 1.3,3.01 -1.42,4.79 -3.84,3.13 -2.09,-1.39 -6.82,1.14 -6.65,-2.55 -0.6,-0.93 -2.3,-0.55 -2.52,-2.29 -2.04,-2.28 -2.83,1.06 -4.5,1.77 -0.06,1.25 0.93,2.82 -1.41,3.08 -3.5,-1.29 1.33,2.83 -1.65,2.81 -1.9,0.54 0.78,2.64 -0.38,3.85 2.1,0.63 -0.62,5.56 2.52,3.51 3.16,-0.12 4.15,3.44 6.03,5.22 0.01,1.47 3.08,2.04 0.93,3.9 2.08,0.85 -3.12,4.07 0.15,3.27 2.29,-0.8 2.03,4.35 4.19,2.52 1.08,-0.14 0.3,-2.78 1.94,-1.13 0.93,0.76 -0.96,2.98 1.14,2.23 2.34,1.66 1.67,5.24 3.89,6.96 2.43,1.45 -2.11,1.84 0.59,3.02 0.73,-0.46 1.14,-2.22 1.92,-0.23 0.37,1.61 -1.44,4.62 1.62,3.35 1.95,0.01 2.99,-0.54 4.79,0.26 0.99,-3.03 2.57,1.82 4.01,-0.76 0.84,-1.92 1.99,-0.84 2.76,-0.15 -0.14,-1.03 0.29,-2.65 1.27,-1.4 -0.33,2.78 3.95,3.53 3.81,0.39 2.92,-0.59 5.93,0.14 8.85,-0.56 2.39,0.31 2.85,-0.77 1.49,-2.56 2.05,-2.2 4.43,-1.32 6.94,-0.84 2.63,-1.11 0.34,-3.51 -1.25,-4.11 2.37,-0.23 3.32,-3.91 6.03,-1.87 3.03,1.11 1.67,-2.97 2.47,-4.56 1.68,-1.76 -0.94,-2.47 -0.07,-3.99 1.1,-2.25 -0.53,-3.76 -1.25,-5.67 2.38,-2.25 -3.94,-1.43 -2.88,-4.17 -1.47,-0.37 -2.51,-0.25 -2.96,-1.8 0.24,-1.72 -4.18,-2.97 -1.75,-4.03 0.72,-2.19 1.43,-3.93 -1.16,-5.04 -2.33,-0.81 -3.68,3.05 -5.35,0.57 -2.15,0.43 -4.7,-0.92 -6.23,-2.52 -2.9,-1.25 -2.44,-3.78 -2.05,-6.39 -0.16,-1 -0.29,-2.51 -1.75,-2.14 z\",\n                        \"department-51\" : \"m 405.08,111.51 c -1.06,0.78 -0.74,4.64 -2.69,2.03 -2.26,-0.62 -3.69,-3.04 -5.85,-0.46 -0.76,1.47 -0.53,3.07 -2.6,1.59 -2.67,0.5 -5.66,1.55 -7.69,3.27 1.02,2.06 1.46,4.73 0.89,6.32 2.55,-0.42 1.18,3.01 3.85,2.11 0.48,4.28 -5.3,-0.05 -6.19,3.06 -0.39,1.65 2.79,4.09 -0.6,4.59 -2.26,3.23 5.49,0.01 3.06,3.78 -2.35,0.83 -2.21,3.44 -4.02,4.55 -0.04,2.3 -3.69,1.38 -3.38,4.24 -1.75,1.12 0.58,4.63 -2.54,3.99 -2.46,-0.16 -1.14,0.3 -0.32,1.22 0.08,0.89 -3.17,1.69 -1.26,2.59 2.53,0.21 3.88,3.9 1.46,5.7 0.25,2.2 1.1,2.12 2.94,1.45 1.92,0.52 2.98,4.27 5.46,4.81 -0.12,4.68 6.56,0.97 8.91,3.79 3.18,-0.68 -0.17,-4.93 3.46,-4.46 0.45,-2.04 3.42,-1.33 3.65,-3.97 0.75,-2.28 4.33,-0.39 4.38,-3.49 1.36,-0.34 2.79,1.39 3.81,-0.56 2.71,0.28 5.46,-1.6 7.64,0.42 0.89,2.81 -1.6,6.2 2.08,7.6 1.6,3.05 5.89,1.61 7.51,3.56 1.84,-1.76 4.32,-2.12 5.98,-0.45 1.91,-1.07 7.38,1.87 5.1,-2.02 -2.42,-2.79 6.05,-2.46 2.44,-5.4 -1.35,-0.11 -4.14,-0.27 -1.58,-1.69 1.66,-0.63 3.72,1.24 5.25,-0.9 2.3,1.31 5.6,-0.99 4.11,-3.45 -1.93,-1.13 -3.33,-3.27 -5.05,-4.35 0.2,-1.89 3.07,-2.43 1.04,-4.46 -0.24,-2.76 1.96,-3.93 4.51,-4.61 2.25,-1.35 -0.39,-2.44 -0.39,-3.09 2.85,-0.57 0.54,-4.33 -1.51,-2.09 2.09,-1.98 1.44,-5.68 -0.12,-8.2 -0.96,-1.63 -1.81,-3.48 0.73,-4.04 -0.24,-1.82 -2.4,-2.81 -3.5,-3.66 -2.15,0.23 -1.49,3.78 -3.82,1.54 -2.45,0 -5.77,-1.84 -7.92,0.23 -2.68,0.36 -2.07,-5.98 -5.47,-3.2 -2.64,0.89 -6.12,0.77 -7.24,-2.32 -2.8,0.56 -4.24,-2.36 -6.09,-4.01 -2.61,-1.4 -5.28,-1.58 -8.44,-1.57 z\",\n                        \"department-02\" : \"m 388.2,68.13 c -1.08,1.13 -2.82,3.24 -4.4,1.16 -2.84,-2.2 -4.67,3.68 -7.97,1.02 -2.67,-1.47 -4.82,2.26 -7.41,-0.08 -2.13,-0.29 -5.92,2.27 -2.52,2.96 -2.98,2.53 -3.74,6.36 -5.63,9.48 -1.75,0.96 2.24,2.4 -0.4,3.91 1.95,1.43 2.51,4.94 2.65,7.7 -1.5,0.24 -0.31,2.46 -1.01,3.2 2.8,2.14 0.67,5.53 0.21,7.42 1.3,1.39 -0.62,2.75 2.02,3.19 1.86,2.58 -4.01,-0.19 -2.57,2.99 0.21,2.78 -1.91,6.35 -4.84,5.03 -3.19,2.38 3.18,2.33 1.82,4.68 0.73,2 -0.93,3.6 1.68,4.15 1.16,1.34 2.5,-0.57 2.39,2.15 3.19,1.07 -5.03,3.79 0.04,3.92 2.54,0.03 3.91,4.01 2.15,5.73 2.04,1.28 3.84,3.72 5.3,5.32 1.97,-1.81 1.27,4.11 3.47,1.27 1.13,0.14 0.62,4.1 3.08,3.73 1.02,1.15 2.26,2.18 2.67,-0.16 1.3,-1.34 1.82,-3.4 3.99,-3.73 1.01,-2.49 2.46,-4.36 4.65,-6 0.1,-2.93 -6.07,0.28 -3.5,-3.33 4.06,-0.79 -1.61,-3.63 1.16,-5.63 1.74,-0.53 6.13,1.2 5.33,-1.72 -2.24,0.27 -1.72,-2.21 -3.92,-2.36 2.32,-2 -2.35,-5.73 0.53,-7.34 2.85,-0.42 5.37,-3.57 8.29,-1.65 -0.29,-1.73 3.19,-4.87 4.55,-2.85 1.43,0.76 4.63,3.46 4.24,0.06 0.75,-1.54 -0.52,-3.16 0.75,-4.21 -1.86,-2.09 0.18,-3.94 0.86,-5.41 -1.97,-0.87 0.95,-3.51 -1.67,-4.78 -1.57,-3.69 5.08,0.31 4.01,-3.96 1.21,-2.05 5.54,-3.68 5.14,-6.49 -2.5,-0.39 -0.05,-2.22 -0.82,-3.84 1.25,-2 2.5,-4.89 -0.05,-6.15 1.79,-3.26 -2.77,-4.61 -5.35,-3.57 -2.14,-1.09 -7,-0.34 -5.08,-4.21 -1.57,-0.94 -4.83,3.39 -5.36,0.08 -2.78,-0.3 -5.86,-1.9 -8.53,-1.67 z\",\n                        \"department-59\" : \"m 335.57,0.12 c -3.45,1.43 -6.99,2.74 -10.76,2.39 -2.72,1.29 -8.66,1.44 -9.11,3.85 2.44,2.79 3.25,6.62 4.77,9.94 0.43,4.77 5.56,3.66 8.58,4.42 2.32,1.45 -4.63,1.65 -1.51,3.98 2.44,0.67 -1.2,3.42 2.07,2.61 2.93,3.85 6.72,1.92 9.95,3.5 2.19,-0.65 4.1,-0.87 5.68,0.87 0.41,-1.85 2.1,-1.38 0.62,-3.01 2.05,-2.57 7.25,2.09 2.69,2.82 -1.83,1.68 0.07,3.54 -0.61,5.52 2.34,0.14 3.9,-1 3.93,1.59 2.5,-1.01 7,0.2 5.64,3.54 1.27,0.39 3.92,-0.75 2.32,1.89 -3.74,0.21 -4.27,4.12 -0.66,5.49 2.67,1.86 -0.52,2.17 0.31,4.28 2.66,0.03 5.42,1.44 5.6,3.59 -3.49,-0.01 -0.66,2 -1.8,3.32 -2.94,0.76 0.82,2.08 -1.93,3.52 1.19,2.22 -2.19,4.81 1.75,6.08 2.76,1.37 5.33,-1.11 8.08,0.5 2.78,-2.8 7.12,1.76 9.94,-1.66 1.88,-2.21 4.77,3.11 6.2,-0.72 3.06,-1.45 6.64,0.94 9.78,1.44 0.46,3.12 6.54,-3.53 4.81,1.34 0,2.28 5.16,2.43 7.07,2.12 1.13,-1.37 -0.83,-4.12 2.33,-4.63 2.68,-0.88 0.57,-5.07 -0.84,-5.54 -3.3,1 -0.12,-4.14 0.06,-5.58 2.39,-1.25 2.41,-3.76 -0.41,-4.14 -0.6,4.11 -2.68,-3.09 -5.06,-3.38 -1.96,-3.39 -6.66,2.37 -9.45,-1.06 -3.02,-1.09 -5.18,0.58 -6.36,2.66 -3.42,-1.36 -0.95,-6.36 -2.22,-9.19 -1.09,-3.5 -4.72,-3.12 -7.3,-3.15 1.15,-5.24 -5.66,2.5 -7.97,-1.03 -3.9,-1.63 -1.34,-6.5 -3.82,-9.41 1.83,-3.67 -3.12,-4.71 -3.84,-8.29 -2.91,-1.52 -7.12,1 -10.06,2.09 -0.33,4.97 -4.26,1.63 -6.9,0.96 -1.64,-3.04 -3.74,-6.42 -7.35,-5.98 -1.29,-2.74 -2.17,-6.28 -0.14,-8.73 -2.25,-2.77 -2.84,-5.71 -4.09,-8.81 z m 28.08,54.5 0.01,0.01 -0.01,-0.01 z\",\n                        \"department-62\" : \"m 313.33,5.46 c -4.94,0.63 -9.82,2.03 -14.3,4.19 -2.31,2.03 -4.44,4.39 -7.41,5.25 0.4,3 1.9,6.23 -0.01,9.07 -1.39,2.89 0.06,6.1 -0.08,9.15 0.12,1.92 1.85,2.89 0.02,4.03 0.23,3.04 -1.19,6.37 -0.33,9.17 2.74,1.63 4.65,4.95 7.93,2.3 3.81,-2.29 6.82,4.56 9.77,1.72 1.01,1.14 -1.99,2.68 0.88,2.9 2.1,1.36 5.3,1.26 4.69,4.15 0.88,1.54 2.94,0.71 3.92,1.37 1.81,-1.07 3.99,-1.33 5.74,-1.4 1.16,1.12 1.77,-0.42 1.57,-0.98 1.33,-0.36 1.77,3.47 2.74,0.75 1.51,-1.51 6.22,0.91 4.51,2.46 -2.54,0.07 -6.33,4.05 -3.27,5.63 1.73,2.15 1.55,-3.53 4.22,-2.43 1.09,-0.01 1.95,2.52 2.26,-0.06 2.83,-0.7 -0.14,2.46 2.59,2.02 1.28,-0.01 4.09,2 4.68,1.23 -1.22,-1.42 0.73,-3.47 2.15,-1.5 3.8,-0.04 -3.11,6.76 1.65,4.07 2.16,-2.39 3.64,-1.2 4.04,1.36 2.23,-1.54 4.16,-0.79 6.67,-1.69 1.7,0.68 3.25,0.84 2.92,-1.52 2.01,-0.93 -0.86,-3.26 1.69,-4.17 -3.08,-1.56 3.06,-1.88 0.19,-3.89 0.22,-1.46 4.13,-1.5 1.13,-2.69 -0.34,-2.78 -7.17,-0.62 -4.12,-4.27 0.8,-2.23 -5.36,-4.49 -3.06,-6.23 1.03,-0.79 5.01,-2.22 2.55,-3.36 -2.01,2.19 -1.83,-1.12 -1.83,-2.28 -1.69,-2.27 -3.83,-0.79 -5.87,-1.11 1.15,-3.86 -4.88,0.62 -3.97,-3.05 1.99,-1.08 -1.84,-2.64 0.61,-4.04 1.4,-1.06 3.51,-1.23 1.17,-2.9 -1.51,-1.43 -4.89,0 -2.23,1.47 -1.85,-0.59 -1.52,3.3 -3.1,0.89 -1.9,-1.78 -4.14,1.01 -6.2,-0.92 -1.66,1.28 -2.66,-1.12 -4.47,0.08 -1.69,-1.59 -4.29,-2.33 -5.63,-3.51 2,-1.35 -3.65,-3.85 0.56,-4.64 3.01,-2.03 -3.3,-1.35 -4.61,-1.78 -3.99,-1.02 -3.27,-5.59 -5.16,-8.44 -1.11,-2.34 -2,-6.31 -5.19,-6.38 z\",\n                        \"department-08\" : \"m 440.07,60.88 c -1.81,2.16 -4.2,3.74 -5.88,5.87 0.42,3.23 -0.62,6.85 -4.6,6.61 -2.61,1.4 -5.4,3.78 -8.53,2.23 -2.57,-0.31 -6.87,-3.07 -8.21,0.49 -1.09,2.27 2.57,2.05 1.26,4.47 -0.9,1.91 -2.03,4.96 -1.4,6.42 2.68,1.57 -1.58,4.47 -2.94,5.51 -2.03,1.01 -1.06,5.37 -4.36,3.7 -3.54,0.85 2.51,3.79 -0.29,5.51 1.51,0.87 0.58,2.56 -0.65,3.44 -0.53,1.71 1.98,3.37 -0.03,4.16 0.01,4.05 5.16,0.95 6.98,2.81 3.3,0.55 4.18,4.27 7.37,4.91 1.8,0.07 3.13,4.15 6,2.59 2.07,-0.07 4.96,-2.29 5.47,0.74 0.38,2.71 2.61,2.41 4.09,0.8 2.57,1.18 5.4,0.24 7.56,1.64 0.31,-2.7 3.11,-2.45 4.13,-0.68 1.4,-1.13 3.89,-1.64 4.64,-3.09 -2.15,-1.79 -0.62,-5.71 2.04,-5.88 0.24,-1.22 -1.21,-1.95 0.54,-2.89 0.24,-2.32 -1.77,-3.52 -2.04,-5.72 1.86,-0.63 0.83,-2.98 2.1,-3.97 -0.49,-2.87 2.16,-0.91 2.97,0.03 2.69,-1.68 3.87,3.39 6.05,0.41 0.28,-2.43 4.57,-1.6 3.3,-4.01 -0.97,-0.75 -4.08,1.55 -3.04,-1.15 1.75,-1.77 -2.34,-4.79 -3.97,-3 -1.63,-0.09 -2.52,-1.03 -3.35,-1.82 -2.04,-0.2 -1.16,-4.65 -4.28,-3.56 -2.09,-0.97 -3.75,-3.12 -6.22,-1.46 -1.91,0.12 -3.56,-0.3 -2.44,-2.42 -2.07,-2.68 2.55,-6.08 -1.42,-8.03 -4.13,-0.79 1.05,-4.77 -0.06,-7.24 0.2,-2.35 3.01,-3.4 2.16,-5.95 -1.43,-0.71 -2.14,0.48 -2.93,-1.47 z\",\n                        \"department-55\" : \"m 466.47,97.47 c -1.56,1.83 -3.96,2.91 -5.49,4.69 -1.73,-0.62 -3.36,-2.29 -5.13,-1.66 -3.57,-3.74 -2.07,3.57 -4.83,4.43 1.86,1.88 2.97,4.89 1.69,6.85 0.61,2.43 -4.88,3.04 -2.52,6.02 2.38,3.31 -6.19,2.92 -2.28,6.6 -4.21,1.78 0.99,5.9 0.55,8.83 -0.1,1.57 -1.24,3.24 0.94,2.92 1.75,1.64 -1.92,3.15 0.48,3.93 0.25,3.59 -6.19,2.07 -5.18,5.89 1.08,1.97 -0.23,3.47 -1.14,4.72 1.38,2.47 5.49,3.27 5.15,6.61 0.23,1.76 -1.52,5.98 0.78,6.29 1.9,-2.79 1.64,2.85 3.89,1.37 2.31,2.74 5.53,4.67 8.96,5.55 2.27,1.43 4.35,3.02 5.92,5.23 2.69,2.59 4.85,-1.27 7.77,-0.65 1.95,-0.75 1.99,-2.61 4.21,-1.43 3.14,0.06 4.5,-5.18 1.4,-6.29 -3.87,-2.46 6.35,-3.69 1.46,-4.42 -1.47,-2.21 0.74,-5.44 -1.65,-7.38 0.52,-3.01 3.49,-5.5 2.03,-8.71 1.74,-1.41 -2.37,-3.07 0.56,-4.22 1.59,-0.69 4.2,-1.75 1.55,-3.18 -1.32,-1.7 3.57,-5.15 -0.4,-5.57 1.51,-1.93 -0.24,-3.53 -1.91,-2.99 -2.09,-1.69 1.38,-6.16 -1.64,-5.8 -0.54,-2.63 -0.07,-4.79 1.7,-6.78 -2.19,-0.64 -1.63,-2.43 -1.84,-4.23 -1.39,-1.72 -2.89,-6.03 -5.8,-3.74 -2.4,-0.05 -3.98,1.51 -4.61,0.54 -0.96,-0.51 -0.02,-0.62 -1.25,-1.61 0.46,-1.47 -0.85,-2.06 -0.1,-2.7 -0.17,-2.17 1.28,-0.21 0.11,-1.81 -0.06,-2.69 -0.83,-5.88 -3.37,-7.28 z\",\n                        \"department-54\" : \"m 483.26,101.56 c -1.75,2.39 -6.72,-0.76 -7.03,2.38 -2.62,-1.44 -7.36,1.12 -6.17,4.43 0.74,4.88 5.26,0.58 8.1,1.48 2.96,1.01 3.57,5.58 4.1,7.38 3.12,1.31 -1.93,3.72 -0.52,5.95 -0.87,2.35 2.62,1.44 1.12,3.56 0.09,2.56 -0.17,4.4 2.68,4.39 0.95,1.44 -0.85,2.5 1.32,3.1 0.08,2.43 -2.65,4.77 0.06,6.73 -1.86,1.53 -5.42,2.68 -2.94,4.96 -0.32,3.14 0.42,6.53 -2.29,8.78 0.3,2.26 1.85,3.57 0.92,5.93 -0.21,2.42 4.1,2.54 0.74,3.73 -2.75,0.52 -2.79,3.37 -0.09,3.76 0.33,2.01 0.1,5.32 3,2.95 5.39,-1.2 1.3,5.69 5.29,7.31 -0.38,3.55 5.14,2.54 6.11,0.87 0.8,0.45 2.56,2.67 3.02,-0.32 0.4,-3.41 3.98,0.7 5.58,-2.34 2.07,-1.7 2.85,1.78 5.26,0.83 2.41,0.96 5.78,-1.97 8.72,-1.33 -0.11,-2.51 2.69,-4.44 3.49,-1.11 1.87,2.12 5.7,3.02 8.46,2.03 1.11,-2.51 3,0.55 4.43,-2.06 1.4,-3.3 8.67,-2.58 5.72,-7.33 -1.28,-1.26 -2.12,-2.52 -2.84,-3.74 -2.12,0.62 -3.12,-2.23 -5.19,-0.6 -3.43,-1.47 -6.2,-3.18 -9.79,-3.87 -0.04,-2.22 -3.9,-2.63 -5.43,-4.68 -2.97,-0.67 -5.52,-2.5 -8.38,-2.2 -1.35,-2.37 -4.49,-3.45 -2.73,-6.5 1.93,-3.82 -4.9,-3.21 -7.26,-3.68 -1.33,-1.55 -2.62,-2.04 -4.55,-3.04 0.53,-3.54 -7.57,-4.55 -4.54,-8.33 3.1,1.07 1.22,-3.19 3.24,-3.88 -1.85,-1.34 -2.22,-2.92 0.05,-3.88 0.24,-1.64 -0.87,-4.88 -1.53,-5.53 -2.45,-0.97 -0.9,-3.36 -2.63,-4.79 -0.94,-2.62 2.2,-6.94 -2.47,-7.44 -1.91,-1.02 -2.61,-3.63 -5,-3.91 z\",\n                        \"department-57\" : \"m 503.4,104.95 c -3.5,0.04 -5.26,4.42 -8.98,3.78 -1.89,-0.4 -2.66,-4.83 -4.84,-2.71 4.17,0.85 -0.69,5.81 2.03,8.08 0.95,1.12 1.47,1.12 0.16,1.85 2.72,1.47 3.97,5.18 2.78,8.12 -3.16,1.23 2.9,3.39 -0.76,4.28 0.68,2.17 0.05,3.22 -2.29,2.94 -2.22,3.61 4.41,3.78 4.47,6.79 0.32,2.5 4.34,1.92 4.61,4.09 2.63,0.22 7.9,-0.18 8.05,3.09 -1.51,2.09 -1.02,3.76 1.16,4.61 -0.07,2.41 2.71,3.1 4.16,2.64 2.31,1.86 5.93,1.31 7.61,4.01 3.25,1.89 6.08,3.97 9.68,5.11 1.62,1.34 4.4,1.49 5.37,1.07 1.15,1.63 4.32,0.61 3.99,3.06 2.04,2.55 6.14,5.26 8.81,1.93 1.69,-2.04 5.6,-6.38 2.03,-8.09 -0.63,-2.26 4.24,-5.88 0.71,-8.42 -2.28,-1.08 -5.5,-4.67 -6.48,-0.31 -1.32,2.17 -2.68,0.9 -2.94,-0.66 -3.5,-1.06 4.07,-2.79 -0.09,-3.01 -2.21,-1.11 -5.81,-2.3 -5.04,-4.57 1.13,0.06 2.3,-2.29 3.7,-2.54 0.74,-1.99 0.82,-7.28 3.45,-6.47 0.09,2.59 1.3,4.57 3.75,4.84 3.24,0.28 5.22,3.37 8.36,2.73 2.95,-1.6 5.64,0.34 8.22,0.72 1.73,-1.99 3.39,-5.75 3.26,-7.88 -3.15,-1.08 -5.79,-2.77 -6.37,-6.36 -2.47,-1.1 -4.98,-1.26 -6.78,1.45 -3.22,2.32 -7.72,1.44 -11.17,-0.38 -0.64,3.79 -3.96,0.62 -3.06,-1.79 -1.61,-2.56 -5.77,-3.52 -8.36,-2.33 2.56,4.39 -5.29,4.06 -5.55,1.2 0.78,-2.3 -2.24,-2.11 -2.29,-4.46 -1.24,-2.84 -6.04,-4.38 -3.87,-7.88 -2.52,-2.26 -3.82,-6.64 -8.27,-6.11 -4.17,1.53 -5.59,-3.04 -9.23,-2.45 z\",\n                        \"department-67\" : \"m 544.44,133.33 c -2.55,1.2 -1.86,5.34 -3.54,7.57 -2.79,-0.45 -3.98,5.32 -0.38,4.93 0.87,1.03 5.75,1.83 2.14,2.53 -1.78,1.5 1.91,2.4 0.8,3.44 3.07,0.38 2.8,-5.61 5.59,-2.68 1.27,0.5 2.75,1.06 3.36,2.31 3.21,1.88 -0.45,5.47 -1.04,7.67 0.4,1.75 3.37,1.12 1.47,2.94 -0.9,2.92 -2.34,6.34 -5.54,7.14 -1.52,-0.27 -6.22,0.31 -2.38,1.08 1.92,0.81 -2.32,1.02 0.26,2.27 -0.26,2.11 -1.22,5.21 -0.98,7.34 -1.59,2.69 3.49,1.95 4.06,2.53 1.12,2.38 5.28,1.06 5.74,4.01 2.04,-0.84 -0.91,2.57 1.9,1.72 3.01,0.58 6.32,2.58 6.2,5.56 1.67,1.12 3.39,4.4 5.2,1.29 0.87,-3.2 3.75,-5.3 4.22,-8.66 0.15,-2.7 3.74,-3.64 2.22,-6.76 -0.27,-3.01 1.17,-6.05 2.5,-8.7 1.39,-2.29 -0.7,-5.94 1.56,-8.31 1.96,-2.54 5.71,-3.61 6.25,-7.2 0.97,-1.38 2.5,-0.59 3.09,-2.39 3.71,-1.2 3.61,-5.01 5.11,-7.95 0.24,-2.03 5.28,-4.42 1.59,-4.91 -3.51,-0.14 -6.34,-2.15 -9.28,-3.81 -2.69,-1.53 -5.76,0.29 -8.43,-1.4 -2.54,1.19 -6.23,-0.86 -8.22,1.79 -0.69,2.41 -2.45,7.76 -5.69,4.83 -2.43,-2.51 -5.76,1.35 -8.43,-0.25 -1.12,-1.59 -3.01,-2.5 -4.57,-2.09 -2.06,-1.13 -5.18,-2.13 -4.56,-5.04 0.33,-0.23 0.21,-0.84 -0.21,-0.81 z\",\n                        \"department-88\" : \"m 543.7,170.72 c -3.31,1.38 -6.33,2.9 -8.64,5.73 -1.29,0.67 -1.97,-1.71 -3,0.67 -1.48,2.53 -4.46,-1.14 -6.53,-0.37 -3.07,0.39 -1.42,-5.29 -4.45,-2.86 -1.72,1.06 0.93,4.33 -2.07,2.2 -1.78,0.74 -4.05,0.76 -5.72,1.72 -1.57,1.83 -1.69,-1.56 -3.59,-0.23 -1.77,0.14 -2.17,-3.2 -3.48,-0.63 -1.05,2.66 -5.79,-1 -5.2,1.97 -0.89,2.75 -2.59,1.71 -3.28,0.37 -0.1,2.4 -3.59,0.58 -5.16,1.87 -1.7,-0.72 0.13,-3.65 -2.1,-3.15 -3.28,-1.76 1.05,-7.74 -3.76,-6.9 -1.91,1.57 -3.93,0.03 -4.94,2.56 -1.62,0.54 -3.6,-1.45 -4.31,0.83 -0.98,2.28 -4.98,-0.54 -5.76,2.63 -1.49,-1.12 -4.76,0.24 -4.44,1.84 2.72,-0.76 -1.5,4.16 1.48,2.83 2.58,-2.8 4.27,0.92 5.47,2.86 0.99,2.29 2.44,-0.84 3.66,1.62 0.19,1.46 -0.14,2.91 2.21,2.73 1.05,0.81 2.84,3.4 0.16,2.99 -1.16,2.1 -0.8,4.9 -2.74,6.18 0.01,1.72 3.18,0.08 3.76,2.45 2.71,0.96 3.73,3.61 3.02,6.15 1.1,2.31 3.31,-2.88 3.5,0.86 1.43,3.89 3.56,-4.88 4.18,-0.76 -1.87,1.59 0.22,2.12 0.99,0.26 2.44,-0.34 2.63,-4.83 6.01,-3.79 2.78,-2.08 1.94,3.16 3.04,3.81 1.67,1.1 3.1,2.11 4.88,0.16 2.8,0.02 6.14,-1.3 7.82,1.99 0.57,3.89 4.42,1.42 5.62,-0.82 2.89,-1.35 3.54,3.7 6.5,4.05 2.19,0.9 3.46,2.55 5.11,3.85 2.21,-0.74 5.19,-1.96 3.36,-4.73 1.56,-1.66 0.35,-4.44 1.89,-6.56 0.98,-1.7 3.7,-2.62 3.88,-5.25 1.52,-1.58 3,-3.43 1.6,-5.14 1.49,-2.96 3.07,-5.84 4.54,-8.75 0.95,-1.35 2.26,-2.99 0.28,-4.02 -1.87,1.29 -5.67,-0.97 -2.92,-2.78 -2.18,-1.78 1.85,-5.54 -0.21,-7.07 -0.57,-0.2 -0.01,-1.38 -0.66,-1.38 z\",\n                        \"department-52\" : \"m 446.82,158.96 c -1.69,0.91 -3.13,-0.45 -4.82,1.2 -1.12,-0.83 -4.57,-0.69 -3.54,0.9 2.8,-1.2 4.68,3.32 1.31,3.37 -2.26,0.28 -2.04,1.83 -1.08,2.97 1.74,4.14 -5.82,-1.2 -5.38,2.99 -0.5,1.16 -1.78,3.02 -1.22,3.88 2.37,0.94 2.16,4.62 5.26,4.46 -0.97,2.99 5.41,1.68 2.86,4.7 2.62,1.68 0.37,4.97 1.38,6.77 1.02,1.49 -1.35,3.52 -0.54,5.29 0.17,4.44 -5.3,-1.1 -6.39,2.93 -2.48,1.02 2.31,2.62 0.41,4.4 1.49,1.78 5.61,0.36 3.83,3.87 2.37,-0.59 4.42,1.86 1.79,3.34 0.65,2.75 2.75,-2.78 3.64,0.5 0.65,2.55 3.6,4.14 3.33,6.7 -1.31,0.89 -4.49,2.9 -1.32,2.84 1.47,1.51 -1.34,5.58 1.92,4.46 1.63,-2.16 2.42,0.63 2.94,1.7 1.79,1.42 3.81,1.4 4.82,-0.8 0.79,0.32 -0.13,2.53 1.75,2.49 0.96,1.39 3.18,1.14 1.74,3.15 0.89,2.65 3.78,-3.01 5.24,-0.13 1.75,-1.89 1.15,-6.06 4.57,-5.11 1.28,-1.4 3.49,1.3 4.33,-1.4 1.59,-1.92 1.63,2.72 3.95,1.22 2.18,-0.12 2.71,-1.17 2.09,-3.01 0.93,-1.34 1.22,-2.86 -0.38,-3.56 -0.59,-2.58 1.37,-2.98 3.06,-3.3 -0.71,-3.1 2.46,-1.42 3.57,-1.95 -0.16,-2.01 1.36,-3.53 2.99,-3.36 -0.29,-2.42 -2.17,-4.47 -4.19,-2.78 -1.26,-1.95 0.41,-5.52 -3.04,-6.35 -1,-1.34 -2.58,-2.41 -4.02,-2.13 -1.13,-1.43 1.6,-1.92 0.97,-3.42 1.1,-1.79 0.88,-4.33 2.89,-4.52 -0.46,-2.76 -4.86,-1.71 -3.68,-4.79 -1.34,-2.4 -3.06,0.93 -3.95,-2 -1.16,-2.97 -3.69,-4.38 -6.2,-2.11 -0.59,-1.91 1.12,-3.24 -1.32,-3.92 1.85,-0.41 3.47,-2.52 0.93,-3.26 -0.38,-1.87 -1.16,-2.02 -2.78,-2.58 -1.73,-3.16 -6.41,-1.82 -8.19,-4.99 -2.15,-0.46 -2.78,-2.81 -5.04,-3 -0.12,-2.21 -1.01,-1.61 -2.26,-0.66 -2.79,-0.35 1.41,-5.66 -2.22,-4.93 z\",\n                        \"department-70\" : \"m 499.88,202.89 c -2.63,0.3 -4.89,2.11 -5.97,4.12 -0.94,0.91 -3.97,2.32 -2.12,-0.03 0.13,-1.92 -1.88,-0.34 -1.76,0.64 -1.02,1.34 -0.98,3.88 -3.06,3.55 -0.55,1.66 -1.23,4.46 -3.43,2.67 -1.42,0.7 -1.13,3.58 -3.32,2.54 -2.26,2.15 1.83,3.96 -0.2,6.21 1.24,3.12 -4.32,4.77 -5.32,1.82 -0.58,-0.92 -2.73,2.87 -4.37,1.01 -1.22,1.14 -4.49,-0.07 -3.8,2.59 -2.11,1.09 0.1,3.94 1.06,1.41 2.21,-1.57 4.14,3.91 2.96,5.69 -0.66,2.07 -2.95,2.72 -4.23,3.24 1.21,1.06 -1.76,2.05 0.86,1.83 2.25,0.29 -0.16,6.1 3.34,4.24 1.79,2.16 -1.88,5.33 1.36,5.71 1.44,2.16 3.91,4.38 6.57,2.71 2.27,-0.86 4.59,0.16 6.71,-1.75 2.79,-1.14 5.72,-4.18 8.47,-2.76 2.5,-0.09 4.56,-1.97 5.85,-3.76 1.83,0.46 2.61,-0.36 2.86,-1.77 2.63,-0.46 5.27,-1.6 5.54,-4.7 2.29,-1.29 5.83,-3.32 7.88,-0.71 1.23,-0.95 5.65,1.5 4.64,-1.81 -0.18,-2.44 4.57,1.54 3.74,-2.01 -0.12,-2.68 3.06,0.48 4.42,0.6 2.85,1.79 2.94,-3.34 1.04,-4.6 1.68,-2.26 -0.76,-5 -0.83,-7.47 -0.79,-2.86 4.43,-4.21 1.79,-6.71 -2.08,-2.66 -6.24,-2.87 -7.71,-6.14 -2.5,-2.92 -3.93,3.02 -6.8,2.39 -1.62,-1.8 -2.57,-4.88 -5.66,-4.53 -2.96,-0.21 -6.08,3.12 -8.15,0.41 -2.4,-0.51 0.23,-4.03 -2.37,-4.63 z\",\n                        \"department-21\" : \"m 430.26,202.39 c -2.98,-0.36 -2.28,3.5 -2.89,4.09 -3.52,0.85 -7.72,-0.28 -10.91,1.13 0.12,1.91 0.16,3.7 -1.78,4.39 -1.43,2.57 2.23,2.59 2.78,2.96 0.78,2.82 0.56,7.26 -3.23,7.04 -0.11,2.16 1.99,3.62 -1,3.9 0.72,2.94 -2.41,6.52 -3.86,9.44 -2.44,2.06 0.03,6.34 -3.4,7.86 -0.01,1.52 1.54,3.57 2.08,4.44 2.08,-1.74 -0.71,3.97 0.05,5.35 0.76,2.06 4.84,0.48 4.74,3.88 -1.32,3.42 1.69,6.38 5.01,6.9 1.3,1.42 0.65,2.78 2.51,1.23 2.03,0.22 0.19,2.75 2.63,2.77 2.7,1.39 5.44,1.37 6.15,4.62 1.34,1.99 4.7,1.98 4.57,4.24 2.88,-1.34 6.42,-1.22 9.16,-3.33 2.31,-0.8 6.07,-0.86 8.14,-1.17 2.91,2.58 6.21,-1.12 9.25,-0.89 2.24,-0.61 1.63,-2.43 0.75,-3.34 1.62,-2.89 6.07,-2.65 6.78,-6.47 1.41,-2.73 2.01,-5.54 2.73,-8.48 0.14,-1.92 1.96,-2.74 -0.25,-3.51 0.43,-2.24 1.54,-5.31 -1.69,-5.06 -0.44,-1.89 -1.3,-4.9 -2.86,-4.55 0.22,-3.37 5.14,-1.91 4.96,-5.91 0.76,-2.96 -2.67,-7.08 -4.51,-2.82 -2.22,-0.25 -3.54,-1.43 -5.3,0.74 -2.39,1.02 -0.78,-3.81 -3.53,-3.94 -1.77,-1.18 -0.62,-3.19 -2.39,-0.9 -3.64,2.12 -4.58,-4.93 -7.28,-2.21 -2.89,-0.45 0.78,-4.91 -3.01,-5.07 0.9,-1.64 5.08,-3.23 1.85,-5.04 -1.35,-1.96 -2.46,-6.59 -4.91,-3.77 -2.57,-0.44 2.15,-3.15 -0.94,-3.86 -1.96,-0.39 -2.06,-0.68 -1.78,-2.38 -2.58,-1.59 -5.78,-1.16 -8.59,-2.28 l 0,0 z\",\n                        \"department-25\" : \"m 524.75,232.72 c 0.6,3.47 -5.06,1.11 -4.41,4.65 -1.59,0.18 -4.21,0.28 -5.1,0.07 -2.83,-2.93 -7.31,0.27 -8.34,3.45 -1.29,2.51 -4.23,1.18 -5.23,3.59 -1.44,0.48 -2.41,0.42 -2.71,1.78 -2.17,0.44 -3.6,3.16 -6.39,2.02 -3.22,-0.12 -5.72,2.6 -8.74,3.57 -3.03,0.32 -3.9,3.34 -1.23,5.03 3.1,1.51 4.18,4.87 1.57,7.47 0.1,1.6 -1.31,3.03 -1.29,4.53 1.26,1.41 2.75,-3.16 3.11,0.11 0.9,2.49 4.55,-0.29 4.63,2.13 3.8,0.81 1.81,4.9 4.19,7.22 0.91,2.91 5.17,1.46 6.56,4.25 3.53,2.93 0.14,6.33 -2.84,7.54 -1.4,1.89 0.42,3.62 -1.39,5.19 -0.75,2.81 3.69,5.73 3.76,1.72 2.39,-2.03 4.37,-4.58 7.12,-6.18 2.26,-1.76 5.45,-2.91 6.57,-5.72 -0.74,-2.93 1.48,-6 -0.08,-9.15 0.11,-4.19 6.86,-3.29 9.42,-5.9 2.72,-1.98 2.28,-6.41 5.92,-7.6 2.76,-2.22 4.53,-5.44 7.39,-7.56 -0.61,-3.67 3.46,-4.22 4.78,-6.73 -0.15,-3.82 -4.97,0.07 -7.07,-1.46 0.7,-1.9 3.21,-4.13 1.45,-6.71 -0.76,-1.48 -0.67,-2.19 0.61,-2.92 -0.66,-3.47 -5.22,-3.74 -7.78,-2.34 -1.29,-1.12 -3.19,-0.98 -4.5,-2.06 z\",\n                        \"department-2B\" : \"m 591.47,517.82 c -3.8,0.59 0.96,5.58 -2.34,7.11 0.41,2.37 -1.56,4.36 0.27,6.51 0.91,2.65 0.16,5.25 -1.21,7.52 -1.7,1.4 -2.28,-3.59 -4.88,-2.82 -2.72,-0.68 -5.78,0.73 -6.51,3.55 -0.96,3.57 -5.53,1.85 -7.86,3.52 -1.89,1.06 -3.87,1.71 -4.61,3.96 -1.27,0.02 -3.62,-0.97 -3.17,1.52 -0.83,1.46 -4.01,3 -1.97,4.89 -0.74,1.76 -0.34,3.49 -2.71,3.49 -0.21,1.44 -2.22,2.88 0.58,2.71 2.53,1.11 5.12,2.12 7.69,3.24 1.52,0.72 3.8,-1.59 3.24,1.35 1.14,3.16 4.05,4.22 6.73,6.16 3.36,0.28 1.41,5.5 4.55,6.47 1.71,1.96 0.79,6.36 4.83,5.7 0.18,2.3 0.59,4.8 0.39,7.09 3.14,0.81 -1.89,5.25 2.18,4.96 1.78,0.52 2.82,0.98 4.16,-0.94 3.62,-1.36 0.49,-5.59 2.73,-7.46 1.3,-1.69 2.64,-3.75 1.77,-5.45 1.89,-0.05 4.02,-2.43 3.98,-4.66 -3.67,0.56 1.98,-2.55 0.4,-4.61 0.47,-4.5 -0.6,-8.88 -1.01,-13.3 -0.14,-3.75 0.34,-7.67 -0.54,-11.31 -2.55,0.11 -3.67,-4.24 -3.35,-6.45 -0.43,-3.66 1.56,-7.1 1.67,-10.65 -0.63,-3.67 -1.07,-7.33 -1.55,-11 -0.76,-1.12 -2.26,-1.12 -3.47,-1.1 z\",\n                        \"department-2A\" : \"m 553.92,559.49 c -0.76,0.55 -0.1,3.85 1.13,1.96 1.53,-0.6 3.16,1.13 1.04,1.7 0.18,1.06 4.56,1.95 3.28,3.75 -1.7,0.83 -4.95,1.13 -5.71,2.43 1.47,0.55 1.4,3.03 1,3.92 1.78,0.17 -1.16,0.99 0.63,1.63 0.63,1.3 2.89,1.78 3.93,2.6 2.01,-0.69 1.72,2.93 3.31,3.71 -1.37,1.54 -4.97,1.78 -3.83,4.58 -1,1.17 -4.84,0.3 -2.28,2.46 0.58,1.07 -0.7,3.38 1.57,2.3 2.41,0.81 4.08,-2.02 6.12,-1.18 1.97,1.46 -0.22,3.37 0.14,5 -2.75,0 1.8,1.85 -1.02,2.54 -3.01,0.03 -0.83,3.83 -3.9,3.99 -1.68,0.23 1.57,0.7 1.54,1.65 1.76,-0.59 3.68,-1.62 3.39,1.11 1.89,0.2 4.59,0.62 6.1,1.72 -1.54,1.28 -2.78,3.54 -5.39,3.37 -1.08,2.57 -0.44,5.65 2.26,6.65 0.47,1.48 3.07,1.49 4.07,2.79 2.06,-0.18 4.37,2.72 5.98,1.13 0.61,-0.03 -0.33,2.68 1.6,1.9 1.78,0.68 -1.94,3.73 1.39,3.43 1.92,2.48 5.07,2.16 5.35,-1.31 -0.28,-1.01 -2.21,1.4 -1.26,-0.4 -1.13,-2.4 4.15,-2.95 2.21,-5.91 -0.37,-2.45 4.29,-3.07 3.59,-5.68 -1.11,-1.47 -3.9,2.07 -2.85,-0.95 0.15,-2.4 3.01,0.56 2.82,-1.99 2.59,-0.18 0.07,-3.36 2.35,-4.13 0.15,-3.28 0.23,-6.85 -0.14,-10.22 -1.57,-1.53 -3.07,3.01 -4.83,0.98 -2.75,0.63 -3.37,-1.87 -1.99,-3.78 0.22,-1.35 -2.56,-0.55 -1.08,-2.17 -0.85,-2.32 1.32,-7.41 -2.67,-6.39 -2.45,-0.98 -0.65,-4.44 -2.73,-5.65 -2.85,-1.24 -1.36,-6.19 -4.82,-6.53 -1.64,-1.96 -4.77,-2 -5.5,-4.65 -1.21,-1.02 -0.51,-3.66 -2.85,-2.55 -2.75,-0.46 -5.3,-1.82 -7.74,-2.91 -1.28,-0.57 -2.84,-0.72 -4.21,-0.9 z\",\n                        \"department-66\" : \"m 350.33,540.74 c -2.96,0.38 -4.31,2.8 -5.6,5.05 -3.53,0.71 -7.2,-0.41 -10.77,-0.57 -2.35,1.71 -6.82,-1.75 -7.77,1.56 0.2,2.13 1.85,4.41 0.81,6.44 -1.56,1.89 -4.34,1.3 -5.68,3.47 -1.35,1.08 -2.18,1.99 -3.65,0.52 -2.39,0.04 -5.76,-0.02 -7.25,1.69 -0.99,2.71 -4.23,1.36 -5.45,3.77 -3.15,-0.36 -6.54,2.28 -5.14,5.7 2.43,0.62 5.15,0.58 6.86,2.76 2.19,0.36 3.92,1.1 3.79,3.75 0.25,2.56 3.21,3.71 5.32,2.52 1.96,-1.04 2.2,-4.45 4.97,-3.96 2.58,-0.15 5.03,-1.38 7.33,0.7 1.62,1.14 4.07,1.03 4.94,3.03 1.26,1.86 4.32,3.14 5.35,0.56 1.73,0.75 6.82,2.34 4.14,-1.14 0.71,-2.52 4.05,-2.95 6.3,-2.62 1.56,-1.63 3.48,-3.18 5.81,-2.8 0.99,-2.12 3.1,-0.12 4.88,-0.88 1.63,1.07 2.93,3.67 5.54,2.51 3.2,-0.39 -1.16,-3.71 -1.44,-5.38 -2.92,-1.29 -2.81,-4.63 -3.06,-7.37 0.78,-2.2 -2.64,-2.22 -1.43,-4.12 2.29,1.97 1.16,-2.93 1.55,-4.24 0.36,-2.22 -0.89,-3.89 -3.17,-3.82 -1.26,-1.48 0.41,-4.01 -2.35,-4.33 -1.89,-0.44 -3.32,-1.87 -4.85,-2.81 z\",\n                        \"department-01\" : \"m 445.43,302.59 c -1.44,3.02 -1.75,6.16 -3.18,9.18 -0.78,3.16 -1.85,6.34 -2.91,9.5 -0.74,1.88 -1.31,3.79 -0.09,5.37 -0.73,2.05 -2.97,3.67 -1.95,5.9 -1.67,2.26 0.87,5.73 -1.18,7.83 1.88,0.01 3.46,1.61 3.99,2.62 2.16,-1.53 3.89,1.88 4.07,3.41 0.92,1.26 -0.03,3.77 2.46,2.77 2.89,0.46 5.98,-0.89 8.76,0.39 1.35,2.24 3.89,2.93 5.42,0.31 1.18,-1.7 1.66,-5.65 4.09,-5.27 2.02,1.24 3.75,2.88 3.08,4.98 1.95,2.32 3.67,4.97 5.93,6.73 1.33,1.23 0.17,0.8 -0.53,0.61 0.61,1.8 3.11,2.49 3.34,4.83 0.97,0.84 1.38,-1.89 2.87,-1.59 -0.3,-1.63 1.67,-2.68 0.77,-4.34 3.81,0.96 3.71,-3.34 3.75,-5.95 0.89,-3.44 1.98,-6.82 2.27,-10.31 -1.07,-2.3 -1.36,-4.85 -1.09,-7.47 0.3,-1.5 0.9,-3.58 2.27,-1.4 2.48,1.01 0.53,-3.51 3.59,-2.7 2.71,-0.13 3.55,-3.26 1.37,-4.78 1.32,-2.8 5.95,-1.73 6.82,-4.09 -1.66,-3.05 4.61,-7.07 -0.2,-9.19 -2.62,-2.47 -4.13,2.14 -6.1,3.38 -0.9,2.11 -2.5,3.05 -3.65,4.53 -1.99,2.56 -5.47,0.79 -8.11,1.25 0.84,-3.04 -2.73,-3.43 -3.76,-4.72 -2.02,1.65 -3.16,4.49 -6.19,4.68 -2.73,0.46 -1.81,-2.02 -1.56,-3.51 -1.42,0.56 -1.69,-0.36 -2.26,-1.49 -0.06,1.35 -0.96,2.99 -0.83,0.6 -1.4,-1.01 -1.59,-2.59 -1.58,-3.72 -1.32,-0.93 -3.93,-1.28 -2.29,-3.07 -1.76,-1.43 -5.48,-1.31 -5.42,-4.72 -2.13,-0.62 -4.08,0.9 -6.23,1.42 -1.93,-0.36 -3.28,-2.81 -5.2,-1.46 0.07,-0.1 -0.3,-0.68 -0.54,-0.51 z\",\n                        \"department-39\" : \"m 472.04,250.64 c -2.16,1.79 -1.36,5.28 -2.94,7.45 0.09,2.73 -2.31,4.73 -3.53,7.05 -3.03,-0.47 -5.35,3.74 -3.19,4.71 -2.06,0.47 -3.73,5.36 -0.52,4.7 1.33,0.76 0.69,4.17 3.48,3.21 1.68,-0.66 1.23,2.18 3.27,2.09 2.46,1.35 -0.2,2.67 -1.91,2.03 -2.06,-0.51 -4.46,1.94 -1.6,2.77 2.43,1.33 -1.33,3.03 1.08,4.08 0.89,2.1 1.19,3.82 2.13,6.05 -2.12,0.95 -0.43,3.73 -3.06,3.72 -1.86,2.41 0.74,4.14 2.3,5.69 -0.13,2.93 -6.18,0.76 -4.86,4.67 0.41,1.69 3.59,1.72 2.72,3.84 0.3,1.7 2.14,1.5 2.39,1.42 0.16,2.17 2.98,0.53 1.91,2.98 -0.9,3.13 3.87,1.82 4.85,0.12 1.46,-0.55 2.58,-4.59 4.24,-1.99 2.29,0.06 2.46,3.2 3.09,3.77 2.93,-0.04 7.08,0.91 8.5,-2.49 2.02,-1.97 3.8,-4.92 6.21,-7.02 2.27,-1.54 0.39,-4.74 2.54,-6.4 1.4,-1.49 3.11,-3.84 -0.06,-3.89 -2.06,-1.17 -3.31,-3.74 -0.87,-5.29 0.4,-1.53 -1.44,-3.09 0.76,-4.19 2.73,-1.36 6.13,-4.43 2.26,-6.76 -1.6,-2.02 -3.91,-2.65 -5.92,-3.04 -1.27,-2 -1.73,-3.98 -2.6,-5.89 -0.82,-0.25 1.22,-2.33 -1.1,-2.27 -1.84,-1.29 -4.2,-1.14 -5.91,-2.76 -0.62,-1.82 -0.09,-1.2 -1.26,-0.03 -2.05,2.08 -3.47,-2.98 -0.74,-2.02 0.76,-1.1 -0.4,-3.36 1.4,-4.52 2.37,-3.1 -2.64,-4.46 -3.59,-6.62 -0.37,-1.97 -2.06,-4.51 -3.97,-2.34 -2.56,0.88 -4.13,-1.12 -5.49,-2.82 z\",\n                        \"department-68\" : \"m 549.43,183.82 c -2.25,1 -2.94,3.73 -3.79,5.81 -0.9,2.15 -3.75,4.26 -2.11,6.74 -0.93,2.22 -2.92,4.25 -3.93,6.64 -2.43,1.18 -3.51,3.7 -3.19,6.38 0.13,1.69 -1.55,2.36 -0.44,3.95 0.77,2.64 -4.62,1.97 -2.6,4.52 2.13,1.91 5.37,1.9 7.52,3.96 0.67,1.81 1.6,4.32 0.06,6.09 -1.78,1.43 -0.08,4 1.85,2.88 1.83,0.98 2.47,3.66 3.32,5.16 -0.72,2.04 1.34,2.1 2.39,2.44 -0.32,1.38 -1.23,4 1.33,3.32 1.03,1.33 2.07,1.29 3.35,0.31 2.56,-0.08 5.85,0.35 7.17,-2.31 -0.73,-1.24 -0.96,-2.18 0.78,-1.43 2.66,0.8 0.35,-2.42 2.52,-2.38 0.82,-0.85 -1.99,-1.47 0.03,-2.05 1.88,-1.02 4.21,-2.78 2.05,-4.99 -1.7,-1.63 -3.7,-3.88 -1.43,-6.04 0.91,-2.16 -1.41,-4.57 0.56,-6.71 0.67,-2 0.44,-4 1.78,-5.83 -0.03,-2.09 3.45,-4.94 0.43,-6.95 -3.06,-1.46 0.88,-6.62 -2.19,-7 -1.65,-0.56 -1.53,-2.31 -3.25,-2.51 -0.17,-1.94 -0.33,-3.93 -2.69,-4.35 -2.09,-1.1 -4.78,-1.23 -5.71,-3.58 0.07,-2.15 -2.48,-1.52 -3.79,-2.06 z\",\n                        \"department-90\" : \"m 532.37,216.22 c -0.55,0.23 -0.49,0.97 -0.95,1.33 -0.62,0.8 -1.51,1.36 -1.95,2.3 -0.77,0.99 -0.8,2.48 -0.08,3.5 -0.03,0.67 0.48,1.24 0.41,1.93 -0.01,0.83 -0.07,1.76 0.62,2.36 0.29,0.29 0.48,0.66 0.1,0.97 -0.14,0.38 -0.57,0.43 -0.76,0.72 -0.05,0.5 0.53,0.78 0.56,1.29 0.18,0.47 0.52,0.85 0.75,1.28 0.26,0.15 0.87,0.53 0.4,0.81 -0.7,0.47 -0.05,1.72 0.76,1.5 0.78,0.02 1.57,-0.19 2.27,-0.46 0.8,0.18 1.42,0.82 1.45,1.64 0.04,0.86 1.41,0.54 1.43,1.42 0.01,0.47 0.26,1.11 -0.01,1.5 -0.5,0.35 -0.45,-0.64 -0.86,-0.74 -0.5,-0.2 -0.94,0.42 -0.64,0.85 0.2,0.34 -0.18,0.93 0.34,1.04 0.43,0.61 0.84,1.44 0.71,2.19 -0.36,0.5 0.42,0.64 0.75,0.45 0.83,-0.18 1.47,-0.8 2.26,-1.07 0.62,-0.6 -0.22,-1.42 -0.38,-2.05 -0.12,-0.36 -0.45,-1.06 0.17,-1.13 0.42,-0.08 0.81,-0.3 1.15,-0.48 0.96,0.2 1.82,0.91 2.86,0.71 1.1,-0.11 2.47,-0.62 2.45,-1.94 0.16,-1 -0.69,-1.62 -1.41,-2.13 -0.16,-0.46 -0.02,-1.09 -0.52,-1.4 -0.45,-0.55 -0.43,-1.71 -1.38,-1.73 -0.72,-0.12 -1.46,0.05 -1.95,0.59 -0.4,0.24 -0.3,-0.53 -0.6,-0.62 -0.31,-0.79 -0.34,-1.73 0.1,-2.47 0.16,-0.36 0.01,-1.1 0.63,-0.98 0.41,0.01 0.38,-0.37 0.4,-0.64 0.61,-1 -0.15,-2.14 -0.3,-3.13 0.23,-0.47 0.38,-1.05 -0.1,-1.44 -0.8,-1.1 -2.3,-1.18 -3.29,-2.06 -0.38,-0.36 -0.84,-0.58 -1.33,-0.6 -0.84,-0.67 -2.13,-0.38 -2.92,-1.15 -0.45,-0.63 -0.74,-1.4 -0.95,-2.13 -0.05,-0.04 -0.12,-0.05 -0.18,-0.04 z\"\n                    }\n                }\n            }\n        }\n    );\n\n    return Mapael;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/usa_states.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires jQuery and Mapael\n *\n * Map of USA by state\n *\n * @source http://the55.net/_11/sketch/us_map\n *\n * @deprecated : this map will be definitely moved to 'mapael-maps' repository starting from the next major release (3.0.0).\n * You can use instead https://github.com/neveldo/mapael-maps/blob/master/usa/usa_state.js\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('jquery-mapael'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'mapael'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, jQuery.mapael);\n    }\n}(function ($, Mapael) {\n\n    \"use strict\";\n\n    $.extend(true, Mapael,\n        {\n            maps :{\n                usa_states : {\n                    width : 959,\n                    height : 593,\n                    latLngToGrid: function(lat, lng, phi1, phi2, midLng, scale) {\n                        var pi =Math.PI;\n                        var midLat = (phi1 + phi2) / 2;\n                        var n, tmp1, tmp2, tmp3, x, y, p;\n\n                        n = (Math.sin(phi1 / 180 * pi) + Math.sin(phi2 / 180 * pi)) / 2;\n                        tmp1 = Math.sqrt(Math.cos(phi1 / 180 * pi)) + 2 * n * Math.sin(phi1 / 180 * pi);\n                        tmp2 = scale * Math.pow(tmp1 - 2 * n * Math.sin(midLat / 180 * pi),0.5) / n;\n                        tmp3 = n * (lng - midLng);\n                        p = scale * Math.pow(tmp1 - 2 * n * Math.sin(lat / 180 * pi),0.5) / n;\n                        x = p * Math.sin(tmp3 / 180 * pi);\n                        y = tmp2 - p * Math.cos(tmp3 / 180 * pi);\n\n                        return([x,y]);\n                    },\n                    getCoords : function (lat, lon) {\n                        var coords = {},\n                            xOffset,\n                            yOffset,\n                            scaleX,\n                            scaleY,\n                            phi1,\n                            phi2,\n                            midLng,\n                            scale;\n                        if(lat > 51) { // alaska\n                            phi1= 15;\n                            phi2= 105;\n                            midLng = -134;\n                            scale = 530;\n                            coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale);\n                            xOffset = 190;\n                            yOffset = 543;\n                            scaleX= 1;\n                            scaleY= -1;\n\n                        } else if (lon < -140) { // hawaii\n                            phi1= 0;\n                            phi2= 26;\n                            midLng = -166;\n                            scale = 1280;\n                            coords = this.latLngToGrid(lat, lon, phi1, phi2, midLng, scale);\n                            xOffset = 115;\n                            yOffset = 723;\n                            scaleX= 1;\n                            scaleY= -1;\n                        } else {\n                            xOffset = -17;\n                            yOffset = -22;\n                            scaleX = 10.05;\n                            scaleY = 6.26;\n\n                            coords[0] = 50.0 + 124.03149777329222 * ((1.9694462586094064-(lat* Math.PI / 180)) * Math.sin(0.6010514667026994 * (lon + 96) * Math.PI / 180));\n                            coords[1] = 50.0 + 1.6155950752393982 * 124.03149777329222 * 0.02613325650382181 - 1.6155950752393982* 124.03149777329222 * (1.3236744353715044- (1.9694462586094064-(lat* Math.PI / 180)) * Math.cos(0.6010514667026994 * (lon + 96) * Math.PI / 180));\n                        }\n                        return {x : (coords[0] * scaleX + xOffset), y : (coords[1] * scaleY + yOffset)};\n                    },\n                    elems : {\n                        \"HI\" : \"m 233.08751,519.30948 1.93993,-3.55655 2.26326,-0.32332 0.32332,0.8083 -2.1016,3.07157 -2.42491,0 z m 10.18466,-3.71821 6.14313,2.58657 2.10159,-0.32332 1.61661,-3.87987 -0.64664,-3.39488 -4.2032,-0.48498 -4.04153,1.77827 -0.96996,3.71821 z m 30.71563,10.023 3.7182,5.49647 2.42492,-0.32332 1.13163,-0.48498 1.45495,1.29329 3.71821,-0.16166 0.96997,-1.45495 -2.90991,-1.77827 -1.93993,-3.71822 -2.1016,-3.55654 -5.8198,2.9099 -0.64664,1.77828 z m 20.20765,8.89137 1.29329,-1.93994 4.68817,0.96996 0.64665,-0.48498 6.14312,0.64664 -0.32332,1.2933 -2.58658,1.45494 -4.36485,-0.32332 -5.49648,-1.6166 z m 5.33482,5.17315 1.93994,3.87987 3.07155,-1.13163 0.32333,-1.61662 -1.61661,-2.10159 -3.71821,-0.32332 0,1.29329 z m 6.95143,-1.13163 2.26326,-2.9099 4.68817,2.42492 4.36485,1.13163 4.36486,2.74824 0,1.93993 -3.55654,1.77828 -4.84985,0.96996 -2.42491,-1.45495 -4.84984,-6.62811 z m 16.65111,15.51947 1.61661,-1.29328 3.39489,1.61662 7.59807,3.55654 3.39489,2.10159 1.6166,2.42492 1.93994,4.36485 4.04153,2.58658 -0.32332,1.2933 -3.87987,3.23322 -4.20319,1.45495 -1.45495,-0.64664 -3.07157,1.77826 -2.42491,3.23323 -2.26326,2.9099 -1.77828,-0.16166 -3.55654,-2.58658 -0.32332,-4.52651 0.64664,-2.42492 -1.61661,-5.65814 -2.1016,-1.77828 -0.16166,-2.58658 2.26326,-0.96996 2.1016,-3.07156 0.48498,-0.96997 -1.61661,-1.77828 -0.32332,-2.1016 z\",\n                        \"AK\" : \"m 158.07671,453.67502 -0.32332,85.35713 1.6166,0.96996 3.07157,0.16166 1.45494,-1.13162 2.58658,0 0.16167,2.9099 6.95143,6.78977 0.48499,2.58658 3.39488,-1.93994 0.64665,-0.16166 0.32332,-3.07156 1.45494,-1.61661 1.13164,-0.16166 1.93993,-1.45496 3.07156,2.1016 0.64665,2.90991 1.93993,1.13162 1.13163,2.42492 3.87988,1.77827 3.39488,5.98147 2.74823,3.87986 2.26326,2.74825 1.45496,3.7182 5.01149,1.77828 5.17317,2.10159 0.96996,4.36486 0.48498,3.07156 -0.96996,3.39489 -1.77828,2.26325 -1.61661,-0.8083 -1.45495,-3.07157 -2.74824,-1.45494 -1.77827,-1.13164 -0.80831,0.80831 1.45495,2.74825 0.16166,3.7182 -1.13163,0.48498 -1.93993,-1.93993 -2.10159,-1.29329 0.48498,1.61661 1.29328,1.77828 -0.8083,0.8083 c 0,0 -0.8083,-0.32332 -1.29328,-0.96997 -0.485,-0.64664 -2.1016,-3.39488 -2.1016,-3.39488 l -0.96997,-2.26326 c 0,0 -0.32332,1.29329 -0.96997,0.96996 -0.64665,-0.32332 -1.29329,-1.45494 -1.29329,-1.45494 l 1.77827,-1.93994 -1.45495,-1.45495 0,-5.0115 -0.8083,0 -0.8083,3.39488 -1.13164,0.485 -0.96996,-3.71822 -0.64665,-3.71821 -0.80831,-0.48498 0.32333,5.65815 0,1.13162 -1.45496,-1.29328 -3.55654,-5.98147 -2.1016,-0.48498 -0.64664,-3.71821 -1.61661,-2.9099 -1.61662,-1.13164 0,-2.26325 2.1016,-1.29329 -0.48498,-0.32332 -2.58658,0.64664 -3.39489,-2.42491 -2.58658,-2.90991 -4.84983,-2.58658 -4.04154,-2.58658 1.2933,-3.23322 0,-1.61661 -1.77828,1.61661 -2.9099,1.13163 -3.71821,-1.13163 -5.65815,-2.42491 -5.49647,0 -0.64664,0.48498 -6.46645,-3.87988 -2.1016,-0.32332 -2.74824,-5.8198 -3.55655,0.32332 -3.55655,1.45495 0.48499,4.52652 1.13162,-2.9099 0.96998,0.32332 -1.45496,4.36485 3.23322,-2.74824 0.64665,1.61661 -3.87987,4.36485 -1.29329,-0.32332 -0.48498,-1.93994 -1.29329,-0.8083 -1.29329,1.13163 -2.74824,-1.77827 -3.07157,2.1016 -1.77826,2.10159 -3.39489,2.1016 -4.68818,-0.16167 -0.48498,-2.10159 3.7182,-0.64665 0,-1.29328 -2.26326,-0.64666 0.96998,-2.42491 2.26325,-3.87987 0,-1.77827 0.16166,-0.80831 4.36486,-2.26326 0.96996,1.29329 2.74825,0 -1.29329,-2.58657 -3.71822,-0.32333 -5.01149,2.74824 -2.42492,3.39488 -1.77827,2.58659 -1.13163,2.26326 -4.20319,1.45494 -3.07157,2.58658 -0.323321,1.61662 2.263257,0.96997 0.808313,2.10158 -2.748249,3.23323 -6.466439,4.2032 -7.759747,4.20319 -2.101597,1.13162 -5.334818,1.13164 -5.334826,2.26325 1.778275,1.29329 -1.454954,1.45495 -0.484982,1.13163 -2.748238,-0.96997 -3.23322,0.16166 -0.808312,2.26326 -0.969963,0 0.323321,-2.42492 -3.556551,1.2933 -2.909899,0.96996 -3.394886,-1.29329 -2.909901,1.93993 -3.233224,0 -2.101597,1.2933 -1.616612,0.8083 -2.101595,-0.32332 -2.58658,-1.13163 -2.263257,0.64665 -0.969967,0.96996 -1.616613,-1.13162 0,-1.93994 3.071564,-1.29329 6.304787,0.64665 4.364853,-1.61662 2.101596,-2.10159 2.909902,-0.64665 1.778273,-0.80831 2.748241,0.16166 1.616612,1.2933 0.969963,-0.32332 2.263257,-2.74824 3.07157,-0.96998 3.39488,-0.64664 1.293294,-0.32332 0.646642,0.48498 0.808312,0 1.293284,-3.71821 4.041533,-1.45494 1.939936,-3.71821 2.263259,-4.52652 1.616615,-1.45495 0.323321,-2.58658 -1.616615,1.29329 -3.394893,0.64665 -0.646642,-2.42492 -1.293284,-0.32332 -0.969973,0.96996 -0.16166,2.90991 -1.454955,-0.16167 -1.454944,-5.8198 -1.293294,1.29328 -1.131624,-0.48498 -0.32332,-1.93993 -4.041533,0.16166 -2.101596,1.13163 -2.586578,-0.32332 1.454944,-1.45495 0.484981,-2.58658 -0.646641,-1.93994 1.454954,-0.96996 1.293284,-0.16166 -0.646642,-1.77828 0,-4.36485 -0.969963,-0.96997 -0.808312,1.45495 -6.143123,0 -1.454951,-1.29329 -0.646645,-3.87986 -2.101596,-3.55656 0,-0.96996 2.101596,-0.80831 0.161661,-2.1016 1.131628,-1.13162 -0.808305,-0.48498 -1.29329,0.48498 -1.131628,-2.74824 0.969967,-5.01151 4.526514,-3.23321 2.586575,-1.61662 1.939936,-3.7182 2.748249,-1.2933 2.586578,1.13164 0.323321,2.42492 2.424917,-0.32334 3.23322,-2.42491 1.616615,0.64665 0.969962,0.64664 1.616615,0 2.263259,-1.29329 0.808313,-4.36486 c 0,0 0.323321,-2.90989 0.969963,-3.39488 0.646642,-0.48498 0.969963,-0.96996 0.969963,-0.96996 l -1.131623,-1.93994 -2.58658,0.80831 -3.23323,0.8083 -1.939936,-0.48498 -3.556541,-1.77828 -5.011495,-0.16166 -3.556551,-3.7182 0.484981,-3.87987 0.646652,-2.42492 -2.101596,-1.77827 -1.939938,-3.71822 0.484983,-0.8083 6.789771,-0.48498 2.101596,0 0.969963,0.96996 0.646652,0 -0.16166,-1.61661 3.879862,-0.64664 2.586577,0.32332 1.454955,1.13163 -1.454955,2.1016 -0.484981,1.45494 2.748249,1.61662 5.011497,1.77827 1.778276,-0.96996 -2.263257,-4.36485 -0.969974,-3.23323 0.969974,-0.80831 -3.394891,-1.93993 -0.484983,-1.13164 0.484983,-1.6166 -0.808304,-3.87987 -2.909909,-4.68818 -2.424918,-4.20319 2.909909,-1.93994 3.233222,0 1.778276,0.64665 4.203192,-0.16166 3.718205,-3.55654 1.131633,-3.07157 3.718212,-2.42492 1.616604,0.96997 2.748239,-0.64665 3.718209,-2.1016 1.13164,-0.16166 0.96996,0.80832 4.52651,-0.16167 2.74824,-3.07156 1.13163,0 3.55655,2.42491 1.93993,2.1016 -0.48498,1.13163 0.64664,1.13163 1.61662,-1.61661 3.87987,0.32332 0.32332,3.7182 1.93994,1.45496 7.11309,0.64664 6.30479,4.20319 1.45494,-0.96996 5.17317,2.58658 2.10159,-0.64664 1.93994,-0.80832 4.84983,1.93994 4.36486,2.9099 z m -115.102797,28.93736 2.101596,5.33482 -0.161662,0.96997 -2.909902,-0.32333 -1.778273,-4.04153 -1.778273,-1.45494 -2.424919,0 -0.16166,-2.58659 1.778273,-2.42492 1.131629,2.42492 1.45495,1.45495 2.748241,0.64665 z m -2.58658,33.46387 3.718209,0.80831 3.718207,0.96996 0.808307,0.96998 -1.616612,3.7182 -3.071564,-0.16166 -3.394885,-3.55654 -0.161662,-2.74825 z m -20.692636,-14.06452 1.13163,2.58657 1.131628,1.61662 -1.131628,0.8083 -2.101597,-3.07156 0,-1.93993 0.969967,0 z m -13.7412027,73.07087 3.3948853,-2.26326 3.3948854,-0.96997 2.58658,0.32332 0.484983,1.61661 1.939935,0.48499 1.939934,-1.93993 -0.323322,-1.61661 2.748241,-0.64665 2.909902,2.58658 -1.131629,1.77827 -4.364852,1.13163 -2.748242,-0.48498 -3.718207,-1.13163 -4.3648533,1.45495 -1.616612,0.32332 -1.1316284,-0.64664 z m 48.9833487,-4.52651 1.616612,1.93993 2.101593,-1.61661 -1.454948,-1.2933 -2.263257,0.96998 z m 2.909902,3.07155 1.131624,-2.26325 2.101597,0.32332 -0.808303,1.93993 -2.424918,0 z m 23.602535,-1.93993 1.454954,1.77827 0.969974,-1.13162 -0.808313,-1.93994 -1.616615,1.29329 z m 8.72971,-12.44791 1.131633,5.8198 2.909899,0.80831 5.011495,-2.90991 4.364853,-2.58658 -1.6166,-2.42491 0.48498,-2.42492 -2.1016,1.29329 -2.909898,-0.80831 1.616605,-1.13162 1.939933,0.8083 3.87987,-1.77828 0.48499,-1.45494 -2.42492,-0.80831 0.8083,-1.93994 -2.74824,1.93994 -4.688172,3.55655 -4.849834,2.9099 -1.293294,1.13163 z m 42.35524,-19.88433 2.42492,-1.45495 -0.96997,-1.77828 -1.77827,0.96997 0.32332,2.26326 z\",\n                        \"FL\" : \"m 759.8167,439.1428 2.26566,7.3186 3.7297,9.74226 5.33479,9.3763 3.71819,6.30476 4.84982,5.49646 4.04151,3.71819 1.6166,2.90989 -1.13162,1.29328 -0.8083,1.29328 2.90988,7.43639 2.90989,2.90988 2.58657,5.3348 3.55653,5.81978 4.52649,8.24468 1.29329,7.59804 0.48498,11.96288 0.64664,1.77826 -0.32332,3.39487 -2.42491,1.29329 0.32332,1.93992 -0.64664,1.93993 0.32332,2.4249 0.48498,1.93993 -2.74822,3.23321 -3.07155,1.45494 -3.87985,0.16166 -1.45495,1.61661 -2.4249,0.96996 -1.29329,-0.48498 -1.13162,-0.96996 -0.32332,-2.90989 -0.80831,-3.39487 -3.39487,-5.17314 -3.55653,-2.26324 -3.87985,-0.32332 -0.8083,1.29328 -3.07155,-4.36483 -0.64664,-3.55653 -2.58657,-4.04151 -1.77826,-1.13163 -1.61661,2.10159 -1.77826,-0.32332 -2.10159,-5.01148 -2.90989,-3.87985 -2.90989,-5.33479 -2.58656,-3.07155 -3.55653,-3.71819 2.10158,-2.42491 3.23321,-5.49646 -0.16166,-1.6166 -4.52649,-0.96996 -1.61661,0.64664 0.32333,0.64664 2.58656,0.96996 -1.45494,4.5265 -0.8083,0.48498 -1.77827,-4.04151 -1.29328,-4.84982 -0.32332,-2.74823 1.45494,-4.68815 0,-9.53797 -3.07155,-3.71819 -1.29328,-3.07155 -5.17314,-1.29328 -1.93992,-0.64664 -1.61661,-2.58657 -3.39487,-1.61661 -1.13162,-3.39487 -2.74823,-0.96996 -2.42491,-3.71819 -4.20317,-1.45494 -2.90989,-1.45495 -2.58656,0 -4.04152,0.80831 -0.16166,1.93992 0.80831,0.96996 -0.48499,1.13163 -3.07154,-0.16166 -3.71819,3.55653 -3.55654,1.93992 -3.87985,0 -3.23321,1.29329 -0.32332,-2.74823 -1.6166,-1.93993 -2.90989,-1.13162 -1.6166,-1.45495 -8.08303,-3.87985 -7.59804,-1.77826 -4.36483,0.64664 -5.98144,0.48498 -5.98144,2.10159 -3.47924,0.61296 -0.23792,-8.04975 -2.58657,-1.93992 -1.77827,-1.77827 0.32332,-3.07156 10.18462,-1.29328 25.5424,-2.90989 6.78975,-0.64664 5.436,0.28027 2.58657,3.87986 1.45494,1.45494 8.09816,0.51522 10.81975,-0.64664 21.51239,-1.29329 5.44572,-0.67437 5.10758,0.20451 0.42683,2.90989 2.233,0.8083 0.23494,-4.63 -1.52822,-4.17295 1.3084,-1.43983 5.55463,0.45475 5.17314,0.32332 z m 12.54541,132.40508 2.42492,-0.64664 1.29328,-0.24249 1.45496,-2.34409 2.34408,-1.61661 1.29329,0.48499 1.69744,0.32332 0.40415,1.05079 -3.4757,1.21246 -4.2032,1.45495 -2.34408,1.21246 -0.88914,-0.88914 z m 13.4987,-5.01149 1.21246,1.0508 2.74824,-2.10159 5.33481,-4.20319 3.7182,-3.87987 2.50575,-6.6281 0.96997,-1.69744 0.16166,-3.39488 -0.72748,0.48498 -0.96996,2.82907 -1.45496,4.60733 -3.23322,5.254 -4.36484,4.20318 -3.39488,1.93993 -2.50575,1.53578 z\",\n                        \"NH\" : \"m 880.79902,142.42476 0.869,-1.0765 1.09022,-3.29102 -2.54308,-0.91347 -0.48499,-3.07156 -3.87985,-1.13162 -0.32332,-2.74824 -7.27475,-23.44082 -4.60142,-14.542988 -0.89708,-0.0051 -0.64664,1.616605 -0.64664,-0.484981 -0.96997,-0.969963 -1.45494,1.939925 -0.0485,5.032054 0.31165,5.667218 1.93992,2.74824 0,4.04152 -3.7182,5.06278 -2.58657,1.13164 0,1.13162 1.13163,1.77827 0,8.56802 -0.80831,9.21467 -0.16166,4.84982 0.96997,1.2933 -0.16166,4.52649 -0.48499,1.77828 0.96881,0.70922 16.78767,-4.42455 2.17487,-0.60245 1.84357,-2.77333 3.60523,-1.61312 z\",\n                        \"MI\" : \"M581.61931,82.059006 L 583.4483,80.001402 L 585.62022,79.201221 L 590.99286,75.314624 L 593.27908,74.743065 L 593.73634,75.200319 L 588.59232,80.344339 L 585.27728,82.287628 L 583.21967,83.202124 L 581.61931,82.059006 z M 667.79369,114.18719 L 668.44033,116.69293 L 671.67355,116.85459 L 672.96684,115.64213 C 672.96684,115.64213 672.88601,114.18719 672.56269,114.02552 C 672.23936,113.86386 670.94608,112.16642 670.94608,112.16642 L 668.76366,112.40891 L 667.14704,112.57057 L 666.82372,113.7022 L 667.79369,114.18719 z M 567.49209,111.21318 L 568.20837,110.63278 L 570.9566,109.82447 L 574.51313,107.56123 L 574.51313,106.59126 L 575.15978,105.94462 L 581.14121,104.97466 L 583.56612,103.03473 L 587.93095,100.93315 L 588.09261,99.639864 L 590.03254,96.729975 L 591.8108,95.921673 L 593.10409,94.143408 L 595.36733,91.880161 L 599.73217,89.455254 L 604.42032,88.970273 L 605.55194,90.101896 L 605.22862,91.071859 L 601.51043,92.041822 L 600.05549,95.113371 L 597.79224,95.921673 L 597.30726,98.34658 L 594.88235,101.57979 L 594.55903,104.16636 L 595.36733,104.65134 L 596.3373,103.51972 L 599.89383,100.60983 L 601.18711,101.90311 L 603.45036,101.90311 L 606.68357,102.87307 L 608.13851,104.0047 L 609.59345,107.07625 L 612.34168,109.82447 L 616.22153,109.66281 L 617.67648,108.69285 L 619.29308,109.98613 L 620.90969,110.47112 L 622.20297,109.66281 L 623.33459,109.66281 L 624.9512,108.69285 L 628.99271,105.13632 L 632.38758,104.0047 L 639.01566,103.68138 L 643.54215,101.74145 L 646.12872,100.44817 L 647.58367,100.60983 L 647.58367,106.26794 L 648.06865,106.59126 L 650.97853,107.39957 L 652.91846,106.91458 L 659.06156,105.29798 L 660.19318,104.16636 L 661.64813,104.65134 L 661.64813,111.60274 L 664.88134,114.67429 L 666.17462,115.32093 L 667.4679,116.29089 L 666.17462,116.61421 L 665.36632,116.29089 L 661.64813,115.80591 L 659.54654,116.45255 L 657.28329,116.29089 L 654.05008,117.74584 L 652.27182,117.74584 L 646.45204,116.45255 L 641.27891,116.61421 L 639.33898,119.20078 L 632.38758,119.84742 L 629.96267,120.65572 L 628.83105,123.72727 L 627.53777,124.8589 L 627.05279,124.69724 L 625.59784,123.08063 L 621.07135,125.50554 L 620.42471,125.50554 L 619.29308,123.88893 L 618.48478,124.05059 L 616.54486,128.41543 L 615.57489,132.45694 L 612.39377,139.45774 L 611.21701,138.42347 L 609.84527,137.39215 L 607.90449,127.10413 L 604.36001,125.73408 L 602.30743,123.44785 L 590.18707,120.70437 L 587.3318,119.67473 L 579.10138,117.50199 L 571.21139,116.35887 L 567.49209,111.21318 z,M697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5 C 674.5,166.5 671.9,165.1 672.1,164.4 C 672.3,163.8 672.6,159.4 672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2z\",\n                        \"VT\" : \"m 844.48416,154.05791 0.3167,-5.34563 -2.89071,-10.78417 -0.64664,-0.32332 -2.9099,-1.29329 0.8083,-2.90989 -0.8083,-2.10159 -2.70005,-4.63998 0.96997,-3.87986 -0.80831,-5.17315 -2.42491,-6.46644 -0.80557,-4.92251 26.41936,-6.73182 0.3087,5.52221 1.91626,2.74223 0,4.04152 -3.70715,5.05799 -2.58657,1.14267 -0.011,1.12057 1.30997,1.51912 -0.31093,8.09797 -0.60943,9.25886 -0.22795,5.55694 0.96996,1.29329 -0.16166,4.57069 -0.48498,1.68989 1.01418,0.72716 -7.43755,1.50671 -4.50174,0.72383 z\",\n                        \"ME\" : \"m 922.83976,78.830719 1.93993,2.101586 2.26325,3.718191 0,1.939926 -2.10159,4.688153 -1.93993,0.646642 -3.39487,3.071549 -4.84981,5.496454 c 0,0 -0.64664,0 -1.29328,0 -0.64664,0 -0.96997,-2.101584 -0.96997,-2.101584 l -1.77826,0.16166 -0.96996,1.454944 -2.42491,1.45495 -0.96996,1.45494 1.6166,1.45494 -0.48498,0.64665 -0.48498,2.74822 -1.93993,-0.16166 0,-1.6166 -0.32332,-1.29329 -1.45494,0.32333 -1.77827,-3.23321 -2.10158,1.29328 1.29328,1.45494 0.32332,1.13163 -0.8083,1.29328 0.32332,3.07155 0.16166,1.6166 -1.6166,2.58657 -2.90989,0.48498 -0.32332,2.90989 -5.3348,3.07155 -1.29328,0.48498 -1.61661,-1.45494 -3.07155,3.55653 0.96997,3.23321 -1.45495,1.29328 -0.16166,4.36483 -1.12328,6.25936 -2.46225,-1.15595 -0.48499,-3.07156 -3.87985,-1.13163 -0.32332,-2.74824 -7.27475,-23.44082 -4.69858,-14.639742 1.42054,-0.118165 1.51379,0.409899 0,-2.586568 1.3083,-4.496456 2.58657,-4.688153 1.45495,-4.041512 -1.93993,-2.424907 0,-5.981437 0.8083,-0.969963 0.80831,-2.748228 -0.16166,-1.454944 -0.16167,-4.849814 1.77827,-4.849814 2.90989,-8.891326 2.10158,-4.203172 1.29329,0 1.29328,0.16166 0,1.131623 1.29329,2.263247 2.74822,0.646642 0.80831,-0.808303 0,-0.969962 4.04151,-2.909889 1.77826,-1.778265 1.45495,0.161661 5.98143,2.424907 1.93993,0.969962 9.05299,29.907187 5.98143,0 0.80831,1.939926 0.16166,4.849814 2.90988,2.263246 0.80831,0 0.16166,-0.484981 -0.48498,-1.131623 2.74822,-0.161661 z m -20.93175,30.147531 1.53578,-1.53578 1.37412,1.0508 0.56581,2.42492 -1.69744,0.88913 -1.77827,-2.82907 z m 6.70893,-5.90062 1.77827,1.8591 c 0,0 1.29329,0.0808 1.29329,-0.2425 0,-0.32332 0.24249,-2.02076 0.24249,-2.02076 l 0.88914,-0.8083 -0.80831,-1.77828 -2.02076,0.72748 -1.37412,2.26326 z\",\n                        \"RI\" : \"m 874.07001,178.89536 -3.69579,-14.95599 6.26928,-1.84514 2.19113,1.92712 3.30649,4.32065 2.6879,4.40209 -2.99934,1.62479 -1.29328,-0.16166 -1.13162,1.77827 -2.42491,1.93992 -2.90986,0.96995 z\",\n                        \"NY\" : \"m 830.37944,188.7456 -1.13163,-0.96996 -2.58658,-0.16166 -2.26324,-1.93992 -1.63061,-6.12913 -3.45846,0.0905 -2.44371,-2.7082 -19.38532,4.38194 -43.00178,8.72969 -7.52965,1.22799 -0.73816,-6.46834 1.4281,-1.12538 1.29328,-1.13162 0.96997,-1.61661 1.77826,-1.13162 1.93993,-1.77827 0.48498,-1.6166 2.10158,-2.74823 1.13163,-0.96996 -0.16166,-0.96997 -1.29329,-3.07154 -1.77826,-0.16166 -1.93993,-6.1431 2.90989,-1.77827 4.36483,-1.45494 4.04152,-1.29329 3.23321,-0.48498 6.30475,-0.16166 1.93993,1.29329 1.6166,0.16166 2.10159,-1.29329 2.58657,-1.13162 5.17313,-0.48498 2.10159,-1.77827 1.77826,-3.23321 1.61661,-1.93992 2.10158,0 1.93993,-1.13163 0.16166,-2.26324 -1.45494,-2.10159 -0.32332,-1.45494 1.13162,-2.10159 0,-1.45494 -1.77827,0 -1.77826,-0.8083 -0.8083,-1.13163 -0.16166,-2.58657 5.81977,-5.49645 0.64664,-0.8083 1.45495,-2.90989 2.90989,-4.5265 2.74823,-3.71819 2.10158,-2.4249 2.4151,-1.82561 3.08136,-1.24594 5.49645,-1.29329 3.23321,0.16166 4.5265,-1.45494 7.56519,-2.07117 0.51979,4.97967 2.42492,6.46644 0.8083,5.17315 -0.96996,3.87986 2.58657,4.5265 0.8083,2.10159 -0.8083,2.9099 2.9099,1.29328 0.64664,0.32332 3.07156,10.99294 -0.53629,5.05967 -0.48498,10.83127 0.8083,5.49647 0.8083,3.55654 1.45495,7.27474 0,8.08304 -1.13163,2.26325 1.83933,1.99279 0.79655,1.67842 -1.93992,1.77827 0.32332,1.29328 1.29328,-0.32332 1.45495,-1.29328 2.26324,-2.58657 1.13163,-0.64664 1.6166,0.64664 2.26325,0.16166 7.92136,-3.87985 2.90989,-2.74823 1.29328,-1.45494 4.20317,1.6166 -3.39487,3.55653 -3.87985,2.90989 -7.11306,5.33479 -2.58656,0.96997 -5.81978,1.93992 -4.04151,1.13163 -1.17474,-0.53293 -0.24402,-3.68853 0.48498,-2.74824 -0.16166,-2.10158 -2.81351,-1.699 -4.5265,-0.96997 -3.87986,-1.13162 -3.7182,-1.77828 z\",\n                        \"PA\" : \"m 825.1237,224.69205 1.30842,-0.271 2.32953,-1.25325 1.21188,-2.48307 1.61661,-2.26325 3.23321,-3.07156 0,-0.8083 -2.42491,-1.6166 -3.55654,-2.42492 -0.96996,-2.58657 -2.74824,-0.32332 -0.16166,-1.13163 -0.8083,-2.74823 2.26326,-1.13162 0.16166,-2.42492 -1.2933,-1.29329 0.16166,-1.61661 1.93994,-3.07155 0,-3.07156 2.69763,-2.64588 -0.92028,-0.67498 -2.52408,-0.19291 -2.29449,-1.93992 -1.54992,-6.11606 -3.50458,0.10052 -2.45523,-2.70333 -18.09099,4.19777 -43.00178,8.72969 -8.89135,1.45494 -0.62067,-6.52139 -5.36253,5.06765 -1.29329,0.48498 -4.20229,3.00889 2.91076,19.13745 2.48166,9.72936 3.5718,19.26149 3.26931,-0.63768 11.94358,-1.50247 37.92663,-7.6652 14.87621,-2.82332 8.30035,-1.62236 0.26711,-0.23853 2.1016,-1.61662 2.10158,-0.68084 z\",\n                        \"NJ\" : \"m 829.67942,188.46016 -2.32255,2.73427 0,3.07156 -1.93994,3.07155 -0.16166,1.61662 1.2933,1.29328 -0.16166,2.42492 -2.26326,1.13162 0.8083,2.74823 0.16166,1.13163 2.74824,0.32332 0.96996,2.58657 3.55654,2.42492 2.42491,1.6166 0,0.80831 -2.98321,2.69656 -1.61661,2.26324 -1.45495,2.74824 -2.26325,1.29328 -0.46245,1.60248 -0.2425,1.21246 -0.60923,2.60674 1.09227,2.24419 3.23321,2.90989 4.84981,2.26325 4.04151,0.64664 0.16166,1.45494 -0.8083,0.96996 0.32332,2.74823 0.8083,0 2.10159,-2.4249 0.8083,-4.84982 2.74823,-4.04151 3.07155,-6.46642 1.13162,-5.49645 -0.64664,-1.13163 -0.16166,-9.37631 -1.61661,-3.39486 -1.13162,0.8083 -2.74823,0.32332 -0.48498,-0.48498 1.13163,-0.96997 2.10158,-1.93992 0.0631,-1.09383 -0.38439,-3.43384 0.57337,-2.74824 -0.11747,-1.96901 -2.80754,-1.75035 -5.09214,-1.17576 -4.13744,-1.38163 -3.58563,-1.64569 z\",\n                        \"DE\" : \"m 825.6261,228.2791 0.36831,-2.14689 0.37507,-1.69105 -1.623,0.39776 -1.61546,0.46756 -2.20626,1.7643 1.72012,5.04288 2.26326,5.65812 2.10158,9.69965 1.61662,6.30478 5.01148,-0.16166 6.14212,-1.18068 -2.26423,-7.38627 -0.96997,0.48498 -3.55653,-2.4249 -1.77826,-4.68816 -1.93993,-3.55653 -3.14712,-2.87031 -0.86416,-2.09812 0.36636,-1.61546 z\",\n                        \"MD\" : \"m 839.79175,252.41476 -6.00855,1.20384 -5.1429,0.11746 -1.84356,-6.92233 -1.92481,-9.16932 -2.57262,-6.18845 -1.28838,-4.39833 -7.50602,1.62236 -14.87621,2.82332 -37.45143,7.5509 1.1313,5.01166 0.96996,5.65811 0.32332,-0.32332 2.1016,-2.4249 2.26324,-2.61766 2.42491,-0.61556 1.45496,-1.45495 1.77826,-2.58657 1.29328,0.64665 2.90989,-0.32333 2.58658,-2.10158 2.00689,-1.45327 1.84523,-0.48498 1.64435,1.12995 2.90989,1.45494 1.93992,1.77827 1.21246,1.53578 4.12235,1.69743 0,2.90989 5.49646,1.29329 1.14444,0.54198 1.4119,-2.02832 2.88197,1.97016 -1.27817,2.48193 -0.76527,3.98566 -1.77826,2.58657 0,2.10159 0.64664,1.77827 5.06395,1.35569 4.3111,-0.0617 3.07154,0.96997 2.10159,0.32332 0.96996,-2.10159 -1.45494,-2.10158 0,-1.77827 -2.42491,-2.10159 -2.10158,-5.49645 1.29328,-5.3348 -0.16166,-2.10158 -1.29328,-1.29329 c 0,0 1.45494,-1.6166 1.45494,-2.26324 0,-0.64665 0.48498,-2.10159 0.48498,-2.10159 l 1.93993,-1.29328 1.93992,-1.61661 0.48498,0.96997 -1.45494,1.6166 -1.29328,3.71819 0.32332,1.13162 1.77826,0.32332 0.48498,5.49646 -2.10158,0.96996 0.32332,3.55653 0.48498,-0.16166 1.13162,-1.93992 1.61661,1.77826 -1.61661,1.29329 -0.32332,3.39487 2.58657,3.39487 3.87985,0.48498 1.61661,-0.8083 3.23655,4.18293 1.35835,0.5363 6.65367,-2.79695 2.00758,-4.02387 -0.43596,-4.90798 z m -15.96958,9.02872 1.13162,2.50575 0.16166,1.77827 1.13163,1.8591 c 0,0 0.88914,-0.88914 0.88914,-1.21246 0,-0.32332 -0.72747,-3.07156 -0.72747,-3.07156 l -0.72748,-2.34409 -1.8591,0.48499 z\",\n                        \"VA\" : \"m 831.63885,266.06892 -0.14391,-1.94703 6.45343,-2.54988 -0.77041,3.21784 -2.91995,3.77911 -0.41809,4.58582 0.46175,3.39044 -1.82797,4.97816 -2.16427,1.91614 -1.47034,-4.64081 0.44589,-5.44911 1.587,-4.18307 0.76687,-3.09761 z m 3.34019,28.30136 -58.17418,12.57543 -37.42697,5.27907 -6.67833,-0.37518 -2.58525,1.92638 -7.33913,0.22069 -8.38211,0.97767 -10.91496,1.61462 10.46943,-5.6112 -0.0131,-2.07493 1.52005,-2.14613 10.55378,-11.50143 3.94672,4.47746 3.78301,0.96398 2.54346,-1.14032 2.23722,-1.31116 2.53661,1.34352 3.91417,-1.42776 1.87673,-4.55634 2.60092,0.54002 2.85524,-2.13125 1.79927,0.4936 2.82721,-3.67657 0.34825,-2.08311 -0.96366,-1.27557 1.00277,-1.86663 5.27427,-12.27715 0.61677,-5.73508 1.22889,-0.52354 2.17853,2.44287 3.93586,-0.30117 1.92921,-7.57363 2.79399,-0.56086 1.04975,-2.74107 2.57982,-2.34688 2.77183,-5.69519 0.0849,-5.06755 9.82151,3.82282 c 0.68085,0.34042 0.83288,-5.04915 0.83288,-5.04915 l 3.65256,1.59833 0.0683,2.93816 5.78425,1.29949 2.13295,1.1762 1.65992,2.05569 -0.65455,3.64867 -1.94744,2.59098 0.10985,2.05907 0.58896,1.85291 4.97875,1.26843 4.45127,0.0399 3.06883,0.95864 1.94351,0.3093 0.71481,3.08846 3.19044,0.40253 0.86807,1.20002 -0.43949,4.69008 1.37473,1.10255 -0.47895,1.93039 1.22941,0.78977 -0.2218,1.3846 -2.69399,-0.0949 0.089,1.61552 2.28099,1.54287 0.12154,1.4119 1.77311,1.78538 0.49179,2.52413 -2.55304,1.38131 1.57222,1.4943 5.80102,-1.68583 3.60762,6.01193 z\",\n                        \"WV\" : \"m 761.18551,238.96731 1.11201,4.94453 1.08344,6.03133 2.13029,-2.58034 2.26324,-3.07156 2.53838,-0.61555 1.45495,-1.45494 1.77827,-2.58657 1.44498,0.64664 2.90989,-0.32332 2.58658,-2.10159 2.00689,-1.45326 1.84523,-0.48499 1.30392,1.01647 3.64325,1.82163 1.93993,1.77827 1.37412,1.29328 -0.76172,5.55494 -5.83491,-2.54122 -4.24525,-1.62202 -0.10114,5.17843 -2.74764,5.53673 -2.53003,2.42666 -1.19209,2.74939 -2.64358,0.5001 -0.89784,3.60188 -1.04323,3.94967 -3.96824,0.34074 -2.32373,-2.43888 -1.07115,0.55941 -0.63268,5.4697 -1.35029,3.5345 -4.9584,10.95497 0.89669,1.1607 -0.20586,1.90854 -2.80869,3.88447 -1.8085,-0.54429 -2.96805,2.15974 -2.54238,-0.57221 -1.99923,4.55557 c 0,0 -3.25931,1.43022 -3.92291,1.36772 -0.16051,-0.0151 -2.4691,-1.2491 -2.4691,-1.2491 l -2.33652,1.37937 -2.4098,1.0444 -3.74469,-0.88912 -1.1214,-1.16828 -2.19222,-3.02336 -3.14259,-1.98812 -1.71157,-3.62324 -4.28488,-3.46819 -0.64665,-2.26325 -2.58657,-1.45495 -0.80831,-1.6166 -0.24249,-5.25398 2.18242,-0.0808 1.93994,-0.8083 0.16166,-2.74823 1.6166,-1.45495 0.16166,-5.01148 0.96996,-3.87986 1.29329,-0.64664 1.29328,1.13162 0.48499,1.77827 1.77827,-0.96997 0.48498,-1.6166 -1.13162,-1.77827 0,-2.42491 0.96996,-1.29329 2.26325,-3.39487 1.29328,-1.45494 2.1016,0.48498 2.26324,-1.61662 3.07155,-3.39487 2.26326,-3.87986 0.32332,-5.65811 0.48498,-5.01149 0,-4.68816 -1.13162,-3.07155 0.96996,-1.45496 1.28348,-1.29328 3.49125,19.82712 4.63101,-0.75115 12.42832,-1.79965 z\",\n                        \"OH\" : \"m 735.32497,193.32832 -6.09354,4.05335 -3.87985,2.26325 -3.39487,3.71819 -4.04151,3.87985 -3.23321,0.8083 -2.90989,0.48498 -5.49646,2.58657 -2.10158,0.16166 -3.39487,-3.07155 -5.17314,0.64665 -2.58656,-1.45495 -2.38107,-1.35083 -4.89257,0.70341 -10.18462,1.61661 -11.20687,2.18473 1.29329,14.63028 1.77827,13.74117 2.58656,23.4408 0.56582,4.83117 4.12235,-0.12902 2.42491,-0.80831 3.3638,1.50314 2.07049,4.36483 5.13894,-0.0171 1.89174,2.1187 1.76117,-0.0653 2.53839,-1.34146 2.50417,0.3715 5.42128,0.48268 1.72697,-2.13268 2.34565,-1.29328 2.07049,-0.68085 0.64664,2.74824 1.77828,0.96996 3.47569,2.34407 2.18242,-0.0808 1.33312,-0.49248 0.18471,-2.76153 1.58536,-1.45496 0.0992,-4.79272 c 0,0 1.02396,-4.10906 1.02396,-4.10906 l 1.29927,-0.60128 1.32135,1.14774 0.53815,1.69702 1.71913,-1.03742 0.43898,-1.46075 -1.11669,-1.90306 0.0663,-2.31443 0.749,-1.07231 2.15276,-3.30648 1.05022,-1.54334 2.10159,0.48498 2.26325,-1.61661 3.07155,-3.39487 2.77149,-4.07873 0.32033,-5.05551 0.48498,-5.01149 -0.17678,-5.30688 -0.95484,-2.89478 0.35124,-1.18978 1.80439,-1.75011 -2.28879,-9.04733 -2.90989,-19.36177 z\",\n                        \"IN\" : \"m 619.56954,299.97132 0.0653,-2.85858 0.48499,-4.52651 2.26324,-2.90988 1.77828,-3.87987 2.58656,-4.20317 -0.48498,-5.81979 -1.77826,-2.74823 -0.32332,-3.23321 0.8083,-5.49647 -0.48498,-6.95141 -1.2933,-16.00441 -1.29328,-15.35776 -0.97047,-11.72002 3.07106,0.88951 1.45495,0.96996 1.13162,-0.32332 2.10159,-1.93992 2.82957,-1.61699 5.0928,-0.16204 21.98587,-2.26326 5.57573,-0.53316 1.50314,15.95621 4.25135,36.84155 0.59846,5.7716 -0.3715,2.26325 1.22798,1.79537 0.0964,1.37255 -2.52129,1.59951 -3.53943,1.55131 -3.20213,0.55028 -0.59846,4.86693 -4.57469,3.31247 -2.79642,4.01044 0.32332,2.37673 -0.58134,1.5342 -3.32647,0 -1.58553,-1.6166 -2.49331,1.2622 -2.68296,1.50314 0.16167,3.05445 -1.19379,0.25803 -0.46788,-1.01814 -2.16688,-1.50314 -3.25032,1.34148 -1.55131,3.00625 -1.43784,-0.8083 -1.45495,-1.59951 -4.46434,0.48499 -5.59283,0.96996 -2.90989,1.55132 z\",\n                        \"IL\" : \"m 619.54145,300.34244 0.0312,-3.22971 0.56739,-4.64596 2.33253,-2.91586 1.86665,-4.07576 2.23302,-3.99533 -0.3715,-5.2524 -2.00521,-3.54257 -0.0964,-3.34668 0.69483,-5.26951 -0.82541,-7.17837 -1.06634,-15.77745 -1.29328,-15.01734 -0.92228,-11.6392 -0.27251,-0.92139 -0.8083,-2.58657 -1.29328,-3.71819 -1.61661,-1.77827 -1.45494,-2.58656 -0.23357,-5.48896 -45.79643,2.59825 0.22862,2.37195 2.28623,0.68587 0.91448,1.14311 0.45725,1.82898 3.88658,3.42934 0.68588,2.28623 -0.68588,3.42934 -1.82898,3.65796 -0.68586,2.51484 -2.28623,1.82899 -1.82898,0.68587 -5.25832,1.37173 -0.68587,1.82898 -0.68587,2.05761 0.68587,1.37174 1.82898,1.60036 -0.22862,4.1152 -1.82899,1.60036 -0.68586,1.60036 0,2.74347 -1.82898,0.45724 -1.60036,1.14312 -0.22862,1.37174 0.22862,2.0576 -1.71467,1.31457 -1.0288,2.80064 0.45724,3.65795 2.28623,7.31593 7.31593,7.54455 5.48693,3.65796 -0.22862,4.34383 0.9145,1.37174 6.40143,0.45724 2.74347,1.37174 -0.68586,3.65796 -2.28623,5.94419 -0.68587,3.20072 2.28622,3.88658 6.40144,5.25832 4.57246,0.68587 2.05759,5.0297 2.05761,3.20071 -0.91449,2.97209 1.60036,4.11521 1.82898,2.05761 1.41403,-0.88069 0.90766,-2.07479 2.21308,-1.7472 2.13147,-0.6144 2.60253,1.1798 3.62699,1.3757 1.18895,-0.29823 0.19987,-2.25845 -1.2873,-2.41179 0.30422,-2.37672 1.8384,-1.34745 3.02254,-0.81029 1.2609,-0.45852 -0.61261,-1.38688 -0.79137,-2.35437 1.4326,-0.98096 1.15747,-3.21403 z\",\n                        \"CT\" : \"m 874.06831,178.86288 -3.67743,-14.87881 -4.71882,0.92031 -21.22878,4.74309 1.00019,3.22567 1.45495,7.27474 0.17678,8.96692 -1.22002,2.17487 1.92079,1.93234 4.27153,-3.90564 3.55653,-3.23321 1.93992,-2.10159 0.80831,0.64664 2.74822,-1.45494 5.17314,-1.13162 7.79469,-3.17877 z\",\n                        \"WI\" : \"m 615.06589,197.36866 -0.0667,-3.15742 -1.17911,-4.5265 -0.64664,-6.14309 -1.13162,-2.42491 0.96996,-3.07155 0.8083,-2.90989 1.45495,-2.58656 -0.64665,-3.39487 -0.64664,-3.55653 0.48498,-1.77827 1.93993,-2.42491 0.16166,-2.74823 -0.8083,-1.29328 0.64664,-2.58657 -0.45252,-4.17071 2.74823,-5.65811 2.90989,-6.78974 0.16166,-2.26325 -0.32332,-0.96996 -0.80831,0.48498 -4.20317,6.30476 -2.74823,4.04151 -1.93992,1.77827 -0.8083,2.26324 -1.95495,0.8083 -1.13162,1.93993 -1.45495,-0.32332 -0.16166,-1.77827 1.29329,-2.4249 2.10158,-4.68816 1.77827,-1.6166 0.99083,-2.35785 -2.56045,-1.90134 -1.97482,-10.36699 -3.54747,-1.34198 -1.94626,-2.30833 -12.12971,-2.72164 -2.87589,-1.01205 -8.21312,-2.16729 -7.91792,-1.15875 -3.76516,-5.13067 -0.7504,0.55401 -1.19791,-0.16166 -0.64665,-1.13162 -1.33401,0.29655 -1.13163,0.16166 -1.77826,0.96996 -0.96997,-0.64664 0.64665,-1.93993 1.93992,-3.07155 1.13162,-1.13162 -1.93992,-1.45494 -2.10159,0.8083 -2.90989,1.93992 -7.43638,3.23321 -2.90989,0.64664 -2.90988,-0.48498 -0.98173,-0.87825 -2.1167,2.83518 -0.22862,2.74347 0,8.45903 -1.14312,1.60037 -5.25832,3.88657 -2.28622,5.94419 0.45724,0.22862 2.51485,2.05761 0.68586,3.20072 -1.82898,3.20071 0,3.88659 0.45725,6.63005 2.97209,2.9721 3.42935,0 1.82898,3.20072 3.42933,0.45724 3.88659,5.71557 7.0873,4.11521 2.0576,2.74347 0.9145,7.43024 0.68586,3.31502 2.28623,1.60036 0.22862,1.37174 -2.0576,3.42933 0.22862,3.20073 2.51485,3.88658 2.51485,1.14311 2.97209,0.45724 1.34234,1.38012 45.29836,-2.66945 z\",\n                        \"NC\" : \"m 834.98153,294.31554 2.085,4.91735 3.55653,6.46642 2.4249,2.42491 0.64664,2.26325 -2.4249,0.16166 0.8083,0.64664 -0.32332,4.20317 -2.58657,1.29328 -0.64664,2.10159 -1.29328,2.90989 -3.7182,1.6166 -2.4249,-0.32332 -1.45495,-0.16166 -1.6166,-1.29328 0.32332,1.29328 0,0.96997 1.93993,0 0.8083,1.29328 -1.93993,6.30476 4.20317,0 0.64665,1.6166 2.26324,-2.26324 1.29329,-0.48499 -1.93993,3.55653 -3.07155,4.84982 -1.29328,0 -1.13163,-0.48498 -2.74822,0.64664 -5.17314,2.42491 -6.46642,5.33479 -3.39487,4.68815 -1.93992,6.46642 -0.48498,2.42491 -4.68816,0.48498 -5.45313,1.33666 -9.94641,-8.20253 -12.60954,-7.59805 -2.90989,-0.80831 -12.60953,1.45495 -4.27646,0.75015 -1.6166,-3.23322 -2.97036,-2.1167 -16.48939,0.48498 -7.27474,0.8083 -9.05299,4.52651 -6.14311,2.58656 -21.17755,2.58658 0.50009,-4.05433 1.77827,-1.45494 2.74824,-0.64665 0.64664,-3.7182 4.20318,-2.74822 3.87985,-1.45496 4.20319,-3.55653 4.36483,-2.10159 0.64664,-3.07156 3.87986,-3.87985 0.64664,-0.16166 c 0,0 0,1.13163 0.80831,1.13163 0.8083,0 1.93993,0.32332 1.93993,0.32332 l 2.26325,-3.55654 2.10159,-0.64665 2.26324,0.32333 1.61662,-3.55653 2.90989,-2.58658 0.48498,-2.10159 0.1875,-3.64819 4.2765,-0.0225 7.19859,-0.85579 15.75723,-2.25243 15.13604,-2.08657 21.64048,-4.71935 19.98332,-4.25857 11.17694,-2.40581 5.04998,-1.15688 z m 4.27046,33.20657 2.58658,-2.50575 3.15238,-2.58658 1.53578,-0.64664 0.16166,-2.02076 -0.64664,-6.14312 -1.45495,-2.34408 -0.64665,-1.8591 0.72748,-0.2425 2.74824,5.49648 0.40415,4.44567 -0.16166,3.39489 -3.39488,1.53577 -2.82907,2.42492 -1.13162,1.21246 -1.0508,-0.16166 z\",\n                        \"DC\" : \"m 805.81945,250.84384 -1.85828,-1.82417 -1.23263,-0.68629 1.44301,-2.02247 2.88909,1.9485 -1.24119,2.58443 z\",\n                        \"MA\" : \"m 899.62349,173.25394 2.17192,-0.68588 0.45726,-1.71467 1.0288,0.11431 1.0288,2.28624 -1.25742,0.45724 -3.8866,0.11432 0.45724,-0.57156 z m -9.37354,0.80018 2.28622,-2.62917 1.60037,0 1.82899,1.48605 -2.40054,1.0288 -2.17192,1.0288 -1.14312,-0.91448 z m -34.79913,-21.98819 17.64687,-4.64068 2.26326,-0.64664 1.91408,-2.79571 3.73677,-1.66331 2.88924,4.41284 -2.42491,5.17314 -0.32332,1.45494 1.93993,2.58657 1.13162,-0.8083 1.77827,0 2.26324,2.58656 3.87986,5.98144 3.55653,0.48498 2.26324,-0.96996 1.77827,-1.77827 -0.80831,-2.74822 -2.10158,-1.61661 -1.45495,0.8083 -0.96996,-1.29328 0.48498,-0.48498 2.10159,-0.16166 1.77826,0.8083 1.93993,2.42491 0.96996,2.90989 0.32332,2.4249 -4.20317,1.45495 -3.87985,1.93992 -3.87985,4.5265 -1.93993,1.45494 0,-0.96996 2.42491,-1.45495 0.48498,-1.77826 -0.8083,-3.07155 -2.90989,1.45494 -0.8083,1.45495 0.48498,2.26324 -2.06633,1.00043 -2.7472,-4.52713 -3.39488,-4.36484 -2.0705,-1.81247 -6.53327,1.8762 -5.09233,1.05079 -20.67516,4.59221 -0.66776,-4.76785 0.64664,-10.58877 4.28927,-0.88914 6.78975,-1.2933 z\",\n                        \"TN\" : \"m 696.67788,318.25411 -51.89309,5.01149 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22097,4.10083 -8.18538,0.26401 -6.95141,0.64664 -8.09083,-0.12386 -1.41378,7.07286 -1.69623,5.48005 -3.29317,2.75084 -1.34874,4.38106 -0.32332,2.58657 -4.04152,2.26324 1.45494,3.55654 -0.96996,4.36484 -0.96838,0.78965 108.15855,-10.40755 0.40327,-3.95494 1.81073,-1.49039 2.83415,-0.74945 0.67193,-3.71698 4.0986,-2.70496 4.04693,-1.49403 4.08358,-3.57033 4.43609,-2.02546 0.52126,-3.06735 4.0646,-3.98499 0.5508,-0.11417 c 0,0 0.0312,1.13162 0.83955,1.13162 0.8083,0 1.93993,0.35457 1.93993,0.35457 l 2.26325,-3.58779 2.07034,-0.64664 2.27511,0.29521 1.59831,-3.53286 2.95525,-2.64391 0.42168,-1.93911 0.30896,-3.71115 -2.14655,-0.19977 -2.60168,2.02833 -6.99331,0.0291 -18.35929,2.38682 -8.06109,1.9082 z\",\n                        \"AR\" : \"m 593.82477,343.05296 -3.97988,0.7167 -5.11215,-0.63403 0.4207,-1.60207 2.97975,-2.56669 0.94338,-3.65625 -1.82898,-2.9721 -78.41757,2.51485 1.60036,6.85869 -1e-5,8.23042 1.37175,10.97399 0.22862,37.83693 2.28623,1.94329 2.97209,-1.37173 2.74348,1.14311 0.68034,6.5733 55.62126,-1.1406 1.14563,-2.09037 -0.28662,-3.54951 -1.82563,-2.9721 1.59869,-1.48521 -1.59869,-2.5115 0.6842,-2.50983 1.36839,-5.60543 2.51819,-2.06263 -0.68587,-2.28456 3.65797,-5.37179 2.74347,-1.36839 -0.11348,-1.49358 -0.34544,-1.82564 2.85695,-5.59873 2.40304,-1.25659 0.38413,-3.42763 1.77067,-1.2417 -3.14352,-0.48427 -1.34146,-4.01044 2.80408,-2.37671 0.55026,-2.0192 1.27948,-4.04661 1.06619,-3.25539 z\",\n                        \"MO\" : \"m 558.44022,248.11316 -2.51987,-3.08725 -1.14312,-2.28623 -64.35723,2.40054 -2.28626,0.11431 1.25743,2.51485 -0.22862,2.28622 2.51484,3.88659 3.0864,4.11521 3.08641,2.74347 2.16123,0.22862 1.49673,0.9145 0,2.97209 -1.82897,1.60036 -0.45726,2.28622 2.05761,3.42935 2.51486,2.97209 2.51484,1.82898 1.37173,11.65975 0.31414,36.07221 0.22862,4.68675 0.45724,5.38351 22.43299,-0.86682 23.20603,-0.68587 20.80466,-0.80101 11.65474,-0.2303 2.1694,3.426 -0.68419,3.3075 -3.08725,2.40304 -0.57239,1.83734 5.37849,0.45726 3.89496,-0.68588 1.71718,-5.49363 0.65142,-5.85679 2.09803,-2.55516 2.59603,-1.48689 0.0514,-3.05024 1.01602,-1.93648 -1.69423,-2.54377 -1.33093,0.98426 -1.99262,-2.22724 -1.28503,-4.759 0.80101,-2.5182 -1.94413,-3.42766 -1.83064,-4.5758 -4.79941,-0.79934 -6.9688,-5.59875 -1.71886,-4.11353 0.79935,-3.20072 2.05927,-6.05767 0.45892,-2.86363 -1.94914,-1.03131 -6.85534,-0.79767 -1.02797,-1.71216 -0.1118,-4.23036 -5.48694,-3.43101 -6.97551,-7.7715 -2.28622,-7.31593 -0.23029,-4.22532 0.80101,-2.2879 z\",\n                        \"GA\" : \"m 672.29229,355.5518 0,2.18242 0.16166,2.1016 0.64664,3.39487 3.39488,7.92137 2.42491,9.86131 1.45494,6.14311 1.61661,4.84981 1.45495,6.95141 2.10159,6.30477 2.58657,3.39488 0.48498,3.39487 1.93993,0.8083 0.16166,2.1016 -1.77827,4.84981 -0.48498,3.23322 -0.16166,1.93993 1.61661,4.36484 0.32332,5.3348 -0.80831,2.42491 0.64665,0.80831 1.45495,0.8083 0.2047,3.21809 2.23301,3.34953 2.25044,2.16205 7.92138,0.16166 10.81975,-0.64664 21.51239,-1.29328 5.44572,-0.67437 4.57725,0.0277 0.16166,2.90989 2.58657,0.8083 0.32332,-4.36484 -1.61661,-4.5265 1.13163,-1.6166 5.81978,0.8083 4.97741,0.31778 -0.77542,-6.29879 2.26324,-10.02295 1.45495,-4.20318 -0.48499,-2.58656 3.33441,-6.2443 -0.5103,-1.35168 -1.91341,0.70458 -2.58656,-1.2933 -0.64665,-2.10159 -1.29328,-3.55653 -2.26326,-2.10159 -2.58656,-0.64664 -1.61661,-4.84982 -2.92501,-6.335 -4.20317,-1.93993 -2.1016,-1.93993 -1.29329,-2.58657 -2.10158,-1.93993 -2.26325,-1.29329 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.42491,-2.90989 -0.48498,-1.45495 -3.39488,-4.97048 -3.51987,0.0992 -3.75491,-2.35614 -1.41828,-1.29328 -0.32332,-1.77827 0.8708,-1.93992 2.22664,-1.11014 -0.63394,-2.09722 -41.86975,4.98893 z\",\n                        \"SC\" : \"m 764.94328,408.16488 -1.77706,0.9695 -2.58657,-1.29329 -0.64664,-2.10159 -1.29328,-3.55653 -2.26326,-2.1016 -2.58657,-0.64664 -1.6166,-4.84981 -2.74824,-5.98145 -4.20317,-1.93994 -2.1016,-1.93992 -1.29328,-2.58657 -2.10159,-1.93994 -2.26325,-1.29328 -2.26325,-2.90989 -3.07155,-2.26324 -4.52651,-1.77828 -0.48498,-1.45494 -2.4249,-2.90989 -0.48499,-1.45496 -3.39488,-5.17313 -3.39487,0.16166 -4.04152,-2.42492 -1.29328,-1.29328 -0.32332,-1.77827 0.8083,-1.93992 2.26325,-0.96998 -0.51082,-2.28908 5.7681,-2.33657 9.1155,-4.589 7.77473,-0.80831 16.1144,-0.42248 2.63825,1.87743 1.6791,3.35822 4.30235,-0.60998 12.60953,-1.45496 2.90989,0.80831 12.60954,7.59806 10.10808,8.12168 -5.42117,5.45834 -2.58657,6.1431 -0.48498,6.30476 -1.6166,0.8083 -1.13163,2.74823 -2.4249,0.64664 -2.10159,3.55653 -2.74823,2.74823 -2.26324,3.39487 -1.61661,0.8083 -3.55653,3.39487 -2.90989,0.16166 0.96997,3.23321 -5.01148,5.49646 -2.10159,1.29328 z\",\n                        \"KY\" : \"m 725.9944,295.2707 -2.29332,2.40168 -3.57819,3.99404 -4.92455,5.46467 -1.21577,1.71577 -0.0625,2.10158 -4.37986,2.16409 -5.65812,3.39488 -7.23187,1.79885 -51.86789,4.89886 -15.75956,1.77826 -4.6212,0.51271 -3.86835,-0.0277 -0.22695,4.22028 -8.17941,0.14456 -6.95141,0.64664 -7.98748,-0.0602 1.20778,-1.32008 2.49954,-1.54085 0.22863,-3.20073 0.91449,-1.82898 -1.60682,-2.5389 0.80183,-1.90681 2.26326,-1.77826 2.10158,-0.64665 2.74823,1.29329 3.55654,1.29328 1.13163,-0.32332 0.16166,-2.26325 -1.29329,-2.42491 0.32332,-2.26325 1.93993,-1.45494 2.58658,-0.64665 1.6166,-0.64664 -0.8083,-1.77827 -0.64664,-1.93993 1.50662,-0.9958 c 0.003,-0.0371 1.25396,-3.52229 1.23829,-3.65781 l 3.05322,-1.47868 5.31979,-0.96996 4.49404,-0.48498 1.39244,1.62743 1.52827,0.8708 1.59077,-3.10821 3.18708,-1.28262 2.20509,1.48403 0.41056,0.99904 1.17352,-0.26401 -0.16167,-2.95293 3.13087,-1.74919 2.14809,-1.07348 1.52936,1.66081 3.31815,-0.0442 0.58733,-1.57125 -0.36751,-2.26324 2.60053,-3.9985 4.77655,-3.4379 0.70595,-4.83586 2.92502,-0.45591 3.79146,-1.64568 2.44332,-1.70824 -0.19833,-1.56493 -1.14245,-1.45494 0.56582,-2.99491 4.18485,-0.1175 2.29991,-0.7458 3.34739,1.4291 2.05411,4.36484 5.13229,0.0108 2.05101,2.20819 1.61545,-0.1477 2.60169,-1.27817 5.23706,0.57337 2.57492,0.21751 1.68758,-2.05624 2.61795,-1.42588 1.88178,-0.7071 0.64664,2.83663 2.04343,1.05834 2.64276,2.08249 0.11747,5.67324 0.8083,1.57241 2.58972,1.55628 0.77164,2.29451 4.15989,3.43694 1.80531,3.62324 2.45655,1.65852 z\",\n                        \"AL\" : \"m 631.30647,460.41572 -1.4906,-14.3215 -2.74824,-18.75264 0.16166,-14.06449 0.8083,-31.03885 -0.16166,-16.65106 0.16509,-6.41906 44.48448,-3.61945 -0.1478,2.18242 0.16166,2.1016 0.64665,3.39487 3.39488,7.92137 2.4249,9.86131 1.45495,6.14311 1.6166,4.84982 1.45496,6.95141 2.10158,6.30476 2.58657,3.39489 0.48498,3.39486 1.93994,0.80831 0.16166,2.10159 -1.77828,4.84982 -0.48498,3.23322 -0.16166,1.93992 1.61662,4.36485 0.32332,5.33479 -0.80832,2.42492 0.64666,0.8083 1.45494,0.8083 0.32814,2.88882 -5.59766,-0.35355 -6.78975,0.64665 -25.5424,2.90988 -10.41156,1.40677 -0.22138,2.8774 1.77827,1.77827 2.58657,1.93992 0.58086,7.93544 -5.54206,2.5729 -2.74822,-0.32332 2.74822,-1.93993 0,-0.96996 -3.07154,-5.98144 -2.26325,-0.64664 -1.45495,4.36483 -1.29328,2.74823 -0.64664,-0.16166 -2.74823,0 z\",\n                        \"LA\" : \"m 607.96706,459.16125 -3.28461,-3.16614 1.00991,-5.50023 -0.66135,-0.89308 -9.26167,1.00656 -25.02832,0.45892 -0.68419,-2.39468 0.91281,-8.4557 3.31588,-5.94585 5.03136,-8.69102 -0.57407,-2.39802 1.25659,-0.68085 0.45893,-1.95249 -2.28624,-2.05593 -0.11179,-1.94245 -1.83066,-4.34551 -0.14705,-6.3386 -55.47379,0.92397 0.0286,9.57357 0.68587,9.37353 0.68587,3.88658 2.51485,4.11521 0.91449,5.02971 4.34383,5.48693 0.22862,3.20072 0.68587,0.68587 -0.68587,8.45904 -2.97209,5.02969 1.60036,2.05761 -0.68588,2.51484 -0.68586,7.31593 -1.37174,3.20071 0.12246,3.61645 4.68648,-1.52015 12.11335,0.20701 10.34627,3.55653 6.46642,1.13163 3.71819,-1.45495 3.23321,1.13163 3.23321,0.96996 0.8083,-2.10159 -3.23321,-1.13162 -2.58657,0.48498 -2.74823,-1.6166 c 0,0 0.16167,-1.29329 0.80831,-1.45495 0.64664,-0.16166 3.07155,-0.96996 3.07155,-0.96996 l 1.77826,1.45494 1.77827,-0.96996 3.23321,0.64664 1.45494,2.42491 0.32332,2.26325 4.52649,0.32332 1.77827,1.77826 -0.8083,1.61661 -1.29329,0.8083 1.61661,1.6166 8.40634,3.55653 3.55653,-1.29328 0.96997,-2.42491 2.58656,-0.64664 1.77827,-1.45494 1.29328,0.96996 0.8083,2.90989 -2.26324,0.8083 0.64664,0.64664 3.39487,-1.29328 2.26325,-3.39487 0.8083,-0.48498 -2.10159,-0.32332 0.8083,-1.61661 -0.16166,-1.45494 2.10159,-0.48498 1.13162,-1.29329 0.64664,0.8083 c 0,0 -0.16166,3.07155 0.64665,3.07155 0.8083,0 4.20317,0.64665 4.20317,0.64665 l 4.04151,1.93992 0.96996,1.45495 2.90989,0 1.13163,0.96996 2.26324,-3.07155 0,-1.45495 -1.29328,0 -3.39487,-2.74822 -5.81978,-0.80831 -3.23321,-2.26324 1.13163,-2.74823 2.26324,0.32332 0.16166,-0.64664 -1.77826,-0.96996 0,-0.48499 3.23321,0 1.77826,-3.07154 -1.29328,-1.93993 -0.32332,-2.74823 -1.45495,0.16166 -1.93992,2.10159 -0.64664,2.58657 -3.07155,-0.64665 -0.96997,-1.77826 1.77827,-1.93993 1.90333,-3.4456 -1.0611,-2.41227 -1.16564,-3.98133 z\",\n                        \"MS\" : \"m 631.55882,459.34458 -0.25426,1.25615 -5.17314,0 -1.45494,-0.8083 -2.10159,-0.32332 -6.78974,1.93992 -1.77826,-0.8083 -2.58657,4.20317 -1.10254,0.77802 -1.12383,-2.48798 -1.14312,-3.88659 -3.42933,-3.20071 1.1431,-5.54455 -0.68586,-0.91449 -1.82898,0.22862 -7.91792,0.87337 -24.5465,0.37337 -0.76974,-2.22536 0.87337,-8.3768 3.11684,-5.67281 5.22707,-9.1449 -0.44574,-2.4326 1.23686,-0.65625 0.43587,-1.91947 -2.31748,-2.07898 -0.11512,-2.14148 -1.83572,-4.12109 -0.109,-5.96277 1.32753,-2.48097 -0.2233,-3.41575 -1.76949,-3.08259 1.52642,-1.48221 -1.57061,-2.49954 0.45725,-1.65221 1.5774,-6.52637 2.48595,-2.03635 -0.64167,-2.36697 3.65797,-5.30253 2.83186,-1.35642 -0.22097,-1.67516 -0.28813,-1.6811 2.87606,-5.56767 2.34572,-1.23151 0.15163,-0.89301 37.34348,-3.88117 0.18486,6.28333 0.16166,16.65106 -0.8083,31.03885 -0.16166,14.06449 2.74824,18.75264 1.48437,13.39529 z\",\n                        \"IA\" : \"m 569.19154,199.5843 0.26438,2.7862 2.22372,0.57726 0.95394,1.22533 0.50001,1.85536 3.79284,3.35865 0.68587,2.3915 -0.67434,3.42447 -1.58231,3.23198 -0.79934,2.74179 -2.17275,1.60204 -1.71551,0.5724 -5.57902,1.8602 -1.39146,3.84869 0.72864,1.37174 1.84051,1.68259 -0.28293,4.03629 -1.76315,1.53786 -0.77141,1.64314 0.12722,2.77632 -1.88631,0.45724 -1.62545,1.10491 -0.27879,1.35263 0.27879,2.11492 -1.55102,1.11607 -2.47053,-3.13328 -1.26257,-2.44987 -65.73582,2.51485 -0.91803,0.16544 -2.0524,-4.51596 -0.22862,-6.63007 -1.60036,-4.11521 -0.68586,-5.25831 -2.28623,-3.65797 -0.91448,-4.80107 -2.74348,-7.54455 -1.14311,-5.37264 -1.37174,-2.17191 -1.60036,-2.74346 1.95398,-4.84383 1.37174,-5.71557 -2.74347,-2.05761 -0.45725,-2.74347 0.9145,-2.51485 1.71467,0 82.654,-1.26948 0.83426,4.18312 2.25218,1.56097 0.25671,1.42309 -2.02954,3.38931 0.19041,3.20552 2.51486,3.7982 2.52679,1.29362 3.07928,0.50305 0.65834,0.83236 z\",\n                        \"MN\" : \"m 475.23781,128.82439 -0.45725,-8.45904 -1.82898,-7.31592 -1.82898,-13.488725 -0.45725,-9.830778 -1.82898,-3.429343 -1.60036,-5.029695 0,-10.28802 0.68586,-3.886587 -1.82093,-5.451667 30.13242,0.03527 0.32332,-8.244684 0.64664,-0.161661 2.26325,0.484982 1.93992,0.808302 0.8083,5.496456 1.45495,6.143098 1.6166,1.616605 4.84982,0 0.32332,1.454944 6.30476,0.323321 0,2.101586 4.84981,0 0.32332,-1.293284 1.13162,-1.131623 2.26325,-0.646642 1.29328,0.969963 2.90989,0 3.87985,2.586567 5.3348,2.424907 2.42491,0.484982 0.48498,-0.969963 1.45494,-0.484982 0.48498,2.909889 2.58657,1.293284 0.48498,-0.484982 1.29329,0.161661 0,2.101586 2.58656,0.969963 3.07155,0 1.61661,-0.808303 3.23321,-3.233209 2.58656,-0.484981 0.80831,1.778265 0.48498,1.293283 0.96996,0 0.96996,-0.808302 8.89133,-0.323321 1.77826,3.071549 0.64665,0 0.71361,-1.084279 4.43991,-0.370665 -0.6121,2.279459 -3.93872,1.837125 -9.24578,4.061128 -4.77474,2.006897 -3.07155,2.586568 -2.42491,3.55653 -2.26324,3.879851 -1.77827,0.808304 -4.52649,5.01147 -1.29329,0.16166 -4.32778,2.75712 -2.46288,3.20511 -0.22862,3.19139 0.0944,8.04335 -1.37604,1.68875 -5.08154,3.75997 -2.23008,5.98241 2.87175,2.23371 0.67989,3.22698 -1.85524,3.23893 0.17079,3.74802 0.36886,6.7304 3.02825,3.00199 3.329,0 1.89111,3.1326 3.37917,0.50327 3.85916,5.67147 7.08729,4.11675 2.14315,2.87512 0.67115,6.43951 -81.2115,1.14479 -0.33792,-35.67685 -0.45724,-2.97209 -4.11521,-3.42934 -1.14312,-1.82898 0,-1.60037 2.0576,-1.60035 1.37174,-1.37174 0.22863,-3.20072 z\",\n                        \"OK\" : \"m 380.34313,320.82146 -16.68418,-1.27331 -0.88022,10.95243 20.46538,1.15688 32.05555,1.3036 -2.3346,24.41865 -0.45725,17.83257 0.22863,1.60036 4.34383,3.65796 2.0576,1.14311 0.68587,-0.22862 0.68587,-2.05761 1.37174,1.82899 2.0576,0 0,-1.37174 2.74347,1.37174 -0.45724,3.88658 4.11521,0.22862 2.51484,1.14312 4.11521,0.68587 2.51485,1.82898 2.28623,-2.0576 3.42934,0.68586 2.51485,3.42934 0.91448,0 0,2.28623 2.28623,0.68586 2.28622,-2.28622 1.82899,0.68586 2.51484,0 0.9145,2.51486 6.30107,2.07897 1.37174,-0.68586 1.82898,-4.11521 1.14311,0 1.14312,2.0576 4.11521,0.68587 3.65795,1.37174 2.9721,0.91449 1.82899,-0.91449 0.68586,-2.51485 4.34383,0 2.0576,0.91449 2.74347,-2.05761 1.14312,0 0.68587,1.60036 4.1152,0 1.60036,-2.0576 1.82899,0.45724 2.0576,2.51486 3.20071,1.82897 3.20073,0.9145 1.94108,1.11893 -0.3891,-37.21701 -1.37175,-10.97398 -0.16046,-8.87234 -1.43989,-6.53773 -0.7782,-7.17964 -0.0681,-3.81622 -12.13684,0.31874 -46.41004,-0.45724 -45.03891,-2.05762 -24.2912,-1.37173 z\",\n                        \"TX\" : \"m 361.46423,330.57358 22.69079,1.08594 31.09269,1.14312 -2.33461,23.4558 -0.29676,18.15352 0.0681,2.08179 4.34383,3.81843 1.98665,1.44716 1.18421,-0.55969 0.37337,-1.81772 1.14032,1.80362 2.11164,0.0439 -0.003,-1.44709 1.66994,0.96727 1.1387,0.40887 -0.35927,3.96765 4.08819,0.0935 2.92532,1.19717 3.95474,0.52538 2.38138,2.07898 2.1241,-2.07617 3.72494,0.61491 2.22091,3.22494 1.07496,0.32096 -0.16047,1.96527 2.21361,0.79229 2.33015,-2.0548 2.13302,0.61492 2.22938,0.0355 0.93307,2.43544 6.32809,2.11445 1.59305,-0.76693 1.48947,-4.17771 0.34072,0 0.90649,0.0816 1.22905,2.06863 3.92988,0.66528 3.337,1.12288 3.42563,1.19597 1.84058,-0.975 0.71376,-2.51484 4.45322,0.0442 1.80874,0.93078 2.79925,-2.10651 1.10364,0.0442 0.85104,1.60507 4.05472,0 1.51887,-2.02862 1.86737,0.40724 1.94603,2.40328 3.52057,2.04415 2.85876,0.80981 1.51362,0.79984 2.4467,1.99732 3.04304,-1.32779 2.69109,1.13888 0.56381,6.10594 -0.0398,9.70217 0.68586,9.53401 0.70218,3.60511 2.67533,4.41986 0.89818,4.95073 4.21595,5.53802 0.19602,3.14494 0.74637,0.78584 -0.73007,8.38007 -2.8721,5.0065 1.53297,2.15287 -0.63008,2.33808 -0.66957,7.40432 -1.50432,3.338 0.29488,3.50235 -5.66488,1.58518 -9.86129,4.5265 -0.96996,1.93992 -2.58657,1.93993 -2.10158,1.45494 -1.29329,0.8083 -5.65811,5.3348 -2.74823,2.10159 -5.3348,3.2332 -5.65811,2.42491 -6.30476,3.39487 -1.77826,1.45495 -5.81978,3.55653 -3.39487,0.64664 -3.87985,5.49645 -4.04151,0.32333 -0.96997,1.93992 2.26325,1.93993 -1.45495,5.49645 -1.29328,4.5265 -1.13162,3.87985 -0.8083,4.52649 0.8083,2.42491 1.77826,6.9514 0.96997,6.14309 1.77826,2.74823 -0.96996,1.45495 -3.07155,1.93992 -5.65812,-3.87985 -5.49645,-1.13162 -1.29329,0.48498 -3.23321,-0.64664 -4.20317,-3.07155 -5.17313,-1.13162 -7.59805,-3.39487 -2.10158,-3.87986 -1.29329,-6.46641 -3.2332,-1.93993 -0.64665,-2.26325 0.64665,-0.64664 0.32332,-3.39487 -1.29329,-0.64664 -0.64664,-0.96996 1.29328,-4.36484 -1.6166,-2.26324 -3.23321,-1.29329 -3.39487,-4.36483 -3.55653,-6.62808 -4.20317,-2.58657 0.16166,-1.93992 -5.3348,-12.2862 -0.8083,-4.20317 -1.77826,-1.93992 -0.16166,-1.45495 -5.98144,-5.33479 -2.58657,-3.07155 0,-1.13163 -2.58657,-2.10158 -6.78974,-1.13163 -7.43638,-0.64664 -3.07155,-2.26324 -4.52649,1.77826 -3.55653,1.45495 -2.26325,3.2332 -0.96996,3.7182 -4.36483,6.14309 -2.42491,2.42491 -2.58657,-0.96996 -1.77826,-1.13163 -1.93993,-0.64664 -3.87985,-2.26324 0,-0.64665 -1.77826,-1.93992 -5.17314,-2.10159 -7.43638,-7.7597 -2.26325,-4.68815 0,-8.08303 -3.23321,-6.46642 -0.48498,-2.74822 -1.6166,-0.96997 -1.13163,-2.10158 -5.01147,-2.10159 -1.29328,-1.6166 -7.11307,-7.92137 -1.29328,-3.23321 -4.68816,-2.26325 -1.45495,-4.36487 -2.58659,-2.90987 -1.93991,-0.48496 -0.64923,-4.67764 8.00187,0.68589 29.03499,2.74345 29.03508,1.60036 2.23353,-19.46182 3.88655,-55.55502 1.60039,-18.74732 1.37174,0.0286 m 99.02935,229.66274 -0.56581,-7.11308 -2.74824,-7.19392 -0.56582,-7.03225 1.53578,-8.24471 3.31406,-6.87059 3.4757,-5.41565 3.1524,-3.55655 0.64664,0.2425 -4.769,6.6281 -4.36484,6.54728 -2.02077,6.62809 -0.32332,5.17316 0.88913,6.14312 2.58658,7.19392 0.48498,5.17314 0.16166,1.45496 -0.88913,0.24248 z\",\n                        \"NM\" : \"m 288.15255,424.01315 -0.77541,-4.7481 8.64378,0.5254 30.17176,2.9459 27.26816,1.68989 2.21527,-18.70747 3.85736,-55.87597 1.73768,-19.38923 1.5717,0.12856 0.8254,-11.16339 -104.00445,-10.63595 -17.49735,120.43481 15.46067,1.98915 1.29328,-10.02295 29.23215,2.82935 z\",\n                        \"KS\" : \"m 507.88059,324.38028 -12.61826,0.20443 -46.08909,-0.45723 -44.55748,-2.05763 -24.62974,-1.25741 3.89379,-64.59497 22.08346,0.67517 40.28913,0.8414 44.30124,0.98758 5.09563,0 2.1844,2.1624 2.01766,-0.0214 1.6403,1.01247 -0.0625,3.00923 -1.82898,1.72537 -0.33225,2.23217 1.84308,3.40233 2.95236,3.19506 2.32735,1.61446 1.30077,11.24082 0.18913,36.08573 z\",\n                        \"NE\" : \"m 486.09787,240.70058 3.23061,7.01991 -0.12863,2.30252 3.45922,5.49388 2.71929,3.15234 -5.04948,0 -43.48256,-0.93868 -40.78686,-0.8903 -22.25222,-0.78387 1.07277,-21.32785 -32.31824,-2.92025 4.34383,-44.00986 15.54633,1.02881 20.11879,1.1431 17.83257,1.14312 23.77676,1.14311 10.74526,-0.45724 2.0576,2.28622 4.80108,2.9721 1.14311,0.91449 4.34383,-1.37174 3.88659,-0.45724 2.74347,-0.22863 1.82898,1.37174 4.05743,1.60036 2.97209,1.60036 0.45725,1.60036 0.91449,2.0576 1.82898,0 0.79798,0.0462 0.89423,4.68182 2.92026,8.46792 0.57253,3.75671 2.52349,3.77425 0.56959,5.11414 1.60724,4.24037 0.25234,6.47426 z\",\n                        \"SD\" : \"m 476.44687,204.02465 -0.0474,-0.58087 -2.89571,-4.84544 1.86023,-4.71211 1.49273,-5.88654 -2.78187,-2.07971 -0.38516,-2.74346 0.7924,-2.55435 3.18851,0.0152 -0.12308,-5.00614 -0.3333,-30.17425 -0.61773,-3.76758 -4.07232,-3.33093 -0.98263,-1.67696 -0.0625,-1.60882 2.02212,-1.5294 1.53222,-1.66567 0.24496,-2.65679 -58.25709,-1.60035 -54.79921,-3.44909 -5.32527,63.69119 14.59027,0.9038 19.94985,1.20561 17.74305,0.92859 23.77676,1.30358 11.9827,-0.42464 1.9663,2.24518 5.19464,3.25335 0.76389,0.72275 4.54144,-1.45281 6.54054,-0.61491 1.6753,1.33627 4.20451,1.59613 2.94506,1.63583 0.39898,1.48381 1.03949,2.24088 2.23737,-0.20136 z\",\n                        \"ND\" : \"m 475.30528,128.91846 -0.61491,-8.43367 -1.67695,-6.81592 -1.89149,-13.02422 -0.45724,-10.987026 -1.73946,-3.077142 -1.75661,-5.194396 0.0312,-10.44427 0.62336,-3.824087 -1.8341,-5.467761 -28.64225,-0.564027 -18.59095,-0.646642 -26.51232,-1.293284 -22.94634,-2.133869 -6.99324,67.176834 54.93224,3.34365 58.06901,1.38583 z\",\n                        \"WY\" : \"m 360.37668,143.27587 -106.7426,-13.45706 -14.08348,88.45803 113.26461,13.58549 7.56147,-88.58646 z\",\n                        \"MT\" : \"M 369.20952,56.969133 338.5352,54.1613 l -29.26055,-3.55653 -29.26054,-4.041512 -32.3321,-5.334795 -18.42929,-3.39487 -32.72365,-6.932736 -4.47902,21.347532 3.42934,7.544541 -1.37174,4.572452 1.82898,4.572451 3.20073,1.371739 4.62082,10.769453 2.6951,3.176523 0.45724,1.143118 3.42934,1.143118 0.45725,2.057593 -7.0873,17.603953 0,2.51485 2.51485,3.20071 0.91448,0 4.80107,-2.97209 0.68588,-1.14312 1.60036,0.68587 -0.22863,5.25832 2.74348,12.57425 2.97209,2.51484 0.91448,0.68587 1.82899,2.28622 -0.45725,3.42935 0.68587,3.42933 1.14312,0.9145 2.28622,-2.28623 2.74347,0 3.20072,1.60036 2.51485,-0.91449 4.11521,0 3.65795,1.60036 2.74348,-0.45725 0.45724,-2.9721 2.97209,-0.68586 1.37174,1.37174 0.45725,3.20071 1.42587,0.83464 1.88695,-11.03474 106.74567,13.42892 8.80221,-86.299157 z\",\n                        \"CO\" : \"m 380.03242,320.96457 4.90324,-86.32496 -113.38856,-12.64396 -12.21382,87.93916 120.69914,11.02976 z\",\n                        \"ID\" : \"m 148.47881,176.48395 8.77087,-35.22072 1.37174,-4.22952 2.51484,-5.94418 -1.25742,-2.28623 -2.51486,0.11431 -0.80017,-1.0288 0.45725,-1.14311 0.34292,-3.08641 4.45815,-5.48695 1.82898,-0.45724 1.14311,-1.14311 0.57156,-3.20072 0.91448,-0.68586 3.88659,-5.82988 3.88659,-4.34383 0.22862,-3.772268 -3.42934,-2.629163 -1.53555,-4.400983 13.62491,-63.341691 13.51759,2.528111 -4.40808,21.383013 3.56035,7.485352 -1.58111,4.66084 1.96985,4.641233 3.13822,1.255191 3.83534,9.556588 3.51269,4.437154 0.50725,1.143118 3.34095,1.143118 0.36885,2.097075 -6.97101,17.376092 -0.16518,2.56593 2.63112,3.3217 0.90508,-0.0489 4.91129,-3.0256 0.67742,-1.09497 1.56231,0.65886 -0.27844,5.35372 2.73925,12.58271 3.91783,3.17791 1.68118,2.16545 -0.71661,4.08386 1.06622,2.80741 1.06163,1.09128 2.47929,-2.35142 2.84816,0.0489 2.91925,1.3352 2.78002,-0.68193 3.79426,-0.16048 3.9789,1.60036 2.74348,-0.29676 0.49674,-3.03731 2.93259,-0.76483 1.26017,1.51591 0.44093,2.94496 1.42434,1.21321 -8.386,53.60866 c 0,0 -87.96599,-16.70061 -94.95939,-18.20435 z\",\n                        \"UT\" : \"m 259.49836,310.10509 -83.74903,-11.87225 20.58761,-112.54135 46.78031,8.74514 -1.4848,10.63042 -2.31162,13.17266 7.80769,0.92837 16.40652,1.80479 8.21097,0.85564 -12.24765,88.27658 z\",\n                        \"AZ\" : \"m 144.9112,382.62909 -2.62701,2.15833 -0.32332,1.45495 0.48498,0.96996 18.91427,10.66959 12.12454,7.59804 14.7111,8.56801 16.81269,10.02295 12.2862,2.42491 24.95116,2.70491 17.25561,-119.12707 -83.73563,-11.91725 -3.09239,16.41246 -1.60629,0.0153 -1.71467,2.62916 -2.51485,-0.11432 -1.25742,-2.74347 -2.74347,-0.34293 -0.9145,-1.14311 -0.91448,0 -0.9145,0.57156 -1.94329,1.0288 -0.1143,6.97298 -0.22864,1.71467 -0.57154,12.57424 -1.48605,2.17191 -0.57156,3.31503 2.74347,4.91539 1.25742,5.82988 0.80019,1.0288 1.0288,0.57156 -0.11432,2.28622 -1.60035,1.37173 -3.42934,1.71467 -1.94329,1.9433 -1.48605,3.65795 -0.57156,4.91539 -2.85778,2.74347 -2.0576,0.68587 0.13569,0.82988 -0.45725,1.71467 0.45725,0.80018 3.65796,0.57154 -0.57156,2.74348 -1.48605,2.17191 -3.77227,0.91449 z\",\n                        \"NV\" : \"m 196.39273,185.57552 -23.63891,128.82275 -1.83224,0.34915 -1.57276,2.40618 -2.37294,0.0107 -1.47195,-2.74347 -2.61847,-0.37842 -0.77092,-1.10763 -1.03783,-0.054 -2.77837,1.64429 -0.31026,6.78548 -0.36209,5.77717 -0.34857,8.59281 -1.4471,2.08916 -2.43892,-1.07403 -69.079886,-104.20119 18.989116,-67.58491 93.0921,20.66601 z\",\n                        \"OR\" : \"m 148.72184,175.53153 8.8497,-34.80151 1.05079,-4.22952 2.35437,-5.62323 -0.61551,-1.16288 -2.51486,-0.0462 -1.2816,-1.6707 0.45724,-1.46407 0.50341,-3.24688 4.45815,-5.48695 1.82898,-1.09915 1.14311,-1.14311 1.48604,-3.56563 4.04706,-5.6694 3.56563,-3.8624 0.22862,-3.451314 -3.26886,-2.468682 -1.78341,-4.642625 -12.66377,-3.61197 -15.08909,-3.54365 -15.43202,0.114306 -0.45724,-1.371729 -5.48695,2.057604 -4.45814,-0.571559 -2.40054,-1.600361 -1.25742,0.685875 -4.68676,-0.228632 -1.71467,-1.371729 -5.25832,-2.057604 -0.800182,0.114316 -4.34383,-1.486056 -1.943291,1.828983 -6.172812,-0.342927 -5.944183,-4.115209 0.685865,-0.80018 0.228621,-7.773173 -2.286225,-3.886577 -4.115208,-0.571559 -0.685865,-2.514847 -2.353932,-0.466565 -5.798525,2.058784 -2.263247,6.466418 -3.233209,10.022949 -3.23321,6.466419 -5.011474,14.064461 -6.466419,13.579473 -8.083023,12.60952 -1.939926,2.90989 -0.808302,8.568 0.386095,12.08023 112.578342,26.32133 z\",\n                        \"WA\" : \"m 102.07324,7.6117734 4.36483,1.4549443 9.69963,2.7482283 8.568,1.939925 20.0459,5.658117 22.95579,5.658116 15.22312,3.207173 -13.63236,63.585811 -12.445,-3.525318 -15.50801,-3.570679 -15.22929,0.03324 -0.45557,-1.344699 -5.59922,2.179293 -4.59543,-0.736744 -2.14697,-1.584054 -1.31321,0.657976 -4.73566,-0.140243 -1.69836,-1.349633 -5.26304,-2.112303 -0.734971,0.146918 -4.389122,-1.524448 -1.893298,1.817379 -6.265906,-0.298733 -5.925698,-4.125702 0.778957,-0.932763 0.121223,-7.677452 -2.281999,-3.839701 -4.115208,-0.60704 -0.67741,-2.510616 -2.275512,-0.456932 -3.554948,1.230576 -2.263247,-3.219247 0.323321,-2.909889 2.748228,-0.323321 1.616605,-4.041511 -2.586568,-1.131624 0.161661,-3.718191 4.364833,-0.646641 -2.748228,-2.748228 -1.454945,-7.113061 0.646642,-2.909888 0,-7.921363 -1.778265,-3.23321 2.263247,-9.376307 2.101586,0.484981 2.424907,2.909889 2.748228,2.586567 3.233209,1.939926 4.526493,2.101586 3.071551,0.646642 2.909889,1.454944 3.394873,0.969963 2.263246,-0.16166 0,-2.424908 1.293284,-1.131623 2.101582,-1.293284 0.32333,1.131624 0.32332,1.778265 -2.263251,0.484981 -0.323321,2.101586 1.778262,1.454945 1.13163,2.424907 0.64664,1.939925 1.45494,-0.16166 0.16166,-1.293284 -0.96996,-1.293284 -0.48498,-3.233209 0.8083,-1.778265 -0.64664,-1.454944 0,-2.263247 1.77827,-3.55653 -1.13163,-2.586568 -2.42491,-4.8498139 0.32333,-0.8083023 1.13162,-0.8083024 z m -9.456692,5.9789646 2.020764,-0.16166 0.484982,1.374119 1.535779,-1.616615 2.344082,0 0.808303,1.535779 -1.53578,1.69744 0.646652,0.808313 -0.727477,2.020761 -1.374119,0.404146 c 0,0 -0.889138,0.08084 -0.889138,-0.242485 0,-0.323321 1.454955,-2.586578 1.454955,-2.586578 l -1.69744,-0.565817 -0.323321,1.454954 -0.727478,0.646642 -1.535782,-2.263257 -0.484982,-2.505742 z\",\n                        \"CA\" : \"m 144.69443,382.19813 3.94008,-0.48862 1.48604,-2.01144 0.54454,-2.94109 -3.55152,-0.59012 -0.51417,-0.66822 0.4775,-2.03231 -0.15928,-0.58967 1.92257,-0.61959 3.04278,-2.83268 0.58156,-4.9951 1.3799,-3.40211 1.94329,-2.16626 3.51887,-1.58967 1.65439,-1.60483 0.0687,-2.10884 -0.99333,-0.58001 -1.02315,-1.07273 -1.15522,-5.84845 -2.6852,-4.83009 0.56581,-3.505 -2.41958,-1.02931 -69.061322,-104.1784 18.902112,-67.60149 -67.079863,-15.69796 -1.506896,4.73324 -0.161661,7.43638 -5.173135,11.80121 -3.071548,2.58657 -0.323321,1.13162 -1.778266,0.80831 -1.454944,4.20317 -0.808302,3.23321 2.748228,4.20317 1.616605,4.20317 1.131623,3.55653 -0.323321,6.46642 -1.778265,3.07155 -0.646642,5.81978 -0.969963,3.71819 1.778265,3.87985 2.748228,4.52649 2.263247,4.84982 1.293283,4.04151 -0.32332,3.23321 -0.323321,0.48498 0,2.10158 5.658116,6.30476 -0.484981,2.42491 -0.646642,2.26325 -0.646642,1.93992 0.16166,8.24469 2.101586,3.71819 1.939926,2.58656 2.748228,0.48499 0.969963,2.74822 -1.131623,3.55653 -2.101587,1.61661 -1.131623,0 -0.808302,3.87985 0.484981,2.90989 3.23321,4.36483 1.616604,5.3348 1.454944,4.68815 1.293284,3.07155 3.39487,5.81978 1.454944,2.58656 0.484982,2.90989 1.616604,0.96996 0,2.42491 -0.808302,1.93993 -1.778265,7.11306 -0.484982,1.93992 2.424908,2.74823 4.203172,0.48498 4.526493,1.77827 3.879851,2.10158 2.909889,0 2.909888,3.07155 2.586567,4.84982 1.131624,2.26324 3.879851,2.10159 4.849814,0.8083 1.454944,2.10159 0.646642,3.23321 -1.454944,0.64664 0.323321,0.96996 3.233211,0.8083 2.748228,0.16167 3.159889,-1.68685 3.879854,4.20317 0.808302,2.26325 2.586572,4.20317 0.32332,3.23321 0,9.37631 0.48498,1.77826 10.02295,1.45495 19.72257,2.74822 13.84504,1.3497 z m -88.135212,-43.71668 1.293288,1.53578 -0.16166,1.29329 -3.233221,-0.0808 -0.565814,-1.21246 -0.646644,-1.45495 3.314051,-0.0808 z m 1.939932,0 1.212458,-0.64664 3.556543,2.10159 3.07156,1.21245 -0.889136,0.64666 -4.526509,-0.2425 -1.61661,-1.61661 -0.808306,-1.45495 z m 20.692614,19.80348 1.778265,2.34408 0.808313,0.96997 1.535779,0.56581 0.565807,-1.45495 -0.969963,-1.77827 -2.667403,-2.02076 -1.050798,0.16166 0,1.21246 z m -1.454955,8.64886 1.778276,3.15239 1.212458,1.93994 -1.454954,0.24248 -1.293284,-1.21245 c 0,0 -0.727477,-1.45495 -0.727477,-1.85911 0,-0.40414 0,-2.18242 0,-2.18242 l 0.484981,-0.0808 z\"\n                    }\n                }\n            }\n        }\n    );\n\n    return Mapael;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/world_countries.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires jQuery and Mapael >=2.0.0\n *\n * Map of World countries\n *\n * Equirectangular projection\n * Uses the ISO 3166-1 alpha-2 for country names (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n *\n * @author Vincent Brouté\n * @source https://commons.wikimedia.org/wiki/File:BlankMap-World6-Equirectangular.svg\n *\n * @deprecated : this map will be definitely moved to 'mapael-maps' repository starting from the next major release (3.0.0).\n * You can use instead https://github.com/neveldo/mapael-maps/blob/master/world/world_countries.js\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('jquery-mapael'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'mapael'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, jQuery.mapael);\n    }\n}(function ($, Mapael) {\n\n    \"use strict\";\n    \n    $.extend(true, Mapael,\n        {\n            maps :  {\n                world_countries : {\n                    width : 999.29852,\n                    height : 392.03476,\n                    getCoords : function (lat, lon) {\n                        var xfactor = 2.775076875916;\n                        var xoffset = 471.505926315;\n                        var x = (lon * xfactor) + xoffset;\n                        var yfactor = -2.8112860731578;\n                        var yoffset = 235.89691962022;\n                        var y = (lat * yfactor) + yoffset;\n                            \n                        return {'x' : x, 'y' : y};\n                    },\n                    'elems': {\n                        \"PE\" : \"m 246.37,248.26 c 0.32,-1.79 4.23,-4.35 2.73,-1.46 -1.45,2.09 2.59,0.39 3.11,2.75 2.72,-1.13 1.47,-5.5 4.96,-5.95 3.11,-0.83 7.69,-4.81 5.11,-7.43 2.35,-1.19 4.43,3.08 6.14,4.56 0.7,2.08 3.04,2.21 4.97,1.17 2.11,-0.15 5.75,1.18 2.69,3.69 -0.51,0.71 3.29,2.56 0.76,1.93 -3.16,0.08 -7.44,1.58 -7.92,5.32 -0.06,2.05 -3.42,3.58 -1.21,5.52 0.76,1.37 2.13,3 1.77,3.78 2.26,0.16 3.53,3.49 5.91,0.61 2.26,-1.86 -1.32,6.12 2.9,3.61 2.5,1.32 3.37,4.79 2.23,7.29 0.95,2.52 -2.79,6.04 0.3,7.72 -0.57,1.85 -2.55,3 -2.55,4.98 -3.44,2.21 -5.57,-4.41 -9.39,-4.56 -3.34,-1.31 -6.28,-3.43 -8.43,-6.26 0.32,-1.93 -1.53,-4.59 -2.66,-7.02 -2.53,-2.81 -3.15,-7.33 -5.63,-10.49 -0.47,-3 -4.42,-4.05 -5.21,-5.89 1.88,0.13 -1.01,-3.15 -0.55,-3.87 z\",\n                        \"BF\" : \"m 456.58,206.27 c 1.04,-2.27 -0.4,-4.54 2.65,-4.79 0.7,-1.85 0.88,-4.37 3.11,-3.1 0.83,-0.73 0.44,-1.27 1.59,-1.56 1.43,-1.81 4.2,-2.03 6.48,-3.6 3.23,-0.6 1.57,4 4.41,4.53 1.15,0.24 -1.42,0.91 0.87,2 1.62,0.34 2.62,-0.07 2.39,1.8 0.95,2.4 -3.19,1.99 -4.47,3.19 -3.06,-0.32 -7.13,-0.27 -9.66,0.43 -0.06,1.39 1.22,5.92 -0.89,2.56 -2.2,-0.12 -4.4,1.93 -5.53,-1.03 -0.26,-0.14 -0.88,0.05 -0.95,-0.42 z\",\n                        \"FR\" : \"m 320.44,229.09 c 3.5,-2.22 -0.96,-5.61 1.06,-8.23 1.75,-3.18 5.63,1.18 6.32,2.34 0.23,-1.32 1.46,1.48 -0.36,2.69 -1.07,2.79 -2.6,4.03 -5.24,3.39 -0.49,0.72 -1.29,0.16 -1.78,-0.18 z m -17.32,-33.96 c -1.44,-0.36 -0.63,-2.45 0.08,-0.26 z m 192.61,-78.74 c 1.65,-1.47 3.13,-2.32 2.66,0.76 -1.27,4.32 -2.55,0.43 -2.66,-0.76 z m -36.96,-15.9 c 2.7,-0.08 -1.08,-0.93 1.51,-0.72 -4.33,-0.12 3.07,-2.66 4.28,-0.7 1.46,-0.41 2.78,0.1 3.08,-0.51 -0.68,-1.77 -1.57,-3.78 0.78,-2.26 1.39,1.11 5.71,0.69 4,-0.37 2.05,-0.92 4.59,-0.73 4.1,-3.44 2.64,-1.5 4.35,1.69 6.91,1.76 -0.28,2.27 2.31,-0.77 2.15,1.29 2.43,0.75 4.64,1.76 7.05,1.89 3.81,0.08 -0.46,2.1 0.15,4.48 -2.03,-0.09 -2.17,1.61 -4.01,3.03 -0.88,1.88 2.46,-1.44 2.47,1.52 -0.67,0.65 1.58,2.16 -0.98,2.37 1.7,0.78 0.11,3.19 2.93,2.66 -1.77,2.7 -4.67,3.56 -7.34,2.1 0.36,-0.21 -3.5,-0.83 -5.33,0.71 0.58,2.4 -1.63,2.53 -3.83,1.72 -1.61,-1.41 -4.18,-10e-4 -6.48,-0.95 -2.3,-0.72 -3.81,-0.89 -2.1,-3.18 0.98,-2.31 -0.1,-1.94 0.71,-4.33 1.35,0.73 2.04,2.86 0.92,0.27 -2.12,-1.23 -0.46,-0.44 -0.93,-2.5 -1.83,0.71 -4.34,-3.53 -1.71,-2.49 -2.59,-0.07 -1.33,-0.92 -3.27,-0.96 1.23,-0.3 -1.33,0.1 -0.81,-0.41 -0.69,-0.31 -3.16,-0.22 -4.24,-0.98 z\",\n                        \"LY\" : \"m 497.92,151.14 c 1.22,-1.02 3.3,-2.31 2.26,-4.45 1.64,-1.36 4.45,-1.74 3.66,-4.37 2.93,1.82 6.41,0.15 9.36,2.05 2,0.86 2.23,4.49 5.53,3.54 3.2,0.07 6.84,5.03 9.01,0.5 -2.33,-4.25 4.21,-6.37 7.31,-4.84 1.14,2.42 5.27,1.09 6.57,3.1 -1.75,2.8 -0.4,6.49 -0.36,9.96 -0.07,7.58 0.05,15.16 -0.06,22.74 -1.18,0.21 -3.56,-0.76 -2.74,1.4 -7.23,-3.84 -14.52,-7.62 -22,-10.94 -2.87,0.55 -5.22,3.4 -7.74,0.43 -3.87,0.51 -4.52,-4.36 -8.24,-3.67 -0.09,-2.15 -4.24,-4.5 -1.19,-6.01 -0.81,-3.08 1.09,-6.77 -1.38,-9.44 z\",\n                        \"BY\" : \"m 536.15,88.53 c 2.51,-0.84 2.42,-2.61 0.94,-4.65 2.05,0.38 5.52,-0.77 6.14,-1 -1.65,-1.71 4.41,-2.24 2.21,-3.4 2.47,-1.46 5.19,-2 8.01,-1.21 0.87,0.9 5.84,-0.04 4.08,3.31 1.82,2.07 3.09,2.51 5.12,3.65 -0.7,1.84 -5.16,-0.46 -3.09,2.59 1.51,1.91 -4.05,1.08 -2.99,3.57 -2.54,-1.13 -4.21,-0.29 -6.38,-0.94 -2.85,0.32 -5.9,-1.52 -9.1,-0.89 -1.6,-0.22 -4.73,2.54 -3.66,-0.47 -0.38,-0.29 -0.92,-0.21 -1.27,-0.56 z\",\n                        \"PK\" : \"m 640.67,151.64 c 3.95,1.79 8.26,1.07 12.34,0.72 4.22,1.01 1.66,-5.15 5.25,-4.55 2.06,0.2 0.74,-1.54 3.23,-1.54 2.86,1.63 2.24,-2.57 3.79,-3.75 3.59,0.37 -1.34,-3.47 1.89,-2.43 2.95,0.23 1.1,-2.43 3.35,-3.6 -0.01,-1.31 -2.18,-3.16 0.77,-3.47 2.85,-1.65 6.81,-1.33 9.59,-1.23 2.13,0.39 1.58,3.56 3.46,3.2 1.26,1.55 5.23,0.15 1.53,1.71 -1.9,2.5 -5.73,1.36 -8.5,1.33 -1.73,1.51 1.24,1.92 0.04,3.16 -1.34,2.56 5.7,3.16 2.32,4.38 -1.97,1.16 0.04,3.18 -2.52,4.09 -1.14,1.82 -3.07,3.92 -4.92,5.76 -1.17,3.02 -4.19,1.45 -5.74,1.86 -1.69,1.44 -2.62,3.46 0.03,4.04 -0.74,2.43 3,2.59 2.19,5.35 -0.7,0.83 -4.08,0.91 -6.22,0.54 -1.11,2.01 -2.29,1.6 -3.54,0.89 -0.58,-0.52 -0.41,-2.6 -2.23,-2.62 0.82,-1.92 -2.84,-2.17 -0.57,-1.34 -3.12,0.1 -5.6,0.7 -7.75,0.13 -1.6,0.26 -4.51,1.16 -5.62,0.13 -0.69,-4.03 4.36,-2.41 4.62,-5.27 -2.66,0.34 -0.14,-4.03 -3.41,-3.72 -1.62,-0.75 -1.86,-2.85 -3.39,-3.79 z\",\n                        \"ID\" : \"m 844.1,252.59 c 0.28,1.08 0.13,-2.98 1.43,-0.99 0.85,2.54 -1.43,2.01 -1.43,0.99 z m -70.2,-19.41 c 0.55,-1.5 1.03,-0.93 0.47,-1.62 1.7,-4.63 2.41,3.7 5.92,1.12 2.7,0.67 3.97,-2.97 6.65,-0.62 2.54,-0.19 3.17,-1.43 4.17,-3.33 0.53,-1.38 1.48,-3.37 2.12,-5.45 2.11,0.1 5.07,0.12 4.94,1.43 1.01,1.31 -2.48,-0.15 -0.69,1.65 -0.18,0.67 2.72,2.27 1.24,3.68 1.07,1.24 5.35,3.79 1.08,3.13 -1.78,-1.04 -2.61,3.94 -1.82,4.68 -0.99,0.36 -2.22,1.17 -2.39,1.26 -1.79,1.91 -0.28,1.88 -0.58,3.73 -1.09,0.57 -0.82,3.52 -4.02,4.03 -2.06,1.1 -1.24,-3.42 -2.78,-1.91 -1.62,1.17 -2.41,-2.34 -3.81,0.19 -1.82,-0.08 -2.62,0.99 -2.68,-1.63 -2.12,1.16 -2.49,0.45 -4.17,0.2 -0.82,-2.04 0.27,-5.83 -2.53,-5.61 1.04,-0.68 -1.46,-1.32 -0.21,-2.52 -0.6,-0.57 -1.28,-1.56 -0.93,-2.41 z m -3.25,9.64 c -1.93,3.7 4.6,0.57 0,0 z m -6.54,-2.36 c -1.17,1.33 2.05,1.13 2.02,3.17 2.09,2.06 2.52,-1.43 0.47,-1.37 -0.4,-3.22 -1.04,-2.02 -2.49,-1.8 z m -6.41,-7.05 c -2.5,-2.43 -1.84,1.04 0,0 z m -14.87,0.47 c 2.59,-1.55 -4.34,-4.6 0,0 z m -0.58,-13.04 c -2.16,1.1 -4.7,-1.74 -6.38,-0.52 0.8,3.59 5,4.51 6.74,7.4 0.7,2.45 4.36,2.68 4.04,6.05 1.16,2.15 3.68,3.94 4.67,6.59 1.11,3.63 4.3,6.14 7.08,8.63 1.57,0.47 4.02,4.81 3.73,2.14 1.72,1.03 1.63,-0.27 3.17,0.77 0.5,-2.69 -0.31,-5.3 0.77,-7.65 -0.83,-1.61 -3.03,-3.22 -4.09,-1.06 1.48,-1.31 -0.14,-3.14 -1.22,-4.66 -2.88,-0.05 -1.81,-2.35 -2,-2.39 2.65,-1.16 -1.22,-2.63 -2.39,-1.04 -0.85,0.26 3.05,-1.4 0.22,-1.54 -1.79,-1.19 -3.08,-3.65 -5.05,-4.24 0.97,2.75 -2.27,-2.24 -2.25,-1.11 -0.91,-2.81 -5,-3.14 -5.7,-6.04 -0.29,-0.58 -0.86,-0.92 -1.34,-1.33 z m 94.76,34.81 c -2.37,1.03 -0.94,4.18 0.01,0.75 -0.25,-0.4 0.73,-0.48 -0.01,-0.75 z m -16.26,2.53 c 1.92,0.08 3.88,-1.52 0.8,-0.88 -0.51,-0.19 -0.78,0.52 -0.8,0.88 z m -3.62,0.33 c -1.7,1.62 3.67,0.44 0.84,0.12 l -0.42,-0.08 z m -2.98,0.4 c -1.36,2.21 2.94,-1.13 0.38,0.28 0.21,-0.23 -0.21,-0.46 -0.38,-0.28 z m -9.47,1.52 c 2.72,0.11 5.82,0.66 7.79,-1.08 1.07,-2.18 -0.65,1.4 -2.62,0.11 -1.61,0.69 -5.33,-2.08 -5.54,0.96 l 0.15,0.13 z m -2.95,2.04 c 1.18,0.19 5.35,3.62 4.82,0.86 -1.41,-1.2 -3.09,-1.98 -4.82,-0.86 z m -2.85,-1.73 c 1.18,-1.38 2.5,0.46 2.65,-0.56 2.04,-0.15 -0.51,-1.28 -0.71,-1.21 -0.94,0 -3.71,-1.15 -1.29,0.64 0.46,1.44 -4.5,-1.9 -3.7,1.37 0.95,0.64 2.05,-0.35 3.06,-0.24 z m -4.33,-1.99 c -1.7,1.09 -1.19,2.65 0.49,1.64 0.52,-0.83 0.94,-1.71 -0.49,-1.64 z m -5.16,-0.35 c 1.23,1.07 1.75,2.98 3.21,1.1 0.5,-2.05 -2.43,-0.3 -3.21,-1.1 z m -4.26,-3.37 c -2.23,2.03 6.23,-0.05 1.48,-0.02 -0.49,-0.01 -0.99,-0.1 -1.48,0.02 z m -17.24,-2.34 c -2.16,-1.59 -3.86,2.62 -3.51,2.14 3.4,-0.5 2.28,2.56 5.73,2.02 3.28,0.83 6.78,0.67 10.2,1.96 3.01,0.08 7.42,0.77 9.28,1.2 -0.36,-1.74 -0.25,-3.59 -2.97,-2.58 -2.68,-0.14 -1.7,-3.15 -4.88,-2.73 -1.48,-0.51 -2.83,-1.36 -3.81,0.5 -3.04,0.39 -4.71,-1.18 -6.93,-2.09 -1.3,-0.08 -1.96,-1.08 -3.1,-0.43 z m 46.68,11.07 c -0.68,2.23 3.93,-0.11 4.33,-1.86 0.55,-2.56 -2.33,0.27 -2.46,0.44 -1.17,-0.63 -1.28,0.52 -1.88,1.42 z m 19.83,-26.89 c 0.96,-0.2 -1.01,-1.41 0.79,-0.29 2.41,-1.1 -4.14,-0.71 -1.17,0.04 l 0.24,-0.12 z m -1.92,4.45 c 2.66,0.34 -0.48,-2.04 -0.41,-0.14 z m -0.02,4.1 c 2.13,1.84 3.14,0.23 1.08,-1.3 -2.01,-0.19 -6.73,-1.71 -6.8,1.46 0.13,-2.06 2.17,0.07 2.86,-0.49 1.1,0.73 2.05,-0.7 2.86,0.33 z m -6.51,-9.78 c -0.04,1.56 3.12,3.66 1.01,0.99 -2.27,-3.46 2.38,-1.26 1.92,-2.11 -3.14,-0.41 2.08,-3.57 -0.99,-3.05 -0.12,0.95 -3.06,2.86 -1.18,0.71 0.36,-1.5 0.16,-4.13 -1.02,-1.09 -0.89,1.52 0.52,2.99 0.25,4.55 z m -0.53,4.05 c -0.8,1.66 3.89,0.54 0.65,-0.16 h -0.31 z m 0.13,-3.16 c -1.86,0.54 2.01,2.75 0.39,0.39 l -0.11,-0.15 z m -2.29,9.9 c 4.74,-0.87 -3.2,-3.92 -1.39,-0.73 0.41,0.34 0.92,0.5 1.39,0.73 z m -6.26,-6.11 c -0.8,2.07 4.64,-0.11 1.11,0.16 l -0.62,-0.15 z m -3.27,-0.05 c 1.79,-0.81 -1.37,-2.18 -1.02,-0.14 1.05,-1.09 0.3,-0.5 1.02,0.14 z m -0.52,7.77 c -1.92,1.21 -1.02,5.26 0.11,2.25 -1.83,-0.61 1.19,-1.26 -0.11,-2.25 z m -1.48,2.9 c 1.73,-3.14 -1.78,-1.56 -0.22,-0.2 l 0.06,-0.18 z m -8.79,-0.75 c -0.46,2.31 4.29,1.43 2.53,-0.51 1.29,-2.09 -1.63,-7.27 2.21,-6.28 -0.53,1.72 -0.32,3.05 1.43,3.94 -1.14,1.89 1.48,2.61 1.8,0.87 2.98,0 1.1,-1.2 0.14,-2.61 1.21,-1.12 -1.82,-3.54 -2.58,-4.95 2.21,0.86 4.01,-3.08 5.78,-2.6 -0.09,-1.6 -2.38,-0.18 -1.96,-0.29 -2.28,0.21 -3.49,0.41 -5.06,1.85 -3,-0.9 -3.37,-6.82 0.98,-5.19 3.28,-1.16 7.69,2.35 9.98,-1.5 2.41,-2.9 -0.75,-1.66 -1.84,0.03 -3.07,0.67 -6.23,-0.21 -9.11,-1.01 -1.06,1.59 -3.12,1.29 -3.23,3.95 -0.71,-0.41 1.08,2.83 -0.42,2.18 -0.21,2.8 -2.89,4.96 -1.82,7.66 2.5,-1.68 2.02,3.47 1.17,4.47 z m -63.9,-21.23 c 1.46,-0.3 -3.53,-2.47 -0.65,-0.5 l 0.38,0.19 z m 96.92,9.51 c 1.18,-1.98 4.71,-1.91 6.93,-0.68 2.5,0.02 0.1,5.72 2,5.35 0.45,-1.2 1.5,4.18 3.35,1.35 1.75,-2.47 3.53,-3.07 5.68,-4.58 2.94,0.89 5.63,2.49 8.67,3.03 0.6,2.99 0.4,7.71 -0.01,11.23 0.48,1.8 0.85,6.39 -0.18,6.81 -1.4,-2.86 -3.85,-2.48 -5.38,-2.53 1.09,-1.45 -0.76,-2.94 0.76,-2.52 -1.89,-0.05 -1.63,-1.63 0.12,-0.65 -2.37,-0.6 -2.13,-3.71 -3.2,-4 -1.28,-1.43 -5.02,-2.77 -7.57,-3.05 -2.1,-0.01 -1.41,-1.84 -1.44,-1.56 -1.47,0.45 -3.78,-0.48 -2.6,-2.4 -0.46,-0.51 -1.7,5.09 -3.09,1.82 1.88,-1.26 -4.51,-3.14 -0.21,-2.72 2.01,-1.5 2.99,0.56 3.52,-1.18 0.19,-1.16 -4.95,0.93 -5.48,-1.23 0.65,-1.76 -2.77,-0.49 -2.4,-1.85 z m 17.69,20.64 c 1.89,1.91 6.05,-3.52 1.68,-2.47 -1.02,0.41 -1.3,1.56 -1.68,2.47 z m -5.92,-18.96 c 0.85,1.34 6.01,0.49 1.74,0.18 -0.58,-0.06 -1.16,-0.13 -1.74,-0.18 z\",\n                        \"YE\" : \"m 619.35,188.7 c -1.65,-1.63 -1.51,-5.17 -3.76,-6.5 -3.5,0.77 -7.67,0.07 -10.51,2.66 -1.04,1.42 -2.24,4.24 -3.93,2.02 -3.11,0.26 -7.42,-1.26 -9.6,0.49 -0.06,1.62 -1.53,3.91 -1.31,5.28 1.62,1.29 0.77,6.66 3.08,7.25 3.29,1.04 4.59,-2.58 7.98,-2.06 4,-1.07 6.96,-3.4 10.98,-4.53 2.43,-0.43 4.63,-1.26 4.89,-3.69 0.67,-0.45 1.49,-0.49 2.17,-0.91 z m 1.62,12.3 c 6.67,-0.85 -4.22,-1.91 0,0 z\",\n                        \"MG\" : \"m 591.79,297.71 c 1.2,2.82 0.97,7.37 2.95,8.73 2.79,1.88 7.92,0.75 8.65,-2.85 1.29,-3.83 2.44,-7.72 3.73,-11.54 1.42,-3.12 1.53,-7.02 3.01,-9.95 -0.6,-1.37 -0.73,-4.62 0.82,-1.66 1.9,-2.04 -0.38,-5.85 -0.85,-8.49 -0.87,-0.29 -1.43,-3.51 -1.9,-1.92 -1.27,0.91 -0.45,3.18 -2.27,4.06 -0.19,0.19 -1.97,-1.07 -0.92,0.84 -0.11,0.93 -1.26,1.18 -0.04,2.22 -0.91,-0.83 -1.7,1.65 -1.62,-0.1 -1.26,1.44 -0.18,2.8 -1.67,1.53 -1.92,1.31 -0.6,1.96 -2.14,1.61 -1.5,0.4 -3.11,0.31 -4.4,1.58 -1.71,2.75 -1.33,5.74 0.02,8.72 0.17,2.82 -2.6,4.67 -3.36,7.2 z\",\n                        \"BO\" : \"m 278.97,266.42 c 2.55,0.92 4,-0.24 6.07,-1.58 1.83,-1.59 7.41,-3.49 5.45,0.89 -0.13,2.3 1.75,4.96 4.28,5.04 2.75,0.15 4.61,3.2 7.62,2.87 3.23,0.65 1.54,4.44 2.41,5.56 -0.88,4.62 6.82,0.07 5.04,4.31 2.5,1.45 2.99,4.61 1.14,7.11 1.18,3.96 -2.48,-2.62 -5.16,-0.73 -4.44,-0.31 -7.07,2.7 -7.15,6.88 -0.06,2.22 -5.32,-1.01 -5.13,3.18 -0.31,-2.5 -4.81,-2.91 -5.54,-2.31 -1.52,1.17 -4.75,4.3 -4.51,0.3 -0.15,-2.22 -2.81,-4.42 -1.84,-6.01 0.49,-2.31 -1.73,-4.83 -2.44,-7.31 -1.14,-1.06 3.63,-3.14 0.56,-3.99 -0.32,-3.06 1.21,-5.67 1.05,-9.02 1.58,-1.37 -1.62,-3.65 -1.83,-5.21 z\",\n                        \"CI\" : \"m 448.04,217.31 c 1.43,-1.6 0.22,-2.8 1.35,-3.91 0.59,-0.67 -1.34,-2.42 1.31,-1.34 -0.95,-1.89 -0.32,-2.29 -1.43,-4.1 0.82,-2.97 3.97,0.01 4.46,-2.12 1.36,-0.64 0.77,1.88 2.83,0.49 1.82,1.17 2.93,3.02 5.18,1.42 2.95,-0.26 4.17,4.14 1.97,6.31 -2.43,2.51 1.76,6.79 -0.06,7.18 -0.54,-0.78 -3.11,0.31 -2.31,-0.69 -0.76,0.31 -4.38,0.61 -1,0.18 1.23,0.64 -5.22,0.11 -2.31,0.45 -3.1,-0.38 -9.05,4.8 -6.65,-1.41 -0.79,-1.62 -2.12,-1.85 -3.34,-2.47 z\",\n                        \"DZ\" : \"m 447.83,158.87 c -1.42,-4.06 2.69,-6.52 5.93,-6.61 2.69,-0.8 5.76,-2.94 8.06,-4.1 -1.83,-1.76 2.54,-2.76 4.09,-2.99 3.3,1.15 3.26,-1.18 1.37,-3.08 0.44,-1.92 -0.86,-4.75 -0.94,-5.19 2.13,-1.53 4.57,-1.62 6.46,-3.05 3.12,-1.42 6.64,-1.21 9.8,-1.92 2.76,0.4 5.39,0.34 7.65,-0.34 1.96,-0.05 4.13,0.03 5.43,0.53 -2.12,1.45 1,6.38 -2.98,7.8 0.47,3.54 5.03,4.58 5.13,8.4 0.23,3.1 1.52,5.64 1.57,9.07 -0.83,1.67 0.58,3.63 -1.37,4.66 1.84,2.02 1.64,5.46 5.08,5.02 4.96,2.86 -2.46,4.34 -4.43,6.15 -3.83,2.19 -7.47,4.71 -10.7,7.7 -2.4,-0.07 -8.29,3.34 -7.19,-1.03 -2.48,-1.01 -5.22,-1.52 -6.15,-4 -6.84,-4.13 -13.22,-9.02 -20.11,-13.09 -2.21,-1.35 -4.46,-2.64 -6.71,-3.93 z\",\n                        \"CH\" : \"m 488.45,105.83 c 1.29,-2.14 2.66,-4.1 4.76,-4 2.28,0.2 3.51,-1.55 5.32,0.74 -0.98,1.45 4.27,0.74 1.85,1.94 -0.53,1.03 -1.24,0.84 -2.77,0.41 -0.61,3.86 -2.74,-1.95 -3.77,1.37 -3.11,1.46 -2.84,-3 -5.4,-0.46 z\",\n                        \"CM\" : \"m 495.72,222.09 c 0.47,-3.22 3.41,-5.46 5.57,-6.53 1.27,2.08 2.15,2.36 3.29,0.26 0.18,-2.57 2.73,-4.33 2.93,-6.51 2.19,-1.52 1.75,-5.62 4.98,-6.24 1.08,-1.83 -3.37,-3.4 -0.72,-4.23 3.2,2.1 0.52,6.67 3.61,8.69 -2.26,-0.37 -6.76,0.32 -3.01,2.82 3.73,1.91 2.38,5.81 -0.14,7.91 -0.42,2.53 1.22,5.29 2.32,7.46 2.54,0.81 3.26,6.86 -0.01,4.31 -3.04,-0.52 -5.92,-0.7 -9.02,-0.83 -1.81,-0.39 -6.9,2.06 -6.2,-1.63 -0.19,-1.82 -0.76,-2.84 -0.86,-3.33 -1,1.33 -2.12,-2.49 -2.94,-1.55 z\",\n                        \"MK\" : \"m 528.66,118.73 c 0.72,-2.03 2.99,-1.79 4.92,-2.22 2.81,0.77 2.27,4.33 -0.81,3.59 -1.58,0.85 -4.12,1.04 -4.1,-1.37 z\",\n                        \"BW\" : \"m 527.36,305.27 c 0.81,-2.27 -1.87,-8.12 1.68,-7.74 2.46,-1.12 0.37,-6.2 1.08,-8.87 -0.38,-2.72 4.82,-1.97 6.6,-2.11 1.16,2.25 5.11,-3.32 6.09,0.9 1.25,4.17 6.02,4.42 6.41,8.27 1.43,1.11 5.97,1.59 2.48,3.25 -3.21,0.74 -4.64,4.07 -6.95,6.05 -2.13,0.14 -1.28,4.09 -4.34,3.16 -2.45,-0.7 -5.26,-2.69 -6.1,1.11 -1.71,2.37 -6.82,3.13 -4.88,-1.17 -0.38,-1.17 -1.04,-2.17 -2.09,-2.86 z\",\n                        \"UA\" : \"m 533.33,99.45 c 0.38,-2.42 2.62,-0.95 1.55,-3.19 1.51,-2.24 5.9,-2.87 2.56,-5.17 1.24,-1.88 5.76,-1.8 8.43,-1.21 2.08,0.47 4.68,1.02 6.24,0.62 1.37,0.15 3.91,1.05 4.74,0.38 0.25,-3 4.8,-1.41 6.48,-2.35 2.03,-0.95 4.88,1.12 3.49,2.26 0.42,1.56 4.07,0.15 3.62,3.02 2.25,0.9 4.97,-0.87 6.7,1.19 1.53,0.31 6.03,0.27 5.9,2.18 -1.87,0.91 0.64,0.9 -1.06,1.74 3.11,2.67 -4.06,1.43 -3.8,3.68 -2.7,1.82 -6.53,0.96 -9.21,3.43 2.58,-2.32 -2.41,0.17 0.41,1.46 1.07,1.21 5.82,-0.36 2.73,1.55 -2.21,-1.2 -6.6,3.05 -7.27,0.97 1.25,-2.46 -5.49,-1.56 -0.98,-2.96 4.95,-1.59 -4.78,-0.76 -3.46,-2.07 -3.23,-0.26 4.67,-0.42 0.65,-0.42 -1.37,-1.95 0.32,-0.22 -1.65,-0.07 -0.22,-1.27 -3.13,2.33 -3.62,0.72 0.24,0.25 0.69,1.87 -1.3,2.11 1.92,-1.05 -1.71,-0.2 -0.1,0.98 -0.61,-0.67 -6.41,0.78 -2.76,-1.71 0.93,-2.27 1.5,-1.55 3.85,-1.53 -0.18,-1.02 -2.58,-1.29 -1.6,-2.59 -0.99,-1.59 -2.48,-2.46 -4.37,-2.61 -2.58,-1.71 -4.68,1.24 -7.34,0.98 -2.41,0.31 -5.68,-0.1 -7.92,-0.87 -0.4,-0.01 -0.51,-0.49 -0.9,-0.53 z\",\n                        \"KE\" : \"m 565.98,238.45 c -1.07,-3.74 2.54,-5.6 3.18,-8.69 -1.15,-1.8 -1.5,-4.12 -2.68,-5.32 0.29,-3.5 6.28,-1.26 8.65,-0.77 2.74,2.44 6.51,2.92 8.94,0.29 1.02,-0.16 4,0.51 3.69,0.99 -3.5,3.08 -1.82,7.92 -2.24,12.02 0.81,1.63 2.52,4.78 -0.33,4.2 0.79,1.52 -2.38,1.75 -2.35,3.92 -0.94,2.23 -1.95,5.44 -4.46,2.07 -2.59,-1.71 -2.38,-4.35 -6.03,-5.25 -2.2,-0.99 -4.16,-2.68 -6.39,-3.46 z\",\n                        \"TW\" : \"m 805.03,169.47 c -0.48,1.96 2.33,6.52 2.74,2.31 0.92,-1.65 3.91,-7.83 0.29,-6.84 -1.39,1.01 -2.44,2.92 -3.04,4.53 z\",\n                        \"JO\" : \"m 568.85,153.04 c 0.91,-3.06 1.42,-6.72 2.23,-9.42 2.89,2.96 6.55,-2.17 8.62,-1.24 2.67,3.53 -1.78,4.19 -4.98,4.69 0.47,0.91 3.25,2.52 2.05,2.92 -1.97,1.51 -4.82,4.48 -7.93,3.06 z\",\n                        \"MX\" : \"m 146.91,144.12 c 4.03,-0.61 6.19,-0.66 9.33,0.98 3.78,0.9 7.36,3.02 11.36,2.39 1.8,-0.09 4,0.57 4.58,-1.3 3.87,-0.71 7.78,1.72 9.43,5.05 1.12,2.54 5,3.88 6,0.6 4.48,-1.37 5.43,4.11 8.08,6.22 0.1,3.47 3.3,3.99 5.99,4.78 1.66,0.21 -1.86,4.93 -0.82,6.79 -1.12,2.04 1,5.79 0.91,5.71 -2.07,-3.94 0.48,2.62 1.93,3.59 1.77,1.76 2.02,5.25 2.55,3.87 2.27,0.76 5.91,2.4 5.97,1.14 2.66,-0.29 4.19,-1.31 5.88,-0.17 1.6,-1.88 -1.16,-0.68 1.42,-1.96 2.46,-2.61 0.26,-6.77 5.15,-6.31 3.48,-0.81 3.86,-0.36 6.33,-0.19 0.26,2.44 -2.58,4.46 -2.14,5.95 0.62,0.64 -0.9,4.29 -1.51,1.72 -1.52,1.82 -2.49,2.76 -4.99,2.52 -1.62,-0.04 -3.27,-0.35 -3.18,1.62 -2.43,-0.32 5.21,3.74 0.25,3.3 -3.93,-1.31 -2.58,6.77 -4.69,2.76 -0.69,-1.06 -6.52,-4.51 -3.45,-2.55 -3.28,-1.38 -1.63,-0.96 -5.09,0.37 -3.83,1.6 -7.15,-1.96 -10.81,-2.44 -3.76,-1.96 -7.39,-3.38 -11.04,-5.17 -1.44,-1.39 -7.37,-3.65 -4.34,-5.73 -1.08,-0.83 1.2,-2.68 -1.02,-3.9 -0.19,-2.82 -5.05,-6.01 -5.47,-6.73 -0.63,-1.05 -3.04,-3.19 -3.99,-3.34 -1.06,0.21 -1.42,-1.5 -0.43,-2.24 -0.91,-1.2 -4.58,-1.95 -3.82,-4.15 -2.28,0.08 -4.27,-2.95 -5.37,-4.94 -1.41,-2.21 -1.42,-5.35 -4.29,-5.46 -1.79,0.17 -3.23,-2.4 -2.32,0.28 -0.23,3.69 3.17,5.75 4.96,8.27 0.78,1.45 3.2,4.8 3.49,5.02 0.49,-0.56 2.41,4.15 3.06,5.6 0.06,2.72 2.23,0.16 2.89,3 2.19,1.7 -2.08,2.99 -1.92,0.26 -2.75,-2.57 -6,-2.84 -5.08,-6.62 -1.52,-0.71 -2.61,-3.46 -3.45,-2.34 -1.97,-0.2 -6.6,-4.19 -2.34,-2.76 1.72,1.22 0.86,-0.5 0.25,-0.24 1.51,-2.83 -4.23,-4.37 -4.82,-7.38 -1.2,-1.22 -1.91,-4 -3.41,-5.63 z\",\n                        \"AE\" : \"m 614.9,167.34 c 1.12,1.33 4.68,0.15 7.22,0.3 0.84,-0.73 3.89,-4.15 5.57,-5.23 0.32,1.15 1.11,4.3 -0.84,3.09 -0.43,1.59 0.57,2.62 -0.88,3.06 -0.36,3.02 -1.96,4.08 -4.92,2.93 -3.16,0.32 -4.78,-1.53 -6.14,-4.15 z\",\n                        \"BZ\" : \"m 224.45,190.94 c 0.24,-3.09 -0.56,-6.25 2.53,-7.3 0.29,1.75 0.85,5.64 -1.6,6.97 l -0.06,0.33 z\",\n                        \"BR\" : \"m 266.7,256.8 c 1.46,-2.11 2.75,-3.84 3.14,-6.74 2.29,-1.46 5.6,-3.35 7.84,-2.31 0.57,-3.26 2.17,-6.93 1.28,-10.19 -1.94,-1.19 -1.76,-4.64 1.04,-3.76 0.18,-1.73 -3.3,-0.97 -1.54,-3.06 3.03,0.03 4.52,0.14 6.33,-1.04 1,1.65 1.4,3.9 4.06,3.71 1.53,-1.52 1.23,1.67 2.51,-0.87 2.04,-0.84 3.65,-2.08 4.62,-3.66 -2.79,0.11 -1.74,-4.02 -3.65,-5.3 1.71,0.49 4.48,1.94 5.53,1.46 0.52,-2 6.46,-0.98 5.62,-4.04 2.95,-1.06 1.23,2.16 2.82,2.76 -0.07,2.41 -1.85,6.71 1.73,8.09 1.93,0.81 3.93,-2.13 6.16,-1.54 2.09,0.09 2.63,0.19 2.43,-1.56 2.53,-1.05 4.4,1.51 6.59,0.45 3.41,1.99 3.65,-5.35 6.01,-4.79 -0.54,-2.73 1.11,2 1,0.3 0.25,3.01 0.78,5.59 3.32,6.7 -0.09,1.92 -4.17,4.12 -5.06,7.04 -0.34,1.56 -4.33,1.35 -1.45,1.78 1.67,0.03 4.62,-3.81 4.25,0.41 1.46,1.61 4.74,-1.62 3.38,1.58 -0.5,0.81 2.36,-3.23 2.79,-2.35 1.43,-0.16 -0.83,0.06 0.54,-1.23 1.18,-1.57 2.7,-1.1 3.66,-0.82 0.73,0.05 1.03,0.82 2.11,0.83 1.07,0.67 2.48,0.63 2.32,1.38 0.78,-0.13 1.62,-0.15 1.87,0.67 1.16,0.13 -1.26,2.24 0.79,1.18 -0.69,1.26 -1.58,4.64 0.01,1.46 1.86,-2.63 -0.55,1.94 1.3,-0.46 1.59,-1.38 4.26,0.93 5.97,0.64 2.74,0.42 6.44,-0.33 8.95,2.53 2.13,3.18 5.69,3.83 8.9,4.58 1.09,3.16 1.62,4.91 1.4,7.38 -0.38,3.15 -2.76,4.44 -3.38,6.11 -2.21,1.74 -3.17,2.31 -3.54,3.19 -0.25,0.79 -2.34,6.81 -3.79,3.74 -0.42,1.14 -1.31,3 -0.85,3.69 -0.01,1.34 0.72,6.53 -0.56,9.43 -0.34,2.2 -1.91,4.24 -1.69,6.7 -1.24,2.13 -3.31,3.79 -3.37,6.7 -2.84,0.59 -2.01,3.47 -5.06,2.71 -1.22,-1.53 -0.6,0.65 -3.13,0.33 2.75,-0.82 -3.29,-0.52 -1.79,0.67 -1.69,0.79 -3.67,1.71 -4.9,1.86 -3.43,1.46 -4.25,4.41 -6.41,3.93 1.76,0.96 -0.49,1.07 0.3,2.05 -0.9,0.64 0.67,3.24 0.07,4.84 -0.26,2.68 -4.11,4.03 -5.09,7.86 -0.66,2.16 -7.08,5.51 -3.13,2.81 1.27,-0.99 4.21,-4.65 1.47,-3.73 -1.31,-1.93 -0.07,1.79 -0.93,1.26 -1.83,1.86 -2.32,3.24 -2.93,5.11 0.04,2.12 -4.51,4.63 -2.66,1.15 0.95,-2.58 -4.38,-3.84 -5.93,-5.87 -1.77,1.23 -2.88,-3.55 -5.59,-1.85 1.22,-1.65 4.21,-4.54 5.22,-5.85 2.71,-1.71 7.57,-3.48 4.51,-7.29 -3.94,1.35 1.69,-5.48 -2.17,-4.73 -3,1.6 -1.94,-7 -4.92,-4.41 -2.28,0.5 -5.22,-0.81 -3.49,-3.69 -0.95,-1.92 -0.41,-2.95 -0.14,-4.92 1.86,-2.56 0.16,-4.82 -1.6,-6.55 1.79,-3.82 -6.05,0.49 -4.98,-4.03 -0.75,-1.12 0.85,-5.38 -2.7,-5.56 -2.5,0.22 -4.23,-2.13 -6.37,-2.71 -2.28,0.01 -5.18,-1.62 -4.99,-4.14 -0.44,-2.07 0.99,-4.92 -2.61,-3.53 -2.64,0.91 -4.45,2.73 -6.87,3.62 -2.12,-1.36 -6.87,1.41 -5.16,-3.45 1.08,-3.21 -4.45,3.31 -4.83,-1.02 -1.8,-0.36 -2.28,-0.1 -2.04,-1.84 -1.24,-1.17 -1.54,-2.65 -2.51,-3.78 z m 64.34,-17.04 c 1.69,1.81 4.29,0.77 5.82,-0.97 2.76,-3.8 -3.6,-2.64 -5.41,-2.38 0.34,1.32 -0.93,1.2 0.01,2.25 1.2,0.1 -1.24,-0.03 -0.42,1.1 z\",\n                        \"SL\" : \"m 435.02,210.22 c 1.93,-1.56 5.36,-4.95 7.22,-0.74 1.09,1.13 -0.89,3.59 1.16,2.39 -1.16,2.19 -3.35,5.68 -6.08,2.91 1.45,-0.71 -1.26,-0.53 -1.72,-2.37 -1.36,-0.45 1.89,-1.32 -0.29,-0.89 -0.48,-0.9 1.07,-0.74 -0.28,-1.31 z\",\n                        \"ML\" : \"m 437.94,194.09 c 2.04,0.27 0.91,-4.28 3.33,-1.43 0.66,-0.14 2.73,-0.47 4.23,-0.55 2.58,-0.13 7.07,-0.19 10.4,-0.03 2.61,-1.65 -0.96,-6 -0.22,-8.98 -0.61,-5.94 -1.17,-11.89 -2.04,-17.8 2.18,0.22 4.68,-0.68 6.45,0.99 5,3.35 10.11,6.64 14.98,10.12 0.79,2.34 3.83,2.32 5.75,3.54 -0.87,2.43 0.94,2.51 2.85,1.83 -0.17,3.51 0.95,7.94 -1.95,10.48 -3.03,-0.07 -6.2,0.86 -9.14,1.22 -2.98,-1.16 -5.79,2.3 -8.35,2.58 -0.66,1.62 -1.51,1.07 -1.88,2.53 -3.32,-2.45 -1.5,3.09 -4.45,3.36 -1.6,0.57 0.02,4.22 -2.58,4.94 -1.29,0.07 -0.15,-2.12 -1.6,-1.03 -0.4,1.08 -1.89,1.12 -3.22,0.55 -1.36,2.1 -1.08,-2.87 -2.67,-1.59 1.46,-1.31 -0.82,-2.75 -1.47,-4.3 -0.46,1.21 -3.4,1.35 -4.37,1.04 -1.52,0.18 -2.09,0.26 -1.85,-1.7 -0.05,-2.03 -2.16,-2.23 -1.89,-4.57 -0.51,-0.29 0.13,-0.87 -0.33,-1.19 z\",\n                        \"CD\" : \"m 505.77,251.86 c 1.11,-0.45 1.26,-4.86 3.32,-2.51 1.04,-1.47 3.32,-2.13 3.01,-0.08 3.18,-1.06 5.29,-4.26 5.08,-7.65 2.52,-2.81 4.78,-5.42 4.56,-9.55 0.61,-2.99 2.06,-6.3 2.13,-8.9 2.02,-4.45 4.64,0.54 7.38,0.4 2.12,0.77 3.39,0.33 4.39,-1.51 2.2,1.04 4.02,-1.17 6.29,-0.61 1.13,-1.59 4.43,0.23 6.29,0.12 1.5,3.66 5.21,-0.2 6.72,2 2.14,1.43 3.1,2.6 2.3,5.16 3.85,1.6 -3.17,3.66 -2.74,6.36 0.38,3.32 -2.26,5.6 -2.13,8.35 1.51,3.41 0.61,7.8 2.24,10.97 1.86,1.39 4,5.34 0.03,4.67 -3.03,-0.07 -4.18,2.35 -3.41,4.97 -0.48,2.25 -0.88,7.37 2.73,5.97 1.08,-0.64 0.96,4.79 -0.18,2.86 -2.42,1.32 -2.68,-3.38 -5.42,-2.94 -0.95,-3.24 -2.96,0.76 -5.34,-1.31 -1.27,-0.74 -0.93,-2.21 -3.01,-0.96 -0.5,-0.98 -1.88,-1.79 -3.82,-0.94 -1.87,0.16 -3.53,0.88 -2.39,-1.55 -1.9,-2.75 -1.01,-6.14 -1.62,-9.07 -1.53,-0.06 -3.51,0.31 -3.49,-1.1 -2.15,0.08 -3.24,0.79 -3.08,3.1 -2.11,-0.79 -4.92,1.62 -5.92,-1.16 -1.4,-2.23 -1.11,-6.26 -5.05,-4.86 -2.81,-0.23 -6.65,0.7 -8.88,-0.26 z\",\n                        \"IT\" : \"m 507.51,129.94 c -3.05,-1.56 2.25,-1.9 3.67,-1.24 1.87,-0.1 5.68,-1.88 2.74,1.15 1.11,2.58 -1.33,3.18 -3.09,1.38 -1.28,-0.02 -2.12,-1.1 -3.32,-1.29 z m -12.37,-8.02 c -1.85,-1.43 1.82,-2.01 2.86,-1.99 1.23,0.55 1.16,4.18 0.05,5.58 -1.7,1 -3.95,0.46 -2.47,-1.54 -0.34,-0.72 -0.13,-1.18 -0.44,-2.05 z m -4.9,-13.17 c 3.1,-0.02 -1.04,-2.76 2.09,-2.35 2.48,-0.19 2.62,-2.39 4.57,0.34 -0.27,-2.86 2.83,-0.83 2.93,-1.72 0.94,-1.14 3.02,-1.32 5.54,-1.83 0.95,1.66 5.23,1.16 4.21,3.41 2.1,1.41 -2.13,-0.39 -3.2,1.12 -0.43,-0.49 -1.01,1.04 0.12,1.66 -2.29,2.57 4.77,3.24 4.6,6.55 0.65,2.38 6.19,0.94 5.12,2.54 0.55,2.04 7.22,1.64 6.66,5.04 -1.28,-1.22 -5.59,-2.89 -4.92,0.65 3.38,1.22 -0.58,2.57 -1.22,4.3 -2.73,1.61 -0.35,-1.81 0,-2.41 -0.55,-2.94 -2.96,-3.35 -4.6,-4.73 -1.02,-1.37 -5.06,-1.66 -6.86,-3.77 -3.53,-0.91 -3.86,-4.73 -7.02,-6.29 -1.56,-2.47 -6,3.28 -5.14,0.18 -3.86,0.28 -0.56,-1.71 -2.89,-2.69 z\",\n                        \"SO\" : \"m 585.58,229.11 c 0.69,-4.69 6.2,-7.52 10.68,-7.31 2.28,-1.77 4.01,-4.34 6.21,-6.28 1.31,-1.33 3.8,-3.01 0.32,-2.36 -3.72,-1.45 -8.97,-1.63 -11.19,-5.33 -3.05,-1.74 0.89,-6.67 2.05,-2.34 2.51,2.1 5.36,-0.94 8.17,-0.4 2.93,-1.76 6.73,-0.59 9.82,-2.27 3.25,-3.21 1.61,3.36 2.25,3.39 1.32,-0.12 -2.15,0.54 -0.97,2.35 -1.4,3.16 -3.42,5.74 -4.82,8.9 -1.89,4.51 -5.29,8.36 -9.04,11.49 -4.21,2.3 -7.59,5.75 -10.67,9.35 -0.46,0.71 -1.19,3.14 -2.01,0.66 -1.7,-2.5 -0.43,-5.99 -0.81,-8.9 l 0,-0.47 z\",\n                        \"AF\" : \"m 639.74,139.82 c 1.69,-1.45 1.23,-5.93 4.7,-3.54 1.43,1.33 2.67,-1.68 3.45,-1.57 3.5,0.06 3.17,-4.17 6.08,-4.32 2.12,-0.55 5.14,0.72 7.27,1.14 1.63,-1.71 3.03,0.55 3.91,-1.65 2.23,1.22 1.92,-4.15 4.62,-1.79 0.27,1.14 0.98,1.67 0.38,3.63 1.58,2.07 5.54,-3.13 6.54,-0.84 2.18,-0.77 3.22,-0.4 2.08,0.59 -2.94,0.85 -7.6,-0.11 -9.19,2.95 2.67,2.03 -1.37,3.58 -0.54,5.27 -2.16,0.74 -4.42,-0.54 -2.19,2.29 -3.26,-0.32 -1.84,4.85 -4.25,4.39 -1.55,-0.59 -3.3,0.83 -3.34,1.36 -3.63,-1.33 -2.64,3.38 -4.45,4.24 -4.18,0.55 -8.59,1.68 -12.69,0.06 -3.07,-0.31 4.68,-5.14 -1.31,-5.25 -0.69,-1.82 -0.25,-4.72 -0.62,-5.58 -0.62,-0.14 -0.37,-0.99 -0.44,-1.38 z\",\n                        \"BD\" : \"m 716.95,161.12 c 0.8,-0.22 1.8,1.17 2.06,0.38 1.27,1.37 2.41,0.19 2.29,3 1.76,0.89 7.81,-0.72 6.42,1.69 -1.03,1.41 -4.28,2.92 -2.37,4.04 1.32,2.74 1.74,-3.85 2.7,-0.2 -0.07,1.9 2.06,6.05 -0.4,5.62 0.02,3.91 -0.92,-4.11 -1.4,-3.01 -0.46,-2.79 -2.64,1.38 -2.92,-2.19 0.42,-2.1 -0.97,-0.41 -0.61,-0.49 0.43,1.3 -0.12,2.01 0.29,3.26 -0.2,-0.37 -1.91,2.15 -0.98,0.24 -0.49,0.49 -0.68,-0.2 -0.82,-0.86 0.03,2.56 -1.46,1.13 -0.88,0.69 -0.26,0.81 -0.26,-1.15 -0.23,0.9 -0.62,0.75 -0.11,-1.06 -0.79,0.58 -0.52,-2.38 -1.15,-4.56 -1.56,-6.27 1.17,-1.53 -3.4,-2.26 -0.76,-3.09 1.6,-0.72 2.09,-1.06 0.18,-1.93 -2.43,-0.94 1.25,-2 -0.22,-2.35 z m 6.09,10.81 c 0.03,1.88 0.88,2.41 0.6,0.18 -0.25,-0.23 -0.31,-0.96 -0.6,-0.18 z\",\n                        \"DO\" : \"m 272.83,184.89 c -0.53,-1.77 0.29,-3.1 0.36,-5.21 2.54,-0.49 5.56,1.5 6.64,1.93 -2.86,-0.43 5.6,2.18 1.12,2.37 -2.45,-0.36 -4.34,0.19 -6.19,0.35 -0.48,1.5 -1.01,2.47 -1.93,0.57 z\",\n                        \"GW\" : \"m 425.53,200.98 c 2.38,-0.33 4.57,-1.22 7.02,-1.01 2.59,-0.24 0.04,1.59 1.2,2.64 -2.43,-0.49 -3.7,3.48 -4.57,1.09 0.75,-1.43 0.86,-0.14 -0.24,-1.09 2.76,-0.42 0.44,-0.85 -1.35,0.03 2.05,-1.52 -2.31,0.28 -0.46,-1.61 -0.69,0.1 -0.93,0.55 -1.61,-0.05 z\",\n                        \"GH\" : \"m 463.12,218.04 c -0.22,-3.53 2.96,-6.14 1.13,-9.66 -0.36,-2.09 -1.06,-4.54 2.09,-3.68 2.18,0.85 5.88,-1.57 5.79,1.26 1.67,1.44 -0.15,3.04 1.26,3.69 0.13,2.29 0.34,4.75 0.19,7.43 1.73,0.4 1.94,2.6 0.15,2.09 -0.84,-0.97 -1.55,-0.77 0.01,-0.12 -3.22,0.88 -6.4,4.07 -9.73,2.5 -1.54,0.11 1.78,-1.18 -0.32,-1.76 0.11,-0.64 -0.23,-1.24 -0.57,-1.76 z\",\n                        \"AT\" : \"m 498.33,102.64 c 0.57,-1.73 2.38,0.79 3.17,-0.71 2.12,0.58 4.66,-0.95 6.64,-0.11 -1.9,-2.04 1.39,-2.14 2.12,-3.4 2.58,1.59 3.61,-1.95 6.56,0.05 3.57,-0.79 2.09,3.65 1.2,3.27 -0.3,2.95 -3.14,2.19 -5.71,3.3 -2.34,-0.32 -6.06,-0.31 -7.08,-1.78 -2.62,0.75 -4.48,0.69 -6.73,-0.02 l 0.01,-0.32 z\",\n                        \"SE\" : \"m 503.07,69.37 c 2.29,1.64 0.79,-3.19 3.48,-2.93 1.06,-1.32 -1.91,-2.64 0.84,-2.85 0.63,-1.42 -2.73,-1.22 -1.44,-3.27 -1.05,-2.33 -0.33,-5.19 2.99,-4.95 1.69,0.79 3.22,-1.25 0.83,-1.43 2.34,-0.66 2.48,-3.52 3.11,-4.4 1.67,-0.14 3.98,-2.03 4.49,-3.23 -1.16,-1.42 3.27,-2.43 4.88,-2.38 -0.36,-2.99 6.56,0.79 5.61,-1.45 0.75,-2.79 6.02,1.11 8.74,1.36 1.76,0.22 -0.56,2.09 1.31,2.27 -1.16,0.73 1.47,1.77 -0.24,2.84 2.9,2.24 -1.35,1.51 -1.95,1.63 -2.18,-0.67 -1.63,1.02 -3.03,0.7 0.16,0.51 -1.39,0.13 -0.93,1.34 -3.45,0.72 2.08,1.59 -1.5,2.46 -1.99,1.99 -4.11,1.55 -6.45,2.85 -1.95,0.25 0.37,0.75 -1.88,0.98 0.4,0.08 -1.63,-1.45 -0.21,0.24 -0.86,0.96 -1.99,0.69 -1.09,1.46 -0.52,2.59 -1.41,0.78 -1.07,2.37 -0.25,3.19 3.46,1.91 4.93,4.05 0.88,1.07 -4.17,1.6 -0.98,1.79 -0.31,-0.45 -1.15,1.75 -2.7,0.64 0.72,1.18 -3.27,1.21 -3.17,1.26 2.66,0.54 -1.56,0.14 0.83,1.06 -0.62,1.31 -0.04,1.66 -1.19,4.34 -0.86,3.05 -6.6,0.05 -5.62,3.58 -2,-0.05 -4.22,0.96 -4.17,-1.25 -1.78,-1.45 1.78,-1.69 -1.27,-3.17 -1.84,-1.15 -1.31,-2.93 -1.87,-3.66 -0.87,-0.06 0.36,-0.36 -0.86,-0.2 -0.39,0.39 -0.79,-1.77 -0.43,-2.02 z m 19.78,5.86 c 1.67,-0.89 2.56,-3.93 -0.46,-1.71 -0.09,0.69 -0.24,2.77 0.46,1.71 z m -5.45,1.61 c 0.61,1.22 3.14,-5 0.72,-1.2 -0.33,0.31 -0.83,0.66 -0.72,1.2 z\",\n                        \"TR\" : \"m 544.2,124.61 c -0.19,-3.46 5.6,-2.64 5.36,-2.55 1.31,-0.09 3.86,0.31 2.53,-0.61 2.88,-0.79 2.42,0.17 0.35,-1.24 2.89,-0.92 6.58,0.52 9.35,-1.99 3.33,-0.86 6.8,-1.32 9.09,0.22 1.54,0.31 3.87,1.67 6.25,1.93 3.71,0.27 7.46,-0.25 10.79,-1.28 2,-0.43 3.08,-0.35 4.43,0.78 1.22,1.57 -0.08,3.67 2.78,3.29 2.74,1.29 -2.71,1.04 -0.37,3.34 -0.08,2.03 0.48,2.83 1.38,4.65 -1.79,0.36 -4.56,-1.14 -6.84,-0.22 -3.3,-0.31 -6.8,1.88 -10.22,1.34 -1.74,-0.49 -4.1,0.38 -5.62,0.15 0.58,1.1 -1.19,2.8 -1.8,1.96 -1.11,-0.92 2,-3.14 -0.57,-2.19 -0.84,1.09 -4.26,-0.84 -5.19,1.34 -2.98,3.2 -7.33,-4.03 -9.27,-0.46 -1.59,2.06 -4.09,-0.49 -5.63,-0.92 -1.1,0.37 -1.36,0.57 -1.51,0.13 -4.23,0.77 3.27,-0.76 -0.58,-0.85 -2.1,0.18 -1.05,0.28 -0.63,-0.64 -1.89,-0.4 -0.01,-2.04 -2.33,-2.61 -1.69,0.79 -0.65,-2.62 0,-0.43 2.24,0.08 -0.69,-0.86 0.78,-1.55 -1.97,-1.18 1.52,-2.33 -2.52,-1.57 z m -0.08,-3.56 c 2.53,-1.48 -0.23,-4.36 3.83,-3.6 1.87,-0.15 2.85,1.97 4.5,2.55 -2.73,0.01 -5.63,0.78 -7.84,2.96 0.29,-1.45 3.13,-1.91 -0.16,-1.53 l -0.21,-0.12 z\",\n                        \"UG\" : \"m 553.91,238.9 c -0.39,-4.17 2.3,-6.77 4.75,-9.42 -2.41,0.04 -1.63,-5.56 0.75,-4.17 1.7,0.21 3.32,-0.39 5.57,-0.42 2.14,-2.38 2.72,2.71 4,4.52 0.43,3.24 -4,4.5 -2.99,8.06 -1.04,2.18 -5.96,0.5 -8.56,0.92 -1.39,0 -2.88,2.34 -3.52,0.5 z\",\n                        \"MZ\" : \"m 555.68,277.82 c 3.38,-0.51 7.85,-4.21 10.07,-1.42 4.51,-0.87 -0.98,5.86 3.59,6.74 0.61,2.22 -0.65,-2.7 1.56,-2.32 2.53,-3.74 -2.44,-6.16 -3.24,-8.98 -1.9,-4.36 3.49,-4.31 5.89,-3.25 1.32,-0.53 2.84,0.44 3.87,-1.29 2.26,1.88 7.76,-4.55 6.8,-0.28 -0.52,2 0.53,4.58 0.1,6.64 0.2,2.16 0.97,3.01 0.4,4.25 -0.43,1.98 -3.01,5.04 -5.57,5.78 -3.19,1.08 -5.18,2.18 -6.33,4.8 -1,-0.6 -4.36,4.09 -4.82,2.41 0.15,2.61 1.46,4.11 1.84,6.62 -0.17,2.65 1.06,-1 0.49,1.71 0.65,1.67 -1.08,3.66 0.13,3.82 -0.58,3.45 -10.01,3.24 -7.47,6.38 2.13,1.12 -2.26,3.35 -1.99,0.39 -0.65,-3.17 -0.44,-6.79 -1.88,-10.02 -0.89,-2.83 3.92,-3.48 3.06,-6.29 2.7,-1.94 -0.57,-4.19 1.33,-6.02 -0.33,-2.62 0.82,-5.75 -2.86,-5.66 -2.16,-2 -5.13,0.08 -4.95,-4.02 z\",\n                        \"JP\" : \"m 856.18,127.94 c -1.84,1.01 0.27,2.23 0,0 z m 8.64,-20.15 c 0.38,2.34 0.31,7.64 -3.24,5.92 0.46,1.55 -3.12,2.39 -0.87,4.1 -1.78,2.55 5.43,-0.24 1.23,-0.76 -1.88,-2.01 2.04,0.05 3.04,-1.31 1.98,0.42 4.65,3.42 5.48,-0.05 1.5,-1.31 5.08,-0.78 5.48,-2 -1.46,0.31 -1.51,-1.51 -0.94,-2.78 -2.12,2.33 -5.03,0.1 -7.2,-1.25 -0.96,-0.69 -1.68,-2.33 -2.98,-1.87 z m -25.3,33.26 c -1.96,1.25 -0.79,0.12 0.08,1.06 -0.66,1.4 2.1,2.1 2.13,-0.17 1.59,-0.98 2.83,0.63 3.83,-1.61 -0.73,-3.04 -3.47,0.43 -4.98,-0.63 -0.33,0.44 -0.48,1.13 -1.04,1.36 z m -4.43,-0.85 c 1.96,-0.48 3.46,0.68 4.31,-1.17 2.06,0.38 3.71,-0.69 5.65,-1.14 1.06,0.33 3.92,-0.05 1.52,1.29 -0.04,2.5 3,2.91 3.71,0.24 2.76,0.37 -1.03,-2 1.2,-2.22 -0.8,1.25 2.05,-0.16 0.73,1.18 2.25,-0.07 3.07,-0.2 4.69,-1.45 -0.84,1.6 1.08,1.49 1,-0.46 1.69,1 1.25,-1.62 2.53,-0.79 -2.34,2.74 0.98,1.33 1.51,-0.29 0.85,-0.39 -0.74,-3.11 1.07,-3.95 0.41,-1.16 -0.91,-4.42 1.52,-3.5 0.7,-2.16 2.14,-4.91 -0.38,-6.96 1.19,-1.59 -1.49,-2.88 -1.55,-1.2 2.79,-0.41 -0.65,2.12 -0.91,-0.01 -0.96,0.48 -1.8,1.83 -1.8,3.26 -1.26,0.07 2,1.61 -0.15,3.1 -1.01,2.68 -5.58,6.7 -7.62,5.5 -0.92,-0.68 2.17,-2.09 -0.47,-1.18 -0.41,1.88 -2.34,3.69 -2.79,5 -2.16,1.03 -1.9,-1.28 -4.8,0.22 -3.81,-0.99 -5.72,2.44 -9.06,3.44 l -0.04,0.57 z m -3.05,1.69 c -1.65,0.19 1.8,1.81 -0.39,1.11 1.03,1.15 2.45,0.91 1.24,-0.52 3.49,0.55 -2.05,4.9 1.23,5.48 -0.19,-1.7 1.19,-1.77 0.25,0.42 2.1,-0.6 3.06,-4.2 3.57,-5.74 -1.92,-0.54 0.47,-2.18 -2.22,-1.51 -0.75,-2.25 -2.9,0.43 -3.68,0.77 z m -5.99,20.39 c 1.34,-1.15 2.28,-2.78 0.65,-1.35 -0.25,0.41 -0.91,0.79 -0.65,1.35 z\",\n                        \"NZ\" : \"m 980.38,359.42 c 1.59,0.63 -0.23,-0.77 1.18,-0.76 -2.77,0.04 -0.77,-0.16 -1.18,0.76 z m -23.67,-7.74 c 2.14,2.42 4.24,-1.63 5.73,-3.43 -0.09,-1.29 0.81,-3.97 2.77,-2.23 0.11,-1.33 3.61,-5.66 -0.04,-4.42 -2.7,2.86 -6.03,-1.77 -6.17,-2.62 -1.34,-2.4 0.57,3.23 -1.32,0.45 -1.54,0.37 -1.17,-2.95 -2.07,-3.17 1.31,0.47 -1.09,-2.61 -0.89,-1.21 -0.64,-1.78 -3.1,-0.5 -3.03,-2.47 -1.58,-0.97 0.72,3.28 1.2,2.63 -0.84,-0.87 2.64,4.36 1.51,2 1.37,-0.12 1.56,1.23 0.71,1.18 0.74,1.83 2.19,0.91 1.26,2.12 0.85,1.57 0.3,5.01 -2.42,5.22 0.8,1.83 6.18,3.35 2.38,6.16 h 0.35 z m -23.16,13.34 c 1.43,-0.64 -0.04,1.31 2.71,0.51 2.11,0.86 4.97,2.3 7.18,0.16 2.23,-1.12 1.62,-1.84 3.08,-4.28 1.22,-2.98 4.59,-2.2 5.41,-2.8 -2.75,-1.32 2.77,-3.59 3.2,-5.59 -1.26,-1.38 1.75,-1.87 -0.72,-1.42 1.64,-1.35 -1.32,0.96 -0.13,-0.9 -1.84,1.5 -2.02,0.63 -3.02,-0.32 -1.28,-0.72 1.64,-1.16 -0.99,-0.6 -1.6,2.24 -2.96,4.34 -4.78,6.58 -3.04,1.83 -7.46,3.44 -9.11,5.24 -1.94,0.98 -0.67,1.81 -2.02,1.88 -1.19,0.79 2.01,-0.37 -0.12,0.44 1.48,0.34 -1.01,0.13 -0.68,1.1 z m 4.23,2.52 c 0.39,-1.85 -2.66,1.98 0.05,0.67 1.38,0.02 -0.1,-0.55 -0.05,-0.67 z\",\n                        \"CU\" : \"m 241.98,175.35 c -2.12,-0.41 1.52,-2.41 0.61,-0.14 z m -5.53,-1.26 c 2.2,-0.06 1.37,-3.05 4.41,-3.05 3.72,-0.8 5.87,-0.72 9.13,0.22 1.3,1.13 4.9,1.77 6.58,3.1 1.31,0.86 -0.15,-0.99 1.4,0.57 -0.58,0.42 2.65,0.95 4.2,1.75 -1.67,0.65 7.22,1.75 2.29,2.73 -2.01,0.36 -5.38,-0.1 -8.08,0.44 1.59,-1.04 2.34,-2.98 -0.59,-2.44 -1.98,-0.84 -1.67,-3.44 -4.25,-2.54 -2.82,-1.76 -5.11,-1.09 -7.22,-2.28 3.23,-0.68 -3.4,-1.54 -3.71,0.57 -1.75,0.07 -2.86,1.63 -4.15,0.93 z\",\n                        \"VE\" : \"m 268.42,209.82 c 0.97,-2.58 3.12,-7.68 5.32,-7.2 -3.36,0.3 1.55,3.51 -1.64,5.08 -0.12,3.73 4.58,2.02 1.93,-0.83 -2.24,-2.86 4.14,-3.18 4.38,-3.78 -2.75,0.43 -0.26,-3.72 0.01,-0.24 1.91,0.5 4.17,1.08 4.61,3.31 3.18,-1.09 6.18,0.35 8.7,1.24 2.75,-1.2 3.12,-1.35 2.53,-1.66 1.61,-0.19 8.79,-0.45 3.86,0.26 -2.39,-0.24 1.52,1.3 -0.96,1.24 1.21,-0.35 1.63,0.38 2.13,0.76 -0.13,0.15 0.68,0.47 0.21,-0.33 0.87,0.79 2.07,-0.05 3.73,1.72 -0.17,0.75 -2.12,2.37 -1.78,2.29 0.79,0.3 6.07,-1.08 3.6,1.46 -3.33,1.26 1.48,3.28 -2.31,3.6 -1.81,1.84 0.24,3.32 0.99,5.23 -1.62,1.67 -4.02,1.65 -5.92,2.58 0.24,2.11 -2.51,-0.76 -3.65,-0.22 -3.92,-1.92 0.79,2.1 0.24,4.27 3.91,0.06 -0.98,2.09 -1.1,2.94 -1.76,0.26 -2.96,3.24 -3.63,1.35 -3.83,2.2 -3.61,-4.88 -5.84,-5.46 2.84,-1.65 -2,-5.15 0.54,-7.64 1.68,-4.03 -5.54,0.73 -6.18,-2.84 -1.67,-2.55 -5.64,0.37 -7.24,-2.33 0.7,-1.68 -0.57,-5.67 -2.53,-4.79 z\",\n                        \"PT\" : \"m 445.98,125.1 c 1.66,-1.86 2.37,-5.18 1.31,-6.81 0.24,-1.34 2.63,-1.51 2.05,-0.28 2.16,-1.06 7.75,0.04 3.38,2.22 0.21,1.55 0.62,4.19 -1.74,3.81 2.54,1.22 -0.16,3.54 1.44,4.41 -1.67,1.35 -1.15,4.11 -4.28,2.74 -2.59,1.02 1.31,-5.72 -1.84,-3.62 0.53,-1.15 1.43,-1.51 -0.56,-0.75 -0.57,-0.46 0.26,-1.17 0.24,-1.72 z\",\n                        \"CO\" : \"m 252.95,231.17 c -0.47,-0.82 1.85,-0.35 0.81,-1.95 2.5,-0.46 3.03,-2.26 4.08,-4.06 -0.63,-0.77 -0.28,-1.72 -0.65,-4.65 1.16,-2.12 -1.46,-4.1 -0.91,-6.37 2.5,1.42 -0.06,-4.87 1.91,-1.82 1.43,2.74 -0.39,-2.04 2.18,-2 2.56,-1.09 1.18,-3.33 2.83,-4.85 0.82,-1.6 2.69,-1.01 2.08,-0.06 1.3,-2.42 5.88,-1.87 7,-4.17 0.13,-0.9 4.12,0.24 1.1,1.26 -2.95,0.87 -4.41,5.94 -4.39,7.25 2.84,-0.06 0.85,5.72 3.84,6.14 3.15,-0.97 5.11,0.97 7.27,2.49 2.47,-0.41 6.43,-0.86 3.69,2.39 -0.77,2.77 2.44,5.6 0.14,6.98 2.41,-0.07 2.68,7.45 1.64,2.71 -0.67,-1.62 -2.32,0.65 -2.92,-0.01 -1.16,1.25 -5.74,-1.2 -4.46,2.22 2.38,-0.47 2.33,1.82 0.01,1.18 -1.81,2.49 3.12,5.09 0.67,8.27 -0.55,2.31 0.13,6.66 -2.61,4.32 -1.04,-0.94 3.03,-3.69 -0.15,-3.93 -2,-1.89 -6.61,2.13 -7.17,-1.54 -1.85,-1.51 -3.21,-3.79 -5.46,-5.19 -2,-0.1 -3.19,-1.6 -5.33,-1.01 -1.52,-1.26 -3.67,-1.92 -5.19,-3.56 z\",\n                        \"MR\" : \"m 424.61,177.22 c -0.18,-2.88 3.65,-1.21 5.47,-1.61 1.9,-0.07 3.87,0.15 5.71,-0.11 -0.74,-2.93 -0.09,-5.47 2.88,-6.22 0.32,-2.63 -1.73,-8.14 2.76,-6.78 2.11,-0.06 4.26,0.13 6.34,-0.11 0.26,-2.03 -0.54,-4.73 2.1,-2.35 2.48,1.6 7.23,3.93 8.25,5.27 -1.49,0 -2.98,0 -4.47,0 1.24,7.82 1.65,15.77 2.77,23.59 2.5,5.12 -5.53,2.42 -8.24,3.23 -2.38,-0.56 -5.24,0.51 -6.98,0.52 -2.36,-3.17 -1.71,3.69 -3.97,0.76 -2.4,-2.45 -4.97,-5.97 -9.03,-4.15 -1.92,-0.86 -2.62,2.9 -1.79,-0.59 2.27,-2.58 -0.3,-7.76 0.03,-8.08 1.44,-2.05 -1.06,-4.04 -1.7,-3.88 z\",\n                        \"AO\" : \"m 505.24,249.73 c 1.06,-2.15 4.38,-1.73 1.43,-0.01 -0.06,3.73 -1.21,1.68 -1.43,0.01 z m -0.75,34.43 c -0.43,-3.48 1.32,-6.18 1.89,-9.52 0.53,-3.17 4.76,-4.24 3.86,-7.99 -0.67,-2.52 -3.67,-6 -1.22,-6.6 0.42,-2.56 -3.79,-5.84 -2.23,-7.43 3.48,-0.43 8.63,-1.53 11.43,0.41 0.16,3.55 2.62,6.51 6.32,5.06 2.05,-0.06 0.7,-3.78 3.81,-3.01 0.94,0.03 0.46,1.77 2.4,1.03 3.94,-0.19 -0.04,5.91 2.74,7.85 0.65,1.46 -1.06,4.29 1.57,2.75 3.2,-0.66 3.98,-0.14 3.38,3.14 1.5,5.03 -7.79,-0.5 -5.61,5.38 -0.48,3.98 0.1,8.09 4.15,10 -3.67,0.81 -7.28,1.24 -10.98,0.58 -3.36,-1.38 -6.89,-1.35 -10.78,-1.21 -4.13,0.37 -6.81,-1.83 -10.75,-0.44 z\",\n                        \"DE\" : \"m 510.16,83.58 c 0.63,-0.95 1.7,1.39 0.28,0.42 -0.06,-0.51 1.11,-0.31 -0.28,-0.42 z m -1.91,-0.81 c 0.29,-1.17 1.74,-0.71 1.27,0.04 -0.42,0 -0.91,0.39 -1.27,-0.04 z m -13.09,-1.84 c -0.92,1.13 0.26,0.4 0,0 z m 0.4,0.28 c -0.93,0.06 0.94,0.06 0,0 z m 1.14,0 c -0.85,-0.17 0.1,1.88 -0.49,1.71 -0.35,0.34 2.73,2.01 2.47,1.98 -1.79,-2.3 -3.58,0.65 -3.51,0.01 -0.07,0.76 -4.12,-1.38 -3.41,0.7 1.74,0.46 -2.97,2.47 -0.29,2.83 -0.71,2.07 -4.39,0.32 -2.35,2.67 -1.72,1.83 1.3,2.48 0.02,4.05 0.58,1.79 2.43,2.59 4.8,2.63 1.09,-0.33 -3.22,5.13 0.68,4.01 1.11,-1.14 4.44,0.48 6.08,0.54 1.81,-0.1 5.13,-1.41 7.28,-0.3 -1.19,-1.95 0.91,-2.39 2.28,-3.45 -1.92,-1.32 -6.51,-4.24 -3.32,-4.71 2.63,-0.73 4.66,-1.76 6.27,-1.77 -0.5,-1.5 -0.12,-3.85 -1.78,-4.92 1.1,-1.9 -1.09,-3.73 -2.81,-4.21 -0.88,-0.97 -3.87,0.28 -1.14,-0.43 -2.35,0.63 -3.33,1.16 -5.29,1.44 -0.74,-0.78 1.55,-1.66 -0.99,-1.3 -2.62,0.04 -0.5,-1.54 -4.5,-1.47 z\",\n                        \"SD\" : \"m 570.73,170.57 c -2.63,0.94 -4.06,5.29 -7.24,3.16 -3.38,0.23 -4.32,-0.56 -7.36,0.02 -4.97,0 -9.94,0 -14.9,0 -0.25,2.4 1.29,6.69 -2.45,5.63 -1.09,3.03 0.86,9.72 -1.01,11.93 -3.25,-0.03 -3.01,4.18 -4.46,5.78 1.11,1.37 -2.43,3.26 0.78,2.88 -0.09,2.13 1.2,3.44 1.72,5.6 3.53,1.87 -0.67,6.52 3.46,5.66 1.28,-1.28 0.81,-3.4 2.08,-4.86 2.28,-3.07 2.9,3.17 5.53,1.67 2.07,-0.75 4.03,2.41 5.57,-0.39 1.7,-0.24 2.31,-3.24 4.22,-0.43 2.37,0.91 4.6,-3.2 4.67,-5.07 -0.08,-1.6 -1.33,-1.84 0.95,-1.89 0.3,-1.87 2.28,-0.18 1.05,1.27 -0.14,2.63 2.85,4.67 2.53,6.51 1.7,-0.03 1.07,-3.87 2.87,-2.76 -0.47,-3.3 3.08,-4.68 3.64,-6.92 1.05,-3.04 0.78,-6.4 1.91,-9.4 0.5,-2.13 7.1,-3.34 2.97,-5.26 -3.39,-1.34 -1.59,-6.55 -2.49,-8.22 -0.46,-2.5 -2.62,-3.15 -4.02,-4.91 z m -31.67,40.88 c -0.81,0.98 0.37,0.36 0,0 z\",\n                        \"TH\" : \"m 741.93,183.35 c 2.23,0.61 0.18,-4.66 3.68,-3.29 1.64,-0.78 3.08,-2.49 4.83,-1.43 -0.46,2.03 0.96,2 2.18,2.36 0.78,1.75 -2.19,7.33 1.32,4.33 0.93,-1.95 3.82,1.42 4.39,-1.39 3.6,-0.35 4.08,3.63 4.74,5.91 2.02,0.95 2.14,4 0.43,5.64 -2.29,-0.61 -6.2,-1.05 -7.24,1.99 -1.45,0.48 2.75,7.69 0.09,3.84 -0.68,0.12 -2.15,-2.05 -4.64,-1.33 1.64,-3.49 -3.45,-2.96 -2.56,0.21 0.04,3.19 -3.25,5.95 -2.05,9.21 2.48,-0.33 3.27,4.51 3.3,5.61 -1.87,-3.06 0.99,2.69 3.08,1.41 2.88,1.99 0.28,3.65 -1.46,2.95 1.04,-1.79 -2.61,-2.53 -2.74,-2.3 -1.12,-1.85 -1.8,-2.07 -3.03,-3.96 -0.79,-1.73 -2.47,0.52 -1.87,-2.29 -0.38,-4.12 5.04,-6.66 3.14,-10.45 -0.44,-2.75 -1.62,-4.86 -3.33,-7.09 1.02,-0.93 1.38,-2.68 1.89,-3.94 -0.71,0.38 -1.61,-2.78 -3.04,-3.56 0.11,-1.31 -0.76,-1.44 -1.12,-2.41 z\",\n                        \"AU\" : \"m 791.49,330.29 c 2.22,-0.61 0.81,-3.23 1.35,-3.26 0.11,-3.48 -2.66,-6.34 -2.72,-9.87 -1.04,-2.38 -3.46,-6.91 -3.96,-7.92 -0.32,-0.75 1.81,2.65 1.06,0.08 -1.89,-1.68 0.38,-2.2 0.04,-0.08 0.58,-1.11 1.32,2.13 1.48,-0.5 -1.84,-2.55 -3.18,-5.44 -1.22,-8.35 -1.21,-1.64 1.49,-5.18 0.83,-1.49 2.25,-2.24 5.68,-5.3 8.69,-5.12 3.16,-0.68 5.84,-2.23 9.27,-2.56 2.63,-0.92 3.32,-3.52 4.69,-5.04 -1.41,-1.75 2.24,-5.39 2.3,-3.34 1.25,2.77 1.12,1.55 1.8,0.85 1.47,-0.05 -1.6,-1.49 -0.25,-2.15 -0.62,-0.78 2.79,0.71 2.77,0.08 -1.8,-0.46 1.11,-1.31 -0.78,-1.83 0.35,-2.27 2.85,0.37 1.53,-1.36 -0.71,-0.63 2.12,0.16 0.7,-1.33 0.83,-0.19 1.58,-2.32 1.2,-0.37 1.82,0.48 0.79,-3.25 1.65,-1.29 0.67,-0.2 1.52,-0.17 2.1,-1.11 2.29,0.21 3.67,4.58 3,4.35 0.52,0.45 0.86,-2.72 2.97,-0.78 0.29,0.69 0.33,-1.37 1.29,0.37 -0.4,-0.52 1.58,-1.1 -0.06,-1.51 0.74,0.21 -1.69,-1.36 0.43,-1.8 -0.06,-1.85 2.25,-1.31 1.33,-2.93 1.48,-0.55 0.59,-2.1 2.15,-0.89 -0.94,-2.38 3.04,-0.45 4.05,-1.18 1.86,-0.94 -0.62,-2.21 -1.7,-2.65 1.28,0.17 0.77,-0.92 2.45,0.71 0.63,-0.77 2.6,1.36 3.21,0.84 1.4,0.66 3.93,1.65 4.79,0.4 1.96,-1.3 -0.68,1.49 1.03,0.73 1.07,1.52 1.41,-2.07 2.08,-0.07 1.34,0.47 -1.12,2.28 -0.55,2.66 -1.11,-0.21 -2.16,0.86 -1.46,1.97 -1.19,1.83 -2.53,3.38 0.37,4.36 2.4,1.97 5.27,3.02 8.25,4.58 2.66,4.45 7.1,-0.33 6.64,-4.26 0.64,-2.11 -0.6,-7.36 1.17,-7.41 -1.54,-1.68 0.84,-2.32 0.7,-5.3 1.91,-2.41 1.62,2.91 2.73,3.04 1.28,1.63 0.3,6.44 2.73,6.53 1.46,-0.82 3.69,1.89 3.32,3.67 0.61,3.17 2.37,4.32 2.29,7.52 0.2,1.62 1.99,3.14 3.41,2.71 0.65,1.97 2.53,1.64 3.8,2.69 0.47,0.26 -0.89,1.6 0.83,1.83 1.17,1.86 1.88,5.94 2.95,3.73 1.84,0.39 1.6,1.25 2.07,3.57 1.45,-0.32 0.24,1.18 2.14,1.3 1.76,1.71 3.34,4.29 4.26,5.55 -1.36,3.4 2.44,5.95 0.59,9.3 -1.26,3.24 -0.54,7.74 -3.5,9.71 -1.67,0.98 -2.22,2.93 -3.4,4.84 0.03,2.08 -1.93,2.42 -2.2,5.28 0.47,3.49 -1.89,4.72 -5.46,4.37 -1.69,0.74 -4.28,2.3 -5.05,2.95 1.38,0.61 -2.78,-0.25 -2.36,-1.91 -1.21,0.89 -2.66,0.73 -0.99,-0.26 -1.04,-1.73 -1.87,0.42 -1.43,0.41 -2.75,3.08 -5.83,-0.71 -8.88,0.26 -2.22,-1.14 -5.08,-2.7 -4.63,-5.8 -1.21,-1.52 -3.23,-2.95 -0.52,-0.82 1.39,1.17 -2.72,-2.42 -0.62,-1.09 -0.06,-2.24 -2.63,1.53 -3.09,-0.47 2.22,-1.63 -1.2,-5.85 -1.29,-1.34 -1.47,1.42 -3.85,0.01 -0.79,-0.32 -0.06,-2.15 2.52,-5.48 0.97,-6.19 -0.45,2.95 -4.21,3.34 -5.39,5.77 1.68,1.61 -3.7,-0.88 -1.29,-0.71 -0.16,-2.72 -2.99,-3.32 -3.23,-4.96 0.26,-0.87 -2.59,-1.94 -4.61,-2.05 -2.96,-1.22 -6.47,-1.72 -9.95,-0.76 -3.74,2.19 -8.2,0.83 -11.77,3.34 -2.38,0.79 -3.1,4.24 -6.11,2.78 -2.76,0.09 -7.41,-0.79 -9.12,1.7 -2.95,0.97 -5.53,2.7 -8.77,0.95 -0.79,-0.98 -5.26,-2.21 -2.32,-3.31 z m 90.47,17.83 c 1.93,2.47 0.52,-2.1 0,0 z m -11.14,0 c 1.48,1.07 0.1,-2.86 0,0 z m 9.64,7.83 c 0.39,1.2 1.83,-0.28 1.11,0.95 1.34,0.97 0.48,-4.13 1.87,-2.77 0.18,-2.25 -0.41,-4.84 -2.96,-3.2 -1.65,1.37 -5.44,-1.05 -7.36,-0.47 -0.42,2.13 3.78,5.1 1.59,4.31 -0.12,2.14 3.71,2.53 2.25,3.28 1.32,0.04 2.92,0.54 2.84,-1.03 0.68,0.92 1.13,-0.65 0.67,-1.08 z m -27.37,-18.87 c 4.04,-0.72 -1.41,-1.98 -2.43,-0.45 0.61,0.92 1.68,-0.14 2.43,0.45 z m -17.24,-69.43 c -1.28,-0.58 -3.73,-0.24 -0.99,1.44 1.71,0.6 2.21,-2.97 0.99,-1.44 z m -2.05,1.26 c 0.84,-1.66 -2.21,-0.8 -0.55,-0.1 z\",\n                        \"PG\" : \"m 878.44,241.91 c 0.38,-1.94 3.55,0.33 0.52,-0.28 l -0.27,0.12 z m 23.31,11.21 c 0.44,2.12 4.23,2 1.66,-0.11 -1.33,-1.54 -3.89,-3.41 -1.66,0.11 z m -6.43,-6.65 c -1.02,-1.69 -7.66,-4.86 -3.27,-2.06 2.63,0.3 3.1,3.93 4.06,4.53 0.86,-0.9 0.27,-2.19 -0.79,-2.47 z m -5.01,17.27 c 1.29,0.67 1.17,-0.09 -0.41,-0.7 l 0.25,0.34 z m -5.57,-11.37 c 2.18,1.61 6.09,0.82 7.63,-1.15 2.41,0.24 0.05,-1.92 2.11,-2.38 0.29,-2.22 -3.39,-1.69 -2.14,0.63 -1.15,0.47 -4.02,3.23 -4.25,0.64 0.41,-0.42 -1.53,2.45 -3.13,1 -2.21,-0.35 -2.21,0.62 -0.21,1.26 z m -21.82,8.94 c 0.3,-3.07 -0.44,-6.05 0.01,-8.89 0.2,-2.99 -0.51,-7.15 0.5,-9.44 2.67,1.59 5.78,2.02 8.42,3.39 2.57,0.46 4.08,3.15 5.01,4.82 1.45,0.26 7.22,2.26 4.05,3.42 -3.79,-0.23 1.5,3.53 1.92,4.33 0.26,1.95 2.05,2.12 3.05,2.48 -1.12,1.72 3.73,0.92 1.16,1.82 0.85,1.51 4.63,0.93 1.81,1.61 2.04,1.17 -1.89,0.41 -1.22,0.26 -2.15,-1.44 -4.95,-0.07 -6.75,-1.87 -2.29,-1.7 -3.02,-5.59 -6.68,-5.64 -1.76,-1.77 -1.54,0.89 -3.91,-1.05 1.21,1.3 0.71,2.14 -0.81,1.29 2.25,2.18 -6.1,0.35 -0.96,1.49 2.94,2.84 -3.46,2.3 -5.06,2.15 l -0.26,0.03 z\",\n                        \"IQ\" : \"m 579.52,141.76 c 3.35,-1.23 8.01,-3.06 6.94,-7.36 0.04,-1.98 3.23,-3.11 4.84,-3.85 2.48,0.07 3.33,0.76 5,0.95 -0.02,2.44 3.84,3.56 3.45,3.77 0.58,1.72 -1.45,2.49 -1.72,3.64 -0.51,1.59 1.97,2.82 2.09,4.02 2.7,0.67 5.14,2.81 4.32,5.55 0.65,0.26 3.36,4.41 0.38,2.48 -3.04,-0.74 -3.3,4.74 -7.03,2.77 -3.58,-0.26 -5.88,-3.65 -8.86,-5.36 -2.74,-1.21 -5.2,-3.27 -8.37,-3.12 0.26,-0.46 -0.96,-2.2 -1.04,-3.49 z\",\n                        \"HR\" : \"m 520.86,114.99 c 1.93,-0.01 2.97,2.11 0.72,0.38 -1.74,-0.36 -3.2,-1.21 -0.72,-0.38 z m -11.29,-7.28 c 2.63,-0.58 5.72,0.79 5.65,-1.9 2.54,-2.52 4.79,1.54 8.03,1.02 1.28,-0.8 1.93,2.07 2.02,1.81 -1.06,1.36 -4.28,-0.31 -6.63,-0.24 -1.29,0.48 -4.75,-0.22 -2.16,1.72 0.08,2.02 4.02,3.27 4.12,4.66 -1.62,-1.77 -6.82,-1.63 -6.22,-3.67 0.49,0.88 -2.49,-4.97 -3.21,-2.02 -0.96,1.61 -1.74,-0.94 -1.6,-1.37 z\",\n                        \"GL\" : \"m 350.08,66.85 c -1.04,-0.38 1,-0.77 2.1,0 -1.44,-0.58 -0.63,0.6 -2.1,0 z m -72.85,-47.31 c 1.2,0.31 8.15,0.27 3.75,0.53 -1.87,-0.15 -3.55,0.83 -0.86,1.06 1.35,0.34 5.81,1 6.17,0.53 -3.96,-0.92 2.94,-0.21 2.81,-0.39 1.66,0.42 4.52,-0.36 6.93,-0.46 3.5,0.33 7.71,0.64 10.68,1.36 0.53,0.15 4.8,0.51 2.25,1.44 1.17,0.27 4.31,1.26 4.77,1.66 -0.04,0.42 3.72,0.85 0.63,0.9 2.78,0.13 -0.9,0.33 1.2,0.41 -1.34,0.2 -4.2,0.74 -1.17,0.47 1.83,-0.47 1.52,0.57 3,1.12 -3.5,-0.1 3.32,0.98 0.44,1.23 0.2,0.59 -1.07,0.55 1.18,0.62 0.86,0.88 1.41,0.65 0.08,1.39 4.92,0.42 -4.31,-0.02 -0.48,0.47 3.36,-0.43 -3.71,1.92 0.82,1.18 3.77,-0.89 -6.22,0.85 -0.86,1.72 0.07,0.06 4.32,0.05 3.55,-0.77 1.03,-0.13 1.48,-0.84 0.16,-1.91 0.56,-0.73 1.05,2.76 3.04,0.96 -4.13,1.84 6.46,0.3 1.37,1.29 -5.64,0.62 6.11,-0.2 0.75,0.31 -3.73,1.41 4.05,-0.34 -0.45,0.78 2.56,0.1 4.76,0.57 0.64,0.35 2.44,0.47 4.16,0.73 1.98,0.92 0.37,0.07 2.86,0.24 0.86,0.19 2.05,0.68 -3,-0.32 -0.02,0.48 -0.73,0.11 2.39,-0.09 0.34,0.39 -2.79,-0.54 -9.21,-2.3 -9.88,-0.72 2.87,1.02 8.68,1.77 9.51,1.79 2.13,-0.68 2.67,0.57 0.72,0.84 2.12,-0 -2.01,0.41 0.87,0.35 0.74,-0.44 -3.56,1.46 -0.75,0.75 2.42,3.6e-4 -0.62,0.59 1.22,0.73 -1.18,-0.49 -3.54,0.02 -2.16,0.67 1.93,0.24 -3.47,0.94 -2.71,0.41 -1.98,0.07 0.72,0.04 -1.67,0.31 0.82,0.26 -3.9,0.81 -0.58,0.46 -1.15,0.35 5.51,0.55 3.23,-0.24 1.62,0.13 2.65,-0.58 0.87,0.49 2.03,0.31 -1.81,0.02 1.04,0.48 2.46,0.43 2.02,0.59 -0.03,0.17 -2.22,-0.06 -5.34,-0.54 -4.8,-0.28 -3.64,-0.76 -0.29,0.72 1.46,0.45 -1.66,0.11 -3.3,-0.49 -2.82,-0.03 -0.4,0.14 -3.02,1.14 -0.29,0.96 2.47,-0.86 5.66,-1.26 3.09,-0.46 1.96,0.56 1.48,-0.58 3.2,-0.4 -2.02,0.32 0.8,0.61 0.77,0.07 3.15,0.31 -4.4,0.6 -0.14,0.68 3.01,-0.57 -2.16,0.45 1.19,0.45 -0.94,-0.05 -7.09,-1.23 -7.74,-0.39 -2.6,0.41 -2.17,1.61 0.28,0.88 1.75,0.09 5.92,-0.72 4.59,0.2 1.54,0.42 3.58,0.01 0.77,0.39 -2.16,-1.22 -8.38,-0.3 -7.04,0.09 1.57,-0.21 -1.61,0.22 0.89,0.23 -3.99,0.14 3.61,0.25 -0.16,0.39 0.18,-0.45 5.35,0.02 1.5,0.07 -1.54,-0.11 1.33,0.22 -0.73,0.31 3.14,0.03 -3.4,0.19 0.51,0.59 3.74,-0.33 -5.46,0.38 -0.54,0.69 -3.31,1.06 2.91,-0.19 3.76,-1.33 1.7,-0.44 4.12,-1.25 4.01,-0.7 1.32,-0.07 -4.05,0.36 -0.24,0.42 -2.39,-0.51 -7.95,2.07 -7.65,2.35 -1.96,0.45 2.19,-0.23 -0.21,0.3 1.56,0.11 6.15,-0.7 2.21,0.16 -2.55,-0.08 -1.9,0.59 -0.59,0.43 -0.34,0.72 0.51,-0.06 0.44,0.86 1.23,-0.68 5.28,-1.43 4.94,-0.74 -1.83,-1.11 -6.89,1.86 -3.64,1.1 -1.78,2.76 4.25,-0.2 0.3,1.38 -1.43,1.79 1.29,1.85 1.96,0.1 0.04,0.88 2.46,-0.1 0.7,-1.29 0.52,0.38 2.46,1.52 2.4,1.49 0.24,0.24 2.44,1.69 -0.14,0.55 -1.82,-1.32 -1.75,0.17 -0.32,0.23 -2.2,-0.1 -1.68,0.91 -3.99,0.61 1.13,-0.08 -0.22,0.55 1.7,0.33 1.58,-0.67 2.43,-0.51 2.43,-0.26 -1.74,-0.19 -5.32,0.95 -2,0.68 -3.84,0.82 0.54,1 0.56,0.78 -2.51,0.25 1.34,0.26 -1.27,0.55 3.05,0.5 1.1,-0.32 0.53,0.6 0.51,0.39 3.05,-0.58 1.27,0.6 1.22,0.05 0.04,0.72 1.31,0.16 -1.85,1.31 1.85,-0.48 -0.52,0.92 0.11,1.44 2.65,0.9 2.58,1.43 -2.95,0.92 3.57,-0.74 -0.06,0.77 0.14,0.79 2.09,-1.25 0.62,0.38 1.12,-0.55 -0.32,0.77 1.3,0.29 -4.1,0.51 3.79,0.01 -0.63,0.5 -0.06,0.32 1.66,0.07 1.2,0.74 0.75,0.37 1.48,-1.01 0.94,0.2 2.49,-0.05 -2.28,0.69 0.27,0.36 2.28,-0.26 -2.45,0.8 0.68,0.53 2.38,-0.21 -1.41,-0.27 1.14,-0.36 2.09,0.46 3.09,-0.42 4.44,-1.05 -0.6,1.36 -0.31,0.74 1.2,0.51 0.81,0 -3.01,0.96 -2,0.88 -0.67,0.72 3.94,-1.14 0.83,0.32 -0.23,0.43 -0.42,0.26 0.19,0.32 0.53,0.59 2.01,-1.02 0.68,0.26 0.53,0.01 1.7,-0.49 1.79,-0.24 -2.69,2.52 2.84,-1.05 -0.42,1.05 -0.16,1.61 3.24,-1.26 2.66,0.15 0.99,1.17 2.71,-0.08 0.94,0.01 2.82,0.35 0.35,-0.67 0.62,-0.92 -3.5,-0.59 0.22,-0.12 0.32,-0.21 2.15,-0.08 -2.6e-4,0.1 1.51,-0.39 -2.62,0.46 1.39,-0.27 -1.76,-0.42 2.04,0.25 1.61,-0.04 -0.16,-0.31 2.71,0.35 1.81,-0.58 -0.35,-0.54 2.71,0.37 1.38,-0.32 1.98,-0.15 1.57,-0.24 -2.6,-0.56 0.41,-0.38 1.75,-0.81 -3.03,-0.74 0.6,-0.68 1.57,-0.69 -2.52,-0.6 0.29,-0.59 1.17,-0.78 -0.56,-0.25 0.15,-1.5 -2.26,-0.93 -1.46,-0.34 0.46,-0.25 -0.23,-0.41 -4.35,-1.23 -1.13,-0.86 -0.38,-0.79 1.85,-0.54 0.49,-3.6e-4 1.37,-0.35 2.79,-0.62 0.66,-1.38 0.53,0.62 2.37,0.47 0.8,-0.03 2.98,1.02 -1.49,-1.48 1.15,-0.22 2.42,0.74 -1.98,-1.28 0.89,-0.09 -2.35,-0.7 3.25,-0.24 -0.72,-1.26 -1.15,-0.26 3.49,0.66 2.12,-0.6 -0.26,-0.82 -4.04,-0.72 -0.74,-1.02 3.71,0.7 -2.99,-2.72 1.28,-2.03 1.85,0.37 1.92,-1.01 1.14,-1.37 1.84,-0.42 3.25,-0.05 4.2,-0.36 2.05,0.4 -0.95,-1.43 1.26,-0.75 1.08,-0.91 -0.82,-1.61 1.16,-1.17 3.26,-0.42 -2.51,1.33 0.84,1.41 1.25,-0.64 2.63,0.03 4.93,-0.79 -1.93,-1.74 1.8,0.28 1.33,-0.61 2.18,-0.69 2.47,-0.97 3.61,-2.01 1.42,-0.93 1.89,-2.45 4.67,-2.36 0.28,-1.12 -0.69,-0.69 -0.63,-1.24 -1.23,-1.48 2.23,0.71 2.62,0.73 1.9,0.22 2.23,-0.23 2.32,-0.37 2.16,0.94 0.29,-1.07 2.9,-0.12 2.72,-0.54 5.43,-0.92 8.68,-1.16 2.84,-0.84 2.79,-1.58 4.89,-1.64 -1.03,-0.38 1.71,-0.69 1.87,-0.75 1.81,-0.33 -0.57,-0.64 1.71,-0.73 1.91,0.12 -0.57,-0.25 1.88,-0.31 2.99,-1.05 -4.32,-0.11 -5.76,-1.1 -2.97,-0.84 -6.86,1.37 -10.57,0.58 1.49,0.1 5.77,-0.51 5.57,-1.1 -1.94,-0.07 -6.85,0.28 -6.8,0.04 1.81,0.5 2.94,-1.78 2.21,-1.44 2.37,0.44 -0.22,-1.23 2.17,0.04 2.18,0.75 8.25,-1.6 2.87,-1.53 -2.29,-0.11 -3.09,-0.46 -5.68,-0.24 1.53,0.18 4.4,-0.39 1.22,-0.92 -0.07,0.32 -3.32,-1.14 -0.41,-0.33 3.63,2.13 9.05,0.12 11.64,3.95 1.84,1.75 4.21,-0.84 4.06,0.14 2.19,1.31 2.66,-0.71 1.88,-0.67 1.32,-0.91 -2.71,-0.71 0.22,-1.01 -0.69,-0.56 0.6,-1.07 -1.71,-0.59 -1.71,0.08 2.65,-1.75 -0.43,-0.81 0.18,-0.31 -2.77,0.14 -0.58,-0.59 -0.57,-0.82 -7.23,-1.51 -7.57,-1.55 -3.69,-0.03 4.51,0.2 0.78,-1.14 -2.45,0.05 -4.43,0.71 -4.44,-0.01 -5.34,-0.35 6.43,0.45 3.84,-0.79 -2.4,-0.56 -9.52,0.6 -3.87,-0.21 1.44,-0.47 -4.17,-1.17 -0.64,-0.56 1.58,0.85 6.31,-0.26 5.6,-0.61 -2.53,-0.68 -1.86,-1.31 0.15,-0.07 2.26,-0.72 4.76,-0.11 7.26,-0.03 -1.4,0.19 -7.18,-0.69 -3.04,0.55 2.61,0.32 7.08,0.96 8.43,-1.28 -2.06,-0.86 -4.62,0.06 -4.37,0.11 -0.93,-0.88 -2.16,-0.27 -0.58,-0.98 -2.68,-0.48 2.73,-0.08 0.09,-1.04 2.95,-0.04 6.03,1.67 8.79,0.26 -1.23,-0.81 -5.75,-0.36 -5.19,-0.49 2.25,-1.81 -4.72,-0.52 -3.67,-1.25 1.91,0.75 6.46,-0.28 2.18,-0.79 -1.54,-0.13 -3.22,-0.44 -0.55,-0.2 -4.3,-1.32 3.43,0.42 4.74,0.88 3.79,-1.39 -2.77,-3.43 -4.94,-2.39 -2.01,0.21 8.54,-0.13 3.5,-0.84 -2.11,-0.34 -2.46,-0.06 -0.28,0.36 -2.01,-0.29 -4.7,-0.75 -5.12,-0.95 2.34,0.01 0.16,0.12 1.47,-0.13 -0.75,-0.08 -3.92,-0.39 -1.14,-0.95 1.86,1.32 4.87,-0.52 1.21,-0.1 1.84,0.08 2.89,-0.01 2.47,-0.29 2,-0.79 7.37,2.12 7.18,-0.63 -2.26,-0.27 -4.39,-0.53 -6.74,-0.6 3.04,-0.01 0.35,-0.22 -1.06,-0.35 1.75,0.29 2.76,-0.31 0.28,-0.35 1.9,-0.2 7.71,0.39 2.93,-0.57 -2.53,-1.39 -5.38,1.85 -5.7,0.15 2.25,-0.98 -0.23,-0.77 1.63,-1.07 -0.15,-0.9 1.72,-1.28 -0.04,-1.17 1.23,-0.87 4.18,-0.78 6.45,-1.87 -4.29,0.69 0.27,-2.19 2.55,-1.44 4.73,-1.19 -2.21,-0.94 -4,-0.69 -1.73,0.37 -1.09,1.09 -3.02,0.61 1.88,-2.36 6.92,-0.48 10.29,-1.24 2.63,-0.27 2.82,-1.16 0.12,-0.99 -3.84,0.35 -7.67,-0.47 -11.49,0.12 1.35,-0.64 6.81,0.21 9.63,-0.74 2.17,0.36 7.34,0.16 7.65,-0.63 0.66,-0.8 5.84,-0.44 7.96,-1.82 -5.09,-0.65 -10.21,-1.31 -15.34,-0.63 0.5,1.64 -5.67,0.8 -7.6,0.93 1.55,-1.01 -3.99,0.56 -5.15,0.88 -2.91,0.58 -9.45,3.25 -4.08,0.7 2.06,-0.33 6.93,-3.18 2,-3.26 -3.57,0.24 -6.75,1.75 -10.45,1.85 -1.74,0.31 -2.71,0.34 -2.34,0.02 -0.92,-0.89 8.17,-0.04 4.82,-1.7 -6.82,-0.18 -13.65,0.3 -20.43,1.09 1.29,-1.99 7.63,-0.03 7.69,-1.44 -1.17,-0.48 -5.4,0.08 -1.92,-0.16 5.02,0.28 10.05,0.12 15.07,0.12 3.88,-0.52 7.9,0.06 11.65,-1.2 -3.81,-1.07 -6.85,-0.48 -9.93,-0.81 -1.28,0.3 -3.97,0.5 -1.1,0.11 3.16,-0.86 -2.93,-1.11 -4.29,-0.71 -4.73,0.17 -9.47,-0.2 -14.19,0.31 -2.97,0.04 -8.63,0.48 -9.42,0.46 -0.02,-0.8 7.39,-0.26 7.08,-0.72 -3.68,-0.42 3.37,0.34 4.75,-0.09 4.97,-0.37 9.98,0.22 14.94,-0.42 -2.84,-1.02 -6.66,-0.36 -8.36,-0.47 0.57,-0.19 -5.13,-0.42 -7.56,-0.34 -2.96,-0.3 -6.86,0.05 -7.72,0.04 -1.9,0.07 -6.83,-0.34 -6.75,0.27 0.56,0.48 -3.85,-0.53 -5.26,0.09 -2.91,0.78 7.57,0.72 2.53,0.92 -1.77,-0.1 -4.34,0.14 -1.2,0.16 5.43,0.03 -6.63,-0.4 -1.37,0.55 -2.92,-0.43 -7.67,-0.49 -9.54,-1.07 -2.13,-0.51 -4.02,-0.02 -3.22,0.06 -3.05,-0.15 -1.17,0.15 0.76,0.27 -1.87,-0.12 -7.22,-0.27 -6.87,-0 1.18,0.23 5.1,0.61 1.77,0.37 -2.62,-0.36 -6.01,-0.3 -4.16,0.1 -4.03,-0.01 4.56,0.54 3.64,0.07 4.58,0.27 9.38,-0.28 13.81,0.87 1.25,1.43 -6.53,-2.03 -4.74,0.28 -2.72,-1.55 -9.86,-0.82 -10.47,-0.51 3.59,0.54 4.96,1.12 8.47,1.27 -2.19,0.13 -6.47,-0.76 -6.46,0.45 -1,0.4 2.84,0.84 -0.35,0.81 -5.07,-0.68 -10.07,-1.94 -15.2,-2.2 -4.51,-0.43 0.15,1.93 2.23,1.74 -1.98,0.59 -6.22,-0.42 -2.07,0.51 2.77,0.96 -4.34,-0.76 -6.01,-0.63 -1.58,-0.79 -4.66,3.04 -3.5,-0.27 -4.27,-1.74 -7.34,0.23 -12.12,-0.21 -1.77,0.05 -5.97,0.4 -1.97,0.77 1.62,0.83 8.52,1.78 3.67,1.17 -3.45,-0.49 -6.83,-1.99 -10.36,-1.1 -1.06,1.27 2.02,0.82 -0.23,1.66 1.43,1.67 -5.11,-0.83 -5.7,0.73 3.34,1.97 -2.2,-1.42 -3.72,0.26 -2.24,1.25 -6.51,0.43 -7.63,2.45 2.8,0.82 8.22,0.08 9.32,0.11 -2.38,-0.55 -2.49,0.99 -2.92,2.13 -3.75,1.08 -7.7,0.47 -11.5,1.22 0.33,0.33 -4.54,0.64 -6.12,0.92 -3.19,-0.23 -6.62,1.43 -2.07,1.86 2.43,0.3 2.68,0.56 5.74,0.22 -4.72,0.85 3.75,0.18 -0.18,0.7 -0.47,0.48 3.6,0.41 4.41,-0.03 1.72,1.03 6.5,-1.24 6.2,0.47 -2.28,-0.14 1.31,0.89 -1.32,0.41 -2.01,-0.73 -9.17,0.17 -3.66,0.3 1.66,-0.01 7.67,0.03 2.86,0.1 -3.86,0.07 -7.78,-0.5 -11.6,0.14 -0.82,0.87 2.96,0.21 0.63,0.57 0.94,1.34 5.75,-1.79 2.71,0.38 z m 132.2,12.52 c -1.59,-0.6 3.65,0.15 -0.05,-0.84 -1.37,-1.04 -7.96,-0.86 -3.67,0.54 0.65,0.18 6.83,1.56 3.72,0.3 z m -8.88,3.59 c -1.57,0.39 -6.63,0.59 -6.22,1.84 1.86,-0.25 9.2,0.01 6.19,-1.58 z m 19.57,-14.37 c -0.09,-3.96 -2.53,0.26 0,0 z m 1.99,2.22 c -1.38,-0.31 -4.15,1.28 -1.17,1.05 2.3,0.21 4.03,-0.09 0.81,-0.51 l 0.75,-0.25 z m -5.73,1.9 c 1.97,-1.23 -4.11,-0.66 -0.42,0.09 z m -2.69,0.78 c -1.92,-0.24 -3.67,0.98 -0.63,0.98 2.3,0.11 4.16,-0.43 0.63,-0.98 z m -2.67,4.26 c -1.66,-0.74 -7.55,-0.67 -6.21,-0.02 2.38,-0.41 6.14,1.58 6.21,0.02 z m 7.04,-16.54 c 0.81,-0.83 -2.47,0.39 0.48,0.07 z M 340.48,3.07 c 2.14,0.65 6.97,1.81 6.72,0.61 1.52,-0.55 -3.67,-1.42 -5.09,-1.18 -0.89,0.06 -4.14,0.09 -1.63,0.57 z M 330.4,38.95 c -2.3,0.49 0.91,1.63 0.43,0.12 z m -10.12,-0.22 c 2.72,0.25 -2.42,0.09 0.62,0.9 -3.41,-0.35 2.03,0.77 2.01,0.48 2.87,-0.13 -3.74,0.24 -0.05,0.7 1.7,0.29 7.63,-1.19 3.07,-1.89 -0.96,-0.54 -6.82,-2.06 -5.64,-0.19 z\",\n                        \"NE\" : \"m 472.53,195.05 c -0.75,-2.18 2.68,-1.53 4.08,-2.47 2.43,-0.56 5.27,0.81 6.33,-1.99 2.35,-2.68 -1.72,-9.21 3.14,-9.31 3.87,-0.56 5.85,-4.74 9.41,-6.21 3.12,-1.84 6.25,-3.67 9.42,-5.39 3.3,-0.57 6.46,3.04 8.67,1.73 -0.4,3.12 2.65,5.56 2.09,8.04 -1.29,3.47 0.67,8.09 -2.66,10.59 -1.98,1.89 -4.03,5.09 -3.75,6.99 -2.89,3.51 -7.48,-0.93 -10.4,2.34 -2.67,0.41 -5.33,-2.05 -7.76,-0.39 -1.36,-2.74 -6.89,-3.28 -7.81,-0.17 -1.64,1.53 -0.88,5.55 -3.1,2.2 -1.66,-0.94 -1.67,2.51 -2.44,-0.17 1.27,-1.19 -4.63,-1.04 -2.67,-2.69 0.23,-0.28 -2.57,-1.65 -2.55,-3.1 z\",\n                        \"DK\" : \"m 495.21,76.19 c -0.44,-2.15 3.9,-0.81 4.89,-2.71 2.49,-0.81 0.08,2.94 -1.9,1.63 -1.84,-0.67 -2.84,1.45 -2.99,1.08 z m 7.13,5.32 c 2.8,1.22 2.68,-0.62 0.13,-0.32 l 0.22,0.24 z m 0.3,-1.57 c 2.3,0.37 1.55,1.39 2.62,1.82 -0.59,-1.14 1.46,-1.07 0.72,-2.45 2.45,-2.14 -2.03,-1 -0.8,-0.55 -0.37,-0.06 -0.84,0.36 -1.21,-0.54 -0.05,0.27 -2.79,0.52 -1,1.57 l -0.08,0.11 z m -3.83,-0.45 c 0.48,2.01 4.2,1.24 2.49,-0.3 -0.23,0.82 -1.44,-0.23 -2.49,0.3 z m -4.36,-3.04 c 0.99,0.09 3.68,-0.25 2.92,-0.28 0.65,-2.73 4.5,0.4 2.46,-7.2e-4 0.21,0.8 1.86,-0.2 2.24,1.05 -1.31,0.45 -1.95,0.52 -2.47,1.41 0.41,0.8 -2.47,-0.01 -0.44,0.54 -1.25,0.79 -0.42,2.08 -0.54,2.11 -3.23,0.8 -2.36,-1.44 -3.91,-1.8 -0.76,-1.62 1.08,-0.89 -0.39,-1.78 l -0.02,-0.43 z\",\n                        \"LV\" : \"m 530.16,76.64 c 0.3,-2.33 4.87,-5.24 7.05,-1.36 3.35,0.59 1.1,-3.97 4.66,-2.94 1.99,1.68 6.31,0.33 7.07,2.64 -0.07,0.92 2.46,2.76 -0.51,3.69 -2.9,0.81 -5.39,-1.02 -8.03,-1.68 -3.25,0.69 -7.16,-0.89 -10.12,0.76 -0.3,-0.29 -0.22,-0.77 -0.13,-1.11 z\",\n                        \"RO\" : \"m 528.08,105.9 c 3.05,0.28 3.81,-3.14 5.89,-4.6 2.82,-2 6.18,0.64 9.05,-0.62 2.26,-0.8 4.32,-0.99 5.44,1.71 3.09,1.12 -0.25,6.94 3.88,5.75 3.2,-1.84 1.01,3.23 0.12,1.24 -0.87,-0.78 -0.25,1.39 -0.65,0.71 0.2,0.38 -0.75,3.91 -2.79,1.87 -3.58,-1.5 -6.51,1.86 -10.13,0.74 -2.41,-0.32 -4.26,-0.29 -4.36,-2.31 0.71,-0.32 -4.34,0.19 -3.1,-1.71 -2.07,-0.49 -1.75,-1.75 -3.35,-2.78 z\",\n                        \"ZM\" : \"m 532.92,281.12 c 0.13,-2.93 -0.39,-6.24 0.25,-8.95 3.23,0.4 6.48,0.56 5.29,-3.6 -0.37,-3.2 0.74,-1.97 1.41,-0.82 2.72,-1.79 2.32,2.13 5.56,1.48 1.49,-0.27 2.14,-1.59 2.94,0.77 2.67,-0.14 3.74,4.3 5.71,3.22 1.04,0.13 0.76,-5.12 -0.93,-2.58 -4.74,-1.4 -0.18,-6.33 -2.57,-8.87 1.47,-3.13 5.81,-3.76 8.61,-1.69 1.4,1.36 4.69,1.44 5.11,3.68 2.05,1.86 -1.93,4.4 0.56,6.69 -1.68,0.43 -3.04,4.51 -1.09,4.43 -0.87,2.05 -9.5,0.98 -7.63,4.68 -3.81,-0.6 -4.39,3.14 -7.48,4.27 -1.36,3.74 -5.32,2.41 -7.91,1.2 -3.67,0.48 -5.88,-0.51 -7.86,-3.9 z\",\n                        \"IR\" : \"m 594.01,124.87 c 2.29,-2.79 4.55,3.52 7.72,0.9 1.39,-2.34 5.8,-1.64 3.41,0.44 2.62,1.02 2.25,4.53 5.71,4.22 2.37,2.95 6.36,2.25 9.56,1.4 2.1,-0.3 -0.77,0.55 1.31,0.14 -0.81,-2.08 2.61,-1.48 3.62,-3.28 2.96,-0.75 5.14,-0.76 7.93,0.75 3.37,-0.31 4.9,3.68 8.23,3.11 0.61,2.16 -0.29,4.89 -0.85,6.38 -2.57,1.29 1.27,2.5 -0.69,3.99 0.86,2.3 0.22,4.85 3.38,4.77 -0.06,2.59 -4.49,3.82 -0.92,6.16 1.33,2 4.63,2.02 3.94,5.11 3.5,1.76 -3.36,1.63 -3.11,3.85 -0.01,3.99 -3.48,0.77 -5.33,1.49 -2.6,-0.63 -5.52,-0.09 -7.42,-1.84 0.25,-4.75 -4.26,-2.89 -6.48,-1.43 -3.79,0.01 -5.73,-3.2 -9.13,-3.81 -1.53,-1.87 -1.89,-3.1 -2.65,-4.49 -1.02,-2.53 -2.21,-1.34 -3.9,-2.11 -1.26,-0.45 0.73,-1 -0.75,-0.49 -0.64,3.09 -2.51,-1.04 -3.15,-1.73 0.77,-2.94 -2.24,-4.73 -4.63,-5.73 -0.52,-1.35 -2.98,-3.72 -1.24,-4.84 1.63,-0.71 0.92,-2.55 1.48,-2.98 -2.84,0.39 -3.19,-2.43 -4.25,-4.34 -1.58,-1.89 -0.35,-3.31 -1.81,-5.64 z m 32.76,35.03 c -3.1,1.47 -0.07,0.94 1.27,-0.07 -0.42,-0.38 -0.83,0.25 -1.27,0.07 z\",\n                        \"MM\" : \"m 727.56,176.02 c 0.68,-1.15 1.81,0.25 1.16,-2.16 1.11,-0.04 2.07,-0.87 1.49,-3.05 1.46,-0.74 -0.37,-4.26 2.76,-2.25 1.11,-2.81 2.28,-4.89 2.84,-7.7 1.65,-1.14 4.22,-2.64 5.53,-1.71 -1.55,-1.04 1.2,-3.42 1.57,-3.51 1.76,1 1.47,2.48 2.85,3.12 0.44,2.99 -0.31,4.89 -2.55,5.84 -0.63,1.41 -1.49,5.21 1.31,3.17 2.75,-1.17 0.15,3.21 3.26,3.06 -0.29,1.23 -1.55,3.36 1.37,2.79 -0.36,2.73 2.63,0.88 3.27,1.29 -1.48,1.93 -2.69,3.05 -4.53,3.93 -1.35,0.72 -2.76,1.49 -4.36,1.72 -0.34,1.57 -0.81,3.14 -1.38,3.4 1.11,1.68 3.34,5.13 4.09,5.85 -1.37,2.06 -3.07,4.4 0.17,6.29 0.35,2.99 3.27,6.53 0.02,9.02 -0.88,1.05 -1.51,3.79 -1.45,0.58 1.47,-2.49 0.58,-2.87 0.55,-4.18 0.45,-0.21 -0.96,-5.69 -1.22,-4.71 -0.39,1.23 -0.56,-3.14 -1.2,-3.34 -0.63,-2.51 0.31,-4.23 -1.54,-5.18 -0.73,-2.35 -0.82,-1.04 -1.53,0.65 -1.53,0.73 -1.12,-1.58 -1.29,0.67 -1.3,0.4 -2.69,2.31 -2.68,1.26 0.14,0.34 -0.59,0.2 -0.29,-0.59 -1.4,2.94 0.08,-2.26 -1.25,0.8 0.28,-1.45 -0.56,0.59 0.12,-1.92 -1.99,3.38 -1.02,-1.22 -0.38,-2.76 -0.76,-2.36 -1.51,-6.26 -2.23,-4.05 -2.15,-1.88 1.58,-0.27 0.06,-2.15 -0.67,-0.85 -2.15,-1.08 -1.94,-0.82 -0.43,0.34 0.3,-2.48 -0.88,-0.57 0.26,-1.72 -0.85,0.45 -1.44,-2.03 z\",\n                        \"ET\" : \"m 563.4,213.45 c 0.41,-2.63 4.67,-0.69 3.05,-4.4 0.31,-2.14 0.94,-4.2 2.39,-4.16 -0.44,-3.5 3.54,-4.53 3.9,-7.41 -0.38,-2.92 3.11,-2.05 3.6,-2.06 0.25,-3.07 2.69,0.6 4.13,-0.79 3.42,-0.22 6.63,2.85 8.8,5.71 -1.22,1.87 -2.62,5.61 1.23,4.23 -0.31,2.08 2.43,6.23 5.78,6.5 2.36,1.18 7.39,2.1 8.26,2.46 -2.82,2.52 -5.32,5.37 -7.89,8.12 -3.82,-0.82 -6.13,2.51 -9.57,2.78 -1.89,-0.93 -4.24,-0.87 -5.48,1.61 -3.65,0.27 -5.98,-3.07 -9.52,-2.92 -1.46,-0.87 -0.49,-3.09 -2.49,-2.94 -1.11,-2.91 -3.05,-5.97 -6.2,-6.73 z\",\n                        \"GT\" : \"m 216.08,194.7 c 0.19,-3 1.54,-5.27 4.97,-4.34 0.45,-2.13 -4.34,-2.79 -1.53,-3.79 -0.1,-2.22 3.45,-0.63 5,-1.07 -0.3,2.68 -0.01,6.85 2.21,5.6 0.96,0.96 -2.99,1.76 -2.22,3.57 -1.96,2.49 -4.96,2.64 -7.74,0.59 l -0.35,-0.28 z\",\n                        \"SR\" : \"m 311.83,225.6 c -1.86,-2.17 -0.51,-4.3 1.36,-4.72 -1.09,-3.3 3.77,-1.06 3.81,-1.81 1.55,-0.63 2.77,0.68 2.53,-0.34 5.17,-0.24 -0.95,4.68 2.55,6.9 -0.55,1.82 -0.99,4.41 -3.31,2.84 -1.51,0.27 -2.85,0.17 -2.08,1.85 -3.33,0.41 -2.96,-3.89 -4.86,-4.72 z\",\n                        \"EH\" : \"m 424.61,177.22 c -0.57,-3.33 2.36,-5.36 3.44,-8.22 -0.84,-0.49 3.7,-3.2 3.23,-5.89 1.56,-1.8 3.26,-3.74 4.73,-5.39 3.91,0.25 7.93,-0.07 11.78,0.22 0.81,3.33 0.01,5.55 -3.6,4.57 -1.85,0.06 -3.74,-0.12 -5.56,0.07 -0.71,2.52 1.86,7.31 -1.96,7.8 -2.24,1.66 0.93,6.76 -3.79,5.24 -2.65,0.12 -5.38,-0.24 -7.97,0.18 -0.34,0.39 -0.36,0.95 -0.29,1.43 z\",\n                        \"CZ\" : \"m 505.43,94.08 c 1.9,0.8 5.69,-2.65 7.09,-1.6 1.57,-0.48 3.15,0.71 4.83,0.81 -1.65,0.84 2.5,2.19 1.44,0.45 1.85,0.84 4.05,0.97 5.27,2.63 -2.52,1.33 -4.66,2.74 -7.41,2.08 -3.07,-1.86 -4.49,2.17 -7.59,-0.68 -2.06,-0.99 -2.46,-2.18 -3.63,-3.69 z\",\n                        \"TD\" : \"m 509.24,195.08 c 1.48,-2.82 4.26,-5.02 5.68,-7.87 -0.28,-3.18 1.06,-6.8 0.67,-9.54 -1.33,-2.22 -3.92,-7.42 0.52,-7.93 3.16,1.08 6.13,3.02 9.28,4.31 4.31,2.16 8.65,4.26 12.85,6.62 0.46,2.85 0.05,5.99 0.22,8.96 0.87,3.04 -3.56,0.7 -3.31,3.81 -1.45,2.08 -1.68,4.21 -2.39,6.6 2.59,-0.38 0.77,2.95 2.83,3.93 -0.68,1.21 -3.59,1.09 -4.14,3.15 -1.42,2.85 -4.89,3.04 -7.1,3.71 1.33,2.52 -5.01,2.76 -6.23,3.16 -0.82,-0.61 -3.7,1.92 -3.59,-1.07 -0.59,-1.8 -6.5,-5.42 -1.71,-5.29 2.76,0.24 2.38,-0.04 0.94,-2.07 -0.03,-2.51 0.04,-5.91 -2.67,-6.71 -1.21,-0.75 -1.72,-2.4 -1.86,-3.75 z\",\n                        \"AL\" : \"m 525.44,121.31 c 1.54,-1.75 -0.99,-4.9 1.34,-5.31 2.94,-0.14 1.39,3.01 2.7,4.49 1.52,0.75 -1.08,3.52 -2.05,3.53 -1.17,-2.05 -1.54,-1.21 -1.99,-2.71 z\",\n                        \"FI\" : \"m 529.12,41.38 c 2.56,-2.1 5.75,2.56 9.33,0.6 2.86,1.35 4.92,-0.31 6.08,-2.55 2.54,-1.03 6.96,-1.07 8.41,0.84 -1.36,0.95 -0.21,1.5 -2.17,1.55 1.62,-0.03 -0.92,2.36 2.03,2.15 3.51,0.77 1.39,2.16 -0.08,3.59 1.4,1.31 3.55,3.09 1.83,3.8 -0.44,1.18 -0.66,1.88 1.11,2.32 -1.82,0.82 3.3,1.44 0.04,2.38 -1.35,0.88 6.42,1.82 2.5,3.91 -3.11,2.05 -6.4,3.94 -9.71,5.53 -2.85,-0.3 -4.48,0.39 -6.26,0.69 -2.51,0.7 -6.01,0.85 -6.38,1.06 1.01,-0.54 -0.75,-1.1 -0.29,-1.29 -1.71,-0.09 -5.49,-0.39 -3.9,-2.99 1.08,-0.93 -2.85,-4.07 0.38,-4.7 -0.66,-0.96 2.72,-0.7 2.07,-1.3 2.69,-0.72 4.69,-3.33 7.68,-3.76 1.73,-0.72 -1.1,-2.71 -3.01,-2.98 -2.52,-0.88 0.57,-2.67 -1.37,-3.73 0.8,-0.59 -1.01,-1.45 -0.05,-2.2 -2.56,-1.37 -5.52,-1.7 -8.24,-2.91 z m -2.08,25.16 c 0.52,-0.52 1.92,-0.26 -0.15,-0.81 1,1.23 -1.72,-0.5 0.15,0.81 z\",\n                        \"SY\" : \"m 570.71,142.04 c 1.24,-0.86 4.03,-3.39 1.3,-3.78 -0.74,-1.31 -1.53,-4.12 0.8,-3.94 0.49,-0.93 0.77,-0.66 0.69,-2.15 3,-0.13 6.21,0.39 9.34,-0.18 1.85,-0.58 5.4,-1.41 6.57,-0.64 -1.6,1.39 -3.85,1.65 -2.88,4.25 0.05,4.11 -4.64,4.87 -7.54,6.57 -2.31,1.62 -7.03,3.78 -8.2,0.71 l 0.05,-0.54 z\",\n                        \"KG\" : \"m 664.63,122.89 c 2.3,-0.76 2.91,1.05 4.92,-0.68 2.16,0.88 2.87,-0.65 4.86,-1.21 -0.49,-0.36 -3.37,-1.38 -3.76,-1.96 -0.9,1.93 -6.12,-0.69 -2.2,-1.54 2.08,-0.21 -1,-1.68 1.71,-2.16 2.49,-1.24 5.94,2.82 6.18,-0.91 3.03,-0.69 5.82,1.61 9.09,0.29 3.21,0.13 6.71,0.36 9.06,2.49 -3.42,1.01 -6.11,3.32 -9.58,3.35 -1.69,3.44 -4.52,-0.76 -6.55,2.11 -2.02,0.38 -1.34,2.99 -4.23,2.23 -2.52,0.68 -3.84,-0.77 -6.29,-0.4 -0.74,-0.83 -5.5,1.09 -3.22,-1.61 z\",\n                        \"SB\" : \"m 920.68,265.88 c 4.3,0.98 -3.81,-3.21 -0.58,-0.43 z m -2.7,-4.52 c 2.63,3.35 0.38,-2.51 -0.68,-2.14 0.29,0.7 0.26,1.5 0.68,2.14 z m -2.42,1.9 c 3.89,0.96 1,-1.56 -0.98,-1.53 -0.68,0.61 0.43,1.39 0.98,1.53 z m -2.42,-4.8 c 3.82,2.44 0.25,-1.32 -1.78,-1.66 0.4,0.71 0.97,1.41 1.78,1.66 z m -3.66,1.29 c 1.31,-1.32 -2.71,-1.95 -1.05,-0.8 0.66,-0.18 0.38,0.8 1.05,0.8 z m -2.61,-4.1 c 5.19,3.39 -3.75,-4.46 0,0 z\",\n                        \"OM\" : \"m 616.21,182.18 c 4.03,-1.59 9.69,-1.6 9.78,-7.19 0.72,-2.21 -2.22,-3.76 -0.06,-6.07 -0.12,-1.28 2.14,-0.6 0.67,-2.41 1.15,-3.21 3.41,3.36 6.79,2.52 1.82,0.51 4.03,2.77 4.29,4.28 -1.6,1.93 -3.06,5.18 -5.09,4.88 -1.36,1.73 0.91,4.9 -2.5,4.41 -1.15,1.87 -2.49,2.84 -4.65,3.28 -0.26,2.97 -4.49,1.94 -6.41,2.5 -0.82,-2.08 -1.92,-3.93 -2.82,-6.21 z m 11.24,-19.87 c 1.9,-2.52 0.3,3.26 0,0 z\",\n                        \"PA\" : \"m 241.78,212.35 c 1.11,-1.13 -0.69,-4.84 1.73,-3.09 -0.08,1.32 1.78,1.39 1.57,0.83 3.02,2.42 6.44,-3.33 9.12,-0.92 2.98,0.48 4.49,4.97 2.09,5.28 -1.41,2.51 -2.85,-4.05 -0.02,-1.68 -1.8,-1.71 -1.46,-0.33 -3.65,-2.48 -1.61,-0.09 -3.23,1.89 -3.78,2.6 3.24,1.84 -2.42,3.88 -1.76,0.51 -0.87,1.82 -2.54,-1.89 -4.53,-1.17 -0.78,0.1 -0.34,1.43 -0.77,0.11 z\",\n                        \"AR\" : \"m 281.51,383.73 c 2.4,1.32 -0.98,1.37 1.51,2.11 1.77,2.42 5.58,3.4 8.14,3.74 -2.66,1.38 -6.38,0.26 -9.44,0.18 -0.35,-1.88 -0.25,-4.06 -0.2,-6.04 z m -3.74,-65.8 c 1.13,-2.35 2.71,-5.43 4.55,-6.82 -0.44,-2.38 -1.63,-6.25 1.48,-7.3 3.3,-1.08 0.72,-5.21 4.14,-6.15 0.57,-1.26 2.94,0.69 4.48,0.41 1.12,2.15 1.13,1.78 2.01,-0.28 3.81,-1.96 5.04,2.92 7.84,4.31 3.17,1.67 7.5,2.66 9.95,5.27 -0.97,1.96 -5.1,5.98 -0.45,5.17 2.5,0.64 4.03,0.33 5.96,-0.2 1.34,-1.24 3.14,-2.44 2.81,-4.7 3.6,-1.07 3.05,5.99 -0.72,5.55 -2.56,1.8 -4.01,3.69 -6.41,6.17 -1.84,1.24 -2.25,3.28 -2.35,5.19 -0.73,2.27 -0.81,4.15 -1.4,6.21 -1.45,2.99 5.21,2.63 3.15,5.81 1.23,1.37 3.08,2.52 0.53,4.44 -1.81,3.61 -6.24,3.53 -9.77,4.18 -1.73,0.82 -6.12,-1.55 -3.98,1.19 0.09,0.85 -1.25,2.97 -0.48,3.95 -2.34,2.46 -6.17,-0.27 -7.67,0.15 -0.93,2.03 0.88,5.54 2.72,4.15 -1.82,-0.73 2.92,-0.79 1.15,1.34 -1.12,0.98 -3.33,-2.2 -3.28,0.26 3.11,0.18 -2.79,1.81 -1.17,4.26 -1.06,1.43 -1.16,1.79 -3.41,2.02 -3.12,0.46 -4.22,4.97 -0.11,5.5 2.5,-1.09 2.92,2.55 0.42,2.24 4.03,0.07 -3.58,2.29 -3.98,4.27 1.91,-0.03 -1.58,3.8 -2.46,0.96 1.37,0.97 -2.11,0.74 0.24,0.81 1.78,0.32 -4,2.73 -1.29,3.19 1.02,1.96 -3.25,1.19 0.2,1.42 1.71,1.25 2.07,2.82 -0.53,1.43 -2.48,-0.71 -5.1,-0.27 -7.6,-0.49 -2.44,-0.66 0.7,-5.17 -3.05,-3.47 -1.46,-1.34 -1.9,-4.01 0.28,-5.03 2.81,-0.82 0.2,-3.91 3,-4.94 -0.54,-1.08 1.09,-2.38 0.32,-3.13 -0.48,-1.25 2.67,-2.7 -0.09,-3.26 -2.17,-0.4 4.2,-0.77 0.96,-1.47 -1.77,-0.08 -0.35,-2.36 -1.11,-3.09 -0.73,-0.48 -1.48,-3.09 0.16,-3.65 -0.77,-2.43 -0.04,-5.42 0.85,-6.82 -0.11,-2.32 2.89,-2.81 0.79,-5.23 -1.04,-3.28 3.32,-4.38 2.05,-7.13 0.95,-1.8 2.76,-4.49 0.99,-5.93 0.39,-2.26 -2.32,-3.83 -0.66,-6.04 0.88,-1.84 1.61,-2.36 0.95,-4.74 z\",\n                        \"GB\" : \"m 468.18,66.85 c 0.73,0.5 0.74,-2.55 -0.62,-1.46 1.42,0.81 -1.37,0.46 0.75,1.28 z m -13.62,10.44 c 2.34,0.35 1.14,-1.51 -0.23,-0.73 0.93,0.37 0.65,0.52 0.23,0.73 z m 2.74,17.69 c 1.94,-1.8 4.37,-0.14 5.49,-1.81 2.97,0.29 4,-0.48 6.51,-0.56 1.81,0.42 5.84,0.27 6.27,-1.37 -2.46,-0.63 -2.69,0.17 -1.35,-1.05 -0.28,-0.25 1.95,-0.5 0.86,-0.91 4.04,-1.89 -1.41,-3.09 -3.21,-2.42 3.28,-1.88 -4.93,-2.87 -0.12,-2.21 0.67,-0.33 -1.42,-2.82 -3.46,-2.88 -0.53,-3.86 -4.23,-3.68 -7.05,-4 1.74,0.94 4.67,-1.34 1.43,-0.7 2.63,0.19 6.43,-5.05 1.4,-3.72 -2.31,-0.11 -5.91,0.89 -2.97,-0.38 -4.23,0.6 5.56,-2.36 0.85,-2.28 -2.58,0.5 -4.16,-0.23 -4.71,1.2 0.8,1.49 -2.11,0.36 -0.97,1.89 -2.22,0.06 1.76,0.51 -0.25,0.7 1.35,0.33 -0.33,0.5 -0.4,1.51 -2.78,-0.01 2.14,0.13 -0.35,0.25 1.87,0.7 3.13,-1.11 1.67,0.55 1.08,-0.88 -1.51,1.53 -0.73,1.44 0.63,0.34 -0.92,2.98 0.56,0.87 0.23,-1.39 1.08,-2.15 0.48,-0.62 0.95,0.66 0.6,-1.55 1.98,-0.18 -1.65,-0.35 0.4,2.76 -1.47,2.71 -0.18,1.03 2.74,0.56 4.25,-0.04 3.47,-0.7 -2.01,1.39 0.97,2.08 0.38,0.57 1.55,-0.34 0.51,1.4 -0.38,0.59 1.65,1.62 -0.37,1 0.46,0.91 -6.04,-0.4 -2.91,0.49 -2.13,1.49 -0.99,0.66 0.22,1.2 2.05,1.41 -5.17,2.73 -1.98,2.81 -1.74,0.99 2.93,-0.46 1.97,0.67 1.61,0.12 3.23,0.73 4.81,-0.64 -1.47,2.76 -5.23,0.39 -6.34,3.11 -0.58,0.81 -4.7,1.75 -1.57,1.9 z m -2.12,-19.78 c 1.63,-0.56 -1.14,-2.33 -2,-1.23 0.05,0.77 2.63,0.37 2,1.23 z m -1.93,-2.72 c 2.2,-0.45 0.89,-1.79 -0.58,-0.66 -1.07,0.55 0.17,0.89 -0.16,1.32 0.35,-0.04 0.65,-0.32 0.74,-0.66 z m -3.97,10.04 c 0.86,-0.99 5.51,-3.9 6.54,-0.8 0.26,-0.02 1.21,1 0.38,0.7 0.14,1.77 -3.34,0.88 -4.31,0.42 -0.25,1.29 -2.03,-0.1 -2.62,-0.32 z\",\n                        \"CR\" : \"m 233.81,206.48 c 0.33,-1.46 0.15,-3.05 2.63,-1.75 1.26,-0.41 3.08,0.93 3.6,0.56 0.32,2 4.06,3.34 1.96,3.95 0.36,1.38 0.15,5.52 -0.99,2.05 -0.87,-0.61 0.42,1.87 -1.24,0.14 0.64,-2.43 -3.28,-2.77 -4.36,-4.72 2.83,2.83 -1.34,1.74 -1.6,-0.24 z\",\n                        \"PY\" : \"m 298.18,298.18 c 1.02,-3.67 1.45,-8.62 6.57,-8.05 3.56,-1.4 6.47,1.43 6.83,4.47 -1.78,2.94 1.27,4.86 3.71,3.31 3.62,0.26 1.32,7.01 5.7,4.96 1.04,1.71 -1.13,4.37 -0.59,6.64 -0.96,2.02 -3.48,3.27 -5.13,3.5 -1.63,-0.54 -5.65,0.06 -5.82,-1.27 1.08,-2.1 4.76,-5.63 0.07,-6.27 -2.98,-1.78 -6.39,-2.41 -9,-4.65 -0.75,-0.97 -1.33,-1.92 -2.34,-2.65 z\",\n                        \"GN\" : \"m 430.29,204.77 c 0.33,-2.42 4.58,-1.46 3.32,-3.67 1.08,-2.79 4,1.15 6.35,-0.44 0.05,1.12 0.93,1.05 1.95,0.85 0.99,0.45 3.86,0.23 4.5,-1.01 0.56,1.49 3.03,3.02 1.43,4.31 1.61,-0.95 0.9,2.02 1.89,2.32 -0.98,1.79 0.93,2.72 0.52,3.91 1.83,1.69 -2.98,-0.02 -0.4,2.04 -0.69,1.73 -2.13,0.55 -3.22,2.32 -1.39,-0.69 -0.34,-5.01 -3.64,-3.51 -1.2,1.08 0.1,-2.46 -1.36,-3.31 -2.24,-3.04 -4.72,0.61 -6.61,1.65 0.51,-0.33 -1.42,-2.45 -1.34,-2.35 -0.73,-0.99 -3.15,-1.08 -2.02,-2.82 -1.2,1.34 0.12,-1.08 -1.37,-0.28 z\",\n                        \"IE\" : \"m 444.11,90.46 c -0.13,-0.4 1.83,-0.99 -0.44,-0.38 -1.79,-0.58 2.78,-1.53 -0.36,-1.09 -1.39,-0.37 2.35,-0.25 1.36,-0.92 1.45,-0.45 4.34,-1.04 1.19,-0.5 -3.64,0.91 3.84,-2.69 -0.27,-1.7 -2.94,-0.59 -0.76,-1.01 -0.54,-1.8 -1.56,-0.16 -0.99,-2.2 1.47,-0.74 1.83,-0.48 3.13,-1.09 1.36,-1.72 0.6,-0.78 2.86,-1.81 3.28,-0.91 -0.2,-1.24 2.32,-0.5 0.16,0.34 -1.91,0.64 -2.14,2.7 0.58,1.99 0.61,-0.54 3.44,0.81 2.42,1.05 1.41,1.91 0.22,5.57 -1.81,4.63 -1.85,0.81 -3.68,0.65 -4.27,1.59 -2.38,0.59 -3.98,0.52 -3,-0.14 l -0.42,0.04 z\",\n                        \"NG\" : \"m 479.33,213.43 c -0.74,-3.13 2.48,-4.29 2.68,-6.99 0.86,-1.84 -1.53,-5.34 1.23,-7.33 0.72,-3.9 6.68,-2.57 8.22,-0.04 3.1,-2.33 6.54,2.67 9.38,-0.98 3.15,-0.3 5.91,1.56 8.43,-1.04 2.01,1.12 1.79,3.72 3.2,4.78 0.16,2.42 -3.57,2.63 -3.59,5.45 -0.53,2.4 -2.48,3.65 -3.28,6.1 -0.85,1.35 -2.04,6.12 -3.53,2.87 -1.55,-1.18 -3.97,1.25 -5.54,3.03 0.46,1.96 -1.51,2.94 -1.66,2.96 -1.22,1.07 -3.43,0.25 -3.54,0.36 -0.26,-0.19 -0.24,1.57 -0.61,-0.46 0,2.25 -0.2,0.07 -0.89,1.32 -0.71,0.74 -3.87,-1.61 -2.56,-2.93 0.19,-0.74 -1.69,0.23 -0.33,-0.75 -1.03,0.52 -0.43,-1.14 -1.01,-0.35 0.07,-2.63 -6.4,-1.2 -3.46,-2.39 -1.78,0.87 -3.75,1.15 -2.82,-1.83 0.04,-0.6 0.02,-1.25 -0.32,-1.77 z\",\n                        \"TN\" : \"m 492.73,139.84 c 2.59,-1.31 2.36,-3.83 2.33,-6.21 -0.86,-2.13 4.15,-3.27 4.79,-2.72 0.36,2.04 1.6,0.55 2.76,0.85 -1.84,1.44 -2.03,2.98 -0.07,4.34 -0.98,2.24 -4.61,4.64 -0.5,5.19 0.95,-0.06 2.98,2.36 1.05,3.54 -3.75,0.6 -1.75,4.67 -4.77,5.76 -0.31,-3.76 -2.59,-6.57 -5.09,-8.89 -0.09,-0.65 -0.7,-1.13 -0.51,-1.85 z\",\n                        \"PL\" : \"m 511.14,86.91 c 1.18,-1.07 0.14,-2.61 1.23,-2.64 -2.71,-0.48 3.59,-0.81 4.68,-1.52 1.76,-1.47 7.6,-1.81 6.35,-0.5 1.16,1.25 3.78,-0.39 2.09,0.68 3.65,-0.2 8.06,-0.79 11.41,0.55 1.73,2.21 1.59,4.08 -0.5,5.24 2.09,0.18 -0.1,3.42 2.48,3.85 0.22,1.59 -5.48,2.45 -3.53,5.21 -2.76,-1.91 -6.66,-0.13 -8.87,-1.25 -2.82,0.03 -4.86,-2.26 -7.69,-2.79 0.45,1.84 -2.54,0.21 -1.59,-0.6 -1.56,-0.4 -4.91,-0.16 -3.77,-2 -1.91,-1.14 0.23,-3.58 -2.28,-4.23 z\",\n                        \"NA\" : \"m 504.49,284.16 c 2.67,-0.59 4.83,-0.78 7.32,0.45 3.68,-0.16 7.38,-0.03 11.06,-0.07 2.77,2.04 6.86,1.64 10.15,1.42 2.28,-0.53 8.45,-1.96 8.32,-0.28 -2.14,0.01 -3.73,3 -5.16,0.58 -2.85,0.57 -7.67,-0.11 -6.03,4.33 -0.21,2.99 1.49,7.83 -2.81,7.26 0.04,5.88 0.15,11.82 -0.09,17.68 -1.9,1.55 -5.65,2.34 -7.23,-0.2 -1.21,-2.07 -2.61,2.63 -4.13,-0.62 -2.03,-2.42 -2.71,-5.57 -2.83,-8.65 -2.09,-3.07 0.35,-7.14 -2.64,-9.75 -2.17,-2.8 -2.68,-6.66 -5.37,-9.07 -0.59,-0.91 -0.65,-2.04 -0.57,-3.09 z\",\n                        \"ZA\" : \"m 517.64,316.02 c 1.19,-1.75 2.24,-1.55 2.91,0.34 2.74,0.95 4.87,0.75 6.81,-0.97 0.05,-3.37 0.13,-6.75 0,-10.11 2.76,1 1.69,4.81 2.21,5.84 3.4,1.06 4.82,-2.6 6.62,-4.38 2.3,1.28 7.34,2.96 7.44,-1.4 3.59,-1.1 4.32,-5.96 8.43,-6.63 1.66,-1.27 5.99,-0.87 7.01,1.02 1.42,3.41 1.71,6.92 1.74,10.57 0.81,1.51 3.16,0.61 1.66,3.16 -0.2,3.58 -4.05,3.76 -5.13,7.09 -2.03,3.26 -5.17,5.67 -8.18,7.99 -3.36,2.5 -6,2.18 -9.22,3.16 -3.5,-1.28 -6.2,0.4 -9.48,0.63 -2.63,1.1 -5.23,1.31 -6.64,-0.86 -1.62,1.82 -0.59,-2.47 -1.89,-2.84 -1.44,-0.92 2.3,-1.41 0.56,-3.41 -2.1,-2.85 -3.25,-6.13 -4.83,-9.22 z\",\n                        \"EG\" : \"m 540.62,151.24 c 0.62,-2.12 -0.39,-5.44 2.84,-4.44 3.39,0.06 6.21,1.69 9.5,2.06 2.81,-1.31 3.87,-1.98 4.7,-1.77 0.47,-0.55 4.95,0.31 2.55,0.41 1.25,0.78 3.94,1.03 6.56,0.05 2.29,3.29 1.8,6.73 0.16,10.07 -2.92,-0.61 -3.58,-6.11 -5.17,-5.73 -0.08,2.73 3.43,4.48 3.31,6.42 1.6,2.88 2.84,6.25 4.98,9.06 2.21,1.08 -0.78,0.82 0.53,2.94 -1.41,1.63 -3.38,2.62 -5.01,4.17 -2.06,-1.14 -5.94,-0.88 -6.85,-0.91 -2.87,0.38 -5.9,0.08 -8.84,0.17 -2.85,-0.03 -5.72,0.05 -8.56,-0.01 -0.52,-6.86 0.27,-13.84 -0.17,-20.72 -0.11,-0.61 -0.23,-1.24 -0.51,-1.79 z\",\n                        \"TZ\" : \"m 553.31,249.69 c 0.05,-2.04 3.18,-2.61 3.48,-4.46 1.9,-1.22 -2.19,-2.05 0.62,-3.11 0.28,-1.93 -2.42,-4.35 1.3,-3.68 3.3,0.31 7.01,-0.92 9.83,1.32 3.58,1.98 7.47,3.62 9.08,6.89 2.99,1.01 3.44,3.34 1.84,5.82 1.21,1.91 2.3,3.4 1.63,5.05 -0.44,2.33 0.58,3.64 1,5.64 -0.1,1.36 3.86,1.55 0.32,3.04 -2.86,1.07 -5.18,1.74 -7.74,2.08 -1.96,0.13 -4.23,-0.06 -5.95,-0.53 -1.33,-1.85 -0.81,-6.41 -3.9,-5.14 -2.7,-1.2 -5.66,-1.91 -7.67,-3.9 -0.76,-3.22 -4.06,-4.84 -3.5,-8.25 z m 28.59,0 c -0.2,2.46 1.25,0.12 0,0 z\",\n                        \"GE\" : \"m 582.88,113.61 c 2.79,-0.74 6.67,0.6 9.61,1.38 1.83,1.51 4.27,-0.27 6.31,1.21 -0.92,1.66 3.09,0.79 1.37,2.38 3.41,2.97 -2.66,-0.44 -3.79,1.12 -2.66,0.97 -4.88,-0.74 -6.53,-0.77 -1.84,0.24 -3.15,0.32 -2.29,-1.68 -0.23,-2.66 -3.01,-2.48 -4.68,-3.63 z\",\n                        \"SA\" : \"m 590.61,189.47 c -0.88,-2.99 -3.92,-4.58 -4.89,-7.97 -1.27,-3.07 -6.19,-3.66 -5.52,-7.9 0.39,-2.99 -1.87,-5.27 -4.52,-6.93 -0.65,-2.58 -2.92,-5.29 -4.69,-7.94 -0.06,-2.16 -2.94,-1.82 -2.91,-2.56 0.23,-2.93 1.6,-3.33 4.3,-2.82 1.27,-1.95 4.6,-2.38 4.88,-3.78 -1.29,-1.21 -3.84,-3.03 -0.42,-3.02 3.89,-1.94 8.22,-0.99 11.6,1.61 3.52,1.8 6.13,5.86 10.43,5.55 2.65,-0.37 4.65,0.71 6.44,1.64 2.33,0.35 1.6,2.87 3.14,3.21 1.82,1.38 2.95,2.21 2.39,3.91 0.18,1.21 2.56,4.27 3.61,4.3 1.04,2.59 4.1,5.36 7.63,4.83 3.93,-0.7 5.02,2.87 3.03,5.92 -0.74,3.57 -5.79,2.83 -8.46,4.41 -3.59,1.37 -8.49,0.07 -11.59,3.09 -1.02,2.11 -2.19,3.42 -4.17,1.94 -2.95,-0.03 -6.49,-0.82 -8.92,0 0.04,0.99 -0.26,2.74 -1.34,2.51 z\",\n                        \"VN\" : \"m 755.17,172.63 c 0.91,-1.98 2.34,0.56 3.54,-0.94 1.04,0.45 2.54,0.26 4.02,-0.74 1.02,-2.2 3.13,0.9 5.07,0.38 -0.86,1.7 0.74,3.22 2.41,3.54 2.96,-0.51 -1.88,2.41 -2.21,1.77 0.48,1.03 -2.31,2.48 -2.75,4.57 -1.54,2.03 3.01,3.94 1.85,4.62 2.04,2.46 3.28,2.9 4.87,4.81 0.05,-0.85 1.95,1.9 1.82,2.41 1.55,3.64 0.92,3.94 1.59,7.16 -0.67,-0.85 -0.52,1.4 -0.52,1.15 0.64,1.16 -2.21,3.59 -4.5,4.49 -1.66,0.8 -2.66,-0.69 -2.43,0.39 -0.15,0.91 -1.37,0.04 0.09,0.95 -1.36,0.66 -1.47,-1.28 -0.44,0.82 -2.44,-1.62 -0.12,-0.77 -0.39,0.78 -1.94,-0.57 -1.84,-2.06 -0.82,0.3 -2.07,0.81 -4.16,4.06 -3.82,0.99 0.78,-2.37 0.92,-2.65 -1.03,-3.75 1.68,-0.88 2.76,-2.29 4.83,-1.03 -0.67,-1.4 -1.31,-3.13 0.78,-2.89 1.61,-0.85 4.31,-1.91 3.12,-4.9 -1.35,-2.37 1.11,-4.83 -1,-6.45 1.26,-1.25 -2.9,-1.71 -2.51,-3.92 -2.51,-1.44 -2.46,-4.26 -5.2,-4.92 -3.29,-1.8 0.52,-1.56 1.45,-2.95 -1.87,-0.74 -0.48,-2.8 -3.09,-2.24 -2.24,1.73 -2.61,-2.83 -2.89,-2.56 -0.49,0.58 -1.33,-1.6 -1.86,-1.83 z\",\n                        \"RU\" : \"m 971.63,34.32 c -1.5,-0.19 -5.91,2.38 -2.08,1.91 2.33,-1.01 8.44,0.86 8.55,-1.53 -2.14,-0.48 -4.28,-0.89 -6.47,-0.38 z M 699.9,23.18 c -3.3,0.24 -0.12,1.64 0,0 z m -33.68,5.84 c -1.81,2.27 7.41,0.46 3.17,0.09 0.98,-0.56 -2.87,-0.28 -3.17,-0.09 z m -31.55,9.7 c 0.94,-0.02 3.93,1.6 4.89,0.34 -2,-1.28 -6.78,-2.58 -4.89,-0.34 z M 645.6,7.94 c 2.1,0.81 6.73,0.71 7.81,-0.79 -2.55,-0.76 -5.11,0.83 -7.81,0.79 z m -9.12,0.95 c 2.18,0.64 7.53,0.74 7.73,-1.03 -3.66,0.05 -4.99,-0.33 -7.91,0.71 z M 623.91,28.36 c -4.56,1.43 2.66,0.38 3.65,0.95 1.19,0.47 4.53,-0.33 1.95,-1.01 2,0.9 2.82,-0.47 0.2,-0.48 -1.21,-0.19 5.53,0.74 1.33,-0.65 0.73,-0.06 5.38,0.3 2.36,-1.36 2.9,0.68 2.13,-0.65 4.55,-0.29 -1.54,-0.19 1.53,-0.23 1.67,-0.46 0.13,-0.76 -2.34,0.04 0.06,-0.73 2.54,-0.34 5.76,-1.32 8.84,-1.66 4.99,-0.57 10.06,-0.97 14.86,-2.56 -1.87,-2.8 -8.01,-0.49 -8.89,0.04 -3.71,0.39 -7.48,1.2 -11.28,0.77 -1.77,-0.36 -3.22,1.48 -3.1,0.45 -2.2,0.2 -0.1,0.46 -2.95,0.51 -4.08,0.54 -4.67,1.68 -7.82,1.94 0.15,0.68 -4.98,0.18 -1.05,0.85 1.4,0.2 -3.27,0.59 0.06,0.67 3.97,0.31 -5.23,-0.06 -0.89,0.73 1.24,0.01 -4.22,0.13 -1.04,0.61 -2.54,-0.21 -1.1,0.04 0.47,0.44 -2.25,-0.51 -4.99,0.93 -5.67,1.12 0.61,0.54 6.12,-0.52 2.67,0.12 z m -5.88,2.75 c 1.68,0.11 1.59,-0.22 0.24,0.32 1.51,-0.45 -0.47,0.57 -0.24,0.71 -1.06,0.7 -5.24,0.87 -2.19,2.36 1.86,-0.28 4.85,0.15 4.97,0.36 -0.41,0.75 2.03,0.62 0.25,0.77 -1.12,-0.13 0.72,0.92 -0.99,0.67 2.84,0.54 5.41,0.4 7.21,0.61 1.05,0.34 2.39,0.25 0.79,-0.27 2.41,0.43 2.75,0.37 2.04,0.24 4.33,-0.45 -4.41,-0.98 -4.36,-3.97 0.1,-1.36 -0.47,-1.57 0.41,-1.44 0.29,-0.6 1.54,-0.35 -0.03,-0.74 1.52,0.53 2.74,-0.78 0.38,-0.46 1.41,0.09 2.26,-0.42 0.53,-0.26 4.28,-0.45 -3.39,-1.33 -4.83,-0.64 -2.97,-0.14 -2.08,1.5 -4.89,1.6 z m -7.43,9.53 c -1.67,-2.02 -7.61,1.11 -3.2,1.55 0.98,-0.01 5.53,-0.93 3.2,-1.55 z M 626.15,6.83 c 1.89,0.57 9.44,-0.37 3.92,-0.56 -0.39,0.08 -2.89,-0.15 -1.08,0.44 -0.44,0.01 -3.74,-0.5 -2.84,0.12 z m -9.1,3.04 c 1.78,0.7 6.23,-0.28 2.16,-0.59 -0.28,0.25 -3.39,0.33 -2.16,0.59 z m -13.03,0.4 c 0.78,0.15 5.2,-0.26 2.8,-0.59 2.36,-0.85 6.52,-0.52 7.91,-1.38 -1.22,-0.29 -4.91,0.3 -1.6,-0.28 -0.59,-0.58 -3.5,0.14 -1.34,-0.24 -3.13,-0.25 -2.81,0.57 -3.31,0.85 -1.9,0.22 -7.46,0.41 -2.75,0.61 -2.3,-0.15 0.42,0.53 -2.01,0.44 -7.49,0.01 3.22,-0.16 0.3,0.59 z m -7.39,-1.66 c 3.46,1.24 7.04,-0.96 10.56,-0.08 -1.62,-1.32 -7.35,0.24 -10.56,0.08 z M 550.76,41.81 c 2.52,-0.75 5.08,-1.98 6.88,-2.34 0.83,0.45 2.94,-0.54 3.58,-0.55 1.61,0.32 3.8,1.03 0.66,0.9 -2.9,-0.77 1.31,0.46 -0.7,0.49 1.53,-0.15 3.23,-0.12 3.2,0.35 0.65,0.34 -2.22,1.33 0.48,0.31 3.07,-0.65 6.96,-0 10.19,1.01 3.84,1.6 6,1.58 9.2,2.84 3.79,0.78 1.59,4.16 -1.47,4.37 -4.11,1.23 -8.3,-0.06 -12.43,-0.41 -2.29,-1 -5.99,-0.44 -7.02,-1.96 -1.92,-0.17 -4.1,-0.36 -1.1,0.3 -1,0.77 3.67,0.87 0.81,1.12 1.5,-0.05 2.08,0.13 0.26,0.22 0.82,0.03 2.97,0.23 0.97,0.57 1.94,-0.29 6.08,1.31 3.11,2.8 2.07,1.43 0.39,2.95 3.74,2.79 1.49,0.82 5.7,2.62 6.11,0.27 -1.26,-0.29 -6.55,-1.72 -2.32,-2.66 1.78,0.52 3.44,1 2.99,1.37 2.04,-0.56 8.95,1.76 4.63,-1.44 -0.68,-2.3 5.02,-2.1 6.68,-3.68 1.48,0.13 4.51,0.29 3.19,1.35 1.11,-1.54 2.52,1.82 1.93,-0.73 2.17,-1.28 0.18,-2.28 -0.97,-2.98 2.76,-1.95 0.07,-3.27 -0.76,-3.71 2.57,0.57 8.38,-0.19 8.42,2.42 -2.12,-0.45 -6.53,1.12 -2.4,2.09 2.21,1.21 2.8,0.62 5.62,0.23 -0.91,-2.75 3.9,-1.49 3.35,-2.25 -0.81,-0.51 3.82,-0.62 4.96,-1.57 2.57,-0.84 3.87,-0.01 5.58,-0.28 -3.18,-1.57 8.33,-1.77 3.14,-1.4 -1.33,0.27 1.2,-0.16 -0.05,0.79 1.06,1.15 -3.55,0.91 -0.29,1.24 2.91,0.48 5.56,-2.03 9.15,-1.01 2.48,-0.4 6.59,-2.15 6,-0.25 0.12,1.82 2.64,0.33 2.43,-0.11 3.13,0.15 2.36,-1.62 0.18,-2.43 3.11,-1.19 6.74,-0.36 10.13,-0.11 1.58,0.26 3.57,0.97 3.25,1.14 2.44,0.14 5.15,0.73 8.09,1.98 1.56,2.29 5.21,-2.21 1.82,-1.33 -1.13,-1.89 -3.26,-1.52 -4.87,-2.19 1.38,-0.81 1.37,-1.23 1.32,-3.03 -4.77,-0.76 4.39,-1.49 4.45,-4.43 1.95,-2.69 4.8,-1.07 8.35,-1.33 4.1,-0.82 2.93,3.44 0.05,3.74 1.68,0.94 3.6,2.18 1.73,3.93 0.86,1.89 -1.11,4.11 2.42,4.15 0.76,1.93 -3.34,4.01 -4.19,4.65 -2.24,1.3 -6.63,0.18 -7.57,0.78 3.24,1.44 7.59,1.87 10.57,0.09 2.11,-0.42 4.07,-2.19 5.25,-3.57 -3.52,-2.7 3.66,-3.35 5.21,-2.4 3.33,0.55 -0.34,4.1 3.31,3.5 2.06,0.07 3.91,-0.08 1.06,-0.3 -2.07,0.51 -2.85,-1.52 -0.6,-1.72 -1.7,-3.02 -6.11,-2.78 -9.2,-2.28 -3.32,1.25 -4.05,-3.19 -1.18,-4.22 -1.37,-1.81 -5.14,-2.02 -1.67,-3.51 2.76,0.11 4.47,-1.6 3.74,-2.88 4.25,0.41 -2.19,5.52 2.88,4.66 2.84,-0.4 5.34,1.47 8.25,0.58 -2.11,0.46 -2.66,-1.43 -5.43,-1.02 -2.46,0.05 -3.97,-2.26 -0.53,-1.84 1.8,1.27 5.53,-0.37 1.63,-0.18 1.45,-1.57 8.02,-0.68 8.84,0.14 1.57,1.18 8.01,1.5 4.08,-0.7 -2.4,0.18 -4.08,-0.51 -4.45,-2.45 -2.02,-1.1 4.3,-1.77 7.14,-1.4 3.48,-0.3 8.76,0.04 11.02,-1.07 2.34,-0.1 -4.74,-0.7 -2.39,-0.95 -0.42,-0.13 4.58,0.38 1.01,-0.39 0.57,0.25 -3.6,-0.71 -0.97,-0.71 1.82,1.27 2.53,-0.93 3.62,-0.68 -3.88,-0.68 2.51,0.27 3.54,-1.02 2.47,-0.31 7.11,-1.08 10.59,-1.06 1.75,-0.02 6.32,-0.75 2.14,-0.57 -3.2,0.14 2.48,-0.71 1.89,-0.48 1.44,0.03 8.01,-0.59 4.39,0.68 2.73,-0.33 6.46,-0.1 6.71,-0.79 1.53,-0.5 7.67,0.84 3.11,-0.6 0.9,-0.72 6.18,-0.34 8.72,-0.09 -3.83,0.29 -4.57,-2.17 -0.62,-2.7 0.92,-0.73 6.69,-1.44 9.5,-0.53 5.79,0.7 -7.79,1.3 -2.14,1.22 1.05,0.09 4.77,-0.38 1.9,0.35 1.69,-0.44 8.06,-0.46 3.4,1.12 -1.39,0.48 3.57,0.27 4.44,-0.48 3.58,0.25 7.62,-0.79 10.87,0.72 -0.84,0.42 2.48,-0.24 1.6,1.27 1.98,-0.48 0.95,-0.87 2.48,0.42 2.08,1.99 -5.7,-1.07 -2.24,0.93 4.73,-0 -1.11,2.27 -2.81,2.4 -1.94,0.31 -5.86,1.12 -5.85,1.26 -0.9,1.24 -6.22,1.45 -8.63,2.71 -1.8,0.05 -6.59,2.58 -2.26,1.24 2.16,-1.56 5.9,-0.49 8.13,-1.3 2.01,-0.61 3.05,-0.34 6.04,-1.01 -1.37,-0.24 -5.76,0.35 -2.07,-0.9 2.24,0.69 3.44,-0.75 4.09,0.77 2.3,1.09 4.96,-1.83 4.83,0.98 1.66,0.24 1.77,0.4 0.3,-0.3 4.8,-0.78 9.67,-0.25 14.49,-0.31 1.31,0.49 -2.79,0.97 0.54,1.44 4.1,0.37 8.27,0.6 12.35,0.24 1.32,-0.38 -1.11,-2.03 1.18,-1.71 2.19,-1.28 4.98,1.13 7.38,0.3 -0.95,0.87 4.04,-0.89 5.45,0.66 1.57,0.25 2.9,0.72 0.29,0.99 1.1,0.24 3.22,0.23 0.84,0.44 3.89,0.1 -3.53,0.87 0.5,0.78 3.52,0.89 -0.52,1.51 -2.08,0.92 1.24,2.04 2.83,0.75 2.99,0.75 0.84,0.89 -2.7,0.35 0.17,1.39 2.02,1.74 6.76,2.73 7.4,-0.04 1.99,-3.1 6.22,1.88 8.33,-0.22 2.53,-1.29 6.77,0.83 8.07,0.88 -1.07,-0.26 2.51,-0.22 0.21,-0.7 0.86,-1.55 7.15,1.34 4.48,-1.25 -1.52,-0.35 3.99,-1.31 0.04,-0.9 -3.64,-0.53 4.95,-0.88 3.67,-1.44 -1.78,-1.2 3.85,0.5 4.95,-0.03 3.78,0.46 7.81,-0.29 11.41,1.08 -1.97,0.11 -6.62,-0.64 -6.82,0.4 1.84,-0.05 5.37,-0.93 6.18,0.11 -1.39,0.83 -1.65,0.91 -1.09,-0.09 -0.72,0.29 -1.94,-0.53 -1.24,0.75 -5.07,-0.17 0.46,1.63 2.66,-0.53 2.46,-1.06 7.58,-1.06 8.91,0.76 -1.79,-0.38 -4.53,0.84 -1.05,0.47 1.15,0.28 4.44,0.6 1.29,1.23 2.21,-1.04 6.84,0.24 4.96,0.85 5.17,1 10.36,-1.23 15.56,-0.33 2.68,-0.3 8.1,1.17 6.57,2.79 -1.16,1.6 4.4,1.44 5.94,1.15 4.24,-0.26 8.41,0.19 12.63,0.51 2.15,-0.66 4.01,-1.15 5.28,0.74 2.64,0.49 6.14,2.47 6.98,0.05 -1.24,-1.52 -3.26,-0.69 -1.32,-2.19 0.7,-1.37 8.12,1.13 7.9,0.16 3.46,0.52 7.04,-0.18 10.46,0.85 1.35,0.51 6.14,0.35 4.29,0.92 0.79,-0.46 4.68,1.19 2.41,0.52 2.16,0.46 5.41,1.1 5.43,1.55 1.19,0.56 3.35,0.93 0.79,0.09 2.16,0.97 5.03,1.12 7.95,2.4 1.33,0.64 1.4,1.9 1.88,2.97 0.84,1.19 3.75,0.75 1.22,0 2.47,-0.77 -2.9,-1.74 0.45,-1.46 1.76,0.08 2.44,0.01 2.51,0.67 0.81,-0.43 3.29,0.07 0.65,-0.46 2.22,-0.49 6.18,1.78 7.69,2.37 -0.96,0.09 1.65,0.5 -0.56,0.77 -0.76,2.14 -4.58,-0.74 -1.93,1.06 -2.47,0.6 -2.35,-0.21 -5,-0.36 2.44,0.29 1.25,1.6 0.94,1.38 2.18,0.9 -3.6,1.04 -1.04,1.29 -1.43,-0.11 3,1.25 0.18,0.73 -0.3,0.17 -1.68,1.32 -1.72,-0.36 -1.51,1.26 -4.85,-0.64 -6.58,-1.32 -1.81,-3.33 -6.72,0.72 -8.23,-2.23 -0.61,-0.31 1.99,-2.18 -0.21,-0.88 -1.28,-0.91 -1.46,-0.1 -2.74,0.68 2.99,0.99 -0.19,1.65 -0.28,1.65 3.75,-0.02 -5.6,2.72 -3.73,1.89 -2,0.91 -6.16,-1.99 -6.2,-0.85 3.84,0.06 0.17,0.91 -1.55,0.24 2.36,0.43 -0.59,1.16 1.81,0.69 1.75,-0.28 2.11,-0.33 2.58,1.05 2.16,-0.14 3.34,0.5 3.34,1.94 -1.67,-0.07 1.26,0.52 1.03,0.8 2.43,1.15 0.52,3.62 -2.11,2.22 -1.33,0.29 -4.96,-1.63 -2.89,-0.15 -3.34,0.63 -6.6,1.85 -8.87,2.22 -2.5,0.64 -3.1,1.12 -4.43,1.7 -0.56,0.3 -2.37,1.48 -4.94,1.89 -0.74,1.29 -1.85,2.25 -3.1,0.15 -3.55,-1.16 -6.98,0.24 -9.9,1.78 2.5,-3.25 -2.42,-0.68 -2.59,-0.69 -0.29,1.42 -3.63,-0.72 -3.75,0.28 -2.2,0.8 -0.97,2.76 -2.67,3 -2.8,1.07 -1.97,4.41 0.19,2.71 3.15,0.22 -2.73,3.14 1.25,3.62 1.02,2.49 -3.36,1.43 -0.75,0.35 -1.62,0.1 -5.18,2.81 -2.6,4.89 -1.79,1.07 -7.62,0.75 -5.76,4.09 0.54,0.69 -4.84,0.51 -3.78,1.21 0.26,2.66 -4.19,5.47 -5.34,4.98 -1.23,-1.82 -0.28,-3.97 -1.79,-4.95 -0.41,-3.63 -2.89,-7.71 0.14,-10.94 0.78,0.26 2.73,-2.06 2.57,-2.91 2.48,-0.16 4.7,-0.97 6.7,-2.47 1.76,-2.35 5.38,-3.06 7.18,-4.99 2.5,-0.93 5.74,-0.98 4.96,-3.13 0.24,-2.16 3.65,-2.8 3.73,-2.53 2.99,0.51 -2.88,-1.13 -4.15,-0.39 -2.79,0.04 -0.26,3.84 -2.75,2.81 -2.29,-0.33 -6.12,3.78 -7.01,2.35 1.19,-1.04 -2.28,-0.34 -0.36,-1.72 2.14,-2.08 -0.23,-0.94 -1.49,-1.11 -2.69,-0.3 -6.59,-0.44 -8.43,1.64 -1.71,1.5 -7.4,3.4 -6.03,4.97 0.96,-1.1 3.85,1.21 0.73,0.68 -3.09,0.1 -5.55,0.89 -8.63,0.83 -3.18,-0.96 4.91,-0.49 0.68,-1.26 -2.13,-0.49 -5.39,-1.56 -7.38,-0.56 1.01,0.46 -1.95,-0.17 -0.43,0.88 -2.55,-0.2 -5.58,-0.7 -7.83,0.16 -2.34,-1.32 -6.17,-0.32 -9.07,-0.26 -3.53,1.16 -5.89,3.73 -9.04,5.38 -3.56,1.69 -5.69,4.21 -9.53,5.74 -2.6,0.19 -3.31,2.3 -0.27,2.04 2.61,-0.94 2.14,1.14 2.26,2.27 2.19,0.07 -0,-1.75 2.56,-1.47 -3.02,1 1.77,0.77 -0.67,1.65 -1.82,2.34 5.63,-2.43 2.06,0.65 2.26,-0.43 0.18,-3.46 3.17,-2.04 1.97,-0.28 4.66,2.3 5.58,3.22 -1.6,0.15 -1.95,-0.45 -0.19,1.01 -0.15,1.5 1.17,2.27 -1.22,3.44 -1.55,2.06 -0.54,4.25 -1.6,6.27 0.41,3.03 -4.64,4.81 -5.79,7.92 -2.09,2.7 -5.25,4.3 -7.35,6.9 -1.64,1.88 -5.23,4.21 -7.92,3.24 -1.8,0.11 -0.61,-1.9 -2.3,-0.7 -0.16,-1.65 -1.87,2.49 -3.28,1.31 0.46,1.81 -1.75,-1.25 1.09,-0.86 1.52,-2.63 -2.24,-6.36 2.34,-6.58 3,2.1 3.84,-1.39 5.39,-2.88 -0.38,-2.5 3.83,-3.99 1.6,-5.81 -3.45,0.24 -6.72,3.17 -10.12,1.43 0.13,-2.81 -1.87,-2.89 -4.03,-4.41 -2.43,-0.09 -5.88,-0.38 -5.77,-3.74 -1.45,-1.8 -2.14,-4.2 -3.6,-5.7 -2.3,-1.41 -5.07,-1.76 -7.89,-2.02 -2.79,0.1 -7.06,0.22 -8.32,2.4 4.53,0.5 -1.32,3.5 -1.93,5.45 -0.81,1.4 -0.35,2.28 -2.87,2.41 -2.78,2.08 -5.92,-1.06 -8.94,-0.42 -3.56,-2.26 -6.54,2.47 -10.36,1.78 -3.78,1.2 -8.2,0.14 -11.23,-1.73 -3.43,-2.39 -7.69,-0.54 -11.49,-0.62 -3.53,0 -2.29,-4.58 -6.08,-3.84 -3.47,-1 -7.32,-2.39 -8.77,1.51 2.67,2.58 -1.84,4.43 -4.22,3.08 -2.65,0.3 -5.06,-0.22 -6.91,-1.86 -3.05,-0.27 -5.04,-1.01 -8.15,0.62 -3.41,0.72 -4.12,2.94 -7.39,2.57 -2.57,3.54 -4.17,-2.26 -5.85,-0.12 -3.45,0.09 -4.91,-3.11 -7.92,-4.23 -1.79,0.67 -5.66,1.46 -6,-0.37 -1.76,-1.57 -3.29,3.16 -4.42,-0.56 -2.08,-2.7 -4.08,-5.81 -7.45,-6.99 -2.94,-0.65 2.26,-2.26 -1.52,-1.44 -2.68,0.52 -4.55,2.65 -7.12,2.07 -1.71,1.15 -1.51,-1.01 -0.09,-1.09 -0.96,0.21 -3.6,-0.82 -3.19,0.06 -0.64,-1.58 -2.14,0.01 -4.41,-0.88 1.6,-1.26 -0.94,-3.7 -2.77,-2.54 -3.35,-1.83 -4.38,0.94 -7.69,1.08 -3.32,-0.09 -5.6,1.49 -8.71,1.36 -2.79,0.62 -4.93,1.23 -7.82,0.89 -0.95,0.56 -0.85,1.29 0.85,1.36 -3.67,0.63 4.3,1.18 0.3,1.57 -1.27,-0.73 -3.63,0.61 -1.72,1.73 -1.63,0.74 -4.26,1.08 -1.26,1.96 2.69,-0.04 3.89,2.45 0.51,2.77 -2.59,-1.22 -3.45,1.54 -6.07,-0.6 -1.28,-1.9 -3.02,0.94 -4.63,-0.61 -2.08,0.38 -3.98,2.57 -6.19,0.18 -0.36,0.13 -0.41,2.64 -0.76,0.47 -2.31,-1.41 -5.48,-3.19 -7.58,-1.69 -2.42,-1.77 -3.19,0.57 -6.05,1 -0.91,1.62 -3.37,0.79 -1.95,3.21 -1.78,1.59 -3.66,-3.44 -4.48,-0.03 -2.34,1.01 0.7,2.74 -1.77,3.83 1.72,0.88 1.16,2.91 3.55,2.32 1.92,0.42 4,3.42 2.02,3.3 3.17,0.87 0.68,1.16 0.15,1.87 0.14,0.2 -3.39,1.02 -3.1,0.78 0.05,0.65 -2.16,2.52 -2.08,3.59 2.36,0.01 1.19,3.75 2.55,1.49 -3.08,2.65 4.55,4.97 1.08,6.89 -2.15,1.53 -4.26,-2.15 -6.69,-2.29 -0.24,-2.22 -3.9,-0.8 -5.31,-1.29 -3.01,-1.83 -6.89,-1.88 -10.23,-2.23 -1.78,-0.19 -4.76,-3.39 -6.74,-3.27 -1.46,-0.98 -3.03,-1.13 -2.39,-2.05 -0.52,0.01 3.77,0.8 2.26,-0.72 1.23,-0.82 1.38,-1.35 2.52,-1.35 -1.99,-0.82 -2.6,-1.9 -0.03,-1.48 0.08,-0.87 4.3,-1.72 0.79,-1.49 -1.7,0.19 0.99,-0.52 -1.29,0.13 -1.34,-2.6 5.48,-1.24 4.27,-3.36 0.06,-0.72 -0.91,-1.17 0.33,-1.54 -1.63,0.07 2.15,-2.61 -0.74,-2.02 -2.43,-1.28 -4.96,-0.76 -6.99,-2.3 -2.48,1.01 -5.03,-0.02 -5.75,-2.1 -2.48,0.45 -2.83,-1.27 -2.31,-2.1 -1.74,-3.01 -5.47,0.3 -7.34,-1.15 -0.7,-1.78 -1.35,-3.13 1.38,-2.27 3.16,-0.33 0.44,-2.32 -0.94,-2.06 -0.65,-1.4 -3.51,-2.48 -2.43,-4.79 -2.86,-1.11 -4.55,-0.8 -7.42,-1.56 -0.34,-1.92 -1.75,-2 -1.49,-3.59 -2.06,-0.78 1.47,-1.38 -0.64,-2.52 -0.39,-2.21 2.22,-2.82 1.75,-4.13 1.41,-0.3 5.09,-0.54 5.47,-0.65 -2.54,-0.54 -4.68,-1.21 -4.25,-2.06 -4.58,1.28 2.09,-1.55 3.43,-2.54 2,-1.25 7.48,-3.89 2.47,-5.11 -3.07,-0.74 -0.25,-1.08 -0.51,-2.36 -2.14,-0.64 -0.29,-1.41 -2.37,-1.96 0.74,-0.38 -0.53,-2.35 1.36,-2.08 -1.86,-2.36 -3.8,-3.95 -0.44,-5.63 -1.21,-1.25 -5.27,-1.27 -3.5,-3.22 z m -24,40.71 c 0.88,-1.73 2.7,-1.43 4.13,-2.53 -2.85,1.07 0.58,1.91 0.81,0.07 2.08,0.22 6.34,0.97 4.11,2.79 -2.19,-0.03 -8.09,0.44 -7.89,-0.69 2.88,-0.71 -0.85,-0.45 -1.16,0.35 z m 223,-67.55 c -4.59,2.22 3.76,0.36 5.68,0.55 2.84,-0.28 8.08,0.35 9.36,-1.46 -2.8,-0.94 -5.59,-1.47 -8.48,-0.35 2.46,-1.14 1.51,-1.97 -0.83,-1.28 0.14,-0.04 -4.27,0.2 -2.19,0.83 -2.54,-0.13 0.16,1.15 -2.09,0.62 -0.66,0.05 -1.03,0.67 -1.45,1.09 z m -15.19,-4.39 c -2.63,0.17 1.01,0.57 -1.42,0.71 -2.13,0.29 -4.71,0.8 -1.08,0.67 1.38,0.3 5.95,1.77 9.06,1.42 2.18,0.49 5.08,0.87 8.3,-0.03 -1.67,-0.82 -3.11,-0.54 -0.78,-1.18 2.16,-2.45 -3.42,-1.89 -4.48,-1.31 -2.13,0.5 -2.34,0.64 -0.16,-0.48 -3.02,-0.52 -6.41,-0.32 -9.44,0.2 z m -8.47,-0.91 c 1.77,-0.54 6.96,0.07 2.33,-0.04 -2.54,0.03 3.07,0.57 -0.35,0.37 0.98,0.78 6.2,0.36 8.94,-0.08 2.09,-0.12 5.73,0.71 4.54,-1.43 4.76,-0.14 -1.67,-0.62 -3.05,-1.86 -1.06,-0.3 -4,0.25 -1.31,0.2 -2.23,0.29 -7.04,0.42 -7.73,1.41 2.63,0.43 -5.01,1.09 -0.54,1.12 -0.45,-0.23 -3.92,0.04 -2.82,0.32 z m -1.28,0.91 c 0.46,0.98 4.67,0.37 2.23,0.78 2.23,0.88 6.89,-1.15 2.05,-0.83 -0.89,0.18 -5.17,-0.51 -4.28,0.05 z m 160.93,14.73 c 1.89,0.35 7.14,-1.17 2.58,-1.29 -3.24,-0.5 -6.78,-0.05 -9.54,-1.02 -3.43,1.66 3.77,2.03 5.24,2.25 l 0.85,0.04 z m -25.17,3.62 c -2.36,0.58 3.2,-0.42 4.04,0.33 2,0.5 8.21,0.71 3.78,-1.2 -2.87,-1.22 -5.22,0.19 -7.82,0.87 z m -8.42,-6.04 c 0.81,-0.01 1.46,1.28 -0.37,0.79 2.5,2.49 6.34,1.41 8.91,1.5 1.91,-0.24 6.38,-0.99 5.66,-0.08 1.51,-0.16 6.2,-0.24 2.21,-0.64 -3.44,-0.75 -2.13,-2.75 0.12,-1.6 -2.84,1.84 5.45,2.38 5.47,0.44 3.07,-0.14 -3.3,-1.64 -4.56,-1.03 -2.46,0.55 -4.5,-1.5 -5.62,-0.66 -0.9,0.21 -1.25,2.33 -2.11,0.68 -2.65,-0.48 -5.34,-1.7 -8,-0.36 0.83,1.16 -1.43,-0.07 -1.71,0.96 z m 80.88,57.08 c -3.12,-0.06 3.2,3.15 -0.02,0.55 -0.07,-0.17 0.2,-0.4 0.02,-0.55 z m -7.79,-9.11 c 1.7,0.2 5.64,-2.63 1.53,-1.36 -0.47,-0.2 -0.5,1.33 -1.53,1.36 z m -40.64,36.73 c -2.29,0.38 -3.51,1.08 -5.23,2.73 0.13,-0.02 4.7,-2.12 5.23,-2.73 z m -7.3,2.84 c -1.21,1.14 -2.89,3.28 -0.55,1.04 0.9,-0.66 2.7,-0.78 0.55,-1.04 z m -9.66,-26.71 c 0.75,1.38 -0.43,1.65 -1.91,1.68 -0.17,2.36 -1.31,4.65 0.77,6.5 -1.23,3.17 -0,6.76 -0.66,9.65 0.05,1.47 -1.02,7.12 1.07,3.3 1.11,-1.76 3.47,1.34 3.17,0.46 -0.05,-2.77 -1.34,0.29 -1.58,-2.82 -2.96,-1.39 1.1,-6.32 1.28,-5.58 -0.61,-1.26 4.06,1.68 3.46,1.59 -1.93,-2.09 -2.68,-5.85 -3.35,-7.75 -0.75,0.02 -1.18,-3.19 -0.15,-2.9 -0.66,-1.12 -0.96,-3.6 -0.05,-0.95 -0.34,-2.36 -1.49,-2.05 -1.26,-3.92 -0.65,-0.64 -2.51,-0.14 -0.77,0.74 z m -14.76,-2.79 c -0.45,1.81 3.64,-0.2 1.02,-0.48 -0.44,-0.39 -0.62,0.49 -1.02,0.48 z\",\n                        \"HT\" : \"m 266.35,183.21 c 0.99,0.03 4.39,1.37 4.7,-0.3 -1.42,-0.77 -0.59,-2.99 -2.83,-2.75 2.53,-1.63 5.89,0.33 4.66,2.79 -1.39,0.24 1.33,2.8 -1.22,1.39 -1.06,-0.01 -8.54,0.81 -5.31,-1.14 z\",\n                        \"BA\" : \"m 515.61,108.85 c 1.82,-0.49 4.8,-0.16 7.39,-0.06 1.25,0.88 3.38,0.03 2.04,2.13 1.88,0.97 -0.1,0.88 0.72,2.1 -1.5,0.44 -2.48,1.02 -2.64,2.86 -2.69,-0.82 -4.05,-3.01 -6.27,-4.99 0.04,-1.12 -1.73,-0.78 -1.25,-2.05 z\",\n                        \"IN\" : \"m 661.02,168.77 c 2.15,-2.64 10.72,0.22 6.65,-5.13 -1.73,-1.18 -1.11,-2.71 -2.75,-3.65 0.53,-4.88 5.65,-1.01 7.64,-4.52 1.73,-3 5.85,-5.29 5.99,-8.59 1.43,-1.5 3.18,-2.4 0.21,-3.07 -1.63,-1.59 -1.49,-3.83 -1.68,-5.26 3.14,-1.38 6.62,1.29 9.3,-2.1 2.3,-1.39 2.86,2.18 4.57,3.04 -1.41,1.43 3.61,5 -0.35,4.78 -2.13,-0.68 -0.03,3.77 1.34,3.53 2.41,1.42 5.57,2.61 2.52,5.25 0.4,3.43 5.65,4.33 8.7,5.38 3.86,0 6.89,3.07 10.87,2.88 4.34,1.45 0.38,-6.23 4.38,-4 -0.49,4.9 5.68,2.25 8.5,2.78 1.05,-1.6 -2.06,-2.93 1.09,-2.86 3.05,-2.18 5.91,-4.26 9.57,-3.92 1.62,-0.78 1.39,0.8 2.11,1.23 -1.51,2.39 4,0.44 1.53,3.35 0.15,2.57 -3.8,0 -5.02,2.87 -1.52,2.68 -1.82,7.66 -5.35,7.78 0.34,1.88 -1.46,7.6 -2.6,3.28 0.56,-3.52 -1.66,-2.19 -2.84,-1.16 -2.77,-2.69 5.71,-4.36 1.08,-5.77 -2.64,-0.13 -5.78,0.48 -5.97,-2.74 -1.64,-0.43 -5.01,-2.22 -3.37,1.42 3.43,0.75 -3.64,3.11 0.58,3.64 -0.54,2.11 2.77,6.55 0.32,7.27 0.14,-2.94 -1.22,2.41 -1.79,-0.81 0.35,-1.41 -1.28,1.63 -2.67,1.7 -0.84,2.4 -2.43,5.18 -5.24,4.8 -1.25,2.86 -5.37,5.36 -8.05,7.72 -1.36,2.67 -8.24,3 -6.05,7.72 0.67,2.63 -0.29,5.48 -1.25,8.74 1.46,2.18 -3.6,4.23 -1.64,5.29 -3.2,-0.57 -3.39,5.55 -6.34,1.92 -1.91,-2.81 -1.52,-5.2 -3.5,-8.28 -2.54,-3.3 -2.51,-7.76 -4.9,-11.15 -1.54,-3.02 -2.32,-6.83 -2.3,-10.07 -0.66,-0.95 -0.81,-5.32 -0.56,-7.14 1.96,-0.46 -2.38,-1.05 0.2,-1.88 -3.14,-0.91 -1.37,5.66 -5.59,4.12 -2.56,-0.4 -7.37,-5.37 -2.47,-4.86 3.91,-3.18 -3.31,1.14 -3.81,-2.38 -0.35,-1.97 0.32,-0.7 -1.1,-0.85 l 0.06,-0.34 z m 68.31,30.59 c -0.76,2.09 -0.39,5.08 0.27,1.28 0.49,-1.51 0.24,-4.58 -0.27,-1.28 z\",\n                        \"CN\" : \"m 676.19,124.66 c 0.98,-1.83 3.25,-2.89 5.46,-3.21 1.72,2.58 3.49,-2.51 6.01,-1.25 1.96,-1.24 5.07,-2.13 6.86,-3.29 -0.65,-2.73 3.04,-2.13 0.47,-5.26 0.7,-1.82 -0.76,-1.93 -1.33,-2.46 2.18,-1.71 6.37,0.32 7.36,-1.37 -1.71,-0.44 0.85,-4.93 2.17,-4.89 2.66,1.09 7.77,1.38 6.25,-2.85 1.12,-1.02 3.17,-0.74 3.53,-2.58 3.42,-0.89 2.49,1.94 5.53,2.87 2.83,-0.07 6.03,2.03 5.68,5 -0.4,1.63 -1.19,3.52 1.67,3.39 3.81,-0.25 7.11,1.27 10.59,2.43 0.94,2.78 3.39,5.13 6.71,4.15 3.26,0.94 6.58,-0.02 9.86,0.56 3.02,1.55 6.81,1.97 9.99,2.52 3.46,-1.14 7.28,-2.67 11.14,-2.14 3.36,0.17 5.74,-2.56 8.43,-3.8 -3.55,-2.2 0.96,-5.11 3.39,-2.82 2.7,-0.29 4.66,-2.42 7.58,-2.27 1.89,-2.66 5.14,-2.73 8.12,-3.34 3.52,1.8 3.22,-1.63 0.5,-2.54 -2.9,-2.4 -7.09,1.31 -9.71,-1.03 1.84,-1.66 2.23,-6.59 5.67,-4.32 1.73,-0.47 5.28,-0.91 4.66,-2.74 0.65,-2.25 5.72,-3.82 3.46,-5.87 -3.15,-0.11 2.81,-2.56 4.29,-2.25 3.47,-0.72 6.65,0.61 9.85,1.03 1.47,1.29 2.72,2.4 3.14,4.21 1.6,1.71 1.34,4.47 3.28,5.65 2.63,-0.12 6.8,1 7.49,2.86 -0.06,3.38 4.81,2.8 7.08,1.24 2.05,-0.65 5.63,-1.43 3.84,1.81 -2.18,1.1 -1.62,4.59 -3.99,5.76 -0.74,2.42 -3.94,-0.86 -5.37,1.36 -0.68,1.23 1.33,6.54 -1.79,6.4 0.65,1.89 -2.28,-3.04 -2.11,0.29 -1.2,1.07 -3.81,1.45 -4.57,1.93 0.9,3.73 -4.61,-1.94 -5.15,1.91 -2.77,1.4 -5.47,3.91 -8.38,3.98 -1.83,0.26 -4.94,3.72 -5.71,2.3 1.87,-0.72 2.25,-1.37 -0.02,-1.55 1.16,-1.01 4.13,-2.63 1.82,-4.16 -2.71,0.14 -4.38,2.63 -7.17,3.79 -0.26,2.82 -6.3,-0.06 -4.28,3.62 1.87,1.47 4.4,-0.22 3.61,3.08 2.93,1.27 3.81,-3.22 6.7,-0.84 1.85,0.07 4.74,0.71 2.12,1.94 -0.85,-0.61 -2.49,0.66 -4.04,0.94 1.1,0.5 -1.5,1.4 -1.84,1.14 0.85,1.18 -5.19,3.68 -0.97,4.61 3.04,0.63 2.02,5.26 4.61,6.08 0.38,0.89 2.57,2.29 -0.03,1.31 -1.71,-0.33 -3.98,-0.32 -4.77,-1.14 0.2,0.17 1.18,1.11 3.05,1.01 1.24,0.82 5.05,3.07 1.14,3.56 -0.82,1.12 -4.41,1 -1.66,1.07 0.15,1.25 2.24,-0.9 3.32,0.96 1.68,7e-4 -2.37,2.24 -0.01,0.92 1.46,1.66 -2.03,0.31 -0.33,1.92 0.25,0.71 -2.53,0.11 -0.44,0.9 0.21,2.07 -1.3,-0.07 -2.09,1.69 -0.34,-1.27 0.17,3.3 -1.32,1.9 0.31,1.21 -1.28,2.5 -1.15,1.82 -1.91,-0.55 1.16,1.12 -1.18,1.94 -2.52,-0.3 1.93,-0.49 0.12,1.08 0.75,1.16 -1.52,-0.46 -0.8,1.16 -1.3,-0.69 -1,1.85 -2.11,1.43 -1.44,0.56 -1.84,0.37 -1.2,1.22 -0.58,1.11 -3.91,1.83 -3.53,2.7 -0.54,1.17 -3.16,1.16 -3.37,1.31 -0.21,0.3 -1.88,0.26 -2.25,0.37 -0.4,-0.54 -0.32,1.21 -1.98,0.36 -1.09,0.06 -1.43,-1.98 -0.79,-1.66 -2.48,0.28 0.3,1.37 -0.8,2.65 -1.59,-2.37 0.45,1.1 -1.14,0.16 -0.53,2.04 -2.1,-0.49 -2.11,1.18 -1.28,-0.82 -3.27,1.61 -4.19,0.79 -0.95,0.09 -1.82,1.58 -1.18,1.78 1.08,2.17 -1.87,1.65 -1.57,0.11 -0.21,-1.58 0.77,-2.41 -0.73,-2.43 -0.66,1.54 -1.9,-0.84 -2.21,-0.27 -0.84,-1.36 -0.36,1.63 -2.6,0.24 -1.39,0.29 -4.02,-1.33 -2.89,-2.75 -0.33,-1.32 -3.39,-0.8 -4.13,-1.88 -1.6,1.63 -3.37,1.75 -4.75,2.01 -0.87,-0.55 -1.87,0.5 -2.97,-0.31 -0.93,1.27 -3.59,0.13 -1.88,2.76 1.13,2.12 -2.19,1.84 -1.82,-0.17 -3.05,2.72 -2.46,-1.51 -5.31,-0.98 0.41,-1.66 1.61,-2.8 -0.66,-3.07 -0.66,-2.14 -0.16,-3.51 -3.08,-2.08 -1.52,-0.11 -0.44,-4.15 1.31,-4.64 1.63,-0.67 1.84,-5.2 0.32,-5.63 -0.62,-0.82 -1.93,-3.56 -3.2,-1.93 -1.58,-0.67 -3.46,0.33 -2.03,-1.74 -0.71,-0.71 -1.24,0.1 -0.84,-1.18 -1.66,-0.28 -3.02,1.33 -4.67,0.18 -3,0.65 -5.1,5 -7.99,3.9 -2.19,-0.27 -4.92,-2.17 -6.72,0.26 -1.39,2.29 -0.88,0.42 -1.34,-0.74 -2.24,1.12 -6.05,-0.24 -7.37,0.15 -1.72,-1 -3.07,-1.32 -5.2,-2.73 -2.13,-0.8 -4.8,-3.35 -7.47,-3.95 -1.43,1.75 -3.37,-1.06 -4.89,-1.65 -1.25,-0.09 -1.77,-1.57 -2.84,-1.23 0.24,-1.36 -2.08,-4.64 0.61,-2.74 3.94,-1.31 -2.27,-3.7 -0.23,-5.46 -2.53,-0.9 -2.49,-4.23 -5.76,-3.62 -1.19,-0.91 -2.65,-0.68 -2.66,-2.99 -1.4,-0.97 -5.85,-1.1 -2.11,-2.04 -0.68,-1.91 -0.62,-4.36 -3.56,-3.51 0.02,-1.05 -0.58,-1.09 -0.48,-2.31 z m 97.06,56.63 c -1.11,3.9 4.72,3.69 5.27,0.66 1.63,-1.13 0.73,-3.74 -0.44,-2.35 -2.21,-0.55 -3.09,0.13 -4.83,1.69 z m 14.89,-8.96 c 1.82,-0.56 0.14,1.44 0,0 z\",\n                        \"CA\" : \"m 244.83,107.58 c 2.56,-1.73 -4.42,-1.05 -3.23,-0.93 1.16,0.78 3.66,0.35 3.23,0.93 z M 104.71,86.08 c 3.08,-0.45 -0.47,0.88 2.33,2.09 2.62,1.96 -2.81,-1.34 -2.42,-1.74 -1.02,0.29 -0.33,-0.53 0.09,-0.35 z m -1.61,-1.25 c -1.31,-3.08 3.61,-0.28 1.49,-0.2 -0.93,0.47 3.48,-2.79 1.31,-0.11 0.03,2.3 -3.46,1.11 -1.72,0.94 0.13,-0.07 -2.15,-0.68 -1.07,-0.63 z m 7.14,-1.3 c -1.97,0.46 -0.13,0.25 -0.04,0.57 0.33,0.02 0.37,-0.51 0.04,-0.57 z m 0.86,1.37 c 2.1,1.83 1.37,-0.53 -0.62,-0.93 l 0.14,0.3 z M 309.76,101.63 c -3.74,1.04 -2.32,-2.06 0.32,-2.47 -0.97,0.04 -3.66,0.15 -1.35,-0.7 -0.84,1.41 2.48,-1.8 2.19,-0.65 0.19,-0.53 -0.89,-1.18 0.45,-1.6 0.95,-2.81 2.42,-5.02 5.54,-5.58 2.59,-0.18 -1.89,0.8 0.31,1.17 -0.88,0.61 -4.78,5.96 -1.61,3.18 0.66,-0.31 3.99,0.11 1,0.89 -1.13,0.11 1.44,-0.04 -0.42,0.73 1.61,0.2 3.54,-0.84 2.04,1.08 1.8,-1.07 2.61,-1.46 5.38,-0.6 -0.87,1.02 -2.5,1.19 -1.2,1.4 0.05,0.34 0.89,0.09 -0.7,1.12 0.85,-0.39 5.1,-1.26 1.4,0.5 -1.56,0.18 0.51,0.26 -0.6,1.31 0.53,1.55 3.59,-3.11 1.88,-0.13 -0.79,1.96 2.57,-1.37 1.04,1.65 -1.29,3.05 -2.65,0.4 -2.49,0.31 -2.83,2.91 0.95,-4.13 -1.92,-1.48 -0.31,0.75 -1.34,0.25 -2.54,1.84 -5.04,0.91 3.13,-2.34 0.7,-1.86 0.01,-0.95 -1.74,0.99 -2.54,0.22 -0.35,0.19 1.48,-1.19 -0.49,-0.8 -1.06,1.54 -4.96,-0.09 -6.38,0.48 z m -13.97,-6.19 c 1.75,0.03 7.41,2.68 2.62,2 -1.7,-0.27 -9.04,-3.24 -2.62,-2 z m 4.16,7.1 c 0.66,-1.17 2.5,-1.07 0.33,-0.31 1.28,-1.24 -0.82,1.46 -0.33,0.31 z m 1.76,4.82 c -1.8,-2.58 4.69,-5.31 2.21,-1.89 0.47,0.45 -2.17,0.92 -0.8,0.9 -2.04,1.42 2.53,0.05 0.14,0.01 2.15,-0.94 -0.29,-0.55 1.6,-0.81 2.95,0.15 -1.22,2.57 -3.16,1.8 z m -6.54,-1.87 c -0.58,-0.96 -3.25,-1.11 -0.83,-2.23 -0.95,2.98 4.97,1.1 5.26,1.88 -1.31,0.29 -1.93,2.05 -2.6,0.23 -0.48,0.53 -1.25,0.39 -1.82,0.12 z M 146.14,38.73 c 2.04,2.16 5.73,2.16 9.08,2.11 1.9,0.06 2.05,3.48 5,1.99 3.34,-0.06 4.47,-0.1 8.62,-0.48 2.71,-0.39 5.75,-1.68 7.96,-1.82 0.12,1.1 4.45,0.21 3.52,1.24 2.83,-0.26 7.06,1.05 9.03,-0.86 -0.38,-0.8 -2.91,-0.99 -3.76,-0.03 1.4,-0.93 -2.45,-1.6 0.72,-0.97 2.01,-1.22 4.15,-0.13 5.74,-0.72 -1.83,-1.48 -4.91,-1.85 -7.57,-2.29 -1.3,-0.45 -3.98,-1.07 -2.25,-2.41 -2.43,-2.5 -4.5,-5.8 -8.66,-4.99 -3.42,-1.76 -2.11,2.72 0.38,3.84 -3.4,2.2 -3.08,-2.67 -6.23,-2.63 -1.42,-0.87 -5.32,-0.51 -1.4,0.18 0.95,0.32 -1.7,-0.12 0.11,0.65 -0.55,-0.65 -6.22,1.4 -4.5,0.11 2.51,-1.3 -6.37,-2.15 -5.77,-0.39 -0.62,-0 -4.26,0.38 -0.94,-0.68 -0.75,-3 -6.07,-0.2 -8.52,-0.27 -1.42,0.62 -5.7,1.08 -3.04,2.03 -1.61,0.03 -4.53,1.63 -1.3,1.71 3.11,-0.04 1.83,-0.01 1.51,0.64 2.2,0.34 7.16,-0.7 7.75,-0.15 -0.67,0.01 -3.39,0.09 -1.34,0.17 -1.74,0.94 -6.48,-0.16 -6.63,1.54 3.31,1.26 7.06,0.66 10.55,0.55 2.33,0.08 6.76,0.17 7.64,1.17 -4.22,0.32 -8.48,-0.56 -12.71,0.23 -1,0.12 -2.1,-0 -3.01,0.54 z m -51.48,2.87 c 1.51,-0.44 0.54,0.2 0,-0.73 2.66,0.85 -1.13,-0.61 1.69,-0.17 0.89,-0.89 6.58,-1.37 2.64,0.17 -1.82,0.74 1.69,2.23 -0.86,0.9 -1.04,-0.24 -2.37,0.11 -3.48,-0.17 z m -11.14,24.71 c -4.74,0.6 -2.53,-5.35 -2.97,-8.32 0.51,-5.66 -0.5,-11.32 0.04,-16.99 0.37,-3.03 6.07,-0.4 8.15,0.13 1.99,0.48 7.51,1.29 7.51,0.89 -1.1,-1.47 5.34,1.78 2.19,-0.64 2.81,-0.87 5.93,-2.03 6.76,-1.83 2.59,-0.42 4.86,-1.4 6.95,-1.35 1.76,1.12 -5.93,1.39 -3.63,2.45 0.33,-0.17 4.33,-2 5.58,-1.66 -1.4,1.69 4.21,-1.53 3.24,-1.01 -3.01,-1.53 3.09,-0.15 3.51,1.65 0.73,1.14 5.49,0.83 2.6,0.69 1.65,-0.06 -0.15,-1.24 2.02,-0.79 -3.09,-0.18 2.76,-1.13 -0.53,-0.74 -1.08,0.04 2.55,-0.88 1.76,0.74 2.39,-0.25 -1.7,1.07 0.84,1.05 3.31,-1.3 7.01,-1.88 10.62,-0.29 3.1,0.19 9.75,2.4 10.88,1.31 2.3,-0.71 9.6,1.99 3.82,2.28 -3.69,1.21 3.34,1.18 5,1.34 3.05,0.26 6.43,-0.99 8.67,-0.54 2.92,1.04 3.42,0.68 5.84,2.08 -1.21,0.61 -2.78,-0.51 -0.62,0.69 0.02,0.11 4.35,2.54 1.08,0.32 -0.2,-1.47 2.67,0.58 0.4,-1.56 -1.79,-2.45 -0.5,-1.93 2.44,-2.39 1.25,-0.6 4.56,-1.41 1.27,-1.14 -1.22,1.15 -5.07,0.43 -4.44,1.07 -2.82,0.55 -2.81,-1.33 0.45,-1.36 2.84,-1.2 5.87,-0.6 7.18,1.02 2.5,0.5 6.03,1.19 9.28,1.53 3.16,-0.39 6.32,0.22 9.42,-0.09 -3.13,-1.65 6.02,1.92 2.48,-0.46 -1.47,0.42 -3.22,-0.33 -2.65,-0.73 -1.46,-0.58 1.58,-0.36 2.14,-0.86 1.7,0.7 3.29,0.69 3.14,1.29 3.15,-2.04 -0.1,1.34 0.82,1.78 0.03,0.71 2.07,0.16 1.6,0.63 2.8,1.45 -4.59,-0.3 -0.84,1.17 1.91,1.41 -1.85,-1.34 1.34,-0.34 2.24,-1.01 -2.52,-3.19 1.31,-3.24 2.32,-0.41 5.92,-1.92 2.95,-2.58 1.52,0.95 -3.62,0.77 -0.77,-0.19 0.69,-0.24 -0.97,-1.12 1.23,-1 1.07,-0.19 -1.05,1.24 1.2,0.11 -1.98,-0.81 -6.79,-0.11 -8.7,-2.42 0.49,-1.44 2.05,-0.47 1.56,-1.36 -3.41,0.98 -1.2,-3.45 0.98,-1.7 0.81,-1.07 -2.56,-0.64 0.04,-1.02 1.52,-0.69 3.3,-0.36 0.61,-0.67 2.31,-0.94 1.96,1.17 4.35,0.52 1.51,0.23 2.43,2.42 2.9,2.66 1.31,1.26 5.29,1.89 1.1,1.83 -0.59,0.47 2.37,0.22 -0.18,0.8 -2.2,0.78 0.07,0.46 1.98,0.93 0.32,-0.62 2.69,-0.19 0.6,0.02 2.11,-0.14 4.46,0.1 1.28,0.73 -1.45,-0.18 2.86,0.97 1.26,2.35 2.09,1.79 1.56,-2.7 4.37,-2.24 1.94,-0.05 4.58,3.11 1.77,2.69 0.16,2.3 2.94,3.74 4.7,2.5 1.67,-1.64 2.36,-4.21 4.92,-4.09 -2.14,-0.41 2.15,-0.47 -0.59,-0.85 -1.27,-0.32 -2,-2.61 1.21,-1.98 1.52,0.28 6.69,0.22 5.83,0.88 -3.77,0.13 1.61,-0.21 0.99,0.83 2.21,-0.61 3.43,0.98 0.4,0.98 3.59,-0.39 1.24,1.58 -0.92,1.12 -1.08,0.83 2.57,1.41 3,3.55 -2.46,1.68 -6.78,3.08 -7.84,1.39 -1.45,-0.72 -0.92,-1.23 -3.01,-0.4 2.13,-0.37 2.4,0.17 3.84,1.87 -1.74,-0.44 -1.92,-0.44 -2.14,-0.01 -1.88,-0.53 -4.67,-1.55 -6.03,-0.58 5.01,0.23 -1.93,4.21 -4.04,2.76 -2.46,-0.63 -0.25,-0.53 -0.98,-0.62 -1.3,-0.23 -4.45,-1.31 -3.5,-0.51 -0.92,-0.36 -5.89,-0.27 -2.81,-0.25 3.62,0.89 7.31,1.87 10.82,2.38 -1.03,1.96 -5.91,3.47 -5.86,3.16 -2.55,-0.41 -1.86,-1.03 -3.11,0.91 -2.26,0.36 -8.59,-1.05 -9.49,-1.16 -1.29,0.69 5.54,0.37 3.02,1.39 2.48,-1.49 7.83,1.65 2.78,2.06 -2,-0.32 -2.91,0.06 -1.22,0.73 -2.3,-0.36 -2.13,1.41 -2.74,0.73 -0.46,1.4 -2,0.53 -1.39,1.69 -2.08,0.11 -1.69,3.18 -3.61,3.39 1.24,2.05 -1.5,4.67 0.69,4.72 1.72,0.47 -0.41,2.56 0.92,0.17 3.52,-1.7 5.11,4.92 4.09,5.11 2.05,-0.87 -0.14,0.49 2.28,-0.39 3.91,-0.93 8.29,0.43 11.65,2.49 1.68,0.86 7.67,1.82 6.77,3.05 3.47,-1.04 5.34,-0.15 8.43,0.06 -0.75,2.1 0.08,4.64 0.26,6.34 0.95,0.51 2.19,1.47 0.57,1.79 1.75,-0.47 5.9,2.21 2.48,3.28 1.45,-1.58 4.45,0.08 4.46,0.44 -2.57,-2.9 1.98,-1.26 1.46,-1.41 -0.03,-0.6 0.01,-1.95 0.9,-2.64 -0.74,-1.25 -1.02,-2.3 -1.44,-3.61 0.46,-0.89 -0.11,-1.27 -1.11,-2.3 -0.61,-1.94 5.15,-1.38 6.52,-3.51 4.22,-2.81 -0.03,-7.89 -3.79,-8.31 0.71,-1.66 2.34,-2.57 2.83,-3.18 2.16,-0.49 -1.96,-1.63 0.02,-2.24 -1.18,-0.38 -0.34,-0.96 -1.74,-0.73 1.34,-1.63 1.99,-2.18 -0.12,-3.43 1.39,-3.46 6.51,0.15 7.76,-0.76 1.59,0.83 7.15,-1.66 7.06,1.25 2.62,-0.24 1.07,0.89 3.46,0.75 -2.6,1.14 3.21,1.14 4.45,2.06 2.49,-1.25 0.42,0.81 0.74,2.26 -1.55,0.38 -5.34,-0.21 -1.48,0.2 2.84,-0.45 0.35,2.25 2.73,2.1 -0.79,0.38 -1.21,1 -1.63,0.92 -3.1,1.8 5.98,-1.97 3.87,2.16 -2.05,0.74 -3.51,1.21 -0.56,0.39 0.74,-0.84 2.92,-2.33 1.42,-0.37 1.54,-2.1 0.73,1.37 1.52,-0.15 2.02,-1.1 3.96,-2.16 4.54,-0.78 -0.45,-1.4 -0.11,-1.39 1.63,-1.63 -1.87,-0.2 -0.13,-1.63 0.85,-0.95 -3,-1.08 0.71,-0.99 -0.29,-1.45 0.91,-2.07 2.88,-0.97 0.98,-0.29 1.57,-0.58 2.12,1.13 2.7,1.58 -0.6,0.25 2.61,0.74 -0.48,1.01 1.67,-0.01 2.25,0.09 2.22,0.58 2.6,0.65 -3.13,1.67 0.2,1.16 1.49,-0.33 1.62,0.85 -0.52,1.25 1.9,-0.82 2.82,-0.05 2.23,0.08 0.83,-0.29 2.46,1.54 0.07,1.35 2.52,0.36 3.26,1.57 1.98,2.24 -0.58,0.44 -2.7,-0.45 -0.87,-0.35 -3.2,-0.39 1.42,0.76 -0.46,0.58 3.04,0.12 -1.17,0.41 1.49,0.85 -0.49,0.02 -1.23,0.41 0.92,0.26 -0.3,1.01 2.15,1.52 2.48,1.25 0.63,1.08 0.41,1.41 -0.1,1.83 -1.42,0.88 2.43,-1.21 0.72,0.34 2.06,-1.37 0.58,-0.05 2.32,-0.32 -1.99,1.75 -0.59,0.5 0.78,-0.21 -0.83,0.96 3.44,0.91 4.93,1.94 -0.91,0.27 -0.18,0.2 -2.27,0.57 -1.84,0.6 -5.63,1.13 -1.65,0.57 2.38,-0.14 -3.16,0.98 -4.22,1.44 -2.7,-0.93 -0.89,-0.3 0.64,0.4 -2.33,1.52 3.75,-1.61 5.49,-1.72 1.43,0.01 -2.41,-0.46 0.42,-0.41 1.33,-0.34 3.51,1.41 1.11,1.71 1.48,0.47 2.57,-1.08 3.17,0.01 0.44,-0.43 2.91,1.71 0.64,1.58 1.75,0.56 -0.62,0.7 1,1.17 -2.22,0.27 -1.65,-0.28 0.39,0.74 -2.99,-0.77 1.74,0.68 -1.38,1.45 -2.37,2.12 -6.86,0.27 -7.89,2.97 -1.65,1.5 -6.45,2.06 -7.47,1.84 -3.18,-0.9 -6.5,0.01 -9.77,-0.48 -3.36,-0.48 -4.38,1.16 -6.78,2.81 -2.39,0.17 -3.24,1.57 -5.77,3.28 -1.99,-1.07 -5.18,-0.85 -1.58,-0.48 5.12,0.4 -6.41,5.83 -0.69,3.68 3.03,-2.92 6.6,-5.2 10.86,-5.86 1.82,-1.26 7.93,0.03 6.2,0.88 1.62,1.52 -3.47,2.53 -4.77,1.78 -4.06,0.15 1.22,0.69 2,1.16 3.73,-1.32 0.07,1.86 0.75,1.84 1.83,0.1 0.7,3.59 3.79,2.65 -1.76,0.9 3.54,1.02 3.53,1.41 1.87,-1.26 6.01,1.52 2.29,1.42 -2.69,0.95 -5.02,1.96 -6.51,1.47 -0.37,0.6 -2.85,2.58 -3.65,2.69 -1.04,1.1 -3.75,-1.22 -1.3,-2.57 -2.36,0.6 1.63,-0.33 0.76,-0.7 2.73,-1.8 3.52,-0.2 5.5,-1.39 1.65,-0.88 -5.93,0.77 -2.59,-1.05 1.32,-0.18 -1.05,-1.65 -0.69,0.14 -1.72,1.42 -4,0.4 -3.9,1.17 -2.12,0.93 -3.27,-0.09 -4.35,-1.4 0.03,-2.33 -0.19,-5.65 -3.46,-4.3 -2.45,-1.44 -3.52,4.25 -5.14,5.43 -2.9,1.15 -7.13,0.8 -10.76,0.87 -2.86,0.95 -5.35,2.75 -7.94,2.49 5.27,0.89 -3.8,-0.49 -5.56,1.57 -1.62,1.44 2.98,0.61 1.28,1.92 -1.93,-0.43 -4.04,0.88 -3.2,0.9 -3.13,-1.58 -5.29,2.34 -7.94,1.28 -0.31,-1.39 2.97,-0.16 1.48,-1.37 1.6,-1.89 3.6,-4.31 3.26,-6.92 -0.97,-1.69 1.66,1.48 1.9,1.01 1.71,1.67 2.32,-1.01 2.7,-0.39 -1.01,-1.37 -1.51,-2.43 -3.69,-3.12 -1.7,-0.13 -2.37,-0.91 -5.5,-0.7 -2.21,-0.29 -4.55,-0.92 -4.02,-2.13 -1.25,-0.79 -0.48,-3.83 -3.11,-2.77 -1.63,-1.3 -2.66,-2.91 -5.18,-2.61 -1.96,-1.73 -1.99,1.66 -2.83,0.8 1.4,-2.08 -2.07,1.92 -0.71,0.05 -2.26,2.27 -5.62,0.96 -8.19,1.03 -2.23,-0.69 -4.28,-1.2 -6.83,-1.39 -1.67,0.55 -2.07,-3.73 -2.84,-0.91 -25.35,0.01 -50.71,-0.04 -76.06,0.02 -2.68,-0.23 0.16,-0.72 -1.56,-1.48 0.63,-0.24 -3,0.57 -1.83,-0.34 1.39,0.7 -0.1,-0.79 -0.32,-1.6 1.24,1.36 -2.46,1.77 -2,-0.42 2.07,-0.8 -2.61,1.02 -0.39,-1.08 0.32,-1.28 -1.91,2.58 -1.73,0.17 -1.48,1.22 -3.29,-0.16 -0.71,-0.12 1.57,-1.91 -1.47,1.23 -1.36,-0.4 -1.97,-0.13 0.79,0.11 -0.92,-0.51 -0.99,1.23 -4.7,-0.38 -1.06,-0.09 2.02,-0.15 -5.01,0.1 -1.14,-0.68 0.94,-0.02 -2.68,0.12 -0.33,-0.91 3.19,-0.33 1.8,0.01 -0.1,-0.34 -0.48,1.5 -1.85,-0.46 -0.45,-0.97 1.47,-1.47 2.44,0.87 2.2,-0.78 -2.45,0.23 0.84,-2.3 -1.41,-0.25 -3.01,1.39 -0.76,-1.05 -2.99,0.49 1.7,-2.23 -1.07,-1.48 -1.47,-3.57 1.57,0.74 4.05,0.59 0.74,0.17 -0.3,-1.19 0.68,-1.5 -0.94,-0.78 -1.22,2.51 -3.85,-1.63 -2.38,-0.97 2.73,-0.79 -2.3,0.68 -1.47,-1.41 2.99,1.86 -1.4,-0.85 1.53,0.03 -2.29,-0.51 2.4,-1.37 -0.15,-1.06 -0.32,-1.5 1.91,-0.87 0.29,-1.81 -0.41,3.34 -0.83,0.2 -0.77,-1.31 -2.81,-0.83 -5.59,-1.48 -6.98,-4.04 -1.8,-2.74 -5.22,-3.62 -7.04,-5.94 -2.86,-1.73 -4.34,2.92 -6.63,1.49 -2.57,-1.25 -4.45,-4.25 -6.79,-3.03 z M 221.95,34.56 c 2.71,1 5.66,0.09 8.24,1.27 -2.22,0.9 -9.4,-1.53 -5.2,1.22 1.53,0.7 2.86,0.59 2.55,0.77 0.85,0.02 3.21,0.3 2.68,-0.32 1.12,0.64 1.95,-0.71 1.86,0.68 1.49,0.87 4.22,0.59 2.18,0.28 3.62,0.1 7.47,0.79 10.93,0.47 -1.54,-0.51 -5.12,-1.38 -1.54,-0.59 1.34,0.63 6.02,1.49 2.2,0.35 0.08,-1.25 7.06,1.95 7.56,-0.38 -1.85,-1.2 -2.64,-0.17 -0.89,-1.44 -0.2,1.08 4.01,0.75 4.52,2.45 2.36,-0.76 -0.69,-0.06 1.66,-0.06 -1.72,1.35 2.73,-0.25 1,0.89 2.05,0.14 3.5,1.75 0.3,1.21 -2.45,1.88 2.27,0.12 3.42,0.41 1.54,-0.85 -0.26,0.19 1.01,0.3 0.43,0.41 2.55,1.08 2.17,0.23 0.79,-0.08 0.08,2.04 1.89,0.94 -0.33,0.35 5.21,3.53 0.97,4.11 1.44,1.85 5.43,-0.13 5.88,-0.08 2.46,1.07 4.84,1.21 3.7,1.53 1.81,0.54 -4.94,0.46 -4.75,1.06 0.01,-2.73 -6.31,-2.19 -8.61,-0.71 -1.09,1.08 4.69,2.44 0.63,2.21 -1.59,0.93 -6.76,0.13 -3.2,1.49 -1.08,1.55 0.2,-1.12 -2.6,-0.91 -2.86,-1.04 -3.86,0.32 -5.85,1.69 1.76,1.72 5.55,1.53 6.77,0.64 0.57,-0.23 4.81,0.61 3.08,-0.99 0.05,0.06 1.43,0.67 1.71,0.62 0.12,1.1 1.18,-0.27 2.6,-0.01 -0.96,1.59 3.24,2.18 2.96,2.51 0.09,-0.66 4.07,0.75 0.7,0.77 -2.35,0.11 4.13,1.16 1.91,1.18 2.86,0.97 4.35,0.24 6.19,1.79 2.74,0.47 5.5,1.08 8.25,1.35 -0.11,-1.4 -3.05,-2.23 -4.52,-3.16 0.28,0.51 -6.01,-2.56 -1.86,-1.87 0.75,0.85 2.44,1.17 0.93,-0.21 2.43,1.5 3.49,1.89 4.08,1.85 0.64,0.73 1.16,-0.32 1.42,0.39 0.89,-0.66 3.78,2.4 1.81,-0.11 3.01,0.9 -0.41,-1 0.83,-1.64 -1.68,-1.57 2.26,2.56 1.18,-0.34 -2.02,-0.73 1.47,0.53 -0.06,-0.55 -0.74,0.15 -1.62,-0.58 -2.38,-1.1 2.33,-0.84 -1.46,-0.09 -0.68,-1.53 -1.39,0.67 -1.8,-0.3 -3.29,-0.56 1.09,0.07 -2.18,-0.92 -0.55,-1 -0.61,-0.17 -1.18,-1.48 -2.49,-0.34 0.66,-1.39 -1.83,-1.01 -0.41,-1.69 -3.28,-0.22 -0.55,-0.65 0.36,0.35 1.4,0.92 3.34,-0.39 0.73,-0.91 -0.34,-0.79 1.69,0.46 1.59,-0.39 -2.57,-0.4 1.89,-1.03 1.78,0.63 0.62,-3.6e-4 2.8,0.28 2.55,-0.25 -3.14,2.77 5.99,-1.54 2.2,0.69 0.2,-0.06 -3.5,1.07 -0.92,1.05 1.72,-0.54 -1.63,0.94 0.94,0.09 -2.62,1.42 2.76,0.13 -0.19,1.01 1.53,0.83 1.55,-0.56 2.22,0.61 1.17,0.58 2.78,-0.06 1.4,-1.24 1.62,-0.12 -1.32,-0.27 0.4,-0.69 -0.89,-0.48 1.85,0.54 1.79,0.4 0.67,-0.07 -0.68,-0.71 1.16,-0.73 -2.52,-0.99 -0.79,-0.18 0.82,-0.38 -1.27,-0.83 -3.37,-0.63 -0.79,-0.79 -2.45,-0.74 4.59,0.41 1.13,-0.3 2.25,-0.38 -2.45,-1.11 0.97,-0.46 1.55,-0.43 -1.67,-1.37 -1.27,-0.96 -0.95,-0.51 -0.81,0.6 -1.97,0.07 -0.18,1.16 -0.94,-1.11 -1.87,0.21 -2.87,0.77 3.39,-1.95 -0.02,-1.18 -1.5,1.27 0.78,-0.56 -1.58,-0.05 -3.98,1.04 0.11,9e-5 -0.62,-0.1 -1.35,0.09 -1.97,0.32 -0.19,0.02 -3.48,-0.35 2.89,0.16 -0.07,-0.52 1.73,-0.83 -1.75,-0.41 -0.64,-1.02 -1.8,0.47 -1.63,0.18 -1.1,-0.59 -1.8,0.51 -0.91,1.28 -2.16,0.13 -1.76,1.97 0.61,-1.73 -1.97,0.31 -0.71,0.48 1.07,-1.45 -0.6,-0.45 -0.14,-0.72 -2.05,-0.68 -2.02,-0.37 1.82,-1.02 -3.16,-0.02 0.29,-0.66 3.62,-0.25 -1.59,0.13 -1.2,-0.42 -2.23,0.35 -3.54,-0.45 -1.47,-0.47 -2.95,-0.13 -3.87,-0.62 -0.53,-0.23 3.06,0.22 -1.26,-0.43 1.24,-0.2 -3.57,-0.65 3.2,-0.18 -0.81,-0.82 -1.4,0.06 -3.08,0.56 -0.81,-0.05 -1.69,-0.24 3.47,0.06 -0.32,-0.43 -2.79,-0.31 3.01,0.39 4.25,0.43 3.6,-0.32 -3.05,-1.18 -4.23,-1.1 -1.64,0.31 -5.3,0.06 -1.61,0.07 1.3,-0.57 6.18,0.08 5.48,-1.19 -2.02,-2.05 -6.01,1.39 -7.26,0.68 1.17,-0.37 5.27,-1.09 1.79,-1.36 -2.38,0.73 -3,1.41 -1.98,0.48 -0.04,-0.45 7.62,-1.24 2.53,-1.95 -1.79,-0.5 -5.98,1.51 -2.17,-0.25 -1.99,-1.75 -5.75,4.13 -3.67,0.87 -1.39,0.36 -3,0.73 -0.92,-0.28 2.35,0.43 3.3,-2.55 0.37,-0.87 -2.24,0.27 -3.61,1.29 -3.14,0.22 -1.43,-0.47 6.13,-0.74 2.1,-2.04 -2.47,-1.32 -4.97,2.51 -4.37,0.64 -1.21,0.07 -1.92,1.54 -0.58,-0.15 -0.29,-1.59 -2.71,1.19 -1.59,-0.17 -2.22,0.38 3.08,-1.33 -0.06,-0.85 -0.1,0.74 -1.76,-0.49 -2.05,1.28 -0.09,0.53 -0.27,-0.92 -0.62,-0.7 2.68,-0.88 -3.2,0.48 0.18,-0.36 -3.59,0.15 5.52,-0.88 0.49,-1.42 -1.76,0.39 -4.96,2.19 -1.67,0.37 -0.55,-0.71 -4.52,0.91 -1.06,-0.29 3.82,0.34 0.2,-1.94 -1.12,-1.17 -1.6,-1.42 -9.64,-0.02 -4.52,0.85 4.93,0.93 -4.8,-0.98 -1.85,0.48 1.22,0.45 2.74,1.09 0.5,0.32 1.89,1.25 -2.8,-1.31 -1.85,0.02 0.15,-0.46 -1.27,-1.66 -2.1,-0.86 -0.92,-1.7 -0.87,0.99 -0.75,0.25 -1.18,-0.77 -2.75,1.87 -2.85,0.28 2.17,0.26 -0.56,-0.31 1.3,-1.04 -2.36,-0 -2.3,0.98 -0.14,-0.53 1.4,-0.93 -1.83,-1.85 -2.94,-2.97 -2.09,-0.41 -6.81,0.29 -6.06,0.8 -1.51,-0.32 -5.69,0.56 -1.78,0.82 5.62,0.68 -6.33,-0.58 -1.39,0.53 1.79,0.35 3.42,0.63 0.69,0.19 -4.06,-1.18 -2.46,2.08 -0.25,1.35 1.59,-0.17 -1.23,0.49 1.24,0.8 1.01,0.88 -3.06,-1.56 -3.72,0.14 -2.2,-0.05 1.07,0.69 1,1 2.38,-1.22 2.32,3.18 0.62,1.73 1.64,-1.16 -7.5,1.08 -2.57,-0.17 1.14,-0.24 5.04,-0.29 1.75,-1.12 -2.5,-0.11 -2.64,-1.91 -3.1,-2.94 -2.31,-1.94 7.89,-3.35 2.28,-3.48 -3.25,0.13 -8.61,-0.33 -10.1,2.89 -2.02,0.44 -1.5,2.27 -1.83,3.77 z m 17.02,15.33 c -3.46,-1.07 1.37,1.92 1.69,0.82 -1.41,0.06 -0.8,-0.36 -1.69,-0.82 z m -0.03,9.98 c 1.39,2.91 8.62,-2.63 3.09,-1.16 -1.48,-0.19 -2.07,0.18 -3.09,1.16 z m -30.66,-27.28 c -1.81,0.47 2.85,0.93 2.9,-0.19 3.01,-1.16 -3.6,-1.76 0.63,-1.67 3.1,0.96 5.95,-0.21 6.97,-1.94 1.64,-0.5 3.5,-1.37 0.63,-1.39 -3.64,0.32 -7.1,-0.84 -10.81,-0.27 -3.63,-0.14 2.04,1.87 -1.22,1 -2.17,-0.37 -1.37,3.3 0.12,3.74 -1.18,1.25 2.23,0.47 0.8,0.72 z m 25.75,23.64 c 0.29,3.94 4.97,0.02 6.58,-1 2.13,0.26 4.2,2.58 7.81,1.32 1.24,-0.34 -0.29,-1 -1.25,-1.17 -2.11,0.15 -2.67,0.67 -2.12,-0.99 -2.59,-0.83 -6.29,-3.41 -8.61,-2.21 -0.52,-1.61 -3.19,-3.22 -3.68,0.18 -0.48,2.35 0.11,3.46 -2.81,3.95 0.12,1.08 3.17,-0.11 4.08,-0.09 z m -45.17,-24.25 c 3.8,-0.46 6.48,3.63 10.14,2.74 0.93,-0.26 -1.44,-2.07 0.17,-0.81 2.26,0.66 5.32,-0.78 4.35,-1.07 0.38,-0.85 -1.56,-0.61 0.47,-1 -0.04,-1.67 -2.77,-0.05 -2.57,-1.6 -1.62,-0.13 -4.72,0.32 -1.32,-0.67 1.67,-0.31 2.15,-0.61 0.62,-0.84 3.92,-0.12 -0.43,-1.57 -1.59,-0.84 -1.45,0.8 -5.86,-0.74 -5.09,-0.04 1.1,-0.05 -5.32,-0.06 -1.53,0.68 -0.99,0.09 -4.41,0.02 -1.21,0.74 1.76,0.03 4.83,0.28 1.28,0.42 1.9,1.07 0.27,0.08 0.1,1.26 -1.76,0.95 -5.62,-2.67 -5.98,0.13 0.14,0.4 3.11,0.53 2.16,0.9 z m -14.12,-3.1 c 2.24,0.22 5.97,3.17 6.62,-0.29 -1.89,-0.62 -5.27,-1.3 -6.62,0.29 z m 29.22,14.16 c 1.91,-0.7 4.92,-0.87 1.8,-1.6 -1.15,-0.65 -5.13,-3.31 -6.77,-1.62 2.04,0.59 -2.2,-0.14 -0.12,0.74 -1.81,-0.18 -4.73,1.57 -1.3,1.12 1.42,0.55 4.22,1.16 6.4,1.36 z m 45.69,-12.48 c 3.56,0.26 7.37,0.17 10.86,-0.09 -2.46,-1.8 -5.96,-2.44 -9.17,-2.05 -1.83,-1 -6.3,0.4 -2.53,1.1 0.44,0.19 0.59,0.68 0.84,1.04 z m 17.77,13.71 c -1.55,-0.69 -4.85,0.08 -1.36,0.7 0.54,0.38 3.29,-0.48 1.36,-0.7 z m -9.77,1.64 c 2.22,2.37 8.93,-1.35 4.35,-2.54 -1.39,-0.2 -5.97,0.43 -4.35,2.54 z m -3.45,-5.48 c -1.79,0.27 -3.67,2.44 -0.69,1.01 0.21,0.13 2.11,-1.15 0.69,-1.01 z m -4.31,-0.3 c 5.15,-1.14 -4.52,-0.79 -1.08,-0.33 l 0.5,0.12 z m 2.74,-18.71 c -2.32,-0.15 -2.08,1.4 0.05,0.73 -1.8,-0.43 -0.14,-0.18 -0.05,-0.73 z m -27.39,-1.39 c 0.43,1.41 0.18,-1.87 0.97,0.6 2.23,-0.02 2.72,-0.23 4.93,-0.19 0.99,-0.29 3.8,1.1 6.18,0.38 -2.31,-0.54 -1.89,-0.54 -0.08,-0.38 0.27,-1.28 4.2,1.23 2.77,-0.63 0.74,1.1 4.92,1.1 2.36,-0.19 1.3,0.8 1.93,-0.3 1.69,0.7 1.92,-0.5 3.39,0.45 3.05,0.98 2.86,-0.68 6.45,-0.28 8.4,-1.97 -1.31,-0.94 -5.27,0.78 -3.52,-0.91 -1.71,-0.65 -3.41,0.59 -3.84,-0.18 -1.52,-0.09 -7.18,-0.11 -2.83,-0.21 0.74,0.04 -2.86,-1.55 -0.18,-0.68 3.42,1.1 7.07,0.92 10.03,0.03 -0.04,-0.92 -2.59,-1.33 0.28,-1.16 1.63,0.32 8.82,-0.43 3.65,-0.56 -2.89,-0.26 7.18,-0 2.2,-0.85 -1.84,-0.04 -3.34,-0.32 -0.62,-0.21 1.92,0.69 5.12,-1.1 1.49,-1.04 -3,-0 -1.49,0.18 -1.61,-0.26 -1.45,-0.52 -7.94,1.17 -4.66,-0.02 -2.21,-0.28 -3.99,-0.11 -0.81,-0.12 1.76,0.12 7.78,-0.03 3.06,-0.3 -1.72,0.03 -5.1,-0.06 -1.51,-0.08 2.28,-0.63 7.24,1.14 7.93,0.18 0.4,-0.67 -6.5,-0.28 -7.74,-0.41 -3.17,-0.12 0.65,-0.38 1.46,-0.31 1.6,0.56 3.73,-0.16 0.84,-0.28 -3.45,-0.22 3.09,0.42 4.35,0.26 1.19,-0.16 7.87,-0.32 3.29,-1.04 -2.19,0.18 -2.73,-0.43 -0.25,-0.26 2.8,0.17 5.47,1.21 8.33,0.1 -3.29,-0.2 3.61,-0.39 -0.21,-0.85 -0.85,0.32 -5.31,0.31 -2.45,0.07 -2.95,-0.53 8.31,0.44 3.53,-1.3 3.49,1.42 6.85,-1.38 10.4,-1.6 1.58,-0.76 6.13,-0.33 5.94,-1.37 -3.32,-0.16 -6.7,0.43 -10.04,0.74 -2.98,0.61 -7.36,0.43 -2.64,0.08 1.95,-0.29 6.47,-0.55 6.8,-0.91 -2.4,-0.22 -5.78,0.49 -5.24,-0.2 -4.16,-0.76 3.11,0.64 4.59,-0.04 2.54,-0.07 4.72,-0.12 3.63,-0.22 4.22,-0.36 8.69,-0.25 12.67,-1.73 -1.97,-1.43 -5.27,-0.1 -5.6,-0.49 1.51,-0.47 -3.45,-0.69 -0.73,-0.78 -3.45,-0.49 -6.93,-0.07 -10.48,-0.08 -1.48,0.13 -6.05,0.61 -2.12,0.17 1.76,0.34 6.35,-0.62 2.28,-0.72 -4.28,0.14 -6.88,-0.27 -10.84,-0.3 -3.47,0.11 2.51,0.8 -1.24,0.45 -0.96,-1.2 -9.33,-0 -3.94,0.42 1.12,0.67 -3.67,-0.45 -4.99,-0.7 -1.87,0.32 -7.19,-0.53 -7.26,0.28 1.72,0.32 3.03,0.31 3.06,0.67 2.57,0.03 1.04,0.6 -0.63,0.52 1.18,-1.12 -6.23,-0.8 -4.76,-1.27 -1.66,0.31 -5.91,-0.46 -5.87,0.28 0.46,0.21 4.51,0.6 4.35,0.5 -2.02,0.34 -6.98,-0.82 -7.21,-0.16 5.35,1.05 -6.51,-0.45 -0.87,0.65 -1.68,-0.4 -4.39,0.47 -1.09,0.68 2.15,0.19 6.78,0.7 7.19,1.24 -3.19,-0.42 -6.77,-1.44 -9.8,-1.09 1.29,0.52 3.88,0.47 0.96,0.34 -2.88,-0.58 -7.8,-1.66 -8.62,-0.88 2.78,0.5 -5.6,0.08 -1.6,0.77 1.74,-0.31 5.95,0.84 1.87,0.43 1.18,0.42 -4.86,-0.7 -3.78,0.17 -3.31,-1.43 -5.85,0.41 -8.09,0.01 -1.79,-0.17 -8.35,1.18 -3.44,0.9 1.42,-0.36 6.26,0.04 2.37,0.06 -2.81,1.45 4.19,-0.05 5.53,0.05 3.08,0.18 2.28,0.16 -0.17,0.07 -1.6,-0.23 -6.35,0.82 -2.42,0.8 1.74,-0.03 -5.74,-0.06 -1.53,0.8 4.08,-0.18 8.23,-0.07 12.24,-0.98 3.81,0.26 -4.02,1.3 -5.65,0.94 -1.55,-0.22 -7.83,0.01 -3.69,0.84 4.19,1.31 7.99,-1.72 12.23,-1.08 1.47,-0.54 7.39,-0.18 3.29,-0.18 -2.88,0.61 -7.5,-0.29 -9.37,1.75 2.81,-0.34 6.24,1.21 8.62,-0.74 1.94,-0.27 -1.29,0.74 1.19,0.28 1.33,-0.72 5.21,-0.13 1.76,-0.16 -4.69,0.67 1.96,0.93 3.56,0.42 2.34,0.16 5.74,-1.7 5.37,-1.5 2.11,0.22 2.88,-0.74 3.34,-0.7 2.52,-0.44 2.76,0.02 0.09,0.21 -1.03,0.17 0.24,0.23 -1.75,0.48 -3.29,1.57 5.86,0.16 4.43,0.92 -2.06,-0.06 -7.47,1.4e-4 -7.17,0.78 1.89,0.01 6.11,-0.05 2.11,0.19 -3.77,0.21 -7.58,0.08 -11.33,0.47 -1.3,1.07 5.45,0.64 3.66,1.82 2.07,0.7 7.61,-0.06 2.51,0.51 -3.64,0.26 -6.99,-2.43 -11,-2.06 -1.31,-0.21 -7.75,-0.14 -3.73,0.92 3.6,0.72 -0.04,-0.6 -1.19,0.33 2.38,0.2 6.66,1.96 7.65,2.28 -1.65,-0.54 -4.61,0.01 -1.2,0.14 1.73,0.3 7.25,0.04 6.54,-0.02 -1.28,0.73 -6.41,0.18 -2.45,0.63 1.98,1.12 -4.75,-0.87 -7.35,-0.42 -2.11,-0.32 -5.18,0.72 -5.56,1 -2.26,0.34 1.27,1.26 -1.02,1.15 1.34,0.86 5.84,-1.66 3.84,0.19 3.04,-0.14 4.24,-1.95 4.07,-0.42 3.38,0.47 -0.1,-0.5 -0.85,0.39 5.16,-0.27 -5.39,0.29 0.08,0.57 3.03,0.07 0.18,-0.59 -1,0.19 1.63,-0.44 -0.98,0.82 1.3,0.46 1.21,-0.39 -0.15,0.77 2.06,0.35 1.94,-0.05 6.84,-2.96 2.95,-0.42 -0.4,0.22 -3.18,0.54 -1.25,0.88 -3.4,0.36 -6.03,-0.21 -9.04,-1.41 -1.65,-0.49 -5.65,0.01 -2.57,1.37 2.47,0.02 1.21,-0.05 1.85,0.28 1.82,0.91 -6.32,-0.29 -6.6,1.5 -1.53,0.72 1.85,1.39 1.9,0.38 z m -12.51,-3.14 c -2.8,-0.02 -6.17,-0.78 -8.66,0.32 2.53,0.58 6.54,0.9 8.66,-0.32 z m -1.82,4.12 c 1.71,-0.98 6.9,1.12 4.27,2.72 1.17,0.75 2.53,2.95 4.68,1.28 -0.05,2.09 7.18,-0.38 6.39,0.5 1.45,1.54 5.25,-0.07 6.91,0.56 2.39,-0.96 4.95,1.12 7.37,-0.98 2.5,1.53 6.29,1.19 8.98,0.2 -2.05,-0.7 4.76,0.05 0.77,-0.71 -3.66,0.36 3.57,-1.08 -0.37,-1.34 -1.24,-0.38 -6.4,-1.58 -9.94,-0.84 -1.68,0.03 -7.01,0.4 -6.27,0.96 1.15,0.08 -2.11,0.59 -2.38,-0.08 -2.27,-0.28 -4.74,-0.33 -6.02,-0.19 -1.03,0.01 -4.09,-0 -1.09,-0.56 -1.31,-0.92 -5,-0.36 -5.17,-0.68 2.33,-0.33 2.14,-0.21 0.57,-0.4 -4.8,-0.6 1.43,-0.23 1.54,-0.18 1.44,0.2 3.84,-0.17 0.94,-0.64 -1.35,-0.28 -6.33,-0.28 -2.36,-0.22 0.86,-0.64 -3.59,-0.82 -4.94,-0.46 -1.51,-0.65 -3.64,1.46 -2.2,-0.32 -3.15,-0.59 -6.64,-1.34 -9.82,-0.55 2.88,0.59 -2.14,0.27 0.77,0.78 0.94,0.34 3.95,0.11 1.28,0.43 1,0.78 5.24,0.32 1.96,0.63 1.36,0.23 2.75,-0.17 4.15,0.1 z m -2.52,1.8 c -1.67,0.15 -3.78,0.65 -2.96,0.86 0.25,-0.07 -3.05,1.2 -0.28,0.98 1.68,1.28 10.19,1.81 5.69,-1.29 -0.78,-0.33 -1.62,-0.49 -2.46,-0.55 z m -7.63,4.34 c -2.25,-0.08 -6.35,0.67 -3.12,0.8 0.94,-0.14 2.62,0.23 3.12,-0.8 z m -6.3,-2.43 c 1.95,-0.49 6.91,0.16 5.93,-0.76 -0.98,-0.36 -0.42,-1.07 1,-0.78 -0.7,-0.84 -1.17,-0.48 -0.45,-1.85 -0.44,-1.5 -4.66,-1.41 -2.97,-1.46 -1.84,1.17 -4.07,-0.63 -6.53,0.5 0.81,0.6 3.87,0.43 1.18,0.57 2.29,0.74 2.38,-0.08 1.44,0.79 1.94,0.66 -2.88,-0.43 -4.17,-1.21 -2.5,-0.37 -1.86,1.12 0.2,0.51 -2.51,0.49 0.26,0.71 0.11,1.16 3.11,0.63 -3.73,-0.55 -2.33,0.3 -3.66,0.88 3.03,0.71 4.25,0.37 2.03,-0.01 6.98,-0.52 2.4,0.04 0.61,0.34 -2.29,0.18 -0.3,0.29 -1.51,0.1 -0.95,0.24 -1.92,0.41 1.18,0.47 2.58,0.08 0.67,0.53 0.4,0.39 1,0.45 1.51,0.58 z m 8,-8.05 c 0.59,-0.63 3.62,0.21 5.55,-0.85 -3.24,-0.45 1.93,-0.65 -1.07,-1.05 -2.75,0.29 -5.61,-1.79 -8.38,-0.56 2.04,0.73 -1.78,0.08 0.61,0.95 0.63,0.38 5.09,0.7 1.38,0.69 -1.06,0.24 1.54,0.29 1.91,0.82 z m -22.65,-1.96 c 3.07,1.42 5.97,-0.12 8.83,0.63 2.41,-0.27 5.97,2.74 7.7,0.59 -1.74,-0.45 -1.52,-1.2 -2.01,-1.58 -2.37,-0.48 -5.02,-1.41 -7.65,-1.04 -2.3,-1.33 -5.88,-1.41 -8.24,-0.32 0.53,0.39 3.35,-0.06 1.54,0.82 1.6,-0.32 3.02,-0.53 2.88,0.17 1.79,-0.18 1.42,0.19 -0.07,0.31 3.68,0.42 -1.5,0.28 -2.52,0.27 z m 0.63,3.86 c 3.65,-0.13 -6.13,-3.42 -2.26,-0.72 0.63,0.55 1.51,0.51 2.26,0.72 z m -14.48,-2.28 c 2.73,-0.92 -3.86,-0.4 -5.02,-0.28 -2.04,-0.51 -6.71,0.96 -2.21,1.73 2.09,0.17 5.69,0.59 6.93,-0.85 -1.36,-0.04 -2.73,-0.65 -0.35,-0.58 z m -16.41,8.08 c 0.08,0.64 1.8,-0.2 2.61,0.13 1.2,0.81 2.85,-0.31 1.77,-0.71 1.61,0.24 1.21,-0.8 3.18,-0.34 -3.97,1.62 2.39,0.28 4.08,0.91 1.83,-0.86 3.62,-0.14 0.77,0.2 -1.82,0.23 -7.76,0.27 -6.94,1.29 4.16,1.61 8.39,-0.49 12.53,-0.89 3.24,-0.92 5.57,0.31 8.81,-0.22 4.38,-0.21 1.85,-4.77 -1.3,-2.84 1.73,1.03 -3.16,0.02 -2.86,0.11 0.88,-0.7 -2.53,0.02 -1.14,-1.26 -1.17,-1.88 -4.15,-1.17 -5.97,-0.03 1.67,0.5 4.13,0.73 1.22,1.39 2.13,-0.3 4.88,1.53 0.98,1 -2.52,0.58 -6.09,-0.95 -6.56,-1 0.85,-1.03 -4.96,-0.62 -6,-1.45 -1.53,-1.29 -7.51,0.23 -3.08,0.59 4.24,0.15 -7.21,-0.34 -2.67,0.93 1.44,-0.29 5.72,-0.06 1.95,0.12 -1.83,-0.32 -6.9,0.82 -2.38,0.81 2.03,-0.2 5.05,-0.63 1.55,-0.05 -2.06,-0.04 -6.99,1.04 -2.38,1.27 0.89,-0.15 1.15,-0.23 1.83,0.04 z m -4.54,-2.95 c -1.7,-0.11 -6.96,1.72 -2.4,1.7 0.6,-0.33 3.32,-0.6 2.4,-1.7 z m -6.46,0.79 c 2.43,0.56 -0.35,-2.6 2.02,-0.76 2.44,-0.46 -0.12,-1.35 2.26,-1.45 2.08,-1.56 0.32,1.94 3.27,0.87 0.85,-1.28 5.07,-0.49 2.59,-1.78 3.33,0.35 -2.38,-0.74 0.95,-0.79 2.88,-0.81 -4.56,-1.34 -3.15,-0.32 -3.97,-0.64 -7.71,0.62 -11.35,2.04 -1.63,0.42 -6.95,1.26 -3.67,1.37 -0.26,1.24 4.24,-0.02 4.98,0.16 1,0.29 0.75,0.76 2.09,0.67 z m -14.58,9.4 c -2.3,1.54 -1.01,1.55 0.54,1.65 3.42,0.13 6.1,4.07 9.46,1.34 3.81,0.68 5.01,-3.62 8.94,-3.85 2.34,-1.26 7.02,-0.58 8.27,-2.29 -2.96,-1.47 -8,-2.13 -9.93,-1.41 -1.54,-0.5 -2.05,0.53 -1.73,-0.27 -3.64,-0.98 -7.3,-0.82 -11.03,-0.58 -3.41,-0.58 -1.6,1.64 -0.6,2.18 -1.44,0.47 -3.24,1.27 -2.29,2.13 -1.83,-0.39 -0.58,0.41 -1.13,0.96 z m 42.07,-16.43 c 4.84,0.17 -2.13,-2.1 -3.6,-0.9 -1.48,0.21 -7.75,0.88 -3.46,0.84 2.41,0.09 4.68,0.21 7.06,0.06 z m 37.7,-4.58 c 2.59,0.46 -1.25,-0.02 1.43,0.8 1.38,0.45 7.38,-0.33 3.11,0.35 -1.88,-0.13 -3.02,0.14 -0.95,0.77 1.75,0.42 3.87,-0.67 3.34,0.09 1.68,-0.37 5.08,-0.8 4.62,-0.28 1.84,0.03 4.39,-0.01 1.12,0.08 -5.99,0.49 8.17,0.14 2.33,0.39 -2.42,0.32 -7.75,-0.34 -8.39,0.74 1.69,0.34 3.63,0.51 0.81,0.42 1.88,0.71 8.33,0.47 3.46,0.66 -2.71,0.42 3.58,1.14 4.97,1.15 1.26,-0.5 0.71,-0.8 2.98,-0.22 1.56,0.64 -2.85,-2.13 -0.15,-0.66 1.16,0.93 3.43,0.83 3.11,-0.38 1.57,0.29 2.33,0.35 1.21,-0.66 1.78,-1.99 -0.26,1.35 2.43,0.32 1.27,-1.67 7.19,-0.69 6.09,-1.91 -1.7,-0.84 -5.18,-0.2 -5.85,-0.62 2.82,-1.14 -2.02,-0.3 1,-0.83 -1.49,-0.81 -2.62,0.15 -1.91,-1.21 -1.43,-0.96 -3.51,-0.15 -2.11,0.57 -2.84,0.07 -1.14,-1.36 -4.36,-1.19 -3.03,0.01 -5.63,-2.64 -9.3,-2.54 -1.73,-0.44 -4.4,0.47 -1.16,0.52 4.81,0.36 -4.41,0.29 -0.62,0.44 -2.55,-0.24 -5.52,0.56 -2.85,0.78 0.98,0.09 3.49,0.28 1.02,0.29 5.34,0.82 -4.69,-0.06 -3.4,0.74 1.92,0.57 -4.53,0.16 -0.94,0.63 1.71,0.25 2.27,-0.16 2.51,0.36 1.16,0.33 4.81,-0.46 1.7,0.09 2.52,1.15 -6.92,-0.96 -4.83,0.22 z m -9.72,0.3 c 1.19,0.3 5.95,0.59 2.61,-0.65 -0.72,0.02 -2.82,-0.62 -2.61,0.65 z m 55.89,67.48 c 1.53,-0.33 0.9,-0.42 1.03,0.1 1.65,-1.15 0.91,0.32 1.58,-1.38 -0.59,2.99 1.24,-1.59 -0.84,-0.05 -1.3,1.74 0.63,-1.57 -1.05,0.46 l -0.44,0.4 z m -135.84,9.1 c 0.95,-1.81 0.57,1.37 1.15,-0.93 -1.24,-2.31 -2.12,1.15 -1.42,-0.37 1.49,0.27 -1.42,0.57 0.27,1.3 z m 5.07,7.51 c 0.64,0.57 4.07,0.48 1.67,1.68 3.17,-0.62 1.37,2.05 4.79,0.91 0.71,-0.85 -2.16,1.57 0.36,1.37 2.35,0.91 5.3,0.72 2.46,-1.11 -2.43,-1.05 -4.67,-4.86 -8.34,-4.36 -1.02,-0.82 -6.32,-1.3 -3.1,0.2 1.37,-0.69 1.6,-0.21 0.18,0.41 -0.28,0.95 2.41,0.35 1.99,0.89 z\",\n                        \"SV\" : \"m 222.03,196.98 c 0.88,-1.85 3.05,-2.65 4.44,-0.35 3.04,-1.49 2.33,3.55 -0.45,1.68 -0.11,-0.05 -3.19,-0.56 -3.99,-1.33 z\",\n                        \"GY\" : \"m 301.66,218.91 c 0.49,-1.79 1.12,-2.46 2.95,-3.04 -2.84,-1.04 1.95,-3.71 1.27,-3.93 2.24,1.68 -0.88,-0.82 1.59,0.77 2.39,0.75 2.17,4.25 2,4.69 1.27,-2.76 5.15,1.96 3.7,3.65 -2.72,-0.18 -3.01,4.7 -0.29,5.18 -10e-4,2.18 4.29,5.02 0.07,3.89 -2.38,0.99 -4.44,3.28 -6.58,0.57 -1.44,-1.81 -0.19,-4.74 0.04,-6.63 -0.61,-1.32 -1.37,-1.38 -1.21,-3.1 -1.67,0.2 -2.75,-0.41 -3.56,-2.05 z\",\n                        \"BE\" : \"m 478.93,91.9 c 2.32,-1.15 4.47,-0.04 6.06,-1.1 1.51,0.32 3.18,0.75 3.06,2.03 3.04,0.69 -0.46,2.11 -0.34,3.56 -2.48,-0.6 -2,-2.13 -4.33,-1.33 0.56,-1.8 -4.26,-1.27 -4.45,-3.16 z\",\n                        \"GQ\" : \"m 498.59,231.17 c 0.57,-0.61 -0.03,-2.96 2.29,-1.55 3.75,-1.68 3.3,5.15 -0.4,3.16 -0.91,0.03 -4.04,0.11 -1.89,-1.6 z\",\n                        \"LS\" : \"m 546.8,319.01 c 0.71,1.9 2.91,4.13 4.08,1.42 4.63,-0.16 1.3,-6.51 -1.79,-3.51 -0.99,0.45 -1.02,1.91 -2.29,2.09 z\",\n                        \"BG\" : \"m 533.97,112.48 c 1.59,-2.91 1.02,1.06 3.37,-0.12 3.37,1 6.48,-0.11 9.72,-0.88 2.31,0.28 5.98,1.47 2.27,2.81 -0.57,1.91 -1.71,1.69 0.14,3.21 -1.73,-0.14 -4.89,-0.3 -5.01,1.49 -2.34,1.77 -4.87,-1.4 -7.43,0.27 -2.24,0.89 -1.01,-2.22 -3.11,-2.68 -0.02,-1.82 2.99,-2.17 0.28,-3.6 z\",\n                        \"BI\" : \"m 552.39,243.34 c 0.66,-0.13 2.99,0.31 2.86,-1 2.1,-0.75 0.41,1.93 2.05,1.88 -0.8,1.38 -2.12,4.99 -3.98,3.28 -0.86,-1.35 0.21,-2.98 -0.93,-4.15 z\",\n                        \"DJ\" : \"m 587.83,204.6 c -0.8,-2.73 3.53,-6.12 4.51,-3.27 -0.46,1.17 -4.12,2.23 -0.91,1.75 1.34,1.79 -2.93,1.73 -3.6,1.52 z\",\n                        \"AZ\" : \"m 596.08,123.95 c 1.37,-0.12 4.67,1.29 3.26,2.25 -1.32,-0.22 -2.65,-1.04 -3.26,-2.25 z m 0.72,-4.49 c 1.06,-0.89 6.64,1.92 3.42,-0.83 1.16,-2.58 3.98,3.43 5.82,-0.11 2.25,-1.16 2.64,3.87 5.38,3.54 -0.25,-0.15 -3.6,0.66 -2.8,3.06 -0.52,1.23 -1.34,-0.09 -1.11,2.38 -2.4,0.12 -2.56,-1.81 -1.48,-2.65 -1.92,-2.61 -5.89,3.52 -5.2,-0.31 -0.9,-0.69 -3.39,-1.11 -1.41,-1.99 -1.93,-0.6 -1.07,-2.48 -2.18,-2.59 l -0.09,-0.14 z\",\n                        \"MY\" : \"m 776.03,229.79 c 0.94,1.19 3.66,1.54 4.54,1.91 -1.52,-0.7 0.64,-1.85 -0.2,-2.82 0.71,0.24 1.44,-2.13 3.47,-1.6 3.2,0.14 3.49,-7.1 6.03,-3.04 0.76,-0.77 0.48,-3.7 1.3,-1.03 1.04,0.24 -0.67,-1.97 1.23,-2.07 -0.71,-1.32 2.8,-2.95 3.42,-5.2 -0.23,1.83 1.43,-0.64 2.14,1.28 1.13,1.03 -1.26,2.58 1.24,1.51 -0.72,1.4 1.68,0.18 2.51,1.76 3.12,0.67 -3,0.96 -1.88,1.86 2.74,1.53 -1.92,0.86 -2.26,1.45 -1.8,-0.34 -4.97,-1.38 -5.12,1.37 -0.46,2.54 -1.76,3.45 -2.6,5.97 -2.13,1.99 -5.98,-1.42 -7.81,1.64 -2.57,0.56 -6.2,0.31 -6,-2.98 z m -26.46,-12.24 c 0.81,-1.87 3.14,1.48 2.99,2.15 0.86,-1.4 2.33,0.75 2.47,-1.61 3.54,1.64 4.14,5.64 3.78,9.14 1.49,1.41 2.95,5.27 1.51,4.14 -2.37,0.91 -5.07,-2.51 -7.43,-3.83 -0.75,-2.57 -2.09,-3.59 -2.65,-6.4 -0.03,-1.26 0.13,-2.5 -0.67,-3.59 z\",\n                        \"PH\" : \"m 820.11,207.51 c 0.82,1.58 -0.23,-2.89 0,0 z m -3.49,-7.05 c 0.99,1.44 3.32,3.35 0.62,3.2 -1.3,-0.61 0.15,1.59 0.72,1.89 0.16,3.43 1.86,0.36 0.58,-1.65 2.72,2.14 1.73,-1.54 1.01,-2.78 -0.18,-1.27 -2.04,-0.65 -2.93,-0.66 z m -2.51,7.05 c -1.05,4.34 3.36,-4.32 1.39,-2.87 -0.2,1.08 -0.99,1.88 -1.39,2.87 z m -0.55,-5.64 c 0.23,-1.55 2.22,1.26 2.48,0.23 -1.22,-1.33 -2.47,-3.02 -2.48,-0.23 z m -1.69,7.23 c 2.83,2.93 1.01,-2.32 2.62,-3.92 -2.35,-1.67 -1.28,2.68 -3.2,2.71 l 0.19,0.64 z m -1.84,6.41 c 0.78,1.98 2.03,-3.59 2.71,-1.05 0.9,-0.8 1.16,1.09 1.97,-0.84 2.89,0.63 -0.14,6.61 4.16,5.12 0.3,0.06 0.81,2.53 1.59,-0.01 -1.3,-1.4 0.21,-5.55 1.13,-2.03 0.43,2.55 0.28,-0.8 0.74,-0.69 1.78,-2.11 -1.11,-3.92 -0.11,-5.38 -0.33,-1.64 -3.69,-3.74 -2.16,-0.4 -1.91,-0.53 -1.87,1.23 -3.48,1.66 -0.94,1.41 -2.07,1.73 -1.41,-0.27 -1.34,-1.08 -3.18,1.53 -4.58,2.3 0.03,0.58 -0.28,1.11 -0.57,1.58 z m -0.15,-12.99 c 1.37,1.3 -1.23,5.28 2.16,2.82 2.7,-2.22 0.02,-1.86 -1.84,-3.29 z m -5.75,-12.27 c 0.17,2 1.5,6.03 2.43,3.8 2.23,0.61 -1.82,2.67 0.72,2.78 0.63,0.68 3.87,-1.27 4.8,1.72 -0.26,-1.32 -0.91,-3.18 0.93,-0.96 0.43,1.22 2.78,1.88 2.56,1.94 0.3,2.23 1.13,-1.46 -0.36,-1.02 -1.03,-1.16 -0.4,-1.39 0.4,-1.67 -1.58,-0.77 -1.61,-0.73 -2.22,0.11 -0.91,-2.69 -2.4,-0.92 -3.06,-0.55 -1.48,-1.61 -2.71,-5.38 0.33,-6.48 0.05,0.11 1.99,-2.95 0.09,-3.94 1,-2.9 -0.05,-1.62 -1.57,-2.04 -3.66,-2.61 -3.34,3.01 -3.47,5.26 0.66,3.49 -1.7,-1.12 -1.58,1.06 z m 1.47,7.51 c 1.09,1.87 3.92,5.29 3.14,0.86 -0.53,-1.08 -2.14,-1.26 -3.14,-0.86 z m -8.51,13.72 c 0.2,1.1 4.23,-2.57 4.46,-3.92 2.15,-0.13 2.43,-3.15 1.62,-3.68 -0.27,1.18 -0.08,1.27 -0.56,1.34 -0.2,1.79 -1.78,1.81 -2.8,3.74 -0.85,0.86 -2.18,1.29 -2.71,2.52 z m 12.81,5.73 c 1.89,1.01 0.24,-1.57 0,0 z\",\n                        \"UY\" : \"m 311.36,321.52 c 1.41,-2.04 4.89,-0.87 5.47,1.5 1.9,-0.63 4.87,2.28 6.66,3.89 1.83,0.85 -0.82,2.69 0.03,4.25 -1.55,3.07 -4.83,2.34 -7.67,2.58 -2.09,-0.87 -8.29,-1.8 -5.1,-5.16 -0.91,-2.46 0.84,-4.7 0.62,-7.05 z\",\n                        \"CG\" : \"m 502.78,246.68 c 0.46,-1.75 3.43,-0.13 1.65,-2.27 -0.84,-1.77 -0.21,-2.37 2.04,-2.28 -0.05,-3.58 2.35,2.6 3.6,-0.63 1.31,2.9 2.21,-2.62 2.08,-3.94 -1.87,-0.89 -2.27,-3.03 -0.2,-4.28 -0.2,-3.41 -4.84,0.65 -3.36,-3.12 1.95,-2.02 6.63,0.75 8.01,0.25 0.34,-2.92 1.85,-6.38 5.5,-4.76 3.6,0.03 -1.21,4.29 -0.3,6.41 -0.05,3.99 -1.97,6.86 -4.7,9.61 0.43,3.55 -2.12,6.63 -5.2,7.7 0.46,-3.72 -2.66,1.03 -3.68,-0.77 -1.35,-1.81 -3.39,3.15 -3.85,-0.45 -0.43,-0.58 -1.02,-1.01 -1.57,-1.47 z\",\n                        \"RS\" : \"m 527.66,115.24 c 1.53,-1.25 3.09,-1.55 4.56,0.4 -0.18,1.45 -3,2.01 -3.18,1.86 -0.05,-1.09 -1.47,-1 -1.68,-2.1 m -0.84,-9.68 c -2.48,0.14 -2.86,2.04 -0.82,2.79 -2.61,0.83 1.29,0.24 -0.71,1.91 -0.45,0.81 2.48,1.6 0.37,1.44 1.92,1.69 -2.56,1.04 0.33,2.32 1.77,1.82 3.34,-0.1 4.34,0.67 2.54,0.13 0.42,2.83 3.17,1.73 1.9,-0.05 0.7,-1.8 2.51,-2.46 -3.46,-1.24 0.89,-5.32 -2.67,-3.79 -2.5,-0.59 -0.92,-2.05 -3.85,-2.59 0.63,-1.14 -1.77,-2.19 -2.66,-2.01 z\",\n                        \"ME\" : \"m 523.1,115.89 c 0.25,-1.66 1.44,-3.47 2.89,-1.55 2.94,0.62 1.38,1.64 -0.11,1.93 0.18,2.71 -1.86,0.38 -2.22,-0.09 0.92,-0.03 -0.85,0.25 -0.57,-0.29 z\",\n                        \"EE\" : \"m 537.06,70.85 c 0.6,-1.04 1.34,-0.13 -0.09,-0.76 -0.13,-1.61 2.75,-1.72 4.84,-1.83 1.93,-0.52 7.06,0.13 7.88,0.44 -2.59,0.76 -1.03,3.56 -1.05,4.25 -2.65,2.53 -6.13,-2.06 -9.3,-0.16 1.53,-2.48 -0.87,-0.23 -1.83,-1.72 z m -2.39,-1.43 c -3.01,-0.05 0.01,1.64 0.91,0.45 -0.19,-0.33 -0.67,-0.19 -0.91,-0.45 z m -1.65,3.27 c 0.87,-1.16 5.33,-1.53 1.65,-1.89 -3.01,0.38 -1.52,0.02 -1.65,1.89 z\",\n                        \"RW\" : \"m 552,242.64 c 0.4,-2.57 3.25,-3.61 4.42,-3.65 1.72,1.72 1.16,4.36 -1.45,3.13 0.19,2.38 -2.84,0.96 -2.97,0.52 z\",\n                        \"AM\" : \"m 592.45,119.98 c 2.56,-0.33 5.77,-0.93 5.47,1.17 0.15,0.96 2.85,1.67 0.42,1.97 2.04,0.44 4.06,3.16 1.45,2.96 -0.61,-2.51 -2.88,-1.32 -4.53,-2.8 -4.29,-0.22 -0.87,-1.32 -2.81,-3.3 z\",\n                        \"SN\" : \"m 423.83,194.19 c 0.12,-0.09 2.64,-3.19 2.94,-4.92 2.88,-0.61 7.06,-0.8 8.5,2.4 1.83,1.52 3.8,3.4 3.27,5.66 1.46,0.88 3.16,4.02 -0.27,3.51 -2.77,-0.42 -5.35,-1.28 -8.53,-0.81 -1.93,1.34 -6.57,0.51 -2.35,0.14 1.63,0.26 2.32,-0.91 0.58,0.04 -1.62,-0.22 -4.09,0.03 -1.61,-1.6 2.45,-0.5 4.14,-1.3 6.73,-0.4 0.8,-0.66 -2.59,-1.21 -3.7,-1.32 -2.29,1.53 -4.4,-0.28 -3.54,-0.69 1.42,-1.28 -1.46,1.75 -0.92,-0.96 l -0.47,-0.65 z\",\n                        \"TG\" : \"m 471.48,204.3 c 2.11,0.43 3.17,0.03 2.83,2.29 2.39,1.59 2.1,5.22 2.19,7.95 -0.53,1.66 1.21,4.69 -1.64,3.54 -2.84,-1.32 -0.4,-4.57 -1.44,-6.53 -0.4,-0.76 0.18,-2.86 -0.71,-2.83 0.99,-1.66 -0.9,-3.13 -1.23,-4.41 z\",\n                        \"ES\" : \"m 481.01,124.75 c -3.23,1.01 -1.72,-2.19 -0.44,-1.14 0.66,0.42 1.44,-0.02 0.44,1.14 z m -34.51,-9.69 c -1.12,-1.61 3.86,-1.24 2.45,-1.98 2.63,-0.74 5.81,0.24 9.04,0.28 3.37,0.18 6.58,0.01 9.89,0.57 0.69,1.2 4.87,2.08 5.98,1.12 1.69,1.81 6.14,0.75 6.81,1.78 -0.36,3.24 -6.37,2.32 -7.21,4.71 -1.76,1.25 -3.38,3.65 -1.23,5.28 -3.13,1.3 -1.31,3.64 -4.82,3.61 -1.54,3.44 -6.17,0.78 -8.96,2.58 -1.53,1.81 -3.61,1.22 -4.39,-0.67 1.04,-0.9 -2.14,-1.43 -2.93,-1.86 -0.2,-1.79 2.55,-1.96 0.46,-3.16 2.46,-1.43 -2.21,-3.58 0.79,-3.38 0.67,-1.89 0.25,-4.13 2.15,-5.44 -1.02,-2.01 -5.14,0.52 -5.33,-1.24 -0.81,-0.18 -2.94,0.94 -1.19,-0.8 -1.06,0.5 -0.05,-0.05 -0.72,-0.56 0.34,-0.26 -0.71,-0.18 -0.43,-0.6 l -0.2,-0.07 z\",\n                        \"GA\" : \"m 496.4,238.12 c -0.6,-0.74 1.77,0.08 1.29,-2.52 -0.32,-1.18 3.34,0.41 0.71,-0.82 -1.45,-1.4 0.92,-0.16 0.33,-2.07 2.47,0.48 6.01,0.73 4.55,-2.89 1.57,-1.14 6.76,-1.49 5.26,1.87 0.18,0.66 4.28,-0.8 3.14,2.12 -3.42,2.04 1.38,3.08 0.44,5.63 -0.1,0.9 -1.19,4.99 -2.04,2.09 -1.61,3.01 -3.29,-2.85 -4.08,0.77 -2.37,-0.58 -2.23,1.44 -1.11,2.62 0.67,2.35 -1.95,-0.57 -2.11,1.79 -1.37,-1.68 -4.07,-4.42 -3.38,-4.01 -1.66,-0.56 -1.55,-2.01 -1.3,-1.68 -0.96,-0.41 -1.3,-2.68 -0.49,-0.72 1.96,0.14 -1.03,-0.93 -1.2,-2.16 z\",\n                        \"HU\" : \"m 516.57,103.77 c 2.11,-0.35 0.34,-2.99 2.43,-2.38 1.54,-1.19 4.7,0.77 6.02,-0.83 1.53,-0.8 3.17,-0.28 4.4,-1.58 1.7,0.3 5.87,0.26 5.56,2.12 -3.03,0.15 -3,4.63 -6.02,4.69 -3.59,-0.54 -7.33,2.83 -10.43,-0.55 -0.9,-0.17 -1.03,-1.52 -1.96,-1.47 z\",\n                        \"MW\" : \"m 562.64,274.16 c 0.55,-1.54 1.02,-3.52 1.93,-3.87 -1.59,-2.89 1.41,-4.69 -0.21,-6.99 -2.72,-2.02 1.67,-0.22 2.39,-0.63 1.41,1.41 1.32,4.73 1.73,5.49 -2.65,2.36 -0.17,5.96 2.15,7.65 1.58,2.22 0.74,5.14 -1.29,6.37 1.59,3.5 -2.26,-0.57 -2.26,-2.16 1.69,-2.24 0.19,-4.57 -2.08,-3.73 -0.59,-1.02 -1.84,-1.13 -2.34,-2.12 z\",\n                        \"TJ\" : \"m 658.73,125.13 c 1.18,-1.28 4.56,-0.9 4.21,-2.37 -1.87,-0.4 2.45,0.45 1.19,-1.61 1.26,0.02 5.5,-1.48 2.96,0.74 1.05,1.01 2.39,0.38 0.21,1.41 -1.41,-2.67 -5.48,2.23 -1.02,1.02 1.77,0.59 4.14,-0.45 6.02,1.07 1.94,-1.37 4.89,-0.84 4.35,1.59 2.44,-1.12 3.96,2.41 3.17,3.83 -1.95,-0.91 -3.11,0.52 -4.41,-0.44 -2.4,1.75 -6.63,2.78 -5.15,-1.37 -0.71,-0.18 -1.43,-2.98 -3.1,-0.56 -0.59,1.42 -0.71,1.64 -2.7,1.79 0.25,1.79 -2.81,-0.1 -3.84,1.52 -1.76,-1.7 1.84,-3.13 0.32,-5.05 0.18,-1.17 -1.73,-0.61 -2.23,-1.56 z\",\n                        \"KH\" : \"m 755.76,198.21 c 0.59,-3.27 5.73,-3.72 7.96,-2.65 1.54,0.74 2.61,1.15 2.58,-0.36 0.93,-0.6 3.89,-0.27 3.75,-0.38 -0.99,1.74 1.79,5.8 -1.09,6.48 -1.92,0.98 -1.78,1.07 -3.53,1.67 0.39,1.22 1.9,2.95 -0.33,1.71 -1.91,0.06 -3.33,2.31 -5.24,1.16 -1.45,0.92 0.24,-2.88 -1.42,-0.89 -1.22,-0.76 -0.38,-2.35 -1.48,-3.16 0.32,-1.4 -1,-2.27 -1.2,-3.58 z\",\n                        \"KR\" : \"m 822.96,129.52 c 0.55,0.4 1.63,-2.7 3.79,-1.66 2.05,-1.89 3.71,2.6 4.27,4.45 0.43,2.34 0.11,4.94 -2.71,4.64 0.09,1.13 -2.54,-0.58 -2.41,1.11 -0.67,-0.96 -0.84,1.65 -1.11,-0.18 -1.09,1.41 -2.53,1.09 -2.41,0.33 1.32,-0.25 -1.3,-1.14 0.86,-2.65 -1.8,0.25 1.81,-1.21 -0.11,-0.92 1.21,-0.17 -0.79,-1.02 -0.24,-1.92 -1.84,-0.48 0.09,-1.84 0.89,-0.5 0.43,-0.92 -0.31,-1.19 -0.81,-2.7 z\",\n                        \"HN\" : \"m 224.11,195.03 c 0.55,-2.12 3.29,-4.64 5.8,-3.75 3.09,0.04 4.62,-1.16 7.72,-0.16 2.35,0.74 1.48,0.96 1.03,1.19 0.14,0.13 1.39,0.51 1.63,0.41 -0.9,-0.61 2.59,1.32 -0.25,1 -2.54,0.7 -3.88,0.03 -5.35,2.23 -1.06,0.91 -3.73,0.28 -3.8,2.4 -0.9,1.88 -2.04,-1.1 -2.35,-0.67 0.17,-2.12 -3.09,-0.68 -4.43,-2.65 z\",\n                        \"IS\" : \"m 405.62,51.63 c 2.16,-0.72 4.6,-0.3 4.87,-0.3 3.05,-0.07 -3.66,1.31 0.45,1.08 0.6,0.6 -3.4,0.12 -4.54,0.62 -3.06,0.86 4.9,-0.38 3.77,1.05 1.24,0.15 2.59,-0.84 0.71,0.43 -0.23,0.35 0.11,0.02 1.38,0.02 -1.11,0.56 -1.87,0.98 -3.46,1.16 1.65,0.86 5.37,-0.27 6,0.57 0.56,0.2 5.43,1.94 7.36,0.32 1.74,-0.34 5.05,-1.16 7.59,-1.9 2.1,-0.2 2.25,-1.4 3.58,-1.59 -0.35,-0.14 1.01,-0.17 -0.66,-0.4 1.02,0.32 2.79,-0.46 0.57,-0.46 2.34,-0.37 -1.51,0.03 0.73,-0.68 -0.59,-1.36 -3.35,0.61 -1.9,-1.01 -2.62,0.82 0.43,-1.03 -2.22,-1.01 2.25,-1.38 0.06,-0.05 -1.29,-0.27 -1.94,-2.31 -2.55,1.21 -4.65,0.17 -0.86,1.48 -4.09,-1.44 -2.19,1.52 -1.07,-2.17 -3.68,-1.57 -4.19,-0.29 -2.21,-2.41 -1.78,0.14 -2.68,0.63 -1.63,-0.67 -1.58,1.8 -2.3,0.13 -1.44,-1.35 -0.37,0.03 -0.02,-1.27 0.3,-1.04 -7.13,-1.94 -3.28,-0.97 0.94,-0.19 -2.39,0.24 0.11,0.57 0.64,1.46 -3.73,-1.44 -2.37,0.21 -2.91,-0.64 1.75,0.89 -1.02,0.28 0.62,0.58 0.96,0.31 1.21,0.62 -1.59,-0.14 -2.67,-0.42 -1.44,0.41 -1.53,-0.52 -2.19,0.25 -0.11,0.35 z\",\n                        \"NI\" : \"m 228.97,198.89 c 2.22,1.54 1.82,-2.21 3.14,-1.96 1.8,-0.48 3.25,-0.98 4.5,-2.96 1.86,1.45 5.3,-2.12 4.28,0.65 -0.25,1.86 -0.79,4.26 -0.92,6.21 -0.06,-2.95 -0.25,1.59 -0.43,1.07 -0.08,1.24 0.94,4.96 -1.84,2.87 -3.7,0.58 -5.7,-2.53 -8.45,-4.88 -0.24,-0.2 -0.57,-0.68 -0.29,-1 z\",\n                        \"CL\" : \"m 276.37,385.59 c -0.05,-1.26 1.39,-0.84 0.65,-1.59 1.59,0.13 5.04,-1.84 4.57,1.54 0.28,3.88 0.23,5.47 -3.52,4.19 -0.61,-0.05 -2.89,0.29 -1.99,-0.31 -1.32,-0.12 -2.45,0.16 -3.87,-0.54 0.81,0.32 2.1,-0.39 3.66,-0.26 -1.03,0.77 3.05,0.44 0.34,-0.18 -2.36,-1.03 2.7,0.75 2.19,0 1.41,0.25 1.64,1.19 1.82,0.15 -1.76,-0.03 -4.75,-1.9 -1.19,-2.27 1.7,-1.56 -2.52,0.22 -2.66,-0.71 z m 0.26,-98.36 c 2.02,0.25 1.75,-4.14 3.23,-1.04 0.67,2.13 2.81,4.91 1.41,6.76 2.08,1.77 0.96,7.45 4.58,7.14 1.13,3.77 -4.88,3.71 -4.01,6.44 -0.2,1.91 0.59,4.02 -0.02,5.39 -2.29,1.49 -4.86,5.58 -3.56,8.57 -1.57,0.99 -2.42,4.09 -1.59,5.24 0.87,2.47 1.44,3.61 1.51,6.1 -2.23,1.13 -1.01,4.3 -2.21,5.7 -2.53,1.3 -1.36,4.75 -0.67,6.83 -2.18,1.13 -2.17,3.47 -2.36,4.99 -1.25,1.89 0.52,4.42 -1.11,5.57 0.01,2.29 1.19,2.52 1.22,4.43 -1.71,1.55 3.78,1.37 0.43,2.25 -3.22,-0.51 2.82,1.52 -0.57,2.37 0.34,1.34 -0.01,1.58 0.07,3.02 -0.61,1.46 -2.67,2.58 -1.64,4.61 -0.92,1.62 -4.95,3.2 -2.6,5.74 -0.14,2.05 3.62,-0.36 2.65,2.43 -0.47,3.82 6.22,1.32 8.79,2.7 3.36,0.62 -1.14,-0.41 -2.06,0.91 -2.43,0.02 -3.41,1.26 -3.24,3.58 -1.39,1.23 -5.33,-1.82 -3.06,-1.16 -0.68,0.34 1.72,-0.97 0.55,0.44 1.42,-0.91 3.15,-3.11 0.31,-1.56 -2.07,0.42 -1.23,0.09 -2.01,0.85 1.44,1.92 -4.32,-0.94 -0.61,-0.22 -2.27,-2.3 6.73,-1.24 1.42,-1.92 -1.04,0.64 -0.6,-0.68 -1.92,0.43 1.36,-0.03 -1.56,1.89 -1.2,0.55 0.06,-0.49 1.71,-1.5 0.13,-0.76 -1.35,1.4 -0.79,-1.71 -0.7,-1.26 2.17,0.51 1.54,-0.41 2.66,-0.09 -0.44,3.05 1.46,-2.61 -1.65,-1.74 2.46,0.16 1.67,1.45 -0.24,0.34 1.61,1.45 -0.76,0.42 -0.01,0.85 -0.55,0.96 -1.01,-0.22 -0.6,-0.65 -2.03,-0.12 -0.19,-0.88 -0.41,-0.81 0.36,-0.88 -2.69,-0.9 -0.39,-1.76 0.93,-0.49 0.61,-1.34 -0.61,0.07 -1.22,-1.17 1.08,-0.85 -0.96,-1.29 -2.23,-1.65 3.6,0.7 0.23,-0.81 0.76,-0.65 1.68,0.2 0.18,-0.78 0.06,-0.26 0.08,-1.16 1.53,-0.22 -2.34,-0.58 0.83,-3.46 -1.59,-0.6 -1.78,-1.82 1.42,-2.25 -0.36,-2.59 3.47,0.33 -2.49,-2.26 0.43,-1.15 -0.1,-1.19 4.23,1.11 1.71,-0.74 2.06,1.56 -0.88,-2.02 -0.68,-0.25 -2.66,0.18 -2.16,-0.88 -1.02,-0.42 1.18,0.03 -2.05,-1.18 0.26,-1.08 0.88,-0.99 -0.62,0.01 0.16,-0.9 -1.58,-1.09 -1.28,0.64 -2.57,-0.96 0.74,-0.86 -2.96,0.44 -1.14,0.62 -1.94,0.01 1.62,-1.89 1.86,-2.17 -1.22,0 -0.43,-0.85 0.83,-0.49 1.36,-0.61 1.81,1.23 -0.1,0.86 2.31,-0.08 1.35,0.39 1.99,0.86 0.77,-0.64 1.44,-1.95 0.22,-0.6 0.29,-1.86 1.88,-1.77 0.37,-1.87 0.92,-1.46 3.32,-0.04 0.33,-1.04 0.62,-1.23 4.04,-2.35 0.68,-2.97 0.43,-1.15 0.86,-1.04 0.37,-2.49 1.07,-1.47 0.63,-2.47 1.12,-3.09 1.33,1.3 0.21,-1.02 -0.45,-1.02 2.67,-1.44 0.6,-0.53 -0.81,-0.73 -2.55,2.03 -3.01,-3.42 -0.91,-4.9 1.79,-2.07 -1.93,-6.4 0.04,-7.44 1.43,-1.34 1.51,-3.41 3.03,-5.53 1.21,-3.42 2.91,-6.61 2.07,-10.33 -1.29,-2.93 2.03,-4.84 0.3,-7.64 2.01,-2.99 1.42,-7.08 2.93,-10.02 0.06,-3.01 -0.89,-5.37 0.45,-7.38 0.71,-3.26 0.45,-6.62 -0.05,-9.87 -0.4,-0.74 0.29,-1.76 -0.36,-2.34 z m -6.78,74.23 c 0.56,-1.88 -2.75,-0.01 -1.07,0.52 l 0.56,-0.17 z m -1.96,-8.14 c -1.8,-0.98 -3.3,4.48 -0.93,4.4 1.56,-1.42 -0.04,-2.28 1.05,-3.75 z m -3.57,22.95 c 1.89,-0.19 0.91,-1.17 0.82,-3.19 -1.3,-1.25 -0.81,0.99 -1.43,1.06 -0.68,0.31 -1.56,0.59 0.28,1.59 0.73,-3 0.68,0.64 0.33,0.55 z m 0.61,-3.67 c 0.49,-1.39 -0.84,-1.39 -0.53,-0.75 -1.24,0.1 -0.13,0.98 0.53,0.75 z m -1.6,0.03 c 0.75,-2.37 -2.08,-1.32 -0.39,-0.87 0.23,0.25 -0.02,0.69 0.39,0.87 z m 0.53,7.83 c 1.72,0.13 0.88,-1.72 0,0 z m 2.21,-1.79 c 0.43,-1.09 -2.4,-1.19 0,0 z m -1.46,0.76 c 3.02,-1.15 -1.99,-0.87 0,0 z m -1.63,-0.91 c 1.5,-1.81 -1.25,-0.65 0,0 z m 0.8,-1.39 c 0.78,-1.24 -0.56,-0.17 -0.87,-0.44 -0.26,0.69 0.43,0.93 0.87,0.44 z m 4.34,8.49 c 1.83,0.02 -3.39,-1.61 -3.22,-1.3 0.98,0.8 2.22,0.74 3.22,1.3 z m 9.71,5.08 c 1.02,0.7 2.43,1.2 1.75,0.05 1.18,0.28 3.17,1.85 3.46,0.99 -1.07,-0.7 -2.24,-0.5 -0.26,-0.61 -1.89,-0.56 -2.83,-0.44 -0.48,-0.73 -1.32,-0.58 -3.38,0.33 -4.47,0.31 z m -1.47,0.22 c 1.86,-0.63 -1.32,-0.36 0.45,-0.87 -1.44,0.44 -2.68,-0.18 -0.45,0.87 z m -0.07,-2.73 c 0.23,-1.03 0.35,-2.08 -1.05,-1 0.04,0.55 0.53,0.94 1.05,1 z m -2.1,-0.61 c -3.24,-0.16 2.74,1.87 0,0 z m -1.09,-0.2 c -2.37,-0.68 -0.37,1.88 -0.39,0.54 0.69,0.25 0.1,-0.34 0.39,-0.54 z m -3.2,0.54 c 3.23,-0.71 0.16,-1.7 -1.01,-2 -1.43,0.42 1.49,0.88 -0.77,0.48 -1.27,1.1 3.85,0.62 1.21,1.4 z m 16.09,2.7 c -1.18,-1.36 -5.24,-0.27 -2.03,0.39 0.09,-0.66 1.54,0.87 2.03,-0.39 z\",\n                        \"MA\" : \"m 435.34,157.82 c 3.51,-1.58 8.67,-3.15 9.9,-7.6 -1.92,-2.47 1.17,-6.42 3.2,-8.19 3.79,-0.7 6.09,-3.66 7.2,-7.08 2.19,-0.65 3.38,3 6.18,1.58 2.19,-0.14 3.29,-0.27 5.09,1.74 -0.08,1.96 1.14,5.01 1.62,6.42 -0.43,1.66 -4.65,-0.6 -6,1.76 -2.79,-0.04 0.86,2.65 -2.45,2.75 -2.89,1.88 -5.76,2.93 -8.95,3.73 -2.19,0.78 -3.99,2.27 -3.3,4.82 -4.14,0.35 -8.33,0.06 -12.49,0.08 z\",\n                        \"LR\" : \"m 440.03,216.14 c 1.83,-1.24 2.39,-4.03 4.44,-4.43 2.22,0.14 0.61,5.84 3.27,2.46 2.46,0.33 -1.11,4.3 2.27,3.96 2.12,1.34 1.66,7.23 -1.53,4.32 -3.12,-1.85 -5.71,-4.25 -8.45,-6.31 z\",\n                        \"NL\" : \"m 482.62,90.46 c 1.95,0.97 -0.52,-0.48 2.14,-0.3 1.14,-0.06 -3.78,-0.2 -0.57,-1.79 0.55,-2.7 8.79,-4.99 7.11,-0.85 -1.71,0.01 0.69,1.12 -0.61,1.98 -2.17,0.18 -2.33,0.02 -1.76,1.94 0.3,1.35 -2.06,2.03 -0.81,0.3 -2.1,-1.48 -4.93,-0.13 -6.42,-1.21 l 0.29,-0.07 z\",\n                        \"CF\" : \"m 511.86,218.62 c 1.77,-2.21 2.85,-4.56 5.73,-5.01 1.22,1.22 4.09,-0.82 6.16,-0.93 1.69,-1.38 -0.16,-2.94 3.02,-2.46 3.37,-0.04 4.4,-3.88 6.79,-5.2 3.27,-1.11 4.41,4.22 3.67,5.65 0.28,0.52 2.21,0.5 2.35,1.77 2.68,0.6 2.73,3.31 5.43,4.47 -0.45,1.76 3.81,3.45 2.66,4.3 -2.17,0.78 -4.86,-1.52 -6.36,0.42 -2.09,-0.85 -4.18,1.49 -6.17,0.83 -1.28,2.77 -6.09,0.99 -7.68,-0.78 -2.93,-1.92 -4.44,3.1 -4.31,3.91 -2.96,-0.58 -6.01,-0.26 -6.14,3.39 -0.3,0.07 -0.9,-2.78 -2.47,-3.26 -1.22,-2.01 -2.17,-4.62 -2.58,-6.92 z\",\n                        \"SK\" : \"m 518.91,98.85 c 2.51,-0.63 5.04,-3.35 7.51,-2.21 2.17,0.85 5.54,-0.96 7.91,1.06 -1.09,3.67 -5.16,-0.25 -7.14,2.45 -2.96,-0.08 -5.13,2.79 -8.14,-0.1 -0.1,-0.39 0.02,-0.81 -0.14,-1.2 z\",\n                        \"LT\" : \"m 530.27,77.87 c 3.05,-1.8 6.58,-0.36 9.84,-0.7 1.85,-0.36 7.4,2.36 5.18,3.35 -2.43,0.07 -1.76,2.97 -2.5,2.64 -2.47,0.5 -5.42,1.45 -7.68,-0.54 0.63,-3.74 -5.3,-0.28 -4.84,-4.74 z\",\n                        \"ZW\" : \"m 541.96,285.73 c 2.74,0.77 5.77,1.04 7.14,-2.41 3.04,-0.69 3.3,-4.86 7.14,-3.72 1.14,1.68 5.13,2 7.14,3.02 -0.44,2.08 0.95,4.75 -0.74,6.34 1.42,1.95 -0.04,3.83 -0.8,6.08 -0.79,2.91 -4.6,4.41 -7.82,3.01 -1.93,-1.33 -5.66,-1.22 -5.41,-4.73 -2.57,-1.13 -5.49,-4.18 -6.64,-7.58 z\",\n                        \"LK\" : \"m 693.19,214.25 c -1.23,4.36 3.86,6.27 5.71,2.37 0.06,-3.36 -1.74,-4.91 -3.65,-7.84 -2.19,-1.63 0.81,0.69 -1.39,-0.75 -0.85,0.54 3.19,1.28 0.23,0.77 -0.38,1.5 -0.88,4.98 -1.19,3.97 -0.03,0.52 0.24,0.98 0.29,1.48 z\",\n                        \"IL\" : \"m 566.95,147.85 c 1.69,-1.7 1.42,-5.7 3.8,-5.71 1.34,3.02 -2.94,1.31 -1.6,3.99 0.15,0.56 -1.06,2.06 1.16,0.9 -0.44,1.53 -1.37,8.03 -2.13,3.85 -0.53,-0.96 -0.8,-2.03 -1.22,-3.03 z\",\n                        \"LA\" : \"m 749.45,178.39 c 1.02,-1.22 1.78,-2.83 3.12,-3.15 1.11,2.39 2.6,-0.56 1.04,-2.12 1.25,-2.09 3.1,1.91 3.89,1.63 -0.97,2.9 2.55,2.37 3.97,2.31 0.59,1.1 0.04,1.11 1.49,2.11 -0.53,1.53 -4.67,1.18 -1.64,2.82 2.73,0.82 3.04,3.56 5.51,5.17 0.43,2.43 3.48,2.66 2.68,4.57 2.36,1.37 -0.81,4.58 -2.32,2.97 -1.92,0.35 -0.3,2.73 -2.87,1.18 -0.88,-0.47 0.94,-2.86 0.23,-3.61 0.57,-1.96 -3.33,-2.69 -2.12,-5.69 -1.55,-2.5 -3.98,-3.46 -5.69,-1.23 -1.67,-3 -5.88,3.86 -4.29,-0.92 0.59,-2.17 0.5,-4.24 -2.02,-4.08 0.79,-1.19 -0.1,-2.42 -0.98,-1.97 z\",\n                        \"KP\" : \"m 816.84,122.85 c 2.59,-1.48 5.26,-2.72 7.31,-4.69 0.86,1.47 5.12,1.43 3.03,-0.63 2.63,0.4 4.45,-1.79 5.8,-2.67 2.59,2.04 0.14,1.73 -1.31,3.76 0.92,3.33 -4.08,3.75 -6.09,5.33 -1.11,1.84 1.86,1.45 2.29,3.44 -1.5,1.01 -3.8,-0.13 -4.84,1.89 -1.84,0.14 -2.7,-0.88 -3.21,0.14 0.39,-0.52 -1.55,-0.36 -0.73,-0.93 -2.55,0.34 0.91,-2.31 1.1,-1.75 -2.6,0.02 1.52,-3.15 -1.87,-2.73 0.01,0.5 -1.79,-0.5 -1.45,-1.17 z\",\n                        \"GR\" : \"m 545.17,126.04 c -1.44,-0.12 -1.9,-1.54 0.25,-0.61 0.92,0.89 -0.13,0.09 -0.25,0.61 z m -6.34,10.56 c -3.34,-0.05 -0.37,-2.12 0.68,-0.43 1.73,-0.29 5.08,0.32 4.88,0.94 -2.12,0.27 -3.69,0.25 -5.56,-0.51 z m -1.48,-9.18 c -0.69,-1.04 -2.82,-1.58 -0.46,-1.36 1.55,0.16 4.59,4.29 1.65,1.57 -0.35,-0.18 -0.9,0.16 -1.19,-0.22 z m -8.51,0.26 c 2.24,1.03 -1.41,1.08 0,0 z m -1.41,-3.66 c 2.05,-0.05 2.05,-4.11 4.6,-3.45 2.38,-1.45 5.12,-0.88 7.76,-1.89 1.35,1.16 4.93,1.21 4.87,-0.43 2.5,0.73 -0.92,4.05 -2.73,2.24 -1.49,-0.14 -5.95,0.56 -2.92,1.66 1.81,1.58 -3.07,-1.43 -0.56,0.99 -0.98,-0.49 -2.57,-1.08 -0.83,0.16 -1.52,-0.38 -3.14,-3.48 -2.86,-0.2 1.16,1.09 2.41,3.54 0.78,1.83 -0.6,0.79 1.08,1.42 -0.98,1.31 1.52,0.94 4.64,0.97 4.02,3.5 -1.81,-1.95 -3.74,-0.36 -1.59,0.63 -1.18,0.51 -2.83,-1.15 -1.28,1.18 1.3,3.13 -1.11,-0.93 -1.39,1.49 -0.75,-1.26 -1.3,-1.77 -2.09,-1.03 0.25,-1.99 -3.16,-3.34 0.09,-4.11 1.16,0.66 5.81,1.14 2.4,-0.11 -1.57,-0.44 -4.82,0.91 -5.22,-1.74 2.97,0.28 -1.98,-0.52 -2.05,-2.04 z\",\n                        \"TM\" : \"m 617.39,118.21 c 2.91,-3.16 6.68,-0.85 9.06,1.25 2,-0.16 4.6,1 3.87,-1.84 1.02,-1.07 4.14,-1.36 3.4,-1.45 -0.27,-1.6 4.14,0.52 4.74,1.36 -0.37,2.12 2.58,2.39 4.69,2.11 1.64,3.69 4.97,5.76 8.74,7.21 1.42,1.64 6.38,0.8 4.33,3.74 -2.75,-1.31 -4.57,1.15 -5.97,3.21 -3.12,0.45 -2.77,2.05 -5.58,2.97 -1.73,-1.19 -3.96,-1.24 -3.1,-4.16 -3.28,0.38 -4.88,-3.4 -8.24,-3.13 -2.82,-1.64 -5.28,-1.49 -8.31,-0.63 -1.37,1.94 -4.87,2.62 -3.74,-0.96 1.59,-2.44 -3.48,-3.29 -1.37,-3.57 1.62,-0.1 -0.89,-1.71 -1.74,-1.3 0.12,-1.81 1.08,-3.34 -0.79,-4.81 z\",\n                        \"EC\" : \"m 247.34,241.79 c 0.56,-1.35 0.41,-4.3 1.59,-4.54 -0.23,-1.3 1.79,-2.25 0.9,-3.85 2.19,-0.37 3.44,-2.62 5.64,-0.29 1.79,0.8 3.64,2.47 5.35,1.47 1.38,1.31 2.48,1.02 1.69,1.84 2.06,2.8 -2.75,6.82 -6.09,7.42 -2.67,0.7 -1.82,6.03 -4.71,5.36 -0.68,-1.98 -4.7,-0.73 -2.12,-2.81 -0.74,-1.59 1.65,-2.89 1.07,-5.11 -0.88,2.01 -0.14,0.99 -1.14,1.43 -0.11,1.34 -1.7,-0.51 -2.16,-0.92 z m 2.63,1.34 c -1.83,1.11 0.51,0.96 0,0 z m -32.07,-7.51 c 2.44,0.88 -1.18,3.78 2,2.57 0.3,-0.63 -1.01,-3.21 -2,-2.57 z\",\n                        \"BJ\" : \"m 474.11,205.49 c 0.64,-2.71 4.8,-1.26 4.62,-4.35 2.63,-0.84 4.19,3.7 3.22,5.34 -0.27,2.61 -3.28,3.79 -2.53,6.89 0.52,2.5 0.56,5.54 -3,4.76 -0.07,-2.01 0.47,-6.02 -0.42,-8.64 0.25,-2.12 -1.84,-2.22 -1.88,-4 z\",\n                        \"SI\" : \"m 509.32,106.07 c 0.74,-0.2 -0.9,-1.4 0.83,-1.36 2.87,1.35 6.07,-2.33 7.79,0.18 -2.08,-0.27 -3.04,2.13 -3.97,2.88 -1.55,-1.27 -4.75,1.19 -3.91,-0.87 -0.71,-0.11 -0.23,-0.5 -0.75,-0.83 z\",\n                        \"NO\" : \"m 485.82,62.84 c 1.26,-0.31 3.08,-0.04 0.79,-0.26 1.08,-0.49 -1.94,-0.11 0.31,-0.42 -2.73,-0.44 1.77,-0.61 2.54,-0.58 2.96,-0.13 -3.4,0.05 -2.8,-0.32 0.18,-0.21 -1.19,-1.24 0.51,-0.14 -0.08,-1.13 3.05,0.62 1.67,-0.79 1.3,0.53 1.37,-1.1 2.56,0.3 -0.34,0.37 1.88,-0.53 -0.51,-0.78 -2.77,-0.03 0.17,-0 -0.91,-0.23 -1.15,-0.92 4.72,0.65 2.98,-0.4 2.37,-0.32 1.02,-0.03 -0.53,-0.15 2.37,-0.31 -2.71,0.23 -0.41,-0.24 -1.95,-1.52 6.06,1.08 2.37,-0.39 -0.46,-0.81 2.72,0.79 0.78,-0.16 -0.54,-0.18 0.32,-0.58 1.65,-0.55 -2.26,-0.71 3.37,-0.25 0.63,-0.7 2.72,-0.69 1.59,0.96 3.94,0.08 1.32,-0.25 -0.46,-0.58 2.03,-0.94 -0.86,-0.59 0.82,-0.83 -0.41,-0.8 -2.29,0.72 0.68,0.45 -1.89,1.28 -2.18,0.93 -1.04,-0.98 -1.87,-0.36 -2,0.03 2.16,-0.67 0.46,-0.77 1.65,-2.29 5.41,-0.44 4.07,-1.96 1.06,-0.19 0.73,-0.91 2.73,-0.54 -1.33,-0.24 -4.9,0.82 -2.23,0 -1.27,-0.01 0.67,-0.28 0.88,-0.6 1.91,-0.35 -0.95,0.49 1.42,0.09 2.26,-0.94 -0.76,0.24 -0.5,-0.61 -1.44,-0.76 2.85,0 0.29,-1.01 0.56,0.15 1.66,-1.02 1.99,-0.79 -3.53,-0.71 5.72,-0.93 1.35,-0.94 -2.63,0.49 0.03,-0.21 -0.97,-0.15 -2.11,-0.8 3.27,-0.55 -0.19,-0.97 1.21,-0.03 -0.25,-0.25 1.69,-0.19 -1.98,-0.16 1.79,-0.11 -0.69,-0.54 1.29,-0.53 3.4,-0 2.48,-0.74 1.64,-0.23 4.96,0.02 1.35,-0.35 -2.63,0.16 0.76,-0.49 -0.08,-0.73 0.18,0.17 3.04,0.75 2.27,-0.03 -3.82,0.08 2.74,-0.95 -1.72,-0.34 -2.44,0.43 1.74,-0.48 -0.75,-0.43 0.35,-0.01 5.19,-0.57 1.31,-0.54 0.83,-0.93 3.01,0.03 2.66,0.31 -0.19,-0.22 2.1,-0.43 0.06,-0.61 0.73,-0.28 -1.14,-0.71 1.36,-0.05 -2.96,-1.35 2.82,0.09 2.15,-0.69 2.17,-0.11 -5.74,0.1 -1.42,-0.83 2.36,0.29 -0.05,-0.37 1.87,-0.17 -1.1,-0.4 1.91,-2.29 2.33,-1.5 2.88,0.47 -2.03,-0.96 1.02,-0.36 2.6,0.67 0.2,0.31 0.52,-0.27 -0.36,0.29 -0.21,-1.03 1.65,-0.76 -0.92,2.87 1.93,-2.06 1.63,0.51 -2.83,1.89 2.37,-0.36 0.96,0.08 0.67,-1.45 1.02,-0.35 2.54,-0.88 2.11,1.14 1.05,-0.53 0.67,-0.46 -4.2,-0.81 2.66,-0.25 1.5,-0.5 1.56,-0.3 1.82,0.72 0.1,0.55 1.62,-0.21 3.8,0.73 2.37,-0.46 0.51,-0.18 3.93,-1.1 3.42,-1.5 -0.84,-0.62 4.06,-0.76 3.55,-0.03 -2,-0.06 -2.62,3.07 -0.8,1.13 1.27,-1.29 4.18,-1.93 3.05,-0.85 0.08,1.6 1.9,-0.07 2.23,-0.36 1.63,-0.17 -1.82,-0.38 0.53,-0.66 1.45,-0.88 4.14,0.8 0.91,0.71 1.69,0.19 -1.86,0.61 0.84,0.26 0.39,0.46 -2.03,0.69 0.52,0.55 -1.21,1.59 2.05,-2.74 2.68,-0.49 2.12,-0.11 2.92,0.19 4.66,0.99 -1.47,1.05 -6.54,0.26 -5.78,0.68 2.79,0.32 1.98,1.46 4.58,0.78 2.52,0.96 -1.66,0.18 -2.23,1.2 -1.23,0.67 -3.88,1.43 -1.48,-0.43 -2.59,-1.43 -7.34,-2.38 -9.52,0.4 -0.81,3.51 -5.16,0.84 -7.65,2.03 -2.68,-0.31 -4.71,-2.68 -6.62,-1.11 -2.13,-0.47 -0.16,0.84 -1.93,1.38 1.27,1.67 -5.73,-1.77 -5.14,1.27 -2.3,-0.22 -6.17,1.15 -4.97,3.04 -1.87,1.2 -3.41,2.53 -4.9,2.95 1.17,2.75 -4.41,3.41 -1.14,4.9 -2.33,0.59 -6.57,0.68 -5.72,4.14 0.71,1.64 -0.32,3.59 2.18,3.87 -0.48,1.36 -2.55,1.05 -0.79,2.71 -0.75,1.79 -3.15,1.78 -2.61,4.23 -1.65,-0.06 -3.3,-1.91 -2.68,-2.73 -0.44,1.06 -1.26,1.03 -0.85,1.82 -2.91,0.76 -2.77,1.61 -6.29,3.04 -1.51,0.83 -4.6,0.12 -4,-0.19 -3.57,-0.14 -3.22,-2.92 -1.57,-1.96 3.17,-0.69 -1.7,0.39 -0.07,-0.73 2.73,-0.65 -2.07,0.06 1.27,-1.03 -1.4,0.45 -2.04,0.14 -1.83,0.63 -1,-0.98 -1.25,1.04 -1.45,-0.77 0.61,0.23 -0.14,0.15 1.61,-0.14 -0.48,-0.38 1.39,-0.2 -0.64,-0.45 1.16,-0.92 2.5,-1.84 2.68,-1.25 2.87,-2 -2.26,0.61 -2.59,0.33 0.21,-0.74 -2.15,0.38 -1.05,-1.04 1.41,0.37 0.99,-0.89 -0.44,-0.22 -1.36,-1.08 2.3,-0.14 -0.5,-0.98 -0.02,-0.36 4.94,-1.06 5.19,0.03 0.68,-0.38 2.26,-0.56 1.62,-1.31 0.43,-0.23 -1.2,1.23 -1.35,0.52 -0.78,-0.42 -6.28,1.02 -4.57,-0.44 1.71,-0.1 -0.99,0.12 -0.92,-0.13 z m 58.18,-26.95 c 1.4,-0.42 -3.26,-0.53 -0.61,0.12 z m -7.07,0.64 c -1.13,-0.1 -1.93,0.41 -4.02,0.38 -1.04,0.42 3.23,0.58 4.02,-0.38 z m -12.74,3.08 c 0.69,-0.98 -1.04,0.02 -1.39,0.06 0.27,-0.41 -1.24,1.38 1.39,-0.06 z m -5.05,1.12 c 0.92,-0.07 -1.34,0.93 1.02,0.37 3.71,-0.07 0.34,-1.81 -0.11,-0.84 1.43,0.21 -2.1,-0.12 -0.91,0.47 z m -4.35,1.58 c -0.36,0.38 -1.74,1.62 0.24,0.71 -0.45,1.34 5.44,-1.86 1.36,-0.69 -0.61,1.24 0,-1.89 -1.16,-0.11 l 0.23,0.1 z m -1.49,0.33 c 3.52,-0.83 -1.42,-1.19 -0.91,-0.12 1.28,-0.2 1.46,-0.52 0.91,0.12 z m -3.59,1.17 c 0.03,0.68 2.78,-0.85 0.05,-0.35 0.45,0.42 -0.75,0.04 -0.05,0.35 z m 20,-26.23 c 1.3,0.65 6.35,-1.22 4.36,0.4 1.8,0.27 5.88,-1.01 6.15,-1.4 -0.88,-0.35 -5.46,0.11 -3.2,-0.94 -1.86,-0.19 -5.96,-0.41 -6.72,0.29 2.63,0.3 0.29,1.07 -0.6,1.64 z m -6.29,-6.99 c -3.2,0.5 3.52,1.05 4.83,0.56 1.93,-0.27 7.79,0.02 2.96,0.31 -1.05,-0.01 -3.58,-0.05 -1.09,0.23 -1.45,-0.02 -5.49,-0.27 -2.02,0.45 3.57,0.43 6.3,-0.3 8.6,0.78 3.9,-0.08 6.43,-0.98 9.59,-1.82 2.52,-1.37 -3.26,-1 -4.41,-1.29 -3,-0.64 -3.17,0.19 -6.22,0.31 1.44,-1.86 -2.02,-0.77 -2.25,0.49 -1.74,-0.8 -1.66,-0.54 -4.15,-0.9 -1.83,-0.94 -3.16,-0.83 -2.83,0.02 -2.44,-0.38 -0.91,0.06 -1,0.53 -1.9,-0.54 -4.83,-0.28 -3.25,0.09 0.33,0.22 2.75,0.09 1.23,0.24 z m -20.56,2.17 c 1.43,0.89 1.1,-0.97 2.49,0 -2.27,0.33 1.45,0.91 -1.14,0.67 -3.69,0.56 6.63,1.44 1.44,1.39 1.84,1.17 7.55,0.74 6.04,-0.63 1.64,0.22 3.04,-0.75 2.54,0.55 2.3,0.1 4.53,-1.15 3.41,0.1 3.93,0.29 -3.43,-0.03 -4.61,0.87 -1.97,0.48 -2.26,-0.11 -3.99,0.62 3.09,1.01 6.56,-0.07 9.79,-0.05 0.24,1 -6.32,0.02 -5.92,0.87 1.73,-0.02 5.43,0.79 1.74,0.25 -1.88,-0.45 -6.66,0.09 -2.25,1.16 1.45,0.41 7.32,0.15 3.01,0.52 -1.21,0.56 4.19,1.65 3.74,0.18 1.03,-1.41 3.41,-2.01 4.35,-3.3 1.63,-0.1 0.89,-1.78 3.66,-1.56 1.49,0.13 6.64,-0.54 2.61,-0.84 -2.92,-0.48 -5.6,-0.41 -6.96,-1.93 -0.79,0.3 -3.04,0.67 -1.18,-0.4 -3.75,-1.72 -6.96,10e-4 -4.33,2.1 -1.55,-0.66 -5.56,-3.79 -6.28,-0.8 -1.96,-0.68 -2.15,-0.85 -4.29,-0.82 1.67,-0.05 6.21,-0.84 1.93,-0.68 -2.82,0.37 -4.57,-0.1 -6.49,0.69 0.91,-0.1 -1.62,0.23 0.7,1.03 z m 2.37,2.41 c -1.6,-0.8 -6.01,-2.2 -2.23,-0.37 0.19,0.02 3.62,1.26 2.23,0.37 z\",\n                        \"MD\" : \"m 545.77,99.88 c 2.16,-1.57 4.18,0.57 5.96,0.53 1.43,0.26 2.23,2.93 1.96,2.89 2.88,1.16 0.75,2.71 -0.8,1.4 -0.73,1.37 -3.41,5.07 -3.05,1.08 1.27,-2.27 -2.61,-4.76 -4.07,-5.9 z\",\n                        \"LB\" : \"m 569.26,142.56 c 0.93,-1.57 2.6,-6.43 4.07,-3.4 -0.89,1.41 -2.1,3.21 -4.07,3.4 z\",\n                        \"NP\" : \"m 694.09,154.14 c 0.44,-1.98 1.75,-3.37 3.45,-3.38 2.26,-2 5.02,3.31 7.74,2.77 1.15,2.11 3.46,1.87 4.73,2.94 1.1,0.54 2.98,0.38 5.37,0.84 1.99,-0.52 0.5,2.96 0.69,3.95 -2.76,0.44 -5.03,-0.77 -7.68,-0.9 -2.02,-2.49 -4.77,-1.25 -7.1,-2.59 -2.56,-0.64 -5.72,-2.18 -7.2,-3.63 z\",\n                        \"ER\" : \"m 572.96,193.02 c 1.46,-3.19 1.28,-6.2 5.2,-7.02 2.35,-1.7 2.05,5.09 3.76,6.81 0.36,0.9 0.66,-2.05 1.19,0.41 2.35,0.45 4.82,3.36 6.16,4.47 1.19,1.37 3.37,3.11 0.05,2.85 -2.3,-2.41 -4.43,-6.15 -8.29,-5.72 -0.95,-0.46 -2.9,0.78 -4,-1.06 -0.53,1.56 -0.73,2.6 -2.01,1.23 -1.79,1.42 -2.11,-0.3 -2.05,-1.98 z\",\n                        \"US\" : \"m 39.4,68.72 c 2.12,0 5.18,-0.56 5.03,-1.27 -1.37,0.24 -4.62,-0.06 -5.03,1.27 z m -2.83,3.6 c 1.56,1.95 3.92,0.16 0.44,-0.05 z m 93.97,55.56 c -2.1,-1.68 -2.06,-4.52 -3.45,-6.43 1.29,-1.2 -0.18,-3.87 -0.51,-5.8 0.03,-2.69 1.18,-2.04 1.07,-4.81 0.64,-2.31 0.08,-5.98 2.07,-5.16 -1.83,-0.29 -2.6,-0.64 -1.21,-1.37 -2.05,-0.06 0.71,-1.42 -0.98,-0.82 -0.61,-1.79 -3.25,-5.33 0.69,-3.45 2.66,0.08 4.48,0.44 2.04,2.21 0.91,0.69 0.04,-1.37 1.69,-1.13 -0.1,1.81 -0.8,1.18 -1.33,2.02 1.29,0.4 2.83,-2.18 1.4,-3.55 -1.06,-0.23 0.75,-0.82 -0.68,-1.65 4.14,-0.26 8.43,-0.05 12.63,-0.12 21.22,0 42.45,0 63.67,0 0.91,-2.58 1.69,1.99 3.95,1.21 2.54,-0.61 3.95,0.79 6.01,1.34 1.49,-0.47 5.36,-0.02 5.2,0.42 -2.03,0.48 -5.87,2.25 -6.06,3.48 1.45,0.16 3.57,-1.22 3.22,0.14 2.55,0.31 6.38,-2.29 7.03,-0.57 2.84,1.09 5.88,0.96 9.07,0.22 -0.19,1.54 2.5,0.4 2.58,1.82 -0.46,1.52 -5.21,-0.99 -7.18,1.42 0.41,-1.34 -2.3,-0.14 -2.59,1.75 -1.95,1.22 -0.74,1.2 0.68,0.46 -0.91,2.73 -2.75,6.57 -0.09,8.99 5,-0.33 1.65,-5.17 3.02,-7.5 -0.02,-1.89 2.7,-2.63 2.22,-1.81 -0.32,1.22 1.23,-2.01 1.37,-1.35 0.55,-2.08 6.21,0.31 4.66,3 -1.91,0.84 -2,3.23 0.26,1.15 2.45,-1.08 2.74,4.46 0.99,4.09 -1.5,1.24 -2.29,2.82 0.36,2.78 -1.13,0.65 4.19,-0.03 5.39,-1.1 2.29,-0.52 5.75,-1.94 5.26,-3.92 2.22,-0.25 8.31,0.81 7.45,-2.17 0.96,-2.37 6.22,-3.12 9.36,-2.62 3.05,0.22 5.28,-0.17 7.03,-2.44 0.47,-2 2.25,-5.46 4.42,-3.82 3.84,-1.28 1.87,4.47 3.91,5.86 2.36,0.89 -1,1.61 -1.92,2.03 -1.09,-0.48 -1.77,0.7 -2.37,-0.16 -1.62,2.63 -2.84,0.88 -2.92,1.85 -0.57,-0.52 -2.76,2.76 -2.77,3.72 -0.5,1.65 3.15,2.57 2.26,1.27 1.44,2.18 -2.44,0.77 -2.26,1.3 -1.36,-0.01 -0.81,-0.79 -2.35,0.69 -1.85,-0.55 -5.89,1.74 -5.94,0.93 0.08,-1.86 -0.43,1.42 -0.64,1.54 1.07,0.31 0.31,2.04 -0.01,1.54 -0.9,2.28 -2.37,3.6 -3.89,0.92 2.26,-2.12 -1.68,0.74 0.9,2.02 1.32,1.16 -1.51,4.32 -2.25,4.43 1.62,-2.59 -0.02,-2.12 -0.66,-3.71 1.06,0.17 -0.7,-0.53 0.22,-0.82 -1.12,-0.18 2.34,-2.82 0.01,-1.31 -1.19,0.08 -0.93,0.86 -0.68,2.93 -1.98,-2.35 1.7,2.29 -1.13,-0.09 -2.04,0.95 0.34,-3.01 -1.33,-0.26 1.01,0.12 4.53,3.02 1.45,1.58 -0.68,-0.81 3.05,3 0.07,1.22 2.49,1.99 0.13,0.79 -1.37,0.35 2.31,1.44 3.97,0.8 4.64,4.16 -1.47,-3.21 -0.73,-1.15 -1.05,-1.15 -0.61,0.62 -1.78,0.54 -2.16,0.44 0.48,0.52 2.54,0.87 2.11,0.85 2.07,-0.15 -1.61,1.89 -1.63,1.17 -2.95,-1.31 2.28,1.44 -1.22,0.87 1.2,0.56 2.95,0.18 0.85,1.03 -3.03,-0.38 -2.37,2.59 -5.29,2.47 -1.86,1.13 -1.92,2.25 -3.66,3.11 -2.2,1.15 -1.84,0.89 -2.24,1.35 -0.94,1.12 -1.34,1.62 -1.66,2.36 -0.67,0.46 -0.34,3.97 0.86,5.96 1.3,1.56 1.85,5.71 0.94,2.06 -0.69,0.74 2.79,4.86 1.56,7.37 0.64,2.75 -3.75,2.38 -2.46,1.67 -1.2,-0.96 -3.12,-3.38 -2.47,-3.59 -0.87,0.38 -0.31,-1.65 -1.14,-0.72 -1.58,-0.99 -0.03,-3.68 -0.91,-2.8 -1.33,1.64 1.35,-4.09 -1.62,-4.2 -1.3,-3.9 -4.43,-0.17 -5.84,-1.39 -1,-1.43 -0.58,-0.62 -3.17,-1.53 2.66,-0.46 -3.13,0.42 -1.44,-0.27 -0.33,-0.07 -1.32,0.56 -1.31,0.44 -1.8,1.72 -0.82,-2.43 -2.08,-0.11 -2.05,0.26 -4.43,0.11 -5.98,0.62 1.83,0.12 1.44,0.49 2.23,0.54 1.48,0.19 -1.78,1.62 1.17,1.98 0.42,2.21 -1.79,-1.1 -2.75,-0.55 0.67,1.59 -3.11,0.78 -3.19,-0.15 -1.68,-1.66 -4.03,1.09 -5.44,-1.14 0.53,-0.41 -2.14,1.69 -1.44,-0.17 0.3,1.13 -4.08,2.03 -1.94,1.22 -0.53,-0.07 -2.13,-1.1 -1,0.52 -2.02,1.83 -3.54,2.46 -3.8,2.22 -1.35,-0.93 -0.48,0.94 -1.72,0.68 -1.48,0.86 -0.03,0.86 -1.96,1.41 2.07,1.13 -2.37,1.66 0.19,1.61 -1.17,1.85 2.48,5.04 -1.08,3.42 -4.63,0.08 -4.65,-5.18 -7.45,-7.69 -1.23,-3.51 -6.12,-3.84 -7.55,-0.56 -3.97,-0.74 -4.02,-5.1 -7.47,-6.6 -2.22,-2.17 -5.82,-1.46 -7.53,0.12 -3.92,0.02 -7.79,0.07 -11.46,-1.56 -4.73,-1.54 -6.98,-3.2 -12.12,-1.91 -1.1,-3.53 -5.01,-4.7 -8.26,-5.41 -1.69,-0.62 -1.71,-3.37 -3.9,-4.43 -1.73,-0.97 0.03,-2.81 -2.33,-3.35 -1.29,-2.34 0.66,-0.68 0.52,-1.17 0.25,-2.59 -2,0.3 -2.1,-1.48 0.73,0.67 -0.18,-0.45 -0.31,-0.41 z M 104.4,80.81 c 0.33,1.25 2.04,0.65 1.2,-0.13 -0.11,-0.61 -0.94,-0.94 -1.29,-1.14 -0.46,-0.02 2.06,0.19 -0.19,-1.1 -0.89,-0.84 -3.75,-1.73 -2.38,-0.68 -2.16,0.77 1.6,-0.15 0.42,1.52 1.05,-0.32 1.26,0.87 0.18,0.86 0.69,0.15 1.7,0.05 2.06,0.68 z m 0.1,-3.67 c -2.34,0.7 2.58,1.37 -0.2,0.35 l 0.21,-0.12 z m -3.29,-0.28 c 2.41,-0.24 -0.19,-1.07 1.79,-0.84 -2.17,-1.81 -3.48,-1.06 -1.79,0.84 z m -7.89,-4.1 c 1.12,1.18 2.64,1.85 1.61,0.35 1.83,1.35 4.07,0.41 1.03,-0.14 -1.4,-0.69 2.07,0.54 1.38,-0.34 -1.51,-0.94 -1.71,0.28 -2.26,-0.83 -2,-0.35 -1.08,1.03 -1.29,0.8 -0.66,-0.5 -1.34,-0.24 -0.47,0.15 z m 6.37,5.31 c -0.01,-0.77 1.79,-2.12 0.45,-1.96 -1.55,-1.36 -0.65,0.17 -0.73,1.05 0.26,-0.11 -0.42,0.78 0.28,0.91 z m -2.69,-1.66 c 0.4,-1.03 1.59,2.83 1.3,-0.2 -0.84,-2.96 -3.62,-2.69 -1.9,-0.7 -0.6,0.36 1.04,0.37 0.6,0.89 z M 0.07,57.92 c -0.4,-1.9 5.96,0.26 2.01,-0.03 -1.59,0.66 -0.57,0.63 -2.01,0.03 z M 20.67,80.91 c -1.34,-0.5 -1.14,0.58 -1.77,0.11 1.22,-0.83 4.87,-3.75 6.46,-2.6 0.35,0.4 2.71,0.41 1.19,-0.48 2.49,-2.14 5.1,-1.84 7.04,-4.16 2.94,1.25 -1.15,-2.12 2.2,-1.81 -3.58,-0.13 3.7,-4.04 -0.4,-1.86 -1.86,1.57 -4.72,-0.66 -2.12,-0.48 -2.6,-1.73 -1.27,3.51 -3.8,0.64 -1.82,-0.72 -4.13,-0.54 -6.71,0.48 -0.61,-0.02 1.89,-1.72 -0.33,-1.64 1.49,-1.38 -2.1,-3.72 -0.13,-4.18 -1.65,0.26 -0.43,2.97 -3.37,2.31 -2.26,0.51 -4.6,-1.57 -5.32,-2.26 0.81,-1.41 2.91,0.03 2.49,0.1 0.64,-0.75 3.62,0.47 1.28,-0.66 1.91,-0.57 -5.18,0.24 -3.21,-0.77 -1.12,-1.18 -0.77,0.65 -2.64,-0.74 1.02,-0.52 -2.33,-0.86 0.32,-0.9 -0.94,-0.56 2.18,-3.04 3.26,-2.16 -1.33,-0.27 1.28,-1.29 -0.53,-0.44 -0.88,-1.58 1.84,-0.74 0.88,-1.63 2.88,-0.58 1.38,1.17 3.97,0.24 1.37,-1.94 7.74,0.22 5.33,-3.41 -2.71,-0.4 2.89,-0.61 0.23,-1.59 -0.7,0.36 -2.98,0.31 -4.67,1.54 -0.62,-0.83 -2.2,-1.05 -0.89,-0.26 -2.9,-1.25 -7.61,1.13 -9.42,-1.3 -3.9,-1.57 3.76,-0.3 -0.4,-1.33 -2.08,0.34 -5.88,-1.45 -2.97,-0.96 1.88,-0.94 3.67,-1.4 5.92,-1.25 -2.66,-0.56 6.5,-2.5 4.29,-0.4 0.32,0.68 5.32,1.26 6.89,0.05 3.27,0.23 -1.44,-0.02 -1.57,-0.95 -3.08,-1.31 0.04,-0.48 1.12,0.3 1.36,0.43 6.18,0.27 2.37,-0.36 -0.73,0.47 -4.09,0.17 -2.23,-0.92 -2.45,-1.03 -4.35,0.94 -7.06,-1.7 -1.65,-1.27 -6.85,-1.73 -6.54,-2.33 2,-2.26 7.61,-1.14 9.13,-2.59 2.26,-3.26 5.43,-2.28 8.87,-3.57 -0.37,1.11 0.32,0.47 1.97,0.2 -3.35,0.42 -1.08,-1.3 -0.36,-0.75 4.21,1.35 7.14,-3.3 10.49,-0.78 -3.14,1.51 0.55,-0.02 1.71,-0.13 1.84,0.3 0.02,1.06 2.4,0.87 2.04,-1.23 7.42,0.57 4.26,0.68 2.93,0.38 5.81,0.31 9.47,0.19 3.54,0.82 7.19,0.78 10.75,1.26 3.13,0.64 5.69,-1.02 8.99,0.57 5.49,-0.45 2.11,5.94 3.07,9.47 0.65,5.66 -0.39,11.42 0.14,17.05 1.93,1.51 5.09,-0.95 5.87,1.33 2.45,1.47 5.47,4.28 7.14,0.99 3.25,-1.67 4.58,2.07 7.43,2.95 2.73,2.04 3.75,5.53 7.2,5.96 2.91,-0.05 4.17,3.88 1.06,4.73 -0.43,-0.14 -1.2,-0.77 0.58,-1.57 -1,1.16 -2.73,-0.19 -0.38,0.05 -1.54,-0.37 -0.74,-3.32 -2.81,-1.78 0.23,-0.76 -2.33,2.61 -1.14,-0.16 0.25,-1.29 2,-0.1 -0.16,-1 0.54,1.59 -2.17,-1.07 -0.19,-0.1 -1.39,-1.21 -1.71,-1.91 -3.82,-2.35 1.92,-0.47 -0.2,-0.37 -0.38,-1.4 2.86,1.19 -1.63,-1.11 1.31,-0.45 -2.03,-0.04 -1.48,-0.27 -2.63,-1.03 2.12,-1.23 -2.64,0.72 -2.56,-1.52 -1.39,-3.25 -1.37,-0.67 -0.21,1.37 -0.78,-0.06 -3.5,-0.43 -1.91,-1.68 -1.16,0.41 -3.82,-0.64 -3.15,0.07 1.24,0.19 3.5,1.5 1.06,1.36 -0.35,0.97 -4.8,-1.66 -5.23,-2.26 -1.97,0.64 -4.62,-2.08 -2.4,-1.81 -0.08,0.76 2.12,-0.31 -0.26,-0.45 -2.5,1.73 -4.67,-0.19 -6.26,0.02 -2.92,-0.98 -7.63,1.05 -8.66,-1.54 1.63,-1.19 -3.96,1.85 -2.33,-0.39 -1.99,0.22 -0.65,-0.38 -2.67,-0.13 3.29,-0.61 -2.25,-0.23 0.86,-1.07 -1.41,0.17 -3.88,0.35 -3.56,0.28 -0.9,1.2 -1.15,-0.87 -0.97,-0.57 -0.84,0.92 -2.12,-0.02 -0.89,0.61 -3.1,0.9 1.81,0.48 -1.22,1.4 3.19,-1.11 0.67,0.89 1.28,0.62 -0.36,1.79 -3.91,0.06 -3.91,1.21 -0.34,-0.05 -2.06,1.11 -2.04,0.69 -1.52,0.4 -2.66,1.72 -4.47,0.64 1.73,-0.82 3.58,-1.19 0.78,-0.91 -1.15,-0.94 2.13,-1.74 0.78,-2.95 1.59,-1.26 6.46,-0.37 6.08,-0.55 -2.11,0 -3.05,-1.57 -0.34,-1.59 -2.86,0.34 -5.31,0.77 -7.89,2.48 -0.42,2.05 -3.85,-0.08 -1.12,1.68 -1.77,0.87 -1.55,0.52 -3.27,1.61 -2.15,0.5 -0.73,0.95 1.12,1.69 -3.04,0.92 -1.89,2.07 -4.37,2.23 -2.09,1.25 -4.42,1.37 -4.9,2.88 -2.63,0.77 -2.93,1.18 -5.09,1.68 -0.74,0.59 1.6,0.19 0.03,1.2 0.26,-0.8 -2.29,0.3 -2.85,0.95 -0.77,-0.7 -2.72,0.37 -4.25,0.69 -2.45,0.36 1.11,-0.77 -1.44,-0.56 -0.68,2 -2.34,1.34 -2.73,1.35 0.35,0.11 0.1,0.54 -0.14,0.36 z m 26.99,-8.45 c 1.93,-0.85 3.42,-0.67 0.41,-1.24 -0.19,0.63 -2.14,0.53 -0.41,1.24 z m -2.98,3.04 c -0.67,1.22 1.57,-0.57 1.01,-0.48 1.9,-0.39 0.78,-0.73 2.64,-0.74 -2.75,-0.74 2.92,0.27 0.56,-1.22 -0.86,-0.19 -2.3,-0.51 -2.04,-0.25 -1.04,0.87 -2.82,-0.49 -1.47,0.92 -0.85,0.3 0.26,0.88 -1.18,-0.24 -3.45,-0.69 0.16,2.92 -0.51,1.47 -1.1,0.14 2.13,-0.32 0.99,0.54 z M 8.31,66.85 c 1.35,0.96 6.08,0.52 3.05,-1.04 -0.44,0.04 -5.38,0.22 -3.05,1.04 z m 17.8,12.93 c -1.12,1.49 1.56,0.1 0,0 z m 36.12,-12.93 c -0.52,1.89 3.71,-2.69 0.58,-0.16 z M 14.45,82.02 c 0.46,1.06 5.29,-0.53 4.55,-0.44 -0.89,-1.32 -3.62,-0.52 -4.55,0.44 z m -7.91,3.79 c 2.65,-0.21 5.15,-1.86 2.83,-2.13 -2.47,0.5 1.02,0.87 -1.38,1.1 1.05,0.67 -3.21,0.78 -1.44,1.03 z M 106.8,80.01 c 0.83,-0.58 0.7,-0.69 0.73,0.13 0.87,0.7 2,-1.92 -0.5,-1.82 0.13,0.39 -0.84,0.05 -0.23,1.69 z m -8.44,-6.19 c 1.08,-0.61 -0.74,2.49 1.17,0.71 1.96,0.03 -1.92,-3.63 0.88,-0.96 -0.99,-2.16 -4.33,-3.14 -2.05,0.25 z m 881.51,16.69 c -0.15,-1.56 3.37,-0.74 0,0 z m 16.68,-33.32 c -2,1.09 -3.57,-1.54 -0.74,-0.51 1.3,-0.8 4.62,0.32 2.98,0.96 -0.08,-0.58 -3.3,-0.68 -2.25,-0.45 z m -10,31.78 c -3.35,0.61 -0.63,0.14 1.28,0.03 0.08,-1.38 -0.06,-0.71 -1.28,-0.03 z m -8.59,1.35 c 2.07,-0.17 2.04,-1.3 0,0 z m -0.77,0.17 c 2.08,-1.56 -1.65,-0.91 0,0 z m -25.36,-3.25 c 3.52,-0.32 -2.58,-1.27 -0.45,-0.18 l 0.19,0.1 z M 40.21,182.25 c 3.59,-0.27 1.71,-4.09 -0.35,-3.14 -0.51,0.81 -0.55,2.33 0.35,3.14 z m -1.97,-4.52 c 3.2,-0.59 -2.98,-2.16 0,0 z M 227.78,102.47 c 1.48,-2.16 -4.13,2.08 0,0 z m 40.46,18.76 c -2.1,0.97 -1.64,-1 1.1,-0.77 1.53,-0.1 2.19,-1.01 1.41,0.06 4.61,-1.37 -1.64,1.1 -2.51,0.71 z\",\n                        \"KZ\" : \"m 635.48,106.92 c 0.85,0.58 0.85,1.1 1.4,0.98 -0.06,1.45 -2.75,-0.73 -1.37,-0.98 m -34.27,-8.19 c 1.87,-1.3 -0.29,-2.91 1.88,-4.33 0.77,-2.08 4.91,3.38 3.99,-0.56 -0.22,-1.67 5.03,-2.02 5.66,-3.84 2.5,1.26 3.81,-0.22 6.2,0.77 2.81,-0.79 4.79,4.77 4.62,1.32 2.54,2.56 4.49,-0.52 7.02,-0.04 1.56,0.8 3.36,-1.01 4.84,0.91 2.25,1.26 2.97,-1.12 5.37,0.13 4.15,-1.28 0.43,-2.62 -1.75,-3.35 -2.3,-0.64 4.55,-0.85 1.32,-2.37 0.62,-1.47 6.13,-0.31 2.29,-1.49 -2.87,-0.18 1.71,-1.17 -1.18,-0.99 -1.25,-1.99 3.47,-0.56 5.06,-1.45 2.11,-0.76 5.14,-0.05 6.85,-1.43 3.21,-0.32 6.7,-0.54 9,-1.89 1.36,-0.49 4.81,-0.11 6.37,0.69 0.83,1.68 -0.1,3.23 2.83,2.23 0.89,-0.92 1.32,1.48 1.88,0.55 -0.43,-0.19 5.25,-0.11 1.72,1.04 2.26,1.53 5.58,-1.12 8.38,-1.86 2.56,-0.65 0.87,0.29 0.7,0.89 3.19,1.36 5.73,3.73 7.7,6.55 0.84,2.51 2.64,3.17 3.86,1.09 1.75,1.5 4.49,2.17 7.47,0.82 2.83,1.04 4.28,4.83 7.79,4.13 1.77,-1.65 1.23,0.86 3.1,1.28 -2.05,-0.27 -2.18,2.4 -4.57,2.28 0.3,1.93 -0.29,4.78 -2.86,3.6 -2.35,0.22 -5.16,-1.75 -5.54,1.95 -1.78,1.45 -0.09,2.31 -0.4,3.3 -2.16,-0.69 -5.75,-0.33 -7.13,0.85 2.3,-0.22 0.81,3.12 2.35,4.62 -1.09,0.68 -1.69,0.94 -1.55,2.8 -3.23,-2.28 -7.38,-2.07 -11.24,-2.07 -2.43,1.3 -7.39,-3.12 -7.37,1.39 -2.92,-1.13 -6.59,-1.72 -8.04,1.07 -1.93,0.67 -5.37,1.79 -5.58,4.09 -1.83,-0.48 -1.91,-2.53 -4.49,-1.42 -1.63,-0.37 -1,-2.74 -2.74,-3.09 1.03,-2.29 -1.64,-3.09 -3.39,-4.11 -2.22,0.8 -4.63,-0.29 -6.91,0.43 -2.26,-0.9 -5.8,-3.2 -5.06,-5.65 -2.74,-0.28 -1.35,-0.29 -0.6,-0.7 -0.37,-0.54 0.4,-0.87 -1.21,-0.94 -0.69,-2.11 -0.39,2.46 -1.53,0.68 -1.61,-0.35 -2.77,1.73 -5.65,1.57 -5.86,-0.35 -2.77,6.16 -3.42,9.74 -0.79,4.85 -4.39,-3.89 -7.64,-1 -1.94,1.39 -3.02,1.34 -1.61,-1.03 0.38,-0.93 -3.8,-0.84 -3.84,-2.55 -0.49,-1.71 -5.18,-3.45 -1.17,-3.16 2.17,0.77 1.7,0.06 0.4,-0.86 0.58,-2.69 6.52,-0.37 5.37,-1.44 -0.75,-0.8 1.98,-4.85 -1.49,-4.23 -2.7,-0.43 -5.14,-0.39 -7.64,1.08 -0.69,-0.24 -2.03,1.33 -3.14,-0.52 3.21,0.38 -1.77,-4.38 -3.24,-2.86 -0.39,0.14 -1.02,-0.86 -0.39,-0.93 -0.16,-0.54 -0.54,-0.79 -1.12,-0.79 -0.49,-0.05 -0.8,-0.43 -0.51,-0.89 z\",\n                        \"SZ\" : \"m 557.32,310.75 c 1.26,2.66 4.82,1.23 3.68,-1.1 -1.1,-2.6 -3.34,-0.91 -3.68,1.1 z\",\n                        \"UZ\" : \"m 634.94,107.63 c 2.49,0.38 1.12,2.32 0.89,2.72 -1.58,0.97 -0.69,-0.89 -0.98,-0.64 1.01,-1.7 -0.67,0.41 0.09,-2.08 z m -7.78,1.44 c 1.67,-0.03 7.15,-2.58 6.73,-0.72 -1.66,2.59 1.05,2.25 2.03,3.18 0.97,0.87 3.67,-0.43 4.43,-1.27 2.09,2.38 4.37,3.47 7.5,2.72 2.67,0.25 5.12,-0.95 6.82,1.84 1.29,-0.11 -0.59,3.17 1.78,2.97 -0.51,3.95 4.61,0.47 4.78,3.45 1.45,-0.04 2.7,-3.27 5.3,-3.4 1.18,-1.19 4.61,-1.27 1.45,-0.08 -3.27,0.81 2.64,3.36 2.68,0.97 0.4,2 6,1.64 2.49,2.82 -1.22,0.94 -3.79,1.37 -6.13,0.45 2.54,-1.53 -0.46,-1.91 -1.88,-0.75 -1.91,-1.12 -0.27,2.46 -2.47,1.25 0.35,-0.03 0.17,2.48 -2.73,1.7 -3.17,1.35 2.25,1.41 0.93,3.28 1.64,1.79 -1.59,4.69 -3.64,3.06 -1.43,-0.27 0.25,-2.77 -2.4,-2.43 -3.38,-1.17 -7.08,-2.94 -9.81,-5.29 -0.68,-3.64 -3.37,-3.1 -6.13,-3.51 0.41,-2.53 -2.07,-2.53 -3.94,-3.75 -2.78,-0.67 0.42,1.77 -1.96,0.57 -0.85,1.13 -3.88,1.11 -2.72,3.36 -5.77,1.58 -1.93,-7.55 -3.09,-10.4 z\",\n                        \"MN\" : \"m 715.47,97.3 c 2.21,-1.36 4.58,-0.74 6.08,-2.4 2.56,-0.79 5.4,-2.44 7.78,-2.08 1.76,0.76 4.35,0.26 5.77,2.15 3.17,-0.53 7.33,2.18 9.44,-1.13 -2.94,-2.15 1.68,-5.81 3.83,-4.23 2.9,1.17 7.1,0.22 7.76,3.94 3.36,2.26 6.88,-0.66 10.43,0.34 3.49,0.12 5.14,3.12 8.55,3.04 3.6,0.7 7.68,-0.1 10.9,-1.49 3.04,-2.41 6.37,0.05 9.52,0 -1.05,1.66 -1.83,3.52 -3.06,5.03 1.09,1.42 4.03,0.25 5.64,0.57 2.34,-2.62 9.85,4.62 3.86,3.15 -3.45,-0.03 -6.71,0.89 -8.92,3.33 -3.61,-0.16 -6.31,3.89 -9.99,1.24 -2.64,0.18 -2.1,2.81 -0.75,3.9 -3.19,1.47 -5.91,4.43 -9.81,3.6 -3.87,-0.76 -7.6,2.86 -11.05,1.72 -3.6,0.51 -6.48,-2.04 -9.86,-2.18 -3.79,0.03 -7.61,-0.37 -11.42,-0.41 -2.84,-0.96 -3.18,-5.25 -6.83,-5.27 -2.75,-2.39 -8.44,0.46 -9.88,-3.04 2.35,-1.88 -0.41,-6.01 -2.61,-6.12 -1.91,-0.46 -5.47,-1.59 -5.22,-3.38 z\",\n                        \"BT\" : \"m 718.13,159.29 c 1.2,-1.82 3.41,-4.27 5.2,-2.5 2.47,-0.34 3.75,1.18 3.95,3.26 -3.04,-0.14 -6.66,1.35 -9.15,-0.76 z\",\n                        \"NC\" : \"m 927.62,293.83 c 1.71,1.96 4.72,3.95 6.28,4.45 3.03,0.03 -2.85,-2.47 -3.41,-3.67 -1.14,-0.87 -5.55,-4.18 -2.87,-0.78 z\",\n                        \"FJ\" : \"m 971.09,281.12 c -2.23,-0.19 -6.1,3.14 -2.02,1.59 1.31,0.61 2.75,-1.28 0.65,-0.15 0.53,-0.42 0.79,-1.08 1.36,-1.45 z m -5.31,8.4 c 2.08,-0.7 -0.46,-0.63 0,0 z m -1.54,-2.83 c 2.75,1.62 4.33,-1.95 1.39,-2.17 -1.03,-0.23 -3.15,1.74 -1.39,2.17 z\",\n                        \"KW\" : \"m 601,153.77 c 0.56,-1.79 3.68,-4.46 4.28,-1.29 -2.6,-0.55 3.37,3.63 -0.75,2.94 -1.1,-0.89 -1.42,-2.21 -3.53,-1.65 z\",\n                        \"TL\" : \"m 815.54,262.09 c 2.29,-1.66 1.58,1.43 0.01,-0.01 m 3.21,-0.55 c 0.81,0.53 5.95,-1.08 5.79,-2.43 -1.86,0.72 -6.82,-0.29 -5.79,2.43 z\",\n                        \"BS\" : \"m 267.62,176.8 c 0.17,-1.42 3.32,-0.79 0.79,-0.07 z m -8.13,-12.64 c -0.72,-1.44 2.35,2.69 1.06,1.5 0.67,-0.84 -0.6,-1.2 -1.06,-1.5 z m -1.78,-1.31 c -0.33,-0.79 0.35,-3.18 -2.04,-2.86 1.85,-0.39 2.76,1.35 2.04,2.86 z m -1.2,6.06 c 0.21,0.35 -1.09,-1.92 -0.14,-1.27 -0.3,0.42 1.04,-0.31 0.43,1.01 z m -1.5,-4.16 c 3.19,1.57 -1.35,3.32 -0.11,1.1 0.29,-0.29 0.18,-0.76 0.11,-1.1 z\",\n                        \"VU\" : \"m 938.23,281.65 c 1.61,-0.58 -1.85,-0.74 0,0 z m -1.79,0.66 c 2.46,-0.54 -2.57,-3.16 -0.26,-0.67 l 0.07,0.35 z m -1.18,-4.14 c -0.37,-0.81 -1.02,0.61 -1.56,-1.17 -0.6,1.6 1.95,4.29 1.56,1.17 z\",\n                        \"FK\" : \"m 371.78,390.14 c 1.36,-0.97 -1.93,-2.38 -3.9,-2.41 -3.05,-0.14 0.58,0.28 0.74,0.68 1.16,0.24 2.29,0.94 3.16,1.73 z m -65.58,-7.9 c 1.78,1.15 1.13,-0.67 2.93,-0.17 -1.32,-0.96 3.77,-0.56 2.02,-1.48 0.92,-0.53 -1.79,-0.21 -0.97,0.15 -0.75,-1.74 -2.42,0.03 -2.42,0.37 -0.86,-0.02 -0.93,1.02 -1.56,1.13 z m -1.55,-2.08 c 0.91,0.01 0.35,-0.34 0,0 z m 0.78,0.07 c -1.32,0.17 -2.19,-0.12 -0.23,0.83 -3,-0.14 0.37,0.45 -0.87,0.2 -0.08,1.01 -2.44,0.7 -0.81,1.17 1.24,-0.02 6.78,-3.02 1.91,-2.2 z\",\n                        \"GM\" : \"m 425.26,198.03 c 0.71,0.78 4.95,-0.82 1.67,-0.13 -2.57,-0.56 2.45,-0.38 3.36,-1.13 0.97,0.82 5.3,1.12 1.67,1.51 -2.03,-2.19 -5.77,2.16 -6.69,-0.26 z\",\n                        \"QA\" : \"m 612.64,164.51 c -0.22,-1.8 2.78,-3.37 2.25,0.05 0.69,2.01 -2.87,3.02 -2.25,-0.05 z\",\n                        \"JM\" : \"m 254.5,184.26 c 1.77,-2.44 8.32,1.83 4.21,0.87 -1.02,1.21 -2.73,-0.09 -4.21,-0.87 z\",\n                        \"CY\" : \"m 561.46,137.2 c 1.04,-0.9 5.64,-1.47 5.97,-1.65 -1.79,1.36 -1.58,1.89 -3.94,2.84 -0.7,-0.33 -1.76,-0.28 -2.03,-1.19 z\",\n                        \"PR\" : \"m 288.97,185.11 c -1.94,1.26 -5.5,-1.35 -2.16,-1.59 0.95,0.19 4.71,0.05 2.16,1.59 z\",\n                        \"PS\" : \"m 568.89,145.08 c 2.09,-3.37 1.99,4.04 -0.09,1.92 1.69,-1.65 -0.49,0.09 0.09,-1.92 z\",\n                        \"BN\" : \"m 788.31,222.72 c 1.27,-0.22 3.44,-2.27 1.95,0.11 0.51,2.62 -1.33,0.75 -1.95,-0.11 z\",\n                        \"TT\" : \"m 300.22,207.39 c 2.05,-0.48 0.12,-3.15 2.58,-1.96 0.31,2.2 -0.78,1.84 -2.58,1.96 z\",\n                        \"PF\" : \"m 57.69,285.59 c 1.46,0.8 -1.48,-1.8 -0.45,-0.06 z\",\n                        \"WS\" : \"m 991.64,273.63 c -1.72,1.32 3.38,0.32 0,0 z\",\n                        \"LU\" : \"m 487.81,95.39 c 0.65,-2.6 3.8,2.42 0.17,0.89 0.5,-0.17 -0.04,-0.74 -0.17,-0.89 z\",\n                        \"KM\" : \"m 592.41,269.2 c 0.31,-2.77 -1.68,-1.13 0,0 z\",\n                        \"FO\" : \"m 452.8,60.76 c -2.56,-1.32 1.36,1.68 0,0 0.91,0.61 0.44,-0.7 -0.34,-0.19 z\",\n                        \"SS\" : \"m 566.64,207.99 c -0.19,2.08 0.23,4.73 -2.7,4.14 -1.45,2.41 2.99,1.96 3.64,4.3 1.51,1.46 1.41,4.35 3.61,4.48 1.29,3.62 -5.24,-0.17 -6.05,3.95 -2.72,0.1 -4.39,0.87 -6.86,0.14 -1.77,2.62 -3.4,-4.33 -5.5,-1.69 -2.28,0.44 -5.15,-0.75 -5.45,-3.69 -2.8,-1.08 -2.37,-4.15 -5.49,-5.07 0.86,-2.33 -4.24,-1.45 -2.5,-3.64 1.26,-1.32 1.02,-3.42 2.14,-5.03 3.11,-1.81 2.65,4.17 5.98,2.03 1.8,0.07 3.66,2.2 4.99,-0.26 1.68,-0.25 2.29,-3.22 4.19,-0.41 2.39,0.9 4.63,-3.17 4.68,-5.07 -0.07,-1.62 -1.35,-1.85 0.96,-1.89 0.29,-1.86 2.27,-0.18 1.05,1.26 -0.23,2.66 2.99,4.66 2.5,6.51 l 0.51,0.04 z\"\n                    }\n                }\n            }\n        }\n    );\n\n    return Mapael;\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/world_countries_mercator.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires Mapael\n *\n * Map of World by country\n * Mercator projection\n *\n * @source http://www.amcharts.com/svg-maps/?map=world\n *\n * @deprecated : this map will be definitely moved to 'mapael-maps' repository starting from the next major release (3.0.0).\n * You can use instead https://github.com/neveldo/mapael-maps/blob/master/world/world_countries_mercator.js\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('jquery-mapael'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'mapael'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, jQuery.mapael);\n    }\n}(function ($, Mapael) {\n\n    \"use strict\";\n\n    $.extend(true, Mapael, {\n        maps: {\n            world_countries_mercator: {\n                /*\n                 * map-specific constants\n                 * (set by user)\n                 */\n                // Width of the map, in pixel\n                width: 1008.77,\n                // Height of the map, in pixel\n                height: 651.44,\n                // Longitude of the left side of the map, in degree\n                leftLongitude: -169.6,\n                // Longitude of the right side of the map, in degree\n                rightLongitude: 190.25,\n                // Latitude of the top of the map, in degree\n                topLatitude: 83.68,\n                // Latitude of the bottom of the map, in degree\n                bottomLatitude: -55.55,\n                /*\n                 * Transform a longitude coordinate into projection-specific x' coordinate\n                 * Note: this is not in pixel\n                 *\n                 * @param lon longitude value in degree\n                 * @return x' projection-specific value\n                 */\n                _projectLongitude: function (lon) {\n                    // Compute longitude in radian\n                    return lon * Math.PI / 180;\n                },\n                /*\n                 * Transform a latitude coordinate into projection-specific y' coordinate\n                 * Note: this is not in pixel\n                 *\n                 * @param lat latitude value in degree\n                 * @return y' projection-specific value\n                 */\n                _projectLatitude: function (lat) {\n                    // Compute latitude in radian and get its SINUS\n                    var latRadSinus = Math.sin(lat * Math.PI / 180);\n                    return 0.5 * Math.log((1 + latRadSinus) / (1 - latRadSinus));\n                },\n                /*\n                 * Get x,y point from lat,lon coordinate\n                 *\n                 * Principle:\n                 *      (lat, lon) are inputs\n                 *      Projection(lat, lon) = (x', y')\n                 *      Transformation(x', y') = (x, y)\n                 *\n                 * Source: http://jkwiens.com/2009/01/23/miller-projection/\n                 *\n                 * @param lat latitude value in degree\n                 * @param lon longitude value in degree\n                 * @return {x, y} coordinate in pixel\n                 */\n                getCoords: function (lat, lon) {\n                    var self = this;\n\n                    // Project map boundaries with projection (only once for performance)\n                    if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude);\n                    if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude);\n                    if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude);\n                    if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude);\n\n                    // Compute x' and y' (projection-specific value)\n                    var xPrime = self._projectLongitude(lon);\n                    var yPrime = self._projectLatitude(lat);\n\n                    // Compute x and y\n                    var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime));\n                    var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime));\n\n                    return {x: x, y: y};\n                },\n                elems: {\n                    \"AE\": \"m 620.12,393.97 0.5,-0.15 0.11,0.84 2.19,-0.48 2.32,0.08 1.69,0.09 1.92,-2.07 2.1,-1.98 1.77,-1.9 0.53,1.05 0.38,2.44 -1.43,0.01 -0.23,2 0.5,0.42 -1.27,0.6 -0.01,1.25 -0.82,1.26 -0.07,1.21 -0.57,0.64 -8.42,-1.52 -1.08,-3.08 z\",\n                    \"AF\": \"m 647.13,357.15 2.86,1.3 2.11,-0.46 0.59,-1.55 2.21,-0.52 1.58,-1.05 0.56,-2.79 2.36,-0.68 0.44,-1.25 1.33,0.94 0.84,0.11 1.56,0.03 2.12,0.74 0.85,0.42 2.03,-1.12 0.95,0.67 0.9,-1.6 1.68,0.07 0.43,-0.52 0.3,-1.43 1.21,-1.23 1.51,0.8 -0.3,1.09 0.85,0.17 -0.27,2.95 1.11,1.15 0.98,-0.74 1.25,-0.34 1.74,-1.57 1.93,0.26 2.9,0 0.5,1.01 -1.64,0.39 -1.42,0.65 -3.22,0.4 -3.01,0.73 -1.64,1.51 0.66,1.46 0.33,1.7 -1.4,1.43 0.12,1.3 -0.77,1.22 -2.67,-0.11 1.1,2.22 -1.78,0.85 -1.19,2 0.15,1.98 -1.1,0.92 -1.03,-0.3 -2.15,0.43 -0.3,0.91 -2.09,0 -1.56,1.84 -0.1,2.75 -3.65,1.33 -1.95,-0.28 -0.57,0.7 -1.67,-0.4 -2.81,0.48 -4.69,-1.64 2.54,-2.93 -0.23,-2.1 -2.12,-0.55 -0.22,-2.09 -0.92,-2.64 1.2,-1.83 -1.22,-0.49 0.77,-2.45 z\",\n                    \"AL\": \"m 533.23,334.91 -0.35,1.27 0.4,1.59 1.16,0.9 -0.06,0.97 -0.91,0.54 -0.17,1.19 -1.3,1.76 -0.48,-0.25 -0.05,-0.8 -1.56,-1.23 -0.24,-1.75 0.24,-2.53 0.38,-1.16 -0.47,-0.59 -0.19,-1.19 1.22,-1.87 0.17,0.72 0.76,-0.34 0.6,1.02 0.67,0.38 z\",\n                    \"AM\": \"m 597.7,337.75 3.9,-0.58 0.58,0.98 1.07,0.64 -0.57,0.92 1.5,1.26 -0.79,1.16 1.19,0.99 1.26,0.59 0.06,2.5 -1.02,0.1 -1.14,-2.08 0.01,-0.55 -1.24,0.01 -0.83,-0.98 -0.58,0.1 -1.11,-1.06 -2.08,-0.91 0.27,-1.79 z\",\n                    \"AO\": \"m 521.28,480.03 0.69,2.09 0.8,1.68 0.64,0.91 1.07,1.47 1.85,-0.23 0.93,-0.4 1.55,0.4 0.42,-0.7 0.7,-1.64 1.74,-0.11 0.15,-0.49 1.43,-0.01 -0.24,1.01 3.4,-0.02 0.05,1.77 0.57,1.09 -0.41,1.7 0.21,1.74 0.94,1.05 -0.15,3.37 0.69,-0.26 1.22,0.07 1.74,-0.42 1.28,0.17 0.3,0.88 -0.32,1.38 0.49,1.34 -0.42,1.07 0.24,0.99 -5.84,-0.04 -0.13,9.16 1.89,2.38 1.83,1.82 -5.15,1.19 -6.79,-0.41 -1.94,-1.4 -11.37,0.13 -0.42,0.21 -1.67,-1.32 -1.82,-0.09 -1.68,0.5 -1.35,0.56 -0.26,-1.83 0.39,-2.55 0.97,-2.65 0.15,-1.24 0.91,-2.59 0.67,-1.17 1.61,-1.87 0.9,-1.27 0.29,-2.11 -0.15,-1.61 -0.84,-1.01 -0.75,-1.72 -0.69,-1.69 0.15,-0.59 0.86,-1.12 -0.85,-2.72 -0.57,-1.88 -1.4,-1.77 0.27,-0.54 1.16,-0.38 0.81,0.05 0.98,-0.34 8.27,0.01 z m -10.91,-0.54 -0.71,0.3 -0.75,-2.1 1.13,-1.21 0.85,-0.47 1.05,0.96 -1.02,0.59 -0.46,0.72 -0.09,1.21 z\",\n                    \"AR\": \"m 291.85,649.16 -2.66,0.25 -1.43,-1.73 -1.69,-0.13 -3,0 0,-10.57 1.08,2.15 1.4,3.53 3.65,2.87 3.93,1.21 -1.28,2.42 z m 1.5,-122.44 1.65,2.18 1.09,-2.43 3.2,0.12 0.45,0.64 5.15,4.94 2.29,0.46 3.43,2.26 2.89,1.2 0.4,1.36 -2.76,4.73 2.83,0.85 3.15,0.48 2.22,-0.5 2.54,-2.4 0.46,-2.74 1.39,-0.59 1.41,1.79 -0.06,2.49 -2.36,1.73 -1.88,1.28 -3.16,3.08 -3.74,4.37 -0.7,2.59 -0.75,3.37 0.03,3.3 -0.61,0.74 -0.22,2.17 -0.19,1.76 3.56,2.91 -0.38,2.37 1.75,1.51 -0.14,1.7 -2.69,4.52 -4.16,1.91 -5.62,0.75 -3.08,-0.36 0.59,2.15 -0.57,2.72 0.52,1.85 -1.68,1.3 -2.87,0.51 -2.7,-1.35 -1.08,0.97 0.39,3.71 1.89,1.14 1.54,-1.19 0.84,1.96 -2.58,1.18 -2.25,2.38 -0.41,3.91 -0.66,2.11 -2.65,0.01 -2.2,2.04 -0.8,3.01 2.76,2.98 2.68,0.83 -0.96,3.73 -3.31,2.38 -1.82,5.03 -2.56,1.72 -1.15,2.06 0.91,4.64 1.87,2.63 -1.18,-0.23 -2.6,-0.71 -6.78,-0.61 -1.16,-2.63 0.05,-3.33 -1.87,0.28 -0.99,-1.6 -0.25,-4.6 2.15,-1.88 0.89,-2.68 -0.33,-2.11 1.49,-3.52 1.02,-5.35 -0.3,-2.33 1.22,-0.75 -0.3,-1.48 -1.3,-0.78 0.92,-1.63 -1.27,-1.46 -0.65,-4.4 1.13,-0.77 -0.47,-4.54 0.66,-3.75 0.75,-3.22 1.68,-1.3 -0.85,-3.46 -0.01,-3.22 2.12,-2.26 -0.06,-2.87 1.6,-3.31 0.01,-3.09 -0.73,-0.61 -1.29,-5.69 1.73,-3.34 -0.27,-3.11 1,-2.9 1.84,-2.96 1.98,-1.95 -0.84,-1.23 0.59,-1 -0.09,-5.14 3.05,-1.51 0.96,-3.16 -0.34,-0.76 2.34,-2.72 3.62,0.72 z\",\n                    \"AT\": \"m 523.11,310.1 -0.21,1.71 -1.58,0.01 0.54,0.89 -0.93,2.65 -0.53,0.69 -2.45,0.1 -1.42,0.92 -2.32,-0.31 -4.01,-1.05 -0.62,-1.43 -2.77,0.72 -0.33,0.77 -1.7,-0.58 -1.43,-0.11 -1.27,-0.74 0.43,-1.01 -0.11,-0.74 0.85,-0.22 1.42,1.14 0.4,-1.09 2.47,0.18 2.01,-0.74 1.34,0.12 0.87,0.85 0.27,-0.7 -0.4,-2.72 1.01,-0.54 0.98,-1.95 2.09,1.37 1.57,-1.74 0.99,-0.32 2.18,1.3 1.31,-0.22 1.3,0.8 -0.23,0.54 z\",\n                    \"AU\": \"m 883.18,588.41 2.71,1.28 1.53,-0.51 2.19,-0.71 1.68,0.25 0.2,4.43 -0.96,1.3 -0.29,3.06 -0.98,-1.05 -1.95,2.67 -0.58,-0.21 -1.72,-0.12 -1.73,-3.28 -0.38,-2.5 -1.62,-3.25 0.07,-1.7 1.83,0.34 z m -5.15,-86.06 1.01,2.25 1.8,-1.08 0.93,1.22 1.35,1.13 -0.29,1.28 0.6,2.48 0.43,1.45 0.71,0.35 0.76,2.5 -0.27,1.52 0.91,1.99 3.04,1.54 1.98,1.41 1.88,1.29 -0.37,0.72 1.6,1.87 1.09,3.25 1.12,-0.66 1.14,1.31 0.69,-0.46 0.48,3.21 1.99,1.87 1.3,1.17 2.19,2.49 0.79,2.49 0.07,1.77 -0.19,1.94 1.34,2.68 -0.16,2.81 -0.49,1.48 -0.76,2.87 0.06,1.86 -0.55,2.34 -1.24,3 -2.08,1.63 -1.02,2.59 -0.94,1.67 -0.83,2.93 -1.08,1.71 -0.71,2.58 -0.36,2.4 0.14,1.11 -1.61,1.22 -3.14,0.13 -2.59,1.45 -1.29,1.38 -1.69,1.54 -2.32,-1.58 -1.72,-0.63 0.44,-1.85 -1.53,0.67 -2.46,2.58 -2.42,-0.97 -1.59,-0.56 -1.6,-0.25 -2.71,-1.03 -1.81,-2.18 -0.52,-2.66 -0.65,-1.75 -1.38,-1.4 -2.7,-0.41 0.92,-1.66 -0.68,-2.52 -1.37,2.35 -2.5,0.63 1.47,-1.88 0.42,-1.95 1.08,-1.65 -0.22,-2.47 -2.28,2.85 -1.75,1.15 -1.07,2.69 -2.19,-1.4 0.09,-1.79 -1.75,-2.43 -1.48,-1.25 0.53,-0.77 -3.6,-2 -1.97,-0.09 -2.7,-1.6 -5.02,0.31 -3.63,1.18 -3.19,1.1 -2.68,-0.22 -2.97,1.7 -2.43,0.77 -0.54,1.75 -1.04,1.36 -2.38,0.08 -1.76,0.3 -2.48,-0.61 -2.02,0.37 -1.92,0.15 -1.67,1.8 -0.82,-0.15 -1.41,0.96 -1.35,1.08 -2.05,-0.13 -1.88,0 -2.97,-2.17 -1.51,-0.64 0.06,-1.93 1.39,-0.46 0.48,-0.76 -0.1,-1.2 0.34,-2.3 -0.31,-1.95 -1.48,-3.29 -0.46,-1.85 0.12,-1.83 -1.12,-2.08 -0.07,-0.93 -1.24,-1.26 -0.35,-2.47 -1.6,-2.48 -0.39,-1.33 1.23,1.35 -0.95,-2.88 1.39,0.9 0.83,1.2 -0.05,-1.59 -1.39,-2.43 -0.27,-0.97 -0.65,-0.92 0.3,-1.77 0.57,-0.75 0.38,-1.52 -0.3,-1.77 1.16,-2.17 0.21,2.29 1.18,-2.07 2.28,-1 1.37,-1.28 2.14,-1.1 1.27,-0.23 0.77,0.37 2.21,-1.11 1.7,-0.33 0.42,-0.65 0.74,-0.27 1.55,0.07 2.95,-0.87 1.52,-1.31 0.72,-1.58 1.64,-1.49 0.13,-1.17 0.07,-1.59 1.96,-2.47 1.18,2.51 1.19,-0.58 -1,-1.38 0.88,-1.41 1.24,0.63 0.34,-2.21 1.53,-1.42 0.68,-1.14 1.41,-0.49 0.04,-0.8 1.23,0.34 0.05,-0.72 1.23,-0.41 1.36,-0.39 2.07,1.32 1.56,1.71 1.75,0.02 1.78,0.27 -0.59,-1.58 1.34,-2.3 1.26,-0.75 -0.44,-0.71 1.22,-1.63 1.7,-1.01 1.43,0.34 2.36,-0.54 -0.05,-1.45 -2.05,-0.94 1.49,-0.41 1.86,0.7 1.49,1.17 2.36,0.73 0.8,-0.29 1.74,0.88 1.64,-0.82 1.05,0.25 0.66,-0.55 1.29,1.41 -0.75,1.53 -1.06,1.16 -0.96,0.1 0.33,1.15 -0.82,1.43 -1,1.41 0.2,0.81 2.23,1.6 2.16,0.93 1.44,1 2.03,1.72 0.79,0 1.47,0.75 0.43,0.9 2.68,0.99 1.85,-1 0.55,-1.57 0.57,-1.29 0.35,-1.59 0.85,-2.3 -0.39,-1.39 0.2,-0.84 -0.32,-1.64 0.37,-2.16 0.54,-0.58 -0.44,-0.95 0.68,-1.51 0.53,-1.56 0.07,-0.81 1.04,-1.06 0.79,1.39 0.19,1.78 0.7,0.34 0.12,1.2 1.02,1.45 0.21,1.62 -0.08,1.01 z\",\n                    \"AZ\": \"m 601.68,342.71 0.83,0.97 1.24,-0.01 -0.01,0.56 1.14,2.08 -1.92,-0.48 -1.42,-1.66 -0.44,-1.37 0.58,-0.09 z m 6.65,-5.43 1.24,0.25 0.48,-0.95 1.67,-1.51 1.47,1.97 1.43,2.62 1.31,0.17 0.86,0.99 -2.31,0.29 -0.49,2.82 -0.48,1.26 -1.03,0.84 0.08,1.77 -0.7,0.18 -1.75,-1.87 0.97,-1.78 -0.83,-1.06 -1.05,0.27 -3.31,2.66 -0.06,-2.5 -1.26,-0.59 -1.19,-0.99 0.79,-1.16 -1.49,-1.26 0.56,-0.92 -1.07,-0.64 -0.58,-0.97 0.69,-0.61 2.09,1.07 1.51,0.22 0.38,-0.43 -1.38,-2.02 0.73,-0.52 0.79,0.13 1.93,2.27 z\",\n                    \"BA\": \"m 528.79,323.36 1.02,-0.01 -0.7,1.72 1.35,1.5 -0.41,1.82 -0.66,0.17 -0.53,0.36 -0.91,0.89 -0.41,2.1 -2.48,-1.44 -1.06,-1.61 -1.07,-0.85 -1.29,-1.45 -0.6,-1.21 -1.38,-1.83 0.59,-1.64 1.01,0.91 0.6,-0.82 1.31,-0.09 2.41,0.66 1.94,-0.06 z\",\n                    \"BD\": \"m 735.34,400.66 -0.05,2.15 -0.98,-0.46 0.18,2.41 -0.8,-1.56 -0.16,-1.52 -0.54,-1.45 -1.17,-1.76 -2.58,-0.12 0.26,1.25 -0.88,1.67 -1.2,-0.61 -0.41,0.55 -0.79,-0.33 -1.08,-0.27 -0.44,-2.48 -0.97,-2.28 0.47,-1.84 -1.72,-0.82 0.62,-1.12 1.75,-1.15 -2.02,-1.63 0.99,-2.11 2.22,1.34 1.34,0.16 0.25,2.15 2.66,0.42 2.61,-0.05 1.61,0.53 -1.29,2.59 -1.26,0.18 -0.86,1.73 1.53,1.58 0.46,-1.94 0.78,-0.01 z\",\n                    \"BE\": \"m 484.8,296.16 2.05,0.35 2.6,-0.93 1.77,1.95 1.55,1.04 -0.32,2.97 -0.73,0.16 -0.31,2.43 -2.45,-1.97 -1.44,0.34 -1.96,-2.06 -1.3,-1.77 -1.3,-0.07 -0.41,-1.56 z\",\n                    \"BF\": \"m 467.58,436.65 -1.92,-0.73 -1.32,0.11 -0.98,0.71 -1.26,-0.6 -0.49,-0.93 -1.26,-0.62 -0.19,-1.64 0.77,-1.21 -0.07,-0.96 2.23,-2.36 0.41,-1.96 0.77,-0.7 1.36,0.38 1.17,-0.58 0.38,-0.74 2.18,-1.28 0.53,-0.9 2.62,-1.2 1.55,-0.41 0.7,0.55 1.79,-0.01 -0.22,1.4 0.38,1.31 1.58,1.87 0.08,1.38 3.24,0.65 -0.07,1.95 -0.61,0.86 -1.37,0.26 -0.57,1.24 -0.96,0.32 -2.46,-0.06 -1.3,-0.22 -0.9,0.46 -1.24,-0.21 -4.87,0.13 -0.07,1.61 z\",\n                    \"BG\": \"m 539.03,325.81 0.81,1.6 1.08,-0.29 2.16,0.61 4.12,0.2 1.39,-0.99 3.3,-0.9 2.04,1.41 1.65,0.41 -1.46,1.59 -1.02,2.73 0.9,2.16 -2.41,-0.51 -2.86,1.18 -0.03,1.86 -2.55,0.35 -1.97,-1.3 -2.25,1.03 -2.07,-0.11 -0.2,-2.47 -1.41,-1.21 0.47,-0.54 -0.31,-0.45 0.47,-1.21 1.07,-1.19 -1.36,-1.66 -0.25,-1.42 z\",\n                    \"BI\": \"m 557.77,476.18 -0.18,-3.37 -0.71,-1.26 1.71,0.22 0.86,-1.59 1.49,0.18 0.16,1.1 0.6,0.63 0.03,0.91 -0.69,0.58 -1.1,1.46 -1.01,1.01 z\",\n                    \"BJ\": \"m 483.05,446.17 -2.32,0.33 -0.69,-1.94 0.13,-6.46 -0.57,-0.58 -0.1,-1.39 -0.98,-0.99 -0.85,-0.83 0.36,-1.5 0.96,-0.32 0.57,-1.24 1.37,-0.26 0.61,-0.86 0.94,-0.83 1.01,-0.01 2.14,1.64 -0.11,0.95 0.63,1.68 -0.55,1.14 0.29,0.76 -1.36,1.75 -0.86,0.87 -0.53,1.77 0.07,1.79 z\",\n                    \"BN\": \"m 795.71,451.02 1.11,-1.05 2.39,-1.53 -0.13,1.38 -0.16,1.78 -1.34,-0.09 -0.59,0.95 z\",\n                    \"BO\": \"m 299.29,526.6 -3.2,-0.13 -1.09,2.43 -1.65,-2.18 -3.67,-0.73 -2.33,2.72 -2.03,0.41 -1.1,-4.15 -1.5,-3.34 0.88,-2.87 -1.47,-1.25 -0.37,-2.12 -1.38,-2 1.77,-3.14 -1.21,-2.44 0.65,-0.97 -0.51,-1.07 1.1,-1.44 0.06,-2.44 0.13,-2.02 0.61,-0.96 -2.43,-4.58 2.09,0.24 1.44,-0.07 0.63,-0.85 2.45,-1.15 1.47,-1.06 3.67,-0.48 -0.29,2.12 0.34,1.09 -0.23,1.9 3.05,2.55 3.14,0.47 1.1,1.07 1.9,0.57 1.16,0.83 1.76,-0.03 1.63,0.85 0.12,1.66 0.55,0.84 0.04,1.25 -0.82,0.04 1.08,3.37 5.37,0.12 -0.41,1.68 0.3,1.15 1.53,0.82 0.67,1.82 -0.5,2.32 -0.77,1.29 0.27,1.69 -0.88,0.61 -0.04,-0.91 -2.62,-1.51 -2.6,-0.05 -4.89,0.86 -1.34,2.62 -0.07,1.6 -1.11,3.59 z\",\n                    \"BR\": \"m 313.93,552.04 3.74,-4.37 3.17,-3.08 1.88,-1.28 2.36,-1.73 0.06,-2.49 -1.41,-1.79 -1.39,0.59 0.55,-1.78 0.38,-1.82 0,-1.68 -1.01,-0.55 -1.05,0.49 -1.04,-0.13 -0.33,-1.18 -0.26,-2.77 -0.53,-0.9 -1.89,-0.82 -1.14,0.59 -2.96,-0.58 0.18,-4.06 -0.83,-1.66 0.88,-0.61 -0.27,-1.69 0.77,-1.29 0.5,-2.32 -0.67,-1.82 -1.53,-0.82 -0.3,-1.15 0.41,-1.68 -5.37,-0.12 -1.08,-3.37 0.82,-0.04 -0.04,-1.25 -0.55,-0.84 -0.12,-1.66 -1.63,-0.85 -1.76,0.03 -1.16,-0.83 -1.9,-0.57 -1.1,-1.07 -3.14,-0.47 -3.05,-2.55 0.23,-1.9 -0.34,-1.09 0.29,-2.12 -3.67,0.48 -1.47,1.06 -2.45,1.15 -0.63,0.85 -1.44,0.07 -2.09,-0.24 -1.58,0.49 -1.28,-0.33 0.19,-4.3 -2.3,1.66 -2.47,-0.07 -1.06,-1.51 -1.86,-0.16 0.59,-1.21 -1.56,-1.72 -1.17,-2.53 0.74,-0.51 0,-1.19 1.7,-0.81 -0.28,-1.51 0.71,-0.98 0.21,-1.3 3.2,-1.91 2.3,-0.53 0.37,-0.42 2.53,0.13 1.26,-7.65 0.07,-1.21 -0.44,-1.59 -1.24,-1.02 0.01,-2.02 1.58,-0.46 0.56,0.29 0.09,-1.07 -1.64,-0.29 -0.03,-1.74 5.46,0.06 0.93,-0.96 0.78,0.88 0.54,1.65 0.53,-0.35 1.55,1.48 2.18,-0.18 0.54,-0.86 2.08,-0.65 1.16,-0.45 0.32,-1.18 2.01,-0.8 -0.16,-0.58 -2.37,-0.24 -0.39,-1.76 0.11,-1.87 -1.25,-0.72 0.52,-0.26 2.08,0.36 2.23,0.7 0.81,-0.66 2.01,-0.44 3.14,-1.04 1.03,-1.07 -0.38,-0.79 1.46,-0.12 0.66,0.64 -0.37,1.23 0.96,0.42 0.65,1.3 -0.78,0.98 -0.45,2.38 0.72,1.41 0.2,1.29 1.73,1.3 1.38,0.14 0.31,-0.54 0.88,-0.12 1.27,-0.49 0.91,-0.74 1.55,0.23 0.68,-0.1 1.53,0.23 0.25,-0.57 -0.47,-0.55 0.28,-0.81 1.13,0.25 1.33,-0.29 1.6,0.59 1.23,0.58 0.87,-0.76 0.62,0.12 0.39,0.79 1.34,-0.2 1.07,-1.06 0.86,-2.06 1.66,-2.55 0.96,-0.13 0.69,1.54 1.57,4.88 1.5,0.46 0.08,1.92 -2.11,2.29 0.87,0.84 4.96,0.44 0.1,2.79 2.13,-1.83 3.53,1.01 4.65,1.7 1.37,1.63 -0.46,1.54 3.26,-0.86 5.46,1.48 4.19,-0.11 4.14,2.31 3.58,3.13 2.16,0.8 2.4,0.12 1.02,0.88 0.95,3.57 0.47,1.69 -1.12,4.66 -1.43,1.84 -3.95,3.94 -1.79,3.21 -2.07,2.48 -0.7,0.06 -0.79,2.1 0.2,5.4 -0.78,4.48 -0.3,1.93 -0.88,1.15 -0.5,3.94 -2.84,3.88 -0.48,3.09 -2.27,1.31 -0.66,1.81 -3.04,-0.01 -4.41,1.17 -1.98,1.35 -3.14,0.89 -3.3,2.44 -2.37,3.06 -0.41,2.32 0.47,1.73 -0.53,3.18 -0.63,1.55 -1.96,1.75 -3.11,5.68 -2.47,2.59 -1.91,1.54 -1.27,3.16 -1.86,1.91 -0.78,-1.9 1.24,-1.57 -1.62,-2.25 -2.2,-1.82 -2.89,-2.08 -1.04,0.09 -2.81,-2.5 z\",\n                    \"BS\": \"m 258.11,395.45 -0.69,0.15 -0.71,-1.76 -1.05,-0.89 0.61,-1.95 0.84,0.12 0.98,2.55 0.02,1.78 z m -0.8,-8.69 -3.06,0.5 -0.2,-1.15 1.32,-0.25 1.85,0.09 0.09,0.81 z m 2.3,-0.03 -0.48,2.21 -0.52,-0.4 0.05,-1.63 -1.26,-1.23 -0.01,-0.36 2.22,1.41 z\",\n                    \"BT\": \"m 732.61,383.03 1.14,1 -0.2,1.93 -2.29,0.09 -2.36,-0.21 -1.77,0.49 -2.55,-1.19 -0.05,-0.63 1.85,-2.34 1.51,-0.8 2.01,0.73 1.48,0.08 z\",\n                    \"BW\": \"m 547.42,516.2 0.56,0.52 0.89,1.71 3.17,3.25 1.2,0.32 0.01,1.05 0.82,1.9 2.17,0.46 1.79,1.36 -3.97,2.22 -2.52,2.26 -0.93,2.03 -0.84,1.15 -1.53,0.25 -0.49,1.47 -0.29,0.96 -1.79,0.72 -2.28,-0.15 -1.34,-0.86 -1.18,-0.38 -1.37,0.72 -0.69,1.48 -1.33,0.93 -1.4,1.39 -2.01,0.32 -0.62,-1.09 0.26,-1.9 -1.67,-2.93 -0.75,-0.46 0,-8.86 2.76,-0.11 0.08,-10.57 2.09,-0.09 4.32,-1.03 1.08,1.21 1.78,-1.15 0.86,-0.01 1.58,-0.66 0.5,0.22 z\",\n                    \"BY\": \"m 541.35,284.32 2.71,0.04 3.04,-1.8 0.65,-2.72 2.3,-1.57 -0.26,-2.2 1.7,-0.84 3.02,-1.93 2.95,1.26 0.4,1.23 1.47,-0.59 2.74,1.18 0.27,2.31 -0.6,1.32 1.76,3.15 1.14,0.87 -0.17,0.86 1.89,0.83 0.81,1.25 -1.09,1.02 -2.26,-0.16 -0.54,0.44 0.66,1.54 0.69,2.93 -2.41,0.27 -0.86,1 -0.19,2.26 -1.11,-0.43 -2.53,0.22 -0.74,-1.05 -1.05,0.78 -1.05,-0.65 -2.21,-0.09 -3.13,-1.08 -2.83,-0.36 -2.17,0.1 -1.54,1.23 -1.34,0.17 -0.05,-2.01 -0.87,-2.12 1.68,-0.94 0.02,-1.85 -0.78,-1.78 z\",\n                    \"BZ\": \"m 225.56,413.21 -0.02,-0.43 0.34,-0.14 0.51,0.35 1,-1.77 0.53,-0.04 0.01,0.43 0.53,0.01 -0.04,0.8 -0.46,1.27 0.25,0.45 -0.29,1.05 0.17,0.27 -0.32,1.47 -0.55,0.78 -0.51,0.09 -0.56,1 -0.83,0 0.22,-3.28 z\",\n                    \"CA\": \"m 199.18,96.48 -0.22,-5.9 3.63,0.58 1.63,0.96 3.35,4.92 -0.76,4.97 -4.15,2.77 -2.28,-3.12 -1.2,-5.18 z m 13.21,12.65 0.33,-1.49 -1.97,-2.45 -5.65,-0.19 0.75,3.68 5.25,0.83 1.29,-0.38 z m 36.35,46.95 3.08,5.1 0.81,0.57 3.07,-1.27 3.02,0.2 2.98,0.28 -0.25,-2.64 -4.84,-5.38 -6.42,-1.08 -1.35,0.67 -0.1,3.55 z m -65.43,-62.7 -2.71,4.19 6.24,0.52 4.61,4.44 4.58,1.5 -1.09,-5.68 -2.14,-6.73 -7.58,-5.35 -5.5,-2.04 0.2,5.69 3.39,3.46 z m 25.9,-10.24 5.13,-0.12 -2.22,4 -0.04,5.3 3.01,5.76 5.81,1.77 4.96,-0.99 5.18,-10.73 3.85,-4.45 -3.38,-4.97 -2.21,-10.65 -4.6,-3.19 -4.72,-3.68 -3.58,-9.56 -6.52,0.94 1.23,4.15 -2.87,1.25 -1.94,5.32 -1.94,7.46 1.78,7.26 3.07,5.13 z m -63.75,53.38 3.92,1.95 12.67,-1.3 -5.82,4.77 0.36,3.43 4.26,-0.24 7.07,-4.58 9.5,-1.67 1.71,-5.22 -0.49,-5.57 -2.94,-0.5 -2.5,1.93 -1.1,-4.13 -0.95,-5.7 -2.9,-1.42 -2.57,4.41 4.01,11.05 -4.9,-0.85 -4.98,-6.79 -7.89,-4 -2.64,3.32 -3.82,11.11 z m 22.56,-42.06 -3.65,-2.9 -1.5,-0.66 -2.88,4.28 -0.05,2 4.66,0.01 3.42,-2.73 z m -1.46,12.35 0.93,-3.99 -3.95,-2.12 -4.09,1.39 -2.27,4.26 4.16,4.21 5.22,-3.75 z m 29.09,33.24 4.62,-1.11 1.28,-8.25 -0.09,-5.95 -2.14,-5.56 -0.22,1.6 -3.94,-0.7 -4.22,4.09 -3.02,-0.37 0.18,8.92 4.6,-0.87 -0.06,6.47 3.01,1.73 z m -3.28,45.61 -5.06,-3.93 -4.71,-4.21 -0.87,-6.18 -1.76,-8.92 -3.14,-3.84 -2.79,-1.55 -2.47,1.42 1.99,9.59 -1.41,3.73 -2.29,-8.98 -2.56,-3.11 -3.17,4.81 -3.9,-4.76 -6.24,2.87 1.4,-4.46 -2.87,-1.87 -7.51,5.84 -1.95,3.71 -2.35,6.77 4.9,2.32 4.33,-0.12 -6.5,3.46 1.48,3.13 3.98,0.17 5.99,-0.67 5.42,1.96 -3.66,1.44 -3.95,-0.37 -4.33,1.41 -1.87,0.87 3.45,6.35 2.49,-0.88 3.83,2.15 1.52,3.65 4.99,-0.73 7.1,-1.16 5.26,-2.65 3.26,-0.48 4.82,2.12 5.07,1.22 0.94,-2.86 -1.79,-3.05 4.6,-0.64 0.33,-3.57 z m 7.74,-0.98 -1.96,3.54 -2.47,2.49 3.83,3.54 2.28,-0.85 3.78,2.36 1.74,-2.73 -1.71,-3.03 -0.84,-1.53 -1.68,-1.46 -2.97,-2.33 z m -17.61,-29.45 -2.13,-2.17 -3.76,0.4 -0.95,1.38 4.37,6.75 2.47,-6.36 z m 28.69,13.17 3.01,-6.93 3.34,-1.85 4.19,-8.74 -5.36,-2.47 -5.84,-0.36 -2.78,2.77 -1.47,4.23 -0.04,4.82 1.75,8.19 3.2,0.34 z m 17.15,-23 5.76,-0.18 8.04,-1.61 3.59,1.28 4.18,-2.26 1.75,-2.84 -0.63,-4.52 -3,-4.23 -4.56,-0.8 -5.71,0.97 -4.46,2.44 -4.09,-0.94 -3.78,-0.5 -1.78,-2.7 -3.22,-2.61 0.64,-4.43 -2.42,-3.98 -5.52,0.03 -3.11,-3.99 -5.78,-0.8 -1.06,5.1 3.25,3.74 5.8,1.45 2.81,5.09 0.34,5.6 0.97,5.99 7.45,3.42 4.54,1.28 z m -89.02,-18.27 5.21,-5.05 2.62,-0.59 2.16,-4.23 0.38,-9.77 -3.85,1.91 -4.3,-0.18 -5.76,8.19 -4.76,8.98 3.8,2.51 4.5,-1.77 z m 72.18,16.17 1.53,-4.14 -1.02,-3.46 -2.45,-3.92 -4.03,3.02 -1.49,4.92 3.4,2.79 4.06,0.79 z m -8.31,11.44 -0.73,-2.88 -5,1.26 -3.34,-2.11 -3.32,4.8 3.09,6.28 -5.72,-1.17 -0.06,3.01 6.97,7.05 1.94,3.38 2.7,0.73 4.6,-3.41 0.5,-8.21 -4.24,-4.07 2.61,-4.66 z m -73.99,153.74 -1.16,-2.34 -2.8,-1.77 -1.39,-2.05 -0.95,-1.5 -2.64,-0.46 -1.72,-0.67 -2.94,-0.96 -0.24,1.02 1.08,2.38 2.89,0.78 0.5,1.23 2.51,1.5 0.84,1.51 4.6,1.92 1.42,-0.59 z m 121.7,-77.63 -2,-2.11 -2.06,0.5 -0.25,-3.06 -3.21,-2.04 -3.07,-2.27 -1.63,-1.75 -1.43,1.03 -0.52,-2.96 -2.03,-0.55 -0.96,6.13 -0.36,5.11 -2.44,3.14 3.8,-0.6 0.96,3.65 3.99,-3.23 2.78,-3.38 1.57,2.86 4.36,1.51 2.5,-1.98 z m -120.53,-52.55 7.38,-4.18 v -3.87 l 3.48,-6.41 6.88,-6.69 3.52,-2.47 -3.01,-4.2 -2.72,-2.95 -7.16,-0.57 -4,-2.16 -9.48,1.63 2.74,6.23 -2.43,6.43 -1.94,6.87 -1.2,3.86 6.47,4.69 1.47,3.79 z m 134.24,27.31 0.32,-1.01 -0.03,-3.17 -2.19,-2.08 -2.57,1.05 -1.19,4.17 0.7,3.56 3.14,-0.36 1.82,-2.16 z m 23.82,7.54 4.41,6.6 3.45,2.85 4.92,-7.87 0.87,-4.93 -4.41,-0.47 -4.03,-6.7 -4.45,-1.64 -6.6,-4.97 5.15,-3.63 -2.65,-7.54 -2.44,-3.35 -6.77,-3.35 -2.92,-5.55 -5.21,1.99 -0.36,-3.86 -3.86,-4.32 -6.22,-4.71 -2.65,3.71 -5.55,2.66 0.42,-6.06 -4.81,-10.05 -7.11,4.06 -2.59,7.7 -2.21,-5.92 2.06,-6.37 -7.24,2.65 -2.88,3.99 -2.15,8.42 0.89,9.05 3.98,0.04 -2.93,3.92 2.33,2.96 4.55,1.25 5.93,2.42 10.2,1.82 5.08,-1.04 1.5,-2.42 2.21,2.79 2.47,0.46 2.97,4.96 -1.8,1.98 5.68,2.63 4.29,3.68 1.08,2.55 0.77,3.24 -3.63,6.93 -0.98,3.44 0.94,2.42 -5.77,0.86 -5.27,0.12 -1.85,4.87 2.37,2.23 8.11,-1.03 -0.04,-1.89 4.08,3.15 4.18,3.28 -0.98,1.77 3.4,3.02 6.02,3.53 7.6,2.39 -0.46,-2.09 -2.92,-3.67 -3.96,-5.37 7.03,5 3.54,1.66 0.97,-4.44 -1.82,-6.3 -1.16,-1.73 -3.81,-3.03 -2.95,-3.91 0.35,-3.94 3.64,-0.9 z M 222.6,51.59 l 2.34,7.29 4.96,5.88 9.81,-1.09 6.31,1.97 -4.38,6.05 -2.21,-1.78 -7.66,-0.71 1.19,8.31 3.96,6.04 -0.8,5.2 -4.97,3.46 -2.27,5.47 4.55,2.65 3.82,8.55 -7.5,-5.7 -1.71,0.94 1.38,9.38 -5.18,2.83 0.35,5.85 5.3,0.63 4.17,1.44 8.24,-1.84 7.33,3.27 7.49,-7.19 -0.06,-3.02 -4.79,0.48 -0.39,-2.84 3.92,-3.83 1.33,-5.15 4.33,-3.83 2.66,-4.76 -2.32,-7.1 1.94,-2.65 -3.86,-1.89 8.49,-1.63 1.79,-3.15 5.78,-2.6 4.8,-13.47 4.57,-4.94 6.62,-11.12 -6.1,0.1 2.54,-4.3 6.78,-3.99 6.84,-8.9 0.12,-5.73 -5.13,-6.04 -6.02,-2.93 -7.49,-1.82 -6.07,-1.49 -6.07,-1.5 -8.1,3.98 -1.49,-2.53 -8.57,0.98 -5.03,2.57 -3.7,3.65 -2.13,11.74 -3.06,-6.01 -3.48,-1.14 -4.12,7.97 -5.5,3.35 -3.27,0.66 -4.17,3.84 0.61,6.65 3.28,5.49 z m 74.4,265 -0.98,-1.98 -1.06,1.26 0.7,1.36 3.56,1.71 1.04,-0.26 1.38,-1.66 -2.6,0.11 -2.04,-0.54 z m -57,-77.86 0.61,1.63 1.98,0.14 3.28,-3.34 0.06,-1.19 -3.85,-0.06 -2.08,2.82 z m 62.13,66.44 -2.87,-1.8 -3.69,-1.09 -0.97,0.37 2.61,2.04 3.63,1.34 1.36,-0.08 -0.07,-0.78 z m 24.88,4.79 -0.36,-2.24 -1.96,0.72 0.87,-3.11 -2.8,-1.32 -1.29,1.05 -2.49,-1.18 0.98,-1.51 -1.88,-0.93 -1.83,1.47 1.86,-3.82 1.5,-2.8 0.54,-1.22 -1.3,-0.2 -2.43,1.55 -1.74,2.53 -2.9,6.92 -2.35,2.56 1.22,1.14 -1.75,1.47 0.43,1.23 5.44,0.13 3.01,-0.25 2.69,1.01 -1.98,1.93 1.67,0.14 3.25,-3.58 0.78,0.53 -0.61,3.37 1.84,0.77 1.27,-0.15 1.18,-3.61 -0.86,-2.6 z m -21.19,4.76 -2.81,4.56 -4.63,0.58 -3.64,-2.01 -0.92,-3.07 -0.89,-4.46 2.65,-2.83 -2.48,-2.09 -4.19,0.43 -5.88,3.53 -4.5,5.45 -2.38,0.67 3.23,-3.8 4.04,-5.57 3.57,-1.9 2.35,-3.11 2.9,-0.3 4.21,0.03 6,0.92 4.74,-0.71 3.53,-3.62 4.62,-1.59 2.01,-1.58 2.04,-1.71 -0.2,-5.19 -1.13,-1.77 -2.18,-0.63 -1.11,-4.05 -1.8,-1.55 -4.47,-1.26 -2.52,-2.82 -3.73,-2.83 1.13,-3.2 -3.1,-6.26 -3.65,-6.89 -2.18,-4.98 -1.86,2.61 -2.68,6.05 -4.06,2.97 -2.03,-3.16 -2.56,-0.85 -0.93,-6.99 0.08,-4.8 -5,-0.44 -0.85,-2.27 -3.45,-3.44 -2.61,-2.04 -2.32,1.58 -2.88,-0.58 -4.81,-1.65 -1.95,1.4 0.94,9.18 1.22,5.12 -3.31,5.75 3.41,4.02 1.9,4.44 0.23,3.42 -1.55,3.5 -3.18,3.46 -4.49,2.28 1.98,2.53 1.46,7.4 -1.52,4.68 -2.16,1.46 -4.17,-4.28 -2.03,-5.17 -0.87,-4.76 0.46,-4.19 -3.05,-0.47 -4.63,-0.28 -2.97,-2.08 -3.51,-1.37 -2.01,-2.38 -2.8,-1.94 -5.21,-2.23 -3.92,1.02 -1.31,-3.95 -1.26,-4.99 -4.12,-0.9 0.15,-6.41 1.09,-4.48 3.04,-6.6 3.43,-4.9 3.26,-0.77 0.19,-4.05 2.21,-2.68 4.01,-0.42 3.25,-4.39 0.82,-2.9 2.7,-5.73 0.84,-3.5 2.9,2.11 3.9,-1.08 5.49,-4.96 0.36,-3.54 -1.98,-3.98 2.09,-4.06 -0.17,-3.87 -3.76,-3.95 -4.14,-1.19 -3.98,-0.62 -0.15,8.71 -2.04,6.56 -2.93,5.3 -2.71,-4.95 0.84,-5.61 -3.35,-5.02 -3.75,6.09 0.01,-7.99 -5.21,-1.63 2.49,-4.01 -3.81,-9.59 -2.84,-3.91 -3.7,-1.44 -3.32,6.43 -0.22,9.34 3.27,3.29 3,4.91 -1.27,7.71 -2.26,-0.2 -1.78,5.88 0.02,-7 -4.34,-2.58 -2.49,1.33 0.32,4.67 -4.09,-0.18 -4.35,1.17 -4.95,-3.35 -3.13,0.6 -2.82,-4.11 -2.26,-1.84 -2.24,0.77 -3.41,0.35 -1.81,2.61 2.86,3.19 -3.05,3.72 -2.99,-4.42 -2.39,1.3 -7.57,0.87 -5.07,-1.59 3.94,-3.74 -3.78,-3.9 -2.75,0.5 -3.86,-1.32 -6.56,-2.89 -4.29,-3.37 -3.4,-0.47 -1.06,2.36 -3.44,1.31 -0.38,-6.15 -3.73,5.5 -4.74,-7.32 -1.94,-0.89 -0.63,3.91 -2.09,1.9 -1.93,-3.39 -4.59,2.05 -4.2,3.55 -4.17,-0.98 -3.4,2.5 -2.46,3.28 -2.92,-0.72 -4.41,-3.8 -5.23,-1.94 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.56,2.35 0.06,2.48 3.39,3.45 0.49,3.76 3.59,1.96 -0.4,2.79 1.56,3.96 5.08,1.82 2,1.89 5.43,4.23 0.38,0.01 h 7.96 8.32 2.76 8.55 8.27 8.41 l 8.42,0 9.53,0 9.59,0 5.8,0 0.01,-1.64 0.95,-0.02 0.5,2.35 0.87,0.72 1.96,0.26 2.86,0.67 2.72,1.3 2.27,-0.55 3.45,1.09 1.14,-1.66 1.59,-0.66 0.62,-1.03 0.63,-0.55 2.61,0.86 1.93,0.1 0.67,0.57 0.94,2.38 3.15,0.63 -0.49,1.18 1.11,1.21 -0.48,1.56 1.18,0.51 -0.59,1.37 0.75,0.13 0.53,-0.6 0.55,0.9 2.1,0.5 2.13,0.04 2.27,0.41 2.51,0.78 0.91,1.26 1.82,3.04 -0.9,1.3 -2.28,-0.54 -1.42,-2.44 0.36,2.49 -1.34,2.17 0.15,1.84 -0.23,1.07 -1.81,1.27 -1.32,2.09 -0.62,1.32 1.54,0.24 2.08,-1.2 1.23,-1.06 0.83,-0.17 1.54,0.38 0.75,-0.59 1.37,-0.48 2.44,-0.47 v 0 l 0,0 -0.25,-1.15 -0.13,0.04 -0.86,0.2 -1.12,-0.36 0.84,-1.32 0.85,-0.46 1.98,-0.56 2.37,-0.53 1.24,0.73 0.78,-0.85 0.89,-0.54 0.6,0.29 0.03,0.06 2.87,-2.73 1.27,-0.73 4.26,-0.03 5.17,0 0.28,-0.98 0.9,-0.2 1.19,-0.62 1,-1.82 0.86,-3.15 2.14,-3.1 0.93,1.08 1.88,-0.7 1.25,1.19 0,5.52 1.83,2.25 3.12,-0.48 4.49,-0.13 -4.87,3.26 0.11,3.29 2.13,0.28 3.13,-2.79 2.78,-1.58 6.21,-2.35 3.47,-2.62 -1.81,-1.46 -0.29,-2.92 z m -53.66,-71.1 1.1,-3.12 -0.71,-1.23 -1.15,-0.13 -1.08,1.8 -0.13,0.41 0.74,1.77 1.23,0.5 z m -142.66,36.43 0,0 1.56,-2.35 -1.56,2.35 z m -3.4,3.29 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z\",\n                    \"CD\": \"m 561.96,453.86 -0.17,3.26 1.12,0.37 -0.9,0.99 -1.08,0.74 -1.07,1.46 -0.59,1.29 -0.16,2.24 -0.65,1.06 -0.02,2.1 -0.81,0.78 -0.1,1.66 -0.39,0.21 -0.26,1.53 0.71,1.26 0.18,3.37 0.5,2.57 -0.28,1.46 0.56,1.62 1.63,1.57 1.51,3.55 -1.1,-0.29 -3.77,0.48 -0.75,0.33 -0.8,1.8 0.63,1.25 -0.5,3.35 -0.35,2.85 0.76,0.51 1.96,1.1 0.77,-0.51 0.24,3.08 -2.15,-0.03 -1.15,-1.57 -1.03,-1.22 -2.15,-0.4 -0.63,-1.49 -1.72,0.9 -2.24,-0.4 -0.94,-1.29 -1.78,-0.26 -1.31,0.07 -0.16,-0.88 -0.97,-0.07 -1.28,-0.17 -1.73,0.42 -1.22,-0.07 -0.7,0.26 0.15,-3.37 -0.93,-1.05 -0.21,-1.73 0.41,-1.7 -0.56,-1.09 -0.05,-1.76 -3.41,0.02 0.25,-1.01 -1.43,0.01 -0.15,0.49 -1.74,0.11 -0.71,1.63 -0.42,0.71 -1.55,-0.4 -0.92,0.4 -1.86,0.22 -1.07,-1.47 -0.64,-0.91 -0.81,-1.68 -0.69,-2.09 -8.27,-0.03 -0.99,0.33 -0.81,-0.05 -1.16,0.38 -0.39,-0.87 0.71,-0.3 0.09,-1.22 0.46,-0.72 1.02,-0.58 0.74,0.28 0.96,-1.07 1.52,0.03 0.18,0.79 1.05,0.5 1.65,-1.76 1.63,-1.36 0.71,-0.89 -0.09,-2.3 1.22,-2.71 1.28,-1.43 1.85,-1.34 0.32,-0.89 0.07,-1.02 0.46,-0.97 -0.15,-1.58 0.35,-2.47 0.55,-1.74 0.84,-1.49 0.16,-1.68 0.25,-1.95 1.1,-1.42 1.5,-0.9 2.31,0.95 1.78,1.03 2.05,0.28 2.09,0.54 0.84,-1.68 0.39,-0.22 1.27,0.28 3.13,-1.39 1.1,0.59 0.91,-0.08 0.42,-0.68 1.04,-0.24 2.11,0.29 1.8,0.06 0.93,-0.29 1.69,2.31 1.26,0.33 0.75,-0.47 1.3,0.19 1.56,-0.59 0.67,1.19 z\",\n                    \"CF\": \"m 518.34,442.91 2.32,-0.22 0.52,-0.72 0.46,0.06 0.7,0.63 3.53,-1.07 1.19,-1.1 1.47,-0.99 -0.28,-0.99 0.79,-0.26 2.71,0.18 2.64,-1.31 2.02,-3.09 1.43,-1.14 1.77,-0.49 0.32,1.22 1.62,1.77 0,1.15 -0.45,1.18 0.18,0.87 0.97,0.81 2.14,1.24 1.53,1.13 0.03,0.92 1.88,1.46 1.17,1.21 0.71,1.68 2.1,1.11 0.45,0.89 -0.93,0.29 -1.8,-0.06 -2.11,-0.29 -1.04,0.24 -0.42,0.68 -0.91,0.08 -1.1,-0.59 -3.13,1.39 -1.27,-0.28 -0.39,0.22 -0.84,1.68 -2.09,-0.54 -2.05,-0.28 -1.78,-1.03 -2.31,-0.95 -1.5,0.9 -1.1,1.42 -0.25,1.95 -1.8,-0.16 -1.9,-0.47 -1.67,1.48 -1.47,2.6 -0.3,-0.81 -0.12,-1.27 -1.28,-0.9 -1.04,-1.44 -0.24,-1 -1.32,-1.46 0.22,-0.83 -0.28,-1.18 0.22,-2.17 0.67,-0.51 z\",\n                    \"CG\": \"m 511.94,476.97 -1.05,-0.96 -0.85,0.47 -1.13,1.2 -2.3,-2.95 2.13,-1.54 -1.05,-1.85 0.96,-0.7 1.89,-0.34 0.22,-1.24 1.5,1.34 2.48,0.12 0.86,-1.32 0.35,-1.85 -0.31,-2.18 -1.32,-1.64 1.21,-3.23 -0.7,-0.55 -2.08,0.22 -0.79,-1.43 0.21,-1.22 3.53,0.11 2.27,0.73 2.23,0.66 0.2,-1.5 1.47,-2.6 1.67,-1.48 1.9,0.47 1.8,0.16 -0.16,1.68 -0.84,1.49 -0.55,1.74 -0.35,2.47 0.15,1.58 -0.46,0.97 -0.07,1.02 -0.32,0.89 -1.85,1.34 -1.28,1.43 -1.22,2.71 0.09,2.3 -0.71,0.89 -1.63,1.36 -1.65,1.76 -1.05,-0.5 -0.18,-0.79 -1.52,-0.03 -0.96,1.07 z\",\n                    \"CH\": \"m 502.4,312.59 0.11,0.74 -0.43,1.01 1.27,0.74 1.43,0.11 -0.22,1.67 -1.23,0.69 -2.08,-0.51 -0.61,1.63 -1.33,0.13 -0.49,-0.64 -1.57,1.36 -1.35,0.19 -1.21,-0.86 -0.96,-1.77 -1.34,0.64 0.04,-1.84 2.05,-2.31 -0.09,-1.05 1.28,0.39 0.77,-0.71 2.38,0.03 0.58,-0.9 z\",\n                    \"CI\": \"m 467.49,449.71 -1.27,0.03 -1.96,-0.55 -1.79,0.03 -3.33,0.49 -1.94,0.81 -2.78,1.02 -0.54,-0.07 0.21,-2.3 0.27,-0.35 -0.08,-1.11 -1.19,-1.17 -0.89,-0.19 -0.82,-0.77 0.61,-1.24 -0.28,-1.36 0.13,-0.82 0.45,0 0.16,-1.23 -0.22,-0.54 0.27,-0.39 1.04,-0.34 -0.69,-2.26 -0.65,-1.16 0.23,-0.97 0.56,-0.21 0.36,-0.26 0.78,0.42 2.16,0.03 0.52,-0.83 0.48,0.06 0.81,-0.32 0.44,1.21 0.65,-0.36 1.16,-0.42 1.26,0.62 0.49,0.93 1.26,0.6 0.98,-0.71 1.32,-0.11 1.92,0.73 0.74,4.01 -1.18,2.36 -0.73,3.17 1.21,2.41 z\",\n                    \"CL\": \"m 283.06,636.98 0,10.57 3,0 1.69,0.13 -0.93,1.98 -2.4,1.53 -1.38,-0.16 -1.66,-0.4 -2.04,-1.48 -2.94,-0.71 -3.53,-2.71 -2.86,-2.57 -3.86,-5.25 2.31,0.97 3.94,3.13 3.72,1.7 1.45,-2.17 0.91,-3.2 2.58,-1.91 2,0.55 z m 1.16,-112.01 1.1,4.15 2.02,-0.41 0.34,0.76 -0.96,3.16 -3.05,1.51 0.09,5.14 -0.59,1 0.84,1.23 -1.98,1.95 -1.84,2.96 -1,2.9 0.27,3.11 -1.73,3.34 1.29,5.69 0.73,0.61 -0.01,3.09 -1.6,3.31 0.06,2.87 -2.12,2.26 0.01,3.22 0.85,3.46 -1.68,1.3 -0.75,3.22 -0.66,3.75 0.47,4.54 -1.13,0.77 0.65,4.4 1.27,1.46 -0.92,1.63 1.3,0.78 0.3,1.48 -1.22,0.75 0.3,2.33 -1.02,5.35 -1.49,3.52 0.33,2.11 -0.89,2.68 -2.15,1.88 0.25,4.6 0.99,1.6 1.87,-0.28 -0.05,3.33 1.16,2.63 6.78,0.61 2.6,0.71 -2.49,-0.03 -1.35,1.13 -2.53,1.67 -0.45,4.38 -1.19,0.11 -3.16,-1.54 -3.21,-3.25 0,0 -3.49,-2.63 -0.88,-2.87 0.79,-2.62 -1.41,-2.94 -0.36,-7.34 1.19,-4.03 2.96,-3.19 -4.26,-1.19 2.67,-3.57 0.95,-6.56 3.12,1.37 1.46,-7.97 -1.88,-1 -0.88,4.75 -1.77,-0.54 0.88,-5.42 0.96,-6.84 1.29,-2.48 -0.81,-3.5 -0.23,-3.98 1.18,-0.11 1.72,-5.6 1.94,-5.43 1.19,-4.97 -0.65,-4.91 0.84,-2.67 -0.34,-3.96 1.64,-3.87 0.51,-6.04 0.9,-6.37 0.88,-6.75 -0.21,-4.87 -0.58,-4.15 1.44,-0.75 0.75,-1.5 1.37,1.99 0.37,2.12 1.47,1.25 -0.88,2.87 1.51,3.34 z\",\n                    \"CM\": \"m 512.17,457.32 -0.35,-0.15 -1.66,0.36 -1.71,-0.38 -1.33,0.19 -4.56,-0.07 0.41,-2.2 -1.1,-1.84 -1.28,-0.48 -0.57,-1.25 -0.72,-0.4 0.04,-0.77 0.72,-1.98 1.33,-2.7 0.81,-0.03 1.67,-1.64 1.07,-0.04 1.57,1.15 1.93,-0.95 0.26,-1.16 0.63,-1.14 0.43,-1.42 1.5,-1.16 0.57,-1.97 0.59,-0.63 0.4,-1.47 0.74,-1.81 2.36,-2.2 0.15,-0.95 0.31,-0.51 -1.11,-1.14 0.09,-0.9 0.79,-0.17 1.11,1.83 0.19,1.89 -0.1,1.89 1.52,2.57 -1.56,-0.03 -0.79,0.2 -1.28,-0.28 -0.61,1.33 1.65,1.65 1.22,0.48 0.4,1.17 0.88,1.93 -0.44,0.77 -1.41,2.84 -0.67,0.51 -0.22,2.17 0.28,1.18 -0.22,0.83 1.32,1.46 0.24,1 1.04,1.44 1.28,0.9 0.12,1.27 0.3,0.81 -0.2,1.5 -2.23,-0.66 -2.27,-0.73 z\",\n                    \"CN\": \"m 784.88,410.66 -2.42,1.41 -2.3,-0.91 -0.08,-2.53 1.38,-1.34 3.06,-0.83 1.61,0.07 0.63,1.13 -1.23,1.3 -0.65,1.7 z m 48.56,-107.52 4.88,1.38 3.32,3.03 1.13,3.95 4.26,0 2.43,-1.65 4.63,-1.24 -1.47,3.76 -1.09,1.51 -0.96,4.46 -1.89,3.89 -3.4,-0.7 -2.41,1.4 0.74,3.36 -0.4,4.55 -1.43,0.1 0.02,1.93 -1.81,-2.24 -1.11,2.13 -4.33,1.62 0.44,1.97 -2.42,-0.14 -1.33,-1.17 -1.93,2.64 -3.09,1.98 -2.28,2.35 -3.92,1.06 -2.06,1.69 -3.02,0.98 1.49,-1.67 -0.59,-1.41 2.22,-2.45 -1.48,-1.93 -2.44,1.3 -3.17,2.54 -1.73,2.34 -2.75,0.17 -1.43,1.68 1.48,2.41 2.29,0.58 0.09,1.58 2.22,1.02 3.14,-2.51 2.49,1.37 1.81,0.09 0.46,1.84 -3.97,0.97 -1.31,1.87 -2.73,1.73 -1.44,2.39 3.02,1.86 1.1,3.31 1.71,3.05 1.9,2.53 -0.05,2.43 -1.76,0.89 0.67,1.73 1.65,1 -0.43,2.61 -0.71,2.52 -1.57,0.28 -2.05,3.41 -2.27,4.09 -2.6,3.68 -3.86,2.82 -3.9,2.55 -3.16,0.35 -1.71,1.34 -0.97,-0.98 -1.59,1.5 -3.92,1.5 -2.97,0.46 -0.96,3.15 -1.55,0.17 -0.74,-2.16 0.66,-1.16 -3.76,-0.96 -1.33,0.49 -2.82,-0.78 -1.33,-1.22 0.44,-1.74 -2.56,-0.55 -1.35,-1.14 -2.39,1.62 -2.73,0.35 -2.24,-0.02 -1.5,0.74 -1.45,0.44 0.42,3.43 -1.5,-0.08 -0.25,-0.7 -0.08,-1.24 -2.06,0.87 -1.21,-0.55 -2.08,-1.13 0.82,-2.51 -1.78,-0.59 -0.67,-2.8 -2.96,0.51 0.34,-3.63 2.66,-2.58 0.11,-2.57 -0.08,-2.4 -1.22,-0.75 -0.94,-1.86 -1.64,0.24 -3.02,-0.47 0.95,-1.33 -1.31,-1.99 -2,1.35 -2.36,-0.78 -3.23,2.03 -2.55,2.36 -2.26,0.39 -1.23,-0.85 -1.48,-0.08 -2,-0.73 -1.51,0.8 -1.85,2.34 -0.24,-2.48 -1.71,0.66 -3.27,-0.31 -3.17,-0.73 -2.28,-1.39 -2.18,-0.63 -0.94,-1.53 -1.58,-0.46 -2.83,-2.09 -2.25,-0.99 -1.16,0.77 -3.9,-2.26 -2.75,-2.07 -0.79,-3.63 2.01,0.44 0.09,-1.69 -1.12,-1.71 0.28,-2.74 -3.01,-3.99 -4.61,-1.39 -0.83,-2.66 -2.07,-1.63 -0.5,-1.01 -0.42,-2.01 0.1,-1.38 -1.7,-0.81 -0.92,0.36 -0.71,-3.32 0.8,-0.83 -0.39,-0.85 2.68,-1.73 1.94,-0.72 2.97,0.49 1.06,-2.35 3.6,-0.44 1,-1.48 4.42,-2.03 0.39,-0.85 -0.22,-2.17 1.92,-1 -2.52,-6.75 5.55,-1.58 1.44,-0.89 2.02,-7.26 5.56,1.35 1.56,-1.86 0.13,-4.19 2.33,-0.39 2.13,-2.83 1.1,-0.35 0.74,2.97 2.36,2.23 4,1.57 1.93,3.32 -1.08,4.73 1.01,1.73 3.33,0.68 3.78,0.55 3.39,2.45 1.73,0.43 1.28,3.57 1.65,2.27 3.09,-0.09 5.79,0.85 3.73,-0.53 2.77,0.57 4.15,2.29 3.39,0 1.24,1.16 3.26,-2.01 4.53,-1.31 4.2,-0.14 3.28,-1.34 2.01,-2.05 1.96,-1.3 -0.45,-1.28 -0.9,-1.5 1.47,-2.54 1.58,0.36 2.88,0.8 2.79,-2.1 4.28,-1.55 2.05,-2.66 1.97,-1.16 4.07,-0.54 2.21,0.46 0.31,-1.45 -2.54,-2.89 -2.25,-1.33 -2.16,1.54 -2.77,-0.65 -1.59,0.53 -0.72,-1.71 1.98,-4.23 1.37,-3.25 3.37,1.63 3.95,-2.74 -0.03,-1.93 2.53,-4.73 1.56,-1.45 -0.04,-2.52 -1.54,-1.1 2.32,-2.31 3.48,-0.84 3.72,-0.13 4.2,1.39 2.46,1.71 1.73,4.61 1.05,1.94 0.98,2.73 1.05,4.31 z\",\n                    \"CO\": \"m 264.17,464.06 -1.2,-0.66 -1.38,-0.92 -0.8,0.44 -2.38,-0.39 -0.68,-1.2 -0.52,0.05 -2.81,-1.59 -0.38,-0.87 1.05,-0.21 -0.12,-1.39 0.65,-1.01 1.39,-0.19 1.19,-1.75 1.07,-1.46 -1.04,-0.67 0.53,-1.62 -0.63,-2.56 0.6,-0.73 -0.44,-2.37 -1.14,-1.5 0.36,-1.36 0.91,0.2 0.53,-0.84 -0.65,-1.65 0.34,-0.42 1.44,0.09 2.11,-1.97 1.15,-0.3 0.03,-0.93 0.52,-2.39 1.61,-1.32 1.76,-0.05 0.22,-0.59 2.2,0.23 2.21,-1.43 1.09,-0.64 1.35,-1.37 1,0.17 0.73,0.75 -0.54,0.96 -1.8,0.48 -0.71,1.42 -1.09,0.81 -0.81,1.06 -0.35,2.01 -0.77,1.66 1.44,0.18 0.36,1.3 0.62,0.62 0.22,1.13 -0.33,1.04 0.1,0.59 0.69,0.23 0.67,0.98 3.6,-0.27 1.63,0.36 1.98,2.41 1.13,-0.3 2.02,0.15 1.6,-0.32 0.99,0.49 -0.51,1.5 -0.62,0.94 -0.22,2.01 0.56,1.85 0.8,0.83 0.09,0.63 -1.42,1.39 1.02,0.61 0.75,0.98 0.85,2.77 -0.53,0.35 -0.54,-1.65 -0.78,-0.88 -0.93,0.96 -5.46,-0.06 0.03,1.74 1.64,0.29 -0.09,1.07 -0.56,-0.29 -1.58,0.46 -0.01,2.02 1.24,1.02 0.44,1.59 -0.07,1.21 -1.26,7.65 -1.4,-1.49 -0.84,-0.06 1.81,-2.84 -2.15,-1.31 -1.68,0.24 -1.01,-0.48 -1.55,0.74 -2.09,-0.35 -1.65,-2.92 -1.3,-0.72 -0.89,-1.32 -1.86,-1.32 z\",\n                    \"CR\": \"m 242.88,440.65 -1.52,-0.63 -0.57,-0.59 0.32,-0.49 -0.1,-0.62 -0.78,-0.68 -1.1,-0.55 -0.97,-0.36 -0.18,-0.83 -0.74,-0.51 0.18,0.83 -0.56,0.67 -0.64,-0.78 -0.9,-0.28 -0.38,-0.57 0.02,-0.86 0.37,-0.9 -0.79,-0.4 0.64,-0.54 0.42,-0.37 1.85,0.75 0.64,-0.37 0.89,0.24 0.47,0.58 0.82,0.19 0.67,-0.6 0.72,1.54 1.08,1.14 1.32,1.21 -1.09,0.25 0.02,1.13 0.58,0.42 -0.42,0.34 0.11,0.51 -0.23,0.57 z\",\n                    \"CU\": \"m 244.83,397.19 2.43,0.22 2.2,0.03 2.63,1.03 1.12,1.11 2.62,-0.34 0.99,0.7 2.38,1.87 1.74,1.35 0.92,-0.04 1.68,0.61 -0.21,0.84 2.07,0.12 2.12,1.22 -0.33,0.69 -1.87,0.38 -1.89,0.15 -1.93,-0.24 -4.01,0.29 1.88,-1.66 -1.14,-0.77 -1.81,-0.2 -0.97,-0.86 -0.67,-1.7 -1.58,0.11 -2.62,-0.8 -0.84,-0.63 -3.65,-0.47 -0.98,-0.59 1.05,-0.75 -2.75,-0.15 -2.01,1.56 -1.17,0.04 -0.4,0.74 -1.38,0.33 -1.2,-0.29 1.48,-0.93 0.6,-1.09 1.27,-0.67 1.43,-0.59 2.13,-0.29 z\",\n                    \"CY\": \"m 570.56,358.54 1.89,-1.46 -2.55,1.02 -2.02,-0.05 -0.4,0.83 -0.2,0.02 -1.33,0.12 0.65,1.37 1.37,0.44 2.88,-1.38 -0.09,-0.27 z\",\n                    \"CZ\": \"m 523.06,308.11 -1.3,-0.8 -1.31,0.22 -2.18,-1.3 -0.99,0.32 -1.57,1.74 -2.09,-1.37 -1.58,-1.83 -1.43,-1.04 -0.3,-1.82 -0.49,-1.3 2.04,-0.95 1.04,-1.1 2.01,-0.86 0.71,-0.84 0.74,0.51 1.25,-0.47 1.33,1.43 2.09,0.39 -0.17,1.21 1.52,0.9 0.42,-1.13 1.92,0.49 0.27,1.37 2.08,0.26 1.29,2.13 -0.83,0.01 -0.44,0.77 -0.64,0.19 -0.18,0.97 -0.54,0.21 -0.08,0.39 -0.95,0.44 -1.25,-0.07 z\",\n                    \"DE\": \"m 503.32,279.17 0.05,1.88 2.84,1.12 -0.03,1.7 2.85,-0.9 1.57,-1.31 3.17,1.89 1.32,1.51 0.66,2.39 -0.78,1.25 1.01,1.65 0.7,2.45 -0.22,1.56 1.15,2.86 -1.25,0.47 -0.74,-0.51 -0.71,0.84 -2.01,0.86 -1.04,1.1 -2.04,0.95 0.49,1.3 0.3,1.82 1.43,1.04 1.58,1.83 -0.98,1.95 -1.01,0.54 0.4,2.72 -0.27,0.7 -0.87,-0.85 -1.34,-0.12 -2.01,0.74 -2.47,-0.18 -0.4,1.09 -1.42,-1.14 -0.85,0.22 -3,-1.26 -0.58,0.9 -2.38,-0.03 0.35,-2.98 1.42,-2.9 -4.04,-0.78 -1.32,-1.13 0.16,-1.89 -0.56,-0.98 0.32,-2.97 -0.48,-4.69 1.69,0 0.71,-1.71 0.7,-4.23 -0.53,-1.58 0.55,-1 2.34,-0.26 0.52,1.04 1.91,-2.33 -0.64,-1.79 -0.13,-2.75 2.12,0.64 z\",\n                    \"DJ\": \"m 596.3,427.97 0.66,0.88 -0.09,1.19 -1.6,0.68 1.21,0.77 -1.04,1.52 -0.62,-0.5 -0.67,0.2 -1.57,-0.05 -0.05,-0.86 -0.21,-0.79 0.94,-1.33 0.99,-1.26 1.2,0.25 z\",\n                    \"DK\": \"m 511.08,276.09 -1.68,3.97 -2.93,-2.76 -0.39,-2.05 4.11,-1.66 0.89,2.5 z m -4.98,-4.25 -0.69,1.9 -0.83,-0.55 -2.02,3.59 0.76,2.39 -1.79,0.74 -2.12,-0.64 -1.14,-2.72 -0.08,-5.12 0.47,-1.38 0.8,-1.54 2.47,-0.32 0.98,-1.43 2.26,-1.47 -0.1,2.68 -0.83,1.68 0.34,1.43 1.52,0.76 z\",\n                    \"DO\": \"m 274.43,407.6 0.35,-0.51 2.19,0.02 1.66,0.76 0.74,-0.08 0.51,1.05 1.53,-0.06 -0.09,0.88 1.25,0.11 1.38,1.08 -1.04,1.2 -1.34,-0.64 -1.28,0.12 -0.92,-0.14 -0.51,0.54 -1.08,0.18 -0.42,-0.72 -0.93,0.43 -1.12,2 -0.72,-0.46 -0.15,-0.84 0.06,-0.8 -0.72,-0.88 0.68,-0.5 0.22,-1.13 z\",\n                    \"DZ\": \"m 509.15,396.33 -9.61,5.75 -8.12,5.85 -3.95,1.32 -3.11,0.29 -0.03,-1.88 -1.3,-0.48 -1.75,-0.85 -0.66,-1.39 -9.46,-6.55 -9.46,-6.65 -10.55,-7.53 0.06,-0.61 0,-0.21 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 2.69,-1.87 3.04,-0.6 1.77,-1.43 2.7,-1.05 4.75,-0.62 4.64,-0.29 1.41,0.52 2.64,-1.37 3,-0.03 1.14,0.81 1.91,-0.21 -0.57,1.79 0.45,3.28 -0.66,2.82 -1.73,1.88 0.25,2.53 2.29,1.98 0.03,0.81 1.72,1.33 1.2,5.86 0.91,2.84 0.15,1.48 -0.49,2.59 0.2,1.44 -0.36,1.72 0.25,1.97 -1.12,1.29 1.66,2.26 0.11,1.32 0.99,1.71 1.31,-0.56 2.22,1.42 z\",\n                    \"EC\": \"m 250.35,473.12 1.49,-2.08 -0.61,-1.22 -1.07,1.3 -1.68,-1.23 0.57,-0.78 -0.47,-2.53 0.98,-0.42 0.52,-1.73 1.06,-1.8 -0.2,-1.13 1.54,-0.6 1.92,-1.11 2.81,1.59 0.52,-0.05 0.68,1.2 2.38,0.39 0.8,-0.44 1.38,0.92 1.2,0.66 0.39,2.11 -0.87,1.81 -3.06,2.92 -3.37,1.1 -1.72,2.43 -0.53,1.88 -1.59,1.15 -1.17,-1.41 -1.14,-0.3 -1.16,0.22 -0.07,-1.02 0.8,-0.66 z\",\n                    \"EE\": \"m 543.67,264.96 0.33,-3.12 -1.03,0.67 -1.78,-1.9 -0.25,-3.11 3.55,-1.53 3.53,-0.81 3.04,0.92 2.9,-0.17 0.42,0.96 -1.99,3.14 0.83,4.96 -1.2,1.66 -2.32,-0.01 -2.41,-1.94 -1.23,-0.65 z\",\n                    \"EG\": \"m 573.42,377.53 -0.79,1.29 -0.6,2.4 -0.76,1.64 -0.66,0.56 -0.93,-1.02 -1.27,-1.42 -2,-4.57 -0.28,0.29 1.16,3.37 1.72,3.18 2.12,4.88 1.03,1.68 0.9,1.74 2.52,3.4 -0.56,0.53 0.09,1.97 3.27,2.71 0.49,0.62 -11.12,0 -10.88,0 -11.27,0 0,-11.23 0,-11.18 -0.84,-2.58 0.72,-2 -0.43,-1.39 1.01,-1.57 3.73,-0.05 2.7,0.86 2.78,0.97 1.3,0.5 2.16,-1.03 1.15,-0.93 2.48,-0.27 1.99,0.41 0.77,1.62 0.65,-1.07 2.24,0.77 2.19,0.19 1.38,-0.82 z\",\n                    \"EH\": \"m 438.82,383.31 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 -0.11,0.09 -0.05,0.04 -1.78,3.2 -1.86,1.14 -1.02,1.91 -0.06,1.65 -0.75,1.79 -0.94,0.49 -1.56,1.94 -0.96,2.15 0.18,1.02 -0.92,1.57 -1.08,0.82 -0.13,1.39 -0.12,1.27 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 0.06,-0.61 0,-0.21 z\",\n                    \"ER\": \"m 594.25,428.42 -0.96,-0.93 -1.15,-1.67 -1.24,-0.92 -0.73,-1 -2.44,-1.15 -1.92,-0.03 -0.68,-0.61 -1.64,0.68 -1.7,-1.31 -0.88,2.15 -3.26,-0.6 -0.3,-1.15 1.21,-4.25 0.27,-1.93 0.88,-0.9 2.07,-0.48 1.42,-1.67 1.63,3.38 0.77,2.67 1.54,1.41 3.82,2.72 1.56,1.64 1.52,1.66 0.88,0.98 1.38,0.86 -0.85,0.7 z\",\n                    \"ES\": \"m 450.17,334.81 0.14,-2.68 -1.14,-1.66 3.96,-2.77 3.43,0.7 3.77,-0.03 2.98,0.66 2.33,-0.2 4.53,0.12 1.12,1.49 5.16,1.73 1.02,-0.82 3.16,1.72 3.25,-0.49 0.15,2.19 -2.66,2.49 -3.59,0.78 -0.25,1.24 -1.73,2.03 -1.08,2.96 1.09,2.05 -1.62,1.6 -0.6,2.3 -2.12,0.7 -1.99,2.69 -3.55,0.05 -2.68,-0.06 -1.75,1.22 -1.07,1.31 -1.38,-0.29 -1.03,-1.17 -0.8,-2 -2.62,-0.54 -0.23,-1.16 1.04,-1.32 0.38,-0.96 -0.96,-1.06 0.77,-2.35 -1.12,-2.17 1.21,-0.3 0.11,-1.72 0.46,-0.53 0.03,-2.88 1.3,-1 -0.78,-1.88 -1.64,-0.13 -0.48,0.47 -1.65,0.01 -0.71,-1.84 -1.14,0.55 z\",\n                    \"ET\": \"m 581.79,421.48 1.7,1.31 1.64,-0.68 0.68,0.61 1.92,0.03 2.44,1.15 0.73,1 1.24,0.92 1.15,1.67 0.96,0.93 -0.99,1.26 -0.94,1.33 0.21,0.79 0.05,0.86 1.57,0.05 0.67,-0.2 0.62,0.5 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -1.92,0 -1.13,-0.94 -2.56,1.17 -0.83,1.16 -1.87,-0.22 -0.62,-0.32 -0.66,0.07 -0.88,-0.02 -3.55,-2.38 -1.95,0 -0.96,-0.91 0,-1.57 -1.46,-0.47 -1.65,-3.05 -1.28,-0.65 -0.5,-1.12 -1.42,-1.37 -1.72,-0.2 0.96,-1.61 1.48,-0.07 0.42,-0.86 -0.03,-2.53 0.83,-2.96 1.32,-0.8 0.29,-1.16 1.2,-2.17 1.69,-1.42 1.14,-2.81 0.45,-2.47 3.26,0.6 z\",\n                    \"FK\": \"m 303.91,633.38 3.36,-2.69 2.39,1.12 1.68,-1.79 2.24,2.01 -0.84,1.58 -3.79,1.36 -1.26,-1.59 -2.38,2.05 z\",\n                    \"FI\": \"m 555.67,193.35 -0.41,5.4 4.3,4.99 -2.59,5.48 3.26,7.96 -1.89,5.76 2.53,4.86 -1.15,4.14 4.15,4.26 -1.06,3.1 -2.6,3.45 -6,7.41 -5.09,0.45 -4.93,2.07 -4.56,1.18 -1.63,-3.07 -2.71,-1.87 0.62,-5.72 -1.36,-5.41 1.34,-3.58 2.54,-3.94 6.41,-7.02 1.88,-1.39 -0.3,-2.84 -3.9,-3.22 -0.94,-2.7 -0.08,-11.12 -4.37,-5.15 -3.74,-3.81 1.68,-2.08 3.12,4.15 3.66,-0.39 3.01,1.87 2.67,-3.44 1.38,-5.85 4.35,-2.78 3.6,3.26 z\",\n                    \"FJ\": \"m 980.78,508.86 -0.35,1.4 -0.23,0.16 -1.78,0.72 -1.79,0.61 -0.36,-1.09 1.4,-0.6 0.89,-0.16 1.64,-0.91 0.58,-0.13 z m -5.84,4.31 -1.27,-0.36 -1.08,1 0.27,1.29 1.55,0.36 1.74,-0.4 0.46,-1.53 -0.96,-0.84 -0.71,0.48 z\",\n                    \"FR\": \"m 502.31,333.79 -0.93,2.89 -1.27,-0.76 -0.65,-2.53 0.57,-1.41 1.81,-1.45 0.47,3.26 z m -16.75,-33.35 1.96,2.06 1.44,-0.34 2.45,1.97 0.63,0.37 0.81,-0.09 1.32,1.12 4.04,0.79 -1.42,2.9 -0.36,2.98 -0.77,0.71 -1.28,-0.38 0.09,1.05 -2.05,2.3 -0.04,1.84 1.34,-0.63 0.96,1.77 -0.12,1.13 0.83,1.5 -0.97,1.21 0.72,3.04 1.52,0.49 -0.32,1.68 -2.54,2.17 -5.53,-1.04 -4.08,1.24 -0.32,2.29 -3.25,0.49 -3.15,-1.72 -1.02,0.82 -5.16,-1.73 -1.12,-1.49 1.45,-2.32 0.53,-7.88 -2.89,-4.26 -2.07,-2.09 -4.29,-1.6 -0.28,-3.07 3.64,-0.92 4.71,1.09 -0.89,-4.84 2.65,1.85 6.53,-3.37 0.84,-3.61 2.45,-0.9 0.41,1.56 1.3,0.07 1.3,1.79 z\",\n                    \"GA\": \"m 506.61,474.73 -2.88,-2.82 -1.86,-2.3 -1.7,-2.88 0.09,-0.92 0.61,-0.9 0.68,-2.02 0.57,-2.07 0.95,-0.16 4.07,0.03 -0.02,-3.35 1.33,-0.19 1.71,0.38 1.66,-0.36 0.35,0.15 -0.21,1.22 0.79,1.43 2.08,-0.22 0.7,0.55 -1.21,3.23 1.32,1.64 0.31,2.18 -0.35,1.85 -0.86,1.32 -2.48,-0.12 -1.5,-1.34 -0.22,1.24 -1.89,0.34 -0.96,0.7 1.05,1.85 z\",\n                    \"GB\": \"m 459.63,281.25 -1.5,3.29 -2.12,-0.98 -1.73,0.07 0.58,-2.57 -0.58,-2.6 2.35,-0.2 3,2.99 z m 7.45,-20.76 -3,5.73 2.86,-0.72 3.07,0.03 -0.73,4.22 -2.52,4.53 2.9,0.32 0.22,0.52 2.5,5.79 1.92,0.77 1.73,5.41 0.8,1.84 3.4,0.88 -0.34,2.93 -1.43,1.33 1.12,2.33 -2.52,2.33 -3.75,-0.04 -4.77,1.21 -1.31,-0.87 -1.85,2.06 -2.59,-0.5 -1.97,1.67 -1.49,-0.87 4.11,-4.64 2.51,-0.97 -0.02,0 -4.38,-0.75 -0.79,-1.8 2.93,-1.41 -1.54,-2.48 0.53,-3.06 4.17,0.42 0,0 0.41,-2.74 -1.88,-2.95 -0.04,-0.07 -3.4,-0.85 -0.67,-1.32 1.02,-2.2 -0.92,-1.37 -1.51,2.34 -0.16,-4.8 -1.42,-2.59 1.02,-5.36 2.18,-4.31 2.24,0.42 3.36,-0.41 z\",\n                    \"GE\": \"m 592.01,336.1 0.42,-1.6 -0.7,-2.57 -1.62,-1.41 -1.55,-0.44 -1.03,-1.17 0.34,-0.46 2.37,0.66 4.13,0.62 3.82,1.83 0.49,0.71 1.7,-0.6 2.62,0.8 0.85,1.55 1.77,0.87 -0.73,0.51 1.38,2.02 -0.38,0.43 -1.51,-0.22 -2.09,-1.06 -0.69,0.6 -3.9,0.58 -2.7,-1.82 z\",\n                    \"GF\": \"m 328.14,456.66 -1.07,1.06 -1.34,0.2 -0.38,-0.78 -0.63,-0.12 -0.87,0.76 -1.22,-0.57 0.71,-1.19 0.24,-1.27 0.48,-1.2 -1.09,-1.65 -0.22,-1.91 1.46,-2.41 0.95,0.31 2.06,0.66 2.97,2.36 0.46,1.14 -1.66,2.55 -0.85,2.06 z\",\n                    \"GH\": \"m 478.48,447.09 -4.4,1.64 -1.56,0.96 -2.53,0.81 -2.5,-0.79 0.13,-1.11 -1.21,-2.41 0.73,-3.17 1.18,-2.36 -0.74,-4.01 -0.39,-2.13 0.07,-1.61 4.87,-0.13 1.24,0.21 0.9,-0.46 1.3,0.22 -0.21,0.89 1.17,1.46 0,2.05 0.27,2.22 0.7,1.03 -0.62,2.53 0.22,1.4 0.75,1.78 z\",\n                    \"GL\": \"m 344.38,24.16 9.42,-13.61 9.84,1.07 3.57,-8.95 9.91,-2.42 22.4,3.15 17.54,18.59 -5.18,8.3 -10.73,0.93 -15.09,2.03 1.41,3.64 9.93,-2.24 8.44,6.91 5.45,-6.12 2.33,7.15 -3.08,10.97 7.14,-6.93 13.61,-7.55 8.41,3.81 1.57,8.12 -11.43,12.66 -1.58,3.9 -8.96,2.86 6.49,0.79 -3.28,11.51 -2.26,9.59 0.09,15.26 3.37,8.34 -4.38,0.51 -4.61,3.88 5.17,6.3 0.66,9.62 -3,1.02 3.63,9.15 -6.22,0.75 3.25,4.14 -0.92,3.51 -3.95,1.51 -3.91,0.03 3.51,6.48 0.04,4.13 -5.55,-3.83 -1.44,2.49 3.78,2.29 3.68,5.48 1.06,6.95 -5,1.62 -2.16,-3.26 -3.47,-4.98 0.96,5.87 -3.25,4.41 7.38,0.35 3.87,0.45 -7.52,7.03 -7.62,6.13 -8.2,2.61 -3.09,0.04 -2.9,2.87 -3.9,7.63 -6.03,4.89 -1.94,0.29 -3.74,1.67 -4.02,1.59 -2.41,4.12 -0.04,4.56 -1.41,4.16 -4.58,4.95 1.13,4.71 -1.26,4.85 -1.43,5.56 -3.95,0.34 -4.14,-4.63 -5.61,-0.03 -2.72,-3.18 -1.87,-5.8 -4.86,-7.68 -1.42,-4.15 -0.38,-5.89 -3.89,-6.27 1.01,-5.17 -1.87,-2.53 2.77,-8.65 4.22,-2.85 1.11,-3.26 0.59,-6.26 -3.21,2.86 -1.52,1.19 -2.52,1.14 -3.44,-2.61 -0.19,-5.55 1.1,-4.48 2.6,-0.12 5.72,2.25 -4.82,-5.43 -2.51,-3.01 -2.79,1.24 -2.34,-2.19 3.13,-8.5 -1.7,-3.53 -2.23,-6.74 -3.37,-10.91 -3.57,-4.17 0.03,-4.63 -7.53,-6.69 -5.95,-0.85 -7.49,0.47 -6.84,0.86 -3.26,-3.75 -4.87,-7.66 7.36,-3.97 5.65,-0.68 -12,-3.36 -6.32,-5.44 0.39,-5.34 10.61,-6.87 10.27,-7.16 1.08,-5.64 -7.56,-5.76 2.44,-6.64 9.71,-12.33 4.08,-1.98 -1.17,-8.57 6.64,-5.24 8.62,-3.21 8.62,-0.18 3.06,6.3 7.44,-11.32 6.69,7.78 3.93,1.59 5.83,6.41 L 344,33.25 z\",\n                    \"GM\": \"m 428.28,426.68 0.36,-1.27 3.05,-0.09 0.64,-0.67 0.89,-0.05 1.1,0.71 0.87,0.01 0.93,-0.48 0.56,0.82 -1.21,0.65 -1.22,-0.05 -1.2,-0.61 -1.04,0.66 -0.5,0.03 -0.68,0.4 z\",\n                    \"GN\": \"m 451.84,442.16 -0.79,-0.07 -0.57,1.13 -0.8,-0.01 -0.54,-0.6 0.18,-1.13 -1.17,-1.72 -0.73,0.31 -0.6,0.07 -0.77,0.16 0.03,-1.03 -0.45,-0.74 0.09,-0.82 -0.61,-1.19 -0.78,-1.01 -2.24,0 -0.65,0.53 -0.78,0.06 -0.48,0.61 -0.32,0.79 -1.5,1.24 -1.23,-1.67 -1.09,-1.11 -0.72,-0.36 -0.7,-0.57 -0.31,-1.25 -0.41,-0.62 -0.82,-0.47 1.25,-1.38 0.85,0.05 0.73,-0.48 0.62,0 0.44,-0.38 -0.24,-0.94 0.31,-0.3 0.05,-0.97 1.35,0.03 2.02,0.7 0.62,-0.07 0.21,-0.31 1.52,0.22 0.41,-0.16 0.16,1.05 0.45,-0.01 0.73,-0.38 0.46,0.1 0.78,0.72 1.2,0.23 0.77,-0.62 0.91,-0.38 0.67,-0.4 0.56,0.08 0.62,0.62 0.34,0.79 1.15,1.19 -0.58,0.73 -0.11,0.92 0.6,-0.28 0.35,0.34 -0.15,0.84 0.86,0.82 -0.56,0.21 -0.23,0.97 0.65,1.16 0.69,2.26 -1.04,0.34 -0.27,0.39 0.22,0.54 -0.16,1.23 z\",\n                    \"GQ\": \"m 502.12,460.82 -0.53,-0.42 0.97,-3.13 4.56,0.07 0.02,3.35 -4.07,-0.03 z\",\n                    \"GR\": \"m 541.95,356.96 1.53,1.16 2.18,-0.19 2.09,0.24 -0.07,0.6 1.53,-0.41 -0.35,1.01 -4.04,0.29 0.03,-0.56 -3.42,-0.67 0.52,-1.47 z m 8.15,-20.96 -0.87,2.33 -0.67,0.41 -1.71,-0.1 -1.46,-0.35 -3.4,0.96 1.94,2.06 -1.42,0.59 -1.56,0 -1.48,-1.88 -0.53,0.8 0.63,2.18 1.4,1.7 -1.06,0.79 1.56,1.65 1.39,1.03 0.04,2 -1.36,-1.15 -1.24,0.21 0.83,1.8 -0.92,0.19 -1,-0.69 1.2,3.95 -0.58,0 -0.45,-1.25 -0.57,-0.02 -0.26,1.32 -0.45,-0.3 0.1,-0.74 -0.56,-1.04 H 537 l 0.12,0.84 -0.25,0.27 -0.62,-0.54 -0.38,-1.01 0.52,-0.57 -0.36,-0.74 -0.41,-0.38 -0.42,-0.09 -0.49,-0.94 0.58,-0.52 0.36,-0.48 0.56,0.1 0.25,-0.41 0.59,-0.16 0.68,0.46 0.55,0.17 0.39,-0.62 -0.94,-0.08 -0.56,-0.19 -1.25,0.28 -1.22,0.05 -1.09,-1.64 -0.18,-0.25 0.17,-0.64 -1.42,-1.15 -0.19,-1.03 1.3,-1.76 0.17,-1.19 0.91,-0.53 0.06,-0.97 1.83,-0.33 1.07,-0.81 1.52,0.07 0.46,-0.65 0.53,-0.12 2.07,0.11 2.25,-1.02 1.98,1.3 2.55,-0.35 0.03,-1.86 1.38,0.93 z\",\n                    \"GT\": \"m 222.89,425 -1.44,-0.5 -1.75,-0.05 -1.28,-0.57 -1.51,-1.18 0.07,-0.84 0.32,-0.68 -0.39,-0.54 1.35,-2.36 3.59,-0.01 0.08,-0.98 -0.46,-0.18 -0.31,-0.63 -1.04,-0.67 -1.04,-0.98 1.27,0 0,-1.65 2.62,0 2.59,0.03 -0.02,2.31 -0.22,3.28 0.83,0 0.92,0.53 0.24,-0.44 0.82,0.37 -1.27,1.11 -1.33,0.81 -0.2,0.55 0.22,0.56 -0.58,0.74 -0.66,0.17 0.15,0.34 -0.52,0.32 -0.96,0.72 z\",\n                    \"GW\": \"m 433.08,432.69 -1.5,-1.19 -1.18,-0.18 -0.64,-0.81 0.01,-0.43 -0.85,-0.6 -0.18,-0.61 1.49,-0.47 0.93,0.09 0.75,-0.32 5.18,0.12 -0.05,0.97 -0.31,0.3 0.24,0.94 -0.44,0.38 -0.62,0 -0.73,0.48 -0.85,-0.05 z\",\n                    \"GY\": \"m 307.95,440.25 1.84,1.03 1.74,1.83 0.07,1.45 1.06,0.07 1.5,1.36 1.11,0.98 -0.45,2.52 -1.7,0.73 0.15,0.65 -0.52,1.45 1.25,2.02 0.89,0.01 0.37,1.57 1.71,2.42 -0.68,0.1 -1.55,-0.23 -0.91,0.74 -1.27,0.49 -0.88,0.12 -0.31,0.54 -1.38,-0.14 -1.73,-1.3 -0.2,-1.29 -0.72,-1.41 0.45,-2.38 0.78,-0.98 -0.65,-1.3 -0.96,-0.42 0.37,-1.23 -0.66,-0.64 -1.46,0.12 -1.89,-2.12 0.76,-0.77 -0.06,-1.3 1.73,-0.45 0.69,-0.52 -0.96,-1.04 0.25,-1.03 z\",\n                    \"HN\": \"m 230.68,427.15 -0.48,-0.89 -0.86,-0.25 0.2,-1.15 -0.38,-0.31 -0.58,-0.2 -1.23,0.34 -0.1,-0.39 -0.85,-0.46 -0.6,-0.57 -0.83,-0.24 0.58,-0.74 -0.22,-0.56 0.2,-0.55 1.33,-0.81 1.27,-1.11 0.29,0.12 0.62,-0.51 0.8,-0.04 0.26,0.23 0.44,-0.14 1.3,0.26 1.3,-0.08 0.9,-0.32 0.33,-0.32 0.89,0.15 0.67,0.2 0.73,-0.07 0.56,-0.25 1.28,0.4 0.45,0.06 0.85,0.54 0.81,0.65 1.02,0.44 0.74,0.8 -0.96,-0.06 -0.39,0.39 -0.97,0.38 -0.71,0 -0.62,0.37 -0.56,-0.13 -0.48,-0.44 -0.29,0.08 -0.36,0.69 -0.27,-0.03 -0.05,0.6 -0.98,0.79 -0.51,0.34 -0.29,0.36 -0.83,-0.58 -0.6,0.76 -0.59,-0.02 -0.66,0.07 0.06,1.41 -0.41,0.02 -0.35,0.66 z\",\n                    \"HR\": \"m 528.3,319.18 0.68,1.55 0.89,1.14 -1.08,1.49 -1.27,-0.88 -1.94,0.06 -2.41,-0.66 -1.31,0.09 -0.6,0.82 -1.01,-0.91 -0.59,1.64 1.38,1.83 0.6,1.21 1.29,1.45 1.07,0.85 1.06,1.61 2.48,1.44 -0.31,0.64 -2.63,-1.4 -1.63,-1.38 -2.56,-1.14 -2.36,-2.85 0.57,-0.3 -1.28,-1.64 -0.06,-1.34 -1.8,-0.62 -0.86,1.71 -0.83,-1.33 0.07,-1.38 0.1,-0.06 1.95,0.14 0.52,-0.68 0.95,0.65 1.1,0.08 -0.01,-1.12 0.97,-0.41 0.28,-1.62 2.23,-1.08 0.89,0.5 2.1,1.73 2.31,0.77 z\",\n                    \"HT\": \"m 270.29,407 1.71,0.13 2.43,0.47 0.25,1.61 -0.22,1.13 -0.68,0.5 0.72,0.88 -0.06,0.8 -1.86,-0.5 -1.32,0.2 -1.71,-0.21 -1.31,0.55 -1.51,-0.92 0.25,-0.95 2.58,0.41 2.12,0.24 1.01,-0.66 -1.28,-1.27 0.02,-1.13 -1.77,-0.46 z\",\n                    \"HU\": \"m 520.93,315.36 0.93,-2.65 -0.54,-0.89 1.58,-0.01 0.21,-1.71 1.43,1.07 1.03,0.46 2.36,-0.51 0.22,-0.84 1.12,-0.13 1.36,-0.65 0.3,0.27 1.32,-0.52 0.66,-1 0.92,-0.25 3,1.28 0.6,-0.43 1.55,1.14 0.2,1.12 -1.71,0.87 -1.33,2.8 -1.69,2.76 -2.25,0.76 -1.75,-0.17 -2.15,1.05 -1.05,0.6 -2.31,-0.77 -2.1,-1.73 -0.89,-0.5 -0.55,-1.37 z\",\n                    \"ID\": \"m 813.97,492.31 -1.18,0.05 -3.72,-1.98 2.61,-0.56 1.47,0.86 0.98,0.86 -0.16,0.77 z m 10.43,-0.28 -2.4,0.62 -0.34,-0.34 0.25,-0.96 1.21,-1.72 2.77,-1.12 0.28,0.56 0.05,0.86 -1.82,2.1 z m -18.32,-5.77 1.01,0.75 1.73,-0.23 0.7,1.2 -3.24,0.57 -1.94,0.38 -1.51,-0.02 0.96,-1.62 1.54,-0.02 0.75,-1.01 z m 14.03,-0.01 -0.41,1.56 -4.21,0.8 -3.73,-0.35 -0.01,-1.03 2.23,-0.59 1.76,0.84 1.87,-0.21 2.5,-1.02 z m -40.04,-3.69 5.37,0.28 0.62,-1.16 5.2,1.35 1.02,1.82 4.21,0.51 3.44,1.67 -3.2,1.07 -3.08,-1.13 -2.54,0.08 -2.91,-0.21 -2.62,-0.51 -3.25,-1.07 -2.06,-0.28 -1.17,0.35 -5.11,-1.16 -0.49,-1.21 -2.57,-0.21 1.92,-2.68 3.4,0.17 2.26,1.09 1.16,0.21 0.4,1.02 z m 73.18,-1.58 -1.44,1.91 -0.27,-2.11 0.5,-1.01 0.59,-0.95 0.64,0.82 -0.02,1.34 z m -20.96,-7.71 -1.05,0.93 -1.94,-0.51 -0.55,-1.2 2.84,-0.13 0.7,0.91 z m 9.04,-1.01 1.02,2.13 -2.37,-1.15 -2.34,-0.23 -1.58,0.18 -1.94,-0.1 0.67,-1.53 3.46,-0.12 3.08,0.82 z m 10.29,-5.42 0.78,4.51 2.9,1.67 2.34,-2.96 3.22,-1.68 2.49,0 2.4,0.97 2.08,1 3.01,0.53 0.05,9.1 0.05,9.16 -2.5,-2.31 -2.85,-0.57 -0.69,0.8 -3.55,0.09 1.19,-2.29 1.77,-0.78 -0.73,-3.05 -1.35,-2.35 -5.44,-2.37 -2.31,-0.23 -4.21,-2.58 -0.83,1.36 -1.08,0.25 -0.64,-1.02 -0.01,-1.21 -2.14,-1.37 3.02,-1 2,0.05 -0.24,-0.74 -4.1,-0.01 -1.11,-1.66 -2.5,-0.51 -1.19,-1.38 3.78,-0.67 1.44,-0.91 4.5,1.14 0.45,1.02 z m -24.96,-7.16 -2.25,2.76 -2.11,0.54 -2.7,-0.54 -4.67,0.14 -2.45,0.4 -0.4,2.11 2.51,2.48 1.51,-1.26 5.23,-0.95 -0.23,1.28 -1.22,-0.4 -1.22,1.63 -2.47,1.08 2.65,3.57 -0.51,0.96 2.52,3.22 -0.02,1.84 -1.5,0.82 -1.1,-0.98 1.36,-2.29 -2.75,1.08 -0.7,-0.77 0.36,-1.08 -2.02,-1.64 0.21,-2.72 -1.87,0.85 0.24,3.25 0.11,4 -1.78,0.41 -1.2,-0.82 0.8,-2.57 -0.43,-2.69 -1.18,-0.02 -0.87,-1.91 1.16,-1.83 0.4,-2.21 1.41,-4.2 0.59,-1.15 2.38,-2.07 2.19,0.82 3.54,0.39 3.22,-0.12 2.77,-2.02 0.49,0.61 z m 9.67,0.8 -0.15,2.43 -1.45,-0.27 -0.43,1.69 1.16,1.47 -0.79,0.33 -1.13,-1.76 -0.83,-3.56 0.56,-2.23 0.93,-1.01 0.2,1.52 1.66,0.24 0.27,1.15 z m -30.32,-1.94 3.14,2.58 -3.32,0.33 -0.94,1.9 0.12,2.52 -2.7,1.91 -0.06,2.77 -1.08,4.27 -0.41,-0.99 -3.19,1.26 -1.11,-1.71 -2,-0.16 -1.4,-0.89 -3.33,1 -1.02,-1.35 -1.84,0.15 -2.31,-0.32 -0.43,-3.74 -1.4,-0.77 -1.35,-2.38 -0.39,-2.44 0.33,-2.58 1.67,-1.85 0.47,1.86 1.92,1.57 1.81,-0.57 1.79,0.2 1.63,-1.41 1.34,-0.24 2.65,0.78 2.29,-0.59 1.44,-3.88 1.08,-0.97 0.97,-3.17 3.22,0 2.43,0.47 -1.59,2.52 2.06,2.64 -0.49,1.28 z m -33.81,21.42 -3.1,0.06 -2.36,-2.34 -3.6,-2.28 -1.2,-1.69 -2.12,-2.27 -1.39,-2.09 -2.13,-3.9 -2.46,-2.32 -0.82,-2.39 -1.03,-2.17 -2.53,-1.75 -1.47,-2.39 -2.11,-1.56 -2.92,-3.08 -0.25,-1.42 1.81,0.11 4.34,0.54 2.48,2.73 2.17,1.89 1.55,1.16 2.66,3 2.85,0.04 2.36,1.91 1.62,2.33 2.13,1.27 -1.12,2.27 1.61,0.97 1.01,0.07 0.48,1.94 0.98,1.56 2.06,0.25 1.36,1.76 -0.7,3.47 -0.16,4.32 z\",\n                    \"IE\": \"m 458.13,284.54 0.46,3.36 -2.12,4.12 -4.97,2.68 -3.97,-0.68 2.27,-4.78 -1.46,-4.77 3.81,-3.75 2.12,-2.27 0.58,2.6 -0.58,2.57 1.74,-0.06 z\",\n                    \"IL\": \"m 575.66,367.07 -0.49,1.05 -1.02,-0.46 -0.58,2.2 0.7,0.36 -0.71,0.46 -0.13,0.86 1.32,-0.45 0.07,1.27 -1.4,5.17 -1.84,-5.55 0.81,-1.08 -0.19,-0.19 0.74,-1.53 0.57,-2.5 0.4,-0.84 0.08,-0.03 0.94,0 0.26,-0.58 0.75,-0.05 0.04,1.37 -0.38,0.5 z\",\n                    \"IN\": \"m 693.75,357.69 3.01,3.99 -0.28,2.74 1.11,1.71 -0.09,1.69 -2.01,-0.44 0.79,3.63 2.75,2.06 3.9,2.27 -1.78,1.46 -1.09,2.99 2.72,1.2 2.64,1.55 3.66,1.77 3.84,0.41 1.62,1.59 2.16,0.29 3.38,0.73 2.33,-0.05 0.32,-1.24 -0.37,-1.99 0.22,-1.35 1.71,-0.67 0.24,2.48 0.05,0.63 2.55,1.19 1.77,-0.49 2.36,0.21 2.29,-0.09 0.2,-1.93 -1.14,-1 2.26,-0.4 2.55,-2.35 3.23,-2.03 2.35,0.78 2,-1.34 1.32,1.98 -0.95,1.34 3.02,0.47 0.22,1.2 -0.99,0.58 0.23,1.93 -2,-0.57 -3.63,2.16 0.08,1.78 -1.54,2.6 -0.15,1.5 -1.25,2.52 -2.19,-0.7 -0.11,3.15 -0.63,1.03 0.3,1.28 -1.39,0.72 -1.47,-4.8 -0.78,0.01 -0.46,1.94 -1.53,-1.58 0.86,-1.73 1.26,-0.18 1.29,-2.59 -1.61,-0.53 -2.61,0.05 -2.66,-0.42 -0.25,-2.15 -1.34,-0.16 -2.22,-1.34 -0.99,2.11 2.02,1.63 -1.75,1.15 -0.62,1.12 1.72,0.82 -0.47,1.84 0.97,2.28 0.44,2.48 -0.41,1.1 -1.9,-0.04 -3.46,0.62 0.16,2.25 -1.5,1.76 -4.03,2 -3.14,3.46 -2.11,1.85 -2.79,1.91 0,1.34 -1.4,0.72 -2.53,1.03 -1.31,0.16 -0.84,2.2 0.58,3.75 0.15,2.37 -1.18,2.71 -0.02,4.83 -1.45,0.14 -1.27,2.15 0.85,0.93 -2.56,0.8 -0.94,1.92 -1.13,0.81 -2.65,-2.63 -1.3,-3.96 -1.08,-2.86 -0.98,-1.34 -1.49,-2.74 -0.69,-3.58 -0.49,-1.8 -2.55,-3.97 -1.16,-5.64 -0.84,-3.77 0.01,-3.58 -0.54,-2.8 -4.08,1.79 -1.98,-0.36 -3.66,-3.63 1.35,-1.09 -0.83,-1.18 -3.29,-2.58 1.87,-2.04 6.17,0.01 -0.56,-2.64 -1.57,-1.56 -0.32,-2.39 -1.84,-1.4 3.09,-3.3 3.26,0.24 2.93,-3.32 1.76,-3.26 2.72,-3.24 -0.04,-2.33 2.39,-1.91 -2.27,-1.63 -0.97,-2.25 -0.99,-2.95 1.37,-1.46 4.26,0.83 3.12,-0.51 z\",\n                    \"IQ\": \"m 602.86,356.02 1.83,1.04 0.22,2 -1.42,1.17 -0.65,2.64 1.95,3.18 3.43,1.82 1.45,2.5 -0.46,2.37 0.89,0 0.03,1.73 1.55,1.69 -1.66,-0.15 -1.89,-0.27 -2.06,3.08 -5.21,-0.26 -7.9,-6.49 -4.18,-2.29 -3.38,-0.89 -1.13,-4.04 6.21,-3.5 1.06,-4.12 -0.27,-2.52 1.54,-0.86 1.44,-2.18 1.2,-0.55 3.26,0.46 0.99,0.89 1.34,-0.59 z\",\n                    \"IR\": \"m 626.69,351.78 2.47,-0.68 1.99,-2.02 1.87,0.1 1.23,-0.66 2,0.33 3.1,1.79 2.24,0.39 3.2,3.09 2.09,0.12 0.25,2.91 -1.14,4.25 -0.77,2.45 1.22,0.49 -1.2,1.83 0.92,2.64 0.22,2.09 2.12,0.55 0.23,2.1 -2.54,2.93 1.38,1.68 1.13,1.93 2.68,1.4 0.08,2.77 1.34,0.51 0.23,1.44 -4.04,1.61 -1.06,3.6 -5.27,-0.93 -3.06,-0.71 -3.16,-0.41 -1.2,-3.81 -1.34,-0.56 -2.16,0.56 -2.82,1.51 -3.43,-1.03 -2.83,-2.41 -2.7,-0.9 -1.87,-3.01 -2.07,-4.27 -1.51,0.52 -1.78,-1.07 -1.05,1.26 -1.55,-1.69 -0.03,-1.73 -0.89,0 0.46,-2.37 -1.45,-2.5 -3.43,-1.82 -1.95,-3.18 0.65,-2.64 1.42,-1.17 -0.22,-2 -1.83,-1.04 -1.82,-4.14 -1.53,-2.83 0.54,-1.09 -0.87,-4.12 1.92,-1.03 0.44,1.37 1.42,1.66 1.92,0.47 1.02,-0.1 3.31,-2.66 1.05,-0.27 0.82,1.07 -0.96,1.78 1.75,1.86 0.69,-0.17 0.89,2.61 2.66,0.73 1.95,1.76 3.98,0.6 4.38,-0.92 z\",\n                    \"IS\": \"m 434.82,212.68 -0.64,4.48 3.16,4.6 -3.64,5.01 -8.09,4.38 -2.42,1.15 -3.69,-0.93 -7.82,-2.01 2.76,-2.84 -6.1,-3.2 4.96,-1.28 -0.12,-1.97 -5.88,-1.57 1.89,-4.47 4.25,-1.03 4.37,4.68 4.26,-3.75 3.53,1.96 4.57,-3.71 z\",\n                    \"IT\": \"m 519.02,348.13 -1.01,2.78 0.42,1.09 -0.59,1.79 -2.14,-1.31 -1.43,-0.38 -3.91,-1.79 0.39,-1.82 3.28,0.32 2.86,-0.39 2.13,-0.29 z m -17.69,-10.82 1.68,2.62 -0.39,4.81 -1.27,-0.23 -1.14,1.2 -1.06,-0.95 -0.11,-4.38 -0.64,-2.1 1.54,0.19 1.39,-1.16 z m 8.87,-21.6 4.01,1.05 -0.3,1.99 0.67,1.71 -2.23,-0.58 -2.28,1.42 0.16,1.97 -0.34,1.12 0.92,1.99 2.63,1.95 1.41,3.17 3.12,3.05 2.2,-0.02 0.68,0.83 -0.79,0.74 2.51,1.35 2.06,1.12 2.4,1.92 0.29,0.68 -0.52,1.31 -1.56,-1.7 -2.44,-0.6 -1.18,2.36 2.03,1.34 -0.33,1.88 -1.17,0.21 -1.5,3.06 -1.17,0.27 0.01,-1.08 0.57,-1.91 0.61,-0.77 -1.09,-2.09 -0.86,-1.83 -1.16,-0.46 -0.83,-1.58 -1.8,-0.67 -1.21,-1.49 -2.07,-0.24 -2.19,-1.68 -2.56,-2.45 -1.91,-2.19 -0.87,-3.8 -1.4,-0.45 -2.28,-1.29 -1.29,0.53 -1.62,1.8 -1.17,0.28 0.32,-1.68 -1.52,-0.49 -0.72,-3.04 0.97,-1.21 -0.83,-1.5 0.12,-1.13 1.21,0.86 1.35,-0.19 1.57,-1.36 0.49,0.64 1.34,-0.13 0.61,-1.63 2.07,0.51 1.24,-0.68 0.22,-1.67 1.7,0.58 0.33,-0.78 2.77,-0.71 0.6,1.39 z\",\n                    \"JM\": \"m 258.01,411.21 1.89,0.26 1.49,0.71 0.46,0.8 -1.97,0.05 -0.85,0.49 -1.57,-0.47 -1.6,-1.07 0.33,-0.67 1.18,-0.2 z\",\n                    \"JO\": \"m 575.17,368.12 0.49,-1.05 3.12,1.32 5.49,-3.54 1.13,4.04 -0.53,0.49 -5.62,1.65 2.8,3.26 -0.93,0.54 -0.46,1.09 -2.14,0.44 -0.67,1.16 -1.22,0.98 -3.12,-0.51 -0.09,-0.46 1.4,-5.17 -0.07,-1.27 0.42,-0.96 z\",\n                    \"JP\": \"m 853.01,362.26 0.36,1.15 -1.58,2.03 -1.15,-1.07 -1.44,0.78 -0.74,1.95 -1.83,-0.95 0.02,-1.58 1.55,-2 1.59,0.39 1.15,-1.42 2.07,0.72 z m 17.77,-10.28 -1.06,2.78 0.49,1.73 -1.46,2.42 -3.58,1.6 -4.93,0.21 -4,3.84 -1.88,-1.29 -0.11,-2.52 -4.88,0.75 -3.32,1.59 -3.28,0.06 2.84,2.46 -1.87,5.61 -1.81,1.37 -1.36,-1.27 0.69,-2.96 -1.77,-0.96 -1.14,-2.28 2.65,-1.03 1.47,-2.11 2.82,-1.75 2.06,-2.33 5.58,-1.02 3,0.7 2.93,-6.17 1.87,1.67 4.11,-3.51 1.59,-1.38 1.76,-4.38 -0.48,-4.1 1.18,-2.33 2.98,-0.68 1.53,5.11 -0.08,2.94 -2.59,3.6 0.05,3.63 z m 8.23,-25.93 1.97,0.83 1.98,-1.65 0.62,4.35 -4.16,1.05 -2.46,3.76 -4.41,-2.58 -1.53,4.12 -3.12,0.06 -0.39,-3.74 1.39,-2.94 3,-0.21 0.82,-5.38 0.83,-3.09 3.29,4.12 2.17,1.3 z\",\n                    \"KE\": \"m 590.44,466.03 1.66,2.29 -1.96,1.12 -0.69,1.16 -1.06,0.2 -0.39,1.97 -0.9,1.12 -0.55,1.86 -1.13,0.92 -4.02,-2.79 -0.2,-1.62 -10.16,-5.67 -0.48,-0.31 -0.02,-2.95 0.8,-1.13 1.38,-1.84 1.02,-2.03 -1.23,-3.2 -0.33,-1.4 -1.33,-1.94 1.72,-1.67 1.9,-1.84 1.46,0.47 0,1.57 0.96,0.91 1.95,0 3.55,2.38 0.88,0.02 0.66,-0.07 0.62,0.32 1.87,0.22 0.83,-1.16 2.56,-1.17 1.13,0.94 1.92,0 -2.45,3.17 z\",\n                    \"KG\": \"m 674.47,333.36 0.63,-1.66 1.84,-0.54 4.62,1.31 0.43,-2.24 1.59,-0.8 4,1.61 1.02,-0.42 4.65,0.1 4.16,0.4 1.4,1.37 1.73,0.55 -0.39,0.86 -4.42,2.03 -1,1.48 -3.6,0.44 -1.06,2.35 -2.97,-0.49 -1.93,0.72 -2.68,1.72 0.39,0.85 -0.8,0.83 -5.3,0.55 -3.47,-1.17 -3.04,0.28 0.27,-2.1 3.05,0.61 1.03,-1.13 2.13,0.36 3.59,-2.64 -3.32,-1.96 -2,0.93 -2.07,-1.4 2.35,-2.43 z\",\n                    \"KH\": \"m 765.69,433.85 -1.14,-1.48 -1.41,-2.94 -0.67,-3.45 1.8,-2.38 3.62,-0.55 2.63,0.41 2.31,1.13 1.27,-1.99 2.49,1.06 0.65,1.92 -0.35,3.42 -4.71,2.19 1.23,1.73 -2.94,0.2 -2.43,1.14 z\",\n                    \"KP\": \"m 841.8,332.87 0.39,0.67 -1.06,-0.23 -1.22,1.27 -0.84,1.28 0.11,2.67 -1.45,0.81 -0.5,0.65 -1.06,1.08 -1.87,0.6 -1.21,0.98 -0.09,1.57 -0.33,0.4 1.12,0.58 1.59,1.58 -0.41,0.86 -1.19,0.23 -1.98,0.17 -1.09,1.6 -1.26,-0.12 -0.17,0.32 -1.36,-0.67 -0.34,0.66 -0.82,0.29 -0.1,-0.66 -0.73,-0.32 -0.75,-0.57 0.77,-1.57 0.66,-0.42 -0.25,-0.65 0.71,-1.94 -0.19,-0.59 -1.63,-0.4 -1.32,-0.97 2.28,-2.35 3.09,-1.98 1.93,-2.65 1.33,1.17 2.42,0.14 -0.44,-1.97 4.33,-1.63 1.12,-2.13 z\",\n                    \"KR\": \"m 835.38,346.78 2.42,4.18 0.69,2.27 0.02,3.98 -1.05,1.88 -2.54,0.66 -2.24,1.41 -2.53,0.29 -0.31,-1.85 0.52,-2.57 -1.24,-3.6 2.08,-0.59 -1.92,-3 0.17,-0.32 1.26,0.12 1.09,-1.6 1.98,-0.17 1.19,-0.23 z\",\n                    \"XK\": \"m 533.72,334.17 -0.13,0.77 -0.36,-0.03 -0.18,-1.37 -0.67,-0.38 -0.6,-1.02 0.52,-0.85 0.67,-0.28 0.39,-1.26 0.5,-0.22 0.4,0.54 0.53,0.24 0.36,0.61 0.46,0.18 0.55,0.7 0.4,-0.02 -0.32,0.93 -0.33,0.45 0.09,0.28 -0.63,0.14 z\",\n                    \"KW\": \"m 610.02,376.01 0.58,1.41 -0.25,0.73 0.9,2.41 -1.98,0.08 -0.7,-1.51 -2.5,-0.31 2.06,-3.08 z\",\n                    \"KZ\": \"m 674.47,333.36 -1.61,0.7 -3.69,2.61 -1.23,2.65 -1.05,0.02 -0.76,-1.75 -3.57,-0.12 -0.57,-3.06 -1.37,-0.03 0.21,-3.8 -3.35,-2.8 -4.81,0.3 -3.29,0.56 -2.68,-3.5 -2.29,-1.48 -4.35,-2.84 -0.52,-0.35 -7.22,2.35 0.11,14.13 -1.44,0.18 -1.96,-2.93 -1.9,-1.06 -3.18,0.79 -1.24,1.25 -0.16,-0.92 0.69,-1.57 -0.53,-1.32 -3.25,-1.3 -1.27,-3.47 -1.54,-0.98 -0.1,-1.28 2.73,0.37 0.11,-2.88 2.38,-0.64 2.45,0.59 0.51,-3.91 -0.5,-2.51 -2.81,0.2 -2.38,-1 -3.25,1.79 -2.61,0.86 -1.43,-0.66 0.29,-2.1 -1.79,-2.76 -2.08,0.11 -2.38,-2.83 1.62,-3.22 -0.82,-0.87 2.23,-4.77 2.89,2.53 0.35,-3.19 5.78,-4.85 4.38,-0.12 6.19,3.1 3.31,1.79 2.98,-1.87 4.44,-0.08 3.59,2.29 0.82,-1.31 3.93,0.19 0.71,-2.11 -4.55,-3.09 2.69,-2.23 -0.52,-1.25 2.69,-1.21 -2.02,-3.2 1.28,-1.62 10.49,-1.66 1.37,-1.19 7.02,-1.79 2.52,-2.04 5.04,1.06 0.88,5.01 2.93,-1.16 3.6,1.63 -0.23,2.58 2.69,-0.27 7.02,-4.49 -1.02,1.5 3.58,3.66 6.26,11.58 1.5,-2.33 3.86,2.56 4.03,-1.14 1.54,0.8 1.35,2.55 1.96,0.84 1.2,1.85 3.61,-0.58 1.49,2.63 -2.14,2.83 -2.33,0.4 -0.13,4.18 -1.56,1.86 -5.56,-1.35 -2.02,7.26 -1.44,0.89 -5.55,1.58 2.52,6.75 -1.92,1 0.22,2.16 -1.73,-0.55 -1.4,-1.37 -4.16,-0.4 -4.65,-0.1 -1.02,0.42 -4,-1.61 -1.59,0.8 -0.43,2.24 -4.62,-1.31 -1.84,0.54 z\",\n                    \"LA\": \"m 770.52,423.46 0.91,-1.3 0.13,-2.44 -2.27,-2.53 -0.18,-2.87 -2.13,-2.38 -2.12,-0.2 -0.56,1.02 -1.65,0.08 -0.84,-0.51 -2.95,1.74 -0.07,-2.62 0.69,-3.11 -1.89,-0.13 -0.16,-1.78 -1.22,-0.92 0.6,-1.1 2.39,-1.94 0.25,0.7 1.49,0.08 -0.42,-3.43 1.45,-0.44 1.64,2.37 1.26,2.72 3.45,0.03 1.09,2.59 -1.79,0.77 -0.81,1.07 3.36,1.76 2.33,3.46 1.77,2.57 2.12,2.02 0.71,2.04 -0.51,2.88 -2.49,-1.06 -1.27,1.99 z\",\n                    \"LB\": \"m 575.94,365.18 -0.75,0.05 -0.26,0.58 -0.94,0 1,-2.73 1.39,-2.38 0.06,-0.12 1.26,0.18 0.46,1.32 -1.53,1.27 z\",\n                    \"LK\": \"m 704.82,442.62 -0.42,2.92 -1.17,0.8 -2.44,0.64 -1.34,-2.23 -0.49,-4.03 1.27,-4.58 1.93,1.57 1.31,1.98 z\",\n                    \"LR\": \"m 453.88,451.47 -0.74,0.02 -2.89,-1.33 -2.54,-2.13 -2.39,-1.53 -1.89,-1.81 0.67,-0.9 0.15,-0.81 1.26,-1.53 1.31,-1.31 0.6,-0.07 0.73,-0.31 1.17,1.72 -0.18,1.13 0.54,0.6 0.8,0.01 0.57,-1.13 0.79,0.07 -0.13,0.82 0.28,1.36 -0.61,1.24 0.82,0.77 0.89,0.19 1.19,1.17 0.08,1.11 -0.27,0.35 z\",\n                    \"LS\": \"m 556.75,548 0.98,0.96 -0.86,1.56 -0.48,1.05 -1.56,0.5 -0.52,1.04 -1,0.32 -2.1,-2.49 1.49,-2.03 1.52,-1.25 1.31,-0.64 z\",\n                    \"LT\": \"m 539.24,282.34 -0.23,-1.22 0.3,-1.33 -1.24,-0.77 -2.93,-0.86 -0.6,-4.16 3.21,-1.55 4.7,0.33 2.76,-0.5 0.39,1.05 1.49,0.32 2.7,2.42 0.26,2.2 -2.3,1.57 -0.65,2.72 -3.04,1.8 -2.71,-0.04 -0.67,-1.46 z\",\n                    \"LU\": \"m 492.45,301.54 0.56,0.98 -0.16,1.89 -0.81,0.1 -0.63,-0.38 0.31,-2.43 z\",\n                    \"LV\": \"m 534.54,274 0.1,-3.81 1.38,-3.24 2.64,-1.78 2.22,3.88 2.25,-0.1 0.54,-3.99 2.39,-0.93 1.23,0.65 2.41,1.94 2.32,0.01 1.35,1.19 0.23,2.49 0.91,2.99 -3.02,1.93 -1.7,0.84 -2.7,-2.42 -1.49,-0.32 -0.39,-1.05 -2.76,0.5 -4.7,-0.33 z\",\n                    \"LY\": \"m 517.14,398.18 -1.98,1.12 -1.58,-1.66 -4.43,-1.31 -1.23,-1.91 -2.22,-1.42 -1.31,0.56 -0.99,-1.71 -0.11,-1.32 -1.66,-2.26 1.12,-1.29 -0.25,-1.97 0.36,-1.72 -0.2,-1.44 0.49,-2.59 -0.15,-1.48 -0.91,-2.84 1.37,-0.75 0.24,-1.38 -0.3,-1.35 1.93,-1.26 0.86,-1.05 1.37,-0.95 0.16,-2.55 3.29,1.15 1.18,-0.29 2.34,0.56 3.72,1.47 1.31,2.92 2.52,0.64 3.95,1.36 2.99,1.61 1.37,-0.84 1.34,-1.49 -0.65,-2.51 0.88,-1.6 2.02,-1.55 1.93,-0.45 3.79,0.68 0.96,1.48 1.04,0.01 0.89,0.56 2.79,0.39 0.68,1.08 -1.01,1.57 0.43,1.39 -0.72,2 0.84,2.58 0,11.18 0,11.23 0,5.96 -3.22,0.01 -0.04,1.24 -11.18,-5.7 -11.19,-5.77 z\",\n                    \"MA\": \"m 451.21,383.39 -0.03,-3.75 4.53,-2.36 2.8,-0.49 2.29,-0.86 1.08,-1.62 3.28,-1.29 0.12,-2.41 1.62,-0.29 1.27,-1.21 3.67,-0.56 0.51,-1.28 -0.74,-0.71 -0.97,-3.53 -0.16,-2.05 -1.06,-2.18 -1.22,-0.04 -2.9,-0.75 -2.67,0.24 -1.69,-1.46 -2.06,-0.02 -0.89,2.11 -1.87,3.51 -2.08,1.39 -2.81,1.53 -1.8,2.24 -0.38,1.74 -1.07,2.82 0.7,4.03 -2.34,2.68 -1.4,0.85 -2.21,2.17 -2.61,0.35 -1.3,1.12 3.62,0.01 8.75,0.03 0,0 0,0 -8.75,-0.03 -3.62,-0.01 z\",\n                    \"MD\": \"m 550.14,309.7 0.67,-0.62 1.86,-0.42 2.07,1.31 1.15,0.16 1.27,1.12 -0.2,1.41 1.02,0.67 0.4,1.72 0.98,1.04 -0.19,0.6 0.52,0.42 -0.74,0.29 -1.66,-0.11 -0.27,-0.57 -0.59,0.33 0.2,0.72 -0.77,1.29 -0.49,1.37 -0.7,0.44 -0.51,-1.83 0.3,-1.72 -0.09,-1.79 -1.62,-2.44 -0.89,-1.75 -0.87,-1.24 z\",\n                    \"ME\": \"m 531.02,332.48 -0.17,-0.72 -1.22,1.87 0.19,1.19 -0.59,-0.29 -0.78,-1.23 -1.22,-0.75 0.31,-0.64 0.41,-2.1 0.91,-0.89 0.53,-0.36 0.74,0.66 0.41,0.54 0.92,0.41 1.07,0.79 -0.23,0.33 -0.52,0.85 z\",\n                    \"MG\": \"m 614.42,498.65 0.74,1.21 0.69,1.89 0.46,3.46 0.72,1.35 -0.28,1.38 -0.49,0.86 -0.96,-1.7 -0.52,0.86 0.53,2.14 -0.25,1.24 -0.77,0.67 -0.18,2.48 -1.1,3.42 -1.38,4.09 -1.74,5.67 -1.07,4.21 -1.27,3.55 -2.28,0.73 -2.45,1.31 -1.61,-0.79 -2.23,-1.1 -0.77,-1.62 -0.19,-2.71 -0.98,-2.42 -0.26,-2.17 0.5,-2.16 1.29,-0.52 0.01,-0.99 1.34,-2.26 0.25,-1.88 -0.65,-1.4 -0.53,-1.85 -0.22,-2.7 0.98,-1.63 0.37,-1.85 1.4,-0.1 1.57,-0.6 1.03,-0.52 1.24,-0.04 1.59,-1.65 2.31,-1.78 0.84,-1.44 -0.38,-1.23 1.19,0.35 1.55,-1.99 0.05,-1.72 0.93,-1.28 z\",\n                    \"MK\": \"m 533.23,334.91 0.36,0.03 0.13,-0.77 1.65,-0.59 0.63,-0.14 0.96,-0.22 1.29,-0.06 1.41,1.21 0.2,2.47 -0.54,0.12 -0.46,0.65 -1.52,-0.07 -1.07,0.81 -1.83,0.32 -1.16,-0.9 -0.4,-1.59 z\",\n                    \"ML\": \"m 441.38,422.47 0.94,-0.52 0.47,-1.7 0.89,-0.07 1.96,0.8 1.58,-0.57 1.08,0.19 0.43,-0.64 11.25,-0.04 0.62,-2.03 -0.49,-0.36 -1.35,-12.68 -1.35,-13.06 4.29,-0.05 9.46,6.65 9.46,6.55 0.66,1.39 1.75,0.85 1.3,0.48 0.03,1.88 3.11,-0.29 0.01,6.75 -1.54,1.94 -0.24,1.79 -2.49,0.45 -3.82,0.25 -1.04,1.03 -1.8,0.11 -1.79,0.01 -0.7,-0.55 -1.55,0.41 -2.62,1.2 -0.53,0.9 -2.18,1.28 -0.38,0.74 -1.17,0.58 -1.36,-0.38 -0.77,0.7 -0.41,1.96 -2.23,2.36 0.07,0.96 -0.77,1.21 0.19,1.64 -1.16,0.42 -0.65,0.36 -0.44,-1.21 -0.81,0.32 -0.48,-0.06 -0.52,0.83 -2.16,-0.03 -0.78,-0.42 -0.36,0.26 -0.86,-0.82 0.15,-0.84 -0.35,-0.34 -0.6,0.28 0.11,-0.92 0.58,-0.73 -1.15,-1.19 -0.34,-0.79 -0.62,-0.62 -0.56,-0.08 -0.67,0.4 -0.91,0.38 -0.77,0.62 -1.2,-0.23 -0.78,-0.72 -0.46,-0.1 -0.73,0.38 -0.45,0.01 -0.16,-1.05 0.13,-0.89 -0.24,-1.1 -1.05,-0.81 -0.55,-1.64 z\",\n                    \"MM\": \"m 754.61,406.2 -1.64,1.28 -1.98,0.14 -1.28,3.19 -1.18,0.53 1.36,2.57 1.78,2.13 1.14,1.92 -1.02,2.52 -0.97,0.53 0.67,1.45 1.87,2.28 0.32,1.6 -0.05,1.33 1.1,2.6 -1.54,2.65 -1.36,2.91 -0.27,-2.1 0.86,-2.18 -0.94,-1.68 0.23,-3.11 -1.14,-1.48 -0.91,-3.44 -0.51,-3.66 -1.21,-2.4 -1.85,1.46 -3.19,2.06 -1.57,-0.26 -1.74,-0.67 0.97,-3.61 -0.58,-2.74 -2.2,-3.39 0.34,-1.07 -1.64,-0.38 -1.99,-2.42 -0.18,-2.41 0.98,0.46 0.05,-2.15 1.39,-0.72 -0.3,-1.28 0.63,-1.03 0.11,-3.15 2.19,0.7 1.25,-2.52 0.15,-1.5 1.54,-2.6 -0.08,-1.78 3.63,-2.16 2,0.57 -0.23,-1.93 0.99,-0.58 -0.22,-1.2 1.64,-0.24 0.94,1.86 1.22,0.75 0.09,2.4 -0.12,2.57 -2.65,2.58 -0.34,3.63 2.96,-0.5 0.67,2.8 1.78,0.59 -0.82,2.5 2.08,1.13 1.22,0.55 2.05,-0.87 0.09,1.24 -2.39,1.94 -0.6,1.1 z\",\n                    \"MN\": \"m 721.54,305.13 2.96,-0.74 5.35,-3.74 4.27,-2.07 2.43,1.35 2.93,0.06 1.87,2.05 2.8,0.15 4.06,1.09 2.72,-3.03 -1.14,-2.6 2.91,-4.66 3.14,1.87 2.54,0.53 3.3,1.15 0.53,3.32 3.99,1.84 2.65,-0.81 3.54,-0.57 2.81,0.58 2.75,2.09 1.7,2.2 2.6,-0.04 3.53,0.69 2.58,-1.06 3.69,-0.71 4.11,-3.06 1.68,0.47 1.47,1.46 3.34,-0.36 -1.36,3.25 -1.98,4.22 0.72,1.71 1.59,-0.53 2.76,0.65 2.16,-1.54 2.25,1.33 2.54,2.89 -0.31,1.45 -2.21,-0.46 -4.07,0.54 -1.98,1.16 -2.05,2.66 -4.28,1.55 -2.79,2.1 -2.88,-0.8 -1.58,-0.36 -1.47,2.54 0.89,1.5 0.46,1.28 -1.97,1.3 -2.01,2.05 -3.27,1.33 -4.21,0.15 -4.53,1.31 -3.26,2.01 -1.24,-1.16 -3.39,0 -4.15,-2.29 -2.77,-0.57 -3.73,0.53 -5.79,-0.85 -3.09,0.09 -1.64,-2.27 -1.28,-3.57 -1.73,-0.43 -3.39,-2.45 -3.78,-0.55 -3.33,-0.68 -1.01,-1.73 1.08,-4.73 -1.93,-3.31 -4,-1.57 -2.36,-2.23 z\",\n                    \"MR\": \"m 441.38,422.47 -1.85,-1.98 -1.7,-2.13 -1.86,-0.77 -1.34,-0.85 -1.57,0.03 -1.36,0.63 -1.4,-0.25 -0.96,0.93 -0.24,-1.56 0.78,-1.44 0.35,-2.75 -0.31,-2.91 -0.34,-1.47 0.28,-1.47 -0.72,-1.42 -1.48,-1.28 0.61,-1 10.98,0.02 -0.53,-4.35 0.69,-1.55 2.62,-0.27 -0.09,-7.86 9.21,0.17 0,-4.73 10.55,7.53 -4.29,0.05 1.35,13.06 1.35,12.68 0.49,0.36 -0.62,2.03 -11.25,0.04 -0.43,0.64 -1.08,-0.19 -1.58,0.57 -1.96,-0.8 -0.89,0.07 -0.47,1.7 z\",\n                    \"MW\": \"m 572.4,495.94 -0.78,2.16 0.78,3.72 0.98,-0.04 1.01,0.92 1.17,2.08 0.24,3.72 -1.21,0.61 -0.86,2.01 -1.83,-1.79 -0.2,-2.04 0.59,-1.35 -0.17,-1.15 -1.1,-0.73 -0.78,0.26 -1.61,-1.38 -1.47,-0.74 0.85,-2.66 0.88,-0.99 -0.54,-2.36 0.56,-2.3 0.48,-0.77 -0.71,-2.4 -1.32,-1.26 2.74,0.52 0.57,0.78 0.95,1.32 z\",\n                    \"MX\": \"m 203.14,388.97 -1.09,2.71 -0.49,2.21 -0.21,4.08 -0.27,1.47 0.49,1.64 0.87,1.47 0.56,2.31 1.86,2.21 0.65,1.69 1.1,1.45 2.98,0.79 1.16,1.22 2.46,-0.82 2.13,-0.29 2.1,-0.53 1.77,-0.51 1.78,-1.2 0.67,-1.73 0.23,-2.49 0.49,-0.87 1.89,-0.79 2.97,-0.69 2.48,0.1 1.7,-0.25 0.67,0.63 -0.09,1.44 -1.51,1.77 -0.66,1.81 0.51,0.51 -0.42,1.28 -0.7,2.29 -0.71,-0.75 -0.59,0.05 -0.53,0.04 -1,1.77 -0.51,-0.35 -0.34,0.14 0.02,0.43 -2.59,-0.03 -2.62,0 0,1.65 -1.27,0 1.04,0.98 1.04,0.67 0.31,0.63 0.46,0.18 -0.08,0.98 -3.59,0.01 -1.35,2.36 0.39,0.54 -0.32,0.68 -0.07,0.84 -3.17,-3.11 -1.45,-0.94 -2.29,-0.76 -1.56,0.21 -2.26,1.09 -1.41,0.29 -1.98,-0.76 -2.1,-0.56 -2.62,-1.33 -2.1,-0.41 -3.18,-1.35 -2.34,-1.4 -0.71,-0.78 -1.57,-0.17 -2.87,-0.93 -1.17,-1.34 -3.01,-1.67 -1.4,-1.87 -0.67,-1.45 0.93,-0.29 -0.29,-0.85 0.65,-0.77 0.01,-1.04 -0.94,-1.34 -0.26,-1.2 -0.94,-1.52 -2.47,-3.02 -2.82,-2.39 -1.36,-1.91 -2.41,-1.26 -0.51,-0.76 0.43,-1.92 -1.43,-0.73 -1.66,-1.52 -0.7,-2.19 -1.51,-0.26 -1.62,-1.66 -1.32,-1.55 -0.12,-1 -1.51,-2.42 -0.99,-2.48 0.04,-1.25 -2.03,-1.29 -0.93,0.14 -1.6,-0.9 -0.45,1.33 0.46,1.56 0.27,2.43 0.97,1.33 2.08,2.21 0.46,0.75 0.43,0.22 0.36,1.1 0.5,-0.05 0.57,2.04 0.85,0.8 0.59,1.11 1.77,1.6 0.93,2.89 0.83,1.35 0.78,1.44 0.15,1.62 1.35,0.1 1.13,1.39 1.02,1.36 -0.07,0.54 -1.18,1.11 -0.5,-0.01 -0.74,-1.85 -1.83,-1.73 -2.02,-1.48 -1.44,-0.78 0.09,-2.25 -0.42,-1.68 -1.34,-0.96 -1.93,-1.39 -0.37,0.4 -0.7,-0.82 -1.73,-0.75 -1.65,-1.83 0.2,-0.24 1.15,0.18 1.04,-1.18 0.11,-1.43 -2.16,-2.27 -1.64,-0.89 -1.04,-2.01 -1.04,-2.12 -1.3,-2.61 -1.14,-2.96 3.19,-0.25 3.56,-0.36 -0.26,0.64 4.23,1.61 6.4,2.31 5.58,-0.03 2.22,0 0,-1.35 4.86,0 1.02,1.17 1.44,1.03 1.66,1.43 0.93,1.69 0.7,1.76 1.45,0.97 2.33,0.96 1.76,-2.53 2.3,-0.06 1.97,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.18,0.96 1.99,0.68 z\",\n                    \"MY\": \"m 758.9,446.32 0.22,1.44 1.85,-0.33 0.92,-1.15 0.64,0.26 1.66,1.69 1.18,1.87 0.16,1.88 -0.3,1.27 0.27,0.96 0.21,1.65 0.99,0.77 1.1,2.46 -0.05,0.94 -1.99,0.19 -2.65,-2.06 -3.32,-2.21 -0.33,-1.42 -1.62,-1.87 -0.39,-2.31 -1.01,-1.52 0.31,-2.04 -0.62,-1.19 0.49,-0.5 2.28,1.22 z m 49.19,4.83 -2.06,0.95 -2.43,-0.47 -3.22,0 -0.97,3.17 -1.08,0.97 -1.44,3.88 -2.29,0.59 -2.65,-0.78 -1.34,0.24 -1.63,1.41 -1.79,-0.2 -1.81,0.57 -1.92,-1.57 -0.47,-1.86 2.05,0.96 2.17,-0.52 0.56,-2.36 1.2,-0.53 3.36,-0.6 2.01,-2.21 1.38,-1.77 1.28,1.45 0.59,-0.95 1.34,0.09 0.16,-1.78 0.13,-1.38 2.16,-1.95 1.41,-2.19 1.13,-0.01 1.44,1.42 0.13,1.22 1.85,0.78 2.34,0.84 -0.2,1.1 -1.88,0.14 0.49,1.35 z\",\n                    \"MZ\": \"m 572.4,495.94 2.11,-0.23 3.37,0.8 0.74,-0.36 1.95,-0.07 1,-0.85 1.68,0.04 3.06,-1.1 2.23,-1.64 0.46,1.27 -0.12,2.83 0.35,2.5 0.11,4.48 0.49,1.4 -0.83,2.07 -1.09,2.01 -1.79,1.8 -2.56,1.11 -3.16,1.41 -3.17,3.15 -1.08,0.54 -1.96,2.09 -1.15,0.69 -0.24,2.12 1.33,2.25 0.55,1.76 0.04,0.9 0.49,-0.15 -0.08,2.96 -0.45,1.41 0.66,0.52 -0.42,1.27 -1.17,1.09 -2.31,1.04 -3.37,1.66 -1.23,1.15 0.24,1.3 0.71,0.21 -0.24,1.64 -2.12,-0.02 -0.24,-1.38 -0.42,-1.39 -0.24,-1.11 0.5,-3.43 -0.73,-2.17 -1.34,-4.26 2.95,-3.41 0.74,-2.15 0.43,-0.27 0.31,-1.74 -0.45,-0.88 0.12,-2.2 0.55,-2.04 -0.01,-3.69 -1.45,-0.94 -1.34,-0.21 -0.6,-0.72 -1.3,-0.61 -2.34,0.06 -0.18,-1.08 -0.27,-2.05 8.51,-2.38 1.61,1.38 0.78,-0.26 1.1,0.73 0.17,1.15 -0.59,1.35 0.2,2.04 1.83,1.79 0.86,-2.01 1.21,-0.61 -0.24,-3.72 -1.17,-2.08 -1.01,-0.92 -0.98,0.04 -0.78,-3.72 z\",\n                    \"NA\": \"m 521.33,546.79 -2.08,-2.39 -1.1,-2.3 -0.62,-3.03 -0.69,-2.25 -0.94,-4.72 -0.06,-3.63 -0.36,-1.64 -1.09,-1.24 -1.45,-2.47 -1.47,-3.57 -0.61,-1.85 -2.29,-2.87 -0.17,-2.25 1.35,-0.55 1.68,-0.5 1.82,0.09 1.67,1.32 0.42,-0.21 11.37,-0.12 1.94,1.4 6.79,0.41 5.15,-1.19 2.3,-0.67 1.82,0.17 1.1,0.66 0.03,0.24 -1.58,0.66 -0.86,0.01 -1.78,1.15 -1.08,-1.21 -4.32,1.03 -2.09,0.09 -0.08,10.57 -2.76,0.11 0,8.86 -0.01,11.52 -2.5,1.63 -1.5,0.23 -1.77,-0.6 -1.26,-0.23 -0.47,-1.36 -1.11,-0.87 z\",\n                    \"NC\": \"m 940.33,523.73 2.3,1.86 1.45,1.38 -1.06,0.73 -1.55,-0.82 -2,-1.35 -1.81,-1.59 -1.85,-2.1 -0.39,-1.01 1.2,0.05 1.58,1.01 1.23,1.01 z\",\n                    \"NE\": \"m 481.54,430.13 0.07,-1.95 -3.24,-0.65 -0.08,-1.38 -1.58,-1.87 -0.38,-1.31 0.22,-1.4 1.8,-0.11 1.04,-1.03 3.82,-0.25 2.49,-0.45 0.24,-1.79 1.54,-1.94 -0.01,-6.75 3.95,-1.32 8.12,-5.85 9.61,-5.75 4.43,1.31 1.58,1.66 1.98,-1.12 0.69,4.67 1.05,0.78 0.05,0.95 1.16,1.02 -0.61,1.28 -1.08,5.98 -0.14,3.79 -3.58,2.74 -1.21,3.8 1.17,1.06 -0.01,1.85 1.8,0.07 -0.28,1.34 -0.79,0.17 -0.09,0.9 -0.53,0.07 -1.89,-3.13 -0.66,-0.12 -2.19,1.6 -2.17,-0.83 -1.51,-0.17 -0.81,0.4 -1.65,-0.08 -1.65,1.22 -1.43,0.07 -3.39,-1.48 -1.33,0.7 -1.43,-0.05 -1.05,-1.08 -2.82,-1.07 -3.01,0.34 -0.73,0.62 -0.39,1.65 -0.81,1.15 -0.19,2.54 -2.14,-1.64 -1.01,0.01 z\",\n                    \"NG\": \"m 499.34,450.33 -2.91,1 -1.07,-0.14 -1.08,0.62 -2.24,-0.06 -1.5,-1.75 -0.92,-2.02 -1.99,-1.84 -2.11,0.03 -2.47,0 0.16,-4.53 -0.07,-1.79 0.53,-1.77 0.86,-0.87 1.36,-1.75 -0.29,-0.76 0.55,-1.14 -0.63,-1.68 0.11,-0.95 0.19,-2.54 0.81,-1.15 0.39,-1.65 0.73,-0.62 3.01,-0.34 2.82,1.07 1.05,1.08 1.43,0.05 1.33,-0.7 3.39,1.48 1.43,-0.07 1.65,-1.22 1.65,0.08 0.81,-0.4 1.51,0.17 2.17,0.83 2.19,-1.6 0.66,0.12 1.89,3.13 0.53,-0.07 1.11,1.14 -0.31,0.51 -0.15,0.95 -2.36,2.2 -0.74,1.81 -0.4,1.47 -0.59,0.63 -0.57,1.97 -1.5,1.16 -0.43,1.42 -0.63,1.14 -0.26,1.16 -1.93,0.95 -1.57,-1.15 -1.07,0.04 -1.67,1.64 -0.81,0.03 -1.33,2.7 z\",\n                    \"NI\": \"m 235.18,432.56 -0.97,-0.9 -1.31,-1.15 -0.62,-0.96 -1.18,-0.89 -1.41,-1.29 0.31,-0.44 0.47,0.43 0.21,-0.21 0.87,-0.11 0.35,-0.66 0.41,-0.02 -0.06,-1.41 0.66,-0.07 0.59,0.02 0.6,-0.76 0.83,0.58 0.29,-0.36 0.51,-0.34 0.98,-0.79 0.05,-0.6 0.27,0.03 0.36,-0.69 0.29,-0.08 0.48,0.44 0.56,0.13 0.62,-0.37 0.71,0 0.97,-0.38 0.39,-0.39 0.96,0.06 -0.24,0.28 -0.14,0.64 0.28,1.05 -0.64,0.98 -0.3,1.15 -0.1,1.27 0.16,0.73 0.07,1.29 -0.43,0.28 -0.26,1.22 0.19,0.75 -0.58,0.73 0.14,0.76 0.42,0.47 -0.67,0.6 -0.82,-0.19 -0.47,-0.58 -0.89,-0.24 -0.64,0.37 -1.85,-0.75 z\",\n                    \"NL\": \"m 492.53,286.23 2.33,0.13 0.53,1.58 -0.7,4.23 -0.71,1.71 -1.69,0 0.48,4.69 -1.55,-1.04 -1.77,-1.95 -2.6,0.93 -2.05,-0.35 1.44,-1.24 2.46,-6.74 z\",\n                    \"NO\": \"m 554.48,175.86 8.77,6.24 -3.61,2.23 3.07,5.11 -4.77,3.19 -2.26,0.72 1.19,-5.59 -3.6,-3.25 -4.35,2.78 -1.38,5.85 -2.67,3.44 -3.01,-1.87 -3.66,0.38 -3.12,-4.15 -1.68,2.09 -1.74,0.32 -0.41,5.08 -5.28,-1.22 -0.74,4.22 -2.69,-0.03 -1.85,5.24 -2.8,7.87 -4.35,9.5 1.02,2.23 -0.98,2.55 -2.78,-0.11 -1.82,5.91 0.17,8.04 1.79,2.98 -0.93,6.73 -2.33,3.81 -1.24,3.15 -1.88,-3.35 -5.54,6.27 -3.74,1.24 -3.88,-2.71 -1,-5.86 -0.89,-13.26 2.58,-3.88 7.4,-5.18 5.54,-6.59 5.13,-9.3 6.74,-13.76 4.7,-5.67 7.71,-9.89 6.15,-3.59 4.61,0.44 4.27,-6.99 5.11,0.38 5.03,-1.74 z\",\n                    \"NP\": \"m 722.58,382.7 -0.22,1.35 0.37,1.99 -0.32,1.24 -2.33,0.05 -3.38,-0.73 -2.16,-0.29 -1.62,-1.59 -3.84,-0.41 -3.66,-1.77 -2.64,-1.55 -2.72,-1.2 1.09,-2.99 1.78,-1.46 1.16,-0.78 2.25,1 2.83,2.09 1.57,0.46 0.94,1.53 2.18,0.63 2.28,1.39 3.17,0.73 z\",\n                    \"NZ\": \"m 960.63,588.88 0.64,1.53 1.99,-1.5 0.81,1.57 0,1.57 -1.04,1.74 -1.83,2.8 -1.43,1.54 1.03,1.86 -2.16,0.05 -2.4,1.46 -0.75,2.57 -1.59,4.03 -2.2,1.8 -1.4,1.16 -2.58,-0.09 -1.82,-1.34 -3.05,-0.28 -0.47,-1.48 1.51,-2.96 3.53,-3.87 1.81,-0.73 2.01,-1.47 2.4,-2.01 1.68,-1.98 1.25,-2.81 1.06,-0.95 0.42,-2.07 1.97,-1.7 0.61,1.56 z m 4.46,-17.02 2.03,3.67 0.06,-2.38 1.27,0.95 0.42,2.65 2.26,1.15 1.89,0.28 1.6,-1.35 1.42,0.41 -0.68,3.15 -0.85,2.09 -2.14,-0.07 -0.75,1.1 0.26,1.56 -0.41,0.68 -1.06,1.97 -1.39,2.53 -2.17,1.49 -0.48,-0.98 -1.17,-0.54 1.62,-3.04 -0.92,-2.01 -3.02,-1.45 0.08,-1.31 2.03,-1.25 0.47,-2.74 -0.13,-2.28 -1.14,-2.34 0.08,-0.61 -1.34,-1.43 -2.21,-3.04 -1.17,-2.41 1.04,-0.27 1.53,1.89 2.18,0.89 0.79,3.04 z\",\n                    \"OM\": \"m 640.54,403.43 -1.05,2.04 -1.27,-0.16 -0.58,0.71 -0.45,1.5 0.34,1.98 -0.26,0.36 -1.29,-0.01 -1.75,1.1 -0.27,1.43 -0.64,0.62 -1.74,-0.02 -1.1,0.74 0.01,1.18 -1.36,0.81 -1.55,-0.27 -1.88,0.98 -1.3,0.16 -0.92,-2.04 -2.19,-4.84 8.41,-2.96 1.87,-5.97 -1.29,-2.14 0.07,-1.22 0.82,-1.26 0.01,-1.25 1.27,-0.6 -0.5,-0.42 0.23,-2 1.43,-0.01 1.26,2.09 1.57,1.11 2.06,0.4 1.66,0.55 1.27,1.74 0.76,1 1,0.38 -0.01,0.67 -1.02,1.79 -0.45,0.84 -1.17,0.99 z m -6.92,-14.54 -0.37,0.56 -0.53,-1.06 0.82,-1.06 0.35,0.27 -0.27,1.29 z\",\n                    \"PA\": \"m 257.13,443.46 -0.93,-0.81 -0.6,-1.52 0.69,-0.75 -0.71,-0.19 -0.52,-0.93 -1.4,-0.78 -1.23,0.18 -0.56,0.98 -1.14,0.7 -0.61,0.1 -0.27,0.59 1.33,1.52 -0.76,0.36 -0.41,0.42 -1.3,0.14 -0.49,-1.68 -0.36,0.48 -0.93,-0.16 -0.56,-1.14 -1.15,-0.18 -0.73,-0.33 -1.2,0 -0.09,0.61 -0.32,-0.42 0.15,-0.56 0.23,-0.57 -0.11,-0.51 0.42,-0.34 -0.58,-0.42 -0.02,-1.13 1.09,-0.25 1,1.01 -0.06,0.6 1.12,0.12 0.27,-0.23 0.77,0.7 1.38,-0.21 1.19,-0.71 1.7,-0.57 0.96,-0.84 1.55,0.16 -0.11,0.28 1.57,0.1 1.25,0.49 0.91,0.84 1.06,0.78 -0.34,0.42 0.65,1.65 -0.53,0.84 -0.91,-0.2 z\",\n                    \"PE\": \"m 280.38,513.39 -0.75,1.51 -1.44,0.74 -2.81,-1.68 -0.25,-1.2 -5.55,-2.92 -5.03,-3.17 -2.17,-1.78 -1.16,-2.37 0.46,-0.83 -2.37,-3.75 -2.77,-5.24 -2.64,-5.62 -1.15,-1.29 -0.88,-2.06 -2.18,-1.84 -2,-1.13 0.91,-1.25 -1.36,-2.67 0.87,-1.95 2.24,-1.77 0.33,1.17 -0.8,0.66 0.07,1.02 1.16,-0.22 1.14,0.3 1.17,1.41 1.59,-1.15 0.53,-1.88 1.72,-2.43 3.37,-1.1 3.06,-2.92 0.87,-1.81 -0.39,-2.11 0.75,-0.27 1.86,1.32 0.89,1.32 1.3,0.72 1.65,2.92 2.09,0.35 1.55,-0.74 1.01,0.48 1.68,-0.24 2.15,1.31 -1.81,2.84 0.84,0.06 1.4,1.49 -2.53,-0.13 -0.37,0.42 -2.3,0.53 -3.2,1.91 -0.21,1.3 -0.71,0.98 0.28,1.51 -1.7,0.81 0,1.19 -0.74,0.51 1.17,2.53 1.56,1.72 -0.59,1.21 1.86,0.16 1.06,1.51 2.47,0.07 2.3,-1.66 -0.19,4.3 1.28,0.33 1.58,-0.49 2.43,4.58 -0.61,0.96 -0.13,2.02 -0.06,2.44 -1.1,1.44 0.51,1.07 -0.65,0.97 1.21,2.44 z\",\n                    \"PG\": \"m 912.57,482.67 -0.79,0.28 -1.21,-1.08 -1.23,-1.78 -0.6,-2.13 0.39,-0.27 0.3,0.83 0.85,0.63 1.36,1.77 1.32,0.95 -0.39,0.8 z m -10.93,-3.75 -1.47,0.23 -0.44,0.79 -1.53,0.68 -1.44,0.66 -1.49,0 -2.3,-0.81 -1.6,-0.78 0.23,-0.87 2.51,0.41 1.53,-0.22 0.42,-1.34 0.4,-0.07 0.27,1.49 1.6,-0.21 0.79,-0.96 1.57,-1 -0.31,-1.65 1.68,-0.05 0.57,0.46 -0.06,1.55 -0.93,1.69 z m -13.43,5.35 2.5,1.84 1.82,2.99 1.61,-0.09 -0.11,1.25 2.17,0.48 -0.84,0.53 2.98,1.19 -0.31,0.82 -1.86,0.2 -0.69,-0.73 -2.41,-0.32 -2.83,-0.43 -2.18,-1.8 -1.59,-1.55 -1.46,-2.46 -3.66,-1.23 -2.38,0.8 -1.71,0.93 0.36,2.08 -2.2,0.97 -1.57,-0.47 -2.9,-0.12 -0.05,-9.16 -0.05,-9.1 4.87,1.92 5.18,1.6 1.93,1.43 1.56,1.41 0.43,1.65 4.67,1.73 0.68,1.49 -2.58,0.3 0.62,1.85 z m 16.67,-8.09 -0.88,0.74 -0.53,-1.65 -0.65,-1.08 -1.27,-0.91 -1.6,-1.19 -2.02,-0.82 0.78,-0.67 1.51,0.78 0.95,0.61 1.18,0.67 1.12,1.17 1.07,0.89 0.34,1.46 z\",\n                    \"PH\": \"m 829.84,440.11 0.29,1.87 0.17,1.58 -0.96,2.57 -1.02,-2.86 -1.31,1.42 0.9,2.06 -0.8,1.31 -3.3,-1.63 -0.79,-2.03 0.86,-1.33 -1.78,-1.33 -0.88,1.17 -1.32,-0.11 -2.08,1.57 -0.46,-0.82 1.1,-2.37 1.77,-0.79 1.53,-1.06 0.99,1.27 2.13,-0.77 0.46,-1.26 1.98,-0.08 -0.17,-2.18 2.27,1.34 0.24,1.42 0.18,1.04 z m -6.71,-5.26 -1.01,0.93 -0.88,1.79 -0.88,0.84 -1.73,-1.95 0.58,-0.76 0.7,-0.79 0.31,-1.76 1.55,-0.17 -0.45,1.91 2.08,-2.74 -0.27,2.7 z m -15.36,2.72 -3.73,2.67 1.38,-1.97 2.03,-1.74 1.68,-1.96 1.47,-2.82 0.5,2.31 -1.85,1.56 -1.48,1.95 z m 9.48,-7.3 1.68,0.88 1.78,0 -0.05,1.19 -1.3,1.2 -1.78,0.85 -0.1,-1.32 0.2,-1.45 -0.43,-1.35 z m 10.14,-0.77 0.79,3.18 -2.16,-0.75 0.06,0.95 0.69,1.75 -1.33,0.63 -0.12,-1.99 -0.84,-0.15 -0.44,-1.72 1.65,0.23 -0.04,-1.08 -1.71,-2.18 2.69,0.06 0.76,1.07 z m -11.14,-2.59 -0.74,2.47 -1.2,-1.42 -1.43,-2.18 2.4,0.1 0.97,1.03 z m -0.58,-15.74 1.73,0.84 0.86,-0.76 0.25,0.75 -0.46,1.22 0.96,2.09 -0.74,2.42 -1.65,0.96 -0.44,2.33 0.63,2.29 1.49,0.32 1.24,-0.34 3.5,1.59 -0.27,1.56 0.92,0.69 -0.29,1.32 -2.18,-1.4 -1.04,-1.5 -0.72,1.05 -1.79,-1.72 -2.55,0.42 -1.4,-0.63 0.14,-1.19 0.88,-0.73 -0.84,-0.67 -0.36,1.04 -1.38,-1.65 -0.42,-1.26 -0.1,-2.77 1.13,0.96 0.29,-4.55 0.91,-2.66 1.7,-0.02 z\",\n                    \"PL\": \"m 517.61,297.22 -1.15,-2.86 0.22,-1.56 -0.7,-2.45 -1.01,-1.65 0.78,-1.25 -0.66,-2.39 1.92,-1.39 4.37,-2.22 3.54,-1.64 2.79,0.82 0.21,1.18 2.71,0.06 3.45,0.55 5.16,-0.08 1.44,0.52 0.67,1.46 0.12,2.09 0.78,1.78 -0.02,1.85 -1.68,0.94 0.87,2.12 0.05,2.01 1.41,3.89 -0.3,1.24 -1.39,0.51 -2.55,3.61 0.72,1.92 -0.61,-0.25 -2.66,-1.64 -2.02,0.6 -1.32,-0.44 -1.66,0.92 -1.41,-1.52 -1.16,0.58 -0.16,-0.26 -1.29,-2.13 -2.08,-0.26 -0.27,-1.37 -1.92,-0.49 -0.42,1.13 -1.52,-0.9 0.17,-1.21 -2.09,-0.39 z\",\n                    \"PK\": \"m 686.24,352.01 2.07,1.63 0.83,2.66 4.61,1.39 -2.71,2.86 -3.12,0.51 -4.26,-0.83 -1.37,1.46 0.99,2.95 0.97,2.25 2.27,1.63 -2.39,1.91 0.04,2.33 -2.72,3.24 -1.76,3.26 -2.93,3.32 -3.26,-0.24 -3.09,3.3 1.84,1.4 0.32,2.39 1.57,1.56 0.56,2.64 -6.17,-0.01 -1.87,2.04 -2.05,-0.77 -0.84,-2.2 -2.17,-2.34 -5.16,0.58 -4.56,0.05 -3.95,0.44 1.06,-3.6 4.04,-1.61 -0.23,-1.44 -1.34,-0.51 -0.08,-2.77 -2.68,-1.4 -1.13,-1.93 -1.38,-1.68 4.69,1.64 2.81,-0.48 1.67,0.4 0.57,-0.7 1.95,0.28 3.65,-1.33 0.1,-2.75 1.56,-1.84 2.09,0 0.3,-0.91 2.15,-0.43 1.03,0.3 1.1,-0.92 -0.15,-1.98 1.19,-2 1.78,-0.85 -1.1,-2.22 2.67,0.11 0.77,-1.22 -0.12,-1.3 1.4,-1.43 -0.33,-1.7 -0.66,-1.46 1.64,-1.51 3.01,-0.73 3.22,-0.4 1.42,-0.65 z\",\n                    \"PR\": \"m 289.66,411.14 1.43,0.26 0.51,0.58 -0.72,0.74 -2.11,-0.02 -1.64,0.1 -0.16,-1.25 0.39,-0.43 z\",\n                    \"PS\": \"m 575.17,368.12 0,2.01 -0.42,0.96 -1.32,0.45 0.13,-0.86 0.71,-0.46 -0.7,-0.36 0.58,-2.2 z\",\n                    \"PT\": \"m 450.17,334.81 1.02,-0.95 1.14,-0.55 0.71,1.84 1.65,-0.01 0.48,-0.47 1.64,0.13 0.78,1.88 -1.3,1 -0.03,2.88 -0.46,0.53 -0.11,1.72 -1.21,0.3 1.12,2.17 -0.77,2.35 0.96,1.06 -0.38,0.96 -1.04,1.32 0.23,1.16 -1.12,0.91 -1.48,-0.49 -1.45,0.38 0.43,-2.74 -0.26,-2.18 -1.26,-0.33 -0.67,-1.35 0.23,-2.36 1.11,-1.31 0.2,-1.47 0.59,-2.21 -0.07,-1.57 -0.56,-1.34 z\",\n                    \"PY\": \"m 299.74,527.24 1.11,-3.59 0.07,-1.6 1.34,-2.62 4.89,-0.86 2.6,0.05 2.62,1.51 0.04,0.91 0.83,1.66 -0.18,4.06 2.96,0.58 1.14,-0.59 1.89,0.82 0.53,0.9 0.26,2.77 0.33,1.18 1.04,0.13 1.05,-0.49 1.01,0.55 0,1.68 -0.38,1.82 -0.55,1.78 -0.46,2.75 -2.54,2.4 -2.22,0.5 -3.15,-0.48 -2.82,-0.85 2.76,-4.73 -0.41,-1.37 -2.88,-1.2 -3.43,-2.26 -2.29,-0.46 z\",\n                    \"QA\": \"m 617.97,392.41 -0.19,-2.24 0.76,-1.62 0.76,-0.34 0.85,0.97 0.05,1.81 -0.61,1.81 -0.78,0.22 z\",\n                    \"RO\": \"m 539.18,311.11 1.21,-0.89 1.74,0.46 1.79,0.02 1.3,1.01 0.96,-0.64 2.07,-0.4 0.71,-0.98 1.18,0.01 0.85,0.4 0.87,1.24 0.89,1.75 1.62,2.44 0.09,1.79 -0.3,1.72 0.51,1.83 1.25,0.73 1.31,-0.64 1.28,0.68 0.06,1.03 -1.36,0.84 -0.85,-0.36 -0.78,4.71 -1.65,-0.41 -2.04,-1.41 -3.3,0.9 -1.39,0.99 -4.12,-0.2 -2.16,-0.61 -1.08,0.29 -0.81,-1.6 -0.51,-0.68 0.65,-0.66 -0.7,-0.49 -0.88,0.88 -1.63,-1.14 -0.22,-1.63 -1.71,-0.94 -0.31,-1.27 -1.52,-1.58 2.25,-0.76 1.69,-2.76 1.33,-2.8 z\",\n                    \"RS\": \"m 534.03,321.15 1.71,0.94 0.22,1.63 1.63,1.14 0.88,-0.88 0.7,0.49 -0.65,0.66 0.51,0.68 -0.69,0.88 0.25,1.42 1.36,1.66 -1.07,1.19 -0.47,1.21 0.31,0.45 -0.47,0.54 -1.29,0.06 -0.96,0.22 -0.09,-0.28 0.33,-0.45 0.32,-0.93 -0.4,0.02 -0.55,-0.7 -0.46,-0.18 -0.36,-0.61 -0.53,-0.24 -0.4,-0.54 -0.5,0.22 -0.39,1.26 -0.67,0.28 0.23,-0.33 -1.07,-0.79 -0.92,-0.41 -0.41,-0.54 -0.74,-0.66 0.66,-0.17 0.41,-1.82 -1.35,-1.5 0.7,-1.72 -1.02,0.01 1.08,-1.49 -0.89,-1.14 -0.68,-1.55 2.15,-1.05 1.75,0.17 1.52,1.58 z\",\n                    \"RU\": \"m 1008.52,216 -2.78,2.97 -4.6,0.7 -0.07,6.46 -1.12,1.35 -2.63,-0.19 -2.14,-2.26 -3.73,-1.92 -0.63,-2.89 -2.85,-1.1 -3.19,0.87 -1.52,-2.37 0.61,-2.55 -3.36,1.64 1.26,3.19 -1.59,2.83 -0.02,0.04 -3.6,2.89 -3.63,-0.48 2.53,3.44 1.67,5.2 1.29,1.67 0.33,2.53 -0.72,1.6 -5.23,-1.32 -7.84,4.51 -2.49,0.69 -4.29,4.1 -4.07,3.5 -1.03,2.55 -4.01,-3.9 -7.31,4.42 -1.28,-2.08 -2.7,2.39 -3.75,-0.76 -0.9,3.63 -3.36,5.22 0.1,2.14 3.19,1.17 -0.38,7.46 -2.6,0.19 -1.2,4.15 1.17,2.1 -4.9,2.47 -0.97,5.4 -4.18,1.14 -0.84,4.66 -4.04,4.18 -1.04,-3.08 -1.2,-6.69 -1.56,-10.65 1.35,-6.95 2.37,-3.07 0.15,-2.44 4.36,-1.18 5.01,-6.78 4.83,-5.73 5.04,-4.57 2.25,-8.37 -3.41,0.51 -1.68,4.92 -7.11,6.36 -2.3,-7.14 -7.24,2 -7.02,9.56 2.32,3.38 -6.26,1.42 -4.33,0.56 0.2,-3.95 -4.36,-0.84 -3.47,2.7 -8.57,-0.94 -9.22,1.62 -9.08,10.33 -10.75,11.78 4.42,0.61 1.38,3 2.72,1.05 1.79,-2.38 3.08,0.31 4.05,5.19 0.09,3.92 -2.19,4.51 -0.24,5.27 -1.26,6.85 -4.23,6.01 -0.94,2.82 -3.81,4.66 -3.78,4.53 -1.81,2.28 -3.74,2.25 -1.77,0.05 -1.76,-1.86 -3.76,2.79 -0.44,1.26 -0.39,-0.66 -0.02,-1.93 1.43,-0.1 0.4,-4.55 -0.74,-3.36 2.41,-1.4 3.4,0.7 1.89,-3.89 0.96,-4.46 1.09,-1.51 1.47,-3.76 -4.63,1.24 -2.43,1.65 -4.26,0 -1.13,-3.95 -3.32,-3.03 -4.88,-1.38 -1.04,-4.28 -0.98,-2.73 -1.05,-1.94 -1.73,-4.61 -2.46,-1.71 -4.2,-1.39 -3.72,0.13 -3.48,0.84 -2.32,2.31 1.54,1.1 0.04,2.52 -1.56,1.45 -2.53,4.72 0.03,1.93 -3.95,2.74 -3.37,-1.63 -3.35,0.36 -1.47,-1.46 -1.68,-0.47 -4.11,3.06 -3.69,0.71 -2.58,1.06 -3.53,-0.7 -2.6,0.04 -1.7,-2.2 -2.75,-2.09 -2.81,-0.58 -3.55,0.57 -2.65,0.81 -3.98,-1.84 -0.53,-3.32 -3.3,-1.15 -2.54,-0.53 -3.14,-1.87 -2.9,4.66 1.14,2.6 -2.73,3.03 -4.05,-1.09 -2.8,-0.16 -1.87,-2.04 -2.92,-0.06 -2.44,-1.35 -4.26,2.07 -5.35,3.74 -2.96,0.74 -1.1,0.35 -1.49,-2.63 -3.61,0.58 -1.19,-1.84 -1.96,-0.85 -1.35,-2.55 -1.55,-0.8 -4.03,1.14 -3.86,-2.57 -1.49,2.33 -6.27,-11.58 -3.58,-3.66 1.03,-1.5 -7.03,4.49 -2.69,0.27 0.23,-2.58 -3.6,-1.63 -2.93,1.17 -0.88,-5.01 -5.04,-1.06 -2.52,2.03 -7.02,1.79 -1.37,1.19 -10.49,1.66 -1.29,1.62 2.02,3.21 -2.69,1.2 0.53,1.25 -2.69,2.22 4.54,3.1 -0.7,2.11 -3.94,-0.19 -0.81,1.31 -3.59,-2.29 -4.45,0.09 -2.98,1.87 -3.32,-1.79 -6.18,-3.1 -4.38,0.12 -5.79,4.85 -0.35,3.19 -2.88,-2.53 -2.24,4.77 0.82,0.87 -1.62,3.21 2.38,2.84 2.08,-0.12 1.79,2.76 -0.28,2.1 1.42,0.66 -1.28,2.39 -2.72,0.66 -2.79,4.09 2.55,3.7 -0.28,2.59 3.06,4.46 -1.67,1.51 -0.48,0.95 -1.24,-0.25 -1.93,-2.27 -0.79,-0.13 -1.76,-0.87 -0.86,-1.55 -2.62,-0.79 -1.7,0.6 -0.49,-0.71 -3.82,-1.83 -4.13,-0.62 -2.37,-0.66 -0.34,0.45 -3.57,-3.27 -3.2,-1.48 -2.42,-2.32 2.04,-0.64 2.33,-3.35 -1.57,-1.6 4.13,-1.67 -0.07,-0.9 -2.52,0.66 0.09,-1.83 1.45,-1.16 2.71,-0.31 0.44,-1.4 -0.62,-2.33 1.14,-2.23 -0.03,-1.26 -4.13,-1.41 -1.64,0.05 -1.73,-2.04 -2.15,0.69 -3.56,-1.54 0.06,-0.87 -1,-1.93 -2.24,-0.22 -0.23,-1.39 0.7,-0.91 -1.79,-2.58 -2.91,0.44 -0.85,-0.23 -0.71,1.04 -1.05,-0.18 -0.69,-2.94 -0.66,-1.54 0.54,-0.44 2.26,0.16 1.09,-1.02 -0.81,-1.25 -1.89,-0.83 0.17,-0.86 -1.14,-0.87 -1.76,-3.15 0.6,-1.31 -0.27,-2.31 -2.74,-1.18 -1.47,0.59 -0.4,-1.24 -2.95,-1.26 -0.9,-2.99 -0.24,-2.49 -1.35,-1.19 1.2,-1.66 -0.83,-4.96 2,-3.13 -0.42,-0.96 3.19,-3.07 -2.94,-2.68 6,-7.41 2.6,-3.45 1.05,-3.1 -4.15,-4.26 1.15,-4.15 -2.52,-4.85 1.89,-5.76 -3.26,-7.96 2.59,-5.48 -4.29,-4.99 0.41,-5.4 2.26,-0.72 4.77,-3.19 2.89,-2.81 4.61,4.86 7.68,1.88 10.59,8.65 2.15,3.51 0.19,4.8 -3.11,3.69 -4.58,1.85 -12.52,-5.31 -2.06,0.9 4.57,5.1 0.18,3.15 0.18,6.75 3.61,1.97 2.19,1.66 0.36,-3.11 -1.69,-2.8 1.78,-2.51 6.78,4.1 2.36,-1.59 -1.89,-4.88 6.53,-6.74 2.59,0.4 2.62,2.43 1.63,-4.81 -2.34,-4.28 1.37,-4.41 -2.06,-4.69 7.84,2.44 1.6,4.18 -3.55,0.91 0.02,4.04 2.21,2.44 4.33,-1.54 0.69,-4.61 5.86,-3.52 9.79,-6.54 2.11,0.38 -2.76,4.64 3.48,0.78 2.01,-2.58 5.25,-0.21 4.16,-3.19 3.2,4.62 3.19,-5.09 -2.94,-4.58 1.46,-2.66 8.28,2.44 3.88,2.49 10.16,8.8 1.88,-3.97 -2.85,-4.11 -0.08,-1.68 -3.38,-0.78 0.92,-3.83 -1.5,-6.49 -0.08,-2.74 5.17,-7.99 1.84,-8.42 2.08,-1.88 7.42,2.51 0.58,5.18 -2.66,7.28 1.74,2.78 0.9,5.94 -0.64,11.07 3.09,4.73 -1.2,5.01 -5.49,10.2 3.21,1.02 1.12,-2.51 3.08,-1.82 0.74,-3.55 2.43,-3.49 -1.63,-4.26 1.31,-5.08 -3.07,-0.64 -0.67,-4.42 2.24,-8.28 -3.64,-7.03 5.02,-6.04 -0.65,-6.62 1.4,-0.22 1.47,5.19 -1.11,8.67 3,1.59 -1.28,-6.37 4.69,-3.58 5.82,-0.49 5.18,5.18 -2.49,-7.62 -0.28,-10.28 4.88,-2.02 6.74,0.44 6.08,-1.32 -2.28,-5.38 3.25,-7.02 3.22,-0.3 5.45,-5.51 7.4,-1.51 0.94,-3.15 7.36,-1.08 2.29,2.61 6.29,-6.24 5.15,0.2 0.77,-5.24 2.68,-5.33 6.62,-5.31 4.81,4.21 -3.82,3.13 6.35,1.92 0.76,6.03 2.56,-2.94 8.2,0.16 6.32,5.84 2.25,4.35 -0.7,5.85 -3.1,3.24 -7.37,5.92 -2.11,3.08 3.48,1.43 4.15,2.55 2.52,-1.91 1.43,6.39 1.23,-2.56 4.48,-1.57 9,1.65 0.68,4.58 11.72,1.43 0.16,-7.47 5.95,1.74 4.48,-0.05 4.53,5.14 1.29,6.04 -1.66,3.84 3.52,6.98 4.41,3.49 2.71,-9.18 4.5,4 4.78,-2.38 5.43,2.72 2.07,-2.47 4.59,1.24 -2.02,-8.4 3.7,-4.07 25.32,6.06 2.39,5.35 7.34,6.65 11.32,-1.62 5.58,1.41 2.33,3.5 -0.34,6.02 3.45,2.29 3.75,-1.64 4.97,-0.21 5.29,1.57 5.31,-0.89 4.88,6.99 3.47,-2.48 -2.27,-5.07 1.25,-3.62 8.95,2.29 5.83,-0.49 8.06,3.84 3.92,3.44 6.87,5.86 7.35,7.34 -0.24,4.44 1.89,1.74 -0.65,-5.15 7.61,1.07 5.55,6.53 z m -127.43,90.5 -2.82,-7.68 -1.16,-4.51 0.07,-4.5 -0.97,-4.5 -0.73,-3.15 -1.25,0.67 1.11,2.21 -2.59,2.17 -0.25,6.3 1.64,4.41 -0.12,5.85 -0.65,3.24 0.32,4.54 -0.31,4.01 0.52,3.4 1.84,-3.13 2.13,2.44 0.08,-2.84 -2.73,-4.23 1.72,-6.11 4.15,1.41 z m -343.02,-27.48 -2.94,-0.86 -3.87,1.58 -0.64,2.13 3.45,0.55 5.16,-0.07 -0.22,-1.23 0.3,-1.33 -1.24,-0.77 z M 980.2,178.9 l 3.66,-0.52 2.89,-2.06 0.24,-1.19 -4.06,-2.51 -2.38,-0.02 -0.36,0.37 -3.57,3.64 0.5,2.73 3.08,-0.44 z m -109.88,-27.09 -2.66,3.92 0.49,0.52 5.75,1.08 4.25,-0.07 -0.34,-2.57 -3.98,-3.81 -3.51,0.93 z m 24.57,-9.53 3.24,-4.25 -7.04,-2.88 -5.23,-1.68 -0.67,3.59 5.21,4.27 4.49,0.95 z m -25.13,-1.69 10.33,0.3 2.21,-8.14 -10.13,-6.07 -7.4,-0.51 -3.7,2.18 -1.51,7.75 5.55,7.01 4.65,-2.52 z m -247.12,25.94 -2.87,1.96 0.41,4.83 5.08,2.35 0.74,3.82 9.16,1.1 1.66,-0.74 -5.36,-7.11 -0.57,-7.52 4.39,-9.14 4.18,-9.82 8.71,-10.17 8.56,-5.34 9.93,-5.74 1.88,-3.71 -1.95,-4.83 -5.46,1.6 -4.8,4.49 -9.33,2.22 -9.26,7.41 -6.27,5.85 0.76,4.87 -6.71,9.03 2.58,1.22 -5.56,8.27 0.1,5.1 z m 147.48,-67.94 0.83,-5.72 -7.11,-8.34 -2.11,-0.98 -2.3,1.7 -5.12,18.6 15.81,-5.26 z m -164.23,-29.31 3.04,3.88 3.28,-2.69 0.39,-2.72 2.52,-1.27 3.76,-2.23 1.08,-2.62 -4.16,-3.85 -2.64,2.9 -1.61,4.12 -0.57,-4.65 -4.26,0.21 -5.47,3.14 6.24,0.52 -1.6,5.26 z m 131.25,13.04 4.65,5.73 7.81,4.2 6.12,-1.8 0.69,-13.62 -6.46,-16.04 -5.45,-9.02 -6.07,4.11 -7.28,11.83 3.83,3.27 2.16,11.34 z\",\n                    \"RW\": \"m 560.79,466.8 1.12,1.57 -0.17,1.64 -0.8,0.35 -1.49,-0.18 -0.86,1.59 -1.71,-0.22 0.26,-1.53 0.39,-0.21 0.1,-1.66 0.81,-0.78 0.68,0.29 z\",\n                    \"SA\": \"m 595.45,417.47 -0.36,-1.24 -0.85,-0.88 -0.22,-1.17 -1.44,-1.04 -1.5,-2.46 -0.79,-2.41 -1.94,-2.04 -1.25,-0.48 -1.86,-2.85 -0.32,-2.08 0.12,-1.79 -1.61,-3.36 -1.31,-1.19 -1.52,-0.63 -0.92,-1.76 0.15,-0.69 -0.78,-1.6 -0.82,-0.69 -1.09,-2.32 -1.71,-2.52 -1.43,-2.16 -1.39,0.01 0.43,-1.74 0.13,-1.11 0.34,-1.28 3.12,0.51 1.22,-0.98 0.67,-1.16 2.14,-0.44 0.46,-1.09 0.93,-0.54 -2.8,-3.26 5.62,-1.65 0.53,-0.49 3.38,0.89 4.18,2.29 7.9,6.49 5.21,0.26 2.5,0.31 0.7,1.51 1.98,-0.08 1.1,2.73 1.38,0.71 0.48,1.11 1.91,1.31 0.17,1.29 -0.28,1.03 0.36,1.04 0.8,0.87 0.38,1.01 0.42,0.75 0.84,0.61 0.78,-0.22 0.53,1.17 0.11,0.71 1.08,3.08 8.42,1.52 0.57,-0.64 1.28,2.14 -1.87,5.97 -8.41,2.96 -8.08,1.13 -2.62,1.32 -2.01,3.07 -1.31,0.48 -0.7,-0.97 -1.07,0.15 -2.71,-0.29 -0.52,-0.3 -3.23,0.07 -0.76,0.27 -1.15,-0.76 -0.75,1.43 0.29,1.23 z\",\n                    \"SB\": \"m 930.06,493 0.78,0.97 -1.96,-0.02 -1.07,-1.74 1.67,0.69 0.58,0.1 z m -3.55,-1.73 -1.09,0.06 -1.72,-0.29 -0.59,-0.44 0.18,-1.12 1.85,0.44 0.91,0.59 0.46,0.76 z m 2.32,-0.77 -0.42,0.52 -2.08,-2.45 -0.58,-1.68 h 0.95 l 1.01,2.25 1.12,1.36 z m -5.06,-3.56 0.12,0.57 -2.2,-1.19 -1.54,-1.01 -1.05,-0.94 0.42,-0.29 1.29,0.67 2.3,1.29 0.66,0.9 z m -6.55,-2.78 -0.56,0.16 -1.23,-0.64 -1.15,-1.15 0.14,-0.47 1.67,1.18 1.13,0.92 z\",\n                    \"SD\": \"m 570.73,437.15 -0.39,-0.05 0.05,-1.41 -0.34,-0.97 -1.44,-1.12 -0.34,-2.05 0.34,-2.1 -1.3,-0.19 -0.19,0.63 -1.69,0.15 0.68,0.83 0.24,1.71 -1.54,1.56 -1.4,2.04 -1.44,0.29 -2.36,-1.65 -1.06,0.58 -0.29,0.83 -1.44,0.53 -0.1,0.58 -2.79,0 -0.39,-0.58 -2.02,-0.1 -1.01,0.49 -0.77,-0.25 -1.44,-1.65 -0.48,-0.77 -2.03,0.39 -0.77,1.31 -0.72,2.52 -0.96,0.53 -0.86,0.31 -0.23,-0.14 -0.97,-0.81 -0.18,-0.87 0.45,-1.18 0,-1.15 -1.62,-1.77 -0.32,-1.22 0.03,-0.69 -1.03,-0.83 -0.03,-1.66 -0.58,-1.1 -0.99,0.17 0.28,-1.05 0.73,-1.2 -0.32,-1.18 0.92,-0.88 -0.58,-0.67 0.74,-1.78 1.28,-2.13 2.42,0.2 -0.14,-11.61 0.04,-1.24 3.22,-0.01 0,-5.96 11.27,0 10.88,0 11.12,0 0.9,2.94 -0.61,0.54 0.41,3.06 1.03,3.52 1.06,0.73 1.54,1.08 -1.42,1.67 -2.07,0.48 -0.88,0.9 -0.27,1.93 -1.21,4.25 0.3,1.15 -0.45,2.47 -1.14,2.81 -1.69,1.42 -1.2,2.17 -0.29,1.16 -1.32,0.8 -0.83,2.96 z\",\n                    \"SE\": \"m 537.7,217.74 -2.72,4.69 0.44,4.02 -4.46,5.13 -5.41,5.34 -2.05,8.41 2,4.07 2.68,3.14 -2.57,6.23 -2.92,1.26 -1.07,8.84 -1.59,4.76 -3.4,-0.49 -1.59,3.95 -3.25,0.23 -0.89,-4.71 -2.35,-5.81 -2.13,-7.5 1.24,-3.15 2.33,-3.81 0.93,-6.73 -1.79,-2.98 -0.18,-8.04 1.83,-5.91 2.78,0.11 0.97,-2.55 -1.02,-2.23 4.35,-9.5 2.81,-7.87 1.85,-5.24 2.69,0.02 0.75,-4.21 5.28,1.22 0.41,-5.08 1.74,-0.33 3.74,3.81 4.37,5.15 0.08,11.12 0.94,2.7 z\",\n                    \"SI\": \"m 514.21,316.76 2.32,0.31 1.42,-0.92 2.45,-0.1 0.53,-0.69 0.47,0.05 0.55,1.37 -2.23,1.08 -0.28,1.62 -0.97,0.41 0.01,1.12 -1.1,-0.08 -0.95,-0.65 -0.52,0.68 -1.95,-0.14 0.62,-0.36 -0.67,-1.71 z\",\n                    \"SJ\": \"m 544.83,104.74 -6.26,5.36 -4.95,-3.02 1.94,-3.42 -1.69,-4.34 5.81,-2.78 1.11,5.18 4.04,3.02 z m -18.15,-26.68 9.23,11.29 -7.06,5.66 -1.56,10.09 -2.46,2.49 -1.33,10.51 -3.38,0.48 -6.03,-7.64 2.54,-4.62 -4.2,-3.86 -5.46,-11.82 -2.18,-11.79 7.64,-5.69 1.54,5.56 3.99,-0.22 1.06,-5.43 4.12,-0.56 3.54,5.55 z m 20.17,-11.46 5.5,5.8 -4.16,8.52 -8.13,1.81 -8.27,-2.56 -0.5,-4.32 -4.02,-0.28 -3.07,-7.48 8.66,-4.72 4.07,4.08 2.84,-5.09 7.08,4.24 z\",\n                    \"SK\": \"m 528.36,304.27 0.16,0.26 1.16,-0.58 1.41,1.52 1.66,-0.92 1.32,0.44 2.02,-0.6 2.66,1.64 -0.77,1.11 -0.55,1.71 -0.6,0.43 -3,-1.28 -0.92,0.25 -0.66,1 -1.32,0.52 -0.3,-0.27 -1.36,0.65 -1.12,0.13 -0.22,0.84 -2.36,0.51 -1.03,-0.46 -1.43,-1.07 -0.28,-1.45 0.23,-0.54 0.39,-0.93 1.25,0.07 0.95,-0.44 0.08,-0.39 0.54,-0.21 0.18,-0.97 0.64,-0.19 0.44,-0.77 z\",\n                    \"SL\": \"m 443.43,444.69 -0.76,-0.21 -2.01,-1.13 -1.46,-1.5 -0.49,-1.03 -0.35,-2.08 1.5,-1.24 0.32,-0.79 0.48,-0.61 0.78,-0.06 0.65,-0.53 2.24,0 0.78,1.01 0.61,1.19 -0.09,0.82 0.45,0.74 -0.03,1.03 0.77,-0.16 -1.31,1.31 -1.26,1.53 -0.15,0.81 z\",\n                    \"SN\": \"m 428.64,425.41 -1.16,-2.24 -1.4,-1.02 1.24,-0.55 1.36,-2.03 0.66,-1.49 0.96,-0.93 1.4,0.25 1.36,-0.63 1.57,-0.03 1.34,0.85 1.86,0.77 1.7,2.13 1.85,1.98 0.13,1.79 0.55,1.64 1.05,0.81 0.24,1.1 -0.13,0.89 -0.41,0.16 -1.52,-0.22 -0.21,0.31 -0.62,0.07 -2.02,-0.7 -1.35,-0.03 -5.18,-0.12 -0.75,0.32 -0.93,-0.09 -1.49,0.47 -0.46,-2.19 2.55,0.06 0.68,-0.4 0.5,-0.03 1.04,-0.66 1.2,0.61 1.22,0.05 1.21,-0.65 -0.56,-0.82 -0.93,0.48 -0.87,-0.01 -1.1,-0.71 -0.89,0.05 -0.64,0.67 z\",\n                    \"SO\": \"m 618.88,430.68 -0.07,-0.79 -1.06,0.01 -1.33,0.98 -1.49,0.28 -1.29,0.42 -0.89,0.06 -1.6,0.1 -1,0.52 -1.39,0.19 -2.47,0.88 -3.05,0.33 -2.65,0.73 -1.39,-0.01 -1.26,-1.19 -0.55,-1.17 -0.91,-0.53 -1.04,1.52 -0.61,1.01 1.04,1.56 1.03,1.36 1.07,1.01 9.17,3.34 2.36,-0.02 -7.93,8.42 -3.65,0.12 -2.5,1.97 -1.79,0.05 -0.77,0.88 -2.45,3.17 0.03,10.15 1.66,2.29 0.63,-0.66 0.65,-1.46 3.07,-3.38 2.61,-2.12 4.2,-2.76 2.8,-2.26 3.3,-3.81 2.39,-3.13 2.41,-4.1 1.73,-3.59 1.35,-3.15 0.79,-3.05 0.6,-1.02 -0.01,-1.5 z\",\n                    \"SR\": \"m 315.27,446.97 3.36,0.56 0.3,-0.51 2.27,-0.2 3.01,0.76 -1.46,2.4 0.22,1.91 1.11,1.66 -0.49,1.2 -0.25,1.27 -0.72,1.17 -1.6,-0.59 -1.33,0.29 -1.13,-0.25 -0.28,0.81 0.47,0.55 -0.25,0.57 -1.53,-0.23 -1.71,-2.42 -0.37,-1.57 -0.89,-0.01 -1.25,-2.02 0.52,-1.45 -0.15,-0.65 1.7,-0.73 z\",\n                    \"SS\": \"m 570.73,437.15 0.03,2.2 -0.42,0.86 -1.48,0.07 -0.96,1.61 1.72,0.2 1.42,1.37 0.5,1.12 1.28,0.65 1.65,3.05 -1.9,1.84 -1.72,1.67 -1.73,1.28 -1.97,0 -2.26,0.65 -1.78,-0.63 -1.15,0.77 -2.47,-1.86 -0.67,-1.19 -1.56,0.59 -1.3,-0.19 -0.75,0.47 -1.26,-0.33 -1.69,-2.31 -0.45,-0.89 -2.1,-1.11 -0.71,-1.68 -1.17,-1.21 -1.88,-1.46 -0.03,-0.92 -1.53,-1.13 -1.91,-1.1 0.86,-0.31 0.96,-0.53 0.72,-2.52 0.77,-1.31 2.03,-0.39 0.48,0.77 1.44,1.65 0.77,0.25 1.01,-0.49 2.02,0.1 0.39,0.58 2.79,0 0.1,-0.58 1.44,-0.53 0.29,-0.83 1.06,-0.58 2.36,1.65 1.44,-0.29 1.4,-2.04 1.54,-1.56 -0.24,-1.71 -0.68,-0.83 1.69,-0.15 0.19,-0.63 1.3,0.19 -0.34,2.1 0.34,2.05 1.44,1.12 0.34,0.97 -0.05,1.41 z\",\n                    \"SV\": \"m 229.34,426.01 -0.31,0.67 -1.62,-0.04 -1.01,-0.27 -1.16,-0.57 -1.56,-0.18 -0.79,-0.62 0.09,-0.42 0.96,-0.72 0.52,-0.32 -0.15,-0.34 0.66,-0.17 0.83,0.24 0.6,0.57 0.85,0.46 0.1,0.39 1.23,-0.34 0.58,0.2 0.38,0.31 z\",\n                    \"SY\": \"m 584.27,364.85 -5.49,3.54 -3.12,-1.32 -0.06,-0.02 0.38,-0.5 -0.04,-1.37 0.69,-1.83 1.53,-1.27 -0.46,-1.32 -1.26,-0.18 -0.26,-2.61 0.68,-1.41 0.75,-0.75 0.75,-0.76 0.16,-1.94 0.91,0.68 3.09,-0.97 1.49,0.65 2.31,-0.01 3.22,-1.31 1.52,0.06 3.19,-0.54 -1.44,2.18 -1.54,0.86 0.27,2.52 -1.06,4.12 z\",\n                    \"SZ\": \"m 565.43,540.99 -0.57,1.39 -1.64,0.33 -1.68,-1.69 -0.02,-1.08 0.76,-1.17 0.27,-0.9 0.81,-0.22 1.41,0.57 0.42,1.39 z\",\n                    \"TD\": \"m 516.15,427.51 0.28,-1.34 -1.8,-0.07 0.01,-1.85 -1.17,-1.06 1.21,-3.8 3.58,-2.74 0.14,-3.79 1.08,-5.98 0.61,-1.28 -1.16,-1.02 -0.05,-0.95 -1.05,-0.78 -0.69,-4.67 2.83,-1.66 11.19,5.77 11.18,5.7 0.14,11.61 -2.42,-0.2 -1.28,2.13 -0.74,1.78 0.58,0.67 -0.92,0.88 0.32,1.18 -0.73,1.2 -0.28,1.05 0.99,-0.17 0.58,1.1 0.03,1.66 1.03,0.83 -0.03,0.69 -1.77,0.49 -1.43,1.14 -2.02,3.09 -2.64,1.31 -2.71,-0.18 -0.79,0.26 0.28,0.99 -1.47,0.99 -1.19,1.1 -3.53,1.07 -0.7,-0.63 -0.46,-0.06 -0.52,0.72 -2.32,0.22 0.44,-0.77 -0.88,-1.93 -0.4,-1.17 -1.22,-0.48 -1.65,-1.65 0.61,-1.33 1.28,0.28 0.79,-0.2 1.56,0.03 -1.52,-2.57 0.1,-1.89 -0.19,-1.89 z\",\n                    \"TF\": \"m 668.79,619.28 1.8,1.33 2.65,0.54 0.1,0.81 -0.78,1.96 -4.31,0.28 -0.07,-2.29 0.42,-1.76 z\",\n                    \"TG\": \"m 480.73,446.5 -2.25,0.59 -0.63,-0.98 -0.75,-1.78 -0.22,-1.4 0.62,-2.53 -0.7,-1.03 -0.27,-2.22 0,-2.05 -1.17,-1.46 0.21,-0.89 2.46,0.06 -0.36,1.5 0.85,0.83 0.98,0.99 0.1,1.39 0.57,0.58 -0.13,6.46 z\",\n                    \"TH\": \"m 763.14,429.43 -2.52,-1.31 -2.4,0.06 0.41,-2.25 -2.47,0.02 -0.22,3.14 -1.51,4.15 -0.91,2.5 0.19,2.05 1.82,0.09 1.14,2.57 0.51,2.43 1.56,1.61 1.7,0.33 1.45,1.45 -0.91,1.15 -1.86,0.34 -0.22,-1.44 -2.28,-1.23 -0.49,0.5 -1.11,-1.07 -0.48,-1.39 -1.49,-1.59 -1.36,-1.33 -0.46,1.65 -0.53,-1.56 0.31,-1.76 0.82,-2.71 1.36,-2.91 1.54,-2.65 -1.1,-2.6 0.05,-1.33 -0.32,-1.6 -1.87,-2.28 -0.67,-1.45 0.97,-0.53 1.02,-2.52 -1.14,-1.92 -1.78,-2.13 -1.36,-2.57 1.18,-0.53 1.28,-3.19 1.98,-0.14 1.64,-1.28 1.6,-0.69 1.22,0.92 0.16,1.78 1.89,0.13 -0.69,3.11 0.07,2.62 2.95,-1.74 0.84,0.51 1.65,-0.08 0.56,-1.02 2.12,0.2 2.13,2.38 0.18,2.87 2.27,2.53 -0.13,2.44 -0.91,1.3 -2.63,-0.41 -3.62,0.55 -1.8,2.38 z\",\n                    \"TJ\": \"m 674.62,340.87 -1.03,1.13 -3.05,-0.61 -0.27,2.1 3.04,-0.28 3.47,1.17 5.3,-0.55 0.71,3.33 0.92,-0.36 1.7,0.81 -0.09,1.38 0.42,2.01 -2.9,0 -1.93,-0.26 -1.74,1.57 -1.25,0.34 -0.98,0.74 -1.11,-1.15 0.27,-2.95 -0.85,-0.17 0.3,-1.09 -1.51,-0.8 -1.21,1.23 -0.3,1.43 -0.43,0.52 -1.68,-0.07 -0.9,1.6 -0.95,-0.67 -2.03,1.12 -0.85,-0.42 1.57,-3.57 -0.6,-2.66 -2.06,-0.86 0.73,-1.59 2.34,0.17 1.33,-2.01 0.89,-2.35 3.75,-0.86 -0.58,1.71 0.4,1.02 z\",\n                    \"TL\": \"m 825.9,488.5 0.33,-0.66 2.41,-0.63 1.96,-0.1 0.87,-0.35 1.06,0.35 -1.03,0.76 -2.92,1.23 -2.35,0.82 -0.05,-0.86 z\",\n                    \"TM\": \"m 647.13,357.15 -0.25,-2.91 -2.09,-0.12 -3.2,-3.09 -2.24,-0.39 -3.1,-1.79 -2,-0.33 -1.23,0.66 -1.87,-0.1 -1.99,2.02 -2.47,0.68 -0.52,-2.49 0.41,-3.73 -2.19,-1.22 0.72,-2.48 -1.86,-0.22 0.62,-3.09 2.64,0.91 2.47,-1.19 -2.05,-2.23 -0.8,-2.14 -2.26,0.96 -0.28,2.73 -0.88,-2.41 1.24,-1.25 3.18,-0.79 1.9,1.06 1.96,2.93 1.44,-0.18 3.16,-0.05 -0.46,-1.88 2.4,-1.3 2.36,-2.2 3.78,2 0.3,2.99 1.07,0.77 3.03,-0.17 0.94,0.67 1.38,3.79 3.21,2.51 1.83,1.69 2.93,1.75 3.73,1.52 -0.08,2.16 -0.84,-0.11 -1.33,-0.94 -0.44,1.25 -2.36,0.68 -0.56,2.79 -1.58,1.05 -2.21,0.52 -0.59,1.55 -2.11,0.46 z\",\n                    \"TN\": \"m 502.09,374.94 -1.2,-5.86 -1.72,-1.33 -0.03,-0.81 -2.29,-1.98 -0.25,-2.53 1.73,-1.88 0.66,-2.82 -0.45,-3.28 0.57,-1.79 3.06,-1.41 1.96,0.42 -0.08,1.77 2.38,-1.29 0.2,0.67 -1.41,1.71 -0.01,1.6 0.97,0.85 -0.37,2.96 -1.85,1.71 0.53,1.83 1.45,0.06 0.71,1.59 1.07,0.52 -0.16,2.55 -1.37,0.95 -0.86,1.05 -1.93,1.26 0.3,1.35 -0.24,1.38 z\",\n                    \"TR\": \"m 579,336.85 4.02,1.43 3.27,-0.57 2.41,0.33 3.31,-1.94 2.99,-0.18 2.7,1.83 0.48,1.3 -0.27,1.79 2.08,0.91 1.1,1.06 -1.92,1.03 0.88,4.11 -0.55,1.1 1.53,2.82 -1.34,0.59 -0.98,-0.89 -3.26,-0.45 -1.2,0.55 -3.19,0.54 -1.51,-0.06 -3.23,1.31 -2.31,0.01 -1.49,-0.66 -3.09,0.97 -0.92,-0.68 -0.15,1.94 -0.75,0.76 -0.75,0.76 -1.03,-1.57 1.06,-1.3 -1.71,0.3 -2.35,-0.8 -1.93,2 -4.26,0.39 -2.27,-1.86 -3.02,-0.12 -0.65,1.44 -1.94,0.41 -2.71,-1.85 -3.06,0.06 -1.66,-3.48 -2.05,-1.96 1.36,-2.78 -1.78,-1.72 3.11,-3.48 4.32,-0.15 1.18,-2.81 5.34,0.49 3.37,-2.42 3.27,-1.06 4.64,-0.08 4.91,2.64 z m -27.25,2.39 -2.34,1.98 -0.88,-1.71 0.04,-0.76 0.67,-0.41 0.87,-2.33 -1.37,-0.99 2.86,-1.18 2.41,0.5 0.33,1.44 2.45,1.2 -0.51,0.91 -3.33,0.2 -1.2,1.15 z\",\n                    \"TT\": \"m 302.56,433.49 1.61,-0.37 0.59,0.1 -0.11,2.11 -2.34,0.31 -0.51,-0.25 0.82,-0.78 z\",\n                    \"TW\": \"m 816.95,393.52 -1.69,4.87 -1.2,2.48 -1.48,-2.55 -0.32,-2.25 1.65,-3 2.25,-2.32 1.28,0.91 z\",\n                    \"TZ\": \"m 570.56,466.28 0.48,0.31 10.16,5.67 0.2,1.62 4.02,2.79 -1.29,3.45 0.16,1.59 1.8,1.02 0.08,0.73 -0.77,1.7 0.16,0.85 -0.18,1.35 0.98,1.76 1.16,2.79 1.02,0.62 -2.23,1.64 -3.06,1.1 -1.68,-0.04 -1,0.85 -1.95,0.07 -0.74,0.36 -3.37,-0.8 -2.11,0.23 -0.78,-3.86 -0.95,-1.32 -0.57,-0.78 -2.74,-0.52 -1.6,-0.85 -1.78,-0.47 -1.12,-0.48 -1.17,-0.71 -1.51,-3.55 -1.63,-1.57 -0.56,-1.62 0.28,-1.46 -0.5,-2.57 1.16,-0.13 1.01,-1.01 1.1,-1.46 0.69,-0.58 -0.03,-0.91 -0.6,-0.63 -0.16,-1.1 0.8,-0.35 0.17,-1.64 -1.12,-1.57 0.99,-0.34 3.07,0.04 z\",\n                    \"UA\": \"m 564.63,292.74 1.04,0.19 0.71,-1.04 0.85,0.23 2.91,-0.44 1.79,2.57 -0.7,0.92 0.23,1.39 2.24,0.21 1,1.93 -0.06,0.87 3.56,1.54 2.15,-0.69 1.73,2.04 1.64,-0.04 4.13,1.4 0.03,1.27 -1.13,2.23 0.61,2.33 -0.44,1.39 -2.71,0.31 -1.44,1.16 -0.09,1.83 -2.24,0.33 -1.87,1.32 -2.62,0.21 -2.42,1.52 -1.32,1.03 1.49,1.47 1.37,0.96 2.86,-0.24 -0.55,1.42 -3.07,0.68 -3.81,2.27 -1.55,-0.79 0.61,-1.85 -3.06,-1.16 0.5,-0.77 3.16,-1.63 -0.4,-0.81 -0.45,0.41 -0.44,-0.22 -4.36,-1.02 -0.19,-1.51 -2.6,0.5 -1.04,2.23 -2.17,2.95 -1.28,-0.68 -1.31,0.64 -1.25,-0.73 0.7,-0.44 0.49,-1.37 0.77,-1.29 -0.2,-0.72 0.59,-0.32 0.27,0.56 1.66,0.11 0.74,-0.29 -0.52,-0.42 0.19,-0.6 -0.98,-1.04 -0.4,-1.72 -1.02,-0.67 0.2,-1.41 -1.27,-1.12 -1.15,-0.16 -2.07,-1.31 -1.86,0.42 -0.67,0.62 -1.18,-0.01 -0.71,0.98 -2.07,0.4 -0.95,0.64 -1.31,-1.01 -1.79,-0.02 -1.74,-0.46 -1.21,0.89 -0.2,-1.12 -1.55,-1.14 0.55,-1.71 0.77,-1.1 0.62,0.24 -0.73,-1.92 2.55,-3.61 1.39,-0.51 0.3,-1.24 -1.41,-3.89 1.34,-0.17 1.54,-1.23 2.17,-0.1 2.83,0.36 3.13,1.08 2.21,0.09 1.05,0.65 1.05,-0.78 0.74,1.05 2.53,-0.22 1.11,0.43 0.19,-2.26 0.86,-1 z\",\n                    \"UG\": \"m 564.85,466.5 -3.07,-0.04 -0.99,0.34 -1.67,0.86 -0.68,-0.29 0.02,-2.1 0.65,-1.06 0.16,-2.24 0.59,-1.29 1.07,-1.46 1.08,-0.74 0.9,-0.99 -1.12,-0.37 0.17,-3.26 1.15,-0.77 1.78,0.63 2.26,-0.65 1.97,0 1.73,-1.28 1.33,1.94 0.33,1.4 1.23,3.2 -1.02,2.03 -1.38,1.84 -0.8,1.13 0.02,2.95 z\",\n                    \"US\": \"m 109.5,280.05 0,0 -1.54,-1.83 -2.47,-1.57 -0.79,-4.36 -3.61,-4.13 -1.51,-4.94 -2.69,-0.34 -4.46,-0.13 -3.29,-1.54 -5.8,-5.64 -2.68,-1.05 -4.9,-1.99 -3.88,0.48 -5.51,-2.59 -3.33,-2.43 -3.11,1.21 0.58,3.93 -1.55,0.36 -3.24,1.16 -2.47,1.86 -3.11,1.16 -0.4,-3.24 1.26,-5.53 2.98,-1.77 -0.77,-1.46 -3.57,3.22 -1.91,3.77 -4.04,3.95 2.05,2.65 -2.65,3.85 -3.01,2.21 -2.81,1.59 -0.69,2.29 -4.38,2.63 -0.89,2.36 -3.28,2.13 -1.92,-0.38 -2.62,1.38 -2.85,1.67 -2.33,1.63 -4.81,1.38 -0.44,-0.81 3.07,-2.27 2.74,-1.51 2.99,-2.71 3.48,-0.56 1.38,-2.06 3.89,-3.05 0.63,-1.03 2.07,-1.83 0.48,-4 1.43,-3.17 -3.23,1.64 -0.9,-0.93 -1.52,1.95 -1.83,-2.73 -0.76,1.94 -1.05,-2.7 -2.8,2.17 -1.72,0 -0.24,-3.23 0.51,-2.02 -1.81,-1.98 -3.65,1.07 -2.37,-2.63 -1.92,-1.36 -0.01,-3.25 -2.16,-2.48 1.08,-3.41 2.29,-3.37 1,-3.15 2.27,-0.45 1.92,0.99 2.26,-3.01 2.04,0.54 2.14,-1.96 -0.52,-2.92 -1.57,-1.16 2.08,-2.52 -1.72,0.07 -2.98,1.43 -0.85,1.43 -2.21,-1.43 -3.97,0.73 -4.11,-1.56 -1.18,-2.65 -3.55,-3.91 3.94,-2.87 6.25,-3.41 h 2.31 l -0.38,3.48 5.92,-0.27 -2.28,-4.34 -3.45,-2.72 -1.99,-3.64 -2.69,-3.17 -3.85,-2.38 1.57,-4.03 4.97,-0.25 3.54,-3.58 0.67,-3.92 2.86,-3.91 2.73,-0.95 5.31,-3.76 2.58,0.57 4.31,-4.61 4.24,1.83 2.03,3.87 1.25,-1.65 4.74,0.51 -0.17,1.95 4.29,1.43 2.86,-0.84 5.91,2.64 5.39,0.78 2.16,1.07 3.73,-1.34 4.25,2.46 3.05,1.13 -0.02,27.65 -0.01,35.43 2.76,0.17 2.73,1.56 1.96,2.44 2.49,3.6 2.73,-3.05 2.81,-1.79 1.49,2.85 1.89,2.23 2.57,2.42 1.75,3.79 2.87,5.88 4.77,3.2 0.08,3.12 -1.6,2.32 z m 175.93,34.43 -1.25,-1.19 -1.88,0.7 -0.93,-1.08 -2.14,3.1 -0.86,3.15 -1,1.82 -1.19,0.62 -0.9,0.2 -0.28,0.98 -5.17,0 -4.26,0.03 -1.27,0.73 -2.87,2.73 0.29,0.54 0.17,1.51 -2.1,1.27 -2.3,-0.32 -2.2,-0.14 -1.33,0.44 0.25,1.15 0,0 0.05,0.37 -2.42,2.27 -2.11,1.09 -1.44,0.51 -1.66,1.03 -2.03,0.5 -1.4,-0.19 -1.73,-0.77 0.96,-1.45 0.62,-1.32 1.32,-2.09 -0.14,-1.57 -0.5,-2.24 -1.04,-0.39 -1.74,1.7 -0.56,-0.03 -0.14,-0.97 1.54,-1.56 0.26,-1.79 -0.23,-1.79 -2.08,-1.55 -2.38,-0.8 -0.39,1.52 -0.62,0.4 -0.5,1.95 -0.26,-1.33 -1.12,0.95 -0.7,1.32 -0.73,1.92 -0.14,1.64 0.93,2.38 -0.08,2.51 -1.14,1.84 -0.57,0.52 -0.76,0.41 -0.95,0.02 -0.26,-0.25 -0.76,-1.98 -0.02,-0.98 0.08,-0.94 -0.35,-1.87 0.53,-2.18 0.63,-2.71 1.46,-3.03 -0.42,0.01 -2.06,2.54 -0.38,-0.46 1.1,-1.42 1.67,-2.57 1.91,-0.36 2.19,-0.8 2.21,0.42 0.09,0.02 2.47,-0.36 -1.4,-1.61 -0.75,-0.13 -0.86,-0.16 -0.59,-1.14 -2.75,0.36 -2.49,0.9 -1.97,-1.55 -1.59,-0.52 0.9,-2.17 -2.48,1.37 -2.25,1.33 -2.16,1.04 -1.72,-1.4 -2.81,0.85 0.01,-0.6 1.9,-1.73 1.99,-1.65 2.86,-1.37 -3.45,-1.09 -2.27,0.55 -2.72,-1.3 -2.86,-0.67 -1.96,-0.26 -0.87,-0.72 -0.5,-2.35 -0.95,0.02 -0.01,1.64 -5.8,0 -9.59,0 -9.53,0 -8.42,0 h -8.41 -8.27 -8.55 -2.76 -8.32 -7.96 l 0.95,3.47 0.45,3.41 -0.69,1.09 -1.49,-3.91 -4.05,-1.42 -0.34,0.82 0.82,1.94 0.89,3.53 0.51,5.42 -0.34,3.59 -0.34,3.54 -1.1,3.61 0.9,2.9 0.1,3.2 -0.61,3.05 1.49,1.99 0.39,2.95 2.17,2.99 1.24,1.17 -0.1,0.82 2.34,4.85 2.72,3.45 0.34,1.87 0.71,0.55 2.6,0.33 1,0.91 1.57,0.17 0.31,0.96 1.31,0.4 1.82,1.92 0.47,1.7 3.19,-0.25 3.56,-0.36 -0.26,0.65 4.23,1.6 6.4,2.31 5.58,-0.02 2.22,0 0.01,-1.35 4.86,0 1.02,1.16 1.43,1.03 1.67,1.43 0.93,1.69 0.7,1.77 1.45,0.97 2.33,0.96 1.77,-2.53 2.29,-0.06 1.98,1.28 1.41,2.18 0.97,1.86 1.65,1.8 0.62,2.19 0.79,1.47 2.19,0.96 1.99,0.68 1.09,-0.09 -0.53,-1.06 -0.14,-1.5 0.03,-2.16 0.65,-1.42 1.53,-1.51 2.79,-1.37 2.55,-2.37 2.36,-0.75 1.74,-0.23 2.04,0.74 2.45,-0.4 2.09,1.69 2.03,0.1 1.05,-0.61 1.04,0.47 0.53,-0.42 -0.6,-0.63 0.05,-1.3 -0.5,-0.86 1.16,-0.5 2.14,-0.22 2.49,0.36 3.17,-0.41 1.76,0.8 1.36,1.5 0.5,0.16 2.83,-1.46 1.09,0.49 2.19,2.68 0.79,1.75 -0.58,2.1 0.42,1.23 1.3,2.4 1.49,2.68 1.07,0.71 0.44,1.35 1.38,0.37 0.84,-0.39 0.7,-1.89 0.12,-1.21 0.09,-2.1 -1.33,-3.65 -0.02,-1.37 -1.25,-2.25 -0.94,-2.75 -0.5,-2.25 0.43,-2.31 1.32,-1.94 1.58,-1.57 3.08,-2.16 0.4,-1.12 1.42,-1.23 1.4,-0.22 1.84,-1.98 2.9,-1.01 1.78,-2.53 -0.39,-3.46 -0.29,-1.21 -0.8,-0.24 -0.12,-3.35 -1.93,-1.14 1.85,0.56 -0.6,-2.26 0.54,-1.55 0.33,2.97 1.43,1.36 -0.87,2.4 0.26,0.14 1.58,-2.81 0.9,-1.38 -0.04,-1.35 -0.7,-0.64 -0.58,-1.94 0.92,0.9 0.62,0.19 0.21,0.92 2.04,-2.78 0.61,-2.62 -0.83,-0.17 0.85,-1.02 -0.08,0.45 1.79,-0.01 3.93,-1.11 -0.83,-0.7 -4.12,0.7 2.34,-1.07 1.63,-0.18 1.22,-0.19 2.07,-0.65 1.35,0.07 1.89,-0.61 0.22,-1.07 -0.84,-0.84 0.29,1.37 -1.16,-0.09 -0.93,-1.99 0.03,-2.01 0.48,-0.86 1.48,-2.28 2.96,-1.15 2.88,-1.34 2.99,-1.9 -0.48,-1.29 -1.83,-2.25 -0.03,-5.56 z m -239.56,-50.44 -1.5,0.8 -2.55,1.86 0.43,2.42 1.43,1.32 2.8,-1.95 2.43,-2.47 -1.19,-1.63 -1.85,-0.35 z m -45.62,-28.57 2.04,-1.26 0.23,-0.68 -2.27,-0.67 v 2.61 z m 8.5,15.37 -2.77,0.97 1.7,1.52 1.84,1.04 1.72,-0.87 -0.27,-2.15 -2.22,-0.51 z m 97.35,32.5 -2.69,0.38 -1.32,-0.62 -0.17,1.52 0.52,2.07 1.42,1.46 1.04,2.13 1.69,2.1 1.12,0.01 -2.44,-3.7 0.83,-5.35 z m -68.72,120.68 -1,-0.28 -0.27,0.26 0.02,0.19 0.32,0.24 0.48,0.63 0.94,-0.21 0.23,-0.36 -0.72,-0.47 z m -2.99,-0.54 1.5,0.09 0.09,-0.32 -1.38,-0.13 -0.21,0.36 z m 5.89,3.29 -0.5,-0.26 -1.07,-0.5 -0.21,-0.06 -0.16,0.28 0.19,0.58 -0.49,0.48 -0.14,0.33 0.46,1.08 -0.08,0.83 0.7,0.42 0.41,-0.49 0.9,-0.46 1.1,-0.63 0.07,-0.16 -0.71,-1.04 -0.47,-0.4 z m -7.86,-5.14 -0.75,0.41 0.11,0.12 0.36,0.68 0.98,0.11 0.2,0.04 0.15,-0.17 -0.81,-0.99 -0.24,-0.2 z m -4.4,-1.56 -0.43,0.3 -0.15,0.22 0.94,0.55 0.33,-0.3 -0.06,-0.7 -0.63,-0.07 z\",\n                    \"UY\": \"m 313.93,552.04 1.82,-0.34 2.81,2.5 1.04,-0.09 2.89,2.08 2.2,1.82 1.62,2.25 -1.24,1.57 0.78,1.9 -1.21,2.12 -3.17,1.88 -2.07,-0.68 -1.52,0.37 -2.59,-1.46 -1.9,0.11 -1.71,-1.87 0.22,-2.16 0.61,-0.74 -0.03,-3.3 0.75,-3.37 z\",\n                    \"UZ\": \"m 662.01,351.2 0.08,-2.16 -3.73,-1.52 -2.93,-1.75 -1.83,-1.69 -3.21,-2.51 -1.38,-3.79 -0.94,-0.67 -3.03,0.17 -1.07,-0.77 -0.3,-2.99 -3.78,-2 -2.36,2.2 -2.4,1.3 0.46,1.88 -3.16,0.05 -0.11,-14.13 7.22,-2.35 0.52,0.35 4.35,2.84 2.29,1.48 2.68,3.5 3.29,-0.56 4.81,-0.3 3.35,2.8 -0.21,3.8 1.37,0.03 0.57,3.06 3.57,0.12 0.76,1.75 1.05,-0.02 1.23,-2.65 3.69,-2.61 1.61,-0.7 0.83,0.37 -2.35,2.43 2.07,1.4 2,-0.93 3.32,1.96 -3.59,2.64 -2.13,-0.36 -1.16,0.1 -0.4,-1.02 0.58,-1.71 -3.75,0.86 -0.89,2.35 -1.33,2.01 -2.34,-0.17 -0.73,1.59 2.06,0.86 0.6,2.66 -1.57,3.57 -2.12,-0.74 z\",\n                    \"VE\": \"m 275.5,430.6 -0.08,0.67 -1.65,0.33 0.92,1.29 -0.04,1.49 -1.23,1.64 1.06,2.24 1.21,-0.18 0.63,-2.04 -0.87,-1 -0.14,-2.14 3.49,-1.16 -0.39,-1.34 0.98,-0.9 1.01,2 1.97,0.05 1.82,1.58 0.11,0.94 2.51,0.02 3,-0.29 1.61,1.27 2.14,0.35 1.57,-0.88 0.03,-0.72 3.48,-0.17 3.36,-0.04 -2.38,0.84 0.95,1.34 2.25,0.21 2.12,1.39 0.45,2.26 1.46,-0.07 1.1,0.67 -2.22,1.65 -0.25,1.03 0.96,1.04 -0.69,0.52 -1.73,0.45 0.06,1.3 -0.76,0.77 1.89,2.12 0.38,0.79 -1.03,1.07 -3.14,1.04 -2.01,0.44 -0.81,0.66 -2.23,-0.7 -2.08,-0.36 -0.52,0.26 1.25,0.72 -0.11,1.87 0.39,1.76 2.37,0.24 0.16,0.58 -2.01,0.8 -0.32,1.18 -1.16,0.45 -2.08,0.65 -0.54,0.86 -2.18,0.18 -1.55,-1.48 -0.85,-2.77 -0.75,-0.98 -1.02,-0.61 1.42,-1.39 -0.09,-0.63 -0.8,-0.83 -0.56,-1.85 0.22,-2.01 0.62,-0.94 0.51,-1.5 -0.99,-0.49 -1.6,0.32 -2.02,-0.15 -1.13,0.3 -1.98,-2.41 -1.63,-0.36 -3.6,0.27 -0.67,-0.98 -0.69,-0.23 -0.1,-0.59 0.33,-1.04 -0.22,-1.13 -0.62,-0.62 -0.36,-1.3 -1.44,-0.18 0.77,-1.66 0.35,-2.01 0.81,-1.06 1.09,-0.81 0.71,-1.42 z\",\n                    \"VN\": \"m 778.46,402.12 -3.74,2.56 -2.34,2.81 -0.62,2.05 2.15,3.09 2.62,3.82 2.54,1.79 1.71,2.33 1.28,5.32 -0.38,5.02 -2.33,1.87 -3.22,1.83 -2.28,2.36 -3.5,2.62 -1.02,-1.81 0.79,-1.91 -2.08,-1.61 2.43,-1.14 2.94,-0.2 -1.23,-1.73 4.71,-2.19 0.35,-3.42 -0.65,-1.92 0.51,-2.88 -0.71,-2.04 -2.12,-2.02 -1.77,-2.57 -2.33,-3.46 -3.36,-1.76 0.81,-1.07 1.79,-0.77 -1.09,-2.59 -3.45,-0.03 -1.26,-2.72 -1.64,-2.37 1.51,-0.74 2.23,0.02 2.73,-0.35 2.39,-1.62 1.35,1.14 2.57,0.55 -0.45,1.74 1.34,1.22 z\",\n                    \"VU\": \"m 946.12,510.15 -0.92,0.38 -0.94,-1.27 0.1,-0.78 1.76,1.67 z m -2.07,-4.44 0.46,2.33 -0.75,-0.36 -0.58,0.16 -0.4,-0.8 -0.06,-2.21 1.33,0.88 z\",\n                    \"YE\": \"m 624.41,416.58 -2.03,0.79 -0.54,1.28 -0.07,0.99 -2.79,1.22 -4.48,1.35 -2.51,2.03 -1.23,0.15 -0.84,-0.17 -1.64,1.2 -1.79,0.55 -2.35,0.15 -0.71,0.16 -0.61,0.75 -0.74,0.21 -0.43,0.73 -1.39,-0.06 -0.9,0.38 -1.94,-0.14 -0.73,-1.67 0.08,-1.57 -0.45,-0.85 -0.55,-2.12 -0.81,-1.19 0.56,-0.14 -0.29,-1.32 0.34,-0.56 -0.12,-1.26 1.23,-0.93 -0.29,-1.23 0.75,-1.43 1.15,0.76 0.76,-0.27 3.23,-0.07 0.52,0.3 2.71,0.29 1.07,-0.15 0.7,0.97 1.31,-0.48 2.01,-3.07 2.62,-1.32 8.08,-1.13 2.2,4.84 z\",\n                    \"ZA\": \"m 563.88,548.96 -0.55,0.46 -1.19,1.63 -0.78,1.66 -1.59,2.33 -3.17,3.38 -1.98,1.98 -2.12,1.51 -2.93,1.3 -1.43,0.17 -0.36,0.93 -1.7,-0.5 -1.39,0.64 -3.04,-0.65 -1.7,0.41 -1.16,-0.18 -2.89,1.33 -2.39,0.54 -1.73,1.28 -1.28,0.08 -1.19,-1.21 -0.95,-0.06 -1.21,-1.51 -0.13,0.47 -0.37,-0.91 0.02,-1.96 -0.91,-2.23 0.9,-0.6 -0.07,-2.53 -1.84,-3.05 -1.41,-2.74 0,-0.01 -2.01,-4.15 1.34,-1.57 1.11,0.87 0.47,1.36 1.26,0.23 1.76,0.6 1.51,-0.23 2.5,-1.63 0,-11.52 0.76,0.46 1.66,2.93 -0.26,1.89 0.63,1.1 2.01,-0.32 1.4,-1.39 1.33,-0.93 0.69,-1.48 1.37,-0.72 1.18,0.38 1.34,0.87 2.28,0.15 1.79,-0.72 0.28,-0.96 0.49,-1.47 1.53,-0.25 0.84,-1.15 0.93,-2.03 2.52,-2.26 3.97,-2.22 1.14,0.03 1.36,0.51 0.94,-0.36 1.49,0.3 1.34,4.26 0.73,2.17 -0.5,3.43 0.24,1.11 -1.42,-0.57 -0.81,0.22 -0.26,0.9 -0.77,1.17 0.03,1.08 1.67,1.7 1.64,-0.34 0.57,-1.39 2.13,0.03 -0.7,2.28 -0.33,2.62 -0.73,1.43 -1.9,1.62 z m -7.13,-0.96 -1.22,-0.98 -1.31,0.65 -1.52,1.25 -1.5,2.03 2.1,2.48 1,-0.32 0.52,-1.03 1.56,-0.5 0.48,-1.05 0.86,-1.56 -0.97,-0.97 z\",\n                    \"ZM\": \"m 567.36,489.46 1.32,1.26 0.71,2.4 -0.48,0.77 -0.56,2.3 0.54,2.36 -0.88,0.99 -0.85,2.66 1.47,0.74 -8.51,2.38 0.27,2.05 -2.13,0.4 -1.59,1.15 -0.34,1.01 -1.01,0.22 -2.44,2.4 -1.55,1.89 -0.95,0.07 -0.91,-0.34 -3.13,-0.32 -0.5,-0.22 -0.03,-0.24 -1.1,-0.66 -1.82,-0.17 -2.3,0.67 -1.83,-1.82 -1.89,-2.38 0.13,-9.16 5.84,0.04 -0.24,-0.99 0.42,-1.07 -0.49,-1.33 0.32,-1.38 -0.3,-0.88 0.97,0.07 0.16,0.88 1.31,-0.07 1.78,0.26 0.94,1.29 2.24,0.4 1.72,-0.9 0.63,1.49 2.15,0.4 1.03,1.22 1.15,1.57 2.15,0.03 -0.24,-3.08 -0.77,0.51 -1.96,-1.1 -0.76,-0.51 0.35,-2.85 0.5,-3.35 -0.63,-1.25 0.8,-1.8 0.75,-0.33 3.77,-0.48 1.1,0.29 1.17,0.71 1.12,0.48 1.78,0.47 z\",\n                    \"ZW\": \"m 562.96,527.25 -1.49,-0.3 -0.95,0.36 -1.35,-0.51 -1.14,-0.03 -1.79,-1.36 -2.17,-0.46 -0.82,-1.9 -0.01,-1.05 -1.2,-0.32 -3.17,-3.25 -0.89,-1.71 -0.56,-0.52 -1.08,-2.35 3.13,0.32 0.91,0.34 0.95,-0.07 1.55,-1.89 2.44,-2.4 1.01,-0.22 0.34,-1.01 1.59,-1.15 2.13,-0.4 0.18,1.08 2.34,-0.06 1.3,0.61 0.6,0.72 1.34,0.21 1.45,0.94 0.01,3.69 -0.55,2.04 -0.12,2.2 0.45,0.88 -0.31,1.74 -0.43,0.27 -0.74,2.15 z\"\n                }\n            }\n        }\n    });\n\n    return Mapael;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mapael/maps/world_countries_miller.js",
    "content": "/*!\n *\n * Jquery Mapael - Dynamic maps jQuery plugin (based on raphael.js)\n * Requires Mapael\n *\n * Map of World by country\n * Miller projection\n *\n * @source http://code.highcharts.com/mapdata/\n *\n * @deprecated : this map will be definitely moved to 'mapael-maps' repository starting from the next major release (3.0.0).\n * You can use instead https://github.com/neveldo/mapael-maps/blob/master/world/world_countries_miller.js\n */\n(function (factory) {\n    if (typeof exports === 'object') {\n        // CommonJS\n        module.exports = factory(require('jquery'), require('jquery-mapael'));\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery', 'mapael'], factory);\n    } else {\n        // Browser globals\n        factory(jQuery, jQuery.mapael);\n    }\n}(function ($, Mapael) {\n\n    \"use strict\";\n\n    $.extend(true, Mapael, {\n        maps: {\n            world_countries_miller: {\n                /*\n                 * map-specific constants\n                 * (set by user)\n                 */\n                // Width of the map, in pixel\n                width : 700.9375,\n                // Height of the map, in pixel\n                height : 337.375,\n                // Longitude of the left side of the map, in degree\n                leftLongitude: -175.0,\n                // Longitude of the right side of the map, in degree\n                rightLongitude: 190.0,\n                // Latitude of the top of the map, in degree\n                topLatitude: 84.0,\n                // Latitude of the bottom of the map, in degree\n                bottomLatitude: -56.0,\n                /*\n                 * Transform a longitude coordinate into projection-specific x' coordinate\n                 * Note: this is not in pixel\n                 *\n                 * @param lon longitude value in degree\n                 * @return x' projection-specific value\n                 */\n                _projectLongitude: function (lon) {\n                    // Compute longitude in radian\n                    return lon * Math.PI / 180;\n                },\n                /*\n                 * Transform a latitude coordinate into projection-specific y' coordinate\n                 * Note: this is not in pixel\n                 *\n                 * @param lat latitude value in degree\n                 * @return y' projection-specific value\n                 */\n                _projectLatitude: function (lat) {\n                    // Compute latitude in radian\n                    var latRad = lat * Math.PI / 180;\n                    return 1.25 * Math.log( Math.tan( Math.PI / 4 + 0.4 * latRad ) );\n                },\n                /*\n                 * Get x,y point from lat,lon coordinate\n                 *\n                 * Principle:\n                 *      (lat, lon) are inputs\n                 *      Projection(lat, lon) = (x', y')\n                 *      Transformation(x', y') = (x, y)\n                 *\n                 * Source: http://jkwiens.com/2009/01/23/miller-projection/\n                 *\n                 * @param lat latitude value in degree\n                 * @param lon longitude value in degree\n                 * @return {x, y} coordinate in pixel\n                 */\n                getCoords: function (lat, lon) {\n                    var self = this;\n\n                    // Project map boundaries with projection (only once for performance)\n                    if (self._xLeftPrime === undefined) self._xLeftPrime = self._projectLongitude(self.leftLongitude);\n                    if (self._xRightPrime === undefined) self._xRightPrime = self._projectLongitude(self.rightLongitude);\n                    if (self._yTopPrime === undefined) self._yTopPrime = self._projectLatitude(self.topLatitude);\n                    if (self._yBottomPrime === undefined) self._yBottomPrime = self._projectLatitude(self.bottomLatitude);\n\n                    // Compute x' and y' (projection-specific value)\n                    var xPrime = self._projectLongitude(lon);\n                    var yPrime = self._projectLatitude(lat);\n\n                    // Compute x and y\n                    var x = (xPrime - self._xLeftPrime) * (self.width / (self._xRightPrime - self._xLeftPrime));\n                    var y = (self._yTopPrime - yPrime) * (self.height / (self._yTopPrime - self._yBottomPrime));\n\n                    return {x: x, y: y};\n                },\n                elems: {\n                    \"FO\" : \"m 322.53,80.19 0.9,0.8 0,0.3 -1,-0.7 z\",\n                    \"UM\" : \"m 26.03,206.59 0,0 -0.1,0 0.1,0 z\",\n                    \"US\" : \"m 100.93,117.39 0.2,0.1 -0.6,-0.2 0,-0.3 z m 0.2,-0.6 0.2,0.1 -0.3,0.2 -0.3,-0.1 z m -19,-15.8 0.2,0 0,0.4 -0.3,-0.4 z m -0.1,-0.7 0.3,0.3 -0.2,0.2 -0.2,-0.1 z m -0.5,0 0.8,1.3 -0.9,-0.7 -0.1,-0.7 z m 3.3,0.1 -0.1,0.3 -0.4,0 0.1,-0.7 z m -3.7,-0.5 0.1,0.3 -0.4,0 0,-0.3 z m 2.8,-0.3 0.3,0.4 -0.2,0.4 -0.2,-0.6 z m -3.5,-0.1 0.4,-0.1 0,0.3 -0.4,0.3 z m 0.7,0.1 -0.1,0 -0.2,-0.3 0.3,0 z m -1.1,-1.3 0.3,-0.4 0.8,-0.2 -0.2,0.3 z m 2.6,-0.8 0.8,0.3 -0.4,0.5 -0.7,-0.4 z m -0.3,-0.6 0,0.4 -0.8,-0.2 0.3,-0.3 z m 1,0.2 0.1,0.6 -0.5,-0.4 0,-0.6 z m -1.4,-1.2 0.6,0.6 -0.4,0.2 -0.3,0 z m -1.7,-0.8 1.5,0.5 -0.3,1.2 -1,0 z m -3.5,-0.4 -0.1,0.6 -0.4,0.1 0.2,-0.5 z m -1.5,-2.1 -0.2,0.4 -0.2,-0.2 0.2,-0.5 z m 91.6,25.5 -0.2,0.4 -1,0.5 -0.1,-0.2 z m 3,6.8 -0.2,0.6 -0.4,0.7 -0.2,-0.4 z m 2.8,-1 0,0.4 -0.3,0 0.2,-0.4 z m 3.7,-0.7 0.1,0.3 -0.6,0 0.3,-0.2 z m -96.8,-24.9 -0.6,-2.5 0.8,-0.1 0.6,0.7 z m -61.3,4.8 -0.9,1.5 -2.4,0.4 -2.2,1.3 1.2,-1.5 2.3,0 0,-1 z m 59.3,-7.9 -0.4,-1.4 1,0.8 0.4,3 z m -0.7,-2.2 -0.3,1.3 -1.4,-1.2 1.1,-1.3 z m 1.1,-1.2 1.4,0.4 0.5,2.3 -1,-0.2 z m -66.2,-14.8 1.6,0.2 -2,1.1 -1.9,-1.3 -2.2,-0.4 3,-0.6 z m 89,39.1 -0.1,0.1 0,-0.1 z m 45.7,49.9 -0.1,-0.8 -0.5,-0.2 -1.5,-2.5 -1.5,-2.5 -0.2,-0.1 -0.1,-0.1 -2.1,-0.7 -1.6,1.9 -2.6,-1.4 -0.7,-1.8 -3.2,-2.6 -3.2,0 0,0.9 -5.5,0 -7.2,-2.4 0.2,-0.5 -4.6,0.4 -0.3,-1.2 -2.4,-2 -2.5,-0.1 -1.5,-1.1 -3.4,-5.7 -0.2,-1.3 -2.3,-2.5 -0.3,-2 -1,-1.4 0.6,-2.3 -0.9,-3.2 0.8,-2.4 0.5,-4 -1.3,-6.7 3.6,0.6 -0.1,-0.2 0.7,0.6 -0.7,-0.7 0,0 0.3,-0.4 -0.3,0.3 0,-1.8 52.8,0 4.8,1.2 2.3,1.2 3.6,0.1 -2.8,1.2 -2,1.7 2.5,-0.2 0.6,0.7 3.5,-1.6 0.1,0.1 -0.1,-0.1 1.1,-0.6 0.6,0.1 -1.1,0.9 1.8,1.4 4.6,-0.7 0.9,0.8 0.7,-0.2 0,0.5 -1.2,1.1 -4.3,-0.1 -2,3.2 1.4,-0.6 -1.1,3.6 0.1,2.3 1,1.5 1.3,-0.6 0.8,-2.5 -0.6,-1.5 0.5,-2.5 3.2,-2.7 2.1,1.1 0.3,2.4 -1,0.8 2.3,0.2 0.5,2.1 -0.2,0.9 -0.3,0.2 -0.3,-0.3 -0.5,0.8 -0.7,1.4 1.8,0.7 1.6,-0.3 4.8,-2.4 0.5,-0.8 -0.3,-0.4 0,-0.4 4.5,-0.1 1.8,-2.7 1,-0.9 1,-0.3 0,0 6.2,-0.1 2.3,-2 0.5,-2 1.5,-1.8 2.7,0.9 0,3.2 0.4,0.3 0.4,0 -0.1,0.8 0.6,0.2 0.3,0.9 -2.4,1 0.1,0.1 -0.4,0.4 0,-0.3 0,0 -0.7,0.3 0.3,-0.1 0,0.4 -0.3,0 -0.1,-0.3 -0.4,0.2 -2.9,1.8 -0.1,3.7 -4.4,1.1 -2.2,1.4 -0.1,1.9 -2.9,4 -1.5,-2.8 0.3,3 -0.4,2.2 0.9,-0.1 0.5,2.8 -1.5,2.2 -1.2,-0.1 -1.6,1.8 -2.3,1.4 -3.8,3.1 -0.6,2.1 1.8,4.7 0.9,3.4 -0.6,3.4 -1.4,0 -2,-2.7 -1.3,-2.9 0.4,-2.1 -2.7,-2.5 -1.8,1 -2.1,-1.4 -5.3,-0.3 -1.5,0.6 0.9,2.4 -1.6,-0.9 -1.3,0.8 -1.9,-1.4 -1.3,0.4 -3.4,-0.3 -4.6,2.8 -2,3.1 0.8,1.7 -2.1,-0.2 z m -65.4,-67.3 -0.3,0.2 -0.2,-0.4 0.5,0 0,0 0.3,-1.3 2.3,3 -0.1,1.4 -1.6,-1.8 -1,-0.7 z m -43.4,79.5 -0.5,-0.5 0,0 0.5,0.2 0,0.3 0,0 z m 0,0 2.3,2 -2.1,0.9 -0.2,-2.9 0,0 z m 47.3,-77.4 -0.1,0.3 -0.3,-0.2 0.4,-0.1 0,0 z m -5.8,-8.9 0.1,0.1 -0.6,-0.1 0,-0.2 -0.3,-0.2 -3.7,0.5 -3.1,-2.4 -3,-1.3 -5.6,-1.7 -2.8,-0.1 -3.5,-0.9 0,-1.1 -3.5,0 0.4,2.5 -3.2,0 -0.7,0.9 -4.1,1.5 1.3,-1.3 -1.3,-0.4 0.9,-2.8 1.8,-0.9 -0.2,-0.9 -3.4,2.4 -0.7,1.7 -2.7,1.5 1.5,1.3 -1.9,2.4 -3.6,1.6 -2.1,2.7 -0.9,-0.5 -2.1,2.2 -1.9,0.1 -3.2,1.2 -1.6,1.4 -4.7,1.2 0.5,-1.3 2.4,-0.6 3.7,-2.2 2.2,0.3 -0.3,-1.2 2.8,-1.5 2.2,-2 1.3,-3.7 -3.7,1.3 -2.5,-1.8 -2.7,1.4 0.1,-2.6 -1.2,-1.8 -2.5,0.9 -2.6,-1.5 -1.1,1 -2.1,0.4 -1.5,-1 3.4,-0.3 2.1,-1.6 -3,-1.9 0.7,-1.5 3.1,-3.7 1.5,0.7 1.8,-1.2 3.1,-1 -1.2,-2.1 0.5,-1.6 -3.8,1.7 -5.8,-0.6 -3.6,-3.5 5.3,-2.3 3,-0.5 0.1,1.6 3.5,0.3 0.3,-3.3 -3.9,-0.3 -0.8,-1.6 -4.8,-2.4 0.8,-1.8 3.6,-0.2 2.4,-1.5 -0.1,-0.9 2.4,-2.4 2,0 2.3,-1.6 3.1,-0.1 2.3,-1.7 3.3,0.7 1.9,1.2 3.4,-0.3 0.7,1.4 5.3,-0.3 4,1.3 4.8,0.7 2.5,-0.5 4.4,1.6 0,29.2 3.5,0.6 3,2.4 0.4,1 2,-2 1.7,-0.6 1,1.5 3,2.5 3,5 3.4,1.8 0.1,1.7 0,0 -1.8,1.3 0.1,-2.4 -0.3,-0.1 -0.3,-0.6 -0.4,0.4 -0.6,-0.2 -0.5,-1.3 -2.1,-2 -2.2,-3.1 z m -38.1,3.7 -1.1,-1.2 3,-2 1.7,-1.6 0.4,2.8 -2.9,1.7 -3.7,3.4 z m -3.9,82.1 -3,-1 2.1,0.2 0.9,0.8 z m 47.8,-76.9 0.1,-0.2 0,0.2 -0.1,0 0,0 z\",\n                    \"JP\" : \"m 606.33,125.09 0,-0.1 0.6,0.4 -0.3,0.1 z m -15.5,25.1 -1.3,0.7 -2.1,-0.3 2.8,-3.2 3.7,-0.5 2.2,0.3 3,-4.4 -0.5,1.4 2.4,-0.6 0.4,-1.6 1.8,-0.6 1.1,-2.6 -0.4,-1.2 1.1,-3.2 0.7,1 1.3,-0.7 1.2,3.9 -1.8,2.3 -0.1,2.2 -0.9,2.4 0.5,1.2 -1.7,1.8 -0.3,-1.4 -3,1.8 -3.2,0.3 0.7,0.7 -1.8,1.4 -1.7,-0.6 0.6,-1.7 -3.2,0.3 -1.5,0.9 1.1,0.3 1.3,-1.2 0.9,0.5 -0.9,2.3 -0.9,-0.6 -2.2,1.7 -0.5,-1.6 z m -6.8,2 -0.4,-2 1.3,1.7 1.2,-1.1 2.4,0.6 0.6,1.3 -1.4,3.4 -2.1,0.2 -0.1,-3.3 z m 21.7,-19.1 -1,1 -0.6,-2.9 1.1,-1.6 1.9,0 0.9,-5.1 3.6,3.2 2.4,0.9 0.9,1.4 -2.6,0.5 -1.8,2.4 -2.7,-1.5 -2.9,0.7 z\",\n                    \"SC\" : \"m 442.43,226.39 0.2,0.3 -0.1,0.2 -0.5,-0.7 z\",\n                    \"IN\" : \"m 504.93,175.49 0.1,0 0,0.5 -0.2,-0.1 z m 0.1,-12.1 1.3,-0.3 0.2,1.4 1.7,1.2 4.4,-0.4 -0.9,-1.7 1.9,-0.4 3.9,-2.9 1.2,0.6 1.6,-0.7 2.3,2.4 -1.2,1.8 -3.2,1.8 0,1.5 -1.8,3.8 -1.5,-0.3 -0.2,3.3 -1.2,0.8 -0.8,-3.5 -1.1,1.5 -0.8,-1.3 2.5,-2.7 -0.8,-0.5 -3.2,0.1 -1,-1.7 -2.7,-1 -0.7,1.2 1.6,1.5 -1.7,1 1.4,0.7 -0.4,1.4 1,3 -1.6,1.1 -0.1,-1 -1.9,1 -1.6,3.2 -1.7,0.1 -2.6,3.2 -3.5,2.5 0.1,0.8 -3.9,1.8 -0.5,1.3 0.6,3.2 -0.9,2.6 0,3.3 -4.5,4.3 -1.9,-1.6 -1.3,-4.2 -2,-3.4 -0.9,-3.3 -1.7,-3 -1.5,-7.4 0.4,-1.3 -1,-3.6 -0.5,2.2 -2.1,1 -1.3,-0.4 -2.1,-2.1 1.8,-1.2 -2.9,-1.2 -0.9,-1.4 1.3,-0.8 2.1,0.2 2.1,-1.1 -3,-4.3 1.9,-2.5 2.7,0.2 2,-2.3 0.9,-1.8 2.2,-2.5 -0.1,-1.3 1.5,-0.9 -2.4,-2.2 -0.5,-2.5 1.1,-0.9 2.8,0.6 2.4,-1.3 1.4,-0.9 0.9,1.8 1.3,0.7 -0.3,1.7 1.4,1.7 -2.2,0.5 0.7,2.5 4.4,2.4 -1.3,0.9 -0.6,1.9 5.2,2.8 3.5,0.3 2.4,1.6 2.9,0.4 1.6,-0.7 z\",\n                    \"FR\" : \"m 228.83,121.39 -0.4,0.1 -0.1,-0.8 0.2,0.5 z m 125.6,9.9 -0.5,2.9 -0.8,-0.5 -0.1,-2.3 z m 301.9,127.2 -0.6,2.6 -3,-1.6 -1.7,-1.7 -0.4,-1.4 4.2,3.2 z m -187.7,60.9 2.7,0.3 -0.8,1.5 -2.5,0 z m -253.1,-136.4 0.1,-0.1 0,0.2 z m 135.1,-54.4 0,0.1 -0.1,0 0,0 -0.1,0.1 -2.4,1.4 -4.2,-1 -1.7,1.4 0.3,1.2 -1.3,0.2 -1,-0.3 -0.1,0 0,0 -0.5,-0.1 0.1,-0.3 -0.6,0.1 -2.8,-0.2 -3.4,-1.7 0.6,-0.4 0.9,-5.8 -1.8,-2.4 -1.6,-1.1 -3.6,-1.4 -0.1,-1.2 3.2,-0.8 0.7,0.9 2.5,-0.3 -1,-2.7 3.3,1.1 0.7,-1 2.7,-1.3 0,-1.7 1.8,-0.5 3.1,2.8 3.2,1.1 0.3,0.2 0.7,0 3.6,1.2 -1.2,3.4 -2.8,2.4 0.2,0.7 0.1,-0.2 0.2,0 0.8,-0.1 -0.1,0.7 0.5,0.5 -0.8,1.9 z m -118,79 0.4,-0.8 1.9,0.6 2.4,2.7 -2.5,3.5 -3.1,-0.3 1.2,-2.1 -0.9,-2.8 z\",\n                    \"FM\" : \"m 639.23,204.49 0.2,0.1 0,0.2 -0.2,0 z\",\n                    \"CN\" : \"m 544.43,180.89 1.7,-1.7 2.1,-0.3 0.6,0.9 -1.1,2 -1.4,1 -1.9,-0.7 z m -37.9,-16.4 -0.2,-1.4 -1.3,0.3 -3,-0.5 -1.1,0.4 -1.7,-0.9 -1.9,-1.9 -1.1,0.1 -2.8,-2.4 -2,0.3 -4.4,-2.4 -0.7,-2.5 2.2,-0.5 -1.4,-1.7 0.3,-1.7 -1.3,-0.7 -0.9,-1.8 -0.8,0.1 -1.1,-0.4 -1.6,-1.8 -2.7,-1.2 -0.3,-0.2 1,-0.3 -0.3,-2.8 -1.8,-0.1 -0.3,-2 0.6,-1.3 3,-1.3 0.3,0.7 2.1,-1.4 2.5,-0.3 0.5,-0.7 3.5,-1.9 1.2,-2.2 -1.4,-4.4 4.2,-1.2 1.4,-4 3.3,0.9 1.5,-0.5 0.5,-3.3 3,-1.7 0.3,-0.1 0.6,-0.1 0.3,1.4 2.1,1.5 2.4,0.8 1.4,2.6 -0.3,3.3 5,0.6 3.6,1.5 1.9,3.7 10.1,0.5 0.7,0.7 3.3,1 2.8,0 3,-1.2 5.2,-0.4 4.7,-2.9 -1,-1.7 1.1,-1.5 3.1,0.8 1.8,-1.5 2.1,-0.2 1.8,-2 3.2,-1 2.7,0.3 0.4,-0.8 -2.6,-2.6 -1.5,0 -0.1,0.1 -0.3,0.4 -3.2,0.2 -0.7,-1.1 2.3,-4.1 2,0.7 2.8,-1.2 -0.1,-0.9 1.8,-3.3 1.3,-1.1 -1.4,-1.7 1.5,-1.3 4.7,-0.8 4.7,1.5 4.5,8.8 2.5,0.3 2.8,2.7 0.4,1.6 2.7,-0.1 3.7,-1.7 0.7,1.7 -1.2,1.1 -0.5,2.4 -2,2.8 -0.5,-0.6 -1.1,0.2 -2,0.9 0.6,1.9 -0.5,2.8 -0.9,0.7 -1.3,-1 -0.3,1.2 -3.2,1.1 0.2,1.4 -2.9,-0.7 -1.2,1.8 -3.1,1.8 -3.6,1.5 -2.6,1.5 0.3,-1.4 1.9,-2.5 -2.1,-1 -1.4,1.7 -1.8,0.6 -1,1.6 -2.4,0.2 0.7,2.1 1.4,0 1.2,2.3 2.4,-1.6 1.7,0.9 2.1,0.1 -3.7,2 -3,3.1 2,1.6 1.2,3.5 1.8,1.5 0.3,2.2 -1.9,0.8 2.7,1.5 -1.5,1.1 0.1,2 -1.3,0.7 -2.9,4.1 0.6,1.2 -1.8,0.6 -4.5,4.4 -3.3,0.2 -1.1,1.2 -1.1,-1.6 -0.1,1.8 -5.5,1.5 -1.5,2.2 -0.3,-2.4 -2.5,-0.8 -0.9,0.8 -2.7,-1.8 0.4,-0.8 -2.8,-1.2 -2.6,1.7 -2.8,-0.5 -0.7,0.7 -1.2,0.3 0.4,2.3 -1,-0.9 -1.9,0.3 -0.5,-1.3 -1.5,-0.2 0.7,-1.8 -1.2,-0.2 -0.6,-1.8 -1.8,0.4 0.1,-2.4 1.9,-1.7 0,-3.5 -2.2,-1.9 -0.4,0.6 -2.3,-2.4 -1.6,0.7 -1.2,-0.6 -3.9,2.9 -1.9,0.4 -2.7,-1.3 z\",\n                    \"PT\" : \"m 322.13,143.49 -3.1,0.4 0.5,-2.6 -1.4,-1.1 1.5,-4.7 -0.1,-2.7 4.2,0.1 0.7,0.8 -1.4,1.3 -0.1,4.5 z\",\n                    \"SW\" : \"m 185.73,187.29 0,0 0,0 z\",\n                    \"SH\" : \"m 561.73,188.69 0,0 0,0 0,0 z\",\n                    \"BR\" : \"m 241.13,217.99 2.5,0.3 -0.8,2.2 -3.4,0.6 -0.4,-2.2 z m -7.3,66.1 0.8,-1.6 -0.1,-0.3 -4.7,-3.8 -0.8,0.5 -1.5,-2.1 -1.5,0.2 3.5,-4.1 3.7,-2.2 -0.1,-3.1 -1.4,-0.1 0.1,-0.1 -0.1,-0.2 0.7,-1.5 0,-1.3 -2.2,-0.2 -0.4,-2.6 -1.5,-1.1 -3,-0.1 0.3,-2.2 -0.7,-1.6 1.2,-3.9 -1.6,-1.8 -0.2,-1.8 -3.2,-0.1 -0.6,-4.8 -2.6,-0.5 -2.4,-1.7 -2.5,-0.4 -1.9,-2.5 -0.1,-2.9 -2.3,0.5 -3.2,2 -2.4,0 -2.1,0.1 0.3,-3 -1.3,0.9 -1.9,0.2 -3.5,-4.8 1.7,-2.2 0.4,-2.4 4.1,-1.8 1.5,0.1 1,-5.3 -1.2,-2.4 0.4,-3.6 3.3,0 1.5,-0.7 0.9,1.6 2.6,1.1 2.7,-1.7 1.5,-1.6 -1.3,-0.1 -1.2,-2.9 5.9,-0.5 1.6,-1.8 1.4,0.2 0.9,2.2 -0.9,2.3 0.5,1.6 1.8,1.3 3.2,-1.6 1.2,0.2 1,-1.1 2.6,0.3 3.1,0.3 2.5,-3.5 1.2,0.3 0.7,3.2 1.5,1 0.2,3.1 -3,0.9 1.4,2.6 2.7,0.3 2.9,-2.7 5.2,1.5 0.7,2.6 1.8,-0.8 4,1.2 3.1,-0.1 2.9,1.6 2.5,2.3 3.1,0.4 1.5,3.9 -1,3.9 -3.1,3 -2.2,3.6 -1.7,1.2 0.2,5.1 -0.6,3.5 -0.9,1.1 -0.1,2.3 -2.7,4.2 0.2,0.9 -2,2 -4.4,0 -5,2.7 -1.7,1.3 -1.5,2.3 0.4,2.7 -0.7,2.3 -2,2 -1,2.1 -1.7,-0.6 -0.4,1.9 -1.5,1.4 -0.8,2.9 -1.4,1.3 -0.3,-0.2 z\",\n                    \"KI\" : \"m 34.93,213.89 0.2,0.4 0.2,0.2 -0.4,-0.1 z\",\n                    \"PH\" : \"m 574.43,195.49 1.3,-0.2 -1.5,-1.5 1.7,-0.1 1.1,2.8 -1.3,-0.2 -0.5,1.8 z m -8.8,0.5 0.2,-1.8 0.9,0.5 -1.1,1.3 z m -0.4,0.4 0,0 0.4,-0.4 0,0 0,0 -0.4,0.4 z m 4.6,1.5 0.1,-3.5 2.2,1.5 -0.4,1.1 2.1,-0.8 -0.1,1.8 -1.9,2.5 -1.2,-1.5 0.4,-1.7 z m 4.4,5.8 -1.6,-0.8 -1.8,0.2 -1,2.5 0.2,-2.6 2.5,-1.9 1,1.1 1.7,-1.7 1.4,0.1 0,-2 1.6,2.3 0.5,3 -0.7,1 -0.9,-1.1 -0.8,1.3 0.1,2 -2.2,-1.1 z m 0.3,-12.1 -0.7,3.8 -1.2,-1 -0.5,-2.4 -1.2,-1 0.1,1.6 -1.7,-1.6 -1,1.1 1,0.9 -0.9,1.4 -1.6,-2.5 1.2,-0.1 -1.8,-2.4 -0.5,-3 1.1,0.4 -0.1,-2.8 1.6,-2.9 -0.2,0.8 2.3,0.8 0.5,2.2 -0.7,1.7 -1.2,0.6 0.3,3.4 1.5,-0.3 z m -9.3,4.8 0.3,1.3 -4.6,3.9 4.3,-5.2 z\",\n                    \"MX\" : \"m 170.23,178.09 -0.5,0.6 0,-0.3 0.1,-0.3 z m -38.2,-2.3 0.3,0.1 0.6,0.8 -0.5,-0.4 z m -10.1,-5.6 0.3,0 0.2,0.3 0,0.1 z m -0.4,-1 -0.1,0.4 -0.1,0 0.1,-0.4 z m -5.8,-6.3 -0.1,0.1 -0.2,-0.2 0.3,-0.5 z m -5.8,-1.7 -0.1,0 -0.1,-0.5 0.2,0.2 z m 10.9,0.4 0.2,-1 0.5,0.4 -0.3,0.5 z m -1.8,-1.7 0.6,0.5 0.1,0.6 -0.9,-0.8 z m 23.5,-0.1 -0.1,0.2 0.4,0 1.5,2.5 1.5,2.5 0.4,0.5 0.2,0.5 1.8,1 2.1,0.2 -1,3 -0.4,4 1.4,3.7 2.5,3.8 2.6,1.2 5,-1 1.8,-1 1.1,-3.7 4.2,-1.2 2.7,0.7 -1.3,2.1 -0.8,3.9 -0.9,-0.5 -1.1,1.2 -0.5,0.1 -3.5,0 -0.9,1.1 2,1.8 -2.6,0.6 -0.9,2.9 -3.2,-3 -1.8,-0.7 -3.3,1.5 -4.2,-1.7 -4.4,-1.4 -1.4,-1.2 -3.3,-0.9 -2.8,-2 -1.4,-2.1 1,-2.1 -1.2,-2.3 -4.8,-5.3 -2.2,-1.1 0,-1.9 -2.1,-1.3 -3,-3.4 -1.9,-3.8 0.1,-0.7 -2.9,-1.3 -0.2,3.3 2,1.9 6,9 -0.2,1.3 1.6,0.2 0.6,1.9 -0.8,0.7 -0.8,-1.4 -3.5,-2.6 -0.2,-2.4 -2.6,-1.4 -2.8,-2.3 1.7,-0.2 0.2,-1.1 -3.1,-2.7 -0.7,-2.2 -2.1,-3.6 4.6,-0.4 -0.2,0.5 7.2,2.4 5.5,0 0,-0.9 3.2,0 3.2,2.6 0.7,1.8 2.6,1.4 1.6,-1.9 z m 7,8.5 -0.4,1 0.2,0.8 0.5,-1.8 z\",\n                    \"ES\" : \"m 306.83,163.39 -2,-0.6 -1.3,0.1 1.9,-1 z m 23.8,-15.8 0.1,0.1 -0.1,0 0,-0.1 z m -4.7,-1.3 0.2,0.1 0,0.1 -0.1,-0.1 z m 0.1,-0.5 -1.5,-0.3 -0.7,-1.5 -1.7,-0.5 0.8,-4 0.1,-4.5 1.4,-1.3 -0.7,-0.8 -4.2,-0.1 -0.9,-2.7 2.5,-1.4 1.3,0.4 7,0.1 3.4,0.3 3.4,1.7 2.8,0.2 0.2,0.4 0.3,-0.2 0.5,0.1 0,0 0,-0.1 0.1,0.1 0,0 1,0.3 1.3,-0.2 0.1,1 -2.3,1.6 -2,0.5 -2.5,3.5 1,1.6 -1.4,1 -0.4,1.6 -1.8,0.6 -0.8,1.2 -4.5,0.2 -1.7,1.2 z\",\n                    \"BU\" : \"m 183.13,187.49 0,0 0,0 0,0 z\",\n                    \"MV\" : \"m 476.83,206.89 0.5,0.7 -0.6,0 0.2,-0.4 z\",\n                    \"SP\" : \"m 558.13,197.09 0,0 -0.1,0 0.1,0 z\",\n                    \"GB\" : \"m 330.13,90.09 0.1,0.2 -0.2,0.1 -0.3,-0.3 z m 0.2,-0.8 0,0.5 0.3,0.1 -0.8,-0.1 z m 0.5,-0.2 -0.4,-0.2 0.8,0.3 -0.2,0.2 z m 3.5,-3.1 -0.5,1.4 -0.1,-1 -0.6,-0.3 z m 0.2,-0.9 0.3,0.1 -0.8,0.2 0.2,-0.5 z m 0.3,-0.4 -0.1,0.3 -0.3,0 0.1,-0.4 z m -154.3,95.9 0.1,-0.1 0.4,0.1 -0.3,0.1 z m 18.7,-4.9 -0.4,0 -0.1,-0.2 0.3,0.1 z m -1,-0.2 -0.1,0.2 -0.3,0 0.3,-0.1 z m 124.5,-81.9 0,-1.5 1.6,-0.9 -0.2,1.3 z m -100.7,234.1 1.4,-2.7 2,0.4 0.3,0.8 z m 179.2,-179.3 -0.1,0 -0.1,0 -0.1,-0.1 0,0 0.1,0.1 -0.2,0 0,-0.1 0,0 0,-0.1 0.1,0 0.3,0 0,0 -0.2,0 z m -0.3,-0.1 0,0 0,0 z m -74.8,-2.5 -0.1,0.1 0,-0.1 z m 73.4,3.3 -0.2,0 -0.3,0 0.1,-0.1 z m -77.1,-48.5 1.8,-0.6 1.5,1.7 -1.4,1.4 -2,0 -1.7,-0.9 z m 2.3,-6.2 2,-3.6 3.8,0 -2,2 1.1,0.6 3,0.1 0.3,0.6 -2.7,3.8 3,1.3 0.8,2.5 2.1,1.4 0.8,2.7 -0.6,0.5 3.2,0.3 -0.2,1.8 -1.7,1.5 1.3,0.9 -2.1,1 -7.1,0.3 -3.8,1 2.4,-2.5 2.1,0 -2.5,-1.5 -1.8,-0.2 2.1,-1 0.1,-2.5 1.9,-0.4 0.6,-2.1 -1.5,-0.9 0.5,-0.9 -2,-0.1 0.1,1.3 -1.4,-1.1 0.9,-1.8 -2,-2.4 -1.7,-0.7 1.5,-0.4 -1.9,-1.8 z\",\n                    \"GR\" : \"m 386.63,147.99 -3,0.5 -2.3,-0.8 1.3,-0.6 z m 2.5,-2.3 1.2,-0.6 -0.3,0.8 -0.5,0.5 z m -0.8,-0.9 -0.4,-0.2 0.4,-0.4 -0.1,0.3 z m -0.5,-1 0.2,0.1 -0.2,0.2 0.1,-0.2 z m -3.3,0.2 0.7,-0.5 0.1,0.4 -0.4,0.8 z m 2.2,-1.4 -0.5,0.2 -0.2,-0.1 0.2,-0.1 z m 1.2,-0.3 0.2,0.1 -0.5,0.1 -0.4,-0.2 z m -1.7,-1.8 0.2,0.6 -0.4,-0.1 -0.2,-0.5 z m -1.2,-3.3 -0.4,0.1 0.4,-1.1 0.4,0 z m -8.5,-1.5 0.2,-0.1 -0.2,0.1 -0.1,-0.1 0,-0.1 0.1,-0.1 0.2,0 1.5,-0.6 2,-0.5 3,-0.6 1.4,0.8 2.1,-1.1 0.6,0.7 -1.2,1.5 -1.9,-0.6 -2.5,0.8 1.3,1.1 -3.4,-0.7 -0.1,1 5.4,5.8 -2.8,-1.9 0.3,1.3 -1.7,-0.6 -0.9,0.9 0.9,2.5 -2.5,-0.6 -1,-3.3 -2.6,-3.3 0.7,-0.3 z m 10.4,3.3 0.3,0.4 -0.3,0.2 -1.2,-0.5 1.1,-0.3 0,0 z\",\n                    \"AS\" : \"m 9.63,245.09 -0.1,0 -0.1,0.2 -0.2,-0.1 z\",\n                    \"DK\" : \"m 357.83,100.89 1,0.8 -0.6,0 -0.8,-0.3 z m -1.7,0.1 0.3,0.1 -0.2,0.1 -0.4,-0.4 z m 4.2,-0.3 -0.7,0.4 0,-0.3 0.3,-0.1 z m -5.3,-0.2 0.5,0.4 -0.1,0.2 -0.4,-0.1 z m 2,0.4 -0.2,0.5 -0.2,-0.2 0.7,-0.9 z m 3.4,-2 -1.2,2.7 -1.7,-2.6 2.2,-1.3 z m -6.1,2.4 -1.1,-0.3 -0.3,0 -1.1,-4.4 3.2,-1.5 1.6,-1.8 -0.7,2.3 1.4,1.3 -0.9,0.9 0.6,2.3 -2.4,-0.5 z\",\n                    \"GL\" : \"m 234.93,60.89 0.2,0.2 -0.5,0.1 -0.2,-0.2 z m 1.5,-0.8 -1.8,0.4 0.2,-0.2 0.7,-0.2 z m -4.8,-5.7 -0.5,0 -0.2,-0.4 0.5,0.1 z m 2.2,-2.3 -0.9,-0.3 0.7,-0.7 0.5,0.7 z m -2.9,-4.6 -0.9,0.6 -0.2,-0.3 1.1,-0.5 z m -1.2,-1.6 -0.4,0.4 -0.7,-0.2 0.5,-0.2 z m 1.3,-0.1 -1.1,0.9 -0.1,-0.8 0.7,-0.2 z m -1.8,-2.8 0.9,0.5 -0.3,0 -1,-0.5 z m -0.7,-1.2 0.6,0.1 -1.2,0.1 0,-0.4 z m -0.4,-2.3 -1.1,0 -0.9,0 1.6,-0.3 z m -25.1,-8 -0.8,0 0.1,-0.2 0.8,-0.1 z m -5,-3.6 1.6,0.3 -0.6,0.2 -1.6,-0.3 z m 2.5,-0.2 1.3,0.4 -1.6,0 -0.4,-0.3 z m 102.6,-10.6 -2.2,1.3 -1.8,-0.7 3.2,-1.1 z m -94.9,-3 0.6,0.2 -0.4,0.1 -0.2,-0.1 z m 30,-6 -1.7,-0.1 -2.1,-0.5 0.8,-1 z m -4.8,50.1 0.6,-0.6 -3,-0.9 0.3,-1.7 3,0 2.4,1.4 -0.3,1.1 z m 1.4,12.1 -0.3,0 0,-0.2 0,-0.1 -0.2,-0.1 -0.7,-2.6 2.6,-1.4 -3.2,-0.5 1.5,-3.6 3.8,-1.2 0.7,-3.9 -1.2,-0.9 -4.6,-1.4 -1.4,-1.2 4.1,0.1 3.4,1.3 -1.5,-2.1 -2,-1.1 -0.3,0.2 -0.9,-0.1 0.3,-0.6 0.2,0 -0.3,-0.2 2.3,-0.6 -1.9,-0.2 -0.8,0.5 -0.5,-0.5 0.8,0 0.2,0 -2.2,-0.2 0.3,1 -2.6,0.2 -1.2,-1.1 0.6,-0.6 -0.3,-0.2 0.4,-0.1 0.1,0.1 1.2,-1.2 0.5,-2.1 -1,-0.4 0.1,-0.1 -0.8,-0.3 -0.1,0 -0.2,-0.1 0.8,-1.2 -1.5,-0.9 0.7,-0.9 -1.4,-0.7 0.5,-1.1 -1.8,-2.2 -2.1,-0.5 -0.9,-1.2 0.4,-1.4 -4.7,-1.7 -5,-0.8 -1,0.9 -4.2,-0.5 -0.5,1.3 -3.7,-0.5 -2.4,-1.3 3.2,-1.2 -4.6,-0.4 -1.8,-0.8 0.8,-0.8 4.9,-0.8 3,0.1 1,-1 -5.7,0.6 -0.5,-0.9 -3.5,-0.4 -3,-1.6 0.6,-1.5 6.2,-1.2 2.5,-1.2 4,-0.1 2.1,-1.7 -0.4,-2.3 -3.8,-0.1 -0.8,-1.3 4.5,-1.9 0.6,-1 3.5,-1 2.7,0.7 1.5,-2 -1.3,-1.1 5.5,-1.7 7.9,-1.2 1.7,1.2 -0.4,2.6 1.6,-2.3 3,0.7 3.7,-0.2 -2.2,-1 -1,-1.7 4,0.3 5.8,1.9 1.6,1.2 1.8,-0.3 -1.4,-0.9 0.4,-0.3 -4.1,-1.2 -2.8,-2 1.3,0.7 2.6,-0.2 3.6,1.3 -0.6,1.4 2,-1.4 -3.9,-1.8 9.1,0.1 -8.9,-0.5 -2.3,-0.5 1.5,-0.6 1.8,0.5 0.9,-0.9 4.8,-0.3 4.4,0.2 1.9,0.1 0.3,-1.2 3.7,-0.5 8.2,-0.5 3.5,0.2 9.6,1.4 -0.8,0.5 -9,0.3 -8,1.1 5.9,-0.4 3.4,-0.6 5.2,0.3 4.1,-0.5 1.4,1.3 3.5,0.4 2.5,0.9 -2.1,1.3 -14.2,1 -5.6,1.3 2.1,0.1 7.5,-1.1 6,0.4 -0.1,0.9 -3.1,0.8 -0.1,0.9 5,-1.5 1.1,-1.3 3.4,-0.3 0.3,2.6 -3.6,2.7 2.2,-0.4 6.4,-3.7 3,1.2 2.4,-1.2 3.6,0.1 3.6,0.8 1.3,0.8 -3.8,2 -2.3,0.1 0.5,1 -2.1,0.6 -3.2,-0.1 2.4,1.2 -1.2,0.8 -4.5,0.5 -3,0.9 2.2,0.8 -0.7,1.4 1.2,1 -1.8,0.6 0.9,1.3 -2,-0.6 -1.6,2.5 -0.2,1.6 4.2,-0.2 -0.3,0.8 2.9,0.4 -2.9,0.4 -2.8,-0.5 0.7,1.1 4.1,0.7 -0.8,2.8 0.4,2.3 -1.1,-2.1 0.7,-1.2 -3.4,-0.7 -2.3,1.2 0,1.6 3.4,-0.1 1.1,3.4 3.9,1.4 -2.1,0.2 -1.8,2.7 -3.6,0.7 1.3,2.4 -1.9,-0.1 -1.4,0.8 -3.3,-1.2 -4.1,1.3 1.1,0.3 -0.2,-0.1 2.3,-0.9 2.4,1.3 2.5,0.6 0.1,0.8 -2,-0.3 1.8,1 -1.3,0.1 0.9,1.2 -4.2,-1.7 -0.2,-0.8 1.5,0 -1.6,-0.3 -1.2,-0.5 -1,0.5 2.2,1.8 3.9,1.8 -1.1,0.7 2.4,1.6 0.7,2.5 -3.6,0.4 -1.8,-2.3 -3,-1.7 0.5,1.4 -4.5,1 -0.6,1.8 1.8,-0.2 -1.5,0 0.8,-1.1 4.5,-1.1 0,1.4 -1.7,0.7 -1.2,0 -2,1.3 1.1,0.3 3.8,-1.4 3.4,1 2.2,0 -1.6,1.6 -1.7,0.4 -4.1,2.8 -3.4,0.5 -2.6,1.2 -5,0.5 -2.6,1.6 0.2,0.8 -2.7,3 -3.3,1.7 -2.8,0.8 -0.3,-2.1 -1,1.8 -3.1,0.7 1.3,0.4 -1.5,1 -1.1,2 0.6,2 -3.1,3.4 -0.9,5 -1.6,1.2 0.4,1.5 -2.1,0.2 -2,-0.9 -0.2,-1.3 -4.7,-0.6 -2.1,-1.6 -0.5,-2.2 -1.9,-1 0.3,-1.4 -2.4,-1.6 0.2,-2.8 -1.5,0.8 0.1,-2.6 z\",\n                    \"GU\" : \"m 613.53,191.99 -0.2,0.4 -0.1,-0.3 0.5,-0.5 z\",\n                    \"MP\" : \"m 615.13,188.99 0.1,-0.4 0.3,-0.1 -0.2,0.3 z\",\n                    \"PR\" : \"m 211.33,182.59 -1.8,0.7 -1.7,0 0,-1.2 z\",\n                    \"VI\" : \"m 212.33,183.59 0.4,0 -0.7,0.2 0.1,-0.2 z\",\n                    \"CA\" : \"m 175.63,27.69 -3.1,-0.2 0.9,-2.2 -2.3,-0.5 -2.3,0.3 0,-1.4 1.7,-1.5 2.6,-0.5 3.9,0.5 2.7,-0.3 -4.8,-0.3 -1.4,-2.9 -2.7,-0.6 0,-2.5 5.1,0.3 3.1,1.7 0.9,1.2 0.4,-1.6 -3.3,-1.5 9.9,-1.3 -3.7,-0.1 6.4,-1.3 -5.8,0.4 -6.3,1.3 -1.8,-1 -1,1.1 -4.5,-0.4 1.2,-1.8 -2.2,1.7 -4.1,-1.2 5.2,-0.5 0.3,-0.6 -6.3,0.5 -1,-0.7 3.7,-1.9 -4,1 1.8,-1.2 -4.6,0 1.8,-1 5.7,-1.2 6.3,0.6 -3.8,-0.7 2.7,-0.7 -0.8,-0.9 5.3,0.8 5.7,1.6 -5.2,-2 1.2,-1.4 2.9,0.6 -1.9,-1.1 3.2,0.1 -0.5,-0.8 5.8,0.3 1.9,-0.9 3.7,0.3 0.7,0.6 1.7,-1 6.3,-0.2 0.1,0.6 6.2,0.5 -4.3,1.2 2.3,-0.1 5.2,-1.2 3.4,1.9 2.6,0.1 0.5,1.4 -5.9,2.2 -1.9,-0.2 -2.4,1.2 -6.6,1.6 10.6,-1.8 -7.2,3.6 -4.5,2.7 -1.6,1.8 -3.6,-0.2 0.4,1.1 -5.3,0.8 -2.8,-0.5 0.1,0.8 5.5,0.2 0,0.8 -3.2,-0.4 -3.4,0.3 4.1,0.3 2.2,0.9 -0.3,0.8 -3.3,0.2 2.7,0.7 -0.9,1.1 -3.9,1.2 -1.3,1.8 -4.8,0.2 3.4,1 -0.7,0.7 2.8,-0.2 0.3,1.2 -2.9,1.4 0.8,1.8 -1.7,-0.1 0.8,-1.6 -3.3,0.7 0.5,-1.2 -6,-0.2 -0.9,0.6 -5.8,-0.5 -5.1,-0.2 -0.9,-0.9 4.3,-1.7 1.2,-0.9 -1,-1.8 1.9,-0.4 2.4,0.8 0.3,1.1 z m 0,0 0,0 0,0 0,0 0,0 0,0 1,-0.1 1.2,-2.1 -2.2,2.2 0,0 0,0 0,0 z m 9.3,102.5 0,0.2 0.3,0.2 -4.7,0.7 -2.4,1.4 -0.9,-0.7 1.2,0 -0.4,-0.5 0.3,-0.2 0.2,-0.9 1.3,-0.8 0.8,-4.4 2.3,1.8 0.7,-0.7 -1.9,-2.7 -6.5,-1 0,-0.5 -0.7,0.2 -0.7,-3.5 -1.9,-0.2 -1.1,-1.9 -3.1,-0.6 -2.9,2.5 -3.6,-0.1 -2.3,-1.2 -4.8,-1.2 -52.8,0 -0.4,-0.2 -0.2,0.2 -0.1,0 -0.4,-0.9 -2.7,-1.5 0.2,-0.7 -0.4,-0.1 0,0.1 0.3,0.2 -0.3,0.1 -0.2,-0.4 -0.5,-0.1 0,-0.1 -0.2,-0.2 -0.1,0.2 -0.6,-0.1 -0.1,0 -0.6,-0.1 0.5,0.1 0,0 -0.3,0 0.3,0.1 0.1,0 0.4,0.1 0.4,0.4 -0.1,0.1 0.3,0.3 0,0 1.2,1.6 2,1.6 -0.1,-0.5 0.5,0.3 0.5,0 -0.8,0.2 0.3,0.3 -0.5,0.7 -2.1,-0.6 -3.7,-2.1 -0.1,-0.5 0.1,-0.1 -0.3,-0.5 0,0 -0.1,-0.2 -1.9,-0.4 -1.2,-1.7 1,-0.3 2.6,0.8 0.1,-0.1 -0.2,-0.1 0.6,0 0.2,-0.2 -0.2,-0.2 -0.6,0.4 -2.3,-1.3 -0.3,-2.3 -0.3,0.8 -0.3,-0.3 0.2,-0.4 0.4,-0.1 0,0 0,-0.1 0.1,-0.2 -0.2,0.1 0,-0.1 0.2,0 -0.1,-0.3 -0.1,0.1 -0.2,-1.3 -1,-0.9 -0.5,1.2 -0.6,-0.9 0.1,-0.3 -0.3,0 0,-0.3 0.3,-0.2 0,0.4 0.1,-0.4 0.7,0.3 -0.2,-0.2 0.4,-2 -0.8,1 0.4,-0.1 -0.1,0.3 -0.4,0.2 -0.1,-0.2 -0.3,0.5 -2.2,-2.4 0.9,-1.9 0,-0.7 -0.1,-1.7 -3.4,-1.8 -3,-5 -3,-2.5 -1,-1.5 -1.7,0.6 -2,2 -0.4,-1 -3,-2.4 -3.5,-0.6 0,-29.2 3.6,0.5 3.6,1.9 2.6,0.1 0.1,-1.3 3.9,-0.7 1.1,0.3 5.4,-2.6 1.7,0.5 -4.7,1.7 -1.7,1.6 3.1,-1.8 0.6,1.1 1.1,-1.4 6.2,-2 0.9,1.8 2.3,1.4 1.8,-2.7 0.2,2.6 2.4,-0.5 0.4,-1.2 2.9,0.3 2.2,1.2 4.3,1.3 3.9,0.7 0.1,-0.6 3.4,1.5 0.2,1 -1.7,-0.1 -1.1,1.1 3.2,0.8 4.4,-0.1 2.3,-0.8 2.3,0.7 0.6,1.3 1.6,0.3 0.8,2.4 0.7,-1.9 -1.5,-1.9 4.5,-3.1 -3.8,1.6 -2.3,-0.4 1.1,-1.1 4.7,-0.9 0.9,1.8 1.6,1 2.2,0.1 3.5,1.1 1.6,-0.6 4.5,0.2 1.5,0.7 -2.2,-2.6 2.8,-0.3 0.8,1.4 1.8,-0.9 -1.1,2.7 2.2,1.9 -0.3,-3.8 1.2,0.1 2.4,-2.7 -2,0.3 0.6,-2.3 -3.6,-1.4 -0.7,-1.7 0.2,-3.3 2.4,-2.3 1.1,-0.2 -1,0.1 0,-1.8 -1.1,-1.2 0,-3.1 0.9,-1.4 3,-0.6 2.7,0.7 4,0.3 -3.2,3.9 -1,0.5 -3.4,-0.2 1.3,1.1 -1.2,1.6 -0.8,0.1 2.5,1.9 0.3,2.1 2.9,2.5 -2.5,1.5 2,0.7 2.6,2.1 0.3,2.1 1.2,-2.7 1.4,-0.6 1.9,1.7 -0.9,1.5 1.7,3.8 3.1,-3.1 0.5,-2.2 1.8,-1 -1.5,-0.8 0,-1.7 2.2,-0.3 0.9,0.2 0,-0.1 0.6,0.1 -0.1,0.1 1.9,0.4 2.4,1.5 -0.9,1 1.1,0.9 -2.7,0.6 2.7,3.3 -0.5,1.5 -3.5,2.1 -2,-2 1.3,2.5 -3,-0.3 -0.4,-0.9 -2.5,0.4 1.8,0.9 -2.9,2.6 -1.1,0 -3.3,-1.9 1.2,1.9 3.8,0.3 -1.8,3.2 -2,0.8 -1.8,-0.7 -0.4,1.6 -1.5,0.2 0,0.1 0.6,0.2 -0.1,0.1 -0.1,-0.2 -0.4,-0.1 0.6,1.5 -3.9,1.7 -3.2,4.8 -0.9,2.6 0.8,3.5 2.4,-0.1 1.4,3.6 -0.5,1.4 3.2,-0.9 4.1,1.1 2.5,2.2 5.7,2.2 4.4,0.5 0.3,3.3 -0.3,2.2 4.9,4.7 2.4,-3.1 -0.9,-1.8 -0.3,-2.9 -1.2,-1.3 3.8,-1.7 2.1,-2 0.3,-2.1 -1.1,-3.2 -2.8,-1.8 2.4,-3.4 -1.7,-3 1.2,-1.8 -1.2,-2.4 1.3,-0.9 5.2,1.3 2.1,-1 3.8,2.4 -0.2,0.9 4.6,1.7 -0.8,0.7 0.7,4.7 1.3,-0.1 2.1,2.3 3.6,-2.1 0.5,-2.5 1.3,-1.8 0.9,0.4 0.4,1.4 0.2,-0.4 0.2,0.3 -0.3,0.2 -0.1,-0.1 0.2,1 1.3,0.3 0.9,1.9 3,4.2 -1.1,1.3 4.1,4 4.8,1.7 -1.4,0.7 1.7,1.3 2.5,0.7 0.4,3.2 -2.6,2 -3.1,0.6 -2.4,2.2 -3.6,0.6 -1.2,-0.5 -7.8,0 -1.8,2.4 -3.2,1.4 -1.7,2.4 -2.7,2.5 -3.2,1.3 -3.3,2.9 -1,0.3 -1,0.9 -6.1,1.4 -1.6,1.3 1.4,0.1 0,0.2 z m -90.5,-17.9 0,0 0,0 z m 5.8,2.8 -0.1,-0.3 -0.2,0.1 0,0.1 z m -7.8,-7.2 0.3,-0.4 -1,0.4 -0.3,0.8 z m 57.5,-44.6 -0.4,0.1 0.1,0.3 0.3,-0.2 z m -54.8,52.4 0.3,0.1 0,-0.2 -0.1,-0.1 z m -0.2,-0.3 -0.1,-0.2 -0.2,0 0,0.2 z m 117.6,-39.5 0,2.5 -1.1,0.4 -2.5,-0.6 -1.9,-1.4 -0.2,1.1 3.2,2.7 -0.6,1 -4.4,-1.2 -2,-1.2 -4,-1.6 0.3,-1.2 -2.1,-0.8 -1.6,-2.4 -2.3,0.8 -2.2,-0.8 -1.7,1.3 -2.2,-0.5 -0.5,-1.8 1.3,-1.6 3.2,0.8 3,-1 1.4,0.2 -1.9,-2.2 2.9,-1.9 1.5,-1.7 -1.6,-3.2 -1.6,-0.3 -3.1,-2.3 -2.2,1.2 0,-1.2 1.9,-0.7 -4,-2 0,-1.2 -2.4,-0.5 0.3,1.5 -5.7,-0.9 -0.7,1.2 -7.9,-1.1 -4.6,-1.2 -1.7,-2.2 4.2,0.5 -1.4,-0.9 -3.3,-0.4 -0.5,-2.1 1,-3.2 1.2,-1.8 2.2,-1.6 2.1,-0.5 3,0.2 -3,3.6 0.5,3 3,2.6 -1.2,-3.6 1.9,0.6 -2.3,-1.9 1,-2.2 4.5,-1.9 2.5,0.1 2.4,3.6 -1.1,2.8 2,-1.9 1.7,1.7 0.9,-2 1.6,-0.6 4.6,0.9 -0.2,1.3 2,0.2 0,1.2 2.3,1.7 1.1,-1.4 2.6,1.4 -1.8,0.6 -0.1,0.4 0.6,-0.3 0.6,0.4 1.3,-0.6 -0.8,1.9 2.5,-1.1 3,1.1 2.4,2.9 -1.4,0.2 0.2,0.1 -0.4,0.3 0.4,0.1 0.4,-0.3 0.4,0.2 -0.5,0.2 0.7,0.1 0.8,1.1 -1.8,0.4 -0.7,0.8 -0.2,0 -0.4,-0.1 0.5,0.2 -0.4,0.5 2.8,0.6 0.6,0.8 0.2,-0.2 0.4,0 0,0.3 -0.6,-0.1 0.6,0.8 2.5,-0.4 2,2.5 0.2,0 0.4,-0.1 0.5,0.1 -0.1,0 0.8,0.1 -0.7,1.2 2.6,-0.4 1,2.1 -2.1,0.5 -0.1,1.7 -2,0.7 0.2,1.7 -1.9,-0.6 -4.4,-4.5 -2,0.2 1.5,1.5 -1.6,1.4 4.5,2.5 -0.2,0.8 2,1.6 0,0.2 0,0 0.1,0.4 0.3,0.3 z m -14.4,-23.2 -0.1,0.3 0.6,-0.2 -0.3,0.1 z m 8,4.1 -1.4,0.1 0.8,0.2 z m -5.8,64.5 -0.2,0 0.5,-0.4 0,0.2 z m -100.9,-5.5 0.3,0.4 0.4,0.2 -0.3,-0.1 z m 114.1,-2 4.3,1.4 -0.7,0.7 -2.6,-0.8 z m -116.5,-0.2 -0.2,-0.3 0.2,-0.1 0.2,0.3 z m -5.6,-3.7 -0.4,0 -0.1,-0.4 0.3,-0.2 z m 93.5,-1.6 -0.5,0.3 -0.6,0.2 0,-0.3 z m -99.5,0 -0.1,0.1 -0.1,0.2 0,-0.4 z m 5.4,0.2 -0.2,-0.2 0.2,-0.2 0.1,0 z m -0.1,-0.5 -0.1,0.2 -0.4,0 0.2,-0.2 z m -0.8,-0.7 0.1,0.4 -0.1,0.2 -0.2,-0.5 z m 0.3,-0.3 0.1,0.3 -0.1,0.2 -0.4,-0.4 z m -6,-0.3 0.4,0 0,0.2 -0.3,0.1 z m 6.3,0.9 -0.2,-0.6 0.2,-0.5 0.2,0.8 z m -1.8,-1.1 0.7,0.5 0,0.3 -0.3,-0.2 z m 2,0.5 0,-0.2 -0.1,-0.2 0.3,0 z m -2.5,-1.2 0.1,0.3 -0.2,0 -0.2,-0.4 z m 0.3,-0.2 0.2,0.4 -0.2,0 -0.2,-0.5 z m 91.9,-0.2 0.6,0.1 0.8,1.3 -2.6,-0.9 z m 3,0.2 0.1,0.1 -0.3,0.1 0.1,-0.3 z m -94,-0.5 -0.3,0.1 -0.1,-0.1 0.3,-0.5 z m -3.1,-0.3 0.1,-0.5 1.2,0.7 -0.1,0.6 z m 0.9,-0.4 -0.5,0 -0.1,-0.2 0.4,-0.2 z m 0.6,-0.1 0.9,0.8 -0.5,0.3 -1.4,-1.6 z m -1.7,-1.2 0.6,0.1 0.2,0.3 -0.7,0.4 z m -0.8,-1.3 0.7,0 0.1,0.6 -0.6,-0.2 z m 99.2,-0.8 -0.6,0.2 -0.1,-0.1 1.2,-0.2 z m -98,0.4 0,-0.1 0.5,-0.6 -0.1,0.5 z m 98.6,-3.5 0.4,-1 0.2,0 -0.1,0.7 z m -1.2,-1.5 0,0.5 -0.7,0.6 0.6,-0.6 z m -0.5,-0.7 -0.2,0.1 0.2,-0.3 0.2,0.3 z m 23.6,-3.9 -0.3,-0.1 0.1,-0.2 0.1,0 z m -2.9,-2 -0.6,0.1 0,-0.5 0.5,0 z m -21.7,-1.9 0.3,-0.2 0.1,0.2 -0.2,0.1 z m 0.7,-0.6 0.2,0.1 -0.2,0.2 -0.3,0.1 z m 29.3,-2 0.5,0.8 -0.5,-0.2 -0.2,-0.3 z m -6.5,0 0.5,0.3 -0.3,0.5 -0.8,0 z m -19.4,-0.8 -0.2,0.2 -0.7,0.2 0.2,-0.2 z m 25.7,-2.3 -0.1,0.9 -1.2,-0.8 0.8,-0.3 z m -1.9,-0.6 0.2,0.3 -0.5,-0.2 0.3,-0.2 z m -51.8,-0.3 -0.4,0.3 -0.3,-0.2 0.4,0 z m 53.2,0 0.5,0.5 -0.7,0 -0.2,-0.3 z m -27.5,-1.3 0.2,1.2 -0.8,1.2 -0.9,-1.7 z m -24.8,0 0.1,-0.1 0.4,0 -0.2,0.2 z m 53,-0.5 0.6,0 -0.4,0.5 -0.6,-0.1 z m -25.1,0 -0.5,-0.1 0.9,0 -0.3,0.1 z m 24.8,0 -0.5,0 0.2,-0.1 0.2,-0.1 z m -18.4,-0.5 0.8,0.1 0.2,0.2 -0.8,-0.1 z m 7,-0.4 1.2,0.8 -1.1,0.1 -0.9,-1 z m -21.6,-0.4 0.3,0.9 -2.3,1.5 -1.5,-0.9 1.2,-1.3 z m 29.3,0.1 0,0.1 -0.5,-0.5 0.2,0.1 z m -22.3,-1.6 1.4,0.1 0.3,0.8 -0.7,0.3 z m 27.3,-0.4 -0.2,0.4 0,0.5 -0.4,-0.9 z m -24.8,-0.2 1.1,0.6 -0.8,0.2 -0.9,-0.5 z m 24.7,-0.3 -0.2,0 0,-0.2 0.3,0.1 z m -25.5,-0.7 -0.4,0.2 -0.4,-0.1 0,-0.1 z m 24.1,-0.6 -0.1,0 -0.1,-0.4 0.3,0.2 z m -16.4,-0.9 -0.1,0.6 -0.1,-0.1 -0.1,-0.6 z m 15.8,-0.7 0.1,0.3 -0.8,0.4 0.4,-0.6 z m 5.4,-3.2 0.4,0 0.2,0.3 -0.6,-0.1 z m -39.9,-0.3 -0.4,0.1 -0.1,-0.2 0.4,0 z m -3.4,-0.7 0.6,0.6 0.1,1 -0.8,-0.7 z m 1.4,-0.2 1.1,0.5 0.7,1.1 -1.4,-0.5 z m 2.3,-0.6 0.4,0.1 -0.1,0.3 -0.6,-0.3 z m 39.7,-2.8 0.1,0 -0.9,0.5 0.3,-0.5 z m -86.1,0.3 -0.3,0 -0.2,-0.3 0.1,-0.1 z m -1,-1 -0.1,0.3 -0.3,-0.4 0.4,-0.2 z m -1,-0.5 0.2,0 -0.1,0.3 -0.3,-0.3 z m 85.4,0.1 -0.4,0 0.1,-0.4 0.3,0.3 z m -84.5,-0.1 -0.4,0 0.1,-0.4 0.2,0 z m -10.1,-1.2 -0.4,0 0.9,-0.1 0,0.1 z m 9.9,0.1 -0.4,0 0.1,-0.2 0.2,-0.1 z m -2.1,-0.3 0.5,0.1 -0.1,0.2 -0.4,-0.2 z m -0.4,-0.2 0.1,0.2 -0.3,-0.2 0,-0.2 z m -1,-0.4 0.5,-0.2 -0.6,0.4 -0.6,0.2 z m 68.2,0.3 1.6,0.3 0,0.7 -1.9,-0.1 z m -23.2,0.4 -0.4,0.7 -0.7,-0.6 0.4,-1.3 z m -48.4,-0.9 -0.2,0 0.1,-0.3 0.3,0 z m 69,-0.3 0.9,0.2 0.2,2.3 -1.6,1 -2.1,0 -0.7,-1.5 1.2,-1.8 z m -6.5,0.4 -0.3,-0.1 0,-0.4 0.7,0.2 z m -5.9,-0.6 0.2,0.1 -0.2,0.1 -0.3,-0.2 z m 15.2,0.4 -0.5,-0.6 0.3,0 0.3,0.3 z m -70.1,-1.1 0,0.1 0.1,0.2 -0.7,0 z m 11.9,0.6 -1,-0.5 0.8,-0.1 0.4,0.2 z m 49.7,-0.8 -0.1,0.5 -0.6,0 0.5,-0.4 z m 7.8,0.3 -0.5,0 -0.2,-0.3 0.2,-0.1 z m -0.7,0 0.1,0.7 -1.1,-0.6 0.3,-0.7 z m -51.5,-0.8 -0.1,0.7 -1,-0.4 0.6,-0.4 z m 3.1,-0.4 -0.5,0.6 -0.4,-0.1 0,-0.8 z m 0.3,-0.1 -0.4,-0.2 0.2,-0.5 0.2,0.2 z m -69,-0.6 0.1,0.1 -0.4,-0.1 0,-0.2 z m 65.8,0.1 0.1,-0.5 0.2,0.1 -0.1,0.3 z m 21.3,-0.9 0.2,0.4 -0.3,0.1 -0.1,-0.5 z m 23.2,-0.1 0,0.5 -0.8,1.1 -1.1,-0.1 z m -109.4,-0.7 0.3,-0.2 -0.3,0.7 -0.5,-0.2 z m 103.1,0.5 0.4,0.1 0.1,0.2 -0.8,-0.2 z m -16.2,0.2 -0.3,0.5 -0.3,-0.3 0.3,-0.3 z m 25.2,-0.1 0.7,0.1 -0.9,0.9 -0.5,-0.5 z m -46.4,-0.5 0.6,0.3 -0.5,0.3 -0.2,-0.2 z m 8.8,0 1,0 0,0.7 -0.8,-0.4 z m 1.9,-0.2 0.6,0.3 -0.7,0.7 0,-0.8 z m -82.7,0.1 -0.5,0.2 -0.2,-0.2 0.2,-0.2 z m 116.6,-0.3 -1.1,0.7 -0.6,-0.1 1.1,-0.8 z m -3.3,-0.5 0.3,0.7 -2.3,-0.2 1,-0.4 z m -5.4,0.2 -0.1,0.1 -0.5,-0.2 0.3,-0.1 z m -17.8,-0.2 0.1,-0.2 0.5,0.2 -0.1,0.3 z m -10.6,-0.3 -0.2,0 -0.1,-0.1 0.3,0 z m 19.8,-0.7 0.8,0 -0.4,0.5 -1.1,-0.5 z m -47.2,-0.7 -0.9,0.1 -0.3,-0.3 0.8,0.2 z m -9.2,-0.8 0.6,0 -0.9,0.2 -0.3,-0.2 z m -0.8,0 -0.7,0 -0.1,-0.1 0.1,-0.1 z m -21.5,-0.2 -0.3,0 -0.2,0.2 0.3,-0.4 z m 52.5,-0.3 0.4,0 0.5,0.8 -0.8,-0.3 z m 52.7,-2.6 0.7,-0.1 -0.4,0.5 -0.5,-0.2 z m 0.8,-0.4 -0.5,0 0.2,-0.4 0.3,0 z m -61,-6.4 -1.3,1.7 -2.3,-2.1 -0.2,-1.1 2.7,-0.1 z m 0.4,-11.5 0.7,-1.4 2.5,1.4 0.7,1.2 -2.6,0.5 z m 27,-5.3 1.2,1.2 -0.8,0.5 -2.1,-0.8 z m -28.2,0.9 1.1,1.1 -1.5,-0.1 -1.6,-2.3 z m 37.2,91.2 -0.2,0 -0.5,0 0.2,-0.2 z m -4.1,-2.7 0.2,0.2 -0.7,0 0.1,-0.3 z m 10.5,6.8 0.6,0.1 0.2,1.1 -2.7,-0.8 z m -2,0.2 -0.1,0.2 -0.3,-0.1 0.2,-0.2 z m -1.4,-0.8 0.5,0.2 -0.4,0.3 -0.2,-0.3 z m 14.7,5 -0.3,0.1 0.1,-0.2 0.5,0 z m -36.9,-101.2 4.6,0.2 -0.5,1.1 -4.8,-0.1 z m 68.6,96.9 -2.3,1.3 -1,-1.4 1.8,-2.4 0.3,1.8 z m -4.3,-3 0.1,1.9 -1.1,1.2 -1.3,-1.1 2.2,-0.2 z m -134.6,-14.3 -0.4,-0.5 1.4,-0.3 0.2,1.5 z m -1.3,-3.2 2.6,0.1 -0.7,2.3 -1.6,-0.5 z m 102.4,-5 -0.9,0.4 1.4,-2 0.4,0.6 z m -29,-63.2 2.3,1.8 -0.2,2.4 -2.9,-0.2 -2.9,-1.1 0.8,-1.8 z m -28.2,-10.5 -3.3,-0.2 -3.7,0.4 -0.3,-0.5 5.4,-1.5 1.7,0.7 z m 25.9,-0.7 2,0.6 -0.1,1 -3.8,1.4 -1.7,-1.1 -1.2,-1.9 0.5,-1.4 3.8,0.9 z m 55,101.8 -0.6,-0.2 0.1,-0.8 -0.5,-0.1 -0.3,-0.2 0,-3.2 -2.7,-0.9 -1.5,1.8 -0.5,2 -2.3,2 -6.2,0.1 2.3,-1 0.7,-1.5 5,-2.3 2.9,-3 5.4,-2.4 2.4,0 1.4,0.8 -0.2,1.1 -2.1,1.1 -2.1,-0.3 1.7,1.1 2.2,-0.5 -1.2,1.6 2,2.8 3.1,1 1,-0.6 1.8,1.3 -4,1.5 -1.5,0 -3.3,2.9 -1.2,-1.5 0.4,-1.1 2.2,-1.4 0.6,-1.8 -2.6,1.7 z m -12.4,-1 0.3,-0.2 -0.1,0.4 -0.1,0.2 -0.8,0 0.5,-0.3 -0.2,0.1 0.2,-0.3 0.3,-0.1 z m -96.9,-9.5 -0.8,-0.5 0.6,0.1 0.2,0.4 0,0 z m 7.2,-80.5 -0.7,-1.4 -0.9,1.1 -2.1,-0.1 -0.8,-1.2 2.5,-0.8 5.2,-3.7 4.6,-0.8 1.9,1 -1.6,0.5 0.7,2 -2.3,0.7 -0.7,1.7 -2.2,2.3 -1.5,-0.4 3.3,-2 -0.1,-2.6 -1.5,0.2 -1.1,2.5 z m 127.6,85 1.8,-1 0.5,1.4 -0.6,1.8 -2.4,-0.3 0.8,-1.2 -2.2,0.2 -1.5,1.1 0.1,-2 -6.7,0.3 -0.5,-0.8 1.4,-1.6 3.8,-6.9 2.1,0.9 -2.1,2.3 2.4,0.3 -0.4,1.4 3,-0.9 1.2,1.2 -0.8,1.7 1.6,0.3 z m -60.8,-43.2 -3,0.3 1.8,-1.5 -0.4,-1.6 0.9,-3.7 0.9,-0.5 1.3,2.2 0.4,-0.8 4.3,2.3 1.6,1.6 2.5,1.3 -1.5,1.1 -4.9,-2 -0.2,1 -3.1,2 z m -23.8,-20 2.2,1.3 2,2.1 1.2,0.1 -2.5,1.3 -1.8,-0.3 -4.1,-1.6 2.3,-1.1 z m -11.4,-3 4.7,2.2 1.2,1.1 -2.9,-0.1 -0.8,1.5 1.5,-0.3 0.3,1.4 -2.9,0.9 -5.8,-1.3 -0.1,-1.1 -1.6,1.6 -3.1,1 -8.2,0.9 -0.9,-2.5 -4.4,-0.3 -2.8,-2.4 0.9,-0.4 5.4,-0.7 5.1,0.2 -1.3,-0.8 -3.5,-0.8 -3.9,0.6 -3,-0.2 -1.5,-1.5 4.4,-1.2 0.5,-0.6 -4.5,0.6 0.2,-1 -1.9,0.1 0,-1 1.8,-1.1 -0.9,-0.8 2.4,-1.7 5.3,-1.8 1.2,0.9 0.4,2 1.4,-1.5 3.4,1.1 -0.8,1.5 2,-1.1 1.6,0.4 -1.8,-1.9 1.2,0.1 2.8,1.5 1.7,3.4 0.9,-1 -1,-0.8 -0.6,-2.3 0.2,-2.9 1.6,1.3 1.3,-0.1 2.1,1.6 0.2,1.2 1.8,3.2 -0.5,1.8 z m 49.5,-10.5 3.6,2.1 -0.1,1 -7.1,-0.1 -1.5,-1.6 -0.1,-1.7 z m -35.2,6.4 -3.1,0.9 -1.2,1.4 -3.6,-3.3 -2.3,-0.5 -1.8,-1.8 1.6,-1 1.2,1.4 1.7,-0.1 0.4,-1.4 -2.7,-1.4 1,-0.9 5.6,-1.3 0.8,-1.5 -0.5,2.1 1.5,0.3 0.2,1.7 -2.3,1.3 2.1,0.3 0.8,-0.8 1,2.7 z m -48,-9.7 2.7,1 4,0 2.3,0.7 3,2.3 -7.4,3.1 -1.9,1.7 -0.9,2.4 -4.7,1.4 -1.9,-2.1 -3.5,-1 2,-4 2.1,-2.6 -1.9,-2.2 z m 40.7,-1.8 -0.8,-1.6 1.8,-0.9 -5.4,0.6 -1.4,-1 2.2,-0.9 0.7,-1.9 3.9,2.1 -2.6,-2.5 0.4,-0.7 6.3,1 0.5,4 -1.2,1.8 z m -18.6,-3.4 1.4,-0.8 -2.1,-0.8 3.1,-2.3 0.5,3.3 2.8,0.6 0.9,-0.7 2.1,0.7 0,1.3 3.7,1.5 -2,0.5 -2,-1.2 -0.7,1.1 -4.6,0.6 -0.8,-0.6 -5.4,2.2 -3.9,0.2 -1.4,-1 3.1,-1.1 2,0 1.6,-1 -5.8,0.7 -0.2,-1.2 -1.7,1.6 -4.9,-0.9 3.1,-4.5 1.9,-0.7 0,-1 0.9,0.2 0.9,2.1 1.8,-0.3 3,1.7 0.4,1.2 4.5,0.2 0.1,-0.9 z m 58.7,3.9 -1.5,1 -3.1,0.6 -3.3,-0.4 -7.9,0.4 -2.3,-0.8 -2.1,0.5 -4,-0.9 -0.9,-1.7 0.7,-2.5 -1.9,-2 -1.8,0.4 -3.4,-0.5 -1.9,-2.4 2,-0.3 4,0.6 1.2,1.2 3.1,-0.3 4,2 -1.6,0.5 3.8,2.1 4.2,0 4.4,-1.2 5,0.2 2.8,1.2 0,1.2 -1.5,0.5 z m -59.1,-10.4 -3.6,0.8 -2.1,-0.9 -0.7,-1.2 -1.1,0.5 -1.8,-1.1 1.5,-0.5 2.1,0.8 4.8,-0.9 2,0.6 z m 12.5,-7.8 2.5,1.5 1.5,-0.3 4,2.1 -0.6,0.6 1.6,2.3 -4.2,0.2 0.3,-1.5 -3.3,0 0.1,-0.7 -3.3,0.4 -1.1,-0.9 2.8,0 -1,-2.1 -2.8,-0.1 0.3,-1.4 z m 24.9,-5.3 2.7,0.2 0.5,1.5 1.1,-1.1 1.5,0.1 1.4,2.2 -0.4,1.5 3.1,0 1.2,1.2 -3,1 -4.8,3.8 -5.8,-0.2 -4.3,-3.2 2,-0.9 2.6,0.1 -1.4,-1.3 -2.6,0.9 -3.5,-0.7 -1.8,-3.2 3.6,0.4 -3.3,-1 1,-1.3 1.6,-0.2 -0.6,-0.8 1.3,-1.2 3.2,-0.1 -2.4,-0.8 2.2,-0.5 2.8,1 z m -64.2,100.3 0.2,0.1 -0.1,0.1 -0.1,-0.2 0,0 z\",\n                    \"ST\" : \"m 348.93,217.59 -0.3,-0.3 0.4,-0.3 0.2,0.3 z\",\n                    \"CV\" : \"m 290.83,188.39 0.5,0.4 0,0.4 -0.5,-0.2 z\",\n                    \"DM\" : \"m 218.73,187.89 0.3,0.3 -0.2,0.4 -0.2,-0.5 z\",\n                    \"NL\" : \"m 346.93,104.89 -0.7,0.2 0.1,-0.2 0.8,-0.1 z m -131.3,78.2 -0.1,0 0,-0.1 z m 127.1,-72.9 0.8,0 0.9,0 -0.8,0.4 z m 7.4,-4.8 -0.4,2.6 -1.2,1 -0.7,2.7 -1.9,-1.8 -1.5,0.3 -0.8,-0.6 2.4,-3.5 2.6,-1.6 z\",\n                    \"JM\" : \"m 188.03,182.19 2.4,1.1 -2,0.4 -2.2,-1.1 z\",\n                    \"WS\" : \"m 6.43,243.59 0.1,0.6 -0.5,0 -0.5,-0.6 z\",\n                    \"OM\" : \"m 444.03,168.69 -0.1,0.1 0,-0.2 0.3,0 z m -0.4,-1.7 0.6,-0.6 -0.2,1.5 -0.2,-0.1 z m -7.8,14.2 5.7,-2 1.3,-3.9 -0.9,-1.5 1.2,-4.4 1.1,-0.2 1.5,2.1 3.1,0.8 2,2.7 -4.1,5 0.3,1.3 -2.2,0.9 -0.6,1.3 -1.8,0.2 -0.8,1.6 -3.7,0.7 -0.7,-1.3 z\",\n                    \"VC\" : \"m 219.13,192.79 -0.1,-0.3 0.2,-0.3 0,0.3 z\",\n                    \"TR\" : \"m 386.03,136.89 -0.4,0.2 -0.2,-0.1 0.5,-0.3 z m 3.9,-4.1 2.1,1.7 -3,0.6 -0.7,0.8 -2.2,-0.3 1.2,-1.5 -0.6,-0.7 1.4,-0.8 z m 32.2,5.3 -1.6,0.6 0.5,3.1 1,1.8 -3.9,-0.4 -0.7,0.5 -0.3,-0.5 -4.7,1.3 -2.9,-0.3 -3.1,0.1 -1.4,2 0.2,-2.2 -1.3,0.8 -1.5,-0.4 -3.3,1.6 -1.5,-1.2 -2.6,-0.7 -0.5,1.4 -1.4,0.3 -2.6,-2.1 -2.2,-0.6 0.1,-1.4 -1.9,-0.7 1.6,-1.3 -1.2,-0.8 -0.1,-0.2 -0.5,-0.3 1.2,-2.1 4.6,-0.1 0.1,-1.8 3.9,0.3 4,-2.1 5,0.6 3,1.6 3.7,-0.1 1.3,0.4 2.7,-1.3 2.4,-0.2 1.2,1.1 0.5,2.2 2.1,1 z\",\n                    \"BD\" : \"m 512.93,177.09 -1.5,-3.5 -2.5,2 -2.1,-0.6 -1,-3 0.4,-1.4 -1.4,-0.7 1.7,-1 -1.6,-1.5 0.7,-1.2 2.7,1 1,1.7 3.2,-0.1 0.8,0.5 -2.5,2.7 0.8,1.3 1.1,-1.5 0.8,3.5 0.1,1.3 z\",\n                    \"LC\" : \"m 219.63,191.49 -0.3,-0.3 0.3,-0.4 0.1,0.3 z\",\n                    \"NR\" : \"m 655.93,218.79 0,0 -0.1,-0.1 0.1,0 z\",\n                    \"NO\" : \"m 376.13,55.29 -0.4,0.2 -0.4,-0.2 0.4,-0.4 z m -1.5,0.3 -0.5,-0.2 -0.4,-0.6 1.2,0.5 z m 5.1,-1.2 0.6,0.4 -1.1,-0.1 0.1,-0.3 z m 1.6,-0.8 0.3,0.5 -1.1,0.6 -0.5,-0.4 z m 0.6,-0.4 0.6,0.4 -0.8,0.3 -0.2,-0.6 z m -0.8,-0.4 -0.6,0.9 -1.8,0.3 0.7,-0.8 z m 1.3,-0.6 0,0.3 -0.3,-0.1 0.1,-0.3 z m 3,-0.5 0.6,0.5 -0.8,0.3 -0.5,-0.4 z m -8,-28.6 1.5,1.4 -2.3,0.2 -1.7,-1.2 z m 10.1,-0.2 -0.6,-0.3 0.3,-0.4 0.5,0.4 z m 4.4,-1.2 -1.8,0.4 -0.5,-0.1 1.1,-0.5 z m -16.9,-0.9 1.2,0.3 -0.9,0.3 -0.6,-0.2 z m -0.1,-1 -0.9,0.1 -0.1,-0.2 0.1,-0.1 z m 25.8,-3.7 -1.6,0.4 -2.3,0.2 -0.2,-0.2 z m -17.7,-0.8 -0.5,0.1 0.1,-0.3 0,-0.1 z m -0.4,-0.5 0.2,0.1 -0.2,0.1 -0.4,-0.1 z m -8.1,0.1 -0.2,-0.1 0.2,-0.1 0.3,0.1 z m 2.6,-0.9 -0.4,0.1 -0.2,-0.1 0.4,-0.1 z m -1,0.2 0,-0.3 -0.5,-0.3 0.8,0.2 z m -4.7,43 1.2,0 2.3,-1.3 0.6,0.6 0.2,-0.1 0.1,0 0.1,-0.2 0.3,-0.3 -0.2,-0.2 0.4,-0.1 0.1,0 1.1,-1 0.2,0 0,0.1 0.1,0.1 0,-0.1 2.3,0.3 3.2,-2 2.5,-0.3 -1.6,1.3 0.1,1.4 3,-3 -0.4,2 2.1,-2.5 4.6,1.3 2.1,1.5 -1.8,0.8 -2.7,-0.4 4,1.3 -1.7,1.5 -1.9,1.1 0.8,-1.5 -2.8,-2 -3.6,1.3 -0.8,2.7 -1.4,1.1 -1.8,-0.9 -2.9,0.4 -1.4,-1.9 -2,0.8 -1.3,2.3 -3.5,-0.6 -0.5,1.8 -1.1,-0.4 -2.2,2.2 0.5,1.2 -3.6,3 0,2.5 -1.7,2.3 0.6,1.8 -2.4,0.2 -1.4,2 0.7,3 -0.3,1.6 1.3,1.1 -1.2,1.1 0.5,2.5 -1.2,0.7 -0.8,2.5 -1.9,-0.7 -3.7,2.8 -1.8,0.6 -2,-0.2 -2.5,-2.9 0.8,-2.6 -1.9,-2.9 1.3,-1.5 -1,-0.8 1.5,-1.5 2.6,-1.1 -0.1,-0.6 3.6,-1.3 -1.9,-0.2 1.9,-1.2 2.5,1.5 2.6,-1.5 -2.9,0.9 -0.7,-0.8 3.2,-3.2 1.5,-0.8 0.3,-1.2 2.7,-4.7 3.8,-2.7 -1.5,-0.2 3.2,-1.3 -0.7,-0.6 2.2,-1.1 -0.8,-1.1 1,-1.6 1.8,-0.1 1.4,-1 -0.1,-1 0.9,1 z m 22.4,-0.9 -0.3,-0.3 -0.3,0.5 0.7,-0.2 z m -9.5,-24.6 0,-0.2 1,-0.7 -1,0.9 0,0 z m -20.5,28.4 2,-0.6 1.3,-1.5 0.9,2.1 -1.8,1.3 -4.3,0.8 0.2,-0.6 3.4,-0.7 z m 17,-31.5 -1.3,-0.8 -3.2,0.1 1.4,-2 -1.4,-0.7 3.9,-0.7 1.3,1.6 1.5,0.2 z m -14.5,-10.2 1.6,-1.6 4.5,2.7 0.1,1.2 5,1.3 -4.9,1.6 -1.5,4.1 -0.9,0.1 -1.7,3.6 -4.7,-2.5 -0.9,-1.4 5.5,-1.4 -5.9,0.4 -0.2,-1.2 2.8,-0.2 1.4,-1 -1.9,-1.6 -0.1,1.4 -3.3,0.8 -1.9,-1.7 0.3,1.7 -2.1,-1 -1.2,-1.9 1.7,-0.3 -1.2,-2.5 0.6,-0.6 2.1,0.1 3.2,-0.9 0.2,1.4 1.2,-1.1 1.5,0.9 2,2.9 z m 15.5,-2.7 5.8,0.6 0.7,1.4 -2.3,1.5 -3.7,1.4 -2.1,-0.2 -0.1,-0.8 -4,0.2 -2.2,-1.1 4.2,-0.4 0.1,-0.5 -6,0.5 0.1,-1.4 -1.9,-0.4 0.6,-0.7 2.3,0.8 2,-1.4 1,0.9 1.8,-0.3 1,1.2 0.7,-2.2 0.5,1.5 z m 2.5,16 -0.2,0.2 0.1,-0.2 0.1,0 0,0 z\",\n                    \"KN\" : \"m 216.43,184.69 -0.5,-0.3 0.1,-0.1 0.2,0.2 z\",\n                    \"BH\" : \"m 432.93,166.69 0.3,0.1 -0.1,0.8 -0.2,-0.4 z\",\n                    \"TO\" : \"m 1.43,258.89 -0.1,0.1 -0.7,-0.3 0.4,-0.1 z\",\n                    \"FI\" : \"m 375.83,86.59 -0.1,0.3 -0.6,0.1 0.3,-0.2 z m -0.8,0.1 0.1,-0.1 -0.2,0.4 -0.3,-0.2 z m 0.3,-0.5 -0.6,0.5 -0.9,-0.5 0.9,-0.3 z m 2.3,0.1 0,0.2 0.7,-0.1 -0.8,0.3 z m 1.6,0.7 0.1,-0.6 0.7,0.2 -0.6,0.7 z m -2.2,-1.7 0.1,0.3 -0.1,0.3 0,-0.4 z m 0,-8.1 0.2,0.3 -0.3,0.2 -0.2,-0.3 z m 6.9,-5.4 -0.5,0.3 -0.1,-0.2 0.2,-0.1 z m -5.9,13.9 -0.3,-0.1 -0.8,-4.4 0.5,-3.7 1.7,-0.3 4.6,-4.7 0.9,0.1 0.2,-2.2 -2.3,-0.9 -1,-2 0.7,-1.2 -1.1,-2.2 0.4,-1.6 -5.7,-3.5 2,-0.8 1.4,1.9 2.9,-0.4 1.8,0.9 1.4,-1.1 0.8,-2.7 3.6,-1.3 2.8,2 -0.8,1.5 -1,1.7 0.5,1 2.5,1.8 -1.7,2.7 1.5,2.3 -0.6,3.6 1.9,3 -1.1,0.8 3,2.5 -0.6,1.2 -3.9,3.8 -2.7,2 -7.7,1.6 -2.6,-0.9 0.1,-0.1 -0.3,0 0,0 -0.8,-0.2 0.2,0.1 -0.1,0.2 -0.3,-0.3 z\",\n                    \"ID\" : \"m 593.33,228.59 1,0 -1.1,2.3 -0.1,-1.6 -1.9,-1.3 z m -51.2,-5.5 -1.9,0.6 -1.4,-1.8 0.5,-1.1 1.1,2.5 z m 19.2,10.6 2.9,-0.2 0,0.7 -3.9,0.9 -2.2,-0.5 1,-1.2 z m 20.3,-20.3 -0.2,1.9 1.6,2 -1.7,-0.4 -0.5,3.4 -1.2,-2 1.1,-0.1 -0.5,-2.7 z m -7.9,22.2 0.5,0.3 0.3,-0.6 0.3,-0.1 0.6,-0.3 0.1,0.4 0.2,0.6 -1.1,1.2 -1.9,0.5 z m -11.7,-25.7 -0.4,0.3 0,-0.4 z m 44.2,12.8 0,8.2 0,4.2 -1.8,-1.9 -4.6,0.6 0.7,-1.5 1.6,-0.6 -2,-3.9 -3.5,-1.5 -1.5,-0.1 -3,-1.8 -1.4,1.2 -1.3,-2.7 3.4,-0.6 -2.5,-0.1 -3.5,-1.9 -1.1,-2.3 1.9,1.3 2.8,-0.8 2.4,0.6 0.3,2.8 1.6,2.2 2.5,-1.5 -0.2,-1.7 3.2,-0.3 3.9,1.7 z m -39.3,14.7 -2.9,-1.4 1.4,-0.4 1,-2 4,0.6 1.3,-0.8 5.4,-0.4 -3.3,1.1 -0.5,-0.5 -3.9,1.1 -3.5,-0.1 1.7,2.2 z m -23.2,-4.7 -3.5,-0.8 -2,-1.2 1.1,-1.7 4.4,0.7 0.5,0.9 3.6,0.4 0.9,-1 2.2,0.9 6,-0.1 0,3.8 -3.8,-1 -1.1,0.3 -3.7,-0.5 -2.6,-0.9 z m 37.9,-9.1 -2.7,1.5 -1.4,-0.9 -0.1,-1.9 0.3,1.4 1.9,0.5 1.7,-0.9 3,-0.2 2,0.6 0.4,1.4 z m -10.2,5 -1.6,-0.4 1.8,-1.9 -2.7,0.3 0.2,-1.1 -2.3,-1.5 -0.2,4.3 -1.8,-0.3 0.5,-2 -1.6,-3.2 1.1,-1.3 1.3,-5.1 1.7,-1.2 1.3,0.5 4.4,0.5 2.3,-1.8 -1.2,2.5 -8,0.1 -0.6,1.2 1.3,2.2 1.9,-1.7 3.3,0.3 -0.2,2.1 -1.1,-1.2 -2.2,1.5 1.8,2.4 1,2.3 z m -10,-18.7 -0.4,1.6 1.4,1.9 -0.5,0.8 2.2,1.6 -2.4,0.6 -0.6,2.4 -1.6,1.7 0,1.4 -1.2,2.7 -2.6,1.1 -0.7,-1.5 -2.3,-0.4 -2.4,0.7 -0.1,-1.5 -2.8,0.5 -0.6,-3.6 -0.9,0.3 -1.2,-4 1.5,-2.4 1.7,2.3 4.7,-1.3 2.9,0.2 1.8,-3 0.8,-2.6 z m -37,-0.1 2.9,1.9 2.3,2.5 1.3,-0.5 4,3.6 -0.7,1.9 1.9,0.5 0.7,2.6 1.7,0 0.8,1.7 -0.4,4.5 -2.1,0.5 -6,-5.1 -1.5,-2 -1,-2.6 -1.8,-2 -1.8,0.5 1.6,3.3 -0.7,-0.1 -1.1,-3.2 1.5,-1.2 -1.1,-2.5 -2.3,-0.2 1.2,2 -0.5,0.8 -1,-2.9 -1.4,-0.5 1.7,0.3 0.5,-1.3 -4.1,-3.7 -0.3,-1.9 2.2,1.1 2,0 z\",\n                    \"MU\" : \"m 446.83,256.49 -0.1,0.8 -0.6,0 0.3,-0.9 z\",\n                    \"SE\" : \"m 371.43,89.89 0,0 0.1,-0.3 0.2,-0.1 z m 7.4,-19.2 0,-0.4 0.3,0.2 0,0.2 z m 3.7,-1.2 -4.4,0.9 -1.3,2.7 0.8,0.7 -1.5,1.7 -3.4,2.1 -2.3,2.1 -1.4,3.2 0.4,1.9 1.2,0.4 2.2,2.5 -1.2,1.7 -3.3,1.5 -0.6,2 0.6,2.7 0.7,-1.2 1.9,0.2 1.3,-1.8 -0.1,1.9 -3.1,0 -1.2,2.7 -3.4,0.3 -1,2 -2.3,0 -1.2,-4.1 -1.5,-2.9 0.2,0 0.2,-0.3 -0.5,0.1 0,0.2 -0.5,-1.1 0.4,-1.8 0.8,-2.5 1.2,-0.7 -0.5,-2.5 1.2,-1.1 -1.3,-1.1 0.3,-1.6 -0.7,-3 1.4,-2 2.4,-0.2 -0.6,-1.8 1.7,-2.3 0,-2.5 3.6,-3 -0.5,-1.2 2.2,-2.2 1.1,0.4 0.5,-1.8 3.5,0.6 1.3,-2.3 5.7,3.5 -0.4,1.6 1.1,2.2 -0.7,1.2 z m -23.7,22.4 -0.6,0.2 0.1,0.3 0.6,-0.2 z\",\n                    \"TT\" : \"m 219.73,197.09 -0.2,1.3 -0.9,-0.3 -0.4,-0.8 z\",\n                    \"MY\" : \"m 528.33,207.39 0,0.4 -0.2,-0.1 0,-0.3 z m 33.7,2.5 -0.4,-0.1 0.1,0 -0.3,0.1 -3.3,-0.5 -0.8,2.6 -1.8,3 -2.9,-0.2 -4.7,1.3 -1.7,-2.3 2.6,1 0.6,-1.6 0.2,0 0,-0.3 0,-0.2 3,-0.9 1.9,-2.8 1.2,1.1 0.7,-1.6 0.1,-0.1 0,0.2 0.6,1 -0.4,-1.2 1.9,-2.3 2.2,-1 3.8,2.8 -2.1,0.6 0.8,1 -1.4,0.3 z m -34,-4.4 1.8,0.4 0.1,1.2 1.8,-1.2 2.6,2.7 0,3.6 1.6,3 -1.7,-0.4 -4,-2.5 -1.1,-1.9 z\",\n                    \"PA\" : \"m 187.13,203.99 -1.2,-2.6 -2,-0.7 -1.7,1.7 0.9,1.2 -3.4,0.4 0.1,-1.8 -2.2,0.3 -0.3,-0.6 0,-0.1 0,0 0,0 0,0 0.9,-2.3 0.9,1.2 2,0.3 2.7,-1.6 2.3,0.4 2,1.4 0.4,1.4 z\",\n                    \"PW\" : \"m 593.83,203.79 0,-0.2 0.1,-0.3 0.2,0 z\",\n                    \"TV\" : \"m 679.43,233.99 0,0 0,-0.1 0,0.1 z\",\n                    \"MH\" : \"m 663.83,204.19 0.3,0.1 0.1,0 -0.1,0 z\",\n                    \"CL\" : \"m 195.93,330.49 2.3,1.1 -1.4,0.9 -1.8,-1.9 z m -3.3,-14 1,2.1 0.1,3.2 -2.2,-0.8 1.3,-0.9 -1.3,-1 0.1,-1.9 z m 2.9,-12.8 -0.4,2.3 -2,0.7 1.1,-1.6 0.3,-2.5 z m 9.4,24.9 0,5.6 -0.2,0 0.2,0.1 -0.1,0.2 -2.5,-0.3 -1.1,1.1 -1.4,-2.5 1.6,-1.8 0.2,2 2.6,0.3 -2.1,-0.9 -0.6,-2.8 1.9,-1.5 z m -3.4,-75.6 0.8,-0.1 0.9,-1.5 1,2.8 1,1 -0.6,2 1.1,1.7 0.6,3 1.3,0 -0.3,2.4 -2.3,1.6 0.5,4.3 -1,0.5 -1.6,2.6 -1.8,6.6 1.6,3.8 -1.2,3.9 0,1.9 -1.2,1 -0.3,2.6 0.6,2.2 -1,0.5 -1.1,4.1 0.4,3.1 -0.8,2.1 1,2.1 -0.8,2 1.4,1.3 -1.1,4.6 -1.2,1.7 0.5,1 -2.5,3 0.8,3 1.6,-0.3 -0.2,2.3 1,1.1 3.7,0.1 2.9,0.9 -1.3,-0.4 -3,1.4 -0.6,2.7 -4.2,-1.4 0.5,-1.1 -2.2,-0.3 -0.6,-1.5 1.4,0.3 -0.3,-2.5 -2.4,-1.2 1.6,-0.9 -0.3,-4.5 -0.6,-2.2 0.9,-2.3 -2.2,-0.3 1.8,-2.9 0.9,1.4 1.5,-1.7 -0.3,-1.1 -2,-0.1 1.1,-2.4 0.5,2.3 2.1,-6.3 -0.9,-1.3 -1.5,0.6 -0.4,-1.8 1.3,-3.3 -0.8,-3.9 0.9,-1.3 1.1,-3.4 0.8,-1 1.6,-5.9 -0.5,-4.5 0.7,-0.6 -0.5,-2.1 1.2,-2.7 0.9,-4.6 -0.3,-4.6 1,-3.3 z m 6.1,81.7 1.3,0.8 -4,-0.3 3,2 -1.4,0 -2,-1.9 -1.9,0.6 -0.2,-1 4.7,-0.3 0.3,0 z\",\n                    \"TH\" : \"m 532.13,194.49 0.1,0.1 0.2,0.3 -0.3,0 z m -0.4,11.4 -1.8,1.2 -0.1,-1.2 -1.8,-0.4 -1.6,-2.3 -2.1,-1.7 1,-3.5 1.7,-2.8 -0.9,-3.7 -1.7,-2.1 1.1,-2.6 -2.7,-4.6 1.2,-2.6 0.9,0.3 3,-1.3 0.7,1.6 1.5,0 -0.2,4 1.8,-1.5 1,0.8 1.5,-1.2 1.2,0.2 1.6,1.9 -0.2,1.6 1.7,1.6 -0.8,2.7 -3,-0.2 -2.5,1.7 1.1,3.7 -2.1,-2 -1.6,0.2 0,-1.7 -1.8,0.1 0,2.4 -1.4,3 -0.1,2.7 1.2,-0.2 1.1,4.1 2.1,0.6 z\",\n                    \"GD\" : \"m 218.33,194.79 -0.2,0 0,-0.3 0.2,-0.1 z\",\n                    \"EE\" : \"m 379.63,90.99 0.8,0.6 -1.6,0.6 -0.7,-1 z m 1.4,-0.1 -0.3,0.2 -0.3,-0.2 0.2,-0.2 z m -0.3,-1.2 0.3,0 0,0.2 -0.4,0 z m -0.9,0.1 0.6,0.4 -1,0.5 -0.9,-0.7 z m 9.5,0 -1.4,0.6 1.3,2.2 -0.2,0.5 -0.4,0.8 -1.6,0 -2.3,-1.5 -1.9,0.6 -1.5,-2 -0.1,-1.8 4.8,-1.2 3.9,0.4 0.2,0.2 0.1,0.2 -0.1,0 -0.2,0.1 0,0 0.1,0 0,0 0.1,0 -0.1,0 -0.2,0 -0.2,0.4 z\",\n                    \"AG\" : \"m 218.03,184.89 0.2,0.2 -0.3,0 -0.1,-0.2 z\",\n                    \"TW\" : \"m 565.23,172.19 1,0 1.9,-3.1 1.6,-0.1 -1,3.9 -1.1,2.5 z\",\n                    \"BB\" : \"m 222.33,192.79 -0.2,-0.1 0.1,-0.4 0.3,0.3 z\",\n                    \"IT\" : \"m 359.93,141.89 6.3,-0.8 -0.8,1.2 -0.2,2.4 -1.2,-0.3 z m -5.6,-7.3 0.8,1.5 -0.5,3.1 -2.2,0.4 0.1,-3 -0.5,-1.3 z m -3.7,-6 -1.7,-3.1 0.8,-1.9 2,-0.8 1.5,0.4 2.2,-0.7 0.9,-1.2 3.3,-0.5 0.4,0.9 2.5,0.4 -0.6,0.6 0.6,1.7 -0.9,-0.5 -2.1,1.1 0.5,2.6 2.3,1.6 0.9,2.2 2.1,1.5 1.7,0 -0.2,1 4,1.9 0.9,1.2 -2.8,-0.9 -1,1.9 1.2,0.6 -2.1,3.3 0.3,-1.9 -1.1,-2.9 -3.7,-2.6 -1.2,0 -3.6,-3 -2.1,-3.4 -2.5,-1 z m 9.5,4.4 0,0 0,0 0,0 z m 0,-4.6 0.1,-0.2 -0.1,0 -0.1,0.1 z\",\n                    \"MT\" : \"m 363.63,146.09 0.5,0.2 0,0.3 -0.3,-0.1 z\",\n                    \"VU\" : \"m 656.83,245.19 1.4,1.2 0.7,3.8 -1.7,-0.8 -1.6,-2.6 z\",\n                    \"SG\" : \"m 535.13,214.99 0.3,0.2 -0.3,0.2 -0.4,-0.1 z\",\n                    \"CY\" : \"m 400.93,148.29 0,0 0,0 z m 0.5,-0.1 0.2,0.2 -0.4,0 -0.2,-0.2 0.2,0 0.2,0 z m -0.5,0.1 0,0 0.1,0.1 0,0 z m -0.1,0.1 -0.2,0.3 -1.1,0.4 -0.4,-0.1 -0.1,0.1 -0.9,-0.9 0.6,-0.3 0.1,0.1 0,-0.1 0.1,0 0,0 0.1,0 0,0 0,0 0,0 1.3,0.1 0.5,0.3 z\",\n                    \"LK\" : \"m 489.33,199.29 1.6,0.6 2,3.4 -0.1,1.9 -2.2,1.3 -1,-0.4 -0.6,-3.7 0.8,-2.7 z\",\n                    \"KM\" : \"m 419.53,240.59 -0.5,-0.4 0.1,-0.7 0.3,0 z\",\n                    \"FJ\" : \"m 675.43,250.99 2.2,0.1 0,-1 3.1,-1.2 -3.2,2.4 0.9,0.5 -0.4,2.4 -0.7,-1.3 -1.5,-0.3 z\",\n                    \"RU\" : \"m 621.23,124.99 -2.1,0.7 -1.5,1.4 -2.9,1.4 1.3,-1.6 4.8,-2.3 z m -189,-65.8 -2.9,0.8 -0.5,-1.8 1.8,-0.8 1.7,0.8 z m 17.7,-4.7 2.2,1.5 -1.8,0.7 -1.9,-1.3 z m 22.6,-10.7 1,0.4 -3.4,0.7 0.1,-1.3 z m 80.8,-3.8 -1.1,1 -2.5,-0.9 1,-0.8 z m -107.6,-23.8 -2.8,0.4 0.6,-1 4.7,-0.6 0.7,2.5 z m -4.8,-1.3 -0.5,1.2 -3.3,0.2 0.5,-1.1 2.8,0.6 z m 2.9,-2.7 4.8,0.2 -3.3,1.7 -2.1,0.2 -3.5,-0.8 z m 16.4,-0.5 1.4,1.2 -4.5,1.1 -1.1,-0.7 2.9,-0.6 z m -13.1,-2.3 1,1 -1.4,1.6 -3.5,-0.2 z m -34.3,120.1 -1.9,-1.7 -4.6,-2.5 1.8,-0.4 0.6,-2.6 2.8,-1.3 -2.1,-0.3 1.2,-1.8 1.8,0.1 -0.1,-2.3 0.8,-1.2 -1.8,-1.5 -3.4,-1.4 -3.4,0.2 -1.1,-2.2 -1.7,-0.1 0.5,-1.3 -1.2,-1.5 -3.9,0.6 -1,-2.3 2.8,-1.1 -1.8,-1 -1.7,-4.8 -5.2,-1.4 -1,-1.9 -0.6,-1.9 0.4,-0.8 0.2,-0.5 0.4,-1.3 -0.3,-1.5 0.3,-0.5 0.2,-0.3 0.2,-0.1 0,0 -0.1,0 0,0 0,0 0.1,0 0.2,-0.1 -0.1,-0.2 -0.2,-0.2 0.2,-0.9 3.3,-1 -3.9,-1.1 2.7,-2 3.9,-3.8 0.6,-1.2 -3,-2.5 1.1,-0.8 -1.9,-3 0.6,-3.6 -1.5,-2.3 1.7,-2.7 -2.5,-1.8 -0.5,-1 1,-1.7 1.9,-1.1 1.7,-1.5 2.3,-0.6 2.1,0.8 -2.1,0.6 7.5,1.3 9.8,5 0.6,1.5 -1.8,2.6 -2.1,0.9 -2.7,0.1 -8.5,-2 -2.4,-1.3 5.2,4.5 -0.9,1.1 0.9,1.6 1.5,-1 2.4,0 4.9,1.9 1.7,-0.8 -1.2,-2.5 2.9,-1.4 2.4,-2.3 3.1,2.9 0.6,-2.6 -1.3,-1.6 0.8,-3.5 -1.8,-1.2 5,0.5 1.5,2 -2.6,0.4 -0.8,1.3 1.7,1.4 3.7,-0.3 0.5,-2.1 1.5,-0.3 4.5,-2.5 4.4,-1.4 1,1.9 1.4,0.5 2.5,-1.6 2.5,0.4 3,-1.5 1.5,2.2 2.4,-2.6 -1.5,-1.6 1.2,-0.9 6.5,1 2.9,1.6 3,0.9 2,1.6 1.6,-2 -1.2,-0.1 -0.9,-1.8 -2.3,-0.3 1,-3.9 -1.7,0.1 0.9,-2.1 3,-1.9 0.9,-3.1 1.2,-0.7 3.8,-0.1 2.4,0.7 0.1,1.6 -2,2.6 1.6,1.5 -0.4,2.9 0.2,4.6 2.1,1.4 -1,2.6 -1.1,0.4 -1.9,3.1 -2.3,1 3.3,0.3 2.7,-1.8 2.4,-2.8 -0.6,-3.4 3.7,-1 1.8,1.6 -0.4,2.5 1.9,-1.6 -0.8,-2.1 -4.2,-1.3 -3.3,0.2 -0.5,-1.8 1.6,-2.7 -2.5,-3.2 0.9,-1.4 2.7,-1 -0.4,-2.9 1.8,-2.4 2.1,0.3 -2.3,2.7 0.4,1.8 -1,3 4.9,0.9 0.9,-0.4 -3.7,-1 -0.6,-1.3 1.8,-0.5 1.2,0.8 0.6,-1.7 2.4,-2.9 0.5,2.6 4.5,2.5 2.9,-0.1 -1.9,1.5 1.1,1 0.7,2.4 1.1,-0.5 -1.2,-2.7 0.9,-1.4 -2.8,-2.3 -2.8,-1 -0.7,-2.4 0.4,-1.4 12.5,-1.1 -0.5,-1.1 -2.8,-2.2 3.1,0.5 -0.5,-1.3 2.1,-0.2 4.1,-2.2 6.9,-1.1 -1.2,-0.7 3.2,-0.1 2.3,-0.9 -0.9,-1.5 1.6,-1.3 0.5,2.6 -1.1,0.8 1.2,1.1 2.6,-0.5 2,-2.1 3.8,-0.1 0.6,-2.2 4,-2.3 2.8,-0.2 2.2,0.6 -1.3,1.5 4.3,1.2 -2,1.5 2.8,-0.1 0.1,-0.8 6.2,0 2.6,0.5 0.2,1.6 1.4,0 0.6,2.5 -2.1,-1.1 2,2.3 -7,3.6 -3.6,2.6 -1.8,0.1 -1.5,1.5 2.6,0.1 6.1,-1.9 -2.5,-0.1 0.8,-1.1 4.5,1.2 1.5,-0.7 0.6,1.4 3.7,-0.8 5.9,0.5 -0.2,1.1 3.6,1.1 5.2,0.4 1.1,-1.3 -0.5,-1.2 2.5,-1.3 0.3,0.7 3.2,1.1 1.2,-0.5 4.6,2 -1,3.4 -2,-1.3 3.6,4.6 2.2,1.4 1.2,-0.5 1.9,-3.5 2.2,1.6 1.6,0.2 2.8,-0.9 2,0.3 3.3,-0.3 2.5,0.6 -1.6,-2.5 0.6,-1.2 3.9,-1 7.4,0.8 2.9,0.9 -2,0.4 0.5,1.3 2,-1.8 4.6,0.6 0.9,0.9 -2,0.7 4.7,1.4 1.4,1.5 2.8,0.1 4.3,-0.8 5,0.4 2.2,1.1 0.8,1.5 -0.8,1.2 2.7,1.5 5.6,-1.1 1.6,0.7 4,0.2 2.5,-1.8 2.3,0.5 -0.5,1 -2.1,-0.4 0.5,1.6 2.4,1.5 2.6,-0.9 -0.7,-3.6 9.4,0.9 3.5,0.8 7.3,2.9 0.3,0.7 6.5,2.9 1.6,3.7 0.8,-1.4 4.4,0 3.9,2.7 -1.6,1.6 -3.1,0.3 -0.9,2.6 0.8,0.9 -2.2,0.3 -2.6,-1.6 -2.2,-0.6 -0.1,-1.2 -2,-0.7 -3,0.3 -2.2,-2.1 0.8,1.8 -0.8,1.5 -4,1.5 -3.5,-0.6 3.1,2 0.5,-0.5 2.6,5 -1,1.3 -2,-0.8 -2.6,0.2 -6.2,2.7 -2.8,2.1 -2.7,1.2 -0.4,1.4 -2.2,-1.8 -4.4,0.8 -1.6,1.3 0.6,-1.8 -3.1,2 -2.2,-0.8 -0.9,1.6 1.2,1.7 1.6,0.1 -2.2,1.2 -0.8,-1.5 -2.1,2.5 2.6,1 -1.1,2.6 1.2,1.6 -2.4,0.1 -0.7,1.4 0.7,2 -4,1.8 -0.8,2.4 -1.9,1 -1.7,3.4 -3.8,3.5 -1,-0.1 2.9,-1.9 -1.2,-5 -1.1,-6.2 0.9,-4 2.8,-2.9 2.9,-1.7 1.7,-2 3.8,-3 0.1,-0.6 4,-2.7 0.2,-2.7 2.1,-0.4 -1.2,-0.9 -2.5,0.5 -0.6,2.1 -5.4,3.6 -0.7,-1 1.1,-3 -5.5,0.5 -4.9,4.1 -1.6,2.5 2.1,0.9 -3.5,-0.2 -3.8,1.1 -1.2,-1.8 -2.2,-0.8 -1.6,1.5 -9.3,-0.5 -2.5,0.6 -3.2,2.3 -0.8,1.5 -3.5,2.4 -2.1,2.4 -4.5,3.2 2.5,0.8 0.3,-1 2.7,-0.1 -1.5,2.6 1.1,1.2 1.6,-1.9 2,0 3.2,3 -1.9,6.7 0.2,2.4 -0.7,2.7 -1.8,1.7 -2.2,3.7 -4.3,4.4 -1.4,2.1 -3.8,1.9 -2.6,-1.5 -2.1,2.4 -0.1,-0.3 -0.2,-0.3 0.9,-0.7 0.5,-2.8 -0.6,-1.9 2,-0.9 0.7,1.7 0.9,-1.3 2,-2.8 0.5,-2.4 1.2,-1.1 -0.7,-1.7 -3.7,1.7 -2.7,0.1 -0.4,-1.6 -2.8,-2.7 -2.5,-0.3 -4.5,-8.8 -4.7,-1.5 -4.7,0.8 -1.5,1.3 1.4,1.7 -1.3,1.1 -1.8,3.3 0.1,0.9 -2.8,1.2 -2,-0.7 -2.5,-0.2 -2.1,-1 -2.4,1.7 -4.4,1.2 -4.2,-0.5 -1.2,-1.5 -5,-1.4 -3.1,0.9 -2.7,-1.2 -0.2,-1.8 -6.3,-2.1 -2.1,2.9 1,1.2 -1.9,2 -5.2,-0.7 -0.7,-1.4 -3.6,-0.7 -8.7,4.2 -0.6,0.1 -0.3,0.1 -1.4,-1.3 -2.6,0.1 -3.5,-3.6 -3.8,0.7 -1.4,-1.4 -1.4,1.2 -4,-6.3 -2.6,-1.8 0.3,-1.3 -4.7,2.3 -1.4,-1 -4.5,-0.4 -0.6,-3.1 -4.9,0.2 -0.2,0.7 -5.7,1.6 -8.1,1.2 0.5,1.6 1.6,0.4 -2.7,1.1 0.7,0.9 -1.7,1.2 2.6,1.1 -0.2,1.7 -2.7,-0.2 -0.4,0.8 -2.2,-1.2 -4,-0.1 -1.7,1.3 -2.2,-0.8 -2.2,-1.7 -5.3,-0.3 -3.6,2.7 -0.5,1.9 -1.7,-1.6 -1.2,1.6 0.2,1.5 -1,2 1.2,1.4 1.8,0.1 2.2,3.5 -3,1.5 -1.8,2.5 1.7,2.1 -0.3,1.7 2.2,2.7 -1.6,1.5 -2.5,-1.6 -3.1,-1.9 -1.7,0.4 -2.1,-1.4 z m 271.5,-79 1.5,0.9 -0.9,0.7 -4,0.2 -2.3,0.6 0.2,-1.5 2.6,-1.2 z m -78.8,-8.9 2.7,0.1 2.6,1.4 -0.4,1.3 -5.1,-1.1 z m -92.9,-23.7 -1.9,-1.1 5,0.6 -2.1,1.1 z m -86.5,-4.2 2.6,-0.3 -4.2,1.7 -1.9,-0.9 z m 25.7,-0.9 2.6,-0.7 1.1,1.5 -2.3,1.7 -2.6,-0.1 -0.9,-1 z m -77.7,89.4 1.2,-0.6 -1.5,0.6 0,0 0.6,-1.2 1.9,-1 0.2,0 -0.9,0.9 1.4,-0.8 3,1 -0.1,1.4 -0.2,0 z m 144,-85.5 -1.4,0.2 -1,0.2 -4.2,-1.3 2.4,-1 0.5,-2.2 5.2,-1.3 4.2,2.6 -1.4,0.3 0,1.8 -3.6,0.6 4.3,-0.3 1.5,1.3 1.6,-0.8 1.4,1.6 -1,3.7 -3.2,0.1 -1.8,-0.8 -3.4,-0.2 -2.4,-2.2 z m 92.4,98.5 -1.3,3.3 1.6,3.6 -1.8,-0.2 -0.7,1.7 -0.5,-1.7 0.7,-3.3 -0.4,-2.1 0.5,-5.8 -1.1,-1.5 0.2,-4.2 2,-0.8 -0.5,-1.6 1.4,3 0.3,4.2 1.6,5.7 z m -166.2,-71 -2,3.4 1.4,3.7 2.9,1.9 -0.9,0.8 -3.3,-0.9 -0.5,0.7 -3.6,-1.1 0.6,-1.2 -1.3,-0.6 0.2,1.2 -2.9,-1.9 -0.1,-1.3 1.8,-0.5 1.4,-3.7 3.5,-1.2 z m 173.7,-7.9 2.4,-0.4 1.4,0.6 3.3,0.6 -0.5,0.9 -4.6,0.3 -4.1,-1.7 0.7,-1.3 z m -11.1,-3.4 2.3,1.3 2.7,0.1 2.7,1.3 -2.6,1.9 -2.9,-1.4 0.3,1.1 2,0.6 -2.6,0.4 -1,-0.6 -5.4,1.3 -2.1,-0.8 -2,-1.9 -1.6,-0.4 -1.1,0.3 0.4,-1.9 2.6,1 0.8,-1.4 2.8,-1 4,2.4 z m -141.2,-3.3 2.3,0.6 0.3,1.2 -3.5,1.9 -11,3 -4.3,3.4 -1.8,-0.5 0.1,1.4 -2.8,3.5 -3.4,-0.7 -1.5,0.5 -1.1,-1.7 2.2,-0.8 1.4,-2.5 2.9,-2.9 2.2,-0.7 1,-1.2 4.5,-0.8 0,-0.7 2.5,0.3 3.2,-0.5 z m 63.7,-7.4 0.3,-1.4 2.4,-1.3 1.6,0.5 -0.4,1.2 1.7,-0.5 2.4,1.3 2,2.5 -1.7,-0.9 -2.9,0.9 -4.7,0.3 -2.3,0.9 -1.5,-0.3 z m -103.8,-6.5 5.7,-1.5 -1.2,-0.6 2.6,-1.1 2.6,1.5 -3.8,0.9 0.9,2.2 -1.3,-0.7 z\",\n                    \"VA\" : \"m 360.13,132.99 0,0 0,0 0,0 z\",\n                    \"SM\" : \"m 360.13,128.39 -0.1,-0.1 0.1,-0.1 0.1,0 z\",\n                    \"KZ\" : \"m 451.63,123.39 -2.1,0.7 0.6,1.3 -1.4,-0.8 0.4,-0.3 -0.6,0.2 -5.1,1.3 0.1,8.5 -0.9,0.1 -2.6,-2.4 -1.3,0.5 0,0 0,0 0,0 -0.8,0.3 0,0 0,0 0,0 -1.2,0.5 0.5,-2.2 -1.5,-0.3 -3.1,-4.2 2.1,-1.6 2.1,-0.2 1.1,-1.4 0,-2.1 -1.8,0.1 -1.8,-0.7 -3.8,1.9 -2.2,-3.5 -1.8,-0.1 -1.2,-1.4 1,-2 -0.2,-1.5 1.2,-1.6 1.7,1.6 0.5,-1.9 3.6,-2.7 5.3,0.3 2.2,1.7 2.2,0.8 1.7,-1.3 4,0.1 2.2,1.2 0.4,-0.8 2.7,0.2 0.2,-1.7 -2.6,-1.1 1.7,-1.2 -0.7,-0.9 2.7,-1.1 -1.6,-0.4 -0.5,-1.6 8.1,-1.2 5.7,-1.6 0.2,-0.7 4.9,-0.2 0.6,3.1 4.5,0.4 1.4,1 4.7,-2.3 -0.3,1.3 2.6,1.8 4,6.3 1.4,-1.2 1.4,1.4 3.8,-0.7 3.5,3.6 2.6,-0.1 1.4,1.3 -3,1.7 -0.5,3.3 -1.5,0.5 -3.3,-0.9 -1.4,4 -4.2,1.2 1.4,4.4 -1.2,2.2 -3.4,-1.6 -6.2,0.1 -1.9,-1 -1.3,2 -3.2,-1 -1.7,1.4 -3.6,2 -0.9,1.7 -1.3,-1.3 -2.3,0 -0.4,-1.8 -0.9,-0.1 -0.5,-2 -1.6,-1.9 -5.6,0.5 -1.9,-2.1 -1.8,-1.1 -0.7,-2 1.3,-0.5 z m 0.3,0 0.1,0 0,0.1 1.5,-0.7 z m -19.5,2.7 -0.4,-0.2 0.1,-0.3 0.6,0 z\",\n                    \"AZ\" : \"m 422.53,134.89 -0.1,0.1 0,-0.1 0.1,0 z m 0.4,0.2 -0.1,0 0,-0.1 0,0 z m 0.5,0.8 0,-0.1 0.1,0 -0.1,0.1 z m -1.3,2.2 -0.1,-0.1 1.9,0.3 0.7,1.5 -1.3,-0.3 z m 3.1,-5.1 2.5,1.6 1.6,-1.5 1.9,2.8 -1.3,4.9 -1.7,-0.9 -0.1,-2 -2.8,1.9 -1.6,-2.6 0.6,-0.4 -1.9,-2.4 2.9,0.5 z\",\n                    \"TJ\" : \"m 471.53,135.09 0,0.1 -0.1,-0.2 0,0 z m 0,2.5 0.1,0.1 -0.2,0.1 -0.2,-0.2 z m 5.8,0.9 0.3,2 1.8,0.1 0.3,2.8 -3.1,-0.5 -3.2,1.7 0,-2.6 -2,-1 -0.9,1.8 -1.6,0.9 -2.9,-0.2 1.1,-2.3 -0.4,-1.6 -1.5,-0.6 2.1,-0.7 1.9,-2.8 2,-0.5 0.9,1.8 -1.9,0 -1.2,1.6 4.1,-0.2 1.5,0.9 z\",\n                    \"LS\" : \"m 390.23,273.89 0.9,-0.3 1.5,1.6 -2.6,2.8 -2,-2.2 z\",\n                    \"UZ\" : \"m 473.73,137.49 -0.2,0 0,-0.1 0.2,-0.1 z m -1.2,-0.3 0.1,0.3 -0.3,0.1 -0.2,-0.5 z m -22.4,-11.8 -0.5,1 1.4,1.2 0.3,-1.5 1.8,1.1 1.9,2.1 5.6,-0.5 1.6,1.9 0.5,2 0.9,0.1 0.4,1.8 2.3,0 1.3,1.3 0.9,-1.7 3.6,-2 -1.5,1.5 2.4,1 0.6,-0.7 2.7,1.5 -2.8,1.5 -1.4,-0.2 -0.9,-1.8 -2,0.5 -1.9,2.8 -2.1,0.7 1.5,0.6 0.4,1.6 -1.1,2.3 -1,0 -1.4,-0.3 0.1,-1.5 -1.8,-0.5 -6.1,-3.9 -0.9,-2.3 -3.6,-0.9 -0.4,-2.1 -2.5,-1.1 -1.8,1.5 -0.4,-0.4 -0.7,0.9 -0.1,1.5 -1.9,-0.1 -0.1,-8.5 5.1,-1.3 -0.6,2.6 0.8,-2.5 z m 21.4,9.7 -0.1,-0.1 0,0 0.1,0.2 z\",\n                    \"MA\" : \"m 325.92969,146.28906 -1,0.30078 -1.69922,3.80078 -3.30078,1.59961 -1.40039,1.5 -1.09961,2.5 0.5,2.09961 -1.90039,2.90039 -1.69922,1.40039 -2.80078,0.79883 L 311.125,164 h 8.54883 l 0.0566,-0.21094 v -2.09961 l 1.90039,-1.5 3.69922,-0.5 4,-2.29883 v -1.90039 l 2.19922,-1.09961 2.40039,0.0996 0.40039,-0.90039 -1.19922,-1.5 -0.20117,-3.19922 -0.90039,-0.80078 -1.19922,-0.0996 -0.0996,-0.30078 h -0.0996 v -0.0996 l -2.70117,0.40039 -1.79883,-1.5 -0.10156,-0.0996 z\",\n                    \"CO\" : \"m 185.43,214.99 0.2,-1.4 1.6,-1 1.4,-2.2 -0.4,-1.1 0,-4 -1.1,-1.3 1.4,-1.4 -0.4,-1.4 0.9,0.3 2.5,-1.8 0.2,-2.1 2.7,-1.5 1.6,0.1 3.4,-2.2 0.3,1.1 -1.2,0.4 -1.8,2.4 -0.2,2.1 1.2,1.8 0.5,2.5 3.8,0.2 1.3,1.6 3.8,-0.1 -0.8,3.1 1.1,2.2 -1,1 1.2,0.9 0.6,2.2 -0.9,-1.6 -1.5,0.7 -3.3,0 -0.4,3.6 1.2,2.4 -1,5.3 -1.5,-0.8 1.4,-2.1 -1.9,-1 -2.6,0.5 -1.6,-0.4 -0.8,-1.8 -3.2,-2.2 -1.9,-1.1 -2.2,-0.4 z\",\n                    \"TL\" : \"m 573.73,235.59 0.4,-0.2 0.4,-0.1 -0.3,0.6 z m 1.7,-0.7 0.5,-0.7 3.5,-0.6 -1,1.2 -2.7,1.1 -0.2,-0.6 z\",\n                    \"TZ\" : \"m 403.23,239.89 0,-0.2 -0.1,-0.1 0,-0.1 -0.3,-0.1 0,-0.1 0,0 0,-0.1 -0.5,-2.5 -0.4,-0.4 -0.2,-0.2 0,0 -0.2,-0.2 0,0 0,0 -0.2,0.1 -0.1,0.3 -1,-0.2 -0.9,-0.4 -1.8,-0.6 -1.6,-1 -2.3,-5.1 -0.5,-2.8 2.2,-2.3 -0.5,-1.6 0.5,-1.5 -0.7,-1 0.7,-0.1 1.8,0 0,0.1 0.1,-0.1 0,0 0.2,2.7 2.5,0.1 1.6,-2.7 6.9,3.8 0.2,1.1 2.7,2 1.3,1.1 -1.1,0.9 0.5,1.3 -0.4,4.4 2.1,3.4 -5.7,2.4 z\",\n                    \"AR\" : \"m 204.93,334.29 0.1,0.2 -0.2,0 z m 26.8,-66.8 1.4,0.1 0.1,3.1 -3.7,2.2 -3.5,4.1 -1.2,3.6 0,1.2 -0.7,3.9 2.8,2.5 -0.5,0.9 1.4,2.2 -1.8,2.8 -2.8,1.2 -3.5,0.7 -2.3,-0.2 -0.5,4.4 -2.8,0.7 -2.1,-1.1 -0.3,2.9 0.9,1.1 1.6,-0.8 0.3,1.5 -1.6,-0.5 0,1 -1.7,1.6 -0.5,3.2 -1.2,0 -2.1,1.4 -0.6,1.3 1.6,2.1 1.6,0.1 0,2.4 -3.1,2.4 -0.6,2.4 -1.9,0.8 -0.6,1.7 1.4,3.5 -2.9,-0.9 -3.7,-0.1 -1,-1.1 0.2,-2.3 -1.6,0.3 -0.8,-3 2.5,-3 -0.5,-1 1.2,-1.7 1.1,-4.6 -1.4,-1.3 0.8,-2 -1,-2.1 0.8,-2.1 -0.4,-3.1 1.1,-4.1 1,-0.5 -0.6,-2.2 0.3,-2.6 1.2,-1 0,-1.9 1.2,-3.9 -1.6,-3.8 1.8,-6.6 1.6,-2.6 1,-0.5 -0.5,-4.3 2.3,-1.6 0.3,-2.4 1.9,-2 3.1,0.8 0.5,1.3 0.8,-1.7 2.4,0.5 3.2,3.1 1.8,0.4 4.8,2.9 -2,3.9 5.4,0.2 1.9,-1.6 z m -26.8,66.7 0,-5.6 0.3,1.7 2.2,2 2.8,1.6 2.4,0.6 -3.7,0.4 -1.3,-0.2 -0.5,-0.1 z\",\n                    \"SA\" : \"m 429.03,161.99 0.9,1.9 2.4,1.9 0,1.9 1.3,2 0.3,0.4 0.4,-0.1 0.2,0.6 0.5,0.1 1.9,2.7 5,0.4 0.9,1.5 -1.3,3.9 -5.7,2 -5.5,0.8 -1.8,0.9 -1.4,2 -4.4,-0.6 -3.8,0.2 -0.7,1.9 -3,-4.6 -0.5,-1.6 -2.5,-1.9 -1.1,-1.7 0,-2.5 -1.2,-2.4 -1.8,-1 -0.5,-1.9 -3.9,-5.8 -1.2,-0.2 0.7,-2.5 2.1,0.3 3.7,-2.7 -2,-2.1 4.2,-1.3 2.5,0.4 3.1,1.8 5,3.9 3.6,0.2 1.7,0.2 z\",\n                    \"PK\" : \"m 479.03,143.89 2.7,1.2 1.6,1.8 0.5,1.2 -2.4,1.3 -2.8,-0.6 -1.1,0.9 0.5,2.5 2.4,2.2 -1.5,0.9 0.1,1.3 -2.2,2.5 -0.9,1.8 -2,2.3 -2.7,-0.2 -1.9,2.5 3,4.3 -2.1,1.1 -2.1,-0.2 -1.3,0.8 -1.6,-0.4 -1.9,-2.8 -5.4,0.5 -3.7,0 0.5,-2.1 2.4,-0.8 -0.7,-3.3 -1.6,-0.7 -2,-2.7 3.1,1 3.1,0 4,-0.9 0.3,-2.3 3.4,-1.9 2.3,-0.2 0.4,-2.5 1.5,-0.5 -0.6,-1.5 2,-0.1 1.1,-2.4 -0.9,-1.9 2.7,-1.7 z\",\n                    \"YE\" : \"m 435.83,181.19 1.4,3.3 0.7,1.3 -1.6,2 -5.1,1.7 -1.7,1.4 -1.3,0 -2.5,1.2 -1.7,0.1 -3.6,1.5 -0.9,-0.5 -1.4,-5.3 0.1,-1.5 0.7,-1.9 3.8,-0.2 4.4,0.6 1.4,-2 1.8,-0.9 z\",\n                    \"AE\" : \"m 444.03,167.89 0.2,0.2 0,1.1 -1.1,0.2 -1.2,4.4 -5,-0.4 -1.9,-2.7 4.9,0.2 3.7,-3.9 0.2,0.8 z m 0,0.8 0.2,-0.1 -0.3,0 0,0.2 z\",\n                    \"KE\" : \"m 411.33,226.69 -2.7,-2 -0.2,-1.1 -6.9,-3.8 0.3,-1.6 -0.4,-0.9 1.8,-2.7 -0.1,-1.5 -1.8,-3.4 2.8,-1.5 1,0.8 1.7,0.3 2.4,1.6 2.8,0.4 2.3,-1.7 2.2,0.6 -1.8,2.2 0,7 1.1,1.6 -2.6,2 z\",\n                    \"PE\" : \"m 192.13,217.99 3.2,2.2 0.8,1.8 1.6,0.4 2.6,-0.5 1.9,1 -1.4,2.1 1.5,0.8 -1.5,-0.1 -4.1,1.8 -0.4,2.4 -1.7,2.2 3.5,4.8 1.9,-0.2 1.3,-0.9 -0.3,3 2.1,-0.1 1.7,3 -0.8,2.2 0.4,1 -0.9,2.6 -1.3,0.6 1.8,0.8 0.1,0 0.1,0 -0.2,0.5 0.1,0.1 -1.2,1.5 0.3,0.4 -0.9,1.5 -0.8,0.1 -2.1,-2 -7.1,-3.8 -2.1,-2.5 0.1,-1.4 -2.7,-4 -2.5,-5.9 -1.9,-2.7 -2.2,-1.4 -0.3,-3.5 1.8,-1.6 -0.4,1.3 2.8,1.8 1.4,-3.1 3.2,-1.5 2.1,-2 z\",\n                    \"DO\" : \"m 198.63,182.19 0,0 -0.1,-0.1 0,0 -0.1,-0.1 0.6,-0.3 -0.1,-1.9 1.4,-0.5 2.1,0.6 0.6,1.1 2.4,0.9 -1.1,0.4 -3.4,0 -1.4,1.6 -0.6,-0.8 0.1,-0.6 z\",\n                    \"HT\" : \"m 198.63,182.19 0,0 -0.1,-0.1 0,0 z m 0.3,-2.4 0.1,1.9 -0.6,0.3 0.1,0.2 0.1,0 0.4,0.3 -0.1,0.6 -3,-0.4 -1.1,0.4 -0.7,-1.3 3,0.5 -0.1,-2 -1.3,-0.7 z\",\n                    \"PG\" : \"m 606.23,235.09 0,-4.2 0,-8.2 5.8,2.3 1,0 2.4,2 -0.1,1.2 3.3,0.9 0.8,1.4 -1.8,0.1 0.5,1.4 1.8,1.1 2.1,2.8 3.3,0.2 -0.5,1.8 -5.2,-0.7 -1.7,-1.4 -1.9,-2.6 -4.5,-1 -0.7,2.7 -1.4,0.7 z m 17.2,-12.6 -0.6,-1.7 1.1,1.5 3.5,1.6 2.1,2 -0.5,1.1 -1.2,-2.4 z m -0.6,7.3 -3,-1.1 5.6,-0.6 1.2,-0.9 -0.2,-1.5 1.7,0.3 -0.5,2 -3.2,1.7 z\",\n                    \"AO\" : \"m 359.73,228.69 0,-0.5 -0.4,-0.9 1.4,-1.2 0.6,0.5 -1.2,0.8 z m 21.3,23 -4.9,0.7 -3.9,-0.5 -0.6,-0.7 -8.6,0 -1.5,-0.9 -2.7,0.6 0,-2.8 1.4,-4.6 2.2,-2.3 0.2,-3 -1.4,-3.1 0.7,-1.4 -2.1,-4.3 1.7,-0.5 6.6,0.1 0.7,2.7 1.2,1.5 3.3,-0.2 0.4,-1.9 4.3,0.5 0,4.1 0.7,1 0.2,2.6 3.3,-0.8 0,4.1 -3.8,0 0,6.2 z\",\n                    \"KH\" : \"m 542.13,189.59 0,4.6 -3.4,2.5 -2.4,1.2 -1.6,-0.2 -1.4,-2.2 -1.1,-3.7 2.5,-1.7 3,0.2 3.1,0.1 z\",\n                    \"VN\" : \"m 536.33,197.89 2.4,-1.2 3.4,-2.5 0,-4.6 0.3,-1.1 -2.2,-3.4 -3.4,-3.5 -1.7,-1 2.1,-1.5 -1.7,-1.8 -1.8,0.2 -0.3,-1.4 -1.6,-1.7 0.7,-0.7 2.8,0.5 2.6,-1.7 2.8,1.2 -0.4,0.8 2.7,1.8 -2,1.1 -1.7,1.8 -0.8,2 1.9,3 4.1,4.1 1.4,4.8 -0.9,3 -3.3,1.9 -1.1,-0.3 -0.4,1.9 -3.3,1.4 0,-2.7 z\",\n                    \"MZ\" : \"m 403.03,243.59 -0.3,-2.5 0.5,-1.2 4.8,0.3 5.7,-2.4 0.8,8.3 -1.8,3.2 -5.4,2.8 -4.2,4 -0.5,1.1 1.6,3.3 -0.7,5 -2.6,1 -2.4,1.8 0.8,1.8 -1.1,0 -0.4,0 -0.2,-1.2 -0.2,-0.6 0.1,-3.1 -1.3,-4.1 2.1,-2.2 1.2,-2.5 -0.5,-1.1 0.5,-2.2 -0.1,-3.3 -4.9,-2 -0.4,-1.3 5.7,-1.9 0.9,1.1 1.3,-0.4 -0.2,2.9 1.7,1.3 1.3,-1 0.1,-2.7 z\",\n                    \"CR\" : \"m 176.13,196.89 0.4,0.8 1.7,1.8 -0.9,2.3 0,0 -0.3,-0.5 -5.1,-3.3 0.3,-1.4 2.6,0.2 z m 1.5,5.6 -0.3,-0.6 0,-0.1 0,0 z\",\n                    \"BJ\" : \"m 343.23,195.39 0.4,2.1 -2,3 -0.1,5.1 -1.6,0.2 -0.5,0.1 -0.1,-5.4 -1.3,-3.7 1,-0.9 1.9,-0.9 0.8,-0.9 z\",\n                    \"NG\" : \"m 341.53,205.59 0.1,-5.1 2,-3 -0.4,-2.1 1,-3.4 2.6,-0.8 2.8,1.7 1.7,-0.7 3.4,1 1,-0.8 2.5,-0.2 2,0.6 2.1,-1.3 0.9,1.3 1.2,1.7 -4.7,7.4 -1.8,3.6 -1.4,-1.3 -3.3,2.5 -0.5,1.9 -4.6,1 -1.1,-0.7 -2.3,-3.2 z\",\n                    \"IR\" : \"m 422.03,143.59 -1,-1.8 -0.5,-3.1 1.6,-0.6 1.2,1.4 1.3,0.3 0.5,-0.1 0.2,0.1 2.8,-1.9 0.1,2 1.7,0.9 0.2,1.5 2.3,0.8 1.7,1.4 1.6,0.4 4,-0.6 -0.2,-1.1 2.9,-1.6 3.4,-0.4 0.3,0.6 2.8,0.6 2.9,2.4 1.6,0.1 0.2,2.1 -1.4,5.5 0.5,3.3 1.7,0.2 0.2,1.1 -1.8,2.1 2,2.7 1.6,0.7 0.7,3.3 -2.4,0.8 -0.5,2.1 -3.2,-0.3 -5,-0.9 -0.5,-2.2 -1.3,-0.7 -3,1.5 -6.5,-3 -2.6,-4.7 -2.1,-0.4 -0.8,0.9 -1.6,-2.2 0.3,-1.6 -0.9,-1.3 -2.1,-1.2 -1.7,-2.2 1.8,-3.9 -2,-0.4 z\",\n                    \"SV\" : \"m 168.13,192.09 -1.8,0.3 -2.5,-0.9 -0.1,-0.2 1.5,-1.1 3.2,1.1 z\",\n                    \"SL\" : \"m 314.33,204.59 -2.8,-1.3 -0.7,-2.8 1.5,-1.5 2.4,-0.3 1.9,2.9 -0.6,1.4 z\",\n                    \"GW\" : \"m 307.53,196.79 -1.7,-0.5 -1.6,-2.1 3,-0.7 2.8,0 0,1.9 -1.9,0.4 z\",\n                    \"HR\" : \"m 371.73,131.79 -1.3,-0.9 -0.3,-0.2 0.4,0.2 1.1,0.6 0,0.1 z m -9.4,-7.2 3.3,0.1 0.6,-1.8 1.7,-0.7 1.6,1.3 3,0.1 0.2,1.8 0,0.7 -4,-1 -2.2,0.3 0.8,2.2 2.6,3 -1.7,-0.4 -3.5,-2.5 0,-2.2 -1.7,0.7 z\",\n                    \"BZ\" : \"m 165.63,183.49 0.5,-0.1 1.1,-1.2 0.2,3 -1.4,2.1 -0.6,0 z\",\n                    \"ZA\" : \"m 397.83,270.09 0.4,0 1.1,0 -1,3.5 -2.3,2.1 -1.5,2.7 -2.9,3 -3.4,2.7 -4.3,1.4 -4.4,-0.4 -1.3,0.7 -4.3,0.9 -2.2,-2 -1.3,-2.1 0.9,-0.4 -0.2,-2 -1.7,-2.9 -1.6,-3.6 1.2,-1.2 0.6,1.4 3.3,0.5 1.6,-1.1 0,-7.5 1.7,2.8 -0.3,1.6 1.9,-0.1 2,-1.8 0.6,-1.4 3.4,1.1 1.5,-0.4 0.5,-1.8 1.9,-0.9 0.3,-1.3 2.3,-2 2.2,-0.9 1.9,0.3 1.8,0.1 1.3,4.1 -0.1,3.1 -1,-0.5 -1.1,1.4 0.6,1.6 z m -7.6,3.8 -2.2,1.9 2,2.2 2.6,-2.8 -1.5,-1.6 z\",\n                    \"CF\" : \"m 380.03,196.89 1.5,2.1 -0.3,2 1.4,0.2 2.2,2.6 2,1.3 0.1,1.1 1.9,1.9 -3.5,-0.6 -5.9,2.3 -3.7,-0.4 -1.7,-1.4 -2.2,1.5 0.1,1.7 -2.2,-0.5 -1.7,0.5 -0.7,2.3 -0.2,-1.1 -1.8,-1.8 -1.5,-4.3 2.1,-2.9 2.5,0 3.5,-1 0.9,-1.8 2.6,-0.3 3.9,-3.5 z\",\n                    \"SD\" : \"m 382.63,201.19 -1.4,-0.2 0.3,-2 -1.5,-2.1 -1.2,-3.5 -0.3,-2 0.9,-0.7 1.1,-3 1.7,-0.1 0,-7.4 0,-1 1.9,0 0,-4 12,0 10.8,0 0.8,2.4 0.4,4.2 2.1,1.4 -3.1,1.8 -1.1,3.8 0.2,1.7 -0.8,3 -0.8,0.1 -1.6,3.7 -0.5,-0.3 -1,2.7 -1.7,-2.6 0.1,-2.7 -2.2,0.4 0.6,1.9 -2.2,2.4 -2.4,-0.9 -2.2,1.8 -4.4,-0.4 -1.4,-1.7 -1.4,0.2 z\",\n                    \"CD\" : \"m 392.23,224.09 -0.2,3.3 0.8,3.1 2,2.9 -3.2,0.5 -1.1,1.2 0.4,0.6 0.3,0.8 -0.6,3.1 1.3,1.8 1.4,-0.4 0,2.5 -1.1,0 -3.9,-3.6 -0.9,0.8 -2.6,-0.7 -0.1,-0.9 -1.9,0.4 -0.6,-1 -3.3,0.8 -0.2,-2.6 -0.7,-1 0,-4.1 -4.3,-0.5 -0.4,1.9 -3.3,0.2 -1.2,-1.5 -0.7,-2.7 -6.6,-0.1 -1.4,0.4 -0.4,-0.6 0.4,-1.3 1.2,-0.8 2.5,-0.7 0.9,1 2.6,-2.8 0.1,-2.3 2.9,-3 0.6,-5.1 1,-2.5 -0.1,-1.7 2.2,-1.5 1.7,1.4 3.7,0.4 5.9,-2.3 3.5,0.6 1.8,1.5 2.7,-0.5 2,2 -0.2,2 1,0.5 -1.4,1.3 -0.1,0.5 -1,0.8 -0.5,1.7 -0.7,0.8 0.6,0 -0.1,0.8 0,0.9 -0.4,0.3 -0.3,0.3 -0.5,0.5 -0.1,1 0,0.3 0.2,0.1 0.4,0.7 z\",\n                    \"KW\" : \"m 429.03,161.99 -1.9,-1 -1.7,-0.2 1.1,-1.8 1.6,-0.1 0.3,1.4 z\",\n                    \"DE\" : \"m 353.93,119.39 0,0 0,0 z m -1,-18.4 0.3,0 1.1,0.3 3.9,2.3 2,-1.5 2.2,-0.3 0.7,1.4 0.4,0.4 -0.1,0 0.1,0.1 -0.3,-0.3 0.4,0.8 -0.3,2.2 1,0.7 0.3,4.4 -4.4,1.2 -0.2,1.6 2.7,2.4 -2,1.6 0.5,1.5 -1.6,-0.5 -2.3,0.7 -2.4,-0.3 -1.3,-0.7 0.3,0.4 -1.4,0.2 -1.7,0 1.2,-3.4 -3.6,-1.2 0.3,-0.9 -0.7,-0.8 0.5,-0.4 -0.7,-1.2 0.7,-2.7 1.2,-1 0.4,-2.6 0.2,-1.3 2.4,0.5 0.8,-0.9 z\",\n                    \"BE\" : \"m 347.83,111.69 0.7,1.2 -0.5,0.4 -0.8,0.6 0.2,0.9 -3.2,-1.1 -3.1,-2.8 1.2,-0.6 0.4,-0.1 0.9,0.4 0.8,-0.4 0.1,0.1 -0.1,-0.1 1.5,-0.3 z\",\n                    \"IE\" : \"m 322.43,100.59 -1.8,1.6 1.7,0.9 2,0 0.5,3 -0.7,2 -2.3,0.3 -2.2,1.3 -2.1,0.3 -1.2,-1.2 2.9,-3.5 -2.1,-0.3 0.3,-2.5 2.4,0.2 0.6,-2.4 z\",\n                    \"KP\" : \"m 586.53,132.09 -2,1.7 0.1,1.6 -4.2,2.5 -0.1,1.3 1.7,1.2 -2.3,0.7 -0.9,1 -2.1,-0.4 -0.4,0.8 -1.1,-1.9 1.3,-1.8 -2.1,-1.7 3.1,-1.8 1.2,-1.8 2.9,0.7 -0.2,-1.4 3.2,-1.1 0.3,-1.2 1.3,1 0.2,0.3 z\",\n                    \"KR\" : \"m 578.83,142.09 0.9,-1 2.3,-0.7 1.9,2.9 0.2,3.9 -1.6,1.7 -1,-0.4 -1.1,1.1 -2.2,-0.4 z\",\n                    \"GY\" : \"m 221.43,201.49 1.7,1 3.7,3.7 -0.1,1.1 -1.6,2.5 3,4.3 -1.2,-0.2 -3.2,1.6 -1.8,-1.3 -0.5,-1.6 0.9,-2.3 -0.9,-2.2 -1.4,-0.2 -1.2,-1.4 0.3,-1.2 1.7,-1.1 -0.4,-1.3 z\",\n                    \"HN\" : \"m 167.43,187.59 4.4,-0.5 3.1,0.3 2.2,1.6 -3.2,0.4 -1.8,1.6 -1.9,0.4 -1.1,1.5 -0.4,-0.5 -0.6,-0.3 0.3,-0.8 -3.2,-1.1 0.4,-1.3 z\",\n                    \"MM\" : \"m 512.93,177.09 0.7,-0.5 -0.1,-1.3 1.2,-0.8 0.2,-3.3 1.5,0.3 1.8,-3.8 0,-1.5 3.2,-1.8 1.2,-1.8 0.4,-0.6 2.2,1.9 0,3.5 -1.9,1.7 -0.1,2.4 1.8,-0.4 0.6,1.8 1.2,0.2 -0.7,1.8 1.5,0.2 0.5,1.3 1.9,-0.3 -0.9,0.5 -1.2,2 -3,1.3 -0.9,-0.3 -1.2,2.6 2.7,4.6 -1.1,2.6 1.7,2.1 0.9,3.7 -1.7,2.8 -0.3,-5.5 -1.5,-3.2 -0.3,-2.8 -0.8,-1.4 -3.4,2.5 -2.4,-0.6 0.8,-2.9 -1.2,-3.7 -1.8,-1.2 z\",\n                    \"GA\" : \"m 355.03,215.89 3,0 0,-2.3 0,-0.2 3.7,0.3 -0.1,1.7 2.4,0.6 -1.2,2.2 1.2,0.7 -0.7,3.6 -3.2,-1.1 -1.7,0.8 0.5,2.6 -1.3,0.5 -3.6,-4 -1.1,-2.4 1.1,-0.3 0.1,-1.9 z\",\n                    \"GQ\" : \"m 358.03,213.59 0,2.3 -3,0 -0.8,-0.4 0.8,-2.2 0.4,0.3 z\",\n                    \"NI\" : \"m 172.23,196.59 -3.7,-3.4 0.6,-0.3 1.1,-1.5 1.9,-0.4 1.8,-1.6 3.2,-0.4 -1.4,7 0.4,0.9 -1.3,-0.1 z\",\n                    \"LV\" : \"m 388.63,93.89 0.6,1.9 1,1.9 -1.1,0.9 -1.9,0.4 -3.3,-2.1 -0.8,0.5 -4.5,-0.5 -2,1 0,-2.1 1.3,-2 1.7,-0.5 2,2.1 1.4,-0.7 -0.2,-1.7 1.9,-0.6 2.3,1.5 z\",\n                    \"UG\" : \"m 397.23,219.69 0,-0.1 0,0.1 z m -4.3,0.7 0,-0.9 0.1,-0.8 0.5,-0.6 -0.4,-0.2 0.5,-1.7 1,-0.8 1.8,-1.3 -0.3,-0.5 -1,-0.5 0.2,-2 5.1,-0.5 0.9,-0.9 1.8,3.4 0.1,1.5 -1.8,2.7 -2.7,0.2 -1.6,2.2 -1.8,0 -0.7,0.1 -1,0.8 z\",\n                    \"MW\" : \"m 403.13,239.59 0,-0.1 0,0 z m -0.3,-0.3 0,0 0,-0.1 0,0.1 z m -0.9,-3 -0.2,-0.2 0,0 z m -0.4,-0.4 0,0 0,0 z m -2.2,-0.2 0.9,0.4 1,0.2 0.8,3.8 0,3.2 1,0.3 1.9,2.2 -0.1,2.7 -1.3,1 -1.7,-1.3 0.2,-2.9 -1.3,0.4 -0.9,-1.1 -0.7,-0.6 1,-2.3 -0.2,-3.2 0.8,-0.5 z\",\n                    \"AM\" : \"m 425.33,139.79 -0.2,-0.1 -0.5,0.1 -0.7,-1.5 -1.9,-0.3 -2.1,-1 -0.5,-2.2 1.5,-0.3 1.5,-0.1 1.9,2.4 -0.6,0.4 z m -2.8,-4.9 0,0 -0.1,0 0,0.1 z m 0.4,0.2 -0.1,-0.1 0,0 0,0.1 z m 0.5,0.8 0,0 0.1,-0.1 -0.1,0 z\",\n                    \"SX\" : \"m 419.13,195.79 1.9,2 2.9,-0.8 1.3,0.4 1.8,-1 3,-0.1 0,3.4 -1.9,2.8 -1.9,0 -5.6,-1.9 -2.7,-3.1 0.6,-0.7 z\",\n                    \"TM\" : \"m 445.53,132.89 1.5,0.6 -0.4,-1.1 1.8,-1.5 2.5,1.1 0.4,2.1 3.6,0.9 0.9,2.3 6.1,3.9 1.8,0.5 -0.1,1.5 -1.4,-0.5 -1.9,1.1 -0.6,1.8 -4.2,2.4 -1.9,-1 -0.2,-2.1 -1.6,-0.1 -2.9,-2.4 -2.8,-0.6 -0.3,-0.6 -3.4,0.4 -2.9,1.6 0.1,-3.5 -0.8,-2.3 -1.6,-0.2 0.4,-2.1 1.5,0.8 1.9,-1.1 -1.5,-2.2 -0.8,-0.1 0,0 1.3,-0.5 2.6,2.4 0.9,-0.1 1.9,0.1 z m -7.6,-0.1 0.2,-0.3 0.6,0 0,0 -0.8,0.3 0,0 z m 0,0 -0.5,1.3 -0.7,-0.8 1.2,-0.5 0,0 z\",\n                    \"ZM\" : \"m 390.93,235.69 1.2,-1.4 -0.5,-0.4 3.2,-0.5 0.9,1.1 0.2,-0.4 1.6,1 1.8,0.6 1.4,2.3 -0.8,0.5 0.2,3.2 -1,2.3 0.7,0.6 -5.7,1.9 0.4,1.3 -3,0.8 -0.2,0.9 -1.2,0.6 -1.1,0.6 -1,1.6 -0.6,0.2 -2.8,-0.5 -2,-0.6 -1.6,0.3 -2.6,-2.9 0,-6.2 3.8,0 0,-4.1 0.6,1 1.9,-0.4 0.1,0.9 2.6,0.7 0.9,-0.8 3.9,3.6 1.1,0 0,-2.5 -1.4,0.4 -1.3,-1.8 0.6,-3.1 z\",\n                    \"NC\" : \"m 401.23,148.19 -0.3,0 -0.1,0 -0.6,-0.3 -1.2,0 0,0 0,0 0,0 -0.1,0 0,0 3.6,-1.1 -1.1,1.4 z m -2.5,-0.3 0.1,0 -0.1,0.1 z\",\n                    \"MR\" : \"m 319.73,164.49 6,3.8 1.3,0.9 -3.3,0 2,18.9 -10,0.1 -1.9,-0.2 -1,1.5 -4,-3.7 -3.8,0.4 -0.4,1.2 1,-4.2 -1,-2.8 0.7,-1.6 -1.7,-1.1 0.2,-1.1 7.6,0 0,-3.4 1.9,-0.9 0,-5.1 6.3,0 z\",\n                    \"DZ\" : \"m 327.03,169.19 -1.3,-0.9 -6,-3.8 0,-0.7 0,-2.1 1.9,-1.5 3.7,-0.5 4,-2.3 0,-1.9 2.2,-1.1 2.4,0.1 0.4,-0.9 -1.2,-1.5 -0.2,-3.2 -0.9,-0.8 6.3,-3 3.6,-0.7 3.5,-0.2 0.9,0.5 4.1,-0.9 2.3,0.3 -0.4,1.1 -0.3,3.9 -1.4,1.6 1.6,2.9 1.4,1 0.9,3.8 0.6,2.3 0,5.4 -0.8,0.8 1.2,2.6 2.9,1.1 0.8,1.6 -8.6,5.3 -3.2,2.8 -3,0.6 -2.2,0 0.2,-1.3 -2.5,-0.8 -1.4,-1.8 z\",\n                    \"LT\" : \"m 377.03,100.09 -0.2,-1.2 -0.2,-1 2,-1 4.5,0.5 0.8,-0.5 3.3,2.1 0.3,0.9 -1.7,1 -0.8,1.7 -2,1.1 -1.8,-0.1 0,-0.6 -1.3,-0.5 0.1,-1.4 z m -0.7,-0.1 0.3,-0.6 -0.1,0.6 z\",\n                    \"ET\" : \"m 416.33,196.19 -0.2,0.2 0.2,0.2 0.3,0.3 1.9,-0.1 -0.6,0.7 2.7,3.1 5.6,1.9 1.9,0 -5.8,5.9 -1.8,-0.1 -4,1.9 -2.2,-0.6 -2.3,1.7 -2.8,-0.4 -2.4,-1.6 -1.7,-0.3 -2.3,-3.9 -2,-1.9 -1.2,-0.3 0.3,-1.3 1.4,0.1 0.2,-2 1,-2.7 0.5,0.3 1.6,-3.7 0.8,-0.1 0.8,-3 2.6,-1.2 5.7,1.5 2.9,3.1 -1.2,1.8 z\",\n                    \"ER\" : \"m 417.43,193.89 -2.9,-3.1 -5.7,-1.5 -2.6,1.2 -0.2,-1.7 1.1,-3.8 3.1,-1.8 2.1,5.6 2.8,0.9 3.7,3.8 -0.8,0.6 z\",\n                    \"GH\" : \"m 338.53,206.19 -6.2,2.6 -2,-0.7 0,-0.1 0.3,0.1 0.2,-0.1 -0.7,-3.3 1.4,-2.6 -0.4,-2.4 -0.1,-2.9 5,-0.3 1,1.8 0.3,6.4 z\",\n                    \"SI\" : \"m 362.33,124.59 0,-0.1 0.2,-0.1 -0.6,-1.7 0.6,-0.6 1.6,0.4 3,-1.2 0.3,0 0.5,0.9 -1.7,0.7 -0.6,1.8 z\",\n                    \"GT\" : \"m 166.03,187.29 0.6,0.3 0.8,0 -1.8,1.3 -0.4,1.3 -1.5,1.1 0.1,0.2 -2.4,-0.4 -1.7,-1.2 0.9,-2.9 2.6,-0.6 -2,-1.8 0.9,-1.1 3.5,0 -0.2,3.8 z\",\n                    \"BA\" : \"m 370.13,130.69 -0.2,-0.1 0,0 -2.6,-3 -0.8,-2.2 2.2,-0.3 4,1 0.7,-0.1 -0.4,3.2 -1.4,1.3 0,1 -1.1,-0.6 z\",\n                    \"JO\" : \"m 404.13,156.59 0.2,-0.2 -0.2,-0.1 -0.1,0 0.1,-0.2 0.2,0 0.1,-0.9 0,-1.8 0.3,-0.3 2,1 3.8,-2.3 0.6,1.9 0.1,0.8 -4.2,1.3 2,2.1 -3.7,2.7 -2.1,-0.3 0.1,-0.4 -0.1,-0.1 0.4,-1.8 z\",\n                    \"SY\" : \"m 410.53,151.79 -3.8,2.3 -2,-1 0.3,-0.4 -0.1,-1 1.5,-1.7 -1.3,-0.9 -0.1,-1.7 0,-1.1 1.4,-2 3.1,-0.1 2.9,0.3 4.7,-1.3 0.3,0.5 -1.9,1.3 -0.3,3.8 -1,1 z\",\n                    \"MC\" : \"m 350.53,128.69 0,0.1 -0.1,0 0.1,-0.1 z\",\n                    \"AL\" : \"m 376.43,135.29 0,0 0,-0.1 z m -3,-2.8 0,-0.3 0,-0.2 0.6,-0.8 0.7,0.3 0.8,0.8 0.2,0.7 -0.3,0.8 0.4,1 0,0.4 0.2,0 0.2,0 0.2,0 -0.1,0.1 0.1,0 0,0.1 -0.1,0.1 0.1,0 0,0.1 0.1,0.1 0,0.1 0,-0.1 -1.2,2 -0.7,0.3 -1.4,-2.2 0.2,-2.7 -0.1,-0.3 z m 0,-0.4 0,0 -0.1,0 z\",\n                    \"UY\" : \"m 234.53,282.19 -0.9,1 0.2,0.9 0,0.2 0.3,0.2 -0.8,1.4 -2.2,1.2 -2.3,0 -3.3,-1 -1,-1.2 0.3,-3.1 0,-1.2 1.2,-3.6 1.5,-0.2 1.5,2.1 0.8,-0.5 z\",\n                    \"CNM\" : \"m 401.43,148.19 0,0 0,0 -0.2,0 0,0 z m -2.7,-0.3 0,0 0,0.1 0.1,-0.1 0,0 0,0.1 z m 0.2,0 0,0 0,0 0.1,0 0,0 z m 1.9,0.3 0,0.1 0,0 -0.5,-0.3 -1.3,-0.1 0,0 1.2,0 z\",\n                    \"MN\" : \"m 561.33,119.09 0.7,-0.2 -0.3,-0.3 1.5,0 2.6,2.6 -0.4,0.8 -2.7,-0.3 -3.2,1 -1.8,2 -2.1,0.2 -1.8,1.5 -3.1,-0.8 -1.1,1.5 1,1.7 -4.7,2.9 -5.2,0.4 -3,1.2 -2.8,0 -3.3,-1 -0.7,-0.7 -10.1,-0.5 -1.9,-3.7 -3.6,-1.5 -5,-0.6 0.3,-3.3 -1.4,-2.6 -2.4,-0.8 -2.1,-1.5 -0.3,-1.4 8.7,-4.2 3.6,0.7 0.7,1.4 5.2,0.7 1.9,-2 -1,-1.2 2.1,-2.9 6.3,2.1 0.2,1.8 2.7,1.2 3.1,-0.9 5,1.4 1.2,1.5 4.2,0.5 4.4,-1.2 2.4,-1.7 2.1,1 2.5,0.2 -2.3,4.1 0.7,1.1 z\",\n                    \"RW\" : \"m 391.83,222.89 -0.2,-0.1 0,-0.3 0.9,-0.9 -0.3,-0.6 0.3,-0.3 0.4,-0.3 0.7,0.2 1,-0.8 0.7,1 -0.5,1.5 -1.3,0.5 z\",\n                    \"SO\" : \"m 416.53,210.19 4,-1.9 1.8,0.1 5.8,-5.9 1.9,-2.8 0,-3.4 4.5,-1.1 -0.9,4.5 -5.5,9.6 -3.7,3.8 -4.9,3.5 -3.7,4.4 -1.1,-1.6 0,-7 z\",\n                    \"BO\" : \"m 204.03,248.89 -0.1,-0.3 0.3,0.3 -0.1,0 z m -0.8,2.5 -0.3,-0.4 1.2,-1.5 0.9,-0.4 -1.5,-1.6 0.9,-2.6 -0.4,-1 0.8,-2.2 -1.7,-3 2.4,0 3.2,-2 2.3,-0.5 0.1,2.9 1.9,2.5 2.5,0.4 2.4,1.7 2.6,0.5 0.6,4.8 3.2,0.1 0.2,1.8 1.6,1.8 -1.2,3.9 -1.8,-1.7 -5.1,0.7 -0.9,1.8 -0.8,3.4 -2.4,-0.5 -0.8,1.7 -0.5,-1.3 -3.1,-0.8 -1.9,2 -1.3,0 -0.6,-3 -1.1,-1.7 0.6,-2 -1,-1 z\",\n                    \"CM\" : \"m 361.73,213.69 -3.7,-0.3 0,0.2 -2.6,0 -0.4,-0.3 -0.3,-2.9 -2,-1.8 0.5,-1.9 3.3,-2.5 1.4,1.3 1.8,-3.6 4.7,-7.4 -1.2,-1.7 0.5,-0.1 -0.1,0.4 0.4,-0.1 1.3,2.7 -0.2,1.5 1.2,1.5 -2.9,0 -0.4,0.7 2.3,2.2 0.6,1.8 -2.1,2.9 1.5,4.3 1.8,1.8 0.2,1.1 -0.1,1 -3,-0.9 z m 2.1,-21 0,0.1 0,-0.1 z\",\n                    \"CG\" : \"m 361.73,213.69 2.5,-0.1 3,0.9 0.1,-1 0.7,-2.3 1.7,-0.5 2.2,0.5 -1,2.5 -0.6,5.1 -2.9,3 -0.1,2.3 -2.6,2.8 -0.9,-1 -2.5,0.7 -0.6,-0.5 -1.4,1.2 -0.4,-0.8 -1.3,-1.2 1.3,-0.5 -0.5,-2.6 1.7,-0.8 3.2,1.1 0.7,-3.6 -1.2,-0.7 1.2,-2.2 -2.4,-0.6 z\",\n                    \"EH\" : \"M 319.73047,163.78906 319.67383,164 H 311.125 l -0.89453,1.78906 -1.70117,1.10156 -0.69922,2.89844 -1.40039,1.40039 -2.69922,5.20117 -0.20117,1.09961 0.10156,0.19922 0.19922,-1.09961 h 7.59961 v -3.40039 l 1.90039,-0.90039 v -5.09961 h 6.30078 l 0.0996,-2.69922 z\",\n                    \"RS\" : \"m 373.03,129.19 0.4,-3.2 -0.7,0.1 0,-0.7 -0.2,-1.8 1.2,-0.6 1.3,0.1 2.4,2.3 -0.2,0.9 2.5,1.3 -0.6,1 1.1,1.6 -1.1,1.8 -0.8,0 -0.7,0.2 0.3,-1 -1.9,-1.4 -0.8,1 -1.4,-0.8 z\",\n                    \"ME\" : \"m 373.03,129.19 0.8,0.8 1.4,0.8 -0.6,0.3 0.1,0.4 -0.7,-0.3 -0.6,0.8 0,0.1 -0.1,0 -0.4,0 0.5,0.4 -0.1,0.3 0.1,0.3 -1.2,-1 -0.5,-0.3 -0.1,-0.2 0,-0.1 0,-1 z\",\n                    \"TG\" : \"m 338.03,196.79 1.3,3.7 0.1,5.4 -0.4,0.1 -0.5,0.2 -1.2,-1.5 -0.3,-6.4 -1,-1.8 1.2,0.3 z\",\n                    \"LA\" : \"m 542.13,189.59 -1.3,0.8 -3.1,-0.1 0.8,-2.7 -1.7,-1.6 0.2,-1.6 -1.6,-1.9 -1.2,-0.2 -1.5,1.2 -1,-0.8 -1.8,1.5 0.2,-4 -1.5,0 -0.7,-1.6 1.2,-2 0.9,-0.5 1,0.9 -0.4,-2.3 1.2,-0.3 1.6,1.7 0.3,1.4 1.8,-0.2 1.7,1.8 -2.1,1.5 1.7,1 3.4,3.5 2.2,3.4 z\",\n                    \"AF\" : \"m 479.73,143.39 -1,0.3 0.3,0.2 -3.8,0.4 -2.7,1.7 0.9,1.9 -1.1,2.4 -2,0.1 0.6,1.5 -1.5,0.5 -0.4,2.5 -2.3,0.2 -3.4,1.9 -0.3,2.3 -4,0.9 -3.1,0 -3.1,-1 1.8,-2.1 -0.2,-1.1 -1.7,-0.2 -0.5,-3.3 1.4,-5.5 1.9,1 4.2,-2.4 0.6,-1.8 1.9,-1.1 1.4,0.5 1.4,0.3 1,0 2.9,0.2 1.6,-0.9 0.9,-1.8 2,1 0,2.6 3.2,-1.7 z\",\n                    \"UA\" : \"m 378.73,117.59 0.3,-0.7 0.4,-1 0.2,-1.1 2.8,-2.5 -0.9,-2.5 1.5,-0.9 2.6,-0.1 2.9,0.8 3.9,0.6 2.3,-0.5 0.8,-1.3 1.6,-0.1 3.9,-0.6 1.2,1.5 -0.5,1.3 1.7,0.1 1.1,2.2 3.4,-0.2 3.4,1.4 1.8,1.5 -0.8,1.2 0.1,2.3 -1.8,-0.1 -1.2,1.8 -4.4,1.1 -2.1,1.2 1.5,2.5 -3.1,1.7 -2.1,-2.9 1.7,-0.7 -3.9,-0.7 1.2,-0.6 -2.3,-0.4 -2.6,2.4 -0.2,1 -1.7,-0.1 -1.1,-0.5 1.4,-2.4 2.2,0.2 -1.9,-2.8 0.3,-0.8 -2.9,-1.4 -2.2,0.4 -2.6,0.9 -4.5,-0.1 -0.5,-0.4 z m 15.3,4.9 0.5,0.7 0.2,-0.2 -0.6,-0.6 z m 7.4,0.7 1.8,1 -0.3,-0.9 -1.2,-0.6 z\",\n                    \"SK\" : \"m 379.43,115.89 -0.4,1 -0.3,0.7 -3.2,-0.3 -1.1,0.9 -4,1 -1.3,-0.6 -0.6,-0.9 0.2,-0.6 2.2,-1.2 1.4,-1.1 5.8,0.4 z\",\n                    \"JK\" : \"m 485.23,147.19 -1.4,0.9 -0.5,-1.2 1.1,0.4 z\",\n                    \"BG\" : \"m 391.03,128.69 -1.7,3.1 0.6,1 -1.8,-0.2 -1.4,0.8 -2.1,1.1 -1.4,-0.8 -3,0.6 0.1,-1 -1.2,-1.3 1.1,-1.8 -1.1,-1.6 0.6,-1 1.2,0.8 3.9,0.5 3.2,-1.2 z\",\n                    \"QA\" : \"m 433.63,169.69 -0.2,-1.5 1.6,-0.8 -0.7,2.6 -0.4,0.1 z\",\n                    \"LI\" : \"m 354.53,120.39 0.2,0.3 -0.1,0.2 -0.2,-0.1 z\",\n                    \"AT\" : \"m 354.63,120.89 0.1,-0.2 -0.2,-0.3 0.3,-0.4 -0.2,-0.2 0.2,0 0.1,-0.1 2.4,0.3 2.3,-0.7 1.6,0.5 -0.5,-1.5 2,-1.6 1.7,0.4 0.5,-0.9 3.8,0.9 -0.2,0.6 0.6,0.9 -1.1,0.6 -0.9,2.1 -3,1.2 -1.6,-0.4 -2.5,-0.4 -0.4,-0.9 -3.3,0.5 -0.7,0.1 z\",\n                    \"SZ\" : \"m 397.43,268.29 0.2,0.6 0.2,1.2 -1.9,0.7 -0.6,-1.6 1.1,-1.4 z\",\n                    \"HU\" : \"m 378.73,117.59 0.9,0.7 0.5,0.4 -1.7,1.1 -1.6,2.9 -1.8,0.4 -1.3,-0.1 -1.2,0.6 -3,-0.1 -1.6,-1.3 -0.5,-0.9 -0.3,0 0.9,-2.1 1.1,-0.6 1.3,0.6 4,-1 1.1,-0.9 z\",\n                    \"RO\" : \"m 379.73,127.59 -2.5,-1.3 0.2,-0.9 -2.4,-2.3 1.8,-0.4 1.6,-2.9 1.7,-1.1 4.5,0.1 2.6,-0.9 0.8,0.3 2.4,3.7 -0.1,2.8 1.1,0.5 1.7,0.1 -2,2.1 -0.1,1.3 -3,-1 -3.2,1.2 -3.9,-0.5 z\",\n                    \"NE\" : \"m 343.23,195.39 -1.5,-1.3 -0.8,0.9 -0.4,-1.3 -2.3,-0.9 -1.5,-3.6 2.1,-0.7 4.2,-0.2 1.3,-2 0.1,-5.4 3,-0.6 3.2,-2.8 8.6,-5.3 2.9,0.7 1.4,1.1 1.5,-0.8 0.3,3.1 1.6,2.2 -0.5,0.9 -0.5,5.9 -3.9,4.9 0.3,1.3 -2.1,1.3 -2,-0.6 -2.5,0.2 -1,0.8 -3.4,-1 -1.7,0.7 -2.8,-1.7 -2.6,0.8 z\",\n                    \"LU\" : \"m 348.43,114.99 -0.7,0 -0.3,-0.2 -0.2,-0.9 0.8,-0.6 0.7,0.8 z\",\n                    \"AD\" : \"m 339.03,131.39 0.6,-0.1 -0.1,0.3 -0.3,0.2 z\",\n                    \"CI\" : \"m 331.13,199.69 0.4,2.4 -1.4,2.6 0.7,3.3 -5.7,0.2 -3.3,1.3 0.1,-2.8 -2.1,-1.3 0.2,-2 1.2,-3.6 -0.2,-1.4 3.3,-0.2 1.4,-0.3 1.6,1.4 2.8,-0.5 z m -0.8,8.4 -0.3,-0.1 0.3,0 z\",\n                    \"LR\" : \"m 320.03,203.39 -0.2,2 2.1,1.3 -0.1,2.8 -3.3,-1.5 -4.2,-3.4 1.7,-1.6 0.6,-1.4 1.5,0.3 0.7,2.2 z\",\n                    \"BN\" : \"m 556.53,208.59 0.2,-0.1 0,-0.1 0.4,1.2 z m -2,0.4 1.1,-0.2 0.8,-0.3 -0.7,1.6 z\",\n                    \"IQ\" : \"m 429.23,158.99 -0.8,-0.2 -0.3,0.1 -1.6,0.1 -1.1,1.8 -3.6,-0.2 -5,-3.9 -3.1,-1.8 -2.5,-0.4 -0.1,-0.8 -0.6,-1.9 3.7,-2 1,-1 0.3,-3.8 1.9,-1.3 0.7,-0.5 3.9,0.4 1,2.6 2,0.4 -1.8,3.9 1.7,2.2 2.1,1.2 0.9,1.3 -0.3,1.6 z\",\n                    \"GE\" : \"m 422.43,134.39 -1.5,0.1 -1.5,0.3 -1.2,-1.1 -2.4,0.2 -0.1,-2.6 -2.9,-1.8 5.5,0.6 2.1,1.4 1.7,-0.4 3.1,1.9 0.1,1.9 z\",\n                    \"GM\" : \"m 304.23,192.79 -0.1,-0.6 0.5,-0.4 3.2,-0.4 -1.8,1.2 z\",\n                    \"CH\" : \"m 353.93,119.39 0,0 0,0 0,0 0.6,0.4 0.1,0 0.2,0.2 -0.3,0.4 -0.1,0.4 0.2,0.1 1,0.5 0.7,-0.1 -0.9,1.2 -2.2,0.7 -1.5,-0.4 -2,0.8 -0.5,-0.5 0.1,-0.7 -0.3,-0.3 -0.5,0.4 -0.3,0.2 -0.2,-0.7 2.8,-2.4 1.7,0 z\",\n                    \"TD\" : \"m 364.03,192.99 0.6,-0.2 -0.8,-0.1 0,0 -0.2,-0.1 0.1,0.1 -0.5,0.1 -0.9,-1.3 -0.3,-1.3 3.9,-4.9 0.5,-5.9 0.5,-0.9 -1.6,-2.2 -0.3,-3.1 1.9,-0.9 15.3,7.9 0,7.4 -1.7,0.1 -1.1,3 -0.9,0.7 0.3,2 1.2,3.5 -0.7,-0.1 -3.9,3.5 -2.6,0.3 -0.9,1.8 -3.5,1 -2.5,0 -0.6,-1.8 -2.3,-2.2 0.4,-0.7 2.9,0 -1.2,-1.5 0.2,-1.5 z\",\n                    \"KV\" : \"m 375.73,132.99 -0.2,-0.7 -0.8,-0.8 -0.1,-0.4 0.6,-0.3 0.8,-1 1.9,1.4 -0.3,1 -0.9,0.1 z\",\n                    \"LB\" : \"m 403.53,152.39 0.9,-1.7 0.7,-1.6 1.3,0.9 -1.5,1.7 -0.7,0.7 z\",\n                    \"DJ\" : \"m 418.53,196.79 -1.9,0.1 -0.3,-0.3 0.2,-0.2 -0.2,-0.2 -0.1,-0.5 1.2,-1.8 0.6,0.2 0.8,-0.6 0.5,1.4 -0.2,0.9 z\",\n                    \"BI\" : \"m 393.13,226.19 -0.6,-1 -0.3,-1.1 0,-0.5 -0.4,-0.7 1.7,-0.1 1.3,-0.5 0.5,1.6 z\",\n                    \"SR\" : \"m 231.73,213.29 -2.6,-0.3 -1,1.1 -3,-4.3 1.6,-2.5 0.5,-1 5.6,0.4 -0.2,0.9 -0.6,0.8 0.9,2.8 z\",\n                    \"IL\" : \"m 401.83,156.19 1.2,-2.1 0.5,-1.7 0.7,0 0.7,-0.7 0.1,1 -0.3,0.4 -0.3,0.3 0,1.8 -0.4,0.5 0.1,0.4 -0.1,0.2 0.1,0 -0.1,0.2 0.1,0.1 -0.5,1.4 -0.4,1.8 -0.1,0.2 0,0 -0.1,-0.5 z\",\n                    \"ML\" : \"m 325.73,197.89 -1.4,0.3 -3.3,0.2 -0.8,-2.3 -1.5,-2.2 -2.9,1.1 -1.3,-0.9 -1.4,-2.6 -0.3,-2 1,-1.5 1.9,0.2 10,-0.1 -2,-18.9 3.3,0 11.5,7.8 1.4,1.8 2.5,0.8 -0.2,1.3 2.2,0 -0.1,5.4 -1.3,2 -4.2,0.2 -2.1,0.7 -1.8,-0.3 -2.7,1.8 -1.4,0.2 -1.3,1.7 -1,-0.5 -1,2.4 -1.1,0.4 z\",\n                    \"SN\" : \"m 304.23,194.19 -0.1,-0.9 0.1,-0.5 1.8,-0.2 1.8,-1.2 -3.2,0.4 -1.1,-2.6 1.1,-1.8 0.4,-1.2 3.8,-0.4 4,3.7 0.3,2 1.4,2.6 -1.9,0.1 -2.6,-0.7 -2.8,0 z\",\n                    \"GN\" : \"m 314.53,194.09 1.3,0.9 2.9,-1.1 1.5,2.2 0.8,2.3 0.2,1.4 -1.2,3.6 -1.2,0.7 -0.7,-2.2 -1.5,-0.3 -1.9,-2.9 -2.4,0.3 -1.5,1.5 -1,-1.5 -2.3,-2.2 0.6,-1 1.9,-0.4 0,-1.9 2.6,0.7 z\",\n                    \"ZW\" : \"m 384.63,251.99 2.8,0.5 0.6,-0.2 2.1,-2.2 0,0 1.2,-0.6 0.2,-0.9 3,-0.8 4.9,2 0.1,3.3 -0.5,2.2 0.5,1.1 -1.2,2.5 -2.1,2.2 -1.8,-0.1 -1.9,-0.3 -2.6,-1.2 -0.6,-2.2 -3,-2 z\",\n                    \"PL\" : \"m 373.83,102.19 -0.4,0.5 0.7,-0.5 5.6,0.3 0.2,0 1.3,0.5 0,0.6 0.8,3.3 -1.4,0.9 0.9,2 0.9,2.5 -2.8,2.5 -0.2,1.1 -1.3,-0.7 -5.8,-0.4 -0.5,-0.9 -4.1,-1.7 -3.1,-0.7 -0.3,-4.4 -1,-0.7 0.3,-2.2 0.7,-0.4 -0.8,-0.1 -0.1,-0.1 0.1,0 3.7,-1 0.8,-0.7 3.3,-0.7 0.6,1.1 1.9,-0.1 z\",\n                    \"MK\" : \"m 376.43,135.29 0,0 0,0.1 z m 2.7,-3.3 1.2,1.3 -0.1,1 -2,0.5 -1.5,0.6 -0.3,-0.4 0,0.3 0,-0.1 0,0 -0.2,0 -0.2,0 0.1,-0.4 -0.3,0 -0.4,-1 0.3,-0.8 1,-0.7 0.9,-0.1 0.7,-0.2 z\",\n                    \"PY\" : \"m 232.43,264.39 -0.3,0.8 -0.4,2 0.1,0.2 -0.1,0.1 -0.3,2.2 -1.9,1.6 -5.4,-0.2 2,-3.9 -4.8,-2.9 -1.8,-0.4 -3.2,-3.1 0.8,-3.4 0.9,-1.8 5.1,-0.7 1.8,1.7 0.7,1.6 -0.3,2.2 3,0.1 1.5,1.1 0.4,2.6 z\",\n                    \"BY\" : \"m 381.53,109.79 -0.9,-2 1.4,-0.9 -0.8,-3.3 1.8,0.1 2,-1.1 0.8,-1.7 1.7,-1 -0.3,-0.9 1.9,-0.4 1.1,-0.9 5.2,1.4 1.7,4.8 1.8,1 -2.8,1.1 1,2.3 -1.6,0.1 -0.8,1.3 -2.3,0.5 -3.9,-0.6 -2.9,-0.8 -2.6,0.1 z\",\n                    \"CZ\" : \"m 372.33,114.79 -1.4,1.1 -2.2,1.2 -3.8,-0.9 -0.5,0.9 -1.7,-0.4 -2.7,-2.4 0.2,-1.6 4.4,-1.2 3.1,0.7 4.1,1.7 z\",\n                    \"BF\" : \"m 338.03,196.79 -0.8,0 -1.2,-0.3 -5,0.3 0.1,2.9 -1,-0.9 -2.8,0.5 -1.6,-1.4 0.7,-3 1.1,-0.4 1,-2.4 1,0.5 1.3,-1.7 1.4,-0.2 2.7,-1.8 1.8,0.3 1.5,3.6 2.3,0.9 0.4,1.3 -1.9,0.9 z\",\n                    \"NA\" : \"m 381.03,251.69 1.6,-0.3 2,0.6 -3.2,1.3 -0.5,-0.9 -4.5,0.6 0.1,7.2 -2,0.1 0,5.5 0,7.5 -1.6,1.1 -3.3,-0.5 -0.6,-1.4 -1.2,1.2 -2.2,-2.6 -1.4,-5.6 -0.4,-4.6 -1.9,-2.9 -1.6,-3.5 -1,-1.1 -0.5,-2.5 2.7,-0.6 1.5,0.9 8.6,0 0.6,0.7 3.9,0.5 z\",\n                    \"LY\" : \"m 365.03,173.19 -1.5,0.8 -1.4,-1.1 -2.9,-0.7 -0.8,-1.6 -2.9,-1.1 -1.2,-2.6 0.8,-0.8 0,-5.4 -0.6,-2.3 1.4,-1.4 -0.3,-1.1 2.8,-2.2 -0.1,-1.5 1.6,0.8 1.9,-0.2 3.5,1.1 1.7,2.3 2.5,0.4 3.3,1.8 1.3,-0.5 0.3,-2.7 1.2,-1.7 2.1,-0.8 2.8,0.7 0,0.6 3.6,0.8 0.3,0.6 -0.9,3.1 0.6,2.1 0,14.6 0,4 -1.9,0 0,1 -15.3,-7.9 z\",\n                    \"TN\" : \"m 358.33,152.19 0.1,1.5 -2.8,2.2 0.3,1.1 -1.4,1.4 -0.9,-3.8 -1.4,-1 -1.6,-2.9 1.4,-1.6 0.3,-3.9 0.4,-1.1 2.2,-0.9 2.7,4.6 -1.9,2 0.4,1.3 1.4,-0.2 z\",\n                    \"BT\" : \"m 506.53,164.49 2.5,-2.2 2.7,1.3 0.9,1.7 -4.4,0.4 z\",\n                    \"MD\" : \"m 390.33,124.69 0.1,-2.8 -2.4,-3.7 -0.8,-0.3 2.2,-0.4 2.9,1.4 -0.3,0.8 1.9,2.8 -2.2,-0.2 z\",\n                    \"SS\" : \"m 401.33,209.69 -0.9,0.9 -5.1,0.5 -2,-2 -2.7,0.5 -1.8,-1.5 -1.9,-1.9 -0.1,-1.1 -2,-1.3 -2.2,-2.6 1.7,-3.1 1.4,-0.2 1.4,1.7 4.4,0.4 2.2,-1.8 2.4,0.9 2.2,-2.4 -0.6,-1.9 2.2,-0.4 -0.1,2.7 1.7,2.6 -0.2,2 -1.4,-0.1 -0.3,1.3 1.2,0.3 2,1.9 2.3,3.9 -1,-0.8 z\",\n                    \"BW\" : \"m 384.63,251.99 1.7,3.3 3,2 0.6,2.2 2.6,1.2 -2.2,0.9 -2.3,2 -0.3,1.3 -1.9,0.9 -0.5,1.8 -1.5,0.4 -3.4,-1.1 -0.6,1.4 -2,1.8 -1.9,0.1 0.3,-1.6 -1.7,-2.8 0,-5.5 2,-0.1 -0.1,-7.2 4.5,-0.6 0.5,0.9 z\",\n                    \"BS\" : \"m 191.33,169.99 -1.3,-1.4 0,0 0,0 0.5,0.3 0.8,1.1 z m 0,0 0.8,0.9 0.5,2.1 4.4,1.5 -4,-1 -2.2,-1.6 1.1,-1.1 -0.6,-0.8 z m -1.3,-1.4 -1.6,-1.2 -1.4,1.5 0.7,2.9 -1.3,-1.9 0.1,-1.1 1.9,-1.9 1.6,1.7 0,0 z\",\n                    \"NZ\" : \"m 661.13,313.49 -2.7,-0.1 -0.2,1.4 -0.8,-2.2 -1.8,0.1 -0.6,-1 0.9,-1.6 2.7,-2.6 2.6,-1.1 2.7,-2.2 1.9,-3.9 1.2,-0.9 0.7,1.8 1.4,-0.9 0.7,2.2 -3.4,4.3 -2.1,1.3 -1.3,3.3 z m 12.3,-12.7 -1.6,1.1 -1.2,-0.7 1.2,-2.3 -2.8,-2 1.6,-1.3 0.4,-2.3 -0.9,-2.5 -2.4,-3.1 1.5,-0.5 2.4,2.7 1.4,1.1 0.2,2 2.8,0.7 2.2,-0.5 -1.4,3 -0.9,-0.1 z\",\n                    \"CU\" : \"m 188.73,178.29 -3,-0.4 -1.1,-1.8 -2.4,-1 -2.6,-0.2 -0.1,-1 -1.7,-0.1 -3.3,1.9 0.2,-1.2 2.2,-1.3 2.3,-0.4 3.8,0.3 1.6,1.4 0.9,-0.3 0.8,0 3.4,2.7 3.5,1.1 0.9,1.1 -6.6,0.5 z\",\n                    \"EC\" : \"m 182.53,224.19 1,-1.4 -2.1,-0.6 0,-2.4 1.6,-2.1 -0.1,-1.3 2.5,-1.4 2.6,1.5 2.2,0.4 1.9,1.1 -0.5,2.7 -2.1,2 -3.2,1.5 -1.4,3.1 -2.8,-1.8 z\",\n                    \"AU\" : \"m 617.53,306.39 -1.6,0 -1.5,-2.2 -1.1,-3.5 0,-1.4 -1.2,-0.9 4.1,2.5 3.8,-1.3 0.1,2.7 -0.5,3.3 -0.9,-0.8 z m -1.4,-54.7 0.6,2.8 5.1,2.8 0.9,3.5 2.3,0.9 0.2,1.8 1.9,1.1 1.4,2.1 1.4,-0.3 -0.6,1.6 1,3.3 0.1,3 -2.1,7.5 -1.4,0.9 -3.1,6.5 -0.4,3.5 -3.2,0.7 -3.5,2 -2.9,-0.5 0.1,-1.3 -2.8,2.1 -2.2,-1.1 -3.3,-0.7 -1.8,-1.9 -0.3,-2.6 -1.1,-1 -4.4,1.1 1.2,-1 -0.6,-1.5 2,-3.8 -1.2,0 -3.4,3.9 -0.9,-2.3 -1.7,-1.5 -0.3,-1.5 -3.7,-0.9 -2.1,-1.2 -4.1,0.5 -3.2,1.2 -2.1,-0.1 -4,2 -1.1,1.6 -6.8,0 -3,2.1 -2.4,0.4 -2.3,-0.5 -1.9,-1.6 1.3,-1.7 0.1,-3.5 -1.4,-3 0,-1.6 -1.5,-2.8 -0.3,-1.6 -2.1,-3.2 1.1,-0.5 1.1,1.9 0.1,-1.4 -1.3,-2.5 0.4,-3.9 4.3,-3.1 3.5,-0.8 6.2,-2 2.6,-2.9 -0.3,-1.8 1.5,-1.3 1.1,1.8 0.1,-2.6 1.6,0.3 0,-2.1 1.3,-1.2 2.9,-0.8 0.6,-1 2.4,1.9 2.8,0.8 -0.6,-1.3 3.1,-4.8 -1.8,-0.3 0.7,-1.1 2,0.1 0,2 2.4,-0.3 -0.2,-2.2 1.1,1.3 3.7,1.1 2.7,-0.9 0.8,1 -1.9,2.8 -0.9,2.2 2.1,1.6 4.7,2.3 1.9,1.6 1.6,-0.5 1.6,-4.6 -0.1,-5 0.7,-0.9 0.3,-3.6 0.9,1.1 1.8,5.8 0.8,1.5 1,-0.7 1.7,1.5 0.1,2.7 z\",\n                    \"VE\" : \"m 199.73,195.09 -1.1,0.5 0.6,1.7 -1,1.7 1.2,1.5 0.9,-1.3 -1.1,-2.1 2.8,-1.2 2.4,0 1.8,1.9 3.2,-0.4 2.9,1.1 1.6,-1 2.3,-0.3 0.9,1.4 2.8,1.3 -0.2,0.9 1.7,0.7 -1,1.4 0.4,1.3 -1.7,1.1 -0.3,1.2 1.2,1.4 -1.6,1.8 -5.9,0.5 1.2,2.9 1.3,0.1 -1.5,1.6 -2.7,1.7 -2.6,-1.1 -0.6,-2.2 -1.2,-0.9 1,-1 -1.1,-2.2 0.8,-3.1 -3.8,0.1 -1.3,-1.6 -3.8,-0.2 -0.5,-2.5 -1.2,-1.8 0.2,-2.1 1.8,-2.4 z\",\n                    \"SB\" : \"m 644.23,236.59 -1.9,-0.1 0,-2.4 -2.9,-1.9 -1.4,0.8 1.2,1.3 -2.6,-1.1 0.1,-1.7 3.3,0.7 2.3,1.4 0.5,1.4 1.7,-0.8 z\",\n                    \"MG\" : \"m 431.73,249.49 -4.3,14.5 -1,2.3 -3.7,1.2 -2.1,-1.2 -0.5,-3.1 -1.1,-2.4 0.6,-1.9 1.8,-2.6 -1,-5 1,-2.5 2.2,-0.4 3.6,-1.7 1.4,-3.3 0.9,0.1 1.1,-2.9 1.3,2.1 1,4.7 -1.6,0.2 z\",\n                    \"IS\" : \"m 290.23,72.39 4.3,-0.5 -0.3,-1.1 -2.3,-0.6 -2.6,0.2 1.5,-0.8 0.6,-1.4 1.9,0.4 -0.2,-1.2 2.4,1.5 -0.4,1.4 1.1,0.6 1.6,-2.4 3.4,-0.2 1.4,0.7 2.1,-0.7 -0.1,-1 3.6,1.4 -0.3,1 2,0.7 0.5,1.4 -2,2.1 -6.1,2.1 -1.9,1 -2.8,-0.5 -1.9,-1 -2.9,0.1 1.9,-1.7 -1.4,-1.3 z\",\n                    \"EG\" : \"m 403.13,159.99 -1.2,3.6 -2,-1.7 -1.4,-2.9 0.2,2.1 1.9,2.4 0.8,2.4 2.9,5.4 0.3,2.1 2.3,1.8 -10.8,0 -12,0 0,-14.6 -0.6,-2.1 0.9,-3.1 4.2,0.7 3.3,1.1 2.5,-1.4 2.3,0.1 1,0.8 4.1,-0.5 1.2,3.3 z\",\n                    \"KG\" : \"m 477.33,138.49 -2.7,0.6 -1.5,-0.9 -4.1,0.2 1.2,-1.6 1.9,0 1.4,0.2 2.8,-1.5 -2.7,-1.5 -0.6,0.7 -2.4,-1 1.5,-1.5 1.7,-1.4 3.2,1 1.3,-2 1.9,1 6.2,-0.1 3.4,1.6 -3.5,1.9 -0.5,0.7 -2.5,0.3 -2.1,1.4 -0.3,-0.7 -3,1.3 z m -5.8,-0.9 -0.3,0 0.2,0.2 0.2,-0.1 z m 2.2,-0.1 0,-0.2 -0.2,0.1 0,0.1 z m -1.2,-0.3 -0.4,-0.1 0.2,0.5 0.3,-0.1 z\",\n                    \"NP\" : \"m 505.03,163.39 0.1,2.3 -1.6,0.7 -2.9,-0.4 -2.4,-1.6 -3.5,-0.3 -5.2,-2.8 0.6,-1.9 1.3,-0.9 2,-0.3 2.8,2.4 1.1,-0.1 1.9,1.9 1.7,0.9 1.1,-0.4 z\"\n                }\n            }\n        }\n    });\n\n    return Mapael;\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mousewheel/LICENSE.txt",
    "content": "Copyright jQuery Foundation and other contributors\nhttps://jquery.org/\n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/jquery/jquery-mousewheel\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nAll files located in the node_modules and external directories are\nexternally maintained libraries used by this software which have their\nown licenses; we recommend you read them, as their terms may differ from\nthe terms above.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-mousewheel/jquery.mousewheel.js",
    "content": "/*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n(function (factory) {\n    if ( typeof define === 'function' && define.amd ) {\n        // AMD. Register as an anonymous module.\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS style for Browserify\n        module.exports = factory;\n    } else {\n        // Browser globals\n        factory(jQuery);\n    }\n}(function ($) {\n\n    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n        slice  = Array.prototype.slice,\n        nullLowestDeltaTimeout, lowestDelta;\n\n    if ( $.event.fixHooks ) {\n        for ( var i = toFix.length; i; ) {\n            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n        }\n    }\n\n    var special = $.event.special.mousewheel = {\n        version: '3.1.12',\n\n        setup: function() {\n            if ( this.addEventListener ) {\n                for ( var i = toBind.length; i; ) {\n                    this.addEventListener( toBind[--i], handler, false );\n                }\n            } else {\n                this.onmousewheel = handler;\n            }\n            // Store the line height and page height for this particular element\n            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n        },\n\n        teardown: function() {\n            if ( this.removeEventListener ) {\n                for ( var i = toBind.length; i; ) {\n                    this.removeEventListener( toBind[--i], handler, false );\n                }\n            } else {\n                this.onmousewheel = null;\n            }\n            // Clean up the data we added to the element\n            $.removeData(this, 'mousewheel-line-height');\n            $.removeData(this, 'mousewheel-page-height');\n        },\n\n        getLineHeight: function(elem) {\n            var $elem = $(elem),\n                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n            if (!$parent.length) {\n                $parent = $('body');\n            }\n            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n        },\n\n        getPageHeight: function(elem) {\n            return $(elem).height();\n        },\n\n        settings: {\n            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n            normalizeOffset: true  // calls getBoundingClientRect for each event\n        }\n    };\n\n    $.fn.extend({\n        mousewheel: function(fn) {\n            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n        },\n\n        unmousewheel: function(fn) {\n            return this.unbind('mousewheel', fn);\n        }\n    });\n\n\n    function handler(event) {\n        var orgEvent   = event || window.event,\n            args       = slice.call(arguments, 1),\n            delta      = 0,\n            deltaX     = 0,\n            deltaY     = 0,\n            absDelta   = 0,\n            offsetX    = 0,\n            offsetY    = 0;\n        event = $.event.fix(orgEvent);\n        event.type = 'mousewheel';\n\n        // Old school scrollwheel delta\n        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }\n        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }\n        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }\n        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n            deltaX = deltaY * -1;\n            deltaY = 0;\n        }\n\n        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n        delta = deltaY === 0 ? deltaX : deltaY;\n\n        // New school wheel delta (wheel event)\n        if ( 'deltaY' in orgEvent ) {\n            deltaY = orgEvent.deltaY * -1;\n            delta  = deltaY;\n        }\n        if ( 'deltaX' in orgEvent ) {\n            deltaX = orgEvent.deltaX;\n            if ( deltaY === 0 ) { delta  = deltaX * -1; }\n        }\n\n        // No change actually happened, no reason to go any further\n        if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n        // Need to convert lines and pages to pixels if we aren't already in pixels\n        // There are three delta modes:\n        //   * deltaMode 0 is by pixels, nothing to do\n        //   * deltaMode 1 is by lines\n        //   * deltaMode 2 is by pages\n        if ( orgEvent.deltaMode === 1 ) {\n            var lineHeight = $.data(this, 'mousewheel-line-height');\n            delta  *= lineHeight;\n            deltaY *= lineHeight;\n            deltaX *= lineHeight;\n        } else if ( orgEvent.deltaMode === 2 ) {\n            var pageHeight = $.data(this, 'mousewheel-page-height');\n            delta  *= pageHeight;\n            deltaY *= pageHeight;\n            deltaX *= pageHeight;\n        }\n\n        // Store lowest absolute delta to normalize the delta values\n        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n        if ( !lowestDelta || absDelta < lowestDelta ) {\n            lowestDelta = absDelta;\n\n            // Adjust older deltas if necessary\n            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n                lowestDelta /= 40;\n            }\n        }\n\n        // Adjust older deltas if necessary\n        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n            // Divide all the things by 40!\n            delta  /= 40;\n            deltaX /= 40;\n            deltaY /= 40;\n        }\n\n        // Get a whole, normalized value for the deltas\n        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);\n        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n        // Normalise offsetX and offsetY properties\n        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n            var boundingRect = this.getBoundingClientRect();\n            offsetX = event.clientX - boundingRect.left;\n            offsetY = event.clientY - boundingRect.top;\n        }\n\n        // Add information to the event object\n        event.deltaX = deltaX;\n        event.deltaY = deltaY;\n        event.deltaFactor = lowestDelta;\n        event.offsetX = offsetX;\n        event.offsetY = offsetY;\n        // Go ahead and set deltaMode to 0 since we converted to pixels\n        // Although this is a little odd since we overwrite the deltaX/Y\n        // properties with normalized deltas.\n        event.deltaMode = 0;\n\n        // Add event and delta to the front of the arguments\n        args.unshift(event, delta, deltaX, deltaY);\n\n        // Clearout lowestDelta after sometime to better\n        // handle multiple device types that give different\n        // a different lowestDelta\n        // Ex: trackpad = 3 and mouse wheel = 120\n        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n        return ($.event.dispatch || $.event.handle).apply(this, args);\n    }\n\n    function nullLowestDelta() {\n        lowestDelta = null;\n    }\n\n    function shouldAdjustOldDeltas(orgEvent, absDelta) {\n        // If this is an older event and the delta is divisable by 120,\n        // then we are assuming that the browser is treating this as an\n        // older mouse wheel event and that we should divide the deltas\n        // by 40 to try and get a more usable deltaFactor.\n        // Side note, this actually impacts the reported scroll distance\n        // in older browsers and can cause scrolling to be slower than native.\n        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n    }\n\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-ui/LICENSE.txt",
    "content": "Copyright jQuery Foundation and other contributors, https://jquery.org/\n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/jquery/jquery-ui\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nCopyright and related rights for sample code are waived via CC0. Sample\ncode is defined as all source code contained within the demos directory.\n\nCC0: http://creativecommons.org/publicdomain/zero/1.0/\n\n====\n\nAll files located in the node_modules and external directories are\nexternally maintained libraries used by this software which have their\nown licenses; we recommend you read them, as their terms may differ from\nthe terms above.\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-ui/jquery-ui.css",
    "content": "/*! jQuery UI - v1.12.1 - 2016-09-14\n* http://jqueryui.com\n* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css\n* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n/* Layout helpers\n----------------------------------*/\n.ui-helper-hidden {\n\tdisplay: none;\n}\n.ui-helper-hidden-accessible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n.ui-helper-reset {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\toutline: 0;\n\tline-height: 1.3;\n\ttext-decoration: none;\n\tfont-size: 100%;\n\tlist-style: none;\n}\n.ui-helper-clearfix:before,\n.ui-helper-clearfix:after {\n\tcontent: \"\";\n\tdisplay: table;\n\tborder-collapse: collapse;\n}\n.ui-helper-clearfix:after {\n\tclear: both;\n}\n.ui-helper-zfix {\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tposition: absolute;\n\topacity: 0;\n\tfilter:Alpha(Opacity=0); /* support: IE8 */\n}\n\n.ui-front {\n\tz-index: 100;\n}\n\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-disabled {\n\tcursor: default !important;\n\tpointer-events: none;\n}\n\n\n/* Icons\n----------------------------------*/\n.ui-icon {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-top: -.25em;\n\tposition: relative;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n}\n\n.ui-widget-icon-block {\n\tleft: 50%;\n\tmargin-left: -8px;\n\tdisplay: block;\n}\n\n/* Misc visuals\n----------------------------------*/\n\n/* Overlays */\n.ui-widget-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}\n.ui-accordion .ui-accordion-header {\n\tdisplay: block;\n\tcursor: pointer;\n\tposition: relative;\n\tmargin: 2px 0 0 0;\n\tpadding: .5em .5em .5em .7em;\n\tfont-size: 100%;\n}\n.ui-accordion .ui-accordion-content {\n\tpadding: 1em 2.2em;\n\tborder-top: 0;\n\toverflow: auto;\n}\n.ui-autocomplete {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcursor: default;\n}\n.ui-menu {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: block;\n\toutline: 0;\n}\n.ui-menu .ui-menu {\n\tposition: absolute;\n}\n.ui-menu .ui-menu-item {\n\tmargin: 0;\n\tcursor: pointer;\n\t/* support: IE10, see #8844 */\n\tlist-style-image: url(\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\");\n}\n.ui-menu .ui-menu-item-wrapper {\n\tposition: relative;\n\tpadding: 3px 1em 3px .4em;\n}\n.ui-menu .ui-menu-divider {\n\tmargin: 5px 0;\n\theight: 0;\n\tfont-size: 0;\n\tline-height: 0;\n\tborder-width: 1px 0 0 0;\n}\n.ui-menu .ui-state-focus,\n.ui-menu .ui-state-active {\n\tmargin: -1px;\n}\n\n/* icon support */\n.ui-menu-icons {\n\tposition: relative;\n}\n.ui-menu-icons .ui-menu-item-wrapper {\n\tpadding-left: 2em;\n}\n\n/* left-aligned */\n.ui-menu .ui-icon {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: .2em;\n\tmargin: auto 0;\n}\n\n/* right-aligned */\n.ui-menu .ui-menu-icon {\n\tleft: auto;\n\tright: 0;\n}\n.ui-button {\n\tpadding: .4em 1em;\n\tdisplay: inline-block;\n\tposition: relative;\n\tline-height: normal;\n\tmargin-right: .1em;\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttext-align: center;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n\t/* Support: IE <= 11 */\n\toverflow: visible;\n}\n\n.ui-button,\n.ui-button:link,\n.ui-button:visited,\n.ui-button:hover,\n.ui-button:active {\n\ttext-decoration: none;\n}\n\n/* to make room for the icon, a width needs to be set here */\n.ui-button-icon-only {\n\twidth: 2em;\n\tbox-sizing: border-box;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n}\n\n/* no icon support for input elements */\ninput.ui-button.ui-button-icon-only {\n\ttext-indent: 0;\n}\n\n/* button icon element(s) */\n.ui-button-icon-only .ui-icon {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -8px;\n\tmargin-left: -8px;\n}\n\n.ui-button.ui-icon-notext .ui-icon {\n\tpadding: 0;\n\twidth: 2.1em;\n\theight: 2.1em;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n\n}\n\ninput.ui-button.ui-icon-notext .ui-icon {\n\twidth: auto;\n\theight: auto;\n\ttext-indent: 0;\n\twhite-space: normal;\n\tpadding: .4em 1em;\n}\n\n/* workarounds */\n/* Support: Firefox 5 - 40 */\ninput.ui-button::-moz-focus-inner,\nbutton.ui-button::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n.ui-controlgroup {\n\tvertical-align: middle;\n\tdisplay: inline-block;\n}\n.ui-controlgroup > .ui-controlgroup-item {\n\tfloat: left;\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n.ui-controlgroup > .ui-controlgroup-item:focus,\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\n\tz-index: 9999;\n}\n.ui-controlgroup-vertical > .ui-controlgroup-item {\n\tdisplay: block;\n\tfloat: none;\n\twidth: 100%;\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n\ttext-align: left;\n}\n.ui-controlgroup-vertical .ui-controlgroup-item {\n\tbox-sizing: border-box;\n}\n.ui-controlgroup .ui-controlgroup-label {\n\tpadding: .4em 1em;\n}\n.ui-controlgroup .ui-controlgroup-label span {\n\tfont-size: 80%;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-left: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-top: none;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\n\tborder-right: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\n\tborder-bottom: none;\n}\n\n/* Spinner specific style fixes */\n.ui-controlgroup-vertical .ui-spinner-input {\n\n\t/* Support: IE8 only, Android < 4.4 only */\n\twidth: 75%;\n\twidth: calc( 100% - 2.4em );\n}\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\n\tborder-top-style: solid;\n}\n\n.ui-checkboxradio-label .ui-icon-background {\n\tbox-shadow: inset 1px 1px 1px #ccc;\n\tborder-radius: .12em;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label .ui-icon-background {\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 1em;\n\toverflow: visible;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\n\tbackground-image: none;\n\twidth: 8px;\n\theight: 8px;\n\tborder-width: 4px;\n\tborder-style: solid;\n}\n.ui-checkboxradio-disabled {\n\tpointer-events: none;\n}\n.ui-datepicker {\n\twidth: 17em;\n\tpadding: .2em .2em 0;\n\tdisplay: none;\n}\n.ui-datepicker .ui-datepicker-header {\n\tposition: relative;\n\tpadding: .2em 0;\n}\n.ui-datepicker .ui-datepicker-prev,\n.ui-datepicker .ui-datepicker-next {\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n.ui-datepicker .ui-datepicker-prev-hover,\n.ui-datepicker .ui-datepicker-next-hover {\n\ttop: 1px;\n}\n.ui-datepicker .ui-datepicker-prev {\n\tleft: 2px;\n}\n.ui-datepicker .ui-datepicker-next {\n\tright: 2px;\n}\n.ui-datepicker .ui-datepicker-prev-hover {\n\tleft: 1px;\n}\n.ui-datepicker .ui-datepicker-next-hover {\n\tright: 1px;\n}\n.ui-datepicker .ui-datepicker-prev span,\n.ui-datepicker .ui-datepicker-next span {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -8px;\n\ttop: 50%;\n\tmargin-top: -8px;\n}\n.ui-datepicker .ui-datepicker-title {\n\tmargin: 0 2.3em;\n\tline-height: 1.8em;\n\ttext-align: center;\n}\n.ui-datepicker .ui-datepicker-title select {\n\tfont-size: 1em;\n\tmargin: 1px 0;\n}\n.ui-datepicker select.ui-datepicker-month,\n.ui-datepicker select.ui-datepicker-year {\n\twidth: 45%;\n}\n.ui-datepicker table {\n\twidth: 100%;\n\tfont-size: .9em;\n\tborder-collapse: collapse;\n\tmargin: 0 0 .4em;\n}\n.ui-datepicker th {\n\tpadding: .7em .3em;\n\ttext-align: center;\n\tfont-weight: bold;\n\tborder: 0;\n}\n.ui-datepicker td {\n\tborder: 0;\n\tpadding: 1px;\n}\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tdisplay: block;\n\tpadding: .2em;\n\ttext-align: right;\n\ttext-decoration: none;\n}\n.ui-datepicker .ui-datepicker-buttonpane {\n\tbackground-image: none;\n\tmargin: .7em 0 0 0;\n\tpadding: 0 .2em;\n\tborder-left: 0;\n\tborder-right: 0;\n\tborder-bottom: 0;\n}\n.ui-datepicker .ui-datepicker-buttonpane button {\n\tfloat: right;\n\tmargin: .5em .2em .4em;\n\tcursor: pointer;\n\tpadding: .2em .6em .3em .6em;\n\twidth: auto;\n\toverflow: visible;\n}\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\n\tfloat: left;\n}\n\n/* with multiple calendars */\n.ui-datepicker.ui-datepicker-multi {\n\twidth: auto;\n}\n.ui-datepicker-multi .ui-datepicker-group {\n\tfloat: left;\n}\n.ui-datepicker-multi .ui-datepicker-group table {\n\twidth: 95%;\n\tmargin: 0 auto .4em;\n}\n.ui-datepicker-multi-2 .ui-datepicker-group {\n\twidth: 50%;\n}\n.ui-datepicker-multi-3 .ui-datepicker-group {\n\twidth: 33.3%;\n}\n.ui-datepicker-multi-4 .ui-datepicker-group {\n\twidth: 25%;\n}\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-left-width: 0;\n}\n.ui-datepicker-multi .ui-datepicker-buttonpane {\n\tclear: left;\n}\n.ui-datepicker-row-break {\n\tclear: both;\n\twidth: 100%;\n\tfont-size: 0;\n}\n\n/* RTL support */\n.ui-datepicker-rtl {\n\tdirection: rtl;\n}\n.ui-datepicker-rtl .ui-datepicker-prev {\n\tright: 2px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next {\n\tleft: 2px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\n\tright: 1px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next:hover {\n\tleft: 1px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\n\tclear: right;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\n\tfloat: left;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\n.ui-datepicker-rtl .ui-datepicker-group {\n\tfloat: right;\n}\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-right-width: 0;\n\tborder-left-width: 1px;\n}\n\n/* Icons */\n.ui-datepicker .ui-icon {\n\tdisplay: block;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tleft: .5em;\n\ttop: .3em;\n}\n.ui-dialog {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: .2em;\n\toutline: 0;\n}\n.ui-dialog .ui-dialog-titlebar {\n\tpadding: .4em 1em;\n\tposition: relative;\n}\n.ui-dialog .ui-dialog-title {\n\tfloat: left;\n\tmargin: .1em 0;\n\twhite-space: nowrap;\n\twidth: 90%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-dialog .ui-dialog-titlebar-close {\n\tposition: absolute;\n\tright: .3em;\n\ttop: 50%;\n\twidth: 20px;\n\tmargin: -10px 0 0 0;\n\tpadding: 1px;\n\theight: 20px;\n}\n.ui-dialog .ui-dialog-content {\n\tposition: relative;\n\tborder: 0;\n\tpadding: .5em 1em;\n\tbackground: none;\n\toverflow: auto;\n}\n.ui-dialog .ui-dialog-buttonpane {\n\ttext-align: left;\n\tborder-width: 1px 0 0 0;\n\tbackground-image: none;\n\tmargin-top: .5em;\n\tpadding: .3em 1em .5em .4em;\n}\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n\tfloat: right;\n}\n.ui-dialog .ui-dialog-buttonpane button {\n\tmargin: .5em .4em .5em 0;\n\tcursor: pointer;\n}\n.ui-dialog .ui-resizable-n {\n\theight: 2px;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-e {\n\twidth: 2px;\n\tright: 0;\n}\n.ui-dialog .ui-resizable-s {\n\theight: 2px;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-w {\n\twidth: 2px;\n\tleft: 0;\n}\n.ui-dialog .ui-resizable-se,\n.ui-dialog .ui-resizable-sw,\n.ui-dialog .ui-resizable-ne,\n.ui-dialog .ui-resizable-nw {\n\twidth: 7px;\n\theight: 7px;\n}\n.ui-dialog .ui-resizable-se {\n\tright: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-sw {\n\tleft: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-ne {\n\tright: 0;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-nw {\n\tleft: 0;\n\ttop: 0;\n}\n.ui-draggable .ui-dialog-titlebar {\n\tcursor: move;\n}\n.ui-draggable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable {\n\tposition: relative;\n}\n.ui-resizable-handle {\n\tposition: absolute;\n\tfont-size: 0.1px;\n\tdisplay: block;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable-disabled .ui-resizable-handle,\n.ui-resizable-autohide .ui-resizable-handle {\n\tdisplay: none;\n}\n.ui-resizable-n {\n\tcursor: n-resize;\n\theight: 7px;\n\twidth: 100%;\n\ttop: -5px;\n\tleft: 0;\n}\n.ui-resizable-s {\n\tcursor: s-resize;\n\theight: 7px;\n\twidth: 100%;\n\tbottom: -5px;\n\tleft: 0;\n}\n.ui-resizable-e {\n\tcursor: e-resize;\n\twidth: 7px;\n\tright: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-w {\n\tcursor: w-resize;\n\twidth: 7px;\n\tleft: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-resizable-sw {\n\tcursor: sw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\tbottom: -5px;\n}\n.ui-resizable-nw {\n\tcursor: nw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\ttop: -5px;\n}\n.ui-resizable-ne {\n\tcursor: ne-resize;\n\twidth: 9px;\n\theight: 9px;\n\tright: -5px;\n\ttop: -5px;\n}\n.ui-progressbar {\n\theight: 2em;\n\ttext-align: left;\n\toverflow: hidden;\n}\n.ui-progressbar .ui-progressbar-value {\n\tmargin: -1px;\n\theight: 100%;\n}\n.ui-progressbar .ui-progressbar-overlay {\n\tbackground: url(\"data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==\");\n\theight: 100%;\n\tfilter: alpha(opacity=25); /* support: IE8 */\n\topacity: 0.25;\n}\n.ui-progressbar-indeterminate .ui-progressbar-value {\n\tbackground-image: none;\n}\n.ui-selectable {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-selectable-helper {\n\tposition: absolute;\n\tz-index: 100;\n\tborder: 1px dotted black;\n}\n.ui-selectmenu-menu {\n\tpadding: 0;\n\tmargin: 0;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: none;\n}\n.ui-selectmenu-menu .ui-menu {\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding-bottom: 1px;\n}\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\n\tfont-size: 1em;\n\tfont-weight: bold;\n\tline-height: 1.5;\n\tpadding: 2px 0.4em;\n\tmargin: 0.5em 0 0 0;\n\theight: auto;\n\tborder: 0;\n}\n.ui-selectmenu-open {\n\tdisplay: block;\n}\n.ui-selectmenu-text {\n\tdisplay: block;\n\tmargin-right: 20px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-selectmenu-button.ui-button {\n\ttext-align: left;\n\twhite-space: nowrap;\n\twidth: 14em;\n}\n.ui-selectmenu-icon.ui-icon {\n\tfloat: right;\n\tmargin-top: 0;\n}\n.ui-slider {\n\tposition: relative;\n\ttext-align: left;\n}\n.ui-slider .ui-slider-handle {\n\tposition: absolute;\n\tz-index: 2;\n\twidth: 1.2em;\n\theight: 1.2em;\n\tcursor: default;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-slider .ui-slider-range {\n\tposition: absolute;\n\tz-index: 1;\n\tfont-size: .7em;\n\tdisplay: block;\n\tborder: 0;\n\tbackground-position: 0 0;\n}\n\n/* support: IE8 - See #6727 */\n.ui-slider.ui-state-disabled .ui-slider-handle,\n.ui-slider.ui-state-disabled .ui-slider-range {\n\tfilter: inherit;\n}\n\n.ui-slider-horizontal {\n\theight: .8em;\n}\n.ui-slider-horizontal .ui-slider-handle {\n\ttop: -.3em;\n\tmargin-left: -.6em;\n}\n.ui-slider-horizontal .ui-slider-range {\n\ttop: 0;\n\theight: 100%;\n}\n.ui-slider-horizontal .ui-slider-range-min {\n\tleft: 0;\n}\n.ui-slider-horizontal .ui-slider-range-max {\n\tright: 0;\n}\n\n.ui-slider-vertical {\n\twidth: .8em;\n\theight: 100px;\n}\n.ui-slider-vertical .ui-slider-handle {\n\tleft: -.3em;\n\tmargin-left: 0;\n\tmargin-bottom: -.6em;\n}\n.ui-slider-vertical .ui-slider-range {\n\tleft: 0;\n\twidth: 100%;\n}\n.ui-slider-vertical .ui-slider-range-min {\n\tbottom: 0;\n}\n.ui-slider-vertical .ui-slider-range-max {\n\ttop: 0;\n}\n.ui-sortable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-spinner {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tpadding: 0;\n\tvertical-align: middle;\n}\n.ui-spinner-input {\n\tborder: none;\n\tbackground: none;\n\tcolor: inherit;\n\tpadding: .222em 0;\n\tmargin: .2em 0;\n\tvertical-align: middle;\n\tmargin-left: .4em;\n\tmargin-right: 2em;\n}\n.ui-spinner-button {\n\twidth: 1.6em;\n\theight: 50%;\n\tfont-size: .5em;\n\tpadding: 0;\n\tmargin: 0;\n\ttext-align: center;\n\tposition: absolute;\n\tcursor: default;\n\tdisplay: block;\n\toverflow: hidden;\n\tright: 0;\n}\n/* more specificity required here to override default borders */\n.ui-spinner a.ui-spinner-button {\n\tborder-top-style: none;\n\tborder-bottom-style: none;\n\tborder-right-style: none;\n}\n.ui-spinner-up {\n\ttop: 0;\n}\n.ui-spinner-down {\n\tbottom: 0;\n}\n.ui-tabs {\n\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \"fixed\") */\n\tpadding: .2em;\n}\n.ui-tabs .ui-tabs-nav {\n\tmargin: 0;\n\tpadding: .2em .2em 0;\n}\n.ui-tabs .ui-tabs-nav li {\n\tlist-style: none;\n\tfloat: left;\n\tposition: relative;\n\ttop: 0;\n\tmargin: 1px .2em 0 0;\n\tborder-bottom-width: 0;\n\tpadding: 0;\n\twhite-space: nowrap;\n}\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\n\tfloat: left;\n\tpadding: .5em 1em;\n\ttext-decoration: none;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\n\tmargin-bottom: -1px;\n\tpadding-bottom: 1px;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\n\tcursor: text;\n}\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\n\tcursor: pointer;\n}\n.ui-tabs .ui-tabs-panel {\n\tdisplay: block;\n\tborder-width: 0;\n\tpadding: 1em 1.4em;\n\tbackground: none;\n}\n.ui-tooltip {\n\tpadding: 8px;\n\tposition: absolute;\n\tz-index: 9999;\n\tmax-width: 300px;\n}\nbody .ui-tooltip {\n\tborder-width: 2px;\n}\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd;\n\tbackground: #ffffff;\n\tcolor: #333333;\n}\n.ui-widget-content a {\n\tcolor: #333333;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd;\n\tbackground: #e9e9e9;\n\tcolor: #333333;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5;\n\tbackground: #f6f6f6;\n\tfont-weight: normal;\n\tcolor: #454545;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc;\n\tbackground: #ededed;\n\tfont-weight: normal;\n\tcolor: #2b2b2b;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff;\n\tbackground: #007fff;\n\tfont-weight: normal;\n\tcolor: #ffffff;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff;\n\tbackground-color: #ffffff;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n\tcolor: #777620;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899;\n\tbackground: #fddfdf;\n\tcolor: #5f3f3f;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\tfilter:Alpha(Opacity=70); /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\tfilter:Alpha(Opacity=35); /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url(\"images/ui-icons_444444_256x240.png\");\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url(\"images/ui-icons_444444_256x240.png\");\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url(\"images/ui-icons_555555_256x240.png\");\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url(\"images/ui-icons_ffffff_256x240.png\");\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url(\"images/ui-icons_777620_256x240.png\");\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url(\"images/ui-icons_cc0000_256x240.png\");\n}\n.ui-button .ui-icon {\n\tbackground-image: url(\"images/ui-icons_777777_256x240.png\");\n}\n\n/* positioning */\n.ui-icon-blank { background-position: 16px 16px; }\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa;\n\topacity: .003;\n\tfilter: Alpha(Opacity=.3); /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0px 0px 5px #666666;\n\tbox-shadow: 0px 0px 5px #666666;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-ui/jquery-ui.js",
    "content": "/*! jQuery UI - v1.12.1 - 2016-09-14\n* http://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.ui = $.ui || {};\n\nvar version = $.ui.version = \"1.12.1\";\n\n\n/*!\n * jQuery UI Widget 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: http://api.jqueryui.com/jQuery.widget/\n//>>demos: http://jqueryui.com/widget/\n\n\n\nvar widgetUuid = 0;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// Http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( $.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tcurrent = $( $.unique( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._on( options.element, {\n\t\t\t\"remove\": \"_untrackClassesElement\"\n\t\t} );\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName ).off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nvar widget = $.widget;\n\n\n/*!\n * jQuery UI Position 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/position/\n */\n\n//>>label: Position\n//>>group: Core\n//>>description: Positions elements relative to other elements.\n//>>docs: http://api.jqueryui.com/position/\n//>>demos: http://jqueryui.com/position/\n\n\n( function() {\nvar cachedScrollbarWidth,\n\tmax = Math.max,\n\tabs = Math.abs,\n\trhorizontal = /left|center|right/,\n\trvertical = /top|center|bottom/,\n\troffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n\trposition = /^\\w+/,\n\trpercent = /%$/,\n\t_position = $.fn.position;\n\nfunction getOffsets( offsets, width, height ) {\n\treturn [\n\t\tparseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),\n\t\tparseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )\n\t];\n}\n\nfunction parseCss( element, property ) {\n\treturn parseInt( $.css( element, property ), 10 ) || 0;\n}\n\nfunction getDimensions( elem ) {\n\tvar raw = elem[ 0 ];\n\tif ( raw.nodeType === 9 ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: 0, left: 0 }\n\t\t};\n\t}\n\tif ( $.isWindow( raw ) ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\n\t\t};\n\t}\n\tif ( raw.preventDefault ) {\n\t\treturn {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\toffset: { top: raw.pageY, left: raw.pageX }\n\t\t};\n\t}\n\treturn {\n\t\twidth: elem.outerWidth(),\n\t\theight: elem.outerHeight(),\n\t\toffset: elem.offset()\n\t};\n}\n\n$.position = {\n\tscrollbarWidth: function() {\n\t\tif ( cachedScrollbarWidth !== undefined ) {\n\t\t\treturn cachedScrollbarWidth;\n\t\t}\n\t\tvar w1, w2,\n\t\t\tdiv = $( \"<div \" +\n\t\t\t\t\"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>\" +\n\t\t\t\t\"<div style='height:100px;width:auto;'></div></div>\" ),\n\t\t\tinnerDiv = div.children()[ 0 ];\n\n\t\t$( \"body\" ).append( div );\n\t\tw1 = innerDiv.offsetWidth;\n\t\tdiv.css( \"overflow\", \"scroll\" );\n\n\t\tw2 = innerDiv.offsetWidth;\n\n\t\tif ( w1 === w2 ) {\n\t\t\tw2 = div[ 0 ].clientWidth;\n\t\t}\n\n\t\tdiv.remove();\n\n\t\treturn ( cachedScrollbarWidth = w1 - w2 );\n\t},\n\tgetScrollInfo: function( within ) {\n\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-x\" ),\n\t\t\toverflowY = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-y\" ),\n\t\t\thasOverflowX = overflowX === \"scroll\" ||\n\t\t\t\t( overflowX === \"auto\" && within.width < within.element[ 0 ].scrollWidth ),\n\t\t\thasOverflowY = overflowY === \"scroll\" ||\n\t\t\t\t( overflowY === \"auto\" && within.height < within.element[ 0 ].scrollHeight );\n\t\treturn {\n\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\n\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\n\t\t};\n\t},\n\tgetWithinInfo: function( element ) {\n\t\tvar withinElement = $( element || window ),\n\t\t\tisWindow = $.isWindow( withinElement[ 0 ] ),\n\t\t\tisDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,\n\t\t\thasOffset = !isWindow && !isDocument;\n\t\treturn {\n\t\t\telement: withinElement,\n\t\t\tisWindow: isWindow,\n\t\t\tisDocument: isDocument,\n\t\t\toffset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },\n\t\t\tscrollLeft: withinElement.scrollLeft(),\n\t\t\tscrollTop: withinElement.scrollTop(),\n\t\t\twidth: withinElement.outerWidth(),\n\t\t\theight: withinElement.outerHeight()\n\t\t};\n\t}\n};\n\n$.fn.position = function( options ) {\n\tif ( !options || !options.of ) {\n\t\treturn _position.apply( this, arguments );\n\t}\n\n\t// Make a copy, we don't want to modify arguments\n\toptions = $.extend( {}, options );\n\n\tvar atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,\n\t\ttarget = $( options.of ),\n\t\twithin = $.position.getWithinInfo( options.within ),\n\t\tscrollInfo = $.position.getScrollInfo( within ),\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\n\t\toffsets = {};\n\n\tdimensions = getDimensions( target );\n\tif ( target[ 0 ].preventDefault ) {\n\n\t\t// Force left top to allow flipping\n\t\toptions.at = \"left top\";\n\t}\n\ttargetWidth = dimensions.width;\n\ttargetHeight = dimensions.height;\n\ttargetOffset = dimensions.offset;\n\n\t// Clone to reuse original targetOffset later\n\tbasePosition = $.extend( {}, targetOffset );\n\n\t// Force my and at to have valid horizontal and vertical positions\n\t// if a value is missing or invalid, it will be converted to center\n\t$.each( [ \"my\", \"at\" ], function() {\n\t\tvar pos = ( options[ this ] || \"\" ).split( \" \" ),\n\t\t\thorizontalOffset,\n\t\t\tverticalOffset;\n\n\t\tif ( pos.length === 1 ) {\n\t\t\tpos = rhorizontal.test( pos[ 0 ] ) ?\n\t\t\t\tpos.concat( [ \"center\" ] ) :\n\t\t\t\trvertical.test( pos[ 0 ] ) ?\n\t\t\t\t\t[ \"center\" ].concat( pos ) :\n\t\t\t\t\t[ \"center\", \"center\" ];\n\t\t}\n\t\tpos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : \"center\";\n\t\tpos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : \"center\";\n\n\t\t// Calculate offsets\n\t\thorizontalOffset = roffset.exec( pos[ 0 ] );\n\t\tverticalOffset = roffset.exec( pos[ 1 ] );\n\t\toffsets[ this ] = [\n\t\t\thorizontalOffset ? horizontalOffset[ 0 ] : 0,\n\t\t\tverticalOffset ? verticalOffset[ 0 ] : 0\n\t\t];\n\n\t\t// Reduce to just the positions without the offsets\n\t\toptions[ this ] = [\n\t\t\trposition.exec( pos[ 0 ] )[ 0 ],\n\t\t\trposition.exec( pos[ 1 ] )[ 0 ]\n\t\t];\n\t} );\n\n\t// Normalize collision option\n\tif ( collision.length === 1 ) {\n\t\tcollision[ 1 ] = collision[ 0 ];\n\t}\n\n\tif ( options.at[ 0 ] === \"right\" ) {\n\t\tbasePosition.left += targetWidth;\n\t} else if ( options.at[ 0 ] === \"center\" ) {\n\t\tbasePosition.left += targetWidth / 2;\n\t}\n\n\tif ( options.at[ 1 ] === \"bottom\" ) {\n\t\tbasePosition.top += targetHeight;\n\t} else if ( options.at[ 1 ] === \"center\" ) {\n\t\tbasePosition.top += targetHeight / 2;\n\t}\n\n\tatOffset = getOffsets( offsets.at, targetWidth, targetHeight );\n\tbasePosition.left += atOffset[ 0 ];\n\tbasePosition.top += atOffset[ 1 ];\n\n\treturn this.each( function() {\n\t\tvar collisionPosition, using,\n\t\t\telem = $( this ),\n\t\t\telemWidth = elem.outerWidth(),\n\t\t\telemHeight = elem.outerHeight(),\n\t\t\tmarginLeft = parseCss( this, \"marginLeft\" ),\n\t\t\tmarginTop = parseCss( this, \"marginTop\" ),\n\t\t\tcollisionWidth = elemWidth + marginLeft + parseCss( this, \"marginRight\" ) +\n\t\t\t\tscrollInfo.width,\n\t\t\tcollisionHeight = elemHeight + marginTop + parseCss( this, \"marginBottom\" ) +\n\t\t\t\tscrollInfo.height,\n\t\t\tposition = $.extend( {}, basePosition ),\n\t\t\tmyOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );\n\n\t\tif ( options.my[ 0 ] === \"right\" ) {\n\t\t\tposition.left -= elemWidth;\n\t\t} else if ( options.my[ 0 ] === \"center\" ) {\n\t\t\tposition.left -= elemWidth / 2;\n\t\t}\n\n\t\tif ( options.my[ 1 ] === \"bottom\" ) {\n\t\t\tposition.top -= elemHeight;\n\t\t} else if ( options.my[ 1 ] === \"center\" ) {\n\t\t\tposition.top -= elemHeight / 2;\n\t\t}\n\n\t\tposition.left += myOffset[ 0 ];\n\t\tposition.top += myOffset[ 1 ];\n\n\t\tcollisionPosition = {\n\t\t\tmarginLeft: marginLeft,\n\t\t\tmarginTop: marginTop\n\t\t};\n\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\n\t\t\tif ( $.ui.position[ collision[ i ] ] ) {\n\t\t\t\t$.ui.position[ collision[ i ] ][ dir ]( position, {\n\t\t\t\t\ttargetWidth: targetWidth,\n\t\t\t\t\ttargetHeight: targetHeight,\n\t\t\t\t\telemWidth: elemWidth,\n\t\t\t\t\telemHeight: elemHeight,\n\t\t\t\t\tcollisionPosition: collisionPosition,\n\t\t\t\t\tcollisionWidth: collisionWidth,\n\t\t\t\t\tcollisionHeight: collisionHeight,\n\t\t\t\t\toffset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],\n\t\t\t\t\tmy: options.my,\n\t\t\t\t\tat: options.at,\n\t\t\t\t\twithin: within,\n\t\t\t\t\telem: elem\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tif ( options.using ) {\n\n\t\t\t// Adds feedback as second argument to using callback, if present\n\t\t\tusing = function( props ) {\n\t\t\t\tvar left = targetOffset.left - position.left,\n\t\t\t\t\tright = left + targetWidth - elemWidth,\n\t\t\t\t\ttop = targetOffset.top - position.top,\n\t\t\t\t\tbottom = top + targetHeight - elemHeight,\n\t\t\t\t\tfeedback = {\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\telement: target,\n\t\t\t\t\t\t\tleft: targetOffset.left,\n\t\t\t\t\t\t\ttop: targetOffset.top,\n\t\t\t\t\t\t\twidth: targetWidth,\n\t\t\t\t\t\t\theight: targetHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\telement: elem,\n\t\t\t\t\t\t\tleft: position.left,\n\t\t\t\t\t\t\ttop: position.top,\n\t\t\t\t\t\t\twidth: elemWidth,\n\t\t\t\t\t\t\theight: elemHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\n\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\n\t\t\t\t\t};\n\t\t\t\tif ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {\n\t\t\t\t\tfeedback.horizontal = \"center\";\n\t\t\t\t}\n\t\t\t\tif ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {\n\t\t\t\t\tfeedback.vertical = \"middle\";\n\t\t\t\t}\n\t\t\t\tif ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {\n\t\t\t\t\tfeedback.important = \"horizontal\";\n\t\t\t\t} else {\n\t\t\t\t\tfeedback.important = \"vertical\";\n\t\t\t\t}\n\t\t\t\toptions.using.call( this, props, feedback );\n\t\t\t};\n\t\t}\n\n\t\telem.offset( $.extend( position, { using: using } ) );\n\t} );\n};\n\n$.ui.position = {\n\tfit: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\touterWidth = within.width,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = withinOffset - collisionPosLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\n\t\t\t\tnewOverRight;\n\n\t\t\t// Element is wider than within\n\t\t\tif ( data.collisionWidth > outerWidth ) {\n\n\t\t\t\t// Element is initially over the left side of within\n\t\t\t\tif ( overLeft > 0 && overRight <= 0 ) {\n\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.left += overLeft - newOverRight;\n\n\t\t\t\t// Element is initially over right side of within\n\t\t\t\t} else if ( overRight > 0 && overLeft <= 0 ) {\n\t\t\t\t\tposition.left = withinOffset;\n\n\t\t\t\t// Element is initially over both left and right sides of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overLeft > overRight ) {\n\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far left -> align with left edge\n\t\t\t} else if ( overLeft > 0 ) {\n\t\t\t\tposition.left += overLeft;\n\n\t\t\t// Too far right -> align with right edge\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tposition.left -= overRight;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.left = max( position.left - collisionPosLeft, position.left );\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\touterHeight = data.within.height,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = withinOffset - collisionPosTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\n\t\t\t\tnewOverBottom;\n\n\t\t\t// Element is taller than within\n\t\t\tif ( data.collisionHeight > outerHeight ) {\n\n\t\t\t\t// Element is initially over the top of within\n\t\t\t\tif ( overTop > 0 && overBottom <= 0 ) {\n\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.top += overTop - newOverBottom;\n\n\t\t\t\t// Element is initially over bottom of within\n\t\t\t\t} else if ( overBottom > 0 && overTop <= 0 ) {\n\t\t\t\t\tposition.top = withinOffset;\n\n\t\t\t\t// Element is initially over both top and bottom of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overTop > overBottom ) {\n\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far up -> align with top\n\t\t\t} else if ( overTop > 0 ) {\n\t\t\t\tposition.top += overTop;\n\n\t\t\t// Too far down -> align with bottom edge\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tposition.top -= overBottom;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.top = max( position.top - collisionPosTop, position.top );\n\t\t\t}\n\t\t}\n\t},\n\tflip: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.left + within.scrollLeft,\n\t\t\t\touterWidth = within.width,\n\t\t\t\toffsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = collisionPosLeft - offsetLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\n\t\t\t\t\t-data.elemWidth :\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\n\t\t\t\t\t\tdata.elemWidth :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\n\t\t\t\t\tdata.targetWidth :\n\t\t\t\t\tdata.at[ 0 ] === \"right\" ?\n\t\t\t\t\t\t-data.targetWidth :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 0 ],\n\t\t\t\tnewOverRight,\n\t\t\t\tnewOverLeft;\n\n\t\t\tif ( overLeft < 0 ) {\n\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -\n\t\t\t\t\touterWidth - withinOffset;\n\t\t\t\tif ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +\n\t\t\t\t\tatOffset + offset - offsetLeft;\n\t\t\t\tif ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.top + within.scrollTop,\n\t\t\t\touterHeight = within.height,\n\t\t\t\toffsetTop = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = collisionPosTop - offsetTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\n\t\t\t\ttop = data.my[ 1 ] === \"top\",\n\t\t\t\tmyOffset = top ?\n\t\t\t\t\t-data.elemHeight :\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\tdata.elemHeight :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\n\t\t\t\t\tdata.targetHeight :\n\t\t\t\t\tdata.at[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\t-data.targetHeight :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 1 ],\n\t\t\t\tnewOverTop,\n\t\t\t\tnewOverBottom;\n\t\t\tif ( overTop < 0 ) {\n\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -\n\t\t\t\t\touterHeight - withinOffset;\n\t\t\t\tif ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +\n\t\t\t\t\toffset - offsetTop;\n\t\t\t\tif ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tflipfit: {\n\t\tleft: function() {\n\t\t\t$.ui.position.flip.left.apply( this, arguments );\n\t\t\t$.ui.position.fit.left.apply( this, arguments );\n\t\t},\n\t\ttop: function() {\n\t\t\t$.ui.position.flip.top.apply( this, arguments );\n\t\t\t$.ui.position.fit.top.apply( this, arguments );\n\t\t}\n\t}\n};\n\n} )();\n\nvar position = $.ui.position;\n\n\n/*!\n * jQuery UI :data 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :data Selector\n//>>group: Core\n//>>description: Selects elements which have data stored under the specified key.\n//>>docs: http://api.jqueryui.com/data-selector/\n\n\nvar data = $.extend( $.expr[ \":\" ], {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo( function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t} ) :\n\n\t\t// Support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t}\n} );\n\n/*!\n * jQuery UI Disable Selection 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: disableSelection\n//>>group: Core\n//>>description: Disable selection of text content within the set of matched elements.\n//>>docs: http://api.jqueryui.com/disableSelection/\n\n// This file is deprecated\n\n\nvar disableSelection = $.fn.extend( {\n\tdisableSelection: ( function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.on( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tenableSelection: function() {\n\t\treturn this.off( \".ui-disableSelection\" );\n\t}\n} );\n\n\n/*!\n * jQuery UI Effects 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Effects Core\n//>>group: Effects\n// jscs:disable maximumLineLength\n//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/category/effects-core/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar dataSpace = \"ui-effects-\",\n\tdataSpaceStyle = \"ui-effects-style\",\n\tdataSpaceAnimated = \"ui-effects-animated\",\n\n\t// Create a local jQuery because jQuery Color relies on it and the\n\t// global may not exist with AMD and a custom build (#10199)\n\tjQuery = $;\n\n$.effects = {\n\teffect: {}\n};\n\n/*!\n * jQuery Color Animations v2.1.2\n * https://github.com/jquery/jquery-color\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * Date: Wed Jan 16 08:47:09 2013 -0600\n */\n( function( jQuery, undefined ) {\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor \" +\n\t\t\"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\t// Plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\n\t// A set of RE's that can match strings and generate color tuples.\n\tstringParsers = [ {\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// This regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// This regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t} ],\n\n\t// JQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// Element for support tests\n\tsupportElem = jQuery( \"<p>\" )[ 0 ],\n\n\t// Colors = jQuery.Color.names\n\tcolors,\n\n\t// Local aliases of functions called often\n\teach = jQuery.each;\n\n// Determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// Define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n} );\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn ( allowEmpty || !prop.def ) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\n\t\t// We add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn ( value + type.mod ) % type.mod;\n\t}\n\n\t// For now all property types without mod have min and max\n\treturn 0 > value ? 0 : type.max < value ? type.max : value;\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// If this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// Exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t} );\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// If this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// Named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = jQuery.type( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// More than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t} );\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// If the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// If the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// This is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] &&\n\t\t\t\t\t\t\tjQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\n\t\t\t\t\t\t// Use the default of 1\n\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif ( isCache ) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn same;\n\t\t} );\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t} );\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// If null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t} );\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\n\t\t// If we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t} ) );\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\treturn v == null ? ( i > 2 ? 1 : 0 ) : v;\n\t\t\t} );\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// Catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t} );\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// Default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t} ).join( \"\" );\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n} );\ncolor.fn.parse.prototype = color.fn;\n\n// Hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + ( q - p ) * h * 6;\n\t}\n\tif ( h * 2 < 1 ) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// Makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// Generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = jQuery.type( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t} );\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// Makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\n\t\t// Alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar vtype = jQuery.type( value ),\n\t\t\t\tfn = ( key === \"alpha\" ? ( this._hsla ? \"hsla\" : \"rgba\" ) : spaceName ),\n\t\t\t\tlocal = this[ fn ](),\n\t\t\t\tcur = local[ prop.idx ],\n\t\t\t\tmatch;\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = jQuery.type( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t} );\n} );\n\n// Add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( jQuery.type( value ) !== \"string\" ||\n\t\t\t\t\t\t( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t( backgroundColor === \"\" || backgroundColor === \"transparent\" ) &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Wrapped to prevent IE from throwing errors on \"invalid\" values like\n\t\t\t\t\t// 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t} );\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t} );\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n} )( jQuery );\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n( function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each(\n\t[ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ],\n\tfunction( _, prop ) {\n\t\t$.fx.step[ prop ] = function( fx ) {\n\t\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\t\tfx.setAttr = true;\n\t\t\t}\n\t\t};\n\t}\n);\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ $.camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\n\t// Support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// Support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// Map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t} );\n\n\t\t// Apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function( i, action ) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// Map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t} );\n\n\t\t// Apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// Map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend( {}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t} );\n\n\t\t// Once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done( function() {\n\n\t\t\t// Set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// For each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function( key ) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// This is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t} );\n\t} );\n};\n\n$.fn.extend( {\n\taddClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.addClass ),\n\n\tremoveClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.removeClass ),\n\n\ttoggleClass: ( function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\n\t\t\t\t\t// Without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t( force ? { add: classNames } : { remove: classNames } ),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback ) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n} );\n\n} )();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n( function() {\n\nif ( $.expr && $.expr.filters && $.expr.filters.animated ) {\n\t$.expr.filters.animated = ( function( orig ) {\n\t\treturn function( elem ) {\n\t\t\treturn !!$( elem ).data( dataSpaceAnimated ) || orig( elem );\n\t\t};\n\t} )( $.expr.filters.animated );\n}\n\nif ( $.uiBackCompat !== false ) {\n\t$.extend( $.effects, {\n\n\t\t// Saves a set of properties in a data storage\n\t\tsave: function( element, set ) {\n\t\t\tvar i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Restores a set of previously saved properties from a data storage\n\t\trestore: function( element, set ) {\n\t\t\tvar val, i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t\telement.css( set[ i ], val );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsetMode: function( el, mode ) {\n\t\t\tif ( mode === \"toggle\" ) {\n\t\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t\t}\n\t\t\treturn mode;\n\t\t},\n\n\t\t// Wraps the element around a wrapper that copies position properties\n\t\tcreateWrapper: function( element ) {\n\n\t\t\t// If the element is already wrapped, return it\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\treturn element.parent();\n\t\t\t}\n\n\t\t\t// Wrap the element\n\t\t\tvar props = {\n\t\t\t\t\twidth: element.outerWidth( true ),\n\t\t\t\t\theight: element.outerHeight( true ),\n\t\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t\t},\n\t\t\t\twrapper = $( \"<div></div>\" )\n\t\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t} ),\n\n\t\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\t\tsize = {\n\t\t\t\t\twidth: element.width(),\n\t\t\t\t\theight: element.height()\n\t\t\t\t},\n\t\t\t\tactive = document.activeElement;\n\n\t\t\t// Support: Firefox\n\t\t\t// Firefox incorrectly exposes anonymous content\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\t\ttry {\n\t\t\t\tactive.id;\n\t\t\t} catch ( e ) {\n\t\t\t\tactive = document.body;\n\t\t\t}\n\n\t\t\telement.wrap( wrapper );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t// Hotfix for jQuery 1.4 since some change in wrap() seems to actually\n\t\t\t// lose the reference to the wrapped element\n\t\t\twrapper = element.parent();\n\n\t\t\t// Transfer positioning properties to the wrapper\n\t\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\t\twrapper.css( { position: \"relative\" } );\n\t\t\t\telement.css( { position: \"relative\" } );\n\t\t\t} else {\n\t\t\t\t$.extend( props, {\n\t\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t\t} );\n\t\t\t\t$.each( [ \"top\", \"left\", \"bottom\", \"right\" ], function( i, pos ) {\n\t\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\telement.css( {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: \"auto\",\n\t\t\t\t\tbottom: \"auto\"\n\t\t\t\t} );\n\t\t\t}\n\t\t\telement.css( size );\n\n\t\t\treturn wrapper.css( props ).show();\n\t\t},\n\n\t\tremoveWrapper: function( element ) {\n\t\t\tvar active = document.activeElement;\n\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\telement.parent().replaceWith( element );\n\n\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn element;\n\t\t}\n\t} );\n}\n\n$.extend( $.effects, {\n\tversion: \"1.12.1\",\n\n\tdefine: function( name, mode, effect ) {\n\t\tif ( !effect ) {\n\t\t\teffect = mode;\n\t\t\tmode = \"effect\";\n\t\t}\n\n\t\t$.effects.effect[ name ] = effect;\n\t\t$.effects.effect[ name ].mode = mode;\n\n\t\treturn effect;\n\t},\n\n\tscaledDimensions: function( element, percent, direction ) {\n\t\tif ( percent === 0 ) {\n\t\t\treturn {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\touterHeight: 0,\n\t\t\t\touterWidth: 0\n\t\t\t};\n\t\t}\n\n\t\tvar x = direction !== \"horizontal\" ? ( ( percent || 100 ) / 100 ) : 1,\n\t\t\ty = direction !== \"vertical\" ? ( ( percent || 100 ) / 100 ) : 1;\n\n\t\treturn {\n\t\t\theight: element.height() * y,\n\t\t\twidth: element.width() * x,\n\t\t\touterHeight: element.outerHeight() * y,\n\t\t\touterWidth: element.outerWidth() * x\n\t\t};\n\n\t},\n\n\tclipToBox: function( animation ) {\n\t\treturn {\n\t\t\twidth: animation.clip.right - animation.clip.left,\n\t\t\theight: animation.clip.bottom - animation.clip.top,\n\t\t\tleft: animation.clip.left,\n\t\t\ttop: animation.clip.top\n\t\t};\n\t},\n\n\t// Injects recently queued functions to be first in line (after \"inprogress\")\n\tunshift: function( element, queueLength, count ) {\n\t\tvar queue = element.queue();\n\n\t\tif ( queueLength > 1 ) {\n\t\t\tqueue.splice.apply( queue,\n\t\t\t\t[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );\n\t\t}\n\t\telement.dequeue();\n\t},\n\n\tsaveStyle: function( element ) {\n\t\telement.data( dataSpaceStyle, element[ 0 ].style.cssText );\n\t},\n\n\trestoreStyle: function( element ) {\n\t\telement[ 0 ].style.cssText = element.data( dataSpaceStyle ) || \"\";\n\t\telement.removeData( dataSpaceStyle );\n\t},\n\n\tmode: function( element, mode ) {\n\t\tvar hidden = element.is( \":hidden\" );\n\n\t\tif ( mode === \"toggle\" ) {\n\t\t\tmode = hidden ? \"show\" : \"hide\";\n\t\t}\n\t\tif ( hidden ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\tmode = \"none\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\n\t\tswitch ( origin[ 0 ] ) {\n\t\tcase \"top\":\n\t\t\ty = 0;\n\t\t\tbreak;\n\t\tcase \"middle\":\n\t\t\ty = 0.5;\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\ty = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ty = origin[ 0 ] / original.height;\n\t\t}\n\n\t\tswitch ( origin[ 1 ] ) {\n\t\tcase \"left\":\n\t\t\tx = 0;\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tx = 0.5;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tx = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tx = origin[ 1 ] / original.width;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Creates a placeholder element so that the original element can be made absolute\n\tcreatePlaceholder: function( element ) {\n\t\tvar placeholder,\n\t\t\tcssPosition = element.css( \"position\" ),\n\t\t\tposition = element.position();\n\n\t\t// Lock in margins first to account for form elements, which\n\t\t// will change margin if you explicitly set height\n\t\t// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380\n\t\t// Support: Safari\n\t\telement.css( {\n\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\tmarginRight: element.css( \"marginRight\" )\n\t\t} )\n\t\t.outerWidth( element.outerWidth() )\n\t\t.outerHeight( element.outerHeight() );\n\n\t\tif ( /^(static|relative)/.test( cssPosition ) ) {\n\t\t\tcssPosition = \"absolute\";\n\n\t\t\tplaceholder = $( \"<\" + element[ 0 ].nodeName + \">\" ).insertAfter( element ).css( {\n\n\t\t\t\t// Convert inline to inline block to account for inline elements\n\t\t\t\t// that turn to inline block based on content (like img)\n\t\t\t\tdisplay: /^(inline|ruby)/.test( element.css( \"display\" ) ) ?\n\t\t\t\t\t\"inline-block\" :\n\t\t\t\t\t\"block\",\n\t\t\t\tvisibility: \"hidden\",\n\n\t\t\t\t// Margins need to be set to account for margin collapse\n\t\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\t\tmarginRight: element.css( \"marginRight\" ),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t} )\n\t\t\t.outerWidth( element.outerWidth() )\n\t\t\t.outerHeight( element.outerHeight() )\n\t\t\t.addClass( \"ui-effects-placeholder\" );\n\n\t\t\telement.data( dataSpace + \"placeholder\", placeholder );\n\t\t}\n\n\t\telement.css( {\n\t\t\tposition: cssPosition,\n\t\t\tleft: position.left,\n\t\t\ttop: position.top\n\t\t} );\n\n\t\treturn placeholder;\n\t},\n\n\tremovePlaceholder: function( element ) {\n\t\tvar dataKey = dataSpace + \"placeholder\",\n\t\t\t\tplaceholder = element.data( dataKey );\n\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.remove();\n\t\t\telement.removeData( dataKey );\n\t\t}\n\t},\n\n\t// Removes a placeholder if it exists and restores\n\t// properties that were modified during placeholder creation\n\tcleanUp: function( element ) {\n\t\t$.effects.restoreStyle( element );\n\t\t$.effects.removePlaceholder( element );\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t} );\n\t\treturn value;\n\t}\n} );\n\n// Return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// Allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// Convert to an object\n\teffect = { effect: effect };\n\n\t// Catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, callback)\n\tif ( $.isFunction( options ) ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, options, callback)\n\tif ( $.isFunction( speed ) ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// Add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( $.isFunction( option ) ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend( {\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\teffectMethod = $.effects.effect[ args.effect ],\n\t\t\tdefaultMode = effectMethod.mode,\n\t\t\tqueue = args.queue,\n\t\t\tqueueName = queue || \"fx\",\n\t\t\tcomplete = args.complete,\n\t\t\tmode = args.mode,\n\t\t\tmodes = [],\n\t\t\tprefilter = function( next ) {\n\t\t\t\tvar el = $( this ),\n\t\t\t\t\tnormalizedMode = $.effects.mode( el, mode ) || defaultMode;\n\n\t\t\t\t// Sentinel for duck-punching the :animated psuedo-selector\n\t\t\t\tel.data( dataSpaceAnimated, true );\n\n\t\t\t\t// Save effect mode for later use,\n\t\t\t\t// we can't just call $.effects.mode again later,\n\t\t\t\t// as the .show() below destroys the initial state\n\t\t\t\tmodes.push( normalizedMode );\n\n\t\t\t\t// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13\n\t\t\t\tif ( defaultMode && ( normalizedMode === \"show\" ||\n\t\t\t\t\t\t( normalizedMode === defaultMode && normalizedMode === \"hide\" ) ) ) {\n\t\t\t\t\tel.show();\n\t\t\t\t}\n\n\t\t\t\tif ( !defaultMode || normalizedMode !== \"none\" ) {\n\t\t\t\t\t$.effects.saveStyle( el );\n\t\t\t\t}\n\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\n\t\t\t// Delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( complete ) {\n\t\t\t\t\t\tcomplete.call( this );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this );\n\n\t\t\tfunction cleanup() {\n\t\t\t\telem.removeData( dataSpaceAnimated );\n\n\t\t\t\t$.effects.cleanUp( elem );\n\n\t\t\t\tif ( args.mode === \"hide\" ) {\n\t\t\t\t\telem.hide();\n\t\t\t\t}\n\n\t\t\t\tdone();\n\t\t\t}\n\n\t\t\tfunction done() {\n\t\t\t\tif ( $.isFunction( complete ) ) {\n\t\t\t\t\tcomplete.call( elem[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override mode option on a per element basis,\n\t\t\t// as toggle can be either show or hide depending on element state\n\t\t\targs.mode = modes.shift();\n\n\t\t\tif ( $.uiBackCompat !== false && !defaultMode ) {\n\t\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, done );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( args.mode === \"none\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, cleanup );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Run prefilter on all elements first to ensure that\n\t\t// any showing or hiding happens before placeholder creation,\n\t\t// which ensures that any layout changes are correctly captured.\n\t\treturn queue === false ?\n\t\t\tthis.each( prefilter ).each( run ) :\n\t\t\tthis.queue( queueName, prefilter ).queue( queueName, run );\n\t},\n\n\tshow: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.show ),\n\n\thide: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.hide ),\n\n\ttoggle: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggle ),\n\n\tcssUnit: function( key ) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t} );\n\t\treturn val;\n\t},\n\n\tcssClip: function( clipObj ) {\n\t\tif ( clipObj ) {\n\t\t\treturn this.css( \"clip\", \"rect(\" + clipObj.top + \"px \" + clipObj.right + \"px \" +\n\t\t\t\tclipObj.bottom + \"px \" + clipObj.left + \"px)\" );\n\t\t}\n\t\treturn parseClip( this.css( \"clip\" ), this );\n\t},\n\n\ttransfer: function( options, done ) {\n\t\tvar element = $( this ),\n\t\t\ttarget = $( options.to ),\n\t\t\ttargetFixed = target.css( \"position\" ) === \"fixed\",\n\t\t\tbody = $( \"body\" ),\n\t\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\t\tendPosition = target.offset(),\n\t\t\tanimation = {\n\t\t\t\ttop: endPosition.top - fixTop,\n\t\t\t\tleft: endPosition.left - fixLeft,\n\t\t\t\theight: target.innerHeight(),\n\t\t\t\twidth: target.innerWidth()\n\t\t\t},\n\t\t\tstartPosition = element.offset(),\n\t\t\ttransfer = $( \"<div class='ui-effects-transfer'></div>\" )\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.addClass( options.className )\n\t\t\t\t.css( {\n\t\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\t\theight: element.innerHeight(),\n\t\t\t\t\twidth: element.innerWidth(),\n\t\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t\t} )\n\t\t\t\t.animate( animation, options.duration, options.easing, function() {\n\t\t\t\t\ttransfer.remove();\n\t\t\t\t\tif ( $.isFunction( done ) ) {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t}\n} );\n\nfunction parseClip( str, element ) {\n\t\tvar outerWidth = element.outerWidth(),\n\t\t\touterHeight = element.outerHeight(),\n\t\t\tclipRegex = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n\t\t\tvalues = clipRegex.exec( str ) || [ \"\", 0, outerWidth, outerHeight, 0 ];\n\n\t\treturn {\n\t\t\ttop: parseFloat( values[ 1 ] ) || 0,\n\t\t\tright: values[ 2 ] === \"auto\" ? outerWidth : parseFloat( values[ 2 ] ),\n\t\t\tbottom: values[ 3 ] === \"auto\" ? outerHeight : parseFloat( values[ 3 ] ),\n\t\t\tleft: parseFloat( values[ 4 ] ) || 0\n\t\t};\n}\n\n$.fx.step.clip = function( fx ) {\n\tif ( !fx.clipInit ) {\n\t\tfx.start = $( fx.elem ).cssClip();\n\t\tif ( typeof fx.end === \"string\" ) {\n\t\t\tfx.end = parseClip( fx.end, fx.elem );\n\t\t}\n\t\tfx.clipInit = true;\n\t}\n\n\t$( fx.elem ).cssClip( {\n\t\ttop: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,\n\t\tright: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,\n\t\tbottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,\n\t\tleft: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left\n\t} );\n};\n\n} )();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n( function() {\n\n// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n} );\n\n$.extend( baseEasings, {\n\tSine: function( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n} );\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n} );\n\n} )();\n\nvar effect = $.effects;\n\n\n/*!\n * jQuery UI Effects Blind 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Blind Effect\n//>>group: Effects\n//>>description: Blinds the element.\n//>>docs: http://api.jqueryui.com/blind-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectBlind = $.effects.define( \"blind\", \"hide\", function( options, done ) {\n\tvar map = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tvertical: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\thorizontal: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"up\",\n\t\tstart = element.cssClip(),\n\t\tanimate = { clip: $.extend( {}, start ) },\n\t\tplaceholder = $.effects.createPlaceholder( element );\n\n\tanimate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animate ) );\n\t\t}\n\n\t\tanimate.clip = start;\n\t}\n\n\tif ( placeholder ) {\n\t\tplaceholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Bounce 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Bounce Effect\n//>>group: Effects\n//>>description: Bounces an element horizontally or vertically n times.\n//>>docs: http://api.jqueryui.com/bounce-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectBounce = $.effects.define( \"bounce\", function( options, done ) {\n\tvar upAnim, downAnim, refValue,\n\t\telement = $( this ),\n\n\t\t// Defaults:\n\t\tmode = options.mode,\n\t\thide = mode === \"hide\",\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"up\",\n\t\tdistance = options.distance,\n\t\ttimes = options.times || 5,\n\n\t\t// Number of internal animations\n\t\tanims = times * 2 + ( show || hide ? 1 : 0 ),\n\t\tspeed = options.duration / anims,\n\t\teasing = options.easing,\n\n\t\t// Utility:\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ),\n\t\ti = 0,\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\trefValue = element.css( ref );\n\n\t// Default distance for the BIGGEST bounce is the outer Distance / 3\n\tif ( !distance ) {\n\t\tdistance = element[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]() / 3;\n\t}\n\n\tif ( show ) {\n\t\tdownAnim = { opacity: 1 };\n\t\tdownAnim[ ref ] = refValue;\n\n\t\t// If we are showing, force opacity 0 and set the initial position\n\t\t// then do the \"first\" animation\n\t\telement\n\t\t\t.css( \"opacity\", 0 )\n\t\t\t.css( ref, motion ? -distance * 2 : distance * 2 )\n\t\t\t.animate( downAnim, speed, easing );\n\t}\n\n\t// Start at the smallest distance if we are hiding\n\tif ( hide ) {\n\t\tdistance = distance / Math.pow( 2, times - 1 );\n\t}\n\n\tdownAnim = {};\n\tdownAnim[ ref ] = refValue;\n\n\t// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here\n\tfor ( ; i < times; i++ ) {\n\t\tupAnim = {};\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement\n\t\t\t.animate( upAnim, speed, easing )\n\t\t\t.animate( downAnim, speed, easing );\n\n\t\tdistance = hide ? distance * 2 : distance / 2;\n\t}\n\n\t// Last Bounce when Hiding\n\tif ( hide ) {\n\t\tupAnim = { opacity: 0 };\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement.animate( upAnim, speed, easing );\n\t}\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Clip 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Clip Effect\n//>>group: Effects\n//>>description: Clips the element on and off like an old TV.\n//>>docs: http://api.jqueryui.com/clip-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectClip = $.effects.define( \"clip\", \"hide\", function( options, done ) {\n\tvar start,\n\t\tanimate = {},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"vertical\",\n\t\tboth = direction === \"both\",\n\t\thorizontal = both || direction === \"horizontal\",\n\t\tvertical = both || direction === \"vertical\";\n\n\tstart = element.cssClip();\n\tanimate.clip = {\n\t\ttop: vertical ? ( start.bottom - start.top ) / 2 : start.top,\n\t\tright: horizontal ? ( start.right - start.left ) / 2 : start.right,\n\t\tbottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,\n\t\tleft: horizontal ? ( start.right - start.left ) / 2 : start.left\n\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tanimate.clip = start;\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Drop 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Drop Effect\n//>>group: Effects\n//>>description: Moves an element in one direction and hides it at the same time.\n//>>docs: http://api.jqueryui.com/drop-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectDrop = $.effects.define( \"drop\", \"hide\", function( options, done ) {\n\n\tvar distance,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ) ? \"-=\" : \"+=\",\n\t\toppositeMotion = ( motion === \"+=\" ) ? \"-=\" : \"+=\",\n\t\tanimation = {\n\t\t\topacity: 0\n\t\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tdistance = options.distance ||\n\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ) / 2;\n\n\tanimation[ ref ] = motion + distance;\n\n\tif ( show ) {\n\t\telement.css( animation );\n\n\t\tanimation[ ref ] = oppositeMotion + distance;\n\t\tanimation.opacity = 1;\n\t}\n\n\t// Animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Explode 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Explode Effect\n//>>group: Effects\n// jscs:disable maximumLineLength\n//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/explode-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectExplode = $.effects.define( \"explode\", \"hide\", function( options, done ) {\n\n\tvar i, j, left, top, mx, my,\n\t\trows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,\n\t\tcells = rows,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\n\t\t// Show and then visibility:hidden the element before calculating offset\n\t\toffset = element.show().css( \"visibility\", \"hidden\" ).offset(),\n\n\t\t// Width and height of a piece\n\t\twidth = Math.ceil( element.outerWidth() / cells ),\n\t\theight = Math.ceil( element.outerHeight() / rows ),\n\t\tpieces = [];\n\n\t// Children animate complete:\n\tfunction childComplete() {\n\t\tpieces.push( this );\n\t\tif ( pieces.length === rows * cells ) {\n\t\t\tanimComplete();\n\t\t}\n\t}\n\n\t// Clone the element for each row and cell.\n\tfor ( i = 0; i < rows; i++ ) { // ===>\n\t\ttop = offset.top + i * height;\n\t\tmy = i - ( rows - 1 ) / 2;\n\n\t\tfor ( j = 0; j < cells; j++ ) { // |||\n\t\t\tleft = offset.left + j * width;\n\t\t\tmx = j - ( cells - 1 ) / 2;\n\n\t\t\t// Create a clone of the now hidden main element that will be absolute positioned\n\t\t\t// within a wrapper div off the -left and -top equal to size of our pieces\n\t\t\telement\n\t\t\t\t.clone()\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.wrap( \"<div></div>\" )\n\t\t\t\t.css( {\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tvisibility: \"visible\",\n\t\t\t\t\tleft: -j * width,\n\t\t\t\t\ttop: -i * height\n\t\t\t\t} )\n\n\t\t\t\t// Select the wrapper - make it overflow: hidden and absolute positioned based on\n\t\t\t\t// where the original was located +left and +top equal to the size of pieces\n\t\t\t\t.parent()\n\t\t\t\t\t.addClass( \"ui-effects-explode\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height,\n\t\t\t\t\t\tleft: left + ( show ? mx * width : 0 ),\n\t\t\t\t\t\ttop: top + ( show ? my * height : 0 ),\n\t\t\t\t\t\topacity: show ? 0 : 1\n\t\t\t\t\t} )\n\t\t\t\t\t.animate( {\n\t\t\t\t\t\tleft: left + ( show ? 0 : mx * width ),\n\t\t\t\t\t\ttop: top + ( show ? 0 : my * height ),\n\t\t\t\t\t\topacity: show ? 1 : 0\n\t\t\t\t\t}, options.duration || 500, options.easing, childComplete );\n\t\t}\n\t}\n\n\tfunction animComplete() {\n\t\telement.css( {\n\t\t\tvisibility: \"visible\"\n\t\t} );\n\t\t$( pieces ).remove();\n\t\tdone();\n\t}\n} );\n\n\n/*!\n * jQuery UI Effects Fade 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Fade Effect\n//>>group: Effects\n//>>description: Fades the element.\n//>>docs: http://api.jqueryui.com/fade-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectFade = $.effects.define( \"fade\", \"toggle\", function( options, done ) {\n\tvar show = options.mode === \"show\";\n\n\t$( this )\n\t\t.css( \"opacity\", show ? 0 : 1 )\n\t\t.animate( {\n\t\t\topacity: show ? 1 : 0\n\t\t}, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Fold 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Fold Effect\n//>>group: Effects\n//>>description: Folds an element first horizontally and then vertically.\n//>>docs: http://api.jqueryui.com/fold-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectFold = $.effects.define( \"fold\", \"hide\", function( options, done ) {\n\n\t// Create element\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tsize = options.size || 15,\n\t\tpercent = /([0-9]+)%/.exec( size ),\n\t\thorizFirst = !!options.horizFirst,\n\t\tref = horizFirst ? [ \"right\", \"bottom\" ] : [ \"bottom\", \"right\" ],\n\t\tduration = options.duration / 2,\n\n\t\tplaceholder = $.effects.createPlaceholder( element ),\n\n\t\tstart = element.cssClip(),\n\t\tanimation1 = { clip: $.extend( {}, start ) },\n\t\tanimation2 = { clip: $.extend( {}, start ) },\n\n\t\tdistance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],\n\n\t\tqueuelen = element.queue().length;\n\n\tif ( percent ) {\n\t\tsize = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];\n\t}\n\tanimation1.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 1 ] ] = 0;\n\n\tif ( show ) {\n\t\telement.cssClip( animation2.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animation2 ) );\n\t\t}\n\n\t\tanimation2.clip = start;\n\t}\n\n\t// Animate\n\telement\n\t\t.queue( function( next ) {\n\t\t\tif ( placeholder ) {\n\t\t\t\tplaceholder\n\t\t\t\t\t.animate( $.effects.clipToBox( animation1 ), duration, options.easing )\n\t\t\t\t\t.animate( $.effects.clipToBox( animation2 ), duration, options.easing );\n\t\t\t}\n\n\t\t\tnext();\n\t\t} )\n\t\t.animate( animation1, duration, options.easing )\n\t\t.animate( animation2, duration, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, 4 );\n} );\n\n\n/*!\n * jQuery UI Effects Highlight 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Highlight Effect\n//>>group: Effects\n//>>description: Highlights the background of an element in a defined color for a custom duration.\n//>>docs: http://api.jqueryui.com/highlight-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectHighlight = $.effects.define( \"highlight\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tanimation = {\n\t\t\tbackgroundColor: element.css( \"backgroundColor\" )\n\t\t};\n\n\tif ( options.mode === \"hide\" ) {\n\t\tanimation.opacity = 0;\n\t}\n\n\t$.effects.saveStyle( element );\n\n\telement\n\t\t.css( {\n\t\t\tbackgroundImage: \"none\",\n\t\t\tbackgroundColor: options.color || \"#ffff99\"\n\t\t} )\n\t\t.animate( animation, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Size 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Size Effect\n//>>group: Effects\n//>>description: Resize an element to a specified width and height.\n//>>docs: http://api.jqueryui.com/size-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectSize = $.effects.define( \"size\", function( options, done ) {\n\n\t// Create element\n\tvar baseline, factor, temp,\n\t\telement = $( this ),\n\n\t\t// Copy for children\n\t\tcProps = [ \"fontSize\" ],\n\t\tvProps = [ \"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\" ],\n\t\thProps = [ \"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\" ],\n\n\t\t// Set options\n\t\tmode = options.mode,\n\t\trestore = mode !== \"effect\",\n\t\tscale = options.scale || \"both\",\n\t\torigin = options.origin || [ \"middle\", \"center\" ],\n\t\tposition = element.css( \"position\" ),\n\t\tpos = element.position(),\n\t\toriginal = $.effects.scaledDimensions( element ),\n\t\tfrom = options.from || original,\n\t\tto = options.to || $.effects.scaledDimensions( element, 0 );\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( mode === \"show\" ) {\n\t\ttemp = from;\n\t\tfrom = to;\n\t\tto = temp;\n\t}\n\n\t// Set scaling factor\n\tfactor = {\n\t\tfrom: {\n\t\t\ty: from.height / original.height,\n\t\t\tx: from.width / original.width\n\t\t},\n\t\tto: {\n\t\t\ty: to.height / original.height,\n\t\t\tx: to.width / original.width\n\t\t}\n\t};\n\n\t// Scale the css box\n\tif ( scale === \"box\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, vProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, vProps, factor.to.y, to );\n\t\t}\n\n\t\t// Horizontal props scaling\n\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\tfrom = $.effects.setTransition( element, hProps, factor.from.x, from );\n\t\t\tto = $.effects.setTransition( element, hProps, factor.to.x, to );\n\t\t}\n\t}\n\n\t// Scale the content\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, cProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, cProps, factor.to.y, to );\n\t\t}\n\t}\n\n\t// Adjust the position properties based on the provided origin points\n\tif ( origin ) {\n\t\tbaseline = $.effects.getBaseline( origin, original );\n\t\tfrom.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;\n\t\tfrom.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;\n\t\tto.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;\n\t\tto.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;\n\t}\n\telement.css( from );\n\n\t// Animate the children if desired\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\tvProps = vProps.concat( [ \"marginTop\", \"marginBottom\" ] ).concat( cProps );\n\t\thProps = hProps.concat( [ \"marginLeft\", \"marginRight\" ] );\n\n\t\t// Only animate children with width attributes specified\n\t\t// TODO: is this right? should we include anything with css width specified as well\n\t\telement.find( \"*[width]\" ).each( function() {\n\t\t\tvar child = $( this ),\n\t\t\t\tchildOriginal = $.effects.scaledDimensions( child ),\n\t\t\t\tchildFrom = {\n\t\t\t\t\theight: childOriginal.height * factor.from.y,\n\t\t\t\t\twidth: childOriginal.width * factor.from.x,\n\t\t\t\t\touterHeight: childOriginal.outerHeight * factor.from.y,\n\t\t\t\t\touterWidth: childOriginal.outerWidth * factor.from.x\n\t\t\t\t},\n\t\t\t\tchildTo = {\n\t\t\t\t\theight: childOriginal.height * factor.to.y,\n\t\t\t\t\twidth: childOriginal.width * factor.to.x,\n\t\t\t\t\touterHeight: childOriginal.height * factor.to.y,\n\t\t\t\t\touterWidth: childOriginal.width * factor.to.x\n\t\t\t\t};\n\n\t\t\t// Vertical props scaling\n\t\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );\n\t\t\t}\n\n\t\t\t// Horizontal props scaling\n\t\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );\n\t\t\t}\n\n\t\t\tif ( restore ) {\n\t\t\t\t$.effects.saveStyle( child );\n\t\t\t}\n\n\t\t\t// Animate children\n\t\t\tchild.css( childFrom );\n\t\t\tchild.animate( childTo, options.duration, options.easing, function() {\n\n\t\t\t\t// Restore children\n\t\t\t\tif ( restore ) {\n\t\t\t\t\t$.effects.restoreStyle( child );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Animate\n\telement.animate( to, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: function() {\n\n\t\t\tvar offset = element.offset();\n\n\t\t\tif ( to.opacity === 0 ) {\n\t\t\t\telement.css( \"opacity\", from.opacity );\n\t\t\t}\n\n\t\t\tif ( !restore ) {\n\t\t\t\telement\n\t\t\t\t\t.css( \"position\", position === \"static\" ? \"relative\" : position )\n\t\t\t\t\t.offset( offset );\n\n\t\t\t\t// Need to save style here so that automatic style restoration\n\t\t\t\t// doesn't restore to the original styles from before the animation.\n\t\t\t\t$.effects.saveStyle( element );\n\t\t\t}\n\n\t\t\tdone();\n\t\t}\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Scale 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Scale Effect\n//>>group: Effects\n//>>description: Grows or shrinks an element and its content.\n//>>docs: http://api.jqueryui.com/scale-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectScale = $.effects.define( \"scale\", function( options, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\tmode = options.mode,\n\t\tpercent = parseInt( options.percent, 10 ) ||\n\t\t\t( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== \"effect\" ? 0 : 100 ) ),\n\n\t\tnewOptions = $.extend( true, {\n\t\t\tfrom: $.effects.scaledDimensions( el ),\n\t\t\tto: $.effects.scaledDimensions( el, percent, options.direction || \"both\" ),\n\t\t\torigin: options.origin || [ \"middle\", \"center\" ]\n\t\t}, options );\n\n\t// Fade option to support puff\n\tif ( options.fade ) {\n\t\tnewOptions.from.opacity = 1;\n\t\tnewOptions.to.opacity = 0;\n\t}\n\n\t$.effects.effect.size.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Puff 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Puff Effect\n//>>group: Effects\n//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.\n//>>docs: http://api.jqueryui.com/puff-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectPuff = $.effects.define( \"puff\", \"hide\", function( options, done ) {\n\tvar newOptions = $.extend( true, {}, options, {\n\t\tfade: true,\n\t\tpercent: parseInt( options.percent, 10 ) || 150\n\t} );\n\n\t$.effects.effect.scale.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Pulsate 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Pulsate Effect\n//>>group: Effects\n//>>description: Pulsates an element n times by changing the opacity to zero and back.\n//>>docs: http://api.jqueryui.com/pulsate-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectPulsate = $.effects.define( \"pulsate\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tshowhide = show || hide,\n\n\t\t// Showing or hiding leaves off the \"last\" animation\n\t\tanims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),\n\t\tduration = options.duration / anims,\n\t\tanimateTo = 0,\n\t\ti = 1,\n\t\tqueuelen = element.queue().length;\n\n\tif ( show || !element.is( \":visible\" ) ) {\n\t\telement.css( \"opacity\", 0 ).show();\n\t\tanimateTo = 1;\n\t}\n\n\t// Anims - 1 opacity \"toggles\"\n\tfor ( ; i < anims; i++ ) {\n\t\telement.animate( { opacity: animateTo }, duration, options.easing );\n\t\tanimateTo = 1 - animateTo;\n\t}\n\n\telement.animate( { opacity: animateTo }, duration, options.easing );\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Shake 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Shake Effect\n//>>group: Effects\n//>>description: Shakes an element horizontally or vertically n times.\n//>>docs: http://api.jqueryui.com/shake-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectShake = $.effects.define( \"shake\", function( options, done ) {\n\n\tvar i = 1,\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"left\",\n\t\tdistance = options.distance || 20,\n\t\ttimes = options.times || 3,\n\t\tanims = times * 2 + 1,\n\t\tspeed = Math.round( options.duration / anims ),\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tanimation = {},\n\t\tanimation1 = {},\n\t\tanimation2 = {},\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\t// Animation\n\tanimation[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance;\n\tanimation1[ ref ] = ( positiveMotion ? \"+=\" : \"-=\" ) + distance * 2;\n\tanimation2[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance * 2;\n\n\t// Animate\n\telement.animate( animation, speed, options.easing );\n\n\t// Shakes\n\tfor ( ; i < times; i++ ) {\n\t\telement\n\t\t\t.animate( animation1, speed, options.easing )\n\t\t\t.animate( animation2, speed, options.easing );\n\t}\n\n\telement\n\t\t.animate( animation1, speed, options.easing )\n\t\t.animate( animation, speed / 2, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Slide 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Slide Effect\n//>>group: Effects\n//>>description: Slides an element in and out of the viewport.\n//>>docs: http://api.jqueryui.com/slide-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effectsEffectSlide = $.effects.define( \"slide\", \"show\", function( options, done ) {\n\tvar startClip, startRef,\n\t\telement = $( this ),\n\t\tmap = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\tmode = options.mode,\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tdistance = options.distance ||\n\t\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ),\n\t\tanimation = {};\n\n\t$.effects.createPlaceholder( element );\n\n\tstartClip = element.cssClip();\n\tstartRef = element.position()[ ref ];\n\n\t// Define hide animation\n\tanimation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;\n\tanimation.clip = element.cssClip();\n\tanimation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];\n\n\t// Reverse the animation if we're showing\n\tif ( mode === \"show\" ) {\n\t\telement.cssClip( animation.clip );\n\t\telement.css( ref, animation[ ref ] );\n\t\tanimation.clip = startClip;\n\t\tanimation[ ref ] = startRef;\n\t}\n\n\t// Actually animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Transfer 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Transfer Effect\n//>>group: Effects\n//>>description: Displays a transfer effect from one element to another.\n//>>docs: http://api.jqueryui.com/transfer-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\n\nvar effect;\nif ( $.uiBackCompat !== false ) {\n\teffect = $.effects.define( \"transfer\", function( options, done ) {\n\t\t$( this ).transfer( options, done );\n\t} );\n}\nvar effectsEffectTransfer = effect;\n\n\n/*!\n * jQuery UI Focusable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :focusable Selector\n//>>group: Core\n//>>description: Selects elements which can be focused.\n//>>docs: http://api.jqueryui.com/focusable-selector/\n\n\n\n// Selectors\n$.ui.focusable = function( element, hasTabindex ) {\n\tvar map, mapName, img, focusableIfVisible, fieldset,\n\t\tnodeName = element.nodeName.toLowerCase();\n\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" );\n\t\treturn img.length > 0 && img.is( \":visible\" );\n\t}\n\n\tif ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {\n\t\tfocusableIfVisible = !element.disabled;\n\n\t\tif ( focusableIfVisible ) {\n\n\t\t\t// Form controls within a disabled fieldset are disabled.\n\t\t\t// However, controls within the fieldset's legend do not get disabled.\n\t\t\t// Since controls generally aren't placed inside legends, we skip\n\t\t\t// this portion of the check.\n\t\t\tfieldset = $( element ).closest( \"fieldset\" )[ 0 ];\n\t\t\tif ( fieldset ) {\n\t\t\t\tfocusableIfVisible = !fieldset.disabled;\n\t\t\t}\n\t\t}\n\t} else if ( \"a\" === nodeName ) {\n\t\tfocusableIfVisible = element.href || hasTabindex;\n\t} else {\n\t\tfocusableIfVisible = hasTabindex;\n\t}\n\n\treturn focusableIfVisible && $( element ).is( \":visible\" ) && visible( $( element ) );\n};\n\n// Support: IE 8 only\n// IE 8 doesn't resolve inherit to visible/hidden for computed values\nfunction visible( element ) {\n\tvar visibility = element.css( \"visibility\" );\n\twhile ( visibility === \"inherit\" ) {\n\t\telement = element.parent();\n\t\tvisibility = element.css( \"visibility\" );\n\t}\n\treturn visibility !== \"hidden\";\n}\n\n$.extend( $.expr[ \":\" ], {\n\tfocusable: function( element ) {\n\t\treturn $.ui.focusable( element, $.attr( element, \"tabindex\" ) != null );\n\t}\n} );\n\nvar focusable = $.ui.focusable;\n\n\n\n\n// Support: IE8 Only\n// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n// with a string, so we need to find the proper form.\nvar form = $.fn.form = function() {\n\treturn typeof this[ 0 ].form === \"string\" ? this.closest( \"form\" ) : $( this[ 0 ].form );\n};\n\n\n/*!\n * jQuery UI Form Reset Mixin 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Form Reset Mixin\n//>>group: Core\n//>>description: Refresh input widgets when their form is reset\n//>>docs: http://api.jqueryui.com/form-reset-mixin/\n\n\n\nvar formResetMixin = $.ui.formResetMixin = {\n\t_formResetHandler: function() {\n\t\tvar form = $( this );\n\n\t\t// Wait for the form reset to actually happen before refreshing\n\t\tsetTimeout( function() {\n\t\t\tvar instances = form.data( \"ui-form-reset-instances\" );\n\t\t\t$.each( instances, function() {\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t\t} );\n\t},\n\n\t_bindFormResetHandler: function() {\n\t\tthis.form = this.element.form();\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" ) || [];\n\t\tif ( !instances.length ) {\n\n\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\tthis.form.on( \"reset.ui-form-reset\", this._formResetHandler );\n\t\t}\n\t\tinstances.push( this );\n\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t},\n\n\t_unbindFormResetHandler: function() {\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" );\n\t\tinstances.splice( $.inArray( this, instances ), 1 );\n\t\tif ( instances.length ) {\n\t\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t\t} else {\n\t\t\tthis.form\n\t\t\t\t.removeData( \"ui-form-reset-instances\" )\n\t\t\t\t.off( \"reset.ui-form-reset\" );\n\t\t}\n\t}\n};\n\n\n/*!\n * jQuery UI Support for jQuery core 1.7.x 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n */\n\n//>>label: jQuery 1.7 Support\n//>>group: Core\n//>>description: Support version 1.7.x of jQuery core\n\n\n\n// Support: jQuery 1.7 only\n// Not a great way to check versions, but since we only support 1.7+ and only\n// need to detect <1.8, this is a simple check that should suffice. Checking\n// for \"1.7.\" would be a bit safer, but the version string is 1.7, not 1.7.0\n// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting\n// 1.7 anymore). See #11197 for why we're not using feature detection.\nif ( $.fn.jquery.substring( 0, 3 ) === \"1.7\" ) {\n\n\t// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()\n\t// Unlike jQuery Core 1.8+, these only support numeric values to set the\n\t// dimensions in pixels\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\n\t\t\ttype = name.toLowerCase(),\n\t\t\torig = {\n\t\t\t\tinnerWidth: $.fn.innerWidth,\n\t\t\t\tinnerHeight: $.fn.innerHeight,\n\t\t\t\touterWidth: $.fn.outerWidth,\n\t\t\t\touterHeight: $.fn.outerHeight\n\t\t\t};\n\n\t\tfunction reduce( elem, size, border, margin ) {\n\t\t\t$.each( side, function() {\n\t\t\t\tsize -= parseFloat( $.css( elem, \"padding\" + this ) ) || 0;\n\t\t\t\tif ( border ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"border\" + this + \"Width\" ) ) || 0;\n\t\t\t\t}\n\t\t\t\tif ( margin ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"margin\" + this ) ) || 0;\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn size;\n\t\t}\n\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\n\t\t\tif ( size === undefined ) {\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\n\t\t\t} );\n\t\t};\n\n\t\t$.fn[ \"outer\" + name ] = function( size, margin ) {\n\t\t\tif ( typeof size !== \"number\" ) {\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\n\t\t\t}\n\n\t\t\treturn this.each( function() {\n\t\t\t\t$( this ).css( type, reduce( this, size, true, margin ) + \"px\" );\n\t\t\t} );\n\t\t};\n\t} );\n\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n;\n/*!\n * jQuery UI Keycode 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Keycode\n//>>group: Core\n//>>description: Provide keycodes as keynames\n//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n\nvar keycode = $.ui.keyCode = {\n\tBACKSPACE: 8,\n\tCOMMA: 188,\n\tDELETE: 46,\n\tDOWN: 40,\n\tEND: 35,\n\tENTER: 13,\n\tESCAPE: 27,\n\tHOME: 36,\n\tLEFT: 37,\n\tPAGE_DOWN: 34,\n\tPAGE_UP: 33,\n\tPERIOD: 190,\n\tRIGHT: 39,\n\tSPACE: 32,\n\tTAB: 9,\n\tUP: 38\n};\n\n\n\n\n// Internal use only\nvar escapeSelector = $.ui.escapeSelector = ( function() {\n\tvar selectorEscape = /([!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~])/g;\n\treturn function( selector ) {\n\t\treturn selector.replace( selectorEscape, \"\\\\$1\" );\n\t};\n} )();\n\n\n/*!\n * jQuery UI Labels 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: labels\n//>>group: Core\n//>>description: Find all the labels associated with a given input\n//>>docs: http://api.jqueryui.com/labels/\n\n\n\nvar labels = $.fn.labels = function() {\n\tvar ancestor, selector, id, labels, ancestors;\n\n\t// Check control.labels first\n\tif ( this[ 0 ].labels && this[ 0 ].labels.length ) {\n\t\treturn this.pushStack( this[ 0 ].labels );\n\t}\n\n\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t// Above browsers do not support control.labels. Everything below is to support them\n\t// as well as document fragments. control.labels does not work on document fragments\n\tlabels = this.eq( 0 ).parents( \"label\" );\n\n\t// Look for the label based on the id\n\tid = this.attr( \"id\" );\n\tif ( id ) {\n\n\t\t// We don't search against the document in case the element\n\t\t// is disconnected from the DOM\n\t\tancestor = this.eq( 0 ).parents().last();\n\n\t\t// Get a full set of top level ancestors\n\t\tancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );\n\n\t\t// Create a selector for the label based on the id\n\t\tselector = \"label[for='\" + $.ui.escapeSelector( id ) + \"']\";\n\n\t\tlabels = labels.add( ancestors.find( selector ).addBack( selector ) );\n\n\t}\n\n\t// Return whatever we have found for labels\n\treturn this.pushStack( labels );\n};\n\n\n/*!\n * jQuery UI Scroll Parent 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: scrollParent\n//>>group: Core\n//>>description: Get the closest ancestor element that is scrollable.\n//>>docs: http://api.jqueryui.com/scrollParent/\n\n\n\nvar scrollParent = $.fn.scrollParent = function( includeHidden ) {\n\tvar position = this.css( \"position\" ),\n\t\texcludeStaticParent = position === \"absolute\",\n\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\tscrollParent = this.parents().filter( function() {\n\t\t\tvar parent = $( this );\n\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) +\n\t\t\t\tparent.css( \"overflow-x\" ) );\n\t\t} ).eq( 0 );\n\n\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t$( this[ 0 ].ownerDocument || document ) :\n\t\tscrollParent;\n};\n\n\n/*!\n * jQuery UI Tabbable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :tabbable Selector\n//>>group: Core\n//>>description: Selects elements which can be tabbed to.\n//>>docs: http://api.jqueryui.com/tabbable-selector/\n\n\n\nvar tabbable = $.extend( $.expr[ \":\" ], {\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\thasTabindex = tabIndex != null;\n\t\treturn ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );\n\t}\n} );\n\n\n/*!\n * jQuery UI Unique ID 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: uniqueId\n//>>group: Core\n//>>description: Functions to generate and remove uniqueId's\n//>>docs: http://api.jqueryui.com/uniqueId/\n\n\n\nvar uniqueId = $.fn.extend( {\n\tuniqueId: ( function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each( function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each( function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\n/*!\n * jQuery UI Accordion 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Accordion\n//>>group: Widgets\n// jscs:disable maximumLineLength\n//>>description: Displays collapsible content panels for presenting information in a limited amount of space.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/accordion/\n//>>demos: http://jqueryui.com/accordion/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/accordion.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsAccordion = $.widget( \"ui.accordion\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tclasses: {\n\t\t\t\"ui-accordion-header\": \"ui-corner-top\",\n\t\t\t\"ui-accordion-header-collapsed\": \"ui-corner-all\",\n\t\t\t\"ui-accordion-content\": \"ui-corner-bottom\"\n\t\t},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: \"> li > :first-child, > :not(li):even\",\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\thideProps: {\n\t\tborderTopWidth: \"hide\",\n\t\tborderBottomWidth: \"hide\",\n\t\tpaddingTop: \"hide\",\n\t\tpaddingBottom: \"hide\",\n\t\theight: \"hide\"\n\t},\n\n\tshowProps: {\n\t\tborderTopWidth: \"show\",\n\t\tborderBottomWidth: \"show\",\n\t\tpaddingTop: \"show\",\n\t\tpaddingBottom: \"show\",\n\t\theight: \"show\"\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis._addClass( \"ui-accordion\", \"ui-widget ui-helper-reset\" );\n\t\tthis.element.attr( \"role\", \"tablist\" );\n\n\t\t// Don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && ( options.active === false || options.active == null ) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icon, children,\n\t\t\ticons = this.options.icons;\n\n\t\tif ( icons ) {\n\t\t\ticon = $( \"<span>\" );\n\t\t\tthis._addClass( icon, \"ui-accordion-header-icon\", \"ui-icon \" + icons.header );\n\t\t\ticon.prependTo( this.headers );\n\t\t\tchildren = this.active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( children, icons.header )\n\t\t\t\t._addClass( children, null, icons.activeHeader )\n\t\t\t\t._addClass( this.headers, \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis._removeClass( this.headers, \"ui-accordion-icons\" );\n\t\tthis.headers.children( \".ui-accordion-header-icon\" ).remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// Clean up main element\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\t// Clean up headers\n\t\tthis.headers\n\t\t\t.removeAttr( \"role aria-expanded aria-selected aria-controls tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis._destroyIcons();\n\n\t\t// Clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role aria-hidden aria-labelledby\" )\n\t\t\t.removeUniqueId();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// Setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", value );\n\n\t\t// Support: IE8 Only\n\t\t// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t\tthis._toggleClass( this.headers.add( this.headers.next() ), null, \"ui-state-disabled\",\n\t\t\t!!value );\n\t},\n\n\t_keydown: function( event ) {\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.RIGHT:\n\t\tcase keyCode.DOWN:\n\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.LEFT:\n\t\tcase keyCode.UP:\n\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.SPACE:\n\t\tcase keyCode.ENTER:\n\t\t\tthis._eventHandler( event );\n\t\t\tbreak;\n\t\tcase keyCode.HOME:\n\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\tbreak;\n\t\tcase keyCode.END:\n\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\t$( toFocus ).trigger( \"focus\" );\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown: function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().trigger( \"focus\" );\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// Was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) ||\n\t\t\t\t!this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find( \".ui-state-disabled\" ).length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\n\t\t// was active, active panel still exists\n\t\t} else {\n\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tvar prevHeaders = this.headers,\n\t\t\tprevPanels = this.panels;\n\n\t\tthis.headers = this.element.find( this.options.header );\n\t\tthis._addClass( this.headers, \"ui-accordion-header ui-accordion-header-collapsed\",\n\t\t\t\"ui-state-default\" );\n\n\t\tthis.panels = this.headers.next().filter( \":not(.ui-accordion-content-active)\" ).hide();\n\t\tthis._addClass( this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevPanels ) {\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent();\n\n\t\tthis.active = this._findActive( options.active );\n\t\tthis._addClass( this.active, \"ui-accordion-header-active\", \"ui-state-active\" )\n\t\t\t._removeClass( this.active, \"ui-accordion-header-collapsed\" );\n\t\tthis._addClass( this.active.next(), \"ui-accordion-content-active\" );\n\t\tthis.active.next().show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each( function() {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t} )\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\ttabIndex: -1\n\t\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t\t} )\n\t\t\t\t\t.hide();\n\n\t\t// Make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr( {\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t\t} );\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each( function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.each( function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t} )\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar isVisible = $( this ).is( \":visible\" );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).show();\n\t\t\t\t\t}\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).hide();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// Trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler( {\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t} );\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t} );\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" } );\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar activeChildren, clickedChildren,\n\t\t\toptions = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// When the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// Switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tthis._removeClass( active, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactiveChildren = active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( activeChildren, null, options.icons.activeHeader )\n\t\t\t\t._addClass( activeChildren, null, options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tthis._removeClass( clicked, \"ui-accordion-header-collapsed\" )\n\t\t\t\t._addClass( clicked, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclickedChildren = clicked.children( \".ui-accordion-header-icon\" );\n\t\t\t\tthis._removeClass( clickedChildren, null, options.icons.header )\n\t\t\t\t\t._addClass( clickedChildren, null, options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tthis._addClass( clicked.next(), \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// Handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr( {\n\t\t\t\"aria-hidden\": \"true\"\n\t\t} );\n\t\ttoHide.prev().attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t} );\n\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr( {\n\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t} );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter( function() {\n\t\t\t\treturn parseInt( $( this ).attr( \"tabIndex\" ), 10 ) === 0;\n\t\t\t} )\n\t\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr( \"aria-hidden\", \"false\" )\n\t\t\t.prev()\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t} );\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tboxSizing = toShow.css( \"box-sizing\" ),\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( this.hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t} );\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( this.showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tif ( boxSizing === \"content-box\" ) {\n\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel,\n\t\t\tprev = toHide.prev();\n\n\t\tthis._removeClass( toHide, \"ui-accordion-content-active\" );\n\t\tthis._removeClass( prev, \"ui-accordion-header-active\" )\n\t\t\t._addClass( prev, \"ui-accordion-header-collapsed\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\n\t\t}\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n} );\n\n\n\nvar safeActiveElement = $.ui.safeActiveElement = function( document ) {\n\tvar activeElement;\n\n\t// Support: IE 9 only\n\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n\ttry {\n\t\tactiveElement = document.activeElement;\n\t} catch ( error ) {\n\t\tactiveElement = document.body;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE may return null instead of an element\n\t// Interestingly, this only seems to occur when NOT in an iframe\n\tif ( !activeElement ) {\n\t\tactiveElement = document.body;\n\t}\n\n\t// Support: IE 11 only\n\t// IE11 returns a seemingly empty object in some cases when accessing\n\t// document.activeElement from an <iframe>\n\tif ( !activeElement.nodeName ) {\n\t\tactiveElement = document.body;\n\t}\n\n\treturn activeElement;\n};\n\n\n/*!\n * jQuery UI Menu 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Menu\n//>>group: Widgets\n//>>description: Creates nestable menus.\n//>>docs: http://api.jqueryui.com/menu/\n//>>demos: http://jqueryui.com/menu/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/menu.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsMenu = $.widget( \"ui.menu\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<ul>\",\n\tdelay: 300,\n\toptions: {\n\t\ticons: {\n\t\t\tsubmenu: \"ui-icon-caret-1-e\"\n\t\t},\n\t\titems: \"> *\",\n\t\tmenus: \"ul\",\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"right top\"\n\t\t},\n\t\trole: \"menu\",\n\n\t\t// Callbacks\n\t\tblur: null,\n\t\tfocus: null,\n\t\tselect: null\n\t},\n\n\t_create: function() {\n\t\tthis.activeMenu = this.element;\n\n\t\t// Flag used to prevent firing of the click handler\n\t\t// as the event bubbles up through nested menus\n\t\tthis.mouseHandled = false;\n\t\tthis.element\n\t\t\t.uniqueId()\n\t\t\t.attr( {\n\t\t\t\trole: this.options.role,\n\t\t\t\ttabIndex: 0\n\t\t\t} );\n\n\t\tthis._addClass( \"ui-menu\", \"ui-widget ui-widget-content\" );\n\t\tthis._on( {\n\n\t\t\t// Prevent focus from sticking to links inside menu after clicking\n\t\t\t// them (focus should always stay on UL during navigation).\n\t\t\t\"mousedown .ui-menu-item\": function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t},\n\t\t\t\"click .ui-menu-item\": function( event ) {\n\t\t\t\tvar target = $( event.target );\n\t\t\t\tvar active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );\n\t\t\t\tif ( !this.mouseHandled && target.not( \".ui-state-disabled\" ).length ) {\n\t\t\t\t\tthis.select( event );\n\n\t\t\t\t\t// Only set the mouseHandled flag if the event will bubble, see #9469.\n\t\t\t\t\tif ( !event.isPropagationStopped() ) {\n\t\t\t\t\t\tthis.mouseHandled = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Open submenu on click\n\t\t\t\t\tif ( target.has( \".ui-menu\" ).length ) {\n\t\t\t\t\t\tthis.expand( event );\n\t\t\t\t\t} else if ( !this.element.is( \":focus\" ) &&\n\t\t\t\t\t\t\tactive.closest( \".ui-menu\" ).length ) {\n\n\t\t\t\t\t\t// Redirect focus to the menu\n\t\t\t\t\t\tthis.element.trigger( \"focus\", [ true ] );\n\n\t\t\t\t\t\t// If the active item is on the top level, let it stay active.\n\t\t\t\t\t\t// Otherwise, blur the active item since it is no longer visible.\n\t\t\t\t\t\tif ( this.active && this.active.parents( \".ui-menu\" ).length === 1 ) {\n\t\t\t\t\t\t\tclearTimeout( this.timer );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"mouseenter .ui-menu-item\": function( event ) {\n\n\t\t\t\t// Ignore mouse events while typeahead is active, see #10458.\n\t\t\t\t// Prevents focusing the wrong item when typeahead causes a scroll while the mouse\n\t\t\t\t// is over an item in the menu\n\t\t\t\tif ( this.previousFilter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar actualTarget = $( event.target ).closest( \".ui-menu-item\" ),\n\t\t\t\t\ttarget = $( event.currentTarget );\n\n\t\t\t\t// Ignore bubbled events on parent items, see #11641\n\t\t\t\tif ( actualTarget[ 0 ] !== target[ 0 ] ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Remove ui-state-active class from siblings of the newly focused menu item\n\t\t\t\t// to avoid a jump caused by adjacent elements both having a class with a border\n\t\t\t\tthis._removeClass( target.siblings().children( \".ui-state-active\" ),\n\t\t\t\t\tnull, \"ui-state-active\" );\n\t\t\t\tthis.focus( event, target );\n\t\t\t},\n\t\t\tmouseleave: \"collapseAll\",\n\t\t\t\"mouseleave .ui-menu\": \"collapseAll\",\n\t\t\tfocus: function( event, keepActiveItem ) {\n\n\t\t\t\t// If there's already an active item, keep it active\n\t\t\t\t// If not, activate the first item\n\t\t\t\tvar item = this.active || this.element.find( this.options.items ).eq( 0 );\n\n\t\t\t\tif ( !keepActiveItem ) {\n\t\t\t\t\tthis.focus( event, item );\n\t\t\t\t}\n\t\t\t},\n\t\t\tblur: function( event ) {\n\t\t\t\tthis._delay( function() {\n\t\t\t\t\tvar notContained = !$.contains(\n\t\t\t\t\t\tthis.element[ 0 ],\n\t\t\t\t\t\t$.ui.safeActiveElement( this.document[ 0 ] )\n\t\t\t\t\t);\n\t\t\t\t\tif ( notContained ) {\n\t\t\t\t\t\tthis.collapseAll( event );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tkeydown: \"_keydown\"\n\t\t} );\n\n\t\tthis.refresh();\n\n\t\t// Clicks outside of a menu collapse any open menus\n\t\tthis._on( this.document, {\n\t\t\tclick: function( event ) {\n\t\t\t\tif ( this._closeOnDocumentClick( event ) ) {\n\t\t\t\t\tthis.collapseAll( event );\n\t\t\t\t}\n\n\t\t\t\t// Reset the mouseHandled flag\n\t\t\t\tthis.mouseHandled = false;\n\t\t\t}\n\t\t} );\n\t},\n\n\t_destroy: function() {\n\t\tvar items = this.element.find( \".ui-menu-item\" )\n\t\t\t\t.removeAttr( \"role aria-disabled\" ),\n\t\t\tsubmenus = items.children( \".ui-menu-item-wrapper\" )\n\t\t\t\t.removeUniqueId()\n\t\t\t\t.removeAttr( \"tabIndex role aria-haspopup\" );\n\n\t\t// Destroy (sub)menus\n\t\tthis.element\n\t\t\t.removeAttr( \"aria-activedescendant\" )\n\t\t\t.find( \".ui-menu\" ).addBack()\n\t\t\t\t.removeAttr( \"role aria-labelledby aria-expanded aria-hidden aria-disabled \" +\n\t\t\t\t\t\"tabIndex\" )\n\t\t\t\t.removeUniqueId()\n\t\t\t\t.show();\n\n\t\tsubmenus.children().each( function() {\n\t\t\tvar elem = $( this );\n\t\t\tif ( elem.data( \"ui-menu-submenu-caret\" ) ) {\n\t\t\t\telem.remove();\n\t\t\t}\n\t\t} );\n\t},\n\n\t_keydown: function( event ) {\n\t\tvar match, prev, character, skip,\n\t\t\tpreventDefault = true;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\tthis.previousPage( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\tthis.nextPage( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.HOME:\n\t\t\tthis._move( \"first\", \"first\", event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.END:\n\t\t\tthis._move( \"last\", \"last\", event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.UP:\n\t\t\tthis.previous( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.DOWN:\n\t\t\tthis.next( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.LEFT:\n\t\t\tthis.collapse( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.RIGHT:\n\t\t\tif ( this.active && !this.active.is( \".ui-state-disabled\" ) ) {\n\t\t\t\tthis.expand( event );\n\t\t\t}\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.ENTER:\n\t\tcase $.ui.keyCode.SPACE:\n\t\t\tthis._activate( event );\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.ESCAPE:\n\t\t\tthis.collapse( event );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tpreventDefault = false;\n\t\t\tprev = this.previousFilter || \"\";\n\t\t\tskip = false;\n\n\t\t\t// Support number pad values\n\t\t\tcharacter = event.keyCode >= 96 && event.keyCode <= 105 ?\n\t\t\t\t( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );\n\n\t\t\tclearTimeout( this.filterTimer );\n\n\t\t\tif ( character === prev ) {\n\t\t\t\tskip = true;\n\t\t\t} else {\n\t\t\t\tcharacter = prev + character;\n\t\t\t}\n\n\t\t\tmatch = this._filterMenuItems( character );\n\t\t\tmatch = skip && match.index( this.active.next() ) !== -1 ?\n\t\t\t\tthis.active.nextAll( \".ui-menu-item\" ) :\n\t\t\t\tmatch;\n\n\t\t\t// If no matches on the current filter, reset to the last character pressed\n\t\t\t// to move down the menu to the first item that starts with that character\n\t\t\tif ( !match.length ) {\n\t\t\t\tcharacter = String.fromCharCode( event.keyCode );\n\t\t\t\tmatch = this._filterMenuItems( character );\n\t\t\t}\n\n\t\t\tif ( match.length ) {\n\t\t\t\tthis.focus( event, match );\n\t\t\t\tthis.previousFilter = character;\n\t\t\t\tthis.filterTimer = this._delay( function() {\n\t\t\t\t\tdelete this.previousFilter;\n\t\t\t\t}, 1000 );\n\t\t\t} else {\n\t\t\t\tdelete this.previousFilter;\n\t\t\t}\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_activate: function( event ) {\n\t\tif ( this.active && !this.active.is( \".ui-state-disabled\" ) ) {\n\t\t\tif ( this.active.children( \"[aria-haspopup='true']\" ).length ) {\n\t\t\t\tthis.expand( event );\n\t\t\t} else {\n\t\t\t\tthis.select( event );\n\t\t\t}\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar menus, items, newSubmenus, newItems, newWrappers,\n\t\t\tthat = this,\n\t\t\ticon = this.options.icons.submenu,\n\t\t\tsubmenus = this.element.find( this.options.menus );\n\n\t\tthis._toggleClass( \"ui-menu-icons\", null, !!this.element.find( \".ui-icon\" ).length );\n\n\t\t// Initialize nested menus\n\t\tnewSubmenus = submenus.filter( \":not(.ui-menu)\" )\n\t\t\t.hide()\n\t\t\t.attr( {\n\t\t\t\trole: this.options.role,\n\t\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t} )\n\t\t\t.each( function() {\n\t\t\t\tvar menu = $( this ),\n\t\t\t\t\titem = menu.prev(),\n\t\t\t\t\tsubmenuCaret = $( \"<span>\" ).data( \"ui-menu-submenu-caret\", true );\n\n\t\t\t\tthat._addClass( submenuCaret, \"ui-menu-icon\", \"ui-icon \" + icon );\n\t\t\t\titem\n\t\t\t\t\t.attr( \"aria-haspopup\", \"true\" )\n\t\t\t\t\t.prepend( submenuCaret );\n\t\t\t\tmenu.attr( \"aria-labelledby\", item.attr( \"id\" ) );\n\t\t\t} );\n\n\t\tthis._addClass( newSubmenus, \"ui-menu\", \"ui-widget ui-widget-content ui-front\" );\n\n\t\tmenus = submenus.add( this.element );\n\t\titems = menus.find( this.options.items );\n\n\t\t// Initialize menu-items containing spaces and/or dashes only as dividers\n\t\titems.not( \".ui-menu-item\" ).each( function() {\n\t\t\tvar item = $( this );\n\t\t\tif ( that._isDivider( item ) ) {\n\t\t\t\tthat._addClass( item, \"ui-menu-divider\", \"ui-widget-content\" );\n\t\t\t}\n\t\t} );\n\n\t\t// Don't refresh list items that are already adapted\n\t\tnewItems = items.not( \".ui-menu-item, .ui-menu-divider\" );\n\t\tnewWrappers = newItems.children()\n\t\t\t.not( \".ui-menu\" )\n\t\t\t\t.uniqueId()\n\t\t\t\t.attr( {\n\t\t\t\t\ttabIndex: -1,\n\t\t\t\t\trole: this._itemRole()\n\t\t\t\t} );\n\t\tthis._addClass( newItems, \"ui-menu-item\" )\n\t\t\t._addClass( newWrappers, \"ui-menu-item-wrapper\" );\n\n\t\t// Add aria-disabled attribute to any disabled menu item\n\t\titems.filter( \".ui-state-disabled\" ).attr( \"aria-disabled\", \"true\" );\n\n\t\t// If the active item has been removed, blur the menu\n\t\tif ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\t\t\tthis.blur();\n\t\t}\n\t},\n\n\t_itemRole: function() {\n\t\treturn {\n\t\t\tmenu: \"menuitem\",\n\t\t\tlistbox: \"option\"\n\t\t}[ this.options.role ];\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icons\" ) {\n\t\t\tvar icons = this.element.find( \".ui-menu-icon\" );\n\t\t\tthis._removeClass( icons, null, this.options.icons.submenu )\n\t\t\t\t._addClass( icons, null, value.submenu );\n\t\t}\n\t\tthis._super( key, value );\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", String( value ) );\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t},\n\n\tfocus: function( event, item ) {\n\t\tvar nested, focused, activeParent;\n\t\tthis.blur( event, event && event.type === \"focus\" );\n\n\t\tthis._scrollIntoView( item );\n\n\t\tthis.active = item.first();\n\n\t\tfocused = this.active.children( \".ui-menu-item-wrapper\" );\n\t\tthis._addClass( focused, null, \"ui-state-active\" );\n\n\t\t// Only update aria-activedescendant if there's a role\n\t\t// otherwise we assume focus is managed elsewhere\n\t\tif ( this.options.role ) {\n\t\t\tthis.element.attr( \"aria-activedescendant\", focused.attr( \"id\" ) );\n\t\t}\n\n\t\t// Highlight active parent menu item, if any\n\t\tactiveParent = this.active\n\t\t\t.parent()\n\t\t\t\t.closest( \".ui-menu-item\" )\n\t\t\t\t\t.children( \".ui-menu-item-wrapper\" );\n\t\tthis._addClass( activeParent, null, \"ui-state-active\" );\n\n\t\tif ( event && event.type === \"keydown\" ) {\n\t\t\tthis._close();\n\t\t} else {\n\t\t\tthis.timer = this._delay( function() {\n\t\t\t\tthis._close();\n\t\t\t}, this.delay );\n\t\t}\n\n\t\tnested = item.children( \".ui-menu\" );\n\t\tif ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {\n\t\t\tthis._startOpening( nested );\n\t\t}\n\t\tthis.activeMenu = item.parent();\n\n\t\tthis._trigger( \"focus\", event, { item: item } );\n\t},\n\n\t_scrollIntoView: function( item ) {\n\t\tvar borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;\n\t\tif ( this._hasScroll() ) {\n\t\t\tborderTop = parseFloat( $.css( this.activeMenu[ 0 ], \"borderTopWidth\" ) ) || 0;\n\t\t\tpaddingTop = parseFloat( $.css( this.activeMenu[ 0 ], \"paddingTop\" ) ) || 0;\n\t\t\toffset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;\n\t\t\tscroll = this.activeMenu.scrollTop();\n\t\t\telementHeight = this.activeMenu.height();\n\t\t\titemHeight = item.outerHeight();\n\n\t\t\tif ( offset < 0 ) {\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset );\n\t\t\t} else if ( offset + itemHeight > elementHeight ) {\n\t\t\t\tthis.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );\n\t\t\t}\n\t\t}\n\t},\n\n\tblur: function( event, fromFocus ) {\n\t\tif ( !fromFocus ) {\n\t\t\tclearTimeout( this.timer );\n\t\t}\n\n\t\tif ( !this.active ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._removeClass( this.active.children( \".ui-menu-item-wrapper\" ),\n\t\t\tnull, \"ui-state-active\" );\n\n\t\tthis._trigger( \"blur\", event, { item: this.active } );\n\t\tthis.active = null;\n\t},\n\n\t_startOpening: function( submenu ) {\n\t\tclearTimeout( this.timer );\n\n\t\t// Don't open if already open fixes a Firefox bug that caused a .5 pixel\n\t\t// shift in the submenu position when mousing over the caret icon\n\t\tif ( submenu.attr( \"aria-hidden\" ) !== \"true\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.timer = this._delay( function() {\n\t\t\tthis._close();\n\t\t\tthis._open( submenu );\n\t\t}, this.delay );\n\t},\n\n\t_open: function( submenu ) {\n\t\tvar position = $.extend( {\n\t\t\tof: this.active\n\t\t}, this.options.position );\n\n\t\tclearTimeout( this.timer );\n\t\tthis.element.find( \".ui-menu\" ).not( submenu.parents( \".ui-menu\" ) )\n\t\t\t.hide()\n\t\t\t.attr( \"aria-hidden\", \"true\" );\n\n\t\tsubmenu\n\t\t\t.show()\n\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t.attr( \"aria-expanded\", \"true\" )\n\t\t\t.position( position );\n\t},\n\n\tcollapseAll: function( event, all ) {\n\t\tclearTimeout( this.timer );\n\t\tthis.timer = this._delay( function() {\n\n\t\t\t// If we were passed an event, look for the submenu that contains the event\n\t\t\tvar currentMenu = all ? this.element :\n\t\t\t\t$( event && event.target ).closest( this.element.find( \".ui-menu\" ) );\n\n\t\t\t// If we found no valid submenu ancestor, use the main menu to close all\n\t\t\t// sub menus anyway\n\t\t\tif ( !currentMenu.length ) {\n\t\t\t\tcurrentMenu = this.element;\n\t\t\t}\n\n\t\t\tthis._close( currentMenu );\n\n\t\t\tthis.blur( event );\n\n\t\t\t// Work around active item staying active after menu is blurred\n\t\t\tthis._removeClass( currentMenu.find( \".ui-state-active\" ), null, \"ui-state-active\" );\n\n\t\t\tthis.activeMenu = currentMenu;\n\t\t}, this.delay );\n\t},\n\n\t// With no arguments, closes the currently active menu - if nothing is active\n\t// it closes all menus.  If passed an argument, it will search for menus BELOW\n\t_close: function( startMenu ) {\n\t\tif ( !startMenu ) {\n\t\t\tstartMenu = this.active ? this.active.parent() : this.element;\n\t\t}\n\n\t\tstartMenu.find( \".ui-menu\" )\n\t\t\t.hide()\n\t\t\t.attr( \"aria-hidden\", \"true\" )\n\t\t\t.attr( \"aria-expanded\", \"false\" );\n\t},\n\n\t_closeOnDocumentClick: function( event ) {\n\t\treturn !$( event.target ).closest( \".ui-menu\" ).length;\n\t},\n\n\t_isDivider: function( item ) {\n\n\t\t// Match hyphen, em dash, en dash\n\t\treturn !/[^\\-\\u2014\\u2013\\s]/.test( item.text() );\n\t},\n\n\tcollapse: function( event ) {\n\t\tvar newItem = this.active &&\n\t\t\tthis.active.parent().closest( \".ui-menu-item\", this.element );\n\t\tif ( newItem && newItem.length ) {\n\t\t\tthis._close();\n\t\t\tthis.focus( event, newItem );\n\t\t}\n\t},\n\n\texpand: function( event ) {\n\t\tvar newItem = this.active &&\n\t\t\tthis.active\n\t\t\t\t.children( \".ui-menu \" )\n\t\t\t\t\t.find( this.options.items )\n\t\t\t\t\t\t.first();\n\n\t\tif ( newItem && newItem.length ) {\n\t\t\tthis._open( newItem.parent() );\n\n\t\t\t// Delay so Firefox will not hide activedescendant change in expanding submenu from AT\n\t\t\tthis._delay( function() {\n\t\t\t\tthis.focus( event, newItem );\n\t\t\t} );\n\t\t}\n\t},\n\n\tnext: function( event ) {\n\t\tthis._move( \"next\", \"first\", event );\n\t},\n\n\tprevious: function( event ) {\n\t\tthis._move( \"prev\", \"last\", event );\n\t},\n\n\tisFirstItem: function() {\n\t\treturn this.active && !this.active.prevAll( \".ui-menu-item\" ).length;\n\t},\n\n\tisLastItem: function() {\n\t\treturn this.active && !this.active.nextAll( \".ui-menu-item\" ).length;\n\t},\n\n\t_move: function( direction, filter, event ) {\n\t\tvar next;\n\t\tif ( this.active ) {\n\t\t\tif ( direction === \"first\" || direction === \"last\" ) {\n\t\t\t\tnext = this.active\n\t\t\t\t\t[ direction === \"first\" ? \"prevAll\" : \"nextAll\" ]( \".ui-menu-item\" )\n\t\t\t\t\t.eq( -1 );\n\t\t\t} else {\n\t\t\t\tnext = this.active\n\t\t\t\t\t[ direction + \"All\" ]( \".ui-menu-item\" )\n\t\t\t\t\t.eq( 0 );\n\t\t\t}\n\t\t}\n\t\tif ( !next || !next.length || !this.active ) {\n\t\t\tnext = this.activeMenu.find( this.options.items )[ filter ]();\n\t\t}\n\n\t\tthis.focus( event, next );\n\t},\n\n\tnextPage: function( event ) {\n\t\tvar item, base, height;\n\n\t\tif ( !this.active ) {\n\t\t\tthis.next( event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.isLastItem() ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( this._hasScroll() ) {\n\t\t\tbase = this.active.offset().top;\n\t\t\theight = this.element.height();\n\t\t\tthis.active.nextAll( \".ui-menu-item\" ).each( function() {\n\t\t\t\titem = $( this );\n\t\t\t\treturn item.offset().top - base - height < 0;\n\t\t\t} );\n\n\t\t\tthis.focus( event, item );\n\t\t} else {\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items )\n\t\t\t\t[ !this.active ? \"first\" : \"last\" ]() );\n\t\t}\n\t},\n\n\tpreviousPage: function( event ) {\n\t\tvar item, base, height;\n\t\tif ( !this.active ) {\n\t\t\tthis.next( event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.isFirstItem() ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( this._hasScroll() ) {\n\t\t\tbase = this.active.offset().top;\n\t\t\theight = this.element.height();\n\t\t\tthis.active.prevAll( \".ui-menu-item\" ).each( function() {\n\t\t\t\titem = $( this );\n\t\t\t\treturn item.offset().top - base + height > 0;\n\t\t\t} );\n\n\t\t\tthis.focus( event, item );\n\t\t} else {\n\t\t\tthis.focus( event, this.activeMenu.find( this.options.items ).first() );\n\t\t}\n\t},\n\n\t_hasScroll: function() {\n\t\treturn this.element.outerHeight() < this.element.prop( \"scrollHeight\" );\n\t},\n\n\tselect: function( event ) {\n\n\t\t// TODO: It should never be possible to not have an active item at this\n\t\t// point, but the tests don't trigger mouseenter before click.\n\t\tthis.active = this.active || $( event.target ).closest( \".ui-menu-item\" );\n\t\tvar ui = { item: this.active };\n\t\tif ( !this.active.has( \".ui-menu\" ).length ) {\n\t\t\tthis.collapseAll( event, true );\n\t\t}\n\t\tthis._trigger( \"select\", event, ui );\n\t},\n\n\t_filterMenuItems: function( character ) {\n\t\tvar escapedCharacter = character.replace( /[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\" ),\n\t\t\tregex = new RegExp( \"^\" + escapedCharacter, \"i\" );\n\n\t\treturn this.activeMenu\n\t\t\t.find( this.options.items )\n\n\t\t\t\t// Only match on items, not dividers or other content (#10571)\n\t\t\t\t.filter( \".ui-menu-item\" )\n\t\t\t\t\t.filter( function() {\n\t\t\t\t\t\treturn regex.test(\n\t\t\t\t\t\t\t$.trim( $( this ).children( \".ui-menu-item-wrapper\" ).text() ) );\n\t\t\t\t\t} );\n\t}\n} );\n\n\n/*!\n * jQuery UI Autocomplete 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Autocomplete\n//>>group: Widgets\n//>>description: Lists suggested words as the user is typing.\n//>>docs: http://api.jqueryui.com/autocomplete/\n//>>demos: http://jqueryui.com/autocomplete/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/autocomplete.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.autocomplete\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<input>\",\n\toptions: {\n\t\tappendTo: null,\n\t\tautoFocus: false,\n\t\tdelay: 300,\n\t\tminLength: 1,\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"none\"\n\t\t},\n\t\tsource: null,\n\n\t\t// Callbacks\n\t\tchange: null,\n\t\tclose: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tresponse: null,\n\t\tsearch: null,\n\t\tselect: null\n\t},\n\n\trequestIndex: 0,\n\tpending: 0,\n\n\t_create: function() {\n\n\t\t// Some browsers only repeat keydown events, not keypress events,\n\t\t// so we use the suppressKeyPress flag to determine if we've already\n\t\t// handled the keydown event. #7269\n\t\t// Unfortunately the code for & in keypress is the same as the up arrow,\n\t\t// so we use the suppressKeyPressRepeat flag to avoid handling keypress\n\t\t// events when we know the keydown event was used to modify the\n\t\t// search term. #7799\n\t\tvar suppressKeyPress, suppressKeyPressRepeat, suppressInput,\n\t\t\tnodeName = this.element[ 0 ].nodeName.toLowerCase(),\n\t\t\tisTextarea = nodeName === \"textarea\",\n\t\t\tisInput = nodeName === \"input\";\n\n\t\t// Textareas are always multi-line\n\t\t// Inputs are always single-line, even if inside a contentEditable element\n\t\t// IE also treats inputs as contentEditable\n\t\t// All other element types are determined by whether or not they're contentEditable\n\t\tthis.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );\n\n\t\tthis.valueMethod = this.element[ isTextarea || isInput ? \"val\" : \"text\" ];\n\t\tthis.isNewMenu = true;\n\n\t\tthis._addClass( \"ui-autocomplete-input\" );\n\t\tthis.element.attr( \"autocomplete\", \"off\" );\n\n\t\tthis._on( this.element, {\n\t\t\tkeydown: function( event ) {\n\t\t\t\tif ( this.element.prop( \"readOnly\" ) ) {\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tsuppressInput = true;\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsuppressKeyPress = false;\n\t\t\t\tsuppressInput = false;\n\t\t\t\tsuppressKeyPressRepeat = false;\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ENTER:\n\n\t\t\t\t\t// when menu is open and has focus\n\t\t\t\t\tif ( this.menu.active ) {\n\n\t\t\t\t\t\t// #6055 - Opera still allows the keypress to occur\n\t\t\t\t\t\t// which causes forms to submit\n\t\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.TAB:\n\t\t\t\t\tif ( this.menu.active ) {\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ESCAPE:\n\t\t\t\t\tif ( this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tif ( !this.isMultiLine ) {\n\t\t\t\t\t\t\tthis._value( this.term );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.close( event );\n\n\t\t\t\t\t\t// Different browsers have different default behavior for escape\n\t\t\t\t\t\t// Single press can mean undo or clear\n\t\t\t\t\t\t// Double press in IE means clear the whole form\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\n\t\t\t\t\t// search timeout should be triggered before the input value is changed\n\t\t\t\t\tthis._searchTimeout( event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeypress: function( event ) {\n\t\t\t\tif ( suppressKeyPress ) {\n\t\t\t\t\tsuppressKeyPress = false;\n\t\t\t\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( suppressKeyPressRepeat ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Replicate some key handlers to allow them to repeat in Firefox and Opera\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tinput: function( event ) {\n\t\t\t\tif ( suppressInput ) {\n\t\t\t\t\tsuppressInput = false;\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._searchTimeout( event );\n\t\t\t},\n\t\t\tfocus: function() {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.previous = this._value();\n\t\t\t},\n\t\t\tblur: function( event ) {\n\t\t\t\tif ( this.cancelBlur ) {\n\t\t\t\t\tdelete this.cancelBlur;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tclearTimeout( this.searching );\n\t\t\t\tthis.close( event );\n\t\t\t\tthis._change( event );\n\t\t\t}\n\t\t} );\n\n\t\tthis._initSource();\n\t\tthis.menu = $( \"<ul>\" )\n\t\t\t.appendTo( this._appendTo() )\n\t\t\t.menu( {\n\n\t\t\t\t// disable ARIA support, the live region takes care of that\n\t\t\t\trole: null\n\t\t\t} )\n\t\t\t.hide()\n\t\t\t.menu( \"instance\" );\n\n\t\tthis._addClass( this.menu.element, \"ui-autocomplete\", \"ui-front\" );\n\t\tthis._on( this.menu.element, {\n\t\t\tmousedown: function( event ) {\n\n\t\t\t\t// prevent moving focus out of the text field\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// IE doesn't prevent moving focus even with event.preventDefault()\n\t\t\t\t// so we set a flag to know when we should ignore the blur event\n\t\t\t\tthis.cancelBlur = true;\n\t\t\t\tthis._delay( function() {\n\t\t\t\t\tdelete this.cancelBlur;\n\n\t\t\t\t\t// Support: IE 8 only\n\t\t\t\t\t// Right clicking a menu item or selecting text from the menu items will\n\t\t\t\t\t// result in focus moving out of the input. However, we've already received\n\t\t\t\t\t// and ignored the blur event because of the cancelBlur flag set above. So\n\t\t\t\t\t// we restore focus to ensure that the menu closes properly based on the user's\n\t\t\t\t\t// next actions.\n\t\t\t\t\tif ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {\n\t\t\t\t\t\tthis.element.trigger( \"focus\" );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tmenufocus: function( event, ui ) {\n\t\t\t\tvar label, item;\n\n\t\t\t\t// support: Firefox\n\t\t\t\t// Prevent accidental activation of menu items in Firefox (#7024 #9118)\n\t\t\t\tif ( this.isNewMenu ) {\n\t\t\t\t\tthis.isNewMenu = false;\n\t\t\t\t\tif ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {\n\t\t\t\t\t\tthis.menu.blur();\n\n\t\t\t\t\t\tthis.document.one( \"mousemove\", function() {\n\t\t\t\t\t\t\t$( event.target ).trigger( event.originalEvent );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\titem = ui.item.data( \"ui-autocomplete-item\" );\n\t\t\t\tif ( false !== this._trigger( \"focus\", event, { item: item } ) ) {\n\n\t\t\t\t\t// use value to match what will end up in the input, if it was a key event\n\t\t\t\t\tif ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {\n\t\t\t\t\t\tthis._value( item.value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Announce the value in the liveRegion\n\t\t\t\tlabel = ui.item.attr( \"aria-label\" ) || item.value;\n\t\t\t\tif ( label && $.trim( label ).length ) {\n\t\t\t\t\tthis.liveRegion.children().hide();\n\t\t\t\t\t$( \"<div>\" ).text( label ).appendTo( this.liveRegion );\n\t\t\t\t}\n\t\t\t},\n\t\t\tmenuselect: function( event, ui ) {\n\t\t\t\tvar item = ui.item.data( \"ui-autocomplete-item\" ),\n\t\t\t\t\tprevious = this.previous;\n\n\t\t\t\t// Only trigger when focus was lost (click on menu)\n\t\t\t\tif ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {\n\t\t\t\t\tthis.element.trigger( \"focus\" );\n\t\t\t\t\tthis.previous = previous;\n\n\t\t\t\t\t// #6109 - IE triggers two focus events and the second\n\t\t\t\t\t// is asynchronous, so we need to reset the previous\n\t\t\t\t\t// term synchronously and asynchronously :-(\n\t\t\t\t\tthis._delay( function() {\n\t\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t\tthis.selectedItem = item;\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tif ( false !== this._trigger( \"select\", event, { item: item } ) ) {\n\t\t\t\t\tthis._value( item.value );\n\t\t\t\t}\n\n\t\t\t\t// reset the term after the select event\n\t\t\t\t// this allows custom select handling to work properly\n\t\t\t\tthis.term = this._value();\n\n\t\t\t\tthis.close( event );\n\t\t\t\tthis.selectedItem = item;\n\t\t\t}\n\t\t} );\n\n\t\tthis.liveRegion = $( \"<div>\", {\n\t\t\trole: \"status\",\n\t\t\t\"aria-live\": \"assertive\",\n\t\t\t\"aria-relevant\": \"additions\"\n\t\t} )\n\t\t\t.appendTo( this.document[ 0 ].body );\n\n\t\tthis._addClass( this.liveRegion, null, \"ui-helper-hidden-accessible\" );\n\n\t\t// Turning off autocomplete prevents the browser from remembering the\n\t\t// value when navigating through history, so we re-enable autocomplete\n\t\t// if the page is unloaded before the widget is destroyed. #7790\n\t\tthis._on( this.window, {\n\t\t\tbeforeunload: function() {\n\t\t\t\tthis.element.removeAttr( \"autocomplete\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_destroy: function() {\n\t\tclearTimeout( this.searching );\n\t\tthis.element.removeAttr( \"autocomplete\" );\n\t\tthis.menu.element.remove();\n\t\tthis.liveRegion.remove();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"source\" ) {\n\t\t\tthis._initSource();\n\t\t}\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.menu.element.appendTo( this._appendTo() );\n\t\t}\n\t\tif ( key === \"disabled\" && value && this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t},\n\n\t_isEventTargetInWidget: function( event ) {\n\t\tvar menuElement = this.menu.element[ 0 ];\n\n\t\treturn event.target === this.element[ 0 ] ||\n\t\t\tevent.target === menuElement ||\n\t\t\t$.contains( menuElement, event.target );\n\t},\n\n\t_closeOnClickOutside: function( event ) {\n\t\tif ( !this._isEventTargetInWidget( event ) ) {\n\t\t\tthis.close();\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\n\t\tif ( element ) {\n\t\t\telement = element.jquery || element.nodeType ?\n\t\t\t\t$( element ) :\n\t\t\t\tthis.document.find( element ).eq( 0 );\n\t\t}\n\n\t\tif ( !element || !element[ 0 ] ) {\n\t\t\telement = this.element.closest( \".ui-front, dialog\" );\n\t\t}\n\n\t\tif ( !element.length ) {\n\t\t\telement = this.document[ 0 ].body;\n\t\t}\n\n\t\treturn element;\n\t},\n\n\t_initSource: function() {\n\t\tvar array, url,\n\t\t\tthat = this;\n\t\tif ( $.isArray( this.options.source ) ) {\n\t\t\tarray = this.options.source;\n\t\t\tthis.source = function( request, response ) {\n\t\t\t\tresponse( $.ui.autocomplete.filter( array, request.term ) );\n\t\t\t};\n\t\t} else if ( typeof this.options.source === \"string\" ) {\n\t\t\turl = this.options.source;\n\t\t\tthis.source = function( request, response ) {\n\t\t\t\tif ( that.xhr ) {\n\t\t\t\t\tthat.xhr.abort();\n\t\t\t\t}\n\t\t\t\tthat.xhr = $.ajax( {\n\t\t\t\t\turl: url,\n\t\t\t\t\tdata: request,\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\tsuccess: function( data ) {\n\t\t\t\t\t\tresponse( data );\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tresponse( [] );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t};\n\t\t} else {\n\t\t\tthis.source = this.options.source;\n\t\t}\n\t},\n\n\t_searchTimeout: function( event ) {\n\t\tclearTimeout( this.searching );\n\t\tthis.searching = this._delay( function() {\n\n\t\t\t// Search if the value has changed, or if the user retypes the same value (see #7434)\n\t\t\tvar equalValues = this.term === this._value(),\n\t\t\t\tmenuVisible = this.menu.element.is( \":visible\" ),\n\t\t\t\tmodifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n\n\t\t\tif ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.search( null, event );\n\t\t\t}\n\t\t}, this.options.delay );\n\t},\n\n\tsearch: function( value, event ) {\n\t\tvalue = value != null ? value : this._value();\n\n\t\t// Always save the actual value, not the one passed as an argument\n\t\tthis.term = this._value();\n\n\t\tif ( value.length < this.options.minLength ) {\n\t\t\treturn this.close( event );\n\t\t}\n\n\t\tif ( this._trigger( \"search\", event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this._search( value );\n\t},\n\n\t_search: function( value ) {\n\t\tthis.pending++;\n\t\tthis._addClass( \"ui-autocomplete-loading\" );\n\t\tthis.cancelSearch = false;\n\n\t\tthis.source( { term: value }, this._response() );\n\t},\n\n\t_response: function() {\n\t\tvar index = ++this.requestIndex;\n\n\t\treturn $.proxy( function( content ) {\n\t\t\tif ( index === this.requestIndex ) {\n\t\t\t\tthis.__response( content );\n\t\t\t}\n\n\t\t\tthis.pending--;\n\t\t\tif ( !this.pending ) {\n\t\t\t\tthis._removeClass( \"ui-autocomplete-loading\" );\n\t\t\t}\n\t\t}, this );\n\t},\n\n\t__response: function( content ) {\n\t\tif ( content ) {\n\t\t\tcontent = this._normalize( content );\n\t\t}\n\t\tthis._trigger( \"response\", null, { content: content } );\n\t\tif ( !this.options.disabled && content && content.length && !this.cancelSearch ) {\n\t\t\tthis._suggest( content );\n\t\t\tthis._trigger( \"open\" );\n\t\t} else {\n\n\t\t\t// use ._close() instead of .close() so we don't cancel future searches\n\t\t\tthis._close();\n\t\t}\n\t},\n\n\tclose: function( event ) {\n\t\tthis.cancelSearch = true;\n\t\tthis._close( event );\n\t},\n\n\t_close: function( event ) {\n\n\t\t// Remove the handler that closes the menu on outside clicks\n\t\tthis._off( this.document, \"mousedown\" );\n\n\t\tif ( this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis.menu.element.hide();\n\t\t\tthis.menu.blur();\n\t\t\tthis.isNewMenu = true;\n\t\t\tthis._trigger( \"close\", event );\n\t\t}\n\t},\n\n\t_change: function( event ) {\n\t\tif ( this.previous !== this._value() ) {\n\t\t\tthis._trigger( \"change\", event, { item: this.selectedItem } );\n\t\t}\n\t},\n\n\t_normalize: function( items ) {\n\n\t\t// assume all items have the right format when the first item is complete\n\t\tif ( items.length && items[ 0 ].label && items[ 0 ].value ) {\n\t\t\treturn items;\n\t\t}\n\t\treturn $.map( items, function( item ) {\n\t\t\tif ( typeof item === \"string\" ) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: item,\n\t\t\t\t\tvalue: item\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn $.extend( {}, item, {\n\t\t\t\tlabel: item.label || item.value,\n\t\t\t\tvalue: item.value || item.label\n\t\t\t} );\n\t\t} );\n\t},\n\n\t_suggest: function( items ) {\n\t\tvar ul = this.menu.element.empty();\n\t\tthis._renderMenu( ul, items );\n\t\tthis.isNewMenu = true;\n\t\tthis.menu.refresh();\n\n\t\t// Size and position menu\n\t\tul.show();\n\t\tthis._resizeMenu();\n\t\tul.position( $.extend( {\n\t\t\tof: this.element\n\t\t}, this.options.position ) );\n\n\t\tif ( this.options.autoFocus ) {\n\t\t\tthis.menu.next();\n\t\t}\n\n\t\t// Listen for interactions outside of the widget (#6642)\n\t\tthis._on( this.document, {\n\t\t\tmousedown: \"_closeOnClickOutside\"\n\t\t} );\n\t},\n\n\t_resizeMenu: function() {\n\t\tvar ul = this.menu.element;\n\t\tul.outerWidth( Math.max(\n\n\t\t\t// Firefox wraps long text (possibly a rounding bug)\n\t\t\t// so we add 1px to avoid the wrapping (#7513)\n\t\t\tul.width( \"\" ).outerWidth() + 1,\n\t\t\tthis.element.outerWidth()\n\t\t) );\n\t},\n\n\t_renderMenu: function( ul, items ) {\n\t\tvar that = this;\n\t\t$.each( items, function( index, item ) {\n\t\t\tthat._renderItemData( ul, item );\n\t\t} );\n\t},\n\n\t_renderItemData: function( ul, item ) {\n\t\treturn this._renderItem( ul, item ).data( \"ui-autocomplete-item\", item );\n\t},\n\n\t_renderItem: function( ul, item ) {\n\t\treturn $( \"<li>\" )\n\t\t\t.append( $( \"<div>\" ).text( item.label ) )\n\t\t\t.appendTo( ul );\n\t},\n\n\t_move: function( direction, event ) {\n\t\tif ( !this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis.search( null, event );\n\t\t\treturn;\n\t\t}\n\t\tif ( this.menu.isFirstItem() && /^previous/.test( direction ) ||\n\t\t\t\tthis.menu.isLastItem() && /^next/.test( direction ) ) {\n\n\t\t\tif ( !this.isMultiLine ) {\n\t\t\t\tthis._value( this.term );\n\t\t\t}\n\n\t\t\tthis.menu.blur();\n\t\t\treturn;\n\t\t}\n\t\tthis.menu[ direction ]( event );\n\t},\n\n\twidget: function() {\n\t\treturn this.menu.element;\n\t},\n\n\t_value: function() {\n\t\treturn this.valueMethod.apply( this.element, arguments );\n\t},\n\n\t_keyEvent: function( keyEvent, event ) {\n\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\n\t\t\tthis._move( keyEvent, event );\n\n\t\t\t// Prevents moving cursor to beginning/end of the text field in some browsers\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t// Support: Chrome <=50\n\t// We should be able to just use this.element.prop( \"isContentEditable\" )\n\t// but hidden elements always report false in Chrome.\n\t// https://code.google.com/p/chromium/issues/detail?id=313082\n\t_isContentEditable: function( element ) {\n\t\tif ( !element.length ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar editable = element.prop( \"contentEditable\" );\n\n\t\tif ( editable === \"inherit\" ) {\n\t\t  return this._isContentEditable( element.parent() );\n\t\t}\n\n\t\treturn editable === \"true\";\n\t}\n} );\n\n$.extend( $.ui.autocomplete, {\n\tescapeRegex: function( value ) {\n\t\treturn value.replace( /[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\" );\n\t},\n\tfilter: function( array, term ) {\n\t\tvar matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), \"i\" );\n\t\treturn $.grep( array, function( value ) {\n\t\t\treturn matcher.test( value.label || value.value || value );\n\t\t} );\n\t}\n} );\n\n// Live region extension, adding a `messages` option\n// NOTE: This is an experimental API. We are still investigating\n// a full solution for string manipulation and internationalization.\n$.widget( \"ui.autocomplete\", $.ui.autocomplete, {\n\toptions: {\n\t\tmessages: {\n\t\t\tnoResults: \"No search results.\",\n\t\t\tresults: function( amount ) {\n\t\t\t\treturn amount + ( amount > 1 ? \" results are\" : \" result is\" ) +\n\t\t\t\t\t\" available, use up and down arrow keys to navigate.\";\n\t\t\t}\n\t\t}\n\t},\n\n\t__response: function( content ) {\n\t\tvar message;\n\t\tthis._superApply( arguments );\n\t\tif ( this.options.disabled || this.cancelSearch ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( content && content.length ) {\n\t\t\tmessage = this.options.messages.results( content.length );\n\t\t} else {\n\t\t\tmessage = this.options.messages.noResults;\n\t\t}\n\t\tthis.liveRegion.children().hide();\n\t\t$( \"<div>\" ).text( message ).appendTo( this.liveRegion );\n\t}\n} );\n\nvar widgetsAutocomplete = $.ui.autocomplete;\n\n\n/*!\n * jQuery UI Controlgroup 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Controlgroup\n//>>group: Widgets\n//>>description: Visually groups form control widgets\n//>>docs: http://api.jqueryui.com/controlgroup/\n//>>demos: http://jqueryui.com/controlgroup/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/controlgroup.css\n//>>css.theme: ../../themes/base/theme.css\n\n\nvar controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;\n\nvar widgetsControlgroup = $.widget( \"ui.controlgroup\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdirection: \"horizontal\",\n\t\tdisabled: null,\n\t\tonlyVisible: true,\n\t\titems: {\n\t\t\t\"button\": \"input[type=button], input[type=submit], input[type=reset], button, a\",\n\t\t\t\"controlgroupLabel\": \".ui-controlgroup-label\",\n\t\t\t\"checkboxradio\": \"input[type='checkbox'], input[type='radio']\",\n\t\t\t\"selectmenu\": \"select\",\n\t\t\t\"spinner\": \".ui-spinner-input\"\n\t\t}\n\t},\n\n\t_create: function() {\n\t\tthis._enhance();\n\t},\n\n\t// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation\n\t_enhance: function() {\n\t\tthis.element.attr( \"role\", \"toolbar\" );\n\t\tthis.refresh();\n\t},\n\n\t_destroy: function() {\n\t\tthis._callChildMethod( \"destroy\" );\n\t\tthis.childWidgets.removeData( \"ui-controlgroup-data\" );\n\t\tthis.element.removeAttr( \"role\" );\n\t\tif ( this.options.items.controlgroupLabel ) {\n\t\t\tthis.element\n\t\t\t\t.find( this.options.items.controlgroupLabel )\n\t\t\t\t.find( \".ui-controlgroup-label-contents\" )\n\t\t\t\t.contents().unwrap();\n\t\t}\n\t},\n\n\t_initWidgets: function() {\n\t\tvar that = this,\n\t\t\tchildWidgets = [];\n\n\t\t// First we iterate over each of the items options\n\t\t$.each( this.options.items, function( widget, selector ) {\n\t\t\tvar labels;\n\t\t\tvar options = {};\n\n\t\t\t// Make sure the widget has a selector set\n\t\t\tif ( !selector ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( widget === \"controlgroupLabel\" ) {\n\t\t\t\tlabels = that.element.find( selector );\n\t\t\t\tlabels.each( function() {\n\t\t\t\t\tvar element = $( this );\n\n\t\t\t\t\tif ( element.children( \".ui-controlgroup-label-contents\" ).length ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\telement.contents()\n\t\t\t\t\t\t.wrapAll( \"<span class='ui-controlgroup-label-contents'></span>\" );\n\t\t\t\t} );\n\t\t\t\tthat._addClass( labels, null, \"ui-widget ui-widget-content ui-state-default\" );\n\t\t\t\tchildWidgets = childWidgets.concat( labels.get() );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Make sure the widget actually exists\n\t\t\tif ( !$.fn[ widget ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We assume everything is in the middle to start because we can't determine\n\t\t\t// first / last elements until all enhancments are done.\n\t\t\tif ( that[ \"_\" + widget + \"Options\" ] ) {\n\t\t\t\toptions = that[ \"_\" + widget + \"Options\" ]( \"middle\" );\n\t\t\t} else {\n\t\t\t\toptions = { classes: {} };\n\t\t\t}\n\n\t\t\t// Find instances of this widget inside controlgroup and init them\n\t\t\tthat.element\n\t\t\t\t.find( selector )\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar element = $( this );\n\t\t\t\t\tvar instance = element[ widget ]( \"instance\" );\n\n\t\t\t\t\t// We need to clone the default options for this type of widget to avoid\n\t\t\t\t\t// polluting the variable options which has a wider scope than a single widget.\n\t\t\t\t\tvar instanceOptions = $.widget.extend( {}, options );\n\n\t\t\t\t\t// If the button is the child of a spinner ignore it\n\t\t\t\t\t// TODO: Find a more generic solution\n\t\t\t\t\tif ( widget === \"button\" && element.parent( \".ui-spinner\" ).length ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create the widget if it doesn't exist\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\tinstance = element[ widget ]()[ widget ]( \"instance\" );\n\t\t\t\t\t}\n\t\t\t\t\tif ( instance ) {\n\t\t\t\t\t\tinstanceOptions.classes =\n\t\t\t\t\t\t\tthat._resolveClassesValues( instanceOptions.classes, instance );\n\t\t\t\t\t}\n\t\t\t\t\telement[ widget ]( instanceOptions );\n\n\t\t\t\t\t// Store an instance of the controlgroup to be able to reference\n\t\t\t\t\t// from the outermost element for changing options and refresh\n\t\t\t\t\tvar widgetElement = element[ widget ]( \"widget\" );\n\t\t\t\t\t$.data( widgetElement[ 0 ], \"ui-controlgroup-data\",\n\t\t\t\t\t\tinstance ? instance : element[ widget ]( \"instance\" ) );\n\n\t\t\t\t\tchildWidgets.push( widgetElement[ 0 ] );\n\t\t\t\t} );\n\t\t} );\n\n\t\tthis.childWidgets = $( $.unique( childWidgets ) );\n\t\tthis._addClass( this.childWidgets, \"ui-controlgroup-item\" );\n\t},\n\n\t_callChildMethod: function( method ) {\n\t\tthis.childWidgets.each( function() {\n\t\t\tvar element = $( this ),\n\t\t\t\tdata = element.data( \"ui-controlgroup-data\" );\n\t\t\tif ( data && data[ method ] ) {\n\t\t\t\tdata[ method ]();\n\t\t\t}\n\t\t} );\n\t},\n\n\t_updateCornerClass: function( element, position ) {\n\t\tvar remove = \"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all\";\n\t\tvar add = this._buildSimpleOptions( position, \"label\" ).classes.label;\n\n\t\tthis._removeClass( element, null, remove );\n\t\tthis._addClass( element, null, add );\n\t},\n\n\t_buildSimpleOptions: function( position, key ) {\n\t\tvar direction = this.options.direction === \"vertical\";\n\t\tvar result = {\n\t\t\tclasses: {}\n\t\t};\n\t\tresult.classes[ key ] = {\n\t\t\t\"middle\": \"\",\n\t\t\t\"first\": \"ui-corner-\" + ( direction ? \"top\" : \"left\" ),\n\t\t\t\"last\": \"ui-corner-\" + ( direction ? \"bottom\" : \"right\" ),\n\t\t\t\"only\": \"ui-corner-all\"\n\t\t}[ position ];\n\n\t\treturn result;\n\t},\n\n\t_spinnerOptions: function( position ) {\n\t\tvar options = this._buildSimpleOptions( position, \"ui-spinner\" );\n\n\t\toptions.classes[ \"ui-spinner-up\" ] = \"\";\n\t\toptions.classes[ \"ui-spinner-down\" ] = \"\";\n\n\t\treturn options;\n\t},\n\n\t_buttonOptions: function( position ) {\n\t\treturn this._buildSimpleOptions( position, \"ui-button\" );\n\t},\n\n\t_checkboxradioOptions: function( position ) {\n\t\treturn this._buildSimpleOptions( position, \"ui-checkboxradio-label\" );\n\t},\n\n\t_selectmenuOptions: function( position ) {\n\t\tvar direction = this.options.direction === \"vertical\";\n\t\treturn {\n\t\t\twidth: direction ? \"auto\" : false,\n\t\t\tclasses: {\n\t\t\t\tmiddle: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"\"\n\t\t\t\t},\n\t\t\t\tfirst: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"ui-corner-\" + ( direction ? \"top\" : \"tl\" ),\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-\" + ( direction ? \"top\" : \"left\" )\n\t\t\t\t},\n\t\t\t\tlast: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": direction ? \"\" : \"ui-corner-tr\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-\" + ( direction ? \"bottom\" : \"right\" )\n\t\t\t\t},\n\t\t\t\tonly: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"ui-corner-top\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-all\"\n\t\t\t\t}\n\n\t\t\t}[ position ]\n\t\t};\n\t},\n\n\t_resolveClassesValues: function( classes, instance ) {\n\t\tvar result = {};\n\t\t$.each( classes, function( key ) {\n\t\t\tvar current = instance.options.classes[ key ] || \"\";\n\t\t\tcurrent = $.trim( current.replace( controlgroupCornerRegex, \"\" ) );\n\t\t\tresult[ key ] = ( current + \" \" + classes[ key ] ).replace( /\\s+/g, \" \" );\n\t\t} );\n\t\treturn result;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"direction\" ) {\n\t\t\tthis._removeClass( \"ui-controlgroup-\" + this.options.direction );\n\t\t}\n\n\t\tthis._super( key, value );\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._callChildMethod( value ? \"disable\" : \"enable\" );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.refresh();\n\t},\n\n\trefresh: function() {\n\t\tvar children,\n\t\t\tthat = this;\n\n\t\tthis._addClass( \"ui-controlgroup ui-controlgroup-\" + this.options.direction );\n\n\t\tif ( this.options.direction === \"horizontal\" ) {\n\t\t\tthis._addClass( null, \"ui-helper-clearfix\" );\n\t\t}\n\t\tthis._initWidgets();\n\n\t\tchildren = this.childWidgets;\n\n\t\t// We filter here because we need to track all childWidgets not just the visible ones\n\t\tif ( this.options.onlyVisible ) {\n\t\t\tchildren = children.filter( \":visible\" );\n\t\t}\n\n\t\tif ( children.length ) {\n\n\t\t\t// We do this last because we need to make sure all enhancment is done\n\t\t\t// before determining first and last\n\t\t\t$.each( [ \"first\", \"last\" ], function( index, value ) {\n\t\t\t\tvar instance = children[ value ]().data( \"ui-controlgroup-data\" );\n\n\t\t\t\tif ( instance && that[ \"_\" + instance.widgetName + \"Options\" ] ) {\n\t\t\t\t\tvar options = that[ \"_\" + instance.widgetName + \"Options\" ](\n\t\t\t\t\t\tchildren.length === 1 ? \"only\" : value\n\t\t\t\t\t);\n\t\t\t\t\toptions.classes = that._resolveClassesValues( options.classes, instance );\n\t\t\t\t\tinstance.element[ instance.widgetName ]( options );\n\t\t\t\t} else {\n\t\t\t\t\tthat._updateCornerClass( children[ value ](), value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Finally call the refresh method on each of the child widgets.\n\t\t\tthis._callChildMethod( \"refresh\" );\n\t\t}\n\t}\n} );\n\n/*!\n * jQuery UI Checkboxradio 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Checkboxradio\n//>>group: Widgets\n//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.\n//>>docs: http://api.jqueryui.com/checkboxradio/\n//>>demos: http://jqueryui.com/checkboxradio/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/button.css\n//>>css.structure: ../../themes/base/checkboxradio.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.checkboxradio\", [ $.ui.formResetMixin, {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tdisabled: null,\n\t\tlabel: null,\n\t\ticon: true,\n\t\tclasses: {\n\t\t\t\"ui-checkboxradio-label\": \"ui-corner-all\",\n\t\t\t\"ui-checkboxradio-icon\": \"ui-corner-all\"\n\t\t}\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar disabled, labels;\n\t\tvar that = this;\n\t\tvar options = this._super() || {};\n\n\t\t// We read the type here, because it makes more sense to throw a element type error first,\n\t\t// rather then the error for lack of a label. Often if its the wrong type, it\n\t\t// won't have a label (e.g. calling on a div, btn, etc)\n\t\tthis._readType();\n\n\t\tlabels = this.element.labels();\n\n\t\t// If there are multiple labels, use the last one\n\t\tthis.label = $( labels[ labels.length - 1 ] );\n\t\tif ( !this.label.length ) {\n\t\t\t$.error( \"No label found for checkboxradio widget\" );\n\t\t}\n\n\t\tthis.originalLabel = \"\";\n\n\t\t// We need to get the label text but this may also need to make sure it does not contain the\n\t\t// input itself.\n\t\tthis.label.contents().not( this.element[ 0 ] ).each( function() {\n\n\t\t\t// The label contents could be text, html, or a mix. We concat each element to get a\n\t\t\t// string representation of the label, without the input as part of it.\n\t\t\tthat.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;\n\t\t} );\n\n\t\t// Set the label option if we found label text\n\t\tif ( this.originalLabel ) {\n\t\t\toptions.label = this.originalLabel;\n\t\t}\n\n\t\tdisabled = this.element[ 0 ].disabled;\n\t\tif ( disabled != null ) {\n\t\t\toptions.disabled = disabled;\n\t\t}\n\t\treturn options;\n\t},\n\n\t_create: function() {\n\t\tvar checked = this.element[ 0 ].checked;\n\n\t\tthis._bindFormResetHandler();\n\n\t\tif ( this.options.disabled == null ) {\n\t\t\tthis.options.disabled = this.element[ 0 ].disabled;\n\t\t}\n\n\t\tthis._setOption( \"disabled\", this.options.disabled );\n\t\tthis._addClass( \"ui-checkboxradio\", \"ui-helper-hidden-accessible\" );\n\t\tthis._addClass( this.label, \"ui-checkboxradio-label\", \"ui-button ui-widget\" );\n\n\t\tif ( this.type === \"radio\" ) {\n\t\t\tthis._addClass( this.label, \"ui-checkboxradio-radio-label\" );\n\t\t}\n\n\t\tif ( this.options.label && this.options.label !== this.originalLabel ) {\n\t\t\tthis._updateLabel();\n\t\t} else if ( this.originalLabel ) {\n\t\t\tthis.options.label = this.originalLabel;\n\t\t}\n\n\t\tthis._enhance();\n\n\t\tif ( checked ) {\n\t\t\tthis._addClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\" );\n\t\t\tif ( this.icon ) {\n\t\t\t\tthis._addClass( this.icon, null, \"ui-state-hover\" );\n\t\t\t}\n\t\t}\n\n\t\tthis._on( {\n\t\t\tchange: \"_toggleClasses\",\n\t\t\tfocus: function() {\n\t\t\t\tthis._addClass( this.label, null, \"ui-state-focus ui-visual-focus\" );\n\t\t\t},\n\t\t\tblur: function() {\n\t\t\t\tthis._removeClass( this.label, null, \"ui-state-focus ui-visual-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_readType: function() {\n\t\tvar nodeName = this.element[ 0 ].nodeName.toLowerCase();\n\t\tthis.type = this.element[ 0 ].type;\n\t\tif ( nodeName !== \"input\" || !/radio|checkbox/.test( this.type ) ) {\n\t\t\t$.error( \"Can't create checkboxradio on element.nodeName=\" + nodeName +\n\t\t\t\t\" and element.type=\" + this.type );\n\t\t}\n\t},\n\n\t// Support jQuery Mobile enhanced option\n\t_enhance: function() {\n\t\tthis._updateIcon( this.element[ 0 ].checked );\n\t},\n\n\twidget: function() {\n\t\treturn this.label;\n\t},\n\n\t_getRadioGroup: function() {\n\t\tvar group;\n\t\tvar name = this.element[ 0 ].name;\n\t\tvar nameSelector = \"input[name='\" + $.ui.escapeSelector( name ) + \"']\";\n\n\t\tif ( !name ) {\n\t\t\treturn $( [] );\n\t\t}\n\n\t\tif ( this.form.length ) {\n\t\t\tgroup = $( this.form[ 0 ].elements ).filter( nameSelector );\n\t\t} else {\n\n\t\t\t// Not inside a form, check all inputs that also are not inside a form\n\t\t\tgroup = $( nameSelector ).filter( function() {\n\t\t\t\treturn $( this ).form().length === 0;\n\t\t\t} );\n\t\t}\n\n\t\treturn group.not( this.element );\n\t},\n\n\t_toggleClasses: function() {\n\t\tvar checked = this.element[ 0 ].checked;\n\t\tthis._toggleClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", checked );\n\n\t\tif ( this.options.icon && this.type === \"checkbox\" ) {\n\t\t\tthis._toggleClass( this.icon, null, \"ui-icon-check ui-state-checked\", checked )\n\t\t\t\t._toggleClass( this.icon, null, \"ui-icon-blank\", !checked );\n\t\t}\n\n\t\tif ( this.type === \"radio\" ) {\n\t\t\tthis._getRadioGroup()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar instance = $( this ).checkboxradio( \"instance\" );\n\n\t\t\t\t\tif ( instance ) {\n\t\t\t\t\t\tinstance._removeClass( instance.label,\n\t\t\t\t\t\t\t\"ui-checkboxradio-checked\", \"ui-state-active\" );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tthis._unbindFormResetHandler();\n\n\t\tif ( this.icon ) {\n\t\t\tthis.icon.remove();\n\t\t\tthis.iconSpace.remove();\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\n\t\t// We don't allow the value to be set to nothing\n\t\tif ( key === \"label\" && !value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._toggleClass( this.label, null, \"ui-state-disabled\", value );\n\t\t\tthis.element[ 0 ].disabled = value;\n\n\t\t\t// Don't refresh when setting disabled\n\t\t\treturn;\n\t\t}\n\t\tthis.refresh();\n\t},\n\n\t_updateIcon: function( checked ) {\n\t\tvar toAdd = \"ui-icon ui-icon-background \";\n\n\t\tif ( this.options.icon ) {\n\t\t\tif ( !this.icon ) {\n\t\t\t\tthis.icon = $( \"<span>\" );\n\t\t\t\tthis.iconSpace = $( \"<span> </span>\" );\n\t\t\t\tthis._addClass( this.iconSpace, \"ui-checkboxradio-icon-space\" );\n\t\t\t}\n\n\t\t\tif ( this.type === \"checkbox\" ) {\n\t\t\t\ttoAdd += checked ? \"ui-icon-check ui-state-checked\" : \"ui-icon-blank\";\n\t\t\t\tthis._removeClass( this.icon, null, checked ? \"ui-icon-blank\" : \"ui-icon-check\" );\n\t\t\t} else {\n\t\t\t\ttoAdd += \"ui-icon-blank\";\n\t\t\t}\n\t\t\tthis._addClass( this.icon, \"ui-checkboxradio-icon\", toAdd );\n\t\t\tif ( !checked ) {\n\t\t\t\tthis._removeClass( this.icon, null, \"ui-icon-check ui-state-checked\" );\n\t\t\t}\n\t\t\tthis.icon.prependTo( this.label ).after( this.iconSpace );\n\t\t} else if ( this.icon !== undefined ) {\n\t\t\tthis.icon.remove();\n\t\t\tthis.iconSpace.remove();\n\t\t\tdelete this.icon;\n\t\t}\n\t},\n\n\t_updateLabel: function() {\n\n\t\t// Remove the contents of the label ( minus the icon, icon space, and input )\n\t\tvar contents = this.label.contents().not( this.element[ 0 ] );\n\t\tif ( this.icon ) {\n\t\t\tcontents = contents.not( this.icon[ 0 ] );\n\t\t}\n\t\tif ( this.iconSpace ) {\n\t\t\tcontents = contents.not( this.iconSpace[ 0 ] );\n\t\t}\n\t\tcontents.remove();\n\n\t\tthis.label.append( this.options.label );\n\t},\n\n\trefresh: function() {\n\t\tvar checked = this.element[ 0 ].checked,\n\t\t\tisDisabled = this.element[ 0 ].disabled;\n\n\t\tthis._updateIcon( checked );\n\t\tthis._toggleClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", checked );\n\t\tif ( this.options.label !== null ) {\n\t\t\tthis._updateLabel();\n\t\t}\n\n\t\tif ( isDisabled !== this.options.disabled ) {\n\t\t\tthis._setOptions( { \"disabled\": isDisabled } );\n\t\t}\n\t}\n\n} ] );\n\nvar widgetsCheckboxradio = $.ui.checkboxradio;\n\n\n/*!\n * jQuery UI Button 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Button\n//>>group: Widgets\n//>>description: Enhances a form with themeable buttons.\n//>>docs: http://api.jqueryui.com/button/\n//>>demos: http://jqueryui.com/button/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/button.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.button\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<button>\",\n\toptions: {\n\t\tclasses: {\n\t\t\t\"ui-button\": \"ui-corner-all\"\n\t\t},\n\t\tdisabled: null,\n\t\ticon: null,\n\t\ticonPosition: \"beginning\",\n\t\tlabel: null,\n\t\tshowLabel: true\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar disabled,\n\n\t\t\t// This is to support cases like in jQuery Mobile where the base widget does have\n\t\t\t// an implementation of _getCreateOptions\n\t\t\toptions = this._super() || {};\n\n\t\tthis.isInput = this.element.is( \"input\" );\n\n\t\tdisabled = this.element[ 0 ].disabled;\n\t\tif ( disabled != null ) {\n\t\t\toptions.disabled = disabled;\n\t\t}\n\n\t\tthis.originalLabel = this.isInput ? this.element.val() : this.element.html();\n\t\tif ( this.originalLabel ) {\n\t\t\toptions.label = this.originalLabel;\n\t\t}\n\n\t\treturn options;\n\t},\n\n\t_create: function() {\n\t\tif ( !this.option.showLabel & !this.options.icon ) {\n\t\t\tthis.options.showLabel = true;\n\t\t}\n\n\t\t// We have to check the option again here even though we did in _getCreateOptions,\n\t\t// because null may have been passed on init which would override what was set in\n\t\t// _getCreateOptions\n\t\tif ( this.options.disabled == null ) {\n\t\t\tthis.options.disabled = this.element[ 0 ].disabled || false;\n\t\t}\n\n\t\tthis.hasTitle = !!this.element.attr( \"title\" );\n\n\t\t// Check to see if the label needs to be set or if its already correct\n\t\tif ( this.options.label && this.options.label !== this.originalLabel ) {\n\t\t\tif ( this.isInput ) {\n\t\t\t\tthis.element.val( this.options.label );\n\t\t\t} else {\n\t\t\t\tthis.element.html( this.options.label );\n\t\t\t}\n\t\t}\n\t\tthis._addClass( \"ui-button\", \"ui-widget\" );\n\t\tthis._setOption( \"disabled\", this.options.disabled );\n\t\tthis._enhance();\n\n\t\tif ( this.element.is( \"a\" ) ) {\n\t\t\tthis._on( {\n\t\t\t\t\"keyup\": function( event ) {\n\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: PhantomJS <= 1.9, IE 8 Only\n\t\t\t\t\t\t// If a native click is available use it so we actually cause navigation\n\t\t\t\t\t\t// otherwise just trigger a click event\n\t\t\t\t\t\tif ( this.element[ 0 ].click ) {\n\t\t\t\t\t\t\tthis.element[ 0 ].click();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.element.trigger( \"click\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t},\n\n\t_enhance: function() {\n\t\tif ( !this.element.is( \"button\" ) ) {\n\t\t\tthis.element.attr( \"role\", \"button\" );\n\t\t}\n\n\t\tif ( this.options.icon ) {\n\t\t\tthis._updateIcon( \"icon\", this.options.icon );\n\t\t\tthis._updateTooltip();\n\t\t}\n\t},\n\n\t_updateTooltip: function() {\n\t\tthis.title = this.element.attr( \"title\" );\n\n\t\tif ( !this.options.showLabel && !this.title ) {\n\t\t\tthis.element.attr( \"title\", this.options.label );\n\t\t}\n\t},\n\n\t_updateIcon: function( option, value ) {\n\t\tvar icon = option !== \"iconPosition\",\n\t\t\tposition = icon ? this.options.iconPosition : value,\n\t\t\tdisplayBlock = position === \"top\" || position === \"bottom\";\n\n\t\t// Create icon\n\t\tif ( !this.icon ) {\n\t\t\tthis.icon = $( \"<span>\" );\n\n\t\t\tthis._addClass( this.icon, \"ui-button-icon\", \"ui-icon\" );\n\n\t\t\tif ( !this.options.showLabel ) {\n\t\t\t\tthis._addClass( \"ui-button-icon-only\" );\n\t\t\t}\n\t\t} else if ( icon ) {\n\n\t\t\t// If we are updating the icon remove the old icon class\n\t\t\tthis._removeClass( this.icon, null, this.options.icon );\n\t\t}\n\n\t\t// If we are updating the icon add the new icon class\n\t\tif ( icon ) {\n\t\t\tthis._addClass( this.icon, null, value );\n\t\t}\n\n\t\tthis._attachIcon( position );\n\n\t\t// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove\n\t\t// the iconSpace if there is one.\n\t\tif ( displayBlock ) {\n\t\t\tthis._addClass( this.icon, null, \"ui-widget-icon-block\" );\n\t\t\tif ( this.iconSpace ) {\n\t\t\t\tthis.iconSpace.remove();\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Position is beginning or end so remove the ui-widget-icon-block class and add the\n\t\t\t// space if it does not exist\n\t\t\tif ( !this.iconSpace ) {\n\t\t\t\tthis.iconSpace = $( \"<span> </span>\" );\n\t\t\t\tthis._addClass( this.iconSpace, \"ui-button-icon-space\" );\n\t\t\t}\n\t\t\tthis._removeClass( this.icon, null, \"ui-wiget-icon-block\" );\n\t\t\tthis._attachIconSpace( position );\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\tif ( this.icon ) {\n\t\t\tthis.icon.remove();\n\t\t}\n\t\tif ( this.iconSpace ) {\n\t\t\tthis.iconSpace.remove();\n\t\t}\n\t\tif ( !this.hasTitle ) {\n\t\t\tthis.element.removeAttr( \"title\" );\n\t\t}\n\t},\n\n\t_attachIconSpace: function( iconPosition ) {\n\t\tthis.icon[ /^(?:end|bottom)/.test( iconPosition ) ? \"before\" : \"after\" ]( this.iconSpace );\n\t},\n\n\t_attachIcon: function( iconPosition ) {\n\t\tthis.element[ /^(?:end|bottom)/.test( iconPosition ) ? \"append\" : \"prepend\" ]( this.icon );\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar newShowLabel = options.showLabel === undefined ?\n\t\t\t\tthis.options.showLabel :\n\t\t\t\toptions.showLabel,\n\t\t\tnewIcon = options.icon === undefined ? this.options.icon : options.icon;\n\n\t\tif ( !newShowLabel && !newIcon ) {\n\t\t\toptions.showLabel = true;\n\t\t}\n\t\tthis._super( options );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icon\" ) {\n\t\t\tif ( value ) {\n\t\t\t\tthis._updateIcon( key, value );\n\t\t\t} else if ( this.icon ) {\n\t\t\t\tthis.icon.remove();\n\t\t\t\tif ( this.iconSpace ) {\n\t\t\t\t\tthis.iconSpace.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"iconPosition\" ) {\n\t\t\tthis._updateIcon( key, value );\n\t\t}\n\n\t\t// Make sure we can't end up with a button that has neither text nor icon\n\t\tif ( key === \"showLabel\" ) {\n\t\t\t\tthis._toggleClass( \"ui-button-icon-only\", null, !value );\n\t\t\t\tthis._updateTooltip();\n\t\t}\n\n\t\tif ( key === \"label\" ) {\n\t\t\tif ( this.isInput ) {\n\t\t\t\tthis.element.val( value );\n\t\t\t} else {\n\n\t\t\t\t// If there is an icon, append it, else nothing then append the value\n\t\t\t\t// this avoids removal of the icon when setting label text\n\t\t\t\tthis.element.html( value );\n\t\t\t\tif ( this.icon ) {\n\t\t\t\t\tthis._attachIcon( this.options.iconPosition );\n\t\t\t\t\tthis._attachIconSpace( this.options.iconPosition );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._toggleClass( null, \"ui-state-disabled\", value );\n\t\t\tthis.element[ 0 ].disabled = value;\n\t\t\tif ( value ) {\n\t\t\t\tthis.element.blur();\n\t\t\t}\n\t\t}\n\t},\n\n\trefresh: function() {\n\n\t\t// Make sure to only check disabled if its an element that supports this otherwise\n\t\t// check for the disabled class to determine state\n\t\tvar isDisabled = this.element.is( \"input, button\" ) ?\n\t\t\tthis.element[ 0 ].disabled : this.element.hasClass( \"ui-button-disabled\" );\n\n\t\tif ( isDisabled !== this.options.disabled ) {\n\t\t\tthis._setOptions( { disabled: isDisabled } );\n\t\t}\n\n\t\tthis._updateTooltip();\n\t}\n} );\n\n// DEPRECATED\nif ( $.uiBackCompat !== false ) {\n\n\t// Text and Icons options\n\t$.widget( \"ui.button\", $.ui.button, {\n\t\toptions: {\n\t\t\ttext: true,\n\t\t\ticons: {\n\t\t\t\tprimary: null,\n\t\t\t\tsecondary: null\n\t\t\t}\n\t\t},\n\n\t\t_create: function() {\n\t\t\tif ( this.options.showLabel && !this.options.text ) {\n\t\t\t\tthis.options.showLabel = this.options.text;\n\t\t\t}\n\t\t\tif ( !this.options.showLabel && this.options.text ) {\n\t\t\t\tthis.options.text = this.options.showLabel;\n\t\t\t}\n\t\t\tif ( !this.options.icon && ( this.options.icons.primary ||\n\t\t\t\t\tthis.options.icons.secondary ) ) {\n\t\t\t\tif ( this.options.icons.primary ) {\n\t\t\t\t\tthis.options.icon = this.options.icons.primary;\n\t\t\t\t} else {\n\t\t\t\t\tthis.options.icon = this.options.icons.secondary;\n\t\t\t\t\tthis.options.iconPosition = \"end\";\n\t\t\t\t}\n\t\t\t} else if ( this.options.icon ) {\n\t\t\t\tthis.options.icons.primary = this.options.icon;\n\t\t\t}\n\t\t\tthis._super();\n\t\t},\n\n\t\t_setOption: function( key, value ) {\n\t\t\tif ( key === \"text\" ) {\n\t\t\t\tthis._super( \"showLabel\", value );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( key === \"showLabel\" ) {\n\t\t\t\tthis.options.text = value;\n\t\t\t}\n\t\t\tif ( key === \"icon\" ) {\n\t\t\t\tthis.options.icons.primary = value;\n\t\t\t}\n\t\t\tif ( key === \"icons\" ) {\n\t\t\t\tif ( value.primary ) {\n\t\t\t\t\tthis._super( \"icon\", value.primary );\n\t\t\t\t\tthis._super( \"iconPosition\", \"beginning\" );\n\t\t\t\t} else if ( value.secondary ) {\n\t\t\t\t\tthis._super( \"icon\", value.secondary );\n\t\t\t\t\tthis._super( \"iconPosition\", \"end\" );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._superApply( arguments );\n\t\t}\n\t} );\n\n\t$.fn.button = ( function( orig ) {\n\t\treturn function() {\n\t\t\tif ( !this.length || ( this.length && this[ 0 ].tagName !== \"INPUT\" ) ||\n\t\t\t\t\t( this.length && this[ 0 ].tagName === \"INPUT\" && (\n\t\t\t\t\t\tthis.attr( \"type\" ) !== \"checkbox\" && this.attr( \"type\" ) !== \"radio\"\n\t\t\t\t\t) ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t}\n\t\t\tif ( !$.ui.checkboxradio ) {\n\t\t\t\t$.error( \"Checkboxradio widget missing\" );\n\t\t\t}\n\t\t\tif ( arguments.length === 0 ) {\n\t\t\t\treturn this.checkboxradio( {\n\t\t\t\t\t\"icon\": false\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this.checkboxradio.apply( this, arguments );\n\t\t};\n\t} )( $.fn.button );\n\n\t$.fn.buttonset = function() {\n\t\tif ( !$.ui.controlgroup ) {\n\t\t\t$.error( \"Controlgroup widget missing\" );\n\t\t}\n\t\tif ( arguments[ 0 ] === \"option\" && arguments[ 1 ] === \"items\" && arguments[ 2 ] ) {\n\t\t\treturn this.controlgroup.apply( this,\n\t\t\t\t[ arguments[ 0 ], \"items.button\", arguments[ 2 ] ] );\n\t\t}\n\t\tif ( arguments[ 0 ] === \"option\" && arguments[ 1 ] === \"items\" ) {\n\t\t\treturn this.controlgroup.apply( this, [ arguments[ 0 ], \"items.button\" ] );\n\t\t}\n\t\tif ( typeof arguments[ 0 ] === \"object\" && arguments[ 0 ].items ) {\n\t\t\targuments[ 0 ].items = {\n\t\t\t\tbutton: arguments[ 0 ].items\n\t\t\t};\n\t\t}\n\t\treturn this.controlgroup.apply( this, arguments );\n\t};\n}\n\nvar widgetsButton = $.ui.button;\n\n\n// jscs:disable maximumLineLength\n/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */\n/*!\n * jQuery UI Datepicker 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Datepicker\n//>>group: Widgets\n//>>description: Displays a calendar from an input or inline for selecting dates.\n//>>docs: http://api.jqueryui.com/datepicker/\n//>>demos: http://jqueryui.com/datepicker/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/datepicker.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.extend( $.ui, { datepicker: { version: \"1.12.1\" } } );\n\nvar datepicker_instActive;\n\nfunction datepicker_getZindex( elem ) {\n\tvar position, value;\n\twhile ( elem.length && elem[ 0 ] !== document ) {\n\n\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t// This makes behavior of this function consistent across browsers\n\t\t// WebKit always returns auto if the element is positioned\n\t\tposition = elem.css( \"position\" );\n\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\n\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t// other browsers return a string\n\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t// <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\telem = elem.parent();\n\t}\n\n\treturn 0;\n}\n/* Date picker manager.\n   Use the singleton instance of this class, $.datepicker, to interact with the date picker.\n   Settings for (groups of) date pickers are maintained in an instance object,\n   allowing multiple different settings on the same page. */\n\nfunction Datepicker() {\n\tthis._curInst = null; // The current instance in use\n\tthis._keyEvent = false; // If the last event was a key event\n\tthis._disabledInputs = []; // List of date picker inputs that have been disabled\n\tthis._datepickerShowing = false; // True if the popup picker is showing , false if not\n\tthis._inDialog = false; // True if showing within a \"dialog\", false if not\n\tthis._mainDivId = \"ui-datepicker-div\"; // The ID of the main datepicker division\n\tthis._inlineClass = \"ui-datepicker-inline\"; // The name of the inline marker class\n\tthis._appendClass = \"ui-datepicker-append\"; // The name of the append marker class\n\tthis._triggerClass = \"ui-datepicker-trigger\"; // The name of the trigger marker class\n\tthis._dialogClass = \"ui-datepicker-dialog\"; // The name of the dialog marker class\n\tthis._disableClass = \"ui-datepicker-disabled\"; // The name of the disabled covering marker class\n\tthis._unselectableClass = \"ui-datepicker-unselectable\"; // The name of the unselectable cell marker class\n\tthis._currentClass = \"ui-datepicker-current-day\"; // The name of the current day marker class\n\tthis._dayOverClass = \"ui-datepicker-days-cell-over\"; // The name of the day hover marker class\n\tthis.regional = []; // Available regional settings, indexed by language code\n\tthis.regional[ \"\" ] = { // Default regional settings\n\t\tcloseText: \"Done\", // Display text for close link\n\t\tprevText: \"Prev\", // Display text for previous month link\n\t\tnextText: \"Next\", // Display text for next month link\n\t\tcurrentText: \"Today\", // Display text for current month link\n\t\tmonthNames: [ \"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\n\t\t\t\"July\",\"August\",\"September\",\"October\",\"November\",\"December\" ], // Names of months for drop-down and formatting\n\t\tmonthNamesShort: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ], // For formatting\n\t\tdayNames: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ], // For formatting\n\t\tdayNamesShort: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ], // For formatting\n\t\tdayNamesMin: [ \"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\" ], // Column headings for days starting at Sunday\n\t\tweekHeader: \"Wk\", // Column header for week of the year\n\t\tdateFormat: \"mm/dd/yy\", // See format options on parseDate\n\t\tfirstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...\n\t\tisRTL: false, // True if right-to-left language, false if left-to-right\n\t\tshowMonthAfterYear: false, // True if the year select precedes month, false for month then year\n\t\tyearSuffix: \"\" // Additional text to append to the year in the month headers\n\t};\n\tthis._defaults = { // Global defaults for all the date picker instances\n\t\tshowOn: \"focus\", // \"focus\" for popup on focus,\n\t\t\t// \"button\" for trigger button, or \"both\" for either\n\t\tshowAnim: \"fadeIn\", // Name of jQuery animation for popup\n\t\tshowOptions: {}, // Options for enhanced animations\n\t\tdefaultDate: null, // Used when field is blank: actual date,\n\t\t\t// +/-number for offset from today, null for today\n\t\tappendText: \"\", // Display text following the input box, e.g. showing the format\n\t\tbuttonText: \"...\", // Text for trigger button\n\t\tbuttonImage: \"\", // URL for trigger button image\n\t\tbuttonImageOnly: false, // True if the image appears alone, false if it appears on a button\n\t\thideIfNoPrevNext: false, // True to hide next/previous month links\n\t\t\t// if not applicable, false to just disable them\n\t\tnavigationAsDateFormat: false, // True if date formatting applied to prev/today/next links\n\t\tgotoCurrent: false, // True if today link goes back to current selection instead\n\t\tchangeMonth: false, // True if month can be selected directly, false if only prev/next\n\t\tchangeYear: false, // True if year can be selected directly, false if only prev/next\n\t\tyearRange: \"c-10:c+10\", // Range of years to display in drop-down,\n\t\t\t// either relative to today's year (-nn:+nn), relative to currently displayed year\n\t\t\t// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)\n\t\tshowOtherMonths: false, // True to show dates in other months, false to leave blank\n\t\tselectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable\n\t\tshowWeek: false, // True to show week of the year, false to not show it\n\t\tcalculateWeek: this.iso8601Week, // How to calculate the week of the year,\n\t\t\t// takes a Date and returns the number of the week for it\n\t\tshortYearCutoff: \"+10\", // Short year values < this are in the current century,\n\t\t\t// > this are in the previous century,\n\t\t\t// string value starting with \"+\" for current year + value\n\t\tminDate: null, // The earliest selectable date, or null for no limit\n\t\tmaxDate: null, // The latest selectable date, or null for no limit\n\t\tduration: \"fast\", // Duration of display/closure\n\t\tbeforeShowDay: null, // Function that takes a date and returns an array with\n\t\t\t// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or \"\",\n\t\t\t// [2] = cell title (optional), e.g. $.datepicker.noWeekends\n\t\tbeforeShow: null, // Function that takes an input field and\n\t\t\t// returns a set of custom settings for the date picker\n\t\tonSelect: null, // Define a callback function when a date is selected\n\t\tonChangeMonthYear: null, // Define a callback function when the month or year is changed\n\t\tonClose: null, // Define a callback function when the datepicker is closed\n\t\tnumberOfMonths: 1, // Number of months to show at a time\n\t\tshowCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)\n\t\tstepMonths: 1, // Number of months to step back/forward\n\t\tstepBigMonths: 12, // Number of months to step back/forward for the big links\n\t\taltField: \"\", // Selector for an alternate field to store selected dates into\n\t\taltFormat: \"\", // The date format to use for the alternate field\n\t\tconstrainInput: true, // The input is constrained by the current date format\n\t\tshowButtonPanel: false, // True to show button panel, false to not show it\n\t\tautoSize: false, // True to size the input for the date format, false to leave as is\n\t\tdisabled: false // The initial disabled state\n\t};\n\t$.extend( this._defaults, this.regional[ \"\" ] );\n\tthis.regional.en = $.extend( true, {}, this.regional[ \"\" ] );\n\tthis.regional[ \"en-US\" ] = $.extend( true, {}, this.regional.en );\n\tthis.dpDiv = datepicker_bindHover( $( \"<div id='\" + this._mainDivId + \"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\" ) );\n}\n\n$.extend( Datepicker.prototype, {\n\t/* Class name added to elements to indicate already configured with a date picker. */\n\tmarkerClassName: \"hasDatepicker\",\n\n\t//Keep track of the maximum number of rows displayed (see #7043)\n\tmaxRows: 4,\n\n\t// TODO rename to \"widget\" when switching to widget factory\n\t_widgetDatepicker: function() {\n\t\treturn this.dpDiv;\n\t},\n\n\t/* Override the default settings for all instances of the date picker.\n\t * @param  settings  object - the new settings to use as defaults (anonymous object)\n\t * @return the manager object\n\t */\n\tsetDefaults: function( settings ) {\n\t\tdatepicker_extendRemove( this._defaults, settings || {} );\n\t\treturn this;\n\t},\n\n\t/* Attach the date picker to a jQuery selection.\n\t * @param  target\telement - the target input field or division or span\n\t * @param  settings  object - the new settings to use for this date picker instance (anonymous)\n\t */\n\t_attachDatepicker: function( target, settings ) {\n\t\tvar nodeName, inline, inst;\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tinline = ( nodeName === \"div\" || nodeName === \"span\" );\n\t\tif ( !target.id ) {\n\t\t\tthis.uuid += 1;\n\t\t\ttarget.id = \"dp\" + this.uuid;\n\t\t}\n\t\tinst = this._newInst( $( target ), inline );\n\t\tinst.settings = $.extend( {}, settings || {} );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tthis._connectDatepicker( target, inst );\n\t\t} else if ( inline ) {\n\t\t\tthis._inlineDatepicker( target, inst );\n\t\t}\n\t},\n\n\t/* Create a new instance object. */\n\t_newInst: function( target, inline ) {\n\t\tvar id = target[ 0 ].id.replace( /([^A-Za-z0-9_\\-])/g, \"\\\\\\\\$1\" ); // escape jQuery meta chars\n\t\treturn { id: id, input: target, // associated target\n\t\t\tselectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection\n\t\t\tdrawMonth: 0, drawYear: 0, // month being drawn\n\t\t\tinline: inline, // is datepicker inline or not\n\t\t\tdpDiv: ( !inline ? this.dpDiv : // presentation div\n\t\t\tdatepicker_bindHover( $( \"<div class='\" + this._inlineClass + \" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\" ) ) ) };\n\t},\n\n\t/* Attach the date picker to an input field. */\n\t_connectDatepicker: function( target, inst ) {\n\t\tvar input = $( target );\n\t\tinst.append = $( [] );\n\t\tinst.trigger = $( [] );\n\t\tif ( input.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._attachments( input, inst );\n\t\tinput.addClass( this.markerClassName ).on( \"keydown\", this._doKeyDown ).\n\t\t\ton( \"keypress\", this._doKeyPress ).on( \"keyup\", this._doKeyUp );\n\t\tthis._autoSize( inst );\n\t\t$.data( target, \"datepicker\", inst );\n\n\t\t//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\t},\n\n\t/* Make attachments based on settings. */\n\t_attachments: function( input, inst ) {\n\t\tvar showOn, buttonText, buttonImage,\n\t\t\tappendText = this._get( inst, \"appendText\" ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\tif ( inst.append ) {\n\t\t\tinst.append.remove();\n\t\t}\n\t\tif ( appendText ) {\n\t\t\tinst.append = $( \"<span class='\" + this._appendClass + \"'>\" + appendText + \"</span>\" );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.append );\n\t\t}\n\n\t\tinput.off( \"focus\", this._showDatepicker );\n\n\t\tif ( inst.trigger ) {\n\t\t\tinst.trigger.remove();\n\t\t}\n\n\t\tshowOn = this._get( inst, \"showOn\" );\n\t\tif ( showOn === \"focus\" || showOn === \"both\" ) { // pop-up date picker when in the marked field\n\t\t\tinput.on( \"focus\", this._showDatepicker );\n\t\t}\n\t\tif ( showOn === \"button\" || showOn === \"both\" ) { // pop-up date picker when button clicked\n\t\t\tbuttonText = this._get( inst, \"buttonText\" );\n\t\t\tbuttonImage = this._get( inst, \"buttonImage\" );\n\t\t\tinst.trigger = $( this._get( inst, \"buttonImageOnly\" ) ?\n\t\t\t\t$( \"<img/>\" ).addClass( this._triggerClass ).\n\t\t\t\t\tattr( { src: buttonImage, alt: buttonText, title: buttonText } ) :\n\t\t\t\t$( \"<button type='button'></button>\" ).addClass( this._triggerClass ).\n\t\t\t\t\thtml( !buttonImage ? buttonText : $( \"<img/>\" ).attr(\n\t\t\t\t\t{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.trigger );\n\t\t\tinst.trigger.on( \"click\", function() {\n\t\t\t\tif ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} );\n\t\t}\n\t},\n\n\t/* Apply the maximum length for the date format. */\n\t_autoSize: function( inst ) {\n\t\tif ( this._get( inst, \"autoSize\" ) && !inst.inline ) {\n\t\t\tvar findMax, max, maxI, i,\n\t\t\t\tdate = new Date( 2009, 12 - 1, 20 ), // Ensure double digits\n\t\t\t\tdateFormat = this._get( inst, \"dateFormat\" );\n\n\t\t\tif ( dateFormat.match( /[DM]/ ) ) {\n\t\t\t\tfindMax = function( names ) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t\tmaxI = 0;\n\t\t\t\t\tfor ( i = 0; i < names.length; i++ ) {\n\t\t\t\t\t\tif ( names[ i ].length > max ) {\n\t\t\t\t\t\t\tmax = names[ i ].length;\n\t\t\t\t\t\t\tmaxI = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn maxI;\n\t\t\t\t};\n\t\t\t\tdate.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?\n\t\t\t\t\t\"monthNames\" : \"monthNamesShort\" ) ) ) );\n\t\t\t\tdate.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?\n\t\t\t\t\t\"dayNames\" : \"dayNamesShort\" ) ) ) + 20 - date.getDay() );\n\t\t\t}\n\t\t\tinst.input.attr( \"size\", this._formatDate( inst, date ).length );\n\t\t}\n\t},\n\n\t/* Attach an inline date picker to a div. */\n\t_inlineDatepicker: function( target, inst ) {\n\t\tvar divSpan = $( target );\n\t\tif ( divSpan.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tdivSpan.addClass( this.markerClassName ).append( inst.dpDiv );\n\t\t$.data( target, \"datepicker\", inst );\n\t\tthis._setDate( inst, this._getDefaultDate( inst ), true );\n\t\tthis._updateDatepicker( inst );\n\t\tthis._updateAlternate( inst );\n\n\t\t//If disabled option is true, disable the datepicker before showing it (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\n\t\t// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements\n\t\t// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height\n\t\tinst.dpDiv.css( \"display\", \"block\" );\n\t},\n\n\t/* Pop-up the date picker in a \"dialog\" box.\n\t * @param  input element - ignored\n\t * @param  date\tstring or Date - the initial date to display\n\t * @param  onSelect  function - the function to call when a date is selected\n\t * @param  settings  object - update the dialog date picker instance's settings (anonymous object)\n\t * @param  pos int[2] - coordinates for the dialog's position within the screen or\n\t *\t\t\t\t\tevent - with x/y coordinates or\n\t *\t\t\t\t\tleave empty for default (screen centre)\n\t * @return the manager object\n\t */\n\t_dialogDatepicker: function( input, date, onSelect, settings, pos ) {\n\t\tvar id, browserWidth, browserHeight, scrollX, scrollY,\n\t\t\tinst = this._dialogInst; // internal instance\n\n\t\tif ( !inst ) {\n\t\t\tthis.uuid += 1;\n\t\t\tid = \"dp\" + this.uuid;\n\t\t\tthis._dialogInput = $( \"<input type='text' id='\" + id +\n\t\t\t\t\"' style='position: absolute; top: -100px; width: 0px;'/>\" );\n\t\t\tthis._dialogInput.on( \"keydown\", this._doKeyDown );\n\t\t\t$( \"body\" ).append( this._dialogInput );\n\t\t\tinst = this._dialogInst = this._newInst( this._dialogInput, false );\n\t\t\tinst.settings = {};\n\t\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, settings || {} );\n\t\tdate = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );\n\t\tthis._dialogInput.val( date );\n\n\t\tthis._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );\n\t\tif ( !this._pos ) {\n\t\t\tbrowserWidth = document.documentElement.clientWidth;\n\t\t\tbrowserHeight = document.documentElement.clientHeight;\n\t\t\tscrollX = document.documentElement.scrollLeft || document.body.scrollLeft;\n\t\t\tscrollY = document.documentElement.scrollTop || document.body.scrollTop;\n\t\t\tthis._pos = // should use actual width/height below\n\t\t\t\t[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];\n\t\t}\n\n\t\t// Move input on screen for focus, but hidden behind dialog\n\t\tthis._dialogInput.css( \"left\", ( this._pos[ 0 ] + 20 ) + \"px\" ).css( \"top\", this._pos[ 1 ] + \"px\" );\n\t\tinst.settings.onSelect = onSelect;\n\t\tthis._inDialog = true;\n\t\tthis.dpDiv.addClass( this._dialogClass );\n\t\tthis._showDatepicker( this._dialogInput[ 0 ] );\n\t\tif ( $.blockUI ) {\n\t\t\t$.blockUI( this.dpDiv );\n\t\t}\n\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\treturn this;\n\t},\n\n\t/* Detach a datepicker from its control.\n\t * @param  target\telement - the target input field or division or span\n\t */\n\t_destroyDatepicker: function( target ) {\n\t\tvar nodeName,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\t$.removeData( target, \"datepicker\" );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tinst.append.remove();\n\t\t\tinst.trigger.remove();\n\t\t\t$target.removeClass( this.markerClassName ).\n\t\t\t\toff( \"focus\", this._showDatepicker ).\n\t\t\t\toff( \"keydown\", this._doKeyDown ).\n\t\t\t\toff( \"keypress\", this._doKeyPress ).\n\t\t\t\toff( \"keyup\", this._doKeyUp );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\t$target.removeClass( this.markerClassName ).empty();\n\t\t}\n\n\t\tif ( datepicker_instActive === inst ) {\n\t\t\tdatepicker_instActive = null;\n\t\t}\n\t},\n\n\t/* Enable the date picker to a jQuery selection.\n\t * @param  target\telement - the target input field or division or span\n\t */\n\t_enableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = false;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = false; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"1.0\", cursor: \"\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().removeClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", false );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t},\n\n\t/* Disable the date picker to a jQuery selection.\n\t * @param  target\telement - the target input field or division or span\n\t */\n\t_disableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = true;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = true; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"0.5\", cursor: \"default\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().addClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", true );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t\tthis._disabledInputs[ this._disabledInputs.length ] = target;\n\t},\n\n\t/* Is the first field in a jQuery collection disabled as a datepicker?\n\t * @param  target\telement - the target input field or division or span\n\t * @return boolean - true if disabled, false if enabled\n\t */\n\t_isDisabledDatepicker: function( target ) {\n\t\tif ( !target ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( var i = 0; i < this._disabledInputs.length; i++ ) {\n\t\t\tif ( this._disabledInputs[ i ] === target ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t/* Retrieve the instance data for the target control.\n\t * @param  target  element - the target input field or division or span\n\t * @return  object - the associated instance data\n\t * @throws  error if a jQuery problem getting data\n\t */\n\t_getInst: function( target ) {\n\t\ttry {\n\t\t\treturn $.data( target, \"datepicker\" );\n\t\t}\n\t\tcatch ( err ) {\n\t\t\tthrow \"Missing instance data for this datepicker\";\n\t\t}\n\t},\n\n\t/* Update or retrieve the settings for a date picker attached to an input field or division.\n\t * @param  target  element - the target input field or division or span\n\t * @param  name\tobject - the new settings to update or\n\t *\t\t\t\tstring - the name of the setting to change or retrieve,\n\t *\t\t\t\twhen retrieving also \"all\" for all instance settings or\n\t *\t\t\t\t\"defaults\" for all global defaults\n\t * @param  value   any - the new value for the setting\n\t *\t\t\t\t(omit if above is an object or to retrieve a value)\n\t */\n\t_optionDatepicker: function( target, name, value ) {\n\t\tvar settings, date, minDate, maxDate,\n\t\t\tinst = this._getInst( target );\n\n\t\tif ( arguments.length === 2 && typeof name === \"string\" ) {\n\t\t\treturn ( name === \"defaults\" ? $.extend( {}, $.datepicker._defaults ) :\n\t\t\t\t( inst ? ( name === \"all\" ? $.extend( {}, inst.settings ) :\n\t\t\t\tthis._get( inst, name ) ) : null ) );\n\t\t}\n\n\t\tsettings = name || {};\n\t\tif ( typeof name === \"string\" ) {\n\t\t\tsettings = {};\n\t\t\tsettings[ name ] = value;\n\t\t}\n\n\t\tif ( inst ) {\n\t\t\tif ( this._curInst === inst ) {\n\t\t\t\tthis._hideDatepicker();\n\t\t\t}\n\n\t\t\tdate = this._getDateDatepicker( target, true );\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" );\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" );\n\t\t\tdatepicker_extendRemove( inst.settings, settings );\n\n\t\t\t// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided\n\t\t\tif ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {\n\t\t\t\tinst.settings.minDate = this._formatDate( inst, minDate );\n\t\t\t}\n\t\t\tif ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {\n\t\t\t\tinst.settings.maxDate = this._formatDate( inst, maxDate );\n\t\t\t}\n\t\t\tif ( \"disabled\" in settings ) {\n\t\t\t\tif ( settings.disabled ) {\n\t\t\t\t\tthis._disableDatepicker( target );\n\t\t\t\t} else {\n\t\t\t\t\tthis._enableDatepicker( target );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._attachments( $( target ), inst );\n\t\t\tthis._autoSize( inst );\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateAlternate( inst );\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t// Change method deprecated\n\t_changeDatepicker: function( target, name, value ) {\n\t\tthis._optionDatepicker( target, name, value );\n\t},\n\n\t/* Redraw the date picker attached to an input field or division.\n\t * @param  target  element - the target input field or division or span\n\t */\n\t_refreshDatepicker: function( target ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t/* Set the dates for a jQuery selection.\n\t * @param  target element - the target input field or division or span\n\t * @param  date\tDate - the new date\n\t */\n\t_setDateDatepicker: function( target, date ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateDatepicker( inst );\n\t\t\tthis._updateAlternate( inst );\n\t\t}\n\t},\n\n\t/* Get the date(s) for the first entry in a jQuery selection.\n\t * @param  target element - the target input field or division or span\n\t * @param  noDefault boolean - true if no default date is to be used\n\t * @return Date - the current date\n\t */\n\t_getDateDatepicker: function( target, noDefault ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst && !inst.inline ) {\n\t\t\tthis._setDateFromField( inst, noDefault );\n\t\t}\n\t\treturn ( inst ? this._getDate( inst ) : null );\n\t},\n\n\t/* Handle keystrokes. */\n\t_doKeyDown: function( event ) {\n\t\tvar onSelect, dateStr, sel,\n\t\t\tinst = $.datepicker._getInst( event.target ),\n\t\t\thandled = true,\n\t\t\tisRTL = inst.dpDiv.is( \".ui-datepicker-rtl\" );\n\n\t\tinst._keyEvent = true;\n\t\tif ( $.datepicker._datepickerShowing ) {\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase 9: $.datepicker._hideDatepicker();\n\t\t\t\t\t\thandled = false;\n\t\t\t\t\t\tbreak; // hide on tab out\n\t\t\t\tcase 13: sel = $( \"td.\" + $.datepicker._dayOverClass + \":not(.\" +\n\t\t\t\t\t\t\t\t\t$.datepicker._currentClass + \")\", inst.dpDiv );\n\t\t\t\t\t\tif ( sel[ 0 ] ) {\n\t\t\t\t\t\t\t$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonSelect = $.datepicker._get( inst, \"onSelect\" );\n\t\t\t\t\t\tif ( onSelect ) {\n\t\t\t\t\t\t\tdateStr = $.datepicker._formatDate( inst );\n\n\t\t\t\t\t\t\t// Trigger custom callback\n\t\t\t\t\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false; // don't submit the form\n\t\t\t\tcase 27: $.datepicker._hideDatepicker();\n\t\t\t\t\t\tbreak; // hide on escape\n\t\t\t\tcase 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // previous month/year on page up/+ ctrl\n\t\t\t\tcase 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // next month/year on page down/+ ctrl\n\t\t\t\tcase 35: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._clearDate( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // clear on ctrl or command +end\n\t\t\t\tcase 36: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._gotoToday( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // current on ctrl or command +home\n\t\t\t\tcase 37: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// -1 day on ctrl or command +left\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +left on Mac\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 38: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, -7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // -1 week on ctrl or command +up\n\t\t\t\tcase 39: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// +1 day on ctrl or command +right\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +right\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 40: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, +7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // +1 week on ctrl or command +down\n\t\t\t\tdefault: handled = false;\n\t\t\t}\n\t\t} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home\n\t\t\t$.datepicker._showDatepicker( this );\n\t\t} else {\n\t\t\thandled = false;\n\t\t}\n\n\t\tif ( handled ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t},\n\n\t/* Filter entered characters - based on date format. */\n\t_doKeyPress: function( event ) {\n\t\tvar chars, chr,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( $.datepicker._get( inst, \"constrainInput\" ) ) {\n\t\t\tchars = $.datepicker._possibleChars( $.datepicker._get( inst, \"dateFormat\" ) );\n\t\t\tchr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );\n\t\t\treturn event.ctrlKey || event.metaKey || ( chr < \" \" || !chars || chars.indexOf( chr ) > -1 );\n\t\t}\n\t},\n\n\t/* Synchronise manual entry and field/alternate field. */\n\t_doKeyUp: function( event ) {\n\t\tvar date,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( inst.input.val() !== inst.lastVal ) {\n\t\t\ttry {\n\t\t\t\tdate = $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t( inst.input ? inst.input.val() : null ),\n\t\t\t\t\t$.datepicker._getFormatConfig( inst ) );\n\n\t\t\t\tif ( date ) { // only if valid\n\t\t\t\t\t$.datepicker._setDateFromField( inst );\n\t\t\t\t\t$.datepicker._updateAlternate( inst );\n\t\t\t\t\t$.datepicker._updateDatepicker( inst );\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch ( err ) {\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\n\t/* Pop-up the date picker for a given input field.\n\t * If false returned from beforeShow event handler do not show.\n\t * @param  input  element - the input field attached to the date picker or\n\t *\t\t\t\t\tevent - if triggered by focus\n\t */\n\t_showDatepicker: function( input ) {\n\t\tinput = input.target || input;\n\t\tif ( input.nodeName.toLowerCase() !== \"input\" ) { // find from button/image trigger\n\t\t\tinput = $( \"input\", input.parentNode )[ 0 ];\n\t\t}\n\n\t\tif ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here\n\t\t\treturn;\n\t\t}\n\n\t\tvar inst, beforeShow, beforeShowSettings, isFixed,\n\t\t\toffset, showAnim, duration;\n\n\t\tinst = $.datepicker._getInst( input );\n\t\tif ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {\n\t\t\t$.datepicker._curInst.dpDiv.stop( true, true );\n\t\t\tif ( inst && $.datepicker._datepickerShowing ) {\n\t\t\t\t$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );\n\t\t\t}\n\t\t}\n\n\t\tbeforeShow = $.datepicker._get( inst, \"beforeShow\" );\n\t\tbeforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};\n\t\tif ( beforeShowSettings === false ) {\n\t\t\treturn;\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, beforeShowSettings );\n\n\t\tinst.lastVal = null;\n\t\t$.datepicker._lastInput = input;\n\t\t$.datepicker._setDateFromField( inst );\n\n\t\tif ( $.datepicker._inDialog ) { // hide cursor\n\t\t\tinput.value = \"\";\n\t\t}\n\t\tif ( !$.datepicker._pos ) { // position below input\n\t\t\t$.datepicker._pos = $.datepicker._findPos( input );\n\t\t\t$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height\n\t\t}\n\n\t\tisFixed = false;\n\t\t$( input ).parents().each( function() {\n\t\t\tisFixed |= $( this ).css( \"position\" ) === \"fixed\";\n\t\t\treturn !isFixed;\n\t\t} );\n\n\t\toffset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };\n\t\t$.datepicker._pos = null;\n\n\t\t//to avoid flashes on Firefox\n\t\tinst.dpDiv.empty();\n\n\t\t// determine sizing offscreen\n\t\tinst.dpDiv.css( { position: \"absolute\", display: \"block\", top: \"-1000px\" } );\n\t\t$.datepicker._updateDatepicker( inst );\n\n\t\t// fix width for dynamic number of date pickers\n\t\t// and adjust position before showing\n\t\toffset = $.datepicker._checkOffset( inst, offset, isFixed );\n\t\tinst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?\n\t\t\t\"static\" : ( isFixed ? \"fixed\" : \"absolute\" ) ), display: \"none\",\n\t\t\tleft: offset.left + \"px\", top: offset.top + \"px\" } );\n\n\t\tif ( !inst.inline ) {\n\t\t\tshowAnim = $.datepicker._get( inst, \"showAnim\" );\n\t\t\tduration = $.datepicker._get( inst, \"duration\" );\n\t\t\tinst.dpDiv.css( \"z-index\", datepicker_getZindex( $( input ) ) + 1 );\n\t\t\t$.datepicker._datepickerShowing = true;\n\n\t\t\tif ( $.effects && $.effects.effect[ showAnim ] ) {\n\t\t\t\tinst.dpDiv.show( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ showAnim || \"show\" ]( showAnim ? duration : null );\n\t\t\t}\n\n\t\t\tif ( $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\t\tinst.input.trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t$.datepicker._curInst = inst;\n\t\t}\n\t},\n\n\t/* Generate the date picker content. */\n\t_updateDatepicker: function( inst ) {\n\t\tthis.maxRows = 4; //Reset the max number of rows being displayed (see #7043)\n\t\tdatepicker_instActive = inst; // for delegate hover events\n\t\tinst.dpDiv.empty().append( this._generateHTML( inst ) );\n\t\tthis._attachHandlers( inst );\n\n\t\tvar origyearshtml,\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tcols = numMonths[ 1 ],\n\t\t\twidth = 17,\n\t\t\tactiveCell = inst.dpDiv.find( \".\" + this._dayOverClass + \" a\" );\n\n\t\tif ( activeCell.length > 0 ) {\n\t\t\tdatepicker_handleMouseover.apply( activeCell.get( 0 ) );\n\t\t}\n\n\t\tinst.dpDiv.removeClass( \"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\" ).width( \"\" );\n\t\tif ( cols > 1 ) {\n\t\t\tinst.dpDiv.addClass( \"ui-datepicker-multi-\" + cols ).css( \"width\", ( width * cols ) + \"em\" );\n\t\t}\n\t\tinst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-multi\" );\n\t\tinst.dpDiv[ ( this._get( inst, \"isRTL\" ) ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-rtl\" );\n\n\t\tif ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\tinst.input.trigger( \"focus\" );\n\t\t}\n\n\t\t// Deffered render of the years select (to avoid flashes on Firefox)\n\t\tif ( inst.yearshtml ) {\n\t\t\torigyearshtml = inst.yearshtml;\n\t\t\tsetTimeout( function() {\n\n\t\t\t\t//assure that inst.yearshtml didn't change.\n\t\t\t\tif ( origyearshtml === inst.yearshtml && inst.yearshtml ) {\n\t\t\t\t\tinst.dpDiv.find( \"select.ui-datepicker-year:first\" ).replaceWith( inst.yearshtml );\n\t\t\t\t}\n\t\t\t\torigyearshtml = inst.yearshtml = null;\n\t\t\t}, 0 );\n\t\t}\n\t},\n\n\t// #6694 - don't focus the input if it's already focused\n\t// this breaks the change event in IE\n\t// Support: IE and jQuery <1.9\n\t_shouldFocusInput: function( inst ) {\n\t\treturn inst.input && inst.input.is( \":visible\" ) && !inst.input.is( \":disabled\" ) && !inst.input.is( \":focus\" );\n\t},\n\n\t/* Check positioning to remain on screen. */\n\t_checkOffset: function( inst, offset, isFixed ) {\n\t\tvar dpWidth = inst.dpDiv.outerWidth(),\n\t\t\tdpHeight = inst.dpDiv.outerHeight(),\n\t\t\tinputWidth = inst.input ? inst.input.outerWidth() : 0,\n\t\t\tinputHeight = inst.input ? inst.input.outerHeight() : 0,\n\t\t\tviewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),\n\t\t\tviewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );\n\n\t\toffset.left -= ( this._get( inst, \"isRTL\" ) ? ( dpWidth - inputWidth ) : 0 );\n\t\toffset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;\n\t\toffset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;\n\n\t\t// Now check if datepicker is showing outside window viewport - move to a better place if so.\n\t\toffset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?\n\t\t\tMath.abs( offset.left + dpWidth - viewWidth ) : 0 );\n\t\toffset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?\n\t\t\tMath.abs( dpHeight + inputHeight ) : 0 );\n\n\t\treturn offset;\n\t},\n\n\t/* Find an object's position on the screen. */\n\t_findPos: function( obj ) {\n\t\tvar position,\n\t\t\tinst = this._getInst( obj ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\twhile ( obj && ( obj.type === \"hidden\" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {\n\t\t\tobj = obj[ isRTL ? \"previousSibling\" : \"nextSibling\" ];\n\t\t}\n\n\t\tposition = $( obj ).offset();\n\t\treturn [ position.left, position.top ];\n\t},\n\n\t/* Hide the date picker from view.\n\t * @param  input  element - the input field attached to the date picker\n\t */\n\t_hideDatepicker: function( input ) {\n\t\tvar showAnim, duration, postProcess, onClose,\n\t\t\tinst = this._curInst;\n\n\t\tif ( !inst || ( input && inst !== $.data( input, \"datepicker\" ) ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this._datepickerShowing ) {\n\t\t\tshowAnim = this._get( inst, \"showAnim\" );\n\t\t\tduration = this._get( inst, \"duration\" );\n\t\t\tpostProcess = function() {\n\t\t\t\t$.datepicker._tidyDialog( inst );\n\t\t\t};\n\n\t\t\t// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed\n\t\t\tif ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {\n\t\t\t\tinst.dpDiv.hide( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration, postProcess );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ ( showAnim === \"slideDown\" ? \"slideUp\" :\n\t\t\t\t\t( showAnim === \"fadeIn\" ? \"fadeOut\" : \"hide\" ) ) ]( ( showAnim ? duration : null ), postProcess );\n\t\t\t}\n\n\t\t\tif ( !showAnim ) {\n\t\t\t\tpostProcess();\n\t\t\t}\n\t\t\tthis._datepickerShowing = false;\n\n\t\t\tonClose = this._get( inst, \"onClose\" );\n\t\t\tif ( onClose ) {\n\t\t\t\tonClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : \"\" ), inst ] );\n\t\t\t}\n\n\t\t\tthis._lastInput = null;\n\t\t\tif ( this._inDialog ) {\n\t\t\t\tthis._dialogInput.css( { position: \"absolute\", left: \"0\", top: \"-100px\" } );\n\t\t\t\tif ( $.blockUI ) {\n\t\t\t\t\t$.unblockUI();\n\t\t\t\t\t$( \"body\" ).append( this.dpDiv );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._inDialog = false;\n\t\t}\n\t},\n\n\t/* Tidy up after a dialog display. */\n\t_tidyDialog: function( inst ) {\n\t\tinst.dpDiv.removeClass( this._dialogClass ).off( \".ui-datepicker-calendar\" );\n\t},\n\n\t/* Close date picker if clicked elsewhere. */\n\t_checkExternalClick: function( event ) {\n\t\tif ( !$.datepicker._curInst ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $target = $( event.target ),\n\t\t\tinst = $.datepicker._getInst( $target[ 0 ] );\n\n\t\tif ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&\n\t\t\t\t$target.parents( \"#\" + $.datepicker._mainDivId ).length === 0 &&\n\t\t\t\t!$target.hasClass( $.datepicker.markerClassName ) &&\n\t\t\t\t!$target.closest( \".\" + $.datepicker._triggerClass ).length &&\n\t\t\t\t$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||\n\t\t\t( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {\n\t\t\t\t$.datepicker._hideDatepicker();\n\t\t}\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustDate: function( id, offset, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._adjustInstDate( inst, offset +\n\t\t\t( period === \"M\" ? this._get( inst, \"showCurrentAtPos\" ) : 0 ), // undo positioning\n\t\t\tperiod );\n\t\tthis._updateDatepicker( inst );\n\t},\n\n\t/* Action for current link. */\n\t_gotoToday: function( id ) {\n\t\tvar date,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ) {\n\t\t\tinst.selectedDay = inst.currentDay;\n\t\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth;\n\t\t\tinst.drawYear = inst.selectedYear = inst.currentYear;\n\t\t} else {\n\t\t\tdate = new Date();\n\t\t\tinst.selectedDay = date.getDate();\n\t\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\t}\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a new month/year. */\n\t_selectMonthYear: function( id, select, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tinst[ \"selected\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\tinst[ \"draw\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\t\tparseInt( select.options[ select.selectedIndex ].value, 10 );\n\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a day. */\n\t_selectDay: function( id, month, year, td ) {\n\t\tvar inst,\n\t\t\ttarget = $( id );\n\n\t\tif ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tinst = this._getInst( target[ 0 ] );\n\t\tinst.selectedDay = inst.currentDay = $( \"a\", td ).html();\n\t\tinst.selectedMonth = inst.currentMonth = month;\n\t\tinst.selectedYear = inst.currentYear = year;\n\t\tthis._selectDate( id, this._formatDate( inst,\n\t\t\tinst.currentDay, inst.currentMonth, inst.currentYear ) );\n\t},\n\n\t/* Erase the input field and hide the date picker. */\n\t_clearDate: function( id ) {\n\t\tvar target = $( id );\n\t\tthis._selectDate( target, \"\" );\n\t},\n\n\t/* Update the input field with the selected date. */\n\t_selectDate: function( id, dateStr ) {\n\t\tvar onSelect,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tdateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( dateStr );\n\t\t}\n\t\tthis._updateAlternate( inst );\n\n\t\tonSelect = this._get( inst, \"onSelect\" );\n\t\tif ( onSelect ) {\n\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );  // trigger custom callback\n\t\t} else if ( inst.input ) {\n\t\t\tinst.input.trigger( \"change\" ); // fire the change event\n\t\t}\n\n\t\tif ( inst.inline ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t} else {\n\t\t\tthis._hideDatepicker();\n\t\t\tthis._lastInput = inst.input[ 0 ];\n\t\t\tif ( typeof( inst.input[ 0 ] ) !== \"object\" ) {\n\t\t\t\tinst.input.trigger( \"focus\" ); // restore focus\n\t\t\t}\n\t\t\tthis._lastInput = null;\n\t\t}\n\t},\n\n\t/* Update any alternate field to synchronise with the main field. */\n\t_updateAlternate: function( inst ) {\n\t\tvar altFormat, date, dateStr,\n\t\t\taltField = this._get( inst, \"altField\" );\n\n\t\tif ( altField ) { // update alternate field too\n\t\t\taltFormat = this._get( inst, \"altFormat\" ) || this._get( inst, \"dateFormat\" );\n\t\t\tdate = this._getDate( inst );\n\t\t\tdateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );\n\t\t\t$( altField ).val( dateStr );\n\t\t}\n\t},\n\n\t/* Set as beforeShowDay function to prevent selection of weekends.\n\t * @param  date  Date - the date to customise\n\t * @return [boolean, string] - is this date selectable?, what is its CSS class?\n\t */\n\tnoWeekends: function( date ) {\n\t\tvar day = date.getDay();\n\t\treturn [ ( day > 0 && day < 6 ), \"\" ];\n\t},\n\n\t/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.\n\t * @param  date  Date - the date to get the week for\n\t * @return  number - the number of the week within the year that contains this date\n\t */\n\tiso8601Week: function( date ) {\n\t\tvar time,\n\t\t\tcheckDate = new Date( date.getTime() );\n\n\t\t// Find Thursday of this week starting on Monday\n\t\tcheckDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );\n\n\t\ttime = checkDate.getTime();\n\t\tcheckDate.setMonth( 0 ); // Compare with Jan 1\n\t\tcheckDate.setDate( 1 );\n\t\treturn Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;\n\t},\n\n\t/* Parse a string value into a date object.\n\t * See formatDate below for the possible formats.\n\t *\n\t * @param  format string - the expected format of the date\n\t * @param  value string - the date in the above format\n\t * @param  settings Object - attributes include:\n\t *\t\t\t\t\tshortYearCutoff  number - the cutoff year for determining the century (optional)\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return  Date - the extracted date value or null if value is blank\n\t */\n\tparseDate: function( format, value, settings ) {\n\t\tif ( format == null || value == null ) {\n\t\t\tthrow \"Invalid arguments\";\n\t\t}\n\n\t\tvalue = ( typeof value === \"object\" ? value.toString() : value + \"\" );\n\t\tif ( value === \"\" ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar iFormat, dim, extra,\n\t\t\tiValue = 0,\n\t\t\tshortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,\n\t\t\tshortYearCutoff = ( typeof shortYearCutoffTemp !== \"string\" ? shortYearCutoffTemp :\n\t\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\t\t\tyear = -1,\n\t\t\tmonth = -1,\n\t\t\tday = -1,\n\t\t\tdoy = -1,\n\t\t\tliteral = false,\n\t\t\tdate,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Extract a number from the string value\n\t\t\tgetNumber = function( match ) {\n\t\t\t\tvar isDoubled = lookAhead( match ),\n\t\t\t\t\tsize = ( match === \"@\" ? 14 : ( match === \"!\" ? 20 :\n\t\t\t\t\t( match === \"y\" && isDoubled ? 4 : ( match === \"o\" ? 3 : 2 ) ) ) ),\n\t\t\t\t\tminSize = ( match === \"y\" ? size : 1 ),\n\t\t\t\t\tdigits = new RegExp( \"^\\\\d{\" + minSize + \",\" + size + \"}\" ),\n\t\t\t\t\tnum = value.substring( iValue ).match( digits );\n\t\t\t\tif ( !num ) {\n\t\t\t\t\tthrow \"Missing number at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue += num[ 0 ].length;\n\t\t\t\treturn parseInt( num[ 0 ], 10 );\n\t\t\t},\n\n\t\t\t// Extract a name from the string value and convert to an index\n\t\t\tgetName = function( match, shortNames, longNames ) {\n\t\t\t\tvar index = -1,\n\t\t\t\t\tnames = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {\n\t\t\t\t\t\treturn [ [ k, v ] ];\n\t\t\t\t\t} ).sort( function( a, b ) {\n\t\t\t\t\t\treturn -( a[ 1 ].length - b[ 1 ].length );\n\t\t\t\t\t} );\n\n\t\t\t\t$.each( names, function( i, pair ) {\n\t\t\t\t\tvar name = pair[ 1 ];\n\t\t\t\t\tif ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {\n\t\t\t\t\t\tindex = pair[ 0 ];\n\t\t\t\t\t\tiValue += name.length;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t} else {\n\t\t\t\t\tthrow \"Unknown name at position \" + iValue;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Confirm that a literal character matches the string value\n\t\t\tcheckLiteral = function() {\n\t\t\t\tif ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {\n\t\t\t\t\tthrow \"Unexpected literal at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue++;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\tday = getNumber( \"d\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\tgetName( \"D\", dayNamesShort, dayNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\tdoy = getNumber( \"o\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\tmonth = getNumber( \"m\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\tmonth = getName( \"M\", monthNamesShort, monthNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\tyear = getNumber( \"y\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\tdate = new Date( getNumber( \"@\" ) );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\tdate = new Date( ( getNumber( \"!\" ) - this._ticksTo1970 ) / 10000 );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( iValue < value.length ) {\n\t\t\textra = value.substr( iValue );\n\t\t\tif ( !/^\\s+/.test( extra ) ) {\n\t\t\t\tthrow \"Extra/unparsed characters found in date: \" + extra;\n\t\t\t}\n\t\t}\n\n\t\tif ( year === -1 ) {\n\t\t\tyear = new Date().getFullYear();\n\t\t} else if ( year < 100 ) {\n\t\t\tyear += new Date().getFullYear() - new Date().getFullYear() % 100 +\n\t\t\t\t( year <= shortYearCutoff ? 0 : -100 );\n\t\t}\n\n\t\tif ( doy > -1 ) {\n\t\t\tmonth = 1;\n\t\t\tday = doy;\n\t\t\tdo {\n\t\t\t\tdim = this._getDaysInMonth( year, month - 1 );\n\t\t\t\tif ( day <= dim ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmonth++;\n\t\t\t\tday -= dim;\n\t\t\t} while ( true );\n\t\t}\n\n\t\tdate = this._daylightSavingAdjust( new Date( year, month - 1, day ) );\n\t\tif ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {\n\t\t\tthrow \"Invalid date\"; // E.g. 31/02/00\n\t\t}\n\t\treturn date;\n\t},\n\n\t/* Standard date formats. */\n\tATOM: \"yy-mm-dd\", // RFC 3339 (ISO 8601)\n\tCOOKIE: \"D, dd M yy\",\n\tISO_8601: \"yy-mm-dd\",\n\tRFC_822: \"D, d M y\",\n\tRFC_850: \"DD, dd-M-y\",\n\tRFC_1036: \"D, d M y\",\n\tRFC_1123: \"D, d M yy\",\n\tRFC_2822: \"D, d M yy\",\n\tRSS: \"D, d M y\", // RFC 822\n\tTICKS: \"!\",\n\tTIMESTAMP: \"@\",\n\tW3C: \"yy-mm-dd\", // ISO 8601\n\n\t_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +\n\t\tMath.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),\n\n\t/* Format a date object into a string value.\n\t * The format can be combinations of the following:\n\t * d  - day of month (no leading zero)\n\t * dd - day of month (two digit)\n\t * o  - day of year (no leading zeros)\n\t * oo - day of year (three digit)\n\t * D  - day name short\n\t * DD - day name long\n\t * m  - month of year (no leading zero)\n\t * mm - month of year (two digit)\n\t * M  - month name short\n\t * MM - month name long\n\t * y  - year (two digit)\n\t * yy - year (four digit)\n\t * @ - Unix timestamp (ms since 01/01/1970)\n\t * ! - Windows ticks (100ns since 01/01/0001)\n\t * \"...\" - literal text\n\t * '' - single quote\n\t *\n\t * @param  format string - the desired format of the date\n\t * @param  date Date - the date value to format\n\t * @param  settings Object - attributes include:\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return  string - the date in the above format\n\t */\n\tformatDate: function( format, date, settings ) {\n\t\tif ( !date ) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tvar iFormat,\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Format a number, with leading zero if necessary\n\t\t\tformatNumber = function( match, value, len ) {\n\t\t\t\tvar num = \"\" + value;\n\t\t\t\tif ( lookAhead( match ) ) {\n\t\t\t\t\twhile ( num.length < len ) {\n\t\t\t\t\t\tnum = \"0\" + num;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn num;\n\t\t\t},\n\n\t\t\t// Format a name, short or long as requested\n\t\t\tformatName = function( match, value, shortNames, longNames ) {\n\t\t\t\treturn ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );\n\t\t\t},\n\t\t\toutput = \"\",\n\t\t\tliteral = false;\n\n\t\tif ( date ) {\n\t\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\t\tif ( literal ) {\n\t\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\t\tliteral = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\t\toutput += formatNumber( \"d\", date.getDate(), 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\t\toutput += formatName( \"D\", date.getDay(), dayNamesShort, dayNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\t\toutput += formatNumber( \"o\",\n\t\t\t\t\t\t\t\tMath.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\t\toutput += formatNumber( \"m\", date.getMonth() + 1, 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\t\toutput += formatName( \"M\", date.getMonth(), monthNamesShort, monthNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\t\toutput += ( lookAhead( \"y\" ) ? date.getFullYear() :\n\t\t\t\t\t\t\t\t( date.getFullYear() % 100 < 10 ? \"0\" : \"\" ) + date.getFullYear() % 100 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\t\toutput += date.getTime();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\t\toutput += date.getTime() * 10000 + this._ticksTo1970;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\t\toutput += \"'\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t},\n\n\t/* Extract all possible characters from the date format. */\n\t_possibleChars: function( format ) {\n\t\tvar iFormat,\n\t\t\tchars = \"\",\n\t\t\tliteral = false,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\": case \"m\": case \"y\": case \"@\":\n\t\t\t\t\t\tchars += \"0123456789\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\": case \"M\":\n\t\t\t\t\t\treturn null; // Accept anything\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tchars += \"'\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn chars;\n\t},\n\n\t/* Get a setting value, defaulting if necessary. */\n\t_get: function( inst, name ) {\n\t\treturn inst.settings[ name ] !== undefined ?\n\t\t\tinst.settings[ name ] : this._defaults[ name ];\n\t},\n\n\t/* Parse existing date and initialise date picker. */\n\t_setDateFromField: function( inst, noDefault ) {\n\t\tif ( inst.input.val() === inst.lastVal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar dateFormat = this._get( inst, \"dateFormat\" ),\n\t\t\tdates = inst.lastVal = inst.input ? inst.input.val() : null,\n\t\t\tdefaultDate = this._getDefaultDate( inst ),\n\t\t\tdate = defaultDate,\n\t\t\tsettings = this._getFormatConfig( inst );\n\n\t\ttry {\n\t\t\tdate = this.parseDate( dateFormat, dates, settings ) || defaultDate;\n\t\t} catch ( event ) {\n\t\t\tdates = ( noDefault ? \"\" : dates );\n\t\t}\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tinst.currentDay = ( dates ? date.getDate() : 0 );\n\t\tinst.currentMonth = ( dates ? date.getMonth() : 0 );\n\t\tinst.currentYear = ( dates ? date.getFullYear() : 0 );\n\t\tthis._adjustInstDate( inst );\n\t},\n\n\t/* Retrieve the default date shown on opening. */\n\t_getDefaultDate: function( inst ) {\n\t\treturn this._restrictMinMax( inst,\n\t\t\tthis._determineDate( inst, this._get( inst, \"defaultDate\" ), new Date() ) );\n\t},\n\n\t/* A date may be specified as an exact value or a relative one. */\n\t_determineDate: function( inst, date, defaultDate ) {\n\t\tvar offsetNumeric = function( offset ) {\n\t\t\t\tvar date = new Date();\n\t\t\t\tdate.setDate( date.getDate() + offset );\n\t\t\t\treturn date;\n\t\t\t},\n\t\t\toffsetString = function( offset ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t\toffset, $.datepicker._getFormatConfig( inst ) );\n\t\t\t\t}\n\t\t\t\tcatch ( e ) {\n\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\n\t\t\t\tvar date = ( offset.toLowerCase().match( /^c/ ) ?\n\t\t\t\t\t$.datepicker._getDate( inst ) : null ) || new Date(),\n\t\t\t\t\tyear = date.getFullYear(),\n\t\t\t\t\tmonth = date.getMonth(),\n\t\t\t\t\tday = date.getDate(),\n\t\t\t\t\tpattern = /([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,\n\t\t\t\t\tmatches = pattern.exec( offset );\n\n\t\t\t\twhile ( matches ) {\n\t\t\t\t\tswitch ( matches[ 2 ] || \"d\" ) {\n\t\t\t\t\t\tcase \"d\" : case \"D\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ); break;\n\t\t\t\t\t\tcase \"w\" : case \"W\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ) * 7; break;\n\t\t\t\t\t\tcase \"m\" : case \"M\" :\n\t\t\t\t\t\t\tmonth += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\": case \"Y\" :\n\t\t\t\t\t\t\tyear += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmatches = pattern.exec( offset );\n\t\t\t\t}\n\t\t\t\treturn new Date( year, month, day );\n\t\t\t},\n\t\t\tnewDate = ( date == null || date === \"\" ? defaultDate : ( typeof date === \"string\" ? offsetString( date ) :\n\t\t\t\t( typeof date === \"number\" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );\n\n\t\tnewDate = ( newDate && newDate.toString() === \"Invalid Date\" ? defaultDate : newDate );\n\t\tif ( newDate ) {\n\t\t\tnewDate.setHours( 0 );\n\t\t\tnewDate.setMinutes( 0 );\n\t\t\tnewDate.setSeconds( 0 );\n\t\t\tnewDate.setMilliseconds( 0 );\n\t\t}\n\t\treturn this._daylightSavingAdjust( newDate );\n\t},\n\n\t/* Handle switch to/from daylight saving.\n\t * Hours may be non-zero on daylight saving cut-over:\n\t * > 12 when midnight changeover, but then cannot generate\n\t * midnight datetime, so jump to 1AM, otherwise reset.\n\t * @param  date  (Date) the date to check\n\t * @return  (Date) the corrected date\n\t */\n\t_daylightSavingAdjust: function( date ) {\n\t\tif ( !date ) {\n\t\t\treturn null;\n\t\t}\n\t\tdate.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );\n\t\treturn date;\n\t},\n\n\t/* Set the date(s) directly. */\n\t_setDate: function( inst, date, noChange ) {\n\t\tvar clear = !date,\n\t\t\torigMonth = inst.selectedMonth,\n\t\t\torigYear = inst.selectedYear,\n\t\t\tnewDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );\n\n\t\tinst.selectedDay = inst.currentDay = newDate.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();\n\t\tinst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();\n\t\tif ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t\tthis._adjustInstDate( inst );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( clear ? \"\" : this._formatDate( inst ) );\n\t\t}\n\t},\n\n\t/* Retrieve the date(s) directly. */\n\t_getDate: function( inst ) {\n\t\tvar startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === \"\" ) ? null :\n\t\t\tthis._daylightSavingAdjust( new Date(\n\t\t\tinst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\t\treturn startDate;\n\t},\n\n\t/* Attach the onxxx handlers.  These are declared statically so\n\t * they work with static code transformers like Caja.\n\t */\n\t_attachHandlers: function( inst ) {\n\t\tvar stepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tid = \"#\" + inst.id.replace( /\\\\\\\\/g, \"\\\\\" );\n\t\tinst.dpDiv.find( \"[data-handler]\" ).map( function() {\n\t\t\tvar handler = {\n\t\t\t\tprev: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, -stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\tnext: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, +stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\thide: function() {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t},\n\t\t\t\ttoday: function() {\n\t\t\t\t\t$.datepicker._gotoToday( id );\n\t\t\t\t},\n\t\t\t\tselectDay: function() {\n\t\t\t\t\t$.datepicker._selectDay( id, +this.getAttribute( \"data-month\" ), +this.getAttribute( \"data-year\" ), this );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectMonth: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"M\" );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectYear: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"Y\" );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\t\t\t$( this ).on( this.getAttribute( \"data-event\" ), handler[ this.getAttribute( \"data-handler\" ) ] );\n\t\t} );\n\t},\n\n\t/* Generate the HTML for the current state of the date picker. */\n\t_generateHTML: function( inst ) {\n\t\tvar maxDraw, prevText, prev, nextText, next, currentText, gotoDate,\n\t\t\tcontrols, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,\n\t\t\tmonthNames, monthNamesShort, beforeShowDay, showOtherMonths,\n\t\t\tselectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,\n\t\t\tcornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,\n\t\t\tprintDate, dRow, tbody, daySettings, otherMonth, unselectable,\n\t\t\ttempDate = new Date(),\n\t\t\ttoday = this._daylightSavingAdjust(\n\t\t\t\tnew Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time\n\t\t\tisRTL = this._get( inst, \"isRTL\" ),\n\t\t\tshowButtonPanel = this._get( inst, \"showButtonPanel\" ),\n\t\t\thideIfNoPrevNext = this._get( inst, \"hideIfNoPrevNext\" ),\n\t\t\tnavigationAsDateFormat = this._get( inst, \"navigationAsDateFormat\" ),\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tshowCurrentAtPos = this._get( inst, \"showCurrentAtPos\" ),\n\t\t\tstepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tisMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),\n\t\t\tcurrentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :\n\t\t\t\tnew Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tdrawMonth = inst.drawMonth - showCurrentAtPos,\n\t\t\tdrawYear = inst.drawYear;\n\n\t\tif ( drawMonth < 0 ) {\n\t\t\tdrawMonth += 12;\n\t\t\tdrawYear--;\n\t\t}\n\t\tif ( maxDate ) {\n\t\t\tmaxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),\n\t\t\t\tmaxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );\n\t\t\tmaxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );\n\t\t\twhile ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {\n\t\t\t\tdrawMonth--;\n\t\t\t\tif ( drawMonth < 0 ) {\n\t\t\t\t\tdrawMonth = 11;\n\t\t\t\t\tdrawYear--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinst.drawMonth = drawMonth;\n\t\tinst.drawYear = drawYear;\n\n\t\tprevText = this._get( inst, \"prevText\" );\n\t\tprevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tprev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?\n\t\t\t\"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'\" +\n\t\t\t\" title='\" + prevText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\" ) + \"'>\" + prevText + \"</span></a>\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='\" + prevText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"e\" : \"w\" ) + \"'>\" + prevText + \"</span></a>\" ) );\n\n\t\tnextText = this._get( inst, \"nextText\" );\n\t\tnextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tnext = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?\n\t\t\t\"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'\" +\n\t\t\t\" title='\" + nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\" ) + \"'>\" + nextText + \"</span></a>\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='\" + nextText + \"'><span class='ui-icon ui-icon-circle-triangle-\" + ( isRTL ? \"w\" : \"e\" ) + \"'>\" + nextText + \"</span></a>\" ) );\n\n\t\tcurrentText = this._get( inst, \"currentText\" );\n\t\tgotoDate = ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ? currentDate : today );\n\t\tcurrentText = ( !navigationAsDateFormat ? currentText :\n\t\t\tthis.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );\n\n\t\tcontrols = ( !inst.inline ? \"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>\" +\n\t\t\tthis._get( inst, \"closeText\" ) + \"</button>\" : \"\" );\n\n\t\tbuttonPanel = ( showButtonPanel ) ? \"<div class='ui-datepicker-buttonpane ui-widget-content'>\" + ( isRTL ? controls : \"\" ) +\n\t\t\t( this._isInRange( inst, gotoDate ) ? \"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'\" +\n\t\t\t\">\" + currentText + \"</button>\" : \"\" ) + ( isRTL ? \"\" : controls ) + \"</div>\" : \"\";\n\n\t\tfirstDay = parseInt( this._get( inst, \"firstDay\" ), 10 );\n\t\tfirstDay = ( isNaN( firstDay ) ? 0 : firstDay );\n\n\t\tshowWeek = this._get( inst, \"showWeek\" );\n\t\tdayNames = this._get( inst, \"dayNames\" );\n\t\tdayNamesMin = this._get( inst, \"dayNamesMin\" );\n\t\tmonthNames = this._get( inst, \"monthNames\" );\n\t\tmonthNamesShort = this._get( inst, \"monthNamesShort\" );\n\t\tbeforeShowDay = this._get( inst, \"beforeShowDay\" );\n\t\tshowOtherMonths = this._get( inst, \"showOtherMonths\" );\n\t\tselectOtherMonths = this._get( inst, \"selectOtherMonths\" );\n\t\tdefaultDate = this._getDefaultDate( inst );\n\t\thtml = \"\";\n\n\t\tfor ( row = 0; row < numMonths[ 0 ]; row++ ) {\n\t\t\tgroup = \"\";\n\t\t\tthis.maxRows = 4;\n\t\t\tfor ( col = 0; col < numMonths[ 1 ]; col++ ) {\n\t\t\t\tselectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );\n\t\t\t\tcornerClass = \" ui-corner-all\";\n\t\t\t\tcalender = \"\";\n\t\t\t\tif ( isMultiMonth ) {\n\t\t\t\t\tcalender += \"<div class='ui-datepicker-group\";\n\t\t\t\t\tif ( numMonths[ 1 ] > 1 ) {\n\t\t\t\t\t\tswitch ( col ) {\n\t\t\t\t\t\t\tcase 0: calender += \" ui-datepicker-group-first\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + ( isRTL ? \"right\" : \"left\" ); break;\n\t\t\t\t\t\t\tcase numMonths[ 1 ] - 1: calender += \" ui-datepicker-group-last\";\n\t\t\t\t\t\t\t\tcornerClass = \" ui-corner-\" + ( isRTL ? \"left\" : \"right\" ); break;\n\t\t\t\t\t\t\tdefault: calender += \" ui-datepicker-group-middle\"; cornerClass = \"\"; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcalender += \"'>\";\n\t\t\t\t}\n\t\t\t\tcalender += \"<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix\" + cornerClass + \"'>\" +\n\t\t\t\t\t( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : \"\" ) +\n\t\t\t\t\t( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : \"\" ) +\n\t\t\t\t\tthis._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\t\t\trow > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers\n\t\t\t\t\t\"</div><table class='ui-datepicker-calendar'><thead>\" +\n\t\t\t\t\t\"<tr>\";\n\t\t\t\tthead = ( showWeek ? \"<th class='ui-datepicker-week-col'>\" + this._get( inst, \"weekHeader\" ) + \"</th>\" : \"\" );\n\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // days of the week\n\t\t\t\t\tday = ( dow + firstDay ) % 7;\n\t\t\t\t\tthead += \"<th scope='col'\" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? \" class='ui-datepicker-week-end'\" : \"\" ) + \">\" +\n\t\t\t\t\t\t\"<span title='\" + dayNames[ day ] + \"'>\" + dayNamesMin[ day ] + \"</span></th>\";\n\t\t\t\t}\n\t\t\t\tcalender += thead + \"</tr></thead><tbody>\";\n\t\t\t\tdaysInMonth = this._getDaysInMonth( drawYear, drawMonth );\n\t\t\t\tif ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {\n\t\t\t\t\tinst.selectedDay = Math.min( inst.selectedDay, daysInMonth );\n\t\t\t\t}\n\t\t\t\tleadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;\n\t\t\t\tcurRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate\n\t\t\t\tnumRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)\n\t\t\t\tthis.maxRows = numRows;\n\t\t\t\tprintDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );\n\t\t\t\tfor ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows\n\t\t\t\t\tcalender += \"<tr>\";\n\t\t\t\t\ttbody = ( !showWeek ? \"\" : \"<td class='ui-datepicker-week-col'>\" +\n\t\t\t\t\t\tthis._get( inst, \"calculateWeek\" )( printDate ) + \"</td>\" );\n\t\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // create date picker days\n\t\t\t\t\t\tdaySettings = ( beforeShowDay ?\n\t\t\t\t\t\t\tbeforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, \"\" ] );\n\t\t\t\t\t\totherMonth = ( printDate.getMonth() !== drawMonth );\n\t\t\t\t\t\tunselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||\n\t\t\t\t\t\t\t( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );\n\t\t\t\t\t\ttbody += \"<td class='\" +\n\t\t\t\t\t\t\t( ( dow + firstDay + 6 ) % 7 >= 5 ? \" ui-datepicker-week-end\" : \"\" ) + // highlight weekends\n\t\t\t\t\t\t\t( otherMonth ? \" ui-datepicker-other-month\" : \"\" ) + // highlight days from other months\n\t\t\t\t\t\t\t( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key\n\t\t\t\t\t\t\t( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?\n\n\t\t\t\t\t\t\t// or defaultDate is current printedDate and defaultDate is selectedDate\n\t\t\t\t\t\t\t\" \" + this._dayOverClass : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( unselectable ? \" \" + this._unselectableClass + \" ui-state-disabled\" : \"\" ) +  // highlight unselectable days\n\t\t\t\t\t\t\t( otherMonth && !showOtherMonths ? \"\" : \" \" + daySettings[ 1 ] + // highlight custom dates\n\t\t\t\t\t\t\t( printDate.getTime() === currentDate.getTime() ? \" \" + this._currentClass : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( printDate.getTime() === today.getTime() ? \" ui-datepicker-today\" : \"\" ) ) + \"'\" + // highlight today (if different)\n\t\t\t\t\t\t\t( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? \" title='\" + daySettings[ 2 ].replace( /'/g, \"&#39;\" ) + \"'\" : \"\" ) + // cell title\n\t\t\t\t\t\t\t( unselectable ? \"\" : \" data-handler='selectDay' data-event='click' data-month='\" + printDate.getMonth() + \"' data-year='\" + printDate.getFullYear() + \"'\" ) + \">\" + // actions\n\t\t\t\t\t\t\t( otherMonth && !showOtherMonths ? \"&#xa0;\" : // display for other months\n\t\t\t\t\t\t\t( unselectable ? \"<span class='ui-state-default'>\" + printDate.getDate() + \"</span>\" : \"<a class='ui-state-default\" +\n\t\t\t\t\t\t\t( printDate.getTime() === today.getTime() ? \" ui-state-highlight\" : \"\" ) +\n\t\t\t\t\t\t\t( printDate.getTime() === currentDate.getTime() ? \" ui-state-active\" : \"\" ) + // highlight selected day\n\t\t\t\t\t\t\t( otherMonth ? \" ui-priority-secondary\" : \"\" ) + // distinguish dates from other months\n\t\t\t\t\t\t\t\"' href='#'>\" + printDate.getDate() + \"</a>\" ) ) + \"</td>\"; // display selectable date\n\t\t\t\t\t\tprintDate.setDate( printDate.getDate() + 1 );\n\t\t\t\t\t\tprintDate = this._daylightSavingAdjust( printDate );\n\t\t\t\t\t}\n\t\t\t\t\tcalender += tbody + \"</tr>\";\n\t\t\t\t}\n\t\t\t\tdrawMonth++;\n\t\t\t\tif ( drawMonth > 11 ) {\n\t\t\t\t\tdrawMonth = 0;\n\t\t\t\t\tdrawYear++;\n\t\t\t\t}\n\t\t\t\tcalender += \"</tbody></table>\" + ( isMultiMonth ? \"</div>\" +\n\t\t\t\t\t\t\t( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? \"<div class='ui-datepicker-row-break'></div>\" : \"\" ) : \"\" );\n\t\t\t\tgroup += calender;\n\t\t\t}\n\t\t\thtml += group;\n\t\t}\n\t\thtml += buttonPanel;\n\t\tinst._keyEvent = false;\n\t\treturn html;\n\t},\n\n\t/* Generate the month and year header. */\n\t_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\tsecondary, monthNames, monthNamesShort ) {\n\n\t\tvar inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,\n\t\t\tchangeMonth = this._get( inst, \"changeMonth\" ),\n\t\t\tchangeYear = this._get( inst, \"changeYear\" ),\n\t\t\tshowMonthAfterYear = this._get( inst, \"showMonthAfterYear\" ),\n\t\t\thtml = \"<div class='ui-datepicker-title'>\",\n\t\t\tmonthHtml = \"\";\n\n\t\t// Month selection\n\t\tif ( secondary || !changeMonth ) {\n\t\t\tmonthHtml += \"<span class='ui-datepicker-month'>\" + monthNames[ drawMonth ] + \"</span>\";\n\t\t} else {\n\t\t\tinMinYear = ( minDate && minDate.getFullYear() === drawYear );\n\t\t\tinMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );\n\t\t\tmonthHtml += \"<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>\";\n\t\t\tfor ( month = 0; month < 12; month++ ) {\n\t\t\t\tif ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {\n\t\t\t\t\tmonthHtml += \"<option value='\" + month + \"'\" +\n\t\t\t\t\t\t( month === drawMonth ? \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\">\" + monthNamesShort[ month ] + \"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tmonthHtml += \"</select>\";\n\t\t}\n\n\t\tif ( !showMonthAfterYear ) {\n\t\t\thtml += monthHtml + ( secondary || !( changeMonth && changeYear ) ? \"&#xa0;\" : \"\" );\n\t\t}\n\n\t\t// Year selection\n\t\tif ( !inst.yearshtml ) {\n\t\t\tinst.yearshtml = \"\";\n\t\t\tif ( secondary || !changeYear ) {\n\t\t\t\thtml += \"<span class='ui-datepicker-year'>\" + drawYear + \"</span>\";\n\t\t\t} else {\n\n\t\t\t\t// determine range of years to display\n\t\t\t\tyears = this._get( inst, \"yearRange\" ).split( \":\" );\n\t\t\t\tthisYear = new Date().getFullYear();\n\t\t\t\tdetermineYear = function( value ) {\n\t\t\t\t\tvar year = ( value.match( /c[+\\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :\n\t\t\t\t\t\t( value.match( /[+\\-].*/ ) ? thisYear + parseInt( value, 10 ) :\n\t\t\t\t\t\tparseInt( value, 10 ) ) );\n\t\t\t\t\treturn ( isNaN( year ) ? thisYear : year );\n\t\t\t\t};\n\t\t\t\tyear = determineYear( years[ 0 ] );\n\t\t\t\tendYear = Math.max( year, determineYear( years[ 1 ] || \"\" ) );\n\t\t\t\tyear = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );\n\t\t\t\tendYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );\n\t\t\t\tinst.yearshtml += \"<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>\";\n\t\t\t\tfor ( ; year <= endYear; year++ ) {\n\t\t\t\t\tinst.yearshtml += \"<option value='\" + year + \"'\" +\n\t\t\t\t\t\t( year === drawYear ? \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\">\" + year + \"</option>\";\n\t\t\t\t}\n\t\t\t\tinst.yearshtml += \"</select>\";\n\n\t\t\t\thtml += inst.yearshtml;\n\t\t\t\tinst.yearshtml = null;\n\t\t\t}\n\t\t}\n\n\t\thtml += this._get( inst, \"yearSuffix\" );\n\t\tif ( showMonthAfterYear ) {\n\t\t\thtml += ( secondary || !( changeMonth && changeYear ) ? \"&#xa0;\" : \"\" ) + monthHtml;\n\t\t}\n\t\thtml += \"</div>\"; // Close datepicker_header\n\t\treturn html;\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustInstDate: function( inst, offset, period ) {\n\t\tvar year = inst.selectedYear + ( period === \"Y\" ? offset : 0 ),\n\t\t\tmonth = inst.selectedMonth + ( period === \"M\" ? offset : 0 ),\n\t\t\tday = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === \"D\" ? offset : 0 ),\n\t\t\tdate = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );\n\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tif ( period === \"M\" || period === \"Y\" ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t},\n\n\t/* Ensure a date is within any min/max bounds. */\n\t_restrictMinMax: function( inst, date ) {\n\t\tvar minDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tnewDate = ( minDate && date < minDate ? minDate : date );\n\t\treturn ( maxDate && newDate > maxDate ? maxDate : newDate );\n\t},\n\n\t/* Notify change of month/year. */\n\t_notifyChange: function( inst ) {\n\t\tvar onChange = this._get( inst, \"onChangeMonthYear\" );\n\t\tif ( onChange ) {\n\t\t\tonChange.apply( ( inst.input ? inst.input[ 0 ] : null ),\n\t\t\t\t[ inst.selectedYear, inst.selectedMonth + 1, inst ] );\n\t\t}\n\t},\n\n\t/* Determine the number of months to show. */\n\t_getNumberOfMonths: function( inst ) {\n\t\tvar numMonths = this._get( inst, \"numberOfMonths\" );\n\t\treturn ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === \"number\" ? [ 1, numMonths ] : numMonths ) );\n\t},\n\n\t/* Determine the current maximum date - ensure no time components are set. */\n\t_getMinMaxDate: function( inst, minMax ) {\n\t\treturn this._determineDate( inst, this._get( inst, minMax + \"Date\" ), null );\n\t},\n\n\t/* Find the number of days in a given month. */\n\t_getDaysInMonth: function( year, month ) {\n\t\treturn 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();\n\t},\n\n\t/* Find the day of the week of the first of a month. */\n\t_getFirstDayOfMonth: function( year, month ) {\n\t\treturn new Date( year, month, 1 ).getDay();\n\t},\n\n\t/* Determines if we should allow a \"next/prev\" month display change. */\n\t_canAdjustMonth: function( inst, offset, curYear, curMonth ) {\n\t\tvar numMonths = this._getNumberOfMonths( inst ),\n\t\t\tdate = this._daylightSavingAdjust( new Date( curYear,\n\t\t\tcurMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );\n\n\t\tif ( offset < 0 ) {\n\t\t\tdate.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );\n\t\t}\n\t\treturn this._isInRange( inst, date );\n\t},\n\n\t/* Is the given date in the accepted range? */\n\t_isInRange: function( inst, date ) {\n\t\tvar yearSplit, currentYear,\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tminYear = null,\n\t\t\tmaxYear = null,\n\t\t\tyears = this._get( inst, \"yearRange\" );\n\t\t\tif ( years ) {\n\t\t\t\tyearSplit = years.split( \":\" );\n\t\t\t\tcurrentYear = new Date().getFullYear();\n\t\t\t\tminYear = parseInt( yearSplit[ 0 ], 10 );\n\t\t\t\tmaxYear = parseInt( yearSplit[ 1 ], 10 );\n\t\t\t\tif ( yearSplit[ 0 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tminYear += currentYear;\n\t\t\t\t}\n\t\t\t\tif ( yearSplit[ 1 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tmaxYear += currentYear;\n\t\t\t\t}\n\t\t\t}\n\n\t\treturn ( ( !minDate || date.getTime() >= minDate.getTime() ) &&\n\t\t\t( !maxDate || date.getTime() <= maxDate.getTime() ) &&\n\t\t\t( !minYear || date.getFullYear() >= minYear ) &&\n\t\t\t( !maxYear || date.getFullYear() <= maxYear ) );\n\t},\n\n\t/* Provide the configuration settings for formatting/parsing. */\n\t_getFormatConfig: function( inst ) {\n\t\tvar shortYearCutoff = this._get( inst, \"shortYearCutoff\" );\n\t\tshortYearCutoff = ( typeof shortYearCutoff !== \"string\" ? shortYearCutoff :\n\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );\n\t\treturn { shortYearCutoff: shortYearCutoff,\n\t\t\tdayNamesShort: this._get( inst, \"dayNamesShort\" ), dayNames: this._get( inst, \"dayNames\" ),\n\t\t\tmonthNamesShort: this._get( inst, \"monthNamesShort\" ), monthNames: this._get( inst, \"monthNames\" ) };\n\t},\n\n\t/* Format the given date for display. */\n\t_formatDate: function( inst, day, month, year ) {\n\t\tif ( !day ) {\n\t\t\tinst.currentDay = inst.selectedDay;\n\t\t\tinst.currentMonth = inst.selectedMonth;\n\t\t\tinst.currentYear = inst.selectedYear;\n\t\t}\n\t\tvar date = ( day ? ( typeof day === \"object\" ? day :\n\t\t\tthis._daylightSavingAdjust( new Date( year, month, day ) ) ) :\n\t\t\tthis._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\treturn this.formatDate( this._get( inst, \"dateFormat\" ), date, this._getFormatConfig( inst ) );\n\t}\n} );\n\n/*\n * Bind hover events for datepicker elements.\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\n * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\n */\nfunction datepicker_bindHover( dpDiv ) {\n\tvar selector = \"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";\n\treturn dpDiv.on( \"mouseout\", selector, function() {\n\t\t\t$( this ).removeClass( \"ui-state-hover\" );\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-prev-hover\" );\n\t\t\t}\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-next-hover\" );\n\t\t\t}\n\t\t} )\n\t\t.on( \"mouseover\", selector, datepicker_handleMouseover );\n}\n\nfunction datepicker_handleMouseover() {\n\tif ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {\n\t\t$( this ).parents( \".ui-datepicker-calendar\" ).find( \"a\" ).removeClass( \"ui-state-hover\" );\n\t\t$( this ).addClass( \"ui-state-hover\" );\n\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-prev-hover\" );\n\t\t}\n\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-next-hover\" );\n\t\t}\n\t}\n}\n\n/* jQuery extend now ignores nulls! */\nfunction datepicker_extendRemove( target, props ) {\n\t$.extend( target, props );\n\tfor ( var name in props ) {\n\t\tif ( props[ name ] == null ) {\n\t\t\ttarget[ name ] = props[ name ];\n\t\t}\n\t}\n\treturn target;\n}\n\n/* Invoke the datepicker functionality.\n   @param  options  string - a command, optionally followed by additional parameters or\n\t\t\t\t\tObject - settings for attaching new datepicker functionality\n   @return  jQuery object */\n$.fn.datepicker = function( options ) {\n\n\t/* Verify an empty collection wasn't passed - Fixes #6976 */\n\tif ( !this.length ) {\n\t\treturn this;\n\t}\n\n\t/* Initialise the date picker. */\n\tif ( !$.datepicker.initialized ) {\n\t\t$( document ).on( \"mousedown\", $.datepicker._checkExternalClick );\n\t\t$.datepicker.initialized = true;\n\t}\n\n\t/* Append datepicker main container to body if not exist. */\n\tif ( $( \"#\" + $.datepicker._mainDivId ).length === 0 ) {\n\t\t$( \"body\" ).append( $.datepicker.dpDiv );\n\t}\n\n\tvar otherArgs = Array.prototype.slice.call( arguments, 1 );\n\tif ( typeof options === \"string\" && ( options === \"isDisabled\" || options === \"getDate\" || options === \"widget\" ) ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\tif ( options === \"option\" && arguments.length === 2 && typeof arguments[ 1 ] === \"string\" ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\treturn this.each( function() {\n\t\ttypeof options === \"string\" ?\n\t\t\t$.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\t\tapply( $.datepicker, [ this ].concat( otherArgs ) ) :\n\t\t\t$.datepicker._attachDatepicker( this, options );\n\t} );\n};\n\n$.datepicker = new Datepicker(); // singleton instance\n$.datepicker.initialized = false;\n$.datepicker.uuid = new Date().getTime();\n$.datepicker.version = \"1.12.1\";\n\nvar widgetsDatepicker = $.datepicker;\n\n\n\n\n// This file is deprecated\nvar ie = $.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\n\n/*!\n * jQuery UI Mouse 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Mouse\n//>>group: Widgets\n//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.\n//>>docs: http://api.jqueryui.com/mouse/\n\n\n\nvar mouseHandled = false;\n$( document ).on( \"mouseup\", function() {\n\tmouseHandled = false;\n} );\n\nvar widgetsMouse = $.widget( \"ui.mouse\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tcancel: \"input, textarea, button, select, option\",\n\t\tdistance: 1,\n\t\tdelay: 0\n\t},\n\t_mouseInit: function() {\n\t\tvar that = this;\n\n\t\tthis.element\n\t\t\t.on( \"mousedown.\" + this.widgetName, function( event ) {\n\t\t\t\treturn that._mouseDown( event );\n\t\t\t} )\n\t\t\t.on( \"click.\" + this.widgetName, function( event ) {\n\t\t\t\tif ( true === $.data( event.target, that.widgetName + \".preventClickEvent\" ) ) {\n\t\t\t\t\t$.removeData( event.target, that.widgetName + \".preventClickEvent\" );\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis.started = false;\n\t},\n\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\n\t// other instances of mouse\n\t_mouseDestroy: function() {\n\t\tthis.element.off( \".\" + this.widgetName );\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\tthis.document\n\t\t\t\t.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t\t.off( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\t\t}\n\t},\n\n\t_mouseDown: function( event ) {\n\n\t\t// don't let more than one widget handle mouseStart\n\t\tif ( mouseHandled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._mouseMoved = false;\n\n\t\t// We may have missed mouseup (out of window)\n\t\t( this._mouseStarted && this._mouseUp( event ) );\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = ( event.which === 1 ),\n\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\n\t\t\t// disabled inputs (#7620)\n\t\t\telIsCancel = ( typeof this.options.cancel === \"string\" && event.target.nodeName ?\n\t\t\t\t$( event.target ).closest( this.options.cancel ).length : false );\n\t\tif ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.mouseDelayMet = !this.options.delay;\n\t\tif ( !this.mouseDelayMet ) {\n\t\t\tthis._mouseDelayTimer = setTimeout( function() {\n\t\t\t\tthat.mouseDelayMet = true;\n\t\t\t}, this.options.delay );\n\t\t}\n\n\t\tif ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {\n\t\t\tthis._mouseStarted = ( this._mouseStart( event ) !== false );\n\t\t\tif ( !this._mouseStarted ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Click event may never have fired (Gecko & Opera)\n\t\tif ( true === $.data( event.target, this.widgetName + \".preventClickEvent\" ) ) {\n\t\t\t$.removeData( event.target, this.widgetName + \".preventClickEvent\" );\n\t\t}\n\n\t\t// These delegates are required to keep context\n\t\tthis._mouseMoveDelegate = function( event ) {\n\t\t\treturn that._mouseMove( event );\n\t\t};\n\t\tthis._mouseUpDelegate = function( event ) {\n\t\t\treturn that._mouseUp( event );\n\t\t};\n\n\t\tthis.document\n\t\t\t.on( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.on( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tevent.preventDefault();\n\n\t\tmouseHandled = true;\n\t\treturn true;\n\t},\n\n\t_mouseMove: function( event ) {\n\n\t\t// Only check for mouseups outside the document if you've moved inside the document\n\t\t// at least once. This prevents the firing of mouseup in the case of IE<9, which will\n\t\t// fire a mousemove event if content is placed under the cursor. See #7778\n\t\t// Support: IE <9\n\t\tif ( this._mouseMoved ) {\n\n\t\t\t// IE mouseup check - mouseup happened when mouse was out of window\n\t\t\tif ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&\n\t\t\t\t\t!event.button ) {\n\t\t\t\treturn this._mouseUp( event );\n\n\t\t\t// Iframe mouseup check - mouseup occurred in another document\n\t\t\t} else if ( !event.which ) {\n\n\t\t\t\t// Support: Safari <=8 - 9\n\t\t\t\t// Safari sets which to 0 if you press any of the following keys\n\t\t\t\t// during a drag (#14461)\n\t\t\t\tif ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||\n\t\t\t\t\t\tevent.originalEvent.metaKey || event.originalEvent.shiftKey ) {\n\t\t\t\t\tthis.ignoreMissingWhich = true;\n\t\t\t\t} else if ( !this.ignoreMissingWhich ) {\n\t\t\t\t\treturn this._mouseUp( event );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( event.which || event.button ) {\n\t\t\tthis._mouseMoved = true;\n\t\t}\n\n\t\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseDrag( event );\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {\n\t\t\tthis._mouseStarted =\n\t\t\t\t( this._mouseStart( this._mouseDownEvent, event ) !== false );\n\t\t\t( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );\n\t\t}\n\n\t\treturn !this._mouseStarted;\n\t},\n\n\t_mouseUp: function( event ) {\n\t\tthis.document\n\t\t\t.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.off( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseStarted = false;\n\n\t\t\tif ( event.target === this._mouseDownEvent.target ) {\n\t\t\t\t$.data( event.target, this.widgetName + \".preventClickEvent\", true );\n\t\t\t}\n\n\t\t\tthis._mouseStop( event );\n\t\t}\n\n\t\tif ( this._mouseDelayTimer ) {\n\t\t\tclearTimeout( this._mouseDelayTimer );\n\t\t\tdelete this._mouseDelayTimer;\n\t\t}\n\n\t\tthis.ignoreMissingWhich = false;\n\t\tmouseHandled = false;\n\t\tevent.preventDefault();\n\t},\n\n\t_mouseDistanceMet: function( event ) {\n\t\treturn ( Math.max(\n\t\t\t\tMath.abs( this._mouseDownEvent.pageX - event.pageX ),\n\t\t\t\tMath.abs( this._mouseDownEvent.pageY - event.pageY )\n\t\t\t) >= this.options.distance\n\t\t);\n\t},\n\n\t_mouseDelayMet: function( /* event */ ) {\n\t\treturn this.mouseDelayMet;\n\t},\n\n\t// These are placeholder methods, to be overriden by extending plugin\n\t_mouseStart: function( /* event */ ) {},\n\t_mouseDrag: function( /* event */ ) {},\n\t_mouseStop: function( /* event */ ) {},\n\t_mouseCapture: function( /* event */ ) { return true; }\n} );\n\n\n\n\n// $.ui.plugin is deprecated. Use $.widget() extensions instead.\nvar plugin = $.ui.plugin = {\n\tadd: function( module, option, set ) {\n\t\tvar i,\n\t\t\tproto = $.ui[ module ].prototype;\n\t\tfor ( i in set ) {\n\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\n\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\n\t\t}\n\t},\n\tcall: function( instance, name, args, allowDisconnected ) {\n\t\tvar i,\n\t\t\tset = instance.plugins[ name ];\n\n\t\tif ( !set ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||\n\t\t\t\tinstance.element[ 0 ].parentNode.nodeType === 11 ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( i = 0; i < set.length; i++ ) {\n\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\n\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\n\t\t\t}\n\t\t}\n\t}\n};\n\n\n\nvar safeBlur = $.ui.safeBlur = function( element ) {\n\n\t// Support: IE9 - 10 only\n\t// If the <body> is blurred, IE will switch windows, see #9420\n\tif ( element && element.nodeName.toLowerCase() !== \"body\" ) {\n\t\t$( element ).trigger( \"blur\" );\n\t}\n};\n\n\n/*!\n * jQuery UI Draggable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Draggable\n//>>group: Interactions\n//>>description: Enables dragging functionality for any element.\n//>>docs: http://api.jqueryui.com/draggable/\n//>>demos: http://jqueryui.com/draggable/\n//>>css.structure: ../../themes/base/draggable.css\n\n\n\n$.widget( \"ui.draggable\", $.ui.mouse, {\n\tversion: \"1.12.1\",\n\twidgetEventPrefix: \"drag\",\n\toptions: {\n\t\taddClasses: true,\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectToSortable: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\tiframeFix: false,\n\t\topacity: false,\n\t\trefreshPositions: false,\n\t\trevert: false,\n\t\trevertDuration: 500,\n\t\tscope: \"default\",\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tsnap: false,\n\t\tsnapMode: \"both\",\n\t\tsnapTolerance: 20,\n\t\tstack: false,\n\t\tzIndex: false,\n\n\t\t// Callbacks\n\t\tdrag: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\t_create: function() {\n\n\t\tif ( this.options.helper === \"original\" ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\t\tif ( this.options.addClasses ) {\n\t\t\tthis._addClass( \"ui-draggable\" );\n\t\t}\n\t\tthis._setHandleClassName();\n\n\t\tthis._mouseInit();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._removeHandleClassName();\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tif ( ( this.helper || this.element ).is( \".ui-draggable-dragging\" ) ) {\n\t\t\tthis.destroyOnClear = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._removeHandleClassName();\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function( event ) {\n\t\tvar o = this.options;\n\n\t\t// Among others, prevent a drag on a resizable-handle\n\t\tif ( this.helper || o.disabled ||\n\t\t\t\t$( event.target ).closest( \".ui-resizable-handle\" ).length > 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//Quit if we're not on a valid handle\n\t\tthis.handle = this._getHandle( event );\n\t\tif ( !this.handle ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._blurActiveElement( event );\n\n\t\tthis._blockFrames( o.iframeFix === true ? \"iframe\" : o.iframeFix );\n\n\t\treturn true;\n\n\t},\n\n\t_blockFrames: function( selector ) {\n\t\tthis.iframeBlocks = this.document.find( selector ).map( function() {\n\t\t\tvar iframe = $( this );\n\n\t\t\treturn $( \"<div>\" )\n\t\t\t\t.css( \"position\", \"absolute\" )\n\t\t\t\t.appendTo( iframe.parent() )\n\t\t\t\t.outerWidth( iframe.outerWidth() )\n\t\t\t\t.outerHeight( iframe.outerHeight() )\n\t\t\t\t.offset( iframe.offset() )[ 0 ];\n\t\t} );\n\t},\n\n\t_unblockFrames: function() {\n\t\tif ( this.iframeBlocks ) {\n\t\t\tthis.iframeBlocks.remove();\n\t\t\tdelete this.iframeBlocks;\n\t\t}\n\t},\n\n\t_blurActiveElement: function( event ) {\n\t\tvar activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),\n\t\t\ttarget = $( event.target );\n\n\t\t// Don't blur if the event occurred on an element that is within\n\t\t// the currently focused element\n\t\t// See #10527, #12472\n\t\tif ( target.closest( activeElement ).length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Blur any element that currently has focus, see #4261\n\t\t$.ui.safeBlur( activeElement );\n\t},\n\n\t_mouseStart: function( event ) {\n\n\t\tvar o = this.options;\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper( event );\n\n\t\tthis._addClass( this.helper, \"ui-draggable-dragging\" );\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//If ddmanager is used for droppables, set the global draggable\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Store the helper's css position\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\t\tthis.scrollParent = this.helper.scrollParent( true );\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tthis.hasFixedAncestor = this.helper.parents().filter( function() {\n\t\t\t\treturn $( this ).css( \"position\" ) === \"fixed\";\n\t\t\t} ).length > 0;\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.positionAbs = this.element.offset();\n\t\tthis._refreshOffsets( event );\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this.position = this._generatePosition( event, false );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );\n\n\t\t//Set a containment if given in the options\n\t\tthis._setContainment();\n\n\t\t//Trigger event + callbacks\n\t\tif ( this._trigger( \"start\", event ) === false ) {\n\t\t\tthis._clear();\n\t\t\treturn false;\n\t\t}\n\n\t\t//Recache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//Prepare the droppable offsets\n\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t}\n\n\t\t// Execute the drag once - this causes the helper not to be visible before getting its\n\t\t// correct position\n\t\tthis._mouseDrag( event, true );\n\n\t\t// If the ddmanager is used for droppables, inform the manager that dragging has started\n\t\t// (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStart( this, event );\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t_refreshOffsets: function( event ) {\n\t\tthis.offset = {\n\t\t\ttop: this.positionAbs.top - this.margins.top,\n\t\t\tleft: this.positionAbs.left - this.margins.left,\n\t\t\tscroll: false,\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset()\n\t\t};\n\n\t\tthis.offset.click = {\n\t\t\tleft: event.pageX - this.offset.left,\n\t\t\ttop: event.pageY - this.offset.top\n\t\t};\n\t},\n\n\t_mouseDrag: function( event, noPropagation ) {\n\n\t\t// reset any necessary cached properties (see #5009)\n\t\tif ( this.hasFixedAncestor ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event, true );\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\t//Call plugins and callbacks and use the resulting position if something is returned\n\t\tif ( !noPropagation ) {\n\t\t\tvar ui = this._uiHash();\n\t\t\tif ( this._trigger( \"drag\", event, ui ) === false ) {\n\t\t\t\tthis._mouseUp( new $.Event( \"mouseup\", event ) );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.position = ui.position;\n\t\t}\n\n\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.drag( this, event );\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function( event ) {\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tvar that = this,\n\t\t\tdropped = false;\n\t\tif ( $.ui.ddmanager && !this.options.dropBehaviour ) {\n\t\t\tdropped = $.ui.ddmanager.drop( this, event );\n\t\t}\n\n\t\t//if a drop comes from outside (a sortable)\n\t\tif ( this.dropped ) {\n\t\t\tdropped = this.dropped;\n\t\t\tthis.dropped = false;\n\t\t}\n\n\t\tif ( ( this.options.revert === \"invalid\" && !dropped ) ||\n\t\t\t\t( this.options.revert === \"valid\" && dropped ) ||\n\t\t\t\tthis.options.revert === true || ( $.isFunction( this.options.revert ) &&\n\t\t\t\tthis.options.revert.call( this.element, dropped ) )\n\t\t) {\n\t\t\t$( this.helper ).animate(\n\t\t\t\tthis.originalPosition,\n\t\t\t\tparseInt( this.options.revertDuration, 10 ),\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( that._trigger( \"stop\", event ) !== false ) {\n\t\t\t\t\t\tthat._clear();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tif ( this._trigger( \"stop\", event ) !== false ) {\n\t\t\t\tthis._clear();\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseUp: function( event ) {\n\t\tthis._unblockFrames();\n\n\t\t// If the ddmanager is used for droppables, inform the manager that dragging has stopped\n\t\t// (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStop( this, event );\n\t\t}\n\n\t\t// Only need to focus if the event occurred on the draggable itself, see #10527\n\t\tif ( this.handleElement.is( event.target ) ) {\n\n\t\t\t// The interaction is over; whether or not the click resulted in a drag,\n\t\t\t// focus the element\n\t\t\tthis.element.trigger( \"focus\" );\n\t\t}\n\n\t\treturn $.ui.mouse.prototype._mouseUp.call( this, event );\n\t},\n\n\tcancel: function() {\n\n\t\tif ( this.helper.is( \".ui-draggable-dragging\" ) ) {\n\t\t\tthis._mouseUp( new $.Event( \"mouseup\", { target: this.element[ 0 ] } ) );\n\t\t} else {\n\t\t\tthis._clear();\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\t_getHandle: function( event ) {\n\t\treturn this.options.handle ?\n\t\t\t!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :\n\t\t\ttrue;\n\t},\n\n\t_setHandleClassName: function() {\n\t\tthis.handleElement = this.options.handle ?\n\t\t\tthis.element.find( this.options.handle ) : this.element;\n\t\tthis._addClass( this.handleElement, \"ui-draggable-handle\" );\n\t},\n\n\t_removeHandleClassName: function() {\n\t\tthis._removeClass( this.handleElement, \"ui-draggable-handle\" );\n\t},\n\n\t_createHelper: function( event ) {\n\n\t\tvar o = this.options,\n\t\t\thelperIsFunction = $.isFunction( o.helper ),\n\t\t\thelper = helperIsFunction ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ?\n\t\t\t\t\tthis.element.clone().removeAttr( \"id\" ) :\n\t\t\t\t\tthis.element );\n\n\t\tif ( !helper.parents( \"body\" ).length ) {\n\t\t\thelper.appendTo( ( o.appendTo === \"parent\" ?\n\t\t\t\tthis.element[ 0 ].parentNode :\n\t\t\t\to.appendTo ) );\n\t\t}\n\n\t\t// Http://bugs.jqueryui.com/ticket/9446\n\t\t// a helper function can return the original element\n\t\t// which wouldn't have been set to relative in _create\n\t\tif ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {\n\t\t\tthis._setPositionRelative();\n\t\t}\n\n\t\tif ( helper[ 0 ] !== this.element[ 0 ] &&\n\t\t\t\t!( /(fixed|absolute)/ ).test( helper.css( \"position\" ) ) ) {\n\t\t\thelper.css( \"position\", \"absolute\" );\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_setPositionRelative: function() {\n\t\tif ( !( /^(?:r|a|f)/ ).test( this.element.css( \"position\" ) ) ) {\n\t\t\tthis.element[ 0 ].style.position = \"relative\";\n\t\t}\n\t},\n\n\t_adjustOffsetFromHelper: function( obj ) {\n\t\tif ( typeof obj === \"string\" ) {\n\t\t\tobj = obj.split( \" \" );\n\t\t}\n\t\tif ( $.isArray( obj ) ) {\n\t\t\tobj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };\n\t\t}\n\t\tif ( \"left\" in obj ) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif ( \"right\" in obj ) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif ( \"top\" in obj ) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif ( \"bottom\" in obj ) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_isRootNode: function( element ) {\n\t\treturn ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tvar po = this.offsetParent.offset(),\n\t\t\tdocument = this.document[ 0 ];\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the\n\t\t// following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the\n\t\t// next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't\n\t\t// the document, which means that the scroll is included in the initial calculation of the\n\t\t// offset of the parent, and never recalculated upon drag\n\t\tif ( this.cssPosition === \"absolute\" && this.scrollParent[ 0 ] !== document &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\tif ( this._isRootNode( this.offsetParent[ 0 ] ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + ( parseInt( this.offsetParent.css( \"borderTopWidth\" ), 10 ) || 0 ),\n\t\t\tleft: po.left + ( parseInt( this.offsetParent.css( \"borderLeftWidth\" ), 10 ) || 0 )\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\t\tif ( this.cssPosition !== \"relative\" ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\tvar p = this.element.position(),\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: p.top - ( parseInt( this.helper.css( \"top\" ), 10 ) || 0 ) +\n\t\t\t\t( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),\n\t\t\tleft: p.left - ( parseInt( this.helper.css( \"left\" ), 10 ) || 0 ) +\n\t\t\t\t( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )\n\t\t};\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: ( parseInt( this.element.css( \"marginLeft\" ), 10 ) || 0 ),\n\t\t\ttop: ( parseInt( this.element.css( \"marginTop\" ), 10 ) || 0 ),\n\t\t\tright: ( parseInt( this.element.css( \"marginRight\" ), 10 ) || 0 ),\n\t\t\tbottom: ( parseInt( this.element.css( \"marginBottom\" ), 10 ) || 0 )\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar isUserScrollable, c, ce,\n\t\t\to = this.options,\n\t\t\tdocument = this.document[ 0 ];\n\n\t\tthis.relativeContainer = null;\n\n\t\tif ( !o.containment ) {\n\t\t\tthis.containment = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\t$( window ).scrollLeft() + $( window ).width() -\n\t\t\t\t\tthis.helperProportions.width - this.margins.left,\n\t\t\t\t$( window ).scrollTop() +\n\t\t\t\t\t( $( window ).height() || document.body.parentNode.scrollHeight ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"document\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t$( document ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( $( document ).height() || document.body.parentNode.scrollHeight ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment.constructor === Array ) {\n\t\t\tthis.containment = o.containment;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\n\t\tc = $( o.containment );\n\t\tce = c[ 0 ];\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tisUserScrollable = /(scroll|auto)/.test( c.css( \"overflow\" ) );\n\n\t\tthis.containment = [\n\t\t\t( parseInt( c.css( \"borderLeftWidth\" ), 10 ) || 0 ) +\n\t\t\t\t( parseInt( c.css( \"paddingLeft\" ), 10 ) || 0 ),\n\t\t\t( parseInt( c.css( \"borderTopWidth\" ), 10 ) || 0 ) +\n\t\t\t\t( parseInt( c.css( \"paddingTop\" ), 10 ) || 0 ),\n\t\t\t( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t( parseInt( c.css( \"borderRightWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.width -\n\t\t\t\tthis.margins.left -\n\t\t\t\tthis.margins.right,\n\t\t\t( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t( parseInt( c.css( \"borderBottomWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( c.css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\tthis.helperProportions.height -\n\t\t\t\tthis.margins.top -\n\t\t\t\tthis.margins.bottom\n\t\t];\n\t\tthis.relativeContainer = c;\n\t},\n\n\t_convertPositionTo: function( d, pos ) {\n\n\t\tif ( !pos ) {\n\t\t\tpos = this.position;\n\t\t}\n\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.top\t+\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top * mod -\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.offset.scroll.top :\n\t\t\t\t\t( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.left +\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left * mod\t-\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.offset.scroll.left :\n\t\t\t\t\t( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event, constrainPosition ) {\n\n\t\tvar containment, co, top, left,\n\t\t\to = this.options,\n\t\t\tscrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY;\n\n\t\t// Cache the scroll\n\t\tif ( !scrollIsRootNode || !this.offset.scroll ) {\n\t\t\tthis.offset.scroll = {\n\t\t\t\ttop: this.scrollParent.scrollTop(),\n\t\t\t\tleft: this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\t// If we are not dragging yet, we won't check for options\n\t\tif ( constrainPosition ) {\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( this.relativeContainer ) {\n\t\t\t\t\tco = this.relativeContainer.offset();\n\t\t\t\t\tcontainment = [\n\t\t\t\t\t\tthis.containment[ 0 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 1 ] + co.top,\n\t\t\t\t\t\tthis.containment[ 2 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 3 ] + co.top\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tcontainment = this.containment;\n\t\t\t\t}\n\n\t\t\t\tif ( event.pageX - this.offset.click.left < containment[ 0 ] ) {\n\t\t\t\t\tpageX = containment[ 0 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top < containment[ 1 ] ) {\n\t\t\t\t\tpageY = containment[ 1 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif ( event.pageX - this.offset.click.left > containment[ 2 ] ) {\n\t\t\t\t\tpageX = containment[ 2 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top > containment[ 3 ] ) {\n\t\t\t\t\tpageY = containment[ 3 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( o.grid ) {\n\n\t\t\t\t//Check for grid elements set to 0 to prevent divide by 0 error causing invalid\n\t\t\t\t// argument errors in IE (see ticket #6950)\n\t\t\t\ttop = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY -\n\t\t\t\t\tthis.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY;\n\t\t\t\tpageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] ||\n\t\t\t\t\ttop - this.offset.click.top > containment[ 3 ] ) ?\n\t\t\t\t\t\ttop :\n\t\t\t\t\t\t( ( top - this.offset.click.top >= containment[ 1 ] ) ?\n\t\t\t\t\t\t\ttop - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top;\n\n\t\t\t\tleft = o.grid[ 0 ] ? this.originalPageX +\n\t\t\t\t\tMath.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] :\n\t\t\t\t\tthis.originalPageX;\n\t\t\t\tpageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] ||\n\t\t\t\t\tleft - this.offset.click.left > containment[ 2 ] ) ?\n\t\t\t\t\t\tleft :\n\t\t\t\t\t\t( ( left - this.offset.click.left >= containment[ 0 ] ) ?\n\t\t\t\t\t\t\tleft - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"y\" ) {\n\t\t\t\tpageX = this.originalPageX;\n\t\t\t}\n\n\t\t\tif ( o.axis === \"x\" ) {\n\t\t\t\tpageY = this.originalPageY;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageY -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.top -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top +\n\t\t\t\t( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.offset.scroll.top :\n\t\t\t\t\t( scrollIsRootNode ? 0 : this.offset.scroll.top ) )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageX -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.left -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left +\n\t\t\t\t( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.offset.scroll.left :\n\t\t\t\t\t( scrollIsRootNode ? 0 : this.offset.scroll.left ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_clear: function() {\n\t\tthis._removeClass( this.helper, \"ui-draggable-dragging\" );\n\t\tif ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) {\n\t\t\tthis.helper.remove();\n\t\t}\n\t\tthis.helper = null;\n\t\tthis.cancelHelperRemoval = false;\n\t\tif ( this.destroyOnClear ) {\n\t\t\tthis.destroy();\n\t\t}\n\t},\n\n\t// From now on bulk stuff - mainly helpers\n\n\t_trigger: function( type, event, ui ) {\n\t\tui = ui || this._uiHash();\n\t\t$.ui.plugin.call( this, type, [ event, ui, this ], true );\n\n\t\t// Absolute position and offset (see #6884 ) have to be recalculated after plugins\n\t\tif ( /^(drag|start|stop)/.test( type ) ) {\n\t\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\t\t\tui.offset = this.positionAbs;\n\t\t}\n\t\treturn $.Widget.prototype._trigger.call( this, type, event, ui );\n\t},\n\n\tplugins: {},\n\n\t_uiHash: function() {\n\t\treturn {\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\toriginalPosition: this.originalPosition,\n\t\t\toffset: this.positionAbs\n\t\t};\n\t}\n\n} );\n\n$.ui.plugin.add( \"draggable\", \"connectToSortable\", {\n\tstart: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t} );\n\n\t\tdraggable.sortables = [];\n\t\t$( draggable.options.connectToSortable ).each( function() {\n\t\t\tvar sortable = $( this ).sortable( \"instance\" );\n\n\t\t\tif ( sortable && !sortable.options.disabled ) {\n\t\t\t\tdraggable.sortables.push( sortable );\n\n\t\t\t\t// RefreshPositions is called at drag start to refresh the containerCache\n\t\t\t\t// which is used in drag. This ensures it's initialized and synchronized\n\t\t\t\t// with any changes that might have happened on the page since initialization.\n\t\t\t\tsortable.refreshPositions();\n\t\t\t\tsortable._trigger( \"activate\", event, uiSortable );\n\t\t\t}\n\t\t} );\n\t},\n\tstop: function( event, ui, draggable ) {\n\t\tvar uiSortable = $.extend( {}, ui, {\n\t\t\titem: draggable.element\n\t\t} );\n\n\t\tdraggable.cancelHelperRemoval = false;\n\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar sortable = this;\n\n\t\t\tif ( sortable.isOver ) {\n\t\t\t\tsortable.isOver = 0;\n\n\t\t\t\t// Allow this sortable to handle removing the helper\n\t\t\t\tdraggable.cancelHelperRemoval = true;\n\t\t\t\tsortable.cancelHelperRemoval = false;\n\n\t\t\t\t// Use _storedCSS To restore properties in the sortable,\n\t\t\t\t// as this also handles revert (#9675) since the draggable\n\t\t\t\t// may have modified them in unexpected ways (#8809)\n\t\t\t\tsortable._storedCSS = {\n\t\t\t\t\tposition: sortable.placeholder.css( \"position\" ),\n\t\t\t\t\ttop: sortable.placeholder.css( \"top\" ),\n\t\t\t\t\tleft: sortable.placeholder.css( \"left\" )\n\t\t\t\t};\n\n\t\t\t\tsortable._mouseStop( event );\n\n\t\t\t\t// Once drag has ended, the sortable should return to using\n\t\t\t\t// its original helper, not the shared helper from draggable\n\t\t\t\tsortable.options.helper = sortable.options._helper;\n\t\t\t} else {\n\n\t\t\t\t// Prevent this Sortable from removing the helper.\n\t\t\t\t// However, don't set the draggable to remove the helper\n\t\t\t\t// either as another connected Sortable may yet handle the removal.\n\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\tsortable._trigger( \"deactivate\", event, uiSortable );\n\t\t\t}\n\t\t} );\n\t},\n\tdrag: function( event, ui, draggable ) {\n\t\t$.each( draggable.sortables, function() {\n\t\t\tvar innermostIntersecting = false,\n\t\t\t\tsortable = this;\n\n\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\tsortable.positionAbs = draggable.positionAbs;\n\t\t\tsortable.helperProportions = draggable.helperProportions;\n\t\t\tsortable.offset.click = draggable.offset.click;\n\n\t\t\tif ( sortable._intersectsWith( sortable.containerCache ) ) {\n\t\t\t\tinnermostIntersecting = true;\n\n\t\t\t\t$.each( draggable.sortables, function() {\n\n\t\t\t\t\t// Copy over variables that sortable's _intersectsWith uses\n\t\t\t\t\tthis.positionAbs = draggable.positionAbs;\n\t\t\t\t\tthis.helperProportions = draggable.helperProportions;\n\t\t\t\t\tthis.offset.click = draggable.offset.click;\n\n\t\t\t\t\tif ( this !== sortable &&\n\t\t\t\t\t\t\tthis._intersectsWith( this.containerCache ) &&\n\t\t\t\t\t\t\t$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {\n\t\t\t\t\t\tinnermostIntersecting = false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn innermostIntersecting;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( innermostIntersecting ) {\n\n\t\t\t\t// If it intersects, we use a little isOver variable and set it once,\n\t\t\t\t// so that the move-in stuff gets fired only once.\n\t\t\t\tif ( !sortable.isOver ) {\n\t\t\t\t\tsortable.isOver = 1;\n\n\t\t\t\t\t// Store draggable's parent in case we need to reappend to it later.\n\t\t\t\t\tdraggable._parent = ui.helper.parent();\n\n\t\t\t\t\tsortable.currentItem = ui.helper\n\t\t\t\t\t\t.appendTo( sortable.element )\n\t\t\t\t\t\t.data( \"ui-sortable-item\", true );\n\n\t\t\t\t\t// Store helper option to later restore it\n\t\t\t\t\tsortable.options._helper = sortable.options.helper;\n\n\t\t\t\t\tsortable.options.helper = function() {\n\t\t\t\t\t\treturn ui.helper[ 0 ];\n\t\t\t\t\t};\n\n\t\t\t\t\t// Fire the start events of the sortable with our passed browser event,\n\t\t\t\t\t// and our own helper (so it doesn't create a new one)\n\t\t\t\t\tevent.target = sortable.currentItem[ 0 ];\n\t\t\t\t\tsortable._mouseCapture( event, true );\n\t\t\t\t\tsortable._mouseStart( event, true, true );\n\n\t\t\t\t\t// Because the browser event is way off the new appended portlet,\n\t\t\t\t\t// modify necessary variables to reflect the changes\n\t\t\t\t\tsortable.offset.click.top = draggable.offset.click.top;\n\t\t\t\t\tsortable.offset.click.left = draggable.offset.click.left;\n\t\t\t\t\tsortable.offset.parent.left -= draggable.offset.parent.left -\n\t\t\t\t\t\tsortable.offset.parent.left;\n\t\t\t\t\tsortable.offset.parent.top -= draggable.offset.parent.top -\n\t\t\t\t\t\tsortable.offset.parent.top;\n\n\t\t\t\t\tdraggable._trigger( \"toSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is in a valid drop zone,\n\t\t\t\t\t// used solely in the revert option to handle \"valid/invalid\".\n\t\t\t\t\tdraggable.dropped = sortable.element;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables in the case that\n\t\t\t\t\t// adding to one sortable changes the location of the other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Hack so receive/update callbacks work (mostly)\n\t\t\t\t\tdraggable.currentItem = draggable.element;\n\t\t\t\t\tsortable.fromOutside = draggable;\n\t\t\t\t}\n\n\t\t\t\tif ( sortable.currentItem ) {\n\t\t\t\t\tsortable._mouseDrag( event );\n\n\t\t\t\t\t// Copy the sortable's position because the draggable's can potentially reflect\n\t\t\t\t\t// a relative position, while sortable is always absolute, which the dragged\n\t\t\t\t\t// element has now become. (#8809)\n\t\t\t\t\tui.position = sortable.position;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// If it doesn't intersect with the sortable, and it intersected before,\n\t\t\t\t// we fake the drag stop of the sortable, but make sure it doesn't remove\n\t\t\t\t// the helper by using cancelHelperRemoval.\n\t\t\t\tif ( sortable.isOver ) {\n\n\t\t\t\t\tsortable.isOver = 0;\n\t\t\t\t\tsortable.cancelHelperRemoval = true;\n\n\t\t\t\t\t// Calling sortable's mouseStop would trigger a revert,\n\t\t\t\t\t// so revert must be temporarily false until after mouseStop is called.\n\t\t\t\t\tsortable.options._revert = sortable.options.revert;\n\t\t\t\t\tsortable.options.revert = false;\n\n\t\t\t\t\tsortable._trigger( \"out\", event, sortable._uiHash( sortable ) );\n\t\t\t\t\tsortable._mouseStop( event, true );\n\n\t\t\t\t\t// Restore sortable behaviors that were modfied\n\t\t\t\t\t// when the draggable entered the sortable area (#9481)\n\t\t\t\t\tsortable.options.revert = sortable.options._revert;\n\t\t\t\t\tsortable.options.helper = sortable.options._helper;\n\n\t\t\t\t\tif ( sortable.placeholder ) {\n\t\t\t\t\t\tsortable.placeholder.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Restore and recalculate the draggable's offset considering the sortable\n\t\t\t\t\t// may have modified them in unexpected ways. (#8809, #10669)\n\t\t\t\t\tui.helper.appendTo( draggable._parent );\n\t\t\t\t\tdraggable._refreshOffsets( event );\n\t\t\t\t\tui.position = draggable._generatePosition( event, true );\n\n\t\t\t\t\tdraggable._trigger( \"fromSortable\", event );\n\n\t\t\t\t\t// Inform draggable that the helper is no longer in a valid drop zone\n\t\t\t\t\tdraggable.dropped = false;\n\n\t\t\t\t\t// Need to refreshPositions of all sortables just in case removing\n\t\t\t\t\t// from one sortable changes the location of other sortables (#9675)\n\t\t\t\t\t$.each( draggable.sortables, function() {\n\t\t\t\t\t\tthis.refreshPositions();\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"cursor\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( \"body\" ),\n\t\t\to = instance.options;\n\n\t\tif ( t.css( \"cursor\" ) ) {\n\t\t\to._cursor = t.css( \"cursor\" );\n\t\t}\n\t\tt.css( \"cursor\", o.cursor );\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif ( o._cursor ) {\n\t\t\t$( \"body\" ).css( \"cursor\", o._cursor );\n\t\t}\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"opacity\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\t\tif ( t.css( \"opacity\" ) ) {\n\t\t\to._opacity = t.css( \"opacity\" );\n\t\t}\n\t\tt.css( \"opacity\", o.opacity );\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\t\tif ( o._opacity ) {\n\t\t\t$( ui.helper ).css( \"opacity\", o._opacity );\n\t\t}\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"scroll\", {\n\tstart: function( event, ui, i ) {\n\t\tif ( !i.scrollParentNotHidden ) {\n\t\t\ti.scrollParentNotHidden = i.helper.scrollParent( false );\n\t\t}\n\n\t\tif ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] &&\n\t\t\t\ti.scrollParentNotHidden[ 0 ].tagName !== \"HTML\" ) {\n\t\t\ti.overflowOffset = i.scrollParentNotHidden.offset();\n\t\t}\n\t},\n\tdrag: function( event, ui, i  ) {\n\n\t\tvar o = i.options,\n\t\t\tscrolled = false,\n\t\t\tscrollParent = i.scrollParentNotHidden[ 0 ],\n\t\t\tdocument = i.document[ 0 ];\n\n\t\tif ( scrollParent !== document && scrollParent.tagName !== \"HTML\" ) {\n\t\t\tif ( !o.axis || o.axis !== \"x\" ) {\n\t\t\t\tif ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !o.axis || o.axis !== \"y\" ) {\n\t\t\t\tif ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\t\tscrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( !o.axis || o.axis !== \"x\" ) {\n\t\t\t\tif ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed );\n\t\t\t\t} else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !o.axis || o.axis !== \"y\" ) {\n\t\t\t\tif ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = $( document ).scrollLeft(\n\t\t\t\t\t\t$( document ).scrollLeft() - o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t} else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = $( document ).scrollLeft(\n\t\t\t\t\t\t$( document ).scrollLeft() + o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( i, event );\n\t\t}\n\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"snap\", {\n\tstart: function( event, ui, i ) {\n\n\t\tvar o = i.options;\n\n\t\ti.snapElements = [];\n\n\t\t$( o.snap.constructor !== String ? ( o.snap.items || \":data(ui-draggable)\" ) : o.snap )\n\t\t\t.each( function() {\n\t\t\t\tvar $t = $( this ),\n\t\t\t\t\t$o = $t.offset();\n\t\t\t\tif ( this !== i.element[ 0 ] ) {\n\t\t\t\t\ti.snapElements.push( {\n\t\t\t\t\t\titem: this,\n\t\t\t\t\t\twidth: $t.outerWidth(), height: $t.outerHeight(),\n\t\t\t\t\t\ttop: $o.top, left: $o.left\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t},\n\tdrag: function( event, ui, inst ) {\n\n\t\tvar ts, bs, ls, rs, l, r, t, b, i, first,\n\t\t\to = inst.options,\n\t\t\td = o.snapTolerance,\n\t\t\tx1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,\n\t\t\ty1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;\n\n\t\tfor ( i = inst.snapElements.length - 1; i >= 0; i-- ) {\n\n\t\t\tl = inst.snapElements[ i ].left - inst.margins.left;\n\t\t\tr = l + inst.snapElements[ i ].width;\n\t\t\tt = inst.snapElements[ i ].top - inst.margins.top;\n\t\t\tb = t + inst.snapElements[ i ].height;\n\n\t\t\tif ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d ||\n\t\t\t\t\t!$.contains( inst.snapElements[ i ].item.ownerDocument,\n\t\t\t\t\tinst.snapElements[ i ].item ) ) {\n\t\t\t\tif ( inst.snapElements[ i ].snapping ) {\n\t\t\t\t\t( inst.options.snap.release &&\n\t\t\t\t\t\tinst.options.snap.release.call(\n\t\t\t\t\t\t\tinst.element,\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t$.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } )\n\t\t\t\t\t\t) );\n\t\t\t\t}\n\t\t\t\tinst.snapElements[ i ].snapping = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( o.snapMode !== \"inner\" ) {\n\t\t\t\tts = Math.abs( t - y2 ) <= d;\n\t\t\t\tbs = Math.abs( b - y1 ) <= d;\n\t\t\t\tls = Math.abs( l - x2 ) <= d;\n\t\t\t\trs = Math.abs( r - x1 ) <= d;\n\t\t\t\tif ( ts ) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: t - inst.helperProportions.height,\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t} ).top;\n\t\t\t\t}\n\t\t\t\tif ( bs ) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: b,\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t} ).top;\n\t\t\t\t}\n\t\t\t\tif ( ls ) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: l - inst.helperProportions.width\n\t\t\t\t\t} ).left;\n\t\t\t\t}\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: r\n\t\t\t\t\t} ).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirst = ( ts || bs || ls || rs );\n\n\t\t\tif ( o.snapMode !== \"outer\" ) {\n\t\t\t\tts = Math.abs( t - y1 ) <= d;\n\t\t\t\tbs = Math.abs( b - y2 ) <= d;\n\t\t\t\tls = Math.abs( l - x1 ) <= d;\n\t\t\t\trs = Math.abs( r - x2 ) <= d;\n\t\t\t\tif ( ts ) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: t,\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t} ).top;\n\t\t\t\t}\n\t\t\t\tif ( bs ) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: b - inst.helperProportions.height,\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t} ).top;\n\t\t\t\t}\n\t\t\t\tif ( ls ) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: l\n\t\t\t\t\t} ).left;\n\t\t\t\t}\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo( \"relative\", {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: r - inst.helperProportions.width\n\t\t\t\t\t} ).left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) {\n\t\t\t\t( inst.options.snap.snap &&\n\t\t\t\t\tinst.options.snap.snap.call(\n\t\t\t\t\t\tinst.element,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\t$.extend( inst._uiHash(), {\n\t\t\t\t\t\t\tsnapItem: inst.snapElements[ i ].item\n\t\t\t\t\t\t} ) ) );\n\t\t\t}\n\t\t\tinst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first );\n\n\t\t}\n\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"stack\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar min,\n\t\t\to = instance.options,\n\t\t\tgroup = $.makeArray( $( o.stack ) ).sort( function( a, b ) {\n\t\t\t\treturn ( parseInt( $( a ).css( \"zIndex\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( b ).css( \"zIndex\" ), 10 ) || 0 );\n\t\t\t} );\n\n\t\tif ( !group.length ) { return; }\n\n\t\tmin = parseInt( $( group[ 0 ] ).css( \"zIndex\" ), 10 ) || 0;\n\t\t$( group ).each( function( i ) {\n\t\t\t$( this ).css( \"zIndex\", min + i );\n\t\t} );\n\t\tthis.css( \"zIndex\", ( min + group.length ) );\n\t}\n} );\n\n$.ui.plugin.add( \"draggable\", \"zIndex\", {\n\tstart: function( event, ui, instance ) {\n\t\tvar t = $( ui.helper ),\n\t\t\to = instance.options;\n\n\t\tif ( t.css( \"zIndex\" ) ) {\n\t\t\to._zIndex = t.css( \"zIndex\" );\n\t\t}\n\t\tt.css( \"zIndex\", o.zIndex );\n\t},\n\tstop: function( event, ui, instance ) {\n\t\tvar o = instance.options;\n\n\t\tif ( o._zIndex ) {\n\t\t\t$( ui.helper ).css( \"zIndex\", o._zIndex );\n\t\t}\n\t}\n} );\n\nvar widgetsDraggable = $.ui.draggable;\n\n\n/*!\n * jQuery UI Resizable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Resizable\n//>>group: Interactions\n//>>description: Enables resize functionality for any element.\n//>>docs: http://api.jqueryui.com/resizable/\n//>>demos: http://jqueryui.com/resizable/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/resizable.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.resizable\", $.ui.mouse, {\n\tversion: \"1.12.1\",\n\twidgetEventPrefix: \"resize\",\n\toptions: {\n\t\talsoResize: false,\n\t\tanimate: false,\n\t\tanimateDuration: \"slow\",\n\t\tanimateEasing: \"swing\",\n\t\taspectRatio: false,\n\t\tautoHide: false,\n\t\tclasses: {\n\t\t\t\"ui-resizable-se\": \"ui-icon ui-icon-gripsmall-diagonal-se\"\n\t\t},\n\t\tcontainment: false,\n\t\tghost: false,\n\t\tgrid: false,\n\t\thandles: \"e,s,se\",\n\t\thelper: false,\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 10,\n\t\tminWidth: 10,\n\n\t\t// See #7960\n\t\tzIndex: 90,\n\n\t\t// Callbacks\n\t\tresize: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t_num: function( value ) {\n\t\treturn parseFloat( value ) || 0;\n\t},\n\n\t_isNumber: function( value ) {\n\t\treturn !isNaN( parseFloat( value ) );\n\t},\n\n\t_hasScroll: function( el, a ) {\n\n\t\tif ( $( el ).css( \"overflow\" ) === \"hidden\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar scroll = ( a && a === \"left\" ) ? \"scrollLeft\" : \"scrollTop\",\n\t\t\thas = false;\n\n\t\tif ( el[ scroll ] > 0 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: determine which cases actually cause this to happen\n\t\t// if the element doesn't have the scroll set, see if it's possible to\n\t\t// set the scroll\n\t\tel[ scroll ] = 1;\n\t\thas = ( el[ scroll ] > 0 );\n\t\tel[ scroll ] = 0;\n\t\treturn has;\n\t},\n\n\t_create: function() {\n\n\t\tvar margins,\n\t\t\to = this.options,\n\t\t\tthat = this;\n\t\tthis._addClass( \"ui-resizable\" );\n\n\t\t$.extend( this, {\n\t\t\t_aspectRatio: !!( o.aspectRatio ),\n\t\t\taspectRatio: o.aspectRatio,\n\t\t\toriginalElement: this.element,\n\t\t\t_proportionallyResizeElements: [],\n\t\t\t_helper: o.helper || o.ghost || o.animate ? o.helper || \"ui-resizable-helper\" : null\n\t\t} );\n\n\t\t// Wrap the element if it cannot hold child nodes\n\t\tif ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {\n\n\t\t\tthis.element.wrap(\n\t\t\t\t$( \"<div class='ui-wrapper' style='overflow: hidden;'></div>\" ).css( {\n\t\t\t\t\tposition: this.element.css( \"position\" ),\n\t\t\t\t\twidth: this.element.outerWidth(),\n\t\t\t\t\theight: this.element.outerHeight(),\n\t\t\t\t\ttop: this.element.css( \"top\" ),\n\t\t\t\t\tleft: this.element.css( \"left\" )\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\tthis.element = this.element.parent().data(\n\t\t\t\t\"ui-resizable\", this.element.resizable( \"instance\" )\n\t\t\t);\n\n\t\t\tthis.elementIsWrapper = true;\n\n\t\t\tmargins = {\n\t\t\t\tmarginTop: this.originalElement.css( \"marginTop\" ),\n\t\t\t\tmarginRight: this.originalElement.css( \"marginRight\" ),\n\t\t\t\tmarginBottom: this.originalElement.css( \"marginBottom\" ),\n\t\t\t\tmarginLeft: this.originalElement.css( \"marginLeft\" )\n\t\t\t};\n\n\t\t\tthis.element.css( margins );\n\t\t\tthis.originalElement.css( \"margin\", 0 );\n\n\t\t\t// support: Safari\n\t\t\t// Prevent Safari textarea resize\n\t\t\tthis.originalResizeStyle = this.originalElement.css( \"resize\" );\n\t\t\tthis.originalElement.css( \"resize\", \"none\" );\n\n\t\t\tthis._proportionallyResizeElements.push( this.originalElement.css( {\n\t\t\t\tposition: \"static\",\n\t\t\t\tzoom: 1,\n\t\t\t\tdisplay: \"block\"\n\t\t\t} ) );\n\n\t\t\t// Support: IE9\n\t\t\t// avoid IE jump (hard set the margin)\n\t\t\tthis.originalElement.css( margins );\n\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tthis._setupHandles();\n\n\t\tif ( o.autoHide ) {\n\t\t\t$( this.element )\n\t\t\t\t.on( \"mouseenter\", function() {\n\t\t\t\t\tif ( o.disabled ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthat._removeClass( \"ui-resizable-autohide\" );\n\t\t\t\t\tthat._handles.show();\n\t\t\t\t} )\n\t\t\t\t.on( \"mouseleave\", function() {\n\t\t\t\t\tif ( o.disabled ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif ( !that.resizing ) {\n\t\t\t\t\t\tthat._addClass( \"ui-resizable-autohide\" );\n\t\t\t\t\t\tthat._handles.hide();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}\n\n\t\tthis._mouseInit();\n\t},\n\n\t_destroy: function() {\n\n\t\tthis._mouseDestroy();\n\n\t\tvar wrapper,\n\t\t\t_destroy = function( exp ) {\n\t\t\t\t$( exp )\n\t\t\t\t\t.removeData( \"resizable\" )\n\t\t\t\t\t.removeData( \"ui-resizable\" )\n\t\t\t\t\t.off( \".resizable\" )\n\t\t\t\t\t.find( \".ui-resizable-handle\" )\n\t\t\t\t\t\t.remove();\n\t\t\t};\n\n\t\t// TODO: Unwrap at same DOM position\n\t\tif ( this.elementIsWrapper ) {\n\t\t\t_destroy( this.element );\n\t\t\twrapper = this.element;\n\t\t\tthis.originalElement.css( {\n\t\t\t\tposition: wrapper.css( \"position\" ),\n\t\t\t\twidth: wrapper.outerWidth(),\n\t\t\t\theight: wrapper.outerHeight(),\n\t\t\t\ttop: wrapper.css( \"top\" ),\n\t\t\t\tleft: wrapper.css( \"left\" )\n\t\t\t} ).insertAfter( wrapper );\n\t\t\twrapper.remove();\n\t\t}\n\n\t\tthis.originalElement.css( \"resize\", this.originalResizeStyle );\n\t\t_destroy( this.originalElement );\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\n\t\tswitch ( key ) {\n\t\tcase \"handles\":\n\t\t\tthis._removeHandles();\n\t\t\tthis._setupHandles();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t},\n\n\t_setupHandles: function() {\n\t\tvar o = this.options, handle, i, n, hname, axis, that = this;\n\t\tthis.handles = o.handles ||\n\t\t\t( !$( \".ui-resizable-handle\", this.element ).length ?\n\t\t\t\t\"e,s,se\" : {\n\t\t\t\t\tn: \".ui-resizable-n\",\n\t\t\t\t\te: \".ui-resizable-e\",\n\t\t\t\t\ts: \".ui-resizable-s\",\n\t\t\t\t\tw: \".ui-resizable-w\",\n\t\t\t\t\tse: \".ui-resizable-se\",\n\t\t\t\t\tsw: \".ui-resizable-sw\",\n\t\t\t\t\tne: \".ui-resizable-ne\",\n\t\t\t\t\tnw: \".ui-resizable-nw\"\n\t\t\t\t} );\n\n\t\tthis._handles = $();\n\t\tif ( this.handles.constructor === String ) {\n\n\t\t\tif ( this.handles === \"all\" ) {\n\t\t\t\tthis.handles = \"n,e,s,w,se,sw,ne,nw\";\n\t\t\t}\n\n\t\t\tn = this.handles.split( \",\" );\n\t\t\tthis.handles = {};\n\n\t\t\tfor ( i = 0; i < n.length; i++ ) {\n\n\t\t\t\thandle = $.trim( n[ i ] );\n\t\t\t\thname = \"ui-resizable-\" + handle;\n\t\t\t\taxis = $( \"<div>\" );\n\t\t\t\tthis._addClass( axis, \"ui-resizable-handle \" + hname );\n\n\t\t\t\taxis.css( { zIndex: o.zIndex } );\n\n\t\t\t\tthis.handles[ handle ] = \".ui-resizable-\" + handle;\n\t\t\t\tthis.element.append( axis );\n\t\t\t}\n\n\t\t}\n\n\t\tthis._renderAxis = function( target ) {\n\n\t\t\tvar i, axis, padPos, padWrapper;\n\n\t\t\ttarget = target || this.element;\n\n\t\t\tfor ( i in this.handles ) {\n\n\t\t\t\tif ( this.handles[ i ].constructor === String ) {\n\t\t\t\t\tthis.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();\n\t\t\t\t} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {\n\t\t\t\t\tthis.handles[ i ] = $( this.handles[ i ] );\n\t\t\t\t\tthis._on( this.handles[ i ], { \"mousedown\": that._mouseDown } );\n\t\t\t\t}\n\n\t\t\t\tif ( this.elementIsWrapper &&\n\t\t\t\t\t\tthis.originalElement[ 0 ]\n\t\t\t\t\t\t\t.nodeName\n\t\t\t\t\t\t\t.match( /^(textarea|input|select|button)$/i ) ) {\n\t\t\t\t\taxis = $( this.handles[ i ], this.element );\n\n\t\t\t\t\tpadWrapper = /sw|ne|nw|se|n|s/.test( i ) ?\n\t\t\t\t\t\taxis.outerHeight() :\n\t\t\t\t\t\taxis.outerWidth();\n\n\t\t\t\t\tpadPos = [ \"padding\",\n\t\t\t\t\t\t/ne|nw|n/.test( i ) ? \"Top\" :\n\t\t\t\t\t\t/se|sw|s/.test( i ) ? \"Bottom\" :\n\t\t\t\t\t\t/^e$/.test( i ) ? \"Right\" : \"Left\" ].join( \"\" );\n\n\t\t\t\t\ttarget.css( padPos, padWrapper );\n\n\t\t\t\t\tthis._proportionallyResize();\n\t\t\t\t}\n\n\t\t\t\tthis._handles = this._handles.add( this.handles[ i ] );\n\t\t\t}\n\t\t};\n\n\t\t// TODO: make renderAxis a prototype function\n\t\tthis._renderAxis( this.element );\n\n\t\tthis._handles = this._handles.add( this.element.find( \".ui-resizable-handle\" ) );\n\t\tthis._handles.disableSelection();\n\n\t\tthis._handles.on( \"mouseover\", function() {\n\t\t\tif ( !that.resizing ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\taxis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );\n\t\t\t\t}\n\t\t\t\tthat.axis = axis && axis[ 1 ] ? axis[ 1 ] : \"se\";\n\t\t\t}\n\t\t} );\n\n\t\tif ( o.autoHide ) {\n\t\t\tthis._handles.hide();\n\t\t\tthis._addClass( \"ui-resizable-autohide\" );\n\t\t}\n\t},\n\n\t_removeHandles: function() {\n\t\tthis._handles.remove();\n\t},\n\n\t_mouseCapture: function( event ) {\n\t\tvar i, handle,\n\t\t\tcapture = false;\n\n\t\tfor ( i in this.handles ) {\n\t\t\thandle = $( this.handles[ i ] )[ 0 ];\n\t\t\tif ( handle === event.target || $.contains( handle, event.target ) ) {\n\t\t\t\tcapture = true;\n\t\t\t}\n\t\t}\n\n\t\treturn !this.options.disabled && capture;\n\t},\n\n\t_mouseStart: function( event ) {\n\n\t\tvar curleft, curtop, cursor,\n\t\t\to = this.options,\n\t\t\tel = this.element;\n\n\t\tthis.resizing = true;\n\n\t\tthis._renderProxy();\n\n\t\tcurleft = this._num( this.helper.css( \"left\" ) );\n\t\tcurtop = this._num( this.helper.css( \"top\" ) );\n\n\t\tif ( o.containment ) {\n\t\t\tcurleft += $( o.containment ).scrollLeft() || 0;\n\t\t\tcurtop += $( o.containment ).scrollTop() || 0;\n\t\t}\n\n\t\tthis.offset = this.helper.offset();\n\t\tthis.position = { left: curleft, top: curtop };\n\n\t\tthis.size = this._helper ? {\n\t\t\t\twidth: this.helper.width(),\n\t\t\t\theight: this.helper.height()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.originalSize = this._helper ? {\n\t\t\t\twidth: el.outerWidth(),\n\t\t\t\theight: el.outerHeight()\n\t\t\t} : {\n\t\t\t\twidth: el.width(),\n\t\t\t\theight: el.height()\n\t\t\t};\n\n\t\tthis.sizeDiff = {\n\t\t\twidth: el.outerWidth() - el.width(),\n\t\t\theight: el.outerHeight() - el.height()\n\t\t};\n\n\t\tthis.originalPosition = { left: curleft, top: curtop };\n\t\tthis.originalMousePosition = { left: event.pageX, top: event.pageY };\n\n\t\tthis.aspectRatio = ( typeof o.aspectRatio === \"number\" ) ?\n\t\t\to.aspectRatio :\n\t\t\t( ( this.originalSize.width / this.originalSize.height ) || 1 );\n\n\t\tcursor = $( \".ui-resizable-\" + this.axis ).css( \"cursor\" );\n\t\t$( \"body\" ).css( \"cursor\", cursor === \"auto\" ? this.axis + \"-resize\" : cursor );\n\n\t\tthis._addClass( \"ui-resizable-resizing\" );\n\t\tthis._propagate( \"start\", event );\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function( event ) {\n\n\t\tvar data, props,\n\t\t\tsmp = this.originalMousePosition,\n\t\t\ta = this.axis,\n\t\t\tdx = ( event.pageX - smp.left ) || 0,\n\t\t\tdy = ( event.pageY - smp.top ) || 0,\n\t\t\ttrigger = this._change[ a ];\n\n\t\tthis._updatePrevProperties();\n\n\t\tif ( !trigger ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tdata = trigger.apply( this, [ event, dx, dy ] );\n\n\t\tthis._updateVirtualBoundaries( event.shiftKey );\n\t\tif ( this._aspectRatio || event.shiftKey ) {\n\t\t\tdata = this._updateRatio( data, event );\n\t\t}\n\n\t\tdata = this._respectSize( data, event );\n\n\t\tthis._updateCache( data );\n\n\t\tthis._propagate( \"resize\", event );\n\n\t\tprops = this._applyChanges();\n\n\t\tif ( !this._helper && this._proportionallyResizeElements.length ) {\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\tif ( !$.isEmptyObject( props ) ) {\n\t\t\tthis._updatePrevProperties();\n\t\t\tthis._trigger( \"resize\", event, this.ui() );\n\t\t\tthis._applyChanges();\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function( event ) {\n\n\t\tthis.resizing = false;\n\t\tvar pr, ista, soffseth, soffsetw, s, left, top,\n\t\t\to = this.options, that = this;\n\n\t\tif ( this._helper ) {\n\n\t\t\tpr = this._proportionallyResizeElements;\n\t\t\tista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );\n\t\t\tsoffseth = ista && this._hasScroll( pr[ 0 ], \"left\" ) ? 0 : that.sizeDiff.height;\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width;\n\n\t\t\ts = {\n\t\t\t\twidth: ( that.helper.width()  - soffsetw ),\n\t\t\t\theight: ( that.helper.height() - soffseth )\n\t\t\t};\n\t\t\tleft = ( parseFloat( that.element.css( \"left\" ) ) +\n\t\t\t\t( that.position.left - that.originalPosition.left ) ) || null;\n\t\t\ttop = ( parseFloat( that.element.css( \"top\" ) ) +\n\t\t\t\t( that.position.top - that.originalPosition.top ) ) || null;\n\n\t\t\tif ( !o.animate ) {\n\t\t\t\tthis.element.css( $.extend( s, { top: top, left: left } ) );\n\t\t\t}\n\n\t\t\tthat.helper.height( that.size.height );\n\t\t\tthat.helper.width( that.size.width );\n\n\t\t\tif ( this._helper && !o.animate ) {\n\t\t\t\tthis._proportionallyResize();\n\t\t\t}\n\t\t}\n\n\t\t$( \"body\" ).css( \"cursor\", \"auto\" );\n\n\t\tthis._removeClass( \"ui-resizable-resizing\" );\n\n\t\tthis._propagate( \"stop\", event );\n\n\t\tif ( this._helper ) {\n\t\t\tthis.helper.remove();\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\t_updatePrevProperties: function() {\n\t\tthis.prevPosition = {\n\t\t\ttop: this.position.top,\n\t\t\tleft: this.position.left\n\t\t};\n\t\tthis.prevSize = {\n\t\t\twidth: this.size.width,\n\t\t\theight: this.size.height\n\t\t};\n\t},\n\n\t_applyChanges: function() {\n\t\tvar props = {};\n\n\t\tif ( this.position.top !== this.prevPosition.top ) {\n\t\t\tprops.top = this.position.top + \"px\";\n\t\t}\n\t\tif ( this.position.left !== this.prevPosition.left ) {\n\t\t\tprops.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( this.size.width !== this.prevSize.width ) {\n\t\t\tprops.width = this.size.width + \"px\";\n\t\t}\n\t\tif ( this.size.height !== this.prevSize.height ) {\n\t\t\tprops.height = this.size.height + \"px\";\n\t\t}\n\n\t\tthis.helper.css( props );\n\n\t\treturn props;\n\t},\n\n\t_updateVirtualBoundaries: function( forceAspectRatio ) {\n\t\tvar pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,\n\t\t\to = this.options;\n\n\t\tb = {\n\t\t\tminWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,\n\t\t\tmaxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,\n\t\t\tminHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,\n\t\t\tmaxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity\n\t\t};\n\n\t\tif ( this._aspectRatio || forceAspectRatio ) {\n\t\t\tpMinWidth = b.minHeight * this.aspectRatio;\n\t\t\tpMinHeight = b.minWidth / this.aspectRatio;\n\t\t\tpMaxWidth = b.maxHeight * this.aspectRatio;\n\t\t\tpMaxHeight = b.maxWidth / this.aspectRatio;\n\n\t\t\tif ( pMinWidth > b.minWidth ) {\n\t\t\t\tb.minWidth = pMinWidth;\n\t\t\t}\n\t\t\tif ( pMinHeight > b.minHeight ) {\n\t\t\t\tb.minHeight = pMinHeight;\n\t\t\t}\n\t\t\tif ( pMaxWidth < b.maxWidth ) {\n\t\t\t\tb.maxWidth = pMaxWidth;\n\t\t\t}\n\t\t\tif ( pMaxHeight < b.maxHeight ) {\n\t\t\t\tb.maxHeight = pMaxHeight;\n\t\t\t}\n\t\t}\n\t\tthis._vBoundaries = b;\n\t},\n\n\t_updateCache: function( data ) {\n\t\tthis.offset = this.helper.offset();\n\t\tif ( this._isNumber( data.left ) ) {\n\t\t\tthis.position.left = data.left;\n\t\t}\n\t\tif ( this._isNumber( data.top ) ) {\n\t\t\tthis.position.top = data.top;\n\t\t}\n\t\tif ( this._isNumber( data.height ) ) {\n\t\t\tthis.size.height = data.height;\n\t\t}\n\t\tif ( this._isNumber( data.width ) ) {\n\t\t\tthis.size.width = data.width;\n\t\t}\n\t},\n\n\t_updateRatio: function( data ) {\n\n\t\tvar cpos = this.position,\n\t\t\tcsize = this.size,\n\t\t\ta = this.axis;\n\n\t\tif ( this._isNumber( data.height ) ) {\n\t\t\tdata.width = ( data.height * this.aspectRatio );\n\t\t} else if ( this._isNumber( data.width ) ) {\n\t\t\tdata.height = ( data.width / this.aspectRatio );\n\t\t}\n\n\t\tif ( a === \"sw\" ) {\n\t\t\tdata.left = cpos.left + ( csize.width - data.width );\n\t\t\tdata.top = null;\n\t\t}\n\t\tif ( a === \"nw\" ) {\n\t\t\tdata.top = cpos.top + ( csize.height - data.height );\n\t\t\tdata.left = cpos.left + ( csize.width - data.width );\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_respectSize: function( data ) {\n\n\t\tvar o = this._vBoundaries,\n\t\t\ta = this.axis,\n\t\t\tismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),\n\t\t\tismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),\n\t\t\tisminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),\n\t\t\tisminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),\n\t\t\tdw = this.originalPosition.left + this.originalSize.width,\n\t\t\tdh = this.originalPosition.top + this.originalSize.height,\n\t\t\tcw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );\n\t\tif ( isminw ) {\n\t\t\tdata.width = o.minWidth;\n\t\t}\n\t\tif ( isminh ) {\n\t\t\tdata.height = o.minHeight;\n\t\t}\n\t\tif ( ismaxw ) {\n\t\t\tdata.width = o.maxWidth;\n\t\t}\n\t\tif ( ismaxh ) {\n\t\t\tdata.height = o.maxHeight;\n\t\t}\n\n\t\tif ( isminw && cw ) {\n\t\t\tdata.left = dw - o.minWidth;\n\t\t}\n\t\tif ( ismaxw && cw ) {\n\t\t\tdata.left = dw - o.maxWidth;\n\t\t}\n\t\tif ( isminh && ch ) {\n\t\t\tdata.top = dh - o.minHeight;\n\t\t}\n\t\tif ( ismaxh && ch ) {\n\t\t\tdata.top = dh - o.maxHeight;\n\t\t}\n\n\t\t// Fixing jump error on top/left - bug #2330\n\t\tif ( !data.width && !data.height && !data.left && data.top ) {\n\t\t\tdata.top = null;\n\t\t} else if ( !data.width && !data.height && !data.top && data.left ) {\n\t\t\tdata.left = null;\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_getPaddingPlusBorderDimensions: function( element ) {\n\t\tvar i = 0,\n\t\t\twidths = [],\n\t\t\tborders = [\n\t\t\t\telement.css( \"borderTopWidth\" ),\n\t\t\t\telement.css( \"borderRightWidth\" ),\n\t\t\t\telement.css( \"borderBottomWidth\" ),\n\t\t\t\telement.css( \"borderLeftWidth\" )\n\t\t\t],\n\t\t\tpaddings = [\n\t\t\t\telement.css( \"paddingTop\" ),\n\t\t\t\telement.css( \"paddingRight\" ),\n\t\t\t\telement.css( \"paddingBottom\" ),\n\t\t\t\telement.css( \"paddingLeft\" )\n\t\t\t];\n\n\t\tfor ( ; i < 4; i++ ) {\n\t\t\twidths[ i ] = ( parseFloat( borders[ i ] ) || 0 );\n\t\t\twidths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );\n\t\t}\n\n\t\treturn {\n\t\t\theight: widths[ 0 ] + widths[ 2 ],\n\t\t\twidth: widths[ 1 ] + widths[ 3 ]\n\t\t};\n\t},\n\n\t_proportionallyResize: function() {\n\n\t\tif ( !this._proportionallyResizeElements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar prel,\n\t\t\ti = 0,\n\t\t\telement = this.helper || this.element;\n\n\t\tfor ( ; i < this._proportionallyResizeElements.length; i++ ) {\n\n\t\t\tprel = this._proportionallyResizeElements[ i ];\n\n\t\t\t// TODO: Seems like a bug to cache this.outerDimensions\n\t\t\t// considering that we are in a loop.\n\t\t\tif ( !this.outerDimensions ) {\n\t\t\t\tthis.outerDimensions = this._getPaddingPlusBorderDimensions( prel );\n\t\t\t}\n\n\t\t\tprel.css( {\n\t\t\t\theight: ( element.height() - this.outerDimensions.height ) || 0,\n\t\t\t\twidth: ( element.width() - this.outerDimensions.width ) || 0\n\t\t\t} );\n\n\t\t}\n\n\t},\n\n\t_renderProxy: function() {\n\n\t\tvar el = this.element, o = this.options;\n\t\tthis.elementOffset = el.offset();\n\n\t\tif ( this._helper ) {\n\n\t\t\tthis.helper = this.helper || $( \"<div style='overflow:hidden;'></div>\" );\n\n\t\t\tthis._addClass( this.helper, this._helper );\n\t\t\tthis.helper.css( {\n\t\t\t\twidth: this.element.outerWidth(),\n\t\t\t\theight: this.element.outerHeight(),\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: this.elementOffset.left + \"px\",\n\t\t\t\ttop: this.elementOffset.top + \"px\",\n\t\t\t\tzIndex: ++o.zIndex //TODO: Don't modify option\n\t\t\t} );\n\n\t\t\tthis.helper\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.disableSelection();\n\n\t\t} else {\n\t\t\tthis.helper = this.element;\n\t\t}\n\n\t},\n\n\t_change: {\n\t\te: function( event, dx ) {\n\t\t\treturn { width: this.originalSize.width + dx };\n\t\t},\n\t\tw: function( event, dx ) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { left: sp.left + dx, width: cs.width - dx };\n\t\t},\n\t\tn: function( event, dx, dy ) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { top: sp.top + dy, height: cs.height - dy };\n\t\t},\n\t\ts: function( event, dx, dy ) {\n\t\t\treturn { height: this.originalSize.height + dy };\n\t\t},\n\t\tse: function( event, dx, dy ) {\n\t\t\treturn $.extend( this._change.s.apply( this, arguments ),\n\t\t\t\tthis._change.e.apply( this, [ event, dx, dy ] ) );\n\t\t},\n\t\tsw: function( event, dx, dy ) {\n\t\t\treturn $.extend( this._change.s.apply( this, arguments ),\n\t\t\t\tthis._change.w.apply( this, [ event, dx, dy ] ) );\n\t\t},\n\t\tne: function( event, dx, dy ) {\n\t\t\treturn $.extend( this._change.n.apply( this, arguments ),\n\t\t\t\tthis._change.e.apply( this, [ event, dx, dy ] ) );\n\t\t},\n\t\tnw: function( event, dx, dy ) {\n\t\t\treturn $.extend( this._change.n.apply( this, arguments ),\n\t\t\t\tthis._change.w.apply( this, [ event, dx, dy ] ) );\n\t\t}\n\t},\n\n\t_propagate: function( n, event ) {\n\t\t$.ui.plugin.call( this, n, [ event, this.ui() ] );\n\t\t( n !== \"resize\" && this._trigger( n, event, this.ui() ) );\n\t},\n\n\tplugins: {},\n\n\tui: function() {\n\t\treturn {\n\t\t\toriginalElement: this.originalElement,\n\t\t\telement: this.element,\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\tsize: this.size,\n\t\t\toriginalSize: this.originalSize,\n\t\t\toriginalPosition: this.originalPosition\n\t\t};\n\t}\n\n} );\n\n/*\n * Resizable Extensions\n */\n\n$.ui.plugin.add( \"resizable\", \"animate\", {\n\n\tstop: function( event ) {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tpr = that._proportionallyResizeElements,\n\t\t\tista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),\n\t\t\tsoffseth = ista && that._hasScroll( pr[ 0 ], \"left\" ) ? 0 : that.sizeDiff.height,\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width,\n\t\t\tstyle = {\n\t\t\t\twidth: ( that.size.width - soffsetw ),\n\t\t\t\theight: ( that.size.height - soffseth )\n\t\t\t},\n\t\t\tleft = ( parseFloat( that.element.css( \"left\" ) ) +\n\t\t\t\t( that.position.left - that.originalPosition.left ) ) || null,\n\t\t\ttop = ( parseFloat( that.element.css( \"top\" ) ) +\n\t\t\t\t( that.position.top - that.originalPosition.top ) ) || null;\n\n\t\tthat.element.animate(\n\t\t\t$.extend( style, top && left ? { top: top, left: left } : {} ), {\n\t\t\t\tduration: o.animateDuration,\n\t\t\t\teasing: o.animateEasing,\n\t\t\t\tstep: function() {\n\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\twidth: parseFloat( that.element.css( \"width\" ) ),\n\t\t\t\t\t\theight: parseFloat( that.element.css( \"height\" ) ),\n\t\t\t\t\t\ttop: parseFloat( that.element.css( \"top\" ) ),\n\t\t\t\t\t\tleft: parseFloat( that.element.css( \"left\" ) )\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( pr && pr.length ) {\n\t\t\t\t\t\t$( pr[ 0 ] ).css( { width: data.width, height: data.height } );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Propagating resize, and updating values for each animation step\n\t\t\t\t\tthat._updateCache( data );\n\t\t\t\t\tthat._propagate( \"resize\", event );\n\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n} );\n\n$.ui.plugin.add( \"resizable\", \"containment\", {\n\n\tstart: function() {\n\t\tvar element, p, co, ch, cw, width, height,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tel = that.element,\n\t\t\toc = o.containment,\n\t\t\tce = ( oc instanceof $ ) ?\n\t\t\t\toc.get( 0 ) :\n\t\t\t\t( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;\n\n\t\tif ( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthat.containerElement = $( ce );\n\n\t\tif ( /document/.test( oc ) || oc === document ) {\n\t\t\tthat.containerOffset = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\t\t\tthat.containerPosition = {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0\n\t\t\t};\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: $( document ),\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\twidth: $( document ).width(),\n\t\t\t\theight: $( document ).height() || document.body.parentNode.scrollHeight\n\t\t\t};\n\t\t} else {\n\t\t\telement = $( ce );\n\t\t\tp = [];\n\t\t\t$( [ \"Top\", \"Right\", \"Left\", \"Bottom\" ] ).each( function( i, name ) {\n\t\t\t\tp[ i ] = that._num( element.css( \"padding\" + name ) );\n\t\t\t} );\n\n\t\t\tthat.containerOffset = element.offset();\n\t\t\tthat.containerPosition = element.position();\n\t\t\tthat.containerSize = {\n\t\t\t\theight: ( element.innerHeight() - p[ 3 ] ),\n\t\t\t\twidth: ( element.innerWidth() - p[ 1 ] )\n\t\t\t};\n\n\t\t\tco = that.containerOffset;\n\t\t\tch = that.containerSize.height;\n\t\t\tcw = that.containerSize.width;\n\t\t\twidth = ( that._hasScroll ( ce, \"left\" ) ? ce.scrollWidth : cw );\n\t\t\theight = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: ce,\n\t\t\t\tleft: co.left,\n\t\t\t\ttop: co.top,\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t}\n\t},\n\n\tresize: function( event ) {\n\t\tvar woset, hoset, isParent, isOffsetRelative,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcp = that.position,\n\t\t\tpRatio = that._aspectRatio || event.shiftKey,\n\t\t\tcop = {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t},\n\t\t\tce = that.containerElement,\n\t\t\tcontinueResize = true;\n\n\t\tif ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\tcop = co;\n\t\t}\n\n\t\tif ( cp.left < ( that._helper ? co.left : 0 ) ) {\n\t\t\tthat.size.width = that.size.width +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.left - co.left ) :\n\t\t\t\t\t( that.position.left - cop.left ) );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.left = o.helper ? co.left : 0;\n\t\t}\n\n\t\tif ( cp.top < ( that._helper ? co.top : 0 ) ) {\n\t\t\tthat.size.height = that.size.height +\n\t\t\t\t( that._helper ?\n\t\t\t\t\t( that.position.top - co.top ) :\n\t\t\t\t\tthat.position.top );\n\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t\tthat.position.top = that._helper ? co.top : 0;\n\t\t}\n\n\t\tisParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );\n\t\tisOffsetRelative = /relative|absolute/.test( that.containerElement.css( \"position\" ) );\n\n\t\tif ( isParent && isOffsetRelative ) {\n\t\t\tthat.offset.left = that.parentData.left + that.position.left;\n\t\t\tthat.offset.top = that.parentData.top + that.position.top;\n\t\t} else {\n\t\t\tthat.offset.left = that.element.offset().left;\n\t\t\tthat.offset.top = that.element.offset().top;\n\t\t}\n\n\t\twoset = Math.abs( that.sizeDiff.width +\n\t\t\t( that._helper ?\n\t\t\t\tthat.offset.left - cop.left :\n\t\t\t\t( that.offset.left - co.left ) ) );\n\n\t\thoset = Math.abs( that.sizeDiff.height +\n\t\t\t( that._helper ?\n\t\t\t\tthat.offset.top - cop.top :\n\t\t\t\t( that.offset.top - co.top ) ) );\n\n\t\tif ( woset + that.size.width >= that.parentData.width ) {\n\t\t\tthat.size.width = that.parentData.width - woset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( hoset + that.size.height >= that.parentData.height ) {\n\t\t\tthat.size.height = that.parentData.height - hoset;\n\t\t\tif ( pRatio ) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t\tcontinueResize = false;\n\t\t\t}\n\t\t}\n\n\t\tif ( !continueResize ) {\n\t\t\tthat.position.left = that.prevPosition.left;\n\t\t\tthat.position.top = that.prevPosition.top;\n\t\t\tthat.size.width = that.prevSize.width;\n\t\t\tthat.size.height = that.prevSize.height;\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcop = that.containerPosition,\n\t\t\tce = that.containerElement,\n\t\t\thelper = $( that.helper ),\n\t\t\tho = helper.offset(),\n\t\t\tw = helper.outerWidth() - that.sizeDiff.width,\n\t\t\th = helper.outerHeight() - that.sizeDiff.height;\n\n\t\tif ( that._helper && !o.animate && ( /relative/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css( {\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t} );\n\t\t}\n\n\t\tif ( that._helper && !o.animate && ( /static/ ).test( ce.css( \"position\" ) ) ) {\n\t\t\t$( this ).css( {\n\t\t\t\tleft: ho.left - cop.left - co.left,\n\t\t\t\twidth: w,\n\t\t\t\theight: h\n\t\t\t} );\n\t\t}\n\t}\n} );\n\n$.ui.plugin.add( \"resizable\", \"alsoResize\", {\n\n\tstart: function() {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options;\n\n\t\t$( o.alsoResize ).each( function() {\n\t\t\tvar el = $( this );\n\t\t\tel.data( \"ui-resizable-alsoresize\", {\n\t\t\t\twidth: parseFloat( el.width() ), height: parseFloat( el.height() ),\n\t\t\t\tleft: parseFloat( el.css( \"left\" ) ), top: parseFloat( el.css( \"top\" ) )\n\t\t\t} );\n\t\t} );\n\t},\n\n\tresize: function( event, ui ) {\n\t\tvar that = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\tdelta = {\n\t\t\t\theight: ( that.size.height - os.height ) || 0,\n\t\t\t\twidth: ( that.size.width - os.width ) || 0,\n\t\t\t\ttop: ( that.position.top - op.top ) || 0,\n\t\t\t\tleft: ( that.position.left - op.left ) || 0\n\t\t\t};\n\n\t\t\t$( o.alsoResize ).each( function() {\n\t\t\t\tvar el = $( this ), start = $( this ).data( \"ui-resizable-alsoresize\" ), style = {},\n\t\t\t\t\tcss = el.parents( ui.originalElement[ 0 ] ).length ?\n\t\t\t\t\t\t\t[ \"width\", \"height\" ] :\n\t\t\t\t\t\t\t[ \"width\", \"height\", \"top\", \"left\" ];\n\n\t\t\t\t$.each( css, function( i, prop ) {\n\t\t\t\t\tvar sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );\n\t\t\t\t\tif ( sum && sum >= 0 ) {\n\t\t\t\t\t\tstyle[ prop ] = sum || null;\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tel.css( style );\n\t\t\t} );\n\t},\n\n\tstop: function() {\n\t\t$( this ).removeData( \"ui-resizable-alsoresize\" );\n\t}\n} );\n\n$.ui.plugin.add( \"resizable\", \"ghost\", {\n\n\tstart: function() {\n\n\t\tvar that = $( this ).resizable( \"instance\" ), cs = that.size;\n\n\t\tthat.ghost = that.originalElement.clone();\n\t\tthat.ghost.css( {\n\t\t\topacity: 0.25,\n\t\t\tdisplay: \"block\",\n\t\t\tposition: \"relative\",\n\t\t\theight: cs.height,\n\t\t\twidth: cs.width,\n\t\t\tmargin: 0,\n\t\t\tleft: 0,\n\t\t\ttop: 0\n\t\t} );\n\n\t\tthat._addClass( that.ghost, \"ui-resizable-ghost\" );\n\n\t\t// DEPRECATED\n\t\t// TODO: remove after 1.12\n\t\tif ( $.uiBackCompat !== false && typeof that.options.ghost === \"string\" ) {\n\n\t\t\t// Ghost option\n\t\t\tthat.ghost.addClass( this.options.ghost );\n\t\t}\n\n\t\tthat.ghost.appendTo( that.helper );\n\n\t},\n\n\tresize: function() {\n\t\tvar that = $( this ).resizable( \"instance\" );\n\t\tif ( that.ghost ) {\n\t\t\tthat.ghost.css( {\n\t\t\t\tposition: \"relative\",\n\t\t\t\theight: that.size.height,\n\t\t\t\twidth: that.size.width\n\t\t\t} );\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $( this ).resizable( \"instance\" );\n\t\tif ( that.ghost && that.helper ) {\n\t\t\tthat.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );\n\t\t}\n\t}\n\n} );\n\n$.ui.plugin.add( \"resizable\", \"grid\", {\n\n\tresize: function() {\n\t\tvar outerDimensions,\n\t\t\tthat = $( this ).resizable( \"instance\" ),\n\t\t\to = that.options,\n\t\t\tcs = that.size,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\ta = that.axis,\n\t\t\tgrid = typeof o.grid === \"number\" ? [ o.grid, o.grid ] : o.grid,\n\t\t\tgridX = ( grid[ 0 ] || 1 ),\n\t\t\tgridY = ( grid[ 1 ] || 1 ),\n\t\t\tox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,\n\t\t\toy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,\n\t\t\tnewWidth = os.width + ox,\n\t\t\tnewHeight = os.height + oy,\n\t\t\tisMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),\n\t\t\tisMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),\n\t\t\tisMinWidth = o.minWidth && ( o.minWidth > newWidth ),\n\t\t\tisMinHeight = o.minHeight && ( o.minHeight > newHeight );\n\n\t\to.grid = grid;\n\n\t\tif ( isMinWidth ) {\n\t\t\tnewWidth += gridX;\n\t\t}\n\t\tif ( isMinHeight ) {\n\t\t\tnewHeight += gridY;\n\t\t}\n\t\tif ( isMaxWidth ) {\n\t\t\tnewWidth -= gridX;\n\t\t}\n\t\tif ( isMaxHeight ) {\n\t\t\tnewHeight -= gridY;\n\t\t}\n\n\t\tif ( /^(se|s|e)$/.test( a ) ) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t} else if ( /^(ne)$/.test( a ) ) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.top = op.top - oy;\n\t\t} else if ( /^(sw)$/.test( a ) ) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.left = op.left - ox;\n\t\t} else {\n\t\t\tif ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {\n\t\t\t\touterDimensions = that._getPaddingPlusBorderDimensions( this );\n\t\t\t}\n\n\t\t\tif ( newHeight - gridY > 0 ) {\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top - oy;\n\t\t\t} else {\n\t\t\t\tnewHeight = gridY - outerDimensions.height;\n\t\t\t\tthat.size.height = newHeight;\n\t\t\t\tthat.position.top = op.top + os.height - newHeight;\n\t\t\t}\n\t\t\tif ( newWidth - gridX > 0 ) {\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left - ox;\n\t\t\t} else {\n\t\t\t\tnewWidth = gridX - outerDimensions.width;\n\t\t\t\tthat.size.width = newWidth;\n\t\t\t\tthat.position.left = op.left + os.width - newWidth;\n\t\t\t}\n\t\t}\n\t}\n\n} );\n\nvar widgetsResizable = $.ui.resizable;\n\n\n/*!\n * jQuery UI Dialog 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Dialog\n//>>group: Widgets\n//>>description: Displays customizable dialog windows.\n//>>docs: http://api.jqueryui.com/dialog/\n//>>demos: http://jqueryui.com/dialog/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/dialog.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.dialog\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tappendTo: \"body\",\n\t\tautoOpen: true,\n\t\tbuttons: [],\n\t\tclasses: {\n\t\t\t\"ui-dialog\": \"ui-corner-all\",\n\t\t\t\"ui-dialog-titlebar\": \"ui-corner-all\"\n\t\t},\n\t\tcloseOnEscape: true,\n\t\tcloseText: \"Close\",\n\t\tdraggable: true,\n\t\thide: null,\n\t\theight: \"auto\",\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 150,\n\t\tminWidth: 150,\n\t\tmodal: false,\n\t\tposition: {\n\t\t\tmy: \"center\",\n\t\t\tat: \"center\",\n\t\t\tof: window,\n\t\t\tcollision: \"fit\",\n\n\t\t\t// Ensure the titlebar is always visible\n\t\t\tusing: function( pos ) {\n\t\t\t\tvar topOffset = $( this ).css( pos ).offset().top;\n\t\t\t\tif ( topOffset < 0 ) {\n\t\t\t\t\t$( this ).css( \"top\", pos.top - topOffset );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tresizable: true,\n\t\tshow: null,\n\t\ttitle: null,\n\t\twidth: 300,\n\n\t\t// Callbacks\n\t\tbeforeClose: null,\n\t\tclose: null,\n\t\tdrag: null,\n\t\tdragStart: null,\n\t\tdragStop: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tresize: null,\n\t\tresizeStart: null,\n\t\tresizeStop: null\n\t},\n\n\tsizeRelatedOptions: {\n\t\tbuttons: true,\n\t\theight: true,\n\t\tmaxHeight: true,\n\t\tmaxWidth: true,\n\t\tminHeight: true,\n\t\tminWidth: true,\n\t\twidth: true\n\t},\n\n\tresizableRelatedOptions: {\n\t\tmaxHeight: true,\n\t\tmaxWidth: true,\n\t\tminHeight: true,\n\t\tminWidth: true\n\t},\n\n\t_create: function() {\n\t\tthis.originalCss = {\n\t\t\tdisplay: this.element[ 0 ].style.display,\n\t\t\twidth: this.element[ 0 ].style.width,\n\t\t\tminHeight: this.element[ 0 ].style.minHeight,\n\t\t\tmaxHeight: this.element[ 0 ].style.maxHeight,\n\t\t\theight: this.element[ 0 ].style.height\n\t\t};\n\t\tthis.originalPosition = {\n\t\t\tparent: this.element.parent(),\n\t\t\tindex: this.element.parent().children().index( this.element )\n\t\t};\n\t\tthis.originalTitle = this.element.attr( \"title\" );\n\t\tif ( this.options.title == null && this.originalTitle != null ) {\n\t\t\tthis.options.title = this.originalTitle;\n\t\t}\n\n\t\t// Dialogs can't be disabled\n\t\tif ( this.options.disabled ) {\n\t\t\tthis.options.disabled = false;\n\t\t}\n\n\t\tthis._createWrapper();\n\n\t\tthis.element\n\t\t\t.show()\n\t\t\t.removeAttr( \"title\" )\n\t\t\t.appendTo( this.uiDialog );\n\n\t\tthis._addClass( \"ui-dialog-content\", \"ui-widget-content\" );\n\n\t\tthis._createTitlebar();\n\t\tthis._createButtonPane();\n\n\t\tif ( this.options.draggable && $.fn.draggable ) {\n\t\t\tthis._makeDraggable();\n\t\t}\n\t\tif ( this.options.resizable && $.fn.resizable ) {\n\t\t\tthis._makeResizable();\n\t\t}\n\n\t\tthis._isOpen = false;\n\n\t\tthis._trackFocus();\n\t},\n\n\t_init: function() {\n\t\tif ( this.options.autoOpen ) {\n\t\t\tthis.open();\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\t\tif ( element && ( element.jquery || element.nodeType ) ) {\n\t\t\treturn $( element );\n\t\t}\n\t\treturn this.document.find( element || \"body\" ).eq( 0 );\n\t},\n\n\t_destroy: function() {\n\t\tvar next,\n\t\t\toriginalPosition = this.originalPosition;\n\n\t\tthis._untrackInstance();\n\t\tthis._destroyOverlay();\n\n\t\tthis.element\n\t\t\t.removeUniqueId()\n\t\t\t.css( this.originalCss )\n\n\t\t\t// Without detaching first, the following becomes really slow\n\t\t\t.detach();\n\n\t\tthis.uiDialog.remove();\n\n\t\tif ( this.originalTitle ) {\n\t\t\tthis.element.attr( \"title\", this.originalTitle );\n\t\t}\n\n\t\tnext = originalPosition.parent.children().eq( originalPosition.index );\n\n\t\t// Don't try to place the dialog next to itself (#8613)\n\t\tif ( next.length && next[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tnext.before( this.element );\n\t\t} else {\n\t\t\toriginalPosition.parent.append( this.element );\n\t\t}\n\t},\n\n\twidget: function() {\n\t\treturn this.uiDialog;\n\t},\n\n\tdisable: $.noop,\n\tenable: $.noop,\n\n\tclose: function( event ) {\n\t\tvar that = this;\n\n\t\tif ( !this._isOpen || this._trigger( \"beforeClose\", event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpen = false;\n\t\tthis._focusedElement = null;\n\t\tthis._destroyOverlay();\n\t\tthis._untrackInstance();\n\n\t\tif ( !this.opener.filter( \":focusable\" ).trigger( \"focus\" ).length ) {\n\n\t\t\t// Hiding a focused element doesn't trigger blur in WebKit\n\t\t\t// so in case we have nothing to focus on, explicitly blur the active element\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=47182\n\t\t\t$.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );\n\t\t}\n\n\t\tthis._hide( this.uiDialog, this.options.hide, function() {\n\t\t\tthat._trigger( \"close\", event );\n\t\t} );\n\t},\n\n\tisOpen: function() {\n\t\treturn this._isOpen;\n\t},\n\n\tmoveToTop: function() {\n\t\tthis._moveToTop();\n\t},\n\n\t_moveToTop: function( event, silent ) {\n\t\tvar moved = false,\n\t\t\tzIndices = this.uiDialog.siblings( \".ui-front:visible\" ).map( function() {\n\t\t\t\treturn +$( this ).css( \"z-index\" );\n\t\t\t} ).get(),\n\t\t\tzIndexMax = Math.max.apply( null, zIndices );\n\n\t\tif ( zIndexMax >= +this.uiDialog.css( \"z-index\" ) ) {\n\t\t\tthis.uiDialog.css( \"z-index\", zIndexMax + 1 );\n\t\t\tmoved = true;\n\t\t}\n\n\t\tif ( moved && !silent ) {\n\t\t\tthis._trigger( \"focus\", event );\n\t\t}\n\t\treturn moved;\n\t},\n\n\topen: function() {\n\t\tvar that = this;\n\t\tif ( this._isOpen ) {\n\t\t\tif ( this._moveToTop() ) {\n\t\t\t\tthis._focusTabbable();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpen = true;\n\t\tthis.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );\n\n\t\tthis._size();\n\t\tthis._position();\n\t\tthis._createOverlay();\n\t\tthis._moveToTop( null, true );\n\n\t\t// Ensure the overlay is moved to the top with the dialog, but only when\n\t\t// opening. The overlay shouldn't move after the dialog is open so that\n\t\t// modeless dialogs opened after the modal dialog stack properly.\n\t\tif ( this.overlay ) {\n\t\t\tthis.overlay.css( \"z-index\", this.uiDialog.css( \"z-index\" ) - 1 );\n\t\t}\n\n\t\tthis._show( this.uiDialog, this.options.show, function() {\n\t\t\tthat._focusTabbable();\n\t\t\tthat._trigger( \"focus\" );\n\t\t} );\n\n\t\t// Track the dialog immediately upon openening in case a focus event\n\t\t// somehow occurs outside of the dialog before an element inside the\n\t\t// dialog is focused (#10152)\n\t\tthis._makeFocusTarget();\n\n\t\tthis._trigger( \"open\" );\n\t},\n\n\t_focusTabbable: function() {\n\n\t\t// Set focus to the first match:\n\t\t// 1. An element that was focused previously\n\t\t// 2. First element inside the dialog matching [autofocus]\n\t\t// 3. Tabbable element inside the content element\n\t\t// 4. Tabbable element inside the buttonpane\n\t\t// 5. The close button\n\t\t// 6. The dialog itself\n\t\tvar hasFocus = this._focusedElement;\n\t\tif ( !hasFocus ) {\n\t\t\thasFocus = this.element.find( \"[autofocus]\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.element.find( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialogButtonPane.find( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialogTitlebarClose.filter( \":tabbable\" );\n\t\t}\n\t\tif ( !hasFocus.length ) {\n\t\t\thasFocus = this.uiDialog;\n\t\t}\n\t\thasFocus.eq( 0 ).trigger( \"focus\" );\n\t},\n\n\t_keepFocus: function( event ) {\n\t\tfunction checkFocus() {\n\t\t\tvar activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),\n\t\t\t\tisActive = this.uiDialog[ 0 ] === activeElement ||\n\t\t\t\t\t$.contains( this.uiDialog[ 0 ], activeElement );\n\t\t\tif ( !isActive ) {\n\t\t\t\tthis._focusTabbable();\n\t\t\t}\n\t\t}\n\t\tevent.preventDefault();\n\t\tcheckFocus.call( this );\n\n\t\t// support: IE\n\t\t// IE <= 8 doesn't prevent moving focus even with event.preventDefault()\n\t\t// so we check again later\n\t\tthis._delay( checkFocus );\n\t},\n\n\t_createWrapper: function() {\n\t\tthis.uiDialog = $( \"<div>\" )\n\t\t\t.hide()\n\t\t\t.attr( {\n\n\t\t\t\t// Setting tabIndex makes the div focusable\n\t\t\t\ttabIndex: -1,\n\t\t\t\trole: \"dialog\"\n\t\t\t} )\n\t\t\t.appendTo( this._appendTo() );\n\n\t\tthis._addClass( this.uiDialog, \"ui-dialog\", \"ui-widget ui-widget-content ui-front\" );\n\t\tthis._on( this.uiDialog, {\n\t\t\tkeydown: function( event ) {\n\t\t\t\tif ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&\n\t\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.close( event );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Prevent tabbing out of dialogs\n\t\t\t\tif ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tabbables = this.uiDialog.find( \":tabbable\" ),\n\t\t\t\t\tfirst = tabbables.filter( \":first\" ),\n\t\t\t\t\tlast = tabbables.filter( \":last\" );\n\n\t\t\t\tif ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&\n\t\t\t\t\t\t!event.shiftKey ) {\n\t\t\t\t\tthis._delay( function() {\n\t\t\t\t\t\tfirst.trigger( \"focus\" );\n\t\t\t\t\t} );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else if ( ( event.target === first[ 0 ] ||\n\t\t\t\t\t\tevent.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {\n\t\t\t\t\tthis._delay( function() {\n\t\t\t\t\t\tlast.trigger( \"focus\" );\n\t\t\t\t\t} );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t},\n\t\t\tmousedown: function( event ) {\n\t\t\t\tif ( this._moveToTop( event ) ) {\n\t\t\t\t\tthis._focusTabbable();\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// We assume that any existing aria-describedby attribute means\n\t\t// that the dialog content is marked up properly\n\t\t// otherwise we brute force the content as the description\n\t\tif ( !this.element.find( \"[aria-describedby]\" ).length ) {\n\t\t\tthis.uiDialog.attr( {\n\t\t\t\t\"aria-describedby\": this.element.uniqueId().attr( \"id\" )\n\t\t\t} );\n\t\t}\n\t},\n\n\t_createTitlebar: function() {\n\t\tvar uiDialogTitle;\n\n\t\tthis.uiDialogTitlebar = $( \"<div>\" );\n\t\tthis._addClass( this.uiDialogTitlebar,\n\t\t\t\"ui-dialog-titlebar\", \"ui-widget-header ui-helper-clearfix\" );\n\t\tthis._on( this.uiDialogTitlebar, {\n\t\t\tmousedown: function( event ) {\n\n\t\t\t\t// Don't prevent click on close button (#8838)\n\t\t\t\t// Focusing a dialog that is partially scrolled out of view\n\t\t\t\t// causes the browser to scroll it into view, preventing the click event\n\t\t\t\tif ( !$( event.target ).closest( \".ui-dialog-titlebar-close\" ) ) {\n\n\t\t\t\t\t// Dialog isn't getting focus when dragging (#8063)\n\t\t\t\t\tthis.uiDialog.trigger( \"focus\" );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Support: IE\n\t\t// Use type=\"button\" to prevent enter keypresses in textboxes from closing the\n\t\t// dialog in IE (#9312)\n\t\tthis.uiDialogTitlebarClose = $( \"<button type='button'></button>\" )\n\t\t\t.button( {\n\t\t\t\tlabel: $( \"<a>\" ).text( this.options.closeText ).html(),\n\t\t\t\ticon: \"ui-icon-closethick\",\n\t\t\t\tshowLabel: false\n\t\t\t} )\n\t\t\t.appendTo( this.uiDialogTitlebar );\n\n\t\tthis._addClass( this.uiDialogTitlebarClose, \"ui-dialog-titlebar-close\" );\n\t\tthis._on( this.uiDialogTitlebarClose, {\n\t\t\tclick: function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.close( event );\n\t\t\t}\n\t\t} );\n\n\t\tuiDialogTitle = $( \"<span>\" ).uniqueId().prependTo( this.uiDialogTitlebar );\n\t\tthis._addClass( uiDialogTitle, \"ui-dialog-title\" );\n\t\tthis._title( uiDialogTitle );\n\n\t\tthis.uiDialogTitlebar.prependTo( this.uiDialog );\n\n\t\tthis.uiDialog.attr( {\n\t\t\t\"aria-labelledby\": uiDialogTitle.attr( \"id\" )\n\t\t} );\n\t},\n\n\t_title: function( title ) {\n\t\tif ( this.options.title ) {\n\t\t\ttitle.text( this.options.title );\n\t\t} else {\n\t\t\ttitle.html( \"&#160;\" );\n\t\t}\n\t},\n\n\t_createButtonPane: function() {\n\t\tthis.uiDialogButtonPane = $( \"<div>\" );\n\t\tthis._addClass( this.uiDialogButtonPane, \"ui-dialog-buttonpane\",\n\t\t\t\"ui-widget-content ui-helper-clearfix\" );\n\n\t\tthis.uiButtonSet = $( \"<div>\" )\n\t\t\t.appendTo( this.uiDialogButtonPane );\n\t\tthis._addClass( this.uiButtonSet, \"ui-dialog-buttonset\" );\n\n\t\tthis._createButtons();\n\t},\n\n\t_createButtons: function() {\n\t\tvar that = this,\n\t\t\tbuttons = this.options.buttons;\n\n\t\t// If we already have a button pane, remove it\n\t\tthis.uiDialogButtonPane.remove();\n\t\tthis.uiButtonSet.empty();\n\n\t\tif ( $.isEmptyObject( buttons ) || ( $.isArray( buttons ) && !buttons.length ) ) {\n\t\t\tthis._removeClass( this.uiDialog, \"ui-dialog-buttons\" );\n\t\t\treturn;\n\t\t}\n\n\t\t$.each( buttons, function( name, props ) {\n\t\t\tvar click, buttonOptions;\n\t\t\tprops = $.isFunction( props ) ?\n\t\t\t\t{ click: props, text: name } :\n\t\t\t\tprops;\n\n\t\t\t// Default to a non-submitting button\n\t\t\tprops = $.extend( { type: \"button\" }, props );\n\n\t\t\t// Change the context for the click callback to be the main element\n\t\t\tclick = props.click;\n\t\t\tbuttonOptions = {\n\t\t\t\ticon: props.icon,\n\t\t\t\ticonPosition: props.iconPosition,\n\t\t\t\tshowLabel: props.showLabel,\n\n\t\t\t\t// Deprecated options\n\t\t\t\ticons: props.icons,\n\t\t\t\ttext: props.text\n\t\t\t};\n\n\t\t\tdelete props.click;\n\t\t\tdelete props.icon;\n\t\t\tdelete props.iconPosition;\n\t\t\tdelete props.showLabel;\n\n\t\t\t// Deprecated options\n\t\t\tdelete props.icons;\n\t\t\tif ( typeof props.text === \"boolean\" ) {\n\t\t\t\tdelete props.text;\n\t\t\t}\n\n\t\t\t$( \"<button></button>\", props )\n\t\t\t\t.button( buttonOptions )\n\t\t\t\t.appendTo( that.uiButtonSet )\n\t\t\t\t.on( \"click\", function() {\n\t\t\t\t\tclick.apply( that.element[ 0 ], arguments );\n\t\t\t\t} );\n\t\t} );\n\t\tthis._addClass( this.uiDialog, \"ui-dialog-buttons\" );\n\t\tthis.uiDialogButtonPane.appendTo( this.uiDialog );\n\t},\n\n\t_makeDraggable: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tfunction filteredUi( ui ) {\n\t\t\treturn {\n\t\t\t\tposition: ui.position,\n\t\t\t\toffset: ui.offset\n\t\t\t};\n\t\t}\n\n\t\tthis.uiDialog.draggable( {\n\t\t\tcancel: \".ui-dialog-content, .ui-dialog-titlebar-close\",\n\t\t\thandle: \".ui-dialog-titlebar\",\n\t\t\tcontainment: \"document\",\n\t\t\tstart: function( event, ui ) {\n\t\t\t\tthat._addClass( $( this ), \"ui-dialog-dragging\" );\n\t\t\t\tthat._blockFrames();\n\t\t\t\tthat._trigger( \"dragStart\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tdrag: function( event, ui ) {\n\t\t\t\tthat._trigger( \"drag\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tstop: function( event, ui ) {\n\t\t\t\tvar left = ui.offset.left - that.document.scrollLeft(),\n\t\t\t\t\ttop = ui.offset.top - that.document.scrollTop();\n\n\t\t\t\toptions.position = {\n\t\t\t\t\tmy: \"left top\",\n\t\t\t\t\tat: \"left\" + ( left >= 0 ? \"+\" : \"\" ) + left + \" \" +\n\t\t\t\t\t\t\"top\" + ( top >= 0 ? \"+\" : \"\" ) + top,\n\t\t\t\t\tof: that.window\n\t\t\t\t};\n\t\t\t\tthat._removeClass( $( this ), \"ui-dialog-dragging\" );\n\t\t\t\tthat._unblockFrames();\n\t\t\t\tthat._trigger( \"dragStop\", event, filteredUi( ui ) );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_makeResizable: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options,\n\t\t\thandles = options.resizable,\n\n\t\t\t// .ui-resizable has position: relative defined in the stylesheet\n\t\t\t// but dialogs have to use absolute or fixed positioning\n\t\t\tposition = this.uiDialog.css( \"position\" ),\n\t\t\tresizeHandles = typeof handles === \"string\" ?\n\t\t\t\thandles :\n\t\t\t\t\"n,e,s,w,se,sw,ne,nw\";\n\n\t\tfunction filteredUi( ui ) {\n\t\t\treturn {\n\t\t\t\toriginalPosition: ui.originalPosition,\n\t\t\t\toriginalSize: ui.originalSize,\n\t\t\t\tposition: ui.position,\n\t\t\t\tsize: ui.size\n\t\t\t};\n\t\t}\n\n\t\tthis.uiDialog.resizable( {\n\t\t\tcancel: \".ui-dialog-content\",\n\t\t\tcontainment: \"document\",\n\t\t\talsoResize: this.element,\n\t\t\tmaxWidth: options.maxWidth,\n\t\t\tmaxHeight: options.maxHeight,\n\t\t\tminWidth: options.minWidth,\n\t\t\tminHeight: this._minHeight(),\n\t\t\thandles: resizeHandles,\n\t\t\tstart: function( event, ui ) {\n\t\t\t\tthat._addClass( $( this ), \"ui-dialog-resizing\" );\n\t\t\t\tthat._blockFrames();\n\t\t\t\tthat._trigger( \"resizeStart\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tresize: function( event, ui ) {\n\t\t\t\tthat._trigger( \"resize\", event, filteredUi( ui ) );\n\t\t\t},\n\t\t\tstop: function( event, ui ) {\n\t\t\t\tvar offset = that.uiDialog.offset(),\n\t\t\t\t\tleft = offset.left - that.document.scrollLeft(),\n\t\t\t\t\ttop = offset.top - that.document.scrollTop();\n\n\t\t\t\toptions.height = that.uiDialog.height();\n\t\t\t\toptions.width = that.uiDialog.width();\n\t\t\t\toptions.position = {\n\t\t\t\t\tmy: \"left top\",\n\t\t\t\t\tat: \"left\" + ( left >= 0 ? \"+\" : \"\" ) + left + \" \" +\n\t\t\t\t\t\t\"top\" + ( top >= 0 ? \"+\" : \"\" ) + top,\n\t\t\t\t\tof: that.window\n\t\t\t\t};\n\t\t\t\tthat._removeClass( $( this ), \"ui-dialog-resizing\" );\n\t\t\t\tthat._unblockFrames();\n\t\t\t\tthat._trigger( \"resizeStop\", event, filteredUi( ui ) );\n\t\t\t}\n\t\t} )\n\t\t\t.css( \"position\", position );\n\t},\n\n\t_trackFocus: function() {\n\t\tthis._on( this.widget(), {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._makeFocusTarget();\n\t\t\t\tthis._focusedElement = $( event.target );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_makeFocusTarget: function() {\n\t\tthis._untrackInstance();\n\t\tthis._trackingInstances().unshift( this );\n\t},\n\n\t_untrackInstance: function() {\n\t\tvar instances = this._trackingInstances(),\n\t\t\texists = $.inArray( this, instances );\n\t\tif ( exists !== -1 ) {\n\t\t\tinstances.splice( exists, 1 );\n\t\t}\n\t},\n\n\t_trackingInstances: function() {\n\t\tvar instances = this.document.data( \"ui-dialog-instances\" );\n\t\tif ( !instances ) {\n\t\t\tinstances = [];\n\t\t\tthis.document.data( \"ui-dialog-instances\", instances );\n\t\t}\n\t\treturn instances;\n\t},\n\n\t_minHeight: function() {\n\t\tvar options = this.options;\n\n\t\treturn options.height === \"auto\" ?\n\t\t\toptions.minHeight :\n\t\t\tMath.min( options.minHeight, options.height );\n\t},\n\n\t_position: function() {\n\n\t\t// Need to show the dialog to get the actual offset in the position plugin\n\t\tvar isVisible = this.uiDialog.is( \":visible\" );\n\t\tif ( !isVisible ) {\n\t\t\tthis.uiDialog.show();\n\t\t}\n\t\tthis.uiDialog.position( this.options.position );\n\t\tif ( !isVisible ) {\n\t\t\tthis.uiDialog.hide();\n\t\t}\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar that = this,\n\t\t\tresize = false,\n\t\t\tresizableOptions = {};\n\n\t\t$.each( options, function( key, value ) {\n\t\t\tthat._setOption( key, value );\n\n\t\t\tif ( key in that.sizeRelatedOptions ) {\n\t\t\t\tresize = true;\n\t\t\t}\n\t\t\tif ( key in that.resizableRelatedOptions ) {\n\t\t\t\tresizableOptions[ key ] = value;\n\t\t\t}\n\t\t} );\n\n\t\tif ( resize ) {\n\t\t\tthis._size();\n\t\t\tthis._position();\n\t\t}\n\t\tif ( this.uiDialog.is( \":data(ui-resizable)\" ) ) {\n\t\t\tthis.uiDialog.resizable( \"option\", resizableOptions );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar isDraggable, isResizable,\n\t\t\tuiDialog = this.uiDialog;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.uiDialog.appendTo( this._appendTo() );\n\t\t}\n\n\t\tif ( key === \"buttons\" ) {\n\t\t\tthis._createButtons();\n\t\t}\n\n\t\tif ( key === \"closeText\" ) {\n\t\t\tthis.uiDialogTitlebarClose.button( {\n\n\t\t\t\t// Ensure that we always pass a string\n\t\t\t\tlabel: $( \"<a>\" ).text( \"\" + this.options.closeText ).html()\n\t\t\t} );\n\t\t}\n\n\t\tif ( key === \"draggable\" ) {\n\t\t\tisDraggable = uiDialog.is( \":data(ui-draggable)\" );\n\t\t\tif ( isDraggable && !value ) {\n\t\t\t\tuiDialog.draggable( \"destroy\" );\n\t\t\t}\n\n\t\t\tif ( !isDraggable && value ) {\n\t\t\t\tthis._makeDraggable();\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"position\" ) {\n\t\t\tthis._position();\n\t\t}\n\n\t\tif ( key === \"resizable\" ) {\n\n\t\t\t// currently resizable, becoming non-resizable\n\t\t\tisResizable = uiDialog.is( \":data(ui-resizable)\" );\n\t\t\tif ( isResizable && !value ) {\n\t\t\t\tuiDialog.resizable( \"destroy\" );\n\t\t\t}\n\n\t\t\t// Currently resizable, changing handles\n\t\t\tif ( isResizable && typeof value === \"string\" ) {\n\t\t\t\tuiDialog.resizable( \"option\", \"handles\", value );\n\t\t\t}\n\n\t\t\t// Currently non-resizable, becoming resizable\n\t\t\tif ( !isResizable && value !== false ) {\n\t\t\t\tthis._makeResizable();\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"title\" ) {\n\t\t\tthis._title( this.uiDialogTitlebar.find( \".ui-dialog-title\" ) );\n\t\t}\n\t},\n\n\t_size: function() {\n\n\t\t// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content\n\t\t// divs will both have width and height set, so we need to reset them\n\t\tvar nonContentHeight, minContentHeight, maxContentHeight,\n\t\t\toptions = this.options;\n\n\t\t// Reset content sizing\n\t\tthis.element.show().css( {\n\t\t\twidth: \"auto\",\n\t\t\tminHeight: 0,\n\t\t\tmaxHeight: \"none\",\n\t\t\theight: 0\n\t\t} );\n\n\t\tif ( options.minWidth > options.width ) {\n\t\t\toptions.width = options.minWidth;\n\t\t}\n\n\t\t// Reset wrapper sizing\n\t\t// determine the height of all the non-content elements\n\t\tnonContentHeight = this.uiDialog.css( {\n\t\t\theight: \"auto\",\n\t\t\twidth: options.width\n\t\t} )\n\t\t\t.outerHeight();\n\t\tminContentHeight = Math.max( 0, options.minHeight - nonContentHeight );\n\t\tmaxContentHeight = typeof options.maxHeight === \"number\" ?\n\t\t\tMath.max( 0, options.maxHeight - nonContentHeight ) :\n\t\t\t\"none\";\n\n\t\tif ( options.height === \"auto\" ) {\n\t\t\tthis.element.css( {\n\t\t\t\tminHeight: minContentHeight,\n\t\t\t\tmaxHeight: maxContentHeight,\n\t\t\t\theight: \"auto\"\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.element.height( Math.max( 0, options.height - nonContentHeight ) );\n\t\t}\n\n\t\tif ( this.uiDialog.is( \":data(ui-resizable)\" ) ) {\n\t\t\tthis.uiDialog.resizable( \"option\", \"minHeight\", this._minHeight() );\n\t\t}\n\t},\n\n\t_blockFrames: function() {\n\t\tthis.iframeBlocks = this.document.find( \"iframe\" ).map( function() {\n\t\t\tvar iframe = $( this );\n\n\t\t\treturn $( \"<div>\" )\n\t\t\t\t.css( {\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\twidth: iframe.outerWidth(),\n\t\t\t\t\theight: iframe.outerHeight()\n\t\t\t\t} )\n\t\t\t\t.appendTo( iframe.parent() )\n\t\t\t\t.offset( iframe.offset() )[ 0 ];\n\t\t} );\n\t},\n\n\t_unblockFrames: function() {\n\t\tif ( this.iframeBlocks ) {\n\t\t\tthis.iframeBlocks.remove();\n\t\t\tdelete this.iframeBlocks;\n\t\t}\n\t},\n\n\t_allowInteraction: function( event ) {\n\t\tif ( $( event.target ).closest( \".ui-dialog\" ).length ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: Remove hack when datepicker implements\n\t\t// the .ui-front logic (#8989)\n\t\treturn !!$( event.target ).closest( \".ui-datepicker\" ).length;\n\t},\n\n\t_createOverlay: function() {\n\t\tif ( !this.options.modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We use a delay in case the overlay is created from an\n\t\t// event that we're going to be cancelling (#2804)\n\t\tvar isOpening = true;\n\t\tthis._delay( function() {\n\t\t\tisOpening = false;\n\t\t} );\n\n\t\tif ( !this.document.data( \"ui-dialog-overlays\" ) ) {\n\n\t\t\t// Prevent use of anchors and inputs\n\t\t\t// Using _on() for an event handler shared across many instances is\n\t\t\t// safe because the dialogs stack and must be closed in reverse order\n\t\t\tthis._on( this.document, {\n\t\t\t\tfocusin: function( event ) {\n\t\t\t\t\tif ( isOpening ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !this._allowInteraction( event ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis._trackingInstances()[ 0 ]._focusTabbable();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tthis.overlay = $( \"<div>\" )\n\t\t\t.appendTo( this._appendTo() );\n\n\t\tthis._addClass( this.overlay, null, \"ui-widget-overlay ui-front\" );\n\t\tthis._on( this.overlay, {\n\t\t\tmousedown: \"_keepFocus\"\n\t\t} );\n\t\tthis.document.data( \"ui-dialog-overlays\",\n\t\t\t( this.document.data( \"ui-dialog-overlays\" ) || 0 ) + 1 );\n\t},\n\n\t_destroyOverlay: function() {\n\t\tif ( !this.options.modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.overlay ) {\n\t\t\tvar overlays = this.document.data( \"ui-dialog-overlays\" ) - 1;\n\n\t\t\tif ( !overlays ) {\n\t\t\t\tthis._off( this.document, \"focusin\" );\n\t\t\t\tthis.document.removeData( \"ui-dialog-overlays\" );\n\t\t\t} else {\n\t\t\t\tthis.document.data( \"ui-dialog-overlays\", overlays );\n\t\t\t}\n\n\t\t\tthis.overlay.remove();\n\t\t\tthis.overlay = null;\n\t\t}\n\t}\n} );\n\n// DEPRECATED\n// TODO: switch return back to widget declaration at top of file when this is removed\nif ( $.uiBackCompat !== false ) {\n\n\t// Backcompat for dialogClass option\n\t$.widget( \"ui.dialog\", $.ui.dialog, {\n\t\toptions: {\n\t\t\tdialogClass: \"\"\n\t\t},\n\t\t_createWrapper: function() {\n\t\t\tthis._super();\n\t\t\tthis.uiDialog.addClass( this.options.dialogClass );\n\t\t},\n\t\t_setOption: function( key, value ) {\n\t\t\tif ( key === \"dialogClass\" ) {\n\t\t\t\tthis.uiDialog\n\t\t\t\t\t.removeClass( this.options.dialogClass )\n\t\t\t\t\t.addClass( value );\n\t\t\t}\n\t\t\tthis._superApply( arguments );\n\t\t}\n\t} );\n}\n\nvar widgetsDialog = $.ui.dialog;\n\n\n/*!\n * jQuery UI Droppable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Droppable\n//>>group: Interactions\n//>>description: Enables drop targets for draggable elements.\n//>>docs: http://api.jqueryui.com/droppable/\n//>>demos: http://jqueryui.com/droppable/\n\n\n\n$.widget( \"ui.droppable\", {\n\tversion: \"1.12.1\",\n\twidgetEventPrefix: \"drop\",\n\toptions: {\n\t\taccept: \"*\",\n\t\taddClasses: true,\n\t\tgreedy: false,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tdeactivate: null,\n\t\tdrop: null,\n\t\tout: null,\n\t\tover: null\n\t},\n\t_create: function() {\n\n\t\tvar proportions,\n\t\t\to = this.options,\n\t\t\taccept = o.accept;\n\n\t\tthis.isover = false;\n\t\tthis.isout = true;\n\n\t\tthis.accept = $.isFunction( accept ) ? accept : function( d ) {\n\t\t\treturn d.is( accept );\n\t\t};\n\n\t\tthis.proportions = function( /* valueToWrite */ ) {\n\t\t\tif ( arguments.length ) {\n\n\t\t\t\t// Store the droppable's proportions\n\t\t\t\tproportions = arguments[ 0 ];\n\t\t\t} else {\n\n\t\t\t\t// Retrieve or derive the droppable's proportions\n\t\t\t\treturn proportions ?\n\t\t\t\t\tproportions :\n\t\t\t\t\tproportions = {\n\t\t\t\t\t\twidth: this.element[ 0 ].offsetWidth,\n\t\t\t\t\t\theight: this.element[ 0 ].offsetHeight\n\t\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tthis._addToManager( o.scope );\n\n\t\to.addClasses && this._addClass( \"ui-droppable\" );\n\n\t},\n\n\t_addToManager: function( scope ) {\n\n\t\t// Add the reference and positions to the manager\n\t\t$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];\n\t\t$.ui.ddmanager.droppables[ scope ].push( this );\n\t},\n\n\t_splice: function( drop ) {\n\t\tvar i = 0;\n\t\tfor ( ; i < drop.length; i++ ) {\n\t\t\tif ( drop[ i ] === this ) {\n\t\t\t\tdrop.splice( i, 1 );\n\t\t\t}\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tvar drop = $.ui.ddmanager.droppables[ this.options.scope ];\n\n\t\tthis._splice( drop );\n\t},\n\n\t_setOption: function( key, value ) {\n\n\t\tif ( key === \"accept\" ) {\n\t\t\tthis.accept = $.isFunction( value ) ? value : function( d ) {\n\t\t\t\treturn d.is( value );\n\t\t\t};\n\t\t} else if ( key === \"scope\" ) {\n\t\t\tvar drop = $.ui.ddmanager.droppables[ this.options.scope ];\n\n\t\t\tthis._splice( drop );\n\t\t\tthis._addToManager( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\t},\n\n\t_activate: function( event ) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\tthis._addActiveClass();\n\t\tif ( draggable ) {\n\t\t\tthis._trigger( \"activate\", event, this.ui( draggable ) );\n\t\t}\n\t},\n\n\t_deactivate: function( event ) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\tthis._removeActiveClass();\n\t\tif ( draggable ) {\n\t\t\tthis._trigger( \"deactivate\", event, this.ui( draggable ) );\n\t\t}\n\t},\n\n\t_over: function( event ) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem ||\n\t\t\t\tdraggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||\n\t\t\t\tdraggable.element ) ) ) {\n\t\t\tthis._addHoverClass();\n\t\t\tthis._trigger( \"over\", event, this.ui( draggable ) );\n\t\t}\n\n\t},\n\n\t_out: function( event ) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem ||\n\t\t\t\tdraggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||\n\t\t\t\tdraggable.element ) ) ) {\n\t\t\tthis._removeHoverClass();\n\t\t\tthis._trigger( \"out\", event, this.ui( draggable ) );\n\t\t}\n\n\t},\n\n\t_drop: function( event, custom ) {\n\n\t\tvar draggable = custom || $.ui.ddmanager.current,\n\t\t\tchildrenIntersection = false;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif ( !draggable || ( draggable.currentItem ||\n\t\t\t\tdraggable.element )[ 0 ] === this.element[ 0 ] ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.element\n\t\t\t.find( \":data(ui-droppable)\" )\n\t\t\t.not( \".ui-draggable-dragging\" )\n\t\t\t.each( function() {\n\t\t\t\tvar inst = $( this ).droppable( \"instance\" );\n\t\t\t\tif (\n\t\t\t\t\tinst.options.greedy &&\n\t\t\t\t\t!inst.options.disabled &&\n\t\t\t\t\tinst.options.scope === draggable.options.scope &&\n\t\t\t\t\tinst.accept.call(\n\t\t\t\t\t\tinst.element[ 0 ], ( draggable.currentItem || draggable.element )\n\t\t\t\t\t) &&\n\t\t\t\t\tintersect(\n\t\t\t\t\t\tdraggable,\n\t\t\t\t\t\t$.extend( inst, { offset: inst.element.offset() } ),\n\t\t\t\t\t\tinst.options.tolerance, event\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tchildrenIntersection = true;\n\t\t\t\t\treturn false; }\n\t\t\t} );\n\t\tif ( childrenIntersection ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.accept.call( this.element[ 0 ],\n\t\t\t\t( draggable.currentItem || draggable.element ) ) ) {\n\t\t\tthis._removeActiveClass();\n\t\t\tthis._removeHoverClass();\n\n\t\t\tthis._trigger( \"drop\", event, this.ui( draggable ) );\n\t\t\treturn this.element;\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tui: function( c ) {\n\t\treturn {\n\t\t\tdraggable: ( c.currentItem || c.element ),\n\t\t\thelper: c.helper,\n\t\t\tposition: c.position,\n\t\t\toffset: c.positionAbs\n\t\t};\n\t},\n\n\t// Extension points just to make backcompat sane and avoid duplicating logic\n\t// TODO: Remove in 1.13 along with call to it below\n\t_addHoverClass: function() {\n\t\tthis._addClass( \"ui-droppable-hover\" );\n\t},\n\n\t_removeHoverClass: function() {\n\t\tthis._removeClass( \"ui-droppable-hover\" );\n\t},\n\n\t_addActiveClass: function() {\n\t\tthis._addClass( \"ui-droppable-active\" );\n\t},\n\n\t_removeActiveClass: function() {\n\t\tthis._removeClass( \"ui-droppable-active\" );\n\t}\n} );\n\nvar intersect = $.ui.intersect = ( function() {\n\tfunction isOverAxis( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t}\n\n\treturn function( draggable, droppable, toleranceMode, event ) {\n\n\t\tif ( !droppable.offset ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar x1 = ( draggable.positionAbs ||\n\t\t\t\tdraggable.position.absolute ).left + draggable.margins.left,\n\t\t\ty1 = ( draggable.positionAbs ||\n\t\t\t\tdraggable.position.absolute ).top + draggable.margins.top,\n\t\t\tx2 = x1 + draggable.helperProportions.width,\n\t\t\ty2 = y1 + draggable.helperProportions.height,\n\t\t\tl = droppable.offset.left,\n\t\t\tt = droppable.offset.top,\n\t\t\tr = l + droppable.proportions().width,\n\t\t\tb = t + droppable.proportions().height;\n\n\t\tswitch ( toleranceMode ) {\n\t\tcase \"fit\":\n\t\t\treturn ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );\n\t\tcase \"intersect\":\n\t\t\treturn ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half\n\t\tcase \"pointer\":\n\t\t\treturn isOverAxis( event.pageY, t, droppable.proportions().height ) &&\n\t\t\t\tisOverAxis( event.pageX, l, droppable.proportions().width );\n\t\tcase \"touch\":\n\t\t\treturn (\n\t\t\t\t( y1 >= t && y1 <= b ) || // Top edge touching\n\t\t\t\t( y2 >= t && y2 <= b ) || // Bottom edge touching\n\t\t\t\t( y1 < t && y2 > b ) // Surrounded vertically\n\t\t\t) && (\n\t\t\t\t( x1 >= l && x1 <= r ) || // Left edge touching\n\t\t\t\t( x2 >= l && x2 <= r ) || // Right edge touching\n\t\t\t\t( x1 < l && x2 > r ) // Surrounded horizontally\n\t\t\t);\n\t\tdefault:\n\t\t\treturn false;\n\t\t}\n\t};\n} )();\n\n/*\n\tThis manager tracks offsets of draggables and droppables\n*/\n$.ui.ddmanager = {\n\tcurrent: null,\n\tdroppables: { \"default\": [] },\n\tprepareOffsets: function( t, event ) {\n\n\t\tvar i, j,\n\t\t\tm = $.ui.ddmanager.droppables[ t.options.scope ] || [],\n\t\t\ttype = event ? event.type : null, // workaround for #2317\n\t\t\tlist = ( t.currentItem || t.element ).find( \":data(ui-droppable)\" ).addBack();\n\n\t\tdroppablesLoop: for ( i = 0; i < m.length; i++ ) {\n\n\t\t\t// No disabled and non-accepted\n\t\t\tif ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ],\n\t\t\t\t\t( t.currentItem || t.element ) ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Filter out elements in the current dragged item\n\t\t\tfor ( j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === m[ i ].element[ 0 ] ) {\n\t\t\t\t\tm[ i ].proportions().height = 0;\n\t\t\t\t\tcontinue droppablesLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm[ i ].visible = m[ i ].element.css( \"display\" ) !== \"none\";\n\t\t\tif ( !m[ i ].visible ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Activate the droppable if used directly from draggables\n\t\t\tif ( type === \"mousedown\" ) {\n\t\t\t\tm[ i ]._activate.call( m[ i ], event );\n\t\t\t}\n\n\t\t\tm[ i ].offset = m[ i ].element.offset();\n\t\t\tm[ i ].proportions( {\n\t\t\t\twidth: m[ i ].element[ 0 ].offsetWidth,\n\t\t\t\theight: m[ i ].element[ 0 ].offsetHeight\n\t\t\t} );\n\n\t\t}\n\n\t},\n\tdrop: function( draggable, event ) {\n\n\t\tvar dropped = false;\n\n\t\t// Create a copy of the droppables in case the list changes during the drop (#9116)\n\t\t$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {\n\n\t\t\tif ( !this.options ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( !this.options.disabled && this.visible &&\n\t\t\t\t\tintersect( draggable, this, this.options.tolerance, event ) ) {\n\t\t\t\tdropped = this._drop.call( this, event ) || dropped;\n\t\t\t}\n\n\t\t\tif ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ],\n\t\t\t\t\t( draggable.currentItem || draggable.element ) ) ) {\n\t\t\t\tthis.isout = true;\n\t\t\t\tthis.isover = false;\n\t\t\t\tthis._deactivate.call( this, event );\n\t\t\t}\n\n\t\t} );\n\t\treturn dropped;\n\n\t},\n\tdragStart: function( draggable, event ) {\n\n\t\t// Listen for scrolling so that if the dragging causes scrolling the position of the\n\t\t// droppables can be recalculated (see #5003)\n\t\tdraggable.element.parentsUntil( \"body\" ).on( \"scroll.droppable\", function() {\n\t\t\tif ( !draggable.options.refreshPositions ) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t\t}\n\t\t} );\n\t},\n\tdrag: function( draggable, event ) {\n\n\t\t// If you have a highly dynamic page, you might try this option. It renders positions\n\t\t// every time you move the mouse.\n\t\tif ( draggable.options.refreshPositions ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t}\n\n\t\t// Run through all droppables and check their positions based on specific tolerance options\n\t\t$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {\n\n\t\t\tif ( this.options.disabled || this.greedyChild || !this.visible ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar parentInstance, scope, parent,\n\t\t\t\tintersects = intersect( draggable, this, this.options.tolerance, event ),\n\t\t\t\tc = !intersects && this.isover ?\n\t\t\t\t\t\"isout\" :\n\t\t\t\t\t( intersects && !this.isover ? \"isover\" : null );\n\t\t\tif ( !c ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.options.greedy ) {\n\n\t\t\t\t// find droppable parents with same scope\n\t\t\t\tscope = this.options.scope;\n\t\t\t\tparent = this.element.parents( \":data(ui-droppable)\" ).filter( function() {\n\t\t\t\t\treturn $( this ).droppable( \"instance\" ).options.scope === scope;\n\t\t\t\t} );\n\n\t\t\t\tif ( parent.length ) {\n\t\t\t\t\tparentInstance = $( parent[ 0 ] ).droppable( \"instance\" );\n\t\t\t\t\tparentInstance.greedyChild = ( c === \"isover\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We just moved into a greedy child\n\t\t\tif ( parentInstance && c === \"isover\" ) {\n\t\t\t\tparentInstance.isover = false;\n\t\t\t\tparentInstance.isout = true;\n\t\t\t\tparentInstance._out.call( parentInstance, event );\n\t\t\t}\n\n\t\t\tthis[ c ] = true;\n\t\t\tthis[ c === \"isout\" ? \"isover\" : \"isout\" ] = false;\n\t\t\tthis[ c === \"isover\" ? \"_over\" : \"_out\" ].call( this, event );\n\n\t\t\t// We just moved out of a greedy child\n\t\t\tif ( parentInstance && c === \"isout\" ) {\n\t\t\t\tparentInstance.isout = false;\n\t\t\t\tparentInstance.isover = true;\n\t\t\t\tparentInstance._over.call( parentInstance, event );\n\t\t\t}\n\t\t} );\n\n\t},\n\tdragStop: function( draggable, event ) {\n\t\tdraggable.element.parentsUntil( \"body\" ).off( \"scroll.droppable\" );\n\n\t\t// Call prepareOffsets one final time since IE does not fire return scroll events when\n\t\t// overflow was caused by drag (see #5003)\n\t\tif ( !draggable.options.refreshPositions ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t}\n\t}\n};\n\n// DEPRECATED\n// TODO: switch return back to widget declaration at top of file when this is removed\nif ( $.uiBackCompat !== false ) {\n\n\t// Backcompat for activeClass and hoverClass options\n\t$.widget( \"ui.droppable\", $.ui.droppable, {\n\t\toptions: {\n\t\t\thoverClass: false,\n\t\t\tactiveClass: false\n\t\t},\n\t\t_addActiveClass: function() {\n\t\t\tthis._super();\n\t\t\tif ( this.options.activeClass ) {\n\t\t\t\tthis.element.addClass( this.options.activeClass );\n\t\t\t}\n\t\t},\n\t\t_removeActiveClass: function() {\n\t\t\tthis._super();\n\t\t\tif ( this.options.activeClass ) {\n\t\t\t\tthis.element.removeClass( this.options.activeClass );\n\t\t\t}\n\t\t},\n\t\t_addHoverClass: function() {\n\t\t\tthis._super();\n\t\t\tif ( this.options.hoverClass ) {\n\t\t\t\tthis.element.addClass( this.options.hoverClass );\n\t\t\t}\n\t\t},\n\t\t_removeHoverClass: function() {\n\t\t\tthis._super();\n\t\t\tif ( this.options.hoverClass ) {\n\t\t\t\tthis.element.removeClass( this.options.hoverClass );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nvar widgetsDroppable = $.ui.droppable;\n\n\n/*!\n * jQuery UI Progressbar 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Progressbar\n//>>group: Widgets\n// jscs:disable maximumLineLength\n//>>description: Displays a status indicator for loading state, standard percentage, and other progress indicators.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/progressbar/\n//>>demos: http://jqueryui.com/progressbar/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/progressbar.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsProgressbar = $.widget( \"ui.progressbar\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tclasses: {\n\t\t\t\"ui-progressbar\": \"ui-corner-all\",\n\t\t\t\"ui-progressbar-value\": \"ui-corner-left\",\n\t\t\t\"ui-progressbar-complete\": \"ui-corner-right\"\n\t\t},\n\t\tmax: 100,\n\t\tvalue: 0,\n\n\t\tchange: null,\n\t\tcomplete: null\n\t},\n\n\tmin: 0,\n\n\t_create: function() {\n\n\t\t// Constrain initial value\n\t\tthis.oldValue = this.options.value = this._constrainedValue();\n\n\t\tthis.element.attr( {\n\n\t\t\t// Only set static values; aria-valuenow and aria-valuemax are\n\t\t\t// set inside _refreshValue()\n\t\t\trole: \"progressbar\",\n\t\t\t\"aria-valuemin\": this.min\n\t\t} );\n\t\tthis._addClass( \"ui-progressbar\", \"ui-widget ui-widget-content\" );\n\n\t\tthis.valueDiv = $( \"<div>\" ).appendTo( this.element );\n\t\tthis._addClass( this.valueDiv, \"ui-progressbar-value\", \"ui-widget-header\" );\n\t\tthis._refreshValue();\n\t},\n\n\t_destroy: function() {\n\t\tthis.element.removeAttr( \"role aria-valuemin aria-valuemax aria-valuenow\" );\n\n\t\tthis.valueDiv.remove();\n\t},\n\n\tvalue: function( newValue ) {\n\t\tif ( newValue === undefined ) {\n\t\t\treturn this.options.value;\n\t\t}\n\n\t\tthis.options.value = this._constrainedValue( newValue );\n\t\tthis._refreshValue();\n\t},\n\n\t_constrainedValue: function( newValue ) {\n\t\tif ( newValue === undefined ) {\n\t\t\tnewValue = this.options.value;\n\t\t}\n\n\t\tthis.indeterminate = newValue === false;\n\n\t\t// Sanitize value\n\t\tif ( typeof newValue !== \"number\" ) {\n\t\t\tnewValue = 0;\n\t\t}\n\n\t\treturn this.indeterminate ? false :\n\t\t\tMath.min( this.options.max, Math.max( this.min, newValue ) );\n\t},\n\n\t_setOptions: function( options ) {\n\n\t\t// Ensure \"value\" option is set after other values (like max)\n\t\tvar value = options.value;\n\t\tdelete options.value;\n\n\t\tthis._super( options );\n\n\t\tthis.options.value = this._constrainedValue( value );\n\t\tthis._refreshValue();\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"max\" ) {\n\n\t\t\t// Don't allow a max less than min\n\t\t\tvalue = Math.max( this.min, value );\n\t\t}\n\t\tthis._super( key, value );\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", value );\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t},\n\n\t_percentage: function() {\n\t\treturn this.indeterminate ?\n\t\t\t100 :\n\t\t\t100 * ( this.options.value - this.min ) / ( this.options.max - this.min );\n\t},\n\n\t_refreshValue: function() {\n\t\tvar value = this.options.value,\n\t\t\tpercentage = this._percentage();\n\n\t\tthis.valueDiv\n\t\t\t.toggle( this.indeterminate || value > this.min )\n\t\t\t.width( percentage.toFixed( 0 ) + \"%\" );\n\n\t\tthis\n\t\t\t._toggleClass( this.valueDiv, \"ui-progressbar-complete\", null,\n\t\t\t\tvalue === this.options.max )\n\t\t\t._toggleClass( \"ui-progressbar-indeterminate\", null, this.indeterminate );\n\n\t\tif ( this.indeterminate ) {\n\t\t\tthis.element.removeAttr( \"aria-valuenow\" );\n\t\t\tif ( !this.overlayDiv ) {\n\t\t\t\tthis.overlayDiv = $( \"<div>\" ).appendTo( this.valueDiv );\n\t\t\t\tthis._addClass( this.overlayDiv, \"ui-progressbar-overlay\" );\n\t\t\t}\n\t\t} else {\n\t\t\tthis.element.attr( {\n\t\t\t\t\"aria-valuemax\": this.options.max,\n\t\t\t\t\"aria-valuenow\": value\n\t\t\t} );\n\t\t\tif ( this.overlayDiv ) {\n\t\t\t\tthis.overlayDiv.remove();\n\t\t\t\tthis.overlayDiv = null;\n\t\t\t}\n\t\t}\n\n\t\tif ( this.oldValue !== value ) {\n\t\t\tthis.oldValue = value;\n\t\t\tthis._trigger( \"change\" );\n\t\t}\n\t\tif ( value === this.options.max ) {\n\t\t\tthis._trigger( \"complete\" );\n\t\t}\n\t}\n} );\n\n\n/*!\n * jQuery UI Selectable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Selectable\n//>>group: Interactions\n//>>description: Allows groups of elements to be selected with the mouse.\n//>>docs: http://api.jqueryui.com/selectable/\n//>>demos: http://jqueryui.com/selectable/\n//>>css.structure: ../../themes/base/selectable.css\n\n\n\nvar widgetsSelectable = $.widget( \"ui.selectable\", $.ui.mouse, {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tappendTo: \"body\",\n\t\tautoRefresh: true,\n\t\tdistance: 0,\n\t\tfilter: \"*\",\n\t\ttolerance: \"touch\",\n\n\t\t// Callbacks\n\t\tselected: null,\n\t\tselecting: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tunselected: null,\n\t\tunselecting: null\n\t},\n\t_create: function() {\n\t\tvar that = this;\n\n\t\tthis._addClass( \"ui-selectable\" );\n\n\t\tthis.dragged = false;\n\n\t\t// Cache selectee children based on filter\n\t\tthis.refresh = function() {\n\t\t\tthat.elementPos = $( that.element[ 0 ] ).offset();\n\t\t\tthat.selectees = $( that.options.filter, that.element[ 0 ] );\n\t\t\tthat._addClass( that.selectees, \"ui-selectee\" );\n\t\t\tthat.selectees.each( function() {\n\t\t\t\tvar $this = $( this ),\n\t\t\t\t\tselecteeOffset = $this.offset(),\n\t\t\t\t\tpos = {\n\t\t\t\t\t\tleft: selecteeOffset.left - that.elementPos.left,\n\t\t\t\t\t\ttop: selecteeOffset.top - that.elementPos.top\n\t\t\t\t\t};\n\t\t\t\t$.data( this, \"selectable-item\", {\n\t\t\t\t\telement: this,\n\t\t\t\t\t$element: $this,\n\t\t\t\t\tleft: pos.left,\n\t\t\t\t\ttop: pos.top,\n\t\t\t\t\tright: pos.left + $this.outerWidth(),\n\t\t\t\t\tbottom: pos.top + $this.outerHeight(),\n\t\t\t\t\tstartselected: false,\n\t\t\t\t\tselected: $this.hasClass( \"ui-selected\" ),\n\t\t\t\t\tselecting: $this.hasClass( \"ui-selecting\" ),\n\t\t\t\t\tunselecting: $this.hasClass( \"ui-unselecting\" )\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t\tthis.refresh();\n\n\t\tthis._mouseInit();\n\n\t\tthis.helper = $( \"<div>\" );\n\t\tthis._addClass( this.helper, \"ui-selectable-helper\" );\n\t},\n\n\t_destroy: function() {\n\t\tthis.selectees.removeData( \"selectable-item\" );\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseStart: function( event ) {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tthis.opos = [ event.pageX, event.pageY ];\n\t\tthis.elementPos = $( this.element[ 0 ] ).offset();\n\n\t\tif ( this.options.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectees = $( options.filter, this.element[ 0 ] );\n\n\t\tthis._trigger( \"start\", event );\n\n\t\t$( options.appendTo ).append( this.helper );\n\n\t\t// position helper (lasso)\n\t\tthis.helper.css( {\n\t\t\t\"left\": event.pageX,\n\t\t\t\"top\": event.pageY,\n\t\t\t\"width\": 0,\n\t\t\t\"height\": 0\n\t\t} );\n\n\t\tif ( options.autoRefresh ) {\n\t\t\tthis.refresh();\n\t\t}\n\n\t\tthis.selectees.filter( \".ui-selected\" ).each( function() {\n\t\t\tvar selectee = $.data( this, \"selectable-item\" );\n\t\t\tselectee.startselected = true;\n\t\t\tif ( !event.metaKey && !event.ctrlKey ) {\n\t\t\t\tthat._removeClass( selectee.$element, \"ui-selected\" );\n\t\t\t\tselectee.selected = false;\n\t\t\t\tthat._addClass( selectee.$element, \"ui-unselecting\" );\n\t\t\t\tselectee.unselecting = true;\n\n\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\tthat._trigger( \"unselecting\", event, {\n\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t$( event.target ).parents().addBack().each( function() {\n\t\t\tvar doSelect,\n\t\t\t\tselectee = $.data( this, \"selectable-item\" );\n\t\t\tif ( selectee ) {\n\t\t\t\tdoSelect = ( !event.metaKey && !event.ctrlKey ) ||\n\t\t\t\t\t!selectee.$element.hasClass( \"ui-selected\" );\n\t\t\t\tthat._removeClass( selectee.$element, doSelect ? \"ui-unselecting\" : \"ui-selected\" )\n\t\t\t\t\t._addClass( selectee.$element, doSelect ? \"ui-selecting\" : \"ui-unselecting\" );\n\t\t\t\tselectee.unselecting = !doSelect;\n\t\t\t\tselectee.selecting = doSelect;\n\t\t\t\tselectee.selected = doSelect;\n\n\t\t\t\t// selectable (UN)SELECTING callback\n\t\t\t\tif ( doSelect ) {\n\t\t\t\t\tthat._trigger( \"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tthat._trigger( \"unselecting\", event, {\n\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\n\t},\n\n\t_mouseDrag: function( event ) {\n\n\t\tthis.dragged = true;\n\n\t\tif ( this.options.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tmp,\n\t\t\tthat = this,\n\t\t\toptions = this.options,\n\t\t\tx1 = this.opos[ 0 ],\n\t\t\ty1 = this.opos[ 1 ],\n\t\t\tx2 = event.pageX,\n\t\t\ty2 = event.pageY;\n\n\t\tif ( x1 > x2 ) { tmp = x2; x2 = x1; x1 = tmp; }\n\t\tif ( y1 > y2 ) { tmp = y2; y2 = y1; y1 = tmp; }\n\t\tthis.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );\n\n\t\tthis.selectees.each( function() {\n\t\t\tvar selectee = $.data( this, \"selectable-item\" ),\n\t\t\t\thit = false,\n\t\t\t\toffset = {};\n\n\t\t\t//prevent helper from being selected if appendTo: selectable\n\t\t\tif ( !selectee || selectee.element === that.element[ 0 ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toffset.left   = selectee.left   + that.elementPos.left;\n\t\t\toffset.right  = selectee.right  + that.elementPos.left;\n\t\t\toffset.top    = selectee.top    + that.elementPos.top;\n\t\t\toffset.bottom = selectee.bottom + that.elementPos.top;\n\n\t\t\tif ( options.tolerance === \"touch\" ) {\n\t\t\t\thit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||\n                    offset.bottom < y1 ) );\n\t\t\t} else if ( options.tolerance === \"fit\" ) {\n\t\t\t\thit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&\n                    offset.bottom < y2 );\n\t\t\t}\n\n\t\t\tif ( hit ) {\n\n\t\t\t\t// SELECT\n\t\t\t\tif ( selectee.selected ) {\n\t\t\t\t\tthat._removeClass( selectee.$element, \"ui-selected\" );\n\t\t\t\t\tselectee.selected = false;\n\t\t\t\t}\n\t\t\t\tif ( selectee.unselecting ) {\n\t\t\t\t\tthat._removeClass( selectee.$element, \"ui-unselecting\" );\n\t\t\t\t\tselectee.unselecting = false;\n\t\t\t\t}\n\t\t\t\tif ( !selectee.selecting ) {\n\t\t\t\t\tthat._addClass( selectee.$element, \"ui-selecting\" );\n\t\t\t\t\tselectee.selecting = true;\n\n\t\t\t\t\t// selectable SELECTING callback\n\t\t\t\t\tthat._trigger( \"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// UNSELECT\n\t\t\t\tif ( selectee.selecting ) {\n\t\t\t\t\tif ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {\n\t\t\t\t\t\tthat._removeClass( selectee.$element, \"ui-selecting\" );\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tthat._addClass( selectee.$element, \"ui-selected\" );\n\t\t\t\t\t\tselectee.selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthat._removeClass( selectee.$element, \"ui-selecting\" );\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tif ( selectee.startselected ) {\n\t\t\t\t\t\t\tthat._addClass( selectee.$element, \"ui-unselecting\" );\n\t\t\t\t\t\t\tselectee.unselecting = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger( \"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( selectee.selected ) {\n\t\t\t\t\tif ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {\n\t\t\t\t\t\tthat._removeClass( selectee.$element, \"ui-selected\" );\n\t\t\t\t\t\tselectee.selected = false;\n\n\t\t\t\t\t\tthat._addClass( selectee.$element, \"ui-unselecting\" );\n\t\t\t\t\t\tselectee.unselecting = true;\n\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger( \"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function( event ) {\n\t\tvar that = this;\n\n\t\tthis.dragged = false;\n\n\t\t$( \".ui-unselecting\", this.element[ 0 ] ).each( function() {\n\t\t\tvar selectee = $.data( this, \"selectable-item\" );\n\t\t\tthat._removeClass( selectee.$element, \"ui-unselecting\" );\n\t\t\tselectee.unselecting = false;\n\t\t\tselectee.startselected = false;\n\t\t\tthat._trigger( \"unselected\", event, {\n\t\t\t\tunselected: selectee.element\n\t\t\t} );\n\t\t} );\n\t\t$( \".ui-selecting\", this.element[ 0 ] ).each( function() {\n\t\t\tvar selectee = $.data( this, \"selectable-item\" );\n\t\t\tthat._removeClass( selectee.$element, \"ui-selecting\" )\n\t\t\t\t._addClass( selectee.$element, \"ui-selected\" );\n\t\t\tselectee.selecting = false;\n\t\t\tselectee.selected = true;\n\t\t\tselectee.startselected = true;\n\t\t\tthat._trigger( \"selected\", event, {\n\t\t\t\tselected: selectee.element\n\t\t\t} );\n\t\t} );\n\t\tthis._trigger( \"stop\", event );\n\n\t\tthis.helper.remove();\n\n\t\treturn false;\n\t}\n\n} );\n\n\n/*!\n * jQuery UI Selectmenu 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Selectmenu\n//>>group: Widgets\n// jscs:disable maximumLineLength\n//>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/selectmenu/\n//>>demos: http://jqueryui.com/selectmenu/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsSelectmenu = $.widget( \"ui.selectmenu\", [ $.ui.formResetMixin, {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<select>\",\n\toptions: {\n\t\tappendTo: null,\n\t\tclasses: {\n\t\t\t\"ui-selectmenu-button-open\": \"ui-corner-top\",\n\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-all\"\n\t\t},\n\t\tdisabled: null,\n\t\ticons: {\n\t\t\tbutton: \"ui-icon-triangle-1-s\"\n\t\t},\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"none\"\n\t\t},\n\t\twidth: false,\n\n\t\t// Callbacks\n\t\tchange: null,\n\t\tclose: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tselect: null\n\t},\n\n\t_create: function() {\n\t\tvar selectmenuId = this.element.uniqueId().attr( \"id\" );\n\t\tthis.ids = {\n\t\t\telement: selectmenuId,\n\t\t\tbutton: selectmenuId + \"-button\",\n\t\t\tmenu: selectmenuId + \"-menu\"\n\t\t};\n\n\t\tthis._drawButton();\n\t\tthis._drawMenu();\n\t\tthis._bindFormResetHandler();\n\n\t\tthis._rendered = false;\n\t\tthis.menuItems = $();\n\t},\n\n\t_drawButton: function() {\n\t\tvar icon,\n\t\t\tthat = this,\n\t\t\titem = this._parseOption(\n\t\t\t\tthis.element.find( \"option:selected\" ),\n\t\t\t\tthis.element[ 0 ].selectedIndex\n\t\t\t);\n\n\t\t// Associate existing label with the new button\n\t\tthis.labels = this.element.labels().attr( \"for\", this.ids.button );\n\t\tthis._on( this.labels, {\n\t\t\tclick: function( event ) {\n\t\t\t\tthis.button.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t} );\n\n\t\t// Hide original select element\n\t\tthis.element.hide();\n\n\t\t// Create button\n\t\tthis.button = $( \"<span>\", {\n\t\t\ttabindex: this.options.disabled ? -1 : 0,\n\t\t\tid: this.ids.button,\n\t\t\trole: \"combobox\",\n\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\"aria-autocomplete\": \"list\",\n\t\t\t\"aria-owns\": this.ids.menu,\n\t\t\t\"aria-haspopup\": \"true\",\n\t\t\ttitle: this.element.attr( \"title\" )\n\t\t} )\n\t\t\t.insertAfter( this.element );\n\n\t\tthis._addClass( this.button, \"ui-selectmenu-button ui-selectmenu-button-closed\",\n\t\t\t\"ui-button ui-widget\" );\n\n\t\ticon = $( \"<span>\" ).appendTo( this.button );\n\t\tthis._addClass( icon, \"ui-selectmenu-icon\", \"ui-icon \" + this.options.icons.button );\n\t\tthis.buttonItem = this._renderButtonItem( item )\n\t\t\t.appendTo( this.button );\n\n\t\tif ( this.options.width !== false ) {\n\t\t\tthis._resizeButton();\n\t\t}\n\n\t\tthis._on( this.button, this._buttonEvents );\n\t\tthis.button.one( \"focusin\", function() {\n\n\t\t\t// Delay rendering the menu items until the button receives focus.\n\t\t\t// The menu may have already been rendered via a programmatic open.\n\t\t\tif ( !that._rendered ) {\n\t\t\t\tthat._refreshMenu();\n\t\t\t}\n\t\t} );\n\t},\n\n\t_drawMenu: function() {\n\t\tvar that = this;\n\n\t\t// Create menu\n\t\tthis.menu = $( \"<ul>\", {\n\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\"aria-labelledby\": this.ids.button,\n\t\t\tid: this.ids.menu\n\t\t} );\n\n\t\t// Wrap menu\n\t\tthis.menuWrap = $( \"<div>\" ).append( this.menu );\n\t\tthis._addClass( this.menuWrap, \"ui-selectmenu-menu\", \"ui-front\" );\n\t\tthis.menuWrap.appendTo( this._appendTo() );\n\n\t\t// Initialize menu widget\n\t\tthis.menuInstance = this.menu\n\t\t\t.menu( {\n\t\t\t\tclasses: {\n\t\t\t\t\t\"ui-menu\": \"ui-corner-bottom\"\n\t\t\t\t},\n\t\t\t\trole: \"listbox\",\n\t\t\t\tselect: function( event, ui ) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// Support: IE8\n\t\t\t\t\t// If the item was selected via a click, the text selection\n\t\t\t\t\t// will be destroyed in IE\n\t\t\t\t\tthat._setSelection();\n\n\t\t\t\t\tthat._select( ui.item.data( \"ui-selectmenu-item\" ), event );\n\t\t\t\t},\n\t\t\t\tfocus: function( event, ui ) {\n\t\t\t\t\tvar item = ui.item.data( \"ui-selectmenu-item\" );\n\n\t\t\t\t\t// Prevent inital focus from firing and check if its a newly focused item\n\t\t\t\t\tif ( that.focusIndex != null && item.index !== that.focusIndex ) {\n\t\t\t\t\t\tthat._trigger( \"focus\", event, { item: item } );\n\t\t\t\t\t\tif ( !that.isOpen ) {\n\t\t\t\t\t\t\tthat._select( item, event );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthat.focusIndex = item.index;\n\n\t\t\t\t\tthat.button.attr( \"aria-activedescendant\",\n\t\t\t\t\t\tthat.menuItems.eq( item.index ).attr( \"id\" ) );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.menu( \"instance\" );\n\n\t\t// Don't close the menu on mouseleave\n\t\tthis.menuInstance._off( this.menu, \"mouseleave\" );\n\n\t\t// Cancel the menu's collapseAll on document click\n\t\tthis.menuInstance._closeOnDocumentClick = function() {\n\t\t\treturn false;\n\t\t};\n\n\t\t// Selects often contain empty items, but never contain dividers\n\t\tthis.menuInstance._isDivider = function() {\n\t\t\treturn false;\n\t\t};\n\t},\n\n\trefresh: function() {\n\t\tthis._refreshMenu();\n\t\tthis.buttonItem.replaceWith(\n\t\t\tthis.buttonItem = this._renderButtonItem(\n\n\t\t\t\t// Fall back to an empty object in case there are no options\n\t\t\t\tthis._getSelectedItem().data( \"ui-selectmenu-item\" ) || {}\n\t\t\t)\n\t\t);\n\t\tif ( this.options.width === null ) {\n\t\t\tthis._resizeButton();\n\t\t}\n\t},\n\n\t_refreshMenu: function() {\n\t\tvar item,\n\t\t\toptions = this.element.find( \"option\" );\n\n\t\tthis.menu.empty();\n\n\t\tthis._parseOptions( options );\n\t\tthis._renderMenu( this.menu, this.items );\n\n\t\tthis.menuInstance.refresh();\n\t\tthis.menuItems = this.menu.find( \"li\" )\n\t\t\t.not( \".ui-selectmenu-optgroup\" )\n\t\t\t\t.find( \".ui-menu-item-wrapper\" );\n\n\t\tthis._rendered = true;\n\n\t\tif ( !options.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\titem = this._getSelectedItem();\n\n\t\t// Update the menu to have the correct item focused\n\t\tthis.menuInstance.focus( null, item );\n\t\tthis._setAria( item.data( \"ui-selectmenu-item\" ) );\n\n\t\t// Set disabled state\n\t\tthis._setOption( \"disabled\", this.element.prop( \"disabled\" ) );\n\t},\n\n\topen: function( event ) {\n\t\tif ( this.options.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If this is the first time the menu is being opened, render the items\n\t\tif ( !this._rendered ) {\n\t\t\tthis._refreshMenu();\n\t\t} else {\n\n\t\t\t// Menu clears focus on close, reset focus to selected item\n\t\t\tthis._removeClass( this.menu.find( \".ui-state-active\" ), null, \"ui-state-active\" );\n\t\t\tthis.menuInstance.focus( null, this._getSelectedItem() );\n\t\t}\n\n\t\t// If there are no options, don't open the menu\n\t\tif ( !this.menuItems.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isOpen = true;\n\t\tthis._toggleAttr();\n\t\tthis._resizeMenu();\n\t\tthis._position();\n\n\t\tthis._on( this.document, this._documentClick );\n\n\t\tthis._trigger( \"open\", event );\n\t},\n\n\t_position: function() {\n\t\tthis.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );\n\t},\n\n\tclose: function( event ) {\n\t\tif ( !this.isOpen ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isOpen = false;\n\t\tthis._toggleAttr();\n\n\t\tthis.range = null;\n\t\tthis._off( this.document );\n\n\t\tthis._trigger( \"close\", event );\n\t},\n\n\twidget: function() {\n\t\treturn this.button;\n\t},\n\n\tmenuWidget: function() {\n\t\treturn this.menu;\n\t},\n\n\t_renderButtonItem: function( item ) {\n\t\tvar buttonItem = $( \"<span>\" );\n\n\t\tthis._setText( buttonItem, item.label );\n\t\tthis._addClass( buttonItem, \"ui-selectmenu-text\" );\n\n\t\treturn buttonItem;\n\t},\n\n\t_renderMenu: function( ul, items ) {\n\t\tvar that = this,\n\t\t\tcurrentOptgroup = \"\";\n\n\t\t$.each( items, function( index, item ) {\n\t\t\tvar li;\n\n\t\t\tif ( item.optgroup !== currentOptgroup ) {\n\t\t\t\tli = $( \"<li>\", {\n\t\t\t\t\ttext: item.optgroup\n\t\t\t\t} );\n\t\t\t\tthat._addClass( li, \"ui-selectmenu-optgroup\", \"ui-menu-divider\" +\n\t\t\t\t\t( item.element.parent( \"optgroup\" ).prop( \"disabled\" ) ?\n\t\t\t\t\t\t\" ui-state-disabled\" :\n\t\t\t\t\t\t\"\" ) );\n\n\t\t\t\tli.appendTo( ul );\n\n\t\t\t\tcurrentOptgroup = item.optgroup;\n\t\t\t}\n\n\t\t\tthat._renderItemData( ul, item );\n\t\t} );\n\t},\n\n\t_renderItemData: function( ul, item ) {\n\t\treturn this._renderItem( ul, item ).data( \"ui-selectmenu-item\", item );\n\t},\n\n\t_renderItem: function( ul, item ) {\n\t\tvar li = $( \"<li>\" ),\n\t\t\twrapper = $( \"<div>\", {\n\t\t\t\ttitle: item.element.attr( \"title\" )\n\t\t\t} );\n\n\t\tif ( item.disabled ) {\n\t\t\tthis._addClass( li, null, \"ui-state-disabled\" );\n\t\t}\n\t\tthis._setText( wrapper, item.label );\n\n\t\treturn li.append( wrapper ).appendTo( ul );\n\t},\n\n\t_setText: function( element, value ) {\n\t\tif ( value ) {\n\t\t\telement.text( value );\n\t\t} else {\n\t\t\telement.html( \"&#160;\" );\n\t\t}\n\t},\n\n\t_move: function( direction, event ) {\n\t\tvar item, next,\n\t\t\tfilter = \".ui-menu-item\";\n\n\t\tif ( this.isOpen ) {\n\t\t\titem = this.menuItems.eq( this.focusIndex ).parent( \"li\" );\n\t\t} else {\n\t\t\titem = this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( \"li\" );\n\t\t\tfilter += \":not(.ui-state-disabled)\";\n\t\t}\n\n\t\tif ( direction === \"first\" || direction === \"last\" ) {\n\t\t\tnext = item[ direction === \"first\" ? \"prevAll\" : \"nextAll\" ]( filter ).eq( -1 );\n\t\t} else {\n\t\t\tnext = item[ direction + \"All\" ]( filter ).eq( 0 );\n\t\t}\n\n\t\tif ( next.length ) {\n\t\t\tthis.menuInstance.focus( event, next );\n\t\t}\n\t},\n\n\t_getSelectedItem: function() {\n\t\treturn this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( \"li\" );\n\t},\n\n\t_toggle: function( event ) {\n\t\tthis[ this.isOpen ? \"close\" : \"open\" ]( event );\n\t},\n\n\t_setSelection: function() {\n\t\tvar selection;\n\n\t\tif ( !this.range ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( window.getSelection ) {\n\t\t\tselection = window.getSelection();\n\t\t\tselection.removeAllRanges();\n\t\t\tselection.addRange( this.range );\n\n\t\t// Support: IE8\n\t\t} else {\n\t\t\tthis.range.select();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Setting the text selection kills the button focus in IE, but\n\t\t// restoring the focus doesn't kill the selection.\n\t\tthis.button.focus();\n\t},\n\n\t_documentClick: {\n\t\tmousedown: function( event ) {\n\t\t\tif ( !this.isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( !$( event.target ).closest( \".ui-selectmenu-menu, #\" +\n\t\t\t\t\t$.ui.escapeSelector( this.ids.button ) ).length ) {\n\t\t\t\tthis.close( event );\n\t\t\t}\n\t\t}\n\t},\n\n\t_buttonEvents: {\n\n\t\t// Prevent text selection from being reset when interacting with the selectmenu (#10144)\n\t\tmousedown: function() {\n\t\t\tvar selection;\n\n\t\t\tif ( window.getSelection ) {\n\t\t\t\tselection = window.getSelection();\n\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\tthis.range = selection.getRangeAt( 0 );\n\t\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t} else {\n\t\t\t\tthis.range = document.selection.createRange();\n\t\t\t}\n\t\t},\n\n\t\tclick: function( event ) {\n\t\t\tthis._setSelection();\n\t\t\tthis._toggle( event );\n\t\t},\n\n\t\tkeydown: function( event ) {\n\t\t\tvar preventDefault = true;\n\t\t\tswitch ( event.keyCode ) {\n\t\t\tcase $.ui.keyCode.TAB:\n\t\t\tcase $.ui.keyCode.ESCAPE:\n\t\t\t\tthis.close( event );\n\t\t\t\tpreventDefault = false;\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.ENTER:\n\t\t\t\tif ( this.isOpen ) {\n\t\t\t\t\tthis._selectFocusedItem( event );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\tif ( event.altKey ) {\n\t\t\t\t\tthis._toggle( event );\n\t\t\t\t} else {\n\t\t\t\t\tthis._move( \"prev\", event );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tif ( event.altKey ) {\n\t\t\t\t\tthis._toggle( event );\n\t\t\t\t} else {\n\t\t\t\t\tthis._move( \"next\", event );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.SPACE:\n\t\t\t\tif ( this.isOpen ) {\n\t\t\t\t\tthis._selectFocusedItem( event );\n\t\t\t\t} else {\n\t\t\t\t\tthis._toggle( event );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\tthis._move( \"prev\", event );\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\tthis._move( \"next\", event );\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.HOME:\n\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\tthis._move( \"first\", event );\n\t\t\t\tbreak;\n\t\t\tcase $.ui.keyCode.END:\n\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\tthis._move( \"last\", event );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.menu.trigger( event );\n\t\t\t\tpreventDefault = false;\n\t\t\t}\n\n\t\t\tif ( preventDefault ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t},\n\n\t_selectFocusedItem: function( event ) {\n\t\tvar item = this.menuItems.eq( this.focusIndex ).parent( \"li\" );\n\t\tif ( !item.hasClass( \"ui-state-disabled\" ) ) {\n\t\t\tthis._select( item.data( \"ui-selectmenu-item\" ), event );\n\t\t}\n\t},\n\n\t_select: function( item, event ) {\n\t\tvar oldIndex = this.element[ 0 ].selectedIndex;\n\n\t\t// Change native select element\n\t\tthis.element[ 0 ].selectedIndex = item.index;\n\t\tthis.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );\n\t\tthis._setAria( item );\n\t\tthis._trigger( \"select\", event, { item: item } );\n\n\t\tif ( item.index !== oldIndex ) {\n\t\t\tthis._trigger( \"change\", event, { item: item } );\n\t\t}\n\n\t\tthis.close( event );\n\t},\n\n\t_setAria: function( item ) {\n\t\tvar id = this.menuItems.eq( item.index ).attr( \"id\" );\n\n\t\tthis.button.attr( {\n\t\t\t\"aria-labelledby\": id,\n\t\t\t\"aria-activedescendant\": id\n\t\t} );\n\t\tthis.menu.attr( \"aria-activedescendant\", id );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icons\" ) {\n\t\t\tvar icon = this.button.find( \"span.ui-icon\" );\n\t\t\tthis._removeClass( icon, null, this.options.icons.button )\n\t\t\t\t._addClass( icon, null, value.button );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"appendTo\" ) {\n\t\t\tthis.menuWrap.appendTo( this._appendTo() );\n\t\t}\n\n\t\tif ( key === \"width\" ) {\n\t\t\tthis._resizeButton();\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.menuInstance.option( \"disabled\", value );\n\t\tthis.button.attr( \"aria-disabled\", value );\n\t\tthis._toggleClass( this.button, null, \"ui-state-disabled\", value );\n\n\t\tthis.element.prop( \"disabled\", value );\n\t\tif ( value ) {\n\t\t\tthis.button.attr( \"tabindex\", -1 );\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.button.attr( \"tabindex\", 0 );\n\t\t}\n\t},\n\n\t_appendTo: function() {\n\t\tvar element = this.options.appendTo;\n\n\t\tif ( element ) {\n\t\t\telement = element.jquery || element.nodeType ?\n\t\t\t\t$( element ) :\n\t\t\t\tthis.document.find( element ).eq( 0 );\n\t\t}\n\n\t\tif ( !element || !element[ 0 ] ) {\n\t\t\telement = this.element.closest( \".ui-front, dialog\" );\n\t\t}\n\n\t\tif ( !element.length ) {\n\t\t\telement = this.document[ 0 ].body;\n\t\t}\n\n\t\treturn element;\n\t},\n\n\t_toggleAttr: function() {\n\t\tthis.button.attr( \"aria-expanded\", this.isOpen );\n\n\t\t// We can't use two _toggleClass() calls here, because we need to make sure\n\t\t// we always remove classes first and add them second, otherwise if both classes have the\n\t\t// same theme class, it will be removed after we add it.\n\t\tthis._removeClass( this.button, \"ui-selectmenu-button-\" +\n\t\t\t( this.isOpen ? \"closed\" : \"open\" ) )\n\t\t\t._addClass( this.button, \"ui-selectmenu-button-\" +\n\t\t\t\t( this.isOpen ? \"open\" : \"closed\" ) )\n\t\t\t._toggleClass( this.menuWrap, \"ui-selectmenu-open\", null, this.isOpen );\n\n\t\tthis.menu.attr( \"aria-hidden\", !this.isOpen );\n\t},\n\n\t_resizeButton: function() {\n\t\tvar width = this.options.width;\n\n\t\t// For `width: false`, just remove inline style and stop\n\t\tif ( width === false ) {\n\t\t\tthis.button.css( \"width\", \"\" );\n\t\t\treturn;\n\t\t}\n\n\t\t// For `width: null`, match the width of the original element\n\t\tif ( width === null ) {\n\t\t\twidth = this.element.show().outerWidth();\n\t\t\tthis.element.hide();\n\t\t}\n\n\t\tthis.button.outerWidth( width );\n\t},\n\n\t_resizeMenu: function() {\n\t\tthis.menu.outerWidth( Math.max(\n\t\t\tthis.button.outerWidth(),\n\n\t\t\t// Support: IE10\n\t\t\t// IE10 wraps long text (possibly a rounding bug)\n\t\t\t// so we add 1px to avoid the wrapping\n\t\t\tthis.menu.width( \"\" ).outerWidth() + 1\n\t\t) );\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar options = this._super();\n\n\t\toptions.disabled = this.element.prop( \"disabled\" );\n\n\t\treturn options;\n\t},\n\n\t_parseOptions: function( options ) {\n\t\tvar that = this,\n\t\t\tdata = [];\n\t\toptions.each( function( index, item ) {\n\t\t\tdata.push( that._parseOption( $( item ), index ) );\n\t\t} );\n\t\tthis.items = data;\n\t},\n\n\t_parseOption: function( option, index ) {\n\t\tvar optgroup = option.parent( \"optgroup\" );\n\n\t\treturn {\n\t\t\telement: option,\n\t\t\tindex: index,\n\t\t\tvalue: option.val(),\n\t\t\tlabel: option.text(),\n\t\t\toptgroup: optgroup.attr( \"label\" ) || \"\",\n\t\t\tdisabled: optgroup.prop( \"disabled\" ) || option.prop( \"disabled\" )\n\t\t};\n\t},\n\n\t_destroy: function() {\n\t\tthis._unbindFormResetHandler();\n\t\tthis.menuWrap.remove();\n\t\tthis.button.remove();\n\t\tthis.element.show();\n\t\tthis.element.removeUniqueId();\n\t\tthis.labels.attr( \"for\", this.ids.element );\n\t}\n} ] );\n\n\n/*!\n * jQuery UI Slider 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Slider\n//>>group: Widgets\n//>>description: Displays a flexible slider with ranges and accessibility via keyboard.\n//>>docs: http://api.jqueryui.com/slider/\n//>>demos: http://jqueryui.com/slider/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/slider.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsSlider = $.widget( \"ui.slider\", $.ui.mouse, {\n\tversion: \"1.12.1\",\n\twidgetEventPrefix: \"slide\",\n\n\toptions: {\n\t\tanimate: false,\n\t\tclasses: {\n\t\t\t\"ui-slider\": \"ui-corner-all\",\n\t\t\t\"ui-slider-handle\": \"ui-corner-all\",\n\n\t\t\t// Note: ui-widget-header isn't the most fittingly semantic framework class for this\n\t\t\t// element, but worked best visually with a variety of themes\n\t\t\t\"ui-slider-range\": \"ui-corner-all ui-widget-header\"\n\t\t},\n\t\tdistance: 0,\n\t\tmax: 100,\n\t\tmin: 0,\n\t\torientation: \"horizontal\",\n\t\trange: false,\n\t\tstep: 1,\n\t\tvalue: 0,\n\t\tvalues: null,\n\n\t\t// Callbacks\n\t\tchange: null,\n\t\tslide: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t// Number of pages in a slider\n\t// (how many times can you page up/down to go through the whole range)\n\tnumPages: 5,\n\n\t_create: function() {\n\t\tthis._keySliding = false;\n\t\tthis._mouseSliding = false;\n\t\tthis._animateOff = true;\n\t\tthis._handleIndex = null;\n\t\tthis._detectOrientation();\n\t\tthis._mouseInit();\n\t\tthis._calculateNewMax();\n\n\t\tthis._addClass( \"ui-slider ui-slider-\" + this.orientation,\n\t\t\t\"ui-widget ui-widget-content\" );\n\n\t\tthis._refresh();\n\n\t\tthis._animateOff = false;\n\t},\n\n\t_refresh: function() {\n\t\tthis._createRange();\n\t\tthis._createHandles();\n\t\tthis._setupEvents();\n\t\tthis._refreshValue();\n\t},\n\n\t_createHandles: function() {\n\t\tvar i, handleCount,\n\t\t\toptions = this.options,\n\t\t\texistingHandles = this.element.find( \".ui-slider-handle\" ),\n\t\t\thandle = \"<span tabindex='0'></span>\",\n\t\t\thandles = [];\n\n\t\thandleCount = ( options.values && options.values.length ) || 1;\n\n\t\tif ( existingHandles.length > handleCount ) {\n\t\t\texistingHandles.slice( handleCount ).remove();\n\t\t\texistingHandles = existingHandles.slice( 0, handleCount );\n\t\t}\n\n\t\tfor ( i = existingHandles.length; i < handleCount; i++ ) {\n\t\t\thandles.push( handle );\n\t\t}\n\n\t\tthis.handles = existingHandles.add( $( handles.join( \"\" ) ).appendTo( this.element ) );\n\n\t\tthis._addClass( this.handles, \"ui-slider-handle\", \"ui-state-default\" );\n\n\t\tthis.handle = this.handles.eq( 0 );\n\n\t\tthis.handles.each( function( i ) {\n\t\t\t$( this )\n\t\t\t\t.data( \"ui-slider-handle-index\", i )\n\t\t\t\t.attr( \"tabIndex\", 0 );\n\t\t} );\n\t},\n\n\t_createRange: function() {\n\t\tvar options = this.options;\n\n\t\tif ( options.range ) {\n\t\t\tif ( options.range === true ) {\n\t\t\t\tif ( !options.values ) {\n\t\t\t\t\toptions.values = [ this._valueMin(), this._valueMin() ];\n\t\t\t\t} else if ( options.values.length && options.values.length !== 2 ) {\n\t\t\t\t\toptions.values = [ options.values[ 0 ], options.values[ 0 ] ];\n\t\t\t\t} else if ( $.isArray( options.values ) ) {\n\t\t\t\t\toptions.values = options.values.slice( 0 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( !this.range || !this.range.length ) {\n\t\t\t\tthis.range = $( \"<div>\" )\n\t\t\t\t\t.appendTo( this.element );\n\n\t\t\t\tthis._addClass( this.range, \"ui-slider-range\" );\n\t\t\t} else {\n\t\t\t\tthis._removeClass( this.range, \"ui-slider-range-min ui-slider-range-max\" );\n\n\t\t\t\t// Handle range switching from true to min/max\n\t\t\t\tthis.range.css( {\n\t\t\t\t\t\"left\": \"\",\n\t\t\t\t\t\"bottom\": \"\"\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( options.range === \"min\" || options.range === \"max\" ) {\n\t\t\t\tthis._addClass( this.range, \"ui-slider-range-\" + options.range );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( this.range ) {\n\t\t\t\tthis.range.remove();\n\t\t\t}\n\t\t\tthis.range = null;\n\t\t}\n\t},\n\n\t_setupEvents: function() {\n\t\tthis._off( this.handles );\n\t\tthis._on( this.handles, this._handleEvents );\n\t\tthis._hoverable( this.handles );\n\t\tthis._focusable( this.handles );\n\t},\n\n\t_destroy: function() {\n\t\tthis.handles.remove();\n\t\tif ( this.range ) {\n\t\t\tthis.range.remove();\n\t\t}\n\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function( event ) {\n\t\tvar position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,\n\t\t\tthat = this,\n\t\t\to = this.options;\n\n\t\tif ( o.disabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.elementSize = {\n\t\t\twidth: this.element.outerWidth(),\n\t\t\theight: this.element.outerHeight()\n\t\t};\n\t\tthis.elementOffset = this.element.offset();\n\n\t\tposition = { x: event.pageX, y: event.pageY };\n\t\tnormValue = this._normValueFromMouse( position );\n\t\tdistance = this._valueMax() - this._valueMin() + 1;\n\t\tthis.handles.each( function( i ) {\n\t\t\tvar thisDistance = Math.abs( normValue - that.values( i ) );\n\t\t\tif ( ( distance > thisDistance ) ||\n\t\t\t\t( distance === thisDistance &&\n\t\t\t\t\t( i === that._lastChangedValue || that.values( i ) === o.min ) ) ) {\n\t\t\t\tdistance = thisDistance;\n\t\t\t\tclosestHandle = $( this );\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t} );\n\n\t\tallowed = this._start( event, index );\n\t\tif ( allowed === false ) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._mouseSliding = true;\n\n\t\tthis._handleIndex = index;\n\n\t\tthis._addClass( closestHandle, null, \"ui-state-active\" );\n\t\tclosestHandle.trigger( \"focus\" );\n\n\t\toffset = closestHandle.offset();\n\t\tmouseOverHandle = !$( event.target ).parents().addBack().is( \".ui-slider-handle\" );\n\t\tthis._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {\n\t\t\tleft: event.pageX - offset.left - ( closestHandle.width() / 2 ),\n\t\t\ttop: event.pageY - offset.top -\n\t\t\t\t( closestHandle.height() / 2 ) -\n\t\t\t\t( parseInt( closestHandle.css( \"borderTopWidth\" ), 10 ) || 0 ) -\n\t\t\t\t( parseInt( closestHandle.css( \"borderBottomWidth\" ), 10 ) || 0 ) +\n\t\t\t\t( parseInt( closestHandle.css( \"marginTop\" ), 10 ) || 0 )\n\t\t};\n\n\t\tif ( !this.handles.hasClass( \"ui-state-hover\" ) ) {\n\t\t\tthis._slide( event, index, normValue );\n\t\t}\n\t\tthis._animateOff = true;\n\t\treturn true;\n\t},\n\n\t_mouseStart: function() {\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar position = { x: event.pageX, y: event.pageY },\n\t\t\tnormValue = this._normValueFromMouse( position );\n\n\t\tthis._slide( event, this._handleIndex, normValue );\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function( event ) {\n\t\tthis._removeClass( this.handles, null, \"ui-state-active\" );\n\t\tthis._mouseSliding = false;\n\n\t\tthis._stop( event, this._handleIndex );\n\t\tthis._change( event, this._handleIndex );\n\n\t\tthis._handleIndex = null;\n\t\tthis._clickOffset = null;\n\t\tthis._animateOff = false;\n\n\t\treturn false;\n\t},\n\n\t_detectOrientation: function() {\n\t\tthis.orientation = ( this.options.orientation === \"vertical\" ) ? \"vertical\" : \"horizontal\";\n\t},\n\n\t_normValueFromMouse: function( position ) {\n\t\tvar pixelTotal,\n\t\t\tpixelMouse,\n\t\t\tpercentMouse,\n\t\t\tvalueTotal,\n\t\t\tvalueMouse;\n\n\t\tif ( this.orientation === \"horizontal\" ) {\n\t\t\tpixelTotal = this.elementSize.width;\n\t\t\tpixelMouse = position.x - this.elementOffset.left -\n\t\t\t\t( this._clickOffset ? this._clickOffset.left : 0 );\n\t\t} else {\n\t\t\tpixelTotal = this.elementSize.height;\n\t\t\tpixelMouse = position.y - this.elementOffset.top -\n\t\t\t\t( this._clickOffset ? this._clickOffset.top : 0 );\n\t\t}\n\n\t\tpercentMouse = ( pixelMouse / pixelTotal );\n\t\tif ( percentMouse > 1 ) {\n\t\t\tpercentMouse = 1;\n\t\t}\n\t\tif ( percentMouse < 0 ) {\n\t\t\tpercentMouse = 0;\n\t\t}\n\t\tif ( this.orientation === \"vertical\" ) {\n\t\t\tpercentMouse = 1 - percentMouse;\n\t\t}\n\n\t\tvalueTotal = this._valueMax() - this._valueMin();\n\t\tvalueMouse = this._valueMin() + percentMouse * valueTotal;\n\n\t\treturn this._trimAlignValue( valueMouse );\n\t},\n\n\t_uiHash: function( index, value, values ) {\n\t\tvar uiHash = {\n\t\t\thandle: this.handles[ index ],\n\t\t\thandleIndex: index,\n\t\t\tvalue: value !== undefined ? value : this.value()\n\t\t};\n\n\t\tif ( this._hasMultipleValues() ) {\n\t\t\tuiHash.value = value !== undefined ? value : this.values( index );\n\t\t\tuiHash.values = values || this.values();\n\t\t}\n\n\t\treturn uiHash;\n\t},\n\n\t_hasMultipleValues: function() {\n\t\treturn this.options.values && this.options.values.length;\n\t},\n\n\t_start: function( event, index ) {\n\t\treturn this._trigger( \"start\", event, this._uiHash( index ) );\n\t},\n\n\t_slide: function( event, index, newVal ) {\n\t\tvar allowed, otherVal,\n\t\t\tcurrentValue = this.value(),\n\t\t\tnewValues = this.values();\n\n\t\tif ( this._hasMultipleValues() ) {\n\t\t\totherVal = this.values( index ? 0 : 1 );\n\t\t\tcurrentValue = this.values( index );\n\n\t\t\tif ( this.options.values.length === 2 && this.options.range === true ) {\n\t\t\t\tnewVal =  index === 0 ? Math.min( otherVal, newVal ) : Math.max( otherVal, newVal );\n\t\t\t}\n\n\t\t\tnewValues[ index ] = newVal;\n\t\t}\n\n\t\tif ( newVal === currentValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\tallowed = this._trigger( \"slide\", event, this._uiHash( index, newVal, newValues ) );\n\n\t\t// A slide can be canceled by returning false from the slide callback\n\t\tif ( allowed === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this._hasMultipleValues() ) {\n\t\t\tthis.values( index, newVal );\n\t\t} else {\n\t\t\tthis.value( newVal );\n\t\t}\n\t},\n\n\t_stop: function( event, index ) {\n\t\tthis._trigger( \"stop\", event, this._uiHash( index ) );\n\t},\n\n\t_change: function( event, index ) {\n\t\tif ( !this._keySliding && !this._mouseSliding ) {\n\n\t\t\t//store the last changed value index for reference when handles overlap\n\t\t\tthis._lastChangedValue = index;\n\t\t\tthis._trigger( \"change\", event, this._uiHash( index ) );\n\t\t}\n\t},\n\n\tvalue: function( newValue ) {\n\t\tif ( arguments.length ) {\n\t\t\tthis.options.value = this._trimAlignValue( newValue );\n\t\t\tthis._refreshValue();\n\t\t\tthis._change( null, 0 );\n\t\t\treturn;\n\t\t}\n\n\t\treturn this._value();\n\t},\n\n\tvalues: function( index, newValue ) {\n\t\tvar vals,\n\t\t\tnewValues,\n\t\t\ti;\n\n\t\tif ( arguments.length > 1 ) {\n\t\t\tthis.options.values[ index ] = this._trimAlignValue( newValue );\n\t\t\tthis._refreshValue();\n\t\t\tthis._change( null, index );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( arguments.length ) {\n\t\t\tif ( $.isArray( arguments[ 0 ] ) ) {\n\t\t\t\tvals = this.options.values;\n\t\t\t\tnewValues = arguments[ 0 ];\n\t\t\t\tfor ( i = 0; i < vals.length; i += 1 ) {\n\t\t\t\t\tvals[ i ] = this._trimAlignValue( newValues[ i ] );\n\t\t\t\t\tthis._change( null, i );\n\t\t\t\t}\n\t\t\t\tthis._refreshValue();\n\t\t\t} else {\n\t\t\t\tif ( this._hasMultipleValues() ) {\n\t\t\t\t\treturn this._values( index );\n\t\t\t\t} else {\n\t\t\t\t\treturn this.value();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._values();\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar i,\n\t\t\tvalsLength = 0;\n\n\t\tif ( key === \"range\" && this.options.range === true ) {\n\t\t\tif ( value === \"min\" ) {\n\t\t\t\tthis.options.value = this._values( 0 );\n\t\t\t\tthis.options.values = null;\n\t\t\t} else if ( value === \"max\" ) {\n\t\t\t\tthis.options.value = this._values( this.options.values.length - 1 );\n\t\t\t\tthis.options.values = null;\n\t\t\t}\n\t\t}\n\n\t\tif ( $.isArray( this.options.values ) ) {\n\t\t\tvalsLength = this.options.values.length;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tswitch ( key ) {\n\t\t\tcase \"orientation\":\n\t\t\t\tthis._detectOrientation();\n\t\t\t\tthis._removeClass( \"ui-slider-horizontal ui-slider-vertical\" )\n\t\t\t\t\t._addClass( \"ui-slider-\" + this.orientation );\n\t\t\t\tthis._refreshValue();\n\t\t\t\tif ( this.options.range ) {\n\t\t\t\t\tthis._refreshRange( value );\n\t\t\t\t}\n\n\t\t\t\t// Reset positioning from previous orientation\n\t\t\t\tthis.handles.css( value === \"horizontal\" ? \"bottom\" : \"left\", \"\" );\n\t\t\t\tbreak;\n\t\t\tcase \"value\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refreshValue();\n\t\t\t\tthis._change( null, 0 );\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"values\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refreshValue();\n\n\t\t\t\t// Start from the last handle to prevent unreachable handles (#9046)\n\t\t\t\tfor ( i = valsLength - 1; i >= 0; i-- ) {\n\t\t\t\t\tthis._change( null, i );\n\t\t\t\t}\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"step\":\n\t\t\tcase \"min\":\n\t\t\tcase \"max\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._calculateNewMax();\n\t\t\t\tthis._refreshValue();\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t\tcase \"range\":\n\t\t\t\tthis._animateOff = true;\n\t\t\t\tthis._refresh();\n\t\t\t\tthis._animateOff = false;\n\t\t\t\tbreak;\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t},\n\n\t//internal value getter\n\t// _value() returns value trimmed by min and max, aligned by step\n\t_value: function() {\n\t\tvar val = this.options.value;\n\t\tval = this._trimAlignValue( val );\n\n\t\treturn val;\n\t},\n\n\t//internal values getter\n\t// _values() returns array of values trimmed by min and max, aligned by step\n\t// _values( index ) returns single value trimmed by min and max, aligned by step\n\t_values: function( index ) {\n\t\tvar val,\n\t\t\tvals,\n\t\t\ti;\n\n\t\tif ( arguments.length ) {\n\t\t\tval = this.options.values[ index ];\n\t\t\tval = this._trimAlignValue( val );\n\n\t\t\treturn val;\n\t\t} else if ( this._hasMultipleValues() ) {\n\n\t\t\t// .slice() creates a copy of the array\n\t\t\t// this copy gets trimmed by min and max and then returned\n\t\t\tvals = this.options.values.slice();\n\t\t\tfor ( i = 0; i < vals.length; i += 1 ) {\n\t\t\t\tvals[ i ] = this._trimAlignValue( vals[ i ] );\n\t\t\t}\n\n\t\t\treturn vals;\n\t\t} else {\n\t\t\treturn [];\n\t\t}\n\t},\n\n\t// Returns the step-aligned value that val is closest to, between (inclusive) min and max\n\t_trimAlignValue: function( val ) {\n\t\tif ( val <= this._valueMin() ) {\n\t\t\treturn this._valueMin();\n\t\t}\n\t\tif ( val >= this._valueMax() ) {\n\t\t\treturn this._valueMax();\n\t\t}\n\t\tvar step = ( this.options.step > 0 ) ? this.options.step : 1,\n\t\t\tvalModStep = ( val - this._valueMin() ) % step,\n\t\t\talignValue = val - valModStep;\n\n\t\tif ( Math.abs( valModStep ) * 2 >= step ) {\n\t\t\talignValue += ( valModStep > 0 ) ? step : ( -step );\n\t\t}\n\n\t\t// Since JavaScript has problems with large floats, round\n\t\t// the final value to 5 digits after the decimal point (see #4124)\n\t\treturn parseFloat( alignValue.toFixed( 5 ) );\n\t},\n\n\t_calculateNewMax: function() {\n\t\tvar max = this.options.max,\n\t\t\tmin = this._valueMin(),\n\t\t\tstep = this.options.step,\n\t\t\taboveMin = Math.round( ( max - min ) / step ) * step;\n\t\tmax = aboveMin + min;\n\t\tif ( max > this.options.max ) {\n\n\t\t\t//If max is not divisible by step, rounding off may increase its value\n\t\t\tmax -= step;\n\t\t}\n\t\tthis.max = parseFloat( max.toFixed( this._precision() ) );\n\t},\n\n\t_precision: function() {\n\t\tvar precision = this._precisionOf( this.options.step );\n\t\tif ( this.options.min !== null ) {\n\t\t\tprecision = Math.max( precision, this._precisionOf( this.options.min ) );\n\t\t}\n\t\treturn precision;\n\t},\n\n\t_precisionOf: function( num ) {\n\t\tvar str = num.toString(),\n\t\t\tdecimal = str.indexOf( \".\" );\n\t\treturn decimal === -1 ? 0 : str.length - decimal - 1;\n\t},\n\n\t_valueMin: function() {\n\t\treturn this.options.min;\n\t},\n\n\t_valueMax: function() {\n\t\treturn this.max;\n\t},\n\n\t_refreshRange: function( orientation ) {\n\t\tif ( orientation === \"vertical\" ) {\n\t\t\tthis.range.css( { \"width\": \"\", \"left\": \"\" } );\n\t\t}\n\t\tif ( orientation === \"horizontal\" ) {\n\t\t\tthis.range.css( { \"height\": \"\", \"bottom\": \"\" } );\n\t\t}\n\t},\n\n\t_refreshValue: function() {\n\t\tvar lastValPercent, valPercent, value, valueMin, valueMax,\n\t\t\toRange = this.options.range,\n\t\t\to = this.options,\n\t\t\tthat = this,\n\t\t\tanimate = ( !this._animateOff ) ? o.animate : false,\n\t\t\t_set = {};\n\n\t\tif ( this._hasMultipleValues() ) {\n\t\t\tthis.handles.each( function( i ) {\n\t\t\t\tvalPercent = ( that.values( i ) - that._valueMin() ) / ( that._valueMax() -\n\t\t\t\t\tthat._valueMin() ) * 100;\n\t\t\t\t_set[ that.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\n\t\t\t\t$( this ).stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\n\t\t\t\tif ( that.options.range === true ) {\n\t\t\t\t\tif ( that.orientation === \"horizontal\" ) {\n\t\t\t\t\t\tif ( i === 0 ) {\n\t\t\t\t\t\t\tthat.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\t\t\t\tleft: valPercent + \"%\"\n\t\t\t\t\t\t\t}, o.animate );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( i === 1 ) {\n\t\t\t\t\t\t\tthat.range[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\t\t\t\twidth: ( valPercent - lastValPercent ) + \"%\"\n\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\tqueue: false,\n\t\t\t\t\t\t\t\tduration: o.animate\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( i === 0 ) {\n\t\t\t\t\t\t\tthat.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\t\t\t\tbottom: ( valPercent ) + \"%\"\n\t\t\t\t\t\t\t}, o.animate );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( i === 1 ) {\n\t\t\t\t\t\t\tthat.range[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\t\t\t\theight: ( valPercent - lastValPercent ) + \"%\"\n\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\tqueue: false,\n\t\t\t\t\t\t\t\tduration: o.animate\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastValPercent = valPercent;\n\t\t\t} );\n\t\t} else {\n\t\t\tvalue = this.value();\n\t\t\tvalueMin = this._valueMin();\n\t\t\tvalueMax = this._valueMax();\n\t\t\tvalPercent = ( valueMax !== valueMin ) ?\n\t\t\t\t\t( value - valueMin ) / ( valueMax - valueMin ) * 100 :\n\t\t\t\t\t0;\n\t\t\t_set[ this.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\n\t\t\tthis.handle.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\n\n\t\t\tif ( oRange === \"min\" && this.orientation === \"horizontal\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\twidth: valPercent + \"%\"\n\t\t\t\t}, o.animate );\n\t\t\t}\n\t\t\tif ( oRange === \"max\" && this.orientation === \"horizontal\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\twidth: ( 100 - valPercent ) + \"%\"\n\t\t\t\t}, o.animate );\n\t\t\t}\n\t\t\tif ( oRange === \"min\" && this.orientation === \"vertical\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\theight: valPercent + \"%\"\n\t\t\t\t}, o.animate );\n\t\t\t}\n\t\t\tif ( oRange === \"max\" && this.orientation === \"vertical\" ) {\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( {\n\t\t\t\t\theight: ( 100 - valPercent ) + \"%\"\n\t\t\t\t}, o.animate );\n\t\t\t}\n\t\t}\n\t},\n\n\t_handleEvents: {\n\t\tkeydown: function( event ) {\n\t\t\tvar allowed, curVal, newVal, step,\n\t\t\t\tindex = $( event.target ).data( \"ui-slider-handle-index\" );\n\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\tcase $.ui.keyCode.END:\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( !this._keySliding ) {\n\t\t\t\t\t\tthis._keySliding = true;\n\t\t\t\t\t\tthis._addClass( $( event.target ), null, \"ui-state-active\" );\n\t\t\t\t\t\tallowed = this._start( event, index );\n\t\t\t\t\t\tif ( allowed === false ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tstep = this.options.step;\n\t\t\tif ( this._hasMultipleValues() ) {\n\t\t\t\tcurVal = newVal = this.values( index );\n\t\t\t} else {\n\t\t\t\tcurVal = newVal = this.value();\n\t\t\t}\n\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase $.ui.keyCode.HOME:\n\t\t\t\t\tnewVal = this._valueMin();\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.END:\n\t\t\t\t\tnewVal = this._valueMax();\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.PAGE_UP:\n\t\t\t\t\tnewVal = this._trimAlignValue(\n\t\t\t\t\t\tcurVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\n\t\t\t\t\tnewVal = this._trimAlignValue(\n\t\t\t\t\t\tcurVal - ( ( this._valueMax() - this._valueMin() ) / this.numPages ) );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.UP:\n\t\t\t\tcase $.ui.keyCode.RIGHT:\n\t\t\t\t\tif ( curVal === this._valueMax() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = this._trimAlignValue( curVal + step );\n\t\t\t\t\tbreak;\n\t\t\t\tcase $.ui.keyCode.DOWN:\n\t\t\t\tcase $.ui.keyCode.LEFT:\n\t\t\t\t\tif ( curVal === this._valueMin() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = this._trimAlignValue( curVal - step );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis._slide( event, index, newVal );\n\t\t},\n\t\tkeyup: function( event ) {\n\t\t\tvar index = $( event.target ).data( \"ui-slider-handle-index\" );\n\n\t\t\tif ( this._keySliding ) {\n\t\t\t\tthis._keySliding = false;\n\t\t\t\tthis._stop( event, index );\n\t\t\t\tthis._change( event, index );\n\t\t\t\tthis._removeClass( $( event.target ), null, \"ui-state-active\" );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n\n/*!\n * jQuery UI Sortable 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Sortable\n//>>group: Interactions\n//>>description: Enables items in a list to be sorted using the mouse.\n//>>docs: http://api.jqueryui.com/sortable/\n//>>demos: http://jqueryui.com/sortable/\n//>>css.structure: ../../themes/base/sortable.css\n\n\n\nvar widgetsSortable = $.widget( \"ui.sortable\", $.ui.mouse, {\n\tversion: \"1.12.1\",\n\twidgetEventPrefix: \"sort\",\n\tready: false,\n\toptions: {\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectWith: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tdropOnEmpty: true,\n\t\tforcePlaceholderSize: false,\n\t\tforceHelperSize: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\titems: \"> *\",\n\t\topacity: false,\n\t\tplaceholder: false,\n\t\trevert: false,\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\t\tzIndex: 1000,\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeStop: null,\n\t\tchange: null,\n\t\tdeactivate: null,\n\t\tout: null,\n\t\tover: null,\n\t\treceive: null,\n\t\tremove: null,\n\t\tsort: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tupdate: null\n\t},\n\n\t_isOverAxis: function( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t},\n\n\t_isFloating: function( item ) {\n\t\treturn ( /left|right/ ).test( item.css( \"float\" ) ) ||\n\t\t\t( /inline|table-cell/ ).test( item.css( \"display\" ) );\n\t},\n\n\t_create: function() {\n\t\tthis.containerCache = {};\n\t\tthis._addClass( \"ui-sortable\" );\n\n\t\t//Get the items\n\t\tthis.refresh();\n\n\t\t//Let's determine the parent's offset\n\t\tthis.offset = this.element.offset();\n\n\t\t//Initialize mouse events for interaction\n\t\tthis._mouseInit();\n\n\t\tthis._setHandleClassName();\n\n\t\t//We're ready to go\n\t\tthis.ready = true;\n\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_setHandleClassName: function() {\n\t\tvar that = this;\n\t\tthis._removeClass( this.element.find( \".ui-sortable-handle\" ), \"ui-sortable-handle\" );\n\t\t$.each( this.items, function() {\n\t\t\tthat._addClass(\n\t\t\t\tthis.instance.options.handle ?\n\t\t\t\t\tthis.item.find( this.instance.options.handle ) :\n\t\t\t\t\tthis.item,\n\t\t\t\t\"ui-sortable-handle\"\n\t\t\t);\n\t\t} );\n\t},\n\n\t_destroy: function() {\n\t\tthis._mouseDestroy();\n\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\tthis.items[ i ].item.removeData( this.widgetName + \"-item\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function( event, overrideHandle ) {\n\t\tvar currentItem = null,\n\t\t\tvalidHandle = false,\n\t\t\tthat = this;\n\n\t\tif ( this.reverting ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.options.disabled || this.options.type === \"static\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//We have to refresh the items data once first\n\t\tthis._refreshItems( event );\n\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\n\t\t$( event.target ).parents().each( function() {\n\t\t\tif ( $.data( this, that.widgetName + \"-item\" ) === that ) {\n\t\t\t\tcurrentItem = $( this );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\t\tif ( $.data( event.target, that.widgetName + \"-item\" ) === that ) {\n\t\t\tcurrentItem = $( event.target );\n\t\t}\n\n\t\tif ( !currentItem ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.options.handle && !overrideHandle ) {\n\t\t\t$( this.options.handle, currentItem ).find( \"*\" ).addBack().each( function() {\n\t\t\t\tif ( this === event.target ) {\n\t\t\t\t\tvalidHandle = true;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !validHandle ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.currentItem = currentItem;\n\t\tthis._removeCurrentsFromItems();\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function( event, overrideHandle, noActivation ) {\n\n\t\tvar i, body,\n\t\t\to = this.options;\n\n\t\tthis.currentContainer = this;\n\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to\n\t\t// mouseCapture\n\t\tthis.refreshPositions();\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper( event );\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Get the next scrolling parent\n\t\tthis.scrollParent = this.helper.scrollParent();\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.offset = this.currentItem.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t$.extend( this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\t\t\tparent: this._getParentOffset(),\n\n\t\t\t// This is a relative to absolute position minus the actual position calculation -\n\t\t\t// only used for relative positioned helper\n\t\t\trelative: this._getRelativeOffset()\n\t\t} );\n\n\t\t// Only after we got the offset, we can change the helper's position to absolute\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\n\t\tthis.helper.css( \"position\", \"absolute\" );\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this._generatePosition( event );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );\n\n\t\t//Cache the former DOM position\n\t\tthis.domPosition = {\n\t\t\tprev: this.currentItem.prev()[ 0 ],\n\t\t\tparent: this.currentItem.parent()[ 0 ]\n\t\t};\n\n\t\t// If the helper is not the original, hide the original so it's not playing any role during\n\t\t// the drag, won't cause anything bad this way\n\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\tthis.currentItem.hide();\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthis._createPlaceholder();\n\n\t\t//Set a containment if given in the options\n\t\tif ( o.containment ) {\n\t\t\tthis._setContainment();\n\t\t}\n\n\t\tif ( o.cursor && o.cursor !== \"auto\" ) { // cursor option\n\t\t\tbody = this.document.find( \"body\" );\n\n\t\t\t// Support: IE\n\t\t\tthis.storedCursor = body.css( \"cursor\" );\n\t\t\tbody.css( \"cursor\", o.cursor );\n\n\t\t\tthis.storedStylesheet =\n\t\t\t\t$( \"<style>*{ cursor: \" + o.cursor + \" !important; }</style>\" ).appendTo( body );\n\t\t}\n\n\t\tif ( o.opacity ) { // opacity option\n\t\t\tif ( this.helper.css( \"opacity\" ) ) {\n\t\t\t\tthis._storedOpacity = this.helper.css( \"opacity\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"opacity\", o.opacity );\n\t\t}\n\n\t\tif ( o.zIndex ) { // zIndex option\n\t\t\tif ( this.helper.css( \"zIndex\" ) ) {\n\t\t\t\tthis._storedZIndex = this.helper.css( \"zIndex\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"zIndex\", o.zIndex );\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"start\", event, this._uiHash() );\n\n\t\t//Recache the helper size\n\t\tif ( !this._preserveHelperProportions ) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif ( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis._addClass( this.helper, \"ui-sortable-helper\" );\n\n\t\t// Execute the drag once - this causes the helper not to be visiblebefore getting its\n\t\t// correct position\n\t\tthis._mouseDrag( event );\n\t\treturn true;\n\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options,\n\t\t\tscrolled = false;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event );\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\tif ( !this.lastPositionAbs ) {\n\t\t\tthis.lastPositionAbs = this.positionAbs;\n\t\t}\n\n\t\t//Do scrolling\n\t\tif ( this.options.scroll ) {\n\t\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\n\t\t\t\tif ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -\n\t\t\t\t\t\tevent.pageY < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t\tif ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -\n\t\t\t\t\t\tevent.pageX < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );\n\t\t\t\t} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );\n\t\t\t\t}\n\n\t\t\t\tif ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\t\tthis.document.scrollLeft() - o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\t\tthis.document.scrollLeft() + o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t\t}\n\t\t}\n\n\t\t//Regenerate the absolute position used for position checks\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\t//Set the helper position\n\t\tif ( !this.options.axis || this.options.axis !== \"y\" ) {\n\t\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( !this.options.axis || this.options.axis !== \"x\" ) {\n\t\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\t\t}\n\n\t\t//Rearrange\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[ i ];\n\t\t\titemElement = item.item[ 0 ];\n\t\t\tintersection = this._intersectsWithPointer( item );\n\t\t\tif ( !intersection ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items from other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this, moving items in \"sub-sortables\" can cause\n\t\t\t// the placeholder to jitter between the outer and inner container.\n\t\t\tif ( item.instance !== this.currentContainer ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif ( itemElement !== this.currentItem[ 0 ] &&\n\t\t\t\tthis.placeholder[ intersection === 1 ? \"next\" : \"prev\" ]()[ 0 ] !== itemElement &&\n\t\t\t\t!$.contains( this.placeholder[ 0 ], itemElement ) &&\n\t\t\t\t( this.options.type === \"semi-dynamic\" ?\n\t\t\t\t\t!$.contains( this.element[ 0 ], itemElement ) :\n\t\t\t\t\ttrue\n\t\t\t\t)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif ( this.options.tolerance === \"pointer\" || this._intersectsWithSides( item ) ) {\n\t\t\t\t\tthis._rearrange( event, item );\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers( event );\n\n\t\t//Interconnect with droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.drag( this, event );\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"sort\", event, this._uiHash() );\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function( event, noPropagation ) {\n\n\t\tif ( !event ) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ( $.ui.ddmanager && !this.options.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.drop( this, event );\n\t\t}\n\n\t\tif ( this.options.revert ) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollLeft\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollTop\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$( this.helper ).animate(\n\t\t\t\tanimation,\n\t\t\t\tparseInt( this.options.revert, 10 ) || 500,\n\t\t\t\tfunction() {\n\t\t\t\t\tthat._clear( event );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tthis._clear( event, noPropagation );\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif ( this.dragging ) {\n\n\t\t\tthis._mouseUp( new $.Event( \"mouseup\", { target: null } ) );\n\n\t\t\tif ( this.options.helper === \"original\" ) {\n\t\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor ( var i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"deactivate\", null, this._uiHash( this ) );\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", null, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.placeholder ) {\n\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t\t// it unbinds ALL events from the original node!\n\t\t\tif ( this.placeholder[ 0 ].parentNode ) {\n\t\t\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\t\t\t}\n\t\t\tif ( this.options.helper !== \"original\" && this.helper &&\n\t\t\t\t\tthis.helper[ 0 ].parentNode ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend( this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t} );\n\n\t\t\tif ( this.domPosition.prev ) {\n\t\t\t\t$( this.domPosition.prev ).after( this.currentItem );\n\t\t\t} else {\n\t\t\t\t$( this.domPosition.parent ).prepend( this.currentItem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$( items ).each( function() {\n\t\t\tvar res = ( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" )\n\t\t\t\t.match( o.expression || ( /(.+)[\\-=_](.+)/ ) );\n\t\t\tif ( res ) {\n\t\t\t\tstr.push(\n\t\t\t\t\t( o.key || res[ 1 ] + \"[]\" ) +\n\t\t\t\t\t\"=\" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );\n\t\t\t}\n\t\t} );\n\n\t\tif ( !str.length && o.key ) {\n\t\t\tstr.push( o.key + \"=\" );\n\t\t}\n\n\t\treturn str.join( \"&\" );\n\n\t},\n\n\ttoArray: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each( function() {\n\t\t\tret.push( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" );\n\t\t} );\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function( item ) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t &&\n\t\t\t\t( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l &&\n\t\t\t\t( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t( this.options.tolerance !== \"pointer\" &&\n\t\t\t\tthis.helperProportions[ this.floating ? \"width\" : \"height\" ] >\n\t\t\t\titem[ this.floating ? \"width\" : \"height\" ] )\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( this.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( this.helperProportions.height / 2 ) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function( item ) {\n\t\tvar verticalDirection, horizontalDirection,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.top + this.offset.click.top, item.top, item.height ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.left + this.offset.click.left, item.left, item.width ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( !isOverElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tverticalDirection = this._getDragVerticalDirection();\n\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\treturn this.floating ?\n\t\t\t( ( horizontalDirection === \"right\" || verticalDirection === \"down\" ) ? 2 : 1 )\n\t\t\t: ( verticalDirection && ( verticalDirection === \"down\" ? 2 : 1 ) );\n\n\t},\n\n\t_intersectsWithSides: function( item ) {\n\n\t\tvar isOverBottomHalf = this._isOverAxis( this.positionAbs.top +\n\t\t\t\tthis.offset.click.top, item.top + ( item.height / 2 ), item.height ),\n\t\t\tisOverRightHalf = this._isOverAxis( this.positionAbs.left +\n\t\t\t\tthis.offset.click.left, item.left + ( item.width / 2 ), item.width ),\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif ( this.floating && horizontalDirection ) {\n\t\t\treturn ( ( horizontalDirection === \"right\" && isOverRightHalf ) ||\n\t\t\t\t( horizontalDirection === \"left\" && !isOverRightHalf ) );\n\t\t} else {\n\t\t\treturn verticalDirection && ( ( verticalDirection === \"down\" && isOverBottomHalf ) ||\n\t\t\t\t( verticalDirection === \"up\" && !isOverBottomHalf ) );\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && ( delta > 0 ? \"down\" : \"up\" );\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && ( delta > 0 ? \"right\" : \"left\" );\n\t},\n\n\trefresh: function( event ) {\n\t\tthis._refreshItems( event );\n\t\tthis._setHandleClassName();\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ?\n\t\t\t[ options.connectWith ] :\n\t\t\toptions.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function( connected ) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif ( connectWith && connected ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ $.isFunction( inst.options.items ) ?\n\t\t\t\t\t\t\tinst.options.items.call( inst.element ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-placeholder\" ), inst ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push( [ $.isFunction( this.options.items ) ?\n\t\t\tthis.options.items\n\t\t\t\t.call( this.element, null, { options: this.options, item: this.currentItem } ) :\n\t\t\t$( this.options.items, this.element )\n\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t.not( \".ui-sortable-placeholder\" ), this ] );\n\n\t\tfunction addItems() {\n\t\t\titems.push( this );\n\t\t}\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\tqueries[ i ][ 0 ].each( addItems );\n\t\t}\n\n\t\treturn $( items );\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find( \":data(\" + this.widgetName + \"-item)\" );\n\n\t\tthis.items = $.grep( this.items, function( item ) {\n\t\t\tfor ( var j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === item.item[ 0 ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t},\n\n\t_refreshItems: function( event ) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [ this ];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [ [ $.isFunction( this.options.items ) ?\n\t\t\t\tthis.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t$( this.options.items, this.element ), this ] ],\n\t\t\tconnectWith = this._connectWith();\n\n\t\t//Shouldn't be run the first time through due to massive slow-down\n\t\tif ( connectWith && this.ready ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ $.isFunction( inst.options.items ) ?\n\t\t\t\t\t\t\tinst.options.items\n\t\t\t\t\t\t\t\t.call( inst.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element ), inst ] );\n\t\t\t\t\t\tthis.containers.push( inst );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\ttargetData = queries[ i ][ 1 ];\n\t\t\t_queries = queries[ i ][ 0 ];\n\n\t\t\tfor ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {\n\t\t\t\titem = $( _queries[ j ] );\n\n\t\t\t\t// Data for target checking (mouse manager)\n\t\t\t\titem.data( this.widgetName + \"-item\", targetData );\n\n\t\t\t\titems.push( {\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t},\n\n\trefreshPositions: function( fast ) {\n\n\t\t// Determine whether items are being displayed horizontally\n\t\tthis.floating = this.items.length ?\n\t\t\tthis.options.axis === \"x\" || this._isFloating( this.items[ 0 ].item ) :\n\t\t\tfalse;\n\n\t\t//This has to be redone because due to the item being moved out/into the offsetParent,\n\t\t// the offsetParent's position will change\n\t\tif ( this.offsetParent && this.helper ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tvar i, item, t, p;\n\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif ( item.instance !== this.currentContainer && this.currentContainer &&\n\t\t\t\t\titem.item[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ?\n\t\t\t\t$( this.options.toleranceElement, item.item ) :\n\t\t\t\titem.item;\n\n\t\t\tif ( !fast ) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\n\t\tif ( this.options.custom && this.options.custom.refreshContainers ) {\n\t\t\tthis.options.custom.refreshContainers.call( this );\n\t\t} else {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tp = this.containers[ i ].element.offset();\n\t\t\t\tthis.containers[ i ].containerCache.left = p.left;\n\t\t\t\tthis.containers[ i ].containerCache.top = p.top;\n\t\t\t\tthis.containers[ i ].containerCache.width =\n\t\t\t\t\tthis.containers[ i ].element.outerWidth();\n\t\t\t\tthis.containers[ i ].containerCache.height =\n\t\t\t\t\tthis.containers[ i ].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function( that ) {\n\t\tthat = that || this;\n\t\tvar className,\n\t\t\to = that.options;\n\n\t\tif ( !o.placeholder || o.placeholder.constructor === String ) {\n\t\t\tclassName = o.placeholder;\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(),\n\t\t\t\t\t\telement = $( \"<\" + nodeName + \">\", that.document[ 0 ] );\n\n\t\t\t\t\t\tthat._addClass( element, \"ui-sortable-placeholder\",\n\t\t\t\t\t\t\t\tclassName || that.currentItem[ 0 ].className )\n\t\t\t\t\t\t\t._removeClass( element, \"ui-sortable-helper\" );\n\n\t\t\t\t\tif ( nodeName === \"tbody\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder(\n\t\t\t\t\t\t\tthat.currentItem.find( \"tr\" ).eq( 0 ),\n\t\t\t\t\t\t\t$( \"<tr>\", that.document[ 0 ] ).appendTo( element )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder( that.currentItem, element );\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function( container, p ) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes -\n\t\t\t\t\t// the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a\n\t\t\t\t\t// class name is specified\n\t\t\t\t\tif ( className && !o.forcePlaceholderSize ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t//If the element doesn't have a actual height by itself (without styles coming\n\t\t\t\t\t// from a stylesheet), it receives the inline height from the dragged item\n\t\t\t\t\tif ( !p.height() ) {\n\t\t\t\t\t\tp.height(\n\t\t\t\t\t\t\tthat.currentItem.innerHeight() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingTop\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingBottom\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !p.width() ) {\n\t\t\t\t\t\tp.width(\n\t\t\t\t\t\t\tthat.currentItem.innerWidth() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingLeft\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingRight\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after( that.placeholder );\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update( that, that.placeholder );\n\n\t},\n\n\t_createTrPlaceholder: function( sourceTr, targetTr ) {\n\t\tvar that = this;\n\n\t\tsourceTr.children().each( function() {\n\t\t\t$( \"<td>&#160;</td>\", that.document[ 0 ] )\n\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t.appendTo( targetTr );\n\t\t} );\n\t},\n\n\t_contactContainers: function( event ) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,\n\t\t\tfloating, axis,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// Get innermost container that intersects with item\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\n\t\t\t// Never consider a container that's located within the item itself\n\t\t\tif ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( this._intersectsWith( this.containers[ i ].containerCache ) ) {\n\n\t\t\t\t// If we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif ( innermostContainer &&\n\t\t\t\t\t\t$.contains(\n\t\t\t\t\t\t\tthis.containers[ i ].element[ 0 ],\n\t\t\t\t\t\t\tinnermostContainer.element[ 0 ] ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[ i ];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", event, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// If no intersecting containers found, return\n\t\tif ( !innermostContainer ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Move the item into the container if it's not there already\n\t\tif ( this.containers.length === 1 ) {\n\t\t\tif ( !this.containers[ innermostIndex ].containerCache.over ) {\n\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// When entering a new container, we will find the item with the least distance and\n\t\t\t// append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || this._isFloating( this.currentItem );\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\taxis = floating ? \"pageX\" : \"pageY\";\n\n\t\t\tfor ( j = this.items.length - 1; j >= 0; j-- ) {\n\t\t\t\tif ( !$.contains(\n\t\t\t\t\t\tthis.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcur = this.items[ j ].item.offset()[ posProperty ];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t}\n\n\t\t\t\tif ( Math.abs( event[ axis ] - cur ) < dist ) {\n\t\t\t\t\tdist = Math.abs( event[ axis ] - cur );\n\t\t\t\t\titemWithLeastDistance = this.items[ j ];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\" : \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.currentContainer === this.containers[ innermostIndex ] ) {\n\t\t\t\tif ( !this.currentContainer.containerCache.over ) {\n\t\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash() );\n\t\t\t\t\tthis.currentContainer.containerCache.over = 1;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titemWithLeastDistance ?\n\t\t\t\tthis._rearrange( event, itemWithLeastDistance, null, true ) :\n\t\t\t\tthis._rearrange( event, null, this.containers[ innermostIndex ].element, true );\n\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"change\", event, this._uiHash( this ) );\n\t\t\tthis.currentContainer = this.containers[ innermostIndex ];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update( this.currentContainer, this.placeholder );\n\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t}\n\n\t},\n\n\t_createHelper: function( event ) {\n\n\t\tvar o = this.options,\n\t\t\thelper = $.isFunction( o.helper ) ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem );\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif ( !helper.parents( \"body\" ).length ) {\n\t\t\t$( o.appendTo !== \"parent\" ?\n\t\t\t\to.appendTo :\n\t\t\t\tthis.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] );\n\t\t}\n\n\t\tif ( helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tthis._storedCSS = {\n\t\t\t\twidth: this.currentItem[ 0 ].style.width,\n\t\t\t\theight: this.currentItem[ 0 ].style.height,\n\t\t\t\tposition: this.currentItem.css( \"position\" ),\n\t\t\t\ttop: this.currentItem.css( \"top\" ),\n\t\t\t\tleft: this.currentItem.css( \"left\" )\n\t\t\t};\n\t\t}\n\n\t\tif ( !helper[ 0 ].style.width || o.forceHelperSize ) {\n\t\t\thelper.width( this.currentItem.width() );\n\t\t}\n\t\tif ( !helper[ 0 ].style.height || o.forceHelperSize ) {\n\t\t\thelper.height( this.currentItem.height() );\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function( obj ) {\n\t\tif ( typeof obj === \"string\" ) {\n\t\t\tobj = obj.split( \" \" );\n\t\t}\n\t\tif ( $.isArray( obj ) ) {\n\t\t\tobj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };\n\t\t}\n\t\tif ( \"left\" in obj ) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif ( \"right\" in obj ) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif ( \"top\" in obj ) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif ( \"bottom\" in obj ) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the\n\t\t// following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the\n\t\t// next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't\n\t\t// the document, which means that the scroll is included in the initial calculation of the\n\t\t// offset of the parent, and never recalculated upon drag\n\t\tif ( this.cssPosition === \"absolute\" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t// This needs to be actually done for all browsers, since pageX/pageY includes this\n\t\t// information with an ugly IE fix\n\t\tif ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||\n\t\t\t\t( this.offsetParent[ 0 ].tagName &&\n\t\t\t\tthis.offsetParent[ 0 ].tagName.toLowerCase() === \"html\" && $.ui.ie ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + ( parseInt( this.offsetParent.css( \"borderTopWidth\" ), 10 ) || 0 ),\n\t\t\tleft: po.left + ( parseInt( this.offsetParent.css( \"borderLeftWidth\" ), 10 ) || 0 )\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif ( this.cssPosition === \"relative\" ) {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - ( parseInt( this.helper.css( \"top\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - ( parseInt( this.helper.css( \"left\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: ( parseInt( this.currentItem.css( \"marginLeft\" ), 10 ) || 0 ),\n\t\t\ttop: ( parseInt( this.currentItem.css( \"marginTop\" ), 10 ) || 0 )\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar ce, co, over,\n\t\t\to = this.options;\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\t\tif ( o.containment === \"document\" || o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\to.containment === \"document\" ?\n\t\t\t\t\tthis.document.width() :\n\t\t\t\t\tthis.window.width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( o.containment === \"document\" ?\n\t\t\t\t\t( this.document.height() || document.body.parentNode.scrollHeight ) :\n\t\t\t\t\tthis.window.height() || this.document[ 0 ].body.parentNode.scrollHeight\n\t\t\t\t) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {\n\t\t\tce = $( o.containment )[ 0 ];\n\t\t\tco = $( o.containment ).offset();\n\t\t\tover = ( $( ce ).css( \"overflow\" ) !== \"hidden\" );\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + ( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingLeft\" ), 10 ) || 0 ) - this.margins.left,\n\t\t\t\tco.top + ( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingTop\" ), 10 ) || 0 ) - this.margins.top,\n\t\t\t\tco.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.width - this.margins.left,\n\t\t\t\tco.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function( d, pos ) {\n\n\t\tif ( !pos ) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.top\t+\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top * mod -\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.left +\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left * mod\t-\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :\n\t\t\t\t\tscroll.scrollLeft() ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event ) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif ( this.cssPosition === \"relative\" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\tif ( this.originalPosition ) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {\n\t\t\t\t\tpageX = this.containment[ 0 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {\n\t\t\t\t\tpageY = this.containment[ 1 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {\n\t\t\t\t\tpageX = this.containment[ 2 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {\n\t\t\t\t\tpageY = this.containment[ 3 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( o.grid ) {\n\t\t\t\ttop = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /\n\t\t\t\t\to.grid[ 1 ] ) * o.grid[ 1 ];\n\t\t\t\tpageY = this.containment ?\n\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] &&\n\t\t\t\t\t\ttop - this.offset.click.top <= this.containment[ 3 ] ) ?\n\t\t\t\t\t\t\ttop :\n\t\t\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?\n\t\t\t\t\t\t\t\ttop - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :\n\t\t\t\t\t\t\t\ttop;\n\n\t\t\t\tleft = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /\n\t\t\t\t\to.grid[ 0 ] ) * o.grid[ 0 ];\n\t\t\t\tpageX = this.containment ?\n\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] &&\n\t\t\t\t\t\tleft - this.offset.click.left <= this.containment[ 2 ] ) ?\n\t\t\t\t\t\t\tleft :\n\t\t\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?\n\t\t\t\t\t\t\t\tleft - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :\n\t\t\t\t\t\t\t\tleft;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageY -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.top -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageX -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.left -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() :\n\t\t\t\t\tscrollIsRootNode ? 0 : scroll.scrollLeft() ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function( event, i, a, hardRefresh ) {\n\n\t\ta ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) :\n\t\t\ti.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],\n\t\t\t\t( this.direction === \"down\" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout,\n\t\t// if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay( function() {\n\t\t\tif ( counter === this.counter ) {\n\n\t\t\t\t//Precompute after each DOM insertion, NOT on mousemove\n\t\t\t\tthis.refreshPositions( !hardRefresh );\n\t\t\t}\n\t\t} );\n\n\t},\n\n\t_clear: function( event, noPropagation ) {\n\n\t\tthis.reverting = false;\n\n\t\t// We delay all events that have to be triggered to after the point where the placeholder\n\t\t// has been removed and everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets\n\t\t// reappended (see #4088)\n\t\tif ( !this._noFinalSort && this.currentItem.parent().length ) {\n\t\t\tthis.placeholder.before( this.currentItem );\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tfor ( i in this._storedCSS ) {\n\t\t\t\tif ( this._storedCSS[ i ] === \"auto\" || this._storedCSS[ i ] === \"static\" ) {\n\t\t\t\t\tthis._storedCSS[ i ] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif ( this.fromOutside && !noPropagation ) {\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"receive\", event, this._uiHash( this.fromOutside ) );\n\t\t\t} );\n\t\t}\n\t\tif ( ( this.fromOutside ||\n\t\t\t\tthis.domPosition.prev !==\n\t\t\t\tthis.currentItem.prev().not( \".ui-sortable-helper\" )[ 0 ] ||\n\t\t\t\tthis.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {\n\n\t\t\t// Trigger update callback if the DOM position has changed\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"update\", event, this._uiHash() );\n\t\t\t} );\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif ( this !== this.currentContainer ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\t\tthis._trigger( \"remove\", event, this._uiHash() );\n\t\t\t\t} );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"receive\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"update\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tfunction delayEvent( type, instance, container ) {\n\t\t\treturn function( event ) {\n\t\t\t\tcontainer._trigger( type, event, instance._uiHash( instance ) );\n\t\t\t};\n\t\t}\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"deactivate\", this, this.containers[ i ] ) );\n\t\t\t}\n\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"out\", this, this.containers[ i ] ) );\n\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this.storedCursor ) {\n\t\t\tthis.document.find( \"body\" ).css( \"cursor\", this.storedCursor );\n\t\t\tthis.storedStylesheet.remove();\n\t\t}\n\t\tif ( this._storedOpacity ) {\n\t\t\tthis.helper.css( \"opacity\", this._storedOpacity );\n\t\t}\n\t\tif ( this._storedZIndex ) {\n\t\t\tthis.helper.css( \"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex );\n\t\t}\n\n\t\tthis.dragging = false;\n\n\t\tif ( !noPropagation ) {\n\t\t\tthis._trigger( \"beforeStop\", event, this._uiHash() );\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t// it unbinds ALL events from the original node!\n\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\n\t\tif ( !this.cancelHelperRemoval ) {\n\t\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\t\t\tthis.helper = null;\n\t\t}\n\n\t\tif ( !noPropagation ) {\n\t\t\tfor ( i = 0; i < delayedTriggers.length; i++ ) {\n\n\t\t\t\t// Trigger all delayed events\n\t\t\t\tdelayedTriggers[ i ].call( this, event );\n\t\t\t}\n\t\t\tthis._trigger( \"stop\", event, this._uiHash() );\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn !this.cancelHelperRemoval;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function( _inst ) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $( [] ),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n} );\n\n\n/*!\n * jQuery UI Spinner 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Spinner\n//>>group: Widgets\n//>>description: Displays buttons to easily input numbers via the keyboard or mouse.\n//>>docs: http://api.jqueryui.com/spinner/\n//>>demos: http://jqueryui.com/spinner/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/spinner.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nfunction spinnerModifer( fn ) {\n\treturn function() {\n\t\tvar previous = this.element.val();\n\t\tfn.apply( this, arguments );\n\t\tthis._refresh();\n\t\tif ( previous !== this.element.val() ) {\n\t\t\tthis._trigger( \"change\" );\n\t\t}\n\t};\n}\n\n$.widget( \"ui.spinner\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<input>\",\n\twidgetEventPrefix: \"spin\",\n\toptions: {\n\t\tclasses: {\n\t\t\t\"ui-spinner\": \"ui-corner-all\",\n\t\t\t\"ui-spinner-down\": \"ui-corner-br\",\n\t\t\t\"ui-spinner-up\": \"ui-corner-tr\"\n\t\t},\n\t\tculture: null,\n\t\ticons: {\n\t\t\tdown: \"ui-icon-triangle-1-s\",\n\t\t\tup: \"ui-icon-triangle-1-n\"\n\t\t},\n\t\tincremental: true,\n\t\tmax: null,\n\t\tmin: null,\n\t\tnumberFormat: null,\n\t\tpage: 10,\n\t\tstep: 1,\n\n\t\tchange: null,\n\t\tspin: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\n\t_create: function() {\n\n\t\t// handle string values that need to be parsed\n\t\tthis._setOption( \"max\", this.options.max );\n\t\tthis._setOption( \"min\", this.options.min );\n\t\tthis._setOption( \"step\", this.options.step );\n\n\t\t// Only format if there is a value, prevents the field from being marked\n\t\t// as invalid in Firefox, see #9573.\n\t\tif ( this.value() !== \"\" ) {\n\n\t\t\t// Format the value, but don't constrain.\n\t\t\tthis._value( this.element.val(), true );\n\t\t}\n\n\t\tthis._draw();\n\t\tthis._on( this._events );\n\t\tthis._refresh();\n\n\t\t// Turning off autocomplete prevents the browser from remembering the\n\t\t// value when navigating through history, so we re-enable autocomplete\n\t\t// if the page is unloaded before the widget is destroyed. #7790\n\t\tthis._on( this.window, {\n\t\t\tbeforeunload: function() {\n\t\t\t\tthis.element.removeAttr( \"autocomplete\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar options = this._super();\n\t\tvar element = this.element;\n\n\t\t$.each( [ \"min\", \"max\", \"step\" ], function( i, option ) {\n\t\t\tvar value = element.attr( option );\n\t\t\tif ( value != null && value.length ) {\n\t\t\t\toptions[ option ] = value;\n\t\t\t}\n\t\t} );\n\n\t\treturn options;\n\t},\n\n\t_events: {\n\t\tkeydown: function( event ) {\n\t\t\tif ( this._start( event ) && this._keydown( event ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\tkeyup: \"_stop\",\n\t\tfocus: function() {\n\t\t\tthis.previous = this.element.val();\n\t\t},\n\t\tblur: function( event ) {\n\t\t\tif ( this.cancelBlur ) {\n\t\t\t\tdelete this.cancelBlur;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._stop();\n\t\t\tthis._refresh();\n\t\t\tif ( this.previous !== this.element.val() ) {\n\t\t\t\tthis._trigger( \"change\", event );\n\t\t\t}\n\t\t},\n\t\tmousewheel: function( event, delta ) {\n\t\t\tif ( !delta ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( !this.spinning && !this._start( event ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis._spin( ( delta > 0 ? 1 : -1 ) * this.options.step, event );\n\t\t\tclearTimeout( this.mousewheelTimer );\n\t\t\tthis.mousewheelTimer = this._delay( function() {\n\t\t\t\tif ( this.spinning ) {\n\t\t\t\t\tthis._stop( event );\n\t\t\t\t}\n\t\t\t}, 100 );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t\"mousedown .ui-spinner-button\": function( event ) {\n\t\t\tvar previous;\n\n\t\t\t// We never want the buttons to have focus; whenever the user is\n\t\t\t// interacting with the spinner, the focus should be on the input.\n\t\t\t// If the input is focused then this.previous is properly set from\n\t\t\t// when the input first received focus. If the input is not focused\n\t\t\t// then we need to set this.previous based on the value before spinning.\n\t\t\tprevious = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] ) ?\n\t\t\t\tthis.previous : this.element.val();\n\t\t\tfunction checkFocus() {\n\t\t\t\tvar isActive = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] );\n\t\t\t\tif ( !isActive ) {\n\t\t\t\t\tthis.element.trigger( \"focus\" );\n\t\t\t\t\tthis.previous = previous;\n\n\t\t\t\t\t// support: IE\n\t\t\t\t\t// IE sets focus asynchronously, so we need to check if focus\n\t\t\t\t\t// moved off of the input because the user clicked on the button.\n\t\t\t\t\tthis._delay( function() {\n\t\t\t\t\t\tthis.previous = previous;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Ensure focus is on (or stays on) the text field\n\t\t\tevent.preventDefault();\n\t\t\tcheckFocus.call( this );\n\n\t\t\t// Support: IE\n\t\t\t// IE doesn't prevent moving focus even with event.preventDefault()\n\t\t\t// so we set a flag to know when we should ignore the blur event\n\t\t\t// and check (again) if focus moved off of the input.\n\t\t\tthis.cancelBlur = true;\n\t\t\tthis._delay( function() {\n\t\t\t\tdelete this.cancelBlur;\n\t\t\t\tcheckFocus.call( this );\n\t\t\t} );\n\n\t\t\tif ( this._start( event ) === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._repeat( null, $( event.currentTarget )\n\t\t\t\t.hasClass( \"ui-spinner-up\" ) ? 1 : -1, event );\n\t\t},\n\t\t\"mouseup .ui-spinner-button\": \"_stop\",\n\t\t\"mouseenter .ui-spinner-button\": function( event ) {\n\n\t\t\t// button will add ui-state-active if mouse was down while mouseleave and kept down\n\t\t\tif ( !$( event.currentTarget ).hasClass( \"ui-state-active\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this._start( event ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._repeat( null, $( event.currentTarget )\n\t\t\t\t.hasClass( \"ui-spinner-up\" ) ? 1 : -1, event );\n\t\t},\n\n\t\t// TODO: do we really want to consider this a stop?\n\t\t// shouldn't we just stop the repeater and wait until mouseup before\n\t\t// we trigger the stop event?\n\t\t\"mouseleave .ui-spinner-button\": \"_stop\"\n\t},\n\n\t// Support mobile enhanced option and make backcompat more sane\n\t_enhance: function() {\n\t\tthis.uiSpinner = this.element\n\t\t\t.attr( \"autocomplete\", \"off\" )\n\t\t\t.wrap( \"<span>\" )\n\t\t\t.parent()\n\n\t\t\t\t// Add buttons\n\t\t\t\t.append(\n\t\t\t\t\t\"<a></a><a></a>\"\n\t\t\t\t);\n\t},\n\n\t_draw: function() {\n\t\tthis._enhance();\n\n\t\tthis._addClass( this.uiSpinner, \"ui-spinner\", \"ui-widget ui-widget-content\" );\n\t\tthis._addClass( \"ui-spinner-input\" );\n\n\t\tthis.element.attr( \"role\", \"spinbutton\" );\n\n\t\t// Button bindings\n\t\tthis.buttons = this.uiSpinner.children( \"a\" )\n\t\t\t.attr( \"tabIndex\", -1 )\n\t\t\t.attr( \"aria-hidden\", true )\n\t\t\t.button( {\n\t\t\t\tclasses: {\n\t\t\t\t\t\"ui-button\": \"\"\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// TODO: Right now button does not support classes this is already updated in button PR\n\t\tthis._removeClass( this.buttons, \"ui-corner-all\" );\n\n\t\tthis._addClass( this.buttons.first(), \"ui-spinner-button ui-spinner-up\" );\n\t\tthis._addClass( this.buttons.last(), \"ui-spinner-button ui-spinner-down\" );\n\t\tthis.buttons.first().button( {\n\t\t\t\"icon\": this.options.icons.up,\n\t\t\t\"showLabel\": false\n\t\t} );\n\t\tthis.buttons.last().button( {\n\t\t\t\"icon\": this.options.icons.down,\n\t\t\t\"showLabel\": false\n\t\t} );\n\n\t\t// IE 6 doesn't understand height: 50% for the buttons\n\t\t// unless the wrapper has an explicit height\n\t\tif ( this.buttons.height() > Math.ceil( this.uiSpinner.height() * 0.5 ) &&\n\t\t\t\tthis.uiSpinner.height() > 0 ) {\n\t\t\tthis.uiSpinner.height( this.uiSpinner.height() );\n\t\t}\n\t},\n\n\t_keydown: function( event ) {\n\t\tvar options = this.options,\n\t\t\tkeyCode = $.ui.keyCode;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.UP:\n\t\t\tthis._repeat( null, 1, event );\n\t\t\treturn true;\n\t\tcase keyCode.DOWN:\n\t\t\tthis._repeat( null, -1, event );\n\t\t\treturn true;\n\t\tcase keyCode.PAGE_UP:\n\t\t\tthis._repeat( null, options.page, event );\n\t\t\treturn true;\n\t\tcase keyCode.PAGE_DOWN:\n\t\t\tthis._repeat( null, -options.page, event );\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_start: function( event ) {\n\t\tif ( !this.spinning && this._trigger( \"start\", event ) === false ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !this.counter ) {\n\t\t\tthis.counter = 1;\n\t\t}\n\t\tthis.spinning = true;\n\t\treturn true;\n\t},\n\n\t_repeat: function( i, steps, event ) {\n\t\ti = i || 500;\n\n\t\tclearTimeout( this.timer );\n\t\tthis.timer = this._delay( function() {\n\t\t\tthis._repeat( 40, steps, event );\n\t\t}, i );\n\n\t\tthis._spin( steps * this.options.step, event );\n\t},\n\n\t_spin: function( step, event ) {\n\t\tvar value = this.value() || 0;\n\n\t\tif ( !this.counter ) {\n\t\t\tthis.counter = 1;\n\t\t}\n\n\t\tvalue = this._adjustValue( value + step * this._increment( this.counter ) );\n\n\t\tif ( !this.spinning || this._trigger( \"spin\", event, { value: value } ) !== false ) {\n\t\t\tthis._value( value );\n\t\t\tthis.counter++;\n\t\t}\n\t},\n\n\t_increment: function( i ) {\n\t\tvar incremental = this.options.incremental;\n\n\t\tif ( incremental ) {\n\t\t\treturn $.isFunction( incremental ) ?\n\t\t\t\tincremental( i ) :\n\t\t\t\tMath.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );\n\t\t}\n\n\t\treturn 1;\n\t},\n\n\t_precision: function() {\n\t\tvar precision = this._precisionOf( this.options.step );\n\t\tif ( this.options.min !== null ) {\n\t\t\tprecision = Math.max( precision, this._precisionOf( this.options.min ) );\n\t\t}\n\t\treturn precision;\n\t},\n\n\t_precisionOf: function( num ) {\n\t\tvar str = num.toString(),\n\t\t\tdecimal = str.indexOf( \".\" );\n\t\treturn decimal === -1 ? 0 : str.length - decimal - 1;\n\t},\n\n\t_adjustValue: function( value ) {\n\t\tvar base, aboveMin,\n\t\t\toptions = this.options;\n\n\t\t// Make sure we're at a valid step\n\t\t// - find out where we are relative to the base (min or 0)\n\t\tbase = options.min !== null ? options.min : 0;\n\t\taboveMin = value - base;\n\n\t\t// - round to the nearest step\n\t\taboveMin = Math.round( aboveMin / options.step ) * options.step;\n\n\t\t// - rounding is based on 0, so adjust back to our base\n\t\tvalue = base + aboveMin;\n\n\t\t// Fix precision from bad JS floating point math\n\t\tvalue = parseFloat( value.toFixed( this._precision() ) );\n\n\t\t// Clamp the value\n\t\tif ( options.max !== null && value > options.max ) {\n\t\t\treturn options.max;\n\t\t}\n\t\tif ( options.min !== null && value < options.min ) {\n\t\t\treturn options.min;\n\t\t}\n\n\t\treturn value;\n\t},\n\n\t_stop: function( event ) {\n\t\tif ( !this.spinning ) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout( this.timer );\n\t\tclearTimeout( this.mousewheelTimer );\n\t\tthis.counter = 0;\n\t\tthis.spinning = false;\n\t\tthis._trigger( \"stop\", event );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar prevValue, first, last;\n\n\t\tif ( key === \"culture\" || key === \"numberFormat\" ) {\n\t\t\tprevValue = this._parse( this.element.val() );\n\t\t\tthis.options[ key ] = value;\n\t\t\tthis.element.val( this._format( prevValue ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"max\" || key === \"min\" || key === \"step\" ) {\n\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\tvalue = this._parse( value );\n\t\t\t}\n\t\t}\n\t\tif ( key === \"icons\" ) {\n\t\t\tfirst = this.buttons.first().find( \".ui-icon\" );\n\t\t\tthis._removeClass( first, null, this.options.icons.up );\n\t\t\tthis._addClass( first, null, value.up );\n\t\t\tlast = this.buttons.last().find( \".ui-icon\" );\n\t\t\tthis._removeClass( last, null, this.options.icons.down );\n\t\t\tthis._addClass( last, null, value.down );\n\t\t}\n\n\t\tthis._super( key, value );\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis._toggleClass( this.uiSpinner, null, \"ui-state-disabled\", !!value );\n\t\tthis.element.prop( \"disabled\", !!value );\n\t\tthis.buttons.button( value ? \"disable\" : \"enable\" );\n\t},\n\n\t_setOptions: spinnerModifer( function( options ) {\n\t\tthis._super( options );\n\t} ),\n\n\t_parse: function( val ) {\n\t\tif ( typeof val === \"string\" && val !== \"\" ) {\n\t\t\tval = window.Globalize && this.options.numberFormat ?\n\t\t\t\tGlobalize.parseFloat( val, 10, this.options.culture ) : +val;\n\t\t}\n\t\treturn val === \"\" || isNaN( val ) ? null : val;\n\t},\n\n\t_format: function( value ) {\n\t\tif ( value === \"\" ) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn window.Globalize && this.options.numberFormat ?\n\t\t\tGlobalize.format( value, this.options.numberFormat, this.options.culture ) :\n\t\t\tvalue;\n\t},\n\n\t_refresh: function() {\n\t\tthis.element.attr( {\n\t\t\t\"aria-valuemin\": this.options.min,\n\t\t\t\"aria-valuemax\": this.options.max,\n\n\t\t\t// TODO: what should we do with values that can't be parsed?\n\t\t\t\"aria-valuenow\": this._parse( this.element.val() )\n\t\t} );\n\t},\n\n\tisValid: function() {\n\t\tvar value = this.value();\n\n\t\t// Null is invalid\n\t\tif ( value === null ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If value gets adjusted, it's invalid\n\t\treturn value === this._adjustValue( value );\n\t},\n\n\t// Update the value without triggering change\n\t_value: function( value, allowAny ) {\n\t\tvar parsed;\n\t\tif ( value !== \"\" ) {\n\t\t\tparsed = this._parse( value );\n\t\t\tif ( parsed !== null ) {\n\t\t\t\tif ( !allowAny ) {\n\t\t\t\t\tparsed = this._adjustValue( parsed );\n\t\t\t\t}\n\t\t\t\tvalue = this._format( parsed );\n\t\t\t}\n\t\t}\n\t\tthis.element.val( value );\n\t\tthis._refresh();\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.prop( \"disabled\", false )\n\t\t\t.removeAttr( \"autocomplete role aria-valuemin aria-valuemax aria-valuenow\" );\n\n\t\tthis.uiSpinner.replaceWith( this.element );\n\t},\n\n\tstepUp: spinnerModifer( function( steps ) {\n\t\tthis._stepUp( steps );\n\t} ),\n\t_stepUp: function( steps ) {\n\t\tif ( this._start() ) {\n\t\t\tthis._spin( ( steps || 1 ) * this.options.step );\n\t\t\tthis._stop();\n\t\t}\n\t},\n\n\tstepDown: spinnerModifer( function( steps ) {\n\t\tthis._stepDown( steps );\n\t} ),\n\t_stepDown: function( steps ) {\n\t\tif ( this._start() ) {\n\t\t\tthis._spin( ( steps || 1 ) * -this.options.step );\n\t\t\tthis._stop();\n\t\t}\n\t},\n\n\tpageUp: spinnerModifer( function( pages ) {\n\t\tthis._stepUp( ( pages || 1 ) * this.options.page );\n\t} ),\n\n\tpageDown: spinnerModifer( function( pages ) {\n\t\tthis._stepDown( ( pages || 1 ) * this.options.page );\n\t} ),\n\n\tvalue: function( newVal ) {\n\t\tif ( !arguments.length ) {\n\t\t\treturn this._parse( this.element.val() );\n\t\t}\n\t\tspinnerModifer( this._value ).call( this, newVal );\n\t},\n\n\twidget: function() {\n\t\treturn this.uiSpinner;\n\t}\n} );\n\n// DEPRECATED\n// TODO: switch return back to widget declaration at top of file when this is removed\nif ( $.uiBackCompat !== false ) {\n\n\t// Backcompat for spinner html extension points\n\t$.widget( \"ui.spinner\", $.ui.spinner, {\n\t\t_enhance: function() {\n\t\t\tthis.uiSpinner = this.element\n\t\t\t\t.attr( \"autocomplete\", \"off\" )\n\t\t\t\t.wrap( this._uiSpinnerHtml() )\n\t\t\t\t.parent()\n\n\t\t\t\t\t// Add buttons\n\t\t\t\t\t.append( this._buttonHtml() );\n\t\t},\n\t\t_uiSpinnerHtml: function() {\n\t\t\treturn \"<span>\";\n\t\t},\n\n\t\t_buttonHtml: function() {\n\t\t\treturn \"<a></a><a></a>\";\n\t\t}\n\t} );\n}\n\nvar widgetsSpinner = $.ui.spinner;\n\n\n/*!\n * jQuery UI Tabs 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Tabs\n//>>group: Widgets\n//>>description: Transforms a set of container elements into a tab structure.\n//>>docs: http://api.jqueryui.com/tabs/\n//>>demos: http://jqueryui.com/tabs/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/tabs.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.tabs\", {\n\tversion: \"1.12.1\",\n\tdelay: 300,\n\toptions: {\n\t\tactive: null,\n\t\tclasses: {\n\t\t\t\"ui-tabs\": \"ui-corner-all\",\n\t\t\t\"ui-tabs-nav\": \"ui-corner-all\",\n\t\t\t\"ui-tabs-panel\": \"ui-corner-bottom\",\n\t\t\t\"ui-tabs-tab\": \"ui-corner-top\"\n\t\t},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theightStyle: \"content\",\n\t\thide: null,\n\t\tshow: null,\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null,\n\t\tbeforeLoad: null,\n\t\tload: null\n\t},\n\n\t_isLocal: ( function() {\n\t\tvar rhash = /#.*$/;\n\n\t\treturn function( anchor ) {\n\t\t\tvar anchorUrl, locationUrl;\n\n\t\t\tanchorUrl = anchor.href.replace( rhash, \"\" );\n\t\t\tlocationUrl = location.href.replace( rhash, \"\" );\n\n\t\t\t// Decoding may throw an error if the URL isn't UTF-8 (#9518)\n\t\t\ttry {\n\t\t\t\tanchorUrl = decodeURIComponent( anchorUrl );\n\t\t\t} catch ( error ) {}\n\t\t\ttry {\n\t\t\t\tlocationUrl = decodeURIComponent( locationUrl );\n\t\t\t} catch ( error ) {}\n\n\t\t\treturn anchor.hash.length > 1 && anchorUrl === locationUrl;\n\t\t};\n\t} )(),\n\n\t_create: function() {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tthis.running = false;\n\n\t\tthis._addClass( \"ui-tabs\", \"ui-widget ui-widget-content\" );\n\t\tthis._toggleClass( \"ui-tabs-collapsible\", null, options.collapsible );\n\n\t\tthis._processTabs();\n\t\toptions.active = this._initialActive();\n\n\t\t// Take disabling tabs via class attribute from HTML\n\t\t// into account and update option properly.\n\t\tif ( $.isArray( options.disabled ) ) {\n\t\t\toptions.disabled = $.unique( options.disabled.concat(\n\t\t\t\t$.map( this.tabs.filter( \".ui-state-disabled\" ), function( li ) {\n\t\t\t\t\treturn that.tabs.index( li );\n\t\t\t\t} )\n\t\t\t) ).sort();\n\t\t}\n\n\t\t// Check for length avoids error when initializing empty list\n\t\tif ( this.options.active !== false && this.anchors.length ) {\n\t\t\tthis.active = this._findActive( options.active );\n\t\t} else {\n\t\t\tthis.active = $();\n\t\t}\n\n\t\tthis._refresh();\n\n\t\tif ( this.active.length ) {\n\t\t\tthis.load( options.active );\n\t\t}\n\t},\n\n\t_initialActive: function() {\n\t\tvar active = this.options.active,\n\t\t\tcollapsible = this.options.collapsible,\n\t\t\tlocationHash = location.hash.substring( 1 );\n\n\t\tif ( active === null ) {\n\n\t\t\t// check the fragment identifier in the URL\n\t\t\tif ( locationHash ) {\n\t\t\t\tthis.tabs.each( function( i, tab ) {\n\t\t\t\t\tif ( $( tab ).attr( \"aria-controls\" ) === locationHash ) {\n\t\t\t\t\t\tactive = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Check for a tab marked active via a class\n\t\t\tif ( active === null ) {\n\t\t\t\tactive = this.tabs.index( this.tabs.filter( \".ui-tabs-active\" ) );\n\t\t\t}\n\n\t\t\t// No active tab, set to false\n\t\t\tif ( active === null || active === -1 ) {\n\t\t\t\tactive = this.tabs.length ? 0 : false;\n\t\t\t}\n\t\t}\n\n\t\t// Handle numbers: negative, out of range\n\t\tif ( active !== false ) {\n\t\t\tactive = this.tabs.index( this.tabs.eq( active ) );\n\t\t\tif ( active === -1 ) {\n\t\t\t\tactive = collapsible ? false : 0;\n\t\t\t}\n\t\t}\n\n\t\t// Don't allow collapsible: false and active: false\n\t\tif ( !collapsible && active === false && this.anchors.length ) {\n\t\t\tactive = 0;\n\t\t}\n\n\t\treturn active;\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\ttab: this.active,\n\t\t\tpanel: !this.active.length ? $() : this._getPanelForTab( this.active )\n\t\t};\n\t},\n\n\t_tabKeydown: function( event ) {\n\t\tvar focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( \"li\" ),\n\t\t\tselectedIndex = this.tabs.index( focusedTab ),\n\t\t\tgoingForward = true;\n\n\t\tif ( this._handlePageNav( event ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase $.ui.keyCode.RIGHT:\n\t\tcase $.ui.keyCode.DOWN:\n\t\t\tselectedIndex++;\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.UP:\n\t\tcase $.ui.keyCode.LEFT:\n\t\t\tgoingForward = false;\n\t\t\tselectedIndex--;\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.END:\n\t\t\tselectedIndex = this.anchors.length - 1;\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.HOME:\n\t\t\tselectedIndex = 0;\n\t\t\tbreak;\n\t\tcase $.ui.keyCode.SPACE:\n\n\t\t\t// Activate only, no collapsing\n\t\t\tevent.preventDefault();\n\t\t\tclearTimeout( this.activating );\n\t\t\tthis._activate( selectedIndex );\n\t\t\treturn;\n\t\tcase $.ui.keyCode.ENTER:\n\n\t\t\t// Toggle (cancel delayed activation, allow collapsing)\n\t\t\tevent.preventDefault();\n\t\t\tclearTimeout( this.activating );\n\n\t\t\t// Determine if we should collapse or activate\n\t\t\tthis._activate( selectedIndex === this.options.active ? false : selectedIndex );\n\t\t\treturn;\n\t\tdefault:\n\t\t\treturn;\n\t\t}\n\n\t\t// Focus the appropriate tab, based on which key was pressed\n\t\tevent.preventDefault();\n\t\tclearTimeout( this.activating );\n\t\tselectedIndex = this._focusNextTab( selectedIndex, goingForward );\n\n\t\t// Navigating with control/command key will prevent automatic activation\n\t\tif ( !event.ctrlKey && !event.metaKey ) {\n\n\t\t\t// Update aria-selected immediately so that AT think the tab is already selected.\n\t\t\t// Otherwise AT may confuse the user by stating that they need to activate the tab,\n\t\t\t// but the tab will already be activated by the time the announcement finishes.\n\t\t\tfocusedTab.attr( \"aria-selected\", \"false\" );\n\t\t\tthis.tabs.eq( selectedIndex ).attr( \"aria-selected\", \"true\" );\n\n\t\t\tthis.activating = this._delay( function() {\n\t\t\t\tthis.option( \"active\", selectedIndex );\n\t\t\t}, this.delay );\n\t\t}\n\t},\n\n\t_panelKeydown: function( event ) {\n\t\tif ( this._handlePageNav( event ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ctrl+up moves focus to the current tab\n\t\tif ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.active.trigger( \"focus\" );\n\t\t}\n\t},\n\n\t// Alt+page up/down moves focus to the previous/next tab (and activates)\n\t_handlePageNav: function( event ) {\n\t\tif ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {\n\t\t\tthis._activate( this._focusNextTab( this.options.active - 1, false ) );\n\t\t\treturn true;\n\t\t}\n\t\tif ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {\n\t\t\tthis._activate( this._focusNextTab( this.options.active + 1, true ) );\n\t\t\treturn true;\n\t\t}\n\t},\n\n\t_findNextTab: function( index, goingForward ) {\n\t\tvar lastTabIndex = this.tabs.length - 1;\n\n\t\tfunction constrain() {\n\t\t\tif ( index > lastTabIndex ) {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\tif ( index < 0 ) {\n\t\t\t\tindex = lastTabIndex;\n\t\t\t}\n\t\t\treturn index;\n\t\t}\n\n\t\twhile ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {\n\t\t\tindex = goingForward ? index + 1 : index - 1;\n\t\t}\n\n\t\treturn index;\n\t},\n\n\t_focusNextTab: function( index, goingForward ) {\n\t\tindex = this._findNextTab( index, goingForward );\n\t\tthis.tabs.eq( index ).trigger( \"focus\" );\n\t\treturn index;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"collapsible\" ) {\n\t\t\tthis._toggleClass( \"ui-tabs-collapsible\", null, value );\n\n\t\t\t// Setting collapsible: false while collapsed; open first panel\n\t\t\tif ( !value && this.options.active === false ) {\n\t\t\t\tthis._activate( 0 );\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tif ( key === \"heightStyle\" ) {\n\t\t\tthis._setupHeightStyle( value );\n\t\t}\n\t},\n\n\t_sanitizeSelector: function( hash ) {\n\t\treturn hash ? hash.replace( /[!\"$%&'()*+,.\\/:;<=>?@\\[\\]\\^`{|}~]/g, \"\\\\$&\" ) : \"\";\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options,\n\t\t\tlis = this.tablist.children( \":has(a[href])\" );\n\n\t\t// Get disabled tabs from class attribute from HTML\n\t\t// this will get converted to a boolean if needed in _refresh()\n\t\toptions.disabled = $.map( lis.filter( \".ui-state-disabled\" ), function( tab ) {\n\t\t\treturn lis.index( tab );\n\t\t} );\n\n\t\tthis._processTabs();\n\n\t\t// Was collapsed or no tabs\n\t\tif ( options.active === false || !this.anchors.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\n\t\t// was active, but active tab is gone\n\t\t} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {\n\n\t\t\t// all remaining tabs are disabled\n\t\t\tif ( this.tabs.length === options.disabled.length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t// activate previous tab\n\t\t\t} else {\n\t\t\t\tthis._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );\n\t\t\t}\n\n\t\t// was active, active tab still exists\n\t\t} else {\n\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.tabs.index( this.active );\n\t\t}\n\n\t\tthis._refresh();\n\t},\n\n\t_refresh: function() {\n\t\tthis._setOptionDisabled( this.options.disabled );\n\t\tthis._setupEvents( this.options.event );\n\t\tthis._setupHeightStyle( this.options.heightStyle );\n\n\t\tthis.tabs.not( this.active ).attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\",\n\t\t\ttabIndex: -1\n\t\t} );\n\t\tthis.panels.not( this._getPanelForTab( this.active ) )\n\t\t\t.hide()\n\t\t\t.attr( {\n\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t} );\n\n\t\t// Make sure one tab is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.tabs.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t} );\n\t\t\tthis._addClass( this.active, \"ui-tabs-active\", \"ui-state-active\" );\n\t\t\tthis._getPanelForTab( this.active )\n\t\t\t\t.show()\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t} );\n\t\t}\n\t},\n\n\t_processTabs: function() {\n\t\tvar that = this,\n\t\t\tprevTabs = this.tabs,\n\t\t\tprevAnchors = this.anchors,\n\t\t\tprevPanels = this.panels;\n\n\t\tthis.tablist = this._getList().attr( \"role\", \"tablist\" );\n\t\tthis._addClass( this.tablist, \"ui-tabs-nav\",\n\t\t\t\"ui-helper-reset ui-helper-clearfix ui-widget-header\" );\n\n\t\t// Prevent users from focusing disabled tabs via click\n\t\tthis.tablist\n\t\t\t.on( \"mousedown\" + this.eventNamespace, \"> li\", function( event ) {\n\t\t\t\tif ( $( this ).is( \".ui-state-disabled\" ) ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\t// Support: IE <9\n\t\t\t// Preventing the default action in mousedown doesn't prevent IE\n\t\t\t// from focusing the element, so if the anchor gets focused, blur.\n\t\t\t// We don't have to worry about focusing the previously focused\n\t\t\t// element since clicking on a non-focusable element should focus\n\t\t\t// the body anyway.\n\t\t\t.on( \"focus\" + this.eventNamespace, \".ui-tabs-anchor\", function() {\n\t\t\t\tif ( $( this ).closest( \"li\" ).is( \".ui-state-disabled\" ) ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis.tabs = this.tablist.find( \"> li:has(a[href])\" )\n\t\t\t.attr( {\n\t\t\t\trole: \"tab\",\n\t\t\t\ttabIndex: -1\n\t\t\t} );\n\t\tthis._addClass( this.tabs, \"ui-tabs-tab\", \"ui-state-default\" );\n\n\t\tthis.anchors = this.tabs.map( function() {\n\t\t\treturn $( \"a\", this )[ 0 ];\n\t\t} )\n\t\t\t.attr( {\n\t\t\t\trole: \"presentation\",\n\t\t\t\ttabIndex: -1\n\t\t\t} );\n\t\tthis._addClass( this.anchors, \"ui-tabs-anchor\" );\n\n\t\tthis.panels = $();\n\n\t\tthis.anchors.each( function( i, anchor ) {\n\t\t\tvar selector, panel, panelId,\n\t\t\t\tanchorId = $( anchor ).uniqueId().attr( \"id\" ),\n\t\t\t\ttab = $( anchor ).closest( \"li\" ),\n\t\t\t\toriginalAriaControls = tab.attr( \"aria-controls\" );\n\n\t\t\t// Inline tab\n\t\t\tif ( that._isLocal( anchor ) ) {\n\t\t\t\tselector = anchor.hash;\n\t\t\t\tpanelId = selector.substring( 1 );\n\t\t\t\tpanel = that.element.find( that._sanitizeSelector( selector ) );\n\n\t\t\t// remote tab\n\t\t\t} else {\n\n\t\t\t\t// If the tab doesn't already have aria-controls,\n\t\t\t\t// generate an id by using a throw-away element\n\t\t\t\tpanelId = tab.attr( \"aria-controls\" ) || $( {} ).uniqueId()[ 0 ].id;\n\t\t\t\tselector = \"#\" + panelId;\n\t\t\t\tpanel = that.element.find( selector );\n\t\t\t\tif ( !panel.length ) {\n\t\t\t\t\tpanel = that._createPanel( panelId );\n\t\t\t\t\tpanel.insertAfter( that.panels[ i - 1 ] || that.tablist );\n\t\t\t\t}\n\t\t\t\tpanel.attr( \"aria-live\", \"polite\" );\n\t\t\t}\n\n\t\t\tif ( panel.length ) {\n\t\t\t\tthat.panels = that.panels.add( panel );\n\t\t\t}\n\t\t\tif ( originalAriaControls ) {\n\t\t\t\ttab.data( \"ui-tabs-aria-controls\", originalAriaControls );\n\t\t\t}\n\t\t\ttab.attr( {\n\t\t\t\t\"aria-controls\": panelId,\n\t\t\t\t\"aria-labelledby\": anchorId\n\t\t\t} );\n\t\t\tpanel.attr( \"aria-labelledby\", anchorId );\n\t\t} );\n\n\t\tthis.panels.attr( \"role\", \"tabpanel\" );\n\t\tthis._addClass( this.panels, \"ui-tabs-panel\", \"ui-widget-content\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevTabs ) {\n\t\t\tthis._off( prevTabs.not( this.tabs ) );\n\t\t\tthis._off( prevAnchors.not( this.anchors ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t// Allow overriding how to find the list for rare usage scenarios (#7715)\n\t_getList: function() {\n\t\treturn this.tablist || this.element.find( \"ol, ul\" ).eq( 0 );\n\t},\n\n\t_createPanel: function( id ) {\n\t\treturn $( \"<div>\" )\n\t\t\t.attr( \"id\", id )\n\t\t\t.data( \"ui-tabs-destroy\", true );\n\t},\n\n\t_setOptionDisabled: function( disabled ) {\n\t\tvar currentItem, li, i;\n\n\t\tif ( $.isArray( disabled ) ) {\n\t\t\tif ( !disabled.length ) {\n\t\t\t\tdisabled = false;\n\t\t\t} else if ( disabled.length === this.anchors.length ) {\n\t\t\t\tdisabled = true;\n\t\t\t}\n\t\t}\n\n\t\t// Disable tabs\n\t\tfor ( i = 0; ( li = this.tabs[ i ] ); i++ ) {\n\t\t\tcurrentItem = $( li );\n\t\t\tif ( disabled === true || $.inArray( i, disabled ) !== -1 ) {\n\t\t\t\tcurrentItem.attr( \"aria-disabled\", \"true\" );\n\t\t\t\tthis._addClass( currentItem, null, \"ui-state-disabled\" );\n\t\t\t} else {\n\t\t\t\tcurrentItem.removeAttr( \"aria-disabled\" );\n\t\t\t\tthis._removeClass( currentItem, null, \"ui-state-disabled\" );\n\t\t\t}\n\t\t}\n\n\t\tthis.options.disabled = disabled;\n\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null,\n\t\t\tdisabled === true );\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t} );\n\t\t}\n\n\t\tthis._off( this.anchors.add( this.tabs ).add( this.panels ) );\n\n\t\t// Always prevent the default action, even when disabled\n\t\tthis._on( true, this.anchors, {\n\t\t\tclick: function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t} );\n\t\tthis._on( this.anchors, events );\n\t\tthis._on( this.tabs, { keydown: \"_tabKeydown\" } );\n\t\tthis._on( this.panels, { keydown: \"_panelKeydown\" } );\n\n\t\tthis._focusable( this.tabs );\n\t\tthis._hoverable( this.tabs );\n\t},\n\n\t_setupHeightStyle: function( heightStyle ) {\n\t\tvar maxHeight,\n\t\t\tparent = this.element.parent();\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tmaxHeight -= this.element.outerHeight() - this.element.height();\n\n\t\t\tthis.element.siblings( \":visible\" ).each( function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.element.children().not( this.panels ).each( function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.panels.each( function() {\n\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t} )\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.panels.each( function() {\n\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).height( \"\" ).height() );\n\t\t\t} ).height( maxHeight );\n\t\t}\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar options = this.options,\n\t\t\tactive = this.active,\n\t\t\tanchor = $( event.currentTarget ),\n\t\t\ttab = anchor.closest( \"li\" ),\n\t\t\tclickedIsActive = tab[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : this._getPanelForTab( tab ),\n\t\t\ttoHide = !active.length ? $() : this._getPanelForTab( active ),\n\t\t\teventData = {\n\t\t\t\toldTab: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewTab: collapsing ? $() : tab,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif ( tab.hasClass( \"ui-state-disabled\" ) ||\n\n\t\t\t\t// tab is already loading\n\t\t\t\ttab.hasClass( \"ui-tabs-loading\" ) ||\n\n\t\t\t\t// can't switch durning an animation\n\t\t\t\tthis.running ||\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.tabs.index( tab );\n\n\t\tthis.active = clickedIsActive ? $() : tab;\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tif ( !toHide.length && !toShow.length ) {\n\t\t\t$.error( \"jQuery UI Tabs: Mismatching fragment identifier.\" );\n\t\t}\n\n\t\tif ( toShow.length ) {\n\t\t\tthis.load( this.tabs.index( tab ), event );\n\t\t}\n\t\tthis._toggle( event, eventData );\n\t},\n\n\t// Handles show/hide for selecting tabs\n\t_toggle: function( event, eventData ) {\n\t\tvar that = this,\n\t\t\ttoShow = eventData.newPanel,\n\t\t\ttoHide = eventData.oldPanel;\n\n\t\tthis.running = true;\n\n\t\tfunction complete() {\n\t\t\tthat.running = false;\n\t\t\tthat._trigger( \"activate\", event, eventData );\n\t\t}\n\n\t\tfunction show() {\n\t\t\tthat._addClass( eventData.newTab.closest( \"li\" ), \"ui-tabs-active\", \"ui-state-active\" );\n\n\t\t\tif ( toShow.length && that.options.show ) {\n\t\t\t\tthat._show( toShow, that.options.show, complete );\n\t\t\t} else {\n\t\t\t\ttoShow.show();\n\t\t\t\tcomplete();\n\t\t\t}\n\t\t}\n\n\t\t// Start out by hiding, then showing, then completing\n\t\tif ( toHide.length && this.options.hide ) {\n\t\t\tthis._hide( toHide, this.options.hide, function() {\n\t\t\t\tthat._removeClass( eventData.oldTab.closest( \"li\" ),\n\t\t\t\t\t\"ui-tabs-active\", \"ui-state-active\" );\n\t\t\t\tshow();\n\t\t\t} );\n\t\t} else {\n\t\t\tthis._removeClass( eventData.oldTab.closest( \"li\" ),\n\t\t\t\t\"ui-tabs-active\", \"ui-state-active\" );\n\t\t\ttoHide.hide();\n\t\t\tshow();\n\t\t}\n\n\t\ttoHide.attr( \"aria-hidden\", \"true\" );\n\t\teventData.oldTab.attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t} );\n\n\t\t// If we're switching tabs, remove the old tab from the tab order.\n\t\t// If we're opening from collapsed state, remove the previous tab from the tab order.\n\t\t// If we're collapsing, then keep the collapsing tab in the tab order.\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\teventData.oldTab.attr( \"tabIndex\", -1 );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.tabs.filter( function() {\n\t\t\t\treturn $( this ).attr( \"tabIndex\" ) === 0;\n\t\t\t} )\n\t\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow.attr( \"aria-hidden\", \"false\" );\n\t\teventData.newTab.attr( {\n\t\t\t\"aria-selected\": \"true\",\n\t\t\t\"aria-expanded\": \"true\",\n\t\t\ttabIndex: 0\n\t\t} );\n\t},\n\n\t_activate: function( index ) {\n\t\tvar anchor,\n\t\t\tactive = this._findActive( index );\n\n\t\t// Trying to activate the already active panel\n\t\tif ( active[ 0 ] === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Trying to collapse, simulate a click on the current active header\n\t\tif ( !active.length ) {\n\t\t\tactive = this.active;\n\t\t}\n\n\t\tanchor = active.find( \".ui-tabs-anchor\" )[ 0 ];\n\t\tthis._eventHandler( {\n\t\t\ttarget: anchor,\n\t\t\tcurrentTarget: anchor,\n\t\t\tpreventDefault: $.noop\n\t\t} );\n\t},\n\n\t_findActive: function( index ) {\n\t\treturn index === false ? $() : this.tabs.eq( index );\n\t},\n\n\t_getIndex: function( index ) {\n\n\t\t// meta-function to give users option to provide a href string instead of a numerical index.\n\t\tif ( typeof index === \"string\" ) {\n\t\t\tindex = this.anchors.index( this.anchors.filter( \"[href$='\" +\n\t\t\t\t$.ui.escapeSelector( index ) + \"']\" ) );\n\t\t}\n\n\t\treturn index;\n\t},\n\n\t_destroy: function() {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tthis.tablist\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.off( this.eventNamespace );\n\n\t\tthis.anchors\n\t\t\t.removeAttr( \"role tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis.tabs.add( this.panels ).each( function() {\n\t\t\tif ( $.data( this, \"ui-tabs-destroy\" ) ) {\n\t\t\t\t$( this ).remove();\n\t\t\t} else {\n\t\t\t\t$( this ).removeAttr( \"role tabIndex \" +\n\t\t\t\t\t\"aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded\" );\n\t\t\t}\n\t\t} );\n\n\t\tthis.tabs.each( function() {\n\t\t\tvar li = $( this ),\n\t\t\t\tprev = li.data( \"ui-tabs-aria-controls\" );\n\t\t\tif ( prev ) {\n\t\t\t\tli\n\t\t\t\t\t.attr( \"aria-controls\", prev )\n\t\t\t\t\t.removeData( \"ui-tabs-aria-controls\" );\n\t\t\t} else {\n\t\t\t\tli.removeAttr( \"aria-controls\" );\n\t\t\t}\n\t\t} );\n\n\t\tthis.panels.show();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tthis.panels.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\tenable: function( index ) {\n\t\tvar disabled = this.options.disabled;\n\t\tif ( disabled === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( index === undefined ) {\n\t\t\tdisabled = false;\n\t\t} else {\n\t\t\tindex = this._getIndex( index );\n\t\t\tif ( $.isArray( disabled ) ) {\n\t\t\t\tdisabled = $.map( disabled, function( num ) {\n\t\t\t\t\treturn num !== index ? num : null;\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tdisabled = $.map( this.tabs, function( li, num ) {\n\t\t\t\t\treturn num !== index ? num : null;\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tthis._setOptionDisabled( disabled );\n\t},\n\n\tdisable: function( index ) {\n\t\tvar disabled = this.options.disabled;\n\t\tif ( disabled === true ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( index === undefined ) {\n\t\t\tdisabled = true;\n\t\t} else {\n\t\t\tindex = this._getIndex( index );\n\t\t\tif ( $.inArray( index, disabled ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( $.isArray( disabled ) ) {\n\t\t\t\tdisabled = $.merge( [ index ], disabled ).sort();\n\t\t\t} else {\n\t\t\t\tdisabled = [ index ];\n\t\t\t}\n\t\t}\n\t\tthis._setOptionDisabled( disabled );\n\t},\n\n\tload: function( index, event ) {\n\t\tindex = this._getIndex( index );\n\t\tvar that = this,\n\t\t\ttab = this.tabs.eq( index ),\n\t\t\tanchor = tab.find( \".ui-tabs-anchor\" ),\n\t\t\tpanel = this._getPanelForTab( tab ),\n\t\t\teventData = {\n\t\t\t\ttab: tab,\n\t\t\t\tpanel: panel\n\t\t\t},\n\t\t\tcomplete = function( jqXHR, status ) {\n\t\t\t\tif ( status === \"abort\" ) {\n\t\t\t\t\tthat.panels.stop( false, true );\n\t\t\t\t}\n\n\t\t\t\tthat._removeClass( tab, \"ui-tabs-loading\" );\n\t\t\t\tpanel.removeAttr( \"aria-busy\" );\n\n\t\t\t\tif ( jqXHR === that.xhr ) {\n\t\t\t\t\tdelete that.xhr;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Not remote\n\t\tif ( this._isLocal( anchor[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );\n\n\t\t// Support: jQuery <1.8\n\t\t// jQuery <1.8 returns false if the request is canceled in beforeSend,\n\t\t// but as of 1.8, $.ajax() always returns a jqXHR object.\n\t\tif ( this.xhr && this.xhr.statusText !== \"canceled\" ) {\n\t\t\tthis._addClass( tab, \"ui-tabs-loading\" );\n\t\t\tpanel.attr( \"aria-busy\", \"true\" );\n\n\t\t\tthis.xhr\n\t\t\t\t.done( function( response, status, jqXHR ) {\n\n\t\t\t\t\t// support: jQuery <1.8\n\t\t\t\t\t// http://bugs.jquery.com/ticket/11778\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\tpanel.html( response );\n\t\t\t\t\t\tthat._trigger( \"load\", event, eventData );\n\n\t\t\t\t\t\tcomplete( jqXHR, status );\n\t\t\t\t\t}, 1 );\n\t\t\t\t} )\n\t\t\t\t.fail( function( jqXHR, status ) {\n\n\t\t\t\t\t// support: jQuery <1.8\n\t\t\t\t\t// http://bugs.jquery.com/ticket/11778\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\tcomplete( jqXHR, status );\n\t\t\t\t\t}, 1 );\n\t\t\t\t} );\n\t\t}\n\t},\n\n\t_ajaxSettings: function( anchor, event, eventData ) {\n\t\tvar that = this;\n\t\treturn {\n\n\t\t\t// Support: IE <11 only\n\t\t\t// Strip any hash that exists to prevent errors with the Ajax request\n\t\t\turl: anchor.attr( \"href\" ).replace( /#.*$/, \"\" ),\n\t\t\tbeforeSend: function( jqXHR, settings ) {\n\t\t\t\treturn that._trigger( \"beforeLoad\", event,\n\t\t\t\t\t$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );\n\t\t\t}\n\t\t};\n\t},\n\n\t_getPanelForTab: function( tab ) {\n\t\tvar id = $( tab ).attr( \"aria-controls\" );\n\t\treturn this.element.find( this._sanitizeSelector( \"#\" + id ) );\n\t}\n} );\n\n// DEPRECATED\n// TODO: Switch return back to widget declaration at top of file when this is removed\nif ( $.uiBackCompat !== false ) {\n\n\t// Backcompat for ui-tab class (now ui-tabs-tab)\n\t$.widget( \"ui.tabs\", $.ui.tabs, {\n\t\t_processTabs: function() {\n\t\t\tthis._superApply( arguments );\n\t\t\tthis._addClass( this.tabs, \"ui-tab\" );\n\t\t}\n\t} );\n}\n\nvar widgetsTabs = $.ui.tabs;\n\n\n/*!\n * jQuery UI Tooltip 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Tooltip\n//>>group: Widgets\n//>>description: Shows additional information for any element on hover or focus.\n//>>docs: http://api.jqueryui.com/tooltip/\n//>>demos: http://jqueryui.com/tooltip/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/tooltip.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\n$.widget( \"ui.tooltip\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tclasses: {\n\t\t\t\"ui-tooltip\": \"ui-corner-all ui-widget-shadow\"\n\t\t},\n\t\tcontent: function() {\n\n\t\t\t// support: IE<9, Opera in jQuery <1.7\n\t\t\t// .text() can't accept undefined, so coerce to a string\n\t\t\tvar title = $( this ).attr( \"title\" ) || \"\";\n\n\t\t\t// Escape title, since we're going from an attribute to raw HTML\n\t\t\treturn $( \"<a>\" ).text( title ).html();\n\t\t},\n\t\thide: true,\n\n\t\t// Disabled elements have inconsistent behavior across browsers (#8661)\n\t\titems: \"[title]:not([disabled])\",\n\t\tposition: {\n\t\t\tmy: \"left top+15\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"flipfit flip\"\n\t\t},\n\t\tshow: true,\n\t\ttrack: false,\n\n\t\t// Callbacks\n\t\tclose: null,\n\t\topen: null\n\t},\n\n\t_addDescribedBy: function( elem, id ) {\n\t\tvar describedby = ( elem.attr( \"aria-describedby\" ) || \"\" ).split( /\\s+/ );\n\t\tdescribedby.push( id );\n\t\telem\n\t\t\t.data( \"ui-tooltip-id\", id )\n\t\t\t.attr( \"aria-describedby\", $.trim( describedby.join( \" \" ) ) );\n\t},\n\n\t_removeDescribedBy: function( elem ) {\n\t\tvar id = elem.data( \"ui-tooltip-id\" ),\n\t\t\tdescribedby = ( elem.attr( \"aria-describedby\" ) || \"\" ).split( /\\s+/ ),\n\t\t\tindex = $.inArray( id, describedby );\n\n\t\tif ( index !== -1 ) {\n\t\t\tdescribedby.splice( index, 1 );\n\t\t}\n\n\t\telem.removeData( \"ui-tooltip-id\" );\n\t\tdescribedby = $.trim( describedby.join( \" \" ) );\n\t\tif ( describedby ) {\n\t\t\telem.attr( \"aria-describedby\", describedby );\n\t\t} else {\n\t\t\telem.removeAttr( \"aria-describedby\" );\n\t\t}\n\t},\n\n\t_create: function() {\n\t\tthis._on( {\n\t\t\tmouseover: \"open\",\n\t\t\tfocusin: \"open\"\n\t\t} );\n\n\t\t// IDs of generated tooltips, needed for destroy\n\t\tthis.tooltips = {};\n\n\t\t// IDs of parent tooltips where we removed the title attribute\n\t\tthis.parents = {};\n\n\t\t// Append the aria-live region so tooltips announce correctly\n\t\tthis.liveRegion = $( \"<div>\" )\n\t\t\t.attr( {\n\t\t\t\trole: \"log\",\n\t\t\t\t\"aria-live\": \"assertive\",\n\t\t\t\t\"aria-relevant\": \"additions\"\n\t\t\t} )\n\t\t\t.appendTo( this.document[ 0 ].body );\n\t\tthis._addClass( this.liveRegion, null, \"ui-helper-hidden-accessible\" );\n\n\t\tthis.disabledTitles = $( [] );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar that = this;\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"content\" ) {\n\t\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\t\t\t\tthat._updateContent( tooltipData.element );\n\t\t\t} );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis[ value ? \"_disable\" : \"_enable\" ]();\n\t},\n\n\t_disable: function() {\n\t\tvar that = this;\n\n\t\t// Close open tooltips\n\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\t\t\tvar event = $.Event( \"blur\" );\n\t\t\tevent.target = event.currentTarget = tooltipData.element[ 0 ];\n\t\t\tthat.close( event, true );\n\t\t} );\n\n\t\t// Remove title attributes to prevent native tooltips\n\t\tthis.disabledTitles = this.disabledTitles.add(\n\t\t\tthis.element.find( this.options.items ).addBack()\n\t\t\t\t.filter( function() {\n\t\t\t\t\tvar element = $( this );\n\t\t\t\t\tif ( element.is( \"[title]\" ) ) {\n\t\t\t\t\t\treturn element\n\t\t\t\t\t\t\t.data( \"ui-tooltip-title\", element.attr( \"title\" ) )\n\t\t\t\t\t\t\t.removeAttr( \"title\" );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t);\n\t},\n\n\t_enable: function() {\n\n\t\t// restore title attributes\n\t\tthis.disabledTitles.each( function() {\n\t\t\tvar element = $( this );\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t}\n\t\t} );\n\t\tthis.disabledTitles = $( [] );\n\t},\n\n\topen: function( event ) {\n\t\tvar that = this,\n\t\t\ttarget = $( event ? event.target : this.element )\n\n\t\t\t\t// we need closest here due to mouseover bubbling,\n\t\t\t\t// but always pointing at the same event target\n\t\t\t\t.closest( this.options.items );\n\n\t\t// No element to show a tooltip for or the tooltip is already open\n\t\tif ( !target.length || target.data( \"ui-tooltip-id\" ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( target.attr( \"title\" ) ) {\n\t\t\ttarget.data( \"ui-tooltip-title\", target.attr( \"title\" ) );\n\t\t}\n\n\t\ttarget.data( \"ui-tooltip-open\", true );\n\n\t\t// Kill parent tooltips, custom or native, for hover\n\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\ttarget.parents().each( function() {\n\t\t\t\tvar parent = $( this ),\n\t\t\t\t\tblurEvent;\n\t\t\t\tif ( parent.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\t\tblurEvent = $.Event( \"blur\" );\n\t\t\t\t\tblurEvent.target = blurEvent.currentTarget = this;\n\t\t\t\t\tthat.close( blurEvent, true );\n\t\t\t\t}\n\t\t\t\tif ( parent.attr( \"title\" ) ) {\n\t\t\t\t\tparent.uniqueId();\n\t\t\t\t\tthat.parents[ this.id ] = {\n\t\t\t\t\t\telement: this,\n\t\t\t\t\t\ttitle: parent.attr( \"title\" )\n\t\t\t\t\t};\n\t\t\t\t\tparent.attr( \"title\", \"\" );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tthis._registerCloseHandlers( event, target );\n\t\tthis._updateContent( target, event );\n\t},\n\n\t_updateContent: function( target, event ) {\n\t\tvar content,\n\t\t\tcontentOption = this.options.content,\n\t\t\tthat = this,\n\t\t\teventType = event ? event.type : null;\n\n\t\tif ( typeof contentOption === \"string\" || contentOption.nodeType ||\n\t\t\t\tcontentOption.jquery ) {\n\t\t\treturn this._open( event, target, contentOption );\n\t\t}\n\n\t\tcontent = contentOption.call( target[ 0 ], function( response ) {\n\n\t\t\t// IE may instantly serve a cached response for ajax requests\n\t\t\t// delay this call to _open so the other call to _open runs first\n\t\t\tthat._delay( function() {\n\n\t\t\t\t// Ignore async response if tooltip was closed already\n\t\t\t\tif ( !target.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// JQuery creates a special event for focusin when it doesn't\n\t\t\t\t// exist natively. To improve performance, the native event\n\t\t\t\t// object is reused and the type is changed. Therefore, we can't\n\t\t\t\t// rely on the type being correct after the event finished\n\t\t\t\t// bubbling, so we set it back to the previous value. (#8740)\n\t\t\t\tif ( event ) {\n\t\t\t\t\tevent.type = eventType;\n\t\t\t\t}\n\t\t\t\tthis._open( event, target, response );\n\t\t\t} );\n\t\t} );\n\t\tif ( content ) {\n\t\t\tthis._open( event, target, content );\n\t\t}\n\t},\n\n\t_open: function( event, target, content ) {\n\t\tvar tooltipData, tooltip, delayedShow, a11yContent,\n\t\t\tpositionOption = $.extend( {}, this.options.position );\n\n\t\tif ( !content ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Content can be updated multiple times. If the tooltip already\n\t\t// exists, then just update the content and bail.\n\t\ttooltipData = this._find( target );\n\t\tif ( tooltipData ) {\n\t\t\ttooltipData.tooltip.find( \".ui-tooltip-content\" ).html( content );\n\t\t\treturn;\n\t\t}\n\n\t\t// If we have a title, clear it to prevent the native tooltip\n\t\t// we have to check first to avoid defining a title if none exists\n\t\t// (we don't want to cause an element to start matching [title])\n\t\t//\n\t\t// We use removeAttr only for key events, to allow IE to export the correct\n\t\t// accessible attributes. For mouse events, set to empty string to avoid\n\t\t// native tooltip showing up (happens only when removing inside mouseover).\n\t\tif ( target.is( \"[title]\" ) ) {\n\t\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\t\ttarget.attr( \"title\", \"\" );\n\t\t\t} else {\n\t\t\t\ttarget.removeAttr( \"title\" );\n\t\t\t}\n\t\t}\n\n\t\ttooltipData = this._tooltip( target );\n\t\ttooltip = tooltipData.tooltip;\n\t\tthis._addDescribedBy( target, tooltip.attr( \"id\" ) );\n\t\ttooltip.find( \".ui-tooltip-content\" ).html( content );\n\n\t\t// Support: Voiceover on OS X, JAWS on IE <= 9\n\t\t// JAWS announces deletions even when aria-relevant=\"additions\"\n\t\t// Voiceover will sometimes re-read the entire log region's contents from the beginning\n\t\tthis.liveRegion.children().hide();\n\t\ta11yContent = $( \"<div>\" ).html( tooltip.find( \".ui-tooltip-content\" ).html() );\n\t\ta11yContent.removeAttr( \"name\" ).find( \"[name]\" ).removeAttr( \"name\" );\n\t\ta11yContent.removeAttr( \"id\" ).find( \"[id]\" ).removeAttr( \"id\" );\n\t\ta11yContent.appendTo( this.liveRegion );\n\n\t\tfunction position( event ) {\n\t\t\tpositionOption.of = event;\n\t\t\tif ( tooltip.is( \":hidden\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttooltip.position( positionOption );\n\t\t}\n\t\tif ( this.options.track && event && /^mouse/.test( event.type ) ) {\n\t\t\tthis._on( this.document, {\n\t\t\t\tmousemove: position\n\t\t\t} );\n\n\t\t\t// trigger once to override element-relative positioning\n\t\t\tposition( event );\n\t\t} else {\n\t\t\ttooltip.position( $.extend( {\n\t\t\t\tof: target\n\t\t\t}, this.options.position ) );\n\t\t}\n\n\t\ttooltip.hide();\n\n\t\tthis._show( tooltip, this.options.show );\n\n\t\t// Handle tracking tooltips that are shown with a delay (#8644). As soon\n\t\t// as the tooltip is visible, position the tooltip using the most recent\n\t\t// event.\n\t\t// Adds the check to add the timers only when both delay and track options are set (#14682)\n\t\tif ( this.options.track && this.options.show && this.options.show.delay ) {\n\t\t\tdelayedShow = this.delayedShow = setInterval( function() {\n\t\t\t\tif ( tooltip.is( \":visible\" ) ) {\n\t\t\t\t\tposition( positionOption.of );\n\t\t\t\t\tclearInterval( delayedShow );\n\t\t\t\t}\n\t\t\t}, $.fx.interval );\n\t\t}\n\n\t\tthis._trigger( \"open\", event, { tooltip: tooltip } );\n\t},\n\n\t_registerCloseHandlers: function( event, target ) {\n\t\tvar events = {\n\t\t\tkeyup: function( event ) {\n\t\t\t\tif ( event.keyCode === $.ui.keyCode.ESCAPE ) {\n\t\t\t\t\tvar fakeEvent = $.Event( event );\n\t\t\t\t\tfakeEvent.currentTarget = target[ 0 ];\n\t\t\t\t\tthis.close( fakeEvent, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Only bind remove handler for delegated targets. Non-delegated\n\t\t// tooltips will handle this in destroy.\n\t\tif ( target[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tevents.remove = function() {\n\t\t\t\tthis._removeTooltip( this._find( target ).tooltip );\n\t\t\t};\n\t\t}\n\n\t\tif ( !event || event.type === \"mouseover\" ) {\n\t\t\tevents.mouseleave = \"close\";\n\t\t}\n\t\tif ( !event || event.type === \"focusin\" ) {\n\t\t\tevents.focusout = \"close\";\n\t\t}\n\t\tthis._on( true, target, events );\n\t},\n\n\tclose: function( event ) {\n\t\tvar tooltip,\n\t\t\tthat = this,\n\t\t\ttarget = $( event ? event.currentTarget : this.element ),\n\t\t\ttooltipData = this._find( target );\n\n\t\t// The tooltip may already be closed\n\t\tif ( !tooltipData ) {\n\n\t\t\t// We set ui-tooltip-open immediately upon open (in open()), but only set the\n\t\t\t// additional data once there's actually content to show (in _open()). So even if the\n\t\t\t// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in\n\t\t\t// the period between open() and _open().\n\t\t\ttarget.removeData( \"ui-tooltip-open\" );\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip = tooltipData.tooltip;\n\n\t\t// Disabling closes the tooltip, so we need to track when we're closing\n\t\t// to avoid an infinite loop in case the tooltip becomes disabled on close\n\t\tif ( tooltipData.closing ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear the interval for delayed tracking tooltips\n\t\tclearInterval( this.delayedShow );\n\n\t\t// Only set title if we had one before (see comment in _open())\n\t\t// If the title attribute has changed since open(), don't restore\n\t\tif ( target.data( \"ui-tooltip-title\" ) && !target.attr( \"title\" ) ) {\n\t\t\ttarget.attr( \"title\", target.data( \"ui-tooltip-title\" ) );\n\t\t}\n\n\t\tthis._removeDescribedBy( target );\n\n\t\ttooltipData.hiding = true;\n\t\ttooltip.stop( true );\n\t\tthis._hide( tooltip, this.options.hide, function() {\n\t\t\tthat._removeTooltip( $( this ) );\n\t\t} );\n\n\t\ttarget.removeData( \"ui-tooltip-open\" );\n\t\tthis._off( target, \"mouseleave focusout keyup\" );\n\n\t\t// Remove 'remove' binding only on delegated targets\n\t\tif ( target[ 0 ] !== this.element[ 0 ] ) {\n\t\t\tthis._off( target, \"remove\" );\n\t\t}\n\t\tthis._off( this.document, \"mousemove\" );\n\n\t\tif ( event && event.type === \"mouseleave\" ) {\n\t\t\t$.each( this.parents, function( id, parent ) {\n\t\t\t\t$( parent.element ).attr( \"title\", parent.title );\n\t\t\t\tdelete that.parents[ id ];\n\t\t\t} );\n\t\t}\n\n\t\ttooltipData.closing = true;\n\t\tthis._trigger( \"close\", event, { tooltip: tooltip } );\n\t\tif ( !tooltipData.hiding ) {\n\t\t\ttooltipData.closing = false;\n\t\t}\n\t},\n\n\t_tooltip: function( element ) {\n\t\tvar tooltip = $( \"<div>\" ).attr( \"role\", \"tooltip\" ),\n\t\t\tcontent = $( \"<div>\" ).appendTo( tooltip ),\n\t\t\tid = tooltip.uniqueId().attr( \"id\" );\n\n\t\tthis._addClass( content, \"ui-tooltip-content\" );\n\t\tthis._addClass( tooltip, \"ui-tooltip\", \"ui-widget ui-widget-content\" );\n\n\t\ttooltip.appendTo( this._appendTo( element ) );\n\n\t\treturn this.tooltips[ id ] = {\n\t\t\telement: element,\n\t\t\ttooltip: tooltip\n\t\t};\n\t},\n\n\t_find: function( target ) {\n\t\tvar id = target.data( \"ui-tooltip-id\" );\n\t\treturn id ? this.tooltips[ id ] : null;\n\t},\n\n\t_removeTooltip: function( tooltip ) {\n\t\ttooltip.remove();\n\t\tdelete this.tooltips[ tooltip.attr( \"id\" ) ];\n\t},\n\n\t_appendTo: function( target ) {\n\t\tvar element = target.closest( \".ui-front, dialog\" );\n\n\t\tif ( !element.length ) {\n\t\t\telement = this.document[ 0 ].body;\n\t\t}\n\n\t\treturn element;\n\t},\n\n\t_destroy: function() {\n\t\tvar that = this;\n\n\t\t// Close open tooltips\n\t\t$.each( this.tooltips, function( id, tooltipData ) {\n\n\t\t\t// Delegate to close method to handle common cleanup\n\t\t\tvar event = $.Event( \"blur\" ),\n\t\t\t\telement = tooltipData.element;\n\t\t\tevent.target = event.currentTarget = element[ 0 ];\n\t\t\tthat.close( event, true );\n\n\t\t\t// Remove immediately; destroying an open tooltip doesn't use the\n\t\t\t// hide animation\n\t\t\t$( \"#\" + id ).remove();\n\n\t\t\t// Restore the title\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\n\t\t\t\t// If the title attribute has changed since open(), don't restore\n\t\t\t\tif ( !element.attr( \"title\" ) ) {\n\t\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t\t}\n\t\t\t\telement.removeData( \"ui-tooltip-title\" );\n\t\t\t}\n\t\t} );\n\t\tthis.liveRegion.remove();\n\t}\n} );\n\n// DEPRECATED\n// TODO: Switch return back to widget declaration at top of file when this is removed\nif ( $.uiBackCompat !== false ) {\n\n\t// Backcompat for tooltipClass option\n\t$.widget( \"ui.tooltip\", $.ui.tooltip, {\n\t\toptions: {\n\t\t\ttooltipClass: null\n\t\t},\n\t\t_tooltip: function() {\n\t\t\tvar tooltipData = this._superApply( arguments );\n\t\t\tif ( this.options.tooltipClass ) {\n\t\t\t\ttooltipData.tooltip.addClass( this.options.tooltipClass );\n\t\t\t}\n\t\t\treturn tooltipData;\n\t\t}\n\t} );\n}\n\nvar widgetsTooltip = $.ui.tooltip;\n\n\n\n\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-ui/jquery-ui.structure.css",
    "content": "/*!\n * jQuery UI CSS Framework 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n/* Layout helpers\n----------------------------------*/\n.ui-helper-hidden {\n\tdisplay: none;\n}\n.ui-helper-hidden-accessible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n.ui-helper-reset {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\toutline: 0;\n\tline-height: 1.3;\n\ttext-decoration: none;\n\tfont-size: 100%;\n\tlist-style: none;\n}\n.ui-helper-clearfix:before,\n.ui-helper-clearfix:after {\n\tcontent: \"\";\n\tdisplay: table;\n\tborder-collapse: collapse;\n}\n.ui-helper-clearfix:after {\n\tclear: both;\n}\n.ui-helper-zfix {\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tposition: absolute;\n\topacity: 0;\n\tfilter:Alpha(Opacity=0); /* support: IE8 */\n}\n\n.ui-front {\n\tz-index: 100;\n}\n\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-disabled {\n\tcursor: default !important;\n\tpointer-events: none;\n}\n\n\n/* Icons\n----------------------------------*/\n.ui-icon {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-top: -.25em;\n\tposition: relative;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n}\n\n.ui-widget-icon-block {\n\tleft: 50%;\n\tmargin-left: -8px;\n\tdisplay: block;\n}\n\n/* Misc visuals\n----------------------------------*/\n\n/* Overlays */\n.ui-widget-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}\n.ui-accordion .ui-accordion-header {\n\tdisplay: block;\n\tcursor: pointer;\n\tposition: relative;\n\tmargin: 2px 0 0 0;\n\tpadding: .5em .5em .5em .7em;\n\tfont-size: 100%;\n}\n.ui-accordion .ui-accordion-content {\n\tpadding: 1em 2.2em;\n\tborder-top: 0;\n\toverflow: auto;\n}\n.ui-autocomplete {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcursor: default;\n}\n.ui-menu {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: block;\n\toutline: 0;\n}\n.ui-menu .ui-menu {\n\tposition: absolute;\n}\n.ui-menu .ui-menu-item {\n\tmargin: 0;\n\tcursor: pointer;\n\t/* support: IE10, see #8844 */\n\tlist-style-image: url(\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\");\n}\n.ui-menu .ui-menu-item-wrapper {\n\tposition: relative;\n\tpadding: 3px 1em 3px .4em;\n}\n.ui-menu .ui-menu-divider {\n\tmargin: 5px 0;\n\theight: 0;\n\tfont-size: 0;\n\tline-height: 0;\n\tborder-width: 1px 0 0 0;\n}\n.ui-menu .ui-state-focus,\n.ui-menu .ui-state-active {\n\tmargin: -1px;\n}\n\n/* icon support */\n.ui-menu-icons {\n\tposition: relative;\n}\n.ui-menu-icons .ui-menu-item-wrapper {\n\tpadding-left: 2em;\n}\n\n/* left-aligned */\n.ui-menu .ui-icon {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: .2em;\n\tmargin: auto 0;\n}\n\n/* right-aligned */\n.ui-menu .ui-menu-icon {\n\tleft: auto;\n\tright: 0;\n}\n.ui-button {\n\tpadding: .4em 1em;\n\tdisplay: inline-block;\n\tposition: relative;\n\tline-height: normal;\n\tmargin-right: .1em;\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttext-align: center;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n\t/* Support: IE <= 11 */\n\toverflow: visible;\n}\n\n.ui-button,\n.ui-button:link,\n.ui-button:visited,\n.ui-button:hover,\n.ui-button:active {\n\ttext-decoration: none;\n}\n\n/* to make room for the icon, a width needs to be set here */\n.ui-button-icon-only {\n\twidth: 2em;\n\tbox-sizing: border-box;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n}\n\n/* no icon support for input elements */\ninput.ui-button.ui-button-icon-only {\n\ttext-indent: 0;\n}\n\n/* button icon element(s) */\n.ui-button-icon-only .ui-icon {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -8px;\n\tmargin-left: -8px;\n}\n\n.ui-button.ui-icon-notext .ui-icon {\n\tpadding: 0;\n\twidth: 2.1em;\n\theight: 2.1em;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n\n}\n\ninput.ui-button.ui-icon-notext .ui-icon {\n\twidth: auto;\n\theight: auto;\n\ttext-indent: 0;\n\twhite-space: normal;\n\tpadding: .4em 1em;\n}\n\n/* workarounds */\n/* Support: Firefox 5 - 40 */\ninput.ui-button::-moz-focus-inner,\nbutton.ui-button::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n.ui-controlgroup {\n\tvertical-align: middle;\n\tdisplay: inline-block;\n}\n.ui-controlgroup > .ui-controlgroup-item {\n\tfloat: left;\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n.ui-controlgroup > .ui-controlgroup-item:focus,\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\n\tz-index: 9999;\n}\n.ui-controlgroup-vertical > .ui-controlgroup-item {\n\tdisplay: block;\n\tfloat: none;\n\twidth: 100%;\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n\ttext-align: left;\n}\n.ui-controlgroup-vertical .ui-controlgroup-item {\n\tbox-sizing: border-box;\n}\n.ui-controlgroup .ui-controlgroup-label {\n\tpadding: .4em 1em;\n}\n.ui-controlgroup .ui-controlgroup-label span {\n\tfont-size: 80%;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-left: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-top: none;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\n\tborder-right: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\n\tborder-bottom: none;\n}\n\n/* Spinner specific style fixes */\n.ui-controlgroup-vertical .ui-spinner-input {\n\n\t/* Support: IE8 only, Android < 4.4 only */\n\twidth: 75%;\n\twidth: calc( 100% - 2.4em );\n}\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\n\tborder-top-style: solid;\n}\n\n.ui-checkboxradio-label .ui-icon-background {\n\tbox-shadow: inset 1px 1px 1px #ccc;\n\tborder-radius: .12em;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label .ui-icon-background {\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 1em;\n\toverflow: visible;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\n\tbackground-image: none;\n\twidth: 8px;\n\theight: 8px;\n\tborder-width: 4px;\n\tborder-style: solid;\n}\n.ui-checkboxradio-disabled {\n\tpointer-events: none;\n}\n.ui-datepicker {\n\twidth: 17em;\n\tpadding: .2em .2em 0;\n\tdisplay: none;\n}\n.ui-datepicker .ui-datepicker-header {\n\tposition: relative;\n\tpadding: .2em 0;\n}\n.ui-datepicker .ui-datepicker-prev,\n.ui-datepicker .ui-datepicker-next {\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n.ui-datepicker .ui-datepicker-prev-hover,\n.ui-datepicker .ui-datepicker-next-hover {\n\ttop: 1px;\n}\n.ui-datepicker .ui-datepicker-prev {\n\tleft: 2px;\n}\n.ui-datepicker .ui-datepicker-next {\n\tright: 2px;\n}\n.ui-datepicker .ui-datepicker-prev-hover {\n\tleft: 1px;\n}\n.ui-datepicker .ui-datepicker-next-hover {\n\tright: 1px;\n}\n.ui-datepicker .ui-datepicker-prev span,\n.ui-datepicker .ui-datepicker-next span {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -8px;\n\ttop: 50%;\n\tmargin-top: -8px;\n}\n.ui-datepicker .ui-datepicker-title {\n\tmargin: 0 2.3em;\n\tline-height: 1.8em;\n\ttext-align: center;\n}\n.ui-datepicker .ui-datepicker-title select {\n\tfont-size: 1em;\n\tmargin: 1px 0;\n}\n.ui-datepicker select.ui-datepicker-month,\n.ui-datepicker select.ui-datepicker-year {\n\twidth: 45%;\n}\n.ui-datepicker table {\n\twidth: 100%;\n\tfont-size: .9em;\n\tborder-collapse: collapse;\n\tmargin: 0 0 .4em;\n}\n.ui-datepicker th {\n\tpadding: .7em .3em;\n\ttext-align: center;\n\tfont-weight: bold;\n\tborder: 0;\n}\n.ui-datepicker td {\n\tborder: 0;\n\tpadding: 1px;\n}\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tdisplay: block;\n\tpadding: .2em;\n\ttext-align: right;\n\ttext-decoration: none;\n}\n.ui-datepicker .ui-datepicker-buttonpane {\n\tbackground-image: none;\n\tmargin: .7em 0 0 0;\n\tpadding: 0 .2em;\n\tborder-left: 0;\n\tborder-right: 0;\n\tborder-bottom: 0;\n}\n.ui-datepicker .ui-datepicker-buttonpane button {\n\tfloat: right;\n\tmargin: .5em .2em .4em;\n\tcursor: pointer;\n\tpadding: .2em .6em .3em .6em;\n\twidth: auto;\n\toverflow: visible;\n}\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\n\tfloat: left;\n}\n\n/* with multiple calendars */\n.ui-datepicker.ui-datepicker-multi {\n\twidth: auto;\n}\n.ui-datepicker-multi .ui-datepicker-group {\n\tfloat: left;\n}\n.ui-datepicker-multi .ui-datepicker-group table {\n\twidth: 95%;\n\tmargin: 0 auto .4em;\n}\n.ui-datepicker-multi-2 .ui-datepicker-group {\n\twidth: 50%;\n}\n.ui-datepicker-multi-3 .ui-datepicker-group {\n\twidth: 33.3%;\n}\n.ui-datepicker-multi-4 .ui-datepicker-group {\n\twidth: 25%;\n}\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-left-width: 0;\n}\n.ui-datepicker-multi .ui-datepicker-buttonpane {\n\tclear: left;\n}\n.ui-datepicker-row-break {\n\tclear: both;\n\twidth: 100%;\n\tfont-size: 0;\n}\n\n/* RTL support */\n.ui-datepicker-rtl {\n\tdirection: rtl;\n}\n.ui-datepicker-rtl .ui-datepicker-prev {\n\tright: 2px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next {\n\tleft: 2px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\n\tright: 1px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next:hover {\n\tleft: 1px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\n\tclear: right;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\n\tfloat: left;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\n.ui-datepicker-rtl .ui-datepicker-group {\n\tfloat: right;\n}\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-right-width: 0;\n\tborder-left-width: 1px;\n}\n\n/* Icons */\n.ui-datepicker .ui-icon {\n\tdisplay: block;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tleft: .5em;\n\ttop: .3em;\n}\n.ui-dialog {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: .2em;\n\toutline: 0;\n}\n.ui-dialog .ui-dialog-titlebar {\n\tpadding: .4em 1em;\n\tposition: relative;\n}\n.ui-dialog .ui-dialog-title {\n\tfloat: left;\n\tmargin: .1em 0;\n\twhite-space: nowrap;\n\twidth: 90%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-dialog .ui-dialog-titlebar-close {\n\tposition: absolute;\n\tright: .3em;\n\ttop: 50%;\n\twidth: 20px;\n\tmargin: -10px 0 0 0;\n\tpadding: 1px;\n\theight: 20px;\n}\n.ui-dialog .ui-dialog-content {\n\tposition: relative;\n\tborder: 0;\n\tpadding: .5em 1em;\n\tbackground: none;\n\toverflow: auto;\n}\n.ui-dialog .ui-dialog-buttonpane {\n\ttext-align: left;\n\tborder-width: 1px 0 0 0;\n\tbackground-image: none;\n\tmargin-top: .5em;\n\tpadding: .3em 1em .5em .4em;\n}\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n\tfloat: right;\n}\n.ui-dialog .ui-dialog-buttonpane button {\n\tmargin: .5em .4em .5em 0;\n\tcursor: pointer;\n}\n.ui-dialog .ui-resizable-n {\n\theight: 2px;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-e {\n\twidth: 2px;\n\tright: 0;\n}\n.ui-dialog .ui-resizable-s {\n\theight: 2px;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-w {\n\twidth: 2px;\n\tleft: 0;\n}\n.ui-dialog .ui-resizable-se,\n.ui-dialog .ui-resizable-sw,\n.ui-dialog .ui-resizable-ne,\n.ui-dialog .ui-resizable-nw {\n\twidth: 7px;\n\theight: 7px;\n}\n.ui-dialog .ui-resizable-se {\n\tright: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-sw {\n\tleft: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-ne {\n\tright: 0;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-nw {\n\tleft: 0;\n\ttop: 0;\n}\n.ui-draggable .ui-dialog-titlebar {\n\tcursor: move;\n}\n.ui-draggable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable {\n\tposition: relative;\n}\n.ui-resizable-handle {\n\tposition: absolute;\n\tfont-size: 0.1px;\n\tdisplay: block;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable-disabled .ui-resizable-handle,\n.ui-resizable-autohide .ui-resizable-handle {\n\tdisplay: none;\n}\n.ui-resizable-n {\n\tcursor: n-resize;\n\theight: 7px;\n\twidth: 100%;\n\ttop: -5px;\n\tleft: 0;\n}\n.ui-resizable-s {\n\tcursor: s-resize;\n\theight: 7px;\n\twidth: 100%;\n\tbottom: -5px;\n\tleft: 0;\n}\n.ui-resizable-e {\n\tcursor: e-resize;\n\twidth: 7px;\n\tright: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-w {\n\tcursor: w-resize;\n\twidth: 7px;\n\tleft: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-resizable-sw {\n\tcursor: sw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\tbottom: -5px;\n}\n.ui-resizable-nw {\n\tcursor: nw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\ttop: -5px;\n}\n.ui-resizable-ne {\n\tcursor: ne-resize;\n\twidth: 9px;\n\theight: 9px;\n\tright: -5px;\n\ttop: -5px;\n}\n.ui-progressbar {\n\theight: 2em;\n\ttext-align: left;\n\toverflow: hidden;\n}\n.ui-progressbar .ui-progressbar-value {\n\tmargin: -1px;\n\theight: 100%;\n}\n.ui-progressbar .ui-progressbar-overlay {\n\tbackground: url(\"data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==\");\n\theight: 100%;\n\tfilter: alpha(opacity=25); /* support: IE8 */\n\topacity: 0.25;\n}\n.ui-progressbar-indeterminate .ui-progressbar-value {\n\tbackground-image: none;\n}\n.ui-selectable {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-selectable-helper {\n\tposition: absolute;\n\tz-index: 100;\n\tborder: 1px dotted black;\n}\n.ui-selectmenu-menu {\n\tpadding: 0;\n\tmargin: 0;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: none;\n}\n.ui-selectmenu-menu .ui-menu {\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding-bottom: 1px;\n}\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\n\tfont-size: 1em;\n\tfont-weight: bold;\n\tline-height: 1.5;\n\tpadding: 2px 0.4em;\n\tmargin: 0.5em 0 0 0;\n\theight: auto;\n\tborder: 0;\n}\n.ui-selectmenu-open {\n\tdisplay: block;\n}\n.ui-selectmenu-text {\n\tdisplay: block;\n\tmargin-right: 20px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-selectmenu-button.ui-button {\n\ttext-align: left;\n\twhite-space: nowrap;\n\twidth: 14em;\n}\n.ui-selectmenu-icon.ui-icon {\n\tfloat: right;\n\tmargin-top: 0;\n}\n.ui-slider {\n\tposition: relative;\n\ttext-align: left;\n}\n.ui-slider .ui-slider-handle {\n\tposition: absolute;\n\tz-index: 2;\n\twidth: 1.2em;\n\theight: 1.2em;\n\tcursor: default;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-slider .ui-slider-range {\n\tposition: absolute;\n\tz-index: 1;\n\tfont-size: .7em;\n\tdisplay: block;\n\tborder: 0;\n\tbackground-position: 0 0;\n}\n\n/* support: IE8 - See #6727 */\n.ui-slider.ui-state-disabled .ui-slider-handle,\n.ui-slider.ui-state-disabled .ui-slider-range {\n\tfilter: inherit;\n}\n\n.ui-slider-horizontal {\n\theight: .8em;\n}\n.ui-slider-horizontal .ui-slider-handle {\n\ttop: -.3em;\n\tmargin-left: -.6em;\n}\n.ui-slider-horizontal .ui-slider-range {\n\ttop: 0;\n\theight: 100%;\n}\n.ui-slider-horizontal .ui-slider-range-min {\n\tleft: 0;\n}\n.ui-slider-horizontal .ui-slider-range-max {\n\tright: 0;\n}\n\n.ui-slider-vertical {\n\twidth: .8em;\n\theight: 100px;\n}\n.ui-slider-vertical .ui-slider-handle {\n\tleft: -.3em;\n\tmargin-left: 0;\n\tmargin-bottom: -.6em;\n}\n.ui-slider-vertical .ui-slider-range {\n\tleft: 0;\n\twidth: 100%;\n}\n.ui-slider-vertical .ui-slider-range-min {\n\tbottom: 0;\n}\n.ui-slider-vertical .ui-slider-range-max {\n\ttop: 0;\n}\n.ui-sortable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-spinner {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tpadding: 0;\n\tvertical-align: middle;\n}\n.ui-spinner-input {\n\tborder: none;\n\tbackground: none;\n\tcolor: inherit;\n\tpadding: .222em 0;\n\tmargin: .2em 0;\n\tvertical-align: middle;\n\tmargin-left: .4em;\n\tmargin-right: 2em;\n}\n.ui-spinner-button {\n\twidth: 1.6em;\n\theight: 50%;\n\tfont-size: .5em;\n\tpadding: 0;\n\tmargin: 0;\n\ttext-align: center;\n\tposition: absolute;\n\tcursor: default;\n\tdisplay: block;\n\toverflow: hidden;\n\tright: 0;\n}\n/* more specificity required here to override default borders */\n.ui-spinner a.ui-spinner-button {\n\tborder-top-style: none;\n\tborder-bottom-style: none;\n\tborder-right-style: none;\n}\n.ui-spinner-up {\n\ttop: 0;\n}\n.ui-spinner-down {\n\tbottom: 0;\n}\n.ui-tabs {\n\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \"fixed\") */\n\tpadding: .2em;\n}\n.ui-tabs .ui-tabs-nav {\n\tmargin: 0;\n\tpadding: .2em .2em 0;\n}\n.ui-tabs .ui-tabs-nav li {\n\tlist-style: none;\n\tfloat: left;\n\tposition: relative;\n\ttop: 0;\n\tmargin: 1px .2em 0 0;\n\tborder-bottom-width: 0;\n\tpadding: 0;\n\twhite-space: nowrap;\n}\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\n\tfloat: left;\n\tpadding: .5em 1em;\n\ttext-decoration: none;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\n\tmargin-bottom: -1px;\n\tpadding-bottom: 1px;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\n\tcursor: text;\n}\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\n\tcursor: pointer;\n}\n.ui-tabs .ui-tabs-panel {\n\tdisplay: block;\n\tborder-width: 0;\n\tpadding: 1em 1.4em;\n\tbackground: none;\n}\n.ui-tooltip {\n\tpadding: 8px;\n\tposition: absolute;\n\tz-index: 9999;\n\tmax-width: 300px;\n}\nbody .ui-tooltip {\n\tborder-width: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-ui/jquery-ui.theme.css",
    "content": "/*!\n * jQuery UI CSS Framework 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n *\n * To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6\n */\n\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd;\n\tbackground: #ffffff;\n\tcolor: #333333;\n}\n.ui-widget-content a {\n\tcolor: #333333;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd;\n\tbackground: #e9e9e9;\n\tcolor: #333333;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5;\n\tbackground: #f6f6f6;\n\tfont-weight: normal;\n\tcolor: #454545;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc;\n\tbackground: #ededed;\n\tfont-weight: normal;\n\tcolor: #2b2b2b;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff;\n\tbackground: #007fff;\n\tfont-weight: normal;\n\tcolor: #ffffff;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff;\n\tbackground-color: #ffffff;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n\tcolor: #777620;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e;\n\tbackground: #fffa90;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899;\n\tbackground: #fddfdf;\n\tcolor: #5f3f3f;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\tfilter:Alpha(Opacity=70); /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\tfilter:Alpha(Opacity=35); /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url(\"images/ui-icons_444444_256x240.png\");\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url(\"images/ui-icons_444444_256x240.png\");\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url(\"images/ui-icons_555555_256x240.png\");\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url(\"images/ui-icons_ffffff_256x240.png\");\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url(\"images/ui-icons_777620_256x240.png\");\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url(\"images/ui-icons_cc0000_256x240.png\");\n}\n.ui-button .ui-icon {\n\tbackground-image: url(\"images/ui-icons_777777_256x240.png\");\n}\n\n/* positioning */\n.ui-icon-blank { background-position: 16px 16px; }\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa;\n\topacity: .003;\n\tfilter: Alpha(Opacity=.3); /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0px 0px 5px #666666;\n\tbox-shadow: 0px 0px 5px #666666;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/additional-methods.js",
    "content": "/*!\n * jQuery Validation Plugin v1.19.3\n *\n * https://jqueryvalidation.org/\n *\n * Copyright (c) 2021 Jörn Zaefferer\n * Released under the MIT license\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"./jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n( function() {\n\n\tfunction stripHtml( value ) {\n\n\t\t// Remove html tags and space chars\n\t\treturn value.replace( /<.[^<>]*?>/g, \" \" ).replace( /&nbsp;|&#160;/gi, \" \" )\n\n\t\t// Remove punctuation\n\t\t.replace( /[.(),;:!?%#$'\\\"_+=\\/\\-“”’]*/g, \"\" );\n\t}\n\n\t$.validator.addMethod( \"maxWords\", function( value, element, params ) {\n\t\treturn this.optional( element ) || stripHtml( value ).match( /\\b\\w+\\b/g ).length <= params;\n\t}, $.validator.format( \"Please enter {0} words or less.\" ) );\n\n\t$.validator.addMethod( \"minWords\", function( value, element, params ) {\n\t\treturn this.optional( element ) || stripHtml( value ).match( /\\b\\w+\\b/g ).length >= params;\n\t}, $.validator.format( \"Please enter at least {0} words.\" ) );\n\n\t$.validator.addMethod( \"rangeWords\", function( value, element, params ) {\n\t\tvar valueStripped = stripHtml( value ),\n\t\t\tregex = /\\b\\w+\\b/g;\n\t\treturn this.optional( element ) || valueStripped.match( regex ).length >= params[ 0 ] && valueStripped.match( regex ).length <= params[ 1 ];\n\t}, $.validator.format( \"Please enter between {0} and {1} words.\" ) );\n\n}() );\n\n/**\n * This is used in the United States to process payments, deposits,\n * or transfers using the Automated Clearing House (ACH) or Fedwire\n * systems. A very common use case would be to validate a form for\n * an ACH bill payment.\n */\n$.validator.addMethod( \"abaRoutingNumber\", function( value ) {\n\tvar checksum = 0;\n\tvar tokens = value.split( \"\" );\n\tvar length = tokens.length;\n\n\t// Length Check\n\tif ( length !== 9 ) {\n\t\treturn false;\n\t}\n\n\t// Calc the checksum\n\t// https://en.wikipedia.org/wiki/ABA_routing_transit_number\n\tfor ( var i = 0; i < length; i += 3 ) {\n\t\tchecksum +=\tparseInt( tokens[ i ], 10 )     * 3 +\n\t\t\t\t\tparseInt( tokens[ i + 1 ], 10 ) * 7 +\n\t\t\t\t\tparseInt( tokens[ i + 2 ], 10 );\n\t}\n\n\t// If not zero and divisible by 10 then valid\n\tif ( checksum !== 0 && checksum % 10 === 0 ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}, \"Please enter a valid routing number.\" );\n\n// Accept a value from a file input based on a required mimetype\n$.validator.addMethod( \"accept\", function( value, element, param ) {\n\n\t// Split mime on commas in case we have multiple types we can accept\n\tvar typeParam = typeof param === \"string\" ? param.replace( /\\s/g, \"\" ) : \"image/*\",\n\t\toptionalValue = this.optional( element ),\n\t\ti, file, regex;\n\n\t// Element is optional\n\tif ( optionalValue ) {\n\t\treturn optionalValue;\n\t}\n\n\tif ( $( element ).attr( \"type\" ) === \"file\" ) {\n\n\t\t// Escape string to be used in the regex\n\t\t// see: https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\n\t\t// Escape also \"/*\" as \"/.*\" as a wildcard\n\t\ttypeParam = typeParam\n\t\t\t\t.replace( /[\\-\\[\\]\\/\\{\\}\\(\\)\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\" )\n\t\t\t\t.replace( /,/g, \"|\" )\n\t\t\t\t.replace( /\\/\\*/g, \"/.*\" );\n\n\t\t// Check if the element has a FileList before checking each file\n\t\tif ( element.files && element.files.length ) {\n\t\t\tregex = new RegExp( \".?(\" + typeParam + \")$\", \"i\" );\n\t\t\tfor ( i = 0; i < element.files.length; i++ ) {\n\t\t\t\tfile = element.files[ i ];\n\n\t\t\t\t// Grab the mimetype from the loaded file, verify it matches\n\t\t\t\tif ( !file.type.match( regex ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Either return true because we've validated each file, or because the\n\t// browser does not support element.files and the FileList feature\n\treturn true;\n}, $.validator.format( \"Please enter a value with a valid mimetype.\" ) );\n\n$.validator.addMethod( \"alphanumeric\", function( value, element ) {\n\treturn this.optional( element ) || /^\\w+$/i.test( value );\n}, \"Letters, numbers, and underscores only please\" );\n\n/*\n * Dutch bank account numbers (not 'giro' numbers) have 9 digits\n * and pass the '11 check'.\n * We accept the notation with spaces, as that is common.\n * acceptable: 123456789 or 12 34 56 789\n */\n$.validator.addMethod( \"bankaccountNL\", function( value, element ) {\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\tif ( !( /^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test( value ) ) ) {\n\t\treturn false;\n\t}\n\n\t// Now '11 check'\n\tvar account = value.replace( / /g, \"\" ), // Remove spaces\n\t\tsum = 0,\n\t\tlen = account.length,\n\t\tpos, factor, digit;\n\tfor ( pos = 0; pos < len; pos++ ) {\n\t\tfactor = len - pos;\n\t\tdigit = account.substring( pos, pos + 1 );\n\t\tsum = sum + factor * digit;\n\t}\n\treturn sum % 11 === 0;\n}, \"Please specify a valid bank account number\" );\n\n$.validator.addMethod( \"bankorgiroaccountNL\", function( value, element ) {\n\treturn this.optional( element ) ||\n\t\t\t( $.validator.methods.bankaccountNL.call( this, value, element ) ) ||\n\t\t\t( $.validator.methods.giroaccountNL.call( this, value, element ) );\n}, \"Please specify a valid bank or giro account number\" );\n\n/**\n * BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity.\n *\n * BIC pattern: BBBBCCLLbbb (8 or 11 characters long; bbb is optional)\n *\n * Validation is case-insensitive. Please make sure to normalize input yourself.\n *\n * BIC definition in detail:\n * - First 4 characters - bank code (only letters)\n * - Next 2 characters - ISO 3166-1 alpha-2 country code (only letters)\n * - Next 2 characters - location code (letters and digits)\n *   a. shall not start with '0' or '1'\n *   b. second character must be a letter ('O' is not allowed) or digit ('0' for test (therefore not allowed), '1' denoting passive participant, '2' typically reverse-billing)\n * - Last 3 characters - branch code, optional (shall not start with 'X' except in case of 'XXX' for primary office) (letters and digits)\n */\n$.validator.addMethod( \"bic\", function( value, element ) {\n    return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() );\n}, \"Please specify a valid BIC code\" );\n\n/*\n * Código de identificación fiscal ( CIF ) is the tax identification code for Spanish legal entities\n * Further rules can be found in Spanish on http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal\n *\n * Spanish CIF structure:\n *\n * [ T ][ P ][ P ][ N ][ N ][ N ][ N ][ N ][ C ]\n *\n * Where:\n *\n * T: 1 character. Kind of Organization Letter: [ABCDEFGHJKLMNPQRSUVW]\n * P: 2 characters. Province.\n * N: 5 characters. Secuencial Number within the province.\n * C: 1 character. Control Digit: [0-9A-J].\n *\n * [ T ]: Kind of Organizations. Possible values:\n *\n *   A. Corporations\n *   B. LLCs\n *   C. General partnerships\n *   D. Companies limited partnerships\n *   E. Communities of goods\n *   F. Cooperative Societies\n *   G. Associations\n *   H. Communities of homeowners in horizontal property regime\n *   J. Civil Societies\n *   K. Old format\n *   L. Old format\n *   M. Old format\n *   N. Nonresident entities\n *   P. Local authorities\n *   Q. Autonomous bodies, state or not, and the like, and congregations and religious institutions\n *   R. Congregations and religious institutions (since 2008 ORDER EHA/451/2008)\n *   S. Organs of State Administration and regions\n *   V. Agrarian Transformation\n *   W. Permanent establishments of non-resident in Spain\n *\n * [ C ]: Control Digit. It can be a number or a letter depending on T value:\n * [ T ]  -->  [ C ]\n * ------    ----------\n *   A         Number\n *   B         Number\n *   E         Number\n *   H         Number\n *   K         Letter\n *   P         Letter\n *   Q         Letter\n *   S         Letter\n *\n */\n$.validator.addMethod( \"cifES\", function( value, element ) {\n\t\"use strict\";\n\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tvar cifRegEx = new RegExp( /^([ABCDEFGHJKLMNPQRSUVW])(\\d{7})([0-9A-J])$/gi );\n\tvar letter  = value.substring( 0, 1 ), // [ T ]\n\t\tnumber  = value.substring( 1, 8 ), // [ P ][ P ][ N ][ N ][ N ][ N ][ N ]\n\t\tcontrol = value.substring( 8, 9 ), // [ C ]\n\t\tall_sum = 0,\n\t\teven_sum = 0,\n\t\todd_sum = 0,\n\t\ti, n,\n\t\tcontrol_digit,\n\t\tcontrol_letter;\n\n\tfunction isOdd( n ) {\n\t\treturn n % 2 === 0;\n\t}\n\n\t// Quick format test\n\tif ( value.length !== 9 || !cifRegEx.test( value ) ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = 0; i < number.length; i++ ) {\n\t\tn = parseInt( number[ i ], 10 );\n\n\t\t// Odd positions\n\t\tif ( isOdd( i ) ) {\n\n\t\t\t// Odd positions are multiplied first.\n\t\t\tn *= 2;\n\n\t\t\t// If the multiplication is bigger than 10 we need to adjust\n\t\t\todd_sum += n < 10 ? n : n - 9;\n\n\t\t// Even positions\n\t\t// Just sum them\n\t\t} else {\n\t\t\teven_sum += n;\n\t\t}\n\t}\n\n\tall_sum = even_sum + odd_sum;\n\tcontrol_digit = ( 10 - ( all_sum ).toString().substr( -1 ) ).toString();\n\tcontrol_digit = parseInt( control_digit, 10 ) > 9 ? \"0\" : control_digit;\n\tcontrol_letter = \"JABCDEFGHI\".substr( control_digit, 1 ).toString();\n\n\t// Control must be a digit\n\tif ( letter.match( /[ABEH]/ ) ) {\n\t\treturn control === control_digit;\n\n\t// Control must be a letter\n\t} else if ( letter.match( /[KPQS]/ ) ) {\n\t\treturn control === control_letter;\n\t}\n\n\t// Can be either\n\treturn control === control_digit || control === control_letter;\n\n}, \"Please specify a valid CIF number.\" );\n\n/*\n * Brazillian CNH number (Carteira Nacional de Habilitacao) is the License Driver number.\n * CNH numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation.\n */\n$.validator.addMethod( \"cnhBR\", function( value ) {\n\n  // Removing special characters from value\n  value = value.replace( /([~!@#$%^&*()_+=`{}\\[\\]\\-|\\\\:;'<>,.\\/? ])+/g, \"\" );\n\n  // Checking value to have 11 digits only\n  if ( value.length !== 11 ) {\n    return false;\n  }\n\n  var sum = 0, dsc = 0, firstChar,\n\t\tfirstCN, secondCN, i, j, v;\n\n  firstChar = value.charAt( 0 );\n\n  if ( new Array( 12 ).join( firstChar ) === value ) {\n    return false;\n  }\n\n  // Step 1 - using first Check Number:\n  for ( i = 0, j = 9, v = 0; i < 9; ++i, --j ) {\n    sum += +( value.charAt( i ) * j );\n  }\n\n  firstCN = sum % 11;\n  if ( firstCN >= 10 ) {\n    firstCN = 0;\n    dsc = 2;\n  }\n\n  sum = 0;\n  for ( i = 0, j = 1, v = 0; i < 9; ++i, ++j ) {\n    sum += +( value.charAt( i ) * j );\n  }\n\n  secondCN = sum % 11;\n  if ( secondCN >= 10 ) {\n    secondCN = 0;\n  } else {\n    secondCN = secondCN - dsc;\n  }\n\n  return ( String( firstCN ).concat( secondCN ) === value.substr( -2 ) );\n\n}, \"Please specify a valid CNH number\" );\n\n/*\n * Brazillian value number (Cadastrado de Pessoas Juridica).\n * value numbers have 14 digits in total: 12 numbers followed by 2 check numbers that are being used for validation.\n */\n$.validator.addMethod( \"cnpjBR\", function( value, element ) {\n\t\"use strict\";\n\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\t// Removing no number\n\tvalue = value.replace( /[^\\d]+/g, \"\" );\n\n\t// Checking value to have 14 digits only\n\tif ( value.length !== 14 ) {\n\t\treturn false;\n\t}\n\n\t// Elimina values invalidos conhecidos\n\tif ( value === \"00000000000000\" ||\n\t\tvalue === \"11111111111111\" ||\n\t\tvalue === \"22222222222222\" ||\n\t\tvalue === \"33333333333333\" ||\n\t\tvalue === \"44444444444444\" ||\n\t\tvalue === \"55555555555555\" ||\n\t\tvalue === \"66666666666666\" ||\n\t\tvalue === \"77777777777777\" ||\n\t\tvalue === \"88888888888888\" ||\n\t\tvalue === \"99999999999999\" ) {\n\t\treturn false;\n\t}\n\n\t// Valida DVs\n\tvar tamanho = ( value.length - 2 );\n\tvar numeros = value.substring( 0, tamanho );\n\tvar digitos = value.substring( tamanho );\n\tvar soma = 0;\n\tvar pos = tamanho - 7;\n\n\tfor ( var i = tamanho; i >= 1; i-- ) {\n\t\tsoma += numeros.charAt( tamanho - i ) * pos--;\n\t\tif ( pos < 2 ) {\n\t\t\tpos = 9;\n\t\t}\n\t}\n\n\tvar resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n\tif ( resultado !== parseInt( digitos.charAt( 0 ), 10 ) ) {\n\t\treturn false;\n\t}\n\n\ttamanho = tamanho + 1;\n\tnumeros = value.substring( 0, tamanho );\n\tsoma = 0;\n\tpos = tamanho - 7;\n\n\tfor ( var il = tamanho; il >= 1; il-- ) {\n\t\tsoma += numeros.charAt( tamanho - il ) * pos--;\n\t\tif ( pos < 2 ) {\n\t\t\tpos = 9;\n\t\t}\n\t}\n\n\tresultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n\tif ( resultado !== parseInt( digitos.charAt( 1 ), 10 ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n\n}, \"Please specify a CNPJ value number\" );\n\n/*\n * Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number.\n * CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation.\n */\n$.validator.addMethod( \"cpfBR\", function( value, element ) {\n\t\"use strict\";\n\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\t// Removing special characters from value\n\tvalue = value.replace( /([~!@#$%^&*()_+=`{}\\[\\]\\-|\\\\:;'<>,.\\/? ])+/g, \"\" );\n\n\t// Checking value to have 11 digits only\n\tif ( value.length !== 11 ) {\n\t\treturn false;\n\t}\n\n\tvar sum = 0,\n\t\tfirstCN, secondCN, checkResult, i;\n\n\tfirstCN = parseInt( value.substring( 9, 10 ), 10 );\n\tsecondCN = parseInt( value.substring( 10, 11 ), 10 );\n\n\tcheckResult = function( sum, cn ) {\n\t\tvar result = ( sum * 10 ) % 11;\n\t\tif ( ( result === 10 ) || ( result === 11 ) ) {\n\t\t\tresult = 0;\n\t\t}\n\t\treturn ( result === cn );\n\t};\n\n\t// Checking for dump data\n\tif ( value === \"\" ||\n\t\tvalue === \"00000000000\" ||\n\t\tvalue === \"11111111111\" ||\n\t\tvalue === \"22222222222\" ||\n\t\tvalue === \"33333333333\" ||\n\t\tvalue === \"44444444444\" ||\n\t\tvalue === \"55555555555\" ||\n\t\tvalue === \"66666666666\" ||\n\t\tvalue === \"77777777777\" ||\n\t\tvalue === \"88888888888\" ||\n\t\tvalue === \"99999999999\"\n\t) {\n\t\treturn false;\n\t}\n\n\t// Step 1 - using first Check Number:\n\tfor ( i = 1; i <= 9; i++ ) {\n\t\tsum = sum + parseInt( value.substring( i - 1, i ), 10 ) * ( 11 - i );\n\t}\n\n\t// If first Check Number (CN) is valid, move to Step 2 - using second Check Number:\n\tif ( checkResult( sum, firstCN ) ) {\n\t\tsum = 0;\n\t\tfor ( i = 1; i <= 10; i++ ) {\n\t\t\tsum = sum + parseInt( value.substring( i - 1, i ), 10 ) * ( 12 - i );\n\t\t}\n\t\treturn checkResult( sum, secondCN );\n\t}\n\treturn false;\n\n}, \"Please specify a valid CPF number\" );\n\n// https://jqueryvalidation.org/creditcard-method/\n// based on https://en.wikipedia.org/wiki/Luhn_algorithm\n$.validator.addMethod( \"creditcard\", function( value, element ) {\n\tif ( this.optional( element ) ) {\n\t\treturn \"dependency-mismatch\";\n\t}\n\n\t// Accept only spaces, digits and dashes\n\tif ( /[^0-9 \\-]+/.test( value ) ) {\n\t\treturn false;\n\t}\n\n\tvar nCheck = 0,\n\t\tnDigit = 0,\n\t\tbEven = false,\n\t\tn, cDigit;\n\n\tvalue = value.replace( /\\D/g, \"\" );\n\n\t// Basing min and max length on\n\t// https://dev.ean.com/general-info/valid-card-types/\n\tif ( value.length < 13 || value.length > 19 ) {\n\t\treturn false;\n\t}\n\n\tfor ( n = value.length - 1; n >= 0; n-- ) {\n\t\tcDigit = value.charAt( n );\n\t\tnDigit = parseInt( cDigit, 10 );\n\t\tif ( bEven ) {\n\t\t\tif ( ( nDigit *= 2 ) > 9 ) {\n\t\t\t\tnDigit -= 9;\n\t\t\t}\n\t\t}\n\n\t\tnCheck += nDigit;\n\t\tbEven = !bEven;\n\t}\n\n\treturn ( nCheck % 10 ) === 0;\n}, \"Please enter a valid credit card number.\" );\n\n/* NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator\n * Redistributed under the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0\n * Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings)\n */\n$.validator.addMethod( \"creditcardtypes\", function( value, element, param ) {\n\tif ( /[^0-9\\-]+/.test( value ) ) {\n\t\treturn false;\n\t}\n\n\tvalue = value.replace( /\\D/g, \"\" );\n\n\tvar validTypes = 0x0000;\n\n\tif ( param.mastercard ) {\n\t\tvalidTypes |= 0x0001;\n\t}\n\tif ( param.visa ) {\n\t\tvalidTypes |= 0x0002;\n\t}\n\tif ( param.amex ) {\n\t\tvalidTypes |= 0x0004;\n\t}\n\tif ( param.dinersclub ) {\n\t\tvalidTypes |= 0x0008;\n\t}\n\tif ( param.enroute ) {\n\t\tvalidTypes |= 0x0010;\n\t}\n\tif ( param.discover ) {\n\t\tvalidTypes |= 0x0020;\n\t}\n\tif ( param.jcb ) {\n\t\tvalidTypes |= 0x0040;\n\t}\n\tif ( param.unknown ) {\n\t\tvalidTypes |= 0x0080;\n\t}\n\tif ( param.all ) {\n\t\tvalidTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080;\n\t}\n\tif ( validTypes & 0x0001 && ( /^(5[12345])/.test( value ) || /^(2[234567])/.test( value ) ) ) { // Mastercard\n\t\treturn value.length === 16;\n\t}\n\tif ( validTypes & 0x0002 && /^(4)/.test( value ) ) { // Visa\n\t\treturn value.length === 16;\n\t}\n\tif ( validTypes & 0x0004 && /^(3[47])/.test( value ) ) { // Amex\n\t\treturn value.length === 15;\n\t}\n\tif ( validTypes & 0x0008 && /^(3(0[012345]|[68]))/.test( value ) ) { // Dinersclub\n\t\treturn value.length === 14;\n\t}\n\tif ( validTypes & 0x0010 && /^(2(014|149))/.test( value ) ) { // Enroute\n\t\treturn value.length === 15;\n\t}\n\tif ( validTypes & 0x0020 && /^(6011)/.test( value ) ) { // Discover\n\t\treturn value.length === 16;\n\t}\n\tif ( validTypes & 0x0040 && /^(3)/.test( value ) ) { // Jcb\n\t\treturn value.length === 16;\n\t}\n\tif ( validTypes & 0x0040 && /^(2131|1800)/.test( value ) ) { // Jcb\n\t\treturn value.length === 15;\n\t}\n\tif ( validTypes & 0x0080 ) { // Unknown\n\t\treturn true;\n\t}\n\treturn false;\n}, \"Please enter a valid credit card number.\" );\n\n/**\n * Validates currencies with any given symbols by @jameslouiz\n * Symbols can be optional or required. Symbols required by default\n *\n * Usage examples:\n *  currency: [\"£\", false] - Use false for soft currency validation\n *  currency: [\"$\", false]\n *  currency: [\"RM\", false] - also works with text based symbols such as \"RM\" - Malaysia Ringgit etc\n *\n *  <input class=\"currencyInput\" name=\"currencyInput\">\n *\n * Soft symbol checking\n *  currencyInput: {\n *     currency: [\"$\", false]\n *  }\n *\n * Strict symbol checking (default)\n *  currencyInput: {\n *     currency: \"$\"\n *     //OR\n *     currency: [\"$\", true]\n *  }\n *\n * Multiple Symbols\n *  currencyInput: {\n *     currency: \"$,£,¢\"\n *  }\n */\n$.validator.addMethod( \"currency\", function( value, element, param ) {\n    var isParamString = typeof param === \"string\",\n        symbol = isParamString ? param : param[ 0 ],\n        soft = isParamString ? true : param[ 1 ],\n        regex;\n\n    symbol = symbol.replace( /,/g, \"\" );\n    symbol = soft ? symbol + \"]\" : symbol + \"]?\";\n    regex = \"^[\" + symbol + \"([1-9]{1}[0-9]{0,2}(\\\\,[0-9]{3})*(\\\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\\\.[0-9]{0,2})?|0(\\\\.[0-9]{0,2})?|(\\\\.[0-9]{1,2})?)$\";\n    regex = new RegExp( regex );\n    return this.optional( element ) || regex.test( value );\n\n}, \"Please specify a valid currency\" );\n\n$.validator.addMethod( \"dateFA\", function( value, element ) {\n\treturn this.optional( element ) || /^[1-4]\\d{3}\\/((0?[1-6]\\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\\/(30|([1-2][0-9])|(0?[1-9]))))$/.test( value );\n}, $.validator.messages.date );\n\n/**\n * Return true, if the value is a valid date, also making this formal check dd/mm/yyyy.\n *\n * @example $.validator.methods.date(\"01/01/1900\")\n * @result true\n *\n * @example $.validator.methods.date(\"01/13/1990\")\n * @result false\n *\n * @example $.validator.methods.date(\"01.01.1900\")\n * @result false\n *\n * @example <input name=\"pippo\" class=\"{dateITA:true}\" />\n * @desc Declares an optional input element whose value must be a valid date.\n *\n * @name $.validator.methods.dateITA\n * @type Boolean\n * @cat Plugins/Validate/Methods\n */\n$.validator.addMethod( \"dateITA\", function( value, element ) {\n\tvar check = false,\n\t\tre = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\n\t\tadata, gg, mm, aaaa, xdata;\n\tif ( re.test( value ) ) {\n\t\tadata = value.split( \"/\" );\n\t\tgg = parseInt( adata[ 0 ], 10 );\n\t\tmm = parseInt( adata[ 1 ], 10 );\n\t\taaaa = parseInt( adata[ 2 ], 10 );\n\t\txdata = new Date( Date.UTC( aaaa, mm - 1, gg, 12, 0, 0, 0 ) );\n\t\tif ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth() === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) {\n\t\t\tcheck = true;\n\t\t} else {\n\t\t\tcheck = false;\n\t\t}\n\t} else {\n\t\tcheck = false;\n\t}\n\treturn this.optional( element ) || check;\n}, $.validator.messages.date );\n\n$.validator.addMethod( \"dateNL\", function( value, element ) {\n\treturn this.optional( element ) || /^(0?[1-9]|[12]\\d|3[01])[\\.\\/\\-](0?[1-9]|1[012])[\\.\\/\\-]([12]\\d)?(\\d\\d)$/.test( value );\n}, $.validator.messages.date );\n\n// Older \"accept\" file extension method. Old docs: http://docs.jquery.com/Plugins/Validation/Methods/accept\n$.validator.addMethod( \"extension\", function( value, element, param ) {\n\tparam = typeof param === \"string\" ? param.replace( /,/g, \"|\" ) : \"png|jpe?g|gif\";\n\treturn this.optional( element ) || value.match( new RegExp( \"\\\\.(\" + param + \")$\", \"i\" ) );\n}, $.validator.format( \"Please enter a value with a valid extension.\" ) );\n\n/**\n * Dutch giro account numbers (not bank numbers) have max 7 digits\n */\n$.validator.addMethod( \"giroaccountNL\", function( value, element ) {\n\treturn this.optional( element ) || /^[0-9]{1,7}$/.test( value );\n}, \"Please specify a valid giro account number\" );\n\n$.validator.addMethod( \"greaterThan\", function( value, element, param ) {\n    var target = $( param );\n\n    if ( this.settings.onfocusout && target.not( \".validate-greaterThan-blur\" ).length ) {\n        target.addClass( \"validate-greaterThan-blur\" ).on( \"blur.validate-greaterThan\", function() {\n            $( element ).valid();\n        } );\n    }\n\n    return value > target.val();\n}, \"Please enter a greater value.\" );\n\n$.validator.addMethod( \"greaterThanEqual\", function( value, element, param ) {\n    var target = $( param );\n\n    if ( this.settings.onfocusout && target.not( \".validate-greaterThanEqual-blur\" ).length ) {\n        target.addClass( \"validate-greaterThanEqual-blur\" ).on( \"blur.validate-greaterThanEqual\", function() {\n            $( element ).valid();\n        } );\n    }\n\n    return value >= target.val();\n}, \"Please enter a greater value.\" );\n\n/**\n * IBAN is the international bank account number.\n * It has a country - specific format, that is checked here too\n *\n * Validation is case-insensitive. Please make sure to normalize input yourself.\n */\n$.validator.addMethod( \"iban\", function( value, element ) {\n\n\t// Some quick simple tests to prevent needless work\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\t// Remove spaces and to upper case\n\tvar iban = value.replace( / /g, \"\" ).toUpperCase(),\n\t\tibancheckdigits = \"\",\n\t\tleadingZeroes = true,\n\t\tcRest = \"\",\n\t\tcOperator = \"\",\n\t\tcountrycode, ibancheck, charAt, cChar, bbanpattern, bbancountrypatterns, ibanregexp, i, p;\n\n\t// Check for IBAN code length.\n\t// It contains:\n\t// country code ISO 3166-1 - two letters,\n\t// two check digits,\n\t// Basic Bank Account Number (BBAN) - up to 30 chars\n\tvar minimalIBANlength = 5;\n\tif ( iban.length < minimalIBANlength ) {\n\t\treturn false;\n\t}\n\n\t// Check the country code and find the country specific format\n\tcountrycode = iban.substring( 0, 2 );\n\tbbancountrypatterns = {\n\t\t\"AL\": \"\\\\d{8}[\\\\dA-Z]{16}\",\n\t\t\"AD\": \"\\\\d{8}[\\\\dA-Z]{12}\",\n\t\t\"AT\": \"\\\\d{16}\",\n\t\t\"AZ\": \"[\\\\dA-Z]{4}\\\\d{20}\",\n\t\t\"BE\": \"\\\\d{12}\",\n\t\t\"BH\": \"[A-Z]{4}[\\\\dA-Z]{14}\",\n\t\t\"BA\": \"\\\\d{16}\",\n\t\t\"BR\": \"\\\\d{23}[A-Z][\\\\dA-Z]\",\n\t\t\"BG\": \"[A-Z]{4}\\\\d{6}[\\\\dA-Z]{8}\",\n\t\t\"CR\": \"\\\\d{17}\",\n\t\t\"HR\": \"\\\\d{17}\",\n\t\t\"CY\": \"\\\\d{8}[\\\\dA-Z]{16}\",\n\t\t\"CZ\": \"\\\\d{20}\",\n\t\t\"DK\": \"\\\\d{14}\",\n\t\t\"DO\": \"[A-Z]{4}\\\\d{20}\",\n\t\t\"EE\": \"\\\\d{16}\",\n\t\t\"FO\": \"\\\\d{14}\",\n\t\t\"FI\": \"\\\\d{14}\",\n\t\t\"FR\": \"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",\n\t\t\"GE\": \"[\\\\dA-Z]{2}\\\\d{16}\",\n\t\t\"DE\": \"\\\\d{18}\",\n\t\t\"GI\": \"[A-Z]{4}[\\\\dA-Z]{15}\",\n\t\t\"GR\": \"\\\\d{7}[\\\\dA-Z]{16}\",\n\t\t\"GL\": \"\\\\d{14}\",\n\t\t\"GT\": \"[\\\\dA-Z]{4}[\\\\dA-Z]{20}\",\n\t\t\"HU\": \"\\\\d{24}\",\n\t\t\"IS\": \"\\\\d{22}\",\n\t\t\"IE\": \"[\\\\dA-Z]{4}\\\\d{14}\",\n\t\t\"IL\": \"\\\\d{19}\",\n\t\t\"IT\": \"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",\n\t\t\"KZ\": \"\\\\d{3}[\\\\dA-Z]{13}\",\n\t\t\"KW\": \"[A-Z]{4}[\\\\dA-Z]{22}\",\n\t\t\"LV\": \"[A-Z]{4}[\\\\dA-Z]{13}\",\n\t\t\"LB\": \"\\\\d{4}[\\\\dA-Z]{20}\",\n\t\t\"LI\": \"\\\\d{5}[\\\\dA-Z]{12}\",\n\t\t\"LT\": \"\\\\d{16}\",\n\t\t\"LU\": \"\\\\d{3}[\\\\dA-Z]{13}\",\n\t\t\"MK\": \"\\\\d{3}[\\\\dA-Z]{10}\\\\d{2}\",\n\t\t\"MT\": \"[A-Z]{4}\\\\d{5}[\\\\dA-Z]{18}\",\n\t\t\"MR\": \"\\\\d{23}\",\n\t\t\"MU\": \"[A-Z]{4}\\\\d{19}[A-Z]{3}\",\n\t\t\"MC\": \"\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}\",\n\t\t\"MD\": \"[\\\\dA-Z]{2}\\\\d{18}\",\n\t\t\"ME\": \"\\\\d{18}\",\n\t\t\"NL\": \"[A-Z]{4}\\\\d{10}\",\n\t\t\"NO\": \"\\\\d{11}\",\n\t\t\"PK\": \"[\\\\dA-Z]{4}\\\\d{16}\",\n\t\t\"PS\": \"[\\\\dA-Z]{4}\\\\d{21}\",\n\t\t\"PL\": \"\\\\d{24}\",\n\t\t\"PT\": \"\\\\d{21}\",\n\t\t\"RO\": \"[A-Z]{4}[\\\\dA-Z]{16}\",\n\t\t\"SM\": \"[A-Z]\\\\d{10}[\\\\dA-Z]{12}\",\n\t\t\"SA\": \"\\\\d{2}[\\\\dA-Z]{18}\",\n\t\t\"RS\": \"\\\\d{18}\",\n\t\t\"SK\": \"\\\\d{20}\",\n\t\t\"SI\": \"\\\\d{15}\",\n\t\t\"ES\": \"\\\\d{20}\",\n\t\t\"SE\": \"\\\\d{20}\",\n\t\t\"CH\": \"\\\\d{5}[\\\\dA-Z]{12}\",\n\t\t\"TN\": \"\\\\d{20}\",\n\t\t\"TR\": \"\\\\d{5}[\\\\dA-Z]{17}\",\n\t\t\"AE\": \"\\\\d{3}\\\\d{16}\",\n\t\t\"GB\": \"[A-Z]{4}\\\\d{14}\",\n\t\t\"VG\": \"[\\\\dA-Z]{4}\\\\d{16}\"\n\t};\n\n\tbbanpattern = bbancountrypatterns[ countrycode ];\n\n\t// As new countries will start using IBAN in the\n\t// future, we only check if the countrycode is known.\n\t// This prevents false negatives, while almost all\n\t// false positives introduced by this, will be caught\n\t// by the checksum validation below anyway.\n\t// Strict checking should return FALSE for unknown\n\t// countries.\n\tif ( typeof bbanpattern !== \"undefined\" ) {\n\t\tibanregexp = new RegExp( \"^[A-Z]{2}\\\\d{2}\" + bbanpattern + \"$\", \"\" );\n\t\tif ( !( ibanregexp.test( iban ) ) ) {\n\t\t\treturn false; // Invalid country specific format\n\t\t}\n\t}\n\n\t// Now check the checksum, first convert to digits\n\tibancheck = iban.substring( 4, iban.length ) + iban.substring( 0, 4 );\n\tfor ( i = 0; i < ibancheck.length; i++ ) {\n\t\tcharAt = ibancheck.charAt( i );\n\t\tif ( charAt !== \"0\" ) {\n\t\t\tleadingZeroes = false;\n\t\t}\n\t\tif ( !leadingZeroes ) {\n\t\t\tibancheckdigits += \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\".indexOf( charAt );\n\t\t}\n\t}\n\n\t// Calculate the result of: ibancheckdigits % 97\n\tfor ( p = 0; p < ibancheckdigits.length; p++ ) {\n\t\tcChar = ibancheckdigits.charAt( p );\n\t\tcOperator = \"\" + cRest + \"\" + cChar;\n\t\tcRest = cOperator % 97;\n\t}\n\treturn cRest === 1;\n}, \"Please specify a valid IBAN\" );\n\n$.validator.addMethod( \"integer\", function( value, element ) {\n\treturn this.optional( element ) || /^-?\\d+$/.test( value );\n}, \"A positive or negative non-decimal number please\" );\n\n$.validator.addMethod( \"ipv4\", function( value, element ) {\n\treturn this.optional( element ) || /^(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/i.test( value );\n}, \"Please enter a valid IP v4 address.\" );\n\n$.validator.addMethod( \"ipv6\", function( value, element ) {\n\treturn this.optional( element ) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test( value );\n}, \"Please enter a valid IP v6 address.\" );\n\n$.validator.addMethod( \"lessThan\", function( value, element, param ) {\n    var target = $( param );\n\n    if ( this.settings.onfocusout && target.not( \".validate-lessThan-blur\" ).length ) {\n        target.addClass( \"validate-lessThan-blur\" ).on( \"blur.validate-lessThan\", function() {\n            $( element ).valid();\n        } );\n    }\n\n    return value < target.val();\n}, \"Please enter a lesser value.\" );\n\n$.validator.addMethod( \"lessThanEqual\", function( value, element, param ) {\n    var target = $( param );\n\n    if ( this.settings.onfocusout && target.not( \".validate-lessThanEqual-blur\" ).length ) {\n        target.addClass( \"validate-lessThanEqual-blur\" ).on( \"blur.validate-lessThanEqual\", function() {\n            $( element ).valid();\n        } );\n    }\n\n    return value <= target.val();\n}, \"Please enter a lesser value.\" );\n\n$.validator.addMethod( \"lettersonly\", function( value, element ) {\n\treturn this.optional( element ) || /^[a-z]+$/i.test( value );\n}, \"Letters only please\" );\n\n$.validator.addMethod( \"letterswithbasicpunc\", function( value, element ) {\n\treturn this.optional( element ) || /^[a-z\\-.,()'\"\\s]+$/i.test( value );\n}, \"Letters or punctuation only please\" );\n\n// Limit the number of files in a FileList.\n$.validator.addMethod( \"maxfiles\", function( value, element, param ) {\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tif ( $( element ).attr( \"type\" ) === \"file\" ) {\n\t\tif ( element.files && element.files.length > param ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}, $.validator.format( \"Please select no more than {0} files.\" ) );\n\n// Limit the size of each individual file in a FileList.\n$.validator.addMethod( \"maxsize\", function( value, element, param ) {\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tif ( $( element ).attr( \"type\" ) === \"file\" ) {\n\t\tif ( element.files && element.files.length ) {\n\t\t\tfor ( var i = 0; i < element.files.length; i++ ) {\n\t\t\t\tif ( element.files[ i ].size > param ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}, $.validator.format( \"File size must not exceed {0} bytes each.\" ) );\n\n// Limit the size of all files in a FileList.\n$.validator.addMethod( \"maxsizetotal\", function( value, element, param ) {\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tif ( $( element ).attr( \"type\" ) === \"file\" ) {\n\t\tif ( element.files && element.files.length ) {\n\t\t\tvar totalSize = 0;\n\n\t\t\tfor ( var i = 0; i < element.files.length; i++ ) {\n\t\t\t\ttotalSize += element.files[ i ].size;\n\t\t\t\tif ( totalSize > param ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}, $.validator.format( \"Total size of all files must not exceed {0} bytes.\" ) );\n\n\n$.validator.addMethod( \"mobileNL\", function( value, element ) {\n\treturn this.optional( element ) || /^((\\+|00(\\s|\\s?\\-\\s?)?)31(\\s|\\s?\\-\\s?)?(\\(0\\)[\\-\\s]?)?|0)6((\\s|\\s?\\-\\s?)?[0-9]){8}$/.test( value );\n}, \"Please specify a valid mobile number\" );\n\n$.validator.addMethod( \"mobileRU\", function( phone_number, element ) {\n\tvar ruPhone_number = phone_number.replace( /\\(|\\)|\\s+|-/g, \"\" );\n\treturn this.optional( element ) || ruPhone_number.length > 9 && /^((\\+7|7|8)+([0-9]){10})$/.test( ruPhone_number );\n}, \"Please specify a valid mobile number\" );\n\n/* For UK phone functions, do the following server side processing:\n * Compare original input with this RegEx pattern:\n * ^\\(?(?:(?:00\\)?[\\s\\-]?\\(?|\\+)(44)\\)?[\\s\\-]?\\(?(?:0\\)?[\\s\\-]?\\(?)?|0)([1-9]\\d{1,4}\\)?[\\s\\d\\-]+)$\n * Extract $1 and set $prefix to '+44<space>' if $1 is '44', otherwise set $prefix to '0'\n * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.\n * A number of very detailed GB telephone number RegEx patterns can also be found at:\n * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers\n */\n$.validator.addMethod( \"mobileUK\", function( phone_number, element ) {\n\tphone_number = phone_number.replace( /\\(|\\)|\\s+|-/g, \"\" );\n\treturn this.optional( element ) || phone_number.length > 9 &&\n\t\tphone_number.match( /^(?:(?:(?:00\\s?|\\+)44\\s?|0)7(?:[1345789]\\d{2}|624)\\s?\\d{3}\\s?\\d{3})$/ );\n}, \"Please specify a valid mobile number\" );\n\n$.validator.addMethod( \"netmask\", function( value, element ) {\n    return this.optional( element ) || /^(254|252|248|240|224|192|128)\\.0\\.0\\.0|255\\.(254|252|248|240|224|192|128|0)\\.0\\.0|255\\.255\\.(254|252|248|240|224|192|128|0)\\.0|255\\.255\\.255\\.(254|252|248|240|224|192|128|0)/i.test( value );\n}, \"Please enter a valid netmask.\" );\n\n/*\n * The NIE (Número de Identificación de Extranjero) is a Spanish tax identification number assigned by the Spanish\n * authorities to any foreigner.\n *\n * The NIE is the equivalent of a Spaniards Número de Identificación Fiscal (NIF) which serves as a fiscal\n * identification number. The CIF number (Certificado de Identificación Fiscal) is equivalent to the NIF, but applies to\n * companies rather than individuals. The NIE consists of an 'X' or 'Y' followed by 7 or 8 digits then another letter.\n */\n$.validator.addMethod( \"nieES\", function( value, element ) {\n\t\"use strict\";\n\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tvar nieRegEx = new RegExp( /^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi );\n\tvar validChars = \"TRWAGMYFPDXBNJZSQVHLCKET\",\n\t\tletter = value.substr( value.length - 1 ).toUpperCase(),\n\t\tnumber;\n\n\tvalue = value.toString().toUpperCase();\n\n\t// Quick format test\n\tif ( value.length > 10 || value.length < 9 || !nieRegEx.test( value ) ) {\n\t\treturn false;\n\t}\n\n\t// X means same number\n\t// Y means number + 10000000\n\t// Z means number + 20000000\n\tvalue = value.replace( /^[X]/, \"0\" )\n\t\t.replace( /^[Y]/, \"1\" )\n\t\t.replace( /^[Z]/, \"2\" );\n\n\tnumber = value.length === 9 ? value.substr( 0, 8 ) : value.substr( 0, 9 );\n\n\treturn validChars.charAt( parseInt( number, 10 ) % 23 ) === letter;\n\n}, \"Please specify a valid NIE number.\" );\n\n/*\n * The Número de Identificación Fiscal ( NIF ) is the way tax identification used in Spain for individuals\n */\n$.validator.addMethod( \"nifES\", function( value, element ) {\n\t\"use strict\";\n\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\n\tvalue = value.toUpperCase();\n\n\t// Basic format test\n\tif ( !value.match( \"((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)\" ) ) {\n\t\treturn false;\n\t}\n\n\t// Test NIF\n\tif ( /^[0-9]{8}[A-Z]{1}$/.test( value ) ) {\n\t\treturn ( \"TRWAGMYFPDXBNJZSQVHLCKE\".charAt( value.substring( 8, 0 ) % 23 ) === value.charAt( 8 ) );\n\t}\n\n\t// Test specials NIF (starts with K, L or M)\n\tif ( /^[KLM]{1}/.test( value ) ) {\n\t\treturn ( value[ 8 ] === \"TRWAGMYFPDXBNJZSQVHLCKE\".charAt( value.substring( 8, 1 ) % 23 ) );\n\t}\n\n\treturn false;\n\n}, \"Please specify a valid NIF number.\" );\n\n/*\n * Numer identyfikacji podatkowej ( NIP ) is the way tax identification used in Poland for companies\n */\n$.validator.addMethod( \"nipPL\", function( value ) {\n\t\"use strict\";\n\n\tvalue = value.replace( /[^0-9]/g, \"\" );\n\n\tif ( value.length !== 10 ) {\n\t\treturn false;\n\t}\n\n\tvar arrSteps = [ 6, 5, 7, 2, 3, 4, 5, 6, 7 ];\n\tvar intSum = 0;\n\tfor ( var i = 0; i < 9; i++ ) {\n\t\tintSum += arrSteps[ i ] * value[ i ];\n\t}\n\tvar int2 = intSum % 11;\n\tvar intControlNr = ( int2 === 10 ) ? 0 : int2;\n\n\treturn ( intControlNr === parseInt( value[ 9 ], 10 ) );\n}, \"Please specify a valid NIP number.\" );\n\n/**\n * Created for project jquery-validation.\n * @Description Brazillian PIS or NIS number (Número de Identificação Social Pis ou Pasep) is the equivalent of a\n * Brazilian tax registration number NIS of PIS numbers have 11 digits in total: 10 numbers followed by 1 check numbers\n * that are being used for validation.\n * @copyright (c) 21/08/2018 13:14, Cleiton da Silva Mendonça\n * @author Cleiton da Silva Mendonça <cleiton.mendonca@gmail.com>\n * @link http://gitlab.com/csmendonca Gitlab of Cleiton da Silva Mendonça\n * @link http://github.com/csmendonca Github of Cleiton da Silva Mendonça\n */\n$.validator.addMethod( \"nisBR\", function( value ) {\n\tvar number;\n\tvar cn;\n\tvar sum = 0;\n\tvar dv;\n\tvar count;\n\tvar multiplier;\n\n\t// Removing special characters from value\n\tvalue = value.replace( /([~!@#$%^&*()_+=`{}\\[\\]\\-|\\\\:;'<>,.\\/? ])+/g, \"\" );\n\n\t// Checking value to have 11 digits only\n\tif ( value.length !== 11 ) {\n\t\treturn false;\n\t}\n\n\t//Get check number of value\n\tcn = parseInt( value.substring( 10, 11 ), 10 );\n\n\t//Get number with 10 digits of the value\n\tnumber = parseInt( value.substring( 0, 10 ), 10 );\n\n\tfor ( count = 2; count < 12; count++ ) {\n\t\tmultiplier = count;\n\t\tif ( count === 10 ) {\n\t\t\tmultiplier = 2;\n\t\t}\n\t\tif ( count === 11 ) {\n\t\t\tmultiplier = 3;\n\t\t}\n\t\tsum += ( ( number % 10 ) * multiplier );\n\t\tnumber = parseInt( number / 10, 10 );\n\t}\n\tdv = ( sum % 11 );\n\n\tif ( dv > 1 ) {\n\t\tdv = ( 11 - dv );\n\t} else {\n\t\tdv = 0;\n\t}\n\n\tif ( cn === dv ) {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n}, \"Please specify a valid NIS/PIS number\" );\n\n$.validator.addMethod( \"notEqualTo\", function( value, element, param ) {\n\treturn this.optional( element ) || !$.validator.methods.equalTo.call( this, value, element, param );\n}, \"Please enter a different value, values must not be the same.\" );\n\n$.validator.addMethod( \"nowhitespace\", function( value, element ) {\n\treturn this.optional( element ) || /^\\S+$/i.test( value );\n}, \"No white space please\" );\n\n/**\n* Return true if the field value matches the given format RegExp\n*\n* @example $.validator.methods.pattern(\"AR1004\",element,/^AR\\d{4}$/)\n* @result true\n*\n* @example $.validator.methods.pattern(\"BR1004\",element,/^AR\\d{4}$/)\n* @result false\n*\n* @name $.validator.methods.pattern\n* @type Boolean\n* @cat Plugins/Validate/Methods\n*/\n$.validator.addMethod( \"pattern\", function( value, element, param ) {\n\tif ( this.optional( element ) ) {\n\t\treturn true;\n\t}\n\tif ( typeof param === \"string\" ) {\n\t\tparam = new RegExp( \"^(?:\" + param + \")$\" );\n\t}\n\treturn param.test( value );\n}, \"Invalid format.\" );\n\n/**\n * Dutch phone numbers have 10 digits (or 11 and start with +31).\n */\n$.validator.addMethod( \"phoneNL\", function( value, element ) {\n\treturn this.optional( element ) || /^((\\+|00(\\s|\\s?\\-\\s?)?)31(\\s|\\s?\\-\\s?)?(\\(0\\)[\\-\\s]?)?|0)[1-9]((\\s|\\s?\\-\\s?)?[0-9]){8}$/.test( value );\n}, \"Please specify a valid phone number.\" );\n\n/**\n * Polish telephone numbers have 9 digits.\n *\n * Mobile phone numbers starts with following digits:\n * 45, 50, 51, 53, 57, 60, 66, 69, 72, 73, 78, 79, 88.\n *\n * Fixed-line numbers starts with area codes:\n * 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 29, 32, 33,\n * 34, 41, 42, 43, 44, 46, 48, 52, 54, 55, 56, 58, 59, 61,\n * 62, 63, 65, 67, 68, 71, 74, 75, 76, 77, 81, 82, 83, 84,\n * 85, 86, 87, 89, 91, 94, 95.\n *\n * Ministry of National Defence numbers and VoIP numbers starts with 26 and 39.\n *\n * Excludes intelligent networks (premium rate, shared cost, free phone numbers).\n *\n * Poland National Numbering Plan http://www.itu.int/oth/T02020000A8/en\n */\n$.validator.addMethod( \"phonePL\", function( phone_number, element ) {\n\tphone_number = phone_number.replace( /\\s+/g, \"\" );\n\tvar regexp = /^(?:(?:(?:\\+|00)?48)|(?:\\(\\+?48\\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\\d{7}$/;\n\treturn this.optional( element ) || regexp.test( phone_number );\n}, \"Please specify a valid phone number\" );\n\n/* For UK phone functions, do the following server side processing:\n * Compare original input with this RegEx pattern:\n * ^\\(?(?:(?:00\\)?[\\s\\-]?\\(?|\\+)(44)\\)?[\\s\\-]?\\(?(?:0\\)?[\\s\\-]?\\(?)?|0)([1-9]\\d{1,4}\\)?[\\s\\d\\-]+)$\n * Extract $1 and set $prefix to '+44<space>' if $1 is '44', otherwise set $prefix to '0'\n * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.\n * A number of very detailed GB telephone number RegEx patterns can also be found at:\n * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers\n */\n\n// Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers\n$.validator.addMethod( \"phonesUK\", function( phone_number, element ) {\n\tphone_number = phone_number.replace( /\\(|\\)|\\s+|-/g, \"\" );\n\treturn this.optional( element ) || phone_number.length > 9 &&\n\t\tphone_number.match( /^(?:(?:(?:00\\s?|\\+)44\\s?|0)(?:1\\d{8,9}|[23]\\d{9}|7(?:[1345789]\\d{8}|624\\d{6})))$/ );\n}, \"Please specify a valid uk phone number\" );\n\n/* For UK phone functions, do the following server side processing:\n * Compare original input with this RegEx pattern:\n * ^\\(?(?:(?:00\\)?[\\s\\-]?\\(?|\\+)(44)\\)?[\\s\\-]?\\(?(?:0\\)?[\\s\\-]?\\(?)?|0)([1-9]\\d{1,4}\\)?[\\s\\d\\-]+)$\n * Extract $1 and set $prefix to '+44<space>' if $1 is '44', otherwise set $prefix to '0'\n * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.\n * A number of very detailed GB telephone number RegEx patterns can also be found at:\n * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers\n */\n$.validator.addMethod( \"phoneUK\", function( phone_number, element ) {\n\tphone_number = phone_number.replace( /\\(|\\)|\\s+|-/g, \"\" );\n\treturn this.optional( element ) || phone_number.length > 9 &&\n\t\tphone_number.match( /^(?:(?:(?:00\\s?|\\+)44\\s?)|(?:\\(?0))(?:\\d{2}\\)?\\s?\\d{4}\\s?\\d{4}|\\d{3}\\)?\\s?\\d{3}\\s?\\d{3,4}|\\d{4}\\)?\\s?(?:\\d{5}|\\d{3}\\s?\\d{3})|\\d{5}\\)?\\s?\\d{4,5})$/ );\n}, \"Please specify a valid phone number\" );\n\n/**\n * Matches US phone number format\n *\n * where the area code may not start with 1 and the prefix may not start with 1\n * allows '-' or ' ' as a separator and allows parens around area code\n * some people may want to put a '1' in front of their number\n *\n * 1(212)-999-2345 or\n * 212 999 2344 or\n * 212-999-0983\n *\n * but not\n * 111-123-5434\n * and not\n * 212 123 4567\n */\n$.validator.addMethod( \"phoneUS\", function( phone_number, element ) {\n\tphone_number = phone_number.replace( /\\s+/g, \"\" );\n\treturn this.optional( element ) || phone_number.length > 9 &&\n\t\tphone_number.match( /^(\\+?1-?)?(\\([2-9]([02-9]\\d|1[02-9])\\)|[2-9]([02-9]\\d|1[02-9]))-?[2-9]\\d{2}-?\\d{4}$/ );\n}, \"Please specify a valid phone number\" );\n\n/*\n* Valida CEPs do brasileiros:\n*\n* Formatos aceitos:\n* 99999-999\n* 99.999-999\n* 99999999\n*/\n$.validator.addMethod( \"postalcodeBR\", function( cep_value, element ) {\n\treturn this.optional( element ) || /^\\d{2}.\\d{3}-\\d{3}?$|^\\d{5}-?\\d{3}?$/.test( cep_value );\n}, \"Informe um CEP válido.\" );\n\n/**\n * Matches a valid Canadian Postal Code\n *\n * @example jQuery.validator.methods.postalCodeCA( \"H0H 0H0\", element )\n * @result true\n *\n * @example jQuery.validator.methods.postalCodeCA( \"H0H0H0\", element )\n * @result false\n *\n * @name jQuery.validator.methods.postalCodeCA\n * @type Boolean\n * @cat Plugins/Validate/Methods\n */\n$.validator.addMethod( \"postalCodeCA\", function( value, element ) {\n\treturn this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJKLMNPRSTVWXYZ] *\\d[ABCEGHJKLMNPRSTVWXYZ]\\d$/i.test( value );\n}, \"Please specify a valid postal code\" );\n\n/* Matches Italian postcode (CAP) */\n$.validator.addMethod( \"postalcodeIT\", function( value, element ) {\n\treturn this.optional( element ) || /^\\d{5}$/.test( value );\n}, \"Please specify a valid postal code\" );\n\n$.validator.addMethod( \"postalcodeNL\", function( value, element ) {\n\treturn this.optional( element ) || /^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$/.test( value );\n}, \"Please specify a valid postal code\" );\n\n// Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK)\n$.validator.addMethod( \"postcodeUK\", function( value, element ) {\n\treturn this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\\s?(0AA))$/i.test( value );\n}, \"Please specify a valid UK postcode\" );\n\n/*\n * Lets you say \"at least X inputs that match selector Y must be filled.\"\n *\n * The end result is that neither of these inputs:\n *\n *\t<input class=\"productinfo\" name=\"partnumber\">\n *\t<input class=\"productinfo\" name=\"description\">\n *\n *\t...will validate unless at least one of them is filled.\n *\n * partnumber:\t{require_from_group: [1,\".productinfo\"]},\n * description: {require_from_group: [1,\".productinfo\"]}\n *\n * options[0]: number of fields that must be filled in the group\n * options[1]: CSS selector that defines the group of conditionally required fields\n */\n$.validator.addMethod( \"require_from_group\", function( value, element, options ) {\n\tvar $fields = $( options[ 1 ], element.form ),\n\t\t$fieldsFirst = $fields.eq( 0 ),\n\t\tvalidator = $fieldsFirst.data( \"valid_req_grp\" ) ? $fieldsFirst.data( \"valid_req_grp\" ) : $.extend( {}, this ),\n\t\tisValid = $fields.filter( function() {\n\t\t\treturn validator.elementValue( this );\n\t\t} ).length >= options[ 0 ];\n\n\t// Store the cloned validator for future validation\n\t$fieldsFirst.data( \"valid_req_grp\", validator );\n\n\t// If element isn't being validated, run each require_from_group field's validation rules\n\tif ( !$( element ).data( \"being_validated\" ) ) {\n\t\t$fields.data( \"being_validated\", true );\n\t\t$fields.each( function() {\n\t\t\tvalidator.element( this );\n\t\t} );\n\t\t$fields.data( \"being_validated\", false );\n\t}\n\treturn isValid;\n}, $.validator.format( \"Please fill at least {0} of these fields.\" ) );\n\n/*\n * Lets you say \"either at least X inputs that match selector Y must be filled,\n * OR they must all be skipped (left blank).\"\n *\n * The end result, is that none of these inputs:\n *\n *\t<input class=\"productinfo\" name=\"partnumber\">\n *\t<input class=\"productinfo\" name=\"description\">\n *\t<input class=\"productinfo\" name=\"color\">\n *\n *\t...will validate unless either at least two of them are filled,\n *\tOR none of them are.\n *\n * partnumber:\t{skip_or_fill_minimum: [2,\".productinfo\"]},\n * description: {skip_or_fill_minimum: [2,\".productinfo\"]},\n * color:\t\t{skip_or_fill_minimum: [2,\".productinfo\"]}\n *\n * options[0]: number of fields that must be filled in the group\n * options[1]: CSS selector that defines the group of conditionally required fields\n *\n */\n$.validator.addMethod( \"skip_or_fill_minimum\", function( value, element, options ) {\n\tvar $fields = $( options[ 1 ], element.form ),\n\t\t$fieldsFirst = $fields.eq( 0 ),\n\t\tvalidator = $fieldsFirst.data( \"valid_skip\" ) ? $fieldsFirst.data( \"valid_skip\" ) : $.extend( {}, this ),\n\t\tnumberFilled = $fields.filter( function() {\n\t\t\treturn validator.elementValue( this );\n\t\t} ).length,\n\t\tisValid = numberFilled === 0 || numberFilled >= options[ 0 ];\n\n\t// Store the cloned validator for future validation\n\t$fieldsFirst.data( \"valid_skip\", validator );\n\n\t// If element isn't being validated, run each skip_or_fill_minimum field's validation rules\n\tif ( !$( element ).data( \"being_validated\" ) ) {\n\t\t$fields.data( \"being_validated\", true );\n\t\t$fields.each( function() {\n\t\t\tvalidator.element( this );\n\t\t} );\n\t\t$fields.data( \"being_validated\", false );\n\t}\n\treturn isValid;\n}, $.validator.format( \"Please either skip these fields or fill at least {0} of them.\" ) );\n\n/* Validates US States and/or Territories by @jdforsythe\n * Can be case insensitive or require capitalization - default is case insensitive\n * Can include US Territories or not - default does not\n * Can include US Military postal abbreviations (AA, AE, AP) - default does not\n *\n * Note: \"States\" always includes DC (District of Colombia)\n *\n * Usage examples:\n *\n *  This is the default - case insensitive, no territories, no military zones\n *  stateInput: {\n *     caseSensitive: false,\n *     includeTerritories: false,\n *     includeMilitary: false\n *  }\n *\n *  Only allow capital letters, no territories, no military zones\n *  stateInput: {\n *     caseSensitive: false\n *  }\n *\n *  Case insensitive, include territories but not military zones\n *  stateInput: {\n *     includeTerritories: true\n *  }\n *\n *  Only allow capital letters, include territories and military zones\n *  stateInput: {\n *     caseSensitive: true,\n *     includeTerritories: true,\n *     includeMilitary: true\n *  }\n *\n */\n$.validator.addMethod( \"stateUS\", function( value, element, options ) {\n\tvar isDefault = typeof options === \"undefined\",\n\t\tcaseSensitive = ( isDefault || typeof options.caseSensitive === \"undefined\" ) ? false : options.caseSensitive,\n\t\tincludeTerritories = ( isDefault || typeof options.includeTerritories === \"undefined\" ) ? false : options.includeTerritories,\n\t\tincludeMilitary = ( isDefault || typeof options.includeMilitary === \"undefined\" ) ? false : options.includeMilitary,\n\t\tregex;\n\n\tif ( !includeTerritories && !includeMilitary ) {\n\t\tregex = \"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\";\n\t} else if ( includeTerritories && includeMilitary ) {\n\t\tregex = \"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\";\n\t} else if ( includeTerritories ) {\n\t\tregex = \"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$\";\n\t} else {\n\t\tregex = \"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$\";\n\t}\n\n\tregex = caseSensitive ? new RegExp( regex ) : new RegExp( regex, \"i\" );\n\treturn this.optional( element ) || regex.test( value );\n}, \"Please specify a valid state\" );\n\n// TODO check if value starts with <, otherwise don't try stripping anything\n$.validator.addMethod( \"strippedminlength\", function( value, element, param ) {\n\treturn $( value ).text().length >= param;\n}, $.validator.format( \"Please enter at least {0} characters\" ) );\n\n$.validator.addMethod( \"time\", function( value, element ) {\n\treturn this.optional( element ) || /^([01]\\d|2[0-3]|[0-9])(:[0-5]\\d){1,2}$/.test( value );\n}, \"Please enter a valid time, between 00:00 and 23:59\" );\n\n$.validator.addMethod( \"time12h\", function( value, element ) {\n\treturn this.optional( element ) || /^((0?[1-9]|1[012])(:[0-5]\\d){1,2}(\\ ?[AP]M))$/i.test( value );\n}, \"Please enter a valid time in 12-hour am/pm format\" );\n\n// Same as url, but TLD is optional\n$.validator.addMethod( \"url2\", function( value, element ) {\n\treturn this.optional( element ) || /^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)*(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test( value );\n}, $.validator.messages.url );\n\n/**\n * Return true, if the value is a valid vehicle identification number (VIN).\n *\n * Works with all kind of text inputs.\n *\n * @example <input type=\"text\" size=\"20\" name=\"VehicleID\" class=\"{required:true,vinUS:true}\" />\n * @desc Declares a required input element whose value must be a valid vehicle identification number.\n *\n * @name $.validator.methods.vinUS\n * @type Boolean\n * @cat Plugins/Validate/Methods\n */\n$.validator.addMethod( \"vinUS\", function( v ) {\n\tif ( v.length !== 17 ) {\n\t\treturn false;\n\t}\n\n\tvar LL = [ \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"J\", \"K\", \"L\", \"M\", \"N\", \"P\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\" ],\n\t\tVL = [ 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 7, 9, 2, 3, 4, 5, 6, 7, 8, 9 ],\n\t\tFL = [ 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2 ],\n\t\trs = 0,\n\t\ti, n, d, f, cd, cdv;\n\n\tfor ( i = 0; i < 17; i++ ) {\n\t\tf = FL[ i ];\n\t\td = v.slice( i, i + 1 );\n\t\tif ( i === 8 ) {\n\t\t\tcdv = d;\n\t\t}\n\t\tif ( !isNaN( d ) ) {\n\t\t\td *= f;\n\t\t} else {\n\t\t\tfor ( n = 0; n < LL.length; n++ ) {\n\t\t\t\tif ( d.toUpperCase() === LL[ n ] ) {\n\t\t\t\t\td = VL[ n ];\n\t\t\t\t\td *= f;\n\t\t\t\t\tif ( isNaN( cdv ) && n === 8 ) {\n\t\t\t\t\t\tcdv = LL[ n ];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\trs += d;\n\t}\n\tcd = rs % 11;\n\tif ( cd === 10 ) {\n\t\tcd = \"X\";\n\t}\n\tif ( cd === cdv ) {\n\t\treturn true;\n\t}\n\treturn false;\n}, \"The specified vehicle identification number (VIN) is invalid.\" );\n\n$.validator.addMethod( \"zipcodeUS\", function( value, element ) {\n\treturn this.optional( element ) || /^\\d{5}(-\\d{4})?$/.test( value );\n}, \"The specified US ZIP Code is invalid\" );\n\n$.validator.addMethod( \"ziprange\", function( value, element ) {\n\treturn this.optional( element ) || /^90[2-5]\\d\\{2\\}-\\d{4}$/.test( value );\n}, \"Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx\" );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/jquery.validate.js",
    "content": "/*!\n * jQuery Validation Plugin v1.19.3\n *\n * https://jqueryvalidation.org/\n *\n * Copyright (c) 2021 Jörn Zaefferer\n * Released under the MIT license\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t//   - A user defined a `submitHandler`\n\t\t\t\t\t//   - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t//     was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"<input type='hidden'/>\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && isContentEditable ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// JQuery trim is deprecated, provide a trim method based on String.prototype.trim\nvar trim = function( str ) {\n\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill\n\treturn str.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\" );\n};\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array  ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift       => 16\n\t\t\t// Ctrl        => 17\n\t\t\t// Alt         => 18\n\t\t\t// Caps lock   => 20\n\t\t\t// End         => 35\n\t\t\t// Home        => 36\n\t\t\t// Left arrow  => 37\n\t\t\t// Up arrow    => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow  => 40\n\t\t\t// Insert      => 45\n\t\t\t// Num lock    => 144\n\t\t\t// AltGr key   => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar currentForm = this.currentForm,\n\t\t\t\tgroups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\n\t\t\t\tif ( currentForm !== this.form ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.trigger( \"focus\" )\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Ignore elements that belong to other/nested forms\n\t\t\t\tif ( this.form !== validator.currentForm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( isContentEditable ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \".  Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t//     method: \"method name\",\n\t\t//     parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"<strong>Warning: No message defined for \" + element.name + \"</strong>\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\terror.html( message );\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass )\n\t\t\t\t\t.html( message || \"\" );\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\n\t\t\t\t$( this.currentForm ).submit();\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\n\t\t\t\t.find( \".validate-lessThan-blur\" )\n\t\t\t\t\t.off( \".validate-lessThan\" )\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThan\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for <input required> in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\n\t\t\tif ( value === \"\" ) {\n\t\t\t\tvalue = true;\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = typeof parameter === \"function\" && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( Array.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: ( function() {\n\t\t\tvar called = false;\n\n\t\t\treturn function( value, element ) {\n\t\t\t\tif ( !called ) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t\t};\n\t\t}() ),\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: \"validate\" + element.name,\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.resetInternals();\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ar.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: AR (Arabic; العربية)\n */\n$.extend( $.validator.messages, {\n\trequired: \"هذا الحقل إلزامي\",\n\tremote: \"يرجى تصحيح هذا الحقل للمتابعة\",\n\temail: \"رجاء إدخال عنوان بريد إلكتروني صحيح\",\n\turl: \"رجاء إدخال عنوان موقع إلكتروني صحيح\",\n\tdate: \"رجاء إدخال تاريخ صحيح\",\n\tdateISO: \"رجاء إدخال تاريخ صحيح (ISO)\",\n\tnumber: \"رجاء إدخال عدد بطريقة صحيحة\",\n\tdigits: \"رجاء إدخال أرقام فقط\",\n\tcreditcard: \"رجاء إدخال رقم بطاقة ائتمان صحيح\",\n\tequalTo: \"رجاء إدخال نفس القيمة\",\n\textension: \"رجاء إدخال ملف بامتداد موافق عليه\",\n\tmaxlength: $.validator.format( \"الحد الأقصى لعدد الحروف هو {0}\" ),\n\tminlength: $.validator.format( \"الحد الأدنى لعدد الحروف هو {0}\" ),\n\trangelength: $.validator.format( \"عدد الحروف يجب أن يكون بين {0} و {1}\" ),\n\trange: $.validator.format( \"رجاء إدخال عدد قيمته بين {0} و {1}\" ),\n\tmax: $.validator.format( \"رجاء إدخال عدد أقل من أو يساوي {0}\" ),\n\tmin: $.validator.format( \"رجاء إدخال عدد أكبر من أو يساوي {0}\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_az.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: Az (Azeri; azərbaycan dili)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Bu xana mütləq doldurulmalıdır.\",\n\tremote: \"Zəhmət olmasa, düzgün məna daxil edin.\",\n\temail: \"Zəhmət olmasa, düzgün elektron poçt daxil edin.\",\n\turl: \"Zəhmət olmasa, düzgün URL daxil edin.\",\n\tdate: \"Zəhmət olmasa, düzgün tarix daxil edin.\",\n\tdateISO: \"Zəhmət olmasa, düzgün ISO formatlı tarix daxil edin.\",\n\tnumber: \"Zəhmət olmasa, düzgün rəqəm daxil edin.\",\n\tdigits: \"Zəhmət olmasa, yalnız rəqəm daxil edin.\",\n\tcreditcard: \"Zəhmət olmasa, düzgün kredit kart nömrəsini daxil edin.\",\n\tequalTo: \"Zəhmət olmasa, eyni mənanı bir daha daxil edin.\",\n\textension: \"Zəhmət olmasa, düzgün genişlənməyə malik faylı seçin.\",\n\tmaxlength: $.validator.format( \"Zəhmət olmasa, {0} simvoldan çox olmayaraq daxil edin.\" ),\n\tminlength: $.validator.format( \"Zəhmət olmasa, {0} simvoldan az olmayaraq daxil edin.\" ),\n\trangelength: $.validator.format( \"Zəhmət olmasa, {0} - {1} aralığında uzunluğa malik simvol daxil edin.\" ),\n\trange: $.validator.format( \"Zəhmət olmasa, {0} - {1} aralığında rəqəm daxil edin.\" ),\n\tmax: $.validator.format( \"Zəhmət olmasa, {0} və ondan kiçik rəqəm daxil edin.\" ),\n\tmin: $.validator.format( \"Zəhmət olmasa, {0} və ondan böyük rəqəm daxil edin\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_bg.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: BG (Bulgarian; български език)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Полето е задължително.\",\n\tremote: \"Моля, въведете правилната стойност.\",\n\temail: \"Моля, въведете валиден email.\",\n\turl: \"Моля, въведете валидно URL.\",\n\tdate: \"Моля, въведете валидна дата.\",\n\tdateISO: \"Моля, въведете валидна дата (ISO).\",\n\tnumber: \"Моля, въведете валиден номер.\",\n\tdigits: \"Моля, въведете само цифри.\",\n\tcreditcard: \"Моля, въведете валиден номер на кредитна карта.\",\n\tequalTo: \"Моля, въведете същата стойност отново.\",\n\textension: \"Моля, въведете стойност с валидно разширение.\",\n\tmaxlength: $.validator.format( \"Моля, въведете не повече от {0} символа.\" ),\n\tminlength: $.validator.format( \"Моля, въведете поне {0} символа.\" ),\n\trangelength: $.validator.format( \"Моля, въведете стойност с дължина между {0} и {1} символа.\" ),\n\trange: $.validator.format( \"Моля, въведете стойност между {0} и {1}.\" ),\n\tmax: $.validator.format( \"Моля, въведете стойност по-малка или равна на {0}.\" ),\n\tmin: $.validator.format( \"Моля, въведете стойност по-голяма или равна на {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_bn_BD.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: bn_BD (Bengali, Bangladesh)\n */\n$.extend( $.validator.messages, {\n\trequired: \"এই তথ্যটি আবশ্যক।\",\n\tremote: \"এই তথ্যটি ঠিক করুন।\",\n\temail: \"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।\",\n\turl: \"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।\",\n\tdate: \"তারিখ সঠিক নয়।\",\n\tdateISO: \"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।\",\n\tnumber: \"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।\",\n\tdigits: \"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।\",\n\tcreditcard: \"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।\",\n\tequalTo: \"একই মান আবার লিখুন।\",\n\textension: \"সঠিক ধরনের ফাইল আপলোড করুন।\",\n\tmaxlength: $.validator.format( \"{0}টির বেশি অক্ষর লেখা যাবে না।\" ),\n\tminlength: $.validator.format( \"{0}টির কম অক্ষর লেখা যাবে না।\" ),\n\trangelength: $.validator.format( \"{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।\" ),\n\trange: $.validator.format( \"{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।\" ),\n\tmax: $.validator.format( \"অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।\" ),\n\tmin: $.validator.format( \"অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ca.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CA (Catalan; català)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Aquest camp és obligatori.\",\n\tremote: \"Si us plau, omple aquest camp.\",\n\temail: \"Si us plau, escriu una adreça de correu-e vàlida\",\n\turl: \"Si us plau, escriu una URL vàlida.\",\n\tdate: \"Si us plau, escriu una data vàlida.\",\n\tdateISO: \"Si us plau, escriu una data (ISO) vàlida.\",\n\tnumber: \"Si us plau, escriu un número enter vàlid.\",\n\tdigits: \"Si us plau, escriu només dígits.\",\n\tcreditcard: \"Si us plau, escriu un número de tarjeta vàlid.\",\n\tequalTo: \"Si us plau, escriu el mateix valor de nou.\",\n\textension: \"Si us plau, escriu un valor amb una extensió acceptada.\",\n\tmaxlength: $.validator.format( \"Si us plau, no escriguis més de {0} caracters.\" ),\n\tminlength: $.validator.format( \"Si us plau, no escriguis menys de {0} caracters.\" ),\n\trangelength: $.validator.format( \"Si us plau, escriu un valor entre {0} i {1} caracters.\" ),\n\trange: $.validator.format( \"Si us plau, escriu un valor entre {0} i {1}.\" ),\n\tmax: $.validator.format( \"Si us plau, escriu un valor menor o igual a {0}.\" ),\n\tmin: $.validator.format( \"Si us plau, escriu un valor major o igual a {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_cs.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CS (Czech; čeština, český jazyk)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Tento údaj je povinný.\",\n\tremote: \"Prosím, opravte tento údaj.\",\n\temail: \"Prosím, zadejte platný e-mail.\",\n\turl: \"Prosím, zadejte platné URL.\",\n\tdate: \"Prosím, zadejte platné datum.\",\n\tdateISO: \"Prosím, zadejte platné datum (ISO).\",\n\tnumber: \"Prosím, zadejte číslo.\",\n\tdigits: \"Prosím, zadávejte pouze číslice.\",\n\tcreditcard: \"Prosím, zadejte číslo kreditní karty.\",\n\tequalTo: \"Prosím, zadejte znovu stejnou hodnotu.\",\n\textension: \"Prosím, zadejte soubor se správnou příponou.\",\n\tmaxlength: $.validator.format( \"Prosím, zadejte nejvíce {0} znaků.\" ),\n\tminlength: $.validator.format( \"Prosím, zadejte nejméně {0} znaků.\" ),\n\trangelength: $.validator.format( \"Prosím, zadejte od {0} do {1} znaků.\" ),\n\trange: $.validator.format( \"Prosím, zadejte hodnotu od {0} do {1}.\" ),\n\tmax: $.validator.format( \"Prosím, zadejte hodnotu menší nebo rovnu {0}.\" ),\n\tmin: $.validator.format( \"Prosím, zadejte hodnotu větší nebo rovnu {0}.\" ),\n\tstep: $.validator.format( \"Musí být násobkem čísla {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_da.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DA (Danish; dansk)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Dette felt er påkrævet.\",\n\tremote: \"Ret venligst dette felt\",\n\temail: \"Indtast en gyldig email-adresse.\",\n\turl: \"Indtast en gyldig URL.\",\n\tdate: \"Indtast en gyldig dato.\",\n\tnumber: \"Indtast et tal.\",\n\tdigits: \"Indtast kun cifre.\",\n\tcreditcard: \"Indtast et gyldigt kreditkortnummer.\",\n\tequalTo: \"Indtast den samme værdi igen.\",\n\ttime: \"Angiv en gyldig tid mellem kl. 00:00 og 23:59.\",\n\tipv4: \"Angiv venligst en gyldig IPv4-adresse.\",\n\tipv6: \"Angiv venligst en gyldig IPv6-adresse.\",\n\trequire_from_group:  $.validator.format( \"Angiv mindst {0} af disse felter.\" ),\n\textension: \"Indtast venligst en værdi med en gyldig endelse\",\n\tpattern: \"Ugyldigt format\",\n\tlettersonly: \"Angiv venligst kun bogstaver.\",\n\tnowhitespace: \"Må ikke indholde mellemrum\",\n\tmaxlength: $.validator.format( \"Indtast højst {0} tegn.\" ),\n\tminlength: $.validator.format( \"Indtast mindst {0} tegn.\" ),\n\trangelength: $.validator.format( \"Indtast mindst {0} og højst {1} tegn.\" ),\n\trange: $.validator.format( \"Angiv en værdi mellem {0} og {1}.\" ),\n\tmax: $.validator.format( \"Angiv en værdi der højst er {0}.\" ),\n\tmin: $.validator.format( \"Angiv en værdi der mindst er {0}.\" ),\n\tminWords: $.validator.format( \"Indtast venligst mindst {0} ord\" ),\n\tmaxWords:  $.validator.format( \"Indtast venligst højst {0} ord\" ),\n\tstep: $.validator.format( \"Angiv en værdi gange {0}.\" ),\n\tnotEqualTo: \"Angiv en anden værdi, værdierne må ikke være det samme.\",\n\tinteger: \"Angiv et ikke-decimaltal, der er positivt eller negativt.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DE (German, Deutsch)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Dieses Feld ist ein Pflichtfeld.\",\n\tmaxlength: $.validator.format( \"Geben Sie bitte maximal {0} Zeichen ein.\" ),\n\tminlength: $.validator.format( \"Geben Sie bitte mindestens {0} Zeichen ein.\" ),\n\trangelength: $.validator.format( \"Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein.\" ),\n\temail: \"Geben Sie bitte eine gültige E-Mail-Adresse ein.\",\n\turl: \"Geben Sie bitte eine gültige URL ein.\",\n\tdate: \"Geben Sie bitte ein gültiges Datum ein.\",\n\tnumber: \"Geben Sie bitte eine Nummer ein.\",\n\tdigits: \"Geben Sie bitte nur Ziffern ein.\",\n\tequalTo: \"Wiederholen Sie bitte denselben Wert.\",\n\trange: $.validator.format( \"Geben Sie bitte einen Wert zwischen {0} und {1} ein.\" ),\n\tmax: $.validator.format( \"Geben Sie bitte einen Wert kleiner oder gleich {0} ein.\" ),\n\tmin: $.validator.format( \"Geben Sie bitte einen Wert größer oder gleich {0} ein.\" ),\n\tcreditcard: \"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.\",\n\tremote: \"Korrigieren Sie bitte dieses Feld.\",\n\tdateISO: \"Geben Sie bitte ein gültiges Datum ein (ISO-Format).\",\n\tstep: $.validator.format( \"Geben Sie bitte ein Vielfaches von {0} ein.\" ),\n\tmaxWords: $.validator.format( \"Geben Sie bitte {0} Wörter oder weniger ein.\" ),\n\tminWords: $.validator.format( \"Geben Sie bitte mindestens {0} Wörter ein.\" ),\n\trangeWords: $.validator.format( \"Geben Sie bitte zwischen {0} und {1} Wörtern ein.\" ),\n\taccept: \"Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.\",\n\talphanumeric: \"Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.\",\n\tbankaccountNL: \"Geben Sie bitte eine gültige Kontonummer ein.\",\n\tbankorgiroaccountNL: \"Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.\",\n\tbic: \"Geben Sie bitte einen gültigen BIC-Code ein.\",\n\tcifES: \"Geben Sie bitte eine gültige CIF-Nummer ein.\",\n\tcpfBR: \"Geben Sie bitte eine gültige CPF-Nummer ein.\",\n\tcreditcardtypes: \"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.\",\n\tcurrency: \"Geben Sie bitte eine gültige Währung ein.\",\n\textension: \"Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.\",\n\tgiroaccountNL: \"Geben Sie bitte eine gültige Girokontonummer ein.\",\n\tiban: \"Geben Sie bitte eine gültige IBAN ein.\",\n\tinteger:  \"Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.\",\n\tipv4: \"Geben Sie bitte eine gültige IPv4-Adresse ein.\",\n\tipv6: \"Geben Sie bitte eine gültige IPv6-Adresse ein.\",\n\tlettersonly: \"Geben Sie bitte nur Buchstaben ein.\",\n\tletterswithbasicpunc: \"Geben Sie bitte nur Buchstaben oder Interpunktion ein.\",\n\tmobileNL: \"Geben Sie bitte eine gültige Handynummer ein.\",\n\tmobileUK: \"Geben Sie bitte eine gültige Handynummer ein.\",\n\tnetmask:  \"Geben Sie bitte eine gültige Netzmaske ein.\",\n\tnieES: \"Geben Sie bitte eine gültige NIE-Nummer ein.\",\n\tnifES: \"Geben Sie bitte eine gültige NIF-Nummer ein.\",\n\tnipPL: \"Geben Sie bitte eine gültige NIP-Nummer ein.\",\n\tnotEqualTo: \"Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.\",\n\tnowhitespace: \"Kein Leerzeichen bitte.\",\n\tpattern: \"Ungültiges Format.\",\n\tphoneNL: \"Geben Sie bitte eine gültige Telefonnummer ein.\",\n\tphonesUK: \"Geben Sie bitte eine gültige britische Telefonnummer ein.\",\n\tphoneUK: \"Geben Sie bitte eine gültige Telefonnummer ein.\",\n\tphoneUS: \"Geben Sie bitte eine gültige Telefonnummer ein.\",\n\tpostalcodeBR: \"Geben Sie bitte eine gültige brasilianische Postleitzahl ein.\",\n\tpostalCodeCA: \"Geben Sie bitte eine gültige kanadische Postleitzahl ein.\",\n\tpostalcodeIT: \"Geben Sie bitte eine gültige italienische Postleitzahl ein.\",\n\tpostalcodeNL: \"Geben Sie bitte eine gültige niederländische Postleitzahl ein.\",\n\tpostcodeUK: \"Geben Sie bitte eine gültige britische Postleitzahl ein.\",\n\trequire_from_group: $.validator.format( \"Füllen Sie bitte mindestens {0} dieser Felder aus.\" ),\n\tskip_or_fill_minimum: $.validator.format( \"Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus.\" ),\n\tstateUS: \"Geben Sie bitte einen gültigen US-Bundesstaat ein.\",\n\tstrippedminlength: $.validator.format( \"Geben Sie bitte mindestens {0} Zeichen ein.\" ),\n\ttime: \"Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.\",\n\ttime12h: \"Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.\",\n\tvinUS: \"Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.\",\n\tzipcodeUS: \"Die angegebene US-Postleitzahl ist ungültig.\",\n\tziprange: \"Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_el.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EL (Greek; ελληνικά)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Αυτό το πεδίο είναι υποχρεωτικό.\",\n\tremote: \"Παρακαλώ διορθώστε αυτό το πεδίο.\",\n\temail: \"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.\",\n\turl: \"Παρακαλώ εισάγετε ένα έγκυρο URL.\",\n\tdate: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.\",\n\tdateISO: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).\",\n\tnumber: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.\",\n\tdigits: \"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.\",\n\tcreditcard: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.\",\n\tequalTo: \"Παρακαλώ εισάγετε την ίδια τιμή ξανά.\",\n\textension: \"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.\",\n\tmaxlength: $.validator.format( \"Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες.\" ),\n\tminlength: $.validator.format( \"Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες.\" ),\n\trangelength: $.validator.format( \"Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων.\" ),\n\trange: $.validator.format( \"Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}.\" ),\n\tmax: $.validator.format( \"Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}.\" ),\n\tmin: $.validator.format( \"Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_es.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, rellena este campo.\",\n\temail: \"Por favor, escribe una dirección de correo válida.\",\n\turl: \"Por favor, escribe una URL válida.\",\n\tdate: \"Por favor, escribe una fecha válida.\",\n\tdateISO: \"Por favor, escribe una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribe un número válido.\",\n\tdigits: \"Por favor, escribe sólo dígitos.\",\n\tcreditcard: \"Por favor, escribe un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribe el mismo valor de nuevo.\",\n\textension: \"Por favor, escribe un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format( \"Por favor, no escribas más de {0} caracteres.\" ),\n\tminlength: $.validator.format( \"Por favor, no escribas menos de {0} caracteres.\" ),\n\trangelength: $.validator.format( \"Por favor, escribe un valor entre {0} y {1} caracteres.\" ),\n\trange: $.validator.format( \"Por favor, escribe un valor entre {0} y {1}.\" ),\n\tmax: $.validator.format( \"Por favor, escribe un valor menor o igual a {0}.\" ),\n\tmin: $.validator.format( \"Por favor, escribe un valor mayor o igual a {0}.\" ),\n\tnifES: \"Por favor, escribe un NIF válido.\",\n\tnieES: \"Por favor, escribe un NIE válido.\",\n\tcifES: \"Por favor, escribe un CIF válido.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_es_AR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: AR (Argentina)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, completá este campo.\",\n\temail: \"Por favor, escribí una dirección de correo válida.\",\n\turl: \"Por favor, escribí una URL válida.\",\n\tdate: \"Por favor, escribí una fecha válida.\",\n\tdateISO: \"Por favor, escribí una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribí un número entero válido.\",\n\tdigits: \"Por favor, escribí sólo dígitos.\",\n\tcreditcard: \"Por favor, escribí un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribí el mismo valor de nuevo.\",\n\textension: \"Por favor, escribí un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format( \"Por favor, no escribas más de {0} caracteres.\" ),\n\tminlength: $.validator.format( \"Por favor, no escribas menos de {0} caracteres.\" ),\n\trangelength: $.validator.format( \"Por favor, escribí un valor entre {0} y {1} caracteres.\" ),\n\trange: $.validator.format( \"Por favor, escribí un valor entre {0} y {1}.\" ),\n\tmax: $.validator.format( \"Por favor, escribí un valor menor o igual a {0}.\" ),\n\tmin: $.validator.format( \"Por favor, escribí un valor mayor o igual a {0}.\" ),\n\tnifES: \"Por favor, escribí un NIF válido.\",\n\tnieES: \"Por favor, escribí un NIE válido.\",\n\tcifES: \"Por favor, escribí un CIF válido.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_es_PE.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: PE (Perú)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, llene este campo.\",\n\temail: \"Por favor, escriba un correo electrónico válido.\",\n\turl: \"Por favor, escriba una URL válida.\",\n\tdate: \"Por favor, escriba una fecha válida.\",\n\tdateISO: \"Por favor, escriba una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escriba un número válido.\",\n\tdigits: \"Por favor, escriba sólo dígitos.\",\n\tcreditcard: \"Por favor, escriba un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escriba el mismo valor de nuevo.\",\n\textension: \"Por favor, escriba un valor con una extensión permitida.\",\n\tmaxlength: $.validator.format( \"Por favor, no escriba más de {0} caracteres.\" ),\n\tminlength: $.validator.format( \"Por favor, no escriba menos de {0} caracteres.\" ),\n\trangelength: $.validator.format( \"Por favor, escriba un valor entre {0} y {1} caracteres.\" ),\n\trange: $.validator.format( \"Por favor, escriba un valor entre {0} y {1}.\" ),\n\tmax: $.validator.format( \"Por favor, escriba un valor menor o igual a {0}.\" ),\n\tmin: $.validator.format( \"Por favor, escriba un valor mayor o igual a {0}.\" ),\n\tnifES: \"Por favor, escriba un NIF válido.\",\n\tnieES: \"Por favor, escriba un NIE válido.\",\n\tcifES: \"Por favor, escriba un CIF válido.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_et.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ET (Estonian; eesti, eesti keel)\n */\n$.extend( $.validator.messages, {\n\trequired: \"See väli peab olema täidetud.\",\n\tmaxlength: $.validator.format( \"Palun sisestage vähem kui {0} tähemärki.\" ),\n\tminlength: $.validator.format( \"Palun sisestage vähemalt {0} tähemärki.\" ),\n\trangelength: $.validator.format( \"Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki.\" ),\n\temail: \"Palun sisestage korrektne e-maili aadress.\",\n\turl: \"Palun sisestage korrektne URL.\",\n\tdate: \"Palun sisestage korrektne kuupäev.\",\n\tdateISO: \"Palun sisestage korrektne kuupäev (YYYY-MM-DD).\",\n\tnumber: \"Palun sisestage korrektne number.\",\n\tdigits: \"Palun sisestage ainult numbreid.\",\n\tequalTo: \"Palun sisestage sama väärtus uuesti.\",\n\trange: $.validator.format( \"Palun sisestage väärtus vahemikus {0} kuni {1}.\" ),\n\tmax: $.validator.format( \"Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}.\" ),\n\tmin: $.validator.format( \"Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}.\" ),\n\tcreditcard: \"Palun sisestage korrektne krediitkaardi number.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_eu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EU (Basque; euskara, euskera)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Eremu hau beharrezkoa da.\",\n\tremote: \"Mesedez, bete eremu hau.\",\n\temail: \"Mesedez, idatzi baliozko posta helbide bat.\",\n\turl: \"Mesedez, idatzi baliozko URL bat.\",\n\tdate: \"Mesedez, idatzi baliozko data bat.\",\n\tdateISO: \"Mesedez, idatzi baliozko (ISO) data bat.\",\n\tnumber: \"Mesedez, idatzi baliozko zenbaki oso bat.\",\n\tdigits: \"Mesedez, idatzi digituak soilik.\",\n\tcreditcard: \"Mesedez, idatzi baliozko txartel zenbaki bat.\",\n\tequalTo: \"Mesedez, idatzi berdina berriro ere.\",\n\textension: \"Mesedez, idatzi onartutako luzapena duen balio bat.\",\n\tmaxlength: $.validator.format( \"Mesedez, ez idatzi {0} karaktere baino gehiago.\" ),\n\tminlength: $.validator.format( \"Mesedez, ez idatzi {0} karaktere baino gutxiago.\" ),\n\trangelength: $.validator.format( \"Mesedez, idatzi {0} eta {1} karaktere arteko balio bat.\" ),\n\trange: $.validator.format( \"Mesedez, idatzi {0} eta {1} arteko balio bat.\" ),\n\tmax: $.validator.format( \"Mesedez, idatzi {0} edo txikiagoa den balio bat.\" ),\n\tmin: $.validator.format( \"Mesedez, idatzi {0} edo handiagoa den balio bat.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_fa.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FA (Persian; فارسی)\n */\n$.extend( $.validator.messages, {\n\trequired: \"تکمیل این فیلد اجباری است.\",\n\tremote: \"لطفا این فیلد را تصحیح کنید.\",\n\temail: \"لطفا یک ایمیل صحیح وارد کنید.\",\n\turl: \"لطفا آدرس صحیح وارد کنید.\",\n\tdate: \"لطفا تاریخ صحیح وارد کنید.\",\n\tdateFA: \"لطفا یک تاریخ صحیح وارد کنید.\",\n\tdateISO: \"لطفا تاریخ صحیح وارد کنید (ISO).\",\n\tnumber: \"لطفا عدد صحیح وارد کنید.\",\n\tdigits: \"لطفا تنها رقم وارد کنید.\",\n\tcreditcard: \"لطفا کریدیت کارت صحیح وارد کنید.\",\n\tequalTo: \"لطفا مقدار برابری وارد کنید.\",\n\textension: \"لطفا مقداری وارد کنید که\",\n\talphanumeric: \"لطفا مقدار را عدد (انگلیسی) وارد کنید.\",\n\tmaxlength: $.validator.format( \"لطفا بیشتر از {0} حرف وارد نکنید.\" ),\n\tminlength: $.validator.format( \"لطفا کمتر از {0} حرف وارد نکنید.\" ),\n\trangelength: $.validator.format( \"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\" ),\n\trange: $.validator.format( \"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\" ),\n\tmax: $.validator.format( \"لطفا مقداری کمتر از {0} وارد کنید.\" ),\n\tmin: $.validator.format( \"لطفا مقداری بیشتر از {0} وارد کنید.\" ),\n\tminWords: $.validator.format( \"لطفا حداقل {0} کلمه وارد کنید.\" ),\n\tmaxWords: $.validator.format( \"لطفا حداکثر {0} کلمه وارد کنید.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FI (Finnish; suomi, suomen kieli)\n */\n$.extend( $.validator.messages, {\n\trequired: \"T&auml;m&auml; kentt&auml; on pakollinen.\",\n\temail: \"Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.\",\n\turl: \"Sy&ouml;t&auml; oikea URL-osoite.\",\n\tdate: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.\",\n\tdateISO: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.\",\n\tnumber: \"Sy&ouml;t&auml; luku.\",\n\tcreditcard: \"Sy&ouml;t&auml; voimassa oleva luottokorttinumero.\",\n\tdigits: \"Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.\",\n\tequalTo: \"Sy&ouml;t&auml; sama arvo uudestaan.\",\n\tmaxlength: $.validator.format( \"Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;.\" ),\n\tminlength: $.validator.format( \"V&auml;hint&auml;&auml;n {0} merkki&auml;.\" ),\n\trangelength: $.validator.format( \"Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;.\" ),\n\trange: $.validator.format( \"Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}.\" ),\n\tmax: $.validator.format( \"Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}.\" ),\n\tmin: $.validator.format( \"Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_fr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FR (French; français)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Ce champ est obligatoire.\",\n\tremote: \"Veuillez corriger ce champ.\",\n\temail: \"Veuillez fournir une adresse électronique valide.\",\n\turl: \"Veuillez fournir une adresse URL valide.\",\n\tdate: \"Veuillez fournir une date valide.\",\n\tdateISO: \"Veuillez fournir une date valide (ISO).\",\n\tnumber: \"Veuillez fournir un numéro valide.\",\n\tdigits: \"Veuillez fournir seulement des chiffres.\",\n\tcreditcard: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tequalTo: \"Veuillez fournir encore la même valeur.\",\n\tnotEqualTo: \"Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.\",\n\textension: \"Veuillez fournir une valeur avec une extension valide.\",\n\tmaxlength: $.validator.format( \"Veuillez fournir au plus {0} caractères.\" ),\n\tminlength: $.validator.format( \"Veuillez fournir au moins {0} caractères.\" ),\n\trangelength: $.validator.format( \"Veuillez fournir une valeur qui contient entre {0} et {1} caractères.\" ),\n\trange: $.validator.format( \"Veuillez fournir une valeur entre {0} et {1}.\" ),\n\tmax: $.validator.format( \"Veuillez fournir une valeur inférieure ou égale à {0}.\" ),\n\tmin: $.validator.format( \"Veuillez fournir une valeur supérieure ou égale à {0}.\" ),\n\tstep: $.validator.format( \"Veuillez fournir une valeur multiple de {0}.\" ),\n\tmaxWords: $.validator.format( \"Veuillez fournir au plus {0} mots.\" ),\n\tminWords: $.validator.format( \"Veuillez fournir au moins {0} mots.\" ),\n\trangeWords: $.validator.format( \"Veuillez fournir entre {0} et {1} mots.\" ),\n\tletterswithbasicpunc: \"Veuillez fournir seulement des lettres et des signes de ponctuation.\",\n\talphanumeric: \"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.\",\n\tlettersonly: \"Veuillez fournir seulement des lettres.\",\n\tnowhitespace: \"Veuillez ne pas inscrire d'espaces blancs.\",\n\tziprange: \"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.\",\n\tinteger: \"Veuillez fournir un nombre non décimal qui est positif ou négatif.\",\n\tvinUS: \"Veuillez fournir un numéro d'identification du véhicule (VIN).\",\n\tdateITA: \"Veuillez fournir une date valide.\",\n\ttime: \"Veuillez fournir une heure valide entre 00:00 et 23:59.\",\n\tphoneUS: \"Veuillez fournir un numéro de téléphone valide.\",\n\tphoneUK: \"Veuillez fournir un numéro de téléphone valide.\",\n\tmobileUK: \"Veuillez fournir un numéro de téléphone mobile valide.\",\n\tstrippedminlength: $.validator.format( \"Veuillez fournir au moins {0} caractères.\" ),\n\temail2: \"Veuillez fournir une adresse électronique valide.\",\n\turl2: \"Veuillez fournir une adresse URL valide.\",\n\tcreditcardtypes: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tipv4: \"Veuillez fournir une adresse IP v4 valide.\",\n\tipv6: \"Veuillez fournir une adresse IP v6 valide.\",\n\trequire_from_group: $.validator.format( \"Veuillez fournir au moins {0} de ces champs.\" ),\n\tnifES: \"Veuillez fournir un numéro NIF valide.\",\n\tnieES: \"Veuillez fournir un numéro NIE valide.\",\n\tcifES: \"Veuillez fournir un numéro CIF valide.\",\n\tpostalCodeCA: \"Veuillez fournir un code postal valide.\",\n\tpattern: \"Format non valide.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ge.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/**\n * @author  @tatocaster <kutaliatato@gmail.com>\n * Translated default messages for the jQuery validation plugin.\n * Locale: GE (Georgian; ქართული)\n */\n$.extend( $.validator.messages, {\n\trequired: \"ეს ველი სავალდებულოა\",\n\tremote: \"გთხოვთ შეასწოროთ.\",\n\temail: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\turl: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\tdate: \"გთხოვთ შეიყვანოთ სწორი თარიღი.\",\n\tdateISO: \"გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).\",\n\tnumber: \"გთხოვთ შეიყვანოთ რიცხვი.\",\n\tdigits: \"დაშვებულია მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.\",\n\tequalTo: \"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.\",\n\tmaxlength: $.validator.format( \"გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი.\" ),\n\tminlength: $.validator.format( \"შეიყვანეთ მინიმუმ {0} სიმბოლო.\" ),\n\trangelength: $.validator.format( \"გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები.\" ),\n\trange: $.validator.format( \"შეიყვანეთ {0} -სა {1} -ს შორის.\" ),\n\tmax: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს.\" ),\n\tmin: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_gl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: GL (Galician; Galego)\n */\n( function( $ ) {\n\t$.extend( $.validator.messages, {\n\t\trequired: \"Este campo é obrigatorio.\",\n\t\tremote: \"Por favor, cubre este campo.\",\n\t\temail: \"Por favor, escribe unha dirección de correo válida.\",\n\t\turl: \"Por favor, escribe unha URL válida.\",\n\t\tdate: \"Por favor, escribe unha data válida.\",\n\t\tdateISO: \"Por favor, escribe unha data (ISO) válida.\",\n\t\tnumber: \"Por favor, escribe un número válido.\",\n\t\tdigits: \"Por favor, escribe só díxitos.\",\n\t\tcreditcard: \"Por favor, escribe un número de tarxeta válido.\",\n\t\tequalTo: \"Por favor, escribe o mesmo valor de novo.\",\n\t\textension: \"Por favor, escribe un valor cunha extensión aceptada.\",\n\t\tmaxlength: $.validator.format( \"Por favor, non escribas máis de {0} caracteres.\" ),\n\t\tminlength: $.validator.format( \"Por favor, non escribas menos de {0} caracteres.\" ),\n\t\trangelength: $.validator.format( \"Por favor, escribe un valor entre {0} e {1} caracteres.\" ),\n\t\trange: $.validator.format( \"Por favor, escribe un valor entre {0} e {1}.\" ),\n\t\tmax: $.validator.format( \"Por favor, escribe un valor menor ou igual a {0}.\" ),\n\t\tmin: $.validator.format( \"Por favor, escribe un valor maior ou igual a {0}.\" ),\n\t\tnifES: \"Por favor, escribe un NIF válido.\",\n\t\tnieES: \"Por favor, escribe un NIE válido.\",\n\t\tcifES: \"Por favor, escribe un CIF válido.\"\n\t} );\n}( jQuery ) );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_he.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HE (Hebrew; עברית)\n */\n$.extend( $.validator.messages, {\n\trequired: \"השדה הזה הינו שדה חובה\",\n\tremote: \"נא לתקן שדה זה\",\n\temail: \"נא למלא כתובת דוא\\\"ל חוקית\",\n\turl: \"נא למלא כתובת אינטרנט חוקית\",\n\tdate: \"נא למלא תאריך חוקי\",\n\tdateISO: \"נא למלא תאריך חוקי (ISO)\",\n\tnumber: \"נא למלא מספר\",\n\tdigits: \"נא למלא רק מספרים\",\n\tcreditcard: \"נא למלא מספר כרטיס אשראי חוקי\",\n\tequalTo: \"נא למלא את אותו ערך שוב\",\n\textension: \"נא למלא ערך עם סיומת חוקית\",\n\tmaxlength: $.validator.format( \".נא לא למלא יותר מ- {0} תווים\" ),\n\tminlength: $.validator.format( \"נא למלא לפחות {0} תווים\" ),\n\trangelength: $.validator.format( \"נא למלא ערך בין {0} ל- {1} תווים\" ),\n\trange: $.validator.format( \"נא למלא ערך בין {0} ל- {1}\" ),\n\tmax: $.validator.format( \"נא למלא ערך קטן או שווה ל- {0}\" ),\n\tmin: $.validator.format( \"נא למלא ערך גדול או שווה ל- {0}\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_hr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HR (Croatia; hrvatski jezik)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Ovo polje je obavezno.\",\n\tremote: \"Ovo polje treba popraviti.\",\n\temail: \"Unesite ispravnu e-mail adresu.\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo brojeve.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite ponovo istu vrijednost.\",\n\textension: \"Unesite vrijednost sa ispravnom ekstenzijom.\",\n\tmaxlength: $.validator.format( \"Maksimalni broj znakova je {0} .\" ),\n\tminlength: $.validator.format( \"Minimalni broj znakova je {0} .\" ),\n\trangelength: $.validator.format( \"Unesite vrijednost između {0} i {1} znakova.\" ),\n\trange: $.validator.format( \"Unesite vrijednost između {0} i {1}.\" ),\n\tmax: $.validator.format( \"Unesite vrijednost manju ili jednaku {0}.\" ),\n\tmin: $.validator.format( \"Unesite vrijednost veću ili jednaku {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_hu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HU (Hungarian; Magyar)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Kötelező megadni.\",\n\tmaxlength: $.validator.format( \"Legfeljebb {0} karakter hosszú legyen.\" ),\n\tminlength: $.validator.format( \"Legalább {0} karakter hosszú legyen.\" ),\n\trangelength: $.validator.format( \"Legalább {0} és legfeljebb {1} karakter hosszú legyen.\" ),\n\temail: \"Érvényes e-mail címnek kell lennie.\",\n\turl: \"Érvényes URL-nek kell lennie.\",\n\tdate: \"Dátumnak kell lennie.\",\n\tnumber: \"Számnak kell lennie.\",\n\tdigits: \"Csak számjegyek lehetnek.\",\n\tequalTo: \"Meg kell egyeznie a két értéknek.\",\n\trange: $.validator.format( \"{0} és {1} közé kell esnie.\" ),\n\tmax: $.validator.format( \"Nem lehet nagyobb, mint {0}.\" ),\n\tmin: $.validator.format( \"Nem lehet kisebb, mint {0}.\" ),\n\tcreditcard: \"Érvényes hitelkártyaszámnak kell lennie.\",\n\tremote: \"Kérem javítsa ki ezt a mezőt.\",\n\tdateISO: \"Kérem írjon be egy érvényes dátumot (ISO).\",\n\tstep: $.validator.format( \"A {0} egyik többszörösét adja meg.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_hy_AM.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HY_AM (Armenian; հայերեն լեզու)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Պարտադիր լրացման դաշտ\",\n\tremote: \"Ներմուծեք ճիշտ արժեքը\",\n\temail: \"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե\",\n\turl: \"Ներմուծեք վավեր URL\",\n\tdate: \"Ներմուծեք վավեր ամսաթիվ\",\n\tdateISO: \"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։\",\n\tnumber: \"Ներմուծեք թիվ\",\n\tdigits: \"Ներմուծեք միայն թվեր\",\n\tcreditcard: \"Ներմուծեք ճիշտ բանկային քարտի համար\",\n\tequalTo: \"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ\",\n\textension: \"Ընտրեք ճիշտ ընդլանումով ֆայլ\",\n\tmaxlength: $.validator.format( \"Ներմուծեք ոչ ավել քան {0} նիշ\" ),\n\tminlength: $.validator.format( \"Ներմուծեք ոչ պակաս քան {0} նիշ\" ),\n\trangelength: $.validator.format( \"Ներմուծեք {0}֊ից {1} երկարությամբ արժեք\" ),\n\trange: $.validator.format( \"Ներմուծեք թիվ {0}֊ից {1} միջակայքում\" ),\n\tmax: $.validator.format( \"Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին\" ),\n\tmin: $.validator.format( \"Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_id.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ID (Indonesia; Indonesian)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Kolom ini diperlukan.\",\n\tremote: \"Harap benarkan kolom ini.\",\n\temail: \"Silakan masukkan format email yang benar.\",\n\turl: \"Silakan masukkan format URL yang benar.\",\n\tdate: \"Silakan masukkan format tanggal yang benar.\",\n\tdateISO: \"Silakan masukkan format tanggal(ISO) yang benar.\",\n\tnumber: \"Silakan masukkan angka yang benar.\",\n\tdigits: \"Harap masukan angka saja.\",\n\tcreditcard: \"Harap masukkan format kartu kredit yang benar.\",\n\tequalTo: \"Harap masukkan nilai yg sama dengan sebelumnya.\",\n\tmaxlength: $.validator.format( \"Input dibatasi hanya {0} karakter.\" ),\n\tminlength: $.validator.format( \"Input tidak kurang dari {0} karakter.\" ),\n\trangelength: $.validator.format( \"Panjang karakter yg diizinkan antara {0} dan {1} karakter.\" ),\n\trange: $.validator.format( \"Harap masukkan nilai antara {0} dan {1}.\" ),\n\tmax: $.validator.format( \"Harap masukkan nilai lebih kecil atau sama dengan {0}.\" ),\n\tmin: $.validator.format( \"Harap masukkan nilai lebih besar atau sama dengan {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_is.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IS (Icelandic; íslenska)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Þessi reitur er nauðsynlegur.\",\n\tremote: \"Lagaðu þennan reit.\",\n\tmaxlength: $.validator.format( \"Sláðu inn mest {0} stafi.\" ),\n\tminlength: $.validator.format( \"Sláðu inn minnst {0} stafi.\" ),\n\trangelength: $.validator.format( \"Sláðu inn minnst {0} og mest {1} stafi.\" ),\n\temail: \"Sláðu inn gilt netfang.\",\n\turl: \"Sláðu inn gilda vefslóð.\",\n\tdate: \"Sláðu inn gilda dagsetningu.\",\n\tnumber: \"Sláðu inn tölu.\",\n\tdigits: \"Sláðu inn tölustafi eingöngu.\",\n\tequalTo: \"Sláðu sama gildi inn aftur.\",\n\trange: $.validator.format( \"Sláðu inn gildi milli {0} og {1}.\" ),\n\tmax: $.validator.format( \"Sláðu inn gildi sem er minna en eða jafnt og {0}.\" ),\n\tmin: $.validator.format( \"Sláðu inn gildi sem er stærra en eða jafnt og {0}.\" ),\n\tcreditcard: \"Sláðu inn gilt greiðslukortanúmer.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_it.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IT (Italian; Italiano)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Campo obbligatorio\",\n\tremote: \"Controlla questo campo\",\n\temail: \"Inserisci un indirizzo email valido\",\n\turl: \"Inserisci un indirizzo web valido\",\n\tdate: \"Inserisci una data valida\",\n\tdateISO: \"Inserisci una data valida (ISO)\",\n\tnumber: \"Inserisci un numero valido\",\n\tdigits: \"Inserisci solo numeri\",\n\tcreditcard: \"Inserisci un numero di carta di credito valido\",\n\tequalTo: \"Il valore non corrisponde\",\n\textension: \"Inserisci un valore con un&apos;estensione valida\",\n\tmaxlength: $.validator.format( \"Non inserire pi&ugrave; di {0} caratteri\" ),\n\tminlength: $.validator.format( \"Inserisci almeno {0} caratteri\" ),\n\trangelength: $.validator.format( \"Inserisci un valore compreso tra {0} e {1} caratteri\" ),\n\trange: $.validator.format( \"Inserisci un valore compreso tra {0} e {1}\" ),\n\tmax: $.validator.format( \"Inserisci un valore minore o uguale a {0}\" ),\n\tmin: $.validator.format( \"Inserisci un valore maggiore o uguale a {0}\" ),\n\tnifES: \"Inserisci un NIF valido\",\n\tnieES: \"Inserisci un NIE valido\",\n\tcifES: \"Inserisci un CIF valido\",\n\tcurrency: \"Inserisci una valuta valida\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ja.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: JA (Japanese; 日本語)\n */\n$.extend( $.validator.messages, {\n\trequired: \"このフィールドは必須です。\",\n\tremote: \"このフィールドを修正してください。\",\n\temail: \"有効なEメールアドレスを入力してください。\",\n\turl: \"有効なURLを入力してください。\",\n\tdate: \"有効な日付を入力してください。\",\n\tdateISO: \"有効な日付（ISO）を入力してください。\",\n\tnumber: \"有効な数字を入力してください。\",\n\tdigits: \"数字のみを入力してください。\",\n\tcreditcard: \"有効なクレジットカード番号を入力してください。\",\n\tequalTo: \"同じ値をもう一度入力してください。\",\n\textension: \"有効な拡張子を含む値を入力してください。\",\n\tmaxlength: $.validator.format( \"{0} 文字以内で入力してください。\" ),\n\tminlength: $.validator.format( \"{0} 文字以上で入力してください。\" ),\n\trangelength: $.validator.format( \"{0} 文字から {1} 文字までの値を入力してください。\" ),\n\trange: $.validator.format( \"{0} から {1} までの値を入力してください。\" ),\n\tstep: $.validator.format( \"{0} の倍数を入力してください。\" ),\n\tmax: $.validator.format( \"{0} 以下の値を入力してください。\" ),\n\tmin: $.validator.format( \"{0} 以上の値を入力してください。\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ka.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KA (Georgian; ქართული)\n */\n$.extend( $.validator.messages, {\n\trequired: \"ამ ველის შევსება აუცილებელია.\",\n\tremote: \"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.\",\n\temail: \"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.\",\n\turl: \"გთხოვთ მიუთითოთ კორექტული URL.\",\n\tdate: \"გთხოვთ მიუთითოთ კორექტული თარიღი.\",\n\tdateISO: \"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.\",\n\tnumber: \"გთხოვთ მიუთითოთ ციფრი.\",\n\tdigits: \"გთხოვთ მიუთითოთ მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.\",\n\tequalTo: \"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.\",\n\textension: \"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.\",\n\tmaxlength: $.validator.format( \"დასაშვებია არაუმეტეს {0} სიმბოლო.\" ),\n\tminlength: $.validator.format( \"აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო.\" ),\n\trangelength: $.validator.format( \"ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე.\" ),\n\trange: $.validator.format( \"გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე.\" ),\n\tmax: $.validator.format( \"გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს.\" ),\n\tmin: $.validator.format( \"გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_kk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KK (Kazakh; қазақ тілі)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Бұл өрісті міндетті түрде толтырыңыз.\",\n\tremote: \"Дұрыс мағына енгізуіңізді сұраймыз.\",\n\temail: \"Нақты электронды поштаңызды енгізуіңізді сұраймыз.\",\n\turl: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdate: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdateISO: \"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.\",\n\tnumber: \"Күнді енгізуіңізді сұраймыз.\",\n\tdigits: \"Тек қана сандарды енгізуіңізді сұраймыз.\",\n\tcreditcard: \"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.\",\n\tequalTo: \"Осы мәнді қайта енгізуіңізді сұраймыз.\",\n\textension: \"Файлдың кеңейтуін дұрыс таңдаңыз.\",\n\tmaxlength: $.validator.format( \"Ұзындығы {0} символдан көр болмасын.\" ),\n\tminlength: $.validator.format( \"Ұзындығы {0} символдан аз болмасын.\" ),\n\trangelength: $.validator.format( \"Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз.\" ),\n\trange: $.validator.format( \"Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз.\" ),\n\tmax: $.validator.format( \"{0} аз немесе тең санын енгізуіңіді сұраймыз.\" ),\n\tmin: $.validator.format( \"{0} көп немесе тең санын енгізуіңізді сұраймыз.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ko.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KO (Korean; 한국어)\n */\n$.extend( $.validator.messages, {\n\trequired: \"필수 항목입니다.\",\n\tremote: \"항목을 수정하세요.\",\n\temail: \"유효하지 않은 E-Mail주소입니다.\",\n\turl: \"유효하지 않은 URL입니다.\",\n\tdate: \"올바른 날짜를 입력하세요.\",\n\tdateISO: \"올바른 날짜(ISO)를 입력하세요.\",\n\tnumber: \"유효한 숫자가 아닙니다.\",\n\tdigits: \"숫자만 입력 가능합니다.\",\n\tcreditcard: \"신용카드 번호가 바르지 않습니다.\",\n\tequalTo: \"같은 값을 다시 입력하세요.\",\n\textension: \"올바른 확장자가 아닙니다.\",\n\tmaxlength: $.validator.format( \"{0}자를 넘을 수 없습니다. \" ),\n\tminlength: $.validator.format( \"{0}자 이상 입력하세요.\" ),\n\trangelength: $.validator.format( \"문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요.\" ),\n\trange: $.validator.format( \"{0} 에서 {1} 사이의 값을 입력하세요.\" ),\n\tmax: $.validator.format( \"{0} 이하의 값을 입력하세요.\" ),\n\tmin: $.validator.format( \"{0} 이상의 값을 입력하세요.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_lt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LT (Lithuanian; lietuvių kalba)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Šis laukas yra privalomas.\",\n\tremote: \"Prašau pataisyti šį lauką.\",\n\temail: \"Prašau įvesti teisingą elektroninio pašto adresą.\",\n\turl: \"Prašau įvesti teisingą URL.\",\n\tdate: \"Prašau įvesti teisingą datą.\",\n\tdateISO: \"Prašau įvesti teisingą datą (ISO).\",\n\tnumber: \"Prašau įvesti teisingą skaičių.\",\n\tdigits: \"Prašau naudoti tik skaitmenis.\",\n\tcreditcard: \"Prašau įvesti teisingą kreditinės kortelės numerį.\",\n\tequalTo: \"Prašau įvestį tą pačią reikšmę dar kartą.\",\n\textension: \"Prašau įvesti reikšmę su teisingu plėtiniu.\",\n\tmaxlength: $.validator.format( \"Prašau įvesti ne daugiau kaip {0} simbolių.\" ),\n\tminlength: $.validator.format( \"Prašau įvesti bent {0} simbolius.\" ),\n\trangelength: $.validator.format( \"Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių.\" ),\n\trange: $.validator.format( \"Prašau įvesti reikšmę intervale nuo {0} iki {1}.\" ),\n\tmax: $.validator.format( \"Prašau įvesti reikšmę mažesnę arba lygią {0}.\" ),\n\tmin: $.validator.format( \"Prašau įvesti reikšmę didesnę arba lygią {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_lv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LV (Latvian; latviešu valoda)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Šis lauks ir obligāts.\",\n\tremote: \"Lūdzu, pārbaudiet šo lauku.\",\n\temail: \"Lūdzu, ievadiet derīgu e-pasta adresi.\",\n\turl: \"Lūdzu, ievadiet derīgu URL adresi.\",\n\tdate: \"Lūdzu, ievadiet derīgu datumu.\",\n\tdateISO: \"Lūdzu, ievadiet derīgu datumu (ISO).\",\n\tnumber: \"Lūdzu, ievadiet derīgu numuru.\",\n\tdigits: \"Lūdzu, ievadiet tikai ciparus.\",\n\tcreditcard: \"Lūdzu, ievadiet derīgu kredītkartes numuru.\",\n\tequalTo: \"Lūdzu, ievadiet to pašu vēlreiz.\",\n\textension: \"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.\",\n\tmaxlength: $.validator.format( \"Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes.\" ),\n\tminlength: $.validator.format( \"Lūdzu, ievadiet vismaz {0} rakstzīmes.\" ),\n\trangelength: $.validator.format( \"Lūdzu ievadiet {0} līdz {1} rakstzīmes.\" ),\n\trange: $.validator.format( \"Lūdzu, ievadiet skaitli no {0} līdz {1}.\" ),\n\tmax: $.validator.format( \"Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}.\" ),\n\tmin: $.validator.format( \"Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_mk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: MK (Macedonian; македонски јазик)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Полето е задолжително.\",\n\tremote: \"Поправете го ова поле\",\n\temail: \"Внесете правилна e-mail адреса\",\n\turl: \"Внесете правилен URL.\",\n\tdate: \"Внесете правилен датум\",\n\tdateISO: \"Внесете правилен датум (ISO).\",\n\tnumber: \"Внесете правилен број.\",\n\tdigits: \"Внесете само бројки.\",\n\tcreditcard: \"Внесете правилен број на кредитната картичка.\",\n\tequalTo: \"Внесете ја истата вредност повторно.\",\n\textension: \"Внесете вредност со соодветна екстензија.\",\n\tmaxlength: $.validator.format( \"Внесете максимално {0} знаци.\" ),\n\tminlength: $.validator.format( \"Внесете барем {0} знаци.\" ),\n\trangelength: $.validator.format( \"Внесете вредност со должина помеѓу {0} и {1} знаци.\" ),\n\trange: $.validator.format( \"Внесете вредност помеѓу {0} и {1}.\" ),\n\tmax: $.validator.format( \"Внесете вредност помала или еднаква на {0}.\" ),\n\tmin: $.validator.format( \"Внесете вредност поголема или еднаква на {0}\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_my.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: MY (Malay; Melayu)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Medan ini diperlukan.\",\n\tremote: \"Sila betulkan medan ini.\",\n\temail: \"Sila masukkan alamat emel yang betul.\",\n\turl: \"Sila masukkan URL yang betul.\",\n\tdate: \"Sila masukkan tarikh yang betul.\",\n\tdateISO: \"Sila masukkan tarikh(ISO) yang betul.\",\n\tnumber: \"Sila masukkan nombor yang betul.\",\n\tdigits: \"Sila masukkan nilai digit sahaja.\",\n\tcreditcard: \"Sila masukkan nombor kredit kad yang betul.\",\n\tequalTo: \"Sila masukkan nilai yang sama semula.\",\n\textension: \"Sila masukkan nilai yang telah diterima.\",\n\tmaxlength: $.validator.format( \"Sila masukkan tidak lebih dari {0} aksara.\" ),\n\tminlength: $.validator.format( \"Sila masukkan sekurang-kurangnya {0} aksara.\" ),\n\trangelength: $.validator.format( \"Sila masukkan antara {0} dan {1} panjang aksara.\" ),\n\trange: $.validator.format( \"Sila masukkan nilai antara {0} dan {1} aksara.\" ),\n\tmax: $.validator.format( \"Sila masukkan nilai yang kurang atau sama dengan {0}.\" ),\n\tmin: $.validator.format( \"Sila masukkan nilai yang lebih atau sama dengan {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NL (Dutch; Nederlands, Vlaams)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Dit is een verplicht veld.\",\n\tremote: \"Controleer dit veld.\",\n\temail: \"Vul hier een geldig e-mailadres in.\",\n\turl: \"Vul hier een geldige URL in.\",\n\tdate: \"Vul hier een geldige datum in.\",\n\tdateISO: \"Vul hier een geldige datum in (ISO-formaat).\",\n\tnumber: \"Vul hier een geldig getal in.\",\n\tdigits: \"Vul hier alleen getallen in.\",\n\tcreditcard: \"Vul hier een geldig creditcardnummer in.\",\n\tequalTo: \"Vul hier dezelfde waarde in.\",\n\textension: \"Vul hier een waarde in met een geldige extensie.\",\n\tmaxlength: $.validator.format( \"Vul hier maximaal {0} tekens in.\" ),\n\tminlength: $.validator.format( \"Vul hier minimaal {0} tekens in.\" ),\n\trangelength: $.validator.format( \"Vul hier een waarde in van minimaal {0} en maximaal {1} tekens.\" ),\n\trange: $.validator.format( \"Vul hier een waarde in van minimaal {0} en maximaal {1}.\" ),\n\tmax: $.validator.format( \"Vul hier een waarde in kleiner dan of gelijk aan {0}.\" ),\n\tmin: $.validator.format( \"Vul hier een waarde in groter dan of gelijk aan {0}.\" ),\n\tstep: $.validator.format( \"Vul hier een veelvoud van {0} in.\" ),\n\n\t// For validations in additional-methods.js\n\tiban: \"Vul hier een geldig IBAN in.\",\n\tdateNL: \"Vul hier een geldige datum in.\",\n\tphoneNL: \"Vul hier een geldig Nederlands telefoonnummer in.\",\n\tmobileNL: \"Vul hier een geldig Nederlands mobiel telefoonnummer in.\",\n\tpostalcodeNL: \"Vul hier een geldige postcode in.\",\n\tbankaccountNL: \"Vul hier een geldig bankrekeningnummer in.\",\n\tgiroaccountNL: \"Vul hier een geldig gironummer in.\",\n\tbankorgiroaccountNL: \"Vul hier een geldig bank- of gironummer in.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_no.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NO (Norwegian; Norsk)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Angi en verdi.\",\n\tremote: \"Ugyldig verdi.\",\n\temail: \"Angi en gyldig epostadresse.\",\n\turl: \"Angi en gyldig URL.\",\n\tdate: \"Angi en gyldig dato.\",\n\tdateISO: \"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).\",\n\tnumber: \"Angi et gyldig tall.\",\n\tdigits: \"Skriv kun tall.\",\n\tequalTo: \"Skriv samme verdi igjen.\",\n\tmaxlength: $.validator.format( \"Maksimalt {0} tegn.\" ),\n\tminlength: $.validator.format( \"Minimum {0} tegn.\" ),\n\trangelength: $.validator.format( \"Angi minimum {0} og maksimum {1} tegn.\" ),\n\trange: $.validator.format( \"Angi en verdi mellom {0} og {1}.\" ),\n\tmax: $.validator.format( \"Angi en verdi som er mindre eller lik {0}.\" ),\n\tmin: $.validator.format( \"Angi en verdi som er st&oslash;rre eller lik {0}.\" ),\n\tstep: $.validator.format( \"Angi en verdi ganger {0}.\" ),\n\tcreditcard: \"Angi et gyldig kredittkortnummer.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_pl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PL (Polish; język polski, polszczyzna)\n */\n$.extend( $.validator.messages, {\n\trequired: \"To pole jest wymagane.\",\n\tremote: \"Proszę o wypełnienie tego pola.\",\n\temail: \"Proszę o podanie prawidłowego adresu email.\",\n\turl: \"Proszę o podanie prawidłowego URL.\",\n\tdate: \"Proszę o podanie prawidłowej daty.\",\n\tdateISO: \"Proszę o podanie prawidłowej daty (ISO).\",\n\tnumber: \"Proszę o podanie prawidłowej liczby.\",\n\tdigits: \"Proszę o podanie samych cyfr.\",\n\tcreditcard: \"Proszę o podanie prawidłowej karty kredytowej.\",\n\tequalTo: \"Proszę o podanie tej samej wartości ponownie.\",\n\textension: \"Proszę o podanie wartości z prawidłowym rozszerzeniem.\",\n\tnipPL: \"Proszę o podanie prawidłowego numeru NIP.\",\n\tphonePL: \"Proszę o podanie prawidłowego numeru telefonu\",\n\tmaxlength: $.validator.format( \"Proszę o podanie nie więcej niż {0} znaków.\" ),\n\tminlength: $.validator.format( \"Proszę o podanie przynajmniej {0} znaków.\" ),\n\trangelength: $.validator.format( \"Proszę o podanie wartości o długości od {0} do {1} znaków.\" ),\n\trange: $.validator.format( \"Proszę o podanie wartości z przedziału od {0} do {1}.\" ),\n\tmax: $.validator.format( \"Proszę o podanie wartości mniejszej bądź równej {0}.\" ),\n\tmin: $.validator.format( \"Proszę o podanie wartości większej bądź równej {0}.\" ),\n\tpattern: $.validator.format( \"Pole zawiera niedozwolone znaki.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_pt_BR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: BR (Brazil)\n */\n$.extend( $.validator.messages, {\n\n\t// Core\n\trequired: \"Este campo &eacute; requerido.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.\",\n\turl: \"Por favor, forne&ccedil;a uma URL v&aacute;lida.\",\n\tdate: \"Por favor, forne&ccedil;a uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, forne&ccedil;a somente d&iacute;gitos.\",\n\tcreditcard: \"Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, forne&ccedil;a o mesmo valor novamente.\",\n\tmaxlength: $.validator.format( \"Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres.\" ),\n\tminlength: $.validator.format( \"Por favor, forne&ccedil;a ao menos {0} caracteres.\" ),\n\trangelength: $.validator.format( \"Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento.\" ),\n\trange: $.validator.format( \"Por favor, forne&ccedil;a um valor entre {0} e {1}.\" ),\n\tmax: $.validator.format( \"Por favor, forne&ccedil;a um valor menor ou igual a {0}.\" ),\n\tmin: $.validator.format( \"Por favor, forne&ccedil;a um valor maior ou igual a {0}.\" ),\n\tstep: $.validator.format( \"Por favor, forne&ccedil;a um valor m&uacute;ltiplo de {0}.\" ),\n\n\t// Metodos Adicionais\n\tmaxWords: $.validator.format( \"Por favor, forne&ccedil;a com {0} palavras ou menos.\" ),\n\tminWords: $.validator.format( \"Por favor, forne&ccedil;a pelo menos {0} palavras.\" ),\n\trangeWords: $.validator.format( \"Por favor, forne&ccedil;a entre {0} e {1} palavras.\" ),\n\taccept: \"Por favor, forne&ccedil;a um tipo v&aacute;lido.\",\n\talphanumeric: \"Por favor, forne&ccedil;a somente com letras, n&uacute;meros e sublinhados.\",\n\tbankaccountNL: \"Por favor, forne&ccedil;a com um n&uacute;mero de conta banc&aacute;ria v&aacute;lida.\",\n\tbankorgiroaccountNL: \"Por favor, forne&ccedil;a um banco v&aacute;lido ou n&uacute;mero de conta.\",\n\tbic: \"Por favor, forne&ccedil;a um c&oacute;digo BIC v&aacute;lido.\",\n\tcifES: \"Por favor, forne&ccedil;a um c&oacute;digo CIF v&aacute;lido.\",\n\tcreditcardtypes: \"Por favor, forne&ccedil;a um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tcurrency: \"Por favor, forne&ccedil;a uma moeda v&aacute;lida.\",\n\tdateFA: \"Por favor, forne&ccedil;a uma data correta.\",\n\tdateITA: \"Por favor, forne&ccedil;a uma data correta.\",\n\tdateNL: \"Por favor, forne&ccedil;a uma data correta.\",\n\textension: \"Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.\",\n\tgiroaccountNL: \"Por favor, forne&ccedil;a um n&uacute;mero de conta corrente v&aacute;lido.\",\n\tiban: \"Por favor, forne&ccedil;a um c&oacute;digo IBAN v&aacute;lido.\",\n\tinteger: \"Por favor, forne&ccedil;a um n&uacute;mero n&atilde;o decimal.\",\n\tipv4: \"Por favor, forne&ccedil;a um IPv4 v&aacute;lido.\",\n\tipv6: \"Por favor, forne&ccedil;a um IPv6 v&aacute;lido.\",\n\tlettersonly: \"Por favor, forne&ccedil;a apenas com letras.\",\n\tletterswithbasicpunc: \"Por favor, forne&ccedil;a apenas letras ou pontua&ccedil;ões.\",\n\tmobileNL: \"Por favor, fornece&ccedil;a um n&uacute;mero v&aacute;lido de telefone.\",\n\tmobileUK: \"Por favor, fornece&ccedil;a um n&uacute;mero v&aacute;lido de telefone.\",\n\tnieES: \"Por favor, forne&ccedil;a um NIE v&aacute;lido.\",\n\tnifES: \"Por favor, forne&ccedil;a um NIF v&aacute;lido.\",\n\tnowhitespace: \"Por favor, n&atilde;o utilize espa&ccedil;os em branco.\",\n\tpattern: \"O formato fornecido &eacute; inv&aacute;lido.\",\n\tphoneNL: \"Por favor, forne&ccedil;a um n&uacute;mero de telefone v&aacute;lido.\",\n\tphoneUK: \"Por favor, forne&ccedil;a um n&uacute;mero de telefone v&aacute;lido.\",\n\tphoneUS: \"Por favor, forne&ccedil;a um n&uacute;mero de telefone v&aacute;lido.\",\n\tphonesUK: \"Por favor, forne&ccedil;a um n&uacute;mero de telefone v&aacute;lido.\",\n\tpostalCodeCA: \"Por favor, forne&ccedil;a um n&uacute;mero de c&oacute;digo postal v&aacute;lido.\",\n\tpostalcodeIT: \"Por favor, forne&ccedil;a um n&uacute;mero de c&oacute;digo postal v&aacute;lido.\",\n\tpostalcodeNL: \"Por favor, forne&ccedil;a um n&uacute;mero de c&oacute;digo postal v&aacute;lido.\",\n\tpostcodeUK: \"Por favor, forne&ccedil;a um n&uacute;mero de c&oacute;digo postal v&aacute;lido.\",\n\tpostalcodeBR: \"Por favor, forne&ccedil;a um CEP v&aacute;lido.\",\n\trequire_from_group: $.validator.format( \"Por favor, forne&ccedil;a pelo menos {0} destes campos.\" ),\n\tskip_or_fill_minimum: $.validator.format( \"Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles.\" ),\n\tstateUS: \"Por favor, forne&ccedil;a um estado v&aacute;lido.\",\n\tstrippedminlength: $.validator.format( \"Por favor, forne&ccedil;a pelo menos {0} caracteres.\" ),\n\ttime: \"Por favor, forne&ccedil;a um hor&aacute;rio v&aacute;lido, no intervado de 00:00 a 23:59.\",\n\ttime12h: \"Por favor, forne&ccedil;a um hor&aacute;rio v&aacute;lido, no intervado de 01:00 a 12:59 am/pm.\",\n\turl2: \"Por favor, forne&ccedil;a uma URL v&aacute;lida.\",\n\tvinUS: \"O n&uacute;mero de identifica&ccedil;&atilde;o de ve&iacute;culo informado (VIN) &eacute; inv&aacute;lido.\",\n\tzipcodeUS: \"Por favor, forne&ccedil;a um c&oacute;digo postal americano v&aacute;lido.\",\n\tziprange: \"O c&oacute;digo postal deve estar entre 902xx-xxxx e 905xx-xxxx\",\n\tcpfBR: \"Por favor, forne&ccedil;a um CPF v&aacute;lido.\",\n\tnisBR: \"Por favor, forne&ccedil;a um NIS/PIS v&aacute;lido\",\n\tcnhBR: \"Por favor, forne&ccedil;a um CNH v&aacute;lido.\",\n\tcnpjBR: \"Por favor, forne&ccedil;a um CNPJ v&aacute;lido.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_pt_PT.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: PT (Portugal)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Campo de preenchimento obrigat&oacute;rio.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.\",\n\turl: \"Por favor, introduza um URL v&aacute;lido.\",\n\tdate: \"Por favor, introduza uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, introduza uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, introduza um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, introduza apenas d&iacute;gitos.\",\n\tcreditcard: \"Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, introduza de novo o mesmo valor.\",\n\textension: \"Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.\",\n\tmaxlength: $.validator.format( \"Por favor, n&atilde;o introduza mais do que {0} caracteres.\" ),\n\tminlength: $.validator.format( \"Por favor, introduza pelo menos {0} caracteres.\" ),\n\trangelength: $.validator.format( \"Por favor, introduza entre {0} e {1} caracteres.\" ),\n\trange: $.validator.format( \"Por favor, introduza um valor entre {0} e {1}.\" ),\n\tmax: $.validator.format( \"Por favor, introduza um valor menor ou igual a {0}.\" ),\n\tmin: $.validator.format( \"Por favor, introduza um valor maior ou igual a {0}.\" ),\n\tnifES: \"Por favor, introduza um NIF v&aacute;lido.\",\n\tnieES: \"Por favor, introduza um NIE v&aacute;lido.\",\n\tcifES: \"Por favor, introduza um CIF v&aacute;lido.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ro.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RO (Romanian, limba română)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Acest câmp este obligatoriu.\",\n\tremote: \"Te rugăm să completezi acest câmp.\",\n\temail: \"Te rugăm să introduci o adresă de email validă\",\n\turl: \"Te rugăm sa introduci o adresă URL validă.\",\n\tdate: \"Te rugăm să introduci o dată corectă.\",\n\tdateISO: \"Te rugăm să introduci o dată (ISO) corectă.\",\n\tnumber: \"Te rugăm să introduci un număr întreg valid.\",\n\tdigits: \"Te rugăm să introduci doar cifre.\",\n\tcreditcard: \"Te rugăm să introduci un numar de carte de credit valid.\",\n\tequalTo: \"Te rugăm să reintroduci valoarea.\",\n\textension: \"Te rugăm să introduci o valoare cu o extensie validă.\",\n\tmaxlength: $.validator.format( \"Te rugăm să nu introduci mai mult de {0} caractere.\" ),\n\tminlength: $.validator.format( \"Te rugăm să introduci cel puțin {0} caractere.\" ),\n\trangelength: $.validator.format( \"Te rugăm să introduci o valoare între {0} și {1} caractere.\" ),\n\trange: $.validator.format( \"Te rugăm să introduci o valoare între {0} și {1}.\" ),\n\tmax: $.validator.format( \"Te rugăm să introduci o valoare egal sau mai mică decât {0}.\" ),\n\tmin: $.validator.format( \"Te rugăm să introduci o valoare egal sau mai mare decât {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ru.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RU (Russian; русский язык)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Это поле необходимо заполнить.\",\n\tremote: \"Пожалуйста, введите правильное значение.\",\n\temail: \"Пожалуйста, введите корректный адрес электронной почты.\",\n\turl: \"Пожалуйста, введите корректный URL.\",\n\tdate: \"Пожалуйста, введите корректную дату.\",\n\tdateISO: \"Пожалуйста, введите корректную дату в формате ISO.\",\n\tnumber: \"Пожалуйста, введите число.\",\n\tdigits: \"Пожалуйста, вводите только цифры.\",\n\tcreditcard: \"Пожалуйста, введите правильный номер кредитной карты.\",\n\tequalTo: \"Пожалуйста, введите такое же значение ещё раз.\",\n\textension: \"Пожалуйста, выберите файл с правильным расширением.\",\n\tmaxlength: $.validator.format( \"Пожалуйста, введите не больше {0} символов.\" ),\n\tminlength: $.validator.format( \"Пожалуйста, введите не меньше {0} символов.\" ),\n\trangelength: $.validator.format( \"Пожалуйста, введите значение длиной от {0} до {1} символов.\" ),\n\trange: $.validator.format( \"Пожалуйста, введите число от {0} до {1}.\" ),\n\tmax: $.validator.format( \"Пожалуйста, введите число, меньшее или равное {0}.\" ),\n\tmin: $.validator.format( \"Пожалуйста, введите число, большее или равное {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sd.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SD (Sindhi; سنڌي)\n */\n$.extend( $.validator.messages, {\n    required: \"هنن جاين جي ضرورت آهي\",\n    remote: \"هنن جاين جي ضرورت آهي\",\n    email: \"لکيل اي ميل غلط آهي\",\n    url: \"لکيل ايڊريس غلط آهي\",\n    date: \"لکيل تاريخ غلط آهي\",\n    dateISO: \"جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ\",\n    number: \"لکيل انگ صحيح ناهي\",\n    digits: \"رڳو انگ داخل ڪري سگهجي ٿو\",\n    creditcard: \"لکيل ڪارڊ نمبر صحيح نه آهي\",\n    equalTo: \"داخل ٿيل ڀيٽ صحيح نه آهي\",\n    extension: \"لکيل غلط آهي\",\n    maxlength: $.validator.format( \"وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي\" ),\n    minlength: $.validator.format( \"گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي\" ),\n    rangelength: $.validator.format( \"داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي\" ),\n    range: $.validator.format( \"داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي\" ),\n    max: $.validator.format( \"وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي\" ),\n    min: $.validator.format( \"گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_si.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SI (Slovenian)\n */\n$.extend( $.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Vpis v tem polju ni v pravi obliki.\",\n\temail: \"Prosimo, vnesite pravi email naslov.\",\n\turl: \"Prosimo, vnesite pravi URL.\",\n\tdate: \"Prosimo, vnesite pravi datum.\",\n\tdateISO: \"Prosimo, vnesite pravi datum (ISO).\",\n\tnumber: \"Prosimo, vnesite pravo številko.\",\n\tdigits: \"Prosimo, vnesite samo številke.\",\n\tcreditcard: \"Prosimo, vnesite pravo številko kreditne kartice.\",\n\tequalTo: \"Prosimo, ponovno vnesite enako vsebino.\",\n\textension: \"Prosimo, vnesite vsebino z pravo končnico.\",\n\tmaxlength: $.validator.format( \"Prosimo, da ne vnašate več kot {0} znakov.\" ),\n\tminlength: $.validator.format( \"Prosimo, vnesite vsaj {0} znakov.\" ),\n\trangelength: $.validator.format( \"Prosimo, vnesite od {0} do {1} znakov.\" ),\n\trange: $.validator.format( \"Prosimo, vnesite vrednost med {0} in {1}.\" ),\n\tmax: $.validator.format( \"Prosimo, vnesite vrednost manjšo ali enako {0}.\" ),\n\tmin: $.validator.format( \"Prosimo, vnesite vrednost večjo ali enako {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SK (Slovak; slovenčina, slovenský jazyk)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Povinné zadať.\",\n\tmaxlength: $.validator.format( \"Maximálne {0} znakov.\" ),\n\tminlength: $.validator.format( \"Minimálne {0} znakov.\" ),\n\trangelength: $.validator.format( \"Minimálne {0} a maximálne {1} znakov.\" ),\n\temail: \"E-mailová adresa musí byť platná.\",\n\turl: \"URL musí byť platná.\",\n\tdate: \"Musí byť dátum.\",\n\tnumber: \"Musí byť číslo.\",\n\tdigits: \"Môže obsahovať iba číslice.\",\n\tequalTo: \"Dve hodnoty sa musia rovnať.\",\n\trange: $.validator.format( \"Musí byť medzi {0} a {1}.\" ),\n\tmax: $.validator.format( \"Nemôže byť viac ako {0}.\" ),\n\tmin: $.validator.format( \"Nemôže byť menej ako {0}.\" ),\n\tcreditcard: \"Číslo platobnej karty musí byť platné.\",\n\tstep: $.validator.format( \"Musí byť násobkom čísla {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Language: SL (Slovenian; slovenski jezik)\n */\n$.extend( $.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Prosimo popravite to polje.\",\n\temail: \"Prosimo vnesite veljaven email naslov.\",\n\turl: \"Prosimo vnesite veljaven URL naslov.\",\n\tdate: \"Prosimo vnesite veljaven datum.\",\n\tdateISO: \"Prosimo vnesite veljaven ISO datum.\",\n\tnumber: \"Prosimo vnesite veljavno število.\",\n\tdigits: \"Prosimo vnesite samo števila.\",\n\tcreditcard: \"Prosimo vnesite veljavno številko kreditne kartice.\",\n\tequalTo: \"Prosimo ponovno vnesite vrednost.\",\n\textension: \"Prosimo vnesite vrednost z veljavno končnico.\",\n\tmaxlength: $.validator.format( \"Prosimo vnesite največ {0} znakov.\" ),\n\tminlength: $.validator.format( \"Prosimo vnesite najmanj {0} znakov.\" ),\n\trangelength: $.validator.format( \"Prosimo vnesite najmanj {0} in največ {1} znakov.\" ),\n\trange: $.validator.format( \"Prosimo vnesite vrednost med {0} in {1}.\" ),\n\tmax: $.validator.format( \"Prosimo vnesite vrednost manjše ali enako {0}.\" ),\n\tmin: $.validator.format( \"Prosimo vnesite vrednost večje ali enako {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian; српски језик)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Поље је обавезно.\",\n\tremote: \"Средите ово поље.\",\n\temail: \"Унесите исправну и-мејл адресу.\",\n\turl: \"Унесите исправан URL.\",\n\tdate: \"Унесите исправан датум.\",\n\tdateISO: \"Унесите исправан датум (ISO).\",\n\tnumber: \"Унесите исправан број.\",\n\tdigits: \"Унесите само цифе.\",\n\tcreditcard: \"Унесите исправан број кредитне картице.\",\n\tequalTo: \"Унесите исту вредност поново.\",\n\textension: \"Унесите вредност са одговарајућом екстензијом.\",\n\tmaxlength: $.validator.format( \"Унесите мање од {0} карактера.\" ),\n\tminlength: $.validator.format( \"Унесите барем {0} карактера.\" ),\n\trangelength: $.validator.format( \"Унесите вредност дугачку између {0} и {1} карактера.\" ),\n\trange: $.validator.format( \"Унесите вредност између {0} и {1}.\" ),\n\tmax: $.validator.format( \"Унесите вредност мању или једнаку {0}.\" ),\n\tmin: $.validator.format( \"Унесите вредност већу или једнаку {0}.\" ),\n\tstep: $.validator.format( \"Унесите вредност која је умножак броја {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sr_lat.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Polje je obavezno.\",\n\tremote: \"Sredite ovo polje.\",\n\temail: \"Unesite ispravnu e-mail adresu\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo cifre.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite istu vrednost ponovo.\",\n\textension: \"Unesite vrednost sa odgovarajućom ekstenzijom.\",\n\tmaxlength: $.validator.format( \"Unesite manje od {0} karaktera.\" ),\n\tminlength: $.validator.format( \"Unesite barem {0} karaktera.\" ),\n\trangelength: $.validator.format( \"Unesite vrednost dugačku između {0} i {1} karaktera.\" ),\n\trange: $.validator.format( \"Unesite vrednost između {0} i {1}.\" ),\n\tmax: $.validator.format( \"Unesite vrednost manju ili jednaku {0}.\" ),\n\tmin: $.validator.format( \"Unesite vrednost veću ili jednaku {0}.\" ),\n\tstep: $.validator.format( \"Unesite vrednost koja je umnožak broja {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_sv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SV (Swedish; Svenska)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Detta f&auml;lt &auml;r obligatoriskt.\",\n\tremote: \"Var snäll och åtgärda detta fält.\",\n\tmaxlength: $.validator.format( \"Du f&aring;r ange h&ouml;gst {0} tecken.\" ),\n\tminlength: $.validator.format( \"Du m&aring;ste ange minst {0} tecken.\" ),\n\trangelength: $.validator.format( \"Ange minst {0} och max {1} tecken.\" ),\n\temail: \"Ange en korrekt e-postadress.\",\n\turl: \"Ange en korrekt URL.\",\n\tdate: \"Ange ett korrekt datum.\",\n\tdateISO: \"Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).\",\n\tnumber: \"Ange ett korrekt nummer.\",\n\tdigits: \"Ange endast siffror.\",\n\tequalTo: \"Ange samma v&auml;rde igen.\",\n\trange: $.validator.format( \"Ange ett v&auml;rde mellan {0} och {1}.\" ),\n\tmax: $.validator.format( \"Ange ett v&auml;rde som &auml;r mindre eller lika med {0}.\" ),\n\tmin: $.validator.format( \"Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}.\" ),\n\tcreditcard: \"Ange ett korrekt kreditkortsnummer.\",\n\tpattern: \"Ogiltigt format.\"\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_th.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TH (Thai; ไทย)\n */\n$.extend( $.validator.messages, {\n\trequired: \"โปรดระบุ\",\n\tremote: \"โปรดแก้ไขให้ถูกต้อง\",\n\temail: \"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง\",\n\turl: \"โปรดระบุ URL ที่ถูกต้อง\",\n\tdate: \"โปรดระบุวันที่ ที่ถูกต้อง\",\n\tdateISO: \"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).\",\n\tnumber: \"โปรดระบุทศนิยมที่ถูกต้อง\",\n\tdigits: \"โปรดระบุจำนวนเต็มที่ถูกต้อง\",\n\tcreditcard: \"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง\",\n\tequalTo: \"โปรดระบุค่าเดิมอีกครั้ง\",\n\textension: \"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง\",\n\tmaxlength: $.validator.format( \"โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ\" ),\n\tminlength: $.validator.format( \"โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ\" ),\n\trangelength: $.validator.format( \"โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ\" ),\n\trange: $.validator.format( \"โปรดระบุค่าระหว่าง {0} และ {1}\" ),\n\tmax: $.validator.format( \"โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}\" ),\n\tmin: $.validator.format( \"โปรดระบุค่ามากกว่าหรือเท่ากับ {0}\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_tj.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TJ (Tajikistan; Забони тоҷикӣ)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Ворид кардани ин филд маҷбури аст.\",\n\tremote: \"Илтимос, маълумоти саҳеҳ ворид кунед.\",\n\temail: \"Илтимос, почтаи электронии саҳеҳ ворид кунед.\",\n\turl: \"Илтимос, URL адреси саҳеҳ ворид кунед.\",\n\tdate: \"Илтимос, таърихи саҳеҳ ворид кунед.\",\n\tdateISO: \"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.\",\n\tnumber: \"Илтимос, рақамҳои саҳеҳ ворид кунед.\",\n\tdigits: \"Илтимос, танҳо рақам ворид кунед.\",\n\tcreditcard: \"Илтимос, кредит карди саҳеҳ ворид кунед.\",\n\tequalTo: \"Илтимос, миқдори баробар ворид кунед.\",\n\textension: \"Илтимос, қофияи файлро дуруст интихоб кунед\",\n\tmaxlength: $.validator.format( \"Илтимос, бештар аз {0} рамз ворид накунед.\" ),\n\tminlength: $.validator.format( \"Илтимос, камтар аз {0} рамз ворид накунед.\" ),\n\trangelength: $.validator.format( \"Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед.\" ),\n\trange: $.validator.format( \"Илтимос, аз {0} то {1} рақам зиёд ворид кунед.\" ),\n\tmax: $.validator.format( \"Илтимос, бештар аз {0} рақам ворид накунед.\" ),\n\tmin: $.validator.format( \"Илтимос, камтар аз {0} рақам ворид накунед.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_tr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TR (Turkish; Türkçe)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Bu alanın doldurulması zorunludur.\",\n\tremote: \"Lütfen bu alanı düzeltin.\",\n\temail: \"Lütfen geçerli bir e-posta adresi giriniz.\",\n\turl: \"Lütfen geçerli bir web adresi (URL) giriniz.\",\n\tdate: \"Lütfen geçerli bir tarih giriniz.\",\n\tdateISO: \"Lütfen geçerli bir tarih giriniz(ISO formatında)\",\n\tnumber: \"Lütfen geçerli bir sayı giriniz.\",\n\tdigits: \"Lütfen sadece sayısal karakterler giriniz.\",\n\tcreditcard: \"Lütfen geçerli bir kredi kartı giriniz.\",\n\tequalTo: \"Lütfen aynı değeri tekrar giriniz.\",\n\textension: \"Lütfen geçerli uzantıya sahip bir değer giriniz.\",\n\tphone: \"Lütfen geçerli bir telefon numarası giriniz.\",\n\tmaxlength: $.validator.format( \"Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz.\" ),\n\tminlength: $.validator.format( \"Lütfen en az {0} karakter uzunluğunda bir değer giriniz.\" ),\n\trangelength: $.validator.format( \"Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz.\" ),\n\trange: $.validator.format( \"Lütfen {0} ile {1} arasında bir değer giriniz.\" ),\n\tmax: $.validator.format( \"Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz.\" ),\n\tmin: $.validator.format( \"Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz.\" ),\n\trequire_from_group: $.validator.format( \"Lütfen bu alanların en az {0} tanesini doldurunuz.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_uk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: UK (Ukrainian; українська мова)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Це поле необхідно заповнити.\",\n\tremote: \"Будь ласка, введіть правильне значення.\",\n\temail: \"Будь ласка, введіть коректну адресу електронної пошти.\",\n\turl: \"Будь ласка, введіть коректний URL.\",\n\tdate: \"Будь ласка, введіть коректну дату.\",\n\tdateISO: \"Будь ласка, введіть коректну дату у форматі ISO.\",\n\tnumber: \"Будь ласка, введіть число.\",\n\tdigits: \"Вводите потрібно лише цифри.\",\n\tcreditcard: \"Будь ласка, введіть правильний номер кредитної карти.\",\n\tequalTo: \"Будь ласка, введіть таке ж значення ще раз.\",\n\textension: \"Будь ласка, виберіть файл з правильним розширенням.\",\n\tmaxlength: $.validator.format( \"Будь ласка, введіть не більше {0} символів.\" ),\n\tminlength: $.validator.format( \"Будь ласка, введіть не менше {0} символів.\" ),\n\trangelength: $.validator.format( \"Будь ласка, введіть значення довжиною від {0} до {1} символів.\" ),\n\trange: $.validator.format( \"Будь ласка, введіть число від {0} до {1}.\" ),\n\tmax: $.validator.format( \"Будь ласка, введіть число, менше або рівно {0}.\" ),\n\tmin: $.validator.format( \"Будь ласка, введіть число, більше або рівно {0}.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_ur.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: UR (Urdu; اردو)\n */\n$.extend( $.validator.messages, {\n\trequired: \"ان معلومات کا اندراج ضروری ہے\",\n\tremote: \"ان معلومات کا اندراج ضروری ہے\",\n\temail: \"درج کی ہوئی ای میل درست نہیں ہے\",\n\turl: \"درج کیا گیا پتہ درست نہیں ہے\",\n\tdate: \"درج کی گئی تاریخ درست نہیں ہے\",\n\tdateISO: \"معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ\",\n\tnumber: \"درج کیےگئے ہندسے درست نہیں ہیں\",\n\tdigits: \"صرف ہندسے اندراج کئے جاسکتے ہیں\",\n\tcreditcard: \"درج کیا گیا کارڈ نمبر درست نہیں ہے\",\n\tequalTo: \"اندراج کا موازنہ درست نہیں ہے\",\n\textension: \"اندراج درست نہیں ہے\",\n\tmaxlength: $.validator.format( \"زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں\" ),\n\tminlength: $.validator.format( \"کم سے کم {0} کا اندراج کرنا ضروری ہے\" ),\n\trangelength: $.validator.format( \"اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے\" ),\n\trange: $.validator.format( \"اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے\" ),\n\tmax: $.validator.format( \"زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں\" ),\n\tmin: $.validator.format( \"کم سے کم {0} کا اندراج کرنا ضروری ہے\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_vi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: VI (Vietnamese; Tiếng Việt)\n */\n$.extend( $.validator.messages, {\n\trequired: \"Hãy nhập.\",\n\tremote: \"Hãy sửa cho đúng.\",\n\temail: \"Hãy nhập email.\",\n\turl: \"Hãy nhập URL.\",\n\tdate: \"Hãy nhập ngày.\",\n\tdateISO: \"Hãy nhập ngày (ISO).\",\n\tnumber: \"Hãy nhập số.\",\n\tdigits: \"Hãy nhập chữ số.\",\n\tcreditcard: \"Hãy nhập số thẻ tín dụng.\",\n\tequalTo: \"Hãy nhập thêm lần nữa.\",\n\textension: \"Phần mở rộng không đúng.\",\n\tmaxlength: $.validator.format( \"Hãy nhập từ {0} kí tự trở xuống.\" ),\n\tminlength: $.validator.format( \"Hãy nhập từ {0} kí tự trở lên.\" ),\n\trangelength: $.validator.format( \"Hãy nhập từ {0} đến {1} kí tự.\" ),\n\trange: $.validator.format( \"Hãy nhập từ {0} đến {1}.\" ),\n\tmax: $.validator.format( \"Hãy nhập từ {0} trở xuống.\" ),\n\tmin: $.validator.format( \"Hãy nhập từ {0} trở lên.\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_zh.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)\n */\n$.extend( $.validator.messages, {\n\trequired: \"这是必填字段\",\n\tremote: \"请修正此字段\",\n\temail: \"请输入有效的电子邮件地址\",\n\turl: \"请输入有效的网址\",\n\tdate: \"请输入有效的日期\",\n\tdateISO: \"请输入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"请输入有效的数字\",\n\tdigits: \"只能输入数字\",\n\tcreditcard: \"请输入有效的信用卡号码\",\n\tequalTo: \"你的输入不相同\",\n\textension: \"请输入有效的后缀\",\n\tmaxlength: $.validator.format( \"最多可以输入 {0} 个字符\" ),\n\tminlength: $.validator.format( \"最少要输入 {0} 个字符\" ),\n\trangelength: $.validator.format( \"请输入长度在 {0} 到 {1} 之间的字符串\" ),\n\trange: $.validator.format( \"请输入范围在 {0} 到 {1} 之间的数值\" ),\n\tstep: $.validator.format( \"请输入 {0} 的整数倍值\" ),\n\tmax: $.validator.format( \"请输入不大于 {0} 的数值\" ),\n\tmin: $.validator.format( \"请输入不小于 {0} 的数值\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/messages_zh_TW.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)\n * Region: TW (Taiwan)\n */\n$.extend( $.validator.messages, {\n\trequired: \"必須填寫\",\n\tremote: \"請修正此欄位\",\n\temail: \"請輸入有效的電子郵件\",\n\turl: \"請輸入有效的網址\",\n\tdate: \"請輸入有效的日期\",\n\tdateISO: \"請輸入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"請輸入正確的數值\",\n\tdigits: \"只可輸入數字\",\n\tcreditcard: \"請輸入有效的信用卡號碼\",\n\tequalTo: \"請重複輸入一次\",\n\textension: \"請輸入有效的後綴\",\n\tmaxlength: $.validator.format( \"最多 {0} 個字\" ),\n\tminlength: $.validator.format( \"最少 {0} 個字\" ),\n\trangelength: $.validator.format( \"請輸入長度為 {0} 至 {1} 之間的字串\" ),\n\trange: $.validator.format( \"請輸入 {0} 至 {1} 之間的數值\" ),\n\tstep: $.validator.format( \"請輸入 {0} 的整數倍值\" ),\n\tmax: $.validator.format( \"請輸入不大於 {0} 的數值\" ),\n\tmin: $.validator.format( \"請輸入不小於 {0} 的數值\" )\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: DE\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d\\d?\\.\\d\\d?\\.\\d\\d\\d?\\d?$/.test( value );\n\t},\n\tnumber: function( value, element ) {\n\t\treturn this.optional( element ) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_es_CL.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: ES_CL\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d\\d?\\-\\d\\d?\\-\\d\\d\\d?\\d?$/.test( value );\n\t},\n\tnumber: function( value, element ) {\n\t\treturn this.optional( element ) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: FI\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/.test( value );\n\t},\n\tnumber: function( value, element ) {\n\t\treturn this.optional( element ) || /^-?(?:\\d+)(?:,\\d+)?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_it.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: IT\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d\\d?\\-\\d\\d?\\-\\d\\d\\d?\\d?$/.test( value );\n\t},\n\tnumber: function( value, element ) {\n\t\treturn this.optional( element ) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: NL\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d\\d?[\\.\\/\\-]\\d\\d?[\\.\\/\\-]\\d\\d\\d?\\d?$/.test( value );\n\t},\n\tnumber: function( value, element ) {\n\t\treturn this.optional( element ) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jquery-validation/localization/methods_pt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: PT_BR\n */\n$.extend( $.validator.methods, {\n\tdate: function( value, element ) {\n\t\treturn this.optional( element ) || /^\\d\\d?\\/\\d\\d?\\/\\d\\d\\d?\\d?$/.test( value );\n\t}\n} );\nreturn $;\n}));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/jquery.vmap.js",
    "content": "/*!\n * JQVMap: jQuery Vector Map Library\n * @author JQVMap <me@peterschmalfeldt.com>\n * @version 1.5.1\n * @link http://jqvmap.com\n * @license https://github.com/manifestinteractive/jqvmap/blob/master/LICENSE\n * @builddate 2016/06/02\n */\n\nvar VectorCanvas = function (width, height, params) {\n  this.mode = window.SVGAngle ? 'svg' : 'vml';\n  this.params = params;\n\n  if (this.mode === 'svg') {\n    this.createSvgNode = function (nodeName) {\n      return document.createElementNS(this.svgns, nodeName);\n    };\n  } else {\n    try {\n      if (!document.namespaces.rvml) {\n        document.namespaces.add('rvml', 'urn:schemas-microsoft-com:vml');\n      }\n      this.createVmlNode = function (tagName) {\n        return document.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n      };\n    } catch (e) {\n      this.createVmlNode = function (tagName) {\n        return document.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n      };\n    }\n\n    document.createStyleSheet().addRule('.rvml', 'behavior:url(#default#VML)');\n  }\n\n  if (this.mode === 'svg') {\n    this.canvas = this.createSvgNode('svg');\n  } else {\n    this.canvas = this.createVmlNode('group');\n    this.canvas.style.position = 'absolute';\n  }\n\n  this.setSize(width, height);\n};\n\nVectorCanvas.prototype = {\n  svgns: 'http://www.w3.org/2000/svg',\n  mode: 'svg',\n  width: 0,\n  height: 0,\n  canvas: null\n};\n\nvar ColorScale = function (colors, normalizeFunction, minValue, maxValue) {\n  if (colors) {\n    this.setColors(colors);\n  }\n  if (normalizeFunction) {\n    this.setNormalizeFunction(normalizeFunction);\n  }\n  if (minValue) {\n    this.setMin(minValue);\n  }\n  if (minValue) {\n    this.setMax(maxValue);\n  }\n};\n\nColorScale.prototype = {\n  colors: []\n};\n\nvar JQVMap = function (params) {\n  params = params || {};\n  var map = this;\n  var mapData = JQVMap.maps[params.map];\n  var mapPins;\n\n  if( !mapData){\n    throw new Error('Invalid \"' + params.map + '\" map parameter. Please make sure you have loaded this map file in your HTML.');\n  }\n\n  this.selectedRegions = [];\n  this.multiSelectRegion = params.multiSelectRegion;\n\n  this.container = params.container;\n\n  this.defaultWidth = mapData.width;\n  this.defaultHeight = mapData.height;\n\n  this.color = params.color;\n  this.selectedColor = params.selectedColor;\n  this.hoverColor = params.hoverColor;\n  this.hoverColors = params.hoverColors;\n  this.hoverOpacity = params.hoverOpacity;\n  this.setBackgroundColor(params.backgroundColor);\n\n  this.width = params.container.width();\n  this.height = params.container.height();\n\n  this.resize();\n\n  jQuery(window).resize(function () {\n    var newWidth = params.container.width();\n    var newHeight = params.container.height();\n\n    if(newWidth && newHeight){\n      map.width = newWidth;\n      map.height = newHeight;\n      map.resize();\n      map.canvas.setSize(map.width, map.height);\n      map.applyTransform();\n\n      var resizeEvent = jQuery.Event('resize.jqvmap');\n      jQuery(params.container).trigger(resizeEvent, [newWidth, newHeight]);\n\n      if(mapPins){\n        jQuery('.jqvmap-pin').remove();\n        map.pinHandlers = false;\n        map.placePins(mapPins.pins, mapPins.mode);\n      }\n    }\n  });\n\n  this.canvas = new VectorCanvas(this.width, this.height, params);\n  params.container.append(this.canvas.canvas);\n\n  this.makeDraggable();\n\n  this.rootGroup = this.canvas.createGroup(true);\n\n  this.index = JQVMap.mapIndex;\n  this.label = jQuery('<div/>').addClass('jqvmap-label').appendTo(jQuery('body')).hide();\n\n  if (params.enableZoom) {\n    jQuery('<div/>').addClass('jqvmap-zoomin').text('+').appendTo(params.container);\n    jQuery('<div/>').addClass('jqvmap-zoomout').html('&#x2212;').appendTo(params.container);\n  }\n\n  map.countries = [];\n\n  for (var key in mapData.paths) {\n    var path = this.canvas.createPath({\n      path: mapData.paths[key].path\n    });\n\n    path.setFill(this.color);\n    path.id = map.getCountryId(key);\n    map.countries[key] = path;\n\n    if (this.canvas.mode === 'svg') {\n      path.setAttribute('class', 'jqvmap-region');\n    } else {\n      jQuery(path).addClass('jqvmap-region');\n    }\n\n    jQuery(this.rootGroup).append(path);\n  }\n\n  jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'mouseover mouseout', function (e) {\n    var containerPath = e.target,\n      code = e.target.id.split('_').pop(),\n      labelShowEvent = jQuery.Event('labelShow.jqvmap'),\n      regionMouseOverEvent = jQuery.Event('regionMouseOver.jqvmap');\n\n    code = code.toLowerCase();\n\n    if (e.type === 'mouseover') {\n      jQuery(params.container).trigger(regionMouseOverEvent, [code, mapData.paths[code].name]);\n      if (!regionMouseOverEvent.isDefaultPrevented()) {\n        map.highlight(code, containerPath);\n      }\n      if (params.showTooltip) {\n        map.label.text(mapData.paths[code].name);\n        jQuery(params.container).trigger(labelShowEvent, [map.label, code]);\n\n        if (!labelShowEvent.isDefaultPrevented()) {\n          map.label.show();\n          map.labelWidth = map.label.width();\n          map.labelHeight = map.label.height();\n        }\n      }\n    } else {\n      map.unhighlight(code, containerPath);\n\n      map.label.hide();\n      jQuery(params.container).trigger('regionMouseOut.jqvmap', [code, mapData.paths[code].name]);\n    }\n  });\n\n  jQuery(params.container).delegate(this.canvas.mode === 'svg' ? 'path' : 'shape', 'click', function (regionClickEvent) {\n\n    var targetPath = regionClickEvent.target;\n    var code = regionClickEvent.target.id.split('_').pop();\n    var mapClickEvent = jQuery.Event('regionClick.jqvmap');\n\n    code = code.toLowerCase();\n\n    jQuery(params.container).trigger(mapClickEvent, [code, mapData.paths[code].name]);\n\n    if ( !params.multiSelectRegion && !mapClickEvent.isDefaultPrevented()) {\n      for (var keyPath in mapData.paths) {\n        map.countries[keyPath].currentFillColor = map.countries[keyPath].getOriginalFill();\n        map.countries[keyPath].setFill(map.countries[keyPath].getOriginalFill());\n      }\n    }\n\n    if ( !mapClickEvent.isDefaultPrevented()) {\n      if (map.isSelected(code)) {\n        map.deselect(code, targetPath);\n      } else {\n        map.select(code, targetPath);\n      }\n    }\n  });\n\n  if (params.showTooltip) {\n    params.container.mousemove(function (e) {\n      if (map.label.is(':visible')) {\n        var left = e.pageX - 15 - map.labelWidth;\n        var top = e.pageY - 15 - map.labelHeight;\n\n        if(left < 0) {\n          left = e.pageX + 15;\n        }\n        if(top < 0) {\n          top = e.pageY + 15;\n        }\n\n        map.label.css({\n          left: left,\n          top: top\n        });\n      }\n    });\n  }\n\n  this.setColors(params.colors);\n\n  this.canvas.canvas.appendChild(this.rootGroup);\n\n  this.applyTransform();\n\n  this.colorScale = new ColorScale(params.scaleColors, params.normalizeFunction, params.valueMin, params.valueMax);\n\n  if (params.values) {\n    this.values = params.values;\n    this.setValues(params.values);\n  }\n\n  if (params.selectedRegions) {\n    if (params.selectedRegions instanceof Array) {\n      for(var k in params.selectedRegions) {\n        this.select(params.selectedRegions[k].toLowerCase());\n      }\n    } else {\n      this.select(params.selectedRegions.toLowerCase());\n    }\n  }\n\n  this.bindZoomButtons();\n\n  if(params.pins) {\n    mapPins = {\n      pins: params.pins,\n      mode: params.pinMode\n    };\n\n    this.pinHandlers = false;\n    this.placePins(params.pins, params.pinMode);\n  }\n\n  if(params.showLabels){\n    this.pinHandlers = false;\n\n    var pins = {};\n    for (key in map.countries){\n      if (typeof map.countries[key] !== 'function') {\n        if( !params.pins || !params.pins[key] ){\n          pins[key] = key.toUpperCase();\n        }\n      }\n    }\n\n    mapPins = {\n      pins: pins,\n      mode: 'content'\n    };\n\n    this.placePins(pins, 'content');\n  }\n\n  JQVMap.mapIndex++;\n};\n\nJQVMap.prototype = {\n  transX: 0,\n  transY: 0,\n  scale: 1,\n  baseTransX: 0,\n  baseTransY: 0,\n  baseScale: 1,\n  width: 0,\n  height: 0,\n  countries: {},\n  countriesColors: {},\n  countriesData: {},\n  zoomStep: 1.4,\n  zoomMaxStep: 4,\n  zoomCurStep: 1\n};\n\nJQVMap.xlink = 'http://www.w3.org/1999/xlink';\nJQVMap.mapIndex = 1;\nJQVMap.maps = {};\n\n(function(){\n\n  var apiParams = {\n    colors: 1,\n    values: 1,\n    backgroundColor: 1,\n    scaleColors: 1,\n    normalizeFunction: 1,\n    enableZoom: 1,\n    showTooltip: 1,\n    borderColor: 1,\n    borderWidth: 1,\n    borderOpacity: 1,\n    selectedRegions: 1,\n    multiSelectRegion: 1\n  };\n\n  var apiEvents = {\n    onLabelShow: 'labelShow',\n    onLoad: 'load',\n    onRegionOver: 'regionMouseOver',\n    onRegionOut: 'regionMouseOut',\n    onRegionClick: 'regionClick',\n    onRegionSelect: 'regionSelect',\n    onRegionDeselect: 'regionDeselect',\n    onResize: 'resize'\n  };\n\n  jQuery.fn.vectorMap = function (options) {\n\n    var defaultParams = {\n      map: 'world_en',\n      backgroundColor: '#a5bfdd',\n      color: '#f4f3f0',\n      hoverColor: '#c9dfaf',\n      hoverColors: {},\n      selectedColor: '#c9dfaf',\n      scaleColors: ['#b6d6ff', '#005ace'],\n      normalizeFunction: 'linear',\n      enableZoom: true,\n      showTooltip: true,\n      borderColor: '#818181',\n      borderWidth: 1,\n      borderOpacity: 0.25,\n      selectedRegions: null,\n      multiSelectRegion: false\n    }, map = this.data('mapObject');\n\n    if (options === 'addMap') {\n      JQVMap.maps[arguments[1]] = arguments[2];\n    } else if (options === 'set' && apiParams[arguments[1]]) {\n      map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));\n    } else if (typeof options === 'string' &&\n      typeof map[options] === 'function') {\n      return map[options].apply(map, Array.prototype.slice.call(arguments, 1));\n    } else {\n      jQuery.extend(defaultParams, options);\n      defaultParams.container = this;\n      this.css({ position: 'relative', overflow: 'hidden' });\n\n      map = new JQVMap(defaultParams);\n\n      this.data('mapObject', map);\n\n      this.unbind('.jqvmap');\n\n      for (var e in apiEvents) {\n        if (defaultParams[e]) {\n          this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);\n        }\n      }\n\n      var loadEvent = jQuery.Event('load.jqvmap');\n      jQuery(defaultParams.container).trigger(loadEvent, map);\n\n      return map;\n    }\n  };\n\n})(jQuery);\n\nColorScale.arrayToRgb = function (ar) {\n  var rgb = '#';\n  var d;\n  for (var i = 0; i < ar.length; i++) {\n    d = ar[i].toString(16);\n    rgb += d.length === 1 ? '0' + d : d;\n  }\n  return rgb;\n};\n\nColorScale.prototype.getColor = function (value) {\n  if (typeof this.normalize === 'function') {\n    value = this.normalize(value);\n  }\n\n  var lengthes = [];\n  var fullLength = 0;\n  var l;\n\n  for (var i = 0; i < this.colors.length - 1; i++) {\n    l = this.vectorLength(this.vectorSubtract(this.colors[i + 1], this.colors[i]));\n    lengthes.push(l);\n    fullLength += l;\n  }\n\n  var c = (this.maxValue - this.minValue) / fullLength;\n\n  for (i = 0; i < lengthes.length; i++) {\n    lengthes[i] *= c;\n  }\n\n  i = 0;\n  value -= this.minValue;\n\n  while (value - lengthes[i] >= 0) {\n    value -= lengthes[i];\n    i++;\n  }\n\n  var color;\n  if (i === this.colors.length - 1) {\n    color = this.vectorToNum(this.colors[i]).toString(16);\n  } else {\n    color = (this.vectorToNum(this.vectorAdd(this.colors[i], this.vectorMult(this.vectorSubtract(this.colors[i + 1], this.colors[i]), (value) / (lengthes[i]))))).toString(16);\n  }\n\n  while (color.length < 6) {\n    color = '0' + color;\n  }\n  return '#' + color;\n};\n\nColorScale.rgbToArray = function (rgb) {\n  rgb = rgb.substr(1);\n  return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];\n};\n\nColorScale.prototype.setColors = function (colors) {\n  for (var i = 0; i < colors.length; i++) {\n    colors[i] = ColorScale.rgbToArray(colors[i]);\n  }\n  this.colors = colors;\n};\n\nColorScale.prototype.setMax = function (max) {\n  this.clearMaxValue = max;\n  if (typeof this.normalize === 'function') {\n    this.maxValue = this.normalize(max);\n  } else {\n    this.maxValue = max;\n  }\n};\n\nColorScale.prototype.setMin = function (min) {\n  this.clearMinValue = min;\n\n  if (typeof this.normalize === 'function') {\n    this.minValue = this.normalize(min);\n  } else {\n    this.minValue = min;\n  }\n};\n\nColorScale.prototype.setNormalizeFunction = function (f) {\n  if (f === 'polynomial') {\n    this.normalize = function (value) {\n      return Math.pow(value, 0.2);\n    };\n  } else if (f === 'linear') {\n    delete this.normalize;\n  } else {\n    this.normalize = f;\n  }\n  this.setMin(this.clearMinValue);\n  this.setMax(this.clearMaxValue);\n};\n\nColorScale.prototype.vectorAdd = function (vector1, vector2) {\n  var vector = [];\n  for (var i = 0; i < vector1.length; i++) {\n    vector[i] = vector1[i] + vector2[i];\n  }\n  return vector;\n};\n\nColorScale.prototype.vectorLength = function (vector) {\n  var result = 0;\n  for (var i = 0; i < vector.length; i++) {\n    result += vector[i] * vector[i];\n  }\n  return Math.sqrt(result);\n};\n\nColorScale.prototype.vectorMult = function (vector, num) {\n  var result = [];\n  for (var i = 0; i < vector.length; i++) {\n    result[i] = vector[i] * num;\n  }\n  return result;\n};\n\nColorScale.prototype.vectorSubtract = function (vector1, vector2) {\n  var vector = [];\n  for (var i = 0; i < vector1.length; i++) {\n    vector[i] = vector1[i] - vector2[i];\n  }\n  return vector;\n};\n\nColorScale.prototype.vectorToNum = function (vector) {\n  var num = 0;\n  for (var i = 0; i < vector.length; i++) {\n    num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);\n  }\n  return num;\n};\n\nJQVMap.prototype.applyTransform = function () {\n  var maxTransX, maxTransY, minTransX, minTransY;\n  if (this.defaultWidth * this.scale <= this.width) {\n    maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n    minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n  } else {\n    maxTransX = 0;\n    minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;\n  }\n\n  if (this.defaultHeight * this.scale <= this.height) {\n    maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n    minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n  } else {\n    maxTransY = 0;\n    minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;\n  }\n\n  if (this.transY > maxTransY) {\n    this.transY = maxTransY;\n  } else if (this.transY < minTransY) {\n    this.transY = minTransY;\n  }\n  if (this.transX > maxTransX) {\n    this.transX = maxTransX;\n  } else if (this.transX < minTransX) {\n    this.transX = minTransX;\n  }\n\n  this.canvas.applyTransformParams(this.scale, this.transX, this.transY);\n};\n\nJQVMap.prototype.bindZoomButtons = function () {\n  var map = this;\n  this.container.find('.jqvmap-zoomin').click(function(){\n    map.zoomIn();\n  });\n  this.container.find('.jqvmap-zoomout').click(function(){\n    map.zoomOut();\n  });\n};\n\nJQVMap.prototype.deselect = function (cc, path) {\n  cc = cc.toLowerCase();\n  path = path || jQuery('#' + this.getCountryId(cc))[0];\n\n  if (this.isSelected(cc)) {\n    this.selectedRegions.splice(this.selectIndex(cc), 1);\n\n    jQuery(this.container).trigger('regionDeselect.jqvmap', [cc]);\n    path.currentFillColor = path.getOriginalFill();\n    path.setFill(path.getOriginalFill());\n  } else {\n    for (var key in this.countries) {\n      this.selectedRegions.splice(this.selectedRegions.indexOf(key), 1);\n      this.countries[key].currentFillColor = this.color;\n      this.countries[key].setFill(this.color);\n    }\n  }\n};\n\nJQVMap.prototype.getCountryId = function (cc) {\n  return 'jqvmap' + this.index + '_' + cc;\n};\n\nJQVMap.prototype.getPin = function(cc){\n  var pinObj = jQuery('#' + this.getPinId(cc));\n  return pinObj.html();\n};\n\nJQVMap.prototype.getPinId = function (cc) {\n  return this.getCountryId(cc) + '_pin';\n};\n\nJQVMap.prototype.getPins = function(){\n  var pins = this.container.find('.jqvmap-pin');\n  var ret = {};\n  jQuery.each(pins, function(index, pinObj){\n    pinObj = jQuery(pinObj);\n    var cc = pinObj.attr('for').toLowerCase();\n    var pinContent = pinObj.html();\n    ret[cc] = pinContent;\n  });\n  return JSON.stringify(ret);\n};\n\nJQVMap.prototype.highlight = function (cc, path) {\n  path = path || jQuery('#' + this.getCountryId(cc))[0];\n  if (this.hoverOpacity) {\n    path.setOpacity(this.hoverOpacity);\n  } else if (this.hoverColors && (cc in this.hoverColors)) {\n    path.currentFillColor = path.getFill() + '';\n    path.setFill(this.hoverColors[cc]);\n  } else if (this.hoverColor) {\n    path.currentFillColor = path.getFill() + '';\n    path.setFill(this.hoverColor);\n  }\n};\n\nJQVMap.prototype.isSelected = function(cc) {\n  return this.selectIndex(cc) >= 0;\n};\n\nJQVMap.prototype.makeDraggable = function () {\n  var mouseDown = false;\n  var oldPageX, oldPageY;\n  var self = this;\n\n  self.isMoving = false;\n  self.isMovingTimeout = false;\n\n  var lastTouchCount;\n  var touchCenterX;\n  var touchCenterY;\n  var touchStartDistance;\n  var touchStartScale;\n  var touchX;\n  var touchY;\n\n  this.container.mousemove(function (e) {\n\n    if (mouseDown) {\n      self.transX -= (oldPageX - e.pageX) / self.scale;\n      self.transY -= (oldPageY - e.pageY) / self.scale;\n\n      self.applyTransform();\n\n      oldPageX = e.pageX;\n      oldPageY = e.pageY;\n\n      self.isMoving = true;\n      if (self.isMovingTimeout) {\n        clearTimeout(self.isMovingTimeout);\n      }\n\n      self.container.trigger('drag');\n    }\n\n    return false;\n\n  }).mousedown(function (e) {\n\n    mouseDown = true;\n    oldPageX = e.pageX;\n    oldPageY = e.pageY;\n\n    return false;\n\n  }).mouseup(function () {\n\n    mouseDown = false;\n\n    clearTimeout(self.isMovingTimeout);\n    self.isMovingTimeout = setTimeout(function () {\n      self.isMoving = false;\n    }, 100);\n\n    return false;\n\n  }).mouseout(function () {\n\n    if(mouseDown && self.isMoving){\n\n      clearTimeout(self.isMovingTimeout);\n      self.isMovingTimeout = setTimeout(function () {\n        mouseDown = false;\n        self.isMoving = false;\n      }, 100);\n\n      return false;\n    }\n  });\n\n  jQuery(this.container).bind('touchmove', function (e) {\n\n    var offset;\n    var scale;\n    var touches = e.originalEvent.touches;\n    var transformXOld;\n    var transformYOld;\n\n    if (touches.length === 1) {\n      if (lastTouchCount === 1) {\n\n        if(touchX === touches[0].pageX && touchY === touches[0].pageY){\n          return;\n        }\n\n        transformXOld = self.transX;\n        transformYOld = self.transY;\n\n        self.transX -= (touchX - touches[0].pageX) / self.scale;\n        self.transY -= (touchY - touches[0].pageY) / self.scale;\n\n        self.applyTransform();\n\n        if (transformXOld !== self.transX || transformYOld !== self.transY) {\n          e.preventDefault();\n        }\n\n        self.isMoving = true;\n        if (self.isMovingTimeout) {\n          clearTimeout(self.isMovingTimeout);\n        }\n      }\n\n      touchX = touches[0].pageX;\n      touchY = touches[0].pageY;\n\n    } else if (touches.length === 2) {\n\n      if (lastTouchCount === 2) {\n        scale = Math.sqrt(\n            Math.pow(touches[0].pageX - touches[1].pageX, 2) +\n            Math.pow(touches[0].pageY - touches[1].pageY, 2)\n          ) / touchStartDistance;\n\n        self.setScale(\n          touchStartScale * scale,\n          touchCenterX,\n          touchCenterY\n        );\n\n        e.preventDefault();\n\n      } else {\n\n        offset = jQuery(self.container).offset();\n        if (touches[0].pageX > touches[1].pageX) {\n          touchCenterX = touches[1].pageX + (touches[0].pageX - touches[1].pageX) / 2;\n        } else {\n          touchCenterX = touches[0].pageX + (touches[1].pageX - touches[0].pageX) / 2;\n        }\n\n        if (touches[0].pageY > touches[1].pageY) {\n          touchCenterY = touches[1].pageY + (touches[0].pageY - touches[1].pageY) / 2;\n        } else {\n          touchCenterY = touches[0].pageY + (touches[1].pageY - touches[0].pageY) / 2;\n        }\n\n        touchCenterX -= offset.left;\n        touchCenterY -= offset.top;\n        touchStartScale = self.scale;\n\n        touchStartDistance = Math.sqrt(\n          Math.pow(touches[0].pageX - touches[1].pageX, 2) +\n          Math.pow(touches[0].pageY - touches[1].pageY, 2)\n        );\n      }\n    }\n\n    lastTouchCount = touches.length;\n  });\n\n  jQuery(this.container).bind('touchstart', function () {\n    lastTouchCount = 0;\n  });\n\n  jQuery(this.container).bind('touchend', function () {\n    lastTouchCount = 0;\n  });\n};\n\nJQVMap.prototype.placePins = function(pins, pinMode){\n  var map = this;\n\n  if(!pinMode || (pinMode !== 'content' && pinMode !== 'id')) {\n    pinMode = 'content';\n  }\n\n  if(pinMode === 'content') {//treat pin as content\n    jQuery.each(pins, function(index, pin){\n      if(jQuery('#' + map.getCountryId(index)).length === 0){\n        return;\n      }\n\n      var pinIndex = map.getPinId(index);\n      var $pin = jQuery('#' + pinIndex);\n      if($pin.length > 0){\n        $pin.remove();\n      }\n      map.container.append('<div id=\"' + pinIndex + '\" for=\"' + index + '\" class=\"jqvmap-pin\" style=\"position:absolute\">' + pin + '</div>');\n    });\n  } else { //treat pin as id of an html content\n    jQuery.each(pins, function(index, pin){\n      if(jQuery('#' + map.getCountryId(index)).length === 0){\n        return;\n      }\n      var pinIndex = map.getPinId(index);\n      var $pin = jQuery('#' + pinIndex);\n      if($pin.length > 0){\n        $pin.remove();\n      }\n      map.container.append('<div id=\"' + pinIndex + '\" for=\"' + index + '\" class=\"jqvmap-pin\" style=\"position:absolute\"></div>');\n      $pin.append(jQuery('#' + pin));\n    });\n  }\n\n  this.positionPins();\n  if(!this.pinHandlers){\n    this.pinHandlers = true;\n    var positionFix = function(){\n      map.positionPins();\n    };\n    this.container.bind('zoomIn', positionFix)\n      .bind('zoomOut', positionFix)\n      .bind('drag', positionFix);\n  }\n};\n\nJQVMap.prototype.positionPins = function(){\n  var map = this;\n  var pins = this.container.find('.jqvmap-pin');\n  jQuery.each(pins, function(index, pinObj){\n    pinObj = jQuery(pinObj);\n    var countryId = map.getCountryId(pinObj.attr('for').toLowerCase());\n    var countryObj = jQuery('#' + countryId);\n    var bbox = countryObj[0].getBBox();\n\n    var scale = map.scale;\n    var rootCoords = map.canvas.rootGroup.getBoundingClientRect();\n    var mapCoords = map.container[0].getBoundingClientRect();\n    var coords = {\n      left: rootCoords.left - mapCoords.left,\n      top: rootCoords.top - mapCoords.top\n    };\n\n    var middleX = (bbox.x * scale) + ((bbox.width * scale) / 2);\n    var middleY = (bbox.y * scale) + ((bbox.height * scale) / 2);\n\n    pinObj.css({\n      left: coords.left + middleX - (pinObj.width() / 2),\n      top: coords.top + middleY - (pinObj.height() / 2)\n    });\n  });\n};\n\nJQVMap.prototype.removePin = function(cc) {\n  cc = cc.toLowerCase();\n  jQuery('#' + this.getPinId(cc)).remove();\n};\n\nJQVMap.prototype.removePins = function(){\n  this.container.find('.jqvmap-pin').remove();\n};\n\nJQVMap.prototype.reset = function () {\n  for (var key in this.countries) {\n    this.countries[key].setFill(this.color);\n  }\n  this.scale = this.baseScale;\n  this.transX = this.baseTransX;\n  this.transY = this.baseTransY;\n  this.applyTransform();\n  this.zoomCurStep = 1;\n};\n\nJQVMap.prototype.resize = function () {\n  var curBaseScale = this.baseScale;\n  if (this.width / this.height > this.defaultWidth / this.defaultHeight) {\n    this.baseScale = this.height / this.defaultHeight;\n    this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);\n  } else {\n    this.baseScale = this.width / this.defaultWidth;\n    this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);\n  }\n  this.scale *= this.baseScale / curBaseScale;\n  this.transX *= this.baseScale / curBaseScale;\n  this.transY *= this.baseScale / curBaseScale;\n};\n\nJQVMap.prototype.select = function (cc, path) {\n  cc = cc.toLowerCase();\n  path = path || jQuery('#' + this.getCountryId(cc))[0];\n\n  if (!this.isSelected(cc)) {\n    if (this.multiSelectRegion) {\n      this.selectedRegions.push(cc);\n    } else {\n      this.selectedRegions = [cc];\n    }\n\n    jQuery(this.container).trigger('regionSelect.jqvmap', [cc]);\n    if (this.selectedColor && path) {\n      path.currentFillColor = this.selectedColor;\n      path.setFill(this.selectedColor);\n    }\n  }\n};\n\nJQVMap.prototype.selectIndex = function (cc) {\n  cc = cc.toLowerCase();\n  for (var i = 0; i < this.selectedRegions.length; i++) {\n    if (cc === this.selectedRegions[i]) {\n      return i;\n    }\n  }\n  return -1;\n};\n\nJQVMap.prototype.setBackgroundColor = function (backgroundColor) {\n  this.container.css('background-color', backgroundColor);\n};\n\nJQVMap.prototype.setColors = function (key, color) {\n  if (typeof key === 'string') {\n    this.countries[key].setFill(color);\n    this.countries[key].setAttribute('original', color);\n  } else {\n    var colors = key;\n\n    for (var code in colors) {\n      if (this.countries[code]) {\n        this.countries[code].setFill(colors[code]);\n        this.countries[code].setAttribute('original', colors[code]);\n      }\n    }\n  }\n};\n\nJQVMap.prototype.setNormalizeFunction = function (f) {\n  this.colorScale.setNormalizeFunction(f);\n\n  if (this.values) {\n    this.setValues(this.values);\n  }\n};\n\nJQVMap.prototype.setScale = function (scale) {\n  this.scale = scale;\n  this.applyTransform();\n};\n\nJQVMap.prototype.setScaleColors = function (colors) {\n  this.colorScale.setColors(colors);\n\n  if (this.values) {\n    this.setValues(this.values);\n  }\n};\n\nJQVMap.prototype.setValues = function (values) {\n  var max = 0,\n    min = Number.MAX_VALUE,\n    val;\n\n  for (var cc in values) {\n    cc = cc.toLowerCase();\n    val = parseFloat(values[cc]);\n\n    if (isNaN(val)) {\n      continue;\n    }\n    if (val > max) {\n      max = values[cc];\n    }\n    if (val < min) {\n      min = val;\n    }\n  }\n\n  if (min === max) {\n    max++;\n  }\n\n  this.colorScale.setMin(min);\n  this.colorScale.setMax(max);\n\n  var colors = {};\n  for (cc in values) {\n    cc = cc.toLowerCase();\n    val = parseFloat(values[cc]);\n    colors[cc] = isNaN(val) ? this.color : this.colorScale.getColor(val);\n  }\n  this.setColors(colors);\n  this.values = values;\n};\n\nJQVMap.prototype.unhighlight = function (cc, path) {\n  cc = cc.toLowerCase();\n  path = path || jQuery('#' + this.getCountryId(cc))[0];\n  path.setOpacity(1);\n  if (path.currentFillColor) {\n    path.setFill(path.currentFillColor);\n  }\n};\n\nJQVMap.prototype.zoomIn = function () {\n  var map = this;\n  var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);\n\n  if (map.zoomCurStep < map.zoomMaxStep) {\n    map.transX -= (map.width / map.scale - map.width / (map.scale * map.zoomStep)) / 2;\n    map.transY -= (map.height / map.scale - map.height / (map.scale * map.zoomStep)) / 2;\n    map.setScale(map.scale * map.zoomStep);\n    map.zoomCurStep++;\n\n    var $slider = jQuery('#zoomSlider');\n\n    $slider.css('top', parseInt($slider.css('top'), 10) - sliderDelta);\n\n    map.container.trigger('zoomIn');\n  }\n};\n\nJQVMap.prototype.zoomOut = function () {\n  var map = this;\n  var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);\n\n  if (map.zoomCurStep > 1) {\n    map.transX += (map.width / (map.scale / map.zoomStep) - map.width / map.scale) / 2;\n    map.transY += (map.height / (map.scale / map.zoomStep) - map.height / map.scale) / 2;\n    map.setScale(map.scale / map.zoomStep);\n    map.zoomCurStep--;\n\n    var $slider = jQuery('#zoomSlider');\n\n    $slider.css('top', parseInt($slider.css('top'), 10) + sliderDelta);\n\n    map.container.trigger('zoomOut');\n  }\n};\n\nVectorCanvas.prototype.applyTransformParams = function (scale, transX, transY) {\n  if (this.mode === 'svg') {\n    this.rootGroup.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');\n  } else {\n    this.rootGroup.coordorigin = (this.width - transX) + ',' + (this.height - transY);\n    this.rootGroup.coordsize = this.width / scale + ',' + this.height / scale;\n  }\n};\n\nVectorCanvas.prototype.createGroup = function (isRoot) {\n  var node;\n  if (this.mode === 'svg') {\n    node = this.createSvgNode('g');\n  } else {\n    node = this.createVmlNode('group');\n    node.style.width = this.width + 'px';\n    node.style.height = this.height + 'px';\n    node.style.left = '0px';\n    node.style.top = '0px';\n    node.coordorigin = '0 0';\n    node.coordsize = this.width + ' ' + this.height;\n  }\n\n  if (isRoot) {\n    this.rootGroup = node;\n  }\n  return node;\n};\n\nVectorCanvas.prototype.createPath = function (config) {\n  var node;\n  if (this.mode === 'svg') {\n    node = this.createSvgNode('path');\n    node.setAttribute('d', config.path);\n\n    if (this.params.borderColor !== null) {\n      node.setAttribute('stroke', this.params.borderColor);\n    }\n    if (this.params.borderWidth > 0) {\n      node.setAttribute('stroke-width', this.params.borderWidth);\n      node.setAttribute('stroke-linecap', 'round');\n      node.setAttribute('stroke-linejoin', 'round');\n    }\n    if (this.params.borderOpacity > 0) {\n      node.setAttribute('stroke-opacity', this.params.borderOpacity);\n    }\n\n    node.setFill = function (color) {\n      this.setAttribute('fill', color);\n      if (this.getAttribute('original') === null) {\n        this.setAttribute('original', color);\n      }\n    };\n\n    node.getFill = function () {\n      return this.getAttribute('fill');\n    };\n\n    node.getOriginalFill = function () {\n      return this.getAttribute('original');\n    };\n\n    node.setOpacity = function (opacity) {\n      this.setAttribute('fill-opacity', opacity);\n    };\n  } else {\n    node = this.createVmlNode('shape');\n    node.coordorigin = '0 0';\n    node.coordsize = this.width + ' ' + this.height;\n    node.style.width = this.width + 'px';\n    node.style.height = this.height + 'px';\n    node.fillcolor = JQVMap.defaultFillColor;\n    node.stroked = false;\n    node.path = VectorCanvas.pathSvgToVml(config.path);\n\n    var scale = this.createVmlNode('skew');\n    scale.on = true;\n    scale.matrix = '0.01,0,0,0.01,0,0';\n    scale.offset = '0,0';\n\n    node.appendChild(scale);\n\n    var fill = this.createVmlNode('fill');\n    node.appendChild(fill);\n\n    node.setFill = function (color) {\n      this.getElementsByTagName('fill')[0].color = color;\n      if (this.getAttribute('original') === null) {\n        this.setAttribute('original', color);\n      }\n    };\n\n    node.getFill = function () {\n      return this.getElementsByTagName('fill')[0].color;\n    };\n    node.getOriginalFill = function () {\n      return this.getAttribute('original');\n    };\n    node.setOpacity = function (opacity) {\n      this.getElementsByTagName('fill')[0].opacity = parseInt(opacity * 100, 10) + '%';\n    };\n  }\n  return node;\n};\n\nVectorCanvas.prototype.pathSvgToVml = function (path) {\n  var result = '';\n  var cx = 0, cy = 0, ctrlx, ctrly;\n\n  return path.replace(/([MmLlHhVvCcSs])((?:-?(?:\\d+)?(?:\\.\\d+)?,?\\s?)+)/g, function (segment, letter, coords) {\n    coords = coords.replace(/(\\d)-/g, '$1,-').replace(/\\s+/g, ',').split(',');\n    if (!coords[0]) {\n      coords.shift();\n    }\n\n    for (var i = 0, l = coords.length; i < l; i++) {\n      coords[i] = Math.round(100 * coords[i]);\n    }\n\n    switch (letter) {\n      case 'm':\n        cx += coords[0];\n        cy += coords[1];\n        result = 't' + coords.join(',');\n        break;\n\n      case 'M':\n        cx = coords[0];\n        cy = coords[1];\n        result = 'm' + coords.join(',');\n        break;\n\n      case 'l':\n        cx += coords[0];\n        cy += coords[1];\n        result = 'r' + coords.join(',');\n        break;\n\n      case 'L':\n        cx = coords[0];\n        cy = coords[1];\n        result = 'l' + coords.join(',');\n        break;\n\n      case 'h':\n        cx += coords[0];\n        result = 'r' + coords[0] + ',0';\n        break;\n\n      case 'H':\n        cx = coords[0];\n        result = 'l' + cx + ',' + cy;\n        break;\n\n      case 'v':\n        cy += coords[0];\n        result = 'r0,' + coords[0];\n        break;\n\n      case 'V':\n        cy = coords[0];\n        result = 'l' + cx + ',' + cy;\n        break;\n\n      case 'c':\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        result = 'v' + coords.join(',');\n        break;\n\n      case 'C':\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        result = 'c' + coords.join(',');\n        break;\n\n      case 's':\n        coords.unshift(cy - ctrly);\n        coords.unshift(cx - ctrlx);\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        result = 'v' + coords.join(',');\n        break;\n\n      case 'S':\n        coords.unshift(cy + cy - ctrly);\n        coords.unshift(cx + cx - ctrlx);\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        result = 'c' + coords.join(',');\n        break;\n\n      default:\n        break;\n    }\n\n    return result;\n\n  }).replace(/z/g, '');\n};\n\nVectorCanvas.prototype.setSize = function (width, height) {\n  if (this.mode === 'svg') {\n    this.canvas.setAttribute('width', width);\n    this.canvas.setAttribute('height', height);\n  } else {\n    this.canvas.style.width = width + 'px';\n    this.canvas.style.height = height + 'px';\n    this.canvas.coordsize = width + ' ' + height;\n    this.canvas.coordorigin = '0 0';\n    if (this.rootGroup) {\n      var paths = this.rootGroup.getElementsByTagName('shape');\n      for (var i = 0, l = paths.length; i < l; i++) {\n        paths[i].coordsize = width + ' ' + height;\n        paths[i].style.width = width + 'px';\n        paths[i].style.height = height + 'px';\n      }\n      this.rootGroup.coordsize = width + ' ' + height;\n      this.rootGroup.style.width = width + 'px';\n      this.rootGroup.style.height = height + 'px';\n    }\n  }\n  this.width = width;\n  this.height = height;\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/jqvmap.css",
    "content": ".jqvmap-label\n{\n\tposition: absolute;\n\tdisplay: none;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #292929;\n\tcolor: white;\n\tfont-family: sans-serif, Verdana;\n\tfont-size: smaller;\n\tpadding: 3px;\n  pointer-events:none;\n}\n.jqvmap-pin {\n  pointer-events:none;\n}\n.jqvmap-zoomin, .jqvmap-zoomout\n{\n\tposition: absolute;\n\tleft: 10px;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #000000;\n\tpadding: 3px;\n\tcolor: white;\n\twidth: 10px;\n\theight: 10px;\n\tcursor: pointer;\n\tline-height: 10px;\n\ttext-align: center;\n}\n.jqvmap-zoomin\n{\n\ttop: 10px;\n}\n.jqvmap-zoomout\n{\n\ttop: 30px;\n}\n.jqvmap-region\n{\n  cursor: pointer;\n}\n.jqvmap-ajax_response\n{\n  width: 100%;\n  height: 500px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.africa.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'africa_en', {\"width\":950,\"height\":550,\"paths\":{\"dz\":{\"path\":\"m 419.83634,8.1546547 -9.8215,-3.2979062 -40.87478,7.6790665 -8.90675,6.764318 5.44034,28.092384 -16.24881,0.649952 -9.77336,15.719217 -23.27792,5.584776 0.0722,11.434346 76.6703,58.616072 13.07126,1.10732 43.59495,-34.06231 -4.35709,-5.48849 -8.18458,-1.107324 -4.91075,-8.232729 V 57.551031 l -3.27383,-3.297906 0.55366,-8.786393 -8.71418,-8.786392 -1.08325,-9.340056 3.80342,-2.744243 -1.63691,-9.893719 -2.14244,-6.5476673 0,0 z\",\"name\":\"Algeria\"},\"ma\":{\"path\":\"m 358.23531,19.68529 h -27.80352 l -5.44034,12.084299 -12.54167,6.042149 -10.3511,28.020167 -20.17259,12.084298 -28.33311,46.676207 27.80352,-0.55366 1.08325,-13.72122 h 7.07726 V 91.637419 h 24.52968 l 0.55367,-24.168597 23.44642,-5.488487 9.82151,-15.935868 15.26184,-0.553663 -4.93482,-25.805514 0,0 z\",\"name\":\"Morocco\"},\"mr\":{\"path\":\"m 253.78556,126.51819 5.24776,6.86061 -1.08325,29.65708 7.63092,-5.48848 5.44034,-1.10733 7.63093,2.74425 8.71417,12.08429 8.18459,-5.48848 39.79152,-0.55367 -9.8215,-66.463638 10.54367,-0.04815 -19.643,-15.045192 0.0241,9.773357 -24.8667,0.02407 -0.12036,18.656033 -7.14947,-0.0241 -0.91475,13.76936 -29.60894,0.64995 0,0 z\",\"name\":\"Mauritania\"},\"sn\":{\"path\":\"m 270.94912,158.2455 -4.59781,1.13139 -9.48449,6.90876 -2.16651,3.85157 -0.67403,3.82749 3.44234,2.47945 11.67507,-0.14443 7.51056,-2.02208 0.84253,3.68307 -0.69809,4.88667 0.1685,0.0722 -18.65604,0.28887 3.00904,7.22169 1.63692,-4.4293 22.36317,1.87764 0.14444,0.14443 2.33501,0.0963 7.14948,0.28887 0.28887,-4.21266 -8.64196,-10.37516 -9.62893,-13.09534 -6.01807,-2.47944 z\",\"name\":\"Senegal\"},\"gm\":{\"path\":\"m 258.57595,178.70696 -0.31294,2.67202 16.65804,-0.24072 0.84253,-2.47945 -0.36109,-2.50352 -4.79039,1.94986 -12.03615,0.60181 0,0 z\",\"name\":\"Gambia\"},\"gw\":{\"path\":\"m 262.69231,193.60772 3.37013,6.66802 9.46042,-8.13644 0.0963,-2.50352 -11.14547,-1.61284 -1.78136,5.58478 0,0 z\",\"name\":\"Guinea-Bissau\"},\"gn\":{\"path\":\"m 267.07347,201.81637 7.31799,11.26584 9.53263,-8.28087 9.77336,-0.4333 8.13644,10.80846 6.90875,4.54967 2.59981,-5.05518 2.31094,-1.29991 -0.16851,-11.12141 -4.59781,-13.19162 -14.10637,1.5647 -17.45242,-1.39619 -0.0963,4.47744 -10.15852,8.11237 0,0 z\",\"name\":\"Guinea\"},\"sl\":{\"path\":\"m 275.52286,214.3099 13.60085,13.14348 9.70114,-11.77136 -6.06622,-9.50856 -8.35309,0.84253 -8.88268,7.29391 0,0 z\",\"name\":\"Sierra Leone\"},\"lr\":{\"path\":\"m 290.54398,228.89772 26.43139,17.66907 -0.62588,-13.3842 -7.99201,-9.41227 -7.79942,-6.90875 -10.01408,12.03615 0,0 z\",\"name\":\"Liberia\"},\"ci\":{\"path\":\"m 319.19002,247.09638 10.30295,-7.29391 12.80647,-2.23872 13.07126,2.81646 -6.66803,-10.0863 -1.94986,-6.16251 1.94986,-18.22274 -11.67507,0.55367 -5.29591,-5.05519 -11.1214,0.28887 -5.29591,0.84253 0.55366,12.32502 -2.79238,1.1314 -3.34606,6.16251 8.61789,10.0863 0.84253,14.85261 0,0 z\",\"name\":\"Cote d'Ivoire\"},\"ml\":{\"path\":\"m 288.83484,172.68888 7.41427,-5.07926 41.21179,-0.24072 -9.53263,-66.29514 10.88068,-0.31294 52.64614,40.17669 7.07726,1.01103 -2.67203,22.3391 -33.09942,3.00904 -25.54072,19.06527 -4.64595,13.04719 -17.7413,0.74624 -4.52559,-13.02312 -13.60085,0.9629 0.52959,-4.2608 -8.40124,-11.14548 0,0 z\",\"name\":\"Mali\"},\"bf\":{\"path\":\"m 363.77194,168.9336 8.76232,-0.6981 14.37116,20.31703 -13.33605,10.06223 -9.653,-2.47945 -12.97497,0.1685 -2.09429,7.60685 -10.88069,0.52959 -2.98496,-4.06822 3.85157,-12.37316 24.93891,-19.06527 0,0 z\",\"name\":\"Burkina Faso\"},\"ne\":{\"path\":\"m 388.56641,187.51742 6.13844,-0.14443 5.53663,-8.30495 9.29191,-1.66099 9.89372,6.04215 21.11142,0.60181 16.32102,-6.64396 6.13844,-5.27183 0.45737,-6.93283 11.38621,-11.48249 3.00903,-25.34814 -7.48648,-15.69514 -19.16156,-4.67003 -44.34119,34.56783 -6.28287,-0.60181 -2.6961,24.0001 -22.62797,2.26279 13.31198,19.28192 0,0 z\",\"name\":\"Niger\"},\"gh\":{\"path\":\"m 348.72674,223.74625 2.6961,6.33101 7.02912,11.02512 3.89971,-0.14443 10.63996,-6.04215 -0.74624,-34.39933 -8.23273,-2.40723 -11.53064,0.31294 -3.75528,25.32407 0,0 z\",\"name\":\"Ghana\"},\"tg\":{\"path\":\"m 374.91741,233.85661 6.45138,-3.77935 -0.14443,-24.91484 -4.18858,-6.78839 -2.6961,2.2628 0.57773,33.21978 0,0 z\",\"name\":\"Togo\"},\"bj\":{\"path\":\"m 383.31865,229.61989 h 5.10333 l 0.28887,-14.49153 6.45138,-9.36413 -0.28887,-16.29695 -5.84957,-0.14444 -10.03816,7.84758 4.18859,7.992 0.14443,24.45747 0,0 z\",\"name\":\"Benin\"},\"ng\":{\"path\":\"m 390.20333,229.33102 9.43635,0.45737 11.3862,12.68611 5.53663,1.51656 4.33301,-2.11837 6.59582,-0.91474 2.23872,-9.19563 8.97897,-5.89771 9.72521,-0.45738 17.81351,-32.76241 -0.28887,-7.3902 -8.23273,-6.33101 -16.46545,7.24576 -22.02617,-0.31294 -10.49552,-6.64395 -7.48649,1.66098 -3.89971,6.7884 -0.28887,19.16155 -6.28287,8.90676 -0.57774,13.60085 0,0 z\",\"name\":\"Nigeria\"},\"tn\":{\"path\":\"m 422.31579,7.7694978 13.31199,-5.3681247 4.38116,2.8405323 0.1685,3.4664124 -2.04614,2.6720262 0.31294,4.742245 2.04614,1.107326 v 8.521597 l -2.35908,3.947858 0.31294,2.527593 8.93082,3.153472 -7.19762,11.193623 -2.81646,-0.168506 -0.48144,9.003043 -3.1294,0.481446 -2.67203,-2.359086 0.62588,-9.147477 -8.76232,-8.521597 -1.10733,-7.414271 4.23673,-3.321978 -3.75528,-17.3561342 0,0 z\",\"name\":\"Tunisia\"},\"ly\":{\"path\":\"m 434.68896,57.599175 3.75528,-0.62588 1.10732,-8.666031 h 1.87764 l 7.67907,-12.613889 18.9449,5.512559 5.17555,8.04015 18.63197,8.521597 9.70114,-4.092292 -0.93882,-4.092292 -4.23673,-4.092293 0.48145,-2.840532 6.88468,-5.825498 h 13.62492 l 5.17555,6.932824 10.9529,1.588773 1.42027,88.802739 -8.13644,-0.31294 -49.15566,-25.56479 -5.31998,3.00904 -20.19666,-5.05518 -5.48849,-7.245767 -7.99201,-1.107326 -4.06822,-7.245765 0.12037,-33.027207 0,0 z\",\"name\":\"Libya\"},\"eg\":{\"path\":\"m 535.50378,45.635238 6.42731,0.168506 12.5176,3.466413 5.94586,0.168506 7.36612,-6.162511 h 3.44234 l 6.2588,3.466412 h 7.91979 l 1.42027,-0.09629 5.00704,14.39524 1.42027,4.645956 1.32397,6.956897 -2.35908,1.733206 -4.06822,-2.046146 -4.6941,-15.309988 -4.23673,-0.31294 -0.31294,5.199618 2.81646,9.003044 22.55575,27.923877 0.48145,11.988012 -6.57174,7.58278 -61.7214,-0.6981 -0.93882,-72.072493 0,0 z\",\"name\":\"Egypt\"},\"td\":{\"path\":\"m 465.35708,173.07404 0.31294,-7.10133 11.41027,-11.09734 3.05718,-27.24985 -7.60685,-14.53967 5.31998,-2.72018 51.51474,26.84063 -0.31294,26.3351 -9.07526,7.72721 v 13.57679 l 5.94586,11.50656 h -10.49552 l -17.38021,17.18763 -0.45737,5.19962 -12.83054,-0.16851 -0.16851,2.35909 -7.31798,-0.9629 -5.00704,-9.46041 -3.75528,-1.85357 0.48144,-2.88868 4.71818,-3.61085 v -16.89876 l -6.5236,-1.01103 -7.87164,-5.84957 6.04215,-5.31998 0,0 0,0 z\",\"name\":\"Chad\"},\"sd\":{\"path\":\"m 531.21891,164.48022 0.4333,-28.47754 5.92179,0.16851 -0.67402,-15.81551 62.10655,0.55367 8.88268,-8.9549 19.16156,30.64404 -10.49553,12.37317 v 18.89676 l -16.5136,35.50666 -5.68107,2.50352 1.80543,9.89372 h 7.07726 l 9.60485,13.93786 -7.70314,0.98697 -1.97393,3.58677 -0.19258,5.17555 -23.10941,-0.40923 -2.35909,-3.58678 -16.15252,-0.91474 -29.65708,-30.52369 2.96089,-1.78135 0.79439,-7.17355 -7.10133,-4.18858 -6.47545,-12.7824 0.36108,-11.89172 8.97897,-7.72721 0,0 z\",\"name\":\"Sudan\"},\"cm\":{\"path\":\"m 429.32083,241.15052 7.75128,7.12541 -0.55366,11.02511 42.5117,-0.98696 3.46641,-3.89971 -12.18059,-13.11941 -1.80542,-4.74225 7.75128,-14.5156 -5.27183,-9.62892 -4.42931,-2.38316 v -4.88668 l 5.1274,-3.34605 0.28887,-15.2137 -4.06822,-0.45737 -0.0722,7.992 -17.86165,33.34015 -10.92883,0.55366 -7.48648,5.15148 -2.23873,7.992 0,0 z\",\"name\":\"Cameroon\"},\"er\":{\"path\":\"m 619.22727,169.94464 -0.60181,-14.17859 9.53263,-11.12141 2.57574,1.97393 4.6941,15.69515 22.53168,16.77839 -4.09229,5.03112 -16.48953,-14.17859 h -18.15052 l 0,0 z\",\"name\":\"Eritrea\"},\"dj\":{\"path\":\"m 654.78207,186.4101 -1.37212,8.08829 9.53263,-0.14443 0.14443,-11.89172 -3.49048,-2.14244 -4.81446,6.0903 0,0 z\",\"name\":\"Djibouti\"},\"et\":{\"path\":\"m 601.84706,211.01199 17.52464,-38.99713 17.40428,0.0963 15.43035,13.40828 -1.08325,11.04919 h 11.96393 l 1.22769,6.64396 19.35414,11.57878 11.93986,0.6018 -22.70018,24.38525 -31.17364,9.60485 h -7.72721 l -13.76936,-11.74728 -5.44035,-2.28687 -10.54367,-15.52664 -6.95689,0.0963 -0.81846,-7.1254 5.36812,-1.78136 0,0 z\",\"name\":\"Ethiopia\"},\"so\":{\"path\":\"m 665.03687,194.8354 9.8215,6.6921 2.91275,-0.14443 24.38525,-8.37716 2.76832,8.93082 -1.94986,7.53464 -5.27184,4.18858 -13.16755,-0.84253 -18.84862,-11.57878 -0.64995,-6.40324 0,0 m 39.06936,-2.38316 10.5196,-4.04414 3.7312,2.23872 -0.40923,9.34006 -9.70114,27.63501 -52.5017,56.23291 -6.09029,-4.18858 -0.40923,-23.7353 7.89571,-9.07526 16.75433,-5.17555 24.57783,-25.94994 6.4273,-5.72921 1.80543,-8.37717 -2.59981,-9.17155 0,0 z\",\"name\":\"Somalia\"},\"cf\":{\"path\":\"m 472.26583,240.59686 11.21769,12.13244 4.42931,-5.72921 7.05318,0.28887 1.51656,-5.58477 6.93282,-4.33302 14.39525,9.91779 8.30494,-8.23273 32.23282,1.42027 -29.8978,-30.8607 4.02007,-2.50352 0.55366,-5.44034 -6.78839,-3.20162 h -9.96593 l -16.05623,15.9118 -0.55367,6.54767 -12.73425,-0.40923 -0.40923,2.79238 -8.30494,-0.84253 -7.48649,14.22674 1.54063,3.89971 0,0 z\",\"name\":\"Central African Republic\"},\"gq\":{\"path\":\"m 426.96174,248.68516 -1.10732,4.74224 3.32198,1.80542 3.17754,-2.38315 -1.10732,-4.88668 -4.28488,0.72217 0,0 m 9.99001,12.71017 -0.14443,3.34606 10.92883,0.55366 -0.14444,-3.77935 -10.63996,-0.12037 0,0 z\",\"name\":\"Equatorial Guinea\"},\"ga\":{\"path\":\"m 449.9508,261.2509 -0.28887,5.99401 -13.57678,-0.28887 -8.30495,16.05623 19.52264,21.35213 4.83854,-4.04414 -0.14444,-4.18858 -3.32197,-1.54063 v -2.93682 l 7.48648,-4.74225 6.64396,5.03111 7.34206,0.14444 -0.14444,-25.25185 -11.62692,-0.55367 -0.14444,-5.2959 -8.28087,0.26479 0,0 z\",\"name\":\"Gabon\"},\"cg\":{\"path\":\"m 461.04813,260.98611 -0.14443,3.49048 11.50656,0.28887 0.40923,29.87373 -10.5196,-0.28887 -6.09029,-4.74224 -4.71817,2.64795 -0.21665,1.32398 2.4313,1.17954 0.6981,6.13844 -6.49953,5.58478 1.3962,2.93682 7.19762,-5.58478 h 3.46641 l 1.10733,3.34605 4.57373,1.94986 14.68411,-12.42131 -0.28887,-9.07526 3.05719,-7.3902 9.41227,-6.98097 2.52759,-23.61493 -6.6921,0.0241 -7.75128,10.61589 -19.54672,0.6981 0,0 z\",\"name\":\"Congo\"},\"ao\":{\"path\":\"m 450.33596,310.83986 4.18858,5.44034 5.41627,-5.1274 -1.58878,-5.31998 -1.34804,-0.0963 -6.66803,5.10333 0,0 m 4.98296,8.37716 8.20866,30.64405 -0.19258,9.67706 -12.01208,12.90276 -1.80542,20.96698 46.21883,0.40923 15.02112,5.44034 12.39724,-1.61284 -7.22169,-9.05119 0.0241,-25.85366 14.20266,-0.60181 v -10.08629 l -11.53064,-0.48145 -2.31094,-23.87973 -4.8626,0.0722 -2.62389,-2.35909 -2.8646,0.14444 -3.80343,7.36612 H 487.5277 l -3.39419,-3.41827 1.01103,-4.83853 -3.996,-5.84957 -25.82959,0.40923 0,0 z\",\"name\":\"Angola\"},\"cd\":{\"path\":\"m 457.14842,316.80979 24.81855,-0.4333 5.03111,7.14947 -0.19258,5.27184 1.85357,1.68506 h 12.32502 l 3.53863,-6.9569 h 5.03111 l 2.04615,2.07022 6.90875,-0.19258 2.04615,24.26489 11.93986,0.38516 v 1.87764 l 32.08839,14.46745 1.49248,2.81646 h 6.71618 l -0.74625,-10.15851 -12.13244,-5.8255 0.74624,-7.70314 5.22369,-12.22873 11.93987,-0.38516 -10.2548,-34.03824 0.19257,-14.46746 16.22474,-25.37221 0.19258,-3.5627 -2.4313,-1.32398 0.0963,-6.88468 -2.96089,-0.2648 -2.98497,-3.80342 -48.98714,-2.21465 -8.97897,8.73825 -14.70818,-9.67707 -5.17555,3.17754 -3.75528,31.60694 -9.29191,7.17355 -2.79239,6.35509 0.50552,9.41227 -16.75433,13.69715 -4.45337,-2.02208 0.6018,2.62388 -4.95889,4.74225 0,0 z\",\"name\":\"Congo\"},\"rw\":{\"path\":\"m 573.75468,278.75147 6.76432,6.23473 -0.28887,6.66803 -10.49553,0.21665 v -7.36613 l 4.02008,-5.75328 0,0 z\",\"name\":\"Rwanda\"},\"bi\":{\"path\":\"m 569.87904,293.9411 10.27887,-0.21666 -2.67202,9.00305 -2.59981,2.26279 h -3.17755 l -2.26279,-6.09029 0.4333,-4.95889 0,0 z\",\"name\":\"Burundi\"},\"ug\":{\"path\":\"m 574.91015,276.80161 7.29391,6.83654 4.57374,-2.91275 12.37316,-2.02208 2.11837,0.21666 0.79438,-4.6941 6.98097,-14.68411 -5.87364,-12.22874 -19.0412,0.12037 -0.12036,5.03111 2.55167,2.45537 -0.38516,5.03112 -11.26584,16.85061 0,0 z\",\"name\":\"Uganda\"},\"ke\":{\"path\":\"m 605.07275,246.54272 6.40324,12.49353 -7.67907,16.10437 -1.01104,4.88668 38.34719,23.71122 11.89172,-18.68011 -6.01808,-4.88667 -0.12036,-24.6019 7.53463,-8.23273 -12.01208,3.996 -9.07526,0.12036 -14.20266,-11.98801 -4.47745,-1.92578 -8.30495,0.77031 -1.46841,2.45538 0.19258,5.77735 0,0 z\",\"name\":\"Kenya\"},\"tz\":{\"path\":\"m 604.44687,354.62738 42.05432,-5.15147 -9.46041,-18.29495 -0.50552,-17.52464 3.05718,-8.37717 -40.00817,-25.13149 -12.54168,2.07022 -4.35708,3.22569 -0.38516,7.34205 -2.81646,10.18259 -2.93682,3.49049 -4.21266,0.38515 8.06423,27.94795 13.16755,6.18659 9.07526,0.26479 1.80542,13.3842 0,0 z\",\"name\":\"Tanzania\"},\"zm\":{\"path\":\"m 517.73842,386.59541 7.63092,10.59181 11.8195,0.72217 4.18858,2.31095 12.37317,0.14443 10.66403,-14.9489 29.80152,-13.33606 2.59981,-11.74729 -3.46641,-16.82654 -15.55071,-8.85861 -10.37517,0.72217 -5.17554,11.45842 0.14443,5.22369 12.22873,5.94586 0.72217,12.92683 -10.5196,0.57773 -2.59981,-4.35709 -29.22378,-12.46945 -0.8666,9.58078 -13.81751,0.4333 -0.57773,21.9058 0,0 z\",\"name\":\"Zambia\"},\"mw\":{\"path\":\"m 596.23821,373.83709 7.48649,7.8235 -0.14443,10.01408 1.44434,4.21265 9.94186,-10.73625 -1.15547,-13.649 -5.31998,-4.06822 -4.74225,-23.95194 -8.20865,-0.28887 3.73121,17.25984 -3.03312,13.38421 0,0 z\",\"name\":\"Malawi\"},\"mz\":{\"path\":\"m 581.8189,455.39407 6.47545,5.36812 15.26185,-9.29191 2.45537,-13.79343 v -22.77241 l 24.48154,-20.02816 4.18858,0.14444 14.82854,-14.22674 -2.31094,-29.32007 -39.31008,4.9589 1.15547,8.85861 6.76432,5.22369 1.58877,15.95994 -13.23977,12.92683 -3.17754,-7.24577 0.57773,-9.58078 -7.63092,-8.28087 -18.72825,8.71417 17.42835,8.85861 0.57773,25.82959 -11.53063,17.11541 0.14443,20.58183 0,0 z\",\"name\":\"Mozambique\"},\"zw\":{\"path\":\"m 542.07552,404.89036 21.59286,24.38525 16.56175,4.21265 11.09733,-17.40427 -0.8666,-23.06128 -18.00609,-9.29191 -6.76431,3.05719 -10.0863,15.3822 -13.96194,-0.14443 0.4333,2.8646 0,0 z\",\"name\":\"Zimbabwe\"},\"na\":{\"path\":\"m 474.40826,476.28883 8.06423,0.57773 4.74224,4.79039 11.24177,0.14444 2.74424,-31.91988 v -20.89477 l 7.19762,-1.44434 2.74425,-21.9058 18.29495,-0.57773 6.47545,-5.36813 -10.9529,-0.4333 -14.82854,2.02208 -15.98401,-5.80143 h -44.91893 l 1.15547,12.75832 14.97298,22.05024 -2.59981,11.31398 0.14443,5.94586 11.50656,28.74234 0,0 z\",\"name\":\"Namibia\"},\"bw\":{\"path\":\"m 503.19874,450.45924 5.17555,1.58877 -0.72217,14.80447 5.31998,0.72217 12.22873,-11.02511 14.68411,1.58877 3.89972,-9.86965 18.58382,-16.97098 -22.31503,-25.68515 -0.28887,-4.21265 -2.45538,-0.72217 -6.76431,6.23473 -17.57279,0.4333 -2.45537,21.9058 -6.90876,1.58877 -0.40923,19.61893 0,0 z\",\"name\":\"Botswana\"},\"sz\":{\"path\":\"m 581.09673,457.12727 -6.04215,1.01104 -2.59981,7.10133 4.62189,4.21265 h 5.60885 l 4.74224,-6.81246 -6.33102,-5.51256 0,0 z\",\"name\":\"Swaziland\"},\"ls\":{\"path\":\"m 548.69541,484.54563 7.34205,-5.65699 3.46641,0.14443 4.18858,5.22369 -0.4333,5.22369 -7.05318,2.59981 v 2.02208 l -7.77536,-0.43331 -1.87764,-5.65699 2.14244,-3.46641 0,0 z\",\"name\":\"Lesotho\"},\"za\":{\"path\":\"m 564.94421,432.16429 -19.01712,17.57278 -4.52559,10.85661 -15.06927,-1.87764 -12.54167,11.14548 -8.32902,-0.81846 0.67403,-15.40627 -2.9609,-1.03511 -2.07022,31.51065 -14.78039,-0.14444 -4.45338,-5.24776 -6.5236,-0.0722 5.94586,17.06727 10.61589,10.03815 -7.58278,8.83454 4.91076,11.07326 11.36212,4.33302 9.05119,-7.70314 25.92588,0.14443 1.85357,-2.31094 11.50656,-2.02207 38.92492,-38.75642 -0.14443,-12.20466 -4.16451,5.3922 h -6.23473 l -7.58278,-6.35509 3.85157,-9.58078 6.61989,-1.34805 -0.60181,-19.69115 -14.66004,-3.39419 0,0 z m -9.1234,44.53377 3.63492,-0.14444 5.89771,6.40324 -0.1685,7.41427 -6.90876,3.49048 -0.4333,2.45538 -10.54367,0.12036 -3.2979,-7.94386 3.00903,-5.8255 8.81047,-5.96993 0,0 z\",\"name\":\"South Africa\"},\"mg\":{\"path\":\"m 704.90061,358.23823 -5.1274,12.18059 -8.78639,15.50256 -15.38221,1.10733 -6.59581,7.75128 1.10733,23.63901 -9.53264,11.07326 1.10733,18.82455 8.06422,9.21969 9.53264,-1.10733 9.53263,-7.02911 -2.19058,-11.07326 21.97802,-38.03425 -4.40523,-4.79039 4.40523,-9.21969 4.76632,1.46841 1.46841,-3.68306 -4.40524,-18.82455 -2.57573,-7.75128 -2.9609,0.74624 0,0 z\",\"name\":\"Madagascar\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.asia.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'asia_en', {\"width\":950,\"height\":550,\"paths\":{\"id\":{\"path\":\"m 615.27242,460.80117 -3.29462,12.37981 -17.87084,6.03301 -5.34842,-6.27548 -2.59577,0.71313 4.84924,18.71232 7.25958,0.81296 9.6842,3.66545 v 3.66545 l 4.43562,-0.81296 6.46089,-8.94255 v -7.31664 l 3.63692,-7.31663 4.03627,0.81296 -4.84923,-10.16912 -0.74165,-6.54647 -5.66219,0.58476 0,0 m -84.43367,-9.74124 -0.39934,3.25183 9.6842,16.27345 h 2.82396 l 20.18136,33.75921 8.07254,0.81296 4.03627,-11.79505 -6.46088,-4.06479 -1.21231,-6.50368 -36.7258,-31.73393 0,0 m 95.62969,44.98374 3.22331,3.9507 -2.09658,5.93318 v 1.12673 h 4.76366 l 1.68297,-14.83294 1.54034,0.42787 2.79544,13.54932 2.66708,0.71313 2.52445,-5.79056 -2.52445,-8.75714 -2.09658,-3.80807 6.58925,-4.80644 -1.54035,-2.12511 -6.304,4.09332 h -1.68296 l -3.08069,-4.52119 0.98411,-1.98248 5.19153,-2.53872 7.84434,2.3961 2.38183,-0.14263 5.89039,-5.5053 -2.38183,-2.39609 -5.46252,4.23594 h -3.50856 l -5.31989,-2.53871 -3.77955,0.14262 -4.20742,6.77466 -2.66707,11.72373 -1.42625,4.67808 0,0 m 35.17119,-26.5424 -2.66708,6.48941 4.20742,5.5053 h 1.39772 l 1.82559,-3.66545 0.98411,-1.26935 -1.82559,-1.98248 -2.66708,-0.98411 -1.25509,-4.09332 0,0 m 8.27222,21.32235 -5.74777,1.26936 -1.68297,1.83985 1.39772,2.39609 3.77955,-1.41198 2.38183,-1.41198 3.50856,2.82396 1.54034,-1.26935 -2.79544,-3.39447 -2.38182,-0.84148 0,0 m -95.30166,18.35576 -3.92217,2.68134 0.84149,2.25347 12.47964,2.82396 6.304,1.12674 2.66707,2.82396 7.14549,0.5705 3.36593,2.82396 3.08069,-0.71312 2.8097,-2.53871 -5.19153,-2.39609 -4.4784,-3.80808 -11.63816,-2.82396 -13.46375,-2.82397 0,0 m 40.79059,12.27997 -3.08068,1.69723 1.82559,1.98248 4.47841,-1.69723 -3.22332,-1.98248 0,0 m 5.3199,-1.26936 0.55623,2.68134 3.22331,0.84149 1.2551,-1.55461 -1.39772,-2.12511 -3.63692,0.15689 0,0 m 7.71598,7.05991 -3.92217,0.5705 3.50856,2.96659 h 2.79544 l -2.38183,-3.53709 0,0 m 1.11247,-4.66382 -0.84149,1.69723 6.30401,0.98411 4.90628,-2.82396 -2.79544,-0.84149 -4.47841,1.26936 -1.68297,-1.41198 -1.41198,1.12673 0,0 m 57.39207,-40.47681 -5.94744,0.67033 -3.82233,2.79544 1.58313,3.19479 6.47515,1.19804 v 1.19805 l -4.09332,3.32315 1.98248,6.91728 1.98248,0.12836 1.71149,-6.78892 h 3.16626 l 1.32641,6.6463 15.44623,12.77915 0.39935,9.98371 5.2771,5.71924 2.38183,-0.12836 0.52771,-35.25676 -8.97108,-6.24695 -8.45763,5.71924 -3.0379,1.86838 -5.02038,-3.19479 -0.12836,-10.11207 -2.78118,-0.41361 0,0 z\",\"name\":\"Indonesia\"},\"ye\":{\"path\":\"m 355.61037,425.50163 3.0379,3.39446 4.10758,-2.48167 1.4833,-0.49918 -1.88265,-1.8256 -3.6084,1.06969 -3.13773,0.3423 0,0 m -39.40714,-14.86147 2.0538,6.10433 v 5.9617 l 4.9348,4.4784 34.77184,-14.1626 0.32804,-3.89365 -5.57662,-10.01224 -13.99146,4.46415 -8.02975,7.90139 -9.31338,-5.5053 -5.17727,4.66382 0,0 z\",\"name\":\"Yemen\"},\"my\":{\"path\":\"m 590.2561,472.95278 4.30725,4.97759 16.51591,-5.71924 3.2661,-12.608 7.35942,-0.52771 6.73188,-4.87776 -8.72862,-6.36105 -1.99674,-3.4943 -4.30726,7.94419 1.58313,4.56398 -2.62429,3.80807 -4.94906,-1.26936 -11.99472,8.79993 0.31377,5.09169 -5.47677,-0.32803 0,0 m -44.82687,-24.91649 2.86676,6.43236 0.64181,8.35779 3.83659,5.94744 9.25633,5.6194 3.50856,0.32804 -0.64181,-5.79055 -3.0379,-7.38795 -4.44988,-9.456 -0.37083,1.65444 -5.36268,-0.24246 -3.85086,-5.53382 -2.39609,0.0713 0,0 z\",\"name\":\"Malaysia\"},\"bn\":{\"path\":\"m 612.5483,453.45602 -4.10759,4.97759 3.36594,1.05542 1.8969,-2.65281 -1.15525,-3.3802 0,0 z\",\"name\":\"Brunei Darussalam\"},\"tl\":{\"path\":\"m 650.15836,523.58445 -7.28811,6.0758 0.69886,1.55461 3.08069,-0.5705 3.63692,-3.39446 7.14549,-0.98411 -1.39772,-2.39609 -5.87613,-0.28525 0,0 z\",\"name\":\"Timor-Leste\"},\"ph\":{\"path\":\"m 626.24024,422.47799 -1.22657,2.33904 -0.6846,2.88101 -6.81744,8.65731 0.41361,1.7828 2.86675,-0.41361 8.85698,-9.89814 -3.40873,-5.34841 0,0 m 11.03913,-3.29463 -0.14262,7.14549 2.59576,2.61002 0.95559,5.07743 2.59576,0.55624 1.22657,-3.16626 -2.03953,-1.51182 -0.54197,-8.92829 -4.64956,-1.78281 0,0 m 7.37369,2.75265 -0.14263,6.31827 1.49756,2.4674 2.59576,-3.02364 -0.68459,-5.49104 -3.2661,-0.27099 0,0 m 1.62592,-5.5053 2.59576,3.43725 1.22657,3.29463 h 2.32478 l -0.41361,-5.63367 -2.59577,-1.78281 -3.13773,0.6846 0,0 m 5.0489,12.92178 0.54197,4.12184 -4.77791,3.85086 -3.9507,0.41361 -4.22169,4.53546 0.14263,2.06805 3.9507,-1.24083 2.72412,-1.7828 2.32478,5.90465 4.09332,2.88101 1.64018,-0.55623 1.49756,-1.78281 -3.2661,-3.29462 1.91117,-1.51182 2.18215,1.7828 1.49756,-2.4674 -1.49756,-3.02364 -0.27098,-6.73187 -4.5212,-3.16626 0,0 m -22.22089,-41.90306 -3.67971,2.61002 -0.41361,8.2437 5.7335,11.1247 1.91117,1.51182 2.45314,-1.65444 4.22169,0.68459 0.81295,3.70824 3.13774,0.27099 1.49756,-2.0538 -1.91117,-2.61002 -2.32478,-2.19642 -4.90628,-0.54197 -2.59576,-4.26447 2.99511,-4.53546 0.27099,-3.97922 -2.03953,-5.07743 -5.16301,-1.24083 0,0 m 1.91117,24.58845 1.08395,3.85086 1.91116,1.24083 1.3692,-1.7828 -2.18216,-3.02364 -2.18215,-0.28525 0,0 z\",\"name\":\"Philippines\"},\"cn\":{\"path\":\"m 584.10898,383.45594 -3.40872,0.95558 -2.45314,3.02364 2.03953,3.97922 2.99511,0.27099 3.40872,-3.02364 0.81296,-3.97922 -3.39446,-1.22657 0,0 m -127.54903,-142.76706 -4.93481,12.40832 -6.80319,-0.35656 -7.174,15.70295 6.09006,7.75877 -12.55095,17.32887 -6.44663,-1.08394 -4.30725,5.41972 1.06968,3.25184 5.02038,0.35656 2.51019,5.77629 5.02038,1.08395 15.4177,19.86758 v 10.11208 l 7.53057,4.69234 8.24369,-1.44051 10.39733,6.13285 12.55095,3.6084 6.09006,-0.72738 6.81745,-0.72739 14.33375,-9.38469 4.66382,0.72739 1.78281,4.23595 3.9507,1.18378 5.37694,7.94418 -3.57988,7.94418 2.15363,5.41973 6.09007,2.16789 1.06968,6.50368 7.17401,0.72738 1.06968,-3.25184 10.39732,-5.41973 6.44663,0.35657 7.53057,8.30074 5.02038,-2.16789 3.22331,0.35656 1.44051,3.97922 2.51019,0.35656 3.57987,-5.04891 14.33376,-5.41972 12.90751,-15.53181 4.30726,-14.80441 -0.35656,-9.75551 -5.37694,-1.08395 3.22331,-3.6084 -0.71312,-5.77629 -13.62064,-13.72047 v -6.86023 l 3.93644,-5.04891 3.93643,-1.81133 0.35656,-3.97922 H 598.2288 l -1.79707,5.41973 -4.66382,-1.08395 -5.7335,-6.13285 3.57988,-9.38469 5.02038,-5.41973 4.66382,0.35656 -0.71313,8.30075 2.51019,2.16789 6.09007,-6.13285 2.15363,-0.35656 -0.71313,-4.69235 5.73351,-6.86023 4.30725,0.35656 2.51019,-7.94418 2.93807,-1.55461 0.29951,-4.94907 -2.85249,-2.99511 -0.24246,-7.81582 5.49104,-0.35656 -0.35656,-20.15284 -3.85086,2.31052 -1.44051,5.16301 -6.43236,-0.0143 -18.64101,-10.48289 -13.46375,-16.23066 -13.66342,-0.14263 -3.48004,3.02364 4.42136,10.12633 -1.54035,9.49879 -5.5053,2.28199 -3.09495,-0.24246 -0.2282,9.39895 3.22331,0.72739 5.73351,-2.52446 7.53057,3.6084 v 3.6084 l -5.37694,0.35656 -4.30726,9.38469 -3.93644,0.35656 -13.97719,18.41282 -14.69032,6.50367 -10.04076,0.72739 -6.80319,-4.69235 -9.6842,5.06317 -10.39732,-3.25184 -2.51019,-6.86023 -17.55707,-1.08395 -9.31337,-15.16098 h -3.93644 l -3.16626,-7.03138 -3.76528,-0.29951 z\",\"name\":\"China\"},\"tw\":{\"path\":\"m 623.51612,352.27824 -5.04891,3.85086 -0.27099,7.41647 4.36431,5.07743 1.08395,-0.95558 -0.12836,-15.38918 0,0 z\",\"name\":\"Taiwan\"},\"jp\":{\"path\":\"m 646.00799,306.7953 -2.32478,2.33905 0.95558,3.29462 2.03953,0.14262 1.3692,7.14549 1.64018,1.7828 2.86675,-2.61002 1.22657,-4.67808 -3.55135,-5.07743 -4.22168,-2.33905 0,0 m 12.55095,-4.66381 -3.9507,3.70823 -0.14262,4.26447 0.95558,1.24083 5.31989,-4.53545 -0.41361,-4.53546 -1.76854,-0.14262 0,0 m -5.46252,-8.79993 -6.96007,7.9727 1.22657,1.92543 3.40873,0.41361 6.40383,-4.94906 4.50694,-0.82723 4.09332,4.80645 3.13773,-1.09821 1.22657,-4.67808 5.86187,-0.14263 5.7335,-6.87449 -2.99511,-11.40996 -1.3692,-6.04728 2.99512,-2.4674 -6.81745,-10.29748 -1.76854,0.14262 -3.67971,4.12185 v 3.43725 l 1.64018,1.92543 0.54197,9.07091 -4.22168,5.22006 -2.45314,-1.51182 -1.91117,4.26447 -0.41361,3.97922 1.49755,2.33904 -0.95558,1.78281 -3.13774,-2.61003 h -2.18215 l -1.91117,1.09821 -1.49756,0.41361 0,0 m 11.738,-62.09868 -2.18216,1.92543 1.09821,4.12184 1.91117,1.92543 -0.14263,6.31827 -2.45314,0.95558 -1.91117,4.26447 5.59088,7.68746 3.67971,-1.24084 0.6846,-1.92543 -3.9507,-3.56561 2.45314,-3.16626 2.59577,0.41361 2.03953,2.19642 0.14262,-4.53546 5.59088,-4.53546 3.13774,-0.82722 -2.59577,-4.39283 -1.22657,-1.92543 -2.03953,1.36919 -1.76854,2.19642 -3.82233,-0.82722 -3.9507,-2.61003 -2.88101,-3.82233 0,0 z\",\"name\":\"Japan\"},\"ru\":{\"path\":\"m 222.95538,214.51729 -2.13937,-0.21393 -3.85086,4.60676 v 2.15363 l 1.28362,0.49919 2.49593,0.0713 4.13611,-3.3802 0.57049,-1.15526 -2.49592,-2.5815 0,0 m 462.45974,12.45112 -3.82233,5.36267 0.27098,2.61003 1.91117,-0.82722 4.49267,-5.63367 -2.85249,-1.51181 0,0 m 5.04891,-7.83009 -1.3692,3.70824 0.14263,2.4674 2.32478,-1.51182 2.18215,-4.39283 v -1.64018 l -3.28036,1.36919 0,0 m 8.04402,-32.70378 -1.76855,2.19642 0.14263,3.43724 1.64018,-0.14262 2.72413,-4.80644 -2.73839,-0.6846 0,0 m -3.2661,8.38632 v 6.04727 l 1.91116,0.6846 1.3692,-2.19642 v -4.66382 l -3.28036,0.12837 0,0 m -55.78042,-21.85007 -0.12836,8.79993 11.03913,17.04362 3.95069,14.83294 6.96008,13.19276 2.72412,0.95559 2.32478,-1.92543 1.08395,-3.16627 -9.95519,-10.85372 0.27099,-5.63366 2.18215,-0.95558 0.54198,-3.29463 -19.49677,-27.61209 -1.49755,-1.38346 0,0 m 76.91736,-27.3411 -2.72413,0.27098 1.64018,2.33904 3.40873,2.33905 0.95558,-1.09821 -3.28036,-3.85086 0,0 m 5.30563,1.65444 0.41361,2.33904 4.22168,1.24083 0.41361,-1.65444 -5.0489,-1.92543 0,0 m -439.95361,-93.832618 2.45314,0.984108 -1.72576,2.966589 v 4.207421 l -3.67971,2.224941 h -3.92217 l -2.21068,-2.724127 0.24246,-2.966588 1.72576,-2.224942 h 3.43725 l 3.67971,-2.467402 0,0 m 9.32764,-2.724127 v 2.966588 l 2.45314,1.98248 3.43724,-0.242462 2.95233,-2.724126 v -1.98248 h -2.6956 l -2.21068,0.741647 -1.72576,-1.98248 -2.21067,1.240833 0,0 m 14.00572,0.256724 1.72575,3.708235 3.43725,0.242462 2.45314,-0.984109 -1.22657,-3.465774 -3.19479,-0.741647 -3.19478,1.240833 0,0 m 13.99145,-4.949068 -2.6956,-0.499186 -2.45314,2.481666 1.22657,2.224941 0.74165,3.465774 3.19479,-2.467403 0.74164,-2.724127 -0.75591,-2.481665 0,0 m 14.97557,26.228634 -0.74165,3.465774 -5.64793,4.949068 -12.0375,2.724127 -9.82682,16.330498 -1.72576,4.706608 9.82683,2.48166 1.46903,-5.93317 2.95232,-9.156492 7.61615,-3.964959 6.38957,-4.949068 4.66382,-1.98248 h 2.45314 v -6.674824 l -5.3912,-1.996742 0,0 m -31.67689,36.126775 6.63204,0.74164 2.21068,7.6732 5.64792,5.93317 -1.96821,3.96496 h -3.43725 l -3.19479,-3.70823 -7.11696,-0.24246 -2.95232,-3.96496 v -2.72413 l 4.42135,-1.24083 -0.24246,-6.43236 0,0 m 103.64518,-84.376623 -3.19479,-1.982479 h -3.67971 l -0.74164,2.224941 -3.92218,2.224941 -2.95232,0.984109 -0.48492,2.966588 6.87449,0.499186 8.10107,-6.917286 0,0 m 7.60188,0.741647 -1.72575,3.708236 -3.43725,-0.242462 -5.40547,3.96496 -1.46903,4.949068 h 3.43725 l 1.96822,-3.223313 4.66382,3.465774 4.42135,-1.982479 3.19479,-2.724127 -1.22657,-4.207421 -1.72575,-2.966589 -2.69561,-0.741647 0,0 m 7.13123,2.724127 1.72575,6.931548 2.6956,6.432362 2.95233,-5.191529 5.64793,-1.240833 v -3.708236 l -3.67971,-2.724126 -9.3419,-0.499186 0,0 m 134.75157,-11.096181 3.83659,3.223312 2.72413,-1.126733 0.7987,-4.521195 -5.59088,-3.865122 -3.67971,2.424615 -8.95681,0.81296 v 4.036271 l -9.44174,0.156887 v 6.603512 l 11.03913,8.215168 2.88101,-2.09658 -0.64181,-5.804814 7.04565,-1.768543 -1.44051,-2.73839 -2.55297,-2.581502 3.97922,-0.969846 0,0 m 10.24043,-3.865123 2.55298,4.834969 9.92666,-1.126733 2.72413,-3.551349 -0.64181,-3.0664252 -2.72413,-1.1267331 -2.55298,1.9396923 -7.35942,1.611656 -1.92543,0.484923 0,0 m -0.64181,18.854951 -4.96333,-1.28362 -2.86675,3.066426 -1.28362,4.193158 6.71761,-0.64181 5.12022,-2.581502 -2.72413,-2.752652 0,0 m 128.63298,-27.8830777 -4.16463,-1.2836199 -4.79218,1.768543 -2.39609,3.5513486 3.0379,4.036272 8.00123,-3.5513489 1.59739,-1.7685431 -1.28362,-2.7526517 0,0 m -26.68503,98.6533297 2.51019,8.67156 5.02038,1.44051 5.02038,-7.94418 -2.86675,-5.419732 1.06968,-4.692344 h 7.53058 l -1.79707,3.608399 0.71312,13.007347 -10.75388,26.72782 1.06968,5.77629 -0.35656,9.75551 20.06726,29.25228 3.93643,1.08394 0.35656,-23.83254 3.93644,-3.6084 -4.30726,-9.38469 3.57987,-3.97922 -7.88713,-10.46863 -4.30726,0.35656 -1.42624,-17.32887 11.11044,-2.89528 0.71313,-5.06317 5.7335,-1.4405 3.22331,2.89527 3.93643,-15.88836 6.80319,-11.55258 5.37694,-2.895276 4.66382,0.356561 v -5.419729 l -7.53057,-1.440506 -10.39732,-8.671566 5.02038,-5.77629 -4.30726,-9.755512 3.57987,-3.608398 4.30726,5.77629 10.75389,3.979221 11.82356,1.083946 1.44051,-5.048905 -6.09007,-6.132851 6.80319,-9.384688 -15.4177,-5.419729 -3.93644,7.944182 -5.02038,-6.503675 -28.31095,-9.755512 -26.8847,4.692344 -3.93644,2.167892 v 2.167891 l 5.7335,2.895277 -0.71312,6.860235 -10.39732,-4.335783 -22.93401,9.028127 -3.93644,-8.300742 h -15.77426 l -7.17401,7.58762 -25.4442,-5.77629 -23.29057,4.692344 -2.86675,7.216797 3.57987,1.083946 -0.35656,5.419728 -22.57745,2.524453 1.44051,7.216797 -20.79464,-3.608399 5.02038,-9.384688 -21.15121,-1.083946 1.79707,9.755512 -6.80318,3.251837 -5.73351,-5.419728 -23.29057,3.979221 -8.95681,8.300743 -0.35656,5.048905 -5.73351,0.356561 -0.71312,-5.77629 18.28445,-15.888362 V 44.380597 l -11.82356,-3.251837 -15.4177,5.048905 -6.44663,-6.503674 h -2.86675 l -3.57987,7.216796 2.86675,3.251838 -20.43808,11.196018 -17.55707,13.36391 -10.75389,14.804417 v 6.132851 l 11.46701,4.692349 -5.7335,4.33578 -12.18013,-4.33578 -5.02038,4.33578 -7.53057,-8.671568 -1.44051,3.251837 8.24369,26.000431 2.15363,0.72739 5.73351,-2.89528 2.86675,2.16789 v 4.69235 l -5.37694,-2.16789 -3.22332,2.52445 2.15363,4.69234 -1.79707,12.27997 -11.11044,1.08394 -0.71312,-3.97922 6.44662,-3.97922 1.44051,-10.83946 -7.17401,-9.38469 -2.51019,-16.24492 -11.467,-1.81133 -1.06969,5.77629 2.15363,2.89528 -4.66382,3.97922 1.79707,10.83946 6.80319,2.89527 1.4405,7.94418 -6.81745,-4.33578 -17.55706,-3.25184 -2.15363,5.77629 -13.9772,5.04891 -2.15363,-3.6084 -18.28445,10.11207 -0.35656,6.86024 -7.17401,1.08394 2.15363,-5.0489 v -5.04891 l -7.17401,-2.52445 -4.66382,1.81133 3.93643,7.58762 2.86676,5.04891 v 3.97922 l -5.37695,-1.08395 -1.06968,-1.08394 -5.37694,5.77629 2.86675,5.0489 -12.18013,-0.35656 3.93644,5.06317 -1.06969,2.16789 h -6.44662 l -4.66382,-3.25184 -1.06968,-9.02812 -7.53057,-2.89528 v -3.6084 l 15.77426,3.25184 8.60025,0.72738 3.57988,-5.41973 -3.22331,-5.77629 -22.93401,-9.02812 -7.91566,1.96821 -2.70987,2.32478 0.84149,5.34842 3.36594,0.58476 -0.78444,8.41484 10.38306,24.38878 -7.50205,11.89488 -0.51344,2.68134 3.80807,2.68134 -3.43725,2.26773 -2.28199,0.0428 0.42787,10.4829 3.152,4.46415 0.0428,4.33578 4.03627,0.37082 6.17564,2.35331 6.5322,8.98534 0.0713,2.36756 -2.1251,3.63692 4.87775,-0.27098 4.7494,1.36919 6.4181,9.08518 15.80278,1.44051 -0.68459,10.81093 -5.44826,4.66382 1.12674,1.82559 -5.37694,5.77629 -1.42625,5.41973 3.22331,4.69234 10.39733,3.6084 4.30725,-2.52445 27.59783,10.46863 1.06969,-2.89527 -5.73351,-5.41973 v -6.86024 l -3.57987,-1.08394 0.71312,-5.77629 5.7335,-6.86024 -10.28322,-7.70172 0.71312,-10.71109 10.99635,-7.23106 12.90751,0.72738 2.15363,3.97922 13.26407,0.72739 9.6842,-5.41973 -5.02038,-5.41973 1.06969,-10.11207 25.08763,-12.27997 19.29709,8.70009 6.44663,-5.77629 18.99757,18.05626 14.33376,-1.44051 5.02038,5.04891 13.62063,1.4405 8.95682,-12.27996 11.467,5.06317 6.09006,1.08394 6.09007,-5.41973 -5.37694,-3.60839 4.66382,-7.2168 13.26407,4.33578 2.86675,5.77629 5.7335,0.35656 3.57988,-2.52445 9.6842,-0.35656 1.06968,2.52445 11.11044,0.72739 7.53057,-7.94418 15.41771,1.81133 4.66381,-1.81133 1.42625,-8.67157 -4.66382,-10.46863 4.66382,-3.97923 h 14.69032 l 13.97719,16.61575 17.91363,10.11207 h 5.37694 l 0.71312,-4.33578 6.44663,-3.97922 0.71312,23.47598 -5.7335,0.35656 v 5.77629 l 3.22331,3.97922 -0.59902,5.16301 2.38183,0.98411 1.4405,-3.6084 2.15363,0.72738 1.42625,1.44051 6.44662,-1.44051 6.44663,-18.78363 0.71312,-23.47599 -8.24369,-18.78364 -10.39733,-12.63652 -5.02038,0.72738 v 3.97922 l -12.18012,-4.69234 4.66382,-10.11207 3.93643,-26.72782 16.48739,-5.04891 7.88713,-5.0489 h 8.60025 l -2.15363,2.89527 2.15363,3.6084 7.53057,-7.94418 4.30726,0.35656 -0.71312,-4.69234 -6.81745,-1.44051 4.66382,-16.97231 6.14711,-5.81907 0,0 z\",\"name\":\"Russian Federation\"},\"mv\":{\"path\":\"m 436.59252,455.60965 0.42788,3.72249 2.38183,0.87001 0.42787,-3.28036 -3.23758,-1.31214 0,0 m 3.0379,7.87286 -0.21393,4.59251 1.74002,0.87001 1.52608,-3.06643 -3.05217,-2.39609 0,0 m 0.44214,8.97108 -1.52608,1.52608 1.74002,1.52608 2.16789,-1.52608 -2.38183,-1.52608 0,0 z\",\"name\":\"Maldives\"},\"lk\":{\"path\":\"m 471.02206,437.48208 0.35657,3.87938 0.35656,2.82397 -2.09658,0.35656 1.05542,6.34679 3.152,1.76854 4.89202,-2.82396 -1.39772,-6.68909 0.35656,-2.4674 -4.54972,-4.22169 -2.12511,1.0269 0,0 z\",\"name\":\"Sri Lanka\"},\"mn\":{\"path\":\"m 461.40918,240.8315 8.30074,-11.01061 9.96945,4.60677 6.77466,1.81133 8.30074,-7.61614 -5.63366,-4.15037 3.70823,-5.23432 11.06766,3.90791 3.83659,6.28974 6.93155,0.18541 3.62266,-2.6956 7.45926,-0.29951 1.62592,2.76691 12.39406,0.62755 7.84435,-8.00123 10.85372,1.14099 -0.62755,10.89651 4.74939,1.08395 5.83334,-2.65282 6.17564,3.05216 -0.14262,1.54035 -4.47841,0.12836 -4.66382,9.78404 -3.62266,0.35656 -14.09129,18.41281 -14.39081,6.34679 -8.9996,0.69886 -7.47352,-4.82071 -9.55584,5.10596 -9.41321,-2.9238 -2.66708,-6.83171 -17.82806,-1.2551 -9.12796,-15.47475 -4.43562,-0.28525 -2.29625,-5.49104 0,0 z\",\"name\":\"Mongolia\"},\"kp\":{\"path\":\"m 610.42319,275.20399 2.62429,1.09821 0.7987,9.18501 5.20579,0.29951 4.90628,-5.74776 -1.69723,-1.51182 0.19967,-6.16138 4.50694,-5.44825 -2.29626,-4.13611 1.49756,-1.71149 0.82722,-4.27873 -2.61003,-1.18379 -2.22494,1.12674 -2.75265,8.35779 -4.44988,-0.38509 -5.14874,6.0758 0.61328,4.42136 0,0 z\",\"name\":\"North Korea\"},\"kr\":{\"path\":\"m 624.77121,280.80913 8.81419,7.18827 1.49756,6.96008 -0.29951,3.73676 -4.30726,4.84923 -3.70824,0.19967 -4.20742,-9.08518 -1.59739,-4.33578 1.69723,-1.31214 -0.39935,-1.81133 -2.09658,-0.94132 4.60677,-5.44826 0,0 z\",\"name\":\"South Korea\"},\"kz\":{\"path\":\"m 322.90658,267.14571 5.84761,-2.49593 6.53219,-0.2282 0.4564,9.98371 h -3.82233 l -2.9238,4.76366 3.82233,6.34679 5.63367,3.18052 0.51344,3.63693 2.06806,-0.6846 1.91117,-2.26773 3.152,0.6846 1.58313,3.18052 h 4.05053 v -4.07906 l -2.48166,-7.25958 -1.12674,-5.89039 7.20254,-3.18052 9.6842,1.58313 6.0758,6.11859 13.73473,-1.35494 7.65893,10.88225 8.99961,0.4564 2.48166,-4.07906 3.152,-0.6846 0.4564,-4.53546 4.72087,-0.2282 2.48166,2.95233 2.48167,-5.89039 21.3794,2.95233 3.59414,-4.76366 -6.0758,-7.48778 8.10107,-17.68543 6.5322,0.45639 4.50693,-10.88224 -8.9996,-0.9128 -5.17727,-4.99185 -14.26245,1.65444 -18.37002,-17.75674 -6.47515,5.74776 -19.63939,-8.91402 -24.08927,11.79504 -0.67033,8.38631 5.63366,6.57499 -10.98208,6.20416 -14.24818,-0.31377 -2.98085,-4.37857 -11.16749,-0.61329 -10.58274,6.80319 -0.2282,9.29911 9.85535,7.91566 0,0 z\",\"name\":\"Kazakhstan\"},\"tm\":{\"path\":\"m 347.38094,294.20157 -0.88427,3.75102 h -5.91892 v 5.07743 l 6.36105,4.19316 -1.96822,5.74776 v 2.65282 l 2.63856,0.44213 3.50856,-4.63529 7.90139,-1.76854 16.88673,6.40383 0.21394,4.6353 9.42748,0.88427 10.52568,-11.0534 -1.31214,-3.53708 -7.01713,-1.54035 -19.73922,-12.82193 -0.88427,-4.6353 h -7.45926 l -3.29462,6.1899 h -3.29463 l -5.69071,0.0143 0,0 z\",\"name\":\"Turkmenistan\"},\"uz\":{\"path\":\"m 397.39933,310.56059 4.39283,0.2282 v -7.51631 l -4.16463,-2.42461 7.01712,-8.84272 h 2.85249 l 2.85249,3.32315 7.45926,-2.86675 -10.31175,-3.53709 -0.39935,-2.13936 -2.45314,0.59902 -2.41035,4.19316 -10.39733,-0.3423 -7.6304,-10.79667 -13.4067,1.32641 -6.38957,-6.33253 -8.84272,-1.49756 -6.4181,2.61003 3.7225,12.3798 0.0428,4.16464 2.70986,0.0571 3.32315,-6.33253 8.84271,0.1141 1.31215,4.86349 18.95479,12.57948 7.33089,1.68297 2.01101,4.50693 0,0 z\",\"name\":\"Uzbekistan\"},\"tj\":{\"path\":\"m 399.21066,300.26311 5.86186,-7.27385 h 2.21068 l 0.77017,1.62592 -2.70986,1.96821 v 1.62592 l 1.7828,1.28362 8.57173,0.51345 2.79544,-1.19804 1.26936,0.25672 0.85575,2.73839 5.09169,0.51345 2.55298,5.3912 -0.77018,1.62592 -1.01263,0.0856 -1.01263,-2.05379 -2.21068,-0.17115 -3.82234,0.51345 -0.25672,3.59414 -3.82233,-0.25673 0.17114,-4.53545 -2.79543,-2.73839 -4.25021,3.50856 0.0856,2.31051 -3.73676,1.28362 h -2.21068 l 0.17115,-7.95844 -3.57987,-2.65281 0,0 z\",\"name\":\"Tajikistan\"},\"kg\":{\"path\":\"m 408.6524,282.24964 -0.44214,3.6084 0.35656,2.22494 12.40833,4.16463 -10.89651,4.39283 -1.24083,-1.02689 -2.35331,1.51182 0.1141,0.82722 1.2551,0.5705 7.64467,0.19967 3.87938,-1.16952 4.9776,-6.27547 6.23269,1.08394 7.5163,-10.41158 -20.11004,-2.73839 -2.78118,6.74613 -3.50856,-3.76528 -3.05216,0.0571 0,0 z\",\"name\":\"Kyrgyz Republic\"},\"af\":{\"path\":\"m 376.29091,321.95628 2.26773,17.77101 5.64793,1.24083 0.52771,3.19479 -4.05054,3.3802 7.54484,6.09006 14.66179,-5.2771 1.16952,-6.24695 9.2278,-5.76203 3.53709,-13.34965 2.63855,-2.83823 -2.73839,-4.76365 8.92829,-5.51957 -1.141,-1.59739 -4.12184,0.25672 -0.37083,3.79381 -5.53382,-0.0571 -0.0998,-5.06316 -1.78281,-2.12511 -2.99511,2.72413 0.0856,2.49593 -4.52119,1.71149 -8.34353,-0.52771 -10.83946,11.3529 -9.69846,-0.88427 0,0 z\",\"name\":\"Afghanistan\"},\"pk\":{\"path\":\"m 389.14137,354.46039 3.70824,5.50531 -0.35656,2.83822 -4.93481,1.95396 -0.35656,4.62103 h 5.64793 l 1.93969,-1.5974 h 10.75388 l 9.69847,8.52895 1.24083,-4.09332 h 7.23106 l 0.17115,-5.14875 -7.40221,-7.10269 1.58313,-3.90791 7.58762,-0.52771 10.22617,-21.32236 -5.64793,-4.43562 -2.11084,-7.45926 13.749,-1.24083 -8.11533,-11.55258 -4.32152,-1.16952 -1.76855,2.13937 -1.3264,0.0998 -8.11533,5.14875 2.65281,4.44988 -2.99511,3.19479 -3.70824,13.67768 -9.17075,5.86187 -1.24083,6.40383 -14.61901,5.13448 0,0 z\",\"name\":\"Pakistan\"},\"in\":{\"path\":\"m 457.38717,444.55625 6.5322,-3.19479 3.87938,-14.03424 -0.17115,-17.22903 22.22089,-23.98943 v -5.69072 l 4.57824,-1.78281 -0.17114,-6.57498 -4.93481,-9.59863 2.82396,-5.14874 6.17564,5.69072 7.92992,0.35656 v 3.19478 l -2.4674,2.66708 0.52771,1.42625 4.23594,0.17115 0.88428,4.79218 h 1.24083 l 3.18052,-5.69072 1.58313,-14.91851 5.29137,-3.73677 0.17115,-5.14874 -2.11084,-4.09332 -3.35168,-0.17115 -13.12144,8.67157 0.82722,5.57661 -9.21354,-0.0285 -3.25184,-3.97922 -1.76854,0.2282 0.59902,5.53382 -19.92463,-1.42624 -12.35128,-5.5053 -0.65607,-6.77466 -8.22943,-5.10596 -0.0998,-10.51142 -5.64793,-6.46089 -12.97882,1.24083 1.41198,5.64793 6.36105,5.14874 -10.99634,22.50614 -7.35942,0.55624 -1.21231,2.70986 7.24532,6.70335 -0.35656,6.77466 -7.40221,-0.1141 -0.7987,3.36594 6.14712,-0.27099 0.17115,2.66708 -4.4071,2.31051 2.82396,5.33416 5.46252,1.7828 3.35167,-2.48166 1.58314,-4.43562 1.93969,-0.88427 2.29625,2.31051 -0.69886,5.69072 -1.58313,2.66708 0.35656,4.62103 23.4332,48.63493 0,0 z\",\"name\":\"India\"},\"np\":{\"path\":\"m 457.68668,344.07733 0.65607,6.09007 11.52406,5.22005 18.46986,1.3692 -0.69886,-4.46415 -12.33701,-3.39446 -10.46864,-6.23269 -7.14548,1.41198 0,0 z\",\"name\":\"Nepal\"},\"bt\":{\"path\":\"m 492.21606,351.9502 2.21067,3.02364 7.47353,0.0571 -0.75591,-4.13611 -8.92829,1.05542 0,0 z\",\"name\":\"Bhutan\"},\"bd\":{\"path\":\"m 492.45852,359.12421 -1.86838,3.3802 4.84923,9.21354 0.14262,7.18827 0.88427,1.92543 5.69072,0.0998 3.22331,-3.09495 2.33904,1.41198 0.47066,4.37857 1.86838,-1.16952 0.1141,-5.59088 -1.56887,-0.18541 -0.9841,-4.74939 -3.96496,-0.14263 -0.98411,-2.63855 2.42461,-3.23758 0.0428,-1.59739 h -7.04565 l -5.63366,-5.19153 0,0 z\",\"name\":\"Bangladesh\"},\"mm\":{\"path\":\"m 540.76542,431.2066 -3.9507,-6.33252 2.86675,-4.02201 -2.70986,-4.97759 -2.55298,-0.48493 -0.48493,-8.35779 -3.82233,-7.40221 -1.11247,1.76855 -2.55298,4.33578 -3.19479,0.48492 -1.59739,-2.09658 -0.7987,-5.63366 -2.39609,-4.50694 -9.75551,-9.19927 2.39609,-1.58313 0.44214,-6.66056 3.56561,-5.99023 1.54034,-14.90425 5.16301,-3.52283 0.17115,-5.43399 3.09495,1.0269 4.87775,7.05991 -3.62266,7.75877 2.43888,6.09006 6.03301,2.36756 1.09821,6.63204 8.10107,1.2551 -2.2392,3.86512 -10.21191,4.02201 -1.11247,6.58925 7.50204,9.64141 0.31377,5.14874 -1.75428,1.76854 0.15689,1.61166 5.59088,8.20091 0.15689,8.51468 -1.64018,2.96658 0,0 z\",\"name\":\"Myanmar\"},\"th\":{\"path\":\"m 541.6069,383.88381 4.62103,5.94744 v 7.23106 l 1.59739,0.7987 7.34516,-3.53709 1.44051,0.48493 8.7714,10.12633 -0.31377,6.91729 -2.86675,-0.48493 -2.55298,-1.61165 -1.91117,0.15688 -3.35167,5.61941 0.64181,3.05216 2.70986,1.44051 -0.15688,3.3802 -1.91117,0.96984 -6.54646,-4.50693 v -4.02201 l -2.70987,-0.15689 -1.11247,1.76855 -0.5705,17.9992 4.23595,7.73025 7.50205,7.23106 -0.31378,2.09657 -3.99348,-0.15688 -3.66545,-5.46252 h -3.8366 l -4.79218,-3.86512 -1.44051,-4.02201 2.06806,-3.3802 0.71312,-3.05216 2.25347,-3.99349 -0.0998,-9.18501 -5.5053,-7.95844 -0.2282,-0.96985 1.7828,-1.79707 -0.41361,-6.31826 -7.33089,-9.28485 0.85574,-5.34842 9.08518,-3.8366 0,0 z\",\"name\":\"Thailand\"},\"kh\":{\"path\":\"m 556.51115,425.2449 5.83334,6.23269 10.85372,-8.04402 0.95559,-12.69357 -5.60514,3.86512 -2.90954,-1.62592 -3.9507,-0.52771 -2.21068,-1.55461 -1.06968,0.0571 -2.89528,4.7494 0.47066,2.19641 2.93807,1.64018 -0.35656,4.46415 -2.0538,1.24083 0,0 z\",\"name\":\"Cambodia\"},\"la\":{\"path\":\"m 549.36567,373.12993 -3.45151,1.75428 -2.86675,8.35779 4.79218,6.10433 -0.7987,6.74614 0.7987,0.32803 7.9727,-3.86512 10.69684,11.95193 -0.25673,7.53057 2.32478,1.25509 5.74777,-4.66382 -0.47066,-3.69397 -16.58723,-15.76 0.15689,-2.41035 2.06805,-1.44051 -1.4405,-4.02201 -6.86024,-1.12673 -1.82559,-7.04565 0,0 z\",\"name\":\"Lao People's Democratic Republic\"},\"vn\":{\"path\":\"m 563.04335,432.3476 1.69723,2.66708 0.31378,3.05216 4.46414,0.48492 5.41973,-7.23106 5.10596,-1.4405 2.70986,-7.38795 -1.26936,-11.89488 -5.26284,-7.23106 -5.54809,-4.43562 -7.05991,-12.12307 5.06317,-8.4719 -7.24532,-8.315 -5.80482,-0.25673 -5.22005,2.80971 1.5546,6.71761 6.96008,1.22657 1.86838,5.17726 -2.45314,1.5974 0.15688,1.28362 16.3305,15.97394 0.64181,4.69234 -0.98411,14.83294 -11.43848,8.27222 0,0 z\",\"name\":\"Vietnam\"},\"ir\":{\"path\":\"m 312.86582,308.97746 -1.74002,1.81133 0.17115,2.86675 2.1679,3.0379 7.68745,8.41484 -1.16952,3.36594 h -1.34067 l -0.67033,3.36594 4.35004,5.56235 4.00775,0.3423 8.02976,11.11044 4.50693,0.3423 3.50856,2.52445 0.17115,5.04891 13.87736,8.0868 h 5.17726 l 3.18053,-2.6956 4.00775,-0.17115 2.33904,5.39121 14.98982,2.08231 0.44214,-5.5053 4.96333,-1.79707 0.2282,-1.96822 -3.9507,-5.3912 -8.79992,-7.07417 4.62103,-4.20742 -0.32804,-1.85412 -5.79055,-0.89853 -2.45314,-19.53955 -0.28525,-4.49267 -15.70295,-6.00449 -6.96007,1.56887 -3.89365,4.77792 -3.45151,-0.2282 -0.99837,0.84148 -7.68746,-0.49918 -9.69846,-7.07418 -3.6084,-3.95069 -1.65444,0.39935 -2.98086,3.40872 -5.26284,-0.99837 0,0 z\",\"name\":\"Iran\"},\"tr\":{\"path\":\"m 297.24845,296.48356 -3.18053,3.36593 -11.6952,-0.34229 -7.01713,-4.20743 -6.84597,-0.17114 -7.85861,5.56235 -7.35942,0.3423 -0.67033,4.20742 h -8.35779 l -3.33742,3.0379 v 1.68297 l 2.01101,1.68297 v 1.85411 l -0.84148,2.19642 0.84148,1.85412 2.68134,-1.34067 2.68134,2.86675 -0.67034,2.02527 -0.99837,1.35493 1.49756,1.68297 7.35942,1.51182 5.17727,-2.19642 v -3.19479 l 2.51019,0.49919 6.01875,3.53708 6.51794,-1.01263 2.83822,-2.6956 1.83986,0.67033 v 3.0379 h 2.51019 l 2.16789,-4.20742 19.05462,-2.02526 8.31501,-1.01264 -2.19642,-2.88101 -0.0428,-3.89365 1.6687,-1.99674 -6.0758,-4.87776 0.32804,-4.20742 h -3.33742 l -5.53382,-2.70986 0,0 m -50.8884,0.72738 -0.2282,5.06317 4.42135,-1.35493 2.02527,-1.35493 -0.59902,-2.19642 -2.09658,-1.66871 -3.52282,1.51182 0,0 z\",\"name\":\"Turkey\"},\"om\":{\"path\":\"m 353.84182,398.67397 10.53995,-6.0758 1.86838,-8.91403 -2.31052,-1.32641 0.95559,-9.55583 2.011,-1.16953 2.15363,3.3802 12.82194,6.70335 v 3.7225 l -15.5318,22.8627 -7.14549,0.24246 -5.36268,-9.86961 0,0 z\",\"name\":\"Oman\"},\"ae\":{\"path\":\"m 347.60914,375.99668 1.24083,4.96333 14.06277,1.24084 0.98411,-10.18339 2.70986,-1.48329 0.74165,-3.7225 -4.43562,1.24083 -4.93481,7.45926 -10.36879,0.48492 0,0 z\",\"name\":\"United Arab Emirates\"},\"qa\":{\"path\":\"m 345.64092,367.55332 -0.74165,5.71924 2.19642,1.6687 1.99674,-0.18541 0.74165,-7.20253 -1.72576,-1.24084 -2.4674,1.24084 0,0 z\",\"name\":\"Qatar\"},\"kw\":{\"path\":\"m 332.3198,350.65232 -3.20905,-1.74002 -2.22495,2.23921 0.24247,4.4784 5.17726,1.98248 0.0143,-6.96007 0,0 z\",\"name\":\"Kuwait\"},\"sa\":{\"path\":\"m 333.33243,359.30962 9.99797,13.93441 3.22332,2.56724 1.4405,6.24695 15.38918,1.21231 1.74002,0.9128 -1.72576,7.70172 -10.11207,5.9617 -14.79016,4.4784 -7.88713,7.70172 -9.37042,-5.46251 -5.67646,4.96333 -7.90139,-12.90751 -5.41973,-2.48167 -1.96822,-2.98085 v -6.46089 l -19.72496,-23.8468 -0.74164,-4.22169 h 5.67645 l 6.90302,-5.9617 0.24246,-2.98085 -1.96821,-1.98248 3.95069,-3.22331 8.38632,0.49918 14.30523,11.92341 8.44337,-0.38509 0.54197,2.08232 7.04565,2.70986 0,0 z\",\"name\":\"Saudi Arabia\"},\"sy\":{\"path\":\"m 280.09073,324.92287 -0.49919,3.62266 4.02201,1.68297 -0.17115,10.04076 4.02201,-0.0856 4.02201,-3.0379 1.51182,-0.25673 9.12796,-7.25958 1.83986,-10.53995 -18.24167,1.85412 -1.92543,4.22168 -3.70823,-0.24246 0,0 z\",\"name\":\"Syrian Arab Republic\"},\"iq\":{\"path\":\"m 305.24968,319.07527 -2.22494,10.99634 -9.21354,7.6732 0.58476,3.62266 8.9996,0.61328 14.33376,11.66668 8.01549,-0.2282 0.21394,-2.6956 2.93806,-3.152 4.10758,2.32478 0.54198,-0.51345 -7.94419,-10.56847 -3.76528,-0.2282 -5.00612,-6.43236 0.99837,-4.73513 1.52608,-0.19968 0.52771,-2.09658 -6.81744,-7.174 -7.81582,1.12673 0,0 z\",\"name\":\"Iraq\"},\"jo\":{\"path\":\"m 283.27125,341.53862 -3.50856,12.23717 -0.15689,1.86839 h 5.51957 l 6.17564,-5.44826 0.15688,-2.06805 -2.52445,-2.58151 4.5212,-3.75102 -0.65608,-3.48003 -1.24083,0.28524 -3.76528,2.69561 -4.5212,0.24246 0,0 z\",\"name\":\"Jordan\"},\"lb\":{\"path\":\"m 279.42039,329.64374 0.0856,2.78118 -1.16952,4.22168 4.022,0.3423 0.25673,-5.99023 -3.19479,-1.35493 0,0 z\",\"name\":\"Lebanon\"},\"il\":{\"path\":\"m 278.1653,337.65923 -2.25347,7.17401 2.9238,8.60026 3.35168,-12.56522 v -2.6956 l -4.02201,-0.51345 0,0 z\",\"name\":\"Israel\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.australia.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'australia_en', {\"width\":950,\"height\":550,\"paths\":{\"pg\":{\"path\":\"m 484.34788,3.4935749 -1.05721,69.8328711 10.05776,-0.54289 13.22939,-15.458095 11.11497,0.542891 7.1433,6.400394 2.37157,19.715499 22.74426,12.000739 5.82893,-2.142989 v -7.200443 l -18.25827,-15.200936 -9.00055,-20.801281 7.1433,-3.457356 -5.28604,-11.457848 -10.57208,-0.257159 -2.65731,-12.257897 -28.0303,-18.9154509 -4.77172,-0.8000492 0,0 m 79.20488,2.0286963 -2.51444,3.5716485 13.7437,12.1721783 1.88583,7.143297 3.74309,-0.428598 0.4286,-7.343309 -4.17169,-3.771661 -13.11509,-11.3435558 0,0 m 6.88614,17.2296328 -2.71446,0.62861 -1.65724,7.343309 -5.20032,3.371636 -15.62954,2.743026 0.62861,5.886077 16.45816,-0.828622 10.42921,-6.514687 -0.62861,-11.343556 -1.68581,-1.285793 0,0 m 18.54399,12.800788 3.54308,9.85775 6.25753,6.086089 1.88583,-1.685818 -0.62861,-6.514687 -7.08615,-8.60053 -3.97168,0.857196 0,0 z\",\"name\":\"Papua New Guinea\"},\"au\":{\"path\":\"m 222.64605,231.19331 -1.00006,72.51875 -11.14354,8.17193 -1.00007,7.1433 15.20094,10.20063 37.5166,-7.1433 h 19.25833 l 7.08615,-10.2292 42.57405,-8.17193 30.40187,9.20056 -2.0287,12.2579 4.05739,12.2579 23.31573,-4.08597 1.00006,6.11467 -15.20094,11.22926 5.05746,4.08596 11.14354,-4.08596 -3.02876,33.71636 21.28703,16.34386 12.17217,-4.08596 6.08609,6.11466 35.4879,-5.1146 33.45921,-54.14619 12.17217,-3.05733 24.31579,-44.94563 6.08609,-38.80239 -15.20094,-19.40119 6.08609,-4.08597 -12.17218,-37.80232 -13.17224,-9.20057 2.0287,-51.06029 -12.17218,-9.20056 -3.02876,-28.601766 h -6.08609 l -20.28696,67.404146 -11.14354,1.02864 -25.34442,-25.54443 14.20087,-37.80233 -26.34448,-5.114599 -29.40181,8.171929 -8.11478,23.48716 -13.17224,3.05733 -1.00006,-16.34386 -53.7176,32.68773 1.00006,12.2579 -8.11478,11.22926 h -20.28696 l -43.60269,18.37256 -15.22951,40.97395 0,0 m 184.49708,195.09773 -5.05746,20.42983 1.00006,14.28659 15.20094,-1.02863 17.22963,-26.5445 -28.37317,-7.14329 0,0 z\",\"name\":\"Australia\"},\"nz\":{\"path\":\"m 656.52991,385.43138 3.02876,33.71636 -4.05739,15.31523 -15.20094,11.22926 1.00006,13.28653 v 14.2866 l 4.05739,5.1146 41.57399,-35.74506 v -8.17193 H 676.7883 l -14.20087,-48.00296 -6.05752,-1.02863 0,0 m -30.40187,73.54738 8.11478,15.31523 -22.31566,21.45847 -2.02869,11.22926 -15.20094,2.0287 -25.34442,23.48716 -23.31572,-11.22927 -2.02869,-8.17193 42.57405,-18.37256 39.54529,-35.74506 0,0 z\",\"name\":\"New Zealand\"},\"nc\":{\"path\":\"m 638.30022,209.73485 -1.00006,5.1146 13.17223,18.37256 7.08616,3.05733 1.00006,-7.1433 -20.25839,-19.40119 0,0 z\",\"name\":\"New Caledonia\"},\"sb\":{\"path\":\"m 606.26967,50.23931 0.4286,6.514687 3.97167,3.771661 3.74309,-2.314428 -3.34306,-6.943285 -4.8003,-1.028635 0,0 m 5.00031,16.172425 -3.34306,3.571648 3.54307,6.514687 4.17169,1.25722 -0.20001,-4.40027 -4.17169,-6.943285 0,0 m 8.14336,-3.771661 2.91446,7.143297 5.62892,6.714699 3.11448,-5.028881 -4.17169,-7.143297 -7.48617,-1.685818 0,0 m 14.6009,10.714946 1.65724,8.829115 3.97168,5.457479 3.34306,-6.914712 -8.97198,-7.371882 0,0 m 4.57171,19.744072 -1.45723,2.514441 4.80029,6.314677 3.34306,0.20001 -2.08584,-8.200505 -4.60028,-0.828623 0,0 m -10.62923,12.572208 -5.00031,2.31442 4.3717,6.08609 3.74309,-2.11441 -3.11448,-6.2861 0,0 z\",\"name\":\"Solomon Islands\"},\"vu\":{\"path\":\"m 678.95986,143.30218 -3.54307,4.74315 1.4858,5.34319 1.77154,1.20007 3.22877,-4.17168 -2.94304,-7.11473 0,0 m 1.77154,14.54376 0.28573,3.85738 3.82881,1.20007 2.65731,-1.48581 -2.65731,-4.17168 -4.11454,0.60004 0,0 m 5.60035,34.45926 -1.77154,2.68588 2.6573,2.97161 4.42885,-1.4858 -5.31461,-4.17169 0,0 z\",\"name\":\"Vanuatu\"},\"fj\":{\"path\":\"m 758.25046,186.36198 -3.54308,4.74315 -0.28573,5.34318 4.11454,4.17169 -0.28573,-14.25802 0,0 z\",\"name\":\"Fiji\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.europe.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'europe_en', {\"width\":950,\"height\":550,\"paths\":{\"ee\":{\"path\":\"m 579.52752,247.70418 -14.10713,-0.50382 -8.94292,5.46651 -0.12596,4.0558 5.79401,5.46652 18.01178,3.04815 -0.62978,-17.53316 0,0 m -27.73563,10.02615 -3.90466,-0.12596 -2.26721,2.29241 1.63743,2.41836 3.90465,0.25192 2.01531,-2.92219 -1.38552,-1.91454 0,0 z\",\"name\":\"Estonia\"},\"pt\":{\"path\":\"m 213.92602,432.50764 -3.42602,3.45121 6.14668,3.45121 0.68017,-4.81154 -3.40083,-2.09088 0,0 m 18.46523,-2.06569 -4.10618,2.74586 3.42602,2.74585 5.46651,-1.38552 -4.78635,-4.10619 0,0 m 2.72067,9.64828 -2.0405,5.51689 2.72066,3.45121 3.42602,-2.74585 -4.10618,-6.22225 0,0 m 16.39954,11.0086 -1.36033,3.45121 2.04049,2.06569 5.46652,-3.45121 -6.14668,-2.06569 0,0 m 51.94448,30.27995 -2.72066,3.45121 2.72066,3.45121 4.10619,-2.06568 -4.10619,-4.83674 0,0 m 57.31023,-63.43172 -1.56186,21.79049 -4.45886,4.03061 0.45345,2.46875 3.12372,5.16421 -2.01531,6.29783 3.35045,1.13361 7.8093,-0.90689 -0.45344,-6.29782 5.11384,-29.19673 -1.10842,-4.03061 -10.25287,-0.45345 0,0 z\",\"name\":\"Portugal\"},\"es\":{\"path\":\"m 322.19828,524.98494 -4.40848,2.54433 2.04049,2.06568 2.36799,-4.61001 0,0 m -15.31632,0.47864 -5.46651,1.38552 2.72066,4.13138 h 4.10618 l -1.36033,-5.5169 0,0 m -12.99872,-4.13138 -3.42601,3.45121 4.78635,4.13138 2.72066,-6.19706 -4.081,-1.38553 0,0 M 404.67463,402.22769 H 372.5809 l -6.47417,-2.9222 -3.12372,0.22673 -3.7787,7.85968 1.33514,8.08642 12.26817,1.1336 1.56186,5.16422 -5.34056,30.10362 0.22673,5.39094 8.691,4.71078 10.02614,0.68016 20.05228,-4.9375 9.79942,-12.34374 0.22673,-12.57046 17.382,-15.71938 0.8817,-6.9528 -15.82015,-0.22672 -15.82014,-7.68335 0,0 m 32.09373,30.75859 -4.00542,1.36033 0.8817,3.60235 h 5.794 l 2.44356,-2.69547 -5.11384,-2.26721 0,0 z\",\"name\":\"Spain\"},\"is\":{\"path\":\"m 298.87112,181.32508 -4.93749,-2.79624 -6.65051,4.20695 -5.71843,5.29018 0.15115,2.94738 7.40625,0.93208 -0.45345,5.29018 -2.61989,2.64508 0.62978,1.71301 7.40624,0.47864 v 8.56504 l 10.65593,1.86416 6.32302,3.57717 7.10395,0.30229 12.19259,-6.0711 9.42155,-12.44451 0.15115,-8.4139 -5.71843,-4.83673 -4.78635,-4.0558 -2.16645,1.56186 -3.24968,4.20695 -3.70312,-0.47864 -3.70312,-4.0558 -4.78635,0.45345 -6.9528,5.76881 -4.18176,4.50924 -2.3176,-2.0153 -0.15115,-4.98788 2.3176,-1.56187 -1.66263,-2.5947 0,0 z\",\"name\":\"Iceland\"},\"no\":{\"path\":\"m 505.18796,21.738124 -4.15657,-4.181757 -9.22002,4.484053 h -16.92856 l -2.67028,9.874994 9.49713,8.388706 4.15657,-0.604591 5.94514,-10.17729 5.03827,3.602358 -3.57717,7.179523 -1.78858,10.479586 4.15656,6.574932 8.91773,-14.963639 11.588,-14.081943 -4.45886,-3.879462 -6.49936,-2.69547 0,0 m 5.03826,-17.9614046 -7.43143,6.8772276 4.45886,6.877228 h 8.01084 l 3.27487,4.484054 9.79942,5.088644 11.2857,-6.574932 7.73374,-6.574932 -2.67028,-5.3909405 -7.73374,-4.4840534 -5.64285,5.0886449 -3.85427,-4.7863491 -2.97257,0.3022957 -3.85428,8.3887064 -5.64285,-5.6932361 -0.60459,-3.8794619 -4.15657,0.2771044 0,0 m 16.92856,30.8341646 -5.94515,5.390941 -5.03826,3.879462 2.36799,4.181757 4.76115,1.486288 7.73374,-3.602358 3.57716,-4.484053 -3.27487,-5.390941 -4.18176,-1.461096 0,0 m 46.55355,108.498976 5.08864,-3.72831 -0.45344,-4.18176 -3.22449,-1.86416 0.45344,-5.11383 h 2.77105 v -2.79624 l -12.01626,-3.24968 -18.01178,1.86416 -1.83897,7.91007 -4.15657,-1.38552 -2.77104,-4.66039 -8.79177,0.45344 -0.93208,8.84215 -4.15656,1.86416 -2.3176,-4.6604 -18.49043,14.88807 3.70313,4.18176 -6.92761,3.24967 -15.71938,31.18685 -5.54209,3.72831 0.45344,2.79624 5.54209,2.79623 -1.38552,6.04592 -9.24521,-0.47864 -2.77105,-3.24968 -5.99553,6.978 -3.70312,2.79623 -0.93208,6.52455 -3.22449,1.86416 -8.31313,1.86416 -4.15657,13.04909 2.77105,21.41262 3.22449,9.77423 3.70312,3.72831 8.31313,-0.45344 12.01626,-11.63839 4.61001,-7.91007 1.38552,11.63839 7.85969,-13.95599 0.45344,-39.12211 6.39859,-4.03061 1.91454,-21.58895 19.39731,-27.93716 9.24521,-3.24968 4.15657,-5.11384 13.85522,3.24968 6.92761,4.18176 2.3176,-11.63839 11.56281,-6.97799 6.95281,12.11702 0,0 z\",\"name\":\"Norway\"},\"ge\":{\"path\":\"m 674.47357,400.11162 8.23756,10.75669 10.27805,4.73596 6.32302,-0.0252 10.85746,-2.94738 2.72066,-4.25733 -32.11892,-12.01626 -6.29783,3.75351 0,0 z\",\"name\":\"Georgia\"},\"am\":{\"path\":\"m 710.39638,414.54624 12.09183,15.76976 -3.55198,4.15656 -8.56504,-1.48628 -10.63073,-9.52232 0.5794,-6.24744 10.07652,-2.67028 0,0 z\",\"name\":\"Armenia\"},\"az\":{\"path\":\"m 714.65371,409.07972 -2.54432,4.33291 11.86511,15.56823 4.13137,-1.33514 6.80166,7.12914 2.94738,-12.49489 7.38105,1.18399 -0.30229,-3.57717 -12.14221,-10.63073 -2.3176,6.24745 -15.82015,-6.42379 0,0 z\",\"name\":\"Azerbaijan\"},\"cy\":{\"path\":\"m 643.61421,464.8029 3.09854,2.24203 -9.59789,9.09406 -4.58482,-0.15115 -3.40083,-2.39317 0.45344,-4.45886 6.95281,-0.45345 7.07875,-3.87946 0,0 z\",\"name\":\"Cyprus\"},\"gb\":{\"path\":\"m 399.03178,261.35787 -4.61001,6.978 1.83896,2.79623 h 10.63074 v 4.6604 l -2.77105,3.72831 1.83897,9.77423 5.99553,11.63838 4.61001,10.70631 7.38105,2.79624 3.22449,5.59247 -0.45344,5.11383 -4.61001,2.79624 -0.45345,2.3176 3.22449,1.86416 -2.77104,3.72831 -6.47417,2.79624 -12.4697,-1.38553 -19.4225,8.84215 -6.47417,-3.24967 18.49043,-10.70631 -2.3176,-1.38552 -9.69866,-0.93208 5.99553,-8.84215 0.93208,-7.45663 7.85969,-0.93208 -1.38552,-14.43462 -9.24521,-0.45344 -2.77105,-3.24968 0.45345,-10.70631 -5.54209,0.45344 5.54209,-18.61638 10.17729,-7.45662 3.27487,3.22448 0,0 m -19.39731,31.21204 -8.31314,0.93208 -0.45344,7.45663 5.54209,3.72831 5.99553,-1.38552 2.3176,-4.18176 -5.08864,-6.54974 0,0 z\",\"name\":\"United Kingdom\"},\"ie\":{\"path\":\"m 382.38032,305.36709 -2.29241,15.11479 -20.32939,7.45663 h -6.47416 l -4.61001,-3.24968 v -2.79624 l 10.17729,-6.52454 -2.77105,-5.59248 0.45344,-7.91007 8.79177,0.45345 4.03061,-9.47194 -0.52902,8.4139 6.82685,5.41613 6.72608,-1.30995 0,0 z\",\"name\":\"Ireland\"},\"se\":{\"path\":\"m 529.01894,149.25654 4.9375,4.55963 h 9.24521 l 5.08864,9.77423 1.38553,16.75222 -12.4697,8.84215 v 8.84215 l -8.79177,12.11702 -5.08865,0.45344 -6.92761,11.63839 0.45345,11.18494 12.01625,8.84215 -0.93208,5.11384 -4.61001,6.97799 -6.92761,6.04591 0.45345,20.0271 -10.63074,3.72831 -3.70312,7.91007 h -5.08864 l -2.77105,-13.95598 -11.56281,-17.73469 9.49713,-15.89571 0.65497,-39.27326 6.54974,-3.60236 1.58705,-22.47064 18.66676,-26.72799 8.96811,-3.14891 0,0 m 1.93973,114.84719 -5.31536,4.20695 2.67027,6.17187 4.71078,-4.58482 -2.06569,-5.794 0,0 z\",\"name\":\"Sweden\"},\"fi\":{\"path\":\"m 551.86746,180.393 5.2146,2.29241 3.22449,6.04591 -3.22449,4.18176 -16.17282,17.6843 -2.77104,9.32079 3.70312,13.50254 12.4697,9.32079 16.62626,-7.91008 13.40178,-1.86415 12.4697,-20.0271 -9.24521,-21.89124 -8.79177,-20.95918 1.38552,-13.50254 -5.54209,-0.93208 -1.4359,-9.8498 -7.45663,-12.1674 -8.26275,5.71843 -3.24968,13.27582 -8.76657,-5.26499 -12.1926,-2.97257 -2.72066,3.1741 4.68558,4.23214 8.53986,-0.15115 6.87723,11.10937 1.23437,17.63392 0,0 z\",\"name\":\"Finland\"},\"lv\":{\"path\":\"m 580.28326,267.12668 -17.25605,-2.79623 0.37787,9.64827 15.99648,9.77423 6.54974,-1.91454 -0.37787,-7.35586 -5.29017,-7.35587 0,0 z\",\"name\":\"Latvia\"},\"lt\":{\"path\":\"m 561.99437,275.51539 -5.41613,-0.12596 -7.43144,7.10395 h -6.29783 l 0.37787,8.89254 -3.7787,6.97799 13.60331,0.12596 3.90465,-0.50383 3.90466,4.71078 8.94291,-0.37787 8.56505,-10.90784 -0.50383,-6.47417 -15.87052,-9.42155 0,0 z\",\"name\":\"Lithuania\"},\"by\":{\"path\":\"m 561.6165,304.71212 3.77869,6.22225 -1.51147,4.96269 0.25191,3.92985 1.38552,4.71077 7.80931,-4.43367 9.69865,0.25191 6.80166,2.79624 h 17.25604 l 5.03827,-12.06664 3.02295,-4.55962 v -3.04815 l -10.83226,-15.24075 -9.5727,-3.80388 -7.8093,-0.8817 -6.80166,2.16645 0.25191,6.85204 -9.44674,11.94068 -9.32078,0.20153 0,0 z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"m 563.6318,326.04916 2.14126,3.92985 0.50383,4.18175 -1.76339,4.0558 -4.03061,7.75893 -3.40083,1.53667 -4.40848,-1.91454 -2.64509,0.12595 -6.42378,2.41837 -7.30548,-2.16645 -11.83992,-8.38871 -11.588,-6.22225 -4.66039,-7.10395 -0.8817,-16.75222 9.06887,-7.88488 11.83992,-3.92985 4.40848,-0.50382 -1.76339,3.55197 1.13361,1.38552 19.92632,0.37787 4.28253,-0.12595 7.05356,10.80707 -1.76339,4.43367 0.75574,5.2146 1.36033,5.2146 0,0 z\",\"name\":\"Poland\"},\"it\":{\"path\":\"m 478.23326,423.338 -6.6757,3.37564 0.8817,13.02391 5.34055,0.90688 4.00542,-3.82907 v -12.34375 l -3.55197,-1.13361 0,0 m -13.32621,-41.31375 -1.56186,3.95504 0.42826,4.30771 6.02072,7.02838 9.47193,-0.32749 20.90879,24.28443 13.0491,3.77869 7.70854,7.28029 1.83897,16.60108 4.13137,-2.41837 3.57717,-9.04368 -0.8817,-6.49936 6.12149,-0.55421 0.8817,-3.67793 -17.25605,-8.26275 -16.37435,-16.09725 -6.52455,-9.62308 -1.58706,-9.14444 8.33833,-1.99012 -2.14126,-6.02072 -5.11384,-4.30771 -4.40848,-0.20153 -6.14668,1.68781 -5.794,8.11161 -3.50159,2.3176 -5.41614,-3.32526 -5.76881,2.14126 0,0 m 50.81088,65.59818 -3.65274,-1.96492 -12.4697,1.96492 0.42825,3.37563 11.21014,5.64286 1.68781,1.83896 2.94739,0.42826 -0.15115,-11.28571 0,0 z\",\"name\":\"Italy\"},\"fr\":{\"path\":\"m 478.91342,407.16518 -4.9123,4.9375 -0.45345,4.48405 4.00542,2.46875 1.56186,-0.22672 0.8817,-6.52455 -1.08323,-5.13903 0,0 m -43.90845,-71.19064 -5.56728,1.36033 -11.13456,12.11702 -3.35045,0.22672 -4.45886,-3.14891 -2.897,0.68016 -2.21683,6.9528 -16.27359,0.45345 0.45344,3.60236 11.13456,7.40624 12.92315,10.32844 -0.22673,12.34374 -6.90242,12.11702 14.93845,7.17952 15.16517,0.45345 4.68558,-5.39094 9.5727,0.22672 2.67028,2.46875 9.5727,-0.68017 4.91231,-6.29783 -6.24745,-7.40624 -0.45344,-4.71078 1.33514,-5.16421 -3.12373,-4.48406 -5.34055,1.56186 -0.68017,-4.03061 11.81473,-13.0239 v -7.85969 l -7.80931,-4.48406 -4.00542,-0.68016 -18.49042,-12.11702 0,0 z\",\"name\":\"France\"},\"nl\":{\"path\":\"m 459.41535,309.7 -11.41167,5.61766 2.41837,2.19165 0.25191,5.61766 -2.41836,-0.47864 -2.67028,-4.15656 -6.3734,10.10171 9.79942,2.0405 3.65274,3.85427 1.93973,0.0504 1.28476,-8.71619 6.17187,-2.59471 -2.64509,-13.52773 0,0 z\",\"name\":\"Netherlands\"},\"be\":{\"path\":\"m 438.05312,330.48283 -1.61225,4.03061 17.33163,11.43686 4.98787,1.18399 0.17634,-5.41613 -4.35809,-4.88712 h -2.67028 l -3.65274,-4.15656 -10.20248,-2.19165 0,0 z\",\"name\":\"Belgium\"},\"de\":{\"path\":\"m 462.06044,308.71754 8.99329,-1.4611 v -6.34821 l 7.53221,-1.23437 4.13137,4.15656 4.3581,0.47864 6.80165,-2.94738 6.07111,1.71301 5.34056,4.6352 0.73054,17.35681 5.34056,7.10395 -7.02837,0.98246 -11.66358,7.33067 0.98246,2.44356 10.4292,9.77423 -0.73054,4.88711 -9.69866,4.88712 -8.9933,0.25191 -2.19164,4.6352 h -4.61001 l -2.19165,-4.88711 -8.01083,-1.96493 -0.25192,-8.06122 -6.80165,-4.6352 0.73055,-5.86957 -4.61001,-6.34821 1.20918,-8.31313 6.29783,-2.94739 -2.16645,-15.61861 0,0 z\",\"name\":\"Germany\"},\"dk\":{\"path\":\"m 476.24314,267.45417 -10.45439,11.56281 -0.37787,7.53221 4.76116,12.41931 7.45663,-1.41071 -0.93208,-10.1521 5.13903,-5.74362 -0.10077,-4.50924 -3.62755,-9.39636 -1.86416,-0.3023 0,0 m 11.76435,20.50573 -2.3428,-0.10077 -3.07334,2.82143 0.37787,4.40848 7.28029,0.20153 0.37787,-4.98788 -2.61989,-2.34279 0,0 z\",\"name\":\"Denmark\"},\"ch\":{\"path\":\"m 466.5193,362.87886 -10.98341,11.68877 0.22672,1.18399 4.50924,-1.41072 4.0558,5.64286 6.85204,-2.41837 4.73597,3.67793 1.93973,-1.10841 5.84438,-9.16964 -1.48628,-1.41071 -5.76881,-0.15115 -2.79624,-5.71843 -7.12914,-0.80612 0,0 z\",\"name\":\"Switzerland\"},\"cz\":{\"path\":\"m 505.61621,351.51758 h 7.48182 3.67793 l 5.97034,4.25733 11.05899,-9.19483 -10.7315,-7.65816 -10.63073,-5.13903 -7.28029,1.30995 -9.87499,6.34821 10.32843,10.07653 0,0 z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"m 524.28297,357.21081 1.73821,1.53667 0.22672,2.6199 19.22097,-0.42825 14.2079,-6.12149 -0.22673,-6.22226 -2.72066,1.20919 -3.90465,-2.09088 -2.39317,-0.10077 -6.29783,2.51913 -8.56505,-2.06568 -11.28571,9.14444 0,0 z\",\"name\":\"Slovakia\"},\"at\":{\"path\":\"m 485.96699,364.74301 -1.63743,3.40083 1.41071,2.41837 5.86957,-1.20919 h 4.98788 l 5.41614,4.58482 11.51242,-2.09088 8.46429,-5.03826 2.16645,-3.40082 -0.32749,-4.38329 -7.60777,-5.69324 -10.20249,0.10077 -0.8565,5.794 -10.7315,5.23979 -8.46428,0.2771 0,0 z\",\"name\":\"Austria\"},\"hu\":{\"path\":\"m 526.55019,363.43307 -2.92219,4.58482 0.22672,7.00318 4.66039,2.39317 14.33386,0.42826 19.97671,-16.8278 0.10077,-3.72831 -2.16646,-1.08323 -14.43462,6.54974 -19.77518,0.68017 0,0 z\",\"name\":\"Hungary\"},\"si\":{\"path\":\"m 521.66308,369.45379 -6.39859,3.82908 -11.94069,2.6199 2.39318,6.90241 8.36351,0.10077 7.70854,-6.44898 -0.12595,-7.00318 0,0 z\",\"name\":\"Slovenia\"},\"hr\":{\"path\":\"m 523.72877,377.43944 -8.89254,7.33067 h -9.01849 l -1.08322,6.34821 4.13137,1.08322 2.06569,-3.07334 3.24968,2.84662 2.5947,9.06887 17.81026,8.31314 1.76339,-2.01531 -18.06217,-18.64157 1.83897,-3.40083 17.15528,-0.65497 1.7382,-5.46651 -11.18494,0.32748 -4.10618,-2.06568 0,0 z\",\"name\":\"Croatia\"},\"ba\":{\"path\":\"m 521.66308,386.96175 -0.93208,1.53667 16.90337,17.43239 6.19706,-9.11926 -0.22672,-3.60235 -5.41613,-6.57494 -16.5255,0.32749 0,0 z\",\"name\":\"Bosnia and Herzegovina\"},\"mt\":{\"path\":\"m 516.14618,466.38995 -4.20695,0.85651 0.15115,4.66039 3.7787,1.25957 1.68781,-1.41072 -1.41071,-5.36575 0,0 z\",\"name\":\"Malta\"},\"ua\":{\"path\":\"m 573.98543,321.99336 -7.30548,4.10618 1.81378,7.75893 -6.75128,14.23309 0.0504,6.27263 3.1741,2.01531 20.35458,1.00765 5.69324,-4.71077 6.09629,2.04049 8.74139,11.66358 -6.39859,11.48724 7.60777,2.21683 9.95057,-11.46204 5.69324,1.03284 5.29017,3.67793 -4.66039,6.14668 6.29783,9.82461 h 6.70089 l 3.45121,-6.54974 7.10395,-1.4359 0.20153,-5.31537 -13.20025,-2.0405 0.40306,-5.71842 h 12.79719 l 13.80483,-11.05899 6.0963,-5.31537 1.00765,-16.77741 -27.20661,-2.44356 -11.15975,-15.74456 -7.70854,-2.64509 -9.34598,0.40306 -4.20695,10.40401 -19.1454,0.25191 -6.22225,-2.87181 -9.01849,-0.45344 0,0 z\",\"name\":\"Ukraine\"},\"md\":{\"path\":\"m 587.03453,358.67191 7.80931,12.01625 -0.65498,6.80166 2.79624,0.12595 6.62531,-11.21013 -7.96045,-9.87499 -4.50925,-1.86416 -4.10618,4.00542 0,0 z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"m 565.44558,358.3948 -0.65498,3.72832 -14.58577,12.14221 12.1926,17.88583 7.8093,5.46652 h 14.05676 l 4.6352,-3.87947 6.22225,-0.80612 4.6352,2.79624 8.21237,-9.34598 -1.58705,-4.68558 -8.33833,-2.14126 -5.69323,-0.27711 0.2771,-8.01084 -7.55739,-11.89029 -19.62403,-0.98247 0,0 z\",\"name\":\"Romania\"},\"rs\":{\"path\":\"m 548.74374,375.87757 -5.16422,3.87947 h -2.51913 l -1.71301,5.34055 6.0963,7.07876 0.40306,5.61766 -7.5574,10.68112 1.05804,3.1993 4.38329,0.80612 3.45121,-4.68558 1.86415,-0.12596 3.17411,3.07334 9.67346,-2.94738 -0.80612,-13.75446 -12.34374,-18.16294 0,0 z\",\"name\":\"Serbia\"},\"bg\":{\"path\":\"m 563.58142,395.65275 0.40306,12.54528 4.23214,8.81696 15.89572,0.2771 7.15433,-5.06345 7.02838,-2.79624 -1.71301,-8.01084 1.58705,-4.28252 -3.57717,-1.86416 -4.9123,0.40306 -3.85427,3.87947 -16.17282,0.12595 -6.07111,-4.03061 0,0 z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"m 544.88947,414.21875 v 11.61319 l 3.32525,6.27264 2.39317,-0.2771 4.10619,-7.48182 -2.39318,-3.35045 -0.93207,-8.28794 -3.17411,-2.94738 -3.32525,4.45886 0,0 z\",\"name\":\"Albania\"},\"mk\":{\"path\":\"m 562.27147,409.81027 -8.48947,2.79624 0.40306,7.20471 1.99011,2.54432 10.07653,-4.68558 -3.98023,-7.85969 0,0 z\",\"name\":\"Macedonia\"},\"gr\":{\"path\":\"m 551.66593,433.96874 -0.2771,3.35044 11.66357,5.86958 5.56728,2.14126 -2.92219,3.07334 -6.49936,0.65497 -0.93208,2.94739 2.24203,5.06345 7.28029,3.87946 3.1741,0.27711 0.40306,-8.69101 4.76116,-5.74362 -12.99871,-15.3667 1.71301,-5.2146 3.04814,-0.12595 4.63521,3.72831 2.92219,-1.46109 0.93208,-5.21461 13.65369,0.12596 0.52901,-8.01084 -5.69323,4.00542 -16.70184,-0.40306 -10.85746,5.61766 -5.64285,9.49713 0,0 m 25.31727,32.72351 4.10618,0.12596 1.71301,2.54432 h 5.97034 l 3.98023,-1.4611 1.33514,1.61225 -2.64509,3.4764 -11.66358,0.40306 -2.11607,-2.79624 -2.24202,-1.33514 1.56186,-2.56951 0,0 z\",\"name\":\"Greece\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.north-america.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'north-america_en', {\"width\":950,\"height\":550,\"paths\":{\"mx\":{\"path\":\"m 330.70592,371.79351 8.52959,26.86025 -3.97341,2.22511 0.44149,5.3332 7.50533,5.77469 v 10.68406 l 9.27129,8.90044 -3.97341,-26.24217 -5.29788,-17.35939 1.32447,-12.00853 4.4149,0.44149 1.76596,4.00873 -1.76596,10.22491 22.95748,44.92603 v 16.01726 l 18.54259,21.79195 20.30854,9.34193 8.38831,-4.89171 11.92023,9.78342 7.06384,-7.11682 -3.09043,-8.01745 10.15428,-3.10809 3.09043,1.78361 3.09043,-3.10809 h 4.85639 l 8.8298,-15.57577 -4.4149,-4.00872 -17.21811,4.00872 -3.97342,11.56704 -10.15427,1.78362 -11.92023,-4.89171 -5.29788,-16.90024 4.00873,-21.31514 -8.19406,-5.10362 -3.90277,-20.46748 -3.26702,-1.39511 -5.96895,6.05724 -6.85193,-3.65553 -2.68426,-13.65088 -27.14281,-2.84319 -14.02172,-10.54279 -13.35066,0.68873 0,0 z\",\"name\":\"Mexico\"},\"gl\":{\"path\":\"m 655.00687,62.11471 -2.40171,3.832134 4.32661,4.326603 -1.9249,4.326603 6.2515,8.158736 7.68193,-2.401706 10.08363,-0.953618 11.53172,12.485339 7.68193,20.644079 -6.23384,12.96215 8.63554,-1.44809 4.80342,2.87851 0.4768,6.2515 -10.56044,0.47681 5.75703,5.75703 7.20512,1.44809 -15.84066,21.12089 -1.9249,12.96214 3.35532,10.56045 -2.4017,6.2515 4.3266,13.43895 8.15874,9.13002 2.4017,-0.47681 5.28023,-1.44809 0.4768,7.68193 3.35533,4.80341 6.23384,-0.47681 4.80341,-17.76556 14.41024,-17.76556 21.61535,-8.63555 13.43896,-16.81194 6.23384,2.87852 h 12.96215 l 10.56044,-10.56044 12.96215,-5.28023 1.44809,-8.15873 -8.15874,-7.20512 -7.20512,-2.40171 -3.84979,-10.08363 9.13001,-5.28022 14.41024,7.68193 4.80341,-5.28023 -7.68193,-4.3266 16.33514,-22.092161 -2.87852,-9.606824 -7.68193,-0.47681 2.87852,-8.635545 9.60682,-4.326603 19.69046,-17.288752 -5.75703,-6.233839 -22.09216,1.924896 -11.53172,11.531721 6.7283,-14.887045 -7.68192,-1.924897 -4.32661,7.681927 -6.23384,-5.280221 -17.28875,1.924897 4.80342,-7.681928 28.326,-0.953618 -7.20512,-9.606824 -30.72771,-5.757031 -12.48534,1.924897 0.47681,6.251499 -12.96215,-4.326602 0.47681,-4.326603 -9.13001,1.924897 -1.9249,4.803412 9.60682,3.355324 -10.08363,7.205118 -7.20512,-8.158736 -10.08363,-2.878516 -1.44809,7.681928 h -10.08363 l -3.84979,-8.158737 -15.84067,-2.401706 -8.63554,4.326603 -0.47681,5.757031 -11.03726,-1.448088 -6.7283,2.878515 0.47681,6.728309 v 3.355325 l -12.48534,2.401706 -5.75703,-3.832134 -3.8498,6.23384 5.75703,6.251499 12.00853,-1.448087 0.95362,3.849793 -9.13001,4.326603 -8.14108,-3.885113 0,0 m 38.4273,74.91204 2.87851,4.3266 -1.44809,5.28022 h -2.87851 l -3.8498,-4.3266 0.95362,-3.35533 4.34427,-1.92489 0,0 m 120.04998,-12.00853 8.15873,2.4017 -0.47681,6.72831 -8.63554,-4.3266 -1.9249,-2.40171 2.87852,-2.4017 0,0 z\",\"name\":\"Greenland\"},\"us\":{\"path\":\"m 210.05551,67.90706 6.11022,11.425763 3.92044,-0.88298 v -3.955751 l -10.03066,-6.587032 0,0 m -34.45388,100.5008 -0.30022,5.31554 3.81448,-0.88298 v -2.36639 l -3.51426,-2.06617 0,0 m -5.86299,2.36639 -7.62895,3.84979 1.18319,4.13235 2.9315,-2.36639 5.86299,-2.6666 -2.34873,-2.94915 0,0 m -31.69899,5.01532 -5.28022,-1.18319 -0.88298,2.36639 0.58277,4.43256 5.58043,-5.61576 0,0 m -11.16087,-0.28255 -4.99767,-2.06617 -1.76596,3.24936 3.23171,3.24937 3.53192,-4.43256 0,0 m -17.30641,-4.73277 -2.34873,-3.24937 -2.34872,0.88298 v 4.43256 l 2.64894,1.76596 2.04851,-3.83213 0,0 M 90.5,149.77698 l 2.931494,2.06617 -0.88298,2.36639 H 90.5 v -4.43256 l 0,0 m 15.06364,263.11042 -0.24723,4.11469 3.60256,2.41937 2.15447,-1.9249 -5.5098,-4.60916 0,0 m 9.34193,6.05725 -3.35532,2.41936 2.87851,3.62022 3.35533,-2.89617 -2.87852,-3.14341 0,0 m 6.72831,5.79235 -2.87852,3.86745 0.95362,2.41937 4.07937,-1.9249 -2.15447,-4.36192 0,0 m 4.78575,7.48767 -1.67766,9.6598 1.67766,3.62022 5.5098,-1.69532 2.87851,-4.83873 -6.00426,-5.56278 -2.38405,-1.18319 0,0 m 440.14795,37.80921 -4.66214,-1.5717 -3.74383,2.34872 1.87191,2.18979 6.37512,0.93596 0.15894,-3.90277 0,0 M 252.3326,52.967036 l -14.81641,3.514261 3.05512,16.688325 16.12321,4.397241 0.86532,3.514261 -23.96408,7.470012 -13.50959,22.392374 4.78575,23.71685 7.84086,5.26256 6.11023,-5.70405 1.7483,3.51426 -7.41704,8.77682 -28.76749,13.17407 -18.31301,4.39724 -0.44149,6.58703 42.27709,-12.29108 17.43003,-4.83874 16.12322,-19.76109 17.87151,-11.84959 -9.14767,15.36385 10.03065,1.32447 17.0062,-7.47001 3.05511,12.29108 11.7613,2.63128 12.20278,11.8496 0.86533,8.77682 -1.74831,2.18979 2.17214,8.33533 h 3.05511 l 0.44149,-14.05704 h 3.47894 l 0.86532,34.68346 8.72384,-7.47001 -6.11022,-36.00793 h -9.14767 L 316.80781,141.6359 366.06044,58.194278 317.2493,19.996557 262.76943,30.53934 l -2.17213,16.688325 11.76129,7.028522 -4.36192,11.425763 -15.66407,-12.714914 0,0 m 98.27569,200.348194 -1.76596,7.09916 -6.1632,-3.99107 h -3.07277 l -1.76596,7.54065 -21.56238,48.31668 5.72172,42.10049 7.04618,3.54958 1.32447,11.53172 h 14.51619 l 14.0747,10.63108 27.70792,2.6666 3.07277,14.18066 4.39724,3.10809 6.16321,-6.19852 4.83873,2.20745 4.39724,20.37918 7.47001,4.87406 6.1632,-11.53173 18.91344,-13.73917 12.30874,5.75703 10.56044,0.88298 0.44149,-6.64001 21.98621,0.44149 4.39724,4.87405 0.88298,11.07257 -2.63128,6.19853 3.07277,10.63108 h 6.60469 l 6.60469,-10.18959 -2.63128,-4.87405 -2.63128,-10.63109 3.95575,-11.97321 18.03046,-15.50513 13.63321,-3.99107 -1.76596,-12.85619 18.91343,-20.39684 18.91344,-3.10809 -3.07277,-10.61342 18.47194,-10.63108 v -14.18066 l -1.76596,-0.88298 -6.60469,2.20745 -0.88298,8.68852 -21.95089,0.26489 -17.20045,11.42577 -27.00153,8.8298 -4.30895,-5.28022 12.25577,-18.54259 -6.05724,-5.77469 -4.11469,-7.84086 -8.52959,-6.85193 -9.27129,-0.77702 -17.51833,-11.95555 -124.57084,-20.5028 0,0 z\",\"name\":\"United States of America\"},\"bb\":{\"path\":\"m 586.02846,499.68435 -2.17213,1.57171 1.71298,3.14341 2.80788,-1.57171 -2.34873,-3.14341 0,0 z\",\"name\":\"Barbados\"},\"tt\":{\"path\":\"m 586.32867,511.92246 -1.87191,1.73064 -2.03086,0.31787 v 2.50767 l 3.74384,3.44362 1.55404,-2.50767 0.93596,-2.82553 -0.31787,-2.34873 -2.0132,-0.31787 0,0 z\",\"name\":\"Trinidad and Tobago\"},\"do\":{\"path\":\"m 552.54585,468.93898 -9.34193,-6.11022 -4.4149,-1.50106 -1.4834,10.59576 1.55404,2.98447 2.03085,-2.34873 5.91597,-1.5717 5.13895,1.09489 0.60042,-3.14341 0,0 z\",\"name\":\"Dominican Republic\"},\"ht\":{\"path\":\"m 530.91284,460.00323 6.0749,0.63574 -0.72404,7.45235 -0.60043,3.92044 -7.0815,-0.38852 -1.25383,1.88958 -2.17213,-0.15893 -0.77702,-4.07937 7.47001,-0.61809 -0.45915,-4.2383 -3.42596,-1.41277 2.94915,-3.00213 0,0 z\",\"name\":\"Haiti\"},\"cu\":{\"path\":\"m 477.91637,445.0632 v 2.24277 l 9.39491,0.1766 4.43256,-2.57831 0.68872,1.88958 9.21832,2.24277 8.19405,7.39938 -1.87192,2.5783 0.33554,2.93149 6.83426,1.71298 6.83427,-3.09043 3.07277,-3.09043 -4.43256,-2.24277 -22.86919,-13.4213 -8.01746,-0.86532 -11.81427,4.11469 0,0 z\",\"name\":\"Cuba\"},\"bs\":{\"path\":\"m 511.04579,431.30637 -2.22511,-0.68872 -0.1766,4.29128 2.73724,2.7549 1.87192,-2.7549 -2.20745,-3.60256 0,0 m 4.43256,6.71065 -3.07278,1.71298 2.89618,4.13235 1.53639,-2.06618 -1.35979,-3.77915 0,0 m 9.90703,3.09043 -3.24936,-0.1766 0.33553,2.06618 2.38405,3.44362 2.04851,-2.24277 -1.51873,-3.09043 0,0 m -1.53638,-4.11469 -5.29788,-2.24277 -1.02426,-5.3332 2.04851,-0.86532 2.04852,4.13235 2.04851,1.55404 0.1766,2.7549 0,0 m -5.12129,-10.84299 -2.73724,-0.68873 -0.51212,-3.44362 -2.89618,-1.02426 1.87192,-1.88958 3.4083,1.20086 2.56064,1.55404 -1.69532,4.29129 0,0 z\",\"name\":\"Bahamas\"},\"jm\":{\"path\":\"m 509.84493,467.43792 -6.14554,1.55404 v 1.71298 l 3.5849,2.06618 h 3.7615 l 2.38404,-2.7549 -3.5849,-2.5783 0,0 z\",\"name\":\"Jamaica\"},\"ca\":{\"path\":\"m 447.68313,37.073393 0.38851,7.099161 -14.09236,14.604491 3.53192,11.831934 10.17193,-2.754898 5.88065,-8.688524 14.86938,-5.527456 12.13215,-0.794682 -9.39491,-10.26023 -4.69745,3.549581 -3.53192,-1.183194 -1.96022,-4.344262 -4.30894,-4.344263 -8.98874,0.812342 0,0 m 18.40131,-20.90897 -3.12575,5.527456 15.27555,5.527456 5.47448,-8.282354 2.34873,5.527456 h 3.92043 l 7.43469,-8.282354 -9.0064,-2.366387 -3.53192,-2.754898 -4.69745,4.732774 -14.09236,0.370851 0,0 m 26.63068,11.054912 -12.13215,5.121285 v 3.938091 l 15.66407,5.915967 -3.53192,3.938092 2.34872,5.121284 9.78342,-4.344262 h 8.22938 l 3.92043,6.304478 6.65767,-6.710649 -1.5717,-6.322138 -5.47448,1.977876 -0.77702,-7.893843 2.73724,-4.732773 h -2.73724 l -4.30895,2.754898 -1.96021,1.571704 1.18319,5.527456 -3.12575,2.366387 -4.69745,-0.388511 -1.1832,-7.099161 -9.02405,-7.046181 0,0 m 16.05258,-12.238105 -1.1832,3.938091 7.4347,3.54958 5.47447,-3.161068 -0.38851,-2.366387 -11.33746,-1.960216 0,0 m 5.86298,-6.7106493 -5.47447,1.9778753 0.38851,2.754898 12.13215,-0.794682 -0.38851,-2.7548979 -6.65768,-1.1831934 0,0 m 26.24217,6.7106493 -0.77702,2.754898 -1.96021,2.754898 v 3.938091 l 7.43469,-1.183193 7.8232,6.710649 h 2.73724 v -6.710649 l -7.8232,-8.688525 -7.4347,0.423831 0,0 m 19.97302,7.893842 3.12575,3.549581 -2.73724,4.732773 1.96021,5.121285 8.61789,-4.732774 v -3.54958 l -5.08597,-5.915967 -5.88064,0.794682 0,0 m 11.35512,-9.077036 0.38851,6.304479 h 10.5781 l 2.73724,2.366386 -0.38851,2.754899 -9.39491,1.183193 6.65767,9.077036 9.0064,1.571705 12.52066,-5.527456 -18.0128,-27.231108 -5.47447,3.5495802 0.38851,4.7327738 -6.26916,-2.366387 -2.73724,3.584899 0,0 m -91.22951,44.590498 -14.86938,3.938091 -8.61789,7.505332 0.77702,8.282354 15.66407,4.732773 -3.53192,7.893843 -11.35513,-7.099161 -3.12575,5.915967 7.4347,5.121285 -0.38851,8.282352 11.35512,3.16107 13.70385,-0.79468 2.34873,-4.34426 10.17193,11.44342 7.04618,-2.36639 1.1832,-7.89384 5.08596,3.54958 0.77702,-7.893843 -6.26915,-3.938091 0.38851,-24.847061 -5.47448,-4.344263 -5.86299,7.893843 -16.44109,-14.198321 0,0 m 47.76923,17.35939 -5.08597,-2.366387 -2.73724,3.54958 5.47448,8.688525 0.38851,8.282354 11.74364,-7.099161 V 76.542606 l 4.30894,-4.344262 -4.30894,-3.161069 h -7.04618 l -2.73724,6.710649 0,0 m 25.05897,-3.54958 -8.22937,6.710649 1.96022,8.282353 h 5.08596 l 2.34873,-4.344262 3.53192,3.54958 3.53192,-0.388511 9.39491,-7.893842 -17.62429,-5.915967 0,0 m -0.79468,-13.032787 -1.96021,3.938091 8.61788,3.161069 2.34873,-3.54958 -9.0064,-3.54958 0,0 m -5.08596,-14.993003 -8.61789,1.183193 -5.08597,4.732774 9.39491,0.388511 -2.73724,7.09916 1.96022,3.161069 2.73724,-0.388511 6.65767,-10.648741 -4.30894,-5.527455 0,0 m 14.88704,-2.754898 -4.69745,1.571704 0.77702,6.304478 7.8232,5.121285 0.38852,3.938092 -2.34873,2.366387 1.18319,7.893842 30.14494,9.854059 8.22938,2.754898 8.22937,-7.099161 -9.78342,-7.893842 -9.00639,2.366387 -12.52066,-1.183194 -4.69746,-4.732773 -1.18319,-13.015128 -7.8232,-3.938091 -4.71512,-4.308943 0,0 m 24.65281,41.040917 -8.61789,-0.794682 -10.17193,3.938091 -5.47448,7.487672 1.57171,20.520456 16.8296,0.79468 16.05258,7.89385 11.35512,13.01512 8.61789,-0.38851 -2.34873,12.22045 -7.8232,13.01513 -8.61789,3.93809 -6.26916,-1.1832 -3.12575,-2.75489 -4.69745,6.30447 1.96021,6.30448 6.65768,0.38851 8.22937,-3.93809 7.04618,18.15407 17.62429,11.44343 12.13214,-15.38152 -10.17193,-16.5647 5.88065,-6.71065 8.22937,13.80981 14.86939,-13.01513 -2.73724,-5.91597 -10.17193,3.16107 -7.04618,-19.33727 6.65767,-11.03725 -13.31534,-14.19832 -7.43469,5.12129 -7.04619,-15.38152 -14.86938,1.97788 -3.92043,-18.542585 -12.13215,8.282354 -1.18319,10.260231 h -6.65767 l 0.77702,-9.077038 9.34193,-13.809809 0,0 m 17.62428,7.09916 -3.12575,3.161069 2.73724,4.344263 12.92683,1.571704 -8.22938,-8.688524 -4.30894,-0.388512 0,0 M 592.56251,44.967236 v 3.54958 l -8.61788,1.977875 2.34872,3.938092 9.78342,3.938091 10.96662,1.183194 7.8232,5.527456 7.82321,-4.344263 -5.47448,-5.527456 h 7.04618 l 4.30894,-4.732773 10.57811,-1.571705 V 46.53894 l -5.88065,-3.938091 0.77702,-4.344262 16.44109,2.754898 24.28195,-9.465548 -9.00639,-2.754898 2.34872,-3.161069 h 18.78982 l 3.12575,-3.161069 -37.9858,-13.4212978 -9.0064,-3.1610689 -9.78342,7.0991607 -10.96662,-9.0770363 -5.88064,-0.3885112 -1.1832,7.5053315 -7.43469,-6.7106494 -8.61789,2.7548981 1.57171,4.3442623 12.92683,2.754898 -0.77702,6.304478 7.04618,4.344263 17.23577,-4.344263 0.38851,5.915967 -14.09236,6.710649 -8.61789,-6.710649 -7.8232,0.794682 7.8232,11.054912 -3.92043,1.977876 -5.88065,-5.121285 -4.30894,2.754898 3.92043,7.487671 h 6.65767 l -1.5717,7.099161 -5.47448,-0.794682 -7.04618,-7.505332 -4.66214,0.830002 0,0 m -34.89537,108.588894 -7.47001,9.39491 -0.45915,10.34853 6.53405,-3.76149 h 7.92916 l 5.59809,5.17426 5.13895,-4.23831 -17.27109,-16.9179 0,0 m 90.96461,122.20446 -18.6662,17.87152 1.87192,4.2383 22.85153,8.45895 3.26702,-5.63341 -1.87192,-9.39491 -7.47001,0.93596 -4.20298,-4.69746 6.9932,-7.04618 -2.77256,-4.73277 0,0 M 367.31428,59.624706 l 3.51426,5.315541 1.76596,7.09916 8.79448,2.20745 6.1632,-6.64001 5.28022,2.6666 14.95769,1.32447 10.56044,-4.43256 1.76596,14.622151 h 6.1632 v -6.198521 l 6.1632,0.44149 15.39918,18.171732 10.11895,6.198521 -5.28022,8.42363 2.20745,2.20745 19.76109,3.99107 0.44149,8.86512 5.28023,0.88298 1.32447,-13.29768 8.35299,-2.20745 6.1632,9.30661 13.19172,6.19852 6.60469,1.32447 4.39725,-5.31554 0.44149,-8.42363 7.9115,-4.87405 2.63128,7.09916 -7.04618,12.4147 0.88298,6.19852 3.95575,-6.19852 7.9115,-7.09916 0.44149,-9.30661 -4.39724,-7.09916 1.32447,-5.757031 10.56044,-5.31554 4.83873,3.54958 0.88298,31.027921 7.47002,-6.64001 4.39724,2.6666 -6.16321,10.63108 7.91151,1.76596 11.44342,-17.73024 9.67746,10.18959 -3.95575,18.17173 -9.67746,5.31554 -9.23597,-4.43256 -16.70599,3.54958 1.76596,5.75703 -4.39724,7.09916 -13.63321,3.10809 -15.39918,11.97322 -13.63321,18.17173 -1.76596,5.75703 9.23597,3.54958 3.51426,8.86512 12.75024,12.85619 20.2379,8.86512 -4.39724,20.37918 -0.44149,5.75703 5.28022,3.54958 7.04618,-9.30661 0.88298,-17.73024 11.00194,-0.44149 5.28022,-10.18959 0.88298,-15.50513 14.0747,-27.47834 17.58897,6.19852 9.23597,12.85619 -3.95575,12.85619 7.04618,3.99107 17.14747,-11.53172 4.83873,31.46941 15.84067,19.05471 0.44149,9.7481 -17.58897,4.43256 -8.35299,8.86512 -17.58896,-3.99107 -8.79449,-0.44149 -15.39917,11.97321 9.23597,-2.20745 11.44343,-2.20745 2.20745,2.6666 -3.07277,9.7481 0.44149,8.86513 5.28022,3.54958 5.28022,-1.32447 2.64894,-3.99107 h 3.51426 l -5.72171,10.63108 -11.00193,0.44149 -4.83874,7.09916 h -6.1632 l -1.76596,-5.31554 8.79448,-8.86512 -10.56044,3.54958 -0.47681,-15.06365 -3.03745,-1.76596 -9.23597,3.99107 -0.88298,7.54065 h -21.12089 l -18.03045,12.41471 -24.19366,7.98214 -2.63128,-3.54958 12.18513,-18.18939 -6.92257,-6.65768 -4.39724,-8.44129 -8.95342,-6.83426 -9.60682,-0.79468 -17.21811,-12.06151 -124.87106,-20.52046 -2.06617,-8.45895 -11.44342,-10.63108 v -8.86512 l 1.76596,-7.98214 -0.88298,-4.43256 -4.39724,-4.43256 -0.88298,-7.09916 11.44342,-7.98215 -7.04618,-38.10942 -9.67746,-0.44149 -8.79449,-11.53172 48.31668,-82.099494 0,0 m -43.07178,140.835334 -3.00213,5.75703 1.04192,4.07937 1.96021,1.21851 -0.45914,1.66 -2.1015,0.60043 0.60043,6.05724 2.26043,2.27809 1.80128,-1.96021 -2.26043,-5.89831 1.34213,-4.69745 3.30234,-4.39725 -2.4017,-4.07936 -2.08384,-0.61809 0,0 m 9.9247,34.50686 -2.70192,1.05958 4.96235,5.75703 1.20085,6.81661 4.96235,5.29788 4.20299,-0.75936 v -6.95789 l -5.10363,-3.17873 -7.52299,-8.03512 0,0 z\",\"name\":\"Canada\"},\"gt\":{\"path\":\"m 432.05438,488.50582 10.47215,7.66427 10.56044,-13.12108 -1.80128,-2.71958 -3.60256,-0.12362 v -7.68193 l -2.70192,-1.64234 -8.1764,2.43703 3.12575,7.20511 -7.87618,7.98214 0,0 z\",\"name\":\"Guatemala\"},\"hn\":{\"path\":\"m 454.4291,483.66709 16.31747,-0.61808 4.83873,5.75703 -3.01979,-0.68873 -5.81001,0.24724 -7.59363,7.13448 -3.24937,7.22278 -2.13681,-1.13022 -0.0177,-7.9115 -4.69745,-3.14341 5.36852,-6.86959 0,0 z\",\"name\":\"Honduras\"},\"sv\":{\"path\":\"m 444.00993,496.89414 8.30002,4.13234 -0.12362,-6.55171 -4.25597,-2.59596 -3.92043,5.01533 0,0 z\",\"name\":\"El Salvador\"},\"ni\":{\"path\":\"m 472.42423,489.54774 3.86746,0.77702 0.12361,7.92917 -4.50319,12.85619 -12.13215,-1.20086 -2.70192,-6.19852 3.60256,-7.52299 6.83426,-6.35746 4.90937,-0.28255 0,0 z\",\"name\":\"Nicaragua\"},\"cr\":{\"path\":\"m 471.78849,512.27565 2.45468,4.80341 1.99554,2.64894 -2.68426,7.96448 -5.12129,-3.60256 -8.37065,-7.66426 v -5.06831 l 11.72598,0.9183 0,0 z\",\"name\":\"Costa Rica\"},\"pa\":{\"path\":\"m 477.45722,520.45205 -2.5783,8.05278 8.51193,2.20745 5.28022,1.04191 0.90064,-6.23384 5.66873,-2.86085 5.03299,2.59596 1.97787,3.16107 2.40171,-0.28256 1.88958,-5.73937 -6.28682,-2.59596 -4.76809,-2.59596 -4.7681,3.24937 -5.66873,2.86085 -5.79235,-2.33107 -1.80128,-0.52978 0,0 z\",\"name\":\"Panama\"},\"bz\":{\"path\":\"m 449.14888,472.40027 -0.0883,6.44575 h 1.48341 l 5.05064,-9.43023 h -3.42596 l -3.01979,2.98448 0,0 z\",\"name\":\"Belize\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/continents/jquery.vmap.south-america.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'south-america_en', {\"width\":950,\"height\":550,\"paths\":{\"fk\":{\"path\":\"m 534.552,493.51923 -6.16906,-0.68024 -6.14561,4.12835 4.45674,4.83204 7.85793,-8.28015 0,0 m 6.14561,-3.09626 -2.04072,6.54437 -5.81721,5.16043 0.35184,1.71233 9.92211,-3.79996 4.10489,-5.16043 -6.52091,-4.45674 0,0 z\",\"name\":\"Falkland Islands\"},\"ec\":{\"path\":\"m 352.17758,89.293073 -11.09493,6.896216 -0.79752,10.227041 -2.22837,3.35428 6.99004,6.70857 -3.02589,3.30737 0.70369,8.44434 12.50233,2.97898 18.92941,-22.40097 -0.0469,-7.81102 -9.07767,-0.58642 -12.85417,-11.118387 0,0 z\",\"name\":\"Ecuador\"},\"co\":{\"path\":\"m 407.37077,4.6854166 -4.83205,-0.4925868 -31.94777,26.3416682 -3.37774,9.265325 -4.36291,0.492586 1.94689,20.47754 -11.14185,27.326842 12.10356,10.250498 15.50476,0.985174 10.64926,15.622037 15.4813,0.49259 -0.49258,11.7048 h 5.79376 l 6.28634,-21.46271 -5.81721,-7.318434 1.4543,-13.651693 12.10356,-0.985174 -1.4543,-31.713211 -27.11574,-8.772737 -6.28634,-17.076345 15.50476,-21.4861694 0,0 z\",\"name\":\"Colombia\"},\"ve\":{\"path\":\"m 399.70048,19.087718 1.03209,6.075238 7.62337,2.416021 1.73578,-11.188758 8.04559,-8.3270639 8.04558,9.4295199 18.50719,5.043151 15.66896,-3.283912 10.67271,13.159106 8.04559,5.043151 -8.81965,13.440584 2.95552,10.180128 -5.04315,6.239434 -5.23081,4.386369 -11.32949,-5.699934 -2.60368,2.62713 v 8.115955 l 8.28015,3.940695 -6.09869,6.591281 -6.09869,6.591281 -8.04559,-0.656782 -8.0925,-8.89002 -1.71232,-33.448993 -27.63178,-9.42952 -5.0197,-14.707236 5.11352,-7.646825 0,0 z\",\"name\":\"Venezuela\"},\"gy\":{\"path\":\"m 480.83658,38.345519 16.9356,15.340562 -6.73202,7.787563 -0.5395,4.620934 8.84311,9.124585 -0.21111,8.772738 -15.38747,5.864129 -9.21842,-12.455411 1.97035,-14.965258 -3.94069,-11.141845 8.28015,-12.947997 0,0 z\",\"name\":\"Guyana\"},\"sr\":{\"path\":\"m 499.78944,54.788537 4.78513,4.386369 7.41226,-4.597478 6.75548,0.211109 -0.86789,2.62713 -2.83824,5.911042 -0.44567,14.707236 -13.4875,5.488825 0.65678,-9.42952 -8.70237,-8.115954 0.44568,-4.17526 6.28634,-7.013499 0,0 z\",\"name\":\"Suriname\"},\"gf\":{\"path\":\"m 520.90031,56.336667 13.72206,8.561629 -7.17769,14.261562 -2.60368,3.283912 -7.62337,-4.386368 0.21111,-15.364019 3.47157,-6.356716 0,0 z\",\"name\":\"French Guiana\"},\"pe\":{\"path\":\"m 340.05056,121.35813 -4.55056,4.59748 0.30493,7.34189 39.73534,72.43372 41.26002,26.59969 6.38017,-10.69617 1.52467,-23.52688 -3.33082,-14.66033 -11.23568,-18.95286 -6.6851,2.13454 -3.02589,3.35428 -13.34676,-15.29365 3.33082,-18.03806 15.48131,-10.0863 -1.21974,-9.47643 -15.76278,-0.60987 -8.18633,-13.74552 -4.55056,-1.52468 0.30493,8.2567 -20.31334,24.13675 -15.17637,-3.65921 -0.93826,-8.58509 0,0 z\",\"name\":\"Peru\"},\"bo\":{\"path\":\"m 419.05211,175.94145 19.30471,-8.42089 6.38018,0.60987 4.24563,17.73312 29.41447,9.78137 4.8555,14.98872 12.12702,1.52467 5.16043,12.83071 -3.63576,11.61098 -19.72693,1.52467 -7.27152,18.64793 -15.4813,-0.30493 -4.8555,-0.9148 -8.93693,8.67891 -4.40983,-0.42222 -15.17636,-35.16132 4.19871,-6.28635 1.47776,-24.8639 -3.75304,-14.80107 -3.91724,-6.75547 0,0 z\",\"name\":\"Bolivia\"},\"py\":{\"path\":\"m 496.5759,238.61726 5.16043,5.62956 -0.60987,11.91592 14.87144,-0.91481 11.23567,14.37885 -0.91481,12.83071 -7.27152,11.00111 -14.87143,0.60987 -0.60987,-6.12215 4.24563,-10.08631 -14.5665,-9.17149 h -12.12701 l -9.10113,-9.78137 6.61473,-18.90595 17.94424,-1.38394 0,0 z\",\"name\":\"Paraguay\"},\"uy\":{\"path\":\"m 516.7485,314.66329 -4.80858,5.13698 1.9938,27.63177 15.106,4.38637 19.21089,-19.2578 -31.50211,-17.89732 0,0 z\",\"name\":\"Uruguay\"},\"ar\":{\"path\":\"m 528.73478,282.45749 4.55057,4.26909 -17.28745,25.68488 -6.07524,6.73202 2.11108,29.34411 13.34676,16.20845 -11.21221,19.56273 -8.49126,3.65922 h -9.711 l 2.72096,15.27019 -15.17637,5.20735 3.63576,12.83072 -9.10113,29.03916 11.23567,9.1715 -6.07523,14.96526 -10.32087,16.20845 5.46537,11.30604 -13.34676,2.13455 -10.93074,-13.44059 -1.82961,-41.86988 -16.98252,-71.12016 5.13698,-24.86391 -10.93074,-31.78358 7.27153,-41.26001 6.6851,-7.95176 -1.64195,-6.02833 8.58508,-7.83447 19.14052,1.31356 10.69617,11.42333 12.36159,0.21111 12.66651,7.74065 -3.72958,8.72582 0.89135,8.81965 17.94423,-0.84443 8.39743,-12.83072 0,0 m -38.82053,235.94911 0.60987,13.44058 10.32087,-0.9148 8.79619,-5.81722 -14.87143,-3.04935 -4.8555,-3.65921 0,0 z\",\"name\":\"Argentina\"},\"cl\":{\"path\":\"m 480.81312,507.40549 -10.01593,22.00221 17.28745,1.82961 0.30494,-14.66032 -7.57646,-9.1715 0,0 m -3.40119,-3.44811 -7.52955,8.32706 -0.9148,9.78137 -14.5665,-8.25669 -15.4813,-22.30715 -4.55056,-7.95176 6.38017,-8.25669 -0.60987,-10.39124 -7.27152,-3.04935 -5.7703,-4.26908 1.21974,-5.81722 7.57645,-2.13454 1.52467,-33.61319 -11.82208,-6.73202 -7.71719,-174.96216 1.9938,-3.47157 15.106,34.83293 4.83204,0.0938 1.57159,5.55919 -6.42709,7.78757 -7.3888,41.91679 10.50852,32.27617 -4.8555,24.44169 17.12325,71.87077 1.80616,42.03408 12.26776,14.19119 12.99491,-1.89998 0,0 m -49.98584,-87.93848 -3.02589,4.57402 1.52467,7.95176 3.02589,0.30493 1.52468,-10.0863 -3.04935,-2.74441 0,0 z\",\"name\":\"Chile\"},\"br\":{\"path\":\"m 549.30615,330.8952 14.66032,-28.19473 0.5395,-23.69109 27.3503,-17.6393 h 15.31711 l 12.03319,-20.38371 2.18146,-39.12547 -4.92587,-10.46161 28.99225,-26.45895 1.10246,-29.20336 -39.38349,-19.28126 -47.56982,-14.87143 -22.42443,-2.204914 6.02833,-12.666519 -1.64196,-19.281257 -4.90241,-1.6185 -7.24807,14.402301 -3.79995,4.761673 -9.75791,-4.315999 -32.81567,11.564063 -10.93074,-13.768975 1.75924,-14.378845 -10.32087,10.508519 -11.39986,-6.145607 -1.14937,1.6185 0.0235,4.996238 9.82828,5.277716 -14.75414,15.551671 -9.31224,-0.09383 -9.42952,-9.593716 -10.67272,0.328391 -1.31356,11.399868 6.12215,7.435722 -7.22461,23.15158 -8.44434,0.65678 -13.44059,8.49126 -3.28391,16.67759 11.65789,12.47886 2.13454,-2.41602 8.18633,-2.20491 6.99004,11.77517 20.00841,-8.58509 7.7641,0.44568 5.34809,18.92941 28.54658,9.05421 4.92587,15.106 12.15048,1.4543 5.79375,14.42576 -3.91723,12.83072 5.11352,6.70856 -0.75061,9.99248 13.6986,-1.29011 12.54924,15.8566 -0.98517,11.14185 7.43571,6.28635 -17.82695,26.99845 31.38482,17.56893 0,0 z\",\"name\":\"Brazil\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.algeria.js",
    "content": "/** Add Algeria Map Data Points */\njQuery.fn.vectorMap('addMap', 'dz_fr', {\"width\": 600, \"height\": 400, \"paths\": {\"1\": {\"path\":\"M 268.306 457.87 c 0 0 2.249 -0.725 2.249 -0.725 c 0 0 -0.496 -2.893 -0.496 -2.893 c 0 0 -3.133 -7.454 -3.133 -7.454 c 0 0 -2.249 -3.262 -2.249 -3.262 c 0 0 0.031 -6.131 0.031 -6.131 c 0 0 -1.682 -5.848 -1.682 -5.848 c 0 0 -2.49 -5.061 -2.49 -5.061 c 0 0 -6.095 -6.187 -6.095 -6.187 c 0 0 -1.521 -7.254 -1.521 -7.254 c 0 0 -4.417 -0.47 -4.417 -0.47 c 0 0 -4.163 0.675 -4.163 0.675 c 0 0 0.63 -56.826 0.63 -56.826 c 0 0 -0.259 -38.388 -0.259 -38.388 c 0 0 -8.571 -12.135 -8.571 -12.135 c 0 0 -2.714 -6.038 -2.714 -6.038 c 0 0 7.482 -7.683 7.482 -7.683 c 0 0 1.19 -2.448 1.19 -2.448 c 0 0 2.635 -0.807 2.635 -0.807 c 0 0 0.883 0.813 0.883 0.813 c 0 0 1.749 -0.209 1.749 -0.209 c 0 0 0.138 0.823 0.138 0.823 c 0 0 2.35 -1.681 2.35 -1.681 c 0 0 0.465 -8.884 0.465 -8.884 c 0 0 2.565 -6.436 2.565 -6.436 c 0 0 -1.848 -2.78 -1.848 -2.78 c 0 0 -0.051 -6.214 -0.051 -6.214 c 0 0 1.856 -3.176 1.856 -3.176 c 0 0 0.81 -10.075 0.81 -10.075 c 0 0 3.164 -5.032 3.164 -5.032 c 0 0 1.104 -3.51 1.104 -3.51 c 0 0 0.784 -10.595 0.784 -10.595 c 0 0 1.118 -4.885 1.118 -4.885 c 0 0 -4.273 -23.743 -4.273 -23.743 c 0 0 2.643 -13.284 2.643 -13.284 c 0 0 0.684 -28.618 0.684 -28.618 c 0 0 -21.085 13.188 -21.085 13.188 c 0 0 -15.816 11.178 -15.816 11.178 c 0 0 -8.624 9.693 -8.624 9.693 c 0 0 -3.966 6.909 -3.966 6.909 c 0 0 -10.189 7.171 -10.189 7.171 c 0 0 -1.53 5.245 -1.53 5.245 c 0 0 1.021 6.805 1.021 6.805 c 0 0 -0.608 2.721 -0.608 2.721 c 0 0 -5.818 4.933 -5.818 4.933 c 0 0 -11.195 0.456 -11.195 0.456 c 0 0 -13.243 3.621 -13.243 3.621 c 0 0 -6.827 9.299 -6.827 9.299 c 0 0 -6.535 4.925 -6.535 4.925 c 0 0 -1.732 3.77 -1.732 3.77 c 0 0 -6.146 7.528 -6.146 7.528 c 0 0 -3.367 10.625 -3.367 10.625 c 0 0 1.165 1.254 1.165 1.254 c 0 0 -3.322 10.957 -3.322 10.957 c 0 0 -1.78 1.059 -1.78 1.059 c 0 0 -7.687 -0.561 -7.687 -0.561 c 0 0 -3.857 1.585 -3.857 1.585 c 0 0 -2.317 1.98 -2.317 1.98 c 0 0 -7.18 9.722 -7.18 9.722 c 0 0 -3.038 6.72 -3.038 6.72 c 0 0 -14.179 -0.237 -14.179 -0.237 c 0 0 -7.204 6.951 -7.204 6.951 c -0.001 0 -12.962 4.238 -12.962 4.238 c 0 0 37.868 29.441 37.868 29.441 c 0 0 91.412 67.584 91.412 67.584 c 0 0 0.398 1.977 0.398 1.977 c 0 0 27.738 18.602 27.738 18.602 c 0 0 0.568 2.959 0.568 2.959 c 0 0 -0.822 5.766 -0.822 5.766 c 0 0 0.463 1.174 0.463 1.174 c 0 0 3.119 -0.263 3.119 -0.263 c 0 0 1.575 2.019 1.575 2.019 c 0 0 6.354 2.238 6.354 2.238 c 0 0 0.896 4.331 0.896 4.331 c 0 0 3.206 2.918 3.206 2.918 c 0 0 1.768 -0.039 1.768 -0.039 c 0 0 0.994 1.532 0.994 1.532 c 0 0 1.018 -0.565 1.018 -0.565 c 0 0 1.242 0.478 1.242 0.478 c 0 0 0.795 -0.395 0.795 -0.395 c 0 0 1.279 1.151 1.279 1.151 c 0 0 1.88 -1.958 1.88 -1.958 c 0 0 1.563 0.354 1.563 0.354 c 0 0 2.465 2.305 2.465 2.305 c 0 0 1.674 3.077 1.674 3.077 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Adrar\"},\"2\":{\"path\":\"M 251.147 52.1578 c 0 0 0.255 -1.759 0.255 -1.759 c 0 0 -1.269 -0.908 -1.269 -0.908 c 0 0 -0.683 -1.607 -0.683 -1.607 c 0 0 0.258 -1.099 0.258 -1.099 c 0 0 -0.801 0.179 -0.801 0.179 c 0 0 -0.68 -0.703 -0.68 -0.703 c 0 0 -0.004 -1.019 -0.004 -1.019 c 0 0 1.33 -0.886 1.33 -0.886 c 0 0 -1.829 -0.536 -1.829 -0.536 c 0 0 1.196 -1.169 1.196 -1.169 c 0 0 -1.496 -1.623 -1.496 -1.623 c 0 0 0.13 -1.172 0.13 -1.172 c 0 0 2.229 -1.641 2.229 -1.641 c 0 0 1.099 -2.467 1.099 -2.467 c 0 0 -4.333 0.653 -4.333 0.653 c 0 0 -2.668 -0.688 -2.668 -0.688 c 0 0 -1.591 1.201 -1.591 1.201 c 0 0 -4.207 0.314 -4.207 0.314 c 0 0 -3.056 1.182 -3.056 1.182 c 0 0 -0.989 1.688 -0.989 1.688 c 0 0 -3.115 1.248 -3.115 1.248 c 0 0 -1 3.282 -1 3.282 c 0 0 2.055 0.32 2.055 0.32 c 0 0 2.173 -0.8 2.173 -0.8 c 0 0 0.468 1.895 0.468 1.895 c 0 0 0.537 0.021 0.537 0.021 c 0 0 -0.826 1.687 -0.826 1.687 c 0 0 0.509 -0.155 0.509 -0.155 c 0 0 0.519 1.997 0.519 1.997 c 0 0 1.774 -0.663 1.774 -0.663 c 0 0 -0.347 0.243 -0.347 0.243 c 0 0 0.593 0.041 0.593 0.041 c 0 0 0.541 1.18 0.541 1.18 c 0 0 1.563 0.984 1.563 0.984 c 0 0 2.838 -0.813 2.838 -0.813 c 0 0 2.173 3.286 2.173 3.286 c 0 0 0.06 -1.414 0.06 -1.414 c 0 0 0.518 -0.333 0.518 -0.333 c 0 0 -0.384 -0.349 -0.384 -0.349 c 0 0 2.264 -0.619 2.264 -0.619 c 0 0 0.035 -0.865 0.035 -0.865 c 0 0 1.22 -1.163 1.22 -1.163 c 0 0 1.035 1.876 1.035 1.876 c 0 0 1.906 1.174 1.906 1.174 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Chlef\"},\"3\":{\"path\":\"M 311.039 126.689 c 0 0 -3.193 -5.374 -3.193 -5.374 c 0 0 -4.008 -3.915 -4.008 -3.915 c 0 0 -1.49 -1.064 -1.49 -1.064 c 0 0 -8.125 -3.061 -8.125 -3.061 c 0 0 -1.408 -2.328 -1.408 -2.328 c 0 0 -3.983 -3.588 -3.983 -3.588 c 0 0 -5.242 -1.505 -5.242 -1.505 c 0 0 -1.604 -3.201 -1.604 -3.201 c 0 0 0.146 -1.212 0.146 -1.212 c 0 0 -2.38 -6.709 -2.38 -6.709 c 0 0 -1.252 0.433 -1.252 0.433 c 0 0 0.124 -0.432 0.124 -0.432 c 0 0 -1.456 -0.758 -1.456 -0.758 c 0 0 -2.267 2.288 -2.267 2.288 c 0 0 0.026 1.448 0.026 1.448 c 0 0 -0.695 -0.262 -0.695 -0.262 c 0 0 -2.258 1.064 -2.258 1.064 c 0 0 -1.209 -0.324 -1.209 -0.324 c 0 0 -3.377 -4.766 -3.377 -4.766 c 0 0 -0.441 0.087 -0.441 0.087 c 0 0 -1.244 -3.591 -1.244 -3.591 c 0 0 -0.566 -6.331 -0.566 -6.331 c 0 0 -3.015 0.373 -3.015 0.373 c 0 0 -0.437 1.043 -0.437 1.043 c 0 0 -1.978 0.888 -1.978 0.888 c 0 0 -2.349 2.563 -2.349 2.563 c 0 0 -4.876 1.753 -4.876 1.753 c 0 0 -1.839 2.088 -1.839 2.088 c 0 0 -0.366 2.438 -0.366 2.438 c 0 0 -1.644 0.977 -1.644 0.977 c 0 0 -0.273 -1.14 -0.273 -1.14 c 0 0 -3.773 2.229 -3.773 2.229 c 0 0 0.808 1.346 0.808 1.346 c 0 0 -2.194 1.46 -2.194 1.46 c 0 0 0.863 1.461 0.863 1.461 c 0 0 -0.165 0.989 -0.165 0.989 c 0 0 2.206 0.969 2.206 0.969 c 0 0 1.613 1.795 1.613 1.795 c 0 0 3.495 -0.817 3.495 -0.817 c 0 0 1.828 1.584 1.828 1.584 c 0 0 0.565 1.551 0.565 1.551 c 0 0 -0.247 2.655 -0.247 2.655 c 0 0 1.457 0.411 1.457 0.411 c 0 0 0.124 0.991 0.124 0.991 c 0 0 1.142 1.009 1.142 1.009 c 0 0 -0.82 1.435 -0.82 1.435 c 0 0 -0.285 2.856 -0.285 2.856 c 0 0 3.122 0.287 3.122 0.287 c 0 0 -0.206 1.673 -0.206 1.673 c 0 0 3.521 1.138 3.521 1.138 c 0 0 2.073 -0.452 2.073 -0.452 c 0 0 -0.203 3.901 -0.203 3.901 c 0 0 -3.998 0.134 -3.998 0.134 c 0 0 0.641 0.886 0.641 0.886 c 0 0 -0.146 1.528 -0.146 1.528 c 0 0 3.112 6.564 3.112 6.564 c 0 0 10.825 -0.946 10.825 -0.946 c 0 0 5.37 -1.604 5.37 -1.604 c 0 0 8.55 2.039 8.55 2.039 c 0 0 -0.331 -2.903 -0.331 -2.903 c 0 0 -3.66 -2.23 -3.66 -2.23 c 0 0 7.853 -0.362 7.853 -0.362 c 0 0 0.945 -0.734 0.945 -0.734 c 0 0 0.439 0.318 0.439 0.318 c 0 0 0.417 -0.754 0.417 -0.754 c 0 0 0.305 0.512 0.305 0.512 c 0 0 0.903 -0.387 0.903 -0.387 c 0 0 2.684 1.107 2.684 1.107 c 0 0 0.77 -0.422 0.77 -0.422 c 0 0 13.076 0.901 13.076 0.901 c 0 0 0 0 0 0\",\"name\":\"Laghouat\"},\"4\":{\"path\":\"M 377.235 49.5529 c 0 0 0.701 0.387 0.701 0.387 c 0 0 0.531 2.116 0.531 2.116 c 0 0 1.615 0.739 1.615 0.739 c 0 0 -0.772 0.688 -0.772 0.688 c 0 0 0.142 1.093 0.142 1.093 c 0 0 1.311 2.659 1.311 2.659 c 0 0 -4.046 1.621 -4.046 1.621 c 0 0 -1.879 2.798 -1.879 2.798 c 0 0 -0.624 0.112 -0.624 0.112 c 0 0 -0.659 -1.052 -0.659 -1.052 c 0 0 -0.692 -0.06 -0.692 -0.06 c 0 0 -0.333 -1.191 -0.333 -1.191 c 0 0 -0.393 -0.313 -0.393 -0.313 c 0 0 -0.6 0.601 -0.6 0.601 c 0 0 0.179 -0.579 0.179 -0.579 c 0 0 -1.313 -0.926 -1.313 -0.926 c 0 0 -0.409 1.399 -0.409 1.399 c 0 0 -1.049 0.308 -1.049 0.308 c 0 0 0.063 -2.163 0.063 -2.163 c 0 0 -1.771 -0.877 -1.771 -0.877 c 0 0 -0.118 0.548 -0.118 0.548 c 0 0 -1.816 -0.27 -1.816 -0.27 c 0 0 -0.957 2.009 -0.957 2.009 c 0 0 -1.647 -0.482 -1.647 -0.482 c 0 0 0.408 -1.016 0.408 -1.016 c 0 0 -0.614 -0.53 -0.614 -0.53 c 0 0 -4.031 0.608 -4.031 0.608 c 0 0 -0.774 -1.596 -0.774 -1.596 c 0 0 -2.106 -2.413 -2.106 -2.413 c 0 0 -1.569 -0.717 -1.569 -0.717 c 0 0 -2.67 1.215 -2.67 1.215 c 0 0 -0.353 -0.517 -0.353 -0.517 c 0 0 0.464 -0.385 0.464 -0.385 c 0 0 -0.535 -0.365 -0.535 -0.365 c 0 0 0.359 -0.917 0.359 -0.917 c 0 0 -2.605 -0.267 -2.605 -0.267 c 0 0 -0.109 -0.587 -0.109 -0.587 c 0 0 -1.551 1.313 -1.551 1.313 c 0 0 -2.433 -1.298 -2.433 -1.298 c 0 0 0.803 -2.113 0.803 -2.113 c 0 0 1.65 -0.227 1.65 -0.227 c 0 0 0.715 0.51 0.715 0.51 c 0 0 -0.213 -0.771 -0.213 -0.771 c 0 0 0.78 0.116 0.78 0.116 c 0 0 1.221 -1.532 1.221 -1.532 c 0 0 0.161 -2.791 0.161 -2.791 c 0 0 2.365 -0.863 2.365 -0.863 c 0 0 -0.381 0.438 -0.381 0.438 c 0 0 0.595 1.16 0.595 1.16 c 0 0 1.011 0.369 1.011 0.369 c 0 0 -0.465 -0.805 -0.465 -0.805 c 0 0 1.122 0.603 1.122 0.603 c 0 0 0.375 -1.067 0.375 -1.067 c 0 0 2.243 -0.16 2.243 -0.16 c 0 0 0.264 -1.443 0.264 -1.443 c 0 0 1.445 1.166 1.445 1.166 c 0 0 3.62 0.066 3.62 0.066 c 0 0 -0.201 1.256 -0.201 1.256 c 0 0 1.267 0.551 1.267 0.551 c 0 0 -0.196 0.957 -0.196 0.957 c 0 0 0.998 0.166 0.998 0.166 c 0 0 2.784 -1.372 2.784 -1.372 c 0 0 0.683 -1.773 0.683 -1.773 c 0 0 1.257 -0.076 1.257 -0.076 c 0 0 0.424 2.263 0.424 2.263 c 0 0 0.736 0.045 0.736 0.045 c 0 0 0.649 2.12 0.649 2.12 c 0 0 1.024 1.332 1.024 1.332 c 0 0 2.675 0.939 2.675 0.939 c 0 0 -0.031 1.478 -0.031 1.478 c 0 0 2.814 -0.213 2.814 -0.213 c 0 0 -0.354 -1.537 -0.354 -1.537 c 0 0 0.815 -0.485 0.815 -0.485 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Oum El-Bouaghi\"},\"5\":{\"path\":\"M 354.598 79.5648 c 0 0 -0.634 -2.146 -0.634 -2.146 c 0 0 0.812 -0.795 0.812 -0.795 c 0 0 -0.611 -0.482 -0.611 -0.482 c 0 0 0.499 -0.58 0.499 -0.58 c 0 0 -1.347 -2.257 -1.347 -2.257 c 0 0 -0.802 -0.146 -0.802 -0.146 c 0 0 0.401 -0.844 0.401 -0.844 c 0 0 -0.438 -1.353 -0.438 -1.353 c 0 0 1.308 -1.429 1.308 -1.429 c 0 0 -0.23 -2.636 -0.23 -2.636 c 0 0 1.644 -1.396 1.644 -1.396 c 0 0 -1.052 -0.219 -1.052 -0.219 c 0 0 0.178 -1.438 0.178 -1.438 c 0 0 -0.634 -1.333 -0.634 -1.333 c 0 0 1.491 -1.386 1.491 -1.386 c 0 0 2.418 -0.599 2.418 -0.599 c 0 0 0.612 -1.514 0.612 -1.514 c 0 0 -0.74 -1.491 -0.74 -1.491 c 0 0 0.214 -1.337 0.214 -1.337 c 0 0 -2.106 -2.414 -2.106 -2.414 c 0 0 -1.569 -0.716 -1.569 -0.716 c 0 0 -2.67 1.214 -2.67 1.214 c 0 0 -0.353 -0.518 -0.353 -0.518 c 0 0 0.464 -0.385 0.464 -0.385 c 0 0 -0.535 -0.365 -0.535 -0.365 c 0 0 0.36 -0.917 0.36 -0.917 c 0 0 -2.606 -0.267 -2.606 -0.267 c 0 0 -0.11 -0.587 -0.11 -0.587 c 0 0 -1.55 1.313 -1.55 1.313 c 0 0 -2.433 -1.298 -2.433 -1.298 c 0 0 -3.583 -0.418 -3.583 -0.418 c 0 0 -0.49 0.384 -0.49 0.384 c 0 0 -0.965 0.569 -0.965 0.569 c 0 0 0.445 1.163 0.445 1.163 c 0 0 -2.807 -2.418 -2.807 -2.418 c 0 0 -1.214 0.316 -1.214 0.316 c 0 0 -1.424 1.56 -1.424 1.56 c 0 0 0.121 0.773 0.121 0.773 c 0 0 1.212 0.402 1.212 0.402 c 0 0 -0.792 1.303 -0.792 1.303 c 0 0 -0.682 -0.238 -0.682 -0.238 c 0 0 -0.502 0.541 -0.502 0.541 c 0 0 -2.294 -0.948 -2.294 -0.948 c 0 0 -0.241 0.685 -0.241 0.685 c 0 0 -0.797 -0.078 -0.797 -0.078 c 0 0 -1.382 1.093 -1.382 1.093 c 0 0 0.234 1.001 0.234 1.001 c 0 0 -0.78 1.759 -0.78 1.759 c 0 0 -1.127 -0.332 -1.127 -0.332 c 0 0 -2.661 2.963 -2.661 2.963 c 0 0 -1.817 0.906 -1.817 0.906 c 0 0 -0.723 -1.068 -0.723 -1.068 c 0 0 -1.061 -0.012 -1.061 -0.012 c 0 0 -0.828 0.921 -0.828 0.921 c 0 0 -0.075 -0.786 -0.075 -0.786 c 0 0 -0.958 1.506 -0.958 1.506 c 0 0 -1.945 -1.698 -1.945 -1.698 c 0 0 0.822 4.4 0.822 4.4 c 0 0 -0.38 2.546 -0.38 2.546 c 0 0 -0.915 1.547 -0.915 1.547 c 0 0 -0.525 -0.186 -0.525 -0.186 c 0 0 -1.186 1.173 -1.186 1.173 c 0 0 0.194 0.605 0.194 0.605 c 0 0 2.929 0.061 2.929 0.061 c 0 0 2.126 1.396 2.126 1.396 c 0 0 0.583 -0.342 0.583 -0.342 c 0 0 2.02 0.968 2.02 0.968 c 0 0 0.73 1.103 0.73 1.103 c 0 0 1.017 -0.474 1.017 -0.474 c 0 0 1.503 0.709 1.503 0.709 c 0 0 0.559 -0.079 0.559 -0.079 c 0 0 0.341 -1.11 0.341 -1.11 c 0 0 3.911 -0.103 3.911 -0.103 c 0 0 1.787 -0.953 1.787 -0.953 c 0 0 0.162 -0.935 0.162 -0.935 c 0 0 -0.656 -0.975 -0.656 -0.975 c 0 0 -1.454 -0.28 -1.454 -0.28 c 0 0 -0.321 -0.952 -0.321 -0.952 c 0 0 2.216 0.152 2.216 0.152 c 0 0 3.561 -2.397 3.561 -2.397 c 0 0 2.817 1.882 2.817 1.882 c 0 0 1.857 -0.219 1.857 -0.219 c 0 0 -2.247 2.121 -2.247 2.121 c 0 0 0.993 1.373 0.993 1.373 c 0 0 -0.826 1.425 -0.826 1.425 c 0 0 0.764 -0.211 0.764 -0.211 c 0 0 0.976 1.769 0.976 1.769 c 0 0 2.263 -2.836 2.263 -2.836 c 0 0 1.025 0.388 1.025 0.388 c 0 0 -0.085 1.186 -0.085 1.186 c 0 0 2.13 0.699 2.13 0.699 c 0 0 0.685 -1.448 0.685 -1.448 c 0 0 2.061 -0.262 2.061 -0.262 c 0 0 1.65 -1.111 1.65 -1.111 c 0 0 1.29 1.626 1.29 1.626 c 0 0 -0.779 1.125 -0.779 1.125 c 0 0 0.506 0.944 0.506 0.944 c 0 0 -0.438 2.539 -0.438 2.539 c 0 0 2.456 1.971 2.456 1.971 c 0 0 1.033 -0.363 1.033 -0.363 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Batna\"},\"6\":{\"path\":\"M 314.203 38.1218 c 0 0 -0.336 1.124 -0.336 1.124 c 0 0 -2.016 0.919 -2.016 0.919 c 0 0 -0.034 2.49 -0.034 2.49 c 0 0 -4.18 1.099 -4.18 1.099 c 0 0 -0.776 -1.701 -0.776 -1.701 c 0 0 0.222 -0.601 0.222 -0.601 c 0 0 -0.75 -0.99 -0.75 -0.99 c 0 0 0.743 -0.487 0.743 -0.487 c 0 0 0.148 -1.306 0.148 -1.306 c 0 0 -0.678 -1.324 -0.678 -1.324 c 0 0 1.795 -0.83 1.795 -0.83 c 0 0 2.18 -2.443 2.18 -2.443 c 0 0 -0.406 -0.66 -0.406 -0.66 c 0 0 1.259 -1.582 1.259 -1.582 c 0 0 -1.778 -0.942 -1.778 -0.942 c 0 0 0.148 -0.646 0.148 -0.646 c 0 0 1.229 -0.36 1.229 -0.36 c 0 0 0.704 0.539 0.704 0.539 c 0 0 0.672 -0.653 0.672 -0.653 c 0 0 -0.069 -1.338 -0.069 -1.338 c 0 0 -1.397 -1.952 -1.397 -1.952 c 0 0 3.611 -0.405 3.611 -0.405 c 0 0 3.398 1.061 3.398 1.061 c 0 0 2.038 1.439 2.038 1.439 c 0 0 1.871 0.364 1.871 0.364 c 0 0 -0.442 1.715 -0.442 1.715 c 0 0 2.887 1.563 2.887 1.563 c 0 0 4.324 -0.311 4.324 -0.311 c 0 0 0.029 1.315 0.029 1.315 c 0 0 0.916 0.194 0.916 0.194 c 0 0 -0.184 1.479 -0.184 1.479 c 0 0 -2.389 1.071 -2.389 1.071 c 0 0 0.252 0.685 0.252 0.685 c 0 0 -1.314 1.474 -1.314 1.474 c 0 0 0.471 0.919 0.471 0.919 c 0 0 -0.748 0.375 -0.748 0.375 c 0 0 -1.656 0.241 -1.656 0.241 c 0 0 0.025 -0.935 0.025 -0.935 c 0 0 -0.569 0.197 -0.569 0.197 c 0 0 0.023 -2.689 0.023 -2.689 c 0 0 0.535 -0.694 0.535 -0.694 c 0 0 -2.159 -1.465 -2.159 -1.465 c 0 0 -0.039 0.448 -0.039 0.448 c 0 0 -0.928 -0.088 -0.928 -0.088 c 0 0 -0.447 1.378 -0.447 1.378 c 0 0 -3.62 -0.479 -3.62 -0.479 c 0 0 -0.048 1.35 -0.048 1.35 c 0 0 -2.517 1.442 -2.517 1.442 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Béjaïa\"},\"7\":{\"path\":\"M 354.598 79.5648 c 0 0 -1.037 0.363 -1.037 0.363 c 0 0 -2.456 -1.971 -2.456 -1.971 c 0 0 0.438 -2.539 0.438 -2.539 c 0 0 -0.506 -0.943 -0.506 -0.943 c 0 0 0.779 -1.125 0.779 -1.125 c 0 0 -1.289 -1.626 -1.289 -1.626 c 0 0 -1.651 1.111 -1.651 1.111 c 0 0 -2.061 0.261 -2.061 0.261 c 0 0 -0.685 1.448 -0.685 1.448 c 0 0 -2.13 -0.699 -2.13 -0.699 c 0 0 0.085 -1.186 0.085 -1.186 c 0 0 -1.025 -0.387 -1.025 -0.387 c 0 0 -2.263 2.835 -2.263 2.835 c 0 0 -0.975 -1.768 -0.975 -1.768 c 0 0 -0.765 0.21 -0.765 0.21 c 0 0 0.826 -1.425 0.826 -1.425 c 0 0 -0.993 -1.373 -0.993 -1.373 c 0 0 2.247 -2.121 2.247 -2.121 c 0 0 -1.857 0.22 -1.857 0.22 c 0 0 -2.817 -1.883 -2.817 -1.883 c 0 0 -3.56 2.397 -3.56 2.397 c 0 0 -2.217 -0.152 -2.217 -0.152 c 0 0 0.321 0.952 0.321 0.952 c 0 0 1.454 0.28 1.454 0.28 c 0 0 0.656 0.975 0.656 0.975 c 0 0 -0.162 0.935 -0.162 0.935 c 0 0 -1.787 0.954 -1.787 0.954 c 0 0 -3.911 0.102 -3.911 0.102 c 0 0 -0.341 1.11 -0.341 1.11 c 0 0 -0.558 0.08 -0.558 0.08 c 0 0 -1.503 -0.709 -1.503 -0.709 c 0 0 -1.018 0.473 -1.018 0.473 c 0 0 -0.729 -1.102 -0.729 -1.102 c 0 0 -2.02 -0.969 -2.02 -0.969 c 0 0 -0.584 0.343 -0.584 0.343 c 0 0 0.446 3.492 0.446 3.492 c 0 0 0.547 0.305 0.547 0.305 c 0 0 -0.537 0.065 -0.537 0.065 c 0 0 -0.684 1.586 -0.684 1.586 c 0 0 -5.437 1.63 -5.437 1.63 c 0 0 -0.941 1.502 -0.941 1.502 c 0 0 -1.002 0.173 -1.002 0.173 c 0 0 1.299 1.086 1.299 1.086 c 0 0 -1.021 0.547 -1.021 0.547 c 0 0 -0.658 -0.445 -0.658 -0.445 c 0 0 -1.831 1.14 -1.831 1.14 c 0 0 -4.807 0.046 -4.807 0.046 c 0 0 -0.876 1.823 -0.876 1.823 c 0 0 -2.192 1.835 -2.192 1.835 c 0 0 0.522 0.302 0.522 0.302 c 0 0 0.418 3.083 0.418 3.083 c 0 0 1.216 1.271 1.216 1.271 c 0 0 -0.307 0.725 -0.307 0.725 c 0 0 1.814 0.933 1.814 0.933 c 0 0 -0.773 1.006 -0.773 1.006 c 0 0 -1.99 0.525 -1.99 0.525 c 0 0 -0.442 0.687 -0.442 0.687 c 0 0 0.935 1.143 0.935 1.143 c 0 0 1.888 0.264 1.888 0.264 c 0 0 0.385 1.491 0.385 1.491 c 0 0 2.354 0.396 2.354 0.396 c 0 0 0.57 0.73 0.57 0.73 c 0 0 -1.197 -0.003 -1.197 -0.003 c 0 0 -1.375 1.475 -1.375 1.475 c 0 0 -1.342 0.124 -1.342 0.124 c 0 0 -0.397 0.525 -0.397 0.525 c 0 0 0.45 0.688 0.45 0.688 c 0 0 6.57 2.831 6.57 2.831 c 0 0 1.081 1.471 1.081 1.471 c 0 0 3.26 0.627 3.26 0.627 c 0 0 0.39 0.95 0.39 0.95 c 0 0 1.965 -0.327 1.965 -0.327 c 0 0 0.724 1.225 0.724 1.225 c 0 0 4.001 0.998 4.001 0.998 c 0 0 -0.522 0.879 -0.522 0.879 c 0 0 0.117 1.904 0.117 1.904 c 0 0 3.919 3.499 3.919 3.499 c 0 0 0.91 -1.858 0.91 -1.858 c 0 0 0.663 -1.724 0.663 -1.724 c 0 0 -0.688 -1.585 -0.688 -1.585 c 0 0 -0.35 -4.63 -0.35 -4.63 c 0 0 -1.083 -2.091 -1.083 -2.091 c 0 0 0.858 -4.001 0.858 -4.001 c 0 0 1.969 -4.693 1.969 -4.693 c 0 0 -3.667 -3.257 -3.667 -3.257 c 0 0 0.702 -1.852 0.702 -1.852 c 0 0 -1.199 -1.354 -1.199 -1.354 c 0 0 1.889 -1.327 1.889 -1.327 c 0 0 -0.72 -0.627 -0.72 -0.627 c 0 0 1.104 -0.631 1.104 -0.631 c 0 0 2.287 1.521 2.287 1.521 c 0 0 11.929 1.271 11.929 1.271 c 0 0 5.31 -1.304 5.31 -1.304 c 0 0 5.733 2.047 5.733 2.047 c 0 0 1.45 1.393 1.45 1.393 c 0 0 1.654 -0.581 1.654 -0.581 c 0 0 1.726 -2.196 1.726 -2.196 c 0 0 -0.517 -1.926 -0.517 -1.926 c 0 0 1.047 -2.039 1.047 -2.039 c 0 0 -0.163 -3.493 -0.163 -3.493 c 0 0 0.727 -2.389 0.727 -2.389 c 0 0 -0.822 0.197 -0.822 0.197 c 0 0 0.415 -0.997 0.415 -0.997 c 0 0 -1.047 -1.056 -1.047 -1.056 c 0 0 0.4 -0.473 0.4 -0.473 c 0 0 -1.139 0.062 -1.139 0.062 c 0 0 -0.737 1.719 -0.737 1.719 c 0 0 -1.087 0.596 -1.087 0.596 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Biskra\"},\"8\":{\"path\":\"M 189.561 141.431 c 0 0 0.163 2.393 0.163 2.393 c 0 0 1.428 0.123 1.428 0.123 c 0 0 -0.542 2.863 -0.542 2.863 c 0 0 1.384 0.042 1.384 0.042 c 0 0 0.298 1.563 0.298 1.563 c 0 0 5.834 -3.103 5.834 -3.103 c 0 0 6.79 1.902 6.79 1.902 c 0 0 1.803 -1.33 1.803 -1.33 c 0 0 2.417 0.518 2.417 0.518 c 0 0 1.629 -2.4 1.629 -2.4 c 0 0 -0.953 4.385 -0.953 4.385 c 0 0 -2.081 -0.471 -2.081 -0.471 c 0 0 -1.103 0.817 -1.103 0.817 c 0 0 -1.05 2.219 -1.05 2.219 c 0 0 -0.139 4.177 -0.139 4.177 c 0 0 0.68 2.281 0.68 2.281 c 0 0 -0.686 0.065 -0.686 0.065 c 0 0 0.179 0.967 0.179 0.967 c 0 0 -0.602 0.846 -0.602 0.846 c 0 0 0.955 1.182 0.955 1.182 c 0 0 -1.242 1.209 -1.242 1.209 c 0 0 1.247 2.015 1.247 2.015 c 0 0 -1.014 1.204 -1.014 1.204 c 0 0 0.036 1.863 0.036 1.863 c 0 0 0.853 1.823 0.853 1.823 c 0 0 2.917 2.352 2.917 2.352 c 0 0 -0.818 2.98 -0.818 2.98 c 0 0 14.029 11.903 14.029 11.903 c 0 0 -8.624 9.693 -8.624 9.693 c 0 0 -3.966 6.909 -3.966 6.909 c 0 0 -10.189 7.171 -10.189 7.171 c 0 0 -1.53 5.245 -1.53 5.245 c 0 0 1.021 6.804 1.021 6.804 c 0 0 -0.608 2.722 -0.608 2.722 c 0 0 -5.818 4.933 -5.818 4.933 c 0 0 -11.195 0.456 -11.195 0.456 c 0 0 -13.243 3.621 -13.243 3.621 c 0 0 -6.827 9.299 -6.827 9.299 c 0 0 -6.535 4.925 -6.535 4.925 c 0 0 -1.732 3.771 -1.732 3.771 c 0 0 -6.146 7.526 -6.146 7.526 c 0 0 -3.367 10.625 -3.367 10.625 c 0 0 1.165 1.256 1.165 1.256 c 0 0 -13.244 -1.684 -13.244 -1.684 c 0 0 -3.001 -2.418 -3.001 -2.418 c 0 0 -5.835 -7.1 -5.835 -7.1 c 0 0 -0.084 -7.644 -0.084 -7.644 c 0 0 -6.775 -12.676 -6.775 -12.676 c 0 0 -5.777 -21.184 -5.777 -21.184 c 0 0 -5.817 -3.173 -5.817 -3.173 c 0 0 -8.409 -0.352 -8.409 -0.352 c 0 0 -4.977 -4.181 -4.977 -4.181 c 0 0 4.214 -5.384 4.214 -5.384 c 0 0 0.024 -1.372 0.024 -1.372 c 0 0 1.014 -1.498 1.014 -1.498 c 0 0 8.097 -5.763 8.097 -5.763 c 0 0 7.482 -3.241 7.482 -3.241 c 0 0 6.645 -5.965 6.645 -5.965 c 0 0 3.927 -1.254 3.927 -1.254 c 0 0 6.729 -0.776 6.729 -0.776 c 0 0 4.574 -1.715 4.574 -1.715 c 0 0 0.583 -0.765 0.583 -0.765 c 0 0 -1.006 -1.718 -1.006 -1.718 c 0 0 0.712 -1.927 0.712 -1.927 c 0 0 0.439 0.271 0.439 0.271 c 0 0 1.753 -2.209 1.753 -2.209 c 0 0 0.06 -2.135 0.06 -2.135 c 0 0 -0.201 -0.656 -0.201 -0.656 c 0 0 -0.495 0.514 -0.495 0.514 c 0 0 -0.386 -0.407 -0.386 -0.407 c 0 0 -0.456 -1.584 -0.456 -1.584 c 0 0 -0.47 0.188 -0.47 0.188 c 0 0 0.021 -1.495 0.021 -1.495 c 0 0 -0.024 1.793 -0.024 1.793 c 0 0 -0.667 0.211 -0.667 0.211 c 0 0 0.487 0.234 0.487 0.234 c 0 0 -0.779 -0.15 -0.779 -0.15 c 0 0 0.248 -1.646 0.248 -1.646 c 0 0 -0.643 -0.663 -0.643 -0.663 c 0 0 -0.118 0.998 -0.118 0.998 c 0 0 -0.614 -0.265 -0.614 -0.265 c 0 0 0.041 0.743 0.041 0.743 c 0 0 -0.644 -0.249 -0.644 -0.249 c 0 0 -0.354 0.62 -0.354 0.62 c 0 0 0.437 -2.005 0.437 -2.005 c 0 0 -0.625 -1.467 -0.625 -1.467 c 0 0 0.73 -0.664 0.73 -0.664 c 0 0 -0.554 -0.775 -0.554 -0.775 c 0 0 0.872 -1.707 0.872 -1.707 c 0 0 0.565 0.509 0.565 0.509 c 0 0 1.714 -1.251 1.714 -1.251 c 0 0 -0.12 -6.14 -0.12 -6.14 c 0 0 18.347 -3.483 18.347 -3.483 c 0 0 -2.126 -6.029 -2.126 -6.029 c 0 0 0.609 -2.241 0.609 -2.241 c 0 0 6.877 0.41 6.877 0.41 c 0 0 3.008 -1.097 3.008 -1.097 c 0 0 4.058 -0.094 4.058 -0.094 c 0 0 2.286 0.737 2.286 0.737 c 0 0 3.44 -0.906 3.44 -0.906 c 0 0 9.396 2.568 9.396 2.568 c 0 0 7.359 0.568 7.359 0.568 c 0 0 1.897 -1.269 1.897 -1.269 c 0 0 -1.222 -1.218 -1.222 -1.218 c 0 0 -1.895 0.225 -1.895 0.225 c 0 0 1.267 -1.027 1.267 -1.027 c 0 0 -0.083 -3.115 -0.083 -3.115 c 0 0 1.147 -1.937 1.147 -1.937 c 0 0 1.524 -0.259 1.524 -0.259 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Béchar\"},\"9\":{\"path\":\"M 284.26 36.7689 c 0 0 0.247 -1.279 0.247 -1.279 c 0 0 -0.585 -0.271 -0.585 -0.271 c 0 0 0.385 -0.414 0.385 -0.414 c 0 0 -0.471 -0.855 -0.471 -0.855 c 0 0 0.536 -0.479 0.536 -0.479 c 0 0 -0.888 0.351 -0.888 0.351 c 0 0 -0.756 -1.312 -0.756 -1.312 c 0 0 -1.009 0.771 -1.009 0.771 c 0 0 -0.61 -0.303 -0.61 -0.303 c 0 0 -0.7 1.808 -0.7 1.808 c 0 0 -1.118 0.075 -1.118 0.075 c 0 0 0.107 -1.082 0.107 -1.082 c 0 0 -1.49 1.068 -1.49 1.068 c 0 0 -3.771 -1.583 -3.771 -1.583 c 0 0 0.339 1.023 0.339 1.023 c 0 0 -2.109 0.599 -2.109 0.599 c 0 0 -1.479 1.646 -1.479 1.646 c 0 0 -1.06 0.141 -1.06 0.141 c 0 0 0.442 0.803 0.442 0.803 c 0 0 -0.447 0.64 -0.447 0.64 c 0 0 -1.568 -0.302 -1.568 -0.302 c 0 0 -1.037 1.464 -1.037 1.464 c 0 0 2.993 2.104 2.993 2.104 c 0 0 1.509 -1.087 1.509 -1.087 c 0 0 2.894 0.205 2.894 0.205 c 0 0 1.567 -1.178 1.567 -1.178 c 0 0 0.671 1.507 0.671 1.507 c 0 0 1.48 0.008 1.48 0.008 c 0 0 0.866 -0.967 0.866 -0.967 c 0 0 -0.188 -1.356 -0.188 -1.356 c 0 0 0.474 0.955 0.474 0.955 c 0 0 0.732 -0.597 0.732 -0.597 c 0 0 0.693 0.698 0.693 0.698 c 0 0 1.156 -1.154 1.156 -1.154 c 0 0 0.085 -1.381 0.085 -1.381 c 0 0 1.631 0.27 1.631 0.27 c 0 0 0.479 -0.536 0.479 -0.536 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Blida\"},\"10\":{\"path\":\"M 300.562 48.4998 c 0 0 1.468 -1.134 1.468 -1.134 c 0 0 0.186 -2.385 0.186 -2.385 c 0 0 1.708 -0.861 1.708 -0.861 c 0 0 0.796 -1.241 0.796 -1.241 c 0 0 1.361 0.091 1.361 0.091 c 0 0 0.781 -0.917 0.781 -0.917 c 0 0 0.224 -0.601 0.224 -0.601 c 0 0 -0.75 -0.99 -0.75 -0.99 c 0 0 0.742 -0.488 0.742 -0.488 c 0 0 0.148 -1.305 0.148 -1.305 c 0 0 -0.679 -1.324 -0.679 -1.324 c 0 0 -2.513 0.268 -2.513 0.268 c 0 0 -0.274 -0.535 -0.274 -0.535 c 0 0 -1.008 0.543 -1.008 0.543 c 0 0 -5.654 0.163 -5.654 0.163 c 0 0 -1.333 -0.33 -1.333 -0.33 c 0 0 -0.937 -1.637 -0.937 -1.637 c 0 0 -0.781 0.04 -0.781 0.04 c 0 0 -0.892 -1.236 -0.892 -1.236 c 0 0 -4.715 -0.709 -4.715 -0.709 c 0 0 -0.479 0.983 -0.479 0.983 c 0 0 -1.366 0.715 -1.366 0.715 c 0 0 -2.088 -0.118 -2.088 -0.118 c 0 0 -0.247 1.278 -0.247 1.278 c 0 0 2.723 2.63 2.723 2.63 c 0 0 1.561 -1.479 1.561 -1.479 c 0 0 1.357 0.704 1.357 0.704 c 0 0 -0.438 0.687 -0.438 0.687 c 0 0 0.997 1.391 0.997 1.391 c 0 0 -1.07 0.599 -1.07 0.599 c 0 0 -0.442 1.267 -0.442 1.267 c 0 0 1.07 0.978 1.07 0.978 c 0 0 -0.182 0.811 -0.182 0.811 c 0 0 -1.427 0.413 -1.427 0.413 c 0 0 -0.228 0.854 -0.228 0.854 c 0 0 0.655 1.041 0.655 1.041 c 0 0 -0.407 0.485 -0.407 0.485 c 0 0 -0.899 0.935 -0.899 0.935 c 0 0 -1.014 -0.015 -1.014 -0.015 c 0 0 0.479 0.781 0.479 0.781 c 0 0 2.788 0.435 2.788 0.435 c 0 0 1.405 2.648 1.405 2.648 c 0 0 0.532 -0.81 0.532 -0.81 c 0 0 1.537 0.153 1.537 0.153 c 0 0 0.654 0.925 0.654 0.925 c 0 0 1.071 0.222 1.071 0.222 c 0 0 0.351 1.005 0.351 1.005 c 0 0 0.802 0.049 0.802 0.049 c 0 0 1.27 -1.216 1.27 -1.216 c 0 0 2.542 0.892 2.542 0.892 c 0 0 -0.443 -1.387 -0.443 -1.387 c 0 0 1.058 -3.268 1.058 -3.268 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Bouira\"},\"11\":{\"path\":\"M 340.615 208.544 c 0 0 -43.124 33.261 -43.124 33.261 c 0 0 0.146 -0.413 0.146 -0.413 c 0 0 -17.526 -14.179 -17.526 -14.179 c 0 0 -11.145 0.971 -11.145 0.971 c 0 0 -10.264 3.806 -10.264 3.806 c 0 0 -0.784 10.595 -0.784 10.595 c 0 0 -1.104 3.51 -1.104 3.51 c 0 0 -3.164 5.032 -3.164 5.032 c 0 0 -0.81 10.075 -0.81 10.075 c 0 0 -1.856 3.177 -1.856 3.177 c 0 0 0.051 6.213 0.051 6.213 c 0 0 1.848 2.781 1.848 2.781 c 0 0 -2.565 6.435 -2.565 6.435 c 0 0 -0.465 8.885 -0.465 8.885 c 0 0 -2.35 1.68 -2.35 1.68 c 0 0 -0.139 -0.823 -0.139 -0.823 c 0 0 -1.748 0.209 -1.748 0.209 c 0 0 -0.883 -0.813 -0.883 -0.813 c 0 0 -2.635 0.807 -2.635 0.807 c 0 0 -1.19 2.448 -1.19 2.448 c 0 0 -7.482 7.684 -7.482 7.684 c 0 0 2.714 6.037 2.714 6.037 c 0 0 8.571 12.137 8.571 12.137 c 0 0 0.259 38.387 0.259 38.387 c 0 0 -0.63 56.825 -0.63 56.825 c 0 0 4.163 -0.675 4.163 -0.675 c 0 0 4.417 0.47 4.417 0.47 c 0 0 1.521 7.254 1.521 7.254 c 0 0 6.095 6.187 6.095 6.187 c 0 0 2.49 5.061 2.49 5.061 c 0 0 1.682 5.848 1.682 5.848 c 0 0 -0.031 6.131 -0.031 6.131 c 0 0 2.249 3.263 2.249 3.263 c 0 0 3.133 7.454 3.133 7.454 c 0 0 0.496 2.892 0.496 2.892 c 0 0 -2.249 0.725 -2.249 0.725 c 0 0 1.485 0.058 1.485 0.058 c 0 0 2.693 1.431 2.693 1.431 c 0 0 3.086 -0.021 3.086 -0.021 c 0 0 6.312 1.33 6.312 1.33 c 0 0 6.54 3.166 6.54 3.166 c 0 0 -0.412 3.706 -0.412 3.706 c 0 0 0.537 0.907 0.537 0.907 c 0 0 -0.542 1.742 -0.542 1.742 c 0 0 0.979 1.557 0.979 1.557 c 0 0 -0.357 0.987 -0.357 0.987 c 0 0 0.917 2.147 0.917 2.147 c 0 0 -1.474 1.56 -1.474 1.56 c 0 0 -0.373 1.711 -0.373 1.711 c 0 0 -2.086 2.864 -2.086 2.864 c 0 0 0.506 1.159 0.506 1.159 c 0 0 5.114 3.9 5.114 3.9 c 0 0 60.512 -13.771 60.512 -13.771 c 0 0 38.057 -37.723 38.057 -37.723 c 0 0 64.331 -46.843 64.331 -46.843 c 0 0 -0.719 -20.563 -0.719 -20.563 c 0 0 -7.48 -4.23 -7.48 -4.23 c 0 0 -2.209 0.049 -2.209 0.049 c 0 0 -1.657 -1.011 -1.657 -1.011 c 0 0 -13.903 0.818 -13.903 0.818 c 0 0 -12.891 9.613 -12.891 9.613 c 0 0 -17.177 4.161 -17.177 4.161 c 0 0 -6.243 -4.392 -6.243 -4.392 c 0 0 1.974 -2.233 1.974 -2.233 c 0 0 -5.578 -12.361 -5.578 -12.361 c 0 0 -1.04 -10.938 -1.04 -10.938 c 0 0 0.237 -3.784 0.237 -3.784 c 0 0 -5.594 -8.032 -5.594 -8.032 c 0 0 -4.477 -0.141 -4.477 -0.141 c 0 0 -2.836 -2.179 -2.836 -2.179 c 0 0 -3.687 -6.237 -3.687 -6.237 c 0 0 -1.628 -4.169 -1.628 -4.169 c 0 0 -5.061 -6.142 -5.061 -6.142 c 0 0 -5.932 -16.141 -5.932 -16.141 c 0 0 -1.532 -1.132 -1.532 -1.132 c 0 0 -0.138 -1.005 -0.138 -1.005 c 0 0 -2.248 -0.6 -2.248 -0.6 c 0 0 -1.181 -1.556 -1.181 -1.556 c 0 0 1.06 -3.062 1.06 -3.062 c 0 0 2.819 -2.351 2.819 -2.351 c 0 0 -0.418 -1.914 -0.418 -1.914 c 0 0 -12.688 -11.21 -12.688 -11.21 c 0 0 -0.039 -8.717 -0.039 -8.717 c 0 0 -3.73 -17.581 -3.73 -17.581 c 0 0 1.772 -8.354 1.772 -8.354 c 0 0 -1.292 -33.81 -1.292 -33.81 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tamanrasset\"},\"12\":{\"path\":\"M 377.235 49.5529 c 0 0 0.397 -1.363 0.397 -1.363 c 0 0 1.877 1.4 1.877 1.4 c 0 0 1.622 -0.03 1.622 -0.03 c 0 0 2.103 -2.353 2.103 -2.353 c 0 0 1.256 0.156 1.256 0.156 c 0 0 2.499 -1.112 2.499 -1.112 c 0 0 2.176 1.081 2.176 1.081 c 0 0 -0.663 1.284 -0.663 1.284 c 0 0 0.469 0.414 0.469 0.414 c 0 0 -0.029 4.161 -0.029 4.161 c 0 0 1.961 1.389 1.961 1.389 c 0 0 0.321 3.785 0.321 3.785 c 0 0 0.61 0.972 0.61 0.972 c 0 0 -1.389 1.917 -1.389 1.917 c 0 0 0.063 2.599 0.063 2.599 c 0 0 2.079 1.616 2.079 1.616 c 0 0 1.524 0.072 1.524 0.072 c 0 0 -2.348 3.782 -2.348 3.782 c 0 0 -0.661 3.932 -0.661 3.932 c 0 0 -1.401 0.803 -1.401 0.803 c 0 0 0.931 3.721 0.931 3.721 c 0 0 0.876 0.981 0.876 0.981 c 0 0 -1.63 1.313 -1.63 1.313 c 0 0 0.909 0.787 0.909 0.787 c 0 0 -1.388 1.372 -1.388 1.372 c 0 0 0.229 0.686 0.229 0.686 c 0 0 -1.096 0.116 -1.096 0.116 c 0 0 -1.104 1.673 -1.104 1.673 c 0 0 -5.352 2.981 -5.352 2.981 c 0 0 -0.735 4.246 -0.735 4.246 c 0 0 -8.26 -0.416 -8.26 -0.416 c 0 0 -4.263 -1.484 -4.263 -1.484 c 0 0 0.773 -5.083 0.773 -5.083 c 0 0 2.108 -3.938 2.108 -3.938 c 0 0 0.024 -1.697 0.024 -1.697 c 0 0 -0.637 -0.956 -0.637 -0.956 c 0 0 0.749 -2.004 0.749 -2.004 c 0 0 -0.869 -2.387 -0.869 -2.387 c 0 0 -1.271 -0.098 -1.271 -0.098 c 0 0 -0.661 0.97 -0.661 0.97 c 0 0 -0.441 1.352 -0.441 1.352 c 0 0 0.5 -0.146 0.5 -0.146 c 0 0 -0.088 1.582 -0.088 1.582 c 0 0 -0.908 -2.111 -0.908 -2.111 c 0 0 1.39 -3.602 1.39 -3.602 c 0 0 1.306 -0.817 1.306 -0.817 c 0 0 1.429 -2.436 1.429 -2.436 c 0 0 -1.051 -1.558 -1.051 -1.558 c 0 0 0.787 -1.188 0.787 -1.188 c 0 0 -0.763 -0.573 -0.763 -0.573 c 0 0 -0.117 -2.443 -0.117 -2.443 c 0 0 3.133 -1.132 3.133 -1.132 c 0 0 0.624 -0.112 0.624 -0.112 c 0 0 1.879 -2.798 1.879 -2.798 c 0 0 4.046 -1.621 4.046 -1.621 c 0 0 -1.311 -2.658 -1.311 -2.658 c 0 0 -0.142 -1.094 -0.142 -1.094 c 0 0 0.772 -0.688 0.772 -0.688 c 0 0 -1.615 -0.739 -1.615 -0.739 c 0 0 -0.531 -2.116 -0.531 -2.116 c 0 0 -0.698 -0.39 -0.698 -0.39 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tébessa\"},\"13\":{\"path\":\"M 193.764 72.7758 c 0 0 -0.686 0.069 -0.686 0.069 c 0 0 -0.264 -0.909 -0.264 -0.909 c 0 0 -3.488 -1.748 -3.488 -1.748 c 0 0 -0.331 0.33 -0.331 0.33 c 0 0 -0.372 -0.771 -0.372 -0.771 c 0 0 -1.081 0.455 -1.081 0.455 c 0 0 -2.338 -0.793 -2.338 -0.793 c 0 0 -0.918 1.336 -0.918 1.336 c 0 0 -1.082 0.265 -1.082 0.265 c 0 0 -1.053 -0.668 -1.053 -0.668 c 0 0 0.202 -0.954 0.202 -0.954 c 0 0 -0.848 -0.622 -0.848 -0.622 c 0 0 -3.998 2.927 -3.998 2.927 c 0 0 -0.671 -0.354 -0.671 -0.354 c 0 0 -2.174 1.167 -2.174 1.167 c 0 0 -3.447 0.248 -3.447 0.248 c 0 0 -1.838 -0.844 -1.838 -0.844 c 0 0 -1.167 0.414 -1.167 0.414 c 0 0 -0.104 0.95 -0.104 0.95 c 0 0 2.603 2.448 2.603 2.448 c 0 0 1.057 0.802 1.057 0.802 c 0 0 1.388 -0.219 1.388 -0.219 c 0 0 0.027 1.49 0.027 1.49 c 0 0 1.617 0.96 1.617 0.96 c 0 0 0.088 0.883 0.088 0.883 c 0 0 3.129 1.718 3.129 1.718 c 0 0 -2.502 3.209 -2.502 3.209 c 0 0 0.771 0.313 0.771 0.313 c 0 0 1.368 2.382 1.368 2.382 c 0 0 1.285 0.582 1.285 0.582 c 0 0 -2.119 2.566 -2.119 2.566 c 0 0 1.582 2.156 1.582 2.156 c 0 0 -0.213 1.807 -0.213 1.807 c 0 0 1.198 3.756 1.198 3.756 c 0 0 3.61 -2.621 3.61 -2.621 c 0 0 4.992 0.022 4.992 0.022 c 0 0 1.227 -1.408 1.227 -1.408 c 0 0 1.529 -0.482 1.529 -0.482 c 0 0 6.093 -5.633 6.093 -5.633 c 0 0 -0.362 -0.793 -0.362 -0.793 c 0 0 -0.956 -0.198 -0.956 -0.198 c 0 0 1.609 -0.95 1.609 -0.95 c 0 0 1.285 -2.754 1.285 -2.754 c 0 0 -0.23 -0.686 -0.23 -0.686 c 0 0 0.496 0.037 0.496 0.037 c 0 0 -0.273 -1.005 -0.273 -1.005 c 0 0 -2.376 0.271 -2.376 0.271 c 0 0 0.434 -3.193 0.434 -3.193 c 0 0 -1.177 0.239 -1.177 0.239 c 0 0 0.804 -1.134 0.804 -1.134 c 0 0 -1.191 -0.046 -1.191 -0.046 c 0 0 -0.506 -1.828 -0.506 -1.828 c 0 0 1.313 -2.126 1.313 -2.126 c 0 0 -1.942 -1.063 -1.942 -1.063 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tlemcen\"},\"14\":{\"path\":\"M 258.955 61.8178 c 0 0 -1.327 0.262 -1.327 0.262 c 0 0 0.221 1.396 0.221 1.396 c 0 0 6.776 4.105 6.776 4.105 c 0 0 1.052 1.839 1.052 1.839 c 0 0 2.688 -2.3 2.688 -2.3 c 0 0 1.052 0.797 1.052 0.797 c 0 0 0.327 1.125 0.327 1.125 c 0 0 1.748 0.418 1.748 0.418 c 0 0 -0.01 1.521 -0.01 1.521 c 0 0 -0.677 0.26 -0.677 0.26 c 0 0 -1.121 2.251 -1.121 2.251 c 0 0 1.432 1.277 1.432 1.277 c 0 0 -3.229 1.273 -3.229 1.273 c 0 0 -1.447 4.661 -1.447 4.661 c 0 0 -1.47 0.458 -1.47 0.458 c 0 0 0.167 2.428 0.167 2.428 c 0 0 -3.015 0.372 -3.015 0.372 c 0 0 -0.437 1.044 -0.437 1.044 c 0 0 -1.978 0.888 -1.978 0.888 c 0 0 -2.348 2.563 -2.348 2.563 c 0 0 -4.877 1.753 -4.877 1.753 c 0 0 -1.839 2.088 -1.839 2.088 c 0 0 -0.365 2.438 -0.365 2.438 c 0 0 -1.645 0.978 -1.645 0.978 c 0 0 -0.272 -1.14 -0.272 -1.14 c 0 0 -3.774 2.229 -3.774 2.229 c 0 0 0.808 1.346 0.808 1.346 c 0 0 -2.194 1.46 -2.194 1.46 c 0 0 -1.118 -1.577 -1.118 -1.577 c 0 0 -0.216 -1.843 -0.216 -1.843 c 0 0 -5.541 0.295 -5.541 0.295 c 0 0 0.672 -4.883 0.672 -4.883 c 0 0 -3.973 -0.827 -3.973 -0.827 c 0 0 1.657 -2.906 1.657 -2.906 c 0 0 -2.975 -1.225 -2.975 -1.225 c 0 0 -0.316 -0.531 -0.316 -0.531 c 0 0 0.755 -0.53 0.755 -0.53 c 0 0 -0.449 -1.181 -0.449 -1.181 c 0 0 -1.062 0.458 -1.062 0.458 c 0 0 -1.729 -3.065 -1.729 -3.065 c 0 0 0.385 -1.708 0.385 -1.708 c 0 0 -0.557 -0.922 -0.557 -0.922 c 0 0 3.161 -2.329 3.161 -2.329 c 0 0 -1.595 -2.433 -1.595 -2.433 c 0 0 -1.402 -0.632 -1.402 -0.632 c 0 0 -0.281 -0.991 -0.281 -0.991 c 0 0 -3.297 0.388 -3.297 0.388 c 0 0 1.071 -1.77 1.071 -1.77 c 0 0 1.552 -1.101 1.552 -1.101 c 0 0 -0.245 -0.949 -0.245 -0.949 c 0 0 1.176 -1.409 1.176 -1.409 c 0 0 1.083 -0.161 1.083 -0.161 c 0 0 1.521 0.789 1.521 0.789 c 0 0 1.112 -0.354 1.112 -0.354 c 0 0 0.873 -2.104 0.873 -2.104 c 0 0 0.688 -0.28 0.688 -0.28 c 0 0 -1.49 -1.555 -1.49 -1.555 c 0 0 0.9 -0.182 0.9 -0.182 c 0 0 1.728 -2.878 1.728 -2.878 c 0 0 1.215 -0.098 1.215 -0.098 c 0 0 0.112 -0.867 0.112 -0.867 c 0 0 0.812 0.11 0.812 0.11 c 0 0 0.164 -0.913 0.164 -0.913 c 0 0 2.058 0.206 2.058 0.206 c 0 0 0.567 -0.985 0.567 -0.985 c 0 0 1.449 -0.572 1.449 -0.572 c 0 0 1.345 1.67 1.345 1.67 c 0 0 0.589 -2.298 0.589 -2.298 c 0 0 1.271 0.93 1.271 0.93 c 0 0 0.538 -0.303 0.538 -0.303 c 0 0 1.353 0.765 1.353 0.765 c 0 0 0.063 1.414 0.063 1.414 c 0 0 1.952 -0.174 1.952 -0.174 c 0 0 1.046 1.72 1.046 1.72 c 0 0 0.813 0.153 0.813 0.153 c 0 0 0.172 -1.047 0.172 -1.047 c 0 0 0.958 0.973 0.958 0.973 c 0 0 3.798 -0.432 3.798 -0.432 c 0 0 2.435 -1.337 2.435 -1.337 c 0 0 -0.56 0.67 -0.56 0.67 c 0 0 1.55 0.067 1.55 0.067 c 0 0 -0.034 0.954 -0.034 0.954 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tiaret\"},\"15\":{\"path\":\"M 310.88 26.4728 c 0 0 1.398 1.952 1.398 1.952 c 0 0 0.068 1.338 0.068 1.338 c 0 0 -0.67 0.654 -0.67 0.654 c 0 0 -0.705 -0.539 -0.705 -0.539 c 0 0 -1.229 0.36 -1.229 0.36 c 0 0 -0.147 0.646 -0.147 0.646 c 0 0 1.777 0.943 1.777 0.943 c 0 0 -1.26 1.581 -1.26 1.581 c 0 0 0.406 0.661 0.406 0.661 c 0 0 -2.179 2.442 -2.179 2.442 c 0 0 -1.795 0.831 -1.795 0.831 c 0 0 -2.514 0.268 -2.514 0.268 c 0 0 -0.273 -0.535 -0.273 -0.535 c 0 0 -1.01 0.543 -1.01 0.543 c 0 0 -5.653 0.163 -5.653 0.163 c 0 0 -1.334 -0.33 -1.334 -0.33 c 0 0 -0.935 -1.637 -0.935 -1.637 c 0 0 -0.782 0.04 -0.782 0.04 c 0 0 -0.892 -1.236 -0.892 -1.236 c 0 0 -0.219 -1.694 -0.219 -1.694 c 0 0 1.417 -0.319 1.417 -0.319 c 0 0 0.845 0.592 0.845 0.592 c 0 0 -0.163 -1.288 -0.163 -1.288 c 0 0 1.354 0.313 1.354 0.313 c 0 0 -0.771 -0.862 -0.771 -0.862 c 0 0 0.386 -1.441 0.386 -1.441 c 0 0 1.042 0.231 1.042 0.231 c 0 0 0.179 -0.604 0.179 -0.604 c 0 0 0.945 -0.077 0.945 -0.077 c 0 0 0.045 -0.779 0.045 -0.779 c 0 0 1.354 -1.163 1.354 -1.163 c 0 0 -0.135 -1.239 -0.135 -1.239 c 0 0 5.439 -0.32 5.439 -0.32 c 0 0 1.851 0.426 1.851 0.426 c 0 0 0.986 -0.547 0.986 -0.547 c 0 0 3.174 0.626 3.174 0.626 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tizi-Ouzou\"},\"16\":{\"path\":\"M 285.549 29.5858 c 0 0 -0.27 0.609 -0.27 0.609 c 0 0 0.656 -0.216 0.656 -0.216 c 0 0 0.031 1.021 0.031 1.021 c 0 0 -2.278 0.745 -2.278 0.745 c 0 0 -0.66 -0.482 -0.66 -0.482 c 0 0 0.391 0.701 0.391 0.701 c 0 0 -0.688 0.546 -0.688 0.546 c 0 0 -1.01 0.771 -1.01 0.771 c 0 0 -0.609 -0.302 -0.609 -0.302 c 0 0 -0.701 1.807 -0.701 1.807 c 0 0 -1.117 0.075 -1.117 0.075 c 0 0 0.107 -1.082 0.107 -1.082 c 0 0 -1.49 1.068 -1.49 1.068 c 0 0 -3.771 -1.583 -3.771 -1.583 c 0 0 -0.135 -1.446 -0.135 -1.446 c 0 0 0.607 -1.614 0.607 -1.614 c 0 0 0.9 -0.174 0.9 -0.174 c 0 0 0.272 -0.944 0.272 -0.944 c 0 0 1.205 -0.234 1.205 -0.234 c 0 0 1.831 0.088 1.831 0.088 c 0 0 0.494 1.2 0.494 1.2 c 0 0 1.162 0.524 1.162 0.524 c 0 0 2.119 -0.622 2.119 -0.622 c 0 0 0.155 -1.295 0.155 -1.295 c 0 0 2.799 0.839 2.799 0.839 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Alger\"},\"17\":{\"path\":\"M 303.711 95.2648 c 0 0 -4.303 -3.584 -4.303 -3.584 c 0 0 0.313 -2.084 0.313 -2.084 c 0 0 -1.836 -1.982 -1.836 -1.982 c 0 0 0.299 -2.041 0.299 -2.041 c 0 0 -0.719 -4.249 -0.719 -4.249 c 0 0 -3.906 -0.974 -3.906 -0.974 c 0 0 -1.411 0.479 -1.411 0.479 c 0 0 -0.14 -1.652 -0.14 -1.652 c 0 0 -1.402 -0.321 -1.402 -0.321 c 0 0 0.209 -2.972 0.209 -2.972 c 0 0 -0.698 -0.953 -0.698 -0.953 c 0 0 0.551 -0.067 0.551 -0.067 c 0 0 0.504 -1.54 0.504 -1.54 c 0 0 -1.839 0.736 -1.839 0.736 c 0 0 -1.138 -3.13 -1.138 -3.13 c 0 0 4.281 -3.605 4.281 -3.605 c 0 0 -0.424 -1.941 -0.424 -1.941 c 0 0 0.865 -0.632 0.865 -0.632 c 0 0 0.075 -1.772 0.075 -1.772 c 0 0 -4.719 -3.806 -4.719 -3.806 c 0 0 -1.903 -1.954 -1.903 -1.954 c 0 0 -0.313 -1.257 -0.313 -1.257 c 0 0 -1.091 0.049 -1.091 0.049 c 0 0 -0.854 -1.716 -0.854 -1.716 c 0 0 -1.031 1.021 -1.031 1.021 c 0 0 0.104 1.206 0.104 1.206 c 0 0 -0.753 1.37 -0.753 1.37 c 0 0 -2.786 0.7 -2.786 0.7 c 0 0 -0.185 -2.199 -0.185 -2.199 c 0 0 -0.699 0.144 -0.699 0.144 c 0 0 -0.693 -2.337 -0.693 -2.337 c 0 0 -2.585 0.707 -2.585 0.707 c 0 0 0.677 5.005 0.677 5.005 c 0 0 -0.578 -0.259 -0.578 -0.259 c 0 0 -1.83 1.359 -1.83 1.359 c 0 0 -1.605 2.564 -1.605 2.564 c 0 0 -1.292 0.661 -1.292 0.661 c 0 0 -2.698 -1.908 -2.698 -1.908 c 0 0 -0.229 0.56 -0.229 0.56 c 0 0 -2.476 0.813 -2.476 0.813 c 0 0 -2.139 0.167 -2.139 0.167 c 0 0 -0.658 -2.362 -0.658 -2.362 c 0 0 -3.699 0.315 -3.699 0.315 c 0 0 -1.327 0.263 -1.327 0.263 c 0 0 0.221 1.396 0.221 1.396 c 0 0 6.777 4.106 6.777 4.106 c 0 0 1.051 1.838 1.051 1.838 c 0 0 2.688 -2.299 2.688 -2.299 c 0 0 1.052 0.796 1.052 0.796 c 0 0 0.327 1.125 0.327 1.125 c 0 0 1.748 0.418 1.748 0.418 c 0 0 -0.01 1.521 -0.01 1.521 c 0 0 -0.677 0.259 -0.677 0.259 c 0 0 -1.122 2.251 -1.122 2.251 c 0 0 1.432 1.277 1.432 1.277 c 0 0 -3.229 1.273 -3.229 1.273 c 0 0 -1.446 4.661 -1.446 4.661 c 0 0 -1.471 0.458 -1.471 0.458 c 0 0 0.169 2.428 0.169 2.428 c 0 0 0.566 6.331 0.566 6.331 c 0 0 1.244 3.59 1.244 3.59 c 0 0 0.441 -0.086 0.441 -0.086 c 0 0 3.376 4.766 3.376 4.766 c 0 0 1.209 0.325 1.209 0.325 c 0 0 2.258 -1.065 2.258 -1.065 c 0 0 0.695 0.262 0.695 0.262 c 0 0 -0.026 -1.447 -0.026 -1.447 c 0 0 2.266 -2.289 2.266 -2.289 c 0 0 1.456 0.758 1.456 0.758 c 0 0 -0.123 0.432 -0.123 0.432 c 0 0 1.253 -0.433 1.253 -0.433 c 0 0 2.38 6.709 2.38 6.709 c 0 0 -0.146 1.212 -0.146 1.212 c 0 0 1.604 3.201 1.604 3.201 c 0 0 5.243 1.505 5.243 1.505 c 0 0 3.983 3.588 3.983 3.588 c 0 0 1.407 2.328 1.407 2.328 c 0 0 8.125 3.061 8.125 3.061 c 0 0 1.49 1.064 1.49 1.064 c 0 0 4.01 3.915 4.01 3.915 c 0 0 3.191 5.374 3.191 5.374 c 0 0 11.872 3.224 11.872 3.224 c 0 0 -2.209 -11.442 -2.209 -11.442 c 0 0 2.42 -5.131 2.42 -5.131 c 0 0 -0.116 -1.902 -0.116 -1.902 c 0 0 0.521 -0.88 0.521 -0.88 c 0 0 -4 -0.997 -4 -0.997 c 0 0 -0.725 -1.226 -0.725 -1.226 c 0 0 -1.964 0.328 -1.964 0.328 c 0 0 -0.39 -0.95 -0.39 -0.95 c 0 0 -3.261 -0.627 -3.261 -0.627 c 0 0 -1.081 -1.472 -1.081 -1.472 c 0 0 -6.57 -2.83 -6.57 -2.83 c 0 0 -0.45 -0.689 -0.45 -0.689 c 0 0 0.395 -0.524 0.395 -0.524 c 0 0 1.344 -0.124 1.344 -0.124 c 0 0 1.375 -1.476 1.375 -1.476 c 0 0 1.195 0.003 1.195 0.003 c 0 0 -0.568 -0.73 -0.568 -0.73 c 0 0 -2.354 -0.395 -2.354 -0.395 c 0 0 -0.386 -1.492 -0.386 -1.492 c 0 0 -1.887 -0.264 -1.887 -0.264 c 0 0 -0.935 -1.142 -0.935 -1.142 c 0 0 0.443 -0.693 0.443 -0.693 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Djelfa\"},\"18\":{\"path\":\"M 335.112 34.2048 c 0 0 1.112 -0.339 1.112 -0.339 c 0 0 1.367 0.723 1.367 0.723 c 0 0 1.504 -0.446 1.504 -0.446 c 0 0 1.242 -1.671 1.242 -1.671 c 0 0 4.855 0.813 4.855 0.813 c 0 0 1.86 -1.232 1.86 -1.232 c 0 0 0.435 0.64 0.435 0.64 c 0 0 2.741 0.479 2.741 0.479 c 0 0 -0.254 -1.387 -0.254 -1.387 c 0 0 0.828 -0.194 0.828 -0.194 c 0 0 0.3 -0.784 0.3 -0.784 c 0 0 -2.966 -1.426 -2.966 -1.426 c 0 0 -0.699 -3.309 -0.699 -3.309 c 0 0 -1.636 -0.354 -1.636 -0.354 c 0 0 0.278 -1.183 0.278 -1.183 c 0 0 -0.458 -0.661 -0.458 -0.661 c 0 0 -5.771 2.994 -5.771 2.994 c 0 0 -3.482 0.854 -3.482 0.854 c 0 0 -0.857 -0.566 -0.857 -0.566 c 0 0 -1.676 0.329 -1.676 0.329 c 0 0 -2.381 1.442 -2.381 1.442 c 0 0 -1.033 2.037 -1.033 2.037 c 0 0 -1.852 0.936 -1.852 0.936 c 0 0 0.027 1.315 0.027 1.315 c 0 0 0.917 0.194 0.917 0.194 c 0 0 0.751 -0.023 0.751 -0.023 c 0 0 0.402 1.854 0.402 1.854 c 0 0 0.979 0.076 0.979 0.076 c 0 0 0.992 -0.957 0.992 -0.957 c 0 0 1.248 0.676 1.248 0.676 c 0 0 1.227 -0.83 1.227 -0.83 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Jijel\"},\"19\":{\"path\":\"M 335.112 34.2048 c 0 0 0.558 0.717 0.558 0.717 c 0 0 -0.125 2.048 -0.125 2.048 c 0 0 1.244 0.953 1.244 0.953 c 0 0 -0.114 1.348 -0.114 1.348 c 0 0 1.395 0.426 1.395 0.426 c 0 0 -0.097 1.172 -0.097 1.172 c 0 0 2.188 2.367 2.188 2.367 c 0 0 -0.978 0.521 -0.978 0.521 c 0 0 0.049 1.868 0.049 1.868 c 0 0 1.715 0.399 1.715 0.399 c 0 0 0.284 2.085 0.284 2.085 c 0 0 -0.688 0.604 -0.688 0.604 c 0 0 1.162 1.212 1.162 1.212 c 0 0 -1.2 1.294 -1.2 1.294 c 0 0 -0.965 0.569 -0.965 0.569 c 0 0 0.444 1.163 0.444 1.163 c 0 0 -2.806 -2.418 -2.806 -2.418 c 0 0 -1.214 0.316 -1.214 0.316 c 0 0 -1.424 1.56 -1.424 1.56 c 0 0 0.121 0.773 0.121 0.773 c 0 0 1.212 0.402 1.212 0.402 c 0 0 -0.792 1.303 -0.792 1.303 c 0 0 -0.682 -0.238 -0.682 -0.238 c 0 0 -0.502 0.541 -0.502 0.541 c 0 0 -2.294 -0.948 -2.294 -0.948 c 0 0 -0.241 0.685 -0.241 0.685 c 0 0 -0.797 -0.078 -0.797 -0.078 c 0 0 -1.382 1.093 -1.382 1.093 c 0 0 0.234 1.001 0.234 1.001 c 0 0 -0.78 1.759 -0.78 1.759 c 0 0 -1.127 -0.334 -1.127 -0.334 c 0 0 -3.493 -0.469 -3.493 -0.469 c 0 0 -0.547 -0.806 -0.547 -0.806 c 0 0 0.417 -0.537 0.417 -0.537 c 0 0 -0.486 -0.518 -0.486 -0.518 c 0 0 -1.107 0.239 -1.107 0.239 c 0 0 -1.474 -1.041 -1.474 -1.041 c 0 0 0.169 -0.628 0.169 -0.628 c 0 0 -0.018 -1.602 -0.018 -1.602 c 0 0 2.088 -0.288 2.088 -0.288 c 0 0 -0.484 -2.927 -0.484 -2.927 c 0 0 1.669 -2.858 1.669 -2.858 c 0 0 -0.97 -0.972 -0.97 -0.972 c 0 0 0.127 -2.078 0.127 -2.078 c 0 0 -0.963 -0.273 -0.963 -0.273 c 0 0 -1.48 -2.546 -1.48 -2.546 c 0 0 -1.203 -0.362 -1.203 -0.362 c 0 0 -0.961 0.653 -0.961 0.653 c 0 0 -2.854 0.298 -2.854 0.298 c 0 0 -0.779 -0.983 -0.779 -0.983 c 0 0 0.302 -1.874 0.302 -1.874 c 0 0 -1.26 -0.672 -1.26 -0.672 c 0 0 2.517 -1.449 2.517 -1.449 c 0 0 0.048 -1.349 0.048 -1.349 c 0 0 3.62 0.479 3.62 0.479 c 0 0 0.447 -1.378 0.447 -1.378 c 0 0 0.928 0.088 0.928 0.088 c 0 0 0.039 -0.447 0.039 -0.447 c 0 0 2.159 1.465 2.159 1.465 c 0 0 -0.535 0.692 -0.535 0.692 c 0 0 -0.024 2.691 -0.024 2.691 c 0 0 0.57 -0.199 0.57 -0.199 c 0 0 -0.025 0.937 -0.025 0.937 c 0 0 1.656 -0.241 1.656 -0.241 c 0 0 0.748 -0.375 0.748 -0.375 c 0 0 -0.471 -0.92 -0.471 -0.92 c 0 0 1.314 -1.474 1.314 -1.474 c 0 0 -0.252 -0.684 -0.252 -0.684 c 0 0 2.389 -1.072 2.389 -1.072 c 0 0 0.184 -1.478 0.184 -1.478 c 0 0 0.751 -0.023 0.751 -0.023 c 0 0 0.403 1.854 0.403 1.854 c 0 0 0.979 0.077 0.979 0.077 c 0 0 0.992 -0.958 0.992 -0.958 c 0 0 1.248 0.676 1.248 0.676 c 0 0 1.224 -0.831 1.224 -0.831 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Sétif\"},\"20\":{\"path\":\"M 233.026 90.7739 c 0 0 -2.853 -0.734 -2.853 -0.734 c 0 0 -4.583 3.134 -4.583 3.134 c 0 0 -1.732 -2.296 -1.732 -2.296 c 0 0 -2.898 2.009 -2.898 2.009 c 0 0 -2.172 -0.253 -2.172 -0.253 c 0 0 -2.096 -2.128 -2.096 -2.128 c 0 0 -2.331 -0.763 -2.331 -0.763 c 0 0 -1.5 -1.498 -1.5 -1.498 c 0 0 -2.199 1.248 -2.199 1.248 c 0 0 -0.138 -2.153 -0.138 -2.153 c 0 0 -0.979 -1.096 -0.979 -1.096 c 0 0 0.256 -1.511 0.256 -1.511 c 0 0 2.491 1.248 2.491 1.248 c 0 0 0.646 1.884 0.646 1.884 c 0 0 1.12 -1.667 1.12 -1.667 c 0 0 -1.379 -2.84 -1.379 -2.84 c 0 0 -2.113 -1.373 -2.113 -1.373 c 0 0 -0.294 -1.104 -0.294 -1.104 c 0 0 -1.77 -0.163 -1.77 -0.163 c 0 0 0.403 -1.189 0.403 -1.189 c 0 0 -1.328 -0.901 -1.328 -0.901 c 0 0 1.163 -0.801 1.163 -0.801 c 0 0 -0.396 -2.087 -0.396 -2.087 c 0 0 1.813 -0.197 1.813 -0.197 c 0 0 -0.485 -1.763 -0.485 -1.763 c 0 0 0.353 -0.945 0.353 -0.945 c 0 0 1.317 -0.403 1.317 -0.403 c 0 0 0.982 0.007 0.982 0.007 c 0 0 0.665 -1.239 0.665 -1.239 c 0 0 0.345 1.976 0.345 1.976 c 0 0 2.583 -0.188 2.583 -0.188 c 0 0 1.301 0.867 1.301 0.867 c 0 0 1.081 -0.098 1.081 -0.098 c 0 0 0.205 0.906 0.205 0.906 c 0 0 1.011 0.663 1.011 0.663 c 0 0 2.493 -1.648 2.493 -1.648 c 0 0 0.773 0.891 0.773 0.891 c 0 0 0.999 0.119 0.999 0.119 c 0 0 1.539 -1.518 1.539 -1.518 c 0 0 3.298 -0.388 3.298 -0.388 c 0 0 0.28 0.989 0.28 0.989 c 0 0 1.403 0.633 1.403 0.633 c 0 0 1.595 2.433 1.595 2.433 c 0 0 -3.162 2.329 -3.162 2.329 c 0 0 0.558 0.923 0.558 0.923 c 0 0 -0.385 1.708 -0.385 1.708 c 0 0 1.729 3.064 1.729 3.064 c 0 0 1.062 -0.458 1.062 -0.458 c 0 0 0.449 1.181 0.449 1.181 c 0 0 -0.755 0.531 -0.755 0.531 c 0 0 0.315 0.529 0.315 0.529 c 0 0 2.975 1.226 2.975 1.226 c 0 0 -1.655 2.904 -1.655 2.904 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Saida\"},\"21\":{\"path\":\"M 368.508 30.2198 c 0 0 -0.538 0.351 -0.538 0.351 c 0 0 -0.418 -0.446 -0.418 -0.446 c 0 0 -0.55 1.052 -0.55 1.052 c 0 0 -3.584 1.265 -3.584 1.265 c 0 0 -0.653 0.873 -0.653 0.873 c 0 0 0.42 1.242 0.42 1.242 c 0 0 -2.629 0.698 -2.629 0.698 c 0 0 -0.062 1.543 -0.062 1.543 c 0 0 -1.254 -0.13 -1.254 -0.13 c 0 0 -0.397 -0.7 -0.397 -0.7 c 0 0 -1.124 0.208 -1.124 0.208 c 0 0 0.207 -2.014 0.207 -2.014 c 0 0 0.97 -1.018 0.97 -1.018 c 0 0 -1.8 0.36 -1.8 0.36 c 0 0 -2.274 -0.424 -2.274 -0.424 c 0 0 -0.369 -1.324 -0.369 -1.324 c 0 0 -1.066 1.389 -1.066 1.389 c 0 0 -2.188 -0.147 -2.188 -0.147 c 0 0 -0.967 0.174 -0.967 0.174 c 0 0 -0.254 -1.387 -0.254 -1.387 c 0 0 0.828 -0.194 0.828 -0.194 c 0 0 0.3 -0.783 0.3 -0.783 c 0 0 -2.966 -1.427 -2.966 -1.427 c 0 0 -0.699 -3.309 -0.699 -3.309 c 0 0 -1.635 -0.354 -1.635 -0.354 c 0 0 0.277 -1.183 0.277 -1.183 c 0 0 -0.458 -0.661 -0.458 -0.661 c 0 0 -0.486 -1.046 -0.486 -1.046 c 0 0 0.477 -1.133 0.477 -1.133 c 0 0 1.46 -1.163 1.46 -1.163 c 0 0 2.801 -0.643 2.801 -0.643 c 0 0 1.617 0.827 1.617 0.827 c 0 0 0.77 2.041 0.77 2.041 c 0 0 2.885 0.665 2.885 0.665 c 0 0 0.642 -0.521 0.642 -0.521 c 0 0 0.391 0.479 0.391 0.479 c 0 0 1.646 -0.394 1.646 -0.394 c 0 0 0.779 1.6 0.779 1.6 c 0 0 1.483 0.237 1.483 0.237 c 0 0 2.637 -1.094 2.637 -1.094 c 0 0 1.659 0.04 1.659 0.04 c 0 0 2.043 -1.929 2.043 -1.929 c 0 0 -0.279 -1.044 -0.279 -1.044 c 0 0 -1.836 -1.298 -1.836 -1.298 c 0 0 2.469 0.061 2.469 0.061 c 0 0 0.865 0.703 0.865 0.703 c 0 0 -0.27 0.649 -0.27 0.649 c 0 0 0.934 1.558 0.934 1.558 c 0 0 -0.102 0.528 -0.102 0.528 c 0 0 -0.618 -0.109 -0.618 -0.109 c 0 0 1.345 1.255 1.345 1.255 c 0 0 0.646 3.424 0.646 3.424 c 0 0 -0.074 0.896 -0.074 0.896 c 0 0 -1.197 0.49 -1.197 0.49 c 0 0 0.196 1.267 0.196 1.267 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Skikda\"},\"22\":{\"path\":\"M 204.15 64.0609 c 0 0 -0.642 0.992 -0.642 0.992 c 0 0 0.241 0.965 0.241 0.965 c 0 0 -1.503 0.747 -1.503 0.747 c 0 0 -0.184 -0.672 -0.184 -0.672 c 0 0 -2.838 0.497 -2.838 0.497 c 0 0 -0.066 0.729 -0.066 0.729 c 0 0 -0.969 0.457 -0.969 0.457 c 0 0 -0.813 -0.548 -0.813 -0.548 c 0 0 -0.78 1.395 -0.78 1.395 c 0 0 -0.673 -0.18 -0.673 -0.18 c 0 0 0.286 1.945 0.286 1.945 c 0 0 -1.38 0.462 -1.38 0.462 c 0 0 -0.248 1.449 -0.248 1.449 c 0 0 -0.818 0.477 -0.818 0.477 c 0 0 1.942 1.063 1.942 1.063 c 0 0 -1.313 2.126 -1.313 2.126 c 0 0 0.506 1.828 0.506 1.828 c 0 0 1.191 0.045 1.191 0.045 c 0 0 -0.804 1.135 -0.804 1.135 c 0 0 1.177 -0.239 1.177 -0.239 c 0 0 -0.433 3.193 -0.433 3.193 c 0 0 2.376 -0.271 2.376 -0.271 c 0 0 0.272 1.004 0.272 1.004 c 0 0 -0.496 -0.036 -0.496 -0.036 c 0 0 0.23 0.687 0.23 0.687 c 0 0 -1.285 2.753 -1.285 2.753 c 0 0 -1.609 0.95 -1.609 0.95 c 0 0 0.956 0.198 0.956 0.198 c 0 0 0.362 0.793 0.362 0.793 c 0 0 -6.093 5.633 -6.093 5.633 c 0 0 1.08 1.632 1.08 1.632 c 0 0 2.133 -1.567 2.133 -1.567 c 0 0 0.589 1.018 0.589 1.018 c 0 0 0.342 -0.416 0.342 -0.416 c 0 0 2.966 0.896 2.966 0.896 c 0 0 4.055 -2.511 4.055 -2.511 c 0 0 1.843 1.041 1.843 1.041 c 0 0 3.133 9.769 3.133 9.769 c 0 0 0.314 -1.128 0.314 -1.128 c 0 0 0.854 0.04 0.854 0.04 c 0 0 2.091 -2.885 2.091 -2.885 c 0 0 1.632 -0.712 1.632 -0.712 c 0 0 1.374 0.198 1.374 0.198 c 0 0 1.501 -3.065 1.501 -3.065 c 0 0 0.941 -0.691 0.941 -0.691 c 0 0 -1.231 -5.509 -1.231 -5.509 c 0 0 -1.5 -1.498 -1.5 -1.498 c 0 0 -2.199 1.248 -2.199 1.248 c 0 0 -0.138 -2.153 -0.138 -2.153 c 0 0 -0.979 -1.096 -0.979 -1.096 c 0 0 0.256 -1.511 0.256 -1.511 c 0 0 2.491 1.248 2.491 1.248 c 0 0 0.646 1.884 0.646 1.884 c 0 0 1.12 -1.667 1.12 -1.667 c 0 0 -1.379 -2.84 -1.379 -2.84 c 0 0 -2.113 -1.373 -2.113 -1.373 c 0 0 -0.294 -1.104 -0.294 -1.104 c 0 0 -1.77 -0.163 -1.77 -0.163 c 0 0 0.403 -1.189 0.403 -1.189 c 0 0 -1.328 -0.901 -1.328 -0.901 c 0 0 1.163 -0.801 1.163 -0.801 c 0 0 -0.396 -2.087 -0.396 -2.087 c 0 0 1.813 -0.197 1.813 -0.197 c 0 0 -0.485 -1.763 -0.485 -1.763 c 0 0 0.353 -0.945 0.353 -0.945 c 0 0 1.317 -0.403 1.317 -0.403 c 0 0 -0.804 -2.202 -0.804 -2.202 c 0 0 0.376 -0.966 0.376 -0.966 c 0 0 1.477 -0.712 1.477 -0.712 c 0 0 -0.955 -0.354 -0.955 -0.354 c 0 0 -1.221 1.019 -1.221 1.019 c 0 0 -0.218 -0.549 -0.218 -0.549 c 0 0 1.312 -0.857 1.312 -0.857 c 0 0 0.38 -0.986 0.38 -0.986 c 0 0 -2.728 -0.854 -2.728 -0.854 c 0 0 -0.353 -0.632 -0.353 -0.632 c 0 0 -0.752 0.882 -0.752 0.882 c 0 0 -1.563 -0.12 -1.563 -0.12 c 0 0 0.231 -2.255 0.231 -2.255 c 0 0 -1.589 0.603 -1.589 0.603 c 0 0 -0.783 -0.393 -0.783 -0.393 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Sidi Bel Abbes\"},\"23\":{\"path\":\"M 375.158 30.0759 c 0 0 0.57 -1.447 0.57 -1.447 c 0 0 -0.427 -0.747 -0.427 -0.747 c 0 0 0.969 -1.14 0.969 -1.14 c 0 0 0.939 0.143 0.939 0.143 c 0 0 0.031 -1.328 0.031 -1.328 c 0 0 1.139 -0.009 1.139 -0.009 c 0 0 -0.366 -0.685 -0.366 -0.685 c 0 0 -1.192 -0.868 -1.192 -0.868 c 0 0 0.534 -2.257 0.534 -2.257 c 0 0 -1.771 0.605 -1.771 0.605 c 0 0 -1.04 -0.711 -1.04 -0.711 c 0 0 -0.714 0.503 -0.714 0.503 c 0 0 -2.358 -1.985 -2.358 -1.985 c 0 0 -2.144 0.188 -2.144 0.188 c 0 0 -0.479 -1.129 -0.479 -1.129 c 0 0 -2.073 0.349 -2.073 0.349 c 0 0 0.865 0.705 0.865 0.705 c 0 0 -0.27 0.648 -0.27 0.648 c 0 0 0.934 1.558 0.934 1.558 c 0 0 -0.102 0.529 -0.102 0.529 c 0 0 -0.618 -0.109 -0.618 -0.109 c 0 0 1.345 1.253 1.345 1.253 c 0 0 0.647 3.425 0.647 3.425 c 0 0 -0.075 0.896 -0.075 0.896 c 0 0 -1.196 0.49 -1.196 0.49 c 0 0 0.201 1.266 0.201 1.266 c 0 0 1.15 -0.122 1.15 -0.122 c 0 0 0.438 0.876 0.438 0.876 c 0 0 0.199 -0.74 0.199 -0.74 c 0 0 1.104 -0.509 1.104 -0.509 c 0 0 0.176 1.188 0.176 1.188 c 0 0 2.713 0.503 2.713 0.503 c 0 0 0.871 -1.339 0.871 -1.339 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Annaba\"},\"24\":{\"path\":\"M 375.158 30.0759 c 0 0 0.936 -0.309 0.936 -0.309 c 0 0 0.688 0.501 0.688 0.501 c 0 0 1.188 2.609 1.188 2.609 c 0 0 1.169 -0.383 1.169 -0.383 c 0 0 0.201 0.543 0.201 0.543 c 0 0 -0.047 -0.771 -0.047 -0.771 c 0 0 1.299 0.584 1.299 0.584 c 0 0 0.92 1.851 0.92 1.851 c 0 0 -1.832 1.544 -1.832 1.544 c 0 0 -1.021 -0.411 -1.021 -0.411 c 0 0 -0.195 1.316 -0.195 1.316 c 0 0 1.08 1.383 1.08 1.383 c 0 0 -0.374 0.437 -0.374 0.437 c 0 0 -2.218 0.173 -2.218 0.173 c 0 0 -2.16 2.08 -2.16 2.08 c 0 0 -1.194 -0.271 -1.194 -0.271 c 0 0 -2.52 0.934 -2.52 0.934 c 0 0 -2.854 -0.539 -2.854 -0.539 c 0 0 -0.494 1.348 -0.494 1.348 c 0 0 0.75 0.918 0.75 0.918 c 0 0 -1.257 0.076 -1.257 0.076 c 0 0 -0.683 1.774 -0.683 1.774 c 0 0 -2.784 1.371 -2.784 1.371 c 0 0 -0.998 -0.165 -0.998 -0.165 c 0 0 0.196 -0.958 0.196 -0.958 c 0 0 -1.267 -0.551 -1.267 -0.551 c 0 0 0.201 -1.256 0.201 -1.256 c 0 0 -0.077 -0.57 -0.077 -0.57 c 0 0 0.855 -0.474 0.855 -0.474 c 0 0 0.104 -1.688 0.104 -1.688 c 0 0 -0.561 -1.442 -0.561 -1.442 c 0 0 -1.225 -0.221 -1.225 -0.221 c 0 0 0.6 -0.717 0.6 -0.717 c 0 0 -1.052 -0.557 -1.052 -0.557 c 0 0 0.532 -0.551 0.532 -0.551 c 0 0 -0.572 -0.892 -0.572 -0.892 c 0 0 0.062 -1.543 0.062 -1.543 c 0 0 2.629 -0.698 2.629 -0.698 c 0 0 -0.42 -1.242 -0.42 -1.242 c 0 0 0.653 -0.873 0.653 -0.873 c 0 0 3.583 -1.265 3.583 -1.265 c 0 0 0.55 -1.052 0.55 -1.052 c 0 0 0.419 0.446 0.419 0.446 c 0 0 0.538 -0.351 0.538 -0.351 c 0 0 1.15 -0.122 1.15 -0.122 c 0 0 0.438 0.876 0.438 0.876 c 0 0 0.199 -0.741 0.199 -0.741 c 0 0 1.104 -0.509 1.104 -0.509 c 0 0 0.176 1.188 0.176 1.188 c 0 0 2.713 0.503 2.713 0.503 c 0 0 0.872 -1.333 0.872 -1.333 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Guelma\"},\"25\":{\"path\":\"M 361.888 43.9039 c 0 0 -0.077 -0.57 -0.077 -0.57 c 0 0 0.855 -0.474 0.855 -0.474 c 0 0 0.104 -1.688 0.104 -1.688 c 0 0 -0.561 -1.442 -0.561 -1.442 c 0 0 -1.224 -0.221 -1.224 -0.221 c 0 0 0.599 -0.717 0.599 -0.717 c 0 0 -1.052 -0.557 -1.052 -0.557 c 0 0 0.532 -0.551 0.532 -0.551 c 0 0 -0.572 -0.892 -0.572 -0.892 c 0 0 -1.253 -0.13 -1.253 -0.13 c 0 0 -0.398 -0.7 -0.398 -0.7 c 0 0 -1.124 0.208 -1.124 0.208 c 0 0 0.207 -2.014 0.207 -2.014 c 0 0 0.969 -1.018 0.969 -1.018 c 0 0 -1.799 0.36 -1.799 0.36 c 0 0 -2.274 -0.424 -2.274 -0.424 c 0 0 -0.368 -1.324 -0.368 -1.324 c 0 0 -1.067 1.389 -1.067 1.389 c 0 0 -2.188 -0.147 -2.188 -0.147 c 0 0 -0.02 1.6 -0.02 1.6 c 0 0 -3.298 0.766 -3.298 0.766 c 0 0 0.284 2.021 0.284 2.021 c 0 0 -0.922 1.877 -0.922 1.877 c 0 0 1.319 -0.403 1.319 -0.403 c 0 0 1.126 0.879 1.126 0.879 c 0 0 -0.265 1.487 -0.265 1.487 c 0 0 0.788 0.495 0.788 0.495 c 0 0 1.019 -0.295 1.019 -0.295 c 0 0 0.938 0.805 0.938 0.805 c 0 0 -0.108 1.354 -0.108 1.354 c 0 0 -0.381 0.438 -0.381 0.438 c 0 0 0.595 1.159 0.595 1.159 c 0 0 1.01 0.369 1.01 0.369 c 0 0 -0.464 -0.804 -0.464 -0.804 c 0 0 1.122 0.604 1.122 0.604 c 0 0 0.375 -1.069 0.375 -1.069 c 0 0 2.243 -0.159 2.243 -0.159 c 0 0 0.263 -1.444 0.263 -1.444 c 0 0 1.446 1.166 1.446 1.166 c 0 0 3.621 0.066 3.621 0.066 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Constantine\"},\"26\":{\"path\":\"M 291.189 51.9288 c 0 0 0.272 0.795 0.272 0.795 c 0 0 -1.143 0.688 -1.143 0.688 c 0 0 0.551 0.367 0.551 0.367 c 0 0 -2.021 0.685 -2.021 0.685 c 0 0 0.86 1.28 0.86 1.28 c 0 0 0.034 2.966 0.034 2.966 c 0 0 -2.708 -4.154 -2.708 -4.154 c 0 0 -0.896 0.141 -0.896 0.141 c 0 0 0.406 0.771 0.406 0.771 c 0 0 -0.488 0.495 -0.488 0.495 c 0 0 -1.09 0.049 -1.09 0.049 c 0 0 -0.854 -1.716 -0.854 -1.716 c 0 0 -1.031 1.021 -1.031 1.021 c 0 0 0.104 1.206 0.104 1.206 c 0 0 -0.753 1.37 -0.753 1.37 c 0 0 -2.786 0.7 -2.786 0.7 c 0 0 -0.185 -2.199 -0.185 -2.199 c 0 0 -0.699 0.144 -0.699 0.144 c 0 0 -0.693 -2.337 -0.693 -2.337 c 0 0 -2.585 0.707 -2.585 0.707 c 0 0 0.677 5.005 0.677 5.005 c 0 0 -0.578 -0.259 -0.578 -0.259 c 0 0 -1.83 1.359 -1.83 1.359 c 0 0 -1.605 2.564 -1.605 2.564 c 0 0 -1.292 0.661 -1.292 0.661 c 0 0 -2.698 -1.908 -2.698 -1.908 c 0 0 -0.229 0.56 -0.229 0.56 c 0 0 -2.476 0.813 -2.476 0.813 c 0 0 -2.139 0.167 -2.139 0.167 c 0 0 -0.658 -2.362 -0.658 -2.362 c 0 0 0.71 -1.968 0.71 -1.968 c 0 0 -2.811 -0.738 -2.811 -0.738 c 0 0 -0.347 -1.359 -0.347 -1.359 c 0 0 0.503 -0.62 0.503 -0.62 c 0 0 2.227 0.229 2.227 0.229 c 0 0 0.902 -3.906 0.902 -3.906 c 0 0 1.051 -1.104 1.051 -1.104 c 0 0 -0.339 -0.876 -0.339 -0.876 c 0 0 1.986 0.073 1.986 0.073 c 0 0 0.315 -2.775 0.315 -2.775 c 0 0 0.86 0.234 0.86 0.234 c 0 0 1.842 -1.11 1.842 -1.11 c 0 0 0.062 -1.843 0.062 -1.843 c 0 0 -1.344 -0.306 -1.344 -0.306 c 0 0 -0.085 -1.369 -0.085 -1.369 c 0 0 -0.709 -0.199 -0.709 -0.199 c 0 0 0.625 -1.909 0.625 -1.909 c 0 0 1.348 0.043 1.348 0.043 c 0 0 0.756 -0.614 0.756 -0.614 c 0 0 1.51 -1.087 1.51 -1.087 c 0 0 2.893 0.205 2.893 0.205 c 0 0 1.568 -1.178 1.568 -1.178 c 0 0 0.67 1.507 0.67 1.507 c 0 0 1.481 0.008 1.481 0.008 c 0 0 0.867 -0.967 0.867 -0.967 c 0 0 -0.189 -1.356 -0.189 -1.356 c 0 0 0.474 0.956 0.474 0.956 c 0 0 0.732 -0.598 0.732 -0.598 c 0 0 0.692 0.698 0.692 0.698 c 0 0 1.158 -1.154 1.158 -1.154 c 0 0 0.084 -1.381 0.084 -1.381 c 0 0 1.63 0.271 1.63 0.271 c 0 0 0.479 -0.537 0.479 -0.537 c 0 0 2.722 2.629 2.722 2.629 c 0 0 1.562 -1.479 1.562 -1.479 c 0 0 1.356 0.703 1.356 0.703 c 0 0 -0.439 0.687 -0.439 0.687 c 0 0 0.998 1.392 0.998 1.392 c 0 0 -1.071 0.599 -1.071 0.599 c 0 0 -0.441 1.267 -0.441 1.267 c 0 0 1.069 0.979 1.069 0.979 c 0 0 -0.181 0.809 -0.181 0.809 c 0 0 -1.426 0.414 -1.426 0.414 c 0 0 -0.229 0.854 -0.229 0.854 c 0 0 0.656 1.042 0.656 1.042 c 0 0 -0.409 0.485 -0.409 0.485 c 0 0 -0.898 0.936 -0.898 0.936 c 0 0 -1.014 -0.016 -1.014 -0.016 c 0 0 0.479 0.781 0.479 0.781 c 0 0 2.788 0.434 2.788 0.434 c 0 0 1.41 2.635 1.41 2.635 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Médéa\"},\"27\":{\"path\":\"M 212.85 55.2648 c 0 0 2.964 -1.85 2.964 -1.85 c 0 0 2.338 -4.67 2.338 -4.67 c 0 0 1.846 -1.942 1.846 -1.942 c 0 0 9.188 -5.395 9.188 -5.395 c 0 0 1.74 -0.06 1.74 -0.06 c 0 0 -1.001 3.283 -1.001 3.283 c 0 0 -1.979 2.472 -1.979 2.472 c 0 0 1.289 1.351 1.289 1.351 c 0 0 -0.634 0.698 -0.634 0.698 c 0 0 0.359 0.87 0.359 0.87 c 0 0 -2.126 0.093 -2.126 0.093 c 0 0 -0.555 0.604 -0.555 0.604 c 0 0 -1.226 -0.57 -1.226 -0.57 c 0 0 -0.846 1.017 -0.846 1.017 c 0 0 0.313 0.769 0.313 0.769 c 0 0 0.674 -0.036 0.674 -0.036 c 0 0 -0.59 0.992 -0.59 0.992 c 0 0 0.229 0.908 0.229 0.908 c 0 0 -1.332 1.438 -1.332 1.438 c 0 0 -0.877 -0.373 -0.877 -0.373 c 0 0 -0.867 0.539 -0.867 0.539 c 0 0 -1.744 2.073 -1.744 2.073 c 0 0 -0.903 -0.138 -0.903 -0.138 c 0 0 -0.604 0.964 -0.604 0.964 c 0 0 -0.03 -0.763 -0.03 -0.763 c 0 0 -1.07 0.18 -1.07 0.18 c 0 0 -1.028 -1.427 -1.028 -1.427 c 0 0 -2.252 0.6 -2.252 0.6 c 0 0 -1.276 -1.627 -1.276 -1.627 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Mostaganem\"},\"28\":{\"path\":\"M 320.989 54.6068 c 0 0 -0.17 0.627 -0.17 0.627 c 0 0 1.475 1.042 1.475 1.042 c 0 0 1.106 -0.24 1.106 -0.24 c 0 0 0.486 0.518 0.486 0.518 c 0 0 -0.417 0.537 -0.417 0.537 c 0 0 0.547 0.807 0.547 0.807 c 0 0 3.493 0.469 3.493 0.469 c 0 0 -2.661 2.962 -2.661 2.962 c 0 0 -1.817 0.906 -1.817 0.906 c 0 0 -0.722 -1.068 -0.722 -1.068 c 0 0 -1.062 -0.011 -1.062 -0.011 c 0 0 -0.828 0.921 -0.828 0.921 c 0 0 -0.074 -0.787 -0.074 -0.787 c 0 0 -0.96 1.506 -0.96 1.506 c 0 0 -1.945 -1.698 -1.945 -1.698 c 0 0 0.823 4.4 0.823 4.4 c 0 0 -0.379 2.546 -0.379 2.546 c 0 0 -0.916 1.548 -0.916 1.548 c 0 0 -0.524 -0.186 -0.524 -0.186 c 0 0 -1.187 1.172 -1.187 1.172 c 0 0 0.194 0.606 0.194 0.606 c 0 0 2.929 0.06 2.929 0.06 c 0 0 2.125 1.396 2.125 1.396 c 0 0 0.447 3.492 0.447 3.492 c 0 0 0.547 0.305 0.547 0.305 c 0 0 -0.538 0.065 -0.538 0.065 c 0 0 -0.683 1.586 -0.683 1.586 c 0 0 -5.438 1.63 -5.438 1.63 c 0 0 -0.942 1.502 -0.942 1.502 c 0 0 -1.001 0.173 -1.001 0.173 c 0 0 1.298 1.086 1.298 1.086 c 0 0 -1.021 0.547 -1.021 0.547 c 0 0 -0.657 -0.445 -0.657 -0.445 c 0 0 -1.832 1.14 -1.832 1.14 c 0 0 -4.806 0.046 -4.806 0.046 c 0 0 -0.876 1.823 -0.876 1.823 c 0 0 -2.191 1.835 -2.191 1.835 c 0 0 0.521 0.302 0.521 0.302 c 0 0 0.417 3.083 0.417 3.083 c 0 0 1.218 1.271 1.218 1.271 c 0 0 -0.307 0.725 -0.307 0.725 c 0 0 1.813 0.933 1.813 0.933 c 0 0 -0.773 1.007 -0.773 1.007 c 0 0 -1.99 0.525 -1.99 0.525 c 0 0 -4.303 -3.585 -4.303 -3.585 c 0 0 0.313 -2.084 0.313 -2.084 c 0 0 -1.836 -1.982 -1.836 -1.982 c 0 0 0.299 -2.042 0.299 -2.042 c 0 0 -0.719 -4.248 -0.719 -4.248 c 0 0 -3.906 -0.975 -3.906 -0.975 c 0 0 -1.411 0.479 -1.411 0.479 c 0 0 -0.14 -1.65 -0.14 -1.65 c 0 0 -1.402 -0.322 -1.402 -0.322 c 0 0 0.209 -2.972 0.209 -2.972 c 0 0 -0.698 -0.953 -0.698 -0.953 c 0 0 0.551 -0.068 0.551 -0.068 c 0 0 0.504 -1.539 0.504 -1.539 c 0 0 -1.839 0.736 -1.839 0.736 c 0 0 -1.138 -3.13 -1.138 -3.13 c 0 0 4.282 -3.606 4.282 -3.606 c 0 0 -0.425 -1.94 -0.425 -1.94 c 0 0 0.865 -0.633 0.865 -0.633 c 0 0 0.075 -1.772 0.075 -1.772 c 0 0 -4.719 -3.806 -4.719 -3.806 c 0 0 -1.903 -1.953 -1.903 -1.953 c 0 0 -0.313 -1.258 -0.313 -1.258 c 0 0 0.489 -0.494 0.489 -0.494 c 0 0 -0.405 -0.771 -0.405 -0.771 c 0 0 0.895 -0.14 0.895 -0.14 c 0 0 2.709 4.154 2.709 4.154 c 0 0 -0.037 -2.966 -0.037 -2.966 c 0 0 -0.859 -1.281 -0.859 -1.281 c 0 0 2.022 -0.685 2.022 -0.685 c 0 0 -0.551 -0.367 -0.551 -0.367 c 0 0 1.144 -0.686 1.144 -0.686 c 0 0 -0.274 -0.796 -0.274 -0.796 c 0 0 0.533 -0.809 0.533 -0.809 c 0 0 1.537 0.153 1.537 0.153 c 0 0 0.654 0.924 0.654 0.924 c 0 0 1.07 0.224 1.07 0.224 c 0 0 0.352 1.004 0.352 1.004 c 0 0 0.802 0.048 0.802 0.048 c 0 0 1.271 -1.214 1.271 -1.214 c 0 0 2.542 0.89 2.542 0.89 c 0 0 -0.444 -1.385 -0.444 -1.385 c 0 0 1.058 -3.265 1.058 -3.265 c 0 0 0.57 1.104 0.57 1.104 c 0 0 2.211 -0.769 2.211 -0.769 c 0 0 2.755 0.986 2.755 0.986 c 0 0 3.391 -1.461 3.391 -1.461 c 0 0 0.865 2.774 0.865 2.774 c 0 0 -1.615 0.625 -1.615 0.625 c 0 0 -0.69 2.095 -0.69 2.095 c 0 0 2.823 0.292 2.823 0.292 c 0 0 -0.36 -0.99 -0.36 -0.99 c 0 0 1.328 -0.64 1.328 -0.64 c 0 0 -0.386 1.092 -0.386 1.092 c 0 0 0.663 0.766 0.663 0.766 c 0 0 2.07 -1.562 2.07 -1.562 c 0 0 2.721 -0.533 2.721 -0.533 c 0 0 1.33 1.67 1.33 1.67 c 0 0 1.165 -0.05 1.165 -0.05 c 0 0 0.184 1.218 0.184 1.218 c 0 0 1.399 -0.516 1.399 -0.516 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"M'Sila\"},\"29\":{\"path\":\"M 220.012 57.4758 c 0 0 0.578 0.193 0.578 0.193 c 0 0 1.217 3.61 1.217 3.61 c 0 0 1.717 -0.492 1.717 -0.492 c 0 0 0.125 0.523 0.125 0.523 c 0 0 0.858 -0.611 0.858 -0.611 c 0 0 1.282 1.803 1.282 1.803 c 0 0 1.891 -0.041 1.891 -0.041 c 0 0 0.918 0.917 0.918 0.917 c 0 0 1.721 -0.085 1.721 -0.085 c 0 0 0.296 0.662 0.296 0.662 c 0 0 2.047 0.317 2.047 0.317 c 0 0 1.49 1.555 1.49 1.555 c 0 0 -0.688 0.28 -0.688 0.28 c 0 0 -0.874 2.105 -0.874 2.105 c 0 0 -1.111 0.353 -1.111 0.353 c 0 0 -1.521 -0.788 -1.521 -0.788 c 0 0 -1.084 0.159 -1.084 0.159 c 0 0 -1.175 1.41 -1.175 1.41 c 0 0 0.246 0.949 0.246 0.949 c 0 0 -1.553 1.1 -1.553 1.1 c 0 0 -1.071 1.771 -1.071 1.771 c 0 0 -1.54 1.518 -1.54 1.518 c 0 0 -0.999 -0.12 -0.999 -0.12 c 0 0 -0.773 -0.89 -0.773 -0.89 c 0 0 -2.493 1.648 -2.493 1.648 c 0 0 -1.011 -0.662 -1.011 -0.662 c 0 0 -0.205 -0.907 -0.205 -0.907 c 0 0 -1.081 0.098 -1.081 0.098 c 0 0 -1.301 -0.867 -1.301 -0.867 c 0 0 -2.583 0.188 -2.583 0.188 c 0 0 -0.345 -1.976 -0.345 -1.976 c 0 0 -0.665 1.238 -0.665 1.238 c 0 0 -0.982 -0.007 -0.982 -0.007 c 0 0 -0.804 -2.203 -0.804 -2.203 c 0 0 0.376 -0.965 0.376 -0.965 c 0 0 1.477 -0.712 1.477 -0.712 c 0 0 -0.955 -0.354 -0.955 -0.354 c 0 0 -1.222 1.019 -1.222 1.019 c 0 0 -0.217 -0.549 -0.217 -0.549 c 0 0 1.312 -0.856 1.312 -0.856 c 0 0 0.38 -0.987 0.38 -0.987 c 0 0 -2.728 -0.854 -2.728 -0.854 c 0 0 -0.352 -0.632 -0.352 -0.632 c 0 0 -0.753 0.882 -0.753 0.882 c 0 0 -1.563 -0.12 -1.563 -0.12 c 0 0 0.231 -2.254 0.231 -2.254 c 0 0 -1.59 0.602 -1.59 0.602 c 0 0 -0.786 -0.382 -0.786 -0.382 c 0 0 0.318 -0.749 0.318 -0.749 c 0 0 1.029 -0.085 1.029 -0.085 c 0 0 -0.37 -0.949 -0.37 -0.949 c 0 0 1.582 -0.382 1.582 -0.382 c 0 0 0.264 -1.739 0.264 -1.739 c 0 0 2.625 -2.104 2.625 -2.104 c 0 0 -0.667 -0.006 -0.667 -0.006 c 0 0 0.89 -1.532 0.89 -1.532 c 0 0 1.433 1.089 1.433 1.089 c 0 0 1.581 -2.289 1.581 -2.289 c 0 0 1.287 1.577 1.287 1.577 c 0 0 2.252 -0.6 2.252 -0.6 c 0 0 1.029 1.428 1.029 1.428 c 0 0 1.069 -0.181 1.069 -0.181 c 0 0 0.03 0.763 0.03 0.763 c 0 0 0.605 -0.963 0.605 -0.963 c 0 0 0.906 0.136 0.906 0.136 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Mascara\"},\"30\":{\"path\":\"M 327.951 114.981 c 0 0 -0.91 1.857 -0.91 1.857 c 0 0 -3.919 -3.5 -3.919 -3.5 c 0 0 -2.42 5.13 -2.42 5.13 c 0 0 2.209 11.443 2.209 11.443 c 0 0 -5.039 9.304 -5.039 9.304 c 0 0 -6.763 7.312 -6.763 7.312 c 0 0 -0.766 17.01 -0.766 17.01 c 0 0 -3.171 8.157 -3.171 8.157 c 0 0 -10.495 36.704 -10.495 36.704 c 0 0 -1.579 1.093 -1.579 1.093 c 0 0 -6.763 14.091 -6.763 14.091 c 0 0 -8.226 3.631 -8.226 3.631 c 0 0 17.526 14.179 17.526 14.179 c 0 0 -0.146 0.413 -0.146 0.413 c 0 0 43.124 -33.261 43.124 -33.261 c 0 0 15.876 -8.912 15.876 -8.912 c 0 0 2.795 0.889 2.795 0.889 c 0 0 63.493 -16.461 63.493 -16.461 c 0 0 -11.392 -38.443 -11.392 -38.443 c 0 0 -39.729 4.259 -39.729 4.259 c 0 0 -5.501 -6.366 -5.501 -6.366 c 0 0 -7.777 -11.58 -7.777 -11.58 c 0 0 -8.097 -22.969 -8.097 -22.969 c 0 0 -1.219 -7.663 -1.219 -7.663 c 0 0 -0.319 0.807 -0.319 0.807 c 0 0 -0.521 -1.04 -0.521 -1.04 c 0 0 -0.762 0.111 -0.762 0.111 c 0 0 -2.721 2.136 -2.721 2.136 c 0 0 -0.552 -1.05 -0.552 -1.05 c 0 0 -0.665 0.606 -0.665 0.606 c 0 0 -0.047 1.4 -0.047 1.4 c 0 0 1.138 2.602 1.138 2.602 c 0 0 0.039 2.557 0.039 2.557 c 0 0 -0.953 1.07 -0.953 1.07 c 0 0 1.171 1.467 1.171 1.467 c 0 0 0.374 2.7 0.374 2.7 c 0 0 -17.293 0.317 -17.293 0.317 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Ouargla\"},\"31\":{\"path\":\"M 204.15 64.0609 c 0 0 0.319 -0.749 0.319 -0.749 c 0 0 1.029 -0.085 1.029 -0.085 c 0 0 -0.37 -0.95 -0.37 -0.95 c 0 0 1.582 -0.381 1.582 -0.381 c 0 0 0.264 -1.74 0.264 -1.74 c 0 0 2.625 -2.104 2.625 -2.104 c 0 0 -0.667 -0.006 -0.667 -0.006 c 0 0 0.89 -1.532 0.89 -1.532 c 0 0 1.433 1.09 1.433 1.09 c 0 0 1.597 -2.34 1.597 -2.34 c 0 0 -3.432 -0.925 -3.432 -0.925 c 0 0 -0.636 -0.732 -0.636 -0.732 c 0 0 0.279 -0.764 0.279 -0.764 c 0 0 -0.896 -0.845 -0.896 -0.845 c 0 0 -0.981 0.025 -0.981 0.025 c 0 0 -0.675 0.67 -0.675 0.67 c 0 0 -1.5 0.109 -1.5 0.109 c 0 0 -0.331 2.201 -0.331 2.201 c 0 0 -2.492 1.917 -2.492 1.917 c 0 0 -1.325 0.012 -1.325 0.012 c 0 0 -0.406 -0.761 -0.406 -0.761 c 0 0 -2.549 -0.737 -2.549 -0.737 c 0 0 -0.751 1.339 -0.751 1.339 c 0 0 -0.854 0.255 -0.854 0.255 c 0 0 -0.794 -0.59 -0.794 -0.59 c 0 0 -2.608 2.264 -2.608 2.264 c 0 0 1.342 1.429 1.342 1.429 c 0 0 -0.223 0.719 -0.223 0.719 c 0 0 1.009 0.007 1.009 0.007 c 0 0 -0.384 1.019 -0.384 1.019 c 0 0 -0.893 0.252 -0.893 0.252 c 0 0 0.174 1.591 0.174 1.591 c 0 0 0.012 -0.62 0.012 -0.62 c 0 0 0.895 -0.047 0.895 -0.047 c 0 0 -0.201 -0.596 -0.201 -0.596 c 0 0 0.82 0.656 0.82 0.656 c 0 0 1.569 0.021 1.569 0.021 c 0 0 5.066 -1.624 5.066 -1.624 c 0 0 0.775 2.922 0.775 2.922 c 0 0 -0.772 0.564 -0.772 0.564 c 0 0 -0.026 1.101 -0.026 1.101 c 0 0 0.184 0.673 0.184 0.673 c 0 0 1.502 -0.747 1.502 -0.747 c 0 0 -0.24 -0.964 -0.24 -0.964 c 0 0 0.64 -0.997 0.64 -0.997 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Oran\"},\"32\":{\"path\":\"M 233.026 90.7739 c 0 0 -2.853 -0.734 -2.853 -0.734 c 0 0 -4.583 3.134 -4.583 3.134 c 0 0 -1.732 -2.296 -1.732 -2.296 c 0 0 -2.898 2.009 -2.898 2.009 c 0 0 -2.172 -0.253 -2.172 -0.253 c 0 0 -2.096 -2.128 -2.096 -2.128 c 0 0 -2.331 -0.763 -2.331 -0.763 c 0 0 1.232 5.509 1.232 5.509 c 0 0 -0.942 0.691 -0.942 0.691 c 0 0 -1.501 3.065 -1.501 3.065 c 0 0 0.176 2.472 0.176 2.472 c 0 0 1.795 -0.807 1.795 -0.807 c 0 0 1.055 0.748 1.055 0.748 c 0 0 -0.204 2.644 -0.204 2.644 c 0 0 0.751 0.279 0.751 0.279 c 0 0 0.729 1.792 0.729 1.792 c 0 0 0.76 0.113 0.76 0.113 c 0 0 -2.122 1.127 -2.122 1.127 c 0 0 0.828 2.979 0.828 2.979 c 0 0 -2.93 13.106 -2.93 13.106 c 0 0 0.842 2.448 0.842 2.448 c 0 0 -0.887 0.991 -0.887 0.991 c 0 0 0.673 0.434 0.673 0.434 c 0 0 -0.593 1.588 -0.593 1.588 c 0 0 -1.563 0.854 -1.563 0.854 c 0 0 -0.278 1.842 -0.278 1.842 c 0 0 0.827 0.472 0.827 0.472 c 0 0 -0.269 1.131 -0.269 1.131 c 0 0 0.979 1.097 0.979 1.097 c 0 0 -0.397 1.534 -0.397 1.534 c 0 0 0.431 2.391 0.431 2.391 c 0 0 -2.988 5.758 -2.988 5.758 c 0 0 -0.953 4.385 -0.953 4.385 c 0 0 -2.081 -0.471 -2.081 -0.471 c 0 0 -1.103 0.817 -1.103 0.817 c 0 0 -1.05 2.219 -1.05 2.219 c 0 0 -0.139 4.177 -0.139 4.177 c 0 0 0.68 2.281 0.68 2.281 c 0 0 -0.686 0.065 -0.686 0.065 c 0 0 0.179 0.967 0.179 0.967 c 0 0 -0.602 0.846 -0.602 0.846 c 0 0 0.955 1.181 0.955 1.181 c 0 0 -1.242 1.21 -1.242 1.21 c 0 0 1.247 2.015 1.247 2.015 c 0 0 -1.014 1.203 -1.014 1.203 c 0 0 0.036 1.864 0.036 1.864 c 0 0 0.852 1.823 0.852 1.823 c 0 0 2.918 2.352 2.918 2.352 c 0 0 -0.818 2.98 -0.818 2.98 c 0 0 14.029 11.903 14.029 11.903 c 0 0 15.816 -11.179 15.816 -11.179 c 0 0 21.085 -13.183 21.085 -13.183 c 0 0 4.648 -5.149 4.648 -5.149 c 0 0 -0.721 -8.611 -0.721 -8.611 c 0 0 2.573 -1.672 2.573 -1.672 c 0 0 -1.918 -7.688 -1.918 -7.688 c 0 0 -0.564 -6.182 -0.564 -6.182 c 0 0 -3.111 -6.564 -3.111 -6.564 c 0 0 0.146 -1.528 0.146 -1.528 c 0 0 -0.641 -0.886 -0.641 -0.886 c 0 0 3.997 -0.134 3.997 -0.134 c 0 0 0.203 -3.901 0.203 -3.901 c 0 0 -2.073 0.452 -2.073 0.452 c 0 0 -3.52 -1.138 -3.52 -1.138 c 0 0 0.205 -1.673 0.205 -1.673 c 0 0 -3.122 -0.287 -3.122 -0.287 c 0 0 0.285 -2.856 0.285 -2.856 c 0 0 0.82 -1.435 0.82 -1.435 c 0 0 -1.142 -1.009 -1.142 -1.009 c 0 0 -0.124 -0.991 -0.124 -0.991 c 0 0 -1.457 -0.411 -1.457 -0.411 c 0 0 0.247 -2.655 0.247 -2.655 c 0 0 -0.565 -1.551 -0.565 -1.551 c 0 0 -1.828 -1.584 -1.828 -1.584 c 0 0 -3.495 0.817 -3.495 0.817 c 0 0 -1.613 -1.795 -1.613 -1.795 c 0 0 -2.206 -0.969 -2.206 -0.969 c 0 0 0.165 -0.989 0.165 -0.989 c 0 0 -0.863 -1.461 -0.863 -1.461 c 0 0 -1.119 -1.576 -1.119 -1.576 c 0 0 -0.215 -1.844 -0.215 -1.844 c 0 0 -5.541 0.295 -5.541 0.295 c 0 0 0.672 -4.884 0.672 -4.884 c 0 0 -3.971 -0.823 -3.971 -0.823 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"El-Bayadh\"},\"33\":{\"path\":\"M 454.129 387.74 c 0 0 -0.719 -20.563 -0.719 -20.563 c 0 0 -7.48 -4.23 -7.48 -4.23 c 0 0 -2.209 0.049 -2.209 0.049 c 0 0 -1.657 -1.011 -1.657 -1.011 c 0 0 -13.903 0.818 -13.903 0.818 c 0 0 -12.891 9.613 -12.891 9.613 c 0 0 -17.177 4.161 -17.177 4.161 c 0 0 -6.243 -4.393 -6.243 -4.393 c 0 0 1.974 -2.232 1.974 -2.232 c 0 0 -5.578 -12.361 -5.578 -12.361 c 0 0 -1.04 -10.938 -1.04 -10.938 c 0 0 0.237 -3.784 0.237 -3.784 c 0 0 -5.594 -8.033 -5.594 -8.033 c 0 0 -4.477 -0.14 -4.477 -0.14 c 0 0 -2.836 -2.179 -2.836 -2.179 c 0 0 -3.687 -6.237 -3.687 -6.237 c 0 0 -1.628 -4.169 -1.628 -4.169 c 0 0 -5.061 -6.142 -5.061 -6.142 c 0 0 -5.932 -16.141 -5.932 -16.141 c 0 0 -1.532 -1.133 -1.532 -1.133 c 0 0 -0.138 -1.004 -0.138 -1.004 c 0 0 -2.248 -0.6 -2.248 -0.6 c 0 0 -1.181 -1.556 -1.181 -1.556 c 0 0 1.06 -3.063 1.06 -3.063 c 0 0 2.819 -2.35 2.819 -2.35 c 0 0 -0.418 -1.914 -0.418 -1.914 c 0 0 -12.688 -11.211 -12.688 -11.211 c 0 0 -0.038 -8.717 -0.038 -8.717 c 0 0 -3.731 -17.58 -3.731 -17.58 c 0 0 1.773 -8.354 1.773 -8.354 c 0 0 -1.295 -33.809 -1.295 -33.809 c 0 0 15.876 -8.912 15.876 -8.912 c 0 0 2.796 0.888 2.796 0.888 c 0 0 63.493 -16.461 63.493 -16.461 c 0 0 2.411 8.262 2.411 8.262 c 0 0 -3.099 1.292 -3.099 1.292 c 0 0 -0.465 1.084 -0.465 1.084 c 0 0 0.689 2.608 0.689 2.608 c 0 0 2.979 3.429 2.979 3.429 c 0 0 6.166 11.784 6.166 11.784 c 0 0 2.729 9.976 2.729 9.976 c 0 0 1.149 6.791 1.149 6.791 c 0 0 -0.747 12.151 -0.747 12.151 c 0 0 3.65 10.479 3.65 10.479 c 0 0 -0.548 4.821 -0.548 4.821 c 0 0 -1.157 2.46 -1.157 2.46 c 0 0 -1.083 0.37 -1.083 0.37 c 0 0 1.397 0.222 1.397 0.222 c 0 0 -0.245 1.499 -0.245 1.499 c 0 0 -1.049 1.133 -1.049 1.133 c 0 0 -0.483 2.826 -0.483 2.826 c 0 0 0.133 2.473 0.133 2.473 c 0 0 2.239 7.597 2.239 7.597 c 0 0 1.692 2.23 1.692 2.23 c 0 0 0.099 5.493 0.099 5.493 c 0 0 -0.928 3.311 -0.928 3.311 c 0 0 -7.815 3.964 -7.815 3.964 c 0 0 -1.079 3.438 -1.079 3.438 c 0 0 -1.214 1.554 -1.214 1.554 c 0 0 16.01 20.327 16.01 20.327 c 0 0 0.78 10.061 0.78 10.061 c 0 0 4.756 7.704 4.756 7.704 c 0 0 3.475 2.664 3.475 2.664 c 0 0 4.406 -0.238 4.406 -0.238 c 0 0 1.539 -1.13 1.539 -1.13 c 0 0 2.129 -0.146 2.129 -0.146 c 0 0 1.531 1.491 1.531 1.491 c 0 0 1.29 -1.619 1.29 -1.619 c 0 0 1.709 0.246 1.709 0.246 c 0 0 1.289 0.52 1.289 0.52 c 0 0 2.539 2.53 2.539 2.53 c 0 0 2.012 0.66 2.012 0.66 c 0 0 7.08 4.37 7.08 4.37 c 0 0 4.112 -1.98 4.112 -1.98 c 0 0 10.551 17.862 10.551 17.862 c 0 0 -39.276 29.119 -39.276 29.119 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Illizi\"},\"34\":{\"path\":\"M 320.989 54.6068 c 0 0 -0.019 -1.603 -0.019 -1.603 c 0 0 2.087 -0.288 2.087 -0.288 c 0 0 -0.482 -2.927 -0.482 -2.927 c 0 0 1.669 -2.858 1.669 -2.858 c 0 0 -0.971 -0.972 -0.971 -0.972 c 0 0 0.127 -2.078 0.127 -2.078 c 0 0 -0.963 -0.272 -0.963 -0.272 c 0 0 -1.479 -2.545 -1.479 -2.545 c 0 0 -1.203 -0.363 -1.203 -0.363 c 0 0 -0.962 0.653 -0.962 0.653 c 0 0 -2.853 0.298 -2.853 0.298 c 0 0 -0.779 -0.983 -0.779 -0.983 c 0 0 0.3 -1.875 0.3 -1.875 c 0 0 -1.258 -0.672 -1.258 -0.672 c 0 0 -0.336 1.124 -0.336 1.124 c 0 0 -2.018 0.919 -2.018 0.919 c 0 0 -0.034 2.49 -0.034 2.49 c 0 0 -4.18 1.099 -4.18 1.099 c 0 0 -0.774 -1.701 -0.774 -1.701 c 0 0 -0.783 0.919 -0.783 0.919 c 0 0 -1.362 -0.093 -1.362 -0.093 c 0 0 -0.794 1.241 -0.794 1.241 c 0 0 -1.708 0.861 -1.708 0.861 c 0 0 -0.186 2.385 -0.186 2.385 c 0 0 -1.469 1.134 -1.469 1.134 c 0 0 0.569 1.104 0.569 1.104 c 0 0 2.211 -0.77 2.211 -0.77 c 0 0 2.755 0.987 2.755 0.987 c 0 0 3.392 -1.461 3.392 -1.461 c 0 0 0.863 2.774 0.863 2.774 c 0 0 -1.616 0.625 -1.616 0.625 c 0 0 -0.689 2.095 -0.689 2.095 c 0 0 2.823 0.292 2.823 0.292 c 0 0 -0.36 -0.99 -0.36 -0.99 c 0 0 1.328 -0.64 1.328 -0.64 c 0 0 -0.387 1.092 -0.387 1.092 c 0 0 0.664 0.766 0.664 0.766 c 0 0 2.07 -1.562 2.07 -1.562 c 0 0 2.722 -0.532 2.722 -0.532 c 0 0 1.327 1.669 1.327 1.669 c 0 0 1.167 -0.05 1.167 -0.05 c 0 0 0.184 1.218 0.184 1.218 c 0 0 1.407 -0.51 1.407 -0.51 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Bord-Bou-Arréridj\"},\"35\":{\"path\":\"M 284.507 35.4899 c 0 0 2.089 0.118 2.089 0.118 c 0 0 1.365 -0.714 1.365 -0.714 c 0 0 0.479 -0.984 0.479 -0.984 c 0 0 4.716 0.709 4.716 0.709 c 0 0 -0.218 -1.694 -0.218 -1.694 c 0 0 1.416 -0.319 1.416 -0.319 c 0 0 0.847 0.593 0.847 0.593 c 0 0 -0.165 -1.289 -0.165 -1.289 c 0 0 1.354 0.313 1.354 0.313 c 0 0 -0.771 -0.862 -0.771 -0.862 c 0 0 0.386 -1.441 0.386 -1.441 c 0 0 1.042 0.231 1.042 0.231 c 0 0 0.18 -0.604 0.18 -0.604 c 0 0 0.944 -0.077 0.944 -0.077 c 0 0 0.045 -0.779 0.045 -0.779 c 0 0 1.354 -1.163 1.354 -1.163 c 0 0 -0.135 -1.239 -0.135 -1.239 c 0 0 -3.063 -0.523 -3.063 -0.523 c 0 0 -3.242 1.034 -3.242 1.034 c 0 0 -0.906 1.079 -0.906 1.079 c 0 0 -3.85 1.986 -3.85 1.986 c 0 0 -2.822 -0.274 -2.822 -0.274 c 0 0 -0.271 0.609 -0.271 0.609 c 0 0 0.658 -0.216 0.658 -0.216 c 0 0 0.03 1.021 0.03 1.021 c 0 0 -2.279 0.745 -2.279 0.745 c 0 0 -0.66 -0.482 -0.66 -0.482 c 0 0 0.392 0.701 0.392 0.701 c 0 0 -0.689 0.547 -0.689 0.547 c 0 0 0.756 1.311 0.756 1.311 c 0 0 0.888 -0.351 0.888 -0.351 c 0 0 -0.536 0.479 -0.536 0.479 c 0 0 0.471 0.856 0.471 0.856 c 0 0 -0.385 0.413 -0.385 0.413 c 0 0 0.58 0.266 0.58 0.266 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Boumerdès\"},\"36\":{\"path\":\"M 378.015 24.8629 c 0 0 0.366 0.686 0.366 0.686 c 0 0 -1.139 0.009 -1.139 0.009 c 0 0 -0.031 1.328 -0.031 1.328 c 0 0 -0.939 -0.144 -0.939 -0.144 c 0 0 -0.969 1.141 -0.969 1.141 c 0 0 0.427 0.747 0.427 0.747 c 0 0 -0.57 1.447 -0.57 1.447 c 0 0 0.937 -0.31 0.937 -0.31 c 0 0 0.687 0.501 0.687 0.501 c 0 0 1.188 2.609 1.188 2.609 c 0 0 1.168 -0.382 1.168 -0.382 c 0 0 0.201 0.542 0.201 0.542 c 0 0 -0.047 -0.771 -0.047 -0.771 c 0 0 1.299 0.586 1.299 0.586 c 0 0 0.92 1.85 0.92 1.85 c 0 0 1.383 -0.02 1.383 -0.02 c 0 0 0.272 1.761 0.272 1.761 c 0 0 0.823 -1.258 0.823 -1.258 c 0 0 1.821 -0.823 1.821 -0.823 c 0 0 -0.327 -0.753 -0.327 -0.753 c 0 0 0.471 -0.48 0.471 -0.48 c 0 0 2.326 -0.796 2.326 -0.796 c 0 0 2.308 -2.13 2.308 -2.13 c 0 0 0.916 -0.119 0.916 -0.119 c 0 0 0.696 -2.05 0.696 -2.05 c 0 0 -0.425 -1.147 -0.425 -1.147 c 0 0 -0.861 -0.401 -0.861 -0.401 c 0 0 2.97 -0.532 2.97 -0.532 c 0 0 1.982 -1.323 1.982 -1.323 c 0 0 0.178 -0.521 0.178 -0.521 c 0 0 -1.188 -0.337 -1.188 -0.337 c 0 0 0.199 -2.228 0.199 -2.228 c 0 0 -4.452 1.441 -4.452 1.441 c 0 0 -1.429 -0.654 -1.429 -0.654 c 0 0 -1.822 0.272 -1.822 0.272 c 0 0 -0.981 -0.861 -0.981 -0.861 c 0 0 -4.735 2.676 -4.735 2.676 c 0 0 -3.623 0.444 -3.623 0.444 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"El-Taref\"},\"37\":{\"path\":\"M 144.372 270.771 c 0 0 -13.244 -1.683 -13.244 -1.683 c 0 0 -3.001 -2.419 -3.001 -2.419 c 0 0 -5.835 -7.099 -5.835 -7.099 c 0 0 -0.084 -7.644 -0.084 -7.644 c 0 0 -6.775 -12.676 -6.775 -12.676 c 0 0 -5.777 -21.184 -5.777 -21.184 c 0 0 -5.817 -3.172 -5.817 -3.172 c 0 0 -8.409 -0.353 -8.409 -0.353 c 0 0 -4.977 -4.181 -4.977 -4.181 c 0 0 -1.59 2.116 -1.59 2.116 c 0 0 -2.652 -1.77 -2.652 -1.77 c 0 0 -1.38 0.46 -1.38 0.46 c 0 0 0.685 -1.695 0.685 -1.695 c 0 0 -1.662 -0.829 -1.662 -0.829 c 0 0 -5.937 0.964 -5.937 0.964 c 0 0 -2.253 -0.648 -2.253 -0.648 c 0 0 -5.062 0.498 -5.062 0.498 c 0 0 -1.257 -0.472 -1.257 -0.472 c 0 0 -1.854 1.008 -1.854 1.008 c 0 0 -3.731 -0.108 -3.731 -0.108 c 0 0 -1.934 1.228 -1.934 1.228 c 0 0 -8.19 -2.131 -8.19 -2.131 c 0 0 -5.64 3.248 -5.64 3.248 c 0 0 -4.957 -0.147 -4.957 -0.147 c 0 0 -1.001 1.766 -1.001 1.766 c 0 0 -3.104 0.861 -3.104 0.861 c 0 0 -4.236 3.001 -4.236 3.001 c 0 0 -5.013 2.403 -5.013 2.403 c 0 0 -6.767 5.049 -6.767 5.049 c 0 0 -4.839 1.729 -4.839 1.729 c 0 0 -3.193 35.971 -3.193 35.971 c 0 0 65.958 50.321 65.958 50.321 c 0 0 12.962 -4.238 12.962 -4.238 c -0.001 0 7.204 -6.951 7.204 -6.951 c 0 0 14.179 0.237 14.179 0.237 c 0 0 3.038 -6.721 3.038 -6.721 c 0 0 7.18 -9.721 7.18 -9.721 c 0 0 2.317 -1.98 2.317 -1.98 c 0 0 3.858 -1.585 3.858 -1.585 c 0 0 7.686 0.562 7.686 0.562 c 0 0 1.78 -1.06 1.78 -1.06 c 0 0 3.324 -10.955 3.324 -10.955 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tindouf\"},\"38\":{\"path\":\"M 244.49 53.8549 c 0 0 0.771 0.672 0.771 0.672 c 0 0 -1.122 1.335 -1.122 1.335 c 0 0 -0.706 -0.143 -0.706 -0.143 c 0 0 -0.332 -0.894 -0.332 -0.894 c 0 0 -0.993 0.542 -0.993 0.542 c 0 0 0.206 1.651 0.206 1.651 c 0 0 -0.649 1.073 -0.649 1.073 c 0 0 1.344 1.67 1.344 1.67 c 0 0 0.59 -2.298 0.59 -2.298 c 0 0 1.271 0.932 1.271 0.932 c 0 0 0.538 -0.305 0.538 -0.305 c 0 0 1.353 0.765 1.353 0.765 c 0 0 0.062 1.415 0.062 1.415 c 0 0 1.953 -0.175 1.953 -0.175 c 0 0 1.045 1.72 1.045 1.72 c 0 0 0.813 0.154 0.813 0.154 c 0 0 0.172 -1.047 0.172 -1.047 c 0 0 0.958 0.974 0.958 0.974 c 0 0 3.797 -0.434 3.797 -0.434 c 0 0 2.436 -1.337 2.436 -1.337 c 0 0 -0.56 0.671 -0.56 0.671 c 0 0 1.55 0.067 1.55 0.067 c 0 0 -0.029 0.951 -0.029 0.951 c 0 0 3.701 -0.316 3.701 -0.316 c 0 0 0.708 -1.967 0.708 -1.967 c 0 0 -2.81 -0.739 -2.81 -0.739 c 0 0 -0.347 -1.359 -0.347 -1.359 c 0 0 0.504 -0.619 0.504 -0.619 c 0 0 2.226 0.229 2.226 0.229 c 0 0 0.901 -3.905 0.901 -3.905 c 0 0 -1.561 -0.133 -1.561 -0.133 c 0 0 -0.842 -1.107 -0.842 -1.107 c 0 0 -1.228 -0.057 -1.228 -0.057 c 0 0 -0.44 -0.937 -0.44 -0.937 c 0 0 -2.687 0.709 -2.687 0.709 c 0 0 0.006 -1.004 0.006 -1.004 c 0 0 -2.634 2.928 -2.634 2.928 c 0 0 -0.774 0.021 -0.774 0.021 c 0 0 -0.399 -1.149 -0.399 -1.149 c 0 0 -2.134 -0.251 -2.134 -0.251 c 0 0 -1.909 -1.17 -1.909 -1.17 c 0 0 -1.035 -1.876 -1.035 -1.876 c 0 0 -1.22 1.163 -1.22 1.163 c 0 0 -0.035 0.865 -0.035 0.865 c 0 0 -2.264 0.618 -2.264 0.618 c 0 0 0.384 0.35 0.384 0.35 c 0 0 -0.518 0.333 -0.518 0.333 c 0 0 -0.061 1.414 -0.061 1.414 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tissemsilt\"},\"39\":{\"path\":\"M 381.341 91.9338 c 0 0 -8.26 -0.416 -8.26 -0.416 c 0 0 -4.264 -1.485 -4.264 -1.485 c 0 0 -4.422 0.397 -4.422 0.397 c 0 0 -0.09 4.578 -0.09 4.578 c 0 0 -1.543 -0.353 -1.543 -0.353 c 0 0 -5.193 -3.142 -5.193 -3.142 c 0 0 -0.05 -2.156 -0.05 -2.156 c 0 0 -1.726 2.196 -1.726 2.196 c 0 0 -1.654 0.581 -1.654 0.581 c 0 0 -1.451 -1.393 -1.451 -1.393 c 0 0 -5.732 -2.047 -5.732 -2.047 c 0 0 -5.311 1.305 -5.311 1.305 c 0 0 -11.927 -1.27 -11.927 -1.27 c 0 0 -2.287 -1.521 -2.287 -1.521 c 0 0 -1.104 0.629 -1.104 0.629 c 0 0 0.72 0.627 0.72 0.627 c 0 0 -1.889 1.328 -1.889 1.328 c 0 0 1.198 1.354 1.198 1.354 c 0 0 -0.702 1.853 -0.702 1.853 c 0 0 3.667 3.255 3.667 3.255 c 0 0 -1.968 4.695 -1.968 4.695 c 0 0 -0.858 4.001 -0.858 4.001 c 0 0 1.083 2.091 1.083 2.091 c 0 0 0.35 4.628 0.35 4.628 c 0 0 0.688 1.585 0.688 1.585 c 0 0 -0.662 1.726 -0.662 1.726 c 0 0 17.299 -0.319 17.299 -0.319 c 0 0 -0.374 -2.7 -0.374 -2.7 c 0 0 -1.172 -1.467 -1.172 -1.467 c 0 0 0.955 -1.07 0.955 -1.07 c 0 0 -0.04 -2.557 -0.04 -2.557 c 0 0 -1.138 -2.602 -1.138 -2.602 c 0 0 0.047 -1.4 0.047 -1.4 c 0 0 0.665 -0.606 0.665 -0.606 c 0 0 0.552 1.049 0.552 1.049 c 0 0 2.721 -2.135 2.721 -2.135 c 0 0 0.762 -0.112 0.762 -0.112 c 0 0 0.521 1.041 0.521 1.041 c 0 0 0.319 -0.807 0.319 -0.807 c 0 0 1.219 7.663 1.219 7.663 c 0 0 8.097 22.969 8.097 22.969 c 0 0 7.777 11.58 7.777 11.58 c 0 0 5.501 6.366 5.501 6.366 c 0 0 39.729 -4.259 39.729 -4.259 c 0 0 -15.994 -9.721 -15.994 -9.721 c 0 0 -1.19 -8.167 -1.19 -8.167 c 0 0 -4.769 -5.554 -4.769 -5.554 c 0 0 -0.044 -1.279 -0.044 -1.279 c 0 0 -4.671 -1.931 -4.671 -1.931 c 0 0 -1.588 -0.012 -1.588 -0.012 c 0 0 -1.992 -6.096 -1.992 -6.096 c 0 0 -3.565 -5.578 -3.565 -5.578 c 0 0 -0.276 -2.739 -0.276 -2.739 c 0 0 -1.411 -1.059 -1.411 -1.059 c 0 0 0.465 -1.005 0.465 -1.005 c 0 0 -0.633 -1.784 -0.633 -1.784 c 0 0 0.574 -2.841 0.574 -2.841 c 0 0 -0.731 -1.183 -0.731 -1.183 c 0 0 1.695 -1.198 1.695 -1.198 c 0 0 0.905 -2.192 0.905 -2.192 c 0 0 1.676 0.677 1.676 0.677 c 0 0 1.6 -1.261 1.6 -1.261 c 0 0 -0.104 -0.757 -0.104 -0.757 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"El Oued\"},\"40\":{\"path\":\"M 368.82 90.0319 c 0 0 0.773 -5.083 0.773 -5.083 c 0 0 2.108 -3.938 2.108 -3.938 c 0 0 0.024 -1.697 0.024 -1.697 c 0 0 -0.637 -0.956 -0.637 -0.956 c 0 0 0.749 -2.004 0.749 -2.004 c 0 0 -0.868 -2.387 -0.868 -2.387 c 0 0 -1.271 -0.098 -1.271 -0.098 c 0 0 -0.661 0.97 -0.661 0.97 c 0 0 -0.441 1.352 -0.441 1.352 c 0 0 0.5 -0.146 0.5 -0.146 c 0 0 -0.088 1.582 -0.088 1.582 c 0 0 -0.908 -2.111 -0.908 -2.111 c 0 0 1.39 -3.602 1.39 -3.602 c 0 0 1.306 -0.817 1.306 -0.817 c 0 0 1.429 -2.436 1.429 -2.436 c 0 0 -1.051 -1.557 -1.051 -1.557 c 0 0 0.787 -1.188 0.787 -1.188 c 0 0 -0.763 -0.573 -0.763 -0.573 c 0 0 -0.117 -2.443 -0.117 -2.443 c 0 0 3.133 -1.131 3.133 -1.131 c 0 0 -0.659 -1.052 -0.659 -1.052 c 0 0 -0.692 -0.061 -0.692 -0.061 c 0 0 -0.333 -1.191 -0.333 -1.191 c 0 0 -0.393 -0.313 -0.393 -0.313 c 0 0 -0.6 0.601 -0.6 0.601 c 0 0 0.179 -0.579 0.179 -0.579 c 0 0 -1.313 -0.926 -1.313 -0.926 c 0 0 -0.409 1.4 -0.409 1.4 c 0 0 -1.048 0.308 -1.048 0.308 c 0 0 0.063 -2.164 0.063 -2.164 c 0 0 -1.77 -0.877 -1.77 -0.877 c 0 0 -0.119 0.549 -0.119 0.549 c 0 0 -1.815 -0.27 -1.815 -0.27 c 0 0 -0.957 2.009 -0.957 2.009 c 0 0 -1.648 -0.483 -1.648 -0.483 c 0 0 0.408 -1.016 0.408 -1.016 c 0 0 -0.614 -0.53 -0.614 -0.53 c 0 0 -4.031 0.609 -4.031 0.609 c 0 0 -0.774 -1.595 -0.774 -1.595 c 0 0 -0.214 1.337 -0.214 1.337 c 0 0 0.74 1.491 0.74 1.491 c 0 0 -0.612 1.515 -0.612 1.515 c 0 0 -2.418 0.598 -2.418 0.598 c 0 0 -1.491 1.387 -1.491 1.387 c 0 0 0.634 1.334 0.634 1.334 c 0 0 -0.178 1.438 -0.178 1.438 c 0 0 1.052 0.219 1.052 0.219 c 0 0 -1.644 1.396 -1.644 1.396 c 0 0 0.23 2.636 0.23 2.636 c 0 0 -1.308 1.429 -1.308 1.429 c 0 0 0.438 1.353 0.438 1.353 c 0 0 -0.401 0.844 -0.401 0.844 c 0 0 0.802 0.146 0.802 0.146 c 0 0 1.347 2.256 1.347 2.256 c 0 0 -0.499 0.58 -0.499 0.58 c 0 0 0.611 0.482 0.611 0.482 c 0 0 -0.812 0.796 -0.812 0.796 c 0 0 0.634 2.146 0.634 2.146 c 0 0 1.087 -0.603 1.087 -0.603 c 0 0 0.737 -1.717 0.737 -1.717 c 0 0 1.138 -0.063 1.138 -0.063 c 0 0 -0.399 0.473 -0.399 0.473 c 0 0 1.047 1.056 1.047 1.056 c 0 0 -0.415 0.997 -0.415 0.997 c 0 0 0.821 -0.196 0.821 -0.196 c 0 0 -0.726 2.389 -0.726 2.389 c 0 0 0.163 3.493 0.163 3.493 c 0 0 -1.047 2.038 -1.047 2.038 c 0 0 0.517 1.927 0.517 1.927 c 0 0 0.05 2.157 0.05 2.157 c 0 0 5.193 3.14 5.193 3.14 c 0 0 1.543 0.354 1.543 0.354 c 0 0 0.09 -4.578 0.09 -4.578 c 0 0 4.421 -0.406 4.421 -0.406 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Khenchela\"},\"41\":{\"path\":\"M 389.163 47.3318 c 0 0 -2.177 -1.081 -2.177 -1.081 c 0 0 -2.499 1.112 -2.499 1.112 c 0 0 -1.255 -0.156 -1.255 -0.156 c 0 0 -2.103 2.353 -2.103 2.353 c 0 0 -1.622 0.03 -1.622 0.03 c 0 0 -1.877 -1.4 -1.877 -1.4 c 0 0 -0.397 1.363 -0.397 1.363 c 0 0 -0.817 0.485 -0.817 0.485 c 0 0 0.354 1.537 0.354 1.537 c 0 0 -2.814 0.214 -2.814 0.214 c 0 0 0.03 -1.478 0.03 -1.478 c 0 0 -2.674 -0.94 -2.674 -0.94 c 0 0 -1.024 -1.331 -1.024 -1.331 c 0 0 -0.649 -2.12 -0.649 -2.12 c 0 0 -0.736 -0.046 -0.736 -0.046 c 0 0 -0.424 -2.263 -0.424 -2.263 c 0 0 -0.75 -0.918 -0.75 -0.918 c 0 0 0.494 -1.348 0.494 -1.348 c 0 0 2.854 0.539 2.854 0.539 c 0 0 2.52 -0.934 2.52 -0.934 c 0 0 1.194 0.271 1.194 0.271 c 0 0 2.159 -2.081 2.159 -2.081 c 0 0 2.218 -0.172 2.218 -0.172 c 0 0 0.375 -0.438 0.375 -0.438 c 0 0 -1.08 -1.382 -1.08 -1.382 c 0 0 0.194 -1.316 0.194 -1.316 c 0 0 1.022 0.411 1.022 0.411 c 0 0 1.832 -1.544 1.832 -1.544 c 0 0 1.383 -0.021 1.383 -0.021 c 0 0 0.272 1.761 0.272 1.761 c 0 0 0.821 -1.258 0.821 -1.258 c 0 0 1.822 -0.823 1.822 -0.823 c 0 0 3.195 0.846 3.195 0.846 c 0 0 0.745 -0.53 0.745 -0.53 c 0 0 1.177 0.636 1.177 0.636 c 0 0 -0.594 1.719 -0.594 1.719 c 0 0 0.381 1.252 0.381 1.252 c 0 0 -1.052 1.066 -1.052 1.066 c 0 0 0.396 0.812 0.396 0.812 c 0 0 -0.868 1.572 -0.868 1.572 c 0 0 0.833 1.825 0.833 1.825 c 0 0 -0.868 1.552 -0.868 1.552 c 0 0 0.009 2.224 0.009 2.224 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Souk Ahras\"},\"42\":{\"path\":\"M 250.882 35.7498 c 0 0 -1.098 2.467 -1.098 2.467 c 0 0 1.42 2.608 1.42 2.608 c 0 0 1.47 -1.099 1.47 -1.099 c 0 0 0.288 -1.11 0.288 -1.11 c 0 0 3.892 0.806 3.892 0.806 c 0 0 2.96 -0.969 2.96 -0.969 c 0 0 2.729 0.814 2.729 0.814 c 0 0 4.677 0.011 4.677 0.011 c 0 0 1.037 -1.463 1.037 -1.463 c 0 0 1.568 0.302 1.568 0.302 c 0 0 0.447 -0.642 0.447 -0.642 c 0 0 -0.442 -0.802 -0.442 -0.802 c 0 0 1.06 -0.14 1.06 -0.14 c 0 0 1.479 -1.647 1.479 -1.647 c 0 0 2.109 -0.599 2.109 -0.599 c 0 0 -0.34 -1.022 -0.34 -1.022 c 0 0 -0.134 -1.446 -0.134 -1.446 c 0 0 -5.189 2.836 -5.189 2.836 c 0 0 -2.726 -0.038 -2.726 -0.038 c 0 0 -0.48 -1.023 -0.48 -1.023 c 0 0 -1.177 -0.279 -1.177 -0.279 c 0 0 -6.739 2.031 -6.739 2.031 c 0 0 -2.311 -0.272 -2.311 -0.272 c 0 0 -4.5 0.676 -4.5 0.676 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Tipaza\"},\"43\":{\"path\":\"M 344.575 51.2509 c 0 0 -3.583 -0.418 -3.583 -0.418 c 0 0 -0.49 0.384 -0.49 0.384 c 0 0 1.2 -1.293 1.2 -1.293 c 0 0 -1.162 -1.213 -1.162 -1.213 c 0 0 0.688 -0.604 0.688 -0.604 c 0 0 -0.284 -2.085 -0.284 -2.085 c 0 0 -1.715 -0.398 -1.715 -0.398 c 0 0 -0.049 -1.869 -0.049 -1.869 c 0 0 0.978 -0.521 0.978 -0.521 c 0 0 -2.188 -2.367 -2.188 -2.367 c 0 0 0.097 -1.172 0.097 -1.172 c 0 0 -1.395 -0.427 -1.395 -0.427 c 0 0 0.114 -1.347 0.114 -1.347 c 0 0 -1.244 -0.953 -1.244 -0.953 c 0 0 0.125 -2.048 0.125 -2.048 c 0 0 -0.558 -0.717 -0.558 -0.717 c 0 0 1.112 -0.339 1.112 -0.339 c 0 0 1.367 0.723 1.367 0.723 c 0 0 1.504 -0.447 1.504 -0.447 c 0 0 1.242 -1.67 1.242 -1.67 c 0 0 4.855 0.813 4.855 0.813 c 0 0 1.86 -1.232 1.86 -1.232 c 0 0 0.435 0.64 0.435 0.64 c 0 0 2.741 0.48 2.741 0.48 c 0 0 0.968 -0.175 0.968 -0.175 c 0 0 -0.021 1.6 -0.021 1.6 c 0 0 -3.296 0.765 -3.296 0.765 c 0 0 0.284 2.021 0.284 2.021 c 0 0 -0.921 1.877 -0.921 1.877 c 0 0 1.318 -0.403 1.318 -0.403 c 0 0 1.126 0.879 1.126 0.879 c 0 0 -0.265 1.486 -0.265 1.486 c 0 0 0.788 0.496 0.788 0.496 c 0 0 1.019 -0.295 1.019 -0.295 c 0 0 0.938 0.805 0.938 0.805 c 0 0 -0.108 1.354 -0.108 1.354 c 0 0 -2.365 0.863 -2.365 0.863 c 0 0 -0.161 2.791 -0.161 2.791 c 0 0 -1.221 1.531 -1.221 1.531 c 0 0 -0.78 -0.115 -0.78 -0.115 c 0 0 0.213 0.771 0.213 0.771 c 0 0 -0.716 -0.51 -0.716 -0.51 c 0 0 -1.649 0.227 -1.649 0.227 c 0 0 -0.801 2.112 -0.801 2.112 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Mila\"},\"44\":{\"path\":\"M 270.211 41.3839 c 0 0 -2.993 -2.104 -2.993 -2.104 c 0 0 -4.677 -0.01 -4.677 -0.01 c 0 0 -2.729 -0.815 -2.729 -0.815 c 0 0 -2.959 0.969 -2.959 0.969 c 0 0 -3.893 -0.807 -3.893 -0.807 c 0 0 -0.288 1.111 -0.288 1.111 c 0 0 -1.47 1.098 -1.47 1.098 c 0 0 -1.42 -2.607 -1.42 -2.607 c 0 0 -2.229 1.641 -2.229 1.641 c 0 0 -0.129 1.172 -0.129 1.172 c 0 0 1.495 1.622 1.495 1.622 c 0 0 -1.196 1.17 -1.196 1.17 c 0 0 1.829 0.536 1.829 0.536 c 0 0 -1.33 0.886 -1.33 0.886 c 0 0 0.004 1.019 0.004 1.019 c 0 0 0.681 0.703 0.681 0.703 c 0 0 0.8 -0.179 0.8 -0.179 c 0 0 -0.257 1.099 -0.257 1.099 c 0 0 0.683 1.606 0.683 1.606 c 0 0 1.268 0.909 1.268 0.909 c 0 0 -0.254 1.759 -0.254 1.759 c 0 0 2.133 0.25 2.133 0.25 c 0 0 0.4 1.149 0.4 1.149 c 0 0 0.774 -0.02 0.774 -0.02 c 0 0 2.635 -2.928 2.635 -2.928 c 0 0 -0.007 1.003 -0.007 1.003 c 0 0 2.686 -0.708 2.686 -0.708 c 0 0 0.44 0.937 0.44 0.937 c 0 0 1.229 0.056 1.229 0.056 c 0 0 0.841 1.108 0.841 1.108 c 0 0 1.563 0.131 1.563 0.131 c 0 0 1.051 -1.104 1.051 -1.104 c 0 0 -0.338 -0.876 -0.338 -0.876 c 0 0 1.985 0.074 1.985 0.074 c 0 0 0.315 -2.776 0.315 -2.776 c 0 0 0.861 0.234 0.861 0.234 c 0 0 1.841 -1.11 1.841 -1.11 c 0 0 0.063 -1.843 0.063 -1.843 c 0 0 -1.346 -0.305 -1.346 -0.305 c 0 0 -0.084 -1.369 -0.084 -1.369 c 0 0 -0.708 -0.199 -0.708 -0.199 c 0 0 0.625 -1.91 0.625 -1.91 c 0 0 1.347 0.043 1.347 0.043 c 0 0 0.758 -0.615 0.758 -0.615 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Aïn Defla\"},\"45\":{\"path\":\"M 190.745 93.6368 c 0 0 1.08 1.632 1.08 1.632 c 0 0 2.133 -1.567 2.133 -1.567 c 0 0 0.589 1.018 0.589 1.018 c 0 0 0.342 -0.416 0.342 -0.416 c 0 0 2.966 0.896 2.966 0.896 c 0 0 4.055 -2.511 4.055 -2.511 c 0 0 1.843 1.041 1.843 1.041 c 0 0 3.133 9.769 3.133 9.769 c 0 0 0.314 -1.128 0.314 -1.128 c 0 0 0.854 0.04 0.854 0.04 c 0 0 2.091 -2.885 2.091 -2.885 c 0 0 1.632 -0.712 1.632 -0.712 c 0 0 1.374 0.198 1.374 0.198 c 0 0 0.176 2.472 0.176 2.472 c 0 0 1.795 -0.807 1.795 -0.807 c 0 0 1.055 0.748 1.055 0.748 c 0 0 -0.204 2.644 -0.204 2.644 c 0 0 0.751 0.279 0.751 0.279 c 0 0 0.729 1.792 0.729 1.792 c 0 0 0.76 0.113 0.76 0.113 c 0 0 -2.123 1.127 -2.123 1.127 c 0 0 0.829 2.979 0.829 2.979 c 0 0 -2.931 13.106 -2.931 13.106 c 0 0 0.843 2.448 0.843 2.448 c 0 0 -0.887 0.991 -0.887 0.991 c 0 0 0.673 0.434 0.673 0.434 c 0 0 -0.593 1.588 -0.593 1.588 c 0 0 -1.563 0.854 -1.563 0.854 c 0 0 -0.278 1.842 -0.278 1.842 c 0 0 0.827 0.472 0.827 0.472 c 0 0 -0.27 1.131 -0.27 1.131 c 0 0 0.979 1.097 0.979 1.097 c 0 0 -0.398 1.535 -0.398 1.535 c 0 0 0.432 2.39 0.432 2.39 c 0 0 -2.988 5.758 -2.988 5.758 c 0 0 -1.629 2.4 -1.629 2.4 c 0 0 -2.417 -0.518 -2.417 -0.518 c 0 0 -1.803 1.33 -1.803 1.33 c 0 0 -6.79 -1.902 -6.79 -1.902 c 0 0 -5.834 3.103 -5.834 3.103 c 0 0 -0.298 -1.563 -0.298 -1.563 c 0 0 -1.384 -0.042 -1.384 -0.042 c 0 0 0.542 -2.863 0.542 -2.863 c 0 0 -1.428 -0.123 -1.428 -0.123 c 0 0 -0.163 -2.392 -0.163 -2.392 c 0 0 2.868 -2.595 2.868 -2.595 c 0 0 -5.768 -4.648 -5.768 -4.648 c 0 0 -2.38 -1.182 -2.38 -1.182 c 0 0 -3.35 -5.675 -3.35 -5.675 c 0 0 1.262 -0.418 1.262 -0.418 c 0 0 0.377 -2.404 0.377 -2.404 c 0 0 -2.205 -2.094 -2.205 -2.094 c 0 0 -1.938 -3.413 -1.938 -3.413 c 0 0 0.196 -2.568 0.196 -2.568 c 0 0 1.717 -3.813 1.717 -3.813 c 0 0 -0.095 -1.926 -0.095 -1.926 c 0 0 -1.187 -2.013 -1.187 -2.013 c 0 0 -1.795 -0.51 -1.795 -0.51 c 0 0 0.209 -0.893 0.209 -0.893 c 0 0 1.274 -0.928 1.274 -0.928 c 0 0 -0.546 -2.521 -0.546 -2.521 c 0 0 1.185 -5.71 1.185 -5.71 c 0 0 3.61 -2.62 3.61 -2.62 c 0 0 4.992 0.022 4.992 0.022 c 0 0 1.227 -1.408 1.227 -1.408 c 0 0 1.531 -0.481 1.531 -0.481 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Naâma\"},\"46\":{\"path\":\"M 193.764 72.7758 c 0 0 -0.686 0.069 -0.686 0.069 c 0 0 -0.264 -0.909 -0.264 -0.909 c 0 0 -3.488 -1.748 -3.488 -1.748 c 0 0 -0.331 0.33 -0.331 0.33 c 0 0 -0.372 -0.771 -0.372 -0.771 c 0 0 -1.081 0.455 -1.081 0.455 c 0 0 -2.338 -0.793 -2.338 -0.793 c 0 0 -0.918 1.336 -0.918 1.336 c 0 0 -1.082 0.265 -1.082 0.265 c 0 0 -1.053 -0.668 -1.053 -0.668 c 0 0 0.202 -0.954 0.202 -0.954 c 0 0 -0.848 -0.622 -0.848 -0.622 c 0 0 2.669 -1.768 2.669 -1.768 c 0 0 1.627 0.143 1.627 0.143 c 0 0 2.119 -1.243 2.119 -1.243 c 0 0 2.023 -5.607 2.023 -5.607 c 0 0 0.896 0.035 0.896 0.035 c 0 0 2.06 -1.622 2.06 -1.622 c 0 0 1.342 1.43 1.342 1.43 c 0 0 -0.223 0.718 -0.223 0.718 c 0 0 1.008 0.007 1.008 0.007 c 0 0 -0.383 1.02 -0.383 1.02 c 0 0 -0.893 0.251 -0.893 0.251 c 0 0 0.174 1.591 0.174 1.591 c 0 0 0.012 -0.62 0.012 -0.62 c 0 0 0.895 -0.046 0.895 -0.046 c 0 0 -0.201 -0.597 -0.201 -0.597 c 0 0 0.82 0.657 0.82 0.657 c 0 0 1.569 0.021 1.569 0.021 c 0 0 5.065 -1.624 5.065 -1.624 c 0 0 0.775 2.923 0.775 2.923 c 0 0 -0.771 0.563 -0.771 0.563 c 0 0 -0.027 1.102 -0.027 1.102 c 0 0 -2.838 0.497 -2.838 0.497 c 0 0 -0.066 0.729 -0.066 0.729 c 0 0 -0.97 0.456 -0.97 0.456 c 0 0 -0.813 -0.548 -0.813 -0.548 c 0 0 -0.781 1.395 -0.781 1.395 c 0 0 -0.672 -0.18 -0.672 -0.18 c 0 0 0.286 1.946 0.286 1.946 c 0 0 -1.38 0.461 -1.38 0.461 c 0 0 -0.248 1.451 -0.248 1.451 c 0 0 -0.815 0.469 -0.815 0.469 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Aïn Témouchent\"},\"47\":{\"path\":\"M 280.112 227.213 c 0 0 8.227 -3.631 8.227 -3.631 c 0 0 6.762 -14.091 6.762 -14.091 c 0 0 1.58 -1.093 1.58 -1.093 c 0 0 10.495 -36.704 10.495 -36.704 c 0 0 3.17 -8.157 3.17 -8.157 c 0 0 0.768 -17.01 0.768 -17.01 c 0 0 6.761 -7.312 6.761 -7.312 c 0 0 5.039 -9.304 5.039 -9.304 c 0 0 -11.871 -3.224 -11.871 -3.224 c 0 0 -13.08 -0.901 -13.08 -0.901 c 0 0 -0.77 0.422 -0.77 0.422 c 0 0 -2.684 -1.107 -2.684 -1.107 c 0 0 -0.903 0.387 -0.903 0.387 c 0 0 -0.305 -0.512 -0.305 -0.512 c 0 0 -0.417 0.754 -0.417 0.754 c 0 0 -0.439 -0.318 -0.439 -0.318 c 0 0 -0.945 0.734 -0.945 0.734 c 0 0 -7.853 0.362 -7.853 0.362 c 0 0 3.66 2.229 3.66 2.229 c 0 0 0.331 2.904 0.331 2.904 c 0 0 -8.55 -2.039 -8.55 -2.039 c 0 0 -5.37 1.604 -5.37 1.604 c 0 0 -10.825 0.946 -10.825 0.946 c 0 0 0.565 6.182 0.565 6.182 c 0 0 1.917 7.688 1.917 7.688 c 0 0 -2.573 1.672 -2.573 1.672 c 0 0 0.721 8.612 0.721 8.612 c 0 0 -4.648 5.148 -4.648 5.148 c 0 0 -0.682 28.618 -0.682 28.618 c 0 0 -2.644 13.284 -2.644 13.284 c 0 0 4.271 23.744 4.271 23.744 c 0 0 -1.117 4.883 -1.117 4.883 c 0 0 10.266 -3.805 10.266 -3.805 c 0 0 11.143 -0.965 11.143 -0.965 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Ghardaïa\"},\"48\":{\"path\":\"M 232.66 64.2719 c 0 0 -2.048 -0.317 -2.048 -0.317 c 0 0 -0.295 -0.662 -0.295 -0.662 c 0 0 -1.721 0.085 -1.721 0.085 c 0 0 -0.918 -0.917 -0.918 -0.917 c 0 0 -1.891 0.041 -1.891 0.041 c 0 0 -1.282 -1.803 -1.282 -1.803 c 0 0 -0.858 0.611 -0.858 0.611 c 0 0 -0.125 -0.523 -0.125 -0.523 c 0 0 -1.717 0.492 -1.717 0.492 c 0 0 -1.217 -3.61 -1.217 -3.61 c 0 0 -0.578 -0.193 -0.578 -0.193 c 0 0 1.744 -2.074 1.744 -2.074 c 0 0 0.867 -0.538 0.867 -0.538 c 0 0 0.877 0.373 0.877 0.373 c 0 0 1.332 -1.438 1.332 -1.438 c 0 0 -0.229 -0.909 -0.229 -0.909 c 0 0 0.59 -0.991 0.59 -0.991 c 0 0 -0.674 0.036 -0.674 0.036 c 0 0 -0.313 -0.769 -0.313 -0.769 c 0 0 0.846 -1.018 0.846 -1.018 c 0 0 1.226 0.572 1.226 0.572 c 0 0 0.555 -0.605 0.555 -0.605 c 0 0 2.126 -0.093 2.126 -0.093 c 0 0 -0.359 -0.87 -0.359 -0.87 c 0 0 0.634 -0.699 0.634 -0.699 c 0 0 -1.289 -1.35 -1.289 -1.35 c 0 0 1.979 -2.472 1.979 -2.472 c 0 0 2.056 0.32 2.056 0.32 c 0 0 2.173 -0.8 2.173 -0.8 c 0 0 0.468 1.894 0.468 1.894 c 0 0 0.536 0.021 0.536 0.021 c 0 0 -0.826 1.687 -0.826 1.687 c 0 0 0.509 -0.155 0.509 -0.155 c 0 0 0.519 1.997 0.519 1.997 c 0 0 1.775 -0.663 1.775 -0.663 c 0 0 -0.347 0.244 -0.347 0.244 c 0 0 0.593 0.041 0.593 0.041 c 0 0 0.541 1.179 0.541 1.179 c 0 0 1.563 0.984 1.563 0.984 c 0 0 2.838 -0.813 2.838 -0.813 c 0 0 2.173 3.286 2.173 3.286 c 0 0 0.771 0.672 0.771 0.672 c 0 0 -1.122 1.335 -1.122 1.335 c 0 0 -0.706 -0.142 -0.706 -0.142 c 0 0 -0.332 -0.895 -0.332 -0.895 c 0 0 -0.993 0.542 -0.993 0.542 c 0 0 0.206 1.651 0.206 1.651 c 0 0 -0.649 1.074 -0.649 1.074 c 0 0 -1.449 0.571 -1.449 0.571 c 0 0 -0.567 0.986 -0.567 0.986 c 0 0 -2.058 -0.207 -2.058 -0.207 c 0 0 -0.165 0.913 -0.165 0.913 c 0 0 -0.811 -0.11 -0.811 -0.11 c 0 0 -0.112 0.868 -0.112 0.868 c 0 0 -1.215 0.097 -1.215 0.097 c 0 0 -1.728 2.879 -1.728 2.879 c 0 0 -0.903 0.185 -0.903 0.185 c 0 0 0 0 0 0 c 0 0 0 0 0 0\",\"name\":\"Relizane\"}}, \"height\": 500, \"width\": 508});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.argentina.js",
    "content": "jQuery.fn.vectorMap('addMap', 'argentina_en', {\"width\": 900.0, \"height\": 1770.5044059903964, \"paths\":{\"sc\":{\"path\": \"M26.21,1405.14l2.02,-1.84l8.5,-1.79l7.49,-6.75l1.82,-3.81l-0.1,-8.52l-1.36,-5.95l1.56,-3.04l6.37,-2.92l2.75,-3.07l2.97,0.11l0.73,-1.18l-1.33,-3.1l0.72,-4.2l-1.58,-8.36l-2.19,-0.94l-1.42,-2.77l-4.01,-2.05l-1.36,-2.85l1.89,-3.41l1.92,-5.9l5.13,-8.5l1.1,-6.19l-2.15,-1.51l0.27,-0.87l2.87,-1.74l3.48,0.31l2.11,-0.88l6.11,-7.06l0.46,-1.26l-0.47,-3.5l5.17,2.1l1.83,-0.89l0.94,-1.7l0.03,-1.96l-1.48,-2.86l-4.88,-3.2l4.02,-3.32l-2.49,-3.12l1.53,-5.15l-0.64,-2.1l4.94,-1.15l2.68,-2.89l4.13,-2.84l0.46,-2.12l-0.69,-4.13l0.67,-2.8l-3.25,-8.35l-0.56,-8.49l-6.72,-5.18l6.21,-1.47l5.36,-6.27l182.64,0.03l-1.52,4.87l-0.07,3.84l2.19,9.04l2.61,6.69l7.49,9.84l3.15,1.59l4.03,3.51l3.12,1.31l3.28,4.82l2.42,1.02l9.68,10.33l4.59,2.35l2.58,0.47l2.17,-0.69l3.69,-0.04l2.86,1.15l3.13,-0.03l1.63,1.08l11.47,0.18l4.48,-0.96l4.54,2.73l3.53,3.26l0.88,1.73l0.57,4.16l1.36,2.72l-1.31,11.34l-5.43,12.45l-6.15,0.11l-4.53,3.52l-3.79,0.4l-3.78,2.01l-3.49,-0.14l-1.24,0.7l2.68,1.3l2.01,-0.15l3.58,-1.73l3.51,-0.22l6.69,-2.85l3.05,0.54l1.11,1.8l1.0,3.86l3.27,1.54l-0.5,1.42l-3.77,-1.36l-3.81,0.92l-0.08,1.11l1.6,2.6l-0.31,2.19l2.02,1.99l-2.39,-0.53l-5.91,1.19l-2.42,4.07l-7.9,5.01l-1.26,2.52l0.35,1.72l-2.99,-0.32l-1.35,0.48l-1.54,3.01l-9.03,2.6l-3.82,4.23l-4.19,3.43l-1.8,0.12l-8.8,3.98l-1.72,1.37l-4.74,6.65l-0.83,2.25l-6.68,3.63l-9.85,10.46l-1.64,3.53l0.97,3.43l-5.16,5.78l1.09,2.04l-1.92,-0.39l-1.14,0.46l-2.57,4.42l0.36,0.69l2.0,0.42l3.87,-1.13l3.27,-7.22l0.64,0.53l-4.83,18.44l-2.16,15.41l-1.44,3.3l-8.65,7.34l-9.07,4.38l-6.09,0.41l-1.5,-1.94l-2.57,-1.44l-0.76,-2.18l-2.7,-2.72l-1.29,-3.39l-3.35,-4.58l-1.76,-4.74l-2.12,-1.5l-2.3,-0.51l-0.38,1.02l3.32,2.21l0.63,2.9l2.41,4.81l0.09,1.66l-4.19,1.9l-2.22,-0.61l-6.11,0.47l-4.32,1.21l-2.08,1.26l0.17,1.14l1.36,0.14l6.82,-2.0l11.1,-0.13l1.98,1.82l1.09,3.19l6.44,4.1l-2.65,2.8l-8.91,2.37l-10.15,4.63l-4.72,4.87l-1.39,3.13l-3.27,3.78l-1.11,2.41l-2.97,11.33l0.58,6.16l-0.56,2.29l-4.82,5.0l-5.85,4.45l-1.09,2.37l0.87,0.72l5.26,-4.93l4.09,-1.96l0.3,0.33l1.43,4.52l1.04,7.37l1.61,3.34l1.12,5.23l4.46,10.7l0.11,2.99l-0.52,0.41l-2.99,-0.44l-3.16,2.46l-2.07,-0.29l-5.12,-2.39l-4.46,-0.18l-5.69,1.45l-5.61,3.36l0.66,0.5l9.64,-1.89l3.2,0.21l6.51,2.35l-2.03,1.93l0.26,1.0l1.24,0.1l6.04,-3.58l2.72,-0.72l5.4,8.29l4.29,9.36l5.33,8.15l6.35,7.04l5.93,8.36l0.01,1.68l-1.59,1.82l0.03,-3.39l-0.68,-1.16l-7.63,-2.22l-8.97,-1.23l-8.38,-3.86l-9.3,-2.5l-12.38,-0.35l-21.15,-7.55l-88.67,-1.05l-1.66,-0.91l0.72,-4.25l-1.66,-3.41l-7.39,-6.46l-6.99,-2.77l-1.36,-5.5l-1.17,-1.13l-3.39,-0.44l-0.57,-0.84l4.27,-4.33l0.05,-2.34l1.27,-2.96l0.13,-4.62l2.79,-4.06l-0.09,-1.38l-4.24,-2.88l-2.19,-3.11l0.22,-1.56l2.02,-2.65l2.61,-1.07l1.34,-4.32l0.11,-7.66l-3.78,-5.52l1.89,-4.34l0.01,-1.48l-3.95,-1.93l-5.79,-1.15l-2.28,0.96l-2.99,2.94l-1.6,0.05l-4.47,-3.04l-6.84,3.05l-6.69,5.4l-3.48,0.67l-1.38,-0.98l-0.64,-6.28l-2.94,-4.05l-0.73,-12.23l-1.29,-4.03l-2.15,-3.46l-8.22,-5.99l-0.39,-1.26l2.81,-6.23l-1.13,-2.13l-3.04,-2.48l1.29,-1.85l0.31,-2.63l2.29,-2.06l1.0,-1.85l-0.16,-1.84l-3.58,-4.63l1.22,-2.65l-0.14,-1.5l-2.97,-3.93l2.01,-2.62l-0.36,-2.77l3.74,-3.15l0.1,-4.35l13.96,-0.24l0.86,-1.5l1.63,-0.5l-0.0,-1.22l-3.03,-0.61l-0.69,-1.9l3.4,-4.43l1.29,-4.42l2.68,-3.42Z\", \"name\": \"Santa Cruz\"}, \"co\": {\"path\": \"M384.61,644.72l-0.01,-52.16l-2.02,-38.11l1.69,-3.13l1.96,-0.55l0.78,-0.9l-0.45,-2.66l1.6,-3.27l-0.31,-2.34l1.84,-3.39l1.32,-6.75l1.28,-1.56l1.51,-4.8l0.41,-3.69l-2.18,-6.04l0.13,-6.06l-0.38,-0.83l-1.42,-0.56l-5.69,1.46l-5.09,0.42l-0.15,-2.92l-1.41,-2.71l-0.61,-4.15l-3.1,-3.39l-15.06,-8.47l-5.04,-0.44l-0.34,-38.56l10.84,-33.5l1.88,-3.36l3.63,-9.94l9.35,-2.54l2.43,-1.25l8.96,-9.24l0.66,-2.15l-1.36,-11.32l0.35,-1.13l29.26,-7.42l10.6,2.24l-0.19,2.23l1.16,1.29l3.35,1.74l1.04,1.33l3.61,0.86l2.12,1.31l3.78,0.21l5.31,-0.8l3.84,1.05l2.43,-0.28l0.11,2.75l2.77,0.74l0.13,1.58l0.82,0.73l49.42,0.27l1.76,1.21l6.89,16.95l-2.09,12.66l0.43,2.33l12.05,13.48l-11.88,43.13l-0.69,1.48l-4.5,4.13l0.83,2.73l0.09,6.9l1.41,2.61l-1.26,3.44l-0.29,5.44l3.79,4.01l2.65,1.53l2.85,7.07l4.5,3.76l0.84,4.61l1.28,1.4l-1.24,3.78l2.91,1.11l2.29,4.29l1.97,2.25l-1.07,3.93l-0.28,5.36l-2.74,3.05l-2.66,0.53l-1.5,1.76l-42.0,63.76l-21.67,-0.08l-1.97,1.92l-0.59,29.68l-75.68,-0.02Z\", \"name\": \"C\\u00f3rdoba\"}, \"ju\": {\"path\": \"M286.9,91.86l10.63,-34.51l-7.97,-8.57l3.3,-4.78l4.02,-3.49l-0.15,-5.14l2.04,-0.12l2.07,-2.05l6.89,-2.62l-0.1,-2.21l2.31,-7.33l1.28,-0.93l2.9,0.47l0.65,-0.94l11.11,-3.05l2.08,-2.21l1.3,-0.31l1.06,-5.96l2.34,-7.48l5.41,2.03l1.21,1.26l1.01,2.76l5.07,1.21l5.75,6.61l1.56,1.05l1.63,0.45l7.36,-1.29l5.56,0.7l11.42,-0.13l-1.97,5.13l-0.19,4.55l-4.26,8.57l-0.54,4.23l0.46,0.92l1.56,0.08l1.55,1.36l-0.86,2.03l0.01,2.5l0.79,5.35l1.73,4.93l2.52,2.19l5.71,0.36l1.45,1.39l0.36,1.91l-1.52,8.82l0.94,1.27l3.18,1.41l2.78,5.62l0.94,3.34l3.97,0.46l2.28,-1.72l3.45,-0.57l1.18,1.08l3.45,1.27l4.06,4.54l1.59,0.98l1.51,-1.03l0.86,-2.77l1.22,-1.51l7.22,0.15l1.2,31.33l-2.3,5.2l-3.79,4.78l-0.98,0.64l-4.2,0.56l-1.51,1.82l-2.51,0.7l-3.25,3.05l-1.56,3.14l-9.52,-7.51l-1.81,2.14l-2.02,4.64l-0.89,0.02l-5.6,-2.35l-3.75,-2.97l-0.93,-1.49l-5.26,2.21l-6.53,-1.88l-2.39,-1.92l-2.39,0.56l-2.24,-1.27l-7.34,-10.7l-0.44,-4.82l-6.64,-4.73l-2.54,0.63l-1.58,-2.18l0.34,-1.76l-1.47,-2.47l0.21,-3.56l1.56,-2.49l-0.55,-1.57l0.52,-7.01l-2.09,-2.37l-6.56,-3.84l-1.95,-0.1l-1.97,-1.29l-4.0,-1.11l-1.19,0.17l-1.04,1.28l-1.35,6.31l3.11,9.81l-0.63,14.89l-1.52,4.49l-1.27,0.55l-2.38,3.13l-1.27,0.65l-4.15,-0.2l-3.05,-1.51l-4.17,-4.76l-4.73,-2.3l-3.28,-4.52l-1.81,-0.54l-0.54,-1.41l-3.68,-3.82l-3.06,-0.93l-4.43,-3.59Z\", \"name\": \"Jujuy\"}, \"tf\": {\"path\": \"M408.94,1757.54l-2.09,0.84l-1.51,2.07l-2.71,0.1l0.73,-2.08l-3.85,-2.08l2.91,-2.85l3.2,1.62l1.24,-0.1l3.03,-1.04l0.99,-0.97l-0.48,-0.88l1.85,0.46l2.22,-0.85l0.49,2.21l1.55,0.19l0.43,-4.59l1.42,0.85l4.37,0.04l1.91,1.52l1.02,-0.29l0.22,-1.64l1.44,0.86l1.27,-0.83l1.53,2.12l6.83,-2.17l2.03,1.08l1.51,-0.83l-1.89,2.73l-4.22,2.03l1.0,-2.01l-0.34,-1.26l-0.95,-0.36l-2.25,1.59l-2.7,-0.04l-1.31,1.53l-5.06,0.99l-0.81,0.9l-0.45,-0.71l0.74,-2.76l-2.73,-0.28l-6.68,4.19l-1.03,0.12l-0.4,-1.28l-1.46,0.2l-1.08,0.92l0.09,0.76ZM409.66,1751.56l-1.38,-1.15l-0.1,-0.22l0.33,-0.05l1.14,1.42ZM224.01,1753.21l0.63,-130.78l7.96,11.21l5.25,4.7l2.33,5.44l-1.67,-1.61l-3.03,0.66l-1.16,0.72l-2.14,3.24l-4.29,3.39l-1.56,2.53l0.03,2.58l1.02,2.45l1.53,1.82l4.69,2.33l2.69,0.36l8.41,-0.6l2.91,5.31l2.09,8.72l2.95,4.91l11.08,8.93l1.27,2.74l2.35,-0.03l2.49,1.8l1.57,5.66l12.37,9.02l12.25,6.68l2.96,2.62l9.83,3.96l1.83,1.26l6.67,7.51l5.42,3.25l2.77,0.72l4.04,3.03l15.5,6.27l2.46,0.42l2.19,1.32l6.71,0.95l10.87,-1.36l3.57,0.26l3.17,-1.13l6.73,0.88l-2.14,2.24l-1.41,3.46l0.46,1.26l-1.67,1.6l0.29,1.72l-2.66,1.96l-1.23,3.89l-0.87,0.57l-0.87,-0.03l-0.54,-1.97l-3.2,-0.66l-1.43,0.93l0.21,1.39l-0.59,0.69l-5.16,0.13l-1.16,1.91l-1.07,0.4l-1.26,-1.04l-0.47,-2.58l-1.64,-1.14l-10.03,-0.11l-0.5,0.58l0.38,1.12l-2.01,1.91l-5.63,1.97l-9.38,-0.28l-2.42,1.33l-1.55,3.01l-0.82,0.26l-8.04,-1.39l-7.58,-5.41l-6.56,-0.92l-3.9,-1.47l-40.71,-2.68l-6.43,-1.0l-2.14,-1.39l-4.31,-0.35l-3.91,-1.67l-1.17,0.95l-0.29,2.21l-8.37,0.6l-1.62,-0.67l-3.33,-3.47Z\", \"name\": \"Tierra del Fuego\"}, \"cr\": {\"path\": \"M650.75,342.39l1.84,-3.72l0.47,-5.16l2.52,-5.8l-0.16,-4.73l1.11,-6.37l-1.11,-3.87l0.38,-7.76l1.38,-1.37l4.24,-0.52l2.68,-2.14l0.94,-1.55l1.63,-6.3l-0.09,-3.63l1.16,-3.35l0.1,-2.89l-0.87,-3.68l-2.26,-4.45l-0.08,-2.9l10.16,-7.06l6.35,-2.48l12.15,-1.03l4.93,0.61l4.78,-0.47l14.03,3.37l8.89,4.09l7.92,-0.25l1.42,1.23l5.77,2.58l4.94,-0.19l4.54,-2.39l2.96,-0.74l6.02,4.25l1.96,-0.34l2.37,-1.74l2.93,-0.82l2.64,0.37l3.75,4.67l3.21,1.76l1.87,-0.48l3.29,-4.98l0.77,-4.3l3.13,-1.21l3.49,-2.97l1.99,0.26l3.43,1.21l-1.16,2.38l-0.12,3.09l6.53,12.9l1.84,9.86l2.33,2.68l2.08,4.63l4.71,3.48l-2.19,1.92l-2.82,0.93l-1.45,1.18l0.41,1.84l3.65,1.66l0.8,1.34l-1.16,3.07l-1.14,-1.78l-5.04,-1.0l-3.38,1.72l0.19,4.21l-4.93,1.52l-0.65,1.03l-0.02,3.57l-0.68,0.9l-2.82,1.93l-3.66,4.66l-4.68,1.88l-0.76,5.1l-0.84,1.45l-3.18,1.89l-1.55,5.6l-5.27,1.88l-3.26,2.59l-1.66,2.59l-0.09,2.27l-1.52,3.44l-3.66,2.42l-2.26,4.73l-6.59,6.15l-2.51,4.08l-3.97,3.9l-4.67,0.56l-3.49,1.93l-0.97,2.0l-0.66,6.24l-3.81,2.83l-4.27,5.14l-1.78,1.18l-3.77,0.64l-0.67,0.66l0.69,3.63l-1.15,3.06l-8.86,7.68l-1.96,3.48l0.2,2.35l3.1,6.2l-6.62,-6.14l-2.15,-3.88l-1.44,-5.06l-4.79,-4.06l-2.67,-4.39l-1.63,-1.21l-8.83,-2.31l-2.99,-0.04l-2.93,-1.47l-2.22,-0.04l-6.64,2.68l-4.41,0.98l-5.96,-1.09l-10.52,6.78l-6.56,-1.79l-3.11,0.68l-1.97,-0.52l-3.21,1.17l-3.55,0.18l-0.15,-2.23l1.27,-6.18l1.96,-5.14l-1.61,-6.06l-1.87,-3.87l2.01,-4.54l1.64,-6.73l0.11,-10.09l1.83,-7.27l2.59,-3.14l5.67,-2.23l6.68,-4.73l0.91,-1.66l0.15,-4.62Z\", \"name\": \"Corrientes\"}, \"tu\": {\"path\": \"M334.62,263.93l1.96,-3.49l3.32,-3.23l1.62,-3.24l5.73,-5.92l2.05,-4.19l0.79,-7.2l-0.44,-2.25l-7.98,-6.03l-4.12,-1.2l-1.28,-1.65l2.25,-6.73l0.29,-2.78l1.9,-2.74l15.0,2.04l1.26,-1.73l1.11,-8.99l3.62,1.27l6.24,0.92l5.54,-2.12l1.46,3.34l1.26,1.23l8.73,3.4l1.93,-0.07l3.4,1.63l2.29,-0.3l2.4,-1.76l3.44,-0.94l3.15,0.63l8.99,-0.21l0.04,4.05l-1.77,6.18l1.09,10.8l-3.46,-0.14l-1.96,5.69l-2.36,0.64l-2.5,8.96l-2.14,2.82l-1.35,5.25l-3.34,7.44l-2.59,1.58l-5.74,6.41l1.14,1.34l3.07,1.16l-1.38,1.66l-2.42,0.45l-0.68,1.64l0.06,1.46l2.97,6.69l-1.26,0.93l-1.72,4.64l-6.5,1.52l-4.6,-2.85l-1.2,-0.05l-6.91,4.9l-2.56,4.22l-4.04,-4.86l-1.83,-6.31l-2.78,-1.61l-2.91,0.77l-0.88,-0.84l-1.25,-4.07l-2.3,-2.03l-2.53,-10.59l0.05,-2.19l-9.41,-3.34Z\", \"name\": \"Tucum\\u00e1n\"}, \"ch\": {\"path\": \"M74.56,1091.13l0.62,-0.9l-0.18,-1.84l1.24,-1.23l0.32,-2.23l3.98,-1.11l2.1,0.36l0.84,-0.87l-0.19,-4.14l0.65,-2.07l-1.49,-1.99l-4.27,-1.61l-6.75,-0.73l-1.85,-0.75l-3.15,-3.21l-0.78,-2.14l1.6,-7.27l-1.4,-16.53l2.01,-2.21l2.39,-1.14l0.32,-0.96l-1.65,-2.82l0.63,-3.54l-3.22,-4.21l3.27,-4.57l0.83,-2.78l1.05,-0.83l0.93,0.02l1.21,2.08l1.58,0.72l2.1,-1.87l3.59,-0.68l2.52,-1.51l0.83,-1.56l-0.15,-2.93l-0.63,-1.04l298.66,0.03l2.94,0.52l3.67,6.14l5.37,3.75l2.17,0.14l3.4,1.69l4.05,0.4l2.04,1.32l3.37,-0.75l1.82,0.41l0.31,0.36l-1.69,1.16l-3.85,5.17l-0.44,2.0l0.79,1.01l4.97,0.05l1.96,0.83l5.91,-1.28l9.81,0.17l2.64,-3.41l-0.25,-1.86l0.53,-1.06l-1.18,-3.19l-3.36,-0.81l-4.96,0.2l-3.07,-0.7l6.84,-0.97l7.8,-2.61l6.45,-3.68l3.54,-0.11l1.08,0.62l2.8,6.54l2.2,1.99l0.91,1.75l0.81,15.67l-2.42,6.55l0.5,1.99l-2.01,2.41l-2.75,1.15l-9.16,1.88l-3.8,0.14l-2.25,1.37l-1.16,-0.18l-4.62,-4.87l-1.47,-0.78l1.4,-5.82l1.08,-0.81l-0.41,-1.04l-4.27,-2.82l-1.33,-2.38l-5.44,-2.02l-4.84,-0.03l-4.54,0.87l-4.45,2.05l-3.1,3.43l-5.19,1.03l-1.38,0.9l-3.41,5.28l1.26,2.75l11.74,4.72l4.14,2.94l2.63,0.89l3.96,-0.17l3.25,2.15l4.92,-1.34l0.42,1.02l-6.19,4.21l-14.3,4.29l-8.23,5.13l-4.16,3.47l-0.57,1.49l0.28,3.72l-5.18,4.47l-2.44,3.71l-2.98,2.27l-2.6,4.32l-0.13,4.06l1.12,2.62l-0.47,3.04l1.07,1.1l0.87,2.58l0.18,3.66l2.12,0.32l-0.41,2.14l0.89,0.69l-0.95,2.1l0.22,2.12l-3.22,1.49l-0.78,3.81l2.43,2.56l-0.33,2.26l1.82,2.74l-0.73,1.39l-3.45,2.12l-0.58,1.53l0.45,1.71l1.6,1.14l-2.89,-0.29l-1.45,2.81l0.23,0.69l-2.67,-0.52l-1.14,1.96l-6.36,2.94l-3.32,4.2l-1.76,5.69l0.35,2.44l7.95,3.41l-1.81,1.03l-1.08,1.65l0.33,1.26l-1.01,0.91l0.52,1.21l-3.46,0.82l-2.67,-1.45l-2.72,0.17l-0.73,-1.03l-1.31,-0.29l-0.99,0.4l-0.59,1.46l-2.05,0.12l-3.63,-2.74l-4.59,-0.78l-4.03,0.35l-3.18,3.55l-1.34,0.36l-1.39,-0.53l-8.96,3.54l-0.66,1.56l0.67,1.17l-1.61,-0.09l-1.22,0.83l3.02,2.57l-0.31,0.49l-5.58,-0.39l-8.22,0.56l-4.08,2.19l-3.75,3.42l-8.77,13.44l-1.79,0.72l-2.95,2.53l-1.46,3.3l0.13,3.5l-0.9,2.03l0.54,1.16l-2.0,1.2l-5.44,5.45l-1.33,1.94l0.14,1.49l-1.96,2.04l-181.83,-0.03l0.78,-1.13l-1.39,-3.86l-1.33,-1.44l-3.95,-1.85l0.49,-3.24l-2.25,-2.71l0.84,-2.5l-0.12,-2.54l1.82,-2.77l-0.87,-1.42l1.82,-1.55l8.36,-0.77l1.94,-1.28l0.71,-1.46l-1.42,-3.6l5.93,-2.76l2.96,-3.51l-0.22,-2.27l-2.22,-3.49l-5.56,-4.72l-3.02,-6.48l-1.66,-1.72l-5.29,-0.35l-2.48,-2.25l-1.23,-0.35l-4.89,1.08l-5.33,-2.33l-2.61,-0.06l-0.51,-6.06l1.19,-0.99l8.78,1.98l4.11,-2.02l5.99,1.41l5.99,-2.04l5.2,2.68l2.05,0.56l1.95,-0.35l1.84,-1.18l1.27,-1.86l0.14,-6.03l1.47,-2.41l3.08,-1.19l0.55,-2.7l-1.54,-1.99l-0.76,-2.63l-2.06,-1.6l-10.42,-1.47l-13.6,-0.45l-3.59,0.54l-1.39,-1.15l2.19,-1.71l0.42,-1.42l-1.24,-2.52l1.17,-3.68l-2.3,-4.99l4.1,-2.26l4.25,-5.85l0.52,-2.17l-2.67,-4.09l-1.97,-1.54l0.21,-3.25l-0.83,-0.37l-1.51,0.62l-0.41,-0.58l0.54,-1.35l4.33,-2.43l-0.2,-5.07l-4.21,-3.49l-3.12,-0.27l0.87,-1.66l-0.69,-2.47l-1.99,-0.86l-1.48,0.36Z\", \"name\": \"Chubut\"}, \"rn\": {\"path\": \"M78.41,959.83l13.36,1.08l8.71,3.07l2.94,0.32l3.94,-0.78l3.16,-1.65l4.95,-5.79l0.87,-2.43l-1.06,-2.56l-3.26,-2.38l-0.4,-1.73l2.13,-2.59l2.91,-1.34l1.85,-3.17l4.59,-1.37l2.39,-1.51l4.18,0.66l1.87,-0.41l6.26,-4.11l4.07,2.89l5.58,-1.0l4.01,0.08l1.45,-0.87l1.37,-3.65l2.14,-0.21l1.8,-1.25l0.64,-1.45l0.33,-5.19l2.98,-6.56l0.89,-7.73l1.93,-5.29l11.75,-6.47l6.17,0.18l2.54,-1.0l5.8,-4.95l5.28,-6.87l5.45,-2.91l3.12,-0.27l4.26,-2.0l2.9,-4.32l2.94,-1.84l1.63,-4.18l2.24,-2.27l3.47,-1.96l3.01,-4.41l2.6,-1.79l3.07,-1.11l2.99,-3.33l3.91,-2.4l2.64,1.79l1.97,-0.7l4.47,0.74l5.2,-1.33l0.05,-0.77l-1.07,-0.61l-0.69,-3.17l-9.05,-12.55l0.12,-56.85l17.24,2.15l1.78,0.85l2.49,2.5l1.55,3.17l-0.48,3.89l-5.57,4.66l-1.09,2.01l-0.08,3.65l1.47,2.99l1.81,0.81l1.67,-0.38l2.65,1.71l2.44,4.71l2.84,3.08l2.04,0.88l4.74,-0.75l3.36,0.43l3.38,-1.54l3.63,-0.67l1.55,0.37l1.7,5.82l3.1,3.88l19.15,7.86l2.24,2.38l0.87,4.0l0.88,1.23l7.83,1.75l8.07,-0.91l11.4,1.33l6.51,1.76l1.76,1.09l2.5,0.14l1.52,0.99l5.72,-2.21l6.06,1.81l2.78,1.47l11.52,-1.83l6.27,-0.0l1.29,0.78l5.71,-0.4l15.59,2.25l14.54,4.98l4.08,2.35l2.08,0.33l4.49,4.78l5.72,1.92l3.15,3.74l8.86,5.63l5.49,1.08l0.08,73.1l9.72,1.49l3.35,1.23l10.81,9.78l2.43,4.72l-2.39,2.18l-10.38,3.68l-9.75,-0.36l-3.07,0.7l-17.77,-0.11l-3.68,-1.25l-4.57,-3.97l-4.09,-0.88l0.55,-1.5l-0.83,-0.91l-3.47,0.89l-1.61,-0.38l-10.97,-5.26l-6.1,-1.5l-4.2,-1.95l-5.73,-0.99l1.62,-1.15l-0.58,-1.47l-1.52,-0.59l0.89,-1.24l-1.47,-1.12l-4.49,-0.97l-4.41,0.99l-0.63,1.26l2.47,0.07l0.11,1.05l-4.02,0.3l-4.41,3.35l-2.6,7.64l1.31,11.46l1.9,8.08l2.01,6.47l2.52,2.53l0.57,1.41l-2.06,7.46l1.76,5.13l-0.07,1.71l-3.35,8.46l0.41,2.61l-301.92,-0.42l-0.86,-6.74l-2.81,-4.36l-0.6,-3.91l-2.51,-3.31l-0.0,-1.18l2.66,-1.89l0.62,-1.31l-1.58,-3.09l0.38,-4.01l-1.08,-3.74l1.38,-6.26l-0.72,-3.54l0.79,-0.76l0.8,-4.81l-0.51,-3.06ZM397.03,948.81l-1.68,0.15l0.35,-0.17l1.33,0.02ZM394.11,949.01l-0.9,-0.06l-0.69,-0.27l1.45,-0.57l0.14,0.9Z\", \"name\": \"R\\u00edo Negro\"}, \"sf\": {\"path\": \"M528.89,526.62l1.18,-3.38l-1.37,-1.72l-0.89,-4.7l-4.61,-3.94l-2.85,-7.07l-2.8,-1.69l-3.39,-3.44l0.27,-4.89l1.28,-3.69l-1.43,-2.8l-0.07,-6.82l-0.9,-1.89l4.31,-4.03l0.88,-1.84l11.98,-43.63l-2.27,-3.41l-9.92,-10.53l-0.31,-1.66l19.06,-117.78l127.2,-0.05l-2.11,3.56l-2.47,1.1l-3.75,0.53l-1.52,2.57l-0.18,7.37l1.11,3.81l-1.1,6.32l0.18,4.62l-2.5,5.7l-0.46,5.09l-1.88,3.51l-0.14,4.89l-0.6,1.08l-6.39,4.51l-4.37,1.56l-2.64,1.68l-1.8,2.78l-1.61,5.85l-0.39,11.72l-1.6,6.56l-2.09,4.89l1.98,4.38l1.52,5.6l-1.92,4.82l-1.41,7.15l0.75,4.69l1.7,3.77l-0.45,6.21l-1.58,7.01l-15.3,23.47l-2.84,2.86l-1.36,4.04l-3.16,4.51l-4.03,3.06l-7.14,8.31l-2.48,1.09l-5.91,0.11l-2.23,0.97l-1.35,7.05l-2.08,3.49l0.12,2.86l2.47,4.64l-2.01,4.21l0.22,5.01l-1.32,4.95l0.09,5.02l-1.63,4.23l-0.06,2.21l2.75,5.01l0.33,4.53l1.07,3.93l2.47,4.86l1.6,1.83l1.57,4.21l2.69,3.2l4.7,2.68l5.01,4.89l-0.33,1.42l-2.55,1.53l-0.5,3.45l-2.66,2.26l-0.76,3.99l-1.76,3.63l-1.19,0.86l-2.66,0.3l-4.74,-3.2l-4.69,-0.19l-3.04,-1.16l-3.56,0.79l-1.43,2.31l0.34,1.58l-1.39,1.93l-33.55,35.18l-50.24,0.26l41.54,-63.06l1.04,-1.26l1.75,-0.14l1.77,-1.12l2.44,-2.96l1.43,-10.23l-4.54,-7.0l-2.52,-0.83Z\", \"name\": \"Santa Fe\"}, \"fo\": {\"path\": \"M509.95,33.31l0.23,1.24l0.98,0.31l1.04,1.46l-0.77,2.5l2.82,1.42l0.1,3.53l6.89,8.35l2.06,5.47l1.69,1.79l5.02,2.97l3.36,3.18l1.69,3.73l2.54,1.79l3.26,0.41l2.25,2.29l1.19,0.42l-0.08,1.09l1.33,1.81l9.16,3.49l1.19,2.03l2.71,1.64l1.54,0.02l2.87,2.12l-0.39,2.76l3.15,3.31l2.16,3.54l1.66,0.97l1.75,-0.44l4.4,2.7l4.93,0.03l1.73,1.0l3.0,0.07l1.96,2.29l1.98,0.21l2.35,1.41l4.72,0.52l1.96,1.35l8.89,0.42l4.69,-0.9l16.12,10.31l2.92,3.1l3.25,0.97l3.27,2.08l0.59,1.28l3.21,2.36l1.84,2.74l15.42,7.52l8.61,6.29l3.91,0.5l1.48,1.25l9.89,1.87l6.24,6.72l1.52,0.04l3.53,-2.44l4.44,3.37l3.79,1.53l1.69,-0.04l0.86,1.44l5.03,0.51l5.06,4.37l1.49,3.15l2.26,2.15l1.39,3.91l3.63,3.21l-0.72,5.31l-1.58,0.97l-0.29,1.19l-2.16,-0.02l-0.73,1.82l-2.56,0.55l-1.63,2.05l1.01,1.63l-3.11,2.08l0.68,2.77l-3.11,1.87l-0.06,1.31l0.99,0.54l-2.41,2.81l0.26,0.66l1.79,0.53l-0.39,0.51l-5.11,3.69l-4.51,1.91l-1.33,2.97l-1.75,-0.16l0.16,1.49l1.81,1.28l-2.79,1.48l0.04,3.27l-2.06,4.05l1.12,1.88l-1.32,3.56l0.29,1.11l1.84,1.89l-1.0,0.94l0.46,1.65l-2.35,-0.05l-0.62,5.21l-1.79,0.64l0.46,1.47l-2.76,0.35l-0.6,1.52l1.52,1.73l-1.43,-0.15l-0.62,-1.59l-2.04,0.12l-1.23,-0.61l-0.71,-1.63l-3.1,-2.67l-1.2,-2.38l-3.76,-2.29l-1.77,-2.18l-2.31,-0.49l-2.23,-2.62l-3.19,-1.64l-4.17,-4.8l-6.44,-2.72l-2.75,-2.62l-1.44,0.18l-1.45,1.32l-2.44,0.93l-3.35,-0.32l-1.27,-1.5l-1.85,-5.89l-2.31,-1.05l-8.59,-1.4l-0.47,-5.69l-1.35,-0.28l-3.05,-4.2l-3.79,-2.66l-0.63,-2.31l-3.37,-1.85l-1.26,-1.62l-2.17,-0.58l-0.98,-1.78l-4.94,-1.88l-1.26,0.4l-2.53,-5.42l0.52,-1.08l-0.65,-1.52l-2.46,-0.78l-0.57,-1.75l-1.71,-0.9l0.28,-0.89l-1.04,-2.02l-3.0,-2.19l-3.35,-5.25l-6.69,-2.26l-7.02,-4.29l-10.54,-8.45l-1.86,-0.1l-1.03,-1.22l0.39,-1.74l-2.24,-3.51l-0.08,-1.46l-1.29,-0.72l-1.75,-2.34l-2.59,-0.99l-8.15,-1.08l-4.65,-4.3l-1.08,-2.18l-3.77,-0.28l-2.1,-3.97l-3.36,-2.69l-5.66,-1.14l-3.64,-2.51l-2.1,-2.37l-4.42,-0.85l-9.3,-3.54l-0.1,-77.05l1.35,0.29Z\", \"name\": \"Formosa\"}, \"ne\": {\"path\": \"M78.32,958.6l0.7,-3.48l-2.72,-4.86l-1.92,-6.59l4.54,-5.37l0.29,-2.25l-0.63,-1.47l2.75,-6.78l3.04,0.3l2.68,-5.61l-0.78,-2.37l-1.35,-0.49l-1.32,0.81l-3.04,-3.43l0.67,-5.62l-0.49,-1.0l1.42,-0.44l1.99,0.87l2.3,0.1l0.74,-2.39l-0.48,-2.47l2.94,-5.52l-0.33,-1.24l-2.74,-3.01l-1.32,-5.53l0.91,-2.81l-1.01,-1.76l0.08,-1.91l0.82,-1.31l2.59,2.43l1.14,0.27l3.79,-0.26l1.15,-1.06l0.36,-2.38l-1.83,-1.63l3.37,-4.89l-0.64,-2.66l2.43,-2.02l0.49,-1.58l0.46,-4.43l-1.31,-11.08l1.28,-5.64l5.26,-3.04l2.07,-2.06l3.55,-0.59l4.63,-2.7l4.9,-0.07l1.63,-2.14l1.77,-0.99l-0.39,-2.61l2.25,-4.26l-0.8,-2.42l-4.58,-3.57l-0.95,-1.64l-2.04,-9.75l0.5,-3.47l-0.67,-3.11l0.71,-2.07l-3.63,-6.92l-0.34,-2.22l-1.75,-3.13l-2.3,-6.79l-0.02,-3.71l2.59,-2.33l-0.59,-2.24l1.07,-4.1l-3.52,-6.56l-0.45,-2.31l2.63,-3.94l0.29,-4.11l2.34,-1.87l-2.31,-2.39l-0.42,-2.47l-1.09,-1.16l1.21,-0.72l0.49,-1.23l-1.44,-1.72l0.33,-2.01l-1.6,-1.75l1.97,-4.11l0.25,-3.58l0.83,-0.24l1.89,0.96l1.25,-0.84l-0.47,-6.45l0.98,-3.76l2.88,0.14l1.9,-0.75l1.72,-3.61l3.7,1.68l4.33,-1.05l0.73,-1.04l-1.03,-3.61l0.87,-3.18l2.08,-0.98l2.64,-2.63l0.95,-2.54l3.39,1.14l1.49,-0.11l1.66,-1.31l2.1,1.65l0.48,1.14l-0.03,2.49l-1.06,2.05l1.29,4.22l1.41,0.96l1.97,-1.02l1.03,0.52l2.72,8.06l1.65,2.66l4.42,1.67l2.37,2.97l2.58,1.8l2.21,4.64l5.14,3.32l0.11,4.58l-1.26,2.29l5.32,6.28l3.7,2.15l4.32,1.14l2.58,0.15l7.89,-1.37l6.48,1.68l2.76,1.16l1.07,1.3l1.86,5.62l1.85,1.28l4.82,0.97l5.67,-0.48l3.47,2.8l7.57,1.03l1.89,3.2l1.78,1.53l7.69,0.99l-0.12,57.11l0.32,1.46l3.11,3.24l5.79,8.38l0.7,3.23l-3.31,0.78l-4.37,-0.75l-1.87,0.67l-2.05,-1.62l-1.12,-0.08l-4.19,2.61l-2.94,3.29l-2.86,1.0l-2.98,2.05l-3.04,4.44l-3.35,1.82l-2.37,2.42l-1.64,4.19l-2.89,1.8l-2.81,4.22l-3.79,1.77l-3.26,0.31l-5.68,3.03l-1.83,1.68l-3.66,5.36l-5.65,4.81l-1.89,0.76l-6.52,-0.1l-12.07,6.66l-1.2,1.66l-1.15,4.31l-0.89,7.71l-2.96,6.51l-0.77,6.23l-1.72,1.04l-2.01,0.17l-1.57,3.87l-0.81,0.45l-3.81,-0.1l-5.16,1.01l-3.01,-2.49l-1.41,-0.42l-2.01,0.68l-4.6,3.5l-1.52,0.34l-4.34,-0.64l-7.44,3.07l-1.42,1.38l-0.72,2.04l-2.74,1.16l-2.5,3.12l0.58,2.91l2.63,1.66l1.42,2.49l-0.63,1.76l-4.57,5.44l-2.95,1.55l-3.46,0.71l-2.67,-0.28l-8.78,-3.09l-13.72,-1.11Z\", \"name\": \"Neuqu\\u00e9n\"}, \"mi\": {\"path\": \"M796.21,265.24l2.63,0.06l1.78,3.21l5.16,2.07l3.39,-3.18l4.16,-2.56l1.14,-4.34l-1.36,-3.32l1.82,-0.75l0.85,-2.45l3.35,-0.22l0.99,-4.17l1.12,-1.49l5.78,-2.06l3.34,1.01l3.27,-0.17l1.0,-1.0l-0.24,-3.53l2.74,-2.63l3.97,-0.93l1.21,-1.62l1.36,-3.92l1.41,-0.72l2.87,0.53l1.45,-1.25l0.63,-2.57l-0.37,-3.26l4.09,-4.7l1.58,-5.91l-0.05,-3.38l1.2,-1.99l-1.12,-2.41l0.94,-4.16l-0.88,-3.87l1.8,-0.48l0.66,-1.01l-0.33,-3.27l1.22,-3.51l-1.39,-2.08l-1.1,-4.83l1.55,-0.02l1.08,-0.76l-0.76,-3.06l1.46,-0.06l0.71,1.74l2.58,0.66l0.77,2.58l0.94,0.62l0.89,-0.54l0.04,-1.98l1.37,-1.07l0.32,-1.7l1.85,0.16l2.05,-1.39l1.84,2.17l1.16,-1.03l2.14,0.17l0.45,-0.61l-0.62,-1.69l1.41,0.04l1.53,-1.39l-0.48,2.77l1.38,1.61l1.2,-0.13l0.21,-1.65l0.8,0.59l1.25,-0.38l1.45,0.97l0.99,3.28l2.97,-0.81l0.85,2.46l-0.26,1.99l1.93,2.66l0.34,8.26l3.12,3.26l1.41,4.66l2.97,4.39l0.2,1.7l-2.81,5.5l0.5,5.86l-1.11,1.44l0.42,1.51l-0.64,2.11l0.13,3.57l-1.58,1.97l1.21,1.57l-0.18,1.58l0.9,0.42l0.86,5.52l-2.45,5.58l-1.51,0.82l-0.2,2.68l-1.08,1.05l0.11,1.71l-1.9,-1.91l-0.94,0.64l-0.54,1.66l-1.52,-0.94l-1.0,0.36l-0.22,1.86l-1.76,-0.12l-3.8,4.57l-2.05,-0.12l-0.12,-1.05l-1.73,-0.77l-2.69,5.5l0.04,1.22l-1.22,0.37l-0.99,1.77l-2.65,-1.64l-0.55,2.58l-0.89,-1.71l-2.92,-0.15l-0.99,0.3l-0.37,0.87l0.73,1.49l-3.56,1.11l-1.02,-1.42l-1.43,-0.21l-2.11,3.41l-0.69,-1.0l-1.22,0.53l-0.53,1.84l-3.51,0.53l-0.47,-1.77l-1.31,0.09l-1.24,1.16l-0.74,3.06l-2.46,0.76l-0.53,5.25l-3.1,2.27l-3.29,-0.72l-1.3,0.64l0.47,1.47l1.73,1.73l-1.01,-0.51l-1.73,0.25l-1.1,1.66l-2.35,-1.2l-3.87,3.23l-2.46,-0.18l-0.94,0.89l-0.32,1.5l-1.95,0.87l-0.16,1.83l-2.42,2.88l-2.89,0.01l-2.3,3.23l-0.41,-1.15l-1.3,-0.32l-1.2,0.95l-4.42,-3.25l-1.96,-4.48l-2.47,-3.01l-0.57,-5.83l-1.02,-3.48l-6.49,-12.8l0.72,-3.95l1.28,-1.07Z\", \"name\": \"Misiones\"}, \"lp\": {\"path\": \"M460.29,645.96l-0.2,222.92l-4.84,-0.9l-8.75,-5.56l-3.24,-3.79l-5.66,-1.9l-4.71,-4.91l-2.21,-0.37l-4.0,-2.32l-14.75,-5.05l-15.88,-2.29l-5.44,0.4l-1.35,-0.76l-6.56,0.0l-11.32,1.81l-6.36,-2.81l-2.53,-0.45l-1.45,0.13l-4.11,2.07l-1.3,-0.92l-2.66,-0.18l-1.57,-1.04l-6.79,-1.83l-11.58,-1.34l-7.92,0.92l-7.36,-1.62l-1.3,-4.74l-2.64,-2.81l-18.96,-7.7l-2.88,-3.59l-2.09,-6.27l-2.4,-0.56l-3.87,0.71l-3.07,1.48l-3.43,-0.44l-4.47,0.76l-1.49,-0.67l-2.49,-2.71l-2.47,-4.76l-1.38,-1.39l-2.08,-0.84l-2.05,0.31l-1.19,-0.8l-0.71,-1.96l0.07,-3.09l0.87,-1.57l4.5,-3.24l1.82,-3.62l-0.04,-2.68l-1.79,-3.68l-2.72,-2.73l-2.19,-1.05l-17.55,-2.19l-0.33,-65.71l-1.64,-7.65l0.96,-5.72l143.0,-0.19l0.81,-0.72l0.05,-50.4l75.68,0.02Z\", \"name\": \"La Pampa\"}, \"me\": {\"path\": \"M143.35,702.96l2.14,-4.18l-1.46,-4.09l1.3,-2.85l-0.64,-0.81l-1.02,0.02l0.02,-1.14l2.84,-2.99l-0.22,-1.83l-2.68,-6.27l0.59,-7.88l-1.72,-2.44l-1.08,-3.64l1.91,-1.5l-0.76,-1.66l-1.77,-1.01l-3.58,-0.72l-0.6,-1.43l1.34,-2.12l7.22,-2.44l1.51,-10.93l3.5,-8.02l-1.63,-2.52l1.6,-0.73l1.08,-1.77l1.07,-5.54l2.64,-2.31l2.43,-4.63l2.17,-1.78l0.46,-6.22l2.58,-0.84l3.62,0.76l3.98,-2.48l-0.19,-2.1l-1.59,-3.38l0.77,-7.94l-0.66,-1.71l-1.73,-0.17l0.53,-3.73l-0.77,-4.84l2.42,-2.29l-0.02,-1.21l-1.54,-2.33l1.0,-3.66l-0.25,-1.45l1.61,-1.05l0.51,-3.8l2.02,-3.15l-1.26,-5.76l-1.23,-1.47l-3.33,-1.51l-1.83,0.23l-2.7,2.74l-1.74,-3.37l-2.5,-2.59l0.79,-3.8l-0.83,-2.64l0.63,-0.97l2.35,-1.03l1.99,-6.2l-4.1,-3.04l-2.95,-4.03l-1.12,-6.33l0.21,-1.17l1.4,-0.24l0.33,-0.68l-0.91,-1.41l-0.71,-3.94l-2.57,-1.68l-0.65,-1.23l-0.08,-4.02l6.51,-0.97l4.98,0.82l8.83,-2.02l5.68,-0.37l1.77,-1.6l0.12,-4.18l0.71,-1.17l4.36,-1.55l2.68,-1.72l7.15,0.01l1.92,-2.81l3.11,-2.03l1.93,0.93l3.94,4.74l2.44,0.54l2.53,-0.46l0.89,12.22l1.2,1.04l9.23,-0.1l10.38,-6.36l2.94,-2.85l6.38,-0.53l3.92,-2.35l4.84,-1.19l2.73,0.87l1.47,1.63l0.53,1.8l2.98,1.83l2.13,2.36l4.47,0.72l11.21,-1.92l3.76,2.12l1.43,6.61l1.84,1.72l0.85,2.69l1.98,8.45l1.98,2.59l0.91,2.55l-1.12,3.33l0.55,3.03l-0.94,1.5l1.31,3.59l0.34,12.15l1.84,6.86l-0.09,3.29l6.01,9.55l4.09,11.21l3.92,3.03l0.96,3.13l1.97,1.77l1.34,3.41l-0.52,5.63l-1.68,0.19l-1.16,2.24l0.87,6.91l-0.48,1.2l1.52,2.22l0.29,4.34l1.6,5.28l2.2,2.3l5.29,9.79l1.13,3.55l-0.33,3.69l2.17,6.41l-0.92,3.78l0.92,1.49l-0.61,1.8l0.61,3.99l-0.72,7.71l-1.55,3.86l-2.37,13.27l-0.78,8.25l-72.61,-0.03l-2.06,1.3l-0.67,5.91l1.65,7.73l0.33,65.48l-7.23,-0.9l-3.47,-4.63l-7.84,-1.16l-3.57,-2.83l-5.94,0.46l-4.31,-0.85l-1.37,-0.88l-0.74,-1.45l-1.1,-4.14l-1.37,-1.61l-3.12,-1.34l-6.89,-1.75l-7.99,1.38l-2.25,-0.14l-4.0,-1.04l-3.51,-2.04l-4.79,-5.47l1.19,-1.7l0.33,-2.22l-0.54,-3.39l-5.34,-3.56l-2.15,-4.58l-2.7,-1.92l-2.42,-3.02l-4.25,-1.51l-1.44,-2.34l-2.95,-8.42l-1.66,-0.92l-1.94,1.06l-0.68,-0.42l-1.1,-3.52l1.03,-1.8l0.03,-3.07l-0.71,-1.61l-2.41,-1.92Z\", \"name\": \"Mendoza\"}, \"sj\": {\"path\": \"M163.26,356.46l2.73,-1.94l0.52,-1.18l3.83,-1.07l1.15,-1.38l0.07,-7.82l3.18,-7.18l-0.93,-5.88l1.32,-2.85l2.05,-1.96l0.93,-7.87l4.51,1.65l3.13,-0.53l2.26,2.42l3.73,0.32l6.52,5.27l2.4,4.0l1.43,4.83l3.77,3.43l2.06,4.78l2.86,3.15l-0.36,1.18l-2.01,1.03l-1.7,2.66l-0.05,5.88l2.61,3.67l-1.14,0.78l-0.51,1.29l-0.05,4.83l-1.8,3.39l-0.0,4.82l2.48,1.46l3.74,-0.84l3.75,0.64l5.02,-1.46l4.18,2.09l4.94,-0.02l7.09,2.02l2.03,2.49l4.91,3.24l1.07,2.16l3.59,1.65l2.03,2.02l0.88,2.01l2.27,1.5l2.14,2.71l4.17,2.23l2.17,2.81l6.27,4.68l2.23,3.49l0.8,2.95l3.65,2.47l1.91,3.07l4.53,3.72l3.95,5.75l2.88,1.54l4.8,8.64l-1.62,5.56l0.26,1.78l2.33,2.06l-1.94,13.31l2.38,5.28l0.14,3.28l4.94,4.9l3.85,0.77l0.83,5.57l2.53,1.45l1.94,4.13l-10.59,0.55l-5.49,-1.82l-5.82,0.74l-4.96,-0.99l-1.35,0.66l-1.24,2.16l0.63,4.77l-0.97,3.77l0.16,8.86l-3.96,-1.93l-11.13,1.95l-3.93,-0.64l-1.8,-2.16l-2.74,-1.61l-0.43,-1.62l-1.81,-2.03l-1.77,-1.06l-1.83,-0.06l-5.17,1.26l-3.83,2.32l-6.48,0.55l-3.19,3.0l-10.07,6.19l-8.6,0.07l-1.26,-12.75l-0.81,-0.52l-4.62,0.09l-3.74,-4.59l-2.78,-1.26l-3.92,2.36l-1.57,2.59l-6.93,-0.08l-2.94,1.81l-4.49,1.62l-1.2,1.73l-0.11,4.21l-1.31,0.98l-5.18,0.23l-8.75,2.0l-4.96,-0.81l-7.28,1.14l-2.64,-1.34l-0.98,-4.91l0.43,-1.89l-2.37,-4.44l4.47,0.4l2.12,-4.54l-0.12,-1.27l-2.63,-2.94l-5.96,-1.07l-1.87,-2.19l-0.51,-4.43l-1.9,-2.44l-2.73,-5.57l0.5,-6.57l1.1,-3.44l-0.63,-2.83l0.97,-1.97l0.45,-4.42l2.42,-3.59l1.7,2.84l1.29,-0.06l1.57,-1.68l1.74,-3.78l3.47,-0.55l-0.12,-1.16l-2.61,-2.61l-0.51,-1.32l0.87,-6.63l1.94,-3.67l0.02,-2.64l1.82,-4.0l0.81,-3.72l2.86,-2.57l0.47,-1.27l-1.32,-3.43l0.59,-0.26l5.25,2.07l3.31,-1.2l2.59,-2.47l0.98,-4.99l1.83,-1.37l0.69,-2.04l-0.7,-2.18l-1.55,-1.5l-4.22,-0.88l2.31,-4.55l0.57,-8.59l-0.64,-4.46l-1.96,-2.49l0.2,-4.07l-3.35,-10.83l0.4,-3.62l2.65,-2.02l-0.52,-1.36Z\", \"name\": \"San Juan\"}, \"ca\": {\"path\": \"M201.92,285.51l0.45,-1.52l2.01,-1.49l-0.73,-2.72l2.86,-4.3l0.5,-4.37l3.83,-3.08l2.24,-4.98l0.53,-4.59l2.4,-3.57l3.74,-0.53l3.08,2.12l3.24,0.58l1.65,-2.92l1.55,-1.28l8.36,-1.51l0.52,-0.8l-0.03,-1.83l1.22,-3.57l-0.18,-1.71l-11.98,-16.82l-1.08,-4.27l0.85,-7.08l6.88,-5.83l0.68,-2.09l-4.07,-18.94l-2.73,-4.43l-0.32,-3.29l0.5,-1.01l-2.39,-3.76l0.1,-2.44l4.59,-12.71l30.88,5.83l56.1,-0.57l1.51,6.03l2.25,3.4l-1.13,5.92l-3.06,2.43l-7.33,0.31l-3.16,2.24l-1.02,3.01l0.69,4.49l8.3,11.47l3.95,7.93l5.75,6.08l1.55,0.29l1.37,-0.94l2.78,-6.13l1.71,-1.08l1.55,-2.34l2.52,-0.04l2.59,2.94l1.58,0.82l-1.93,2.8l-0.28,2.77l-2.23,5.73l0.19,2.34l1.68,1.74l4.65,1.52l4.47,3.82l2.18,1.07l0.52,0.98l-1.37,9.76l-6.91,7.81l-1.63,3.24l-3.35,3.25l-2.16,4.6l0.88,0.83l8.84,2.98l-0.39,1.39l2.61,10.92l2.41,2.27l1.2,3.99l1.71,1.51l2.84,-0.82l2.16,1.21l1.69,6.1l4.45,5.32l1.26,0.16l2.79,-4.55l6.49,-4.64l4.42,2.73l3.06,-0.2l3.89,16.98l0.31,7.18l-0.75,3.71l-4.04,4.86l-0.08,2.3l0.4,0.87l3.41,2.22l0.74,14.27l1.99,14.38l6.5,12.53l-2.5,0.91l-0.68,1.96l1.3,12.21l-9.03,9.6l-11.23,3.58l-7.3,-14.17l-7.24,-16.69l-1.03,-4.71l-0.12,-4.39l-1.75,-3.37l-15.02,-13.84l-10.78,-5.6l-0.62,-1.02l1.85,-2.93l-0.04,-1.73l-2.83,-1.78l-2.94,-3.38l-1.39,-6.39l-4.25,-4.89l-17.99,-6.73l-3.34,0.92l-2.45,2.74l-3.78,0.67l-23.33,-0.83l-3.05,0.74l-2.04,1.31l-0.68,-1.93l-3.12,-4.13l-1.04,-6.38l-1.82,-0.35l-5.58,1.75l-2.59,-2.34l-5.69,-0.95l-3.16,-3.22l-4.01,-0.79l0.65,-4.35l-0.84,-2.53l0.93,-4.12l-0.97,-1.64l-3.44,-0.31l-2.93,1.68l-3.69,-1.0l-8.67,2.0l-12.07,-0.93Z\", \"name\": \"Catamarca\"}, \"cc\": {\"path\": \"M530.99,121.33l2.23,0.21l2.82,2.17l2.65,4.58l3.61,0.08l0.95,2.06l5.0,4.57l10.55,1.96l2.62,2.71l0.29,1.73l1.89,2.79l-0.15,2.27l1.28,1.44l1.03,0.51l0.91,-0.35l10.59,8.49l7.04,4.29l4.08,1.79l2.38,0.3l3.3,5.17l2.89,2.06l0.81,1.48l-0.05,1.46l1.87,1.08l0.74,1.91l2.09,0.46l0.49,0.87l-0.52,1.32l2.87,5.97l1.04,0.43l0.84,-0.48l4.56,1.72l0.96,1.76l2.24,0.63l1.1,1.5l3.31,1.8l0.59,2.27l2.05,1.03l4.76,5.81l1.24,0.47l0.66,5.58l10.98,2.5l1.51,5.48l1.91,2.09l4.08,0.35l4.75,-2.42l2.47,2.51l5.15,1.94l5.25,5.43l3.21,1.66l2.31,2.68l2.25,0.44l1.76,2.18l3.69,2.23l1.01,2.17l3.12,2.7l0.95,1.87l1.68,0.82l1.8,-0.19l0.1,1.14l-0.73,0.9l-3.77,1.5l-0.5,1.01l0.62,1.34l-1.61,2.64l-0.88,-0.47l-1.08,0.83l-0.55,3.08l-2.16,0.4l-1.92,1.81l0.02,2.55l2.26,2.25l-0.09,2.65l-2.07,0.79l-10.66,7.46l0.06,3.85l2.31,4.59l0.79,3.37l-2.08,13.06l-127.42,0.05l-0.03,-89.06l-0.54,-19.42l-1.51,-4.21l-73.53,-0.39l47.3,-59.16l-0.11,-12.89l8.98,3.41l4.25,0.79l1.82,2.2l3.75,2.59l3.48,0.97Z\", \"name\": \"Chaco\"}, \"lr\": {\"path\": \"M178.8,316.25l5.86,-5.77l0.96,-3.41l3.1,0.73l4.95,-8.64l0.33,-1.71l5.12,-2.38l2.51,-8.37l12.43,0.96l8.75,-2.01l4.01,0.96l3.07,-1.75l2.55,0.67l-0.91,4.22l0.84,2.67l-0.78,3.63l0.4,1.43l1.33,0.78l3.06,0.31l3.27,3.27l5.64,0.92l2.78,2.41l6.92,-1.64l0.71,5.88l4.43,6.85l5.69,-2.06l23.39,0.82l4.14,-0.76l2.39,-2.68l2.8,-0.87l17.42,6.56l3.8,4.34l1.49,6.58l3.15,3.62l2.59,1.53l-1.98,3.81l0.91,2.0l10.94,5.75l14.78,13.59l1.56,2.94l0.1,4.3l1.1,4.98l7.27,16.77l7.42,14.4l-3.64,9.96l-1.9,3.43l-10.89,33.7l0.33,38.84l-6.01,0.66l-2.7,-1.09l-4.07,-0.37l-7.41,2.7l-6.9,0.41l-2.63,-0.94l-2.91,0.28l-1.94,-0.89l-2.43,0.62l-5.79,-1.84l-2.29,-4.91l-2.4,-1.24l-0.9,-5.71l-4.24,-1.13l-4.41,-4.26l-0.11,-3.17l-2.33,-5.1l1.97,-13.42l-2.5,-2.48l-0.12,-1.08l1.63,-5.73l-5.1,-9.32l-2.95,-1.61l-3.88,-5.68l-4.56,-3.75l-2.02,-3.18l-3.3,-2.06l-0.83,-2.92l-2.51,-3.9l-6.28,-4.68l-2.31,-2.92l-4.04,-2.13l-2.13,-2.7l-2.2,-1.43l-0.73,-1.84l-2.26,-2.26l-3.55,-1.62l-1.04,-2.13l-5.05,-3.36l-2.16,-2.58l-7.5,-2.17l-4.88,0.03l-4.39,-2.13l-5.63,1.52l-2.92,-0.68l-3.93,0.83l-1.32,-0.57l-0.07,-4.28l1.81,-3.41l0.03,-4.75l1.68,-2.33l-1.24,-2.66l-1.42,-1.4l0.07,-5.18l1.36,-2.08l2.14,-1.16l0.61,-1.59l-0.29,-1.32l-2.79,-2.86l-2.11,-4.85l-3.68,-3.35l-2.63,-7.54l-1.45,-1.55l-7.1,-5.6l-3.44,-0.17l-2.45,-2.51l-3.21,0.52l-4.05,-1.53Z\", \"name\": \"La Rioja\"}, \"se\": {\"path\": \"M380.4,328.49l-0.01,-1.74l1.14,-0.73l3.4,-5.24l0.33,-3.08l-0.32,-7.34l-3.98,-17.39l4.05,-0.78l2.03,-5.0l1.46,-0.62l-3.11,-8.78l0.39,-1.03l2.81,-0.75l1.33,-2.19l-1.3,-1.51l-2.7,-0.92l5.12,-5.65l2.84,-1.9l3.39,-7.56l1.33,-5.19l2.16,-2.86l2.33,-8.6l2.4,-0.75l1.71,-5.35l3.06,0.4l0.76,-0.66l-1.01,-11.39l1.75,-5.97l0.26,-6.38l2.04,-4.22l0.38,-3.36l10.23,-21.07l11.8,3.44l97.61,0.44l1.25,3.48l0.53,19.24l0.03,89.6l-16.68,103.35l-6.23,-15.33l-2.46,-1.73l-49.39,-0.26l-0.4,-1.99l-2.73,-0.72l0.17,-2.04l-0.6,-0.93l-2.9,0.13l-4.0,-1.07l-5.39,0.8l-3.4,-0.18l-1.93,-1.25l-3.46,-0.78l-0.97,-1.29l-3.36,-1.73l-0.63,-0.57l0.14,-2.31l-0.51,-0.68l-9.51,-2.47l-28.2,6.44l-6.56,-12.45l-1.96,-14.18l0.19,-4.05l-0.98,-10.46l-1.43,-1.67l-2.32,-1.15Z\", \"name\": \"Santiago del Estero\"}, \"sl\": {\"path\": \"M280.93,492.01l-0.24,-3.55l1.44,-1.44l4.82,0.96l6.25,-0.69l5.01,1.77l11.5,-0.59l6.1,1.9l2.54,-0.6l1.7,0.87l3.1,-0.26l2.66,0.94l7.25,-0.43l7.29,-2.68l3.62,0.34l2.95,1.12l10.57,-0.75l3.49,1.4l12.5,7.22l2.43,2.46l0.93,4.57l1.36,2.51l0.08,3.07l0.73,0.74l5.81,-0.32l6.04,-1.26l-0.08,6.16l2.15,5.87l-0.35,3.43l-1.44,4.61l-1.32,1.68l-1.3,6.7l-1.88,3.5l0.31,2.36l-1.63,3.37l0.52,2.42l-2.51,1.09l-2.0,3.84l2.02,38.23l-0.04,103.28l-68.2,-0.07l-0.18,-1.92l3.29,-19.31l1.57,-4.01l0.73,-7.79l-0.6,-3.98l0.6,-1.96l-0.86,-1.56l0.85,-3.8l-2.05,-5.83l0.21,-4.28l-1.2,-3.79l-5.44,-10.07l-2.12,-2.17l-1.48,-4.96l-0.3,-4.38l-1.41,-2.07l0.47,-1.12l-0.98,-6.52l0.72,-1.34l1.11,0.15l0.95,-1.05l0.55,-6.54l-1.48,-3.68l-1.9,-1.66l-1.09,-3.3l-3.87,-2.98l-4.01,-11.06l-5.91,-9.3l0.11,-3.14l-1.84,-6.87l-0.35,-12.19l-1.28,-3.45l0.89,-1.03l-0.5,-3.37l1.15,-3.46l-1.08,-3.07l-1.93,-2.44l-2.83,-11.18l-1.89,-1.87l-1.2,-4.35l-0.27,-11.91l0.94,-3.47l-0.33,-1.72Z\", \"name\": \"San Luis\"}, \"er\": {\"path\": \"M584.87,481.91l0.53,-1.96l7.05,-0.42l2.98,-1.31l2.88,-2.69l4.37,-5.72l4.12,-3.15l3.23,-4.51l1.41,-4.21l2.77,-2.75l7.23,-11.66l5.47,-7.25l2.75,-4.86l1.75,-8.07l0.34,-5.74l-1.99,-5.51l3.6,-0.2l3.09,-1.15l1.9,0.52l3.05,-0.67l6.76,1.83l10.61,-6.85l5.81,1.11l12.3,-3.72l3.48,1.54l3.11,0.07l8.56,2.25l1.56,1.36l2.27,3.91l4.69,3.96l1.3,4.81l2.3,4.14l8.03,7.21l0.48,5.46l-0.39,1.56l-3.19,0.44l-1.26,0.9l-0.37,1.27l2.19,3.29l0.31,1.98l-2.51,5.47l0.28,3.44l-2.7,3.58l-1.03,4.1l-3.19,2.18l-0.74,1.82l4.01,4.34l0.29,1.95l-3.07,9.61l-5.21,2.21l-1.79,2.74l2.03,2.95l0.54,3.39l-0.56,3.93l-1.28,2.96l4.03,6.3l-0.18,1.23l-2.8,3.83l-2.54,5.29l0.38,8.48l1.47,8.66l1.85,3.53l-0.97,3.93l0.56,3.37l-1.76,1.56l-1.36,0.28l-7.03,-0.98l-1.85,0.73l-0.76,1.06l-0.03,0.91l0.76,0.46l-0.89,5.34l0.9,3.11l-1.99,1.67l-2.19,3.75l-1.17,4.58l0.13,4.32l-0.92,5.27l0.45,3.38l3.58,5.72l0.66,6.76l-6.07,2.03l-1.9,-0.02l-6.31,-4.79l-3.13,-0.81l-8.18,-5.41l-6.08,-0.11l-1.58,-1.67l-1.36,0.18l-1.76,-3.9l-2.16,0.87l-3.51,0.0l-5.75,-4.22l-3.91,1.09l-1.48,-0.3l-5.8,-2.98l-3.97,-4.36l-4.04,-1.51l-7.57,-5.03l-5.79,-5.8l-3.58,-1.89l-3.05,-3.36l-4.6,-2.61l-2.46,-2.94l-1.54,-4.17l-1.62,-1.85l-2.36,-4.65l-1.35,-8.32l-2.83,-5.76l1.79,-5.22l-0.08,-5.03l1.33,-5.05l-0.24,-4.81l2.05,-4.4l-2.54,-5.11l-0.09,-2.13l2.05,-3.4l0.99,-4.98Z\", \"name\": \"Entre R\\u00edos\"}, \"ba\": {\"path\": \"M507.92,939.49l-0.39,0.81l1.34,1.39l4.21,-2.12l-0.94,1.26l-0.77,3.95l-3.59,6.5l-18.35,9.08l-1.72,-0.07l-2.74,-5.4l-11.04,-9.98l-3.78,-1.41l-8.78,-1.01l-0.06,-246.87l0.68,-79.95l1.2,-1.32l73.55,-0.24l33.96,-35.54l1.69,-2.36l-0.33,-1.78l0.93,-1.51l2.73,-0.55l2.97,1.15l4.38,0.12l4.88,3.23l3.51,-0.36l1.68,-1.27l1.7,-3.33l0.91,-4.42l2.82,-2.51l0.33,-3.19l2.38,-1.29l0.66,-2.1l6.14,5.97l7.74,5.14l3.94,1.45l3.89,4.32l6.1,3.14l1.99,0.38l3.55,-1.07l3.29,2.95l2.48,1.22l4.07,0.01l1.5,-0.83l0.49,2.9l1.0,0.8l1.52,-0.06l1.8,1.7l5.84,0.03l8.12,5.38l3.03,0.76l4.57,3.95l2.02,0.96l2.46,0.05l6.06,-2.03l2.17,0.91l0.03,5.86l0.57,1.51l-3.29,3.93l-3.64,-0.29l-1.69,1.55l3.9,2.97l-0.47,2.3l-1.24,1.65l0.34,1.93l1.78,1.51l0.07,1.76l1.1,1.81l1.72,1.32l2.23,0.37l0.96,2.67l4.75,3.87l19.89,8.24l6.79,4.28l1.18,1.44l5.64,2.92l8.27,6.54l6.94,9.54l1.25,3.27l-0.27,1.55l-8.43,11.57l-2.5,4.51l-0.75,4.4l0.4,4.41l3.47,8.01l1.82,1.44l1.02,2.33l6.4,5.84l4.76,2.72l2.88,0.79l-0.56,0.96l0.6,0.84l4.21,-2.04l4.1,-0.04l-0.08,-1.96l0.57,0.39l1.82,3.94l-0.08,6.27l1.23,4.08l0.16,14.97l-9.85,13.71l-7.56,13.0l-4.9,6.31l-6.45,5.69l-8.12,9.81l-1.97,4.47l-0.6,4.52l0.58,1.4l-0.18,2.45l-1.04,2.2l-1.48,1.55l-12.05,7.35l-6.97,3.8l-2.26,0.6l-3.97,2.68l-7.83,3.24l-4.02,0.61l-6.69,2.88l-7.3,1.54l-9.53,3.02l-5.54,2.5l-25.65,4.72l-7.47,2.87l-4.13,-0.0l-44.04,7.2l-6.82,-0.39l-5.7,1.72l-12.83,-0.97l-4.15,1.52l-6.76,-0.89l-2.36,-1.38l-5.2,0.68l-9.93,-2.97l-4.32,-5.96l-7.34,-0.55l-1.95,-0.72l-1.35,0.71l-0.71,1.33l0.78,4.72l1.74,-0.03l0.22,3.02l2.2,0.46l-0.21,1.36l-1.42,1.08l-1.85,4.45l0.83,1.48l0.04,3.65l1.79,1.7l-1.15,1.54l1.79,1.28l5.69,0.56l5.24,2.78l0.87,1.51l-0.97,1.24l-3.98,-2.92l-2.1,-2.52l-4.7,0.58l0.63,2.04l2.06,0.58l1.41,2.49l1.94,1.69l4.31,1.18l0.15,0.78l-0.96,1.5l-2.0,17.22l-1.82,1.03l-2.93,-0.46l-2.89,-1.96l-0.77,0.22l-0.25,1.04l0.71,1.26l-0.96,0.94l-0.05,2.95l-2.32,6.99l1.22,3.27l-0.9,3.93l-0.31,0.79l-3.72,2.06l-1.86,3.36l3.5,8.73l3.93,1.96l0.3,1.73l1.85,1.9l0.86,-0.14l0.06,2.68l-1.72,-0.29l-1.47,-1.46l-0.69,0.2l0.62,2.71ZM526.47,860.53l0.79,0.52l0.69,-0.49l1.04,3.85l-6.42,-2.9l-2.93,-3.99l6.05,1.6l0.79,1.41ZM519.12,853.16l-0.45,0.42l-0.44,-0.18l0.15,-0.28l0.74,0.04ZM520.02,853.2l3.01,0.5l1.2,1.06l-1.16,0.39l-3.05,-1.95Z\", \"name\": \"Buenos Aires\"}, \"sa\": {\"path\": \"M231.8,149.19l-0.64,-2.0l-3.17,-1.41l-1.12,-3.23l3.33,-8.36l1.55,1.09l0.7,-0.15l2.44,-6.11l3.1,-0.06l3.64,-5.33l39.89,-16.94l1.27,-1.75l3.69,-11.75l4.27,3.32l2.85,0.79l3.5,3.64l0.6,1.47l1.85,0.6l3.33,4.56l4.77,2.33l4.31,4.86l5.08,2.01l3.1,-0.14l1.73,-0.88l2.42,-3.16l1.47,-0.79l1.72,-5.01l0.64,-15.2l-3.1,-9.67l1.28,-5.89l0.63,-0.67l4.02,1.11l2.11,1.31l1.75,0.03l7.8,5.16l0.06,5.7l-0.49,1.17l0.56,1.48l-1.51,2.33l-0.25,3.86l1.47,2.69l-0.25,2.05l2.1,2.74l1.16,0.2l1.55,-0.75l2.91,2.61l3.13,1.71l0.4,4.67l7.47,10.91l2.4,1.5l2.8,-0.42l2.23,1.86l7.02,2.01l4.81,-2.23l0.56,1.15l3.96,3.13l6.7,2.62l1.46,-0.6l3.03,-6.17l9.28,7.46l1.13,-0.67l1.44,-3.01l2.92,-2.72l2.56,-0.74l1.34,-1.73l3.99,-0.48l1.46,-0.9l4.03,-5.07l2.48,-5.74l-1.16,-31.55l-0.52,-0.91l-1.68,-0.39l-6.85,0.16l-1.57,1.76l-1.47,3.29l-4.91,-5.14l-3.59,-1.35l-1.34,-1.18l-4.33,0.6l-2.1,1.66l-3.06,-0.32l-0.46,-2.75l-2.92,-5.89l-3.96,-2.4l1.6,-8.23l-0.31,-2.26l-2.29,-2.3l-5.71,-0.36l-1.75,-1.42l-1.75,-4.83l-0.77,-5.24l-0.01,-2.11l0.92,-2.38l-1.99,-2.18l-1.58,-0.15l0.42,-3.66l4.3,-8.68l0.21,-4.65l1.99,-5.39l7.02,-0.08l8.33,1.9l3.25,1.76l4.62,0.18l3.03,1.49l1.8,2.64l-1.27,3.31l2.12,2.05l-0.32,1.76l1.6,2.43l3.01,3.16l-0.91,1.75l-0.17,2.98l4.41,5.14l-0.21,2.28l0.74,2.97l1.34,0.83l0.66,-0.39l1.41,-5.25l0.04,-3.45l1.91,-6.94l4.05,-4.78l3.34,-8.47l1.61,-1.41l2.14,-6.19l1.57,-1.42l1.25,-2.8l5.1,0.07l3.4,2.25l3.05,-2.24l1.58,-0.27l37.19,0.22l0.88,5.74l4.85,3.2l0.87,1.69l1.32,0.53l-0.3,2.14l0.5,0.8l2.9,0.94l1.8,1.96l2.44,0.85l1.38,1.71l4.17,2.53l0.31,90.89l-47.74,59.69l-23.37,-0.33l-10.3,-3.23l-2.27,-0.1l-10.69,21.7l-0.43,3.49l-2.29,5.44l-8.99,0.21l-3.3,-0.64l-7.86,3.01l-3.12,-1.56l-2.16,-0.0l-8.4,-3.27l-2.89,-4.67l-5.88,2.09l-10.22,-2.17l-1.18,1.06l-0.78,8.66l-0.65,1.12l-14.67,-2.22l-1.74,-0.88l-2.83,-3.09l-2.7,-0.26l-1.52,0.74l-1.28,2.12l-1.8,1.23l-2.62,5.89l-1.13,0.71l-5.69,-5.86l-3.88,-7.83l-7.35,-9.74l-1.45,-3.72l0.21,-3.6l2.64,-2.26l7.78,-0.46l3.8,-3.13l1.21,-6.56l-2.32,-3.65l-0.64,-4.27l-1.15,-2.23l-2.45,-0.43l-54.4,0.67l-27.73,-5.23l2.22,-0.73l0.72,-2.13l-3.42,-4.03l0.25,-2.22l-1.43,-1.87Z\", \"name\": \"Salta\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.brazil.js",
    "content": "/** Add Brazil Map Data Points */\njQuery.fn.vectorMap('addMap', 'brazil_br', {\"width\":600,\"height\":550,\"paths\":{\"ro\": {\"name\": \"Rondônia\",\"path\": \"M 179,197 L 182,197 L 186,197 L 186,198 L 187,198 L 188,198 L 188,199 L 188,200 L 189,200 L 189,201 L 189,202 L 190,201 L 190,202 L 190,203 L 191,203 L 191,202 L 191,203 L 192,203 L 193,203 L 193,204 L 193,205 L 193,206 L 194,207 L 194,206 L 195,206 L 195,207 L 195,208 L 196,208 L 196,209 L 197,209 L 198,209 L 198,210 L 199,210 L 200,210 L 200,209 L 200,208 L 201,208 L 201,207 L 202,207 L 202,208 L 203,208 L 203,209 L 204,209 L 204,210 L 205,210 L 205,211 L 204,211 L 204,212 L 204,213 L 204,214 L 204,215 L 203,215 L 203,216 L 203,215 L 203,216 L 203,217 L 204,217 L 204,218 L 204,219 L 205,219 L 205,220 L 205,221 L 204,221 L 204,222 L 204,221 L 204,222 L 204,223 L 205,223 L 205,224 L 204,224 L 204,225 L 204,226 L 204,227 L 203,227 L 203,228 L 204,228 L 204,229 L 204,230 L 205,230 L 205,231 L 205,232 L 205,233 L 205,234 L 205,235 L 205,236 L 205,237 L 205,236 L 205,237 L 204,237 L 204,238 L 204,239 L 205,239 L 206,239 L 212,239 L 213,239 L 214,239 L 219,239 L 219,240 L 220,240 L 220,241 L 221,241 L 221,240 L 221,241 L 221,240 L 222,240 L 222,241 L 223,241 L 224,241 L 225,241 L 226,241 L 226,242 L 226,243 L 226,244 L 227,244 L 227,245 L 226,245 L 226,246 L 225,246 L 225,247 L 224,247 L 224,248 L 224,249 L 224,250 L 224,251 L 224,252 L 225,252 L 224,252 L 225,252 L 226,252 L 226,253 L 226,254 L 227,254 L 227,255 L 227,256 L 227,257 L 229,258 L 228,258 L 228,259 L 228,260 L 227,260 L 226,260 L 226,261 L 225,261 L 225,262 L 224,262 L 224,263 L 224,264 L 225,264 L 224,264 L 224,265 L 224,266 L 224,267 L 223,267 L 223,268 L 222,268 L 222,269 L 222,270 L 221,270 L 221,271 L 220,271 L 221,271 L 220,271 L 221,272 L 220,272 L 220,273 L 220,274 L 219,274 L 218,274 L 218,275 L 217,275 L 217,276 L 217,275 L 216,276 L 216,277 L 215,277 L 215,276 L 214,276 L 213,276 L 213,275 L 212,275 L 211,275 L 212,275 L 212,274 L 211,274 L 210,274 L 210,275 L 210,274 L 210,275 L 210,274 L 210,275 L 209,274 L 209,275 L 208,275 L 208,274 L 207,274 L 207,275 L 207,274 L 206,274 L 206,275 L 205,275 L 204,275 L 204,274 L 204,275 L 204,274 L 203,274 L 204,274 L 203,274 L 202,274 L 202,275 L 201,274 L 201,275 L 201,274 L 201,275 L 201,274 L 201,275 L 200,275 L 200,274 L 199,274 L 199,273 L 198,273 L 198,272 L 197,272 L 197,271 L 196,271 L 196,270 L 196,269 L 196,270 L 196,269 L 195,269 L 194,269 L 193,269 L 192,269 L 192,268 L 191,268 L 190,268 L 189,268 L 189,267 L 188,267 L 188,268 L 187,268 L 187,267 L 187,268 L 187,267 L 186,267 L 187,267 L 187,266 L 186,266 L 186,267 L 186,266 L 185,266 L 185,265 L 184,265 L 184,264 L 183,264 L 183,263 L 183,264 L 183,263 L 182,263 L 183,263 L 183,262 L 182,262 L 182,263 L 182,262 L 181,262 L 182,262 L 181,262 L 181,263 L 180,263 L 181,263 L 180,263 L 179,263 L 179,262 L 179,263 L 179,262 L 178,262 L 178,261 L 177,261 L 176,261 L 176,260 L 175,260 L 174,260 L 174,259 L 173,259 L 173,260 L 172,260 L 171,260 L 171,261 L 170,261 L 170,260 L 170,261 L 170,260 L 169,260 L 169,261 L 169,260 L 168,260 L 167,260 L 168,260 L 167,260 L 166,260 L 165,260 L 164,260 L 164,259 L 163,259 L 163,258 L 163,257 L 163,256 L 163,257 L 162,257 L 162,256 L 161,256 L 160,256 L 160,255 L 160,256 L 159,256 L 159,255 L 158,255 L 158,254 L 159,254 L 158,254 L 158,253 L 158,254 L 157,254 L 157,253 L 156,253 L 156,254 L 156,253 L 155,253 L 156,253 L 156,252 L 155,252 L 155,251 L 155,250 L 155,249 L 154,249 L 153,249 L 153,250 L 154,250 L 153,250 L 153,249 L 152,249 L 153,249 L 153,248 L 153,247 L 152,247 L 152,246 L 152,245 L 151,245 L 151,244 L 152,244 L 151,244 L 151,243 L 151,242 L 152,242 L 151,242 L 151,241 L 152,241 L 152,240 L 152,239 L 153,239 L 152,239 L 152,238 L 152,237 L 151,237 L 151,236 L 151,235 L 151,234 L 150,234 L 150,233 L 150,232 L 151,232 L 151,231 L 151,230 L 152,230 L 152,229 L 152,228 L 152,227 L 151,227 L 151,226 L 152,226 L 152,225 L 151,225 L 151,224 L 152,224 L 152,223 L 151,223 L 151,222 L 151,221 L 150,221 L 149,222 L 149,221 L 149,222 L 149,223 L 149,222 L 149,223 L 148,223 L 147,223 L 147,222 L 147,223 L 146,223 L 146,222 L 147,222 L 146,222 L 145,222 L 145,223 L 145,222 L 144,222 L 144,223 L 144,222 L 143,222 L 142,222 L 142,223 L 143,223 L 142,223 L 141,223 L 141,222 L 141,223 L 140,223 L 139,223 L 140,223 L 139,223 L 138,223 L 137,223 L 137,224 L 136,224 L 135,224 L 134,224 L 133,224 L 131,223 L 131,222 L 132,222 L 133,222 L 133,221 L 134,221 L 135,221 L 135,220 L 136,220 L 136,219 L 137,219 L 137,218 L 136,218 L 136,217 L 137,217 L 137,218 L 137,217 L 137,218 L 138,217 L 138,218 L 138,217 L 139,218 L 140,218 L 140,217 L 141,217 L 142,217 L 143,217 L 143,218 L 144,218 L 144,219 L 145,219 L 145,220 L 145,219 L 145,220 L 145,219 L 146,219 L 147,219 L 147,218 L 147,217 L 148,217 L 148,218 L 149,218 L 150,218 L 150,217 L 150,216 L 151,216 L 152,216 L 152,215 L 153,215 L 153,216 L 153,217 L 154,217 L 153,217 L 153,218 L 154,218 L 155,218 L 155,217 L 156,217 L 156,216 L 157,216 L 157,215 L 157,214 L 157,213 L 157,212 L 158,212 L 158,211 L 159,211 L 159,212 L 160,212 L 160,211 L 160,212 L 161,212 L 162,212 L 162,211 L 163,211 L 164,211 L 165,211 L 166,211 L 165,211 L 165,212 L 166,212 L 166,211 L 167,211 L 168,211 L 168,210 L 168,209 L 168,208 L 169,208 L 170,208 L 169,207 L 170,207 L 170,206 L 171,206 L 171,205 L 170,205 L 170,204 L 171,204 L 170,204 L 170,203 L 171,203 L 171,202 L 172,202 L 173,202 L 173,201 L 174,201 L 173,201 L 173,200 L 174,200 L 174,199 L 175,199 L 175,198 L 175,197 L 176,197 L 177,197 L 178,197 L 179,197 \"},\"ac\": {\"name\": \"Acre\",\"path\": \"M 42,188 L 43,189 L 44,189 L 46,190 L 49,191 L 50,191 L 51,191 L 52,192 L 53,192 L 54,192 L 55,192 L 56,192 L 58,192 L 59,192 L 59,193 L 60,193 L 62,193 L 64,193 L 67,193 L 71,194 L 74,194 L 75,194 L 76,194 L 77,194 L 77,195 L 79,195 L 82,195 L 83,195 L 84,195 L 86,196 L 87,196 L 87,197 L 92,201 L 93,202 L 94,202 L 94,203 L 95,203 L 95,204 L 96,204 L 96,205 L 97,205 L 97,206 L 98,206 L 99,207 L 100,208 L 101,208 L 101,209 L 105,212 L 109,214 L 111,215 L 114,216 L 115,217 L 116,217 L 117,217 L 119,219 L 121,219 L 124,220 L 125,220 L 126,221 L 127,221 L 130,223 L 131,223 L 133,224 L 133,225 L 133,224 L 133,225 L 132,225 L 132,226 L 132,225 L 131,225 L 131,226 L 130,226 L 130,227 L 129,227 L 129,228 L 129,227 L 129,228 L 128,228 L 129,228 L 128,228 L 128,229 L 127,229 L 128,229 L 127,229 L 127,230 L 127,229 L 127,230 L 127,229 L 127,230 L 126,230 L 125,230 L 124,230 L 124,231 L 123,231 L 122,231 L 122,232 L 121,232 L 120,232 L 120,233 L 120,232 L 120,233 L 119,233 L 119,234 L 118,235 L 117,235 L 116,235 L 116,234 L 116,235 L 116,234 L 116,235 L 116,234 L 115,234 L 115,235 L 114,235 L 113,235 L 113,236 L 113,237 L 112,237 L 112,238 L 111,238 L 111,239 L 110,239 L 110,240 L 110,239 L 110,240 L 109,240 L 109,239 L 109,240 L 108,240 L 107,240 L 107,241 L 106,241 L 104,241 L 104,240 L 104,239 L 104,240 L 104,239 L 103,239 L 103,240 L 103,239 L 103,240 L 103,239 L 102,239 L 102,240 L 102,239 L 102,240 L 101,240 L 101,239 L 101,240 L 101,239 L 101,240 L 100,240 L 100,239 L 100,240 L 100,239 L 99,239 L 98,239 L 97,239 L 96,239 L 95,239 L 95,238 L 95,239 L 95,238 L 95,239 L 95,238 L 94,238 L 94,239 L 94,238 L 94,239 L 93,239 L 92,239 L 91,239 L 90,239 L 90,238 L 90,239 L 89,239 L 89,238 L 88,238 L 87,238 L 87,239 L 87,238 L 87,239 L 86,239 L 85,239 L 85,240 L 85,239 L 85,240 L 84,240 L 83,240 L 82,240 L 81,240 L 80,240 L 80,239 L 79,239 L 79,238 L 79,239 L 78,239 L 78,238 L 78,237 L 78,235 L 78,233 L 78,232 L 78,231 L 78,229 L 78,227 L 78,223 L 78,222 L 79,222 L 79,223 L 79,222 L 79,221 L 78,221 L 78,220 L 78,219 L 79,220 L 79,219 L 79,218 L 79,219 L 79,218 L 80,218 L 80,217 L 80,218 L 79,218 L 79,217 L 79,218 L 78,218 L 78,219 L 78,218 L 77,218 L 77,219 L 78,219 L 77,219 L 76,219 L 76,220 L 76,219 L 76,220 L 76,219 L 76,220 L 75,220 L 76,220 L 75,220 L 76,220 L 75,220 L 75,221 L 75,220 L 75,221 L 74,221 L 74,222 L 73,222 L 73,223 L 72,223 L 71,223 L 70,224 L 70,225 L 69,225 L 68,225 L 67,225 L 67,226 L 64,226 L 63,226 L 62,226 L 61,226 L 59,226 L 58,226 L 56,226 L 56,225 L 56,224 L 57,224 L 56,224 L 56,223 L 57,223 L 56,223 L 56,222 L 55,222 L 55,221 L 55,220 L 55,219 L 54,219 L 54,218 L 54,219 L 54,218 L 53,218 L 52,218 L 53,218 L 52,218 L 51,218 L 50,218 L 49,218 L 49,217 L 48,217 L 47,217 L 45,217 L 42,217 L 43,216 L 43,215 L 44,215 L 45,214 L 44,214 L 45,214 L 45,213 L 46,213 L 46,212 L 45,212 L 46,212 L 46,211 L 45,211 L 45,210 L 44,210 L 44,209 L 43,209 L 43,208 L 42,207 L 41,207 L 41,206 L 40,207 L 40,206 L 40,205 L 40,204 L 39,204 L 39,203 L 38,203 L 37,203 L 37,202 L 37,201 L 36,201 L 36,200 L 37,200 L 36,200 L 37,200 L 37,199 L 36,199 L 36,198 L 35,198 L 35,197 L 34,197 L 34,196 L 35,196 L 35,195 L 35,194 L 34,194 L 33,194 L 33,193 L 32,193 L 32,192 L 31,192 L 31,191 L 32,191 L 32,190 L 32,189 L 31,189 L 32,189 L 33,189 L 33,188 L 34,189 L 34,188 L 34,189 L 35,188 L 35,187 L 34,187 L 34,186 L 34,185 L 34,186 L 35,186 L 38,187 L 39,187 L 42,188 \"},\"am\": {\"name\": \"Amazonas\",\"path\": \"M 124,58 L 124,59 L 124,60 L 125,60 L 125,61 L 126,61 L 127,62 L 127,63 L 127,64 L 127,65 L 127,66 L 127,67 L 127,68 L 127,69 L 127,70 L 128,70 L 130,69 L 134,73 L 138,76 L 139,76 L 140,76 L 141,76 L 141,75 L 142,75 L 143,75 L 143,74 L 144,74 L 144,73 L 145,73 L 146,73 L 146,72 L 146,73 L 146,72 L 146,73 L 147,73 L 147,72 L 147,73 L 147,72 L 148,72 L 148,73 L 149,73 L 149,74 L 149,75 L 148,75 L 148,76 L 148,77 L 149,77 L 150,77 L 150,76 L 151,76 L 150,76 L 150,75 L 151,75 L 151,74 L 151,73 L 152,73 L 152,74 L 153,74 L 153,73 L 153,74 L 154,73 L 154,72 L 154,71 L 154,70 L 155,70 L 155,71 L 156,71 L 156,70 L 157,70 L 156,70 L 156,69 L 157,69 L 157,70 L 157,69 L 158,69 L 158,68 L 159,68 L 159,69 L 160,69 L 160,68 L 160,69 L 161,68 L 162,68 L 162,67 L 163,67 L 163,66 L 164,66 L 164,65 L 165,65 L 165,66 L 164,67 L 165,67 L 165,66 L 166,66 L 166,65 L 167,65 L 168,64 L 168,65 L 168,64 L 169,64 L 169,63 L 169,62 L 169,61 L 169,60 L 169,59 L 170,59 L 171,59 L 172,59 L 173,59 L 174,59 L 173,58 L 174,58 L 175,58 L 175,57 L 176,57 L 177,57 L 178,57 L 178,56 L 179,56 L 180,56 L 181,56 L 182,56 L 182,57 L 183,58 L 184,58 L 185,58 L 186,58 L 186,59 L 187,59 L 188,59 L 188,60 L 188,61 L 188,62 L 188,63 L 187,63 L 187,64 L 187,65 L 188,65 L 188,66 L 189,66 L 189,67 L 189,68 L 190,69 L 190,70 L 190,71 L 191,71 L 191,72 L 191,73 L 192,73 L 191,73 L 191,74 L 191,75 L 191,76 L 190,76 L 190,77 L 190,78 L 191,78 L 190,78 L 190,79 L 190,80 L 191,80 L 191,81 L 192,81 L 191,81 L 191,82 L 191,83 L 191,84 L 192,84 L 192,85 L 192,86 L 193,86 L 193,87 L 193,88 L 194,88 L 194,89 L 194,90 L 194,91 L 195,91 L 195,92 L 194,92 L 194,93 L 193,94 L 194,94 L 193,94 L 193,95 L 194,95 L 193,96 L 192,96 L 192,97 L 192,96 L 191,96 L 191,97 L 191,98 L 192,98 L 193,98 L 192,98 L 193,98 L 193,99 L 194,99 L 194,100 L 195,100 L 195,101 L 196,101 L 196,102 L 197,102 L 198,102 L 198,103 L 198,104 L 198,105 L 199,105 L 199,106 L 200,106 L 201,106 L 202,106 L 203,106 L 203,107 L 204,107 L 204,108 L 205,108 L 205,107 L 204,107 L 204,106 L 203,106 L 203,105 L 204,105 L 203,105 L 203,104 L 203,103 L 204,103 L 204,102 L 204,101 L 204,100 L 203,99 L 204,99 L 204,98 L 204,97 L 205,97 L 205,96 L 206,96 L 206,95 L 207,95 L 207,94 L 208,94 L 209,94 L 209,93 L 209,94 L 209,93 L 210,93 L 211,93 L 211,94 L 212,94 L 213,94 L 213,95 L 214,95 L 214,96 L 215,96 L 215,97 L 214,97 L 215,97 L 215,98 L 216,99 L 216,98 L 216,99 L 217,99 L 217,98 L 217,99 L 217,98 L 217,99 L 217,98 L 218,98 L 218,99 L 218,98 L 218,99 L 218,98 L 219,98 L 218,98 L 219,98 L 219,97 L 220,97 L 221,97 L 221,96 L 221,95 L 220,95 L 220,94 L 220,93 L 221,93 L 221,92 L 221,91 L 222,90 L 221,90 L 221,89 L 222,89 L 222,88 L 223,87 L 223,86 L 224,86 L 224,85 L 224,84 L 225,84 L 225,83 L 226,83 L 228,83 L 236,83 L 237,83 L 241,83 L 241,86 L 241,87 L 241,88 L 241,89 L 241,90 L 241,91 L 242,91 L 242,92 L 243,92 L 243,93 L 243,94 L 243,95 L 244,95 L 243,96 L 244,96 L 245,96 L 245,97 L 246,97 L 246,98 L 247,98 L 247,99 L 247,98 L 247,99 L 247,100 L 248,100 L 247,100 L 248,100 L 247,101 L 248,101 L 248,102 L 249,102 L 250,102 L 250,103 L 251,103 L 251,104 L 251,103 L 252,103 L 252,102 L 253,102 L 254,102 L 254,103 L 254,104 L 254,105 L 253,105 L 254,105 L 254,106 L 255,106 L 256,106 L 256,107 L 257,107 L 257,108 L 258,108 L 257,108 L 258,108 L 258,109 L 258,108 L 258,109 L 258,108 L 259,108 L 259,109 L 260,109 L 261,109 L 261,110 L 262,110 L 262,111 L 262,110 L 263,110 L 264,110 L 265,110 L 265,111 L 266,111 L 266,112 L 267,112 L 267,113 L 268,113 L 268,114 L 269,114 L 269,115 L 270,115 L 270,114 L 271,114 L 271,115 L 271,116 L 270,116 L 271,117 L 272,117 L 273,117 L 273,116 L 274,116 L 274,117 L 275,117 L 275,116 L 275,117 L 276,117 L 276,116 L 277,116 L 278,115 L 279,115 L 280,115 L 279,115 L 279,116 L 279,117 L 278,117 L 277,118 L 276,118 L 275,119 L 275,120 L 276,120 L 276,121 L 275,121 L 275,122 L 275,123 L 274,123 L 274,125 L 273,125 L 273,126 L 273,127 L 272,128 L 271,130 L 271,131 L 270,132 L 270,133 L 269,135 L 268,136 L 268,137 L 267,139 L 266,141 L 266,142 L 265,143 L 264,145 L 264,146 L 262,149 L 261,153 L 260,154 L 259,156 L 258,158 L 258,159 L 255,164 L 255,165 L 253,170 L 250,176 L 250,177 L 249,177 L 249,178 L 248,178 L 247,178 L 247,179 L 247,180 L 247,181 L 247,182 L 247,183 L 248,183 L 249,183 L 249,184 L 249,185 L 250,185 L 250,186 L 251,186 L 251,187 L 251,188 L 251,189 L 251,190 L 250,190 L 250,191 L 250,192 L 251,192 L 250,193 L 250,194 L 249,194 L 249,195 L 248,195 L 248,196 L 248,197 L 249,197 L 249,198 L 249,199 L 249,200 L 249,201 L 249,202 L 249,203 L 248,203 L 249,203 L 248,203 L 248,204 L 248,205 L 248,206 L 248,207 L 247,207 L 247,208 L 248,208 L 248,207 L 249,208 L 248,208 L 248,209 L 247,209 L 246,209 L 239,209 L 238,209 L 233,209 L 226,209 L 225,209 L 220,209 L 218,209 L 214,209 L 206,209 L 204,209 L 203,209 L 203,208 L 202,208 L 202,207 L 201,207 L 201,208 L 200,208 L 200,209 L 200,210 L 199,210 L 198,210 L 198,209 L 197,209 L 196,209 L 196,208 L 195,208 L 195,207 L 195,206 L 194,206 L 194,207 L 193,206 L 193,205 L 193,204 L 193,203 L 192,203 L 191,203 L 191,202 L 191,203 L 190,203 L 190,202 L 190,201 L 189,202 L 189,201 L 189,200 L 188,200 L 188,199 L 188,198 L 187,198 L 186,198 L 186,197 L 182,197 L 178,197 L 177,197 L 175,197 L 175,198 L 175,199 L 174,199 L 174,200 L 173,200 L 173,201 L 174,201 L 173,201 L 173,202 L 172,202 L 171,202 L 171,203 L 170,203 L 170,204 L 171,204 L 170,204 L 170,205 L 171,205 L 171,206 L 170,206 L 170,207 L 169,207 L 170,208 L 169,208 L 168,208 L 168,209 L 168,210 L 168,211 L 167,211 L 166,211 L 166,212 L 165,212 L 165,211 L 166,211 L 165,211 L 164,211 L 163,211 L 162,211 L 162,212 L 161,212 L 160,212 L 160,211 L 160,212 L 159,212 L 159,211 L 158,211 L 158,212 L 157,212 L 157,213 L 157,214 L 157,215 L 157,216 L 156,216 L 156,217 L 155,217 L 155,218 L 154,218 L 153,218 L 153,217 L 154,217 L 153,217 L 153,216 L 153,215 L 152,215 L 152,216 L 151,216 L 150,216 L 150,217 L 150,218 L 149,218 L 148,218 L 148,217 L 147,217 L 147,218 L 147,219 L 146,219 L 145,219 L 145,220 L 145,219 L 145,220 L 145,219 L 144,219 L 144,218 L 143,218 L 143,217 L 142,217 L 141,217 L 140,217 L 140,218 L 139,218 L 138,217 L 138,218 L 138,217 L 137,218 L 137,217 L 137,218 L 137,217 L 136,217 L 136,218 L 137,218 L 137,219 L 136,219 L 136,220 L 135,220 L 135,221 L 134,221 L 133,221 L 133,222 L 132,222 L 131,222 L 131,223 L 130,223 L 127,221 L 126,221 L 125,220 L 124,220 L 121,219 L 119,219 L 117,217 L 116,217 L 115,217 L 114,216 L 111,215 L 105,212 L 104,212 L 101,209 L 101,208 L 100,208 L 99,207 L 98,206 L 97,206 L 97,205 L 96,205 L 96,204 L 95,204 L 95,203 L 94,203 L 94,202 L 93,202 L 92,201 L 89,199 L 86,196 L 84,195 L 83,195 L 82,195 L 79,195 L 77,195 L 77,194 L 76,194 L 75,194 L 74,194 L 71,194 L 67,193 L 64,193 L 62,193 L 60,193 L 59,193 L 59,192 L 58,192 L 56,192 L 55,192 L 54,192 L 53,192 L 52,192 L 51,191 L 50,191 L 49,191 L 46,190 L 44,189 L 43,189 L 42,188 L 35,186 L 34,186 L 34,185 L 34,184 L 35,184 L 34,184 L 34,183 L 34,182 L 35,182 L 35,181 L 36,181 L 36,180 L 37,180 L 37,179 L 38,179 L 39,179 L 39,178 L 40,178 L 41,178 L 42,178 L 42,177 L 43,177 L 43,176 L 43,175 L 43,174 L 42,174 L 42,173 L 42,172 L 41,172 L 41,171 L 41,170 L 42,170 L 42,169 L 42,168 L 43,168 L 42,168 L 43,168 L 43,167 L 44,167 L 44,166 L 45,166 L 45,165 L 45,164 L 45,163 L 45,162 L 46,162 L 46,161 L 46,160 L 47,160 L 46,160 L 47,160 L 46,159 L 47,159 L 46,159 L 47,159 L 46,159 L 46,158 L 47,158 L 47,157 L 48,158 L 48,157 L 49,157 L 50,157 L 50,156 L 51,156 L 51,155 L 52,155 L 53,155 L 53,154 L 53,153 L 54,153 L 55,153 L 56,153 L 56,152 L 57,152 L 58,152 L 57,151 L 58,151 L 59,151 L 59,150 L 59,151 L 59,150 L 60,150 L 60,149 L 60,150 L 60,149 L 61,149 L 62,149 L 63,149 L 64,149 L 65,149 L 66,149 L 65,149 L 65,148 L 66,148 L 67,149 L 67,148 L 68,148 L 69,148 L 69,147 L 69,148 L 69,147 L 70,147 L 70,148 L 70,147 L 70,148 L 70,147 L 71,147 L 71,148 L 71,147 L 71,148 L 72,147 L 72,148 L 72,147 L 73,147 L 74,147 L 74,146 L 75,146 L 74,146 L 75,145 L 75,146 L 75,145 L 76,144 L 76,145 L 77,145 L 77,144 L 78,144 L 78,145 L 78,144 L 79,144 L 79,145 L 80,144 L 80,145 L 80,144 L 81,144 L 82,145 L 82,144 L 82,145 L 82,146 L 83,146 L 83,147 L 83,146 L 83,147 L 84,147 L 84,146 L 85,146 L 85,147 L 86,147 L 87,147 L 87,146 L 87,145 L 88,144 L 88,143 L 88,142 L 88,141 L 88,139 L 89,138 L 89,137 L 89,135 L 90,130 L 90,128 L 91,127 L 91,126 L 92,121 L 92,120 L 93,114 L 93,113 L 94,110 L 94,108 L 94,107 L 94,106 L 95,106 L 95,105 L 95,104 L 94,104 L 94,103 L 95,103 L 95,102 L 94,101 L 94,100 L 93,100 L 93,99 L 93,98 L 92,98 L 93,98 L 92,98 L 92,97 L 92,96 L 92,95 L 93,95 L 92,95 L 92,94 L 92,93 L 91,93 L 90,93 L 90,92 L 89,92 L 89,91 L 88,91 L 87,91 L 87,90 L 86,90 L 86,89 L 86,88 L 86,87 L 86,86 L 86,85 L 86,83 L 86,80 L 86,79 L 87,79 L 86,78 L 87,78 L 87,79 L 88,78 L 89,78 L 90,78 L 90,77 L 91,77 L 92,78 L 92,77 L 93,77 L 93,76 L 94,76 L 94,77 L 95,77 L 95,78 L 96,78 L 96,77 L 96,78 L 97,78 L 98,78 L 98,77 L 99,78 L 99,77 L 98,77 L 98,76 L 98,75 L 98,74 L 98,73 L 97,73 L 98,73 L 97,72 L 96,72 L 96,71 L 95,71 L 95,72 L 94,72 L 94,71 L 93,71 L 92,71 L 91,71 L 90,71 L 91,71 L 90,71 L 89,71 L 89,72 L 89,71 L 89,68 L 89,66 L 89,64 L 89,62 L 89,63 L 90,62 L 91,62 L 92,62 L 93,62 L 93,61 L 93,62 L 94,62 L 95,62 L 98,62 L 100,62 L 105,62 L 112,62 L 111,62 L 111,61 L 111,60 L 111,59 L 112,59 L 113,59 L 113,60 L 114,60 L 114,61 L 115,61 L 116,60 L 115,60 L 116,60 L 117,59 L 117,58 L 118,58 L 119,58 L 120,58 L 120,57 L 121,57 L 121,56 L 122,56 L 122,55 L 123,55 L 123,56 L 123,57 L 124,57 L 124,58 \"},\"rr\": {\"name\": \"Roraima\",\"path\": \"M 223,13 L 223,14 L 224,13 L 224,14 L 224,15 L 225,15 L 225,16 L 226,16 L 225,16 L 226,16 L 225,16 L 225,17 L 226,17 L 226,18 L 225,18 L 225,19 L 225,20 L 225,21 L 225,22 L 224,22 L 225,22 L 224,22 L 225,22 L 224,22 L 224,23 L 223,23 L 223,24 L 224,24 L 224,23 L 224,24 L 225,24 L 226,24 L 227,24 L 227,25 L 228,25 L 228,24 L 228,25 L 228,24 L 228,25 L 228,24 L 228,25 L 229,25 L 230,25 L 230,26 L 230,25 L 230,26 L 230,27 L 229,27 L 230,27 L 229,27 L 229,28 L 230,28 L 230,29 L 231,29 L 231,30 L 230,30 L 231,30 L 231,31 L 231,30 L 231,31 L 231,30 L 231,31 L 232,31 L 232,32 L 231,32 L 231,33 L 231,34 L 231,33 L 231,34 L 230,34 L 230,35 L 229,35 L 229,36 L 228,36 L 228,37 L 227,37 L 228,37 L 227,37 L 228,37 L 228,38 L 228,39 L 228,40 L 228,41 L 227,41 L 227,42 L 227,43 L 226,43 L 226,44 L 226,45 L 226,46 L 226,47 L 226,48 L 226,49 L 226,50 L 226,51 L 227,51 L 226,51 L 227,51 L 226,51 L 227,51 L 227,52 L 227,53 L 227,54 L 228,54 L 228,55 L 229,55 L 229,54 L 229,55 L 229,56 L 229,57 L 229,58 L 229,59 L 229,60 L 229,61 L 230,61 L 230,60 L 230,61 L 230,62 L 230,61 L 230,62 L 231,62 L 231,63 L 231,62 L 232,62 L 232,63 L 233,63 L 233,64 L 234,64 L 233,64 L 233,65 L 234,65 L 235,65 L 235,66 L 236,66 L 235,66 L 236,66 L 236,67 L 237,67 L 237,68 L 238,68 L 239,68 L 240,68 L 241,68 L 241,69 L 241,74 L 241,78 L 241,83 L 237,83 L 236,83 L 233,83 L 228,83 L 226,83 L 225,83 L 225,84 L 224,84 L 224,85 L 224,86 L 223,86 L 223,87 L 222,88 L 222,89 L 221,89 L 221,90 L 222,90 L 221,91 L 221,92 L 221,93 L 220,93 L 220,94 L 220,95 L 221,95 L 221,96 L 221,97 L 220,97 L 219,97 L 219,98 L 218,98 L 219,98 L 218,98 L 218,99 L 218,98 L 218,99 L 218,98 L 217,98 L 217,99 L 217,98 L 217,99 L 217,98 L 217,99 L 216,99 L 216,98 L 216,99 L 215,98 L 215,97 L 214,97 L 215,97 L 215,96 L 214,96 L 214,95 L 213,95 L 213,94 L 212,94 L 211,94 L 211,93 L 210,93 L 209,93 L 209,94 L 209,93 L 209,94 L 208,94 L 207,94 L 207,95 L 206,95 L 206,96 L 205,96 L 205,97 L 204,97 L 204,98 L 204,99 L 203,99 L 204,100 L 204,101 L 204,102 L 204,103 L 203,103 L 203,104 L 203,105 L 204,105 L 203,105 L 203,106 L 204,106 L 204,107 L 205,107 L 205,108 L 204,108 L 204,107 L 203,107 L 203,106 L 202,106 L 201,106 L 200,106 L 199,106 L 199,105 L 198,105 L 198,104 L 198,103 L 198,102 L 197,102 L 196,102 L 196,101 L 195,101 L 195,100 L 194,100 L 194,99 L 193,99 L 193,98 L 192,98 L 193,98 L 192,98 L 191,98 L 191,97 L 191,96 L 192,96 L 192,97 L 192,96 L 193,96 L 194,95 L 193,95 L 193,94 L 194,94 L 193,94 L 194,93 L 194,92 L 195,92 L 195,91 L 194,91 L 194,90 L 194,89 L 194,88 L 193,88 L 193,87 L 193,86 L 192,86 L 192,85 L 192,84 L 191,84 L 191,83 L 191,82 L 191,81 L 192,81 L 191,81 L 191,80 L 190,80 L 190,79 L 190,78 L 191,78 L 190,78 L 190,77 L 190,76 L 191,76 L 191,75 L 191,74 L 191,73 L 192,73 L 191,73 L 191,72 L 191,71 L 190,71 L 190,70 L 190,69 L 189,68 L 189,67 L 189,66 L 188,66 L 188,65 L 187,65 L 187,64 L 187,63 L 188,63 L 188,62 L 188,61 L 188,60 L 188,59 L 187,59 L 186,59 L 186,58 L 185,58 L 184,58 L 183,58 L 182,57 L 182,56 L 181,56 L 180,56 L 179,56 L 178,55 L 178,54 L 178,53 L 178,52 L 177,52 L 177,53 L 176,53 L 175,53 L 174,53 L 173,53 L 172,53 L 171,53 L 171,52 L 170,52 L 169,52 L 169,51 L 170,51 L 170,50 L 170,49 L 170,48 L 170,47 L 169,47 L 169,46 L 169,45 L 168,45 L 168,44 L 167,44 L 167,43 L 167,42 L 167,41 L 167,40 L 167,39 L 166,39 L 167,39 L 167,38 L 167,37 L 167,36 L 166,36 L 166,35 L 165,35 L 165,34 L 164,34 L 163,34 L 163,33 L 162,33 L 162,32 L 161,32 L 161,31 L 160,31 L 160,30 L 160,29 L 159,29 L 159,28 L 158,28 L 158,27 L 159,27 L 160,27 L 161,28 L 161,29 L 162,29 L 163,29 L 164,29 L 165,29 L 166,29 L 167,29 L 168,29 L 168,30 L 169,30 L 169,31 L 169,32 L 170,32 L 170,33 L 170,32 L 171,32 L 172,32 L 172,31 L 172,32 L 172,31 L 172,32 L 173,32 L 174,32 L 173,32 L 174,32 L 175,32 L 174,32 L 174,31 L 174,30 L 174,31 L 175,31 L 175,32 L 176,32 L 176,33 L 177,33 L 178,33 L 178,32 L 178,31 L 179,31 L 180,31 L 181,31 L 181,32 L 181,33 L 182,33 L 182,34 L 182,33 L 182,34 L 183,34 L 183,35 L 183,36 L 184,36 L 185,36 L 185,35 L 186,35 L 186,34 L 186,35 L 186,34 L 187,35 L 188,35 L 188,34 L 187,34 L 188,34 L 188,33 L 187,33 L 187,32 L 187,31 L 187,30 L 188,30 L 189,30 L 190,30 L 190,31 L 190,30 L 190,29 L 191,29 L 191,28 L 191,29 L 191,28 L 192,28 L 193,28 L 193,29 L 193,28 L 193,29 L 194,29 L 195,29 L 195,30 L 195,29 L 195,30 L 196,30 L 196,29 L 197,29 L 198,29 L 198,28 L 198,29 L 199,29 L 200,29 L 199,29 L 199,28 L 200,28 L 200,29 L 200,28 L 201,28 L 201,27 L 202,27 L 201,27 L 202,27 L 203,27 L 204,27 L 204,26 L 205,26 L 204,26 L 204,25 L 205,25 L 206,25 L 205,25 L 206,25 L 207,25 L 207,24 L 208,24 L 207,24 L 207,23 L 208,23 L 209,23 L 209,24 L 210,24 L 210,23 L 210,24 L 211,24 L 211,23 L 211,24 L 212,24 L 212,23 L 213,23 L 213,22 L 212,22 L 213,22 L 212,22 L 213,22 L 213,21 L 214,21 L 214,20 L 215,20 L 216,20 L 215,20 L 216,20 L 216,19 L 217,19 L 216,19 L 216,18 L 217,18 L 217,17 L 217,16 L 217,15 L 216,15 L 216,14 L 215,14 L 216,14 L 217,14 L 218,14 L 219,14 L 220,14 L 221,14 L 222,14 L 222,13 L 223,13 \"},\"pa\": {\"name\": \"Pará\",\"path\": \"M 296,50 L 296,51 L 296,52 L 297,53 L 297,54 L 298,54 L 298,55 L 298,56 L 298,57 L 298,58 L 298,59 L 299,59 L 298,59 L 299,59 L 298,59 L 298,60 L 299,60 L 299,61 L 299,62 L 300,62 L 301,62 L 302,62 L 303,62 L 304,62 L 305,62 L 305,63 L 306,63 L 306,64 L 306,63 L 307,63 L 307,64 L 308,64 L 307,64 L 307,65 L 308,65 L 308,66 L 308,65 L 309,66 L 309,65 L 309,66 L 310,66 L 311,66 L 311,67 L 312,67 L 311,67 L 312,67 L 313,67 L 313,66 L 313,67 L 314,67 L 314,68 L 315,68 L 316,68 L 315,68 L 315,69 L 316,69 L 315,69 L 315,70 L 316,70 L 316,69 L 317,69 L 317,70 L 317,71 L 317,72 L 317,73 L 317,74 L 318,74 L 319,74 L 319,75 L 320,75 L 320,76 L 321,76 L 321,77 L 321,78 L 321,79 L 321,80 L 321,81 L 320,81 L 321,81 L 321,82 L 321,83 L 322,83 L 321,83 L 322,83 L 322,84 L 322,85 L 323,85 L 323,86 L 323,87 L 324,87 L 324,88 L 324,89 L 324,88 L 325,88 L 325,89 L 326,89 L 326,90 L 327,90 L 327,91 L 327,92 L 327,93 L 327,94 L 328,94 L 328,95 L 329,95 L 329,94 L 330,95 L 330,96 L 330,97 L 330,98 L 329,98 L 330,98 L 331,98 L 331,99 L 331,100 L 331,101 L 332,101 L 332,102 L 333,102 L 334,102 L 335,102 L 335,103 L 336,104 L 336,103 L 337,103 L 337,102 L 337,103 L 338,103 L 338,102 L 338,103 L 339,103 L 340,102 L 341,102 L 341,101 L 341,100 L 341,99 L 341,98 L 341,97 L 342,97 L 342,96 L 342,95 L 343,95 L 343,94 L 344,94 L 344,93 L 345,93 L 345,92 L 346,92 L 346,91 L 346,90 L 347,90 L 347,89 L 347,88 L 348,88 L 349,88 L 350,88 L 350,87 L 351,87 L 351,86 L 352,85 L 353,85 L 354,85 L 354,84 L 355,84 L 356,84 L 356,83 L 357,83 L 357,82 L 357,81 L 358,81 L 358,80 L 358,79 L 358,78 L 359,78 L 359,77 L 360,77 L 361,77 L 362,77 L 363,77 L 363,78 L 364,78 L 364,79 L 364,80 L 364,81 L 364,82 L 365,82 L 366,82 L 367,82 L 368,82 L 368,81 L 369,81 L 369,82 L 370,82 L 370,83 L 371,83 L 371,84 L 371,85 L 372,85 L 372,86 L 372,85 L 373,85 L 373,86 L 375,87 L 376,88 L 377,88 L 378,89 L 379,89 L 380,90 L 380,89 L 381,89 L 381,90 L 381,89 L 382,89 L 382,90 L 383,90 L 384,90 L 385,90 L 386,90 L 387,90 L 387,91 L 387,92 L 386,92 L 386,93 L 389,94 L 390,95 L 392,96 L 393,96 L 392,96 L 393,96 L 393,95 L 394,95 L 394,94 L 395,94 L 394,94 L 394,95 L 395,95 L 394,96 L 395,96 L 395,95 L 395,94 L 395,95 L 396,95 L 396,94 L 396,95 L 396,94 L 397,94 L 397,95 L 397,94 L 397,95 L 398,95 L 398,96 L 397,96 L 398,96 L 397,96 L 398,96 L 398,95 L 398,94 L 398,95 L 399,95 L 400,95 L 401,95 L 400,95 L 400,96 L 400,95 L 401,95 L 401,96 L 401,95 L 402,95 L 403,95 L 402,95 L 403,95 L 404,95 L 404,96 L 403,96 L 404,96 L 404,97 L 404,96 L 404,97 L 404,96 L 405,96 L 404,96 L 405,96 L 405,97 L 405,96 L 405,97 L 406,97 L 405,97 L 406,97 L 406,96 L 406,97 L 406,98 L 406,97 L 406,98 L 406,97 L 406,96 L 407,96 L 407,97 L 407,98 L 408,98 L 408,97 L 408,96 L 409,96 L 409,97 L 409,98 L 409,99 L 409,98 L 410,98 L 410,99 L 410,98 L 411,98 L 411,97 L 411,98 L 411,97 L 411,98 L 412,98 L 412,99 L 411,99 L 411,98 L 411,99 L 412,99 L 411,99 L 412,99 L 411,99 L 411,100 L 411,99 L 411,100 L 412,100 L 412,99 L 413,99 L 412,99 L 413,99 L 412,99 L 413,99 L 413,100 L 413,99 L 414,99 L 414,98 L 414,99 L 414,100 L 413,100 L 414,100 L 414,101 L 415,101 L 414,101 L 415,101 L 415,100 L 414,100 L 415,100 L 415,101 L 415,100 L 416,100 L 415,100 L 416,100 L 416,101 L 415,101 L 416,101 L 416,100 L 417,100 L 416,100 L 417,100 L 416,100 L 417,100 L 417,99 L 417,100 L 417,99 L 418,99 L 417,99 L 417,100 L 417,101 L 417,102 L 416,103 L 417,103 L 417,102 L 417,101 L 418,101 L 418,100 L 418,101 L 418,102 L 417,102 L 418,102 L 418,101 L 418,102 L 418,101 L 419,101 L 419,102 L 419,103 L 418,103 L 418,104 L 419,104 L 419,105 L 419,106 L 418,106 L 418,107 L 418,108 L 418,109 L 418,110 L 417,110 L 416,110 L 416,111 L 416,112 L 416,111 L 417,111 L 417,112 L 417,113 L 417,114 L 417,115 L 417,116 L 416,116 L 416,117 L 415,117 L 415,118 L 415,117 L 414,118 L 415,118 L 414,118 L 414,119 L 414,120 L 414,119 L 415,119 L 415,120 L 414,120 L 414,121 L 414,122 L 413,122 L 414,122 L 413,122 L 413,123 L 412,123 L 412,124 L 411,124 L 412,124 L 411,124 L 411,125 L 412,125 L 411,125 L 412,125 L 412,126 L 411,126 L 412,126 L 411,126 L 411,127 L 411,126 L 411,127 L 411,128 L 411,127 L 411,128 L 411,129 L 411,130 L 410,130 L 411,130 L 410,130 L 410,131 L 409,131 L 409,132 L 409,131 L 409,132 L 409,133 L 408,133 L 407,133 L 407,134 L 407,135 L 407,134 L 407,135 L 407,136 L 406,136 L 406,137 L 406,138 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 405,140 L 404,140 L 405,140 L 405,141 L 404,141 L 404,142 L 403,142 L 403,143 L 403,142 L 403,143 L 402,143 L 402,144 L 402,145 L 401,145 L 401,146 L 400,146 L 400,147 L 399,147 L 399,148 L 399,149 L 398,149 L 398,150 L 397,150 L 397,151 L 397,150 L 396,150 L 395,150 L 395,151 L 392,153 L 391,154 L 390,155 L 388,156 L 387,157 L 386,157 L 386,158 L 385,159 L 384,159 L 382,161 L 383,161 L 384,161 L 384,162 L 385,162 L 386,162 L 387,162 L 387,161 L 387,162 L 388,162 L 388,163 L 389,163 L 389,164 L 390,164 L 391,164 L 391,165 L 390,165 L 390,166 L 389,166 L 388,166 L 388,167 L 388,168 L 389,168 L 389,169 L 388,169 L 388,170 L 388,171 L 389,171 L 388,171 L 388,172 L 387,172 L 386,172 L 386,173 L 387,173 L 387,174 L 387,175 L 386,175 L 385,175 L 385,176 L 384,176 L 384,177 L 383,177 L 384,177 L 383,177 L 383,178 L 383,179 L 382,179 L 382,180 L 381,180 L 380,180 L 380,181 L 379,181 L 378,181 L 377,182 L 376,182 L 376,183 L 376,184 L 376,185 L 376,186 L 376,187 L 376,188 L 375,188 L 375,189 L 374,189 L 374,190 L 373,191 L 373,192 L 374,192 L 374,193 L 375,194 L 376,195 L 377,195 L 376,195 L 376,196 L 376,197 L 376,198 L 376,199 L 376,200 L 376,201 L 375,201 L 375,202 L 375,203 L 374,203 L 374,204 L 373,204 L 373,205 L 373,206 L 372,206 L 372,207 L 372,208 L 371,208 L 371,209 L 370,209 L 369,210 L 368,210 L 368,211 L 367,211 L 367,212 L 367,213 L 366,213 L 366,214 L 365,214 L 365,215 L 364,215 L 364,216 L 364,217 L 363,218 L 363,219 L 363,220 L 363,221 L 362,221 L 362,222 L 362,223 L 360,223 L 358,223 L 355,223 L 353,223 L 350,223 L 347,222 L 337,222 L 332,221 L 328,221 L 323,221 L 321,221 L 315,220 L 314,220 L 310,220 L 309,220 L 308,220 L 305,219 L 300,219 L 289,218 L 288,218 L 287,218 L 284,218 L 279,217 L 272,217 L 271,217 L 270,217 L 270,216 L 270,215 L 269,215 L 268,215 L 267,215 L 267,214 L 266,214 L 267,214 L 266,214 L 266,213 L 267,213 L 266,213 L 266,212 L 265,212 L 265,211 L 264,211 L 264,210 L 263,210 L 262,210 L 261,210 L 261,209 L 262,209 L 261,209 L 261,208 L 260,208 L 259,208 L 259,207 L 259,206 L 258,206 L 258,205 L 258,204 L 258,203 L 258,202 L 258,201 L 258,200 L 257,200 L 257,199 L 256,198 L 256,197 L 256,196 L 255,195 L 255,194 L 255,193 L 254,193 L 254,192 L 254,191 L 253,191 L 253,190 L 253,189 L 252,189 L 251,189 L 251,188 L 251,187 L 251,186 L 250,186 L 250,185 L 249,185 L 249,184 L 249,183 L 248,183 L 247,183 L 247,182 L 247,181 L 247,180 L 247,179 L 247,178 L 248,178 L 249,178 L 249,177 L 250,177 L 250,176 L 253,170 L 255,165 L 255,164 L 257,160 L 258,159 L 259,156 L 260,154 L 261,153 L 264,146 L 264,145 L 266,142 L 266,141 L 267,139 L 268,137 L 268,136 L 269,135 L 270,133 L 270,132 L 271,132 L 271,131 L 271,130 L 272,128 L 273,127 L 273,126 L 273,125 L 274,123 L 275,121 L 276,121 L 276,120 L 275,120 L 275,119 L 276,118 L 277,118 L 278,117 L 279,117 L 279,116 L 279,115 L 280,115 L 279,115 L 278,115 L 277,116 L 276,116 L 276,117 L 275,117 L 275,116 L 275,117 L 274,117 L 274,116 L 273,116 L 273,117 L 272,117 L 271,117 L 270,116 L 271,116 L 271,115 L 271,114 L 270,114 L 270,115 L 269,115 L 269,114 L 268,114 L 268,113 L 267,113 L 267,112 L 266,112 L 266,111 L 265,111 L 265,110 L 264,110 L 263,110 L 262,110 L 262,111 L 262,110 L 261,110 L 261,109 L 260,109 L 259,109 L 259,108 L 258,108 L 258,109 L 258,108 L 258,109 L 258,108 L 257,108 L 258,108 L 257,108 L 257,107 L 256,107 L 256,106 L 255,106 L 254,106 L 254,105 L 253,105 L 254,105 L 254,104 L 254,103 L 254,102 L 253,102 L 252,102 L 252,103 L 251,103 L 251,104 L 251,103 L 250,103 L 250,102 L 249,102 L 248,102 L 248,101 L 247,101 L 248,100 L 247,100 L 248,100 L 247,100 L 247,99 L 247,98 L 247,99 L 247,98 L 246,98 L 246,97 L 245,97 L 245,96 L 244,96 L 243,96 L 244,95 L 243,95 L 243,94 L 243,93 L 243,92 L 242,92 L 242,91 L 241,91 L 241,90 L 241,89 L 241,88 L 241,87 L 241,86 L 241,83 L 241,78 L 241,76 L 241,74 L 241,69 L 241,70 L 242,70 L 243,70 L 243,69 L 243,68 L 244,68 L 244,69 L 244,68 L 244,69 L 245,68 L 245,69 L 245,68 L 246,68 L 246,69 L 247,68 L 246,68 L 247,68 L 247,67 L 246,67 L 246,66 L 247,66 L 248,66 L 248,65 L 249,65 L 249,64 L 249,65 L 250,65 L 251,65 L 252,66 L 252,65 L 253,65 L 254,65 L 253,65 L 254,65 L 254,64 L 253,64 L 253,63 L 254,63 L 254,64 L 255,63 L 256,63 L 256,62 L 257,62 L 257,63 L 257,62 L 258,62 L 258,63 L 259,63 L 260,63 L 260,62 L 260,61 L 261,61 L 261,60 L 262,60 L 262,59 L 263,59 L 264,59 L 263,59 L 264,59 L 265,59 L 265,58 L 266,58 L 266,59 L 267,59 L 267,60 L 268,60 L 269,60 L 270,60 L 270,61 L 270,60 L 271,60 L 272,60 L 272,59 L 273,59 L 273,60 L 274,60 L 274,59 L 275,59 L 275,60 L 276,60 L 276,59 L 277,59 L 277,60 L 278,60 L 279,60 L 279,61 L 280,61 L 281,61 L 282,61 L 282,60 L 283,60 L 282,60 L 282,59 L 282,58 L 283,58 L 282,58 L 283,58 L 282,58 L 282,57 L 282,58 L 282,57 L 281,57 L 282,57 L 281,57 L 281,56 L 280,56 L 281,56 L 281,55 L 280,55 L 279,55 L 280,54 L 280,53 L 280,54 L 281,54 L 281,53 L 281,52 L 281,53 L 281,52 L 282,52 L 281,52 L 281,51 L 282,51 L 283,51 L 283,52 L 284,52 L 285,52 L 284,52 L 284,53 L 285,53 L 286,53 L 287,53 L 287,52 L 287,53 L 288,53 L 288,52 L 289,52 L 290,53 L 290,52 L 291,51 L 292,52 L 292,51 L 293,51 L 294,51 L 295,50 L 296,50 \"},\"ap\": {\"name\": \"Amapá\",\"path\": \"M 348,31 L 348,32 L 349,32 L 350,32 L 350,33 L 350,34 L 350,35 L 349,35 L 350,35 L 349,35 L 350,35 L 350,36 L 350,37 L 350,38 L 349,38 L 350,39 L 350,40 L 350,41 L 350,42 L 350,43 L 351,43 L 351,44 L 351,45 L 351,46 L 352,46 L 352,47 L 351,47 L 352,47 L 352,48 L 352,49 L 353,49 L 353,50 L 353,51 L 353,52 L 353,51 L 353,52 L 354,52 L 354,53 L 354,54 L 355,54 L 355,55 L 355,56 L 355,57 L 355,56 L 356,56 L 357,56 L 358,56 L 359,56 L 359,57 L 360,57 L 360,58 L 360,59 L 361,59 L 361,60 L 361,61 L 362,61 L 363,61 L 363,62 L 364,62 L 365,62 L 365,63 L 366,63 L 366,64 L 366,65 L 366,66 L 366,67 L 366,68 L 366,69 L 366,70 L 366,71 L 365,71 L 365,72 L 365,73 L 365,74 L 364,74 L 364,75 L 363,75 L 363,76 L 363,77 L 362,77 L 361,77 L 360,77 L 359,77 L 359,78 L 358,78 L 358,79 L 358,80 L 358,81 L 357,81 L 357,82 L 357,83 L 356,83 L 356,84 L 355,84 L 354,84 L 354,85 L 353,85 L 352,85 L 351,86 L 351,87 L 350,87 L 350,88 L 349,88 L 348,88 L 347,88 L 347,89 L 347,90 L 346,90 L 346,91 L 346,92 L 345,92 L 345,93 L 344,93 L 344,94 L 343,94 L 343,95 L 342,95 L 342,96 L 342,97 L 341,97 L 341,98 L 341,99 L 341,100 L 341,101 L 341,102 L 340,102 L 339,103 L 338,103 L 338,102 L 338,103 L 337,103 L 337,102 L 337,103 L 336,103 L 336,104 L 335,103 L 335,102 L 334,102 L 333,102 L 332,102 L 332,101 L 331,101 L 331,100 L 331,99 L 331,98 L 330,98 L 329,98 L 330,98 L 330,97 L 330,96 L 330,95 L 329,94 L 329,95 L 328,95 L 328,94 L 327,94 L 327,93 L 327,92 L 327,91 L 327,90 L 326,90 L 326,89 L 325,89 L 325,88 L 324,88 L 324,89 L 324,88 L 324,87 L 323,87 L 323,86 L 323,85 L 322,85 L 322,84 L 322,83 L 321,83 L 322,83 L 321,83 L 321,82 L 321,81 L 320,81 L 321,81 L 321,80 L 321,79 L 321,78 L 321,77 L 321,76 L 320,76 L 320,75 L 319,75 L 319,74 L 318,74 L 317,74 L 317,73 L 317,72 L 317,71 L 317,70 L 317,69 L 316,69 L 316,70 L 315,70 L 315,69 L 316,69 L 315,69 L 315,68 L 316,68 L 315,68 L 314,68 L 314,67 L 313,67 L 313,66 L 313,67 L 312,67 L 311,67 L 312,67 L 311,67 L 311,66 L 310,66 L 309,66 L 309,65 L 309,66 L 308,65 L 308,66 L 308,65 L 307,65 L 307,64 L 308,64 L 307,64 L 307,63 L 306,63 L 306,64 L 306,63 L 305,63 L 305,62 L 304,62 L 303,62 L 302,62 L 301,62 L 300,62 L 299,62 L 299,61 L 299,60 L 298,60 L 298,59 L 299,59 L 298,59 L 299,59 L 298,59 L 298,58 L 298,57 L 298,56 L 298,55 L 298,54 L 297,54 L 297,53 L 298,52 L 299,52 L 299,53 L 299,54 L 300,54 L 301,54 L 303,56 L 306,56 L 309,55 L 310,55 L 310,54 L 310,55 L 311,55 L 311,54 L 312,54 L 311,54 L 312,54 L 312,53 L 313,53 L 312,54 L 313,54 L 312,54 L 313,54 L 314,54 L 314,55 L 315,55 L 316,55 L 317,55 L 316,55 L 317,55 L 317,54 L 318,54 L 319,54 L 319,55 L 320,55 L 319,55 L 319,56 L 320,56 L 321,56 L 322,56 L 323,56 L 324,56 L 325,56 L 324,55 L 325,55 L 324,55 L 325,55 L 326,54 L 327,54 L 327,53 L 328,53 L 328,52 L 329,52 L 329,51 L 329,50 L 329,49 L 330,49 L 330,48 L 330,47 L 331,47 L 331,46 L 332,46 L 331,46 L 331,45 L 332,45 L 332,44 L 332,43 L 332,42 L 333,42 L 333,41 L 334,41 L 334,40 L 335,40 L 335,39 L 335,38 L 336,38 L 335,38 L 336,38 L 335,38 L 336,38 L 336,37 L 336,36 L 337,36 L 337,35 L 337,34 L 337,35 L 338,35 L 338,34 L 338,33 L 339,33 L 339,32 L 340,32 L 340,31 L 341,31 L 341,30 L 342,30 L 342,29 L 342,28 L 343,27 L 343,26 L 343,25 L 344,25 L 345,25 L 345,26 L 346,26 L 346,27 L 347,27 L 347,28 L 348,29 L 348,30 L 348,31 \"},\"to\": {\"name\": \"Tocantins\",\"path\": \"M 387,158 L 388,158 L 388,159 L 389,159 L 390,159 L 390,160 L 391,160 L 392,160 L 392,159 L 393,159 L 394,159 L 394,160 L 394,161 L 395,161 L 396,161 L 396,162 L 397,162 L 398,162 L 398,163 L 398,162 L 399,162 L 399,163 L 400,163 L 400,164 L 400,165 L 400,166 L 400,167 L 400,168 L 400,169 L 400,170 L 400,171 L 400,172 L 401,172 L 401,173 L 401,174 L 401,175 L 400,176 L 401,176 L 401,177 L 400,177 L 400,178 L 400,179 L 399,179 L 400,179 L 399,180 L 400,180 L 399,181 L 399,182 L 399,183 L 399,184 L 398,184 L 398,185 L 398,186 L 397,186 L 396,186 L 396,187 L 397,187 L 397,188 L 398,188 L 398,187 L 399,187 L 399,188 L 400,188 L 400,189 L 399,189 L 398,190 L 399,190 L 400,191 L 400,192 L 401,192 L 401,193 L 402,193 L 401,193 L 401,192 L 402,192 L 402,193 L 402,194 L 402,193 L 402,194 L 403,194 L 403,195 L 404,195 L 403,195 L 404,195 L 404,196 L 404,197 L 405,197 L 405,198 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 407,198 L 407,197 L 408,197 L 408,198 L 408,197 L 409,197 L 410,197 L 410,196 L 410,197 L 410,196 L 411,196 L 411,197 L 411,196 L 411,197 L 411,196 L 412,196 L 412,197 L 413,197 L 414,198 L 414,199 L 413,199 L 414,199 L 413,199 L 413,200 L 414,200 L 414,201 L 413,201 L 413,202 L 412,202 L 411,202 L 411,203 L 410,203 L 409,203 L 409,204 L 408,204 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 408,206 L 408,207 L 408,208 L 407,208 L 408,208 L 408,209 L 408,210 L 407,210 L 406,210 L 407,210 L 407,211 L 406,211 L 406,212 L 405,212 L 406,212 L 405,212 L 406,213 L 407,213 L 407,212 L 407,213 L 408,213 L 407,213 L 408,213 L 408,214 L 409,214 L 408,214 L 409,214 L 409,215 L 409,216 L 409,217 L 410,217 L 411,217 L 411,218 L 412,218 L 413,218 L 412,219 L 413,219 L 413,220 L 412,220 L 412,221 L 411,221 L 411,222 L 412,222 L 412,223 L 413,223 L 414,223 L 414,224 L 413,224 L 414,224 L 414,225 L 414,226 L 414,227 L 415,227 L 415,228 L 416,228 L 417,228 L 418,228 L 419,228 L 420,228 L 420,229 L 421,229 L 422,229 L 423,229 L 424,229 L 424,228 L 424,229 L 425,229 L 424,229 L 424,230 L 423,230 L 423,231 L 423,232 L 422,232 L 422,233 L 421,233 L 420,233 L 420,234 L 419,234 L 418,234 L 418,235 L 417,235 L 418,235 L 418,236 L 417,236 L 417,237 L 416,237 L 416,238 L 416,239 L 415,239 L 415,240 L 414,240 L 414,241 L 414,242 L 413,242 L 413,243 L 412,243 L 412,244 L 412,245 L 413,245 L 413,246 L 414,246 L 414,247 L 415,247 L 416,247 L 417,247 L 417,248 L 418,248 L 419,248 L 418,248 L 418,249 L 418,248 L 418,249 L 418,248 L 418,249 L 417,248 L 416,248 L 416,249 L 416,250 L 415,250 L 416,250 L 416,251 L 415,251 L 415,252 L 416,252 L 417,252 L 418,252 L 417,252 L 417,253 L 416,253 L 415,253 L 415,254 L 415,255 L 415,256 L 415,257 L 416,257 L 416,258 L 415,258 L 416,258 L 416,259 L 417,259 L 417,260 L 418,260 L 418,261 L 417,261 L 416,261 L 416,262 L 417,262 L 416,262 L 417,262 L 417,263 L 416,263 L 417,263 L 417,264 L 416,264 L 416,265 L 417,265 L 416,265 L 416,266 L 416,267 L 416,266 L 417,266 L 418,266 L 419,266 L 418,266 L 418,267 L 417,267 L 416,267 L 415,267 L 415,266 L 415,265 L 414,265 L 414,266 L 414,267 L 411,267 L 410,267 L 409,267 L 409,268 L 408,268 L 407,268 L 407,269 L 406,269 L 405,269 L 405,270 L 404,270 L 405,270 L 404,270 L 403,270 L 403,271 L 402,271 L 401,271 L 401,270 L 401,271 L 400,271 L 400,270 L 399,270 L 399,269 L 398,269 L 399,269 L 398,269 L 397,269 L 397,270 L 397,271 L 397,272 L 398,272 L 398,273 L 397,273 L 397,274 L 395,272 L 394,272 L 394,271 L 393,271 L 393,272 L 393,271 L 393,272 L 393,271 L 392,271 L 391,271 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,270 L 390,269 L 390,270 L 389,270 L 388,270 L 388,271 L 388,270 L 388,271 L 387,271 L 386,271 L 386,270 L 386,269 L 385,269 L 385,270 L 385,271 L 385,272 L 384,272 L 384,271 L 384,270 L 384,269 L 384,268 L 384,269 L 384,268 L 384,267 L 383,267 L 382,267 L 382,266 L 381,266 L 381,265 L 380,265 L 379,267 L 379,266 L 378,266 L 377,266 L 377,265 L 378,265 L 377,265 L 377,264 L 377,265 L 376,265 L 376,266 L 375,266 L 375,267 L 374,267 L 374,268 L 374,269 L 374,270 L 374,271 L 373,271 L 372,270 L 371,270 L 367,268 L 367,267 L 366,267 L 365,267 L 365,266 L 364,266 L 363,266 L 362,266 L 362,265 L 362,266 L 362,265 L 361,265 L 360,265 L 360,264 L 361,264 L 360,264 L 361,264 L 361,263 L 360,263 L 361,263 L 360,263 L 361,263 L 361,262 L 361,261 L 362,261 L 361,261 L 362,261 L 362,260 L 362,259 L 363,259 L 362,259 L 362,260 L 361,260 L 360,260 L 360,261 L 360,260 L 360,261 L 359,261 L 359,262 L 359,263 L 358,263 L 358,264 L 358,265 L 357,265 L 356,265 L 357,265 L 357,264 L 356,264 L 356,265 L 356,264 L 356,263 L 356,262 L 355,262 L 355,261 L 355,260 L 356,260 L 356,259 L 356,258 L 356,257 L 356,256 L 355,256 L 355,255 L 355,254 L 355,253 L 356,253 L 355,252 L 356,252 L 355,251 L 355,250 L 355,249 L 355,248 L 356,248 L 355,248 L 355,247 L 354,247 L 354,246 L 354,245 L 355,245 L 355,244 L 355,243 L 356,243 L 356,242 L 355,242 L 355,241 L 356,241 L 356,240 L 356,239 L 356,238 L 356,237 L 356,236 L 357,236 L 357,235 L 356,235 L 357,235 L 356,235 L 357,234 L 357,233 L 358,232 L 358,231 L 359,231 L 359,230 L 359,229 L 359,228 L 359,227 L 360,227 L 360,226 L 361,226 L 361,225 L 361,224 L 362,223 L 361,223 L 362,223 L 362,222 L 362,221 L 363,221 L 363,220 L 363,219 L 363,218 L 364,217 L 364,216 L 364,215 L 365,215 L 365,214 L 366,214 L 366,213 L 367,213 L 367,212 L 367,211 L 368,211 L 368,210 L 369,210 L 370,209 L 371,209 L 371,208 L 372,208 L 372,207 L 372,206 L 373,206 L 373,205 L 373,204 L 374,204 L 374,203 L 375,203 L 375,202 L 375,201 L 376,201 L 376,200 L 376,199 L 376,198 L 376,197 L 376,196 L 376,195 L 377,195 L 376,195 L 375,194 L 374,193 L 374,192 L 373,192 L 373,191 L 374,190 L 374,189 L 375,189 L 375,188 L 376,188 L 376,187 L 376,186 L 376,185 L 376,184 L 376,183 L 376,182 L 377,182 L 378,181 L 379,181 L 380,181 L 380,180 L 381,180 L 382,180 L 382,179 L 383,179 L 383,178 L 383,177 L 384,177 L 383,177 L 384,177 L 384,176 L 385,176 L 385,175 L 386,175 L 387,175 L 387,174 L 387,173 L 386,173 L 386,172 L 387,172 L 388,172 L 388,171 L 389,171 L 388,171 L 388,170 L 388,169 L 389,169 L 389,168 L 388,168 L 388,167 L 388,166 L 389,166 L 390,166 L 390,165 L 391,165 L 391,164 L 390,164 L 389,164 L 389,163 L 388,163 L 388,162 L 387,162 L 387,161 L 387,162 L 386,162 L 385,162 L 384,162 L 384,161 L 383,161 L 382,161 L 383,161 L 383,160 L 384,160 L 384,161 L 384,160 L 385,160 L 385,159 L 386,159 L 386,158 L 387,158 \"},\"ma\": {\"name\": \"Maranhão\",\"path\": \"M 423,101 L 422,101 L 423,101 L 423,102 L 422,102 L 422,103 L 421,103 L 422,103 L 421,103 L 422,103 L 422,102 L 422,103 L 422,104 L 422,103 L 422,104 L 422,103 L 422,104 L 423,104 L 423,103 L 423,104 L 423,103 L 423,104 L 423,105 L 423,104 L 423,103 L 424,103 L 424,102 L 425,102 L 425,103 L 425,102 L 425,103 L 424,103 L 424,104 L 425,104 L 424,104 L 424,105 L 425,105 L 424,105 L 424,106 L 424,105 L 424,106 L 424,105 L 424,106 L 425,106 L 424,106 L 425,106 L 425,105 L 425,106 L 425,105 L 426,105 L 426,104 L 426,105 L 426,104 L 426,105 L 426,104 L 427,104 L 426,104 L 427,105 L 426,105 L 427,105 L 426,105 L 427,105 L 426,105 L 426,106 L 426,105 L 427,105 L 426,105 L 427,105 L 427,104 L 427,105 L 427,106 L 427,105 L 427,106 L 428,106 L 428,105 L 428,104 L 429,104 L 429,105 L 428,105 L 428,106 L 427,106 L 428,106 L 428,107 L 427,107 L 428,107 L 428,108 L 427,108 L 428,108 L 428,107 L 428,106 L 428,107 L 429,107 L 428,107 L 428,106 L 429,106 L 429,107 L 429,106 L 429,105 L 430,105 L 429,105 L 430,105 L 430,106 L 430,105 L 430,106 L 430,107 L 429,107 L 429,108 L 429,107 L 429,108 L 429,107 L 430,107 L 430,108 L 430,107 L 430,108 L 429,108 L 430,109 L 429,109 L 430,109 L 429,109 L 429,110 L 429,111 L 429,110 L 430,110 L 430,109 L 431,109 L 431,108 L 431,107 L 432,107 L 432,108 L 432,107 L 432,108 L 432,107 L 432,108 L 433,108 L 432,108 L 433,107 L 432,107 L 433,107 L 433,106 L 433,107 L 433,106 L 433,107 L 433,108 L 433,107 L 434,107 L 435,107 L 435,108 L 435,107 L 436,107 L 435,107 L 436,107 L 436,106 L 436,107 L 436,106 L 436,107 L 436,106 L 437,106 L 437,107 L 436,107 L 435,107 L 436,107 L 436,108 L 435,108 L 436,108 L 436,109 L 437,109 L 437,108 L 437,109 L 437,108 L 438,108 L 438,109 L 437,109 L 438,109 L 437,109 L 438,109 L 438,108 L 438,109 L 439,109 L 439,108 L 439,109 L 439,110 L 439,109 L 438,109 L 438,110 L 437,110 L 438,110 L 438,111 L 437,111 L 438,111 L 438,110 L 437,110 L 438,110 L 438,111 L 437,111 L 437,112 L 437,111 L 437,112 L 437,111 L 437,112 L 436,112 L 437,112 L 437,111 L 438,111 L 438,112 L 438,111 L 439,111 L 438,111 L 438,112 L 439,112 L 439,111 L 439,112 L 439,111 L 439,110 L 440,111 L 439,111 L 439,112 L 440,112 L 439,112 L 440,112 L 441,112 L 440,112 L 440,113 L 441,113 L 441,114 L 441,113 L 441,114 L 441,115 L 442,115 L 442,114 L 442,115 L 441,115 L 441,116 L 442,116 L 442,117 L 443,117 L 442,117 L 443,117 L 443,118 L 443,119 L 443,120 L 442,120 L 443,121 L 444,121 L 445,121 L 446,121 L 446,120 L 447,120 L 448,120 L 448,121 L 448,120 L 447,120 L 447,121 L 447,120 L 447,121 L 446,121 L 447,121 L 448,121 L 449,121 L 448,122 L 449,122 L 449,121 L 450,121 L 450,120 L 450,119 L 451,119 L 452,119 L 451,119 L 452,119 L 452,118 L 453,118 L 453,117 L 454,117 L 454,118 L 455,119 L 456,119 L 457,119 L 458,119 L 459,119 L 460,120 L 461,120 L 462,120 L 462,121 L 463,121 L 464,121 L 464,122 L 465,122 L 466,122 L 465,122 L 466,122 L 466,123 L 466,122 L 467,122 L 467,123 L 468,123 L 468,124 L 469,124 L 470,124 L 471,124 L 472,124 L 473,124 L 474,124 L 475,124 L 475,125 L 476,125 L 476,124 L 477,124 L 478,124 L 479,125 L 478,125 L 478,126 L 478,127 L 479,127 L 479,128 L 478,128 L 478,129 L 477,129 L 477,130 L 477,131 L 476,131 L 476,132 L 475,132 L 474,132 L 475,132 L 474,132 L 474,133 L 474,134 L 473,134 L 472,134 L 471,134 L 470,134 L 470,135 L 470,134 L 470,135 L 469,135 L 469,134 L 469,135 L 468,135 L 468,136 L 467,136 L 467,137 L 467,138 L 466,138 L 467,138 L 467,139 L 466,139 L 467,139 L 466,139 L 466,140 L 466,141 L 465,141 L 465,142 L 464,142 L 464,143 L 464,144 L 463,144 L 464,144 L 463,144 L 463,145 L 462,145 L 462,146 L 462,147 L 463,147 L 463,148 L 464,148 L 464,149 L 464,150 L 464,151 L 463,151 L 463,152 L 463,153 L 463,154 L 464,154 L 463,154 L 464,154 L 464,155 L 464,156 L 464,157 L 465,157 L 465,158 L 465,159 L 464,159 L 465,160 L 465,161 L 464,161 L 463,161 L 463,162 L 462,162 L 462,163 L 462,164 L 461,164 L 461,165 L 461,166 L 461,167 L 461,168 L 461,169 L 461,170 L 461,171 L 462,171 L 462,172 L 463,172 L 463,173 L 464,173 L 464,174 L 464,175 L 464,174 L 464,175 L 464,176 L 464,177 L 464,178 L 463,178 L 463,179 L 463,180 L 462,180 L 461,180 L 461,181 L 460,181 L 459,181 L 459,180 L 459,181 L 458,181 L 457,181 L 456,181 L 456,182 L 455,182 L 455,181 L 454,181 L 454,180 L 453,180 L 452,180 L 451,180 L 450,180 L 449,180 L 449,181 L 449,180 L 448,180 L 448,181 L 447,181 L 447,182 L 446,181 L 446,182 L 446,183 L 445,183 L 445,184 L 444,184 L 444,185 L 443,185 L 443,186 L 442,186 L 441,186 L 441,187 L 440,187 L 440,188 L 439,188 L 439,189 L 438,189 L 437,189 L 436,189 L 436,190 L 435,190 L 435,191 L 435,190 L 434,190 L 434,191 L 433,191 L 432,191 L 431,191 L 431,192 L 431,191 L 431,192 L 430,192 L 429,192 L 429,193 L 428,193 L 428,194 L 427,194 L 428,194 L 427,194 L 427,195 L 427,196 L 427,197 L 426,197 L 427,197 L 426,197 L 426,198 L 427,198 L 426,198 L 426,199 L 426,200 L 426,201 L 425,201 L 425,202 L 425,203 L 424,203 L 424,204 L 424,205 L 424,206 L 423,206 L 424,206 L 423,206 L 423,207 L 423,208 L 422,208 L 421,208 L 421,209 L 421,210 L 420,210 L 421,210 L 420,210 L 420,211 L 421,211 L 421,212 L 421,213 L 421,214 L 422,214 L 422,215 L 422,216 L 422,217 L 423,217 L 423,218 L 423,219 L 422,220 L 423,220 L 423,221 L 423,222 L 423,223 L 422,223 L 422,224 L 422,225 L 422,226 L 422,227 L 422,228 L 421,228 L 421,229 L 420,229 L 420,228 L 419,228 L 418,228 L 417,228 L 416,228 L 415,228 L 415,227 L 414,227 L 414,226 L 414,225 L 414,224 L 413,224 L 414,224 L 414,223 L 413,223 L 412,223 L 412,222 L 411,222 L 411,221 L 412,221 L 412,220 L 413,220 L 413,219 L 412,219 L 413,218 L 412,218 L 411,218 L 411,217 L 410,217 L 409,217 L 409,216 L 409,215 L 409,214 L 408,214 L 409,214 L 408,214 L 408,213 L 407,213 L 408,213 L 407,213 L 407,212 L 407,213 L 406,213 L 405,212 L 406,212 L 405,212 L 406,212 L 406,211 L 407,211 L 407,210 L 406,210 L 407,210 L 408,210 L 408,209 L 408,208 L 407,208 L 408,208 L 408,207 L 408,206 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 409,205 L 408,205 L 408,204 L 409,204 L 409,203 L 410,203 L 411,203 L 411,202 L 412,202 L 413,202 L 413,201 L 414,201 L 414,200 L 413,200 L 413,199 L 414,199 L 413,199 L 414,199 L 414,198 L 413,197 L 412,197 L 412,196 L 411,196 L 411,197 L 411,196 L 411,197 L 411,196 L 410,196 L 410,197 L 410,196 L 410,197 L 409,197 L 408,197 L 408,198 L 408,197 L 407,197 L 407,198 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 406,199 L 406,198 L 405,198 L 405,197 L 404,197 L 404,196 L 404,195 L 403,195 L 404,195 L 403,195 L 403,194 L 402,194 L 402,193 L 402,194 L 402,193 L 402,192 L 401,192 L 401,193 L 402,193 L 401,193 L 401,192 L 400,192 L 400,191 L 399,190 L 398,190 L 399,189 L 400,189 L 400,188 L 399,188 L 399,187 L 398,187 L 398,188 L 397,188 L 397,187 L 396,187 L 396,186 L 397,186 L 398,186 L 398,185 L 398,184 L 399,184 L 399,183 L 399,182 L 399,181 L 400,180 L 399,180 L 400,179 L 399,179 L 400,179 L 400,178 L 400,177 L 401,177 L 401,176 L 400,176 L 401,175 L 401,174 L 401,173 L 401,172 L 400,172 L 400,171 L 400,170 L 400,169 L 400,168 L 400,167 L 400,166 L 400,165 L 400,164 L 400,163 L 399,163 L 399,162 L 398,162 L 398,163 L 398,162 L 397,162 L 396,162 L 396,161 L 395,161 L 394,161 L 394,160 L 394,159 L 393,159 L 392,159 L 392,160 L 391,160 L 390,160 L 390,159 L 389,159 L 388,159 L 388,158 L 387,158 L 386,158 L 386,159 L 385,159 L 385,160 L 384,160 L 384,161 L 384,160 L 383,160 L 383,161 L 382,161 L 384,159 L 385,159 L 386,158 L 386,157 L 387,157 L 388,156 L 390,155 L 391,154 L 392,153 L 394,152 L 395,151 L 395,150 L 396,150 L 397,150 L 397,151 L 397,150 L 398,150 L 398,149 L 399,149 L 399,148 L 399,147 L 400,147 L 400,146 L 401,146 L 401,145 L 402,145 L 402,144 L 402,143 L 403,143 L 403,142 L 403,143 L 403,142 L 404,142 L 404,141 L 405,141 L 405,140 L 404,140 L 405,140 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 405,139 L 406,139 L 406,138 L 406,137 L 406,136 L 407,136 L 407,135 L 407,134 L 407,135 L 407,134 L 407,133 L 408,133 L 409,133 L 409,132 L 409,131 L 409,132 L 409,131 L 410,131 L 410,130 L 411,130 L 410,130 L 411,130 L 411,129 L 411,128 L 411,127 L 411,128 L 411,127 L 411,126 L 411,127 L 411,126 L 412,126 L 411,126 L 412,126 L 412,125 L 411,125 L 412,125 L 411,125 L 411,124 L 412,124 L 411,124 L 412,124 L 412,123 L 413,123 L 413,122 L 414,122 L 413,122 L 414,122 L 414,121 L 414,120 L 415,120 L 415,119 L 414,119 L 414,120 L 414,119 L 414,118 L 415,118 L 414,118 L 415,117 L 415,118 L 415,117 L 416,117 L 416,116 L 417,116 L 417,115 L 417,114 L 417,113 L 417,112 L 417,111 L 416,111 L 416,112 L 416,111 L 416,110 L 417,110 L 418,110 L 418,109 L 418,108 L 418,107 L 418,106 L 419,106 L 419,105 L 419,104 L 418,104 L 418,103 L 419,103 L 419,102 L 419,103 L 419,102 L 420,102 L 420,103 L 420,102 L 420,101 L 420,102 L 420,101 L 420,102 L 420,101 L 421,101 L 421,102 L 421,101 L 421,102 L 420,102 L 421,102 L 420,102 L 421,102 L 420,102 L 420,103 L 420,102 L 421,103 L 421,102 L 421,103 L 421,104 L 421,103 L 421,102 L 422,102 L 422,101 L 423,101 \"},\"pi\": {\"name\": \"Piauí\",\"path\": \"M 479,125 L 480,125 L 480,126 L 481,126 L 481,127 L 482,127 L 483,127 L 484,127 L 485,127 L 485,128 L 486,128 L 486,129 L 486,130 L 485,130 L 485,131 L 485,132 L 484,132 L 484,133 L 484,134 L 485,134 L 485,135 L 486,135 L 485,135 L 485,136 L 485,137 L 485,138 L 486,138 L 487,138 L 486,138 L 486,139 L 486,140 L 486,141 L 487,141 L 487,142 L 486,142 L 487,142 L 486,142 L 486,143 L 487,142 L 487,143 L 488,143 L 488,142 L 488,143 L 488,144 L 489,144 L 488,145 L 488,146 L 488,147 L 488,148 L 487,148 L 487,149 L 487,150 L 486,150 L 487,150 L 487,151 L 487,152 L 486,152 L 486,153 L 487,153 L 486,153 L 486,154 L 487,154 L 486,154 L 487,154 L 487,155 L 488,155 L 488,156 L 488,157 L 489,157 L 490,157 L 490,158 L 491,158 L 491,159 L 491,160 L 491,161 L 491,162 L 491,163 L 491,164 L 491,165 L 491,166 L 491,167 L 491,168 L 491,169 L 492,169 L 492,170 L 491,170 L 491,171 L 492,171 L 492,172 L 492,173 L 492,174 L 493,174 L 493,175 L 493,176 L 493,177 L 493,178 L 494,178 L 494,179 L 495,179 L 495,180 L 496,180 L 497,180 L 497,181 L 498,181 L 499,181 L 498,181 L 498,182 L 498,183 L 498,184 L 498,185 L 497,185 L 497,186 L 497,187 L 497,188 L 496,188 L 496,189 L 495,190 L 494,190 L 494,191 L 494,192 L 495,192 L 495,193 L 495,194 L 494,194 L 495,195 L 496,195 L 496,196 L 496,197 L 496,198 L 495,199 L 496,199 L 496,200 L 495,200 L 494,200 L 494,201 L 493,201 L 493,202 L 492,202 L 492,203 L 491,203 L 491,204 L 490,204 L 490,203 L 490,204 L 489,204 L 489,205 L 488,205 L 488,206 L 487,206 L 487,207 L 486,207 L 485,207 L 485,208 L 484,208 L 484,209 L 483,209 L 483,210 L 482,211 L 481,211 L 481,212 L 480,212 L 480,213 L 479,213 L 479,214 L 478,214 L 478,215 L 477,215 L 476,215 L 475,215 L 475,216 L 474,216 L 473,216 L 472,216 L 471,216 L 471,217 L 470,217 L 470,218 L 469,218 L 469,219 L 468,219 L 467,219 L 466,219 L 466,220 L 465,220 L 464,220 L 464,219 L 463,219 L 463,218 L 463,217 L 462,217 L 461,217 L 460,217 L 459,217 L 458,217 L 458,218 L 458,217 L 457,217 L 457,216 L 456,216 L 456,215 L 455,215 L 455,216 L 454,216 L 453,217 L 452,217 L 452,218 L 451,218 L 451,219 L 450,219 L 450,220 L 450,221 L 451,221 L 451,222 L 452,223 L 453,223 L 453,224 L 452,224 L 452,225 L 453,225 L 453,226 L 452,226 L 452,227 L 451,227 L 451,228 L 451,229 L 450,229 L 450,230 L 450,231 L 449,231 L 449,232 L 448,232 L 448,231 L 448,232 L 447,233 L 447,234 L 446,234 L 445,234 L 444,234 L 444,233 L 443,233 L 443,234 L 442,234 L 441,234 L 441,235 L 441,234 L 440,234 L 440,235 L 439,235 L 439,236 L 438,236 L 438,237 L 437,237 L 437,238 L 436,238 L 435,238 L 434,238 L 434,237 L 433,237 L 432,237 L 431,237 L 431,236 L 430,236 L 429,236 L 429,235 L 428,235 L 428,234 L 428,233 L 428,232 L 429,232 L 428,232 L 428,231 L 428,230 L 427,230 L 427,229 L 426,229 L 426,228 L 426,227 L 425,227 L 425,228 L 424,228 L 424,229 L 423,229 L 422,229 L 421,229 L 421,228 L 422,228 L 422,227 L 422,226 L 422,225 L 422,224 L 422,223 L 423,223 L 423,222 L 423,221 L 423,220 L 422,220 L 423,219 L 423,218 L 423,217 L 422,217 L 422,216 L 422,215 L 422,214 L 421,214 L 421,213 L 421,212 L 421,211 L 420,211 L 420,210 L 421,210 L 420,210 L 421,210 L 421,209 L 421,208 L 422,208 L 423,208 L 423,207 L 423,206 L 424,206 L 423,206 L 424,206 L 424,205 L 424,204 L 424,203 L 425,203 L 425,202 L 425,201 L 426,201 L 426,200 L 426,199 L 426,198 L 427,198 L 426,198 L 426,197 L 427,197 L 426,197 L 427,197 L 427,196 L 427,195 L 427,194 L 428,194 L 427,194 L 428,194 L 428,193 L 429,193 L 429,192 L 430,192 L 431,192 L 431,191 L 431,192 L 431,191 L 432,191 L 433,191 L 434,191 L 434,190 L 435,190 L 435,191 L 435,190 L 436,190 L 436,189 L 437,189 L 438,189 L 439,189 L 439,188 L 440,188 L 440,187 L 441,187 L 441,186 L 442,186 L 443,186 L 443,185 L 444,185 L 444,184 L 445,184 L 445,183 L 446,183 L 446,182 L 446,181 L 447,182 L 447,181 L 448,181 L 448,180 L 449,180 L 449,181 L 449,180 L 450,180 L 451,180 L 452,180 L 453,180 L 454,180 L 454,181 L 455,181 L 455,182 L 456,182 L 456,181 L 457,181 L 458,181 L 459,181 L 459,180 L 459,181 L 460,181 L 461,181 L 461,180 L 462,180 L 463,180 L 463,179 L 463,178 L 464,178 L 464,177 L 464,176 L 464,175 L 464,174 L 464,175 L 464,174 L 464,173 L 463,173 L 463,172 L 462,172 L 462,171 L 461,171 L 461,170 L 461,169 L 461,168 L 461,167 L 461,166 L 461,165 L 461,164 L 462,164 L 462,163 L 462,162 L 463,162 L 463,161 L 464,161 L 465,161 L 465,160 L 464,159 L 465,159 L 465,158 L 465,157 L 464,157 L 464,156 L 464,155 L 464,154 L 463,154 L 464,154 L 463,154 L 463,153 L 463,152 L 463,151 L 464,151 L 464,150 L 464,149 L 464,148 L 463,148 L 463,147 L 462,147 L 462,146 L 462,145 L 463,145 L 463,144 L 464,144 L 463,144 L 464,144 L 464,143 L 464,142 L 465,142 L 465,141 L 466,141 L 466,140 L 466,139 L 467,139 L 466,139 L 467,139 L 467,138 L 466,138 L 467,138 L 467,137 L 467,136 L 468,136 L 468,135 L 469,135 L 469,134 L 469,135 L 470,135 L 470,134 L 470,135 L 470,134 L 471,134 L 472,134 L 473,134 L 474,134 L 474,133 L 474,132 L 475,132 L 474,132 L 475,132 L 476,132 L 476,131 L 477,131 L 477,130 L 477,129 L 478,129 L 478,128 L 479,128 L 479,127 L 478,127 L 478,126 L 478,125 L 479,125 \"},\"ce\": {\"name\": \"Ceará\",\"path\": \"M 488,149 L 487,149 L 487,148 L 488,148 L 488,147 L 488,146 L 488,145 L 489,144 L 488,144 L 488,143 L 488,142 L 488,143 L 487,143 L 487,142 L 486,143 L 486,142 L 487,142 L 486,142 L 487,142 L 487,141 L 486,141 L 486,140 L 486,139 L 486,138 L 487,138 L 486,138 L 485,138 L 485,137 L 485,136 L 485,135 L 486,135 L 485,135 L 485,134 L 484,134 L 484,133 L 484,132 L 485,132 L 485,131 L 485,130 L 486,130 L 486,129 L 486,128 L 485,128 L 485,127 L 486,127 L 487,127 L 488,127 L 489,127 L 490,127 L 490,126 L 491,126 L 492,126 L 492,127 L 492,126 L 493,126 L 494,126 L 495,126 L 496,126 L 496,125 L 497,125 L 498,125 L 498,126 L 499,126 L 499,125 L 500,125 L 500,126 L 500,125 L 500,126 L 501,126 L 502,126 L 503,126 L 504,126 L 503,126 L 504,126 L 505,126 L 505,127 L 506,127 L 507,127 L 507,128 L 508,128 L 509,128 L 509,129 L 510,129 L 510,130 L 511,130 L 512,130 L 512,131 L 513,131 L 514,131 L 514,132 L 515,132 L 515,133 L 516,133 L 517,134 L 518,134 L 519,134 L 519,135 L 520,135 L 520,136 L 521,136 L 521,137 L 522,137 L 522,138 L 523,138 L 524,138 L 525,138 L 525,139 L 526,139 L 526,140 L 527,140 L 527,141 L 528,141 L 528,142 L 529,142 L 529,143 L 530,143 L 530,144 L 530,145 L 531,145 L 531,146 L 532,146 L 533,146 L 533,147 L 534,147 L 534,148 L 535,148 L 535,149 L 536,149 L 536,150 L 537,150 L 537,151 L 538,151 L 539,151 L 540,151 L 540,152 L 541,152 L 542,153 L 542,154 L 541,154 L 539,154 L 538,155 L 537,155 L 536,155 L 536,156 L 536,157 L 535,157 L 535,158 L 535,159 L 535,160 L 534,160 L 535,160 L 534,160 L 534,161 L 533,161 L 534,161 L 534,162 L 533,162 L 533,163 L 532,163 L 532,164 L 531,164 L 531,165 L 530,165 L 530,166 L 531,166 L 531,167 L 530,167 L 530,168 L 530,169 L 529,169 L 529,170 L 528,170 L 528,171 L 527,171 L 526,171 L 525,171 L 525,172 L 525,173 L 524,173 L 524,174 L 523,174 L 524,174 L 523,174 L 524,175 L 523,175 L 524,175 L 523,175 L 524,175 L 524,176 L 524,177 L 523,177 L 523,178 L 523,179 L 522,179 L 523,179 L 522,179 L 522,180 L 523,180 L 523,181 L 522,181 L 522,182 L 521,182 L 521,183 L 521,184 L 522,184 L 522,185 L 522,186 L 523,186 L 523,187 L 524,187 L 524,188 L 524,189 L 523,189 L 523,190 L 523,191 L 522,191 L 523,191 L 522,191 L 523,191 L 522,191 L 522,192 L 522,193 L 522,192 L 522,193 L 521,193 L 520,193 L 520,194 L 519,194 L 518,194 L 518,195 L 519,195 L 518,195 L 518,196 L 518,195 L 517,195 L 517,196 L 516,196 L 516,195 L 516,194 L 515,194 L 515,193 L 514,193 L 514,194 L 514,193 L 513,193 L 513,192 L 512,192 L 511,192 L 511,191 L 511,190 L 510,190 L 510,191 L 510,190 L 509,190 L 509,189 L 508,189 L 508,188 L 507,188 L 506,188 L 505,188 L 505,189 L 505,188 L 505,189 L 504,189 L 503,189 L 502,189 L 501,189 L 501,188 L 500,188 L 499,188 L 499,189 L 498,189 L 497,189 L 497,188 L 496,188 L 497,188 L 497,187 L 497,186 L 497,185 L 498,185 L 498,184 L 498,183 L 498,182 L 498,181 L 499,181 L 498,181 L 497,181 L 497,180 L 496,180 L 495,180 L 495,179 L 494,179 L 494,178 L 493,178 L 493,177 L 493,176 L 493,175 L 493,174 L 492,174 L 492,173 L 492,172 L 492,171 L 491,171 L 491,170 L 492,170 L 492,169 L 491,169 L 491,168 L 491,167 L 491,166 L 491,165 L 491,164 L 491,163 L 491,162 L 491,161 L 491,160 L 491,159 L 491,158 L 490,158 L 490,157 L 489,157 L 488,157 L 488,156 L 488,155 L 487,155 L 487,154 L 486,154 L 487,154 L 486,154 L 486,153 L 487,153 L 486,153 L 486,152 L 487,152 L 487,151 L 487,150 L 486,150 L 487,150 L 487,149 L 488,149 \"},\"rn\": {\"name\": \"Rio Grande do Norte\",\"path\": \"M 542,154 L 543,154 L 543,155 L 544,155 L 545,155 L 546,155 L 547,155 L 547,156 L 548,156 L 548,157 L 549,157 L 550,157 L 551,157 L 552,157 L 553,157 L 554,157 L 555,157 L 556,157 L 557,157 L 558,157 L 559,157 L 560,157 L 561,157 L 562,157 L 563,157 L 564,157 L 564,158 L 565,158 L 566,158 L 567,158 L 567,159 L 568,159 L 568,160 L 568,161 L 569,161 L 569,162 L 569,163 L 570,163 L 570,164 L 570,165 L 570,166 L 571,166 L 570,166 L 571,166 L 571,167 L 571,168 L 571,169 L 572,169 L 572,170 L 572,171 L 572,172 L 572,173 L 573,173 L 573,174 L 573,175 L 574,175 L 574,176 L 574,177 L 573,177 L 572,177 L 571,177 L 571,178 L 570,177 L 569,177 L 568,177 L 567,177 L 566,177 L 566,176 L 566,177 L 565,177 L 565,176 L 564,176 L 563,176 L 563,177 L 562,177 L 561,177 L 560,177 L 559,177 L 559,176 L 558,176 L 557,176 L 556,176 L 556,175 L 556,176 L 556,175 L 555,175 L 556,175 L 556,174 L 555,174 L 554,174 L 554,175 L 553,175 L 552,175 L 552,176 L 552,177 L 553,177 L 553,178 L 553,179 L 553,178 L 552,178 L 552,179 L 552,180 L 552,181 L 552,182 L 551,182 L 552,182 L 551,182 L 552,182 L 551,182 L 551,183 L 550,183 L 550,184 L 549,184 L 549,183 L 549,182 L 549,181 L 549,182 L 549,181 L 548,180 L 547,180 L 546,181 L 546,180 L 545,180 L 544,180 L 544,181 L 543,181 L 542,181 L 542,180 L 541,180 L 542,180 L 541,179 L 541,180 L 540,180 L 539,180 L 539,179 L 539,178 L 539,177 L 540,177 L 540,176 L 540,175 L 540,174 L 541,174 L 542,174 L 542,173 L 543,173 L 543,172 L 543,171 L 543,170 L 542,170 L 542,171 L 541,171 L 540,171 L 539,171 L 539,172 L 538,172 L 539,172 L 538,172 L 537,172 L 537,173 L 536,173 L 536,172 L 535,172 L 535,173 L 535,174 L 534,174 L 534,175 L 533,175 L 533,176 L 532,176 L 532,175 L 532,176 L 531,176 L 530,176 L 530,177 L 529,177 L 528,177 L 527,177 L 527,176 L 526,176 L 525,176 L 525,175 L 525,174 L 525,175 L 524,175 L 523,174 L 524,174 L 523,174 L 524,174 L 524,173 L 525,173 L 525,172 L 525,171 L 526,171 L 527,171 L 528,171 L 528,170 L 529,170 L 529,169 L 530,169 L 530,168 L 530,167 L 531,167 L 531,166 L 530,166 L 530,165 L 531,165 L 531,164 L 532,164 L 532,163 L 533,163 L 533,162 L 534,162 L 534,161 L 533,161 L 534,161 L 534,160 L 535,160 L 534,160 L 535,160 L 535,159 L 535,158 L 535,157 L 536,157 L 536,156 L 536,155 L 537,155 L 538,155 L 539,154 L 541,154 L 542,154 \"},\"pb\": {\"name\": \"Paraíba\",\"path\": \"M 542,170 L 543,170 L 543,171 L 543,172 L 543,173 L 542,173 L 542,174 L 541,174 L 540,174 L 540,175 L 540,176 L 540,177 L 539,177 L 539,178 L 539,179 L 539,180 L 540,180 L 541,180 L 541,179 L 542,180 L 541,180 L 542,180 L 542,181 L 543,181 L 544,181 L 544,180 L 545,180 L 546,180 L 546,181 L 547,180 L 548,180 L 548,181 L 549,181 L 549,182 L 549,181 L 549,182 L 549,183 L 549,184 L 550,184 L 550,183 L 551,183 L 551,182 L 552,182 L 551,182 L 552,182 L 551,182 L 552,182 L 552,181 L 552,180 L 552,179 L 552,178 L 553,178 L 553,179 L 553,178 L 553,177 L 552,177 L 552,176 L 552,175 L 553,175 L 554,175 L 554,174 L 555,174 L 556,174 L 556,175 L 555,175 L 556,175 L 556,176 L 556,175 L 556,176 L 557,176 L 558,176 L 559,176 L 559,177 L 560,177 L 561,177 L 562,177 L 563,177 L 563,176 L 564,176 L 565,176 L 565,177 L 566,177 L 566,176 L 566,177 L 567,177 L 568,177 L 569,177 L 570,177 L 571,178 L 571,177 L 572,177 L 573,177 L 574,177 L 574,178 L 574,179 L 574,180 L 574,181 L 575,181 L 575,182 L 575,183 L 575,184 L 576,184 L 576,183 L 576,184 L 576,185 L 576,186 L 576,187 L 576,188 L 576,189 L 576,190 L 576,191 L 575,191 L 574,191 L 573,191 L 573,190 L 574,190 L 573,190 L 572,189 L 571,189 L 570,189 L 569,189 L 569,190 L 569,189 L 569,190 L 568,190 L 567,190 L 566,190 L 566,191 L 566,192 L 566,193 L 565,193 L 564,193 L 564,194 L 564,193 L 563,193 L 563,194 L 562,194 L 561,194 L 561,195 L 560,195 L 559,195 L 558,195 L 557,195 L 556,194 L 556,195 L 555,195 L 554,195 L 553,195 L 553,196 L 553,197 L 552,197 L 552,196 L 551,196 L 551,197 L 551,198 L 551,199 L 550,199 L 551,199 L 550,199 L 550,200 L 549,200 L 548,200 L 548,201 L 547,201 L 546,201 L 546,202 L 545,202 L 545,201 L 544,201 L 545,201 L 544,201 L 544,200 L 543,200 L 543,199 L 544,199 L 543,199 L 544,199 L 543,199 L 543,198 L 543,197 L 542,197 L 541,197 L 541,196 L 542,196 L 542,195 L 543,195 L 543,194 L 544,194 L 543,194 L 543,193 L 543,192 L 544,192 L 544,191 L 545,191 L 546,191 L 546,190 L 545,190 L 545,189 L 544,189 L 543,188 L 542,188 L 541,188 L 541,189 L 540,189 L 539,189 L 539,190 L 538,190 L 538,191 L 537,191 L 536,191 L 536,192 L 535,192 L 535,193 L 535,192 L 534,192 L 534,193 L 534,192 L 534,193 L 533,193 L 533,194 L 532,194 L 532,195 L 531,195 L 531,194 L 531,195 L 530,195 L 529,195 L 528,195 L 527,195 L 527,194 L 527,193 L 526,193 L 526,194 L 525,194 L 524,194 L 523,194 L 523,193 L 522,193 L 522,192 L 522,191 L 523,191 L 522,191 L 523,191 L 522,191 L 523,191 L 523,190 L 523,189 L 524,189 L 524,188 L 524,187 L 523,187 L 523,186 L 522,186 L 522,185 L 522,184 L 521,184 L 521,183 L 521,182 L 522,182 L 522,181 L 523,181 L 523,180 L 522,180 L 522,179 L 523,179 L 522,179 L 523,179 L 523,178 L 523,177 L 524,177 L 524,176 L 524,175 L 523,175 L 524,175 L 523,175 L 524,175 L 525,175 L 525,174 L 525,175 L 525,176 L 526,176 L 527,176 L 527,177 L 528,177 L 529,177 L 530,177 L 530,176 L 531,176 L 532,176 L 532,175 L 532,176 L 533,176 L 533,175 L 534,175 L 534,174 L 535,174 L 535,173 L 535,172 L 536,172 L 536,173 L 537,173 L 537,172 L 538,172 L 539,172 L 538,172 L 539,172 L 539,171 L 540,171 L 541,171 L 542,171 L 542,170 \"},\"pe\": {\"name\": \"Pernambuco\",\"path\": \"M 542,188 L 543,188 L 544,189 L 545,189 L 545,190 L 546,190 L 546,191 L 545,191 L 544,191 L 544,192 L 543,192 L 543,193 L 543,194 L 544,194 L 543,194 L 543,195 L 542,195 L 542,196 L 541,196 L 541,197 L 542,197 L 543,197 L 543,198 L 543,199 L 544,199 L 543,199 L 544,199 L 543,199 L 543,200 L 544,200 L 544,201 L 545,201 L 544,201 L 545,201 L 545,202 L 546,202 L 546,201 L 547,201 L 548,201 L 548,200 L 549,200 L 550,200 L 550,199 L 551,199 L 550,199 L 551,199 L 551,198 L 551,197 L 551,196 L 552,196 L 552,197 L 553,197 L 553,196 L 553,195 L 554,195 L 555,195 L 556,195 L 556,194 L 557,195 L 558,195 L 559,195 L 560,195 L 561,195 L 561,194 L 562,194 L 563,194 L 563,193 L 564,193 L 564,194 L 564,193 L 565,193 L 566,193 L 566,192 L 566,191 L 566,190 L 567,190 L 568,190 L 569,190 L 569,189 L 569,190 L 569,189 L 570,189 L 571,189 L 572,189 L 573,190 L 574,190 L 573,190 L 573,191 L 574,191 L 575,191 L 576,191 L 576,192 L 576,193 L 575,193 L 576,193 L 576,194 L 576,195 L 575,195 L 576,195 L 575,195 L 576,195 L 576,196 L 576,197 L 576,198 L 575,198 L 575,199 L 575,200 L 574,200 L 574,201 L 574,202 L 574,203 L 574,204 L 573,204 L 573,205 L 573,206 L 573,205 L 573,206 L 572,206 L 572,207 L 572,208 L 572,209 L 571,209 L 571,210 L 572,210 L 571,210 L 570,210 L 569,210 L 568,210 L 568,209 L 567,209 L 566,209 L 565,209 L 565,210 L 564,210 L 563,210 L 562,210 L 563,210 L 562,210 L 562,209 L 562,210 L 561,210 L 560,210 L 559,210 L 558,210 L 558,211 L 558,212 L 557,212 L 557,213 L 556,213 L 556,214 L 555,214 L 554,214 L 555,215 L 554,215 L 553,215 L 554,215 L 553,215 L 552,215 L 552,216 L 551,216 L 552,216 L 551,216 L 550,216 L 549,215 L 548,216 L 548,215 L 547,215 L 547,216 L 546,216 L 546,217 L 545,217 L 545,216 L 545,215 L 544,215 L 543,215 L 542,215 L 542,214 L 541,214 L 541,213 L 540,213 L 540,212 L 539,212 L 539,211 L 538,211 L 537,211 L 537,212 L 536,212 L 536,211 L 536,212 L 536,211 L 536,212 L 536,211 L 536,210 L 535,210 L 534,210 L 534,211 L 534,212 L 533,212 L 533,213 L 532,213 L 532,214 L 531,214 L 530,214 L 530,215 L 529,215 L 529,216 L 528,216 L 528,215 L 528,214 L 527,214 L 527,213 L 527,212 L 528,212 L 527,212 L 527,211 L 527,212 L 526,212 L 525,212 L 525,211 L 524,211 L 525,210 L 525,209 L 524,209 L 523,210 L 523,211 L 522,211 L 522,210 L 521,209 L 520,209 L 519,209 L 518,209 L 518,208 L 517,208 L 516,208 L 515,208 L 515,207 L 515,208 L 514,208 L 514,207 L 514,206 L 514,205 L 513,205 L 512,205 L 512,206 L 511,206 L 510,206 L 510,207 L 509,207 L 508,207 L 508,208 L 508,209 L 507,209 L 506,209 L 505,209 L 505,210 L 505,211 L 506,211 L 505,211 L 505,212 L 504,212 L 503,212 L 503,213 L 502,213 L 501,213 L 501,212 L 500,212 L 500,213 L 500,214 L 500,215 L 499,215 L 499,216 L 499,217 L 498,217 L 497,217 L 496,217 L 496,218 L 495,218 L 494,218 L 493,218 L 493,217 L 493,216 L 494,216 L 493,216 L 494,216 L 494,215 L 494,214 L 494,213 L 493,213 L 492,213 L 492,212 L 492,211 L 492,210 L 491,210 L 491,209 L 490,209 L 489,209 L 490,209 L 489,209 L 488,209 L 488,208 L 488,207 L 488,208 L 488,207 L 488,208 L 487,208 L 487,207 L 487,208 L 486,208 L 485,208 L 485,207 L 486,207 L 487,207 L 487,206 L 488,206 L 488,205 L 489,205 L 489,204 L 490,204 L 490,203 L 490,204 L 491,204 L 491,203 L 492,203 L 492,202 L 493,202 L 493,201 L 494,201 L 494,200 L 495,200 L 496,200 L 496,199 L 495,199 L 496,198 L 496,197 L 496,196 L 496,195 L 495,195 L 494,194 L 495,194 L 495,193 L 495,192 L 494,192 L 494,191 L 494,190 L 495,190 L 496,189 L 496,188 L 497,188 L 497,189 L 498,189 L 499,189 L 499,188 L 500,188 L 501,188 L 501,189 L 502,189 L 503,189 L 504,189 L 505,189 L 505,188 L 505,189 L 505,188 L 506,188 L 507,188 L 508,188 L 508,189 L 509,189 L 509,190 L 510,190 L 510,191 L 510,190 L 511,190 L 511,191 L 511,192 L 512,192 L 513,192 L 513,193 L 514,193 L 514,194 L 514,193 L 515,193 L 515,194 L 516,194 L 516,195 L 516,196 L 517,196 L 517,195 L 518,195 L 518,196 L 518,195 L 519,195 L 518,195 L 518,194 L 519,194 L 520,194 L 520,193 L 521,193 L 522,193 L 522,192 L 522,193 L 522,192 L 522,193 L 523,193 L 523,194 L 524,194 L 525,194 L 526,194 L 526,193 L 527,193 L 527,194 L 527,195 L 528,195 L 529,195 L 530,195 L 531,195 L 531,194 L 531,195 L 532,195 L 532,194 L 533,194 L 533,193 L 534,193 L 534,192 L 534,193 L 534,192 L 535,192 L 535,193 L 535,192 L 536,192 L 536,191 L 537,191 L 538,191 L 538,190 L 539,190 L 539,189 L 540,189 L 541,189 L 541,188 L 542,188 \"},\"al\": {\"name\": \"Alagoas\",\"path\": \"M 567,209 L 568,209 L 568,210 L 569,210 L 570,210 L 571,210 L 571,211 L 571,212 L 570,212 L 570,213 L 569,213 L 569,214 L 569,215 L 568,215 L 568,216 L 567,216 L 568,216 L 567,216 L 567,217 L 566,217 L 566,218 L 565,218 L 565,219 L 564,219 L 564,220 L 564,221 L 563,221 L 562,221 L 562,222 L 562,221 L 562,222 L 561,222 L 561,223 L 561,224 L 560,224 L 560,225 L 559,225 L 559,226 L 559,227 L 558,227 L 558,228 L 557,228 L 556,229 L 555,229 L 555,230 L 555,231 L 555,232 L 554,232 L 553,232 L 553,231 L 552,231 L 552,232 L 552,231 L 552,230 L 551,230 L 551,229 L 550,229 L 549,229 L 548,229 L 548,228 L 547,228 L 547,227 L 546,227 L 546,226 L 546,225 L 545,225 L 544,225 L 544,224 L 543,224 L 542,224 L 542,223 L 541,223 L 540,223 L 540,222 L 539,222 L 538,222 L 537,222 L 537,221 L 536,221 L 536,220 L 535,220 L 535,221 L 535,220 L 534,220 L 533,219 L 532,219 L 532,218 L 531,218 L 530,218 L 529,218 L 529,217 L 528,216 L 529,216 L 529,215 L 530,215 L 530,214 L 531,214 L 532,214 L 532,213 L 533,213 L 533,212 L 534,212 L 534,211 L 534,210 L 535,210 L 536,210 L 536,211 L 536,212 L 536,211 L 536,212 L 536,211 L 536,212 L 537,212 L 537,211 L 538,211 L 539,211 L 539,212 L 540,212 L 540,213 L 541,213 L 541,214 L 542,214 L 542,215 L 543,215 L 544,215 L 545,215 L 545,216 L 545,217 L 546,217 L 546,216 L 547,216 L 547,215 L 548,215 L 548,216 L 549,215 L 549,216 L 550,216 L 551,216 L 552,216 L 551,216 L 552,216 L 552,215 L 553,215 L 554,215 L 553,215 L 554,215 L 555,215 L 554,214 L 555,214 L 556,214 L 556,213 L 557,213 L 557,212 L 558,212 L 558,211 L 558,210 L 559,210 L 560,210 L 561,210 L 562,210 L 562,209 L 562,210 L 563,210 L 562,210 L 563,210 L 564,210 L 565,210 L 565,209 L 566,209 L 567,209 \"},\"se\": {\"name\": \"Sergipe\",\"path\": \"M 532,219 L 533,219 L 534,220 L 535,220 L 535,221 L 535,220 L 536,220 L 536,221 L 537,221 L 537,222 L 538,222 L 539,222 L 540,222 L 540,223 L 541,223 L 542,223 L 542,224 L 543,224 L 544,224 L 544,225 L 545,225 L 546,225 L 546,226 L 546,227 L 547,227 L 547,228 L 548,228 L 548,229 L 549,229 L 550,229 L 551,229 L 551,230 L 552,230 L 552,231 L 552,232 L 552,231 L 553,231 L 553,232 L 554,232 L 554,233 L 553,233 L 552,233 L 551,233 L 551,234 L 550,234 L 549,235 L 548,235 L 548,236 L 547,236 L 547,237 L 546,237 L 546,238 L 545,238 L 545,239 L 545,240 L 544,240 L 544,241 L 543,241 L 543,242 L 543,243 L 542,243 L 542,244 L 541,244 L 541,245 L 541,246 L 540,246 L 539,247 L 538,247 L 537,247 L 536,247 L 535,247 L 534,247 L 534,246 L 533,246 L 534,246 L 533,246 L 533,245 L 533,246 L 533,245 L 532,245 L 532,244 L 532,243 L 532,244 L 531,244 L 531,243 L 532,243 L 532,242 L 531,242 L 531,241 L 530,241 L 531,241 L 531,240 L 530,240 L 530,239 L 529,239 L 529,238 L 528,238 L 528,237 L 528,236 L 529,236 L 529,235 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 531,235 L 531,236 L 532,236 L 533,236 L 533,235 L 534,235 L 534,234 L 534,233 L 534,232 L 534,231 L 534,230 L 535,230 L 535,228 L 535,227 L 534,227 L 534,226 L 534,225 L 533,225 L 532,225 L 532,224 L 532,223 L 531,223 L 531,222 L 531,221 L 532,221 L 532,220 L 531,220 L 531,219 L 532,219 \"},\"ba\": {\"name\": \"Bahia\",\"path\": \"M 513,205 L 514,205 L 514,206 L 514,207 L 514,208 L 515,208 L 515,207 L 515,208 L 516,208 L 517,208 L 518,208 L 518,209 L 519,209 L 520,209 L 521,209 L 522,210 L 522,211 L 523,211 L 523,210 L 524,209 L 525,209 L 525,210 L 524,211 L 525,211 L 525,212 L 526,212 L 527,212 L 527,211 L 527,212 L 528,212 L 527,212 L 527,213 L 527,214 L 528,214 L 528,215 L 528,216 L 529,217 L 529,218 L 530,218 L 531,218 L 532,218 L 532,219 L 531,219 L 531,220 L 532,220 L 532,221 L 531,221 L 531,222 L 531,223 L 532,223 L 532,224 L 532,225 L 533,225 L 534,225 L 534,226 L 534,227 L 535,227 L 535,228 L 535,230 L 534,230 L 534,231 L 534,232 L 534,233 L 534,234 L 534,235 L 533,235 L 533,236 L 532,236 L 531,236 L 531,235 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 530,236 L 530,235 L 529,235 L 529,236 L 528,236 L 528,237 L 528,238 L 529,238 L 529,239 L 530,239 L 530,240 L 531,240 L 531,241 L 530,241 L 531,241 L 531,242 L 532,242 L 532,243 L 531,243 L 531,244 L 532,244 L 532,243 L 532,244 L 532,245 L 533,245 L 533,246 L 533,245 L 533,246 L 534,246 L 533,246 L 534,246 L 534,247 L 535,247 L 536,247 L 537,247 L 538,247 L 539,247 L 540,246 L 541,246 L 540,246 L 540,247 L 540,248 L 539,248 L 539,249 L 538,250 L 538,251 L 538,252 L 537,252 L 537,253 L 537,254 L 536,254 L 536,255 L 535,255 L 535,256 L 535,257 L 534,257 L 534,258 L 533,258 L 533,259 L 533,260 L 532,260 L 532,261 L 531,261 L 531,262 L 531,263 L 530,263 L 530,264 L 529,264 L 529,265 L 528,265 L 528,266 L 527,266 L 527,267 L 526,267 L 525,267 L 524,267 L 523,267 L 523,268 L 522,268 L 523,268 L 522,268 L 521,268 L 521,269 L 521,268 L 521,269 L 521,268 L 521,269 L 520,269 L 520,270 L 519,270 L 518,271 L 518,272 L 518,273 L 519,273 L 519,272 L 519,273 L 519,274 L 519,275 L 519,276 L 519,275 L 519,276 L 519,275 L 519,276 L 519,277 L 519,276 L 518,276 L 518,277 L 518,278 L 518,279 L 518,280 L 519,280 L 519,281 L 518,281 L 518,282 L 518,283 L 518,284 L 518,285 L 518,286 L 518,287 L 517,287 L 517,288 L 517,289 L 517,290 L 517,291 L 517,292 L 517,293 L 517,294 L 518,294 L 518,295 L 518,296 L 518,297 L 518,298 L 518,299 L 518,300 L 518,301 L 518,302 L 518,303 L 519,303 L 519,304 L 519,305 L 519,306 L 519,307 L 520,307 L 519,307 L 519,308 L 519,309 L 519,310 L 518,310 L 518,311 L 518,312 L 517,312 L 517,313 L 517,314 L 518,314 L 517,314 L 517,315 L 517,316 L 517,317 L 516,317 L 516,318 L 516,319 L 516,320 L 516,321 L 516,322 L 516,323 L 515,323 L 515,324 L 515,325 L 515,326 L 515,327 L 515,328 L 515,329 L 515,330 L 515,331 L 515,332 L 516,332 L 516,333 L 515,333 L 515,334 L 514,334 L 514,335 L 513,335 L 513,336 L 512,336 L 511,336 L 511,337 L 510,337 L 510,338 L 510,339 L 509,339 L 509,340 L 509,341 L 508,341 L 508,342 L 508,341 L 507,341 L 506,340 L 505,339 L 504,339 L 503,338 L 502,338 L 502,337 L 501,337 L 501,336 L 500,336 L 501,335 L 501,334 L 501,333 L 500,333 L 500,332 L 499,332 L 499,331 L 499,332 L 499,331 L 498,331 L 498,332 L 498,331 L 497,331 L 497,330 L 497,329 L 496,329 L 495,329 L 495,328 L 496,328 L 495,328 L 495,327 L 496,327 L 496,326 L 496,325 L 496,324 L 496,323 L 496,322 L 497,322 L 497,321 L 498,321 L 499,321 L 499,322 L 499,321 L 500,321 L 500,322 L 500,321 L 500,320 L 499,320 L 499,319 L 500,319 L 499,319 L 499,318 L 500,318 L 500,317 L 501,317 L 502,317 L 501,317 L 501,316 L 502,316 L 502,315 L 503,315 L 503,314 L 504,314 L 504,313 L 504,314 L 504,313 L 505,313 L 505,312 L 505,311 L 506,311 L 506,310 L 505,310 L 505,309 L 504,309 L 503,309 L 503,308 L 502,308 L 501,308 L 501,307 L 501,306 L 500,306 L 499,306 L 499,307 L 499,306 L 499,307 L 499,306 L 498,306 L 497,306 L 496,306 L 495,306 L 495,305 L 494,305 L 494,304 L 494,305 L 493,305 L 494,305 L 493,305 L 493,304 L 492,304 L 492,305 L 491,305 L 491,304 L 490,304 L 490,305 L 489,305 L 488,305 L 488,306 L 487,306 L 487,305 L 486,305 L 485,305 L 485,303 L 485,302 L 484,302 L 484,301 L 483,301 L 483,300 L 479,297 L 479,296 L 479,297 L 478,297 L 477,297 L 477,298 L 477,297 L 476,297 L 475,297 L 475,298 L 475,297 L 474,297 L 474,296 L 473,296 L 473,297 L 473,296 L 473,297 L 473,296 L 473,297 L 472,297 L 472,296 L 471,296 L 470,296 L 470,295 L 469,295 L 468,295 L 468,294 L 467,294 L 466,294 L 466,293 L 465,293 L 464,292 L 463,292 L 463,291 L 462,291 L 461,291 L 460,291 L 460,290 L 459,290 L 458,290 L 458,291 L 458,290 L 458,291 L 457,291 L 456,291 L 456,292 L 455,292 L 456,292 L 455,292 L 455,293 L 455,292 L 454,292 L 453,292 L 453,291 L 452,291 L 451,291 L 450,291 L 450,290 L 450,289 L 450,288 L 450,287 L 451,287 L 451,286 L 451,285 L 451,286 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 449,285 L 448,285 L 447,285 L 446,285 L 445,285 L 445,284 L 445,285 L 444,285 L 443,285 L 442,285 L 442,286 L 442,285 L 442,286 L 441,286 L 440,286 L 439,286 L 439,287 L 438,287 L 438,288 L 437,288 L 436,288 L 437,288 L 437,289 L 436,289 L 436,290 L 436,289 L 436,290 L 435,290 L 436,290 L 435,290 L 434,290 L 435,290 L 434,290 L 434,291 L 433,291 L 433,292 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 431,292 L 430,292 L 430,293 L 429,293 L 429,294 L 428,294 L 427,294 L 427,295 L 427,294 L 426,294 L 426,295 L 425,295 L 425,296 L 425,295 L 425,296 L 424,296 L 424,297 L 423,297 L 422,297 L 421,297 L 421,298 L 420,298 L 420,299 L 419,299 L 419,298 L 419,299 L 419,298 L 420,297 L 420,296 L 421,296 L 421,295 L 421,294 L 420,294 L 420,293 L 420,292 L 420,291 L 420,290 L 421,290 L 420,290 L 420,289 L 421,289 L 420,289 L 421,289 L 420,288 L 420,287 L 421,287 L 421,286 L 422,286 L 421,286 L 421,285 L 420,285 L 420,284 L 419,284 L 420,284 L 419,284 L 419,283 L 418,283 L 417,283 L 417,282 L 417,281 L 417,280 L 417,279 L 417,278 L 416,278 L 417,278 L 417,277 L 417,276 L 418,276 L 418,275 L 417,275 L 417,274 L 417,273 L 418,273 L 418,272 L 419,272 L 420,272 L 420,271 L 419,271 L 418,271 L 418,272 L 417,272 L 416,272 L 416,271 L 416,270 L 416,269 L 416,268 L 416,267 L 417,267 L 418,267 L 419,267 L 419,266 L 418,266 L 417,266 L 416,266 L 416,267 L 416,266 L 416,265 L 417,265 L 416,265 L 416,264 L 417,264 L 417,263 L 416,263 L 417,263 L 417,262 L 416,262 L 417,262 L 416,262 L 416,261 L 417,261 L 418,261 L 418,260 L 417,260 L 417,259 L 416,259 L 416,258 L 415,258 L 416,258 L 416,257 L 415,257 L 415,256 L 415,255 L 415,254 L 415,253 L 416,253 L 417,253 L 417,252 L 418,252 L 417,252 L 416,252 L 415,252 L 415,251 L 416,251 L 416,250 L 415,250 L 416,250 L 416,249 L 416,248 L 417,248 L 418,249 L 418,248 L 418,249 L 418,248 L 418,249 L 418,248 L 419,248 L 418,248 L 417,248 L 417,247 L 416,247 L 415,247 L 414,247 L 414,246 L 413,246 L 413,245 L 412,245 L 412,244 L 412,243 L 413,243 L 413,242 L 414,242 L 414,241 L 414,240 L 415,240 L 415,239 L 416,239 L 416,238 L 416,237 L 417,237 L 417,236 L 418,236 L 418,235 L 417,235 L 418,235 L 418,234 L 419,234 L 420,234 L 420,233 L 421,233 L 422,233 L 422,232 L 423,232 L 423,231 L 423,230 L 424,230 L 424,229 L 425,229 L 424,229 L 424,228 L 425,228 L 425,227 L 426,227 L 426,228 L 426,229 L 427,229 L 427,230 L 428,230 L 428,231 L 428,232 L 429,232 L 428,232 L 428,233 L 428,234 L 428,235 L 429,235 L 429,236 L 430,236 L 431,236 L 431,237 L 432,237 L 433,237 L 434,237 L 434,238 L 435,238 L 436,238 L 437,238 L 437,237 L 438,237 L 438,236 L 439,236 L 439,235 L 440,235 L 440,234 L 441,234 L 441,235 L 441,234 L 442,234 L 443,234 L 443,233 L 444,233 L 444,234 L 445,234 L 446,234 L 447,234 L 447,233 L 448,232 L 448,231 L 448,232 L 449,232 L 449,231 L 450,231 L 450,230 L 450,229 L 451,229 L 451,228 L 451,227 L 452,227 L 452,226 L 453,226 L 453,225 L 452,225 L 452,224 L 453,224 L 453,223 L 452,223 L 451,222 L 451,221 L 450,221 L 450,220 L 450,219 L 451,219 L 451,218 L 452,218 L 452,217 L 453,217 L 454,216 L 455,216 L 455,215 L 456,215 L 456,216 L 457,216 L 457,217 L 458,217 L 458,218 L 458,217 L 459,217 L 460,217 L 461,217 L 462,217 L 463,217 L 463,218 L 463,219 L 464,219 L 464,220 L 465,220 L 466,220 L 466,219 L 467,219 L 468,219 L 469,219 L 469,218 L 470,218 L 470,217 L 471,217 L 471,216 L 472,216 L 473,216 L 474,216 L 475,216 L 475,215 L 476,215 L 477,215 L 478,215 L 478,214 L 479,214 L 479,213 L 480,213 L 480,212 L 481,212 L 481,211 L 482,211 L 483,210 L 483,209 L 484,209 L 484,208 L 485,208 L 486,208 L 487,208 L 487,207 L 487,208 L 488,208 L 488,207 L 488,208 L 488,207 L 488,208 L 488,209 L 489,209 L 490,209 L 489,209 L 490,209 L 491,209 L 491,210 L 492,210 L 492,211 L 492,212 L 492,213 L 493,213 L 494,213 L 494,214 L 494,215 L 494,216 L 493,216 L 494,216 L 493,216 L 493,217 L 493,218 L 494,218 L 495,218 L 496,218 L 496,217 L 497,217 L 498,217 L 499,217 L 499,216 L 499,215 L 500,215 L 500,214 L 500,213 L 500,212 L 501,212 L 501,213 L 502,213 L 503,213 L 503,212 L 504,212 L 505,212 L 505,211 L 506,211 L 505,211 L 505,210 L 505,209 L 506,209 L 507,209 L 508,209 L 508,208 L 508,207 L 509,207 L 510,207 L 510,206 L 511,206 L 512,206 L 512,205 L 513,205 \"},\"mg\": {\"name\": \"Minas Gerais\",\"path\": \"M 478,375 L 478,376 L 477,376 L 477,377 L 476,377 L 477,377 L 476,377 L 476,378 L 476,377 L 476,378 L 475,378 L 474,378 L 474,379 L 475,379 L 474,379 L 474,380 L 473,380 L 473,381 L 473,382 L 473,383 L 473,384 L 472,384 L 473,384 L 472,384 L 472,385 L 472,386 L 471,386 L 471,387 L 471,388 L 471,387 L 471,388 L 472,388 L 472,389 L 471,389 L 470,389 L 469,389 L 469,390 L 468,390 L 467,390 L 467,391 L 466,391 L 465,391 L 465,392 L 464,392 L 463,392 L 463,393 L 462,393 L 461,393 L 462,393 L 461,393 L 461,394 L 460,394 L 460,393 L 459,393 L 458,393 L 457,393 L 457,392 L 457,393 L 457,392 L 457,393 L 456,393 L 455,393 L 455,394 L 454,394 L 454,393 L 454,394 L 453,394 L 453,393 L 453,394 L 453,393 L 453,394 L 453,393 L 452,393 L 452,394 L 452,393 L 452,394 L 452,393 L 452,394 L 451,394 L 452,394 L 451,394 L 451,393 L 451,394 L 450,394 L 449,394 L 448,394 L 448,395 L 447,395 L 446,395 L 446,396 L 446,395 L 446,396 L 445,396 L 444,396 L 445,396 L 444,396 L 443,396 L 442,396 L 441,396 L 442,396 L 441,396 L 441,397 L 440,397 L 439,397 L 439,398 L 438,398 L 438,397 L 438,398 L 437,398 L 436,398 L 436,399 L 435,399 L 434,399 L 433,399 L 432,399 L 432,400 L 431,400 L 431,401 L 430,401 L 429,401 L 429,402 L 428,401 L 429,401 L 428,401 L 429,401 L 428,401 L 427,401 L 427,402 L 426,402 L 426,401 L 425,401 L 425,402 L 425,401 L 425,400 L 425,401 L 424,401 L 424,400 L 424,401 L 425,401 L 425,402 L 424,402 L 423,402 L 423,403 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,404 L 424,403 L 424,404 L 423,404 L 424,404 L 423,404 L 422,404 L 422,405 L 422,404 L 421,404 L 421,405 L 420,405 L 419,405 L 418,405 L 418,404 L 418,405 L 418,404 L 418,405 L 417,405 L 416,405 L 415,405 L 415,404 L 415,403 L 416,403 L 415,403 L 414,403 L 414,402 L 415,402 L 415,401 L 414,401 L 415,401 L 414,401 L 415,401 L 414,401 L 414,400 L 415,400 L 414,400 L 413,400 L 413,399 L 412,399 L 411,398 L 411,397 L 410,397 L 410,396 L 411,396 L 410,396 L 411,396 L 411,395 L 412,395 L 412,394 L 411,394 L 410,394 L 410,393 L 410,394 L 411,393 L 412,393 L 412,392 L 411,392 L 411,391 L 411,390 L 411,389 L 412,389 L 412,388 L 413,388 L 413,387 L 413,386 L 413,385 L 412,385 L 412,384 L 412,385 L 412,384 L 411,384 L 410,384 L 409,384 L 408,384 L 407,384 L 406,384 L 406,383 L 406,382 L 405,382 L 405,381 L 406,381 L 405,381 L 405,382 L 405,381 L 405,380 L 404,380 L 404,379 L 404,378 L 403,377 L 403,376 L 403,375 L 404,375 L 404,374 L 405,374 L 405,373 L 404,373 L 404,372 L 403,372 L 403,371 L 402,371 L 402,370 L 402,369 L 403,369 L 403,368 L 403,367 L 402,367 L 402,366 L 401,366 L 400,365 L 400,364 L 399,364 L 399,365 L 398,365 L 397,365 L 397,364 L 396,364 L 395,364 L 395,365 L 395,364 L 394,364 L 394,365 L 394,366 L 393,366 L 393,365 L 393,366 L 392,366 L 392,367 L 391,367 L 391,366 L 390,366 L 390,365 L 389,365 L 389,366 L 389,367 L 388,367 L 388,366 L 387,366 L 386,366 L 386,367 L 385,367 L 385,366 L 384,366 L 384,367 L 383,367 L 382,367 L 381,367 L 381,368 L 380,368 L 380,369 L 380,370 L 380,371 L 380,370 L 379,370 L 379,369 L 379,368 L 379,367 L 378,367 L 377,367 L 377,368 L 377,369 L 376,369 L 375,369 L 375,368 L 375,367 L 374,367 L 374,366 L 374,365 L 375,365 L 375,364 L 374,364 L 373,364 L 372,364 L 372,363 L 371,363 L 370,363 L 370,364 L 369,364 L 368,364 L 367,364 L 366,364 L 365,364 L 364,364 L 364,363 L 363,363 L 362,363 L 361,363 L 360,363 L 360,362 L 359,362 L 358,362 L 357,362 L 356,362 L 356,363 L 355,363 L 355,364 L 354,364 L 353,364 L 352,364 L 352,365 L 351,365 L 351,366 L 351,365 L 350,365 L 351,365 L 351,364 L 350,364 L 351,364 L 351,363 L 350,363 L 350,362 L 350,361 L 350,360 L 351,360 L 351,359 L 352,359 L 352,358 L 351,358 L 351,357 L 352,357 L 353,358 L 353,357 L 352,357 L 352,356 L 353,356 L 353,355 L 354,355 L 354,354 L 354,353 L 355,353 L 356,353 L 357,353 L 357,352 L 358,352 L 358,351 L 358,350 L 358,349 L 359,349 L 359,348 L 360,348 L 360,347 L 360,346 L 361,346 L 362,346 L 363,346 L 364,346 L 364,345 L 365,345 L 366,345 L 367,345 L 367,346 L 368,346 L 368,345 L 369,345 L 370,345 L 369,345 L 370,345 L 370,344 L 371,344 L 372,344 L 372,345 L 373,345 L 373,346 L 373,345 L 374,345 L 375,345 L 375,344 L 375,343 L 376,343 L 376,342 L 377,342 L 377,343 L 378,343 L 378,342 L 379,342 L 379,341 L 380,341 L 381,341 L 381,342 L 382,342 L 383,342 L 384,342 L 384,341 L 385,341 L 385,342 L 386,342 L 387,342 L 388,342 L 389,342 L 389,341 L 389,342 L 390,342 L 390,343 L 391,343 L 392,343 L 393,343 L 393,344 L 394,343 L 395,343 L 395,342 L 395,343 L 396,343 L 396,342 L 397,342 L 397,341 L 397,342 L 397,341 L 398,341 L 398,340 L 399,340 L 399,339 L 399,340 L 399,339 L 399,340 L 400,340 L 400,339 L 401,339 L 401,338 L 402,338 L 402,337 L 402,336 L 402,335 L 401,335 L 401,334 L 402,334 L 401,334 L 402,334 L 401,334 L 402,334 L 402,333 L 402,332 L 403,332 L 402,332 L 403,332 L 402,332 L 403,332 L 403,331 L 402,331 L 402,330 L 401,330 L 400,330 L 399,330 L 399,329 L 399,328 L 399,327 L 399,328 L 400,328 L 400,327 L 401,327 L 400,327 L 401,327 L 400,327 L 401,327 L 401,326 L 402,326 L 401,326 L 401,325 L 401,326 L 401,325 L 402,325 L 402,326 L 402,325 L 401,325 L 402,325 L 401,325 L 402,325 L 403,325 L 402,325 L 403,325 L 402,325 L 402,324 L 403,324 L 404,324 L 403,324 L 404,324 L 404,323 L 404,324 L 404,323 L 405,323 L 404,323 L 405,323 L 404,323 L 404,322 L 404,321 L 403,321 L 404,321 L 404,320 L 403,321 L 403,320 L 404,320 L 403,320 L 403,319 L 403,318 L 403,319 L 403,318 L 402,318 L 402,317 L 402,318 L 402,317 L 401,317 L 400,317 L 400,316 L 400,315 L 400,314 L 401,314 L 401,313 L 402,313 L 402,312 L 402,311 L 401,311 L 402,311 L 402,310 L 402,309 L 403,309 L 404,309 L 403,309 L 404,309 L 403,309 L 404,309 L 404,308 L 405,308 L 406,308 L 407,308 L 408,307 L 409,307 L 409,306 L 409,305 L 408,305 L 408,304 L 408,303 L 407,303 L 407,302 L 407,301 L 408,301 L 408,300 L 409,300 L 409,299 L 408,299 L 408,298 L 408,299 L 407,299 L 407,298 L 408,297 L 408,296 L 407,296 L 408,296 L 408,295 L 409,295 L 410,295 L 410,296 L 411,296 L 412,296 L 413,296 L 413,295 L 413,294 L 413,293 L 413,292 L 412,292 L 413,292 L 413,291 L 414,291 L 414,292 L 415,292 L 416,292 L 416,293 L 416,294 L 417,294 L 418,294 L 419,294 L 420,294 L 420,293 L 420,294 L 421,294 L 421,295 L 421,296 L 420,296 L 420,297 L 419,298 L 419,299 L 419,298 L 419,299 L 420,299 L 420,298 L 421,298 L 421,297 L 422,297 L 423,297 L 424,297 L 424,296 L 425,296 L 425,295 L 425,296 L 425,295 L 426,295 L 426,294 L 427,294 L 427,295 L 427,294 L 428,294 L 429,294 L 429,293 L 430,293 L 430,292 L 431,292 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 432,291 L 432,292 L 433,292 L 433,291 L 434,291 L 434,290 L 435,290 L 434,290 L 435,290 L 436,290 L 435,290 L 436,290 L 436,289 L 436,290 L 436,289 L 437,289 L 437,288 L 436,288 L 437,288 L 438,288 L 438,287 L 439,287 L 439,286 L 440,286 L 441,286 L 442,286 L 442,285 L 442,286 L 442,285 L 443,285 L 444,285 L 445,285 L 445,284 L 445,285 L 446,285 L 447,285 L 448,285 L 449,285 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 450,285 L 450,286 L 451,286 L 451,285 L 451,286 L 451,287 L 450,287 L 450,288 L 450,289 L 450,290 L 450,291 L 451,291 L 452,291 L 453,291 L 453,292 L 454,292 L 455,292 L 455,293 L 455,292 L 456,292 L 455,292 L 456,292 L 456,291 L 457,291 L 458,291 L 458,290 L 458,291 L 458,290 L 459,290 L 460,290 L 460,291 L 461,291 L 462,291 L 463,291 L 463,292 L 464,292 L 465,293 L 466,293 L 466,294 L 467,294 L 468,294 L 468,295 L 469,295 L 470,295 L 470,296 L 471,296 L 472,296 L 472,297 L 473,297 L 473,296 L 473,297 L 473,296 L 473,297 L 473,296 L 474,296 L 474,297 L 475,297 L 475,298 L 475,297 L 476,297 L 477,297 L 477,298 L 477,297 L 478,297 L 479,297 L 479,296 L 479,297 L 480,298 L 481,298 L 483,300 L 483,301 L 484,301 L 484,302 L 485,302 L 485,303 L 485,304 L 485,305 L 486,305 L 487,305 L 487,306 L 488,306 L 488,305 L 489,305 L 490,305 L 490,304 L 491,304 L 491,305 L 492,305 L 492,304 L 493,304 L 493,305 L 494,305 L 493,305 L 494,305 L 494,304 L 494,305 L 495,305 L 495,306 L 496,306 L 497,306 L 498,306 L 499,306 L 499,307 L 499,306 L 499,307 L 499,306 L 500,306 L 501,306 L 501,307 L 501,308 L 502,308 L 503,308 L 503,309 L 504,309 L 505,309 L 505,310 L 506,310 L 506,311 L 505,311 L 505,312 L 505,313 L 504,313 L 504,314 L 504,313 L 504,314 L 503,314 L 503,315 L 502,315 L 502,316 L 501,316 L 501,317 L 502,317 L 501,317 L 500,317 L 500,318 L 499,318 L 499,319 L 500,319 L 499,319 L 499,320 L 500,320 L 500,321 L 500,322 L 500,321 L 499,321 L 499,322 L 499,321 L 498,321 L 497,321 L 497,322 L 496,322 L 496,323 L 496,324 L 496,325 L 496,326 L 496,327 L 495,327 L 495,328 L 496,328 L 495,328 L 495,329 L 496,329 L 497,329 L 497,330 L 497,331 L 498,331 L 498,332 L 498,331 L 499,331 L 499,332 L 499,331 L 499,332 L 500,332 L 500,333 L 501,333 L 501,334 L 501,335 L 500,336 L 501,336 L 501,337 L 501,336 L 500,336 L 499,336 L 498,336 L 497,336 L 497,335 L 496,335 L 496,336 L 495,336 L 495,337 L 494,337 L 493,337 L 493,336 L 493,337 L 493,336 L 492,336 L 492,337 L 492,336 L 491,336 L 491,337 L 493,338 L 493,339 L 492,339 L 492,338 L 492,339 L 491,339 L 491,338 L 491,339 L 490,339 L 489,339 L 489,340 L 488,340 L 489,340 L 488,340 L 489,340 L 488,340 L 488,341 L 488,342 L 488,343 L 487,343 L 489,343 L 490,343 L 490,344 L 489,344 L 489,345 L 489,346 L 490,346 L 491,346 L 491,347 L 491,348 L 490,348 L 490,349 L 490,348 L 489,348 L 489,349 L 488,349 L 488,348 L 487,348 L 486,348 L 487,348 L 486,348 L 486,349 L 487,349 L 486,349 L 487,349 L 488,349 L 488,350 L 489,350 L 490,350 L 489,351 L 489,352 L 490,352 L 490,353 L 491,353 L 491,354 L 491,355 L 491,356 L 490,356 L 490,357 L 491,357 L 490,357 L 490,358 L 489,358 L 489,357 L 489,358 L 489,359 L 488,359 L 488,360 L 487,360 L 487,361 L 487,362 L 488,362 L 487,362 L 487,363 L 487,364 L 486,364 L 485,364 L 486,365 L 485,365 L 486,365 L 485,365 L 485,366 L 485,367 L 484,367 L 484,368 L 483,368 L 482,368 L 481,368 L 480,368 L 479,368 L 479,369 L 478,369 L 478,370 L 479,370 L 479,371 L 478,371 L 478,372 L 479,372 L 478,372 L 478,373 L 479,374 L 479,373 L 479,374 L 478,374 L 479,374 L 478,374 L 478,375 \"},\"es\": {\"name\": \"Espírito Santo\",\"path\": \"M 478,375 L 478,374 L 479,374 L 478,374 L 479,374 L 479,373 L 479,374 L 478,373 L 478,372 L 479,372 L 478,372 L 478,371 L 479,371 L 479,370 L 478,370 L 478,369 L 479,369 L 479,368 L 480,368 L 481,368 L 482,368 L 483,368 L 484,368 L 484,367 L 485,367 L 485,366 L 485,365 L 486,365 L 485,365 L 486,365 L 485,364 L 486,364 L 487,364 L 487,363 L 487,362 L 488,362 L 487,362 L 487,361 L 487,360 L 488,360 L 488,359 L 489,359 L 489,358 L 489,357 L 489,358 L 490,358 L 490,357 L 491,357 L 490,357 L 490,356 L 491,356 L 491,355 L 491,354 L 491,353 L 490,353 L 490,352 L 489,352 L 489,351 L 490,350 L 489,350 L 488,350 L 488,349 L 487,349 L 486,349 L 487,349 L 486,349 L 486,348 L 487,348 L 486,348 L 487,348 L 488,348 L 488,349 L 489,349 L 489,348 L 490,348 L 490,349 L 490,348 L 491,348 L 491,347 L 491,346 L 490,346 L 489,346 L 489,345 L 489,344 L 490,344 L 490,343 L 489,343 L 487,343 L 488,343 L 488,342 L 488,341 L 488,340 L 489,340 L 488,340 L 489,340 L 488,340 L 489,340 L 489,339 L 490,339 L 491,339 L 491,338 L 491,339 L 492,339 L 492,338 L 492,339 L 493,339 L 493,338 L 491,337 L 491,336 L 492,336 L 492,337 L 492,336 L 493,336 L 493,337 L 493,336 L 493,337 L 494,337 L 495,337 L 495,336 L 496,336 L 496,335 L 497,335 L 497,336 L 498,336 L 499,336 L 500,336 L 501,336 L 501,337 L 502,337 L 502,338 L 503,338 L 505,339 L 506,340 L 507,340 L 508,341 L 508,342 L 508,343 L 508,344 L 507,345 L 508,345 L 507,346 L 507,347 L 507,348 L 507,349 L 507,350 L 507,351 L 508,351 L 508,352 L 508,353 L 508,354 L 508,355 L 508,356 L 508,357 L 507,357 L 507,358 L 507,359 L 506,359 L 506,360 L 505,360 L 505,361 L 504,361 L 503,362 L 503,363 L 502,363 L 503,363 L 502,363 L 502,364 L 502,365 L 501,365 L 501,366 L 501,367 L 501,368 L 501,369 L 500,369 L 500,368 L 500,369 L 500,370 L 499,370 L 499,371 L 499,372 L 498,372 L 498,373 L 498,374 L 498,373 L 498,374 L 498,373 L 498,374 L 497,373 L 498,373 L 497,373 L 497,374 L 497,373 L 497,374 L 497,375 L 496,375 L 497,375 L 496,375 L 496,376 L 495,376 L 494,376 L 494,377 L 494,376 L 493,376 L 493,377 L 493,378 L 492,378 L 493,378 L 493,379 L 492,379 L 492,380 L 492,381 L 491,381 L 491,382 L 490,382 L 490,383 L 490,382 L 490,383 L 490,382 L 489,382 L 488,382 L 487,382 L 486,382 L 485,382 L 485,381 L 485,382 L 485,381 L 484,381 L 484,382 L 484,381 L 483,381 L 482,381 L 481,381 L 481,380 L 480,380 L 480,379 L 480,378 L 480,377 L 479,377 L 479,376 L 480,376 L 479,376 L 478,376 L 478,375 L 478,376 L 478,375 L 478,376 L 478,375 \"},\"rj\": {\"name\": \"Rio de Janeiro\",\"path\": \"M 478,375 L 478,376 L 478,375 L 478,376 L 478,375 L 478,376 L 479,376 L 480,376 L 479,376 L 479,377 L 480,377 L 480,378 L 480,379 L 480,380 L 481,380 L 481,381 L 482,381 L 483,381 L 484,381 L 484,382 L 484,381 L 485,381 L 485,382 L 485,381 L 485,382 L 486,382 L 487,382 L 488,382 L 489,382 L 490,382 L 490,383 L 490,382 L 490,383 L 490,384 L 490,385 L 489,385 L 489,386 L 489,387 L 490,387 L 490,388 L 490,389 L 490,390 L 490,391 L 490,392 L 490,393 L 489,393 L 488,394 L 487,394 L 486,395 L 485,395 L 484,395 L 483,395 L 483,396 L 482,396 L 481,396 L 480,396 L 480,397 L 479,397 L 479,398 L 478,398 L 478,399 L 477,399 L 477,400 L 476,400 L 476,401 L 476,402 L 476,403 L 477,403 L 478,403 L 477,403 L 478,403 L 477,403 L 477,404 L 476,404 L 476,405 L 476,404 L 476,405 L 476,404 L 476,405 L 475,405 L 475,406 L 476,406 L 475,406 L 474,406 L 473,406 L 472,406 L 472,405 L 471,405 L 470,405 L 469,405 L 469,406 L 469,405 L 468,405 L 467,405 L 467,406 L 466,406 L 465,406 L 464,406 L 463,406 L 462,406 L 461,406 L 460,406 L 460,405 L 460,406 L 460,405 L 461,405 L 460,405 L 461,405 L 460,405 L 461,405 L 460,405 L 460,404 L 460,405 L 460,404 L 461,404 L 460,404 L 461,404 L 461,403 L 462,403 L 462,402 L 461,402 L 460,402 L 460,403 L 459,403 L 458,403 L 458,404 L 459,404 L 459,405 L 460,405 L 460,406 L 459,406 L 458,406 L 458,407 L 457,407 L 456,407 L 455,407 L 456,407 L 455,407 L 454,407 L 453,407 L 452,407 L 451,407 L 450,407 L 449,407 L 449,408 L 448,408 L 448,407 L 449,407 L 450,407 L 449,407 L 450,407 L 451,407 L 452,407 L 453,407 L 454,407 L 453,407 L 453,406 L 452,406 L 451,405 L 450,405 L 449,405 L 448,405 L 448,406 L 447,406 L 448,406 L 447,406 L 448,406 L 447,406 L 447,407 L 446,407 L 445,407 L 445,406 L 444,406 L 444,407 L 444,406 L 444,407 L 443,407 L 443,406 L 444,406 L 443,406 L 444,406 L 443,406 L 444,406 L 444,405 L 443,405 L 443,406 L 442,406 L 442,407 L 442,406 L 441,406 L 441,407 L 440,407 L 439,407 L 439,408 L 438,408 L 439,408 L 438,408 L 438,409 L 438,410 L 439,409 L 440,409 L 439,409 L 439,410 L 439,409 L 439,410 L 438,410 L 439,410 L 440,410 L 439,410 L 439,411 L 439,410 L 439,411 L 439,410 L 440,410 L 441,410 L 441,411 L 441,410 L 441,411 L 440,411 L 439,411 L 438,411 L 437,411 L 437,410 L 436,410 L 436,409 L 437,409 L 437,408 L 437,407 L 437,406 L 438,406 L 438,405 L 439,405 L 440,405 L 441,405 L 441,404 L 442,404 L 441,404 L 441,405 L 442,405 L 441,405 L 442,405 L 442,404 L 443,404 L 444,404 L 445,404 L 445,403 L 445,402 L 446,402 L 445,401 L 446,401 L 445,401 L 444,401 L 443,401 L 443,400 L 443,401 L 443,400 L 443,401 L 442,401 L 443,401 L 442,401 L 441,401 L 440,401 L 439,401 L 439,400 L 438,400 L 438,399 L 438,398 L 437,398 L 438,398 L 438,397 L 438,398 L 439,398 L 439,397 L 440,397 L 441,397 L 441,396 L 442,396 L 441,396 L 442,396 L 443,396 L 444,396 L 445,396 L 444,396 L 445,396 L 446,396 L 446,395 L 446,396 L 446,395 L 447,395 L 448,395 L 448,394 L 449,394 L 450,394 L 451,394 L 451,393 L 451,394 L 452,394 L 451,394 L 452,394 L 452,393 L 452,394 L 452,393 L 452,394 L 452,393 L 453,393 L 453,394 L 453,393 L 453,394 L 453,393 L 453,394 L 454,394 L 454,393 L 454,394 L 455,394 L 455,393 L 456,393 L 457,393 L 457,392 L 457,393 L 457,392 L 457,393 L 458,393 L 459,393 L 460,393 L 460,394 L 461,394 L 461,393 L 462,393 L 461,393 L 462,393 L 463,393 L 463,392 L 464,392 L 465,392 L 465,391 L 466,391 L 467,391 L 467,390 L 468,390 L 469,390 L 469,389 L 470,389 L 471,389 L 472,389 L 472,388 L 471,388 L 471,387 L 471,388 L 471,387 L 471,386 L 472,386 L 472,385 L 472,384 L 473,384 L 472,384 L 473,384 L 473,383 L 473,382 L 473,381 L 473,380 L 474,380 L 474,379 L 475,379 L 474,379 L 474,378 L 475,378 L 476,378 L 476,377 L 476,378 L 476,377 L 477,377 L 476,377 L 477,377 L 477,376 L 478,376 L 478,375 \"},\"sp\": {\"name\": \"São Paulo\",\"path\": \"M 416,420 L 416,421 L 416,420 L 416,421 L 416,420 L 415,420 L 415,421 L 415,420 L 415,421 L 415,420 L 414,420 L 414,421 L 413,421 L 412,421 L 412,422 L 411,422 L 410,422 L 410,423 L 409,423 L 408,423 L 408,424 L 407,424 L 407,425 L 406,425 L 406,426 L 405,426 L 405,427 L 404,427 L 404,428 L 403,428 L 403,429 L 402,429 L 401,429 L 401,430 L 400,430 L 399,430 L 399,431 L 398,431 L 398,432 L 397,432 L 396,432 L 396,433 L 395,433 L 395,434 L 394,434 L 394,435 L 394,436 L 394,437 L 394,436 L 393,436 L 393,437 L 392,437 L 392,438 L 391,438 L 391,439 L 391,438 L 392,438 L 392,437 L 392,438 L 391,438 L 390,437 L 390,436 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 389,434 L 389,435 L 388,435 L 388,434 L 387,434 L 386,434 L 386,435 L 385,435 L 385,436 L 385,435 L 384,435 L 384,434 L 385,434 L 385,433 L 385,432 L 385,433 L 385,432 L 385,431 L 386,431 L 385,431 L 385,430 L 385,431 L 385,430 L 384,430 L 383,430 L 382,430 L 381,430 L 381,429 L 381,430 L 381,429 L 381,430 L 380,430 L 379,430 L 379,429 L 378,429 L 379,429 L 378,429 L 378,430 L 377,430 L 376,430 L 375,430 L 374,430 L 374,429 L 374,428 L 375,428 L 374,428 L 375,428 L 375,427 L 374,427 L 375,427 L 375,426 L 375,425 L 376,425 L 375,425 L 375,424 L 374,424 L 374,423 L 374,422 L 373,422 L 374,422 L 373,422 L 373,421 L 373,422 L 373,421 L 372,421 L 372,420 L 371,420 L 372,420 L 371,420 L 371,419 L 371,420 L 371,419 L 372,419 L 371,419 L 370,419 L 370,418 L 371,418 L 371,417 L 371,416 L 370,416 L 370,415 L 370,414 L 370,413 L 370,412 L 371,412 L 371,413 L 371,412 L 370,412 L 371,412 L 370,412 L 370,411 L 370,410 L 369,410 L 369,409 L 369,408 L 369,409 L 369,408 L 368,408 L 367,408 L 367,407 L 366,407 L 366,406 L 365,406 L 365,405 L 364,405 L 363,405 L 363,406 L 363,405 L 362,406 L 361,406 L 361,405 L 360,405 L 360,406 L 360,405 L 359,405 L 359,406 L 358,406 L 358,405 L 358,406 L 357,406 L 357,405 L 356,405 L 355,405 L 355,406 L 354,406 L 353,406 L 353,405 L 354,405 L 353,405 L 353,404 L 352,404 L 352,403 L 352,404 L 351,404 L 351,403 L 350,403 L 349,403 L 348,403 L 348,402 L 347,402 L 346,402 L 345,402 L 344,402 L 343,402 L 342,402 L 341,402 L 341,401 L 340,401 L 339,401 L 338,401 L 338,400 L 337,400 L 336,400 L 335,400 L 335,401 L 334,402 L 334,401 L 333,401 L 332,401 L 331,401 L 330,401 L 329,401 L 329,400 L 328,400 L 328,401 L 327,401 L 326,401 L 325,401 L 324,400 L 323,400 L 323,401 L 322,401 L 322,402 L 322,401 L 321,401 L 322,401 L 322,400 L 323,400 L 323,399 L 324,399 L 325,399 L 325,398 L 326,398 L 326,397 L 327,397 L 328,397 L 328,396 L 329,396 L 330,396 L 330,395 L 331,395 L 331,394 L 332,394 L 332,393 L 332,392 L 333,392 L 333,391 L 334,391 L 334,390 L 334,389 L 335,389 L 336,389 L 336,388 L 336,387 L 335,387 L 335,386 L 336,386 L 337,386 L 337,385 L 338,385 L 338,384 L 339,384 L 339,383 L 339,382 L 339,381 L 339,380 L 340,380 L 340,379 L 340,378 L 341,378 L 342,378 L 342,377 L 342,376 L 342,375 L 342,374 L 343,373 L 344,373 L 344,372 L 344,371 L 345,371 L 345,370 L 346,370 L 346,369 L 347,369 L 348,369 L 349,369 L 349,368 L 350,368 L 350,367 L 350,366 L 351,366 L 351,365 L 352,365 L 352,364 L 353,364 L 354,364 L 355,364 L 355,363 L 356,363 L 356,362 L 357,362 L 358,362 L 359,362 L 360,362 L 360,363 L 361,363 L 362,363 L 363,363 L 364,363 L 364,364 L 365,364 L 366,364 L 367,364 L 368,364 L 369,364 L 370,364 L 370,363 L 371,363 L 372,363 L 372,364 L 373,364 L 374,364 L 375,364 L 375,365 L 374,365 L 374,366 L 374,367 L 375,367 L 375,368 L 375,369 L 376,369 L 377,369 L 377,368 L 377,367 L 378,367 L 379,367 L 379,368 L 379,369 L 379,370 L 380,370 L 380,371 L 380,370 L 380,369 L 380,368 L 381,368 L 381,367 L 382,367 L 383,367 L 384,367 L 384,366 L 385,366 L 385,367 L 386,367 L 386,366 L 387,366 L 388,366 L 388,367 L 389,367 L 389,366 L 389,365 L 390,365 L 390,366 L 391,366 L 391,367 L 392,367 L 392,366 L 393,366 L 393,365 L 393,366 L 394,366 L 394,365 L 394,364 L 395,364 L 395,365 L 395,364 L 396,364 L 397,364 L 397,365 L 398,365 L 399,365 L 399,364 L 400,364 L 400,365 L 401,366 L 402,366 L 402,367 L 403,367 L 403,368 L 403,369 L 402,369 L 402,370 L 402,371 L 403,371 L 403,372 L 404,372 L 404,373 L 405,373 L 405,374 L 404,374 L 404,375 L 403,375 L 403,376 L 403,377 L 404,378 L 404,379 L 404,380 L 405,380 L 405,381 L 405,382 L 405,381 L 406,381 L 405,381 L 405,382 L 406,382 L 406,383 L 406,384 L 407,384 L 408,384 L 409,384 L 410,384 L 411,384 L 412,384 L 412,385 L 412,384 L 412,385 L 413,385 L 413,386 L 413,387 L 413,388 L 412,388 L 412,389 L 411,389 L 411,390 L 411,391 L 411,392 L 412,392 L 412,393 L 411,393 L 410,394 L 410,393 L 410,394 L 411,394 L 412,394 L 412,395 L 411,395 L 411,396 L 410,396 L 411,396 L 410,396 L 410,397 L 411,397 L 411,398 L 412,399 L 413,399 L 413,400 L 414,400 L 415,400 L 414,400 L 414,401 L 415,401 L 414,401 L 415,401 L 414,401 L 415,401 L 415,402 L 414,402 L 414,403 L 415,403 L 416,403 L 415,403 L 415,404 L 415,405 L 416,405 L 417,405 L 418,405 L 418,404 L 418,405 L 418,404 L 418,405 L 419,405 L 420,405 L 421,405 L 421,404 L 422,404 L 422,405 L 422,404 L 423,404 L 424,404 L 423,404 L 424,404 L 424,403 L 424,404 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 424,402 L 424,403 L 423,403 L 423,402 L 424,402 L 425,402 L 425,401 L 424,401 L 424,400 L 424,401 L 425,401 L 425,400 L 425,401 L 425,402 L 425,401 L 426,401 L 426,402 L 427,402 L 427,401 L 428,401 L 429,401 L 428,401 L 429,401 L 428,401 L 429,402 L 429,401 L 430,401 L 431,401 L 431,400 L 432,400 L 432,399 L 433,399 L 434,399 L 435,399 L 436,399 L 436,398 L 437,398 L 438,398 L 438,399 L 438,400 L 439,400 L 439,401 L 440,401 L 441,401 L 442,401 L 443,401 L 442,401 L 443,401 L 443,400 L 443,401 L 443,400 L 443,401 L 444,401 L 445,401 L 446,401 L 445,401 L 446,402 L 445,402 L 445,403 L 445,404 L 444,404 L 443,404 L 442,404 L 442,405 L 441,405 L 442,405 L 441,405 L 441,404 L 442,404 L 441,404 L 441,405 L 440,405 L 439,405 L 438,405 L 438,406 L 437,406 L 437,407 L 437,408 L 437,409 L 436,409 L 436,410 L 437,410 L 437,411 L 438,411 L 438,412 L 438,411 L 438,412 L 437,412 L 436,412 L 436,411 L 436,412 L 436,411 L 435,411 L 435,412 L 434,412 L 435,412 L 434,412 L 433,412 L 433,413 L 434,413 L 433,413 L 434,413 L 433,413 L 433,414 L 433,413 L 433,414 L 432,414 L 432,413 L 432,414 L 432,413 L 432,414 L 432,413 L 432,414 L 431,414 L 431,415 L 430,415 L 430,414 L 430,415 L 429,415 L 428,415 L 428,416 L 429,416 L 429,417 L 428,417 L 429,417 L 429,418 L 428,418 L 427,418 L 428,418 L 427,418 L 426,418 L 427,418 L 427,417 L 426,417 L 426,418 L 426,417 L 427,417 L 426,417 L 426,418 L 426,417 L 425,417 L 426,417 L 425,417 L 426,417 L 425,417 L 424,417 L 423,417 L 422,417 L 421,417 L 420,417 L 420,418 L 420,417 L 420,418 L 419,418 L 418,418 L 419,418 L 418,418 L 418,419 L 418,420 L 417,420 L 416,420 \"},\"pr\": {\"name\": \"Paraná\",\"path\": \"M 336,400 L 337,400 L 338,400 L 338,401 L 339,401 L 340,401 L 341,401 L 341,402 L 342,402 L 343,402 L 344,402 L 345,402 L 346,402 L 347,402 L 348,402 L 348,403 L 349,403 L 350,403 L 351,403 L 351,404 L 352,404 L 352,403 L 352,404 L 353,404 L 353,405 L 354,405 L 353,405 L 353,406 L 354,406 L 355,406 L 355,405 L 356,405 L 357,405 L 357,406 L 358,406 L 358,405 L 358,406 L 359,406 L 359,405 L 360,405 L 360,406 L 360,405 L 361,405 L 361,406 L 362,406 L 363,405 L 363,406 L 363,405 L 364,405 L 365,405 L 365,406 L 366,406 L 366,407 L 367,407 L 367,408 L 368,408 L 369,408 L 369,409 L 369,408 L 369,409 L 369,410 L 370,410 L 370,411 L 370,412 L 371,412 L 370,412 L 371,412 L 371,413 L 371,412 L 370,412 L 370,413 L 370,414 L 370,415 L 370,416 L 371,416 L 371,417 L 371,418 L 370,418 L 370,419 L 371,419 L 372,419 L 371,419 L 371,420 L 371,419 L 371,420 L 372,420 L 371,420 L 372,420 L 372,421 L 373,421 L 373,422 L 373,421 L 373,422 L 374,422 L 373,422 L 374,422 L 374,423 L 374,424 L 375,424 L 375,425 L 376,425 L 375,425 L 375,426 L 375,427 L 374,427 L 375,427 L 375,428 L 374,428 L 375,428 L 374,428 L 374,429 L 374,430 L 375,430 L 376,430 L 377,430 L 378,430 L 378,429 L 379,429 L 378,429 L 379,429 L 379,430 L 380,430 L 381,430 L 381,429 L 381,430 L 381,429 L 381,430 L 382,430 L 383,430 L 384,430 L 385,430 L 385,431 L 385,430 L 385,431 L 386,431 L 385,431 L 385,432 L 385,433 L 385,432 L 385,433 L 385,434 L 384,434 L 384,435 L 385,435 L 385,436 L 385,435 L 386,435 L 386,434 L 387,434 L 388,434 L 388,435 L 389,435 L 389,434 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 389,435 L 390,435 L 390,436 L 390,437 L 391,438 L 392,438 L 392,437 L 392,438 L 391,438 L 391,439 L 391,438 L 391,439 L 390,439 L 390,440 L 390,441 L 389,441 L 388,441 L 389,441 L 388,442 L 387,442 L 387,443 L 386,443 L 386,444 L 386,445 L 385,445 L 385,446 L 385,447 L 384,447 L 384,448 L 384,447 L 383,447 L 383,448 L 381,448 L 380,448 L 379,448 L 378,448 L 379,448 L 378,448 L 377,448 L 378,448 L 377,448 L 376,448 L 375,448 L 375,449 L 375,448 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 375,450 L 374,450 L 373,450 L 372,450 L 372,451 L 372,450 L 372,451 L 371,451 L 370,451 L 371,451 L 370,451 L 369,451 L 369,450 L 368,450 L 368,449 L 368,450 L 368,449 L 368,450 L 367,450 L 367,449 L 366,449 L 367,449 L 366,449 L 366,448 L 366,449 L 366,448 L 366,449 L 366,448 L 365,448 L 366,448 L 365,448 L 365,449 L 365,448 L 364,448 L 365,448 L 365,449 L 364,449 L 364,448 L 364,449 L 364,448 L 363,448 L 363,449 L 363,448 L 362,448 L 362,449 L 363,449 L 362,449 L 361,449 L 360,449 L 360,450 L 360,449 L 359,449 L 358,449 L 359,449 L 358,449 L 358,448 L 358,449 L 358,448 L 358,449 L 358,448 L 357,448 L 357,449 L 357,448 L 356,448 L 356,449 L 357,449 L 356,449 L 356,450 L 355,450 L 355,451 L 354,451 L 355,451 L 355,452 L 354,452 L 354,451 L 353,451 L 353,452 L 353,451 L 353,452 L 352,452 L 352,451 L 352,452 L 351,452 L 351,451 L 350,451 L 350,452 L 349,452 L 348,452 L 348,453 L 347,453 L 347,454 L 347,455 L 347,454 L 347,455 L 347,456 L 348,456 L 347,456 L 347,457 L 348,457 L 347,457 L 348,457 L 347,457 L 346,457 L 345,457 L 345,458 L 345,457 L 344,457 L 344,456 L 343,456 L 342,456 L 341,456 L 340,456 L 339,456 L 338,456 L 337,456 L 336,456 L 336,455 L 335,455 L 336,455 L 335,455 L 334,455 L 334,454 L 334,455 L 333,455 L 333,454 L 333,455 L 333,454 L 332,454 L 331,454 L 330,454 L 329,454 L 328,454 L 328,453 L 327,453 L 326,453 L 325,453 L 324,453 L 323,453 L 322,453 L 322,454 L 322,453 L 322,454 L 322,453 L 321,453 L 320,453 L 320,452 L 319,452 L 318,452 L 318,451 L 318,452 L 317,452 L 316,452 L 315,452 L 314,452 L 314,451 L 314,450 L 313,450 L 313,449 L 312,449 L 312,448 L 311,448 L 311,447 L 312,447 L 311,447 L 312,447 L 311,447 L 312,447 L 311,447 L 311,446 L 311,445 L 311,446 L 312,446 L 312,445 L 311,445 L 311,444 L 311,445 L 311,444 L 311,443 L 310,443 L 311,443 L 310,443 L 309,443 L 309,442 L 308,442 L 308,443 L 307,443 L 307,442 L 308,442 L 308,441 L 307,441 L 307,442 L 306,442 L 307,442 L 306,442 L 306,443 L 306,442 L 305,442 L 304,442 L 304,443 L 304,442 L 304,443 L 303,443 L 303,444 L 303,443 L 302,443 L 302,442 L 301,442 L 301,441 L 300,441 L 300,440 L 301,440 L 301,439 L 302,439 L 302,438 L 302,437 L 303,437 L 303,436 L 303,435 L 303,434 L 303,433 L 303,432 L 304,431 L 304,430 L 304,429 L 305,429 L 305,428 L 304,428 L 304,427 L 305,427 L 305,426 L 305,425 L 305,424 L 304,423 L 305,423 L 304,423 L 304,422 L 305,422 L 305,421 L 306,421 L 306,420 L 307,420 L 308,420 L 308,419 L 308,418 L 308,417 L 308,416 L 309,415 L 309,414 L 309,413 L 310,413 L 310,412 L 311,412 L 312,412 L 312,411 L 313,411 L 313,410 L 313,409 L 314,409 L 314,408 L 314,407 L 314,406 L 315,406 L 315,405 L 316,405 L 316,404 L 317,404 L 318,404 L 318,403 L 319,403 L 320,403 L 320,402 L 321,402 L 321,401 L 322,401 L 322,402 L 322,401 L 323,401 L 323,400 L 324,400 L 325,401 L 326,401 L 327,401 L 328,401 L 328,400 L 329,400 L 329,401 L 330,401 L 331,401 L 332,401 L 333,401 L 334,401 L 334,402 L 335,401 L 335,400 L 336,400 \"},\"sc\": {\"name\": \"Santa Catarina\",\"path\": \"M 384,448 L 384,449 L 384,450 L 385,450 L 385,451 L 386,451 L 385,451 L 386,451 L 385,451 L 385,452 L 385,453 L 384,453 L 384,454 L 384,455 L 383,456 L 383,457 L 383,458 L 383,459 L 384,459 L 384,460 L 384,461 L 384,462 L 385,462 L 384,462 L 385,462 L 384,462 L 384,463 L 384,464 L 385,464 L 386,464 L 386,465 L 385,465 L 386,465 L 385,465 L 384,465 L 384,466 L 385,466 L 385,467 L 385,468 L 384,468 L 385,468 L 385,467 L 386,467 L 387,467 L 387,468 L 387,469 L 387,470 L 386,470 L 386,471 L 386,472 L 385,472 L 386,472 L 386,473 L 385,473 L 385,474 L 384,474 L 385,474 L 384,474 L 384,475 L 384,476 L 384,477 L 384,478 L 383,478 L 383,479 L 384,479 L 383,479 L 383,480 L 383,481 L 382,481 L 382,482 L 382,483 L 382,484 L 381,484 L 380,485 L 379,485 L 378,486 L 377,486 L 377,487 L 376,487 L 375,487 L 375,488 L 374,488 L 374,489 L 373,489 L 373,490 L 372,490 L 372,491 L 371,491 L 371,492 L 370,492 L 370,493 L 369,493 L 369,494 L 368,494 L 367,494 L 367,493 L 366,493 L 365,493 L 364,493 L 363,493 L 363,494 L 364,494 L 364,495 L 364,494 L 363,494 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 363,492 L 363,493 L 364,493 L 363,493 L 363,492 L 363,493 L 363,492 L 364,492 L 363,492 L 364,492 L 363,492 L 364,492 L 364,493 L 364,492 L 365,492 L 364,492 L 365,492 L 365,491 L 365,492 L 365,491 L 365,492 L 365,491 L 365,490 L 366,490 L 366,489 L 365,489 L 365,488 L 366,488 L 365,488 L 365,487 L 365,486 L 366,486 L 367,486 L 367,485 L 367,486 L 367,485 L 367,484 L 368,484 L 368,485 L 368,484 L 368,485 L 369,485 L 369,484 L 368,484 L 368,483 L 368,482 L 368,483 L 367,483 L 367,482 L 367,483 L 366,483 L 367,483 L 367,482 L 366,482 L 367,482 L 366,482 L 366,483 L 365,483 L 365,482 L 364,482 L 364,483 L 364,482 L 363,482 L 363,483 L 363,482 L 363,483 L 363,482 L 362,482 L 363,482 L 363,483 L 362,483 L 362,482 L 361,482 L 360,482 L 359,482 L 358,482 L 357,482 L 357,481 L 356,481 L 355,481 L 355,480 L 355,479 L 354,479 L 354,478 L 353,478 L 352,478 L 353,478 L 353,477 L 352,477 L 352,476 L 352,475 L 351,475 L 350,475 L 351,475 L 350,475 L 350,474 L 349,474 L 349,473 L 348,473 L 347,473 L 347,472 L 346,472 L 347,472 L 346,472 L 346,471 L 345,471 L 346,471 L 345,471 L 344,471 L 344,470 L 343,470 L 343,469 L 342,469 L 342,470 L 342,469 L 341,469 L 340,469 L 339,469 L 338,469 L 339,469 L 338,469 L 338,468 L 338,469 L 337,469 L 337,468 L 338,468 L 337,468 L 337,467 L 337,468 L 338,467 L 337,467 L 336,467 L 335,467 L 335,466 L 334,466 L 335,466 L 334,466 L 334,467 L 334,466 L 333,466 L 334,466 L 333,466 L 332,466 L 331,466 L 331,465 L 331,466 L 331,465 L 330,465 L 330,466 L 329,466 L 329,465 L 329,466 L 328,466 L 328,465 L 327,465 L 327,466 L 327,465 L 327,466 L 326,466 L 326,465 L 325,465 L 325,464 L 325,465 L 324,465 L 324,464 L 323,464 L 323,465 L 323,464 L 322,464 L 323,464 L 323,463 L 322,463 L 322,464 L 321,464 L 321,465 L 321,464 L 320,464 L 320,465 L 320,464 L 319,464 L 319,465 L 318,465 L 319,465 L 319,464 L 318,464 L 318,463 L 317,463 L 317,464 L 316,464 L 316,465 L 315,465 L 315,464 L 315,465 L 314,465 L 314,464 L 313,464 L 313,465 L 312,465 L 312,464 L 311,464 L 312,464 L 311,464 L 312,464 L 312,463 L 312,464 L 312,463 L 312,462 L 312,463 L 312,462 L 313,462 L 312,462 L 313,462 L 313,461 L 313,462 L 313,461 L 314,461 L 313,461 L 314,461 L 313,461 L 314,461 L 313,460 L 314,460 L 313,460 L 313,459 L 313,458 L 312,458 L 313,458 L 312,458 L 313,458 L 313,457 L 312,457 L 313,457 L 313,456 L 313,455 L 313,454 L 313,453 L 313,454 L 313,453 L 314,453 L 313,453 L 314,453 L 314,452 L 315,452 L 316,452 L 317,452 L 318,452 L 318,451 L 318,452 L 319,452 L 320,452 L 320,453 L 321,453 L 322,453 L 322,454 L 322,453 L 322,454 L 322,453 L 323,453 L 324,453 L 325,453 L 326,453 L 327,453 L 328,453 L 328,454 L 329,454 L 330,454 L 331,454 L 332,454 L 333,454 L 333,455 L 333,454 L 333,455 L 334,455 L 334,454 L 334,455 L 335,455 L 336,455 L 335,455 L 336,455 L 336,456 L 337,456 L 338,456 L 339,456 L 340,456 L 341,456 L 342,456 L 343,456 L 344,456 L 344,457 L 345,457 L 345,458 L 345,457 L 346,457 L 347,457 L 348,457 L 347,457 L 348,457 L 347,457 L 347,456 L 348,456 L 347,456 L 347,455 L 347,454 L 347,455 L 347,454 L 347,453 L 348,453 L 348,452 L 349,452 L 350,452 L 350,451 L 351,451 L 351,452 L 352,452 L 352,451 L 352,452 L 353,452 L 353,451 L 353,452 L 353,451 L 354,451 L 354,452 L 355,452 L 355,451 L 354,451 L 355,451 L 355,450 L 356,450 L 356,449 L 357,449 L 356,449 L 356,448 L 357,448 L 357,449 L 357,448 L 358,448 L 358,449 L 358,448 L 358,449 L 358,448 L 358,449 L 359,449 L 358,449 L 359,449 L 360,449 L 360,450 L 360,449 L 361,449 L 362,449 L 363,449 L 362,449 L 362,448 L 363,448 L 363,449 L 363,448 L 364,448 L 364,449 L 364,448 L 364,449 L 365,449 L 365,448 L 364,448 L 365,448 L 365,449 L 365,448 L 366,448 L 365,448 L 366,448 L 366,449 L 366,448 L 366,449 L 366,448 L 366,449 L 367,449 L 366,449 L 367,449 L 367,450 L 368,450 L 368,449 L 368,450 L 368,449 L 368,450 L 369,450 L 369,451 L 370,451 L 371,451 L 370,451 L 371,451 L 372,451 L 372,450 L 372,451 L 372,450 L 373,450 L 374,450 L 375,450 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 374,449 L 375,449 L 375,448 L 375,449 L 375,448 L 376,448 L 377,448 L 378,448 L 377,448 L 378,448 L 379,448 L 378,448 L 379,448 L 380,448 L 381,448 L 383,448 L 383,447 L 384,447 L 384,448 \"},\"rs\": {\"name\": \"Rio Grande do Sul\",\"path\": \"M 338,468 L 338,469 L 339,469 L 338,469 L 339,469 L 340,469 L 341,469 L 342,469 L 342,470 L 342,469 L 343,469 L 343,470 L 344,470 L 344,471 L 345,471 L 346,471 L 345,471 L 346,471 L 346,472 L 347,472 L 346,472 L 347,472 L 347,473 L 348,473 L 349,473 L 349,474 L 350,474 L 350,475 L 351,475 L 350,475 L 351,475 L 352,475 L 352,476 L 352,477 L 353,477 L 353,478 L 352,478 L 353,478 L 354,478 L 354,479 L 355,479 L 355,480 L 355,481 L 356,481 L 357,481 L 357,482 L 358,482 L 359,482 L 360,482 L 361,482 L 362,482 L 362,483 L 363,483 L 363,482 L 362,482 L 363,482 L 363,483 L 363,482 L 363,483 L 363,482 L 364,482 L 364,483 L 364,482 L 365,482 L 365,483 L 366,483 L 366,482 L 367,482 L 366,482 L 367,482 L 367,483 L 366,483 L 367,483 L 367,482 L 367,483 L 368,483 L 368,482 L 368,483 L 368,484 L 369,484 L 369,485 L 368,485 L 368,484 L 368,485 L 368,484 L 367,484 L 367,485 L 367,486 L 367,485 L 367,486 L 366,486 L 365,486 L 365,487 L 365,488 L 366,488 L 365,488 L 365,489 L 366,489 L 366,490 L 365,490 L 365,491 L 365,492 L 365,491 L 365,492 L 365,491 L 365,492 L 364,492 L 365,492 L 364,492 L 364,493 L 364,492 L 363,492 L 364,492 L 363,492 L 364,492 L 363,492 L 363,493 L 363,492 L 363,493 L 364,493 L 363,493 L 363,492 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 362,493 L 363,493 L 363,494 L 364,494 L 364,495 L 364,494 L 363,494 L 363,493 L 364,493 L 365,493 L 366,493 L 367,493 L 367,494 L 368,494 L 369,494 L 369,495 L 368,495 L 368,496 L 367,496 L 367,497 L 366,497 L 366,498 L 366,499 L 365,499 L 365,500 L 364,500 L 364,501 L 364,502 L 363,502 L 363,503 L 363,504 L 363,505 L 362,505 L 362,506 L 362,507 L 361,507 L 361,508 L 361,509 L 361,510 L 360,510 L 360,511 L 359,512 L 358,513 L 358,514 L 357,514 L 357,515 L 356,516 L 356,517 L 355,517 L 355,518 L 354,519 L 354,520 L 353,520 L 352,521 L 352,522 L 351,522 L 350,523 L 349,523 L 349,524 L 348,524 L 348,525 L 347,525 L 347,526 L 346,526 L 346,527 L 345,527 L 344,528 L 343,528 L 342,529 L 341,529 L 341,530 L 340,530 L 339,530 L 339,531 L 338,531 L 338,532 L 337,532 L 337,533 L 336,533 L 336,534 L 336,533 L 336,532 L 336,531 L 337,531 L 336,530 L 336,529 L 335,529 L 336,529 L 335,529 L 336,529 L 335,529 L 336,529 L 337,529 L 338,529 L 338,530 L 339,530 L 339,529 L 340,529 L 339,529 L 340,529 L 339,529 L 340,529 L 341,529 L 341,528 L 342,528 L 342,527 L 343,527 L 343,526 L 344,526 L 344,525 L 344,526 L 345,526 L 344,526 L 344,525 L 345,525 L 344,525 L 345,525 L 345,524 L 345,525 L 346,525 L 347,525 L 347,524 L 348,524 L 348,523 L 348,522 L 349,522 L 349,521 L 348,521 L 348,520 L 348,519 L 349,519 L 350,519 L 350,518 L 351,518 L 351,517 L 351,516 L 352,516 L 353,516 L 353,515 L 354,515 L 355,515 L 355,514 L 355,513 L 355,512 L 355,511 L 355,510 L 355,509 L 356,509 L 356,508 L 356,509 L 356,510 L 356,511 L 357,511 L 357,510 L 357,509 L 357,508 L 357,507 L 356,507 L 356,506 L 356,507 L 356,506 L 356,507 L 356,506 L 355,507 L 356,508 L 355,508 L 354,508 L 353,508 L 352,508 L 352,509 L 352,510 L 351,510 L 351,509 L 350,509 L 350,508 L 350,509 L 350,508 L 350,507 L 350,508 L 350,507 L 349,507 L 348,507 L 349,507 L 348,507 L 348,506 L 347,506 L 348,506 L 347,506 L 347,505 L 348,505 L 348,504 L 347,504 L 347,505 L 347,504 L 347,505 L 347,504 L 346,505 L 346,506 L 346,507 L 347,507 L 347,508 L 348,508 L 348,509 L 349,509 L 349,510 L 349,511 L 349,510 L 349,509 L 348,509 L 348,510 L 347,510 L 347,511 L 347,512 L 347,513 L 347,514 L 347,515 L 346,515 L 347,515 L 347,514 L 346,514 L 346,513 L 345,513 L 345,514 L 345,515 L 345,516 L 346,516 L 345,516 L 344,516 L 344,517 L 344,518 L 344,519 L 345,519 L 344,519 L 343,519 L 342,519 L 342,520 L 342,521 L 341,521 L 341,522 L 340,522 L 340,521 L 340,522 L 339,522 L 338,522 L 339,522 L 338,522 L 337,522 L 337,523 L 338,523 L 337,523 L 337,524 L 337,525 L 337,526 L 337,527 L 336,527 L 335,527 L 335,528 L 334,528 L 334,529 L 333,529 L 333,530 L 334,530 L 335,530 L 335,531 L 334,531 L 334,532 L 333,532 L 334,532 L 334,531 L 335,531 L 335,532 L 336,532 L 335,532 L 334,532 L 334,533 L 333,533 L 334,533 L 334,532 L 335,532 L 336,532 L 335,532 L 335,533 L 335,532 L 336,532 L 336,533 L 335,533 L 335,534 L 334,534 L 334,535 L 333,535 L 333,536 L 333,537 L 332,537 L 332,538 L 331,539 L 331,540 L 331,541 L 331,542 L 330,542 L 330,543 L 330,544 L 329,545 L 329,546 L 328,546 L 328,547 L 328,548 L 327,548 L 327,549 L 326,549 L 326,550 L 325,550 L 324,551 L 323,552 L 322,552 L 322,553 L 321,553 L 321,554 L 320,554 L 320,555 L 319,555 L 318,555 L 318,556 L 317,556 L 317,555 L 316,555 L 315,555 L 316,555 L 315,555 L 315,554 L 316,554 L 315,554 L 316,554 L 316,553 L 317,553 L 316,553 L 317,553 L 317,552 L 317,553 L 317,552 L 317,551 L 317,550 L 316,549 L 317,549 L 317,548 L 317,547 L 317,548 L 318,547 L 318,546 L 319,546 L 318,546 L 318,547 L 319,547 L 320,546 L 320,545 L 321,545 L 321,544 L 321,543 L 322,543 L 323,543 L 323,542 L 323,543 L 324,544 L 325,544 L 326,544 L 327,543 L 327,542 L 328,542 L 328,541 L 328,540 L 329,539 L 329,538 L 328,538 L 328,537 L 327,536 L 327,535 L 328,535 L 328,534 L 327,534 L 326,534 L 327,534 L 326,534 L 326,535 L 326,534 L 326,535 L 326,534 L 327,534 L 326,534 L 327,534 L 327,535 L 326,535 L 326,536 L 325,536 L 326,536 L 326,537 L 326,536 L 326,537 L 327,537 L 326,537 L 326,538 L 325,538 L 324,538 L 323,538 L 323,539 L 323,540 L 322,540 L 322,541 L 321,541 L 321,540 L 321,541 L 320,541 L 320,540 L 319,540 L 318,540 L 318,539 L 318,540 L 317,540 L 317,539 L 316,539 L 316,538 L 315,538 L 315,537 L 314,537 L 314,536 L 314,535 L 313,535 L 314,535 L 313,535 L 313,534 L 313,533 L 312,533 L 312,532 L 311,532 L 311,531 L 311,532 L 311,531 L 310,531 L 309,531 L 310,531 L 310,530 L 309,530 L 308,530 L 308,531 L 308,530 L 307,530 L 306,529 L 303,527 L 303,526 L 302,526 L 302,525 L 301,525 L 301,524 L 300,524 L 299,524 L 298,524 L 297,524 L 297,523 L 296,523 L 297,523 L 296,523 L 296,522 L 295,522 L 295,521 L 295,522 L 294,522 L 293,522 L 293,521 L 292,521 L 292,520 L 291,520 L 290,519 L 290,520 L 290,519 L 291,519 L 290,519 L 291,519 L 290,519 L 291,519 L 290,519 L 290,518 L 289,518 L 289,517 L 288,517 L 288,516 L 287,516 L 287,515 L 287,516 L 287,515 L 286,515 L 286,516 L 286,517 L 285,517 L 285,518 L 284,518 L 283,518 L 283,519 L 282,519 L 281,519 L 281,518 L 281,517 L 281,516 L 281,515 L 280,515 L 280,514 L 279,514 L 279,513 L 279,512 L 278,512 L 278,511 L 277,511 L 277,512 L 277,511 L 276,511 L 276,510 L 275,510 L 275,509 L 274,509 L 274,508 L 273,508 L 273,507 L 272,507 L 273,507 L 272,507 L 272,506 L 272,507 L 272,506 L 272,507 L 271,507 L 271,506 L 270,506 L 270,505 L 269,505 L 268,505 L 269,505 L 268,505 L 267,505 L 266,505 L 266,506 L 266,505 L 266,506 L 265,506 L 265,507 L 265,508 L 264,508 L 264,507 L 264,508 L 263,508 L 263,507 L 263,508 L 262,508 L 261,508 L 262,508 L 261,508 L 261,507 L 260,507 L 260,508 L 260,507 L 259,507 L 260,507 L 259,507 L 259,506 L 258,506 L 259,506 L 260,506 L 261,505 L 261,504 L 262,504 L 263,504 L 263,503 L 263,502 L 263,501 L 264,501 L 265,501 L 266,500 L 267,500 L 267,499 L 268,498 L 269,497 L 270,497 L 270,496 L 270,495 L 271,495 L 272,495 L 272,494 L 272,493 L 272,492 L 273,492 L 273,491 L 274,491 L 275,491 L 276,490 L 275,490 L 275,489 L 276,489 L 277,489 L 277,488 L 277,487 L 278,487 L 279,487 L 279,486 L 279,485 L 280,485 L 281,485 L 281,484 L 281,483 L 282,483 L 283,483 L 283,482 L 283,481 L 284,481 L 285,481 L 285,482 L 286,482 L 285,481 L 286,481 L 286,480 L 285,480 L 284,480 L 284,479 L 285,479 L 286,479 L 286,478 L 287,478 L 288,478 L 288,477 L 289,477 L 290,477 L 290,476 L 290,475 L 291,475 L 292,475 L 292,474 L 293,474 L 294,474 L 295,474 L 295,473 L 294,473 L 295,473 L 296,473 L 296,472 L 296,471 L 297,471 L 297,470 L 298,470 L 298,469 L 298,470 L 299,470 L 300,470 L 300,469 L 300,470 L 300,469 L 301,469 L 301,468 L 301,469 L 302,469 L 303,469 L 303,468 L 302,468 L 303,468 L 304,468 L 304,469 L 304,468 L 305,468 L 306,467 L 306,466 L 307,466 L 308,466 L 309,466 L 309,465 L 310,465 L 310,464 L 311,464 L 312,464 L 312,465 L 313,465 L 313,464 L 314,464 L 314,465 L 315,465 L 315,464 L 315,465 L 316,465 L 316,464 L 317,464 L 317,463 L 318,463 L 318,464 L 319,464 L 319,465 L 318,465 L 319,465 L 319,464 L 320,464 L 320,465 L 320,464 L 321,464 L 321,465 L 321,464 L 322,464 L 322,463 L 323,463 L 323,464 L 322,464 L 323,464 L 323,465 L 323,464 L 324,464 L 324,465 L 325,465 L 325,464 L 325,465 L 326,465 L 326,466 L 327,466 L 327,465 L 327,466 L 327,465 L 328,465 L 328,466 L 329,466 L 329,465 L 329,466 L 330,466 L 330,465 L 331,465 L 331,466 L 331,465 L 331,466 L 332,466 L 333,466 L 334,466 L 333,466 L 334,466 L 334,467 L 334,466 L 335,466 L 334,466 L 335,466 L 335,467 L 336,467 L 337,467 L 338,467 L 337,468 L 337,467 L 337,468 L 338,468 L 337,468 L 337,469 L 338,469 L 338,468 \"},\"ms\": {\"name\": \"Mato Grosso do Sul\",\"path\": \"M 280,325 L 281,325 L 281,326 L 282,326 L 282,327 L 282,326 L 282,327 L 283,327 L 284,327 L 284,328 L 284,327 L 285,327 L 285,328 L 286,328 L 287,328 L 287,329 L 288,329 L 288,330 L 289,330 L 290,330 L 290,331 L 290,330 L 290,331 L 290,330 L 290,331 L 291,331 L 291,330 L 291,331 L 292,331 L 292,332 L 293,332 L 294,332 L 295,332 L 295,331 L 295,332 L 296,332 L 296,331 L 297,332 L 297,331 L 297,332 L 297,331 L 298,331 L 298,330 L 299,330 L 300,330 L 301,330 L 301,329 L 301,330 L 301,329 L 301,330 L 302,330 L 303,330 L 303,331 L 304,331 L 304,332 L 305,332 L 306,332 L 306,331 L 307,331 L 307,332 L 307,331 L 307,332 L 307,331 L 308,331 L 308,332 L 308,331 L 308,330 L 309,330 L 309,329 L 310,329 L 310,328 L 311,328 L 311,327 L 312,327 L 312,326 L 313,326 L 313,330 L 313,332 L 312,332 L 311,332 L 311,333 L 310,333 L 310,334 L 310,335 L 310,336 L 311,336 L 312,336 L 312,337 L 312,336 L 312,337 L 313,337 L 314,337 L 313,337 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 315,337 L 316,337 L 317,337 L 318,337 L 319,337 L 320,337 L 321,337 L 322,337 L 322,338 L 321,338 L 321,339 L 321,340 L 321,341 L 322,341 L 321,341 L 322,341 L 322,342 L 323,342 L 323,341 L 324,341 L 325,341 L 326,341 L 326,342 L 326,343 L 325,343 L 324,343 L 324,344 L 323,344 L 323,345 L 324,345 L 324,346 L 325,346 L 326,346 L 327,346 L 328,346 L 329,346 L 330,346 L 331,346 L 331,347 L 331,348 L 332,348 L 333,348 L 334,349 L 335,349 L 334,349 L 335,349 L 335,350 L 336,350 L 337,350 L 338,350 L 337,350 L 338,350 L 338,351 L 339,351 L 339,352 L 339,351 L 339,352 L 340,352 L 341,352 L 341,353 L 342,353 L 342,352 L 342,353 L 343,352 L 343,353 L 343,352 L 343,353 L 344,353 L 345,353 L 346,353 L 346,354 L 347,354 L 346,354 L 347,354 L 347,355 L 347,354 L 348,354 L 348,355 L 349,355 L 350,355 L 350,356 L 351,356 L 351,357 L 352,357 L 351,357 L 351,358 L 352,358 L 352,359 L 351,359 L 351,360 L 350,360 L 350,361 L 350,362 L 350,363 L 351,363 L 351,364 L 350,364 L 351,364 L 351,365 L 350,365 L 351,365 L 351,366 L 350,366 L 350,367 L 350,368 L 349,368 L 349,369 L 348,369 L 347,369 L 346,369 L 346,370 L 345,370 L 345,371 L 344,371 L 344,372 L 344,373 L 343,373 L 342,374 L 342,375 L 342,376 L 342,377 L 342,378 L 341,378 L 340,378 L 340,379 L 340,380 L 339,380 L 339,381 L 339,382 L 339,383 L 339,384 L 338,384 L 338,385 L 337,385 L 337,386 L 336,386 L 335,386 L 335,387 L 336,387 L 336,388 L 336,389 L 335,389 L 334,389 L 334,390 L 334,391 L 333,391 L 333,392 L 332,392 L 332,393 L 332,394 L 331,394 L 331,395 L 330,395 L 330,396 L 329,396 L 328,396 L 328,397 L 327,397 L 326,397 L 326,398 L 325,398 L 325,399 L 324,399 L 323,399 L 323,400 L 322,400 L 322,401 L 321,401 L 321,402 L 320,402 L 320,403 L 319,403 L 318,403 L 318,404 L 317,404 L 316,404 L 316,405 L 315,405 L 315,406 L 314,406 L 314,407 L 314,408 L 314,409 L 313,409 L 313,410 L 313,411 L 312,411 L 312,412 L 311,412 L 310,412 L 310,413 L 309,413 L 309,414 L 309,415 L 308,416 L 308,417 L 308,418 L 308,419 L 308,420 L 307,420 L 306,420 L 306,421 L 305,421 L 305,420 L 304,420 L 303,420 L 303,419 L 302,419 L 302,418 L 302,419 L 302,418 L 301,418 L 301,419 L 301,418 L 300,418 L 299,418 L 298,418 L 298,419 L 297,419 L 296,419 L 296,420 L 295,420 L 294,420 L 293,420 L 292,420 L 291,420 L 290,420 L 289,420 L 290,420 L 289,420 L 289,419 L 289,418 L 289,417 L 289,416 L 288,416 L 289,416 L 289,415 L 288,415 L 288,414 L 287,414 L 287,413 L 288,413 L 288,412 L 288,411 L 287,411 L 287,410 L 288,410 L 288,409 L 287,409 L 287,408 L 287,407 L 286,407 L 286,406 L 286,405 L 286,404 L 286,403 L 287,403 L 286,403 L 287,403 L 287,402 L 286,402 L 286,401 L 285,400 L 285,399 L 285,398 L 284,398 L 284,397 L 283,397 L 283,396 L 282,396 L 282,397 L 282,396 L 282,397 L 282,396 L 282,397 L 282,396 L 281,396 L 282,396 L 281,396 L 282,396 L 281,396 L 281,397 L 281,396 L 280,396 L 279,396 L 278,396 L 277,396 L 277,395 L 276,395 L 277,395 L 276,395 L 276,394 L 276,393 L 276,394 L 275,394 L 274,394 L 274,395 L 274,394 L 274,395 L 273,395 L 274,395 L 273,395 L 273,396 L 272,396 L 272,395 L 272,396 L 272,395 L 271,395 L 271,396 L 271,395 L 271,396 L 272,396 L 271,396 L 270,396 L 270,397 L 269,397 L 269,396 L 269,397 L 269,396 L 268,396 L 267,396 L 266,396 L 265,396 L 265,395 L 264,395 L 264,396 L 264,395 L 264,396 L 263,396 L 263,395 L 263,396 L 262,396 L 262,395 L 261,395 L 260,395 L 259,395 L 259,394 L 258,394 L 257,394 L 256,394 L 256,395 L 256,394 L 255,394 L 254,394 L 253,394 L 254,394 L 254,393 L 253,393 L 254,393 L 254,392 L 254,391 L 255,391 L 254,391 L 254,390 L 255,390 L 255,389 L 254,389 L 255,388 L 254,388 L 254,387 L 255,387 L 254,387 L 254,386 L 254,385 L 255,385 L 255,384 L 255,383 L 254,382 L 255,382 L 255,381 L 255,380 L 256,380 L 255,380 L 255,379 L 256,379 L 256,378 L 255,378 L 255,377 L 254,377 L 255,377 L 255,376 L 255,377 L 255,376 L 254,376 L 254,375 L 255,375 L 255,374 L 254,374 L 254,373 L 253,373 L 253,372 L 253,371 L 253,370 L 252,370 L 252,369 L 252,368 L 251,368 L 252,368 L 252,367 L 251,367 L 252,367 L 252,366 L 253,366 L 253,365 L 254,365 L 255,365 L 255,364 L 252,361 L 253,358 L 253,357 L 254,356 L 255,354 L 255,353 L 256,351 L 257,351 L 258,351 L 257,351 L 257,350 L 257,349 L 260,340 L 261,340 L 260,340 L 259,339 L 259,338 L 259,337 L 258,337 L 258,336 L 257,335 L 257,334 L 258,334 L 257,334 L 257,333 L 257,332 L 256,332 L 257,332 L 257,331 L 256,331 L 257,331 L 256,331 L 257,331 L 257,330 L 257,331 L 258,331 L 257,331 L 258,331 L 258,332 L 258,333 L 259,333 L 259,334 L 260,334 L 260,335 L 261,335 L 262,335 L 262,334 L 262,335 L 262,334 L 262,335 L 263,335 L 263,334 L 264,334 L 265,334 L 266,334 L 266,333 L 267,333 L 267,332 L 268,332 L 268,331 L 268,330 L 269,330 L 269,329 L 270,329 L 269,329 L 270,329 L 269,329 L 270,329 L 270,328 L 271,328 L 270,328 L 271,328 L 271,327 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 273,327 L 273,328 L 273,327 L 273,328 L 273,327 L 274,327 L 275,327 L 275,328 L 275,327 L 276,327 L 277,327 L 277,326 L 278,326 L 279,326 L 279,325 L 279,326 L 279,325 L 280,325 \"},\"mt\": {\"name\": \"Mato Grosso\",\"path\": \"M 297,332 L 297,331 L 297,332 L 296,331 L 296,332 L 295,332 L 295,331 L 295,332 L 294,332 L 293,332 L 292,332 L 292,331 L 291,331 L 291,330 L 291,331 L 290,331 L 290,330 L 290,331 L 290,330 L 290,331 L 290,330 L 289,330 L 288,330 L 288,329 L 287,329 L 287,328 L 286,328 L 285,328 L 285,327 L 284,327 L 284,328 L 284,327 L 283,327 L 282,327 L 282,326 L 282,327 L 282,326 L 281,326 L 281,325 L 280,325 L 279,325 L 279,326 L 279,325 L 279,326 L 278,326 L 277,326 L 277,327 L 276,327 L 275,327 L 275,328 L 275,327 L 274,327 L 273,327 L 273,328 L 273,327 L 273,328 L 273,327 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 272,328 L 272,327 L 271,327 L 271,328 L 270,328 L 271,328 L 270,328 L 270,329 L 269,329 L 270,329 L 269,329 L 270,329 L 269,329 L 269,330 L 268,330 L 268,331 L 268,332 L 267,332 L 267,333 L 266,333 L 266,334 L 265,334 L 264,334 L 263,334 L 263,335 L 262,335 L 262,334 L 262,335 L 262,334 L 262,335 L 261,335 L 260,335 L 260,334 L 259,334 L 259,333 L 258,333 L 258,332 L 258,331 L 257,331 L 258,331 L 257,331 L 257,330 L 257,331 L 255,329 L 254,330 L 253,330 L 253,329 L 252,329 L 251,329 L 251,328 L 250,328 L 250,327 L 249,327 L 250,327 L 249,327 L 249,326 L 248,326 L 248,325 L 248,324 L 247,324 L 248,324 L 247,324 L 247,323 L 248,323 L 247,323 L 247,322 L 247,321 L 247,320 L 247,319 L 247,318 L 247,317 L 248,317 L 248,316 L 249,316 L 249,315 L 248,315 L 249,315 L 249,314 L 249,313 L 248,313 L 247,313 L 245,313 L 243,313 L 242,313 L 241,313 L 240,313 L 239,313 L 238,313 L 237,313 L 233,313 L 232,313 L 230,313 L 229,313 L 228,313 L 227,313 L 226,313 L 225,313 L 224,313 L 223,313 L 223,312 L 223,311 L 223,309 L 223,308 L 223,307 L 223,306 L 222,304 L 222,303 L 222,302 L 219,298 L 218,297 L 219,296 L 222,296 L 222,293 L 222,292 L 222,290 L 221,290 L 221,289 L 221,288 L 220,288 L 221,288 L 220,288 L 221,288 L 220,288 L 220,287 L 220,286 L 220,287 L 220,286 L 219,286 L 219,285 L 219,284 L 219,283 L 219,282 L 220,282 L 220,281 L 220,280 L 219,280 L 219,279 L 219,278 L 218,278 L 217,278 L 218,278 L 217,278 L 217,277 L 217,278 L 217,277 L 217,278 L 216,277 L 216,278 L 216,277 L 216,276 L 217,275 L 217,276 L 217,275 L 218,275 L 218,274 L 219,274 L 220,274 L 220,273 L 220,272 L 221,272 L 220,271 L 221,271 L 220,271 L 221,271 L 221,270 L 222,270 L 222,269 L 222,270 L 222,269 L 222,268 L 223,268 L 223,267 L 224,267 L 224,266 L 224,265 L 224,264 L 225,264 L 224,264 L 224,263 L 224,262 L 225,262 L 225,261 L 226,261 L 226,260 L 227,260 L 228,260 L 228,259 L 228,258 L 229,258 L 227,257 L 227,256 L 227,255 L 227,254 L 226,254 L 226,253 L 226,252 L 225,252 L 224,252 L 225,252 L 224,252 L 224,251 L 224,250 L 224,249 L 224,248 L 224,247 L 225,247 L 225,246 L 226,246 L 226,245 L 227,245 L 227,244 L 226,244 L 226,243 L 226,242 L 226,241 L 225,241 L 224,241 L 223,241 L 222,241 L 222,240 L 221,240 L 221,241 L 221,240 L 221,241 L 220,241 L 220,240 L 219,240 L 219,239 L 214,239 L 212,239 L 210,239 L 206,239 L 205,239 L 204,239 L 204,238 L 204,237 L 205,237 L 205,236 L 205,237 L 205,236 L 205,235 L 205,234 L 205,233 L 205,232 L 205,231 L 205,230 L 204,230 L 204,229 L 204,228 L 203,228 L 203,227 L 204,227 L 204,226 L 204,225 L 204,224 L 205,224 L 205,223 L 204,223 L 204,222 L 204,221 L 204,222 L 204,221 L 205,221 L 205,220 L 205,219 L 204,219 L 204,218 L 204,217 L 203,217 L 203,216 L 203,215 L 203,216 L 203,215 L 204,215 L 204,214 L 204,213 L 204,212 L 204,211 L 205,211 L 205,210 L 204,210 L 204,209 L 205,209 L 208,209 L 209,209 L 211,209 L 214,209 L 220,209 L 226,209 L 233,209 L 234,209 L 235,209 L 238,209 L 239,209 L 246,209 L 247,209 L 248,209 L 248,208 L 249,208 L 248,207 L 248,208 L 247,208 L 247,207 L 248,207 L 248,206 L 248,205 L 248,204 L 248,203 L 249,203 L 248,203 L 249,203 L 249,202 L 249,201 L 249,200 L 249,199 L 249,198 L 249,197 L 248,197 L 248,196 L 248,195 L 249,195 L 249,194 L 250,194 L 250,193 L 251,192 L 250,192 L 250,191 L 250,190 L 251,190 L 251,189 L 252,189 L 253,189 L 253,190 L 253,191 L 254,191 L 254,192 L 254,193 L 255,193 L 255,194 L 255,195 L 256,196 L 256,197 L 256,198 L 257,199 L 257,200 L 258,200 L 258,201 L 258,202 L 258,203 L 258,204 L 258,205 L 258,206 L 259,206 L 259,207 L 259,208 L 260,208 L 261,208 L 261,209 L 262,209 L 261,209 L 261,210 L 262,210 L 263,210 L 264,210 L 264,211 L 265,211 L 265,212 L 266,212 L 266,213 L 267,213 L 266,213 L 266,214 L 267,214 L 266,214 L 267,214 L 267,215 L 268,215 L 269,215 L 270,215 L 270,216 L 270,217 L 271,217 L 272,217 L 277,217 L 283,218 L 284,218 L 287,218 L 288,218 L 293,218 L 295,219 L 297,219 L 299,219 L 300,219 L 305,219 L 308,220 L 309,220 L 310,220 L 311,220 L 314,220 L 315,220 L 317,220 L 320,221 L 321,221 L 323,221 L 324,221 L 325,221 L 328,221 L 332,221 L 333,221 L 337,222 L 344,222 L 347,222 L 350,223 L 353,223 L 355,223 L 358,223 L 360,223 L 362,223 L 361,223 L 362,223 L 361,224 L 361,225 L 361,226 L 360,226 L 360,227 L 359,227 L 359,228 L 359,229 L 359,230 L 359,231 L 358,231 L 358,232 L 357,233 L 357,234 L 356,235 L 357,235 L 356,235 L 357,235 L 357,236 L 356,236 L 356,237 L 356,238 L 356,239 L 356,240 L 356,241 L 355,241 L 355,242 L 356,242 L 356,243 L 355,243 L 355,244 L 355,245 L 354,245 L 354,246 L 354,247 L 355,247 L 355,248 L 356,248 L 355,248 L 355,249 L 355,250 L 355,251 L 356,252 L 355,252 L 356,253 L 355,253 L 355,254 L 355,255 L 355,256 L 356,256 L 356,257 L 356,258 L 356,259 L 356,260 L 355,260 L 355,261 L 355,262 L 356,262 L 356,263 L 356,264 L 356,265 L 356,264 L 357,264 L 357,265 L 356,265 L 357,265 L 358,265 L 358,266 L 357,266 L 357,267 L 356,267 L 356,268 L 357,268 L 356,268 L 356,269 L 356,270 L 357,270 L 356,270 L 356,271 L 356,272 L 355,272 L 355,273 L 355,274 L 354,274 L 354,275 L 354,276 L 354,277 L 353,277 L 353,278 L 353,279 L 353,280 L 353,281 L 353,282 L 353,283 L 352,283 L 352,284 L 351,284 L 351,285 L 351,286 L 351,287 L 351,288 L 351,289 L 351,290 L 350,290 L 350,291 L 350,292 L 350,293 L 349,293 L 350,293 L 349,293 L 349,294 L 350,294 L 349,294 L 349,295 L 348,295 L 347,295 L 347,296 L 347,295 L 346,295 L 345,295 L 344,296 L 343,296 L 343,297 L 342,297 L 342,298 L 341,298 L 341,299 L 342,299 L 341,299 L 341,300 L 341,301 L 341,302 L 340,302 L 341,302 L 341,303 L 340,303 L 340,302 L 340,303 L 340,304 L 340,305 L 339,305 L 339,306 L 339,307 L 338,307 L 338,306 L 337,306 L 337,307 L 336,307 L 335,307 L 335,308 L 335,307 L 334,307 L 333,307 L 333,308 L 333,309 L 332,309 L 332,310 L 331,310 L 331,311 L 330,311 L 329,311 L 329,312 L 329,313 L 329,312 L 329,313 L 328,313 L 327,313 L 327,314 L 327,315 L 328,315 L 328,316 L 328,317 L 327,317 L 328,317 L 327,317 L 327,318 L 326,318 L 327,318 L 326,318 L 326,319 L 325,319 L 325,320 L 324,320 L 324,321 L 323,321 L 323,322 L 322,322 L 323,322 L 322,322 L 322,323 L 322,324 L 321,324 L 322,324 L 321,324 L 321,325 L 321,326 L 320,326 L 320,327 L 320,328 L 320,329 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 320,331 L 319,331 L 320,331 L 319,331 L 319,332 L 320,332 L 319,332 L 320,332 L 319,332 L 319,333 L 320,333 L 320,334 L 321,334 L 321,335 L 321,336 L 322,336 L 322,337 L 321,337 L 320,337 L 319,337 L 318,337 L 317,337 L 316,337 L 315,337 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 314,336 L 314,337 L 313,337 L 314,337 L 313,337 L 312,337 L 312,336 L 312,337 L 312,336 L 311,336 L 310,336 L 310,335 L 310,334 L 310,333 L 311,333 L 311,332 L 312,332 L 313,332 L 313,330 L 313,327 L 313,326 L 312,326 L 312,327 L 311,327 L 311,328 L 310,328 L 310,329 L 309,329 L 309,330 L 308,330 L 308,331 L 308,332 L 308,331 L 307,331 L 307,332 L 307,331 L 307,332 L 307,331 L 306,331 L 306,332 L 305,332 L 304,332 L 304,331 L 303,331 L 303,330 L 302,330 L 301,330 L 301,329 L 301,330 L 301,329 L 301,330 L 300,330 L 299,330 L 298,330 L 298,331 L 297,331 L 297,332 L 297,331 L 297,332 \"},\"go\": {\"name\": \"Goiás\",\"path\": \"M 362,259 L 362,260 L 362,261 L 361,261 L 362,261 L 361,261 L 361,262 L 361,263 L 360,263 L 361,263 L 360,263 L 361,263 L 361,264 L 360,264 L 361,264 L 360,264 L 360,265 L 361,265 L 362,265 L 362,266 L 362,265 L 362,266 L 363,266 L 364,266 L 365,266 L 365,267 L 366,267 L 367,267 L 368,268 L 369,268 L 372,270 L 373,271 L 374,271 L 374,270 L 374,269 L 374,268 L 374,267 L 375,267 L 375,266 L 376,266 L 376,265 L 377,265 L 377,264 L 377,265 L 378,265 L 377,265 L 377,266 L 378,266 L 379,266 L 379,267 L 380,265 L 381,265 L 381,266 L 382,266 L 382,267 L 383,267 L 384,267 L 384,268 L 384,269 L 384,268 L 384,269 L 384,270 L 384,271 L 384,272 L 385,272 L 385,271 L 385,270 L 385,269 L 386,269 L 386,270 L 386,271 L 387,271 L 388,271 L 388,270 L 388,271 L 388,270 L 389,270 L 390,270 L 390,269 L 390,270 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 390,272 L 390,271 L 391,271 L 392,271 L 393,271 L 393,272 L 393,271 L 393,272 L 393,271 L 394,271 L 394,272 L 395,272 L 396,272 L 397,274 L 397,273 L 398,273 L 398,272 L 397,272 L 397,271 L 397,270 L 397,269 L 398,269 L 399,269 L 398,269 L 399,269 L 399,270 L 400,270 L 400,271 L 401,271 L 401,270 L 401,271 L 402,271 L 403,271 L 403,270 L 404,270 L 405,270 L 404,270 L 405,270 L 405,269 L 406,269 L 407,269 L 407,268 L 408,268 L 409,268 L 409,267 L 410,267 L 411,267 L 413,267 L 414,267 L 414,266 L 414,265 L 415,265 L 415,266 L 415,267 L 416,267 L 417,267 L 418,267 L 418,266 L 419,266 L 419,267 L 418,267 L 417,267 L 416,267 L 416,268 L 416,269 L 416,270 L 416,271 L 416,272 L 417,272 L 418,272 L 418,271 L 419,271 L 420,271 L 420,272 L 419,272 L 418,272 L 418,273 L 417,273 L 417,274 L 417,275 L 418,275 L 418,276 L 417,276 L 417,277 L 417,278 L 416,278 L 417,278 L 417,279 L 417,280 L 417,281 L 417,282 L 417,283 L 418,283 L 419,283 L 419,284 L 420,284 L 419,284 L 420,284 L 420,285 L 421,285 L 421,286 L 422,286 L 421,286 L 421,287 L 420,287 L 420,288 L 421,289 L 420,289 L 421,289 L 420,289 L 420,290 L 421,290 L 420,290 L 420,291 L 420,292 L 420,293 L 420,294 L 419,294 L 418,294 L 417,294 L 416,294 L 416,293 L 416,292 L 415,292 L 414,292 L 414,291 L 413,291 L 413,292 L 412,292 L 413,292 L 413,293 L 413,294 L 413,295 L 413,296 L 412,296 L 411,296 L 410,296 L 410,295 L 409,295 L 408,295 L 408,296 L 407,296 L 408,296 L 408,297 L 407,298 L 407,299 L 408,299 L 408,298 L 408,299 L 409,299 L 409,300 L 408,300 L 408,301 L 407,301 L 407,302 L 407,303 L 408,303 L 408,304 L 408,305 L 409,305 L 409,306 L 409,307 L 408,307 L 407,308 L 406,308 L 405,308 L 404,308 L 404,309 L 403,309 L 404,309 L 403,309 L 404,309 L 403,309 L 402,309 L 402,310 L 402,309 L 401,309 L 401,308 L 401,307 L 401,306 L 401,307 L 401,306 L 402,306 L 402,305 L 402,304 L 402,303 L 401,303 L 401,302 L 399,302 L 398,302 L 397,302 L 392,302 L 391,302 L 390,302 L 390,303 L 390,304 L 389,304 L 389,305 L 390,305 L 389,305 L 390,305 L 389,305 L 390,305 L 390,306 L 389,306 L 389,307 L 389,308 L 389,309 L 389,310 L 391,310 L 392,310 L 393,310 L 395,310 L 397,310 L 398,310 L 399,310 L 401,310 L 402,310 L 402,311 L 401,311 L 402,311 L 402,312 L 402,313 L 401,313 L 401,314 L 400,314 L 400,315 L 400,316 L 400,317 L 401,317 L 402,317 L 402,318 L 402,317 L 402,318 L 403,318 L 403,319 L 403,318 L 403,319 L 403,320 L 404,320 L 403,320 L 403,321 L 404,320 L 404,321 L 403,321 L 404,321 L 404,322 L 404,323 L 405,323 L 404,323 L 405,323 L 404,323 L 404,324 L 404,323 L 404,324 L 403,324 L 404,324 L 403,324 L 402,324 L 402,325 L 403,325 L 402,325 L 403,325 L 402,325 L 401,325 L 402,325 L 401,325 L 402,325 L 402,326 L 402,325 L 401,325 L 401,326 L 401,325 L 401,326 L 402,326 L 401,326 L 401,327 L 400,327 L 401,327 L 400,327 L 401,327 L 400,327 L 400,328 L 399,328 L 399,327 L 399,328 L 399,329 L 399,330 L 400,330 L 401,330 L 402,330 L 402,331 L 403,331 L 403,332 L 402,332 L 403,332 L 402,332 L 403,332 L 402,332 L 402,333 L 402,334 L 401,334 L 402,334 L 401,334 L 402,334 L 401,334 L 401,335 L 402,335 L 402,336 L 402,337 L 402,338 L 401,338 L 401,339 L 400,339 L 400,340 L 399,340 L 399,339 L 399,340 L 399,339 L 399,340 L 398,340 L 398,341 L 397,341 L 397,342 L 397,341 L 397,342 L 396,342 L 396,343 L 395,343 L 395,342 L 395,343 L 394,343 L 393,344 L 393,343 L 392,343 L 391,343 L 390,343 L 390,342 L 389,342 L 389,341 L 389,342 L 388,342 L 387,342 L 386,342 L 385,342 L 385,341 L 384,341 L 384,342 L 383,342 L 382,342 L 381,342 L 381,341 L 380,341 L 379,341 L 379,342 L 378,342 L 378,343 L 377,343 L 377,342 L 376,342 L 376,343 L 375,343 L 375,344 L 375,345 L 374,345 L 373,345 L 373,346 L 373,345 L 372,345 L 372,344 L 371,344 L 370,344 L 370,345 L 369,345 L 370,345 L 369,345 L 368,345 L 368,346 L 367,346 L 367,345 L 366,345 L 365,345 L 364,345 L 364,346 L 363,346 L 362,346 L 361,346 L 360,346 L 360,347 L 360,348 L 359,348 L 359,349 L 358,349 L 358,350 L 358,351 L 358,352 L 357,352 L 357,353 L 356,353 L 355,353 L 354,353 L 354,354 L 354,355 L 353,355 L 353,356 L 352,356 L 352,357 L 353,357 L 353,358 L 352,357 L 351,357 L 351,356 L 350,356 L 350,355 L 349,355 L 348,355 L 348,354 L 347,354 L 347,355 L 347,354 L 346,354 L 347,354 L 346,354 L 346,353 L 345,353 L 344,353 L 343,353 L 343,352 L 343,353 L 343,352 L 342,353 L 342,352 L 342,353 L 341,353 L 341,352 L 340,352 L 339,352 L 339,351 L 339,352 L 339,351 L 338,351 L 338,350 L 337,350 L 338,350 L 337,350 L 336,350 L 335,350 L 335,349 L 334,349 L 335,349 L 334,349 L 333,348 L 332,348 L 331,348 L 331,347 L 331,346 L 330,346 L 329,346 L 328,346 L 327,346 L 326,346 L 325,346 L 324,346 L 324,345 L 323,345 L 323,344 L 324,344 L 324,343 L 325,343 L 326,343 L 326,342 L 326,341 L 325,341 L 324,341 L 323,341 L 323,342 L 322,342 L 322,341 L 321,341 L 322,341 L 321,341 L 321,340 L 321,339 L 321,338 L 322,338 L 322,337 L 322,336 L 321,336 L 321,335 L 321,334 L 320,334 L 320,333 L 319,333 L 319,332 L 320,332 L 319,332 L 320,332 L 319,332 L 319,331 L 320,331 L 319,331 L 320,331 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 319,330 L 320,330 L 320,329 L 320,328 L 320,327 L 320,326 L 321,326 L 321,325 L 321,324 L 322,324 L 321,324 L 322,324 L 322,323 L 322,322 L 323,322 L 322,322 L 323,322 L 323,321 L 324,321 L 324,320 L 325,320 L 325,319 L 326,319 L 326,318 L 327,318 L 326,318 L 327,318 L 327,317 L 328,317 L 327,317 L 328,317 L 328,316 L 328,315 L 327,315 L 327,314 L 327,313 L 328,313 L 329,313 L 329,312 L 329,313 L 329,312 L 329,311 L 330,311 L 331,311 L 331,310 L 332,310 L 332,309 L 333,309 L 333,308 L 333,307 L 334,307 L 335,307 L 335,308 L 335,307 L 336,307 L 337,307 L 337,306 L 338,306 L 338,307 L 339,307 L 339,306 L 339,305 L 340,305 L 340,304 L 340,303 L 340,302 L 340,303 L 341,303 L 341,302 L 340,302 L 341,302 L 341,301 L 341,300 L 341,299 L 342,299 L 341,299 L 341,298 L 342,298 L 342,297 L 343,297 L 343,296 L 344,296 L 345,295 L 346,295 L 347,295 L 347,296 L 347,295 L 348,295 L 349,295 L 349,294 L 350,294 L 349,294 L 349,293 L 350,293 L 349,293 L 350,293 L 350,292 L 350,291 L 350,290 L 351,290 L 351,289 L 351,288 L 351,287 L 351,286 L 351,285 L 351,284 L 352,284 L 352,283 L 353,283 L 353,282 L 353,281 L 353,280 L 353,279 L 353,278 L 353,277 L 354,277 L 354,276 L 354,275 L 354,274 L 355,274 L 355,273 L 355,272 L 356,272 L 356,271 L 356,270 L 357,270 L 356,270 L 356,269 L 356,268 L 357,268 L 356,268 L 356,267 L 357,267 L 357,266 L 358,266 L 358,265 L 358,264 L 358,263 L 359,263 L 359,262 L 359,261 L 360,261 L 360,260 L 360,261 L 360,260 L 361,260 L 362,260 L 362,259 L 363,259 L 362,259 \"},\"df\": {\"name\": \"Distrito Federal\",\"path\": \"M 398,302 L 399,302 L 400,302 L 401,302 L 401,303 L 402,303 L 402,304 L 402,305 L 402,306 L 401,306 L 401,307 L 401,306 L 401,307 L 401,308 L 401,309 L 402,309 L 402,310 L 402,309 L 402,310 L 401,310 L 400,310 L 399,310 L 398,310 L 397,310 L 396,310 L 395,310 L 394,310 L 393,310 L 392,310 L 391,310 L 390,310 L 389,310 L 389,309 L 389,308 L 389,307 L 389,306 L 390,306 L 390,305 L 389,305 L 390,305 L 389,305 L 390,305 L 389,305 L 389,304 L 390,304 L 390,303 L 390,302 L 391,302 L 392,302 L 393,302 L 395,302 L 396,302 L 397,302 L 398,302 \"}} });\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.canada.js",
    "content": "/** Add Canada Map Data Points */\njQuery.fn.vectorMap('addMap', 'canada_en', {\"width\": 900, \"height\": 867, \"paths\":{\"nt\": {\"path\": \"M340.29,126.02l5.05,-2.26l2.76,0.43l6.5,-3.85l1.23,0.01l1.54,2.19l-1.93,8.62l-1.55,0.59l-2.09,-1.15l-1.22,-2.29l-1.32,0.13l-1.22,2.29l-1.34,-0.24l-0.23,-1.68l-1.46,-1.53l-5.45,1.33l0.72,-2.6ZM104.26,307.63l1.14,-2.98l2.22,-1.67l0.46,-2.51l1.2,-1.51l0.23,-5.06l11.84,-21.11l2.68,2.63l1.46,3.15l0.02,1.76l1.66,1.45l0.66,-0.55l-0.71,-3.84l1.06,0.36l0.07,-0.5l-1.28,-1.24l0.06,-1.25l-1.9,-1.48l0.63,-1.34l1.23,1.78l2.06,-0.46l-1.27,-0.67l-0.73,-2.09l0.91,-2.19l0.82,3.04l1.3,1.4l0.43,-0.74l-0.92,-1.52l0.01,-3.23l0.65,0.02l-0.28,2.19l0.82,0.07l0.59,-1.89l1.87,2.93l1.38,-3.7l2.79,0.44l2.46,2.3l2.79,-4.02l0.7,0.3l-1.1,1.42l0.39,1.34l1.9,1.72l-5.05,2.62l-1.93,2.48l0.9,0.19l1.58,-1.41l2.1,0.22l0.77,-0.72l1.24,0.52l0.71,-0.84l2.64,1.36l1.41,-0.07l3.43,-3.67l2.02,1.7l1.31,0.19l0.94,-0.92l0.78,0.94l6.93,-1.77l0.6,-0.85l0.51,0.79l-0.7,1.79l0.73,0.45l3.57,-3.06l0.03,-0.74l1.1,-0.2l0.29,0.66l1.32,-0.75l0.33,0.91l1.18,-0.31l-0.37,1.09l0.63,0.83l2.24,0.79l2.99,-2.39l-0.43,1.39l0.64,0.69l-0.11,1.21l-1.7,1.0l-6.12,0.53l-2.08,0.64l-1.02,1.21l-1.62,-0.04l-1.6,1.4l-0.25,-1.61l-7.41,-1.01l-2.29,1.84l-0.29,1.06l-5.21,-0.23l-2.66,2.77l-2.4,-0.18l-1.66,2.32l-1.61,-0.49l-0.96,1.13l0.3,2.7l2.2,2.47l0.77,-0.45l-1.27,-1.27l0.38,-0.94l1.27,0.68l0.62,-0.79l0.4,1.43l1.02,-0.16l0.99,1.02l1.61,-0.85l-0.45,-2.08l-1.52,0.19l-0.35,-0.72l1.13,0.16l-0.6,-1.73l0.72,-1.38l2.28,-0.02l0.45,0.71l1.46,-0.81l0.65,0.9l1.17,-1.23l3.27,-0.61l2.33,-2.31l0.67,0.77l-1.51,2.02l0.81,0.22l-0.39,0.95l2.46,-0.58l-0.25,0.99l0.88,0.61l-1.83,2.69l0.65,1.0l1.64,-2.72l7.95,-6.03l5.85,-0.13l2.58,0.65l-1.07,2.79l1.9,1.33l0.27,-1.09l1.24,0.05l5.15,-2.51l1.22,-3.31l1.85,-0.43l4.45,1.02l0.03,-1.32l-2.64,-2.29l1.71,-1.52l-1.85,-0.45l2.47,-2.88l2.54,8.59l-0.04,6.34l-1.07,5.48l2.25,8.32l2.66,3.34l0.85,0.12l0.65,-1.18l1.59,0.69l1.22,-1.47l-0.6,-2.09l0.72,-1.04l-0.89,-1.36l0.56,-0.7l2.36,-0.05l-0.33,1.7l0.79,0.38l1.3,-1.37l-1.55,-1.87l2.51,-2.33l2.01,0.05l0.56,-0.74l0.16,1.45l-2.13,4.05l1.06,1.48l1.87,0.23l-5.37,4.32l0.04,1.48l0.86,0.84l2.07,1.0l0.85,-0.51l1.93,1.27l2.46,-0.33l0.26,-1.48l2.2,0.12l2.25,-5.23l1.23,-0.68l0.86,1.2l5.42,1.52l3.72,2.51l3.56,5.74l-10.78,31.17l22.92,34.62l25.67,33.56l14.94,3.76l6.82,13.72l4.14,3.52l30.8,11.84l26.18,8.96l-10.81,81.09l-51.46,-8.44l-52.41,-11.91l-51.58,-15.14l-28.53,-9.89l-18.38,-7.37l0.81,-1.02l-0.28,-4.88l0.73,-2.33l-1.59,-1.36l-0.37,-3.96l1.97,-1.43l0.22,-3.73l-2.24,-1.11l-1.52,1.67l-2.45,-0.87l-2.02,0.56l-3.8,-3.91l-1.79,1.13l-0.57,-1.54l-1.06,-0.17l-0.9,1.18l-1.62,-1.42l-1.87,0.55l-1.28,-0.91l1.63,-5.05l-1.3,-0.87l1.67,-1.65l0.93,-5.74l-1.07,-1.73l-2.01,-0.66l-1.39,-2.65l-0.78,-2.0l0.37,-3.13l-1.1,-0.69l0.04,-3.67l-0.79,-2.47l-1.51,-0.56l-1.12,0.7l-0.11,-1.18l-2.66,-2.01l0.84,-0.58l0.0,-2.28l1.23,-0.98l-0.39,-0.69l1.61,-0.78l-1.63,-3.36l-0.09,-5.67l3.01,-3.13l-1.57,-1.35l0.26,-2.13l-1.16,-2.28l2.31,-0.46l1.88,-1.83l-0.37,-5.19l-1.66,-0.64l1.9,-0.06l0.56,-1.03l-3.49,-5.55l0.5,-1.17l-0.74,-2.15l0.94,-0.65l0.04,-5.58l-1.89,-2.03l-1.63,0.89l-1.84,-0.85l2.06,-1.84l-1.29,-2.3l-0.01,-2.24l-3.17,-4.16l1.39,-0.32l0.62,-1.63l2.04,-0.76l0.1,-1.36l-1.06,-0.79l0.64,-1.59l-1.0,-0.97l4.88,-2.33l2.73,-2.47l0.15,-4.09l-0.81,-1.96l2.85,-1.34l-1.48,-2.56l-3.29,1.1l0.87,-1.33l-0.22,-1.05l-1.96,-0.69l-2.27,0.42l-1.07,-0.82l0.77,-1.25l-0.44,-0.84l1.7,-0.85l1.09,-2.06l-0.16,-1.35l-1.16,-0.51l1.43,-1.81l0.91,0.37l0.45,-1.72l1.25,-0.83l-0.23,-3.6l1.22,-1.26l-0.87,-3.87l1.56,0.55l0.52,-0.89l-16.25,-8.78ZM207.0,476.23l1.61,4.53l5.87,2.48l0.59,1.9l3.69,3.15l6.27,1.74l4.69,-0.33l1.76,0.73l3.76,-0.8l1.5,1.2l2.72,0.02l2.0,-1.62l0.22,-3.53l2.03,-1.3l2.31,-0.97l1.96,0.23l0.3,1.85l3.53,-0.52l4.71,-1.97l4.89,-4.5l1.91,-0.5l1.98,-1.93l0.04,-1.86l5.21,-3.43l2.82,0.57l0.14,1.03l3.68,0.38l0.65,-0.92l-0.61,-0.65l4.19,-1.04l2.39,-2.13l-0.22,-0.59l-6.06,-1.61l0.35,-0.51l4.93,1.66l0.78,-0.54l-0.9,-0.6l0.42,-0.41l3.57,2.25l-0.52,2.9l3.49,-1.45l1.55,-2.02l-1.55,-1.61l-3.5,-1.36l-3.53,-2.56l-7.39,-0.99l-4.47,1.2l-2.92,1.65l-3.83,5.35l-7.36,4.08l-3.92,-0.15l-0.72,-0.81l-3.17,0.75l-0.99,-1.17l-1.12,0.24l0.13,-0.86l-1.31,-0.93l0.09,-1.38l-3.31,-4.19l0.1,-1.79l-3.43,0.11l-1.7,-2.68l-1.93,-1.37l-0.76,-2.21l-3.15,-2.05l0.15,-0.71l-2.21,-2.46l-1.51,1.96l1.37,2.32l0.46,2.86l3.58,0.85l-1.8,4.28l2.21,1.78l-0.28,1.92l2.36,3.96l-1.1,1.6l-3.31,0.37l-0.87,-1.09l-3.3,-0.31l-3.32,3.82l-0.15,1.58l-1.73,-0.41l-1.46,0.69l1.28,2.16l-1.78,0.66l-0.95,-1.34l-4.58,-2.58l-0.94,0.43l0.03,1.56l-2.72,0.61l-3.89,-4.33l-1.36,-0.2l1.36,1.82ZM179.03,366.19l1.23,1.14l1.05,-2.95l3.02,0.66l0.35,1.43l1.65,0.94l4.89,0.48l0.48,2.95l2.68,-2.11l-0.16,-1.49l8.12,3.1l1.31,1.76l0.26,2.1l2.26,0.8l-1.7,1.71l-3.35,-0.74l-1.03,-1.5l-2.81,-1.71l-3.62,-0.27l-0.01,0.86l1.5,0.47l-0.05,1.18l2.05,1.97l-0.17,1.13l-2.37,1.85l-3.7,0.25l-0.91,1.12l-1.2,-0.13l0.87,2.2l-1.5,2.06l-1.16,0.39l-3.85,-0.85l-1.02,0.69l0.95,1.99l7.94,5.44l1.13,1.57l5.15,-1.44l-0.18,-1.05l2.6,-4.41l6.83,-2.0l2.81,1.33l-1.07,3.16l-3.75,2.86l-2.71,0.66l-0.53,1.61l-1.03,0.5l-2.31,-0.97l-1.56,0.81l-0.48,1.52l0.83,1.79l1.17,0.66l2.7,-1.8l3.15,-0.01l4.39,-2.13l2.0,-0.14l2.25,-2.17l3.37,0.94l-0.18,-3.3l-1.53,-1.0l-0.85,-2.14l3.94,-0.96l-0.42,-1.74l5.94,2.03l-0.23,1.08l2.52,3.2l0.26,-1.1l1.12,0.85l4.77,-0.1l0.43,-1.45l-1.1,-0.13l2.04,-1.38l-3.01,0.14l-0.54,-1.23l2.01,-2.42l2.7,0.59l0.02,-1.17l-1.34,-0.99l2.79,-0.42l1.32,-1.83l-0.37,-1.16l2.69,-2.18l-1.0,-1.29l-1.77,0.84l-0.45,-0.57l2.9,-2.14l0.15,-1.92l-4.08,0.56l-3.44,3.36l-4.18,0.24l-5.52,-2.26l-0.45,-0.98l-2.09,0.14l-1.46,-2.17l-2.34,-0.36l0.32,-0.78l1.63,0.33l-0.01,-1.57l1.13,0.06l1.62,-1.32l4.32,-0.21l2.51,-1.37l3.18,-0.19l-1.55,-2.45l-2.07,-0.71l0.86,-0.58l-2.34,-0.98l-0.08,-1.09l-1.01,-0.39l-9.34,0.7l-1.73,-0.78l-3.27,1.23l-0.23,0.77l-4.53,0.49l-3.99,-1.18l-0.98,1.01l-2.43,-1.06l-1.9,1.06l-0.03,-1.43l-1.47,0.89l-4.68,-0.02l-2.12,0.74l-1.61,-1.82l-2.33,1.46l-3.5,-2.31l-1.4,0.61l-1.36,2.74l0.84,5.19l0.77,-0.04l0.72,-1.84ZM212.83,287.18l-0.0,-0.02l-0.45,-0.39l0.6,0.28l-0.15,0.13ZM211.88,286.62l-0.11,0.01l-0.06,-0.14l0.17,0.13ZM179.99,279.15l0.22,-0.13l-0.03,0.22l-0.19,-0.09ZM142.22,285.94l-0.69,-0.85l0.05,-0.26l0.51,-0.01l0.13,1.12ZM142.77,264.94l0.0,-0.21l0.23,0.0l-0.16,0.1l-0.07,0.11ZM156.42,271.63l-0.26,-0.16l-0.02,-0.28l0.34,0.17l-0.07,0.26ZM155.56,270.82l-0.15,0.03l0.11,-0.14l0.03,0.11ZM159.83,281.2l0.4,-0.64l0.34,-0.13l0.07,0.65l-0.81,0.12ZM202.31,297.59l-0.11,-0.08l0.06,-0.02l0.05,0.1ZM201.72,297.39l-0.66,-0.04l0.07,-0.32l0.01,-0.01l0.59,0.37ZM211.0,288.37l-0.89,0.21l-0.21,-0.52l1.07,-0.1l0.02,0.4ZM207.97,287.77l-0.36,0.28l-0.26,0.01l0.62,-0.56l-0.0,0.27ZM335.03,145.95l1.0,-0.91l-0.03,-4.67l1.26,-2.2l0.69,0.77l4.27,-1.92l3.09,0.31l2.51,-0.9l1.93,0.93l1.22,-0.62l3.04,0.79l-0.79,3.54l-4.36,0.48l-0.82,0.7l0.81,2.8l2.92,0.26l-0.46,3.19l-1.57,2.84l-3.77,1.35l-1.94,-0.92l-4.87,1.52l-1.46,-1.4l-0.3,-2.44l-1.06,-0.05l-1.46,-2.11l0.16,-1.34ZM343.05,180.4l0.53,-2.45l1.48,-0.35l-0.86,3.83l-1.15,-1.03ZM297.62,196.66l-2.81,-3.08l3.43,-3.66l7.2,1.64l3.36,-1.6l1.84,0.21l0.67,-1.17l1.68,-0.67l-0.5,-1.1l-6.96,1.23l-5.82,-1.7l3.14,-3.59l12.45,1.14l-0.22,-1.42l-7.93,-1.17l-2.24,-1.68l1.93,-0.92l0.07,-1.43l-0.97,-0.43l0.79,-1.37l2.92,-1.11l7.07,3.4l1.21,-0.14l0.02,-0.84l-1.49,-0.63l-1.37,-1.85l-2.82,-0.86l-0.3,-0.94l0.54,-1.4l2.58,-1.59l2.72,0.22l1.32,-0.67l0.16,0.75l1.65,0.26l1.13,1.18l-0.79,2.25l0.19,4.4l6.19,-0.25l2.12,2.71l-0.7,1.1l0.22,1.97l3.12,3.75l-2.83,0.82l-0.56,1.29l3.73,0.5l0.64,2.56l-0.82,2.31l0.43,2.83l4.71,-0.03l0.43,0.9l2.08,0.36l-3.46,15.46l-1.6,-0.54l-0.96,1.16l-1.49,-0.26l-0.29,2.07l-7.3,3.12l-5.1,0.78l-4.59,-0.96l-2.46,-1.54l-2.22,-3.46l-0.83,-2.34l0.38,-0.84l4.45,-1.61l3.46,0.41l1.07,-1.88l1.85,-0.47l7.54,1.25l4.33,-3.19l1.09,-1.4l-0.22,-0.82l-1.89,-0.86l-2.08,1.97l-1.45,-0.93l-1.17,0.94l-2.49,-0.21l0.89,-2.14l-0.81,-0.78l-1.01,1.19l0.41,-1.64l-0.83,-0.71l-1.06,3.09l-0.92,0.5l-0.8,0.07l-0.46,-1.42l-0.9,1.31l-3.84,-0.33l0.32,-1.39l1.77,-0.52l-0.23,-1.02l-1.17,0.31l1.46,-2.76l3.52,-1.68l-0.97,-0.99l-2.7,0.74l-0.38,-2.37l-0.91,0.33l-1.8,4.91l-1.27,-2.51l-1.05,0.74l1.08,3.03l-1.36,2.08l-3.46,1.29l-0.74,-0.72l0.75,-4.37l-1.76,1.25l-1.37,-1.35l-0.18,2.89l-0.93,1.06l-2.19,-2.46l1.46,-1.09l-0.26,-0.63l-1.29,0.17l0.9,-2.21l-2.29,-0.11l-1.24,1.13l-1.56,-1.19ZM327.94,134.68l3.9,-1.93l-0.25,1.87l0.84,0.29l1.5,4.62l-3.72,1.43l-2.27,-6.26ZM321.01,163.06l1.64,-1.4l4.15,0.26l1.23,1.73l-0.05,1.17l-1.23,1.11l-5.74,-2.86ZM326.03,261.21l-0.4,-1.5l-1.62,-0.83l-0.63,-3.15l3.92,1.28l-1.26,4.19ZM325.43,263.42l0.07,-0.72l0.09,0.01l0.24,0.88l-0.39,-0.16ZM260.9,269.58l0.42,-3.04l1.57,-3.05l4.59,-3.99l3.77,-0.66l0.24,-2.37l-1.72,-0.97l-0.37,-1.62l3.89,-3.4l2.37,-0.69l4.6,-3.62l3.27,-0.17l2.61,-1.39l7.37,-1.23l6.65,-2.24l1.96,1.51l0.76,4.13l-2.16,5.66l0.16,1.56l-2.64,0.65l-0.45,1.8l-2.29,1.2l0.2,1.21l1.63,0.68l3.03,-1.33l1.9,1.35l2.3,-2.14l0.07,-0.89l-0.92,-0.59l2.08,-2.48l2.58,-1.51l5.25,4.03l4.41,4.94l-0.93,2.75l-1.69,1.01l0.02,0.76l-3.52,1.88l0.79,1.66l-0.7,2.49l4.24,-2.64l0.94,2.06l0.72,-0.16l0.21,-2.62l0.92,-1.22l1.44,-0.1l0.63,-1.52l0.55,0.59l-0.5,1.33l1.36,1.71l0.83,-0.66l-1.02,-1.51l0.87,-0.51l1.37,2.93l-11.48,51.42l-17.46,-4.16l-0.83,1.68l-1.14,0.12l0.0,0.67l1.45,0.6l-2.71,-0.2l0.39,-3.59l-29.83,-8.45l-1.36,2.79l1.84,5.58l-0.46,-0.2l-2.15,-3.26l0.13,-4.89l3.8,-1.52l18.25,1.15l5.68,2.72l1.35,-0.09l6.08,3.41l0.65,-0.81l0.71,0.47l2.24,-0.65l4.22,1.29l0.77,-0.31l0.09,-1.36l-0.57,-0.96l-2.71,-0.99l-0.85,-3.09l-4.83,-2.52l-1.74,-2.41l-1.7,-1.21l-0.85,0.44l-2.39,-2.06l-1.72,0.58l-1.18,-0.69l-1.38,0.56l-7.58,-0.75l-1.02,-0.84l-2.18,-0.06l-1.02,-1.65l-9.36,-2.1l-0.35,-2.73l-2.44,-4.16l0.06,-2.79l4.75,-1.74l6.54,0.4l1.06,-0.88l3.98,-0.43l3.24,0.9l0.7,-1.05l-1.86,-1.16l1.71,-0.55l2.51,1.65l2.88,-0.86l0.17,-0.64l-2.9,-0.09l0.25,-1.03l-2.57,-0.99l-11.15,0.14l0.4,-1.13l-1.05,-1.55l-1.28,0.93l0.71,1.01l-0.39,0.69l-0.78,-0.88l-0.84,0.41l-2.22,-0.81l-0.42,-1.04l0.66,-1.04l4.31,-0.03l0.25,-0.72l-1.15,-1.3l1.24,-0.2l0.19,-0.81l-2.72,-0.71l-1.94,1.08l-1.2,-2.15l-1.98,-0.51l-1.25,0.56ZM315.33,268.23l-0.79,0.05l-0.04,-0.21l1.17,-0.5l-0.34,0.67ZM272.66,162.85l4.64,-4.16l5.15,0.75l3.53,-4.51l5.56,-1.78l0.35,-1.57l1.23,-0.32l3.69,-3.82l3.01,-1.44l2.09,-2.67l6.23,0.54l3.18,3.53l1.58,0.17l0.36,-0.74l1.02,0.52l1.46,-1.56l-0.22,-0.81l-1.45,-0.48l-0.12,-0.94l2.0,-0.8l0.09,-0.67l1.38,0.07l3.52,6.32l-0.71,1.29l-4.29,0.72l-1.27,1.18l0.12,2.98l1.96,2.78l-0.93,0.62l-1.65,-1.71l-0.93,0.51l1.02,3.24l-0.08,2.78l-2.83,1.97l-4.16,-0.31l-0.74,0.87l-0.38,3.99l-1.34,0.94l-2.07,-0.19l-1.48,-3.82l2.69,-6.09l1.64,-1.76l-0.38,-1.79l-1.62,1.02l-1.49,-0.63l-0.68,1.29l-1.12,0.01l-0.08,3.74l-1.39,0.75l-1.27,-1.71l-1.12,0.81l-0.39,1.07l1.24,1.48l-0.17,2.29l-0.71,0.92l-1.58,0.04l-0.8,2.2l-1.34,1.07l0.23,-6.34l-2.15,0.29l-0.4,3.84l-1.82,1.22l0.98,2.96l-0.86,-0.21l-2.15,2.57l-0.71,0.02l-0.37,-1.45l-2.02,1.61l1.52,-3.13l0.0,-1.45l-1.3,-0.19l1.22,-3.06l-0.72,-1.92l-1.64,0.63l-1.1,3.43l-2.24,1.0l-1.95,-3.6l-1.81,-0.41l-0.67,1.27l-1.44,0.51l-0.88,-0.46l2.44,-4.16l-0.84,-1.36l-1.28,0.23ZM299.5,310.16l0.53,0.27l0.45,0.46l-0.39,-0.06l-0.6,-0.66ZM287.58,182.41l6.55,-5.43l2.92,-0.38l3.03,-2.49l0.92,0.33l-1.17,2.49l-6.46,7.49l-2.56,1.32l-1.02,-1.78l-2.21,-1.55ZM219.8,246.37l1.52,-3.11l1.68,-0.43l-0.15,-1.48l1.45,-0.33l2.92,-3.8l3.01,-1.09l-0.3,-1.38l1.39,-1.18l0.37,-3.63l0.67,0.55l3.73,-0.49l0.42,-1.4l-1.4,-2.89l1.96,-1.12l3.44,-4.93l3.16,-1.5l0.96,-2.46l1.55,-0.35l1.1,-1.28l0.25,-1.97l-1.74,-1.84l1.12,-10.83l12.68,2.22l6.68,0.2l2.16,1.86l0.24,2.19l3.74,4.86l2.46,1.93l-1.97,2.47l0.11,1.84l0.74,-0.05l0.38,-1.36l2.29,-2.06l1.47,0.76l-0.4,2.36l-1.46,1.97l0.34,0.56l1.8,-0.08l1.7,-1.79l0.09,-1.82l0.98,-0.4l4.16,-0.06l3.39,2.19l2.27,4.11l3.45,9.67l1.44,1.82l0.81,3.18l-0.08,1.01l-3.31,1.88l-4.92,0.78l-21.54,8.24l-3.03,5.52l-0.93,0.52l-2.88,1.16l-2.62,-1.86l-0.7,3.3l-3.38,3.51l-1.26,5.18l-2.89,3.36l-5.75,0.43l-0.32,-1.92l-1.09,-0.53l-4.35,3.08l-3.99,0.69l-1.69,1.33l-1.8,-0.62l-0.51,-1.09l-0.33,-12.47l-5.62,-8.84l1.12,0.8l0.5,-1.07l-5.29,-2.0ZM279.35,469.63l-0.81,0.33l-0.13,-0.34l0.26,0.05l0.67,-0.04ZM278.07,469.33l-0.38,-0.18l-0.06,-0.16l0.41,0.07l0.03,0.27ZM275.16,468.95l-0.59,0.05l-0.03,-0.13l0.49,0.0l0.13,0.08ZM281.78,464.95l-4.05,-0.88l-0.14,-0.35l4.03,1.11l0.15,0.12ZM276.6,463.76l-0.13,0.17l-0.35,-0.58l0.41,0.41l0.07,0.01ZM276.39,464.3l0.36,0.54l-0.9,1.06l-6.11,-0.67l6.65,-0.93ZM269.08,465.37l-0.54,0.79l-1.14,0.56l0.84,-1.17l0.84,-0.18ZM278.74,175.78l-0.49,-0.42l1.55,-0.55l-0.56,0.63l-0.51,0.34ZM280.74,173.18l-0.05,-0.53l0.37,-0.4l-0.17,0.44l-0.15,0.48ZM265.82,295.59l0.41,0.33l-0.56,-0.18l0.16,-0.15ZM262.97,472.57l0.3,-0.5l1.01,-0.75l0.1,0.75l-1.41,0.49ZM264.57,470.49l-0.08,-0.04l0.12,0.01l-0.04,0.03ZM261.08,475.09l1.41,-0.74l0.34,0.01l-1.59,0.92l-0.17,-0.19ZM260.71,477.06l0.01,-0.01l0.26,-0.29l-0.23,0.28l-0.05,0.03ZM252.27,478.12l1.89,-0.13l2.85,-0.98l-2.56,1.2l-2.18,-0.09ZM253.39,475.23l0.88,-0.91l2.58,0.13l-1.27,0.75l-2.19,0.02ZM253.56,482.0l0.82,-1.36l0.08,0.05l0.52,0.89l-1.41,0.42ZM255.87,479.98l0.06,-0.04l-0.0,0.02l-0.05,0.02ZM252.51,480.41l0.2,-0.7l0.82,-0.39l-0.5,1.23l-0.52,-0.13ZM248.01,474.32l0.05,0.02l-0.05,-0.01l-0.0,-0.0ZM248.08,474.34l0.75,0.13l-0.24,0.0l-0.51,-0.13ZM221.25,374.75l-0.01,0.26l-0.25,-0.1l0.2,-0.1l0.06,-0.06ZM220.4,374.64l-0.4,-0.18l0.34,0.07l0.06,0.11ZM225.82,389.55l2.08,-1.35l0.69,0.67l-1.45,0.55l-1.32,0.13ZM226.56,364.82l0.55,-0.0l0.3,0.2l-0.94,0.2l0.1,-0.39ZM212.26,480.34l1.69,-0.47l1.05,1.42l-1.79,-0.03l-0.96,-0.92ZM198.62,367.19l0.57,-0.1l0.15,0.16l-0.12,0.1l-0.6,-0.17ZM192.01,266.81l0.3,-0.37l0.16,0.54l-0.24,0.16l-0.23,-0.33ZM134.31,262.76l0.12,-0.19l0.63,-0.37l-0.53,0.46l-0.22,0.1ZM132.82,267.14l0.27,0.07l0.02,0.08l-0.15,0.11l-0.14,-0.25Z\", \"name\": \"Northwest Territories\"}, \"nu\": {\"path\": \"M694.52,496.9l1.45,-0.41l1.5,1.75l-1.78,-0.16l-1.18,-1.18ZM682.85,477.29l0.06,-0.73l3.09,-1.55l2.28,-0.08l0.16,0.84l0.97,-0.11l0.46,2.5l-0.68,2.21l-0.48,-0.03l-0.07,-0.92l-1.47,0.05l-4.32,-2.18ZM458.76,294.96l0.81,-2.89l2.15,-0.98l0.63,-1.06l-0.43,-1.03l-1.73,-0.01l-0.34,-2.89l1.13,-2.2l0.18,-3.94l1.05,-0.04l0.7,-1.09l-0.42,-2.4l1.76,0.32l0.23,-0.85l-1.04,-1.03l1.57,-7.74l1.62,-0.71l-0.82,-1.1l0.61,-0.81l1.96,0.32l-0.1,-0.83l-1.25,-0.66l0.98,-1.74l5.77,-6.74l3.91,-2.04l3.49,-1.3l9.14,0.53l1.4,1.76l-4.2,4.64l-2.77,4.99l-3.85,10.54l-0.33,3.11l0.51,1.79l2.87,3.81l-0.94,7.56l0.38,2.71l2.15,4.67l4.81,6.14l3.81,1.67l0.83,2.53l-2.26,-0.26l-0.55,1.17l-1.27,0.17l-0.32,1.27l-1.2,-0.52l-1.85,0.77l-2.42,2.82l-3.81,1.88l1.46,0.7l2.86,-0.76l3.54,-3.28l1.99,-0.62l2.28,0.52l1.59,-0.81l-0.01,0.92l-1.91,0.79l1.09,0.43l0.39,3.17l1.59,0.09l0.64,-1.5l-0.58,-4.42l0.82,-0.76l-0.95,-1.67l0.13,-2.55l1.52,-1.47l-0.77,-4.04l-1.08,-0.95l-1.26,0.21l-0.19,0.88l-2.62,-0.82l-1.39,-1.8l0.57,-0.85l-1.02,-2.06l-2.93,-2.0l1.72,0.19l-0.23,-0.81l1.6,-0.72l0.77,-1.71l-0.74,-1.32l0.95,-0.96l2.07,0.23l3.15,2.51l2.6,3.96l0.62,-1.59l-2.0,-3.48l-1.33,-0.47l-0.71,-1.71l-1.53,-0.76l0.54,-1.17l1.87,-0.1l0.6,-1.22l-2.53,0.16l-0.02,-1.86l-2.05,1.96l-2.72,-1.64l-0.66,-1.5l0.9,-0.86l-1.62,-1.3l-0.08,-5.91l0.49,-1.27l2.32,0.46l8.46,3.95l0.2,-0.85l-7.54,-4.52l-1.19,-2.97l4.62,1.57l3.94,0.35l1.4,0.94l0.52,0.05l-0.06,-0.89l-1.15,-1.13l-5.25,-1.25l-3.8,-1.83l0.2,-2.03l1.57,-1.49l2.59,3.45l0.84,-0.07l-1.98,-3.94l2.49,-1.67l2.45,0.71l0.73,2.42l1.01,0.58l-0.44,-4.04l-2.15,-1.01l1.91,-1.63l2.87,-1.84l0.95,0.17l1.13,-1.93l8.12,-0.24l2.03,3.56l0.89,6.26l3.98,2.05l0.4,5.23l2.94,3.88l-6.36,11.46l0.38,0.63l1.13,-0.55l2.05,-4.19l1.74,-1.68l0.11,2.17l-1.34,1.85l-0.46,2.25l-0.79,0.26l2.08,1.84l-1.87,0.37l-0.52,1.02l0.41,0.94l1.41,-0.3l-0.92,3.15l0.58,0.45l1.15,-0.69l0.41,-1.77l2.28,-1.73l0.09,-1.6l-0.82,-1.04l1.41,-0.97l-0.47,-1.72l2.0,2.6l2.0,0.71l0.49,-0.54l-3.79,-3.93l1.65,-2.2l1.33,1.64l-0.92,2.03l0.5,1.05l1.2,-1.41l0.58,1.55l0.67,0.07l-0.54,-2.39l0.82,-2.03l2.22,2.2l-0.01,4.19l-0.91,2.69l3.67,0.78l1.42,1.23l0.72,-0.44l-0.94,-1.98l-2.18,-1.13l-0.11,-2.89l2.0,1.09l2.74,5.74l2.56,1.06l0.37,-0.6l-0.59,-0.47l0.48,0.2l0.58,1.0l0.46,0.13l0.31,-2.04l-1.44,-0.54l-1.99,-2.7l-1.25,0.05l-1.18,-2.89l-3.1,-1.8l0.23,-2.0l0.81,-0.64l1.53,3.78l0.7,-0.56l-0.84,-2.73l4.17,1.24l1.67,3.05l0.31,-1.89l1.65,-0.35l2.58,0.69l-1.25,-1.26l-2.89,-0.23l-4.95,-2.4l-2.16,-1.59l-0.28,-1.48l1.88,-3.33l3.54,-2.72l4.48,-0.37l1.9,2.09l3.11,0.45l1.17,2.53l0.66,-0.47l0.09,-2.19l4.86,1.25l2.44,4.69l-1.4,2.86l-2.51,-0.03l-2.91,2.14l-1.64,4.99l0.34,0.81l0.78,-0.31l1.65,-4.7l1.99,-1.69l2.53,0.44l-2.18,1.63l-0.21,3.99l-0.7,2.19l-1.44,0.77l0.37,0.84l2.18,-1.16l0.87,-5.95l2.2,-1.18l0.54,-2.42l4.77,0.15l0.92,0.9l0.31,4.15l-1.97,0.09l-0.85,2.3l-4.48,1.99l0.51,0.8l2.58,-0.61l-2.65,3.27l0.23,0.7l4.5,-4.29l-0.72,2.3l-1.41,0.53l-0.65,1.37l0.51,0.92l1.59,-1.43l-0.53,1.24l1.75,1.04l-1.73,5.16l0.85,-0.17l2.17,-4.96l-1.21,-2.74l0.93,-3.23l1.84,-1.94l-0.53,2.66l1.29,1.72l0.43,-0.58l-0.72,-1.5l0.93,-2.99l1.3,-0.61l0.43,0.98l-1.55,5.36l-1.77,1.59l0.33,0.71l1.37,-0.82l-0.44,2.48l0.69,0.43l-0.72,1.87l0.74,0.32l1.26,-3.14l0.14,-4.67l0.6,-1.12l0.55,0.31l0.3,4.12l0.97,0.29l-1.3,7.07l1.74,-1.05l-0.01,-3.42l1.24,-2.36l1.43,0.77l-1.0,1.14l0.37,2.74l-0.87,1.71l0.76,1.2l0.75,-0.22l-0.38,-1.22l0.66,-0.72l0.18,-3.34l1.11,-0.99l-0.55,-3.23l1.39,-0.8l-0.7,-1.6l1.11,-1.15l-0.11,-2.23l7.09,1.89l3.84,4.21l-1.34,4.44l-2.64,-0.48l-1.5,1.0l-1.3,4.83l-2.72,1.93l0.49,0.59l3.05,-1.76l0.6,0.28l-0.76,3.18l-1.54,1.42l0.84,1.0l1.6,-1.56l0.59,-2.29l3.77,-3.12l3.02,-0.31l-0.93,-1.5l0.25,-2.25l1.71,-2.07l1.16,0.31l1.43,3.02l-0.98,1.81l-0.07,2.43l-1.64,1.47l-0.41,2.01l-2.89,0.05l-0.55,3.73l-1.4,0.93l0.45,0.64l1.24,-0.56l-0.27,2.28l0.79,0.6l1.26,-6.02l1.72,-0.08l0.36,5.62l-0.83,5.48l0.79,0.18l0.98,-2.69l0.71,-8.86l-0.45,-2.09l6.26,-6.82l-0.21,2.66l-3.02,2.97l0.77,3.83l1.58,-1.31l-1.02,-1.74l2.5,-0.4l0.18,-1.3l1.9,-1.09l0.75,-2.36l1.58,-0.17l1.09,1.02l6.27,2.05l-0.34,3.45l-0.45,-1.6l-0.83,0.0l-0.14,3.21l-4.87,2.77l-2.19,2.43l-0.3,1.67l-1.71,2.25l0.92,0.23l0.52,-1.07l1.16,0.6l-2.02,0.92l-1.88,3.28l1.42,0.23l1.66,-2.94l2.17,-0.77l-0.68,-2.21l0.4,-1.35l6.26,-2.93l-0.07,3.04l-1.99,1.87l-1.36,3.53l-2.35,0.15l-0.71,1.11l-0.46,3.71l0.27,0.82l0.83,-0.16l0.69,-3.99l2.71,-0.23l1.41,-3.32l0.91,-0.9l2.28,-0.43l0.37,-2.31l1.97,-2.33l-1.27,-1.13l0.67,-2.95l2.01,0.73l3.74,3.23l1.93,2.18l1.76,3.93l-6.27,0.46l-1.77,3.58l-2.6,0.34l-3.44,3.23l-4.02,0.25l-1.72,0.89l0.07,0.9l1.28,0.36l1.62,-1.27l2.97,0.23l4.53,-2.87l4.88,1.63l5.57,-1.45l3.67,1.66l1.55,2.31l-0.24,1.15l-3.01,-0.29l-2.5,1.13l-5.72,-1.84l-6.46,0.58l-1.45,2.21l0.35,0.67l2.06,-1.92l4.11,0.37l1.46,-0.52l0.8,0.68l-6.03,1.08l-0.3,0.6l0.9,0.46l2.07,-0.62l-3.26,2.35l0.4,0.95l0.8,-0.48l0.07,2.84l1.08,-0.89l0.01,-2.02l2.87,-2.49l5.01,1.6l-1.57,1.24l-1.72,-0.31l-2.31,1.01l-0.02,0.97l1.91,-0.56l1.88,0.31l0.15,0.86l-2.9,0.05l-0.19,0.73l0.95,0.26l-1.58,0.41l0.24,1.08l-5.42,-0.71l-0.86,0.94l0.74,1.32l2.91,-0.38l0.31,1.19l0.89,-0.69l5.36,0.01l-1.22,1.14l-3.09,0.27l-0.95,1.34l0.31,0.64l3.61,0.04l0.45,-0.89l3.35,0.67l0.56,2.64l0.79,-0.88l-0.22,-2.22l1.72,-0.57l-0.53,0.96l0.8,2.28l-1.6,1.41l0.31,1.5l1.79,-1.47l-0.6,1.28l0.8,0.33l0.96,-0.69l0.55,-2.01l0.58,0.43l0.56,-0.92l0.88,0.18l-1.47,1.59l0.12,1.99l-1.73,0.21l0.58,0.87l1.94,-0.08l0.15,-2.53l1.34,-1.3l1.77,0.49l-0.39,4.49l0.95,0.37l0.82,-2.33l0.77,2.57l0.61,-0.83l-0.18,-2.76l1.41,-0.1l-0.96,1.14l1.84,-0.34l0.55,0.95l-0.76,3.14l-1.92,-0.02l-0.47,1.06l2.77,0.36l0.79,0.91l0.09,-3.94l1.35,-1.57l1.03,5.61l1.15,2.05l-0.29,-4.16l0.97,-2.03l-0.49,-1.05l1.69,-1.02l-0.18,4.17l3.55,3.47l0.41,-0.64l-0.92,-2.03l-1.79,-1.22l0.3,-2.6l1.38,-1.36l0.53,-2.01l2.04,0.51l-2.13,1.4l0.88,0.7l-0.9,1.04l0.09,1.47l0.94,-0.04l-0.8,1.83l0.42,1.53l0.85,0.05l0.02,-1.75l1.06,-1.77l0.29,1.67l1.08,0.0l0.39,-3.01l1.86,0.94l-1.5,1.87l0.5,0.54l2.2,-1.87l0.45,1.91l1.53,-0.23l0.25,1.77l-2.01,0.91l-0.13,0.76l1.32,0.31l1.95,-0.85l1.02,1.54l-0.3,0.73l-6.13,1.04l0.32,0.64l3.99,-0.1l-3.41,1.94l0.02,1.07l4.64,-2.24l-3.23,3.11l0.68,2.8l0.78,-0.41l0.29,-2.67l3.86,-2.21l0.36,-1.11l2.54,-0.87l0.14,2.09l-1.33,3.04l1.01,0.96l0.04,-1.63l1.77,-2.6l-0.25,-2.7l1.02,-0.27l0.09,-1.48l1.27,1.36l-1.64,2.84l1.15,2.57l-1.97,1.92l0.05,1.54l-1.63,0.7l0.46,0.73l2.68,-1.15l0.3,2.12l0.91,0.15l-0.3,-3.92l2.69,-2.39l1.91,6.56l0.57,-3.76l-0.93,-2.78l0.9,-0.23l2.94,3.38l0.85,-0.11l-2.02,-3.16l0.89,-1.25l-0.59,-1.65l0.99,-0.64l0.59,2.76l1.4,0.67l2.48,-1.02l-0.42,1.17l1.9,-0.0l2.62,2.39l-1.44,1.9l-1.63,-1.41l-2.47,-0.4l-1.53,2.28l1.11,0.54l0.85,-1.1l1.16,-0.0l2.51,1.93l-2.0,1.12l-0.45,1.57l3.33,-1.15l0.33,0.62l-1.74,0.77l-0.68,1.22l-2.06,0.07l-0.94,-1.55l-3.33,0.22l-0.67,1.52l1.19,0.3l0.67,-0.67l1.35,1.66l-1.47,1.5l-1.69,-1.64l-1.16,0.52l2.54,2.46l1.37,-0.8l3.11,0.43l1.48,1.82l-1.48,1.02l-1.88,-0.46l-2.09,0.56l-1.9,-1.83l-1.15,1.0l2.69,2.02l3.48,-0.01l-0.09,0.93l1.44,1.25l-1.99,0.71l-2.48,-1.31l0.46,1.66l2.55,1.16l-1.81,-0.21l-1.18,0.67l1.03,2.77l-1.94,-0.19l-3.62,-4.71l-1.02,0.17l2.44,4.42l-2.56,1.36l0.87,0.62l2.74,-0.07l-0.47,1.12l-1.48,-0.95l-0.06,1.62l0.97,0.67l-0.85,0.57l3.04,2.42l-0.33,2.51l0.71,1.05l0.88,-0.01l-0.39,3.16l-0.71,-0.48l-0.98,0.83l0.81,-0.75l-0.37,-0.81l-1.27,0.7l-0.49,-2.99l-0.88,0.34l-0.38,1.72l-0.85,-0.15l-0.05,1.31l-0.79,-0.78l0.87,-1.93l-0.86,-0.2l-1.53,1.14l-0.15,-4.85l-0.54,-0.34l-1.28,2.78l0.46,3.9l-1.3,-1.32l0.32,-0.69l-1.2,-0.53l-0.74,0.72l1.15,-1.55l-1.02,-0.51l2.37,-1.47l0.14,-1.53l-0.66,-0.44l-1.92,1.03l-2.38,2.45l-0.68,-0.57l-0.39,-0.92l1.43,-0.95l1.17,-3.45l-1.8,0.09l-0.53,2.51l-1.2,0.35l-0.18,-0.92l1.2,-1.96l1.26,-0.6l-0.05,-0.89l-2.03,0.6l-1.02,1.66l-1.71,0.12l0.07,-1.83l-0.9,-0.19l0.37,-2.25l2.59,-2.46l1.89,0.05l-1.12,-1.26l-0.07,-3.39l2.02,-3.11l-0.26,-1.14l-2.75,2.4l-0.76,4.42l-2.19,1.34l-0.68,1.46l-3.64,1.6l-0.61,-1.34l1.9,-3.13l0.51,-3.0l-0.49,-1.87l-0.82,0.26l-0.42,4.19l-1.85,1.91l-1.96,-1.27l0.08,-1.8l-0.91,1.0l-1.47,-0.11l-0.22,-1.13l-0.8,-0.16l0.48,-1.42l-1.86,1.32l-0.01,-1.41l-1.07,0.18l-0.29,-3.03l-3.02,-0.41l-0.33,0.65l1.3,1.39l-1.32,0.44l-3.38,-1.1l-1.64,1.75l0.65,0.65l3.31,-0.23l1.45,1.71l-1.41,-0.44l-0.63,0.73l2.54,1.48l-0.75,0.54l-3.37,-2.45l-1.21,0.06l-0.62,-1.05l-1.59,0.71l2.58,2.79l0.71,2.23l4.32,1.87l1.25,2.89l-1.14,-0.1l-0.36,0.99l-0.95,0.19l-1.16,-0.82l-0.63,0.35l0.43,1.06l-0.9,0.16l-1.24,-1.61l-0.02,-1.8l-2.32,-0.81l-0.78,-1.44l-1.08,0.43l-1.36,-1.55l-0.54,0.71l0.68,1.2l-2.73,1.06l1.68,0.75l1.7,-0.77l1.93,1.66l0.98,-0.34l-0.28,-0.56l0.87,0.64l-0.92,0.94l-1.22,-0.38l0.54,2.52l1.65,0.43l0.57,2.33l2.14,-0.51l-0.31,1.6l0.98,0.82l-0.66,0.16l-0.36,1.53l1.06,2.13l1.86,-3.65l2.1,-1.36l1.0,0.28l-0.84,3.01l1.43,0.98l1.74,-0.66l0.42,0.5l-2.45,2.15l1.09,0.59l0.61,-0.73l0.74,0.38l0.35,1.81l1.87,0.07l-0.75,2.75l2.93,0.13l0.51,0.75l-0.6,0.81l1.04,0.41l1.04,2.94l1.07,-0.96l-1.47,-4.21l3.15,2.35l1.08,-0.49l0.21,1.48l-1.08,0.93l1.08,0.23l0.57,1.18l0.9,-0.33l-0.13,-1.23l0.04,-0.29l0.53,1.04l0.72,-0.24l1.33,1.16l0.75,-0.38l-1.77,-2.91l0.08,-1.17l0.38,1.13l0.64,-0.23l0.45,2.13l0.78,-0.34l-0.19,-1.13l0.42,0.49l0.19,1.22l-1.03,1.45l0.96,2.23l1.61,-0.41l1.21,0.68l2.52,-1.24l-1.19,1.69l0.86,1.29l-2.62,0.09l-1.03,1.31l1.69,-0.21l-0.52,1.12l2.32,0.04l-0.54,1.3l1.7,-0.32l0.74,2.53l2.23,-0.34l0.5,0.75l0.9,-1.34l1.08,0.09l-1.53,1.95l-0.46,2.02l0.95,0.96l2.14,-0.06l1.74,1.04l-0.27,1.18l1.64,3.22l-0.97,0.64l1.28,0.68l-0.55,1.25l0.9,0.27l-0.51,0.23l-1.11,-0.91l-3.12,-5.31l-2.87,-2.59l-1.87,0.31l3.78,3.29l-0.64,0.99l0.77,1.77l-0.59,0.67l2.56,1.98l-1.19,-0.05l-0.53,1.14l1.27,1.72l2.63,0.42l-0.39,0.88l0.97,1.02l-0.06,1.3l1.26,0.59l-0.85,0.68l-2.59,-1.8l-0.65,0.89l-1.24,-0.34l4.6,6.01l-1.04,1.6l-1.8,-2.14l0.42,-1.04l-1.58,-2.97l-2.0,2.36l-1.49,-1.33l-0.57,-2.67l-2.36,1.98l-0.47,-1.12l-2.59,-1.17l-0.36,0.86l2.3,2.5l-2.22,-0.51l-3.65,-4.53l-0.14,-1.92l-0.72,0.04l-0.26,2.36l-0.83,0.26l0.7,1.87l-1.38,-1.03l0.36,-0.84l-0.93,-2.4l-0.93,0.26l0.37,2.04l-1.2,-0.16l-8.11,-7.18l-0.4,0.91l3.71,6.15l-4.19,-3.47l-0.79,0.11l-1.1,-1.62l-0.72,0.95l-1.29,-1.34l-2.46,-0.28l-0.19,0.97l-2.23,0.29l2.05,2.1l-0.06,0.88l6.19,4.57l1.06,1.94l2.68,0.57l0.26,1.45l0.99,-1.03l1.0,0.23l-0.45,0.99l0.92,1.52l1.18,0.53l1.56,-1.7l1.35,1.12l-0.52,0.84l1.63,-0.42l-0.25,1.11l1.32,-0.23l1.91,2.8l1.63,-0.84l2.41,1.54l0.95,2.34l1.55,0.16l-0.92,0.86l0.36,0.76l1.38,0.89l3.39,-0.2l-0.06,2.36l-0.75,-0.65l-0.63,1.02l1.25,1.91l1.95,1.23l-3.51,1.15l-3.64,-1.76l-3.28,0.37l-1.57,-0.92l-0.43,0.51l-0.56,-1.0l-11.24,0.57l-3.15,-1.87l-1.57,0.4l-1.67,-0.82l-0.9,-0.67l-0.77,-2.65l-0.67,1.08l-0.84,-0.79l-0.49,0.44l-0.5,-0.52l1.1,-0.91l-0.18,-1.79l-4.59,-0.09l0.32,1.1l-1.13,-0.32l-0.75,1.07l-1.42,0.12l-2.52,-1.63l-2.55,0.01l-0.22,-0.74l-1.26,-0.11l-0.63,-1.48l1.01,-1.89l-1.32,-0.83l-0.81,0.48l-0.15,1.58l-1.2,-0.09l-0.26,1.25l-1.15,-0.06l-0.18,-1.19l-2.62,-0.45l-0.01,-1.66l-1.15,-0.38l-0.4,-2.19l2.64,-1.94l1.06,-3.03l-2.33,0.05l-0.77,-0.38l0.15,-1.01l-2.36,-0.48l-1.64,-1.22l-1.53,2.05l-1.14,-0.8l1.0,-2.68l-1.09,0.32l-0.3,-0.9l-0.73,0.09l-0.88,2.78l-1.46,-0.6l-0.12,-2.77l-0.89,-1.25l-0.61,-0.22l-0.24,1.63l-0.64,-0.07l-1.06,-2.78l-1.29,-0.25l-0.78,-1.57l-2.81,-2.03l1.32,-3.66l-1.91,-1.59l-0.6,0.96l0.68,1.51l-0.77,-1.17l-0.98,0.41l-1.26,-1.16l-0.16,2.19l-1.68,-0.74l-0.59,0.55l-1.43,-3.04l-0.89,1.86l-1.92,0.44l-0.32,0.92l-1.6,-1.78l1.46,-2.42l-1.95,-1.23l-0.97,1.2l0.21,1.06l-2.14,0.85l5.01,3.85l-1.25,0.58l1.23,1.55l-1.02,1.15l-4.16,-1.4l-0.56,0.74l-5.24,-2.36l-0.66,0.66l0.31,1.11l1.25,1.18l-1.44,-0.25l-0.25,0.79l1.33,1.25l-1.42,-0.29l-3.18,1.42l-0.16,0.85l-2.85,0.86l0.25,1.83l-3.37,-1.4l-1.67,1.18l-1.64,-1.8l-1.4,-0.53l-0.65,1.01l-1.01,-0.4l0.18,-0.96l-1.38,0.16l0.23,-0.61l-1.94,-1.93l-0.47,-1.74l0.58,-3.71l-0.93,-2.07l3.67,-4.09l2.52,-1.32l-1.88,-2.8l1.66,-1.13l-1.25,-1.47l2.48,0.81l3.41,-0.38l7.68,2.38l0.82,1.41l2.51,1.24l0.41,1.5l-1.87,1.27l1.01,1.62l0.99,0.07l-0.18,1.52l1.75,0.96l0.9,-1.11l-1.68,-3.68l1.26,-0.56l0.06,-3.01l-0.99,-0.23l-0.4,1.88l-1.94,-2.57l-3.27,-1.88l1.79,-0.4l0.8,0.76l3.16,0.01l1.08,-0.93l-0.22,-2.0l2.56,-0.54l1.92,0.93l2.85,-4.62l1.06,0.43l1.52,-0.66l0.97,1.1l2.11,-0.37l-3.09,-6.4l-2.77,-1.27l-4.63,-4.88l6.7,-9.38l0.47,-2.31l2.72,-1.98l-0.57,-1.95l0.71,-4.69l2.8,-1.64l0.84,-1.87l0.01,-2.66l-1.36,-0.67l-2.24,-5.92l-1.49,-0.85l0.01,-2.17l-1.63,-1.76l-1.09,-0.18l-2.05,-6.75l-1.27,0.29l-1.56,-1.11l0.71,-1.45l-0.85,-0.81l-1.85,2.62l-2.05,-0.67l-0.84,-1.08l1.1,-2.31l-1.12,-3.85l-3.03,-0.48l-0.77,0.78l2.8,3.56l-3.02,-0.07l-1.14,-0.93l-1.95,-2.33l0.9,-2.17l-1.15,-0.58l-0.42,-1.6l-1.96,-0.45l2.21,-1.04l-1.72,-1.53l-2.01,1.99l-0.14,2.43l-3.08,-2.24l-0.47,3.0l-4.76,4.7l-1.75,0.63l-0.45,-1.23l0.68,-2.68l-0.97,-0.74l-0.22,-1.81l1.19,-0.86l3.37,0.52l1.44,-1.92l1.11,-0.14l-0.14,-3.68l-3.42,-2.68l-1.7,-0.62l-1.39,0.45l-2.08,-2.49l0.71,-1.96l1.85,0.5l-0.06,-1.84l-1.74,-0.47l-1.73,0.58l-0.26,0.56l0.86,0.42l-0.81,1.64l-0.82,-0.16l0.17,-1.07l-1.38,0.87l-1.26,-0.62l2.11,-0.67l0.62,-1.2l-0.94,-1.07l0.67,-1.5l-1.74,0.37l-0.4,-0.83l-1.71,0.78l1.88,-1.51l-0.3,-1.04l-4.26,3.03l-1.32,-7.62l-1.7,-1.3l-1.24,0.89l-1.16,-0.49l-0.97,1.04l-1.01,-1.45l0.52,-1.14l-1.65,-0.04l-1.43,-2.16l-1.85,0.18l0.94,-1.83l1.32,0.06l-2.58,-2.93l-1.55,1.42l0.97,0.71l-0.47,1.38l-0.86,-0.66l-1.19,1.92l-1.26,-1.9l-2.0,-0.79l-0.61,-1.5l-1.55,-0.0l-0.56,0.88l-1.0,-2.07l-1.84,0.25l-1.42,1.35l-2.01,-0.26l0.06,1.38l1.15,1.12l2.88,-0.22l0.96,1.23l1.36,-0.58l0.19,-0.9l1.32,0.13l3.63,2.75l-0.22,1.38l1.06,0.86l1.03,-0.19l1.43,1.13l1.2,-0.57l1.8,2.7l1.09,3.44l-0.59,2.38l-5.95,1.45l-1.74,-2.45l-0.89,0.39l-0.46,-0.81l-2.2,0.42l-1.6,-1.01l-9.18,-0.84l0.53,1.75l2.11,1.44l0.97,-0.67l0.69,0.48l3.45,4.13l-0.58,0.97l-4.99,-3.98l-0.07,-0.83l-1.35,0.04l-2.89,-2.78l-7.03,-3.72l-0.63,0.65l2.03,2.2l4.22,1.67l3.95,3.07l-0.83,1.43l-0.97,-0.26l-0.93,1.2l-2.06,-0.44l-5.56,-3.13l-3.56,1.76l-7.45,-0.82l-0.91,-0.57l0.02,-1.7l-1.29,1.08l-2.79,-0.72l-3.39,0.36l-0.71,1.52l-4.48,-4.09l-0.29,-2.53l1.96,-2.46l-0.76,-1.4l-2.55,3.48l-1.81,-2.18l-1.59,0.75l-0.84,1.74l1.76,0.28l0.14,1.23l-3.28,-0.82l-2.57,0.39l-3.84,-2.75l-2.22,-0.36l-1.4,-1.55l-3.86,-7.62l1.3,-0.38l0.48,-1.01l-2.06,-2.13l2.05,1.18l3.47,-0.53l1.43,0.48l0.66,1.5l3.26,0.51l3.83,-0.4l0.7,-1.35l1.65,0.38l0.42,-0.86l-5.34,-2.96l-0.88,-2.9l-1.91,1.23l-12.1,-2.48l-1.13,-5.32l1.61,-3.77l-2.16,-3.72ZM488.81,323.97l3.2,-1.19l3.79,-4.52l-1.07,0.06l-3.54,3.78l-2.78,0.91l0.39,0.97ZM474.79,330.37l0.28,0.24l0.75,0.17l-1.05,0.62l-0.53,-0.59l0.54,-0.44ZM473.0,330.18l-0.24,-0.03l-0.02,-0.02l0.21,-0.03l0.05,0.07ZM482.88,328.8l0.11,0.5l-0.87,0.03l-0.03,-0.17l0.79,-0.36ZM489.66,335.76l1.57,-0.65l1.38,0.68l-2.41,0.32l-0.54,-0.35ZM516.8,338.32l0.08,0.2l-0.05,0.1l-0.02,-0.01l0.0,-0.29ZM535.08,322.46l0.0,-0.02l0.01,0.02l-0.01,-0.0ZM550.44,335.16l0.41,-0.09l-0.17,0.82l-0.12,-0.36l-0.11,-0.37ZM574.5,352.3l0.32,0.6l-0.22,0.09l-0.34,-0.24l0.25,-0.45ZM587.32,361.34l-0.15,0.27l-0.05,0.15l0.03,-0.41l0.16,-0.01ZM582.58,432.13l-0.03,0.04l0.02,-0.03l0.02,-0.01ZM595.87,437.1l0.4,0.28l0.14,0.44l-0.7,-0.43l0.16,-0.3ZM596.59,438.06l0.17,0.24l-0.2,0.4l-0.6,0.52l-0.32,-0.49l0.95,-0.67ZM596.09,440.16l0.05,1.42l-0.31,0.11l-0.08,-0.87l0.34,-0.66ZM595.73,441.72l-0.02,-0.02l0.04,-0.0l-0.01,0.02ZM601.21,436.6l-0.0,0.19l-0.07,0.04l0.01,-0.01l0.06,-0.21ZM601.53,439.34l-0.21,0.44l-0.21,-0.16l0.05,-0.3l0.37,0.02ZM602.53,440.7l-0.02,0.19l-0.36,0.35l-0.06,-0.15l0.44,-0.39ZM602.26,441.69l0.22,0.2l0.05,0.16l-0.23,-0.16l-0.03,-0.2ZM611.9,449.73l0.04,0.02l-0.05,0.01l0.01,-0.03ZM613.57,450.64l0.12,0.99l-0.1,0.01l-0.22,-0.97l0.21,-0.02ZM615.69,450.49l0.09,-0.01l-0.03,0.11l-0.01,-0.03l-0.04,-0.08ZM616.43,450.22l0.17,-0.03l-0.0,0.12l-0.01,0.01l-0.15,-0.11ZM620.64,452.03l0.0,0.12l-0.28,0.07l-0.0,-0.12l0.28,-0.07ZM662.89,449.16l1.85,2.25l-0.68,0.81l-0.41,-1.74l-0.76,-1.33ZM672.43,451.68l0.27,0.56l-0.74,0.85l0.19,-0.89l0.28,-0.52ZM677.9,454.39l-0.21,0.16l-0.02,-0.11l0.23,-0.04ZM649.96,390.46l0.52,0.44l0.09,0.2l-0.45,-0.05l-0.16,-0.58ZM680.53,409.14l0.0,0.01l-0.0,0.01l-0.0,-0.01ZM680.49,409.43l0.0,0.21l0.09,0.26l-0.18,-0.29l0.09,-0.18ZM678.41,399.12l0.0,-0.0l0.02,0.01l-0.02,-0.01ZM682.12,392.93l1.68,0.43l-0.8,1.15l-0.46,-0.47l-0.42,-1.1ZM630.78,350.05l-0.21,-1.8l1.24,-0.25l0.07,1.13l-1.1,0.92ZM633.93,349.02l0.23,-1.09l0.75,0.21l-0.06,0.86l-0.92,0.02ZM635.3,347.75l0.31,-0.27l0.31,-0.07l-0.19,0.29l-0.43,0.04ZM624.0,340.87l0.04,0.01l-0.01,-0.0l-0.03,-0.01ZM522.82,287.99l0.09,0.04l0.16,0.16l-0.08,-0.03l-0.17,-0.18ZM490.73,269.27l-1.65,0.1l0.29,-1.42l0.24,0.46l1.12,0.86ZM527.85,279.51l-0.04,-0.23l0.12,0.06l-0.09,0.17ZM541.86,292.0l-1.03,-0.78l-1.11,-1.72l0.33,-0.2l1.8,2.7ZM574.47,296.36l-0.01,-0.14l0.08,0.1l-0.07,0.04ZM622.2,341.87l0.57,-0.05l0.37,0.23l-0.06,0.02l-0.88,-0.2ZM621.18,347.72l0.29,-0.42l0.66,0.04l-0.11,0.11l-0.85,0.26ZM652.5,357.13l0.08,-0.22l0.02,0.06l-0.1,0.16ZM662.71,366.06l0.84,-0.66l-0.06,0.71l-0.78,-0.04ZM681.52,367.13l0.1,-0.69l1.1,0.24l-0.11,0.28l-1.08,0.17ZM663.42,400.33l-0.06,0.03l-0.14,0.26l-0.05,-0.25l0.25,-0.03ZM653.13,413.38l0.02,-0.07l0.01,0.04l-0.03,0.03ZM663.69,417.31l0.03,-0.16l0.0,-0.05l0.04,0.06l-0.07,0.15ZM655.95,454.61l0.2,-0.08l0.01,0.01l-0.0,0.01l-0.21,0.05ZM656.38,456.41l0.17,-0.67l0.69,-0.27l0.05,0.1l-0.91,0.84ZM672.06,466.54l-0.48,-0.52l-0.04,-0.19l0.99,0.26l-0.47,0.44ZM626.86,462.8l-0.05,0.04l-0.35,0.13l0.03,-0.16l0.37,-0.02ZM618.54,456.26l-0.06,0.22l-0.83,-0.15l0.45,-0.09l0.44,0.02ZM539.2,319.9l-0.1,-0.03l0.05,-0.09l0.05,0.11l0.0,0.0ZM536.94,321.66l0.12,0.79l-0.07,0.39l-0.29,-0.51l0.24,-0.67ZM685.1,391.66l0.88,-0.12l1.42,0.57l-1.42,0.29l-0.89,-0.74ZM683.01,459.85l0.95,-0.38l-0.34,-1.43l3.06,-0.11l-0.67,2.54l-3.01,-0.62ZM683.38,471.15l0.86,-0.49l2.63,2.61l-2.13,-0.41l-1.36,-1.71ZM680.79,436.67l0.47,-0.31l1.46,3.68l-1.98,-3.03l0.04,-0.33ZM682.98,440.44l1.1,0.65l0.41,0.67l-0.53,-0.25l-0.98,-1.07ZM681.47,458.53l0.32,-0.72l0.69,-0.02l-0.6,0.62l-0.41,0.12ZM677.24,433.12l0.03,-0.86l1.16,1.1l0.02,1.05l-2.14,-0.09l-0.04,-0.8l0.98,0.49l-0.01,-0.9ZM678.58,434.5l0.26,0.02l0.12,0.08l-0.11,-0.06l-0.27,-0.04ZM679.77,434.88l0.31,-0.35l0.23,0.91l-0.36,-0.42l-0.19,-0.15ZM677.9,474.82l0.38,-0.71l0.86,0.37l-0.56,0.47l-0.68,-0.12ZM674.31,366.81l0.01,-0.0l0.0,0.01l-0.01,-0.0ZM674.45,366.24l0.79,-2.28l0.92,-0.55l-1.2,2.63l-0.51,0.19ZM665.85,422.28l0.83,-2.73l0.99,-0.49l0.41,0.37l-1.19,1.04l0.24,0.64l-1.29,1.17ZM665.47,364.06l0.62,-1.05l0.64,0.74l-1.26,0.31ZM666.81,363.73l0.66,-0.69l0.48,0.21l-0.28,0.27l-0.87,0.22ZM664.13,502.89l2.55,1.52l0.12,0.98l-0.75,1.66l-2.74,2.42l-0.16,-2.82l0.98,-3.76ZM662.22,358.47l1.11,0.82l0.23,0.27l-1.19,0.41l-0.15,-1.5ZM639.41,351.83l1.43,-0.74l0.22,0.76l-1.65,-0.02ZM626.82,465.8l0.25,0.01l-0.2,0.0l-0.05,-0.01ZM627.85,465.83l1.97,0.06l3.4,1.22l0.33,1.3l2.02,0.82l-1.39,1.1l-2.46,0.16l-1.59,-2.69l0.48,-1.3l-2.74,-0.68ZM625.81,343.56l0.73,0.13l-0.17,0.02l-0.56,-0.16ZM624.08,326.81l0.98,-1.23l0.85,0.24l-1.04,0.31l-0.8,0.68ZM619.86,326.49l0.75,-1.58l1.91,-0.31l-0.76,2.34l-1.9,-0.46ZM610.7,452.69l0.01,-0.01l0.0,0.02l-0.02,-0.01ZM597.03,474.35l0.51,-0.32l0.93,0.8l-0.8,-0.03l-0.64,-0.45ZM598.82,475.02l2.06,-0.45l1.34,0.64l-0.8,0.22l-2.61,-0.41ZM598.97,437.76l0.38,-0.55l0.19,-0.09l-0.03,0.69l-0.54,-0.05ZM599.8,438.49l0.12,0.08l0.02,0.12l-0.07,-0.1l-0.06,-0.1ZM599.75,439.54l0.16,1.13l-0.14,0.22l-0.37,-1.33l0.36,-0.02ZM585.53,305.08l0.88,-0.56l0.39,-2.98l3.58,0.52l-0.02,1.53l-3.57,2.95l-1.26,-1.45ZM580.11,367.21l0.33,-1.37l0.5,1.93l4.05,0.91l2.48,-0.49l1.1,3.69l-7.41,1.27l-1.1,-0.39l-2.06,-2.68l-0.25,-1.55l2.03,-0.52l0.32,-0.79ZM579.24,359.67l1.96,2.08l-0.27,1.41l0.09,-1.13l-1.78,-2.35ZM575.22,680.92l0.71,-0.09l2.49,-1.73l-0.66,2.13l-2.24,0.45l-0.3,-0.76ZM578.3,290.03l0.13,2.03l-1.22,-0.22l0.14,-1.53l0.96,-0.29ZM574.93,293.48l1.17,-0.64l-0.34,1.92l-0.69,-0.8l-0.14,-0.48ZM575.81,294.96l0.04,0.13l-0.04,-0.01l-0.01,-0.11ZM576.17,295.58l0.78,-0.24l0.48,-1.68l0.6,0.68l-1.02,0.89l0.3,1.54l-1.02,-0.28l-0.11,-0.92ZM577.62,297.27l0.03,0.05l-0.01,0.06l-0.02,-0.0l0.0,-0.11ZM570.07,460.89l0.38,-0.61l-1.05,-0.3l0.31,-0.59l5.52,1.64l0.68,1.7l0.75,0.13l-0.55,1.35l-2.27,-0.41l-3.77,-2.91ZM576.74,357.28l-1.38,0.21l-0.19,-1.49l0.51,0.07l1.05,1.21ZM560.18,382.36l-1.12,-3.84l0.23,-2.62l2.93,-9.21l2.5,-1.76l1.8,0.45l1.21,-1.15l5.94,1.24l1.19,1.62l-0.56,4.02l2.13,6.58l-0.39,2.68l-1.49,2.72l-3.6,2.73l-8.12,1.49l-2.64,-4.94ZM571.22,358.9l0.19,-3.03l1.7,0.28l2.32,3.53l-0.81,0.96l0.75,1.57l-4.15,-3.31ZM573.96,604.3l0.57,-3.93l0.69,-1.52l0.38,4.28l-1.64,1.18ZM570.68,628.55l0.13,-0.06l0.12,-0.02l-0.25,0.08ZM564.16,610.52l-0.85,-0.98l3.48,-5.9l-0.32,2.08l-2.31,4.8ZM567.38,604.86l1.4,-1.14l0.56,-6.2l0.95,0.09l0.62,1.43l1.16,0.56l-4.02,10.22l-1.02,-0.49l1.41,-3.88l-1.05,-0.59ZM572.63,599.58l-0.23,-0.07l0.17,-0.06l0.06,0.13ZM451.63,52.33l1.56,-3.16l1.89,0.11l-0.13,-1.92l1.49,-0.25l1.71,-1.54l1.13,0.37l0.59,-0.57l2.17,2.8l0.84,-3.22l0.82,-0.72l-0.15,-2.05l3.63,-2.72l2.38,0.61l0.73,1.43l-0.38,1.72l2.5,2.18l0.47,-1.14l-1.45,-1.29l1.06,-0.68l-0.66,-1.47l1.06,-0.2l2.4,0.99l2.7,4.64l0.71,-0.68l-1.58,-3.63l1.35,0.05l1.51,3.07l1.7,-0.06l-0.86,-3.52l-8.11,-3.87l-0.59,-1.76l4.47,-0.92l1.33,-1.24l-0.58,-3.99l-1.58,-0.96l4.05,-1.1l-0.83,1.66l1.63,0.69l0.67,1.21l2.81,0.12l0.96,1.15l2.25,4.98l-0.2,2.0l4.05,0.0l1.0,0.66l0.49,-0.55l-1.19,-1.97l-2.04,0.12l-1.94,-4.74l9.99,7.64l2.31,0.6l2.48,3.92l1.54,0.16l0.34,-0.63l-3.32,-4.51l0.05,-1.23l-4.63,-1.93l-0.24,-1.77l-1.54,0.07l-6.04,-5.8l0.48,-3.29l4.06,-0.38l-3.44,-2.58l-0.39,-1.53l0.72,-0.58l2.38,0.96l2.28,2.63l1.59,-0.26l0.08,-1.06l-4.38,-7.22l4.14,0.81l0.95,3.03l1.43,1.1l0.74,-0.57l-0.81,-1.5l2.82,1.01l2.43,-0.47l0.15,-1.16l-5.43,-1.65l-0.3,-1.04l1.01,-0.78l-3.03,-1.61l3.22,-2.36l1.36,2.63l0.78,-0.04l0.59,-2.17l0.65,2.75l2.04,0.49l0.61,-2.92l2.57,1.25l2.99,5.34l2.82,2.06l-0.8,3.78l0.92,0.76l2.45,-6.0l-3.57,-2.25l-0.47,-1.1l1.07,-1.12l-1.73,-0.32l-1.4,-2.41l-3.04,-2.84l4.22,-2.08l6.94,0.36l2.12,3.85l6.09,4.05l0.1,-1.56l-2.6,-1.39l-2.64,-3.56l2.43,-5.33l0.9,0.3l0.55,-0.94l1.89,-0.25l-0.21,2.37l1.45,2.23l3.16,1.29l0.2,-1.2l-2.9,-2.53l1.81,-3.13l3.37,-0.89l0.09,1.56l1.08,0.42l-0.26,1.14l0.82,0.44l1.53,-1.47l0.8,1.19l2.44,-1.16l0.54,1.8l2.03,-1.43l3.02,0.63l1.4,-0.92l-0.86,3.66l-5.49,6.35l0.73,1.25l4.23,-1.92l1.09,-2.02l1.64,-0.62l-0.23,-1.32l2.08,-3.05l0.9,-0.26l0.4,1.56l1.64,0.18l0.28,-0.66l-0.86,-0.58l0.4,-1.87l-0.54,-0.45l0.07,-0.42l0.32,-0.16l-0.04,0.76l2.83,2.83l0.62,-0.25l0.42,-2.32l2.18,-0.33l0.41,1.66l-1.26,1.57l2.95,1.54l0.15,1.36l1.46,0.06l0.29,3.25l-0.65,1.25l1.78,-0.54l0.71,-2.33l0.83,-0.34l0.87,1.08l0.38,-0.7l2.02,-0.25l2.75,2.8l0.71,4.57l-2.15,2.43l0.74,0.97l-0.64,2.61l-0.85,0.33l0.11,1.15l-3.8,6.69l-1.76,-0.44l1.06,2.04l-0.55,1.01l-4.04,0.04l-0.13,0.98l-2.31,1.76l0.2,0.86l1.88,-0.26l-0.64,0.83l-0.79,-0.44l-0.64,1.0l-7.69,3.8l-5.83,-3.2l0.44,1.16l4.34,2.87l-1.89,0.74l1.62,0.97l5.23,-2.85l2.62,0.55l-6.68,7.85l-1.32,1.21l-1.66,-0.02l-0.48,1.99l-2.52,1.31l0.8,1.26l1.09,-0.38l-0.52,1.89l15.77,-15.26l4.02,-2.71l0.76,1.57l-2.32,6.44l-2.19,1.91l-1.5,5.88l-1.61,3.14l-1.56,0.46l0.34,2.06l-4.21,8.21l-0.47,6.44l-0.92,1.26l-2.31,0.45l-0.87,-2.93l-2.64,-2.17l-0.76,0.28l2.83,3.95l0.14,2.03l2.67,1.65l-0.45,1.72l-2.6,0.08l-3.72,3.24l-1.47,-1.63l-2.54,-0.39l0.07,0.86l2.62,1.91l-2.03,1.1l0.77,1.03l4.03,-1.03l3.21,-2.6l0.66,0.72l-0.33,2.62l-2.68,1.86l-0.36,1.03l0.33,1.05l2.27,-0.58l-0.4,2.42l-4.23,4.11l-1.84,0.03l-1.35,-0.56l-0.5,-2.83l-4.08,0.49l-0.28,-0.99l-2.72,-0.24l-2.5,1.54l0.32,1.26l0.77,0.8l1.63,-0.58l4.43,0.49l2.07,4.38l-0.5,1.48l-1.61,0.49l-0.93,-1.22l-0.93,0.11l0.45,2.43l-1.01,0.71l-1.9,0.07l-2.03,-1.35l-0.44,1.08l0.94,2.58l-2.15,-0.19l-1.87,-1.27l-0.64,0.63l-1.33,-1.41l-5.02,-0.68l-0.29,1.22l0.64,0.86l-1.39,1.07l1.3,2.66l-3.18,-0.69l-0.99,0.91l3.65,1.7l-0.49,0.59l0.52,0.53l3.25,-1.28l2.94,-0.36l1.32,0.83l6.71,-0.97l-1.36,1.41l2.36,2.8l-2.7,0.6l-3.21,-0.78l-0.96,-1.92l-1.52,-0.97l-10.24,1.71l-0.61,0.97l0.81,0.74l0.7,-0.57l6.41,-0.12l2.91,0.69l-2.7,0.07l-3.72,2.2l-2.89,-1.13l-4.07,0.92l0.31,0.97l4.62,-0.44l0.75,0.49l-2.04,5.75l0.52,1.3l0.79,-0.47l1.62,-5.07l4.43,-2.33l4.73,0.72l-3.04,2.71l0.21,1.2l3.65,-1.75l3.91,0.39l1.2,3.12l-0.16,2.11l1.14,0.67l-3.09,2.42l-5.59,0.06l-1.11,0.86l0.08,0.94l2.77,-0.28l0.49,0.95l5.32,1.54l0.39,0.76l-1.37,0.5l-0.8,2.86l-5.32,-0.57l-1.6,1.33l0.25,1.1l1.78,0.65l5.04,-0.02l-0.83,3.39l-1.94,-0.74l-2.9,3.31l-1.48,-0.86l-3.65,0.65l-2.4,-1.05l-0.83,2.83l2.74,2.17l0.02,3.58l1.96,1.17l-1.13,1.17l0.25,1.4l-1.46,2.03l0.24,1.16l-2.0,1.75l0.12,-1.32l-0.64,-0.26l-1.79,2.52l-2.82,-0.37l-1.66,1.19l-2.98,-0.37l-4.19,-2.62l-3.75,-5.91l-0.93,0.02l0.24,2.06l1.48,2.19l-0.06,2.42l3.22,1.92l-3.2,1.07l-2.05,-0.28l-0.12,0.9l1.53,0.95l0.7,2.19l1.08,-0.09l3.07,-3.13l5.01,1.29l-1.18,2.84l0.85,0.62l1.7,-3.13l1.38,-1.38l1.27,-0.05l2.13,1.41l0.32,1.24l-1.49,3.21l0.08,1.68l2.71,-0.42l-0.27,1.92l1.75,0.6l1.69,-4.7l1.05,-0.55l2.45,4.33l0.24,3.88l-1.27,0.71l-0.37,2.68l-1.13,1.56l-0.61,-0.43l0.05,-1.71l-1.96,-0.2l-2.11,6.92l-1.45,-0.21l-2.66,2.31l-0.96,-0.18l-2.11,1.39l-0.3,0.82l-1.76,-0.81l1.08,-5.22l-2.54,-1.91l-0.2,-1.2l-0.72,-0.08l-1.38,2.18l-2.71,-0.68l0.08,-2.08l1.15,-2.18l-2.86,1.39l-2.8,-4.26l-0.73,0.8l1.63,3.45l2.4,1.97l-0.52,1.16l0.56,2.12l-3.0,0.93l-1.64,-1.42l-0.33,-2.96l-1.7,-2.06l-0.03,-2.0l-0.6,-0.34l-0.99,1.82l1.81,3.15l0.53,3.63l-2.22,-0.37l-3.6,-5.43l-0.91,0.48l0.76,1.13l0.21,3.65l-1.88,0.31l-1.58,-2.85l-1.33,-0.41l0.58,4.26l3.36,2.1l-4.06,0.78l-0.6,-0.7l-6.11,-1.47l-0.25,-1.66l1.11,-1.5l-2.76,-2.97l-0.46,0.74l1.83,2.29l-1.82,1.26l-0.29,2.61l-1.72,-0.52l-0.45,-1.58l-1.19,-0.11l-1.11,-3.97l-0.72,0.62l0.31,3.91l0.65,0.8l-0.75,1.5l-1.01,-1.89l-0.79,1.24l-2.32,-0.55l0.37,-2.67l-0.99,-2.63l-0.07,-5.11l-0.8,0.13l-0.92,2.26l0.57,2.6l-0.79,0.78l-0.85,4.21l-2.3,-1.8l-0.27,-2.03l-0.94,0.26l1.39,-4.03l-0.8,-2.86l5.95,-5.28l0.12,-1.01l3.66,-0.38l0.48,0.85l1.2,-0.21l0.63,-0.4l-0.3,-1.35l1.25,-0.33l1.53,1.4l1.48,-1.96l-2.98,-0.83l1.23,-1.3l-1.69,-0.5l1.99,-1.15l0.01,-0.73l-4.62,0.26l-0.15,-4.55l-2.79,-2.63l0.44,-3.88l4.54,-2.14l3.75,1.53l2.52,2.87l1.71,7.39l1.03,-0.76l0.8,1.14l2.38,0.43l1.45,1.48l1.65,0.4l0.48,-0.5l-0.84,-2.1l2.49,-0.07l3.23,1.12l0.52,-0.45l-0.4,-1.35l-1.77,-1.17l2.25,-1.39l1.88,-4.33l1.83,-6.33l-0.38,-2.63l1.24,-1.34l-0.41,-0.77l-0.98,0.14l-1.53,1.65l0.25,2.82l-0.9,1.02l-2.07,7.08l-1.97,2.55l-4.9,-0.47l1.84,-3.58l-0.42,-1.99l-2.31,3.72l-1.72,-1.12l0.44,-2.92l2.4,-2.71l1.84,0.19l0.09,-0.86l-1.56,-0.74l-3.62,0.67l-0.97,0.87l-0.93,-1.03l2.79,-2.91l1.78,0.54l2.49,-1.51l-0.36,-0.64l-2.77,0.8l-1.0,-0.8l0.37,-1.3l1.6,-0.84l2.34,0.89l1.11,-0.92l-2.53,-1.11l-2.44,0.46l0.57,-2.56l1.25,-0.99l-0.23,-0.79l-1.27,0.23l0.69,-6.07l-0.66,0.0l-0.89,2.18l-0.75,6.02l-1.81,4.32l-3.64,1.46l0.11,-1.87l1.51,-2.15l0.0,-4.26l-2.21,4.77l-1.49,-0.07l-1.1,2.26l-3.45,-0.05l2.24,-1.71l-1.13,-0.98l-1.15,0.28l-0.09,-5.02l1.57,-2.69l1.71,-0.45l-0.33,-1.08l-1.04,0.08l2.22,-5.38l4.35,-0.89l3.22,-2.37l1.72,1.18l4.75,0.51l3.08,2.66l1.99,0.73l2.71,3.07l0.94,-1.28l-1.92,-2.43l1.56,-0.41l-0.12,-1.19l-0.92,-0.38l-1.93,0.76l-2.3,-2.0l3.89,0.23l1.97,-1.17l1.55,0.41l0.13,-4.04l0.84,-1.58l-0.78,-1.1l-1.85,1.67l-0.92,2.69l-1.67,0.83l-2.17,-1.17l-6.62,0.01l-2.36,-1.93l0.97,-2.21l1.34,0.33l1.16,2.03l2.71,0.4l0.81,-1.0l-3.25,-2.16l-0.3,-2.48l-1.44,0.92l-1.21,-5.65l-2.04,-1.92l-0.94,-3.5l-1.66,-1.68l-5.45,-1.76l0.13,-5.04l3.58,0.7l1.1,0.9l0.84,-1.01l-1.65,-1.5l-4.58,-1.39l-0.61,-2.66l0.47,-4.47l2.35,-0.75l2.91,1.75l6.82,0.0l8.29,9.68l1.21,3.72l1.52,0.99l-0.35,1.77l0.89,0.78l1.35,-1.36l3.9,1.55l0.25,-1.04l3.1,-1.46l0.78,-1.84l-0.48,-0.53l-5.1,1.93l-2.93,-1.38l-1.1,-4.55l1.05,-1.31l-3.86,-1.89l-5.31,-7.57l12.41,-4.94l1.19,-1.65l9.01,-2.3l-0.18,-1.51l-8.12,0.6l6.89,-5.55l7.25,-2.54l-0.0,-1.15l-0.9,-0.71l-6.21,0.77l-3.59,1.59l-0.31,-3.3l1.55,-3.08l-0.13,-1.8l1.14,-0.81l1.79,-3.84l2.17,-1.99l1.05,-2.43l-1.11,-0.39l-5.09,5.04l-1.84,3.71l0.04,2.02l-3.46,-2.08l0.19,1.27l1.88,2.04l-0.89,2.04l0.81,1.51l-1.36,3.73l-5.1,5.15l-6.47,3.44l-2.88,0.56l0.06,-2.18l4.03,-2.58l1.53,-3.04l-1.59,-0.63l-2.52,2.89l-3.57,1.37l-0.11,-0.89l1.71,-2.36l-1.42,-0.71l-1.54,2.61l-0.89,-0.11l0.78,3.85l-0.34,2.24l-2.15,0.9l-2.45,-0.37l-0.92,0.72l-2.85,-0.66l1.04,-2.46l-1.46,0.68l-1.13,1.77l-2.57,-1.54l3.77,-9.32l2.48,-2.15l10.36,-3.87l1.42,-0.97l0.25,-1.18l-15.16,5.18l-2.55,3.23l-3.68,8.19l-1.52,-0.28l-5.52,-4.12l-2.24,-3.03l4.25,-1.92l3.52,0.41l4.2,-0.87l1.82,-1.89l1.94,-0.42l-0.13,-1.51l4.29,-3.96l0.25,-1.51l-2.63,0.01l-2.72,1.88l-2.58,3.29l-3.64,1.65l-2.07,-0.21l-8.46,1.96l-1.28,-1.35l-0.52,-3.13l1.09,-1.27l1.94,1.0l2.9,-1.73l-0.72,-0.69l-1.46,0.36l-2.15,-1.84l3.74,-3.35l0.85,0.04l-0.24,-1.23l3.26,-0.87l3.07,1.13l0.75,-0.39l-0.28,-0.99l-4.96,-2.2l-8.72,6.37l-1.32,-2.12l5.1,-4.06l0.23,-0.89l-1.89,-0.43l-1.67,-2.12l-0.45,1.26l-1.34,-0.39l-1.34,1.78l0.02,1.51l-1.09,0.35l-0.29,-1.24l-1.85,-0.94l0.27,-0.49ZM467.22,187.34l-0.02,0.7l0.08,0.54l-0.23,-0.5l0.17,-0.74ZM511.4,194.3l-0.08,0.24l-0.06,0.04l0.07,-0.21l0.07,-0.07ZM521.76,108.32l4.22,-0.05l0.38,1.75l1.07,0.74l-3.95,0.26l-1.72,-2.7ZM462.41,44.68l-0.48,-0.1l0.11,-0.41l0.37,0.52ZM479.98,42.56l-0.16,-0.42l0.09,0.02l0.07,0.4ZM553.75,2.1l0.09,-0.05l0.0,0.03l-0.09,0.01ZM485.99,154.18l-1.65,1.09l-0.22,-0.13l0.52,-1.19l1.35,0.23ZM569.79,661.05l-0.05,-0.21l0.07,-0.55l0.68,0.7l-0.69,0.06ZM569.0,481.37l0.25,0.11l-0.12,0.21l-0.05,-0.02l-0.08,-0.31ZM566.07,517.84l0.13,-0.53l1.96,-0.83l-0.06,0.3l-2.04,1.05ZM560.16,465.59l2.1,-1.05l3.51,-0.14l0.32,0.76l1.55,0.15l1.51,2.38l-0.35,1.42l-2.69,1.96l-5.95,-5.48ZM567.74,657.21l0.59,-0.24l0.46,0.97l-0.38,0.0l-0.67,-0.73ZM567.08,481.73l0.79,-0.2l0.12,0.15l-0.37,0.09l-0.54,-0.03ZM563.91,454.17l0.28,-0.52l2.0,-0.55l-0.62,1.38l-1.66,-0.3ZM561.74,604.49l0.36,-1.75l3.07,-1.32l-2.77,2.79l-0.66,0.28ZM562.62,591.14l0.29,-0.1l0.15,0.19l-0.33,-0.12l-0.11,0.03ZM561.9,579.26l0.03,-0.21l0.16,-0.38l0.23,0.82l-0.42,-0.23ZM562.22,593.87l-0.14,-1.09l0.27,-0.29l0.22,0.48l-0.34,0.9ZM546.79,664.8l1.55,-2.51l4.66,-1.23l3.06,0.13l4.08,4.11l1.48,3.29l-3.39,-0.09l-11.44,-3.71ZM555.47,342.98l2.64,-0.2l0.34,1.06l-1.68,2.76l0.27,1.38l-1.29,0.66l-1.48,-1.7l-0.39,-3.32l1.12,-1.0l0.47,0.38ZM548.37,497.83l-0.35,-4.63l1.73,-5.02l1.16,-0.82l1.47,0.44l0.98,-0.93l2.54,2.46l0.32,2.13l-3.07,11.1l-4.6,-3.84l-0.17,-0.89ZM554.12,536.8l0.54,-0.67l0.8,0.1l-0.82,1.01l-0.52,-0.44ZM553.2,539.49l0.02,-0.17l0.05,0.01l0.01,0.12l-0.07,0.05ZM518.38,254.51l0.02,-3.28l1.94,-0.65l2.28,1.5l0.72,-0.61l3.81,1.55l8.24,-1.79l4.72,1.82l1.83,1.34l1.29,2.82l2.0,0.59l1.36,3.33l2.32,1.15l0.14,2.91l1.58,0.57l0.16,1.42l-1.02,0.76l-12.46,-0.08l-6.24,4.05l-2.27,0.18l-2.95,-1.96l-1.55,-3.7l-0.47,-4.43l-4.24,-0.78l-0.48,-0.67l-0.23,-3.23l0.9,-0.63l-1.39,-2.18ZM542.4,343.23l1.71,-3.49l2.32,-0.76l0.1,-1.74l0.81,0.38l0.67,1.17l-0.8,1.23l-4.81,3.21ZM539.83,355.35l1.02,-3.29l1.77,-0.72l1.11,-3.34l0.91,-0.14l-0.76,-1.61l2.39,-1.22l0.67,1.28l-0.6,1.55l-0.94,0.07l-2.03,7.01l-2.55,1.82l-0.98,-1.41ZM544.39,363.79l1.03,-0.85l0.6,0.66l-0.77,0.79l-0.86,-0.6ZM546.23,361.86l-0.26,-0.62l-1.1,-0.62l2.08,0.52l-0.0,0.9l-0.72,-0.19ZM543.01,367.74l1.19,-0.44l0.95,0.97l-1.19,2.11l-0.95,-2.63ZM491.5,444.21l0.6,-0.54l-0.58,-3.61l1.19,-14.31l3.45,-4.37l0.11,2.65l0.82,0.13l0.58,-0.88l1.19,0.7l1.14,3.24l-1.81,0.99l-0.23,0.9l2.67,2.32l0.99,4.1l1.57,-0.26l1.49,-5.17l3.04,2.44l-0.42,1.38l1.36,1.37l5.93,1.02l2.1,3.77l2.76,1.13l1.6,1.85l1.51,0.59l1.71,-0.47l5.13,4.44l0.28,3.89l1.81,2.28l-0.08,0.86l-2.81,1.51l-0.02,1.94l4.49,-1.05l1.44,-1.05l3.48,1.36l0.51,-0.57l-0.38,-1.92l2.94,2.24l0.11,1.01l-1.42,-0.11l0.39,1.02l4.41,1.63l-2.32,0.89l-3.6,4.37l-0.37,1.42l-0.79,-0.13l-8.74,-3.71l-3.42,0.48l-0.61,-1.02l1.33,-1.33l-0.06,-2.1l-1.9,-1.28l-4.59,0.66l1.0,-3.43l-0.5,-0.96l-1.15,-0.14l-0.97,1.27l-3.03,0.75l-1.17,2.31l0.84,4.2l-1.24,0.31l-2.38,3.21l-1.83,-0.12l-2.37,6.34l-4.18,3.28l-3.23,0.73l-1.16,-2.5l0.12,-6.95l-1.51,-3.22l-1.1,1.42l-3.38,1.23l-3.76,-0.09l-1.91,2.06l-1.94,0.07l-0.65,-0.91l0.24,-1.85l2.24,-3.9l6.11,-3.91l-1.64,-4.15l-0.66,-5.63l1.24,-4.08ZM537.03,125.67l0.14,-0.6l1.77,1.03l-0.27,0.43l-1.64,-0.86ZM528.04,339.31l1.24,0.37l0.11,0.47l-1.79,0.18l0.44,-1.02ZM530.38,340.78l0.27,-1.09l-0.83,-1.63l1.44,-0.15l0.93,1.53l2.86,-1.09l0.44,-1.19l1.15,0.08l0.99,1.53l-1.6,1.72l-1.98,0.49l-1.54,-0.55l1.0,2.87l-1.35,-0.46l-0.17,-1.79l-1.59,-0.26ZM532.71,453.04l0.06,-0.06l0.37,-0.01l-0.25,0.1l-0.18,-0.03ZM516.53,485.9l0.87,-1.45l0.09,-2.41l1.48,-1.87l2.19,1.47l3.25,-2.28l2.59,0.08l1.19,-1.35l3.08,0.71l-0.28,4.19l-3.25,2.92l-0.63,1.91l-5.19,5.86l-1.93,-1.17l-3.35,2.23l-0.27,-2.41l-2.11,-2.98l2.26,-3.44ZM224.48,339.27l10.41,-29.68l3.07,4.97l8.62,5.59l0.69,2.27l2.5,3.21l4.41,3.07l1.14,1.6l2.02,0.19l2.98,2.06l0.89,-0.13l2.4,2.31l0.78,-0.7l-1.76,-3.42l2.36,1.93l2.42,-0.32l2.76,3.37l0.88,-0.03l1.2,2.81l1.35,1.18l0.3,2.22l1.65,2.99l-0.64,1.68l0.97,0.74l-1.14,2.31l-6.49,-2.8l-0.42,0.7l0.81,1.53l-0.59,0.64l-2.27,-1.38l-0.61,0.37l-0.84,2.67l0.38,0.97l-2.87,0.38l-0.51,0.95l1.74,1.32l1.04,1.98l3.02,0.67l2.45,2.45l1.4,0.13l2.17,1.57l10.93,3.14l1.2,-0.96l2.0,0.4l0.07,1.09l0.81,0.42l0.63,-1.44l3.09,1.24l1.94,-1.54l-0.11,1.43l1.58,0.24l5.48,-2.57l0.88,-0.15l1.11,1.15l0.63,-1.72l-0.24,3.09l0.7,0.76l0.69,-0.72l0.19,3.26l1.6,1.08l0.96,-1.0l2.37,0.99l0.28,3.64l-0.97,1.47l1.05,2.55l1.18,-0.34l1.72,-4.6l-0.29,5.31l0.94,0.54l0.67,-1.63l1.95,3.58l0.33,2.6l-0.29,1.31l-1.69,-0.59l-0.91,0.77l-2.38,-3.14l-0.55,0.44l0.28,2.54l2.58,2.29l-0.03,1.5l-0.9,0.74l1.74,0.69l0.16,3.36l0.73,0.24l0.29,-0.67l0.93,3.59l2.54,4.51l0.56,-1.13l-2.78,-7.77l0.7,-2.8l0.59,1.56l1.23,0.59l0.8,-2.68l1.13,2.62l1.02,0.02l-1.47,-5.0l0.9,-0.19l0.74,-1.4l-2.13,-2.14l-0.43,-3.54l1.13,-2.31l-2.38,-4.66l0.26,-1.42l0.68,-1.28l2.24,-0.89l0.39,-1.05l-0.68,-0.64l0.69,-0.93l2.24,0.49l1.65,-1.04l3.04,0.68l0.83,-1.69l0.83,0.37l0.32,-0.89l0.43,1.39l1.37,-0.19l-0.61,-1.7l0.59,-1.86l5.7,-0.59l0.67,-1.61l-0.38,-1.27l1.23,-1.54l-0.22,-0.61l-1.26,0.27l-1.13,-0.69l-4.95,1.61l-1.26,1.37l0.86,1.59l-0.65,0.65l-1.29,-1.72l-1.95,0.63l-1.81,1.67l-2.11,-2.13l-2.12,-0.27l-1.21,1.95l0.93,1.49l-4.02,0.08l-0.35,-3.71l-2.76,0.75l5.19,-6.15l7.85,-0.24l8.82,-3.41l2.59,1.66l1.74,3.52l-0.75,1.35l0.7,3.02l-1.58,1.89l1.51,0.48l0.03,1.25l2.72,3.18l2.26,0.0l-0.79,1.66l1.16,2.86l5.67,1.14l0.86,-0.74l1.24,0.18l1.04,-1.88l-0.19,3.16l2.89,2.32l1.11,2.33l2.43,1.12l1.52,2.07l1.06,-1.23l1.39,0.04l0.82,1.22l2.25,0.99l2.9,-1.25l2.29,0.29l1.89,-1.43l0.83,0.87l1.38,-0.92l6.44,1.64l2.19,2.05l2.76,0.65l0.45,-1.05l1.12,0.08l0.53,-0.78l2.72,-0.03l-0.65,-2.06l-1.84,-1.78l0.07,-1.92l0.73,-0.05l4.38,8.36l2.67,2.31l2.38,-1.08l0.96,0.6l1.32,-1.43l-0.93,-1.05l0.67,-1.15l-0.81,-2.97l-0.65,-0.18l-0.52,0.86l-2.33,-3.23l-2.98,1.2l-0.74,1.82l-1.81,-4.08l1.15,-2.2l-1.3,-1.23l-0.95,-2.33l0.41,0.49l1.06,-0.68l1.61,1.55l3.97,-1.42l-1.75,-3.21l1.71,0.28l1.22,2.35l0.82,-0.62l-0.63,-1.05l0.79,0.01l2.78,3.39l-0.51,1.81l1.23,0.6l1.74,-0.66l0.39,1.96l-1.87,2.21l0.45,1.19l1.07,0.06l0.37,-0.73l1.35,0.34l0.05,-2.01l3.31,-1.93l-2.26,10.07l-1.15,0.65l-1.37,4.54l2.71,1.5l-1.35,3.33l1.16,0.91l0.87,0.02l2.55,-2.56l1.14,0.23l-2.48,3.23l0.46,0.54l2.29,-0.85l1.07,3.83l-0.69,0.79l-0.87,0.03l-0.32,-0.82l-2.25,0.7l-0.22,-2.61l-1.42,1.67l-0.98,-0.04l0.01,-1.45l-0.95,-0.71l-1.25,0.87l2.59,5.12l1.83,1.52l0.07,3.2l0.62,0.46l1.74,-1.81l-0.09,-1.39l-0.49,-0.51l-0.53,0.64l-2.24,-4.1l5.81,1.19l1.21,-1.66l-0.77,-3.86l1.55,-2.61l-1.19,-1.53l-0.44,-2.43l0.64,-1.82l-2.68,-3.83l1.36,-1.41l-0.06,-2.11l1.27,-3.03l0.98,0.79l1.08,-0.91l2.7,1.03l4.92,-4.77l0.76,-3.04l5.89,-4.28l0.06,-0.55l-2.54,0.03l1.29,-4.2l-0.48,-2.74l-1.56,-0.33l0.09,-2.09l-1.38,0.93l-1.22,3.1l-0.02,1.06l0.75,0.43l-0.87,0.88l-2.12,0.51l-1.23,-0.72l0.37,-3.7l1.04,0.58l3.51,-4.41l-0.31,-0.69l-1.96,0.28l0.4,-3.15l3.29,-0.43l-1.04,1.69l0.19,2.02l0.66,0.2l3.72,-4.16l-0.12,-0.8l-1.22,0.19l0.95,-2.36l-1.2,-1.18l-2.52,0.89l-0.3,1.01l-2.63,-0.42l-2.48,-5.15l-1.12,0.57l-0.51,1.8l-3.7,-2.56l-1.82,-2.33l-2.36,-0.27l-0.5,-3.29l-1.16,-0.62l-1.65,-3.41l0.19,-4.23l1.56,-1.49l0.59,-2.41l0.75,0.08l0.47,-1.03l1.74,1.31l0.65,-0.46l-1.77,-1.69l1.82,-2.37l-1.22,-0.06l-2.0,1.53l-2.27,-3.41l2.08,-6.34l-1.21,-0.92l1.28,-0.4l-0.57,-2.81l1.13,-0.1l1.07,-2.14l0.99,-0.1l1.95,2.72l1.27,0.08l1.09,-2.03l-0.68,-1.12l1.26,-2.02l-3.16,-0.42l-0.45,-1.61l2.8,-2.14l1.55,0.02l0.61,-2.28l2.29,-0.15l1.05,0.27l0.34,1.88l1.37,-1.05l0.01,2.96l1.67,-2.31l1.75,0.58l1.19,-0.48l-0.76,2.42l5.56,6.86l0.65,6.62l-0.38,3.5l-0.67,-0.38l-0.34,0.96l2.43,2.04l0.21,2.15l2.47,0.98l0.33,3.3l1.82,2.28l-0.77,1.36l1.62,1.29l0.64,-1.77l0.6,0.07l-0.06,2.68l1.31,0.89l-3.08,0.37l-1.91,-2.81l-1.17,0.57l0.43,0.71l-1.34,0.59l0.57,0.61l-1.22,1.91l1.31,0.68l1.02,-0.88l1.26,0.14l0.86,0.98l-2.28,2.89l-2.9,1.73l-1.98,3.08l2.03,0.54l1.89,-0.62l2.12,2.78l2.21,1.48l3.01,-3.73l1.29,0.51l-2.65,1.88l0.02,0.7l2.97,-0.72l0.63,0.96l1.39,-0.16l0.36,0.69l1.02,0.01l0.53,-1.03l1.52,0.89l-0.6,0.64l-0.48,-0.53l-1.01,0.39l0.45,0.62l-1.08,0.99l-0.25,1.61l-0.66,-1.61l-1.72,1.43l-1.69,-1.37l-0.67,0.29l5.9,6.11l-0.39,1.34l0.76,0.7l-0.12,1.27l1.3,0.85l-1.1,1.36l0.62,0.65l0.15,5.16l-0.94,1.83l1.82,1.52l-0.76,1.04l1.18,-0.07l0.75,2.4l1.47,-0.7l-0.22,-1.21l2.53,-4.71l-0.88,-1.61l0.66,-1.17l0.25,1.24l0.85,-0.82l0.03,-7.76l3.52,-5.21l1.47,0.7l1.7,3.2l5.43,5.67l1.93,9.81l-0.74,1.96l-1.47,-0.53l-0.28,-2.77l-1.98,1.93l0.78,3.99l-0.65,2.99l1.99,6.42l5.48,6.44l0.69,2.03l-0.88,0.97l-0.09,1.63l0.8,0.3l0.68,-1.15l0.35,1.43l0.78,-0.01l0.44,-2.43l0.83,0.85l1.19,-1.63l-0.28,-1.39l0.74,-1.69l2.29,1.14l0.87,-0.85l0.25,-4.84l-0.63,-1.66l1.23,-3.16l3.31,-4.63l-0.01,-2.78l0.72,-0.74l-0.38,-2.13l1.03,-2.63l-0.67,-3.78l0.49,-2.13l1.4,-0.43l1.49,0.7l0.49,-0.72l3.33,-0.12l-0.45,-2.01l-1.59,0.03l-1.06,-0.4l1.21,-0.49l-0.1,-1.13l1.6,-0.05l-0.18,-1.05l-0.94,-0.34l2.55,0.15l0.54,-0.81l-1.73,-0.8l-0.34,-0.92l-1.18,0.19l-0.77,-2.04l-2.66,-0.4l-0.82,-1.5l0.81,-0.1l0.0,-0.83l-0.96,-1.22l0.99,-1.18l-0.72,-0.74l-0.71,0.27l0.02,-1.04l0.96,-0.72l-1.19,-2.09l1.29,-3.37l1.71,0.98l1.8,-1.51l3.23,-0.54l4.79,2.88l2.79,0.38l5.52,-0.71l-0.24,1.63l-0.91,0.6l1.79,1.11l-5.0,-0.84l-0.47,1.18l6.95,1.74l1.5,2.03l-0.72,1.48l0.5,0.56l3.8,-0.97l2.98,1.18l0.36,1.29l-1.6,2.39l-3.57,3.4l2.94,-0.68l1.34,1.48l0.97,-0.97l1.12,1.62l0.07,2.62l-2.43,2.77l-1.12,-0.34l-1.18,2.16l-0.64,-1.43l-1.23,-0.48l-0.93,0.34l0.73,1.2l-2.85,-1.27l-0.61,0.89l0.8,0.9l-0.78,0.72l2.38,1.64l-0.88,0.27l0.47,1.3l1.32,0.08l-0.48,2.02l1.95,1.1l-0.36,2.19l0.93,2.29l7.22,7.8l-0.46,8.01l-0.47,1.76l-3.69,1.09l-1.27,5.13l-1.52,0.1l-1.53,3.31l-3.21,0.57l-0.36,1.57l-2.63,2.63l-1.82,-3.11l-1.56,-0.52l-1.22,-1.47l0.84,-0.02l0.3,-0.94l-0.88,-1.37l0.07,-2.94l-0.75,0.13l-1.27,3.29l-0.76,-0.18l0.3,-1.92l-1.46,-1.06l-0.06,-2.04l-4.96,-1.37l0.52,1.66l-2.58,1.27l-0.05,1.65l0.92,0.71l1.52,-0.57l1.28,-1.95l0.9,2.46l2.33,0.87l-0.56,1.2l1.17,0.78l1.2,-0.25l-0.39,1.76l2.5,2.69l0.7,2.76l1.26,1.62l-1.31,0.22l-2.21,-2.28l-1.33,0.72l-1.52,-2.2l-1.24,1.82l2.26,2.97l-3.5,-1.81l-1.0,0.26l-1.06,-1.4l-0.94,1.28l-1.01,-4.35l-1.69,-2.05l-2.87,1.73l-2.16,0.21l-1.61,-1.0l-0.78,0.7l-1.44,-0.65l-0.35,0.93l-1.35,-0.12l0.47,1.42l-0.78,0.64l1.71,2.75l2.48,0.54l3.42,1.99l-0.82,1.21l0.29,1.35l-3.46,2.77l-0.86,4.49l-3.52,2.99l-1.11,1.7l0.29,1.02l-2.17,1.42l-5.44,-0.4l-3.38,-3.83l-1.96,-1.11l1.98,0.38l0.35,-0.84l-5.88,-1.93l-4.76,-4.34l-3.09,-0.04l2.03,2.44l-2.02,-1.36l-1.25,0.27l-0.41,-1.0l-1.47,0.42l-7.61,-1.47l-1.67,0.63l3.86,3.52l0.78,-0.69l-0.83,-1.67l8.95,2.69l3.98,3.69l0.64,2.11l1.78,1.27l1.28,2.27l8.42,1.2l2.68,-0.06l0.73,-0.68l4.93,1.04l0.9,1.55l-0.24,1.63l-1.03,1.03l-1.57,4.77l-1.71,0.78l-0.47,3.24l-1.97,1.14l-2.32,7.37l-0.94,-0.04l-4.12,3.41l-3.38,-1.51l-1.02,-2.09l-0.87,0.6l1.13,2.59l-2.84,-1.61l-0.7,0.6l-1.08,-0.5l-0.16,-3.36l-3.42,2.27l-0.05,0.72l1.38,0.47l0.48,1.07l-1.34,0.94l-0.86,-0.9l-1.17,0.51l2.71,3.88l-0.95,0.21l-0.8,2.81l-1.89,0.39l-0.23,-0.94l-1.65,-0.78l-0.8,1.51l1.26,0.44l-2.79,0.72l-5.08,-3.21l-1.21,0.14l-0.42,-1.14l-2.12,0.46l0.4,-1.11l-1.23,-0.2l-0.68,1.26l-2.38,-0.59l-9.09,-5.07l-1.31,-1.52l-0.1,-1.25l-1.79,-0.68l1.46,3.62l-1.67,0.73l1.11,2.5l2.55,1.43l1.53,-0.47l0.27,-0.5l-1.81,-2.08l6.31,3.9l1.37,-0.58l0.64,1.4l1.83,0.49l-0.34,1.0l-0.74,-0.38l-2.27,2.01l0.88,1.18l2.55,-0.4l0.29,-1.38l3.25,-1.78l3.36,4.54l3.46,0.45l0.25,1.24l2.0,0.84l0.42,5.65l-1.07,1.87l-2.1,-0.17l-3.58,3.08l-6.01,-1.84l-0.37,1.26l-2.6,-0.41l-0.4,1.17l1.52,2.4l3.47,0.94l-0.59,1.4l-1.08,-0.3l-0.33,-1.22l-2.38,1.27l-0.26,-1.03l-1.49,-0.62l-0.48,0.6l0.5,2.44l-1.28,0.07l-0.91,2.87l-4.1,-1.05l4.19,3.17l-2.98,0.84l-0.3,0.85l0.81,0.74l-1.17,1.03l-1.17,-0.68l-1.18,0.74l1.06,1.19l-0.7,0.63l-1.72,-0.71l-0.48,0.61l0.55,0.71l-0.52,1.16l1.48,0.65l0.23,1.97l-4.07,2.49l-1.42,2.04l0.19,1.66l0.98,1.0l-2.1,-0.35l-0.42,0.57l0.86,1.7l-0.83,1.09l0.32,1.46l-2.99,4.42l-1.82,5.77l-1.44,-0.29l-1.34,1.34l1.64,2.12l-2.04,7.01l-34.0,-2.48l-33.8,-3.8l10.71,-81.63l-31.59,-11.1l-25.71,-9.97l-3.84,-3.25l-7.01,-13.94l-14.83,-3.67l-25.6,-33.48l-22.77,-34.44ZM431.43,497.66l0.31,-0.12l0.17,0.01l-0.2,0.26l-0.28,-0.15ZM433.43,493.16l1.61,0.52l0.09,0.54l-0.15,0.11l-1.55,-1.16ZM459.86,461.22l0.41,0.12l0.06,0.53l-0.42,-0.04l-0.04,-0.61ZM466.21,460.65l0.17,0.26l-0.02,0.0l-0.16,-0.26ZM457.33,422.91l-0.21,0.13l-0.28,-0.01l0.5,-0.12ZM510.45,414.38l0.09,0.15l-0.04,0.09l-0.06,-0.23ZM452.6,352.21l0.03,0.15l-0.01,0.1l-0.08,-0.08l0.07,-0.17ZM409.93,384.6l0.12,0.01l-0.05,0.33l-0.07,-0.28l-0.01,-0.06ZM408.2,373.33l-0.03,-0.49l0.36,-0.47l-0.09,0.56l-0.23,0.39ZM318.49,387.42l0.17,-0.15l0.1,-0.19l-0.02,0.65l-0.25,-0.3ZM318.8,386.55l-0.03,-0.21l0.0,-0.15l0.04,0.09l-0.01,0.27ZM320.92,364.54l0.05,-0.18l0.03,-0.08l0.11,0.08l-0.19,0.18ZM329.82,363.21l-0.02,-0.07l0.05,-0.02l-0.02,0.09ZM343.75,364.08l-0.01,-0.29l0.6,-0.07l-0.05,0.14l-0.54,0.22ZM393.17,373.66l-0.08,-0.14l0.13,-0.03l-0.03,0.08l-0.02,0.08ZM393.23,373.44l0.07,-0.35l0.01,-0.02l-0.02,0.16l-0.07,0.21ZM431.06,350.19l0.25,-0.55l0.38,-0.32l-0.44,0.76l-0.19,0.11ZM427.63,295.62l-0.28,-0.5l-3.9,0.29l-0.05,-0.78l0.27,-0.75l4.16,-0.81l0.66,1.13l-0.85,1.43ZM524.08,151.98l-0.31,-0.7l1.09,-0.68l0.05,0.73l-0.83,0.65ZM520.21,200.3l0.21,-1.47l2.86,-4.4l0.44,0.9l-1.75,2.84l0.99,1.66l-1.45,0.22l-0.61,1.26l-0.7,-1.01ZM420.31,181.66l0.5,-1.13l0.61,1.02l2.18,0.2l0.2,-2.11l-2.58,-1.69l-0.08,-0.91l1.13,-0.95l0.69,0.51l1.21,-0.61l0.2,-1.3l2.62,-0.71l1.81,0.46l2.56,2.13l2.24,0.35l0.31,1.19l1.42,0.92l1.0,0.0l0.77,-1.08l1.13,0.45l2.52,4.68l-0.84,3.95l-2.07,2.49l0.7,1.81l1.09,-0.5l-0.59,-0.64l1.22,-0.89l1.6,-3.53l3.93,0.81l2.28,-1.58l2.88,-0.6l2.67,1.15l2.12,2.19l0.21,1.53l-1.81,-0.45l-0.43,-0.79l-0.97,0.82l-1.37,-0.9l-1.56,0.62l1.0,1.43l5.16,1.83l0.58,-0.43l6.3,2.56l0.54,1.01l-0.8,1.12l-6.37,0.59l-6.69,-2.54l1.9,1.9l-0.65,1.59l3.73,0.57l-0.82,0.92l0.39,0.6l-2.01,0.42l1.12,1.93l-1.13,0.97l0.03,1.86l0.86,0.06l1.6,-2.88l1.55,-0.39l-0.48,1.34l0.76,0.64l1.1,-1.51l0.94,0.71l0.6,-1.22l0.75,0.45l0.75,1.32l-0.37,2.78l0.86,0.09l1.07,-1.42l1.61,1.73l-0.48,2.76l-1.94,0.28l-0.93,1.73l0.79,0.81l2.49,-0.89l0.58,2.19l1.33,1.51l1.42,-0.6l-0.79,-3.93l0.76,-1.35l2.52,2.98l-0.56,0.98l0.98,0.87l2.69,-2.59l1.11,1.8l-0.58,0.81l1.4,0.22l0.46,-1.42l-0.54,-1.26l0.93,-1.27l2.81,3.26l2.28,0.92l-1.19,1.0l0.32,0.71l3.62,-1.4l2.85,0.31l0.14,-0.97l-3.53,-1.62l2.66,-1.59l2.21,0.32l1.6,-2.35l2.51,0.56l0.44,-0.95l-0.77,-0.68l1.79,-0.55l2.24,-2.61l4.55,1.5l4.51,-2.83l6.91,0.84l-0.53,2.99l5.66,-0.04l1.75,1.99l-1.7,1.15l0.27,0.97l3.83,-0.52l1.21,1.6l-0.53,1.79l0.92,0.75l-0.62,1.94l-1.14,0.29l-0.73,1.93l-2.6,2.21l1.13,1.01l-0.52,2.49l1.8,1.16l-0.62,1.36l0.74,1.02l-0.26,2.91l-5.19,0.58l-3.82,3.12l-3.42,-0.96l-0.78,-1.29l-0.97,1.46l-0.82,-0.18l-2.21,-2.91l-0.2,-3.81l-3.13,-1.87l-0.24,1.98l1.36,1.75l-0.71,4.18l-4.35,1.76l-3.71,0.19l-0.9,-4.45l-0.95,1.65l0.34,2.55l-0.53,0.71l-0.65,-0.02l-1.6,-4.47l-0.45,4.52l-2.58,0.37l0.09,-1.23l-1.15,-1.89l-1.13,3.17l-2.73,-3.02l-0.24,2.09l0.93,1.46l-1.06,0.13l-1.09,-0.96l-0.22,0.83l-0.85,0.11l-0.44,-1.8l-2.14,2.11l-0.75,-1.4l-0.82,0.91l-3.57,-0.34l-0.03,-2.5l1.42,-3.71l-1.17,-0.53l-0.8,-2.75l-1.07,1.47l-0.69,3.45l-0.18,-1.92l-1.67,-1.41l0.22,2.6l-1.36,-0.56l0.99,1.98l-0.25,1.63l-1.66,1.1l-2.62,0.5l-0.42,-1.29l-0.95,0.62l-1.0,-0.68l0.06,-0.86l-1.62,0.41l-1.17,-3.02l-1.41,0.98l1.62,-2.83l-0.59,-1.76l-4.4,5.7l-0.72,-1.79l-2.33,-1.7l0.36,-2.51l-1.15,-3.73l1.17,-0.44l-0.22,-1.71l-1.56,0.09l-0.97,-1.66l1.02,-3.31l-0.61,-0.69l0.38,-1.33l2.31,-3.37l-0.88,-3.82l0.34,-2.99l-2.37,-2.58l-0.62,-3.84l-2.17,-5.39l-1.27,-0.83l-1.98,1.44l-0.9,-0.3l-0.65,1.31l-4.34,-0.35l-1.27,-1.64l-3.24,-1.66l-2.26,-0.08l-0.71,-0.86l-0.49,-1.5l1.84,-0.12l1.17,-2.1l-0.46,-0.51l-1.97,1.2l-2.68,-3.53l-2.35,-0.75ZM451.53,232.53l0.2,0.49l-0.18,-0.03l-0.02,-0.47ZM519.43,222.72l2.08,-1.78l0.93,0.21l1.51,2.32l-2.89,1.86l-1.28,-0.76l-0.35,-1.86ZM455.33,199.74l0.6,-0.68l1.56,0.5l-0.2,0.22l-1.97,-0.04ZM431.08,193.14l-1.37,1.01l-1.29,-0.29l1.88,-1.41l0.78,0.69ZM519.33,369.36l0.08,-0.17l0.17,0.21l-0.24,-0.04ZM514.4,412.13l0.0,-0.0l0.0,0.01l-0.0,-0.0ZM514.58,412.33l1.89,1.01l-0.22,0.67l-1.74,-1.07l0.07,-0.61ZM505.06,417.57l-0.03,-0.82l3.18,1.26l2.57,2.18l0.11,1.35l-1.66,2.13l-1.01,-0.16l-0.76,-4.02l-2.41,-1.91ZM511.99,423.88l0.53,0.2l-0.02,0.3l-1.34,0.67l0.82,-1.17ZM512.86,424.78l0.64,-0.22l1.49,-0.08l-0.52,1.37l-1.6,-1.06ZM512.76,421.7l0.73,-0.05l-0.36,0.47l-0.37,-0.42ZM509.13,194.54l0.2,-0.25l0.21,-0.1l-0.34,0.37l-0.08,-0.02ZM505.31,340.84l-0.75,-0.58l0.04,-0.62l1.46,0.3l-0.75,0.9ZM499.75,419.3l1.02,0.26l1.78,3.19l1.39,3.85l-0.75,1.32l-1.05,-2.07l-2.03,-1.69l-0.36,-4.86ZM493.21,188.12l0.28,0.32l-0.08,0.36l-0.23,-0.13l0.04,-0.54ZM483.42,380.75l0.8,-1.64l-1.23,-1.79l1.89,-4.42l1.7,1.75l0.49,5.12l-1.32,4.42l-1.73,-1.43l-0.61,-2.01ZM484.15,162.05l1.7,-0.5l1.0,1.62l-1.04,0.74l-0.12,-1.25l-1.54,-0.62ZM479.08,334.77l1.48,-0.55l1.82,0.89l1.27,-0.58l0.97,2.02l-1.78,0.37l-1.64,-0.88l-0.74,0.52l-1.39,-1.79ZM427.65,95.01l0.27,-1.04l1.22,0.23l1.58,2.01l3.93,1.28l1.49,-0.22l1.8,1.72l0.72,-0.12l-1.6,-3.36l1.04,-1.26l2.04,-0.47l-0.04,-0.97l-2.53,-1.14l-1.83,2.17l-1.74,0.26l-0.95,-1.25l1.76,-0.53l0.22,-1.33l-2.25,-0.14l-1.26,1.09l-2.31,-2.07l0.39,-1.21l0.99,0.11l0.63,-1.26l2.63,1.42l0.57,-0.4l-0.16,-1.39l-2.47,-2.77l0.74,-1.3l-0.35,-0.92l4.17,-0.23l1.75,1.38l2.55,0.29l0.43,0.81l1.17,-0.55l-0.98,-1.99l-2.46,-0.81l-0.37,-0.98l0.08,-0.6l2.29,-0.25l0.11,-1.13l-3.86,-1.4l0.69,-0.71l-0.44,-0.87l-2.49,0.14l1.73,-1.45l-1.35,-0.79l1.22,-2.91l1.29,-1.01l1.81,2.76l2.64,-1.83l-0.15,-1.22l-1.04,-0.57l1.28,-0.11l1.29,0.95l1.89,-0.69l0.52,-2.62l-0.74,-1.47l-3.04,0.03l-1.69,-1.25l0.7,-2.47l1.83,0.73l0.57,1.15l0.83,-0.76l-0.19,-1.48l0.65,0.25l4.27,3.47l1.67,2.64l-0.43,2.4l1.58,2.67l1.88,6.54l2.15,2.67l-0.55,2.47l3.34,0.83l1.0,2.0l0.82,-0.11l-0.26,-1.63l1.61,-0.09l1.03,1.58l-0.85,1.74l0.69,0.56l-0.7,2.2l1.17,3.27l2.62,2.67l0.96,-0.69l1.24,0.34l0.84,1.37l2.79,-0.41l1.09,2.79l-2.16,3.13l1.2,0.27l1.22,-1.54l-0.58,6.24l-1.43,2.18l0.31,1.7l1.29,0.08l1.04,-2.22l1.07,1.33l0.72,-0.98l-0.31,-1.59l1.53,-0.13l1.13,1.76l-0.42,3.04l1.26,0.71l1.02,-4.81l1.45,4.01l2.55,4.05l-2.54,3.13l-4.99,2.97l-0.71,2.6l-0.81,-2.36l-0.82,-0.01l0.24,3.95l-2.97,6.75l-1.5,-4.29l-0.01,-3.36l0.86,-1.09l0.2,-2.51l-0.74,-0.07l-0.73,1.99l-1.25,0.49l0.24,8.2l-1.07,0.74l0.43,0.7l1.35,-0.23l0.55,2.31l-1.07,1.91l-1.67,-3.62l-1.84,0.17l1.38,5.18l-1.23,6.18l-5.86,-11.61l-0.9,0.8l0.12,2.33l2.56,7.01l-1.18,-0.05l-1.29,-2.64l-2.92,-0.26l-0.73,0.89l2.06,1.11l0.3,2.6l-2.68,0.25l-3.61,-1.19l-1.24,-1.3l-1.27,0.5l-0.49,-2.72l-1.98,-0.11l-1.78,-3.64l1.74,0.12l3.69,-1.35l0.86,0.49l0.59,-1.32l-6.11,-2.35l-2.41,1.06l-0.67,-1.1l0.4,-1.19l-0.98,-0.04l-1.04,-1.94l2.81,1.25l0.87,-0.29l0.08,-1.05l-2.64,-2.05l-1.57,0.04l-1.79,-3.63l3.32,-1.49l1.33,-2.87l2.16,0.72l5.01,-0.32l6.71,-1.41l1.09,-1.33l-0.62,-0.54l-3.02,0.21l-5.19,1.09l-2.43,-1.02l0.26,-0.96l3.07,0.28l3.79,-1.34l0.34,-1.72l-3.82,1.13l-3.09,-0.65l1.69,-1.39l-0.35,-0.85l-1.91,-0.0l-1.26,0.94l-1.09,-1.98l-1.44,1.08l-0.89,2.25l-0.85,0.01l0.02,1.27l-1.24,1.28l-0.58,-1.3l1.68,-1.96l-3.3,-1.25l-0.65,0.26l-0.15,2.01l-2.82,1.37l0.35,-1.57l-0.79,-1.75l-0.99,0.48l-1.03,-0.62l0.36,-2.95l4.91,-1.61l2.03,-2.07l0.3,-2.61l-0.88,-0.51l-2.15,2.69l-1.95,0.74l-2.78,-0.29l-2.35,-4.95l1.56,-1.92l-2.06,-1.42l-0.23,-1.34l1.39,-0.91l-1.55,-0.36l-0.27,-0.93ZM443.68,113.89l0.28,0.85l-0.7,0.52l0.38,-0.96l0.04,-0.42ZM461.38,146.39l0.13,0.3l0.04,0.32l-0.12,-0.23l-0.04,-0.39ZM467.83,95.12l-0.47,-2.39l-1.08,-0.44l-0.75,-1.59l0.77,-3.65l3.21,0.98l0.55,5.35l-2.23,1.74ZM428.54,100.87l-0.38,0.08l-0.0,-0.39l0.24,-0.06l0.14,0.37ZM467.85,144.53l0.1,-1.31l0.38,-0.61l-0.14,0.96l-0.34,0.97ZM468.67,140.92l0.03,-0.58l0.13,-0.04l0.0,0.05l-0.16,0.58ZM453.12,161.32l1.28,-0.9l2.87,0.68l2.74,3.46l0.67,3.57l-2.13,2.79l-1.23,0.17l-3.87,-3.88l-0.32,-5.87ZM459.03,188.82l-2.86,-6.15l1.29,-1.47l1.58,-0.38l1.49,2.86l-1.01,2.28l0.86,2.56l-1.13,-0.33l-0.23,0.65ZM457.48,356.25l0.14,0.07l-0.06,0.19l-0.08,-0.25l-0.0,-0.01ZM455.72,351.19l1.01,-1.44l0.89,0.73l-1.07,2.13l-0.83,-1.42ZM421.71,269.81l0.55,-2.41l0.89,-0.23l-0.57,-7.78l0.24,-2.03l0.85,-0.72l-0.96,-1.53l0.29,-1.54l2.13,-0.53l1.47,2.21l2.74,0.5l-0.05,-1.28l-1.14,-0.38l-1.36,-2.16l0.81,-1.29l-1.45,-0.16l-0.66,-1.39l0.47,-1.74l3.32,-1.81l4.85,-0.73l1.1,1.49l0.62,-2.05l2.47,-0.16l5.15,2.79l0.8,2.82l1.3,-0.14l1.9,-1.66l1.64,-0.14l3.56,0.65l4.75,2.14l-1.09,0.72l0.0,1.59l-2.62,5.22l-1.34,0.04l0.33,1.6l-2.19,4.92l-2.41,0.8l1.51,1.0l-4.78,9.89l-1.63,0.64l-6.15,-2.6l-7.1,1.07l-0.05,1.51l3.42,0.4l-0.14,1.38l1.23,1.05l0.93,2.98l-2.44,2.95l-2.07,5.39l-1.09,1.0l-5.9,0.08l0.81,-2.2l2.19,-0.87l-0.84,-0.59l-1.68,0.45l-0.24,-0.64l0.1,-5.21l0.64,-1.13l-1.31,-4.06l-1.38,-1.4l0.48,-0.89l-0.88,-1.38l-0.04,-4.42ZM430.89,292.66l0.04,-0.02l0.01,0.07l-0.05,-0.05ZM454.65,352.83l-0.33,-0.41l0.26,-1.19l0.58,2.35l-0.51,-0.75ZM453.0,471.13l0.19,0.06l0.17,0.16l-0.28,-0.02l-0.08,-0.2ZM446.91,341.46l0.79,-0.49l-0.07,1.35l-0.35,-0.26l-0.37,-0.61ZM446.55,468.94l0.04,0.02l-0.03,0.04l-0.0,-0.0l-0.01,-0.06ZM445.93,340.08l0.11,-0.11l0.26,-0.0l-0.36,0.11ZM425.38,160.25l0.48,-2.25l3.84,-2.17l0.53,1.65l2.42,-1.14l5.97,1.59l1.12,-0.98l1.66,1.12l0.51,1.38l-1.4,0.71l-0.94,4.39l-12.85,-1.49l-1.35,-2.81ZM419.31,222.88l1.54,-4.3l2.31,-0.56l0.69,-1.51l-0.75,-0.37l0.27,-0.52l2.01,-1.42l-0.54,-2.11l5.25,-2.91l2.61,0.99l3.95,5.88l-0.84,1.01l1.78,1.21l-0.53,1.41l0.6,1.82l-1.11,1.77l1.18,1.96l-0.24,4.58l-0.78,0.52l0.47,1.21l-0.56,0.6l-6.55,0.22l-0.53,-1.16l-1.47,-0.02l0.15,-1.12l-1.59,-1.93l-2.87,-1.1l-0.38,0.45l-1.38,-2.06l0.6,-0.63l-0.39,-2.11l-1.01,0.49l-0.55,2.09l0.12,-2.13l-1.46,-0.23ZM423.56,213.87l-0.12,-0.05l0.05,-0.1l0.03,0.01l0.04,0.13ZM433.47,79.05l2.22,0.14l0.49,1.15l-0.62,0.41l-3.69,-1.53l1.6,-0.17ZM416.22,136.4l2.05,-0.98l-1.3,-2.9l0.11,-2.87l0.9,-0.83l3.13,0.78l2.68,2.67l1.63,0.48l1.66,1.84l-0.48,2.22l1.8,1.36l1.39,-0.82l0.94,0.36l2.76,3.08l-0.08,1.03l-2.91,2.52l2.41,3.58l-0.97,3.13l-1.57,-0.19l-5.02,2.32l-0.97,-1.04l-1.33,0.69l-0.83,1.91l-0.66,-0.34l0.57,-2.92l-3.36,-2.86l0.27,-0.99l3.77,0.54l0.54,-1.86l-2.74,-2.31l-1.83,-0.37l-1.24,-2.23l0.23,-2.37l-1.49,-1.43l-0.07,-1.19ZM432.55,201.06l0.82,4.6l-1.67,0.27l-0.94,-4.09l1.79,-0.78ZM430.01,501.43l0.97,-0.01l0.44,0.57l-0.36,0.42l-1.04,-0.98ZM423.28,233.75l1.26,-1.17l1.43,2.47l-2.18,-0.68l-0.52,-0.62ZM417.48,212.26l-0.01,-0.76l2.38,-1.13l-0.06,1.93l-1.18,0.75l0.15,0.81l-0.97,-0.05l-0.31,-1.56ZM421.34,209.39l0.11,-1.06l1.96,1.73l-1.35,1.95l-0.81,-1.09l0.09,-1.54ZM421.62,297.89l0.27,-0.12l-0.0,0.05l-0.27,0.08ZM422.23,296.62l-0.31,-0.28l0.46,-0.16l-0.15,0.44ZM389.19,351.96l1.95,0.55l2.03,-0.68l1.12,-2.28l0.58,0.4l1.52,-0.72l0.14,-1.27l-1.28,-2.05l1.34,-0.17l-0.91,-2.29l0.88,0.34l1.71,3.05l1.24,-0.02l0.18,-0.77l-2.25,-3.41l0.79,-2.88l2.42,-2.54l3.0,2.8l0.46,1.11l-0.92,0.82l0.66,1.72l0.83,-0.03l0.58,-1.54l2.19,4.14l4.67,4.17l-0.47,5.36l0.77,0.85l0.76,-0.35l0.21,-3.25l1.03,6.77l1.07,0.08l0.67,1.22l2.22,-1.37l0.64,0.63l-1.91,2.36l-0.86,-0.78l-1.61,0.33l-0.77,2.34l-1.05,-0.01l-2.45,2.86l-1.47,0.43l-4.18,-3.29l-0.78,0.45l0.0,1.03l-2.13,-0.68l-2.02,-2.6l-3.15,-1.4l0.02,-2.1l-1.03,-1.12l-0.95,0.29l-0.32,1.89l-2.35,-1.9l0.57,-1.76l-1.34,-1.01l-1.67,0.69l0.3,1.29l-0.62,0.2l-1.39,-1.1l-0.88,-2.86l1.01,-1.65l1.16,-0.28ZM414.67,346.77l0.79,-2.2l1.01,-0.52l2.17,2.28l-0.36,2.41l-1.64,1.11l0.59,-3.49l-0.78,-1.58l-1.18,0.46l-0.29,3.04l-0.32,-1.5ZM414.95,348.36l-0.2,0.62l0.01,0.28l-0.08,-0.53l0.28,-0.37ZM411.32,98.34l1.01,-4.59l1.24,-1.13l1.28,1.16l1.53,-0.38l1.16,4.2l-0.81,6.55l-1.8,-1.46l0.27,-2.18l-1.22,-1.67l-2.43,0.15l-0.23,-0.65ZM374.65,271.26l1.97,-5.77l2.84,-1.37l1.55,1.82l0.05,1.86l1.25,1.11l0.57,3.29l2.19,1.66l1.59,0.06l0.69,-1.11l2.35,0.48l1.05,-1.22l0.12,-1.68l1.82,-0.35l0.42,-1.35l-0.92,-4.78l-0.97,-0.3l-0.87,0.71l-0.41,-0.77l1.36,-2.26l2.16,2.2l1.64,-0.07l0.25,-0.94l-1.66,-0.9l-2.81,-5.73l0.58,-2.35l-2.08,-1.04l0.29,-0.74l-1.18,-0.76l0.61,-2.28l3.23,-0.36l2.81,2.56l1.41,-2.63l1.47,0.9l1.99,3.57l0.77,-1.37l1.88,0.54l0.9,-0.84l3.78,-0.59l1.4,-1.38l0.62,0.59l1.21,-0.69l1.97,0.93l1.5,2.73l-0.26,1.98l-1.56,1.52l-1.16,-0.78l-0.5,1.25l-0.96,-0.32l-0.62,1.65l0.6,1.01l1.16,-0.71l1.4,0.5l-0.15,1.78l-3.64,1.11l-5.82,6.46l0.48,3.84l1.76,-2.63l1.76,-1.18l1.87,0.33l2.34,1.76l-0.22,1.33l-1.09,0.6l1.34,0.81l1.01,2.19l-1.14,1.5l0.2,1.66l1.04,-0.04l2.47,-2.03l1.12,1.43l0.68,4.68l-2.3,1.94l-1.3,-0.26l-0.36,0.62l1.76,1.4l0.5,2.45l-0.19,1.19l-2.27,0.61l-0.18,0.67l2.39,0.53l-0.21,0.9l-1.8,1.03l0.88,0.81l0.98,-0.56l-0.72,1.86l-0.73,-0.91l-1.9,1.1l-1.79,2.78l-3.0,0.77l-3.68,-1.31l-0.54,-1.24l1.3,-3.44l-1.08,-0.61l-2.02,4.09l2.62,4.72l-1.02,1.91l-2.48,2.43l-1.29,0.19l-1.19,-2.37l-1.76,0.57l-0.52,-5.08l-1.18,-0.97l-1.5,-5.44l-1.64,-0.98l-2.95,-7.01l-1.04,-0.68l-1.38,0.27l0.07,-1.82l-1.28,-1.58l-1.8,1.15l-1.95,-1.02l-0.38,-0.95l0.82,-0.69l-0.81,-0.81l-0.0,-1.42l-2.82,-2.69l-1.76,-3.24ZM390.43,268.86l-0.03,-0.05l0.05,-0.05l0.03,0.02l-0.05,0.08ZM391.13,258.22l-0.13,1.15l-2.76,1.04l-3.72,-4.97l2.35,-2.21l1.66,0.33l1.12,3.12l1.48,1.54ZM395.74,247.0l-1.15,1.05l-0.77,-0.64l1.11,-1.09l1.19,0.17l-0.38,0.51ZM383.64,205.28l0.98,-0.35l-0.1,-1.22l0.92,-0.88l2.25,1.05l0.89,-0.46l-1.01,-1.33l0.64,-1.21l-1.4,-0.09l0.59,-1.18l2.2,-0.44l1.73,3.41l1.11,0.73l2.79,-1.46l-0.32,-0.68l-2.14,0.59l-0.0,-1.51l-0.95,-0.56l-0.09,-1.13l1.71,-1.64l-0.08,-0.96l-2.37,0.42l-0.43,-0.71l0.15,-2.2l3.16,-2.97l-4.23,0.03l1.31,-2.84l-0.4,-0.94l1.17,-0.93l2.36,1.3l1.07,1.88l-0.53,2.31l2.46,2.81l-0.67,1.03l2.18,1.08l1.1,2.81l-0.34,0.81l1.3,1.29l3.61,-2.66l-2.55,0.12l-1.15,-3.95l2.31,0.7l2.05,-1.41l-1.88,0.14l-1.45,-1.62l-1.17,0.14l-1.42,-1.07l0.11,-0.5l3.22,0.42l0.05,-1.7l-1.42,-1.76l-2.77,-0.3l-1.23,-2.57l3.98,-2.87l2.12,1.16l0.39,0.02l0.59,-0.55l0.17,0.01l-0.21,0.83l0.76,0.32l2.26,4.87l0.32,-1.26l1.55,0.24l-0.83,-2.83l0.59,-1.37l1.04,0.97l1.35,-0.91l0.26,1.46l3.57,2.17l-0.94,3.69l1.31,3.45l-1.27,4.95l0.26,2.81l-2.32,2.5l3.09,2.5l-0.58,3.27l-1.38,-1.71l-2.28,2.1l-0.15,1.15l1.02,0.42l-1.01,0.13l-0.97,2.26l0.38,1.15l1.83,1.31l-0.22,1.08l0.95,1.02l-0.73,0.28l-1.64,-2.81l-0.86,1.75l0.95,3.04l-4.23,0.37l-0.99,-1.88l-0.85,1.34l-1.93,0.15l0.71,-3.06l-0.84,0.16l-1.41,3.01l-4.51,-1.58l0.29,-2.82l-0.76,-1.01l2.77,0.07l0.63,-0.78l-1.72,-0.92l-0.09,-1.25l-1.4,0.3l-0.46,-0.63l1.35,-0.75l-0.55,-1.38l3.07,-0.16l0.54,-0.85l-0.65,-0.91l1.3,-0.09l1.47,-1.72l-0.75,-0.88l4.91,-0.17l0.33,-1.35l-10.06,0.4l-4.14,0.95l-1.31,-0.58l-6.97,1.45l-0.47,-1.89ZM414.24,266.9l0.91,0.17l0.16,1.43l-0.9,1.89l-1.18,0.2l-0.74,-3.42l1.63,-1.82l0.11,1.55ZM413.9,275.02l-1.05,-0.59l1.41,-2.15l0.13,1.99l-0.49,0.75ZM411.31,235.08l-0.17,-0.77l2.09,-2.24l-0.31,1.96l-1.61,1.05ZM409.94,345.15l2.12,0.76l0.95,-0.39l-0.28,3.31l-2.79,-3.68ZM382.84,135.77l-0.59,-2.3l0.4,-2.05l1.47,-0.73l2.71,2.01l2.88,0.94l1.3,-3.47l-3.0,-0.68l2.42,-0.16l1.53,-2.23l-0.42,-1.23l-1.34,-0.04l-0.51,-0.94l-1.08,0.01l-0.37,0.97l-0.54,-0.55l2.34,-2.62l-0.92,-2.5l-0.98,-0.62l-1.67,0.95l-1.02,2.32l-1.68,1.23l2.44,-5.44l-1.31,-1.09l-2.99,0.31l0.45,-3.63l1.34,-3.45l1.11,0.94l6.93,-0.53l2.58,2.17l0.69,1.58l0.97,4.08l-1.29,3.2l0.94,0.56l0.02,1.87l1.57,-1.52l0.25,-1.95l2.39,-1.59l0.93,0.3l1.44,2.91l1.25,0.73l-1.25,3.71l1.42,1.16l2.81,-1.08l1.86,3.24l-0.91,1.75l2.41,1.23l-2.04,3.56l-0.03,3.7l1.35,0.72l2.39,5.97l-1.01,2.34l0.25,1.78l-0.75,0.82l-3.19,0.26l-0.72,0.75l-3.03,-2.19l-0.72,-3.75l0.56,-1.61l-1.23,-3.56l-1.38,0.11l-0.96,-1.37l-3.26,-1.74l-2.35,0.82l-0.76,-0.98l0.85,-1.48l-0.29,-1.0l-5.42,0.69l-1.75,1.62l-2.15,-1.03l-1.32,-2.23ZM402.18,245.84l5.3,-1.86l2.75,-0.09l-1.09,2.38l-2.21,2.01l-2.94,0.62l-4.58,-1.3l2.65,-0.81l0.12,-0.96ZM404.52,336.05l0.28,0.24l-0.19,0.5l-0.18,-0.17l0.08,-0.57ZM400.0,384.31l0.18,-0.59l0.82,-0.41l-0.03,0.27l-0.98,0.73ZM393.68,182.33l2.34,-0.92l1.47,-1.77l3.14,0.18l-5.02,2.71l-1.93,-0.2ZM392.97,153.4l0.22,-3.26l3.57,0.04l2.26,1.79l1.09,2.26l-2.85,-0.38l-1.53,1.08l-2.76,-1.53ZM390.42,142.83l-0.37,-1.01l1.77,-1.87l0.13,1.23l-1.53,1.65ZM380.94,200.83l0.6,-1.1l1.3,-0.07l0.14,-1.57l4.85,-1.31l0.73,0.88l-2.31,0.72l-1.53,2.53l-3.78,-0.08ZM378.12,196.44l4.81,-1.79l4.15,-0.08l-0.14,0.79l-7.87,1.78l-0.95,-0.71ZM375.95,190.46l3.49,-1.4l6.37,-0.48l0.58,1.84l-1.06,2.26l-3.24,1.1l-3.2,-0.16l-2.89,-1.45l-0.05,-1.71ZM382.95,318.72l1.44,0.77l0.22,2.48l-1.82,-1.42l0.16,-1.82ZM376.35,180.68l1.85,-1.9l1.59,0.1l-0.7,2.34l1.86,-0.68l0.7,2.11l2.71,2.61l-1.9,1.61l-5.37,-0.68l0.39,-3.22l-1.13,-2.29ZM382.75,351.96l0.5,1.7l-0.24,1.27l-0.95,-1.38l0.69,-1.6ZM378.63,357.96l0.57,-3.98l0.44,-0.58l2.04,2.62l-0.39,1.86l-1.43,1.5l-0.05,-1.51l-1.16,0.08ZM380.72,368.46l0.1,-0.05l-0.02,0.19l-0.08,-0.15ZM374.01,155.31l0.21,-2.42l-0.8,-2.01l0.8,-0.65l1.57,1.3l1.89,4.93l-0.54,3.16l1.37,0.18l1.17,2.66l0.14,1.85l-0.85,1.86l-1.4,0.46l-0.78,-1.62l-1.22,-0.12l-1.48,-7.58l0.58,-1.2l-0.67,-0.8ZM262.31,316.35l2.08,-0.14l-1.96,-6.32l0.67,-1.78l29.25,8.27l-0.45,3.6l3.86,0.06l0.08,-2.77l17.96,3.86l11.64,-52.14l1.02,0.72l0.45,-0.54l-0.33,-5.28l0.81,0.53l0.91,-1.42l-1.26,-1.18l0.84,-3.76l1.32,0.77l-0.68,0.91l1.98,3.52l1.31,0.03l0.66,1.95l-0.78,2.32l2.6,0.61l-1.19,4.72l-0.04,4.61l0.7,0.67l-0.61,2.61l0.7,0.59l-0.15,1.23l0.53,-0.06l-0.76,0.93l0.26,2.94l-0.58,0.75l1.35,0.47l0.24,1.97l1.62,0.74l0.65,-0.57l-0.39,-1.82l1.03,0.39l0.95,-1.25l2.37,-0.74l-0.93,-1.08l1.3,-1.05l-1.93,-2.91l0.34,-1.81l-0.81,-1.19l0.22,-2.55l0.8,-0.71l-0.48,-2.76l0.67,-0.65l-0.92,-1.26l0.86,-1.52l-0.24,-12.82l0.88,-1.09l1.54,0.68l0.58,-0.44l-1.25,-2.02l0.83,-1.15l1.76,0.8l3.3,4.11l0.86,-0.52l-0.07,-2.01l1.15,-0.22l2.82,5.57l2.41,1.22l1.77,5.26l-0.7,1.14l0.97,2.93l-0.1,2.98l-0.73,1.46l1.27,6.09l-0.78,2.36l0.62,5.17l0.86,1.04l1.18,5.51l-0.26,4.34l-1.28,0.3l-0.33,3.04l-1.64,2.12l2.84,4.68l0.53,3.8l1.04,0.58l1.58,3.35l1.99,0.55l0.87,1.98l3.24,1.02l4.5,5.28l1.19,0.26l0.88,-0.76l0.39,4.13l1.88,-0.71l0.81,0.64l1.28,-0.97l0.03,7.9l-0.86,2.57l-1.99,-0.34l-0.66,-3.2l0.48,-1.61l-0.57,-0.42l-2.18,4.42l-1.52,-1.35l-0.31,-2.12l-1.01,-0.13l-0.04,-1.44l-0.73,-0.32l-1.28,2.17l-1.57,1.08l-1.03,-0.29l1.04,2.25l-0.26,1.54l-0.39,0.73l-1.54,-0.01l-2.17,-1.88l-0.77,-1.75l-1.95,-0.38l-0.57,1.77l1.97,2.07l0.29,2.37l0.94,0.37l-0.8,3.26l-1.54,1.25l-0.03,1.94l0.83,0.08l3.22,-5.13l2.26,-0.4l0.69,-1.2l1.16,-0.27l1.41,0.47l0.57,1.19l-1.81,0.93l-0.19,0.91l0.88,0.86l-1.2,-0.23l-0.23,1.51l1.39,1.22l1.0,-1.4l0.8,1.26l-0.83,3.7l-1.57,-0.48l-0.9,0.9l-1.83,-0.25l-1.1,1.72l-1.84,-0.82l-0.04,1.26l-1.58,0.48l-1.41,-1.13l-1.54,0.16l-0.46,0.75l-0.83,-1.04l-3.94,-1.21l-1.27,-2.09l-1.5,-0.03l-1.12,1.34l-3.67,-1.26l-0.43,-0.87l2.54,-1.36l0.07,-1.33l-3.85,-1.12l-0.64,-1.26l-2.42,-0.91l-2.45,0.1l-1.13,-0.9l1.31,-1.45l0.18,-2.67l-1.8,-2.85l-1.81,1.09l-0.36,1.29l-1.64,0.17l-0.41,3.13l-3.6,3.28l-4.69,0.8l-4.32,-1.01l-0.77,1.48l-3.95,2.3l-4.82,0.78l-4.52,-0.72l-1.13,0.66l-1.45,-1.06l-1.8,0.4l-0.65,-0.82l-4.19,-0.24l0.07,1.07l-6.6,-1.54l-2.6,-0.28l-1.27,0.6l-1.79,-0.57l-0.18,-1.43l-1.54,-1.61l-1.07,-4.66l2.09,-4.8l-0.39,-2.55l1.28,0.35l-0.11,-0.95l-4.84,-3.41l-4.48,-0.59l-1.12,-0.97l-1.41,0.5l-5.16,-2.72l-3.26,-3.47l0.33,-3.36l-1.77,-0.93ZM296.42,348.86l0.63,0.22l-0.44,-0.1l-0.19,-0.12ZM366.3,318.81l-1.06,-1.02l0.04,-1.63l1.15,1.7l-0.13,0.94ZM282.72,346.82l-0.62,-0.06l-0.07,-0.11l0.28,-0.07l0.41,0.24ZM374.96,341.65l1.94,1.67l-1.05,1.12l0.26,-1.62l-1.15,-1.16ZM370.45,212.46l1.02,-2.68l1.74,-1.62l1.28,0.15l1.48,1.77l0.65,4.47l-1.81,1.97l-2.25,0.64l-3.24,-2.83l1.13,-1.86ZM372.18,349.51l-0.69,-0.62l0.14,-0.26l0.41,-0.04l0.14,0.92ZM365.6,358.91l2.37,-2.4l1.72,1.02l-0.26,2.28l-0.9,-0.23l-0.19,1.25l-2.74,-1.91ZM369.05,337.93l-0.03,-0.16l0.09,-0.51l-0.05,0.67ZM337.68,214.24l3.33,-14.87l5.76,2.77l1.51,-3.5l0.25,-2.2l-3.92,-3.56l-0.1,-1.81l-1.63,-0.12l5.0,-2.96l-0.8,-3.92l-1.48,-1.73l-0.79,0.02l1.18,-5.29l1.87,-0.82l0.02,-1.38l3.47,-4.44l2.99,-0.51l-0.22,1.64l1.01,0.5l-0.04,1.06l-1.91,1.27l0.66,2.21l-1.1,3.26l1.56,1.07l0.7,2.61l-0.87,0.53l0.36,1.05l-1.58,0.69l-1.35,3.04l0.43,0.57l3.42,0.05l0.8,1.47l-2.71,3.12l-0.33,1.81l1.16,0.02l1.48,-1.92l2.67,-0.13l0.44,6.08l0.92,0.31l0.57,-2.72l1.6,-0.89l-1.34,-0.99l0.58,-2.79l1.65,-1.78l1.33,0.24l2.88,2.18l0.61,1.29l0.03,6.89l-2.61,3.05l0.61,0.99l-0.66,2.23l-1.87,2.23l-0.39,2.47l-1.33,1.0l0.24,0.93l-4.44,0.4l-1.89,1.54l-1.09,-0.14l-2.22,-1.7l0.37,-2.12l-0.6,-1.0l-0.76,1.63l-1.43,0.28l-0.39,1.54l-2.11,0.01l-0.34,-2.82l-1.7,-1.22l-5.3,3.83l-2.16,-0.53ZM352.93,252.59l-2.03,-2.5l-1.37,-0.46l3.4,-4.11l8.91,0.49l3.37,4.72l-1.3,5.04l-1.65,3.11l-2.3,3.37l-1.39,1.24l-1.07,-0.21l-0.06,1.2l-2.02,-6.47l-0.9,-0.66l-0.05,-2.54l-1.54,-2.22ZM356.24,131.28l0.61,-2.73l1.07,-4.77l1.78,2.73l0.28,1.9l-1.49,3.66l-1.82,0.06l-0.43,-0.84ZM354.64,140.84l-0.56,0.09l0.72,-3.2l1.23,1.04l-1.38,2.06ZM344.37,358.41l2.93,0.73l0.43,2.38l-1.76,-0.48l-1.6,-2.64ZM343.31,246.11l1.2,-0.38l1.16,0.72l-2.22,0.24l-0.15,-0.58ZM319.51,383.52l0.58,1.05l0.1,0.1l-0.52,-0.1l-0.16,-1.05ZM317.62,367.22l0.19,-0.56l0.63,-0.35l-0.4,1.1l-0.43,-0.19ZM317.34,374.35l-0.13,-0.78l0.25,-1.06l0.35,1.97l-0.46,-0.13ZM316.98,377.97l0.04,-0.85l0.65,-0.18l-0.58,1.35l-0.12,-0.32ZM314.27,374.28l0.57,0.24l-0.52,0.82l-0.22,-0.84l0.16,-0.22ZM310.96,365.11l0.9,-0.17l0.05,1.27l-0.95,-1.11ZM308.75,362.36l0.31,0.23l0.02,0.64l-0.44,-0.71l0.11,-0.16ZM304.92,360.33l0.09,-0.06l-0.03,0.05l-0.06,0.01ZM298.85,350.54l1.55,-0.48l0.33,0.64l-1.15,0.07l-0.73,-0.23ZM292.43,354.37l-0.15,-0.28l0.45,-0.29l-0.16,0.44l-0.15,0.13Z\", \"name\": \"Nunavut\"}, \"ns\": {\"path\": \"M806.11,740.27l1.94,-4.77l1.53,-10.21l1.51,-3.01l0.15,-1.97l1.87,-0.41l-0.36,1.59l1.07,0.72l1.38,-0.48l0.25,0.69l-0.15,2.84l0.78,0.69l-0.72,7.59l0.66,0.58l-1.72,2.11l-1.3,0.41l-2.17,3.71l0.96,0.16l0.28,1.37l0.95,-0.71l0.24,0.04l-1.43,1.75l0.15,1.53l1.35,0.03l1.9,-1.77l0.72,0.25l-0.26,0.87l-2.52,2.28l-1.15,-0.45l-1.0,1.26l-1.85,-1.48l-3.05,-5.19ZM816.59,744.31l1.05,-1.42l-0.51,-1.54l2.65,-4.97l-0.63,-0.39l-2.83,2.93l-0.6,-0.45l3.92,-6.11l-0.72,-0.78l-1.52,1.81l1.07,-2.31l1.42,0.6l-0.36,1.85l1.71,-0.36l-0.0,-1.84l2.48,0.8l0.8,-0.47l-0.4,2.67l1.97,0.46l-3.13,2.47l-0.17,0.84l0.9,0.39l-1.01,1.83l-4.32,3.9l-1.76,0.09ZM816.44,732.88l0.05,-0.34l0.15,-0.22l-0.19,0.56ZM816.77,732.01l0.24,-0.64l0.0,-0.0l-0.04,0.32l-0.2,0.32ZM812.97,739.62l0.88,-1.79l0.6,-0.25l0.0,1.23l-1.48,0.81ZM759.62,789.53l0.16,-4.68l2.2,-4.08l-1.01,-0.82l0.79,-1.21l0.55,1.16l1.15,-0.48l2.56,-4.02l-0.92,-0.09l-2.38,2.22l8.34,-9.82l4.16,-3.04l0.82,-1.68l0.15,2.95l0.79,0.75l0.65,-0.85l0.83,0.28l1.64,1.93l0.85,-0.63l-0.2,-1.37l-1.52,-0.96l0.48,-1.27l4.28,-3.21l3.19,-0.71l0.95,-1.59l-3.38,-0.07l-3.46,1.51l-2.84,-0.03l-3.3,1.74l-2.47,-0.07l-1.2,0.97l-0.22,1.24l-2.04,0.04l4.14,-6.74l0.02,-1.13l1.63,-0.72l0.41,-3.75l1.44,-1.22l1.43,0.16l2.21,1.66l1.47,-0.03l1.43,-1.45l-0.11,1.13l1.96,-0.28l0.15,0.77l1.33,0.29l2.45,-1.4l0.23,-0.87l4.41,-0.24l-1.15,1.72l1.38,0.56l1.1,-0.77l-0.0,-0.87l2.14,0.66l4.61,-6.3l1.62,2.8l3.57,0.38l1.19,-1.77l3.74,2.14l-2.2,2.48l0.51,0.93l5.15,-1.32l0.05,1.13l-0.76,-0.45l-1.84,0.96l-0.78,1.92l-3.7,1.02l0.54,1.19l-1.67,0.55l-2.19,3.02l-2.05,0.97l-1.89,2.18l-0.47,-0.39l-3.51,3.25l-0.15,1.04l-1.47,0.57l-0.41,-0.68l-1.66,0.09l-0.12,1.24l-1.32,0.34l-0.06,1.77l-1.34,-0.47l-0.81,0.54l0.56,0.97l-3.16,-1.14l-0.2,0.6l1.63,1.08l1.01,2.07l-1.9,0.73l-0.83,-0.89l-1.51,0.95l-0.65,-3.4l-2.22,1.84l0.95,1.84l-0.28,0.68l-1.28,-1.4l-2.02,0.98l-0.06,2.33l0.87,0.89l-0.1,1.05l-1.02,0.47l1.06,0.58l-1.02,2.27l-1.52,1.0l1.05,0.57l-1.54,0.73l0.61,1.07l-1.6,1.43l0.4,1.43l-0.91,-0.21l-0.93,0.87l0.68,1.29l-1.25,-0.81l0.52,1.66l-3.0,-0.19l0.49,2.0l-0.73,-1.36l-1.0,0.63l0.82,2.23l-1.31,0.88l0.18,1.22l-1.36,-0.74l-1.19,1.4l-1.25,-2.57l-2.08,-1.97l-2.19,-0.02l0.72,1.81l-1.29,-0.35l-2.43,-5.2ZM815.32,751.9l-0.03,0.02l0.03,-0.1l0.01,0.08ZM814.11,746.7l0.43,-0.47l0.76,-0.29l-0.16,0.85l-1.03,-0.09Z\", \"name\": \"Nova Scotia\"}, \"mb\": {\"path\": \"M325.81,733.16l8.91,-123.96l2.81,-21.17l0.68,-1.04l-0.07,-3.63l1.91,-0.88l-1.53,-1.99l0.27,-2.01l2.58,-1.88l2.72,-3.66l0.59,-2.49l-1.67,0.2l-0.75,-0.71l0.21,-4.29l-1.41,0.85l-1.0,2.53l0.82,-2.47l-0.4,-0.68l4.56,-34.38l33.83,3.81l33.9,2.47l-0.48,6.3l0.68,6.11l-0.92,4.18l-1.34,-0.06l-0.7,0.81l1.81,0.42l1.05,1.4l-0.48,3.02l1.42,-0.82l1.5,3.03l1.8,-0.28l0.27,0.59l-1.11,2.12l-0.82,6.88l0.75,-0.03l1.44,-3.28l0.06,-3.8l1.1,-2.83l4.0,-0.25l1.82,0.42l0.99,1.31l1.01,-1.02l1.12,0.23l0.16,4.19l2.86,8.44l0.25,4.64l3.21,8.93l-1.85,5.4l-2.86,2.98l1.99,-0.17l2.43,-1.98l1.58,-0.33l-1.98,1.88l1.85,-0.02l1.33,-1.17l12.03,-4.28l4.28,0.66l6.26,4.2l9.56,3.02l-49.26,55.91l-17.57,16.11l-3.92,65.83l-1.43,0.88l0.3,2.14l-32.47,-2.21l-38.67,-4.14ZM358.05,659.25l-0.57,1.38l2.52,3.34l1.2,-0.32l1.1,0.68l0.62,-0.83l2.78,0.77l-4.58,1.29l-0.34,1.82l0.94,2.85l3.13,3.99l0.22,2.26l2.43,1.74l0.42,2.75l0.85,0.78l0.19,3.11l3.02,1.79l1.2,-4.49l1.9,-0.21l-1.49,1.95l0.62,1.94l2.46,-2.21l0.95,4.17l-1.21,3.82l0.46,3.17l2.17,-1.39l0.62,-2.57l2.26,-0.95l0.51,1.06l0.38,1.6l-2.51,3.7l-0.84,3.0l1.26,0.25l2.08,-2.67l0.81,0.32l-3.9,4.57l-0.97,8.83l0.63,2.85l3.31,0.71l1.33,-1.44l-0.09,-3.28l0.45,-0.38l1.4,1.29l1.52,-0.53l-0.8,-1.43l0.01,-6.93l0.84,0.05l-0.0,-1.41l1.12,-0.85l-2.33,-3.53l-0.47,-2.7l-2.13,-3.63l0.91,-0.39l-0.33,-1.21l-1.6,-1.06l0.58,-1.53l-2.3,-4.74l0.77,-0.8l-0.17,-2.6l-1.45,-5.26l-1.96,-3.44l-0.13,-1.34l1.12,-1.31l-0.84,-0.77l0.04,-2.34l-1.58,-2.21l-0.66,-3.65l-1.5,-2.46l0.32,-1.95l-1.36,-4.38l2.17,-0.28l0.64,-1.93l-2.8,0.55l-1.48,1.77l-1.1,-1.27l0.86,-0.78l0.17,-2.08l2.78,-0.81l1.18,-1.18l-1.97,-2.6l-1.06,0.24l-3.76,7.32l0.66,2.32l1.82,1.62l-2.82,-1.76l-3.25,-0.16l-1.68,-1.09l-1.33,0.35l-4.39,11.12ZM338.24,663.05l-0.65,0.97l0.87,0.92l-0.25,1.12l1.03,-0.05l0.55,1.29l2.0,-0.24l0.99,-1.7l0.09,-1.38l-1.05,-1.03l2.46,0.66l-0.57,3.78l1.64,2.97l1.19,-0.99l-0.32,-3.9l0.85,1.53l0.88,-0.01l-0.54,2.9l0.85,1.25l-0.42,1.66l-1.48,1.16l-0.83,1.91l-0.36,6.88l0.69,3.55l1.1,0.47l1.8,2.85l2.36,-0.58l0.56,2.28l1.19,-2.43l1.22,0.34l0.19,1.6l1.37,0.02l0.09,3.43l1.45,3.0l-0.79,0.41l-0.11,1.58l2.87,6.16l1.6,6.25l-0.78,1.22l0.13,1.98l1.68,1.36l3.19,-0.36l2.9,-1.85l0.24,-2.18l-4.5,-7.89l-3.89,-1.78l-0.07,-1.57l1.52,-1.23l1.34,-3.48l-2.0,-0.95l-0.47,-1.63l1.15,-2.77l-0.96,-2.78l-0.73,-0.49l-1.66,0.65l-1.94,-2.22l0.01,2.67l-0.52,0.11l-0.48,-2.45l-1.72,-0.95l-1.95,2.31l0.29,-2.62l-0.56,-1.05l-0.64,0.0l-0.97,2.03l1.25,-3.44l0.01,-1.74l-0.87,-0.31l0.05,-3.27l1.27,-1.06l1.73,-3.79l-0.43,-5.26l0.7,-1.86l-4.25,-3.36l-3.17,-1.0l-0.49,-1.05l-1.59,-0.72l-1.62,1.53l-2.05,-0.16l-0.63,-1.36l-1.79,0.41l-0.53,1.06l1.35,1.66l-0.08,1.04ZM343.01,656.44l1.13,1.51l0.98,-0.26l0.96,2.44l3.89,2.01l3.85,-0.8l0.49,1.98l2.25,-0.5l-0.1,-1.24l0.87,-0.61l-0.66,-1.0l0.38,-2.94l-2.0,0.71l-2.48,-0.31l-0.99,1.43l-0.7,-1.78l0.88,-1.47l-1.1,-2.72l-1.76,-1.5l3.0,-1.3l0.35,-1.72l0.74,1.18l0.79,-0.05l1.06,-2.81l1.32,-0.99l-0.07,-1.43l-0.89,-0.39l-2.15,2.28l-3.16,1.45l-0.24,-0.54l1.53,-1.35l-1.92,-1.62l4.72,-1.87l-0.02,-1.11l-1.87,-0.0l-1.52,-1.59l-1.47,0.99l-0.63,-0.73l-0.85,0.38l0.24,5.25l-1.56,-0.75l-1.07,0.89l0.89,1.62l-0.57,0.99l1.53,3.23l-1.1,-0.29l-0.96,0.88l-1.74,-0.65l-0.54,0.69l0.88,1.1l-2.03,-0.96l-1.8,1.37l3.2,2.86ZM341.7,570.74l0.11,0.46l-0.33,0.4l-0.3,-0.25l0.52,-0.61ZM372.43,651.83l0.78,0.33l0.07,0.14l-0.68,0.12l-0.17,-0.58ZM373.09,681.95l-0.22,-0.07l-0.17,-0.02l0.34,-0.17l0.05,0.27ZM385.47,699.16l0.7,-0.42l0.64,-0.04l-0.44,0.34l-0.9,0.12ZM383.3,699.6l-0.34,1.82l-1.34,0.72l0.88,-0.74l0.79,-1.81ZM377.76,678.72l0.37,-0.5l0.24,-0.1l-0.05,0.16l-0.56,0.45ZM370.13,675.8l0.54,-1.53l0.13,3.36l-0.46,-0.78l-0.22,-1.05ZM357.53,697.63l0.49,0.05l0.11,1.04l-0.27,-0.23l-0.34,-0.86ZM358.33,696.85l-0.03,-0.15l0.14,-0.13l-0.11,0.27ZM357.84,689.63l0.46,0.59l-0.04,2.55l-0.44,-2.49l0.02,-0.65ZM347.78,684.17l-0.0,-0.02l-0.02,-0.1l0.05,0.08l-0.04,0.04ZM347.6,681.67l-0.12,-0.23l0.03,-0.26l0.07,0.22l0.02,0.27ZM349.11,674.67l-0.15,-1.21l0.81,-1.07l-0.36,1.68l-0.3,0.6ZM348.35,656.43l0.0,0.0l-0.0,0.0l-0.0,-0.0Z\", \"name\": \"Manitoba\"}, \"sk\": {\"path\": \"M225.52,715.72l39.97,-178.67l7.25,-1.44l1.31,1.41l12.87,0.18l1.43,-2.31l0.88,1.22l4.11,0.42l3.46,1.73l7.89,0.67l-0.84,-0.96l-5.15,-0.85l-2.45,-1.6l-3.4,-0.16l-2.27,-2.18l-3.22,-0.71l-2.58,-1.68l-4.02,-0.32l-2.77,0.98l1.34,-2.29l-0.87,-0.76l-1.81,0.51l-0.58,-2.19l-0.93,-0.65l-2.97,-0.33l-5.02,3.79l2.54,-11.36l37.12,7.44l37.41,5.82l-4.58,34.49l-1.83,1.67l-0.01,1.71l-2.81,1.32l-1.71,2.49l-1.74,0.06l-0.19,2.8l-2.61,1.35l-1.09,3.92l1.79,-0.4l1.19,1.26l-1.32,2.68l1.76,0.57l-0.31,4.59l-2.32,0.06l-3.29,4.78l1.51,-6.72l-0.95,-0.48l-1.63,5.24l-1.25,0.01l-0.61,0.92l-0.03,1.77l0.55,0.19l-0.9,2.9l0.77,0.84l1.75,-2.64l0.13,1.02l1.37,0.4l1.78,-2.5l4.61,-1.44l0.17,-1.79l1.5,-0.27l0.7,-0.98l-1.43,-0.62l0.7,-0.7l1.47,0.09l1.37,-2.0l-2.8,21.13l-8.91,123.93l-50.48,-7.59l-49.01,-9.75ZM321.15,570.65l0.95,0.2l1.78,-1.81l1.8,0.51l0.38,1.25l-1.49,2.36l1.92,-0.81l1.84,-2.74l-1.39,-0.73l1.05,-3.5l3.03,-0.66l0.82,-1.15l-0.99,-1.18l0.63,-0.7l0.9,0.38l1.19,-1.81l-0.29,-1.14l-1.17,-0.59l-0.12,-1.79l-1.98,0.19l-0.69,-0.9l-0.89,1.02l0.19,0.93l-1.46,0.5l-1.33,-0.79l-1.32,0.9l-1.19,2.67l0.36,1.78l-1.9,1.78l0.32,0.65l2.03,-0.32l-2.97,1.62l0.31,1.04l1.31,-0.05l-2.31,2.02l-0.17,1.08l0.83,-0.21ZM329.12,591.75l0.01,0.02l-0.02,0.0l0.01,-0.03ZM337.04,580.48l0.76,-1.11l0.21,-1.05l-0.31,2.31l-0.66,-0.14ZM334.83,587.78l-0.06,-0.5l0.75,-1.28l-0.11,1.5l-0.59,0.28ZM332.55,578.38l0.2,-0.02l0.16,0.03l-0.1,0.23l-0.25,-0.24ZM324.49,566.41l0.75,-0.68l0.15,-0.05l0.08,0.36l-0.98,0.37Z\", \"name\": \"Saskatchewan\"}, \"qc\": {\"path\": \"M567.54,485.56l2.68,-1.98l1.59,-2.47l6.39,0.69l6.3,2.28l4.25,0.42l-2.04,2.18l0.37,0.65l4.59,-3.75l1.34,0.24l0.63,1.1l0.93,-0.89l2.52,1.84l2.15,0.56l0.33,-0.61l-1.98,-1.25l0.01,-0.69l2.64,-0.51l1.11,-1.65l2.27,-1.23l0.87,-2.05l1.31,-0.53l1.15,1.47l3.31,0.92l3.37,3.27l1.41,-0.03l0.32,-0.84l0.81,0.4l0.61,2.24l-1.14,2.9l0.44,0.56l2.15,-0.39l-0.63,-1.88l3.32,0.52l0.29,2.27l1.48,-0.07l0.73,0.84l-0.4,1.12l-1.78,0.48l0.08,1.33l3.16,-1.31l0.24,-1.94l2.68,0.89l-0.2,0.92l-1.78,0.57l0.84,1.44l-0.94,1.0l1.77,0.4l-0.94,0.39l0.28,0.79l1.22,0.1l-0.28,0.74l1.22,0.54l0.82,1.88l1.12,-0.73l1.12,0.98l0.99,-0.79l0.6,0.52l1.4,-0.43l1.24,0.89l1.95,-0.4l0.47,0.74l1.44,0.04l1.87,-2.0l1.12,-0.12l0.88,1.88l-0.23,1.61l2.73,1.17l0.99,-2.2l0.66,0.54l0.86,-0.68l-0.68,-2.21l0.39,-1.34l2.03,2.74l0.4,1.74l-2.54,2.76l0.92,2.18l-1.2,1.53l1.51,2.42l-0.12,1.26l1.77,1.39l0.42,2.48l-1.52,0.27l-0.12,1.39l-4.28,0.38l-2.16,1.18l-4.19,-0.67l-0.74,0.79l5.04,1.01l7.7,-1.58l-0.08,1.01l1.78,0.38l0.15,3.34l1.33,0.37l-1.61,2.91l1.54,2.47l-0.64,1.56l1.63,0.02l1.62,-1.44l0.55,0.66l0.9,-0.37l0.42,1.2l-1.79,0.29l-0.81,1.56l1.94,4.81l-0.53,1.75l-0.49,0.33l-0.49,-0.84l-0.43,-2.08l-2.54,-1.36l0.07,2.24l1.07,1.13l-0.9,1.22l-2.52,1.17l-0.21,0.87l3.16,-0.09l2.25,2.48l1.48,-3.64l2.54,-3.15l3.47,-0.41l0.89,-0.97l4.23,1.35l0.88,3.2l2.07,2.53l0.03,5.92l-1.06,1.95l-5.56,3.96l-1.58,3.45l3.83,-4.1l4.86,-3.19l0.7,-1.85l-0.2,-7.51l1.76,-0.2l1.11,3.2l-1.48,4.96l0.81,0.14l0.86,-1.54l1.17,-3.78l1.04,1.05l0.48,5.63l1.0,0.4l-0.27,-3.89l0.92,-3.12l3.42,-2.57l0.63,-2.68l1.04,1.17l0.55,-1.56l1.61,-0.49l-0.5,-3.33l0.91,-1.35l-0.08,-2.13l4.9,2.94l0.38,3.6l-0.65,1.08l1.18,0.8l0.82,-5.76l-2.39,-1.59l-0.76,-2.0l2.26,-0.94l-0.23,-0.75l-1.62,-0.02l0.76,-1.47l1.91,0.43l-0.97,-1.83l2.13,0.56l0.2,-0.65l-1.0,-0.55l1.84,-0.07l0.57,-0.69l-2.51,-0.75l-0.86,0.79l-0.95,-1.14l1.63,-2.34l-1.22,-1.3l1.63,1.03l0.65,-0.66l-1.2,-1.2l0.27,-1.02l-0.91,-0.42l1.58,-0.5l2.03,1.08l1.18,-0.2l-2.5,-1.88l-2.27,-0.15l-2.07,-3.34l1.18,-2.17l2.75,0.78l1.03,-0.65l-2.55,-0.99l0.83,-1.94l-0.92,-1.51l0.72,-3.18l2.37,-0.35l0.39,0.53l-1.02,0.44l0.27,0.84l-1.61,0.8l1.18,1.74l1.8,0.19l-0.93,1.95l1.24,5.32l2.0,1.75l2.73,-2.15l-1.08,1.6l0.96,4.42l1.29,1.97l1.91,0.72l-4.47,-0.11l-0.76,1.69l0.28,1.7l5.87,-0.6l0.77,1.65l1.34,0.35l3.31,-3.48l2.62,1.19l-4.93,3.05l0.59,2.54l0.98,0.39l1.01,-0.96l0.71,0.98l-2.51,3.1l0.08,2.13l-1.41,1.31l0.05,2.0l0.64,0.85l1.8,-0.09l3.0,4.39l1.14,-0.81l1.6,1.6l1.76,0.07l-0.75,1.73l1.5,3.17l-0.87,1.11l0.05,1.7l1.5,1.96l-0.57,1.26l0.73,3.23l-0.83,0.91l0.33,1.16l-0.83,1.87l3.76,4.08l-2.68,0.86l1.07,2.62l1.03,0.74l1.87,-0.08l-0.99,1.19l0.5,1.88l1.22,-0.66l1.2,0.69l2.14,-0.12l-0.88,1.63l0.62,1.68l2.96,2.0l1.05,1.64l2.06,0.9l1.25,-0.5l0.24,1.93l1.03,0.77l-3.29,3.75l0.16,2.77l1.69,1.08l-0.72,7.12l-7.14,-0.89l-2.03,1.25l-2.45,0.1l-3.14,1.95l-3.52,0.02l-2.1,1.19l-2.7,-2.92l-2.07,0.38l-2.35,-0.87l-4.27,-3.5l-2.9,-1.23l-0.87,1.07l1.96,1.57l-0.17,2.11l1.48,1.67l-0.4,1.11l1.8,2.02l-0.87,1.11l-6.47,-3.28l-0.16,-1.16l-1.37,-0.14l-0.77,0.94l0.2,1.29l2.53,2.68l-0.03,1.02l1.44,0.79l-0.02,0.93l1.91,0.16l-1.55,0.44l-0.36,1.99l-2.07,-0.88l-1.48,0.78l0.14,2.15l2.19,2.6l-1.79,5.54l2.42,1.66l0.46,1.12l1.76,0.66l0.23,3.29l0.89,0.64l3.05,-0.25l1.66,2.57l1.09,-0.28l0.81,0.77l-0.36,2.35l0.9,2.89l-0.65,2.01l1.25,4.36l3.53,0.01l1.16,-1.3l-0.51,-4.02l1.22,-0.52l0.08,-1.42l2.1,1.75l-0.84,0.91l0.94,1.83l-0.9,0.76l1.11,2.51l-0.4,0.73l1.33,1.83l-0.78,2.0l1.83,2.63l1.35,0.07l-0.43,-2.68l1.31,0.96l0.94,-0.23l0.96,2.03l3.17,0.35l0.08,-1.35l2.55,0.46l0.37,-3.06l3.66,-0.38l3.28,1.73l0.71,1.7l3.05,0.82l-0.99,1.63l2.72,3.16l2.93,-4.57l-1.46,-1.65l-0.38,-4.86l1.35,-1.05l-1.32,-4.92l1.22,-0.11l-0.3,1.18l2.44,0.0l2.61,3.99l-1.28,-0.17l-0.48,0.73l1.68,1.11l35.01,-11.1l35.07,-12.54l3.42,9.02l-1.77,-0.95l-2.75,2.28l-1.08,0.49l-0.72,-0.49l-2.68,4.19l-1.64,1.25l-1.0,-0.75l-0.11,1.13l-1.43,-0.17l-1.72,1.36l-0.6,1.16l1.14,1.19l-3.26,3.83l1.5,3.76l-0.63,-1.43l-0.81,-0.1l-0.43,2.86l-0.77,0.21l-1.21,2.32l-0.67,3.58l-2.17,1.52l-0.5,1.77l0.65,0.77l-1.2,1.54l-2.9,0.03l-0.31,0.93l-2.71,1.52l-0.41,-0.49l-0.86,0.79l-1.54,-0.22l-0.9,1.3l-6.38,3.28l-0.63,-0.58l-1.77,1.59l-1.49,-1.29l-3.94,1.02l-2.28,-0.28l-3.14,1.2l-0.63,-0.4l-2.2,1.18l-1.14,-0.17l-3.8,2.96l-4.91,-0.34l-3.53,1.93l-3.54,-0.01l-4.49,2.21l-4.62,0.41l-4.94,2.55l-2.65,0.05l-1.66,2.26l-2.24,0.48l-0.93,-0.98l-0.82,0.24l-2.35,4.9l-1.87,1.56l-0.22,2.67l-1.15,0.65l0.37,6.89l-0.9,2.3l-7.12,2.55l-2.85,2.86l1.47,0.84l-1.15,0.54l-0.93,-1.34l-1.01,0.1l0.64,1.28l-1.75,1.62l-0.67,2.63l-3.49,3.63l-0.27,3.11l-1.0,0.53l-1.29,5.65l-2.01,3.09l-1.29,0.07l-2.38,-1.59l-1.96,0.46l-3.06,-1.17l-3.75,0.48l-3.78,-0.53l-1.08,0.61l0.34,0.72l2.87,-0.0l-0.93,0.89l0.77,0.75l4.35,-1.54l4.13,1.14l2.46,-0.31l2.54,1.29l-0.84,6.13l-2.02,2.56l-0.47,3.04l-2.8,1.66l-1.43,6.21l-2.49,2.27l-2.57,4.76l-5.07,3.11l-2.2,0.19l-3.66,3.19l-0.16,1.61l-3.51,3.69l-4.41,2.47l-0.11,1.93l-1.55,0.98l-2.15,5.95l-3.75,2.23l-2.78,3.92l-3.31,-0.18l-4.81,-1.52l-7.53,2.73l-6.18,4.37l-2.82,-1.86l-2.34,0.27l-0.91,1.01l-3.85,-1.06l-3.2,-5.29l-1.74,0.28l-0.33,1.68l-2.91,-1.28l-1.98,-2.69l-4.14,-1.81l-13.22,-1.13l-3.35,-2.85l-6.82,-9.11l-0.54,-3.26l-1.96,-2.87l0.5,-2.68l-6.88,-58.58l1.67,2.7l0.76,-0.3l-2.63,-4.13l-1.45,-10.21l1.8,-2.07l0.51,0.3l-0.05,1.75l1.97,-0.07l1.17,0.94l1.17,4.32l2.02,0.89l-0.92,-1.44l0.7,-2.4l-0.66,-0.48l1.87,-2.2l-1.42,-0.35l-0.2,-1.85l-2.72,-2.34l1.92,-1.2l-0.7,-1.8l1.4,-0.7l1.48,-2.63l0.22,-2.55l1.53,-0.35l-1.62,-0.87l0.35,-0.97l-1.08,-3.34l-1.97,-0.38l0.3,-0.73l-1.54,-2.57l0.77,-0.58l-0.19,-2.18l-1.55,0.32l0.7,-1.5l-0.99,-0.9l-0.91,0.22l0.22,-3.89l-2.13,-4.19l0.97,-1.93l-1.87,-3.11l0.14,-1.17l1.02,0.29l0.34,-0.65l-1.75,-0.7l0.54,-0.95l-0.65,-1.0l0.79,-0.61l-1.92,-1.3l0.47,-1.99l-2.94,0.06l0.37,-1.03l-1.53,-0.25l-1.71,-5.56l-1.6,-1.27l12.54,-7.64l5.83,-5.38l5.76,-8.04l0.03,-1.54l3.67,-6.25l0.7,-7.28l-2.09,-12.99l-4.38,-10.16l-4.3,-5.9l-3.31,-2.21l-0.4,-0.99l-5.76,-2.52l-4.54,-4.12l-1.36,0.49l0.77,-1.64l-1.24,-3.71l2.05,-0.16l1.57,-5.91l2.29,-1.62l0.35,-1.83l0.75,-0.42l-0.01,-0.71l-1.88,-0.96l1.18,-1.28l-0.12,-1.72l-0.72,-0.58l1.56,-0.14l1.48,1.82l1.76,-0.42l-1.31,-0.66l-1.04,-2.07l1.87,-1.5l-1.03,-2.89l1.33,-2.14l-0.47,-0.56l-3.35,0.5l1.59,-1.31l-1.31,-0.85l0.39,-0.86l-0.77,-1.16l-2.18,-1.91l2.59,-3.27l-1.49,-0.49l-1.22,0.52l-1.2,-1.06l2.38,-4.21l-0.95,-0.23l-2.27,1.59l-0.86,-1.07l-2.14,0.94l2.89,-4.95l0.63,-2.61l-1.13,-4.32l1.75,-1.37l-1.13,-1.19l1.27,0.24l0.34,-0.62l-1.23,-1.21l-1.15,-0.05l-0.92,-1.42l-1.99,-0.29l-2.53,-8.09l-0.22,-2.36l0.82,-1.84ZM689.57,666.14l2.97,2.78l0.4,4.81l3.85,2.18l2.91,3.03l-0.08,2.64l1.13,1.65l0.1,-6.44l1.08,-1.92l1.66,-0.63l-0.19,-1.37l1.35,-2.13l-1.37,-1.44l-0.69,-3.39l-0.83,-0.4l0.98,-1.49l-0.24,-1.9l-1.02,-0.45l-0.51,3.11l-1.74,-0.59l0.3,-3.81l-2.42,-1.16l0.9,3.16l-0.05,1.06l-0.54,-0.56l-0.61,0.45l0.5,1.31l-1.72,0.69l-0.92,-1.3l-0.87,2.84l-2.4,-5.39l-0.46,1.1l1.2,4.24l-2.2,-2.96l-0.38,1.02l-0.98,0.1l0.87,1.15ZM641.29,697.73l-1.32,5.35l0.92,-0.27l1.5,-3.61l1.02,0.96l0.17,1.97l1.01,0.68l-1.41,0.75l-2.37,3.12l0.88,0.82l1.32,-0.43l0.12,-1.1l2.26,-2.64l-0.25,-2.25l0.82,-0.6l-1.24,-1.43l-0.37,-2.37l4.08,-9.43l0.55,-0.8l0.05,1.71l-1.74,2.01l-0.84,3.7l4.78,-6.08l0.82,-2.37l3.4,-2.58l-0.15,-0.73l-1.75,-0.25l-0.62,0.53l-0.45,0.12l0.95,-2.03l-4.09,0.13l-2.49,2.35l-3.6,5.35l-2.17,1.13l0.23,2.25l0.66,0.46l-0.68,5.6ZM578.58,653.33l-0.12,0.05l-0.03,-0.04l0.15,-0.0ZM653.17,787.27l4.41,1.1l0.65,0.96l-1.84,0.63l-1.91,2.07l-1.51,-1.14l0.21,-3.62ZM655.64,541.71l0.05,-0.09l0.04,0.01l-0.05,0.06l-0.03,0.02ZM627.38,494.93l0.16,-0.06l-0.08,0.05l-0.09,0.01ZM639.8,499.28l-0.07,-0.03l0.04,-0.08l0.03,0.12ZM657.49,533.45l0.42,-0.03l0.38,-0.21l-0.29,0.53l-0.52,-0.29ZM677.32,543.83l-0.22,-0.37l-0.25,-1.11l0.12,-0.83l0.35,2.31ZM692.9,522.01l-0.29,-0.07l-0.05,-0.23l0.17,0.12l0.17,0.19ZM695.33,499.9l-0.07,-0.73l1.02,0.21l-0.34,0.12l-0.61,0.4ZM696.44,499.35l0.14,-0.3l0.34,0.14l-0.21,0.11l-0.26,0.05ZM721.21,553.5l-0.0,-0.22l-0.06,-0.42l0.12,0.17l-0.05,0.47ZM742.68,638.01l-0.94,-0.91l-1.23,-4.78l2.19,-1.57l-0.57,-3.86l2.03,-0.83l1.87,2.26l0.26,3.08l2.85,1.31l-4.71,1.98l-1.74,3.3ZM572.29,551.83l-0.04,-0.14l0.05,-0.08l-0.01,0.22ZM809.54,639.84l0.11,-0.18l0.38,-0.14l-0.2,0.29l-0.28,0.03ZM794.07,718.76l-0.04,-0.31l0.4,-0.4l-0.02,0.55l-0.34,0.16ZM794.08,721.05l0.12,0.06l0.22,0.03l-0.4,0.14l0.05,-0.23ZM752.05,684.58l3.35,-1.98l12.06,-0.48l7.47,1.06l4.76,2.11l3.86,-0.07l3.15,2.43l-0.94,1.38l-4.79,1.57l-10.21,0.1l-5.99,-1.0l-1.45,-1.91l-4.1,-1.89l-7.17,-1.32ZM652.71,796.39l2.37,-2.89l3.83,-1.92l2.72,-3.56l2.68,-0.68l0.07,-5.26l2.17,-3.82l0.22,-2.72l4.72,-3.18l2.23,-3.77l2.48,-1.6l0.65,-2.03l1.89,-1.12l1.43,-2.03l1.92,0.23l4.53,-3.0l1.48,-2.1l4.17,-2.21l2.66,-2.41l8.34,-16.91l0.68,-3.09l5.71,-8.22l7.34,-7.76l14.54,-11.65l4.17,-2.69l7.07,-3.0l8.62,-0.99l3.41,0.69l4.64,2.34l0.25,0.85l-3.4,-0.34l-0.76,0.51l0.9,1.37l1.21,-0.43l0.13,0.76l3.16,1.24l-0.69,1.61l1.11,0.79l-0.89,1.66l-3.97,2.67l-0.08,2.5l-1.99,0.9l-0.01,1.14l-2.76,2.81l-1.46,0.58l-4.54,-0.82l-1.94,-1.54l-1.61,2.77l-4.74,0.93l-0.62,1.24l-3.97,2.56l-0.15,1.39l-1.26,-0.06l-3.13,2.04l-2.65,-0.67l-0.75,-1.02l-5.83,1.45l-0.09,1.3l-2.99,1.14l1.44,6.32l-1.36,2.4l-4.88,3.54l-0.62,-2.08l-2.76,0.16l-6.09,15.23l0.29,5.14l-1.15,1.5l-0.55,2.85l0.72,1.19l-0.26,2.96l0.87,0.77l-1.38,2.38l0.31,1.47l-2.74,3.32l-0.21,1.82l1.32,1.03l-1.96,-0.13l-0.29,2.78l-1.38,-1.09l-1.81,2.22l-2.46,-0.16l-1.2,1.39l0.52,0.71l-0.6,3.08l-37.0,7.26ZM695.11,673.17l-1.2,-1.89l1.28,-3.57l2.36,-1.72l2.65,0.97l1.12,3.06l-1.49,-2.14l-0.88,0.09l-0.35,1.07l1.59,2.2l1.6,0.33l-0.48,1.45l-1.08,-0.11l-0.18,0.98l-1.7,0.54l-1.79,-1.34l-1.43,0.06ZM699.83,676.44l0.05,-0.39l0.27,-0.52l-0.05,0.36l-0.26,0.55ZM688.63,755.76l1.98,-2.71l0.28,-0.13l-0.38,1.07l-1.88,1.77ZM659.46,787.18l2.28,-1.7l1.54,-2.74l-0.52,3.86l-3.3,0.58ZM659.81,785.25l1.03,-1.6l0.72,-0.51l-0.63,1.6l-1.12,0.51ZM659.11,532.42l0.63,-0.24l0.62,1.37l-0.55,1.27l-0.69,-2.4ZM656.94,791.1l0.16,-0.25l0.89,-0.1l-0.46,0.23l-0.58,0.13ZM652.03,682.85l-1.22,1.65l-0.39,-0.18l0.87,-0.97l0.73,-0.5ZM649.56,685.96l-0.16,0.02l-0.35,0.32l0.38,-0.81l0.12,0.47Z\", \"name\": \"Qu\\u00e9bec\"}, \"pe\": {\"path\": \"M769.24,739.85l-0.18,-1.73l2.38,-5.55l0.78,1.7l-0.66,2.7l1.46,0.36l2.27,2.05l-0.46,2.1l1.16,-0.5l0.61,0.64l1.57,-0.17l0.11,-2.32l2.73,1.04l1.06,-0.97l1.95,1.15l7.37,-2.66l0.67,-1.07l5.69,-1.66l-1.8,2.01l-1.67,0.27l-0.29,1.75l-1.05,0.36l0.88,0.75l-1.76,0.32l0.28,1.54l1.91,0.57l-1.06,1.49l1.06,0.39l-2.59,1.13l-1.77,-0.58l-0.25,-2.19l-1.63,-0.62l-1.22,0.39l1.06,-1.86l-0.51,-0.53l-1.64,1.82l-1.07,0.01l0.29,0.75l-0.86,1.0l0.82,0.47l-3.05,-0.53l-1.4,0.5l-2.44,-1.08l0.82,-0.41l-0.92,-1.1l-4.45,1.08l0.16,-2.7l-0.78,-1.42l-0.79,0.92l-2.8,0.36Z\", \"name\": \"Prince Edward Island\"}, \"bc\": {\"path\": \"M13.68,416.26l38.29,21.56l40.78,20.26l41.78,18.1l42.4,15.79l-37.34,108.94l0.23,2.34l1.36,1.97l-2.01,-0.53l-0.39,1.88l1.81,4.12l2.62,0.69l0.45,3.38l2.09,1.93l1.26,-1.4l0.77,1.04l0.58,1.33l-0.59,0.93l0.97,0.98l-0.26,2.71l1.46,0.32l0.34,1.0l-0.42,9.09l2.27,0.12l0.91,-1.11l1.91,1.91l-1.43,1.59l0.3,1.88l1.42,1.86l3.03,0.67l-0.09,1.84l1.68,3.03l0.35,4.0l1.36,0.39l1.81,-1.22l0.08,2.89l2.0,4.22l-0.25,2.61l1.91,2.06l0.16,2.41l1.93,1.34l1.19,2.3l-0.77,2.06l2.77,3.21l0.39,3.35l2.44,0.37l1.38,4.09l-0.14,5.53l-0.98,2.53l0.11,2.26l-2.3,3.28l1.69,1.46l-0.74,2.47l1.46,4.06l2.11,1.46l0.58,2.44l-54.57,-16.38l-42.44,-14.97l-1.34,-2.34l-2.28,0.42l1.41,-1.4l-1.8,-0.63l1.1,-0.76l-0.62,-1.25l3.35,0.77l1.94,-2.65l-0.87,-0.46l-1.34,1.81l-0.73,-0.02l-2.26,-1.5l3.4,-5.58l-1.54,0.14l-0.64,1.13l-3.29,0.49l-0.74,1.8l-2.22,-2.35l1.18,-1.54l3.24,-0.79l-0.37,-0.66l-2.84,-0.01l-0.59,-2.27l1.35,-1.97l-0.25,-1.64l2.91,-1.08l-0.39,-1.65l-1.48,-1.88l-0.67,0.31l1.11,2.67l-2.3,0.5l-2.93,3.08l-2.88,-0.88l-1.94,-4.22l3.27,-3.87l-0.4,-1.99l0.66,-0.64l2.68,0.23l1.56,-1.1l-0.53,-0.58l-1.92,0.55l-2.02,-0.55l-2.16,1.19l-0.86,-0.52l0.19,-1.72l-0.86,-0.14l3.08,-1.59l1.61,-2.59l-0.54,-1.17l1.94,-1.18l-0.12,-1.14l-0.81,-0.31l-2.3,1.51l0.22,1.81l-0.79,1.69l-3.79,2.15l0.16,-1.29l-1.14,-0.17l-0.23,-1.39l-1.19,0.93l-1.01,-0.17l1.36,-2.4l1.52,-0.77l-0.21,-0.88l-2.03,0.51l-2.34,3.14l-0.55,-2.01l-2.3,0.15l-1.87,-1.12l0.32,-0.73l5.59,0.31l1.71,-1.03l0.34,-1.63l0.94,0.18l1.32,-1.41l-0.32,-3.45l-0.89,0.49l-0.07,2.73l-1.67,0.34l-0.41,1.52l-1.26,0.7l-1.91,-0.24l-0.41,-0.77l-2.03,-0.08l2.36,-1.07l-1.65,-0.62l0.58,-1.2l-0.82,-0.57l1.48,-0.85l-3.03,-1.52l0.13,-2.45l-1.55,2.18l-1.62,0.38l-1.26,-1.83l-1.03,0.28l-2.78,-1.56l-0.03,1.06l-1.91,-2.09l0.18,-0.81l-0.87,-0.64l1.2,-1.71l-2.02,-0.72l-0.34,-2.17l2.39,-0.07l3.73,1.75l1.27,-0.28l0.88,-1.35l-0.59,-0.45l-2.09,0.8l-1.52,-0.85l-0.02,-0.89l-3.06,-0.81l3.0,-0.69l1.92,-2.23l4.52,1.2l3.66,2.02l1.79,-1.19l-0.38,-2.15l-1.39,2.05l-6.12,-3.54l-0.79,0.4l2.07,-2.17l-0.61,-0.83l-2.47,2.04l-1.94,-0.38l0.85,1.33l-1.62,1.97l-1.06,-1.22l0.06,-2.5l1.21,-2.96l1.4,-0.83l1.32,0.33l1.96,-1.48l1.81,0.23l0.25,-1.47l3.62,-0.97l1.19,0.83l1.4,6.84l0.91,-1.43l-1.14,-3.48l0.26,-1.89l2.56,-0.31l-0.5,-0.96l-2.81,-0.06l-1.19,-1.21l0.44,-2.15l3.22,-0.88l1.43,-1.41l0.28,-2.14l-0.81,-1.58l-0.65,0.29l-0.22,3.03l-3.76,1.37l-0.84,1.41l-3.04,0.79l-2.28,0.14l0.03,-1.16l-1.92,1.47l-0.07,-1.06l1.33,-0.79l0.83,-4.09l-2.89,0.28l-1.92,1.56l4.7,-7.11l1.47,-0.62l-1.26,-0.96l-2.19,1.52l-1.33,-1.02l0.85,-4.21l1.01,-1.4l-0.84,-0.43l-0.19,-1.93l-0.88,0.13l-0.66,-1.45l0.74,-2.41l0.91,-0.63l-0.91,-1.26l1.28,0.17l-0.12,1.24l1.75,3.88l0.96,-1.37l3.2,1.11l-0.64,1.96l0.94,-0.15l0.03,2.25l1.24,0.61l0.19,-2.33l-1.0,-3.59l-2.27,-1.32l-1.99,0.31l-1.33,-3.84l1.65,-2.6l1.19,-0.39l1.97,1.07l0.05,-1.0l-1.41,-1.23l1.57,-2.17l-0.99,-0.09l-3.25,1.95l-0.57,-1.39l-0.8,0.06l-0.29,1.7l-0.47,-0.69l-0.66,1.18l-2.69,1.13l-2.16,3.62l-2.66,-9.4l0.18,-1.8l-0.78,-0.55l1.81,-3.54l1.68,4.79l-0.08,-4.94l2.67,1.58l2.23,-0.66l-0.37,-0.7l-1.5,0.3l-1.83,-1.67l-3.38,-0.01l-0.89,-1.25l1.17,-0.49l0.43,-2.86l-1.71,0.68l-0.64,-0.71l0.52,-0.88l0.82,0.14l0.4,-1.89l0.58,-0.0l0.81,5.21l1.31,0.88l-0.43,-2.01l1.95,-1.82l-1.29,-0.41l-0.83,0.73l-0.5,-4.19l1.16,-0.05l1.29,2.42l1.75,0.73l-1.81,-3.81l2.23,-1.4l0.1,-0.88l0.54,-0.4l0.09,1.05l2.0,-0.48l2.14,0.76l0.42,-0.72l-3.37,-1.69l6.34,-5.04l1.97,0.13l-0.21,-0.94l-2.03,-0.26l0.42,-3.12l-0.63,-0.43l-2.89,5.71l-4.38,3.54l0.19,-1.23l3.65,-2.47l1.85,-8.34l3.08,-2.48l0.24,-3.33l-2.86,-2.26l0.24,-1.84l-1.34,-1.53l-0.43,-1.97l-2.66,-2.59l-2.71,-5.17l-2.36,-1.11l1.2,-3.41l-1.5,-2.18l1.9,-2.25l-2.06,-2.5l1.76,-1.48l-0.9,-23.72l0.09,-1.46l0.99,-0.7l-1.5,-7.31l-2.39,-3.93l0.48,-5.51l-0.8,-0.66l-0.18,-2.6l-1.73,-1.64l0.25,-2.83l1.73,-2.27l-1.63,-6.02l-5.6,-0.15l-2.2,-0.69l-1.03,-0.17l-0.14,0.0l-0.63,0.11l0.16,1.76l-1.03,0.68l-1.72,-0.48l-1.53,2.9l-1.84,1.18l-2.14,-0.96l-7.6,0.93l2.24,-5.74l-3.41,-13.53l0.63,-3.0l-1.2,-1.82ZM73.27,652.68l0.29,0.56l-0.5,0.41l0.15,-0.35l0.07,-0.62ZM65.49,639.77l-0.05,0.24l-0.09,0.16l-0.03,0.01l0.17,-0.41ZM46.9,622.45l0.58,0.56l0.35,0.23l-0.42,0.17l-0.51,-0.97ZM45.51,609.91l-0.17,0.0l-0.36,-0.19l0.3,0.13l0.23,0.05ZM49.86,591.97l-0.53,1.61l-0.68,0.46l0.16,-1.83l1.05,-0.24ZM46.31,592.25l-0.74,0.75l-0.66,0.39l0.64,-1.17l0.75,0.02ZM51.41,599.9l0.12,-0.02l0.32,0.0l-0.13,0.19l-0.3,-0.17ZM55.89,626.23l-2.74,-0.27l-0.32,-0.43l0.61,-0.51l2.44,1.22ZM55.17,631.07l-0.22,-0.02l-0.62,-0.24l0.11,0.01l0.74,0.26ZM72.62,660.16l-1.15,-1.36l-0.28,-2.05l0.99,-1.2l0.44,4.6ZM76.93,661.93l0.48,-0.35l0.04,0.63l-0.15,-0.16l-0.38,-0.13ZM76.29,664.18l0.11,-0.16l0.39,-0.19l-0.22,0.27l-0.28,0.08ZM71.32,674.26l-0.21,-0.6l0.34,-1.42l0.54,1.27l-0.67,0.75ZM70.18,655.53l-0.06,-0.38l0.7,-0.3l-0.51,0.61l-0.13,0.07ZM32.64,621.08l0.68,-0.17l-0.74,-1.07l0.22,-1.3l5.36,0.74l3.39,3.27l-0.02,1.6l0.6,-0.15l4.55,5.7l6.73,4.07l1.93,2.25l4.68,3.02l0.26,7.98l1.84,4.7l-1.4,0.36l0.69,4.35l2.14,2.76l3.72,2.75l-0.42,0.9l2.04,1.19l-0.26,1.6l1.09,0.84l0.1,1.41l-1.08,0.55l1.57,3.71l-1.15,0.93l0.85,1.83l-0.98,2.32l0.85,0.38l1.35,-1.36l-0.07,3.71l-1.43,-1.03l-2.12,1.49l-0.76,-0.26l-6.76,-6.52l0.14,-0.88l-2.79,-1.25l-3.6,-4.45l-0.31,-1.19l5.54,-2.62l1.13,-1.58l-0.22,-2.1l-2.58,3.54l-2.64,-0.93l-1.1,0.36l-0.45,-0.34l0.86,-0.46l-0.95,-1.1l-2.44,1.38l-0.89,-1.16l-1.27,-2.46l2.18,-0.5l0.91,-0.99l-0.46,-0.57l-1.28,0.35l0.96,-2.94l-0.65,-0.54l-1.11,1.17l-1.57,-0.16l1.04,-0.37l1.32,-2.07l-0.7,-0.23l-1.4,1.27l0.29,-2.16l-1.77,0.02l-0.5,-1.02l-0.8,1.05l-0.81,-2.22l-1.16,0.39l-0.16,0.81l-0.28,-0.45l1.23,-2.55l5.26,1.02l0.36,-1.01l-3.85,-1.53l1.24,-1.08l-0.63,-1.0l-1.68,0.97l0.63,-3.12l-0.98,-0.43l-0.6,-2.02l-1.45,-0.4l-0.81,1.52l-1.65,-0.66l-0.32,-1.71l2.46,-1.59l0.4,-1.05l-1.6,0.13l-1.02,-1.33l-1.3,1.56l-0.46,-0.99l0.8,-0.46l-0.19,-1.5l-2.04,0.4l0.25,-1.15l-2.51,0.74l-0.68,-0.62l2.5,-1.18l-0.61,-0.93l0.54,-0.89l-1.5,-1.03l1.07,-1.19l3.27,0.93l0.71,2.43l0.68,-0.27l-0.22,-2.73l2.1,-0.71l-5.12,-3.14l0.17,1.47l1.91,1.19l-5.13,-1.05l-1.14,-3.24ZM42.73,638.87l0.18,0.66l-0.39,0.25l0.21,-0.91ZM48.16,658.18l-0.19,-0.14l-0.04,-0.06l0.11,0.01l0.12,0.19ZM65.5,652.35l2.27,2.11l0.58,2.49l-1.49,-2.95l-1.36,-1.66ZM68.05,643.88l-0.05,0.24l-0.39,0.41l0.11,-0.31l0.33,-0.33ZM67.01,658.01l0.26,0.09l0.46,0.37l-0.41,-0.15l-0.3,-0.32ZM65.56,642.66l0.9,0.14l-0.27,0.67l-0.55,-0.11l-0.08,-0.69ZM66.41,644.41l0.09,0.18l-0.5,0.24l-0.01,-0.2l0.41,-0.22ZM63.88,645.46l-0.21,-0.95l0.93,-0.53l-0.29,1.49l-0.43,-0.01ZM63.51,655.92l-0.0,-0.0l0.0,0.0l-0.0,0.0ZM61.36,639.62l0.04,-0.17l0.14,0.12l-0.07,0.05l-0.11,0.0ZM62.49,639.49l0.42,-0.95l0.59,0.96l0.17,3.08l-0.26,-2.27l-0.92,-0.82ZM61.23,643.16l0.03,-1.75l0.74,-0.6l0.33,1.46l-1.11,0.89ZM60.56,638.05l0.47,-0.38l1.13,-0.03l-0.83,0.65l-0.77,-0.24ZM59.53,637.03l0.18,-0.02l0.48,0.11l-0.61,-0.06l-0.05,-0.04ZM56.7,635.33l0.86,0.09l0.09,0.38l-0.33,-0.07l-0.61,-0.41ZM47.05,600.72l2.52,-3.17l6.61,-1.18l-0.51,1.31l-4.2,0.56l-2.9,2.62l-1.53,-0.13ZM51.25,628.36l2.59,-1.08l1.31,0.42l0.04,0.85l-1.28,0.95l-2.66,-1.14ZM51.19,630.96l1.85,0.01l0.22,0.32l-0.39,0.14l-1.68,-0.47ZM49.16,624.77l0.02,0.01l0.0,0.06l-0.02,-0.07ZM50.08,625.28l0.07,-0.07l0.64,0.3l-0.56,-0.01l-0.15,-0.22ZM48.4,587.0l0.14,-1.17l0.6,0.19l-0.53,0.82l-0.2,0.17ZM45.28,570.42l0.29,-0.57l0.16,-0.22l-0.2,0.65l-0.25,0.13ZM45.8,569.53l1.13,-1.95l2.4,0.2l-0.72,1.13l-2.81,0.62ZM45.97,597.4l0.63,-0.09l0.89,0.46l-0.56,0.43l-0.96,-0.8ZM46.73,596.18l1.01,-0.33l-0.49,-0.88l0.72,0.24l-0.14,1.53l-1.1,-0.57ZM44.4,591.29l1.02,-0.72l1.98,-5.16l-1.2,4.81l-1.8,1.07ZM41.13,582.84l0.04,-2.1l0.67,0.54l0.37,-0.87l3.25,-1.66l-0.98,-2.79l-0.6,0.02l1.1,-2.33l2.74,4.19l-0.64,3.91l-2.91,4.7l-0.83,-0.37l0.76,-1.87l2.26,-2.34l0.28,-1.43l-1.65,0.38l-2.15,3.48l-0.91,0.15l-0.83,-1.63ZM44.49,586.33l0.0,0.03l-0.02,-0.02l0.02,-0.0ZM43.58,576.61l0.66,1.48l-2.46,1.26l-0.04,-1.71l1.83,-1.04ZM42.97,587.05l1.52,0.5l-0.57,2.32l-0.91,-1.61l-0.04,-1.22ZM43.46,542.33l-0.02,-0.54l3.49,-1.73l-2.18,1.92l-1.29,0.35ZM46.87,655.68l-0.0,-0.0l0.0,0.0l-0.0,0.0ZM44.85,572.36l0.01,-0.26l1.86,-1.75l-0.47,2.63l-1.39,-0.62ZM45.33,652.85l0.48,-1.03l0.67,0.05l-0.21,1.74l-0.94,-0.76ZM42.7,600.88l1.89,-2.0l1.62,0.26l-2.46,4.01l0.03,-1.71l-1.08,-0.57ZM43.96,597.71l0.09,-1.03l1.12,-0.67l-0.62,1.32l-0.6,0.37ZM43.69,595.14l0.27,-0.49l0.51,0.28l-0.61,0.53l-0.16,-0.32ZM40.64,642.42l1.43,-0.61l-0.76,-0.86l1.66,-0.07l0.6,0.8l-1.0,3.81l-1.93,-3.08ZM41.58,608.24l0.22,-2.76l1.49,-0.67l-0.54,4.43l-1.17,-0.99ZM41.45,575.4l0.26,-1.41l1.63,-1.34l-0.96,3.17l-0.92,-0.42ZM41.25,591.58l0.36,-2.24l0.32,-0.39l0.56,0.41l-1.24,2.22ZM41.52,542.29l0.92,-0.2l0.04,0.0l-0.38,0.77l-0.57,-0.58ZM37.32,560.75l0.55,-1.25l-0.44,-0.75l0.81,-0.37l1.97,4.36l0.94,4.51l-0.92,0.17l0.21,0.68l1.4,1.38l-1.79,1.53l-0.23,1.15l-1.37,-5.61l1.36,-2.66l-2.01,-1.21l0.25,-1.11l-0.75,-0.82ZM38.12,563.82l-0.21,0.15l-0.18,-0.06l0.16,-0.11l0.23,0.02ZM40.09,551.37l0.12,-0.25l0.34,-0.21l-0.2,0.34l-0.26,0.12ZM38.87,583.4l0.33,-2.35l1.34,4.3l-0.73,1.53l-0.95,-3.48ZM39.97,554.02l0.01,-0.26l0.12,-0.15l0.17,0.38l-0.3,0.03ZM39.41,574.37l0.05,-0.86l0.56,2.86l-0.15,0.8l-0.46,-2.8ZM38.81,636.1l0.02,-0.04l0.01,0.01l0.01,0.02l-0.04,0.02ZM36.0,544.84l1.15,-1.7l0.93,0.78l-0.43,0.41l-1.65,0.51ZM33.38,556.4l0.03,-0.04l0.04,0.11l-0.07,-0.07ZM34.97,554.87l2.69,-0.5l0.49,1.68l-0.08,0.84l-1.9,1.13l-0.24,-0.64l1.94,-0.78l0.12,-0.89l-1.57,-0.45l-0.97,1.11l-0.49,-1.49ZM37.19,573.52l0.12,0.1l0.17,0.59l-0.22,-0.31l-0.08,-0.39ZM32.8,562.24l0.45,-0.7l0.45,0.35l2.97,4.84l0.26,5.13l-1.43,-0.5l-0.37,-3.33l-1.63,-2.24l-0.14,-1.69l0.87,-0.41l-1.44,-1.43ZM35.07,560.95l1.21,-0.39l0.7,1.39l-0.5,1.33l-1.42,-2.32ZM34.98,550.97l0.11,-0.11l0.25,0.66l0.06,0.42l-0.02,0.03l-0.41,-0.99ZM9.63,550.74l0.94,-3.63l-1.0,-0.91l0.61,-0.4l-0.14,-1.49l2.18,-1.79l0.84,-1.77l3.53,2.7l-2.1,1.55l-0.15,0.93l4.15,-1.1l0.82,0.23l0.38,2.12l-0.58,2.09l-1.81,0.84l-4.92,-0.51l-0.08,1.66l1.42,0.52l-0.46,1.19l4.46,-0.42l0.44,-1.5l2.06,-1.36l0.52,-2.22l1.91,0.69l2.51,-0.26l-6.35,6.43l-1.95,4.43l-1.3,1.07l-2.45,-0.68l-2.47,0.46l-1.08,-2.8l1.55,-0.1l0.49,1.19l0.99,-0.9l-0.51,-2.05l-1.03,-0.96l0.24,-0.95l-0.65,-1.04l-0.81,0.17l-0.18,-1.41ZM9.63,555.39l-0.19,-0.06l0.1,-0.07l0.09,0.13ZM9.22,560.26l4.7,1.56l3.09,-0.19l-0.5,0.93l0.84,2.28l-1.54,-1.24l-1.76,-0.62l-0.57,0.44l0.18,1.57l1.54,-0.22l1.49,1.66l-0.45,0.79l-1.67,-0.13l-0.97,-1.76l-1.41,0.96l1.13,0.77l-0.98,2.53l0.88,1.12l-0.53,3.05l1.34,1.42l0.26,0.91l-0.47,0.44l-2.35,-4.76l-0.66,-3.28l1.18,1.12l0.51,-1.36l-0.8,-2.18l-1.38,1.18l-0.48,-3.08l1.59,1.01l1.16,-1.6l-3.41,-2.39l0.01,-0.97ZM13.68,576.98l0.77,3.02l-0.35,0.26l-0.72,-0.39l-0.43,-2.31l0.73,-0.59ZM15.02,580.68l0.03,0.01l-0.01,0.03l-0.01,-0.04ZM15.12,581.11l0.09,0.21l-0.08,0.07l0.01,-0.07l-0.02,-0.2ZM16.04,581.92l0.28,0.15l0.16,-0.01l-0.23,0.19l-0.21,-0.33ZM15.54,580.45l0.02,-0.36l0.45,-0.11l0.17,0.59l-0.65,-0.13ZM13.0,576.92l-0.13,-0.08l0.01,-0.05l0.07,0.08l0.04,0.06ZM14.54,571.61l0.03,0.04l0.11,0.01l-0.16,0.04l0.02,-0.08ZM15.25,571.87l0.28,0.01l0.58,-0.26l-0.53,0.92l-0.33,-0.67ZM15.16,583.7l0.03,-0.12l0.17,-0.25l0.1,0.28l-0.3,0.09Z\", \"name\": \"British Columbia\"}, \"yt\": {\"path\": \"M99.9,241.74l2.97,2.91l3.27,1.52l3.63,4.87l0.6,7.06l1.7,0.59l0.4,3.07l3.81,6.94l1.36,0.8l1.09,2.36l1.9,0.57l-11.85,21.13l-0.58,1.5l0.84,1.37l-0.55,2.17l-1.23,1.62l-0.36,2.35l-2.22,1.68l-1.26,3.47l14.63,8.28l-0.45,0.78l0.89,3.72l-1.18,1.06l0.09,3.77l-3.88,3.76l1.31,1.97l-0.91,1.75l-1.85,1.06l0.32,1.03l-0.74,1.47l1.78,1.57l2.31,-0.42l1.52,0.54l-1.27,1.1l0.35,1.2l1.31,0.21l2.22,-1.21l0.27,1.26l1.01,0.21l-2.9,1.53l0.78,2.27l-0.08,3.66l-5.53,3.93l-2.43,0.63l-0.27,1.37l1.59,0.51l-0.7,1.31l1.05,1.7l-1.75,0.48l-0.7,1.7l-1.68,0.84l0.08,1.28l1.82,1.02l1.34,2.27l-0.01,2.15l1.22,2.06l-1.67,1.12l-0.4,1.41l1.66,1.01l2.55,-0.73l1.23,1.28l-0.11,4.86l-0.84,0.83l-0.15,1.89l2.25,5.83l1.55,1.63l-1.75,0.01l-0.68,0.79l2.13,2.94l-0.05,2.63l-1.48,1.48l-2.07,0.18l-0.81,0.97l1.31,2.45l-0.28,2.33l1.55,1.11l-2.93,2.76l0.39,4.52l-1.1,1.81l1.21,0.35l1.19,2.39l-1.55,0.62l-0.97,4.11l-1.11,0.79l1.1,1.56l1.98,0.93l0.51,1.51l2.31,-0.36l0.59,5.79l1.09,0.63l-0.38,3.07l0.84,2.24l1.52,2.86l2.17,0.81l0.74,1.3l-0.91,5.2l-1.71,1.78l0.21,1.0l1.02,0.01l-1.32,3.55l0.04,2.37l0.9,-0.15l0.76,1.06l1.68,-0.65l1.88,1.47l1.27,-1.19l1.39,1.75l1.48,-1.19l3.85,3.92l2.18,-0.54l2.61,0.9l1.33,-1.65l1.56,0.69l-0.24,3.02l-2.02,1.63l0.34,4.36l1.61,0.99l-0.73,2.35l0.28,4.82l-0.91,1.18l-52.11,-22.5l-28.56,-14.1l-24.05,-12.91l-23.42,-13.53l-0.11,-1.79l3.21,-3.12l0.08,-1.24l-5.14,-2.7l-3.89,0.93l-2.41,-4.18l-1.66,0.64l-2.54,-3.47l99.42,-158.23ZM110.53,248.98l1.12,-0.26l0.66,1.18l-1.67,0.15l-0.12,-1.07Z\", \"name\": \"Yukon\"}, \"nb\": {\"path\": \"M711.42,743.4l4.88,-3.44l1.67,-2.57l-1.15,-6.84l2.7,-0.66l0.09,-1.3l5.1,-1.27l0.53,0.94l3.2,0.99l0.62,-1.14l2.68,-1.28l1.53,0.15l0.32,-1.87l1.78,-0.33l3.5,-2.52l0.93,0.83l6.82,0.46l2.82,4.06l4.5,-4.8l1.26,-0.71l0.41,1.01l2.56,-1.38l-0.51,0.9l1.22,0.58l-0.67,2.74l0.48,4.67l-3.72,5.12l2.64,0.43l3.85,-1.89l0.54,1.22l-0.64,2.18l1.73,2.28l-0.1,1.13l1.88,-0.05l0.76,2.83l1.48,0.9l-0.59,1.93l1.96,-0.46l0.23,1.66l4.02,-0.96l1.4,0.81l2.16,-0.91l2.12,0.21l-2.95,1.52l0.3,1.48l-0.94,0.55l-0.72,2.11l-1.22,-0.13l-0.53,2.15l-1.32,-1.94l-3.9,-2.32l3.2,3.71l-1.03,4.22l-1.71,0.5l-8.21,9.21l-1.85,1.2l-2.25,-0.95l0.9,-1.59l-0.53,-1.41l-2.29,3.0l1.52,1.27l-0.32,0.86l-1.78,0.25l-0.87,2.28l-1.24,-0.74l-1.86,1.85l-1.9,0.31l0.01,-0.72l-1.71,-0.72l-1.2,1.53l-1.8,-1.85l-1.44,2.06l-1.91,-1.39l-1.05,-5.84l-4.88,-0.68l-0.29,-3.7l-5.75,-20.08l-6.62,-3.72l-7.05,4.81l-1.78,-0.76ZM746.71,774.61l-0.04,0.04l-0.08,0.14l-0.05,-0.07l0.17,-0.11ZM759.72,722.42l-0.02,-0.05l-0.0,-0.01l0.06,0.02l-0.04,0.04ZM768.58,746.15l0.01,-0.09l0.03,0.05l-0.05,0.04ZM759.92,720.39l0.52,-0.56l0.81,0.01l-0.55,1.43l-0.78,-0.88ZM760.91,718.13l0.09,-0.3l0.01,-0.4l0.08,0.22l-0.18,0.48ZM748.69,781.87l0.11,-1.21l0.29,-0.8l0.38,1.59l-0.77,0.42Z\", \"name\": \"New Brunswick\"}, \"nl\": {\"path\": \"M818.49,689.15l0.02,-0.65l1.55,-2.42l1.38,1.36l-2.94,1.71ZM822.12,687.09l0.09,-0.28l0.2,0.08l-0.18,0.14l-0.11,0.06ZM824.04,685.87l-0.05,-9.48l0.64,0.38l1.82,-0.8l1.87,1.03l2.29,-0.74l-0.5,-0.76l-2.26,0.05l-0.8,-1.03l2.21,-0.76l0.36,-1.83l-1.2,0.28l-0.06,-1.05l-3.24,1.03l-0.72,-2.28l1.19,-3.08l1.98,1.73l-0.15,-1.35l2.27,-0.23l-3.27,-1.53l-0.87,-1.68l0.65,-17.4l2.04,-1.08l-2.31,-0.88l1.93,-2.2l0.89,-2.81l-0.87,-1.18l0.9,-3.28l-0.48,-3.01l6.52,-8.45l0.7,1.99l2.84,-0.55l0.35,-1.06l-1.21,-0.63l1.45,-1.04l0.84,0.68l-0.78,0.93l0.95,0.36l0.12,1.05l-0.92,1.43l-4.26,0.62l-0.95,0.99l0.23,0.79l1.02,0.19l0.13,1.52l1.83,0.78l1.53,-1.81l0.9,1.86l-0.65,0.47l0.31,2.92l-0.78,3.08l-0.82,-2.1l-0.61,-0.28l-0.62,0.97l1.97,3.56l-1.37,3.22l0.66,0.38l-0.55,1.91l-0.98,0.27l0.99,1.57l-0.14,2.05l-1.11,1.58l-0.03,3.77l0.85,1.9l-0.97,1.75l1.61,0.47l0.47,3.3l0.68,-0.49l1.16,-6.05l0.4,-0.71l1.07,0.13l-0.16,-3.28l0.95,-2.77l0.79,0.59l-0.18,3.42l0.93,-0.5l0.35,-1.41l1.06,0.05l-0.0,-1.09l2.77,0.99l2.22,-2.07l-1.66,3.19l-2.66,2.53l-0.74,3.71l0.9,0.17l0.71,-2.13l1.15,-0.64l-0.26,1.38l0.59,0.25l-1.6,3.0l0.53,0.67l2.71,-2.86l2.45,1.63l0.59,-1.21l0.32,0.99l0.71,-0.1l0.19,-1.95l0.79,0.49l-0.13,1.27l2.17,0.02l0.11,-0.88l0.52,1.06l-0.93,2.32l1.03,0.85l-0.22,1.48l2.24,-2.29l-0.65,-0.61l-0.51,0.55l-0.18,-1.15l1.53,-2.5l0.41,1.47l0.7,-1.52l1.67,-0.42l1.17,-5.2l2.42,3.97l0.26,-3.2l1.64,0.58l1.0,-2.39l1.68,-0.45l5.77,0.89l-0.64,2.87l0.81,0.8l-2.57,1.5l-0.11,1.54l0.91,0.29l-1.15,0.8l0.16,1.13l-1.86,1.47l0.58,1.24l1.42,-1.37l0.14,0.84l1.0,0.06l1.38,1.5l-0.02,1.59l1.84,-0.67l-2.93,2.73l-0.16,1.46l0.67,0.47l2.12,-2.82l0.83,1.31l0.65,-1.99l2.06,-0.03l0.87,-2.6l-0.28,-1.66l2.47,0.79l0.94,-3.37l0.86,0.76l0.31,2.82l-0.8,1.71l-2.03,0.34l0.22,1.79l-1.79,3.06l-3.22,0.02l-0.41,1.32l1.35,1.88l2.18,-0.61l-1.93,0.8l0.21,0.92l1.9,-0.22l1.18,-1.04l-0.06,1.61l-1.04,0.83l0.85,0.23l0.02,1.22l-1.26,-0.75l-0.84,0.55l2.04,2.42l3.09,1.38l0.28,0.85l1.71,-1.1l-0.83,-3.75l0.52,-5.24l1.91,-1.36l0.72,-2.61l0.43,0.3l-1.04,7.55l0.77,1.14l-0.42,1.63l0.51,0.96l0.88,-0.04l0.66,1.71l1.03,0.06l1.96,-4.0l-0.45,-3.72l1.84,1.57l0.18,1.36l1.14,0.61l-0.5,3.74l0.6,3.82l-0.59,0.45l1.18,0.95l0.77,4.09l-0.98,3.43l-1.51,-1.06l-1.64,0.27l-1.5,2.87l-1.09,-2.43l0.65,-2.17l-1.23,-1.29l-1.09,-0.0l0.54,-2.43l-1.62,-1.32l-2.29,7.81l-0.69,1.14l-1.16,0.24l-0.62,-6.94l0.67,-0.26l-0.92,-0.96l1.1,-3.35l-1.4,0.01l-0.71,-2.4l-3.07,-3.37l-1.38,-0.56l-0.33,0.87l-1.83,-0.48l-0.28,0.71l0.99,0.27l0.23,1.41l-0.7,1.6l0.37,1.7l-0.69,0.17l-0.99,4.53l-0.72,0.7l-0.95,-0.72l-0.75,0.59l-1.68,5.5l1.08,1.66l-1.06,0.18l0.45,2.57l-1.17,0.7l-0.02,0.81l-1.87,-0.71l-1.27,2.06l-1.9,0.6l-1.62,-0.42l0.46,-2.28l3.89,-2.8l1.31,-3.14l-0.02,-3.56l2.27,-1.82l1.78,-4.22l-1.59,0.08l-2.16,2.36l-0.07,-3.54l-0.96,3.25l-2.76,0.48l-0.96,-0.77l-0.73,0.71l0.13,1.83l1.21,0.81l0.24,1.37l-1.1,0.92l-0.26,-0.99l-1.08,-0.43l-0.8,1.48l-0.85,-1.66l1.28,-1.85l-0.83,-0.14l-1.53,1.71l-0.77,-0.1l0.26,-4.71l-1.06,-0.99l-0.16,3.43l-1.49,2.1l-0.11,-1.33l-0.54,0.35l-1.26,-0.92l0.77,2.76l-0.54,1.27l-1.32,-1.89l0.31,2.6l-4.86,1.56l0.52,1.58l-2.48,-0.05l-1.5,0.92l-0.74,-0.93l-1.47,1.43l-0.63,-0.85l-2.38,0.77l-0.77,1.11l-1.38,-0.43l-0.81,0.72l-1.26,-0.76l-3.66,2.09l-0.87,0.03l0.41,-1.32l-0.5,-0.16l-1.15,0.85l-0.09,1.71l-1.35,0.05l-1.6,1.8l-5.51,2.43l-3.59,-4.46l3.45,-5.51l1.99,-5.3l3.51,-4.35l-0.91,-0.21l-2.2,1.3l-1.98,-0.14ZM875.12,662.32l0.01,-0.05l0.03,0.05l-0.04,0.0ZM877.63,662.89l0.01,0.0l-0.0,0.01l-0.0,-0.01ZM877.65,663.11l0.18,0.25l-0.68,1.05l-0.32,0.16l0.81,-1.47ZM877.92,687.63l0.03,0.05l-0.01,0.02l-0.03,0.0l0.01,-0.07ZM861.05,691.78l-0.07,0.12l-0.12,0.06l0.18,-0.19ZM860.08,692.69l-0.48,0.59l-0.29,-0.1l0.05,-0.05l0.72,-0.44ZM879.4,666.53l0.09,-0.58l0.24,-0.6l0.19,0.13l-0.51,1.05ZM875.09,662.18l-0.1,-0.13l0.04,0.02l0.06,0.11ZM856.71,657.24l-0.75,-1.19l0.65,-0.66l0.34,0.61l-0.23,1.24ZM855.59,655.75l-0.04,-0.03l0.02,-0.02l0.02,0.05ZM854.12,657.33l0.0,-0.25l0.09,-0.07l-0.09,0.32ZM880.23,672.13l2.14,-0.42l1.19,-1.04l0.07,0.96l-3.4,0.5ZM880.31,686.28l0.4,-1.02l-0.02,0.87l-0.39,0.14ZM880.62,683.42l-0.08,-0.03l0.05,-0.13l0.03,0.16ZM865.38,648.2l1.06,0.13l0.06,-1.23l0.98,0.8l-1.68,2.0l-0.43,-1.69ZM859.69,653.01l0.19,-0.17l0.32,0.44l-0.25,-0.18l-0.25,-0.09ZM860.58,653.35l0.24,-0.05l0.02,0.23l-0.08,0.03l-0.18,-0.21ZM861.92,651.98l-0.05,-0.37l0.49,-0.4l0.03,0.24l-0.48,0.53ZM862.01,654.58l0.02,0.04l-0.01,0.11l-0.04,-0.08l0.03,-0.06ZM859.27,690.37l0.8,-0.58l0.4,0.51l-0.91,0.12l-0.29,-0.05ZM850.53,655.89l0.16,0.11l-0.16,0.24l-0.04,-0.3l0.04,-0.05ZM850.64,657.23l0.03,-0.01l-0.01,0.06l-0.01,-0.05ZM843.72,636.73l0.01,-0.34l0.77,-0.76l-0.18,0.87l-0.6,0.23ZM838.14,616.17l0.06,-0.8l0.21,-0.21l-0.04,0.83l-0.22,0.19ZM695.98,500.41l0.18,0.94l1.28,-1.03l0.89,0.17l-0.49,0.97l0.49,0.51l1.04,-0.8l-0.45,1.69l-1.25,-1.45l-1.19,0.27l-0.74,-0.45l0.23,-0.83ZM697.79,503.53l-0.02,0.02l-0.01,-0.01l0.03,-0.01ZM697.64,505.65l1.21,-1.47l1.28,-0.58l-1.17,1.01l1.54,0.5l-0.46,1.78l1.72,-1.6l0.96,0.23l-0.44,0.91l0.94,0.13l0.19,0.94l-0.54,1.1l1.68,1.31l1.18,-0.26l0.02,3.21l0.84,-2.29l0.23,1.88l0.69,0.1l0.53,-1.32l1.06,0.32l-0.12,1.5l-2.03,0.86l-0.08,1.13l3.15,-0.37l-0.39,1.97l0.59,0.39l1.72,-2.67l-0.32,2.47l1.1,0.04l0.63,-0.88l0.72,0.85l-2.24,2.64l-2.49,0.28l-0.46,1.71l1.19,-0.29l1.34,1.07l-0.23,-1.4l2.96,-0.87l1.44,-1.67l0.57,0.35l-0.78,0.64l1.02,0.38l0.03,1.4l1.0,-0.21l-0.78,1.74l2.04,0.19l0.51,-1.11l1.44,0.52l-0.71,1.87l2.06,0.47l-2.1,3.43l-2.7,0.75l-0.46,1.24l1.75,-0.45l-1.47,3.18l0.46,0.75l2.4,-3.97l1.0,-0.4l-0.29,1.33l0.62,0.69l0.61,-1.65l3.89,-2.46l-0.44,1.25l0.84,1.88l-2.01,1.41l0.22,1.67l-1.45,0.73l0.32,0.82l-1.25,1.46l0.46,0.55l-1.25,1.18l0.44,0.58l2.18,-1.12l1.11,-2.84l3.0,-1.1l1.22,1.28l0.4,-0.76l0.95,0.44l-1.65,0.65l-0.96,2.27l1.99,-1.2l1.31,1.64l1.0,-1.67l0.97,-0.03l0.02,-0.85l0.69,2.75l1.36,0.21l1.74,1.86l-1.38,1.23l-0.03,0.93l-1.56,0.45l-0.27,1.54l-2.01,-0.32l-0.06,0.88l2.15,0.88l2.0,-1.35l2.59,0.11l0.7,1.91l-0.99,0.53l0.14,0.95l2.83,0.91l3.06,-0.99l1.01,0.4l0.47,1.67l-1.35,0.99l-0.33,2.98l-2.27,1.06l0.26,2.44l-4.73,-0.44l3.45,-1.47l-0.57,-0.9l-4.31,1.04l-0.71,1.4l0.36,0.64l5.06,0.99l-0.89,0.22l0.17,0.9l5.89,-0.44l-3.97,1.63l0.0,1.56l3.06,-0.22l0.93,0.79l-2.47,0.9l-0.17,1.07l2.07,0.91l5.38,-1.88l0.35,1.69l-0.68,2.36l1.47,0.69l2.6,-1.03l0.58,0.38l-0.91,1.14l1.33,0.47l3.43,-1.17l-0.22,1.19l-1.47,0.65l0.77,0.93l1.92,-0.77l0.6,-1.24l0.98,4.06l0.76,-1.77l-0.15,-3.1l1.12,0.13l-0.84,3.45l1.26,-0.6l0.01,1.78l0.89,0.11l-0.27,2.61l1.02,-0.07l-1.18,3.59l0.63,0.48l0.6,-0.86l-1.21,2.98l0.49,1.28l3.47,-6.14l0.23,0.96l0.8,-0.89l-1.12,3.19l0.8,0.87l2.91,-6.78l0.73,1.37l-1.85,1.52l0.31,1.13l2.05,-0.32l2.32,-1.98l0.58,0.28l-2.41,5.52l0.29,3.02l1.46,-1.28l-0.4,-1.77l2.11,-3.94l1.35,0.79l2.26,-3.74l0.21,2.07l1.58,0.35l-0.61,1.5l1.66,0.68l5.65,0.03l0.38,-1.14l1.25,-0.48l0.78,0.67l1.95,-0.14l1.19,-0.94l2.32,1.16l2.02,-1.08l0.99,0.79l0.48,1.14l-2.84,1.38l0.43,0.75l1.46,-0.47l-0.65,1.12l-5.22,2.32l-0.63,1.34l0.44,0.77l-3.95,3.54l-8.17,4.8l0.02,0.77l1.19,0.5l4.37,-2.64l1.08,0.42l-4.24,4.4l-3.76,0.96l-0.33,1.08l-1.99,0.98l-0.44,0.59l1.0,0.76l0.75,2.72l-9.59,-2.25l0.24,2.79l3.26,-0.69l6.62,1.59l-2.62,2.85l0.38,0.99l1.55,-0.45l-1.56,1.55l3.83,-1.13l-0.17,-1.13l2.33,-3.51l-0.19,-0.73l2.55,-1.52l1.37,-2.76l2.28,-1.08l0.45,-1.73l-0.83,-0.68l1.23,-2.95l6.14,-5.14l3.25,-0.59l0.5,-0.7l-0.75,-0.57l-2.52,0.21l-1.58,0.38l-0.93,1.24l-0.95,-0.28l1.37,-1.89l8.21,-1.63l3.58,4.01l1.26,0.49l0.19,1.3l-3.07,4.15l2.41,-0.36l0.55,2.8l1.35,-0.49l1.29,-6.18l2.41,-1.22l0.54,0.16l-0.83,0.48l0.48,0.53l4.11,-0.47l3.9,1.29l0.98,1.79l1.33,-0.9l0.39,1.44l0.81,-0.21l0.24,1.44l1.23,0.68l-1.72,1.23l0.93,0.4l-0.08,0.69l-2.54,1.2l1.26,1.15l1.97,-1.07l1.65,1.48l-3.37,2.2l3.17,1.61l-1.49,0.4l-0.08,0.83l1.44,-0.22l-1.61,1.71l-3.51,0.6l1.1,0.54l6.54,-1.37l2.3,0.38l0.34,0.7l-1.48,0.14l-0.04,0.72l-3.99,-0.27l-0.53,0.74l5.51,1.03l1.88,2.39l-0.87,0.56l0.29,1.1l-1.42,0.52l0.83,1.52l-2.14,3.49l-3.89,4.33l-0.58,3.39l-1.14,0.3l0.15,1.24l-0.9,0.28l-4.06,-9.59l-35.42,12.67l-33.81,10.74l-2.68,-5.23l-2.2,0.09l-0.59,-1.58l-1.29,0.17l1.45,-2.72l4.48,-1.81l0.57,-0.88l-2.9,-1.63l-0.29,-2.93l-1.86,-2.41l-1.73,-0.29l-1.8,1.2l0.41,3.96l-1.42,0.33l-0.67,1.47l1.29,5.09l2.22,2.68l0.71,3.75l-1.29,0.7l0.01,3.15l0.4,2.47l1.35,1.35l-2.11,3.15l-1.95,-2.06l1.05,-1.0l-0.33,-1.03l-3.13,-0.86l-0.59,-1.61l-3.59,-1.9l-4.28,0.45l-0.57,3.04l-2.11,-0.54l-0.52,1.3l-0.89,0.16l-1.53,-0.59l-0.78,-1.85l-1.06,0.18l-1.91,-1.18l-0.45,2.74l-1.16,-2.28l0.83,-1.83l-2.01,-4.67l0.87,-0.55l-0.93,-1.92l0.88,-1.26l-2.81,-2.38l-0.91,0.2l-0.09,1.73l-1.26,0.55l0.76,3.73l-0.98,0.86l-1.09,-0.9l-0.21,1.03l-1.4,0.2l-0.91,-4.06l0.68,-1.6l-0.9,-2.96l0.26,-2.71l-1.26,-1.15l-0.86,0.17l-1.81,-2.41l-3.62,-0.16l-0.29,-3.34l-1.83,-0.72l-2.75,-2.7l2.24,-3.96l-2.6,-4.05l-0.09,-1.49l3.25,0.49l0.49,-2.11l1.82,-0.97l-3.52,-2.36l0.1,-1.01l-1.14,-0.61l-1.56,-2.75l0.86,-0.27l0.18,1.13l3.3,1.27l1.43,1.53l3.08,0.4l0.79,-1.96l-1.85,-2.05l0.48,-0.97l-1.58,-1.83l-0.08,-2.45l0.69,-0.18l4.58,3.66l2.6,0.96l1.8,-0.47l0.76,1.43l2.31,1.56l2.28,-1.23l3.59,-0.04l3.18,-1.96l2.33,-0.06l1.95,-1.24l4.14,1.0l3.13,-0.13l0.99,-1.46l0.28,-6.6l-1.76,-1.27l-0.09,-2.24l2.63,-2.42l0.69,-1.59l-1.15,-1.09l-0.49,-2.23l-1.64,0.4l-1.75,-0.81l-0.86,-1.5l-2.93,-1.97l-0.34,-1.36l1.88,-1.76l-0.06,-0.97l-3.85,0.65l-0.96,-1.24l-1.12,1.1l0.72,-2.63l-2.83,-0.66l-0.52,-1.79l2.29,-1.28l-3.87,-4.11l0.81,-1.49l-0.33,-1.27l1.11,-1.04l-0.99,-3.15l0.35,-3.55l-1.39,-1.2l0.94,-1.54l-1.51,-3.16l0.92,-1.94l-0.25,-1.73l-0.87,-0.13l-0.39,1.06l-1.7,-0.19l-0.95,-1.15l-1.25,0.53l-2.5,-3.96l-2.15,-0.07l-0.15,-1.73l1.45,-1.45l-0.1,-2.05l2.55,-3.36l-1.33,-1.84l-1.65,0.83l-0.35,-1.74l4.52,-2.28l0.35,-1.35l-1.4,-1.26l-1.94,-0.37l-3.33,3.5l-2.0,-2.0l-2.56,0.63l-1.66,-0.61l-0.97,0.85l0.19,-2.23l3.27,0.69l1.51,-1.43l-1.03,-1.09l-1.22,-0.08l-0.99,-1.57l-0.88,-4.18l1.03,-1.31l-0.19,-0.83l-1.49,-0.14l-1.77,2.04l-1.26,-1.1l-1.18,-5.04l0.86,-2.18l-1.56,-0.93ZM749.39,644.84l-0.21,0.06l-0.38,-0.16l0.32,0.07l0.27,0.03ZM827.51,605.61l1.17,-0.58l0.2,0.18l-0.76,0.65l-0.62,-0.26ZM813.84,589.92l0.16,-0.56l0.67,-0.26l0.12,0.19l-0.94,0.63ZM742.74,556.87l0.27,-0.15l1.16,0.42l-1.11,0.28l-0.32,-0.55ZM743.03,556.07l0.11,-0.16l0.77,-0.05l-0.64,0.05l-0.24,0.16ZM724.98,532.85l0.14,-0.75l1.74,-0.61l-0.23,0.87l-1.66,0.49ZM716.17,518.63l0.26,-0.13l0.06,0.04l-0.32,0.09ZM701.93,503.54l-0.06,0.03l-0.14,-0.01l0.19,-0.05l0.02,0.03ZM746.29,561.73l1.29,-0.12l1.03,-0.44l-0.04,0.65l-2.29,-0.08ZM765.01,574.66l-0.09,-0.09l0.07,-0.12l0.12,0.1l-0.09,0.11ZM766.08,573.43l-0.2,-0.4l-0.0,-0.06l0.04,0.0l0.17,0.46ZM777.41,577.24l0.21,-2.19l0.71,0.01l-0.44,0.65l-0.49,1.53ZM787.98,592.89l2.02,-1.46l1.55,-1.88l-1.08,2.63l-2.49,0.7ZM779.43,607.25l0.03,-0.02l0.01,0.02l-0.04,0.0ZM820.59,590.96l0.0,0.0l-0.0,0.0l-0.0,-0.01ZM701.83,596.32l-0.57,-0.35l-0.42,-0.33l0.73,0.21l0.27,0.47ZM790.47,576.88l1.36,-1.34l0.67,1.44l-1.32,0.73l-0.72,-0.82ZM757.36,567.04l0.54,-0.08l0.35,0.26l-0.22,0.16l-0.67,-0.34ZM753.28,565.8l0.47,-1.29l1.15,0.24l-0.22,1.07l-1.41,-0.01ZM748.69,558.87l-0.2,-0.17l0.27,-0.02l-0.08,0.19ZM747.92,558.58l-0.96,0.19l-0.02,-0.12l0.73,-0.16l0.26,0.09ZM750.02,555.78l0.08,-0.3l0.2,-0.06l0.02,0.17l-0.3,0.18ZM744.65,553.12l0.64,-1.81l0.75,0.24l0.31,1.02l-0.83,0.06l-0.53,1.29l-0.35,-0.8ZM745.49,555.18l1.39,-0.96l0.4,1.98l-1.15,-0.57l-0.64,-0.45ZM739.53,542.37l0.1,-0.7l0.05,-0.02l0.14,0.64l-0.29,0.08ZM737.08,536.88l0.54,-0.31l0.66,1.05l-0.18,0.15l-1.02,-0.9ZM736.98,542.04l0.94,-0.75l0.6,0.38l-0.67,1.26l-0.88,-0.88ZM734.56,536.7l0.49,-1.0l0.84,0.73l-0.23,0.65l-1.11,-0.37ZM704.5,508.32l0.25,-0.58l0.82,0.14l-0.81,0.77l-0.26,-0.33ZM704.47,507.42l-0.04,-0.66l0.08,0.11l-0.04,0.55Z\", \"name\": \"Newfoundland and Labrador\"}, \"on\": {\"path\": \"M399.41,727.97l3.25,-56.87l17.49,-16.02l50.18,-56.7l5.89,5.74l3.34,1.59l4.16,6.66l0.07,1.64l0.93,-0.9l1.53,0.7l0.47,1.09l3.72,0.22l7.51,3.34l3.52,0.63l3.74,2.18l0.82,1.61l2.04,1.5l1.96,0.55l-2.57,4.18l-0.2,2.26l0.59,0.29l3.0,-5.44l5.1,0.47l3.97,-1.2l1.6,0.26l1.47,-0.99l2.08,1.72l1.21,-0.17l0.56,1.64l0.68,-0.28l-0.38,-1.87l3.93,0.68l1.97,-0.84l0.22,2.18l3.44,-1.25l3.66,1.53l1.13,3.89l-1.85,8.94l0.54,3.1l0.67,1.51l1.45,0.82l1.61,4.42l-0.68,3.75l1.63,5.71l-1.29,1.28l-0.03,5.11l2.94,1.95l1.54,2.72l4.34,3.83l0.32,1.88l-2.77,1.36l-0.69,1.37l0.67,0.57l1.21,-0.98l2.42,-0.18l1.79,2.17l4.34,1.42l0.88,1.66l3.87,3.05l2.5,5.84l-2.02,1.29l-3.65,4.63l-0.29,0.63l0.81,0.81l6.1,-6.51l4.45,1.01l5.72,4.84l7.01,59.69l-0.5,2.75l2.01,3.02l0.61,3.39l7.32,9.7l3.52,2.67l9.71,0.57l5.65,1.33l2.13,1.35l1.34,2.16l2.97,1.37l1.25,-0.14l0.13,-1.76l0.79,-0.05l2.75,4.99l4.05,1.38l2.76,-1.35l3.47,1.9l1.37,-0.21l1.06,-1.56l4.54,-2.65l7.43,-2.67l2.95,0.8l-0.25,4.37l1.74,1.53l-3.52,4.2l-2.35,0.3l-4.22,3.29l-7.43,9.8l-10.39,5.66l-1.99,-0.83l-2.14,1.15l-0.78,-0.34l-4.0,1.92l0.07,1.37l-17.36,5.52l-4.64,4.39l-1.39,0.28l-1.48,1.77l-1.77,4.33l0.19,1.1l2.64,1.18l3.48,0.07l3.08,-1.79l0.22,3.11l1.89,2.65l-1.64,0.78l-7.98,0.75l-5.89,1.98l-2.79,2.58l-0.45,1.65l-6.1,-1.03l-5.59,0.87l-2.51,1.82l-4.56,5.7l-1.8,0.33l-3.67,2.49l-1.52,2.88l-1.92,-1.04l-3.18,1.24l-2.5,-1.04l0.23,-3.72l1.37,-0.67l4.23,0.23l2.75,-0.95l0.02,-3.2l-2.7,-0.36l1.3,-1.87l0.73,-6.43l3.62,-1.93l4.0,-4.29l0.8,-2.06l-1.43,-11.81l1.34,-2.3l0.15,-2.05l2.09,-2.07l1.49,-3.89l-1.97,-6.43l-0.93,-0.06l-1.89,-2.92l-1.62,-0.74l4.39,-0.17l-0.43,1.17l1.19,2.97l1.72,0.67l0.31,0.93l1.26,-0.3l-1.24,2.92l2.85,-0.84l-0.2,3.37l0.73,0.14l2.66,-2.55l1.29,1.87l6.61,1.78l1.27,-1.38l-0.05,-2.95l-1.76,-1.81l1.5,-0.96l1.11,1.62l2.82,-0.09l0.25,-0.64l-0.74,-0.46l0.13,-1.8l-1.13,0.57l-3.99,-3.64l0.8,-1.08l-1.71,-1.33l0.92,-1.39l-0.63,-1.56l-1.34,-0.3l-1.54,0.95l-0.23,-1.09l-0.96,-0.31l-0.56,-2.76l-0.71,-0.28l-0.59,0.8l-3.52,-5.53l-1.01,-0.63l-4.1,0.66l-0.5,-1.26l-1.21,0.97l-2.42,-0.2l-1.04,-1.77l-1.21,-0.45l-0.72,0.76l-5.92,-0.16l-2.09,-1.06l-3.46,0.67l-0.44,-0.8l-4.14,1.13l-13.09,-1.81l-0.69,-0.77l0.39,-1.86l-1.1,-1.15l-4.5,1.29l-0.77,-0.76l1.82,-2.92l-0.71,-1.01l-0.82,0.15l-0.03,-0.85l1.61,-0.14l0.62,-1.12l-1.42,-1.43l-2.26,0.46l-1.63,-0.89l2.09,-5.6l-1.97,-2.61l-3.59,-2.57l1.63,-6.41l-1.36,-0.45l-7.14,1.19l-3.76,-0.81l-2.62,-2.95l-2.62,-7.54l-2.35,-3.41l-1.68,0.65l-1.66,-1.25l-1.76,1.04l-1.54,-0.93l-3.38,0.86l-3.47,-1.85l-4.37,-1.08l-1.54,-1.38l-2.91,1.14l0.18,1.94l1.8,1.59l-0.71,2.41l-1.35,-0.31l0.4,-1.68l-0.64,-1.58l-2.01,-0.19l-2.9,8.53l-1.08,0.6l1.44,-3.51l-0.47,-0.9l-5.21,2.26l-1.88,6.26l-2.82,2.11l-3.67,0.23l-2.51,-2.31l-7.44,0.52l-1.66,-2.7l-6.62,3.42l-2.89,-1.08l-0.63,-1.46l-2.68,-1.03l-1.32,-2.1l-2.73,0.25l-0.76,1.87l-1.31,-3.75l-2.46,-0.29l1.07,-0.69l-0.3,-0.8l-4.08,-1.73l-5.02,-0.14l-1.38,1.25l-3.01,0.33l-1.09,-2.11l-4.32,-0.55l-0.74,-1.12l-3.39,-0.37l-1.14,-1.77l1.38,-1.44l1.69,-0.49l1.73,-2.47l1.71,0.52l1.37,-1.02l0.67,-0.78l-0.75,-0.53l0.85,-2.93l-1.34,-1.05l0.67,-0.77l-3.37,-2.07l0.99,0.2l0.42,-0.61l-0.89,-0.66l0.73,-0.77l-0.67,-1.05l-1.42,-0.26l-0.97,-2.13l0.36,-1.57l-1.02,-1.13l-1.24,0.08l-0.58,0.92l1.46,2.37l0.06,1.75l-2.78,0.05l-1.13,1.44l-2.32,-0.86ZM469.67,728.45l1.67,1.42l0.23,1.55l-0.99,-0.96l-0.76,0.55l1.51,2.45l1.84,-1.22l-0.46,0.66l0.7,1.13l1.89,0.59l0.94,-0.84l1.18,1.62l1.63,-1.99l2.16,0.98l-0.37,-3.25l0.77,-1.47l-0.58,-2.28l0.44,-2.16l1.11,-0.99l-2.32,-1.72l0.65,-1.03l-0.82,-2.07l-2.54,-1.64l-1.61,1.18l-1.01,-0.84l-0.98,0.31l-1.54,1.57l-0.43,2.25l-1.04,0.41l0.93,2.15l-1.34,0.8l0.2,1.59l-0.37,-1.2l-0.84,-0.03l-0.43,1.8l0.54,0.71ZM540.56,627.39l-0.07,-0.12l0.08,-0.1l0.01,0.04l-0.02,0.17ZM625.48,816.5l-0.88,0.97l-0.47,0.08l0.55,-0.74l0.8,-0.31ZM617.32,819.18l1.96,-1.47l1.51,0.73l0.49,-0.98l1.66,-0.66l-0.41,1.69l0.39,0.57l1.51,-0.3l-0.58,1.21l0.49,0.7l-1.15,0.87l-0.53,-0.19l0.23,-1.4l-4.11,0.62l-1.47,-1.38ZM624.91,820.35l0.01,-0.01l0.01,0.0l-0.02,0.01ZM478.49,748.07l0.15,0.64l-0.97,0.3l0.81,-0.95ZM477.13,749.61l-0.41,0.47l-0.16,0.72l0.06,-0.73l0.51,-0.46ZM472.6,753.18l-0.12,0.04l-0.06,0.0l0.02,-0.03l0.16,-0.01ZM409.98,736.99l-1.24,-1.83l-2.23,0.71l-0.95,-1.1l0.31,-0.87l-2.37,-0.23l0.19,-0.55l5.22,-0.85l-0.85,1.31l0.47,0.65l0.86,-0.42l-0.01,1.28l1.48,0.84l-0.87,1.06ZM401.76,728.88l0.69,0.17l-0.45,0.55l-0.32,-0.09l0.08,-0.64ZM631.42,815.59l-0.13,-0.74l0.55,-0.02l-0.02,0.39l-0.4,0.37ZM627.23,816.23l0.77,-0.4l0.07,-0.04l-0.2,0.32l-0.64,0.12ZM581.85,801.71l0.01,-0.5l0.57,0.08l-0.37,0.17l-0.21,0.24ZM582.47,809.41l0.08,-0.02l-0.03,0.08l-0.05,-0.05ZM575.9,692.07l1.12,-1.08l0.85,7.34l-1.99,-2.2l0.02,-4.05ZM543.99,793.29l0.64,0.68l2.98,-1.21l0.99,2.07l2.33,0.02l0.5,0.81l-7.92,-1.58l0.49,-0.78ZM551.7,795.68l0.77,-1.33l-0.92,-0.74l1.53,-1.12l1.04,-0.37l2.14,2.32l2.38,-2.74l0.44,1.27l1.05,0.28l-0.19,1.49l1.03,1.14l-2.87,2.6l-6.4,-2.79ZM561.3,795.7l0.14,-1.12l0.31,-0.89l0.37,-0.6l-0.5,1.08l1.39,0.74l-2.12,3.83l-0.59,0.22l1.7,-2.36l-0.71,-0.91ZM561.37,800.05l0.39,-0.41l0.14,-0.07l-0.3,0.46l-0.22,0.02ZM559.04,790.43l0.46,-0.13l0.58,0.12l-0.77,0.13l-0.27,-0.12ZM549.74,793.07l0.11,-0.31l0.76,-0.12l-0.14,0.32l-0.72,0.11ZM540.29,794.07l1.01,-1.22l0.82,0.55l-0.61,1.12l-1.21,-0.46ZM532.17,788.03l1.6,-0.01l1.59,1.01l-1.21,2.0l-1.98,-3.01ZM508.33,763.17l0.76,-0.68l2.4,0.26l-0.97,0.41l-2.18,0.01ZM486.08,744.61l0.14,-0.01l0.53,0.92l-0.33,0.04l-0.33,-0.95ZM482.03,744.94l1.2,-0.66l1.87,0.08l-0.46,1.02l-2.38,0.75l-0.23,-1.19ZM477.93,719.83l0.17,-0.01l0.17,0.44l-0.2,-0.06l-0.14,-0.37ZM478.55,720.5l0.14,0.03l0.06,0.19l-0.05,-0.01l-0.14,-0.21ZM475.07,730.34l0.17,-0.01l0.06,0.15l-0.14,-0.1l-0.09,-0.04ZM475.4,723.45l-0.02,-0.28l0.1,0.01l-0.07,0.24l-0.01,0.03ZM474.42,725.62l0.1,0.02l0.16,0.3l-0.46,-0.02l0.2,-0.3ZM469.69,755.38l0.19,-0.22l0.17,-0.01l-0.36,0.22ZM403.6,737.46l0.64,-0.37l0.83,0.44l-1.23,0.69l-0.24,-0.77ZM406.38,737.1l0.0,-0.01l0.02,-0.07l0.01,0.08l-0.04,-0.0ZM405.0,739.21l0.5,-0.36l0.12,0.28l-0.18,0.39l-0.43,-0.3ZM399.11,732.44l1.97,-0.65l0.88,-0.67l-0.87,1.65l-1.81,0.48l-0.16,-0.81ZM402.77,730.48l1.11,-1.11l0.95,-0.18l-0.74,1.0l-1.33,0.3Z\", \"name\": \"Ontario\"}, \"ab\": {\"path\": \"M139.57,606.56l0.37,-1.05l1.18,0.57l0.81,-0.56l-1.58,-4.38l37.33,-108.91l45.27,14.12l45.98,11.63l-2.72,12.15l-4.26,2.55l-1.83,0.1l-4.59,4.95l-1.83,0.73l-0.86,-1.64l-1.67,0.79l1.38,3.5l-0.16,1.93l0.92,0.24l1.46,-1.94l-0.31,2.62l0.56,0.52l1.32,-1.15l0.14,-1.43l3.55,0.95l0.97,-1.38l-0.73,-1.28l4.31,-2.81l-39.85,178.15l-45.48,-11.24l-0.72,-2.98l-2.23,-1.66l0.23,-0.86l-1.58,-2.96l0.8,-2.77l-1.71,-1.0l2.24,-2.87l-0.07,-2.44l1.05,-2.7l0.11,-5.55l-1.47,-4.33l-1.24,-1.02l-1.26,0.24l-0.4,-3.13l-2.69,-3.15l0.84,-0.16l-0.02,-1.71l-1.31,-2.54l-1.92,-1.32l-0.11,-2.34l-1.88,-1.98l0.3,-2.47l-2.03,-4.3l-0.2,-3.14l-1.26,-0.33l-1.4,1.25l-0.62,-0.25l-0.14,-3.71l-1.62,-3.01l0.14,-2.56l-3.37,-0.27l-1.21,-1.61l-0.28,-1.09l1.58,-1.91l-2.46,-2.86l-1.36,1.2l-1.4,-0.1l0.7,-1.26l-0.7,-2.97l0.77,-0.81l-0.3,-3.43l-0.53,-1.4l-1.3,-0.18l0.31,-2.51l-1.07,-3.42l-1.29,-1.58l-1.31,1.23l-1.63,-1.38l-0.34,-3.23l-2.89,-1.04l-1.44,-3.37Z\", \"name\": \"Alberta\"} }});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.croatia.js",
    "content": "﻿$.fn.vectorMap(\"addMap\",\"croatia\",{insets:[{width:900,top:0,height:804.9967209703165,bbox:[{y:-5593673.991091945,x:1502415.0468362367},{y:-5001378.619193797,x:2164611.327668031}],left:0}],paths:{\"hr-ob\":{path:\"M665.24,144.46l1.59,-0.94l9.9,-0.11l4.17,-1.18l2.45,3.31l4.5,1.63l5.28,0.68l2.05,-0.08l8.22,-4.46l3.56,1.7l7.19,-0.66l3.88,4.82l14.9,2.06l4.41,-2.98l3.07,0.35l3.21,3.52l3.05,0.25l6.3,-2.13l3.56,-6.02l1.31,-0.69l4.07,2.25l5.28,-3.3l2.6,-0.37l0.07,-0.78l-1.91,-0.62l5.14,-3.06l4.17,-9.6l2.05,0.46l3.36,-5.15l6.7,-1.69l2.83,0.36l3.69,1.24l6.55,3.97l2.17,-1.19l0.2,-1.15l1.02,2.03l4.29,3.32l-1.44,7.82l6.42,9.14l2.07,10.68l8.1,5.08l0.43,1.76l-1.4,2.97l-3.53,4.1l-4.05,2.42l1.16,3.66l-1.95,3.54l0.52,2.49l5.27,5.76l2.52,0.67l4.79,-0.69l2.95,-4.06l2.76,-0.23l0.95,3.78l10.56,3.57l0.1,3.63l-2.44,2.54l-2.48,0.48l-2.6,0.11l-5.47,-1.87l-1.45,2.16l-0.97,6.49l2.11,3.04l-4.28,-0.53l-2.98,1.18l-0.29,-2.05l-3.14,-2.63l-1.65,-3.16l-3.98,-2.23l-2.58,-0.12l-2.91,0.61l-1.39,2.48l-3.21,1.47l-4.27,0.42l1.05,1.89l-2.37,3.1l1.84,2.43l-0.3,1.9l-3.53,1.04l-0.88,-1.67l-3.18,-0.59l-5.2,1.02l-5.11,2.96l-5.25,0.27l-0.54,1.21l0.76,5.76l-4.63,1.48l2.78,5.74l-6.67,-0.46l-3.18,3.89l-4.71,-0.94l-4.61,2.58l0.51,6.61l-1.07,2.23l1.96,2.07l2.49,0.09l-1.06,3.05l-1.92,0.96l-2.36,-0.86l-3.03,0.92l-2.01,-1.7l-3.15,0.53l-3.09,-2.29l-4.34,-0.82l-1.46,-2.09l-4.5,-1.41l-8.18,0.27l-5.38,3.32l-4.45,0.74l-1.83,1.36l-4.67,-2.07l-2.23,-3.03l-5.39,-0.71l-1.07,-1.54l-5.28,-0.28l-4.5,-1.91l6.29,-6.74l-3.47,-5.97l-2.87,-1.35l1.18,-1.55l3.95,-1.51l1.22,-1.41l0.04,-2.16l-2.99,-3.67l-10.16,0.18l-1.99,-3.57l-4.33,0.4l-7.63,-6.32l-5.25,-0.22l-2.66,-1.7l1.45,-3.34l7.38,-3.63l2.24,-5.84l3.48,-4.38l1.38,-0.47l2.57,-5.09l2.29,-1.88l4.33,-7.23l2.57,0.8l0.77,-2.06l-0.97,-1.42l-4.27,0.18l-2.29,-2.98l-1.7,-3.31l-1.59,-7.41l-4.93,-0.24l-0.5,-1.87l-4.22,-0.34l-0.26,-3.65l-3.5,-4.5l-2.92,-1.08Z\",name:\"Osječko-Baranjska\"},\"hr-zg\":{path:\"M397.4,143.34l-0.14,-1.67l1.63,0.06l8.51,3.43l0.96,-2.25l0.42,-6.53l3.93,-2.65l-1.13,-1.81l0.05,-2.77l-3.81,-5.16l-2.53,-0.65l-1.61,-8.78l-2.83,-5.15l1.35,-4.58l1.81,-0.9l3.27,0.2l-2.92,-3.86l6.29,-0.97l-1.36,-3.65l2.14,-2.44l2.78,-1.05l0.95,-1.21l1.45,3.96l2.0,0.71l0.09,3.99l2.79,1.98l1.67,0.08l2.82,-2.26l2.03,-0.22l2.18,1.01l3.07,-0.19l4.56,3.32l3.24,-0.28l1.82,1.61l0.24,3.05l3.33,0.33l1.05,1.32l-0.21,5.25l6.87,-4.21l1.91,1.35l3.31,-0.31l1.63,2.48l4.21,2.15l0.8,1.91l1.76,1.18l2.63,-0.8l1.32,1.12l3.0,0.08l5.63,-1.56l2.68,1.75l-0.37,6.82l2.56,4.85l-1.3,2.23l-3.17,0.71l-1.43,1.74l-1.59,-0.63l-1.87,0.88l-0.67,-2.59l-1.73,-0.3l-2.81,3.68l-1.92,0.73l0.18,5.55l-2.21,0.27l-5.34,-3.23l-4.12,2.04l-2.29,-0.29l-0.53,3.32l-2.06,0.54l-0.17,0.7l3.93,2.83l-2.39,1.56l-0.05,4.72l3.19,0.77l1.67,3.22l5.31,-0.96l2.27,2.51l0.59,2.6l2.3,0.69l0.94,2.83l-0.52,2.05l-2.13,1.43l0.07,2.64l-2.4,1.16l-4.01,-0.13l-2.31,2.77l-4.77,1.51l-3.73,5.28l-0.8,0.0l-4.19,-4.89l-4.82,-1.03l-0.91,-2.14l-2.81,-2.3l-3.65,-0.49l-3.95,1.13l1.26,-3.01l-0.75,-1.33l-2.96,0.45l-3.52,1.87l-1.77,-6.79l-5.73,0.23l-0.4,-3.66l-2.82,-1.4l-0.06,-2.09l-2.46,-2.96l2.16,-1.9l-0.03,-2.48l-3.81,-1.42l-3.0,0.73l-3.96,-3.0l-3.78,-4.43ZM279.45,148.69l5.43,-2.43l7.18,-1.86l3.71,0.88l1.85,-1.99l0.09,-5.23l2.18,-3.01l1.32,1.35l4.75,-0.33l2.1,-1.03l3.71,-3.93l8.12,2.09l5.78,3.68l3.53,-2.03l5.59,-4.29l-2.96,-1.79l-2.15,-7.18l4.33,-6.91l-0.35,-2.21l1.42,-3.13l6.2,-0.92l1.88,2.61l2.5,-0.24l2.29,1.43l0.79,1.84l1.37,0.27l1.36,-2.89l3.12,-3.17l1.46,0.17l8.77,3.46l3.47,3.7l-1.71,0.84l-6.06,-0.76l-6.58,1.49l-2.82,-0.66l-1.95,2.32l-0.85,2.05l1.25,2.15l0.22,2.5l6.39,-0.18l2.67,3.42l-1.1,1.13l-2.66,0.43l-1.19,2.18l-3.17,0.54l-0.5,2.26l2.3,7.32l-3.65,4.86l-1.34,4.56l-2.73,1.85l-1.35,4.01l0.81,3.81l6.0,3.49l8.06,3.1l4.5,4.18l-0.17,2.38l4.9,2.78l-0.1,4.51l-4.89,9.03l-3.83,0.59l-0.62,-3.16l-3.3,-0.66l-3.57,1.55l-1.47,2.77l-3.74,0.98l-0.23,-2.77l-1.88,-0.61l-2.32,-2.69l-3.68,-2.42l-0.75,-3.86l-4.26,-2.81l-5.64,0.13l-2.98,-2.47l-3.85,-1.38l-4.55,3.03l-1.84,2.63l-1.58,-1.91l-3.55,-1.56l-1.93,0.03l-0.36,-5.77l-5.38,-2.55l-3.77,-5.66l-3.17,-0.99l-2.21,0.9l-1.41,-2.45l-5.08,-1.94l-7.5,-4.83l1.32,-4.63Z\",name:\"Zagrebačka\"},\"hr-gz\":{path:\"M350.4,124.97l-0.02,-2.15l-1.21,-2.18l2.02,-3.27l2.89,0.6l7.46,-1.55l5.11,0.83l2.42,-1.12l1.03,1.26l-0.24,4.52l0.59,0.43l13.62,-7.82l6.3,-2.53l3.32,0.09l1.6,-2.07l4.87,-0.15l2.76,4.99l1.63,8.84l2.75,0.93l3.69,5.04l-0.2,2.43l0.93,1.54l-3.66,2.41l-1.13,8.49l-8.6,-3.68l-1.83,0.52l0.14,2.37l3.98,4.64l4.15,3.13l3.26,-0.66l3.35,1.19l-0.15,1.6l-1.93,1.47l-0.19,1.35l2.46,2.74l0.18,2.26l2.7,1.22l0.63,3.92l5.44,-0.31l2.2,7.29l-0.75,1.6l-3.27,0.46l-0.47,1.88l-3.48,1.94l-1.98,-2.09l-5.13,-0.23l-2.17,-5.31l-2.26,-0.59l-2.37,0.54l-3.13,3.58l-3.5,0.15l-3.13,3.64l0.15,3.19l-3.99,2.37l0.91,2.98l4.29,3.48l-0.45,4.15l-3.07,-0.06l-1.8,1.91l0.51,2.79l-2.15,1.76l-2.12,-1.45l-3.68,-0.8l-2.98,2.57l-2.29,0.82l-7.73,-0.51l-1.04,-1.8l0.73,-2.69l-0.66,-3.19l-2.39,-3.11l5.08,-9.54l-0.11,-4.74l-5.02,-2.94l0.21,-2.34l-4.69,-4.35l-8.16,-3.16l-5.96,-4.1l-0.39,-2.43l1.23,-3.62l2.65,-1.71l1.41,-4.68l3.75,-5.09l-2.29,-7.74l0.42,-1.66l2.88,-0.24l1.25,-2.21l2.57,-0.37l1.59,-1.94l-3.22,-4.05l-6.13,0.35Z\",name:\"Grad Zagreb\"},\"hr-is\":{path:\"M1.14,201.86l-0.66,-1.24l0.86,-0.03l0.15,-1.37l1.7,-1.23l6.98,2.86l5.56,5.03l3.44,0.54l5.59,2.55l12.48,-5.86l3.38,1.57l7.44,-0.38l8.36,4.37l2.52,3.79l8.67,-6.64l6.12,0.01l3.66,-1.52l2.22,-5.06l2.78,-0.51l7.01,3.21l8.87,0.83l-0.29,4.09l3.11,5.13l9.22,4.85l-2.81,2.36l-0.42,1.35l0.58,1.58l2.06,1.32l0.07,3.88l1.06,2.72l-2.49,1.1l-1.83,4.18l1.16,5.28l-0.78,3.47l2.23,6.31l-1.38,9.96l3.85,2.78l-0.73,3.35l-1.03,0.52l-1.27,3.31l-3.73,-3.14l-0.99,0.4l2.78,3.22l0.25,1.68l-3.49,5.06l-1.22,0.91l-1.37,-1.11l-0.86,0.35l-0.46,2.24l1.51,1.88l-0.61,0.99l-1.18,-0.83l-0.73,0.5l1.71,2.21l0.22,2.58l1.89,3.23l0.34,5.62l-2.99,4.06l-1.65,-1.78l-2.11,0.95l-0.99,-1.71l-1.32,-0.1l-3.48,2.15l-1.59,2.47l-0.57,0.16l0.71,-3.88l3.55,-0.15l0.39,-0.67l-1.72,-1.01l-0.44,-1.68l-0.63,0.18l-0.78,-3.91l-1.52,0.99l-1.67,-0.48l0.79,-2.55l-1.76,-2.97l-0.53,-0.44l-1.54,1.02l1.09,3.11l-1.35,2.6l5.07,1.65l0.78,2.44l-1.82,0.12l0.06,1.78l-2.03,2.48l0.5,1.03l-3.2,-0.9l2.56,3.03l-1.01,0.69l-0.71,2.81l-1.2,-1.5l-0.69,0.36l0.3,0.71l-1.26,1.0l1.34,0.79l-0.69,1.56l-3.75,1.79l-2.06,-1.95l-0.75,0.46l0.04,1.71l3.36,1.88l-1.6,0.87l0.94,2.61l-2.54,2.32l-0.46,2.13l1.51,2.05l-1.93,1.89l0.82,0.71l1.5,-0.67l1.67,2.83l-7.74,-0.21l-2.5,-3.01l-3.36,-2.08l-0.35,1.52l-1.65,-0.03l0.5,0.81l-1.62,-1.21l-1.45,0.76l1.2,1.44l4.12,0.76l0.82,1.39l-1.34,2.06l0.85,2.16l-1.06,1.06l1.07,1.02l0.42,-0.09l0.26,0.09l0.21,0.24l-2.31,-0.47l0.18,-2.89l-0.98,-0.99l0.47,-2.61l-0.78,-0.92l-5.17,-0.05l-0.33,-0.54l1.82,-1.32l-1.43,-0.68l-1.01,1.3l-0.61,-0.05l0.38,-0.61l-1.63,-1.03l2.0,0.06l0.28,-1.28l-2.61,0.01l0.5,-0.84l-1.2,-1.55l-0.61,1.67l-1.22,0.0l1.09,-1.05l-0.14,-1.39l-2.52,-2.33l3.01,-0.35l1.83,-1.85l-0.08,-1.77l-1.83,-0.76l-1.22,1.45l-1.72,0.22l-1.87,-1.11l0.25,-1.41l-0.73,-0.45l1.86,-2.56l-1.39,-1.24l-0.33,-3.06l-1.82,-1.75l-1.18,-2.07l0.34,-0.92l-2.15,-2.06l-1.35,-3.5l-4.0,-0.35l0.23,-0.69l-1.93,-1.32l-0.55,-1.7l-1.12,-0.31l0.24,-2.29l-3.71,-0.56l0.18,-2.67l-1.39,-1.11l1.1,-0.89l-0.44,-0.59l-4.75,-2.67l-3.8,0.34l1.06,-0.9l-0.46,-0.94l0.79,-0.79l-0.96,-0.64l1.25,-0.74l0.0,-1.77l-2.9,-1.08l-2.14,-2.44l2.12,0.12l0.82,-1.46l-1.77,-2.41l-1.92,0.23l-0.71,-2.29l1.72,-2.49l-1.8,-1.66l0.21,-0.74l-1.4,-0.58l2.21,-0.87l-3.36,-3.24l2.55,-1.29l-1.33,-1.47l1.58,-5.97l-1.4,-0.96l0.72,-0.79l-0.56,-0.68l-2.17,-0.1l0.63,-1.02l-0.59,-0.84l0.72,-1.34l2.5,-0.06l0.27,-1.91l-2.39,-0.19l-2.21,-2.12l2.56,0.27l0.36,-1.57l3.74,-1.75l-2.8,-2.02l-1.57,0.57l0.04,0.84l-4.09,0.1l0.8,-0.8l-0.53,-0.71l-3.22,-1.03l0.76,-2.12l-0.85,-1.79l2.48,-1.5l-2.09,-0.76l0.5,-1.89l-0.8,-0.5l0.81,-0.54l-1.9,-1.49l1.09,-0.87l-1.11,-1.11l0.65,-0.91l-3.15,-2.58l1.3,-1.77l-0.84,-0.88l0.84,-1.61l-2.23,-0.85l1.13,-2.03l-0.88,-1.15l-0.08,-2.61l-2.41,-1.83ZM21.74,277.06l0.0,0.0l0.0,0.0l0.0,0.0ZM47.5,312.19l-0.11,0.11l-0.04,0.01l0.12,-0.13l0.03,0.01ZM48.96,319.16l0.06,0.05l-0.01,0.06l-0.08,-0.07l0.04,-0.04ZM49.17,319.42l-0.04,-0.04l0.0,-0.02l0.07,0.06l-0.03,-0.01ZM49.01,318.11l-2.06,0.03l-0.68,-2.16l0.96,0.11l1.78,2.03ZM56.36,326.21l0.01,0.0l0.0,0.0l-0.01,0.0ZM100.81,283.17l0.13,-0.03l0.0,0.17l-0.08,-0.08l-0.05,-0.06ZM101.48,283.92l0.0,0.07l0.04,0.05l-0.08,-0.08l0.04,-0.04ZM101.27,283.78l0.07,0.08l-0.07,-0.07l0.0,-0.01ZM66.5,328.37l0.0,-0.16l0.09,-0.09l0.0,0.07l-0.09,0.18ZM65.84,326.31l0.17,0.1l0.08,0.0l-0.3,0.04l0.05,-0.15ZM50.88,318.86l0.0,-0.02l0.01,0.02l-0.01,0.0ZM46.63,312.57l0.01,0.02l-0.03,0.0l0.0,0.0l0.02,-0.02ZM46.72,312.59l0.05,-0.08l0.25,-0.05l-0.18,0.13l-0.12,0.0ZM14.99,254.27l-0.01,-0.01l0.01,0.0l0.0,0.01ZM6.8,218.09l0.0,0.0l0.0,0.0l0.0,0.01ZM78.04,321.27l0.53,-0.39l0.01,0.8l-0.53,-0.01l-0.01,-0.4ZM77.64,324.42l0.53,0.04l0.01,1.23l-0.53,-0.44l-0.01,-0.83ZM69.23,335.15l-0.04,-0.05l0.0,-0.04l0.08,0.09l-0.03,0.0ZM58.09,337.9l0.18,-0.23l0.05,0.0l-0.23,0.23ZM53.25,324.41l0.0,-0.01l0.16,0.14l-0.12,0.04l-0.04,-0.16ZM52.53,316.17l-0.08,0.01l0.03,-0.05l0.04,0.03ZM37.76,306.77l-0.06,-0.13l-0.11,-0.11l0.37,0.1l-0.19,0.14ZM38.22,306.59l0.77,-0.26l1.3,1.3l1.4,-0.26l0.53,1.09l1.12,-0.29l0.28,0.27l-1.46,1.62l-0.82,-0.73l-0.99,0.76l0.0,1.56l-1.08,-1.41l1.2,-0.6l0.09,-1.68l-2.34,-1.36ZM40.34,312.07l0.05,-0.17l0.13,0.29l-0.11,-0.11l-0.06,-0.01ZM39.55,312.4l-0.21,0.08l-0.06,0.0l0.02,-0.08l0.25,0.0ZM43.2,309.63l0.16,-0.1l0.63,0.15l-0.27,0.46l-0.52,-0.52ZM41.94,310.51l0.05,0.05l-0.05,0.0l0.0,-0.05ZM37.23,304.43l-0.02,-0.02l0.19,-0.2l0.0,-0.14l0.08,0.08l-0.25,0.28ZM38.61,304.8l0.25,0.51l-0.13,0.11l-0.43,-0.11l0.3,-0.51ZM38.54,304.24l-0.05,-0.05l0.01,0.0l0.04,0.05Z\",name:\"Istarska\"},\"hr-zd\":{path:\"M246.27,430.42l1.92,-2.62l1.84,-0.75l5.54,6.91l3.78,-0.77l2.0,-2.31l-3.41,-4.63l0.97,-0.39l1.96,1.29l0.56,-1.77l6.93,5.85l3.26,2.01l2.11,-0.03l0.84,-2.18l-1.9,-1.74l-1.01,-2.5l2.74,0.56l1.12,-1.9l-6.94,-6.19l0.5,-1.5l1.0,-0.13l0.34,1.02l8.15,4.38l-0.16,1.8l10.89,6.25l2.59,0.72l3.82,-1.6l11.48,3.2l0.11,2.06l1.4,2.04l-8.58,1.8l-0.48,1.64l8.3,5.4l2.62,-1.96l0.84,1.03l0.8,-2.05l2.33,0.35l3.52,2.11l1.85,2.17l-0.72,3.91l2.92,3.03l2.12,-1.21l0.25,-2.13l-3.86,-4.55l-0.88,-0.06l-0.47,-1.65l1.34,-1.32l-2.22,-2.36l-0.12,-1.5l-0.53,-0.4l-0.53,0.93l-6.6,-3.14l-2.28,-2.55l-0.03,-2.07l2.02,-0.19l0.0,-2.52l-2.05,-1.9l-2.69,-0.83l-4.3,0.93l-1.75,-2.58l-2.03,0.52l-7.16,-6.97l-10.1,-3.71l-5.23,-3.56l-4.11,-1.6l3.22,-7.97l1.23,-0.49l3.52,1.13l7.01,4.89l20.43,5.79l5.87,10.76l2.22,-0.61l6.48,2.07l4.04,-0.29l4.41,2.94l14.33,0.22l4.4,-2.24l4.24,-5.5l-1.59,-8.82l-1.31,-0.41l-3.15,0.88l-2.54,-1.38l3.45,-4.88l-2.23,-3.19l0.64,-4.25l2.0,-1.48l7.89,-2.72l3.8,-5.01l4.45,-0.92l5.07,-5.01l5.83,-0.2l3.34,1.39l3.33,3.09l1.94,2.28l0.91,4.04l2.96,3.09l1.5,-1.26l-1.08,-6.04l3.84,3.42l3.85,-0.33l4.95,-2.31l-0.09,4.04l-1.53,3.12l5.36,3.03l-0.62,1.63l-2.35,0.89l-0.96,1.52l1.49,1.95l3.97,0.23l6.57,4.55l-2.25,8.0l0.03,4.99l0.91,2.43l4.62,4.45l0.93,6.75l-8.69,1.33l-5.46,-0.47l-2.19,4.39l0.1,3.77l-1.43,4.34l-5.85,2.83l-1.49,1.78l-5.13,-3.2l-8.94,-3.12l-1.54,-4.86l-2.3,-1.83l-1.12,0.29l-5.37,5.52l-1.5,3.11l-3.5,1.92l-4.6,5.3l-2.26,-0.16l-2.55,4.06l-5.76,-0.54l-0.99,0.61l0.54,1.68l7.05,2.59l2.38,2.48l-4.16,5.79l1.76,2.61l-6.99,3.61l1.28,3.26l3.68,2.78l-0.87,1.71l-1.58,0.93l-2.13,-2.05l-3.61,-0.25l-0.98,2.04l2.16,1.96l-2.21,4.24l-3.35,0.23l0.13,1.06l1.97,1.06l-2.13,5.1l-7.91,-5.1l-3.87,3.97l-4.13,1.87l-2.31,-1.13l-4.41,-4.26l-1.31,-0.01l-2.2,1.85l-2.61,-1.44l-0.62,-0.72l0.51,-1.06l-3.03,-2.64l-2.76,-0.6l-2.86,-1.92l-1.44,0.59l-4.09,-3.97l0.78,-1.31l-1.07,-1.53l-5.0,-2.85l-9.8,-11.97l-4.8,-1.03l0.37,-2.33l-2.67,-0.56l-1.62,-1.43l-0.93,-4.14l-3.09,-2.77l-1.54,0.3l-2.09,-1.67l-1.58,-1.79l1.58,0.77l-1.23,-2.35l-2.6,-1.28l1.04,-1.15l-0.42,-1.39l-5.2,-5.13l-2.43,-1.1l-0.13,-1.53l-2.42,-1.31l2.24,-1.02l0.09,-2.82l1.17,-0.34l0.0,-1.86l-3.31,-2.83l-1.91,0.1l0.26,-1.13l-1.31,-0.52l0.5,-0.79l-2.17,-0.92ZM259.33,424.23l-0.63,-0.05l-0.42,-0.44l0.47,0.15l0.58,0.34ZM260.91,425.03l0.31,0.05l0.04,0.12l-0.04,-0.05l-0.32,-0.12ZM306.34,509.7l-0.12,-0.22l1.33,0.71l-0.53,-0.02l-0.68,-0.47ZM300.45,532.7l0.12,0.13l0.05,0.38l-0.12,-0.15l-0.04,-0.36ZM303.22,534.57l-0.08,-0.09l0.7,0.35l-0.29,0.09l-0.34,-0.35ZM305.1,535.61l0.64,-0.05l1.15,0.53l-0.62,-0.05l-1.18,-0.43ZM302.77,505.01l1.72,0.14l1.99,1.22l-2.2,0.36l-1.51,-1.71ZM304.07,504.59l0.28,0.11l0.01,0.14l-0.29,-0.24ZM299.95,528.79l0.89,-0.52l0.37,0.93l-0.76,0.36l-0.5,-0.77ZM300.41,529.66l0.0,-0.01l0.04,-0.04l-0.04,0.05ZM296.92,529.68l1.13,0.49l0.21,0.76l-1.24,-0.95l-0.1,-0.31ZM201.81,450.12l1.39,0.67l0.48,1.27l2.46,0.46l0.49,1.1l-3.76,-1.69l-1.05,-1.81ZM209.08,455.12l-1.91,-1.31l1.03,-0.99l2.2,0.42l0.48,-0.71l-1.96,-2.29l-1.78,-3.48l7.57,5.6l0.0,1.56l2.12,2.41l3.3,0.56l-0.84,1.2l1.41,1.99l7.61,4.33l0.57,-0.5l-0.54,-1.21l1.29,0.68l0.04,1.03l-1.13,0.58l0.85,1.18l1.67,0.02l1.64,5.76l3.2,5.15l2.04,1.89l1.14,-0.06l4.11,4.02l0.57,-1.7l2.58,1.29l-0.57,1.5l2.5,2.56l2.71,0.89l1.79,2.66l1.01,-0.1l1.55,2.83l6.75,3.41l0.33,1.07l-1.55,0.11l0.53,1.19l-2.06,-0.02l-3.78,-2.48l-2.68,0.13l0.72,-1.2l-3.86,-3.16l-1.77,1.53l2.44,1.17l0.99,2.35l-0.47,0.44l-2.65,-1.94l-8.8,-9.62l-11.76,-17.51l-8.17,-5.65l-3.02,-4.17l-4.38,-3.68l-2.78,-1.42l-0.27,1.7ZM262.72,502.13l1.56,-0.46l0.79,1.18l3.47,0.36l-1.98,1.19l11.66,8.41l4.76,5.14l5.52,3.72l-8.63,-4.37l-1.08,0.46l-2.74,-2.57l-1.22,-0.12l-0.58,-0.63l0.71,-0.7l-1.77,-0.55l-0.26,-1.18l-1.0,0.4l-0.2,-1.19l-1.27,-0.69l-1.18,0.35l-3.75,-3.95l0.64,-0.69l-0.64,-0.91l-3.1,-2.49l0.28,-0.73ZM291.92,523.85l0.01,0.0l0.03,0.03l-0.02,0.0l-0.02,-0.03ZM292.37,524.08l-0.34,-0.18l0.15,0.0l1.25,0.65l-1.06,-0.47ZM275.68,511.05l0.01,-0.03l0.0,0.0l0.0,0.0l-0.02,0.03ZM270.6,504.63l0.02,0.02l0.05,0.02l-0.07,0.0l0.0,-0.04ZM295.48,525.86l0.97,0.15l0.46,0.47l-0.42,0.32l-1.01,-0.95ZM297.58,526.94l0.61,0.2l-0.09,0.33l-0.18,-0.05l-0.34,-0.48ZM262.53,501.04l-1.09,-0.37l0.26,-1.34l1.0,0.68l-0.17,1.04ZM261.47,498.72l-0.03,-0.03l0.03,0.02l0.0,0.01ZM252.98,499.16l1.13,-1.14l0.88,1.9l3.26,1.14l0.41,0.9l-0.96,0.72l-4.71,-3.51ZM207.15,446.7l0.0,0.06l-0.13,-0.24l0.11,-0.17l0.02,0.35ZM206.97,451.87l-0.61,-0.15l-0.77,-0.8l2.62,0.95l-1.24,0.0ZM238.84,451.02l-0.39,-1.44l5.84,4.12l0.64,1.34l1.89,1.13l0.83,-0.62l3.88,4.17l0.83,-0.46l1.53,1.96l0.8,0.21l0.36,-0.84l1.34,0.93l-0.42,1.52l2.92,3.39l6.37,3.92l0.38,1.96l1.86,2.12l-1.26,0.45l0.03,1.02l-0.96,0.2l0.59,-2.1l-2.04,-0.6l-0.19,-1.92l-2.66,-2.3l-0.37,1.86l-1.32,-0.68l-0.48,1.66l-1.52,-0.94l-8.99,-9.06l-2.25,-3.61l-2.38,-0.4l-3.78,-3.62l-1.07,-3.37ZM267.19,476.38l1.64,-0.68l3.09,1.02l1.55,2.01l4.14,1.23l3.49,2.81l1.75,2.59l2.22,-0.72l1.04,2.16l1.09,0.01l-0.46,1.24l1.17,2.77l4.92,3.04l4.46,4.03l-0.15,1.02l-1.55,-1.14l-1.31,1.03l-1.39,-0.31l-5.87,-4.42l-2.1,0.1l-0.02,1.34l-1.18,-0.57l-0.88,-1.18l1.22,-1.09l-0.61,-0.92l-2.31,-1.64l-1.27,0.26l0.07,-1.46l-4.45,-2.03l-1.11,-2.84l-4.76,-4.53l-0.24,-1.9l-2.19,-1.23ZM286.48,495.52l-0.28,-0.05l0.0,-0.07l0.15,-0.11l0.13,0.23ZM268.83,475.7l-0.21,-0.5l0.06,-0.07l0.41,0.25l-0.26,0.32ZM238.76,454.02l-0.04,-0.07l-0.05,-0.05l0.2,0.05l-0.12,0.06ZM293.89,502.99l1.05,0.21l0.75,0.7l-0.21,0.15l-1.59,-1.06ZM294.99,530.71l0.0,-0.12l-0.16,-0.22l0.5,0.39l-0.35,-0.05ZM293.77,507.84l-0.45,-0.77l1.48,0.37l0.0,0.39l-1.03,0.01ZM294.42,529.09l0.16,0.0l0.2,0.08l-0.09,0.09l-0.26,-0.17ZM292.17,500.12l1.02,-0.35l0.63,0.51l-0.87,0.86l-0.77,-1.02ZM293.82,500.3l0.01,-0.01l0.01,0.01l-0.02,0.0ZM291.28,528.85l0.65,-0.35l0.6,0.3l-0.25,0.2l-1.0,-0.15ZM289.0,486.14l0.81,0.39l0.41,0.76l-0.75,-0.21l-0.48,-0.94ZM289.61,499.71l0.47,0.15l0.18,0.15l-0.66,-0.08l-0.53,-0.44l-0.04,-0.15l0.59,0.37ZM288.77,498.83l-0.01,0.07l-0.13,-0.17l0.0,-0.05l0.14,0.15ZM287.9,526.17l-0.02,0.02l0.0,-0.04l0.02,0.02ZM286.56,525.7l-0.07,-0.09l0.16,-0.3l0.17,-0.2l-0.27,0.58ZM277.8,520.85l-0.66,-0.15l-0.44,-0.58l1.43,0.36l-0.33,0.37ZM278.82,521.03l1.85,0.92l2.59,0.54l-1.48,0.45l-2.95,-1.92ZM283.97,523.24l0.57,0.92l1.45,-0.41l-1.06,1.78l-1.51,-0.8l0.55,-1.49ZM268.04,500.76l1.04,-2.11l1.0,0.91l2.35,0.05l-0.94,1.04l1.81,1.48l0.98,-0.62l2.24,1.13l0.87,-1.14l-0.01,1.42l4.04,4.22l0.17,1.62l1.05,0.82l-4.56,-3.38l-2.02,-0.34l-4.85,-4.56l-3.17,-0.56ZM278.97,502.59l0.02,0.0l0.14,-0.11l-0.08,0.19l-0.08,-0.07ZM276.49,500.4l0.09,-0.32l0.08,-0.06l0.08,0.22l-0.24,0.16ZM284.37,510.42l0.1,0.04l0.19,0.23l-0.22,-0.02l-0.07,-0.24ZM281.45,520.0l0.21,0.04l0.04,0.06l-0.02,0.19l-0.23,-0.29ZM278.15,495.34l0.31,0.0l-0.1,0.23l-0.09,-0.01l-0.12,-0.23ZM272.2,491.2l-0.17,-0.91l3.44,2.1l0.88,1.59l-4.15,-2.77ZM276.56,494.19l0.18,0.18l-0.02,0.0l-0.17,-0.18ZM276.78,494.36l0.04,-0.04l0.0,0.04l-0.04,0.0ZM272.65,517.69l0.03,0.01l-0.02,0.02l0.0,-0.02l-0.01,-0.01ZM271.37,492.69l-0.06,0.0l0.0,-0.02l0.07,0.0l-0.02,0.02ZM268.89,515.02l0.01,0.02l-0.05,0.0l0.02,-0.02l0.01,0.0ZM268.93,515.04l-0.02,-0.03l0.05,-0.05l0.04,0.08l-0.07,0.0ZM268.29,492.69l-0.15,-0.23l0.46,0.43l-0.27,0.0l-0.04,-0.2ZM264.67,510.52l1.55,0.44l0.13,0.48l-0.81,0.36l-0.87,-1.29ZM266.92,512.04l-0.06,0.39l-0.13,0.05l-0.08,-0.22l0.27,-0.22ZM267.73,511.76l0.0,-0.38l0.61,0.21l-0.05,0.33l-0.56,-0.16ZM267.13,513.66l-0.1,0.0l0.0,-0.07l0.13,0.05l-0.02,0.02ZM267.5,513.71l-0.02,-0.02l0.1,0.0l0.0,0.04l-0.08,-0.02ZM214.0,381.14l-0.62,-0.65l2.42,-1.46l2.45,0.37l17.35,17.64l1.36,-0.91l-1.33,-6.02l0.9,0.26l6.86,5.84l2.6,0.68l3.83,5.73l5.0,2.53l2.07,3.93l2.2,-0.21l6.73,5.17l1.56,3.82l-11.12,-6.22l-0.35,1.03l7.96,6.76l-3.02,-0.77l-0.62,0.97l0.7,1.1l-3.58,-1.6l-1.21,0.36l-5.48,-2.68l-2.12,0.31l0.13,1.75l6.97,5.56l-0.26,0.13l-2.73,-0.83l-6.84,-4.44l-2.57,-3.26l1.51,0.1l0.42,-1.96l-2.73,-2.53l0.79,-1.41l3.1,-0.17l-0.09,-2.16l-5.05,-3.47l-2.52,-0.21l-0.16,2.01l-3.99,-0.93l0.26,-2.44l-2.41,-3.49l-6.02,-5.33l-4.04,-2.75l-1.07,0.73l-2.49,-0.32l-3.87,-3.08l-1.09,-2.01l2.4,0.0l0.8,-0.94l-0.9,-2.72l-2.09,-1.79ZM261.85,421.74l-0.24,-0.52l0.83,0.55l-0.43,0.15l-0.16,-0.17ZM266.74,497.58l-0.38,-0.43l0.07,-0.11l0.63,0.31l-0.31,0.23ZM263.62,499.01l0.34,-0.02l0.18,0.17l-0.25,0.01l-0.27,-0.15ZM262.7,505.44l0.38,-0.43l0.72,0.75l-0.17,0.41l-0.92,-0.73ZM258.36,488.9l1.55,0.79l1.92,2.59l-2.08,-1.07l-1.4,-2.31ZM260.5,503.05l-0.08,-0.1l-0.01,-0.04l0.22,0.22l-0.13,-0.07ZM260.33,464.49l0.13,-0.07l0.13,0.38l-0.19,-0.26l-0.07,-0.05ZM259.98,464.39l-0.01,0.01l-0.01,0.0l0.02,-0.01l0.0,0.0ZM239.94,463.76l4.46,3.03l0.42,2.33l3.02,2.41l0.53,1.42l2.17,0.95l0.27,1.03l0.99,-0.26l-0.8,0.99l0.74,1.78l-0.15,0.15l-4.7,-3.4l-2.97,-3.86l-3.3,-1.75l-0.68,-4.8ZM239.82,463.6l-0.11,-0.11l0.08,0.0l0.03,0.11ZM249.73,484.98l-0.36,-0.21l0.22,-0.22l0.15,0.15l-0.01,0.28ZM248.9,471.31l0.12,-0.3l0.23,0.56l-0.28,-0.17l-0.07,-0.09ZM231.71,419.38l0.13,-0.95l3.81,0.04l1.46,1.76l1.46,-0.67l2.49,1.91l2.53,-0.17l3.91,3.52l1.28,0.03l-1.86,1.38l-0.31,-2.06l-5.51,-1.14l-1.4,2.17l-3.42,0.26l-3.4,-3.24l-1.18,-2.85ZM238.86,473.95l1.5,0.93l1.01,2.03l-3.07,-1.85l-0.52,-1.11l1.07,0.01ZM237.27,473.97l-0.01,0.0l-0.09,0.02l0.12,-0.04l-0.02,0.02ZM237.79,472.78l0.01,-0.01l0.01,0.0l0.0,0.01l-0.01,0.0ZM237.54,471.86l0.16,-0.41l0.41,-0.02l-0.39,0.57l-0.18,-0.13ZM232.0,448.06l0.34,-0.46l3.05,2.76l1.19,0.05l0.33,1.73l-2.66,-1.29l-2.25,-2.79ZM220.59,441.9l6.88,7.19l1.88,-0.03l1.63,2.27l1.39,0.41l1.18,1.38l-0.42,1.84l-2.3,-2.1l-2.88,-0.63l-2.49,-3.25l-0.82,0.07l-0.46,-1.68l-3.49,-3.5l-0.1,-1.98ZM229.57,453.27l0.0,-0.03l0.01,0.01l-0.01,0.02ZM230.57,450.7l0.0,0.0l0.0,-0.01l0.0,0.0ZM223.35,444.35l-0.01,0.0l0.0,-0.01l0.01,0.01ZM227.86,404.9l0.14,0.05l0.04,0.08l-0.14,-0.05l-0.05,-0.08ZM226.96,461.97l0.16,-0.16l-0.04,0.16l-0.12,0.0ZM211.65,394.49l2.04,0.27l2.47,3.67l4.6,2.69l2.82,2.6l-7.38,-3.61l0.19,-0.86l-3.45,-2.49l-1.3,-2.27ZM215.04,448.42l-2.8,-1.98l2.97,0.97l3.42,2.33l1.7,1.78l-5.29,-3.09ZM214.63,443.5l1.79,0.52l1.91,1.59l0.88,1.32l-4.59,-3.43ZM189.24,427.31l0.78,-0.57l2.36,0.82l0.33,-0.73l-1.47,-2.14l0.63,-0.33l4.43,3.82l1.05,0.11l0.37,0.09l0.2,0.18l-1.84,0.98l-3.14,-1.75l0.41,2.99l-0.83,-0.05l-2.53,-1.65l-0.76,-1.77ZM197.24,430.5l0.99,0.3l0.57,-1.16l5.09,5.04l2.42,0.31l4.06,3.46l0.94,-1.63l1.45,0.19l1.62,2.32l-2.02,2.29l-1.95,-1.44l-1.31,0.05l0.49,-0.8l-1.66,-1.31l-2.43,0.0l-1.39,-1.86l-3.41,-1.55l0.11,2.32l-3.56,-6.52ZM203.82,441.37l-0.96,-0.29l-1.83,-3.68l3.32,4.01l-0.52,-0.05ZM205.93,388.74l1.33,0.13l1.65,2.66l-2.61,-2.03l-0.37,-0.77ZM207.84,409.16l-1.23,-1.05l-0.08,-0.63l1.81,2.05l-0.49,-0.37ZM206.64,445.11l0.0,0.0l0.0,0.01l0.0,0.0ZM190.82,410.49l-0.64,-0.39l3.08,-0.46l1.91,-1.33l-1.55,-2.77l0.5,-1.48l-0.65,-1.86l2.28,-1.55l1.29,0.31l2.68,3.49l-1.56,0.66l0.67,1.23l-1.72,1.04l4.24,5.61l-0.56,1.95l-2.37,-0.53l-0.58,0.62l-4.81,-3.92l-2.21,-0.63ZM197.71,437.79l0.01,-0.01l0.05,0.0l0.0,0.03l-0.06,-0.01ZM194.44,437.59l-0.35,-0.33l0.65,-0.57l0.5,0.74l-0.81,0.16ZM188.61,398.54l0.0,0.02l-0.02,-0.02l0.02,0.0ZM177.63,404.67l0.38,-1.54l1.42,-0.87l3.0,0.74l1.37,1.63l-0.92,1.88l0.42,3.0l2.86,1.49l1.14,2.65l-1.0,0.26l-2.22,-1.97l-1.26,-0.06l-1.87,-5.63l-3.01,-0.61l-0.32,-0.98ZM181.92,425.61l-0.53,-0.61l0.86,-0.33l0.91,0.67l1.51,-0.4l2.08,2.02l-1.49,-0.45l0.01,1.45l-3.36,-2.34ZM165.97,413.68l1.42,-0.57l1.9,2.74l4.31,1.65l3.53,3.86l-2.51,-0.37l-3.4,-2.46l0.49,-0.43l-0.7,-0.85l-3.65,-1.4l-1.39,-2.17ZM164.26,411.04l0.05,0.04l-0.06,0.04l-0.03,-0.03l0.05,-0.04Z\",name:\"Zadarska\"},\"hr-kz\":{path:\"M358.03,52.3l0.16,7.73l7.06,1.81l2.25,1.76l0.87,2.49l6.08,0.27l1.57,2.42l6.0,0.01l8.21,-1.89l2.08,0.68l0.83,2.61l5.8,-0.28l3.54,-3.83l3.86,-1.84l1.11,0.53l-1.11,1.88l0.53,1.09l6.27,0.59l-0.96,2.54l2.41,3.67l-0.54,1.42l0.71,0.78l-1.77,3.43l1.3,2.89l-1.36,2.32l0.68,1.85l1.42,0.57l-0.25,2.26l-6.2,5.23l-0.09,1.44l1.29,2.03l-6.09,0.77l0.33,1.83l2.5,2.38l-2.62,-0.61l-2.23,1.09l-1.54,4.82l-5.03,0.17l-1.73,2.12l-3.21,-0.12l-6.46,2.58l-12.88,7.39l-0.44,-4.99l-4.82,-4.75l-4.75,-2.43l-6.37,-1.56l-3.61,3.53l-0.9,2.56l-3.9,-3.45l-2.34,0.28l-0.22,-1.21l-1.93,-1.49l-6.34,0.89l-1.39,-5.42l2.62,-7.92l-4.29,-4.1l-10.44,-4.86l-2.55,-4.09l-0.33,-7.15l1.57,-2.68l4.44,-4.33l0.85,-2.34l-0.35,-1.71l7.44,-0.13l3.39,2.04l5.37,-0.11l4.24,-2.34l1.4,-2.09l0.45,-6.34l6.34,-0.25l4.06,-2.45Z\",name:\"Krapinsko-Zagorska\"},\"hr-sp\":{path:\"M577.88,224.57l3.48,-0.48l0.11,-2.81l3.61,0.3l4.65,-1.57l3.74,2.19l4.81,4.98l3.82,1.22l0.41,2.75l2.5,3.87l6.39,1.88l2.49,2.63l4.64,2.3l15.02,-0.21l1.92,3.12l0.0,4.27l1.28,2.09l-1.86,2.91l3.39,2.49l5.14,0.76l2.0,-0.6l0.66,-2.47l1.77,-1.05l0.79,-1.73l3.33,0.63l3.87,-1.64l1.12,-2.52l6.26,-4.88l1.52,-5.17l3.71,-0.96l15.59,1.1l12.8,4.51l5.21,0.3l1.15,1.53l5.27,0.66l2.12,2.97l5.02,2.24l2.18,-1.44l4.54,-0.78l5.44,-3.29l8.01,-0.18l3.91,1.31l1.46,2.06l4.46,0.87l1.58,1.76l3.18,0.83l1.83,-0.78l2.06,1.76l1.62,-0.92l3.44,0.83l2.4,-1.02l1.56,-3.81l2.94,1.27l1.49,-0.31l-0.36,5.39l-3.32,1.1l-1.78,1.74l-6.27,10.47l2.0,4.36l3.4,2.12l2.72,3.04l-2.41,4.48l-2.02,-2.51l-5.98,-0.45l-5.86,-5.17l-0.75,-2.12l-2.84,-1.82l-14.52,0.97l-1.06,-1.69l-4.6,-0.38l-2.78,-4.38l-4.98,0.46l-2.4,2.03l0.68,5.32l-1.11,2.04l-2.29,1.56l-2.84,0.61l-3.77,-1.65l-6.93,-0.08l-2.57,-3.33l-2.23,-1.11l0.48,-2.44l-2.18,-3.38l-2.16,-0.11l-2.19,2.32l-3.26,-3.53l-2.28,-0.75l-3.26,1.8l-3.63,5.32l-2.86,1.06l-1.62,6.19l-9.12,5.89l-2.52,0.19l-2.87,-0.77l-8.06,-5.8l-3.11,0.07l-11.7,-8.53l-4.06,0.49l-4.91,3.8l-3.97,-0.64l-3.36,0.66l-1.14,-0.65l-0.28,-2.22l-0.67,-0.21l-3.1,3.54l-1.68,0.61l-6.12,-1.65l1.22,-3.68l-3.01,1.29l-2.78,-0.54l-1.14,-4.92l-3.16,3.82l-7.65,-0.41l-4.44,-1.61l-1.35,-1.83l-3.25,-1.71l-0.63,-2.01l-2.34,-0.19l-2.16,-1.39l-3.91,6.86l-13.32,-1.52l-5.18,-5.55l-0.04,-1.42l-4.69,-3.36l-1.93,-0.45l2.15,-4.79l6.37,-3.39l3.7,-5.45l3.47,-1.06l0.0,-1.34l-1.63,-2.05l0.74,-1.6l1.85,-0.39l0.5,-1.06l-2.69,-3.2l7.26,-6.95l4.34,-0.46l3.37,2.65l4.98,1.7Z\",name:\"Brodsko-Posavska\"},\"hr-pg\":{path:\"M99.09,202.76l11.96,-0.25l35.81,-8.86l4.13,-3.72l1.22,-11.57l5.83,-2.48l1.43,-1.66l2.15,-7.4l3.0,0.96l2.0,-0.49l4.02,1.75l-2.47,3.81l-0.81,2.94l4.87,2.6l0.17,2.51l5.17,1.82l1.24,1.54l1.39,3.3l-1.16,4.53l2.35,1.78l3.49,-0.64l3.03,2.46l9.46,0.66l1.43,2.59l0.03,3.54l1.67,1.39l7.02,-0.94l4.42,-1.7l1.86,-3.85l-0.13,-4.85l1.94,-0.94l2.47,0.47l7.46,5.72l2.51,-0.04l3.82,1.51l2.71,-1.05l2.35,0.43l3.07,1.87l1.41,3.5l6.31,3.1l2.54,3.21l2.24,1.38l8.37,-1.21l0.85,-2.29l1.75,-1.21l0.54,2.81l-0.55,3.96l-2.39,6.11l-5.12,6.06l-0.39,6.0l-2.29,1.21l-5.98,0.8l-1.93,3.05l-1.88,1.1l-1.22,-0.56l-1.03,-2.35l-5.79,0.05l-2.01,-0.72l-2.34,-3.64l-4.66,1.34l-1.79,3.86l0.79,2.19l-3.36,2.37l3.66,4.72l-0.06,2.63l-1.3,1.35l1.98,5.27l-1.58,6.18l0.09,3.47l5.06,5.93l1.54,6.43l-3.18,3.15l-5.0,-0.92l-3.18,1.16l-1.73,-2.32l-2.04,0.08l-5.87,3.14l-0.89,2.12l-4.35,-8.37l0.32,-3.86l-2.0,1.05l-0.06,-1.56l-2.78,0.27l-4.18,-2.35l-6.95,-1.87l-3.32,-2.8l-0.03,-1.01l-4.61,-2.86l-4.75,-4.91l-6.82,-3.46l0.74,-1.01l-0.61,-1.48l-4.67,-3.24l-1.04,0.14l0.21,-1.42l-1.8,-1.54l0.2,-2.77l1.88,0.55l0.74,-0.58l-2.22,-2.63l-4.99,-2.81l0.01,1.56l3.19,3.15l-2.41,0.86l-6.42,-3.07l-1.53,-2.5l-4.4,-2.51l-15.27,-4.12l-3.78,-1.62l-0.49,-0.99l-7.89,10.0l-2.52,10.0l-2.98,7.72l0.13,3.76l-1.65,3.11l0.33,1.06l-0.86,1.5l-3.32,-2.13l1.34,-9.92l-2.23,-6.38l0.8,-3.51l-1.16,-5.51l1.65,-3.28l2.68,-1.68l-1.08,-2.83l-0.12,-4.03l-2.29,-1.64l-0.29,-1.32l3.25,-3.36l-9.45,-5.35l-2.94,-4.84l0.34,-3.84ZM177.68,332.67l-0.93,-1.29l1.17,-1.34l2.66,0.53l3.68,2.37l0.53,-0.97l-1.43,-3.44l3.43,1.92l0.98,-0.7l-2.68,-3.85l-2.44,-1.04l-2.35,-3.15l3.46,0.49l3.0,1.87l0.61,-0.76l-0.8,-0.87l0.09,-1.84l1.74,1.14l1.53,-0.69l1.07,1.68l0.79,-0.16l-0.31,2.05l-2.21,0.58l-0.57,1.15l13.58,11.67l5.8,7.33l0.24,1.79l-2.14,1.08l-1.88,-0.27l-7.92,-8.55l-3.72,-1.4l-3.85,-2.85l-0.74,0.87l1.19,1.22l-1.84,-0.27l-0.66,0.73l-1.98,-1.35l-1.3,1.91l0.01,0.99l0.39,0.39l-0.03,0.0l-1.28,-1.21l0.97,-1.05l-3.01,-1.44l-0.59,-1.35l-0.65,0.42l-1.6,-2.33ZM183.88,339.64l0.03,0.0l0.0,0.03l-0.03,-0.03ZM189.48,337.38l-0.08,0.0l-0.13,-0.13l0.03,-0.04l0.19,0.16ZM192.02,322.33l0.04,0.04l-0.1,0.03l0.06,-0.07ZM200.03,345.49l1.88,1.66l2.65,3.69l-1.85,-0.88l-3.73,-5.3l1.05,0.83ZM199.01,320.95l4.49,0.23l0.45,1.52l-1.23,-0.36l-0.95,1.8l-0.46,-1.41l-1.35,-0.09l-0.94,-1.7ZM193.99,307.89l-0.21,-2.86l6.2,2.77l2.54,2.42l0.93,3.15l-7.54,-3.38l-1.93,-2.1ZM203.45,313.38l0.03,0.04l-0.01,0.0l-0.03,-0.04ZM142.89,277.87l0.39,-2.47l5.34,-1.4l-0.67,-3.65l1.56,-1.63l4.22,2.35l3.06,-1.14l0.57,-5.26l2.91,-3.73l-1.64,-2.56l-0.2,-3.2l1.67,-0.66l-2.73,-4.16l3.18,3.79l0.57,-3.73l-1.77,-1.94l1.2,0.26l0.9,-1.67l0.86,0.03l2.44,2.16l0.27,-1.68l2.75,2.15l-1.62,-0.8l-1.13,0.39l7.14,11.13l-2.87,-0.39l-2.04,4.02l2.08,0.69l4.39,-2.13l4.61,2.81l0.65,-0.79l-0.47,1.28l1.02,1.27l-1.65,2.23l-1.27,0.14l1.09,2.1l-0.34,3.73l1.39,2.34l4.65,2.84l1.26,0.05l0.95,-1.32l1.87,1.69l0.78,-1.22l-0.21,1.81l1.56,0.98l-0.72,2.24l0.55,1.29l4.41,4.62l3.87,1.82l-0.46,0.9l0.9,1.13l0.56,-1.03l0.97,0.82l1.3,2.93l-2.54,-2.33l-0.53,0.71l1.82,2.23l-0.39,1.07l-8.18,-1.09l-1.24,2.21l2.44,3.23l-3.98,0.94l-6.74,-2.6l0.17,-1.04l-2.04,-2.02l-3.7,0.26l-3.49,-2.14l-2.42,-0.32l-0.4,-1.25l2.81,-0.73l-0.76,-3.65l1.01,-5.03l-0.85,-1.18l-1.26,0.32l-1.88,2.31l2.2,2.25l-6.22,-2.44l-2.52,2.65l-5.61,-0.67l-2.28,-1.46l-1.46,0.52l-0.5,-1.19l-0.68,0.6l-2.24,-2.86l-2.1,-0.85l-3.64,-3.7l-0.89,-2.18ZM178.86,277.12l-0.01,0.0l0.0,0.0l0.0,0.0ZM172.52,261.41l-0.01,0.0l0.0,0.0l0.01,0.01ZM189.24,316.49l1.51,-0.7l-0.21,-1.35l4.83,4.42l-4.72,-0.35l-1.41,-2.01ZM181.28,350.29l-0.28,-0.26l0.04,-0.23l0.38,0.44l-0.13,0.06ZM177.66,304.34l1.02,0.45l0.0,0.4l-0.57,0.01l-0.45,-0.85ZM168.52,394.8l0.01,1.19l-0.08,0.0l-0.45,-1.19l0.53,0.01ZM165.59,376.88l-0.28,-0.39l-0.13,-0.52l0.48,0.83l-0.07,0.07ZM164.87,354.46l-0.23,-0.29l0.0,-0.05l0.29,0.27l-0.07,0.08ZM158.08,394.28l1.24,-1.62l3.98,1.8l0.71,1.22l-2.25,-0.51l-1.41,1.19l-1.53,-0.57l-0.73,-1.49ZM161.75,303.04l0.52,-0.01l1.31,1.18l-1.43,0.07l-0.41,-1.24ZM160.94,385.25l1.09,0.23l-0.05,1.14l-0.54,0.0l-0.51,-1.37ZM162.79,387.4l0.0,-0.14l0.04,0.1l-0.04,0.03ZM161.78,245.21l0.49,-0.48l0.54,0.26l-0.28,0.74l-0.75,-0.52ZM159.9,391.59l0.24,-0.23l0.29,0.5l-0.22,0.0l-0.31,-0.26ZM161.45,392.76l0.42,-0.45l0.62,0.73l-0.86,-0.15l-0.18,-0.12ZM153.18,297.32l-1.87,-1.28l2.34,0.62l2.6,-1.47l4.59,5.15l-2.26,0.36l-5.4,-3.38ZM159.55,390.07l0.0,0.07l-0.03,-0.11l0.03,0.03ZM119.94,271.21l-1.05,-1.35l3.62,-4.08l0.52,-3.46l1.46,-1.61l1.98,-0.78l0.27,1.46l2.77,-0.36l2.3,1.11l1.3,3.09l-2.27,2.84l0.5,7.81l1.43,1.84l4.16,11.68l4.64,6.48l1.69,1.15l4.56,-1.11l2.27,3.71l0.08,0.73l-1.09,-0.1l-0.88,1.4l-1.39,0.01l0.5,1.81l-1.39,3.65l0.78,2.1l-2.34,6.67l3.57,12.57l-0.04,2.75l-2.33,-0.73l-0.78,1.85l4.32,6.08l0.44,2.69l-1.4,0.35l-0.92,2.69l2.06,5.45l5.33,6.05l-1.5,4.05l1.43,-0.48l1.45,2.27l0.97,-0.91l2.45,0.7l-2.08,0.19l-0.19,1.8l-1.5,-0.92l-0.24,2.69l-3.11,-2.49l-0.44,0.61l1.81,2.08l-1.22,0.98l-2.64,-1.7l-2.1,-3.02l-1.14,0.54l0.26,-1.38l-1.91,-0.98l-2.74,-4.85l-1.52,-1.31l-0.99,0.49l0.63,-1.12l-1.18,-0.35l-0.3,-1.62l-1.81,-1.42l1.01,-3.19l-1.35,-2.66l1.09,-3.35l-2.17,-1.59l-0.58,1.05l-1.21,-1.62l0.0,-4.21l-1.09,-1.77l0.68,-2.94l-2.12,-3.0l-1.12,-0.26l-0.67,1.45l-0.65,-0.21l0.05,-1.82l-1.27,-0.62l0.41,-4.98l-2.14,-3.83l0.38,-2.04l-1.76,-4.27l-1.52,-0.11l0.63,-0.75l-0.34,-3.96l0.0,-0.19l0.1,-0.11l0.16,-0.5l-0.03,-0.03l1.77,-1.8l4.28,6.65l1.12,0.0l1.5,1.92l1.08,-0.86l3.17,1.12l1.37,-0.88l0.59,-2.32l-1.4,-3.95l-1.14,-0.99l1.09,-1.73l2.88,1.97l0.69,-0.76l-1.32,-2.53l-2.31,-0.16l0.26,-1.14l-1.75,-2.18l-0.31,-2.02l-2.64,-0.95l-1.68,-1.66l0.09,-1.92l1.35,-1.64l-1.17,-4.98l-2.25,-2.27l-4.82,-1.56l-1.58,-4.8l-2.88,-1.9l0.43,-1.47ZM136.21,350.19l1.21,1.63l-0.54,1.73l0.75,3.38l-0.62,1.54l0.5,1.6l-1.18,1.5l0.42,1.92l1.3,0.71l1.91,5.39l2.59,2.8l-1.48,0.68l0.49,0.99l-1.95,-2.38l-0.96,-0.1l0.02,2.85l-1.45,-0.26l-0.43,1.19l-3.46,-1.59l1.26,-2.12l-0.54,-2.38l0.66,-0.58l0.74,0.69l1.58,-2.78l-1.44,-1.81l-0.29,-2.54l-3.24,-2.59l-2.44,-4.54l-0.81,-8.5l1.11,0.11l1.4,2.15l1.85,0.83l1.41,-1.04l1.6,1.53ZM143.19,373.74l1.22,0.7l0.12,1.01l-0.17,0.0l-1.17,-1.71ZM144.94,375.56l-0.04,-0.04l0.08,0.04l-0.04,0.0ZM145.68,376.16l-0.2,-0.19l-0.34,-0.34l0.74,0.52l0.0,0.1l-0.2,-0.09ZM145.9,376.28l0.03,0.03l0.0,0.02l-0.03,-0.05ZM147.92,378.32l1.52,1.66l0.91,-0.06l-0.13,1.31l4.38,0.77l1.67,1.71l-0.17,1.31l2.86,2.72l-0.76,1.63l-2.26,0.88l-1.79,-2.69l-0.61,0.4l-0.05,-0.96l-1.25,-0.22l0.4,-1.2l-1.1,0.26l0.02,-1.48l-6.0,-3.32l1.21,-0.8l-0.98,-0.9l-0.86,0.64l-0.19,-2.22l3.23,2.28l-0.05,-1.71ZM146.18,376.79l0.0,0.0l0.01,0.01l-0.01,0.0ZM146.18,376.77l0.0,0.01l-0.04,-0.05l0.04,0.04ZM146.01,376.51l0.0,0.0l0.0,0.0l0.0,0.0ZM146.14,376.72l0.0,0.01l-0.03,-0.03l0.0,0.0l0.03,0.03ZM146.1,376.68l0.0,0.0l0.0,0.0l0.0,0.0ZM145.97,376.41l-0.01,-0.02l0.01,0.01l0.0,0.01ZM142.76,377.06l-0.26,-0.26l-0.11,-1.38l0.96,1.07l-0.6,0.57ZM142.19,376.97l0.0,-0.04l0.04,-0.07l0.04,0.04l-0.08,0.06ZM143.08,373.46l0.0,0.0l0.0,0.0l0.0,0.0ZM123.51,304.04l0.02,-0.02l0.03,0.03l-0.04,-0.01ZM159.57,403.91l-0.45,-0.39l0.0,-0.79l0.57,-0.01l-0.12,1.19ZM157.54,337.13l0.2,-0.2l0.08,-0.44l0.01,0.84l-0.28,-0.21ZM122.44,369.11l0.84,0.78l1.41,0.97l-1.55,-0.89l-0.71,-0.86ZM125.25,371.34l0.03,0.26l-0.56,-0.7l0.37,0.34l0.16,0.1ZM126.8,373.51l0.21,-0.2l1.09,0.8l-0.37,0.16l-0.94,-0.76ZM126.03,372.41l-0.04,-0.09l-0.04,-0.05l0.04,0.0l0.03,0.14ZM120.74,382.27l0.07,-0.07l0.32,-0.06l2.05,0.67l0.9,1.71l0.78,-0.12l-1.18,1.49l-1.98,-1.55l-0.97,-2.08ZM126.0,384.24l0.01,-0.01l0.0,0.01l-0.01,0.0ZM123.3,336.9l1.05,-2.54l-0.4,-0.83l1.5,-1.8l-1.1,4.79l-0.6,0.86l-0.45,-0.48ZM125.45,331.72l-0.01,0.02l0.0,-0.03l0.01,0.01ZM112.95,362.45l-0.24,-0.79l2.35,-0.92l-1.18,-1.8l-0.21,-2.56l1.81,-1.26l1.88,-3.14l2.11,-1.14l-0.63,1.25l1.18,0.4l-0.38,1.63l0.93,0.57l-1.73,1.62l-1.95,-1.76l0.22,2.02l-0.94,-0.78l-0.69,0.5l1.78,3.04l-1.76,-1.52l-0.44,0.71l4.67,7.47l-4.02,-2.74l-2.49,0.09l-0.26,-0.88Z\",name:\"Primorsko-Goranska\"},\"hr-ps\":{path:\"M613.39,188.81l4.87,1.88l2.01,1.9l0.65,2.1l2.99,1.21l6.05,1.02l2.78,-0.51l5.45,2.98l2.6,-1.42l6.58,1.09l5.03,3.78l2.77,-0.04l2.77,-2.28l2.37,-0.07l3.09,2.13l-0.23,1.96l2.06,1.51l6.17,0.76l7.75,6.37l4.21,-0.46l2.11,3.63l3.33,0.49l2.78,-1.03l3.66,0.12l2.95,3.56l-0.08,1.54l-5.26,2.79l-1.11,1.99l3.1,1.85l3.1,5.85l-6.12,5.92l-13.19,-3.09l-9.67,-0.32l-4.01,0.64l-2.37,3.93l-0.01,1.93l-6.18,4.78l-1.02,2.42l-3.48,1.51l-3.65,-0.53l-4.18,5.68l-5.27,-0.57l-3.03,-2.09l1.77,-2.76l-1.28,-2.12l-0.04,-4.39l-2.32,-3.58l-5.22,-0.47l-9.69,0.76l-4.65,-2.3l-2.57,-2.68l-6.21,-1.75l-2.33,-3.61l-0.56,-2.99l-3.99,-1.35l-4.72,-4.92l-3.99,-2.33l-5.01,1.55l-3.77,-0.26l-0.73,1.06l0.34,1.78l-2.53,0.43l-5.0,-1.64l-3.1,-2.57l-4.22,-0.15l-3.53,2.24l-4.5,5.05l-2.48,-0.32l-3.92,1.42l-1.58,-4.47l-11.3,-4.93l0.89,-3.86l1.53,-1.47l-0.21,-2.49l-2.65,-0.31l-0.98,1.07l0.26,1.77l-2.45,0.08l-2.08,-1.54l0.22,-2.49l-2.14,-2.36l-7.13,-0.13l-2.71,-4.04l-1.45,-5.7l3.13,-5.86l2.88,3.78l6.59,3.12l6.04,-2.68l4.67,3.64l3.33,-3.21l2.99,-0.41l4.62,1.41l1.58,-1.7l0.87,-3.23l3.05,1.1l0.83,1.45l4.45,3.1l17.13,-2.36l6.1,2.88l3.8,-0.05l3.77,-4.22l0.03,-2.13l1.85,-3.75l-1.07,-2.5l1.47,-0.04l0.98,1.26l2.26,0.44l0.94,1.4l1.97,0.78l1.16,-0.75l0.84,-3.2l1.92,-0.31l5.49,3.91Z\",name:\"Požesko-Slavonska\"},\"hr-bb\":{path:\"M513.43,95.48l3.12,1.36l-1.04,2.5l0.23,3.55l-2.16,2.75l0.28,0.65l5.5,0.26l3.67,-0.9l5.76,3.75l0.4,1.14l-1.54,6.42l0.53,0.45l2.89,-0.99l3.36,0.95l3.28,-1.87l1.39,1.67l-0.15,2.26l0.9,1.86l4.3,1.55l1.83,3.45l8.61,2.29l1.1,1.69l2.14,0.78l1.82,3.83l4.25,1.86l2.16,2.37l4.94,1.08l0.17,4.6l2.26,2.94l4.46,0.77l-0.83,2.18l0.54,1.16l2.41,0.23l1.78,-2.72l1.58,1.15l0.34,2.83l-1.84,3.61l1.65,1.17l2.4,-0.62l0.95,3.84l2.51,-0.6l1.15,-2.16l4.38,-2.34l2.07,1.71l-0.73,2.1l4.17,1.17l1.65,1.45l-0.03,2.94l-2.04,1.41l-0.28,3.79l-3.34,4.11l0.6,4.17l-3.69,0.71l-0.81,1.25l-0.4,1.93l0.87,1.97l2.52,0.82l1.16,2.01l-1.81,3.56l-0.01,2.05l-2.5,3.48l-4.13,0.31l-3.55,-1.28l-1.0,-1.45l-3.7,-0.21l-9.55,2.13l-5.49,0.28l-4.99,-4.44l-3.75,-1.39l-2.37,5.13l-4.29,-1.42l-3.24,0.42l-1.99,1.02l-1.14,2.05l-4.87,-3.53l-5.82,2.71l-6.19,-2.97l-3.4,-3.96l-1.42,1.0l-2.43,4.92l1.38,6.54l-2.89,1.8l-3.25,-6.09l-2.59,-1.83l-2.29,-0.44l1.47,-2.19l-1.93,-2.26l-0.32,-2.28l-3.37,-1.15l-0.74,-2.3l-2.39,-0.38l-1.11,-1.37l-1.95,-9.56l-5.98,1.54l-3.52,-1.16l-2.15,-3.82l-2.72,-2.45l-3.24,0.95l-1.59,-0.4l-1.44,-2.77l-5.83,0.56l-1.83,-0.95l-1.36,-2.28l-2.04,-0.44l-0.44,-2.39l-2.53,-2.8l-5.54,0.79l-1.4,-3.01l-3.08,-0.67l0.19,-3.88l2.43,-1.65l-3.56,-3.12l1.79,-0.8l0.2,-2.97l2.1,0.36l4.35,-2.01l4.67,3.18l2.78,-0.29l0.74,-0.95l-0.76,-1.34l0.21,-3.51l1.81,-0.67l2.45,-3.45l0.92,0.07l0.81,2.75l2.34,-0.8l1.79,0.68l1.59,-1.9l3.35,-0.81l1.34,-2.09l-0.01,-1.46l-2.39,-4.28l1.04,-13.26l-0.54,-2.62l2.13,-6.63l1.83,-2.06l-0.57,-4.57l9.17,-3.93l1.52,0.48l0.02,1.91l2.29,-0.31l4.97,-3.15l-0.2,-4.6l0.83,-0.08l5.1,1.47l-0.24,2.63l1.65,1.09l0.97,2.68Z\",name:\"Bjelovarska-Bilogorska\"},\"hr-ka\":{path:\"M222.87,240.55l3.3,-2.02l-0.73,-2.38l1.56,-3.39l3.17,-1.19l1.25,0.49l1.65,3.11l2.32,0.81l5.64,-0.08l0.59,2.04l1.85,0.9l1.97,-0.81l2.28,-3.45l5.76,-0.72l2.56,-1.32l0.83,-1.38l-0.14,-4.99l4.58,-5.04l2.84,-6.88l0.68,-4.48l-0.58,-3.08l4.18,-0.94l7.53,0.89l6.86,-2.82l3.33,-3.42l-0.11,-2.23l-5.94,-2.08l-5.9,-6.76l-0.72,-3.65l0.62,-2.63l-2.75,-4.23l0.36,-1.24l2.07,-0.83l0.87,-3.14l4.53,-2.2l-0.3,-1.19l0.98,-0.63l6.63,0.61l1.62,-3.09l-2.55,-3.09l-2.14,-0.97l-3.38,-5.88l-2.29,0.14l-5.25,5.35l-2.23,-3.39l-3.64,-0.26l-1.31,-0.92l-0.41,-1.57l0.75,-2.24l12.72,-5.15l-1.28,3.06l0.46,1.67l7.67,4.96l5.08,1.94l1.44,2.47l1.4,0.14l1.2,-0.95l2.59,0.92l3.77,5.52l5.25,2.38l-0.23,4.77l0.92,1.31l2.07,0.02l3.44,1.54l1.83,2.0l2.48,-2.88l4.36,-2.78l3.09,1.23l3.06,2.51l5.25,-0.29l4.38,2.87l0.75,3.77l3.74,2.48l2.35,2.72l1.79,0.54l0.44,3.04l4.51,-1.1l1.58,-2.84l4.0,-1.43l1.83,0.52l-0.25,2.16l0.69,0.95l4.62,-0.34l2.28,2.89l0.62,2.94l-0.64,3.45l-2.31,-2.75l-3.91,-2.29l-6.77,3.15l-0.05,5.22l2.69,0.99l-1.53,6.05l-2.52,3.41l0.37,2.53l-3.09,2.09l-3.55,-0.28l-2.22,2.91l0.42,2.15l2.79,2.91l0.88,4.26l1.54,1.04l-1.84,2.7l0.16,2.43l-1.54,2.25l-0.06,1.77l1.92,4.12l3.61,1.36l2.74,4.7l-3.12,1.32l-4.76,4.65l-1.77,2.99l1.31,8.88l-0.82,3.31l-4.06,5.74l1.75,1.93l1.95,7.07l2.23,3.09l-1.92,4.47l-3.68,1.43l-1.32,2.19l-0.07,2.83l-3.71,3.15l-2.18,-0.74l-5.26,-4.15l-2.91,0.89l-3.05,3.17l-2.57,-1.65l-2.25,1.97l-2.73,0.69l-1.78,-0.28l-2.03,-1.82l-1.59,0.89l-1.43,2.93l-1.51,-1.16l-6.43,0.51l-4.94,-2.19l-3.15,-6.59l-6.2,-7.57l-0.38,-2.01l-3.59,0.16l-0.91,0.74l-1.67,-0.99l-4.76,-5.24l-4.09,-3.08l-3.86,-1.66l-2.82,-3.09l-4.79,-3.2l-4.86,1.29l-2.98,2.73l-4.4,-0.16l-9.62,-4.61l-4.82,0.55l-0.68,-1.96l-4.8,-5.44l-0.07,-3.14l1.59,-6.32l-1.97,-5.22l1.25,-1.09l0.1,-3.0l-3.66,-4.65ZM307.37,308.02l3.65,1.46l2.87,3.62l-2.24,-0.16l-4.28,-4.92Z\",name:\"Karlovačka\"},\"hr-dn\":{path:\"M532.26,654.53l0.22,-0.02l0.27,0.26l2.17,0.05l0.8,0.29l0.95,1.34l6.24,3.21l14.12,-0.91l14.07,2.95l1.79,-0.31l1.7,1.38l2.56,0.1l13.33,6.42l7.51,2.55l1.3,2.0l-0.17,2.41l3.15,1.6l0.15,1.07l1.39,0.25l0.0,-1.23l1.72,1.89l3.45,-0.26l2.89,1.44l0.53,-0.72l-1.45,-3.1l2.94,2.08l8.12,3.36l1.5,-0.19l6.19,4.57l2.61,0.61l0.15,-1.07l1.38,0.46l0.71,1.73l8.15,5.14l1.74,-0.71l-6.12,-3.95l-0.16,-2.07l2.16,-1.52l-1.66,-1.67l-1.58,1.06l-0.61,1.84l-6.2,-3.4l0.34,-0.68l6.47,-4.74l9.22,0.9l6.76,3.92l4.09,-4.81l5.24,4.56l-0.01,6.35l5.35,3.33l1.26,3.1l8.0,2.85l8.47,5.75l0.71,2.25l5.82,1.32l2.3,3.46l6.01,2.98l-0.26,2.82l7.73,3.35l0.67,2.29l12.34,8.12l2.52,2.06l1.02,2.12l8.18,-2.58l9.68,1.3l2.49,3.41l7.14,5.84l0.16,5.02l3.18,12.14l3.87,3.14l0.21,1.95l3.35,3.18l-1.97,0.4l-1.27,2.19l-6.33,-6.52l-2.01,-1.13l-1.53,0.81l-0.86,-1.27l-1.64,0.76l-1.54,-1.07l2.11,0.26l-1.2,-2.02l-13.78,-8.35l-7.43,-3.31l-1.24,-1.75l-5.63,-3.78l-1.09,-2.42l-1.47,-0.88l1.45,-1.1l-0.27,-2.3l0.97,-0.39l-1.33,-2.6l-3.12,-2.04l-3.43,1.42l-4.68,-2.73l-2.42,-0.41l-1.26,-1.36l-2.38,0.18l-2.24,-1.36l-2.49,0.3l-1.36,-0.91l0.54,-0.85l-1.89,-0.97l2.47,-0.03l1.7,1.68l0.43,-0.59l-1.24,-1.85l4.1,-0.87l1.92,0.47l0.53,-0.64l-3.73,-0.88l-4.36,0.87l-2.8,-2.36l-1.27,-3.49l-1.08,1.22l0.53,1.78l-10.96,-4.98l-2.27,-2.95l-7.14,-3.05l-4.17,-3.04l-0.41,-1.6l1.17,0.05l1.15,-1.87l-0.62,-1.26l-3.44,1.98l-0.64,-1.32l-1.87,-0.7l0.71,-1.09l-1.05,-0.44l-0.4,-1.54l-3.7,0.86l-3.4,-1.43l-2.21,3.67l-4.47,-4.22l-6.07,-2.65l-2.68,-2.08l-0.82,0.85l0.29,1.31l3.71,1.13l4.67,3.41l0.54,1.42l-1.11,-0.9l-2.36,0.86l-1.58,-1.5l-1.13,0.68l-0.59,-1.07l-3.05,-0.46l-1.29,-2.14l-1.27,0.87l-3.65,-0.67l-7.94,-3.28l-12.28,-2.87l-10.39,-3.84l-0.16,-1.87l1.41,-0.05l0.9,-1.88l-4.55,-2.36l-0.94,-1.3l-2.78,-1.17l-0.69,0.78l-5.1,-0.07l-4.18,-3.36l-12.51,-4.79l-5.26,-4.32l-2.73,-0.05l-3.67,1.56l-10.66,-1.11l-1.44,-1.07l-4.15,0.15l-4.55,-3.36l-2.76,-0.31l0.97,-2.77l1.6,-0.75l-1.18,-1.4l-1.8,0.64l0.0,-2.3l-0.4,-0.4l-0.65,0.0l-0.72,-0.36ZM646.2,705.41l0.27,0.91l-1.6,-1.58l1.18,-0.82l-0.72,-2.46l2.33,2.57l-1.46,1.38ZM760.45,772.47l-0.42,-0.51l0.89,0.63l0.2,0.2l0.16,0.1l0.3,0.26l-1.14,-0.69ZM748.01,764.77l0.02,0.01l-0.02,0.02l0.0,-0.03ZM693.0,726.82l-0.09,0.06l-0.63,-0.05l0.38,-0.16l0.34,0.15ZM701.26,732.07l-0.11,-0.11l0.05,-0.14l0.2,0.2l-0.14,0.06ZM701.01,731.14l0.05,0.0l0.14,0.13l-0.03,0.03l-0.16,-0.16ZM700.65,730.85l-0.32,-0.11l0.05,-0.42l0.12,0.04l0.16,0.49ZM681.34,722.42l3.26,-0.57l1.39,2.06l-0.38,0.45l-0.85,-1.23l-3.41,-0.71ZM685.44,724.6l0.0,-0.01l0.15,-0.17l0.01,0.0l-0.15,0.18ZM673.08,720.95l1.74,-2.26l3.19,2.75l-2.4,-0.45l-0.94,1.27l-1.59,-1.31ZM671.79,716.64l0.14,-0.25l0.26,0.04l-0.24,0.24l-0.16,-0.03ZM651.74,708.65l-0.26,-0.26l-0.03,0.0l-0.01,-0.02l0.32,0.11l1.33,0.97l1.37,0.26l0.41,0.63l-1.47,-0.16l-1.65,-1.52ZM657.2,712.0l-1.0,-0.88l1.96,-0.05l-0.64,0.57l0.46,0.73l-0.78,-0.36ZM655.0,710.41l0.49,-0.15l0.6,0.84l-0.52,-0.41l-0.57,-0.27ZM662.56,713.93l-1.02,-0.72l0.78,-0.45l-4.65,-4.74l3.42,0.51l1.48,1.62l4.49,1.99l3.17,3.05l-0.92,0.26l0.2,1.2l-1.05,0.81l-5.9,-3.54ZM657.96,712.44l0.09,0.07l-0.02,0.0l-0.07,-0.07ZM647.64,706.32l1.0,-0.24l0.59,0.79l-0.41,0.04l-1.18,-0.59ZM582.09,703.29l0.08,-0.76l4.33,-2.54l1.58,0.46l1.77,-1.02l0.5,0.41l-0.89,1.18l-1.98,0.2l1.03,1.26l9.21,0.05l1.39,1.32l1.08,-0.33l20.64,5.32l1.12,2.54l6.88,0.04l0.65,1.38l2.93,-1.17l0.39,2.03l2.01,-0.86l8.95,3.95l-1.82,1.81l-2.84,-0.88l-0.44,0.91l-2.46,-1.81l-8.11,-2.59l-11.47,-0.81l-4.86,-2.14l-3.1,0.29l-1.85,-1.51l-5.89,-1.89l-2.48,0.99l-1.06,-1.5l-3.32,-0.05l-2.4,-2.08l-1.6,-0.25l-0.99,1.83l-7.6,-3.05l0.63,-0.73ZM644.21,718.8l0.87,0.21l-0.31,0.8l-1.51,-0.06l0.95,-0.96ZM585.53,647.07l8.2,-4.85l-3.04,-3.68l-1.53,-3.55l-1.24,-0.56l-3.69,0.54l0.28,-0.99l3.72,-0.37l6.29,1.28l4.18,-1.48l2.27,-4.81l2.95,0.82l7.8,6.6l4.16,1.26l9.66,5.89l6.39,5.87l3.72,8.56l4.93,7.37l0.92,3.31l-2.33,1.08l-21.12,4.01l-4.37,-0.69l-0.99,0.72l-3.49,-2.33l-1.0,-2.4l-2.18,-0.56l0.18,-1.33l-2.87,-1.72l0.96,-2.39l-1.2,-0.87l-0.9,0.62l0.46,-1.96l-2.15,-2.23l0.84,-1.9l-2.21,-0.2l-0.66,1.43l-1.13,-0.61l4.16,-2.41l1.62,0.51l-0.21,-1.46l-1.56,-0.25l-5.48,3.47l0.96,-3.64l-1.28,-2.08l-1.12,1.72l-0.09,2.45l-1.07,0.07l-1.38,-2.35l-6.38,-5.88ZM600.49,658.22l-0.32,0.34l-0.07,0.0l0.39,-0.34ZM599.96,658.57l-0.03,0.03l-0.01,0.0l0.04,-0.05l0.01,0.01ZM607.61,677.32l-0.14,-0.16l0.07,-0.07l0.14,0.27l-0.08,-0.03ZM592.18,700.25l0.0,0.0l0.0,0.0l0.0,0.0ZM583.18,700.84l0.05,-0.12l0.2,0.19l-0.25,0.0l0.01,-0.08ZM476.03,666.05l-0.61,-0.07l1.65,-0.92l1.6,0.75l-0.83,1.15l-0.96,-1.22l-0.85,0.3ZM479.73,665.86l-0.11,-0.72l1.58,0.43l1.99,-1.07l0.5,0.56l1.32,-0.54l2.0,1.36l2.66,-0.67l1.5,1.68l6.88,1.38l0.65,1.12l3.39,-0.15l6.96,1.89l7.32,-1.12l2.29,-1.48l1.83,0.61l2.57,-1.11l9.85,-0.67l1.63,0.87l0.47,-0.87l2.64,-0.36l0.85,1.38l8.16,1.89l0.75,-0.46l0.77,1.12l3.01,-0.76l1.49,2.19l0.81,-1.0l0.35,0.32l2.11,3.38l-0.27,1.53l0.91,-0.46l0.39,1.12l2.62,0.42l-1.4,1.07l-6.64,0.81l-0.96,-0.61l-0.99,0.74l-10.78,-2.26l-0.5,-0.76l-10.77,-0.66l-10.42,4.89l-6.02,1.27l-1.81,-0.47l1.5,-1.47l-1.66,-0.71l-2.43,1.05l-8.62,-0.38l-17.33,-4.53l-0.19,2.47l-3.33,-1.55l0.93,-2.16l3.62,-1.07l-1.39,-1.53l5.71,-1.17l1.42,0.46l1.49,-1.28l-0.77,-1.3l-1.02,1.11l-0.8,-1.27l-3.4,0.16l-1.64,-2.14l-1.6,-0.49ZM522.09,679.14l0.0,-0.03l0.03,0.03l-0.03,0.0ZM558.39,678.61l0.0,0.0l0.0,0.0l0.0,0.0ZM559.68,677.68l1.4,-0.08l0.28,0.32l-1.22,0.87l-0.46,-1.11ZM561.36,677.88l0.0,0.0l-0.01,0.0l0.0,0.0ZM480.46,664.82l0.0,-0.01l0.0,0.0l0.0,0.01ZM555.15,671.55l-0.39,-0.63l2.02,0.42l-0.17,0.41l-1.45,-0.2ZM560.44,670.47l0.06,0.04l-0.02,0.02l0.0,-0.01l-0.03,-0.04ZM557.12,674.86l-0.15,-0.15l-0.19,-0.11l0.29,0.1l0.05,0.17ZM556.87,673.13l-0.3,-0.21l0.0,-0.06l0.19,0.04l0.12,0.22ZM528.44,705.21l0.46,-0.18l0.08,0.45l-0.27,0.11l-0.27,-0.38ZM525.96,706.95l0.41,-0.25l0.69,0.15l-0.83,0.27l-0.26,-0.17ZM526.04,704.77l0.09,0.0l-0.1,0.1l-0.01,-0.02l0.02,-0.08ZM501.28,706.36l0.74,-1.39l1.4,-0.41l0.95,0.73l-1.72,0.35l-0.22,1.57l-1.14,-0.85ZM502.52,707.68l-0.02,0.01l0.0,-0.03l0.02,0.03ZM504.95,706.01l1.24,-0.08l1.55,-1.51l0.58,1.17l1.28,-1.55l1.83,1.24l7.44,0.25l0.97,-0.65l2.35,1.06l-2.54,5.0l-5.35,2.44l1.05,-1.24l-0.96,-1.4l-0.68,1.01l-2.42,-0.96l-3.41,1.02l-0.15,1.38l-1.28,-1.59l-1.24,0.1l-1.19,-1.95l1.49,-0.86l-0.58,-2.89ZM503.34,709.58l0.0,-0.03l0.06,0.06l-0.03,0.0l-0.03,-0.03ZM498.99,704.41l0.94,-0.1l0.17,2.06l-1.14,0.06l0.03,-2.02ZM489.38,708.25l0.0,-0.05l0.22,-0.25l0.03,0.04l-0.26,0.26ZM482.02,678.58l0.08,-0.07l0.11,0.16l-0.22,0.0l0.04,-0.1ZM472.71,665.88l0.27,-0.2l0.19,0.13l-0.29,0.25l-0.17,-0.18ZM454.97,707.63l2.09,-2.81l2.75,0.51l0.84,0.97l-1.49,0.47l-2.14,-0.76l-2.05,1.63ZM420.73,773.12l-1.33,-0.77l4.01,0.82l-0.91,0.36l-1.77,-0.41ZM416.82,774.61l-1.35,-0.74l4.38,0.49l-0.62,0.61l-2.41,-0.36Z\",name:\"Dubrovačko-Neretvanska\"},\"hr-kk\":{path:\"M498.62,94.93l-0.15,-1.8l-2.09,-0.56l-9.73,4.1l0.49,4.99l-1.85,2.04l-2.1,6.35l0.05,8.94l-2.84,-1.77l-5.77,1.56l-2.7,-0.06l-1.49,-1.15l-2.45,0.81l-2.28,-2.93l-4.21,-2.15l-1.68,-2.59l-3.58,0.27l-1.96,-1.36l-6.5,4.02l0.41,-4.69l-1.41,-1.64l-3.12,-0.42l-0.05,-2.57l-2.02,-1.86l-1.02,-0.65l-2.53,0.77l-4.49,-3.31l-3.85,-0.29l1.44,-3.36l-0.99,-1.96l0.04,-5.03l1.97,-1.08l0.34,-1.7l2.59,-2.62l0.0,-3.61l6.37,-3.13l3.02,2.67l3.91,-0.45l3.5,-1.93l0.41,-3.64l8.61,-0.82l0.56,-2.41l3.81,-3.3l2.61,-1.09l6.31,1.42l8.01,-1.05l2.79,-2.03l1.14,-2.26l2.31,-0.48l2.58,-3.32l2.34,-0.82l1.79,-1.94l-0.52,-2.27l1.66,-1.49l-0.74,-2.57l0.64,-2.48l4.82,0.49l1.11,2.93l2.29,0.24l5.52,-7.95l-1.04,-1.82l1.32,-1.77l2.67,2.69l-0.76,1.24l0.2,3.07l1.81,5.82l9.25,7.43l3.44,0.41l0.43,3.25l4.46,0.18l12.02,6.45l5.98,1.72l0.93,1.22l4.48,0.26l-0.05,1.68l2.97,1.61l-0.35,0.88l1.17,2.11l-1.31,1.37l0.69,1.12l-0.64,2.21l1.81,1.05l4.03,-1.04l-0.2,2.29l2.07,0.35l-3.76,2.44l-0.27,1.0l5.02,0.25l0.93,2.24l-1.47,-0.54l-0.21,1.46l5.71,1.12l-1.51,1.6l0.2,3.32l5.49,-0.23l-0.73,1.18l-4.15,1.52l0.05,1.21l2.84,1.89l3.89,-0.2l-3.64,2.04l-11.63,-0.28l-3.05,1.73l-0.83,1.9l-4.98,4.53l-1.41,2.68l-3.82,3.03l-0.06,1.21l1.09,0.89l-0.94,4.29l-0.59,-0.01l-1.16,-0.58l-1.71,-3.27l-4.12,-1.39l-0.61,-3.86l-1.81,-2.14l-3.75,1.8l-3.2,-0.96l-2.52,0.8l1.28,-6.89l-6.37,-4.57l-8.79,0.58l1.81,-2.43l-0.2,-3.7l1.15,-2.63l-3.65,-2.06l-0.7,-2.41l-1.56,-0.94l0.38,-2.36l-1.14,-1.18l-6.2,-0.89l0.11,4.85l-6.06,3.14Z\",name:\"Koprivničko-Križevačka\"},\"hr-sm\":{path:\"M352.05,249.18l-2.35,-3.08l-2.79,-0.68l-1.76,-3.84l1.61,-3.55l-0.16,-2.43l1.91,-3.05l-1.69,-1.32l-0.84,-4.18l-2.84,-3.01l-0.33,-1.4l1.86,-2.52l3.35,0.34l3.61,-2.52l-0.32,-2.67l2.49,-3.33l1.59,-6.28l-0.7,-1.2l-1.98,-0.05l-0.39,-4.17l6.32,-3.21l7.95,6.11l8.02,0.47l2.57,-0.95l2.56,-2.42l6.01,2.28l2.72,-2.4l-0.45,-2.85l1.34,-1.33l2.89,0.17l0.66,-1.13l0.12,-4.74l-4.23,-3.09l-0.79,-2.15l3.91,-2.22l-0.09,-3.3l2.94,-3.36l3.3,-0.07l2.94,-3.44l1.76,-0.61l2.56,0.69l1.85,5.05l5.39,0.36l2.2,2.13l4.19,-2.21l0.18,-1.73l3.16,-0.33l2.15,-3.48l4.8,-1.59l-1.11,3.21l0.42,1.03l4.5,-0.98l3.21,0.41l2.56,2.09l1.04,2.27l4.9,1.08l3.96,4.72l1.31,0.34l3.38,-3.17l0.91,-2.28l4.76,-1.5l2.2,-2.72l3.84,0.18l2.78,-1.33l0.2,-3.01l2.07,-1.3l0.61,-2.89l2.73,1.04l4.63,-0.8l1.06,2.54l2.09,0.67l2.94,-1.02l2.5,2.23l2.45,4.05l3.83,1.22l5.63,-1.53l1.61,9.14l1.4,1.67l2.2,0.23l0.88,2.42l3.23,1.02l0.21,2.13l1.83,1.98l-1.45,1.15l0.07,1.31l5.03,2.46l2.81,5.88l1.88,0.42l2.4,-1.84l3.13,4.12l6.8,-0.04l1.78,1.96l-0.16,2.61l2.55,1.9l3.25,-0.21l0.1,-2.48l1.95,-0.28l0.17,1.89l-1.45,1.21l-0.81,4.84l11.44,5.06l0.96,1.59l-0.21,2.02l0.94,0.92l4.95,-1.34l3.71,3.71l-2.06,0.77l-0.99,1.99l1.78,3.1l-3.32,0.93l-3.74,5.48l-6.04,3.01l-2.77,5.41l0.46,1.17l1.88,0.36l4.34,3.12l0.08,1.37l2.76,3.22l-11.24,-5.41l-5.24,-5.14l-3.33,0.77l0.28,-3.28l-2.18,2.04l-0.84,-0.27l-1.29,-3.65l-1.34,-0.89l-0.59,0.44l0.55,4.04l-6.16,-0.74l-0.06,-2.62l1.77,-3.45l-2.05,-2.03l-5.45,6.06l-4.79,2.74l-2.52,0.38l-1.26,5.25l-3.1,1.62l-4.51,-0.67l-9.01,-3.04l-4.17,0.93l-6.67,-0.63l-8.98,-4.25l-12.43,1.22l-3.28,2.5l-3.37,9.48l-9.02,6.04l-2.46,2.75l-1.59,8.46l-1.64,1.8l-2.45,-0.14l-2.12,1.38l-1.05,1.59l0.46,3.53l-1.6,1.93l-11.55,-0.57l-2.11,-0.86l-1.09,-2.19l-3.67,-1.71l-0.83,-2.5l-4.18,-2.49l-0.92,-1.47l-9.85,-3.46l-2.01,-2.16l-2.31,-9.03l-4.05,-3.36l-0.48,-1.64l-1.97,-0.51l-0.55,-2.7l1.3,-2.57l-1.16,-1.36l-6.31,-0.32l-3.78,-3.51l-4.38,2.59l-8.87,0.34l-4.27,1.27l-2.22,-1.08l-1.01,1.03l-1.14,-2.11Z\",name:\"Sisačko-Moslavačka\"},\"hr-ls\":{path:\"M210.98,285.67l-0.74,-0.82l0.49,-3.12l5.84,-3.26l1.75,0.07l1.72,2.21l3.22,-1.16l2.61,0.93l3.48,-0.22l2.9,-3.6l-1.23,-4.51l4.72,-0.57l9.57,4.59l4.64,0.2l3.07,-2.68l2.92,-0.46l1.17,-1.13l4.94,3.25l2.87,3.13l7.92,4.72l4.82,5.28l2.03,1.2l4.06,-1.17l0.2,1.79l6.23,7.61l3.66,7.2l5.12,1.97l6.72,-0.46l3.78,5.32l2.74,2.11l2.01,-0.22l0.52,-1.44l-3.49,-3.79l-3.57,-1.42l1.79,-3.11l4.21,1.92l3.17,-0.78l1.98,-1.88l2.58,1.65l3.39,-3.3l2.69,-0.74l2.66,2.75l4.46,2.19l4.51,-3.65l1.68,2.06l-0.42,2.84l1.39,4.6l5.73,7.1l0.29,1.63l-2.71,2.84l-4.2,2.11l-1.02,2.12l3.49,9.04l4.9,2.53l2.6,2.46l2.03,0.04l3.14,-2.23l4.02,-0.84l1.96,-2.21l2.22,2.82l4.97,-0.49l1.9,6.03l3.31,0.65l1.77,4.53l11.0,7.82l1.81,2.51l-0.63,4.57l-3.29,3.47l-3.26,0.86l-0.78,1.46l0.1,3.2l1.96,1.37l11.34,3.5l5.38,7.29l-0.36,4.82l-4.45,1.92l-3.59,0.3l-2.53,-2.98l-1.72,-0.35l-0.61,1.09l1.24,5.19l-0.52,0.96l-2.46,-2.73l-1.17,-4.45l-5.15,-5.14l-3.75,-1.58l-4.35,-0.06l-2.1,0.4l-5.54,5.28l-3.95,0.65l-3.74,4.98l-9.23,3.51l-1.15,1.53l-0.54,4.17l2.24,3.02l-3.16,3.73l-0.27,1.46l3.23,1.97l3.94,-0.74l1.4,8.24l-3.98,4.96l-3.99,2.04l-14.07,-0.22l-4.35,-2.93l-4.12,0.28l-6.49,-2.07l-1.79,0.68l-5.91,-10.69l-20.66,-5.9l-9.19,-5.68l-2.22,-0.36l-1.2,0.75l-3.38,7.5l-9.23,-10.57l-3.13,-1.49l-1.0,-0.91l0.3,-0.76l-3.68,-2.21l-0.32,-0.97l-1.56,-0.12l-2.21,-1.83l0.45,-0.58l-1.93,-1.18l-4.01,-5.65l-4.02,-2.34l-3.83,-4.26l-4.07,-2.99l-0.81,0.71l-1.64,-1.93l-2.21,-0.63l-3.42,-5.48l-1.06,-4.79l-4.15,-3.8l-0.89,-1.53l0.67,-0.91l-0.42,-1.07l-4.71,-5.09l-1.02,-3.8l1.19,-0.64l-0.8,-1.73l1.01,-1.8l-1.35,-2.36l-0.63,-5.84l-0.97,-1.52l0.36,-9.05l0.44,-2.58l1.01,-0.29l0.59,-1.87l-0.42,-2.56l1.89,-4.58l1.22,-0.66l0.29,-3.42l1.9,-5.09l-1.65,-4.29l-2.75,-2.41l0.19,-1.93l-2.81,-7.05ZM212.39,342.72l-0.03,-0.01l0.05,-0.02l-0.02,0.03ZM231.34,374.14l0.0,-0.02l0.02,0.0l-0.01,0.01ZM190.31,350.0l20.18,22.25l1.31,0.64l0.48,-1.18l-2.9,-5.76l5.37,-0.77l0.04,1.86l1.57,-0.1l3.92,4.24l1.79,0.44l1.13,3.68l3.21,4.1l2.47,1.51l5.4,1.24l2.15,1.86l0.0,1.36l3.08,3.96l-2.04,-1.1l-1.15,-2.18l-1.14,0.37l-3.03,-1.24l-1.42,0.82l-0.95,-0.95l0.8,-0.85l-2.32,-2.02l-4.58,-1.14l-1.78,-2.34l-5.12,-2.53l-1.03,0.1l-0.53,2.21l-2.32,1.37l-1.85,-0.68l-0.06,-1.12l-1.62,-1.49l1.71,-0.12l0.44,-0.84l-3.15,-2.07l-0.66,-2.01l-3.81,-2.23l-0.26,-1.62l-6.81,-6.3l-8.17,-11.18l0.0,-1.75l1.66,1.56ZM239.6,389.43l-0.14,-0.04l0.05,-0.05l0.1,0.09Z\",name:\"Ličko-Senjska\"},\"hr-vp\":{path:\"M574.69,106.4l1.24,1.81l5.32,-1.83l1.91,1.05l0.27,1.67l-1.81,4.7l2.63,1.2l4.0,-1.09l3.66,2.93l2.75,-0.24l1.91,-1.86l2.69,-0.58l16.8,2.31l7.86,6.49l5.42,9.47l2.7,2.03l9.5,1.19l3.6,2.65l9.78,1.99l6.52,7.16l2.02,-0.39l0.88,-1.78l2.78,0.48l3.93,4.79l0.34,3.8l4.41,0.43l0.68,1.93l4.54,0.01l1.4,7.09l1.82,3.55l2.66,3.27l4.54,-0.09l0.05,1.7l-1.83,-0.84l-1.22,0.49l-4.33,7.22l-2.36,1.97l-2.46,4.91l-1.34,0.47l-3.61,4.54l-2.19,5.78l-6.67,3.07l-1.74,2.02l-2.34,-1.8l-2.49,-0.51l-1.94,0.61l-1.54,1.74l-2.87,0.17l-4.96,-3.76l-6.85,-1.13l-2.29,1.4l-5.49,-2.92l-2.95,0.49l-7.2,-1.35l-4.07,-4.73l-3.57,-0.96l-7.05,-4.95l-2.72,0.54l-1.43,3.69l-5.84,-3.84l-4.11,0.38l-1.12,-2.03l0.37,-1.58l4.46,-1.87l-0.55,-4.3l3.3,-4.0l0.34,-3.93l2.01,-1.26l-0.1,-3.74l-1.98,-1.71l-3.89,-0.98l0.98,-1.78l-2.59,-2.25l-5.2,2.47l-0.85,1.93l-1.58,0.83l-1.15,-3.8l-3.81,-0.15l1.95,-4.16l-1.22,-3.27l-2.17,-0.63l-1.56,2.65l-1.53,-0.12l0.36,-3.28l-1.51,-0.95l-3.16,0.02l-1.96,-2.64l-0.4,-4.96l-4.9,-0.99l-2.23,-2.37l-4.23,-1.85l-1.64,-3.66l-2.26,-0.91l-0.96,-1.62l-6.41,-1.99l0.94,-4.35l-1.14,-1.64l3.71,-2.88l1.44,-2.71l4.97,-4.51l0.74,-1.81l2.62,-1.55l12.58,-0.17Z\",name:\"Virovitičko-Podravska\"},\"hr-sb\":{path:\"M313.57,503.12l-0.15,-0.83l2.03,-1.62l4.43,4.24l3.02,1.26l4.35,-1.99l3.44,-3.82l2.07,2.0l6.19,3.13l2.56,-5.93l-0.56,-1.26l-1.64,-0.47l3.11,0.03l2.52,-4.68l-2.12,-2.36l0.77,-1.33l2.67,0.45l2.62,2.15l2.34,-1.72l0.69,-2.21l-3.5,-2.48l-1.44,-2.85l3.21,-0.88l3.64,-2.47l0.13,-1.17l-1.64,-1.82l4.08,-5.58l-2.69,-3.46l-6.57,-2.28l-0.7,-1.07l4.77,0.89l1.64,-0.57l2.59,-4.05l2.13,0.22l4.79,-5.45l3.51,-1.93l1.58,-3.21l5.54,-5.51l2.29,1.99l1.46,4.6l9.01,3.16l4.71,3.17l1.52,-0.06l1.17,-1.75l6.15,-3.06l1.49,-4.7l-0.13,-3.65l2.29,-4.14l4.64,0.81l8.75,-1.3l0.5,2.66l9.51,6.83l1.68,6.33l3.3,1.0l1.17,4.76l4.02,2.11l13.54,11.37l9.24,2.48l1.85,1.57l1.87,4.19l-10.22,-0.1l-4.5,2.1l-2.72,2.58l-4.62,0.77l-1.9,2.19l0.99,1.74l-0.65,0.57l-3.25,0.82l-4.28,-1.32l-2.5,5.76l0.85,2.59l8.71,5.52l5.93,6.69l-2.7,0.78l-4.65,3.91l-6.7,3.71l0.0,1.56l1.65,1.74l-3.61,3.47l2.74,3.39l-1.46,3.23l-1.9,1.04l-5.86,-0.73l-2.12,0.93l-4.13,-1.43l-2.78,4.68l-6.49,-2.1l-1.68,-1.34l-4.12,-0.52l-4.64,10.66l-2.39,1.7l-0.54,3.08l-4.03,-0.93l-3.45,1.94l-0.9,1.77l1.04,4.14l2.42,2.76l0.45,2.17l2.9,1.18l-1.46,1.12l-2.79,-0.87l-3.56,1.0l0.35,1.7l3.86,1.83l-0.63,0.8l-5.9,0.21l-1.61,1.5l-1.86,-0.08l-0.56,-1.07l-1.32,1.85l-0.43,-1.79l-1.33,0.76l-1.09,-0.65l1.16,-0.53l-0.35,-0.68l2.35,0.46l1.77,-1.32l-0.99,-3.24l1.3,-0.6l-2.38,-0.91l-1.07,0.71l0.52,0.88l-1.55,-0.2l-0.4,0.66l-0.02,-1.68l-3.74,-1.02l-1.2,-1.44l2.61,-1.09l0.13,-1.79l-1.16,-0.25l-0.58,1.02l-2.13,-1.28l2.32,-1.38l-0.45,-1.33l-1.08,-0.19l0.59,-1.46l-1.09,-1.62l1.18,-1.2l-1.3,-1.12l-0.15,-2.43l8.51,0.16l-4.74,-1.53l-1.06,-1.23l-4.32,0.1l3.42,-0.92l2.81,2.13l0.44,-2.71l-1.85,-2.51l-2.44,-1.37l-4.35,-4.92l-2.09,0.77l-4.31,-4.88l-8.29,-4.36l-2.6,-2.41l-5.01,1.23l-1.71,-1.59l-5.88,-1.64l-5.93,-5.77l-2.55,0.31l-3.6,-2.87l0.11,-0.56l1.61,1.82l1.2,-1.27l1.95,0.2l3.49,1.64l0.94,1.8l0.71,-1.43l-1.16,-2.45l-1.88,-0.29l-6.08,-4.95l-5.23,-0.92l-1.87,-1.79l-0.4,-1.71l-0.77,0.9l-1.34,-0.63ZM313.57,504.3l0.14,-0.06l0.15,-0.13l-0.16,0.21l-0.14,-0.01ZM325.64,515.96l1.27,2.08l-0.47,0.74l2.9,2.92l-1.57,0.17l-4.07,-1.69l-2.05,-3.66l-2.82,-0.91l-4.35,-5.81l0.91,-0.22l2.37,2.31l1.13,-2.16l0.27,1.39l1.01,-0.23l-0.12,2.34l1.41,1.74l1.27,0.15l0.79,1.8l2.13,-0.96ZM373.91,565.14l0.29,0.6l-0.88,0.13l0.0,-0.12l0.59,-0.61ZM379.97,571.91l0.57,0.72l-0.7,0.41l-0.4,-0.46l0.53,-0.66ZM375.5,567.0l0.09,-0.27l0.08,-0.1l0.0,0.37l-0.18,0.0ZM375.68,566.57l0.04,-0.04l-0.04,0.05l0.0,-0.01ZM375.79,566.45l-0.07,0.07l0.0,-0.15l0.07,0.07ZM366.55,539.22l0.04,-0.34l0.29,-0.05l0.05,0.07l-0.39,0.31ZM364.55,557.93l-0.25,-0.05l-0.15,-0.12l0.21,-0.05l0.18,0.23ZM364.11,542.76l0.0,-0.04l0.26,0.02l-0.18,0.2l-0.08,-0.18ZM354.04,535.31l-1.02,-1.2l1.86,0.77l0.5,-2.14l0.97,0.54l3.08,3.75l-0.25,2.48l0.75,1.27l-0.59,-0.55l-0.39,-1.15l-4.89,-3.78ZM359.91,540.8l0.04,0.04l0.0,0.11l-0.04,-0.09l0.0,-0.06ZM351.46,531.01l-0.17,-0.26l0.0,-0.04l0.37,0.4l-0.2,-0.1ZM351.42,540.5l-0.04,-0.1l0.0,-0.08l0.09,0.06l-0.05,0.12ZM348.13,528.17l-0.99,-1.15l0.19,-0.56l3.07,3.21l-1.89,-0.16l-0.38,-1.34ZM348.51,529.56l0.63,0.65l0.07,0.12l-0.5,-0.47l-0.21,-0.3ZM349.04,538.57l0.03,-0.03l0.0,-0.19l0.05,0.31l-0.07,-0.09ZM347.64,537.25l0.0,0.68l-0.07,0.07l-0.15,-0.86l0.22,0.11ZM343.11,529.78l-0.57,-0.84l0.59,-0.67l2.9,2.18l0.19,0.66l-1.53,-0.16l0.0,0.31l0.8,0.96l0.0,0.17l0.09,0.11l0.0,0.05l-2.46,-2.78ZM340.9,534.44l0.22,-0.99l4.79,3.29l-0.36,0.61l-1.26,-1.26l-1.26,0.56l-2.13,-2.21ZM343.85,539.95l-0.19,-0.19l0.14,0.1l0.05,0.09ZM340.44,539.3l0.14,0.0l0.08,0.06l-0.2,-0.04l-0.02,-0.02ZM341.06,547.73l-0.45,-0.1l-0.1,-0.18l0.19,0.0l0.37,0.28ZM320.75,538.89l1.76,1.18l2.39,-0.45l2.93,1.63l0.89,-0.61l3.85,4.1l2.21,0.15l0.49,0.53l-0.74,0.98l-2.15,-0.96l-0.45,1.03l-3.58,-1.51l-5.41,-4.82l-0.36,0.82l-1.88,-0.72l0.06,-1.35ZM335.32,545.47l-0.02,-0.02l0.99,0.05l1.62,1.05l-2.59,-1.08ZM336.1,546.81l-0.03,-0.08l0.02,-0.02l0.01,0.01l0.0,0.08ZM337.97,546.58l0.67,0.1l0.25,0.33l-0.59,-0.2l-0.33,-0.23ZM331.09,531.15l-0.23,-0.22l0.02,-0.03l0.46,0.2l-0.25,0.05ZM331.9,531.19l3.66,2.73l1.31,2.3l1.74,-0.37l-0.95,0.74l0.21,0.88l-1.09,0.3l0.38,0.7l-2.78,-1.17l-0.12,-0.72l1.87,0.77l0.57,-0.55l-4.62,-3.24l0.83,-0.48l-1.01,-1.89ZM325.68,532.75l0.72,0.34l0.25,0.89l-0.8,-0.8l-0.16,-0.43ZM327.62,534.76l0.47,-0.18l1.12,1.12l-0.11,0.09l-1.48,-1.03ZM329.71,535.99l1.12,-0.47l0.42,0.97l1.62,0.56l0.38,0.73l-1.89,-0.04l-1.65,-1.74ZM328.93,533.95l-0.05,-0.11l0.0,-0.23l0.12,0.1l-0.08,0.24ZM318.38,529.7l0.38,0.0l0.19,0.23l-0.42,0.05l-0.15,-0.28ZM316.36,508.09l0.07,0.0l0.04,0.12l-0.11,-0.12ZM316.66,509.36l-0.16,-0.02l0.07,-0.12l0.17,0.0l-0.08,0.14ZM314.05,507.64l0.22,-0.48l0.71,0.33l-0.58,0.44l-0.36,-0.29ZM310.71,505.33l-1.1,-1.12l0.06,-0.29l2.06,0.93l0.08,1.0l-1.1,-0.52ZM313.7,505.95l-0.05,0.03l-0.25,-0.26l0.42,-0.06l-0.11,0.29Z\",name:\"Šibensko-Kninska\"},\"hr-va\":{path:\"M356.44,52.92l0.39,-0.46l0.11,-0.09l-0.31,0.41l-0.19,0.14ZM358.04,51.5l21.64,-7.09l3.03,-3.93l4.18,-1.13l1.25,-1.12l-1.15,-6.89l1.04,-1.32l11.56,-3.2l2.63,0.24l6.49,2.63l5.41,0.71l3.76,-0.44l3.58,2.09l1.32,-0.26l6.99,7.36l1.2,3.31l3.97,2.47l4.13,-1.57l6.93,1.24l1.96,-2.02l1.11,1.05l7.13,2.15l4.57,-0.85l1.7,-2.35l1.66,-0.69l7.32,4.03l4.32,0.01l1.45,-1.41l1.92,0.66l2.23,-1.04l7.42,-0.18l1.11,1.11l2.01,-1.48l-0.83,1.73l3.86,1.92l0.55,3.89l-1.59,1.22l0.48,2.36l-1.13,1.34l-2.78,1.19l-2.53,3.28l-2.42,0.54l-1.15,2.32l-2.55,1.84l-7.62,0.96l-6.58,-1.39l-4.82,2.73l-2.05,2.02l-0.24,2.1l-6.31,0.04l-2.37,0.82l-0.72,0.91l0.04,3.01l-3.09,1.58l-3.35,0.43l-3.36,-2.71l-6.76,3.26l-0.86,1.29l0.6,2.65l-2.57,2.56l-0.26,1.6l-2.12,1.41l-0.05,5.31l0.95,1.69l-1.32,3.16l-3.03,-0.07l-3.49,2.47l-2.94,-1.67l-0.15,-4.02l-2.12,-0.91l-1.66,-4.35l0.28,-2.55l-2.09,-1.76l1.31,-2.71l-1.31,-2.76l1.9,-3.52l-0.73,-0.81l0.37,-1.71l-2.36,-3.51l0.81,-3.24l-6.47,-0.43l0.92,-2.5l-1.93,-1.14l-4.3,2.0l-3.21,3.67l-5.33,0.24l-0.55,-2.3l-2.65,-0.95l-8.38,1.91l-5.6,0.02l-1.39,-2.39l-6.06,-0.21l-0.66,-2.28l-2.5,-1.99l-6.78,-1.79l0.47,-4.24l-0.42,-3.14l-0.89,-0.48Z\",name:\"Varaždinska\"},\"hr-vs\":{path:\"M768.47,277.13l-3.6,-4.49l-3.56,0.06l-2.08,-1.16l-2.38,-3.61l1.95,-4.82l4.09,-6.05l1.53,-1.53l3.57,-1.16l0.79,-5.39l-0.6,-1.37l-7.89,-1.12l-1.28,-1.18l0.9,-2.36l-0.6,-6.25l4.05,-2.15l4.86,0.89l1.64,-1.07l1.47,-2.79l7.14,0.51l-2.31,-6.37l4.21,-1.36l-0.52,-6.61l5.03,-0.17l5.07,-2.93l5.15,-1.04l2.64,0.48l1.19,1.78l3.97,-1.09l0.77,-2.8l-1.83,-2.33l2.34,-2.78l-0.91,-1.8l2.8,0.28l3.78,-1.57l2.16,-2.86l4.03,-0.43l4.11,2.17l1.55,3.03l3.15,2.63l0.79,2.64l3.24,-1.42l5.23,0.23l1.39,3.76l-4.78,1.51l-1.83,1.96l-0.1,2.46l2.3,2.63l5.35,3.65l9.0,1.88l2.36,7.21l10.59,5.5l16.74,6.21l19.72,1.36l1.8,1.58l0.32,2.37l2.42,1.79l-1.88,1.75l-0.29,2.05l-2.16,0.95l-6.04,-0.8l-2.93,2.2l-0.93,-0.2l-2.87,-5.49l-6.9,-2.4l-0.52,0.46l0.92,4.67l-8.04,-0.75l-5.51,-5.05l-4.42,-0.59l-0.54,2.98l3.31,1.02l-1.4,4.22l-4.64,5.32l-9.33,-0.94l-0.86,3.49l0.4,2.71l1.34,4.79l1.6,1.05l-1.43,3.03l0.71,3.38l2.04,2.73l-0.47,2.72l0.91,1.89l-2.91,3.04l-4.99,3.29l1.13,1.62l4.72,-0.33l2.41,0.76l4.58,-1.64l1.11,3.61l2.18,0.87l-9.8,6.47l-2.55,-0.07l-2.3,2.83l-5.2,-2.81l-5.36,3.13l5.95,6.95l-5.88,1.41l-19.19,-0.73l-2.63,-0.93l-12.35,-8.51l-0.78,-1.54l0.52,-1.85l-2.02,-2.1l0.41,-0.85l5.35,1.38l1.6,-0.84l-2.99,-6.57l2.44,-3.75l-7.6,-1.48l-2.9,0.55l0.66,-4.46l-3.96,-3.56l-2.98,-0.88l-3.08,-3.71l2.44,-2.86l-0.95,-2.91l-2.27,-0.13l-2.34,1.34l-0.53,1.76l1.21,2.96l-0.95,0.55l-6.02,-0.81l3.78,-3.87l-0.45,-1.71l-1.83,0.21l-2.43,1.93l-1.61,-0.6l-1.46,-1.88l-1.91,-0.07l-0.99,1.38l2.0,1.96l-0.24,1.76Z\",name:\"Vukovarsko-Srijemska\"},\"hr-me\":{path:\"M423.72,31.52l1.41,-0.59l0.27,-1.4l-0.57,-2.02l-3.95,-5.07l-1.71,-4.79l-0.26,-10.78l1.37,-2.18l2.21,-1.41l2.71,-0.24l6.69,-2.63l4.14,2.0l3.32,-1.52l4.36,2.91l4.37,0.36l5.36,2.26l2.45,1.51l2.59,3.96l4.16,0.59l2.35,1.36l6.21,0.28l1.28,1.6l7.6,1.81l-0.51,2.52l1.12,0.49l1.01,-0.6l1.11,1.19l6.0,9.36l1.01,0.05l1.28,-1.85l0.68,2.12l1.22,0.84l1.27,-0.57l0.89,1.48l1.72,-0.9l1.24,0.97l1.43,-1.29l1.61,0.07l2.43,2.78l1.11,-0.31l1.33,0.89l0.55,-1.09l-0.19,1.72l1.95,0.53l1.4,1.69l-1.64,2.2l1.08,1.8l-5.71,7.73l-1.07,-0.52l-1.17,-2.88l-3.53,0.15l-1.55,-0.78l-0.94,1.11l-2.24,-0.54l-1.02,-0.73l0.89,-1.52l-0.88,-0.89l-1.94,1.36l-1.23,-1.0l-7.5,0.18l-2.26,1.04l-2.12,-0.62l-1.32,1.38l-4.11,-0.03l-7.41,-4.05l-2.12,0.9l-1.47,2.19l-4.34,0.82l-6.87,-2.12l-1.26,-1.1l-2.17,2.05l-6.83,-1.26l-3.95,1.57l-3.55,-2.23l-1.15,-3.25l-6.66,-7.1ZM510.14,37.53l0.34,-0.1l0.33,0.01l-0.12,0.3l-0.55,-0.21Z\",name:\"Međimurska\"},\"hr-sd\":{path:\"M380.8,571.81l0.95,-1.66l4.49,0.13l2.73,-1.24l-0.1,-1.28l-3.7,-1.7l-0.38,-0.89l2.88,-0.58l2.85,0.86l2.03,-1.48l-0.21,-1.18l-2.69,-0.87l-0.39,-2.08l-2.41,-2.72l-1.01,-3.62l0.77,-1.47l3.04,-1.68l4.59,0.79l0.46,-3.35l2.3,-1.52l4.6,-10.6l11.67,4.23l3.12,-4.81l3.77,1.48l2.19,-0.92l6.93,0.43l1.42,-0.98l1.68,-3.25l-0.77,-2.2l-1.87,-1.58l3.48,-3.44l-1.79,-3.01l6.5,-3.52l4.63,-3.89l3.1,-0.8l0.23,-0.65l-6.45,-7.29l-8.59,-5.37l-0.74,-1.92l2.28,-5.23l2.89,1.31l2.92,-0.23l2.49,-1.39l-0.95,-1.85l1.94,-2.11l4.22,-0.54l2.8,-2.62l4.33,-2.01l8.78,-0.4l3.19,2.74l4.37,1.16l2.91,4.65l7.98,6.59l7.56,3.95l1.97,3.68l0.22,6.98l1.61,1.72l2.33,0.77l1.11,3.73l8.86,2.63l4.09,3.59l1.95,2.31l1.65,4.43l4.24,1.91l5.98,8.53l14.92,15.71l9.29,3.95l3.07,3.84l2.0,1.07l7.52,2.1l5.78,0.48l12.57,6.56l-2.98,2.53l-1.7,4.04l-0.3,7.1l11.49,24.18l13.08,7.23l1.58,1.66l-0.82,3.94l2.84,1.59l-2.07,4.37l-3.78,1.25l-6.02,-1.31l-4.28,0.5l-0.46,2.17l4.88,-0.05l1.56,3.52l2.93,3.31l-7.75,4.09l-2.45,-3.97l-7.43,-3.15l-0.98,-2.04l-3.47,-2.35l-2.82,-0.41l-5.54,-2.91l-2.85,0.05l-2.81,-1.43l-2.33,-3.01l-2.1,-0.12l-3.81,-2.43l-0.63,-3.28l-4.46,-1.48l-0.35,-1.51l-1.84,-1.17l-1.43,-3.77l-5.26,-3.24l0.06,-1.24l-9.38,-9.19l-1.47,-2.58l-7.9,-5.75l-1.5,-2.35l-8.68,0.0l-15.86,-2.35l-2.06,-1.22l-2.75,-4.16l-7.89,0.81l-2.64,-2.72l-6.58,-2.24l-6.34,-4.86l-1.2,-2.41l-1.55,0.91l-3.75,-0.55l-5.78,0.61l-2.2,-0.26l-1.02,-1.43l-1.56,1.33l-4.95,-1.23l4.66,-0.89l0.57,-0.86l-0.58,-0.67l2.17,-0.98l0.33,0.77l0.95,-0.82l3.43,0.51l1.39,-1.22l-0.97,-1.11l-4.78,-0.36l-1.45,-1.3l-12.82,-1.06l-5.3,2.05l-1.94,2.31l-3.1,0.2l-4.31,1.99l0.52,0.76l7.41,0.32l10.97,4.77l-9.16,0.25l-6.08,-1.89l-0.75,1.4l-3.79,0.8l-4.34,-1.07l-1.4,-1.4l2.84,-0.16l1.83,1.33l0.68,-0.61l2.18,0.36l0.99,-0.96l-0.59,-2.52l-1.75,-0.17l-0.13,-1.13l-3.19,-0.53l-6.02,1.89l-1.02,-0.98l-2.62,0.11l-4.38,-1.38l-0.95,0.72l-1.18,-0.36l-0.73,1.85l8.73,2.07l0.56,1.16l-0.57,0.86l-4.98,0.77l-4.08,-1.28l0.0,1.31l2.02,1.02l-1.6,0.89l-3.07,-0.31l-3.94,-2.25l-1.37,1.79l-1.58,-1.02l-1.04,0.31l0.68,-1.6l-3.77,-0.6l-0.65,-1.8l-1.73,1.27ZM437.37,573.6l0.37,-0.23l0.96,-0.2l0.25,0.02l-1.58,0.41ZM436.82,627.34l2.53,-0.28l0.73,1.23l0.65,-0.58l2.5,0.99l1.07,-1.52l0.44,1.11l0.97,-0.15l1.04,-1.82l2.36,-0.07l0.24,-0.97l1.57,0.61l1.04,-1.02l3.27,0.36l0.44,0.71l0.96,-0.66l2.84,0.71l2.35,2.61l3.86,1.94l2.23,-0.36l2.08,-1.21l-2.57,-1.17l-0.48,-2.3l-1.03,0.37l-0.8,-0.71l-0.86,-2.78l-2.86,1.08l-2.11,-1.57l0.62,-0.74l0.99,1.16l0.41,-0.76l1.9,0.61l-0.07,-1.67l2.67,0.65l0.45,-0.67l-0.47,3.39l1.98,0.14l0.19,1.58l3.89,-2.41l1.54,1.34l4.2,-0.2l0.86,-0.93l2.44,0.96l-0.79,2.24l4.08,3.16l-2.02,0.39l2.78,1.83l0.26,1.63l2.12,-0.11l2.25,1.14l3.3,-1.13l4.77,0.88l5.42,0.0l1.55,-0.71l2.02,0.26l0.56,0.92l3.66,-0.15l0.2,-0.92l1.18,-0.05l1.74,2.45l1.31,-1.28l0.58,0.82l9.36,-0.26l8.28,1.98l1.52,-0.5l1.44,0.92l11.06,0.82l5.76,-0.92l4.87,1.02l0.88,0.25l0.88,0.36l0.21,0.18l-11.36,2.23l-2.11,-0.87l-6.53,0.87l-1.46,-0.77l-6.25,0.77l-3.93,-0.77l-1.73,0.86l-5.22,0.1l-23.16,-2.75l-17.92,1.12l-11.49,-2.35l-3.21,-1.39l-3.36,0.47l-8.71,-4.24l-2.8,0.9l-2.87,-0.8l-1.31,-1.79l-9.85,-3.82ZM560.13,639.59l-0.01,-0.01l0.0,-0.01l0.01,0.01l-0.01,0.0ZM446.74,626.3l0.01,0.0l0.0,0.01l0.0,-0.01l0.0,0.0ZM446.66,626.18l0.0,0.0l0.0,0.0l0.0,0.0ZM477.1,623.7l-0.16,-0.23l-0.04,-0.24l0.29,0.1l-0.08,0.37ZM484.86,629.58l0.0,0.0l0.0,0.0l0.0,0.0ZM442.31,602.13l2.13,1.94l2.31,-0.87l-0.78,-3.58l4.08,-1.3l-2.33,-1.34l0.81,-1.67l-1.57,-1.76l-0.99,0.02l-0.69,-1.76l1.38,-0.67l10.82,1.74l5.2,-0.87l5.02,1.43l2.5,-0.26l0.19,0.92l1.7,-0.8l5.3,0.85l1.07,0.87l0.56,-0.65l1.8,0.96l1.97,-0.31l8.31,1.74l-0.19,2.71l1.96,-0.4l-0.33,-2.27l5.33,0.77l0.61,1.53l0.61,-0.98l1.84,0.06l2.62,1.24l-2.76,0.31l-0.61,0.71l0.57,0.71l2.17,-0.36l0.65,0.77l0.72,-0.63l1.86,0.99l1.21,-1.43l3.3,1.9l0.44,1.17l4.69,1.81l-1.8,1.38l0.34,0.86l-1.78,2.6l0.43,0.61l-2.31,-0.78l0.08,1.09l-2.21,1.9l-1.13,-0.66l-0.89,1.02l-3.34,-0.1l-4.69,1.22l-4.57,-0.51l-17.82,1.31l-18.4,-3.17l-2.77,-3.0l-0.72,0.7l-1.06,-1.26l-1.15,0.05l-1.43,-2.4l-1.53,1.47l0.55,-1.07l-0.57,-0.71l-1.74,-0.46l-0.01,1.14l-1.01,-0.07l-0.27,-1.48l-1.29,0.64l-2.37,-1.08l0.01,-2.49ZM456.08,611.11l-0.11,0.14l-0.07,0.07l-0.03,-0.05l0.21,-0.16ZM512.17,603.46l0.0,0.0l0.0,0.0l0.0,0.0ZM470.31,593.15l-0.01,0.0l0.01,-0.01l0.0,0.0ZM480.77,646.81l3.38,-1.68l1.75,1.48l1.83,-1.07l2.89,0.38l1.11,0.95l-4.68,1.04l-6.27,-1.1ZM443.08,634.75l-0.26,-0.2l0.6,-0.29l-0.13,0.27l-0.21,0.22ZM443.46,634.22l-0.02,0.02l0.02,-0.02l0.0,0.0ZM430.97,631.71l0.04,0.0l-0.04,0.04l0.0,-0.04ZM431.64,631.31l1.36,-0.28l2.57,2.05l1.07,-0.67l1.11,1.13l0.77,-0.77l1.38,0.82l-1.55,0.54l-1.63,-1.29l-0.63,0.81l-2.05,-1.27l-1.05,0.6l0.02,-1.01l-1.38,-0.67ZM433.06,630.98l-0.03,0.02l0.03,-0.03l0.0,0.0ZM436.13,633.68l-0.01,-0.01l0.02,-0.01l0.0,0.01l-0.01,0.01ZM440.4,633.39l0.1,0.06l0.1,0.2l-0.24,-0.23l0.04,-0.02ZM440.35,633.43l0.0,0.0l0.01,-0.01l0.0,0.01ZM430.54,632.24l-0.01,0.0l0.01,-0.01l0.0,0.01ZM411.73,588.4l-1.04,-0.88l11.13,0.3l2.75,1.27l1.04,1.84l0.93,-1.06l1.23,0.6l-0.42,2.51l2.04,-0.49l0.48,-1.49l3.13,3.87l1.36,-0.05l0.6,2.46l3.22,3.26l1.03,-0.05l0.8,1.91l-0.99,-1.43l-1.31,1.79l-0.57,-1.45l-1.37,0.53l-0.35,-1.63l-1.23,0.97l-6.23,-2.56l-1.07,-2.02l-3.0,-0.96l-0.84,-1.33l-0.96,0.77l-2.45,-1.69l-4.1,-0.71l-0.38,-0.91l-2.91,0.45l-0.47,-0.61l0.69,-1.03l-1.39,-0.32l0.65,-1.86ZM429.67,590.63l0.0,0.15l0.08,0.08l-0.12,-0.12l0.04,-0.11ZM427.69,631.32l-0.04,-0.04l0.0,-0.08l0.13,0.14l-0.09,-0.02ZM389.26,654.07l-1.26,-1.05l4.27,-2.69l5.45,-1.08l2.23,0.52l2.93,-1.12l3.87,-0.15l0.94,1.12l1.3,0.01l-1.28,2.14l1.44,1.0l2.62,-2.54l2.37,-0.61l0.57,0.56l1.19,-0.77l0.62,2.13l0.93,-1.27l0.93,0.89l-0.45,2.44l-3.01,1.53l-0.63,2.14l-0.99,1.22l-1.28,-0.22l-0.45,1.19l-1.86,-1.22l-0.26,1.07l-3.48,-0.46l-0.31,0.82l-1.02,-0.37l-7.61,2.04l-6.19,0.27l0.15,-0.88l3.36,-2.16l0.17,-2.21l-1.66,-2.54l-3.2,1.38l-0.39,-1.12ZM410.49,658.8l0.01,0.01l-0.01,0.01l-0.01,-0.01ZM414.17,659.76l0.07,0.0l0.03,0.04l-0.08,-0.02l-0.02,-0.02ZM409.4,590.91l0.0,-0.13l0.29,-0.05l-0.11,0.23l-0.17,-0.05ZM406.08,588.65l0.43,-0.22l0.66,0.71l-0.92,0.07l-0.17,-0.56ZM397.05,583.58l1.17,-1.56l1.3,-0.29l-0.43,-1.44l1.99,0.57l1.17,-0.56l-1.61,-1.39l3.65,0.15l1.86,1.72l-0.81,2.42l-2.06,-1.21l-1.57,0.81l0.05,0.83l-4.7,-0.05ZM398.52,586.1l-0.13,-0.28l0.84,0.45l-0.09,0.08l-0.62,-0.25ZM388.5,580.55l0.0,-0.26l0.42,0.12l-0.22,0.16l-0.2,-0.01ZM389.97,580.74l-0.45,-0.5l1.78,-0.67l1.99,0.05l0.31,2.43l-0.95,0.35l-0.4,-1.69l-2.29,0.03ZM384.16,576.11l0.01,-0.12l0.72,-0.2l0.0,0.12l-0.73,0.2ZM379.84,670.78l0.05,-0.18l0.34,-0.13l-0.17,0.37l-0.21,-0.06ZM380.51,670.03l-0.24,-4.83l0.49,-0.87l1.93,1.55l0.54,1.64l-0.53,2.6l-2.19,-0.1ZM339.01,659.08l3.26,-2.07l2.39,0.3l-2.61,1.96l-3.04,-0.19Z\",name:\"Splitsko-Dalmatinska\"}},height:804.9967209703165,projection:{type:\"mill\",centralMeridian:0},width:900});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.europe.js",
    "content": "/** Add Europe Map Data Points */\njQuery.fn.vectorMap('addMap', 'europe_en', {\"width\":680,\"height\":520,\"paths\":{\"gl\":{\"path\":\"M13.47,93.57C12.35,92.52 12.34,90 10.44,89.14 10.62,88.14 13.84,87.66 11.35,86.39 10.05,87.17 9.25,86.92 8.71,87.58 6.27,88.12 8.6,85.09 6.17,85.17 5.23,84.47 10.33,84.75 9.98,83.14 11.32,83.4 14.67,82.04 12.37,81.03 11.23,81.19 6.54,82.06 10.06,81.32 13.04,80.64 9.92,76.6 8.71,79.05 9.24,77.06 11.03,78.05 12.88,77.78 14.68,74.59 9.38,77.17 8.23,75.54 7.26,73.61 12.43,77.09 11.48,74.6c2.44,-0.76 -0.97,1.23 1.21,1.43 1,0.07 3.06,0.24 1.26,-0.8C15.39,74.51 14.27,73.05 14.04,72.76 16.26,70.08 9.73,69.39 11.65,72.54 9.43,70.77 7.4,69.72 5.62,68.37 4.84,67.27 3.62,65.14 5.75,64.54 6.27,63.17 3.83,63.23 6.08,62.64 8.52,60.62 3.8,58.38 3.79,56.87 4.78,56.07 3.39,53.57 4.92,55.82c2,1.48 -1.5,0.05 -0.41,1.67 0.7,1.18 4.94,4.58 4.09,1.22C7.96,57.37 6.11,57.21 8.09,56.47 5.75,56.14 4.83,52.58 8.11,53.61c1.58,0.65 2.17,-1 2.13,-1.24 1.86,-0.56 0.99,-3.89 0.14,-5.02 -2.29,-0.92 1.59,-2.34 -1.23,-2.91 0.6,-3.73 4.98,-2.29 7.51,-3.37 2.78,-1.33 -1.33,-1.73 -1.69,-3.06 -3.07,-1.99 2.8,-0.5 3.28,-2.76 2.87,0.22 -2.67,-2.82 -1.49,-3.84 1.34,0.59 4.57,3.1 4.27,-0.2C20.58,29.48 17.09,31.14 17.33,29.6c1.78,1.02 0.79,-3.69 2.33,-1.12 1.76,1.21 4.05,-0.81 1.11,-1.21 -0.72,-0.16 1.96,-1.91 2.18,-0.31 2.04,0.89 2.39,3.26 4.86,3.29 1.12,-1.58 -2.89,-2.38 -0.16,-2.31 1.35,-1.83 -5.03,-0.94 -1.14,-2.29 1.39,-1.55 1.81,4.29 2.64,1.36 -0.57,-1.39 -0.41,-4.67 1.53,-2.59 0.16,2.02 -2.74,3.73 -1.03,6.23 2.7,1.13 0.11,-4.85 3.69,-4.25 2.74,-0.7 0.37,-3.01 -1.39,-3.16 0.93,-1.59 -0.48,-0.52 -0.91,-1.1 -1.26,0.42 -2.63,-0.27 -1.15,-1.19 -0.81,-1.9 -3.85,0.74 -5.54,0.53 -3.44,0.64 1.14,-2.76 2.36,-3.3 2.28,-0.77 4.66,2.97 6.55,0.04C34.81,17.14 33.04,17.79 32.17,17.97 30.61,18.81 30.38,17.32 30.54,16.77 29.14,17.79 26.4,16.27 29.42,16.34 29.89,14.12 31.85,14.39 33.58,13.44c0.27,-2.21 -3.96,0.03 -1.92,-1.94 2.34,1.37 5.29,0.49 7.37,1.6 0.49,1.25 2.93,3.07 2.07,0.58C40.16,10.86 37.07,10.79 34.89,10.94 32.01,10.71 38.39,8.92 36.45,6.69 35.49,6.8 33.31,6.65 34.75,5.53c1.74,0.57 3.45,1.31 2.13,3.63 0.97,-0.77 3.6,0.14 4.92,-0.01C42.62,6.51 37.36,8.29 39.31,5.97 39.94,4.69 35.39,5.71 36.07,3.41c2.18,-0.52 6.21,0.1 8.48,1.64 1.78,-0.72 2.84,-0.23 4.07,0.55 1.73,-0.23 3.46,0.06 2.78,2.25C52.75,9.86 54.51,8.35 52.72,6.73 52.71,4.07 54.56,10.07 55.78,8.98 56.01,5.87 52.57,4.02 49.87,3.57 48.45,2.66 43.96,4.29 45.02,2.48 44.96,1.07 43.75,0.16 45.71,1.28 47.56,3.52 50.55,-0.47 53.01,0.78 55.13,-0.05 52.02,4.62 54.57,4.07 55.09,3.62 56.43,7.62 57.26,5.53 57.36,3.28 54.5,4.61 54.71,2.93 54.66,0.68 56.28,0.89 57.93,0.78 59.1,1.36 57.92,5.72 60.98,5.64 61.74,4.33 57.63,0.17 61.09,2.11 61.53,3.09 65.18,3.43 63.42,2.17 61.88,1.53 60.02,-0.12 62.69,1.24c1.18,0.74 1.27,-0.27 2.37,-0.09 0.49,-0.8 2.06,-0.17 3.01,-0.37 45.89,0 91.78,0 137.67,0 0.61,1.21 1.15,3.04 -0.24,1.09 -2.48,-0.7 1.23,2.94 1.58,3.94 1.63,2.86 -1.86,0.67 -3.36,1.88 1.28,-1.72 -2.26,-4.24 -1.57,-1.36 0.03,2.25 1.64,3.73 3.68,2.39 1.03,0.77 -1.42,2.8 -1.62,3.53 -3.09,0.12 0.02,1.62 1.04,2.22 0.66,2.09 4.04,0.64 2.3,3.22 -1.05,1.95 -3.92,1.82 -3.21,-0.86 0.14,-3.28 -4.67,-1.36 -4.04,-5.02 -2.02,-0.71 -0.18,3.84 -2.96,2.48 -0.73,0.74 0.41,1.75 -1.42,1.32 -2.61,0.54 1.71,4.84 -0.38,4.25 -1.39,0.66 -1.21,4.72 0.33,2.08 -0.04,-1.13 1.18,-4.09 2.39,-2.05 0.43,1.69 3.14,3.16 0.34,3.59 0.86,3.33 -3.29,2.48 -4.22,0.42 -0.56,1.42 -4.92,2.25 -4.96,-1.01 -1.09,-1.09 -0.61,-6.28 0.38,-2.79 -0.38,2.15 4.88,3.94 3.74,1.34 -3.75,0.99 -2.13,-7.24 -6.06,-4.79 -0.93,1.3 -1.66,1.94 -1.57,-0.09 0.87,-1.48 -0.65,-6.36 -1.62,-2.76 -0.29,1.71 1.87,5.7 -1.38,4.23 -1.61,0.79 -3.43,1.95 -3.68,-0.56 -1.68,-1 0.16,-4.48 -2.68,-3.04 -0.67,1.11 2.68,6.25 0.02,3.71 -0.94,-1.89 -3.02,-1.6 -4.56,-0.77 1.83,0.09 2.37,0.85 0.57,2.18 0.59,2.05 2.81,-2.2 3.66,0.12 1.38,0.4 3.13,-0.11 3.81,2.17 2.43,3.24 -2.95,0.83 -4.01,1.04 -0.05,-1.82 -4.79,-3.3 -3.23,-1.13 1.49,0.95 1.71,0.82 0.15,1.51 -1.1,2.37 1.53,3.48 2.9,1.87 3.12,-1.53 5.02,4.79 1.15,3.53 -2.62,-0.97 -1.48,2.05 -3.89,2.7 -0.43,2.18 2.56,-0.04 2.88,-0.79 2.47,-0.74 2.4,2.46 3.26,3.28 -2.41,2.08 2.06,1.61 0.72,3.86 0.87,0.94 2.37,2.01 0.05,2.28 -2.05,0.35 -0.86,2.02 0.59,1.45 -1.67,-0.11 -1.69,1.85 -1.36,2.27 -1.73,0.52 -2.08,4.37 -0.55,3.78 -0.25,-2.23 4.33,-2.23 2.08,-0.24 -2.82,-0.46 -0.7,2.99 -3.43,2.2 2.08,0.81 0.22,1 -1.03,1.19 -1.32,0.16 3.49,1.1 1.39,1.26 -1.9,0.07 -0.29,1.99 -2.31,1.42 1.18,0.54 1.34,1.84 1.35,2.8 -2.18,2.04 -4.44,-0.74 -2.18,-2.64 1.63,-0.69 0.76,-4.19 -0.17,-2.1 -0.64,2.71 -4.66,4.66 -4.98,0.68 -0.13,-3.43 1.98,-6.57 2.12,-10.01 -0.26,-1.47 -2.38,-1.12 -1.92,-3.26 0.2,-2.67 -2.43,-4.09 -3.97,-4.66 0.54,-2.82 0.04,-5.39 -1.15,-7.72 0.49,-2.96 -3.2,-2.36 -2.3,0.29 0.39,1.99 2.16,3.98 1.82,5.79 -0.98,-1.18 -4.72,-2.37 -4.53,0.09 1.53,0.74 4.96,0.32 3.23,3.09 -0.36,0.92 2.65,-0.97 2.92,1.14 1.39,1.16 4.2,3.13 1.09,4.33 -2.3,0.81 -7.78,0.76 -7.23,-2.79 1.56,-1.72 -2.19,-2.27 -1.32,0.16 -1.72,-2.55 -3.53,-0.09 -1.9,1.66 -2.13,2.01 -4.41,0.62 -6.81,0.57 -2.19,2.71 4.76,1.16 2.08,3.05 0.58,1.9 4.08,1.91 5.81,2.83 1.96,1.43 -0.47,2.15 -1.35,0.46 -1.82,-1.08 -3.45,2.21 -4.74,-0.62 -0.64,-2.28 -4.68,1.1 -2.47,0.81 1.98,0.42 2.27,5.38 5.07,2.98 1.84,-3.35 3.57,2.14 6.26,0.44 1.29,-0.17 2.13,-0.02 0.67,0.65 1.09,1.24 2.33,0.17 2.6,1.96 1.19,2.8 4.25,5.41 6.32,6.4 -0.65,1.36 -3.26,-1.74 -3.14,1.07 -0.24,-1.71 -1.8,-0.78 -1.41,0.45 -1.2,-0.78 -1.84,-2.07 -1.82,0.08 -0.39,2.77 -2.92,-1.74 -2.76,-0.46 0.55,1.51 -0.55,2.28 -0.85,0.45 -2.38,-1.66 -2.14,3.66 -3.7,0.79 -1.88,-0.98 -0.85,3.28 -2.38,0.99 -2,-0.69 -1.48,2.95 -3.73,1.98 -1.43,0.57 -1.73,-1.87 -2.48,0.33 -1.28,0.15 -2.02,-1.77 -3.67,-0.49 -1.51,-0.59 -3.89,-0.69 -5.18,-1.79 -1.83,0.4 -3.94,-2.71 -4.99,0.05 -1.52,0.2 0.6,-5.44 -2.51,-2.84 -0.5,1.46 -2.44,2.79 -1.46,0.41 -0.04,-2.08 -3.47,-2.35 -1.81,-0.01 -0.33,2.95 -2.47,-1.46 -3.31,-2.22 2.66,-0.66 -1.9,-3.4 0.58,-4.85 0.98,-1.25 -0.43,-3.9 -1.29,-1.57 -2.2,1.2 0.59,4.8 -2.3,3.1 0.07,1.58 0.73,2.33 -0.49,2.37 -0.31,3.19 -2.4,-0.77 -3.7,1.08 -1.26,-0.57 -3.86,-0.58 -3.24,0.73 -1.86,1.54 -5.17,-0.4 -5.06,3.18 -2.02,-0.95 -3.43,1.13 -4.24,1.49 -0.67,-0.74 -1.24,2.48 -2,1.23 2.12,-2.45 -2.15,-1.8 -1.8,0.58 -2.16,1.39 -3.92,0.18 -2.08,-1.7 -1.67,0.05 -3.09,2.47 -2.5,-0.4 -0.88,-2.96 -1.92,-0.22 -2,1.13 -1.96,-0.26 -4.27,2.16 -3.76,-0.97 -0.78,-1.12 -2.93,1.49 -3.4,-0.02 1.83,-0.91 0.7,-3.4 -0.63,-1.07 -0.78,1.04 -1.78,1.59 -1.04,-0.05 -2.35,-3.54 3.85,-1.66 4.59,-3.73 -0.17,-1.96 -2.75,-5.32 -4.26,-2.64 1.79,0.66 -1.44,2.8 -2.07,2.43 -1.51,-3.02 -4.63,-0.57 -2.13,1.56 0.17,1.83 -2.38,1.81 -1.85,-0.14 -1.36,-2.38 -2.64,3.42 -2.69,-0.09 0.92,-1.47 0.05,-4.47 -1.39,-1.81 0.69,-2.4 -1.59,-1.67 -2.42,-0.69 -1.63,-2.6 -2.81,-0.08 -1.32,1.39 -0.12,2.09 -5.82,3.27 -3.43,0.33 -0.7,-1.39 -2.14,-1.09 -2.9,-2.54 -1.31,0.12 -1.87,1.12 -2.63,1.96 -0.18,2.43 -0.75,4.74 -2.05,6.98 -0.56,-1.99 -3.06,-1.81 -4.45,-3.2 -2.37,1.32 0.55,4.85 0.85,5.51 -2.93,-1.09 -0.49,5.23 -3.18,2.66C53.03,69.44 53.8,64.37 51.35,66.72c-0.01,1.25 1.67,5.14 1.03,4.67 -0.53,-2.51 -2.88,0.37 -2.61,-2.21 -1.56,-2.63 -4.32,1.46 -2.75,2.77 0.01,1.17 -1.56,2.39 -0.5,0.42 0.86,-3.51 -4.59,-2.97 -3.27,0.28 1.49,1.65 -0.07,2.95 -1.09,0.84 -1.55,-1.63 -4.28,0.31 -4.69,-2.84 -1.38,-1.87 -1.94,1.56 -0.77,2.26 -0.06,1.31 -0.47,2.49 -0.74,0.56 -1.54,-2.22 -1.58,2.78 -0.86,3.53 1.64,2.36 -5.86,1.67 -2.64,3.82 2.3,1.03 -2.22,1.12 -2.82,0.61 -1.74,0.43 1.87,2.58 -0.75,1.83C27.52,82.87 27.84,78.97 25.72,81.05c-0.33,1.79 3.97,2.08 0.81,3.67C24.18,85.6 27.77,81.48 24.7,81.96c-1.65,-0.58 -3.25,0.94 -2.07,2.52 -0.13,-1.56 -3.34,-2.97 -2.3,-0.65 0.92,1 3.65,4.19 0.68,3.11 -0.39,-1.36 -2.18,-3.54 -2.55,-1.53 -2.1,0.36 1.98,3.44 0.79,3.95 -0.52,-1.87 -2.86,-1.68 -1.64,0.35 -0.16,0.51 -2.67,-2.78 -2.9,-4.29 -1.64,-2.64 -1.84,0.81 -1.4,1.86 -0.78,1.52 2.24,0.79 1.57,2.42 -1.75,-0.73 -3.2,1.28 -0.75,1.28 -0.16,0.78 0.34,2.28 -0.65,2.59z M34.12,18.3c-1.05,0.6 -2.47,3.81 -0.57,3.47 1.95,-0.22 4.06,-4.82 0.57,-3.47z m-22.97,56.17c-2.31,-0.35 -0.79,-1.58 0,0z M2.14,66.59c-1.38,-1.11 -0.95,-1.35 0.46,-0.36 -0.18,-0.08 -0.27,0.6 -0.46,0.36z m168.23,-6.32c-0.28,-1.85 2.85,0.02 0.03,0l-0.03,0z M7.85,51.96c-0.57,-0.92 1.55,0.27 0,0z m1.18,-1.63C7.41,50.26 7.17,48.77 8.95,49.87 10,50.07 10.77,49.96 9.03,50.33z M184.09,37.53c-0.77,-1.48 -1.43,-4.23 -2.73,-6.24 -2.01,-2.67 1.21,-6.02 3.05,-2.64 0.95,1.04 0.93,3.38 1.44,4.42 -4.98,-0.16 0.39,3.51 -1.76,4.46z M23.01,25.35c-1.12,-0.81 -0.79,-3.25 0.17,-0.92 0.17,0.37 -0.49,0.58 -0.17,0.92z M209.99,8.88c0.65,-1.41 0.2,-3.29 -1.61,-3.21 -0.07,-1.5 -1.95,-5.46 0.62,-4.89 1.44,0 2.88,0 4.31,0 1.06,2.38 -1.6,4.58 -1.58,7.24 -0.32,0.7 -1.06,0.8 -1.74,0.86z M44.32,3.05c-1.74,-0.98 -6.31,0.12 -6.14,-2.09 1.47,1.81 3.05,0.95 2.25,-0.17 2.2,-0.52 2.82,0.46 3.89,2.27z\",\"name\":\"Greenland\"},\"is\":{\"path\":\"m151.61,141.44c-2.42,-0.05 -4.73,-1.12 -5.95,-3.36 -0.71,-2.06 -4.34,-1.68 -3.81,-4.38 0.8,-0.95 3.4,-0.95 1.03,-1.6 -1.69,0.92 -0.37,-1.61 -2.18,-0.86 -0.88,-0.03 -1.32,-2.12 -2.96,-2.05 -1.43,-1.13 -6,-1.27 -4.53,-3.48 1.4,1.45 5.16,1.15 5.29,-1.63 0.95,-0.08 4.39,1.14 2.46,-0.91 -1.28,-0.31 -3.16,-1.27 -0.58,-1.35 2.41,0.51 2.39,-2.69 -0.02,-1.57 -1.25,0.39 -2.36,1.06 -1.66,-0.43 -0.34,-1.62 1.57,-4.11 -1.54,-3.94 -1.49,-1.7 -3.83,-2.36 -5.98,-2.91 1.9,-1.43 2.13,2 4.45,0.36 0.58,-0.11 0.84,1.82 1.93,0.36 1.45,0.02 2.12,1.75 4.12,1.85 1.57,1.88 4.72,-0.08 2.56,-1.73 -1.13,0.23 -4.71,-0.08 -2.41,-1.51 1.13,0.1 5.66,-0.35 3.94,-1.58 -2.53,-0.05 -1.4,-0.83 -0.29,-1.63 0.84,-2.83 -2.64,-1.96 -3.34,-1.81 -1.47,-0.72 -2,-0.85 -1.64,-2.44 2.52,0.42 0.64,-2.75 -0.27,-3.56 -0.04,-0.34 1.76,2 1.91,-0.11 -0.65,-3.43 1.88,0.34 1.11,2 -0.95,4.21 5.86,2.44 3.19,-0.73 -1.94,-1.31 0.11,-2.67 -1.13,-4.2 1.13,0.42 1.67,1.6 2.04,1.18 1.98,0.31 -0.01,2.5 1.33,3.37 0.86,1.89 -0.77,4.19 1.64,5.57 -1.28,0.64 -3.87,-0.52 -2.63,1.99 -0.4,1.18 -1.92,2.25 -0.42,2.93 -1.31,1.46 -1.09,4.59 1.22,2.7 0.49,-1.4 2.89,-6.12 2.22,-2.37 2.69,2.22 4.53,-3.04 4.48,-5.25 2.58,0.03 -0.68,6.63 3.51,5.53 -0.01,-0.74 0.05,-5.1 1.81,-2.72 1.08,-2.01 3.5,-0.36 1.83,1.62 2.1,1.36 -0.53,3.45 0.95,5.46 2.69,-0.06 0.02,-7.39 2.92,-6.07 -0.32,2.52 1.49,4.92 3.27,1.85 1.68,-2.37 1.62,3.33 3.69,1.28 1.71,-0.8 1.1,-6.38 3.47,-3.02 -0.81,1.5 1.32,1.54 -0.24,3.29 -0.5,2.17 2.82,1.16 2.36,3.29 2.02,0.52 2.1,1.62 0.19,2.57 -2.6,1.53 3.45,1.86 0.49,3.25 -0.74,0.55 -3.68,1.15 -1.27,1.34 1.72,-0.23 4.34,-1.28 4.35,1.54 -0.04,2.17 -4.93,1.21 -2.47,3.09 1.83,0.33 2.75,2.38 0.41,2.2 -1.18,-0.56 -1.74,-0.63 -0.71,0.56 -0.6,-0.3 -3.92,0.12 -2.06,0.55 2.71,0.87 -0.55,1.36 -1.7,1.52 -1.06,0.04 -2.49,1.02 -2.87,2.69 -1.35,-0.83 -1.72,1.98 -2.29,-0.35 -0.72,-2.57 -2.1,-0.68 -2.71,0.31 -2.09,-0.1 -4.17,0.18 -5.78,1.63 -1.89,0.57 -3.52,-3.04 -3.52,0.21 -2.4,-1.75 -5.62,-1.53 -6.88,1.4l-0.35,0.08 0,0z m24.31,-7.94c-1.58,1.64 1.17,1.65 0.84,-0.23 -0.28,0.08 -0.56,0.15 -0.84,0.23z M147.49,99.76c-2.33,0.02 -1.42,1.38 0.2,1.79 0.14,-0.38 0.69,-1.97 -0.2,-1.79z m33.62,15.99c1.19,-0.59 1.6,-0.17 0,0z m-44.05,-9.09c-1.62,-0.01 -0.68,-1.6 0.37,-0.74 1.34,-0.47 -0.84,-4.6 0.49,-2.48 -0.6,1.82 2.54,3.42 -0.86,3.22z m-1.42,-1.5c-1.66,0.2 -1.5,-3.06 -0.29,-0.86 -0.05,0.3 1.22,0.95 0.29,0.86z m4.48,-1.49c-0.86,-0.96 -0.83,-1.57 0,0z\",\"name\":\"Iceland\"},\"pt\":{\"path\":\"m126.31,476.79c-3.11,-0.89 -5.74,-4.21 -9.28,-3.12 -1.78,0.38 1.76,-2.58 1.47,-3.95 0.39,-1.92 1.56,-3.11 1.18,-4.56 -0.46,-1.65 0.47,-3.6 1.4,-5.27 -0.61,-1.65 3.07,-0.14 2.33,-1.74 -1.59,-1.17 -2.48,-2.71 -4.71,-1.61 -1.89,-0.04 -2.12,-3.1 -2.67,-4.46 0.27,-2.21 3.57,-4.27 2.21,-6.5 2.42,0.37 3.47,-2.17 4.77,-3.81 0.98,-1.71 1.87,-3.43 3.16,-4.47 -0.79,-1.76 1.02,-5.31 3.28,-5.87 1.59,-1.26 -0.95,-2.63 0.8,-4.09 0.23,-2.53 -1.05,-5.19 -0.11,-7.75 2.54,0.06 0.15,-1.87 0.17,-2.24 1.59,-1.44 4.74,-3.3 6.49,-1.31 -3.35,1.53 -0.16,3.98 2.09,3.19 1.85,-0.17 3.87,2.53 6.45,0.97 1.56,-0.13 6.26,-0.07 4.22,3.05 0.22,1.77 4.81,2.08 1.88,3.98 -2.66,0.33 -4.02,2.88 -6.33,3.35 -0.97,1.66 1.09,4.53 -0.81,6.49 -1.07,1.01 0.55,2.39 -1.62,2.77 -2.6,1.54 1.62,6.06 -2.82,6.49 -1.74,-0.37 -5.6,-2.08 -3.57,1.31 1.07,1.89 -0.41,4.57 2.03,6.2 1.92,2.91 -3.81,2.81 -3.68,5.95 -1.09,1.6 0.5,5.45 2.67,5.41 -1.19,1.2 -4.31,1 -5,3.34 -3.07,2.07 -0.28,7.22 -4.25,7.62 -0.55,0.29 -1.11,0.63 -1.75,0.65z\",\"name\":\"Portugal\"},\"ma\":{\"path\":\"m114.26,519.26c5.38,-1.06 11.75,-0.39 15.9,-4.63 5.26,-4.88 8.22,-11.54 11.83,-17.6 2.3,-1.64 3.11,0.89 3.7,2.43 3.25,0.06 3.27,5.03 6.51,6.18 2.01,2.4 5.02,1.6 7.69,1.35 1.26,1.84 3.78,-0.68 5.41,1.5 1.48,1.09 4.97,-1.46 5.09,1.72 1.76,1.07 3.75,0.97 5.94,1.12 1.21,2.49 5.27,4 3.5,6.77 1.55,1.82 -0.97,1 -2.11,1.18 -21.15,0 -42.31,0 -63.46,0z\",\"name\":\"Morocco\"},\"es\":{\"path\":\"m170.08,507.95c-0.69,-0.45 0.64,-1.19 0,0z m-23.1,-9.15c-1.89,-0.27 -1.23,-3.36 0.81,-2.76 -1.01,0.61 -0.28,2.16 -0.81,2.76z m-1.53,-5.41c-1.92,-1.84 -4.81,-3.55 -4.78,-6.5 1.74,-1.65 -3.05,-2.72 0.06,-3.62 1.8,0.08 1.95,-2.62 0.29,-1.71 -1.68,1.92 -1.49,-3.2 -3.57,-3.37 -1.21,-2.54 -5.06,-1.7 -6.26,-3.7 0.08,-2.72 1.22,-5.37 3.58,-6.95 1.91,0.46 5.66,-3.3 1.98,-3.27 -1.9,-2.17 -1.67,-5.74 1.14,-6.99 3.7,-0.95 1.1,-4.57 -0.28,-6.35 0.58,-1.68 0.45,-3.01 -0.84,-4.53 2.46,2.34 7.45,0.07 6.4,-3.43 -2.26,-2.56 3.15,-2.71 1.97,-5.34 1.81,-1.67 0.28,-5.41 1.17,-6.21 1.77,-2.14 4.99,-2.46 6.88,-4.55 1.92,-2.79 -4.07,-2.45 -2.2,-4.91 0.43,-3.16 -4.07,-2.3 -5.69,-3.2 -1.8,2.37 -3.89,-1.02 -6.23,-0.51 -0.28,-1.34 -3.49,1.05 -2.42,-0.88 2.82,-1.19 -0.75,-4.5 -2.73,-2.96 -2.11,1.45 -3.86,-0.78 -1.34,-1.64 0.94,0.28 2.32,-1.98 0.72,-1.58 2.23,-1.63 -2.16,-0.92 -0.24,-2.66 2.41,-1.99 0.28,-4.66 -2.06,-3.75 -2.26,-1.66 -0.12,-3.23 1.07,-4.13 3.66,0.29 6.76,-2.08 9.92,-3.51 1.78,-2.19 1.34,2.22 3.29,-0.21 3.33,-0.27 2.62,6.64 6.6,4.09 2.47,1.16 5.51,0.94 8.02,1.44 1.9,-1.24 3.14,2.45 5.32,2.3 2.35,0.57 4.3,2.34 6.75,2.93 2.65,1.41 5.29,-0 7.84,-0 2.13,0.65 4.69,5.39 6.5,1.98 2.5,1.32 5.04,3.91 8.46,3.08 1.39,-0.01 3.8,0.79 4.14,1.8 -1.87,1.22 0.06,2.67 1.22,2.4 1.66,1.57 5.29,1.19 5.34,4 1.46,0.54 4.43,-0.57 4.33,1.92 1.41,-0.29 3.73,0.98 4.54,0.5 1.54,0.01 3.53,0.67 3.72,-1.35 1.63,1.02 3.94,2.12 5.05,3.3 -0.62,2.48 1.62,2.94 3.4,2.37 1.23,1.43 2.74,2.23 4.47,1.42 1.62,0.92 3.85,2.1 4.94,-0.04 1.38,-0.43 5.47,1.31 2.5,2.25 -0.52,2.49 0.35,5.62 -3.02,6.24 -3.95,0.65 -6.55,3.99 -10.24,4.85 -4,0.26 -8.86,0.24 -11.41,3.91 0.64,1.13 2.06,1.75 -0.08,1.82 -2.98,1.35 -3.8,5 -6.55,6.72 -2.04,2.09 -4.6,4.27 -5.09,7.29 -0.14,3.13 0.72,6.8 3.86,8.19 -0.28,2.13 -4.94,1.61 -6.14,3.93 -1.51,0.81 -1.84,2.35 -3.08,3.65 0.22,1.68 -4.27,3.01 -1.46,5.03 -0.94,1.1 -4.96,-1.49 -6.88,0.41 -2.79,1.13 -4.55,3.71 -5.69,6.37 -2.11,3.74 -4.63,-2.34 -7.31,0.69 -2.28,0.2 -4.7,-1.72 -7.4,-1.1 -2.51,-0.92 -5.12,-1.75 -7.89,-1.82 -2.99,0.03 -4.54,3.25 -7.74,1.83 -3.45,-0.48 -3.73,3.46 -6.83,4.06z M229.67,469.73c-3.03,-0.94 2.34,-1.17 0,0z m-3.28,-1.86c-1.31,-1.98 3.63,-2.8 0.96,-0.55 -0.28,0.23 -0.58,0.51 -0.96,0.55z m8.15,-0.95c-0.99,-1.19 -3.24,-1.21 -2.69,-3.07 -1.57,-0.61 -4.43,-0.57 -1.44,-1.83 1.82,-0.69 5.61,-3.6 5.15,-0.13 1.01,1.13 4.03,0.64 1.76,2.77 -0.83,0.87 -1.8,1.58 -2.78,2.26z m11.67,-5.53c-0.43,-1.32 -5.6,-1.9 -2.47,-2.15 1.42,0.04 2.4,0.66 2.47,2.15z\",\"name\":\"Spain\"},\"tn\":{\"path\":\"m284.9,519.26c-2.21,-1.12 0.73,-3.64 -0.95,-5.51 -1.46,-3.16 2.15,-6.93 -0.12,-9.45 -0.67,-0.73 2.93,-1.29 1.98,-2.95 2.23,-0.03 1.46,-2.58 3.74,-2.85 2.52,-1.83 5.41,-3.02 8.35,-3.78 1.3,0.18 -1.34,3.29 1.51,2.64 0.71,-1.15 1.1,-2.15 2.08,-1.26 -0.76,0.27 1.03,1.6 0.03,2.09 1.72,0.55 2.13,5.46 4.03,3.7 1.46,-0.73 4.4,-5.15 5.37,-2.71 -0.9,2.37 -2.28,5.07 -4.51,6.35 -3.22,1.82 -2.27,6.37 0.87,7.67 1.26,0.82 1.66,2.08 3.04,2.36 -0.15,1.99 1.01,4.41 -1.79,3.68 -7.88,0 -15.77,-0.01 -23.63,0.01z\",\"name\":\"Tunisia\"},\"dz\":{\"path\":\"m181.84,519.26c-2.16,-1 0.09,-2.29 0.05,-3.03 -0.8,-1.48 -5.28,-4.37 -1.47,-3.7 2.83,-0.51 5.98,-1.33 7.84,-3.67 1.17,-2.46 3.66,-2.95 5.89,-2.07 1.44,-0.79 2.77,-2.77 3.38,-0.29 3.67,1.9 4.38,-3.05 7.15,-3.91 3.27,-1.17 6.41,-3.1 10.01,-2.8 3.04,0.05 6.13,0.57 9.13,-0.19 2.74,1.56 5.53,-0.24 7.63,-1.26 2.46,0.75 5.2,0.79 7.75,-0.34 2.83,-0.67 5.62,0.67 8.61,0.23 3.35,0.17 5.17,6.05 8.94,3.1 1.43,-2.77 7.09,0.3 7.33,-3.88 2.03,-1.62 1.87,1.59 2.96,1.23 1.79,0.05 6.14,2.99 6.01,-0.61 2.5,-2 5.17,3.33 8.12,2.16 1.57,-1.13 4.46,-0.6 5.35,-0.15 -1.62,-0.02 -2.54,1.2 -1.93,2.18 -1.87,0.63 -3.58,2.5 -1.04,3.3 0.38,2.87 -2.09,5.94 -0.27,8.63 -0.06,1.4 0.31,4.98 -0.86,5.05 -33.52,0 -67.05,0 -100.57,0z\",\"name\":\"Algeria\"},\"be\":{\"path\":\"m265.32,343.64c-0.99,-1.16 -1.81,-2.49 -3.73,-3.37 -2.08,-0.35 -0.28,-1.85 -1.25,-2.79 1.47,-1.88 -0.53,-2.73 -1.47,-0.87 -1.28,2.32 -4.46,0.99 -3.2,-0.74 -0.78,-0.74 1.11,-3.63 -1.62,-3.19 -2.17,0.83 -2.23,-1.41 -2.67,-2.1 -3.94,1.05 -1.51,-5.53 -5.39,-3.71 -2.36,1.07 -3.02,-4.27 -0.45,-4.53 1.73,-0.62 4.14,-3.17 4.52,-0.63 2.42,-0.22 3.66,2.56 5.83,0.13 1.3,-0.02 1.88,1.91 1.96,-0.36 0.89,-2.95 2.67,0.31 4.45,-0.43 0.58,-0.7 1.45,3.34 3.54,2.07 2.55,0.01 1.99,1.94 1.4,3.06 -1.22,1.97 -0.15,4.06 2.13,3.5 1.5,1.19 1.36,3.16 2.63,4.39 -1.48,2.22 -4.2,1.28 -5.1,4.2 -1.39,2.28 2.74,5.98 -1.59,5.37z\",\"name\":\"Belgium\"},\"it\":{\"path\":\"m350.4,500.36c-1.75,-1.38 -4.77,0.56 -6.21,-2.11 -0.98,-3.12 -4.25,-2.35 -6.74,-3.12 -2.11,-1.47 -4.61,-1.93 -6.58,-3.76 -2.2,-1.23 -6.25,0.31 -6.1,-3.66 0.15,-1.98 2.31,-4.17 3.5,-1.8 2.52,0.49 3.53,-4.85 5.24,-0.9 2.01,0.26 4.02,2.27 5.97,0.45 2.63,-0.1 5.81,0.01 7.46,-2.47 1.45,0.01 4.12,1.89 4.36,-0.76 1.1,1.6 3.69,-2.6 2.02,0.26 -1.4,3.25 -4.08,7.31 -3.12,10.66 1.21,0.69 0.93,2.35 2.17,3.37 -1.93,0.14 -1.88,2.41 -1.97,3.84z m7.22,-15.37c-2.78,-0.14 -2.87,-3.99 -0.28,-4.55 1.37,-2.08 -1.36,-4.79 2.17,-5.13 3.25,-2.22 -1.35,-4.63 -1.21,-7.46 -1.16,-2.63 -2.56,-4.66 -3.09,-7.45 -1.59,-2.98 -4.91,-0.29 -6.78,-2.73 -1.65,-0.84 -0.12,-5.17 -3.33,-5.63 -1.56,-0.37 -4.03,2.8 -2.57,0.22 0.06,-2.91 -3.33,-1.3 -4.25,-2.37 -0.69,-2.23 -3.26,-6.17 -5.36,-4.2 -1.73,-2.18 -4.5,1.85 -5.25,-1.44 -2.69,-0.65 -4.1,-2.62 -6.18,-4.28 -0.73,-3.32 -5.19,-3.11 -5.74,-6.57 -1.05,-1.9 -5.27,-0.02 -4.05,-2.26 -1.1,-2.38 -3.86,-3.39 -4.73,-5.46 -3.13,0.51 0.07,-2.73 -1.71,-4.47 -2.14,-2.56 -1.2,-6.42 -3.6,-8.63 -2.19,-1.12 -4.5,-0.88 -6.03,-3.28 -2.22,-0.9 -4.82,-2.51 -7.33,-1.86 -1.74,1.89 -3.46,3.3 -4.61,5.48 -1.55,2.14 -5.91,2.59 -3.27,-0.76 1.07,-4.25 -4.16,-0.46 -5.52,-3.08 -2.08,-1.9 -1.08,-4.02 0.62,-5.53 0.76,-2.12 -4.77,-3.84 -2.88,-4.68 2.55,0.23 5.53,-3.6 2.83,-5.28 -0.93,-1.94 -2.92,-4.5 0.7,-3.9 2.4,0.04 4.29,-1.2 6.65,-0.24 1.85,-1.05 2.45,-2.98 2.51,-4.87 1.03,-0.35 2.29,-2.18 1.57,0.13 -0.67,2.56 4.99,2.17 2.47,4.45 0.19,0.08 2.08,0.32 2.23,1.7 1.41,1.01 2.54,-1.65 0.98,-2.25 0.53,-2.02 3.41,-3.57 2.37,-5.9 0.68,2.09 2.82,3.69 4.41,1.42 0.81,0.91 2.52,3.75 3.07,0.97 -0.97,-1.55 1.29,-1.81 -0.84,-2.7 -0.29,-2.99 3.05,2.3 3.43,-1.02 -1.77,-2.29 0.88,-4.07 2.84,-1.92 2.41,1.34 1.9,-4.15 4.64,-2.65 2.33,0.51 5.21,-2.28 6.13,0.74 1.38,2.34 4.22,3.29 6.93,3.47 1.41,0.44 5.26,-0.07 4.99,0.93 -2.13,0.92 -2.35,3.92 0.43,3.72 -1.26,1.22 -1.47,2.53 -0.57,3.56 0.79,3.16 -4.05,-1.16 -3.93,2.42 -2.22,1.73 -5.54,2.13 -7.33,4.03 -0.52,1.97 1.06,2.99 1.39,4.46 3.61,0.71 -1.06,2.87 -0.87,4.28 0.35,2.85 0.62,6.32 3.48,7.85 2.75,2.1 5.47,4.43 8.75,5.58 2.03,1.86 2.11,4.88 3.12,7.29 0.93,3.7 3.47,6.75 6.72,8.67 2.2,2.52 5.18,4.19 8.71,3.54 1.79,0.5 5.88,-2.59 5.92,0.29 -0.8,1.53 -3.65,2.89 -1.29,4.86 4.13,2.94 10.13,1.81 13.75,5.65 1.89,1.55 5.85,0.5 6.34,3.52 1.71,1.18 6.04,2.73 4.13,5.37 0.4,1.63 -0.95,3.55 -2.34,1.36 -0.96,-2.97 -3.23,-5.68 -6.54,-4.48 -2.32,-1.32 -6.05,-2.69 -6.78,1.09 -1.28,2.2 -1.32,4.97 -2.42,7.17 0.64,2.84 4.59,1.65 5.83,3.73 1.59,0.26 0.35,2.98 1.81,3.8 -0.21,3.1 -5.83,1.6 -5.88,5 0.28,1.92 0.81,4.68 -1.72,5.06 -1.23,1.65 -1.39,4.64 -3.63,5.25z m-35.56,-71.98c1.98,1.43 0.5,-2.39 0,0z m-33.54,62.41c-0.72,-1.6 -3.1,-3.35 -3.37,-5.68 1.54,-2 1.07,-4.81 2.16,-7.03 -3.26,0.28 0.82,-2.8 -0.89,-4.55 -0.02,-1.96 -1.35,-4.24 -2.94,-4.22 0.19,-1.55 0.4,-3.39 2.06,-1.78 3.1,0.15 5.25,-2.55 7.52,-4.29 0.91,-0.84 5.63,1.48 2.53,2.55 -0.36,1.47 2.3,1.33 1.41,2.66 3.07,1.36 0.3,4.08 -0.53,6.16 1.23,2.67 0.22,5.65 0.3,8.76 -0.33,1.29 -0.37,5.73 -2.35,3.37 -1.49,-1.18 -4.61,-1.6 -3.46,1.11 -0.38,1.17 -0.94,2.88 -2.43,2.94z\",\"name\":\"Italy\"},\"by\":{\"path\":\"m402.72,308.87c0.99,-3.18 0.27,-7 -3.79,-7.04 -0.71,-2.3 3.14,-4.07 4.34,-6.18 -0.26,-5.15 -3.83,-9.19 -5.74,-13.77 2.18,-0.83 4.01,-0.87 5.95,-0.9 0.86,-1.84 2.51,-1.83 3.98,-0.84 -1.05,-1.12 -2.37,-3.07 0.28,-3.17 1.9,0.02 -0.71,-2.58 2.17,-2.24 -1.28,2.76 4.76,1.14 2.24,-1.38 -2.85,-0.47 0.33,-3.89 -1.4,-5.76 0.96,-1.56 2.7,-3.08 2.72,-4.65 2.53,0.76 4.43,-4.49 0.94,-3.47 -1.1,-1.17 0.25,-4.78 1.91,-6.11 2.45,0.48 4.37,-0.43 4.51,-3.22 0.17,-2.25 2.08,-1.78 3.18,-1.85 2.02,-2.32 2.15,2.85 3.69,0.14 1.75,-1.51 3.73,-0.83 3.53,1.45 2.17,2.99 3.24,-2.73 5.87,-2.54 1.93,0.2 3.24,2.17 5.04,1.95 0.25,2.02 -0.47,3.85 1.8,5.15 0.82,1.65 -1.87,4.51 1.47,4.95 2.1,-0.08 0.99,1.32 1.56,1.96 1.72,2.18 3.98,3.94 6.71,3.73 0,1.84 0.71,4.69 2.92,2.85 2.09,-1.22 3.09,0.78 3.28,1.76 2.02,-0.38 3.13,1.46 1.26,2.31 -0.06,3.07 -3.04,4.09 -5.35,2.65 -3.54,0.27 -2.85,5.57 0.51,5.52 0.97,2.55 1.33,5.72 3.91,7.42 -2.66,1.35 -6.88,2 -6.85,5.76 -1.23,2.53 1.43,5.57 1.33,7.2 -1.16,-1.33 -5.51,-3.73 -5.13,-0.77 -2.24,-2.52 -3.75,4.16 -4.59,0.03 -1.77,-2.65 -4.04,1.4 -4.28,1.56 -1.22,-2.58 -2.82,1.6 -3.58,-0.67 -1.01,0.66 -2.93,1.68 -4.34,1.01 -1.39,0.16 -1.96,2.41 -2.67,0.56 -2.3,-2.34 -5.69,0.72 -8.43,-0.73 -2.87,-0.21 -5.7,0.69 -8.51,0.87 -1.69,1.51 -4.3,1.17 -5.72,2.79 -0.82,1.63 -1.2,4.18 -3.37,2.88 -0.54,-0.03 -1.11,0.27 -1.34,0.78z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"m378.8,342.69c0.85,-2.71 -2.77,-1.44 -3.2,-3.81 -2.16,-0.74 -2.68,4.74 -4.1,1.6 -1.34,-0.42 -0.38,-2.05 -2.3,-2.3 -1.38,-1.23 -0.72,-3.2 -2.99,-2.63 -1.39,-1.14 -3.17,-0.83 -4.08,-0.27 -2.65,-1 1.12,-2.8 -1.66,-3.95 -1.04,2.08 -3.71,0.51 -5.13,-0.34 -2.56,-1.21 -1.29,2 -1.13,2.64 -1.27,1.67 -2.44,1.3 -2.92,-0.65 -1.25,-0.75 -2.67,-1.29 -0.72,-2.16 1.16,-2.1 -2.17,-2.93 -3.11,-1.63 -1.5,-2.25 -5.49,-1.16 -6.45,-4 -1.21,-1.39 -2.59,1.06 -1.9,-1.41 0.23,-2.18 -0.48,-4.58 -2.34,-5.49 -1.37,-2.65 0.61,-5.37 -0.78,-8.1 -2.17,-1.37 0.53,-5.96 -3.41,-5.97 -3.09,-2.11 2.9,-5.25 0.3,-8.13 -0.64,-1.64 -2.11,-4.93 -1.01,-5.69 2.39,-0.86 4.49,-2.6 7.02,-3.34 1.88,-0.91 4.34,-1.13 5.97,-2.18 0.73,-2.97 3.72,-4.13 6.19,-5.25 2.44,-1.51 5.22,-3.64 8.26,-2.74 0.34,2.92 2.37,6.29 5.83,5.11 2.32,-0.46 3.66,-2.87 6.19,-1.88 5.94,0.22 12.06,0.04 17.77,-1.75 2.19,-1.89 4.37,-0.56 6.59,0.69 0.91,5.68 5.67,10 6.52,15.73 -0.74,2.77 -4.55,3.76 -4.71,6.89 0.95,2.08 5.51,0.97 4.43,4.48 -0.75,3.1 1.11,5.48 1.99,8.14 0.77,2 4.89,2.48 3.07,4.57 1.18,1.35 3.03,3.77 0.15,4.64 -2.63,0.49 -3.02,4.28 -4.54,6.17 -0.82,2.29 -3.04,4.17 -2.56,6.78 1.11,1.72 -0.12,4.53 2.39,4.91 -2.96,0.2 -5.66,-0.81 -7.88,-2.64 -2.12,-1.23 -4.34,-0.31 -6.37,0.12 -1.06,0.6 -0.02,2.66 -2.03,1.15 -2.7,-1.27 -4.67,0.77 -6.02,2.87 -0.44,-0.92 -1.49,0.48 -1.34,-0.18z\",\"name\":\"Poland\"},\"jo\":{\"path\":\"m566.3,519.26c-0.01,-4.69 -2.26,-8.97 -3.12,-13.51 1.51,-3.32 4.45,-0.15 6.76,0.1 3.02,0.33 6.94,0.22 8.51,-2.87 4.44,-5.57 8.37,-11.53 12.83,-17.08 1.86,2.51 3.76,5 5.38,7.68 -2.06,2.03 2.19,4.71 3.12,1.72 0.91,2.72 -2.48,4.53 -4.03,6.38 -4,3.47 -8.47,6.39 -12.72,9.51 -2.44,0.61 -3.15,3.3 -0.46,3.9 2.58,1.36 5.17,2.72 7.71,4.17 -7.99,0 -15.99,-0 -23.98,0z\",\"name\":\"Jordan\"},\"gr\":{\"path\":\"m449.88,508.26c-1.41,-0.44 -0.91,-2.43 -2.98,-2.05 -2.92,-1.02 -4.66,0.87 -7.49,-0.12 -2.89,2.86 -3.34,-3.03 -1.84,-3.28 2.13,1.48 4.85,0.78 6.99,2.27 2.66,-1.89 5.67,-2.41 8.68,-1.61 1.64,-0.07 3.7,-0.37 4.57,-0.83 -1.03,2.5 2.95,2.63 3.64,0.39 1.59,-1.01 2.86,-0.15 1.23,1.36 -4.14,0.67 -8.27,1.86 -12.04,3.72l-0.39,0.1 -0.37,0.03 0,0z m-26.29,-13.55c-0.61,-2.64 -1.46,-5.84 -4.37,-6.76 -3.02,-0.62 -1.68,2.8 -1.92,4.11 -2.48,0.25 -0.03,-2.58 -2.33,-3.13 -1.56,-1.69 2.11,-3.33 -0.42,-5.29 -1.75,-1.46 -3.48,-2.23 -4.88,-3.8 -1.71,-0.32 1.67,-2.18 0.95,-3.89 1.31,0.41 3.43,-0.58 4.2,-2.4 2.31,-0.03 5.27,1.8 8.03,2.01 1.1,0.72 3.08,0.98 3.24,1.46 1.77,0.36 1.5,3.47 4.29,3.78 1.97,0.86 -3.33,1.22 -3.75,-0.39 -3.29,-1.87 -3.6,3.04 -0.88,3.97 1.42,2.4 3.54,4.49 2.98,7.25 0.93,1.21 1.93,2.16 0.11,0.68 -1.13,-1.37 -3.59,-4.36 -5,-1.33 -0.38,1.2 -0.28,2.48 -0.25,3.72z m12.62,-17.67c-0.61,-1.76 -3.37,-2.18 -4.61,-3.83 -1.54,-1.35 -1.12,2.07 -3.22,1.63 -1.32,1.11 -3.33,0.37 -1.06,-0.31 2.53,-1.38 -0.23,-3.22 -1.98,-2.17 -2.19,0.64 -2.76,-3.59 -4.29,-0.5 0.28,-1.81 -1.78,-2.98 -1.95,-0.63 -1.85,0.67 -5.66,-0.17 -7.42,2.31 -1.43,-1.51 -2.69,-1.73 -3.58,0.32 -0.06,-3.13 -3.02,-4.71 -4.64,-5.97 -0.05,-3.03 -3.45,-4.15 -5.3,-5.69 0.58,-2.13 -4.66,-2.22 -1.22,-2.7 1.45,0.13 1.31,-1.81 1.97,-2.79 -2.74,-2.59 4.57,-2.51 2.29,-5.81 0.57,-2.27 3.93,-4.04 1.77,-6.57 2.29,-1.19 5.68,-0.59 7.21,-3.12 0.92,-4.2 5.51,-0.91 7.7,-3.66 0.88,-0.81 0.03,-3.12 2.26,-2.13 2.68,-1.49 5.94,-1.98 8.75,-3.4 1.35,-1.69 4.25,-2.43 5.72,-0.71 1.88,0.93 3.48,-0.95 5.39,0.66 2.83,0.48 5.06,-1.99 7.75,-2.56 2.63,-1.48 -0.92,-3.81 -0.19,-4.93 2.53,-0.82 6.54,2.78 3.07,4.45 -2.66,1.03 1.16,6.08 -1.92,6.2 -2.59,-1.16 -5.58,1.42 -8.08,-0.62 -2.31,-0.06 -3.98,4.61 -5.94,1.87 -2.75,-0.21 -2.93,5.39 -5.82,3.29 -2.56,0.13 -2.19,2.87 -0.61,3.88 1.51,1.31 -0.02,1.67 -0.46,3.12 -2.01,-0.91 -2.94,1.12 -4.72,-0.3 -3.05,1.25 -3.01,-2.2 -1.76,-3.97 -0.09,-0.54 -2.81,1.81 -3.44,2.49 -1.02,1.92 0.18,3.87 -0.21,6.03 1.55,1.98 3.8,3.4 4.84,5.84 0.92,0.8 4.25,2.4 3.42,2.64 -2.14,-2.19 -4.85,-0.02 -3.78,2.46 1.31,0.13 3.2,1.7 0.6,2.21 -1.13,0.04 -4.23,2.36 -2.68,2.49 2.62,-1.25 4.96,1.17 7.41,0.98 0.52,2.36 2.91,0.77 3.98,2.53 2.06,0.36 4.93,0.25 3.64,2.95 0.1,1.33 1.96,3.02 1.13,4.05z m-32.41,-12.35c-2.66,1.97 2.35,4.76 3.65,1.72 0.88,-3.08 -2.48,0.37 -3.25,-1.63l-0.4,-0.09 0,0z m1.2,12.17c-2.12,0.67 -3.94,-2.49 -2.24,-3.05 -0.52,2.11 1.79,2.11 2.24,3.05z m35.21,-4.75c-1.33,-0.45 -3.15,-2.25 -0.48,-1.45 1.91,-0.84 2.27,1.01 0.48,1.45z m-3.1,-3.76c-1.98,-1.68 -5.22,0.85 -5.86,-2.11 -1.43,-1.48 -5.05,-2.2 -5.77,-2.78 2.78,-2.67 4.14,2.1 7.15,1.68 1.66,0.78 3.06,-0.62 3.9,1.22 0.4,0.59 0.43,1.32 0.58,1.99z m-10.1,-17.81c-3.53,-1.73 2.32,0.07 0,0z m3.59,-1.57c-2.32,-1.62 -0.44,-1.62 0.45,0.12l-0.11,0.22 -0.34,-0.34z\",\"name\":\"Greece\"},\"tm\":{\"path\":\"m679.06,344.59c-1.21,-0.72 -0.78,-2.05 -2.51,-2.48 -0.91,-2.53 -0.44,-5.74 -2.11,-7.9 1.43,2.3 3.65,0.44 4.81,-0.09 -0.04,3.47 0.02,6.95 -0.03,10.42l-0.16,0.04z m-9.11,-14.43c-1.83,0.29 -2,-1.85 -2.97,-2.07 -2.67,-0.77 0.57,-4.63 0.48,-6.52 1.65,-3.13 3.89,-6.16 6.88,-8.09 1.36,-0.18 5.09,-1.73 4.9,0.43 0,2.65 0,5.3 0,7.95 -2.35,-1.52 -3.83,-5.43 -6.79,-5.11 -2.41,2.22 -6.24,4.38 -5.17,8.26 -0.05,1.27 0.71,3.09 1.95,2.4 0.34,0.89 0.41,1.85 0.72,2.75z m9.29,-40.46c-2.98,-4.77 -6.29,-9.32 -9.41,-14 0.44,-3.11 3.69,-4.89 4.74,-7.82 1.56,-2.45 3.21,-4.85 4.68,-7.37 0,9.73 0,19.46 0,29.19z\",\"name\":\"Turkmenistan\"},\"kz\":{\"path\":\"m665.18,326.25c-2.97,-1.86 -1.2,-5.67 -2.65,-8.21 0.53,-3.17 -3.51,-2.8 -4.88,-0.83 -1.79,-1.67 -2.48,2.95 -4.91,0.84 -1.43,-2.21 -3.22,-0.68 -4.76,0.52 -0.4,-3.09 -3.28,-5.18 -6.16,-5.75 -2.02,-1.36 -4.24,-5.19 -6.86,-2.37 -2.9,1.87 -4.15,-4.1 -0.51,-3.35 1.06,-1.32 1.8,-1.79 3.42,-0.84 1.53,-0.78 2.76,-2.24 4.06,-3.11 -1.44,-2.18 -5.78,0.43 -7.07,-2.22 0.12,-1.34 3.47,-2.2 0.83,-3.45 -1.26,-2.14 2.16,-2.43 1.45,-4.52 2.51,-0.62 4.01,-2.7 6.42,-3.67 1.55,-0.68 5.82,-1.56 4.27,-3.73 -2.44,0.42 -5.53,1.2 -4.64,-2.51 0.27,-3.12 -0.67,-6.7 -3.34,-8.56 -1.46,-0.11 0.78,-3.59 -1.86,-3.15 -1.5,-2.77 -4.84,0.02 -6.51,0.7 0.1,2.2 -0.93,4.69 -3.45,3.61 -2.4,0.56 -6.57,-0.38 -7.49,3.29 -0,2.58 -2.65,3.31 -2.68,6 -1.27,1.57 -1.07,5.37 -3.43,5.36 -2.12,-0.08 -2.2,2.62 -2.46,3.63 -1.26,0.74 -5.86,0.39 -4.64,-0.82 3.5,0.56 3.47,-4.4 0.06,-4.32 -3.14,-1.51 -5.73,-4.02 -8.93,-5.36 -2.47,-0.32 -4.25,2.11 -6.54,2.07 -0.12,1.28 0.37,2.59 -1.35,1.17 -1.8,-0.93 0.01,-2.79 -2.21,-3.3 0,-2.52 -4.2,-0.23 -5.74,-0.66 -0.96,-2.72 -0.8,-5.85 -0.41,-8.82 0.73,-3.23 -4.34,-1.07 -3.74,-4.61 -1.48,-2.21 -1.17,-5.16 0.32,-7.28 -2.58,-1.5 -1.53,-6.73 1.82,-4.04 2.29,0.54 4.78,3.98 7.13,1.98 1.97,-1.65 2.09,-5.06 -0.41,-5.79 -0.5,-2.08 -4.31,-2.93 -1.9,-4.7 0.1,-1.7 1.79,-4.1 2.05,-4.93 -2.7,-0.86 -1.25,-3.39 0.39,-3.59 0.3,-2.73 3.83,-4.97 2.24,-7.88 -1.16,-1.26 2.12,-0.49 0.87,-2.37 -0.73,-0.82 1.71,-0.82 1.99,-1.86 2.14,-0.45 -1.05,2.08 1.69,2.02 1.48,-0.55 1.41,-1.96 2.93,-1.7 0.29,-1.63 -1.06,-3.26 1.01,-4 0.5,-1.63 0.88,-2.2 1.87,-0.46 3.2,2.4 4.8,-3.1 7.46,-3.43 1.62,1.55 3.73,2.04 5.43,0.37 1.27,1.42 3.01,1.43 4.62,1.61 -0.26,2.56 4.05,4.44 3.68,0.87 -0.11,-2.04 -2.23,-3.06 -3.52,-3.49 2.49,-1.89 5.28,1.44 8.06,-0.13 2.65,1.71 2.89,-3.09 2.88,-4.82 -0.94,-1.46 1.32,-2.87 0.36,-4.29 1.64,0.4 1.75,-1.1 1.34,-1.85 1.08,-2.25 2.79,-1.39 4.44,-0.52 1,-0.8 1.78,-2.46 2.98,-2.01 -1.89,-1.21 -2.16,-3.64 0.61,-3.9 -0.26,-1.23 0.14,-1.29 1.28,-1.45 1.06,-0.94 2.07,2.58 4.01,1.26 1.98,1.74 4.96,-3.12 5.37,-1.36 0.29,1.89 3.37,-0.99 2.39,-2.55 -0.11,-1.94 -1.41,-4.21 1.46,-3.17 2.91,-0.36 4.26,-3.79 5.34,-6.17 1.47,-2.93 -2.47,-4.1 -2.09,-6.64 -1.36,-2.25 -4.48,-0.11 -5.91,0.2 -2.22,-2.09 -4.58,3.81 -4.91,0.16 -1.29,-0.68 -2.71,2.23 -3.65,0.73 1.29,-1.47 1.19,-4.25 2.39,-6.18 1.51,-3.13 -2.02,-3.28 -3.58,-4.22 -3.1,0.97 0.81,-3.99 -1.61,-4.03 1.01,-2.42 4.84,-2.6 5.47,-5.2 -0.01,-2.9 -4.66,-1.68 -5.74,0.02 -1.13,1.71 -4.5,-0.24 -1.75,-0.92 2.16,-2.49 -2.77,-3.66 -2.05,-1.2 -2.33,3.55 -0.85,-4.14 -3.83,-1.64 1.26,-0.48 -0.31,-3.76 1.92,-2.68 1.3,1.04 0.21,-2.26 2.14,-1.3 2.74,-0.21 -1.15,-2.68 1.49,-3.26 1.26,2.1 3.9,-0.29 1.53,-1.19 0.54,-2.35 2.7,-4.74 3.28,-7.51 1.48,-0.31 3.12,-1.58 1.37,-2.69 1.12,-2.77 3.18,-4.87 5.44,-6.15 -0.1,-1.8 -3.04,-1.6 -1.06,-3.51 0.73,-2.38 2.55,-3.81 3.48,-6.49 2.08,-2.53 2.36,-5.49 3.47,-8.34 0.29,-1.69 3.72,-3.96 0.35,-4.97 -1.01,-0.43 2.31,-2.04 0.29,-3.41 -1.75,-1.68 3.22,-0.78 0.65,-2.37 -1.73,-0.49 3.06,-0.82 1.8,-2.5 2.25,-1.54 6.79,-0.26 5.35,-4.64 -0.2,-2.91 3.08,-0.72 4.32,0.28 1.69,1.75 4.12,-0.2 4.78,2.52 1.5,0.9 1.01,3.62 3.74,3.35 2.67,0.01 -0.81,-3.38 2.11,-2.14 1.93,-0.51 -0.97,-4.41 1.41,-3.27 0,52.65 0,105.3 0,157.95 -2.28,4.16 -5.07,8.03 -7.49,12.09 -2.11,1.94 -4.29,5.26 -1.49,7.58 3.01,4.53 6.37,8.91 8.98,13.65 0.02,6.62 -0.04,13.29 0.04,19.87 -3.05,0.34 -6.58,0.54 -8.5,3.49 -2.48,2.8 -4.81,5.91 -5.35,9.73 -0.09,0.46 -0.18,0.92 -0.25,1.38z\",\"name\":\"Kazakhstan\"},\"fi\":{\"path\":\"m382.62,208.07c0.7,-3.07 -2.78,1.32 -3.86,-1.32 0.05,-0.96 1.56,-3.75 -0.71,-2.21 -1.13,1.69 -1.33,-1.45 -2.92,-0.68 -0.94,0.89 -2.97,-0.9 -3.55,-0.42 -0.14,-2.36 -1.97,-0.15 -2.25,-0.03 -0.63,-1.67 -0.91,-3.6 -2.08,-5.17 1.86,-0.74 1.72,-4.06 0.26,-5.25 -0.34,-1.47 3.17,-0.38 1.07,-2.02 -1.2,-2.15 -2.78,-4.06 -3.52,-6.25 0.62,-2.08 -0.63,-3.97 -1.49,-4.42 0.49,-1.2 -0.5,-2.29 -0.95,-2.29 0.13,-1.71 3.82,-4.59 2.52,-5.52 -3.07,-0.18 0.32,-3.17 1.17,-0.45 1.02,-1.23 3.05,-2.66 2.12,-4.84 0.01,-1.7 0.15,-2.94 1.36,-1.21 0.12,-2.42 1.26,-4.91 3.64,-5.85 -0.72,-2.45 1.54,-4.8 2.24,-7.01 -0.27,-2.84 0.9,-5.24 3.71,-6.24 1.6,-1.13 1.77,-3.36 -0.51,-2.84 -0.44,-2.27 -0.12,-5.32 -2.74,-6.02 -2.3,1.99 -2.43,-3.68 -4.97,-1.88 -1.75,-2.03 -4.37,-4.52 -3.48,-7.48 1.52,-3.03 -0.83,-5.16 -2.34,-7.18 -0.2,-1.46 0.87,-4.46 -1.6,-3.74 -0.01,-2.39 -0.15,-4.83 -1.27,-7.01 -2.48,-1.84 -4.57,-4.14 -8.05,-4.18 -1.93,-1.7 -6.43,-2.88 -5.46,-6.12 -0.41,-2.16 1.14,-3.53 2.73,-1.48 2.59,1.31 1.85,6.17 5.39,5.44 2.27,0.35 4.34,-0.45 4.98,-2.51 2.4,-0.26 6.27,3.96 5.78,-0.87 -0.39,-2.02 3.32,-1.43 1.97,-3.98 -1.32,-3.02 -2.11,-7.03 -0.35,-9.99 -0.31,-2.74 4.21,-0.11 4.22,-3.35 1.47,-1.91 3.36,2.08 5.49,1.78 2.95,0.9 3.14,3.84 1.7,6.03 1.41,1.64 0.21,2.38 -0.46,3.84 1.14,0.8 2.75,1.02 1.72,2.87 -0.47,3.13 2.02,6.77 5.45,6.28 1.67,2.35 6.13,3.59 3.92,7.14 -0.75,2.27 -1.97,4.85 -0.96,7.21 3.59,3.29 6.5,7.25 9.05,11.36 0.06,1.49 -2.83,0.38 -0.84,2.06 -0.22,2.17 0.21,4.77 1.29,6.07 -1.26,3.74 5.08,3.34 3.58,6.82 0.48,3.1 6.13,1.5 4.41,5.52 -0.25,1.99 -2.95,4.48 0.53,5.03 2.93,1.69 6.43,2.67 8.87,5.07 1.06,2.48 -0.3,5.24 -0.57,7.75 -2.26,6.49 -4.21,13.14 -7.27,19.3 -1.55,2.69 -3.59,5.26 -4.3,8.32 -1.76,0.21 -3.5,-1.24 -4.38,1.19 1.52,0.77 -3.01,1.75 -1.49,-0.16 -0.76,-2.31 -1.99,0.16 -1.56,1.47 -1.82,-2.09 -4.5,1.44 -1.45,2.01 0.62,2.53 -3.67,-2.15 -3.14,-0.28 0.89,2.06 -2.52,3.25 -2.85,3.52 -2.72,0.33 -4.14,2.39 -6.64,3.79l-0.57,0.27 -0.58,0.1 0,0z\",\"name\":\"Finland\"},\"de\":{\"path\":\"m302.45,372.15c0.39,-0.91 1.99,-2.77 0.16,-1.49 -1.57,0.93 -2.11,-2.91 -4.19,-2.08 -2.04,1.85 -3.44,-2.27 -6.01,-1.15 -2.15,0.46 -2.02,-2.87 -4.5,-1.23 -1.72,0.52 0.38,3.76 -1.44,1.73 -1.84,0.2 -4.84,0.84 -5.69,-0.07 -0.64,-1 1.16,-4.13 0.65,-5.99 1.9,-2.36 0.91,-6.25 3.86,-7.87 2.56,-1.63 0.59,-4.12 -1.86,-3.67 -2.56,0.2 -2.84,-3.15 -5.48,-1.32 -1.23,0.08 -2.11,-2.54 -3.28,-1.12 -0.17,-2.33 -4.09,-3.23 -1.38,-5.35 1.81,-3.01 -5.32,-3.18 -1.88,-6.63 1.67,-1.33 2.21,-2.89 0.22,-4.22 1.95,-2 -1.2,-0.75 -1.34,-2.77 1.01,-1.22 0.18,-2.51 -0.16,-3.21 1.78,-1.86 2.88,-5.05 1.22,-7.64 -2.19,-2.06 0.71,-2.52 2.29,-1.67 2.39,0.34 3.33,-2.08 3.64,-3.33 2.38,-1.19 2.15,-5.11 -0.59,-5.64 -0.03,-1.55 3.42,0.08 2.83,-2.66 0.31,-2.54 1.52,-4.9 2.38,-7.37 -0.34,-0.18 -3.53,0.96 -2.22,-1.41 0.9,-2.9 4.25,-1.28 6.2,-2.15 0.16,2.03 2.57,6.54 4.4,3.34 0.14,-1.85 -1,-6.59 2.18,-4.76 1.27,0.28 4.88,-0.75 2.09,-1.66 -3.15,0.44 1.18,-4.81 -1.98,-5.31 4.2,-1.72 -2.92,-4.5 -0.43,-6.3 2.37,1.37 6.56,0.38 7.64,2.55 -0.45,0.53 1.55,0.68 -0.04,1.71 -1.46,1.22 0.47,2.21 1.51,1.23 -1.09,2.31 1.04,2.07 1.81,0.68 1.67,1.18 3.81,1.56 5.14,0.49 0.21,1.77 -4.56,3.93 -2.04,5 1.38,0.2 3.65,-1.17 3.27,1.31 2.66,-0.01 2.46,-4.21 4.91,-4.12 1.43,1.57 3,-1.39 3.56,-2.49 0.61,-2.1 3.54,-0.7 4.16,-0.17 0.88,1.8 2.57,3.83 4.93,3.32 -0.95,4 4.51,3.57 4.6,6.93 3.14,3.28 -3.49,6.24 0.16,9.19 2.04,0.76 2.91,2.01 2.23,4.17 0.93,1.99 2.9,4.81 0.48,6.79 1.68,1.23 1.03,4.11 3.18,4.83 0.68,1.92 0.82,5.65 -0.66,6.5 -0.87,-1.78 -4.46,-3.53 -3.95,-0.41 1.16,0.88 -2.8,1.08 -3.3,2.22 -2.5,0.18 -3.71,2.69 -5.8,3.41 -0.73,-0.12 -0.57,1.65 -2.06,0.72 -2.78,-0.99 -2.28,4.11 -4.17,1.96 -3.51,0.44 1.56,4.5 2.19,5.46 -2.26,2.79 1.42,6 3.88,7.15 1.53,1.88 3.04,3.44 5.43,4.44 2.44,1.22 2.24,4.86 -1.02,3.8 -0.57,1.52 -0.37,3.53 -2.79,3.73 -3.29,0.46 -2.9,3.65 -1.01,5.5 0.76,1.93 -3,3.3 -3.36,1.75 -0.45,-0 -3.6,-1.29 -2.93,0.98 -3.48,-0.65 -5.56,1.87 -8.47,2.95 -1.59,-0.45 -2.06,-3.03 -4.27,-1.95 -2.85,-1.05 -0.37,3.13 -2.89,3.37z m-6.7,-79.27c-0.21,2.06 4.44,6.44 3.78,2.2 -1.59,0.14 -2.26,-2.95 -3.66,-2.25L295.75,292.88z m29,76.43c-1.59,-1.17 -0.3,-3.24 0.69,-1.13 -0.04,0.43 -0.23,0.99 -0.69,1.13z m-0.01,-83.07c-2.42,-0.16 -2.07,-4.22 0.32,-2.83 -1.17,-1.29 -0.5,-0.74 0.89,-0.58 -1.82,1.06 2.32,2.92 -0.86,3.34l-0.35,0.07 0,0z\",\"name\":\"Germany\"},\"se\":{\"path\":\"m323.06,272.38c-2.85,0.68 -1.5,-2.92 -0.88,-3.47 -1.34,-1.73 -2.37,-3.77 -4.04,-5.01 0.79,-1.22 -1.53,-2.8 1.01,-1.48 2.77,0.18 -2.19,-2.84 0.98,-2.65 2.38,-2.15 -2.21,-3.59 -2.38,-5.5 -2.18,-0.93 -1.38,-4.24 -3.57,-5.03 -0.5,-2.35 -1.05,-4.69 -2.37,-6.57 0.36,-2.06 3.34,-6.36 -0.08,-6.96 -1.38,2.23 -3.39,1.39 -2.89,-1.18 0.66,-1.66 -0.9,-5.32 -0.3,-5.55 1.22,1.95 2.5,1.63 3.29,-0.5 0.91,-2.52 -0.9,-5.03 -0.38,-7.57 2.08,-1.14 -0.02,-3.96 3.05,-4 2.39,-1.51 1.37,-4.54 1.71,-6.85 0.8,-2.58 -4.53,-6.31 0,-6.91 1.04,-0.81 1.22,-3.31 1.37,-4.79 -1.12,-2.38 -6.01,-2.81 -4.1,-6.25 1.84,-3.74 -1.45,-6.92 -1.02,-10.47 0.52,-2.44 0.53,-5.73 -0.14,-7.32 0.64,-2.96 1.19,-6.43 4.34,-7.91 2.35,-0.49 6.23,1.31 6.51,-2.71 0.96,-3.43 -4.73,-4.28 -1.85,-7.71 0.9,-2.93 3.32,-5.66 2.42,-8.87 0.15,-1.92 0.67,-3.87 -0.11,-5.73 -1.01,-2.32 3.73,-0.74 3.99,-3.33 -0.13,-2.25 -0.54,-4.21 1.52,-5.81 2.69,-2.56 2.7,-6.48 0.46,-8.94 2.93,-1.39 1.66,-4.89 3.52,-7.09 1.35,-0.88 5.1,1.96 4.84,-1.65 -0.51,-1.95 -1.78,-6.23 1.75,-4.92 2.24,0.45 5.5,2.66 7.12,-0.07 1.29,-1.53 -2.75,-1.44 -0.66,-3.53 0.95,-1.42 0.76,-3.57 -0.83,-4.28 3.02,-0.52 2.64,2.5 5.35,3.5 2.17,2.8 6.24,2.01 8.45,4.17 1.81,1.26 3.78,2.76 3.22,5.22 1.03,1.27 -0.68,4.42 1.98,4.24 -0.85,2.83 1.11,4.63 2.62,6.51 0.04,2.86 -1.49,6.25 1.05,8.57 1.6,1.29 3.31,4.27 -0.1,3.45 -1.76,0.14 -2.91,-0.92 -2.17,1.42 -0.95,1.6 -5.22,-2.83 -4.14,0.58 0.84,1.65 -2.05,2.45 -1.57,1.13 -2.06,-0.65 -0.53,1.54 0.66,1.49 -0.6,0.2 -1.52,0.57 -0.3,1.82 -1.49,0.26 -4.7,1.58 -1.68,2.64 2.32,2.25 -3.2,4.64 -1.02,7.19 1.54,0.9 4.4,2.82 1.64,4.33 -1.68,2.21 -0.66,5.89 -3.12,7.17 -0.94,1.59 -3.16,2.96 -4.81,3.45 -0.21,1.34 -1.22,2.8 -1.35,4.54 -1.77,-1.72 -2.61,0.56 -2.76,1.85 -1.12,0.81 -2.56,2.13 0.01,2.01 -0.44,1.31 -4.33,0.73 -2.47,3.43 -0.06,0.73 -0.49,2.94 -1.88,1.95 -2.76,-0.24 -2.07,3.37 0.06,3.69 -0.77,1.95 -1.46,4.89 0.24,6.81 -3.74,-1.85 -2.36,2.41 -0.94,3.91 0.18,1.27 -3.07,0.5 -0.73,1.44 0.84,1.85 1.12,4.66 1.43,6.67 -0.32,2.79 5.02,-0.22 4.86,2.53 0.7,1.96 4.04,1.71 4.48,1.82 -3.19,-0.43 -0.28,3.53 1.17,3.32 1.13,1.08 3.55,2.93 0.69,3.17 -0.96,1.32 -2.08,3.54 -3.42,3.71 1.54,1.27 -2.79,1.25 -1.63,-0.68 0.49,-2.21 -4.13,-4.8 -3.64,-1.69 1.43,0.51 0.2,2.21 2.13,2.69 -1.79,0.21 -3.94,-2.79 -5.52,-0.41 -0.59,-1.15 -2.36,-1.3 -1.99,0.35 -2.53,-0.76 -3.68,2.49 -1.03,1.96 1.95,-0.49 4.14,0.17 6.05,0.67 -0.71,2.97 4.28,-1.28 2.88,1.93 -0.14,2.13 -0.95,4.88 -3.12,4.77 0.18,1.44 -0.14,1.56 -2.15,1.24 -1.48,-0.93 -5.69,1.16 -2.24,1.59 0.93,-0.93 4.88,0.08 2.51,0.95 -1.3,-0.74 -2.65,-1.15 -1.6,0.7 1.1,0.49 3.58,1.85 1.37,2.42 -0.48,1.93 2.49,4.34 -0.83,3.78 -1.22,1.55 3.46,2.55 0.79,3.59 -0.59,1.57 1.8,1.83 -0.1,3.07 -0.36,1.71 1.22,3.68 -0.24,4.3 0.8,1.29 0.72,4.62 -0.49,4.51 -0.92,1.99 -0.01,8.09 -3.9,5.74 -0.75,-0.04 -1.2,1.04 -1.28,-0.03 -1.81,1.13 -4.91,0.3 -5.24,2.54 -3.47,0.86 -2.77,5.15 -1.48,7.22 -1.25,2.12 -3.78,-0.71 -5.21,1.44 -0.58,0.2 -1.19,0.28 -1.8,0.28z m21.76,-13.69c-0.6,-1.64 -0.03,-5.51 0.58,-5.62 -0.47,1.84 -0.07,3.79 -0.58,5.62z m11.16,-10.28c-1.47,-2.04 -0.57,-3.97 -1.15,-6.17 0.13,-1.54 3.5,-5.82 3.93,-3.32 -1.59,1.67 -1.23,4.3 -0.42,5.29 -0.56,1.58 -2.33,2.58 -2.36,4.21z m-6.04,-22.62c-0.58,-0.9 -1.01,-2.64 0.37,-3.19 0.51,-2.57 3.62,1.5 0.73,1.06 -0.71,0.44 -0.93,1.57 -1.1,2.14z m3.41,-4.74c-1.71,-0.56 1.15,-0.98 0,0z\",\"name\":\"Sweden\"},\"no\":{\"path\":\"m283.92,239.69c-2.05,0.82 -1.04,-2.38 -3.04,-0.45 -2.25,0.63 -2.45,-1.19 -0.48,-1.71 1.16,-1.98 -1.94,-1.69 -2.54,-0.89 -1.88,-1.69 -4.73,-3.13 -5.46,-5.54 0.16,-1.17 0.04,-2.84 1.26,-1.53 2.45,-0.31 0.5,-3.28 2.63,-3.15 -0.92,-1.74 3.6,-1.24 2.16,-3.19 -1.49,-0.01 -3.77,0.75 -1.5,-1.08 1.07,-1.87 -4.03,-2.48 -3.95,0.31 -0.43,1.99 -1.31,-1.27 0.03,-1.59 -0.59,-1.71 3.37,0.46 2.3,-1.73 2.11,-0.09 3.7,-3.31 0.62,-1.92 -2.12,1.06 -0.9,-1.62 0.69,-0.69 -1.77,-1.8 3.78,-2.21 0.57,-3.6 -0.56,-4.05 -3.61,3.53 -2.9,-0.4 -0.09,-1.07 2.45,-2.14 0.56,-2.38 1.23,-1.75 0.14,-1.45 -1.12,-1.67 -0.48,-2.03 3.39,-0.54 1.29,-2.62 -1.57,-0.11 -2.3,1.01 -2.92,1.83 0.23,-1.47 -0.96,-1.1 0.71,-1.97 1.17,-0.81 3,-0.92 0.68,-1.9 -1.68,1.41 -3.48,-0.55 -1.63,-1.27 2.35,2.15 4.25,-2.5 6.35,0.43 1.83,1.86 1.2,0.18 2.05,-1.15 2.54,-0.3 -0.18,4.44 3.17,3.6 2.08,-1.21 -0.36,-4.05 -1.72,-4.82 -1.87,-1.19 -2.86,1.17 -4.77,-0.24 -1.71,-0.32 -5.74,2.24 -5.21,-1.12 1.24,-0.84 -1.48,-1.91 1.02,-1.63 0.93,-0.21 -1.41,2 0.86,1.55 1.15,0.42 4.11,-2.74 2.32,-2.56 -1.17,0.24 -3.58,0.07 -2.04,-0.78 0.01,-1.15 -2.86,-0.72 -1.37,-2.6 1.92,-1.21 1.67,-2.06 2.44,-3.76 1.13,0.7 1.55,1.95 2.59,0.89 1.71,1.83 3.67,-1.21 0.78,-1.26 -1.72,-1.7 2.02,-2.98 1.47,-0.81 -0.08,1.94 2.1,2.28 1.49,0.15 -1.54,-0.73 -0.39,-3.26 1.26,-2.04 -0.9,2.54 1.99,2.46 3.2,1.29 -0.57,-1.07 -3.07,-0.84 -2.76,-2.61 -1.93,-0.78 -0.88,-1.18 0.63,-1.75 -0.31,2.53 1.54,0.84 1.46,0.89 0.76,2.66 4.97,0.16 2.35,-0.64 -1.68,1.13 0.97,-2.47 -1.62,-1.35 -1.33,0.1 -1.92,0.19 -0.62,-0.55 0.77,-1.45 -3.3,-3.11 -0.25,-2.56 1.36,2.34 4.5,0.23 4.77,-0.42 0.76,1.21 1.99,4.78 3.9,2.5 -0.19,-1.38 -1.61,-1.13 -0.15,-1.91 -0.52,-0.88 -3.96,-0.82 -1.31,-0.98 2.56,1.07 3.94,-2.68 1.6,-3.22 -2.38,3 -0.29,-2.57 1.23,-0.79 -1.13,2.54 3.47,1.05 2.52,-0.37 0.79,-1.1 1.41,-2.4 1.63,-0.68 1.42,0.16 -1.15,3.34 1.22,2.27 1.23,1.9 3.05,-0.32 1.25,-1.45 2.02,0.81 5.84,0.23 4.08,-2.68 2.55,-0.11 3.44,-2.71 1.89,-3.48 2.7,-0.44 1.04,-4.25 -0.61,-2.47 -0.94,0.99 -4.98,3.53 -3.32,4.59 1.36,-0.14 -3.55,4.36 -3.84,1.11 1.8,-0.4 1.59,-2.97 -0.14,-1.47 -1.54,1.59 -1.58,-0.15 0.05,-0.55 1.29,-0.12 3.11,-2.23 0.74,-1.96 0.49,-1.84 0.69,-1.57 2.55,-2.66 -0.01,-1.8 3.87,-1.75 1.44,-3.46 1.6,-3.11 2.62,3.25 4.94,0.36 -0.07,-0.91 1.83,-2.92 -0.44,-2.32 -1.97,0.37 0.51,-3.35 0.91,-3.77 2.46,-0.4 5.23,-2.14 6.04,-4.52 -0.69,-1.41 -1.97,0.46 -0.84,-1.25 0.83,-2.9 -4.58,-0.06 -1.84,-2.23 2.88,-0.42 -1.2,-4.08 2.2,-4.17 1.93,2.26 1.6,-1.88 -0.02,-2.41 1.79,-0.55 2.5,-1.55 4.25,-0.42 0.51,-2.76 -3.45,-2.33 -4.43,-3.58 -0.26,-3.01 2.59,-3.12 4.58,-3.67 0.29,-0.78 -0.81,-3.13 0.47,-2.48 2.46,0.65 2.45,-2.36 2.11,-3.23 1.27,-0.62 3.06,1.08 2.81,-1.49 0.06,-2.75 -4.88,2.23 -2.7,-0.53 -0.33,-1.84 3.17,-2.65 3.79,-1 0.44,2.38 2.69,0.96 0.74,-0.53 -0.37,-0.19 2.89,-3.12 0.16,-2.12 -1.52,1.62 -2.69,-1.67 -0.67,-0.49 2.18,0.6 1.78,-2.26 0.1,-2.63 1.64,-0.99 1.76,-1.25 3.09,0.31 2.65,0.05 -0.04,3.53 -1.13,3.83 -0.13,2.43 3.49,4.78 1.03,6.94 -1.52,2.38 -4.26,5.02 -2.96,8.1 -1.03,2.23 -5.62,0.34 -3.97,3.87 1.08,2.24 -0.41,4.62 0.29,6.91 -0.21,2.4 -1.5,4.65 -2.48,6.84 -1.89,2.33 -0.64,4.78 1.42,6.24 1.36,2.71 -1.06,4.75 -3.56,3.4 -3.47,0.13 -6.05,3.54 -6.55,6.75 -0.09,2.61 -2.39,4.76 -0.87,7.58 1.7,0.33 -0.26,3.51 0.65,5.09 0.93,2.11 2.11,4.27 1.04,6.66 -1.85,3.6 1.33,5.61 3.87,7.28 0.34,1.26 -0.49,2.52 -0.69,3.78 -4.37,0.5 -1.64,4.45 -0.68,6.73 -0.19,2.39 0.87,5.69 -1.37,7.29 -2.33,-0.08 -2.37,2.05 -2.44,3.42 -2.81,2.64 1.45,6.5 -0.89,9.33 -0.63,-0.51 -0.86,-4.28 -3.41,-3.07 -1.98,0.66 -1.1,-2.02 -2.18,-2.85 0.06,-1.66 0.25,-4.8 -1.34,-6.05 -1.51,0.96 0.6,3.37 -1.47,1.82 -1.6,1.08 1.29,3.05 0.43,4.75 1.82,1.57 -1.36,1.57 -0.61,3.28 -0.57,0.33 -1.78,3.28 -2.33,0.68 -1.69,-2.25 -3.03,0.06 -1.93,1.1 -2.37,0.2 -1.22,2.58 -3.27,2.72 0.26,1.74 0.63,2.15 -0.66,0.4 -0.55,-0.29 -0.31,3.24 -1.72,3.89 -1.13,1.13 -2.53,1.14 -2.96,2.81 -1.25,-1.4 -1.53,-2.14 -2.1,0.08 -0.58,1.07 -1.97,0.9 -2.97,1.19z m1.79,-42.62c-2.02,0.59 -1.81,3.69 -1.92,5.35 2.29,1.58 5.16,-1.56 2.82,-2.47 -2.51,1.62 -0.41,-2.26 1.2,-2.22 -0.69,-0.24 -1.35,-0.63 -2.1,-0.66z m-8.26,-3.48c1.26,1.05 1.96,-0.59 3.75,0.18 2.86,-0.7 0.32,-3.31 -1.23,-1.63 -0.54,1.11 -4.66,-2.16 -3.53,0.83 -0.64,0.74 0.98,1.54 1.01,0.63z m-1.56,-1.31c1.64,-1.54 -2.29,-0.9 0,0l0,0z m-3.39,20.54c-1.15,-1.48 -0.79,-2.31 1.27,-2.09 -0.5,0.65 -0.76,1.45 -1.27,2.09z m20.58,-43.12c1.89,-0.99 1.05,0.09 0,0z m18.74,-19.12c-0.11,-1.35 1.21,-2.72 0.71,-0.65l-0.24,0.29 -0.47,0.36 0,0z m7.46,-19.18c-1.61,-0.55 0.1,-1.14 0,0l0,0z m3.95,-10.61c-1.42,-0.85 2.16,-3.22 0.98,-0.56 -0.23,0.31 -0.59,0.56 -0.98,0.56z m8.03,-3.21c-0.35,-1.4 -4.22,-5.53 -0.69,-3.55 1.98,-0.66 -2.87,-2.41 0.24,-2.21 2.34,-1.07 1.29,3.96 3.81,2.24 0.12,-1.58 -1.95,-2.83 0.76,-2.09 1.98,-2.01 2.51,5.82 -0.36,3.01 -2.2,-1.1 -3.01,1.06 -3.76,2.6z m-5.57,-1.57c-2.14,-0.36 2.05,-0.11 0,0z m-7.93,-1.09c-0.6,-2.04 2.47,-0.64 0,0z m7.12,-4.13c0.59,-2.37 4.58,-1.01 4.01,-4.46 0.66,-1.69 0.95,3.05 2.77,1.99 1.53,1.25 -2.5,3.06 -1.7,0.6 -1.05,-1.01 -2.27,1.66 -3.77,0.7 -0.56,0.22 -0.96,0.7 -1.3,1.17z m7.58,-0.78c-1.19,-2.28 3.86,-0.43 2.34,-2.88 -3.7,-0.04 1.43,-1.56 0.6,-2.56 -2.52,-1.2 0.41,-2.37 1.15,-2.81 0.41,-3.22 -2.85,-1.84 -4.06,-0.47 -1.59,-2.04 2.26,-2.36 2.32,-4.57 0.14,1.33 0.46,2.85 1.65,2.42 0.8,1.52 3.32,1.84 3.24,-0.37 1.68,1.68 2.77,1.67 2.31,-0.48 0.79,-1.17 0.35,-2.79 1.61,-3.02 -0.4,-0.66 -1.42,-3.92 0.2,-3.31 0.95,2.39 -0.14,5.28 -0.89,7.26 2.94,1.88 1.55,-3.57 4.12,-3.05 0.22,-1.76 -3.3,-2.79 -1.17,-4.59 1.11,2.64 2.9,-1.39 2.9,-1.08 0.95,0.44 4.33,3.19 2.86,0.58 0.52,-1.54 -0.4,-5.86 -2.92,-3.36 -3.05,-0.22 1.04,-4.05 2.23,-1.43 1.8,-0.47 3.36,-0.55 3.65,1.78 1.6,2.82 3.68,-1.17 2.1,-1.52 0.07,-0.51 -0.69,-2.47 -0.41,-3.71 -0.86,-0.45 -2.21,1.67 -1.86,-0.59 0.28,-1.23 2.77,-3.11 1.94,-0.75 0.94,1.47 4.41,-0.15 2,-1.03 0.6,-1.49 3.48,0.04 1.97,-2.16 -0.79,-0.71 -2.04,-3.95 0.25,-3.13 1.93,-0.42 3.84,0.45 2.02,2.21 -1.75,1.98 -0.56,3.61 -0.42,5.65 -2.28,2.68 3.1,3.87 2.24,0.45 -0.18,-2.74 0.93,-5.32 1.76,-8.05 1.89,-3.05 -1.06,3.6 0.33,2.81 1.3,-1.62 0.64,3.35 2.9,1.4 2.12,-1.22 -1.68,-4.46 1.77,-4.91 0.72,-1.47 -2.34,-1.18 -0.57,-2.18 -0.51,-2.17 4.79,-1.62 2.39,1.11 -1.65,1.09 -1.95,4.14 -0.56,3.08 -0.4,2.24 2.84,0.85 3.62,0.4 -0.89,-1.13 -1.79,-4.79 0.32,-4.87 0.09,2.52 4.6,3.29 3.84,0.25 1.3,0.25 1.81,0.78 0.68,1.44 0.12,2.4 2.78,-0.68 3.9,1.46 2.08,1.26 -1.72,0.74 -1.03,2.68 -0.51,3.31 -7.08,0.08 -6.25,3.51 1.53,-0.19 4.57,0.06 4.67,1.27 -0.73,2.54 2.28,1.63 2.62,2.01 1.41,2.24 -3.5,3.67 -1.9,6.17 0.12,3.04 -1.51,0.49 -0.35,-1.03 0.73,-2.35 -0.61,-5.22 -3.22,-5.51 -2.52,-0.23 -4.95,-4.8 -6.83,-0.86 -0.98,2.59 -3.07,-0.98 -3.73,2.03 -1.82,2.85 -1.43,6.39 -0.81,9.47 1.12,1.85 1.17,3.38 -0.82,4.1 -0.7,1.31 0.29,4.41 -1.67,2.5 -2.14,-1.69 -5.02,-0.86 -5.85,1.4 -2.54,0.85 -4.72,0.04 -5.34,-2.66 -0.99,-2.14 -5.91,-6.2 -6.14,-1.61 0.57,2.13 -0.39,0.96 -1.13,1.23 -0.7,0.99 -4.96,0.92 -2.14,2.3 2.85,1.94 -1.88,4.5 0.34,5.92 1.59,3.24 -4.12,0.39 -5.68,0.21 -2.06,-1.04 -3.15,2.55 -4.42,0.38 -1.01,-0.36 -2.16,1.19 -2.67,1.07z m-9.01,-1c0.11,-2.56 2.91,0.13 0,0z m-1.13,-1.28c-0.8,-1.29 3.49,-1.49 0.69,-0.52l-0.34,0.34 -0.36,0.18 0,0z m4.3,-0.48c-1.71,-0.47 -0.9,-2.93 0.17,-2.2 -0,0.74 -0.11,1.47 -0.17,2.2z m4.79,-4.64c0.18,-0.78 1.29,-1.07 0,0z m7.64,-3.83c-2.24,0.29 -1.11,-3.47 -0.22,-0.75 0.06,0.35 1.74,0.98 0.22,0.75z m2.2,-0.62c-2.38,-0.91 -2.84,-5.4 0.1,-4.68 0.37,1.54 -0.1,3.12 -0.1,4.68z m-1.72,-6.1c-4,-0.97 3.45,-2.52 1.03,-0.52 -0.42,0.05 -0.59,0.56 -1.03,0.52z m5.27,-4.48c-0.27,-0.28 0.7,-0.67 0,0z m42.25,-2.91c-1.73,0.39 -2.88,-3.16 -0.45,-1.74 1.34,-0.78 2.3,1.96 0.45,1.74z m-35.9,-2.93c0.17,-2 2.33,-0.17 0,0z m1.12,-1.12c1.6,0.69 0.37,-2.16 2.16,-2.14 -0.43,0.5 -1.9,3.93 -2.16,2.14z m20.87,-4.79c0.68,-1.68 0.54,-0.43 0,0z m-9.67,-2.21c-2.58,-0.52 -0.4,-3.09 0.65,-0.8 -0.07,0.3 -0.24,0.8 -0.65,0.8z M319.32,12.08c-0.3,-1.14 -1.45,-2.77 -2.39,-2.03 -1.57,-1.66 3.97,-2.79 -0.11,-4.02 -1.19,0.78 -1.7,1.41 -2.54,-0.32 -1.8,0.29 -3.52,-4 -2,-4.15 0.28,2.4 2.41,-1.85 3.57,0.39 1.62,1.46 1.99,-0.61 1.81,-1.03 1.1,0 2.2,0 3.3,0 -1.65,1.5 0.79,4.98 -1.45,5.97 1.81,0.96 -0.87,3.73 0.84,4.72 -0.27,0.27 -0.64,0.46 -1.03,0.47z M334.56,1.41c-0.71,-0.78 1.26,-0.59 0,0z\",\"name\":\"Norway\"},\"ua\":{\"path\":\"m458.88,376.43c-1.65,0.13 -4.78,-1.76 -1.5,-2.12 1.11,-0.94 -0.88,-2.9 1.02,-4.06 0.62,-1.77 2.75,-4.95 1.17,-6.55 -2.35,-0.6 0.77,-4.92 0.58,-1.37 1.22,0.09 1.33,-0.46 2.29,-1.4 1.42,1.03 2.11,1.68 2.01,-0.49 0.8,-0.31 0.98,2.31 1.91,0.48 2.09,-0.77 2.07,-2.38 0.02,-2.62 0.48,-3.05 -2.01,-4.08 -4.34,-4.76 -1.03,-1.35 0.14,-4.1 -2.32,-4.58 -0.19,2.48 -3.85,-0.68 -2.94,-2.62 0.58,-1.57 -1.58,-5.77 -2.62,-3.02 -1.32,-0.9 -3.45,-3.78 -4.76,-1.05 -0.61,-1.26 -0.31,-1.31 -2.39,-0.85 -1.59,-0.19 -3.7,-2.91 -5.96,-1.05 -1.9,1.41 -4.52,1.99 -6.34,2.49 -0.3,1.21 -2.98,2.87 -3.26,4.06 0.69,2.88 -3.92,2.94 -5.88,3.36 -1.91,1.06 -2.85,5.5 -5.12,2.22 -2.55,-1.4 -4.85,1.16 -7.45,0.17 -2.78,0.68 -6.22,-1.81 -7.42,1.27 -1.7,-1.79 -4.36,-1.99 -6.08,-3.8 -1.69,-1.99 1.67,-4.76 1.1,-7.32 0.71,-2.08 3.89,1.72 3.03,-0.71 -0.43,-1.86 -2.14,-2.21 -2.09,-4.41 -1.6,-2.52 1.02,-5.01 1.85,-7.4 1.48,-2.09 2.06,-5.46 4.76,-6.09 3,-1.14 0.85,-4.79 0.14,-5.51 2.5,-2.1 -3.76,-3.23 -3.93,-5.84 -0.3,-1.41 -1.88,-4.75 0.96,-3.25 2.78,-0.65 2.08,-4.77 5.31,-4.83 2.44,-2.13 5.65,-1.09 8.41,-2.29 2.86,0.12 5.82,0.8 8.71,-0.13 1.44,0.02 2.96,3.43 4.46,0.67 0.48,-0.61 1.02,3.11 2.27,0.92 -0.68,-2.01 1.68,-0.28 2.33,-1.83 1.72,1.64 3.14,-2.06 4.36,1.19 0.98,-0.83 1.53,-5.36 3.12,-2.13 0.91,1.83 2.9,1.59 3.18,-0.37 1.11,-0.89 4.84,0.77 2.92,-1.35 2.22,-0.55 3.94,4.29 5.74,0.82 -0.53,-2.27 -3.24,-4.21 -1.65,-7.03 0.3,-2.91 3.55,-3.36 5.73,-4.62 2.8,0.98 5.55,-1.1 4.6,-3.99 2.15,-0.59 4.74,-0.01 5.62,-2.79 1.28,-1.72 2.08,2.03 2.83,-0.54 3.15,-1.7 3.09,3.74 6.17,3.78 2.69,0.81 -2.77,1.83 -0.06,3.34 0.97,1.1 0.27,1.92 1.66,2.64 0.13,1.93 0.76,2.76 1.8,0.93 1.75,0.21 3.63,-0.42 4.86,-1.04 1.22,1.6 2.86,1.33 3.58,3.44 0.66,2.12 2.97,6.38 5.86,3.86 0.95,-2.66 2.98,0.62 4.61,-0.26 2.96,0.38 3.76,-3.58 5.99,-4.66 2.15,1.36 3.87,3.07 6.32,3.78 2.39,1.73 1.46,-2.06 1.83,-2.22 2.04,0.83 3.63,-0.35 5.65,0.78 1.64,-1.06 3.29,-0.67 5.4,-0.98 -0.34,2.96 3.78,0.35 3.93,-0.21 -1.54,1.79 2.89,1.91 1.36,4.34 -0.91,1.71 -3.3,4.32 0.42,4.36 1.34,-0.17 -2.51,1.76 -0.87,3.22 0.73,1.16 4.31,0.82 2.94,3.4 -1.12,2.14 2.56,-1.79 1.05,1.32 0.04,1.92 1.74,4.67 -1.56,4.6 -2.59,0.04 -5.57,1.58 -4.88,4.34 -1.93,1.59 -3.46,4.3 -2.04,6.74 1.21,-0.9 1.4,3.27 -0.48,2.33 -2.61,-0.17 -4.34,2.86 -4.47,4.25 -3.32,-0.37 -1.93,5.58 -4.94,3.83 -1.97,0.68 -1.55,3.31 -3.9,2.83 -2.31,2.16 -4.28,4.87 -4.46,8.16 0.05,2.37 -1.89,1.63 -2.69,0.94 -1.43,2.66 1.92,4.83 3.49,6.52 1.72,1.52 4.3,4.21 6.67,2.42 1.12,-1.05 0.41,-2.57 2.09,-1.56 1.41,-0.15 1,-2.82 3.17,-2.37 1.15,-0 0.13,2.98 0.5,4.21 -1.72,0.79 -3.13,2.24 -5.41,1.17 -2.72,0.19 -1.51,3.05 -3.33,4.45 -1.46,1.36 -5.27,2.16 -5.39,5.34 -0.65,2.52 -2.91,5.33 -5.63,3.62 -2.92,-0.52 2.13,-0.53 -0.45,-1.77 -0.6,-1.76 -0.24,-6.9 -3.31,-5.63 -2.51,0.74 -5.09,-2.4 -7.49,-0.19 -0.84,-1.11 2.17,-2.44 2.5,-3.9 1.15,-2.11 4.76,-3.17 5,-5.4 -1.21,-0.47 -1.1,-4.45 -2.98,-2.14 -0.01,2.53 -3.55,-2.55 -3,-0.06 -1.18,1.35 -4.02,3.26 -6.29,3.26 -0.55,-2.41 -5.82,0.8 -2.84,-2.01 -2.07,-2.11 3.13,-0.37 2.51,-2.12 0.43,-0.87 2.54,-3.83 0.04,-2.33 -1.67,2.49 -5.64,0.74 -4.34,-2.2 -3.44,-0.71 0.17,4.67 -3.05,4.35 -0.95,0.4 -1.24,-2.89 -2.18,-0.81 1.19,3.1 -5.65,1.69 -4.31,5.43 -0.19,2.64 -0.71,6.16 -2.65,8.5 -1.92,0.15 -2.28,-0.37 -1.97,1.56 1.06,2.6 -1.47,1.65 -1.44,-0.04 -3.03,0.54 1.86,5.97 -1.63,4.84 -1.69,1.04 -2.76,2.58 -4.85,3.23 -0.33,0.68 0.22,1.06 -0.9,0.94z m8.84,-3.13c-1.24,-0.5 0.31,-1.59 0,0z M480,354.71c-2.02,-0.24 1.4,-0.94 0,0z\",\"name\":\"Ukraine\"},\"il\":{\"path\":\"m564.91,519.32c-2.79,-0.13 -5.59,-0.02 -8.39,-0.06 1.03,-3 0.55,-6.35 0.36,-9.47 -0.77,-1.89 -0.08,-3.97 0.69,-5.38 -2.21,-3.68 3.62,-1.36 3.34,-4.63 0.16,-2.5 0.5,0.45 0.78,1.3 0.41,1.74 0.97,3.45 0.64,5.26 0.64,4.15 2.85,8.05 2.93,12.32 -0.33,0.17 0.28,0.88 -0.36,0.66z\",\"name\":\"Israel\"},\"sa\":{\"path\":\"m593.15,519.31c-2.83,-0.62 -5.1,-2.77 -7.77,-3.86 -1.58,-0.98 -5.22,-1.86 -2.02,-3.26 5.2,-3.81 10.77,-7.23 15.26,-11.9 1.43,-2.99 4.63,-3.12 7.49,-3.98 3.73,-1.26 7.76,-1.54 11.57,-0.41 3.34,1.04 6.79,1.79 10.32,1.49 3.1,-0.23 6.16,0.27 9.07,1.36 7.05,2.14 14.23,3.86 21.25,6.06 3.22,1.22 7.13,2.8 10.33,0.7 3.47,-1.54 7.12,-2.66 10.59,-4.19 0,5.98 0,11.96 0,17.94 -28.52,0 -57.04,0 -85.55,0l-0.54,0.05z\",\"name\":\"Saudi Arabia\"},\"iq\":{\"path\":\"m665.09,505.54c-3.93,-0.14 -7.37,-2.41 -11.2,-3.08 -6.98,-1.9 -13.93,-3.92 -20.88,-5.88 -4.51,-0.55 -9.21,0.46 -13.56,-1.25 -4.06,-1.23 -8.45,-1.67 -12.53,-0.27 -2.28,0.01 -6.14,3.28 -6.23,-0.28 -1.25,-1.52 -3.9,2.58 -3.26,-0.38 2.09,0.09 -1.51,-3.02 -1.67,-4.04 -1.32,-2.57 -5.49,-5.02 -2.13,-7.49 4.5,-5.84 9.16,-11.56 13.6,-17.45 2.04,-3.07 2.39,-7.4 0.02,-10.4 -1.41,-3.28 0.38,-7.66 -2.62,-10.31 -3.09,-2.29 -2.71,-6.73 0.85,-8.16 2.5,-2.92 2.33,-7.04 4.39,-10.19 0.66,-2.04 0.93,-3.47 3.19,-3.89 2.1,-2.75 5.72,-0.13 8.03,-2.44 0.9,-1.04 2.2,-3.85 2.95,-0.99 0.24,2.01 2.47,2.98 2.75,0.39 0.38,-1.99 1.84,-3.41 3.5,-1.73 2.25,0.16 -1.13,2.67 1.73,2.71 2.42,-0.18 1.65,4.3 5.21,2.73 1.14,1.18 1.93,5.76 4.16,3.01 2.6,0.76 5.25,0.47 7.14,-1.59 0.61,0.22 -3.19,2.13 -1.4,3.83 1.09,1.94 5.9,4.19 1.79,5.59 0.41,2.25 -2.38,5.11 0.78,6.65 -2.86,-0.58 -2.74,5.86 0.16,4.24 -0.52,2.48 -0.45,5.39 2.6,5.52 0.99,0.71 1.98,1.43 2.96,2.14 0.34,-1.31 1.06,-1.78 0.88,-0.17 1.65,-0.62 3.99,0.32 4.03,2.59 0.12,1.35 0.91,3.75 2.75,1.76 3.33,-1.46 6.61,1.38 9.97,1.03 2.56,-1.77 4.83,0.86 6.18,2.91 0,13.19 0,26.38 0,39.57 -4.3,1.87 -8.8,3.32 -13.06,5.23 -0.36,0.05 -0.72,0.08 -1.09,0.08z\",\"name\":\"Iraq\"},\"az\":{\"path\":\"m625.84,392.01c-2.29,-1.74 -6.12,-1.39 -7.67,-4.17 -2.87,-0.9 2.82,-3.1 1.5,0.21 -0.29,2.16 0.66,-0.38 1.38,-0.86 1.98,0.67 2.99,-0.38 4.14,-1.97 0.78,0.36 1.17,3.12 3.09,2.25 0.41,1.86 5.4,3.6 1.25,3.88 -1.24,0.15 -2.44,0.52 -3.69,0.66z m9.25,-4.53c-1.22,-1.31 -1.37,-1.74 -0.58,-3.22 -0.7,-1.79 -4.05,0.28 -2.18,-2.45 -0.71,-3.07 -3.86,1.6 -5.74,-0.73 -1.12,-1.04 -4.8,-0.64 -2.24,-1.72 1.66,-3.91 -3.46,-4.05 -5.96,-4.45 -3.06,-0.54 1.31,-0.13 -0.04,-1.79 -1.74,-0.11 0.76,-3.32 -2.15,-2.78 -1.13,-2.07 -3.77,1.24 -3.43,-1.3 -3.83,0.78 -1.14,-4.07 1.25,-3.79 1.55,-0.11 2.45,2.19 4.64,1.11 1.17,-0.47 1.66,-2.32 3.53,-1.24 4.04,0.44 2.81,-5.63 -0.82,-5.09 -1.19,-0.23 -4.57,-0.92 -2.6,-1.97 -1.03,-3.22 2.59,-2.79 4.29,-1.55 1.8,0.76 4.71,-0.66 4.29,1.94 2.3,1.27 5.96,-0.02 6.83,-2.57 -0.51,-2.81 0.78,-5.44 1.5,-8.17 0.77,-1.87 3.93,1.21 5.57,1.75 2.04,2.28 4.63,3.86 7.4,4.84 2.72,2.9 5,-2.29 8.05,-0.66 2.42,0.7 -1.69,0.86 -2.16,1.8 -1.58,1 -0.94,2.98 -2.64,4.05 -0.87,2.65 2.35,4.7 1.48,7.28 0.01,2.24 2,3.06 1.53,5.18 2.05,2.31 -2.94,0.21 -1.67,3.07 0.41,2.71 2.06,5.63 2.66,7.96 -1.4,1.58 -3.89,-2.8 -4.72,-0.12 -0.51,-2.33 -5.01,-0.05 -2.24,-2.75 1.89,-2.25 -0.89,-2.79 -2.14,-3.4 -0.39,-1.7 3.13,-2.19 0.43,-2.98 -2.55,-2.17 -6.8,-1.82 -7.18,2.01 -1.56,2.2 -2.45,4.87 -3.2,7.25 -1.02,1.28 -1.42,2.9 -1.76,4.47z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"m679.21,458.81c-1.85,-0.64 -2.96,-4.67 -5.07,-2.4 -2.51,1.13 -4.99,-0.69 -7.5,-0.94 -1.54,-1.25 -4.65,1.4 -4.88,0.3 -0.35,-2 -1.76,-5.08 -4.31,-4.59 -0.55,-2.48 -2.8,0.93 -4,-1.28 -1.15,-1.36 -3.82,-0.5 -2.7,-3.18 1.2,-2.24 -1.18,-2.93 -1.92,-2.92 -0.76,-2.14 0.85,-1.8 1.93,-2.95 -0.87,-1.54 -2.25,-2.23 -1.18,-3.98 1.41,-1.22 -0.93,-2.74 1.62,-3.12 2.22,-2.84 -3.32,-4.02 -3.44,-6.68 1.23,-0.62 3.69,-3.96 0.62,-3.5 -2.16,1.88 -4.6,2.34 -7.4,1.61 -2.13,2.68 -1.52,-4.01 -4.35,-3.02 -2.59,1.12 -1.74,-3.71 -4.6,-2.9 0.47,-2.81 -2.6,-2.62 -3.34,-4.74 -3.51,-0.37 -2.73,-5.88 -6.79,-4.9 -2.43,-0.23 0.88,-4.74 -1.15,-6.42 -2.63,1.81 -2.65,-3.09 -4,-4.32 -2.26,0.51 -1.17,-4.01 -3.82,-4.01 -1.08,-1.34 3.43,-0.98 2.24,-3.41 -0.62,-1.73 -1.46,-4.27 1.42,-2.93 2.06,1.49 5.14,2.91 7.63,3.88 2.25,1.24 5.18,-0.04 7.5,-0.74 2.07,-1.71 5.07,-2.61 4.75,-5.97 2.3,-2.33 1.71,-5.53 3.7,-8.09 0.98,-2.61 2.58,-5.68 5.71,-3.44 1.82,0.32 -1.95,3.66 1.08,3.95 4.06,-0.35 -2.73,4.32 1.52,4.83 1.27,-1.49 2.59,2.44 3.8,0.15 1.45,1.58 3.99,1.1 4.87,0.71 1.82,2.85 3.68,6.92 7.62,6.9 3.17,0.36 5.34,-2.56 8.13,-3.02 2.01,0.9 4.99,2.01 6.34,2.88 -0.02,22.74 0.03,45.49 -0.03,68.23z\",\"name\":\"Iran\"},\"ge\":{\"path\":\"m581.92,380.27c-2.26,-0.5 1.41,-3.83 -0.72,-5.4 -1.82,-2.3 -4.05,-4.17 -5.45,-6.77 -1.72,-2.18 -4.46,-0.36 -5.95,-2.58 -2.48,-1.15 -5.99,1.77 -7.69,-0.38 -1.24,-0.61 -3.4,-1.34 -1.11,-2.52 2.92,-1.18 5.31,-0.74 8.31,-1.17 2.62,-0.64 4.81,0.81 7.27,-1.05 1.64,-1.03 2.03,-2.53 4.37,-2.32 3.09,-1.55 5.23,0.93 8.34,0.23 1.97,-0.34 3.8,-1.06 3.76,1.37 3.33,1.16 4.09,-3.43 6.09,-4.97 1.82,1.19 3.56,0.44 3.29,-1.84 2.38,1.1 4.89,0.94 6.98,-0.29 0.1,2.19 0.6,4.52 3.44,3.9 1.82,0.87 6.7,-2.08 4.44,1.62 -1.04,4.09 6.18,1.33 6.51,4.88 -0.55,2.71 -3.63,-0.63 -4.78,1.93 -2.42,2.07 -3.95,-2.25 -6.59,-0.28 -2.88,0.84 -1.75,4.15 -4.11,5.26 -2.15,1.64 -6.02,2.97 -7.99,5.72 -1.4,1.55 -3.24,0.61 -4.57,1.11 -0.32,-2.7 -4.41,-0.39 -5.08,-2.59 -2.74,0.39 -1.4,4.41 -4.46,3.55 -2.08,-0.04 -2.63,2.5 -4.3,2.58z\",\"name\":\"Georgia\"},\"sy\":{\"path\":\"m570.98,505.1c-2.37,-0.06 -4.22,-2.23 -6.66,-1.9 -1.76,1.54 -0.95,-3.61 -2.17,-4.66 0.26,-2.1 3.06,-4.25 2.48,-6.23 -2.86,0.37 -0.12,-3.18 1.61,-2.81 1.41,-1.1 -2.08,-2 0.23,-3.24 2.46,-1.85 0.82,-6.41 -2.32,-5.73 1.74,-2.54 -3.41,-1.48 -4.52,-0.5 -2.16,-1.45 -1.71,-4.59 -2.2,-6.89 -0.72,-2.13 -3.63,-2.2 -2.69,-4.95 -1.91,-3.07 4.61,0.44 2.96,-3.37 1.96,-1.34 -0.54,-4.12 2.56,-4.37 1.92,-1.95 -2.9,-3.08 -1.96,-5.67 -0.17,-2.68 3.53,-1.88 4.07,-0.24 2.8,-1.4 6.26,-2.87 7.96,-6.08 1.77,-3.87 6.01,-0.57 8.96,-1.32 4.89,-1.98 9.3,-5.28 12.15,-9.78 2.06,-3.09 5.52,-4.42 8.88,-5.51 3.15,-0.62 4.71,-4.01 6.68,-5.54 2.16,2.06 -0.35,4.49 -0.71,6.75 -0.34,2.94 -3.64,3.54 -4.67,5.93 -0.77,2.72 0.96,5.34 2.92,7.06 1.91,2.86 0.25,6.61 2.05,9.52 1.43,2.7 2.07,6.08 0.11,8.71 -2.41,4.04 -5.84,7.35 -8.54,11.19 -6.92,8.84 -13.8,17.72 -20.31,26.87 -1.64,2.62 -4.19,2.66 -6.86,2.76z\",\"name\":\"Syrian Arab Republic\"},\"tr\":{\"path\":\"m494.91,482.2c-2.64,-0.83 -6.61,0.7 -6.69,-3.38 -0.28,-2.26 -4.06,-2.7 -3.32,0.14 -2.13,0.72 -2.01,-4.36 -4.24,-2.06 -1.1,1.64 -1.71,4.09 -2.75,1.3 -0.06,-0.7 3.87,-0.84 1.58,-2.85 -2.66,-0.75 -4.9,2.05 -7.56,2.3 -3.22,0.12 2.63,-2.09 -0.16,-3.58 -1.02,-1.26 -2.59,-1.78 -3.85,-0.25 0.8,-2.14 -2.11,-2.59 -0.3,-4.42 0.7,-2.91 -3.46,-4.14 -4.72,-3.08 -0.35,-2.13 -2.41,-1.66 -2.94,-0.12 -0.96,-0.52 -4.49,-1.13 -1.65,-1.67 1.95,-1.12 -0.35,-1.93 -0.64,-2.3 -0.1,-2.91 1.76,1.21 2.44,2.3 1.21,0.53 0.61,-1.54 2.32,-0.91 2.14,0.31 3.08,-4.19 0.9,-2.3 -2.98,0.71 -3.35,-2.88 -0.63,-3.63 1.42,-2.31 -2.41,-1.49 -2.02,-3.47 -1.48,-1.26 -3.08,-1.7 -1.12,-3.61 1.88,-4.06 -3.41,-1.44 -4.89,-0.21 -3.22,2.13 -1.41,-2.71 -2.53,-4.43 0.27,-1.5 2.4,-1.02 1.65,-3 1.08,-2.79 3.49,-3.54 5.85,-4.95 1.33,-0.2 3.18,2.13 5.06,0.5 2.19,-0.32 0.53,-4.12 2.21,-2.66 -1.01,2.78 3.65,-0.5 5.07,-0.34 1.73,-0.22 7.01,-0.13 5.15,-2.97 -1.48,-0.21 -3.18,0.39 -0.99,-0.95 1.96,-1.62 4.19,-2.4 6.66,-2.8 2.77,-0.54 1.2,-2.91 -0.89,-1.86 -1.93,1.45 -3.4,0.81 -4.38,0.32 -3.58,0.35 -2.31,-4.79 0.81,-3.52 2.71,0.01 5.57,-0.39 7.64,-2.28 2.46,-0.32 5.31,1.16 7.39,-0.69 2.9,-0.41 1.41,-4.52 4.23,-5.54 2.71,-2.98 4.61,-6.84 8.39,-8.68 2.29,-1.78 4.29,-3.83 7.39,-4.02 3.16,-0.7 6.47,-1.22 9.26,-2.97 -0.18,-2.01 2.92,-3.03 2.12,-0.46 1.09,2.77 5.37,3.22 7.04,0.72 1.14,-1.37 -0.27,2.45 1.16,0.14 2.04,-1.94 2.88,3.79 5.57,2.83 1.27,-1.86 4.62,-3.78 5.67,-1.09 1.67,-0.99 4.1,0.27 5.52,-0.17 -0.07,-1.45 1.44,-1.93 0.76,-0.72 3.48,0.31 7.66,-0.08 9.71,-3.32 2.34,-1.18 4.33,-4.18 7.15,-3.36 2.71,-0.07 6.67,-0.67 7.5,-3.83 1.38,-2.88 4.81,-4.34 5.49,-7.63 0.34,-3.02 3.69,-0.01 3.89,-2.79 0.79,-1.71 6.06,-0.8 5.2,-2.54 -0.27,-1.98 1.64,-2.11 0.91,-0.61 1.97,-1.13 4.24,-0.33 5.11,0.95 0.95,1.76 2.34,-1.7 3.43,0.93 2.07,0.94 4.5,1.8 3.64,4.81 0.12,2.83 2.56,6.38 5.64,4.35 1.45,-1.61 6.05,-1.12 6.12,-0.28 -2.87,1.25 2.28,4.65 -1.45,5.76 -2.31,0.86 -1.86,1.74 0.02,2.55 2.07,1.41 1.16,4.02 3.6,4.69 1.23,1.57 1.59,5.71 3.8,4.2 0.43,2.37 -1.79,7.52 2.74,6.05 2.64,-0.44 0.94,3.97 3.94,4.02 3.58,1.02 -1.74,2.3 -1.12,4.76 -1.2,0.98 -0.5,-3.85 -3.12,-2.67 -1.98,1.2 -2.57,4.14 -5.61,3.29 -2.88,-0.31 -4.84,1.72 -7.02,2.7 -0.69,1.88 -0.86,5.21 -2.91,2.44 -2.75,-0.22 -2.61,4.46 -5.58,4.92 -2.98,1.72 -6.75,1.93 -9.15,4.66 -2.61,2.66 -4.36,6.14 -7.61,8.16 -2.25,1.32 -4.52,3.36 -7.26,3.28 -3.54,-1.52 -7.49,-0.78 -9.08,3.03 -1.68,2.28 -5.43,4.75 -7.39,2.82 -3.82,-1.14 -4.64,3.62 -2.75,6 0.73,1.14 2.5,1.57 0.17,2.12 -3,0.1 0.83,3.76 -2.09,4.07 1.59,1.89 -1.39,2.48 -1.35,0.31 -1.32,-1.73 -3.85,-3.07 -1.43,-5.18 3.46,-2.09 -0.87,-8.48 -3.12,-4.45 -0.21,1.09 -4.52,4.06 -1.07,3.29 -0.14,0.32 -3.7,3.62 -5.39,1.57 -3.14,-1.5 -6.7,0.91 -7.75,3.93 -2.31,1.12 0.64,5.77 -2.52,4.44 -0.89,2.68 -3.25,3.27 -5.84,4.06 -1.96,1.06 -3.83,3.65 -6.37,2.47 -2.84,-1.55 -5.07,-4.65 -8.7,-4.14 -2.94,-0.38 -6,-0.94 -8.9,-0.06 -3.48,-0.29 -3.26,3.57 -2.85,5.62 -0.19,1.75 1.15,3.5 -1.34,2.67 -2.13,0.36 -2.94,2.88 -4.85,3.38z m-22.48,-0.92c1.54,-1.56 1.67,0.46 0,0z m4.91,-2.51c-0.79,-0.93 0.97,-1.15 0,0z m-7.81,-0.87c-2.21,-0.79 -0.04,-1.14 0.54,-0.39 -0.12,0.2 -0.29,0.4 -0.54,0.39z m-17.07,-35.78c-2.05,-1.66 3.84,-4.8 1.02,-1.64 -0.17,0.27 -1.7,3.54 -1.02,1.64z m-2.5,-4.63c-2.27,-0.95 2.99,-3.59 0.8,-5.77 -1.18,-2.59 4.67,-3.55 1.64,-6.24 -1.25,-1.27 -3.7,-1.75 -1.56,-3.41 0.31,-2.43 2.93,-0.92 3.7,-3.21 1.99,-1.8 4.08,2.49 6.12,-0.22 3,-2.82 1.8,3.03 4.59,3.75 2.54,1.72 5.71,1.31 8.59,1.46 1.59,1.71 -1.83,5.17 -3.31,2.87 -1.59,0.83 -4.21,-0.49 -5.46,2.07 -2.23,0.06 -4.36,0.17 -4.68,3.06 -0.43,2.55 -2.87,5.66 -5.23,3.75 -1.9,0.1 -3.3,1.78 -5.2,1.9z\",\"name\":\"Turkey\"},\"am\":{\"path\":\"m631.96,389.85c-1.96,-0.78 -2.5,-4.05 -4.9,-3.4 0,-2.98 -2.99,-2.85 -3.89,-0.42 -0.72,0.59 -2.05,-1 -2.73,0.47 -1.44,-4.24 -3.82,2.15 -6.08,-0.34 -2.43,-1.36 -5.05,-0.13 -7.33,0.88 -1.6,1.02 -2.24,-1.35 -3.25,-2.19 -0.22,-2.63 -0.35,-6.8 -3.95,-6.8 -1.56,-1.33 3.34,-2.22 3.67,-4.1 2.01,-1.81 4.84,-2.17 7,-3.75 -1.93,-0.72 2.92,-0.35 0.29,0.72 0.12,2.73 3.55,-1.6 5.25,0.33 2.07,0.17 -1.51,3.12 1.09,4.06 1.57,1.97 7.78,-0.09 6.04,3.56 -1.81,0.88 -2.21,2.81 0.36,2.27 2.62,0.26 4.73,3.06 7.3,0.67 1.25,-0.38 -1.56,2.52 0.95,2.4 1.37,0.14 2.22,0.32 0.58,1.07 -0.16,1.55 3.78,3 0.58,4.04l-0.53,0.37 -0.44,0.16 0,0z\",\"name\":\"Armenia\"},\"cy\":{\"path\":\"m527.35,491.44c-2,0.03 -5.42,-2.87 -2.34,-3.85 0.27,-2.84 4.77,-0.45 3.78,-3.88 -1.1,-2.02 2.82,-0.4 4.03,-1.67 3.21,-1.08 5.34,-3.84 7.9,-5.9 -1.85,1.69 -5.66,5.67 -1.55,7.09 -1.16,0.96 -4.02,1.69 -3.88,3.92 -1.79,0.94 -4.14,2.55 -4.75,3.95 -1.18,-1.33 -2.1,0.23 -3.19,0.34z\",\"name\":\"Cyprus\"},\"ie\":{\"path\":\"m160.13,300.45c-1.94,-0.73 -5.41,-0.29 -5.93,-1.1 2.68,-0.96 1.02,-3.47 -1.27,-2.29 -2.17,-0.03 4.61,-0.27 1.86,-1.87 -1.29,0.35 -5.82,0.84 -4.6,-0.88 0.33,-2.41 5.15,0.07 4.57,-2.91 -1.5,-0.99 -3.62,0.6 -3.81,-1.26 1.2,-0.91 6.26,2.54 3.91,-0.67 0.38,-1.38 3.44,-1.82 5,-1.34 1.1,0.96 5.65,0.21 3.16,-0.84 -0.11,-2.83 -2.54,-0.03 -3.01,-0.47 -0.23,-0.23 -3.43,-0.5 -1.1,-1.34 2.22,-1.01 0.54,-4 2.82,-3.42 2.56,1.02 3.91,-3.17 0.52,-2.46 -1.68,0.14 -2.56,-0.23 -2,-1.83 -0.18,-2.01 -5.12,-1.21 -3.94,-2.82 2.15,0.5 2.19,-2.65 4.57,-1.69 2.67,-0.16 1.13,-2.7 -0.21,-3.26 0.29,-1.31 0.02,-3.18 -0.75,-3.28 2.65,-0.82 4.91,0.87 5.93,2.56 1.46,-1.86 3.2,1.45 5.23,1.05 -1.45,-1.4 -1.04,-3.03 1.32,-2.78 1.21,-0.78 -0.05,1.72 1.32,2.45 1.11,1.84 4.55,5.05 6.16,2.17 -0.49,-1.92 2.26,-1.77 1.43,0.13 0.94,1.15 1.06,2.27 0.8,3.26 0.63,1.48 4.47,-0.64 2.75,0.86 -2.34,0.42 -0.05,3.2 -0.77,4.83 0.46,1.62 -0.08,2.98 -1.28,2.32 1.02,2.41 1.46,5.54 -0.48,7.61 -1.25,2.01 -3.34,4.38 -4.14,6.02 -2.56,-0.85 -5.09,-0.34 -7.67,-1.06 -1.16,0.41 -0.62,2.52 -2.3,1.42 -1.5,0.14 -2.91,2.49 -3.4,0.19 -2.29,-1.05 -1.04,2.27 -2.69,2.29 -0.11,0.95 -1.6,-1.12 -2.01,0.4z m13.73,-33.46c2.33,-2.06 -0.9,-1.95 -2,-2.14 -1.29,-0.53 -2.55,-1.96 -0.25,-1.08 1.89,0.69 2.47,-1.66 2.15,-3.1 -1.16,-1.71 7.03,-1.16 4.23,1.31 -0.31,1.85 2.66,-0.08 1.09,1.63 -0.53,1.73 -5.09,0.69 -2.83,2.72 -0.77,0.31 -1.61,0.36 -2.38,0.64z m6.45,-5.05c0.02,-0.88 0.61,0.23 0,0z\",\"name\":\"Ireland\"},\"gb\":{\"path\":\"m182.64,325.46c0.06,-1.95 -4.47,-2.09 -0.74,-2.3 2.67,-0.61 3.94,-3.31 6.49,-4.14 2.12,-0.77 1.4,-4.5 3.94,-3.31 1.45,-3.67 5.43,-1.45 8.06,-0.26 2.91,0.6 2.6,-3.72 5.07,-4.06 1.35,-0.1 4.35,-3.93 1.42,-2.57 -1.86,1.99 -5.05,0.84 -6.82,2.84 -2.27,-0.51 -2.72,-5.62 -5.77,-3.31 0.24,-2.37 -1.53,-4.27 -3.69,-2.44 -0.87,0.75 -2.94,0.79 -1.58,-0.17 0.16,-1.27 -3.6,-0.88 -1.52,-2.98 1.52,-0.74 3.44,0.29 4.82,-1.36 2.13,0.95 4.49,-1.92 5.83,-3.38 1.68,-2.26 0.05,-8.36 -3.37,-5.58 -1.46,1.33 -0.19,-1.41 0.97,-0.91 1.28,-1.84 2.91,-2.79 5,-2.8 1.2,0.32 4.62,-0.54 5.23,2.01 0.71,1.84 0.61,0.28 0.62,-0.81 -0.49,-1.45 0.01,-1.88 0.83,-1.63 -1.44,-2.21 1.58,-2.99 1.67,-4.6 -1.45,-0.49 -1.63,-2.14 0.09,-1.51 0.69,-1.16 0.79,-2.38 1.37,-3.56 -0.63,-2.27 -3.62,2.01 -2.38,-1.12 -0.36,-1.35 -2.39,0.41 -1.46,-1.51 -2.08,-2.31 0.12,-6.19 3.07,-5.98 2.74,-1.73 -0.83,-1.86 -2.08,-2.37 -0.92,0.48 -3.28,2.29 -4.42,1.19 -1.32,1.2 -1.79,-3.4 -3.43,-0.83 0.32,2.13 0.14,1.46 -0.76,0.01 -1.33,-0.68 -2.66,-1.39 -1.32,-3.18 1.13,-2.26 5.13,-4.6 2.33,-7.17 0.52,-2.42 1.47,-4.31 0.99,-6.83 -1.19,-2.25 -5.91,3.7 -3.96,0.19 -1.17,-1.95 1,-2.29 1.54,-3.39 -1.93,-1.31 3.92,-1.92 1.97,-3.06 1.93,-2.14 -1.4,-1.12 -1.91,0.17 -2.64,0.37 -2.78,2.95 -5.17,3.25 1.64,-1.88 1.56,-3.32 4.36,-3.1 0.45,-1.67 -5.98,-1.25 -1.81,-1.19 1.82,-0.7 -1.08,-3.69 1.83,-2.58 2.2,1.18 2.55,-1.86 1.62,-2.28 3.21,-0.32 0.94,-5 -0.12,-6.67 -1.49,-3.19 1.62,1.59 1.66,-1.31 -0.16,-0.99 3.11,1.17 2.06,-1.21 -1.02,-1.19 -0.29,-1.17 0.73,-0.82 0.07,-1.49 0.01,-1.71 1.64,-1.31 1.56,-1.15 -0.74,-2.21 0.86,-3.26 -0.88,-3.08 1.49,-0.59 1.87,-0.27 0.74,0.04 0.92,2.92 2,0.79 2.21,-0.9 6.43,0.18 7.86,0.3 -1.51,1.12 -1.16,3.83 -3.76,4.28 -1.25,1.24 -5.25,2.21 -4.45,4.19 2.02,-0.77 1.46,0.73 0.51,0.2 -2.65,-1.31 -3.91,3.83 -0.65,3.27 1.6,-1 4.76,-1.27 6.96,-0.43 2.15,0.77 9,0.4 6.36,4.13 -2.17,1.32 -1.95,4.3 -3.79,5.88 -1.36,2.24 -3.73,4.99 -6.67,3.85 -2.54,0.88 -0.66,2.52 1.1,1.38 0.78,-0.5 3.15,3.35 0.84,1.99 -2.07,-0.28 -3.16,1.31 -5.18,1.63 -0.02,2.53 4.56,1.95 5.82,1.47 2.3,1.2 3.8,3.55 4.55,5.85 2,2.23 0.13,5.79 1.35,8.49 -0.45,3.02 1.26,4.86 3.81,6.01 1.66,1.49 2.34,4.19 3.57,5.37 -2.57,1.95 1.1,5.12 0.44,6.31 -2.04,-0.08 1.34,3.78 1.3,5.11 0.78,2.24 -5.08,2.32 -2.09,4.71 1.56,2.69 3.3,0.05 4.83,-1 2.51,1.1 6.37,1.79 6.61,5.25 -0.28,2.6 -1.71,7.67 -4.87,6.84 -2.14,0.29 1.39,3.23 -1.35,2.01 -1.64,-1.62 -4.38,2.64 -1.7,1.39 1.98,0.5 -1.21,2.23 -2.35,1.41 -3.04,0.03 -0.52,3.18 1.11,2.57 2.13,-1.55 -0.82,1.67 1.85,1 1.37,0.01 4.16,-1.13 2.4,1.04 0.18,1.94 -3.04,1.77 -3.79,3.01 -3.03,-0.26 -5.14,2.46 -7.81,0.22 -2.14,-0.87 -5.12,1.06 -5.71,-1.04 -0.97,0.35 -1.61,-1.39 -2.37,0.11 -0.34,-1.96 -3.3,-2.15 -1.9,0.13 -1.76,0.29 -4.97,-1.2 -5.38,0.98 -2.03,-0.7 -3.26,-0.69 -4.99,-2.14 -2.67,-1.4 -6.68,-1.13 -6.68,2.71 -0.68,3.61 -3.23,0.34 -4.72,-0.57 -1.81,-0.09 -4.28,-1.13 -5.91,0.19 -1.52,-0.34 -2.18,1.47 -2.78,2.5z m18.76,-70.13c1.65,1.54 3.03,-0.19 0.57,-0.92 -0.47,-0.23 -0.39,0.68 -0.57,0.92z m-3.12,31.93c0.55,0.53 0.27,0.88 0,0z m-1.17,-10.07c0.02,-1.53 3.39,-4.02 1.66,-1.22 -0.39,0.58 -0.96,1.08 -1.66,1.22z m-10.63,-1.73c-1.59,-0.31 -2.08,-2.29 -3.03,-0.36 -1.91,-0.73 1.49,-2.2 -1,-2.29 0.13,-2.31 -2.8,-4.88 -3.79,-2.04 0.08,3.32 -3.97,-0.09 -4.6,-1.78 -1.85,-2.46 4.1,-0.54 2.7,-3.31 3.07,0.55 2.59,-4.32 5.36,-2.92 1.06,-1.19 2,-1.61 3.15,-1.03 2.23,-0.98 4.88,1.21 3.52,3.35 -0.19,2.26 3.15,1.24 0.87,3.27 -2.06,1.44 -0.04,2.03 1.25,1.47 1.84,1.95 -0.91,4.87 -2.77,3.75 -0.28,0.8 -0.67,1.84 -1.67,1.88z m10.61,-7.92c-1.67,-0.09 0.88,-0.41 0,0z m-4.29,-6.97c1.08,-0.83 2.3,-4.85 2.33,-3.8 -0.86,1.14 -0.52,3.62 -2.33,3.8z m2.73,-6.13c0.35,-1.24 0.97,-0.17 0,0l0,0z m-3.97,-25.03c-1.05,-1.04 1.79,-1.33 0,0z m1.85,-1.48c-0.51,-1.01 -1.32,-1.32 -0.4,-1.6 -1.54,-1.3 0.12,-2.32 1.22,-0.9 1.22,-0.53 0.35,-2.59 1.9,-1.78 0.84,-0.86 3.02,-1.98 1.27,-0.28 -1.41,1.61 -1.17,5.41 -3.42,2.95 -0.74,0.32 -0.1,1.35 -0.58,1.61z m38.33,-20.76c-1.93,-1.65 4.17,-0.89 0.99,-0.51l-0.47,0.12 -0.53,0.39 0,0z\",\"name\":\"United Kingdom\"},\"ch\":{\"path\":\"m292.05,389.98c-1.12,-2.03 -1.49,-3.96 -4.14,-4.68 0.24,-1.27 0.28,-4.19 -2.02,-2.48 -2.76,1.07 -0.98,6.19 -4.8,5.6 -1.34,-2.05 -4.35,2.18 -5.85,-0.49 -0.66,-1.9 -1.54,-2.82 -1.22,-5.23 -0.26,-1.58 -4.49,-1.34 -5.35,0.35 0,0.96 -0.92,3.04 -1.36,2.14 2.08,-0.65 -0.4,-3.99 1.78,-5.21 1.94,-0.57 2.18,-1.6 2.3,-3.5 2.42,-0.82 3.23,-3.53 5.4,-5.02 0.92,-1.36 3.51,-0.53 3.7,-1.93 2.51,-0.36 5.31,-0.33 7.48,-0.01 1.57,-0.63 0.5,-2.03 0.36,-2.23 1.31,-1.57 1.36,1.33 2.5,0.98 1.1,0.96 4.91,-0.68 5.97,2.04 0.36,1.7 -2.95,6.33 1.28,6.08 1.9,0.87 4.09,3.47 5.78,0.3 -0.28,1.18 -0.17,4.33 -0.42,4.42 -1.87,-2.39 -4.17,0.79 -2.27,2.33 0.4,3.64 -0.7,-1.85 -2.69,-0.06 -1.62,2.46 -2.25,-1.46 -3.43,-1.76 -2.43,0.76 -0.07,4.33 -2.78,4.97 -1.02,0.89 -0.72,2.33 -0.22,3.4z M275.63,370.8c0.49,-1.83 2.92,0.14 0.45,0.04l-0.53,0.11 0.08,-0.14 0,0z\",\"name\":\"Switzerland\"},\"at\":{\"path\":\"m338.89,381.72c-2.92,-0.37 -5.68,-0.8 -8.68,-1.29 -3.41,-0.44 -7.47,0 -10.13,-2.59 -0.49,-1.79 -2.01,-0.99 -0.74,-2.9 -1.54,-1.34 -4.15,1.63 -6.36,0.74 -2.58,-0.56 -3.71,1.14 -4.67,3.02 -0.77,-1.61 -4.07,-0.58 -3.15,-2.45 -2.02,-1.72 -4.43,3.34 -5.34,-0.45 -2.71,0.05 -3.32,-2.5 -1.76,-4.48 -0.11,-1.92 0.65,-1.26 2.03,-1.24 0.77,2.34 2.91,4.54 4.57,1.3 -0.46,-2.13 1.09,-1.56 2.51,-1.62 1.01,3.44 4.52,1.32 6.34,0.3 1.07,-2.1 5.55,-0.39 5.96,-2.32 1.02,0.88 3.01,0.37 3.69,0.59 0.18,3.89 5.07,0.73 2.69,-1.53 -0.2,-1.43 -1.39,-3.39 -2.11,-5.03 1.93,-1.47 5.36,-2.58 5.54,-5.05 1.88,0.9 2.55,-1.98 3.13,-1.73 2,1.9 4.33,0.91 6.33,0.45 0.7,-1.97 2.92,-2.39 2.31,-5.03 1.96,0.92 4.91,0.17 6.97,1.75 1.9,2.39 4.37,-0.77 6.11,0.38 1.43,-0.03 2.77,1.31 1.21,2.94 -0.45,2.79 3.86,4.35 2.35,7.1 1.97,3.48 -4.51,0.08 -4.56,2.79 1.63,1.11 3.27,1.96 0.42,2.95 -0.98,1.81 1.97,4.01 -0.88,5.49 -1.01,1.14 -3.1,1.64 -2.24,3.63 -2.75,-0.79 -4.87,2.27 -7.7,0.89 -1.89,0.31 -2.39,2.61 -3.87,3.38z\",\"name\":\"Austria\"},\"cz\":{\"path\":\"m335.18,355.05c-3.65,-0.41 -4.96,-4.57 -8.41,-5.66 -1.31,-1.75 -2.19,-2.91 -4.32,-3.66 -1.8,-1.56 -2.64,-3.53 -1.6,-5.57 -0.16,-1.57 -4.02,-3.53 -3.2,-4.17 1.42,3.2 2.44,-2.24 4.26,-2.25 1.35,1.3 3.09,-0.63 3.77,-1.12 1.58,-1.86 4.18,-2.74 6.59,-3.91 1.63,-0.69 3.11,-2.35 4.59,-0.56 2.65,1.13 2.61,-4.69 4.17,-1.06 1.38,1.66 3.64,0.69 5.11,2.36 0.67,1.75 5.33,-1.17 2.84,1.24 -1.67,2.06 2.09,2.81 2.61,4.74 2.09,1.86 2.12,-0.93 3.96,-1.42 0.43,-1.39 -1.9,-2.7 0.65,-1.55 1.23,1.3 3.29,0.96 4.4,0.53 -3.27,0.95 2.17,5.16 3.09,2.65 2.93,0.44 4.53,2.63 6.07,4.63 -2.15,1.71 -4.92,3.04 -5,6.15 -1.22,2.56 -3.35,3.75 -6.24,3.67 -1.85,1 -3.16,2.67 -5.05,0.79 -2.11,1.83 -4.69,0.96 -6.9,-0.42 -1.92,-1.1 -4.07,-0.45 -5.85,-0.93 -0.34,2.31 -2.03,3.48 -2.87,5.34 -1.07,-1.47 -1.28,0.34 -2.66,0.17z m-0.68,-28.45c-2.43,-2.03 2.32,0.24 0,0z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"m364.44,362.94c-2.39,-2.37 -6.56,-2.63 -7.73,-6.02 -0.46,-2.43 0.4,-6.56 3.64,-6.16 3.23,0.29 4.91,-3 5.9,-5.48 0.17,-1.96 3.95,-5.08 5.19,-3.02 2.43,1.82 3.49,-4.97 4.66,-0.89 1.56,0.35 1.91,0.85 1.91,2.52 2.64,1.02 3.89,-1.84 5.57,-3.22 1.58,-0.07 4.26,1.88 5.1,-0.34 0.99,-1.59 4.74,-1.57 6.47,-0.13 1.28,2.35 6.24,0.73 4.22,4.32 -1.5,2.17 -0.53,7.67 -4.43,6.22 -0.53,-3.18 -3.88,-1.31 -5.83,-0.46 -2.77,-2.02 -4.98,0.68 -5.07,3.51 -1.08,0.67 -2.09,-0.14 -2.29,1.79 -1.29,1.17 -3.96,-2.16 -4.46,1.1 -0.72,2.43 -5.78,-0.07 -5.66,3.66 1.11,2.54 -4.04,1.94 -5.84,2.51 -0.44,0.04 -0.88,0.07 -1.32,0.1z\",\"name\":\"Slovakia\"},\"hu\":{\"path\":\"m369.77,387.01c-2.75,-0.58 -5.39,-1.37 -7.78,-2.73 -2.27,-2.63 -5.77,-3.91 -7.5,-7.04 -1.21,-1.85 -2.06,-2.65 0.1,-3.74 1.43,-1.97 -1.64,-4.55 1.32,-5.48 2.04,-1.7 -3.3,-3.48 -0.09,-2.71 2.81,1.04 3.86,-1.91 3.11,-3.93 1.93,-1.05 3.43,2.43 5.44,2.58 3.24,-0.18 6.53,-0.68 9.48,-2.09 -2.94,-1.84 0.68,-3.88 2.85,-2.99 1.75,-0.27 1.26,-4.31 3.33,-2 2.26,0.8 3.01,-1.99 4.8,-2.5 0.41,-2.48 1.52,-4.92 4.25,-3.08 1.93,-0.18 4.28,-2.95 5.05,0.14 2.1,1.7 4.8,-1.81 6.38,0.84 2.12,-0.07 1.45,3.23 3.34,1.35 3.46,3.21 -4.18,3.49 -4.55,6.38 0.35,2.87 -2.65,4.72 -2.5,7.52 0.37,3.17 -2.46,5.43 -2.51,8.54 0.01,3.02 -4.16,0.17 -4.1,3.12 -3.14,1.57 -7.09,0.21 -9.73,1.82 -1.24,2.36 -3.12,1.16 -4.53,3 -2.57,0.36 -3.31,3.42 -6.16,3.01z\",\"name\":\"Hungary\"},\"lt\":{\"path\":\"m397.76,280.99c-1.28,-1.32 -1.63,-4.58 -4.11,-3.7 -1.13,-2.07 -4.01,-0.28 -3.26,-3.14 1.62,-3.48 -2.4,-7.19 -5.64,-5.13 -2.28,0.26 -5.13,-1.48 -6.05,-2.17 -0.51,-2.23 -1.53,-3.51 -2.2,-5.4 -1.37,-2.68 1.24,-5.63 3.5,-7 1.88,-1.44 4.85,-0.65 6.6,-1.37 0.56,-1.26 2.33,2.09 2.82,-0.31 2.06,-0.86 4.97,0.1 6.62,-0.3 1.76,-0.28 3.35,-0.61 3.78,-2.83 1.19,2.4 3.3,3.12 5.7,2.26 2.79,0.52 4.16,3.86 7.04,4.08 1.64,1.42 -0.82,5.15 2.39,4.69 0.41,1.84 -3.75,0.79 -2.82,3.52 -2.05,1.6 -2.93,3.79 -1.88,6.23 -0.12,2.13 -0.68,3.69 -2.75,4.26 -0.43,1.13 -0.04,1.82 -1.97,2.11 -0.51,1.51 -1.38,2.09 -2.67,3.35 -1.72,-1.32 -3.41,0.53 -5.09,0.87z m13.27,-5.67c-0.11,-1.17 -1.77,-2.09 0.31,-1.22 0.43,0.34 0.36,1.19 -0.31,1.22z\",\"name\":\"Lithuania\"},\"lv\":{\"path\":\"m375.49,257.31c-1.25,-2.79 -1.57,-6.54 -0.19,-9.24 2.63,-2.07 -0.8,-6.67 2.34,-8.6 1.69,0.07 4.11,-4.27 4.4,-1.32 2.44,1.48 4.79,3.19 5.76,5.78 2.55,1.96 6.17,0.07 7.13,-2.71 1.39,-2.75 -1.14,-5.3 -1.86,-7.82 1.34,-1.86 3.66,-3.57 5.64,-3.47 0.08,-0.9 1.63,1.08 2.69,0.67 1.72,0.06 3.13,2.25 4.97,3.22 2.21,0.36 3.53,-2.11 5.72,-1.12 1.76,-0.72 2.78,1.38 4.4,2.33 -0.55,1.5 -1.61,1.77 0.06,2.4 -0.17,1.1 -0.46,3.72 1.44,2.57 1.53,2.66 6.04,5.32 2.65,8.5 -1.42,1.56 -0.49,4.51 -3.48,3.69 -2.28,0.64 -3.94,4.9 -6.51,1.93 -2.03,-2.26 -5.06,-3.95 -7.91,-2.78 -1.1,-1.49 -3.6,-4.26 -4.46,-0.94 -1.47,1.77 -5.35,0.57 -7.87,1.17 -1.87,0.26 -2.16,0.89 -3.44,-0.06 -2.37,1.98 -6.1,0.17 -8.37,2.54 -1.6,0.14 -2,4.17 -3.11,3.25z\",\"name\":\"Latvia\"},\"md\":{\"path\":\"m454.92,374.42c-0.33,-2.09 -1.86,-4.78 -2.23,-7.4 0.38,-3.56 0.07,-7.47 -2.96,-9.91 -3.2,-3.43 -7.96,-5.44 -9.93,-9.93 -0.24,-2.34 -6.31,-3.34 -2.39,-4.03 2.67,0.33 3.73,-3.48 6.57,-2.14 1.32,0.97 1.83,2.54 3.78,1.18 -0.02,0.82 2.42,2.73 2.56,0.37 1.33,-1.44 3.96,3.6 4.43,1.55 1.2,-1.55 0.65,3.03 1.22,3.93 0.07,2.32 4.57,4.13 4.42,2.59 -0.43,1.81 0.64,4.31 3.01,4.64 2.61,-0.41 1.35,4.32 2.84,4.34 -0.24,1.12 -3.35,-2.1 -2.5,0.78 -1.04,0.18 -2.3,-2.64 -2.02,-0.03 -1.22,0.21 -2.31,-1.71 -3.62,0.36 -1.34,1.85 1.39,3.73 0.77,5.48 -0.5,2.25 -2.95,4.34 -2.23,7.32 -0.82,-0.46 -1.48,0.35 -1.72,0.91z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"m414.71,404.53c-2.94,-0.37 2.3,-2.82 -0.89,-3.86 -1.36,-0.38 -6.12,-1.72 -3.63,-3.39 3.62,-1.4 -2.29,-3.42 -3.82,-3.63 -1.25,0.73 1.78,4.33 -1.06,3.46 -0.47,-2.42 -4.24,0.23 -4.49,-2.27 -1.54,0.07 -1.87,0.1 -0.31,-0.74 0.46,-1.41 -2.15,-1.17 -0.71,-2.27 0.07,-4.02 -6.25,-1.24 -6.86,-4.86 0.56,-2.93 -2.25,-4.23 -4.45,-5.46 -1.23,-1.35 3.36,-1.23 3.59,-2.71 4.37,0.45 2.54,-4.6 4.68,-6.55 1.28,-2.95 0.7,-6.3 2.76,-8.97 0.62,-2.75 1.58,-5.21 4.69,-5.79 2.24,-1.25 2.4,-5.8 5.34,-3.67 2.44,-0.6 4.8,0.38 7.17,-0.21 2.51,-1.94 3.7,1.15 5.91,1.18 2.03,-1.31 2.68,-4.39 5.67,-3.96 2.31,-0.28 4.86,-1.95 4.49,-4.32 1.75,-2.97 4.98,-1.01 6.29,1.29 1.93,4.74 7.06,6.72 10.28,10.39 2.93,2.37 2.34,6.09 2.36,9.35 0.53,2.52 1.69,4.86 1.92,7.13 1.82,1.67 4.12,3.74 6.83,2.36 1.37,-1.24 4.51,-5.35 6.51,-2.84 1.18,1.97 2.1,5.63 -1.2,6.33 -1.85,1.04 -1.42,-3.67 -3.88,-1.61 -1.51,1.92 1.84,2.51 -0.11,4.51 -0.61,2.57 2.04,-0.86 0.82,1.98 -2.28,2.63 -0.38,5.59 -0.04,8.5 -1.15,2.51 -5.2,-0 -6.02,-1.11 -1.09,1.46 -1.67,-0.92 -3.54,0.54 -1.82,0.49 -3.31,-1.46 -5.44,0.01 -3.08,1.35 -6.52,2.81 -8.17,5.95 -1.31,3.55 -4.97,3.29 -8.01,2.77 -2.75,-0.48 -4.92,1.71 -7.44,1.75 -2.74,-0.25 -5.83,-1.37 -8.31,0.42l-0.52,0.24 -0.43,0.06 0,0z\",\"name\":\"Romania\"},\"bg\":{\"path\":\"m419.98,434.43c-0.77,-1.6 0.33,-5.03 -1.67,-6.74 -1.14,-2.34 -7.05,-2.04 -4.41,-5.19 -0.49,-1.45 -2.46,-4.37 -1,-5.23 2.16,0.54 4.75,-3.78 2.92,-5.59 -2.57,-1.55 -5.66,-2.78 -5.98,-6.24 -0.97,-2.47 2.74,-1.99 1.69,-4.32 2.08,-0.06 3.2,1.11 1.22,2.59 -0.15,3.28 3.83,0.6 5.65,0.71 2.58,-0.64 5.13,0.94 7.65,0.08 2.61,-1.18 5.46,-2.28 8.27,-1.01 3.32,0.37 5.6,-2.51 6.93,-5.13 2.16,-2.35 5.29,-3.61 8.27,-4.56 1.69,0.75 3.92,0.92 5.2,0.32 0.77,1.61 2.46,-1.39 3.17,1.07 1.58,2.18 6.09,-1.71 5.26,2.45 0.21,2.63 -4.48,0.38 -4.02,3.94 -1.88,1.85 1.39,5.32 -0.17,7.14 -1.24,1.25 -1.7,3.03 -2.93,4.26 0.82,1.66 4.27,-0.37 3.64,2.02 1.44,0.86 3.71,1.89 1.23,2.18 -1.9,3.08 -4.18,-1.08 -6.49,0.5 -1.52,1.95 -4.37,1.58 -4.82,4.55 -1.37,1.04 -4.43,1.49 -2.91,4.13 3.08,3.26 -3.78,2.7 -5.13,4.68 -1.95,0.62 -4.22,-2.41 -5.93,-0.29 -2.04,-2.63 -5.18,-1.43 -7.46,0.15 -2.06,2.52 -5.54,1.17 -7.76,3.47l-0.43,0.06 0,0z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"m396.5,458.88c-2.16,0.08 -0.81,-2.55 -2.74,-3.41 -0.91,-2.13 -5.81,-2.06 -5.48,-3.81 2.36,-1.04 -1.62,-3.19 -0.48,-4.99 0.36,-1.26 2.66,-2.2 0.57,-3.3 1.39,-2.49 -3.57,-5.96 0.77,-6.52 2.37,-0.03 -1.92,-0.89 -0.55,-2.51 -0.14,-2.15 -3.24,-0.23 -2.21,-2.9 -1.48,-2.28 0.07,-4.41 1.36,-6.71 1.01,3.42 4.23,-2.13 4.66,1.78 1.21,1.69 4.6,1.07 3.88,4.25 -0.33,2.87 -0.02,5.6 0.51,8.19 0.21,1.77 2.38,5.51 4.15,4.74 1.69,-0.32 2.5,4.45 0.05,5.02 -0.86,1.75 -0.27,5.37 -3.24,5.56 -2.01,1.26 1.3,2.75 -0.81,3.98l-0.23,0.5 -0.19,0.12 0,0z\",\"name\":\"Albania\"},\"ee\":{\"path\":\"m378.18,234.33c-0.29,-1.42 0.77,-0.85 0,0z m29.34,-1.46c-2.55,-0.18 -3.15,-3.15 -5.39,-3.23 -0.21,-1.76 -1.21,1.44 -2.27,-0.65 -2.12,-1.63 -4.52,1.21 -6.27,2.48 -1.26,-0.67 1.67,-5.98 -1.81,-5.74 -1.1,1.92 -1.82,2.36 -3.83,1.3 -0.08,-2.54 -3.43,-2.95 -2.01,-5.67 0.96,-2.03 -3.8,-2.6 -0.62,-3.95 1.35,-0.61 4.23,-0.97 2.3,-2.67 2.82,-0.9 4.5,-2.4 7.47,-2.41 1.66,-0.56 1.5,-2.75 3.42,-1.67 0.91,-1.72 4.64,0.07 6.63,-0.66 2.13,-0.1 4.26,0.22 6.03,-1.29 -1.43,2.67 -1.02,5.84 -2.24,8.62 2.11,2.2 1.2,5.64 3.15,7.83 0.24,0.52 1.89,2.24 1.35,2.38 -0.73,0.83 -0.81,2.27 -1.35,2.68 1.66,2.85 -2.28,0.25 -2.89,1.26 -0.29,0.68 -0.83,1.4 -1.65,1.38z m-28.89,-1.28c-1.29,-0.43 -2.59,-1.4 -0.92,-2.29 -0.22,-0.67 0.59,-1.5 0.99,-0.78 -0.53,-2.4 4.69,-3.37 4.19,-1.27 0.07,2.48 -3,2.5 -4.26,4.33z m1.02,-7.14c-0.54,-0.34 -0.96,-2.14 -1.01,-2.27 0.8,-1.29 0.79,-1.32 2,-0.55 1.89,-0.4 1.35,1.06 -0.17,0.69 0.83,0.84 0.55,2.1 -0.81,2.14z\",\"name\":\"Estonia\"},\"lb\":{\"path\":\"m557.2,501.39c0.58,-2.8 0.32,-5.88 1.17,-8.53 -0.92,-2.02 1.77,-3.87 0.09,-5.88 -0.28,-2.6 2.65,-3.83 2.23,-6.01 1.03,-0.93 3.35,-2.1 2.42,0.09 1.64,0.57 3.96,0.89 3.49,3.25 -1.11,1.34 -2.61,3.51 -1.84,4.51 -2.48,0.69 -2.89,3.8 -1.53,5.08 -0.04,2.15 -2.43,3.34 -3.12,4.26 0.57,1.87 -1.28,3.1 -2.91,3.25z\",\"name\":\"Lebanon\"},\"ad\":{\"path\":\"m225.99,427.08c-4.4,2.06 -0.81,-5.33 0.49,-0.98l-0.2,0.53 -0.29,0.45z\",\"name\":\"Andorra\"},\"sm\":{\"path\":\"m321.66,413.68c0.71,-2.83 1.59,1.21 0,0z\",\"name\":\"San Marino\"},\"mc\":{\"path\":\"m273.92,416.64c-2.8,-1.65 2.23,-1.64 0.39,-0.13l-0.39,0.13 0,0z\",\"name\":\"Monaco\"},\"lu\":{\"path\":\"m268.7,344.38c-1.34,-0.37 0.48,-2.79 -0.9,-3.99 -1.47,-1.94 2.76,-5.38 1.98,-1.49 0.37,1.78 4.79,2.33 1.84,4.09 -0.47,1.66 -1.49,1.22 -2.93,1.39z\",\"name\":\"Luxembourg\"},\"fr\":{\"path\":\"m292.72,444.55c-0.12,-2 -3.86,-0.94 -2.75,-2.99 -2.34,-0.62 -0.11,-2.51 0.75,-3.57 0.35,-0.55 -3.76,1.07 -1.24,-0.63 0.32,-1.34 -2.6,-2.05 -0.51,-3.01 -0.25,-1.14 -1.13,-1.51 -0.02,-1.71 -0.89,-2.66 3.14,-1.71 3.48,-3.51 1.94,0.96 2.98,-0.2 2.33,-2.11 1.79,-2.18 -0.99,3.51 1.02,4.43 1.2,3.29 -2.09,6.35 -1.33,9.73 -0.95,0.89 -1.15,2.64 -1.75,3.36z m-58.87,-15.16c-2.27,-2.01 -5.59,-0.28 -7.2,-2.87 1.48,-2.11 -2.14,-2.13 -2.92,-2.19 -1.78,-1.34 -3.82,-2.36 -5.67,-3.53 -1.54,0.58 -1.53,2.27 -3.51,1.46 -1.54,0.07 -2.66,-0.59 -3.93,-0.35 -0.8,-2.33 -2.93,-1.69 -4.53,-2.09 -1.06,-2 -2.81,-3.32 -5.06,-3.18 -1.57,-1.15 -1.33,-1.7 -1.45,-3.5 -1.23,-0.24 -3.44,-0.96 -1.02,-1.55 3.04,-3.75 2.96,-8.84 4.5,-13.21 0.85,-1.4 2.99,0.68 2.08,-1.85 -1.2,-1.06 -2.14,-0.84 -1.15,-2.81 1.1,-1.59 0.63,-5.99 2.35,-6.1 1.89,1.55 0.82,3.87 1.88,5.79 -0.05,2.01 2.7,3.12 1.93,0.38 -2.25,-2.11 -0.08,-5.11 -2.23,-7.23 -1.52,-1.07 -0.74,-1.21 -0.52,-2.39 -2.12,-1.87 0.87,-2.79 -0.3,-5.08 -0.91,-0.78 2.06,-4.15 0.31,-2.92 -1.7,1.58 -2.8,-0.99 -4.34,-1.54 -1.66,-0.48 -1.34,-4.04 -3.07,-5.27 1.45,-1.37 2.03,-3.5 -0.17,-4.21 -1.28,-1.38 -1.85,-1.7 -0.64,-3.42 1.28,-3.05 -5.85,-0.88 -2.14,-2.3 -0.4,-2.26 -4.49,0.28 -3.4,-2.31 -0.36,-2.67 -3.56,0.62 -4,-1.74 -2.28,-0.09 -2.42,-4.2 -4.81,-1.84 -1.78,1.57 -0.33,-2.39 -2.37,-2.56 1.59,0.62 3.87,-0.51 1.92,-2.13 1.84,1.1 2.88,-0.7 0.65,-1.01 0.13,0.05 1.59,-2.28 -0.46,-1.5 -1.34,1.45 -4.19,-0.07 -1.73,-1.25 1.3,-0.76 2.79,-0.81 2.95,-0 1.4,-0.85 2.87,-0.97 3.66,0.09 0.65,-1.02 3.21,1.35 3.19,-1.26 2.43,-1.62 2.22,2.03 2.47,2.06 1.69,-2.75 1.86,2.19 3.17,3.11 1.26,-0.74 3.83,-3.16 3.73,-0.14 1.62,2.63 2.82,-1.65 4.78,0.11 0.83,-0.47 4.32,1.06 3.36,-0.07 -1.65,-1.65 -2.42,-4.02 -1.35,-6.19 0.76,-2.4 -2.42,-4.6 -1.19,-7.04 1.21,1.81 5.2,-0.98 3.31,2.03 -0.19,2.43 1.93,3.76 3.68,2.84 2.59,0.56 5.12,3.56 7.68,1.11 2.16,-0.17 1.32,-1.39 0.53,-2.64 1.54,-3 5.41,-2.03 8.05,-3.16 1.81,-0.67 4.58,-1.88 5.31,-3.4 -1.75,-1.03 0.04,-4.18 -0.3,-6.15 0.44,-3.1 4.2,-2.36 6.44,-2.8 0.98,0.77 1.49,6.24 4.58,4.17 1.46,-0.35 0.7,4.82 3.67,3.62 -0.14,3.07 3.12,1.53 4.18,2.82 -0.64,1.44 -0.56,1.83 -0.25,2.78 -0.88,2.67 3.93,2.4 4.83,0.49 0.88,1.69 -1.1,3.55 1.66,3.61 2.55,0.29 2.49,4.49 5.21,3.37 2.65,1.52 6.43,-0.33 7.5,3.53 0.45,0.9 2.96,3.41 2.01,0.96 0.54,-1.16 0.79,1.42 0.5,1.49 1.47,-0.3 3.92,-1.81 4.53,0.32 1.92,0.28 7.08,0.84 3.22,2.94 -2.39,2.02 -1.66,5.55 -3.51,7.88 -0.4,2.45 -0.29,5.21 -1.25,7.67 -1.85,0.33 -4.65,-1.22 -4.94,2.33 0.2,1.24 -1.59,3.49 -3.64,4.12 -0.97,0.48 0.4,3.01 -1.75,3.44 -3.21,1.4 -0.53,4.69 -2.87,6.5 1.14,2.08 4.46,-0.29 3.63,-2.44 2.64,-1.79 4.27,0.65 3.32,3.02 0.97,1.33 2.7,2.42 0.16,3.24 -1.7,2.56 4.01,4.8 1.9,7.11 -0.78,1.84 -6.17,0.54 -3.47,3.57 1.68,1.38 4.39,3.16 1.43,4.85 -1.24,3.13 2.12,7 5.6,6.15 2.64,-0.69 -0.62,4.28 -2,4.64 -1.17,-0.72 -4.03,-3.03 -4.38,0.05 0.55,1.28 1.71,2.84 -0.72,3.26 -2.25,0.54 -0.87,3.61 -3.15,2.9 -1.62,1.27 -2.66,0.82 -4.12,0.04 -1.35,1.82 -1.33,-1.1 -3.38,-0.87 -2.84,0.75 -0.64,-3.44 -1.53,-2.84 -0.63,0.89 -3.09,1.3 -1.09,0.56 1.49,-2.74 -3.49,-2.8 -2.54,-0.31 -2.24,0.5 -1.46,-2.79 -1.57,-3.36 -1.08,1.05 -1.96,2.65 -0.52,3.91 -1.04,-0.28 -1.31,-2.83 -3.36,-2.08 -2.5,-1.7 -5.52,-1.71 -6.96,1.2 -2.68,0.79 -5.03,2.02 -5.69,4.77 0.13,1.89 -0.47,3.75 0.65,5.49 -1.42,-0.84 -3.32,-0.38 -4.33,0.88z\",\"name\":\"France\"},\"li\":{\"path\":\"m296.51,373.48c1.45,1.4 -0.83,3.11 -0.11,0.58 0.04,-0.19 0.08,-0.38 0.11,-0.58z\",\"name\":\"Liechtenstein\"},\"nl\":{\"path\":\"m269.04,328.72c-2.4,0.87 -0.84,-4.47 0.3,-2.01 0.8,0.23 0,1.75 -0.3,2.01z m-0.07,-3.78c0.6,-3.32 -5.02,-1.6 -5.27,-4.51 -0.12,-2.74 -3.14,1.24 -2.06,-1.29 -0.99,-0.79 -2.22,1.2 -3.22,-0.45 -0.9,0.27 -1.14,2.68 -1.08,0.81 0.68,-2.17 -1.32,-2.87 -3.53,-3.17 2.34,0.11 2.58,-2.07 3,-3.35 2.89,-2.17 4.59,-5.57 4.61,-9.18 -0.19,-3.29 4.06,-0.89 5.3,-3.43 1.14,-2.76 4.56,-2.87 7.04,-3.65 2.21,-0.91 4.28,0.51 5.07,2.25 2.56,1.19 -1.21,4.26 -0.45,6.54 -1.09,0.31 -2.87,-0.17 -2.83,1.81 -1.46,0.58 -1.58,0.91 0.09,0.93 3.35,-0.05 2.57,4.59 -0.38,4.58 -2.35,0.19 2.62,1.25 -0.12,2.19 -2.05,1.07 -3.43,-1.35 -5.33,0.59 -1.38,2.19 2.97,4.39 0.94,6.8 -0.8,0.77 -1.72,1.2 -0.27,1.66 -0.44,0.36 -0.82,1.02 -1.51,0.87z m-14.99,-3c-0.33,-1.2 -5.07,-0.99 -2.8,-1.87 1.14,1.13 2.85,1.22 3.93,0.81 -0.06,0.56 -0.57,1.04 -1.13,1.06z m0.03,-2.7c-1.37,-0.05 -4.02,-1.94 -1,-1.43 0.49,-0.33 2.23,1.73 1,1.43z\",\"name\":\"Netherlands\"},\"ba\":{\"path\":\"m376.75,425.9c-1.98,-1.6 -4.83,-1.93 -6.41,-4.05 -1.67,0.65 -0.52,0.38 -0.54,-0.48 -1.09,-2.31 -4.84,-2.74 -4.68,-5.7 -3.06,-0.33 -4.09,-3.71 -6.36,-5.29 -1.63,-1.9 -4.06,-2.19 -3.82,-4.87 -1.04,-2.44 -3.06,-3.46 -4.21,-5.63 -0.7,-2.04 0.84,-4.87 2.73,-2.36 1.15,1.84 2.68,1.49 3.04,-0.59 0.75,-2.51 2.6,0.54 3.87,-1.57 1.61,1.11 3.76,0.32 5.58,0.98 1.67,0.69 2.8,0.63 3.98,-0.64 1.28,0.32 2.43,1.79 1.94,-0.33 2.34,0.41 3.8,0.76 5.26,2.77 1.51,0.59 4.58,-2.46 3.33,0.9 -1.48,2.62 -1.55,6.27 2.2,6.4 -0.16,1.48 3,1.5 0.7,2.04 -2.41,-1.63 -1.77,2 -0.04,2.77 1.22,1.2 1.32,2.1 -0.54,1.97 -0.8,1.43 -2.82,1.15 -3.55,0.9 0.15,1.26 1.77,2.85 -0.32,2.67 -1.22,1.98 -1.74,4.24 -3.03,5.92 0.2,1.48 1.25,2.79 0.88,4.2z\",\"name\":\"Bosnia and Herzegovina\"},\"si\":{\"path\":\"m332.96,393.93c-2.25,0.07 3.69,-1.78 0.33,-3.25 -2.05,-0.05 -1.39,-3.19 -2.18,-3.5 2.21,-1.77 -0.2,-2.6 -1.36,-3.11 1.58,-3.35 4.85,-1.64 7.7,-1.58 3.3,1.9 3.73,-4.65 7.02,-2.86 2.43,0.1 4.45,-1.78 6.8,-1.33 -0.07,-1.25 0.26,-3.28 1.79,-1.82 0.58,1.34 2.29,2.96 -0.11,2.97 0.07,3.17 -6.44,2.43 -4.97,6.04 0.89,1.87 0.62,3.86 -1.85,3.13 -2.37,0.85 1.33,6.35 -2.15,4.17 -1.76,0.02 -2.78,0.57 -3.81,-1.48 -1.83,-1 -1.59,2.92 -3.88,1.76 -1.41,-0.46 -2.2,0.65 -3.34,0.85z\",\"name\":\"Slovenia\"},\"mk\":{\"path\":\"m403.18,443.19c-1.28,-0.84 -1.77,-0.72 -3.14,-0.4 -2.27,-2.33 -2.73,-5.58 -2.85,-8.64 -1.26,-2.44 2.39,-0.6 1.33,-3.13 0.23,-2.42 3.43,-3.85 5.06,-1.8 1.38,1.18 -1.35,-3.28 1.33,-2.73 2.83,0.6 4.67,-2.89 7.49,-1.79 1.51,2.18 4.77,1.95 5.79,4.72 1.29,2.63 0.37,4.95 -1.12,7.01 -1.05,2.69 -5.33,0.11 -7.05,2.7 -0.97,2.88 -4.09,3.39 -6.84,4.04z\",\"name\":\"Macedonia\"},\"hr\":{\"path\":\"m375.93,426.49c-1.17,-0.64 -1.03,-0.77 0,0z m-5.08,-2.9c-0.73,0.27 -1.25,-2.08 0,0z m-2.28,-1.81c-3.23,-1.04 -5.06,-4.7 -8.53,-5.08 -1.74,-1.23 -4.13,-1.36 -6.19,-0.38 -0.54,-3.7 -5.51,-3.9 -7.37,-6.92 -1.68,-2.86 2.16,-0.38 2.91,-1.43 -1.18,-2.05 -5.06,-2.05 -5.62,-5.05 0.07,-2.45 -0.12,-5.23 -2.77,-6.41 -1.46,-3.02 -5.35,-1.33 -4.75,1.8 -0.1,1.22 -1.81,1.15 -1.78,3.18 -0.42,-0.02 -2.43,-3.25 -2.8,-4.77 0.5,-1.41 -1.33,-2.59 0.97,-1.85 1.93,-0.05 3.32,-1.26 5.49,-0.87 1.75,-0.28 1.19,-2.99 2.55,-0.54 1.83,1.65 2.98,0.1 5.14,0.7 1.63,-0.59 0.6,-2.35 1.05,-3.41 -2.13,-1.84 3.84,-0.57 2.93,-3.42 -1.1,-1.62 -1.88,-3.53 0.82,-4.04 1.16,-1.26 3.54,-0.9 3.14,-3.3 3.59,0.79 6.21,3.61 8.62,6.19 2.91,-0.18 5.33,2.55 8.31,1.69 2.32,0.95 5.06,-5.2 5.33,-0.4 0.15,1.9 1.2,2.64 1.4,4.46 1.55,0.76 2.24,0.37 1.04,2.01 -0.17,1.69 1.08,1.86 -0.44,2.99 -1.42,0.96 -2.53,-3.66 -4.34,-2.06 -2.98,-1.4 -5.14,1.63 -8.13,0.38 -2.22,0.17 -4.52,-1.28 -6.44,-0.34 -1.8,-0.84 -3.54,0.72 -3.99,2.64 -1.51,-1.59 -4.97,-3.78 -5.35,0.02 -1.16,3.92 2.99,5.58 4.38,8.58 -0.13,1.41 -1.05,2.05 0.83,2.59 2.9,1.5 4.8,4.21 6.98,6.53 2.65,1.59 3.98,4.49 6.78,6.28l-0.16,0.23 0,0z\",\"name\":\"Croatia\"},\"dk\":{\"path\":\"m311.37,281.37c-1.81,-0.13 -3.63,-2.95 -0.99,-2.75 0.71,0.89 2.21,0.72 1.2,1.27 0.93,0.68 0.95,1.07 -0.21,1.48z m2.12,-1.04c1.35,-0.18 -0.34,1.13 0,0z m0.84,-0.24c-0.07,-1 -2.35,-2.59 0.16,-1.62 2.08,0.28 -0.51,1.71 -0.16,1.62z m-17.99,-0.84c-2.31,-0.88 -6.15,-0.22 -4.5,-3.71 0.81,-2.84 -1.69,-4.3 -3.84,-4.7 -1.19,-2.12 0.77,-2.92 1.79,-2.7 1.1,-1.9 -0.71,-4.04 -1.69,-4.68 0.35,-1.37 0.2,-5.41 0.68,-4.97 1.59,3.78 6.34,-5.25 4.96,-0.56 0.24,2.86 4.45,-0.07 2.01,-1.61 0.04,-2.03 -0.06,-3.57 2.27,-2.05 0.18,-1.79 3.93,-0.45 2.6,-2.4 -2.36,-1.07 -4.97,1.4 -7.44,0.51 -0.9,0.41 -2.06,0.6 -1.03,-0.46 2.89,0.74 6.43,-0.56 7.07,-3.76 0.42,-1.7 4.2,-3.59 3.75,-0.9 2.01,1.66 -0.21,4.73 -1.55,6.01 0.4,0.87 0.32,2.52 0.39,3.1 -1.16,1.34 2.36,4.31 4.12,3.09 1.32,1.67 -1.85,5.56 -2.69,2.65 -3.21,0.21 -0.77,4.74 -2.69,6.35 -0.74,1.02 -5.24,-0.82 -2.77,1.37 1.61,1.85 3.89,1.32 5.37,0.39 1.04,1.32 2.66,0.54 1.88,1.61 2.2,1.44 0.71,6.32 -1.89,3.8 -0.99,-0.9 -2.97,-2.42 -3.55,-4.38 -0.8,-2.14 -4.39,1.02 -3.28,1.06 2.19,-0.86 -0.04,1.87 1.38,2.68 -1.87,1.01 -1.25,3.06 -0.58,3.35 -0.3,0.27 -0.55,0.59 -0.78,0.92z m18.96,-2.29c-1.92,-0.02 -1.04,-3.7 -3.92,-2.81 -3.51,-0.09 0.22,-3.64 -2.76,-5.02 -1.79,-1.21 3.2,0.15 3.13,-2.28 0.04,-2.46 4.91,0.23 1.92,1.9 1.06,2.45 3.33,-0.76 2,-2.36 -0.51,-1.34 -2.25,-2.02 0.21,-1.96 2.33,-0.37 1.21,1.23 1.29,2.13 2.22,2.03 -1.98,3.78 -1.88,4.86 2.05,0.87 2.04,2.76 -0.28,2.66 -0.97,0.83 0.11,2.08 0.29,2.88z m-25.23,-19.54c-1.89,-1.51 1.09,-5.6 1.21,-4.99 -1.52,1.21 -1.11,3.3 -1.21,4.99z\",\"name\":\"Denmark\"},\"ru\":{\"path\":\"m558.98,364.3c-2.56,-0.91 -4.97,-2.14 -7.36,-3.43 -2.39,-1.15 -4.94,-2.06 -7.59,-2.35 -2.81,2.28 -5.5,-0.94 -8.06,-1.85 -1.23,0.3 0.78,2.15 -1.52,1.8 -2.42,-0.25 -3.69,-3.69 -6.4,-2.82 -1.31,0.16 -4.41,0.18 -1.55,-0.66 1.64,-0.7 0.81,-3.34 -0.75,-1.74 0.37,-1.63 2.93,0.94 3.87,-1 1.25,-0.31 2.74,-1.24 3.63,-1.06 1.16,-2.32 -3.44,-3.39 -1.08,-5.92 0.57,-0.81 -0.94,-4.08 0.12,-2.72 0.39,2.37 2.24,1.11 1.25,-0.78 -1.26,-3.41 3.86,0.53 3.04,-2.81 -1.97,-1.81 -4.99,-1.7 -7.55,-2.54 -2.06,-0.94 2.06,-1.24 1.86,-3.16 2.06,1.7 4.87,-1.76 1.32,-1.4 -0.21,-1.02 3.11,-2.69 3.56,-4.64 3.16,0.27 3.03,-5.1 -0.28,-4.48 -2.62,0.21 -2.08,3.91 -4.95,4.14 -2.31,1.85 -0.59,-0.97 -1.26,-1.15 -2.27,0.02 -1.28,-3.82 0.48,-4.34 1.4,-2.13 0.73,-5.08 4.3,-4.68 2.91,0.1 4.24,-2.66 2.99,-5.05 -0.44,-0.81 1.31,-4.54 -0.5,-3.12 -0.89,0.38 -1.08,-3.79 -3.06,-2.28 -2.61,-1.85 3.34,-2.5 1.03,-4.59 -1.03,0.14 -4.3,0.91 -2.02,-0.74 1.96,-2.14 1.02,-4.53 -0.68,-6.4 1.16,-2.59 -2.93,-0.35 -3.64,0.61 0.41,-2.95 -3.61,-0.32 -4.74,-2.01 -1.3,0.69 -2.17,2.73 -3.44,0.57 -1.62,0.46 -2.9,0.42 -4.52,-0.03 -1.18,0.97 0.35,3.57 -1.91,1.94 -2.66,-0.03 -3.84,-4.48 -6.19,-3.24 -2.12,0.99 -3.16,6.03 -6.01,3.79 -0.55,1.88 -3.23,-1.75 -4.12,0.93 -2.26,2.15 -4.17,-0.6 -4.14,-2.64 -1.31,-0.74 -1.67,-2.47 -1.76,-3.17 -1.84,0.68 -2.55,-1.54 -3.04,-1.81 -1.53,1.29 -5.9,2.64 -6.27,0.53 -0.46,-1.43 -3.35,-2.71 -0.58,-3.43 0.87,-2.91 -3.85,-2.55 -4.29,-5.27 -1.34,-1.28 -2.82,-2.7 -4.07,-0.62 -2.6,-1.29 -3.34,1.16 -4.86,2.57 -2.29,-0.64 -4.88,0.47 -3.99,3.28 -1.64,3.09 -5.33,-1.16 -5.28,-3.38 0.29,-1.54 -1.99,-0.85 -0.93,-2.73 -1.04,-1.23 -5.06,-2.53 -2.44,-4.58 2.85,1.31 6.86,-0.11 6.98,-3.34 2.36,-1.51 -0.16,-3.89 -1.6,-4.2 -0.58,-2.91 -4.71,-0.88 -5.61,-1.07 0.65,-2.69 -1.62,-3.41 -3.71,-3.4 -2.11,-1.16 -3.32,-2.8 -3.81,-4.83 -2.42,0.17 -3.41,-1.67 -2.18,-3.83 -0.02,-1.71 -2.9,-2.44 -1.99,-4.84 -0.01,-1.79 -0.45,-2.87 -2.15,-2.08 -2.12,-2.07 -5.85,-2.66 -7.51,0.31 -0.95,2.92 -2.17,-0.33 -1.92,-1.55 -1.94,-2.34 -4.43,2.65 -5.64,-0.22 -1.71,0.04 -3.09,1.26 -3.28,-1.31 -0.9,-2.65 -2.85,-5.01 -4.71,-6.53 -1.83,-1.02 1.04,-5.27 -2.45,-5.76 -1.67,-0.51 -0.04,-2.71 -2.19,-1.57 0.05,-1.42 0.26,-2.99 1.68,-3.72 -0.54,-0.99 -1.34,-2.16 -1.45,-2.96 -2.84,-0.69 -1.01,-4.26 -2.77,-5.86 -2.08,-2.24 0.85,-4.53 0.39,-6.92 -1.01,-2.41 3.22,-2.6 0.55,-4.16 -0.83,-1.3 -2.35,-4.31 0.18,-2.28 1.51,-0.56 0.02,-3.79 2.55,-2.16 2.03,-0.4 0.55,-4.34 3.6,-3.39 1.61,0.41 6.06,0.64 4.72,-1.87 -2.47,0.38 -3.46,-3.31 -5.66,-1.7 -1.73,1.59 -3.35,0.22 -4.28,-0.75 -2.83,1.04 -0.5,-5.97 -3.43,-3.33 -0.79,1.95 -3.72,3.09 -1.67,0.48 4.94,-7.07 7.08,-15.55 9.98,-23.55 0.44,-3.03 2.51,-7.51 -0.31,-9.8 -2.38,-1.89 -5.29,-2.93 -7.96,-4.32 -3.88,-1.06 2.38,-6.07 -1.12,-8.02 -2.45,-0.36 -4.96,-1.94 -3.33,-4.47 -1.48,-1.21 -6.02,-2.28 -3.05,-4.86 0.42,-0.7 -3.23,-0.64 -2.08,-2.79 0.39,-2.06 -0.85,-2.94 1.09,-3.89 -0.82,-2.4 -2.73,-4.51 -4.14,-6.68 -1.51,-2.32 -3.78,-4.06 -5.41,-6.21 -0.98,-3.34 2.21,-6.3 1.62,-9.59 -0.91,-2.31 -3.95,-2.73 -4.86,-5.04 -3.1,0.98 -6.11,-2.82 -4.58,-5.63 1.26,-2.13 -3.52,-2.39 -0.66,-3.49 1.51,-2.49 0.64,-5.59 3.12,-7.72 -0.6,-2.56 3.46,0.62 3.16,-2.41 -2.11,-2.17 1.85,-1.54 2.99,-1.35 2.03,1.63 4.11,1.29 6.52,0.08 0.37,0.23 -0.76,2.57 1.13,2.81 -1.22,0.77 -1.32,4.65 0.4,2.88 0.2,-1.73 1.36,-3.42 1.9,-5.04 3.21,0.08 6.07,-1.95 9.29,-1.34 2.75,0.76 5.58,1.26 8.28,2.2 2.14,0.82 4.03,2.32 6.18,3.01 2,-1.35 5.54,1.61 7.21,-0.07 2.23,0.7 3.31,3.46 5.54,1.69 1.16,1.01 0.65,2.43 2.18,2.82 1.01,2.1 3.8,2.21 3.29,5.21 -0.09,3.44 0.15,7.2 -2.11,10.07 -2.26,3.09 -6,5.79 -10.02,4.97 -2.84,-0.74 -5.34,0.99 -8.08,1.16 -2.01,0.97 -5.49,-2.15 -6.54,-0.13 -1.33,0.97 -2.24,-0.89 -2.89,-1.46 -1,2.57 -7.21,1.52 -6.06,-1.62 -0.53,-0.64 -4.07,0.19 -5.44,0.48 -1.33,1.22 -0,2.41 1.25,1.32 2.16,-0.38 0.62,2.19 3.06,2.74 1.23,1.53 6.57,0.25 5.42,2.51 -1.91,3.1 2.22,0.91 3.81,1.72 2.09,0.58 5.78,2.19 4.56,4.13 2.75,1.59 0.23,3.96 -0.48,5.25 2.3,-0.18 4.43,1.99 4.35,4.27 2,-0.84 0.78,1.8 1.68,2.47 0.1,3.23 4.49,3.53 6.69,2.22 2.28,0.22 3.06,3.83 6.02,2.68 3.14,0.7 6.51,-0.4 7.17,-3.81 0.24,-2.71 -4.02,-6.69 -5.49,-3.3 -2.65,0.34 -5.44,-2.93 -6.7,-4.13 2.45,-0.62 0.68,-2.65 0.87,-3.74 2.98,-0.53 5.18,2.7 8.25,1.24 2.42,-0.59 5.57,1.81 7.6,-0.26 0.47,-1.42 5.9,0.3 3.69,-2.76 -1.12,-2.61 -3.65,-4.39 -6.37,-5.3 -3.26,-1.55 -1.48,-4.68 -0.67,-7 0.13,-2.98 3,-4.72 3.48,-7.44 -0.29,-1.95 -0.01,-6.22 2.42,-3.58 1.94,-2.25 5.82,-1.29 7.83,0.68 1.2,2.1 3.32,0.53 1.22,-1.06 -2.48,-1.87 -1.81,-4.87 -2.24,-7.47 -1.88,-1.57 -2.53,-5.38 -5.87,-5.07 -3.66,0.72 -1.05,-5.18 -3.4,-6.67 -1.19,-0.92 0.46,-3.75 -1.48,-3.55 -1.01,-2.39 -5.64,-2.94 -6.17,-3.55 2.64,0.97 4.98,-0.76 6.95,-2.52 2.55,-2.21 4.69,1.32 7.17,1.82 2.66,0.14 2.98,2.58 0.58,3.55 -1.44,1.01 -3.37,2.5 -1.86,4.15 -2.05,2.82 1.45,5.04 4.18,4.46 2.24,0.66 3.9,4.74 5.89,0.83 -0.45,2.74 1.7,0.82 1.6,-0.76 0.67,-1.92 4.97,-2.44 2.12,-4.7 -0.88,-2.08 -0.93,-5.08 -2.83,-6.29 1.51,-0.41 1.74,-3.36 4.33,-3.14 0.74,-1.52 -4.26,-0.47 -1.65,-2.01 1.38,-2.03 1.95,-4.13 2.25,-6.48 -0.71,-3 2.32,-4.04 2.61,-6.78 0.79,-1.07 0.87,-3.3 2.02,-0.85 0.37,3.39 3.79,-1.54 1.28,-2.71 -2.87,-0.55 -1.44,-3.38 -0.47,-5.41 0.59,0.58 1.75,-1.54 1.49,0.66 0.07,2.26 4.9,2.03 2.07,4.51 -3.06,1.89 2.52,2.73 3.16,0.29 0.8,-0.58 2.28,-0.85 1.45,-2.12 2.18,1.11 3.08,-1.11 1.14,-2.24 -0.63,-3.15 1.27,-6.2 4.04,-7.12 3.15,-0.33 1.76,-4.5 2.46,-6.7 2.68,1.91 1.44,-1.23 0.17,-1.57 -0.24,-1.73 3.07,-1.64 3.49,-0.99 -0.52,3.68 4.93,5.45 5.98,1.6 -0.74,-2.19 -4.02,-2.52 -1.51,-4.94 1.37,-2.71 -0.97,-5.14 -3.64,-5.47 -2.06,-0.69 -6.98,-0.83 -4,-3.86 -2.84,-2.24 1.77,-2.66 3.14,-4.1 2.67,-3.27 6.84,-5.01 10.97,-5.41 2.08,0.66 3.04,-0.42 5.04,-0.78 3.26,-0.69 5.53,-2.7 8.88,-1.89 1.83,0.09 3.72,-0.92 5.18,-0.23 3.3,-0.51 -0.59,-3.78 0.31,-4.05 7.13,0.01 14.26,-0.01 21.38,0.01 2.09,0.14 -2,3.01 0.93,2.93 1.33,0.5 2.97,0.39 1.78,1.28 0.04,1.2 -0.09,5.95 -1.36,3.75 0.88,-1.97 -1.47,-3.03 -1.4,-0.65 -0.13,1.49 -3.77,0.21 -3.69,2.55 -3.37,1.5 0.23,4.73 2.72,4.05 3.82,-0.71 6.21,-3.84 8.09,-6.94 1.84,-0.32 4.98,-2.24 2.66,-4.31C557.34,3.94 555.66,1.55 558.62,2.18c40.17,0 80.35,0 120.52,0 0,32.42 0,64.83 0,97.25 -2.09,0.36 -2.95,2.3 -1.54,3.74 -2.44,-1.53 -2.16,1.82 -2.17,2.03 -1.83,-0.06 -0.41,-2.79 -2.86,-3.06 -0.55,-1.54 -1.56,-2.65 -3.54,-1.77 -1.52,-1.23 -4.42,-2.86 -6,-3.08 -2.3,1.54 0.4,6.71 -3.71,5.55 -1.63,0.21 -3.74,1.9 -3.4,2.86 -1.22,-0.25 -2.92,1.14 -1.43,2.07 -2.82,1.19 1.7,2.9 -0.94,4.55 -2.72,2.09 2.48,0.44 1.29,3.06 -2.53,0.4 -0.3,2.61 -2.09,4 -0.4,3.26 -2.41,5.93 -3.86,8.82 0.28,0.79 -3.1,0.12 -1.27,1.6 -1.02,2.01 -3.11,4.53 -0.2,6.39 -2.52,0.22 -3.43,3.38 -5,5.17 -0.91,1.5 1.12,2.54 -1.32,2.93 -1.23,2.37 -2.15,5.27 -3.97,7.32 1.46,1.7 -3.54,1.33 -2.2,4 0.89,0.84 -2.06,0.35 -2,1.51 -2.16,-0.19 -3.58,4.12 -1.57,4.8 2.75,-1.67 -0.46,5.07 2.92,2.57 1.47,-1.64 1.11,3.68 3.89,2.06 1.15,-1.3 4.64,-3.43 5.55,-1.97 -0.97,2.34 -5.83,2.91 -5.32,5.59 1.65,1.51 -1.67,5.32 2.05,4.87 0.58,1.25 3.67,-0.2 3.17,2.56 -0.46,2.07 -2.09,3.57 -1.96,5.92 -2.28,1.79 1.99,3.07 3.27,1.27 1.22,3.88 3.54,-2.53 5.73,-0.07 1.71,0.15 3.48,-3.04 4.82,-0.75 0.7,2.54 3.93,4.85 1.33,7.39 -0.96,2.05 -3.49,5.21 -5.83,2.98 -2.18,1.39 0.8,4.71 -0.35,6.74 -1.64,-3.35 -4.19,2.67 -7,1.13 -1.58,0.37 -1.77,-1.65 -2.62,-1.81 -0.7,0.72 -4.76,0.36 -3.34,1.66 -0.36,0.87 -3.77,2.22 -1.73,4.23 -0.31,2.89 -2.88,-1.51 -4.31,1.09 -1.46,1.61 -3.55,2.49 -3.46,4.75 -0.41,1.43 -0.54,3.48 -0.05,5.34 -0.27,1.74 -0.64,1.81 -2.46,1.7 -2.35,1.24 -5.67,-2 -7.94,0.36 -1.02,1.19 0.11,2.72 -2.11,2.54 -1.91,-2.74 -5.13,1.42 -6.94,-1.53 -3.68,-1.24 -4.83,6.16 -8.08,2.91 -0.68,-0.31 -3.05,-3.22 -2.23,-1.07 0.44,2 -3.21,4.32 -1.91,5.59 -1.58,-0.54 -1.24,3.52 -1.64,0.7 -1.39,-2.07 -3.9,0.94 -5.63,0.87 0.37,1.37 0.82,0.9 -0.34,1.77 -0.21,2.03 1.56,4.11 -0.43,6.09 -0.26,2.82 -3.85,3.15 -3.39,6.04 1.82,1.79 -0.1,4.43 -1.07,6.43 -3.76,0.87 1.99,2.12 2.03,4.1 0.89,1.78 3.76,2.19 1.71,4.57 -2.3,2.9 -5.15,-1.81 -7.83,-2.01 -3.78,-1.12 -4.32,3.77 -2.19,5.82 -2.31,2.78 -0.33,6.19 0.38,9.1 0.77,1.86 4.43,0.77 3.16,3.54 -0.62,2.49 -0.11,4.99 0.21,7.43 1.17,3.44 5.88,-1.22 6.9,2.2 0.63,0.39 -1.33,1.3 0.64,1.71 0.61,2 4.71,2.89 4.1,0.07 2.42,-0.19 4.16,-3.38 6.65,-1.26 2.61,1.3 4.67,3.68 7.51,4.49 2.44,-0.41 2.29,3.63 -0.15,2.17 -3.16,1.33 0.69,4.72 2.95,3.33 2.69,-1.74 4.67,2.16 2.98,3.28 -1.53,-1.48 -3.23,1.37 -1.51,2.46 -1.66,0.09 -1.17,4.59 -3.15,5.57 -2.16,-0.57 -0.01,3.21 -2.03,1.18 -1.51,-0.51 -1.63,0.74 -2.82,1.17 0.46,1.78 3.76,-0.82 2.44,1.78 0.45,1.46 -0.73,2.48 0.5,3.94 -0.91,1.42 1.06,4.29 -0.87,5.01 0.89,2.05 -1.39,4.46 -0.11,6.57 1.6,2.36 2.84,-1.08 4.63,0.84 2.19,0.61 6.36,2.5 5.42,5.48 1.51,1.9 3.6,2.8 3.89,5.79 1.08,1.98 3.28,1.24 4.3,3.24 2.25,0.68 4.45,1.39 6.37,2.79 1.16,1.48 3.78,2.23 4.69,2.86 -0.38,2.65 -2.37,5.25 -1.49,7.93 0.05,2.46 -6.1,4.34 -5.15,1.14 -2.52,-0.74 -5.24,-0.5 -7.55,-1.88 -1.49,0.54 -3.24,0.69 -4.5,0.55 -1.71,1.13 -6.19,1.11 -5.4,-1.84 -0.88,-3.94 -4.63,1.38 -6.95,-0.97 -1.81,-1.22 -2.73,1 -2.64,2.13 -3.4,-2.47 -4.1,3.12 -6.37,4.33 -1.56,1.14 -0.42,-3.07 -2.75,-1.69 -2.4,0.37 -5.28,1.01 -7,-0.66 -2.78,0.67 -5.63,0.98 -8.42,1.61 1.94,1.66 -2.76,2.56 -3.79,2.43 -2.67,-0.72 -5.06,0.99 -7.69,0.02 -2.34,1.37 -6.27,0.31 -6.05,4.11l-0.04,0.01 0,0z m57.81,-33.85c-0.89,-1.57 0.49,-2.17 0,0z m-241.23,-51.26c-1.5,-0.26 -4.88,0.4 -5.3,-0.46 2.59,-1.58 -0.9,-5.56 2.71,-5.44 2.09,-0.97 5.31,1.36 6.88,-1.15 -0.17,-1.75 -1.39,-4.59 1.04,-3 2.58,1.66 5.83,-0.05 8.09,1.03 2.4,1.17 -0.19,4.14 1.51,6.12 -0.91,2.05 -4.72,1.7 -6.85,2.38 -2.67,0.39 -5.38,0.53 -8.08,0.53z m245.17,-54.27c-0.96,-0.5 -1.79,-4.14 -0.7,-1.7 0.41,0.34 1.1,1.13 0.7,1.7z m15.47,-62.08c-0.5,-1.68 1.86,0.26 0,0z M392.43,81.96c-1.18,-1.24 -0.52,-3.74 1,-1.58 0.97,0.64 4.51,-0.85 3.11,1.22 -1.28,-0.1 -4.06,-2.2 -4.11,0.36z m69.72,-22.48c-3.13,-0.37 -5.18,-4.96 -3.51,-7.6 1.49,-0.95 5.9,-1.19 6.08,0.31 -0.75,2.23 0.93,5.01 -1.2,6.83 -0.37,0.32 -0.88,0.46 -1.36,0.46z m1.2,-32.66c0.64,-1.98 -0.94,-1.7 -1.81,-2.37 0.83,-0.97 3.57,-1.76 1.01,-2.23 -1.29,0.52 -2.78,0.7 -3.28,0.14 -1.2,0.89 -3.04,-4.18 -2.96,-0.9 1.94,3.97 -3.66,-2.01 -2.98,1.25 2.3,2.87 -2.86,2.37 -3.53,0.29 -1.84,-1.41 -2.9,-5.04 0.07,-4.98 -0.36,-1.21 -1.52,-2.86 -0.18,-4.45 -3.01,0.94 -0.61,-2.79 -2.49,-3.65 -1.26,2.21 -4.03,0.25 -1.58,-1.13 2.3,-1.91 -4.09,-1.91 -1.43,-4.6 0.66,-1.81 2.03,-2.29 3.79,-2.01 1.73,-0.33 3.25,0.66 4.85,0.17 2.53,-1.3 -3.03,3.08 0.48,2.2 3.11,-1.44 -1.22,5.41 2.65,3.83 2.34,0.52 1.33,4.72 3.21,4.64 2.81,0.65 4.59,3.49 7.55,3.98 2.95,1.5 6.52,1.02 9.42,1.43 -0.95,0.85 -5.31,2.46 -4.34,3.45 -1.86,0.24 -4.2,1.89 -2.01,3.36 -1.56,0.82 -3.63,-0.42 -4.9,1.06 -0.87,-0.61 -1.05,-0.3 -1.52,0.53z m23.35,-5.93c-1.68,-0.42 -4.33,-0.5 -2.76,-2.36 -1.89,0.07 -1.65,-3.14 0.36,-1.62 2.48,0.8 5.12,0.27 7.63,0.6 2.21,1.62 -2.46,4.83 -3.16,1.83 -0.45,0.12 -0.96,1.84 -2.07,1.55z\",\"name\":\"Russian Federation\"},\"mt\":{\"path\":\"m343.65,509.08c-1.52,-0.23 -1.75,-0.24 0,0z m1.95,2.72c-1.32,-0.63 -1.5,-0.7 0,0z\",\"name\":\"Malta\"},\"me\":{\"path\":\"m385.29,433.13c-1.98,-1.45 -3.12,-5.3 -6.16,-4.27 -0.68,-0.6 -0.46,-1.87 -1.44,-2.17 0.16,-1.66 0.06,-3.3 -0.89,-4.86 1.96,-1.05 1.28,-4.74 3.12,-5.09 1.81,3.01 2.14,-1.15 0.71,-2.43 2.24,-0.2 3.4,-2.11 5.57,-0.36 3.49,0.56 2.95,4.72 6.22,5.9 -2.5,0.45 -0.84,6.17 -3.72,4.67 0.19,-3.37 -2.81,0.5 -2.99,1.87 -0.8,1.83 -2.3,3.26 -0.46,4.87 0.08,0.47 0.4,1.59 0.03,1.87z\",\"name\":\"Montenegro\"},\"rs\":{\"path\":\"m397.48,431.57c-0.16,-2.49 -1.05,-5.46 -3.99,-5.18 -0.83,-1.86 -3.16,-3.89 -0.74,-5.1 2.42,-2.35 -3,-3.15 -2.73,-5.8 -1.28,-2.34 -5.16,-1.7 -5.47,-5.07 -0.61,-1.48 -2.43,-2.36 0.08,-2.14 2.37,-1.69 -1.79,-3.25 -2.79,-4.49 -3.49,-0.35 0.76,-4.99 -0.07,-7.08 -1.54,-0.41 -2.38,-0.6 -2.22,-2.53 -0.29,-0.9 3.52,-0.03 1.84,-1.89 -1.99,-0.46 -4.18,-1.03 -2.61,-2.61 0.5,-1.92 -2.64,0.29 -1.69,-2.2 -0.12,-1.58 -1.93,-2.81 0.65,-3.27 2.64,-1.35 4.3,-3.64 7.52,-3.04 2.34,-0.11 4.56,2.67 6.11,3.82 1,0.92 0.22,4.94 3.24,4.94 1.65,0.3 5.5,0.5 3.47,2.78 1.27,1.27 0.97,1.07 -0.4,2.22 0.32,1.47 3.21,0.4 3.09,2.01 1.78,0.14 4.21,-0.13 4.93,1.74 2.85,0.45 1.17,-3.79 1.99,-3.56 1.66,0.7 3.37,1 1.04,1.99 -1.64,2.21 4.19,3.86 0.86,5.71 -2.2,2.75 0.34,6.72 2.98,8.19 2.92,0.51 3.82,2.98 1.52,5.06 -0.82,0.05 -2.7,-0.25 -2.65,1.85 -1.23,2.37 3.66,5.04 -0.48,5.54 -2.42,1.11 -4.61,2.18 -7.35,2.39 -1.32,2.74 -6.31,0.55 -6.16,5.74z\",\"name\":\"Serbia\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.france.js",
    "content": "jQuery.fn.vectorMap('addMap', 'france_fr', {\"width\": 520, \"height\": 550, \"paths\":{\"fr-01\" : {\"path\": \"M 383.28125,262.59375 L 381.125,262.8125 L 379.75,265.34375 L 376.0625,279.78125 L 375.53125,280.96875 L 375.15625,285.53125 L 374.09375,287 L 374.09375,293.59375 L 373.46875,295.09375 L 377.28125,297.40625 L 378.78125,297.625 L 381.125,299.75 L 381.53125,303.15625 L 384.09375,302.3125 L 388.0625,303.46875 L 388.125,302.71875 L 390.03125,302.71875 L 392.78125,305.28125 L 395.34375,304 L 396.625,300.1875 L 397.90625,298.6875 L 399.59375,298.90625 L 401.28125,300.40625 L 402.15625,303.15625 L 410,312.71875 L 412.34375,311.03125 L 412.75,307.40625 L 415.3125,306.96875 L 415.3125,300.59375 L 416.59375,299.53125 L 417,293.8125 L 417.5,294.21875 L 417.4375,292.125 L 416.375,290.1875 L 416.8125,284.6875 L 418.71875,285.75 L 419.78125,283.8125 L 421.6875,283.1875 L 423.65625,281.625 L 421.53125,281.625 L 421.53125,277.90625 L 423.875,276.53125 L 427.375,276.15625 L 427.59375,274.1875 L 426.40625,273.40625 L 429.34375,269.6875 L 428.9375,268.53125 L 425.59375,266.75 L 417.46875,275.6875 L 411.8125,275.6875 L 411.8125,273.34375 L 408.6875,271.78125 L 404.96875,275.875 L 402.03125,276.28125 L 402.03125,273.53125 L 399.5,272.375 L 395.59375,266.90625 L 392.0625,265.53125 L 390.90625,263 L 388.9375,262.59375 L 387,263.96875 L 385.4375,264.375 L 383.28125,262.59375 z \", \"name\" : \"Ain\"}, \"fr-02\" : {\"path\": \"M 328.40625,62.21875 L 325.28125,64.375 L 323.71875,63 L 322.34375,63 L 319.21875,65.15625 L 316.875,63.78125 L 314.53125,65.15625 L 313.75,65.34375 L 313.15625,64.15625 L 311,64.15625 L 309.4375,65.15625 L 309.375,65.15625 L 309.84375,67.90625 L 307.28125,70.6875 L 307.28125,73.25 L 305.5,75.25 L 305.90625,77.625 L 306.875,81.59375 L 308.0625,88.34375 L 307.6875,94.28125 L 306.875,96.0625 L 309.25,97.84375 L 307.46875,98.65625 L 306.28125,103.40625 L 302.90625,104.1875 L 301.71875,106.1875 L 304.09375,106.59375 L 304.5,109.34375 L 302.71875,109.75 L 302.90625,112.71875 L 303.5,112.53125 L 304.5,110.9375 L 306.875,112.53125 L 308.28125,114.125 L 307.875,116.78125 L 309.65625,118.0625 L 310.25,122.375 L 315.5,127.4375 L 317.25,128.03125 L 318.25,130.375 L 321.53125,131.0625 L 321.9375,130.5625 L 322.9375,128.4375 L 325.875,127.0625 L 327.4375,122.96875 L 329.1875,121.78125 L 328.1875,120.40625 L 325.65625,120.40625 L 325.28125,119.0625 L 327.03125,118.28125 L 327.8125,117.09375 L 326.0625,115.9375 L 326.625,114.15625 L 331.125,113.78125 L 330.34375,112.03125 L 327.625,110.25 L 327.625,105 L 331.3125,102.25 L 335.4375,102.25 L 335.03125,100.3125 L 337.375,99.3125 L 340.6875,101.46875 L 342.0625,101.09375 L 341.875,94.4375 L 342.46875,92.09375 L 343.25,89.375 L 340.6875,88 L 341.28125,86.4375 L 345,85.65625 L 345,83.125 L 347.9375,81.5625 L 348.71875,79.21875 L 347.75,77.65625 L 347.9375,74.71875 L 349.6875,73.15625 L 347.9375,69.84375 L 348.46875,66.375 L 344.5,66.375 L 343.4375,67.09375 L 339.71875,66.125 L 338.9375,63.59375 L 337.78125,63.59375 L 335.625,65.53125 L 335.25,63.78125 L 330.9375,63.375 L 329.75,62.40625 L 328.40625,62.21875 z \", \"name\" : \"Aisne\"}, \"fr-03\" : {\"path\": \"M 301.625,247.96875 L 298.90625,251.46875 L 297.34375,251.65625 L 295.59375,253.4375 L 293.625,251.28125 L 288.375,256.5625 L 288.375,259.6875 L 289.34375,260.46875 L 289.53125,262.03125 L 286.8125,264.15625 L 284.25,263.375 L 279.375,264.375 L 276.84375,267.28125 L 275.90625,269.28125 L 276.0625,269.25 L 278.40625,272.5625 L 278.40625,274.90625 L 279.75,276.65625 L 281.125,274.90625 L 282.6875,277.65625 L 284.84375,278.4375 L 287,283.5 L 287.09375,284.96875 L 290.0625,287.28125 L 291.65625,286.5625 L 292.90625,283.5625 L 294.125,283.21875 L 294.125,281.625 L 296.25,281.4375 L 296.4375,282.5 L 299.09375,279.5 L 302.09375,279.5 L 302.625,280.5625 L 301.21875,282.5 L 303.3125,284.8125 L 303.6875,286.21875 L 308.625,289.0625 L 314.625,289.9375 L 316.40625,289.75 L 319.0625,290.28125 L 321.34375,288.875 L 323.125,289.75 L 323.46875,292.21875 L 325.78125,292.75 L 328.78125,292.59375 L 329.65625,294.71875 L 332.40625,295.8125 L 332.5,294.84375 L 337.1875,294.625 L 336.8125,283.5 L 335.4375,280.78125 L 336,278.625 L 339.25,278.0625 L 339.34375,277.84375 L 343.4375,274.71875 L 343.625,267.09375 L 342.25,265.15625 L 339.125,265.15625 L 337.96875,263.59375 L 334.65625,263.59375 L 333.6875,262.40625 L 333.6875,259.46875 L 329.75,252.0625 L 327.8125,250.6875 L 324.09375,255.78125 L 322.53125,256.15625 L 321.9375,253.625 L 320.1875,252.84375 L 319.40625,254.40625 L 316.5,254.40625 L 316.09375,252.65625 L 314.125,253.8125 L 312,255 L 309.65625,252.4375 L 306.3125,250.875 L 306.125,248.34375 L 301.625,247.96875 z \", \"name\" : \"Allier\"}, \"fr-04\" : {\"path\": \"M 463.84375,364.34375 L 461.71875,367.53125 L 458.71875,369.3125 L 457.65625,371.4375 L 455,371.59375 L 455,373.53125 L 454.28125,374.59375 L 453.21875,377.25 L 446.875,377.09375 L 443.875,375.5 L 441.90625,376.90625 L 438.21875,376.71875 L 437.3125,377.96875 L 438.21875,377.96875 L 438.75,381.3125 L 437.84375,381.6875 L 434.5,379.5625 L 434.5,378.3125 L 432.5625,376.71875 L 431.5,376.71875 L 431.5,378.5 L 429.90625,378.84375 L 426.53125,380.78125 L 424.40625,384.34375 L 423.875,386.09375 L 425.125,386.4375 L 425.3125,389.28125 L 424.0625,389.28125 L 422.125,387.5 L 421.0625,387.6875 L 421.59375,389.28125 L 424.59375,392.625 L 422.65625,393.34375 L 421.25,392.46875 L 417.6875,392.46875 L 414.6875,395.28125 L 414.65625,395.25 L 414.53125,396.40625 L 413.375,395.03125 L 411.8125,393.65625 L 410.8125,396.59375 L 409.0625,398.15625 L 408.3125,398.09375 L 408.34375,398.28125 L 408.5,400.9375 L 410.625,401.3125 L 410.625,403.78125 L 408.6875,404.65625 L 409.03125,407.5 L 412.5625,409.25 L 412.5625,411.1875 L 410.96875,412.96875 L 410.96875,414.5625 L 415.40625,414.5625 L 419.46875,419.15625 L 419.4375,419.25 L 424.59375,417.5625 L 430.96875,421.8125 L 434.5,419.15625 L 435.375,417.375 L 440.34375,415.78125 L 443.5,417.90625 L 448.09375,414.5625 L 453.40625,414.75 L 454.8125,413.3125 L 457.78125,413.1875 L 457.84375,413.15625 L 457.125,411.375 L 458,410.3125 L 457.65625,408.90625 L 460.46875,408.90625 L 461.1875,408.03125 L 463.84375,406.59375 L 465.96875,408.03125 L 467.375,407.125 L 464.03125,404.125 L 460.46875,400.78125 L 459.25,400.40625 L 459.0625,397.75 L 456.9375,394.59375 L 457.65625,390 L 458.71875,387.5 L 460.65625,385.90625 L 460.84375,383.4375 L 463.5,382.03125 L 463.90625,381.875 L 463.90625,378.09375 L 466.65625,377.71875 L 465.09375,376.34375 L 463.125,375.75 L 462.15625,373.21875 L 462.9375,371.46875 L 466.4375,367.75 L 465.875,365 L 466.375,364.46875 L 463.84375,364.34375 z \", \"name\" : \"Alpes de Haute Provence\"}, \"fr-05\" : {\"path\": \"M 447.34375,339.15625 L 445.59375,339.9375 L 445.1875,342.875 L 441.6875,343.28125 L 441.09375,340.53125 L 439.9375,339.375 L 436.40625,339.75 L 435.03125,340.9375 L 434.25,345.03125 L 434.84375,346 L 438.9375,346.40625 L 439.71875,348.9375 L 441.28125,349.71875 L 441.28125,354 L 437.5625,353.8125 L 436,355.5625 L 431.53125,354.78125 L 429,356.9375 L 427.21875,356.15625 L 424.6875,358.125 L 425.65625,359.875 L 424.09375,361.4375 L 419.21875,361.4375 L 419.21875,363.78125 L 420.78125,364.5625 L 420.1875,365.9375 L 416.875,367.28125 L 412.78125,367.6875 L 411.59375,371.40625 L 411.40625,373.75 L 413.5625,375.5 L 411.40625,378.03125 L 408.6875,376.65625 L 405.5625,376.46875 L 405.15625,378.21875 L 407.125,379.59375 L 404.75,381.15625 L 405.5625,384.46875 L 412.1875,386.25 L 413.375,388.78125 L 415.3125,389.15625 L 414.65625,395.25 L 414.6875,395.28125 L 417.6875,392.46875 L 421.25,392.46875 L 422.65625,393.34375 L 424.59375,392.625 L 421.59375,389.28125 L 421.0625,387.6875 L 422.125,387.5 L 424.0625,389.28125 L 425.3125,389.28125 L 425.125,386.4375 L 423.875,386.09375 L 424.40625,384.34375 L 426.53125,380.78125 L 429.90625,378.84375 L 431.5,378.5 L 431.5,376.71875 L 432.5625,376.71875 L 434.5,378.3125 L 434.5,379.5625 L 437.84375,381.6875 L 438.75,381.3125 L 438.21875,377.96875 L 437.3125,377.96875 L 438.21875,376.71875 L 441.90625,376.90625 L 443.875,375.5 L 446.875,377.09375 L 453.21875,377.25 L 454.28125,374.59375 L 455,373.53125 L 455,371.59375 L 457.65625,371.4375 L 458.71875,369.3125 L 461.71875,367.53125 L 463.84375,364.34375 L 466.375,364.46875 L 468.21875,362.46875 L 470.34375,362.65625 L 470.34375,360.90625 L 467.625,359.53125 L 467.03125,353.875 L 464.875,353.09375 L 462.15625,353.5 L 457.0625,350.9375 L 456.28125,345.09375 L 453.375,344.125 L 452.375,342.15625 L 451.09375,339.34375 L 447.34375,339.15625 z \", \"name\" : \"Hautes Alpes\"}, \"fr-06\" : {\"path\": \"M 463.90625,381.875 L 463.5,382.03125 L 460.84375,383.4375 L 460.65625,385.90625 L 458.71875,387.5 L 457.65625,390 L 456.9375,394.59375 L 459.0625,397.75 L 459.25,400.40625 L 460.46875,400.78125 L 464.03125,404.125 L 467.375,407.125 L 465.96875,408.03125 L 463.84375,406.59375 L 461.1875,408.03125 L 460.46875,408.90625 L 457.65625,408.90625 L 458,410.3125 L 457.125,411.375 L 457.84375,413.15625 L 455.53125,414.5625 L 456.40625,416.6875 L 458.71875,416.84375 L 461,417.90625 L 461.375,421.625 L 463.5,423.75 L 464.71875,423.75 L 467.03125,424.625 L 467.375,426.59375 L 465.96875,427.8125 L 467.03125,428.875 L 467.03125,430.125 L 469.21875,432.375 L 469.375,432.1875 L 469.5625,427.71875 L 473.46875,428.5 L 474.84375,426.71875 L 476.8125,427.125 L 477,421.0625 L 481.5,420.6875 L 485.40625,417.15625 L 488.90625,417.15625 L 489.09375,415 L 492.625,412.875 L 490.65625,408.375 L 493.59375,405.84375 L 493,402.90625 L 497.3125,401.53125 L 498.46875,397.25 L 497.90625,394.3125 L 496.90625,392.5625 L 496.125,390 L 493.21875,390.21875 L 484.03125,393.53125 L 481.09375,393.53125 L 476.03125,389.4375 L 470.9375,388.0625 L 468,388.0625 L 468,384.53125 L 463.90625,382 L 463.90625,381.875 z \", \"name\" : \"Alpes Maritimes\"}, \"fr-07\" : {\"path\": \"M 375.25,328.5 L 370.71875,331.1875 L 369.84375,335.03125 L 366.46875,335.65625 L 364.65625,336.15625 L 364.71875,336.25 L 363.5625,340.9375 L 360.8125,342.09375 L 359.65625,344.0625 L 360.4375,346.59375 L 361,347.96875 L 358.09375,347.96875 L 357.875,351.65625 L 354.75,351.875 L 353.1875,356.75 L 348.5,356.75 L 343.4375,360.46875 L 340.625,364.9375 L 341.09375,365.53125 L 342.46875,372.71875 L 345.78125,376.3125 L 345.21875,380.4375 L 349.375,382.9375 L 349.375,388.46875 L 351.59375,387.34375 L 356.28125,390.40625 L 358.5,391.21875 L 359.03125,387.34375 L 361.8125,386.8125 L 362.625,389.84375 L 365.40625,389.5625 L 365.9375,386.53125 L 372.28125,390.09375 L 373.3125,388 L 376,387.59375 L 376.21875,383.46875 L 375.59375,382.59375 L 374.75,382.40625 L 374.75,380.90625 L 375.375,379.40625 L 374.3125,377.71875 L 374.9375,373.90625 L 377.5,370.90625 L 377.5,366.6875 L 376.4375,361.78125 L 378.34375,361.375 L 378.78125,359.25 L 380.6875,355.625 L 381.75,352.875 L 380.0625,348.625 L 379,345.21875 L 377.5,339.28125 L 377.5,331.3125 L 376.4375,330.96875 L 375.25,328.5 z \", \"name\" : \"Ardèche\"}, \"fr-08\" : {\"path\": \"M 367.625,55.84375 L 365.65625,58.75 L 363.90625,60.53125 L 363.90625,62.28125 L 363.90625,64.625 L 361.5625,66.1875 L 357.28125,67.5625 L 354.9375,68.53125 L 352.1875,66.375 L 348.46875,66.375 L 347.9375,69.84375 L 349.6875,73.15625 L 347.9375,74.71875 L 347.75,77.65625 L 348.71875,79.21875 L 347.9375,81.5625 L 345,83.125 L 345,85.65625 L 341.28125,86.4375 L 340.6875,88 L 343.25,89.375 L 342.46875,92.09375 L 341.875,94.4375 L 342,99.3125 L 346.75,99.4375 L 350.90625,102.03125 L 351.6875,103.21875 L 353.875,103.8125 L 357.0625,106.1875 L 359.625,106.375 L 360.21875,105.78125 L 362.8125,105.78125 L 364,108.375 L 365.375,108.375 L 366.1875,107.1875 L 370.9375,107.375 L 371.71875,108.375 L 372.3125,108.375 L 374.3125,106.375 L 376.09375,107.96875 C 376.09375,107.96875 376.33461,107.94351 376.375,107.9375 L 376.25,107.125 L 378.59375,105.96875 L 379.75,104.78125 L 379,102.84375 L 378.78125,101.46875 L 380.9375,99.71875 L 381.71875,95.8125 L 379.375,92.875 L 380.15625,91.5 L 382.125,87.8125 L 382.6875,88.59375 L 385.625,88.59375 L 387,89.9375 L 388.75,88.78125 L 390.125,86.53125 L 388.71875,86.3125 L 387.9375,82.40625 L 386.375,81.21875 L 380.90625,80.625 L 379.9375,78.09375 L 378.15625,76.9375 L 371.90625,76.15625 L 371.53125,71.65625 L 372.3125,70.875 L 372.3125,69.125 L 369.1875,67.15625 L 369.78125,65 L 370.5625,63.0625 L 369.1875,61.875 L 371.34375,59.9375 L 371.34375,56.40625 L 370.5625,55.84375 L 367.625,55.84375 z \", \"name\" : \"Ardennes\"}, \"fr-09\" : {\"path\": \"M 237.21875,446.375 L 235.96875,447.25 L 235.4375,448.3125 L 237.90625,450.09375 L 238.625,451.34375 L 238.09375,452.375 L 233.84375,452.75 L 232.625,454.5 L 232.78125,455.03125 L 234.375,455.5625 L 235.28125,456.8125 L 234.21875,458.5625 L 232.96875,458.40625 L 231.03125,456.625 L 228.71875,455.9375 L 226.4375,456.09375 L 222.375,458.5625 L 222.53125,461.9375 L 223.59375,462.65625 L 222.90625,465.28125 L 218.28125,466.53125 L 216.53125,468.65625 L 216.53125,472.1875 L 217.25,473.25 L 215.59375,474.78125 L 216.65625,475.375 L 222.6875,476.53125 L 225.25,476.53125 L 228.5625,480.84375 L 236.96875,480.4375 L 240.28125,485.71875 L 243.21875,484.53125 L 251.8125,485.71875 L 252.4375,489.3125 L 258.5,487.90625 L 260.71875,485.96875 L 264.03125,485.125 L 264.84375,483.46875 L 272.03125,482.9375 L 267.625,477.6875 L 264.03125,479.625 L 257.6875,474.375 L 259.0625,472.4375 L 264.03125,472.4375 L 263.46875,467.75 L 263.46875,464.15625 L 262.65625,457.5 L 252.96875,452.8125 L 253.53125,451.15625 L 251.6875,449.09375 L 250.125,449.75 L 248,450.09375 L 244.09375,448.3125 L 243.03125,447.96875 L 244.625,449.90625 L 243.9375,451.5 L 240.5625,451.15625 L 240.40625,449.375 L 238.4375,446.71875 L 237.21875,446.375 z \", \"name\" : \"Ariège\"}, \"fr-10\" : {\"path\": \"M 349.3125,138.6875 L 345.34375,140.875 L 341.96875,143.25 L 338.625,143.25 L 333.0625,147.03125 L 328.3125,147.8125 L 324.9375,144.25 L 324.09375,144.4375 L 324.09375,145.03125 L 321.375,146.1875 L 321.1875,148.53125 L 319.8125,150.3125 L 319.03125,154.21875 L 318.59375,157.5 L 319.8125,158.5 L 322.15625,158.5 L 327.21875,163.78125 L 326.625,169.0625 L 330.15625,171.78125 L 332.125,170.40625 L 335.25,174.125 L 335.625,177.65625 L 337.78125,180.5625 L 338.75,182.71875 L 346.5625,183.125 L 350.46875,181.15625 L 351.625,183.3125 L 353,183.5 L 354,181.34375 L 360.4375,181.15625 L 362.96875,179.78125 L 363.375,177.25 L 369.03125,177.25 L 369.8125,177.6875 L 369.15625,175.1875 L 367.5625,174.1875 L 369.75,172.21875 L 373.125,172 L 374.3125,170.21875 L 374.09375,163.09375 L 373.3125,158.9375 L 369.9375,157.75 L 366.375,152.78125 L 366.5625,149.8125 L 367.59375,147.65625 L 365.78125,147.03125 L 360.21875,148.21875 L 356.25,148.21875 L 352.6875,142.875 L 352.28125,138.90625 L 349.3125,138.6875 z \", \"name\" : \"Aube\"}, \"fr-11\" : {\"path\": \"M 274.25,438.46875 L 273.96875,442.0625 L 270.375,440.9375 L 266.5,440.9375 L 266.78125,439.5625 L 264.84375,439.84375 L 260.71875,441.21875 L 259.34375,438.71875 L 256.5625,441.21875 L 257.40625,443.15625 L 254.34375,444.53125 L 253.8125,447.5625 L 251.3125,448.6875 L 253.53125,451.15625 L 252.96875,452.8125 L 262.65625,457.5 L 263.46875,464.15625 L 263.46875,467.75 L 264.03125,472.4375 L 259.0625,472.4375 L 257.6875,474.375 L 264.03125,479.625 L 267.625,477.6875 L 272.03125,482.9375 L 271.375,483 L 272.21875,483.5 L 280.15625,479.625 L 278.21875,476.78125 L 278.0625,473.4375 L 296.59375,473.4375 L 296.25,470.9375 L 300.5,468.65625 L 305.4375,472.53125 L 308,473.71875 L 307.84375,468.125 L 308.0625,461.6875 L 305.71875,461.875 L 303.75,458.96875 L 305.3125,456.40625 L 308.625,459.53125 L 311.5625,457.1875 L 313.53125,455.25 L 313.78125,453.1875 L 311.28125,453.09375 L 310.40625,450.28125 L 307.9375,450.09375 L 305.625,446.71875 L 303.84375,446.90625 L 301.75,445.65625 L 301.375,442.65625 L 300.3125,443.1875 L 300.84375,445.3125 L 298.375,445.3125 L 298.1875,448.84375 L 294.5,450.09375 L 292.71875,446.375 L 290.25,447.96875 L 288.125,446.375 L 287.0625,443.90625 L 288.84375,441.78125 L 288,439.5 L 287.78125,439.5625 L 281.96875,439.5625 L 275.90625,438.46875 L 274.25,438.46875 z \", \"name\" : \"Aude\"}, \"fr-12\" : {\"path\": \"M 294.6875,353.375 L 289.15625,358.09375 L 289.15625,362.78125 L 287.78125,362.78125 L 287.21875,367.1875 L 285.84375,367.75 L 284.75,370.21875 L 278.65625,370.21875 L 278.125,369.40625 L 275.34375,369.40625 L 273.6875,372.15625 L 273.09375,372.09375 L 272.75,373.1875 L 271.5,374.59375 L 267.96875,374.59375 L 267.25,375.5 L 265.5,375.3125 L 262.3125,378.84375 L 261.25,378.5 L 258.96875,380.4375 L 259.65625,383.96875 L 261.4375,386.625 L 260.0625,388.0625 L 260.375,392.09375 L 263.1875,392.28125 L 261.59375,395.46875 L 262.84375,398.65625 L 264.4375,397.75 L 265.15625,399.34375 L 267.4375,397.0625 L 270.8125,396.875 L 274.15625,399.34375 L 280,400.40625 L 282.125,404.125 L 285.125,405.53125 L 286.71875,409.59375 L 286.53125,411.1875 L 288.46875,414.75 L 288.46875,416.6875 L 292,421.28125 L 295.375,423.03125 L 297.5,422.5 L 298.5625,421.09375 L 300.15625,421.46875 L 303.8125,423.8125 L 303.84375,423.8125 L 305.46875,423.8125 L 308.78125,423.8125 L 308.5,418.03125 L 308.5,416.09375 L 310.15625,416.09375 L 313.1875,417.75 L 316.21875,417.75 L 315.6875,414.4375 L 317.34375,413.03125 L 320.65625,412.5 L 320.65625,409.71875 L 324.25,408.0625 L 323.40625,404.21875 L 320.375,404.21875 L 317.625,403.65625 L 317.0625,401.4375 L 319.28125,400.90625 L 319.28125,398.125 L 321.46875,396.1875 L 319.8125,395.375 L 315.125,396.1875 L 315.40625,394 L 312.09375,392.59375 L 311.25,385.96875 L 311.25,381.28125 L 308.5,379.34375 L 308.78125,375.46875 L 302.96875,368.3125 L 302.40625,362.78125 L 300.5,362.78125 L 299.65625,357.25 L 295.78125,357.8125 L 295.25,354.21875 L 294.6875,353.375 z \", \"name\" : \"Aveyron\"}, \"fr-13\" : {\"path\": \"M 379.71875,409.90625 L 374.25,413.03125 L 372.84375,423.53125 L 367.0625,422.71875 L 365.40625,427.125 L 366.78125,429.0625 L 360.4375,432.9375 L 358.6875,437 L 364.875,437.28125 L 373.09375,437.875 L 374.65625,439.4375 L 371.71875,439.4375 L 369.78125,442.75 L 378.15625,444.5 L 384.8125,443.34375 L 381.28125,440 L 383.625,438.0625 L 387.34375,439.625 L 389.09375,443.34375 L 400.25,443.53125 L 403.15625,442.34375 L 403.75,444.125 L 400.625,446.84375 L 404.9375,447.03125 L 404.15625,449 L 402.96875,450.375 L 412.53125,450.375 L 417.21875,451.9375 L 417.6875,452.5625 L 417.875,448.6875 L 419.28125,447.09375 L 421.0625,446.03125 L 420.875,444.96875 L 419.46875,443.5625 L 418.0625,443.5625 L 417.15625,442.5 L 418.75,441.0625 L 418.75,440.53125 L 417,439.65625 L 417,438.25 L 420.875,438.4375 L 421.78125,437.71875 L 418.40625,434.53125 L 418.59375,430.8125 L 416.46875,429.0625 L 418.21875,425.53125 L 422.46875,422.6875 L 419.28125,420.5625 L 417,422.34375 L 411.6875,423.5625 L 407.4375,423.03125 L 399.84375,419.875 L 395.25,420.03125 L 391.375,418.28125 L 389.9375,416.3125 L 386.9375,412.96875 L 379.875,409.96875 L 379.71875,409.90625 z \", \"name\" : \"Bouches du Rhône\"}, \"fr-14\" : {\"path\": \"M 202.65625,97.78125 L 198.09375,98.59375 L 190.65625,102.90625 L 182.28125,106.21875 L 175.625,102.5 L 159.625,100.15625 L 155.90625,98.21875 L 150.125,99.6875 L 150.46875,101.84375 L 149.34375,102.96875 L 149.5,104.5625 L 153.21875,108.28125 L 155.46875,109.5625 L 157.09375,107.46875 L 158.375,109.09375 L 156.75,111.1875 L 158.21875,113.59375 L 157.5625,114.40625 L 158.6875,116.6875 L 158.0625,119.25 L 156.4375,121.84375 L 153.84375,123.4375 L 152.40625,122.3125 L 150.96875,123.59375 L 152.5625,125.0625 L 151.28125,127.46875 L 148.21875,128.59375 L 151.9375,133.28125 L 155.625,133.59375 L 158.46875,135.4375 L 162.40625,134.25 L 165.3125,130.875 L 169.34375,132 L 172.875,129.5625 L 175,128.78125 L 177.25,131.03125 L 180.96875,130.375 L 184.1875,132.15625 L 188.21875,130.875 L 191.90625,128.125 L 194.34375,125.375 L 195.96875,125.0625 L 196.4375,127.15625 L 197.71875,126.84375 L 197.875,125.375 L 201.59375,124.75 L 202.875,125.53125 L 206.84375,124.65625 L 207.5,122.75 L 207.3125,121 L 205.34375,120.21875 L 205.15625,118.84375 L 206.90625,117.6875 L 207.125,115.71875 L 205.9375,111.03125 L 203.59375,107.71875 L 205.5625,106.5625 L 205.5625,105.78125 L 203.59375,105.1875 L 202.65625,97.78125 z \", \"name\" : \"Calvados\"}, \"fr-15\" : {\"path\": \"M 285.84375,323.71875 L 285.25,325.875 L 286.21875,328.21875 L 285.03125,329.59375 L 283.09375,329.59375 L 281.125,327.4375 L 279.375,326.46875 L 279.1875,331.9375 L 275.65625,334.09375 L 273.125,337.59375 L 273.71875,341.125 L 272.9375,342.6875 L 271.9375,345.8125 L 270.375,345.8125 L 268.8125,347.75 L 270,348.9375 L 270.78125,350.875 L 268.25,352.65625 L 269.28125,359.1875 L 272.59375,361.65625 L 270.09375,367.46875 L 272.59375,368.5625 L 271.5,371.875 L 273.6875,372.15625 L 275.34375,369.40625 L 278.125,369.40625 L 278.65625,370.21875 L 284.75,370.21875 L 285.84375,367.75 L 287.21875,367.1875 L 287.78125,362.78125 L 289.15625,362.78125 L 289.15625,358.09375 L 294.6875,353.375 L 295.25,354.21875 L 295.78125,357.8125 L 299.65625,357.25 L 300.5,362.78125 L 302.40625,362.78125 L 302.96875,368.3125 L 304.6875,370.4375 L 307.5,363.96875 L 310.25,355.375 L 313.75,357.71875 L 315.3125,354.21875 L 320.3125,352.40625 L 320.3125,350.75 L 319.25,349.15625 L 317.125,347.90625 L 318.1875,346.3125 L 317.28125,345.4375 L 318.34375,345.09375 L 319.59375,344.03125 L 317.46875,343.84375 L 316.40625,342.4375 L 316.0625,338.71875 L 314.8125,337.46875 L 313.9375,334.3125 L 309.5,334.3125 L 308.625,331.8125 L 307.21875,331.65625 L 306.5,333.0625 L 303.6875,332.875 L 301.03125,328.8125 L 299.96875,328.65625 L 297.84375,327.59375 L 296.59375,328.8125 L 293.4375,328.8125 L 291.84375,325.46875 L 285.84375,323.71875 z \", \"name\" : \"Cantal\"}, \"fr-16\" : {\"path\": \"M 206.28125,284.875 L 204.59375,286.15625 L 204.8125,288.9375 L 203.75,289.78125 L 200.75,288.0625 L 197.78125,289.125 L 194.375,289.34375 L 191.8125,286.21875 L 191,286.375 L 187.59375,288.0625 L 185.03125,288.71875 L 185.03125,290.1875 L 183.5625,291.90625 L 183.96875,292.96875 L 182.0625,294.03125 L 180.375,300.1875 L 179.9375,304.21875 L 178.46875,304.84375 L 176.34375,304.65625 L 175.90625,303.59375 L 173.5625,303.59375 L 172.3125,304.65625 L 169.53125,304.65625 L 167.1875,305.90625 L 168.90625,306.5625 L 169.125,311.03125 L 169.96875,311.21875 L 168.46875,312.9375 L 170.1875,314 L 172.5,316.125 L 173.78125,318.25 L 175.28125,319.71875 L 174.84375,321.84375 L 174,322.6875 L 175.28125,323.96875 L 175.28125,325.46875 L 172.71875,327.59375 L 173.78125,328.4375 L 175.28125,328.875 L 175.28125,329.28125 L 173.15625,330.125 L 173.34375,331.1875 L 174.625,331.84375 L 178.65625,331.1875 L 180.375,333.09375 L 181.65625,334.8125 L 185.8125,337.625 L 186.40625,336.625 L 190.3125,337.03125 L 192.25,335.25 L 195.78125,331.75 L 195.96875,324.90625 L 205.15625,318.65625 L 205.34375,313.96875 L 208.09375,313.59375 L 209.84375,310.46875 L 210.9375,310.5 L 211.59375,307.53125 L 213.15625,307.34375 L 214.125,304.59375 L 216.09375,304 L 218.4375,302.4375 L 218.0625,297.5625 L 219.8125,296.96875 L 223.3125,296.1875 L 223.125,294.4375 L 222.53125,291.71875 L 219.8125,291.5 L 218.25,289.75 L 219.21875,288 L 219.28125,286.40625 L 217.53125,285.53125 L 214.15625,285.53125 L 212.65625,287.21875 L 209.03125,288.71875 L 207.78125,287.4375 L 206.28125,284.875 z \", \"name\" : \"Charente\"}, \"fr-17\" : {\"path\": \"M 149.3125,270.625 L 146.5625,270.8125 L 140.59375,274.4375 L 142.03125,275.75 L 138.90625,278.28125 L 138.53125,280.25 L 135.59375,280.625 L 134.03125,278.875 L 130.125,278.5 L 129.71875,276.53125 L 127.375,274.96875 L 124.0625,276.15625 L 126.21875,279.28125 L 128.9375,279.28125 L 131.6875,281.03125 L 133.84375,282.78125 L 137.9375,282.59375 L 138.71875,284.34375 L 141.4375,284.9375 L 142.4375,287.65625 L 144.1875,288.4375 L 144,290.59375 L 141.65625,290.21875 L 140.875,291.375 L 142.625,293.90625 L 141.65625,298.21875 L 139.3125,298.03125 L 139.5,300.75 L 140.09375,301.71875 L 137.34375,301.71875 L 136.96875,300.15625 L 138.71875,297.8125 L 138.125,296.46875 L 137.15625,295.6875 L 136.75,291 L 133.4375,290.59375 L 130.71875,287.28125 L 130.3125,294.125 L 134.8125,297.4375 L 135.1875,301.15625 L 135.96875,305.4375 L 136.375,309.75 L 138.71875,309.53125 L 142.8125,312.875 L 145.5625,314.4375 L 145.75,316.375 L 147.90625,316.78125 L 154.15625,323.03125 L 155.625,329.78125 L 161.40625,329.78125 L 162.375,328.8125 L 162.5625,331.75 L 167.65625,332.34375 L 168.4375,338.59375 L 171.1875,338.78125 L 175.65625,343.28125 L 178,343.65625 L 180.75,342.28125 L 182.6875,343.65625 L 184.25,340.34375 L 185.8125,337.625 L 181.65625,334.8125 L 180.375,333.09375 L 178.65625,331.1875 L 174.625,331.84375 L 173.34375,331.1875 L 173.15625,330.125 L 175.28125,329.28125 L 175.28125,328.875 L 173.78125,328.4375 L 172.71875,327.59375 L 175.28125,325.46875 L 175.28125,323.96875 L 174,322.6875 L 174.84375,321.84375 L 175.28125,319.71875 L 173.78125,318.25 L 172.5,316.125 L 170.1875,314 L 168.46875,312.9375 L 169.96875,311.21875 L 169.125,311.03125 L 168.90625,306.5625 L 167.1875,305.90625 L 169.53125,304.65625 L 172.3125,304.65625 L 173.5625,303.59375 L 175.90625,303.59375 L 176.34375,304.65625 L 178.46875,304.84375 L 179.9375,304.21875 L 180.375,300.1875 L 182.0625,294.03125 L 182.125,294 L 180.59375,292.53125 L 180.15625,290.40625 L 177.40625,289.125 L 173.78125,286.59375 L 169.3125,287 L 166.5625,283.40625 L 162.53125,283.1875 L 159.34375,280.84375 L 159.34375,279.5625 L 157.21875,277.25 L 157.125,274.375 L 154.1875,272.1875 L 150.46875,273.75 L 149.3125,270.625 z \", \"name\" : \"Charente Maritime\"}, \"fr-18\" : {\"path\": \"M 275.53125,200.84375 L 272.6875,202.25 L 270.15625,204.34375 L 270.28125,205.1875 L 272.8125,205.875 L 273.8125,208 L 275.34375,208.5625 L 274.78125,209.8125 L 274.78125,211.90625 L 272.40625,212.90625 L 270.5625,216.25 L 270.4375,218.09375 L 271.125,218.9375 L 271.40625,219.90625 L 268.90625,221.3125 L 264.96875,221.71875 L 264,220.625 L 262.875,220.75 L 261.75,222 L 261.875,224.53125 L 259.375,224.6875 L 259.21875,226.90625 L 256.96875,228.75 L 257.25,229.59375 L 258.65625,230.71875 L 261.46875,231.125 L 263.5625,230.28125 L 266.21875,230.15625 L 267.5,231.125 L 267.0625,233.78125 L 269.3125,236.75 L 269.3125,238 L 268.34375,239.6875 L 268.34375,240.375 L 269.46875,241.65625 L 271.28125,241.65625 L 271.40625,242.46875 L 269.1875,244.3125 L 269.3125,245.5625 L 267.90625,246.28125 L 268.46875,247.25 L 270.28125,248.78125 L 270.28125,249.90625 L 268.34375,251.03125 L 268.34375,252.71875 L 271,254.125 L 271.5625,256.09375 L 273.25,257.625 L 273.09375,258.1875 L 272.40625,259.03125 L 272.25,261.5625 L 271.84375,262.40625 L 272.96875,264.625 L 273.375,266.3125 L 271.40625,268.28125 L 271.3125,269.84375 L 275.90625,269.28125 L 276.84375,267.28125 L 279.375,264.375 L 284.25,263.375 L 286.8125,264.15625 L 289.53125,262.03125 L 289.34375,260.46875 L 288.375,259.6875 L 288.375,256.5625 L 293.625,251.28125 L 295.59375,253.4375 L 297.34375,251.65625 L 298.90625,251.46875 L 301.625,247.96875 L 306.125,248.34375 L 306.1875,249.40625 L 307.6875,244.625 L 306.71875,242.875 L 306.90625,240.34375 L 307.5,235.25 L 305.34375,233.125 L 305.75,228.4375 L 303.78125,224.3125 L 303.59375,221.59375 L 300.0625,218.84375 L 299.5,216.5 L 301.25,213.96875 L 301.25,210.25 L 299.21875,207.875 L 297.21875,208.6875 L 296.25,208.28125 L 294.84375,206.4375 L 294,206.3125 L 293.4375,206.59375 L 293.28125,209.40625 L 292.03125,209.53125 L 291.0625,208.6875 L 288.8125,205.59375 L 287.96875,204.5 L 284.75,204.34375 L 283.1875,202.375 L 281.9375,202.375 L 281.375,203.09375 L 279.28125,203.375 L 277.59375,201.8125 L 275.625,200.96875 L 275.53125,200.84375 z \", \"name\" : \"Cher\"}, \"fr-19\" : {\"path\": \"M 265.75,307.625 L 264.90625,309.75 L 261.71875,310.375 L 260.46875,312.5 L 258.96875,312.5 L 256.84375,311.875 L 255.34375,314.40625 L 253.03125,314.625 L 251.53125,317.375 L 249.625,317.375 L 248.125,318.875 L 244.3125,318.4375 L 243.03125,320.5625 L 241.5625,320.375 L 239,323.5625 L 236.65625,322.6875 L 235.5625,324.90625 L 236.40625,327.0625 L 238.5625,328.8125 L 234.65625,332.34375 L 234.65625,335.0625 L 236.21875,335.84375 L 234.65625,337.8125 L 236.8125,339.5625 L 235.25,341.5 L 237,342.6875 L 241.28125,342.5 L 241.09375,346.78125 L 242.71875,349.34375 L 243.3125,349.25 L 247.46875,347.3125 L 252.4375,349.53125 L 256.28125,355.03125 L 258.5,354.75 L 261.8125,351.4375 L 262.90625,353.375 L 265.125,351.1875 L 268.15625,352 L 268.25,352.65625 L 270.78125,350.875 L 270,348.9375 L 268.8125,347.75 L 270.375,345.8125 L 271.9375,345.8125 L 272.9375,342.6875 L 273.71875,341.125 L 273.125,337.59375 L 275.65625,334.09375 L 279.1875,331.9375 L 279.375,326.46875 L 281.125,327.4375 L 283.09375,329.59375 L 285.03125,329.59375 L 286.21875,328.21875 L 285.25,325.875 L 286.21875,322.375 L 285.625,319.0625 L 284.4375,317.6875 L 284.4375,314.9375 L 286.21875,312.03125 L 285.8125,309.28125 L 285.375,308.84375 L 283.40625,310.375 L 279.5625,310.375 L 278.3125,312.28125 L 275.96875,312.28125 L 274.0625,310.375 L 273.1875,309.09375 L 268.3125,309.09375 L 267.25,307.625 L 265.75,307.625 z \", \"name\" : \"Corrèze\"}, \"fr-2a\" : {\"path\": \"M 445.33847,488.9562 L 445.33847,491.11245 L 447.30722,492.48745 L 450.61972,494.42495 L 450.83847,495.98745 L 448.86972,496.5812 L 445.74472,497.17495 L 445.74472,498.5187 L 446.90097,499.7062 L 447.11972,503.61245 L 451.40097,504.98745 L 452.96347,505.36245 L 454.33847,507.5187 L 453.36972,508.8937 L 451.80722,509.4562 L 450.61972,511.61245 L 449.46347,512.98745 L 450.02597,516.48745 L 452.96347,516.29995 L 453.74472,516.8937 L 456.49472,515.5187 L 457.27597,516.29995 L 455.90097,519.23745 L 457.27597,520.61245 L 454.93222,522.36245 L 453.36972,525.86245 L 457.65097,526.86245 L 463.71347,527.42495 L 461.18222,530.36245 C 461.18222,530.36245 459.99289,529.90364 459.46347,530.1437 C 459.44782,530.15141 459.41536,530.16589 459.40097,530.17495 C 459.39647,530.17828 459.37406,530.20271 459.36972,530.2062 C 459.36553,530.20986 459.34249,530.23363 459.33847,530.23745 C 459.33478,530.24161 459.31073,530.26437 459.30722,530.2687 C 459.30054,530.27771 459.28192,530.29022 459.27597,530.29995 C 459.27319,530.30499 459.27856,530.32597 459.27597,530.3312 C 459.27118,530.34203 459.24871,530.38211 459.24472,530.3937 C 459.24293,530.39969 459.2463,530.41876 459.24472,530.42495 C 459.24199,530.43772 459.21532,530.47387 459.21347,530.48745 C 459.21207,530.50144 459.21394,530.53512 459.21347,530.54995 C 459.21348,531.52651 457.86972,533.8937 457.86972,533.8937 L 459.80722,536.0187 L 463.33847,538.17495 L 469.96347,539.92495 L 471.90097,540.7062 L 473.68222,541.48745 L 472.49472,543.6437 L 475.61972,543.4562 L 476.21347,544.8312 L 479.33847,544.8312 L 480.11972,541.11245 L 478.15097,540.7062 L 480.90097,537.79995 L 479.93222,536.79995 L 480.11972,535.04995 L 483.65097,533.11245 L 483.83847,530.9562 L 481.49472,530.7687 L 479.93222,532.11245 L 479.93222,530.17495 L 483.05722,529.98745 L 484.02597,527.6437 L 484.80722,520.79995 L 484.21347,517.86245 L 484.15097,515.04995 L 480.74472,517.29995 L 476.68222,517.4562 L 476.33847,514.6437 L 476.86972,513.92495 L 475.61972,513.04995 L 475.27597,508.2687 L 474.74472,507.3937 L 472.61972,507.3937 L 471.55722,506.5187 L 471.55722,503.1437 L 470.15097,502.2687 L 469.08847,501.73745 L 466.96347,499.0812 L 467.11972,497.48745 L 464.49472,497.48745 L 463.58847,494.8312 L 459.86972,494.8312 L 457.93222,492.17495 L 458.46347,491.29995 L 457.24472,490.5812 L 454.40097,491.11245 L 453.33847,490.42495 L 449.46347,490.42495 L 449.08847,489.36245 L 446.90097,488.9562 L 445.33847,488.9562 z \", \"name\" : \"Corse du Sud\"}, \"fr-2b\" : {\"path\": \"M 477.96347,449.8937 L 475.02597,451.86245 L 475.43222,453.79995 L 476.99472,455.7687 L 475.24472,457.11245 L 476.02597,458.67495 L 474.83847,460.04995 L 474.83847,461.79995 L 476.80722,463.5812 L 476.80722,466.29995 L 475.61972,468.8312 L 474.27597,469.42495 L 472.71347,467.2687 L 469.96347,467.48745 L 469.36972,467.0812 L 467.02597,467.0812 L 464.90097,469.04995 L 464.08847,472.36245 L 459.02597,473.3312 L 455.11972,476.6437 L 454.33847,478.79995 L 452.40097,478.61245 L 451.40097,477.42495 L 450.83847,480.7687 L 449.46347,481.3312 L 449.05722,484.4562 L 449.65097,485.8312 L 447.49472,487.3937 L 446.90097,488.9562 L 449.08847,489.36245 L 449.46347,490.42495 L 453.33847,490.42495 L 454.40097,491.11245 L 457.24472,490.5812 L 458.46347,491.29995 L 457.93222,492.17495 L 459.86972,494.8312 L 463.58847,494.8312 L 464.49472,497.48745 L 467.11972,497.48745 L 466.96347,499.0812 L 469.08847,501.73745 L 470.15097,502.2687 L 471.55722,503.1437 L 471.55722,506.5187 L 472.61972,507.3937 L 474.74472,507.3937 L 475.27597,508.2687 L 475.61972,513.04995 L 476.86972,513.92495 L 476.33847,514.6437 L 476.68222,517.4562 L 480.74472,517.29995 L 484.15097,515.04995 L 484.02597,509.2687 L 488.71347,502.6437 L 488.71347,491.7062 L 486.77597,487.98745 L 486.18222,476.2687 L 484.80722,474.11245 L 482.27597,472.17495 L 481.86972,464.92495 L 483.05722,461.61245 L 481.49472,456.3312 L 480.52597,452.04995 L 479.71347,450.86245 L 477.96347,449.8937 z \", \"name\" : \"Haute-Corse\"}, \"fr-21\" : {\"path\": \"M 363.375,177.25 L 362.96875,179.78125 L 360.4375,181.15625 L 354,181.34375 L 354.28125,182.75 L 354.4375,184.15625 L 352.46875,185.5625 L 352.46875,187.9375 L 352.875,188.375 L 354.4375,188.375 L 355.40625,190.03125 L 354.84375,192.84375 L 352.59375,194.53125 L 352.59375,196.21875 L 353.3125,196.78125 L 353.15625,197.1875 L 351.75,197.75 L 351.34375,199.84375 L 349.09375,204.625 L 347.5625,206.875 L 347.5625,209.125 L 348.125,210.09375 L 347.28125,211.21875 L 345.3125,212.1875 L 345.4375,214.15625 L 347.28125,215.28125 L 347.96875,216.8125 L 347.6875,218.9375 L 347.28125,220.46875 L 348.25,222.15625 L 351.0625,222.71875 L 352.3125,224.6875 L 352.3125,225.53125 L 351.46875,225.8125 L 351.46875,227.84375 L 351.625,227.90625 L 355.40625,231.8125 L 359.34375,231.6875 L 362.84375,234.34375 L 365.375,236.1875 L 365.5,238.5625 L 368.15625,239.125 L 370.40625,240.9375 L 376.3125,238.84375 L 380.375,237.5625 L 382.1875,237.28125 L 382.75,236.46875 L 384.71875,236.59375 L 386.25,237.5625 L 388.5,237 L 390.75,235.46875 L 392.4375,235.65625 L 392.46875,235.46875 L 393.8125,234.6875 L 393.625,233.6875 L 393.25,232.53125 L 394.21875,230.96875 L 397.53125,229.40625 L 397.53125,227.84375 L 398.71875,226.28125 L 399.875,224.71875 L 399.5,223.34375 L 400.0625,221.1875 L 400.46875,218.0625 L 401.25,218.0625 L 401.0625,216.90625 L 400.28125,216.125 L 400.0625,212.21875 L 398.3125,212.03125 L 397.9375,208.90625 L 395.78125,207.90625 L 396.5625,206.9375 L 397.75,206.5625 L 400.28125,203.625 L 400.0625,202.0625 L 398.5,198.9375 L 396.1875,198.53125 L 395.375,200.5 L 391.09375,201.46875 L 390.6875,200.5 L 387.5625,196.59375 L 385.8125,197.5625 L 383.46875,197.375 L 382.6875,195.8125 L 379.5625,196 L 379.375,192.6875 L 377.625,191.5 L 380.15625,188.78125 L 375.65625,182.71875 L 372.15625,179 L 369.03125,177.25 L 363.375,177.25 z \", \"name\" : \"Côte d'Or\"}, \"fr-22\" : {\"path\": \"M 69.78125,123.21875 L 68,124.59375 L 63.53125,125.15625 L 62.53125,126.53125 L 59.40625,124.1875 L 55.3125,126.9375 L 56.875,129.0625 L 54.15625,132.78125 L 54.03125,132.71875 L 52.90625,137.96875 L 55.3125,138.125 L 55.15625,140.21875 L 56.9375,141.34375 L 55.3125,142.96875 L 54.1875,143.78125 L 54.34375,145.6875 L 56.78125,146.5 L 54.5,147.15625 L 54.5,149.5625 L 55.96875,151.5 L 56.28125,157.15625 L 55.3125,158.125 L 56.125,161.03125 L 59.1875,161.84375 L 59.5,163.4375 L 61.4375,163.59375 L 63.0625,162.46875 L 64.03125,163.4375 L 67.75,165.0625 L 70.8125,163.4375 L 71.59375,161.84375 L 74.1875,161.65625 L 77.09375,164.25 L 79.84375,163.59375 L 82.25,166.03125 L 83.375,166.03125 L 84.5,167.46875 L 86.78125,167.46875 L 87.5625,166.34375 L 88.53125,168.4375 L 90.96875,169.40625 L 94.03125,167.46875 L 94.03125,165.375 L 96.28125,164.5625 L 97.71875,164.5625 L 99.5,167.8125 L 103.375,168.125 L 105.3125,165.6875 L 107.40625,161.1875 L 110.15625,160.21875 L 111.59375,158.125 L 113.0625,159.5625 L 116.125,158.9375 L 117.09375,150.0625 L 118.0625,146.5 L 117.09375,144.5625 L 115.46875,143.9375 L 114.375,138.03125 L 113.125,139.4375 L 109.40625,139.03125 L 109.03125,141.1875 L 106.6875,141.375 L 106.5,138.65625 L 104.53125,138.0625 L 103.15625,139.625 L 103.15625,135.71875 L 100.8125,137.46875 L 97.3125,136.875 L 96.125,139.21875 L 88.90625,143.125 L 88.90625,145.09375 L 87.34375,145.09375 L 87.34375,141.5625 L 83.25,139.625 L 83.625,136.09375 L 79.9375,133.375 L 79.9375,130.0625 L 77.1875,129.46875 L 77.375,126.34375 L 75.25,126.15625 L 75.4375,124 L 71.53125,124 L 70.9375,125.9375 L 69.78125,123.21875 z \", \"name\" : \"Côtes d'Armor\"}, \"fr-23\" : {\"path\": \"M 256.125,267.875 L 254.96875,271 L 251.4375,270.8125 L 250.65625,270.40625 L 248.3125,270.625 L 246.5625,269.4375 L 243.1875,273.3125 L 243.25,276.1875 L 240.90625,280.84375 L 241.34375,283.1875 L 243.875,283.8125 L 245.59375,288.0625 L 247.28125,289.78125 L 246.65625,297.84375 L 250.25,296.78125 L 251.75,298.6875 L 249.40625,300.59375 L 249.40625,302.53125 L 251.3125,302.71875 L 254.71875,302.53125 L 255.78125,301.03125 L 256.625,301.03125 L 256.21875,303.59375 L 258.96875,304.84375 L 261.53125,306.5625 L 261.53125,307.625 L 260.03125,307.625 L 260.46875,310.15625 L 261.46875,310.78125 L 261.71875,310.375 L 264.90625,309.75 L 265.75,307.625 L 267.25,307.625 L 268.3125,309.09375 L 273.1875,309.09375 L 274.0625,310.375 L 275.96875,312.28125 L 278.3125,312.28125 L 279.5625,310.375 L 283.40625,310.375 L 285.375,308.84375 L 281.3125,304.78125 L 280.9375,303.03125 L 284.65625,300.875 L 286.8125,299.71875 L 287.375,296.96875 L 289.71875,295.21875 L 288.9375,291.5 L 287.375,289.5625 L 287,283.5 L 284.84375,278.4375 L 282.6875,277.65625 L 281.125,274.90625 L 279.75,276.65625 L 278.40625,274.90625 L 278.40625,272.5625 L 276.0625,269.25 L 269.625,270.03125 L 265.90625,269.0625 L 256.125,267.875 z \", \"name\" : \"Creuse\"}, \"fr-24\" : {\"path\": \"M 209.84375,310.46875 L 208.09375,313.59375 L 205.34375,313.96875 L 205.15625,318.65625 L 195.96875,324.90625 L 195.78125,331.75 L 192.25,335.25 L 190.3125,337.03125 L 186.40625,336.625 L 184.25,340.34375 L 183.6875,341.5625 L 184.71875,342.78125 L 186.65625,342.78125 L 187.71875,344.375 L 186.65625,347.21875 L 186.125,350.375 L 184.34375,351.4375 L 184.34375,352.5 L 185.0625,353.5625 L 185.0625,355.5 L 183.65625,357.28125 L 185.40625,358.15625 L 185.9375,359.59375 L 191.96875,359.40625 L 194.4375,356.40625 L 196.90625,358 L 194.96875,359.40625 L 195.125,363.28125 L 197.96875,365.25 L 198.3125,368.9375 L 201.3125,370 L 203.09375,368.40625 L 206.96875,368.40625 L 209.09375,366.65625 L 210.34375,366.84375 L 210.6875,368.25 L 214.59375,368.25 L 215.46875,367.1875 L 216.875,367.375 L 218.46875,369.125 L 218.46875,370.375 L 217.0625,371.25 L 217.59375,372.5 L 219.53125,372.65625 L 222,370.375 L 224.125,370.375 L 225.53125,371.96875 L 228.59375,373.25 L 228.78125,372.75 L 230.5625,371 L 230.75,368.0625 L 235.03125,367.6875 L 237.78125,363.78125 L 236.59375,363.375 L 236.40625,361.25 L 239.71875,360.84375 L 239.9375,358.90625 L 241.5,357.90625 L 243.25,354.78125 L 241.5,352.84375 L 241.5,350.6875 L 242.84375,349.53125 L 241.09375,346.78125 L 241.28125,342.5 L 237,342.6875 L 235.25,341.5 L 236.8125,339.5625 L 234.65625,337.8125 L 236.21875,335.84375 L 234.65625,335.0625 L 234.65625,332.34375 L 238.5625,328.8125 L 236.40625,327.0625 L 235.25,324.125 L 231.125,323.53125 L 229.75,322.5625 L 232.6875,321.1875 L 231.71875,319.84375 L 227.4375,319.25 L 226.4375,315.34375 L 220.1875,314.75 L 218.8125,316.71875 L 217.46875,317.09375 L 215.6875,314.75 L 216.5,312.59375 L 215.5,310.65625 L 209.84375,310.46875 z \", \"name\" : \"Dordogne\"}, \"fr-25\" : {\"path\": \"M 447.40625,199.71875 L 447.21875,199.9375 L 444.96875,199.9375 L 443.8125,201.53125 L 442.34375,202.375 L 442.34375,204.34375 L 438.6875,204.78125 L 436.71875,203.375 L 434.0625,203.78125 L 431.53125,205.75 L 429.71875,208.84375 L 427.90625,209.40625 L 427.0625,211.5 L 424.8125,211.90625 L 421.71875,214.4375 L 417.65625,214.3125 L 416.40625,215.28125 L 415.28125,215.28125 L 411.34375,218.5 L 409.5625,218.4375 L 409.53125,219.625 L 409.8125,221.71875 L 412.34375,223.40625 L 413.75,225.25 L 413.3125,227.1875 L 412.0625,230.15625 L 411.21875,232.09375 L 416.6875,233.9375 L 420.1875,233.65625 L 420.46875,236.59375 L 420.46875,240.53125 L 424.8125,241.9375 L 426.78125,242.46875 L 429.59375,245.15625 L 429.3125,247.40625 L 428.03125,249.21875 L 424.53125,250.34375 L 425.375,252.3125 L 425.78125,253.84375 L 424.25,255.375 L 424.40625,256.78125 L 426.78125,257 L 426.8125,256.8125 L 438.90625,245.46875 L 438.53125,236.09375 L 442.8125,233.96875 L 445.75,232.59375 L 448.46875,230.0625 L 448.6875,226.34375 L 451.40625,224.96875 L 457.65625,217.75 L 456.6875,215.40625 L 458.84375,214.4375 L 461.375,211.3125 L 460,209.9375 L 455.3125,210.90625 L 455.125,210.125 L 459.4375,205.15625 L 447.40625,199.71875 z \", \"name\" : \"Doubs\"}, \"fr-26\" : {\"path\": \"M 384.9375,329.28125 L 382.1875,331.1875 L 379.84375,332.03125 L 377.5,331.3125 L 377.5,339.28125 L 379,345.21875 L 380.0625,348.625 L 381.75,352.875 L 380.6875,355.625 L 378.78125,359.25 L 378.34375,361.375 L 376.4375,361.78125 L 377.5,366.6875 L 377.5,370.90625 L 374.9375,373.90625 L 374.3125,377.71875 L 375.375,379.40625 L 374.75,380.90625 L 374.75,382.40625 L 375.59375,382.59375 L 376.21875,383.46875 L 376,387.59375 L 378.59375,387.21875 L 379.75,388.59375 L 379.1875,392.5 L 379.96875,393.46875 L 382.875,390.53125 L 385.4375,390.34375 L 386,388.78125 L 382.6875,388.375 L 382.125,384.875 L 384.25,381.5625 L 387,381.34375 L 389.71875,383.90625 L 387,387.59375 L 387.78125,388.96875 L 391.6875,389.375 L 394.21875,387.21875 L 392.84375,390.15625 L 393.25,392.5 L 397.34375,392.875 L 402.8125,393.28125 L 403.59375,395.8125 L 406.53125,397.96875 L 409.0625,398.15625 L 410.8125,396.59375 L 411.8125,393.65625 L 413.375,395.03125 L 414.53125,396.40625 L 415.3125,389.15625 L 413.375,388.78125 L 412.1875,386.25 L 405.5625,384.46875 L 404.75,381.15625 L 407.125,379.59375 L 405.15625,378.21875 L 405.5625,376.46875 L 408.6875,376.65625 L 411.40625,378.03125 L 413.5625,375.5 L 411.40625,373.75 L 411.59375,371.40625 L 412.78125,367.6875 L 416.875,367.28125 L 420.1875,365.9375 L 420.53125,365.15625 L 417,364.75 L 415.75,363.6875 L 413.8125,363.5 L 411.90625,362 L 409.375,360.5 L 406.59375,360.5 L 405.53125,359.4375 L 405.34375,343.53125 L 404.6875,343.53125 L 403.84375,345 L 401.9375,346.28125 L 397.46875,345 L 394.0625,343.9375 L 392.59375,344.375 L 392.15625,343.3125 L 393.21875,340.34375 L 392.78125,337.34375 L 393.65625,335.21875 L 391.53125,332.25 L 388.5625,332.25 L 384.9375,329.28125 z \", \"name\" : \"Drôme\"}, \"fr-27\" : {\"path\": \"M 211,94.5625 L 209.3125,94.96875 L 207.0625,97.375 L 202.6875,97.9375 L 203.59375,105.1875 L 205.5625,105.78125 L 205.5625,106.5625 L 203.59375,107.71875 L 205.9375,111.03125 L 207.125,115.71875 L 206.90625,117.6875 L 205.15625,118.84375 L 205.34375,120.21875 L 207.3125,121 L 207.5,122.75 L 205.9375,127.25 L 207.5,129.21875 L 212.96875,129.40625 L 214.125,132.125 L 216.09375,134.09375 L 218.8125,135.0625 L 219.625,138 L 218.25,139.9375 L 221.09375,141.84375 L 223.90625,139.15625 L 226.625,139.15625 L 233.6875,135.46875 L 236,136.4375 L 240.90625,136.4375 L 242.0625,135.0625 L 242.0625,132.125 L 245.96875,130.1875 L 245.96875,127.0625 L 247.03125,126.1875 L 246.9375,125.3125 L 247.9375,124.3125 L 246.1875,123.9375 L 246.1875,122.375 L 245.1875,120.8125 L 245.96875,119.84375 L 251.4375,118.28125 L 252.8125,115.9375 L 254,111.625 L 255.4375,109.84375 L 255.75,107.53125 L 257.5,108.5 L 258.875,108.125 L 257.875,106.5625 L 257.3125,102.0625 L 255.5625,100.5 L 255.59375,100.375 L 252.5,100.03125 L 247.3125,97.375 L 242.8125,97.5 L 240.4375,99.59375 L 239.15625,103.25 L 234.125,103.8125 L 229.34375,105.21875 L 231.03125,106.34375 L 230.34375,108.03125 L 228.09375,108.03125 L 226.84375,105.34375 L 225.4375,105.34375 L 223.1875,103.65625 L 226.28125,102.6875 L 221.5,99.3125 L 216.75,99.59375 L 215.625,97.65625 L 212.9375,97.9375 L 211,94.5625 z \", \"name\" : \"Eure\"}, \"fr-28\" : {\"path\": \"M 247.15625,126.09375 L 245.96875,127.0625 L 245.96875,130.1875 L 242.0625,132.125 L 242.0625,135.0625 L 240.90625,136.4375 L 236,136.4375 L 233.6875,135.46875 L 226.625,139.15625 L 223.90625,139.15625 L 221.09375,141.84375 L 221.75,142.28125 L 221.9375,145.625 L 226.0625,149.125 L 226.4375,156.34375 L 224.5,158.6875 L 221.5625,159.28125 L 218.625,161.03125 L 219.03125,162.59375 L 220.375,164.375 L 220.375,169 L 220.78125,169.0625 L 223.5,171 L 222.5,172.25 L 224.4375,173.21875 L 227.53125,172.65625 L 229.34375,172.65625 L 229.21875,173.5 L 227.53125,174.46875 L 228.65625,175.3125 L 231.46875,175.3125 L 232.4375,177.5625 L 234.125,178.53125 L 235.375,181.34375 L 239.71875,182.46875 L 242.40625,182.1875 L 244.78125,179.9375 L 246.90625,180.53125 L 247.4375,179.375 L 247.3125,178.125 L 248.4375,177.28125 L 250.25,178.40625 L 251.375,177.5625 L 251.375,176.03125 L 252.90625,175.03125 L 254.3125,175.59375 L 255.5625,177 L 257.8125,175.75 L 260.1875,175.75 L 261.875,173.90625 L 262.875,170.28125 L 264.40625,170 L 264,166.34375 L 265.8125,164.8125 L 265.25,163.6875 L 265.46875,163.3125 L 264.9375,163.375 L 264.53125,158.125 L 264.125,157.53125 L 263.75,155 L 259.65625,154.21875 L 257.875,152.0625 L 257.3125,147.75 L 254.96875,147.375 L 254.5625,145.21875 L 251.84375,143.28125 L 250.46875,139.9375 L 251.84375,137.59375 L 250.46875,136.03125 L 250.46875,134.09375 L 251.25,131.9375 L 249.6875,130.375 L 249.09375,128.03125 L 247.15625,126.09375 z \", \"name\" : \"Eure et Loir\"}, \"fr-29\" : {\"path\": \"M 40.65625,129.0625 L 38.53125,131.40625 L 36.1875,130.4375 L 31.875,130.84375 L 31.09375,132.78125 L 28.5625,133.375 L 28.15625,131.21875 L 23.6875,131.8125 L 23.6875,133.1875 L 20.5625,133.375 L 19.1875,132.40625 L 17.625,133.1875 L 17.21875,135.53125 L 11.96875,135.71875 L 9.21875,139.03125 L 11.5625,140.78125 L 8.4375,143.34375 L 9.40625,145.09375 L 8.625,149.375 L 11.75,149.78125 L 12.9375,148.59375 L 13.53125,149.375 L 20.9375,148.40625 L 25.8125,144.90625 L 21.53125,149 L 21.90625,150.9375 L 25.8125,149.1875 L 25.03125,151.9375 L 29.34375,152.125 L 29.15625,153.28125 L 24.46875,153.09375 L 20.75,152.125 L 16.25,149.96875 L 13.53125,153.09375 L 17.03125,154.28125 L 16.84375,159.53125 L 17.8125,158.75 L 19.96875,155.4375 L 24.0625,157.78125 L 26.03125,158.1875 L 26.8125,161.3125 L 25.625,163.4375 L 23.09375,163.25 L 20.75,163.25 L 16.84375,163.84375 L 10.1875,164.21875 L 8.84375,166 L 10.78125,167.15625 L 12.9375,166.96875 L 14.6875,168.53125 L 17.21875,168.34375 L 21.34375,173.03125 L 22.3125,178.09375 L 20.9375,180.84375 L 25.03125,181.625 L 29.53125,181.40625 L 30.5,179.65625 L 28.75,177.3125 L 30.5,178.09375 L 32.28125,177.90625 L 35.40625,179.65625 L 37.34375,179.28125 L 37.34375,175.9375 L 38.125,179.28125 L 40.65625,183.375 L 46.125,183.75 L 46.34375,182.59375 L 47.6875,184.53125 L 51.03125,185.125 L 53.5625,185.125 L 53.71875,185.34375 L 54.65625,181.5 L 56.9375,181.5 L 58.0625,179.71875 L 59.5,179.71875 L 59.65625,176.84375 L 60.46875,175.875 L 58.875,173.75 L 57.90625,174.90625 L 55.46875,172.96875 L 50.46875,172.15625 L 49.65625,169.25 L 48.21875,165.53125 L 48.0625,164.09375 L 50.46875,162.15625 L 52.75,162.15625 L 56,160.59375 L 55.3125,158.125 L 56.28125,157.15625 L 55.96875,151.5 L 54.5,149.5625 L 54.5,147.15625 L 56.78125,146.5 L 54.34375,145.6875 L 54.1875,143.78125 L 55.3125,142.96875 L 56.9375,141.34375 L 55.15625,140.21875 L 55.3125,138.125 L 52.90625,137.96875 L 54.03125,132.71875 L 50.8125,130.84375 L 45.34375,131.03125 L 45.34375,134.9375 L 43.78125,134.9375 L 43.40625,133.1875 L 41.0625,133.5625 L 40.65625,129.0625 z \", \"name\" : \"Finistère\"}, \"fr-30\" : {\"path\": \"M 346.1875,381.03125 L 345.21875,382.90625 L 344,383.96875 L 341.6875,384.34375 L 344.5,387.34375 L 344.5,391.40625 L 345.75,391.75 L 344.34375,393.34375 L 344.34375,396.34375 L 342.03125,399.875 L 336.90625,399.34375 L 333.90625,396.53125 L 331.78125,397.0625 L 332.5,398.8125 L 331.625,400.0625 L 326.46875,401.125 L 320.4375,397.09375 L 319.28125,398.125 L 319.28125,400.90625 L 317.0625,401.4375 L 317.625,403.65625 L 320.375,404.21875 L 323.40625,404.21875 L 324.25,408.0625 L 320.65625,409.71875 L 320.65625,411.46875 L 323.46875,412.4375 L 323.46875,414.03125 L 324.71875,414.75 L 325.78125,413.84375 L 327.1875,413.84375 L 327.90625,415.4375 L 330.03125,415.4375 L 331.09375,411.71875 L 332.84375,411.71875 L 335.5,408.375 L 338.6875,408.71875 L 339.21875,413.3125 L 340.4375,414.75 L 342.40625,413.6875 L 345.75,415.4375 L 347,417.5625 L 352.8125,421.09375 L 354.9375,426.0625 L 354.9375,428.6875 L 351.21875,430.8125 L 348.8125,432.96875 L 351.8125,433.1875 L 351.8125,437.09375 L 356.28125,436.875 L 358.6875,437 L 360.4375,432.9375 L 366.78125,429.0625 L 365.40625,427.125 L 367.0625,422.71875 L 372.84375,423.53125 L 374.25,413.03125 L 381.96875,408.625 L 381.96875,406.125 L 376.15625,400.34375 L 376.15625,395.90625 L 372.84375,390.40625 L 365.9375,386.53125 L 365.40625,389.5625 L 362.625,389.84375 L 361.8125,386.8125 L 359.03125,387.34375 L 358.5,391.21875 L 356.28125,390.40625 L 351.59375,387.34375 L 349.375,388.46875 L 349.375,382.9375 L 346.1875,381.03125 z \", \"name\" : \"Gard\"}, \"fr-31\" : {\"path\": \"M 245,412.4375 L 242.15625,413.5 L 241.28125,414.90625 L 240.21875,413.6875 L 238.28125,413.5 L 237.90625,415.28125 L 236.6875,415.78125 L 238.4375,416.6875 L 237.21875,418.625 L 232.78125,419.875 L 230.84375,417.5625 L 229.09375,417.5625 L 227.65625,418.4375 L 222.53125,418.4375 L 222,418.65625 L 222.53125,420.5625 L 225.53125,423.5625 L 225.375,425.15625 L 227.65625,427.46875 L 229.09375,427.46875 L 229.78125,429.21875 L 231.5625,429.40625 L 232.09375,431 L 230.3125,431.71875 L 226.59375,433.3125 L 224.84375,437.375 L 223.4375,441.59375 L 222.53125,442.84375 L 219.71875,440.90625 L 213.15625,440.375 L 209.625,444.96875 L 207.6875,446.03125 L 206.4375,447.78125 L 205.03125,449.90625 L 205.03125,451.15625 L 202.75,452.03125 L 200.96875,455.03125 L 200.78125,456.625 L 203.96875,458.9375 L 204.5,461.21875 L 203.4375,463 L 205.5625,462.28125 L 206.625,463.1875 L 207.5,466.875 L 205.03125,468.3125 L 205.21875,470.25 L 203.96875,471.46875 L 202.21875,470.59375 L 200.25,470.59375 L 200.5,481.09375 L 208.4375,481.625 L 208.84375,472.03125 L 211.5625,472.4375 L 215.59375,474.78125 L 217.25,473.25 L 216.53125,472.1875 L 216.53125,468.65625 L 218.28125,466.53125 L 222.90625,465.28125 L 223.59375,462.65625 L 222.53125,461.9375 L 222.375,458.5625 L 226.4375,456.09375 L 228.71875,455.9375 L 231.03125,456.625 L 232.96875,458.40625 L 234.21875,458.5625 L 235.28125,456.8125 L 234.375,455.5625 L 232.78125,455.03125 L 232.625,454.5 L 233.84375,452.75 L 238.09375,452.375 L 238.625,451.34375 L 237.90625,450.09375 L 235.4375,448.3125 L 235.96875,447.25 L 237.21875,446.375 L 238.4375,446.71875 L 240.40625,449.375 L 240.5625,451.15625 L 243.9375,451.5 L 244.625,449.90625 L 243.03125,447.96875 L 244.09375,448.3125 L 248,450.09375 L 250.125,449.75 L 251.6875,449.09375 L 251.3125,448.6875 L 253.8125,447.5625 L 254.34375,444.53125 L 257.40625,443.15625 L 256.5625,441.21875 L 259.34375,438.71875 L 260.71875,441.21875 L 264.84375,439.84375 L 265.625,439.71875 L 265.6875,438.4375 L 265.6875,435.9375 L 263.5625,436.3125 L 260.90625,435.59375 L 258.59375,432.78125 L 257.71875,431.53125 L 253.125,429.59375 L 252.0625,428 L 253.46875,427.46875 L 253.46875,425.53125 L 252.0625,423.9375 L 250.28125,421.09375 L 250.125,418.625 L 249.59375,418.28125 L 247.46875,415.78125 L 246.59375,413.15625 L 245,412.4375 z \", \"name\" : \"Haute Garonne\"}, \"fr-32\" : {\"path\": \"M 207.875,401.875 L 202.03125,402.4375 L 200.46875,405.1875 L 196.9375,405.5625 L 193.625,406.15625 L 192.25,404.21875 L 189.125,407.34375 L 186.8125,405.375 L 185.4375,408.3125 L 185.625,410.84375 L 183.46875,411.4375 L 182.5,410.0625 L 181.53125,407.125 L 178.78125,409.46875 L 176.84375,408.6875 L 174.6875,409.09375 L 172.75,411.4375 L 175.0625,415.34375 L 173.5,416.90625 L 174.09375,420.21875 L 172.15625,422.75 L 170.78125,426.46875 L 172.34375,429.21875 L 177.28125,429.5625 L 179.21875,428.53125 L 182.21875,428.53125 L 182.0625,431.875 L 184.34375,433.125 L 186.65625,433.46875 L 187.71875,436.3125 L 188.25,436.84375 L 187.90625,438.59375 L 187.1875,439.3125 L 189.3125,440.71875 L 189.46875,442.3125 L 192.125,442.3125 L 192.84375,441.59375 L 195.125,441.59375 L 195.84375,443.1875 L 198.3125,443.1875 L 199.03125,444.625 L 203.8125,444.625 L 207.375,446.46875 L 207.6875,446.03125 L 209.625,444.96875 L 213.15625,440.375 L 219.71875,440.90625 L 222.53125,442.84375 L 223.4375,441.59375 L 224.84375,437.375 L 226.59375,433.3125 L 230.3125,431.71875 L 232.09375,431 L 231.5625,429.40625 L 229.78125,429.21875 L 229.09375,427.46875 L 227.65625,427.46875 L 225.375,425.15625 L 225.53125,423.5625 L 222.53125,420.5625 L 222,418.65625 L 220.0625,419.5 L 219.53125,418.4375 L 220.78125,416.5 L 219.34375,415.09375 L 219.34375,412.625 L 218.125,411.375 L 214.21875,411.1875 L 214.21875,408.90625 L 216.34375,407.3125 L 216.34375,405.53125 L 218.65625,404.46875 L 217.40625,403.78125 L 216,404.46875 L 213.15625,404.46875 L 212.28125,403.65625 L 211.8125,403.8125 L 210.8125,404.78125 L 207.875,401.875 z \", \"name\" : \"Gers\"}, \"fr-33\" : {\"path\": \"M 141.25,315.21875 L 138.125,319.90625 L 137.15625,336.3125 L 134.625,352.90625 L 132.84375,365.78125 L 132.65625,369.125 L 134.03125,364.625 L 136.75,361.09375 L 140.65625,364.625 L 141.0625,365.78125 L 142.21875,367.34375 L 137.34375,367.5625 L 136.5625,366.375 L 134.625,367.15625 L 134.21875,370.09375 L 132.0625,373.03125 L 132.0625,377.5 L 132.03125,377.6875 L 133.625,377.625 L 139.8125,374.4375 L 143.15625,375.65625 L 143,377.96875 L 141.5625,379.71875 L 143.15625,380.78125 L 146.53125,379.375 L 148.8125,380.96875 L 150.25,380.78125 L 152.34375,379.03125 L 155.90625,378.5 L 157.125,379.5625 L 158.1875,380.4375 L 158.1875,381.5 L 157.3125,382.5625 L 160.5,383.4375 L 162.4375,384.6875 L 162.625,386.28125 L 164.375,386.4375 L 166.84375,389.09375 L 167.5625,393.53125 L 171.09375,394.75 L 174.46875,394.59375 L 174.46875,393.53125 L 174.09375,390 L 175.15625,390.34375 L 177.15625,392.78125 L 180.28125,392.28125 L 181.71875,390.875 L 181.53125,388.9375 L 180.28125,387.875 L 180.65625,385.90625 L 182.59375,385.90625 L 184.53125,384.6875 L 183.65625,382.90625 L 183.125,380.25 L 184.53125,377.78125 L 187.53125,373.1875 L 189.3125,371.0625 L 190.90625,370.53125 L 191.25,368.78125 L 189.125,368.59375 L 188.25,366.65625 L 188.9375,364.71875 L 191.4375,364.1875 L 193.1875,363.65625 L 195.25,363.375 L 195.125,363.28125 L 194.96875,359.40625 L 196.90625,358 L 194.4375,356.40625 L 191.96875,359.40625 L 185.9375,359.59375 L 185.40625,358.15625 L 183.65625,357.28125 L 185.0625,355.5 L 185.0625,353.5625 L 184.34375,352.5 L 184.34375,351.4375 L 186.125,350.375 L 186.65625,347.21875 L 187.71875,344.375 L 186.65625,342.78125 L 184.71875,342.78125 L 183.6875,341.5625 L 182.6875,343.65625 L 180.75,342.28125 L 178,343.65625 L 175.65625,343.28125 L 171.1875,338.78125 L 168.4375,338.59375 L 167.65625,332.34375 L 162.5625,331.75 L 162.375,328.8125 L 161.40625,329.78125 L 155.625,329.78125 L 155.90625,331.03125 L 157.28125,336.6875 L 157.65625,342.34375 L 156.6875,343.90625 L 155.71875,339.21875 L 152.96875,328.5 L 143,319.5 L 143.21875,315.40625 L 141.25,315.21875 z \", \"name\" : \"Gironde\"}, \"fr-34\" : {\"path\": \"M 335.5,408.375 L 332.84375,411.71875 L 331.09375,411.71875 L 330.03125,415.4375 L 327.90625,415.4375 L 327.1875,413.84375 L 325.78125,413.84375 L 324.71875,414.75 L 323.46875,414.03125 L 323.46875,412.4375 L 320.65625,411.46875 L 320.65625,412.5 L 317.34375,413.03125 L 315.6875,414.4375 L 316.21875,417.75 L 313.1875,417.75 L 310.15625,416.09375 L 308.5,416.09375 L 308.5,418.03125 L 308.78125,423.8125 L 305.46875,423.8125 L 303.8125,423.8125 L 302.6875,426.03125 L 295.5,428.5 L 292.75,426.59375 L 291.09375,429.0625 L 290.28125,431.8125 L 293.3125,434.59375 L 292.1875,438.1875 L 288,439.5 L 288.84375,441.78125 L 287.0625,443.90625 L 288.125,446.375 L 290.25,447.96875 L 292.71875,446.375 L 294.5,450.09375 L 298.1875,448.84375 L 298.375,445.3125 L 300.84375,445.3125 L 300.3125,443.1875 L 301.375,442.65625 L 301.75,445.65625 L 303.84375,446.90625 L 305.625,446.71875 L 307.9375,450.09375 L 310.40625,450.28125 L 311.28125,453.09375 L 313.78125,453.1875 L 313.90625,452.125 L 320.9375,449.96875 L 321.71875,448.21875 L 327.1875,448.03125 L 328.9375,445.875 L 339.5,437.46875 L 346.125,432.78125 L 348.8125,432.96875 L 351.21875,430.8125 L 354.9375,428.6875 L 354.9375,426.0625 L 352.8125,421.09375 L 347,417.5625 L 345.75,415.4375 L 342.40625,413.6875 L 340.4375,414.75 L 339.21875,413.3125 L 338.6875,408.71875 L 335.5,408.375 z \", \"name\" : \"Hérault\"}, \"fr-35\" : {\"path\": \"M 116.25,135.90625 L 114.375,138.03125 L 115.46875,143.9375 L 117.09375,144.5625 L 118.0625,146.5 L 117.09375,150.0625 L 116.125,158.9375 L 113.0625,159.5625 L 111.59375,158.125 L 110.15625,160.21875 L 107.40625,161.1875 L 105.3125,165.6875 L 104.03125,167.3125 L 104.5,169.40625 L 103.6875,172.625 L 102.25,173.9375 L 102.25,175.21875 L 103.21875,175.53125 L 105.96875,175.53125 L 108.375,177 L 110,179.90625 L 108.53125,181.84375 L 109.03125,183.75 L 111.125,183.75 L 111.28125,185.6875 L 109.65625,187.625 L 107.90625,188.4375 L 109.03125,189.09375 L 109.34375,190.0625 L 107.5625,191.5 L 109.625,195.375 L 113.5625,193.28125 L 125.65625,192.6875 L 126.4375,190.53125 L 128.40625,188.59375 L 132.6875,188 L 132.875,185.84375 L 135.8125,186.25 L 137.5625,188.59375 L 141.5,189.5625 L 142.25,188 L 143.25,184.46875 L 145.78125,178.21875 L 147.15625,177.4375 L 150.46875,177.84375 L 150.46875,172.5625 L 149.09375,171.1875 L 149.09375,165.53125 L 148.5,163.59375 L 148.5,160.46875 L 150.46875,158.5 L 150.46875,154.59375 L 149.5,153.8125 L 149.6875,148.34375 L 148.125,147.5625 L 145.78125,147.5625 L 143.8125,146 L 141.6875,148.53125 L 139.9375,148.75 L 138.375,150.875 L 136.8125,150.5 L 133.46875,147.5625 L 132.3125,143.84375 L 131.71875,141.375 L 122.125,141.375 L 118.59375,139.21875 L 120.9375,136.09375 L 116.25,135.90625 z \", \"name\" : \"Ille et Vilaine\"}, \"fr-36\" : {\"path\": \"M 254.71875,221.4375 L 253.46875,221.875 L 250.9375,221.71875 L 248,222.71875 L 247.3125,224.25 L 247.03125,223.6875 L 243.65625,223.84375 L 241.96875,225.25 L 240,225.53125 L 239.71875,226.5 L 241.28125,228.59375 L 240.84375,230.4375 L 239.03125,230.5625 L 239.03125,232.09375 L 237.625,233.375 L 236.09375,235.90625 L 234.6875,234.625 L 232.59375,234.21875 L 229.5,235.34375 L 228.78125,238.84375 L 227.8125,241.65625 L 226.28125,249.625 L 224.15625,251.59375 L 222.4375,251.75 L 222.9375,252.25 L 222.9375,255.96875 L 222.15625,258.3125 L 225.875,261.25 L 227.8125,263.1875 L 230.9375,263.59375 L 232.125,267.6875 L 234.25,268.84375 L 233.875,271.78125 L 232.3125,272.0625 L 232.875,272.1875 L 237.78125,272.5625 L 239.53125,270.8125 L 242.65625,273.9375 L 246.5625,269.4375 L 248.3125,270.625 L 250.65625,270.40625 L 251.4375,270.8125 L 254.96875,271 L 256.125,267.875 L 265.90625,269.0625 L 269.625,270.03125 L 271.3125,269.84375 L 271.40625,268.28125 L 273.375,266.3125 L 272.96875,264.625 L 271.84375,262.40625 L 272.25,261.5625 L 272.40625,259.03125 L 273.09375,258.1875 L 273.25,257.625 L 271.5625,256.09375 L 271,254.125 L 268.34375,252.71875 L 268.34375,251.03125 L 270.28125,249.90625 L 270.28125,248.78125 L 268.46875,247.25 L 267.90625,246.28125 L 269.3125,245.5625 L 269.1875,244.3125 L 271.40625,242.46875 L 271.28125,241.65625 L 269.46875,241.65625 L 268.34375,240.375 L 268.34375,239.6875 L 269.3125,238 L 269.3125,236.75 L 267.0625,233.78125 L 267.5,231.125 L 266.21875,230.15625 L 263.5625,230.28125 L 261.46875,231.125 L 258.65625,230.71875 L 257.25,229.59375 L 256.96875,228.75 L 259.21875,226.90625 L 259.375,224.6875 L 256.40625,223 L 254.71875,221.4375 z \", \"name\" : \"Indre\"}, \"fr-37\" : {\"path\": \"M 212.1875,196.875 L 212.5625,197.75 L 206.90625,199.3125 L 205.5625,201.28125 L 203.1875,199.71875 L 204.375,203.625 L 202.21875,203.625 L 198.3125,200.875 L 196.375,204.78125 L 197.34375,205.96875 L 197.34375,207.125 L 195.375,209.6875 L 195.59375,213.96875 L 192.46875,217.6875 L 190.25,225.6875 L 190.5,225.6875 L 191.28125,228.8125 L 195,229.59375 L 195,231.9375 L 199.6875,233.3125 L 199.6875,237.03125 L 199.5,239.375 L 205.34375,239.375 L 210.4375,238.1875 L 210.03125,236.03125 L 211.59375,235.0625 L 213.15625,237.21875 L 214.53125,237.8125 L 215.6875,242.5 L 219.03125,246 L 219.40625,248.75 L 222.4375,251.75 L 224.15625,251.59375 L 226.28125,249.625 L 227.8125,241.65625 L 228.78125,238.84375 L 229.5,235.34375 L 232.59375,234.21875 L 234.6875,234.625 L 236.09375,235.90625 L 237.625,233.375 L 239.03125,232.09375 L 239.03125,230.5625 L 240.84375,230.4375 L 241.28125,228.59375 L 239.71875,226.5 L 239.96875,225.625 L 238.875,224.6875 L 235.9375,220.34375 L 232.15625,220.34375 L 231.03125,218.65625 L 231.03125,211.625 L 229.5,207.5625 L 229.21875,202.53125 L 227.25,202.375 L 225,200.6875 L 224.4375,200.6875 L 222.46875,202.09375 L 221.21875,201.25 L 220.9375,199.3125 L 222.34375,198.59375 L 222.46875,197.90625 L 221.65625,197.1875 L 212.1875,196.875 z \", \"name\" : \"Indre et Loire\"}, \"fr-38\" : {\"path\": \"M 397.90625,298.6875 L 396.625,300.1875 L 395.34375,304 L 392.78125,305.28125 L 390.03125,302.71875 L 388.125,302.71875 L 387.90625,305.5 L 390.6875,307.84375 L 386.4375,313.34375 L 380.90625,314.625 L 376.65625,316.125 L 379.40625,318.875 L 380.0625,320.15625 L 375.8125,322.28125 L 375.375,328.4375 L 375.25,328.5 L 376.4375,330.96875 L 379.84375,332.03125 L 382.1875,331.1875 L 384.9375,329.28125 L 388.5625,332.25 L 391.53125,332.25 L 393.65625,335.21875 L 392.78125,337.34375 L 393.21875,340.34375 L 392.15625,343.3125 L 392.59375,344.375 L 394.0625,343.9375 L 397.46875,345 L 401.9375,346.28125 L 403.84375,345 L 404.6875,343.53125 L 405.34375,343.53125 L 405.53125,359.4375 L 406.59375,360.5 L 409.375,360.5 L 411.90625,362 L 413.8125,363.5 L 415.75,363.6875 L 417,364.75 L 420.53125,365.15625 L 420.78125,364.5625 L 419.21875,363.78125 L 419.21875,361.4375 L 424.09375,361.4375 L 425.65625,359.875 L 424.6875,358.125 L 427.21875,356.15625 L 429,356.9375 L 431.53125,354.78125 L 436,355.5625 L 437.5625,353.8125 L 441.28125,354 L 441.28125,349.71875 L 439.71875,348.9375 L 438.9375,346.40625 L 434.84375,346 L 434.25,345.03125 L 435.03125,340.9375 L 436.40625,339.75 L 435.28125,338.21875 L 433.15625,336.9375 L 431.875,338.21875 L 432.3125,336.5 L 432.3125,334.8125 L 430.59375,333.09375 L 431.46875,329.0625 L 433.375,328 L 433.15625,325.25 L 429.125,321.21875 L 427.625,321.21875 L 426.5625,322.6875 L 424.03125,319.3125 L 422.53125,319.5 L 421.25,322.28125 L 422.125,323.96875 L 421.46875,324.625 L 419.78125,323.34375 L 414.875,322.28125 L 412.5625,318.03125 L 412.5625,316.3125 L 410.21875,313.78125 L 409.96875,312.6875 L 402.15625,303.15625 L 401.28125,300.40625 L 399.59375,298.90625 L 397.90625,298.6875 z \", \"name\" : \"Isère\"}, \"fr-39\" : {\"path\": \"M 401.15625,217.53125 L 401.25,218.0625 L 400.46875,218.0625 L 400.0625,221.1875 L 399.5,223.34375 L 399.875,224.71875 L 398.71875,226.28125 L 397.53125,227.84375 L 397.53125,229.40625 L 394.21875,230.96875 L 393.25,232.53125 L 393.625,233.6875 L 393.8125,234.6875 L 392.46875,235.46875 L 392.25,238 L 393.8125,238.1875 L 395.59375,241.125 L 397.75,241.125 L 398.90625,242.5 L 400.28125,242.5 L 399.875,244.0625 L 395.375,244.625 L 395.78125,246.1875 L 397.34375,247.1875 L 397.34375,249.125 L 396.75,249.71875 L 397.9375,251.28125 L 399.6875,254.40625 L 398.90625,257.71875 L 396.9375,259.09375 L 397.15625,261.8125 L 399.5,262.59375 L 400.28125,263.78125 L 398.3125,265.34375 L 393.1875,265.96875 L 395.59375,266.90625 L 399.5,272.375 L 402.03125,273.53125 L 402.03125,276.28125 L 404.96875,275.875 L 408.6875,271.78125 L 411.8125,273.34375 L 411.8125,275.6875 L 417.46875,275.6875 L 425.59375,266.75 L 425.25,266.5625 L 425.625,262.46875 L 428.5625,258.96875 L 426.59375,258.1875 L 426.78125,257 L 424.40625,256.78125 L 424.25,255.375 L 425.78125,253.84375 L 425.375,252.3125 L 424.53125,250.34375 L 428.03125,249.21875 L 429.3125,247.40625 L 429.59375,245.15625 L 426.78125,242.46875 L 424.8125,241.9375 L 420.46875,240.53125 L 420.46875,236.59375 L 420.1875,233.65625 L 416.6875,233.9375 L 411.21875,232.09375 L 412.0625,230.15625 L 413.3125,227.1875 L 413.75,225.25 L 412.34375,223.40625 L 409.8125,221.71875 L 409.53125,219.625 L 409.5625,218.4375 L 407.84375,218.375 L 406.875,219.34375 L 404.34375,219.34375 L 402.65625,217.9375 L 401.15625,217.53125 z \", \"name\" : \"Jura\"}, \"fr-40\" : {\"path\": \"M 139.8125,374.4375 L 133.625,377.625 L 132.03125,377.6875 L 128.5625,396.25 L 124.0625,413.4375 L 122.6875,420.09375 L 121.53125,424.78125 L 118.625,429.78125 L 124.25,432.59375 L 129.375,432.25 L 132.375,429.59375 L 134.84375,431.53125 L 133.4375,432.9375 L 134.5,433.3125 L 135.375,432.0625 L 139.8125,432.40625 L 142.28125,430.46875 L 146.875,430.65625 L 148.65625,429.75 L 151.46875,429.75 L 152.1875,430.65625 L 154.46875,429.9375 L 156.59375,431.53125 L 159.4375,430.65625 L 163.15625,429.40625 L 163.6875,430.28125 L 169.34375,430.46875 L 172.15625,428.875 L 170.78125,426.46875 L 172.15625,422.75 L 174.09375,420.21875 L 173.5,416.90625 L 175.0625,415.34375 L 172.75,411.4375 L 174.6875,409.09375 L 176.84375,408.6875 L 178.78125,409.46875 L 181.53125,407.125 L 182.5,410.0625 L 183.46875,411.4375 L 185.625,410.84375 L 185.4375,408.3125 L 186.0625,406.9375 L 185.59375,405.71875 L 186.125,401.84375 L 188.25,399.71875 L 187.1875,398.46875 L 184.875,398.28125 L 182.21875,397.25 L 178.34375,397.59375 L 177.625,393.34375 L 175.15625,390.34375 L 174.09375,390 L 174.46875,393.53125 L 174.46875,394.59375 L 171.09375,394.75 L 167.5625,393.53125 L 166.84375,389.09375 L 164.375,386.4375 L 162.625,386.28125 L 162.4375,384.6875 L 160.5,383.4375 L 157.3125,382.5625 L 158.1875,381.5 L 158.1875,380.4375 L 157.125,379.5625 L 155.90625,378.5 L 152.34375,379.03125 L 150.25,380.78125 L 148.8125,380.96875 L 146.53125,379.375 L 143.15625,380.78125 L 141.5625,379.71875 L 143,377.96875 L 143.15625,375.65625 L 139.8125,374.4375 z \", \"name\" : \"Landes\"}, \"fr-41\" : {\"path\": \"M 222.5,172.25 L 221.1875,173.9375 L 219.625,176.65625 L 221.5625,178.4375 L 221.375,182.53125 L 220.59375,185.25 L 218.625,185.25 L 218.625,188.96875 L 215.90625,192.5 L 212.96875,193.65625 L 211.59375,195.40625 L 212.1875,196.875 L 221.65625,197.1875 L 222.46875,197.90625 L 222.34375,198.59375 L 220.9375,199.3125 L 221.21875,201.25 L 222.46875,202.09375 L 224.4375,200.6875 L 225,200.6875 L 227.25,202.375 L 229.21875,202.53125 L 229.5,207.5625 L 231.03125,211.625 L 231.03125,218.65625 L 232.15625,220.34375 L 235.9375,220.34375 L 238.875,224.6875 L 239.96875,225.625 L 240,225.53125 L 241.96875,225.25 L 243.65625,223.84375 L 247.03125,223.6875 L 247.3125,224.25 L 248,222.71875 L 250.9375,221.71875 L 253.46875,221.875 L 254.71875,221.4375 L 256.40625,223 L 259.375,224.6875 L 261.875,224.53125 L 261.75,222 L 262.875,220.75 L 264,220.625 L 264.96875,221.71875 L 268.90625,221.3125 L 271.40625,219.90625 L 271.125,218.9375 L 270.4375,218.09375 L 270.5625,216.25 L 272.40625,212.90625 L 274.78125,211.90625 L 274.78125,209.8125 L 275.34375,208.5625 L 273.8125,208 L 272.8125,205.875 L 270.28125,205.1875 L 270.15625,204.34375 L 272.6875,202.25 L 275.53125,200.84375 L 273.9375,198.46875 L 266.78125,198.1875 L 265.8125,199.3125 L 263.84375,199.3125 L 263.15625,198.59375 L 260.0625,198.1875 L 259.21875,200 L 257.25,200.5625 L 255.4375,198.46875 L 255,196.0625 L 253.34375,194.65625 L 250.8125,194.375 L 248.96875,193.125 L 248.96875,191.875 L 247.875,189.1875 L 250.09375,186.96875 L 249.8125,185.84375 L 248.84375,184.71875 L 247.71875,184.71875 L 247.71875,183.71875 L 248.84375,181.78125 L 248.96875,180.65625 L 247.3125,180.65625 L 244.78125,179.9375 L 242.40625,182.1875 L 239.71875,182.46875 L 235.375,181.34375 L 234.125,178.53125 L 232.4375,177.5625 L 231.46875,175.3125 L 228.65625,175.3125 L 227.53125,174.46875 L 229.21875,173.5 L 229.34375,172.65625 L 227.53125,172.65625 L 224.4375,173.21875 L 222.5,172.25 z \", \"name\" : \"Loir et Cher\"}, \"fr-42\" : {\"path\": \"M 339.53125,278.03125 L 336,278.625 L 335.4375,280.78125 L 336.8125,283.5 L 337.1875,294.625 L 332.5,294.84375 L 332.3125,296.59375 L 335.4375,299.125 L 333.6875,300.875 L 333.09375,305.1875 L 335.4375,308.3125 L 337.5625,313.375 L 342.65625,316.71875 L 344.40625,323.15625 L 340.6875,326.65625 L 341.28125,329 L 346.75,330.78125 L 351.0625,327.25 L 353.1875,327.0625 L 359.4375,329.78125 L 359.0625,333.5 L 362.1875,333.3125 L 364.65625,336.15625 L 366.46875,335.65625 L 369.84375,335.03125 L 370.71875,331.1875 L 375.375,328.4375 L 375.8125,322.28125 L 375.96875,322.1875 L 373.6875,321.84375 L 371.5625,322.6875 L 369.84375,321.625 L 371.96875,319.09375 L 371.34375,317.1875 L 364.75,316.125 L 359.21875,311.03125 L 359.21875,309.3125 L 360.5,308.25 L 360.5,306.78125 L 359.03125,305.90625 L 360.28125,304 L 360.28125,301.25 L 357.75,298.90625 L 357.75,296.5625 L 356.03125,294.875 L 356.03125,292.96875 L 355.1875,289.78125 L 356.46875,288.5 L 356.6875,284.6875 L 360.71875,284.6875 L 361.78125,283.40625 L 360.5,281.28125 L 360.5,279.375 L 359.4375,278.53125 L 358.6875,282.53125 L 356.53125,282.53125 L 354.96875,284.09375 L 353.78125,282.90625 L 347.53125,281.9375 L 345.1875,283.3125 L 343.625,283.3125 L 343.25,281.9375 L 340.3125,281.34375 L 340.125,278.21875 L 339.53125,278.03125 z \", \"name\" : \"Loire\"}, \"fr-43\" : {\"path\": \"M 317.8125,326.34375 L 316.40625,327.0625 L 316.40625,328.28125 L 314.28125,328.46875 L 312.34375,330.0625 L 308.8125,330.59375 L 308,331.75 L 308.625,331.8125 L 309.5,334.3125 L 313.9375,334.3125 L 314.8125,337.46875 L 316.0625,338.71875 L 316.40625,342.4375 L 317.46875,343.84375 L 319.59375,344.03125 L 318.34375,345.09375 L 317.28125,345.4375 L 318.1875,346.3125 L 317.125,347.90625 L 319.25,349.15625 L 320.3125,350.75 L 320.3125,352.40625 L 320.78125,352.25 L 324.3125,361.25 L 329.375,359.6875 L 329.75,357.34375 L 331.71875,357.34375 L 332.5,360.0625 L 336.125,359.1875 L 340.625,364.9375 L 343.4375,360.46875 L 348.5,356.75 L 353.1875,356.75 L 354.75,351.875 L 357.875,351.65625 L 358.09375,347.96875 L 361,347.96875 L 360.4375,346.59375 L 359.65625,344.0625 L 360.8125,342.09375 L 363.5625,340.9375 L 364.71875,336.25 L 362.1875,333.3125 L 359.0625,333.5 L 359.4375,329.78125 L 353.1875,327.0625 L 351.0625,327.25 L 346.75,330.78125 L 342.8125,329.5 L 342.03125,330.25 L 339.5625,329.53125 L 337.8125,327.75 L 336.75,329.875 L 333.71875,329.71875 L 332.3125,328.46875 L 331.25,330.9375 L 329.3125,330.0625 L 328.0625,327.75 L 326.46875,327.75 L 325.0625,326.53125 L 322.9375,327.40625 L 320.46875,327.59375 L 319.0625,326.6875 L 318.1875,327.21875 L 317.8125,326.34375 z \", \"name\" : \"Haute Loire\"}, \"fr-44\" : {\"path\": \"M 132.875,185.84375 L 132.6875,188 L 128.40625,188.59375 L 126.4375,190.53125 L 125.65625,192.6875 L 113.5625,193.28125 L 108.46875,196 L 108.28125,201.46875 L 102.8125,203.625 L 99.09375,205.5625 L 95.96875,205.5625 L 94.8125,204.21875 L 93.0625,205.96875 L 92.21875,206.125 L 93.21875,206.8125 L 89.5,210.125 L 90.28125,210.90625 L 91.0625,212.46875 L 89.09375,215.21875 L 91.25,216.375 L 94.96875,217.15625 L 95.34375,215.59375 L 97.5,218.34375 L 101.03125,218.34375 L 103.5625,215.59375 L 106.875,215.59375 L 103.375,217.34375 L 103.5625,219.3125 L 104.34375,221.0625 L 102.1875,223.21875 L 99.84375,223.21875 L 100.25,226.15625 L 104.53125,225.375 L 109.625,230.0625 L 109.375,230.375 L 113.0625,232.78125 L 113.875,234.71875 L 117.25,236.1875 L 119.84375,236.5 L 120.96875,239.5625 L 125,240.53125 L 127.71875,241.03125 L 129.1875,239.40625 L 127.71875,237.3125 L 127.09375,232.78125 L 128.375,231.34375 L 130.15625,231.34375 L 130.96875,233.125 L 130.46875,236.34375 L 131.59375,237.15625 L 134.5,236.1875 L 135.46875,232.96875 L 134.1875,231.65625 L 137.40625,231.65625 L 138.53125,229.5625 L 139.65625,229.71875 L 142.25,232.15625 L 144.125,232.40625 L 144.1875,230.375 L 142.5625,228.28125 L 141.125,228.28125 L 140.625,228.4375 L 139.65625,227.96875 L 140.46875,227.15625 L 140.46875,225.6875 L 142.09375,225.21875 L 143.0625,222.96875 L 142.25,222.15625 L 142.09375,219.40625 L 140,219.40625 L 137.90625,216.8125 L 137.90625,214.90625 L 140.15625,213.75 L 144.1875,212.96875 L 150.46875,213.125 L 152.40625,211.8125 L 151.75,207.78125 L 148.84375,205.0625 L 145.3125,205.53125 L 144.34375,204.71875 L 144.1875,201.84375 L 146.75,199.5625 L 144.8125,197.15625 L 143.53125,193.75 L 141.4375,192.46875 L 141.4375,190.21875 L 141.21875,189.5 L 137.5625,188.59375 L 135.8125,186.25 L 132.875,185.84375 z \", \"name\" : \"Loire Atlantique\"}, \"fr-45\" : {\"path\": \"M 273.71875,160.46875 L 271.1875,162.8125 L 265.46875,163.3125 L 265.25,163.6875 L 265.8125,164.8125 L 264,166.34375 L 264.40625,170 L 262.875,170.28125 L 261.875,173.90625 L 260.1875,175.75 L 257.8125,175.75 L 255.5625,177 L 254.3125,175.59375 L 252.90625,175.03125 L 251.375,176.03125 L 251.375,177.5625 L 250.25,178.40625 L 248.4375,177.28125 L 247.3125,178.125 L 247.4375,179.375 L 246.90625,180.53125 L 247.3125,180.65625 L 248.96875,180.65625 L 248.84375,181.78125 L 247.71875,183.71875 L 247.71875,184.71875 L 248.84375,184.71875 L 249.8125,185.84375 L 250.09375,186.96875 L 247.875,189.1875 L 248.96875,191.875 L 248.96875,193.125 L 250.8125,194.375 L 253.34375,194.65625 L 255,196.0625 L 255.4375,198.46875 L 257.25,200.5625 L 259.21875,200 L 260.0625,198.1875 L 263.15625,198.59375 L 263.84375,199.3125 L 265.8125,199.3125 L 266.78125,198.1875 L 273.9375,198.46875 L 275.625,200.96875 L 277.59375,201.8125 L 279.28125,203.375 L 281.375,203.09375 L 281.9375,202.375 L 283.1875,202.375 L 284.75,204.34375 L 287.96875,204.5 L 288.8125,205.59375 L 291.0625,208.6875 L 292.03125,209.53125 L 293.28125,209.40625 L 293.4375,206.59375 L 294,206.3125 L 294.84375,206.4375 L 296.25,208.28125 L 297.21875,208.6875 L 299.21875,207.875 L 298.90625,207.53125 L 298.71875,205.5625 L 302.625,204.40625 L 302.03125,202.25 L 301.4375,199.125 L 298.90625,195.625 L 298.3125,193.46875 L 302.21875,193.46875 L 304.96875,191.5 L 305.34375,188.59375 L 303.59375,186.625 L 308.6875,182.34375 L 308.6875,178.8125 L 306.125,176.09375 L 305.15625,172.96875 L 301.625,169.625 L 296.75,172.375 L 296.375,170.8125 L 294.21875,170.625 L 293.625,172.1875 L 291.6875,172.5625 L 286.40625,172.375 L 284.25,173.75 L 282.5,172.1875 L 285.625,170.03125 L 285.4375,166.71875 L 283.09375,165.53125 L 281.125,162.59375 L 275.875,162.21875 L 273.71875,160.46875 z \", \"name\" : \"Loiret\"}, \"fr-46\" : {\"path\": \"M 247.46875,347.3125 L 243.3125,349.25 L 242.71875,349.34375 L 242.84375,349.53125 L 241.5,350.6875 L 241.5,352.84375 L 243.25,354.78125 L 241.5,357.90625 L 239.9375,358.90625 L 239.71875,360.84375 L 236.40625,361.25 L 236.59375,363.375 L 237.78125,363.78125 L 235.03125,367.6875 L 230.75,368.0625 L 230.5625,371 L 228.78125,372.75 L 227.8125,375.3125 L 223.90625,375.5 L 225.46875,381.34375 L 227.125,384.96875 L 229.625,384.875 L 229.78125,385.90625 L 228.375,387.5 L 229.4375,389.625 L 231.03125,389.625 L 232.78125,391.5625 L 234.375,391.5625 L 235.625,390.15625 L 235.96875,390.53125 L 235.96875,392.28125 L 236.5,394.59375 L 240.21875,394.75 L 243.21875,391.5625 L 244.8125,391.40625 L 245.34375,392.28125 L 246.21875,394.21875 L 247.65625,394.21875 L 248.1875,390.6875 L 251.1875,391.0625 L 252.9375,388.9375 L 255.78125,389.625 L 260.03125,387.6875 L 260.0625,388.0625 L 261.4375,386.625 L 259.65625,383.96875 L 258.96875,380.4375 L 261.25,378.5 L 262.3125,378.84375 L 265.5,375.3125 L 267.25,375.5 L 267.96875,374.59375 L 271.5,374.59375 L 272.75,373.1875 L 273.09375,372.09375 L 271.5,371.875 L 272.59375,368.5625 L 270.09375,367.46875 L 272.59375,361.65625 L 269.28125,359.1875 L 268.15625,352 L 265.125,351.1875 L 262.90625,353.375 L 261.8125,351.4375 L 258.5,354.75 L 256.28125,355.03125 L 252.4375,349.53125 L 247.46875,347.3125 z \", \"name\" : \"Lot\"}, \"fr-47\" : {\"path\": \"M 195.25,363.375 L 193.1875,363.65625 L 191.4375,364.1875 L 188.9375,364.71875 L 188.25,366.65625 L 189.125,368.59375 L 191.25,368.78125 L 190.90625,370.53125 L 189.3125,371.0625 L 187.53125,373.1875 L 184.53125,377.78125 L 183.125,380.25 L 183.65625,382.90625 L 184.53125,384.6875 L 182.59375,385.90625 L 180.65625,385.90625 L 180.28125,387.875 L 181.53125,388.9375 L 181.71875,390.875 L 180.28125,392.28125 L 177.15625,392.78125 L 177.625,393.34375 L 178.34375,397.59375 L 182.21875,397.25 L 184.875,398.28125 L 187.1875,398.46875 L 188.25,399.71875 L 186.125,401.84375 L 185.59375,405.71875 L 186.0625,406.9375 L 186.8125,405.375 L 189.125,407.34375 L 192.25,404.21875 L 193.625,406.15625 L 196.9375,405.5625 L 200.46875,405.1875 L 202.03125,402.4375 L 207.875,401.875 L 210.8125,404.78125 L 211.8125,403.8125 L 213.75,403.21875 L 212.96875,400.5 L 215.90625,399.71875 L 219.625,398.9375 L 218.8125,396.59375 L 220,395.21875 L 220.96875,391.5 L 218.8125,389.15625 L 220.1875,384.6875 L 223.125,386.4375 L 227.4375,385.65625 L 225.46875,381.34375 L 223.90625,375.5 L 227.8125,375.3125 L 228.59375,373.25 L 225.53125,371.96875 L 224.125,370.375 L 222,370.375 L 219.53125,372.65625 L 217.59375,372.5 L 217.0625,371.25 L 218.46875,370.375 L 218.46875,369.125 L 216.875,367.375 L 215.46875,367.1875 L 214.59375,368.25 L 210.6875,368.25 L 210.34375,366.84375 L 209.09375,366.65625 L 206.96875,368.40625 L 203.09375,368.40625 L 201.3125,370 L 198.3125,368.9375 L 197.96875,365.25 L 195.25,363.375 z \", \"name\" : \"Lot et Garonne\"}, \"fr-48\" : {\"path\": \"M 320.78125,352.25 L 315.3125,354.21875 L 313.75,357.71875 L 310.25,355.375 L 307.5,363.96875 L 304.6875,370.4375 L 308.78125,375.46875 L 308.5,379.34375 L 311.25,381.28125 L 311.25,385.96875 L 312.09375,392.59375 L 315.40625,394 L 315.125,396.1875 L 319.8125,395.375 L 321.46875,396.1875 L 320.4375,397.09375 L 326.46875,401.125 L 331.625,400.0625 L 332.5,398.8125 L 331.78125,397.0625 L 333.90625,396.53125 L 336.90625,399.34375 L 342.03125,399.875 L 344.34375,396.34375 L 344.34375,393.34375 L 345.75,391.75 L 344.5,391.40625 L 344.5,387.34375 L 341.6875,384.34375 L 344,383.96875 L 345.21875,382.90625 L 346.1875,381.03125 L 345.21875,380.4375 L 345.78125,376.3125 L 342.46875,372.71875 L 341.09375,365.53125 L 336.125,359.1875 L 332.5,360.0625 L 331.71875,357.34375 L 329.75,357.34375 L 329.375,359.6875 L 324.3125,361.25 L 320.78125,352.25 z \", \"name\" : \"Lozère\"}, \"fr-49\" : {\"path\": \"M 141.9375,188.6875 L 141.5,189.5625 L 141.21875,189.5 L 141.4375,190.21875 L 141.4375,192.46875 L 143.53125,193.75 L 144.8125,197.15625 L 146.75,199.5625 L 144.1875,201.84375 L 144.34375,204.71875 L 145.3125,205.53125 L 148.84375,205.0625 L 151.75,207.78125 L 152.40625,211.8125 L 150.46875,213.125 L 144.1875,212.96875 L 140.15625,213.75 L 137.90625,214.90625 L 137.90625,216.8125 L 140,219.40625 L 142.09375,219.40625 L 142.25,222.15625 L 143.0625,222.96875 L 142.09375,225.21875 L 140.46875,225.6875 L 140.46875,227.15625 L 139.65625,227.96875 L 140.625,228.4375 L 141.125,228.28125 L 142.5625,228.28125 L 144.1875,230.375 L 144.125,232.40625 L 144.5,232.46875 L 146.125,233.4375 L 151.125,233.4375 L 153.78125,235.6875 L 157.5,234.09375 L 163.5625,235.46875 L 166.28125,233.6875 L 166.28125,230.96875 L 171.5625,230.5625 L 176.4375,229.59375 L 181.71875,229.40625 L 182.3125,230.78125 L 183.6875,231.9375 L 185.03125,229.59375 L 188.75,225.6875 L 190.25,225.6875 L 192.46875,217.6875 L 195.59375,213.96875 L 195.375,209.6875 L 197.34375,207.125 L 197.34375,205.96875 L 196.375,204.78125 L 197,203.5 L 194.34375,202.46875 L 186.125,197.46875 L 178.53125,195.21875 L 175.625,195.0625 L 175.625,193.125 L 173.84375,191.65625 L 171.9375,191.65625 L 168.375,190.53125 L 166.125,192.78125 L 160.96875,192.96875 L 158.6875,191.65625 L 152.90625,189.90625 L 151.59375,191.5 L 148.375,189.40625 L 145.46875,189.40625 L 141.9375,188.6875 z \", \"name\" : \"Maine et Loire\"}, \"fr-50\" : {\"path\": \"M 119.5625,77.5 L 118.78125,79.46875 L 122.90625,82.78125 L 122.90625,87.09375 L 121.34375,89.03125 L 122.3125,90 L 122.90625,90.40625 L 122.5,94.125 L 123.875,97.25 L 128.375,102.3125 L 129.34375,106.8125 L 130.3125,108.1875 L 130.3125,115.21875 L 132.65625,119.90625 L 132.65625,125.375 L 130.125,130.4375 L 132.84375,137.46875 L 137.15625,138.4375 L 137.53125,140.40625 L 135.40625,141.375 L 131.71875,141.375 L 132.3125,143.84375 L 133.46875,147.5625 L 136.8125,150.5 L 138.375,150.875 L 139.9375,148.75 L 141.6875,148.53125 L 143.8125,146 L 145.78125,147.5625 L 148.125,147.5625 L 149.6875,148.34375 L 149.6875,148.71875 L 153,149.125 L 154.96875,147.5625 L 157.875,148.75 L 157.9375,148.875 L 161.28125,146.03125 L 162.40625,142.3125 L 162.09375,140.6875 L 162.5625,138.78125 L 160.625,136.84375 L 155.625,133.59375 L 151.9375,133.28125 L 148.21875,128.59375 L 151.28125,127.46875 L 152.5625,125.0625 L 150.96875,123.59375 L 152.40625,122.3125 L 153.84375,123.4375 L 156.4375,121.84375 L 158.0625,119.25 L 158.6875,116.6875 L 157.5625,114.40625 L 158.21875,113.59375 L 156.75,111.1875 L 158.375,109.09375 L 157.09375,107.46875 L 155.46875,109.5625 L 153.21875,108.28125 L 149.5,104.5625 L 149.34375,102.96875 L 150.46875,101.84375 L 150.125,99.6875 L 148.28125,100.15625 L 148.09375,95.46875 L 143,89.4375 L 144.5625,85.53125 L 146.71875,85.53125 L 144.78125,80.25 L 136.375,79.84375 L 131.875,82.96875 L 126.8125,79.65625 L 119.5625,77.5 z \", \"name\" : \"Manche\"}, \"fr-51\" : {\"path\": \"M 337.375,99.3125 L 335.03125,100.3125 L 335.4375,102.25 L 331.3125,102.25 L 327.625,105 L 327.625,110.25 L 330.34375,112.03125 L 331.125,113.78125 L 326.625,114.15625 L 326.0625,115.9375 L 327.8125,117.09375 L 327.03125,118.28125 L 325.28125,119.0625 L 325.65625,120.40625 L 328.1875,120.40625 L 329.1875,121.78125 L 327.4375,122.96875 L 325.875,127.0625 L 322.9375,128.4375 L 321.9375,130.5625 L 320.96875,131.75 L 321.1875,132.90625 L 319.625,133.90625 L 319.21875,136.625 L 320.78125,137.59375 L 321.5625,140.53125 L 320.59375,142.28125 L 321.1875,143.65625 L 324.09375,143.46875 L 324.09375,144.4375 L 324.9375,144.25 L 328.3125,147.8125 L 333.0625,147.03125 L 338.625,143.25 L 341.96875,143.25 L 345.34375,140.875 L 349.3125,138.6875 L 352.28125,138.90625 L 352.6875,142.875 L 356.25,148.21875 L 360.21875,148.21875 L 365.78125,147.03125 L 369.75,148.40625 L 373.90625,145.4375 L 374.5,140.5 L 379.09375,139.71875 L 379,136.625 L 375.28125,133.6875 L 374.875,132.125 L 376.25,129.78125 L 375.0625,128.8125 L 376.25,125.875 L 378.40625,124.90625 L 379.96875,120.03125 L 376.84375,120.21875 L 378.59375,118.28125 L 377.21875,113.96875 L 375.875,111.03125 L 377.625,109.46875 L 376.625,109.28125 L 376.375,107.9375 C 376.33461,107.94351 376.09375,107.96875 376.09375,107.96875 L 374.3125,106.375 L 372.3125,108.375 L 371.71875,108.375 L 370.9375,107.375 L 366.1875,107.1875 L 365.375,108.375 L 364,108.375 L 362.8125,105.78125 L 360.21875,105.78125 L 359.625,106.375 L 357.0625,106.1875 L 353.875,103.8125 L 351.6875,103.21875 L 350.90625,102.03125 L 346.75,99.4375 L 342,99.3125 L 342.0625,101.09375 L 340.6875,101.46875 L 337.375,99.3125 z \", \"name\" : \"Marne\"}, \"fr-52\" : {\"path\": \"M 379.09375,139.71875 L 374.5,140.5 L 373.90625,145.4375 L 369.75,148.40625 L 367.59375,147.65625 L 366.5625,149.8125 L 366.375,152.78125 L 369.9375,157.75 L 373.3125,158.9375 L 374.09375,163.09375 L 374.3125,170.21875 L 373.125,172 L 369.75,172.21875 L 367.5625,174.1875 L 369.15625,175.1875 L 369.8125,177.6875 L 372.15625,179 L 375.65625,182.71875 L 380.15625,188.78125 L 377.625,191.5 L 379.375,192.6875 L 379.5625,196 L 382.6875,195.8125 L 383.46875,197.375 L 385.8125,197.5625 L 387.5625,196.59375 L 390.6875,200.5 L 391.09375,201.46875 L 395.375,200.5 L 396.1875,198.53125 L 396.375,198.5625 L 396.375,196.59375 L 399.09375,195.40625 L 402.21875,196.59375 L 405.15625,195.40625 L 406.90625,195.40625 L 407.5,191.5 L 408.46875,190.34375 L 406.71875,190.15625 L 406.53125,187.8125 L 409.25,187.21875 L 409.4375,185.65625 L 412.1875,185.65625 L 412.1875,183.125 L 414.34375,182.34375 L 413.75,180.78125 L 414.34375,180.40625 L 412.5625,179 L 410.4375,179.78125 L 410.4375,175.6875 L 404.96875,172.96875 L 406.125,167.6875 L 407.875,166.5 L 407.3125,164.75 L 404.75,164.375 L 404.1875,161.8125 L 401.84375,161.8125 L 399.09375,158.125 L 395.96875,157.90625 L 394.625,155.96875 L 396.375,154.21875 L 392.25,149.71875 L 390.5,149.125 L 385.8125,146.78125 L 383.28125,144.0625 L 379.1875,143.46875 L 379.09375,139.71875 z \", \"name\" : \"Haute Marne\"}, \"fr-53\" : {\"path\": \"M 182.5,146.40625 L 180.5625,146.59375 L 179.75,148.53125 L 176.84375,149.71875 L 171.5625,148.9375 L 166.28125,152.0625 L 164.34375,150.6875 L 161.40625,152.65625 L 159.25,151.09375 L 157.875,148.75 L 154.96875,147.5625 L 153,149.125 L 149.6875,148.71875 L 149.5,153.8125 L 150.46875,154.59375 L 150.46875,158.5 L 148.5,160.46875 L 148.5,163.59375 L 149.09375,165.53125 L 149.09375,171.1875 L 150.46875,172.5625 L 150.46875,177.84375 L 147.15625,177.4375 L 145.78125,178.21875 L 143.25,184.46875 L 142.25,188 L 141.9375,188.6875 L 145.46875,189.40625 L 148.375,189.40625 L 151.59375,191.5 L 152.90625,189.90625 L 158.6875,191.65625 L 160.96875,192.96875 L 166.125,192.78125 L 168.375,190.53125 L 171.9375,191.65625 L 173.84375,191.65625 L 173.875,191.6875 L 174.5,190.21875 L 174.5,184.40625 L 173.84375,183.4375 L 174.1875,182.46875 L 176.9375,182.3125 L 178.21875,181.1875 L 178.375,180.21875 L 176.9375,176.65625 L 177.40625,175.21875 L 180.625,174.90625 L 180.3125,174.09375 L 181.125,172.15625 L 180.46875,170.6875 L 181.28125,169.09375 L 184.1875,166.65625 L 183.84375,164.09375 L 184.34375,159.90625 L 185.46875,157.96875 L 189.125,156.78125 L 188.5625,156.75 L 187.5625,153.21875 L 185.03125,152.25 L 184.25,147.96875 L 182.5,146.40625 z \", \"name\" : \"Mayenne\"}, \"fr-54\" : {\"path\": \"M 401.59375,88.4375 L 399.25,90.59375 L 395.9375,90.78125 L 394.78125,91.96875 L 394.53125,91.96875 L 394.40625,94.3125 L 395.5625,96.21875 L 395.15625,97.375 L 394.78125,98.71875 L 394.96875,99.46875 L 395.9375,98.71875 L 396.875,97 L 398.8125,96.8125 L 402.0625,95.84375 L 403.78125,97.1875 L 404.53125,98.71875 L 405.125,100.4375 L 405.125,102.15625 L 406.0625,102.9375 L 406.0625,104.25 L 405.125,105.40625 L 404.9375,107.90625 L 405.6875,109.0625 L 405.875,110.59375 L 406.0625,113.0625 L 407.21875,114.03125 L 408.9375,114.78125 L 408.1875,116.3125 L 410.28125,118.25 L 408.375,120.34375 L 408.75,121.6875 L 410.65625,122.625 L 410.65625,123.59375 L 408.375,123.59375 L 407.40625,124.9375 L 407.59375,125.90625 L 409.125,127.4375 L 407.8125,131.0625 L 406.28125,134.5 L 407.03125,136.625 L 407.03125,140.0625 L 407.8125,141.78125 L 408.9375,141.78125 L 409.53125,142.75 L 407.8125,142.75 L 406.28125,143.5 L 406.28125,144.65625 L 408.1875,146.375 L 408.1875,149.0625 L 410.09375,148.46875 L 412.96875,148.65625 L 413.15625,151.71875 L 414.3125,152.125 L 412.96875,153.0625 L 412.78125,154.03125 L 414.875,154.40625 L 416.21875,156.125 L 422.53125,155.75 L 423.875,153.25 L 426.75,153.25 L 427.90625,152.3125 L 429.8125,153.46875 L 431.53125,152.875 L 434.03125,153.0625 L 436.125,152.3125 L 438.21875,150.78125 L 439.375,151.9375 L 439.5625,149.25 L 441.09375,148.65625 L 441.875,151.15625 L 444.15625,151.34375 L 446.46875,151.9375 L 447.40625,152.125 L 450.6875,150.59375 L 452.40625,149.4375 L 453.9375,147.53125 L 457,146.375 L 459,145.9375 L 457.875,144.84375 L 460.03125,145.03125 L 460.4375,144.625 L 458.125,143.875 L 454.875,141.59375 L 452,139.46875 L 448.5625,139.46875 L 444.9375,137.375 L 442.0625,137.1875 L 442.0625,136.40625 L 437.65625,133.75 L 432.6875,131.625 L 430.1875,131.625 L 429.25,128.96875 L 425.40625,124.15625 L 421.59375,124.15625 L 420.0625,122.0625 L 417,122.0625 L 417.1875,119 L 413.15625,116.5 L 413.34375,114.03125 L 415.46875,114.03125 L 415.46875,111.90625 L 416.21875,110.375 L 414.5,108.65625 L 416.03125,106 L 414.875,102.9375 L 413.9375,102.15625 L 411.4375,96.8125 L 412.40625,95.28125 C 412.40625,95.28125 412.32712,94.02401 412.25,92.34375 L 409.625,92.34375 L 406.09375,88.4375 L 401.59375,88.4375 z \", \"name\" : \"Meurthe et Moselle\"}, \"fr-55\" : {\"path\": \"M 390.125,86.53125 L 388.75,88.78125 L 387,89.9375 L 385.625,88.59375 L 382.6875,88.59375 L 382.125,87.8125 L 380.15625,91.5 L 379.375,92.875 L 381.71875,95.8125 L 380.9375,99.71875 L 378.78125,101.46875 L 379,102.84375 L 379.75,104.78125 L 378.59375,105.96875 L 376.25,107.125 L 376.625,109.28125 L 377.625,109.46875 L 375.875,111.03125 L 377.21875,113.96875 L 378.59375,118.28125 L 376.84375,120.21875 L 379.96875,120.03125 L 378.40625,124.90625 L 376.25,125.875 L 375.0625,128.8125 L 376.25,129.78125 L 374.875,132.125 L 375.28125,133.6875 L 379,136.625 L 379.1875,143.46875 L 383.28125,144.0625 L 385.8125,146.78125 L 390.5,149.125 L 392.25,149.71875 L 396.375,154.21875 L 395.9375,154.65625 L 399.375,154.21875 L 399.375,152.5 L 403.21875,151.71875 L 403.21875,150.40625 L 404.15625,150.40625 L 404.15625,151.53125 L 407.21875,150.59375 L 408.40625,149 L 408.1875,149.0625 L 408.1875,146.375 L 406.28125,144.65625 L 406.28125,143.5 L 407.8125,142.75 L 409.53125,142.75 L 408.9375,141.78125 L 407.8125,141.78125 L 407.03125,140.0625 L 407.03125,136.625 L 406.28125,134.5 L 407.8125,131.0625 L 409.125,127.4375 L 407.59375,125.90625 L 407.40625,124.9375 L 408.375,123.59375 L 410.65625,123.59375 L 410.65625,122.625 L 408.75,121.6875 L 408.375,120.34375 L 410.28125,118.25 L 408.1875,116.3125 L 408.9375,114.78125 L 407.21875,114.03125 L 406.0625,113.0625 L 405.875,110.59375 L 405.6875,109.0625 L 404.9375,107.90625 L 405.125,105.40625 L 406.0625,104.25 L 406.0625,102.9375 L 405.125,102.15625 L 405.125,100.4375 L 404.53125,98.71875 L 403.78125,97.1875 L 402.0625,95.84375 L 398.8125,96.8125 L 396.875,97 L 395.9375,98.71875 L 394.96875,99.46875 L 394.78125,98.71875 L 395.15625,97.375 L 395.5625,96.21875 L 394.40625,94.3125 L 394.53125,91.96875 L 393.59375,91.96875 L 392.8125,88.25 L 391.25,86.6875 L 390.125,86.53125 z \", \"name\" : \"Meuse\"}, \"fr-56\" : {\"path\": \"M 56,160.59375 L 52.75,162.15625 L 50.46875,162.15625 L 48.0625,164.09375 L 48.21875,165.53125 L 49.65625,169.25 L 50.46875,172.15625 L 55.46875,172.96875 L 57.90625,174.90625 L 58.875,173.75 L 60.46875,175.875 L 59.65625,176.84375 L 59.5,179.71875 L 58.0625,179.71875 L 56.9375,181.5 L 54.65625,181.5 L 53.71875,185.34375 L 55.90625,188.84375 L 59.03125,189.625 L 60.1875,187.875 L 59.625,190 L 62.34375,191.1875 L 65.875,194.6875 L 67.03125,196.84375 L 66.65625,199.375 L 66.25,201.9375 L 68.59375,203.6875 L 69.78125,202.3125 L 68.59375,200.75 L 68.59375,197.25 L 70.9375,197.8125 L 71.71875,195.46875 L 72.3125,196.84375 L 74.84375,199 L 76.03125,197.03125 L 74.84375,194.3125 L 77,197.25 L 79.71875,196.84375 L 79.15625,195.46875 L 81.6875,196.0625 L 83.625,198.40625 L 82.65625,199.96875 L 80.125,199.1875 L 77.1875,197.8125 L 75.625,199.78125 L 77.96875,200.5625 L 79.71875,203.28125 L 90.28125,202.3125 L 93,202.90625 L 91.65625,204.0625 L 91.84375,205.84375 L 92.21875,206.125 L 93.0625,205.96875 L 94.8125,204.21875 L 95.96875,205.5625 L 99.09375,205.5625 L 102.8125,203.625 L 108.28125,201.46875 L 108.46875,196 L 109.625,195.375 L 107.5625,191.5 L 109.34375,190.0625 L 109.03125,189.09375 L 107.90625,188.4375 L 109.65625,187.625 L 111.28125,185.6875 L 111.125,183.75 L 109.03125,183.75 L 108.53125,181.84375 L 110,179.90625 L 108.375,177 L 105.96875,175.53125 L 103.21875,175.53125 L 102.25,175.21875 L 102.25,173.9375 L 103.6875,172.625 L 104.5,169.40625 L 104.03125,167.3125 L 103.375,168.125 L 99.5,167.8125 L 97.71875,164.5625 L 96.28125,164.5625 L 94.03125,165.375 L 94.03125,167.46875 L 90.96875,169.40625 L 88.53125,168.4375 L 87.5625,166.34375 L 86.78125,167.46875 L 84.5,167.46875 L 83.375,166.03125 L 82.25,166.03125 L 79.84375,163.59375 L 77.09375,164.25 L 74.1875,161.65625 L 71.59375,161.84375 L 70.8125,163.4375 L 67.75,165.0625 L 64.03125,163.4375 L 63.0625,162.46875 L 61.4375,163.59375 L 59.5,163.4375 L 59.1875,161.84375 L 56.125,161.03125 L 56,160.59375 z \", \"name\" : \"Morbihan\"}, \"fr-57\" : {\"path\": \"M 423.09375,90.40625 L 420.15625,90.59375 L 417.8125,92.5625 L 417.21875,93.53125 L 413.90625,93.53125 L 412.75,92.34375 L 412.25,92.34375 C 412.32712,94.02401 412.40625,95.28125 412.40625,95.28125 L 411.4375,96.8125 L 413.9375,102.15625 L 414.875,102.9375 L 416.03125,106 L 414.5,108.65625 L 416.21875,110.375 L 415.46875,111.90625 L 415.46875,114.03125 L 413.34375,114.03125 L 413.15625,116.5 L 417.1875,119 L 417,122.0625 L 420.0625,122.0625 L 421.59375,124.15625 L 425.40625,124.15625 L 429.25,128.96875 L 430.1875,131.625 L 432.6875,131.625 L 437.65625,133.75 L 442.0625,136.40625 L 442.0625,137.1875 L 444.9375,137.375 L 448.5625,139.46875 L 452,139.46875 L 454.875,141.59375 L 458.125,143.875 L 460.4375,144.625 L 463.9375,141.125 L 465.125,137.03125 L 463.5625,135.46875 L 463.375,134.09375 L 465.6875,129.78125 L 460.25,126.65625 L 457.125,129 L 455.34375,127.84375 L 456.125,126.09375 L 454.1875,124.71875 L 451.625,123.53125 L 451.625,121 L 454.1875,120.21875 L 455.15625,115.71875 L 456.90625,113.78125 L 457.6875,116.71875 L 459.84375,117.6875 L 463.5625,118.28125 L 465.5,120.21875 L 467.84375,120.21875 L 469.8125,118.84375 L 472.34375,120.625 L 473.71875,120.625 L 475.28125,119.25 L 475.28125,116.3125 L 477,113.3125 L 476.59375,113.4375 L 475.25,111.5 L 471.34375,109.15625 L 469.96875,107 L 465.28125,107.40625 L 462.53125,109.9375 L 455.90625,110.125 L 453.9375,108.75 C 453.80551,108.51057 452.84437,106.81438 452,106.34375 C 451.96729,106.32639 451.91355,106.29802 451.875,106.28125 C 451.84646,106.26959 451.80512,106.25698 451.78125,106.25 C 451.77058,106.24458 451.73002,106.22452 451.71875,106.21875 C 451.71591,106.21876 451.69093,106.21861 451.6875,106.21875 C 451.66248,106.21745 451.61378,106.21875 451.59375,106.21875 C 450.67823,106.21876 448.90565,105.19125 448.6875,105.0625 L 445.9375,106.21875 L 445.75,108.5625 L 442.4375,108.96875 L 440.46875,105.25 L 439.3125,104.84375 L 439.3125,102.125 L 436.5625,100.9375 L 436.375,96.25 L 434.40625,94.3125 L 430.3125,92.34375 L 428.375,92.34375 L 427.78125,92.75 L 425.8125,92.75 L 423.09375,90.40625 z \", \"name\" : \"Moselle\"}, \"fr-58\" : {\"path\": \"M 306.75,203.78125 L 305.78125,205.3125 L 303.9375,205.3125 L 301.46875,204.75 L 298.71875,205.5625 L 298.90625,207.53125 L 301.25,210.25 L 301.25,213.96875 L 299.5,216.5 L 300.0625,218.84375 L 303.59375,221.59375 L 303.78125,224.3125 L 305.75,228.4375 L 305.34375,233.125 L 307.5,235.25 L 306.90625,240.34375 L 306.71875,242.875 L 307.6875,244.625 L 306.1875,249.40625 L 306.3125,250.875 L 309.65625,252.4375 L 312,255 L 314.125,253.8125 L 316.09375,252.65625 L 316.5,254.40625 L 319.40625,254.40625 L 320.1875,252.84375 L 321.9375,253.625 L 322.53125,256.15625 L 324.09375,255.78125 L 327.8125,250.6875 L 329.75,252.0625 L 330.0625,252.65625 L 333.125,250.75 L 334.375,250.90625 L 335.34375,253.28125 L 337.1875,253 L 338.59375,251.59375 L 340.40625,251.59375 L 341.8125,249.78125 L 343.21875,249.5 L 343.5,248.5 L 346.5625,248.65625 L 346.71875,247.9375 L 345.3125,246.6875 L 345.3125,245.4375 L 347.28125,244.3125 L 347.28125,243.46875 L 345.4375,242.34375 L 345.15625,240.25 L 345.3125,238.28125 L 344.0625,237.4375 L 345.15625,235.90625 L 346.15625,235.34375 L 346.84375,233.65625 L 345.875,233.09375 L 344.75,231.40625 L 346.15625,229.4375 L 348.53125,228.03125 L 351.46875,228.03125 L 351.46875,225.8125 L 352.3125,225.53125 L 352.3125,224.6875 L 351.0625,222.71875 L 348.25,222.15625 L 347.28125,220.46875 L 347.6875,218.9375 L 347.96875,216.8125 L 347.46875,215.6875 L 344.34375,217.8125 L 343.0625,218.375 L 341.375,217.25 L 341.53125,214.4375 L 339.6875,214.4375 L 338.15625,215.4375 L 337.75,214.15625 L 338.59375,212.75 L 337.59375,211.5 L 336.46875,213.1875 L 336.625,214.4375 L 333.96875,214.3125 L 329.75,210.375 L 326.53125,210.25 L 326.53125,208.125 L 324.28125,206.71875 L 323.84375,204.90625 L 323.15625,204.78125 L 323.15625,208.28125 L 321.90625,208.5625 L 320.0625,208 L 318.125,209.25 L 317,209.53125 L 315.875,208.5625 L 314.75,209.125 L 312.21875,207.4375 L 310.40625,207.4375 L 309.125,206.59375 L 309.40625,205.03125 L 308,203.78125 L 306.75,203.78125 z \", \"name\" : \"Nièvre\"}, \"fr-59\" : {\"path\": \"M 285.78125,4.0625 L 279.53125,7 L 269.78125,8.5625 L 269.25,8.65625 L 272.96875,14.5625 L 275.5625,21.125 L 279.90625,21.3125 L 281.6875,22.6875 L 279.53125,23.6875 L 279.53125,26.0625 L 282.28125,29.03125 L 287.25,30.25 L 293.40625,30.625 L 294.78125,28.4375 L 296.78125,28.4375 L 297.75,30.4375 L 295.1875,32.03125 L 295.59375,36 L 299.15625,36.96875 L 302.71875,37.375 L 303.71875,39.9375 L 305.5,40.75 L 305.09375,42.125 L 302.53125,43.3125 L 302.3125,44.5 L 304.3125,46.90625 L 305.6875,47.875 L 305.3125,49.0625 L 303.71875,50.25 L 304.3125,50.65625 L 306.875,50.84375 L 309.0625,52.25 L 308.875,54.03125 L 307.6875,54.8125 L 307.46875,58 L 305.6875,58.1875 L 303.90625,58 L 301.9375,59.1875 L 303.125,59.59375 L 305.09375,59.59375 L 306.875,59.96875 L 307.46875,60.96875 L 306.3125,63.1875 L 307.875,64.75 L 309.4375,65.15625 L 311,64.15625 L 313.15625,64.15625 L 313.75,65.34375 L 314.53125,65.15625 L 316.875,63.78125 L 319.21875,65.15625 L 322.34375,63 L 323.71875,63 L 325.28125,64.375 L 328.40625,62.21875 L 329.75,62.40625 L 330.9375,63.375 L 335.25,63.78125 L 335.625,65.53125 L 337.78125,63.59375 L 338.9375,63.59375 L 339.71875,66.125 L 343.4375,67.09375 L 344.5,66.375 L 344.1875,66.375 L 344,64.4375 L 347.90625,62.09375 L 347.3125,58.375 L 343.59375,57.40625 L 344.5625,56.40625 L 344.5625,53.6875 L 347.5,51.53125 L 346.71875,49.96875 L 340.46875,45.09375 L 329.53125,45.6875 L 328.375,47.625 L 327,47.625 L 327.1875,40.78125 L 324.0625,37.09375 L 321.71875,37.46875 L 320.34375,35.90625 L 316.4375,37.65625 L 315.09375,36.3125 L 312.34375,35.90625 L 311.5625,33.375 L 311.375,25.5625 L 309.625,24.78125 L 309.40625,23.59375 L 308.25,23.59375 L 307.84375,21.25 L 305.3125,21.46875 L 300.4375,23.03125 L 298.09375,25.9375 L 295.75,25.9375 L 294.1875,24 L 293.59375,21.84375 L 291.65625,19.6875 L 288.90625,19.6875 L 287.75,17.5625 L 287.75,14.21875 L 289.09375,12.09375 L 288.3125,9.15625 L 285.78125,4.0625 z \", \"name\" : \"Nord\"}, \"fr-60\" : {\"path\": \"M 257.21875,80.21875 L 255.9375,81.75 L 255.15625,83.6875 L 256.71875,83.6875 L 255.9375,85.65625 L 255.15625,89.5625 L 256.3125,91.5 L 256.3125,94.84375 L 258.28125,94.84375 L 257.5,96.1875 L 256.125,98.75 L 255.5625,100.5 L 257.3125,102.0625 L 257.875,106.5625 L 258.875,108.125 L 257.5,108.5 L 255.75,107.53125 L 255.4375,109.84375 L 255.5625,109.6875 L 256.3125,111.4375 L 257.5,113.375 L 262.78125,113.78125 L 266.5,113.375 L 269.03125,111.4375 L 272.15625,113.375 L 273.71875,114.5625 L 276.0625,113.96875 L 278.1875,113 L 282.3125,115.15625 L 286.59375,117.6875 L 287.96875,119.0625 L 290.3125,117.5 L 292.25,118.65625 L 293.4375,119.625 L 295.1875,119.4375 L 296.375,117.875 L 299.09375,119.4375 L 302.4375,118.0625 L 304.375,118.65625 L 306.3125,117.09375 L 307.5,116.5 L 307.875,116.78125 L 308.28125,114.125 L 306.875,112.53125 L 304.5,110.9375 L 303.5,112.53125 L 302.90625,112.71875 L 302.71875,109.75 L 304.5,109.34375 L 304.09375,106.59375 L 301.71875,106.1875 L 302.90625,104.1875 L 306.28125,103.40625 L 307.46875,98.65625 L 309.25,97.84375 L 306.875,96.0625 L 307.6875,94.28125 L 308.0625,88.34375 L 307.25,83.75 L 303.125,84.15625 L 300.34375,83.78125 L 295.1875,85.15625 L 290.8125,89.3125 L 287.25,88.125 L 283.6875,87.75 L 280.90625,84.96875 L 275.9375,83.5625 L 269.21875,84.15625 L 267.4375,82.78125 L 263.84375,82.78125 L 261.28125,83.78125 L 260.09375,82.96875 L 260.09375,80.8125 L 259.6875,80.21875 L 257.21875,80.21875 z \", \"name\" : \"Oise\"}, \"fr-61\" : {\"path\": \"M 206.84375,124.65625 L 202.875,125.53125 L 201.59375,124.75 L 197.875,125.375 L 197.71875,126.84375 L 196.4375,127.15625 L 195.96875,125.0625 L 194.34375,125.375 L 191.90625,128.125 L 188.21875,130.875 L 184.1875,132.15625 L 180.96875,130.375 L 177.25,131.03125 L 175,128.78125 L 172.875,129.5625 L 169.34375,132 L 165.3125,130.875 L 162.40625,134.25 L 158.46875,135.4375 L 160.625,136.84375 L 162.5625,138.78125 L 162.09375,140.6875 L 162.40625,142.3125 L 161.28125,146.03125 L 157.9375,148.875 L 159.25,151.09375 L 161.40625,152.65625 L 164.34375,150.6875 L 166.28125,152.0625 L 171.5625,148.9375 L 176.84375,149.71875 L 179.75,148.53125 L 180.5625,146.59375 L 182.5,146.40625 L 184.25,147.96875 L 185.03125,152.25 L 187.5625,153.21875 L 188.5625,156.75 L 191.875,156.9375 L 197.15625,152.0625 L 202.4375,151.875 L 204,154 L 204.96875,161.03125 L 208.28125,162.21875 L 210.25,165.15625 L 214.34375,165.15625 L 214.53125,166.5 L 214.71875,164.5625 L 215.5,164.5625 L 218.25,168.65625 L 220.375,169 L 220.375,164.375 L 219.03125,162.59375 L 218.625,161.03125 L 221.5625,159.28125 L 224.5,158.6875 L 226.4375,156.34375 L 226.0625,149.125 L 221.9375,145.625 L 221.75,142.28125 L 218.25,139.9375 L 219.625,138 L 218.8125,135.0625 L 216.09375,134.09375 L 214.125,132.125 L 212.96875,129.40625 L 207.5,129.21875 L 205.9375,127.25 L 206.84375,124.65625 z \", \"name\" : \"Orne\"}, \"fr-62\" : {\"path\": \"M 269.25,8.65625 L 258.4375,10.71875 L 249.84375,17.34375 L 249.84375,43.71875 L 249.78125,44.5 L 252.8125,45.21875 L 253.78125,47.375 L 256.125,46.78125 L 257.5,45.03125 L 259.25,45.625 L 262.96875,48.53125 L 264.34375,47.96875 L 265.3125,50.3125 L 268.8125,51.875 L 268.8125,53.8125 L 271.375,54.78125 L 273.90625,53.8125 L 278.78125,53.21875 L 279.96875,54.21875 L 282.3125,53.21875 L 283.46875,55.1875 L 280.5625,57.125 L 280.5625,59.875 L 281.53125,60.84375 L 282.3125,60.65625 L 282.875,59.09375 L 284.65625,57.90625 L 286.40625,59.28125 L 290.5,60.65625 L 292.25,60.65625 L 292.25,58.6875 L 294.8125,60.46875 L 295,62.03125 L 293.8125,63.78125 L 295.96875,62.59375 L 297.75,61.8125 L 298.5,63.1875 L 298.5,64.5625 L 301.4375,63 L 306.125,63 L 306.3125,63.1875 L 307.46875,60.96875 L 306.875,59.96875 L 305.09375,59.59375 L 303.125,59.59375 L 301.9375,59.1875 L 303.90625,58 L 305.6875,58.1875 L 307.46875,58 L 307.6875,54.8125 L 308.875,54.03125 L 309.0625,52.25 L 306.875,50.84375 L 304.3125,50.65625 L 303.71875,50.25 L 305.3125,49.0625 L 305.6875,47.875 L 304.3125,46.90625 L 302.3125,44.5 L 302.53125,43.3125 L 305.09375,42.125 L 305.5,40.75 L 303.71875,39.9375 L 302.71875,37.375 L 299.15625,36.96875 L 295.59375,36 L 295.1875,32.03125 L 297.75,30.4375 L 296.78125,28.4375 L 294.78125,28.4375 L 293.40625,30.625 L 287.25,30.25 L 282.28125,29.03125 L 279.53125,26.0625 L 279.53125,23.6875 L 281.6875,22.6875 L 279.90625,21.3125 L 275.5625,21.125 L 272.96875,14.5625 L 269.25,8.65625 z \", \"name\" : \"Pas de Calais\"}, \"fr-63\" : {\"path\": \"M 299.09375,279.5 L 296.4375,282.5 L 296.25,281.4375 L 294.125,281.625 L 294.125,283.21875 L 292.90625,283.5625 L 291.65625,286.5625 L 290.0625,287.28125 L 287.09375,284.96875 L 287.375,289.5625 L 288.9375,291.5 L 289.71875,295.21875 L 287.375,296.96875 L 286.8125,299.71875 L 284.65625,300.875 L 280.9375,303.03125 L 281.3125,304.78125 L 285.8125,309.28125 L 286.21875,312.03125 L 284.4375,314.9375 L 284.4375,317.6875 L 285.625,319.0625 L 286.21875,322.375 L 285.84375,323.71875 L 291.84375,325.46875 L 293.4375,328.8125 L 296.59375,328.8125 L 297.84375,327.59375 L 299.96875,328.65625 L 301.03125,328.8125 L 303.6875,332.875 L 306.5,333.0625 L 307.21875,331.65625 L 308,331.75 L 308.8125,330.59375 L 312.34375,330.0625 L 314.28125,328.46875 L 316.40625,328.28125 L 316.40625,327.0625 L 317.8125,326.34375 L 318.1875,327.21875 L 319.0625,326.6875 L 320.46875,327.59375 L 322.9375,327.40625 L 325.0625,326.53125 L 326.46875,327.75 L 328.0625,327.75 L 329.3125,330.0625 L 331.25,330.9375 L 332.3125,328.46875 L 333.71875,329.71875 L 336.75,329.875 L 337.8125,327.75 L 339.5625,329.53125 L 342.03125,330.25 L 342.8125,329.5 L 341.28125,329 L 340.6875,326.65625 L 344.40625,323.15625 L 342.65625,316.71875 L 337.5625,313.375 L 335.4375,308.3125 L 333.09375,305.1875 L 333.6875,300.875 L 335.4375,299.125 L 332.3125,296.59375 L 332.40625,295.8125 L 329.65625,294.71875 L 328.78125,292.59375 L 325.78125,292.75 L 323.46875,292.21875 L 323.125,289.75 L 321.34375,288.875 L 319.0625,290.28125 L 316.40625,289.75 L 314.625,289.9375 L 308.625,289.0625 L 303.6875,286.21875 L 303.3125,284.8125 L 301.21875,282.5 L 302.625,280.5625 L 302.09375,279.5 L 299.09375,279.5 z \", \"name\" : \"Puy de Dôme\"}, \"fr-64\" : {\"path\": \"M 172.15625,428.875 L 169.34375,430.46875 L 163.6875,430.28125 L 163.15625,429.40625 L 159.4375,430.65625 L 156.59375,431.53125 L 154.46875,429.9375 L 152.1875,430.65625 L 151.46875,429.75 L 148.65625,429.75 L 146.875,430.65625 L 142.28125,430.46875 L 139.8125,432.40625 L 135.375,432.0625 L 134.5,433.3125 L 133.4375,432.9375 L 134.84375,431.53125 L 132.375,429.59375 L 129.375,432.25 L 124.25,432.59375 L 118.625,429.78125 L 117.8125,431.21875 L 113.3125,436.6875 L 109.8125,438.0625 L 107.28125,438.4375 L 107.28125,440.59375 L 109.625,442.75 L 113.125,442.9375 L 113.3125,445.46875 L 116.0625,445.6875 L 116.84375,443.90625 L 120.5625,445.46875 L 122.90625,446.0625 L 123.46875,448.40625 L 122.125,449.59375 L 122.125,453.28125 L 119.375,454.65625 L 119.1875,456.40625 L 120.9375,458.375 L 124.0625,459.34375 L 124.65625,456.40625 L 126.40625,454.46875 L 126.21875,457 L 127.59375,458.96875 L 131.09375,458.96875 L 132.65625,461.09375 L 137.34375,461.875 L 141.84375,464.625 L 149.25,464.625 L 149.65625,468.71875 L 154.71875,472.625 L 156.6875,474.96875 L 158.84375,473.8125 L 160.78125,473.40625 L 161.75,474.375 L 163.53125,473.40625 L 166.9375,471.53125 L 167.25,467.5 L 168.8125,466.3125 L 169.625,459.875 L 172.53125,460.46875 L 173.71875,459.6875 L 172.34375,456.9375 L 177.625,452.4375 L 180.75,445.40625 L 182.6875,442.875 L 180.34375,439.375 L 178.78125,437.03125 L 180.9375,435.0625 L 177.625,429.59375 L 172.34375,429.21875 L 172.15625,428.875 z \", \"name\" : \"Pyrénées Atlantiques\"}, \"fr-65\" : {\"path\": \"M 179.21875,428.53125 L 177.28125,429.5625 L 177.625,429.59375 L 180.9375,435.0625 L 178.78125,437.03125 L 180.34375,439.375 L 182.6875,442.875 L 180.75,445.40625 L 177.625,452.4375 L 172.34375,456.9375 L 173.71875,459.6875 L 172.53125,460.46875 L 169.625,459.875 L 168.8125,466.3125 L 167.25,467.5 L 166.9375,471.53125 L 167.4375,471.25 L 170.75,473.21875 L 174.65625,476.15625 L 175.03125,478.5 L 178.15625,481.03125 L 180.71875,481.03125 L 187.15625,478.28125 L 189.875,481.40625 L 193.59375,482.40625 L 194.96875,480.0625 L 196.71875,480.84375 L 200.5,481.09375 L 200.25,470.59375 L 202.21875,470.59375 L 203.96875,471.46875 L 205.21875,470.25 L 205.03125,468.3125 L 207.5,466.875 L 206.625,463.1875 L 205.5625,462.28125 L 203.4375,463 L 204.5,461.21875 L 203.96875,458.9375 L 200.78125,456.625 L 200.96875,455.03125 L 202.75,452.03125 L 205.03125,451.15625 L 205.03125,449.90625 L 206.4375,447.78125 L 207.375,446.46875 L 203.8125,444.625 L 199.03125,444.625 L 198.3125,443.1875 L 195.84375,443.1875 L 195.125,441.59375 L 192.84375,441.59375 L 192.125,442.3125 L 189.46875,442.3125 L 189.3125,440.71875 L 187.1875,439.3125 L 187.90625,438.59375 L 188.25,436.84375 L 187.71875,436.3125 L 186.65625,433.46875 L 184.34375,433.125 L 182.0625,431.875 L 182.21875,428.53125 L 179.21875,428.53125 z \", \"name\" : \"Hautes Pyrénées\"}, \"fr-66\" : {\"path\": \"M 300.5,468.65625 L 296.25,470.9375 L 296.59375,473.4375 L 278.0625,473.4375 L 278.21875,476.78125 L 280.15625,479.625 L 272.21875,483.5 L 271.375,483 L 264.84375,483.46875 L 264.03125,485.125 L 260.71875,485.96875 L 258.5,487.90625 L 252.4375,489.3125 L 252.78125,491.375 L 255.71875,494.125 L 261.5625,495.6875 L 261.75,499.1875 L 264.875,501.9375 L 267.21875,501.53125 L 270.5625,497.4375 L 274.65625,496.65625 L 281.09375,498.8125 L 286.5625,503.5 L 288.125,501.53125 L 289.5,501.53125 L 290.875,502.5 L 292.03125,501.9375 L 292.21875,499.1875 L 298.09375,497.8125 L 300.03125,495.28125 L 302.96875,494.3125 L 307.0625,494.3125 L 309.625,497.03125 L 312.75,497.25 L 312.75,494.125 L 311.1875,491.96875 L 308.4375,490.78125 L 308,473.71875 L 305.4375,472.53125 L 300.5,468.65625 z \", \"name\" : \"Pyrénées Orientales\"}, \"fr-67\" : {\"path\": \"M 480.71875,112.28125 L 477,113.3125 L 475.28125,116.3125 L 475.28125,119.25 L 473.71875,120.625 L 472.34375,120.625 L 469.8125,118.84375 L 467.84375,120.21875 L 465.5,120.21875 L 463.5625,118.28125 L 459.84375,117.6875 L 457.6875,116.71875 L 456.90625,113.78125 L 455.15625,115.71875 L 454.1875,120.21875 L 451.625,121 L 451.625,123.53125 L 454.1875,124.71875 L 456.125,126.09375 L 455.34375,127.84375 L 457.125,129 L 460.25,126.65625 L 465.6875,129.78125 L 463.375,134.09375 L 463.5625,135.46875 L 465.125,137.03125 L 463.9375,141.125 L 460.03125,145.03125 L 457.875,144.84375 L 459.25,146.1875 L 458.46875,149.71875 L 459.25,155 L 462.96875,155.96875 L 462.65625,156.6875 L 465.59375,156.53125 L 467.3125,158.625 L 468.84375,160.53125 L 472.6875,160.34375 L 474.40625,165.3125 L 477.40625,166.625 L 477.375,166 L 482.46875,156.03125 L 481.875,150.375 L 484.21875,142.75 L 484.8125,136.09375 L 489.875,132.40625 L 489.875,130.0625 L 491.84375,127.5 L 493.40625,127.5 L 495.15625,125.75 L 494.78125,122.4375 L 496.53125,117.75 L 499.25,117.15625 L 496.53125,115 L 491.65625,114.4375 L 487.34375,112.28125 L 484.40625,114.03125 L 482.84375,112.28125 L 480.71875,112.28125 z \", \"name\" : \"Bas-Rhin\"}, \"fr-68\" : {\"path\": \"M 465.59375,156.53125 L 462.65625,156.6875 L 460.8125,160.84375 L 458.46875,165.53125 L 459.0625,168.46875 L 457.125,172.96875 L 453.78125,175.875 L 453.59375,183.5 L 451.15625,185.59375 L 451.25,185.65625 L 452.03125,187.21875 L 455.15625,187.40625 L 458.6875,190.15625 L 459.25,191.5 L 459.0625,193.84375 L 458.09375,195.625 L 458.46875,197.96875 L 461.21875,197.5625 L 461.8125,199.71875 L 462.78125,203.875 L 465.09375,203.5 L 464.6875,205.625 L 466.0625,206.8125 L 473.28125,206.625 L 477,203.6875 L 477.1875,199.375 L 479.15625,196.84375 L 476.59375,193.90625 L 475.25,190.78125 L 476.8125,188.65625 L 476.8125,183.75 L 477.78125,181.40625 L 477.78125,177.5 L 479.53125,174.96875 L 477.59375,172.25 L 477.40625,166.625 L 474.40625,165.3125 L 472.6875,160.34375 L 468.84375,160.53125 L 467.3125,158.625 L 465.59375,156.53125 z \", \"name\" : \"Haut Rhin\"}, \"fr-69\" : {\"path\": \"M 371.75,275.3125 L 369.625,275.5 L 367.84375,277.25 L 366.6875,275.6875 L 364.9375,277.25 L 362.5625,275.6875 L 360.625,275.6875 L 359.84375,276.28125 L 359.4375,278.53125 L 360.5,279.375 L 360.5,281.28125 L 361.78125,283.40625 L 360.71875,284.6875 L 356.6875,284.6875 L 356.46875,288.5 L 355.1875,289.78125 L 356.03125,292.96875 L 356.03125,294.875 L 357.75,296.5625 L 357.75,298.90625 L 360.28125,301.25 L 360.28125,304 L 359.03125,305.90625 L 360.5,306.78125 L 360.5,308.25 L 359.21875,309.3125 L 359.21875,311.03125 L 364.75,316.125 L 371.34375,317.1875 L 371.96875,319.09375 L 369.84375,321.625 L 371.5625,322.6875 L 373.6875,321.84375 L 375.96875,322.1875 L 380.0625,320.15625 L 379.40625,318.875 L 376.65625,316.125 L 380.90625,314.625 L 386.4375,313.34375 L 390.6875,307.84375 L 387.90625,305.5 L 388.0625,303.46875 L 384.09375,302.3125 L 381.53125,303.15625 L 381.125,299.75 L 378.78125,297.625 L 377.28125,297.40625 L 373.46875,295.09375 L 374.09375,293.59375 L 374.09375,287 L 375.15625,285.53125 L 375.53125,280.96875 L 374.875,282.53125 L 373.5,282.34375 L 372.75,278.4375 L 371.75,275.3125 z \", \"name\" : \"Rhône\"}, \"fr-70\" : {\"path\": \"M 423.5,175.5 L 419.8125,176.09375 L 419.21875,178.03125 L 417.25,179.40625 L 415.90625,177.84375 L 414.9375,178.4375 L 415.6875,179.59375 L 413.75,180.78125 L 414.34375,182.34375 L 412.1875,183.125 L 412.1875,185.65625 L 409.4375,185.65625 L 409.25,187.21875 L 406.53125,187.8125 L 406.71875,190.15625 L 408.46875,190.34375 L 407.5,191.5 L 406.90625,195.40625 L 405.15625,195.40625 L 402.21875,196.59375 L 399.09375,195.40625 L 396.375,196.59375 L 396.375,198.5625 L 398.5,198.9375 L 400.0625,202.0625 L 400.28125,203.625 L 397.75,206.5625 L 396.5625,206.9375 L 395.78125,207.90625 L 397.9375,208.90625 L 398.3125,212.03125 L 400.0625,212.21875 L 400.28125,216.125 L 401.0625,216.90625 L 401.15625,217.53125 L 402.65625,217.9375 L 404.34375,219.34375 L 406.875,219.34375 L 407.84375,218.375 L 409.5625,218.4375 L 411.34375,218.5 L 415.28125,215.28125 L 416.40625,215.28125 L 417.65625,214.3125 L 421.71875,214.4375 L 424.8125,211.90625 L 427.0625,211.5 L 427.90625,209.40625 L 429.71875,208.84375 L 431.53125,205.75 L 434.0625,203.78125 L 436.71875,203.375 L 438.6875,204.78125 L 442.34375,204.34375 L 442.34375,202.375 L 443.8125,201.53125 L 444.96875,199.9375 L 447.21875,199.9375 L 448.46875,198.625 L 448.9375,195.5 L 448.9375,193.5625 L 448.09375,190.59375 L 448.09375,188.09375 L 449.625,186.96875 L 451.4375,186.03125 L 451.25,185.65625 L 445,182.34375 L 443.25,180.375 L 441.5,179.21875 L 439.9375,180 L 439.71875,181.15625 L 438.15625,182.125 L 437.1875,182.125 L 434.25,178.8125 L 430.15625,178.8125 L 428.40625,180.1875 L 426.84375,180.375 L 424.3125,178.4375 L 424.5,176.28125 L 423.5,175.5 z \", \"name\" : \"Haute Saône\"}, \"fr-71\" : {\"path\": \"M 351.46875,227.84375 L 351.46875,228.03125 L 348.53125,228.03125 L 346.15625,229.4375 L 344.75,231.40625 L 345.875,233.09375 L 346.84375,233.65625 L 346.15625,235.34375 L 345.15625,235.90625 L 344.0625,237.4375 L 345.3125,238.28125 L 345.15625,240.25 L 345.4375,242.34375 L 347.28125,243.46875 L 347.28125,244.3125 L 345.3125,245.4375 L 345.3125,246.6875 L 346.71875,247.9375 L 346.5625,248.65625 L 343.5,248.5 L 343.21875,249.5 L 341.8125,249.78125 L 340.40625,251.59375 L 338.59375,251.59375 L 337.1875,253 L 335.34375,253.28125 L 334.375,250.90625 L 333.125,250.75 L 330.0625,252.65625 L 333.6875,259.46875 L 333.6875,262.40625 L 334.65625,263.59375 L 337.96875,263.59375 L 339.125,265.15625 L 342.25,265.15625 L 343.625,267.09375 L 343.4375,274.71875 L 339.34375,277.84375 L 339.25,278.0625 L 339.53125,278.03125 L 340.125,278.21875 L 340.3125,281.34375 L 343.25,281.9375 L 343.625,283.3125 L 345.1875,283.3125 L 347.53125,281.9375 L 353.78125,282.90625 L 354.96875,284.09375 L 356.53125,282.53125 L 358.6875,282.53125 L 359.84375,276.28125 L 360.625,275.6875 L 362.5625,275.6875 L 364.9375,277.25 L 366.6875,275.6875 L 367.84375,277.25 L 369.625,275.5 L 371.75,275.3125 L 372.75,278.4375 L 373.5,282.34375 L 374.875,282.53125 L 376.0625,279.78125 L 379.75,265.34375 L 381.125,262.8125 L 383.28125,262.59375 L 385.4375,264.375 L 387,263.96875 L 388.9375,262.59375 L 390.90625,263 L 392.0625,265.53125 L 393.1875,265.96875 L 398.3125,265.34375 L 400.28125,263.78125 L 399.5,262.59375 L 397.15625,261.8125 L 396.9375,259.09375 L 398.90625,257.71875 L 399.6875,254.40625 L 397.9375,251.28125 L 396.75,249.71875 L 397.34375,249.125 L 397.34375,247.1875 L 395.78125,246.1875 L 395.375,244.625 L 399.875,244.0625 L 400.28125,242.5 L 398.90625,242.5 L 397.75,241.125 L 395.59375,241.125 L 393.8125,238.1875 L 392.25,238 L 392.4375,235.65625 L 390.75,235.46875 L 388.5,237 L 386.25,237.5625 L 384.71875,236.59375 L 382.75,236.46875 L 382.1875,237.28125 L 380.375,237.5625 L 376.3125,238.84375 L 370.40625,240.9375 L 368.15625,239.125 L 365.5,238.5625 L 365.375,236.1875 L 362.84375,234.34375 L 359.34375,231.6875 L 355.40625,231.8125 L 351.625,227.90625 L 351.46875,227.84375 z \", \"name\" : \"Saône et Loire\"}, \"fr-72\" : {\"path\": \"M 202.4375,151.875 L 197.15625,152.0625 L 191.875,156.9375 L 189.125,156.78125 L 185.46875,157.96875 L 184.34375,159.90625 L 183.84375,164.09375 L 184.1875,166.65625 L 181.28125,169.09375 L 180.46875,170.6875 L 181.125,172.15625 L 180.3125,174.09375 L 180.625,174.90625 L 177.40625,175.21875 L 176.9375,176.65625 L 178.375,180.21875 L 178.21875,181.1875 L 176.9375,182.3125 L 174.1875,182.46875 L 173.84375,183.4375 L 174.5,184.40625 L 174.5,190.21875 L 173.875,191.6875 L 175.625,193.125 L 175.625,195.0625 L 178.53125,195.21875 L 186.125,197.46875 L 194.34375,202.46875 L 197,203.5 L 198.3125,200.875 L 202.21875,203.625 L 204.375,203.625 L 203.1875,199.71875 L 205.5625,201.28125 L 206.90625,199.3125 L 212.5625,197.75 L 211.59375,195.40625 L 212.96875,193.65625 L 215.90625,192.5 L 218.625,188.96875 L 218.625,185.25 L 220.59375,185.25 L 221.375,182.53125 L 221.5625,178.4375 L 219.625,176.65625 L 221.1875,173.9375 L 223.5,171 L 220.78125,169.0625 L 218.25,168.65625 L 215.5,164.5625 L 214.71875,164.5625 L 214.53125,166.5 L 214.34375,165.15625 L 210.25,165.15625 L 208.28125,162.21875 L 204.96875,161.03125 L 204,154 L 202.4375,151.875 z \", \"name\" : \"Sarthe\"}, \"fr-73\" : {\"path\": \"M 417,293.8125 L 416.59375,299.53125 L 415.3125,300.59375 L 415.3125,306.96875 L 412.75,307.40625 L 412.34375,311.03125 L 410,312.71875 L 409.96875,312.6875 L 410.21875,313.78125 L 412.5625,316.3125 L 412.5625,318.03125 L 414.875,322.28125 L 419.78125,323.34375 L 421.46875,324.625 L 422.125,323.96875 L 421.25,322.28125 L 422.53125,319.5 L 424.03125,319.3125 L 426.5625,322.6875 L 427.625,321.21875 L 429.125,321.21875 L 433.15625,325.25 L 433.375,328 L 431.46875,329.0625 L 430.59375,333.09375 L 432.3125,334.8125 L 432.3125,336.5 L 431.875,338.21875 L 433.15625,336.9375 L 435.28125,338.21875 L 436.40625,339.75 L 439.9375,339.375 L 441.09375,340.53125 L 441.6875,343.28125 L 445.1875,342.875 L 445.59375,339.9375 L 447.34375,339.15625 L 451.09375,339.34375 L 451.03125,339.21875 L 456.875,336.875 L 459.03125,338.25 L 461.1875,338.25 L 461.375,335.90625 L 463.90625,334.53125 L 464.875,333.375 L 469.96875,331.40625 L 470.5625,328.09375 L 469.5625,326.53125 L 472.3125,321.84375 L 469.78125,320.875 L 469,318.125 L 463.71875,315 C 463.71875,315 464.03377,309.01275 463.53125,307.9375 C 463.51544,307.91055 463.48155,307.86019 463.46875,307.84375 C 463.46374,307.8383 463.44264,307.81713 463.4375,307.8125 C 463.43393,307.81272 463.4091,307.81243 463.40625,307.8125 C 463.4062,307.80552 463.40608,307.78312 463.40625,307.78125 C 463.40269,307.78137 463.37784,307.78121 463.375,307.78125 C 463.37209,307.7811 463.3467,307.78118 463.34375,307.78125 C 463.34022,307.78117 463.31534,307.78126 463.3125,307.78125 C 462.53125,307.97657 459.625,308.1875 459.625,308.1875 L 456.6875,304.84375 L 456.78125,301.625 L 455.46875,301.46875 L 453.96875,303.15625 L 452.0625,304.4375 L 452.5,303.375 L 450.5625,300.1875 L 447.375,300.1875 L 445.46875,297.84375 L 446.53125,296.5625 L 446.125,295.28125 L 444.625,294.875 L 442.71875,296.15625 L 441.21875,300.59375 L 439.3125,302.09375 L 438.46875,305.5 L 437.625,307.1875 L 434.21875,307.84375 L 433.15625,306.78125 L 430.1875,303.59375 L 428.46875,303.59375 L 427.84375,304.84375 L 424.4375,304.4375 L 422.96875,301.65625 L 419.125,301.03125 L 419.125,295.5 L 417,293.8125 z \", \"name\" : \"Savoie\"}, \"fr-74\" : {\"path\": \"M 446.125,266.1875 L 441.65625,266.96875 L 437.34375,270.46875 L 436.1875,268.71875 L 434.03125,268.90625 L 432.0625,273.21875 L 432.28125,274.96875 L 434.40625,276.71875 L 430.5,279.28125 L 427.96875,281.625 L 423.65625,281.625 L 421.6875,283.1875 L 419.78125,283.8125 L 418.71875,285.75 L 416.8125,284.6875 L 416.375,290.1875 L 417.4375,292.125 L 417.5,294.21875 L 419.125,295.5 L 419.125,301.03125 L 422.96875,301.65625 L 424.4375,304.4375 L 427.84375,304.84375 L 428.46875,303.59375 L 430.1875,303.59375 L 433.15625,306.78125 L 434.21875,307.84375 L 437.625,307.1875 L 438.46875,305.5 L 439.3125,302.09375 L 441.21875,300.59375 L 442.71875,296.15625 L 444.625,294.875 L 446.125,295.28125 L 446.53125,296.5625 L 445.46875,297.84375 L 447.375,300.1875 L 450.5625,300.1875 L 452.5,303.375 L 452.0625,304.4375 L 453.96875,303.15625 L 455.46875,301.46875 L 456.78125,301.625 L 456.875,298.21875 L 463.53125,295.46875 L 464.3125,293.53125 L 463.90625,289.21875 L 459.625,284.75 L 458.25,285.53125 L 458.25,283.75 L 458.25,280.84375 L 454.53125,279.0625 L 454.34375,277.5 L 456.5,275.15625 L 456.5,272.4375 L 452.96875,268.71875 L 452.78125,266.1875 L 446.125,266.1875 z \", \"name\" : \"Haute Savoie\"}, \"fr-75\" : {\"path\": \"M 280.28125,129.0625 L 277.75,129.09375 L 276.625,129.59375 L 276.15625,130.21875 L 275.125,130.28125 L 274.1875,131.34375 L 274.21875,131.9375 L 274.4375,132.625 L 276,133.0625 L 277.90625,134.03125 L 279.125,134.09375 L 279.9375,133.875 L 280.78125,133.28125 L 281.0625,133.53125 L 282.875,133.78125 L 283.1875,133.125 L 283.1875,132.46875 L 282.875,132.34375 L 281.625,132.40625 L 281.71875,132.71875 L 281.5,132.90625 L 281.09375,132.90625 L 281.25,132.5 L 281.3125,132.0625 L 281.25,132.0625 L 281.09375,130.3125 L 280.28125,129.0625 z \", \"name\" : \"Paris\"}, \"fr-76\" : {\"path\": \"M 241.9375,61.5 L 240.65625,63.0625 L 232.28125,69.5 L 217.4375,73.21875 L 207.65625,76.71875 L 199.65625,81.03125 L 194.96875,88.0625 L 194,93.53125 L 197.90625,96.46875 L 203.5625,97.625 L 202.65625,97.78125 L 202.6875,97.9375 L 207.0625,97.375 L 209.3125,94.96875 L 211,94.5625 L 212.9375,97.9375 L 215.625,97.65625 L 216.75,99.59375 L 221.5,99.3125 L 226.28125,102.6875 L 223.1875,103.65625 L 225.4375,105.34375 L 226.84375,105.34375 L 228.09375,108.03125 L 230.34375,108.03125 L 231.03125,106.34375 L 229.34375,105.21875 L 234.125,103.8125 L 239.15625,103.25 L 240.4375,99.59375 L 242.8125,97.5 L 247.3125,97.375 L 252.5,100.03125 L 255.59375,100.375 L 256.125,98.75 L 257.5,96.1875 L 258.28125,94.84375 L 256.3125,94.84375 L 256.3125,91.5 L 255.15625,89.5625 L 255.9375,85.65625 L 256.71875,83.6875 L 255.15625,83.6875 L 255.9375,81.75 L 257.875,79.40625 L 255.9375,75.875 L 255.34375,72.375 L 246.75,63.96875 L 245.78125,62.03125 L 243.625,62.21875 L 241.9375,61.5 z \", \"name\" : \"Seine Maritime\"}, \"fr-77\" : {\"path\": \"M 307.5,116.5 L 306.3125,117.09375 L 304.375,118.65625 L 302.4375,118.0625 L 299.09375,119.4375 L 296.375,117.875 L 295.1875,119.4375 L 293.4375,119.625 L 292.25,118.65625 L 290.3125,117.5 L 287.96875,119.0625 L 287.875,118.96875 L 287.03125,124.375 L 288.1875,131.25 L 288.1875,135.84375 L 286.65625,139.6875 L 287.03125,142.34375 L 285.3125,143.6875 L 286.25,148.875 L 285.5,150 L 284.9375,155.1875 L 286.25,156.90625 L 281.875,159.78125 L 281.875,163.71875 L 283.09375,165.53125 L 285.4375,166.71875 L 285.625,170.03125 L 282.5,172.1875 L 284.25,173.75 L 286.40625,172.375 L 291.6875,172.5625 L 293.625,172.1875 L 294.21875,170.625 L 296.375,170.8125 L 296.75,172.375 L 301.625,169.625 L 303.40625,167.5 L 305.75,164.75 L 304.1875,163 L 305.5625,160.0625 L 309.0625,158.3125 L 316.6875,158.6875 L 318.4375,157.34375 L 318.59375,157.5 L 319.03125,154.21875 L 319.8125,150.3125 L 321.1875,148.53125 L 321.375,146.1875 L 324.09375,145.03125 L 324.09375,143.46875 L 321.1875,143.65625 L 320.59375,142.28125 L 321.5625,140.53125 L 320.78125,137.59375 L 319.21875,136.625 L 319.625,133.90625 L 321.1875,132.90625 L 320.96875,131.75 L 321.53125,131.0625 L 318.25,130.375 L 317.25,128.03125 L 315.5,127.4375 L 310.25,122.375 L 309.65625,118.0625 L 307.5,116.5 z \", \"name\" : \"Seine et Marne\"}, \"fr-78\" : {\"path\": \"M 251.5,118.15625 L 251.4375,118.28125 L 245.96875,119.84375 L 245.1875,120.8125 L 246.1875,122.375 L 246.1875,123.9375 L 247.9375,124.3125 L 246.9375,125.3125 L 247.03125,126.1875 L 247.15625,126.09375 L 249.09375,128.03125 L 249.6875,130.375 L 251.25,131.9375 L 250.46875,134.09375 L 250.46875,136.03125 L 251.84375,137.59375 L 250.46875,139.9375 L 251.84375,143.28125 L 254.5625,145.21875 L 254.96875,147.375 L 257.3125,147.75 L 257.875,152.0625 L 259.65625,154.21875 L 262.8125,154.8125 L 263.28125,151.71875 L 264.625,150.1875 L 263.5,148.46875 L 266.34375,148.46875 L 268.28125,145.8125 L 266.9375,143.5 L 267.3125,141.40625 L 270.1875,140.0625 L 270.5625,137.9375 L 272.46875,137.1875 L 274.21875,136.40625 L 274.5625,136.625 L 274.5625,136.40625 L 272.8125,134.4375 L 271.71875,131.46875 L 273.46875,127.65625 L 272.59375,124.78125 L 269.1875,122.71875 L 264.375,122.5 L 259.875,119.625 L 256.25,120.28125 L 251.5,118.15625 z \", \"name\" : \"Yvelines\"}, \"fr-79\" : {\"path\": \"M 181.71875,229.40625 L 176.4375,229.59375 L 171.5625,230.5625 L 166.28125,230.96875 L 166.28125,233.6875 L 163.5625,235.46875 L 157.5,234.09375 L 153.40625,235.84375 L 155.34375,238.59375 L 155.34375,240.9375 L 160.03125,244.84375 L 158.875,247.375 L 162,250.875 L 160.625,252.65625 L 162.5625,255.5625 L 163.15625,261.03125 L 162,262.59375 L 163.375,264.9375 L 162,267.5 L 162.1875,269.0625 L 163.75,267.875 L 165.6875,269.84375 L 162.96875,271.59375 L 162,272.75 L 159.84375,273.34375 L 157.3125,274.53125 L 157.125,274.375 L 157.21875,277.25 L 159.34375,279.5625 L 159.34375,280.84375 L 162.53125,283.1875 L 166.5625,283.40625 L 169.3125,287 L 173.78125,286.59375 L 177.40625,289.125 L 180.15625,290.40625 L 180.59375,292.53125 L 182.125,294 L 183.96875,292.96875 L 183.5625,291.90625 L 185.03125,290.1875 L 185.03125,288.71875 L 187.59375,288.0625 L 191,286.375 L 194.59375,285.75 L 195.25,283.8125 L 192.25,282.96875 L 190.78125,280.625 L 191.84375,278.09375 L 193.125,276.59375 L 193.125,273.40625 L 191.84375,272.5625 L 190.15625,273.40625 L 190.15625,274.46875 L 189.28125,275.75 L 187.59375,273.84375 L 187.375,272.5625 L 188.03125,271.09375 L 186.53125,270.03125 L 186.53125,265.5625 L 185.6875,265.34375 L 185.6875,263.84375 L 186.96875,261.71875 L 187.15625,260.65625 L 188.03125,258.34375 L 187.375,256.84375 L 185.25,256 L 187.375,252.8125 L 188.03125,251.125 L 188.03125,250.0625 L 186.53125,248.34375 L 186.53125,247.71875 L 187.375,246.21875 L 186.75,245.15625 L 188.03125,243.6875 L 186.96875,241.34375 L 186.3125,237.9375 L 186.09375,235.8125 L 184.40625,236.03125 L 184.09375,231.21875 L 183.6875,231.9375 L 182.3125,230.78125 L 181.71875,229.40625 z \", \"name\" : \"Deux Sèvres\"}, \"fr-80\" : {\"path\": \"M 249.78125,44.5 L 249.25,50.9375 L 253.5625,54.84375 L 253.5625,56.8125 L 248.28125,53.6875 L 241.9375,61.5 L 243.625,62.21875 L 245.78125,62.03125 L 246.75,63.96875 L 255.34375,72.375 L 255.9375,75.875 L 257.875,79.40625 L 257.21875,80.21875 L 259.6875,80.21875 L 260.09375,80.8125 L 260.09375,82.96875 L 261.28125,83.78125 L 263.84375,82.78125 L 267.4375,82.78125 L 269.21875,84.15625 L 275.9375,83.5625 L 280.90625,84.96875 L 283.6875,87.75 L 287.25,88.125 L 290.8125,89.3125 L 295.1875,85.15625 L 300.34375,83.78125 L 303.125,84.15625 L 307.25,83.75 L 306.875,81.59375 L 305.90625,77.625 L 305.5,75.25 L 307.28125,73.25 L 307.28125,70.6875 L 309.84375,67.90625 L 309.375,65.15625 L 307.875,64.75 L 306.125,63 L 301.4375,63 L 298.5,64.5625 L 298.5,63.1875 L 297.75,61.8125 L 295.96875,62.59375 L 293.8125,63.78125 L 295,62.03125 L 294.8125,60.46875 L 292.25,58.6875 L 292.25,60.65625 L 290.5,60.65625 L 286.40625,59.28125 L 284.65625,57.90625 L 282.875,59.09375 L 282.3125,60.65625 L 281.53125,60.84375 L 280.5625,59.875 L 280.5625,57.125 L 283.46875,55.1875 L 282.3125,53.21875 L 279.96875,54.21875 L 278.78125,53.21875 L 273.90625,53.8125 L 271.375,54.78125 L 268.8125,53.8125 L 268.8125,51.875 L 265.3125,50.3125 L 264.34375,47.96875 L 262.96875,48.53125 L 259.25,45.625 L 257.5,45.03125 L 256.125,46.78125 L 253.78125,47.375 L 252.8125,45.21875 L 249.78125,44.5 z \", \"name\" : \"Somme\"}, \"fr-81\" : {\"path\": \"M 270.8125,396.875 L 267.4375,397.0625 L 265.15625,399.34375 L 264.4375,397.75 L 262.84375,398.65625 L 262.6875,398.28125 L 261.78125,399.1875 L 258.96875,400.25 L 256.65625,401.65625 L 250.65625,402.375 L 249.9375,405.375 L 252.25,405.375 L 249.9375,407.5 L 248.875,409.4375 L 245.53125,409.4375 L 247.28125,411.375 L 246.28125,413.03125 L 246.59375,413.15625 L 247.46875,415.78125 L 249.59375,418.28125 L 250.125,418.625 L 250.28125,421.09375 L 252.0625,423.9375 L 253.46875,425.53125 L 253.46875,427.46875 L 252.0625,428 L 253.125,429.59375 L 257.71875,431.53125 L 258.59375,432.78125 L 260.90625,435.59375 L 263.5625,436.3125 L 265.6875,435.9375 L 265.6875,438.4375 L 265.625,439.71875 L 266.78125,439.5625 L 266.5,440.9375 L 270.375,440.9375 L 273.96875,442.0625 L 274.25,438.46875 L 275.90625,438.46875 L 281.96875,439.5625 L 287.78125,439.5625 L 292.1875,438.1875 L 293.3125,434.59375 L 290.28125,431.8125 L 291.09375,429.0625 L 292.75,426.59375 L 295.5,428.5 L 302.6875,426.03125 L 303.8125,423.8125 L 300.15625,421.46875 L 298.5625,421.09375 L 297.5,422.5 L 295.375,423.03125 L 292,421.28125 L 288.46875,416.6875 L 288.46875,414.75 L 286.53125,411.1875 L 286.71875,409.59375 L 285.125,405.53125 L 282.125,404.125 L 280,400.40625 L 274.15625,399.34375 L 270.8125,396.875 z \", \"name\" : \"Tarn\"}, \"fr-82\" : {\"path\": \"M 220.1875,384.6875 L 218.8125,389.15625 L 220.96875,391.5 L 220,395.21875 L 218.8125,396.59375 L 219.625,398.9375 L 215.90625,399.71875 L 212.96875,400.5 L 213.75,403.21875 L 212.28125,403.65625 L 213.15625,404.46875 L 216,404.46875 L 217.40625,403.78125 L 218.65625,404.46875 L 216.34375,405.53125 L 216.34375,407.3125 L 214.21875,408.90625 L 214.21875,411.1875 L 218.125,411.375 L 219.34375,412.625 L 219.34375,415.09375 L 220.78125,416.5 L 219.53125,418.4375 L 220.0625,419.5 L 222.53125,418.4375 L 227.65625,418.4375 L 229.09375,417.5625 L 230.84375,417.5625 L 232.78125,419.875 L 237.21875,418.625 L 238.4375,416.6875 L 236.6875,415.78125 L 237.90625,415.28125 L 238.28125,413.5 L 240.21875,413.6875 L 241.28125,414.90625 L 242.15625,413.5 L 245,412.4375 L 246.28125,413.03125 L 247.28125,411.375 L 245.53125,409.4375 L 248.875,409.4375 L 249.9375,407.5 L 252.25,405.375 L 249.9375,405.375 L 250.65625,402.375 L 256.65625,401.65625 L 258.96875,400.25 L 261.78125,399.1875 L 262.6875,398.28125 L 261.59375,395.46875 L 263.1875,392.28125 L 260.375,392.09375 L 260.03125,387.6875 L 255.78125,389.625 L 252.9375,388.9375 L 251.1875,391.0625 L 248.1875,390.6875 L 247.65625,394.21875 L 246.21875,394.21875 L 245.34375,392.28125 L 244.8125,391.40625 L 243.21875,391.5625 L 240.21875,394.75 L 236.5,394.59375 L 235.96875,392.28125 L 235.96875,390.53125 L 235.625,390.15625 L 234.375,391.5625 L 232.78125,391.5625 L 231.03125,389.625 L 229.4375,389.625 L 228.375,387.5 L 229.78125,385.90625 L 229.625,384.875 L 227.125,384.96875 L 227.4375,385.65625 L 223.125,386.4375 L 220.1875,384.6875 z \", \"name\" : \"Tarn et Garonne\"}, \"fr-83\" : {\"path\": \"M 457.78125,413.1875 L 454.8125,413.3125 L 453.40625,414.75 L 448.09375,414.5625 L 443.5,417.90625 L 440.34375,415.78125 L 435.375,417.375 L 434.5,419.15625 L 430.96875,421.8125 L 424.59375,417.5625 L 419.4375,419.25 L 419.1875,420.625 L 419.28125,420.5625 L 422.46875,422.6875 L 418.21875,425.53125 L 416.46875,429.0625 L 418.59375,430.8125 L 418.40625,434.53125 L 421.78125,437.71875 L 420.875,438.4375 L 417,438.25 L 417,439.65625 L 418.75,440.53125 L 418.75,441.0625 L 417.15625,442.5 L 418.0625,443.5625 L 419.46875,443.5625 L 420.875,444.96875 L 421.0625,446.03125 L 419.28125,447.09375 L 417.875,448.6875 L 417.6875,452.5625 L 418.21875,453.28125 L 421.71875,454.84375 L 422.6875,458.75 L 424.84375,459.15625 L 426.8125,457.78125 L 430.3125,455.625 L 436.375,456.21875 L 436.1875,457.78125 L 434.21875,458.75 L 438.90625,458.96875 L 437.75,457.78125 L 437.34375,455.25 L 439.875,453.5 L 442.8125,454.46875 L 444,454.84375 L 444.96875,456.03125 L 446.34375,455.0625 L 446.71875,452.5 L 448.28125,451.15625 L 452.375,451.15625 L 453.5625,449.375 L 456.28125,450.15625 L 459.40625,448.8125 L 459.40625,443.71875 L 455.3125,443.90625 L 458.4375,441.96875 L 460,439.8125 L 460.40625,436.6875 L 466.0625,435.90625 L 469.21875,432.375 L 467.03125,430.125 L 467.03125,428.875 L 465.96875,427.8125 L 467.375,426.59375 L 467.03125,424.625 L 464.71875,423.75 L 463.5,423.75 L 461.375,421.625 L 461,417.90625 L 458.71875,416.84375 L 456.40625,416.6875 L 455.53125,414.5625 L 457.78125,413.1875 z \", \"name\" : \"Var\"}, \"fr-84\" : {\"path\": \"M 387,381.34375 L 384.25,381.5625 L 382.125,384.875 L 382.6875,388.375 L 386,388.78125 L 385.4375,390.34375 L 382.875,390.53125 L 379.96875,393.46875 L 379.1875,392.5 L 379.75,388.59375 L 378.59375,387.21875 L 373.3125,388 L 372.28125,390.09375 L 372.84375,390.40625 L 376.15625,395.90625 L 376.15625,400.34375 L 381.96875,406.125 L 381.96875,408.625 L 379.71875,409.90625 L 379.875,409.96875 L 386.9375,412.96875 L 389.9375,416.3125 L 391.375,418.28125 L 395.25,420.03125 L 399.84375,419.875 L 407.4375,423.03125 L 411.6875,423.5625 L 417,422.34375 L 419.1875,420.625 L 419.46875,419.15625 L 415.40625,414.5625 L 410.96875,414.5625 L 410.96875,412.96875 L 412.5625,411.1875 L 412.5625,409.25 L 409.03125,407.5 L 408.6875,404.65625 L 410.625,403.78125 L 410.625,401.3125 L 408.5,400.9375 L 408.34375,398.28125 L 408.3125,398.09375 L 406.53125,397.96875 L 403.59375,395.8125 L 402.8125,393.28125 L 397.34375,392.875 L 393.25,392.5 L 392.84375,390.15625 L 394.21875,387.21875 L 391.6875,389.375 L 387.78125,388.96875 L 387,387.59375 L 389.71875,383.90625 L 387,381.34375 z \", \"name\" : \"Vaucluse\"}, \"fr-85\" : {\"path\": \"M 138.53125,229.5625 L 137.40625,231.65625 L 134.1875,231.65625 L 135.46875,232.96875 L 134.5,236.1875 L 131.59375,237.15625 L 130.46875,236.34375 L 130.96875,233.125 L 130.15625,231.34375 L 128.375,231.34375 L 127.09375,232.78125 L 127.71875,237.3125 L 129.1875,239.40625 L 127.71875,241.03125 L 125,240.53125 L 120.96875,239.5625 L 119.84375,236.5 L 117.25,236.1875 L 113.875,234.71875 L 113.0625,232.78125 L 109.375,230.375 L 103.5625,237.875 L 103.375,242.5625 L 109.40625,248.40625 L 109.21875,250.15625 L 110.96875,250.15625 L 114.6875,261.3125 L 118.59375,263.25 L 122.5,267.15625 L 127,267.15625 L 128.75,271.0625 L 133.0625,271.0625 L 135,274 L 139.3125,276.15625 L 139.5,273.40625 L 140.59375,274.4375 L 146.5625,270.8125 L 149.3125,270.625 L 150.46875,273.75 L 154.1875,272.1875 L 157.3125,274.53125 L 159.84375,273.34375 L 162,272.75 L 162.96875,271.59375 L 165.6875,269.84375 L 163.75,267.875 L 162.1875,269.0625 L 162,267.5 L 163.375,264.9375 L 162,262.59375 L 163.15625,261.03125 L 162.5625,255.5625 L 160.625,252.65625 L 162,250.875 L 158.875,247.375 L 160.03125,244.84375 L 155.34375,240.9375 L 155.34375,238.59375 L 153.40625,235.84375 L 153.78125,235.6875 L 151.125,233.4375 L 146.125,233.4375 L 144.5,232.46875 L 142.25,232.15625 L 139.65625,229.71875 L 138.53125,229.5625 z \", \"name\" : \"Vendée\"}, \"fr-86\" : {\"path\": \"M 188.75,225.6875 L 185.03125,229.59375 L 184.09375,231.21875 L 184.40625,236.03125 L 186.09375,235.8125 L 186.3125,237.9375 L 186.96875,241.34375 L 188.03125,243.6875 L 186.75,245.15625 L 187.375,246.21875 L 186.53125,247.71875 L 186.53125,248.34375 L 188.03125,250.0625 L 188.03125,251.125 L 187.375,252.8125 L 185.25,256 L 187.375,256.84375 L 188.03125,258.34375 L 187.15625,260.65625 L 186.96875,261.71875 L 185.6875,263.84375 L 185.6875,265.34375 L 186.53125,265.5625 L 186.53125,270.03125 L 188.03125,271.09375 L 187.375,272.5625 L 187.59375,273.84375 L 189.28125,275.75 L 190.15625,274.46875 L 190.15625,273.40625 L 191.84375,272.5625 L 193.125,273.40625 L 193.125,276.59375 L 191.84375,278.09375 L 190.78125,280.625 L 192.25,282.96875 L 195.25,283.8125 L 194.59375,285.75 L 191.8125,286.21875 L 194.375,289.34375 L 197.78125,289.125 L 200.75,288.0625 L 203.75,289.78125 L 204.8125,288.9375 L 204.59375,286.15625 L 206.28125,284.875 L 207.78125,287.4375 L 209.03125,288.71875 L 212.65625,287.21875 L 214.15625,285.53125 L 217.53125,285.53125 L 219.28125,286.40625 L 219.40625,282.71875 L 218.0625,281.15625 L 219.625,280 L 222.15625,277.0625 L 226.4375,276.875 L 226.4375,274.53125 L 228.59375,272.75 L 233.875,271.78125 L 234.25,268.84375 L 232.125,267.6875 L 230.9375,263.59375 L 227.8125,263.1875 L 225.875,261.25 L 222.15625,258.3125 L 222.9375,255.96875 L 222.9375,252.25 L 219.40625,248.75 L 219.03125,246 L 215.6875,242.5 L 214.53125,237.8125 L 213.15625,237.21875 L 211.59375,235.0625 L 210.03125,236.03125 L 210.4375,238.1875 L 205.34375,239.375 L 199.5,239.375 L 199.6875,237.03125 L 199.6875,233.3125 L 195,231.9375 L 195,229.59375 L 191.28125,228.8125 L 190.5,225.6875 L 188.75,225.6875 z \", \"name\" : \"Vienne\"}, \"fr-87\" : {\"path\": \"M 239.53125,270.8125 L 237.78125,272.5625 L 232.875,272.1875 L 232.3125,272.0625 L 228.59375,272.75 L 226.4375,274.53125 L 226.4375,276.875 L 222.15625,277.0625 L 219.625,280 L 218.0625,281.15625 L 219.40625,282.71875 L 219.21875,288 L 218.25,289.75 L 219.8125,291.5 L 222.53125,291.71875 L 223.125,294.4375 L 223.3125,296.1875 L 219.8125,296.96875 L 218.0625,297.5625 L 218.4375,302.4375 L 216.09375,304 L 214.125,304.59375 L 213.15625,307.34375 L 211.59375,307.53125 L 210.9375,310.5 L 215.5,310.65625 L 216.5,312.59375 L 215.6875,314.75 L 217.46875,317.09375 L 218.8125,316.71875 L 220.1875,314.75 L 226.4375,315.34375 L 227.4375,319.25 L 231.71875,319.84375 L 232.6875,321.1875 L 229.75,322.5625 L 231.125,323.53125 L 235.25,324.125 L 235.5625,324.90625 L 236.65625,322.6875 L 239,323.5625 L 241.5625,320.375 L 243.03125,320.5625 L 244.3125,318.4375 L 248.125,318.875 L 249.625,317.375 L 251.53125,317.375 L 253.03125,314.625 L 255.34375,314.40625 L 256.84375,311.875 L 258.96875,312.5 L 260.46875,312.5 L 261.46875,310.78125 L 260.46875,310.15625 L 260.03125,307.625 L 261.53125,307.625 L 261.53125,306.5625 L 258.96875,304.84375 L 256.21875,303.59375 L 256.625,301.03125 L 255.78125,301.03125 L 254.71875,302.53125 L 251.3125,302.71875 L 249.40625,302.53125 L 249.40625,300.59375 L 251.75,298.6875 L 250.25,296.78125 L 246.65625,297.84375 L 247.28125,289.78125 L 245.59375,288.0625 L 243.875,283.8125 L 241.34375,283.1875 L 240.90625,280.84375 L 243.25,276.1875 L 243.1875,273.3125 L 242.65625,273.9375 L 239.53125,270.8125 z \", \"name\" : \"Haute Vienne\"}, \"fr-88\" : {\"path\": \"M 459,145.9375 L 457,146.375 L 453.9375,147.53125 L 452.40625,149.4375 L 450.6875,150.59375 L 447.40625,152.125 L 446.46875,151.9375 L 444.15625,151.34375 L 441.875,151.15625 L 441.09375,148.65625 L 439.5625,149.25 L 439.375,151.9375 L 438.21875,150.78125 L 436.125,152.3125 L 434.03125,153.0625 L 431.53125,152.875 L 429.8125,153.46875 L 427.90625,152.3125 L 426.75,153.25 L 423.875,153.25 L 422.53125,155.75 L 416.21875,156.125 L 414.875,154.40625 L 412.78125,154.03125 L 412.96875,153.0625 L 414.3125,152.125 L 413.15625,151.71875 L 412.96875,148.65625 L 410.09375,148.46875 L 408.40625,149 L 407.21875,150.59375 L 404.15625,151.53125 L 404.15625,150.40625 L 403.21875,150.40625 L 403.21875,151.71875 L 399.375,152.5 L 399.375,154.21875 L 395.9375,154.65625 L 394.625,155.96875 L 395.96875,157.90625 L 399.09375,158.125 L 401.84375,161.8125 L 404.1875,161.8125 L 404.75,164.375 L 407.3125,164.75 L 407.875,166.5 L 406.125,167.6875 L 404.96875,172.96875 L 410.4375,175.6875 L 410.4375,179.78125 L 412.5625,179 L 414.34375,180.40625 L 415.6875,179.59375 L 414.9375,178.4375 L 415.90625,177.84375 L 417.25,179.40625 L 419.21875,178.03125 L 419.8125,176.09375 L 423.5,175.5 L 424.5,176.28125 L 424.3125,178.4375 L 426.84375,180.375 L 428.40625,180.1875 L 430.15625,178.8125 L 434.25,178.8125 L 437.1875,182.125 L 438.15625,182.125 L 439.71875,181.15625 L 439.9375,180 L 441.5,179.21875 L 443.25,180.375 L 445,182.34375 L 451.15625,185.59375 L 453.59375,183.5 L 453.78125,175.875 L 457.125,172.96875 L 459.0625,168.46875 L 458.46875,165.53125 L 460.8125,160.84375 L 462.96875,155.96875 L 459.25,155 L 458.46875,149.71875 L 459.25,146.1875 L 459,145.9375 z \", \"name\" : \"Vosges\"}, \"fr-89\" : {\"path\": \"M 318.4375,157.34375 L 316.6875,158.6875 L 309.0625,158.3125 L 305.5625,160.0625 L 304.1875,163 L 305.75,164.75 L 303.40625,167.5 L 301.625,169.625 L 305.15625,172.96875 L 306.125,176.09375 L 308.6875,178.8125 L 308.6875,182.34375 L 303.59375,186.625 L 305.34375,188.59375 L 304.96875,191.5 L 302.21875,193.46875 L 298.3125,193.46875 L 298.90625,195.625 L 301.4375,199.125 L 302.03125,202.25 L 302.625,204.40625 L 301.46875,204.75 L 303.9375,205.3125 L 305.78125,205.3125 L 306.75,203.78125 L 308,203.78125 L 309.40625,205.03125 L 309.125,206.59375 L 310.40625,207.4375 L 312.21875,207.4375 L 314.75,209.125 L 315.875,208.5625 L 317,209.53125 L 318.125,209.25 L 320.0625,208 L 321.90625,208.5625 L 323.15625,208.28125 L 323.15625,204.78125 L 323.84375,204.90625 L 324.28125,206.71875 L 326.53125,208.125 L 326.53125,210.25 L 329.75,210.375 L 333.96875,214.3125 L 336.625,214.4375 L 336.46875,213.1875 L 337.59375,211.5 L 338.59375,212.75 L 337.75,214.15625 L 338.15625,215.4375 L 339.6875,214.4375 L 341.53125,214.4375 L 341.375,217.25 L 343.0625,218.375 L 344.34375,217.8125 L 347.46875,215.6875 L 347.28125,215.28125 L 345.4375,214.15625 L 345.3125,212.1875 L 347.28125,211.21875 L 348.125,210.09375 L 347.5625,209.125 L 347.5625,206.875 L 349.09375,204.625 L 351.34375,199.84375 L 351.75,197.75 L 353.15625,197.1875 L 353.3125,196.78125 L 352.59375,196.21875 L 352.59375,194.53125 L 354.84375,192.84375 L 355.40625,190.03125 L 354.4375,188.375 L 352.875,188.375 L 352.46875,187.9375 L 352.46875,185.5625 L 354.4375,184.15625 L 354.28125,182.75 L 354,181.34375 L 353,183.5 L 351.625,183.3125 L 350.46875,181.15625 L 346.5625,183.125 L 338.75,182.71875 L 337.78125,180.5625 L 335.625,177.65625 L 335.25,174.125 L 332.125,170.40625 L 330.15625,171.78125 L 326.625,169.0625 L 327.21875,163.78125 L 322.15625,158.5 L 319.8125,158.5 L 318.4375,157.34375 z \", \"name\" : \"Yonne\"}, \"fr-90\" : {\"path\": \"M 451.4375,186.03125 L 449.625,186.96875 L 448.09375,188.09375 L 448.09375,190.59375 L 448.9375,193.5625 L 448.9375,195.5 L 448.46875,198.625 L 447.40625,199.71875 L 459.4375,205.15625 L 460.1875,204.28125 L 462.78125,203.875 L 461.8125,199.71875 L 461.21875,197.5625 L 458.46875,197.96875 L 458.09375,195.625 L 459.0625,193.84375 L 459.25,191.5 L 458.6875,190.15625 L 455.15625,187.40625 L 452.03125,187.21875 L 451.4375,186.03125 z \", \"name\" : \"Territoire de Belfort\"}, \"fr-91\" : {\"path\": \"M 274.21875,136.40625 L 272.46875,137.1875 L 270.5625,137.9375 L 270.1875,140.0625 L 267.3125,141.40625 L 266.9375,143.5 L 268.28125,145.8125 L 266.34375,148.46875 L 263.5,148.46875 L 264.625,150.1875 L 263.28125,151.71875 L 262.8125,154.8125 L 263.75,155 L 264.125,157.53125 L 264.53125,158.125 L 264.9375,163.375 L 271.1875,162.8125 L 273.71875,160.46875 L 275.875,162.21875 L 281.125,162.59375 L 281.875,163.71875 L 281.875,159.78125 L 286.25,156.90625 L 284.9375,155.1875 L 285.5,150 L 286.25,148.875 L 285.3125,143.6875 L 287.03125,142.34375 L 286.6875,139.90625 L 284.53125,138.90625 L 280.90625,138.90625 L 278.8125,137.75 L 277.28125,138.53125 L 274.21875,136.40625 z \", \"name\" : \"Essonne\"}, \"fr-92\" : {\"path\": \"M 277.3125,125.78125 L 273.8125,127.65625 L 273.4375,127.71875 L 271.71875,131.46875 L 272.8125,134.4375 L 274.5625,136.40625 L 274.5625,136.625 L 277.28125,138.53125 L 277.9375,138.1875 L 277.4375,137.25 L 277.9375,135.78125 L 277.625,135.25 L 277.96875,134.03125 L 277.90625,134.03125 L 276,133.0625 L 274.4375,132.625 L 274.21875,131.9375 L 274.1875,131.34375 L 275.125,130.28125 L 276.15625,130.21875 L 276.625,129.59375 L 277.75,129.09375 L 277.375,128.1875 L 277.90625,128.09375 L 278.3125,127.21875 L 277.90625,126.59375 L 277.46875,126.5 L 277.3125,125.78125 z \", \"name\" : \"Hauts de Seine\"}, \"fr-93\" : {\"path\": \"M 287.28125,122.8125 L 285.4375,124.125 L 282.5625,125.4375 L 277.3125,125.78125 L 277.46875,126.5 L 277.90625,126.59375 L 278.3125,127.21875 L 277.90625,128.09375 L 277.375,128.1875 L 277.75,129.09375 L 280.28125,129.0625 L 281.09375,130.3125 L 281.25,132.0625 L 282.125,131.9375 L 282.9375,131.28125 L 284.15625,131.34375 L 285.6875,132.21875 L 286.5625,133.1875 L 286.96875,133.375 L 287.21875,133.84375 L 288.1875,134.09375 L 288.1875,131.25 L 287.03125,124.375 L 287.28125,122.8125 z \", \"name\" : \"Seine Saint-Denis\"}, \"fr-94\" : {\"path\": \"M 282.9375,131.28125 L 282.125,131.9375 L 281.3125,132.0625 L 281.25,132.5 L 281.09375,132.90625 L 281.5,132.90625 L 281.71875,132.71875 L 281.625,132.40625 L 282.875,132.34375 L 283.1875,132.46875 L 283.1875,133.125 L 282.875,133.78125 L 281.0625,133.53125 L 280.78125,133.28125 L 279.9375,133.875 L 279.125,134.09375 L 277.96875,134.03125 L 277.625,135.25 L 277.9375,135.78125 L 277.4375,137.25 L 277.9375,138.1875 L 278.8125,137.75 L 280.90625,138.90625 L 284.53125,138.90625 L 286.6875,139.90625 L 286.65625,139.6875 L 288.1875,135.84375 L 288.1875,134.09375 L 287.21875,133.84375 L 286.96875,133.375 L 286.5625,133.1875 L 285.6875,132.21875 L 284.15625,131.34375 L 282.9375,131.28125 z \", \"name\" : \"Val de Marne\"}, \"fr-95\" : {\"path\": \"M 255.5625,109.6875 L 254,111.625 L 252.8125,115.9375 L 251.5,118.15625 L 256.25,120.28125 L 259.875,119.625 L 264.375,122.5 L 269.1875,122.71875 L 272.59375,124.78125 L 273.46875,127.65625 L 273.4375,127.71875 L 273.8125,127.65625 L 277.3125,125.78125 L 282.5625,125.4375 L 285.4375,124.125 L 287.28125,122.8125 L 287.875,118.96875 L 286.59375,117.6875 L 282.3125,115.15625 L 278.1875,113 L 276.0625,113.96875 L 273.71875,114.5625 L 272.15625,113.375 L 269.03125,111.4375 L 266.5,113.375 L 262.78125,113.78125 L 257.5,113.375 L 256.3125,111.4375 L 255.5625,109.6875 z \", \"name\" : \"Val d'Oise\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.germany.js",
    "content": "/** Add Germany Map Data Points */\njQuery.fn.vectorMap('addMap', 'germany_en', {\"width\":592,\"height\":801,\"paths\":{\"th\":{\"path\":\"m312.19,352.19c-2.73,0.22 -2.22,4.11 -3.64,5.97 -1.01,2.7 -4.71,2.26 -7.13,2.91 -2.52,0.84 -2.65,-2.93 -5,-3.11 -2.02,-1.67 -5.36,0.2 -4.98,2.55 -0.62,4.82 -6.22,6.91 -9.72,9.65 -2.98,3.28 -7.8,2.07 -11.1,4.73 -2.55,1.59 -5.81,3.14 -7.87,5.03 0.64,3.74 1.96,8.43 6.44,8.84 3.41,0.33 2.07,4.91 5.71,5.17 2.12,1.11 4.61,1.57 6.04,3.67 2.61,-0.18 1.95,2.83 0.13,3.41 -0.75,1.55 1.21,2.98 -0.06,4.88 -2.65,1.33 -1.59,-4.91 -4.58,-2.96 -2.15,1.14 2.24,4.28 1.18,6.62 -0.73,2.87 3.35,2.38 3.93,4.97 0.22,2.4 -1.82,4.2 -4.4,4.04 -1.89,0.05 -3.04,-2.14 -5.19,-1.69 -2.29,-1.13 -3.6,1.4 -2.29,3.19 0.92,3.27 2.06,6.86 1.64,10.24 -1.04,2.07 -1.35,6.09 -4.56,5.07 -2.5,-0.54 -3.05,2.78 -2.17,4.43 0.33,2.11 -1.94,1.58 -0.64,3.71 0.2,3.37 -2.96,5.74 -4.05,8.57 -1.46,3 3.1,3.73 4.61,2.61 -1.8,-1.67 -0.95,-4.04 1.83,-4.18 2.21,-0.46 5.52,-0.43 5.9,2.47 2.29,2.61 -2.68,2.96 -1.96,5.59 0.5,1.86 -0.79,8.31 0.95,7 1.72,-3.38 5.8,-2.18 8.88,-2.88 2.69,0.85 3.11,5.24 6.43,5.5 3.89,0.66 4.77,4.88 6.09,7.93 -0.55,3.14 2.45,3.82 4.54,1.98 0.31,5.02 5.89,6.45 10.06,7.19 -0.2,3.63 -1.27,7.43 0.53,10.84 2.35,0.1 5.18,2.71 7.07,1.85 0.03,-1.3 -1.32,-4.82 1.27,-4.26 2.07,-0.06 5.3,2.5 6.66,0.25 0.29,-2.71 -3.43,-1.58 -4.54,-3.52 -1.94,-1.64 -5.47,-2.54 -4.67,-5.79 -0.91,-3.55 3.89,-3.37 6.02,-4.77 2.87,-1.54 6.27,-0.65 9.38,-0.79 1.61,1.84 2.4,4.9 5.49,4.49 2.33,1.02 3.21,-1.38 4.71,-2.1 2.52,-0.39 4.79,2.85 4.64,5.17 -2.32,0.34 -2,2.87 -0.04,3.79 1.25,1.09 4.62,-1.62 5.78,-2.97 1.07,-2.95 1.98,-5.92 0.84,-9.01 0.33,-2.69 -1.49,-4.1 -2.06,-6.05 -0.35,-1.26 0.15,-3.52 1.89,-2.72 2.51,-0.54 3.16,-3.11 5.03,-4.31 2.41,-0.31 6.41,-0.25 6.75,2.81 -1.09,1.47 -1.71,2.75 -1.31,4.94 2.04,1.91 4.67,0.65 4.88,4.5 0.54,1.96 3.79,3.19 4.05,0.56 1.06,-1.74 3.34,-0.66 4.25,0.63 6.13,-1.07 12.67,-0.94 18.25,-3.97 -1.68,-0.65 -2.19,-2.46 -0.38,-3.31 1.4,-0.73 5.24,-2.7 2.32,-4.13 -1.1,-2.24 -4.24,-0.26 -4.55,-3.08 -1.3,-2.44 2.29,-4.28 3.11,-6.33 2.98,-0.71 2.97,-4.68 5.91,-5.31 1.95,1.54 1.58,4.54 1.16,6.72 1.66,-0.64 6.6,0.71 6.33,-0.74 -3.05,-0.17 -0.61,-3 1.2,-3.1 2.57,-1.22 5.33,-2.23 7.87,-3.14 1.72,-1.51 4.46,-4.54 0.25,-4.48 -1.74,-1.64 -3.31,-4.12 -3.69,-6.5 0.38,-2.82 0.28,-5.87 1.72,-8.41 0.89,2.58 5.82,0.77 5.81,-1.09 0.71,-1.83 4.18,-2.99 5.41,-0.97 2.56,-0.68 0.59,-4.69 3.44,-5.44 3.25,-1.87 7.85,-0.32 10.53,-2.97 -2.57,-1.55 -0.79,-6.34 -4.47,-6.16 -2.74,-0.84 -6.28,-2.6 -5.42,-6.03 0.8,-2.88 -3.5,-2.46 -5.15,-3.47 -2.87,-0.81 -6.3,-2.89 -8.61,0.02 -2.54,2.1 0.01,3.58 1.21,5.21 -0.17,3.21 -2.39,6.03 -3.68,8.9 -1.08,1.71 -2.42,1.35 -2.66,-0.64 -2.24,-4.02 -1.09,1.94 -3.66,-0.66 -2.71,-1.39 -5.95,-1.32 -8.59,0.19 -0.02,-4.6 -5.04,-6.77 -8.31,-9 -2.72,-0.06 -5.6,1.79 -8.33,0.1 -2.65,-0.52 -5.05,-1.27 -4.7,-4.45 -2.02,-1.11 -5.86,-2.21 -7.53,-1.16 -1.29,1.98 -3.84,1.06 -5.84,1.31 -1.81,-1.01 -2.04,-3.39 -2.5,-5.41 3.14,0.3 2.23,-3.59 0.51,-4.83 -1.37,-2.03 -4.15,0.89 -5.53,-1.6 -1.69,-0.96 1.02,-5.32 2.36,-2.94 1.62,-1.63 2.76,-3.73 4,-5.66 -0.78,-1.58 -4.12,-2.02 -3.47,-4.09 -2.15,-0.17 -2.01,-2.77 -1.75,-4.31 -4.91,-2.77 -10.54,-0.91 -15.84,-1.69 -2.69,-0.42 -5.41,-2.8 -8.03,-1.28 -1.99,0.45 -4.28,-1.52 -3.68,-3.5 0.86,-2.86 -0.76,-4.88 -2.35,-7.1 -1.55,-2.64 -4.98,-6.28 -2.16,-9.19 -2.47,-3.43 -7.17,-3.03 -10.89,-3.21 -0.41,0.09 -0.82,0.18 -1.23,0.27z m95.09,106.63c0.36,0.47 0.77,-0.65 0,0z\",\"name\":\"Thüringen\"},\"sh\":{\"path\":\"m173.41,0.78c-1.96,2.02 -2.32,5.26 -3.72,7.72 0.61,-2.46 2.87,-3.44 4.94,-4.31 1.37,-2.31 1.87,-2.9 -1.22,-3.41z m-4.63,9.69c-1.37,3.14 -2.78,7.11 -2.63,10.16 1.42,-1.81 3.12,-2.33 4.66,-0.67 1.41,1.35 2.9,1.87 4.52,0.27 2.61,-1.53 -0.74,-0.41 -1.92,-1.16 -2.06,-1.81 -4.59,-3.55 -3.89,-6.71 -0.29,-0.68 0.25,-4.89 -0.73,-1.88z m16.78,8.5c-1.27,2.96 0.71,4.89 2.59,6.89 3.39,3 2.55,7.98 4.79,11.67 0.62,3.55 5.38,3.23 6.46,6.57 3.09,5.18 8.01,9.55 9.53,15.49 -0.32,3.65 -4.55,4.93 -6.72,7.41 -1.75,1.07 -3.73,2 -5.62,0.78 -2.44,0.59 -7.26,-0.45 -7.37,2.95 0.9,2.44 -1.97,3.88 -3.95,4.18 -1.94,-2.13 -2.52,-1.01 -2.77,1.45 -0.87,2.9 3.21,3.7 4.93,4.64 1.92,-3.3 6.38,-1.94 9.56,-2.06 2.21,2.21 1.18,5.9 0.57,8.61 -1.14,2.05 -2.44,4.23 -0.74,6.43 0.5,2.36 2.45,2.12 4.01,1.08 3.24,-0.45 3.19,4.26 4.78,6.16 2.07,2.16 -0.11,6.53 -3.11,5.16 -1.14,-1.75 -5.79,-1.46 -5.26,0.73 2.63,2.93 2.85,7.1 5.04,10.2 1.56,1.12 3.1,3.53 5.09,1.5 1.43,0.34 0.36,3.67 3.4,2.47 5.03,0.4 10.67,-0.76 14.8,2.92 4.21,3.5 4.64,9.55 8.23,13.45 3.79,1.81 5.25,6.01 5.59,9.84 1.82,3.22 5.7,4.78 8.7,6.74 2.98,1.76 2.45,-2.04 3.3,-3.87 0.32,-3.07 2.7,-3.68 2.95,-0.51 1.97,4.21 4.12,0.09 5.74,-1.98 1.13,-1.81 1.09,-3.61 3.84,-2.85 2.75,1.63 4.73,-1.94 6.94,-3.16 -0.04,-2.48 1.02,-3.47 3.73,-4.47 1.51,-1.18 4,-1.93 4.95,0.16 -0.92,3.02 -1.41,6.74 1.26,9.04 1.1,1.47 -0.59,3.76 -1.58,5.02 -3.72,1.55 -2.94,7.3 0.6,8.57 3.05,0.71 1.81,2.28 4.18,4.34 1.9,2.3 3.7,4.33 6.71,5.17 4.24,1.47 7.8,5.01 12.4,5.13 1.57,-2.96 0.71,-7.47 3.24,-9.94 1.76,-0.99 3.85,1.15 5.23,-1.34 4.78,-3.66 7.65,-9.11 11.5,-13.72 0.07,-2.89 2.79,-4.69 1.09,-7.69 -1.21,-2.36 -3.12,-1.39 -5.13,-1.38 -2.37,-1.11 -4.33,-3.37 -5.88,-5.25 0.57,-2.78 0.94,-5.55 -0.72,-8.01 -1.68,-4.33 3.4,-6.71 6.26,-8.75 2.76,0.39 4.62,-1.55 2.8,-4.28 -2.57,0.04 -0.18,-3.45 -2.47,-3.84 -2.6,1.03 -5.44,-0.16 -6.16,-2.94 -1.95,-2.52 -0.1,-5.31 2.05,-6.91 1.09,-2.74 3.32,0.44 5.2,-0.9 2.94,-4.13 6.93,-7.19 11.06,-10.05 2.63,-1.56 0.21,-5.06 0.5,-7.57 -0.21,-3.63 -1.2,-7.39 -0.01,-10.84 0.18,-2.96 -5.24,-0.47 -7.49,-1.07 -5.13,1.62 -7.3,9.04 -13.4,8.34 -3.13,0.69 -4.64,-2.86 -6.1,-4.84 -4.97,-2.87 -10.19,-5.54 -15.47,-7.76 -2.99,-1.52 -6.08,0.55 -8.5,2.13 -0.97,2.39 -2.38,4.59 -2.88,7.13 -1.56,-1.44 -3.01,-3.67 -0.84,-5.3 1.62,-1.77 -1.68,-4.84 0.9,-6.58 0.02,-1.27 -2.39,-3.21 -3.97,-2.94 -4.31,0.8 -8.65,1.68 -12.59,3.47 -2.43,1.23 -4.15,-0.86 -4.81,-2.94 1.24,-1.68 2.97,0.32 4.34,-1.22 3.92,-1.6 8.22,-4.79 7.48,-9.56 -0.08,-4.17 0.91,-8.43 -1.14,-12.32 -1.21,-3.12 -1.73,-8.59 -5.28,-9.18 -0.59,1.71 -1.3,5.52 -3.94,3.91 -3.94,-2.44 -5.62,-7.87 -10.62,-8.75 -2.4,-0.95 -5.92,-1.49 -2.94,-4.34 -2.83,-1.32 -4.46,2.91 -6.75,4.06 -1.81,0.77 -3.7,1.77 -5.55,1.1 -2.17,-0.1 -2.78,3.34 -5.32,2.53 -2.44,-0.17 -5.39,0.15 -5.47,-3.04 1.26,-2.25 -1.79,-2.35 -3.37,-3.29 -2.69,-1.82 -6.3,0.87 -8.88,-1.52 -3,-2.97 -8.01,-2.63 -12.09,-2.77 -2.73,-0.05 -5.94,1.35 -8.19,-0.63 -2.53,-0.79 -2.34,1.14 -3.28,2.91z M165.38,30.69c0.26,2.81 0.4,-8.09 0.17,-2.47 -0.06,0.82 -0.12,1.65 -0.17,2.47z m13.5,1.44c-2.38,0.11 -5.93,-0.19 -6.48,2.95 -0.84,2.31 2.84,2.19 4.01,3.33 2.08,0.12 5.59,1.6 6.02,-1.46 1.83,-2.49 -0.07,-5.86 -3.55,-4.82z m-11.97,6.41c-1.92,2.44 0.88,5.14 2.25,6.97 3.61,0.13 0.82,-1.45 -0.03,-3.16 -0.91,-0.75 -0.95,-5.89 -2.22,-3.81z M181.53,44c-3.16,2.07 3.2,-1.05 4.68,-0.94 3.57,-2.86 -4.04,0.86 -4.68,0.94z m-1.31,6.22c-3.19,-0.54 3.33,2.8 0.63,-0.13 -0.17,-0.12 -0.42,0.08 -0.63,0.13z m8.44,2.63c-1.5,0.95 -5.02,0.69 -5.3,2.69 0.04,2.05 2.12,3.65 4.01,2.44 0.45,-0.74 3.48,-5.42 1.28,-5.13z m142.28,2.25c-2.22,2.09 -3.42,5.93 -2.84,8.5 1.81,-1.93 6.45,-1.17 5.53,2.13 0.75,2.01 5.23,1.5 7.53,1.68 3.9,0.79 4.95,-0.34 2.64,-3.56 -1.78,-3.59 -4.09,-7.7 -8.61,-7.85 -1.38,-0.32 -3.03,-0.37 -4.25,-0.9z m-134.34,2.94c-1.42,2.56 1.08,4.09 3.5,3.69 1.95,-0.37 3.87,-2.9 3.63,-4.91 -2.37,-0.51 -4.91,-1.04 -6.76,0.98l-0.36,0.24z M140.06,88.88c-0.28,2.81 2.92,0.39 0,0z m48.13,13.38c-1.61,1.32 0.69,2.85 0.06,-0.03l-0.06,0.03z\",\"name\":\"Schleswig-Holstein\"},\"st\":{\"path\":\"m367.5,207.72c-2.53,0.49 -2.68,6.11 -5.69,3.88 -1.54,-0.27 -2,4.74 -0.62,6.28 -1.83,0.03 -4.69,1.23 -5.84,3.45 -2.16,1.75 -5.06,2.95 -7.73,3.81 -1.55,-0.32 -3.98,0.25 -4.38,-1.66 -3.96,-2.32 -9.18,-1.22 -13.69,-1.78 -0.82,1.11 0.07,3.08 -1.73,3.89 -1.82,3.69 -6.1,1.61 -9.28,2.54 -2.64,-0.11 -4.45,1.7 -3.62,4.38 -0.45,3.07 1.59,5.83 2.38,8.76 4.58,2.95 6.91,8.32 9.22,13.03 -1.02,4.14 2.73,7.03 5,9.88 -2.35,-0.75 -6.67,0.93 -4.41,3.78 2.13,2.7 4,5.66 7.03,7.25 2.19,1.61 0.12,4.97 -2.22,4.59 -1.88,2.15 -0.66,5.73 1.52,7.3 1.12,1.37 4.12,3.9 1.64,5.39 -1.82,-0.07 -4.08,1.44 -3.31,3.44 0.85,1.22 3.42,-0.32 2.88,2 0.05,3.3 -3.89,4.53 -5.42,6.71 -0.9,2.3 0.67,6.76 -2.83,4.48 -2.5,-0.5 -4.36,0.86 -6.64,1.31 -3.5,0.14 -7.17,-0.75 -10.56,0.56 0.56,2.46 -2.44,4.29 -4.71,3.94 -2.29,1.2 4.79,4.03 4.2,5.21 -3.3,0.45 -2.03,3.05 0.01,3.98 1.13,2.32 -0.87,4.55 -2.86,5.36 -2.94,1.53 -1.17,5.3 -1.3,7.86 2.06,2.6 4.65,5.37 5.72,8.78 -0.64,2.04 0.85,6.26 3.56,4.75 3.65,0.5 8.21,-0.2 10.69,3.16 4.64,-2.48 0.38,1.08 -0.35,3.49 0.67,3.87 3.9,7.06 5.79,10.42 0.02,2.22 -1.14,5.56 1.78,6.09 2.2,-1.04 4.22,-0.48 6.44,0.45 5.84,2.46 12.54,-0.89 18.17,2.38 2.32,0.62 -0.45,4.34 2.28,4.54 1.79,0.31 -0.33,2.19 2.35,3 1.69,0.92 2.02,2.61 0.5,3.94 -1.45,1.35 -2.21,4.99 -4.56,4.59 -2.63,-0.91 0.09,3.99 2.28,1.66 2.83,0.66 5.62,4.8 3.25,7.41 -2.57,1.08 1.05,5.18 3.56,3.71 1.96,-0.79 2.91,-2.94 5.65,-1.43 2.6,0.08 6.05,0.91 5.78,4.15 1.33,1.52 4.58,2.03 6.72,2.37 2.49,-0.44 5.14,-1.91 7.2,0.43 2.77,1.74 6.17,3.82 6.94,7.21 2.79,-1.13 5.73,-0.73 8.41,0.53 1.23,-2 2.73,-1.49 3.69,0.66 0.59,3.07 2,-0.72 2.48,-1.83 0.83,-2.27 3.92,-5.75 0.2,-7.01 -1.99,-2.12 2.54,-4.35 -0.47,-5.52 -3.54,-1.32 0.06,-3.71 -3.77,-3.68 -1.13,-1.82 -0.14,-5.31 -0.45,-7.77 0.09,-3.62 -2.36,-6.17 -3.27,-9.5 -2.24,-2.8 3.78,-1.95 2.18,-4.77 -0.27,-3.83 -1.97,-7.24 -2.66,-10.91 1.12,-2.57 2.7,-5.07 2.75,-7.88 2.68,-2.78 6.09,-4.94 9.75,-6.06 4.81,0.08 9.58,-1.34 13.94,-3.25 0.29,-3.17 3.92,1.99 5.64,-1.8 0.58,-1.59 1.27,-4.54 3.8,-3.39 2.22,1.16 4.46,1.71 7.03,1.3 4.79,-0.31 9.85,0.27 14.45,-1.01 2.63,-2.16 7.03,-3.34 7.55,-7.13 -2.51,-3.21 -2.57,-7.84 -4.05,-11.66 -1.56,-2.32 0.46,-2.56 1.11,-3.49 -1.21,-1.69 -2.84,1.88 -4.93,0.87 -3.35,0.33 -4.21,-4.14 -7.34,-4.73 -1.95,-1.81 -4.21,-0.39 -6.46,-1.61 -1.95,-1.37 -5.09,-1.98 -5.86,-4.32 -2.25,-0.71 -4.5,-3.34 -6.75,-2.88 0.04,3.1 -4.02,3.62 -6.31,2.65 -6.29,-1.76 -13.04,-4.4 -16.59,-10.25 -1.82,-2.88 -4.27,-5.73 -5.88,-8.53 1.69,-2.65 1.92,-5.52 1.61,-8.56 0.08,-3.49 1.94,-6.54 3.57,-9.44 -0.44,-3.76 -2.35,-8 0.31,-11.34 1.69,-3.42 -2.77,-5.17 -4.84,-4.84 -0.77,1.84 -4.03,2.12 -4.73,-0.07 -3.16,-2.02 -0.66,-5.45 -0.28,-8.33 0.25,-2.72 1.68,-3.75 3.82,-4.6 0.52,-2.45 0.69,-5 -1.29,-6.86 -2,-2.13 -0.72,-5.29 -0.24,-7.76 2.19,-2.1 2.75,-4.3 1.28,-7.4 -0.37,-2.87 -3.52,-1.27 -5.2,-0.49 -2.2,0.23 -1.98,-4.35 -5.66,-2.08 -3.04,0.71 -6,0.64 -8.83,-0.79 -2.04,-1.1 -6.47,-1.05 -6.16,-4.18 0.48,-0.96 2.72,-2.17 0.45,-2.84 -2.36,-0.92 -4.97,-4.41 -7.35,-1.78 -2.26,0.12 -3.78,-2.34 -5.44,-3.56 -1.33,-1.14 2.25,-2.99 -0.03,-2.78z m-35.72,88.19c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Sachsen-Anhalt\"},\"sn\":{\"path\":\"m438.91,347.22c-0.71,1.7 -1.23,3.74 -3.22,4.5 -2.58,1.63 -3.52,-1.1 -5.94,1.53 -4.3,1.22 -8.55,2.77 -13.09,2.53 -3.01,1.74 -7.34,3.17 -8.45,6.62 0.03,3.26 -3.77,5.91 -1.75,9.19 1.33,3.2 1.78,6.8 2.19,10.31 -4.06,0.29 -2.18,3.87 -0.74,6.17 2.24,3.72 1.36,8.42 1.53,12.58 2.6,-0.28 2.73,2.06 3.18,3.2 1.51,2.44 3.44,1.13 5.41,0.39 3.7,1.5 8.18,1.88 11.41,4.16 0.74,1.94 -0.81,4.85 2,5.77 1.72,1.99 6.37,0.62 6.03,4.01 -0.35,2.66 3.75,3.98 1.22,5.97 -3.58,1.98 -8.34,0.37 -11.41,3.34 -0.07,2.05 -0.66,4.73 -3.19,4.69 -0.84,-2.38 -4.84,-0.74 -3.91,1.56 -2.16,0.55 -4.73,2.38 -6.75,1.41 -0.26,3.26 -1.99,6.93 0.66,9.67 0.13,3.51 6.2,1.64 4.46,5.11 -1.54,2.13 -3.26,4.42 -6.11,4.51 -2.19,1.15 -4.93,1.82 -6.85,3.17 1.14,0.4 3.92,-0.58 2.97,1.81 -1.3,0.56 -2.71,1.18 -4.15,1.04 -1.87,-0.95 -6.83,1.68 -5.71,-1.56 0.5,-1.28 0.39,-7.08 -1.74,-3.97 -0.56,2.99 -4.53,3.58 -5.56,6.44 -1.97,1.1 -1.24,4.78 1.19,3.64 1.33,1.03 5.21,3.22 2.79,5.13 -0.59,1.68 -5.69,2.39 -2.69,4 2.14,0.67 3.79,2.61 5.05,4.37 -0.72,2.68 -0.54,4.28 2.54,4.44 2.89,0.5 5.02,2.48 7.96,1.72 3.8,-1.14 4.85,3.42 6.85,5.61 1.23,2.16 4.76,5.08 2.59,7.58 -0.49,1.72 3.93,3.14 3.09,0.38 -2.48,-2.46 -0.08,-6.44 1.28,-8.97 2.86,-4.57 6.53,-8.74 9.94,-12.84 4.56,-2.02 9.99,-0.84 14.06,-4.03 2.14,-0.66 4.2,-3.73 6.38,-3.05 2.63,1.52 5.07,3.45 7.78,4.83 2.07,-1.12 5.11,-3.24 4.13,-5.91 0.2,-2.04 -0.2,-5.69 2.84,-5.24 2.59,-0.29 5.2,-0.72 7.63,0.55 2.91,-0.54 1.72,-4.96 3.88,-6.45 2.35,-2.97 5.63,-5.26 8.68,-7.26 2.67,-0.81 5.51,3.8 7.01,0.39 1.65,-1.64 3.72,-4.3 2.58,-6.74 3.93,-2.17 7.47,-5.47 12.25,-5.22 2.33,-0.49 4.94,-0.78 7,0.62 2.41,-0.15 5.15,-2.09 4.01,-4.81 -1.95,-3.53 3.27,-1.43 5.18,-3.05 2.77,-1.08 6.09,-1.25 7.96,-3.69 5.86,-2.9 11.49,-6.39 17.78,-8.32 1.88,-3.11 -0.76,-3.48 -3.2,-3.83 -2.51,-0.45 -4.28,-2.72 -5.9,-4.48 1.17,-2.33 1.01,-5.72 3,-7.44 2.01,-0.54 2.32,2.64 4.53,2.3 2.11,1.26 6.52,1.34 7.5,-0.58 -0.17,-3.74 3.64,0.67 5,1.7 3.7,2.16 4.3,6.67 5.45,10.42 1.49,2.62 -2.09,6.06 2.42,6.33 2.67,0.89 5.37,2.57 8.28,1.87 0.47,-3.78 1.26,-7.7 4.06,-10.39 2.84,-3.18 3.04,-7.91 3.71,-11.62 2.05,-4.17 1.85,-9.14 2.71,-13.74 0.26,-3.07 0.84,-6.1 1.99,-8.91 0.22,-5.15 -3.62,-9.39 -5.25,-14.09 -0.63,-2.47 0.48,-5.37 -1.69,-7.4 -2.96,-2 -6.81,-2.81 -10.16,-4.16 -2.63,0.45 -5.28,-0.92 -5.64,-3.77 -0.41,-2.32 0.72,-4.39 -0.77,-0.54 -0.78,2.23 -4.07,1.99 -5.91,1.44 -0.89,-2.72 -3.76,-2.22 -5.89,-1.05 -2.43,0.03 -4.2,1.93 -3.78,3.04 -2.98,-1.35 -5.85,1.55 -8.48,2.42 -3.55,-1.67 -7.51,-1.35 -11.28,-1.56 -3.58,3.73 -3.22,9.41 -5.54,13.67 -1.24,3.16 -4.34,3.42 -7.26,3.89 -3.26,1.02 -6.88,-0.1 -9.67,2.35 -1.59,0.79 -4,-0.13 -5.49,-0.56 -4.01,0.9 -8.8,0.36 -12.18,-2.44 -2.57,-1.34 -4.55,-3.47 -6.76,-5.28 -2.23,1.37 -5.63,2.37 -6.56,4.87 -0.02,1.86 -4.09,1.87 -5.44,1.29 -1.42,-2.13 -2.64,-3.94 -1.26,-6.61 0.56,-3.54 0.3,-7.09 -1.63,-10.2 -0.72,-1.89 -2.32,-5.98 -4.72,-4.31 -2.79,1.33 -2.48,-5.48 -5.68,-3.53 -5.59,0.15 -11.31,0.77 -16.84,0.31 -1.25,-0.57 -2.44,-1.63 -3.94,-1.22z\",\"name\":\"Sachsen\"},\"sl\":{\"path\":\"m63.72,553.88c-2.9,2.18 -6.1,2.82 -9.5,4.44 -3.47,4.51 -10,4.1 -15.06,5.38 -4.6,0.18 -8.97,-1.26 -13.22,-2.78 -2.47,1.73 -0.51,5.04 -0.84,7.5 1.8,0.96 4.08,-1.32 5.97,0.4 2.44,1.62 5.28,3.2 6.78,5.81 -3.49,0.44 0.05,4.79 -0.09,6.94 1.05,3.41 4.13,4.95 6.56,7.16 1.79,1.94 0.3,5.34 3.04,6.13 2.43,1.92 -2.53,4.66 1.39,5.86 2.37,0.12 6.25,2.27 7.13,-1.09 -0.35,-2.25 -3.03,-3.71 0.38,-4.78 4.42,0.26 10.1,1.27 11.81,5.94 0.51,1.58 -0.22,5.5 1.56,5.84 2.33,-0.7 1.95,-7.32 3.65,-3.1 1.02,1.94 2.67,2.87 4.44,1.6 2.61,-0.08 5.35,0.47 7.44,1.84 0.63,-1.3 5.37,-2.76 3.56,-3.91 -1.62,-2.52 -4.36,-5.17 -3.81,-8.41 1.42,-2.72 5.03,-3.05 6.69,-5.31 0.32,-2.19 -0.19,-4.41 0.63,-6.91 -2.49,1.08 -4.55,-2.01 -6.84,-2.72 1.25,-2.57 -1.08,-3.33 -2.41,-4.88 -1.38,-2.57 3.05,-1.81 2.04,-4.46 0.15,-3.03 0.9,-7.08 -0.66,-9.48C81.13,563.37 78.01,559.23 75,558.25c-1.82,-1.1 -4.05,-5.12 -6.16,-3.76 -1.8,1.27 -2.93,1.15 -3.06,-0.42 -0.68,-0.01 -1.4,-0.33 -2.06,-0.19z\",\"name\":\"Saarland\"},\"rp\":{\"path\":\"m124.22,422c-3.08,1.37 -2.76,4.11 -2.15,6.91 -0.74,2.27 -2.92,4.57 -5.35,5.28 1.82,2.98 -1.68,6.02 -4.55,6.28 -3.87,1.42 -8.15,2.76 -11.74,4.31 -2.53,-1.67 -5.28,-0.25 -4.24,2.84 0.38,2.78 -1.77,4.53 -4.33,4.8 -2.21,0.9 -4.57,1.03 -6.93,0.89 0.24,-3.01 0.16,-2.77 -0.66,-0.16 -2.61,2.5 -6.78,2.21 -10.16,3.14 -1.7,1.36 -3.59,4.13 -6.33,3.09 -1.84,0.93 -1.47,5.36 -2.5,7.61 -0.31,2 -3.88,3.46 -5.32,1.71 -2.49,-2.13 -5.07,1.92 -3.92,4.39 -1.32,2.14 3.87,6.32 1.33,6.03 -2.57,-0.38 -4.98,1.47 -7.53,-0.25 -1.87,-0.86 -4.14,-1.17 -5.28,-3.06 -3.07,1.11 -6.64,2.41 -9.75,2.06 -1.18,-2.88 -5.27,-3.74 -3.13,0.21 0.06,1.85 3.77,4.69 0.04,3.72 -2.34,1.34 -4.33,-0.2 -6.47,-0.11 -0.71,2.72 -2.48,4.43 -4.99,5.59 -1.73,1.37 -5.12,2.04 -4.14,4.93 1.73,3.46 -1.97,4.26 -2.68,6.98 -1.38,4.14 -2.64,8.53 -0.77,12.73 1.47,5.09 3.95,10.18 7.71,13.93 3.19,1.73 6.27,3.8 8.6,6.49 1.94,2.68 4.29,-1.39 6.06,0.93 1.74,1.25 1.47,4.34 1.36,6.37 -1,5.55 -4.71,9.97 -7.61,14.63 -1.1,1.62 -3.21,1.58 -3.81,3.7 1.32,3.4 5.62,2.86 8.44,4.25 6.02,0.99 12.25,-0.27 17.78,-2.55 1.84,-1.13 2.94,-3.18 5.35,-3.48 2.7,-0.62 4.85,-2.4 7.33,-3.4 2.47,-0.56 3.3,1.96 4.66,0.63 1.69,-1.87 4.4,2.01 6.06,3.12 2.19,1.85 4.96,3.22 7.6,4.23 2.08,-1.3 3.07,-1.77 3.74,1 0.63,3.7 0.2,7.6 -0.21,11.34 -3.62,0.15 -1.02,2.73 0.84,3.34 -0.88,3.1 1.79,3.86 4.18,5.17 2.7,-0.99 3.7,-0.04 2.19,2.5 -0.63,2.28 0.81,4.56 -1.1,6.61 -1.8,1.77 -5.4,2.25 -6.16,5.03 0.5,2.47 2.45,5.22 3.88,6.72 0.53,-2.07 4.25,-1.3 6.09,-2.06 2.18,0.88 4.73,2.02 3.59,4.81 0.57,4.16 4.15,6.47 7.58,8.3 4.06,2.82 9.28,1.81 13.75,1.03 5.57,0.87 11.49,1.89 16.04,5.46 1.5,1.92 4.34,2.91 6.75,3.03 1.44,0.1 3.88,-0.46 4.75,1.03 2.73,-1.42 4.25,-4.04 4.38,-7.03 0.97,-3.35 4.62,-5.13 4.47,-8.92 0.59,-3.28 2.22,-6.72 1.35,-9.86 0.74,-2.94 4.48,-3.42 5.84,-6.03 2.45,-0.61 0.47,-2.16 -0.81,-2.44 -2.02,-2.71 2.93,-3.58 2.9,-6.17 0.3,-2.2 -0.42,-4.5 0.69,-6.55 -1.31,-0.77 -4.55,0.38 -4.34,-2.22 1.3,-2.38 -0.67,-5.57 -0.94,-8.16 -1.05,-1.55 -0.56,-3.22 -0.06,-4.81 -2.06,-3.14 -3.58,-6.56 -4.31,-10.28 -0,-3.21 3.88,-3.16 5.84,-4.38 1.83,-1.95 0.9,-4.67 -1.26,-6.04 -2.48,-3.08 -4.3,-6.94 -4.99,-10.83 0.78,-1.71 1.4,-3.41 0.25,-5.25 -0.12,-3.38 -3.6,-5.04 -5.13,-7.75 -2.86,-3.27 -7.52,-1.08 -10.66,0.56 -4.69,1.79 -9.52,4.51 -14.68,3.47 -2.44,-2.49 -4.42,-5.7 -6.29,-8.66 -2.19,-2.94 2.65,-2.19 3.79,-4.33 1.44,-3.52 5.56,-1 5.95,-3.31 1.05,-2.62 -4.12,-2.88 -2.51,-5.79 1.38,-2.83 4.79,-3.85 7.44,-4.63 1.92,2.63 5.73,-0.22 2.09,-1.81 -1.3,-2.26 2.57,-3.89 4.23,-2.24 3.08,0.46 1.96,-3.71 0.96,-5.33 -1.37,-3.08 -3.17,-5.78 -6.33,-7.23 -3.79,-0.63 -1.12,-3.37 -0.49,-6.08 0.24,-1.88 -1.87,-3.91 -0.43,-6.13 1.19,-2.18 3.39,-6.07 6.28,-3.97 1.67,3.39 3.78,0.05 4.16,-2.21 1.81,-2.05 -0.69,-2.3 -1.07,-3.97 -0.17,-2.37 -1.93,-5.43 0.13,-7.42 -0.88,-3.78 -6.22,1.19 -5.36,-1.83 1.28,-4.22 -5.99,-5.38 -4.53,-9.85 1.32,-2 0.84,-5.3 -1.94,-5.86 -1.78,-2.03 -5.71,-1.54 -6.82,-3.48 -0.21,-1.96 2.71,-4.06 -0.25,-4.94C125.29,422.08 124.64,421.87 124.22,422z\",\"name\":\"Rheinland-Pfalz\"},\"nw\":{\"path\":\"m177.25,263.34c-2.1,-1.63 -5.7,-1.31 -6.06,1.91 0.19,3.63 -4.48,4.11 -7,3.66 -1.11,-1.64 -4.06,-2.21 -2.35,0.66 0.52,3.14 4.56,4.05 6.57,6.26 1.92,1.46 2.52,4.49 2.62,6.8 0.18,2.64 0.19,5.1 -0.9,7.58 -1.32,1.99 0.48,3.83 2.46,3.92 3.25,0.58 0.3,2.71 -0.78,3.97 -1.55,0.88 -3.89,0.86 -4.75,2.84 1.66,2.95 -2.56,1.58 -4.29,1.1 -2.41,-0.95 -5.38,-1.98 -7.02,0.74 -2.16,1.92 -4.56,3.57 -7.26,4.5 -1.87,2.2 -2.96,-0.94 -5.46,-0.31 -2.18,0.39 -2.63,4.37 -4.84,2.75 -2.6,-0.41 -3.41,-2.28 -4.46,-4.35 -2.31,-1 2.21,-2.81 3.55,-2.98 3.51,0.2 5.07,-3.48 2.41,-5.69 -1.71,-1 -4.92,-1.05 -5.1,-3.81 -0.4,-2.56 2.07,-4.87 2.81,-7.19 0.91,-0.72 -1.83,-2.26 -0.5,-3.69 3.14,-1.64 1.45,-5.72 -1.26,-6.8 -2.05,-1.15 -4.05,1.71 -6.33,0.21 -2.51,-1.72 -6.07,-2.59 -6.27,-6.18 -0.22,-2.85 -2.57,-3.65 -4.96,-4.34 -1.35,-0.64 -3.78,3.65 -1.27,3.96 1.72,1.12 -0.74,4.19 -1.92,5.19 -4.58,2.06 -9.39,4.71 -12.83,8.28 -0.91,2.09 -3.91,0.71 -4.63,3.16 -3.68,0.16 -7.44,-1.07 -11.03,-0.19 -1.13,2.36 -3.53,1.5 -5.41,2.92 -3.3,2.56 -8.23,3.82 -10.15,7.67 -0.16,4.41 -5.85,3.29 -8.27,5.42 -1.07,1.95 -3.97,5.3 -0.36,6.02 2.12,2 6.43,3.97 4.59,7.5 -2.07,2.76 -4.18,5.76 -7.59,6.94 -1.43,-2.65 -3.58,-2.35 -5.97,-1.09 -2.93,0.68 -5.59,2.43 -8.37,3.24 -1.83,0.92 -6.4,-1.52 -6.2,0.14 1.25,2.44 1.32,5.11 -1.64,2.71 -2.84,-2.65 -6.23,-5.14 -10.34,-4.5 -2.26,1.13 -4.86,1.79 -7.57,1.91 -2.94,-0.3 -6.47,1.11 -7.66,3.97 0.91,4.49 1.78,9.09 3.5,13.31 3.65,0.48 3.87,3.28 3.59,6.38 -0.03,2.95 4.03,4.36 4.95,7.23 3.16,3.93 2.85,9.32 1.32,13.83 -1.07,2.64 2.37,5.59 -1.15,7.3 -2.71,3.53 -6.04,6.82 -8.16,10.71 -0.6,1.66 -1.81,5.57 0.42,6.15 1.79,-1.07 4.45,-3.48 6.03,-0.89 -1.83,0.74 -3.77,2.52 -4.63,4.79 -4.06,2.72 -7.88,5.86 -12.82,6.75 -2.54,0.57 -4.87,1.7 -3.17,4.63 0.65,3.73 2.86,3.68 5.9,3.34 1.73,-0.12 4.7,0.11 2.92,2.43 -1.62,2.73 0.97,3.7 3.18,4.3 2.89,0.68 -1.54,3.27 0.66,4.81 0.17,1.78 -1.03,5.56 -2.97,3.06 -2.7,0.41 -2.86,4.47 -3.11,6.49 1.25,3.17 3.86,4.98 6.86,6.32 1.73,2.64 2.03,6.34 4.88,8.31 -3.91,1.75 5.55,0.78 2.22,4.39 0.29,3.25 -5.37,3.94 -3.38,7.37 0.76,1.42 1.86,4.52 3.66,2.67 3.25,-0.44 6.22,1.26 7.36,4.35 2.36,2.77 -0.08,6.31 -0.45,9.15 2.56,4.82 -0.8,-1.03 2.06,-1.07 2.71,-1.06 3.44,4.11 6.19,2.53 2.75,0.37 5.82,-2.69 8.02,-1.5 1.92,2.23 5.39,3.01 8.14,3.37 3.72,-0.21 2.3,-1.41 1.51,-3.82 0.04,-2.95 -1.16,-6.55 2.63,-7.5 2,-1.69 3.89,3.12 6.16,0.31 1.15,-2.86 1.77,-6.3 2.41,-9.46 2.7,1.12 5.4,-0.08 6.75,-2.56 3.27,-1.13 7.52,-0.86 10.35,-2.91 0.37,-1.12 0.98,-4.32 2.62,-2.66 -0.82,3.1 2.33,2.44 4.39,1.84 2.3,-0.53 5.31,-1.22 4.81,-4.28 -0.51,-2.22 0.4,-5.33 3.3,-4.47 2.78,1.45 5.46,-1.31 8.27,-1.76 3.1,-1.68 7.91,-1.4 9.45,-5.05 -0.47,-2.98 -4.28,-3.7 0.44,-3.18 2.74,-1.08 5.31,-3.89 4.08,-6.99 -1.04,-2.52 1.87,-4.26 3.71,-5.24 2.21,0.36 5.37,2.16 3.03,4.28 -1.84,2.46 1.06,2.47 2.69,2.94 2.57,1.6 7.18,2.77 6.12,6.74 -0.22,1.83 -1.49,3.93 0.54,5.35 1.58,1.78 4.44,3.29 3.47,6.09 1.92,-1.91 4.28,0.75 5.25,0.78 1.15,-1.97 2.94,-4.17 0.84,-6.13 -1.97,-2.33 -1.27,-4.35 1.26,-5.9 2.67,-2.21 4.81,-5.42 7.75,-7.15 2.53,-0.53 5,4.12 6.81,1 1.81,-2.99 4.43,-5.63 4.94,-9.19 1.73,-1.11 2.77,-3.4 4.66,-4.63 0.39,-1.91 -1.57,-4.12 -1.75,-6.25 0.73,-3.23 4.88,-3.7 7.64,-2.9 1.98,0.85 4.51,0.77 5.94,-0.93 1.31,-3.2 3.81,-6.24 2.52,-9.88 -0.64,-1.84 0.53,-6.24 -2.48,-5.85 -2.48,0.46 -4.55,3.29 -7.13,2.53 -1.37,-1.68 -3.72,-3.65 -1.3,-5.48 2.34,-4.53 6.76,-7.46 11.73,-8.41 3.83,-1.47 7.94,-1.54 11.98,-1.11 1.92,-2.78 -0.9,-3.85 -1.9,-6.19 -1.82,-1.61 -1.41,-4.36 1.19,-4.68 3.14,-1.44 7.01,-2.83 10,-0.32 2.4,1.63 -0.27,3.86 1.25,5.59 1.92,0.62 4.04,0.65 4.63,-1.66 3.98,-3.61 9.19,-6.08 11.4,-11.26 1.23,-2.28 4.7,-5.14 4.82,-6.65 -1.68,0.55 -4.34,-0.05 -3.2,-2.36 0.05,-5.23 2.13,-10.09 3.74,-14.92 1,-2.69 -2.16,-5.66 -4.66,-4.72 -3.16,2.83 -0.64,-2.27 -0.81,-4.06 -0.05,-2.72 -2.54,-1.8 -3.99,-2.62 -2.61,-2.3 -7.4,-3.71 -6.62,-8.03 0.39,-2.34 -1.28,-5.79 0.83,-7.47 -2.23,-1.73 -1.62,-3.85 -2.5,-6.03 -2.65,-0.77 -5.5,-0.87 -7.39,-3.23 -1.18,-0.94 -5.31,-5.84 -2.07,-3.89 2.92,3.3 5.04,-1.41 4.58,-3.56 -1.6,-1.73 -4.39,-1.61 -6.02,-2.94 -1.48,-2.41 1.21,-4.72 1.94,-6.91 1.84,-2.01 5.4,-1.29 6.16,-4.38 1.42,-2.09 2.16,-4.3 0.81,-6.53 1.2,-2.26 2.95,-5.17 -0.91,-5.56 -3.17,-1.51 -3.6,3.21 -5.58,4.74 -1.93,2.12 -2.98,5.59 -6.39,5.38 -3.28,0.88 -6.88,0.85 -10.18,0.44 -3.79,-0.66 -2.03,-5.2 -2.58,-7.89 -0.63,-2.02 1.28,-4.76 -1.4,-5.81 -1.68,-1.96 -4.73,1.64 -6.71,2.05z m32.09,14.69c-0.04,0.06 0.1,0.03 0,0z\",\"name\":\"Nordrhein-Westfalen\"},\"ni\":{\"path\":\"m186.44,120.91c-5.6,0.51 -6.88,7.11 -8.44,11.54 -1.55,4.84 -4.41,10.19 -1.33,15.08 0.62,2.76 4.51,0.93 6.62,1.66 3.74,-0.55 1.44,3.37 1.28,5.34 -0.09,2.27 2.07,5.17 -0.81,6.68 -0.57,2.01 -4.6,1.89 -4.47,0.01 0.2,-1.62 -2.19,-2.79 -1,-4.38 -2.39,-2.05 -5.8,-0.88 -8.29,-2.92 -3.19,-0.55 -3.1,-6.58 -7,-4.9 -3.25,1.5 -2.87,5.42 -3.31,8.39 1.73,1.09 4.31,-1.81 5,0.84 0.65,4.51 -0.3,10.35 -4.66,12.69 -2.05,0.33 -4.01,-0.7 -4.44,-2.75 -1.01,-1.99 -2.84,-4.1 -4.91,-2.06 -2.51,-1.99 -2.84,-5.26 -2.69,-8.25 1.7,2.41 4.86,0.82 6.63,-0.53 1,-2.85 -1.94,-5.58 -2.55,-8.38 -0.35,-2.68 -2.75,-3.1 -4.67,-3.53 -0.88,-2.07 -1.59,-4.78 -0.56,-6.72 -5.56,-1.98 -11.61,-0.89 -17.16,0.47 -4.67,-1.16 -9.01,2.41 -13.75,2.56 -2.64,-2.27 -6.36,-1.45 -9.63,-2 -6.44,-0.16 -11.29,4.48 -15.23,9 -2.96,1.82 0.86,2.65 1.75,4.06 2.29,2.26 -1.66,3.67 -2.74,5.44 -1.44,-2.96 -5.14,-3.8 -4.27,0.54 -0.65,3.9 -0.71,8.05 -1.52,11.83 -1.87,1.87 0.95,4.14 2.97,3.58 5.28,0.29 10.96,-0.24 15.72,2.42 -2.08,0.69 -5.45,-0.97 -5.28,2.53 -1.3,3.55 -0.88,7.6 -1.89,11.2 -1.02,2.31 -3.53,5.58 -0.77,7.39 -1.04,4.96 1.43,10.17 -1.09,14.86 -1.44,6.42 -8.35,10.37 -8.34,17.29 -0.73,5.37 -0.65,11.06 -2.02,16.22 -1.54,2.43 -4.12,-1.19 -6.18,-0.78 -4.31,-0.59 -8.85,-1.62 -13.15,-0.5 -3.28,1.5 -0.59,5.19 -1.65,7.89 0.05,2.71 -1.96,5.6 -1.13,7.99 3.96,3.35 9.48,3.72 14.25,5.18 1.32,-0.55 1.98,-4.64 3.66,-2.59 1.6,4.04 5.43,7.78 4.44,12.38 -1.84,2.71 -4.41,6.49 -1.89,9.57 1.86,2.89 3.08,-1.11 5.12,-1.16 3.32,-0.74 7.21,1.07 10.28,0.08 0.77,-2.08 3.82,-0.65 4.33,-3.02 3.95,-3.24 8.34,-6.11 13.06,-8 3.49,-2.99 -0.93,-3.55 0.23,-6.31 0.69,-1.71 1.95,-4.41 4.07,-2.55 2.19,0.59 4.44,1.49 4.69,4.05 0.24,3.46 3.25,4.66 5.87,6.2 2.49,1.33 5.1,-2.32 7.3,0.36 2.1,0.86 2.8,3.79 2.88,5.66 -2.14,1.36 -2.99,3.7 -0.25,5 -2.47,1.24 -2.71,4.41 -4.06,6.59 -0.13,3.3 3.86,2.19 5.28,4.24 1.61,1.34 2.29,6.23 -0.56,6.24 -2.12,1.03 -7.72,1.03 -4.44,4.18 0.32,1.52 3.77,3.35 4.41,1.19 1.64,-2.26 4.29,-2.15 6.63,-1.31 1.36,-0.07 3.99,-1.2 5.52,-2.37 2.72,-1.18 4.39,-5.59 7.79,-3.97 1.75,0 5.6,2.6 5.94,0.72 0.62,-2.2 3.26,-3.09 5.19,-3.63 2.15,-1.43 1.31,-2.65 -0.91,-2.81 -3.46,-2.11 -0.12,-6.05 -0.14,-8.9 -0.15,-3.52 0.05,-8 -3.58,-9.88 -2.14,-2.11 -6.14,-3.08 -5.9,-6.7 -1.51,-2.43 0.6,-3.29 2.77,-2.04 1.45,1.42 4.2,1.38 5.98,0.03 1.26,-1.81 0.54,-4.61 3.46,-5.43 2.32,-1.11 5.18,2.05 7.68,-1.07 2.13,-2.24 4.04,-0.2 5.66,1.43 0.57,2.57 -0.21,5.4 0.22,8.09 -0.93,3.21 1.85,4.85 4.75,4.17 3.21,-0.08 7.22,0.09 9.7,-1.99 2.54,-2.97 4.51,-6.31 6.89,-9.36 2.02,0.69 5.86,0.77 5.97,3.44 -1.73,2.35 -1.52,4.54 -0.97,7.06 -1.39,2.86 -2.39,6.91 -6.2,7.13 -2.4,1.05 -3.91,4.28 -3.71,6.63 1.97,1.04 4.71,1.6 6.53,3.33 0.07,1.63 -1.12,5.59 -2.84,6.05 -3.41,-0.73 1.6,2.55 2.84,3.1 2.26,0.15 6.09,0.95 5.15,4.09 -0.68,1.53 3.99,3.73 1.27,4.76 -0.76,2.74 -0.13,6 0.12,8.84 1.43,2.32 4.36,3.6 6.57,5.25 3.31,-0.99 4.48,3.42 3.35,5.85 0.3,0.17 2.48,-0.22 3.34,0.68 2.41,1.16 3.09,3.45 2.56,5.97 -2.13,4.96 -3.82,10.38 -3.75,15.72 2.51,0.18 4.77,-1.21 7.34,-1.06 0.61,1.51 -0.65,3.85 2.25,3.24 3.59,-0.55 6.83,1.47 9.03,4.14 1.86,0.23 1.58,3.6 -0.22,2.84 -1.35,2.17 -4.02,2.06 -5.22,4.59 1.78,2.73 3.46,5.34 3.51,8.74 1.02,2.35 -1.28,3.79 -3.38,3.42 -2.32,0.54 -3.56,5.32 -0.53,5.96 3.22,1.18 6.33,2.54 9.36,4.13 4.29,-2.82 0.47,-2.05 -1.06,-3.89 -2.77,-2.53 1.66,-4.59 3.28,-6.24 2.15,-2.54 5.98,-1.9 8.84,-2.34 2.08,1.35 1.61,5.72 4.21,2.64 3.91,-2.4 7.72,-5.21 12.48,-5.45 3.97,-2.72 8.84,-4.93 11.78,-8.85 1.12,-1.78 0.33,-3.88 2.39,-5.63 3.16,-1.67 6.79,0.6 8.47,3.25 2.88,-0.58 7.14,-0.26 7.76,-3.87 -0.05,-2.88 3.65,-4.47 1.75,-6.24 -1.57,-2.46 -0.32,-5.67 -2.8,-7.78 -1.09,-2.4 -4.13,-3.43 -3.79,-6.44 -0.16,-2.66 -0.99,-6.17 2.11,-7.49 1.53,-0.76 3.52,-2.56 1.95,-4.3 -2.69,0.07 -2.43,-3.84 -0.41,-4.53 -1.85,-1.14 -5.14,-4 -4.75,-5.49 2.09,-0.39 4.95,0.22 5.97,-2.13 -0.9,-2.87 3.5,-2.65 5.41,-2.71 2.87,-0.48 6.16,1.13 8.63,-0.98 1.86,-0.84 5.77,1.14 5.58,-1.56 -0.39,-2.88 1.81,-4.27 3.9,-5.7 0.91,-0.47 3.07,-3.7 1.17,-3.53 -3.44,0 -2.76,-5.19 0.13,-5.66 3.82,-0.08 0.19,-3.6 -1.09,-4.81 -2.24,-1.37 -1.88,-4.21 -1.94,-6.38 0.35,-2.73 4.31,-1.12 3.91,-4.03 -1.37,-1.84 -4.07,-2.33 -5.04,-4.76 -1.41,-2.15 -5.08,-4.85 -2.74,-7.55 3.42,-1.12 3.06,-1.7 0.77,-4.08 -1.69,-1.79 -1.55,-4.29 -1.69,-6.46 -2.28,-4.45 -4.68,-9.22 -8.86,-12.09 -1.05,-3.33 -3.02,-6.48 -2.57,-9.99 -0.32,-2.09 0.44,-4.42 2.92,-4.26 2.85,-1.12 6.27,-0.08 8.93,-1.09 1.55,-1.38 2.76,-2.68 2.6,-4.79 1.69,-2.11 5.13,-0.16 7.46,-0.64 2.96,0.35 7.54,-0.38 8.88,2.86 3.56,1.21 6.67,-1.39 9.63,-2.75 1.37,-1.79 3.07,-3.85 5.5,-3.97 -1.07,-2.07 -0.03,-4.66 0.75,-6.72 2.37,0.04 3.51,1.16 4.74,-2.15 -3.03,-0.57 -6.18,-1.13 -7.93,-4.01 -2.99,-1.28 -5.04,3.32 -7.81,2.09 -1.68,-2.2 -4.97,-3.78 -4.59,-6.94 -1.58,-2.26 -4.54,-2.52 -6.84,-3.72 3.01,-0.21 2.65,-3.1 -0.2,-2.77 -6.07,-2.31 -7.72,-9.29 -10.33,-14.6 -2.42,-1.1 -4.9,-1.16 -5.92,1.34 -1.84,1.96 -4.18,1.97 -6.29,0.43 -2.67,-1.78 -3.79,-6.4 -7.79,-5.36 -2.51,-0.77 -4.24,2.4 -6.66,0.76 -4.42,-0.95 -7.78,-4.07 -12.05,-5.47 -1.87,-1.32 -3.8,-1.77 -5.52,0.17 -0.27,2.44 -2.51,2.71 -4.5,2.22 -3.65,-0.29 -5.04,-4.84 -7.84,-6.5 -1.55,0.25 -1.89,4.05 -4.47,4.49 -2.08,0.15 -3.58,-2.52 -5.1,-3.8 -1.02,-1.09 -2.8,3.74 -4.07,0.89 -2.45,-1.59 -2.98,-4.24 -4.53,-6.41 -0.49,-1.9 1.56,-6.03 -2.15,-5.31 -4.45,-0.29 -7.84,-3.81 -11.28,-6.28 -1.97,-2.7 -0.94,-6.7 -3.64,-9.09 -3.37,-1.87 -5.18,-5.18 -6.46,-8.69 -1.64,-4.08 -4.33,-8.01 -8.9,-9 -3.99,-0.41 -8.13,-0.36 -12.15,-0.37 -3.37,0.14 1.11,4.61 0.44,4.78 -2.24,-0.97 -4.59,-0.85 -6.63,0.19 -3.12,0.32 -6.61,0.16 -9.54,-0.98 -2.08,-1.54 -4.86,-2.91 -5.69,-5.53l-0.44,0.03z m-49.34,8.94c-0.03,1.09 0.83,-0.73 0,0z m-9.69,0.88c-1.79,0.64 -2,2.84 -0.28,0.69 1.15,0.39 7.48,0.12 5.09,-0.5 -1.6,-0.1 -3.21,-0.36 -4.81,-0.19z m18.53,1.06c0.45,3.21 0.81,1.46 0,0z m-31.41,1c-2.03,0.59 -1.28,4.28 0.3,1.19 1.64,-1.6 4.48,-0.97 6.64,-1.09 -2.3,-0.17 -4.65,-0.31 -6.94,-0.09z M108.19,134.75c-2.3,1.14 5.75,0.85 0.38,-0.03 -0.12,0.04 -0.27,-0.05 -0.38,0.03z m-12.13,0.84c-3.52,0.44 -2.54,2.25 0.41,1.38 2.85,-0.48 5.82,-0.48 8.59,-1.28 -2.97,-0.23 -6.02,-0.18 -9,-0.09z m-32.28,11.06c-1.1,1.27 2.99,3.13 2.5,3.16 1.33,-1.35 0.17,-2.16 3.86,-2.62 3.23,0.07 0.14,-2.1 -1.3,-2.1 -1.69,0.52 -3.38,1.04 -5.06,1.56z M174.25,186.75c0.36,2.67 4.51,2.84 6.35,4.51 3.41,1.6 7.66,0.4 10.79,2.95 3.11,1.84 7.08,3.66 10.49,1.79 1.4,0.19 3.63,2.7 2.89,3.67 -2.99,0.4 -0.11,3.94 -0.78,6.22 0.86,2.85 -2.01,3.95 -3.7,5.61 -3.46,-0.92 -6.93,-3.62 -10.57,-2.86 -2.23,0.9 -3.13,-2.21 -2.65,-3.92 -0.64,-2.4 -4,-3.06 -3.74,-5.78 -0.67,-2.42 -1.42,-4.7 -4.2,-4.81 -3.28,-1.01 -7.24,-4.77 -5.34,-8.44 0.16,0.35 0.31,0.71 0.47,1.06z\",\"name\":\"Niedersachsen\"},\"mv\":{\"path\":\"m468.38,35.5c-3.45,0.91 -7.31,1.41 -8.93,5.06 -0.26,1.49 -3.68,7.61 -2.06,6.34 1.83,-1.19 3.02,-3.21 2.21,-5.18 0.53,-1.31 3.04,-4.63 4,-2.16 0.98,2.93 -2.17,4.94 -1.91,7.78 2.5,-1.15 4.75,-3.34 7.37,-1.07 2.42,1.29 5.16,2.48 7.7,0.7 1.54,0.46 0.47,5.05 0.71,7.19 0.58,3.31 -4.03,1.68 -5.65,1 -1.59,-1.22 -4.83,-1.69 -5.19,-3.75 1.7,-4.11 -3.26,-1.94 -5.53,-2.31 -2.04,0.6 -6.23,0.55 -4.31,3.72 1.26,1.16 4.35,-0.42 5.38,2.04 2.76,1.44 -0.43,4.39 -2.54,4.37 -2.75,-0.56 -4.74,4.2 -0.71,3.48 2.64,0.57 6.65,0.82 2.18,2.56 -1.86,1.21 -4.55,1.66 -6,3.25 -1.1,2.82 0.47,5.48 1.28,8.13 5.01,1.69 10.02,3.38 15.03,5.06 2.12,-0.23 1.09,-3.14 0.16,-2.97 -0.76,1.88 -3.98,1.99 -3.25,-0.63 2.8,-3.12 5.65,-6.81 9.31,-9 3.6,-0.24 7.24,-1.3 10.81,-1.09 1.21,1.32 2.75,4.02 0.25,4.94 -1.68,2.68 3.83,-2.34 2.14,-4.14 -1.15,-2.6 -3.19,-5.78 -6.42,-4.67 -2.75,-1.52 -4.42,-5.28 -3.91,-8.38 1.26,-2.37 3.94,-3.83 5.78,-5.54 1.61,-2.97 -1.68,-6.36 -4.75,-5.02 -3.75,0.66 -8.71,3.63 -11.63,-0.19 -1.83,-1.92 -3.2,-6.71 0.31,-7.56 2.78,-1.63 0.58,-2.73 -1.84,-1.94z m-11.72,12.09c-0.08,-0.04 -0.09,0.18 0,0z m-4.56,2.28c1.4,-3.26 1.29,-4.92 0.11,-0.61l-0.09,0.49 -0.02,0.12z M457,55.72c-1,0.46 -3.54,5.14 -1.38,3.6 1.48,-0.87 6.21,-2.64 2.44,-3.69 -0.36,-0.17 -0.71,0.02 -1.06,0.09z m-41.09,7c-0.25,1.57 -4.9,6.97 -0.87,4.76 3.72,-1.22 7.4,-2.58 10.67,-4.69 2.93,-0.95 5.29,-0.58 1.12,-0.91 -3,-0.7 -6.71,0.09 -8.98,-2.44 -0.65,1.09 -1.29,2.19 -1.94,3.28z m31.25,-1.97c0.11,0.78 4.7,-2.13 0,0z m-5.81,0.66c-3.54,0.47 -7.66,0.41 -10.88,0.66 0.67,2.11 2.68,1.92 4.62,1.67 3.01,-0.17 6.3,-0.07 8.66,-2.29 -0.79,-0.19 -1.6,-0.03 -2.41,-0.03z m1.56,3.03c-2.88,1.13 -1.21,5.18 -4.19,6.34 -3.6,2.14 -6.72,-2.29 -10.47,-2.06 -3.01,-0.89 -5.76,1.74 -8.35,3.01 -2.71,2.18 -6.52,4.43 -7.27,7.96 0.18,1.51 4.13,0.67 2.84,2.66 -2.29,1.22 -5.24,-0.3 -6.59,-2.13 -0.64,-1.13 1.18,-6.54 -0.53,-3.19 -3.22,4.08 -9.79,4.87 -11.29,10.52 -1.07,2.64 -1.85,5.58 -5.3,3.89 -4.59,-1.7 -8.52,1.77 -12.84,2.72 -3.31,0.47 -6.17,-1.62 -9.5,-0.72 -2.97,1.63 -5.73,4.31 -8.33,6.62 -1.96,2.01 -2.68,5.33 -0.14,1.47 1.06,-1.2 2.41,-4.78 4.19,-3.41 2.37,2.62 -1.24,5.31 -2.34,7.63 -1.89,1.4 -5.07,1.98 -4.85,5.06 -0.11,3.13 -0.5,6.25 -2.62,8.72 -1.16,-0.88 -3.68,-1.23 -3.47,-3.09 -1.92,-1.17 -4.21,-1.95 -5.89,0 -2.35,1.65 -4.97,-1.81 -3.77,-4.13 -1.91,-1.96 -3.3,-5.2 -6.59,-3.87 -5.1,-0.35 -9.02,3.11 -13.04,5.78 1.53,2.15 0.81,6.74 -2.56,5.38 -2.64,1.41 -7.07,3.37 -6.72,7.09 1.31,2.5 2.06,5.12 1.15,7.92 0.24,2.24 3.08,3.96 4.95,5.27 1.49,-0.13 2.88,-0.94 4.38,0.28 1.77,1.48 2.91,4.8 1.54,6.72 -1.07,2.51 -1.74,5.18 -3.94,7.19 -3.45,4.41 -6.57,9.53 -11.63,12.13 -2.85,-1.67 -4.12,1.25 -4.21,3.8 -1.04,3.05 -1.35,4.72 2.28,3.81 4.38,-1.22 5.62,3.97 8.63,5.73 2.06,1.71 4.79,0.13 5.56,-2.03 1.66,-2.26 4.66,-0.28 6.53,0.28 2.66,5.4 4.35,13.11 11.13,14.56 1.97,-0.26 2.54,2.31 1.09,3.34 1.98,0.75 4.2,1.46 5.28,3.41 2.92,0.33 5.86,0.78 7.88,-1.84 2.53,-1.04 4.17,0.11 6.2,0.92 3.41,1.17 3.57,-3.72 2.91,-5.91 -1.19,-2.85 2.75,-4.04 4.19,-5.91 2.26,-0.57 6.06,-0.68 6.92,2.18 2.22,-0.82 7.58,-0.29 4.18,-3.52 1.89,-0.52 5.64,-0.7 8.01,-2.08 1.84,-1.16 5.37,-2.23 4.75,-4.82 0.89,-1.93 2.17,-4.64 4.7,-3.27 2.88,0.17 5.85,-1.68 8.79,-1.42 2.69,2.85 6.38,3.54 9.59,5.47 2.1,1.42 2.54,5.89 5.86,4.62 1.42,-1.54 4.52,-1.23 6.97,-0.84 2.64,0.11 5.42,0.12 6.99,2.65 1.76,1.23 2.9,3.74 4.81,4.36 3.51,-2.08 7.9,-1.79 11.85,-1.57 1.87,0.92 -0.02,2.26 -1.2,2.88 2.73,2.02 3.96,-3.02 6.01,-4.14 1.85,-2.5 5.05,-5.4 8.21,-4.51 0.4,1.63 2.6,4.73 2.69,1.53 -0.18,-4.03 4.85,-6.14 8.16,-4.72 0.92,1.02 1.13,4.66 2.78,2.25 1.94,-2.52 5.64,-4.66 5.83,-7.92 -0.98,-3.87 1.53,-7.87 4.55,-10.15 2.94,-2.19 5.03,-6.55 9.2,-6.14 3.13,-1.46 0.88,-2.47 0.94,-4.94 -0.47,-2.01 1.66,-5.18 3.04,-2.12 2.09,2.5 4.8,4.66 5.08,8.15 0.55,3.39 3.31,3.78 6.08,2.65 2.41,-0.3 6.44,1.78 7.55,-1.21 2.62,0.79 6.91,-0.99 8.25,2.06 1.49,6.11 -3.45,10.78 -7.19,14.78 -1.98,3.1 3.33,1.46 5.03,1.98 3.6,0.68 6.06,-2.53 6.41,-5.79 1,-1.79 6.72,-1.16 5.01,-3.95 -1.75,-4.35 -2.83,-9 -3.99,-13.46 -2.18,-2.83 -4,-6.6 -2.87,-10.22 -0.22,-5.43 -3.03,-10.29 -3.44,-15.72 -0.42,-2.28 -2.57,-2.04 -3.28,-0.22 -1.81,2.36 -5.39,1.17 -7.84,0.59 -3.37,-1.38 -7.23,-1.87 -9.74,-4.72 -2.44,-2.52 -7.36,-2.95 -8.1,-6.78 1.68,-2.2 3.24,-5.36 5.94,-6.13 0.44,-2.04 -2.63,-3.55 -3.67,-5.18 -2.27,-2.24 -3.02,-5.61 -4.55,-8.32 0.21,-2.8 0.27,-5.88 -2.37,-7.5 -1.78,-3.54 -4.86,-2.15 -7.78,-0.99 -2.53,1.08 -5.51,1.39 -7.79,2.9 0.14,1.21 2.98,3.43 0.56,3.84 -3.2,0.18 -3.78,-3.49 -4.59,-5.69 -0.99,-1.26 -3.18,1.08 -3.03,-1.66 3.36,-2.44 -2.45,-0.94 -3.09,-2.5 -1.56,-2.33 -1.97,-5.95 -5.39,-6.49 -2.15,-2.65 -4.68,-0.2 -6.44,-0.76 -2.83,-2.27 -3.42,-6.13 -4.17,-9.38 1.49,-2.52 -2.16,-5.5 -3.62,-7.17 -1.75,-0.48 -3.25,0.75 -4.88,1.21z m52.69,22.19c-3.16,0.36 -1.48,4.22 0.37,5.25 1.73,2.04 0.07,5.76 2.48,7.75 1.23,2.84 2.71,4.73 5.49,2.07 1.56,-1.43 -2.24,-3.39 -0.78,-5.26 2.84,0.22 4.58,0.55 1.09,-0.38 -3.78,-1.63 -6.46,-4.91 -7.63,-8.84 -0.21,-0.29 -0.58,-0.78 -1.03,-0.59z M508.81,98.25c2.29,2.13 4.59,4.76 3.68,8.19 1.29,3.82 -2.55,2.56 -4.59,1.72 -1.01,-1.74 -1.1,-5.02 -3.97,-3.22 -1.8,2.49 2.15,3.83 2.07,6.36 1.37,2.89 -1.67,5.12 -4.12,5.88 -2.51,0.31 -1.55,2.32 0.67,2.35 4.16,0.13 7.86,-2 11.53,-3.58 2.18,-0.69 5.82,0.22 7.3,-1.22 1.43,-3.32 1.05,-6.01 -2.4,-7.65 -4.01,-3.08 -7.07,-7.49 -11.49,-9.99 0.44,0.39 0.88,0.77 1.31,1.16z m-153.22,8.91c-2.07,0.65 -6.19,2.56 -3.84,5.09 3.14,1.72 4.9,-0.57 5.38,-3.56 0.63,-1.6 0.03,-1.86 -1.53,-1.53z\",\"name\":\"Mecklenburg-Vorpommern\"},\"he\":{\"path\":\"m231.91,351.28c-2.52,4.22 -6.22,7.61 -8.38,12.09 -3.47,2.99 -7.81,5.31 -10.28,9.09 -2.28,0.4 -5.74,0.13 -5.5,-3 2,-3.26 -3.47,-5.21 -5.91,-3.76 -1.41,0.82 -5.95,0.93 -4.65,3.28 0.64,2.39 3.13,3.23 3.37,5.4 0.17,2.42 -1.34,4.44 -3.94,3.29 -5.15,-0.39 -10.41,1.05 -14.95,3.35 -3.17,1.4 -4.72,4.59 -6.61,7.28 0.84,1.05 2.01,4.06 3.59,2.09 2.37,-0.9 6.57,-4.19 7.88,-0.28 0.22,4.19 2.13,8.77 -0.72,12.51 -0.71,2.75 -2.31,4.62 -5.22,4.99 -3.14,-0.43 -7.52,-2.41 -9.63,1.09 0.39,2.15 1.85,4.24 2.13,6.19 -1,1.73 -3.4,2.91 -4,4.63 3.11,2.85 -2.97,-1.27 -1.76,3.31 -1.97,2.72 -3.4,6.11 -5.96,8.25 -2.51,0.68 -5.22,-4.25 -7.23,-1.05 -2.7,2.64 -5.41,5.28 -8.11,7.92 0.49,2.48 3.93,4.74 1.63,7.26 -0.76,2.71 -4.3,4.36 -2.78,7.49 -0.8,2.92 2.77,3.49 2.12,5.75 -1.13,1.85 -1.06,5.6 -3.44,5.9 -1.97,0.22 -2.63,-1.53 -4.06,-2.13 -2.8,1.41 -5.48,6.02 -2.56,8.66 -0.49,2.46 -3.67,5.82 0.27,6.82 3.67,1.53 5.25,5.3 6.61,8.75 0.92,2.04 1.08,4.85 -1.7,5.37 -1.07,-0.93 -5.7,-1.33 -3.5,1.11 2.47,0.99 0.89,3.49 -1,3.99 -2.32,-1.08 -4.25,-1.29 -6.55,0.33 -2.11,0.73 -3.8,3.88 -1.08,4.86 2.02,1.08 1.39,4.09 0.28,5.59 -2.84,-2.01 -4.64,0.94 -6.72,2.5 -3.14,0.7 -2.62,2.78 -0.67,4.69 1.7,1.7 2.49,4.75 4.7,5.72 7.32,0.54 13.26,-4.85 20.19,-5.97 3.41,-0.25 5.55,2.38 7.21,4.9 2.7,2.09 3.72,5.69 3.75,8.95 -2.21,2.91 0.93,6.19 1.75,9.06 1.22,3.02 5.3,4.54 4.69,8.16 -0.83,2.19 -2.69,3.5 -5.03,3.69 -3.67,1.29 -0.58,5.33 -0.19,7.78 1.19,1.23 1.73,4.58 3.56,3.47 2.87,-0.09 4.72,3.15 6.02,5.29 0.45,2.46 3.64,2.83 4.61,0.44 0.84,-1.91 -0.18,-4.52 -1.35,-5.64 -0.49,-3.07 3.89,-2.29 5.74,-3.3 2.12,-0.86 2.95,1.54 1.33,2.77 -0.13,1.19 0.36,6.2 2.44,7.44 3.73,1.71 7.96,2.48 12.06,2.41 0.3,2.37 -0.95,4.21 -3.22,5.14 -2.12,0.41 -4.13,4.05 -2.97,5.83 3.16,0.98 4.62,-3.02 6.97,-4.37 2.62,-1.23 -1.27,-2.95 1.23,-4.7 1.83,-3.04 5.68,-3.23 8.67,-4.31 2.07,1.28 4.67,2.3 1.65,-0.28 -2.77,-0.69 1.28,-2 0.17,-4.09 -1.83,-2.61 0.09,-5.95 0,-8.84 0.67,-3.72 4.45,-6.62 2.87,-10.6 0.27,-3.23 -3.17,-2.82 -4.5,-5.35 -1.88,-1.31 -2.94,-3.09 -2.59,-5.43 1.25,-0.49 -0.57,-3.68 -0.1,-5.19 -0.37,-2.39 0.26,-5.26 -1.15,-7.31 2.19,-0.29 2.3,-4.03 0.75,-4.91 -3.55,0.11 -2.06,-3.18 -1.51,-5.43 1.26,-3.72 6.02,-2.87 8.99,-4.29 3.44,-0.94 6.85,-2.48 10.38,-0.98 2.53,1.03 6.93,-0.17 7.36,3.51 0.22,3.77 3.72,2.22 6.1,1.81 3.18,-0.12 0.4,-3.63 0.68,-5.44 -0.84,-3.13 -0.37,-6.51 1.38,-9.24 2.02,0.57 4.63,1.89 6.47,0.94 0.86,-2.28 1.78,-5.61 4.88,-5.28 3,-1.1 4.77,-5.15 2.22,-7.63 2.46,-1.43 0.46,-5.9 4.2,-5.65 2.35,-1.65 4.24,2.19 6.72,0.64 3.67,-2.12 7.61,-4.88 9.17,-8.99 0.87,-4.15 -0.43,-8.59 0.34,-12.69 1.59,-1.67 2.87,-3.11 0.88,-5.25 -1.95,-0.3 -4.67,-0.51 -5.91,1.03 2.68,1.72 0.06,4.83 -2.4,3.41 -3.4,0.47 -3.73,-2.19 -3.1,-4.85 1.64,-2.54 4.97,-5.54 3.53,-8.77 -2.61,-1.88 3.02,-1.21 0.62,-3.76 -0.39,-2.4 1.7,-5.24 4.25,-4.19 2.32,-0.16 2.52,-3.78 3.13,-5.59 -0.42,-3.72 -1.44,-7.39 -2.41,-10.94 0.58,-3.37 4.7,-2.07 6.91,-1.42 1.33,1.43 3.54,1.27 4.93,0.14 1.65,-2.01 -0.8,-4 -2.88,-4.28 -0.73,-2.4 -0.28,-5.7 -2.15,-8.05 -1.81,-2.17 3.2,-3.84 4.13,-1.92 0.85,2.09 2.04,3.15 0.8,0.19 -0.79,-1.77 1.55,-2.57 1.81,-3.75 -2.16,-0.34 -3.1,-3.03 -5.47,-3.13 -2.41,-1.32 -5.66,-1.92 -5.69,-5.28 -2.73,-1.26 -6.43,-1.62 -7.14,-5.14 -0.93,-2.28 -2.35,-5.29 -0.96,-7.39 -0.41,-3.77 -4.2,-2.41 -6.91,-2.04 -2.44,0.91 -4.65,3.07 -6.27,5.16 0.26,3.75 3.81,-0.17 4,2.53 0.6,2.43 -1.31,3.7 -3.35,4.44 -2.57,-2.31 -6.46,-3.25 -9.7,-4.62 -2.11,-0.64 -2.73,-3.33 -1.64,-5.16 0.52,-2.33 2.7,-3.11 4.88,-2.75 1.13,-2.01 -0.13,-5.09 -0.97,-7.03 -0.84,-1.85 -3.71,-4.21 -0.9,-5.87 1.12,-2.04 3.33,-1.71 4.5,-3.66 2.57,-0.35 -1.93,-2.01 -2.09,-3.38 -2.42,-2.04 -5.4,-1.51 -8.28,-1.84 -2.56,-0.15 0.13,-3.78 -1.82,-2.9 -0.65,0.13 -1.3,0.26 -1.96,0.4z m48.47,53.75c-0.2,0.03 0.16,0.35 0,0z\",\"name\":\"Hessen\"},\"hh\":{\"path\":\"m273.31,139.16c-1.5,1.09 -0.93,4.3 -3.67,5.06 -1.61,1.47 -3.71,3.26 -5.89,1.85 -2.33,-0.78 -1.81,2.21 -3.43,3.24 -1.3,1.52 -3.26,5.5 -5.37,2.78 -1.64,-2.73 -2.78,-2.89 -3.11,0.48 -1.95,3.52 3.88,1.56 2.16,5.63 -0.89,2.25 0.93,3.48 1.47,5.56 1.11,1.96 3.5,5.01 5.03,1.63 1.82,-0.66 3.1,2.78 4.87,3.63 1.74,1.19 3.59,-1.92 4.1,-3.57 1.25,-2.32 3.61,0.86 4.66,2.15 1.9,2.2 3.93,4.76 7.21,3.97 1.13,-0.62 1.01,-2.97 2.91,-3.07 2.93,-1.45 -2.65,-3.59 -2.97,-5.78 -1.42,-2.02 -5.31,-2.65 -5.35,-5.94 -0.83,-2.64 0.75,-4.88 3,-6.12 2.02,-2.17 0.93,-4.31 -0.94,-5.97 0.01,-2.33 -0.49,-4.73 0.53,-6.88 -1.59,-1.66 -3.52,1.07 -5.22,1.34z\",\"name\":\"Hamburg\"},\"hb\":{\"path\":\"m177.13,149.91c-1.02,1.81 2,3.93 2.44,6 0.78,1.49 -1.36,2.66 0.47,3.7 0.36,2.05 1.77,2.73 3.27,0.5 2.31,-1.97 -1.15,-5.18 0.62,-7.7 1.79,-3.68 -3.69,-1.91 -5.73,-2.54 -0.36,-0.05 -0.71,0.02 -1.07,0.05z m-2.34,39.47c1.3,3.24 5.12,3.63 7.78,4.94 1.52,2.61 1.31,5.93 3.86,7.69 2.1,1.22 1.38,3.71 2.04,5.46 1.64,0.31 3.99,-0.68 5.77,0.73 2.5,0.16 5.45,3.63 7.38,0.87 2.63,-1.56 0.74,-5.04 0.98,-7.51 -2.78,-1.97 1.76,-2.01 0.87,-3.11 -1.26,-2.73 -3.93,0.26 -6.25,-0.86 -4.35,-0.36 -7.69,-4.63 -12.29,-4.36 -3.91,0.3 -6.92,-2.67 -10.15,-3.86z\",\"name\":\"Bremen\"},\"bb\":{\"path\":\"m499.25,149.81c-0.84,1.88 -0.81,4.34 1.28,5.34 -1.74,2.06 -3.79,3.29 -6.37,3.46 -3.18,2.74 -6.61,5.55 -9.05,8.91 -1.36,2.25 -1.54,4.68 -0.87,7.16 -2.28,3.16 -4.83,6.45 -8.06,8.63 -2.41,-0.12 -1.19,-4.5 -3.97,-3.53 -3,-0.61 -5.44,2.28 -5,5.15 -0.4,2.7 -4.01,1.19 -3.97,-1.02 -0.57,-1.97 -3.52,0.03 -4.56,0.75 -2.74,2.49 -4.73,6.13 -7.88,8 -1.99,-0.23 -3.86,-2.04 -1.25,-3.16 1.45,-1.47 -4.76,-0.14 -6.18,-0.46 -2.13,-0.19 -5.04,3.22 -6.6,0.49 -2.73,-2.51 -5.01,-6.52 -9.27,-5.91 -2.13,0.04 -5.13,-1.3 -6.45,0.69 -2.87,1.21 -4.79,-0.3 -6.25,-2.72 -1.52,-3.98 -6.92,-3.25 -9.48,-6.32 -1.8,-2.15 -4.65,0.11 -6.93,0.1 -2.38,1.26 -5.39,-1.14 -6.32,2.55 0.99,3.09 -2.96,4.01 -4.77,5.61 -2.15,1.15 -6.11,1.77 -7.27,2.46 2,2.09 -1.36,2.73 -2.94,2.85 -3.43,2.16 -3.88,-1.29 -6.73,-1.81 -3.03,-0.86 -4.57,2.1 -6.63,3.69 0.64,2.72 1.23,7.08 -1.72,8.53 -1.68,-0.03 -3.77,-0.05 -4.75,-1.47 -3.21,-0.91 -4.58,3.15 -7.53,2.47 -2.88,-1 -5.03,0.48 -2.09,2.67 1.36,1.69 3.08,4 5.08,1.55 1.94,-1.5 5.34,-2.28 6.7,0.42 1.5,2.04 4.32,1.65 6.53,2.39 1.23,-1.43 4.73,-0.25 2.95,1.62 -1.67,1.72 2.21,2.59 2.91,3.81 1.43,1.12 2.93,-2.01 4.58,-0.33 1.76,1.64 5.48,1.89 6.03,4.47 0.12,1.23 -2.72,2.23 -0.94,3.16 4.27,1.68 8.68,4.08 13.38,2.66 2.5,1.2 6.82,-4.08 4.61,0.18 -0.35,3.68 2.96,0.6 4.61,0.47 3.29,0.55 2.92,4.31 3.72,6.78 0.37,2.84 -3.59,3.22 -2.84,6.46 -1.66,3.81 3.69,5.99 2.3,9.81 0.77,2.86 -2.32,3.27 -3.45,4.66 -0.54,2.65 -2.13,5.71 -1.65,8.26 0.83,2.24 4.39,3.7 4.36,0.28 2.12,1.42 6.84,0.74 6.61,4.02 1.02,3.09 -2.67,5.39 -1.23,8.53 0.24,2.83 1.88,6.06 -0.69,8.26 -2.05,3.4 -2.35,7.41 -1.88,11.28 -2.17,2.79 -1.48,5.22 1.03,7.44 3.11,5.22 7.1,10.36 13.17,12.16 3.29,1.01 7.58,3.94 10.7,1.22 -0.29,-3.23 3.4,-2.12 4.94,-0.75 2.81,1.03 3.99,2.78 6.11,4.39 2.08,1.33 4.66,2.82 7.04,1.98 3.14,1.39 6,3.2 8.16,5.88 3.11,1.39 3.63,-2.03 5.78,-1.38 1.85,0.64 2.36,3.88 -0.16,3.41 1.53,4.44 1.98,9.42 4.53,13.28 -0.28,4.36 -5.19,5.81 -8.13,8.16 1.38,4.17 2.89,2.17 5.54,3.45 2.71,1.73 3.05,5.69 4.55,8.42 0.92,3.28 0.16,6.97 -0.56,10.28 1.12,1.84 2.33,3.34 4.61,2.31 0.97,-1.14 2.38,-3.45 4.49,-4.31 2.22,-1.43 4.58,-3.03 6.29,-0.12 4.07,3.53 9.06,7.27 14.8,6.16 2.09,-1.58 2.79,0.71 5.58,0.52 2.7,-0.23 5.1,-3 8.17,-1.96 3.29,-1.1 7.81,-0.26 9.47,-3.95 2.24,-4.34 2.1,-9.97 5.65,-13.77 1.52,-0.92 3.97,-0 5.84,-0.31 2.67,-0.5 5.34,2.24 7.62,0.72 1.65,-1.85 4.86,-1.52 6.32,-2.54 1.7,-2.16 5.35,-2.05 7.75,-3.38 2.31,-0.33 2.58,2.04 4.09,2.56 2.19,0.22 4.28,-0.47 4.14,-3.06 1.18,-2.26 3.58,-0.39 3.55,-4.22 -0.1,-2.81 -0.47,-5.99 -3.36,-7.26 -3.75,-2.16 -4.56,-6.65 -6.42,-10.21 -2.9,-0.63 -3.35,-5.09 -0.55,-6.35 3.76,-2.93 5.89,-7.61 5.36,-12.4 -0.5,-2.47 -0,-3.76 1.5,-6 1.18,-2.51 -0.13,-5.99 -3.13,-5.94 -2.3,-1.74 -2.72,-5.61 -0.53,-7.63 -0.28,-2.81 1.52,-6.55 -1.09,-8.56 -2.6,-1.24 -6.3,-0.29 -7.81,-3.19 -1.11,-3.05 -1.39,-6.47 -2.42,-9.42 -1.68,-2.31 -0.63,-6.4 2.17,-7.48 1.98,-2.33 3.3,-5.1 2.57,-8.22 0.38,-2.83 -0.31,-5.28 -2.51,-7.19 -3.54,-2.79 -8.55,-3.73 -11.34,-7.59 -2.56,-5.3 -8.11,-8.18 -12.88,-11.28 -2.02,-1.42 -4.87,-0.97 -6.69,-2.38 -2.03,-2.63 3.01,-4.81 1.15,-7.48 -0.64,-2.66 -2.69,-6.39 0.67,-8.11 3.25,-1.9 6.37,-3.89 8.77,-6.91 3.06,-2.56 2.89,-6.96 3.39,-10.59 -1.83,-1.72 -1.71,-4.98 -0.47,-6.84 1.2,-1.67 4.41,-4.79 3.03,-6.69 -2.15,0.19 -2.35,-3.69 -2.22,-5.41 -2.44,1.01 -5.3,1.53 -5.5,4.63 -1.15,2.4 -3.02,3.91 -5.78,3.72 -2.22,-0.47 -6.15,0.62 -7.41,-0.9 0.47,-4.6 5.82,-6.58 7.23,-10.78 0.81,-2.01 1.54,-5.13 -0.2,-6.73 -3.16,-0.57 -5.69,-0.28 -7.87,1.03 -3.28,0.28 -6.64,-0.73 -9.75,0.5 -4.23,-1.06 -2.75,-6.98 -5.95,-9.24 -1.05,-1.15 -2.07,-2.54 -3.15,-3.54z M484.13,240.25c2.62,1.78 3.22,5.59 5.07,8.15 1.73,3.05 5.13,4.94 5.9,8.6 -0.13,3.15 2.96,3.88 5.31,4.97 3.02,1.16 1.5,3.96 0.62,6.15 -2.11,1.18 -0.3,2.41 -1.81,3.94 -3.37,1.44 -6.8,-1.31 -10.22,-1.72 -2.61,0.29 -4.02,-2.66 -5.44,-2.59 -3.39,0.13 0.93,5.86 -3.25,4.2 -2.15,-1.56 -3.93,-2.85 -6.03,-2.56 -2.2,-2.21 -6.14,-1.55 -8.26,0.46 3.07,1.05 -3.31,1.77 -4.27,0.08 -2.48,-1.03 -0.87,-2.57 0.43,-3.73 -0.55,-1.26 -1.2,-3.36 0.31,-4.63 3.03,-2.14 1.73,-3.7 -0.71,-3.56 0.04,-2.5 -0.02,-5.34 0.62,-7.66 1.31,-1.47 2.88,-1.58 4.41,-0.5 1.08,0.35 -1.33,-2.46 0.8,-3.32 1.36,-1.61 4.71,-0.61 6.85,-0.8 2.24,1.02 3.85,-0.76 4.63,-2.66 1.77,2.37 2.44,0.08 3.29,-1.66 0.36,-0.52 1.13,-1.47 1.74,-1.16z\",\"name\":\"Brandenburg\"},\"be\":{\"path\":\"m483.38,241.69c-1,1.58 -1.61,5.27 -4.03,2.88 -0.91,2.64 -3.81,2.59 -6.06,2.05 -1.91,-0.31 -7.28,0.09 -4.84,2.79 1.38,2.14 -2.25,1.68 -3.34,0.78 -3.18,-0.15 -1.8,4.36 -2.36,6.45 -0.09,0.87 5.17,1.04 2.51,3.18 -1.16,1.75 -4.04,3.69 -1.89,5.83 0.53,1.82 -3.82,2.76 -0.54,3.7 2.29,1.61 3.52,-2 6.07,-2.2 2.07,-0.34 5.08,-0.28 6.25,1.69 2.29,-3.28 5.18,4.71 6.09,1.16 -1.15,-2.62 1.9,-3.14 3.66,-3.85 0.63,3.56 5.17,2.88 7.8,4.18 1.96,0.26 4.94,2.32 6.26,0.28 -2.5,-1.19 2.5,-2.95 2,-5.26 1.05,-2.66 -3.24,-2.9 -4.77,-4.37 -2.69,-0.38 -1.4,-4.38 -3.15,-6.05 -1.61,-3.03 -4.93,-4.88 -5.94,-8.38 -1.14,-0.99 -1.96,-6.07 -3.71,-4.88z\",\"name\":\"Berlin\"},\"by\":{\"path\":\"m273.66,464.44c-1.31,1.91 -3.76,2.78 -3.5,5.34 -1.83,4.59 -6.12,7.95 -10.5,9.94 -2.67,1.02 -4.62,-2.49 -7.15,-0.61 -1.54,0.74 -0.64,3.49 -2.13,4.58 2.4,3.04 -0.04,7.53 -3.44,8.47 -3.38,-0.45 -3.01,4.07 -4.66,5.5 -2.16,0.47 -4.23,-0.33 -6.28,-0.91 -2.54,3.91 -0.46,8.53 0,12.63 -0.53,2.87 -4.66,1.74 -6.9,2.55 -3.16,0.27 -1.64,-5.68 -4.98,-5.22 -4.19,-0.72 -8.41,-2.46 -12.49,-0.42 -2.97,1.16 -6.84,1.23 -9.32,2.99 -0.59,1.48 -2.41,4.44 -0.69,5.28 3.02,-0.37 2.55,4.03 2.28,5.63 -2.37,0.86 0.17,4.18 -0.45,6.12 0.28,2.66 -0.27,5.78 1.89,7.78 -3.88,-0.85 0.14,3.73 1.52,4.58 0.84,1.94 3.96,0.92 3.59,3.64 1.27,2.88 0.6,5.62 -0.78,8.31 -2.26,2.93 -2.47,7.6 -2.42,11.23 1.24,2.27 4.6,0.89 6.75,1.12 2.16,0.04 4.75,-2.13 4.73,-4.03 -0.34,-2.04 2.18,-5.23 4.72,-3.63 1.87,0.74 5.34,1.32 4.23,-1.45 1.6,-1.24 -0.63,-7.5 -0.96,-4.79 0.79,2.49 -3.31,2.3 -3.52,0.13 -0.83,-1.56 -3.4,-4.82 -1.19,-6.09 3.07,-0.15 6.37,-1.05 9.34,-0.19 0.41,-2.46 4.94,-2.22 3.88,0.41 0.59,1.49 3.45,3.68 4.43,1.04 1.16,-1.1 4.96,-5.66 4.94,-1.88 -0.59,2.44 0.18,5.72 -1.59,7.45 0.33,2.92 3.79,0.57 5.16,-0.39 2.48,-0.32 5.61,-3.48 7.29,-0.3 2.99,3.39 2.07,8.94 5.01,12.52 2.18,0.31 2.43,3.58 2.41,5.6 0.45,1.81 -0.72,3.89 -0.34,5.16 2.77,0.82 6.24,0.65 7.69,-2.25 -0.15,-1.12 -1.91,-2.61 0.74,-3.68 2.83,-1.31 3.76,2.79 4.2,4.84 -1.95,1.56 1.87,3.4 1.31,5.57 0.26,2.1 4.02,5.65 0.6,6.68 -2.91,-0.9 -2.81,3.3 -1.87,5.04 0.96,2.51 3.11,4.68 1.16,7.27 0.44,2.52 -1.72,6.37 1.65,7.44 1.89,1.55 4.82,1.6 5.41,4.43 1.71,2.58 1.5,5.88 2.31,8.79 -2.03,1.94 3.23,2.14 4.31,3.59 2.13,2.06 5.86,2.95 6.29,6.28 3.84,2.87 1.91,8.3 2.08,12.46 0.25,2.64 -0.94,5.5 -2.07,7.44 -0.04,3.1 4.34,2.42 3.61,6.41 2.49,1.05 0.06,3.97 -1.86,4.33 -1.61,1.16 -4.23,0.12 -2.18,-1.56 2.29,-3.25 -3.46,-0.68 -4.81,-0.69 -2.23,0.84 -5.79,-3.18 -5.97,0.9 -0.14,3 3.91,4.63 3.42,7.93 0.53,2.67 0.99,5.81 0.27,8.32 -1.49,1.89 -3.93,-0.58 -5.06,1.19 0.32,2.29 -3.52,3.66 -4.94,5.41 -3.13,1.93 -4.28,-3.47 -7.13,-0.01 -2.35,0.12 -0.74,3.36 -2.58,4.82 -1.74,2.44 -2.43,5.75 -0.16,8.06 1.31,2.7 4.08,4.51 3.75,7.78 0.56,4.38 1.13,8.84 2.71,12.9 2.91,1.82 1.6,5.52 2,8.41 0.45,2.66 -1.86,4.17 -1.66,6.72 0.19,1.55 -3.47,0.81 -1.84,3.13 2.61,1.07 0.38,3.66 0.87,5.81 0.2,2.47 -0.14,5.78 2.07,7.38 0.5,2.56 -3.74,2.92 -1.81,6.18 1.02,3.01 3.86,6.55 1.16,9.46 -1.18,1.16 -3.19,0.63 -3.38,2.95 -1.52,3.81 -0.35,-4.27 -2.92,-3.81 -1.88,-0.93 -3.51,0.34 -4.08,2.09 -3.48,0.28 -7.46,-0.44 -10.66,0.7 -2.62,1.93 -4.17,6.22 -7.96,5.49 -1.72,0.26 -2.84,-2.34 -4.53,-0.51 -3.88,1.61 -1.7,3.37 1.37,4.04 3.22,2.32 4.79,-0.35 6.38,-2.97 2.19,-2.61 6.67,0.35 5.03,3.47 -1.46,1.59 3.12,2.56 4.5,2.46 2.2,0.75 5.22,-2.54 5.71,-2.37 -1.26,2.65 0.2,5.16 1.79,7.23 3.74,-0.93 5.96,3.27 7.63,5.97 -1.64,1.92 -2.48,3.42 -1,5.94 0.03,1.72 5.17,0.51 4.35,-1.56 0.81,-1.86 3.6,-1.1 5.09,-0.53 2.05,2.24 -1.68,3.98 -1.81,6.26 -0.21,1.48 -3.48,5.59 -1.04,5.45 5.9,-0.28 10.64,-4.27 13.65,-9.1 1.68,-2.49 4.2,-4.8 5.23,-7.51 -0.27,-1.73 0.37,-4.61 -1.96,-4.47 -1.78,-2.98 -0.76,-6.77 -1.03,-10.06 0.59,-1.59 4.6,-2.06 3.97,0.09 -1.67,2.23 -0.39,3.45 2.34,3.77 2.31,0.63 4.34,0.47 4.81,-2.09 1.65,-2.51 5.13,-0.08 7.59,-0.22 0.5,2.03 3.14,2.52 5.19,3.38 2.99,1.48 5.86,-2.19 8.72,-1.09 3.48,2.5 -1.05,3.09 -0.97,5.59 2.55,0.29 4.83,1.11 6.25,3.38 2.96,1.58 0.77,3.77 1.16,5.09 4.01,0.78 8.16,-0.05 11.5,-2.41 2.24,-1.08 5.28,-2.46 7.66,-1.16 -0.63,2.06 -2.84,4.65 1.39,2.92 0.99,-2.2 2.51,-4.2 4.63,-5.64 2.78,-1.69 3.97,-4.98 6.66,-6.66 2.2,2.25 6,0.82 8.75,0.25 1.72,-1.5 -0.11,-4.24 1.75,-6 1.27,-3.31 5.21,-1.69 7.87,-2.01 3.14,-0.06 6.26,-0.02 9.34,0.6 1.3,-3.59 5.97,-3.64 9.18,-3.87 2.61,1.43 5.36,-1.54 7.57,0.5 2.56,0.03 5.94,1.12 8.03,-0.19 -0.56,-3.08 -2.75,-5.66 -1.81,-8.97 1.68,-1.6 3.23,-4.06 5.5,-4.97 2.05,1.73 -0.97,3.82 0.9,5.81 0.74,1.55 6.18,-3.23 5.07,-0.41 2.78,1.55 7.13,-0.47 8.4,3.24 1.5,2.9 4.05,3.71 6.55,1.34 2.39,-0.55 1.97,-4.34 4.92,-3.93 3.45,-1.43 7.22,-0.35 10.38,1.04 0.63,2.57 4.26,5.4 1.53,7.59 -1.91,3.64 3.48,5.29 5.61,7.15 2.86,2.07 5.93,3.86 9.26,5.04 1.6,-1.29 3.65,-3.83 2,-5.66 -1.98,-1.39 0.16,-4.42 -0.13,-6.41 0.81,-2.05 3.05,-3.55 3.5,-5.53 -1.37,-2.88 -2.02,-7.29 -5.72,-7.94 -0.69,2.59 -4.42,1.51 -6.31,1.34 -1.86,-0.73 -2.16,-2.62 -0.73,-4.04 1.53,-3.69 4.03,-7.15 5.39,-10.77 -2.14,-3.41 -3.7,-7.7 -6.59,-10.34 -2.88,0.4 -3.64,-2.11 -3.9,-4.41 -1.24,-4.49 -8.32,-5.42 -8.04,-10.73 0.04,-2.8 4.04,-3.87 5.63,-5.89 1.81,-1.22 1.17,-3.89 2.78,-4.97 2.57,-0.91 6.07,0.24 7.47,-2.89 1.29,-1.84 2.29,-3.74 4.7,-4.4 2.08,-2 5.15,-0.22 7.17,-2.39 2.7,-1.73 6.58,0.63 8.88,-2.3 3.06,-1.95 5.85,-4.79 7.85,-7.65 0.43,-2.52 2.26,-5.13 0.38,-7.38 0.45,-3.1 3.3,-6.59 0.44,-9.38 -0.61,-1.41 4.07,-1.2 4.41,-3.5 -0.1,-4.04 4.08,-0.04 6.17,0.11 3.24,1.6 5.97,4.3 9.52,5.26 3.15,-4.15 7.21,-9.07 5.25,-14.64 0.5,-2.8 -3.41,-5.03 -1.06,-7.39 1.18,-2.53 1.51,-5.28 -0.56,-7.48 -1.75,-2.45 -3.35,-5.1 -5.19,-7.42 -2,1.56 -5.42,0.69 -5.99,-1.97 -0.86,-2.58 -2.84,-4.62 -4.76,-6.5 -2.32,-0.51 -5.25,-0.27 -4.06,2.66 -1.49,2 -4.02,-1.61 -5.78,-2.26 -3.51,-1.84 -1.34,-7.26 -4.67,-9.54 -1.77,-2.1 -3.92,-4.14 -6.4,-5.23 -2.11,1.09 -4.33,0.73 -6.1,-0.79 -2.35,-0.65 -1.29,-3.34 -2.28,-4.52 -5.62,-4.34 -8.22,-11.7 -13.85,-16.05 -0.96,-0.66 -5.12,-1.7 -4.56,-0.67 1,2.66 -3.26,0.86 -4.59,0.92 -2.67,0.16 -4.59,-1.69 -5.1,-4.2 0.33,-2.99 -3.95,-3.91 -5.58,-5.98 -1.3,-1.16 -4.06,-3.42 -2.45,-4.96 0.01,-2.41 0.31,-4 -2.29,-4.05 -2.07,-0.53 -1.46,-1.98 -2.8,-3.5 -2.08,-3.55 -3.13,-7.39 -3.48,-11.47 -1,-2.47 -5.61,-0.9 -6.56,-3.96 -1.46,-1.68 -3.4,-4.99 -0.08,-5.91 3.24,-0.92 2.39,-4.05 3.21,-6.53 0.88,-3.28 4.17,-5.56 3.4,-9.15 -1.69,-2.78 -3.02,-7.24 -7.16,-6.34 -2.89,-1.46 -5.43,-3.31 -7.5,-5.81 -4.37,0.47 -3.42,-1.95 -5.22,-4.41 -1.08,-0.95 -3.08,-0.2 -3.19,-2.3 -0.69,-1.94 -0.29,-3.97 0.91,-5.48 -1.13,-3.44 -4.24,-5.4 -7.25,-6.96 -2.59,-1.3 0.21,-3.74 1.9,-4.17 -1.15,-4.86 -6.38,-5.68 -10.5,-6.63 -1.66,-1.44 1.51,-4.7 -1.45,-5.85 -1.47,-2.96 -3.98,-0.6 -6.15,-0.03 -4.99,1.83 -10.54,1.94 -15.74,2.63 -0.77,-0.67 -2.77,-2.61 -3.03,-0.5 -0.96,2.08 -4.29,1.95 -5.15,-0.33 -1.46,-1.7 -1.05,-3.98 -3.62,-3.71 -2.87,-0.72 -2.28,-4.47 -1.51,-6.47 2.3,-1.83 -2.65,-2.89 -4.3,-2.43 -1.7,1.3 -2.92,3.72 -5.37,4.41 -1.61,-1.19 -1.85,2.9 -0.04,2.88 0.66,3.05 1.58,6.38 1.39,9.48 -1.36,2.21 -0.38,7.05 -3.72,7.01 -1.95,0.12 -2.86,4.45 -5,1.12 -2.19,-1.15 -2.98,-4.4 -0.24,-5.3 -0.32,-1.92 -3.58,-5.33 -4.44,-2.09 -2.92,1.68 -7.59,1.16 -8.96,-2.28 -0.97,-2.98 -4.83,-0.87 -7.1,-1.48 -2.57,0.83 -5.91,1.76 -7.83,3.43 -0.82,2.98 1.43,4.47 3.69,5.77 1.52,2.24 6.27,1.22 5.55,4.87 -1.22,3.47 -5.4,0.77 -7.88,0.59 -0.91,0.73 1.13,4.84 -1.63,4.69 -2.37,-0.99 -5.13,-1.74 -7.34,-2.66 -1.81,-3.33 -1.13,-7.07 -0.75,-10.66 -3.86,-0.79 -8.92,-2.08 -9.69,-6.56 -1.65,1.27 -4.99,0.71 -4.64,-1.87 -0.45,-2.76 -1.64,-5.72 -3.61,-7.69 -2.74,-0.99 -5.53,-1.93 -6.83,-4.79 -1.25,-3.09 -5.32,-0.4 -7.74,-0.8z m46.75,26.38c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Bayern\"},\"bw\":{\"path\":\"m233,542.31c-1,3.03 -3.8,0.55 -6.25,1.41 -1.85,0.3 -6.11,-0.67 -4.1,2.56 0.5,1.4 3.45,5.79 2.97,1.91 0.74,-2.88 3.54,0.29 3.5,2.12 -0.05,2.12 0.13,4.28 -0.67,5.91 -2.21,2.88 -6.93,-2.7 -8.36,1.34 0.26,1.89 -0.96,3.78 -2.66,5.38 -2.87,1.47 -6.48,1.36 -9.56,0.91 -0.14,1.71 -1.09,2.75 0.88,3.56 2.16,2.43 -1.84,4.61 -2.82,1.5 -2.24,-0.41 -4.9,0.87 -7.01,1.83 -1.86,1.31 -3.21,3.14 -1.07,4.79 -2.58,2.03 -4.76,4.93 -7.53,6.53 -2.28,0.77 -4.85,-1.67 -3.07,-3.7 0.44,-3.45 3.31,-3.76 5.49,-5.64 2.15,-2.77 -2.95,-1.33 -4.33,-2.33 -3.36,-0.68 -8.66,-1.27 -8.78,-5.66 -0.37,-2.27 -2.39,-6.18 0.16,-6.35 -1.56,0.22 -6.19,0.51 -5.66,2.03 1.02,1.01 1.63,3.91 1.34,5.81 -0.91,2.56 -4.61,4.01 -6.17,1.22 -1.23,-2.27 -2.8,-5.47 -5.58,-5.87 -1.35,0.5 -2.27,2.96 -1.13,4.34 0.64,2.82 1.72,5.99 1.41,8.75 -1.19,1.47 2.13,0.8 2.94,1.09 2.56,1.28 -0.68,4.01 0.44,6.03 0.58,2.78 -1.68,4.86 -3.44,6.5 -0.2,1.61 2.95,0.95 2.5,3.03 -0.5,1.7 -2.89,2.29 -3.8,3.97 -1.51,1 -4.09,2.21 -3,4.19 -0,4.19 -1.63,8.4 -2.57,12.44 -1.88,2.38 -4.07,4.74 -4.06,8 -0.94,3.32 -4.33,5.15 -7.25,6.25 -3.09,4.3 -5.58,9.02 -6.75,14.19 -2.02,2.94 -5.4,5.15 -8.91,5.69 -0.21,2.82 -1.4,5.14 -3.56,6.99 -1.36,2.17 -3.49,3.53 -5.66,4.61 -1.15,2.67 -3.64,5.13 -2.5,8.22 0.36,2.98 -0.28,5.69 -1.97,8.15 -1.95,4.34 -4.99,8.87 -3.01,13.76 0.98,2.33 -1.6,3.46 -3.29,4.06 -1.58,3.35 -1.03,7.85 -3.97,10.71 -3.45,3.81 -5.74,8.63 -5.57,13.85 -1.32,3.83 3.9,5.48 3.32,9.25 -1.3,3.08 -3.94,5.46 -4.57,8.93 -0.87,1.91 1.04,3.96 -0.54,5.81 -1.06,2.51 -2.87,5.19 -1.04,7.86 1.18,2.15 -0.92,4.15 -2.35,5.35 -0.31,3.89 3.1,6.22 5,9.16 2.34,1.03 6.63,0.35 6.5,3.84 -1.16,1.4 -4.38,2.08 -0.94,3.62 2.67,0.19 5.38,-1.24 7.85,-2.15 1.44,-1.71 2.81,-3.83 5.44,-3.09 2.67,-0.79 2.95,2.96 5.54,2.9 3.15,1.3 6.81,1.64 9.99,0.41 0.13,-3.3 4.53,-3.63 6.59,-5.48 2.38,-1.41 5.39,0.37 7.78,0.98 0.79,1.29 -0,3.08 2.19,3.78 3.61,0.25 7.37,1.32 10.72,-0.47 -3.18,-2.2 -0.41,-3.55 1.74,-5.09 1.44,-1.37 5.34,0.59 4.6,2.72 0.03,1.73 2.81,-2.43 2.91,-3.66 0.99,-2.17 -2.08,-3.31 -3.78,-2.38 -2.21,0.79 -3.16,2.58 -5.97,3.13 -1.88,-0.81 -4.32,-2.21 -5.31,-4.16 0.59,-3.61 2.99,-6.72 5.06,-9.63 1.63,-2.24 5.73,-0.38 6.44,-3.38 2.06,-2.35 5.55,0.44 4.49,3.47 2.07,0.67 0.21,-4.19 4.06,-1.25 1.57,1.2 4.32,3.45 2.25,5.23 0.1,2.76 1.41,4.58 4.22,5.01 1.74,-2.24 3.46,-0.92 5.76,1.59 2.1,2.97 5.8,0.78 7.96,-0.93 3.82,-2.7 8.65,-0.24 12.27,1.62 3.55,2.04 4.43,-1.99 2.13,-4.27 -0.59,-2.2 -2.12,-3.67 -4.12,-4.07 -2.4,-1.85 -6.01,-3.5 -6.96,-6.5 0.3,-2.1 3.03,-1.62 3.78,-0.16 3.5,2.46 7.48,4.47 10.66,7.31 -0.21,3.96 4.69,5.62 7.5,7.39 1.67,0.53 3.72,-1.14 5.59,-0.11 2.75,0.87 6.81,1.33 7.03,4.97 0.46,3.2 4.49,4.9 6.69,2.27 1.24,-1.5 4.61,-2.56 5.4,-0.7 4.17,1.33 6.15,-3.91 8.97,-5.72 3.32,-0.45 7.13,0.12 10.19,-0.66 1,-2.57 4.28,-2.37 6.22,-1.28 0.84,2.31 0.58,2.71 2.56,1.13 2.97,-0.39 2.03,-4.58 0.76,-6.39 -1.17,-2.02 -2,-5.8 -0.79,-7.3 3.32,-0.17 0.06,-2.21 -0,-3.93 -0.63,-3.04 -0.86,-6.31 0,-9.32 -2.23,-0.74 -2.32,-4.76 0.44,-4.66 -0.41,-2.68 2.08,-4.21 1.66,-6.88 -0.15,-2.82 0.59,-6.09 -1.94,-7.94 -2.26,-5.15 -1.96,-11.11 -3.49,-16.32 -1.93,-2.69 -4.53,-5.55 -4.67,-9 0.46,-2.92 3.93,-5.48 2.72,-8.47 0.1,-0.35 4.87,-3.47 6.42,-2.05 2,3.2 4.93,-0.95 6.82,-2.36 0.33,-1.38 1,-2.91 3.14,-2.96 3.03,1.76 2.98,-2.24 2.69,-4.25 -0.32,-3.5 -1.14,-6.78 -3.64,-9.37 -0.98,-1.42 0.15,-4.75 1.23,-5.16 3.02,1.48 6.11,1.47 9.25,0.41 2.37,-0.94 3.55,1.55 1.82,3.19 0.08,1.06 5.19,-1.87 2.3,-2.88 -0.25,-2.1 -0.85,-4.44 -3.47,-3.91 -1,-3.13 0.42,-4.65 1.54,-7.33 0.09,-4.38 1.32,-9.19 -0.13,-13.38 -2.03,-1.38 -1.82,-4.46 -4.4,-5.39 -2.47,-2.1 -5.26,-3.59 -8.29,-4.72 -0.45,-2.63 0.5,-4.11 -0.61,-6.97 -0.35,-3.23 -2.39,-5.85 -5.43,-6.81 -1.8,-1.05 -4.02,-2.25 -3.05,-4.75 -0.53,-2.57 0.99,-5.27 0.62,-7.5 -1.67,-2.84 -3.08,-6.33 -1.5,-9.56 2.72,0.17 4.05,-1.19 2,-3.69 -1.12,-2.08 -1.1,-4.65 -2.84,-6.37 -0.05,-1.52 1.05,-2.79 -0.28,-4.24 -1.33,-3.13 -3.46,0.38 -1.36,0.89 -1.36,2.26 -3.18,4.9 -6.23,4.2 -1.84,0.68 -5.99,-0.78 -4,-3.06 0.32,-2.43 0.8,-5.95 -0.91,-7.66 -1.91,-0.49 -2.69,-3.58 -3.13,-5.51 -1.12,-3.07 -1.07,-6.84 -4.03,-8.84 -3.37,0.71 -6.2,2.77 -9.34,3.81 -2.15,-0.26 -3.2,-3.12 -1.25,-4.19 -0.15,-1.71 1.98,-8.34 -1.11,-4.8 -1.56,1.02 -3.09,4.67 -5.17,2.44 -1.38,-0.64 -3.13,-1.84 -2.32,-3.58 -0.34,-0.5 -0.91,-0.09 -1.41,-0.13z m-57.69,212.03c0.26,4.67 5.28,-0.76 0,0z\",\"name\":\"Baden-Württemberg\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.greece.js",
    "content": "jQuery.fn.vectorMap('addMap','greece',{\"width\": 700, \"height\": 637, \"paths\":{\"30\":{\"path\":\"M420.84,610.62l0.6,-2.95l2.52,-1.21l1.51,0.78l1.03,-1.03l0.13,-5.12l0.49,-2.19l0.69,-0.69l2.13,3.43l4.4,-0.52l1.93,-6.25l0.03,-3.74l-2.04,-2.19l1.58,-2.32l-1.7,-2.35l0.23,-0.51l1.97,1.18l0.59,-0.23l0.34,-1.21l3.46,0.17l0.95,-1.95l1.37,1.01l1.07,-0.67l0.98,0.21l-0.15,0.88l1.02,0.9l1.19,0.12l-0.76,1.22l0.24,1.97l0.55,1.17l1.5,0.9l2.54,0.2l6.51,-0.8l1.36,1.17l2.4,-0.2l0.93,0.45l11.41,-0.75l0.68,1.54l1.45,1.2l0.91,0.09l0.73,1.11l4.33,-0.05l-0.1,1.51l-2.21,1.89l-2.68,0.03l-1.29,0.98l0.02,1.76l-1.56,3.51l0.34,1.46l1.06,1.18l6.05,2.92l0.88,0.98l-0.27,2.21l2.54,1.09l1.24,2.29l0.05,4.61l-3.61,0.77l-2.45,-0.82l-3.17,0.44l-3.4,-1.09l-3.46,1.49l-3.85,-0.2l-1.15,1.54l-1.66,0.85l-4.03,1.04l-0.59,-0.72l-4.34,0.12l-2.71,1.72l-0.64,-0.51l-3.66,-0.32l-2.35,1.19l-2.49,-0.5l-1.86,0.83l-0.55,-0.7l-2.58,0.65l-6.38,-1.29l-2.17,0.32l-1.42,1.22l-1.83,-0.47l-2.65,0.59l1.84,-2.13l-0.76,-1.24l0.45,-0.4l-0.38,-1.96l0.08,-0.94l1.05,-0.6l-0.02,-1.74l-1.25,-4.67l-1.74,-1.49l-1.46,-0.17ZM459.6,579.71l-0.31,-0.33l1.25,-0.46l0.42,-0.92l1.68,1.17l-0.16,1.03l-0.79,0.27l-0.35,-0.81l-1.75,0.05Z\",\"name\":\"Heraklio\"},\"28\":{\"path\":\"M275.61,38.56l4.99,0.09l0.68,0.66l3.98,0.4l1.89,-0.26l5.64,1.51l6.68,-0.2l3.51,-1.66l1.13,-3.67l4.09,-2.23l2.08,0.08l1.54,3.26l3.52,-1.75l1.79,-1.66l1.4,0.24l1.45,-0.73l3.6,0.73l3.36,-0.66l1.72,1.77l2.12,-0.35l1.54,1.17l2.45,0.01l-0.2,1.86l1.18,4.08l6.66,3.06l-1.35,4.61l0.6,1.63l3.83,3.09l4.69,5.15l4.14,2.81l4.19,0.99l2.35,2.15l1.9,-1.23l2.58,-0.02l1.37,0.93l1.75,2.91l5.29,3.67l-0.4,1.12l0.82,2.63l-1.09,3.5l-5.39,4.06l-1.72,2.35l-4.08,3.11l-12.05,3.17l-2.08,0.73l-1.58,1.27l-12.88,0.02l-3.68,-2.34l-2.51,-2.52l-1.88,-0.52l-2.98,1.0l-1.01,-0.36l-0.97,-2.77l-4.22,0.31l-0.97,-1.0l-0.6,-3.84l-1.36,-0.94l-0.48,-1.48l-2.98,-0.46l-2.04,-4.12l-2.87,-3.05l-3.59,-2.52l1.03,-2.29l-0.51,-1.9l-12.37,-4.52l-4.06,-4.34l0.16,-1.31l-0.87,-1.43l-0.55,-0.13l-4.51,2.8l-2.52,-0.63l-1.11,-0.86l-0.5,-1.16l1.05,-4.05l-1.2,-3.99l0.4,-5.98Z\",\"name\":\"Serres\"},\"29\":{\"path\":\"M261.09,114.12l-4.19,-1.83l-2.31,-5.35l-4.42,-4.66l-5.66,-0.79l2.39,-2.42l2.8,-1.76l1.25,0.19l0.43,-0.55l-1.82,-2.64l-0.88,-2.62l-1.62,-1.01l3.07,-0.25l0.34,-1.26l3.87,0.84l1.55,-0.54l-0.31,-1.25l1.26,-1.51l1.37,-0.67l0.9,0.31l-0.17,2.39l0.9,2.71l2.64,2.12l4.45,-2.1l4.6,0.43l5.98,-1.36l1.63,0.13l1.96,-2.29l4.89,-2.55l-0.05,-3.85l0.66,-0.94l4.95,-2.22l5.91,-0.85l2.36,-2.28l4.58,-1.55l1.0,-0.95l1.64,1.32l1.99,4.11l2.92,0.41l0.44,1.38l1.31,0.86l0.59,3.77l1.3,1.44l4.38,-0.17l0.52,2.34l1.6,0.77l3.25,-1.0l1.41,0.45l2.38,2.44l4.04,2.49l10.33,0.14l-2.67,4.56l-0.44,2.83l0.74,0.82l3.21,0.88l1.91,2.27l-6.67,-0.18l-3.58,3.38l-1.44,0.69l-4.12,-0.43l-2.67,2.17l-7.05,-1.43l-3.01,4.83l-1.1,0.85l-1.23,-0.64l-2.84,-0.2l-2.18,3.74l-4.04,-0.84l-4.81,1.68l-2.33,2.65l-0.25,1.41l0.57,2.49l-2.37,2.06l-1.23,2.15l-1.07,0.02l-0.99,-0.77l-0.34,-3.73l-2.04,-0.5l-1.49,1.22l-1.06,2.4l-0.76,5.1l-0.73,-1.84l-2.64,-2.37l-1.79,-0.28l-1.36,-0.99l-2.85,0.18l0.64,-0.61l-2.23,-3.32l-1.36,-0.83l-0.83,-2.98l-1.17,-0.84l-1.99,-0.38l0.24,-2.01l3.24,0.44l3.59,-0.39l3.02,-1.19l2.7,-2.11l0.31,-1.53l-3.55,-2.77l0.9,-1.0l0.37,-2.36l-1.15,-1.6l-1.81,-0.6l-0.81,0.32l-1.58,-1.03l-2.77,1.87l-1.81,-0.6l-0.44,1.13l0.88,1.05l1.26,0.16l-0.15,1.67l-3.95,2.47l-2.1,-0.7l-2.56,1.06l-0.45,0.56l0.56,1.15l-0.98,0.74l0.39,2.02l-1.09,-0.6l-0.49,0.48l0.19,1.0l-1.11,-1.76l-0.5,0.16l-0.42,-0.86l-0.77,-0.17ZM278.81,128.1l-0.0,0.0l-0.05,-0.0l0.01,-0.01l0.05,0.01Z\",\"name\":\"Thessaloniki\"},\"34\":{\"path\":\"M502.84,458.49l0.72,0.26l1.34,-1.64l0.88,0.18l0.59,-0.6l2.96,0.43l1.56,-0.58l0.62,-0.58l-0.31,-0.68l1.34,-0.35l-2.04,-1.11l0.41,-0.71l4.64,-1.26l4.73,-2.72l1.13,-0.93l-0.51,-0.8l-1.29,-0.08l1.12,-1.04l2.19,0.13l0.42,-0.94l2.71,2.05l2.69,1.14l-0.98,0.1l-0.97,-0.78l-2.04,0.3l-4.1,1.71l-2.02,2.22l-1.13,0.23l-2.09,2.09l-0.42,1.29l-2.97,2.51l-3.02,0.1l-1.95,1.66l-2.14,-0.13l-2.06,-1.47ZM515.0,449.74l0.37,-0.11l0.75,0.15l-0.19,0.14l-0.92,-0.18ZM501.66,496.87l2.8,-3.07l4.2,2.63l0.67,1.13l1.66,0.48l-0.67,0.25l-1.68,-0.93l-4.01,1.0l-2.45,-0.78l-0.52,-0.72ZM506.66,429.4l1.43,-1.27l1.41,1.52l-0.07,0.81l-1.4,0.35l-1.59,-0.92l-0.31,-0.87l0.53,0.36ZM509.09,505.08l0.62,-0.01l0.04,0.15l-0.39,0.22l-0.28,-0.37ZM497.64,473.35l0.11,0.0l-0.04,0.04l-0.07,-0.04ZM496.21,453.59l0.05,-0.03l0.08,0.11l-0.07,-0.03l-0.06,-0.05ZM492.19,449.99l0.1,-0.84l1.17,0.1l1.54,-1.28l1.72,0.73l-0.13,0.73l0.79,0.93l-0.85,-0.37l-1.4,0.4l-1.27,-0.91l-1.67,0.5ZM490.75,445.09l0.44,-1.01l1.07,-0.1l0.47,0.8l-0.9,0.61l-1.07,-0.29ZM472.0,432.79l-0.92,-1.49l1.94,0.6l0.86,-1.33l-0.11,-0.73l2.88,-2.45l2.71,-0.38l1.96,-1.84l1.07,-2.07l3.57,-1.82l0.6,0.35l0.15,1.14l2.39,2.11l1.61,4.04l-0.65,1.4l0.48,1.44l-0.94,0.85l-0.48,4.64l-0.81,0.73l-1.25,4.94l-3.04,0.15l-1.4,0.68l-0.91,1.39l-0.75,-0.46l-1.72,1.76l-1.67,-1.3l0.13,-2.87l-3.04,-1.35l0.61,-1.0l-1.76,-2.95l0.64,-1.16l-2.15,-3.02ZM488.07,448.11l-0.07,-0.03l0.36,0.02l-0.14,0.03l-0.15,-0.03ZM488.65,447.99l0.33,-0.48l0.27,0.03l-0.48,0.56l-0.12,-0.12ZM490.18,447.02l0.13,-0.23l0.38,-0.18l-0.26,0.31l-0.26,0.1ZM484.44,451.14l-0.69,-0.59l1.29,-1.01l0.79,2.34l-1.39,-0.74ZM481.95,398.56l-0.04,-0.05l0.09,-0.09l0.03,0.06l-0.08,0.08ZM472.63,497.63l0.21,-0.54l0.29,0.16l-0.09,0.0l-0.41,0.38ZM473.26,497.25l0.61,-0.28l2.52,0.53l2.09,-3.08l-0.67,-1.24l-0.12,-1.97l-0.76,-0.56l0.69,-1.19l-0.79,-1.1l-0.42,-0.43l-3.06,0.13l0.0,-0.91l1.18,-0.58l2.27,0.63l5.06,5.69l0.09,2.74l-0.61,0.75l0.46,0.67l-2.95,2.39l-1.62,-1.25l-2.86,-0.11l-1.11,-0.81ZM477.9,455.08l-0.61,-0.55l0.62,0.12l0.55,-0.63l-0.24,-0.58l1.44,-0.56l0.4,-0.4l-0.02,-0.14l0.42,-0.42l-0.07,-0.09l0.2,-0.2l0.19,1.15l0.74,0.67l-0.15,1.23l-1.05,-0.01l-0.73,0.76l-1.69,-0.35ZM468.85,401.16l0.0,-0.0l0.0,0.0l-0.0,-0.0ZM468.87,401.08l-0.79,-0.62l0.07,-0.55l0.5,0.22l0.22,0.95ZM470.07,401.46l-0.46,-0.71l0.57,-3.52l-1.16,-0.91l-0.5,-0.9l0.32,-0.52l3.01,-0.49l0.12,1.85l1.47,1.56l1.08,-1.01l-0.15,-2.2l1.12,-0.03l-0.06,0.89l0.88,0.63l1.09,-0.1l0.27,0.9l2.21,-0.1l-0.34,1.61l-2.31,0.32l-0.65,1.12l-0.73,-0.37l-0.68,1.56l-0.83,-0.55l-0.92,0.99l-0.48,-0.28l-0.39,0.81l-2.04,-0.91l-0.43,0.33ZM474.69,493.39l0.11,-0.58l1.08,0.14l-0.81,0.84l-0.38,-0.4ZM464.56,464.18l-0.3,-0.35l0.74,-1.52l-0.27,-1.94l0.88,-1.27l2.4,-0.59l1.51,1.41l0.27,0.62l-0.51,0.99l0.42,0.43l4.42,2.03l1.01,1.22l-1.67,1.68l0.43,0.67l-0.39,0.41l0.68,0.73l-0.55,0.63l0.61,0.93l-1.33,-0.53l-0.98,1.42l-1.86,-2.68l-2.93,-2.47l0.41,-0.54l-0.6,-0.68l-1.67,0.15l0.52,-0.67l-0.55,-0.58l-0.7,0.5ZM469.77,490.79l0.89,-1.87l0.87,0.45l-0.7,1.3l0.26,1.38l-1.28,-0.53l-0.04,-0.74ZM452.02,436.9l0.77,-1.41l-0.09,-1.83l3.88,-2.43l-0.55,-0.8l-1.02,-0.23l1.95,-1.97l4.07,-1.67l0.04,0.69l-0.83,0.75l1.3,0.91l1.45,-0.71l1.75,0.33l0.74,-0.93l0.31,0.66l-1.36,1.88l0.28,0.89l-1.07,1.08l1.76,1.61l-0.99,0.53l0.43,0.75l-1.46,1.82l-0.22,1.31l-5.07,3.1l-2.73,-0.98l-1.09,-1.16l-0.76,0.38l-1.48,-1.73l0.01,-0.84ZM465.42,427.26l-0.28,-0.9l0.82,-0.38l0.4,0.51l-0.94,0.78ZM464.63,426.32l0.0,0.0l-0.0,0.0l0.0,-0.0ZM465.35,404.05l-0.25,-0.32l0.14,-0.52l0.28,0.58l-0.17,0.25ZM443.43,380.46l-1.14,-1.21l-0.18,-0.89l1.64,0.95l0.6,-1.16l0.87,0.56l0.76,-0.65l0.62,0.81l1.04,-0.66l0.42,1.03l-0.72,0.72l1.15,0.96l1.21,-0.19l0.43,0.82l2.8,-1.22l1.71,1.16l0.33,1.0l0.88,-0.18l0.36,-0.71l1.18,0.39l0.86,-0.49l0.41,0.54l1.22,0.05l2.67,2.2l0.92,-0.08l-0.04,2.07l-1.88,2.64l0.32,1.49l-3.09,0.9l-3.51,-2.45l-1.18,-0.25l-0.53,0.55l-0.77,-0.39l0.39,-1.2l-1.23,-1.29l-2.65,-1.47l-0.43,0.3l-1.57,-2.05l-1.68,-0.67l-2.17,-1.91ZM459.99,400.83l1.13,0.29l0.48,-0.48l0.76,0.62l-0.13,0.65l-1.06,0.5l-0.1,-0.76l-1.07,-0.83ZM463.25,404.57l-0.13,-0.51l0.53,-0.46l-0.04,0.99l-0.36,-0.01ZM461.95,402.29l0.02,0.02l0.0,0.0l-0.02,-0.02ZM461.84,405.15l-0.15,-0.1l0.47,-0.56l-0.04,0.58l-0.27,0.08ZM459.81,507.32l-0.06,-0.0l0.15,-0.25l0.13,0.13l-0.22,0.13ZM449.9,472.1l-0.87,-0.13l1.86,-2.41l0.66,-2.14l3.33,-1.94l2.96,-0.13l-0.16,0.96l-2.04,2.14l-5.74,3.64ZM445.84,441.07l0.5,-1.96l-0.4,-0.45l1.56,-0.81l0.9,-1.61l1.79,-0.6l-0.9,3.14l0.04,2.04l-1.11,1.03l0.85,1.88l-2.01,-2.26l-1.22,-0.41ZM450.22,435.48l-0.09,-0.22l0.15,-0.02l0.07,0.06l-0.13,0.18ZM443.16,443.4l-0.67,-0.59l0.57,-0.82l0.8,0.62l1.27,-0.48l0.6,0.56l-1.47,0.57l-0.46,-0.45l-0.63,0.58ZM420.49,356.11l-0.55,-0.92l0.13,-1.6l-0.7,-0.77l0.43,-1.14l2.83,-1.07l1.45,-1.35l2.99,-0.46l-0.55,1.07l0.66,1.19l3.07,0.96l-0.42,2.09l1.41,2.84l1.95,0.03l0.95,0.71l5.12,-0.31l0.42,0.41l0.43,2.15l-1.38,1.49l-0.37,1.37l1.04,1.03l0.88,0.02l0.42,1.09l0.64,-0.48l0.63,0.9l-2.27,3.87l0.71,0.73l3.15,-0.69l-1.53,3.69l-2.28,2.3l0.61,0.96l-0.37,0.4l-2.82,-2.63l0.26,-0.67l-2.06,-3.62l-0.88,-0.58l-0.94,0.27l-0.55,-1.16l-0.65,0.12l-0.64,-1.62l-1.13,-0.25l-0.04,-1.26l-1.06,-0.98l-1.11,-0.16l-1.01,-2.81l-1.87,-2.03l-2.16,-0.38l-0.55,-0.79l-1.37,1.46l0.15,-1.8l-1.29,-0.74l0.24,-0.93ZM432.87,403.09l0.13,-1.03l1.2,-0.54l0.42,-0.42l-0.34,-0.52l2.09,-1.73l-0.46,-1.72l0.57,-0.81l-0.57,-0.64l0.57,-0.86l-1.75,-1.8l3.26,1.01l1.57,2.18l-0.04,2.25l-0.88,1.77l1.14,0.27l1.47,2.34l-1.36,1.02l-0.48,-0.39l-4.8,2.35l0.36,-2.51l-0.53,-0.5l-1.57,0.27ZM440.58,444.18l0.07,-0.33l0.45,-0.35l-0.31,0.65l-0.21,0.04ZM431.75,470.64l1.26,-0.66l3.6,3.02l1.01,0.18l0.55,-0.48l1.35,0.97l-0.18,0.67l0.82,1.04l-0.6,0.42l-2.63,-0.48l-1.45,-2.94l-2.4,0.0l-1.34,-1.73ZM416.32,436.84l0.02,-0.43l0.55,-0.05l1.45,1.16l1.53,-0.16l4.95,6.08l-1.72,1.98l-0.44,-0.34l-0.71,0.58l-1.03,1.92l-0.76,-0.15l-0.64,-1.06l0.5,-0.81l-0.9,-0.31l-0.46,-1.4l0.37,-0.48l-1.21,-0.85l0.33,-0.66l-0.95,-0.75l1.8,-0.96l-1.77,-0.95l0.28,-0.46l-0.76,-0.7l0.3,-0.81l-0.75,-0.38ZM422.13,448.17l0.0,-0.02l0.02,0.0l-0.02,0.02ZM418.49,384.43l-0.19,-0.05l0.42,0.05l-0.23,0.0ZM419.3,384.48l1.78,-2.01l2.05,-0.35l-0.55,1.98l0.33,0.94l-3.61,-0.56ZM413.17,459.53l0.39,-0.78l2.86,0.88l0.61,1.77l-1.01,0.75l-2.0,-0.53l-0.86,-2.09ZM406.38,456.31l-0.02,-0.64l0.43,0.18l2.27,-2.13l1.25,1.45l1.56,-0.44l0.32,0.19l-0.86,1.13l-0.11,1.61l-1.27,1.58l-0.92,-0.3l-1.29,0.7l-0.66,-0.65l0.18,-0.99l-0.88,-0.63l-0.02,-1.08ZM390.6,470.47l-0.11,-0.96l1.03,-1.0l-0.46,-1.49l0.85,-1.1l-0.51,-0.65l1.32,-2.83l1.55,1.67l1.35,-0.3l0.34,0.44l-0.56,1.29l0.8,0.98l1.75,0.15l1.08,1.16l1.18,0.08l1.77,-0.96l0.47,-1.1l-1.78,-2.03l-1.64,0.35l-1.41,-2.23l0.11,-1.3l0.74,-0.27l-0.31,0.68l0.49,0.53l3.35,1.58l2.83,-1.18l0.53,-1.16l1.86,0.73l-0.77,1.31l1.4,3.45l-1.39,2.25l-0.87,-0.16l-3.31,1.43l-0.68,-0.68l-1.55,-0.28l-2.56,1.18l-5.76,0.43l-0.9,0.65l-0.23,-0.65ZM398.01,427.74l0.38,-0.39l1.04,-0.67l-0.83,-1.59l1.18,-0.4l-0.55,-0.81l1.01,-0.62l0.36,-1.13l0.55,0.39l0.45,-0.79l0.78,0.24l0.56,-0.97l2.24,0.08l1.43,0.76l-0.33,0.86l0.38,0.42l-0.8,1.65l0.78,0.44l0.34,1.13l-0.92,-0.76l-0.75,0.53l0.0,2.32l-1.2,0.56l0.2,-0.67l-0.99,-0.78l-1.7,0.4l0.35,-0.94l-0.62,-0.55l-1.07,0.78l-0.53,-0.58l-1.75,1.08ZM394.19,411.77l0.64,-0.69l-0.41,-1.03l0.85,-1.07l-0.03,-1.1l1.65,-1.78l-0.93,-1.64l0.69,-0.71l0.15,-0.78l-0.68,-0.59l0.6,-0.5l-2.63,-0.85l2.54,-3.33l2.51,-1.78l-0.64,3.46l1.0,0.29l0.21,1.12l2.02,0.03l1.23,2.16l-0.38,0.38l-0.8,-0.59l-1.01,0.55l-0.37,0.86l0.4,0.76l-1.19,2.66l-0.56,-0.13l-0.68,1.38l-0.55,-0.14l-1.96,2.55l-1.66,0.51ZM387.38,387.25l-0.33,-0.97l-0.85,0.04l0.99,-1.44l-0.46,-1.51l0.81,-0.66l-0.27,-0.36l1.3,-2.57l1.79,-0.21l0.63,-1.72l1.2,-0.33l0.47,0.84l0.89,-0.94l3.2,1.85l0.36,0.77l-0.91,0.57l0.26,0.51l-0.86,2.17l-2.58,3.62l-3.02,2.11l-1.93,2.45l-0.99,0.06l-0.26,-1.64l0.56,-2.63ZM382.76,458.05l0.87,-0.71l1.0,0.28l-0.35,2.34l-1.37,-1.11l-0.15,-0.8ZM373.3,379.84l1.99,-7.53l0.84,-1.21l0.61,1.1l-0.43,0.43l0.24,0.89l-1.18,1.08l-0.92,2.18l0.3,0.4l-1.45,2.66Z\",\"name\":\"Cyclades\"},\"24\":{\"path\":\"M288.95,133.67l0.57,-1.39l0.2,-3.74l0.99,-2.24l1.15,-0.9l0.91,0.14l0.48,3.87l1.24,0.96l1.69,0.06l1.63,-2.46l2.49,-2.23l-0.31,-3.95l2.09,-2.31l4.43,-1.5l4.02,0.89l2.26,-3.77l4.14,0.82l1.48,-1.18l2.59,-4.5l6.97,1.43l2.6,-2.15l4.06,0.42l1.82,-0.8l3.28,-3.26l4.05,0.42l2.99,-0.3l0.57,0.58l0.24,2.03l1.82,1.52l1.14,0.0l1.31,2.16l1.75,-0.29l2.02,0.75l0.51,-0.51l0.16,0.81l1.73,1.19l-1.36,0.79l-4.51,0.0l-0.99,0.71l-0.79,2.88l1.31,4.02l1.32,0.75l-0.15,0.6l0.99,1.3l2.61,2.24l3.02,1.22l2.38,-0.07l0.53,0.43l2.63,-0.54l-0.04,4.51l-0.24,0.81l-2.64,-2.77l-3.39,-1.66l-2.35,0.41l-3.13,-0.93l-3.33,1.35l-2.06,1.77l-1.12,-0.84l-2.69,-0.7l-0.99,1.23l0.19,0.69l-1.28,-0.13l-0.47,0.45l-1.05,4.35l1.18,2.67l2.64,3.04l1.53,0.47l0.15,1.61l1.39,1.51l1.25,0.34l1.24,-0.57l1.3,1.21l6.81,2.1l1.93,1.86l2.95,1.04l1.09,1.14l-0.72,0.84l-0.2,1.65l2.11,2.19l-1.63,1.71l0.64,0.94l1.93,-0.03l0.33,1.35l-0.27,0.98l-0.96,0.18l-1.56,1.79l0.85,1.19l-2.38,0.8l1.17,0.99l1.07,-0.04l-0.9,0.45l-1.44,-0.26l-1.49,0.96l-1.47,-0.9l0.5,-1.3l-1.04,-0.86l-0.21,0.9l-0.57,-0.0l0.02,-1.9l-1.34,-1.28l-1.34,-0.1l-0.85,-1.68l-2.06,-0.93l-1.22,0.43l-0.24,-1.76l-2.02,-2.22l0.38,-2.09l-1.42,-0.83l-0.11,-1.83l-3.1,-2.57l-1.85,-3.43l-1.41,-1.36l-0.98,-0.19l-0.24,-0.8l-2.28,-1.98l-2.91,-0.41l-2.47,0.34l-2.59,-1.14l-1.7,0.08l-2.61,-2.1l-2.8,-0.26l-2.61,-1.4l-2.1,-0.23l-1.38,0.72l-2.92,3.12l-1.75,3.48l-0.51,-1.62l-2.0,-1.72l-5.56,-1.81l-2.01,-0.09l-1.69,-1.28l-2.39,-0.21l-2.36,-1.99l-6.25,-2.37ZM315.18,150.84l2.0,0.36l1.61,1.12l1.69,2.3l1.01,2.63l3.62,3.89l7.71,3.46l3.66,1.19l1.97,0.08l0.92,0.87l-0.3,0.69l1.63,2.98l1.16,0.49l2.78,-0.31l0.19,0.74l-2.37,0.7l-2.39,-0.85l-3.24,0.26l-3.9,-0.62l-1.21,-1.03l-1.8,-0.21l-7.19,-3.31l-1.95,0.0l-1.76,0.93l-2.91,-0.31l-1.13,0.47l1.27,-2.05l0.31,-2.01l-3.09,-4.6l-0.22,-1.19l-2.43,-1.83l-0.17,-1.23l1.38,-2.73l-0.5,-0.99l0.79,-3.51l-0.46,-1.85l1.35,1.68l0.53,2.3l1.47,1.51ZM311.83,145.21l0.0,0.05l-0.01,-0.06l0.01,0.01ZM311.77,145.09l0.0,-0.04l0.01,0.05l-0.01,-0.01ZM311.8,145.12l0.01,0.01l-0.0,0.04l-0.01,-0.01l0.0,-0.04ZM347.7,144.3l-0.23,-0.35l-0.04,-0.53l0.59,0.44l-0.32,0.44ZM356.51,133.08l1.6,-0.55l0.63,0.76l-1.11,0.41l-1.13,-0.62ZM359.96,134.69l0.01,-0.01l0.07,0.07l-0.02,0.0l-0.06,-0.06Z\",\"name\":\"Chalkidiki\"},\"25\":{\"path\":\"M238.06,57.62l3.34,1.83l3.02,0.11l6.61,-1.25l3.21,1.2l1.77,-1.29l2.48,-4.13l1.12,-0.62l2.17,2.47l2.3,1.02l1.53,-1.3l1.16,-2.35l0.79,-11.67l0.59,-1.95l3.0,-1.17l3.7,0.45l-0.43,5.56l1.2,4.1l-1.06,3.85l0.73,1.81l1.41,1.04l2.76,0.69l4.62,-2.72l0.58,0.95l-0.1,1.48l4.33,4.57l12.31,4.52l0.19,1.2l-0.79,1.18l-0.1,1.66l3.73,2.62l0.66,1.09l-0.81,0.82l-4.58,1.55l-2.26,2.23l-5.83,0.84l-5.21,2.32l-1.05,1.57l0.12,3.55l-4.63,2.25l-1.84,2.21l-1.38,-0.19l-5.99,1.36l-4.58,-0.43l-1.5,0.28l-2.57,1.83l-2.21,-1.7l-0.84,-2.52l-0.06,-2.87l-1.66,-0.44l-1.73,0.89l-1.35,1.62l-9.75,-2.22l-6.01,0.56l-1.3,-2.76l-3.99,-1.96l-0.58,-1.63l-2.09,-2.63l-4.66,-1.23l-0.77,-2.62l0.58,-0.84l2.71,-0.08l0.35,-1.51l1.35,-1.37l-0.29,-1.21l1.08,-2.71l-0.11,-5.36l0.91,-3.05l1.46,0.97l4.23,-0.49Z\",\"name\":\"Kilkis\"},\"26\":{\"path\":\"M211.87,55.91l0.97,-0.03l0.35,0.81l2.96,1.76l1.98,0.3l3.5,-3.04l3.69,-0.67l2.74,0.05l3.56,1.81l-0.95,3.24l0.11,5.34l-1.06,2.59l0.24,1.33l-1.17,0.93l-0.12,1.22l-2.51,0.07l-1.12,1.34l0.82,3.3l1.5,0.95l3.33,0.49l1.97,2.48l0.67,1.75l3.92,1.89l1.8,3.11l6.08,-0.6l9.74,2.23l0.26,0.33l-0.85,0.29l-1.31,-0.68l-2.85,-0.18l-0.4,1.32l-4.38,0.64l2.67,1.78l0.86,2.56l1.52,1.95l-0.96,-0.05l-2.88,1.81l-2.85,0.31l-1.82,2.39l-1.36,0.47l-2.69,0.07l-1.66,-0.85l-3.49,3.29l-2.89,1.63l-2.21,-2.73l-3.86,-2.37l-11.47,-3.0l-1.72,0.17l-1.08,1.13l-0.08,1.24l-4.29,1.33l-7.33,1.22l-9.96,-1.87l1.72,-3.68l-0.01,-1.47l-2.85,-1.22l-1.99,-5.47l-1.13,-1.18l0.3,-0.7l2.67,0.13l4.59,-1.16l1.47,-1.15l0.38,-1.49l-1.33,-1.56l-2.59,-1.15l-0.54,-3.37l2.17,-0.35l1.01,-1.14l0.56,-2.68l2.19,-1.61l1.49,-2.59l1.42,-0.56l0.68,-1.48l1.05,-0.26l0.95,-1.52l0.35,-3.17l4.14,-2.88l5.48,-0.88l1.1,-0.73l0.85,-1.56Z\",\"name\":\"Pella\"},\"27\":{\"path\":\"M250.07,150.49l1.64,4.32l0.15,3.81l1.34,1.78l0.57,2.41l3.71,2.96l5.34,2.63l0.46,1.07l-4.87,0.76l-1.29,-0.93l-1.54,-0.21l-6.18,1.56l-2.75,-0.9l-2.32,-2.06l-1.83,-2.89l-5.3,-3.33l-2.29,-2.3l-0.85,-2.53l0.21,-3.97l-0.8,-1.74l-2.89,-1.44l-3.34,1.03l-4.56,4.61l-0.97,-0.33l-0.47,-1.09l-0.02,-2.69l0.99,-2.4l-0.31,-0.47l-4.12,-0.86l-2.37,1.52l-0.28,-0.65l-0.21,-1.66l0.46,-1.2l2.95,-1.26l1.2,-1.21l0.35,-2.92l3.0,-5.52l1.79,-1.14l2.84,-0.32l1.8,-1.1l3.35,-3.66l6.04,-4.69l2.9,-7.46l2.63,-0.51l2.63,1.89l4.04,-0.33l0.43,1.25l2.37,1.35l-0.6,1.36l1.62,1.69l-0.07,1.42l1.42,4.56l2.84,1.31l-4.47,7.52l-1.67,5.31l0.7,1.38l-2.74,3.26l-0.68,3.02Z\",\"name\":\"Pieria\"},\"20\":{\"path\":\"M74.09,165.63l4.23,0.25l1.93,-0.81l0.4,-2.07l1.27,-2.06l-0.33,-1.04l2.88,-1.98l2.93,0.92l1.98,-1.52l2.73,1.55l1.47,-0.11l2.95,-0.61l1.75,-1.67l4.17,-0.51l0.15,-3.19l1.43,-2.34l-1.44,-1.51l0.29,-1.86l2.05,-0.83l1.5,-2.6l-0.3,-2.94l-1.01,-1.1l0.38,-1.32l1.28,-1.16l0.45,-1.26l3.27,0.53l2.81,-1.98l2.6,-0.55l0.98,1.19l1.6,4.35l3.31,3.72l2.09,4.02l0.99,3.83l-0.23,1.33l-1.96,3.23l1.25,1.38l1.06,3.97l2.11,2.57l3.34,-1.16l0.89,0.66l-0.18,2.46l-2.04,3.71l2.46,2.52l1.04,5.09l1.54,2.86l1.83,0.62l7.34,-2.0l2.67,0.12l4.9,2.6l0.02,0.51l-1.64,-0.42l-1.75,0.56l-2.54,2.14l-0.84,1.46l-0.51,1.44l1.38,7.58l-0.88,0.04l-1.35,-0.93l-3.08,-0.17l-2.91,2.05l1.0,5.99l3.27,3.08l-0.4,2.49l0.61,2.41l-1.13,1.93l-2.03,-0.59l-2.69,1.76l-4.4,-1.69l-1.46,1.41l-0.92,3.67l0.12,2.46l-1.18,2.37l-2.98,1.82l-1.37,-0.68l-1.46,0.97l-1.5,-0.1l-2.81,1.86l-7.21,2.45l-2.44,-1.78l-3.07,-0.76l-1.42,1.43l-2.41,4.57l-0.65,0.19l-2.48,-7.54l-1.51,-2.75l-0.18,-3.64l-1.25,-2.83l0.16,-2.8l-0.62,-1.35l-5.57,-1.41l-3.37,-4.07l0.01,-4.71l1.8,-2.57l-2.19,-3.85l-0.71,-4.09l-4.67,-0.88l-1.93,-2.06l-0.2,-1.8l1.34,0.57l1.07,-0.39l1.89,-2.43l0.31,-2.87l-2.25,-2.71l-0.29,-1.74l-3.64,-3.22l0.51,-2.16l-2.39,-3.57Z\",\"name\":\"Ioannina\"},\"21\":{\"path\":\"M76.32,229.36l-3.08,-2.41l1.54,-1.5l2.83,-1.16l2.53,0.01l1.37,1.27l0.99,2.25l3.52,2.73l-0.18,0.61l-1.73,-1.12l-0.74,0.72l-0.77,-0.05l-1.84,-0.98l-2.0,0.47l-2.37,-0.29l-0.07,-0.55ZM87.58,231.43l1.78,0.52l3.46,-1.56l2.07,1.26l2.77,-0.72l2.45,0.42l1.42,-0.55l2.46,-4.67l1.13,-1.12l2.37,0.76l2.81,1.86l7.46,-2.54l2.82,-1.85l1.5,0.1l1.36,-0.9l0.53,0.39l-0.98,1.11l-0.43,5.67l-1.22,2.46l-1.18,0.98l-4.65,1.36l-0.74,1.43l1.81,5.73l-0.18,1.03l-2.67,3.22l-2.84,-0.25l-1.73,2.21l-1.46,0.76l-1.37,3.85l0.11,1.6l1.18,2.47l2.18,0.81l0.79,-0.21l2.74,2.2l1.07,0.1l0.21,0.66l-1.67,-0.31l-1.45,-1.13l-1.92,0.0l-0.33,-0.95l-0.82,1.14l0.42,2.04l-1.06,0.3l-0.75,-0.44l-1.92,-3.99l0.89,-0.58l0.35,-1.2l-0.26,-1.9l-0.96,-1.72l-3.4,-3.37l-1.01,-0.67l-0.71,0.2l-2.7,-2.05l-5.65,-6.69l-4.35,-2.72l0.42,-1.58l-0.74,-2.3l0.59,-0.73Z\",\"name\":\"Preveza\"},\"48\":{\"path\":\"M390.39,225.38l-0.42,-0.15l0.75,-2.52l0.2,1.24l-0.52,1.43ZM376.93,222.06l0.9,-1.16l0.04,-1.94l0.88,-0.87l-0.02,1.04l0.66,0.75l-0.29,0.72l-1.57,1.68l-0.62,-0.21ZM379.18,210.53l-0.05,0.0l0.04,-0.13l0.06,0.06l-0.05,0.06ZM375.77,224.78l0.04,-0.03l0.17,0.24l-0.21,-0.21ZM373.95,250.66l0.31,-0.29l0.21,0.21l-0.21,-0.08l-0.3,0.16ZM373.59,249.38l-0.34,-1.34l0.28,-0.49l0.58,0.53l-0.53,1.31ZM368.63,226.67l0.66,-2.56l1.38,-1.36l0.18,0.45l-1.17,1.51l1.52,0.5l0.72,-1.07l0.46,0.73l-0.48,1.53l0.39,1.13l-1.85,1.5l-1.26,-0.8l1.08,-0.25l0.27,-0.79l-1.04,-1.04l-0.87,0.51ZM360.68,240.06l-0.18,-0.35l1.74,-0.61l1.42,0.35l-0.32,1.5l-0.84,-0.65l-0.96,0.62l-0.88,-0.86ZM363.59,238.14l0.0,-0.08l0.03,-0.06l0.05,0.1l-0.09,0.04ZM363.63,237.97l-1.06,-1.49l0.3,-1.2l0.24,1.81l0.7,0.3l-0.19,0.58ZM351.98,242.46l3.62,-1.95l0.24,-0.64l-0.62,-0.58l0.36,-1.01l-0.5,-0.5l3.18,-2.51l0.46,-1.88l1.55,-1.97l2.65,0.2l0.13,1.0l-3.83,4.81l-0.92,2.7l-1.15,0.26l-3.69,3.59l-0.71,-0.87l-0.91,-0.06l0.18,-0.6ZM360.48,231.05l-0.09,-0.14l0.77,-0.95l0.2,0.5l-0.88,0.6ZM363.28,246.21l0.08,-0.06l-0.03,0.19l-0.04,-0.04l-0.0,-0.09ZM333.53,238.83l-0.6,-1.18l1.21,-0.31l0.05,0.84l1.7,0.84l1.57,2.0l5.39,2.35l0.33,0.49l-0.42,0.66l1.12,1.32l1.04,-1.05l2.83,0.05l0.46,0.48l-1.81,2.72l-1.36,0.18l-1.63,1.38l-1.11,-0.21l0.2,-0.63l-1.3,-0.91l-2.49,0.38l-0.62,-1.01l0.66,-1.1l-0.75,-0.37l-0.74,-2.11l-1.4,-0.89l-2.34,-3.93ZM317.34,242.29l-0.3,-0.33l0.76,-0.65l3.3,-1.22l0.36,-1.62l1.07,-0.91l1.52,0.22l2.31,2.24l-0.0,0.78l-0.27,0.29l-0.44,-0.65l-2.42,1.25l-1.38,1.82l0.53,0.81l-0.58,-0.1l-0.55,-1.21l-1.44,0.51l-1.71,-1.21l-0.7,0.42l-0.04,-0.45ZM325.54,245.15l-0.08,-0.08l0.02,-0.1l0.02,0.09l0.04,0.09ZM325.49,244.9l0.01,-0.01l-0.01,0.03l0.0,-0.02ZM271.1,232.62l0.53,4.39l2.23,4.02l0.07,1.24l1.3,0.48l1.79,-1.76l1.18,0.35l0.66,0.67l0.29,3.29l0.86,1.12l0.94,0.31l1.38,-1.1l2.02,1.76l-0.45,1.05l1.42,1.98l-0.57,1.07l0.3,1.33l-2.29,0.61l-0.24,2.33l1.19,0.55l0.49,-0.69l1.81,-0.36l2.79,-1.84l2.18,-0.08l-0.6,1.12l-1.91,0.08l-0.66,0.55l-1.54,3.67l-0.77,0.47l-2.2,-0.76l-3.0,1.26l-4.31,0.28l-2.39,-2.11l-1.49,-0.48l-2.79,0.3l-5.59,-1.13l-6.59,-3.53l-6.14,0.57l-2.92,-0.21l-1.07,-0.59l-0.82,-5.14l0.37,-1.93l2.74,-1.58l0.65,-1.4l0.99,-3.64l-0.38,-5.28l0.88,-0.91l2.97,-0.41l3.46,-3.27l0.63,-1.4l0.22,-1.46l-0.58,-1.36l-2.42,-1.94l0.42,-2.01l1.15,-0.92l1.16,-0.03l1.75,0.97l1.69,-0.65l1.86,-2.25l-0.22,-2.72l2.81,-3.22l-0.16,-1.42l1.01,-0.8l4.44,-0.24l3.21,-3.31l2.12,-3.47l2.62,-1.72l1.53,2.49l2.86,1.23l0.99,0.98l1.16,-0.13l1.65,2.08l2.23,0.03l3.63,2.67l1.64,3.72l2.75,2.51l1.53,2.24l1.5,0.91l1.1,2.75l5.41,4.76l0.55,3.48l2.59,2.62l-0.0,0.98l1.22,1.24l1.54,3.71l-1.23,1.83l-2.35,1.84l-2.26,-0.17l-1.84,1.33l-1.59,-0.03l-0.62,-0.54l-1.47,1.4l0.4,0.76l0.91,0.23l-0.59,0.26l-2.82,0.07l-1.4,1.02l-1.8,-0.38l-1.09,1.02l-2.06,-0.31l3.72,-2.3l1.12,0.18l0.63,-0.8l0.85,0.18l0.62,-0.6l-0.31,-2.15l2.0,1.21l0.74,-0.46l1.02,-2.89l-0.24,-1.13l-2.3,-2.06l-1.01,-2.63l0.39,-1.01l-1.4,-2.21l-3.86,-3.43l-3.68,-0.9l-1.18,0.41l-2.96,-0.44l-0.35,-1.81l-1.82,-1.48l-1.68,0.36l-2.37,-1.31l-1.54,1.25l0.6,0.86l0.69,-0.01l-1.42,1.95l1.38,2.07l-2.63,0.03l-0.58,0.67l-1.59,-0.46l-2.09,0.98l-0.76,-0.23l-1.96,1.17l-0.55,1.67ZM276.76,240.42l-0.41,-0.55l0.77,-0.36l-0.08,1.09l-0.27,-0.18ZM292.32,248.22l-1.8,-1.0l1.32,-1.57l-0.02,-1.77l0.57,-0.57l1.13,0.38l0.86,-0.99l0.08,1.08l0.58,0.4l-1.78,2.4l0.27,1.37l-1.2,0.28ZM291.97,241.94l0.11,-0.25l0.73,-0.28l-0.44,0.53l-0.4,-0.0Z\",\"name\":\"Magnesia\"},\"49\":{\"path\":\"M198.51,179.02l1.82,1.52l0.54,7.57l1.26,5.61l1.57,0.67l1.63,-1.07l4.06,-0.59l0.96,0.96l0.5,2.72l1.56,1.02l2.55,-0.11l0.99,1.24l0.57,2.79l2.79,1.15l0.72,1.17l-0.15,2.01l-3.17,0.03l-6.6,2.52l-4.08,-1.31l-4.82,1.81l-2.84,0.33l-1.44,1.09l-3.15,0.32l-3.3,1.92l-1.14,1.27l-0.67,2.23l-1.15,0.41l-1.0,-0.54l-0.85,-1.46l-1.37,-0.2l-3.42,2.33l-2.81,0.34l-2.15,1.35l-2.2,-1.92l-1.81,0.21l-2.29,3.66l-3.32,3.5l-1.19,0.18l-2.49,-1.58l-4.21,-0.84l-1.82,0.73l-1.3,2.42l0.01,1.1l-1.06,0.22l-3.95,-0.55l-2.57,-1.77l-1.22,-3.25l-3.63,-2.72l-0.49,-1.38l0.23,-1.58l-1.67,-3.0l1.22,-2.35l-0.65,-2.54l0.36,-2.67l-0.88,-1.39l-1.44,-0.56l-1.0,-1.23l-0.96,-5.21l2.24,-1.62l2.85,0.16l1.41,0.94l1.81,-0.48l-1.38,-8.0l1.18,-2.34l1.45,-0.75l0.85,-1.19l1.28,-0.46l1.95,0.5l1.19,0.93l1.53,-0.07l4.93,-1.89l1.92,-2.34l4.42,-2.04l11.55,1.38l7.93,1.89l2.91,0.14l5.83,-1.17l4.08,0.59l1.07,-0.74Z\",\"name\":\"Trikala\"},\"46\":{\"path\":\"M219.74,206.48l-0.38,1.99l0.47,1.71l1.55,1.02l2.82,-0.06l0.91,1.15l-1.44,4.86l0.42,1.5l1.81,2.47l-2.43,1.5l-0.78,1.15l0.21,1.46l-1.53,2.39l0.14,1.52l3.87,5.07l-6.83,7.11l-2.42,5.22l-1.49,1.15l-4.48,1.38l-2.16,2.24l-3.26,1.47l-3.83,0.41l-0.19,-4.97l-1.32,-1.56l-2.59,-0.87l-2.93,-1.95l-1.62,0.11l-4.42,2.86l-2.53,0.32l-1.56,-1.93l0.68,-2.28l-0.61,-1.62l-2.55,-1.47l-0.43,-3.76l-0.72,-1.5l-1.23,-0.94l-7.21,1.55l-1.59,1.04l-1.61,2.1l-2.22,-1.68l-1.78,0.23l-3.06,1.97l-3.53,3.34l-2.61,-2.9l-0.24,-1.32l4.03,-7.13l-1.19,-3.05l-1.86,-2.03l-0.04,-1.04l1.12,-2.09l2.6,-0.53l5.02,2.43l1.75,-0.16l3.68,-3.76l2.01,-3.42l1.1,-0.22l2.76,2.02l2.16,-1.4l2.92,-0.38l3.19,-2.26l0.97,0.14l0.68,1.34l1.61,0.72l1.76,-0.8l0.7,-2.34l0.97,-1.03l2.98,-1.72l3.1,-0.3l1.45,-1.09l2.87,-0.35l4.71,-1.77l3.94,1.31l6.83,-2.56l2.84,-0.0Z\",\"name\":\"Karditsa\"},\"47\":{\"path\":\"M214.61,148.99l0.35,0.79l0.7,0.06l2.09,-1.75l3.6,0.76l-0.95,2.18l0.06,2.88l0.59,1.36l1.58,0.67l2.04,-1.34l2.88,-3.35l3.11,-0.96l2.31,1.26l0.5,1.15l-0.19,4.11l1.0,2.84l2.46,2.45l5.25,3.31l1.76,2.82l2.43,2.16l3.31,1.05l6.21,-1.57l2.65,1.16l4.94,-0.76l-0.27,1.74l1.91,4.05l2.8,1.51l3.17,3.33l3.41,2.12l0.99,6.32l3.8,11.32l-2.8,1.89l-2.09,3.44l-3.08,3.17l-4.01,0.08l-1.65,1.14l0.12,1.52l-2.79,3.2l0.22,2.73l-1.68,2.03l-1.22,0.42l-1.33,-0.88l-1.65,-0.03l-1.7,1.3l-0.52,2.63l2.52,2.14l0.28,2.21l-0.46,1.07l-3.3,3.12l-2.75,0.3l-1.3,1.22l-0.35,1.57l0.59,4.06l-0.96,3.53l-0.46,1.07l-2.6,1.44l-4.94,0.46l-0.97,-0.75l-0.58,-3.98l-1.37,-1.2l-2.89,-1.75l-5.52,-1.84l-3.67,-2.01l-3.95,-5.28l-0.03,-1.0l1.49,-2.19l-0.21,-1.46l0.61,-0.89l2.6,-1.7l-2.19,-4.41l1.39,-5.11l-1.39,-1.59l-3.07,0.01l-0.98,-0.75l0.33,-6.27l-1.08,-1.57l-2.44,-0.83l-0.54,-2.65l-1.22,-1.61l-3.06,-0.09l-0.96,-0.73l-0.34,-2.43l-1.31,-1.42l-4.71,0.52l-1.36,1.02l-0.96,-0.32l-0.5,-1.15l-1.17,-11.78l-2.17,-1.97l-0.25,-5.12l-0.6,-1.36l-2.16,-1.26l4.79,-3.95l3.25,-1.7l1.62,-2.57l0.75,-2.43l3.78,-3.52l2.37,-3.48l0.77,-2.47l1.34,-1.5Z\",\"name\":\"Larisa\"},\"44\":{\"path\":\"M195.79,313.36l0.64,-2.02l-0.19,-1.83l1.52,-2.59l3.11,-2.43l4.43,-1.37l0.92,-1.28l-0.23,-2.96l1.26,-2.46l-2.31,-2.71l-0.03,-0.94l1.03,-1.3l-0.3,-2.71l0.99,-2.48l-0.34,-2.44l1.25,-3.01l3.8,2.14l3.26,0.48l3.04,-0.58l4.94,-4.64l4.41,-2.23l2.63,0.62l0.44,1.03l-0.69,4.05l1.83,2.65l3.5,-1.66l2.54,0.39l1.14,0.39l1.72,2.76l3.64,2.82l4.27,-0.55l1.26,6.95l1.03,2.53l-5.49,-1.72l-1.69,1.12l-0.07,0.56l1.07,1.37l1.21,3.97l2.74,3.39l-1.21,1.09l-0.21,1.45l0.57,1.34l2.84,1.12l2.72,-0.26l0.39,0.91l-0.72,3.86l0.98,1.46l-0.33,0.85l1.34,0.91l-1.14,0.92l0.13,0.86l-0.86,0.93l-1.3,0.1l-1.21,-2.68l-1.56,-1.39l1.2,-0.14l0.36,-1.19l-2.04,-1.68l-0.66,-1.86l-4.26,-4.58l-1.7,0.14l-1.17,-1.72l-0.65,0.25l-0.46,-0.68l-0.84,0.48l0.02,1.56l0.92,1.64l-0.85,-0.18l-2.13,2.31l2.26,2.12l-1.38,0.32l-0.43,2.56l-0.93,-0.33l-0.22,-1.22l-2.71,0.48l-2.04,-1.12l-0.98,1.63l-2.94,-2.24l-0.82,0.65l-0.72,-0.4l-2.72,1.94l-0.79,1.51l-2.1,-2.48l-0.95,0.51l-1.48,-2.06l-1.86,-0.05l-4.12,-2.6l-3.66,0.51l-0.81,-0.89l-4.36,-0.71l-3.56,3.26l-1.21,0.33l-1.91,-0.84ZM212.48,314.35l0.0,-0.16l0.4,0.13l-0.17,0.26l-0.23,-0.23ZM212.85,314.9l0.0,-0.06l0.03,0.03l-0.03,0.03Z\",\"name\":\"Fokida\"},\"45\":{\"path\":\"M239.43,245.04l1.66,1.29l4.62,-0.43l0.03,6.01l0.58,1.35l1.44,0.89l3.28,0.26l5.93,-0.58l6.43,3.49l5.77,1.18l2.93,-0.29l1.15,0.4l2.61,2.19l4.55,-0.29l3.04,-1.25l1.95,0.83l-0.16,1.11l-1.29,-0.78l-2.02,1.31l-0.78,-0.6l-0.75,0.91l0.58,0.79l-0.88,0.04l-0.45,0.68l-4.89,-0.73l-1.76,1.86l-0.17,1.61l-2.21,0.14l-1.42,1.03l-0.88,-0.39l-1.6,1.05l-2.29,-0.48l-1.23,-1.23l-1.27,0.85l-1.78,-0.27l-1.82,-2.04l-2.1,-0.74l-1.18,0.15l-2.24,1.82l-2.3,0.82l-0.6,0.76l0.44,0.6l-1.55,1.22l0.92,0.66l1.84,-0.88l-1.21,0.91l0.58,1.96l1.22,-0.37l0.75,1.26l1.33,-0.64l0.88,0.82l1.84,-1.45l0.77,0.63l1.75,-0.15l2.51,-1.35l6.19,6.36l1.49,-0.54l1.45,0.31l1.07,-0.73l3.39,3.13l2.66,-2.05l1.63,0.52l1.19,1.51l2.63,0.95l3.97,-0.41l0.97,-0.64l2.39,3.25l-0.53,1.67l0.35,1.66l1.47,1.89l0.22,1.59l1.8,1.91l2.14,-0.69l0.88,-1.24l1.41,-0.03l0.55,0.54l0.58,-0.74l1.22,0.0l0.62,-1.06l-2.05,-1.46l1.82,-0.36l4.73,3.4l2.25,-0.56l2.32,0.66l1.56,1.6l0.25,1.38l-2.33,1.12l-2.02,2.98l0.68,0.45l0.68,-0.83l1.0,0.15l1.87,3.24l0.85,-0.59l2.22,0.85l-3.9,0.27l-8.99,1.92l-3.18,-3.5l-2.77,-0.51l-0.52,-2.29l-1.56,-0.75l-3.11,0.53l-3.29,3.29l-1.27,0.24l-3.44,-0.3l-2.72,-1.16l-5.4,0.8l-1.01,-2.84l-4.68,-0.73l-5.11,1.02l-9.93,4.9l-2.32,-1.28l-1.03,-1.32l-1.28,-3.12l-1.4,-7.31l-1.66,-0.45l-2.87,0.8l-3.47,-2.69l-1.66,-2.71l-1.52,-0.62l-3.04,-0.38l-2.87,1.64l-1.42,-2.11l0.73,-3.72l-0.87,-1.85l-2.94,-0.69l-1.79,0.57l-3.21,1.85l-4.69,4.49l-2.72,0.54l-3.11,-0.46l-7.1,-3.98l-1.39,-3.49l-3.08,-2.97l-1.39,-0.51l-2.23,-1.96l-0.61,-4.34l-2.9,-4.86l2.77,-6.33l3.85,-2.52l0.76,0.11l-0.32,0.96l0.65,1.61l4.41,-0.38l3.46,-1.55l2.18,-2.25l4.47,-1.37l1.76,-1.42l2.36,-5.14l6.75,-7.03l3.62,1.97l5.51,1.83l2.71,1.65l1.08,0.83l0.58,3.98ZM294.65,289.32l0.05,0.0l0.17,0.13l-0.05,0.05l-0.17,-0.17ZM293.63,286.56l-0.02,-0.26l0.05,-0.06l0.12,0.17l-0.15,0.15ZM293.66,286.09l0.05,0.04l-0.03,0.03l0.0,-0.04l-0.02,-0.02Z\",\"name\":\"Fthiotida\"},\"42\":{\"path\":\"M399.78,267.63l-0.5,-0.12l1.69,-1.3l-0.02,-1.03l1.31,-0.94l-0.15,-1.36l-0.85,-0.43l-0.47,-1.24l0.81,-1.39l1.82,-1.13l0.61,0.77l0.76,0.03l0.36,0.87l5.26,3.23l-0.8,1.29l0.58,2.36l-0.78,0.71l0.95,1.04l1.26,-0.15l1.43,1.66l0.78,-0.08l2.88,1.94l1.7,1.91l0.31,1.13l-0.72,0.89l0.53,0.6l-2.02,0.77l-1.39,-0.85l-1.08,1.05l-1.98,-2.33l-0.9,-0.1l-1.91,1.04l0.44,1.62l-0.81,-0.61l-0.22,-1.12l-1.44,-0.52l3.05,-1.74l-0.18,-2.84l-1.17,-0.78l-1.13,0.87l-0.56,-1.43l-1.92,0.45l0.37,-0.71l-0.42,-0.43l-1.63,0.56l-0.6,-1.69l-0.53,-0.4l-0.56,0.58l-0.8,-1.17l-1.35,0.54ZM403.11,274.0l1.09,-1.66l0.39,-0.39l-1.01,1.45l0.15,0.74l-0.62,-0.15ZM404.67,271.81l0.0,-0.02l0.01,-0.01l0.0,0.02l-0.01,0.01ZM404.7,271.75l-0.01,0.01l0.01,-0.05l0.01,0.0l0.0,0.04ZM413.17,279.19l-0.89,-0.04l0.51,-0.64l1.27,0.78l-0.89,-0.1ZM273.39,271.59l0.0,-1.02l1.16,-1.72l0.61,0.18l1.6,-0.92l1.71,0.1l1.59,-1.36l1.13,0.1l0.51,-0.67l3.9,-1.25l1.07,0.26l3.33,-3.2l2.49,0.28l0.93,-1.17l0.22,-2.9l2.9,-2.23l5.71,0.38l1.69,-1.51l2.3,-0.23l2.12,-1.44l2.77,-0.05l1.69,2.18l2.75,0.72l-0.57,1.96l1.23,2.04l3.44,0.89l-0.27,4.36l1.21,1.81l-0.18,1.26l1.25,1.84l1.54,1.65l3.36,1.33l0.45,1.25l0.56,-0.15l1.06,1.1l2.05,0.59l0.66,1.18l0.7,-0.78l-0.16,0.81l0.73,1.35l1.13,-0.41l2.09,1.28l1.3,-0.28l1.81,0.59l1.18,-0.15l1.53,-1.29l2.43,3.17l1.09,0.56l-0.32,0.54l1.1,1.32l1.16,0.66l2.87,0.28l4.03,2.17l2.51,-0.63l5.0,1.62l2.5,-1.63l1.9,0.51l0.36,-0.72l1.22,0.33l0.97,-0.82l7.74,2.58l0.53,0.35l-1.15,0.41l-1.41,1.7l0.13,2.96l3.36,3.16l5.06,3.42l-3.33,3.58l0.36,2.78l-0.71,0.66l0.37,0.64l-0.53,0.51l1.87,1.77l-1.24,0.65l-0.59,1.3l2.45,1.5l-0.11,0.82l0.57,0.53l-1.01,2.33l2.02,2.39l0.54,-0.24l-0.33,0.96l1.82,1.75l-0.42,2.7l0.5,0.66l-0.91,0.51l0.13,1.32l2.24,3.1l1.49,0.2l1.98,1.4l0.76,-0.59l-0.15,1.38l2.11,1.57l3.38,-1.02l0.66,0.99l2.5,1.04l3.7,0.23l0.55,-0.51l1.66,-0.02l3.29,0.58l2.87,-1.65l0.04,1.51l-1.34,2.87l0.56,1.5l-0.38,1.07l0.94,1.6l-0.31,2.24l-0.28,1.37l-1.18,1.14l-0.07,1.32l-0.77,0.66l0.33,0.51l-1.33,0.18l-2.2,2.49l-1.32,-0.04l-1.3,-0.66l0.36,-0.86l-1.58,-2.84l-2.67,-1.42l-1.1,-0.03l-2.09,1.01l-0.5,1.63l0.59,1.07l-0.5,1.06l-3.15,-2.38l-0.85,-2.34l-1.59,-0.62l-0.09,-0.78l1.27,-1.44l-1.41,-2.28l-1.33,-0.01l-0.64,-1.44l-1.71,-0.84l-4.09,0.25l0.62,-2.7l-0.86,-0.68l-1.84,0.17l2.15,-1.99l0.44,-1.27l-0.33,-1.32l-1.21,-1.06l-0.42,-2.17l-2.44,-1.62l-1.66,0.25l-0.92,1.19l-0.38,-0.37l3.28,-4.18l-0.35,-1.1l-1.61,-0.63l-1.79,2.71l-0.64,-1.26l0.29,-0.47l-0.83,-0.41l1.51,-0.73l-0.31,-0.45l0.75,-1.01l-0.92,-0.28l-0.31,-1.32l-2.98,-0.92l-1.58,0.51l-2.01,-0.44l1.64,-0.21l1.3,-0.91l-0.79,-2.01l0.68,-1.48l-1.21,-1.8l-1.22,0.6l-1.25,-0.19l-1.63,-1.33l-2.74,1.68l-5.32,0.26l-2.83,-1.45l-2.72,-0.51l-2.59,1.56l-3.22,-1.18l-0.95,0.18l-1.14,-0.97l-2.56,-0.28l-1.47,0.26l-0.77,1.04l-1.14,-0.08l-0.33,-1.2l-1.42,-1.55l0.02,-1.13l-1.19,-1.11l-0.66,0.33l-0.7,-0.59l0.87,-0.83l0.82,0.38l1.03,-0.88l0.96,-3.21l-0.97,-2.09l0.2,-0.77l-2.1,-2.7l-0.95,-0.63l-1.72,0.15l-1.06,-0.94l-2.4,0.47l-1.12,-0.78l-1.27,-4.07l-2.48,-1.65l-0.96,-0.03l-0.61,-1.92l-1.23,-1.32l-3.25,-1.23l-2.88,-2.63l-2.17,-3.3l-1.78,-0.87l-1.27,0.31l-7.06,-6.19l-4.86,-1.64l-4.11,1.28l-2.85,-1.28l-1.17,-2.79l-3.28,0.13l-2.13,-0.84l-1.54,1.71l0.62,0.66l2.29,0.05l0.66,0.77l-0.41,0.83l-3.64,1.25l-3.13,-0.59l-4.73,1.28l0.07,-0.52ZM332.67,307.98l0.56,1.26l-0.59,0.89l2.83,0.84l0.01,2.7l1.95,2.31l-1.91,0.59l-11.47,-4.11l-1.94,-1.7l0.42,-2.49l-1.35,-1.59l-8.44,-0.11l-5.76,3.84l-1.16,-2.61l3.29,-3.53l2.55,-1.82l1.55,0.59l2.17,-1.17l2.6,0.13l0.93,1.05l3.79,-0.1l1.22,1.25l2.67,0.51l2.06,-2.72l0.89,0.25l2.89,2.83l-1.69,1.23l-0.04,1.1l1.96,0.61ZM392.75,271.92l-0.42,-0.44l0.62,-0.8l0.88,0.72l-1.08,0.52ZM387.34,346.2l0.46,-0.55l-0.32,-0.34l0.41,-0.07l-0.1,1.78l-0.45,-0.82ZM383.59,349.84l0.92,-2.75l0.74,-0.4l1.46,0.83l0.35,1.29l-0.49,1.12l-1.63,-0.56l-0.53,0.85l-0.82,-0.4ZM377.77,333.04l-0.54,-0.85l1.26,-0.06l-0.8,0.5l0.08,0.41ZM373.24,328.16l0.04,-0.04l0.01,0.01l-0.0,0.01l-0.04,0.03ZM373.1,327.8l-0.18,-0.24l0.22,-0.29l0.08,0.67l-0.12,-0.14Z\",\"name\":\"Evia\"},\"43\":{\"path\":\"M157.36,242.82l0.92,0.11l3.69,-3.49l2.77,-1.81l1.21,-0.25l2.82,1.75l3.31,-3.24l6.5,-1.51l1.53,1.95l0.41,3.79l2.64,1.62l0.48,1.09l-0.66,2.56l0.72,1.51l1.23,0.93l1.74,0.25l5.95,-3.41l1.17,-0.04l2.62,1.84l2.63,0.9l1.0,1.25l0.27,1.94l-2.53,0.43l-2.76,2.2l-2.97,7.2l2.92,4.84l0.71,4.55l6.73,5.46l0.98,2.23l-7.19,3.47l-4.02,-0.34l-0.9,1.43l0.05,2.48l-2.64,1.91l-1.07,0.16l0.07,-0.96l-1.26,-1.56l-6.9,0.49l-6.69,-3.66l-1.1,-1.09l-1.13,-2.54l0.43,-2.36l5.71,-3.07l0.18,-1.64l-2.83,-1.48l-4.3,-0.87l-2.6,-1.13l-1.04,-0.78l0.14,-3.66l-0.74,-1.81l-7.74,-4.3l-0.25,-0.98l1.94,-3.36l0.46,-2.82l-2.63,-3.88l-0.02,-2.31Z\",\"name\":\"Evritania\"},\"40\":{\"path\":\"M173.44,425.1l0.37,-2.05l1.32,-2.41l4.88,-3.8l1.27,-0.43l2.48,-3.91l0.07,-3.41l-1.25,-3.91l0.88,-0.38l5.15,0.99l2.91,-0.56l2.81,0.58l1.63,-0.87l2.79,-3.31l-0.45,-1.59l0.39,-0.95l3.0,-2.95l1.2,0.88l-0.35,1.82l1.59,1.96l-1.27,5.03l4.57,4.06l0.57,5.15l2.32,1.79l1.6,2.81l2.69,0.87l1.59,2.6l2.47,1.68l1.84,2.94l2.86,-1.41l2.5,-0.05l1.52,2.49l1.32,0.55l0.41,0.96l-1.39,2.07l-0.34,1.59l3.72,3.8l3.2,9.65l-0.68,1.34l1.72,2.54l0.81,2.46l0.02,2.6l-1.41,4.75l-1.73,1.29l-2.04,-6.17l-2.94,-2.72l-0.26,-1.31l-2.77,-3.6l-1.0,-0.07l-0.91,-0.89l-2.43,1.36l-3.16,-1.94l1.61,-2.05l-0.42,-2.57l1.14,-2.64l-0.24,-1.89l-2.11,-1.06l-5.19,-0.48l-6.29,1.61l-4.69,3.0l-0.28,1.91l0.66,0.82l0.02,1.88l-0.79,2.31l-0.28,3.78l0.99,4.33l1.86,1.97l-1.8,1.35l-0.04,1.85l-1.86,0.85l-2.27,2.09l-0.64,-1.89l-1.58,-0.98l-1.16,-1.56l-0.39,-2.37l-0.56,-0.53l-2.36,-0.08l-2.55,1.15l-0.65,-0.68l-1.7,0.03l-1.06,-1.64l-0.98,-0.2l-1.6,-5.8l0.77,-2.06l1.45,-1.18l0.29,-1.74l-2.53,-1.71l-1.9,0.55l0.64,-0.88l-1.62,-3.52l-2.27,-1.69l-0.8,-1.57l-2.16,-1.9l0.45,-2.84l-1.21,-5.95ZM181.17,446.97l-0.13,-0.45l0.15,-0.15l0.08,0.8l-0.1,-0.2ZM187.77,464.51l0.68,-2.69l1.64,0.9l-0.77,2.3l-0.5,-0.44l-0.72,0.53l-0.33,-0.6ZM189.11,465.92l-0.26,0.05l0.1,-0.32l0.04,0.15l0.12,0.13ZM189.02,465.45l0.26,-0.26l0.03,-0.06l0.01,0.03l-0.3,0.29ZM183.39,462.12l-0.22,-0.25l0.1,-0.1l0.38,0.49l-0.33,0.33l0.07,-0.46ZM183.31,462.61l0.04,0.16l-0.07,0.07l-0.06,-0.06l0.09,-0.17ZM183.92,460.86l-0.6,-0.99l0.74,-1.33l0.76,0.45l-0.06,1.44l-0.84,0.42ZM171.45,434.55l-0.04,-0.21l0.76,-0.46l-0.25,0.6l-0.48,0.07Z\",\"name\":\"Messinia\"},\"41\":{\"path\":\"M253.68,316.17l-0.42,-0.18l0.7,-3.81l-0.57,-1.34l-3.16,0.06l-2.35,-0.81l-0.27,-2.02l1.31,-1.45l-0.8,-1.63l-2.09,-2.07l-1.17,-3.9l-0.94,-1.25l0.84,-0.67l5.98,1.87l1.16,1.43l2.78,1.44l1.58,-0.33l8.63,-4.64l4.85,-0.97l4.24,0.65l1.2,2.96l5.63,-0.84l2.58,1.15l3.56,0.31l1.77,-0.39l3.08,-3.18l2.67,-0.5l0.99,0.35l0.54,2.39l3.12,0.73l3.18,3.51l3.2,-0.22l6.23,-1.53l-3.16,2.38l-3.45,3.71l0.14,1.73l1.23,1.97l1.99,-0.32l4.44,-3.42l8.0,0.09l0.86,1.12l-0.3,2.68l2.24,1.93l11.63,4.19l3.26,-0.77l0.99,0.99l2.96,0.41l0.85,-0.45l0.46,0.53l-4.24,1.21l-2.93,2.48l-1.7,2.68l-0.69,8.53l-1.98,2.02l-2.7,1.68l-6.1,-2.21l-3.01,-3.95l-1.36,-0.81l-2.82,0.01l-0.92,-0.73l0.96,-2.35l-0.78,-1.63l-1.41,-0.88l-3.31,0.76l-2.71,1.92l-0.67,4.27l-0.82,0.84l-6.99,-0.46l-0.12,0.78l3.26,1.01l-3.82,-0.72l-2.58,0.48l1.36,-1.48l-2.81,-2.59l-3.53,3.38l-0.7,-0.76l-1.46,0.01l0.75,-0.18l0.53,-0.99l-2.59,-2.1l-5.14,0.17l-0.53,-0.98l-0.46,0.51l-1.64,0.0l-0.88,1.62l0.61,0.85l-0.61,-0.43l-0.43,0.39l-0.61,-3.58l-0.73,-0.63l-1.03,1.25l-0.94,-0.87l-2.55,0.75l-4.3,-0.77l-0.69,-1.11l0.54,-0.49l0.7,0.28l0.3,-1.01l1.06,-0.58l-0.09,-0.61l-8.33,-4.02l-0.93,-1.31l0.74,-1.34l-0.33,-1.5l-2.46,-2.31l-2.81,1.34l0.53,0.91l0.99,0.13l-0.53,0.96l-0.62,-0.05l-0.75,-1.27l-2.35,1.61ZM278.88,330.45l0.0,0.16l-0.05,-0.06l0.05,-0.09ZM280.56,330.51l1.22,-0.87l1.05,0.96l-1.05,0.56l-1.22,-0.65Z\",\"name\":\"Viotia\"},\"1\":{\"path\":\"M335.82,35.31l0.94,-1.66l1.88,-1.15l1.43,0.49l2.88,-0.32l3.11,0.98l3.01,-3.48l3.75,-0.28l0.81,-0.8l1.74,-0.42l0.82,0.25l1.39,-0.72l0.64,-1.63l0.74,0.34l0.61,1.67l2.33,1.3l3.85,-2.34l0.52,0.68l1.92,0.27l2.31,-1.39l-0.71,-5.08l1.1,-0.79l0.17,-0.81l1.43,-0.71l0.49,0.59l1.62,0.15l0.41,0.64l1.71,-0.4l1.03,1.51l1.05,0.15l0.84,-0.32l0.25,-1.15l1.38,-1.43l1.41,0.04l2.29,-1.99l0.55,1.16l1.79,1.01l-0.16,1.67l0.94,1.37l2.79,-1.24l2.35,0.71l1.41,-1.49l1.44,-0.24l0.48,0.82l3.16,0.68l1.16,-0.83l0.16,-1.07l1.31,-0.79l3.04,-0.45l1.26,-0.85l0.38,0.97l1.22,0.31l-0.55,0.8l1.07,2.17l-0.46,1.41l0.94,2.62l1.67,0.72l-0.51,1.62l0.85,1.64l0.8,0.43l3.26,-0.51l0.07,1.37l2.33,-0.29l0.91,0.64l2.82,0.28l0.76,3.03l4.04,3.03l-1.83,0.69l-2.94,-0.89l-2.02,2.23l-6.08,1.71l-0.84,4.02l-0.7,0.95l-6.04,1.48l-0.77,2.43l-2.79,0.34l-0.55,1.54l1.19,1.01l-0.54,2.03l1.33,1.5l-11.29,7.76l-2.92,0.5l-2.4,2.26l-1.56,0.73l-0.57,4.92l-4.97,-2.06l-5.63,-0.96l-1.77,-0.79l-3.62,-2.88l-1.66,-2.81l-1.64,-1.16l-3.21,-0.04l-1.38,1.16l-2.16,-1.97l-4.27,-1.03l-3.96,-2.68l-4.68,-5.14l-3.71,-2.93l-0.49,-1.18l1.34,-4.92l-6.74,-3.2l-1.09,-3.79l0.45,-1.77Z\",\"name\":\"Drama\"},\"3\":{\"path\":\"M354.47,90.69l-0.13,-0.13l6.24,-1.28l1.7,-0.79l4.24,-3.21l1.7,-2.33l4.45,-3.12l1.11,-1.1l1.21,-3.89l-0.82,-2.79l0.35,-0.76l5.3,0.89l5.25,2.17l0.52,-0.2l0.59,-1.41l-0.06,-3.56l1.55,-0.75l2.15,-2.11l3.09,-0.58l11.68,-8.05l0.07,-0.59l-1.47,-1.66l0.5,-1.33l0.96,0.3l3.08,-0.99l4.85,0.08l7.08,1.24l0.52,0.9l-2.86,1.32l-0.06,0.69l2.49,1.72l1.81,2.69l3.77,1.91l0.41,1.36l-1.1,3.57l-0.02,2.79l0.84,4.08l2.47,6.84l-0.56,0.45l0.46,1.26l-2.64,-1.14l-4.48,0.75l1.23,-0.67l-0.64,-0.89l-1.18,0.41l-2.12,-0.9l-1.36,0.16l-1.77,1.16l-1.51,-2.48l-2.48,-2.33l-2.2,-3.9l-3.42,-0.63l-3.04,0.7l-0.55,0.83l-1.89,-0.34l-2.15,1.29l-1.49,-0.12l-1.63,2.5l-2.49,0.73l-1.19,1.67l-1.07,0.45l-0.28,1.28l1.6,0.92l-0.34,0.94l-0.84,-0.67l-1.06,0.97l-0.13,1.43l0.54,0.67l-8.4,4.22l-4.42,3.13l-4.4,1.66l-3.42,0.31l-10.32,-3.46l-3.82,-2.26ZM405.76,102.69l1.03,-3.81l2.69,-4.13l0.18,-1.63l1.37,0.29l1.32,-1.77l3.94,-2.16l2.12,1.92l1.67,0.31l1.55,-0.7l1.54,2.6l1.12,0.94l1.47,0.01l0.45,0.39l-1.18,0.28l-0.79,1.44l0.73,1.41l0.98,0.21l0.37,1.38l-1.58,1.23l0.77,4.26l0.66,0.56l-0.29,0.91l-0.85,-0.88l-1.57,1.35l-1.6,-0.15l-0.58,0.96l-1.64,-0.23l-2.26,2.26l-1.28,0.12l-0.7,-1.03l-0.83,0.1l-3.14,-3.71l-1.03,-0.34l-3.35,0.42l-0.23,-0.9l-0.96,-0.58l-0.09,-1.34Z\",\"name\":\"Kavala\"},\"2\":{\"path\":\"M494.01,82.96l0.7,-2.64l-0.19,-4.91l1.13,-0.35l2.47,1.2l1.46,-2.31l2.85,0.45l4.65,-2.47l3.12,-0.95l1.35,-2.47l2.57,-2.15l0.95,-3.73l2.93,-1.28l-0.44,-6.58l-1.95,-2.8l0.3,-2.3l2.34,-4.8l-0.86,-1.75l-1.47,-1.28l0.78,-0.59l3.15,0.19l1.96,-0.85l0.92,-1.63l1.76,-0.53l3.53,0.4l1.16,-0.14l0.93,-0.87l2.08,0.17l0.72,-2.02l1.74,-1.76l0.4,-3.08l1.1,-1.23l2.02,-0.4l-0.26,-1.32l-2.19,-3.19l1.34,-0.77l1.01,-2.45l-0.77,-3.37l-0.6,-0.46l-1.81,0.15l0.41,-4.43l-1.27,-1.1l-0.24,-1.78l-1.7,0.63l-1.54,-0.12l-0.33,-1.35l-1.52,-0.72l-0.67,-3.51l0.68,-1.66l0.95,-0.6l2.22,0.3l0.86,-1.64l3.64,-1.68l2.42,1.41l1.36,0.09l0.85,-0.74l1.16,1.49l2.95,1.11l2.52,0.17l1.46,-0.67l2.8,0.52l3.21,1.82l2.54,-0.21l3.93,2.31l1.75,2.83l1.46,1.19l4.65,1.08l0.39,1.36l-0.63,1.46l0.84,2.79l-0.56,1.42l0.88,2.27l-0.23,2.41l1.08,1.58l-0.07,3.1l1.2,1.13l0.59,3.37l-0.37,3.15l-3.23,2.3l-1.99,-1.58l-2.84,-0.13l-2.05,1.2l-0.95,1.69l-1.75,1.13l-1.15,1.76l-3.71,2.52l-2.41,0.34l-2.76,-0.79l-1.17,0.99l-0.72,1.96l0.17,1.9l-1.5,3.69l1.83,2.86l-1.52,2.48l1.17,1.0l-0.88,2.06l0.38,2.29l0.98,2.14l2.18,1.36l-0.49,2.01l-1.61,0.44l-0.7,1.36l2.27,2.89l-2.25,0.56l-0.82,0.8l-1.55,0.05l-0.38,0.71l0.95,1.92l-0.71,0.72l-1.39,-1.86l-0.72,-0.06l-0.99,2.65l-1.88,-0.44l-0.42,0.71l0.29,1.08l-1.97,2.47l1.15,1.47l-4.65,2.13l-2.46,5.48l-3.05,1.31l-2.84,-0.24l0.42,-0.73l-0.57,-0.31l-0.37,-2.01l-0.9,-1.48l-1.03,-0.47l0.18,-1.74l-0.99,-0.45l-0.48,0.6l-3.9,-2.79l-3.18,-0.52l-3.22,0.65l-4.15,-0.91l-6.75,0.57l-7.51,-1.63ZM523.68,89.25l-0.03,0.01l-0.03,-0.03l0.03,0.0l0.03,0.03ZM480.17,120.5l-0.17,-0.33l0.87,0.03l2.06,-2.1l2.17,-0.88l3.39,-0.57l4.03,0.67l1.6,0.86l1.42,0.03l3.17,2.47l-0.3,3.53l-7.2,2.67l-2.02,0.0l-1.0,-0.29l-1.53,-1.73l-2.65,-1.01l-3.83,-3.33Z\",\"name\":\"Evros\"},\"5\":{\"path\":\"M427.13,38.79l1.4,-0.87l0.94,-3.22l-0.21,-1.08l2.19,0.16l1.37,0.76l3.59,-1.63l1.89,1.93l9.09,2.05l2.21,2.45l1.38,0.39l1.65,-0.81l0.73,1.7l3.68,1.26l0.4,1.14l1.96,0.63l0.97,0.92l0.72,2.89l1.46,0.42l-5.09,3.34l-1.8,-2.43l-0.64,-0.0l-0.85,1.14l0.15,1.43l-2.45,2.08l-2.84,4.68l0.25,3.05l4.31,5.19l0.71,2.96l-1.21,0.39l-2.8,-0.29l-2.02,0.73l-4.93,3.97l-0.81,2.54l-2.16,-0.36l-5.59,1.98l-6.06,5.58l-0.02,-1.47l-2.48,-6.88l-0.81,-3.96l0.01,-2.49l1.12,-3.86l-0.7,-1.88l-3.78,-1.92l-0.58,-1.38l-3.18,-2.64l2.62,-1.21l-0.66,-2.01l-7.64,-1.48l-4.94,-0.08l-3.13,0.98l-1.92,-0.96l0.17,-0.74l3.03,-0.48l0.51,-2.25l6.17,-1.61l0.92,-1.33l0.53,-3.54l6.0,-1.69l1.93,-2.18l2.5,0.92l2.76,-0.94Z\",\"name\":\"Xanthi\"},\"4\":{\"path\":\"M454.4,74.2l0.04,-1.03l1.81,-0.76l1.06,-1.89l-2.25,-1.45l-0.82,-3.18l-4.23,-5.04l-0.24,-2.42l2.74,-4.51l2.5,-2.09l0.33,-2.13l2.19,2.39l3.41,-1.78l2.75,-2.4l2.18,0.88l0.78,-0.86l3.19,0.33l2.54,-1.78l1.43,0.27l3.27,-0.73l0.56,-1.05l3.22,-1.1l4.38,0.84l1.44,-2.92l0.99,-0.57l3.96,1.29l3.33,-0.8l4.13,1.76l0.67,-0.27l0.42,-1.72l4.71,-0.24l0.74,-0.89l1.9,-0.26l0.62,-0.77l1.8,1.48l1.32,-0.09l-0.36,1.12l1.38,0.86l2.79,-0.52l2.38,2.69l-2.26,4.5l-0.38,2.69l1.97,2.91l0.4,6.04l-1.27,0.06l-1.42,1.03l-1.05,3.87l-2.55,2.11l-1.09,2.22l-3.06,0.94l-4.57,2.42l-3.0,-0.4l-1.14,1.08l-0.13,0.95l-2.05,-0.99l-1.87,0.46l-0.09,5.55l-0.71,2.48l-2.9,-0.43l-2.12,1.12l-0.85,-0.18l-7.42,-3.59l-6.08,-1.15l-1.1,-2.02l-2.39,-1.57l-0.49,0.5l-2.84,-0.13l-2.33,1.88l-1.22,-1.2l-5.83,-0.34l-0.91,-0.96l-2.32,-0.48ZM454.97,70.78l-0.51,-0.54l0.08,-0.08l0.79,0.37l-0.35,0.26Z\",\"name\":\"Rodopi\"},\"7\":{\"path\":\"M365.19,123.75l0.31,-1.46l1.57,4.27l3.14,3.43l1.84,0.08l1.03,0.65l1.81,-0.17l1.56,0.84l1.02,-0.49l2.39,1.25l-0.46,1.17l0.95,1.15l2.65,0.08l1.24,0.62l0.44,1.15l1.12,0.72l-0.22,0.67l1.75,3.34l3.49,2.42l1.12,1.6l2.12,0.88l0.99,1.03l1.0,3.59l-7.02,2.21l-0.87,-0.97l0.15,-1.4l-0.83,-1.76l-2.83,-2.44l-1.77,-0.65l0.02,-2.14l-2.48,-2.32l-2.68,-3.85l-3.16,-0.75l-2.51,0.26l-2.37,-0.75l-1.01,0.26l-2.27,-1.09l-0.95,-0.92l0.81,-6.99l-1.1,-3.53Z\",\"name\":\"Ayion Oros\"},\"6\":{\"path\":\"M293.08,343.35l6.44,-1.45l1.2,-1.48l2.32,-0.79l0.62,-1.98l-1.34,-1.29l-0.45,0.32l-1.34,-0.55l0.68,-0.65l1.92,0.05l0.99,-0.55l-0.61,-2.24l-0.99,-0.49l4.57,0.33l1.16,-1.31l0.56,-4.04l2.36,-1.64l2.74,-0.72l0.99,0.56l0.62,1.31l-0.72,1.08l-0.11,1.61l1.38,1.03l2.78,-0.02l1.04,0.59l3.13,4.06l6.58,2.37l3.14,-1.84l2.19,-2.22l0.8,-8.82l1.55,-2.36l2.6,-2.22l6.93,-2.14l1.33,1.35l1.66,-0.61l1.94,1.45l2.86,0.38l2.0,1.25l1.13,-0.33l3.58,1.17l7.6,7.15l1.57,0.68l-1.34,1.18l1.21,1.54l-0.95,0.62l-0.28,1.2l-2.84,0.61l-3.25,3.04l0.31,1.88l1.26,1.73l-0.01,3.05l2.42,3.56l-1.65,1.26l-0.22,1.42l0.85,2.06l-1.18,1.52l2.35,0.66l1.09,1.44l-0.86,0.74l-1.48,-0.27l-0.64,0.83l1.5,2.0l2.34,1.05l-0.7,1.65l0.43,0.58l-0.61,0.76l1.42,0.99l0.36,1.01l1.33,0.46l0.04,1.3l-0.99,2.23l0.55,0.74l-0.81,0.0l-1.3,1.29l-0.07,0.74l0.81,0.83l-0.5,0.44l0.7,1.21l-0.38,0.59l0.61,0.67l-0.44,0.5l-0.43,-0.28l-1.95,2.49l-0.53,-0.59l-0.85,0.28l-1.58,-0.74l-0.83,0.4l-0.64,-0.76l-2.18,-0.18l-0.27,-3.1l0.81,-1.27l-1.25,-0.86l-1.75,0.61l-0.59,-4.64l-5.48,-4.38l-0.6,0.8l-1.05,-0.98l-0.75,0.03l-1.12,1.9l-0.94,-1.29l-0.48,0.26l0.07,-1.84l-3.21,-3.77l-1.0,-2.83l-2.59,-2.1l0.4,-0.67l-0.45,-0.5l-1.64,-0.23l-2.6,1.37l-0.26,-0.43l1.16,-0.66l-0.64,-0.56l-1.28,0.23l-0.93,-1.6l-1.29,0.65l-1.56,-0.88l-0.94,0.23l-0.33,-1.36l1.34,-0.91l-0.11,-0.64l0.94,0.25l0.82,-0.73l1.03,-2.03l-2.64,-2.48l-2.61,1.11l-1.71,-0.95l-2.6,1.79l-2.86,0.06l-2.88,2.64l-0.13,0.69l-1.66,0.25l-0.85,1.27l-2.39,-0.69l-2.04,0.05l-1.52,0.74l-2.1,-0.8l-2.89,0.18l-3.49,2.01l-2.89,0.83l-3.63,-6.94l-2.12,-2.62ZM368.17,360.03l0.02,-0.02l0.01,0.0l-0.02,0.04l-0.01,-0.02ZM360.37,380.33l0.19,-0.28l0.81,-0.03l0.36,0.42l-1.35,-0.1ZM358.86,395.97l-0.21,-0.32l0.84,0.38l0.44,1.08l-1.06,-1.14ZM316.48,411.74l0.05,-0.67l9.66,-4.62l1.08,-0.23l1.15,0.66l0.86,-0.86l0.96,0.17l0.36,0.31l-4.83,1.37l-0.72,2.24l-3.64,0.06l-1.32,1.19l-2.36,0.93l-0.46,-0.71l-0.79,0.15ZM330.81,406.67l-0.14,-0.14l0.17,0.12l-0.03,0.02ZM318.76,357.42l-0.4,-1.04l0.61,-0.99l4.17,0.17l2.39,-3.27l0.2,-0.51l-0.62,-0.5l-1.47,0.13l-1.03,0.89l-1.85,-0.25l1.33,-0.89l-0.06,-0.49l2.1,-0.81l-0.33,-0.91l0.42,-0.39l2.3,0.27l1.78,1.13l-0.79,0.64l-0.26,1.22l1.2,0.7l-0.44,1.76l0.41,0.66l-0.6,1.03l-1.25,-0.2l-0.47,0.45l0.38,1.22l-0.66,-0.61l-1.07,0.13l-3.21,2.47l-2.79,-2.0ZM319.76,352.28l-0.06,-0.09l0.28,-0.13l-0.18,0.22l-0.05,-0.0ZM321.54,350.3l-0.96,-0.0l-0.65,-0.23l1.07,-0.01l0.54,0.24ZM321.58,350.33l-0.01,-0.01l0.02,0.01l-0.01,0.0ZM321.65,350.35l-0.01,-0.01l0.02,0.01l-0.01,0.0ZM319.9,370.67l-0.16,-0.73l1.09,0.22l2.24,-0.82l7.24,0.44l-0.77,1.43l-0.85,-0.05l-0.71,0.68l0.47,1.11l-1.61,1.83l0.33,1.4l-3.03,1.5l-1.57,-1.11l0.91,-0.83l-0.42,-1.39l-2.34,-1.53l-0.83,-2.14ZM322.31,376.53l0.06,-0.03l0.05,0.03l-0.09,0.03l-0.02,-0.03ZM301.09,384.93l5.38,2.51l1.0,1.77l2.35,0.73l1.51,1.47l1.8,-0.3l2.19,-1.75l3.17,1.75l0.25,0.48l-2.24,0.64l0.11,0.83l0.55,0.5l3.43,0.34l2.49,1.45l0.8,1.24l1.31,0.16l1.58,1.43l-0.18,1.7l-5.22,1.57l-0.03,-2.1l-1.26,-1.52l-3.02,-0.0l-1.57,0.73l-3.79,-0.86l-1.39,0.22l-2.17,-1.99l-1.45,-0.3l-2.45,-1.64l-3.79,-1.1l-1.49,-2.2l2.12,-5.77ZM320.84,392.25l2.46,-1.18l1.08,0.39l0.48,-0.49l0.9,1.3l0.78,-0.41l0.35,0.35l-2.01,1.26l-1.77,-0.71l-1.49,0.1l-0.79,-0.61ZM323.91,390.44l0.09,-0.09l-0.07,-0.28l0.07,-0.07l0.06,0.38l-0.14,0.21l0.0,-0.15ZM315.17,388.13l-0.28,-1.12l-3.66,-3.64l0.72,-1.02l1.36,-0.51l4.15,-0.1l0.94,1.45l-0.13,1.04l-1.93,2.71l-0.08,1.17l-1.09,0.03ZM322.58,447.3l-0.13,-0.33l-0.04,-0.23l0.22,0.22l-0.04,0.34ZM312.23,377.62l-0.04,-1.35l1.07,-1.35l1.94,0.53l-0.04,0.57l-1.31,0.51l-0.98,1.24l-0.64,-0.15ZM308.8,408.87l2.91,-0.67l0.62,1.16l1.45,-1.19l0.54,0.36l-2.78,1.3l-1.48,0.05l-1.26,-1.0ZM309.59,540.0l1.25,0.63l0.79,3.94l-2.35,-1.77l-0.88,-1.98l-0.55,-1.83l1.16,1.72l0.59,-0.71ZM311.64,544.64l0.02,0.15l-0.03,0.03l-0.04,-0.09l0.06,-0.09ZM306.82,375.39l-0.01,0.0l0.18,-0.16l-0.16,0.16ZM306.62,364.72l-0.15,-0.03l0.29,-0.09l-0.09,0.09l-0.05,0.03ZM298.96,418.68l0.21,-0.03l0.66,0.76l-0.16,0.03l-0.71,-0.76ZM294.79,415.28l-0.78,-0.98l3.44,0.46l1.6,1.21l-0.27,0.98l-0.46,0.6l-1.36,0.08l-2.16,-2.34ZM278.05,500.88l1.1,-2.81l1.21,-1.22l-0.12,-0.82l1.97,-0.44l1.93,3.21l0.48,1.93l1.71,1.53l3.46,1.73l4.0,3.53l0.18,0.85l-0.73,1.2l-1.38,-0.67l-1.91,1.3l-0.64,2.4l0.13,2.95l0.59,0.72l-0.42,1.31l-1.77,-1.08l-1.05,0.6l-0.82,-0.9l-0.68,0.62l-1.16,-1.14l-1.15,0.08l-0.67,-1.0l-0.78,0.29l-0.13,-1.19l-0.66,-0.21l-1.36,-2.13l0.47,-0.94l-1.23,-1.65l1.82,-1.31l-0.79,-1.95l0.66,-2.13l-0.37,-1.08l-1.91,-1.58Z\",\"name\":\"Attica\"},\"9\":{\"path\":\"M108.16,271.01l0.99,-1.33l3.33,-0.41l0.58,-0.66l-3.7,-3.59l-0.46,-1.52l1.27,-0.45l-0.33,-0.48l0.28,-1.39l1.56,2.69l1.75,0.51l2.28,-0.23l1.44,-1.76l2.09,1.66l1.07,0.08l0.79,-0.15l1.52,-1.77l1.33,0.84l2.73,-1.14l0.75,0.96l-0.2,1.24l0.47,0.48l0.94,0.1l0.22,-0.97l1.19,-0.13l0.33,1.07l-0.9,1.22l3.88,2.14l1.25,1.41l0.71,-0.37l-0.29,-0.91l0.93,-0.4l-0.3,-2.14l0.69,-0.62l2.84,1.72l0.76,-0.2l0.72,1.93l0.86,0.91l0.59,-0.23l0.53,-1.35l-0.79,-2.61l-2.12,-1.62l0.19,-3.36l0.99,-1.67l-0.13,-1.59l-2.89,-4.3l-1.5,-1.35l-1.51,-0.2l-1.04,0.81l0.11,0.86l-0.25,-0.25l-0.27,-0.74l0.73,-2.13l2.54,-1.47l11.3,-0.47l3.12,-1.37l4.23,-3.2l1.2,-0.34l0.11,2.75l2.54,3.66l-0.41,2.35l-1.97,3.4l0.29,1.6l7.95,4.56l0.47,1.35l-0.42,2.35l0.33,1.47l1.38,1.15l9.35,3.06l0.03,0.75l-5.72,3.13l-0.66,1.6l0.06,1.57l1.19,2.68l1.34,1.35l6.9,3.77l7.02,-0.42l0.9,2.57l1.89,-0.33l2.89,-2.09l0.43,-3.61l4.02,0.29l7.19,-3.48l3.11,2.13l-1.26,3.45l0.34,2.46l-0.98,2.46l0.29,2.63l-1.02,1.26l0.16,1.53l2.14,2.15l-1.22,2.54l0.29,2.66l-2.02,1.64l-3.0,0.65l-3.25,2.53l-1.72,2.88l0.16,1.95l-0.51,1.45l-1.22,-0.71l-2.04,1.52l-1.44,0.16l-1.19,1.83l-0.57,2.45l-2.51,-0.66l-1.45,-1.15l-2.92,0.17l-3.02,-1.11l-2.05,1.49l-1.87,-0.27l-1.13,1.45l-3.71,1.38l-1.38,1.57l-1.53,-0.38l-0.04,-1.86l-0.9,-1.37l0.77,-1.18l-0.68,-0.6l-0.83,0.2l-0.25,-1.29l-1.2,0.34l-0.75,-0.52l-1.17,0.77l-0.02,-1.52l-1.17,-1.44l-2.98,-2.14l-0.87,0.66l0.61,-1.38l-0.61,-2.91l-3.69,-3.95l-1.63,1.96l1.15,1.7l1.59,0.91l0.79,1.57l-0.57,0.56l0.45,1.11l-0.61,2.54l-1.53,1.02l-1.66,0.15l-0.23,1.22l-1.48,-0.15l-0.62,2.32l-1.66,0.51l-1.04,1.4l-0.85,-0.38l-0.73,0.93l0.31,0.39l-4.2,0.56l-1.6,-1.78l0.2,-0.95l-0.95,-0.83l-1.16,0.0l-0.48,-2.28l1.87,-1.7l0.39,-1.23l-0.68,-1.05l1.77,0.76l0.84,-1.01l-2.85,-0.96l-0.64,-2.66l-1.03,-0.94l0.5,-1.36l-1.03,-0.5l0.55,-0.65l-0.94,-0.43l-0.09,-0.69l0.9,-2.68l-1.56,-0.61l-3.05,2.86l-1.02,-0.16l-0.31,-1.53l-0.83,-0.75l0.83,-6.83l-2.54,-3.42l-0.07,-2.25l-1.41,-0.73l-2.25,0.56l-1.01,-0.95l-1.12,0.61l-1.7,-3.15l0.04,-2.25l-1.18,-2.75l0.0,-1.9l-1.17,-1.47l-2.61,0.56l-2.05,2.43l-0.69,-0.33l-2.38,1.15l-1.01,-2.51l-0.71,-0.76l-1.18,-0.18l-0.11,-1.57l1.1,-2.01l-0.25,-0.6ZM135.68,304.09l-0.08,0.18l-0.21,-0.27l0.12,-0.01l0.18,0.1ZM134.05,252.92l-0.03,0.03l0.0,-0.06l0.01,0.01l0.02,0.02ZM117.68,261.03l-0.05,0.04l0.0,-0.06l0.05,0.02ZM136.19,321.02l-0.07,-0.07l0.11,-0.03l0.03,0.03l-0.07,0.07ZM137.18,320.56l-0.29,-0.57l0.13,-0.62l0.46,0.84l-0.3,0.36ZM135.25,310.04l-0.24,-1.2l1.19,1.3l0.2,1.4l-1.15,-1.5ZM132.13,305.92l-0.06,0.03l-0.06,0.06l0.16,-0.19l-0.04,0.1ZM129.74,304.37l0.22,-0.5l0.46,0.7l-0.56,-0.23l-0.11,0.03Z\",\"name\":\"Aitoloakarnania\"},\"8\":{\"path\":\"M155.27,340.92l0.45,-1.66l1.4,-0.86l0.7,-1.75l-0.4,-3.69l0.92,-2.88l-0.32,-1.15l0.85,-0.04l1.83,2.3l3.26,-0.71l6.44,4.04l1.04,-0.38l4.76,1.47l5.68,-2.87l0.3,-1.12l2.98,-2.74l1.91,-5.43l3.02,-3.27l2.57,-0.8l0.83,0.28l2.11,-2.06l1.09,0.18l0.93,1.1l5.52,-0.28l3.07,1.53l1.86,-0.15l1.39,2.65l1.27,0.89l1.5,0.15l1.28,1.81l2.31,-1.16l1.47,1.22l2.15,3.57l1.67,1.2l1.68,-0.05l1.54,1.96l1.81,-0.19l2.27,0.98l5.23,-0.53l1.07,2.05l-0.34,2.71l1.79,2.85l-3.33,7.9l-7.62,3.49l-1.5,7.9l1.7,2.54l-0.42,1.09l-4.25,1.52l-2.15,2.22l-1.25,0.45l-0.95,-0.33l-0.62,-1.38l-2.72,-0.16l-1.79,0.65l-1.94,2.07l-1.13,0.04l-10.4,-4.72l-0.7,-2.57l-2.37,-2.09l-2.64,-0.92l-0.95,-0.95l0.03,-1.4l-1.21,-0.92l-1.53,-0.27l-1.69,1.23l-2.25,3.37l-3.57,3.18l-1.2,2.17l-0.76,-0.11l-0.38,-3.49l-1.46,-0.99l-4.24,-0.88l-1.34,-1.2l-5.27,-0.27l-3.58,-4.76l0.16,-2.32l-0.86,-1.82l-2.81,-0.54l-2.18,-2.72l-1.28,-0.49l-0.45,-3.66Z\",\"name\":\"Achaea\"},\"13\":{\"path\":\"M108.83,135.41l0.74,-0.8l-0.18,-1.52l2.26,-2.21l-0.24,-3.58l0.4,-1.19l-0.53,-1.12l2.84,-1.25l1.32,-3.33l2.14,0.69l2.76,-0.43l1.76,1.22l2.28,-0.65l1.26,-2.03l-0.08,-2.62l2.57,-1.58l0.4,-1.4l2.7,-0.62l1.02,-2.41l7.1,-2.79l3.02,-1.95l3.36,-7.22l1.15,-0.24l1.09,0.58l1.62,4.11l2.78,-0.34l1.07,0.8l1.43,2.62l0.49,5.11l0.65,1.49l3.24,-0.87l5.23,6.73l1.25,-0.17l-1.63,1.7l-2.11,3.61l0.13,3.96l-0.84,2.09l-2.74,0.34l-1.16,1.1l-1.07,-0.15l-2.39,-2.05l-1.79,-0.26l-1.73,0.71l-1.47,2.2l-1.12,0.23l-1.29,-1.15l-1.82,0.06l-0.55,1.46l0.71,2.4l-3.77,-1.08l-2.88,0.12l-1.69,0.37l-2.9,1.9l-3.32,5.2l-0.19,1.48l1.25,3.72l-1.51,3.87l-0.08,1.89l-1.31,0.67l-1.29,0.27l-1.7,-0.85l0.2,-1.37l-1.05,-4.04l-2.19,-4.19l-3.29,-3.7l-1.52,-4.21l-1.25,-1.55l-3.35,0.49l-2.64,1.94l-1.56,-0.19Z\",\"name\":\"Kastoria\"},\"12\":{\"path\":\"M130.61,151.11l4.25,1.8l4.49,-2.35l2.6,2.03l1.62,-0.36l2.82,-1.84l2.82,-0.35l2.48,-3.74l3.04,0.16l6.79,-1.59l5.79,0.31l2.2,1.91l0.69,3.82l1.41,1.19l4.77,-1.3l1.42,0.43l2.33,2.02l2.09,4.23l1.6,0.17l2.96,-1.28l0.99,0.33l-0.25,3.74l0.93,2.65l-1.44,4.75l0.25,1.79l1.89,1.56l1.57,-0.08l3.0,-1.3l1.78,0.11l-0.56,1.07l2.46,1.33l0.49,1.12l0.23,4.86l-0.77,0.66l-4.1,-0.57l-5.85,1.18l-2.72,-0.14l-7.89,-1.89l-11.67,-1.39l-3.3,1.16l-1.7,1.13l-1.78,2.22l-1.46,0.74l-4.43,1.08l-0.73,-0.67l-0.26,-1.45l-5.35,-2.79l-2.91,-0.12l-7.37,2.0l-1.06,-0.35l-1.4,-2.55l-1.06,-5.17l-2.35,-2.13l1.92,-3.5l0.09,-3.28l-1.66,-0.98l-2.8,1.24l-1.86,-2.27l-1.0,-3.87l-1.12,-0.94l1.61,-2.67l1.77,0.88l1.74,-0.28l1.66,-0.84l0.26,-1.63Z\",\"name\":\"Grevena\"},\"14\":{\"path\":\"M197.12,103.47l-1.68,3.69l0.18,2.81l1.95,2.42l-0.93,2.19l0.17,1.76l1.19,0.9l2.95,4.28l5.38,2.78l0.25,1.42l1.55,0.75l4.12,-0.59l0.54,3.59l2.65,2.78l0.34,2.48l0.93,1.56l3.47,1.55l-1.08,1.89l-0.23,2.63l-0.92,0.96l-3.25,1.52l-0.59,1.64l0.2,1.64l-1.69,1.89l-0.81,2.53l-2.31,3.39l-3.77,3.49l-2.37,4.99l-3.13,1.59l-3.61,3.17l-2.93,-0.18l-4.41,1.38l-1.25,-1.04l-0.23,-1.31l1.46,-4.94l-0.11,-1.48l-0.82,-1.3l0.49,-2.71l-0.32,-1.32l-1.89,-0.72l-2.99,1.3l-1.06,-0.15l-1.83,-4.02l-2.46,-2.13l-1.77,-0.57l-4.57,1.34l-0.96,-0.72l-0.77,-3.95l-2.59,-2.23l-6.1,-0.37l-6.9,1.6l-3.05,-0.17l-1.68,1.45l-1.0,2.33l-2.68,0.34l-4.22,2.17l-2.32,-1.99l-4.73,2.32l-2.75,-0.84l-1.49,-1.06l1.47,-3.72l-1.28,-4.03l0.18,-1.04l3.06,-4.79l2.77,-1.81l1.38,-0.28l2.75,-0.11l2.57,1.09l1.61,-0.03l0.6,-1.57l-0.84,-1.52l0.36,-0.97l2.43,1.33l1.48,-0.31l1.74,-2.4l1.31,-0.48l1.18,0.16l2.39,2.05l1.6,0.29l1.31,-1.15l2.78,-0.34l1.13,-1.49l0.53,-6.19l5.12,-6.35l4.21,-3.15l15.16,-3.86l1.86,-2.3l-0.01,-2.78l0.71,-2.5l6.84,1.53Z\",\"name\":\"Kozani\"},\"11\":{\"path\":\"M125.21,92.59l1.58,-1.74l-0.0,-5.63l0.91,0.02l0.43,-0.9l9.87,-0.21l3.47,-0.62l4.4,-1.87l2.87,1.89l3.04,0.04l4.07,-1.24l6.98,-4.14l2.34,0.89l5.18,0.04l2.72,3.3l1.13,0.59l1.33,-0.24l2.99,-2.16l2.18,-0.22l0.87,-0.97l0.15,-1.61l2.86,-1.49l3.06,0.98l0.6,3.7l3.85,2.43l-0.17,0.9l-1.19,0.95l-4.37,1.1l-2.8,-0.15l-0.9,1.45l1.23,1.57l2.13,5.69l2.66,0.98l-1.83,4.91l0.24,0.55l2.39,0.44l-0.69,2.43l0.08,2.55l-1.68,2.07l-14.96,3.74l-4.42,3.29l-0.81,1.16l-2.07,0.78l-5.17,-6.65l-2.04,-0.14l-1.19,0.85l-0.87,-5.95l-1.56,-2.92l-1.67,-1.15l-2.55,0.32l-0.4,-2.39l-0.9,-1.4l-1.46,-0.83l-2.04,0.49l-3.25,7.13l-2.78,1.81l-4.5,1.41l-2.96,1.61l0.2,-2.45l0.85,-0.56l-0.37,-1.66l0.38,-3.11l-2.68,-4.04l-3.19,-2.65l-0.16,-2.29l-1.41,-0.71Z\",\"name\":\"Florina\"},\"10\":{\"path\":\"M137.35,362.35l0.25,-4.66l1.2,-3.38l0.51,-0.41l1.68,1.41l1.66,-0.05l1.8,-0.86l2.59,-2.39l1.44,-0.41l4.23,-5.53l1.76,-3.19l0.53,2.11l1.45,0.68l2.18,2.72l2.76,0.54l0.65,1.29l-0.08,2.63l3.78,5.02l5.6,0.43l1.26,1.17l5.2,1.4l0.73,3.94l1.75,-0.01l1.21,-2.25l3.56,-3.17l2.31,-3.44l1.11,-0.91l1.06,0.16l0.93,0.71l-0.07,1.33l1.16,1.17l2.67,0.95l1.7,1.51l-2.32,0.59l-4.61,6.99l-0.4,3.68l1.65,4.59l0.1,9.89l5.55,1.14l7.16,5.23l2.03,2.31l-1.65,1.18l-1.51,-1.12l-1.78,1.06l-2.16,2.34l-0.49,1.17l0.48,1.41l-2.58,3.06l-1.3,0.67l-2.65,-0.6l-2.76,0.56l-5.2,-1.0l-1.19,0.44l-2.08,-5.15l-2.5,-3.97l-4.18,-5.16l-3.88,-3.49l-11.98,-7.75l-3.59,-0.1l-0.99,0.98l-0.14,1.5l-0.26,-0.51l0.55,-1.9l-0.57,-0.53l1.39,-3.07l-1.07,-2.11l-0.18,-2.73l-1.5,-1.82l-5.06,-3.47l-8.87,-2.79Z\",\"name\":\"Ilia\"},\"39\":{\"path\":\"M233.82,463.25l2.17,-2.97l0.99,-3.8l-0.03,-2.95l-0.86,-2.6l-1.63,-2.32l0.68,-1.29l-3.29,-9.9l-3.63,-3.57l1.72,-3.68l-0.57,-1.32l-1.38,-0.62l-0.54,-0.88l1.4,-1.18l4.87,-1.47l4.12,-2.25l2.15,-3.19l0.73,-7.04l15.38,3.7l-0.25,8.99l3.98,4.45l1.75,2.88l0.65,5.07l3.59,0.0l2.96,0.85l1.64,1.82l4.69,1.8l1.87,-1.47l9.16,-0.2l0.15,0.43l-0.43,-0.12l-0.82,1.28l2.05,2.64l-0.43,0.61l3.02,6.58l-0.92,0.7l1.54,2.21l2.39,1.56l-0.11,2.95l1.89,1.03l-2.08,1.15l0.34,2.39l-2.13,-1.45l-1.14,0.58l0.14,0.78l-0.81,-0.33l-1.04,1.0l-0.07,1.53l0.91,0.64l-0.32,0.87l0.56,0.96l-1.02,1.95l0.44,3.17l3.73,4.52l2.76,1.88l1.31,-0.03l0.11,1.21l1.34,0.7l-0.77,0.68l0.24,1.41l-1.03,1.15l1.67,1.58l1.03,-0.13l0.7,1.86l1.97,0.48l0.31,1.48l-4.07,-0.48l-1.18,1.23l-1.91,-1.25l-0.78,0.24l-2.21,-2.82l0.43,-2.25l-1.34,-1.53l-2.67,-1.51l-3.94,0.7l-1.01,-2.26l-1.26,-1.15l0.52,-0.86l-0.64,-1.01l-4.86,-3.57l0.68,-1.51l-1.07,-2.24l-2.31,-2.28l-1.12,-0.35l-0.68,0.6l-0.09,1.64l-0.95,-0.48l1.16,-3.82l-0.66,-1.99l-1.01,-1.1l-0.46,-2.9l-1.19,-1.88l-3.46,-0.63l-6.97,-0.08l-2.15,0.08l-4.51,2.64l-0.66,1.23l0.93,2.71l-2.77,1.07l-1.39,1.56l0.55,1.15l-0.7,0.48l0.11,0.8l0.66,0.83l0.81,-0.23l0.73,0.5l-0.18,1.03l0.53,0.43l-0.56,0.13l-0.9,-1.53l-1.82,-0.25l-0.97,1.48l2.34,3.31l-1.11,1.09l-1.18,-1.61l-1.85,0.85l-0.35,2.19l0.79,3.29l-0.75,2.46l2.37,2.99l0.09,2.19l-0.66,0.95l0.42,1.61l-2.27,0.55l-0.7,-1.91l-2.95,-1.0l-1.67,-1.66l-0.77,1.05l-1.55,-0.57l-1.38,-2.61l-0.24,-1.14l0.45,0.21l1.25,-1.2l1.93,-0.71l-0.74,-1.2l0.37,-1.81l-1.12,-0.78l1.12,-0.91l-1.86,-1.18l1.03,-0.81l-0.99,-1.76l1.0,0.03l0.53,-1.0l-1.45,-0.78l-0.31,-1.05l0.22,-0.91l0.72,0.0l1.36,-1.56l-0.95,-0.83l-2.36,0.25l-1.25,-3.37ZM245.08,491.08l0.93,0.75l-0.37,0.98l0.35,0.61l-0.77,0.22l-0.71,-0.98l0.57,-1.58ZM280.65,487.53l0.08,-1.06l1.57,-1.59l2.07,-0.76l-0.04,2.6l0.66,0.82l-0.91,-0.99l-1.21,-0.25l-2.22,1.24Z\",\"name\":\"Laconia\"},\"38\":{\"path\":\"M235.43,335.0l4.58,1.72l1.06,-0.56l1.64,0.61l3.28,-0.56l4.28,2.87l2.03,0.28l3.01,1.65l2.21,0.46l1.89,1.6l4.9,2.24l3.81,3.43l2.0,2.97l5.96,3.07l2.02,0.1l2.24,-1.09l1.9,0.08l2.44,-3.55l-5.44,-3.93l-3.93,-1.0l2.13,-1.51l1.56,-0.19l1.02,-1.14l1.28,0.08l0.4,-0.91l0.81,-0.31l2.51,0.46l1.23,1.25l1.77,0.58l0.53,-0.73l1.86,0.93l1.61,-0.57l2.51,3.09l3.68,7.05l-1.2,1.62l-2.3,0.48l-1.6,-0.28l-2.21,0.63l-0.73,-0.91l-1.75,0.41l-1.16,-0.53l-0.88,1.21l0.63,1.36l-1.92,1.76l0.53,1.93l1.69,1.85l2.45,-0.38l1.49,0.76l3.39,-0.81l0.66,0.76l0.53,-0.2l3.4,3.3l0.64,-0.04l0.01,2.02l-2.17,1.55l-1.72,-0.51l-0.99,1.11l0.77,1.83l-1.62,1.06l-4.06,-0.15l-2.63,1.79l-5.01,-1.04l-1.06,-0.6l-0.79,-1.45l-3.96,-0.88l-4.79,1.25l-2.87,0.02l-2.79,-0.93l-4.94,-3.01l-4.27,0.3l-2.73,-1.4l-3.96,-0.86l-1.6,0.7l-0.68,-0.38l2.18,-3.5l-0.24,-1.59l-1.24,-0.69l-1.78,0.7l-1.08,-0.17l-1.48,-1.18l-1.48,0.52l-1.51,1.21l-2.3,3.56l-1.22,0.78l-2.68,-0.78l-4.11,0.35l-1.12,-0.38l-5.44,-6.39l0.17,-2.18l0.77,-1.19l0.42,-3.93l5.88,-2.32l2.49,-2.32l0.5,-2.5l2.23,-4.57l-1.85,-3.3l0.31,-1.93Z\",\"name\":\"Corinthia\"},\"15\":{\"path\":\"M66.98,242.34l0.11,-0.42l1.08,1.04l-1.15,-0.43l-0.04,-0.2ZM60.45,236.48l-0.59,-1.22l0.59,-0.44l2.03,1.19l2.61,3.64l-2.3,-0.36l-2.34,-2.81ZM22.0,187.48l-0.54,-0.66l2.42,-3.64l1.77,-0.13l1.54,0.78l2.49,-0.93l0.84,0.49l1.41,-0.44l1.4,0.8l2.57,-1.32l1.67,-1.67l1.88,0.59l1.04,1.69l2.11,0.92l0.77,-0.4l1.26,1.23l0.94,-0.08l-1.98,3.63l-3.64,0.91l-3.24,1.92l-0.19,2.65l0.95,0.99l-0.82,0.73l1.0,1.51l0.51,-0.22l0.89,0.98l3.21,1.15l1.18,-0.15l-0.6,0.8l0.52,0.71l-0.03,0.99l-1.17,-1.36l-0.86,1.15l1.1,1.25l-0.2,3.41l1.94,7.13l3.21,1.51l1.93,0.08l0.73,1.81l0.98,0.53l2.37,-0.63l1.62,-1.22l1.67,2.64l0.52,2.03l1.61,1.82l-0.5,1.33l-1.06,-0.62l-1.07,0.16l-4.26,-2.46l-2.08,-0.5l-2.72,-2.16l-3.09,-1.03l-1.41,0.13l-2.87,-1.98l-1.49,-3.12l-0.18,-2.64l-0.6,-1.07l0.67,-1.4l-1.58,-2.65l-2.09,-2.08l-2.45,-0.74l0.35,-0.65l-0.42,-0.43l-2.52,-1.04l-0.29,-1.62l-0.92,-1.1l0.31,-1.6l-0.4,-0.39l-1.5,-0.13l-0.58,0.48l-1.93,-0.82l0.75,-2.88l-1.26,-1.1l-0.81,0.19l-0.79,-2.02ZM54.97,214.9l0.01,-0.01l0.01,0.01l-0.02,-0.0ZM43.75,211.98l0.0,0.0l-0.01,0.0l0.0,-0.01ZM37.7,194.99l-0.0,0.0l-0.0,-0.0l0.0,0.0ZM37.67,194.96l-0.01,-0.01l0.01,0.01l-0.0,-0.0ZM43.66,188.25l0.0,0.0l-0.0,0.0l-0.0,-0.0ZM31.96,200.19l0.01,-0.0l-0.0,0.0l-0.0,-0.0ZM16.24,174.41l-0.12,-0.76l1.18,0.67l-0.24,0.51l-0.82,-0.42ZM17.08,174.85l0.01,0.0l-0.0,0.0l-0.0,-0.0ZM12.14,186.04l-0.21,-0.19l-0.03,-0.34l-0.45,-0.55l0.03,-0.08l0.86,0.9l-0.2,0.26ZM0.47,177.23l0.25,-0.79l1.52,0.8l1.87,-0.72l-1.17,1.84l-0.8,-0.11l-0.19,0.46l-1.32,-0.52l-0.14,-0.96ZM3.46,177.15l-0.03,-0.01l0.03,0.01l-0.0,0.0Z\",\"name\":\"Corfu\"},\"22\":{\"path\":\"M51.81,193.2l-0.47,0.0l-0.06,-0.78l1.19,0.05l1.36,0.48l-2.03,0.25ZM54.71,193.37l1.69,0.66l0.97,0.72l-2.43,-0.95l-0.23,-0.42ZM57.39,194.76l0.37,0.31l0.06,0.05l-0.04,0.04l-0.39,-0.4ZM59.7,196.12l4.2,0.56l0.89,-0.56l0.35,-1.31l1.5,0.51l0.87,-1.26l2.62,1.07l0.2,-2.11l1.34,-1.53l1.22,-0.24l1.9,-1.72l-2.36,-3.25l1.14,-1.55l-1.33,-2.1l0.9,-0.67l3.5,1.25l0.32,2.93l1.06,1.66l1.45,0.99l4.13,0.53l0.7,3.95l1.84,2.56l0.27,1.01l-1.67,2.14l-0.29,1.42l0.3,4.14l3.52,4.25l5.46,1.3l0.46,1.01l-0.44,1.27l0.3,1.56l1.22,2.69l0.22,3.84l1.53,2.78l2.38,7.23l-1.88,-0.31l-2.37,0.73l-2.47,-1.3l-3.5,1.58l-1.98,-0.72l-4.11,-3.19l-0.96,-2.21l-1.82,-1.55l-2.92,0.02l-4.93,2.59l0.23,-0.78l-0.61,-1.17l0.53,-0.65l-1.02,-0.85l0.54,-1.21l-1.45,-1.66l-2.14,-0.72l-1.42,-3.16l3.8,-0.1l0.62,-0.53l0.15,-0.62l-0.64,-0.66l-4.04,-2.7l1.09,-0.2l1.71,1.03l0.84,-1.79l-0.15,-0.93l-2.48,-1.33l-1.17,0.77l-4.17,-2.37l-1.87,0.77l0.57,-1.16l1.42,-0.99l0.75,-2.39l-0.74,-0.55l2.1,-2.66l-1.87,-2.07l-2.1,-0.4l-1.21,-0.91ZM61.93,202.47l-0.23,-0.28l0.69,0.05l-0.23,0.15l-0.23,0.07Z\",\"name\":\"Thesprotia\"},\"17\":{\"path\":\"M118.71,293.28l2.02,-3.91l4.1,-0.56l-0.33,1.01l-2.06,1.7l-1.92,0.32l-1.23,0.92l-0.4,0.48l0.51,0.51l-0.94,1.13l0.25,-1.59ZM120.68,297.09l-0.17,0.04l0.02,-0.18l0.16,0.03l-0.01,0.11ZM121.78,295.3l0.2,-0.2l0.49,-0.83l-0.22,0.64l-0.47,0.39ZM112.77,304.14l-0.13,-0.04l1.43,-1.5l-0.11,1.62l-1.2,-0.08ZM108.26,290.3l-0.44,-0.77l0.38,-2.08l1.41,0.74l0.83,-0.94l1.84,0.68l-1.28,1.15l-1.21,-0.38l-1.09,1.97l-0.44,-0.36ZM92.66,294.72l1.27,-4.24l-0.24,-4.65l1.42,-2.3l2.15,-6.75l1.93,-1.41l1.58,-3.21l1.96,0.13l1.23,-1.84l1.73,0.46l-0.52,1.08l0.82,2.01l-0.19,4.38l1.12,2.93l-1.31,1.36l-1.42,3.19l1.08,0.73l0.96,2.3l-0.02,1.67l-0.78,-0.01l-1.01,-1.26l-0.51,1.58l-1.01,0.17l0.35,1.3l-1.38,0.29l-0.72,-0.69l-1.33,1.44l-0.44,-0.67l-1.09,0.27l-0.7,-1.32l0.11,-1.05l-1.25,-0.68l-2.28,4.32l-1.02,0.82l-0.48,-0.38ZM99.73,293.95l-0.02,0.15l0.46,0.75l-0.44,-0.45l-0.09,-0.7l0.1,-0.1l0.0,0.35ZM106.03,285.14l-0.2,-0.4l0.05,-0.55l0.38,0.48l-0.14,1.62l-0.1,-1.15ZM105.12,298.27l0.09,-1.29l0.38,-0.36l0.44,0.38l-0.3,1.54l-0.61,-0.27Z\",\"name\":\"Levkada\"},\"16\":{\"path\":\"M76.75,330.07l1.36,-2.41l-0.18,-2.77l1.11,0.01l1.39,-1.65l-0.1,-2.28l0.63,-0.96l0.38,-2.82l0.51,0.65l0.95,-1.43l1.09,-0.48l0.39,2.3l1.25,0.96l0.72,-0.2l1.01,1.4l5.07,-3.74l0.77,-1.43l-0.54,-1.43l0.63,-0.76l-0.66,-1.75l0.38,-1.89l-0.85,-0.81l0.61,-0.92l-0.48,-2.32l1.47,-0.18l1.03,0.68l-0.01,1.04l0.72,0.53l-0.31,0.62l0.59,0.55l-0.28,0.52l0.91,1.16l-0.21,0.98l1.26,0.66l0.47,1.81l-0.35,0.46l1.23,4.61l-2.39,1.91l1.05,1.04l1.14,2.86l0.95,0.99l1.01,0.0l2.36,-2.62l-0.62,1.38l0.47,0.48l1.06,-0.52l0.52,0.36l-0.23,0.5l1.15,1.37l0.17,1.28l3.47,3.94l2.92,4.66l1.71,1.39l-0.02,0.62l-1.79,4.16l-1.62,-0.98l-1.78,0.76l-3.35,-0.74l-4.85,-3.81l-1.95,-0.66l-3.13,1.25l-1.01,1.3l-2.38,-1.27l-1.13,0.28l-2.0,-1.57l0.54,-1.16l-1.51,-2.17l0.35,-1.24l-0.88,-1.59l2.14,2.63l0.99,-0.81l-2.39,-3.46l-2.19,-5.32l-0.02,-1.17l-1.01,-0.68l-1.14,0.2l-0.99,1.32l1.42,3.79l0.07,5.63l-3.49,0.59l-0.63,0.57l-0.53,-1.38l-2.6,-1.05l0.18,-1.75ZM81.4,316.84l0.03,0.02l-0.03,0.05l0.0,-0.07ZM81.28,316.41l0.0,0.08l-0.05,-0.13l0.02,-0.09l0.03,0.14ZM91.51,313.21l0.0,0.05l-0.05,0.0l0.05,-0.05ZM98.47,305.92l0.24,-1.18l1.51,1.15l0.86,-0.71l0.35,-1.2l-0.5,-1.26l1.64,0.81l-1.11,2.67l2.22,0.81l1.31,1.38l-2.62,5.19l-1.91,-3.88l0.07,-1.64l-1.12,-0.42l-0.94,-1.72ZM103.04,315.34l1.44,-0.82l1.78,0.67l0.2,-0.91l-1.21,-1.0l0.72,0.48l0.82,-0.65l0.63,0.27l0.49,1.07l-0.63,0.46l0.86,0.97l-0.7,1.3l0.39,1.07l1.3,0.71l-3.36,1.24l-1.35,-1.31l-0.55,-2.65l-0.96,-0.51l-0.46,-0.78l0.58,0.38ZM104.12,306.74l-0.07,-0.01l-0.03,0.01l0.08,-0.08l0.03,0.07Z\",\"name\":\"Kefallonia\"},\"19\":{\"path\":\"M108.62,255.0l0.13,1.05l-0.69,-0.26l-0.89,-2.12l1.04,-4.49l1.52,-0.83l1.58,-2.02l1.26,0.56l1.68,-0.45l2.82,-3.4l0.28,-1.61l-1.81,-5.4l0.36,-0.88l4.54,-1.33l1.56,-1.29l1.33,-2.75l0.42,-5.6l4.31,-3.02l0.89,-1.28l1.41,-7.7l0.97,-0.8l3.96,1.74l3.08,-1.8l1.82,0.69l1.55,2.72l-0.23,1.58l0.57,1.6l3.77,2.9l1.23,3.27l2.93,1.97l5.49,0.31l1.69,1.82l1.09,2.45l-4.05,7.35l0.35,1.72l1.69,2.35l-1.36,0.42l-4.18,3.17l-4.33,1.59l-9.8,0.16l-1.63,0.57l-1.42,1.15l-0.93,2.53l-0.7,0.29l-0.24,1.13l0.48,0.53l-2.31,1.23l-0.71,-0.64l-1.88,0.57l-1.3,-1.83l-0.79,-0.2l-3.16,2.37l-2.14,-2.06l-4.66,-0.03l-1.3,-2.31l-1.58,-0.26l-3.03,2.55l-0.72,2.05Z\",\"name\":\"Arta\"},\"18\":{\"path\":\"M99.32,361.39l0.11,-1.91l1.42,-1.79l3.85,-2.93l0.54,1.03l-0.45,1.0l0.77,1.52l3.2,3.88l1.82,1.07l1.26,-0.66l2.55,0.79l5.01,2.18l1.06,0.76l-0.49,2.21l3.51,1.92l1.03,1.55l2.62,1.24l0.26,1.37l-3.2,-1.18l-2.27,-1.55l-2.69,0.43l-1.93,1.29l-2.23,3.35l1.82,1.97l-0.13,0.49l-1.47,0.9l-1.32,-0.4l-0.64,-0.3l-0.6,-1.51l-2.97,-2.32l-0.44,-1.2l-3.3,-1.34l-1.47,-1.58l0.33,-1.44l-1.82,-0.83l0.4,-1.88l-0.82,-0.63l-1.51,-0.05l-1.48,-1.59l0.08,-1.76l-0.7,-1.38l0.3,-0.7Z\",\"name\":\"Zakynthos\"},\"31\":{\"path\":\"M327.75,593.03l-0.42,-0.51l0.29,-0.77l2.19,-1.31l-1.44,-1.44l0.55,-0.9l-0.68,-1.05l0.42,-1.69l1.29,-1.41l-0.57,-1.1l1.09,-0.34l0.84,-1.2l0.13,-1.74l-1.07,-0.59l-0.22,-1.15l2.15,-2.24l-0.26,-1.29l-0.77,-0.65l0.4,-0.47l-0.44,-0.89l0.55,-2.03l1.01,-1.32l-0.44,-0.85l0.93,-0.92l-0.09,-0.75l0.18,-0.78l0.27,-0.5l0.31,0.33l-0.68,0.95l0.22,1.97l0.66,0.67l-0.11,3.64l0.51,0.55l3.5,1.92l4.73,-0.8l0.66,-0.77l0.59,-3.11l-0.37,-2.22l-1.25,-2.32l0.53,-1.69l-0.77,-2.6l0.22,-1.3l1.99,-2.75l2.38,1.89l-0.86,1.85l1.25,4.41l0.04,4.64l1.19,1.0l3.33,0.4l0.86,0.82l4.89,0.75l2.08,-0.35l1.18,0.77l2.13,0.22l0.69,-0.41l1.63,0.31l1.51,-0.69l0.61,0.37l1.91,-1.12l0.33,-1.99l0.83,0.27l1.87,-0.95l-1.04,-1.98l0.44,-1.1l0.99,0.19l0.51,-0.67l1.79,-0.37l3.74,1.3l1.93,3.97l-1.43,2.79l-1.68,0.83l-4.03,-1.22l-1.21,0.35l-0.9,-0.43l-1.4,0.77l-0.51,1.05l4.98,2.39l2.49,-0.07l2.85,1.99l1.12,-0.1l0.9,-1.12l0.74,0.25l1.46,-1.21l1.05,1.51l-0.39,1.97l1.05,1.02l-0.15,1.88l-0.64,1.0l0.42,2.12l1.58,1.05l2.23,0.25l1.11,2.82l-0.18,0.85l-4.4,2.05l0.26,1.27l1.17,0.64l-1.6,7.17l-2.09,-0.12l-2.53,-1.79l-3.7,0.82l-2.06,-0.99l-2.25,0.37l-0.97,-0.42l-0.94,0.61l-1.01,-0.34l-2.1,0.52l-1.26,-0.5l-2.27,-2.63l-2.74,-0.07l-2.47,0.82l-3.38,-1.64l-1.13,0.35l-3.18,-1.24l-1.51,0.17l-0.93,0.84l-0.63,-0.19l-0.38,0.82l-1.3,0.19l-0.73,-0.84l-2.1,-0.22l-2.67,0.17l-1.21,0.8l-1.44,-0.78l-3.62,0.69l-1.73,-0.51l-0.65,0.45l-0.76,-0.84l0.46,-1.45l-1.63,-1.05l-1.4,0.0l-1.4,-1.93ZM333.77,564.73l0.01,0.01l-0.01,0.02l0.0,-0.03ZM368.85,632.83l1.97,-1.56l3.5,0.92l-0.9,2.3l1.57,2.01l-4.18,-1.82l-1.95,-1.85Z\",\"name\":\"Chania\"},\"23\":{\"path\":\"M245.57,99.28l-2.08,2.1l0.15,0.66l6.13,0.94l1.08,0.83l0.65,1.42l2.38,2.11l2.33,5.41l3.55,1.67l-1.47,0.84l0.78,2.84l-1.07,1.36l-1.3,-0.14l-0.62,-0.78l-0.82,0.86l-0.86,-0.1l-2.56,-1.59l-0.7,-1.47l-4.23,0.35l-2.7,-1.9l-2.99,0.57l-1.15,1.67l-2.01,5.98l-5.98,4.65l-3.26,3.59l-1.53,0.98l-3.01,0.38l-1.96,1.24l-1.8,3.39l-3.25,-1.38l-0.76,-1.23l-0.46,-2.75l-2.56,-2.61l-0.08,-2.53l-0.6,-1.37l-4.71,0.38l-0.98,-0.53l-0.22,-1.38l-5.48,-2.85l-2.8,-4.12l-1.21,-0.96l0.9,-3.74l-2.01,-2.51l-0.08,-2.34l1.78,-3.8l7.22,-1.2l4.59,-1.39l0.28,-1.53l0.85,-0.89l12.37,2.88l3.74,2.29l2.78,2.95l3.31,-1.88l3.28,-3.09l1.24,0.83l3.02,-0.1l1.74,-0.69l1.5,-2.17l1.64,-0.18Z\",\"name\":\"Imathia\"},\"51\":{\"path\":\"M511.66,240.3l-0.73,-0.21l0.88,-1.29l-0.36,-3.39l0.91,-1.34l-0.45,-0.83l3.98,-3.39l0.78,1.18l1.23,-0.12l0.9,0.6l1.26,-0.95l0.89,0.64l1.62,-0.05l0.83,-1.0l1.98,0.18l0.77,-0.6l2.32,-0.17l2.45,-1.65l0.99,0.72l2.87,-1.62l1.25,-0.08l1.45,-1.4l-0.99,-1.18l0.46,-1.24l-0.41,-0.9l0.9,-0.45l1.0,0.49l2.56,-0.87l6.77,0.98l1.71,-1.29l1.42,0.91l-0.93,1.65l0.93,1.15l1.01,0.64l2.41,-0.31l1.47,0.6l-3.54,4.76l0.15,1.08l7.69,4.54l-0.31,0.65l1.01,0.6l1.2,2.63l1.12,0.94l1.52,0.32l-0.43,2.31l1.48,0.88l0.8,2.0l-0.15,1.14l3.07,2.68l1.14,1.92l0.26,2.77l-1.28,0.38l-2.29,-0.99l-1.71,0.29l-1.05,-1.22l0.5,-1.13l-1.49,-0.42l0.2,-0.77l1.31,-0.7l-0.17,-1.52l-2.46,-2.96l-1.51,-0.87l-2.3,0.59l-1.36,1.43l0.81,1.92l1.63,1.66l1.51,0.36l3.26,3.74l0.61,2.88l-1.32,1.08l-0.35,-0.84l-3.02,0.97l-6.01,0.67l-2.77,-1.24l-2.93,-0.03l-3.25,-2.31l-4.1,-1.36l-3.35,-0.26l-1.63,0.87l-1.98,-1.52l-2.11,-3.32l-1.27,-0.92l-1.17,0.08l1.52,-1.35l2.05,0.69l2.21,-0.95l2.09,-2.67l2.58,-0.41l2.66,-1.9l2.08,-0.38l1.5,-3.12l-1.39,-1.45l-2.19,-0.87l-2.84,0.28l-1.38,-0.41l-1.29,0.9l-1.3,-0.03l-1.45,1.79l0.02,2.09l-2.56,2.04l-0.61,2.41l-1.07,-0.45l-1.63,2.44l-6.52,-2.1l-2.78,0.37l-0.79,-1.06l0.22,-0.42l-1.32,-1.17l-2.45,-0.44l-1.34,-1.13l-0.75,0.03l-0.21,-1.19l-1.13,-0.73ZM510.53,239.98l0.04,-0.09l0.13,0.13l-0.08,0.05l-0.09,-0.09ZM566.85,246.35l0.09,0.0l0.09,-0.03l-0.1,0.1l-0.08,-0.08ZM551.06,221.97l0.02,-0.02l0.01,0.0l-0.02,0.02l-0.01,-0.0ZM551.15,221.94l-0.02,0.0l0.04,-0.02l-0.02,0.02ZM551.27,221.89l-0.01,0.0l0.01,-0.01l0.0,0.01ZM448.04,166.17l-0.08,-0.51l0.88,-0.55l3.11,-0.0l2.94,-1.58l1.0,1.76l3.63,-1.08l1.39,0.23l1.06,-0.72l1.42,1.52l1.11,0.25l-0.15,1.8l1.37,0.89l-0.61,0.58l0.95,1.02l0.79,0.08l2.08,-2.08l0.75,0.47l2.0,-1.25l-0.59,-1.15l2.54,-2.26l-0.37,-1.25l2.34,1.39l1.58,-1.83l1.56,-0.77l-1.18,1.04l0.86,3.47l-1.93,0.81l-2.44,2.62l-0.5,1.76l0.46,1.08l-0.63,-0.47l-1.29,0.44l-0.69,1.02l0.39,1.3l-1.44,0.99l0.22,1.26l0.4,0.4l0.29,-0.03l0.1,0.1l-0.91,0.74l0.18,1.19l2.25,2.54l-1.77,1.02l0.41,1.35l-3.71,-1.11l-0.76,-1.01l0.54,-1.17l-1.28,-1.2l-1.16,-0.08l-1.52,-1.93l1.88,-0.97l-0.55,-0.92l1.29,-1.58l-2.09,-2.15l-1.86,0.08l-3.4,2.53l-0.53,0.71l0.4,0.53l1.27,-0.7l-2.05,2.72l-1.47,-0.58l-2.05,1.89l0.31,-0.51l-1.56,-1.1l-2.08,1.27l-1.96,-0.34l-0.89,0.81l1.25,-1.44l-1.12,-1.04l0.69,-0.74l0.18,-1.21l-0.49,-0.51l0.91,-0.8l0.37,-1.78l-1.01,-1.33l-0.79,-0.21l-0.51,-2.15l0.31,-1.57ZM460.14,174.79l0.05,-0.05l0.04,0.02l-0.03,0.03l-0.06,0.0ZM463.27,177.14l0.03,0.03l0.06,0.02l-0.14,-0.03l0.05,-0.02ZM458.62,178.95l1.05,0.2l0.09,1.26l1.53,1.87l-4.42,0.0l-1.09,-1.01l-0.02,-0.9l0.77,-0.55l0.33,-1.24l0.87,-0.22l0.89,0.6ZM454.4,161.85l0.14,-0.09l0.11,0.04l-0.06,0.03l-0.19,0.03ZM441.92,209.44l0.53,-2.24l0.88,-0.54l0.81,-1.82l3.82,2.78l-5.21,5.52l-0.82,-3.7Z\",\"name\":\"Lesvos\"},\"36\":{\"path\":\"M264.22,394.85l1.73,2.56l-0.07,1.92l1.74,1.8l-1.41,2.47l0.95,0.98l0.89,-0.03l1.83,2.45l0.82,2.48l1.1,0.8l-0.12,0.74l1.51,2.1l-0.13,0.98l1.75,1.02l-0.52,1.05l2.46,2.42l0.63,2.53l1.2,0.85l-1.36,4.24l0.37,2.27l1.78,1.41l0.92,-0.1l0.47,-0.67l1.76,0.01l-0.39,1.29l2.41,2.2l-0.91,-0.39l-0.73,0.73l3.21,4.32l-0.72,0.39l0.66,0.94l-0.29,0.64l-8.96,0.21l-1.65,1.43l-4.36,-1.67l-1.69,-1.84l-3.23,-0.91l-3.27,0.0l-0.3,-4.6l-1.87,-3.06l-3.79,-4.08l-0.03,-9.53l-16.15,-3.9l-0.49,0.35l-0.77,7.4l-1.97,2.84l-3.79,2.03l-4.91,1.49l-1.51,1.23l-1.05,-1.21l-2.6,0.08l-2.48,1.35l-1.61,-2.57l-2.47,-1.68l-1.62,-2.65l-2.89,-1.04l-1.33,-2.54l-2.36,-1.87l-0.55,-5.11l-4.5,-4.0l1.35,-4.51l-0.59,-1.6l-1.09,-0.9l0.42,-1.2l1.48,-0.62l0.72,-1.62l-2.32,-2.63l-7.24,-5.29l-2.69,-0.93l-2.49,0.13l-0.09,-9.62l-1.64,-4.52l0.38,-3.49l4.4,-6.59l2.32,-0.47l0.8,2.5l10.79,4.83l1.66,-0.17l1.99,-2.12l1.31,-0.47l2.34,0.13l0.5,1.29l1.55,0.44l1.63,-0.63l2.0,-2.11l4.34,-1.55l0.56,-1.06l3.63,3.73l1.45,0.46l4.12,-0.35l2.22,0.67l-1.72,4.47l-0.74,3.88l0.31,1.46l1.66,1.23l2.73,-1.27l0.93,0.32l2.12,5.36l2.52,1.29l0.09,1.2l1.97,2.3l-0.99,3.48l0.57,1.64l1.43,1.15l2.4,0.84l1.8,4.02l1.24,0.69l1.58,0.02l1.53,-0.73l2.64,0.38l1.69,-0.8l-0.12,-4.18l2.16,-1.97l1.33,-0.37l0.61,1.37l-0.92,1.94Z\",\"name\":\"Arcadia\"},\"35\":{\"path\":\"M655.95,516.09l0.86,-0.68l2.79,-0.55l1.5,-1.58l0.96,-0.02l2.13,-3.15l0.11,-2.12l1.25,-2.36l1.26,-0.05l1.51,-0.98l2.77,-3.56l2.75,-1.8l3.62,-1.0l7.32,-4.0l5.1,-1.94l5.45,-0.15l2.57,-3.07l1.04,1.24l-0.85,3.06l1.37,1.42l-3.21,3.62l0.73,1.82l-2.88,3.72l-0.85,2.1l0.3,0.92l-1.73,2.13l-0.7,1.9l0.02,1.51l-2.89,0.87l-2.13,3.28l-0.77,3.28l0.71,0.75l1.17,-0.21l-0.39,0.58l0.37,0.89l-1.24,1.16l0.77,1.03l-1.45,-0.38l-1.17,-1.33l-1.93,-0.08l-5.37,2.85l-1.91,2.08l-3.22,5.7l-1.97,2.4l-3.06,1.6l-2.35,2.32l-1.0,0.18l-3.35,-2.28l-1.17,-2.32l2.81,-6.35l0.26,-7.4l-1.04,-1.3l-2.92,-0.86l0.56,-1.14l-1.1,-1.88l-0.92,0.45l-0.5,-0.32ZM662.87,475.92l2.06,-1.51l0.25,-1.32l0.58,0.06l0.21,0.8l1.23,-0.21l0.57,0.76l1.07,-0.9l1.13,-0.35l-1.27,0.98l0.58,0.6l1.37,-0.3l-0.72,1.16l0.66,0.63l-1.58,0.83l1.47,0.8l-1.25,0.63l0.73,1.36l-1.17,0.9l-0.93,0.03l-0.13,-0.48l0.63,0.25l0.71,-1.18l-0.64,-0.85l-1.73,-0.93l-1.23,0.4l0.82,-0.76l-0.53,-1.23l-2.21,0.48l-0.67,-0.65ZM666.06,472.87l0.0,0.03l-0.03,0.0l0.03,-0.03ZM667.51,470.92l1.33,-0.73l0.58,0.62l-1.66,0.3l-0.24,-0.2ZM669.44,482.72l0.01,-0.43l0.49,0.1l-0.33,0.15l-0.18,0.18ZM661.51,540.46l-0.28,-0.22l0.58,-0.04l-0.25,0.26l-0.04,-0.0ZM656.06,505.7l0.5,-0.91l1.67,-0.38l-0.27,1.05l-0.62,-0.45l-1.29,0.69ZM657.78,505.91l0.12,0.12l-0.19,0.23l-0.12,-0.12l0.19,-0.23ZM642.85,510.36l0.28,-1.77l1.91,-0.33l0.49,0.41l3.2,-0.95l1.57,0.5l-0.02,0.86l-0.65,0.51l-0.38,-0.29l-1.61,0.71l-2.25,-0.39l-2.55,0.73ZM625.13,491.24l0.26,-3.35l2.18,1.0l0.95,-0.7l0.28,-1.33l1.05,-0.06l2.46,3.88l-0.63,1.5l0.6,0.73l0.74,0.3l0.83,-0.77l1.45,1.48l0.93,-1.38l0.55,0.58l-0.86,1.0l-3.17,0.99l-2.43,-2.32l0.0,-1.53l-0.79,-0.95l-0.85,-0.02l-2.11,1.75l-0.46,-0.89l-0.97,0.11ZM595.85,461.29l2.67,-1.16l2.47,0.45l6.79,-7.27l7.24,-3.62l4.7,-0.23l3.72,-1.96l1.39,1.93l2.01,0.76l1.44,-0.58l0.81,1.51l0.09,0.78l-1.92,1.06l-12.49,3.52l-4.43,4.42l-6.51,-0.9l-3.92,1.63l-0.97,1.03l1.05,2.06l-1.36,1.29l0.28,2.56l-2.99,-2.61l-0.44,-1.17l0.35,-3.5ZM607.4,566.45l-0.29,-1.13l1.38,-0.5l0.42,-0.42l-0.28,-0.58l2.91,-2.09l0.24,-1.12l-0.59,-0.85l0.59,-1.62l3.37,-4.61l-0.53,-2.0l0.74,-4.14l1.15,0.43l1.73,-2.5l1.41,0.1l-0.18,2.46l-1.56,1.73l-0.18,1.8l0.8,2.52l-2.22,2.84l-0.61,2.37l-1.73,1.6l-0.33,2.32l0.37,0.43l-0.87,0.82l1.08,1.52l1.33,0.28l-0.15,0.79l1.14,1.2l0.87,0.15l-0.0,1.22l1.14,0.97l-1.58,1.44l0.09,1.42l1.04,0.95l1.55,-0.07l0.74,0.85l-0.84,1.65l-0.55,-0.76l-1.45,0.05l-1.33,1.57l-1.28,0.55l-1.38,1.77l-0.37,1.54l0.88,0.62l-0.74,0.59l-1.38,-1.86l-1.28,0.15l-1.96,-1.57l1.8,-1.69l0.92,-1.94l-1.14,-2.14l0.59,-3.04l-1.23,-1.7l-1.86,-0.77l0.42,-0.74l-0.81,-0.84ZM619.11,544.06l-1.33,-0.28l-0.98,-1.42l0.73,-0.03l1.52,-1.75l0.07,-1.68l0.98,-0.25l-0.64,2.32l0.75,2.53l-1.1,0.54ZM612.11,477.65l-0.07,-2.67l2.91,-0.82l1.39,0.03l1.8,2.89l-1.49,2.04l-4.13,-0.55l-0.41,-0.9ZM611.67,444.78l-1.14,-0.97l1.82,-0.29l0.44,0.82l0.89,-0.88l0.97,0.39l-1.51,1.3l0.72,0.67l-0.34,0.24l-1.09,-0.03l0.13,-0.57l-0.88,-0.68ZM610.24,470.04l0.38,0.04l-0.33,0.71l-0.14,-0.42l0.09,-0.32ZM611.76,469.09l0.45,-0.51l0.08,0.08l0.09,0.34l-0.62,0.08ZM608.14,433.66l0.37,0.08l0.08,0.07l-0.36,-0.03l-0.09,-0.11ZM608.78,433.87l0.03,0.0l0.05,0.03l-0.03,0.03l-0.06,-0.06ZM608.45,413.96l-0.12,-0.34l0.02,-0.5l0.76,0.82l-0.66,0.03ZM608.37,412.45l0.06,-0.06l0.02,-0.09l0.01,0.09l-0.09,0.06ZM608.64,412.03l0.08,-0.08l0.01,0.01l-0.09,0.09l0.0,-0.02ZM607.28,478.3l-0.07,0.0l0.07,-0.0l-0.0,0.0ZM592.61,432.78l0.31,-0.31l4.77,1.97l0.54,-0.3l2.27,1.38l-1.1,-0.32l-0.4,0.42l2.76,2.59l0.33,1.18l0.84,-0.86l1.39,-0.2l0.86,1.18l-0.58,1.5l-0.99,0.67l1.11,0.58l-1.02,0.76l0.35,0.48l-3.48,-0.15l-0.66,0.65l0.31,1.67l-0.84,0.05l-0.49,-0.58l-0.49,0.58l-1.13,-0.3l-0.9,-0.81l0.09,-0.48l-1.16,-0.59l1.51,-1.45l-0.75,-1.14l1.16,-1.89l-0.02,-1.2l1.82,0.57l0.42,-0.57l-2.04,-2.57l-1.84,-0.23l-0.33,-0.95l-2.62,-1.34ZM594.9,435.64l0.03,-0.08l0.07,0.03l-0.07,0.05l-0.02,0.0ZM595.2,435.61l-0.02,0.0l0.01,-0.01l0.01,0.01ZM605.01,443.52l0.08,0.02l0.11,0.28l-0.31,-0.17l0.13,-0.13ZM589.8,587.02l4.34,-5.04l2.23,0.45l5.29,-1.41l-1.08,2.38l-2.28,0.47l-2.41,2.49l-1.51,0.12l-2.14,2.06l-1.88,-0.59l-0.55,-0.93ZM597.45,396.88l-0.21,-0.44l3.54,0.62l-1.06,1.1l-0.78,-0.7l-1.16,1.11l-0.33,-1.7ZM601.39,397.57l0.01,-0.12l0.24,0.21l-0.07,0.05l-0.18,-0.14ZM599.03,484.53l0.17,-0.18l0.2,0.03l-0.1,0.1l-0.27,0.05ZM594.58,438.91l-1.1,-0.4l-0.36,-0.31l1.36,-0.08l0.81,1.07l-0.71,-0.28ZM584.27,423.73l-0.69,-0.36l0.83,-1.31l1.03,0.73l1.26,-0.57l0.64,0.47l0.71,-0.56l1.9,0.72l-1.69,1.81l0.97,0.85l1.19,-0.39l0.38,0.22l-0.63,0.9l1.97,1.67l0.62,1.15l-0.24,0.67l-1.07,-0.72l-0.58,0.48l0.33,0.56l-1.77,0.08l-0.46,-0.79l1.69,-0.35l0.31,-1.49l-1.01,-0.45l-2.63,1.39l-0.44,-0.81l1.82,-1.46l-0.07,-0.55l-1.43,-0.78l-1.33,0.36l-0.4,-1.07l-1.21,-0.4ZM586.0,421.56l-0.11,-0.11l0.32,-0.12l0.01,0.01l-0.22,0.22ZM590.76,579.99l0.3,0.17l0.14,0.32l-0.94,-0.37l0.5,-0.12ZM579.57,411.16l0.84,-1.12l0.71,1.26l1.26,0.59l-0.84,0.65l-1.96,-1.38ZM583.27,413.28l0.39,-0.73l-0.43,-0.41l1.35,-0.43l0.1,1.3l-1.41,0.28ZM583.11,412.12l-0.03,-0.03l0.04,0.03l-0.0,-0.0ZM579.7,403.28l-0.41,-0.42l2.7,2.23l-1.39,-0.57l-0.9,-1.24ZM579.22,402.85l0.04,-0.03l0.03,0.03l-0.06,0.0ZM578.28,406.43l-0.02,-0.02l0.24,-0.24l-0.01,0.08l-0.21,0.18ZM575.32,498.35l-0.22,-0.4l1.21,-0.37l0.94,1.36l-1.66,0.57l-0.26,-1.15ZM564.78,412.9l0.18,-2.08l0.59,-0.62l1.76,1.31l-0.74,0.37l0.03,0.65l-1.16,-0.24l-0.65,0.61ZM567.25,413.75l0.16,0.66l-1.37,-0.32l0.78,-0.63l0.43,0.29ZM565.0,409.6l0.21,-0.09l0.04,0.23l-0.04,0.04l-0.22,-0.19ZM565.94,409.14l-0.74,-1.62l0.57,-0.51l-0.59,-0.75l0.0,-0.74l1.09,0.93l1.48,-1.04l0.36,0.99l1.48,0.59l0.04,0.8l-2.32,-0.67l-1.38,2.03ZM558.18,439.04l-0.47,0.14l1.45,-0.58l-0.57,0.41l-0.41,0.04ZM557.07,438.84l-0.35,0.05l-0.04,-0.1l0.31,-0.05l0.09,0.11ZM560.55,439.22l-0.29,-0.05l-0.52,-0.43l1.7,0.4l-0.89,0.08ZM559.67,481.46l-0.04,-0.04l0.08,-0.08l0.01,0.06l-0.05,0.05ZM543.97,476.7l-0.11,-0.28l0.34,-0.33l0.57,1.13l1.36,-1.0l0.74,0.15l2.3,1.28l0.38,0.95l0.77,0.03l0.37,1.18l-1.48,1.28l2.0,2.17l-0.73,0.27l-1.06,-0.53l-1.11,0.6l-1.52,-1.15l-0.65,0.28l-0.97,-2.46l-0.86,-0.54l0.31,-1.52l-0.86,-1.02l0.2,-0.48ZM552.22,477.71l-0.38,-0.46l1.03,-0.58l1.11,0.63l-1.75,0.41ZM554.54,477.68l-0.27,-0.26l0.73,-0.63l-1.04,-2.14l1.83,-1.03l-0.71,-0.43l-1.7,0.47l-0.84,-1.15l0.41,-0.58l2.93,1.36l3.52,3.47l-0.38,0.28l-1.08,-0.95l-1.43,0.64l-0.41,-0.28l-0.63,1.26l-0.46,-0.38l-0.47,0.36ZM554.25,523.06l0.07,-0.07l-0.02,0.11l-0.04,-0.04ZM544.74,441.15l0.86,0.08l0.49,-0.5l0.64,0.02l-1.75,0.97l-0.6,-0.28l0.35,-0.28ZM540.76,479.76l-0.1,-0.07l0.1,-0.1l0.02,0.04l-0.02,0.13ZM533.92,479.75l-0.06,-0.06l-0.15,0.07l-0.02,-0.02l0.29,-0.11l-0.07,0.11Z\",\"name\":\"Dodekanisa\"},\"52\":{\"path\":\"M568.13,373.41l-0.33,-0.57l2.98,-3.09l2.06,0.03l3.09,-2.53l1.34,0.09l3.98,-1.6l8.4,0.66l2.63,2.49l3.63,0.62l2.99,2.19l1.25,-0.93l-2.05,-2.62l5.86,1.19l1.77,-0.46l-1.75,0.64l-0.79,1.44l1.19,0.96l-0.33,1.05l0.47,0.53l1.95,-0.1l0.26,0.6l-4.19,1.04l-2.45,-0.35l-1.82,1.6l-1.97,-0.1l-1.88,0.68l-2.06,1.59l-0.46,2.36l-1.4,0.3l-4.93,-0.55l-2.93,-4.44l-3.03,-1.77l-6.24,0.68l-1.87,1.75l-1.87,0.53l-0.81,-1.03l0.5,-1.1l-1.16,-1.77ZM600.19,367.76l0.05,-0.05l0.06,0.15l-0.0,0.0l-0.11,-0.11ZM554.86,386.52l1.01,-0.48l0.42,0.34l-1.17,0.38l-0.26,-0.24ZM556.31,386.4l0.69,-1.08l1.08,-0.04l0.35,1.53l-0.36,0.85l-0.74,-1.23l-1.01,-0.04ZM561.61,389.72l0.11,-1.24l-1.16,-1.16l0.34,-1.35l0.78,0.77l0.09,1.71l1.02,1.01l-0.43,0.46l0.46,0.7l-1.22,-0.9ZM560.76,385.7l0.11,-0.11l-0.02,0.2l-0.09,-0.09ZM562.99,385.75l-0.05,-0.16l0.65,-0.15l-0.35,0.53l-0.25,-0.21ZM563.89,385.14l-0.46,-1.57l0.37,-0.81l-1.51,-0.9l0.81,-1.77l1.55,1.12l-0.74,0.87l0.22,0.91l0.99,0.46l-1.21,1.7ZM560.89,385.09l-0.11,-0.07l0.04,-0.04l0.07,0.07l0.0,0.05ZM521.1,391.86l2.76,-4.83l3.62,-4.03l1.76,-1.19l1.32,0.61l4.06,-0.73l0.63,0.61l1.37,-0.18l1.69,0.68l7.94,-4.91l4.62,-0.86l-0.05,0.64l-1.38,0.73l-1.64,3.2l-2.15,2.03l-5.41,3.49l-1.9,0.73l-6.33,0.51l-4.43,3.77l-2.67,-0.23l-3.21,0.76l-0.59,-0.79Z\",\"name\":\"Samos\"},\"33\":{\"path\":\"M386.55,602.99l1.36,-7.37l-1.28,-0.84l-0.15,-0.72l4.28,-1.84l0.24,-1.41l-1.04,-2.64l3.11,0.22l1.55,-1.07l2.75,0.2l0.86,-0.73l1.83,-0.16l1.12,0.52l1.12,-0.74l1.18,0.51l5.06,-0.75l4.86,-1.59l3.0,-2.46l3.31,0.14l0.53,-0.69l6.17,0.62l0.62,1.15l6.76,-0.26l-0.45,1.46l1.65,2.29l-1.57,2.42l2.05,1.98l-0.01,3.49l-1.81,5.89l-3.47,0.2l-1.03,-2.52l-1.66,-0.91l-1.13,1.23l-0.52,2.35l-0.03,4.8l-0.65,0.66l-1.19,-0.78l-1.69,0.42l-1.43,1.06l-0.83,3.18l-10.37,-0.4l-3.62,-3.74l-3.24,-0.84l-1.73,0.37l-2.58,-1.27l-0.62,-1.02l-1.18,0.22l0.38,-0.72l-1.71,-1.29l-1.51,0.2l-1.1,0.87l-2.29,-0.65l-2.88,1.34l-1.0,-0.4ZM434.08,582.94l0.78,-0.96l1.74,0.97l-0.29,1.04l-2.22,-1.05Z\",\"name\":\"Rethymno\"},\"37\":{\"path\":\"M245.37,362.21l1.56,0.32l1.58,-0.71l0.86,0.48l0.02,0.9l-2.29,3.53l1.38,1.26l1.77,-0.69l3.77,0.82l2.7,1.4l4.28,-0.31l4.78,2.95l3.07,1.02l3.13,-0.03l4.56,-1.23l3.66,0.81l0.65,1.34l1.35,0.74l5.29,1.1l1.36,-1.15l2.69,-0.94l2.71,0.42l1.54,-0.83l2.76,1.44l0.81,-0.15l-1.78,3.22l1.47,2.34l-0.79,0.88l-0.29,1.65l2.35,1.69l-2.18,6.19l0.66,1.69l1.31,1.29l3.83,1.11l2.36,1.6l1.37,0.26l2.23,2.04l1.69,-0.15l3.85,0.88l1.7,-0.74l2.73,0.0l0.67,0.88l0.02,1.9l-2.11,0.84l-0.48,-0.76l-5.19,-0.18l-3.29,1.87l-2.23,-1.16l-0.97,0.88l-0.08,0.81l-2.17,0.53l-0.62,0.93l0.99,1.69l0.63,-0.78l0.66,1.51l1.77,0.16l-1.27,0.1l-1.97,-0.43l-3.11,0.66l-1.23,1.94l1.73,1.71l-0.04,0.71l-1.09,-0.28l-0.77,0.86l-2.17,-1.77l1.32,-0.78l-0.64,-1.13l-0.92,0.07l-2.51,-2.37l-3.05,0.08l0.69,-0.84l-0.68,-2.19l2.36,0.14l1.21,-1.34l-0.16,-1.39l1.42,1.0l1.19,-0.85l-0.99,-0.83l0.13,-1.42l-1.25,-1.46l-2.48,-0.4l-2.59,0.46l-0.47,-0.37l0.6,-0.88l-1.25,-1.56l-2.81,1.58l-1.77,-4.22l-0.68,-0.6l-2.73,-0.25l-1.02,-1.42l-0.92,0.03l-0.33,0.63l-1.33,-0.43l-2.21,0.48l-1.19,1.37l-1.79,-1.49l-0.63,0.1l0.47,-0.97l-2.1,-2.07l0.43,-0.61l-0.35,-0.61l-2.5,-1.54l-2.65,1.01l-1.89,1.79l0.75,2.79l-1.52,0.47l-2.46,2.34l-0.28,1.62l0.52,2.27l-1.16,0.58l-2.74,-0.38l-2.61,0.75l-1.02,-0.57l-1.64,-3.87l-3.8,-1.92l-0.46,-1.08l0.98,-3.83l-2.03,-2.41l-0.27,-1.5l-2.36,-1.06l-2.2,-5.47l-1.51,-0.64l-2.76,1.28l-0.94,-0.73l-0.25,-1.07l0.72,-3.76l1.79,-4.65l1.46,-0.98l2.31,-3.58l1.2,-0.96l1.17,-0.41l0.97,0.99ZM296.07,410.1l0.02,-0.13l-0.65,-0.61l1.41,0.78l-0.79,-0.05ZM296.96,410.15l0.06,-0.01l0.13,-0.13l-0.11,0.16l-0.08,-0.02ZM284.1,399.72l0.02,-0.1l0.12,0.08l-0.07,0.06l-0.07,-0.03ZM279.5,394.13l0.26,0.06l0.19,0.31l-0.27,-0.08l-0.17,-0.29Z\",\"name\":\"Argolida\"},\"32\":{\"path\":\"M549.55,595.0l0.17,0.07l-0.41,-0.23l0.19,0.16l0.04,0.0ZM549.78,595.1l0.05,-0.01l0.02,0.02l-0.03,0.03l-0.03,-0.04ZM482.85,592.96l2.65,-0.85l1.3,-1.07l2.3,0.17l1.39,-1.19l5.59,-1.41l2.88,1.13l5.21,-0.42l-0.34,1.21l-3.01,1.72l0.28,1.25l-0.7,1.96l0.91,1.17l0.47,2.02l-1.97,1.07l0.41,1.38l-0.5,0.58l0.58,0.63l-0.87,1.21l0.11,0.99l1.46,2.22l-0.28,0.91l0.56,0.57l2.4,-0.0l3.82,1.74l0.98,-0.4l2.29,-2.61l0.18,-1.19l0.41,-0.25l0.61,0.67l2.41,-1.71l0.47,-0.5l-0.27,-0.79l1.8,0.56l2.74,-0.35l0.94,-1.59l0.59,0.52l1.95,-0.32l2.43,-2.86l0.98,0.52l1.23,-0.49l0.89,0.89l1.16,0.17l2.3,-0.87l-0.77,1.36l0.66,0.8l1.86,0.75l2.23,-0.27l1.88,-1.12l0.42,-0.42l-0.33,-0.93l3.4,-2.6l-0.39,-0.95l1.25,-0.69l-0.35,-0.52l0.33,-0.14l0.98,0.81l0.54,-0.77l0.85,-0.02l-1.06,0.89l0.95,3.16l-0.69,1.86l0.74,1.22l2.37,1.29l0.84,-0.79l0.12,0.84l-3.0,1.31l-0.33,1.89l0.74,0.97l-0.33,1.81l-1.42,1.56l0.67,0.81l-1.33,1.23l-1.73,3.06l-0.94,0.01l-2.22,1.91l-2.42,-0.07l-3.2,1.88l-1.37,-0.24l0.13,-0.69l-1.08,-1.22l-1.8,-0.27l-0.94,0.99l-1.27,-0.81l-0.76,0.5l-3.99,-2.28l-1.21,0.68l-2.21,-0.21l-5.94,1.39l-3.64,1.69l-3.07,0.0l-1.82,-0.92l-1.09,0.51l-3.91,-0.91l-1.89,0.87l-5.41,-0.2l-3.88,1.69l-0.06,-5.02l-1.58,-2.83l-2.17,-0.63l0.15,-2.37l-1.18,-1.27l-5.93,-2.83l-1.13,-2.07l1.52,-3.25l-0.12,-1.49l0.97,-0.73l2.89,-0.17l2.4,-2.15l0.28,-2.28ZM544.88,594.27l0.45,0.01l-0.95,0.21l0.13,-0.12l0.37,-0.1ZM545.45,593.01l0.09,0.05l0.32,-0.05l-0.29,0.17l-0.12,-0.17ZM546.42,592.9l0.12,-0.12l0.04,0.04l-0.03,0.03l-0.13,0.05ZM545.59,591.89l0.15,-0.1l0.4,0.0l-0.15,0.12l-0.41,-0.02ZM546.29,591.73l0.37,-0.19l0.45,0.04l-0.54,0.42l-0.29,-0.27ZM502.47,595.99l0.28,-0.47l-0.35,-0.58l0.06,-0.12l0.14,-0.14l0.27,1.46l-0.41,-0.15ZM502.41,593.7l0.07,-0.31l0.82,0.43l-0.49,0.44l-0.39,-0.56ZM536.5,588.82l0.09,-0.62l0.67,-0.05l-0.35,0.47l-0.4,0.2ZM536.47,590.06l0.02,-0.01l0.1,0.02l-0.06,0.06l-0.07,-0.07ZM532.93,624.92l0.29,-0.78l1.51,0.65l-1.04,0.66l-0.77,-0.53ZM497.99,630.73l0.21,-0.25l0.32,0.01l1.44,0.42l-1.97,-0.17Z\",\"name\":\"Lasithio\"},\"50\":{\"path\":\"M538.11,299.14l0.54,-0.22l0.93,0.82l0.65,-0.41l1.25,1.1l1.8,0.41l-1.73,0.7l-0.64,-0.77l-1.81,-0.38l-0.99,-1.25ZM545.24,302.33l0.09,-0.09l0.32,0.2l-0.22,0.22l-0.19,-0.33ZM510.29,299.18l-0.55,-0.95l1.71,-2.76l2.8,-0.82l3.72,0.1l5.31,-1.55l2.95,1.47l1.17,-0.36l1.59,2.95l0.73,0.58l0.92,-0.38l1.12,1.71l0.62,-0.8l0.61,0.54l0.49,-0.4l0.15,-1.44l1.47,1.1l0.08,0.94l-0.95,1.34l0.26,2.27l-1.73,0.29l-0.69,1.52l0.75,0.58l0.8,-0.3l-0.53,1.15l1.45,0.35l-1.6,3.44l-0.04,1.2l0.7,6.29l1.29,1.04l-0.48,0.71l0.5,0.93l-4.38,3.37l0.04,2.49l0.92,1.2l-1.18,1.85l-4.33,0.65l-1.78,2.36l-0.27,2.19l-1.16,-0.38l-0.55,-0.84l-1.62,-0.27l-1.47,-1.41l0.29,-0.67l-0.4,-0.4l-1.92,0.08l0.28,-0.82l-1.26,-0.49l-0.15,-1.23l-1.59,-0.08l-0.67,-1.95l-1.22,0.28l0.68,-2.09l3.11,-2.23l0.87,0.81l0.51,-0.4l-0.18,-0.58l0.5,0.45l0.5,-0.46l0.51,0.46l0.96,-0.2l1.06,-1.75l-0.4,-0.69l0.31,-0.84l1.84,-1.37l0.07,-0.76l-0.75,-2.73l0.4,-0.99l-0.47,-0.45l-0.48,0.32l-1.36,-1.36l0.0,-1.01l-0.69,-0.4l0.18,-1.84l-1.07,-1.56l-1.71,-1.29l-2.69,-0.41l-1.88,-1.53l-2.04,-3.78ZM532.37,298.24l-0.01,0.01l-0.02,-0.07l0.04,0.04l-0.01,0.01ZM487.0,294.52l-0.64,-0.91l1.18,0.38l1.75,-1.0l0.53,0.37l0.54,-0.39l2.07,1.41l-0.77,4.63l-1.54,-0.05l-1.28,-0.94l-0.54,0.43l0.61,-1.81l-1.91,-2.11ZM483.59,298.89l0.72,-0.92l0.74,0.18l-0.69,1.11l-0.81,0.03l0.04,-0.39Z\",\"name\":\"Chios\"}},\"height\": 637.163792480661,\"width\": 700.0});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.indonesia.js",
    "content": "/*\n* Map of Indonesia\n* Author : Anggi Prima Nadvi Lubis <https://www.github.com/aa-lubis>\n*/\njQuery.fn.vectorMap('addMap', 'indonesia_id', {\"width\":1600,\"height\":600,\"paths\":{\"path01\":{\"name\":\"Aceh\",\"path\":\"m33.03 8.63c-0.38 -0.02 -0.81 0.09 -1.33 0.30 -1.39 0.57 -1.52 1.14 -0.60 2.47 0.95 1.36 2.00 1.44 3.37 0.26L35.48 10.79 34.73 9.77C34.17 9.01 33.67 8.65 33.03 8.63Zm-9.17 4.79c-0.55 0.10 -0.60 0.99 -0.06 2.01 0.59 1.10 2.50 0.79 2.50 -0.41 0.00 -0.68 -0.92 -1.35 -2.18 -1.60 -0.10 -0.02 -0.19 -0.02 -0.27 -0.01zm13.25 3.11c-0.66 -0.02 -1.45 0.31 -2.99 1.10 -1.23 0.63 -2.80 1.24 -3.50 1.36l-1.26 0.22 0.07 1.97c0.04 1.08 0.07 3.26 0.08 4.85 0.01 2.14 0.20 3.21 0.72 4.18 0.38 0.71 0.81 1.93 0.96 2.70 0.14 0.77 0.70 2.04 1.24 2.84 0.54 0.79 1.58 3.04 2.31 5.00 1.73 4.63 3.45 6.73 11.37 13.88 1.64 1.48 4.17 4.08 5.62 5.76 1.45 1.69 3.20 3.37 3.89 3.74 0.69 0.37 1.66 1.21 2.15 1.85 0.54 0.70 1.36 1.27 2.06 1.43 1.91 0.42 2.67 1.14 5.46 5.15 1.46 2.10 3.49 4.63 4.51 5.62l1.85 1.80h4.03 0.00c3.84 0.00 4.12 0.05 6.01 1.11 1.36 0.77 2.24 1.58 2.81 2.60 0.46 0.82 1.32 1.77 1.92 2.12 0.60 0.35 1.42 1.28 1.82 2.07 0.40 0.79 1.77 3.00 3.04 4.90 1.84 2.74 2.59 3.57 3.65 3.98 1.24 0.49 1.38 0.71 2.13 3.25 0.69 2.35 1.09 3.03 2.88 4.88 1.72 1.79 2.44 2.27 4.23 2.79 1.19 0.35 2.43 0.93 2.76 1.30 0.89 0.99 1.42 3.85 1.71 9.33 0.25 4.77 0.29 4.94 1.42 6.47 1.33 1.81 3.48 3.60 5.12 4.28 0.40 0.16 0.81 0.03 1.18 0.05l1.23 -0.82c0.00 0.00 1.13 -8.85 1.13 -11.57 0.00 -1.36 0.68 -3.23 1.36 -5.02 0.68 -1.79 1.36 -3.49 1.36 -4.51 0.00 -0.51 -0.20 -1.02 -0.51 -1.55 -0.32 -0.53 -0.75 -1.08 -1.22 -1.68 -0.94 -1.19 -2.01 -2.55 -2.58 -4.26 -0.57 -1.70 -0.68 -3.63 -0.71 -5.39 -0.03 -1.76 0.03 -3.35 -0.20 -4.37 -0.45 -2.04 -2.27 -6.13 -2.95 -7.49 -0.34 -0.68 -0.40 -1.82 -0.17 -2.92 0.11 -0.55 0.30 -1.10 0.55 -1.58 0.26 -0.48 0.58 -0.89 0.98 -1.17 0.79 -0.57 1.99 -1.30 2.98 -2.10 0.50 -0.40 0.94 -0.81 1.27 -1.22 0.32 -0.41 0.52 -0.82 0.52 -1.22 0.00 -0.79 0.23 -2.61 0.71 -4.40 0.24 -0.89 0.55 -1.78 0.92 -2.53 0.37 -0.75 0.81 -1.36 1.32 -1.70 1.50 -1.00 5.36 -2.96 8.00 -4.33 0.15 -0.95 0.06 -1.40 -0.87 -2.57 -1.43 -1.80 -3.78 -3.35 -6.29 -4.15l-1.85 -0.59 -0.62 -3.27c-0.92 -4.84 -1.72 -6.48 -3.92 -7.98 -3.26 -2.23 -7.15 -5.70 -8.86 -7.89 -0.92 -1.18 -2.16 -2.43 -2.78 -2.79 -1.04 -0.61 -1.20 -0.61 -2.49 -0.07 -3.25 1.38 -6.49 2.42 -7.45 2.40 -0.67 -0.02 -1.50 -0.47 -2.34 -1.27 -0.71 -0.68 -1.62 -1.40 -2.02 -1.60 -0.40 -0.20 -2.82 -0.41 -5.39 -0.46 -4.31 -0.09 -4.88 -0.02 -7.30 0.87 -2.50 0.92 -2.84 0.95 -7.01 0.73 -3.15 -0.17 -4.74 -0.42 -5.65 -0.88 -0.69 -0.36 -2.26 -0.72 -3.48 -0.82 -3.20 -0.24 -5.38 -1.57 -8.89 -5.38C51.54 21.83 49.59 20.07 48.82 19.66 46.11 18.24 43.40 17.44 41.24 17.41 40.05 17.39 38.73 17.18 38.29 16.93 37.86 16.68 37.51 16.54 37.12 16.53Zm12.09 89.26c-0.82 0.07 -1.22 0.57 -1.44 1.65 -0.15 0.74 -0.52 1.14 -1.31 1.41 -0.61 0.21 -1.20 0.64 -1.32 0.94 -0.33 0.86 2.57 5.07 3.86 5.60 0.59 0.24 1.71 0.91 2.49 1.48 1.01 0.73 1.85 1.03 2.88 1.03 1.66 0.00 3.27 0.71 4.84 2.14 0.59 0.54 2.10 1.60 3.35 2.34 1.25 0.75 2.37 1.60 2.48 1.89 0.11 0.30 0.71 0.75 1.32 1.02 1.34 0.58 2.72 0.64 3.97 0.16 0.71 -0.27 0.92 -0.60 0.92 -1.45 0.00 -1.19 -1.36 -2.87 -2.32 -2.87 -0.08 0.00 -0.17 -0.04 -0.29 -0.11 -0.33 -0.21 -0.79 -0.69 -1.16 -1.25 -0.49 -0.75 -1.43 -1.66 -2.07 -2.04 -0.65 -0.37 -1.72 -1.15 -2.37 -1.71 -0.66 -0.57 -1.67 -1.13 -2.25 -1.25 -0.87 -0.17 -1.05 -0.39 -1.05 -1.25 0.00 -0.95 -0.24 -1.15 -2.61 -2.23 -3.04 -1.39 -4.68 -2.67 -5.29 -4.14 -0.33 -0.79 -0.75 -1.11 -1.69 -1.29 -0.37 -0.07 -0.69 -0.10 -0.96 -0.07zm48.17 23.20 -2.18 0.25c-2.51 0.28 -3.30 0.72 -2.68 1.48 0.22 0.27 0.61 0.49 0.85 0.49 0.25 0.00 1.37 0.89 2.51 1.98 1.39 1.33 2.36 1.98 2.97 1.98 0.88 0.00 0.90 -0.05 0.66 -1.71 -0.14 -0.94 -0.67 -2.33 -1.19 -3.09l-0.94 -1.37zm-5.02 5.25c-0.65 -0.04 -1.38 0.53 -1.10 0.98 0.28 0.45 1.67 0.23 1.84 -0.29 0.07 -0.22 -0.14 -0.51 -0.47 -0.63 -0.09 -0.03 -0.18 -0.05 -0.27 -0.06z\"},\"path02\":{\"name\":\"Sumatera Utara\",\"path\":\"m130.36 59.29c-2.64 1.37 -6.50 3.33 -8.00 4.33 -0.51 0.34 -0.95 0.95 -1.32 1.70 -0.37 0.75 -0.68 1.64 -0.92 2.53 -0.48 1.79 -0.71 3.60 -0.71 4.40 0.00 0.40 -0.20 0.81 -0.52 1.22 -0.32 0.41 -0.77 0.82 -1.27 1.22 -0.99 0.79 -2.18 1.53 -2.98 2.10 -0.40 0.28 -0.72 0.69 -0.98 1.17 -0.26 0.48 -0.44 1.02 -0.55 1.58 -0.23 1.11 -0.17 2.24 0.17 2.92 0.68 1.36 2.50 5.45 2.95 7.49 0.23 1.02 0.17 2.61 0.20 4.37 0.03 1.76 0.14 3.69 0.71 5.39 0.57 1.70 1.64 3.07 2.58 4.26 0.47 0.60 0.90 1.15 1.22 1.68 0.32 0.53 0.51 1.04 0.51 1.55 0.00 1.02 -0.68 2.72 -1.36 4.51 -0.68 1.79 -1.36 3.66 -1.36 5.02 0.00 2.72 -1.13 11.57 -1.13 11.57l-1.23 0.82c0.41 0.03 0.78 0.20 1.30 0.06 1.20 -0.32 1.62 -0.23 3.72 0.81 2.85 1.41 5.13 2.95 6.35 4.29 1.37 1.50 3.97 3.04 5.14 3.04 2.18 0.00 3.85 1.33 9.35 7.47 1.11 1.24 1.60 1.52 2.62 1.52 2.41 0.00 2.63 3.01 0.33 4.37 -1.42 0.84 -1.53 1.29 -0.57 2.51 0.98 1.25 3.64 6.84 3.65 7.68 0.01 0.40 0.43 1.69 0.93 2.88 1.20 2.79 2.23 6.29 2.64 8.94 0.19 1.19 0.63 2.45 1.02 2.88 0.96 1.05 1.51 2.19 1.51 3.13 0.00 0.43 0.31 1.30 0.69 1.91 0.85 1.39 2.57 8.26 2.82 11.28 0.08 0.93 0.27 1.47 0.44 1.92l1.96 -2.66c0.00 0.00 0.79 -1.42 1.96 -2.95 0.58 -0.77 1.25 -1.56 1.97 -2.22 0.71 -0.66 1.47 -1.18 2.20 -1.41 0.74 -0.23 1.90 -0.06 3.24 0.27 1.34 0.33 2.86 0.81 4.30 1.21 1.45 0.40 2.82 0.71 3.88 0.70 0.53 -0.01 0.98 -0.10 1.31 -0.30 0.34 -0.20 0.57 -0.51 0.65 -0.97 0.17 -0.91 0.03 -1.76 -0.29 -2.56 -0.32 -0.80 -0.82 -1.56 -1.36 -2.29 -0.54 -0.72 -1.12 -1.41 -1.61 -2.07 -0.49 -0.66 -0.89 -1.30 -1.06 -1.92 -0.17 -0.62 -0.16 -1.25 0.01 -1.81 0.16 -0.56 0.48 -1.05 0.90 -1.40 0.43 -0.35 0.96 -0.57 1.58 -0.59 0.62 -0.02 1.31 0.17 2.05 0.62 1.47 0.91 3.86 1.82 5.87 2.50 2.01 0.68 3.66 1.14 3.66 1.14 0.00 0.00 0.91 -9.53 0.91 -11.57 0.00 -0.51 -0.33 -1.06 -0.80 -1.65 -0.47 -0.59 -1.09 -1.20 -1.67 -1.84 -0.58 -0.64 -1.13 -1.30 -1.46 -1.97 -0.33 -0.67 -0.44 -1.35 -0.16 -2.03 0.28 -0.68 0.80 -1.31 1.44 -1.88 0.65 -0.57 1.43 -1.10 2.27 -1.58 1.67 -0.96 3.55 -1.76 4.91 -2.44 1.36 -0.68 2.50 -1.31 3.06 -2.16 0.28 -0.43 0.43 -0.91 0.38 -1.48 -0.04 -0.57 -0.27 -1.24 -0.72 -2.03 -0.91 -1.59 -1.93 -2.84 -2.78 -3.97 -0.85 -1.13 -1.53 -2.16 -1.76 -3.29 -0.23 -1.13 -0.06 -1.82 0.20 -2.55 0.26 -0.74 0.60 -1.53 0.71 -2.89 0.11 -1.36 -0.28 -2.78 -0.71 -3.86 -0.43 -1.08 -0.88 -1.81 -0.88 -1.81l0.88 -14.34c-0.06 -0.04 -0.20 -0.30 -0.25 -0.32 -0.86 -0.31 -2.54 0.56 -2.97 1.53 -0.49 1.12 -0.90 1.01 -0.90 -0.25 0.00 -1.17 -0.31 -1.46 -1.95 -1.81 -0.84 -0.18 -1.08 -0.41 -1.00 -0.93 0.44 -2.70 0.22 -4.39 -0.77 -5.82 -0.56 -0.81 -1.50 -1.67 -2.08 -1.91 -0.59 -0.24 -1.24 -0.78 -1.46 -1.20 -0.21 -0.42 -1.20 -1.83 -2.18 -3.14 -1.71 -2.27 -1.90 -2.41 -4.18 -3.03 -2.12 -0.57 -2.69 -0.94 -5.09 -3.24 -1.48 -1.43 -3.26 -2.88 -3.96 -3.23 -0.69 -0.35 -2.29 -1.58 -3.56 -2.74 -2.70 -2.47 -6.97 -4.89 -11.37 -6.44 -4.99 -1.76 -6.12 -2.69 -8.09 -6.60 -0.30 -0.60 -0.99 -1.20 -1.61 -1.40 -0.59 -0.19 -1.77 -0.96 -2.61 -1.69 -1.92 -1.68 -6.18 -3.94 -7.43 -3.94 -2.05 0.00 -2.65 -2.84 -1.60 -7.64 0.07 -0.31 0.02 -0.41 0.06 -0.63zm-29.56 93.34c-0.64 -0.01 -1.36 0.48 -3.31 1.78 -1.90 1.27 -2.02 1.30 -4.38 1.08 -2.22 -0.21 -2.43 -0.17 -2.43 0.45 0.00 0.37 0.42 1.07 0.93 1.55 1.31 1.22 5.58 6.63 6.94 8.78 0.62 0.99 1.30 2.41 1.50 3.17 0.30 1.13 0.64 1.49 1.88 2.03 2.29 1.00 5.85 4.42 6.48 6.23 0.29 0.84 0.80 2.28 1.13 3.21 0.40 1.14 0.97 1.92 1.74 2.40 0.63 0.39 1.82 0.72 2.65 0.74 2.63 0.05 3.55 -1.55 3.89 -6.81 0.13 -2.07 0.49 -4.44 0.78 -5.25 0.48 -1.31 0.48 -1.62 -0.02 -2.80 -0.38 -0.91 -0.90 -1.45 -1.65 -1.71 -0.62 -0.21 -1.52 -1.02 -2.08 -1.85 -0.61 -0.90 -1.39 -1.58 -2.03 -1.75 -1.34 -0.36 -3.31 -2.24 -4.25 -4.08 -0.98 -1.90 -4.79 -5.84 -6.49 -6.71 -0.56 -0.29 -0.92 -0.47 -1.30 -0.47zm32.12 49.43c-0.66 0.00 -1.30 0.16 -1.42 0.36 -0.31 0.50 1.49 4.94 2.59 6.40 0.82 1.08 0.85 1.25 0.34 1.81 -1.68 1.85 -3.31 7.80 -2.62 9.58 0.18 0.48 0.72 0.56 3.02 0.47l2.79 -0.11 0.10 -2.97c0.08 -2.23 0.23 -2.97 0.60 -2.97 0.27 0.00 0.68 -0.56 0.91 -1.25 0.38 -1.14 0.31 -1.44 -0.86 -3.52 -0.70 -1.25 -1.51 -2.96 -1.81 -3.79 -0.89 -2.52 -2.25 -4.02 -3.64 -4.02z\"},\"path03\":{\"name\":\"Sumatera Barat\",\"path\":\"m177.95 172.83c-0.62 0.02 -1.15 0.24 -1.58 0.59 -0.43 0.35 -0.74 0.84 -0.90 1.40 -0.16 0.56 -0.18 1.18 -0.01 1.81 0.17 0.62 0.57 1.26 1.06 1.92 0.49 0.66 1.07 1.35 1.61 2.07 0.54 0.72 1.04 1.48 1.36 2.29 0.32 0.80 0.46 1.65 0.29 2.56 -0.09 0.45 -0.31 0.77 -0.65 0.97 -0.34 0.20 -0.79 0.29 -1.31 0.30 -1.06 0.01 -2.43 -0.30 -3.88 -0.70 -1.45 -0.40 -2.96 -0.88 -4.30 -1.21 -1.34 -0.33 -2.50 -0.50 -3.24 -0.27 -0.74 0.23 -1.49 0.75 -2.20 1.41 -0.71 0.66 -1.39 1.45 -1.97 2.22 -1.16 1.53 -1.96 2.95 -1.96 2.95l-1.96 2.66c0.06 0.15 0.09 0.58 0.15 0.63 0.69 0.52 3.30 1.14 4.78 1.14 1.11 0.00 1.64 0.24 2.45 1.08 0.57 0.59 1.39 1.08 1.82 1.08 2.41 0.00 6.98 2.70 9.09 5.36 1.26 1.59 1.41 1.98 1.24 3.21 -0.15 1.12 0.00 1.69 0.75 2.79 0.52 0.76 0.94 1.82 0.94 2.36 0.00 0.78 0.58 1.46 2.95 3.42 3.95 3.28 4.73 4.12 6.66 7.10 0.91 1.40 2.74 3.68 4.07 5.06 2.66 2.77 3.38 3.94 3.95 6.46 0.21 0.92 0.74 2.17 1.17 2.76 0.77 1.04 0.78 1.11 0.17 2.16 -0.81 1.41 -0.79 1.85 0.14 2.68 0.42 0.38 1.38 1.51 2.13 2.52 0.75 1.01 1.86 2.04 2.47 2.29 0.94 0.39 1.11 0.65 1.11 1.70 0.00 1.05 1.86 5.84 3.36 8.63 0.81 1.51 2.59 4.15 4.11 6.08 2.64 3.36 3.26 5.77 2.25 8.77 -0.40 1.18 -0.71 2.44 -0.69 2.79 0.06 1.26 3.14 6.08 5.91 9.83 1.07 -1.04 2.13 -2.13 3.16 -3.16 0.96 -0.96 1.92 -1.66 2.80 -2.16 0.88 -0.50 1.70 -0.81 2.39 -0.99 1.39 -0.37 2.30 -0.26 2.30 -0.26 0.00 0.00 -0.57 -0.74 -1.19 -2.01 -0.62 -1.28 -1.30 -3.09 -1.53 -5.25 -0.11 -1.08 0.07 -2.45 0.45 -4.00 0.38 -1.54 0.94 -3.25 1.59 -4.99 1.30 -3.49 2.95 -7.12 4.09 -9.84 0.57 -1.36 1.39 -2.82 2.30 -4.25 0.91 -1.43 1.92 -2.81 2.86 -4.03 1.87 -2.44 3.46 -4.20 3.46 -4.20 0.00 0.00 -2.04 -2.72 -3.86 -4.31 -0.91 -0.79 -1.93 -1.08 -3.01 -1.22 -1.08 -0.14 -2.21 -0.14 -3.35 -0.37 -0.57 -0.11 -1.25 -0.52 -1.95 -1.08 -0.70 -0.55 -1.42 -1.25 -2.08 -1.93 -1.30 -1.36 -2.33 -2.67 -2.33 -2.67 0.00 0.00 -11.80 -13.16 -14.52 -16.34 -0.68 -0.79 -0.99 -1.87 -1.08 -3.08 -0.09 -1.21 0.04 -2.54 0.23 -3.84 0.40 -2.61 1.08 -5.11 0.85 -6.24 -0.11 -0.57 -0.58 -1.28 -1.26 -2.05 -0.68 -0.78 -1.56 -1.62 -2.51 -2.46 -1.90 -1.67 -4.06 -3.32 -5.31 -4.34 -0.62 -0.51 -1.37 -0.78 -2.21 -0.92 -0.83 -0.14 -1.75 -0.15 -2.70 -0.13 -0.95 0.01 -1.94 0.05 -2.91 -0.00 -0.98 -0.05 -1.94 -0.20 -2.85 -0.54 -0.91 -0.34 -1.46 -0.97 -1.78 -1.75 -0.32 -0.78 -0.40 -1.73 -0.37 -2.70 0.06 -1.96 0.57 -4.06 0.57 -5.30 0.00 -0.05 -0.07 -0.19 -0.07 -0.25 -0.06 -0.02 -1.62 -0.45 -3.59 -1.11 -2.01 -0.68 -4.40 -1.59 -5.87 -2.50 -0.74 -0.45 -1.43 -0.64 -2.05 -0.62zm-29.13 59.60c-0.41 0.02 -0.82 0.14 -1.44 0.39 -0.88 0.35 -1.90 0.49 -2.60 0.36 -1.01 -0.19 -1.28 -0.06 -2.06 0.96 -0.49 0.65 -1.00 1.67 -1.13 2.26 -0.13 0.59 -0.56 1.91 -0.95 2.92 -0.97 2.51 -0.56 3.89 2.48 8.33 1.31 1.92 2.76 4.04 3.22 4.71 0.46 0.67 0.83 1.58 0.83 2.02 0.00 0.44 0.32 1.21 0.72 1.72 0.66 0.84 7.03 5.29 8.27 5.77 0.77 0.30 2.52 -0.04 3.49 -0.67 0.46 -0.30 1.23 -1.17 1.71 -1.94 0.49 -0.77 1.05 -1.50 1.26 -1.63 0.66 -0.41 0.41 -2.20 -0.40 -2.92 -1.65 -1.46 -2.83 -3.47 -2.83 -4.82 0.00 -0.92 -0.35 -1.81 -1.11 -2.87 -0.61 -0.85 -1.29 -2.04 -1.51 -2.66 -0.35 -1.01 -1.48 -2.95 -3.90 -6.70 -0.45 -0.69 -0.90 -1.99 -1.01 -2.88 -0.19 -1.50 -0.30 -1.65 -1.62 -2.08 -0.60 -0.20 -1.01 -0.29 -1.42 -0.27zm24.94 35.88c-0.18 -0.01 -0.36 0.02 -0.58 0.08 -1.71 0.43 -1.92 0.82 -1.92 3.61v0.00 2.60l1.71 1.60c1.51 1.41 2.62 2.05 7.10 4.05 0.75 0.33 1.22 0.37 1.54 0.11 0.62 -0.50 0.23 -1.57 -1.19 -3.32 -1.25 -1.54 -3.04 -4.70 -3.04 -5.37 0.00 -0.23 -0.71 -1.11 -1.59 -1.97 -1.03 -1.01 -1.49 -1.36 -2.02 -1.38zm12.18 15.74c-0.54 0.04 -0.87 0.56 -0.96 1.56 -0.06 0.76 0.08 1.89 0.31 2.52 0.23 0.62 0.54 2.38 0.69 3.91 0.15 1.53 0.49 3.04 0.76 3.36 1.23 1.49 5.62 -0.75 6.46 -3.29 0.51 -1.53 0.06 -2.37 -2.22 -4.17 -0.84 -0.66 -2.12 -1.82 -2.86 -2.58 -0.90 -0.92 -1.64 -1.36 -2.18 -1.32zm8.91 9.71c-0.19 0.00 -0.90 0.37 -1.57 0.81l-1.22 0.81 0.23 2.70c0.28 3.20 1.33 5.31 3.22 6.42 1.10 0.65 1.27 0.93 1.27 2.13 0.00 1.44 0.91 3.01 2.54 4.36 0.48 0.40 1.24 0.74 1.69 0.74 1.10 0.02 1.07 -1.18 -0.08 -3.05 -1.23 -1.99 -1.18 -3.00 0.16 -3.47 1.22 -0.42 1.61 -1.30 1.27 -2.83 -0.23 -1.07 -6.82 -8.63 -7.52 -8.63z\"},\"path04\":{\"name\":\"Riau\",\"path\":\"m193.35 113.72 -0.88 14.34c0.00 0.00 0.45 0.74 0.88 1.81 0.43 1.08 0.82 2.50 0.71 3.86 -0.11 1.36 -0.45 2.15 -0.71 2.89 -0.26 0.74 -0.42 1.42 -0.20 2.55 0.23 1.13 0.91 2.16 1.76 3.29 0.85 1.13 1.87 2.38 2.78 3.97 0.45 0.79 0.68 1.46 0.72 2.03 0.04 0.57 -0.10 1.06 -0.38 1.48 -0.57 0.85 -1.70 1.48 -3.06 2.16 -1.36 0.68 -3.23 1.48 -4.91 2.44 -0.84 0.48 -1.62 1.01 -2.27 1.58 -0.65 0.57 -1.16 1.20 -1.44 1.88 -0.28 0.68 -0.17 1.36 0.16 2.03 0.33 0.67 0.88 1.33 1.46 1.97 0.58 0.64 1.20 1.26 1.67 1.84 0.47 0.59 0.80 1.14 0.80 1.65 0.00 2.04 -0.91 11.57 -0.91 11.57 0.00 0.00 -0.07 -0.02 -0.07 -0.02 0.00 0.05 0.07 0.20 0.07 0.25 0.00 1.25 -0.51 3.35 -0.57 5.30 -0.03 0.98 0.06 1.92 0.37 2.70 0.32 0.78 0.87 1.41 1.78 1.75 0.91 0.34 1.87 0.48 2.85 0.54 0.98 0.05 1.96 0.02 2.91 0.00 0.95 -0.01 1.86 -0.01 2.70 0.13 0.83 0.14 1.58 0.41 2.21 0.92 1.25 1.02 3.41 2.67 5.31 4.34 0.95 0.84 1.84 1.68 2.51 2.46 0.68 0.78 1.14 1.49 1.26 2.05 0.23 1.13 -0.45 3.63 -0.85 6.24 -0.20 1.30 -0.33 2.64 -0.23 3.84 0.09 1.21 0.40 2.28 1.08 3.08 2.72 3.18 14.52 16.34 14.52 16.34 0.00 0.00 1.02 1.31 2.33 2.67 0.65 0.68 1.37 1.38 2.08 1.93 0.70 0.55 1.38 0.96 1.95 1.08 1.13 0.23 2.27 0.23 3.35 0.37 1.08 0.14 2.10 0.43 3.01 1.22 1.62 1.42 3.07 3.36 3.44 3.84 0.67 -0.87 1.64 -2.33 2.04 -2.74 1.12 -1.12 2.41 -1.77 3.89 -2.29 1.48 -0.52 3.17 -0.92 5.09 -1.56 0.96 -0.32 1.95 -0.30 2.90 -0.07 0.96 0.23 1.89 0.66 2.75 1.16 1.72 1.00 3.17 2.29 3.97 2.77 0.80 0.48 2.17 1.20 3.57 1.64 0.70 0.22 1.41 0.37 2.07 0.39 0.66 0.02 1.26 -0.11 1.74 -0.43 0.48 -0.32 0.76 -0.84 0.95 -1.46 0.19 -0.62 0.28 -1.33 0.38 -2.03 0.10 -0.70 0.21 -1.39 0.44 -1.97 0.23 -0.58 0.57 -1.04 1.13 -1.28 1.12 -0.48 2.49 -1.36 4.13 -2.05 0.82 -0.34 1.72 -0.63 2.68 -0.80 0.97 -0.17 2.01 -0.20 3.14 -0.04 2.25 0.32 6.82 0.32 10.83 0.24 3.33 -0.07 5.29 -0.16 6.19 -0.20 -0.79 -0.75 -1.66 -1.56 -1.85 -1.62 -0.34 -0.11 -0.26 -0.64 0.30 -2.13 0.44 -1.15 0.68 -2.43 0.58 -3.06 -0.17 -1.07 -0.15 -1.08 1.22 -0.95 2.58 0.25 5.84 -2.40 4.20 -3.41 -0.29 -0.18 -0.08 -0.37 0.63 -0.54 2.48 -0.60 5.04 -1.67 5.13 -2.14 0.05 -0.28 -0.22 -1.02 -0.61 -1.65 -0.53 -0.86 -1.18 -1.29 -2.59 -1.71 -2.58 -0.77 -3.57 -0.70 -4.96 0.32 -1.26 0.93 -1.18 0.93 -3.20 -0.38 -0.06 -0.04 0.88 -0.75 2.10 -1.58 1.22 -0.83 2.54 -2.06 2.94 -2.73 0.46 -0.77 1.00 -1.23 1.49 -1.24 0.88 -0.02 6.22 -1.53 6.55 -1.86 0.12 -0.12 -0.21 -2.13 -0.74 -4.47 -0.27 -1.22 -0.46 -1.80 -0.67 -2.50 -0.31 -0.66 -0.60 -1.51 -0.91 -2.07 -0.05 -0.08 -0.07 -0.16 -0.11 -0.24 -0.14 -0.18 -0.22 -0.44 -0.39 -0.62 -0.87 -0.91 -1.42 -1.17 -2.47 -1.17 -1.03 0.00 -1.40 -0.17 -1.57 -0.72 -0.60 -1.90 -4.77 -5.51 -7.07 -6.13 -1.29 -0.35 -1.66 -0.29 -3.30 0.52 -1.02 0.50 -2.73 1.58 -3.80 2.40 -1.07 0.82 -2.65 1.79 -3.51 2.15 -0.86 0.37 -2.15 1.07 -2.88 1.57 -1.24 0.84 -1.92 0.92 -1.92 0.21 0.00 -0.17 0.85 -0.81 1.89 -1.42 2.40 -1.40 3.87 -2.71 3.87 -3.44 0.00 -0.99 -1.10 -2.78 -3.38 -5.49 -2.69 -3.21 -3.22 -3.39 -10.18 -3.46 -2.81 -0.03 -5.22 -0.17 -5.36 -0.31 -0.29 -0.29 0.61 -0.32 7.40 -0.27 4.22 0.04 4.95 0.13 5.57 0.72 1.48 1.39 4.24 1.91 4.64 0.87 0.40 -1.03 0.23 -2.42 -0.38 -3.09 -0.74 -0.82 -0.43 -1.21 0.50 -0.63 0.97 0.60 3.22 0.13 3.71 -0.78 0.54 -1.01 -0.52 -2.59 -3.76 -5.61 -2.94 -2.74 -7.01 -4.79 -9.52 -4.79 -1.29 0.00 -1.54 0.17 -2.74 1.80 -0.73 0.99 -1.44 1.80 -1.59 1.80 -0.15 0.00 -0.66 -0.42 -1.14 -0.93 -1.40 -1.50 -2.05 -1.72 -3.09 -1.04 -1.18 0.77 -1.38 0.52 -0.93 -1.23 0.28 -1.09 0.25 -1.66 -0.13 -2.39 -0.57 -1.10 -0.64 -1.73 -0.17 -1.43 0.18 0.11 0.58 0.10 0.90 -0.02 0.83 -0.32 0.79 -4.91 -0.06 -6.61 -0.81 -1.62 -1.81 -2.07 -6.90 -3.08 -2.30 -0.46 -4.63 -1.00 -5.19 -1.21 -1.50 -0.57 -2.93 -0.46 -3.87 0.30l-0.84 0.68 0.99 1.50c1.29 1.95 3.75 3.49 6.09 3.81l1.85 0.25 -0.94 0.68c-1.23 0.90 -1.63 3.05 -0.85 4.58 0.31 0.60 0.56 1.55 0.55 2.10 -0.02 0.94 -0.07 0.90 -0.88 -0.61 -0.48 -0.89 -0.87 -2.21 -0.88 -2.94 -0.02 -1.64 -1.11 -3.01 -3.91 -4.87 -1.14 -0.76 -3.57 -2.67 -5.40 -4.24 -4.01 -3.45 -4.99 -3.86 -8.04 -3.37 -2.19 0.35 -2.29 0.33 -4.93 -1.01 -2.64 -1.34 -2.72 -1.42 -3.51 -3.53 -0.44 -1.19 -0.82 -2.76 -0.83 -3.50 -0.04 -3.14 -1.18 -4.56 -6.75 -8.42 -1.44 -1.00 -1.93 -1.58 -2.10 -2.49 -0.12 -0.65 -0.41 -1.26 -0.65 -1.35 -0.90 -0.35 -6.33 -0.23 -7.17 0.15 -0.49 0.22 -1.16 1.00 -1.49 1.74 -0.84 1.87 -0.43 3.65 1.30 5.65 1.63 1.88 1.97 3.34 0.38 1.64 -1.49 -1.59 -5.44 -4.03 -6.52 -4.03 -1.08 0.00 -1.91 -0.51 -4.77 -2.96 -2.53 -2.16 -3.26 -3.32 -4.55 -7.21 -1.02 -3.05 -3.73 -7.61 -4.91 -8.39zm46.60 18.92c-0.24 0.00 -0.94 0.36 -1.55 0.79 -0.70 0.50 -1.55 0.76 -2.30 0.71 -0.65 -0.04 -1.83 0.25 -2.62 0.65 -1.87 0.95 -2.17 2.34 -1.29 6.05 0.72 3.04 2.23 5.10 4.23 5.74 1.13 0.36 3.23 0.25 4.11 -0.22 0.23 -0.12 1.00 -0.75 1.71 -1.40 1.01 -0.92 1.29 -1.45 1.29 -2.43 0.00 -0.69 0.32 -1.86 0.72 -2.59 0.40 -0.74 0.72 -1.67 0.72 -2.08 0.00 -1.56 -3.52 -5.20 -5.02 -5.20zm56.38 33.88c-1.30 -0.00 -2.00 1.45 -0.65 2.81 0.85 0.85 0.68 0.82 2.12 0.32 1.41 -0.49 1.40 -1.52 -0.03 -2.58 -0.51 -0.38 -1.01 -0.55 -1.45 -0.55zm0.54 7.85c-0.45 0.01 -0.84 0.14 -1.11 0.42 -1.05 1.05 0.19 4.81 1.86 5.62 1.56 0.76 2.64 0.50 3.46 -0.84l0.78 -1.26 -0.77 -1.24c-1.01 -1.63 -2.88 -2.73 -4.22 -2.70zm4.21 1.07c-0.20 0.00 -0.36 0.16 -0.36 0.36 0.00 0.20 0.16 0.36 0.36 0.36 0.20 0.00 0.36 -0.16 0.36 -0.36 0.00 -0.20 -0.16 -0.36 -0.36 -0.36zm-9.21 3.95c-0.44 -0.02 -0.93 0.14 -1.55 0.45 -1.58 0.81 -2.20 4.17 -1.04 5.57 0.90 1.08 3.97 -0.04 5.19 -1.91 0.43 -0.66 0.36 -0.93 -0.58 -2.43 -0.71 -1.13 -1.29 -1.66 -2.02 -1.69z\"},\"path05\":{\"name\":\"Jambi\",\"path\":\"m250.32 295.12c0.22 -0.15 0.19 -0.13 0.42 -0.29 2.72 -1.84 5.96 -3.94 8.00 -4.96 2.04 -1.02 3.74 -1.99 5.39 -2.84 1.65 -0.85 3.23 -1.59 5.05 -2.16 1.82 -0.57 2.90 -1.02 3.52 -1.62 0.31 -0.30 0.51 -0.63 0.63 -1.03 0.12 -0.40 0.16 -0.87 0.16 -1.44 0.00 -1.13 0.17 -1.82 0.68 -2.21 0.51 -0.40 1.36 -0.51 2.72 -0.51 1.36 0.00 2.67 -0.28 3.66 -0.68 0.99 -0.40 1.67 -0.91 1.79 -1.36 0.11 -0.45 0.97 -1.25 1.82 -1.59 0.43 -0.17 0.85 -0.23 1.18 -0.07 0.33 0.16 0.57 0.53 0.63 1.21 0.11 1.36 0.34 2.84 0.74 3.94 0.20 0.55 0.44 1.01 0.73 1.32 0.29 0.31 0.63 0.46 1.03 0.41 0.79 -0.11 1.93 -0.68 2.98 -1.42 1.05 -0.74 2.01 -1.65 2.47 -2.44 0.45 -0.79 0.68 -2.04 0.91 -3.23 0.23 -1.19 0.45 -2.33 0.91 -2.89 0.45 -0.57 2.67 -2.10 4.77 -3.49 2.10 -1.39 4.08 -2.64 4.08 -2.64 0.00 0.00 0.79 -0.80 1.96 -1.65 0.58 -0.43 1.25 -0.87 1.97 -1.23 0.71 -0.36 1.47 -0.65 2.20 -0.76 1.47 -0.23 4.03 0.17 6.38 0.63 2.35 0.45 4.51 0.96 5.19 0.96 0.68 0.00 1.81 -0.23 2.86 -0.71 0.52 -0.24 1.03 -0.55 1.44 -0.92 0.41 -0.37 0.74 -0.81 0.91 -1.32 0.34 -1.02 0.74 -1.99 1.50 -2.53 0.38 -0.27 0.86 -0.43 1.46 -0.44 0.61 -0.01 1.34 0.13 2.25 0.47 0.45 0.17 0.99 0.02 1.58 -0.38 0.01 -0.01 0.02 -0.02 0.03 -0.03 -0.15 -0.40 -0.13 -0.57 -0.34 -1.07 -1.13 -2.74 -1.26 -3.37 -1.26 -6.43 0.00 -2.80 -0.13 -3.62 -0.76 -4.67 -0.53 -0.90 -0.84 -2.24 -1.02 -4.50 -0.15 -1.77 -0.47 -3.47 -0.73 -3.77 -0.55 -0.66 -2.61 -0.72 -4.78 -0.14 -1.35 0.36 -1.72 0.32 -3.05 -0.36 -0.83 -0.42 -2.05 -0.77 -2.71 -0.77 -0.66 0.00 -1.52 -0.24 -1.90 -0.53 -0.38 -0.29 -1.38 -0.53 -2.21 -0.54 -1.19 -0.01 -1.79 0.23 -2.77 1.09l-1.25 1.10 -0.62 -0.94c-0.34 -0.52 -1.44 -1.36 -2.45 -1.86 -3.22 -1.62 -6.50 -3.91 -8.51 -5.94 -0.25 -0.25 -0.32 -0.26 -0.55 -0.49 -0.91 0.04 -2.86 0.13 -6.19 0.20 -4.01 0.08 -8.58 0.08 -10.83 -0.24 -1.12 -0.16 -2.17 -0.12 -3.14 0.04 -0.97 0.17 -1.86 0.46 -2.68 0.80 -1.64 0.68 -3.01 1.57 -4.13 2.05 -0.56 0.24 -0.90 0.70 -1.13 1.28 -0.23 0.58 -0.34 1.27 -0.44 1.97 -0.10 0.70 -0.19 1.41 -0.38 2.03 -0.19 0.62 -0.47 1.14 -0.95 1.46 -0.48 0.32 -1.08 0.44 -1.74 0.43 -0.66 -0.02 -1.37 -0.17 -2.07 -0.39 -1.40 -0.44 -2.77 -1.16 -3.57 -1.64 -0.80 -0.48 -2.25 -1.76 -3.97 -2.77 -0.86 -0.50 -1.80 -0.93 -2.75 -1.16 -0.96 -0.23 -1.94 -0.25 -2.90 0.07 -1.93 0.64 -3.61 1.04 -5.09 1.56 -1.48 0.52 -2.77 1.16 -3.89 2.29 -0.41 0.41 -1.38 1.86 -2.04 2.74 0.05 0.06 0.42 0.47 0.42 0.47 0.00 0.00 -1.59 1.76 -3.46 4.20 -0.94 1.22 -1.94 2.61 -2.86 4.03 -0.91 1.43 -1.74 2.89 -2.30 4.25 -1.13 2.72 -2.78 6.35 -4.09 9.84 -0.65 1.74 -1.22 3.45 -1.59 4.99 -0.38 1.54 -0.56 2.92 -0.45 4.00 0.23 2.16 0.91 3.97 1.53 5.25 0.11 0.22 0.10 0.16 0.21 0.35 0.14 0.10 0.41 0.23 0.52 0.32 0.96 0.80 1.69 2.01 2.37 3.37 0.68 1.36 1.32 2.89 2.13 4.33 0.40 0.72 0.94 1.46 1.62 2.21 0.68 0.75 1.50 1.50 2.47 2.24 1.93 1.48 4.41 2.93 7.46 4.21 1.52 0.64 2.89 1.45 4.09 2.31 0.28 0.20 0.47 0.42 0.73 0.63z\"},\"path06\":{\"name\":\"Sumatera Selatan\",\"path\":\"m306.51 361.78c0.39 0.75 0.75 1.55 1.19 2.14 0.36 0.49 0.74 0.90 1.12 1.21 0.39 0.30 0.78 0.49 1.18 0.53 1.60 0.16 3.45 0.80 5.17 1.08 0.86 0.14 1.69 0.19 2.45 0.04 0.76 -0.15 1.44 -0.49 2.00 -1.13 0.56 -0.64 1.04 -1.58 1.48 -2.70 0.44 -1.11 0.84 -2.40 1.24 -3.72 0.80 -2.65 1.60 -5.46 2.73 -7.38 0.56 -0.96 1.10 -1.72 1.69 -2.36 0.58 -0.64 1.20 -1.16 1.92 -1.65 1.44 -0.96 3.29 -1.76 6.02 -3.05 2.73 -1.28 6.26 -2.25 9.31 -3.25 1.52 -0.50 2.93 -1.01 4.05 -1.58 1.12 -0.57 1.97 -1.19 2.37 -1.91 0.40 -0.72 0.62 -1.40 0.74 -2.03 0.12 -0.63 0.14 -1.20 0.14 -1.70 0.00 -0.50 -0.02 -0.93 0.02 -1.28 0.04 -0.35 0.14 -0.61 0.38 -0.77 0.48 -0.32 1.04 -0.48 1.73 -0.60 0.68 -0.12 1.48 -0.20 2.45 -0.36 0.48 -0.08 0.88 -0.36 1.24 -0.74 0.36 -0.38 0.68 -0.85 1.00 -1.31 0.32 -0.46 0.64 -0.91 1.00 -1.25 0.36 -0.34 0.76 -0.56 1.24 -0.56 0.48 0.00 1.06 0.22 1.67 0.58 0.61 0.36 1.26 0.86 1.86 1.43 1.20 1.12 2.25 2.49 2.57 3.45 0.32 0.96 1.04 2.25 2.09 3.37 0.52 0.56 1.12 1.08 1.80 1.51 0.67 0.42 1.41 0.74 2.21 0.90 1.61 0.32 2.97 0.80 5.14 1.45 0.47 -2.50 1.58 -6.11 2.70 -8.12 0.67 -1.21 1.22 -2.47 1.22 -2.81 0.00 -1.15 -1.10 -2.74 -2.53 -3.64 -1.77 -1.12 -1.84 -2.01 -0.49 -6.76 1.13 -3.98 1.67 -4.91 4.21 -7.29 2.72 -2.55 3.24 -3.41 2.77 -4.62 -0.20 -0.53 -0.37 -1.69 -0.37 -2.56 0.00 -1.40 -0.36 -2.48 -0.89 -3.37 -0.59 -0.36 -1.18 -0.61 -1.75 -1.04 -0.34 -0.25 -0.57 -0.62 -0.89 -0.89 -0.47 -0.12 -0.92 -0.26 -1.47 -0.26 -1.14 0.00 -1.59 -0.23 -2.51 -1.27 -1.10 -1.25 -1.30 -2.05 -1.14 -4.41 0.10 -1.51 -0.26 -1.92 -3.03 -3.47 -2.60 -1.46 -2.81 -1.91 -2.73 -5.83l0.06 -2.57 -1.91 -0.18c-1.05 -0.10 -3.04 -0.43 -4.43 -0.74 -5.05 -1.11 -6.50 -1.26 -9.66 -1.00 -2.62 0.22 -3.43 0.15 -4.54 -0.34 -0.85 -0.38 -1.53 -0.49 -1.85 -0.29 -0.74 0.47 -0.97 0.40 -1.22 -0.39 -0.32 -1.01 -1.03 -0.90 -2.51 0.40 -1.84 1.62 -2.82 3.13 -3.09 4.79l-0.24 1.46 -0.05 -1.50c-0.03 -1.15 -0.26 -1.67 -0.95 -2.22l-0.91 -0.71 1.25 -0.41c1.34 -0.44 4.72 -3.85 5.27 -5.31 0.42 -1.11 0.42 -3.40 -0.01 -4.53 -0.19 -0.49 -0.91 -1.32 -1.60 -1.85 -1.14 -0.87 -1.39 -0.92 -2.49 -0.56 -1.75 0.58 -3.01 -0.07 -3.47 -1.77 -0.55 -2.04 -3.30 -3.73 -3.83 -2.35 -0.11 0.30 -0.35 0.45 -0.53 0.34 -0.18 -0.11 0.00 -0.83 0.40 -1.60 0.84 -1.66 0.71 -2.82 -0.21 -5.24 -0.01 0.01 -0.02 0.02 -0.03 0.03 -0.59 0.40 -1.12 0.55 -1.58 0.38 -0.91 -0.34 -1.65 -0.48 -2.25 -0.47 -0.61 0.01 -1.08 0.17 -1.46 0.44 -0.77 0.54 -1.16 1.51 -1.50 2.53 -0.17 0.51 -0.50 0.95 -0.91 1.32 -0.41 0.37 -0.92 0.68 -1.44 0.92 -1.05 0.48 -2.18 0.71 -2.86 0.71 -0.68 0.00 -2.84 -0.51 -5.19 -0.96 -2.35 -0.45 -4.91 -0.85 -6.38 -0.63 -0.74 0.11 -1.49 0.40 -2.20 0.76 -0.71 0.36 -1.39 0.80 -1.97 1.23 -1.16 0.85 -1.96 1.65 -1.96 1.65 0.00 0.00 -1.98 1.25 -4.08 2.64 -2.10 1.39 -4.31 2.92 -4.77 3.49 -0.45 0.57 -0.68 1.70 -0.91 2.89 -0.23 1.19 -0.45 2.44 -0.91 3.23 -0.45 0.79 -1.42 1.70 -2.47 2.44 -1.05 0.74 -2.18 1.31 -2.98 1.42 -0.40 0.06 -0.74 -0.10 -1.03 -0.41 -0.29 -0.31 -0.53 -0.77 -0.73 -1.32 -0.40 -1.11 -0.62 -2.58 -0.74 -3.94 -0.06 -0.68 -0.30 -1.05 -0.63 -1.21 -0.33 -0.16 -0.76 -0.10 -1.18 0.07 -0.85 0.34 -1.70 1.14 -1.82 1.59 -0.11 0.45 -0.79 0.96 -1.79 1.36 -0.99 0.40 -2.30 0.68 -3.66 0.68 -1.36 0.00 -2.21 0.11 -2.72 0.51 -0.51 0.40 -0.68 1.08 -0.68 2.21 0.00 0.57 -0.04 1.03 -0.16 1.44 -0.12 0.40 -0.32 0.73 -0.63 1.03 -0.62 0.60 -1.70 1.05 -3.52 1.62 -1.82 0.57 -3.40 1.31 -5.05 2.16 -1.65 0.85 -3.35 1.82 -5.39 2.84 -2.04 1.02 -5.28 3.12 -8.00 4.96 -0.23 0.16 -0.20 0.14 -0.42 0.29 0.86 0.68 1.72 1.38 2.40 2.07 1.76 1.81 2.89 3.49 3.37 4.29 0.24 0.40 0.76 0.78 1.41 1.13 0.65 0.35 1.42 0.66 2.16 0.92 1.48 0.52 2.85 0.84 2.85 0.84 0.00 0.00 0.56 1.44 1.36 3.05 0.40 0.80 0.86 1.65 1.34 2.37 0.48 0.72 0.98 1.32 1.47 1.64 0.48 0.32 1.20 0.50 2.02 0.59 0.81 0.09 1.71 0.09 2.56 0.05 1.68 -0.08 3.13 -0.32 3.13 -0.32l6.74 3.85c0.00 0.00 1.12 0.64 1.97 1.44 0.42 0.40 0.77 0.84 0.88 1.26 0.11 0.42 -0.04 0.82 -0.60 1.14 -1.12 0.64 -2.97 1.45 -4.89 2.53 -0.96 0.54 -1.95 1.15 -2.87 1.85 -0.92 0.70 -1.79 1.48 -2.51 2.36 -0.72 0.88 -1.12 1.64 -1.28 2.33 -0.16 0.68 -0.08 1.28 0.16 1.85 0.48 1.12 1.60 2.09 2.73 3.21 1.12 1.12 2.49 2.97 4.09 4.73 0.80 0.88 1.66 1.74 2.59 2.49 0.92 0.74 1.90 1.36 2.95 1.77 2.09 0.80 4.09 1.04 6.02 1.40 0.96 0.18 1.91 0.39 2.83 0.72 0.92 0.33 1.82 0.77 2.71 1.41 1.77 1.28 3.13 2.65 4.37 4.13 1.24 1.48 2.37 3.09 3.65 4.85 1.28 1.77 2.17 3.29 2.73 4.37 0.56 1.08 0.80 1.73 0.80 1.73 0.00 0.00 -0.72 0.48 -0.92 0.61z\"},\"path07\":{\"name\":\"Bengkulu\",\"path\":\"m228.93 275.48c0.49 0.90 0.99 1.67 0.99 1.67 0.00 0.00 -0.91 -0.11 -2.30 0.26 -0.69 0.18 -1.51 0.49 -2.39 0.99 -0.88 0.50 -1.83 1.19 -2.80 2.16 -1.03 1.03 -2.09 2.12 -3.16 3.16 0.93 1.26 1.96 2.87 2.64 3.55 0.92 0.92 2.72 2.25 4.02 2.97 1.29 0.72 2.61 1.60 2.93 1.96 0.32 0.36 1.66 2.76 2.97 5.33 2.79 5.47 6.17 10.51 8.05 12.04 3.50 2.84 9.75 7.30 13.09 9.32 5.29 3.20 5.59 3.49 6.24 5.98 0.31 1.18 0.87 2.76 1.26 3.51 0.50 0.96 0.65 1.75 0.50 2.70 -0.19 1.23 -0.08 1.46 1.53 3.02 0.95 0.93 3.82 3.16 6.36 4.96 5.22 3.69 7.07 5.19 11.05 8.90 1.53 1.43 3.64 3.01 4.70 3.51 2.78 1.33 7.86 5.24 9.12 7.03 0.71 1.00 1.55 1.70 2.42 2.00 0.74 0.25 2.09 0.98 3.02 1.62 0.85 0.59 2.63 1.43 4.07 2.00 0.34 -0.26 0.71 -0.66 1.03 -0.89 1.81 -1.28 3.17 -2.09 3.17 -2.09 0.00 0.00 -0.24 -0.64 -0.80 -1.73 -0.56 -1.08 -1.44 -2.61 -2.73 -4.37 -1.28 -1.77 -2.41 -3.37 -3.65 -4.85 -1.24 -1.48 -2.61 -2.85 -4.37 -4.13 -0.88 -0.64 -1.78 -1.08 -2.71 -1.41 -0.92 -0.33 -1.87 -0.54 -2.83 -0.72 -1.93 -0.36 -3.93 -0.60 -6.02 -1.40 -1.04 -0.40 -2.03 -1.02 -2.95 -1.77 -0.92 -0.74 -1.78 -1.60 -2.59 -2.49 -1.60 -1.77 -2.97 -3.61 -4.09 -4.73 -1.12 -1.12 -2.25 -2.09 -2.73 -3.21 -0.24 -0.56 -0.32 -1.16 -0.16 -1.85 0.16 -0.68 0.56 -1.44 1.28 -2.33 0.72 -0.88 1.59 -1.67 2.51 -2.36 0.92 -0.70 1.91 -1.31 2.87 -1.85 1.93 -1.08 3.77 -1.89 4.89 -2.53 0.56 -0.32 0.70 -0.72 0.60 -1.14 -0.11 -0.42 -0.46 -0.86 -0.88 -1.26 -0.84 -0.80 -1.97 -1.44 -1.97 -1.44l-6.74 -3.85c0.00 0.00 -1.44 0.24 -3.13 0.32 -0.84 0.04 -1.74 0.04 -2.56 -0.05 -0.81 -0.09 -1.53 -0.27 -2.02 -0.59 -0.48 -0.32 -0.98 -0.92 -1.47 -1.64 -0.48 -0.72 -0.94 -1.56 -1.34 -2.37 -0.80 -1.60 -1.36 -3.05 -1.36 -3.05 0.00 0.00 -1.36 -0.32 -2.85 -0.84 -0.74 -0.26 -1.51 -0.57 -2.16 -0.92 -0.65 -0.35 -1.17 -0.73 -1.41 -1.13 -0.48 -0.80 -1.60 -2.49 -3.37 -4.29 -0.88 -0.90 -1.93 -1.83 -3.13 -2.70 -1.20 -0.87 -2.57 -1.67 -4.09 -2.31 -3.05 -1.28 -5.54 -2.73 -7.46 -4.21 -0.96 -0.74 -1.78 -1.50 -2.47 -2.24 -0.68 -0.75 -1.22 -1.49 -1.62 -2.21 -0.80 -1.44 -1.44 -2.97 -2.13 -4.33 -0.68 -1.36 -1.40 -2.57 -2.37 -3.37 -0.11 -0.09 -0.38 -0.22 -0.52 -0.32zm28.49 100.34c-0.53 -0.03 -0.69 0.17 -0.92 0.80 -0.65 1.71 0.59 3.31 4.30 5.57 0.69 0.42 1.78 0.76 2.43 0.76 1.11 0.00 1.17 -0.07 1.18 -1.35 0.00 -0.74 0.10 -1.71 0.22 -2.15 0.19 -0.71 -0.09 -0.94 -2.54 -2.05 -1.51 -0.69 -3.31 -1.36 -3.99 -1.49 -0.28 -0.05 -0.49 -0.09 -0.67 -0.10z\"},\"path08\":{\"name\":\"Lampung\",\"path\":\"m306.51 361.78c-0.51 0.31 -0.96 0.57 -2.24 1.48 -0.32 0.23 -0.69 0.63 -1.03 0.89 0.12 0.05 0.22 0.13 0.34 0.17 2.04 0.76 3.00 1.34 3.79 2.32 0.58 0.72 1.80 1.62 2.70 2.01 2.07 0.89 3.16 1.90 3.45 3.21 0.12 0.57 0.76 1.48 1.42 2.02 0.74 0.61 1.34 1.55 1.58 2.43 0.43 1.61 3.61 4.94 7.51 7.88 1.88 1.41 2.25 1.87 2.25 2.77 0.00 0.84 0.25 1.21 1.13 1.69 2.15 1.16 6.57 5.44 7.24 7.02 0.35 0.83 0.91 1.71 1.24 1.96 1.26 0.96 3.12 0.47 3.89 -1.01 1.09 -2.10 0.48 -4.10 -2.69 -8.79 -0.80 -1.19 -1.46 -2.35 -1.46 -2.60 -0.00 -0.72 2.04 -1.58 3.14 -1.32 0.55 0.13 1.64 0.83 2.43 1.55 1.90 1.75 4.57 3.42 9.21 5.76 3.28 1.65 3.99 1.89 5.12 1.68 1.72 -0.32 2.18 -1.23 1.90 -3.77 -0.18 -1.66 -0.10 -2.21 0.50 -3.10 0.40 -0.59 0.72 -1.52 0.72 -2.07 0.00 -1.64 0.99 -1.19 3.96 1.80 5.71 5.75 10.72 10.52 11.04 10.52 0.18 0.00 0.83 -0.53 1.45 -1.17 1.69 -1.76 2.67 -5.99 2.81 -12.16 0.06 -2.68 0.30 -5.59 0.54 -6.47 0.24 -0.88 0.42 -2.72 0.40 -4.10 -0.02 -1.40 0.28 -3.88 0.69 -5.63 0.68 -2.90 0.69 -3.22 0.17 -4.47 -0.68 -1.64 -0.71 -2.89 -0.09 -4.72 0.28 -0.83 0.45 -2.85 0.43 -5.02 -0.04 -3.39 -0.13 -3.81 -1.37 -6.42 -0.79 -1.65 -1.33 -3.34 -1.33 -4.12 0.00 -0.38 0.28 -1.25 0.39 -1.84 -2.17 -0.64 -3.54 -1.13 -5.14 -1.45 -0.80 -0.16 -1.54 -0.48 -2.22 -0.90 -0.67 -0.42 -1.27 -0.94 -1.80 -1.51 -1.04 -1.12 -1.77 -2.41 -2.09 -3.37 -0.32 -0.96 -1.36 -2.33 -2.57 -3.45 -0.60 -0.56 -1.25 -1.06 -1.86 -1.43 -0.61 -0.36 -1.19 -0.58 -1.67 -0.58 -0.48 0.00 -0.88 0.22 -1.24 0.56 -0.36 0.34 -0.68 0.79 -1.00 1.25 -0.32 0.46 -0.64 0.93 -1.00 1.31 -0.36 0.38 -0.76 0.66 -1.24 0.74 -0.96 0.16 -1.76 0.24 -2.45 0.36 -0.68 0.12 -1.24 0.28 -1.73 0.60 -0.24 0.16 -0.34 0.42 -0.38 0.77 -0.04 0.35 -0.02 0.78 -0.02 1.28 0.00 0.50 -0.02 1.07 -0.14 1.70 -0.12 0.63 -0.34 1.31 -0.74 2.03 -0.40 0.72 -1.24 1.34 -2.37 1.91 -1.12 0.57 -2.53 1.08 -4.05 1.58 -3.05 1.00 -6.58 1.97 -9.31 3.25 -2.73 1.28 -4.57 2.09 -6.02 3.05 -0.72 0.48 -1.34 1.00 -1.92 1.65 -0.58 0.64 -1.12 1.40 -1.69 2.36 -1.12 1.93 -1.93 4.73 -2.73 7.38 -0.40 1.32 -0.80 2.61 -1.24 3.72 -0.44 1.11 -0.92 2.06 -1.48 2.70 -0.56 0.64 -1.24 0.98 -2.00 1.13 -0.76 0.15 -1.59 0.10 -2.45 -0.04 -1.72 -0.28 -3.57 -0.92 -5.17 -1.08 -0.40 -0.04 -0.80 -0.23 -1.18 -0.53 -0.39 -0.30 -0.76 -0.72 -1.12 -1.21 -0.44 -0.60 -0.80 -1.40 -1.19 -2.14zm36.67 29.22c-0.16 -0.02 -0.31 0.02 -0.42 0.13 -0.25 0.25 -0.18 0.55 0.22 0.96 0.72 0.72 1.26 0.76 1.26 0.09 0.00 -0.57 -0.58 -1.12 -1.06 -1.18z\"},\"path09\":{\"name\":\"Kep. Bangka Belitung\",\"path\":\"m379.79 250.85 -1.68 0.60c-0.93 0.33 -2.19 0.60 -2.81 0.60 -0.70 -0.00 -1.21 0.22 -1.35 0.57 -0.38 0.99 -0.21 3.87 0.32 5.34 0.53 1.49 0.45 2.00 -0.34 2.00 -0.72 0.00 -1.64 -1.63 -2.39 -4.25 -0.37 -1.30 -0.80 -2.48 -0.95 -2.63 -0.15 -0.15 -1.53 -0.15 -3.05 -0.01 -2.31 0.22 -2.99 0.44 -4.08 1.33 -0.72 0.58 -1.65 1.66 -2.07 2.38l-0.76 1.32 0.84 1.50 0.84 1.49 -0.84 0.89c-0.46 0.49 -2.03 1.48 -3.48 2.20 -2.96 1.46 -4.03 2.67 -4.03 4.53 0.00 1.63 0.79 2.40 2.48 2.40 0.97 0.00 1.58 0.25 2.19 0.90 0.80 0.85 1.00 0.89 3.86 0.72 1.71 -0.10 3.50 -0.43 4.12 -0.75 1.00 -0.52 1.23 -0.52 2.41 -0.01 0.72 0.31 2.11 0.67 3.10 0.80 0.99 0.13 2.06 0.37 2.37 0.53 0.69 0.36 2.12 4.55 2.12 6.20 0.00 0.88 0.32 1.49 1.29 2.42 1.90 1.82 2.38 2.91 1.90 4.28 -0.22 0.62 -0.33 2.24 -0.25 3.61 0.12 2.05 0.33 2.76 1.22 4.03 1.06 1.51 1.18 1.57 6.18 3.02 3.94 1.15 5.39 1.74 6.38 2.61 0.76 0.66 1.68 1.13 2.25 1.13 0.61 0.00 1.43 0.45 2.24 1.25 0.70 0.69 1.92 1.48 2.71 1.77v0.00 0.00c1.79 0.66 5.59 0.73 6.38 0.13 0.32 -0.25 0.63 -0.85 0.70 -1.35 0.11 -0.85 0.21 -0.89 2.11 -0.78 2.18 0.13 2.73 -0.21 2.86 -1.74 0.13 -1.61 0.01 -1.83 -1.32 -2.38 -1.73 -0.72 -2.78 -0.41 -3.72 1.12 -0.43 0.69 -1.02 1.26 -1.32 1.26 -0.79 0.00 -2.64 -1.98 -2.64 -2.83 0.00 -1.52 1.91 -5.83 3.28 -7.38 0.77 -0.87 1.40 -1.75 1.40 -1.95 0.00 -0.20 -0.55 -0.84 -1.22 -1.43 -0.89 -0.78 -1.87 -1.19 -3.69 -1.52 -1.36 -0.25 -3.02 -0.67 -3.68 -0.95 -0.67 -0.27 -1.85 -0.49 -2.62 -0.49 -2.83 0.00 -4.69 -2.27 -6.60 -8.03 -0.99 -2.99 -1.34 -4.74 -1.51 -7.54 -0.19 -3.18 -0.36 -3.86 -1.24 -5.26 -0.56 -0.88 -1.02 -1.75 -1.02 -1.93 0.00 -0.18 -0.48 -1.00 -1.07 -1.82 -0.79 -1.10 -1.06 -1.86 -1.02 -2.88 0.03 -0.76 -0.10 -1.49 -0.29 -1.62 -0.19 -0.13 -1.28 -0.95 -2.42 -1.83l-2.08 -1.59zm98.51 1.92c-0.68 0.00 -2.40 0.95 -2.89 1.61 -0.35 0.46 -0.03 2.29 0.51 2.94 0.49 0.59 0.43 0.60 1.92 -0.02 1.33 -0.56 1.99 -1.49 1.99 -2.81 0.00 -1.02 -0.62 -1.71 -1.52 -1.71zm-6.45 4.86c-1.16 -0.02 -1.99 0.55 -1.58 1.22 0.13 0.22 0.96 0.39 1.84 0.39 1.32 0.00 1.60 -0.12 1.60 -0.67 0.00 -0.50 -0.35 -0.73 -1.34 -0.89 -0.18 -0.03 -0.35 -0.04 -0.52 -0.05zm-30.53 28.22c-2.62 0.00 -3.16 0.27 -4.42 2.22 -0.74 1.15 -2.03 6.68 -2.03 8.72 0.00 0.92 -0.17 2.36 -0.37 3.19 -0.29 1.19 -0.23 2.04 0.27 4.02 0.59 2.34 0.74 2.57 2.15 3.35 1.30 0.72 1.70 0.78 2.89 0.46 0.76 -0.20 1.93 -0.94 2.60 -1.64 1.54 -1.59 2.60 -1.63 3.68 -0.15 0.45 0.62 1.38 1.51 2.07 1.98 0.69 0.47 1.47 0.86 1.73 0.86 0.26 0.00 1.22 -0.57 2.13 -1.26 0.91 -0.69 1.86 -1.26 2.11 -1.26 1.02 0.00 1.59 -1.12 1.59 -3.11 0.00 -1.58 0.28 -2.56 1.41 -4.84 1.39 -2.81 1.41 -2.88 0.89 -4.38 -0.97 -2.83 -5.43 -6.44 -8.78 -7.10 -0.99 -0.19 -2.62 -0.52 -3.62 -0.71 -1.00 -0.20 -2.95 -0.36 -4.32 -0.36zm-10.30 9.03c-0.18 0.01 -0.40 0.04 -0.69 0.08 -2.15 0.35 -2.82 1.45 -1.92 3.14 0.43 0.80 1.01 0.87 2.30 0.28 1.06 -0.48 1.44 -1.42 1.12 -2.71 -0.15 -0.62 -0.28 -0.81 -0.82 -0.79zm-13.07 2.12c-0.21 0.00 -0.28 0.16 -0.16 0.36 0.12 0.20 0.29 0.36 0.38 0.36 0.09 0.00 0.16 -0.16 0.16 -0.36 0.00 -0.20 -0.17 -0.36 -0.38 -0.36zm-36.25 2.05c0.33 0.27 0.55 0.64 0.89 0.89 0.57 0.42 1.16 0.67 1.75 1.04 -0.59 -0.98 -1.47 -1.64 -2.64 -1.93z\"},\"path10\":{\"name\":\"Kep. Riau\",\"path\":\"m448.00 45.97c-0.70 0.00 -1.76 1.65 -1.50 2.33 0.11 0.30 0.62 0.54 1.12 0.54 0.82 0.00 0.91 -0.14 0.91 -1.44 0.00 -1.03 -0.15 -1.44 -0.53 -1.44zm6.93 17.71c-0.34 0.05 -2.00 1.63 -3.69 3.51 -3.33 3.70 -3.55 4.28 -2.51 6.75 0.58 1.38 1.86 2.96 2.40 2.96 0.17 0.00 0.90 0.25 1.62 0.55l1.31 0.55 -1.32 1.36c-1.58 1.62 -1.65 2.21 -0.33 3.00 1.28 0.77 2.05 0.79 4.43 0.08 2.35 -0.69 2.71 -0.96 3.02 -2.22 0.13 -0.54 0.65 -1.58 1.15 -2.31 0.82 -1.20 0.90 -1.61 0.78 -4.01 -0.13 -2.59 -0.18 -2.72 -1.75 -4.43 -0.89 -0.97 -2.26 -2.68 -3.05 -3.82 -0.93 -1.33 -1.66 -2.03 -2.05 -1.97zm-63.36 28.68c-0.71 0.00 -1.37 1.95 -0.84 2.48 0.58 0.58 1.68 0.49 1.93 -0.16 0.29 -0.75 -0.45 -2.32 -1.09 -2.32zm-1.81 3.96c-0.43 0.00 -0.57 0.36 -0.57 1.41 0.00 1.12 0.20 1.56 0.99 2.15 1.75 1.32 3.00 0.55 2.47 -1.53 -0.21 -0.83 -1.92 -2.03 -2.89 -2.03zm-16.94 7.73 -0.11 2.12c-0.06 1.16 -0.02 2.34 0.08 2.61 0.24 0.62 0.55 0.62 1.26 -0.02 0.31 -0.28 1.13 -0.65 1.82 -0.83 0.99 -0.25 1.36 -0.60 1.76 -1.66 0.30 -0.80 0.38 -1.47 0.19 -1.65 -0.18 -0.17 -1.38 -0.37 -2.66 -0.43l-2.34 -0.12zm102.86 0.54c-0.63 0.00 -1.98 1.89 -1.98 2.77 0.00 0.37 0.19 0.87 0.43 1.11 0.92 0.92 3.52 0.01 3.52 -1.24 0.00 -0.78 -1.39 -2.64 -1.98 -2.64zm-85.90 6.22c-0.06 -0.01 -0.10 0.01 -0.14 0.04 -0.10 0.10 -0.08 0.59 0.05 1.10 0.24 0.96 1.29 1.29 1.29 0.40 0.00 -0.51 -0.82 -1.49 -1.21 -1.54zm91.15 7.88c-0.17 0.02 -0.33 0.09 -0.45 0.21 -0.21 0.21 -0.26 0.56 -0.12 0.79 0.32 0.51 1.34 0.34 1.54 -0.26 0.15 -0.44 -0.45 -0.79 -0.96 -0.73zm-147.66 44.56c-0.32 0.00 -0.67 0.02 -1.05 0.04 -2.21 0.14 -2.95 0.37 -4.78 1.48 -3.14 1.91 -3.26 2.11 -2.12 3.84 0.81 1.23 1.14 1.44 2.24 1.44 0.71 0.00 1.85 -0.27 2.55 -0.60 1.54 -0.73 1.90 -0.36 1.90 2.02 0.01 1.31 0.21 1.82 1.15 2.79 1.34 1.38 1.65 1.42 3.46 0.50 1.45 -0.74 2.68 -2.78 3.09 -5.12 0.20 -1.15 0.06 -1.52 -1.19 -3.10 -2.07 -2.62 -3.00 -3.29 -5.25 -3.28zm-15.34 0.33c-0.91 -0.02 -2.76 2.57 -3.03 4.22 -0.19 1.17 -0.44 1.55 -1.27 1.90 -1.37 0.57 -1.32 1.52 0.13 2.21 1.42 0.68 2.07 0.30 2.07 -1.23 0.00 -0.89 0.11 -1.03 0.63 -0.79 0.35 0.16 1.38 0.35 2.29 0.43 1.55 0.14 1.73 0.06 2.62 -1.11 1.13 -1.48 1.79 -3.49 1.31 -3.97 -0.41 -0.41 -3.94 -1.65 -4.76 -1.66zm2.86 8.12c-0.92 -0.06 -0.46 1.53 1.38 3.99 0.98 1.31 1.48 1.25 2.62 -0.30 0.93 -1.26 0.76 -2.12 -0.42 -2.12 -0.45 0.00 -1.45 -0.42 -2.21 -0.94 -0.61 -0.42 -1.07 -0.62 -1.38 -0.64zm-11.88 1.68c-0.30 -0.00 -0.53 0.09 -0.65 0.28 -0.35 0.57 0.49 2.31 1.37 2.82 0.81 0.47 2.14 0.49 2.42 0.04 0.12 -0.19 -0.03 -0.83 -0.33 -1.41 -0.49 -0.95 -1.92 -1.73 -2.80 -1.74zm17.34 3.13c-0.45 -0.08 -1.04 0.18 -1.68 0.78 -1.05 0.99 -1.06 1.67 -0.02 2.08 1.12 0.45 2.34 0.45 2.62 -0.01 0.13 -0.21 0.13 -0.94 0.01 -1.62 -0.14 -0.74 -0.47 -1.16 -0.92 -1.24zm10.61 0.00c-0.56 0.00 -0.90 0.21 -0.90 0.54 0.00 0.34 0.34 0.54 0.90 0.54 0.56 0.00 0.90 -0.20 0.90 -0.54 0.00 -0.34 -0.34 -0.54 -0.90 -0.54zm-2.56 18.00c-0.47 -0.02 -0.85 0.10 -0.85 0.37 0.00 1.35 2.39 3.88 4.91 5.20 1.29 0.67 1.56 0.67 1.56 0.00 0.00 -0.50 -3.02 -4.15 -4.25 -5.13 -0.34 -0.27 -0.90 -0.42 -1.37 -0.44zm-3.60 2.39c-0.73 0.28 -0.63 2.51 0.13 2.96 1.04 0.61 2.61 0.34 2.61 -0.44 0.00 -0.68 -2.22 -2.72 -2.74 -2.52zm5.31 4.88c-0.19 0.00 -0.39 0.03 -0.59 0.06 -0.99 0.19 -1.30 0.44 -1.46 1.21 -0.44 2.15 -1.00 3.92 -1.64 5.18 -0.82 1.61 -0.65 2.16 0.96 3.02 1.22 0.66 1.27 0.66 3.73 -0.18 3.00 -1.02 3.72 -0.92 7.03 1.02 1.38 0.81 2.64 1.46 2.80 1.46 0.16 0.00 1.10 -0.26 2.07 -0.58 2.12 -0.69 2.31 -1.48 0.61 -2.44 -0.64 -0.36 -1.74 -1.31 -2.45 -2.10l-1.28 -1.44 -1.19 0.62 -1.19 0.62 -1.31 -1.27c-0.72 -0.70 -1.74 -1.43 -2.26 -1.63 -0.65 -0.24 -1.03 -0.72 -1.20 -1.47 -0.29 -1.32 -1.32 -2.10 -2.65 -2.07zm-2.92 11.79c-0.31 0.01 -1.20 0.41 -1.99 0.90 -1.75 1.08 -2.19 1.11 -2.44 0.17 -0.26 -1.01 -0.77 -0.90 -2.05 0.45 -0.98 1.04 -1.08 1.33 -0.87 2.60 0.13 0.81 0.74 2.06 1.40 2.88 0.64 0.79 1.44 1.97 1.76 2.61 0.73 1.44 1.23 1.46 2.50 0.14 0.54 -0.57 1.58 -1.21 2.32 -1.43 1.85 -0.56 3.12 -2.47 2.83 -4.26 -0.23 -1.43 -2.49 -4.08 -3.46 -4.06z\"},\"path11\":{\"name\":\"DKI Jakarta\",\"path\":\"m402.69 399.71c-0.29 1.24 -0.61 2.76 -0.75 4.62 -0.16 2.09 -0.52 3.49 -0.56 4.59 -0.02 0.55 0.04 1.03 0.25 1.48 0.21 0.45 0.56 0.87 1.12 1.31 1.12 0.88 2.20 1.88 3.21 2.63 0.50 0.37 0.98 0.68 1.44 0.87 0.46 0.19 0.89 0.27 1.29 0.19 0.80 -0.16 1.61 -0.88 2.33 -1.95 0.72 -1.06 1.36 -2.47 1.85 -3.99 0.48 -1.52 0.60 -3.65 0.60 -5.40 0.00 -1.27 -0.05 -1.78 -0.09 -2.26 -0.33 0.07 -0.39 0.13 -0.89 0.22 -3.24 0.60 -4.16 0.51 -5.30 -0.52 -1.57 -1.42 -2.91 -1.80 -4.48 -1.79z\"},\"path12\":{\"name\":\"Jawa Barat\",\"path\":\"m469.97 456.03c0.06 -1.55 0.18 -3.41 0.04 -3.92 -0.23 -0.79 -1.08 -1.70 -2.01 -2.78 -0.94 -1.08 -1.96 -2.33 -2.52 -3.80 -0.28 -0.74 -0.48 -1.40 -0.57 -2.01 -0.09 -0.61 -0.08 -1.16 0.06 -1.67 0.14 -0.51 0.41 -0.98 0.83 -1.42 0.42 -0.44 0.99 -0.85 1.72 -1.25 1.47 -0.79 2.50 -0.57 3.32 -0.88 0.41 -0.16 0.77 -0.44 1.12 -1.07 0.34 -0.62 0.67 -1.57 1.01 -3.05 0.34 -1.47 0.50 -3.19 0.54 -4.94 0.03 -1.27 -0.04 -2.49 -0.10 -3.70 -0.97 -0.09 -1.79 -0.31 -3.09 -1.02 -1.93 -1.05 -2.20 -1.34 -2.58 -2.76 -0.23 -0.87 -0.53 -2.52 -0.66 -3.66 -0.23 -2.00 -0.31 -2.13 -2.22 -3.57 -1.09 -0.82 -2.72 -2.46 -3.62 -3.63 -1.14 -1.48 -2.15 -2.36 -3.28 -2.86l-1.63 -0.72 -0.84 1.04c-0.46 0.57 -1.00 1.24 -1.20 1.48 -0.71 0.87 -2.47 0.43 -6.75 -1.71 -4.46 -2.22 -5.70 -2.50 -7.25 -1.62 -1.38 0.79 -2.95 0.65 -4.34 -0.40 -0.68 -0.51 -1.90 -1.23 -2.71 -1.58 -1.05 -0.46 -1.95 -1.32 -3.14 -2.99 -2.40 -3.36 -3.48 -3.94 -6.81 -3.64 -2.28 0.21 -2.85 0.14 -4.14 -0.52 -2.31 -1.18 -3.21 -1.03 -3.66 0.59 -0.21 0.74 -0.38 1.85 -0.38 2.46 -0.00 0.88 -0.38 1.09 -1.72 1.37 0.03 0.49 0.09 0.99 0.09 2.26 0.00 1.74 -0.12 3.87 -0.60 5.40 -0.48 1.52 -1.12 2.93 -1.85 3.99 -0.72 1.06 -1.53 1.79 -2.33 1.95 -0.40 0.08 -0.83 0.00 -1.29 -0.19 -0.46 -0.19 -0.94 -0.50 -1.44 -0.87 -0.50 -0.37 -1.06 -0.85 -1.59 -1.30 -0.04 0.03 -0.08 0.09 -0.12 0.12 -0.69 0.54 -1.34 0.88 -1.85 0.83 -1.02 -0.11 -2.55 -0.40 -4.14 -0.48 -0.79 -0.04 -1.60 -0.04 -2.37 0.07 -0.77 0.10 -1.49 0.30 -2.11 0.64 -0.62 0.34 -0.89 0.75 -0.94 1.25 -0.04 0.49 0.14 1.07 0.43 1.73 0.28 0.67 0.67 1.43 1.02 2.29 0.35 0.86 0.68 1.83 0.85 2.90 0.34 2.16 0.51 3.29 0.40 4.11 -0.11 0.82 -0.51 1.33 -1.30 2.24 -0.40 0.45 -0.65 1.01 -0.81 1.58 -0.16 0.57 -0.22 1.17 -0.24 1.71 -0.01 0.24 0.02 0.22 0.03 0.43 1.23 0.44 2.46 0.58 3.89 0.08 1.66 -0.58 2.90 0.04 2.90 1.44 0.00 0.76 -0.29 1.23 -1.03 1.71 -2.77 1.80 -4.34 4.93 -3.65 7.30 0.45 1.58 1.01 2.18 2.04 2.18 0.48 0.00 1.47 0.30 2.20 0.67 0.95 0.48 2.85 0.79 6.55 1.08 7.59 0.61 12.14 1.09 14.39 1.52 1.09 0.21 3.52 0.52 5.39 0.68 1.88 0.16 3.90 0.42 4.50 0.56 1.86 0.45 5.21 2.30 6.77 3.73 0.82 0.76 2.06 1.50 2.76 1.64 0.69 0.15 1.72 0.59 2.29 0.99 0.59 0.42 1.97 0.84 3.24 0.99 1.22 0.15 3.51 0.62 5.09 1.04 1.58 0.43 5.02 0.96 7.65 1.19l4.77 0.41 1.52 -1.47c1.98 -1.90 2.89 -2.35 4.31 -2.08 0.23 0.04 0.80 -0.10 1.20 -0.12z\"},\"path13\":{\"name\":\"Jawa Tengah\",\"path\":\"m543.10 473.48c0.03 -0.29 0.01 -0.57 0.06 -0.85 0.17 -0.79 0.46 -1.51 0.94 -2.03 0.96 -1.04 3.17 -2.25 5.21 -3.43 1.02 -0.59 2.01 -1.18 2.77 -1.74 0.77 -0.56 1.32 -1.09 1.48 -1.57 0.32 -0.96 0.72 -1.48 0.90 -1.95 0.18 -0.46 0.14 -0.86 -0.42 -1.59 -0.56 -0.72 -1.36 -1.12 -1.96 -1.88 -0.30 -0.38 -0.55 -0.85 -0.70 -1.50 -0.15 -0.65 -0.19 -1.47 -0.07 -2.55 0.24 -2.17 0.28 -4.09 0.26 -5.62 -0.02 -1.52 -0.10 -2.65 -0.10 -3.21 0.00 -0.56 0.12 -0.84 0.52 -1.00 0.40 -0.16 1.08 -0.20 2.21 -0.28 1.12 -0.08 2.25 0.24 3.31 0.28 0.53 0.02 1.05 -0.03 1.54 -0.23 0.49 -0.21 0.96 -0.57 1.40 -1.17 0.88 -1.20 1.81 -1.73 2.53 -2.43 0.36 -0.35 0.67 -0.75 0.90 -1.29 0.23 -0.55 0.38 -1.25 0.42 -2.22 0.08 -1.93 0.20 -3.49 0.46 -4.97 0.26 -1.48 0.66 -2.89 1.30 -4.49 0.79 -1.96 1.39 -3.32 2.16 -5.11 -2.38 -2.33 -3.70 -2.55 -6.95 -1.16 -2.27 0.98 -2.83 1.07 -5.33 0.94 -2.60 -0.14 -2.89 -0.24 -4.06 -1.38 -0.90 -0.87 -1.48 -1.94 -2.01 -3.67 -0.81 -2.66 -1.14 -3.00 -4.18 -4.19 -0.92 -0.36 -1.42 -0.54 -1.97 -0.56 -0.56 -0.02 -1.18 0.12 -2.34 0.41 -4.48 1.09 -5.64 2.19 -6.37 6.03 -0.71 3.72 -2.90 8.30 -4.78 10.00 -1.52 1.38 -3.93 2.28 -5.09 1.91 -0.37 -0.12 -1.67 -0.86 -2.90 -1.66 -2.19 -1.42 -2.27 -1.44 -3.54 -0.94 -0.72 0.28 -2.36 0.72 -3.65 0.97 -2.56 0.50 -3.96 0.29 -10.96 -1.60 -3.81 -1.03 -7.28 -1.15 -9.69 -0.33 -2.33 0.79 -5.31 0.48 -9.69 -1.01 -3.42 -1.16 -3.46 -1.17 -4.56 -0.52 -0.97 0.57 -1.24 0.59 -2.25 0.18 -0.63 -0.26 -2.12 -0.45 -3.30 -0.43 -0.51 0.01 -0.84 -0.06 -1.22 -0.10 0.06 1.21 0.13 2.44 0.10 3.70 -0.04 1.74 -0.20 3.46 -0.54 4.94 -0.34 1.47 -0.67 2.43 -1.01 3.05 -0.34 0.62 -0.71 0.91 -1.12 1.07 -0.82 0.31 -1.85 0.09 -3.32 0.88 -0.74 0.40 -1.30 0.81 -1.72 1.25 -0.42 0.44 -0.69 0.91 -0.83 1.42 -0.14 0.51 -0.16 1.06 -0.06 1.67 0.09 0.61 0.29 1.28 0.57 2.01 0.57 1.48 1.59 2.72 2.52 3.80 0.94 1.08 1.79 1.99 2.01 2.78 0.14 0.51 0.02 2.37 -0.04 3.92 0.70 -0.04 1.36 -0.02 2.11 -0.22 2.83 -0.74 3.00 -0.72 2.81 0.31 -0.12 0.63 0.05 0.98 0.64 1.30 0.91 0.49 4.24 0.29 4.61 -0.27 0.32 -0.50 4.32 -0.96 8.07 -0.94 2.96 0.02 3.26 0.09 4.76 1.16 1.52 1.09 1.79 1.15 5.57 1.30 2.95 0.12 4.64 0.38 6.57 1.04 1.43 0.48 4.18 1.29 6.10 1.80 0.73 0.19 1.97 0.86 2.79 1.15 0.15 -0.23 0.13 -0.21 0.29 -0.44 1.74 -2.57 3.75 -5.42 4.80 -6.54 1.04 -1.12 2.04 -1.84 3.03 -2.17 0.49 -0.16 0.98 -0.22 1.46 -0.18 0.48 0.04 0.97 0.18 1.45 0.42 0.96 0.48 1.69 1.56 2.51 2.63 0.41 0.53 0.85 1.06 1.35 1.50 0.50 0.44 1.08 0.81 1.76 1.01 1.36 0.40 3.05 0.60 4.45 1.10 0.70 0.25 1.34 0.58 1.82 1.04 0.49 0.46 0.83 1.07 0.95 1.87 0.37 2.49 0.27 6.89 0.25 9.44 0.93 0.20 2.15 0.61 2.77 0.67 0.73 0.06 1.43 0.30 2.24 0.48z\"},\"path14\":{\"name\":\"Banten\",\"path\":\"m393.19 432.46c-0.01 -0.21 -0.04 -0.19 -0.03 -0.43 0.01 -0.54 0.08 -1.13 0.24 -1.71 0.16 -0.57 0.42 -1.13 0.81 -1.58 0.79 -0.91 1.19 -1.42 1.30 -2.24 0.11 -0.82 -0.06 -1.96 -0.40 -4.11 -0.17 -1.08 -0.50 -2.04 -0.85 -2.90 -0.35 -0.86 -0.74 -1.62 -1.02 -2.29 -0.28 -0.67 -0.47 -1.24 -0.43 -1.73 0.04 -0.49 0.31 -0.91 0.94 -1.25 0.62 -0.34 1.35 -0.54 2.11 -0.64 0.77 -0.10 1.58 -0.11 2.37 -0.07 1.59 0.09 3.12 0.37 4.14 0.48 0.51 0.06 1.16 -0.28 1.85 -0.83 0.04 -0.03 0.08 -0.09 0.12 -0.12 -0.54 -0.46 -1.05 -0.88 -1.62 -1.32 -0.56 -0.44 -0.91 -0.86 -1.12 -1.31 -0.21 -0.45 -0.27 -0.93 -0.25 -1.48 0.04 -1.10 0.40 -2.51 0.56 -4.59 0.14 -1.86 0.46 -3.38 0.75 -4.62 -0.75 0.01 -1.41 -0.08 -2.44 0.19 -1.40 0.36 -1.77 0.29 -4.23 -0.75 -1.48 -0.63 -3.13 -1.32 -3.65 -1.54 -0.84 -0.35 -1.11 -0.26 -2.23 0.72 -1.56 1.37 -2.62 1.23 -3.04 -0.39 -0.29 -1.12 -1.76 -2.26 -2.80 -2.28 -0.15 -0.00 -0.29 0.02 -0.41 0.06 -1.03 0.37 -5.86 7.18 -6.45 9.08 -0.29 0.94 -0.65 3.27 -0.81 5.17 -0.31 3.84 -1.07 5.45 -2.78 5.87 -1.59 0.40 -3.67 2.34 -4.32 4.04 -0.33 0.87 -1.04 1.89 -1.58 2.28 -0.54 0.38 -1.18 1.19 -1.43 1.78 -0.25 0.60 -0.61 1.09 -0.80 1.09 -0.41 0.00 -2.09 -1.71 -2.67 -2.71 -0.40 -0.68 -0.48 -0.67 -2.70 0.51 -3.18 1.70 -3.37 1.91 -2.96 3.35 0.30 1.04 0.49 1.19 1.59 1.21 1.09 0.02 1.27 0.15 1.43 1.07 0.23 1.34 0.94 1.48 3.62 0.73 1.15 -0.32 2.48 -0.49 2.96 -0.37 0.48 0.12 1.88 -0.05 3.13 -0.37 1.59 -0.41 2.92 -0.52 4.47 -0.35 1.53 0.16 2.87 0.06 4.43 -0.34 2.85 -0.74 4.79 -0.35 8.04 1.61 1.30 0.78 2.51 1.42 2.70 1.42 0.19 0.00 1.07 0.49 1.96 1.08 0.50 0.33 0.99 0.41 1.48 0.59z\"},\"path15\":{\"name\":\"Jawa Timur\",\"path\":\"m658.55 472.78c-0.09 -0.68 -0.36 -2.50 -0.36 -2.50 0.00 0.00 0.08 -1.77 0.40 -3.89 0.16 -1.06 0.38 -2.21 0.68 -3.28 0.30 -1.07 0.68 -2.05 1.16 -2.77 0.02 -0.03 0.06 -0.08 0.08 -0.11 -0.20 -0.92 -0.67 -1.70 -1.52 -2.26 -0.73 -0.48 -2.06 -1.04 -2.95 -1.25 -4.62 -1.08 -6.60 -1.80 -7.60 -2.76 -1.43 -1.37 -3.29 -1.38 -5.23 -0.04 -0.93 0.64 -1.88 0.98 -2.76 0.98 -0.74 0.00 -1.85 0.26 -2.45 0.57 -0.95 0.49 -1.64 0.52 -4.86 0.21l-3.75 -0.37 -3.67 1.37 -3.67 1.37 -1.62 -0.85c-0.89 -0.47 -1.96 -0.85 -2.38 -0.85 -0.42 0.00 -1.19 -0.34 -1.72 -0.75 -0.52 -0.41 -2.82 -1.46 -5.09 -2.32 -2.28 -0.86 -4.62 -1.91 -5.21 -2.33 -1.30 -0.93 -1.41 -2.33 -0.30 -3.75 0.86 -1.09 1.24 -3.46 0.88 -5.41 -0.31 -1.67 -1.99 -2.82 -3.73 -2.56 -1.02 0.15 -1.16 0.09 -0.98 -0.48 0.13 -0.42 -0.15 -1.08 -0.75 -1.80 -1.05 -1.25 -1.64 -3.23 -1.73 -5.85 -0.03 -0.93 -0.18 -1.81 -0.33 -1.96 -0.15 -0.15 -0.90 -0.22 -1.68 -0.17 -0.85 0.06 -1.74 -0.12 -2.22 -0.46 -1.01 -0.71 -3.63 -0.72 -6.76 -0.03 -1.29 0.28 -3.13 0.52 -4.11 0.53 -1.63 0.01 -1.89 -0.11 -3.24 -1.54 -1.84 -1.95 -3.48 -2.67 -4.73 -2.10 -1.25 0.57 -2.02 0.52 -4.37 -0.31 -1.35 -0.47 -2.61 -1.28 -3.72 -2.36 -0.01 -0.01 -0.01 -0.01 -0.02 -0.02 -0.77 1.79 -1.37 3.14 -2.16 5.11 -0.64 1.60 -1.04 3.01 -1.30 4.49 -0.26 1.48 -0.38 3.05 -0.46 4.97 -0.04 0.96 -0.19 1.67 -0.42 2.21 -0.23 0.55 -0.54 0.94 -0.90 1.29 -0.72 0.70 -1.65 1.22 -2.53 2.43 -0.44 0.60 -0.91 0.96 -1.40 1.17 -0.49 0.21 -1.01 0.25 -1.54 0.23 -1.06 -0.04 -2.19 -0.36 -3.31 -0.28 -1.12 0.08 -1.81 0.12 -2.21 0.28 -0.40 0.16 -0.52 0.44 -0.52 1.00 0.00 0.56 0.08 1.68 0.10 3.21 0.02 1.52 -0.02 3.45 -0.26 5.62 -0.12 1.08 -0.08 1.91 0.07 2.55 0.15 0.65 0.40 1.12 0.70 1.50 0.60 0.76 1.40 1.16 1.96 1.88 0.56 0.72 0.60 1.12 0.42 1.59 -0.18 0.46 -0.58 0.98 -0.90 1.95 -0.16 0.48 -0.71 1.01 -1.48 1.57 -0.77 0.56 -1.75 1.15 -2.77 1.74 -2.05 1.18 -4.25 2.39 -5.21 3.43 -0.48 0.52 -0.77 1.24 -0.94 2.03 -0.06 0.27 -0.03 0.56 -0.06 0.85 0.78 0.17 1.68 0.27 2.16 0.46 1.70 0.67 1.88 0.68 3.04 0.12 1.21 -0.58 1.26 -0.57 2.41 0.40 0.99 0.83 1.40 0.96 2.54 0.77 0.75 -0.12 1.99 -0.32 2.74 -0.44 1.02 -0.16 1.98 0.02 3.71 0.72 1.40 0.56 3.05 0.94 4.11 0.94 1.13 0.00 2.47 0.33 3.72 0.91 2.20 1.03 2.90 0.94 2.90 -0.34 0.00 -0.53 0.38 -1.19 0.96 -1.63 1.04 -0.82 2.63 -0.75 4.51 0.21 0.54 0.27 2.69 0.58 4.83 0.69 2.27 0.12 4.27 0.41 4.86 0.72 0.55 0.28 1.80 0.52 2.77 0.52 0.98 0.00 2.49 0.32 3.38 0.71 0.89 0.39 2.67 0.86 3.97 1.05 1.29 0.18 2.68 0.51 3.08 0.73 1.15 0.61 3.55 0.46 5.09 -0.33 1.00 -0.51 2.12 -0.72 3.88 -0.72 2.35 0.00 2.52 -0.06 3.55 -1.22 0.84 -0.95 1.56 -1.32 3.21 -1.68 3.70 -0.80 5.85 -0.65 7.89 0.56 0.99 0.59 2.41 1.35 3.17 1.70 0.76 0.35 1.81 0.94 2.34 1.31 0.53 0.37 1.53 0.79 2.22 0.93 0.69 0.14 1.91 0.70 2.70 1.25 1.37 0.95 2.15 1.27 6.63 2.71 1.07 0.35 2.58 1.04 3.34 1.55 1.17 0.77 1.85 0.93 4.34 0.99 1.62 0.04 3.38 0.19 3.91 0.33 0.61 0.17 1.34 0.06 2.03 -0.30 0.86 -0.44 1.32 -0.48 2.20 -0.17 1.09 0.38 1.32 0.81 1.55 2.83 0.09 0.76 0.34 0.93 1.72 1.14 0.89 0.13 2.02 0.41 2.52 0.61 1.61 0.66 2.77 0.48 3.59 -0.55 1.32 -1.68 0.88 -2.61 -1.92 -4.06 -2.65 -1.38 -3.44 -2.36 -3.46 -4.28 -0.01 -0.74 -0.37 -1.70 -0.91 -2.40 -1.04 -1.37 -1.10 -2.26 -0.36 -5.30 0.12 -0.50 0.33 -1.38 0.52 -2.13zm31.19 -45.94c-3.30 0.00 -4.02 0.30 -4.73 2.00 -0.61 1.46 -0.46 2.08 0.64 2.61 1.20 0.58 2.12 0.50 3.30 -0.29 0.59 -0.39 1.60 -0.72 2.24 -0.72 1.42 0.00 3.70 -1.04 3.70 -1.69 0.00 -1.08 -2.23 -1.90 -5.15 -1.90zm-47.12 0.80c-0.24 0.00 -0.48 0.02 -0.74 0.06 -3.94 0.56 -11.88 0.83 -20.78 0.71 -12.46 -0.17 -12.89 -0.10 -16.14 2.81 -2.21 1.98 -2.50 2.39 -2.50 3.52 0.00 0.70 0.13 1.48 0.29 1.73 0.58 0.91 2.74 2.25 3.64 2.25 0.51 0.00 2.54 0.40 4.52 0.89 4.36 1.08 4.87 1.10 5.11 0.19 0.18 -0.70 0.21 -0.70 1.03 -0.05 0.68 0.53 1.53 0.67 4.32 0.70 1.91 0.02 3.54 0.10 3.62 0.18 0.08 0.08 1.31 0.07 2.74 -0.03 2.61 -0.18 3.64 -0.66 4.03 -1.87 0.34 -1.07 2.53 -1.82 5.32 -1.81 2.45 0.01 2.65 -0.06 3.49 -1.08 0.63 -0.75 1.50 -1.24 2.88 -1.59 3.20 -0.83 5.40 -1.90 5.38 -2.62 -0.01 -0.67 -2.18 -2.45 -4.26 -3.51 -0.63 -0.32 -1.25 -0.47 -1.96 -0.47z\"},\"path16\":{\"name\":\"Yogyakarta\",\"path\":\"m538.10 472.34c0.02 -2.56 0.12 -6.96 -0.25 -9.44 -0.12 -0.80 -0.46 -1.40 -0.95 -1.87 -0.49 -0.46 -1.12 -0.79 -1.82 -1.04 -1.40 -0.50 -3.09 -0.70 -4.45 -1.10 -0.68 -0.20 -1.25 -0.56 -1.76 -1.01 -0.50 -0.44 -0.94 -0.97 -1.35 -1.50 -0.82 -1.06 -1.54 -2.15 -2.51 -2.63 -0.48 -0.24 -0.96 -0.38 -1.45 -0.42 -0.48 -0.04 -0.97 0.02 -1.46 0.18 -0.98 0.32 -1.98 1.04 -3.03 2.17 -1.04 1.12 -3.05 3.97 -4.80 6.54 -0.16 0.23 -0.14 0.21 -0.29 0.44 1.93 0.69 3.70 1.27 6.57 2.72 8.72 4.41 8.75 4.42 13.40 5.97 1.53 0.51 2.76 0.69 4.15 1.00z\"},\"path17\":{\"name\":\"Bali\",\"path\":\"m660.52 460.22c-0.02 0.03 -0.06 0.08 -0.08 0.11 -0.48 0.72 -0.86 1.71 -1.16 2.77 -0.30 1.07 -0.52 2.22 -0.68 3.28 -0.32 2.13 -0.40 3.89 -0.40 3.89 0.00 0.00 0.27 1.81 0.36 2.50 0.26 -1.07 0.51 -2.09 0.74 -3.04 0.39 -1.63 0.72 -3.55 0.72 -4.27 0.00 -0.72 0.18 -1.93 0.41 -2.67 0.29 -0.97 0.28 -1.81 0.11 -2.57zm22.73 7.24c-0.84 0.05 -1.46 0.32 -1.88 0.78 -1.69 1.88 -3.49 2.72 -6.31 2.97 -2.44 0.22 -3.03 0.14 -5.21 -0.69 -1.40 -0.53 -3.60 -1.03 -5.09 -1.14 -1.44 -0.11 -2.70 -0.34 -2.81 -0.51 -0.10 -0.17 -0.58 -0.31 -1.05 -0.31 -0.70 0.00 -0.91 0.23 -1.10 1.26 -0.37 1.98 0.09 3.48 1.77 5.78 2.25 3.07 2.67 3.36 5.29 3.62 2.93 0.29 6.81 1.66 9.22 3.26 1.99 1.32 5.36 4.75 6.17 6.30 0.44 0.84 0.40 1.06 -0.45 2.31 -1.09 1.60 -1.22 2.89 -0.31 3.13 2.31 0.60 3.51 -0.29 5.09 -3.80 1.34 -2.97 2.35 -3.97 4.91 -4.90 1.17 -0.42 2.54 -1.02 3.03 -1.32 0.49 -0.30 1.79 -1.01 2.88 -1.58 4.54 -2.37 4.71 -4.08 0.82 -8.04 -3.06 -3.12 -4.24 -3.87 -8.82 -5.65 -2.73 -1.06 -4.75 -1.54 -6.16 -1.45zm12.23 20.19c-0.42 0.05 -0.87 0.26 -1.31 0.62 -1.13 0.92 -0.71 2.74 0.85 3.69 1.44 0.88 2.27 0.88 2.74 0.00 0.57 -1.06 0.45 -2.15 -0.37 -3.30 -0.43 -0.61 -0.94 -0.94 -1.49 -1.01 -0.14 -0.02 -0.28 -0.02 -0.42 0.00z\"},\"path18\":{\"name\":\"Nusa Tenggara Barat\",\"path\":\"m774.39 467.98c-0.57 0.00 -1.25 0.13 -2.42 0.39 -3.36 0.75 -5.38 2.16 -5.73 4.02 -0.25 1.32 -0.21 1.39 2.96 4.42 3.71 3.54 6.45 5.22 7.99 4.88 0.78 -0.17 1.46 0.06 2.96 1.03 3.19 2.05 4.08 2.90 3.80 3.63 -0.21 0.54 -0.53 0.61 -2.03 0.43 -2.22 -0.26 -3.74 0.23 -5.51 1.81 -1.06 0.95 -1.59 1.18 -2.34 1.03 -0.53 -0.10 -1.57 -0.29 -2.31 -0.42 -1.54 -0.26 -2.86 -1.60 -3.50 -3.56 -0.32 -0.97 -0.68 -1.33 -1.56 -1.55 -0.81 -0.20 -1.33 -0.66 -1.79 -1.59 -0.36 -0.72 -1.25 -1.85 -1.98 -2.50l-1.33 -1.20 2.08 -3.75c1.15 -2.06 2.00 -3.96 1.90 -4.23 -0.13 -0.34 -0.94 -0.48 -2.71 -0.48h-2.52 0.00l-0.95 1.43c-1.09 1.65 -1.02 2.82 0.35 5.52l0.83 1.65 -1.00 0.22c-0.55 0.12 -1.19 0.45 -1.43 0.74 -0.65 0.78 -1.76 0.61 -3.94 -0.60 -4.42 -2.47 -6.33 -2.51 -8.59 -0.18 -0.65 0.68 -2.35 1.75 -3.77 2.40 -3.34 1.52 -4.76 2.59 -5.61 4.27 -0.65 1.28 -0.66 1.52 -0.18 3.83 0.51 2.45 0.51 2.48 -0.40 3.78 -0.86 1.24 -0.89 1.45 -0.55 3.53 0.20 1.21 0.46 2.37 0.58 2.57 0.42 0.68 2.48 1.52 5.72 2.34 1.79 0.45 3.60 0.84 4.02 0.86 1.13 0.06 3.05 -0.67 4.39 -1.66 1.14 -0.84 1.28 -0.86 3.62 -0.47 3.23 0.54 6.55 -0.19 9.98 -2.20 2.05 -1.20 2.72 -1.43 3.84 -1.28 2.17 0.29 6.12 -0.36 8.40 -1.38 1.50 -0.67 2.50 -0.89 3.44 -0.77 1.95 0.25 6.38 -2.38 7.65 -4.56 0.50 -0.86 1.22 -1.84 1.60 -2.18 0.65 -0.59 0.70 -0.58 0.92 0.13 0.15 0.48 -0.04 1.20 -0.54 2.00 -0.76 1.23 -0.77 1.27 -0.12 2.60 0.99 2.04 2.40 2.26 6.67 1.05 4.04 -1.15 4.60 -1.17 7.32 -0.23 3.68 1.27 5.51 0.02 2.91 -1.97 -0.85 -0.65 -1.65 -0.92 -2.72 -0.92 -0.92 0.00 -1.43 -0.14 -1.29 -0.36 0.35 -0.56 4.29 -0.42 6.17 0.22 2.05 0.69 5.04 0.53 6.38 -0.34 0.86 -0.56 0.93 -0.82 0.93 -3.12 0.00 -2.80 -0.37 -3.12 -2.07 -1.78 -0.81 0.64 -1.01 0.67 -1.67 0.22 -0.65 -0.43 -0.74 -0.80 -0.64 -2.62 0.10 -1.84 -0.05 -2.45 -1.20 -4.73 -1.70 -3.39 -2.37 -3.83 -5.34 -3.51 -1.98 0.21 -2.45 0.41 -3.49 1.48 -0.66 0.68 -1.32 1.24 -1.48 1.24 -0.15 0.00 -0.54 -0.50 -0.85 -1.11 -0.64 -1.24 -3.63 -2.84 -5.31 -2.84 -1.20 -0.01 -3.41 1.07 -4.36 2.11 -1.59 1.75 -4.75 0.28 -6.39 -2.98 -1.33 -2.65 -2.40 -3.81 -3.51 -3.81 -0.56 0.00 -1.72 -0.25 -2.59 -0.55 -0.71 -0.25 -1.17 -0.38 -1.74 -0.37zm37.11 2.05c-0.42 0.00 -0.88 0.25 -1.41 0.74 -0.93 0.87 -1.03 1.62 -0.41 2.98 0.52 1.13 1.59 1.19 2.71 0.13 0.97 -0.91 1.06 -1.97 0.27 -3.10 -0.35 -0.50 -0.73 -0.76 -1.15 -0.76zm-87.84 2.12c-2.43 -0.06 -4.95 1.47 -8.54 4.97 -1.83 1.79 -3.33 3.54 -3.33 3.90 -0.00 0.36 0.26 1.80 0.59 3.21 0.33 1.40 0.50 2.95 0.37 3.44 -0.31 1.23 -3.24 2.57 -5.72 2.61 -1.42 0.02 -1.91 0.17 -2.00 0.60 -0.25 1.29 0.63 2.37 3.19 3.90 2.59 1.54 2.65 1.56 3.66 0.98 1.28 -0.74 3.12 -0.76 4.80 -0.05 0.71 0.30 1.88 0.54 2.60 0.54 0.72 0.00 1.79 0.33 2.38 0.72 1.31 0.88 2.04 0.79 2.52 -0.29 0.32 -0.72 0.53 -0.79 1.88 -0.59 1.73 0.26 3.33 -0.03 3.33 -0.61 0.00 -0.21 -0.33 -0.86 -0.74 -1.43 -0.73 -1.03 -0.74 -1.06 -0.06 -2.03 1.09 -1.57 3.51 -6.44 5.10 -10.26 1.07 -2.56 1.37 -3.69 1.13 -4.13 -0.74 -1.37 -2.54 -2.63 -4.91 -3.46 -1.38 -0.48 -3.10 -1.13 -3.84 -1.44 -0.83 -0.36 -1.63 -0.55 -2.44 -0.57zm-23.87 25.27c-0.34 0.05 -0.81 0.30 -1.23 0.70 -0.53 0.49 -1.74 1.42 -2.69 2.06 -0.95 0.64 -1.67 1.35 -1.59 1.58 0.08 0.23 0.92 0.53 1.88 0.67 1.26 0.18 2.05 0.56 2.84 1.35 1.28 1.28 1.84 1.25 1.81 -0.10 -0.13 -5.69 -0.17 -6.02 -0.72 -6.23 -0.08 -0.03 -0.18 -0.04 -0.30 -0.02z\"},\"path19\":{\"name\":\"Nusa Tenggara Timur\",\"path\":\"m934.92 468.06c-0.47 0.03 -0.81 0.35 -1.65 1.19 -1.40 1.40 -1.77 2.81 -1.03 3.97 0.28 0.45 0.53 0.46 1.61 0.07 0.80 -0.29 1.49 -0.34 1.85 -0.14 0.48 0.27 0.26 0.61 -1.29 1.99 -1.79 1.61 -4.41 2.76 -6.28 2.76 -0.93 0.00 -3.44 2.53 -4.46 4.50 -1.20 2.30 -1.58 2.61 -3.84 3.09 -3.03 0.64 -4.77 0.53 -5.88 -0.37 -1.85 -1.50 -4.15 -2.90 -4.76 -2.90 -0.44 0.00 -0.66 -0.34 -0.74 -1.17 -0.10 -1.01 -0.27 -1.18 -1.20 -1.27 -0.67 -0.07 -1.77 0.27 -2.88 0.87 -1.66 0.91 -2.07 0.98 -5.53 0.91 -3.37 -0.06 -3.89 0.02 -5.22 0.80 -0.81 0.48 -1.78 1.20 -2.16 1.62 -0.38 0.42 -1.10 0.75 -1.62 0.75 -1.49 -0.01 -3.81 -1.25 -4.71 -2.51 -0.95 -1.34 -2.13 -1.90 -5.69 -2.71 -1.76 -0.40 -3.02 -0.95 -4.07 -1.78 -1.44 -1.14 -1.72 -1.22 -5.33 -1.45 -2.85 -0.18 -4.25 -0.45 -5.60 -1.08 -2.95 -1.38 -5.59 -1.75 -8.85 -1.24 -1.55 0.24 -3.06 0.35 -3.36 0.23 -1.02 -0.39 -3.96 0.79 -5.23 2.09 -0.68 0.70 -1.49 1.27 -1.82 1.27 -0.32 0.00 -1.38 0.53 -2.36 1.17 -1.50 0.99 -2.09 1.17 -3.93 1.17h-2.16 0.00l-0.11 1.26c-0.06 0.70 -0.49 1.65 -0.97 2.16 -0.47 0.49 -1.01 1.33 -1.21 1.85 -0.21 0.56 -0.80 1.10 -1.44 1.32 -0.90 0.31 -1.24 0.26 -1.97 -0.32 -0.49 -0.38 -1.16 -0.69 -1.50 -0.69 -0.53 0.00 -0.58 0.20 -0.34 1.35 0.15 0.74 0.30 2.08 0.32 2.97l0.04 1.62 1.53 0.11 1.53 0.11v0.00 -1.40c0.00 -1.02 0.24 -1.62 0.90 -2.24l0.90 -0.85v0.00 1.42c0.00 1.58 0.51 2.49 2.65 4.73 1.66 1.73 2.02 1.82 3.41 0.80 1.07 -0.79 4.32 -1.77 5.88 -1.78 0.53 0.00 1.55 0.34 2.25 0.75 0.96 0.57 1.66 0.71 2.81 0.57 0.84 -0.10 3.04 -0.37 4.88 -0.59l3.36 -0.40 2.19 1.09c2.45 1.22 3.03 1.30 4.03 0.54 1.19 -0.90 2.29 -0.62 4.08 1.04 0.93 0.86 1.94 1.67 2.23 1.78 1.01 0.40 4.85 0.02 6.53 -0.65 1.51 -0.61 1.87 -0.62 3.69 -0.19 2.37 0.57 3.08 0.31 5.19 -1.87l1.31 -1.35 2.34 0.37c1.29 0.21 2.90 0.72 3.59 1.14 1.79 1.09 5.43 1.11 7.26 0.03 0.73 -0.43 2.35 -1.04 3.60 -1.36 1.25 -0.32 2.92 -1.02 3.71 -1.55 1.41 -0.95 1.56 -0.97 7.03 -0.97l5.60 -0.01 2.62 -1.37c1.44 -0.75 3.86 -1.69 5.37 -2.07 1.51 -0.39 3.29 -0.88 3.95 -1.09l1.20 -0.39 -0.25 -2.42 -0.24 -2.43 1.28 -0.75c0.73 -0.43 1.38 -1.15 1.51 -1.67 0.14 -0.56 0.48 -0.92 0.88 -0.92 0.36 0.00 0.91 -0.10 1.22 -0.22 0.44 -0.17 0.57 0.02 0.57 0.83 0.00 0.58 0.17 1.22 0.39 1.43 0.27 0.27 0.10 0.46 -0.61 0.63 -1.28 0.32 -3.73 2.26 -3.73 2.95 0.00 0.89 1.07 2.65 1.60 2.65 0.28 0.00 0.86 -0.49 1.28 -1.09 0.43 -0.60 1.37 -1.39 2.09 -1.76 0.73 -0.37 1.91 -1.34 2.64 -2.15 1.17 -1.31 1.50 -1.48 2.93 -1.48 1.41 0.00 1.76 -0.17 2.87 -1.40 1.10 -1.21 1.23 -1.56 1.02 -2.60 -0.31 -1.51 -1.40 -2.10 -3.91 -2.10 -1.92 -0.01 -3.93 0.90 -5.08 2.28 -0.74 0.89 -1.05 0.71 -1.05 -0.62 0.00 -2.32 -2.53 -5.99 -4.57 -6.61 -0.50 -0.15 -0.82 -0.24 -1.10 -0.23zm54.38 1.58c-1.49 0.00 -1.72 0.12 -2.55 1.34 -0.63 0.93 -0.91 1.82 -0.91 2.90 0.00 1.11 -0.26 1.90 -0.90 2.74 -0.99 1.30 -1.23 3.68 -0.45 4.49 0.52 0.53 2.34 0.38 6.20 -0.52 1.38 -0.32 3.57 -0.64 4.85 -0.70 1.29 -0.06 3.39 -0.37 4.68 -0.68 1.29 -0.31 3.35 -0.56 4.59 -0.56 2.14 -0.01 2.34 -0.08 3.87 -1.49 1.92 -1.77 2.07 -2.88 0.69 -5.24l-0.92 -1.58 -6.27 0.19c-3.45 0.10 -6.90 0.29 -7.68 0.42 -1.12 0.18 -1.65 0.06 -2.49 -0.53 -0.71 -0.51 -1.62 -0.76 -2.71 -0.76zm-23.36 2.14c-1.00 0.04 -2.25 0.74 -4.23 2.15 -2.84 2.03 -3.01 2.10 -3.47 1.45 -0.49 -0.70 -2.51 -1.43 -3.98 -1.43 -1.17 0.00 -1.39 0.96 -0.45 1.96l0.80 0.85 -3.27 2.43c-1.83 1.36 -3.27 2.70 -3.27 3.03 0.00 0.35 1.00 1.20 2.43 2.07 1.34 0.81 2.54 1.49 2.67 1.50 0.13 0.01 0.73 -0.39 1.33 -0.90 1.05 -0.88 1.13 -0.90 2.20 -0.35 1.38 0.71 1.68 0.52 2.58 -1.56 0.93 -2.16 1.64 -2.93 2.75 -2.93 0.64 0.00 1.46 -0.61 2.83 -2.14 1.48 -1.64 2.20 -2.16 3.09 -2.25 1.58 -0.15 1.67 -1.21 0.25 -2.72 -0.64 -0.67 -1.20 -1.07 -1.85 -1.16 -0.13 -0.02 -0.27 -0.03 -0.42 -0.02zm16.03 0.38c-1.52 0.01 -2.36 0.58 -4.09 2.78l-1.84 2.34 -0.82 -1.03 -0.82 -1.03 -1.62 0.79c-0.89 0.43 -1.73 1.12 -1.86 1.53 -0.37 1.17 0.43 3.03 1.61 3.73 0.59 0.35 1.50 1.19 2.02 1.88 0.52 0.68 1.12 1.24 1.32 1.24 0.80 0.00 2.81 -1.91 3.34 -3.17 0.30 -0.73 1.02 -1.81 1.58 -2.41 1.69 -1.78 2.56 -6.66 1.18 -6.65zm-158.30 7.62c-0.70 0.08 -1.06 0.58 -1.90 2.62 -0.88 2.13 -0.98 2.71 -0.68 3.78 0.20 0.69 0.26 1.95 0.15 2.79 -0.20 1.44 -0.16 1.53 0.67 1.53 1.38 0.00 2.15 -0.81 2.96 -3.07 0.65 -1.81 0.91 -2.14 1.90 -2.40 0.63 -0.16 1.25 -0.45 1.36 -0.64 0.67 -1.08 -2.92 -4.78 -4.46 -4.60zm185.23 16.51c-0.57 -0.01 -1.30 0.04 -2.26 0.12 -3.18 0.25 -4.66 0.72 -8.47 2.66 -1.76 0.90 -6.58 4.79 -6.58 5.31 0.00 0.25 0.18 0.85 0.40 1.33 0.34 0.76 0.18 1.25 -1.29 3.79 -1.61 2.79 -3.03 4.36 -3.94 4.36 -0.23 0.00 -1.05 -0.65 -1.82 -1.44 -0.77 -0.79 -1.63 -1.44 -1.91 -1.44 -0.28 0.00 -1.06 0.49 -1.74 1.08 -0.68 0.59 -1.46 1.08 -1.75 1.08 -0.29 0.00 -1.61 -0.67 -2.93 -1.48 -3.28 -2.01 -4.45 -1.86 -7.26 0.88 -1.11 1.09 -3.46 3.23 -5.21 4.77 -2.85 2.51 -3.16 2.90 -2.98 3.79 0.11 0.55 -0.05 1.59 -0.35 2.32 -0.36 0.87 -0.47 1.79 -0.32 2.71 0.21 1.25 0.12 1.49 -0.86 2.31 -1.18 0.99 -1.86 3.17 -1.19 3.83 0.21 0.21 1.24 0.67 2.29 1.03 1.58 0.53 1.91 0.80 1.91 1.48 0.00 0.67 -0.45 1.05 -2.22 1.91 -2.25 1.09 -3.85 2.35 -4.48 3.52 -0.60 1.12 0.30 3.05 1.79 3.84 1.07 0.56 2.08 0.70 5.32 0.71 3.71 0.02 4.09 -0.05 5.35 -0.91 0.75 -0.51 2.21 -1.24 3.24 -1.62 1.03 -0.39 2.81 -1.37 3.95 -2.18l2.07 -1.48 4.37 -0.24c2.40 -0.13 4.71 -0.43 5.13 -0.66 0.42 -0.23 1.85 -1.63 3.18 -3.12 1.33 -1.48 3.13 -3.14 4.01 -3.69 0.88 -0.55 2.62 -2.30 3.88 -3.88 1.26 -1.58 2.96 -3.36 3.79 -3.96 0.82 -0.59 1.88 -1.36 2.34 -1.71 0.61 -0.45 0.92 -1.14 1.10 -2.47 0.14 -1.01 0.52 -2.05 0.84 -2.32 0.32 -0.27 0.97 -0.79 1.44 -1.15l0.85 -0.67 -0.47 -4.40 -0.47 -4.39 2.46 -2.48 2.46 -2.48 -0.81 -1.99c-0.86 -2.11 -1.14 -2.67 -2.85 -2.69zm-169.52 12.54c-0.48 0.00 -1.90 0.51 -3.15 1.14l-2.27 1.14 -2.58 -0.64c-2.14 -0.53 -2.81 -0.57 -3.89 -0.21 -0.72 0.24 -1.47 0.33 -1.68 0.20 -0.20 -0.13 -2.92 -0.04 -6.03 0.20 -7.03 0.53 -9.54 1.35 -11.86 3.88 -0.84 0.91 -1.53 1.85 -1.53 2.08 0.00 0.87 3.03 4.90 4.32 5.76 1.78 1.18 8.13 2.38 12.22 2.32 1.68 -0.03 3.95 0.12 5.04 0.33 1.69 0.32 2.21 0.63 3.60 2.14 1.78 1.94 3.00 2.69 5.31 3.27 1.84 0.46 3.78 2.08 4.42 3.68 0.58 1.46 1.41 2.42 3.99 4.58 1.85 1.55 2.24 1.72 4.50 1.96 1.36 0.14 2.96 0.47 3.55 0.74 1.72 0.78 3.77 0.64 5.52 -0.36 0.95 -0.54 2.15 -0.90 3.06 -0.91 2.28 -0.02 3.31 -0.66 5.49 -3.39 1.70 -2.14 1.97 -2.67 1.79 -3.60 -0.22 -1.18 -2.88 -3.92 -4.76 -4.91 -0.78 -0.41 -1.44 -1.29 -2.24 -2.97 -0.86 -1.82 -1.41 -2.52 -2.33 -2.96 -0.66 -0.32 -1.47 -1.03 -1.80 -1.59 -0.77 -1.30 -1.39 -1.48 -3.81 -1.09 -1.08 0.17 -2.17 0.23 -2.42 0.14 -0.73 -0.28 -1.91 -2.44 -1.91 -3.49 0.00 -0.79 -0.28 -1.09 -1.53 -1.66 -0.84 -0.38 -1.88 -0.70 -2.32 -0.70 -0.50 -0.01 -1.73 -0.95 -3.29 -2.53 -1.73 -1.74 -2.77 -2.52 -3.38 -2.52zm115.00 28.05c-0.94 0.00 -1.52 0.37 -3.04 1.98 -1.70 1.80 -1.85 2.09 -1.63 3.15 0.14 0.64 0.32 1.28 0.41 1.43 0.22 0.38 1.33 0.33 2.45 -0.09 0.57 -0.22 1.16 -0.88 1.49 -1.68 0.31 -0.73 0.97 -1.87 1.47 -2.52 0.75 -0.98 0.83 -1.29 0.46 -1.73 -0.25 -0.30 -0.97 -0.54 -1.61 -0.54zm-50.29 9.35c-1.27 0.00 -1.75 0.20 -2.61 1.11 -0.58 0.61 -1.82 1.51 -2.76 1.99 -2.04 1.04 -2.22 1.91 -0.54 2.75 2.36 1.18 4.91 0.70 7.73 -1.45 1.35 -1.03 1.44 -1.62 0.45 -3.23 -0.63 -1.03 -0.90 -1.17 -2.27 -1.17zm47.83 0.79c-0.74 -0.15 -5.62 3.43 -6.49 4.76 -0.76 1.16 -5.29 3.54 -8.61 4.53 -3.66 1.09 -3.96 1.45 -3.44 4.16 0.22 1.17 0.67 2.33 0.98 2.59 0.78 0.62 2.38 0.24 4.34 -1.04 0.87 -0.57 1.86 -1.04 2.18 -1.04 0.33 0.00 1.31 -0.24 2.19 -0.52 0.88 -0.29 2.26 -0.69 3.08 -0.90 1.15 -0.29 1.59 -0.63 1.94 -1.48 0.52 -1.25 2.65 -2.85 3.80 -2.85 1.20 0.00 1.73 -0.86 1.15 -1.86 -0.28 -0.48 -0.48 -1.95 -0.48 -3.52 0.00 -2.31 -0.09 -2.71 -0.65 -2.82z\"},\"path20\":{\"name\":\"Kalimantan Barat\",\"path\":\"m537.25 302.84 2.53 -3.93c0.00 0.00 1.85 -0.64 3.81 -1.73 0.98 -0.54 1.99 -1.19 2.82 -1.93 0.83 -0.74 1.47 -1.56 1.71 -2.44 0.48 -1.76 1.04 -4.41 1.29 -6.82 0.12 -1.20 0.16 -2.35 0.07 -3.29 -0.09 -0.94 -0.31 -1.69 -0.71 -2.09 -0.80 -0.80 -1.60 -2.25 -2.37 -3.81 -0.76 -1.56 -1.48 -3.25 -2.13 -4.53 -0.64 -1.28 -1.20 -2.57 -1.37 -4.01 -0.08 -0.72 -0.06 -1.49 0.10 -2.31 0.16 -0.82 0.46 -1.70 0.94 -2.67 0.48 -0.96 0.76 -1.78 0.90 -2.50 0.14 -0.71 0.13 -1.31 0.03 -1.84 -0.20 -1.04 -0.76 -1.77 -1.24 -2.41 -0.24 -0.32 -0.26 -0.74 -0.13 -1.18 0.14 -0.44 0.43 -0.90 0.81 -1.30 0.38 -0.40 0.85 -0.74 1.35 -0.94 0.50 -0.20 1.02 -0.26 1.50 -0.10 0.48 0.16 1.02 0.18 1.58 0.10 0.55 -0.09 1.11 -0.28 1.63 -0.54 1.04 -0.52 1.92 -1.32 2.25 -2.13 0.32 -0.80 1.77 -2.33 3.33 -3.81 1.56 -1.48 3.25 -2.93 4.05 -3.57 0.80 -0.64 1.76 -1.60 2.57 -2.65 0.80 -1.04 1.44 -2.17 1.60 -3.13 0.08 -0.48 0.68 -1.24 1.59 -2.13 0.91 -0.88 2.14 -1.88 3.46 -2.85 1.32 -0.96 2.75 -1.89 4.06 -2.61 1.31 -0.72 2.52 -1.24 3.40 -1.40 1.77 -0.32 3.85 -0.32 6.02 -0.32 2.17 0.00 4.41 0.00 6.50 -0.32 2.09 -0.32 6.34 -1.93 10.51 -3.53 4.17 -1.60 8.26 -3.21 10.03 -3.53 1.77 -0.32 4.01 0.08 5.82 0.12 0.90 0.02 1.70 -0.05 2.26 -0.35 0.28 -0.15 0.51 -0.35 0.66 -0.63 0.16 -0.28 0.24 -0.63 0.24 -1.07 0.00 -1.77 -0.24 -3.13 -0.12 -4.25 0.06 -0.56 0.21 -1.06 0.53 -1.52 0.32 -0.46 0.80 -0.88 1.52 -1.28 0.72 -0.40 1.32 -0.80 1.84 -1.28 0.51 -0.48 0.93 -1.03 1.29 -1.73 0.72 -1.40 1.20 -3.41 1.69 -6.62 0.48 -3.21 1.12 -5.86 2.09 -8.14 0.48 -1.14 1.04 -2.20 1.70 -3.18 0.66 -0.99 1.42 -1.91 2.31 -2.79 0.88 -0.88 2.02 -1.74 3.24 -2.54 1.22 -0.80 2.51 -1.53 3.70 -2.15 2.37 -1.24 4.29 -2.05 4.29 -2.05 0.00 0.00 -1.20 -1.76 -2.17 -3.97 -0.48 -1.10 -0.90 -2.32 -1.08 -3.47 -0.18 -1.16 -0.12 -2.26 0.36 -3.14 0.48 -0.88 1.28 -1.81 2.22 -2.69 0.93 -0.89 2.00 -1.74 3.00 -2.48 2.01 -1.48 3.77 -2.53 3.77 -2.53l0.75 -8.41c-1.22 -0.53 -1.78 -0.58 -4.37 -0.23l-3.06 0.41 -2.52 2.63c-2.11 2.20 -2.85 2.74 -4.59 3.28l-2.07 0.65 -1.20 -1.16c-1.17 -1.13 -1.26 -1.16 -3.52 -0.92 -2.15 0.22 -2.40 0.17 -3.44 -0.71 -1.38 -1.16 -3.71 -2.02 -5.50 -2.02 -0.76 0.00 -1.71 -0.29 -2.20 -0.67 -0.47 -0.37 -1.39 -0.94 -2.04 -1.27 -1.08 -0.55 -1.16 -0.72 -0.95 -1.82 0.19 -0.99 0.09 -1.28 -0.52 -1.61 -1.39 -0.74 -4.29 -1.11 -5.35 -0.68 -0.60 0.24 -3.70 0.42 -7.82 0.44l-6.83 0.04 -2.52 1.19c-5.31 2.50 -5.02 2.29 -5.24 3.85 -0.11 0.79 -0.48 1.96 -0.82 2.60 -0.34 0.64 -0.83 2.10 -1.08 3.24 -0.52 2.29 -1.28 2.95 -3.40 2.96 -1.57 0.01 -3.58 1.07 -5.02 2.66 -1.42 1.56 -2.60 1.91 -4.66 1.36 -2.11 -0.57 -3.09 -0.52 -4.60 0.20 -1.12 0.54 -1.43 0.55 -2.44 0.12 -0.63 -0.27 -1.91 -0.46 -2.83 -0.42 -1.15 0.05 -2.34 -0.23 -3.77 -0.87 -2.30 -1.03 -3.51 -1.03 -7.76 -0.01 -1.24 0.30 -3.20 0.72 -4.36 0.95 -1.63 0.32 -2.46 0.73 -3.62 1.80 -0.98 0.90 -2.08 1.51 -3.14 1.75 -0.90 0.20 -2.40 0.70 -3.34 1.10 -1.41 0.61 -1.95 0.67 -3.07 0.37 -0.75 -0.20 -1.57 -0.63 -1.84 -0.94 -0.26 -0.32 -1.46 -1.23 -2.65 -2.03 -1.19 -0.80 -3.50 -2.81 -5.12 -4.47 -1.64 -1.67 -3.56 -3.27 -4.32 -3.58 -2.13 -0.89 -3.85 -2.44 -4.38 -3.95 -0.69 -1.94 -1.38 -2.61 -3.16 -3.06 -1.16 -0.29 -1.74 -0.70 -2.31 -1.62 -0.42 -0.67 -1.31 -1.64 -1.98 -2.15 -1.59 -1.22 -2.67 -2.99 -2.67 -4.42 0.00 -1.43 -1.05 -3.50 -2.45 -4.83 -1.25 -1.19 -1.20 -1.59 0.64 -5.20 1.75 -3.43 1.08 -4.28 -1.52 -1.94 -1.17 1.05 -2.13 1.52 -4.22 2.03 -4.40 1.09 -4.18 0.91 -4.43 3.57 -0.36 3.85 -1.28 5.13 -6.72 9.34l-1.98 1.53 -0.20 3.04c-0.13 1.92 -0.44 3.48 -0.85 4.23 -0.42 0.77 -0.58 1.57 -0.44 2.25 0.19 0.94 0.07 1.12 -1.24 1.79 -0.80 0.41 -1.54 0.98 -1.65 1.27 -0.11 0.29 0.14 1.48 0.56 2.63 0.42 1.15 0.76 2.68 0.76 3.40 0.00 1.16 -0.21 1.46 -1.76 2.58 -0.97 0.70 -1.85 1.48 -1.95 1.74 -0.10 0.26 0.37 2.15 1.05 4.19 1.04 3.14 1.18 3.89 0.86 4.86 -0.27 0.82 -0.26 1.43 0.04 2.18 0.23 0.57 0.39 2.05 0.36 3.29 -0.08 2.90 0.34 3.69 1.94 3.69 1.64 0.00 3.14 1.35 5.29 4.75 2.28 3.59 2.32 3.74 1.16 4.03 -0.81 0.20 -0.93 0.39 -0.78 1.21 0.10 0.53 0.35 1.86 0.55 2.95 0.20 1.09 0.47 2.24 0.60 2.56 0.20 0.51 0.00 0.56 -1.41 0.41 -2.81 -0.32 -3.25 0.82 -1.54 3.94 0.65 1.19 0.68 1.50 0.29 2.81 -0.38 1.27 -0.35 1.65 0.21 2.80 0.76 1.56 4.25 3.64 6.13 3.66 0.94 0.01 1.21 0.19 1.39 0.92 0.13 0.50 0.57 1.17 1.00 1.48 0.62 0.46 0.64 0.53 0.11 0.35 -0.36 -0.12 -1.29 -0.32 -2.06 -0.45 -1.30 -0.21 -1.43 -0.15 -1.80 0.81 -0.22 0.57 -0.33 1.83 -0.23 2.81 0.14 1.47 0.39 1.98 1.44 2.95 1.72 1.58 3.50 1.89 5.45 0.94 1.30 -0.63 1.64 -0.67 2.56 -0.28 1.31 0.56 2.47 1.81 2.15 2.33 -0.13 0.21 -1.18 0.38 -2.33 0.38 -1.25 0.00 -2.23 0.18 -2.44 0.45 -0.19 0.25 -0.63 2.11 -0.97 4.14 -0.63 3.68 -0.63 3.69 0.15 4.95 0.43 0.69 1.06 1.26 1.40 1.26 0.34 0.00 2.25 -0.80 4.25 -1.78 4.01 -1.97 5.50 -3.41 5.50 -5.35 0.00 -1.36 0.09 -1.38 1.55 -0.28 0.63 0.47 1.51 0.97 1.96 1.10 0.66 0.20 0.81 0.51 0.81 1.68 0.00 1.89 0.77 3.30 2.30 4.20 2.04 1.21 2.52 2.25 2.22 4.85 -0.14 1.23 -0.39 3.44 -0.55 4.91 -0.28 2.62 -0.32 2.70 -2.13 4.37 -2.90 2.68 -2.52 4.39 1.37 6.25 2.17 1.04 2.22 1.09 2.91 3.35 0.65 2.09 0.66 2.40 0.17 3.57 -0.77 1.83 -0.68 3.94 0.22 5.20 0.41 0.58 0.98 2.12 1.25 3.43 0.27 1.30 0.82 2.92 1.22 3.60 0.94 1.59 0.92 1.85 -0.22 3.04l-0.95 0.99 1.16 1.73c1.15 1.71 1.16 1.77 1.00 5.23 -0.13 2.99 -0.06 3.67 0.53 4.63 0.62 1.01 0.81 1.10 1.98 0.92 0.71 -0.12 2.44 -0.88 3.85 -1.70 1.40 -0.82 3.12 -1.57 3.83 -1.67 1.13 -0.16 1.39 -0.04 2.25 1.09 0.53 0.70 0.97 1.54 0.97 1.86 0.00 1.04 0.67 1.89 1.80 2.29 0.59 0.21 0.96 0.21 1.32 0.14z\"},\"path21\":{\"name\":\"Kalimantan Tengah\",\"path\":\"m702.98 245.55c0.03 -1.17 0.07 -2.23 0.07 -2.67 0.00 -0.68 -0.57 -1.64 -1.33 -2.75 -0.77 -1.11 -1.73 -2.36 -2.52 -3.60 -0.40 -0.62 -1.03 -1.09 -1.79 -1.49 -0.76 -0.40 -1.64 -0.72 -2.52 -1.06 -0.88 -0.34 -1.76 -0.69 -2.52 -1.15 -0.76 -0.45 -1.40 -1.01 -1.79 -1.75 -0.79 -1.47 -1.13 -3.12 -1.28 -4.65 -0.14 -1.53 -0.08 -2.95 -0.08 -3.97 0.00 -0.51 -0.24 -1.06 -0.60 -1.65 -0.36 -0.59 -0.84 -1.20 -1.33 -1.84 -0.48 -0.64 -0.96 -1.30 -1.33 -1.97 -0.36 -0.67 -0.60 -1.35 -0.60 -2.03v0.00 -11.34c0.00 -0.85 -0.23 -1.36 -0.61 -1.60 -0.39 -0.24 -0.93 -0.21 -1.57 0.01 -1.28 0.45 -2.92 1.70 -4.39 3.18 -0.74 0.74 -1.28 1.15 -1.67 1.34 -0.39 0.19 -0.64 0.15 -0.80 -0.00 -0.31 -0.31 -0.26 -1.11 -0.26 -1.56 0.00 -0.45 0.17 -1.87 0.45 -3.49 0.28 -1.62 0.68 -3.43 1.14 -4.68 0.45 -1.25 0.85 -4.14 1.11 -7.15 0.26 -3.01 0.37 -6.13 0.26 -7.83 -0.06 -0.85 -0.30 -1.46 -0.67 -1.90 -0.38 -0.44 -0.89 -0.70 -1.48 -0.85 -1.19 -0.31 -2.72 -0.20 -4.20 -0.20 -1.47 0.00 -3.58 0.51 -5.59 1.16 -2.01 0.65 -3.94 1.45 -5.08 2.01 -0.57 0.28 -1.25 0.44 -1.98 0.50 -0.73 0.06 -1.52 0.02 -2.30 -0.07 -1.56 -0.20 -3.09 -0.65 -4.11 -1.11 -1.02 -0.45 -2.55 -0.51 -4.20 -0.45 -1.65 0.06 -3.40 0.23 -4.88 0.23 -0.50 0.00 -1.13 0.03 -1.86 0.04 -0.12 0.05 -1.86 0.78 -4.15 1.98 -1.18 0.62 -2.48 1.35 -3.70 2.15 -1.22 0.80 -2.36 1.66 -3.24 2.54 -0.88 0.88 -1.64 1.81 -2.31 2.79 -0.66 0.99 -1.22 2.04 -1.70 3.18 -0.96 2.29 -1.60 4.93 -2.09 8.14 -0.48 3.21 -0.96 5.22 -1.69 6.62 -0.36 0.70 -0.78 1.25 -1.29 1.73 -0.51 0.48 -1.11 0.88 -1.84 1.28 -0.72 0.40 -1.20 0.82 -1.52 1.28 -0.32 0.46 -0.47 0.96 -0.53 1.52 -0.12 1.12 0.12 2.49 0.12 4.25 0.00 0.44 -0.09 0.79 -0.24 1.07 -0.16 0.28 -0.38 0.48 -0.66 0.63 -0.57 0.30 -1.36 0.37 -2.26 0.35 -1.81 -0.04 -4.05 -0.44 -5.82 -0.12 -1.77 0.32 -5.86 1.93 -10.03 3.53 -4.17 1.60 -8.42 3.21 -10.51 3.53 -2.09 0.32 -4.33 0.32 -6.50 0.32 -2.17 0.00 -4.25 -0.00 -6.02 0.32 -0.88 0.16 -2.09 0.68 -3.40 1.40 -1.31 0.72 -2.74 1.65 -4.06 2.61 -1.32 0.96 -2.55 1.96 -3.46 2.85 -0.91 0.88 -1.51 1.64 -1.59 2.13 -0.16 0.96 -0.80 2.09 -1.60 3.13 -0.80 1.04 -1.76 2.00 -2.57 2.65 -0.80 0.64 -2.49 2.09 -4.05 3.57 -1.56 1.48 -3.01 3.01 -3.33 3.81 -0.32 0.80 -1.20 1.60 -2.25 2.13 -0.52 0.26 -1.08 0.45 -1.63 0.54 -0.55 0.09 -1.09 0.06 -1.58 -0.10 -0.48 -0.16 -1.00 -0.10 -1.50 0.10 -0.50 0.20 -0.97 0.54 -1.35 0.94 -0.38 0.40 -0.67 0.86 -0.81 1.30 -0.14 0.44 -0.11 0.86 0.13 1.18 0.48 0.64 1.04 1.36 1.24 2.41 0.10 0.52 0.11 1.12 -0.03 1.84 -0.14 0.71 -0.42 1.53 -0.90 2.50 -0.48 0.96 -0.78 1.84 -0.94 2.67 -0.16 0.82 -0.18 1.59 -0.10 2.31 0.16 1.44 0.72 2.73 1.37 4.01 0.64 1.28 1.36 2.97 2.13 4.53 0.76 1.56 1.56 3.01 2.37 3.81 0.40 0.40 0.62 1.14 0.71 2.09 0.09 0.94 0.05 2.09 -0.07 3.29 -0.24 2.41 -0.80 5.06 -1.29 6.82 -0.24 0.88 -0.88 1.71 -1.71 2.44 -0.83 0.74 -1.84 1.39 -2.82 1.93 -1.97 1.08 -3.81 1.73 -3.81 1.73l-2.53 3.93c0.48 -0.10 0.88 -0.41 1.33 -1.18 0.78 -1.33 1.00 -1.33 1.77 -0.02 0.34 0.57 1.36 1.48 2.28 2.02 1.66 0.97 1.67 0.97 3.87 0.43 1.21 -0.30 3.98 -1.53 6.15 -2.74 3.65 -2.03 4.11 -2.19 6.19 -2.19 1.98 0.00 2.39 0.13 3.47 1.08 1.58 1.38 3.84 1.49 5.66 0.26 1.00 -0.68 1.28 -1.16 1.60 -2.79l0.39 -1.97 1.58 3.06 1.58 3.06 0.13 4.68c0.07 2.57 0.16 6.31 0.20 8.30 0.08 4.22 0.39 4.82 2.43 4.82 1.12 0.00 1.76 -0.32 3.46 -1.76 1.15 -0.97 2.65 -2.36 3.35 -3.10 1.42 -1.52 4.35 -3.05 5.86 -3.05 1.34 -0.01 3.21 0.81 5.91 2.57 2.05 1.34 2.34 1.42 3.38 1.06 0.63 -0.22 1.50 -0.40 1.94 -0.40 0.44 0.00 1.91 -0.82 3.27 -1.83 1.36 -1.01 3.61 -2.49 4.99 -3.30 3.14 -1.83 3.39 -2.13 3.16 -3.82 -0.13 -0.94 0.04 -1.80 0.55 -2.79 1.08 -2.12 1.61 -2.45 2.44 -1.53 0.38 0.42 1.45 1.15 2.39 1.62 1.14 0.58 1.78 1.16 1.92 1.76 0.28 1.10 2.23 2.86 4.31 3.87l1.56 0.76 2.57 -1.32c3.12 -1.60 4.72 -1.73 5.32 -0.41 0.50 1.10 0.54 3.16 0.09 4.72 -0.26 0.89 -0.17 1.46 0.40 2.61 0.87 1.76 1.68 2.03 4.56 1.53 2.21 -0.39 8.27 -3.20 9.67 -4.48 0.66 -0.60 0.81 -0.64 0.81 -0.18 0.00 0.32 0.62 0.81 1.45 1.14 1.28 0.51 1.59 0.52 2.69 0.06l1.24 -0.52 0.36 0.75c0.61 -0.98 1.22 -2.00 1.67 -2.96 0.53 -1.12 0.89 -2.14 0.89 -2.88 0.00 -1.48 -0.85 -2.95 -1.05 -4.45 -0.10 -0.75 -0.04 -1.51 0.38 -2.28 0.41 -0.77 1.18 -1.55 2.48 -2.34 2.61 -1.59 4.94 -2.61 6.72 -3.37 1.79 -0.77 3.04 -1.28 3.49 -1.85 0.45 -0.57 0.62 -1.30 0.96 -2.21 0.34 -0.91 0.85 -1.99 1.99 -3.23 1.13 -1.25 1.99 -1.87 2.44 -2.50 0.23 -0.31 0.36 -0.62 0.37 -1.01 0.01 -0.39 -0.09 -0.86 -0.31 -1.48 -0.45 -1.25 -1.36 -2.61 -1.59 -3.83 -0.11 -0.61 -0.06 -1.19 0.31 -1.69 0.37 -0.51 1.05 -0.95 2.18 -1.29 2.27 -0.68 4.31 -0.51 6.18 -0.80 0.94 -0.14 1.83 -0.40 2.69 -0.93 0.86 -0.53 1.68 -1.34 2.47 -2.59 1.59 -2.50 3.69 -6.64 5.39 -10.15 1.70 -3.52 3.01 -6.41 3.01 -6.41 0.00 0.00 -0.06 -0.91 0.00 -1.93 0.06 -1.02 0.23 -2.16 0.68 -2.61 0.45 -0.45 1.47 -0.57 2.58 -0.77 0.55 -0.10 1.13 -0.22 1.66 -0.41 0.54 -0.20 1.03 -0.46 1.43 -0.86 1.41 -1.41 2.21 -2.86 2.43 -3.23z\"},\"path22\":{\"name\":\"Kalimantan Selatan\",\"path\":\"m730.05 278.58 -2.95 -0.52c0.00 0.00 -7.94 -0.91 -13.84 -2.04 -1.47 -0.28 -2.44 -0.67 -3.06 -1.12 -0.62 -0.45 -0.91 -0.97 -1.02 -1.52 -0.23 -1.11 0.23 -2.35 0.00 -3.49 -0.45 -2.27 -0.23 -5.22 -0.91 -7.94 -0.17 -0.68 -0.17 -1.30 -0.06 -1.89 0.11 -0.59 0.34 -1.13 0.63 -1.66 0.57 -1.05 1.36 -2.02 1.93 -3.04 0.28 -0.51 0.38 -0.98 0.35 -1.44 -0.03 -0.46 -0.19 -0.92 -0.41 -1.40 -0.45 -0.96 -1.19 -2.04 -1.76 -3.52 -0.28 -0.74 -0.78 -1.35 -1.37 -1.85 -0.59 -0.50 -1.26 -0.89 -1.90 -1.19 -1.28 -0.60 -2.41 -0.82 -2.41 -0.82 0.00 0.00 -1.13 2.04 -2.72 3.63 -0.40 0.40 -0.89 0.67 -1.43 0.86 -0.54 0.20 -1.11 0.32 -1.66 0.41 -1.11 0.20 -2.13 0.31 -2.58 0.77 -0.45 0.45 -0.62 1.59 -0.68 2.61 -0.06 1.02 0.00 1.93 0.00 1.93 0.00 0.00 -1.30 2.89 -3.01 6.41 -1.70 3.52 -3.80 7.66 -5.39 10.15 -0.79 1.25 -1.62 2.06 -2.47 2.59 -0.86 0.53 -1.75 0.79 -2.69 0.93 -1.87 0.28 -3.91 0.12 -6.18 0.80 -1.13 0.34 -1.82 0.78 -2.18 1.29 -0.37 0.51 -0.42 1.08 -0.31 1.69 0.23 1.22 1.13 2.58 1.59 3.83 0.23 0.62 0.33 1.09 0.31 1.48 -0.01 0.39 -0.14 0.70 -0.37 1.01 -0.45 0.62 -1.31 1.25 -2.44 2.50 -1.13 1.25 -1.65 2.33 -1.99 3.23 -0.34 0.91 -0.51 1.65 -0.96 2.21 -0.45 0.57 -1.70 1.08 -3.49 1.85 -1.79 0.77 -4.11 1.79 -6.72 3.37 -1.30 0.79 -2.07 1.57 -2.48 2.34 -0.41 0.77 -0.48 1.53 -0.38 2.28 0.20 1.50 1.05 2.98 1.05 4.45 0.00 0.74 -0.36 1.76 -0.89 2.88 -0.46 0.96 -1.07 1.98 -1.67 2.96l0.25 0.53c0.41 0.87 1.02 1.44 1.90 1.78 0.71 0.27 1.92 0.84 2.70 1.26l1.42 0.77 0.78 -0.91 0.78 -0.91 0.41 1.79c0.23 0.98 0.88 2.46 1.46 3.29 1.01 1.45 1.05 1.66 1.28 7.25 0.13 3.16 0.22 6.55 0.19 7.51 -0.04 1.46 0.12 1.93 0.94 2.79 1.31 1.36 2.37 1.31 4.96 -0.26 2.99 -1.80 6.61 -3.59 9.36 -4.63 1.29 -0.49 3.05 -1.29 3.91 -1.80 0.86 -0.50 1.79 -0.92 2.07 -0.92 0.28 -0.00 1.88 -0.58 3.57 -1.29 1.68 -0.70 3.87 -1.53 4.85 -1.83 0.99 -0.30 2.89 -1.10 4.22 -1.77 1.33 -0.67 2.67 -1.22 2.98 -1.22 0.31 0.00 1.24 -0.63 2.08 -1.40 1.03 -0.95 2.21 -1.60 3.68 -2.02 2.49 -0.71 2.72 -0.88 3.32 -2.44l0.45 -1.15 -0.18 1.44c-0.10 0.79 -0.28 2.12 -0.41 2.96 -0.19 1.24 -0.04 1.89 0.77 3.49 0.91 1.79 0.97 2.18 0.75 4.47 -0.19 1.90 -0.11 2.83 0.31 3.84 0.53 1.26 0.64 1.33 1.82 1.13 0.89 -0.14 2.06 -0.92 3.97 -2.65 2.69 -2.43 2.71 -2.46 2.52 -3.95 -0.10 -0.83 -0.02 -2.00 0.19 -2.60 0.25 -0.73 0.27 -1.94 0.05 -3.63 -0.18 -1.39 -0.25 -2.61 -0.15 -2.71 0.10 -0.10 0.62 0.35 1.17 0.99 0.91 1.07 1.04 1.12 1.57 0.60 0.67 -0.65 1.84 -6.08 1.51 -6.96 -0.61 -1.60 -2.19 -0.84 -3.42 1.65l-0.70 1.41 -0.71 -2.44c-0.45 -1.56 -0.65 -3.06 -0.54 -4.16 0.17 -1.71 -0.27 -2.78 -1.13 -2.78 -0.23 0.00 -1.42 0.93 -2.65 2.07 -1.80 1.67 -2.48 2.63 -3.49 4.95 -0.96 2.19 -1.26 2.63 -1.27 1.86 -0.01 -1.28 2.20 -5.33 3.98 -7.30 2.97 -3.28 3.18 -5.13 1.04 -9.06 -0.99 -1.81 -1.34 -2.81 -1.13 -3.18 0.26 -0.46 0.44 -0.38 1.08 0.44 0.43 0.54 0.77 1.27 0.77 1.61 0.00 1.91 2.96 1.80 4.46 -0.17 1.46 -1.92 1.71 -2.95 1.77 -7.57l0.06 -4.32 -0.99 -0.11c-1.14 -0.13 -1.31 -0.95 -0.30 -1.49 0.84 -0.45 3.41 -0.57 4.94 -0.23 1.44 0.32 1.53 0.17 2.56 -4.10 0.27 -1.11 0.47 -1.95 0.72 -2.96z\"},\"path23\":{\"name\":\"Kalimantan Timur\",\"path\":\"m663.98 149.72c-0.17 0.65 -0.29 1.30 -0.36 2.16 -0.19 2.43 -0.23 2.52 -1.10 2.43 -0.49 -0.05 -1.34 -0.42 -1.87 -0.81 -1.50 -1.10 -3.33 -0.82 -7.86 1.19 -1.20 0.53 -1.38 0.52 -2.88 -0.16 -0.12 -0.05 -0.18 -0.04 -0.29 -0.09l-0.75 8.41c-0.00 0.00 -1.76 1.04 -3.77 2.53 -1.00 0.74 -2.07 1.59 -3.00 2.48 -0.93 0.89 -1.74 1.81 -2.22 2.69 -0.48 0.88 -0.54 1.99 -0.36 3.14 0.18 1.16 0.60 2.37 1.09 3.47 0.96 2.21 2.17 3.97 2.17 3.97 0.00 0.00 -0.14 0.07 -0.14 0.07 0.73 -0.01 1.35 -0.04 1.86 -0.04 1.47 0.00 3.23 -0.17 4.88 -0.23 1.65 -0.06 3.18 0.00 4.20 0.45 1.02 0.45 2.55 0.91 4.11 1.10 0.78 0.10 1.57 0.14 2.30 0.07 0.73 -0.06 1.42 -0.22 1.98 -0.50 1.13 -0.57 3.06 -1.36 5.08 -2.01 2.01 -0.65 4.11 -1.16 5.59 -1.16 1.47 0.00 3.01 -0.11 4.20 0.20 0.60 0.16 1.11 0.42 1.48 0.86 0.38 0.44 0.62 1.05 0.67 1.90 0.11 1.70 -0.00 4.82 -0.26 7.83 -0.26 3.01 -0.65 5.90 -1.10 7.15 -0.45 1.25 -0.85 3.06 -1.14 4.68 -0.28 1.62 -0.45 3.03 -0.45 3.49 0.00 0.45 -0.06 1.25 0.26 1.56 0.16 0.16 0.40 0.19 0.80 0.00 0.39 -0.19 0.93 -0.60 1.67 -1.34 1.47 -1.48 3.12 -2.72 4.39 -3.18 0.64 -0.23 1.19 -0.26 1.57 -0.01 0.39 0.24 0.61 0.75 0.61 1.60v0.00 11.34c0.00 0.68 0.24 1.36 0.60 2.03 0.36 0.67 0.84 1.33 1.32 1.97 0.48 0.64 0.96 1.25 1.33 1.84 0.36 0.59 0.60 1.14 0.60 1.65 0.00 1.02 -0.06 2.44 0.08 3.97 0.14 1.53 0.48 3.18 1.28 4.65 0.40 0.74 1.03 1.29 1.79 1.75 0.76 0.45 1.64 0.81 2.52 1.15 0.88 0.34 1.76 0.67 2.52 1.06 0.76 0.40 1.40 0.86 1.79 1.49 0.79 1.25 1.76 2.50 2.52 3.60 0.77 1.11 1.33 2.07 1.33 2.75 0.00 0.43 -0.04 1.50 -0.07 2.67 0.03 -0.05 0.30 -0.40 0.30 -0.40 0.00 0.00 1.14 0.23 2.41 0.82 0.64 0.30 1.31 0.69 1.90 1.19 0.59 0.50 1.08 1.11 1.36 1.85 0.57 1.47 1.31 2.55 1.76 3.52 0.23 0.48 0.38 0.94 0.41 1.40 0.03 0.46 -0.07 0.93 -0.35 1.44 -0.57 1.02 -1.36 1.99 -1.93 3.04 -0.28 0.52 -0.51 1.07 -0.63 1.65 -0.11 0.58 -0.11 1.21 0.06 1.89 0.68 2.72 0.45 5.67 0.91 7.94 0.23 1.13 -0.23 2.38 0.00 3.49 0.11 0.55 0.40 1.07 1.02 1.52 0.62 0.45 1.59 0.83 3.06 1.12 5.90 1.13 13.84 2.04 13.84 2.04l2.95 0.52c0.17 -0.70 0.41 -1.69 0.50 -2.05 0.34 -1.40 0.31 -1.65 -0.26 -2.07 -0.36 -0.26 -1.47 -0.48 -2.47 -0.48 -1.35 -0.01 -2.27 -0.27 -3.56 -1.03l-1.74 -1.03 1.56 -1.05c1.54 -1.03 1.57 -1.08 1.78 -3.55 0.31 -3.59 -0.41 -5.35 -2.67 -6.52 -0.64 -0.33 -1.42 -0.44 -2.11 -0.29 -2.99 0.66 0.93 -2.11 4.71 -3.33 2.53 -0.82 3.40 -2.07 3.10 -4.49 -0.20 -1.65 -0.17 -1.72 1.15 -2.57 0.75 -0.48 2.12 -1.15 3.05 -1.49 0.93 -0.34 1.97 -0.93 2.32 -1.32 0.88 -0.97 0.80 -3.66 -0.17 -5.84 -0.43 -0.97 -0.72 -1.83 -0.63 -1.92 0.08 -0.08 0.46 0.55 0.84 1.40 0.91 2.05 3.17 3.67 4.63 3.33 2.00 -0.46 4.13 -1.97 4.69 -3.30 0.59 -1.40 2.59 -3.95 5.24 -6.66 0.94 -0.96 1.71 -1.89 1.71 -2.06 0.00 -0.17 0.17 -0.76 0.37 -1.29l0.37 -0.97 0.87 0.81 0.87 0.81 1.55 -0.75c0.85 -0.41 2.51 -0.99 3.67 -1.30 1.17 -0.30 2.21 -0.63 2.32 -0.74 0.11 -0.11 -0.01 -0.76 -0.26 -1.45 -0.40 -1.12 -0.37 -1.39 0.31 -2.49 0.63 -1.03 0.69 -1.35 0.32 -1.94 -0.38 -0.61 -0.29 -0.90 0.58 -2.04 0.65 -0.86 1.03 -1.80 1.06 -2.64 0.04 -1.25 -0.01 -1.31 -1.31 -1.41 -0.95 -0.08 -1.68 0.12 -2.45 0.67 -0.60 0.43 -1.19 0.69 -1.30 0.57 -0.12 -0.12 0.12 -0.98 0.53 -1.91 0.73 -1.70 0.73 -1.71 0.04 -3.08 -1.06 -2.08 -0.96 -4.16 0.36 -6.89 1.23 -2.56 1.41 -4.03 0.60 -5.10 -0.70 -0.93 -0.67 -1.73 0.18 -4.26 0.39 -1.17 0.71 -2.67 0.71 -3.34 0.00 -1.30 0.67 -2.84 2.00 -4.60 0.45 -0.59 1.47 -2.57 2.27 -4.39 0.80 -1.82 1.87 -4.12 2.37 -5.11 1.52 -3.00 4.66 -4.49 6.51 -3.10 1.18 0.89 1.95 0.66 2.54 -0.77 0.51 -1.21 0.50 -1.43 -0.11 -2.78 -0.36 -0.80 -1.19 -2.34 -1.83 -3.41 -0.65 -1.07 -1.09 -2.03 -1.00 -2.13 0.32 -0.32 1.29 0.73 2.25 2.41 0.52 0.91 1.20 1.95 1.51 2.31 0.82 0.96 2.84 1.91 4.71 2.19 0.89 0.14 2.48 0.66 3.53 1.16 1.37 0.65 2.18 0.84 2.88 0.65 0.96 -0.26 1.47 -0.28 5.64 -0.21 1.19 0.02 2.72 0.02 3.42 -0.01 0.69 -0.03 2.17 0.07 3.29 0.22l2.02 0.27 2.47 -2.07c2.31 -1.94 3.70 -3.90 3.72 -5.25 0.02 -0.90 -1.07 -1.63 -3.41 -2.29 -2.45 -0.69 -4.27 -2.20 -4.88 -4.04 -0.24 -0.74 -0.97 -1.59 -1.89 -2.23 -0.82 -0.57 -1.89 -1.46 -2.36 -1.97 -0.47 -0.51 -1.69 -1.17 -2.71 -1.46 -1.83 -0.53 -3.09 -1.56 -4.34 -3.54 -0.37 -0.58 -1.71 -1.54 -3.19 -2.28 -3.88 -1.94 -6.88 -4.23 -7.84 -5.97 -0.63 -1.14 -1.21 -1.66 -2.34 -2.08 -1.98 -0.73 -3.27 -1.99 -3.71 -3.61 -0.19 -0.72 -0.68 -1.61 -1.07 -1.97 -0.84 -0.76 -0.93 -1.26 -0.21 -1.26 0.60 0.00 1.82 -1.43 3.15 -3.69 0.69 -1.18 1.26 -1.70 2.04 -1.87 1.23 -0.27 2.93 -2.26 2.93 -3.42 0.00 -1.52 -1.61 -3.84 -4.75 -6.83 -0.28 -0.26 -0.32 -0.37 -0.57 -0.61l-3.97 2.81 -0.42 2.75 -2.11 0.21 -2.54 -1.90 -1.06 -2.11 -1.06 -1.90 -1.27 -1.06 -4.23 -0.21 -2.33 -2.54 -3.80 -0.42 -4.02 1.48 -2.54 1.06 -0.42 1.06 -2.75 1.06 -2.75 1.90 -3.80 -0.84 -4.86 -0.42 -0.84 1.69 -2.54 1.90 -2.32 1.69 -1.90 3.80 -0.42 4.86 -1.27 0.84v0.00 3.17l3.38 2.54 0.63 1.90 -2.11 2.54c0.00 0.00 -0.42 0.74 -0.95 1.59 -0.53 0.85 -1.16 1.80 -1.58 2.22 -0.21 0.21 -0.37 0.51 -0.49 0.85 -0.12 0.34 -0.20 0.71 -0.25 1.05 -0.11 0.69 -0.11 1.27 -0.11 1.27l-3.38 4.65 -4.23 5.07 -3.59 1.69h-4.65 0.00l-2.75 1.69 -6.55 1.06 -5.28 -1.69 -5.28 -0.21 -5.28 -2.75 -4.65 -3.38 -2.96 -2.75 -2.96 -0.42 -2.96 -5.07z\"},\"path24\":{\"name\":\"Kalimantan Utara\",\"path\":\"m663.98 149.72 0.90 0.81 2.96 5.07 2.96 0.42 2.96 2.75 4.65 3.38 5.28 2.75 5.28 0.21 5.28 1.69 6.55 -1.06 2.75 -1.69h4.65 0.00l3.59 -1.69 4.23 -5.07 3.38 -4.65c0.00 0.00 0.00 -0.58 0.11 -1.27 0.05 -0.34 0.13 -0.71 0.25 -1.05 0.12 -0.34 0.28 -0.64 0.49 -0.85 0.42 -0.42 1.06 -1.37 1.58 -2.22 0.53 -0.85 0.95 -1.59 0.95 -1.59l2.11 -2.54 -0.63 -1.90 -3.38 -2.54v0.00 -3.17l1.27 -0.84 0.42 -4.86 1.90 -3.80 2.32 -1.69 2.54 -1.90 0.84 -1.69 4.86 0.42 3.80 0.84 2.75 -1.90 2.75 -1.06 0.42 -1.06 2.54 -1.06 4.02 -1.48 3.80 0.42 2.33 2.54 4.23 0.21 1.27 1.06 1.06 1.90 1.06 2.11 2.54 1.90 2.11 -0.21 0.42 -2.75 3.97 -2.81c-2.89 -2.82 -4.03 -4.33 -4.03 -5.63 0.00 -1.60 -2.15 -3.55 -4.82 -4.38 -0.65 -0.20 -0.65 -0.25 0.13 -1.07 0.93 -0.99 0.81 -1.37 -0.61 -1.96 -0.55 -0.23 -1.21 -0.89 -1.47 -1.48 -0.40 -0.91 -0.39 -1.18 0.10 -1.87 0.75 -1.07 0.72 -2.31 -0.06 -2.62 -0.35 -0.14 -1.48 -0.39 -2.51 -0.56 -1.28 -0.21 -2.42 -0.72 -3.57 -1.60 -0.93 -0.71 -2.06 -1.38 -2.52 -1.50 -0.46 -0.12 -0.84 -0.31 -0.84 -0.43 0.00 -0.12 0.59 -0.82 1.31 -1.56l1.31 -1.34 0.64 0.79 0.64 0.79 1.02 -0.76c1.28 -0.95 1.30 -1.72 0.07 -1.87 -0.79 -0.09 -0.98 -0.34 -1.16 -1.48 -0.26 -1.63 -0.71 -2.06 -2.59 -2.50l-1.41 -0.33 1.73 -0.03c3.15 -0.07 3.95 -1.09 1.99 -2.54 -1.26 -0.93 -5.41 -1.59 -6.51 -1.03 -0.62 0.32 -2.39 -0.59 -2.41 -1.24 -0.01 -0.25 3.24 -0.16 9.39 0.28 1.96 0.14 2.43 0.07 2.61 -0.40 0.12 -0.31 0.13 -0.72 0.02 -0.90 -0.36 -0.59 0.61 -0.34 1.54 0.39 0.71 0.56 1.46 0.72 3.38 0.72 2.33 0.00 2.55 -0.07 3.91 -1.30 0.79 -0.72 1.44 -1.45 1.44 -1.63 0.00 -0.18 -0.56 -0.66 -1.26 -1.07 -0.74 -0.43 -1.26 -1.03 -1.26 -1.43 0.00 -0.54 0.26 -0.68 1.26 -0.68 1.01 0.00 1.26 -0.14 1.26 -0.71 0.00 -0.42 -0.42 -0.93 -1.04 -1.25 -0.97 -0.50 -1.08 -0.49 -1.53 0.19 -0.48 0.71 -0.51 0.70 -1.66 -0.46 -0.64 -0.65 -2.18 -2.28 -3.40 -3.63 -1.23 -1.35 -2.84 -2.79 -3.59 -3.21 -0.75 -0.42 -1.36 -0.86 -1.36 -0.98 0.00 -0.12 0.61 -0.16 1.36 -0.08 1.07 0.10 1.57 -0.07 2.37 -0.81 0.83 -0.77 0.94 -1.04 0.58 -1.47 -0.25 -0.30 -1.05 -0.52 -1.83 -0.52 -1.06 0.00 -1.71 -0.28 -2.74 -1.18 -0.74 -0.65 -2.32 -1.81 -3.51 -2.59l-2.16 -1.41 -10.66 -0.05c-10.35 -0.05 -10.69 -0.07 -11.65 -0.83 -1.30 -1.02 -1.64 -0.99 -2.87 0.30 -1.30 1.36 -2.31 1.36 -4.17 0.02 -1.20 -0.87 -1.62 -1.00 -2.36 -0.72 -0.49 0.19 -1.74 0.34 -2.76 0.34 -1.49 0.00 -2.28 0.25 -3.95 1.26 -1.15 0.69 -2.21 1.26 -2.36 1.26 -0.15 0.00 -0.72 -0.47 -1.27 -1.04 -0.55 -0.57 -1.65 -1.33 -2.45 -1.69 -0.73 -0.33 -1.09 -0.49 -1.36 -0.47v0.00 0.00c-0.27 0.02 -0.44 0.23 -0.77 0.65 -0.37 0.46 -0.67 1.30 -0.67 1.87 0.00 0.87 -0.28 1.18 -1.71 1.93 -3.08 1.62 -3.70 2.36 -4.41 5.27 -0.36 1.46 -1.00 3.45 -1.44 4.42 -0.63 1.40 -0.75 2.15 -0.58 3.60 0.14 1.16 0.01 2.65 -0.35 4.09 -0.54 2.15 -0.53 2.82 0.07 6.80 0.18 1.22 0.01 2.04 -0.86 4.15 -0.60 1.44 -1.19 3.51 -1.31 4.59 -0.12 1.08 -0.41 3.14 -0.64 4.58 -0.41 2.57 -0.44 2.62 -1.70 2.95 -2.94 0.77 -3.19 0.78 -4.27 0.23 -1.33 -0.69 -1.89 -0.51 -2.69 0.85 -0.34 0.57 -1.16 1.38 -1.82 1.78 -0.66 0.41 -1.65 1.39 -2.20 2.17 -0.98 1.41 -0.98 1.45 -0.41 2.87 0.45 1.13 0.49 1.63 0.18 2.32 -0.58 1.28 -0.12 2.56 1.53 4.21 1.77 1.77 1.70 2.73 -0.29 3.96 -0.73 0.45 -1.83 1.26 -2.44 1.80 -0.61 0.54 -1.67 1.12 -2.36 1.30 -0.94 0.24 -1.40 0.65 -1.88 1.65 -0.44 0.92 -0.87 1.33 -1.39 1.33 -0.43 0.00 -1.48 0.72 -2.39 1.62 -1.61 1.61 -1.62 1.64 -1.42 3.58 0.40 3.87 -0.40 6.16 -5.17 14.76 -0.51 0.93 -0.82 1.70 -1.03 2.51z\"},\"path25\":{\"name\":\"Sulawesi Utara\",\"path\":\"m1063.85 53.66c-0.20 -0.00 -0.43 0.02 -0.69 0.07 -1.76 0.30 -2.03 0.62 -2.34 2.77 -0.57 3.98 -0.44 5.29 0.61 6.19 0.53 0.45 1.16 0.89 1.39 0.97 0.54 0.18 -0.18 1.65 -1.79 3.67 -0.61 0.77 -1.11 1.69 -1.11 2.05 0.00 0.36 -0.32 0.83 -0.72 1.04 -1.23 0.66 -1.22 1.86 0.05 4.82 0.82 1.90 1.36 2.72 1.74 2.65 0.87 -0.16 0.88 -2.52 0.03 -4.19 -0.96 -1.88 -0.94 -1.97 0.37 -1.71 0.61 0.12 1.42 0.06 1.80 -0.15 1.01 -0.54 2.10 -2.88 1.87 -4.05 -0.14 -0.76 0.11 -1.37 1.12 -2.67 1.60 -2.05 1.90 -3.12 1.29 -4.57 -0.26 -0.61 -0.48 -1.97 -0.51 -3.02 -0.03 -1.72 -0.16 -2.02 -1.30 -2.97 -0.78 -0.66 -1.22 -0.90 -1.83 -0.91zm-0.81 22.54c-0.57 -0.04 -0.71 0.38 -0.68 1.50 0.02 0.79 0.34 1.44 0.97 1.98 1.28 1.10 2.20 1.04 2.50 -0.15 0.29 -1.17 -0.68 -2.65 -2.08 -3.15 -0.29 -0.10 -0.53 -0.17 -0.72 -0.18zm-42.19 4.11c-0.16 0.01 -0.31 0.02 -0.46 0.05 -1.00 0.20 -1.11 0.35 -1.11 1.61 0.00 1.09 0.28 1.70 1.30 2.83 1.11 1.23 1.27 1.61 1.08 2.62 -0.20 1.05 -0.05 1.35 1.31 2.65 0.84 0.80 1.93 1.73 2.42 2.05 1.34 0.90 2.11 0.73 2.74 -0.58 0.55 -1.16 0.54 -1.22 -1.46 -5.11 -1.11 -2.17 -2.30 -4.24 -2.63 -4.62 -0.89 -0.98 -2.10 -1.54 -3.19 -1.51zm-1.37 30.48c-0.33 -0.03 -0.75 0.06 -1.25 0.26 -1.35 0.56 -1.59 1.23 -0.91 2.55 0.71 1.38 1.78 1.37 2.50 -0.01 0.86 -1.65 0.66 -2.72 -0.34 -2.81zm0.07 13.30c-0.75 -0.03 -1.70 0.66 -1.70 1.34 0.00 0.37 0.28 0.75 0.63 0.85 0.35 0.09 0.66 0.18 0.69 0.21 0.03 0.02 0.32 -0.06 0.63 -0.18 0.71 -0.27 0.75 -1.89 0.06 -2.16 -0.10 -0.04 -0.20 -0.06 -0.30 -0.06zm-13.69 20.79c-0.81 0.02 -5.49 4.86 -6.65 6.88 -0.64 1.12 -1.74 2.54 -2.43 3.15 -1.10 0.97 -1.44 1.08 -2.68 0.88 -1.19 -0.19 -1.62 -0.07 -2.67 0.73 -1.18 0.90 -2.06 2.75 -1.73 3.67 0.08 0.22 0.54 0.58 1.03 0.81 0.75 0.34 0.83 0.52 0.51 1.13 -0.32 0.61 -0.75 0.72 -2.70 0.72 -2.08 0.00 -2.44 0.11 -3.60 1.13 -0.71 0.62 -1.61 1.76 -2.01 2.53 -0.86 1.69 -3.67 3.58 -7.52 5.07 -1.48 0.57 -3.21 1.43 -3.84 1.91 -0.93 0.70 -1.57 0.86 -3.42 0.86 -1.25 -0.00 -3.24 -0.18 -4.43 -0.40 -1.19 -0.22 -2.99 -0.45 -4.01 -0.51 -1.02 -0.06 -2.94 -0.45 -4.26 -0.86 -1.33 -0.41 -3.04 -0.74 -3.80 -0.74 -0.35 0.00 -0.74 -0.21 -1.17 -0.32 -0.32 1.02 -0.56 1.89 -0.78 2.56 -0.29 0.88 -0.66 1.90 -0.94 2.95 -0.28 1.04 -0.48 2.10 -0.45 3.05 0.04 0.95 0.31 1.79 0.98 2.40 0.33 0.30 0.76 0.54 1.31 0.71 0.55 0.17 1.22 0.26 2.02 0.26 1.61 0.00 3.11 0.18 4.49 0.51 1.38 0.33 2.64 0.81 3.78 1.39 1.13 0.59 2.14 1.28 3.01 2.05 0.87 0.77 1.60 1.61 2.19 2.49 0.46 0.69 1.31 1.55 2.16 2.40 2.71 -0.44 5.97 -0.91 6.81 -1.22 0.69 -0.26 2.47 -0.54 3.96 -0.63 2.05 -0.13 3.35 -0.46 5.39 -1.39 4.91 -2.22 4.97 -2.26 6.26 -5.09 0.65 -1.43 1.67 -3.16 2.27 -3.85 0.60 -0.68 1.28 -1.84 1.51 -2.58 0.53 -1.61 3.72 -4.65 6.10 -5.78 2.34 -1.12 5.67 -5.89 7.28 -10.43 0.78 -2.20 1.56 -3.71 2.33 -4.48 1.24 -1.26 1.94 -1.49 1.94 -0.63 0.00 0.74 0.45 0.68 1.61 -0.24 1.14 -0.89 2.08 -2.87 1.76 -3.69 -0.27 -0.70 -0.64 -0.71 -1.20 -0.04 -0.70 0.84 -2.90 -1.83 -2.90 -3.51 0.00 -1.38 -0.70 -2.04 -2.17 -2.04 -0.43 0.00 -1.26 -0.40 -1.85 -0.90 -0.59 -0.49 -1.26 -0.90 -1.49 -0.89z\"},\"path26\":{\"name\":\"Sulawesi Tengah\",\"path\":\"m871.90 157.95c-0.94 -0.00 -1.77 0.09 -2.40 0.30 -1.42 0.47 -1.44 0.50 -1.68 2.63 -0.74 6.57 -0.20 5.47 -4.84 9.86 -0.99 0.93 -1.56 1.84 -1.73 2.71 -0.18 0.94 -0.50 1.41 -1.15 1.65 -1.22 0.46 -3.86 0.43 -4.93 -0.05 -0.89 -0.41 -2.04 -2.38 -2.04 -3.51 0.00 -0.35 -0.22 -0.94 -0.49 -1.31 -0.44 -0.60 -0.61 -0.62 -1.63 -0.20 -1.34 0.56 -2.19 1.64 -2.19 2.81 0.00 0.46 -0.31 1.44 -0.69 2.19 -0.67 1.31 -1.51 1.86 -4.45 2.92 -1.38 0.50 -2.09 2.29 -1.81 4.61 0.23 1.96 0.08 2.20 -2.75 4.35 -1.61 1.22 -2.88 3.38 -2.88 4.90 0.00 1.05 -0.20 1.40 -1.08 1.90 -1.45 0.83 -1.38 1.71 0.37 4.33l1.45 2.18 -0.47 1.91c-0.40 1.62 -0.60 1.92 -1.37 2.01 -0.63 0.07 -1.23 -0.23 -1.96 -0.99 -0.85 -0.89 -1.34 -1.10 -2.61 -1.10 -1.89 0.00 -2.25 0.60 -1.31 2.21 0.92 1.57 2.45 2.62 3.82 2.64 0.94 0.01 1.18 0.17 1.28 0.87 0.07 0.47 -0.16 1.48 -0.50 2.24 -0.45 1.00 -0.63 2.42 -0.66 5.25 -0.04 4.26 0.63 7.41 2.15 10.00 0.47 0.80 0.89 1.93 0.95 2.52 0.19 2.02 -0.62 1.33 -1.77 -1.49 -0.63 -1.56 -1.40 -2.99 -1.70 -3.18 -0.77 -0.50 -2.95 1.68 -3.25 3.24 -0.16 0.87 -0.70 1.55 -1.98 2.53 -0.53 0.40 -0.90 0.82 -1.27 1.25 0.10 1.26 0.11 1.51 0.28 3.33 0.36 3.85 0.84 8.34 1.32 10.91 0.48 2.57 1.36 5.46 2.33 8.54 0.96 3.09 2.01 6.38 2.81 9.75 0.32 1.33 0.52 2.32 0.78 3.51 0.33 -0.09 0.29 -0.09 0.63 -0.19 3.46 -0.96 7.43 -1.99 9.47 -2.21 2.04 -0.23 3.74 -1.02 5.45 -1.13 0.85 -0.06 1.70 0.06 2.59 0.50 0.89 0.44 1.83 1.21 2.85 2.45 2.04 2.50 4.42 5.56 6.98 8.11 1.28 1.28 2.60 2.43 3.94 3.31 1.34 0.89 2.70 1.51 4.06 1.74 2.72 0.45 6.69 1.25 10.44 2.38 1.87 0.57 3.69 1.22 5.26 1.96 1.57 0.74 2.91 1.56 3.81 2.47 0.91 0.91 2.13 1.70 3.40 2.43 1.28 0.73 2.61 1.40 3.74 2.05 1.13 0.65 2.07 1.29 2.55 1.96 0.24 0.34 0.37 0.68 0.35 1.04 -0.02 0.36 -0.18 0.74 -0.52 1.13 -0.68 0.79 -1.56 1.56 -2.50 2.26 -0.94 0.70 -1.93 1.34 -2.84 1.88 -1.69 1.00 -2.89 1.55 -3.07 1.64 0.07 0.01 0.68 0.12 0.68 0.12l4.99 -1.36c0.00 0.00 1.82 0.80 3.97 1.82 2.16 1.02 4.65 2.27 6.02 3.17 2.17 1.45 8.71 4.58 11.95 6.16 0.36 -0.69 1.16 -1.33 2.27 -1.66 1.27 -0.38 1.46 -0.57 1.46 -1.47 0.00 -1.68 -0.37 -2.20 -2.12 -2.95 -2.60 -1.11 -2.91 -1.53 -2.66 -3.56 0.25 -2.12 -0.44 -3.40 -2.02 -3.74 -0.69 -0.15 -1.32 -0.66 -1.79 -1.46 -0.43 -0.73 -1.28 -1.45 -2.09 -1.79 -1.82 -0.76 -2.96 -2.20 -2.97 -3.76 -0.01 -0.87 -0.64 -2.25 -2.08 -4.61 -1.14 -1.85 -2.55 -4.21 -3.15 -5.24 -1.07 -1.85 -4.30 -5.16 -5.82 -5.95 -0.43 -0.23 -1.19 -0.41 -1.68 -0.41 -1.21 0.00 -3.00 -1.58 -3.29 -2.90 -0.15 -0.70 -0.71 -1.40 -1.55 -1.96 -0.72 -0.48 -1.64 -1.36 -2.04 -1.96 -0.90 -1.36 -1.44 -1.57 -2.16 -0.85 -0.31 0.31 -0.61 0.51 -0.66 0.44 -0.79 -1.17 -1.24 -3.86 -0.73 -4.37 0.37 -0.37 2.70 1.01 4.98 2.95 2.44 2.08 3.63 2.29 6.22 1.12 1.46 -0.66 3.69 -3.41 3.69 -4.55 0.00 -1.39 6.18 -4.54 10.18 -5.19 1.63 -0.26 3.35 -0.82 4.43 -1.44 0.97 -0.56 2.51 -1.42 3.42 -1.92 1.04 -0.56 2.67 -2.09 4.32 -4.05 1.46 -1.73 3.55 -4.12 4.65 -5.32 3.21 -3.50 5.40 -6.36 6.38 -8.36 1.01 -2.06 1.10 -2.10 5.10 -2.47 1.48 -0.14 3.15 -0.48 3.70 -0.76 1.08 -0.55 1.70 -0.39 1.70 0.44 0.00 0.70 2.17 3.06 3.94 4.28 1.17 0.81 1.67 0.95 2.71 0.76 1.55 -0.29 2.21 -1.22 3.14 -4.44 0.93 -3.21 1.18 -6.18 0.66 -7.75 -0.35 -1.07 -0.86 -1.51 -3.16 -2.75 -3.55 -1.91 -6.32 -2.26 -9.16 -1.15 -1.05 0.41 -3.04 0.85 -4.43 0.97 -3.30 0.30 -4.96 0.75 -5.99 1.62 -0.80 0.67 -0.81 0.74 -0.21 1.21 0.35 0.27 1.61 0.69 2.79 0.92 1.18 0.23 2.15 0.56 2.15 0.73 0.00 0.17 -0.69 0.42 -1.53 0.55 -0.84 0.13 -2.11 0.41 -2.83 0.61 -1.03 0.29 -1.48 0.26 -2.16 -0.18 -1.22 -0.78 -15.71 -0.71 -16.66 0.08 -0.34 0.28 -1.11 1.47 -1.70 2.64 -0.88 1.74 -1.21 2.09 -1.80 1.94 -0.40 -0.10 -1.49 0.04 -2.44 0.32 -1.03 0.31 -3.13 0.49 -5.28 0.47l-3.57 -0.04 -2.01 -2.11c-1.11 -1.16 -2.22 -2.11 -2.46 -2.11 -0.40 0.00 -3.28 1.81 -4.72 2.97 -0.31 0.25 -1.07 1.20 -1.70 2.12 -0.63 0.92 -1.53 1.97 -2.00 2.34 -0.47 0.37 -1.37 1.43 -2.00 2.38 -0.63 0.94 -1.55 1.97 -2.03 2.29 -0.53 0.35 -1.08 1.25 -1.39 2.30 -0.66 2.22 -1.16 3.17 -2.30 4.39 -1.05 1.13 -1.62 1.21 -3.42 0.45 -0.73 -0.30 -1.74 -0.44 -2.34 -0.32 -0.78 0.16 -1.43 -0.04 -2.48 -0.73 -1.38 -0.91 -1.46 -0.93 -2.97 -0.40 -2.41 0.85 -3.12 0.73 -3.59 -0.61 -0.22 -0.64 -0.84 -1.62 -1.38 -2.18 -0.86 -0.90 -0.98 -1.32 -1.00 -3.46 -0.02 -1.87 -0.22 -2.75 -0.84 -3.75 -1.74 -2.82 -5.36 -4.89 -7.53 -4.32 -1.02 0.27 -1.95 -0.57 -4.73 -4.25 -2.39 -3.17 -3.00 -4.69 -3.61 -8.94 -0.24 -1.68 -0.76 -4.16 -1.16 -5.51 -0.72 -2.45 -0.73 -3.14 0.01 -7.08 0.17 -0.89 0.74 -2.25 1.26 -3.02 0.53 -0.77 0.96 -1.84 0.96 -2.38 0.00 -1.54 1.01 -4.02 2.13 -5.21 0.56 -0.59 1.44 -1.81 1.95 -2.70 1.62 -2.83 4.78 -5.59 7.57 -6.63 3.40 -1.27 5.60 -1.22 8.73 0.19 6.16 2.76 5.75 2.64 7.31 2.18 1.02 -0.31 1.65 -0.32 2.14 -0.06 1.01 0.54 2.06 0.46 4.70 -0.35 0.31 -0.10 0.99 -0.10 1.36 -0.19 -1.01 -2.06 -2.10 -4.29 -3.20 -6.12 -0.68 -1.13 -1.47 -2.13 -2.15 -3.00 -0.67 -0.87 -1.23 -1.63 -1.43 -2.28 -0.10 -0.33 -0.11 -0.63 -0.00 -0.91 0.11 -0.28 0.33 -0.54 0.70 -0.77 0.74 -0.48 2.08 -0.87 4.23 -1.21 2.16 -0.34 4.45 -0.51 6.77 -0.59 2.32 -0.08 4.66 -0.06 6.90 -0.04 4.48 0.06 8.57 0.17 11.29 -0.28 2.72 -0.45 5.44 -0.34 7.32 -0.74 0.94 -0.20 1.66 -0.52 2.06 -1.11 0.20 -0.29 0.32 -0.66 0.35 -1.10 0.03 -0.44 -0.03 -0.97 -0.20 -1.59 -0.03 -0.10 -0.05 -0.21 -0.08 -0.31 -0.22 -0.04 -0.57 -0.04 -0.75 -0.08 -2.74 -0.65 -3.91 -0.73 -5.34 -0.41 -0.95 0.22 -1.17 0.12 -1.61 -0.70 -0.50 -0.93 -0.57 -0.94 -3.04 -0.72 -1.39 0.13 -3.48 0.40 -4.65 0.60 -4.95 0.86 -7.77 -0.60 -8.56 -4.43 -0.25 -1.19 -0.67 -2.25 -0.95 -2.36 -0.27 -0.11 -1.00 0.10 -1.61 0.47 -1.79 1.06 -4.13 0.91 -6.25 -0.41 -2.08 -1.29 -5.86 -2.17 -8.67 -2.17zm23.22 48.95c-0.14 -0.03 -0.34 0.04 -0.62 0.19 -0.40 0.21 -0.72 0.64 -0.72 0.94 0.00 0.41 0.21 0.49 0.81 0.30 1.07 -0.33 1.12 -0.39 0.86 -1.06 -0.09 -0.23 -0.18 -0.35 -0.32 -0.37zm20.85 2.37c-0.38 0.01 -0.67 0.13 -0.81 0.37 -0.13 0.21 0.63 1.18 1.69 2.14 1.06 0.96 2.09 1.71 2.29 1.65 0.20 -0.06 0.36 -0.65 0.36 -1.32 0.00 -0.98 -0.24 -1.37 -1.22 -2.04 -0.81 -0.55 -1.67 -0.83 -2.29 -0.81zm-6.42 1.97 -0.63 0.84c-0.60 0.79 -0.72 0.81 -2.15 0.38 -1.31 -0.39 -1.69 -0.37 -2.81 0.16 -1.23 0.59 -1.28 0.68 -1.10 2.07 0.17 1.26 0.11 1.41 -0.41 1.18 -0.33 -0.15 -1.33 -0.33 -2.22 -0.40 -1.44 -0.12 -1.77 0.01 -2.97 1.12 -1.05 0.97 -1.35 1.53 -1.35 2.47 0.00 0.67 0.11 1.32 0.24 1.46 0.38 0.38 0.68 0.29 1.75 -0.55 0.66 -0.52 1.81 -0.89 3.33 -1.07 2.76 -0.33 3.47 -0.77 2.92 -1.81 -0.35 -0.66 -0.30 -0.70 0.70 -0.48 1.12 0.25 4.02 -0.91 4.02 -1.60 0.00 -0.18 0.57 -0.44 1.26 -0.57 1.54 -0.29 1.65 -1.10 0.34 -2.34l-0.92 -0.87zM945.61 239.96c-0.29 0.01 -0.61 0.08 -0.99 0.19 -0.61 0.17 -1.51 0.24 -1.99 0.15 -1.01 -0.19 -6.36 0.84 -6.97 1.34 -0.72 0.60 -2.28 3.75 -2.66 5.40 -0.34 1.44 -0.26 1.91 0.78 4.61l1.15 3.00 1.34 -0.18c1.71 -0.23 3.95 -2.08 5.14 -4.25 0.50 -0.91 1.17 -1.88 1.49 -2.15 0.50 -0.42 0.70 -0.35 1.44 0.51 1.15 1.33 1.08 2.48 -0.22 3.96 -0.59 0.68 -1.08 1.40 -1.08 1.62 0.00 0.58 2.99 2.22 4.06 2.22 0.99 0.00 1.19 -0.50 1.42 -3.59 0.14 -1.84 1.44 -2.21 3.29 -0.96l1.37 0.93 1.40 -0.72c1.48 -0.76 1.72 -0.61 0.85 0.54 -1.14 1.50 -0.48 4.85 1.21 6.22 0.31 0.25 0.99 0.45 1.52 0.45 1.98 0.00 2.78 -2.76 1.31 -4.52 -0.49 -0.58 -1.14 -1.67 -1.45 -2.41 -0.31 -0.74 -0.81 -1.34 -1.12 -1.34 -0.72 0.00 -0.70 -0.22 0.11 -1.38 0.37 -0.53 0.87 -1.57 1.11 -2.33 0.53 -1.62 0.15 -2.21 -2.48 -3.90 -2.24 -1.43 -2.94 -1.33 -5.14 0.79 -1.65 1.59 -1.99 1.77 -2.69 1.45 -0.80 -0.36 -0.80 -0.39 -0.20 -1.65 0.58 -1.22 0.58 -1.34 -0.05 -2.52 -0.58 -1.08 -1.09 -1.51 -1.95 -1.48zm6.14 17.49c-0.89 0.00 -1.51 0.70 -1.51 1.69 0.00 0.97 0.58 1.06 1.50 0.23 0.85 -0.77 0.86 -1.92 0.01 -1.92zm-8.69 2.52c-0.86 0.00 -1.78 2.31 -1.55 3.87 0.11 0.71 0.38 1.17 0.71 1.17 0.79 0.00 2.55 -1.36 2.81 -2.17 0.29 -0.90 -1.06 -2.87 -1.97 -2.87zm22.55 4.11c-0.10 -0.02 -0.18 -0.03 -0.23 0.01 -0.52 0.32 -0.50 2.11 0.04 2.64 0.71 0.71 2.44 0.40 2.44 -0.44 0.00 -0.58 -1.57 -2.04 -2.25 -2.22z\"},\"path27\":{\"name\":\"Sulawesi Selatan\",\"path\":\"m850.05 262.62c-0.21 -0.01 -0.43 -0.01 -0.64 0.01 -1.70 0.11 -3.40 0.91 -5.45 1.13 -2.04 0.23 -6.01 1.25 -9.47 2.21 -0.34 0.09 -0.30 0.09 -0.63 0.19 0.40 1.83 0.83 3.79 1.19 5.39 0.60 2.65 1.25 5.06 2.21 7.46 0.48 1.20 0.78 2.45 0.96 3.69 0.18 1.24 0.24 2.49 0.24 3.69 0.00 2.41 -0.24 4.66 -0.24 6.42 0.00 0.88 -0.14 1.46 -0.35 1.84 -0.21 0.38 -0.49 0.55 -0.77 0.61 -0.56 0.12 -1.12 -0.20 -1.12 -0.20l-11.55 0.32v0.00 8.02c0.00 1.44 0.16 3.13 -0.08 4.77 -0.12 0.82 -0.34 1.64 -0.73 2.40 -0.39 0.77 -0.95 1.49 -1.75 2.13 -0.76 0.61 -1.91 2.22 -2.93 3.43 1.49 -0.21 3.05 0.41 5.05 2.02l0.87 0.70 -0.96 2.22c-0.53 1.22 -0.96 2.43 -0.96 2.69 0.00 0.26 1.20 2.76 2.68 5.56 2.80 5.33 2.82 5.39 2.70 10.29 -0.07 2.81 -0.06 3.61 0.04 4.50 0.05 0.49 -0.09 2.46 -0.32 4.36 -0.32 2.71 -0.71 4.08 -1.77 6.29 -1.30 2.72 -1.35 2.97 -1.26 6.18 0.08 3.12 0.01 3.50 -0.99 5.39 -0.59 1.12 -1.08 2.22 -1.08 2.44 -0.00 0.22 -0.51 1.09 -1.12 1.94 -0.88 1.22 -1.20 2.12 -1.47 4.28 -0.45 3.52 -0.24 4.97 1.07 7.50 0.58 1.13 1.17 2.51 1.30 3.05 0.20 0.84 0.42 0.99 1.47 0.99 0.96 0.00 1.40 0.24 2.01 1.10 0.43 0.61 0.97 1.03 1.19 0.95 1.73 -0.65 2.00 -0.61 3.17 0.42 0.66 0.58 1.60 1.13 2.10 1.22 0.49 0.09 1.12 0.19 1.39 0.22 0.27 0.03 1.51 -1.03 2.74 -2.35l2.24 -2.40 2.52 0.45c2.75 0.49 4.61 0.30 6.58 -0.70 0.70 -0.35 1.84 -0.74 2.52 -0.87 1.04 -0.20 1.39 -0.09 2.10 0.68 0.95 1.01 3.03 1.84 3.66 1.46 0.87 -0.54 -0.71 -5.81 -3.27 -10.94l-2.19 -4.39 0.54 -2.22c0.30 -1.22 0.65 -3.32 0.79 -4.67 0.21 -2.12 0.38 -2.53 1.19 -3.05 1.19 -0.75 1.47 -1.15 1.48 -2.06 0.00 -0.40 0.33 -1.33 0.73 -2.07 0.88 -1.65 0.88 -1.79 0.04 -4.03 -1.07 -2.83 -1.46 -5.59 -1.06 -7.48 0.23 -1.09 0.23 -2.10 -0.01 -2.95 -0.20 -0.71 -0.27 -1.84 -0.16 -2.51 0.12 -0.73 -0.05 -1.86 -0.42 -2.84 -1.03 -2.68 -0.65 -6.27 1.00 -9.59 1.51 -3.04 1.57 -3.63 0.76 -7.08 -0.43 -1.83 -0.54 -3.66 -0.42 -7.23l0.16 -4.78 -1.17 -1.02c-0.64 -0.56 -1.66 -1.32 -2.28 -1.68 -0.72 -0.43 -1.11 -0.94 -1.11 -1.47 0.00 -0.45 -0.26 -1.47 -0.58 -2.27 -1.00 -2.51 -0.50 -3.17 5.07 -6.66 1.19 -0.74 3.05 -2.08 4.14 -2.97 2.41 -1.97 5.87 -3.67 7.48 -3.67 0.65 -0.00 2.56 0.35 4.25 0.77 3.63 0.91 4.29 1.59 4.17 4.28 -0.04 0.94 0.17 2.28 0.46 2.99 0.03 0.06 0.02 0.11 0.04 0.17 0.05 0.12 0.04 0.24 0.07 0.35 2.14 0.30 3.84 0.60 4.64 0.60 0.62 0.00 1.86 0.26 3.32 0.55 1.21 0.38 2.47 0.67 3.54 0.87 1.53 0.28 2.67 0.40 2.67 0.40 0.00 0.00 1.47 -0.68 3.29 -1.76 0.91 -0.54 1.90 -1.18 2.84 -1.88 0.94 -0.70 1.82 -1.47 2.50 -2.26 0.34 -0.40 0.50 -0.77 0.52 -1.13 0.02 -0.36 -0.11 -0.71 -0.35 -1.04 -0.48 -0.67 -1.42 -1.31 -2.55 -1.96 -1.13 -0.65 -2.47 -1.32 -3.74 -2.05 -1.28 -0.73 -2.50 -1.53 -3.40 -2.43 -0.91 -0.91 -2.24 -1.73 -3.81 -2.47 -1.57 -0.74 -3.39 -1.39 -5.26 -1.96 -3.74 -1.13 -7.72 -1.93 -10.44 -2.38 -1.36 -0.23 -2.72 -0.85 -4.06 -1.74 -1.34 -0.89 -2.66 -2.04 -3.94 -3.31 -2.55 -2.55 -4.94 -5.61 -6.98 -8.11 -1.02 -1.25 -1.96 -2.01 -2.85 -2.45 -0.67 -0.33 -1.32 -0.48 -1.96 -0.51zm7.29 129.75c-1.44 -0.17 -1.67 0.87 -1.85 8.44 -0.13 5.49 -0.07 6.90 0.40 8.07 0.36 0.89 0.48 1.86 0.33 2.63 -0.13 0.69 -0.04 1.63 0.20 2.16 0.54 1.18 1.75 1.27 1.75 0.13 0.00 -0.45 0.25 -1.62 0.55 -2.61 0.51 -1.67 1.03 -5.17 1.47 -9.89 0.14 -1.53 -0.05 -2.76 -0.85 -5.39 -0.95 -3.14 -1.11 -3.42 -2.00 -3.53zm5.73 40.57c-0.62 0.00 -1.31 1.05 -1.31 1.99 0.00 0.33 0.34 1.07 0.74 1.64 0.41 0.57 0.96 1.04 1.23 1.04 0.58 0.00 1.98 -1.86 1.98 -2.64 0.00 -0.64 -1.82 -2.04 -2.65 -2.04z\"},\"path28\":{\"name\":\"Sulawesi Tenggara\",\"path\":\"m876.08 297.65c0.26 0.81 0.28 1.45 -0.13 3.37 -0.30 1.44 -0.45 3.04 -0.34 3.57 0.31 1.39 -0.64 3.34 -2.72 5.62 -2.51 2.75 -3.70 5.17 -3.40 6.92 0.20 1.17 0.94 2.02 5.25 6.09 3.36 3.17 5.37 4.80 6.09 4.95 0.93 0.19 1.07 0.37 1.07 1.39 0.00 1.19 0.47 1.61 1.78 1.61 0.36 0.00 1.07 0.56 1.59 1.23 0.95 1.25 1.39 1.44 5.74 2.55 1.87 0.48 2.55 0.83 2.84 1.46 0.58 1.26 -0.25 4.00 -1.70 5.60 -1.10 1.21 -1.21 1.55 -1.19 3.43 0.01 1.20 -0.32 3.20 -0.78 4.71 -0.52 1.69 -0.72 3.04 -0.58 3.80 0.37 1.98 2.17 4.43 3.88 5.29 0.85 0.43 1.92 1.12 2.38 1.55 0.66 0.60 1.32 0.78 3.06 0.80 1.22 0.02 3.27 0.23 4.56 0.48 2.41 0.46 4.34 0.34 5.92 -0.39 1.05 -0.48 1.13 -1.13 0.37 -2.94 -0.74 -1.78 -0.68 -3.56 0.21 -5.61 0.71 -1.65 0.87 -1.78 3.32 -2.68 1.42 -0.52 2.94 -0.94 3.38 -0.94 0.44 0.00 1.46 -0.26 2.26 -0.58 0.97 -0.39 1.93 -0.51 2.89 -0.35 0.97 0.15 1.77 0.05 2.49 -0.32 1.72 -0.89 3.08 -0.70 3.97 0.53 0.42 0.59 1.10 1.08 1.50 1.08 0.99 0.00 2.82 -1.35 2.82 -2.07 0.00 -0.46 0.10 -0.49 0.43 -0.16 0.67 0.67 1.57 0.51 2.78 -0.50 1.10 -0.93 1.11 -0.95 1.11 -4.55 0.00 -3.01 -0.13 -3.88 -0.80 -5.21 -0.91 -1.83 -1.76 -2.41 -3.04 -2.10 -0.71 0.18 -0.87 0.41 -0.78 1.20 0.12 1.04 -0.25 1.12 -2.09 0.42 -0.66 -0.25 -0.85 -0.59 -0.85 -1.53 0.00 -0.82 -0.29 -1.47 -0.90 -2.05l-0.90 -0.85 0.76 -0.81c0.42 -0.44 0.67 -0.96 0.55 -1.15 -0.12 -0.19 -1.19 -0.71 -2.39 -1.16 -1.78 -0.67 -2.31 -1.06 -2.85 -2.12 -0.79 -1.54 -1.67 -2.38 -2.90 -2.73 -1.72 -0.50 -5.41 -2.75 -6.01 -3.66 -0.59 -0.90 -0.58 -0.94 0.53 -1.87 1.31 -1.09 2.01 -2.71 1.71 -3.91 -0.18 -0.73 -0.10 -0.81 0.65 -0.62 1.13 0.28 2.18 -0.70 1.70 -1.60 -0.19 -0.35 -0.59 -0.84 -0.90 -1.10 -0.63 -0.52 -0.69 -1.24 -0.34 -1.91 -3.24 -1.58 -9.78 -4.71 -11.95 -6.16 -1.36 -0.91 -3.86 -2.15 -6.02 -3.17 -2.16 -1.02 -3.97 -1.82 -3.97 -1.82l-4.99 1.36c0.00 0.00 -0.61 -0.11 -0.68 -0.12 -0.01 0.01 -0.22 0.12 -0.22 0.12 0.00 0.00 -1.14 -0.11 -2.67 -0.40 -0.64 -0.12 -1.37 -0.41 -2.09 -0.59 -2.20 -0.41 -3.94 -0.83 -4.77 -0.83 -0.81 0.00 -2.50 -0.30 -4.64 -0.60zm44.64 16.26c-0.69 0.00 -0.78 1.11 -0.14 1.81 0.77 0.85 1.25 0.91 1.25 0.14 0.00 -0.77 -0.67 -1.95 -1.10 -1.95zm23.02 5.39c-0.21 0.00 -0.28 0.16 -0.16 0.36 0.12 0.20 0.29 0.36 0.38 0.36 0.09 0.00 0.16 -0.16 0.16 -0.36 0.00 -0.20 -0.17 -0.36 -0.38 -0.36zm-2.48 13.40c-0.75 0.05 -1.47 0.43 -2.26 1.17 -1.86 1.74 -0.95 4.79 2.13 7.10 1.49 1.12 2.15 1.20 3.83 0.50 0.85 -0.36 1.48 -1.08 2.33 -2.66 1.40 -2.62 1.42 -3.09 0.22 -4.67 -0.87 -1.14 -1.04 -1.21 -2.36 -0.99 -0.85 0.14 -1.84 0.07 -2.47 -0.19 -0.49 -0.20 -0.96 -0.29 -1.41 -0.26zm-0.36 13.92c-0.82 0.05 -1.78 0.35 -2.51 0.89 -2.60 1.92 -3.98 5.05 -4.14 9.37 -0.06 1.58 -0.29 3.32 -0.50 3.87 -0.22 0.54 -0.30 1.45 -0.19 2.02 0.11 0.57 0.01 1.40 -0.23 1.85 -0.24 0.45 -0.57 1.80 -0.74 3.01 -0.45 3.19 -1.26 5.83 -2.35 7.70l-0.96 1.64 -0.49 -1.78c-0.93 -3.40 -0.95 -3.93 -0.19 -5.40 0.40 -0.77 1.15 -1.80 1.66 -2.29 0.52 -0.48 1.34 -1.56 1.84 -2.41 0.79 -1.35 0.86 -1.71 0.54 -3.08 -0.19 -0.85 -0.50 -2.60 -0.69 -3.89 -0.19 -1.29 -0.52 -2.80 -0.74 -3.37 -0.37 -0.96 -0.51 -1.02 -1.89 -0.84 -0.82 0.11 -1.91 0.54 -2.42 0.95 -1.36 1.09 -4.33 2.48 -5.83 2.71 -0.99 0.15 -1.54 0.54 -2.25 1.57 -1.13 1.63 -1.18 2.83 -0.22 5.55 0.91 2.60 0.90 3.06 -0.11 4.59 -0.46 0.69 -1.28 2.95 -1.83 5.02l-1.00 3.77 0.95 0.81c1.13 0.97 2.53 1.06 2.87 0.19 0.23 -0.59 0.27 -0.59 0.62 0.04 0.31 0.55 0.64 0.62 1.89 0.44 1.38 -0.21 1.56 -0.14 1.93 0.68 0.63 1.38 1.66 1.14 2.99 -0.70 0.64 -0.89 1.20 -1.57 1.26 -1.52 0.05 0.05 0.01 0.78 -0.11 1.62 -0.16 1.19 -0.44 1.67 -1.24 2.14 -0.57 0.33 -1.05 0.86 -1.07 1.16 -0.09 1.27 0.14 2.44 0.76 3.86 0.58 1.34 0.81 1.52 2.04 1.65 4.54 0.47 6.30 0.04 7.66 -1.88 0.79 -1.10 0.83 -2.01 0.20 -3.65 -0.34 -0.87 1.19 -1.68 3.99 -2.13 2.99 -0.48 4.86 -1.48 6.11 -3.29 0.81 -1.17 0.88 -1.46 0.47 -1.95 -1.01 -1.21 -4.96 -3.75 -5.84 -3.75 -0.51 0.00 -1.02 -0.16 -1.15 -0.36 -0.12 -0.20 -0.23 -1.70 -0.25 -3.33 -0.03 -3.22 0.71 -5.69 2.48 -8.27 1.09 -1.59 1.37 -1.64 2.48 -0.45 1.73 1.86 2.48 0.60 2.12 -3.55 -0.29 -3.41 -0.88 -4.87 -2.70 -6.66 -0.73 -0.72 -1.42 -1.58 -1.54 -1.93 -0.17 -0.49 -0.85 -0.69 -1.67 -0.64zm-34.85 22.56c-0.25 -0.01 -0.57 0.01 -0.99 0.03 -3.19 0.17 -3.19 0.17 -4.05 3.15l-0.79 2.72 1.09 2.24c1.25 2.56 1.49 2.89 3.35 4.48 1.58 1.36 1.38 1.31 2.95 0.66 1.37 -0.57 1.44 -0.82 1.79 -5.75 0.19 -2.70 0.15 -2.91 -0.79 -4.12 -0.54 -0.70 -1.17 -1.77 -1.39 -2.37 -0.28 -0.78 -0.42 -1.00 -1.17 -1.03zm52.29 5.51c-0.19 0.01 -0.39 0.03 -0.60 0.06 -0.74 0.10 -0.84 0.31 -0.82 1.63 0.02 0.83 0.24 1.76 0.49 2.07 0.57 0.69 2.17 0.73 3.07 0.06 0.61 -0.45 0.63 -0.64 0.23 -1.97 -0.41 -1.36 -1.07 -1.89 -2.38 -1.84zm5.36 7.55c-0.48 0.00 -0.88 0.09 -0.88 0.20 0.00 0.46 0.86 1.84 1.74 2.78 1.20 1.28 2.07 1.15 1.93 -0.29 -0.12 -1.28 -1.58 -2.68 -2.80 -2.68zm8.41 13.31c-0.50 0.00 -0.65 0.28 -0.65 1.19 0.00 0.65 0.20 1.38 0.43 1.62 0.62 0.62 2.43 0.54 2.68 -0.13 0.27 -0.70 -1.55 -2.68 -2.46 -2.68z\"},\"path29\":{\"name\":\"Gorontalo\",\"path\":\"m968.24 192.29c-0.85 -0.85 -1.69 -1.71 -2.16 -2.40 -0.59 -0.88 -1.32 -1.72 -2.19 -2.49 -0.87 -0.77 -1.87 -1.46 -3.01 -2.05 -1.13 -0.59 -2.40 -1.06 -3.78 -1.39 -1.38 -0.33 -2.88 -0.51 -4.49 -0.51 -0.80 0.00 -1.47 -0.09 -2.02 -0.26 -0.55 -0.17 -0.98 -0.41 -1.31 -0.71 -0.67 -0.60 -0.94 -1.44 -0.98 -2.40 -0.04 -0.95 0.16 -2.01 0.45 -3.05 0.28 -1.04 0.65 -2.07 0.94 -2.95 0.22 -0.67 0.46 -1.54 0.78 -2.56 -0.50 -0.13 -1.03 -0.17 -1.37 -0.37 -1.13 -0.69 -1.16 -0.69 -2.51 0.00 -1.66 0.85 -1.91 0.85 -4.21 0.11 -2.23 -0.72 -3.38 -0.36 -5.73 1.80 -1.50 1.38 -1.58 1.40 -2.94 1.00 -0.77 -0.23 -2.26 -1.07 -3.30 -1.85 -1.05 -0.79 -2.48 -1.52 -3.17 -1.63 -0.70 -0.11 -2.51 -0.59 -4.01 -1.08 -1.95 -0.63 -3.56 -0.89 -5.57 -0.89 -1.33 -0.00 -3.04 -0.22 -4.32 -0.45 0.03 0.10 0.05 0.21 0.08 0.31 0.17 0.62 0.23 1.15 0.20 1.59 -0.03 0.44 -0.15 0.80 -0.35 1.10 -0.40 0.59 -1.13 0.91 -2.06 1.11 -1.87 0.40 -4.59 0.28 -7.32 0.74 -2.72 0.45 -6.81 0.34 -11.29 0.28 -2.24 -0.03 -4.58 -0.04 -6.90 0.04 -2.32 0.08 -4.62 0.25 -6.77 0.59 -2.16 0.34 -3.49 0.74 -4.23 1.21 -0.37 0.24 -0.60 0.49 -0.70 0.77 -0.11 0.28 -0.10 0.58 0.00 0.91 0.20 0.65 0.75 1.41 1.43 2.28 0.67 0.87 1.47 1.86 2.15 3.00 1.10 1.83 2.19 4.06 3.20 6.12 1.45 -0.32 3.03 -0.62 5.26 -0.72 3.45 -0.15 4.55 -0.33 5.63 -0.94 1.09 -0.61 1.77 -0.72 3.58 -0.59 1.99 0.14 2.35 0.29 3.18 1.31 1.53 1.86 2.92 2.04 7.74 0.96 2.27 -0.51 4.51 -0.83 4.97 -0.71 0.46 0.12 2.53 -0.04 4.58 -0.35 4.29 -0.64 6.39 -0.69 8.87 -0.23 1.04 0.20 5.01 0.21 9.67 0.04l7.91 -0.29 2.62 2.65c3.75 3.80 3.83 3.83 10.86 3.92 3.27 0.04 7.15 -0.07 8.64 -0.25 1.65 -0.20 2.40 -0.45 3.98 -0.71z\"},\"path30\":{\"name\":\"Sulawesi Barat\",\"path\":\"m818.92 316.14c1.02 -1.21 2.17 -2.82 2.93 -3.43 0.80 -0.64 1.36 -1.36 1.75 -2.13 0.39 -0.77 0.61 -1.58 0.73 -2.40 0.24 -1.64 0.08 -3.33 0.08 -4.77v0.00 -8.02l11.55 -0.32c0.00 0.00 0.56 0.32 1.12 0.20 0.28 -0.06 0.56 -0.23 0.77 -0.61 0.21 -0.38 0.35 -0.96 0.35 -1.84 0.00 -1.76 0.24 -4.01 0.24 -6.42 0.00 -1.20 -0.06 -2.45 -0.24 -3.69 -0.18 -1.24 -0.48 -2.49 -0.96 -3.69 -0.96 -2.41 -1.61 -4.81 -2.21 -7.46 -0.60 -2.65 -1.16 -5.53 -1.96 -8.90 -0.80 -3.37 -1.84 -6.66 -2.81 -9.75 -0.96 -3.09 -1.85 -5.98 -2.33 -8.54 -0.48 -2.57 -0.96 -7.06 -1.32 -10.91 -0.17 -1.81 -0.18 -2.07 -0.28 -3.33 -0.61 0.70 -1.15 1.51 -1.77 2.84 -0.71 1.52 -1.29 3.11 -1.29 3.54 0.00 0.44 -0.78 1.66 -1.78 2.76 -0.98 1.08 -2.01 2.42 -2.29 2.97 -0.60 1.18 -1.09 4.58 -1.03 7.12 0.20 9.19 0.28 10.07 1.07 11.59 1.36 2.59 1.13 3.37 -1.56 5.48 -1.29 1.02 -2.49 2.21 -2.66 2.64 -2.59 6.67 -2.96 8.38 -2.38 10.97 0.35 1.56 -0.26 3.00 -1.63 3.80 -0.59 0.35 -1.47 1.26 -1.96 2.03 -0.95 1.50 -2.11 2.25 -4.13 2.68 -4.00 0.85 -5.27 3.02 -3.63 6.22 0.38 0.73 1.11 1.73 1.62 2.21 1.26 1.17 1.18 2.12 -0.35 4.12 -1.77 2.32 -1.94 3.71 -0.70 5.82 0.68 1.16 1.04 2.36 1.15 3.88 0.16 2.02 1.52 6.33 2.30 7.27 0.18 0.21 0.93 0.59 1.69 0.84 1.25 0.41 1.52 0.37 3.12 -0.48 1.28 -0.68 2.29 -0.93 3.77 -0.93 1.38 -0.00 2.39 -0.23 3.19 -0.72 0.62 -0.38 1.22 -0.56 1.84 -0.65z\"},\"path31\":{\"name\":\"Maluku\",\"path\":\"m1151.49 293.43c-1.42 -0.03 -2.12 0.39 -3.21 1.40 -1.46 1.34 -6.38 3.62 -7.83 3.62 -0.62 0.00 -1.19 -1.13 -1.59 -3.18 -0.28 -1.40 -0.66 -1.40 -4.24 -0.08 -2.04 0.75 -2.30 0.76 -8.83 0.37 -4.87 -0.29 -7.31 -0.30 -8.84 -0.01 -1.16 0.21 -3.15 0.39 -4.42 0.39 -2.04 0.00 -2.48 0.13 -3.70 1.10 -0.91 0.72 -1.54 1.61 -1.83 2.55 -0.54 1.79 -2.12 3.54 -3.20 3.54 -0.45 0.00 -1.35 0.41 -2.01 0.92 -0.66 0.50 -1.77 1.16 -2.46 1.44 -1.61 0.67 -1.60 1.32 0.04 4.08 1.17 1.96 1.27 2.34 1.06 3.89 -0.44 3.12 -0.38 4.79 0.16 5.13 0.76 0.47 0.99 0.18 1.68 -2.01 0.34 -1.09 1.19 -2.64 1.88 -3.44 0.96 -1.13 1.36 -2.03 1.72 -3.94 0.52 -2.74 1.33 -4.27 2.25 -4.27 0.84 0.00 1.47 0.71 1.47 1.65 0.00 0.91 0.53 1.40 1.85 1.72 0.67 0.16 1.28 0.80 2.04 2.15 0.60 1.06 1.87 2.78 2.83 3.82 1.64 1.79 1.84 1.90 3.54 1.92 2.28 0.03 4.54 -1.06 7.29 -3.54 2.52 -2.27 5.06 -4.12 5.66 -4.12 0.25 0.00 0.80 0.28 1.23 0.63 0.68 0.55 0.73 0.77 0.39 1.66 -0.60 1.57 0.01 2.02 2.69 2.02 1.77 0.00 2.76 0.23 4.54 1.08 1.87 0.89 2.74 1.08 4.87 1.08 1.97 0.00 2.89 0.18 3.84 0.74 0.83 0.49 1.73 0.70 2.63 0.63 1.34 -0.11 1.37 -0.15 1.48 -1.67 0.06 -0.86 -0.08 -1.79 -0.32 -2.08 -0.87 -1.05 -0.43 -1.10 6.14 -0.69 5.10 0.31 6.23 0.83 7.55 3.41 0.60 1.17 1.22 1.63 4.04 3.01 1.83 0.90 4.03 1.81 4.87 2.03 2.49 0.65 8.03 3.38 9.97 4.92 2.32 1.84 2.28 1.82 5.12 2.84v0.00 0.00c2.47 0.89 4.29 0.92 4.83 0.06 0.16 -0.24 0.29 -1.37 0.29 -2.50 0.00 -1.17 0.26 -2.60 0.61 -3.32 0.56 -1.17 0.56 -1.39 0.01 -3.16 -0.33 -1.04 -0.68 -2.34 -0.79 -2.89 -0.28 -1.39 -2.69 -2.95 -4.12 -2.67 -1.39 0.28 -2.17 -0.77 -2.17 -2.91 0.00 -2.57 -2.39 -6.29 -4.82 -7.52 -0.61 -0.31 -1.70 -1.12 -2.42 -1.81 -1.72 -1.64 -2.93 -1.86 -8.06 -1.48 -2.37 0.18 -4.78 0.25 -5.38 0.16 -0.59 -0.09 -2.41 -0.92 -4.04 -1.83 -4.11 -2.32 -7.74 -3.80 -10.71 -4.36 -1.60 -0.30 -2.71 -0.48 -3.56 -0.49zm-49.84 4.66c-0.39 0.01 -0.85 0.27 -1.36 0.81 -0.84 0.90 -1.36 2.54 -1.00 3.13 0.34 0.56 0.86 0.47 2.22 -0.37 0.82 -0.50 1.21 -1.02 1.21 -1.59 0.00 -1.30 -0.43 -1.99 -1.07 -1.98zm-41.72 4.50c-8.05 0.02 -9.93 0.26 -13.27 1.70l-3.02 1.30 -1.21 -0.93 -1.22 -0.92 -1.40 0.97c-1.61 1.12 -1.82 1.67 -1.83 4.90 -0.01 3.14 1.08 5.27 4.58 8.99 2.99 3.18 7.34 6.03 11.78 7.73 1.38 0.53 3.17 1.26 3.96 1.63 1.60 0.75 2.14 0.72 6.82 -0.39 1.98 -0.47 3.69 -1.11 4.42 -1.67 1.77 -1.35 5.65 -3.01 7.05 -3.01 0.67 0.00 1.39 -0.20 1.60 -0.45 0.49 -0.59 1.08 -3.18 1.26 -5.62 0.14 -1.81 0.07 -2.03 -1.14 -3.36 -1.16 -1.28 -1.42 -1.41 -2.63 -1.24 -1.04 0.14 -1.48 0.02 -1.99 -0.55 -0.41 -0.46 -0.50 -0.79 -0.25 -0.88 0.22 -0.08 0.68 -0.35 1.02 -0.60 0.57 -0.42 0.58 -0.57 0.10 -1.73 -0.68 -1.62 -2.05 -2.69 -4.30 -3.36 -0.98 -0.29 -2.70 -0.98 -3.82 -1.53 -1.90 -0.93 -2.33 -1.00 -6.53 -0.99zm34.37 3.08c-0.46 0.05 -0.78 0.36 -1.52 1.16 -1.29 1.40 -1.29 1.88 0.00 2.40v0.00 0.00c1.00 0.40 3.16 0.43 3.77 0.04 0.30 -0.19 0.43 -0.82 0.36 -1.70 -0.11 -1.30 -0.22 -1.43 -1.51 -1.75 -0.50 -0.12 -0.83 -0.19 -1.10 -0.16zm-5.36 3.43c-1.03 0.08 -2.40 0.77 -2.40 1.38 0.00 0.31 0.53 0.88 1.17 1.28 1.43 0.87 3.87 0.98 3.87 0.16 0.00 -0.75 -1.04 -2.28 -1.84 -2.71 -0.11 -0.06 -0.24 -0.09 -0.38 -0.11 -0.13 -0.01 -0.27 -0.01 -0.41 -0.00zm34.02 7.79c-0.12 -0.00 -0.22 0.01 -0.30 0.04 -0.63 0.24 -0.67 1.87 -0.06 2.26 0.25 0.16 1.10 0.56 1.89 0.88 2.75 1.13 3.49 0.62 1.79 -1.22 -0.99 -1.07 -2.50 -1.94 -3.32 -1.96zm-10.17 0.50c-0.41 0.03 -0.80 0.13 -1.14 0.30 -0.55 0.29 -1.48 0.78 -2.07 1.09 -0.58 0.31 -1.95 0.70 -3.04 0.88 -2.36 0.38 -3.25 0.80 -4.80 2.28 -1.33 1.26 -1.58 3.02 -0.57 4.03 0.71 0.71 2.41 0.49 4.50 -0.57 1.80 -0.92 2.16 -0.88 1.89 0.21 -0.32 1.26 0.43 1.17 3.07 -0.38 1.97 -1.16 2.18 -1.39 2.18 -2.48 0.00 -0.96 0.17 -1.24 0.84 -1.41 0.87 -0.22 1.68 -1.55 1.68 -2.75 0.00 -0.77 -1.31 -1.28 -2.53 -1.19zm6.29 0.15c-0.68 -0.02 -1.37 0.23 -1.91 0.81 -1.00 1.07 -1.44 3.40 -0.73 3.86 0.28 0.18 0.69 0.25 0.91 0.17 0.23 -0.08 1.12 -0.35 1.98 -0.60 2.14 -0.61 2.56 -0.99 2.29 -2.09 -0.31 -1.32 -1.41 -2.11 -2.55 -2.15zm-40.87 10.14c-0.34 0.01 -0.79 0.21 -1.35 0.61 -1.30 0.92 -1.38 1.55 -0.28 2.09 1.50 0.74 2.24 0.39 2.36 -1.10 0.09 -1.07 -0.16 -1.61 -0.73 -1.60zm137.02 4.73c-0.21 0.02 -0.43 0.09 -0.67 0.22 -0.92 0.49 -0.88 1.21 0.11 1.90 1.48 1.03 2.27 0.62 1.87 -0.97 -0.20 -0.80 -0.69 -1.21 -1.31 -1.14zm-3.51 3.53c-0.70 0.13 -0.90 1.24 -0.35 1.91 0.48 0.58 2.86 0.73 2.86 0.18 0.00 -0.58 -1.94 -2.19 -2.51 -2.09zm10.73 11.78c-0.82 0.00 -0.85 0.64 -0.07 1.50 0.53 0.59 1.56 0.91 1.56 0.49 0.00 -0.71 -0.96 -1.99 -1.50 -1.99zm-55.50 2.88c-0.67 0.00 -1.68 1.06 -1.42 1.48 0.22 0.36 1.53 0.10 2.08 -0.41 0.40 -0.37 -0.03 -1.07 -0.66 -1.07zm58.49 5.78c-0.37 0.01 -0.46 0.36 -0.24 1.03 0.13 0.41 0.47 0.74 0.75 0.74 0.69 0.00 0.66 -1.41 -0.04 -1.67 -0.19 -0.07 -0.35 -0.10 -0.47 -0.10zm46.44 19.79c-0.25 -0.03 -0.46 0.02 -0.66 0.14 -0.59 0.38 -3.12 6.34 -3.57 8.41 -0.15 0.66 -0.80 1.79 -1.44 2.51 -0.70 0.78 -1.40 2.11 -1.72 3.29 -0.30 1.09 -1.05 3.43 -1.67 5.19 -0.62 1.77 -1.05 3.43 -0.95 3.69 0.38 1.00 1.24 0.38 2.85 -2.04 1.07 -1.62 1.67 -2.91 1.67 -3.61 0.00 -1.50 1.14 -3.59 2.49 -4.59 1.76 -1.29 2.93 -3.41 3.90 -7.00 1.20 -4.49 1.20 -4.96 0.00 -5.64 -0.35 -0.20 -0.63 -0.31 -0.88 -0.34v0.00 0.00zm46.87 4.28c-1.39 0.00 -3.41 2.16 -5.21 5.57l-1.70 3.24 -1.55 -0.12c-1.93 -0.15 -3.26 0.17 -3.26 0.78 0.00 0.68 1.81 2.26 3.06 2.65 1.48 0.47 1.53 1.34 0.19 3.20 -0.99 1.38 -1.10 1.78 -0.91 3.11 0.14 0.95 0.03 2.07 -0.29 2.97l-0.51 1.44 -0.26 -1.14c-0.36 -1.63 -0.89 -1.94 -2.75 -1.63l-1.59 0.27 -0.11 1.97c-0.07 1.15 -0.35 2.23 -0.68 2.59 -0.52 0.57 -0.51 0.82 0.06 2.85 0.39 1.39 0.54 2.75 0.40 3.62 -0.12 0.76 -0.07 1.68 0.12 2.03 0.26 0.48 0.17 0.79 -0.35 1.24 -0.54 0.46 -0.70 1.06 -0.70 2.65 0.00 1.13 -0.34 3.25 -0.75 4.71 -0.85 3.04 -1.03 2.57 2.34 6.11 0.99 1.04 2.10 1.89 2.47 1.89 0.62 0.00 2.04 -1.36 8.30 -7.93 2.57 -2.70 2.74 -3.20 1.84 -5.47 -0.20 -0.52 -0.05 -0.63 0.86 -0.63 1.44 0.00 2.34 -1.29 2.14 -3.06 -0.14 -1.20 -0.07 -1.29 1.19 -1.63 1.87 -0.50 3.32 -2.59 4.09 -5.88 0.61 -2.57 0.60 -2.64 -0.15 -4.11 -0.42 -0.82 -1.17 -1.76 -1.66 -2.08 -0.49 -0.32 -0.89 -0.69 -0.89 -0.81 0.00 -0.13 0.57 -0.60 1.26 -1.04 1.40 -0.91 1.56 -1.69 0.68 -3.39 -0.56 -1.08 -0.55 -1.96 0.05 -4.88 0.15 -0.75 0.07 -1.37 -0.22 -1.72 -0.25 -0.30 -0.59 -1.37 -0.74 -2.37 -0.46 -2.93 -2.43 -4.98 -4.78 -4.98zm-58.52 4.67c-0.83 0.00 -1.04 0.16 -1.04 0.78 0.00 0.43 0.27 1.08 0.59 1.44 0.82 0.90 1.44 0.82 1.70 -0.21 0.33 -1.33 -0.09 -2.01 -1.26 -2.01zm-3.93 0.72c-1.69 0.00 -1.90 0.72 -0.89 3.02 0.53 1.20 0.90 2.71 0.90 3.66 0.00 1.59 0.78 3.67 1.58 4.19 1.31 0.86 3.40 -0.11 3.51 -1.64 0.11 -1.54 -0.09 -2.20 -1.54 -5.07 -1.81 -3.57 -2.32 -4.16 -3.56 -4.16zm72.40 23.07c-0.56 0.07 -1.31 0.63 -1.96 1.57 -1.15 1.66 -1.23 2.33 -0.47 3.80 0.62 1.19 1.42 1.37 1.92 0.43 0.59 -1.10 1.45 -4.81 1.24 -5.36 -0.13 -0.34 -0.40 -0.48 -0.73 -0.43zm-4.67 2.60c-0.04 0.04 -0.07 0.17 -0.07 0.37 -0.02 0.38 0.07 0.59 0.19 0.47 0.12 -0.12 0.13 -0.43 0.03 -0.69 -0.06 -0.14 -0.11 -0.19 -0.14 -0.16zm-0.97 7.21c-0.14 0.00 -0.30 0.05 -0.46 0.15 -1.08 0.70 -1.52 3.08 -0.82 4.39 0.56 1.05 1.37 0.84 2.02 -0.52 0.82 -1.72 0.27 -4.04 -0.74 -4.03zm-101.96 3.09c-0.36 0.03 -0.75 0.30 -0.87 0.78 -0.11 0.43 -0.12 0.92 -0.02 1.08 0.44 0.71 1.58 -0.16 1.58 -1.21 0.00 -0.47 -0.33 -0.68 -0.69 -0.65zm-97.28 12.64c-0.62 0.06 -1.22 0.43 -1.91 1.09 -1.49 1.45 -1.50 2.18 -0.02 3.12 1.57 1.01 2.98 0.96 4.06 -0.12 1.20 -1.20 1.14 -2.48 -0.16 -3.41 -0.73 -0.52 -1.36 -0.75 -1.97 -0.69zm107.07 1.42c-0.43 -0.01 -0.97 0.01 -1.69 0.04l-2.92 0.11 -0.11 1.17c-0.11 1.13 -0.07 1.17 1.26 1.18 0.75 0.01 1.94 0.32 2.63 0.70 1.47 0.80 1.79 0.84 3.03 0.37 1.17 -0.45 1.17 -1.10 -0.02 -2.51 -0.70 -0.83 -0.90 -1.05 -2.18 -1.06zm-7.93 0.09c-0.18 0.00 -0.38 0.03 -0.60 0.07 -1.50 0.31 -2.74 1.13 -2.74 1.82 0.00 0.31 -1.29 1.90 -2.86 3.54 -1.57 1.64 -2.96 3.39 -3.08 3.88 -0.15 0.60 -0.72 1.12 -1.73 1.57 -1.60 0.72 -3.69 3.38 -4.04 5.13 -0.40 2.02 -0.74 2.74 -1.34 2.85 -0.46 0.09 -0.62 -0.12 -0.62 -0.81 0.00 -0.67 -0.19 -0.92 -0.69 -0.92 -1.19 0.00 -1.79 0.39 -2.58 1.68 -0.99 1.61 -0.54 2.22 1.24 1.67 1.14 -0.35 1.26 -0.31 1.83 0.67 0.61 1.03 0.60 1.06 -0.49 2.30 -1.09 1.24 -1.10 1.28 -0.56 2.56 0.33 0.79 0.46 1.76 0.33 2.47 -0.17 0.90 -0.07 1.25 0.44 1.55 0.93 0.54 1.68 0.50 3.40 -0.19 1.24 -0.50 1.69 -0.52 2.70 -0.16 1.51 0.55 1.94 0.30 1.94 -1.11 0.00 -1.41 1.15 -3.27 2.57 -4.17 0.61 -0.38 1.45 -1.31 1.88 -2.05 0.51 -0.89 1.18 -1.49 1.98 -1.76 1.64 -0.54 3.13 -2.71 4.01 -5.85 0.62 -2.18 0.67 -2.97 0.39 -5.39 -0.18 -1.56 -0.44 -3.10 -0.57 -3.43 -0.18 -0.43 0.04 -0.73 0.77 -1.08 0.79 -0.38 1.04 -0.77 1.12 -1.78 0.09 -1.09 -0.08 -1.45 -1.04 -2.26 -0.69 -0.58 -1.12 -0.81 -1.66 -0.81zm-18.70 9.95c-0.74 -0.02 -1.52 0.12 -1.83 0.43 -0.47 0.47 -0.58 2.17 -0.17 2.58 0.14 0.14 0.83 0.21 1.52 0.15 0.98 -0.08 1.38 -0.33 1.75 -1.12 0.27 -0.56 0.39 -1.24 0.28 -1.53 -0.12 -0.32 -0.81 -0.50 -1.55 -0.52zm-6.21 2.88c-0.66 0.00 -1.10 0.90 -0.82 1.71 0.32 0.94 2.61 0.38 2.61 -0.63 0.00 -0.67 -0.68 -1.08 -1.78 -1.08zm-113.83 0.77c-0.31 0.04 -0.62 0.23 -0.97 0.55 -0.83 0.75 -0.82 1.11 0.06 2.55 0.84 1.37 0.91 1.38 2.43 0.45 1.42 -0.87 1.45 -1.28 0.20 -2.59 -0.69 -0.72 -1.21 -1.03 -1.72 -0.96zm-27.49 1.83c-0.26 -0.01 -0.52 0.02 -0.84 0.07 -1.54 0.25 -3.79 1.29 -5.49 2.55 -1.84 1.36 -8.65 1.78 -11.26 0.69 -2.04 -0.85 -2.48 -0.68 -3.92 1.55 -0.74 1.14 -1.93 2.80 -2.65 3.69 -1.11 1.37 -1.35 1.99 -1.57 4.05 -0.32 3.04 0.03 3.12 3.15 0.72l2.22 -1.71 2.88 0.06c5.03 0.10 11.83 0.71 12.92 1.16 1.35 0.56 1.83 0.35 2.57 -1.11 0.63 -1.25 1.64 -2.24 3.82 -3.75 1.00 -0.69 1.98 -0.98 3.95 -1.15l2.63 -0.24 0.11 -1.19c0.14 -1.44 -0.44 -2.22 -1.62 -2.22 -0.48 0.00 -2.11 -0.74 -3.61 -1.66 -1.80 -1.10 -2.53 -1.46 -3.31 -1.50zm101.56 6.89c-1.63 0.09 -2.95 0.95 -3.25 2.55 -0.26 1.40 0.07 2.08 2.45 4.95 1.29 1.56 1.55 1.71 2.99 1.71 1.75 0.00 2.76 -0.77 3.62 -2.78 0.81 -1.89 0.63 -3.07 -0.67 -4.33 -1.55 -1.50 -3.50 -2.19 -5.13 -2.10zm-81.28 7.79c-0.58 -0.07 -1.09 0.41 -1.19 1.36 -0.06 0.66 -0.03 1.43 0.08 1.71 0.21 0.55 0.67 0.61 1.92 0.28 0.97 -0.26 1.07 -1.40 0.24 -2.59 -0.33 -0.47 -0.70 -0.71 -1.05 -0.76zm20.64 2.58c-0.88 0.05 -1.39 0.45 -1.39 1.16 0.00 1.32 1.63 3.01 3.17 3.29 0.73 0.13 1.94 0.55 2.70 0.93l1.37 0.69 1.55 -0.87 1.55 -0.87 0.58 1.21c0.53 1.11 0.71 1.21 2.20 1.21 1.50 0.00 1.62 -0.07 1.62 -0.92 0.00 -1.73 -0.60 -2.31 -2.35 -2.31 -1.54 0.00 -1.61 -0.04 -1.61 -1.07 0.00 -1.22 -0.29 -1.34 -3.77 -1.57 -1.19 -0.08 -2.84 -0.35 -3.68 -0.59 -0.76 -0.23 -1.42 -0.32 -1.95 -0.29zm106.42 0.37c-0.64 0.03 -1.31 0.11 -1.98 0.26 -2.61 0.59 -3.69 1.25 -3.69 2.23 0.00 0.44 -0.67 1.39 -1.57 2.24 -1.78 1.66 -2.86 3.21 -2.51 3.57 0.59 0.59 1.76 0.12 3.13 -1.26 1.09 -1.10 1.92 -1.58 3.10 -1.80 2.22 -0.42 7.01 -3.23 7.01 -4.12 0.00 -0.77 -1.58 -1.21 -3.50 -1.13zm-177.89 1.21c-0.40 -0.06 -0.94 0.03 -1.47 0.31 -2.29 1.18 -3.62 4.00 -2.45 5.17 0.25 0.25 1.01 0.40 1.71 0.34 1.21 -0.10 1.29 -0.20 2.04 -2.44 0.43 -1.29 0.79 -2.52 0.81 -2.75 0.03 -0.35 -0.23 -0.57 -0.63 -0.63zm67.48 0.19c-0.82 0.07 -1.76 0.50 -2.24 1.23 -0.74 1.12 -0.53 1.84 0.59 2.06 0.46 0.09 1.02 0.18 1.26 0.21 0.52 0.06 1.91 -1.83 1.91 -2.59 0.00 -0.69 -0.70 -0.98 -1.52 -0.91zm39.87 0.91c-1.67 0.13 -2.87 1.07 -2.05 2.07 0.68 0.82 3.66 0.76 4.72 -0.09 0.99 -0.80 0.72 -1.36 -0.89 -1.81 -0.60 -0.17 -1.21 -0.21 -1.77 -0.17z\"},\"path32\":{\"name\":\"Maluku Utara\",\"path\":\"m1121.97 115.95c-0.40 0.06 -1.03 0.40 -1.85 1.03 -0.92 0.70 -1.90 1.28 -2.17 1.28 -0.84 0.00 -3.97 3.19 -5.47 5.56 -1.74 2.75 -2.25 4.49 -1.81 6.05 0.18 0.64 0.33 1.76 0.33 2.50 0.00 0.74 0.27 2.01 0.59 2.83l0.59 1.48 1.65 -0.24c0.91 -0.13 2.46 -0.36 3.45 -0.51 2.30 -0.34 3.87 -1.18 4.98 -2.65 1.17 -1.56 2.25 -3.77 2.57 -5.25 0.14 -0.66 0.65 -2.05 1.12 -3.09 0.82 -1.80 0.84 -1.95 0.31 -3.49 -0.53 -1.55 -2.95 -4.86 -3.98 -5.45 -0.08 -0.05 -0.19 -0.06 -0.32 -0.04zm-13.90 9.14c-0.49 0.00 -0.66 0.27 -0.66 1.02 0.00 0.56 0.11 1.13 0.24 1.26 0.35 0.35 1.49 0.29 1.72 -0.09 0.35 -0.57 -0.61 -2.18 -1.30 -2.18zm-5.28 5.47c-0.27 -0.02 -0.57 0.01 -0.93 0.07 -1.01 0.19 -2.03 1.09 -5.49 4.87 -2.33 2.55 -4.78 5.52 -5.44 6.61 -1.73 2.85 -2.92 6.60 -3.26 10.22 -0.26 2.84 -0.48 3.50 -2.13 6.57l-1.84 3.41 0.10 3.24 0.11 3.24 1.21 0.40c0.91 0.30 1.29 0.68 1.51 1.53 0.16 0.62 0.92 2.13 1.69 3.34l1.40 2.21 -0.85 1.65c-1.19 2.31 -1.48 4.95 -0.76 7.11 0.31 0.95 0.66 2.33 0.77 3.06 0.17 1.12 0.55 1.58 2.36 2.88l2.15 1.55 -0.23 1.62c-0.13 0.89 -0.27 3.64 -0.31 6.11 -0.04 2.47 -0.20 5.71 -0.34 7.19 -0.24 2.47 -0.19 2.80 0.58 3.94 0.47 0.70 1.90 1.85 3.25 2.62 2.28 1.31 2.49 1.55 4.31 4.87 1.05 1.92 2.31 4.30 2.81 5.29 0.86 1.71 1.08 1.88 4.32 3.32 2.80 1.25 3.47 1.70 3.73 2.52 0.46 1.42 0.86 1.83 1.96 2.00 2.50 0.38 3.66 0.18 3.66 -0.66 0.00 -0.26 -1.11 -1.48 -2.47 -2.69 -2.74 -2.45 -3.45 -3.35 -6.39 -8.08 -1.91 -3.07 -4.22 -8.28 -5.41 -12.23 -0.30 -0.99 -0.95 -2.60 -1.45 -3.58 -0.98 -1.93 -1.16 -4.62 -0.42 -6.02 0.57 -1.06 0.46 -3.52 -0.22 -5.22 -0.65 -1.64 -0.41 -2.61 1.15 -4.66l0.97 -1.27 2.30 0.25c1.37 0.15 3.04 0.63 4.14 1.20 1.51 0.78 2.48 0.99 5.46 1.15 3.34 0.18 3.78 0.29 5.77 1.48 1.19 0.71 2.97 1.48 3.96 1.70 0.99 0.23 2.85 0.67 4.13 0.97 4.05 0.96 4.32 0.99 4.32 0.45 0.00 -1.07 -2.07 -2.77 -4.10 -3.36 -1.88 -0.55 -2.02 -0.66 -2.02 -1.69 0.00 -1.73 -0.73 -3.73 -1.86 -5.10 -0.77 -0.93 -1.57 -1.40 -3.10 -1.83 -5.51 -1.53 -10.15 -3.92 -10.15 -5.22 0.00 -0.17 -0.09 -0.55 -0.21 -0.85 -0.14 -0.38 0.13 -0.61 0.92 -0.78 0.80 -0.18 1.29 -0.60 1.70 -1.44 0.42 -0.88 0.88 -1.25 1.73 -1.41 1.26 -0.24 5.97 -2.75 8.26 -4.40 2.00 -1.45 3.06 -3.15 3.06 -4.91 0.00 -0.80 0.27 -2.41 0.60 -3.58 0.58 -2.07 0.58 -2.17 -0.16 -3.62 -0.42 -0.82 -0.84 -2.18 -0.93 -3.03 -0.35 -3.27 -1.96 -4.06 -5.21 -2.59 -0.86 0.39 -2.08 0.72 -2.70 0.72 -1.15 0.01 -2.59 0.75 -6.79 3.51 -2.40 1.57 -3.76 3.21 -4.54 5.47 -0.41 1.18 -0.37 1.31 0.52 2.09l0.96 0.83 -0.82 0.88c-0.50 0.54 -1.23 0.88 -1.86 0.88 -2.65 0.00 -5.68 3.04 -5.68 5.71 0.00 1.55 -0.86 3.50 -1.74 3.98 -1.49 0.80 -3.20 0.47 -4.73 -0.92 -0.79 -0.72 -1.54 -1.69 -1.66 -2.16 -0.32 -1.29 0.48 -2.82 1.82 -3.46 0.66 -0.31 1.74 -1.05 2.41 -1.63 0.67 -0.58 1.86 -1.39 2.65 -1.79 0.79 -0.40 1.75 -1.27 2.14 -1.94 0.39 -0.66 1.23 -1.90 1.89 -2.76 0.84 -1.10 1.19 -1.94 1.19 -2.88 0.00 -0.73 0.16 -2.31 0.36 -3.52 0.27 -1.68 0.24 -2.53 -0.13 -3.60 -0.27 -0.77 -0.41 -1.99 -0.32 -2.71 0.20 -1.64 -0.92 -3.30 -2.89 -4.31 -0.75 -0.38 -1.54 -1.08 -1.75 -1.55 -0.33 -0.72 -0.23 -1.06 0.64 -2.20 0.57 -0.74 1.35 -1.87 1.75 -2.52 0.40 -0.65 1.19 -1.75 1.75 -2.46 0.94 -1.17 0.99 -1.38 0.59 -2.36 -0.48 -1.16 -0.94 -1.66 -1.75 -1.73zm-21.47 43.44c-1.04 0.00 -1.64 2.34 -0.81 3.17 0.50 0.50 1.69 0.56 2.40 0.11 0.96 -0.61 -0.34 -3.27 -1.59 -3.27zm3.65 4.02c-0.33 -0.03 -0.75 0.10 -1.24 0.40 -1.02 0.62 -1.69 2.12 -1.34 3.02 0.16 0.43 0.50 0.51 1.35 0.34 1.60 -0.32 2.10 -0.85 2.10 -2.25 0.00 -0.93 -0.31 -1.45 -0.86 -1.50zm-1.02 12.03c-0.86 0.10 -2.50 1.19 -2.34 1.68 0.08 0.24 0.54 0.64 1.02 0.88 1.04 0.53 0.86 0.50 1.56 0.24 0.72 -0.27 0.78 -2.50 0.08 -2.77 -0.08 -0.03 -0.19 -0.04 -0.31 -0.02zm0.21 10.21c-0.59 0.00 -0.61 0.41 -0.07 1.60 0.47 1.03 1.74 1.25 1.74 0.31 0.00 -0.75 -1.02 -1.92 -1.67 -1.92zm63.51 1.82c-0.22 0.04 -0.33 0.22 -0.33 0.54 0.00 0.70 4.59 5.88 5.57 6.28 1.00 0.41 1.90 0.41 2.15 -0.01 0.39 -0.63 -0.50 -1.74 -3.47 -4.31 -1.78 -1.54 -3.00 -2.37 -3.66 -2.50 -0.10 -0.02 -0.19 -0.02 -0.26 -0.01zm-70.01 8.61c-0.75 0.00 -1.88 0.32 -2.53 0.71 -1.15 0.70 -1.17 0.75 -1.17 3.40 0.00 2.50 0.08 2.78 1.12 3.96 0.61 0.70 1.42 1.27 1.78 1.27 1.09 0.00 2.47 -0.78 2.71 -1.53 0.19 -0.59 0.39 -0.41 1.24 1.07 0.93 1.63 2.58 3.34 4.08 4.24 0.52 0.31 0.54 0.52 0.17 1.49 -0.40 1.04 -0.34 1.24 0.76 2.63 0.94 1.19 1.35 1.46 1.95 1.27 0.42 -0.13 1.50 -0.32 2.41 -0.43 1.55 -0.18 1.71 -0.12 2.47 0.96 0.45 0.63 1.16 1.30 1.58 1.48 1.03 0.44 3.30 0.17 4.36 -0.53 0.98 -0.64 1.57 -2.87 1.01 -3.78 -0.71 -1.15 -2.71 -2.19 -4.21 -2.19 -1.89 -0.01 -3.17 -0.67 -3.59 -1.85 -0.27 -0.76 -0.15 -1.17 0.62 -2.18 0.52 -0.69 0.95 -1.61 0.95 -2.06 0.00 -1.33 -1.05 -3.14 -2.73 -4.68 -1.66 -1.53 -2.97 -1.85 -3.75 -0.91 -0.26 0.31 -1.04 0.54 -1.85 0.54 -1.92 0.00 -3.81 0.86 -4.31 1.95 -0.60 1.31 -1.03 0.79 -1.03 -1.23 0.00 -2.81 -0.45 -3.60 -2.06 -3.60zm0.66 11.51c-0.97 0.00 -1.74 0.86 -2.18 2.44 -0.55 1.97 -0.46 3.23 0.26 3.64 0.83 0.48 2.24 0.48 3.63 -0.01 0.95 -0.33 1.13 -0.58 1.13 -1.55 0.00 -1.51 -1.90 -4.53 -2.84 -4.53zm10.73 18.46c-0.19 -0.00 -0.38 0.01 -0.55 0.05 -1.32 0.25 -1.94 1.06 -1.94 2.56 0.00 0.91 0.08 0.96 1.35 0.79 1.96 -0.26 4.05 -1.23 4.05 -1.86 0.00 -0.76 -1.57 -1.52 -2.90 -1.53zm3.05 5.02c-0.20 -0.01 -0.37 -0.00 -0.53 0.03 -0.56 0.11 -1.76 0.77 -2.66 1.46 -0.91 0.69 -2.20 1.36 -2.88 1.49 -0.68 0.13 -1.39 0.42 -1.57 0.64 -0.49 0.61 -1.13 3.98 -1.13 5.95 0.00 1.96 0.31 2.35 3.06 3.76 2.09 1.07 3.06 1.14 5.04 0.35 2.08 -0.83 9.65 -1.22 11.46 -0.59 2.28 0.79 3.55 0.62 5.06 -0.69 1.34 -1.16 1.35 -1.19 0.95 -2.69 -0.36 -1.33 -0.58 -1.56 -1.77 -1.88 -0.75 -0.20 -1.75 -0.79 -2.24 -1.31 -1.61 -1.73 -3.81 -3.02 -5.15 -3.02 -0.90 0.00 -1.63 -0.32 -2.51 -1.08 -1.50 -1.31 -3.74 -2.35 -5.12 -2.42zm-10.75 1.18c-0.89 0.13 -1.22 1.08 -0.69 2.47 0.32 0.84 1.07 0.69 1.92 -0.38 0.96 -1.22 0.94 -1.52 -0.15 -1.93 -0.41 -0.16 -0.77 -0.21 -1.07 -0.16zm-89.33 8.85c-2.39 -0.06 -4.70 0.21 -5.55 0.77 -1.09 0.71 -3.30 4.58 -3.62 6.35 -0.28 1.54 0.89 3.48 3.08 5.06 1.08 0.78 1.89 1.07 2.96 1.07 2.01 0.00 5.72 -1.10 8.27 -2.47 2.49 -1.33 2.59 -1.34 5.54 -0.41l2.26 0.71 2.01 -1.07c1.77 -0.94 2.37 -1.07 5.00 -1.07 2.59 0.00 3.05 -0.10 3.50 -0.73 0.45 -0.64 0.56 -0.66 0.96 -0.18 0.25 0.30 0.82 0.55 1.26 0.55 0.44 0.00 1.43 0.50 2.20 1.12 1.34 1.07 1.49 1.11 3.73 0.87 1.29 -0.14 3.64 -0.23 5.22 -0.20 1.59 0.03 3.34 -0.12 3.90 -0.33 0.72 -0.27 1.43 -0.28 2.42 -0.01 1.14 0.31 1.86 0.25 3.83 -0.33 1.43 -0.42 3.42 -0.71 4.86 -0.69 2.06 0.02 2.66 -0.13 3.89 -0.94 0.80 -0.53 1.39 -1.15 1.31 -1.39 -0.08 -0.24 -1.02 -0.54 -2.09 -0.67 -1.07 -0.13 -3.59 -0.44 -5.59 -0.68 -2.87 -0.35 -4.82 -0.35 -9.19 -0.01 -5.43 0.42 -9.94 0.29 -12.57 -0.37 -1.62 -0.41 -2.34 -0.15 -3.00 1.07 -0.49 0.89 -0.52 0.90 -0.53 0.15 -0.03 -1.42 -0.79 -2.62 -1.67 -2.62 -0.45 0.00 -0.92 0.16 -1.04 0.36 -0.36 0.58 -0.83 0.42 -1.08 -0.36 -0.24 -0.76 -1.90 -1.80 -2.88 -1.80 -0.32 0.00 -0.75 0.49 -0.95 1.08 -0.47 1.36 -1.45 1.41 -3.26 0.18 -0.76 -0.52 -2.45 -1.12 -3.95 -1.41 -1.44 -0.28 -3.75 -0.78 -5.14 -1.11 -1.19 -0.28 -2.66 -0.44 -4.09 -0.48zm44.02 11.09c-0.58 0.02 -1.20 0.44 -1.84 1.27 -0.86 1.12 -0.94 1.49 -0.77 3.22 0.11 1.07 0.77 3.21 1.46 4.76 0.69 1.54 1.38 3.45 1.52 4.24 0.17 0.95 0.67 1.83 1.49 2.61 1.40 1.33 2.42 1.49 2.97 0.47 0.64 -1.20 0.42 -2.17 -1.27 -5.74 -1.67 -3.51 -1.87 -4.48 -1.44 -7.05 0.19 -1.12 0.08 -1.70 -0.49 -2.61 -0.50 -0.80 -1.05 -1.19 -1.64 -1.18z\"},\"path33\":{\"name\":\"Papua\",\"path\":\"m1346.84 223.59c-1.22 0.05 -2.07 0.40 -2.07 0.98 0.00 1.48 1.18 2.75 3.53 3.82 1.32 0.60 2.93 1.55 3.58 2.12 1.39 1.22 1.45 1.22 3.17 0.41l1.32 -0.63 0.74 0.98c1.08 1.44 2.68 6.48 2.48 7.81 -0.18 1.25 0.52 2.27 2.14 3.11 0.82 0.42 1.14 0.42 2.20 -0.02 1.12 -0.47 1.41 -0.45 3.00 0.18 2.80 1.12 7.99 0.16 10.24 -1.89l1.20 -1.09 -0.80 -0.65c-0.44 -0.36 -1.82 -0.99 -3.07 -1.40 -2.48 -0.83 -4.08 -2.12 -5.88 -4.77 -0.64 -0.93 -1.93 -2.26 -2.88 -2.95 -0.95 -0.69 -2.17 -1.82 -2.71 -2.51 -1.22 -1.55 -2.98 -2.01 -4.33 -1.13 -0.66 0.43 -0.97 0.48 -1.16 0.18 -0.45 -0.73 -3.17 -1.77 -4.66 -1.78 -0.79 -0.01 -2.39 -0.24 -3.54 -0.51 -0.88 -0.21 -1.74 -0.29 -2.48 -0.26zm-7.40 26.72c-0.45 0.01 -0.93 0.07 -1.40 0.18 -1.45 0.34 -1.92 1.20 -1.17 2.11 0.94 1.13 5.02 0.07 5.02 -1.30 0.00 -0.63 -1.10 -1.03 -2.45 -0.99zm87.57 0.15c-0.74 -0.03 -1.59 0.17 -2.90 0.50 -3.20 0.81 -5.68 1.95 -12.41 5.72 -2.45 1.37 -5.15 2.69 -5.99 2.92 -0.84 0.23 -2.12 0.92 -2.85 1.52 -1.20 0.99 -1.31 1.21 -1.10 2.39 0.14 0.82 0.64 1.66 1.35 2.27 0.94 0.81 2.06 2.95 2.08 3.96 0.01 0.48 -1.60 1.12 -3.95 1.55 -1.29 0.24 -4.12 1.25 -6.30 2.24 -4.92 2.24 -7.56 2.62 -11.55 1.68 -2.17 -0.51 -2.92 -0.55 -4.05 -0.21 -1.64 0.49 -3.28 2.60 -3.28 4.21 0.00 0.58 -0.41 1.86 -0.90 2.83 -0.49 0.97 -0.90 2.09 -0.90 2.49 0.00 1.53 -1.52 3.00 -4.74 4.58 -1.74 0.85 -3.74 2.15 -4.45 2.87 -1.13 1.16 -1.33 1.64 -1.61 3.91 -0.41 3.25 -1.14 4.31 -4.15 5.99 -1.69 0.94 -2.52 1.67 -3.01 2.64 -0.52 1.02 -1.02 1.44 -2.13 1.77 -1.37 0.41 -2.91 1.84 -2.93 2.71 0.00 0.22 -0.53 0.99 -1.17 1.71 -0.96 1.08 -1.61 1.41 -3.72 1.90 -1.90 0.44 -2.80 0.50 -3.53 0.22 -0.54 -0.20 -1.83 -0.37 -2.88 -0.37 -1.05 0.00 -2.60 -0.24 -3.44 -0.54 -0.84 -0.30 -2.00 -0.54 -2.57 -0.54 -0.82 0.00 -1.21 -0.28 -1.80 -1.27 -0.41 -0.70 -1.39 -1.60 -2.16 -1.99 -2.08 -1.06 -2.72 -2.63 -2.17 -5.30 0.54 -2.59 0.55 -4.98 0.04 -5.30 -0.22 -0.13 -0.93 0.28 -1.59 0.92 -0.93 0.90 -1.40 1.11 -2.08 0.94 -0.56 -0.14 -0.82 -0.62 -1.07 -1.56 -0.96 4.64 -1.83 9.80 -2.34 14.87 -0.13 1.29 -0.09 2.57 0.09 3.81 0.17 1.24 0.48 2.44 0.87 3.60 0.79 2.31 1.93 4.42 3.10 6.20 1.18 1.78 2.39 3.24 3.30 4.26 0.91 1.01 1.54 1.59 1.54 1.59l-7.03 -0.21 -0.76 0.87c0.24 0.77 0.14 2.92 -0.30 3.77 -0.75 1.45 -0.68 1.71 0.71 2.53 0.68 0.40 1.33 1.01 1.44 1.34 0.30 0.92 2.34 2.08 4.43 2.53 1.32 0.28 2.67 1.00 4.66 2.47 1.54 1.14 3.81 2.53 5.06 3.09 2.16 0.97 2.37 1.00 4.76 0.63 2.81 -0.44 8.45 0.03 10.95 0.90 0.88 0.31 2.91 0.51 5.15 0.51 4.06 0.01 5.33 0.36 7.30 2.05 2.10 1.81 6.69 3.76 9.32 3.97 2.50 0.20 4.04 0.84 7.19 2.97 1.09 0.74 2.38 1.46 2.88 1.61 0.49 0.15 1.71 0.72 2.70 1.26 2.98 1.64 5.40 2.36 6.41 1.90 0.70 -0.32 1.06 -0.26 1.90 0.31 0.78 0.53 1.42 0.66 2.55 0.52 1.58 -0.20 3.04 0.26 4.96 1.57 1.36 0.92 1.35 0.92 2.64 -0.17 0.99 -0.84 1.10 -0.85 1.29 -0.25 0.35 1.09 3.18 3.59 4.52 3.99 3.12 0.92 4.59 1.65 6.10 3.05 0.90 0.83 2.46 1.88 3.47 2.35 1.32 0.61 2.01 1.19 2.42 2.07 0.47 0.99 0.78 1.22 1.68 1.22 0.84 0.00 1.50 0.42 2.84 1.80 1.58 1.63 2.26 1.98 3.50 1.83 0.78 -0.09 1.17 1.89 0.63 3.18 -0.99 2.37 -0.30 5.42 1.23 5.42 0.34 -0.00 1.48 -0.33 2.54 -0.74 1.06 -0.40 2.00 -0.67 2.08 -0.59 0.08 0.08 -0.44 0.73 -1.16 1.45 -0.72 0.72 -1.23 1.51 -1.15 1.76 0.08 0.25 1.05 0.78 2.16 1.18 2.55 0.91 2.65 1.03 1.54 1.76 -0.95 0.62 -1.21 1.79 -0.50 2.23 0.72 0.44 3.07 6.00 3.72 8.78 1.01 4.32 1.86 5.62 6.43 9.75 2.27 2.05 4.14 3.86 4.15 4.00 0.02 0.15 -0.21 0.27 -0.51 0.27 -0.72 0.00 -0.68 0.89 0.09 2.07 0.61 0.93 0.61 0.95 -0.09 0.66 -1.48 -0.60 -1.80 -0.45 -1.74 0.83 0.03 0.67 0.40 1.68 0.81 2.23 0.95 1.29 0.94 1.46 -0.06 1.22 -1.04 -0.25 -3.15 1.03 -3.15 1.91 0.00 0.80 5.45 6.19 7.13 7.05 0.66 0.34 2.22 0.83 3.47 1.09 1.25 0.26 2.57 0.67 2.94 0.90 0.63 0.40 0.63 0.41 -0.05 0.16 -0.40 -0.14 -2.38 -0.34 -4.41 -0.43 -3.01 -0.13 -3.85 -0.06 -4.59 0.42 -1.15 0.75 -1.14 1.22 0.06 1.67 0.53 0.20 1.99 1.12 3.25 2.05 1.72 1.26 2.53 2.16 3.23 3.60 0.51 1.05 0.85 2.00 0.74 2.11 -0.11 0.11 -0.74 -0.53 -1.40 -1.42 -1.77 -2.38 -3.81 -3.25 -7.18 -3.02 -3.07 0.20 -10.26 1.72 -12.36 2.61 -2.18 0.92 -5.61 3.02 -6.97 4.28 -0.67 0.61 -2.07 2.41 -3.12 3.99 -1.05 1.58 -2.39 3.57 -2.98 4.41 -0.59 0.84 -1.58 2.95 -2.21 4.68 -0.62 1.73 -1.43 3.46 -1.79 3.86 -0.98 1.08 -1.79 2.84 -3.13 6.80 -1.35 4.00 -1.45 4.81 -0.66 5.12 0.30 0.11 2.02 -0.16 3.83 -0.61 3.10 -0.76 3.54 -0.79 7.64 -0.39 2.39 0.23 5.12 0.42 6.05 0.41 0.94 0.00 2.43 0.19 3.31 0.43 2.23 0.60 5.10 -0.31 7.26 -2.31 0.87 -0.80 1.64 -1.40 1.71 -1.32 0.07 0.08 0.39 0.67 0.72 1.31 0.33 0.64 0.63 1.18 0.68 1.19 1.43 0.31 6.93 1.04 7.93 1.05 1.53 0.01 2.77 -0.51 2.76 -1.17 0.00 -0.24 -0.49 -1.39 -1.08 -2.56 -0.59 -1.17 -1.07 -2.26 -1.07 -2.44 0.00 -0.18 0.60 0.09 1.34 0.59 0.74 0.50 1.53 0.91 1.77 0.91 0.23 0.00 1.09 -0.80 1.91 -1.78 0.98 -1.17 2.20 -2.11 3.54 -2.74 1.13 -0.53 2.33 -1.21 2.68 -1.51 0.35 -0.30 0.63 -0.39 0.63 -0.19 0.00 0.56 2.12 3.11 3.00 3.60 1.69 0.95 6.44 0.25 9.13 -1.33 1.07 -0.63 2.06 -0.81 5.29 -0.94 2.19 -0.09 4.58 -0.22 5.33 -0.30 1.00 -0.10 1.35 0.00 1.35 0.39 0.00 0.96 1.36 3.17 2.76 4.48 0.76 0.71 2.59 2.21 4.08 3.33 1.48 1.12 3.39 2.56 4.23 3.20 2.95 2.24 6.40 5.88 8.97 9.44 3.48 4.82 8.67 9.94 11.64 11.49 1.27 0.66 2.56 1.18 2.85 1.14 0.48 -0.05 0.54 -12.28 0.52 -107.70 -0.02 -93.68 -0.08 -107.68 -0.54 -107.97 -0.29 -0.18 -1.74 -0.23 -3.24 -0.11 -3.39 0.28 -5.02 -0.37 -5.02 -1.98 0.00 -0.56 -0.28 -1.26 -0.63 -1.57 -0.73 -0.65 -3.27 -1.55 -5.32 -1.88 -0.79 -0.13 -2.16 -0.39 -3.05 -0.59 -1.27 -0.28 -1.92 -0.23 -2.93 0.19 -1.92 0.80 -4.64 -0.06 -6.45 -2.04l-1.33 -1.46 -1.38 0.55c-0.76 0.30 -3.18 0.67 -5.38 0.81 -4.24 0.27 -5.65 -0.05 -8.33 -1.90 -0.54 -0.37 -2.11 -1.09 -3.49 -1.59 -1.38 -0.51 -3.38 -1.50 -4.43 -2.21 -1.05 -0.71 -2.69 -1.52 -3.64 -1.81 -0.95 -0.28 -2.35 -0.90 -3.12 -1.39 -2.30 -1.44 -8.12 -3.94 -9.66 -4.14 -2.03 -0.26 -4.08 -1.37 -5.76 -3.11 -1.87 -1.93 -3.15 -2.52 -8.71 -3.95 -2.52 -0.65 -5.58 -1.69 -6.80 -2.31 -1.22 -0.62 -3.36 -1.38 -4.75 -1.70 -2.13 -0.48 -2.93 -0.90 -4.96 -2.57 -2.08 -1.70 -2.97 -2.37 -4.20 -2.42zm-77.94 4.17c-2.63 0.01 -2.64 0.64 -1.61 2.15 0.78 1.15 1.08 1.31 2.95 1.51 6.49 0.70 8.26 1.14 13.63 3.39 1.41 0.59 3.75 1.36 5.21 1.70 1.46 0.35 3.06 0.85 3.56 1.11 0.55 0.29 1.32 0.39 1.98 0.25 0.59 -0.13 1.56 -0.20 2.16 -0.16 0.59 0.04 3.05 0.07 5.46 0.07 3.78 0.00 4.59 -0.10 5.91 -0.78 0.84 -0.43 2.47 -0.86 3.62 -0.97 1.85 -0.17 2.09 -0.28 2.09 -0.97 0.00 -0.43 -0.46 -1.22 -1.02 -1.76 -0.91 -0.87 -1.42 -1.01 -4.76 -1.31 -2.06 -0.19 -5.20 -0.35 -6.98 -0.36 -2.67 -0.02 -3.77 -0.21 -6.29 -1.11 -2.59 -0.93 -3.88 -1.15 -8.45 -1.44 -2.97 -0.19 -7.26 -0.53 -9.53 -0.75 -3.82 -0.38 -6.35 -0.59 -7.93 -0.59z\"},\"path34\":{\"name\":\"Papua Barat\",\"path\":\"m1196.25 202.37c-0.53 0.00 -0.98 0.10 -1.64 0.28 -2.11 0.55 -8.37 1.50 -12.46 1.89 -3.26 0.31 -3.89 0.72 -3.89 2.56 0.00 0.87 -0.19 1.43 -0.54 1.56 -0.76 0.29 -0.68 0.73 0.39 2.00 0.88 1.05 1.07 1.11 3.56 1.11 2.56 0.00 2.66 0.03 3.74 1.27 0.61 0.70 1.12 1.59 1.12 1.98 0.00 1.01 1.02 0.87 1.51 -0.20 0.79 -1.73 1.88 -1.54 3.99 0.69 1.72 1.82 2.05 2.02 3.40 2.02 1.77 0.00 3.97 -1.18 4.43 -2.38 0.29 -0.75 0.42 -0.80 1.43 -0.44 0.91 0.32 1.40 0.26 2.60 -0.28 1.72 -0.77 2.93 -0.70 4.28 0.26 1.43 1.02 2.25 0.85 3.29 -0.67 0.83 -1.23 0.90 -1.58 0.72 -3.92 -0.17 -2.28 -0.29 -2.62 -1.07 -2.97 -0.48 -0.22 -1.07 -0.40 -1.30 -0.41 -0.24 -0.01 -1.07 -0.49 -1.84 -1.08 -0.78 -0.59 -1.75 -1.07 -2.16 -1.07 -0.41 -0.00 -2.68 -0.54 -5.04 -1.21 -2.55 -0.71 -3.63 -1.00 -4.50 -1.00zm54.05 11.10c-1.75 -0.05 -2.80 0.10 -4.61 0.55 -3.87 0.96 -7.33 2.75 -8.39 4.35 -0.52 0.79 -1.24 1.35 -1.91 1.50 -0.62 0.14 -2.25 1.34 -3.88 2.86 -2.79 2.61 -3.14 2.79 -6.50 3.25 -0.89 0.12 -2.46 0.47 -3.49 0.78 -1.48 0.44 -2.11 0.48 -3.04 0.15 -1.00 -0.35 -1.59 -0.27 -3.99 0.53 -1.55 0.52 -3.29 1.33 -3.87 1.82 -1.04 0.87 -1.05 0.91 -0.84 3.83 0.19 2.76 0.13 3.13 -0.96 5.73 -1.13 2.68 -1.25 2.82 -3.25 3.82l-2.08 1.04 0.18 -1.30c0.10 -0.72 0.33 -1.77 0.51 -2.35 0.85 -2.69 0.13 -7.22 -1.21 -7.58 -0.44 -0.12 -1.63 -0.48 -2.64 -0.80 -1.77 -0.56 -1.94 -0.56 -4.50 0.22 -5.04 1.54 -5.18 1.61 -5.11 2.57 0.22 3.05 0.78 5.45 1.44 6.18 0.41 0.45 1.19 1.54 1.73 2.43 1.74 2.85 2.64 3.60 4.36 3.60 0.84 0.00 1.93 -0.15 2.41 -0.34l0.89 -0.34 -0.19 2.09c-0.22 2.48 -0.03 2.67 2.78 2.77 1.11 0.04 2.72 0.40 3.67 0.83 1.57 0.71 1.79 0.73 2.97 0.23 0.70 -0.29 1.46 -0.94 1.69 -1.45 0.23 -0.50 0.63 -0.92 0.90 -0.92 0.52 0.00 1.51 0.93 2.13 2.00 0.36 0.62 0.51 0.64 1.88 0.19 1.31 -0.43 1.68 -0.42 3.21 0.15 0.95 0.35 2.49 1.12 3.43 1.71 1.19 0.75 1.97 1.01 2.57 0.86 0.60 -0.15 0.93 -0.04 1.08 0.36 0.22 0.58 0.99 0.57 3.09 -0.07 0.87 -0.26 0.88 -0.25 0.27 0.44 -0.77 0.88 -0.78 1.29 -0.06 2.69 0.51 0.99 0.69 1.07 1.78 0.87l1.22 -0.23 -0.91 2.00 -0.91 1.99 0.80 2.40c0.77 2.32 1.62 3.54 2.99 4.31 0.36 0.20 0.76 0.91 0.90 1.58 0.21 1.01 0.62 1.43 2.49 2.51 1.24 0.71 2.86 1.89 3.60 2.62 1.65 1.61 2.79 1.69 5.79 0.43 1.16 -0.49 2.74 -0.99 3.51 -1.11 1.31 -0.21 1.44 -0.14 2.28 1.15 1.19 1.82 2.93 2.29 4.86 1.30 1.27 -0.65 1.51 -0.66 4.22 -0.16 2.58 0.48 2.99 0.47 4.07 -0.04 1.67 -0.80 6.82 -2.04 8.38 -2.02 0.71 0.01 2.22 0.23 3.36 0.50 1.80 0.43 2.33 0.42 4.23 -0.09 1.72 -0.46 2.40 -0.50 3.25 -0.17 0.96 0.36 1.41 0.26 3.86 -0.87 1.53 -0.70 3.21 -1.58 3.73 -1.95 0.53 -0.37 1.20 -0.67 1.51 -0.67 1.14 0.00 0.94 0.76 -0.65 2.46 -2.03 2.17 -2.12 2.93 -0.35 2.93 0.71 0.00 1.62 -0.18 2.03 -0.40 0.69 -0.37 0.73 -0.33 0.51 0.63 -0.71 3.13 -0.70 3.28 0.11 3.54 0.62 0.20 0.70 0.35 0.36 0.76 -0.55 0.66 -1.57 0.65 -2.13 -0.03 -0.52 -0.62 -2.94 -0.72 -3.98 -0.17 -0.95 0.51 -0.87 1.38 0.24 2.54 1.36 1.42 0.95 2.50 -0.86 2.24 -0.73 -0.10 -2.01 -0.43 -2.83 -0.73 -1.38 -0.50 -1.59 -0.49 -2.65 0.12 -1.14 0.66 -1.15 0.66 -1.69 -0.14 -0.58 -0.86 -2.72 -1.16 -3.16 -0.44 -0.13 0.21 -0.58 -0.15 -1.02 -0.80 -1.30 -1.93 -3.64 -3.36 -5.45 -3.32 -3.62 0.08 -6.63 2.09 -9.77 6.51 -2.64 3.73 -5.05 5.87 -6.60 5.87 -0.57 0.00 -1.69 -0.54 -2.66 -1.29 -2.40 -1.84 -3.60 -2.11 -5.24 -1.19l-1.31 0.74 -1.66 -0.88c-0.91 -0.48 -2.58 -1.00 -3.71 -1.14 -1.92 -0.24 -2.15 -0.18 -3.61 0.86 -0.97 0.70 -2.41 1.29 -3.83 1.57 -2.07 0.42 -2.28 0.54 -2.38 1.44 -0.06 0.54 0.15 1.80 0.48 2.79 0.45 1.36 0.94 2.03 1.98 2.72 1.29 0.85 1.51 0.89 3.22 0.52 3.89 -0.83 4.92 -0.61 8.39 1.80 4.32 3.00 6.57 5.34 6.85 7.12 0.12 0.77 0.52 1.76 0.88 2.20 0.61 0.75 0.75 0.77 1.95 0.34 1.83 -0.66 2.98 0.11 3.25 2.19 0.14 1.08 0.57 1.88 1.48 2.82 1.42 1.46 1.94 3.15 1.32 4.31 -0.34 0.63 -0.74 0.76 -2.31 0.76 -1.04 0.00 -2.20 0.22 -2.58 0.50 -0.66 0.48 -0.63 0.62 0.66 4.41 0.73 2.15 1.33 4.40 1.33 5.01 0.00 0.83 0.54 1.73 2.22 3.69 2.34 2.72 2.72 2.90 4.97 2.20 0.69 -0.21 2.68 -0.43 4.43 -0.49l3.18 -0.10 2.51 -2.48c1.38 -1.36 3.02 -3.11 3.64 -3.88l1.12 -1.40 -0.74 -1.30c-1.00 -1.75 -0.68 -2.49 2.47 -5.67 2.42 -2.45 2.53 -2.64 2.31 -3.85 -0.14 -0.72 -0.63 -1.58 -1.13 -1.97 -0.49 -0.38 -0.89 -0.87 -0.89 -1.09 0.00 -0.49 0.07 -0.49 1.26 -0.04 0.83 0.32 1.07 0.23 1.90 -0.72 0.52 -0.59 1.09 -1.08 1.26 -1.08 0.33 0.00 0.07 1.65 -0.56 3.48 -0.35 1.01 -0.26 1.41 0.80 3.42 0.66 1.25 1.42 2.54 1.70 2.86 0.77 0.89 2.62 1.15 3.37 0.47 0.57 -0.52 0.69 -0.47 1.44 0.63 0.45 0.65 1.55 1.96 2.45 2.90 1.40 1.46 1.84 1.71 3.02 1.71 0.76 0.00 1.87 -0.26 2.48 -0.57 0.60 -0.31 1.18 -0.48 1.29 -0.37 0.11 0.11 0.28 1.02 0.37 2.01 0.14 1.50 0.36 1.95 1.24 2.57 0.59 0.42 1.75 0.84 2.59 0.93 1.33 0.15 1.63 0.05 2.27 -0.77 1.04 -1.32 2.00 -1.18 3.41 0.52 0.97 1.16 1.52 1.50 2.72 1.66 1.38 0.19 1.59 0.10 2.66 -1.11 0.64 -0.72 1.27 -1.30 1.40 -1.30 0.07 0.00 0.04 0.42 0.09 0.57l0.76 -0.87 7.03 0.21c0.00 0.00 -0.62 -0.57 -1.54 -1.59 -0.91 -1.01 -2.12 -2.47 -3.30 -4.26 -1.18 -1.78 -2.32 -3.89 -3.10 -6.20 -0.39 -1.15 -0.70 -2.36 -0.87 -3.60 -0.17 -1.24 -0.22 -2.51 -0.09 -3.81 0.51 -5.08 1.38 -10.23 2.34 -14.87 -0.08 -0.30 -0.16 -0.45 -0.26 -0.91 -0.25 -1.24 -0.57 -4.28 -0.72 -6.75 -0.15 -2.47 -0.39 -4.79 -0.54 -5.14 -0.33 -0.79 -2.01 -1.70 -3.14 -1.70 -0.46 0.00 -1.38 0.49 -2.04 1.10 -1.15 1.05 -1.19 1.18 -1.01 3.15 0.10 1.13 0.37 3.17 0.59 4.53 0.43 2.67 0.40 2.86 -0.39 2.55 -0.66 -0.25 -1.43 -1.75 -2.86 -5.57 -1.18 -3.14 -3.11 -6.20 -4.32 -6.85 -1.05 -0.56 -1.76 -2.27 -2.35 -5.65 -0.30 -1.71 -0.71 -3.42 -0.92 -3.81 -0.27 -0.51 -0.25 -1.24 0.07 -2.58 0.38 -1.58 0.36 -2.29 -0.12 -4.53 -0.90 -4.15 -1.10 -6.92 -0.59 -7.90 0.25 -0.47 0.97 -1.51 1.60 -2.30 1.28 -1.60 1.99 -3.35 1.99 -4.92 0.00 -0.57 0.34 -1.70 0.74 -2.50 0.41 -0.80 0.66 -1.67 0.56 -1.94 -0.10 -0.26 -1.22 -1.91 -2.48 -3.65 -1.26 -1.75 -2.92 -4.34 -3.68 -5.76 -1.23 -2.28 -1.34 -2.70 -0.97 -3.51 0.23 -0.51 0.99 -1.19 1.68 -1.52 0.70 -0.33 1.26 -0.79 1.26 -1.03 0.00 -0.23 -1.20 -1.34 -2.67 -2.47l-2.67 -2.04 -2.63 0.01c-1.45 0.01 -3.04 0.03 -3.54 0.06 -3.33 0.18 -11.90 -0.12 -12.90 -0.44 -0.67 -0.22 -2.04 -1.15 -3.06 -2.07 -2.62 -2.37 -3.70 -3.08 -6.26 -4.12 -1.24 -0.51 -2.88 -1.41 -3.65 -2.02 -1.06 -0.84 -1.75 -1.10 -2.95 -1.10 -0.91 -0.00 -2.38 -0.38 -3.52 -0.91 -2.62 -1.22 -4.53 -1.63 -9.02 -1.95 -0.80 -0.06 -1.46 -0.09 -2.04 -0.11zm-60.50 2.39c-0.11 -0.01 -0.21 0.00 -0.33 0.05 -0.34 0.13 -1.39 0.37 -2.33 0.52 -0.94 0.15 -1.81 0.38 -1.93 0.49 -0.12 0.12 -0.11 0.80 0.03 1.52 0.19 1.01 0.50 1.41 1.39 1.80 1.61 0.70 2.06 0.65 3.58 -0.38 1.55 -1.05 1.61 -1.35 0.61 -2.99 -0.40 -0.66 -0.70 -0.97 -1.02 -1.01zm7.06 11.47c-0.62 -0.01 -1.13 0.17 -1.83 0.59 -0.71 0.44 -1.83 0.76 -2.67 0.76 -0.80 0.00 -2.64 0.24 -4.09 0.53 -1.46 0.29 -3.13 0.57 -3.73 0.63 -1.22 0.12 -1.59 1.14 -0.89 2.45 0.38 0.71 0.65 0.75 3.71 0.63 4.65 -0.18 9.20 -1.46 10.70 -3.01 1.37 -1.42 1.21 -2.18 -0.53 -2.51 -0.24 -0.04 -0.46 -0.07 -0.66 -0.07zm132.36 5.67c-0.37 0.00 -1.14 0.35 -1.73 0.79 -1.61 1.19 -1.47 2.74 0.42 4.80 0.82 0.89 1.67 1.61 1.89 1.61 0.86 -0.00 2.74 -1.45 2.74 -2.11 0.00 -1.66 -2.23 -5.08 -3.32 -5.08zm-163.26 6.76c-1.04 -0.01 -2.27 0.58 -3.16 1.67 -0.47 0.57 -0.45 0.69 0.16 1.14 1.10 0.81 2.58 0.60 3.86 -0.54 0.97 -0.86 1.09 -1.13 0.71 -1.58 -0.38 -0.46 -0.94 -0.68 -1.57 -0.69zm13.80 18.11c-0.24 0.00 -0.52 0.03 -0.88 0.08 -0.85 0.12 -2.99 0.37 -4.77 0.55 -3.58 0.38 -4.44 0.63 -7.47 2.23 -1.14 0.60 -2.75 1.29 -3.58 1.52 -1.24 0.36 -1.55 0.63 -1.80 1.60 -0.18 0.69 -0.16 1.43 0.05 1.82 0.55 1.04 4.30 2.83 6.86 3.29 1.29 0.23 3.22 0.70 4.29 1.05v0.00 0.00c2.29 0.74 4.13 0.53 5.64 -0.65 0.55 -0.44 1.42 -0.77 1.92 -0.74 1.85 0.12 1.92 0.06 1.69 -1.37 -0.16 -1.01 -0.04 -1.63 0.49 -2.43 0.45 -0.68 0.71 -1.69 0.71 -2.76 0.00 -1.43 -0.19 -1.88 -1.25 -3.01 -0.87 -0.92 -1.20 -1.20 -1.91 -1.19zm128.20 1.74c-0.47 0.00 -1.19 0.40 -1.66 1.05 -0.82 1.16 -0.94 2.23 -0.36 3.32 0.21 0.39 0.55 0.66 0.75 0.59 0.36 -0.12 1.71 -3.64 1.73 -4.51 0.01 -0.32 -0.18 -0.46 -0.46 -0.46zm4.61 8.69c-0.44 0.02 -0.87 0.14 -1.07 0.31 -0.58 0.48 -1.05 2.34 -0.73 2.87 0.32 0.51 1.72 0.46 2.48 -0.10 0.37 -0.27 0.66 -0.99 0.70 -1.71 0.06 -1.11 -0.04 -1.25 -0.95 -1.36 -0.14 -0.02 -0.29 -0.02 -0.43 -0.01zm6.25 10.43c-0.42 0.03 -0.73 0.66 -0.50 1.37 0.14 0.43 0.43 0.71 0.66 0.64 0.58 -0.19 0.75 -1.33 0.27 -1.81 -0.15 -0.15 -0.30 -0.21 -0.44 -0.20zm-62.54 35.55c-0.92 0.00 -1.20 1.06 -0.49 1.85 0.64 0.71 2.29 0.92 2.29 0.30 0.00 -0.74 -1.18 -2.14 -1.80 -2.14zm22.15 22.89c-0.19 -0.00 -0.33 0.09 -0.50 0.26 -1.04 1.04 -0.24 2.28 2.37 3.62 2.40 1.23 3.46 1.48 4.55 1.06 1.07 -0.41 0.57 -1.17 -1.34 -2.04 -1.05 -0.48 -2.62 -1.39 -3.48 -2.01 -0.86 -0.62 -1.28 -0.88 -1.59 -0.88z\"}}});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.iran.js",
    "content": "/**\n\tIran Vector Map\n\tCreated By Mahmoud Eskandari E-mail:info@webafrooz.com\n\thttp://Webafrooz.com\n**/\njQuery.fn.vectorMap('addMap', 'iran_ir', {\"width\": 600, \"height\": 600, \"paths\": {\"15\": {\"path\": \"M353.778,484.712c-0.204,0.204-0.767,1.047-1.086,0.647c-0.827-1.037-1.373-1.065,0.181-1.321c1.159-0.191,0.241-1.308,0.129-1.762,c1.186-0.392,0.011-1.69,1.216-1.813c0.314-0.032,0.236,0.389,0.362,0.596c0.17,0.278,1.727,0.29,1.5,0.648,c-0.309,0.486-1.089,0.681-1.449,1.269c-0.285,0.466-0.058,0.691,0.129,1.114c0.293,0.664,0.37,0.697,1.035,0.492,c1.294-0.398-0.207,1.125-0.207,1.451c0,0.426,0.75,0.525,0.75,1.166c0,0.801-1.546,0.131-1.733-0.544,c-0.095-0.344,0.073-0.81,0.181-1.088c0.068-0.176-0.222-0.894-0.414-0.751L353.778,484.712L353.778,484.712z M345.481,490.346,l1.34,0.013c0.671,0.399,1.383,0.555,1.319,1.554c-0.074,1.158-0.609,1.96-0.543,3.186c0.061,1.134-1.56,1.24-1.086,2.616,c0.447,1.301,0.758,2.382,0.414,3.782c-0.596,2.42,1.885,3.342,4.293,3.342l0,0c-0.346-1.397-0.552-2.951,0.491-4.196,c1.153-1.153,1.093-2.818,1.966-3.601c1.01-0.907,0.182-2.637,1.371-2.72c0.986-0.069-0.495-1.184-0.414-1.347,c0.24-0.482,0.528-0.418,0.181-0.984c-0.562-0.919,0.188-1.772,0.957-2.383c-0.399-0.526-0.618-0.158-1.164-0.311,c-0.457-0.128-0.411-0.699-0.828-0.699c-1.719,0-0.173-1.046-0.905-1.995c-0.475-0.615-4.146-2.35-4.371-2.124,c-0.819,0.819-1.219,2.63-1.888,3.678C346.177,488.842,345.809,489.582,345.481,490.346L345.481,490.346z\", \"name\": \"kish\"},\"16\": {\"path\": \"M88.025,126.032l3.75,9.17l0,0l-1.242,0.466c-1.013,0.757-0.514,0.974,0,1.943c0.528,0.995-0.879,0.732-0.879,1.632,c0,0.626-0.057,0.962-0.491,1.399c-0.707-0.142-2.869,0.147-3.569,0.44c-1.019,0.427-1.894-0.358-2.923-0.544,c-3.022-0.549-4.12-0.821-5.664-3.704c-0.14-0.261-4.453,1.089-5.405,1.14c-2.403,0.129-5.432,0.934-7.785,0.052,c-2.395,0-2.618,1.147-4.449-0.544c-1.483-1.37-3.149-0.943-4.863-0.337c-4.995,1.769,1.601,7.02-4.319,7.02,c-0.814,0-5.872-0.138-5.613,1.062c0.453,2.089,0.013,1.056-1.215,1.865c-0.527,0.347,0.242,0.937-0.052,1.399,c-0.196,0.308-0.76,0.949-0.828,1.217c-0.132,0.033-0.422,0.192-0.569,0.104c-1.182,0.705-0.506,1.224-1.112,2.357l-1.798,1.349l0,0,c-0.607-0.063-1.25-0.02-1.926,0.153c-3.41,0.875-2.708,0.088-2.043-2.513c0.355-1.39-0.312-1.358-1.138-2.487,c-0.83-1.134,0.065-2.718-0.595-3.601c0.582-0.778-0.295,0.567-0.698-1.502l-0.44-2.254c0.613-0.821-0.307-2.06-0.647-2.668,c-0.694-1.244-1.166-0.618-2.38-0.181c-3.151,1.133-2.089-2.262-3.905-3.341c-2.108-1.252,0.281-1.809-0.233-3.135,c-0.276-0.712,1.17-0.287,1.112-1.244c-0.053-0.881-0.172-2.377-0.517-3.16c-0.603-1.364-1.736-0.626-2.406-1.295,c-0.216-0.216-0.034-1.307-0.595-1.114c-0.786,0.27-0.988-0.207-1.707,0.026c-0.962,0.107-1.842,0.142-1.267-1.269,c0.184-0.453,0.599-0.971,0.724-1.347c0.166,0,0.465-0.176,0.621-0.207c0.344-1.361,1.191-1.689,0.13-3.316,c-0.568-0.87,1.157-2.6-0.31-2.953c-0.631-0.152-1.037-1.034-1.707-0.44c-0.432,0.382-0.403-0.434-0.569-0.622,c-0.312-0.353-0.621-0.252-0.621-0.829c0-0.726-0.939-0.56-0.802-1.269l0.621-1.191l0,0l0.052-1.244,c-0.228-0.536-0.488-1.089-0.388-1.684c0.094-0.561,0.719-0.657,1.034-1.088c1.038-1.414-0.911-1.704-1.707-2.28,c-0.711-0.513,0.19-1.551-0.828-1.813c-1.648-0.425-1.354-0.222-1.966-1.762c-2.102-0.297-1.198-1.036-1.811-2.59,c0-1.183,1.781-0.797,0.698-2.306c-0.596-0.83,0.773-1.285-0.44-2.409c-2.093-1.94,1.882-1.913,0.284-4.455,c-0.85-1.353-1.989-1.627-3.388-1.14c-1.449,0.505-1.908-1.46-2.664-2.461c-0.545-0.723-1.717-1.342-2.69-1.062,c-4.412,1.27-0.362-4.35-0.362-5.44c0.706-0.239,0.549-1.572,0.854-1.995c0-1.172,0.596-0.621,1.138-1.295,c0.501-0.622-0.633-1.01,0.543-1.01c0.401,0,1.037-2.409,0.983-2.824c-0.106-0.81-0.721-1.622,0.388-2.176,c0.585-0.292,2.246-1.031,2.302-1.761c0.085-1.131-1.451-2.459-2.431-1.943c-1.234,0.65-1.201-0.215-2.302,0.078,c-1.526,0.406-0.539-1.488-0.569-1.891c-0.078-1.037-1.135-1.662,0.052-2.849c-0.289-0.725-0.225-2.556,0.285-3.264,c-0.157-0.573,0.146-1.12-0.543-1.451c-0.704-0.337-1.434,0.246-0.957-1.218c0.565-1.734-1.473-1.105,0.337-3.057,c0.593-0.64-0.641-0.765,0.103-1.71c0.548-0.697,0.486-2.295-0.647-2.383c-1.784-0.139-1.077-2.062-1.992-2.875,c-0.683-0.608,0.13-1.425-0.336-1.762c-1.082-0.781,0.326-1.169,0.543-1.606c0.206-0.414-0.426-1.14-0.44-1.606,c-0.257-1.276,1.173-1.014,0.621-2.124c-0.139-0.279-1.063-2.11-1.19-2.202c-0.632-0.456-1.216-0.19-1.733-0.466,c-0.894-0.479-0.082-1.512-0.647-2.228c-0.317-0.402-0.166-0.768,0.052-1.166c0.232-0.424-0.607-2.388-1.034-2.668,c-0.624-0.409-0.122-1.53-0.155-1.502c0.621-1.347,1.686-0.641,2.38-0.026c0.743,0.658,2.1-0.974,3-0.751,c0.046,0.188,0.211,0.431,0.259,0.622c0.403,0.079,1.482,0.615,1.552,0.596c0.641-0.182,3.104-1.18,3.492-1.658,c0.745-0.918-1.121-0.886,0.259-2.383c0.746-0.81,0.28-1.267,0.052-2.124c-0.281-1.056,0.889-1.55,1.267-2.564,c0.498-1.334-0.293-2.462,0.853-3.419l3.104-2.772l1.242,2.305l2.354,0.518l0.461,1.31l1.453,0.71l0,0,c0.118,0.363,0.15,0.778,0.384,1.079c0.348,0.446,0.355,0.639,1.09,0.579c0.287-0.023,1.183-0.143,1.215,0.363,c0.002,0.035-0.082,1.047-0.052,1.321c0.004,0.034,0.007,0.112,0.052,0.129c0.68,0.268,0.541,1.293,0.983,1.787,c0.541,0.605,0.776,0.793,0.776,1.658c0,1.208,0.261,2.069,1.474,2.383c1.484,0.384,1.621,0.647,2.172,1.969,c0.242,0.579,0.836,1.044,1.086,1.606c0.448,1.007-0.174,2.844,1.009,3.575c1.055,0.653,4.628,0.653,5.121,1.554,c0.522,0.954,1.678,2.359,1.759,3.342c0.078,0.956,1.604,0.098,1.604,2.072c0,0.861,0.245,1.361,0.631,1.644l0,0l-1.174,3.796,c-0.076,0.058-0.23,0.207-0.336,0.233c-0.236,0.962-1.192,0.73-1.086,2.487c0.065,1.089-0.597,1.442-0.672,2.332,c-0.092,1.096,0.347,3.122,0.827,4.067c0.244,0.48,0.642,1.447,0.673,1.995c0.049,0.864-0.527,0.759-0.646,1.243,c-1.135,0.163-4.156,3.429-5.354,4.145c-1.239,1.553-2.131,2.754-2.276,4.818c-0.188,2.683,3.082,3.757,3.75,6.424,c0.736,2.938,0.724,5.99,0.724,9.041c0.408,2.176,0.336,4.302,1.086,6.45c0.986,2.824,3.563,3.061,3.337,6.321,c-0.254,3.655-2.212,5.331,1.215,8.083c1.672-0.324,5.477,3.043,6.543,4.196c1.91,2.065,1.981,2.36,4.837,1.917,c1.492-0.231,3.489-0.926,4.526,0.622c2.131,3.181,5.285,5.379,7.889,8.367c3.668-0.71,2.64-4.662,6.208-5.388,c1.793-0.365,1.039,1.257,2.405-0.751c1.885-2.772,3.462,1.012,4.759,1.347c2.552,0.66,0.651,2.484,1.759,3.834,c2.171,2.647-1.244,5.854,2.949,6.761C83.021,127.549,84.826,126.482,88.025,126.032L88.025,126.032z\", \"name\": \"west azarbaijan\"},\"17\": {\"path\": \"M122.165,111.707l2.286-2.053c2.929-0.999,3.038,0.377,5.215,1.769c1.317,0.842,2.151-0.129,2.923-1.088,c0.477-0.592,3.404-0.882,4.112-0.882l0,0c-0.139-0.34-0.198-0.669-0.155-0.983c0.299-1.103,1.149-3.97,0.181-4.74,c-1.701-1.352-3.029-2.186-4.009-4.274l-5.483-11.683c-0.095-0.774-0.879-1.213-0.879-2.046c0-0.829,0.611-1.261,0.802-1.969,c0.281-1.044-0.181-3.102,0.259-3.756c1.581-2.353,0.112-5.67,2.664-7.616c2.331-1.777-0.965-1.104-1.423-2.228,c-0.527-1.296,0.084-0.907-1.319-1.45l-0.084-5.983l0,0c-0.113-0.095-0.24-0.182-0.382-0.261c-0.222-0.123-0.892-0.409-1.009-0.622,c-0.209-0.381,0.188-0.904-0.052-1.295c-0.399-0.652-1.228,0.111-1.5-0.933c-0.053-0.203-0.258-1.153-0.233-1.166,c-0.362-0.488-1.51,0.147-2.069,0.259c-1.269,0.48-2.168-0.038-2.38-1.321c-0.213-1.293-1.597-0.63-1.319-1.995,c0.576-2.832-2.515-2.004-3.957-3.005c-0.443-0.308-0.427-1.145-1.06-1.425c-1.189-0.526-1.748-2.797-1.474-3.912,c0.444-0.11,0.691,0.145,1.267,0c0.012-0.05,0.028-0.065,0.078-0.078c0.447-2.266,4.801-0.884,6.595-2.409,c1.194-1.014,0.622-1.429,0.957-2.694c-0.105-0.415-0.883-2.154-1.112-2.435c-0.657-0.802-1.633,0.181-2.224-1.347,c-0.674-1.741-3.718-2.309-2.095-4.792c0.437-0.669,1.864-1.925,2.612-2.124c0.974-0.259,0.981,0.262,1.992-0.492,c0.757-0.566,1.46-0.278,1.862-1.269l-9.285-11.165l-2.194-0.998c-0.027,0.064-0.054,0.118-0.082,0.169,c-0.315,0.567-4.093,2.458-4.397,2.357c-1.127-0.375-1.411-0.177-2.121,0.958c-0.554,0.885-0.878,1.014-1.966,1.114,c-0.676,0.062-0.982,1.874-1.811,1.528c-0.233-0.097-0.795,0.09-1.112,0.285c-0.516,0.317-0.533,1.161-1.216,1.502,c-1.153,0.576-2.805,0.306-3.673,0.933c-1.574,1.137-3.351,5.511-5.483,5.673c-0.873,0.066-3.698,1.991-4.164,2.746,c-0.745,1.204-0.494,1.367-1.491,2.249l0,0l2.965,3.451c0.025,0.784,1.235,2.558,1.603,3.368c1.203,2.638-0.732,5.713,0.104,8.238,h0.103c0.149-0.442,2.494-1.829,3-2.668c0.899-1.49,2.311-4.025,3.751-4.87c2.393-1.404,2.378-1.242,2.819,1.217,c0.517,2.881,2.429,4.76,0.905,7.539c-0.91,1.659-4.453,2.773-4.061,4.766c1.718,0.422,1.656-0.441,3.311-0.441,c4.846-1.661-3.133,11.299-3.699,12.305c-0.891,1.586-1.106,1.049,0.491,2.124c1.632,1.098,4.413,2.596,6.259,3.16,c2.359,0.721,4.063-1.082,5.82-0.648c0.173,0.703,0.903,2.148,1.267,2.875l2.095,8.082l2.069,2.409l3.854,0.906,c0,0.73,0.447,1.43,0.052,2.15c-1.03,1.879-1.607,4.278-1.707,6.45c-0.158,3.425,0.743,4.18,3.776,5.699,c1.485-0.24,1.587,4.466,1.681,5.388c0.113,1.113,0.436,1.234,1.241,1.813C120.872,110.372,122.039,111.195,122.165,111.707,L122.165,111.707z\", \"name\": \"Ardabil\"},\"18\": {\"path\": \"M37.781,44.496c0.986,0.724,2.892,0.041,3.973,0.403c1.154,0.387,0.601,0.829,2.121,0.829c1.189,0,1.338,0.984,2.25,0.958,c1.591-0.045,1.839-0.001,3.026,1.192c1.474,1.48,1.306,0.056,2.483-0.078c0.887-0.101,0.907,0.981,2.095,0.492,c1.817-0.747,1.99,1.21,3.575,1.363l0,0c0.064,0.006,0.131,0.01,0.201,0.01c2.044,0,3.687-2.735,5.819-2.875,c1.315-0.086,1.208,1.212,2.845,0.751c1.03-0.29,1.67,0.217,2.51,0.315l0,0c0.354,0.041,0.744,0.01,1.215-0.186,c0.865-0.359,1.123-0.534,1.578-1.321c0.13-0.226,0.616-1.112,0.854-1.217c0.547-0.241,0.16-1.326,0.595-1.58,c1.149-0.673,1.968-0.287,2.302-1.813c0.236-1.077,0.846-0.823,1.552-1.528c0.887-0.887,0.963-2.894,2.897-2.357,c0.466,0.129,0.733,0.857,1.397,0.466c0.51-0.3,1.007-0.981,1.474-1.373c0.078-0.066,0.151-0.128,0.217-0.187l0,0l2.965,3.451,c0.025,0.784,1.235,2.558,1.603,3.368c1.203,2.638-0.732,5.713,0.104,8.238h0.103c0.149-0.442,2.494-1.829,3-2.668,c0.899-1.49,2.311-4.025,3.751-4.87c2.393-1.404,2.378-1.242,2.819,1.217c0.517,2.881,2.429,4.76,0.905,7.539,c-0.91,1.659-4.453,2.773-4.061,4.766c1.718,0.422,1.656-0.441,3.311-0.441c4.846-1.661-3.133,11.299-3.699,12.305,c-0.891,1.586-1.106,1.049,0.491,2.124c1.632,1.098,4.413,2.596,6.259,3.16c2.359,0.721,4.063-1.082,5.82-0.648,c0.173,0.703,0.903,2.148,1.267,2.875l2.095,8.082l2.069,2.409l3.854,0.906c0,0.73,0.447,1.43,0.052,2.15,c-1.03,1.879-1.607,4.278-1.707,6.45c-0.158,3.425,0.743,4.18,3.776,5.699c1.485-0.24,1.587,4.466,1.681,5.388,c0.113,1.113,0.436,1.234,1.241,1.813c0.414,0.297,1.581,1.12,1.707,1.632l0,0l-1.319,0.13c-0.578-0.289-1.172-0.427-1.759-0.751,c-0.422-0.233-0.741-0.558-1.215-0.725c-1.084-0.383-2.66-0.217-3.802,0.026c-0.891,0.189-1.832,0.115-2.741,0.285,c-1.364,0.114-2.735-1.294-3.751-0.751c-1.745,0.933-2.549,0.7-4.5,0.7c-2.711,0-6.016,3.304-8.277,4.715,c-1.54,0.961-1.702,3.162-3.233,3.808c-2.723,1.149-2.986,2.524-4.009,5.026l0.465,1.865l0,0c-3.199,0.45-5.004,1.516-8.302,0.803,c-4.193-0.907-0.778-4.114-2.949-6.761c-1.107-1.35,0.793-3.174-1.759-3.834c-1.297-0.335-2.874-4.119-4.759-1.347,c-1.366,2.008-0.613,0.387-2.405,0.751c-3.567,0.726-2.54,4.678-6.208,5.388c-2.603-2.988-5.758-5.186-7.889-8.367,c-1.037-1.548-3.035-0.853-4.526-0.622c-2.855,0.443-2.927,0.148-4.837-1.917c-1.066-1.153-4.872-4.52-6.543-4.196,c-3.428-2.751-1.469-4.427-1.215-8.083c0.227-3.26-2.351-3.497-3.337-6.321c-0.75-2.148-0.679-4.274-1.086-6.45,c0-3.051,0.012-6.102-0.724-9.041c-0.668-2.667-3.939-3.741-3.75-6.424c0.145-2.064,1.037-3.266,2.276-4.818,c1.198-0.716,4.219-3.982,5.354-4.145c0.12-0.484,0.695-0.38,0.646-1.243c-0.031-0.548-0.429-1.515-0.673-1.995,c-0.48-0.945-0.92-2.971-0.827-4.067c0.075-0.889,0.738-1.242,0.672-2.332c-0.106-1.756,0.85-1.525,1.086-2.487,c0.106-0.026,0.26-0.175,0.336-0.233L37.781,44.496L37.781,44.496z\", \"name\": \"East azarbaijan\"},\"19\": {\"path\": \"M140.063,222.347c0.521-1.967,4.346-1.949,3.647-4.741c-0.292-1.167-0.69-1.534-0.414-2.849c0.289-1.375-0.134-2.142-0.802-3.316,c-0.837-1.416-1.899-1.953-2.354-3.782c-0.388-1.559,0.446-3.232,0.155-4.818c-0.162-0.882-4.343-2.083-2.923-3.031,c0.431-0.288,2.37,0.698,3.518,0.311c0.939-0.317,2.051,0.602,2.328,1.451c1.473,0-1.464-4.296-1.293-5.181,c0.38-1.967,4.289-0.463,2.535-3.989c-0.259-0.806-1.321-1.903-0.595-2.824c0.082-0.104,4.752,0.657,5.768,0.544,c1.956-0.218,4.43-0.763,3.129,2.072c-0.606,1.32-1.43,2.726,0.337,3.29c1.183,0.378,5.065,4.071,3.957-0.674,c-0.523-2.243-1.266-5.141-3.311-6.451c-1.397-0.894-2.504-1.122-4.035-1.502c-0.623-0.155-2.567-1.427-2.043-2.254,c0.657-1.037,4.298,0.218,4.397-1.969c0.091-2.008-1.167-2.535-2.121-4.067c-0.453-0.783-0.583-3.704,0.207-4.274,c1.273-0.92,1.187,1.234,1.164,1.969c-0.048,1.556,1.723,2.332,2.483,0.803c0.921-1.855-0.828-2.485-0.828-4.041l0.104-1.451l0,0,c-0.811-1.426-3.456,0.009-4.681-0.518c-2.196-0.944-4.186,0.126-6.362-0.155c-1.46-0.188-2.075-1.325-0.828-2.487,c0.45-0.419,1.067-0.197,1.449-0.622c0.543-0.605-0.522-1.51-1.06-1.684c-1.412-1.238-3.036-2.327-4.94-2.435,c-0.679-0.039-1.225,0.363-1.81,0.363c-0.025,0.038-0.026,0.014-0.052,0.052c-0.135,0-0.334,0.214-0.414,0.285l0,0v2.772,l-2.871,1.217c-2.487-0.167-4.042-1.812-6.052-2.979c-2.242-1.301-3.165,1.697-5.509,1.114c-1.395-0.347-1.654-2.166-2.69-3.031l0,0,l-1.164-0.518c-0.916-0.916-2.125-1.987-3.311-2.513c-2.166-0.96-1.862,0.18-0.621,1.425c1.626,1.63,4.677,3.941,0.362,4.43,c-0.825,0.093-1.382,0.753-2.121,1.062c-2.375,0.994-0.793-4.999-2.819-2.643c-0.679,0.79-2.36,0.963-1.681,2.383,c1.071,2.243,2.801,3.924,3.388,6.424c0.233,0.996,0.13,3.497,1.449,3.497c1.379,1.973,3.841,2.384,4.888,4.689,c0.87,1.915,0.577,3.959-0.492,5.751c-1.236,2.073-1.641,1.735-2.457-0.052c-1.48-3.243-1.63,2.221-3.336,1.166,c-0.755-0.467-1.577-0.344-1.707,0.699l0,0c0.088,0.919,0.046,1.665-0.569,2.28c-0.553,0.553-1.326,0.857-1.862,1.451,c-0.692,0.766,1.255,2.616-0.465,3.057c-1.227,0.314-6.279,0.341-4.087,3.109c0.199,0.251,2.2,1.589,2.483,1.632,c0.885,0.135,2.498-0.58,2.845,0.829c0.383,0.723,0.059,2.823,0.647,3.083c1.017,0.449,1.365-1.052,1.681-1.658,c0.622-1.196,1.329-0.516,1.759-1.14c0.604-0.876,1.394-0.673,1.888,0.13c0.459,0.746-0.189,1.676-0.258,2.435,c-0.09,0.974,0.753,2.954-0.104,3.575c-0.485,0.351-4.484-0.717-5.276-0.958c-1.728-0.526-1.63,1.851-2.276,2.72l0,0l2.742,2.409,c0.894,0.689,2.586,1.691,3.207,2.487c1.524,1.952,4.08,0.866,6,3.652c1.278,1.854,2.945,1.843,5.018,1.762,c1.585-0.062,2.803,0.798,4.319,1.01c1.474,0.207,1.978-0.984,2.974-1.761c0.482-0.377,2.72,0.127,4.061-0.544,c1.221-0.612,1.466,1.153,2.483,1.969L140.063,222.347L140.063,222.347z\", \"name\": \"Hamadan\"},\"20\": {\"path\": \"M122.165,111.707l2.286-2.053c2.929-0.999,3.038,0.377,5.215,1.769c1.317,0.842,2.151-0.129,2.923-1.088,c0.477-0.592,3.404-0.882,4.112-0.882l0,0c1.049,2.559,6.683,5.723,8.173,7.876c1.143,1.652,1.159,3.67,1.604,5.544,c0.392,1.65,2.933,0.922,3.078,2.098l0,0l-9.492,5.44c-1.217,4.215,3.094,6.887,6.492,7.875c5.659,1.645,5.421,3.828,6.078,9.144,c0.165,1.046,1.605,4.199,0.388,4.844c-1.93,1.023-3.881,2.939-6.207,2.539c-1.483-0.255-2.36,0.391-3.518,1.243,c-0.301,0.221-2.163,1.275-2.354,0.518c-0.859-0.217-5.328-6.648-5.328-0.933c0,3.073-3.231,3.045-2.405,7.201l1.164,1.528l0,0,v2.772l-2.871,1.217c-2.487-0.167-4.042-1.812-6.052-2.979c-2.242-1.301-3.165,1.697-5.509,1.114,c-1.395-0.347-1.654-2.166-2.69-3.031l0,0c-0.545-1.094-0.087-2.106-1.5-2.798l-3.595-1.761c-1.816-0.89-5.851-2.272-3.518-4.767,c1.677-1.793,1.023-3.276,1.604-5.284c1.014-1.269,0.203-2.197-0.543-3.316c-0.959-1.439-0.755-2.357-1.086-3.886,c-0.814-3.756-4.053-2.322-6.828-3.316l-5.716-2.047c-1.38-0.494-1.865,0.483-3.362,0.441l-0.931-1.528l0,0l-3.75-9.17l0,0,l-0.465-1.865c1.023-2.502,1.285-3.877,4.009-5.026c1.531-0.646,1.693-2.847,3.233-3.808c2.26-1.411,5.566-4.715,8.277-4.715,c1.952,0,2.755,0.233,4.5-0.7c1.015-0.543,2.387,0.865,3.751,0.751c0.91-0.17,1.85-0.096,2.741-0.285,c1.143-0.242,2.718-0.409,3.802-0.026c0.475,0.168,0.794,0.493,1.215,0.725c0.587,0.325,1.181,0.462,1.759,0.751L122.165,111.707,L122.165,111.707z\", \"name\": \"Zanjan\"},\"21\": {\"path\": \"M91.775,135.203l0.931,1.528c1.497,0.042,1.982-0.934,3.362-0.441l5.716,2.047c2.775,0.993,6.014-0.441,6.828,3.316,c0.331,1.529,0.127,2.446,1.086,3.886c0.746,1.119,1.557,2.047,0.543,3.316c-0.581,2.009,0.074,3.491-1.604,5.284,c-2.333,2.495,1.701,3.877,3.518,4.767l3.595,1.761c1.413,0.692,0.955,1.704,1.5,2.798l0,0l-1.164-0.518,c-0.916-0.916-2.125-1.987-3.311-2.513c-2.166-0.96-1.862,0.18-0.621,1.425c1.626,1.63,4.677,3.941,0.362,4.43,c-0.825,0.093-1.382,0.753-2.121,1.062c-2.375,0.994-0.793-4.999-2.819-2.643c-0.679,0.79-2.36,0.963-1.681,2.383,c1.071,2.243,2.801,3.924,3.388,6.424c0.233,0.996,0.13,3.497,1.449,3.497c1.379,1.973,3.841,2.384,4.888,4.689,c0.87,1.915,0.577,3.959-0.492,5.751c-1.236,2.073-1.641,1.735-2.457-0.052c-1.48-3.243-1.63,2.221-3.336,1.166,c-0.755-0.467-1.577-0.344-1.707,0.699l0,0c-2.219,0-2.778,0.234-4.319-1.787c-1.332-1.748-1.905-3.886-4.371-3.886,c-1.359,0-2.132-2.15-2.974-1.917c-1.794,0.497,1.194,3.274-0.491,3.834c-0.959,0.319-1.928,0.249-2.949,0.052,c-3.336,0-0.63,5.541-3.802,3.86c-3.176-1.684-0.966,1.674-3.957,2.409c-0.175,0.712-0.207,3.038-1.293,2.824,c-2.672-0.528-1.357,1.21-1.448,2.202c-0.139,1.503-6.171-0.474-6.777-0.155c-2.808,1.479-1.613-2.334-1.707-3.264,c-0.13-1.273-1.423-0.466-2.069-0.466c-1.278-5.055-6.586-9.106-10.423-12.538l-3.698-1.714l0,0,c-0.09-0.852-0.645-1.503-1.268-2.198c-1.419-1.427-1.941-2.27-2.871-4.041c-0.793-1.512,0.365-2.007-0.336-3.29,c-0.834-1.524,0.122-0.668,0.905-0.933c0-1.786-1.132-1.532-0.103-3.135c1.145-1.784,1.318-1.036,3.517-1.036,c0.838,0,1.617-0.815,1.733-0.803c1.906,0.194,1.327,0.264,2.845-1.114c2.016-1.829,0.733-1.212,0.233-2.746,c-1.654,0-3.918,2.594-5.044-0.337c-0.479-1.248-5.23,0.406-5.276,0.544c-0.456,0-0.736-0.247-1.216-0.337,c-1.055,0-0.802,1.036-1.577,1.036c-0.509,0-0.997-0.537-1.552-0.259c-1.562,0.781-1.542-0.459-2.354-1.787,c-1.361-2.23-3.354-4.491-5.988-4.764l0,0l1.798-1.349c0.606-1.134-0.07-1.652,1.112-2.357c0.147,0.088,0.437-0.07,0.569-0.104,c0.068-0.268,0.632-0.909,0.828-1.217c0.294-0.462-0.475-1.052,0.052-1.399c1.229-0.809,1.668,0.224,1.215-1.865,c-0.26-1.2,4.798-1.062,5.613-1.062c5.92,0-0.676-5.251,4.319-7.02c1.714-0.607,3.38-1.034,4.863,0.337,c1.83,1.691,2.054,0.544,4.449,0.544c2.353,0.882,5.382,0.077,7.785-0.052c0.952-0.051,5.265-1.401,5.405-1.14,c1.544,2.883,2.643,3.156,5.664,3.704c1.028,0.187,1.904,0.971,2.923,0.544c0.7-0.293,2.862-0.582,3.569-0.44,c0.435-0.437,0.491-0.773,0.491-1.399c0-0.899,1.407-0.636,0.879-1.632c-0.514-0.969-1.013-1.186,0-1.943L91.775,135.203,L91.775,135.203z\", \"name\": \"kurdistan\"},\"22\": {\"path\": \"M291.472,136.187l-3.983,1.425c-0.003,0.002-0.293,0.161-0.31,0.233c-1.739,0.439-3.645,3.402-4.112,5.025,c-0.631,2.191,0.275,5.176-2.121,6.269c-1.846,1.406-2.17,2.113-3.362,4.171c-1.991,3.435-3.776,4.279-7.734,3.73,c-1.681-0.233-2.387-0.543-3.595,0.958c-1.045,1.298-2.422,0.725-3.802,0.725l-1.81,0.311l0,0c-1.624-0.41-3.292-2.612-4.733-1.891,c-4.141,2.07-4.712-0.92-8.121-1.632c-1.265-0.264-4.237-0.314-4.733-1.813c-2.851,0-4.758,3.599-6.802,5.155,c-2.517,2.517-3.978,3.94-7.811,1.839c-3.214-1.762-3.148-5.916-6.544-8.134c-2.677-1.749-4.387-1.829-7.604-1.736l-3.931,0.078l0,0,l-0.595-1.373c0-1.44,0.248-2.423-1.629-2.565c-1.424-0.108-2.44-1.111-3.906-1.321c-0.967-0.138-2.114,0.228-2.845-0.596,c-0.767-0.865-1.763-2.313-3-2.383c-0.956-0.054-1.509,0.069-2.354-0.414l-2.897-1.036l0,0c0.451-0.594,0.012-1.819-0.569-2.176,c-0.783-0.481-1.741-0.684-2.509-1.192l-5.173-3.419l-6.895-5.602l0,0c1.728,0.109,3.545-1.323,3.789-3.07,c0.303-2.171-0.663-4.424,1.966-5.518l3.088-1.287l0,0c0.166,0.122,0.319,0.246,0.457,0.374c5.232,4.834,14.559,8.61,21.674,9.507,c0.024,0.002,0.473,0.022,0.491,0.078c1.387-0.697,5.906,2.33,7.397,2.849c2.857,0.995,8.985,1.342,11.923,0.518l13.579-3.808,c0.062,0.006,0.385,0.087,0.466,0.026c1.149,0.46,6.984-1.636,8.535-2.047l12.725-3.368c3.11-0.823,8.528-0.464,11.406-1.554,c1.508,0,5.463-0.45,6.854-0.984c0.622-0.239,1.736-0.655,2.354-0.725c0.93-0.106,0.681,0.296,0.31,0.829,c-0.583,0.839-7.37,1.235-8.819,1.606c-0.702,0.18-6.893-0.06-4.035,0.907c-0.251,0.335-2.489-0.049-3.311,0.466,c-0.24,0.15,0.474,1.3,0.724,1.425c0.948,0.472,3.104-0.544,4.293-0.544c1.757,0,4.643,0.214,6.337,0.648,c1.406,0.36,2.858,0.121,3.982-0.583l0,0l-0.179,1.697l-2.172,1.503l-0.724,2.228l2.173,1.295l4.371,2.331L291.472,136.187,L291.472,136.187z\", \"name\": \"Mazandaran\"},\"23\": {\"path\": \"M177.991,128.824l6.895,5.602l5.173,3.419c0.768,0.508,1.726,0.71,2.509,1.192c0.581,0.357,1.02,1.581,0.569,2.176l0,0,c-0.956,0.185-2.726-0.271-3.698-0.544c-0.821-0.23-2.086,0.036-2.974-0.078c-1.547-0.199-2.718-0.596-4.345-0.052,c-2.229,0.745,1.132,3.188,1.785,3.653c-0.149,0.518,2.071,0.96,2.431,1.14c4.234,2.117-1.654,4.289-0.31,6.062,c-0.068,0.113-0.148,0.818-0.181,0.984c-0.745,1.653-0.602,2.011-2.483,2.953c-1.981,0.993-3.81,1.672-5.871,2.357,c-2.433,0.808-1.435,3.302-0.802,4.793l0.672,1.684l0,0c-0.923,0-1.461-0.506-2.354-0.337c-1.024,0.195-2.139,0.651-3,1.244,c-0.551,0.379-1.77,0.832-2.121,1.295c-2.532,0-3.869,1.174-6.13,1.865c-1.397,0.427-4.246,0.263-4.94,1.658,c-0.415,0.834,0.035,1.917-1.164,1.917c-1.093,0-3.694-0.871-4.578-0.233l0,0c-0.811-1.426-3.456,0.009-4.681-0.518,c-2.196-0.944-4.186,0.126-6.362-0.155c-1.46-0.188-2.075-1.325-0.828-2.487c0.45-0.419,1.067-0.197,1.449-0.622,c0.543-0.605-0.522-1.51-1.06-1.684c-1.412-1.238-3.036-2.327-4.94-2.435c-0.679-0.039-1.225,0.363-1.81,0.363,c-0.025,0.038-0.026,0.014-0.052,0.052c-0.135,0-0.334,0.214-0.414,0.285l0,0l-1.164-1.528c-0.826-4.156,2.405-4.128,2.405-7.201,c0-5.715,4.469,0.716,5.328,0.933c0.191,0.757,2.053-0.297,2.354-0.518c1.158-0.852,2.034-1.498,3.518-1.243,c2.327,0.4,4.277-1.516,6.207-2.539c1.217-0.645-0.223-3.798-0.388-4.844c-0.657-5.316-0.419-7.499-6.078-9.144,c-3.398-0.988-7.709-3.66-6.492-7.875l9.492-5.44l0,0l0.543,2.332c1.794,2.647,6.891,4.456,10.087,4.456,c2.774,0,4.297,0.126,6.802-0.984c2.186-0.969,4.466-2.798,6.983-2.798L177.991,128.824L177.991,128.824z\", \"name\": \"Qazvin\"},\"24\": {\"path\": \"M136.701,109.452c1.049,2.559,6.683,5.723,8.173,7.876c1.143,1.652,1.159,3.67,1.604,5.544c0.392,1.65,2.933,0.922,3.078,2.098l0,0,l0.543,2.332c1.794,2.647,6.891,4.456,10.087,4.456c2.774,0,4.297,0.126,6.802-0.984c2.186-0.969,4.466-2.798,6.983-2.798,l4.02,0.849l0,0c1.728,0.109,3.545-1.323,3.789-3.07c0.303-2.171-0.663-4.424,1.966-5.518l3.088-1.287l0,0,c-1.733-1.277-4.803-2.304-5.595-4.134c-3-2.984-3.629-2.985-4.94-6.942c-1.034-3.12-1.229-4.93-5.069-5.285,c-2.334-0.216-2.993-1.936-4.759-2.616c-0.017-0.007-1.425,1.136-2.328,1.062c-0.42-0.035-3.172-0.126-3.259-0.388,c-0.13,0-0.107-0.044-0.362-0.052c-1.06-0.635-4.91-0.539-6.311-0.751c-1.874-0.284-4.323-1.151-6-2.072,c-2.409-1.323-7.115-3.843-7.889-6.839c-0.556-2.151-2.472-5.598-2.044-7.823c0-2.644-0.925-4.967-0.724-7.616,c0.216-2.857-1.164-4.907-1.164-7.668c0-0.665-0.06-2.072-0.064-3.338l0,0c-0.891,0-3.049-0.18-3.583,0.54,c-0.821,1.108-1.312,1.098-2.612,1.036c-2.01-0.095-1.54-2.222-2.877-3.34l0,0l0.084,5.983c1.403,0.543,0.791,0.155,1.319,1.45,c0.458,1.124,3.754,0.451,1.423,2.228c-2.552,1.946-1.083,5.262-2.664,7.616c-0.439,0.654,0.022,2.712-0.259,3.756,c-0.19,0.708-0.802,1.14-0.802,1.969c0,0.834,0.784,1.272,0.879,2.046l5.483,11.683c0.98,2.088,2.309,2.922,4.009,4.274,c0.968,0.77,0.118,3.638-0.181,4.74C136.503,108.783,136.562,109.112,136.701,109.452L136.701,109.452z\", \"name\": \"Gilan\"},\"25\": {\"path\": \"M95.422,221.311c0.829,0.926,1.398,2.896,1.345,4.145c-0.045,1.062-0.542,1.981-1.5,2.461c-1.444,0.723-1.62,2.461-3.13,3.057,c-1.621,0.64-3.14-0.251-4.837,0.311c-1.616,0.925-4.422,1.215-5.509,3.109c-0.786,1.37-2.393,3.11-3.336,4.119,c-0.489,0.523,2.339,3.963,2.845,4.533c0.882,0.995,1.101,2.094,2.483,2.539c2.308,0.743,2.528,2.502,5.173,2.746,c3.016,0.279,3.665,1.601,5.949,3.031l8.949,6.684c-0.077,0.026,0.525,0.774,0.595,1.088c0.228,1.024,0.185,2.066,0.854,2.927,c0.933,1.2,0.908,2.285,1.629,3.471c0.326,0.537,0.854,0.809,0.854,1.502c0,0.758-0.252,1.698,0.155,2.383l1.707,1.71l0,0,c0,0.416-1.026,2.338-1.216,2.875c-0.387,1.096-0.582,2.419-1.319,3.368c-1.542,1.984-3.646,3.394-2.586,6.113,c0.563,1.444,0.477,2.493-0.828,3.497l-3.798,2.612l0,0c-0.326-0.33-0.606-0.539-0.806-0.565c-1.344-0.177-0.895-0.749-1.397-1.788,c0.211-0.211,0.508-0.395,0.75-0.544c0.223-0.137,0.354-0.541,0.362-0.544c0-0.77-1.111-1.582-1.733-1.736,c-0.109-0.554,0.604-1.228,0.155-1.477c-0.48-0.265-1.378-0.018-1.681-0.57c-0.899-1.636,0.406-1.623,0.077-2.435,c-0.631-1.558-4.353-4.52-5.535-3.186c-2.529,2.854-13.634-6.027-14.458-8.756c-2.075-1.04-4.061-3.123-5.975-4.663,c-2.908-2.34-6.196-3.238-9.88-3.238c-2.33,0-3.543,0.482-3.543-2.331c0.219-0.074,0.22-0.169,0.543-0.13,c0.073,0.009,0.522,0.065,0.543,0c2.97,0-5.567-3.523-1.448-3.523c1.715,0,4.393-1.062,2.638-2.824,c-0.381-0.383,0.513-1.148-0.233-1.865c-0.863-0.686-1.828-1.374-2.405-2.28c-0.407-0.639-0.323-2.148-1.19-2.435,c0-1.129-0.779-4.001-2.276-3.135c-1.276,0.739-3.609-0.016-1.423-1.114c1.892-0.95,0.201-1.53,0.078-2.409,c-0.216-1.537-2.4-1.177-3.518-0.596c-1.727,0.898-0.546,0.31-1.242-0.777c-0.038-0.059-0.1-0.124-0.18-0.194l0,0l0.723-4.676,c0.323-1.005,0.53-2.365,1.086-3.238c0.173-0.27,1.005-2.367,0.621-2.461c-0.048-0.195-2.065-2.628-0.595-2.305,c2.335,0.512,4.671,0.085,6.259-1.503c0.643-0.643,3.364,1.988,4.423,2.331c1.819,0.59,2.713-0.465,4.475-0.285,c2.074,0.212,3.957,2.878,5.509,4.093c2.135,1.671,5.215,1.961,7.837,2.202c0.958,0.028,2.436,0.555,3.311,0.026,c1.403-0.849,4.231-2.422,5.949-2.072c1.451,0.295,1.626,1.678,3.31,0.648c0.824-0.504,1.266-2.369,1.423-3.29,c0.14-0.818-2.771-3.558-0.569-4.015c0.686-0.142,3.987-0.84,4.475-0.544L95.422,221.311L95.422,221.311z\", \"name\": \"Illam\"},\"26\": {\"path\": \"M95.422,221.311c0.018-0.092,0.002-0.26,0.078-0.285c0-0.333,0.754-0.668,0.569-1.321c-0.332-1.172-1.443-2.804,0.388-3.264,c2.11-0.531,4.386,0.828,4.837-1.943c0.334-2.056-1.828-3.983,0.724-5.052l2.018,0.363l0,0l2.742,2.409,c0.894,0.689,2.586,1.691,3.207,2.487c1.524,1.952,4.08,0.866,6,3.652c1.278,1.854,2.945,1.843,5.018,1.762,c1.585-0.062,2.803,0.798,4.319,1.01c1.474,0.207,1.978-0.984,2.974-1.761c0.482-0.377,2.72,0.127,4.061-0.544,c1.221-0.612,1.466,1.153,2.483,1.969l5.225,1.554l0,0l-0.207,1.969c0.962,2.372-0.388,2.673-0.388,4.741,c0,0.72-0.611,1.458-0.492,2.15c0.164,0.954,0.781,0.272,1.345,0.648c0.349,0.233,0.605,1.177,1.19,1.01,c1.754-0.5,1.792,0.372,3.181,0.596c1.818,0.292,4.811-1.684,4.811-3.627c0-1.535,4.683-4.143,5.664-3.419,c1.392,1.026,2.845,1.942,2.845,3.86c0,2.004-0.902,3.606,1.448,4.611c1.064,0.293,1.899,0.573,2.38,1.58,c0.28,0.586,0.536,1.07,1.293,0.699c0.801-0.393,0.424-1.575,0.802-2.253c1.167-2.094,1.718,1.548,2.354,1.243,c0.406-0.195,1.392-1.489,1.837-0.596c0.372,0.747-0.647,2.254-0.647,3.135c0,1.603,0.961,0.311,1.759,0.311l0.595,1.14l0,0,c-0.12,0.478-0.537,0.916-0.854,1.295c-0.268,0.322-0.955,0.522-0.569,1.062c0.482,0.674,1.838,0.306,1.759,1.347,c-0.061,0.812-0.621,1.495-0.879,2.254c-0.529,0.526-1.804,2.985-1.992,3.652c-0.325,1.157,0.646,3.212-1.293,3.212,c-1.045,0-2.163,0.976-2.974,0.751c-2.375-0.659-0.681,0.523-2.173,1.011c-0.608,0.198-1.676,0.141-1.914,0.855,c-0.473,1.42,1.912,3.217,0.88,4.715c-1.437,2.085-4.202,0.326-5.638,3.756l0,0c-2.166,0-4.873,1.678-6.802,0.466,c-2.297-1.442-4.044-3.813-6.181-5.492c-1.554-1.22-2.697,1.074-4.113,0.13c-2.507-1.674-2.688,1.342-4.681-2.099,c-1.652-2.85-5.43-1.215-7.423,0.078c-3.419,0.724-8.33-2.58-9.57,1.943c-0.791,2.887-2.44,4.686-2.612,7.849,c-0.075,1.383-2.283,3.047-3.155,4.196l0,0l-1.707-1.71c-0.407-0.685-0.155-1.626-0.155-2.383c0-0.693-0.527-0.965-0.854-1.502,c-0.722-1.186-0.697-2.271-1.629-3.471c-0.669-0.861-0.625-1.903-0.854-2.927c-0.07-0.314-0.672-1.062-0.595-1.088l-8.949-6.684,c-2.283-1.43-2.932-2.752-5.949-3.031c-2.645-0.244-2.865-2.002-5.173-2.746c-1.382-0.445-1.601-1.543-2.483-2.539,c-0.506-0.57-3.334-4.01-2.845-4.533c0.944-1.009,2.55-2.749,3.336-4.119c1.087-1.894,3.893-2.184,5.509-3.109,c1.696-0.561,3.215,0.329,4.837-0.311c1.51-0.596,1.686-2.333,3.13-3.057c0.958-0.48,1.455-1.399,1.5-2.461,C96.82,224.207,96.251,222.237,95.422,221.311L95.422,221.311z\", \"name\": \"Lorestan\"},\"27\": {\"path\": \"M57.35,178.719l3.698,1.714c3.838,3.432,9.146,7.483,10.423,12.538c0.646,0,1.939-0.807,2.069,0.466,c0.094,0.93-1.101,4.743,1.707,3.264c0.606-0.319,6.638,1.659,6.777,0.155c0.092-0.992-1.223-2.73,1.448-2.202,c1.087,0.215,1.118-2.112,1.293-2.824c2.991-0.736,0.781-4.093,3.957-2.409c3.172,1.682,0.466-3.86,3.802-3.86,c1.02,0.197,1.99,0.267,2.949-0.052c1.685-0.559-1.303-3.336,0.491-3.834c0.842-0.234,1.615,1.917,2.974,1.917,c2.466,0,3.039,2.138,4.371,3.886c1.542,2.022,2.1,1.787,4.319,1.787l0,0c0.088,0.919,0.046,1.665-0.569,2.28,c-0.553,0.553-1.326,0.857-1.862,1.451c-0.692,0.766,1.255,2.616-0.465,3.057c-1.227,0.314-6.279,0.341-4.087,3.109,c0.199,0.251,2.2,1.589,2.483,1.632c0.885,0.135,2.498-0.58,2.845,0.829c0.383,0.723,0.059,2.823,0.647,3.083,c1.017,0.449,1.365-1.052,1.681-1.658c0.622-1.196,1.329-0.516,1.759-1.14c0.604-0.876,1.394-0.673,1.888,0.13,c0.459,0.746-0.189,1.676-0.258,2.435c-0.09,0.974,0.753,2.954-0.104,3.575c-0.485,0.351-4.484-0.717-5.276-0.958,c-1.728-0.526-1.63,1.851-2.276,2.72l0,0l-2.018-0.363c-2.552,1.068-0.39,2.995-0.724,5.052c-0.45,2.77-2.726,1.412-4.837,1.943,c-1.831,0.46-0.72,2.092-0.388,3.264c0.185,0.653-0.569,0.988-0.569,1.321c-0.075,0.025-0.06,0.193-0.078,0.285l0,0l-1.061,0.078,c-0.488-0.296-3.789,0.402-4.475,0.544c-2.202,0.457,0.709,3.197,0.569,4.015c-0.157,0.921-0.598,2.786-1.423,3.29,c-1.685,1.03-1.859-0.353-3.31-0.648c-1.718-0.35-4.546,1.224-5.949,2.072c-0.874,0.529-2.353,0.002-3.311-0.026,c-2.622-0.241-5.701-0.531-7.837-2.202c-1.552-1.215-3.435-3.882-5.509-4.093c-1.762-0.18-2.655,0.875-4.475,0.285,c-1.058-0.343-3.78-2.974-4.423-2.331c-1.588,1.588-3.925,2.015-6.259,1.503c-1.47-0.323,0.546,2.11,0.595,2.305,c0.384,0.094-0.448,2.191-0.621,2.461c-0.556,0.872-0.763,2.233-1.086,3.238l-0.723,4.676l0,0c-0.562-0.493-2.039-1.243-2.588-1.826,c-0.24-0.255-1.632-3.46-1.655-3.705c-0.729-0.729-0.458-1.409-0.879-2.176c-0.39-0.711-1.049-1.21-1.449-1.943,c-0.969-1.775-3.846-0.082-3.311-2.435c0.177-0.777,1.751-0.275,1.655-1.969c-0.052-0.914,0.862-2.114,1.655-2.668,c0.614-0.429,1.431-0.092,1.061-1.295c-0.493-1.6-0.354-1.055,0.181-2.409c0.488-1.233-0.095-2.216-0.44-3.394,c-0.32-0.74-1.056-0.863-1.785-1.036c-1.236-0.292-0.479-0.98-0.543-1.761c-0.056-0.686-2.186-2.768,0.698-2.28,c0.909,0.154,1.061-1.967,0.879-2.617c-0.081-0.29-0.841-1.908-0.491-1.994c0.09,0.364,2.058,1.149,2.535,1.528,c1.056,0.84,1.802-0.133,3.026,0.544c1.501,0.83-0.155-4.23-0.155-5.129c0-0.99-2.69-0.677-0.543-2.824,c0.837-0.837,0.704-0.893,0.491-2.098c0.798-0.798,3.615,0.398,2.768-2.072c-0.776-2.259,3.13,1.488,2.25-1.684,c-0.137-0.494,0.492-0.476,0.492-0.984c0-1.286-1.336-2.36,0.595-2.902c1.311-0.367-0.031-1.244,0.44-1.425,c0.185-0.07,0.623,0.339,0.802,0.441c0.751,0.425,1.701-0.149,2.069,0.078c0.74,0.455,1.63,1.796,1.63-0.285,c0-0.032,1.77-0.224,2.354-0.518c1.412-0.711-1.37-2.173,0.44-2.772c1.835-0.608-0.519-2.15-1.629-2.15,c-0.154-0.608,0.608-0.875,0.672-1.502C57.368,179.042,57.367,178.877,57.35,178.719L57.35,178.719z\", \"name\": \"Kermanshah\"},\"28\": {\"path\": \"M192.722,180.562c-1.182,4.092,0.944,12.279-5.25,12.279c-3.116,0-2.937,3.744-5.949,4.378c-3.162,0.666-3.569,1.323-3.569,4.663,c0.442,0.827,4.428,3.928,5.173,4.119c3.744,0.959,3.692,7.668,6.285,7.668c2.128,0,3.335-0.81,4.397,1.451,c0.891,1.898,0.87,2.564,3.233,2.564l1.112-0.388l0,0c0.82-0.645,1.293-4.819,1.293-5.88c0-9.376,16.095-2.658,21.286-6.451,l1.526-1.036l0,0l0.181-1.269c0.563-0.701,1.701-0.776,2.017-1.606c0.351-0.921,0.28-1.787,0.336-2.772,c0.119-2.102,1.907-4.245-0.181-5.855l0,0l-1.319-0.647c-2.116-2.128-3.718-2.521-6.595-3.264c-3.632-0.938-4.636-3.33-7.371-5.337,c-1.564-1.148-3.484-0.98-5.25-1.451c-2.473-0.66-3.071-2.774-5.897-1.891L192.722,180.562L192.722,180.562z\", \"name\": \"Qom\"},\"29\": {\"path\": \"M177.359,164.164c0.579,0.019,1.169,0.164,1.789,0.296c0.548,0.116,1.119,0.223,1.728,0.223c1.219,0,2.73,0.188,3.802,0.725,c0.994,0.498,1.157,1.261,1.836,2.021c0.58,0.649,1.715,0.56,1.112-0.414c-0.456-0.737-1.345-1.82-0.673-2.668,c1.236-1.561,3.052-0.564,3.052,1.243c0,0.746-0.883,2.282,0.207,2.642c1.949,0.646,0.727-3.855,3.026-2.383,c1.042,0.667,1.686,2.629,2.095,3.73c-0.155,0.532,0.197,0.979,0.155,1.528c-0.129,1.705-0.834,3.161-1.319,4.741l-1.449,4.714l0,0,c-1.182,4.092,0.944,12.279-5.25,12.279c-3.116,0-2.937,3.744-5.949,4.378c-3.162,0.666-3.569,1.323-3.569,4.663,c0.442,0.827,4.428,3.928,5.173,4.119c3.744,0.959,3.692,7.668,6.285,7.668c2.128,0,3.335-0.81,4.397,1.451,c0.891,1.898,0.87,2.564,3.233,2.564l1.112-0.388l0,0c0.37,0.679,0.828,1.089,1.371,1.632c1.367-0.275,0.454,2.673,0.336,3.057,c-0.592,1.937-2.845,2.238-3.285,4.093c-0.216,0.911,0.459,1.832-0.026,2.746c-0.648,1.223-1.773,0.25-2.768,0.285,c-1.426,0.049-3.396,2.248-4.63,3.005c-0.981,0.613-3.196,1.621-4.397,1.425c-1.148-0.188-2.361-0.36-3.337,0.441,c-2.222,1.823-4.838,0.92-7.345,2.539c-1.581,1.021-2.781,2.477-4.242,3.627l0,0l-0.595-1.14c-0.797,0-1.759,1.292-1.759-0.311,c0-0.881,1.018-2.388,0.647-3.135c-0.444-0.893-1.43,0.401-1.837,0.596c-0.636,0.304-1.187-3.337-2.354-1.243,c-0.378,0.679-0.001,1.861-0.802,2.253c-0.758,0.371-1.013-0.113-1.293-0.699c-0.481-1.007-1.315-1.288-2.38-1.58,c-2.35-1.005-1.448-2.607-1.448-4.611c0-1.918-1.453-2.834-2.845-3.86c-0.981-0.723-5.664,1.884-5.664,3.419,c0,1.942-2.993,3.919-4.811,3.627c-1.39-0.224-1.428-1.096-3.181-0.596c-0.585,0.167-0.84-0.777-1.19-1.01,c-0.564-0.376-1.181,0.306-1.345-0.648c-0.119-0.692,0.492-1.43,0.492-2.15c0-2.068,1.35-2.369,0.388-4.741l0.207-1.969l0,0,c0.521-1.967,4.346-1.949,3.647-4.741c-0.292-1.167-0.69-1.534-0.414-2.849c0.289-1.375-0.134-2.142-0.802-3.316,c-0.837-1.416-1.899-1.953-2.354-3.782c-0.388-1.559,0.446-3.232,0.155-4.818c-0.162-0.882-4.343-2.083-2.923-3.031,c0.431-0.288,2.37,0.698,3.518,0.311c0.939-0.317,2.051,0.602,2.328,1.451c1.473,0-1.464-4.296-1.293-5.181,c0.38-1.967,4.289-0.463,2.535-3.989c-0.259-0.806-1.321-1.903-0.595-2.824c0.082-0.104,4.752,0.657,5.768,0.544,c1.956-0.218,4.43-0.763,3.129,2.072c-0.606,1.32-1.43,2.726,0.337,3.29c1.183,0.378,5.065,4.071,3.957-0.674,c-0.523-2.243-1.266-5.141-3.311-6.451c-1.397-0.894-2.504-1.122-4.035-1.502c-0.623-0.155-2.567-1.427-2.043-2.254,c0.657-1.037,4.298,0.218,4.397-1.969c0.091-2.008-1.167-2.535-2.121-4.067c-0.453-0.783-0.583-3.704,0.207-4.274,c1.273-0.92,1.187,1.234,1.164,1.969c-0.048,1.556,1.723,2.332,2.483,0.803c0.921-1.855-0.828-2.485-0.828-4.041l0.104-1.451l0,0,c0.884-0.638,3.485,0.233,4.578,0.233c1.199,0,0.749-1.083,1.164-1.917c0.694-1.395,3.543-1.23,4.94-1.658,c2.261-0.691,3.597-1.865,6.13-1.865c0.351-0.463,1.57-0.916,2.121-1.295c0.861-0.592,1.976-1.049,3-1.244,C175.899,163.658,176.436,164.164,177.359,164.164L177.359,164.164z\", \"name\": \"Markazi\"},\"30\": {\"path\": \"M177.359,164.164c0.579,0.019,1.169,0.164,1.789,0.296l0,0l1.573-0.814c2.54-1.36,5.817-0.272,8.638-1.321,c1.882-0.699,4.065-0.432,6-0.803c1.039-0.199,7.273,2.43,5.199-0.7c-1.13-1.704-0.844-2.13,0.543-3.057,c0.98-0.654,1.414-2.902,2.767-2.902c1.588-0.614,4.25,3.097,5.095,1.399c0.39-0.784-1.487-2.314-0.104-3.005,c0.445-0.222,0.892-0.044,1.216-0.492c0.243-0.337,0.285-1.443,0.285-1.865l0,0l-0.595-1.373c0-1.44,0.248-2.423-1.629-2.565,c-1.424-0.108-2.44-1.111-3.906-1.321c-0.967-0.138-2.114,0.228-2.845-0.596c-0.767-0.865-1.763-2.313-3-2.383,c-0.956-0.054-1.509,0.069-2.354-0.414l-2.897-1.036l0,0c-0.956,0.185-2.726-0.271-3.698-0.544c-0.821-0.23-2.086,0.036-2.974-0.078,c-1.547-0.199-2.718-0.596-4.345-0.052c-2.229,0.745,1.132,3.188,1.785,3.653c-0.149,0.518,2.071,0.96,2.431,1.14,c4.234,2.117-1.654,4.289-0.31,6.062c-0.068,0.113-0.148,0.818-0.181,0.984c-0.745,1.653-0.602,2.011-2.483,2.953,c-1.981,0.993-3.81,1.672-5.871,2.357c-2.433,0.808-1.435,3.302-0.802,4.793L177.359,164.164L177.359,164.164z\", \"name\": \"Alborz\"},\"31\": {\"path\": \"M179.148,164.46c0.548,0.116,1.119,0.223,1.728,0.223c1.219,0,2.73,0.188,3.802,0.725c0.994,0.498,1.157,1.261,1.836,2.021,c0.58,0.649,1.715,0.56,1.112-0.414c-0.456-0.737-1.345-1.82-0.673-2.668c1.236-1.561,3.052-0.564,3.052,1.243,c0,0.746-0.883,2.282,0.207,2.642c1.949,0.646,0.727-3.855,3.026-2.383c1.042,0.667,1.686,2.629,2.095,3.73,c-0.155,0.532,0.197,0.979,0.155,1.528c-0.129,1.705-0.834,3.161-1.319,4.741l-1.449,4.714l0,0l5.458-0.725,c2.826-0.883,3.423,1.231,5.897,1.891c1.766,0.471,3.686,0.303,5.25,1.451c2.735,2.006,3.74,4.398,7.371,5.337,c2.878,0.743,4.479,1.136,6.595,3.264l1.319,0.647l0,0c0.304-0.535,0.796-1.103,1.009-1.658c0.158-0.412-0.104-1.25-0.104-1.735,c0-1.084,1.528-2.679,2.224-3.471c2.782-1.395-2.078-5.21-3.052-6.347c-2.83-3.305-0.104-4.809-0.104-8.082,c0-1.616-0.641-4.264,1.837-2.254c0.286,0.232,1.642,0.065,1.655,0.104c0.065,0,2.116,1.246,2.793,1.425,c1.039,0.274,2.131,1.494,2.897,2.202c1.981,1.831,3.511,2.278,6.078,1.451c2.163-0.539,4.442,1.847,6.518,2.28,c2.245,0.468,4.938-0.205,7.113-0.751c1.999-0.502,8.456-6.824,8.613-8.886c0.187-2.468-1.707-4.971-1.448-7.668l0,0,c-1.624-0.41-3.292-2.612-4.733-1.891c-4.141,2.07-4.712-0.92-8.121-1.632c-1.265-0.264-4.237-0.314-4.733-1.813,c-2.851,0-4.758,3.599-6.802,5.155c-2.517,2.517-3.978,3.94-7.811,1.839c-3.214-1.762-3.148-5.916-6.544-8.134,c-2.677-1.749-4.387-1.829-7.604-1.736l-3.931,0.078l0,0c0,0.423-0.041,1.529-0.285,1.865c-0.324,0.448-0.771,0.27-1.216,0.492,c-1.383,0.691,0.494,2.221,0.104,3.005c-0.846,1.698-3.507-2.013-5.095-1.399c-1.353,0-1.787,2.247-2.767,2.902,c-1.387,0.926-1.673,1.352-0.543,3.057c2.074,3.13-4.16,0.5-5.199,0.7c-1.935,0.371-4.118,0.104-6,0.803,c-2.821,1.048-6.098-0.039-8.638,1.321L179.148,164.46L179.148,164.46z\", \"name\": \"Tehran\"},\"32\": {\"path\": \"M176.299,309.698c2.173,1.657,5.344,4.292,8.173,3.419c3.609-1.114,3.981,3.262,6.57,4.56c1.033,1.316,3.139,3.593,4.681,4.223,c0.784,0.32,1.439,1.05,2.327,0.855c1.148-0.252,1.155,0.208,2.069,0.389c0.268,0.822,2.176-0.495,2.431-0.751,c0.729-0.729,0.914-1.215,1.888-1.632l2.666-0.104l0,0c3.428-4.271-3.287-10.555-2.586-15.129c0.14-0.916,0.154-3.983,1.112-4.378,c1.179-0.485,1.205,0.221,1.293-1.14c-0.226-1.126-3.138-2.244-1.009-3.601c2.273-1.448,0.54-0.899,0.362-2.461,c-0.111-0.97,1.259-1.682,1.474-2.513c0.376-1.456-0.846-2.61-1.862-3.523l-5.276-4.741c-0.77-0.692-2.777-1.292-3.207-2.021,c-2.469-2.469,1.996-2.889,0.078-5.544c-0.631-0.873-0.281-0.896-0.388-1.839c-0.116-1.018-1.965,0.363-1.965-1.606,c0-1.297-0.183-3.599-2.173-2.824c-0.762,0.297-0.922,1.339-1.836,1.658c-2.339,0.815-3.876-0.914-6.44,0.829,c-1.154,0.575-1.931,1.43-2.974,2.124c-1.127,0.75-1.64-0.98-2.819-0.751c-1.031,0.2-1.376,0.829-2.354,0.052l-2.509-1.995,c-1.563-1.242-1.973,0.312-3.44,0.725c-0.904,0.254-1.44-0.575-2.224-0.622c-2.325-0.14-3.896,3.394-6.362,3.394l0,0l0.903,3.704,c0.044,1.507,2.161,3.243,3,4.404c1.649,2.283,1.582,5.883,4.681,6.683c2.863,0.74,0.458,5.227,3,7.046,c0.493,1.177,2.347,3.279,3.492,3.886c0.911,0.483,1.954,1.096,1.888,2.254c-0.076,1.336,1.258,2.228,0.336,3.471,C178.383,307.437,177.243,308.522,176.299,309.698L176.299,309.698z\", \"name\": \"Charmahal&Bakhtiari\"},\"33\": {\"path\": \"M186.283,354.902c-1.954,1.796,1.107,4.938,2.586,5.751c1.508,0.828,0.523,3.748,2.483,4.352c0.96,0.296,3.129,1.116,4.086,0.933,c1.086-0.208,2.077-0.673,3.207-0.544c0.682,0.077,1.398,0.685,2.043,0.933c2.094,0.804,4.714-0.527,5.147,2.901,c0.355,1.142-0.239,2.008,0.052,2.953c0.15,0.488,2.311,4.151,2.69,4.404c2.674,1.785,5.92,1.346,7.501,4.507,c1.259,2.517,4.095,7.385,4.423,10.051c0.399,1.421,2.156,3.164,3.13,4.326c3.664,4.375,3.763,10.737,5.949,15.673,c-0.084,0.578,2.198,4.905,2.587,5.855c0.396,0.968-0.242,3.614,0.724,4.145c2.484,1.364,3.202,2.063,5.147,4.197,c1.924,2.109,2.464,4.172,3.207,6.917c0.255,2.66,3.21,6.327,5.043,8.16c0.958,0.958,2.523,1.491,3.724,2.124,c1.335,0.703,2.334,1.782,3.466,2.772l1.655,1.606l0,0c-0.639,1.285-4.029,0.907-5.199,0.907c-0.796,0-1.398,0.265-2.147,0.337,l-1.225,1.308l0,0c-0.611-0.754-2.059-1.826-2.603-1.826c-0.326-0.987,0.849-0.318,1.086-1.036c0.566,0,0.983-0.191,1.423-0.337,c0-0.052-0.014-0.039,0.026-0.052c0-1.297-0.892-1.273-1.94-1.736c-1.01-0.446-1.174-2.255-1.888-3.057,c-1.797-2.018-3.391-3.058-6-3.29c-3.503-0.432-5.179-2.21-7.113-4.818c-0.829-1.118-8.63-1.018-10.294-0.699,c-1.204,0.231-1.528-0.475-2.509-0.544c-1.98-0.139-2.881-1.836-4.992-2.357c0.026-0.052-0.436-0.778-0.517-0.881,c-0.253-0.32-0.399-0.519-0.621,0.026c-0.406,0.998-1.164-0.254-1.448-0.933c-0.402-0.946-0.71-3.375-1.707-3.704,c-0.205,0.62-0.259,1.36-0.259,2.124c-0.281,0-0.672-1.988-0.672-2.357c0-0.894-0.667-1.552-0.362-2.746,c0.465-1.822-2.212-5.565-3.44-6.891c-2.024-2.183-1.674-3.783-2.198-6.502c0-1.055-0.074-2.5-0.414-3.445,c-0.404-1.124-1.364-1.748-1.707-2.642c-0.236-0.614,0.238-1.149-0.466-1.502c-0.833-0.418-1.964-0.078-2.871-0.311,c-1.323-0.339-1.386-1.965-2.147-3.109c-0.653-0.981,1.081-2.83,1.5-3.912c0.174-0.449,0.643,1.674,0.828,1.788,c0.735,0.452,0.311-1.943,0.155-2.228c-0.642-1.175-0.855-2.103-2.509-2.228c-0.748-0.056-3.124-1.424-3.673,0.233,c-0.998-0.741-0.855-1.522-0.957-2.591c0-0.569-0.047-0.981,0.077-1.528c0.054-0.238,0.667-1.086,0.569-1.217,c0.229-0.384-0.543-1.505-0.543-2.072c0-0.781,0.015-1.545-0.181-2.253c-0.146-0.527-1.492-3.39-1.759-3.549,c-0.126,0.094-0.494,0.294-0.543,0.44c-0.675,0-1.572-1.398-1.836-1.995c-0.534-1.209-1.344-1.679-2.224-2.564l-1.086-1.062,l-1.242-1.451c-1.286-1.037-1.82-2.711-2.845-3.886l-2.871-3.29c-1.597-1.829,0.635-4.119-0.931-6.787,c-1.176-2.003-1.632-2.272-3.152-2.637l0,0l2.945-1.871c0.777,0.226,1.664,0.055,2.406,0.492c1.184,0.698,1.876,0.669,3.233,0.44,c0.986-0.167,2.479,0.178,3.362-0.156l0,0c1.095,0.193,1.954-0.284,2.69,0.777c0.163,0.234,0.743,0.049,1.009,0.181,C185.761,354.122,185.984,354.603,186.283,354.902L186.283,354.902z\", \"name\": \"Bushehr\"},\"34\": {\"path\": \"M154.185,264.054l1.865,4.559c2.63,0.308,4.344-1.291,6.751,0.44c1.244,0.894,0.867,1.603,0.077,2.668,c-0.881,1.189-1.17,1.552-0.879,3.031l0,0l0.903,3.704c0.044,1.507,2.161,3.243,3,4.404c1.649,2.283,1.582,5.883,4.681,6.683,c2.863,0.74,0.458,5.227,3,7.046c0.493,1.177,2.347,3.279,3.492,3.886c0.911,0.483,1.954,1.096,1.888,2.254,c-0.076,1.336,1.258,2.228,0.336,3.471c-0.916,1.236-2.056,2.321-3,3.497l0,0l-1.474,3.238c-0.965,2.504-3.056,2.223-5.302,3.031,c-1.325,0.477-3.29,2.677-3,4.171c0.204,1.05,0.194,1.843,0.517,2.902c0.636,2.08,1.637,2.182,1.06,4.611,c-0.553,2.328-0.113,5.368,2.561,2.694c2.638-2.639,2.226,1.842,3.931,2.824c1.016,0.582,1.804,1.421,2.923,1.917,c1.446,0.64,3.828,0.678,3.828,2.824c0,0.643-1.174,3.213-1.785,3.419c0,1.828-0.819,2.343,0.957,3.938,c1.403,1.259,0.854,3.32,0.854,5.077l0.285,2.616l0,0c-0.883,0.334-2.376-0.011-3.362,0.156c-1.357,0.229-2.049,0.258-3.233-0.44,c-0.742-0.437-1.628-0.266-2.406-0.492l-2.945,1.871l0,0c-0.351-0.084-0.759-0.174-1.245-0.291c-0.97-0.234-1.832,0.903-2.483,0.777,l-5.328,3.808c-0.628,0.449-4.293,3.803-4.888,2.616c-0.21-0.419-1.461-1.904-1.216-2.15c0.319-0.321,2.547-2.927,0.466-2.927,c-1.778,0-4.783-0.768-6.156-0.207c-2.955,1.207-0.535-1.971-4.138-2.565c-1.49-0.245-2.542-0.711-3.466-1.788l-2.535-2.953,c-0.571-0.665,1.775-0.922,1.293-1.166c-0.58-0.292-1.723-0.026-2.354-0.026c-0.335,1.332-1.43,1.638-0.621,3.523l1.19,2.772,c0.82,0.207,0.17,4.416-0.052,5.077c-1.043,3.123-1.798,1.048-3.906,1.606c-3.93-1.464-3.089,2.432-4.63,2.305,c-0.595-0.049-1.331-0.765-1.681,0.207l0,0c-1.066-0.76-3.088-0.918-3.906-1.995c-0.582-0.766-0.159-2.857-0.905-3.186,c-0.868-0.383-0.846-0.874-0.647-1.762c0.207-0.331,0.348-0.887,0.517-1.114c-0.633-1.062-3.1-5.033-4.371-5.129,c-0.313-0.024-1.73,1.316-1.94,0.466c-0.204-0.052-0.429-2.639-0.647-3.083c-0.617-1.26-1.99-1.007-3.026-1.58l-1.291-0.567,l0.362-17.462H101.94V313.74l4.681-11.683c0.394-0.393,0.663-1.729,0.466-2.28c-0.281-0.785-0.953-0.602-1.345-1.217,c-0.219-0.343,0.055-1.028-0.155-1.451c-0.332-0.667-1.291-0.503-1.63-1.399c-0.372-0.984-2.645-4.689-4.056-6.118l0,0l3.798-2.612,c1.305-1.004,1.39-2.053,0.828-3.497c-1.059-2.72,1.044-4.129,2.586-6.113c0.737-0.949,0.932-2.272,1.319-3.368,c0.19-0.538,1.216-2.459,1.216-2.875l0,0c0.872-1.15,3.08-2.813,3.155-4.196c0.172-3.164,1.821-4.962,2.612-7.849,c1.24-4.522,6.151-1.219,9.57-1.943c1.993-1.293,5.771-2.928,7.423-0.078c1.994,3.441,2.174,0.425,4.681,2.099,c1.415,0.944,2.559-1.35,4.113-0.13c2.138,1.679,3.884,4.05,6.181,5.492C149.312,265.732,152.02,264.054,154.185,264.054,L154.185,264.054z\", \"name\": \"Khuzestan\"},\"35\": {\"path\": \"M181.653,352.959c1.095,0.193,1.954-0.284,2.69,0.777c0.163,0.234,0.743,0.049,1.009,0.181c0.41,0.204,0.632,0.685,0.931,0.984l0,0,l3.114-0.605c2.433,0.3,3.768,0.755,6.197,0.112c1.57-0.415,2.402-2.306,3.776-2.15c2.228,0.253,5.268-2.741,4.966-5.026,c-0.165-1.244-1.443-2.187-0.543-3.238c0.842-0.983-0.442-2.386-1.19-3.135c-0.143-0.279-0.336-0.493-0.336-0.803,c1.269-0.429-0.155-1.643-0.155-2.202c0-0.605,4.579,0.197,5.121,0.984c0.409,0.594,0.98,0.934,1.629,1.088,c1.478,0.351,1.126,2.046,2.819,2.046c4.777,0,7.105-1.412,6.13-6.372l-0.543-1.606l0,0c-1.617-2.015-4.689-3.401-6.647-5.077,c-2.485-2.128-3.538-5.086-3.516-8.264l0,0l-2.666,0.104c-0.974,0.417-1.159,0.903-1.888,1.632,c-0.256,0.256-2.163,1.573-2.431,0.751c-0.914-0.18-0.921-0.64-2.069-0.389c-0.888,0.195-1.544-0.535-2.327-0.855,c-1.542-0.63-3.649-2.907-4.681-4.223c-2.589-1.298-2.96-5.674-6.57-4.56c-2.829,0.873-6-1.763-8.173-3.419l0,0l-1.474,3.238,c-0.965,2.504-3.056,2.223-5.302,3.031c-1.325,0.477-3.29,2.677-3,4.171c0.204,1.05,0.194,1.843,0.517,2.902,c0.636,2.08,1.637,2.182,1.06,4.611c-0.553,2.328-0.113,5.368,2.561,2.694c2.638-2.639,2.226,1.842,3.931,2.824,c1.016,0.582,1.804,1.421,2.923,1.917c1.446,0.64,3.828,0.678,3.828,2.824c0,0.643-1.174,3.213-1.785,3.419,c0,1.828-0.819,2.343,0.957,3.938c1.403,1.259,0.854,3.32,0.854,5.077L181.653,352.959L181.653,352.959z\", \"name\": \"Kohgiluyeh&Boyer-Ahmad\"},\"36\": {\"path\": \"M328.406,243.589c1.906,2.51,4.877,4.674,6.466,7.202l3.776,6.01c1.611,2.564,4.353,5.927,6.621,7.875,c2.773,2.382,3.853,5.413,6.104,8.238c0,2.689,1.991,7.904,4.138,9.637c1.117,0.901,2.01,1.708,2.69,2.953,c0.344,0.63,0.656,1.305,1.035,1.917c0.284,0.46,2.961,3.322,3.026,3.782l0,0c-0.091,0-0.076,0.035-0.129,0.052,c0,1.654-3.957,3.954-5.276,3.316c-2.036,1.021-3.243,2.305-4.785,3.938c-1.384,1.466-3.182,2.129-4.888,3.083,c-3.035,1.697-7.507,2.231-10.164,4.378c-1.909,1.542-1.038,3.974-1.449,6.165c0,3.25,1.695,11.048-3.207,12.072,c-3.162,0.66-9.996,1.105-12.88-0.389c-4.115-0.452-8.991,3.262-12.622,2.565c-4.096-0.786-5.901,1.244-7.889,4.87,c-0.388,0.708-1.611,5.959-0.776,6.165c0.039,0.27,0.901,1.331,1.19,1.373c0.57,1.428,1.958,2.225,1.837,4.119,c0.497,1.361-0.012,4.509,1.034,5.207c1.747,1.167,2.46-0.234,2.328,2.668c-0.186,4.092-2.979,7.959-0.853,11.994,c1.458,2.767,0.491,1.793-2.043,2.28c-1.03,0.198-2.005,0.74-2.897,1.217l0,0c-1.436-2.525-7.139-3.555-9.518-5.129,c-3.245-2.147-1.58-8.77-3.233-12.098c-0.881-1.774-3.902-3.599-4.293-5.336c-4.583-4.571-8.795-14.572-10.449-20.828,c-0.358-2.891-2.099-7.51-3.931-9.818c-1.941-2.444-5.165-3.818-7.759-5.492l-6.053-2.072l0,0c0.415-1.43-1.371-3.374-1.371-5,c0-1.245-0.018-2.551,0.233-3.756c0.294-1.41,0.881-3.158,1.034-4.559c1.074-3.819,1.61-8.519,0.776-12.486,c-0.383-1.825-0.751-3.813,0.465-5.414c1.005-1.322,3.408-0.457,4.733-1.788c2.043-1.8,3.163-3.808,6.337-3.808,c4.46,0,8.005,2.367,12.208,2.176c4.577-0.208,8.73-3.341,12.648-5.311c1.549-0.049,4.662-1.579,6.544-1.891,c6.23-1.034,15.904-2.45,16.797-10.207c0.955-0.939,2.189-0.182,3.223-1.735c0.484-0.726,0.283-1.669,0.776-2.435,c0.749-1.164,1.906-2.208,3.207-2.642c1.616-0.538,2.76-1.722,4.293-2.487L328.406,243.589L328.406,243.589z\", \"name\": \"Yazd\"},\"37\": {\"path\": \"M217.268,333.997l2.716-0.803c0.632-1.181-0.157-2.267-0.233-3.445c-0.142-2.215,0.132-4.169,1.319-6.088,c1.409-2.278,2.096-3.955,2.431-6.684c0.258-0.586,1.345-4.213,0.362-4.456c-0.103-0.408-1.818-0.376-2.199-0.466,c-1.501-0.356-3.013-1.063-3.906-2.461c-1.75-2.742,0.776-2.043,2.509-1.503c1.323,0.412,3.749-0.194,4.63-1.373,c0.58-0.776,4.705-3.561,5.638-3.938c2.118-0.855,2.516-2.831,2.328,1.321c-0.171,3.777,3.012,3.336,6.233,4.145,c4.234,1.063,6.898-0.996,10.682-1.528l3.776-1.217l0,0l6.053,2.072c2.594,1.674,5.818,3.048,7.759,5.492,c1.832,2.307,3.574,6.926,3.931,9.818c1.654,6.255,5.866,16.257,10.449,20.828c0.391,1.738,3.412,3.562,4.293,5.336,c1.653,3.328-0.012,9.951,3.233,12.098c2.379,1.574,8.082,2.604,9.518,5.129l0,0l0.259,1.684l2.923,5.777,c-0.111,1.703,2.554,4.288,4.061,4.663c3.502,0.871,7.316-1.335,8.82,3.316c1.181,3.653,1.649,7.247,3.44,10.828l0.983,1.684l0,0,l1.267,3.393c0.318,0.989,0.693,1.643,0.44,2.668c-2.005,0.507-2.702,0.526-0.879,2.487c3.283,3.532,11.574,6.976,9.492,12.719,c-0.602,0.872-2.419,7.516-2.147,8.549c0.504,1.912,3.82,2.072,4.371,4.948c1.006,5.255-4.557,3.116-6.932,3.342,c-1.485,0.141-1.339,2.004-2.923,2.409c-2.152,0.552-2.085,1.495-3.233,3.419c0.261,1.623-1.366,4.54-2.819,5.362,c-3.058,1.729-5.88-1.548-8.613-2.072c-1.571-0.301-3.311,0.254-4.63,1.166c-1.79,1.238-2.089,0.585-3.879-0.311l-9.078,0.855,c-1.092,0.103-5.233,1.085-4.914,2.746c0.144,0.752,0.723,1.308,0.905,2.021c0.119,0.466-0.771,1.38-1.009,1.813,c-0.44,0.802,1.753,2.079,0.698,3.264c-0.564,0.633-1.981-0.064-2.742,0.7c-2.396,2.403-6.193-0.22-9.518-0.259,c-1.299,0.377-3.86,0.387-5.018-0.155c-1.366-0.641-1.28-2.272-3.078-2.72c-1.839-0.458-3.899,0.804-5.794,0.389,c-2.279-0.5-1.943-1.664-2.897-3.342l-1.216-0.7l0,0l-1.655-1.606c-1.132-0.99-2.131-2.068-3.466-2.772,c-1.201-0.633-2.766-1.166-3.724-2.124c-1.833-1.833-4.788-5.5-5.043-8.16c-0.743-2.745-1.283-4.807-3.207-6.917,c-1.945-2.134-2.664-2.833-5.147-4.197c-0.966-0.531-0.328-3.177-0.724-4.145c-0.389-0.95-2.671-5.277-2.587-5.855,c-2.185-4.935-2.284-11.297-5.949-15.673c-0.973-1.162-2.73-2.905-3.13-4.326c-0.328-2.667-3.164-7.534-4.423-10.051,c-1.581-3.162-4.826-2.722-7.501-4.507c-0.379-0.253-2.54-3.916-2.69-4.404c-0.291-0.945,0.303-1.812-0.052-2.953,c-0.433-3.429-3.053-2.098-5.147-2.901c-0.646-0.248-1.361-0.855-2.043-0.933c-1.13-0.129-2.121,0.336-3.207,0.544,c-0.957,0.183-3.126-0.637-4.086-0.933c-1.96-0.604-0.975-3.524-2.483-4.352c-1.479-0.813-4.54-3.955-2.586-5.751l0,0l3.114-0.605,c2.433,0.3,3.768,0.755,6.197,0.112c1.57-0.415,2.402-2.306,3.776-2.15c2.228,0.253,5.268-2.741,4.966-5.026,c-0.165-1.244-1.443-2.187-0.543-3.238c0.842-0.983-0.442-2.386-1.19-3.135c-0.143-0.279-0.336-0.493-0.336-0.803,c1.269-0.429-0.155-1.643-0.155-2.202c0-0.605,4.579,0.197,5.121,0.984c0.409,0.594,0.98,0.934,1.629,1.088,c1.478,0.351,1.126,2.046,2.819,2.046c4.777,0,7.105-1.412,6.13-6.372L217.268,333.997L217.268,333.997z\", \"name\": \"Fars\"},\"38\": {\"path\": \"M253.555,305.502c0.415-1.43-1.371-3.374-1.371-5c0-1.245-0.018-2.551,0.233-3.756c0.294-1.41,0.881-3.158,1.034-4.559,c1.074-3.819,1.61-8.519,0.776-12.486c-0.383-1.825-0.751-3.813,0.465-5.414c1.005-1.322,3.408-0.457,4.733-1.788,c2.043-1.8,3.163-3.808,6.337-3.808c4.46,0,8.005,2.367,12.208,2.176c4.577-0.208,8.73-3.341,12.648-5.311,c1.549-0.049,4.662-1.579,6.544-1.891c6.23-1.034,15.904-2.45,16.797-10.207c0.955-0.939,2.189-0.182,3.223-1.735,c0.484-0.726,0.283-1.669,0.776-2.435c0.749-1.164,1.906-2.208,3.207-2.642c1.616-0.538,2.76-1.722,4.293-2.487l2.948-0.57l0,0,c0-8.078-1.04-15.524-1.81-23.522l0,0l-27.623-0.466c-9.167,0-18.756-1.201-27.778-2.642c-6.502-1.039-15.626,0.091-19.064-6.419,c-1.116-0.173-2.22-0.357-3.309-0.55c-3.098-1.123-6.007-3.238-9.337-3.238c-3.639,0-8.011,1.021-11.432,0.13,c-1.074-0.28-4.751-1.938-5.38-2.824c-0.135-0.016-0.291-0.087-0.414-0.13l0,0l-1.526,1.036c-5.191,3.792-21.286-2.925-21.286,6.451,c0,1.062-0.474,5.235-1.293,5.88l0,0c0.37,0.679,0.828,1.089,1.371,1.632c1.367-0.275,0.454,2.673,0.336,3.057,c-0.592,1.937-2.845,2.238-3.285,4.093c-0.216,0.911,0.459,1.832-0.026,2.746c-0.648,1.223-1.773,0.25-2.768,0.285,c-1.426,0.049-3.396,2.248-4.63,3.005c-0.981,0.613-3.196,1.621-4.397,1.425c-1.148-0.188-2.361-0.36-3.337,0.441,c-2.222,1.823-4.838,0.92-7.345,2.539c-1.581,1.021-2.781,2.477-4.242,3.627l0,0c-0.12,0.478-0.537,0.916-0.854,1.295,c-0.268,0.322-0.955,0.522-0.569,1.062c0.482,0.674,1.838,0.306,1.759,1.347c-0.061,0.812-0.621,1.495-0.879,2.254,c-0.529,0.526-1.804,2.985-1.992,3.652c-0.325,1.157,0.646,3.212-1.293,3.212c-1.045,0-2.163,0.976-2.974,0.751,c-2.375-0.659-0.681,0.523-2.173,1.011c-0.608,0.198-1.676,0.141-1.914,0.855c-0.473,1.42,1.912,3.217,0.88,4.715,c-1.437,2.085-4.202,0.326-5.638,3.756l0,0l1.865,4.559c2.63,0.308,4.344-1.291,6.751,0.44c1.244,0.894,0.867,1.603,0.077,2.668,c-0.881,1.189-1.17,1.552-0.879,3.031l0,0c2.466,0,4.037-3.534,6.362-3.394c0.784,0.047,1.32,0.876,2.224,0.622,c1.467-0.413,1.877-1.967,3.44-0.725l2.509,1.995c0.978,0.777,1.322,0.148,2.354-0.052c1.179-0.229,1.692,1.501,2.819,0.751,c1.043-0.694,1.82-1.549,2.974-2.124c2.564-1.743,4.101-0.014,6.44-0.829c0.914-0.318,1.075-1.361,1.836-1.658,c1.99-0.775,2.173,1.526,2.173,2.824c0,1.969,1.85,0.588,1.965,1.606c0.107,0.943-0.243,0.966,0.388,1.839,c1.918,2.655-2.547,3.075-0.078,5.544c0.43,0.729,2.437,1.329,3.207,2.021l5.276,4.741c1.016,0.913,2.238,2.067,1.862,3.523,c-0.215,0.831-1.585,1.542-1.474,2.513c0.178,1.562,1.91,1.013-0.362,2.461c-2.13,1.357,0.783,2.475,1.009,3.601,c-0.089,1.361-0.114,0.655-1.293,1.14c-0.959,0.394-0.972,3.462-1.112,4.378c-0.7,4.573,6.015,10.857,2.586,15.129l0,0,c-0.022,3.177,1.03,6.135,3.516,8.264c1.958,1.677,5.03,3.063,6.647,5.077l0,0l2.716-0.803c0.632-1.181-0.157-2.267-0.233-3.445,c-0.142-2.215,0.132-4.169,1.319-6.088c1.409-2.278,2.096-3.955,2.431-6.684c0.258-0.586,1.345-4.213,0.362-4.456,c-0.103-0.408-1.818-0.376-2.199-0.466c-1.501-0.356-3.013-1.063-3.906-2.461c-1.75-2.742,0.776-2.043,2.509-1.503,c1.323,0.412,3.749-0.194,4.63-1.373c0.58-0.776,4.705-3.561,5.638-3.938c2.118-0.855,2.516-2.831,2.328,1.321,c-0.171,3.777,3.012,3.336,6.233,4.145c4.234,1.063,6.898-0.996,10.682-1.528L253.555,305.502L253.555,305.502z\", \"name\": \"Isfahan\"},\"39\": {\"path\": \"M357.141,131.213l1.5,0.518c1.201,0,2.353-0.958,3.543-0.958c1.058,0,1.796-0.148,2.716,0.44c0.566,0.363,0.926,0.958,1.423,1.295,c0.319,3.567-1.947,5.103-2.923,8.29c-1.009,3.293,1.769,6.551,0.905,9.637c1.001,2.417,1.186,4.622,2.845,6.684,c1.243,1.545,3.459,2.404,4.966,3.808c3.294,3.07,6.463,5.144,1.474,9.067c-4.038,4.055-1.004,8.803-7.552,10.492,c-4.116,1.061-6.406,2.549-8.692,5.145c-3.741,2.67-6.647,6.623-9.853,9.828l-0.258,1.606l0,0c5.691,0,10.888,2.374,17.277,1.347,c5.401-0.868,4.617-7.748,9.725-9.067c6.543-1.689,14.046-0.157,14.949,7.72c0.271,2.362-0.23,7.063,2.379,8.134,c2.921,1.2,2.47,4.386,1.19,6.632c-1.142,1.048-0.904,4.496,0.362,5.44c3.082,2.298,6.276-0.777,9.466-0.777,c1.2,0,2.271,0.77,2.949,1.71c0.444,0.615,2.561,2.072,2.535,2.176c2.966,1.111,9.807-0.762,13.423-0.311,c1.708-0.158,3.346,0.518,5.483,0.052c1.669-0.364,3.564-0.829,5.276-0.829c2.427,0,1.829,2.266,4.63,1.684l3.362-0.699,c1.19-0.248,1.962-1.252,3.181-1.373c2.703,0,3.841,1.219,6.311,1.865c4.416,1.154,8.082,3.714,12.337,4.974,c3.698,1.095,7.854-3.462,12.023-3.135l0,0l-0.307-1.709l1.138-3.342l3.31-3.083l0.181-1.114l6.698,0.207,c0.138-0.035,0.072-1.102-0.181-1.166c-0.105-0.535-1.526-1.057-1.526-1.528c0-1.014-0.75-1.308-0.75-2.254,c0-0.817,0.294-0.892-0.414-1.477c-0.277-0.229-2.247-1.188-1.992-1.477c0.142-0.162,2.381-0.855,2.664-0.855,c2.659,0,1.529-1.676,2.845-2.668c2.708,1.646,1.34-3.457,2.948-3.989c0-0.052-0.014-0.039,0.026-0.052,c0-0.058,0.026-0.071,0.026-0.13c0.1-0.033,0.045-0.092,0.052-0.285l0.978-2.085c-0.038-0.15-0.081-0.314-0.124-0.48,c-0.074-0.28,0.502-1.561,0.285-1.658c-0.024-0.01,0.023-0.066,0-0.078c-0.154-0.076,0.207-2.135,0.207-2.642,c0-1.063,1.225-1.48,0.931-2.409c-0.193-0.611-0.548-1.133,0.052-1.736c0.914-0.918,0.924-0.748,0.362-2.021,c-0.656-1.484-1.603-1.195-0.672-2.85c0.414-0.738-0.947-1.38-0.75-2.15c0.203-0.796,1.501-0.649,2.121-0.699,c1.509-0.124,0.501-1.818,0.776-2.539c0.737-1.932,1.302-3.421,2.354-5.129c0.616-1,0.605-2.495,0.179-3.792l0,0,c-0.223-0.68-0.56-1.305-0.98-1.777c-1.113-1.249,0.704-2.446,0.388-3.575c-0.102-0.366-0.052-1.49,0.207-1.969,c0.401-0.742-0.453-3.06-0.672-3.704c-0.507-1.488-0.842-0.742-2.328-0.855c-1.296-0.098-0.526-1.579,0.026-1.839,c0.304-0.144,0.75-2.21,0.828-2.228c0.564-0.128,0.683-1.605,0.983-2.15c1.195-2.17-0.536-3.527-0.983-5.751,c-0.136-0.679-0.75-0.593-0.75-1.347c0-0.489,0.232-0.964-0.052-1.373c-0.892-1.287,0.325-1.477,0.207-2.513,c-0.051-0.451-0.332-1.15,0.336-1.503c0.125-0.066,0.093-0.359-0.026-0.414c-0.966-0.448,0.29-2.215,0.517-2.772,c0.398-0.977-0.546-2.269-1.118-3.328l-8.917,0.349l-14.122-0.104l-3.466-5.647c-0.46-0.749-0.245-1.038-1.19-1.58,c-1.321-0.757-1.156-1.516-2.069-2.539c-0.892-1.601-0.949-3.564-2.587-4.637c-2.051-1.344-3.448,0.594-5.25-2.124,c-1.44-2.172-2.246-0.217-3.414-0.959c-0.615-0.391-0.902-0.941-1.759-0.751c-1.213,0.269-0.629,0.96-2.173,0.155,c-1.428-0.745-1.132-0.371-1.604-1.917c-0.378-1.24-1.474,0.133-1.474-1.839c0-0.409-1.664-2.493-2.095-2.59,c-1.368-0.824-0.68-1.83-1.138-3.109c-0.48-1.338,1.378-1.257,0.026-2.357c-0.312-0.254-0.44-1.673-0.595-2.176,c-0.217-0.704-2.269,0.259-2.897,0.259c-0.379,0-3.637-2.068-3.957-2.409c-1.099-1.172-3.878-2.807-5.505-2.943,c-1.392,0-2.308-1.51-3.531-1.51c-0.238,0.714,0.149,2.755-1.429,1.572l-0.306,0.163c-0.592,2.961-5.027-4.009-6.715-0.633,c-1.251,2.503-6.112,0.227-8.245-0.306c-0.217-1.084-0.338-4.082-1.796-4.082c-0.621,0-1.167-0.042-1.673-0.129l0,0l0.44,4.19,c-0.088,0.948,1.251,5.815,1.966,6.424c-0.014,0.049,1.422,2.678,1.422,3.627c0,2.799-0.193,3.253,2.147,5,c2.965,2.213,0.299,2.318,0,4.689c0.622,1.68-1.981,0.687-2.483,2.772c-0.218,0.906-0.177,1.753,0.491,2.513,c0.11,0.126,1.745,1.495,0.983,1.684c-0.115,0.467-3.774,2.331-4.397,2.643c-3.946,1.97-2.929,3.656-4.707,6.942,c-1.914,3.538-4.823,1.297-7.371,0.026l-10.164-5.259l-13.941-6.217l-11.898,7.823L357.141,131.213L357.141,131.213z\", \"name\": \"Razavi Khorasan\"},\"40\": {\"path\": \"M337.484,105.127c-2.603,0-4.637,6.755-5.276,8.73c-0.574,1.774-1.697,2.534-2.095,4.611c-0.323,1.688-0.022,3.997-0.181,5.777,c-0.425,4.993-11.137,1-14.82,1.477c-6.764,0.875-7.284,7.656-12.906,9.999c-1.299,0.345-2.688,1.319-4.061,0.933,c-1.748-0.492-3.578-1.065-5.457-0.907l-1.216,0.44l0,0l-3.828-2.564l-4.371-2.331l-2.173-1.295l0.724-2.228l2.172-1.503,l0.179-1.697l0,0c1.196-0.75,2.019-2.026,2.019-3.666c0-0.638,0.176-1.745-0.414-2.202c-1.087-0.843-0.724-0.593-0.724-1.969,c0-0.435-0.759-2.64-1.086-2.901c0-2.029-0.968-4.843-1.345-6.813c-0.135-0.703-0.238-1.46-0.319-2.246l0,0l9.653,0.876l1.143-1.082,l2.204,0.061l1.347-0.408l2.2-2.169c0.412-0.187,0.576,0.015,0.918-0.194c0.119-0.073,0.217-0.293,0.349-0.389,c0.192-0.137,1.65-0.816,1.733-0.816c0.619,0,1.253,0.631,1.914,0.79c0.856,0.206,1.546-0.597,1.94-1.217,c0.242-0.382,0.398-1.003,0.945-1.003c0.232,0,0.698-0.087,0.905-0.544c0.247-0.544,1.086-3.311,0.724-3.782,c-1.056-1.375,0.694-3.65,1.242-5.077c0.357-0.932,1.636-0.407,2.328-1.528c0.272-0.441,0.725-0.907,1.267-0.907,c0.954,0,0.761-0.768,1.345-1.192c0.556-0.403,1.164-1.653,1.68-2.21c0.38-0.41,1.046-1.019,1.513-1.296,c0.428-0.254,0.825,0.113,1.255-0.285c0.319-0.296,0.44-0.039,0.789-0.039c0.474,0,0.736-0.712,1.125-0.972,c0.516-0.344,1.31-0.667,1.915-0.613c0.614-1.376,2.826-1.114,3.609-2.314c1.267-1.939,1.284-0.075,2.123-0.755,c1.265-1.026,3.969-0.462,5.633-0.735c1.082-0.177,1.342-0.911,2.408-0.612c0.501,0.141,0.96-0.415,1.449-0.143,c0.393,0.218,0.758,0.524,1.143,0.755c2.828,1.515,5.116,0.388,8.021,0.388c0.638,0,1.55,0.68,2.053,0.853l0,0l-0.316,3.236,c-0.217,0.929-0.771,1.902-0.931,2.85c-0.159,0.946,0.091,1.844-0.233,2.798c-0.513,1.51-1.895,3.441-0.776,5.104,c0.822,1.22,2.872,1.077,3.724,2.228c1.106,1.491,0.172,3.851-1.63,4.196c-1.572,0.301-5.485-1.445-5.949,0.855l-1.707,0.674,c-0.873,0.395-1.448,1.025-1.448,2.021c0,0.461,0.014,0.71-0.259,1.088c-0.144,0.199-0.619,0.457-0.672,0.674,C338.53,104.117,337.759,104.714,337.484,105.127L337.484,105.127z\", \"name\": \"Golestan\"},\"41\": {\"path\": \"M337.484,105.127c0.225,2.342,2.438,1.913,3.078,3.989c0.353,1.148,0.71,3.203,2.354,2.901c0.857-0.157,2.954-0.161,3.466,0.7,c0.893,1.503-2.429,0.831-2.767,2.59c-0.218,1.138,2.136,1.597,1.371,3.627c-1.496,3.874,0.802,5.308,3.311,7.823,c1.006,1.009,2.256,2.464,3.518,3.057c1.325,0.622,3.015,0.001,4.423,0.881l0.905,0.518l0,0l1.5,0.518,c1.201,0,2.353-0.958,3.543-0.958c1.058,0,1.796-0.148,2.716,0.44c0.566,0.363,0.926,0.958,1.423,1.295,c0.319,3.567-1.947,5.103-2.923,8.29c-1.009,3.293,1.769,6.551,0.905,9.637c1.001,2.417,1.186,4.622,2.845,6.684,c1.243,1.545,3.459,2.404,4.966,3.808c3.294,3.07,6.463,5.144,1.474,9.067c-4.038,4.055-1.004,8.803-7.552,10.492,c-4.116,1.061-6.406,2.549-8.692,5.145c-3.741,2.67-6.647,6.623-9.853,9.828l-0.258,1.606l0,0l-3.983,5.596,c-1.651,3.307-4.342,7.019-5.225,10.621c-0.708,2.888-1.148,6.217-4.397,6.217c-1.517,0-5.844-0.069-7.035,0.57l0,0l-27.623-0.466,c-9.167,0-18.756-1.201-27.778-2.642c-6.502-1.039-15.626,0.091-19.064-6.419c-1.116-0.173-2.22-0.357-3.309-0.55,c-3.098-1.123-6.007-3.238-9.337-3.238c-3.639,0-8.011,1.021-11.432,0.13c-1.074-0.28-4.751-1.938-5.38-2.824,c-0.135-0.016-0.291-0.087-0.414-0.13l0,0l0.181-1.269c0.563-0.701,1.701-0.776,2.017-1.606c0.351-0.921,0.28-1.787,0.336-2.772,c0.119-2.102,1.907-4.245-0.181-5.855l0,0c0.304-0.535,0.796-1.103,1.009-1.658c0.158-0.412-0.104-1.25-0.104-1.735,c0-1.084,1.528-2.679,2.224-3.471c2.782-1.395-2.078-5.21-3.052-6.347c-2.83-3.305-0.104-4.809-0.104-8.082,c0-1.616-0.641-4.264,1.837-2.254c0.286,0.232,1.642,0.065,1.655,0.104c0.065,0,2.116,1.246,2.793,1.425,c1.039,0.274,2.131,1.494,2.897,2.202c1.981,1.831,3.511,2.278,6.078,1.451c2.163-0.539,4.442,1.847,6.518,2.28,c2.245,0.468,4.938-0.205,7.113-0.751c1.999-0.502,8.456-6.824,8.613-8.886c0.187-2.468-1.707-4.971-1.448-7.668l0,0l1.81-0.311,c1.38,0,2.757,0.573,3.802-0.725c1.208-1.501,1.914-1.191,3.595-0.958c3.958,0.548,5.743-0.296,7.734-3.73,c1.192-2.057,1.516-2.765,3.362-4.171c2.396-1.093,1.49-4.078,2.121-6.269c0.468-1.624,2.374-4.586,4.112-5.025,c0.018-0.072,0.307-0.231,0.31-0.233l3.983-1.425l0,0l1.216-0.44c1.879-0.158,3.709,0.415,5.457,0.907,c1.373,0.387,2.761-0.588,4.061-0.933c5.622-2.343,6.142-9.124,12.906-9.999c3.683-0.477,14.395,3.516,14.82-1.477,c0.159-1.779-0.142-4.089,0.181-5.777c0.398-2.077,1.521-2.837,2.095-4.611C332.847,111.882,334.881,105.127,337.484,105.127,L337.484,105.127z\", \"name\": \"Semnan\"},\"42\": {\"path\": \"M337.484,105.127c0.225,2.342,2.438,1.913,3.078,3.989c0.353,1.148,0.71,3.203,2.354,2.901c0.857-0.157,2.954-0.161,3.466,0.7,c0.893,1.503-2.429,0.831-2.767,2.59c-0.218,1.138,2.136,1.597,1.371,3.627c-1.496,3.874,0.802,5.308,3.311,7.823,c1.006,1.009,2.256,2.464,3.518,3.057c1.325,0.622,3.015,0.001,4.423,0.881l0.905,0.518l0,0l-0.44-5.88l11.898-7.823l13.941,6.217,l10.164,5.259c2.548,1.271,5.457,3.512,7.371-0.026c1.778-3.286,0.761-4.973,4.707-6.942c0.623-0.311,4.282-2.176,4.397-2.643,c0.762-0.188-0.872-1.558-0.983-1.684c-0.668-0.759-0.71-1.606-0.491-2.513c0.502-2.085,3.105-1.092,2.483-2.772,c0.299-2.371,2.965-2.476,0-4.689c-2.339-1.746-2.147-2.2-2.147-5c0-0.949-1.436-3.578-1.422-3.627,c-0.714-0.609-2.054-5.476-1.966-6.424l-0.44-4.19l0,0c-1.2-0.205-2.184-0.658-3.449-1.381c-1.145-0.52-2.025-1.039-3.021-1.674,c-0.942-0.6-1.756,1.25-2.306-0.163c-0.25-0.642-0.753-1.097-1.408-0.918c-0.737,0.2-0.807-0.832-2.041-0.653,c-0.925,0.134-3-0.819-3.408-0.674c-0.373,0.133-1.394,0.838-1.694,0.755c-0.549-0.152-3.957-1.688-4.102-2.123h-0.041,c-0.314-0.941-0.225-1.184-0.225-2.265c0.407-1.356-0.181-3.258-1.429-3.98c-0.576-0.334-0.687-0.752-0.653-1.408,c0.06-1.151-2.582-5.028-3.817-2.939c-1.07,1.811-1.805,2.905-3.857,2.796c-1.212-0.064-0.66-1.075-1.572-1.184,c-1.355-0.162-2.4,0.134-3.755-0.367c-0.762-0.282-2.692-2.33-3.061-2.102c-1.151,0.71-1.043,0.768-2.429,0.898,c-0.573,0.115-0.897,0.939-1.51,0.939c-0.506-1.519-2.888-1.266-4.388-0.959c-1.57,0.321-2.677,1.887-3.674,3.082,c-0.232,0.278,0.322,2.216,0.265,2.898c-0.111,1.337-2.017,0.666-3.184,1.184c-0.064,0.028-0.158,0.015-0.274-0.025l0,0,l-0.316,3.236c-0.217,0.929-0.771,1.902-0.931,2.85c-0.159,0.946,0.091,1.844-0.233,2.798c-0.513,1.51-1.895,3.441-0.776,5.104,c0.822,1.22,2.872,1.077,3.724,2.228c1.106,1.491,0.172,3.851-1.63,4.196c-1.572,0.301-5.485-1.445-5.949,0.855l-1.707,0.674,c-0.873,0.395-1.448,1.025-1.448,2.021c0,0.461,0.014,0.71-0.259,1.088c-0.144,0.199-0.619,0.457-0.672,0.674,C338.53,104.117,337.759,104.714,337.484,105.127L337.484,105.127z\", \"name\": \"North Khorasan\"},\"43\": {\"path\": \"M444.147,339.903l-3.027,12.227l-1.19,9.326c-0.282,1.952-0.828,3.059-1.396,4.922c-1.055,3.458-1.247,4.156,2.121,6.062,c1.804,1.021,0.922,5.156,1.293,7.046c-0.426,2.423,0.592,4.955-0.155,7.616c-0.587,2.089-3.388,4.112-3.388,6.191,c0,2.785,0.33,5.482,1.914,7.745c-0.041,0,0.297,1.091,0.233,1.425c-0.676,3.491-8.794,6.688-11.897,7.461,c-0.644,0.16-3.588,0.974-2.173,2.15c1.863,1.547,4.026,1.193,4.733,3.938c0.723,2.803-1.26,3.829-3.13,5.414l-1.061,1.192,c0,6.92,1.652,13.112-1.19,19.739c-1.174,2.668-2.626,9.347-1.5,12.15c0.946,2.356,0.414,3.369,0.414,5.751,c0,2.643,1.734,3.138,3.336,4.74c1.439,1.25,1.566,5.459-0.207,6.399c-1.267,0.672,1.609,2.62,1.552,3.627,c-0.04,0.704-1.984,0.734-2.276,1.865c-0.822,3.189,2.34,3.672,2.043,5.518c-0.226,1.409-3.004,2.734-2.561,4.792l-0.052,2.357,l-0.892,1.552l0,0c-0.363,0.678-0.906,1.191-0.815,2.085c0.138,1.35,0.538,0.798,1.448,1.23c0.455,0.217,0.485,0.901,0.737,1.296,c1.051,1.641,3.309,2.18,4.41,3.938c0.435,0.491,0.905,0.898,1.034,1.556c0.245,1.255-0.29,1.526,0.957,2.202,c0.517,0.281,1.246,0.447,1.19,1.166c-0.094,1.21,0.734,1.207,1.112,2.254c0.276,0.762,0.951,2.677,0.951,3.504l0,0,c0.978-0.299,1.97-0.628,2.954-0.861c5.065-1.203,5.112,2.658,9.234,2.15c0.753-0.219,4.674-0.268,5.276,0.104,c0.454,0.281,0.944,1.038,1.423,1.425c0.142,0.115,1.075-0.674,1.448-0.777c3.021-0.838,4.624,0.379,6.932,1.269,c0.683,0.263,0.823-1.251,1.526-1.684c2.061-1.269,1.901,1.338,3.362,1.658c0.624,0.137,2.769,0.872,3.13,0.622,c0,0-1.371-1.378-1.371-2.383c0-1.802,3.09-2.096,4.319-1.839c1.371,0.286,2.676,2.711,1.474,3.108,c1.237,1.244-0.647,2.435,2.949,2.435c2.861-0.279,8.055,2.128,11.147,2.564c1.518,0.215,1.46,1.122,2.431,1.891,c2.043,1.617,9.13,3.197,9.13-0.052c0-2.577,2.02-1.763,3.605-1.664l0,0l1.024-3.827l0.517-10.906,c0.404-0.575,0.647-0.432,0.647-1.14c-0.063-0.021,1.397-1.15,1.397-1.839c0.043-0.014,0.057-0.052,0.129-0.052,c0.069-0.204,1.114,0.34,1.164,0.492c0.941,0,1.422-0.939,1.862-1.529l-0.621-2.357c-0.257-0.975,0.916-0.862,1.19-1.477,c0.419-0.942-1.469-1.077-1.552-2.254c-0.056-0.803,0.535-1.047,0.776-1.684c0.191-0.505-0.269-1.093-0.078-1.736,c0.898-1.631,0.773-4.105,1.474-5.829c0.232-0.571,3.217-0.458,3.88-2.461c1.215,0,5.431,3.135,5.431,1.14,c0-0.594,0.198-1.401,1.009-1.088c0.627,0.242,0.285-4.274,0.931-4.274c0.544-1.644,1.234-2.836,3.388-2.616,c0.877,0.09,0.647-1.142,1.655-1.399c0.735-0.188,2.196,0.186,3.104,0.103c1.647-0.039,1.818-1.088,3.207-1.088,c0.19,0.584,2.058-0.806,2.276-1.217c0.418-0.79,4.329,0.53,5.458,0.104c1.103-0.418,8.675,0.749,7.138-1.813,c-0.245-0.408,0.543-2.76,0.077-3.912c-0.407-1.007,0.686-0.814,1.345-0.881c1.012-0.103-0.026-0.991-0.026-1.58,c0.072-0.024,0.251-0.205,0.336-0.233v-0.078l0.155-2.15l-0.026-3.756c0.52-1.282,1.3-0.554,2.069-1.166,c0.376-0.299-1.193-3.503-1.759-3.549c-1.674-0.137-0.931,0.041-2.095-0.984c-0.423-0.372-1.296,0.635-1.81,0.803,c-0.724,0.236-0.975-0.244-1.629-0.207c-0.936,0.053-1.685,0.907-2.871,0.907c-0.44,0-0.825,0.233-1.241,0.233,c-0.53,0-0.588-0.516-0.905-0.596c-0.023-0.092-0.118-0.057-0.181-0.103c-0.701,0.42-0.807,0.711-1.655,0.544,c-0.071-0.289-2.205-1.051-1.474-1.658c2.809-2.333-0.882-1.798,0.569-3.653c1.26-1.61,1.293-2.915,1.293-4.87l-0.414-7.953,l-1.94-8.6l0.88-8.341l-4.5,0.777c-2.099,0.173-2.205-0.202-3.284-1.813c-0.574-0.857-0.693-2.445-1.811-2.616,c-1.164-0.178-1.307-0.757-2.328-1.192c-0.831-0.354-2.33-0.655-3.233-0.829c-1.409-0.404-2.955-1.347-4.345-1.347,c-1.458,0-2.213-0.961-3.492-1.217c-0.806-0.161-2.04-0.081-2.664-0.673c-0.743-0.706-1.159-2.216-2.069-2.668,c-2.074-1.03-1.884-1.599-3.078-3.549c-0.299-0.489-1.801-0.856-2.431-1.736l-2.845-5.336c-0.141-0.719-0.448-1.798-1.267-1.891,c-1.195-0.136-0.432-0.984-0.103-1.399c0.4-0.506-0.604-0.737-0.672-1.036c-0.173-0.762,0.043-1.321-1.086-1.321,c-1.279,0-0.932-1.465-0.724-2.28c0.204-0.797-1.499-1.73-1.785-2.72c-0.213-0.738,0.517-0.968,0.233-1.71,c-0.222-0.578-0.212-1.488-0.388-2.021c-0.049,0-0.064,0.016-0.078-0.026c-0.26,0-0.457,0.103-0.724,0.103,c-0.123-0.372-0.677-0.425-0.698-1.088l-3.699-3.756l-8.509-10.854l0,0l25.89-31.371c-0.616-1.008,1.498-1.558,0.983-2.901,c-0.198-0.516-0.29-1.307-0.432-1.992l1.413-1.375l-0.181-3.963l-0.828-0.933l-0.207-2.124l-0.672-0.622l-0.052-3.471l-1.94-2.435,l-5.638-0.751l-11.505-1.794l0,0c0,1.14,0.876,2.604,0.876,3.763c0,1.028-0.49,1.696-1.164,2.409,c-0.523,0.555-0.605,1.567-1.112,1.969c-1.498,4.51-2.897,7.789-2.897,12.616c0,1.108,0.314,2.971,0.026,3.964,c0,1.973,0.361,3.519,0.646,5.388c0.136,0.889,0.58,3.786,1.061,4.43c-0.384,0.517-0.097,0.72-0.879,1.088,c-0.374,0.176-1.17,0.207-1.604,0.207c-1.095,0-2.285,0.088-3.337-0.181c-1.009-0.259-1.1-1.024-1.836-1.554,c-1.392-1.571-2.241-3.521-3.13-5.388c-0.905-1.899-2.542-1.796-3.828-3.083c-1.089-1.089-1.152-1.511-2.742-1.865,c-1.205-0.269-3.42-0.665-3.802-2.176c-1.545-0.39-2.357,1.444-3.957,1.295l-12.104,3.394l-2.897,0.44L444.147,339.903,L444.147,339.903z\", \"name\": \"Sistan&Baluchestan\"},\"44\": {\"path\": \"M298.791,366.275l0.259,1.684l2.923,5.777c-0.111,1.703,2.554,4.288,4.061,4.663c3.502,0.871,7.316-1.335,8.82,3.316,c1.181,3.653,1.649,7.247,3.44,10.828l0.983,1.684l0,0c1.398-0.75,5.471-0.186,6.751,0.699c2.265,1.568,4.853,6.44,7.656,5.984,c3.818-0.622,6.815-6.372,10.242-6.372c1.981-0.575,2.706,2.196,2.638,3.627c-0.134,2.807,0.531,5.67-0.026,8.342,c-0.628,3.011-2.267,4.882-0.285,7.668c0.323,2.5,8.182,7.464,10.604,7.823c3.551,0.527,6.755-1.85,8.897-4.507,c3.721-4.615,6.998-2.555,7.242,2.824c0.054,1.189,0.255,6.373,1.914,6.373c2.812,0,2.03-0.049,3.362,2.616l1.604,2.202,c0.531,0.729,2.942,2.696,2.095,3.653c-0.294,0.332-2.889,1.835-1.241,2.409c2.485,0.866,2.463,1.836,2.69,4.43l0.595,6.813,c-0.436,4.476-0.598,8.603,4.061,9.507c2.401,0.466,5.925,2.582,7.216,4.637c1.63,2.592,4.522-6.142,8.251-1.58,c1.164,1.423,3.195,2.45,4.164,3.912c0.238,0.359,0.775,2.229,0.258,2.487c-0.434,0.216-1.156-0.971-1.94-0.777,c-0.574,1.762,0.885,3.455-0.647,5.207c-0.686,0.715-0.166,2.013-0.776,3.005c-0.453,0.737-0.605,4.277-0.336,5.026,c0.272,0.758-0.396,2.525-0.853,3.212c-1.156,1.737,1.033,0.425,1.604,0.285c2.062-0.508,3.648,1.834,5.38,0.855,c0.345-0.195,1.341-1.639,1.836-0.829c0.579,0.946,1.098,0.917,2.043,1.269c0.376,0,2.433-0.58,2.095,0.44,c-0.302,0.911-0.533,0.728,0.026,1.502c0.436,0.603,0.291,3.427,1.138,3.368c0.509-0.036,0.857-0.596,1.5-0.596,c0.736,0,1.955,0.986,2.328-0.233c0.426-1.392,1.057-1.31,2.147-0.829c1.018,0.45,1.442,1.692,2.186,2.432l0,0l0.892-1.552,l0.052-2.357c-0.444-2.059,2.334-3.383,2.561-4.792c0.296-1.845-2.866-2.328-2.043-5.518c0.292-1.131,2.236-1.161,2.276-1.865,c0.057-1.007-2.819-2.955-1.552-3.627c1.773-0.94,1.646-5.149,0.207-6.399c-1.602-1.602-3.336-2.097-3.336-4.74,c0-2.382,0.533-3.395-0.414-5.751c-1.126-2.802,0.326-9.481,1.5-12.15c2.842-6.627,1.19-12.819,1.19-19.739l1.061-1.192,c1.869-1.585,3.852-2.612,3.13-5.414c-0.708-2.745-2.871-2.39-4.733-3.938c-1.415-1.176,1.529-1.99,2.173-2.15,c3.104-0.772,11.221-3.97,11.897-7.461c0.065-0.334-0.274-1.425-0.233-1.425c-1.584-2.264-1.914-4.961-1.914-7.745,c0-2.079,2.802-4.102,3.388-6.191c0.747-2.661-0.271-5.193,0.155-7.616c-0.371-1.891,0.511-6.025-1.293-7.046,c-3.368-1.906-3.176-2.604-2.121-6.062c0.569-1.863,1.114-2.97,1.396-4.922l1.19-9.326l3.027-12.227l0,0l-5.458-8.652l-5.845-9.844,l-19.76-9.326l-12.932-6.424l-6.104-2.176l0,0l-7.785-3.471c-3.533,0-7.423-3.889-10.708-5.052,c-3.807-1.348-6.55-3.338-10.785-3.601l-2.509-0.156l0,0c-0.091,0-0.076,0.035-0.129,0.052c0,1.654-3.957,3.954-5.276,3.316,c-2.036,1.021-3.243,2.305-4.785,3.938c-1.384,1.466-3.182,2.129-4.888,3.083c-3.035,1.697-7.507,2.231-10.164,4.378,c-1.909,1.542-1.038,3.974-1.449,6.165c0,3.25,1.695,11.048-3.207,12.072c-3.162,0.66-9.996,1.105-12.88-0.389,c-4.115-0.452-8.991,3.262-12.622,2.565c-4.096-0.786-5.901,1.244-7.889,4.87c-0.388,0.708-1.611,5.959-0.776,6.165,c0.039,0.27,0.901,1.331,1.19,1.373c0.57,1.428,1.958,2.225,1.837,4.119c0.497,1.361-0.012,4.509,1.034,5.207,c1.747,1.167,2.46-0.234,2.328,2.668c-0.186,4.092-2.979,7.959-0.853,11.994c1.458,2.767,0.491,1.793-2.043,2.28,C300.658,365.255,299.682,365.797,298.791,366.275L298.791,366.275z\", \"name\": \"Kerman\"},\"45\": {\"path\": \"M356.623,456.756c-0.599-0.279-1.332,0.137-1.332,0.842c0,0.331,0.126,0.688,0.414,0.881c0.301,0.201,0.581,0.104,0.918,0.104,c0.006-0.024,0.346-0.207,0.401-0.246c0.153-0.111,0.362-0.376,0.362-0.57c0-0.158-0.094-0.79-0.298-0.79L356.623,456.756,L356.623,456.756z M262.684,466.29c-0.279,0.065-1.269-0.738-1.513-0.933c-0.111-0.089-0.637-0.588-0.556-0.751,c0.042-0.085,0.56,0.13,0.647,0.155c1.065,0.306,2.339,0.458,3.44,0.674c0.475,0.093,2.612,0.106,2.612,0.712,c-1.138,0.363-2.346,0.389-3.569,0.389L262.684,466.29L262.684,466.29z M274.361,470.772c-0.505,0.118-1.321-0.206-1.177-0.803,c0.066,0,0.251-0.06,0.323-0.078c0.102-0.026,0.22,0.056,0.297,0.091c0.353,0.157,0.985-0.069,1.306,0.155,c0.504,0.351,0.054,0.595-0.414,0.635H274.361L274.361,470.772z M283.556,475.72c-0.556,0.126-1.299-0.635-1.397-1.14,c-0.133-0.689,0.726-0.755,1.151-0.855c1.069-0.251,2.033,0.273,2.587,1.179c0.724,1.183-0.839,0.946-1.565,0.946L283.556,475.72,L283.556,475.72z M314.775,496.6c-0.235-0.126-0.429-0.501-0.285-0.752c0.085-0.147,0.204-0.372,0.401-0.401,c0.224-0.034,0.519,0.387,0.595,0.557c0.138,0.309-0.249,0.513-0.504,0.609L314.775,496.6L314.775,496.6z M300.058,495.395,c-0.274,0-0.576-0.139-0.699-0.389c-0.1-0.203,0.293-0.308,0.427-0.375c0.238-0.119,0.571-0.439,0.828-0.259,c0.086,0.06,0.082,0.288,0.09,0.402c0.004,0.061,0.159,0.36,0.207,0.376c0,0.039,0.013,0.083,0.013,0.13,c-0.069,0.023-0.152,0.105-0.246,0.13c-0.133,0.035-0.282,0.085-0.414,0.103L300.058,495.395L300.058,495.395z M299.553,483.504,c-0.084-0.251-0.349-0.602-0.349-0.894c0-0.72,1.083-0.778,1.28-0.181c0.086,0.261-0.142,0.674-0.142,0.971,c0,0.256,0.008,0.44-0.052,0.673c-0.147,0-0.517-0.1-0.556-0.259L299.553,483.504L299.553,483.504z M329.518,469.169,c-0.052,0.155-3.32,1.446-3.698,1.477c-0.681,0.056-1.802,0.455-2.431,0.699c-0.93,0.361-1.393-0.414-1.966-0.414,c0,0.929,0.439,2.035,0.543,2.953c0.151,1.323,1.397-0.567,1.681-0.544c3.119,0.256,6.097-0.781,9.104-2.642,c1.375-0.851,7.229-3.112,7.733-1.062c-2.508,0.83-2.318,4.07-0.052,0.933c1.353-1.873,3.418-2.591,4.966-3.989,c0.909-0.822,1.946-3.85,2.949-4.015c0.67-0.11,3.512-1.361,1.604-1.995c-4.017-1.335-6.343,2.251-9.958,2.435,c-2.146,0.109-5.885-3.097-4.138,0.803c0.888,1.982-0.965,2.012-1.578,0.414c-0.188-0.49,0.283-0.999-0.104-1.632,c-0.156-0.256-2.774,3.013-1.371,3.756c2.682,1.422-1.397,1.363-2.561,2.383L329.518,469.169L329.518,469.169z M353.455,463.453,l0.556-0.104c0.368-0.185,0.988,0.478,0.88,0.829c-0.148,0.48-0.476,0.564-0.853,0.816c-0.657,0.439-2.32,1.012-1.849-0.428,C352.391,463.946,352.964,463.716,353.455,463.453L353.455,463.453z M436.719,510.339c-2.417,0.739-4.756,1.304-6.719-0.162,l-4.681-3.497c-0.451-0.336-8.991-2.117-9.776-1.995c-0.6,0.118-2.91,0.634-3.259,0.492c-1.109-0.452-1.151-1.323-2.56-1.036,c-1.345,0.274-5.55,2.675-6.828,1.969c-0.449-0.248-2.982-3.426-2.923-3.575c-0.807-0.807-1.606-0.653-2.638-0.026,c-0.671-0.404-1.79,0.649-2.354,0.881c-0.95,0.39-0.57-0.848-0.414-1.684c0-3.6-13.684,0.68-14.07-5.311,c-0.072-1.126-1-3.83-2.224-4.015c-2.075-0.314-0.068-4.794-0.44-5.621c-0.578-1.286-2.357-2.487-2.483-3.911,c0-0.697-0.827-1.663-0.827-1.943c-0.367-0.12-0.982-3.789-0.75-4.482c0.6-1.796,0.19-2.961,0.052-4.793,c-0.277-3.659-2.523-6.086-3.879-9.222c-0.966-1.602,0.902-2.953-1.681-2.953l-0.388-1.943c-0.251-1.257-0.965-0.098-1.552-1.528,c-0.366-0.892-4.58-1.58-5.613-1.58c-1.546,0-3.944,0.359-5.328,0c-0.487-0.126-1.51-0.903-1.888-0.803l-5.509,1.451,c-1.75,0.461-1.731,0.273-2.794,0.881c-0.146,0.591-1.522,1.542-2.147,1.347c-0.761-0.237-1.335,1.09-1.785,1.58,c-1.215,1.324-4.426-0.155-4.991,1.554c-1.801,0-3.017-1.018-4.604,0.57c-1.279,1.279-1.125,2.779-1.681,4.326,c-1.407,3.912-6.394,0.768-8.82,1.71c-0.472,0-2.018,3.057-2.457,1.709c-1.471,0.372-2.391,2.517-3.362,2.591,c-2.224,0.168-3.137,2.022-4.992,3.057c-2.592,1.446-7.227,2.477-8.819-0.414c-1.5-2.724-4.019,0.412-5.897-2.409,c-0.7-1.052-1.598-3.344-2.897-2.772c-2.341,1.032-2.968,0.045-5.121-0.155c-3.448-1.733-2.523,0.337-5.25,0.337,c-1.931,0-3.723-0.281-5.069,0.725c-1.088-1.626-4.126-2.81-5.613-4.145c-2.2-1.975-0.74-4.345-3.647-5.311l-5.302-1.761,c-1.376-0.457-6.265-2.022-7.138-2.979c-1.067-0.848-4.529-1.827-5.044-2.668c-0.769-1.257-2.169-2.588-3.725-2.901,c-0.03-0.123-0.127-0.28-0.268-0.454l0,0l1.225-1.308c0.749-0.072,1.351-0.337,2.147-0.337c1.169,0,4.56,0.378,5.199-0.907l0,0,l1.216,0.7c0.954,1.678,0.618,2.842,2.897,3.342c1.894,0.416,3.954-0.846,5.794-0.389c1.798,0.448,1.712,2.079,3.078,2.72,c1.157,0.543,3.719,0.533,5.018,0.155c3.325,0.039,7.122,2.662,9.518,0.259c0.761-0.763,2.178-0.067,2.742-0.7,c1.055-1.185-1.138-2.462-0.698-3.264c0.238-0.433,1.127-1.347,1.009-1.813c-0.182-0.713-0.761-1.269-0.905-2.021,c-0.319-1.661,3.822-2.643,4.914-2.746l9.078-0.855c1.791,0.895,2.09,1.549,3.879,0.311c1.318-0.912,3.059-1.467,4.63-1.166,c2.733,0.525,5.555,3.802,8.613,2.072c1.453-0.822,3.08-3.739,2.819-5.362c1.148-1.924,1.081-2.868,3.233-3.419,c1.583-0.406,1.438-2.268,2.923-2.409c2.375-0.226,7.938,1.913,6.932-3.342c-0.551-2.876-3.867-3.036-4.371-4.948,c-0.273-1.033,1.545-7.677,2.147-8.549c2.082-5.744-6.209-9.187-9.492-12.719c-1.823-1.961-1.126-1.98,0.879-2.487,c0.253-1.025-0.121-1.679-0.44-2.668l-1.267-3.393l0,0c1.398-0.75,5.471-0.186,6.751,0.699c2.265,1.568,4.853,6.44,7.656,5.984,c3.818-0.622,6.815-6.372,10.242-6.372c1.981-0.575,2.706,2.196,2.638,3.627c-0.134,2.807,0.531,5.67-0.026,8.342,c-0.628,3.011-2.267,4.882-0.285,7.668c0.323,2.5,8.182,7.464,10.604,7.823c3.551,0.527,6.755-1.85,8.897-4.507,c3.721-4.615,6.998-2.555,7.242,2.824c0.054,1.189,0.255,6.373,1.914,6.373c2.812,0,2.03-0.049,3.362,2.616l1.604,2.202,c0.531,0.729,2.942,2.696,2.095,3.653c-0.294,0.332-2.889,1.835-1.241,2.409c2.485,0.866,2.463,1.836,2.69,4.43l0.595,6.813,c-0.436,4.476-0.598,8.603,4.061,9.507c2.401,0.466,5.925,2.582,7.216,4.637c1.63,2.592,4.522-6.142,8.251-1.58,c1.164,1.423,3.195,2.45,4.164,3.912c0.238,0.359,0.775,2.229,0.258,2.487c-0.434,0.216-1.156-0.971-1.94-0.777,c-0.574,1.762,0.885,3.455-0.647,5.207c-0.686,0.715-0.166,2.013-0.776,3.005c-0.453,0.737-0.605,4.277-0.336,5.026,c0.272,0.758-0.396,2.525-0.853,3.212c-1.156,1.737,1.033,0.425,1.604,0.285c2.062-0.508,3.648,1.834,5.38,0.855,c0.345-0.195,1.341-1.639,1.836-0.829c0.579,0.946,1.098,0.917,2.043,1.269c0.376,0,2.433-0.58,2.095,0.44,c-0.302,0.911-0.533,0.728,0.026,1.502c0.436,0.603,0.291,3.427,1.138,3.368c0.509-0.036,0.857-0.596,1.5-0.596,c0.736,0,1.955,0.986,2.328-0.233c0.426-1.392,1.057-1.31,2.147-0.829c1.018,0.45,1.442,1.692,2.186,2.432l0,0,c-0.363,0.678-0.906,1.191-0.815,2.085c0.138,1.35,0.538,0.798,1.448,1.23c0.455,0.217,0.485,0.901,0.737,1.296,c1.051,1.641,3.309,2.18,4.41,3.938c0.435,0.491,0.905,0.898,1.034,1.556c0.245,1.255-0.29,1.526,0.957,2.202,c0.517,0.281,1.246,0.447,1.19,1.166c-0.094,1.21,0.734,1.207,1.112,2.254C436.043,507.597,436.719,509.512,436.719,510.339,L436.719,510.339z\", \"name\": \"Hormozgan\"},\"46\": {\"path\": \"M474.094,222.605l1.452,8.083l-0.828,2.694l0.103,3.212l0.595,1.632l3.828,1.969l5.949,0.026l0.957,0.751l-0.388,0.466l-1.345-0.207,l-0.75,0.725l0.233,2.305l-1.242,0.829l-5.354,5.751l-1.631,3.627l1.526,4.119l1.862,7.72l0.828,4.015l2.612,5.855l0.879,6.684l0,0,l1.138,3.73l-1.267,4.249l-0.75,1.114l0.414,1.684l-0.336,1.166l-0.155,7.564l0,0l1.19,8.316l7.427,1.159l0,0,c0,1.14,0.876,2.604,0.876,3.763c0,1.028-0.49,1.696-1.164,2.409c-0.523,0.555-0.605,1.567-1.112,1.969,c-1.498,4.51-2.897,7.789-2.897,12.616c0,1.108,0.314,2.971,0.026,3.964c0,1.973,0.361,3.519,0.646,5.388,c0.136,0.889,0.58,3.786,1.061,4.43c-0.384,0.517-0.097,0.72-0.879,1.088c-0.374,0.176-1.17,0.207-1.604,0.207,c-1.095,0-2.285,0.088-3.337-0.181c-1.009-0.259-1.1-1.024-1.836-1.554c-1.392-1.571-2.241-3.521-3.13-5.388,c-0.905-1.899-2.542-1.796-3.828-3.083c-1.089-1.089-1.152-1.511-2.742-1.865c-1.205-0.269-3.42-0.665-3.802-2.176,c-1.545-0.39-2.357,1.444-3.957,1.295l-12.104,3.394l-2.897,0.44l-4.216,1.347l0,0l-5.458-8.652l-5.845-9.844l-19.76-9.326,l-12.932-6.424l-6.104-2.176l0,0l-7.785-3.471c-3.533,0-7.423-3.889-10.708-5.052c-3.807-1.348-6.55-3.338-10.785-3.601,l-2.509-0.156l0,0c-0.065-0.46-2.742-3.322-3.026-3.782c-0.378-0.612-0.691-1.287-1.035-1.917c-0.68-1.245-1.572-2.052-2.69-2.953,c-2.147-1.732-4.138-6.948-4.138-9.637c-2.25-2.825-3.331-5.856-6.104-8.238c-2.268-1.949-5.01-5.311-6.621-7.875l-3.776-6.01,c-1.589-2.528-4.561-4.692-6.466-7.202l0,0c0-8.078-1.04-15.524-1.81-23.522l0,0c1.191-0.64,5.518-0.57,7.035-0.57,c3.249,0,3.689-3.329,4.397-6.217c0.883-3.602,3.574-7.314,5.225-10.621l3.983-5.596l0,0c5.691,0,10.888,2.374,17.277,1.347,c5.401-0.868,4.617-7.748,9.725-9.067c6.543-1.689,14.046-0.157,14.949,7.72c0.271,2.362-0.23,7.063,2.379,8.134,c2.921,1.2,2.47,4.386,1.19,6.632c-1.142,1.048-0.904,4.496,0.362,5.44c3.082,2.298,6.276-0.777,9.466-0.777,c1.2,0,2.271,0.77,2.949,1.71c0.444,0.615,2.561,2.072,2.535,2.176c2.966,1.111,9.807-0.762,13.423-0.311,c1.708-0.158,3.346,0.518,5.483,0.052c1.669-0.364,3.564-0.829,5.276-0.829c2.427,0,1.829,2.266,4.63,1.684l3.362-0.699,c1.19-0.248,1.962-1.252,3.181-1.373c2.703,0,3.841,1.219,6.311,1.865c4.416,1.154,8.082,3.714,12.337,4.974,C465.769,226.836,469.925,222.279,474.094,222.605L474.094,222.605z\", \"name\": \"South Khorasan\"}},\"height\": 500,\"width\": 550});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.iraq.js",
    "content": "jQuery.fn.vectorMap('addMap', 'iraq', {\"width\": 612, \"height\": 400, \"paths\": {\"1\": {\"path\": \"M125.762 71.4976l-0.7938 0.2467c-0.4965,0.1542 -0.8363,-0.0117 -1.0584,0.5666 -0.1883,0.4906 -0.1481,0.7334 -0.4745,1.1972 -0.3726,0.5293 -1.0559,0.7039 -0.9854,1.4805 0.0839,0.9234 0.3575,1.277 -0.4653,1.9465 -0.1845,0.3443 -0.4324,1.6622 -0.7756,1.7546 -0.2969,0.08 -1.0177,-0.6974 -1.177,-0.9413 -0.2237,-0.3423 -0.8904,-0.3658 -1.2592,-0.2924 -0.5173,0.1031 0.1802,0.5088 -0.0912,0.8042 -0.291,0.3169 0.2352,0.4444 0.146,0.8042 -0.0571,0.23 -0.4987,0.3691 -0.5201,0.5575 -0.0197,0.1743 0.1648,0.4201 0.1095,0.5209 -0.2754,0.5025 0.1518,0.6887 -0.0274,1.1971 -0.1255,0.3564 -0.2291,0.4782 -0.3102,0.8865 -0.0869,0.438 0.227,0.288 0.2737,0.4935 0.0558,0.245 0.0365,0.8223 0.0365,1.1058 0,0.4783 -0.6858,0.6319 -0.9854,0.9321 -0.107,0.2398 -0.357,0.4721 -0.511,0.6946 -0.1863,0.2694 -0.6754,0.2879 -0.9763,0.53 -0.3483,0.2804 -0.4053,1.2259 -0.7117,1.6358 -0.3265,0.437 -0.3284,1.1217 -0.3284,1.6358 0.926,0.1876 1.2041,-0.1586 1.8157,0.7037 0.4652,0.6561 1.388,0.7405 0.958,1.709 -0.0054,0.1713 0.0059,0.0488 -0.0091,0.1096 -0.1854,0.0927 -0.886,1.5501 -1.031,1.8095 -0.3903,0.6981 -0.0347,1.0128 0.3193,1.5444 0.1069,0.1607 -0.0582,2.2243 -0.2098,2.3761 -0.3034,0.3041 -0.8158,-0.0796 -1.0858,0.2467 -0.2167,0.262 -0.0935,0.7108 -0.2281,1.0784 -0.0758,0.222 -0.2187,0.3645 -0.365,0.5392 -0.1889,0.2254 -0.1638,0.6285 -0.1095,0.8956 0.0549,0.2705 0.2976,0.5049 0.4745,0.7036l0.265 0.393 0 0 -1.36 1.2794 0 0 -1.2135 -1.5901c-0.2411,-0.2632 -0.5015,-0.6908 -0.7299,-0.987 -0.2033,-0.2637 -0.5139,-0.4731 -0.7391,-0.7219 -0.5148,-0.5688 -0.6338,-0.7526 -0.6113,-1.5262 0.0143,-0.4901 -0.1625,-0.606 -0.3924,-0.9961 -0.3375,-0.5724 -0.5831,-0.6104 -1.1765,-0.7951l-4.5986 -0.0365 -1.2229 -0.9139 -5.4928 0 -7.7738 -9.7236 0.0182 -6.1046 -2.6642 3.0706 -5.8395 -4.0028 -0.4927 -7.9506 0 0 0 -3.6555 10.3833 -0.3473 -3.23 -5.0628c0.1264,-0.642 -0.2558,-1.6619 -0.2558,-2.376 0,-1.3906 0.9994,-2.1322 1.9343,-3.0341 0.4386,-0.4232 0.9549,-0.9725 1.5238,-1.1972 0.6425,-0.2539 1.5209,-0.026 2.2354,-0.265 0.594,-0.1945 1.1876,-0.4951 1.7519,-0.7768 0.4584,-0.2289 0.9803,-0.3038 1.4416,-0.5117l0.6569 -0.0822 0 0c0.0481,0.6366 0.0298,0.9099 -0.2098,1.5169 -0.1298,0.3291 -0.2778,0.6375 -0.3649,0.9779 -0.0307,0.1198 -0.2079,0.4587 -0.1095,0.5574 0.2255,0.2265 0.7802,0.2831 1.0858,0.4296 0.341,0.1634 0.2554,0.4876 0.2554,0.8224l0 0 -2.9559 1.0693 2.5183 6.1594c0.5629,0.3712 1.97,0.6815 2.6457,0.8134 1.3177,0.2574 2.4226,1.0733 3.6315,1.6084 1.2722,0.5632 1.6817,1.3643 2.6095,2.2938 0.6821,0.6357 1.1333,1.6724 2.2081,1.6724 0.2645,0 0.9659,-0.1084 1.1223,0.0822 0.971,1.1839 2.6094,1.9096 3.6041,3.0706 0.5995,0.6996 0.6633,0.3511 1.0857,-0.4204 0.4688,-0.856 0.6123,-2.1303 1.1406,-2.8512 0.3185,-0.2095 0.7264,-1.2365 0.8942,-1.6084 0.3772,-0.8361 0.8828,-1.4374 0.9763,-2.3761 0.0566,-0.569 -0.151,-1.5042 0.7025,-1.6449l0 0c0.0891,0.1455 0.2149,0.2746 0.292,0.4295 0.0314,0.0257 0.0411,0.0388 0.0639,0.0731 0.4656,0.2999 0.522,0.732 1.1861,0.8407 0.8036,0.1316 1.7691,0.0731 2.5913,0.0731 0.4239,0 0.8071,0.0259 1.2227,0.0823 0.5187,0.0703 0.7939,0.3667 1.2226,0.594 0.1945,0.2877 0.5056,0.5286 0.6479,0.8499 0.1827,0.4122 0.3179,0.8694 0.1642,1.316 -0.1378,0.4001 -0.3102,1.0892 -0.3102,1.5079l0.0182 0.5026 0 0z\",\"name\": \"salah ad-Din\"},\"2\": {\"path\": \"M118.664 65.2285c0.0891,0.1455 0.2149,0.2746 0.292,0.4295 0.0314,0.0257 0.0411,0.0388 0.0639,0.0731 0.4656,0.2999 0.522,0.732 1.1861,0.8407 0.8036,0.1316 1.7691,0.0731 2.5913,0.0731 0.4239,0 0.8071,0.0259 1.2227,0.0823 0.5187,0.0703 0.7939,0.3667 1.2226,0.594 0.1945,0.2877 0.5056,0.5286 0.6479,0.8499 0.1827,0.4122 0.3179,0.8694 0.1642,1.316 -0.1378,0.4001 -0.3102,1.0892 -0.3102,1.5079l0.0182 0.5026 0 0c0.4194,0.21 0.8462,0.4882 1.3322,0.3198 1.0067,-0.3487 0.9951,-1.352 1.7792,-0.0457 0.6421,1.0696 1.0296,-0.5466 1.4872,-0.0182l0.7756 0.8956c0.1519,0.1753 -0.0726,0.5719 -0.1277,0.7859 -0.1691,0.6557 0.6843,0.1998 0.6843,0.7676 0,0.5248 0.0119,0.8572 0.3467,1.2886 -0.0616,0.4954 0.0698,0.7447 0.1278,1.2063 0.1201,0.06 0.2926,0.3005 0.4379,0.0914 0.2616,-0.3767 0.6902,-0.9738 1.0493,-1.2612 0.3051,-0.2443 0.6831,0.0512 0.9033,-0.1462 0.3613,-0.3237 1.0164,-0.4532 1.25,-0.8407 0.0921,-0.1529 0.0347,-0.4728 0.0822,-0.658 0.0884,-0.3442 0.1795,-0.5717 0.3193,-0.9047 0.2786,-0.661 0.7421,-0.9607 0.8759,-1.6907 0.2094,-1.1429 1.3068,-1.5315 1.8523,-2.4857 0.288,-0.504 -0.6205,-0.247 -0.6205,-0.6946 0,-0.1245 0.4295,-0.405 0.5292,-0.53 0.1672,-0.2095 0.1612,-0.4405 0.3467,-0.6397 0.2326,-0.0976 0.4824,-0.4292 0.584,-0.658 0.1154,-0.2597 0.0078,-0.8485 0.3558,-0.8682 0.3243,-0.0184 0.6927,-0.3107 1.022,-0.3107 0.153,0.6189 -0.1773,1.4864 -0.1095,2.175 0.0818,0.8314 0.3526,2.4684 0.6387,3.2534l0 0c0.4609,0 0.471,-0.101 0.9124,0.1462 0.4563,0.2554 0.4359,-0.6399 0.5292,-0.8864 0.0921,-0.2435 0.4079,-0.269 0.365,-0.5758 -0.0781,-0.5585 -0.6369,-1.1267 -0.1369,-1.6267 0.1561,-0.1561 1.1401,-0.0605 0.5748,-0.3838l0.1313 -0.6504c0.0091,-0.045 0.009,-0.0244 0.0426,-0.0041 0.0697,0.0427 0.1656,0.0533 0.328,0.0148 0.2052,-0.0487 0.5073,0.3621 0.6387,0.4843 0.2186,0.2032 0.4174,-0.1722 0.5474,-0.0274 0.1805,0.2011 0.1979,0.1387 0.4289,0.2102 0.058,0.018 0.7433,0.6325 0.6022,0.064 -0.2573,-1.0363 0.579,-0.2711 0.9945,-0.5209 0.2928,-0.176 0.7064,-0.0974 0.8668,-0.4204 0.0479,-0.0965 0.1037,-0.1837 0.1721,-0.2671l-0.3546 -0.3086c-0.3223,-0.324 -0.2697,-0.8511 0.0457,-1.1424 0.3578,-0.3306 0.629,-0.3076 0.2646,-0.8042 -0.2101,-0.2865 -0.1628,-0.3219 -0.5384,-0.2833 -0.4385,0.045 -0.8354,-0.0079 -0.5201,-0.5666 0.2304,-0.4085 0.7088,-0.4593 0.5931,-1.0418 -0.1118,-0.5634 -1.168,-1.3031 -1.688,-1.4713l-1.3504 -2.5771 0.0365 -0.7128 0.0183 -0.0092c0.0174,-0.0706 0.3134,-0.0438 0.3741,-0.0639 0,-0.0218 0.0056,-0.0308 -0.0183,-0.0366 0,-0.1142 -0.2554,-0.2106 -0.2554,-0.4295 0,-0.2436 -0.061,-0.3609 -0.2099,-0.5483 -0.5176,-0.6519 0.4593,-0.1214 0.6661,-0.1097 0.2859,0.0161 -0.0399,-0.4351 -0.1004,-0.53 -0.0654,-0.1028 -0.0547,-0.3008 -0.0547,-0.4204 0,-0.2506 0.1273,-0.269 -0.1734,-0.4113 -0.3088,-0.146 -0.1117,-0.2415 -0.0456,-0.5209 0.1115,-0.3357 0.4653,-1.0083 0.8668,-0.8773 0.4453,0.1454 0.8749,0.461 1.3869,0.2193 0.4665,-0.2201 0.2355,0.0823 0.6022,0.0823 0.203,-0.6137 0.5894,-0.8168 1.1861,-0.6763 0.5338,0.1256 0.8041,-0.2926 1.1497,-0.6397 0.3361,-0.3374 0.2691,-0.2536 0.7482,-0.3747 0.0307,-0.1244 -0.0752,-0.512 0.1095,-0.5574 0.019,-0.0774 0.0401,-0.6599 -0.0092,-0.6763 -0.021,-0.0849 -0.627,0.1268 -0.739,-0.329 -0.1969,-0.0486 -0.3889,0.5882 -0.9033,0.4661 -0.402,-0.0955 -0.5445,0.661 -0.9033,0.1645 -0.2779,-0.3847 -0.2954,0.0974 -0.5475,0.0822 -0.2007,-0.012 -0.438,-0.6489 -0.5292,-0.8133 -0.1317,-0.2375 -1.0654,-0.4202 -1.3048,-0.3747 -0.4018,0.0763 -0.5161,0.3975 -0.9945,0.3838 -0.3952,0 -0.8851,-0.111 -0.8851,0.2833 0,0.2099 -0.8772,-0.2193 -1.031,-0.2193 -0.3662,0 -0.3422,0.4025 -0.5383,0.5118 -0.1426,0.0796 -0.2185,-0.0979 -0.2829,-0.0731 -0.1202,0.0462 -0.2853,0.1693 -0.4197,0.1279 -0.1616,-0.0499 -0.3614,-0.3203 -0.438,-0.329 -0.1481,-0.0167 -0.2965,0.2219 -0.4653,0.265 -0.0982,0.0251 -0.2681,0.1855 -0.292,0.1828 -0.3148,-0.0359 -0.7615,-1.3924 -0.9489,-1.645 -0.2367,-0.3193 -0.6089,-0.4227 -0.6478,-0.8316 -0.0144,-0.1514 -0.8085,-0.8193 -0.9672,-0.8681 -0.4934,-0.152 -0.7933,-0.4701 -1.0949,-0.8682l-0.8942 -0.0731c-0.1526,0.0941 -0.3792,-0.0183 -0.5566,-0.0183 -0.1017,0 -0.6906,0.1556 -0.7755,0.2193 -0.3531,0.2651 -0.6056,0.6965 -0.9763,0.2102 -0.185,-0.2427 -0.2912,0.1579 -0.438,0 -0.0457,-0.0492 -0.0026,-0.2623 -0.1095,-0.201 -0.1145,0.0656 0.0509,-0.4037 -0.0912,-0.4478 -0.0033,-0.001 -0.0268,-0.0052 -0.0905,-0.0194 0.224,-0.3076 0.7558,-1.0303 0.8295,-1.4154 0.106,-0.5538 -0.1815,-0.5619 -0.5748,-0.7585 -0.5415,-0.2707 -0.366,-1.397 -0.2646,-1.8552 0.0361,-0.1636 -0.3472,-0.9064 -0.4745,-1.0144 -0.1718,-0.1456 -0.724,-0.0023 -0.666,-0.3198 0.0609,-0.3339 0.4562,-0.2019 0.4562,-0.5758 0,-0.3353 -0.7065,-0.3424 -0.6205,-0.6762 0.0274,-0.334 0.3641,-0.4424 0.2373,-0.7951 -0.1054,-0.2931 -0.0822,-0.5032 -0.0822,-0.8225 0,-0.267 -0.6273,-0.982 -0.8212,-0.9413 -0.2971,0.0625 -1.0653,0.0787 -1.2226,0.3199 -0.1218,0.1869 -0.3159,0.3653 -0.5475,0.2285 -0.682,-0.4027 -0.6748,-0.8591 -1.1131,-1.3708 -0.1788,-0.2089 -0.0358,-0.9249 -0.2373,-0.9961 -0.2042,-0.0721 -0.7413,-0.3477 -0.8602,-0.6481l0 0c-1.1616,0.436 -1.9794,-0.0912 -2.9628,0.9953 -0.7789,0.8605 -1.424,-0.7289 -1.9526,-0.859 -0.4388,-0.1079 -1.0156,0.383 -1.2409,0.7219 -0.4545,0.6839 -0.5372,0.9662 -1.4143,1.0419l0.0365 2.8512c0.3053,0.1032 0.9106,-0.1333 1.0949,-0.0822 0.3703,0.1026 0.2653,0.9333 0.9581,0.9595 0.4381,0.0165 0.4014,-0.039 0.4014,0.4752 0,0.572 0.156,0.4801 -0.4653,0.5027 -0.3098,0.0113 -1.7648,0.0559 -1.8066,0.2741 -0.073,0.3804 -0.0365,0.8952 -0.0365,1.2886 0,0.0735 -0.0596,0.383 0.0183,0.4021 0.0449,0.1817 1.4749,0.9603 1.7336,1.3525l1.5237 1.8278c0.4139,0.4967 0.777,0.7865 1.3048,1.124 0.236,0.1508 0.6573,0.4017 0.8121,0.6306 0.0853,0.126 0.6534,0.8875 0.2189,0.8042 -0.1651,-0.0317 -0.3698,-0.2709 -0.5201,-0.2102 -0.2811,0.1135 -0.0141,0.5113 -0.3467,0.594 -0.3423,0.0852 -0.3583,-0.4295 -0.5474,-0.4295 -0.2988,0 -0.346,0.818 -0.6935,0.3381 -0.3523,-0.4863 -0.7399,-0.466 -1.2409,-0.1828l0 0 0.2646 1.0693c0,0.8834 -0.3178,1.9544 0.5292,2.5405 0.8368,0.5789 -0.1678,1.6073 -0.2737,2.3304 -0.0791,0.5407 0.4422,1.4213 0.6478,1.9283 0.1181,0.5889 0.847,1.0918 0.8121,1.6723 -0.0242,0.4017 -0.8779,0.9319 -1.1679,1.2063 -1.1278,1.0669 -1.1195,1.9558 -1.6971,3.2534 -0.2333,0.524 -0.9889,1.4597 -1.5877,1.5536l-1.323 0.5118 0 0z\",\"name\": \"As-Sulaymaniyyah\"},\"3\": {\"path\": \"M98.4807 57.36l-2.9559 1.0693 2.5183 6.1594c0.5629,0.3712 1.97,0.6815 2.6457,0.8134 1.3177,0.2574 2.4226,1.0733 3.6315,1.6084 1.2722,0.5632 1.6817,1.3643 2.6095,2.2938 0.6821,0.6357 1.1333,1.6724 2.2081,1.6724 0.2645,0 0.9659,-0.1084 1.1223,0.0822 0.971,1.1839 2.6094,1.9096 3.6041,3.0706 0.5995,0.6996 0.6633,0.3511 1.0857,-0.4204 0.4688,-0.856 0.6123,-2.1303 1.1406,-2.8512 0.3185,-0.2095 0.7264,-1.2365 0.8942,-1.6084 0.3772,-0.8361 0.8828,-1.4374 0.9763,-2.3761 0.0566,-0.569 -0.151,-1.5042 0.7025,-1.6449l0 0 1.323 -0.5118c0.5988,-0.0939 1.3544,-1.0296 1.5877,-1.5536 0.5776,-1.2976 0.5693,-2.1865 1.6971,-3.2534 0.29,-0.2744 1.1437,-0.8046 1.1679,-1.2063 0.0349,-0.5805 -0.694,-1.0834 -0.8121,-1.6723 -0.2056,-0.507 -0.7269,-1.3876 -0.6478,-1.9283 0.1059,-0.7231 1.1105,-1.7515 0.2737,-2.3304 -0.847,-0.5861 -0.5292,-1.6571 -0.5292,-2.5405l-0.2646 -1.0693 0 0 -0.5931 -0.1827c-0.5802,-0.0366 -0.7761,-0.1021 -1.2135,-0.4295 -0.2482,-0.1859 -1.165,0.5556 -1.3321,0.7676 -0.1952,0.2478 -0.4652,0.1994 -0.6935,0.0274 -0.3801,-0.2866 -0.7414,-0.1 -1.1405,0.0274 -0.4111,0.1311 -1.1616,0.745 -1.5511,0.6306 -0.4876,-0.1433 -0.2854,0.0573 -0.6479,0.1828 -0.1714,0.0594 -0.7391,-0.2309 -0.8941,-0.3199 -0.4519,-0.2594 -1.0061,-0.0874 -1.5055,-0.1188 -0.4306,0 -1.2071,-0.0681 -1.5785,0.1645 -0.3052,0.1912 -0.6936,0.9014 -0.9125,0.9687 -0.2416,0.0744 -1.5394,-1.0043 -1.7883,-1.1606 -2.2637,-1.4211 -3.2193,2.0587 -3.5311,3.5458 -0.1849,0.8519 -0.3207,1.8333 -0.6843,2.6228 -0.1991,0.4321 -0.1548,1.6922 -0.5019,1.8186 -0.3144,0.1146 -0.6452,-0.1109 -0.8668,-0.3198 -0.5607,-0.5288 -0.3863,-0.552 -1.1953,-0.4204 -0.424,0.069 -0.2483,1.5297 -0.3558,1.9648 -0.2983,0 -0.8636,-1.4348 -1.0949,-1.4348 -0.0533,0.217 -0.3285,0.2712 -0.3285,0.6489 0,0.2307 0.0368,0.454 -0.2555,0.2284l-1.3139 -1.0144 0 0z\",\"name\": \"Kirkuk\"},\"4\": {\"path\": \"M110.769 17.3229l0.2482 0.8322c-0.0439,0.3169 0.5918,1.2374 0.3741,1.4348 -0.2189,0.1986 0.146,0.8703 0.146,1.1789l-0.0183 0.0091c-0.0163,0.0495 -0.4073,-0.084 -0.5657,0 -0.3536,0.1874 -0.508,0.6237 -0.7299,0.9687 -0.4494,0.699 -1.2827,1.0751 -1.8705,1.6358l-1.5329 1.4622 0 0 -0.6204 -0.1553c-0.4888,-0.0924 -1.0703,-0.0335 -1.5603,0.0274 -0.571,0.0709 -1.2403,0.3107 -1.7975,0.3107 -0.3225,0 -0.4052,0.013 -0.4744,0.3838 -0.0833,0.4459 -0.1469,0.4491 0.2646,0.5757 0.3036,0.0935 0.6286,0.2745 0.7664,0.5666 0.281,0.5952 0.1722,1.4393 -0.4106,1.8095 -0.7092,0.2364 -1.0382,0.4674 -1.8248,0.5483 -0.6729,0.0691 -1.0284,-0.1572 -1.5603,-0.5026 -0.7466,-0.4847 -1.957,-1.7977 -2.8832,-1.7089 -1.0578,0.1015 -1.1298,0.879 -1.8432,1.2977 -0.1709,0.8567 -0.9048,1.5747 -1.5602,2.111 -0.6086,0.4979 -1.2585,0.6762 -1.98,0.9504 -0.46,0.1747 -1.0898,0.3732 -1.5785,0.2102 -0.5986,-0.3426 -0.8011,0.9246 -1.2226,-0.0822 -0.2864,-0.684 -1.2004,0.3133 -1.0311,-0.5392 0.1414,-0.7123 -0.2662,-0.2259 -0.593,-0.6397 -0.595,-0.7536 -0.5413,-0.953 -1.3961,-0.4478 -0.8437,0.4985 -1.1166,-0.376 -1.5693,-0.923 -0.2839,-0.3432 -1.0109,-0.1836 -0.8303,-0.6123 0.1134,-0.3416 -0.1574,-0.2774 -0.2555,-0.4844 -0.0998,-0.2108 0.1814,-0.3577 0.1551,-0.5757 -0.0156,-0.1299 -0.173,-0.164 -0.2281,-0.265 -0.0747,-0.1371 0.0342,-0.4459 0.1004,-0.5666 0.2112,-0.3854 -0.3329,-0.1451 -0.4836,-0.1371 -0.2832,0.0152 -0.7457,-0.4402 -0.9216,-0.6397 -0.3271,-0.3707 -0.5153,-0.8171 -0.6478,-1.2886l-0.0932 -0.9408 0 0 -0.0963 -0.6981 -0.1021 -0.5178 0 0 0.8382 -0.0083c0.422,-0.0765 0.5797,-0.4048 0.9954,-0.4578 0.3477,-0.0444 0.6277,-0.0091 0.9854,-0.1005 0.2501,-0.0638 0.9939,-0.0799 1.0767,-0.3107 0.1051,-0.2926 0.2931,-0.5407 0.5201,-0.7677 0.1035,-0.1035 0.2812,-0.2822 0.2463,-0.4295 -0.049,-0.2072 0.4454,-0.4296 0.584,-0.6306 0.1378,-0.2 0.0456,-0.4663 0.0456,-0.7036 0.0727,-0.0183 0.4512,0.0026 0.4653,-0.0549 0.0183,-0.0045 0.1206,-0.385 0.1551,-0.4295 -0.0858,-0.7758 0.0759,-0.0755 0.5384,-0.5026 0.0574,-0.0531 0.2824,-0.1556 0.3011,-0.2102 0.0182,-0.0529 -0.0619,-0.336 0,-0.3564 0.069,-0.2809 0.8244,-0.5594 0.885,-0.8682l0.0092 -0.0091c0.1611,0 0.3677,0.1188 0.5657,0.1188 0.0112,0.0224 0.0377,0.0314 0.0638,0.0365l0.0092 0.0092c0.2046,0.8278 0.1759,0.2437 0.6387,0.53 0.3299,0.2042 1.5249,0.9159 1.8887,0.7402 0.0813,-0.0393 0.0535,-0.2283 0.219,-0.2833 0.5603,-0.1861 0.6743,0.007 0.8941,-0.6671 0.2809,0 0.3775,0.1209 0.5657,-0.0914 0.2348,-0.2651 0.6341,-0.1326 0.9307,-0.265 0.2579,-0.0285 1.4776,0.2516 1.5603,0.4387 0.1175,0.266 0.5909,-0.0661 0.7208,0.1462 0.12,0.1963 0.1809,0.2974 0.4197,0.3564 0.0801,0.3239 0.5324,0.7808 0.8942,0.5392 0.3463,-0.2311 0.2458,-0.5761 0.9124,-0.4113 0.1173,0.5974 1.2145,1.0254 1.7519,1.2795 0.4255,0.2013 0.3337,0.5273 0.9033,0.5026 0.2148,-0.0093 0.954,-0.564 1.0219,-0.0823 0.1649,0.0829 0.2412,0.1789 0.438,0.2376l0.2281 -0.0182c0.2151,0.5047 0.0633,0.5386 0.6843,0.3655 0.2245,-0.0626 0.6383,-0.351 0.8485,-0.3107 0.5086,0.0975 1.3296,-0.0349 1.7702,0.1462 0.2321,0.0954 0.2517,0.58 0.5109,0.6946 0.3138,0.1386 0.3275,-0.1914 0.4562,-0.4204 0.1997,-0.3555 0.7419,0.1081 1.1041,-0.1097 0.3641,-0.2191 0.4182,-0.5988 0.7299,-0.8225 0,-0.2265 0.1036,-0.4707 0.0821,-0.7768 -0.0061,-0.0879 0.477,-0.076 0.6205,-0.2101 0.2697,-0.2518 0.4677,-0.7002 0.885,-0.5392 0.0886,0.0342 0.1759,0.0769 0.2628,0.1182l0 0z\",\"name\": \"Duhok\"},\"5\": {\"path\": \"M110.769 17.3229l0.2482 0.8322c-0.0439,0.3169 0.5918,1.2374 0.3741,1.4348 -0.2189,0.1986 0.146,0.8703 0.146,1.1789l-0.0183 0.0091c-0.0163,0.0495 -0.4073,-0.084 -0.5657,0 -0.3536,0.1874 -0.508,0.6237 -0.7299,0.9687 -0.4494,0.699 -1.2827,1.0751 -1.8705,1.6358l-1.5329 1.4622 0 0 1.688 0.6671c0.4293,0.1695 0.8173,0.5258 1.2774,0.7403 0.4178,0.1949 0.0949,0.8416 0.4471,0.9047 0.3606,0.0647 0.2925,0.2765 0.3376,0.6032 0.0805,0.5832 0.3793,0.1181 0.6661,0.201 0.2934,0.0849 0.4676,0.3269 0.7299,0.4661 0.2829,0.15 0.6586,-0.0119 0.9398,0.1005 0.3232,0.1291 0.9194,0.37 1.1405,0.6397 0.197,0.2401 0.2567,0.5681 0.3376,0.859 0.0718,0.2578 0.9431,0.4487 0.657,0.8865 -0.34,0.5205 -0.9183,0.7987 -1.2592,1.3525 -0.117,0.3642 -1.2105,1.2612 -1.5785,1.2612 -0.1812,0 -0.2714,-0.1935 -0.52,-0.1554 -0.3488,0.0534 -0.6528,0.3347 -0.949,0.064 -0.6049,-0.5531 -0.7431,-0.1854 -1.2226,0.3564 -0.1834,0.2071 -0.5019,0.4474 -0.6205,0.6854 -0.2246,0.4505 0.039,0.292 -0.4379,0.4661 -0.408,0.0697 -0.1012,0.594 -0.6661,0.594 -1.2974,0 -0.0839,0.9905 -0.9216,1.2702 -0.1485,0.0495 -0.5093,-0.1135 -0.447,0.1463 0.1874,0.7803 -0.9089,2.0426 -1.3869,2.5679 -0.745,0.8189 -1.9003,1.1634 -2.5457,2.1019 -0.1388,0.4062 -0.2177,0.9023 -0.7026,0.987 -0.631,0.1103 -0.8484,3.2448 -2.2719,3.7012 -0.98,0.3143 -0.6542,0.6004 -0.3924,1.4896 0.182,0.618 -0.5168,1.3684 -0.7573,1.91 0.0116,0.2929 -0.2638,0.5994 -0.3741,0.8773 -0.3282,0.8262 -0.1643,1.5777 -0.1643,2.4675l0 0c0.0481,0.6366 0.0298,0.9099 -0.2098,1.5169 -0.1298,0.3291 -0.2778,0.6375 -0.3649,0.9779 -0.0307,0.1198 -0.2079,0.4587 -0.1095,0.5574 0.2255,0.2265 0.7802,0.2831 1.0858,0.4296 0.341,0.1634 0.2554,0.4876 0.2554,0.8224l0 0 1.3139 1.0144c0.2923,0.2256 0.2555,0.0023 0.2555,-0.2284 0,-0.3777 0.2752,-0.4319 0.3285,-0.6489 0.2313,0 0.7966,1.4348 1.0949,1.4348 0.1075,-0.4351 -0.0682,-1.8958 0.3558,-1.9648 0.809,-0.1316 0.6346,-0.1084 1.1953,0.4204 0.2216,0.2089 0.5524,0.4344 0.8668,0.3198 0.3471,-0.1264 0.3028,-1.3865 0.5019,-1.8186 0.3636,-0.7895 0.4994,-1.7709 0.6843,-2.6228 0.3118,-1.4871 1.2674,-4.9669 3.5311,-3.5458 0.2489,0.1563 1.5467,1.235 1.7883,1.1606 0.2189,-0.0673 0.6073,-0.7775 0.9125,-0.9687 0.3714,-0.2326 1.1479,-0.1645 1.5785,-0.1645 0.4994,0.0314 1.0536,-0.1406 1.5055,0.1188 0.155,0.089 0.7227,0.3793 0.8941,0.3199 0.3625,-0.1255 0.1603,-0.3261 0.6479,-0.1828 0.3895,0.1144 1.14,-0.4995 1.5511,-0.6306 0.3991,-0.1274 0.7604,-0.314 1.1405,-0.0274 0.2283,0.172 0.4983,0.2204 0.6935,-0.0274 0.1671,-0.212 1.0839,-0.9535 1.3321,-0.7676 0.4374,0.3274 0.6333,0.3929 1.2135,0.4295l0.5931 0.1827 0 0c0.501,-0.2832 0.8886,-0.3035 1.2409,0.1828 0.3475,0.4799 0.3947,-0.3381 0.6935,-0.3381 0.1891,0 0.2051,0.5147 0.5474,0.4295 0.3326,-0.0827 0.0656,-0.4805 0.3467,-0.594 0.1503,-0.0607 0.355,0.1785 0.5201,0.2102 0.4345,0.0833 -0.1336,-0.6782 -0.2189,-0.8042 -0.1548,-0.2289 -0.5761,-0.4798 -0.8121,-0.6306 -0.5278,-0.3375 -0.8909,-0.6273 -1.3048,-1.124l-1.5237 -1.8278c-0.2587,-0.3922 -1.6887,-1.1708 -1.7336,-1.3525 -0.0779,-0.0191 -0.0183,-0.3286 -0.0183,-0.4021 0,-0.3934 -0.0365,-0.9082 0.0365,-1.2886 0.0418,-0.2182 1.4968,-0.2628 1.8066,-0.2741 0.6213,-0.0226 0.4653,0.0693 0.4653,-0.5027 0,-0.5142 0.0367,-0.4587 -0.4014,-0.4752 -0.6928,-0.0262 -0.5878,-0.8569 -0.9581,-0.9595 -0.1843,-0.0511 -0.7896,0.1854 -1.0949,0.0822l-0.0365 -2.8512c0.8771,-0.0757 0.9598,-0.358 1.4143,-1.0419 0.2253,-0.3389 0.8021,-0.8298 1.2409,-0.7219 0.5286,0.1301 1.1737,1.7195 1.9526,0.859 0.9834,-1.0865 1.8012,-0.5593 2.9628,-0.9953l0 0c-0.0396,-0.1002 -0.0329,-0.2032 0.0482,-0.3024 0.1432,-0.1751 0.4521,-0.0783 0.5931,-0.2193 0.1372,-0.1372 -0.1262,-0.5451 -0.1916,-0.6763 -0.2292,-0.4559 0.6843,-0.319 0.6843,-0.6397 0,-0.3181 0.0035,-0.7726 -0.0456,-1.0783 -0.1303,-0.8111 -0.3804,-1.9476 -1.4417,-1.709 -0.6301,0.1417 -0.1259,-1.26 -1.0037,-0.6854 -0.4095,0.2681 -0.5324,-0.1702 -0.8394,-0.0914 -0.6133,0.1576 -0.4731,0.0726 -0.6022,-0.4569 -0.1422,-0.5828 0.4614,-0.6236 0.4106,-0.8225 -0.1213,-0.4753 0.6414,-0.3213 0.7299,-0.795 0.0248,-0.4194 0.1016,-0.848 -0.0729,-1.2429 -0.1273,-0.2879 -0.3285,-0.3656 -0.3285,-0.722 0,-0.3104 0.4315,-1.1662 0.1551,-1.4439 -0.245,-0.246 -0.7005,0.0209 -0.8394,-0.466 -0.0257,-0.0043 -0.0163,-0.0072 -0.0365,-0.0275 -0.3345,0.084 -0.6365,0.4828 -0.8121,-0.0913 -0.0635,-0.2079 -0.3832,-0.5894 -0.3832,-0.6946 0,-0.2931 -0.1378,-0.3181 -0.1643,-0.5026 -0.0908,-0.0519 -0.2535,-0.2373 -0.2918,-0.329l0.5291 -0.53 0 0c-0.1674,-0.1221 -0.2615,-0.2387 -0.438,-0.329 -0.1665,-0.0853 -0.4532,-0.0211 -0.5839,-0.1645 -0.3663,-0.4016 -1.1536,0.1685 -1.3139,-0.2468 -0.1129,-0.2924 -0.6849,0.0247 -0.8395,0.1188 -0.0961,0.0586 -0.238,0.3386 -0.3193,0.3564 -0.1004,0.0219 -0.2496,-0.0008 -0.3559,0.0092 -0.1413,0.1939 -0.2172,0.7777 -0.4197,0.8407 -0.3808,0.1186 -0.2677,0.0064 -0.4288,0.3382 -0.0708,0.1457 -0.3135,0.2443 -0.4562,0.3198 -0.1932,0.1021 -1.8217,1.187 -1.9344,0.7311 -0.0652,0 -0.5495,0.289 -0.5931,0.3381 -0.032,0.0362 0.1886,0.3856 0.1552,0.5209 -0.3206,0.046 -0.7221,1.0255 -0.8121,1.2977 -0.1943,0 -0.4783,-0.3254 -0.7664,-0.3472 -0.4748,-0.0359 -0.3421,-0.236 -0.3924,-0.594 -0.0351,-0.2494 -0.1159,-0.2778 -0.2555,-0.4753 -0.2001,-0.2829 -0.0869,-0.4079 -0.1825,-0.7128 -0.657,-0.376 -0.3879,-0.4214 -0.593,-0.9595 -0.1464,-0.3844 0.2997,-0.6526 0.4836,-0.9687 0.0307,-0.0529 0.0712,-0.2783 0.1277,-0.2925 0.0212,-0.0859 0.9763,0.1431 0.9763,-0.3381 0,-0.4598 -0.2737,-0.6126 -0.2737,-0.9778 0,-0.1511 0.1148,-0.6805 0.073,-0.6946l0 -0.0183c-0.2541,-0.0357 -0.507,-0.3651 -0.5566,-0.6031 -0.0751,-0.3609 -0.4321,-0.1229 -0.6843,-0.2285 -0.179,-0.075 -0.1741,-0.2582 -0.438,-0.3198 -0.3883,-0.0908 -0.4823,-0.1662 -0.7208,-0.4661 -0.1233,-0.1549 -0.3719,0.0285 -0.5657,0.0457 -0.2851,0.1628 -0.5438,0.0503 -0.8048,-0.0737l0 0z\",\"name\": \"Arbil\"},\"6\": {\"path\": \"M80.7412 23.127l0.0932 0.9408c0.1325,0.4715 0.3207,0.9179 0.6478,1.2886 0.1759,0.1995 0.6384,0.6549 0.9216,0.6397 0.1507,-0.008 0.6948,-0.2483 0.4836,0.1371 -0.0662,0.1207 -0.1751,0.4295 -0.1004,0.5666 0.0551,0.101 0.2125,0.1351 0.2281,0.265 0.0263,0.218 -0.2549,0.3649 -0.1551,0.5757 0.0981,0.207 0.3689,0.1428 0.2555,0.4844 -0.1806,0.4287 0.5464,0.2691 0.8303,0.6123 0.4527,0.547 0.7256,1.4215 1.5693,0.923 0.8548,-0.5052 0.8011,-0.3058 1.3961,0.4478 0.3268,0.4138 0.7344,-0.0726 0.593,0.6397 -0.1693,0.8525 0.7447,-0.1448 1.0311,0.5392 0.4215,1.0068 0.624,-0.2604 1.2226,0.0822 0.4887,0.163 1.1185,-0.0355 1.5785,-0.2102 0.7215,-0.2742 1.3714,-0.4525 1.98,-0.9504 0.6554,-0.5363 1.3893,-1.2543 1.5602,-2.111 0.7134,-0.4187 0.7854,-1.1962 1.8432,-1.2977 0.9262,-0.0888 2.1366,1.2242 2.8832,1.7089 0.5319,0.3454 0.8874,0.5717 1.5603,0.5026 0.7866,-0.0809 1.1156,-0.3119 1.8248,-0.5483 0.5828,-0.3702 0.6916,-1.2143 0.4106,-1.8095 -0.1378,-0.2921 -0.4628,-0.4731 -0.7664,-0.5666 -0.4115,-0.1266 -0.3479,-0.1298 -0.2646,-0.5757 0.0692,-0.3708 0.1519,-0.3838 0.4744,-0.3838 0.5572,0 1.2265,-0.2398 1.7975,-0.3107 0.49,-0.0609 1.0715,-0.1198 1.5603,-0.0274l0.6204 0.1553 0 0 1.688 0.6671c0.4293,0.1695 0.8173,0.5258 1.2774,0.7403 0.4178,0.1949 0.0949,0.8416 0.4471,0.9047 0.3606,0.0647 0.2925,0.2765 0.3376,0.6032 0.0805,0.5832 0.3793,0.1181 0.6661,0.201 0.2934,0.0849 0.4676,0.3269 0.7299,0.4661 0.2829,0.15 0.6586,-0.0119 0.9398,0.1005 0.3232,0.1291 0.9194,0.37 1.1405,0.6397 0.197,0.2401 0.2567,0.5681 0.3376,0.859 0.0718,0.2578 0.9431,0.4487 0.657,0.8865 -0.34,0.5205 -0.9183,0.7987 -1.2592,1.3525 -0.117,0.3642 -1.2105,1.2612 -1.5785,1.2612 -0.1812,0 -0.2714,-0.1935 -0.52,-0.1554 -0.3488,0.0534 -0.6528,0.3347 -0.949,0.064 -0.6049,-0.5531 -0.7431,-0.1854 -1.2226,0.3564 -0.1834,0.2071 -0.5019,0.4474 -0.6205,0.6854 -0.2246,0.4505 0.039,0.292 -0.4379,0.4661 -0.408,0.0697 -0.1012,0.594 -0.6661,0.594 -1.2974,0 -0.0839,0.9905 -0.9216,1.2702 -0.1485,0.0495 -0.5093,-0.1135 -0.447,0.1463 0.1874,0.7803 -0.9089,2.0426 -1.3869,2.5679 -0.745,0.8189 -1.9003,1.1634 -2.5457,2.1019 -0.1388,0.4062 -0.2177,0.9023 -0.7026,0.987 -0.631,0.1103 -0.8484,3.2448 -2.2719,3.7012 -0.98,0.3143 -0.6542,0.6004 -0.3924,1.4896 0.182,0.618 -0.5168,1.3684 -0.7573,1.91 0.0116,0.2929 -0.2638,0.5994 -0.3741,0.8773 -0.3282,0.8262 -0.1643,1.5777 -0.1643,2.4675l0 0 -0.6569 0.0822c-0.4613,0.2079 -0.9832,0.2828 -1.4416,0.5117 -0.5643,0.2817 -1.1579,0.5823 -1.7519,0.7768 -0.7145,0.239 -1.5929,0.0111 -2.2354,0.265 -0.5689,0.2247 -1.0852,0.774 -1.5238,1.1972 -0.9349,0.9019 -1.9343,1.6435 -1.9343,3.0341 0,0.7141 0.3822,1.734 0.2558,2.376l3.23 5.0628 -10.3833 0.3473 0 3.6555 0 0 -8.8875 0.1005 -3.8322 -1.2154c-0.489,-0.1966 -1.9201,-0.5846 -2.2263,-1.0144 -0.8084,-0.2015 -1.7486,0.0048 -2.6004,-0.1005 -0.0507,-0.0405 -0.1489,-0.0666 -0.1734,-0.128 -0.3988,-0.2498 -0.7649,-0.8062 -1.1679,-1.1149 -0.4167,-0.3193 -1.0228,-0.5255 -1.5055,-0.722l-0.8248 -0.3194 0 0 -0.0232 -0.6401 0.1095 -2.4492 0.8212 -2.3943 0.0364 -2.4858 2.0986 -2.9061 -0.292 -4.88 -1.989 -4.7887 0.4744 -6.3605 2.1533 -3.8017 7.5366 -1.4074 9.6511 -10.6095 0 0z\",\"name\": \"Ninawa\"},\"7\": {\"path\": \"M119.704 109.423c-0.1021,0.0465 -0.1288,0.0457 -0.2281,0.0457 -0.1046,0.3208 -0.062,0.7747 -0.0821,1.1515 -0.0354,0.6605 -0.3288,0.5849 -0.876,0.5849 -0.0456,0.1379 -0.0023,0.5309 -0.0091,0.7128 -0.0346,0.9124 0.0278,0.453 0.657,0.7676 0.3562,0.178 0.3523,0.5763 0.6752,0.7951 0.6084,0.4125 0.9191,0.6173 1.5237,0.0822 0.1681,-0.1487 0.7055,-0.2651 0.9124,-0.137 0.2907,0.1798 0.2545,0.5651 0.4745,0.7585 0.1997,0.6364 1.0663,1.2836 1.6789,1.4713 0.5308,0.1627 1.0409,0.1529 1.5602,0.2742 0.273,0.0638 1.0139,1.4819 1.3595,1.782 0.2739,0.2379 0.4954,0.4626 0.8486,0.5849 0.1887,0.0654 0.6054,0.1868 0.7391,0.3198l0 0.064c-0.3609,0.2868 -0.4928,0.5657 -0.4928,1.051 0,1.0645 0.6811,0.6397 1.3869,0.6397 0.1406,0.2323 -0.0397,0.6885 -0.2098,0.859 -0.3213,0.3218 -1.3593,0.9094 -1.1132,1.4713 0.1421,0.3247 0.6073,0.1645 0.8851,0.1645 0.3543,0 0.5188,0.1525 0.666,0.4478l0.0365 0.4844 0 0c1.1687,0.3745 2.3277,0.3633 3.3669,1.1058 0.3779,0.2699 0.3773,0.5811 0.5931,0.9321 0.2127,0.3457 0.8032,0.549 1.1314,0.7951 0.6109,0.5526 0.9423,0.6958 1.2318,1.4987 0.1461,0.4051 0.0945,0.7384 0.4014,1.0875 0.5505,0.6259 1.063,0.9521 1.7336,1.4256 0.7132,0.5035 0.6399,1.1955 0.8486,1.9283l0.6569 1.0692 0 0 0.5201 -0.2559c0.0619,-0.0774 0.1765,-0.1113 0.2646,-0.1553 0.0325,-0.0029 0.0352,-0.0039 0.0639,-0.0183l6.7246 -0.064 3.8687 -0.1553 0 0c0.1463,-0.4036 0.7646,-0.4297 0.8485,-0.8682 0.0749,-0.3911 -0.5313,-0.7362 -0.6478,-1.0418 -0.0658,-0.1724 -0.1586,-0.691 0.0183,-0.8133 0.1308,-0.0905 0.3675,-0.1065 0.5201,-0.1828l1.9708 -0.8408c0.4949,-0.2111 0.3723,-0.5439 0.3011,-1.0509 -0.0178,-0.0071 -0.0203,-0.0096 -0.0274,-0.0274 -0.3888,-0.0562 -1.1135,-0.681 -1.1679,-1.0693 -0.1092,-0.7799 -0.3217,-1.0664 -0.8029,-1.6723 -0.7535,-0.9489 0.7915,-2.0716 0.9124,-3.1346 0,-0.3565 0.6205,0.1243 0.6205,-0.6946 0,-0.4907 -0.1271,-0.8222 -0.0274,-1.3433 0.216,-1.1293 0.1839,-2.4035 0.7391,-3.4545 0.1635,-0.3097 0.5807,-1.1587 0.4562,-1.4804 -0.2924,-0.7566 -0.403,-0.4984 0.146,-1.1678l0 0c-0.3264,-0.314 -0.6847,-0.5884 -1.1315,-0.6691 -0.4802,-0.0868 -0.7129,-0.4341 -1.1314,-0.6214 -0.9036,-0.4044 -2.0705,-1.0104 -3.1205,-0.8042 -0.6963,0.1368 -1.3732,0.4723 -2.0803,0.1827 -0.23,-0.0941 -0.6047,-0.4935 -0.8212,-0.4935 0,-0.1379 -0.0559,-0.7128 0.1186,-0.7128 0.4778,0 0.463,-0.2122 0.6205,-0.6123 0.1089,-0.0817 0.2134,-0.1753 0.3376,-0.2376 0.0086,-0.0697 0.0821,-0.1075 0.0821,-0.201l-0.0091 -0.0092c-0.3323,0 -0.7613,0.0913 -0.9672,-0.2193 -0.2276,-0.3435 -1.3132,-0.266 -1.2318,-0.4661 0.4408,-1.0822 1.2405,-0.0437 1.9526,-0.6488 0.2139,-0.1817 1.2912,-1.4193 1.0037,-1.5079 -0.4365,-0.1344 -0.4941,0.1461 -0.3559,-0.4204 0.0267,-0.1094 0.2732,-0.7864 0.1643,-0.8224 -0.019,-0.0776 -0.8664,-0.5773 -0.9946,-0.658 -0.5305,-0.3343 -0.2303,-0.5299 -0.4653,-0.9139 -0.1153,-0.1886 -0.4644,-0.2125 -0.5748,-0.4569 -0.1734,-0.3841 0.0509,-0.5879 -0.2555,-0.987 -0.253,-0.5571 -0.4439,-0.3979 -0.3924,-1.0784 0.0148,-0.1961 -0.2506,-0.6457 -0.447,-0.6945l0 0 -0.4106 0.3564c0.0289,0.4645 -1.0202,0.6901 -1.3504,0.7676 -1.4279,0.3353 -0.7203,1.2438 -1.5602,2.0837 -0.6136,0.6136 -1.0921,-0.2861 -1.6241,0.9595 -0.4373,1.0237 -0.7904,2.2674 -1.5967,3.0341 -1.3222,1.2571 -1.1361,0.3565 -2.5001,-0.1463 -0.7856,-0.1773 -1.3246,-0.4686 -2.2263,-0.4934 -0.6142,-0.0169 -1.3021,0.0202 -1.8795,-0.2194 -0.6727,-0.279 -1.7349,-0.9655 -2.2628,-1.4713 -0.7444,-0.7131 -1.7039,-0.5706 -2.6004,-0.7951 -0.5243,0.1016 -1.5382,0.1871 -1.9435,0.5118 -0.5902,0.4727 -0.7994,1.9265 -1.2043,2.6228 -0.4553,0.7832 -1.1455,1.4693 -1.8705,2.0014 -0.1599,0.3085 -0.5845,0.5664 -0.9036,0.6671 -0.974,0.3077 -0.4692,-0.8039 -0.7847,-1.2703 -0.2013,-0.2974 -0.4228,-0.189 -0.6296,0.0183 -0.2493,0.2501 -0.4736,-0.1176 -0.6113,-0.3016l0 0z\",\"name\": \"Wasit\"},\"8\": {\"path\": \"M125.762 71.4976c0.4194,0.21 0.8462,0.4882 1.3322,0.3198 1.0067,-0.3487 0.9951,-1.352 1.7792,-0.0457 0.6421,1.0696 1.0296,-0.5466 1.4872,-0.0182l0.7756 0.8956c0.1519,0.1753 -0.0726,0.5719 -0.1277,0.7859 -0.1691,0.6557 0.6843,0.1998 0.6843,0.7676 0,0.5248 0.0119,0.8572 0.3467,1.2886 -0.0616,0.4954 0.0698,0.7447 0.1278,1.2063 0.1201,0.06 0.2926,0.3005 0.4379,0.0914 0.2616,-0.3767 0.6902,-0.9738 1.0493,-1.2612 0.3051,-0.2443 0.6831,0.0512 0.9033,-0.1462 0.3613,-0.3237 1.0164,-0.4532 1.25,-0.8407 0.0921,-0.1529 0.0347,-0.4728 0.0822,-0.658 0.0884,-0.3442 0.1795,-0.5717 0.3193,-0.9047 0.2786,-0.661 0.7421,-0.9607 0.8759,-1.6907 0.2094,-1.1429 1.3068,-1.5315 1.8523,-2.4857 0.288,-0.504 -0.6205,-0.247 -0.6205,-0.6946 0,-0.1245 0.4295,-0.405 0.5292,-0.53 0.1672,-0.2095 0.1612,-0.4405 0.3467,-0.6397 0.2326,-0.0976 0.4824,-0.4292 0.584,-0.658 0.1154,-0.2597 0.0078,-0.8485 0.3558,-0.8682 0.3243,-0.0184 0.6927,-0.3107 1.022,-0.3107 0.153,0.6189 -0.1773,1.4864 -0.1095,2.175 0.0818,0.8314 0.3526,2.4684 0.6387,3.2534l0 0c-0.1938,0 0.2259,0.9565 -0.1369,1.2337 -0.1414,0.1081 -0.4407,0.3258 -0.5931,0.3838 -0.4647,0.1771 -0.2157,-0.0194 -0.4197,-0.2924l-0.6934 0.6671c-0.1048,0.1008 0.2965,0.5639 0.0638,0.6397 0,0.1373 0.1278,0.1285 0.1278,0.2925 -0.5217,0.0643 -0.2958,0.339 -0.5019,0.6488 -0.3489,0.5241 -0.2937,0.4099 0.3011,0.7585 0.2656,0.2568 0.1187,0.2843 0.1187,0.5666 0,0.2436 0.1637,0.1715 0.2828,0.3382 0.0794,0.1113 0.2372,0.7535 0.2372,0.8864 0,0.3944 0.0394,0.3954 0.1734,0.7494 0.0852,0.2254 -0.0525,0.4214 -0.0091,0.6488 0.0132,0.0692 0.1741,0.3303 0.0821,0.393 -0.4616,0.3149 -0.532,-0.2644 -0.8394,-0.3381 -0.1235,-0.0296 -0.3043,0.0832 -0.4198,0.1279 -0.1811,0.0702 -0.2751,-0.1786 -0.5839,-0.064 -0.9151,0.3394 -1.1547,-0.091 -1.3413,-0.8499 -0.0653,0 -0.3227,-0.0136 -0.3376,-0.0731 -0.1355,0 -0.3596,0.6734 -0.4562,0.8316 -0.0731,0.1195 0.1901,0.3008 0.2099,0.4753 0.0376,0.3315 -0.0427,0.5459 -0.0639,0.8681 -0.1668,0.4498 -0.3473,0.6441 -0.8212,0.3839 -0.0189,-0.0104 -0.6442,0.3261 -0.7026,0.4021 -0.0337,0.0437 0.3103,0.6642 0.3103,0.8499 0,0.2642 -0.0666,0.5252 0.1095,0.7402 0.1524,0.1862 0.3969,0.9701 0.5748,0.9595 0.1335,-0.008 0.2252,-0.242 0.3832,-0.1279 0.2585,0.1869 0.3647,-0.176 0.6113,0.1279 0.739,0.9105 0.723,1.6495 0.146,2.7325 -0.0099,0.3941 0.1719,1.1562 0.5201,1.3891 0,0.1017 -0.7436,0.3911 -0.8942,0.4843 -0.2645,0.1635 -0.4601,0.3541 -0.6387,0.6123 -0.1759,0.2542 -0.2521,0.262 -0.4471,0.457 -0.1807,0.1807 0.024,0.2852 0.0365,0.4386 0.008,0.0978 -0.1743,0.9494 -0.2281,0.9961 -0.2128,0.1844 -0.4924,-0.0523 -0.5474,0.3108 -0.0777,0.5129 -0.6075,0.204 -0.1734,0.9138 0.1068,0.1746 1.2078,0.0457 1.4599,0.0457l0.0091 0.0092c0.1318,0.5334 0.0925,0.7088 0.6387,1.0509 0.0939,0.2736 0.3497,0.5153 0.4197,0.8133 0.1017,0.4331 0.2763,0.9195 0.6205,1.2246 0.1488,0.132 0.6993,0.4344 0.7482,0.5758 0.0611,0.177 -0.0365,0.4492 -0.0365,0.6488 0,0.9118 1.1062,1.727 1.7883,2.1842 0.3232,0.1273 0.5824,0.004 0.4745,0.4386 -0.0445,0.1796 -0.2646,0.5463 -0.2646,0.6671 0.2268,-0.1695 0.6749,-0.1341 0.8759,-0.3472 0.3687,-0.3911 0.9482,-0.4314 1.5055,-0.4752 0.0756,-0.0059 0.6723,-0.1522 0.5566,0.0913 -0.2694,0.5671 -0.084,0.5277 0.3194,0.9322 0.6285,0.6304 -0.03,0.9744 -0.5566,1.3982 -0.4361,0.3511 -1.0689,0.6231 -0.146,0.658 0.5348,0.0202 0.661,0.2991 1.0128,-0.1371 0.124,-0.1539 0.84,-0.3854 0.958,-0.201 0.1212,0.1892 -0.1599,0.3511 0.1552,0.4295l0 0 -0.4106 0.3564c0.0289,0.4645 -1.0202,0.6901 -1.3504,0.7676 -1.4279,0.3353 -0.7203,1.2438 -1.5602,2.0837 -0.6136,0.6136 -1.0921,-0.2861 -1.6241,0.9595 -0.4373,1.0237 -0.7904,2.2674 -1.5967,3.0341 -1.3222,1.2571 -1.1361,0.3565 -2.5001,-0.1463 -0.7856,-0.1773 -1.3246,-0.4686 -2.2263,-0.4934 -0.6142,-0.0169 -1.3021,0.0202 -1.8795,-0.2194 -0.6727,-0.279 -1.7349,-0.9655 -2.2628,-1.4713 -0.7444,-0.7131 -1.7039,-0.5706 -2.6004,-0.7951 -0.5243,0.1016 -1.5382,0.1871 -1.9435,0.5118 -0.5902,0.4727 -0.7994,1.9265 -1.2043,2.6228 -0.4553,0.7832 -1.1455,1.4693 -1.8705,2.0014 -0.1599,0.3085 -0.5845,0.5664 -0.9036,0.6671 -0.974,0.3077 -0.4692,-0.8039 -0.7847,-1.2703 -0.2013,-0.2974 -0.4228,-0.189 -0.6296,0.0183 -0.2493,0.2501 -0.4736,-0.1176 -0.6113,-0.3016l0 0 -0.1639 -0.7402c-0.0527,-0.2835 -0.1183,-0.5525 -0.2555,-0.8134 -0.1152,-0.2192 -0.5331,-0.319 -0.7573,-0.3929 -0.7697,-0.254 -0.1988,-0.9858 -0.4379,-1.4805l0 0 0.5474 0.0092c0.3982,0.069 1.1275,-0.0321 1.3778,-0.4021 0.295,-0.4359 0.0793,-0.6022 0.1003,-1.0876 0.012,-0.2763 0.0839,-0.5793 0.1186,-0.859 0.0498,-0.4019 0.0694,-0.8613 0,-1.2611 -0.1173,-0.676 -0.2635,-0.7852 -0.9124,-0.8225l-3.6496 -0.2102 0 0 -0.265 -0.393c-0.1769,-0.1987 -0.4196,-0.4331 -0.4745,-0.7036 -0.0543,-0.2671 -0.0794,-0.6702 0.1095,-0.8956 0.1463,-0.1747 0.2892,-0.3172 0.365,-0.5392 0.1346,-0.3676 0.0114,-0.8164 0.2281,-1.0784 0.27,-0.3263 0.7824,0.0574 1.0858,-0.2467 0.1516,-0.1518 0.3167,-2.2154 0.2098,-2.3761 -0.354,-0.5316 -0.7096,-0.8463 -0.3193,-1.5444 0.145,-0.2594 0.8456,-1.7168 1.031,-1.8095 0.015,-0.0608 0.0037,0.0617 0.0091,-0.1096 0.43,-0.9685 -0.4928,-1.0529 -0.958,-1.709 -0.6116,-0.8623 -0.8897,-0.5161 -1.8157,-0.7037 0,-0.5141 0.0019,-1.1988 0.3284,-1.6358 0.3064,-0.4099 0.3634,-1.3554 0.7117,-1.6358 0.3009,-0.2421 0.79,-0.2606 0.9763,-0.53 0.154,-0.2225 0.404,-0.4548 0.511,-0.6946 0.2996,-0.3002 0.9854,-0.4538 0.9854,-0.9321 0,-0.2835 0.0193,-0.8608 -0.0365,-1.1058 -0.0467,-0.2055 -0.3606,-0.0555 -0.2737,-0.4935 0.0811,-0.4083 0.1847,-0.5301 0.3102,-0.8865 0.1792,-0.5084 -0.248,-0.6946 0.0274,-1.1971 0.0553,-0.1008 -0.1292,-0.3466 -0.1095,-0.5209 0.0214,-0.1884 0.463,-0.3275 0.5201,-0.5575 0.0892,-0.3598 -0.437,-0.4873 -0.146,-0.8042 0.2714,-0.2954 -0.4261,-0.7011 0.0912,-0.8042 0.3688,-0.0734 1.0355,-0.0499 1.2592,0.2924 0.1593,0.2439 0.8801,1.0213 1.177,0.9413 0.3432,-0.0924 0.5911,-1.4103 0.7756,-1.7546 0.8228,-0.6695 0.5492,-1.0231 0.4653,-1.9465 -0.0705,-0.7766 0.6128,-0.9512 0.9854,-1.4805 0.3264,-0.4638 0.2862,-0.7066 0.4745,-1.1972 0.2221,-0.5783 0.5619,-0.4124 1.0584,-0.5666l0.7938 -0.2467 0 0z\",\"name\": \"Diyala\"},\"9\": {\"path\": \"M114.311 102.642l1.36 -1.2794 0 0 3.6496 0.2102c0.6489,0.0373 0.7951,0.1465 0.9124,0.8225 0.0694,0.3998 0.0498,0.8592 0,1.2611 -0.0347,0.2797 -0.1066,0.5827 -0.1186,0.859 -0.021,0.4854 0.1947,0.6517 -0.1003,1.0876 -0.2503,0.37 -0.9796,0.4711 -1.3778,0.4021l-0.5474 -0.0092 0 0c-0.9394,0 -1.6685,0.2674 -2.4544,0.7859 -0.8912,0.5878 -1.7469,0.2366 -2.5913,-0.1553 -0.4529,-0.2101 -1.0879,-0.3972 -1.4781,-0.6946l2.7459 -3.2899z\",\"name\": \"Baghdad\"},\"10\": {\"path\": \"M120.197 129.62l-1.7154 1.3708 -0.0182 2.3212c0.2746,0.5073 0.5778,1.3094 0.9672,1.6998 0.5555,0.5571 -1.169,1.0384 -1.0493,1.6633 0.0896,0.4683 0.2977,0.7427 0.1186,1.252 -0.0941,0.2675 -0.2704,0.4119 -0.3741,0.6488 -0.104,0.2377 0.085,0.6387 0.1642,0.8773 0.0758,0.5948 0.7654,1.8889 -0.3011,1.7638 -0.3615,-0.0424 -0.8869,0.4643 -0.6752,0.7677l0.9307 1.3342c0.3664,0.5251 0.4526,1.4549 1.1132,1.5993l3.4672 0.7585 0.7938 0.2467 0 0c-0.5083,0.4581 -1.1559,2.0604 -1.3504,2.7234 -0.2833,0.9653 -0.8244,1.9461 -1.5602,2.641 -0.5736,0.5416 -0.5167,1.5622 -0.9125,2.1568 -0.1591,1.0684 -0.2911,2.4585 -1.0675,3.2807 -0.7532,0.7978 -1.1497,1.9279 -1.9343,2.7142 -0.4859,0.4868 -1.1121,1.4077 -1.6789,1.7364 -1.5533,1.4576 -2.2474,3.7499 -3.0293,5.6568 -0.1477,0.3602 -0.3721,1.4362 -0.6295,1.6633 -0.119,0.9057 -0.68,1.8693 -0.8669,2.7873 -0.1418,0.697 -0.6659,1.6353 -1.1679,2.1384 -0.3262,0.3268 -0.4973,0.7629 -0.812,1.0967 -0.4483,0.4753 -0.6892,1.2186 -1.1314,1.7089l-0.5267 1.0497 0 0 -16.4446 -13.825 0 0 0.0552 -7.6588c0.03,-1.2041 0.803,-3.4239 1.7424,-4.2221 0.4244,-0.3605 0.7751,-0.8011 1.2227,-1.1514 0.4613,-0.3612 0.2431,-1.6802 0.3376,-2.2116 0.1101,-0.6266 0.0471,-1.0951 0.2919,-1.7089 0.3055,-0.7656 1.4143,-1.5634 1.4143,-2.3761 0,-1.201 -0.0783,-2.3028 0.7482,-3.2808 0.481,-0.271 1.0487,-1.5784 1.4142,-2.0653 0.6345,-0.845 1.2589,-2.026 2.0074,-2.7416 1.0954,-1.0474 2.1026,-1.1738 3.5037,-1.709 0.172,-0.0638 0.4123,-0.2855 0.5383,-0.4203 0.2464,-0.2638 0.5768,-0.4809 0.8486,-0.722 0.1316,-0.1166 0.2489,-0.2489 0.3832,-0.3564 0.1934,-0.155 0.4,-0.2356 0.6113,-0.3564l0.8851 -0.9779 -1.7701 -1.8825 0 0 9.1612 -3.8109 0 0 0.8481 3.6921 1.1405 -0.064 1.5147 -1.8186 2.792 2.0105 0 0z\",\"name\": \"An-Najaf\"},\"11\": {\"path\": \"M120.197 129.62c0.3288,0.3294 1.8679,0.7805 2.3358,0.8134 0.5129,0.036 1.2796,0.1303 1.7701,0.0091l0.0092 -1.3982c0.0023,-0.3457 -0.1664,-0.5412 -0.2008,-0.786 -0.0596,-0.4231 1.0691,-0.5391 1.3869,-0.5391 0.8068,0 1.0724,-0.7293 1.5511,-1.3069 0.2745,-0.296 0.5498,-0.1888 0.8577,-0.4021 0.1747,-0.1211 0.2991,-0.4605 0.4197,-0.6488 0.4098,-0.64 1.2179,-1.055 1.7701,-1.5627l0 0c1.1687,0.3745 2.3277,0.3633 3.3669,1.1058 0.3779,0.2699 0.3773,0.5811 0.5931,0.9321 0.2127,0.3457 0.8032,0.549 1.1314,0.7951 0.6109,0.5526 0.9423,0.6958 1.2318,1.4987 0.1461,0.4051 0.0945,0.7384 0.4014,1.0875 0.5505,0.6259 1.063,0.9521 1.7336,1.4256 0.7132,0.5035 0.6399,1.1955 0.8486,1.9283l0.6569 1.0692 0 0c-0.4131,0.6908 0.2929,1.4865 0.5019,2.0837 0.3245,0.9268 0.5383,1.7511 0.5383,2.769 0,0.1596 -0.0091,0.3169 -0.0091,0.4752 0,0.4189 0.0736,0.8154 0.1642,1.2246l0.1643 0.6397 0 0c-0.5437,0 -1.1341,-0.219 -1.6424,-0.3838l-2.2537 -0.7311c-0.4715,-0.1528 -1.0791,-0.4669 -1.5603,-0.4935 -0.8573,-0.1497 -3.8153,-1.6256 -4.3249,-0.6032 -0.173,0.347 -0.4011,0.7995 -0.7938,0.9139 -0.5572,0.1622 -1.3214,-0.0141 -1.9161,0.0365 -0.8296,0.0705 -1.3162,0.0185 -0.3193,0.6489 0.3186,0.2015 1.5713,1.3011 1.1223,1.6815 -0.1937,0.3396 -0.2555,0.7748 -0.4836,1.0784 -0.2606,0.3471 -0.576,0.3025 -0.8121,0.7676 -0.4239,0.8353 -0.4899,2.0216 -0.9854,2.8421 -0.2285,0.3782 -0.7117,1.2178 -0.7117,1.6541 -0.1119,0.0848 -0.6642,-0.1112 -0.8029,-0.1462 -0.1902,-0.7526 -1.5884,-2.026 -2.3176,-2.175l0 0 -0.7938 -0.2467 -3.4672 -0.7585c-0.6606,-0.1444 -0.7468,-1.0742 -1.1132,-1.5993l-0.9307 -1.3342c-0.2117,-0.3034 0.3137,-0.8101 0.6752,-0.7677 1.0665,0.1251 0.3769,-1.169 0.3011,-1.7638 -0.0792,-0.2386 -0.2682,-0.6396 -0.1642,-0.8773 0.1037,-0.2369 0.28,-0.3813 0.3741,-0.6488 0.1791,-0.5093 -0.029,-0.7837 -0.1186,-1.252 -0.1197,-0.6249 1.6048,-1.1062 1.0493,-1.6633 -0.3894,-0.3904 -0.6926,-1.1925 -0.9672,-1.6998l0.0182 -2.3212 1.7154 -1.3708 0 0z\",\"name\": \"Al-Qadisyyah\"},\"12\": {\"path\": \"M111.565 105.932c0.3902,0.2974 1.0252,0.4845 1.4781,0.6946 0.8444,0.3919 1.7001,0.7431 2.5913,0.1553 0.7859,-0.5185 1.515,-0.7859 2.4544,-0.7859l0 0c0.2391,0.4947 -0.3318,1.2265 0.4379,1.4805 0.2242,0.0739 0.6421,0.1737 0.7573,0.3929 0.1372,0.2609 0.2028,0.5299 0.2555,0.8134l0.1639 0.7402 0 0c-0.1021,0.0465 -0.1288,0.0457 -0.2281,0.0457 -0.1046,0.3208 -0.062,0.7747 -0.0821,1.1515 -0.0354,0.6605 -0.3288,0.5849 -0.876,0.5849 -0.0456,0.1379 -0.0023,0.5309 -0.0091,0.7128 -0.0346,0.9124 0.0278,0.453 0.657,0.7676 0.3562,0.178 0.3523,0.5763 0.6752,0.7951 0.6084,0.4125 0.9191,0.6173 1.5237,0.0822 0.1681,-0.1487 0.7055,-0.2651 0.9124,-0.137 0.2907,0.1798 0.2545,0.5651 0.4745,0.7585 0.1997,0.6364 1.0663,1.2836 1.6789,1.4713 0.5308,0.1627 1.0409,0.1529 1.5602,0.2742 0.273,0.0638 1.0139,1.4819 1.3595,1.782 0.2739,0.2379 0.4954,0.4626 0.8486,0.5849 0.1887,0.0654 0.6054,0.1868 0.7391,0.3198l0 0.064c-0.3609,0.2868 -0.4928,0.5657 -0.4928,1.051 0,1.0645 0.6811,0.6397 1.3869,0.6397 0.1406,0.2323 -0.0397,0.6885 -0.2098,0.859 -0.3213,0.3218 -1.3593,0.9094 -1.1132,1.4713 0.1421,0.3247 0.6073,0.1645 0.8851,0.1645 0.3543,0 0.5188,0.1525 0.666,0.4478l0.0365 0.4844 0 0c-0.5522,0.5077 -1.3603,0.9227 -1.7701,1.5627 -0.1206,0.1883 -0.245,0.5277 -0.4197,0.6488 -0.3079,0.2133 -0.5832,0.1061 -0.8577,0.4021 -0.4787,0.5776 -0.7443,1.3069 -1.5511,1.3069 -0.3178,0 -1.4465,0.116 -1.3869,0.5391 0.0344,0.2448 0.2031,0.4403 0.2008,0.786l-0.0092 1.3982c-0.4905,0.1212 -1.2572,0.0269 -1.7701,-0.0091 -0.4679,-0.0329 -2.007,-0.484 -2.3358,-0.8134l0 0 -2.792 -2.0105 -1.5147 1.8186 -1.1405 0.064 -0.8481 -3.6921 0 0 -0.9489 -2.3212c-0.3973,-0.4702 -0.6506,-0.9636 -1.1223,-1.3982 -0.1975,-0.1821 -0.9129,-1.0048 -0.8942,-1.252 0.0419,-0.5538 0.9786,-1.7558 1.3687,-2.1659 0.4262,-0.4482 0.812,-0.3332 0.812,-0.9413 0,-0.0937 -0.077,-0.6177 -0.1642,-0.6397 -0.0258,-0.1023 -0.9023,-0.2459 -1.0402,-0.265 -0.4038,-0.0559 -0.9436,-0.2602 -1.3504,-0.3747l0 0 -0.0182 -0.5483c0.3999,-0.8021 0.8034,-1.8489 0.9033,-2.7325 0.0912,-0.8063 -0.2007,-1.562 -0.2007,-2.312 0,-0.5284 0.0937,-1.0236 -0.0183,-1.5353 -0.0498,-0.1377 -0.4621,-0.5009 -0.5931,-0.5941 -0.1829,-0.1303 -0.2664,-0.3367 -0.3102,-0.5574 -0.0556,-0.2805 -0.9733,-0.7168 -1.25,-0.6763 -0.3608,0.0529 -0.4147,0.3502 -0.6478,-0.0822 -0.1123,-0.2082 -0.365,-0.8971 -0.365,-1.1149 0,-0.2404 0.0913,-0.4413 0.0913,-0.6763l3.4124 0.3198 0 0z\",\"name\": \"Babil\"},\"13\": {\"path\": \"M110.562 116.442c0.4068,0.1145 0.9466,0.3188 1.3504,0.3747 0.1379,0.0191 1.0144,0.1627 1.0402,0.265 0.0872,0.022 0.1642,0.546 0.1642,0.6397 0,0.6081 -0.3858,0.4931 -0.812,0.9413 -0.3901,0.4101 -1.3268,1.6121 -1.3687,2.1659 -0.0187,0.2472 0.6967,1.0699 0.8942,1.252 0.4717,0.4346 0.725,0.928 1.1223,1.3982l0.9489 2.3212 0 0 -9.1612 3.8109 0 0 -8.4488 -8.6909 5.0366 -1.1698 5.4383 -2.4126c0.4377,-0.1706 0.8483,-0.4228 1.3139,-0.53 0.5642,-0.13 1.1933,-0.2833 1.7701,-0.2833l0.7116 -0.0823 0 0z\",\"name\": \"Karbala\"},\"14\": {\"path\": \"M90.506 163.452l0.0552 -7.6588c0.03,-1.2041 0.803,-3.4239 1.7424,-4.2221 0.4244,-0.3605 0.7751,-0.8011 1.2227,-1.1514 0.4613,-0.3612 0.2431,-1.6802 0.3376,-2.2116 0.1101,-0.6266 0.0471,-1.0951 0.2919,-1.7089 0.3055,-0.7656 1.4143,-1.5634 1.4143,-2.3761 0,-1.201 -0.0783,-2.3028 0.7482,-3.2808 0.481,-0.271 1.0487,-1.5784 1.4142,-2.0653 0.6345,-0.845 1.2589,-2.026 2.0074,-2.7416 1.0954,-1.0474 2.1026,-1.1738 3.5037,-1.709 0.172,-0.0638 0.4123,-0.2855 0.5383,-0.4203 0.2464,-0.2638 0.5768,-0.4809 0.8486,-0.722 0.1316,-0.1166 0.2489,-0.2489 0.3832,-0.3564 0.1934,-0.155 0.4,-0.2356 0.6113,-0.3564l0.8851 -0.9779 -1.7701 -1.8825 0 0 -8.4488 -8.6909 5.0366 -1.1698 5.4383 -2.4126c0.4377,-0.1706 0.8483,-0.4228 1.3139,-0.53 0.5642,-0.13 1.1933,-0.2833 1.7701,-0.2833l0.7116 -0.0823 0 0 -0.0182 -0.5483c0.3999,-0.8021 0.8034,-1.8489 0.9033,-2.7325 0.0912,-0.8063 -0.2007,-1.562 -0.2007,-2.312 0,-0.5284 0.0937,-1.0236 -0.0183,-1.5353 -0.0498,-0.1377 -0.4621,-0.5009 -0.5931,-0.5941 -0.1829,-0.1303 -0.2664,-0.3367 -0.3102,-0.5574 -0.0556,-0.2805 -0.9733,-0.7168 -1.25,-0.6763 -0.3608,0.0529 -0.4147,0.3502 -0.6478,-0.0822 -0.1123,-0.2082 -0.365,-0.8971 -0.365,-1.1149 0,-0.2404 0.0913,-0.4413 0.0913,-0.6763l3.4124 0.3198 0 0 2.7459 -3.2899 0 0 -1.2135 -1.5901c-0.2411,-0.2632 -0.5015,-0.6908 -0.7299,-0.987 -0.2033,-0.2637 -0.5139,-0.4731 -0.7391,-0.7219 -0.5148,-0.5688 -0.6338,-0.7526 -0.6113,-1.5262 0.0143,-0.4901 -0.1625,-0.606 -0.3924,-0.9961 -0.3375,-0.5724 -0.5831,-0.6104 -1.1765,-0.7951l-4.5986 -0.0365 -1.2229 -0.9139 -5.4928 0 -7.7738 -9.7236 0.0182 -6.1046 -2.6642 3.0706 -5.8395 -4.0028 -0.4927 -7.9506 0 0 -8.8875 0.1005 -3.8322 -1.2154c-0.489,-0.1966 -1.9201,-0.5846 -2.2263,-1.0144 -0.8084,-0.2015 -1.7486,0.0048 -2.6004,-0.1005 -0.0507,-0.0405 -0.1489,-0.0666 -0.1734,-0.128 -0.3988,-0.2498 -0.7649,-0.8062 -1.1679,-1.1149 -0.4167,-0.3193 -1.0228,-0.5255 -1.5055,-0.722l-0.8248 -0.3194 0 0 0.2688 7.4385 -1.8796 2.6867 -2.4824 5.5381 -6.1439 1.9129 -32.8881 20.0199 0 0 5.2257 18.5888 -1.7046 0.3831 1.0767 3.7286 3.7044 -1.1515 0.7117 2.632 -1.6887 1.6632 0 0 20.6573 4.2038 0.9614 0.1338 18.3004 12.0572 11.4601 5.3553 14.7625 12.4109 0 0z\",\"name\": \"Al-Anbar\"},\"15\": {\"path\": \"M165.453 151.479l-0.0091 5.8854 -0.5932 2.6684c-0.0522,0.2551 -0.2463,0.4326 -0.2463,0.6855 0,0.8395 0.3194,1.602 0.3194,2.44l-0.0183 0.0091c-0.0219,0.0671 -0.2542,-0.0589 -0.2919,-0.0822 -0.3278,-0.2033 -0.6957,-0.3292 -1.0402,-0.5118 -0.2032,-0.1078 -0.3797,-0.2546 -0.5931,-0.3564 -0.1746,-0.0834 -0.3946,-0.1322 -0.5566,-0.2193l-6.7519 2.4217 0 0 0.292 2.9061c0.1052,1.0482 0.763,2.0102 1.3321,2.8513 0.6738,1.0344 0.9124,2.0358 0.9124,3.2534 0,0.997 -0.0652,2.3344 -0.3558,3.2807l-1.2318 5.2365c-0.4309,0.9199 -0.7038,1.9957 -0.5748,3.0066 0.098,0.7688 0.0988,1.5953 -0.0274,2.3578 -0.0725,0.4376 -0.4319,0.7409 -0.584,1.1515 -0.2386,0.6436 -0.2984,1.1336 -0.3558,1.8277l0.0511 2.1816 0 0 0.1223 -0.0431 0 0 1.0219 -1.2246c0.4279,-0.4867 0.9857,-0.7778 1.3504,-1.3434 0.4638,-0.7195 0.9947,-1.4039 1.3777,-2.175 0.1946,-0.62 0.7632,-1.0096 1.2044,-1.4256 0.5611,-0.5292 1.0662,-1.6513 1.3048,-2.3852 0.3243,-0.9978 1.0336,-1.625 1.4599,-2.5314 0.2076,-0.4947 0.3285,-1.0143 0.3285,-1.5536 0,-0.6199 0.8541,-1.5675 1.0949,-2.1567 0.4087,-1.0003 0.8848,-2.0542 1.1496,-3.1163 0.7263,-0.4455 0.5627,-1.0391 1.5694,-1.1881 0.5172,-0.0766 1.0564,-0.4046 1.5055,-0.6762 0.8917,-0.5393 0.935,-0.8146 2.0712,-0.7951l5.3103 0.0914 4.5987 2.4035 0 0c0.8361,-1.2246 1.4959,-1.2524 2.865,-1.0053 0.6548,0.1182 1.2383,0.2292 1.8614,0.4844 0.9042,0.2583 1.6695,1.1473 2.4544,1.6541 0.3863,0.2495 1.2768,0.1553 1.7519,0.1553 0.2003,0 0.2928,-0.1462 0.4653,-0.1462 0.2109,0 0.5625,0.2198 0.8303,0.2559 0.2092,0.0281 0.3127,-0.3109 0.3011,-0.4661 -0.0109,-0.1447 -1.7336,-0.5362 -1.7336,-1.0327l0 0c-0.2009,-0.2437 -0.387,-0.5006 -0.6025,-0.7311 -0.3984,-0.4262 0.2683,-1.1175 -0.6204,-1.6449 -0.8411,-0.4991 -0.3467,-1.2779 -0.3467,-2.0288 0,-1.1 -3.0123,-2.4873 -3.6862,-3.162 -0.9131,-0.9143 -0.7351,-1.9992 -2.3906,-2.2847 -0.1302,-0.0224 -0.2564,-0.0463 -0.3964,-0.0749l0.1227 -10.8549 -6.1862 -0.0549 0.014 -4.2678 0 0c-0.4512,0 -1.1371,-0.0368 -1.5741,-0.1553 -0.3134,-0.085 -0.6251,-0.2825 -0.9398,-0.3472 -1.9628,-0.984 -4.4015,-0.5649 -6.2501,0.4295 -0.5423,0.2916 -0.7214,0.9144 -1.104,1.3251l0.0182 1.0783 0 0z\",\"name\": \"Al-Basrah\"},\"16\": {\"path\": \"M123.618 145.923c0.7292,0.149 2.1274,1.4224 2.3176,2.175 0.1387,0.035 0.691,0.231 0.8029,0.1462 0,-0.4363 0.4832,-1.2759 0.7117,-1.6541 0.4955,-0.8205 0.5615,-2.0068 0.9854,-2.8421 0.2361,-0.4651 0.5515,-0.4205 0.8121,-0.7676 0.2281,-0.3036 0.2899,-0.7388 0.4836,-1.0784 0.449,-0.3804 -0.8037,-1.48 -1.1223,-1.6815 -0.9969,-0.6304 -0.5103,-0.5784 0.3193,-0.6489 0.5947,-0.0506 1.3589,0.1257 1.9161,-0.0365 0.3927,-0.1144 0.6208,-0.5669 0.7938,-0.9139 0.5096,-1.0224 3.4676,0.4535 4.3249,0.6032 0.4812,0.0266 1.0888,0.3407 1.5603,0.4935l2.2537 0.7311c0.5083,0.1648 1.0987,0.3838 1.6424,0.3838l0 0c0.3286,0.3898 0.4386,0.5572 0,0.8499 -0.432,0.2884 -0.1095,0.8627 -0.1095,1.252 0,0.8221 -0.2871,1.4774 -0.4745,2.2664 -0.0302,0.3456 -0.2723,0.5926 -0.3193,0.9138 -0.0264,0.181 -0.1534,0.7255 0.0821,0.8042 0.1266,0.0422 0.2772,-0.4031 0.4744,-0.1827 0.2767,0.3095 -0.276,0.8695 -0.3741,1.124 -0.506,1.3133 1.134,3.1928 -0.2737,4.2495 -0.411,0.5728 -0.3619,0.9718 -0.6204,1.5536 -0.3313,0.7454 -0.8025,0.4945 -1.2592,0.859 -0.0036,0.0262 -0.008,0.0355 -0.0274,0.0549 0,0.7611 -0.1587,2.1413 0.1734,2.8055 2.2243,1.0146 5.0953,0.9139 7.5458,1.0053 0.7267,0.2019 1.4957,0.3655 2.2537,0.3655 0.9282,0 1.984,0.5332 2.6825,1.115 0.3584,0.2984 0.7601,0.6089 1.0493,0.9869 0.2906,0.38 0.4902,0.8706 0.7847,1.2246 0.0748,0.5852 1.0292,1.9733 1.5055,2.3578 0.1826,0.1476 0.4818,0.077 0.7117,0.0914l0.4471 -0.1097 0 0 0.292 2.9061c0.1052,1.0482 0.763,2.0102 1.3321,2.8513 0.6738,1.0344 0.9124,2.0358 0.9124,3.2534 0,0.997 -0.0652,2.3344 -0.3558,3.2807l-1.2318 5.2365c-0.4309,0.9199 -0.7038,1.9957 -0.5748,3.0066 0.098,0.7688 0.0988,1.5953 -0.0274,2.3578 -0.0725,0.4376 -0.4319,0.7409 -0.584,1.1515 -0.2386,0.6436 -0.2984,1.1336 -0.3558,1.8277l0.0511 2.1816 0 0 -2.2986 0.8108 -30.2079 -2.8309 -15.6726 -13.1762 0 0 0.5267 -1.0497c0.4422,-0.4903 0.6831,-1.2336 1.1314,-1.7089 0.3147,-0.3338 0.4858,-0.7699 0.812,-1.0967 0.502,-0.5031 1.0261,-1.4414 1.1679,-2.1384 0.1869,-0.918 0.7479,-1.8816 0.8669,-2.7873 0.2574,-0.2271 0.4818,-1.3031 0.6295,-1.6633 0.7819,-1.9069 1.476,-4.1992 3.0293,-5.6568 0.5668,-0.3287 1.193,-1.2496 1.6789,-1.7364 0.7846,-0.7863 1.1811,-1.9164 1.9343,-2.7142 0.7764,-0.8222 0.9084,-2.2123 1.0675,-3.2807 0.3958,-0.5946 0.3389,-1.6152 0.9125,-2.1568 0.7358,-0.6949 1.2769,-1.6757 1.5602,-2.641 0.1945,-0.663 0.8421,-2.2653 1.3504,-2.7234l0 0z\",\"name\": \"Al-Muthanna\"},\"17\": {\"path\": \"M140.06 133.641l0.5201 -0.2559c0.0619,-0.0774 0.1765,-0.1113 0.2646,-0.1553 0.0325,-0.0029 0.0352,-0.0039 0.0639,-0.0183l6.7246 -0.064 3.8687 -0.1553 0 0c0.1202,0.1861 0.2307,0.3072 0.2007,0.5209 -0.2216,0.1769 -0.5414,0.3451 -0.7847,0.4661 -0.0045,0.0183 -0.0091,0.0241 -0.0091,0.0457 0.476,0.2973 0.8841,0.8577 1.25,1.2977 0.2197,0.2641 0.4076,0.5606 0.5566,0.8681 0.1957,0.4037 0.2361,0.8306 0.4106,1.2246 -0.097,0.3668 -0.2101,1.8717 0.0456,2.1476 0.1728,0.1864 0.3313,0.2286 0.5019,0.4661 0.3374,0.4699 0.6379,0.1839 0.8394,0.8407 0.18,0.5867 0.8423,1.1041 1.3139,1.5353 0.6142,0.5614 0.3355,1.4218 0.1277,2.0745 -0.4442,1.3787 0.9951,1.6251 1.8796,2.1476 0.8425,0.4976 1.0676,0.4266 1.0676,1.4531 0,0.2347 -0.1295,0.3922 -0.1643,0.6305 -0.0223,0.1524 0.0635,1.1066 0.1278,1.2155 0.1275,0.2161 0.5099,0.3495 0.6752,0.6031 0.2468,0.3784 0.4049,0.901 0.9033,0.9047l2.3814 0.0183 2.6278 0.0274 0 0 -0.0091 5.8854 -0.5932 2.6684c-0.0522,0.2551 -0.2463,0.4326 -0.2463,0.6855 0,0.8395 0.3194,1.602 0.3194,2.44l-0.0183 0.0091c-0.0219,0.0671 -0.2542,-0.0589 -0.2919,-0.0822 -0.3278,-0.2033 -0.6957,-0.3292 -1.0402,-0.5118 -0.2032,-0.1078 -0.3797,-0.2546 -0.5931,-0.3564 -0.1746,-0.0834 -0.3946,-0.1322 -0.5566,-0.2193l-6.7519 2.4217 0 0 -0.4471 0.1097c-0.2299,-0.0144 -0.5291,0.0562 -0.7117,-0.0914 -0.4763,-0.3845 -1.4307,-1.7726 -1.5055,-2.3578 -0.2945,-0.354 -0.4941,-0.8446 -0.7847,-1.2246 -0.2892,-0.378 -0.6909,-0.6885 -1.0493,-0.9869 -0.6985,-0.5818 -1.7543,-1.115 -2.6825,-1.115 -0.758,0 -1.527,-0.1636 -2.2537,-0.3655 -2.4505,-0.0914 -5.3215,0.0093 -7.5458,-1.0053 -0.3321,-0.6642 -0.1734,-2.0444 -0.1734,-2.8055 0.0194,-0.0194 0.0238,-0.0287 0.0274,-0.0549 0.4567,-0.3645 0.9279,-0.1136 1.2592,-0.859 0.2585,-0.5818 0.2094,-0.9808 0.6204,-1.5536 1.4077,-1.0567 -0.2323,-2.9362 0.2737,-4.2495 0.0981,-0.2545 0.6508,-0.8145 0.3741,-1.124 -0.1972,-0.2204 -0.3478,0.2249 -0.4744,0.1827 -0.2355,-0.0787 -0.1085,-0.6232 -0.0821,-0.8042 0.047,-0.3212 0.2891,-0.5682 0.3193,-0.9138 0.1874,-0.789 0.4745,-1.4443 0.4745,-2.2664 0,-0.3893 -0.3225,-0.9636 0.1095,-1.252 0.4386,-0.2927 0.3286,-0.4601 0,-0.8499l0 0 -0.1643 -0.6397c-0.0906,-0.4092 -0.1642,-0.8057 -0.1642,-1.2246 0,-0.1583 0.0091,-0.3156 0.0091,-0.4752 0,-1.0179 -0.2138,-1.8422 -0.5383,-2.769 -0.209,-0.5972 -0.915,-1.3929 -0.5019,-2.0837l0 0z\",\"name\": \"Dhi Qar\"},\"18\": {\"path\": \"M155.362 114.15c-0.549,0.6694 -0.4384,0.4112 -0.146,1.1678 0.1245,0.3217 -0.2927,1.1707 -0.4562,1.4804 -0.5552,1.051 -0.5231,2.3252 -0.7391,3.4545 -0.0997,0.5211 0.0274,0.8526 0.0274,1.3433 0,0.8189 -0.6205,0.3381 -0.6205,0.6946 -0.1209,1.063 -1.6659,2.1857 -0.9124,3.1346 0.4812,0.6059 0.6937,0.8924 0.8029,1.6723 0.0544,0.3883 0.7791,1.0131 1.1679,1.0693 0.0071,0.0178 0.0096,0.0203 0.0274,0.0274 0.0712,0.507 0.1938,0.8398 -0.3011,1.0509l-1.9708 0.8408c-0.1526,0.0763 -0.3893,0.0923 -0.5201,0.1828 -0.1769,0.1223 -0.0841,0.6409 -0.0183,0.8133 0.1165,0.3056 0.7227,0.6507 0.6478,1.0418 -0.0839,0.4385 -0.7022,0.4646 -0.8485,0.8682l0 0c0.1202,0.1861 0.2307,0.3072 0.2007,0.5209 -0.2216,0.1769 -0.5414,0.3451 -0.7847,0.4661 -0.0045,0.0183 -0.0091,0.0241 -0.0091,0.0457 0.476,0.2973 0.8841,0.8577 1.25,1.2977 0.2197,0.2641 0.4076,0.5606 0.5566,0.8681 0.1957,0.4037 0.2361,0.8306 0.4106,1.2246 -0.097,0.3668 -0.2101,1.8717 0.0456,2.1476 0.1728,0.1864 0.3313,0.2286 0.5019,0.4661 0.3374,0.4699 0.6379,0.1839 0.8394,0.8407 0.18,0.5867 0.8423,1.1041 1.3139,1.5353 0.6142,0.5614 0.3355,1.4218 0.1277,2.0745 -0.4442,1.3787 0.9951,1.6251 1.8796,2.1476 0.8425,0.4976 1.0676,0.4266 1.0676,1.4531 0,0.2347 -0.1295,0.3922 -0.1643,0.6305 -0.0223,0.1524 0.0635,1.1066 0.1278,1.2155 0.1275,0.2161 0.5099,0.3495 0.6752,0.6031 0.2468,0.3784 0.4049,0.901 0.9033,0.9047l2.3814 0.0183 2.6278 0.0274 0 0 -0.0182 -1.0783c0.3826,-0.4107 0.5617,-1.0335 1.104,-1.3251 1.8486,-0.9944 4.2873,-1.4135 6.2501,-0.4295 0.3147,0.0647 0.6264,0.2622 0.9398,0.3472 0.437,0.1185 1.1229,0.1553 1.5741,0.1553l0 0 0.0135 -4.0666 3.1297 -7.6948c0.1436,-0.3176 0.1733,-0.7101 -0.1004,-0.9687 -0.3373,-0.3189 -0.7493,-0.4132 -0.9763,-0.8682 0.0384,-0.0064 0.0106,0.0083 0,0.0457 0.0267,-0.121 0.2402,-0.466 0.1825,-0.5666 -0.0854,-0.1486 -0.3913,0.0567 -0.4562,-0.3016 -0.0914,-0.5052 -0.6178,-0.2766 -0.7847,-0.8224 -0.081,-0.2652 -0.2793,-0.5118 -0.3467,-0.7677 -0.0561,-0.2134 -0.1185,-0.826 -0.2281,-0.9778 -0.1325,-0.1833 -0.4651,0.0739 -0.6022,-0.2011 -0.1198,-0.2401 -0.1698,-0.3526 -0.3285,-0.5666 -0.1717,-0.2316 0.1868,-0.5057 -0.0548,-0.6762l-0.8668 -0.6123c-0.4558,-0.3219 -0.5969,0.4621 -0.8942,-0.3382 -0.0797,-0.2144 -0.319,-0.2227 -0.4379,-0.4386 -0.1088,-0.4756 0.2725,-0.6128 0.5657,-0.8316 0.2011,-0.1502 0.0912,-0.5676 0.0912,-0.8042 -0.4842,-0.1223 -0.7388,-0.3564 -0.9763,-0.8043 -0.2597,-0.49 0.4726,-0.348 0.1825,-0.8224 -0.1004,-0.1641 -0.8154,-0.0897 -1.0037,-0.2102 -0.0882,-0.0565 -0.0088,-0.2717 -0.0729,-0.3838 -0.0777,-0.1361 -0.447,-0.324 -0.365,-0.4478 0.2903,-0.4378 0.824,-0.6033 0.1004,-1.0784 -0.4074,-0.2721 -0.8716,-1.4212 -1.2957,-1.3617 -0.4328,0.0608 -1.5913,-0.4323 -1.6332,-0.4021 -0.289,0.2088 -0.3841,0.5829 -0.7756,0.658 -2.2778,0.4372 -4.0861,-2.2622 -5.7483,-3.3722 -0.5729,-0.3503 -1.1445,-0.8738 -1.4964,-1.4439 -0.2593,-0.4203 -0.7374,-0.375 -0.885,-0.859 -0.0872,-0.2858 -0.395,-0.4443 -0.5931,-0.658 -0.4187,-0.4518 -0.2114,-0.5109 -0.8486,-0.6854 -0.4109,-0.1126 -1.2475,-0.4197 -1.5055,-0.7676 -0.2374,-0.3203 -0.5014,-0.5594 -0.8303,-0.8043 -0.0332,-0.0331 -0.0666,-0.0661 -0.1003,-0.0985l0 0z\",\"name\": \"Maysan\"}},\"height\": 300,\"width\": 306});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.new_regions_france.js",
    "content": "jQuery.fn.vectorMap('addMap','france_fr',\n  {\"width\":520,\"height\":550,\n    \"pathes\":{\n\n      \"21\":{\"path\":\"M 174.2,23.3 L 174.5,21.8 L 172.5,19.6 L 169.6,19.9 L 166.8,21.8 L 165.3,21.1 L 163.9,18.6 L 162.2,18.6 L 161.6,17.2 L 162.1,14.3 L 160.9,11.3 L 159.5,10.5 L 151.2,12.6 L 144.5,14.7 L 141.6,17.1 L 141.6,26.1 L 143,27.9 L 141.6,27.1 L 141.3,30 L 141.5,31.9 L 142.7,32.7 L 140.8,33.4 L 140.6,34.9 L 142.2,37.7 L 140.8,36.9 L 137.5,41.4 L 143.8,46.7 L 145.5,50.9 L 144,53.3 L 144.7,57.6 L 144,61.6 L 145.7,65.8 L 143.7,67.1 L 144.5,68.7 L 147.3,69.3 L 150.5,68.4 L 155.1,69.5 L 156.2,68.7 L 161.6,71.9 L 165.1,72.4 L 166.1,71.3 L 167.3,72.1 L 171.4,70.6 L 172.7,71 L 173.6,72.2 L 173.3,73.6 L 175.2,75.7 L 179.9,78.7 L 183.7,73.6 L 182.4,73 L 182.9,71.6 L 182.1,70.4 L 184.8,69.3 L 183.2,65.3 L 183.8,63.9 L 187.8,61.9 L 190.5,62.9 L 190.9,61.4 L 190.8,54.3 L 192.2,54.2 L 194.7,50.6 L 194,49 L 194.7,47.3 L 194.3,44.4 L 194.1,44.4 L 192.3,43.8 L 193.9,40.7 L 192.4,38.1 L 193.4,34.8 L 192,35.1 L 190,32.7 L 187,33.2 L 184.2,32.6 L 183.1,33.6 L 182.1,29.1 L 179.3,28.4 L 178.8,27.1 L 177.3,28.1 L 175.8,27.6 L 174.2,23.3 z \"\n        ,\"name\":\"Hauts-de-France\"},\n      \"2\":{\"path\":\"M 137.5,41.4 L 137.4,41.5 L 132,45.3 L 120.9,48 L 113.8,51.9 L 110.9,58.2 L 111.8,59.3 L 116.2,60.3 L 116.3,60.3 L 115.5,60.6 L 115.4,60.6 L 112,61.4 L 109.6,63.5 L 104.8,64.9 L 100.5,63.1 L 94.3,62.4 L 89.5,60.8 L 86.9,61.9 L 83.7,56.7 L 84.9,52.7 L 84.4,51.4 L 81.1,51 L 79.9,51.9 L 76.6,52.1 L 70.9,49.8 L 70.8,51.2 L 72.5,52.1 L 72.7,54.6 L 71.8,55.6 L 73,60.7 L 77.3,65.3 L 76.6,70.3 L 77.6,71.7 L 77.4,74.7 L 76.2,77.5 L 78.3,82.2 L 79.6,82.9 L 80.9,82.1 L 80.4,83.6 L 76.8,83.9 L 79.2,88.7 L 80.5,89.2 L 84.1,86.8 L 86.8,88 L 91.1,88.4 L 92.8,90.2 L 94,89.4 L 95.2,90.3 L 98.6,88.6 L 103.2,88.6 L 103.5,87.3 L 104.9,87.4 L 105.8,90.4 L 107.5,91.2 L 107.5,92.7 L 109,92.7 L 114.5,89.8 L 115.8,90.5 L 116.6,94.7 L 120.3,97.2 L 121.7,96.7 L 123.3,98.5 L 124.9,98.8 L 124.8,98.8 L 124.3,95.1 L 128.1,92.5 L 127.8,90.2 L 127.9,88 L 125.5,85.8 L 125.5,84.2 L 126.7,82.9 L 129.6,82.3 L 132.3,80.7 L 133.7,81.5 L 136.7,80.9 L 136.6,79.5 L 139.6,76 L 138.7,73.1 L 139.8,71.8 L 141.8,71.9 L 143.7,67.1 L 145.7,65.8 L 144,61.6 L 144.7,57.6 L 144,53.3 L 145.5,50.9 L 143.8,46.7 L 137.5,41.4 z \"\n        ,\"name\":\"Normandie\"},\n      \"4\":{\"path\":\"M 173.3,73.6 L 173.6,72.2 L 172.7,71 L 171.4,70.6 L 167.3,72.1 L 166.1,71.3 L 165.1,72.4 L 161.6,71.9 L 156.2,68.7 L 155.1,69.5 L 150.5,68.4 L 147.3,69.3 L 144.5,68.7 L 143.7,67.1 L 141.8,71.9 L 139.8,71.8 L 138.7,73.1 L 139.6,76 L 141.4,79.3 L 141.7,84.8 L 144.7,87.5 L 145.3,90.3 L 146.5,91.4 L 148,91 L 149.4,96.3 L 149.5,96.3 L 152.9,95.9 L 153.9,94.5 L 154.6,95.9 L 156,95 L 157.9,95.3 L 158.2,96.8 L 160.3,98.9 L 160,100.3 L 158.7,101.1 L 163.3,101.4 L 168.9,100.1 L 170.8,97.4 L 170.9,94.5 L 178.6,93 L 178.4,88.7 L 179.9,88.3 L 181.4,85.8 L 180.1,85 L 178.4,80.8 L 179.6,79.7 L 179.9,78.7 L 175.2,75.7 L 173.3,73.6 z \"\n        ,\"name\":\"Île-de-France\"},\n      \"5\":{\"path\":\"M 86,95.2 L 86.8,94 L 86.8,88 L 84.1,86.8 L 80.5,89.2 L 79.2,88.7 L 76.8,83.9 L 71,84 L 71.2,81.1 L 69.5,81.5 L 67.6,83.4 L 68.7,86.1 L 67.7,85.3 L 66.9,83.1 L 65.4,83.1 L 65.4,84 L 63.4,84.2 L 62.9,82.6 L 61.3,83.3 L 60.8,82 L 59,82.2 L 53.7,86.6 L 53.2,84.8 L 51.2,83.5 L 51.2,81.9 L 48.9,78 L 47.4,77.7 L 47.7,76.3 L 46.2,76.5 L 45.4,78 L 46.1,74.7 L 43.7,76.3 L 43.4,74.5 L 39,76.3 L 38.3,75.1 L 36,76.9 L 35.9,80 L 34.3,80.2 L 34.2,80.2 L 31.8,78.8 L 30.4,79.1 L 30.1,80.8 L 29,79.4 L 28.2,81 L 28.1,77.8 L 20.9,79.9 L 20.2,78.6 L 15.1,81.4 L 16.4,82 L 12.2,81.6 L 11.2,82.8 L 10.5,87.3 L 11.4,88.5 L 12.8,87.9 L 14.1,88.5 L 20.2,86.7 L 18.4,87.5 L 18.1,89.2 L 21.1,88.5 L 20.9,90 L 22.3,90.6 L 20.8,90.9 L 23.9,92.2 L 20.9,91.5 L 20.3,90.3 L 18.4,90.8 L 15.5,90.2 L 14.6,89 L 13.9,90.9 L 15.1,93.5 L 16,92.1 L 17.4,92.2 L 20.1,93.8 L 20.5,95.4 L 19.7,96.6 L 18.4,96 L 12.2,96.6 L 11.4,97.8 L 16.2,99.6 L 18,102.7 L 17.5,105.5 L 21.2,105.8 L 23,103.7 L 23,103.5 L 23,103.5 L 22.6,102.1 L 23.1,102 L 23.3,100.4 L 24,101.9 L 23.1,102 L 23,103.5 L 24.5,104.5 L 26.8,103.7 L 29.1,106.6 L 30.5,106.3 L 30.5,104.9 L 30.7,106.3 L 32,105.9 L 31.7,107.3 L 33.1,107.6 L 35,106.8 L 35.1,105.3 L 35.5,109.2 L 36.8,109.9 L 38.1,109.3 L 37.9,106.3 L 38.1,107.8 L 39.7,108.1 L 38.6,109.2 L 39.3,110.5 L 41.2,111.3 L 42.5,110.7 L 41.3,111.3 L 41.4,112.7 L 42.5,114.1 L 42.1,116 L 43.2,117.1 L 42.6,115.7 L 43.9,114.5 L 45.5,114.1 L 46.7,115 L 46.1,112.1 L 47.7,114.5 L 48.4,113.3 L 50.3,113.6 L 51.3,114.8 L 50.3,116 L 47.2,115.6 L 49.6,117.5 L 55.8,117 L 57.1,117.8 L 55.6,117.8 L 56.4,119.1 L 64.1,116.9 L 64.3,113.9 L 66.9,112.2 L 73.5,112 L 74.3,110.5 L 78.8,108.6 L 82.2,110.4 L 82.4,109.3 L 84.2,105 L 86.9,103.9 L 86,95.2 z M 41.5,122.9 L 43.4,122.3 L 40.9,120.6 L 39.5,120.8 L 39.9,122.5 L 41.5,122.9 z \"\n        ,\"name\":\"Bretagne\"},\n      \"6\":{\"path\":\"M 275.2,70.9 L 270.9,69.4 L 263.6,69.1 L 259.4,65.4 L 256.3,67.5 L 252.8,66.9 L 251.5,67.5 L 250.4,65.5 L 248.9,64.8 L 247.5,65.6 L 247.4,67.1 L 246,66.7 L 242,62.2 L 241.1,59.2 L 239.6,58.2 L 234.1,56.9 L 231.9,58.7 L 230.5,58.7 L 227.8,57.5 L 226.1,56.1 L 222.7,56.1 L 222.1,57.5 L 219.3,57.8 L 217.5,54.2 L 216,54.4 L 216,52.8 L 213,52 L 209.6,49.1 L 206.6,49.1 L 207.1,45.9 L 205.7,43.1 L 205.7,41 L 207,38.4 L 205.6,37.7 L 203.6,39.8 L 202.7,43.1 L 198.4,45 L 195.7,44.1 L 194.3,44.4 L 194.7,47.3 L 194,49 L 194.7,50.6 L 192.2,54.2 L 190.8,54.3 L 190.9,61.4 L 190.5,62.9 L 187.8,61.9 L 183.8,63.9 L 183.2,65.3 L 184.8,69.3 L 182.1,70.4 L 182.9,71.6 L 182.4,73 L 183.7,73.6 L 179.9,78.7 L 179.6,79.7 L 178.4,80.8 L 180.1,85 L 181.4,85.8 L 179.9,88.3 L 178.4,88.7 L 178.6,93 L 180.5,93.7 L 182.7,96.5 L 183.9,100.6 L 184.9,99.5 L 186.7,101.6 L 189.2,107 L 195.5,106.2 L 197,106.9 L 198.1,105.9 L 201.2,105.5 L 203.5,103.5 L 205.4,103.8 L 207.2,104.1 L 207.5,105.5 L 208.8,106 L 208.6,107.4 L 210.1,107.6 L 210.9,108.7 L 211.5,110.2 L 210.1,111.4 L 211.2,113.8 L 215.8,114.8 L 217.3,115.6 L 217.3,117 L 219.7,116.1 L 220.3,114.8 L 223.6,112.9 L 224.7,113.8 L 226.2,113.3 L 226.4,109.1 L 227.4,107.9 L 228.9,108.1 L 230,106.5 L 229.9,105.8 L 233.9,102.9 L 237.4,105 L 240.3,104.2 L 242.7,106 L 245.3,104.9 L 249.5,108.2 L 250,107.9 L 253.8,110.4 L 254,114.9 L 255.4,114.8 L 256.4,117.4 L 254.5,117.6 L 254.5,117.7 L 256.3,117.4 L 257.7,117.8 L 257.3,119.2 L 261.1,119.3 L 262.4,118.8 L 262.7,117.2 L 264.2,117.2 L 264.3,115.6 L 265.4,114.6 L 263.9,110.7 L 265.3,103 L 264.3,97.9 L 267.3,90.9 L 268,83.1 L 273.3,76.2 L 275.2,70.9 z  \"\n        ,\"name\":\"Grand-Est\"},\n      \"8\":{\"path\":\"M 86.8,94 L 86,95.2 L 86.9,103.9 L 84.2,105 L 82.4,109.3 L 82.2,110.4 L 78.8,108.6 L 74.3,110.5 L 73.5,112 L 66.9,112.2 L 64.3,113.9 L 64.1,116.9 L 56.4,119.1 L 54.2,121.3 L 55.4,124.4 L 58.4,124.9 L 59.4,125.9 L 61.9,124.1 L 65.5,123.8 L 62.1,125 L 61.8,128.4 L 60.3,129 L 63.3,130.1 L 65.7,132.6 L 61.8,136.7 L 62,138.9 L 67.2,145 L 68.2,148.6 L 72.3,151.9 L 74.7,152.5 L 75.5,154.2 L 78.4,154.8 L 80.8,156.7 L 81.1,155.3 L 82.6,155.6 L 87,153.9 L 86.3,155.3 L 89.5,155.2 L 90.7,156.1 L 95.2,153.8 L 94,152.8 L 94.1,149.2 L 91.7,140.2 L 89.6,138.1 L 88.5,135.3 L 94.6,134.9 L 96.5,132.5 L 99.3,132.1 L 104.1,132 L 105.2,133.1 L 108.6,130.2 L 108.6,130.1 L 111.4,122.5 L 112.3,117.8 L 112.7,116.6 L 115.7,117.9 L 115.5,116.3 L 116.9,116.4 L 120.7,114.2 L 121,112.4 L 122.6,111.9 L 125.7,106.6 L 125.6,103.8 L 124.7,102.7 L 125.7,101.7 L 125.7,101.6 L 125.9,100.7 L 124.9,98.8 L 123.3,98.5 L 121.7,96.7 L 120.3,97.2 L 116.6,94.7 L 115.8,90.5 L 114.5,89.8 L 109,92.7 L 107.5,92.7 L 107.5,91.2 L 105.8,90.4 L 104.9,87.4 L 103.5,87.3 L 103.2,88.6 L 98.6,88.6 L 95.2,90.3 L 94,89.4 L 92.8,90.2 L 91.1,88.4 L 86.8,88 L 86.8,94 z \"\n        ,\"name\":\"Pays de la Loire\"},\n      \"9\":{\"path\":\"M 172.4,106.7 L 172.2,103.8 L 168.9,100.1 L 163.3,101.4 L 158.7,101.1 L 160,100.3 L 160.3,98.9 L 158.2,96.8 L 157.9,95.3 L 156,95 L 154.6,95.9 L 153.9,94.5 L 152.9,95.9 L 149.5,96.3 L 149.4,96.3 L 148,91 L 146.5,91.4 L 145.3,90.3 L 144.7,87.5 L 141.7,84.8 L 141.4,79.3 L 139.6,76 L 136.6,79.5 L 136.7,80.9 L 133.7,81.5 L 132.3,80.7 L 129.6,82.3 L 126.7,82.9 L 125.5,84.2 L 125.5,85.8 L 127.9,88 L 127.8,90.2 L 128.1,92.5 L 124.3,95.1 L 124.8,98.8 L 124.9,98.8 L 125.9,100.7 L 125.7,101.6 L 125.7,101.7 L 124.7,102.7 L 125.6,103.8 L 125.7,106.6 L 122.6,111.9 L 121,112.4 L 120.7,114.2 L 116.9,116.4 L 115.5,116.3 L 115.7,117.9 L 112.7,116.6 L 112.3,117.8 L 111.4,122.5 L 108.6,130.1 L 108.6,130.2 L 111.3,131.8 L 111.4,133.4 L 112.9,133.2 L 113.6,136.3 L 115,137 L 120,136.8 L 119.2,135.3 L 121.9,136.8 L 122,138.4 L 126.6,144.9 L 126.2,147.8 L 128.6,150 L 130,150 L 131.3,152.7 L 132.6,153.3 L 131.8,154.7 L 133.1,155.3 L 136,154.7 L 136.8,156 L 138.3,154.5 L 144,154 L 144.9,152.7 L 151.5,154.1 L 152.9,153.7 L 155.4,153.8 L 155.3,153.7 L 157.1,150.8 L 161.5,150.3 L 162.3,149.1 L 161.5,146.4 L 162.6,145.5 L 166.8,144 L 169.2,142.2 L 171.2,142.2 L 172,134.8 L 170.9,133.8 L 170.8,130.9 L 169.2,127.1 L 167.8,126 L 168.7,123.1 L 167.7,119.9 L 168.4,118.7 L 169.9,118.3 L 168.7,114.9 L 167.2,113.5 L 169.9,111.8 L 170.7,110.6 L 170.1,109.2 L 172.4,106.7 z \"\n        ,\"name\":\"Centre-Val-de-loire\"},\n      \"10\":{\"path\":\"M 170.9,94.5 L 170.8,97.4 L 168.9,100.1 L 172.2,103.8 L 172.4,106.7 L 170.1,109.2 L 170.7,110.6 L 169.9,111.8 L 167.2,113.5 L 168.7,114.9 L 169.9,118.3 L 168.4,118.7 L 167.7,119.9 L 168.7,123.1 L 167.8,126 L 169.2,127.1 L 170.8,130.9 L 170.9,133.8 L 172,134.8 L 171.2,142.2 L 174.1,145.3 L 177.3,145.4 L 178.7,144.6 L 180.9,146.4 L 183.9,143.4 L 187.2,150.2 L 191.1,151.7 L 192,152.8 L 191.7,155.6 L 189.9,157.9 L 189.9,159.4 L 192.4,161 L 196.4,160.3 L 197.5,161.3 L 200.3,159.4 L 200.5,157.9 L 201.7,157 L 202.7,157.8 L 203.9,157 L 205.1,157.8 L 205.9,156.7 L 208.8,160.5 L 211.7,150 L 214.6,150.8 L 217.3,150.2 L 219.8,151.8 L 221.9,155.7 L 223.4,155.7 L 223.4,157.2 L 224.9,157.1 L 226.9,154.9 L 228.5,155.7 L 228.7,157.1 L 230.7,157 L 233.4,155.4 L 235.8,152.1 L 235.7,152 L 237.5,146 L 243.3,140.6 L 242.9,135.8 L 247.2,132.8 L 253.1,125.6 L 253,124.1 L 254.1,123.1 L 252,121.3 L 252.4,119.8 L 252.5,119.7 L 254.3,117.7 L 254.5,117.7 L 254.5,117.6 L 256.4,117.4 L 255.4,114.8 L 254,114.9 L 253.8,110.4 L 250,107.9 L 249.5,108.2 L 245.3,104.9 L 242.7,106 L 240.3,104.2 L 237.4,105 L 233.9,102.9 L 229.9,105.8 L 230,106.5 L 228.9,108.1 L 227.4,107.9 L 226.4,109.1 L 226.2,113.3 L 224.7,113.8 L 223.6,112.9 L 220.3,114.8 L 219.7,116.1 L 217.3,117 L 217.3,115.6 L 215.8,114.8 L 211.2,113.8 L 210.1,111.4 L 211.5,110.2 L 210.9,108.7 L 210.1,107.6 L 208.6,107.4 L 208.8,106 L 207.5,105.5 L 207.2,104.1 L 205.4,103.8 L 203.5,103.5 L 201.2,105.5 L 198.1,105.9 L 197,106.9 L 195.5,106.2 L 189.2,107 L 186.7,101.6 L 184.9,99.5 L 183.9,100.6 L 182.7,96.5 L 180.5,93.7 L 178.6,93 L 170.9,94.5 z  \"\n        ,\"name\":\"Bourgogne-Franche-Comté\"},\n      \"11\":{\"path\":\"M 166.8,144 L 162.6,145.5 L 161.5,146.4 L 162.3,149.1 L 161.5,150.3 L 157.1,150.8 L 155.3,153.7 L 155.4,153.8 L 155.9,155.7 C 157.2,156.5 158.4,157.3 159.6,158.2 L 161.4,162.3 L 161.2,164.4 L 162.3,167.7 L 157.6,172 L 159.9,174.8 L 160.5,177.6 L 159.6,178.8 L 160.6,185.7 L 157.5,184.7 L 157.1,186.5 L 153.3,191.2 L 154.3,192.3 L 153.1,193.3 L 153,195 L 151.4,195.6 L 152.2,197.3 L 150.5,198.2 L 151,200.9 L 152.9,203.9 L 152,206.8 L 153.7,209.3 L 156.3,207.7 L 159.4,208.5 L 161.3,206.1 L 162.8,201.5 L 165.2,199.4 L 167.8,201.4 L 168.4,203.5 L 169.6,204.3 L 169.4,205.8 L 170.7,208.4 L 174.1,200.4 L 175,201.6 L 178.9,198.2 L 180,199.1 L 180.8,201.9 L 184,202.5 L 184.1,201.1 L 185.5,201.2 L 190,205.1 L 191,209.6 L 194.5,216.7 L 198.4,219.2 L 201.9,217 L 202,218.6 L 203.3,217.5 L 204.6,217.5 L 207.7,219.2 L 207.6,217.4 L 210.5,217.7 L 212.3,219.8 L 216.6,217.9 L 217.8,218.6 L 219.1,217.5 L 219.3,220.4 L 224,220.8 L 224.1,222.2 L 226.7,223.4 L 228.8,221 L 230,220.9 L 230.5,220.8 L 230.6,218.5 L 225.6,215.6 L 224.8,214.3 L 226.4,211.8 L 228.5,212.5 L 229.8,211.2 L 228.3,210.1 L 229.5,206.7 L 232.4,206.5 L 232.6,204.9 L 233,203.3 L 235.8,202.7 L 236.2,201.3 L 242.5,199.4 L 244.1,199.9 L 244.3,197 L 242.1,195.5 L 241.2,193.4 L 242,191.5 L 245.9,193.2 L 246.9,192.2 L 249.9,191.6 L 249.9,191.6 L 259.6,187.5 L 260.6,185.6 L 259.9,184.3 L 261.4,181.7 L 257.7,179.2 L 256.6,176.4 L 256.9,174.9 L 254.2,173.7 L 252.7,172.4 L 252.5,170.9 L 252.5,170.8 L 252.6,170.7 L 256.7,166.7 L 257.2,165.2 L 255.5,162.9 L 251.6,159.2 L 252.8,156.1 L 250.9,153.4 L 251.1,152 L 249.5,151.7 L 245.2,151.9 L 242.7,154 L 241,153.3 L 239.6,156.2 L 240.8,157.7 L 237.3,160.4 L 233.8,160.9 L 234.1,158.3 L 236.9,156.6 L 237.5,153.1 L 235.8,152.1 L 233.4,155.4 L 230.7,157 L 228.7,157.1 L 228.5,155.7 L 226.9,154.9 L 224.9,157.1 L 223.4,157.2 L 223.4,155.7 L 221.9,155.7 L 219.8,151.8 L 217.3,150.2 L 214.6,150.8 L 211.7,150 L 208.8,160.5 L 205.9,156.7 L 205.1,157.8 L 203.9,157 L 202.7,157.8 L 201.7,157 L 200.5,157.9 L 200.3,159.4 L 197.5,161.3 L 196.4,160.3 L 192.4,161 L 189.9,159.4 L 189.9,157.9 L 191.7,155.6 L 192,152.8 L 191.1,151.7 L 187.2,150.2 L 183.9,143.4 L 180.9,146.4 L 178.7,144.6 L 177.3,145.4 L 174.1,145.3 L 171.2,142.2 L 169.2,142.2 L 166.8,144 z M 216.9,215.5 L 215.7,217.2 L 213.7,217.8 L 212.7,216.7 L 213.3,215.2 L 214.6,214.1 L 216.9,215.5 z  \"\n        ,\"name\":\"Auvergne-Rhône-Alpes\"},\n      \"12\":{\"path\":\"M 79.4,172.2 L 80,174.4 L 83.9,176.8 L 89.1,182.4 L 90.2,186.1 L 90.2,186.2 L 90.5,187.6 L 89.4,189.2 L 88.1,185.3 L 82.8,180.1 L 82.3,178.7 L 80.9,181.5 L 77.8,206.6 L 79.8,202.7 L 82,205.3 L 82.1,206.7 L 78.9,206.3 L 77.3,209.7 L 77.3,212.1 L 71.9,237.1 L 69.9,240.6 L 67.6,243.8 L 64.5,246.1 L 67.4,247.5 L 67.6,249 L 68.8,248 L 72,248.6 L 72.8,250.1 L 71.8,253 L 70.5,254.2 L 71.1,255.6 L 73.1,256.1 L 73.3,254.3 L 74.8,253.8 L 74.9,255.5 L 77.9,257.1 L 82.7,258.9 L 85.8,258.8 L 87.1,261.1 L 91,264.4 L 92.2,263.5 L 93.4,264.2 L 96.3,262.7 L 96.4,262.7 L 97,258.4 L 97.8,257 L 99.5,256.6 L 99.3,255.1 L 103.3,250.5 L 102.9,248.9 L 104.2,248.2 L 104,244.6 L 102.6,244.6 L 103.3,243.2 L 102.1,240.3 L 102,240.3 L 98.7,240.2 L 98,238.8 L 100.1,233.3 L 99.8,230.1 L 104.5,228.7 L 104.8,230.2 L 106.1,229.6 L 106.2,228.1 L 106.2,228.1 L 108.1,228.5 L 108.8,227.2 L 113,227.5 L 115.5,226.1 L 119.8,226.6 L 121.1,226 L 122.9,223.6 L 124.3,223.7 L 123.6,222.3 L 125.8,219.6 L 124.6,218.9 L 124.6,217.4 L 128.3,216.4 L 127.1,211.9 L 128.8,210.3 L 131.1,207.1 L 134.1,205.4 L 133.8,203.6 L 136.1,202 L 137.1,196.8 L 141.1,196.4 L 144.5,199.5 L 147.1,198.1 L 150.5,198.2 L 152.2,197.3 L 151.4,195.6 L 153,195 L 153.1,193.3 L 154.3,192.3 L 153.3,191.2 L 157.1,186.5 L 157.5,184.7 L 160.6,185.7 L 159.6,178.8 L 160.5,177.6 L 159.9,174.8 L 157.6,172 L 162.3,167.7 L 161.2,164.4 L 161.4,162.3 L 159.6,158.2 C 158.4,157.3 157.2,156.5 155.9,155.7 L 155.4,153.8 L 152.9,153.7 L 151.5,154.1 L 144.9,152.7 L 144,154 L 138.3,154.5 L 136.8,156 L 136,154.7 L 133.1,155.3 L 131.8,154.7 L 132.6,153.3 L 131.3,152.7 L 130,150 L 128.6,150 L 126.2,147.8 L 126.6,144.9 L 122,138.4 L 121.9,136.8 L 119.2,135.3 L 120,136.8 L 115,137 L 113.6,136.3 L 112.9,133.2 L 111.4,133.4 L 111.3,131.8 L 108.6,130.2 L 105.2,133.1 L 104.1,132 L 99.3,132.1 L 96.5,132.5 L 94.6,134.9 L 88.5,135.3 L 89.6,138.1 L 91.7,140.2 L 94.1,149.2 L 94,152.8 L 95.2,153.8 L 90.7,156.1 L 89.5,155.2 L 86.3,155.3 L 87,153.9 L 82.6,155.6 L 80.3,160.4 L 81.7,160.8 L 83.8,164.8 L 82.4,165.1 L 83.2,167.7 L 81.7,170.7 L 79.4,172.2 z M 101.9,249 L 102,250.4 L 100.8,249.6 L 101.9,249 z M 74.2,157.2 L 74.2,157.1 L 74.7,158.3 L 75.3,158.2 L 77.6,160.2 L 79,159.5 L 76.3,157.8 L 76.3,157.8 L 74.2,157.2 z M 79.9,165.8 L 77.3,164.2 L 76.4,165.5 L 79.7,171.1 L 80.3,169.5 L 79.9,165.8 z \"\n        ,\"name\":\"Nouvelle-Aquitaine\"},\n      \"13\":{\"path\":\"M 242,191.5 L 241.2,193.4 L 242.1,195.5 L 244.3,197 L 244.1,199.9 L 242.5,199.4 L 236.2,201.3 L 235.8,202.7 L 233,203.3 L 232.6,204.9 L 232.4,206.5 L 229.5,206.7 L 228.3,210.1 L 229.8,211.2 L 228.5,212.5 L 226.4,211.8 L 224.8,214.3 L 225.6,215.6 L 230.6,218.5 L 230.5,220.8 L 230,220.9 L 228.8,221 L 226.7,223.4 L 224.1,222.2 L 224,220.8 L 219.3,220.4 L 219.1,217.5 L 217.8,218.6 L 216.6,217.9 L 212.3,219.8 L 210.5,217.7 L 207.6,217.4 L 207.7,219.2 L 209,221.4 L 209,224.2 L 212.2,227.4 L 208,232 L 207,237.2 L 205.4,236.8 L 203.3,239.2 L 203.8,240.5 L 200.9,241.4 L 199,244.4 L 206.1,244.6 L 207.1,245.8 L 206.9,247.2 L 208.7,247.6 L 213.6,247.1 L 212.5,245.9 L 213.1,244.7 L 214.5,244.8 L 216.8,247.5 L 223.4,246.8 L 225.3,251.2 L 230.2,252.4 L 231.6,252 L 234.7,253.8 L 234.6,255.2 L 239,253.9 L 242,254.7 L 242.6,256.1 L 243.6,253.4 L 247.3,254 L 247.3,252.6 L 250.1,251.9 L 251.5,250.7 L 253.4,250.9 L 254.5,248.2 L 252.7,247.3 L 255.8,243.3 L 258.5,242.9 L 260.7,239.1 L 263.5,237.7 L 264.1,235.7 L 271.3,231.7 L 271.5,228.1 L 274.6,223.8 L 275.7,221.6 L 273.7,219 L 267.7,221.1 L 263.1,218.7 L 259.9,218 L 256.8,214.3 L 257.8,211.8 L 255.8,209.1 L 256.9,208.2 L 257.6,205.2 L 257.6,205.2 L 257.7,205.1 L 258.6,204 L 260.4,204.1 L 258.5,199.4 L 255.5,199.2 L 252.9,197.6 L 252.5,194.3 L 251.1,194.2 L 249.9,191.6 L 246.9,192.2 L 245.9,193.2 L 242,191.5 z M 218.4,241.8 L 219.5,243.8 L 221.1,243.1 L 220,245 L 218.4,245.6 L 216.1,243.4 L 216.4,241.8 L 218.4,241.8 z M215.7,217.2l1.2-1.7l-2.3-1.4l-1.3,1.1l-0.6,1.5l1,1.1L215.7,217.2z \"\n        ,\"name\":\"Provence-Alpes-Côte d'Azur\"},\n      \"14\":{\"path\":\"M 280.3,246.2 L 279.4,241.7 L 277.9,241.1 L 276.8,242.1 L 277,250.8 L 272.7,250.2 L 270.9,252.6 L 265.6,254.7 L 265.2,256.2 L 263.8,256.3 L 262.7,257.7 L 262.8,259.4 L 260.9,261.9 L 260.6,263.4 L 261.9,262.9 L 263.8,265 L 261.2,266.9 L 261.7,269.6 L 265.6,271.8 L 264.4,272.6 L 262.9,276.8 L 266.4,275.5 L 266.9,278.4 L 265.6,281.9 L 270.4,282.9 L 267.9,284.6 L 267.8,286 L 270.2,288.2 L 275.8,289.9 L 276.4,291.3 L 277.9,291.9 L 280.9,284.6 L 279.2,284.4 L 280.5,283.4 L 281.6,280.7 L 281.2,273.3 L 283.9,267.4 L 282,254.3 L 279.9,251.5 L 280.3,246.2 z \"\n        ,\"name\":\"Corse\"},\n      \"15\":{\"path\":\"M 141.1,196.4 L 137.1,196.8 L 136.1,202 L 133.8,203.6 L 134.1,205.4 L 131.1,207.1 L 128.8,210.3 L 127.1,211.9 L 128.3,216.4 L 124.6,217.4 L 124.6,218.9 L 125.8,219.6 L 123.6,222.3 L 124.3,223.7 L 122.9,223.6 L 121.1,226 L 119.8,226.6 L 115.5,226.1 L 113,227.5 L 108.8,227.2 L 108.1,228.5 L 106.2,228.1 L 106.2,228.1 L 106.1,229.6 L 104.8,230.2 L 104.5,228.7 L 99.8,230.1 L 100.1,233.3 L 98,238.8 L 98.7,240.2 L 102,240.3 L 102.1,240.3 L 103.3,243.2 L 102.6,244.6 L 104,244.6 L 104.2,248.2 L 102.9,248.9 L 103.3,250.5 L 99.3,255.1 L 99.5,256.6 L 97.8,257 L 97,258.4 L 96.4,262.7 L 102,267.7 L 108.1,266.9 L 109.3,267.9 L 117.4,268 L 118.5,266.9 L 118.4,263.6 L 119.6,263 L 127.9,265.4 L 130.3,267.6 L 133.5,267.4 L 136.3,271.2 L 136.9,269.7 L 138.6,269.6 L 143.8,272.2 L 142.9,274.6 L 147.3,275.9 L 148.5,278.7 L 150.1,278.8 L 152.3,276.8 L 153.9,276.8 L 158.6,277.8 L 160.9,279.6 L 164,279.4 L 164,277.9 L 168.1,275.8 L 171.2,275.2 L 175.5,276.4 L 172.6,272.8 L 172.7,259.1 L 175.5,253.7 L 176.8,252.4 L 176.8,252.4 L 179.5,250.4 L 182.9,250.4 L 186.2,246.7 L 191.7,242.7 L 195.9,241.6 L 197.4,244 L 198.9,244.4 L 199,244.4 L 200.9,241.4 L 203.8,240.5 L 203.3,239.2 L 205.4,236.8 L 207,237.2 L 208,232 L 212.2,227.4 L 209,224.2 L 209,221.4 L 207.7,219.2 L 204.6,217.5 L 203.3,217.5 L 202,218.6 L 201.9,217 L 198.4,219.2 L 194.5,216.7 L 191,209.6 L 190,205.1 L 185.5,201.2 L 184.1,201.1 L 184,202.5 L 180.8,201.9 L 180,199.1 L 178.9,198.2 L 175,201.6 L 174.1,200.4 L 170.7,208.4 L 169.4,205.8 L 169.6,204.3 L 168.4,203.5 L 167.8,201.4 L 165.2,199.4 L 162.8,201.5 L 161.3,206.1 L 159.4,208.5 L 156.3,207.7 L 153.7,209.3 L 152,206.8 L 152.9,203.9 L 151,200.9 L 150.5,198.2 L 147.1,198.1 L 144.5,199.5 L 141.1,196.4 z M102,250.4l-0.1-1.4l-1.1,0.6L102,250.4z \"\n        ,\"name\":\"Occitanie\"}\n    }\n  });\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.russia.js",
    "content": "/** Add Russia Map Data Points */\njQuery.fn.vectorMap('addMap','russia_en',{\"width\":959,\"height\":593,\"paths\":{\"da\":{\"path\":\"m34.939,403.74,2.6516,1.2627,3.6618,0.50507,1.7678-2.0203,2.1466,2.0203,2.3991-1.6415,0.25254-1.7678,1.6415-2.1466,3.0305,0.50508,3.7881-2.9042-0.50508-1.894-4.7982-0.50508,0.75762-3.1567-1.0102-0.63134,0.63135-2.2728-3.1567-2.7779,1.5152-0.50508,3.9143,0.88388,0-1.389-1.0102-1.2627,8.3338-0.25254,4.9245,5.4296,1.2627,1.894-0.37881,2.2728-5.3033-0.3788,0.50508,2.5254,1.5152,3.0304-1.0102,3.5355-2.3991,2.7779-1.2627,0.25254,4.5457,0.75761-5.5558,2.1466-0.50508,2.0203-0.75762,0.50508-3.0305,0.50507-0.25254,4.7982-1.2627,0.88388-1.1364,13.132-9.0914-0.12627-3.6618-2.2728-1.389-0.88388,0-11.617-3.283-5.9346,0.37881-2.9042,1.2627-0.37881z\",\"name\":\"Republic of Dagestan\"},\"sa\":{\"path\":\"M671.25,126.75l-1.44,1.06-1.25,1.63s1.44,0.87,2.16,0.87c0.71,0,2.69-1.97,2.69-1.97l-2.16-1.59zm18.47,12.09c-0.18-0.01-0.4,0.02-0.63,0.07-1.78,0.35-4.81,1.93-4.81,1.93s-1.41,1.1-2.12,1.1c-0.72,0-2.35-0.38-2.35-0.38-0.71,0-2.5,1.25-2.5,1.25l-1.4,1.78s-1.1-0.51-1.1,0.38-0.35,1.96,0.72,2.5c1.07,0.53,1.61,1.06,2.5,1.06s3.22-0.72,3.22-0.72l1.97-0.87,1.97,1.06s0.51-0.9,1.4-1.44c0.9-0.53,3.4-2.31,3.75-3.03,0.36-0.71,0.72-3.22,0.72-3.22s-0.11-1.36-1.34-1.47zm-19.81,7.1c-0.15,0.01-0.29,0.05-0.44,0.09-1.25,0.36-2.85,0.19-3.56,0.19-0.72,0-0.91,0.19-0.91,0.19s-0.88,1.58-1.59,1.93c-0.72,0.36-1.99,0.74-3.07,0.57-1.07-0.18-3.75-1.25-3.75-1.25s-1.93-0.02-1.93,1.59,3.03,3.41,3.03,3.41l1.06,1.4s-2.51,0.73-3.41,0.38c-0.89-0.36-2.65-2.16-2.65-2.16l-3.22-0.72s-2.88,0.2-2.88,1.1c0,0.89-0.68,2.67-0.68,3.56s-0.9,3.04,0.53,3.94c1.43,0.89,1.79,3.03,1.97,3.75,0.17,0.71,0.7,1.77,2.84,2.31,2.14,0.53,4.29,0.53,5,1.06,0.71,0.54,1.77,1.07,2.84,0.53,1.08-0.53,1.82-2.65,1.82-2.65l2.12-1.97s1.61-1.44,2.5-2.16c0.89-0.71,2.7-0.54,4.13-1.44,1.42-0.89,2.31-3.75,2.31-3.75v-5l-0.38-4.43s-0.68-0.58-1.68-0.47zm106.25,5.62c-0.45,0.09-0.75,4.1-0.75,4.1l-7.32,1.65-3.28,0.63-4.53-6.06-7.84-0.13-0.38,0.87-5.68,1.66-1.76,2.13-6.06,6.31v2.78l-2.15,1.91-3.29,5.03-4.93-2.38-3.41-0.37-1.75,2h-4.56l-3.41,1.78-1.75-1.53,4.28-2.91-2.28-1.62-3.03-0.13-8.84,4.03,1.9,5.44-0.87,4.78-2.66,2.91-1.65-2.13,3.03-7.47-1.75-0.37-2.66,4.03-3.03,2.03-1-0.75,1-3.16,2.28-0.74,2.91-2.66-7.1,1.75-9.22,5.31-6.68,0.25,3.65,3.66-3.65,3.4-0.5,3.03,0.37,1.16,3.91-1.78-1,4.03,4.81,2.91-0.91,2.9-2-1.37-3.68,1,1.28,3.41,2.4-0.26-1.03,2.66-3.9-0.5-4.28-1.66-3.53,0.26-2.41,3.15-0.63,4.06h-6.46l-1.76-1.53-2.4-2-0.5,4.41,0.87,0.87-0.12,1.41,1.65,0.87-0.9,2.54,1.66,6.18-3.29-1.4-1,1.15-9.87-5.31v-4.94l-2.25,0.13-1.78,2.41-2-3.41,3.65-0.63-0.5-2.9-4.43-1.66,0.75-0.87,0.12-2.53-5.28-4.04-5.31-2.53-1,3.66-7.35,0.65-2.37-1.65-4.19,2.15v2.13l4.19,4.69-10.94,5.31-10.28-1.16,0.44-4.4-12.07,0.19-3.96,3.78h-2.85l-1.09,1.09,2.66,2.87h-2.13l-2.91-2.06,1.19-2.09-0.87-1.38-1.54-1.78,0.07,2.28-1.5,1.07-3.85-1.32s-2.9,3.53-2.84,3.78c0.06,0.26,2.66,3.29,2.66,3.29l-1.41,3.34,1.59,2.09,0.19,2.78,7.38,5.82-0.32,5.47,2.53,1.9,1.63,2.53-2.53,2.72-4.41,3.03-0.69,2.63-4.81,2.78,0.25,6.12-2.25,1.1-2.97-1.28-5.65,4.75-4.44,0.09,0.06,1.97,5.38,6.59,1.78,20.1-6.35,1.97,4.19,3.4-1.78,4.19v1.25l7.16,8.84-4.57,6.69,0.97,1.6-2.4,1.87,0.09,2.25,5.63,0.34,0.71,0.72,9.1,0.19,3.31,3.31-0.53,1.6-3.31,0.34,0.19,3.94,4.03-1.06,5.06,6.59-0.53,5.53,3.84,5.19-1.97,3.4,0.53,2.13,7.69,6.53v4.37l-3.75,6.44,0.28,10.78,3.85,4.13,3.37-3.94,3.75,0.09,1.88-1.34,2.68-0.62,2.41-2.07,3.56,3.85,0.38,2.31,4-5.06,0.09-4.13,5.38-2.75-0.29-6.25,2.32-4.12,3.84-1.5,4.91,1.06,6.15,4.91,0.57,3.84,1.31,0.87,4.03-1.4,2.5-2.06,2.69,1.06,0.87,4.47,3.13,4.56,2.15,1.78v3.03l2.32,1.35,0.71,4.71,3.94,0.19,0.97,1.35,1.53,4.09,8.38-0.25,3.31-1.97,5.53,1.16,3.56,1.97,11-0.72,5.54,3.75,2.21,0.53,5.19-2.6h2.6l3.03,2.26,2.78-0.19,3.22-3.94,5.68-0.06,2.5-1.97h7.88l0.19-3.75,10.68-5.09,0.82-3.04-4.28-4.12,2.31-1.69,0.62-4.03-1.34-1.69-2.41,0.38-2.03-1.44,2.75-4.03-2.84-1.6,0.25-1.87,1.53-1.97-1.44-1.44-3.47-1.15-0.53-1.6,3.38-1.43-1.88-0.91-0.19-5.25-0.87-0.62-0.19-1.88,2.78-1.25-1.62-1.25v-2.94l5.47-1.97,3.12,0.16,0.25-1.78,6.53,0.09v-2.75l-1.25-1.53,1.16-1.25,3.47-0.62,3.31-2.22,1.34-6,5-0.44,0.1-2.06s-5.29-4.9-5.47-5.25c-0.18-0.36-0.88-3.94-0.88-3.94l-3.56-2.59v-5.97l2.94-7.16-1.69-9.19,0.78-3.12,13.5,0.72,0.25-5.28,5.19-1.16,3.47,1.87,0.81-2.31-2.41-3.69,1.69-0.62,0.19-2.75-7.16-8.5,0.1-4.37-3.13-1.5-0.09-4.04-1.78-1.15,1.09-2.13,3.81-0.47,1.35-1.78,4.28,0.38,0.09-2.44-3.37-1.5,0.15-3.31,5.47-0.53v-3.57l5.63,0.44,5.62-8.03,0.44-2.5-6.06-6.06-0.19-1.88,2.31-3.4-0.97-1.79-3.31,0.19-1.5-2.34,4.72-1.41-0.09-1.53-2.07-0.97-0.25-1.34,2.13-3.75,5.72-1.97-0.78-3.56,5.15,0.68-0.62-5.43,1.34,0.28,0.19-3.59-2.69-0.63-2.94-4.53-7.59-0.28-4.19-1.88,0.72-3.47h-3.12l-0.19-1.62,8.12-10.44,1.07-7.84s-9.81-5.72-10.25-5.63zm-135.1,8.56c-0.12,0.03-0.23,0.08-0.34,0.19-0.89,0.9-1.07,1.79-0.53,2.5,0.53,0.72,1.06,1.63,1.78,2.35,0.71,0.71,2.31,1.25,2.31,1.25s0.71-1.1,0.53-1.82c-0.18-0.71-1.97-2.84-1.97-2.84s-0.94-1.78-1.78-1.63zm28.94,7.35l-2.31,0.34s-1.07,0.91-1.25,1.63c-0.18,0.71-0.9,1.24,0,1.78,0.89,0.53,3.75,1.25,3.75,1.25s1.6-0.02,1.78,0.87c0.18,0.9,0.18,1.8,0,2.69s-0.53,1.78-0.53,1.78l0.72,0.72,1.93-0.53s0.74-0.72,1.82-0.72h2.65s1.44-0.53,1.97-1.25c0.54-0.71,1.97-1.25,1.97-1.25h2.69s1.41-0.52,0.87-1.59c-0.53-1.07-1.76-1.62-2.65-2.16-0.9-0.53-3.22-2.31-3.22-2.31h-2.5l-3.6,0.34-2.84,0.38-1.25-1.97zm-17,10.15c-0.12,0-0.22,0.01-0.31,0.04-0.72,0.17-1.44,1.4-1.44,1.4s0.37,1.78,2.16,1.78c1.78,0,2.3,0.55,2.65-0.34,0.36-0.89-0.87-2.31-0.87-2.31s-1.37-0.55-2.19-0.57z\",\"name\":\"Sakha Republic\"},\"so\":{\"path\":\"m45.583,387.43-2.2728,2.6516-4.1669-2.6516-2.0203,1.1364-0.37881,5.8084-1.1364,1.389-2.2728-0.12627-5.9346-2.6516-3.0305-3.283,0.12627-4.9245,4.672,0.75761,0.37881-0.88388,2.5254-0.12627,3.283,1.5152,4.0406-1.894s-0.12627-3.5355,0.75761-2.7779c0.88388,0.75762,1.389,1.2627,1.389,1.2627l0.25254,3.5355z\",\"name\":\"Republic of North Ossetia–Alania\"},\"kb\":{\"path\":\"m20.982,375.86c0.26786,0.35715,2.5893,4.7322,2.5893,4.7322l0.98214,3.9286,4.6429,1.1607,2.8571-1.0714,3.2143,1.5179,4.375-1.875,0.26786-3.125-5.9821-2.3214-1.875-5.0893-2.2321-1.1607-4.375,0.71429z\",\"name\":\"Kabardino-Balkar Republic\"},\"kc\":{\"path\":\"m13.482,361.39,2.2321,8.4821,5.0893,6.25,4.375-2.6786,5.3571-0.89286,0.08929-3.3928,3.75-1.0714-6.6964-7.2321-2.2321,2.4107-2.8571,0.26786-1.6071-4.5536,0.44643-2.1429z\",\"name\":\"Karachay–Cherkess Republic\"},\"st\":{\"path\":\"m33.929,367.73-3.4821,0.98215,0.17857,3.75,1.5179,1.25,1.7857,4.6428,6.5179,3.0357,1.3393,1.3393,0.08929,3.0357,3.8393,1.7857,1.6071,2.5893,3.2143,0.625,0.71429-1.4286-2.8571-3.125,1.5179-0.53572,3.5714,0.80357,0.17857-1.1607-0.98214-1.3393,7.7679-0.0893,1.6964-1.5179,0.26786-3.5714-5.2679-7.5-0.17857-9.4643-3.4821-6.0714-4.9107-0.98214-1.5179-2.7679-5.0893-5.7143-0.98214-0.625-1.5179,1.3393-2.7679-2.0536-1.4286,0.80357-0.80357,1.0714-0.08929,1.6071,0.35714,1.3393,0.35714,1.1607-0.71429,1.6071-0.98214,1.4286-1.9643,2.2322-1.875,1.0714-0.71428,0.98214-0.98214,2.3214z\",\"name\":\"Stavropol Krai\"},\"ks\":{\"path\":\"m21.607,356.48-0.08929,2.0536,0.98214,3.8393,0.35714,0.80357,2.2321,0.0893,3.75-4.5536,1.4286-1.9643,1.9643-1.0714,2.6786-4.0178-0.26786-3.3929,0.17857-1.6964,0.89286-1.5179,1.3393,0,1.7857,1.5179,1.3393,0,2.5893-3.0357,0.08929-1.9643-0.89286-0.98214-2.2321-1.3393,0.17857-2.9464,2.8571-3.125,0.08929-1.4286-2.7679-2.9464-3.75-0.71428-0.80357-0.89286,1.6071-1.25,0.17857-2.4107-2.1429-1.6072-2.5893-0.80357-1.6071-1.6964-1.25-0.98214-0.89286-0.0893-1.3393,2.2322-0.625,0.98214,1.0714,1.4286-0.35714,1.5179-0.80357,0.625-2.7679-0.26786-0.89286-0.89286-1.9643,0.0893-1.875,0.71429-3.0357,1.7857-1.6964,0-1.3393-1.4286-1.6071-0.625-1.1607-1.4286,0-2.6786-2.2321-0.26786-1.25,0.625-0.35714,2.9464-0.089286,13.214,0.71429,5.8929,0.98214,3.6607-0.089286,2.3214-0.625,2.7679-0.089286,2.4107,0.17857,2.0536,1.5179,0.89285,0.71429,0.625,1.6071,1.5179,0.89286,1.0714,0.89286,0.89286l7.947-4.27-0.804-1.25-0.357-1.43-5.089,2.68h-1.875l-1.25-1.875,0.35714-3.5714,6.25-1.4286,2.7679-2.3214,0.71429-2.5893-1.3393-0.80357-1.9643,0.44642-1.1607-1.5178-0.71429-2.6786-1.3393-1.7857-0.17857-1.25,0.08929-1.1607,1.3393-0.80357,1.3393,0.625,1.0714,1.3393,1.0714,1.9643,1.3393,1.7857,2.3214,1.3393,1.6964,0.89285s0.625,0.26786,0.71429,0.625c0.08929,0.35715,0.89286,2.6786,0.89286,2.6786v4.0178l-0.08929,1.3393-1.0714,1.0714-1.875,1.5178-1.6071,1.4286z\",\"name\":\"Krasnodar Krai\"},\"ro\":{\"path\":\"m37.5,323.45,2.0536,0.98214,1.4286-0.17857,0.625-0.89286-0.44643-1.1607-1.25-0.89286-1.9643-1.3393-0.89286-1.1607-0.35714-0.71428,1.0714-1.4286l2.231-1.08,1.6071-0.26786,1.0714,0.35714,1.4286,1.3393,1.5179,0.35714,1.6964-0.89286,0.89286,0.44643,1.072,1.06,1.339,1.79,0.268,1.33,1.607-0.08,1.3393-0.80358,1.6964-0.0893,1.3393-0.0893,0.35714-1.5178,0.53571-1.4286,1.25-1.6071,1.3393-1.0714,1.6964,1.0714,0.71429,0.35714,0.89286-1.875,0.44643-0.71428,2.6786-0.26786,1.875-1.6964,2.3214-0.17857,2.0536,1.1607,2.1429,1.25,0.98214,0.53571,3.9286,0.0893h2.2321l1.5179-0.98215h1.3393l0.71429,0.625,0.26786,1.6964-0.08929,1.9643v1.875l-0.08929,1.0714-0.981,1.34-1.25,0.98214-1.25,0.71429-0.80357,0.35714-0.35714,1.25-0.44643,1.6072-0.08929,1.4286-0.44643,1.1607-0.625,1.4286-1.4286,1.5179-1.6964,0.53571h-3.125l-1.608-0.36-1.518,0.53-0.625,1.97-0.982,0.62-0.80357,0.53572,0.17857,0.89285,1.3393,1.4286,0.71429,1.4286-1.1607,1.4286-1.3393,0.89285-0.80357,1.7857-0.08929,0.80357,0.98214,0.53571,1.1607,1.1607,0.625,1.0714,0.80357,0.80357,0.71429,1.3393v1.0714l-0.71429,0.80357,0.53572,0.625,1.4286,0.35715,0.625-0.53572,0.71429-0.0893,0.35714,0.98214v1.4286l-1.3393,1.3393-2.1429,1.0714-2.0536,1.1607-3.3929,0.0893-0.80357,0.80357-1.3393,0.80357-1.696,0.46-1.429-0.71-1.696-0.71-0.893-0.9-0.178-2.23-0.179-1.52-1.696-2.14-1.1607-0.80357-0.17857-1.25-0.80357-0.89286-1.7857-0.0893h-2.7679l-2.8571-0.0893-1.3393-0.17857-1.6071-1.7857-0.98214-0.71429v-0.89286l1.3393-1.5178v-1.5179l-0.625-1.25-1.875-1.4286-0.71429-0.625,0.26786-2.2322,2.7679-3.2143,0.08928-1.6071-1.9643-2.2322-1.3393-0.89285-2.411-0.55-1.0714-0.35714-0.08929-0.71429,1.0714-1.0714,0.26786-1.1607z\",\"name\":\"Rostov Oblast\"},\"kk\":{\"path\":\"m44.554,348.71,0.98214,1.6071,1.1607,1.0714,1.1607,1.6964,0.80357,1.1607,1.1607,0.71429,2.5893,0.44643,1.3393,0.625,0.98214,1.6071s0.98214,1.7857,1.25,2.2321c0.26786,0.44643,0.98214,2.4107,0.98214,2.4107l0.17857,4.9107v3.2143l0.89286,2.2321,3.3036,4.1964,1.25,2.0536-0.17857,2.5893-1.4286,1.875,0.89286,1.3393,4.375,4.7321,0.53571,1.25,0.35714,0.98215,0.89286,0.53571,1.4286,0.0893,1.6071-0.26786,1.7857-0.53572,2.2321-0.89285,2.3214-0.26786,0.713-0.71,0.625-2.15-0.268-1.16-2.232-1.34-0.982-0.71,0.08928-1.3393,1.0714-0.625,1.7857,0.0893,1.4286-1.25-0.53572-0.71428-0.71428-2.0536-0.268-1.7-0.179-1.16h1.0714l1.6964,1.25,1.7857,0.80357,2.6786-0.17857h0.89286l0.53571-1.1607-0.17857-2.4107-0.08929-3.8393v-6.3393-0.98214l-0.08929-2.2321,2.9464-2.8572,0.17857-1.3393-1.4286-0.625v-3.2143l-1.0714-1.1607-1.1607-0.35715-2.5-0.17857-0.625-1.4286-0.17857-0.80357-1.25,0.26786-0.625,1.0714h-1.3393l-1.25-0.0893-1.071-0.98-0.804-0.71-2.321-0.27-0.98214,0.35715-0.71429,0.80357-0.71429,0.35714-0.26786,1.1607-0.35714,0.80357,0.35714,0.625,1.0714,0.35714,1.0714-0.44643,0.89286,0.35714,0.08929,0.98215-0.44643,1.5178-5,3.125-3.3929,0.26786-2.3214,1.3393-1.5179,0.53571-3.8393-1.7857-0.53571-0.35715-0.08929-3.3928-0.71429-1.4286-2.3214-2.2322-0.625-1.25-1.9643-0.80357h-3.5714z\",\"name\":\"Republic of Kalmykia\"},\"as\":{\"path\":\"m86.873,350.94,1.6415-1.389,1.1364-0.63135,1.7678,1.2627,2.0203,0.63135,2.2728,0.50508,0.88388,1.0102,2.1466,0.88388,0.75761,1.1364,0.63134,1.1364,0,1.389,0,0.88389-1.5152,0.3788-1.1364,1.389-0.12627,1.0102,0.63134,1.389,1.0102,1.1364-0.37881,2.1466-0.75762,1.0102-1.7678,0.88389-0.25254,1.1364,0.50508,0.88388,1.7678,1.1364,2.2728,1.5152,1.389,1.6415,0.63134,1.0102,0,1.5152-1.0102,1.1364-0.25254,2.0203-1.0102,1.0102,0,2.2728,0,2.7779-0.75761,0.3788-1.7678-0.3788-1.894-0.75762-0.63134,0.37881-0.37881,2.1466,1.6415,2.1466,1.1364,1.2627,0.88388,1.0102,0.50508,0.63134,0.12627,1.2627-3.9143,0.25253-3.0305,0.63135-2.1466,0-1.894-1.2627-2.0203-1.5152-5.4296,0-1.0102-0.37881-1.1364-1.1364,0.37881-2.9042-0.88388-1.0102-2.2728-1.6415,0-1.6415,1.0102-0.3788,1.5152,0,1.389-1.0102-0.63134-1.389-0.75761-4.0406,0.63134-0.3788,1.2627,0.75761,2.9042,1.389,2.0203-0.25254,1.2627-0.12627,0.50508-1.6415-0.25254-5.4296,0.12627-5.0508-0.25254-4.2931,2.1466-2.2728,1.0102-1.1364,0.12627-1.389-1.2627-0.50508-0.25254-2.1466z\",\"name\":\"Astrakhan Oblast\"},\"ad\":{\"path\":\"m21.786,356.21,2.4107-1.4286,2.5-2.6786,0.35714-2.1428-0.26786-3.9286-1.0714-2.7679-2.9464-0.98214l-2.412-1.78-2.232-3.75-1.5179-1.1607-1.3393,0.71428-0.17857,2.1429,1.6071,1.875,0.80357,2.5893,1.1607,1.6964,1.6071-0.35714,1.5179,0.44643-0.44643,2.9464-2.9464,2.3214-3.394,0.71-2.8571,0.35715-0.17857,3.8393,1.0714,1.7857h1.7857l5.3571-2.9464,0.35714,1.7857z\",\"name\":\"Republic of Adygea\"},\"vl\":{\"path\":\"m85.893,313.18,1.5179-0.98214,1.875-0.0893,1.1607-1.0714,1.1607-1.6072,0-1.25,1.1607-0.98214,1.9643,1.25,2.5,1.9643,3.3036,2.1428,3.9286,1.5179,1.4286,1.5179,0.625,2.1428,0.44643,1.4286,2.8571,0.35714,0.44643,1.4286,2.5893,0.80357,1.7857,1.7857,1.6964,1.6964,0.17857,2.2322-1.5179,1.25-1.6071,2.2321-1.4286,1.3393-0.26786,1.25,0.89286,2.2321,2.9464,1.875,1.6964,1.875,1.7857,1.1607,1.25,3.3036,1.0714,1.875,0.0893,1.25-0.71428,0.53572-1.3393,0.44643-0.71429,0.53571-2.8571,0.26786-4.6429-0.0893-1.6964,0.26786-0.71429,1.6071,0,2.8572-0.17857,1.1607-1.6964,1.25-1.3393,0.98214-4.0178-0.0893-1.0714-0.0893-1.3393-3.0357-1.4286-1.0714-1.875-1.0714-1.0714-0.625l-2.256-0.46-2.054-1.25-1.071-0.18-1.1607,0.625-0.98214,0.71429-1.25,0.26785-2.1429-0.0893-0.89286-1.1607-0.35714-1.25-1.4286,0.26786-0.89286,1.1607h-1.25l-1.875-0.71428-1.25-0.80357-1.3393-0.35715-1.4286,0.17858-1.4286,1.25h-0.89286l-1.4286-2.5-1.25-1.4286-1.0714-0.71428,0.448-1.44,0.893-1.52,1.607-1.43,0.179-0.89-1.6964-2.1429-0.44643-1.0714,1.4286-0.80358,0.625-1.875,0.625-0.53571,1.25-0.35714,1.6071,0.0893h3.0357l1.7857-0.625,1.9643-2.5893,0.89286-4.0179,0.625-1.4286,2.8571-2.0536,1.1607-1.6964,0.35714-3.3036v-2.2322z\",\"name\":\"Volgograd Oblast\"},\"vn\":{\"path\":\"m70.089,310.77,0-6.0714,0.08929-1.1607,3.75-3.2143,2.5-3.6607,1.3393-1.4286,0.35714-1.875,2.4107-0.71428,0.35714-2.5893,0.625-1.7857,1.0714-0.35714,0.625-2.0536,1.3393-1.7857,1.1607-1.0714,0.98214-0.53571,0.89286,1.1607,0.44643,0,0.71429-1.0714,0.53571-0.71428,1.1607-0.17857,0.89286,0.89285,1.25,1.1607,1.4286,1.4286,1.1607,1.5179,0.80357,0.89285-0.26786,2.1429,0,1.6071,1.875,1.0714,2.3214,1.3393,0.80357,1.3393-0.0893,1.7857-0.89285,1.5178-0.44643,0.98215,1.5179,1.25,1.875,1.7857,1.9643,2.2321,1.3393,1.6964,1.1607,1.9643-0.26786,2.3214,0,2.0536-2.1429,1.0714-0.71428,0.17857-4.2857-1.875-2.6786-1.7857-2.1429-1.4286-1.6964-1.1607-0.53571-0.17857-0.71429,0.80357-0.44643,1.25-1.4286,1.9643-1.6964,0.44643-2.8571,0.80357-3.5714,1.1607-3.2143,0.0893-2.5-0.17857-2.3214-1.25-2.3214-1.0714z\",\"name\":\"Voronezh Oblast\"},\"bl\":{\"path\":\"m63.304,272.29-5.4464,3.3036,0.08928,2.6786,1.6964,1.875,0.08929,3.125,0.44643,1.6964,2.8571,1.6071,2.8571,0.44643l1.608,2.23-2.5,3.3036-0.35714,2.1429,1.0714,1.6071,2.3214,1.5179,0.17857,2.9464,1.1607,1.5179,0.71428,0.89285,4.7321-4.375,3.75-5.4464,2.0536-0.89285,0.80357-4.1072,1.0714-0.89285,0.53571-1.3393-2.5-2.8571-3.5714-4.1071-2.7679-0.26786-2.9464-1.1607-2.6786-1.6964-2.5893-1.6072-1.9643-1.6071z\",\"name\":\"Belgorod Oblast\"},\"ky\":{\"path\":\"m63.482,271.84,0-4.6429l-0.357-1.61-1.786-1.97-0.714-1.07,1.3393-1.0714,3.75-1.3393,2.7679-1.3393,2.6786,0.0893,0.53571,1.0714,1.25-0.0893,1.7857-1.1607h0.80357l0.98214,0.44643,1.4286,1.6071,0.53571,0.80357,0.08929,1.6964,1.0714,0.89286,1.0714,0.71428h0.89286l1.0714,1.25,0.17857,3.2143v2.4107l-0.89286,0.98214v1.5179,1.1607l1.0714,1.25,1.1607,0.98214,0.89286,0.17857,1.5179,0.53571,1.0714,1.6072,1.6071,1.5178-0.71429,1.1607-0.80357,0.89286-0.89286-0.80358-1.9643,1.25-1.4286,1.1607-0.53571,0.80357-3.4821-4.1071-2.2321-2.3214-0.98214-0.53572-3.3036-0.625-2.8571-1.5178-3.6607-2.1429-2.4107-1.9643z\",\"name\":\"Kursk Oblast\"},\"or\":{\"path\":\"m74.732,258.27,1.0714-1.875,2.2321-0.26786,0.89286-1.6071,0.89286-0.53572,1.9643,0.89286,1.6964-0.0893,1.6071-0.71429,1.0714-1.5179,0.89286-0.53571,0.98214,0.17857,1.3393,0.98214,1.9643,0.89286,1.1607,0.89286,0.35714,0.89285,0.71429,1.3393,0.17857,2.0536,0,3.6607,0.98214,1.7857,1.4286,1.875,0.80357,1.25,0.71429,1.7857-0.26786,1.5179-3.9286,1.875-1.9643,0.98214-1.0714,2.1429-1.875,1.0714-1.875,1.0714-2.4107-0.89286-1.9643-1.6071-0.44643-1.6964,0.44643-1.9643,0.44643-0.89285,0.08928-4.4643-0.89286-1.6964-1.7857-0.53571-1.7857-1.4286-0.08929-1.6072-1.3393-1.5178-1.6071-1.6964z\",\"name\":\"Oryol Oblast\"},\"lp\":{\"path\":\"m86.875,278.45,1.5179,1.875,1.0714,0.89286,1.1607,0.71428,1.1607,1.0714,2.5,2.2321,1.25,1.5179,0.625,1.4286-0.44643,2.5893,0.53572,0.625,2.5,1.3393,1.875,1.7857,1.0714-0.17857,1.0714-0.625,0.44643-0.80357,0.0893-5.8036,0.35714-0.71428,1.4286-0.80357,2.3214-0.17857,2.0536-1.1607,1.3393-0.44643,0.17857-1.6964,0.625-1.3393,1.25-1.5179-0.80357-1.1607-2.6786-0.98215-0.53571-0.53571-0.17858-0.71429,1.0714-1.3393,0-1.6071-2.1428-0.35715-1.0714,0.44643-1.6072,0.80357-0.98214,0.89286-1.1607,0.625-1.4286,0.0893-1.3393-1.5179-1.6964-1.6964-0.80357-0.98214-2.4107,0.89285-3.125,1.6964-1.1607,1.6072-1.6071,1.4286z\",\"name\":\"Lipetsk Oblast\"},\"tl\":{\"path\":\"m93.482,256.3,3.2143-2.0536,0.98214-0.17857,1.6071,0.80357,0.98215-0.80357,0.71428-1.0714,3.125,0,1.6072,0.625,2.0536,0.35714,1.4286,0.80358,2.4107,0.35714,1.4286,0.71428,0.53572,1.0714,0.98214,1.0714,1.25,1.4286,0.71429,1.6072-0.35715,1.6964-0.98214,1.1607-0.71428,1.6964-1.3393,1.9643-1.6964,2.0536-1.0714,1.875-0.71428,0.98215-0.53572,0.35714-1.7857,0-2.5,0.89286-1.5179,1.0714-1.3393,0.26785-2.0536-1.3393-2.0536-2.5893-0.26786-2.0536-0.53571-1.4286-1.6071-2.5l-1.413-2.14-0.179-2.23z\",\"name\":\"Tula Oblast\"},\"bn\":{\"path\":\"m67.679,258.62,0.26786-1.7857,2.3214-1.5179,0.44643-1.1607,0-1.4286-1.6071-1.9643-1.7857-2.1429-1.6964-1.9643-2.3214-1.875-1.5179-0.89286-1.6964-0.26786-0.89286-1.1607,0.17857-2.3214,1.3393-1.6071,3.125-2.1429,2.6786-1.875,0.89286-1.7857,0.98214-0.71428,1.6964,0.26786,0.625,1.25,0.625,1.5178,1.0714,2.2322,1.1607,0.80357,5.8929,0.26785,2.1429-0.35714,1.4286,0.53572,3.125,0.89285,2.3214,0,0.71429,1.9643,0,2.2321-0.17857,1.1607-0.98214,1.5178-0.71429,0.53572-0.26786,1.4286,0.26786,1.5179,0,1.25-0.80357,1.4286-1.4286,1.5178-1.7857,0.71429-1.6964,0.17857-1.7857-0.71428-1.4286,0.71428-0.26786,0.89286-2.4107,0.80357-1.0714,1.4286-1.3393,1.25-1.4286,0.17857-1.4286-0.71428z\",\"name\":\"Bryansk Oblast\"},\"kj\":{\"path\":\"m89.196,239.61,1.6071-1.25,1.6071-1.3393l1.161-0.27,1.429,0.63,0.80357,1.4286,1.0714,1.25,1.7857,0.80357,1.7857,0.35715,3.125,0.0893,1.875-0.0893,1.6071-1.0714,2.4107-0.0893,1.4286,0.44643,0.98214,2.0536,0.26786,1.4286,1.25,0.625,1.6071,0.98215,0.98214,0.80357,0.53572,1.25-0.53572,2.0536-1.0714,1.7857-1.4286,1.9643-1.1607,1.25-0.89286,0.44643-3.75-1.25-2.6786-1.0714-2.6786,0.0893-1.875,0.44642-1.0714,1.25-1.5179-0.44642-1.0714,0.0893-1.0714,0.80357-2.0536,1.0714-0.89286-0.89286-1.0714-0.80357-1.9643-1.25-1.5179-0.89285-0.89286-0.44643v-1.0714-2.4107l-0.08929-0.625,1.1607-1.6964,1.0714-1.875v-1.7857l-0.26786-1.6071z\",\"name\":\"Kaluga Oblast\"},\"sm\":{\"path\":\"M79.375,237.55,80,235.95,80.179,234.52,79.732,233l-0.08928-1.4286,1.5179-1.3393,0.71429-1.6071,0.08929-3.125,0.35714-1.875,2.4107-2.5,2.5-1.9643,1.875-1.7857s1.875-1.3393,2.2321-1.5179c0.35714-0.17857,2.5-1.5178,2.5-1.5178l2.5,0.0893,3.0357,3.4822,1.875,3.4821,2.5,3.6607,1.4286,0.89286,2.7679,0.53571h2.0536l0.80357,0.71429,1.1607,1.875,1.1607,1.3393,1.25,1.6071,1.0714,1.4286,0.17857,1.3393-0.98214,1.25-1.875,0.89285-1.875,0.53572-0.89286,1.25-0.44643,0.89285-1.875,0.44643-1.7857,0.625-1.6072,0.35715h-3.0357l-3.75-0.80358-1.7857-1.7857-1.4286-1.3393-1.1607-0.26785-1.1607,0.71428-2.2321,1.5179-1.1607,0.44643-1.7857-0.44643-4.1071-0.98214-2.4107-0.35715z\",\"name\":\"Smolensk Oblast\"},\"mc\":{\"path\":\"m116.07,234.16,3.5714,0.26785,2.3214-0.89285,1.4286-0.44643,0.53571,0.625,0.0893,1.7857,0,1.1607-0.17857,1.3393,1.5178,0.89286,2.9464,0.44643,1.7857,0.89285,2.0536,0.89286,2.7678,0.89286,1.7857,0.26786,1.25,0.53571,0.26786,1.6071-0.0893,1.5179-0.44643,1.6964-1.5179,0.625-2.1428,1.1607-1.6072,1.3393-0.0893,1.25-0.625,1.7857-1.1607,1.5179-0.35714,1.6071,0.17857,1.6072,0.0893,0.89285,1.1607,1.0714,1.0714,0.625,1.1607-1.0714,0.625,0.44643,0,1.5179-0.0893,3.2143-0.44643,1.1607-1.3393-0.44643-1.875-0.17857-1.6072,0.17857-0.80357,0.89286-2.0536,0.0893-1.6071-0.35714-1.25-0.71429-1.0714-1.1607-1.6071-0.625-1.6964,0-0.44643,0.80357-0.17857,1.1607-1.0714,0.53571-1.4286,0.0893-0.80357-0.80358-0.17858-0.625,1.1607-2.4107,0.26786-1.9643-0.53572-1.6964-1.1607-1.5179-1.1607-1.5179-1.0714-0.89286,0.625-1.25,2.5-2.9464,1.1607-2.6786-0.71429-1.7857-1.6071-1.6071-1.6071-0.98215-0.53572-0.35714-0.625-1.875-0.80357-1.25-0.80357-0.80357,0.625-1.5179,2.5893-1.3393z\",\"name\":\"Moscow Oblast\"},\"rz\":{\"path\":\"m114.55,265.59-1.9643,2.6786-2.1429,3.125-0.625,2.7679-0.80357,1.7857,0.17857,0.80357,1.6964,0.71429,1.9643,1.3393,0.44643,1.5179-0.26786,0.89286,1.4286,1.1607,1.9643,0,1.1607,0.71429,0.0893,1.875,0.44643,1.1607,1.25,0.44643,1.5179-0.625,1.9643,0,1.5179,0.98214,0.625,1.7857,1.0714,1.1607,2.6786-0.17857,3.125,0,2.9464-2.0536,3.0357-2.9464,1.5179-2.2321,1.0714-1.7857-0.98214-2.2321-0.53572-3.125-2.0536-2.0536-1.25-1.6964-0.44643-2.8571-0.53571-1.6072-0.35715-0.98214-2.1428-0.35714-3.4822,0.26786-0.625,0.80357-2.1428-0.17857-1.875-0.71429-1.875-1.0714-1.9643-0.89286-1.0714,0.35715-0.80357,1.4286-1.4286,0.89286-1.6071-0.44643z\",\"name\":\"Ryazan Oblast\"},\"tb\":{\"path\":\"m112.77,279.43-1.6964,2.1429-0.35714,1.7857-0.80358,0.89286-2.6786,0.98214-1.875,0.44643-1.5178,0.71429-0.71429,1.4286,0,2.1429,0.26786,2.3214-0.71429,1.875-1.5179,0.53571-0.44642,1.4286-0.44643,1.6964-0.625,1.1607,0.08928,0.625,2.3214,2.1429,2.2321,2.1429,1.6072,2.2321,1.4286,2.0536,0.98214,0,2.1429,0,1.9643-1.25,2.5-1.25,1.6964-1.0714,4.0179-0.26785,1.0714-0.98215v-3.6607c0-0.35714,0.0893-2.3214,0.0893-2.3214l1.5179-1.1607s0.71429-0.71429,0.80357-1.0714c0.0893-0.35714-0.26785-4.6429-0.26785-4.6429l1.4286-1.0714-0.80357-2.1428-1.7857-1.4286-2.3214,0.26786-0.89285,0.625-1.1607-0.80357-0.89286-1.3393v-1.3393l-1.875-0.80357h-1.3393l-0.89286-1.0714-0.26786-1.3393z\",\"name\":\"Tambov Oblast\"},\"kn\":{\"path\":\"m44.107,152.55,0,2.2322,0.53571,2.5,2.0536,5.1786,1.4286,3.4821,1.9643,3.6607,2.5,1.0714,3.75-0.44642,1.9643-1.3393,0.625-1.7857-0.44643-4.2857-0.89286-2.8571-1.5179-1.6071-2.4107-0.53572-0.98214-0.71428,0-3.0357-0.80357-1.4286-1.6964-1.6071-1.6071-0.26786-0.35714,1.25-0.625,1.3393-0.625,0.89285-1.4286-0.35714z\",\"name\":\"Kaliningrad Oblast\"},\"ps\":{\"path\":\"m95.268,213.98,0.35714-2.1428-0.26786-2.1429-1.4286-1.875-1.3393-1.4286-0.08929-1.6964,0.98214-0.71429,0.17857-1.6964-0.89286-0.98215-1.25-1.875,0-4.1964,1.5179-0.89285,3.75-2.2322,0.80357-2.4107,0.53572-1.7857,1.875-1.25,2.4107-0.0893,1.3393-1.6071,0.98214-1.6964s1.25-0.625,1.6072-0.80357c0.35714-0.17857,2.8571-0.71429,2.8571-0.71429l1.5179-0.0893,1.0714,0.53571-0.625,1.5179-0.71428,0.89285-0.17857,0.98215,1.6071,0.26785,1.25-1.7857,0.98214-2.0536,1.1607-1.5179,1.6071-0.71428h1.6071l1.5179-1.5179,1.1607-0.625h1.4286l0.98214,0.98214,0.625,1.5179,0.98214,1.6071-0.26786,1.6964-0.89285,0.98214-0.35715,1.3393-0.80357,1.6071-0.17857,1.1607h-1.4286-0.80357l-0.71429-0.53572-0.80357,0.53572-0.625,0.80357-0.53571,1.5178-0.53572,2.1429-0.0893,2.5-0.35715,1.875-1.1607,1.25-1.3393,0.98214h-1.7857l-1.5179,1.3393-0.53571,1.7857-1.3393,0.53572-0.44643,1.0714-0.17857,1.4286-1.7857,0.89286-1.7857,0.80357-0.625,1.6964,0.625,1.5178,0.625,0.625-0.26785,1.4286s-0.0893,0.44643-0.44643,0.80358c-0.35714,0.35714-1.1607,1.3393-1.1607,1.3393l-1.4286,0.80357-2.3214,0.89286-1.0714,0.0893-1.1607-0.89286-0.89286-0.89286z\",\"name\":\"Pskov Oblast\"},\"no\":{\"path\":\"m123.12,188.27,1.5179,1.25,2.1428,0.35714,2.1429,0.17857,1.25,1.1607,2.5,0.53571,2.3214-0.0893,1.0714-0.89286,0.44643,0.625,0.0893,1.7857,2.1429-0.53571,2.3214,0.0893,0.80357,0.80358,0.17857,2.5,0.17857,2.5,0.53572,1.0714,1.3393,0.17858,1.3393,0.44642,0.26785,2.1429,0.71429,1.6964,0.98214,0.80357,0.44643,2.9464,0.0893,2.2321,0.89285,1.4286-0.53571,0.98215-0.71429,0.53571,0,1.6071,0.17858,1.5179,1.4286,1.3393,0.625,0.53571,0.0893,1.9643,0,1.9643-0.17857,1.3393-1.25,0.53571-0.71428-0.26785-0.625-0.80358-0.71429-0.80357-0.17857-1.1607-0.98214-0.80357-0.80358-0.625-2.0536,0-1.5178-0.53572-0.53572-0.35714-1.5178-0.53571-0.71429-0.26786,0-0.44643s-0.26786-1.25-0.26786-1.6964c0-0.44643-0.0893-2.0536-0.0893-2.0536l-0.625-0.98214h-1.7857l-0.89285-0.44643-0.44643-0.98214-0.98215-0.625-0.53571,0.625-0.89286,1.0714-1.6964,1.4286h-2.1428c-0.35715,0-1.5179,0.0893-1.5179,0.0893l-0.71429-1.0714-1.0714-0.71428-2.3214-0.17857-2.6786-0.0893-1.5179-0.44643-1.3393-0.98214-2.3214-0.44643h-2.1428l-0.89286-1.1607-1.25-1.0714-0.53571-0.71429-1.1607-0.71428,0.98214-2.7679,0.71429-0.44643,1.1607-1.5179,1.0714-1.0714,2.0536-0.625,2.5-1.9643,0.625-1.9643,0.0893-3.5714,0.98214-2.5893,1.0714-1.25,1.1607,0.26786z\",\"name\":\"Novgorod Oblast\"},\"tr\":{\"path\":\"m98.661,216.66,3.2143-0.625,2.2321-1.6072,1.3393-1.6071,0.17857-1.4286-0.80357-1.4286-0.26786-1.3393,0.35714-0.89286,1.4286-0.89285,1.6964-0.625,1.1607,0.44643,1.5179,1.5178,1.0714,0.98215,0.98215,0.53571,1.6964,0.17857,2.4107,0.35714,1.3393,0.98215,1.3393,0.26785,3.2143,0.44643,1.5178,0,1.25,0.71429,0.80358,0.71428,1.875,0.35715,1.7857-0.17857,1.875-1.6072,1.25-1.25,0.71429,0.44643,0.625,0.80357,1.4286,0.44643,1.4286,0.17857,0.53571,1.5179,0.17857,2.4107,0.35715,0.80358,1.1607,0.71428,1.4286,0.80357,1.0714,0.26786,1.875,0.35714,0.98214,0.26786,1.25,1.0714,0.44643,1.3393,0.98214,1.0714,0.80358,0.53572,1.7857-0.35715,1.3393,0.0893,1.25,0.71429,1.6071,0.89285,0,1.5179-0.625,1.6964-1.25,1.6071-1.6071,0.44643-1.25,0.98214-1.5179,1.3393-0.89286,1.0714-0.44643,0.71428-0.26785,1.5179-0.44643,1.0714-1.25,1.4286-0.53572,1.4286-0.35714,2.0536-2.0536,1.9643-2.0536,1.3393-1.0714,0.17858-0.53571-0.71429-0.26786-1.7857-1.6964-0.71429-3.8393-0.89286-3.8393-1.6071-3.0357-0.80357-1.5178-1.0714-0.0893-3.0357-0.35714-1.6964-3.3036,0.80357-3.4822,0.26786-1.3393-0.89286-3.4821-4.4643-1.5179-2.0536-3.3036-0.625-2.7679-0.53571-1.4286-1.7857z\",\"name\":\"Tver Oblast\"},\"vm\":{\"path\":\"m137.41,247.73,1.6072,1.7857,2.0536,1.25,1.1607,1.0714,1.3393,0.35714,0.80357,0.89286,0.0893,1.5178-0.89285,1.7857-0.35715,1.0714,1.25,0.625,1.7857,0.26785,1.0714,1.1607,0.17857,1.9643,0.98214,1.875,1.0714,1.25,1.3393,1.25,1.3393,1.3393,1.3393,1.1607,1.7857,1.875,0.89286,1.3393-0.17857,0.98214-0.89286,0.71429l-0.18,0.98,0.53571,0.71429,0.44643,0.71428,0.0893,1.6072-1.7857,0.53571-2.2321-0.0893-1.1607-1.0714-4.4643-0.0893h-5.1786l-1.7857,0.53571-0.71429-1.6964-1.6964-1.9643-1.6071-2.6786-0.80357-4.1964-0.0893-4.1071-0.17857-2.0536-0.44643-0.44643-0.71428,0.44643-1.1607,0.26785-1.4286-1.25-0.26786-2.5893,0.71429-2.0536,1.1607-2.0536,0.44643-1.7857,1.3393-1.0714z\",\"name\":\"Vladimir Oblast\"},\"pz\":{\"path\":\"m127.05,289.96,1.6964,1.7857,2.0536,1.5179,1.25,0.98214,1.6964,0.625,1.25,1.875,0.71429,1.6071,0.26785,1.9643,0.98215,0.98214,1.0714,1.0714,2.6786,0.17857,1.6964,0.0893,0.625,2.1429,0.89286,1.7857,1.6964,0.71429,2.1429,0.26785,1.4286,1.0714,0.625,1.0714-1.5179,0.89286-0.89286,0.98214,0.0893,4.1071-0.26786,3.4822-2.7679,1.25-1.0714-0.0893-0.89286,1.6071-1.9643,0.98215-1.1607-1.7857-0.98214-0.98214-5.9822-0.0893-1.1607-1.875-0.89286-0.89285-3.125-0.71429-0.98214-1.6071-1.25-1.6964-2.1429-0.71429-2.4107-1.3393-1.6071-1.0714-2.5,0.0893-0.71429-1.875,0.26786-2.5,1.1607-0.89285,3.8393-0.80357,0.89285-2.4107,0-3.4821,1.3393-1.6964,1.3393-1.6071-0.26786-2.5893,0-1.9643,1.1607-0.89286z\",\"name\":\"Penza Oblast\"},\"sr\":{\"path\":\"m107.23,308.27-0.17857,3.0357-0.26786,1.25-2.2321,1.1607,1.4286,1.6964,1.0714,3.2143,2.2321,0.71429,0.98215,0.80357,0.89285,1.0714,1.7857,0.625,2.5893,2.5,0.89286,1.0714,0,1.875-1.5179,2.0536-2.4107,2.8571-0.44643,1.25,0.44643,1.6964,0.71429,0.89286,2.1428,1.1607,4.0179,3.9286,1.7857,4.5536,1.25,1.4286,1.25,1.3393,0.26786,1.9643-0.71428,2.5-0.53572,2.4107,0.26786,1.7857,0.89286,1.0714,1.6071,0.44643,1.6964,0,1.6964-1.1607,1.25-1.0714,0.44642-2.6786,0.0893-1.875,2.2321-0.625,3.3036,1.25,1.6964,0.35714,1.6072,0,1.3393-1.5179,0.44643-0.53571,1.6071,0.35714,1.3393,1.0714,1.5178,0.89286,4.6429,0,1.1607-1.1607,1.3393,0.17857,0.89286,0.80358,1.6071-0.53572,0-1.7857-0.89286-1.9643-0.35714-1.3393-0.17857-3.9286-0.0893-2.0536-0.71428-1.25,0.0893-2.8571-0.35714-1.6071,0-2.5-0.80357-1.3393-1.1607-1.6071-2.5-1.0714-1.6072-2.0536-2.5893-0.0893-1.0714-0.35714-1.7857-1.6964-0.625-1.25-0.44642-0.89286-1.7857-2.4107-5.625-0.26786-0.53571-0.17857-1.9643-2.5893-3.125-0.89286-2.2321-2.9464-6.1607-3.3036-2.3214,0-1.0714-1.6964,0.44643-2.5-0.80357-0.35714-3.8393,2.1428-1.5179,0.35715z\",\"name\":\"Saratov Oblast\"},\"mr\":{\"path\":\"m127.59,290.05,1.875,2.1429,2.6786,1.7857,1.7857,1.1607,1.7857,2.7679,0.44642,2.4107,2.0536,2.1429,2.5893,0.0893,1.6071,0.26786,0.89286,2.2321,0.71429,1.4286,2.0536,0.89286,1.7857,0.35714,1.25,0.625,0.53572,0.80358,5.8928,0.17857,2.6786-3.5714,0.35715-0.53572,0.71428-1.3393,0.0893-2.1429-0.0893-1.9643-1.7857-0.98215-0.35714-2.5-0.0893-0.80357-1.6964,0,0,0.17857-0.80357,0.89286-1.3393,0.80357-5.2678,0-2.5893-2.3214,0.17857-3.5714-1.1607-1.0714-0.17857-0.80358,1.0714-1.0714,0-1.6072-2.5893-0.53571-1.7857-0.0893-0.80357-1.25-0.71429-1.6964-1.25,1.1607-2.1429,2.3214-2.4107,1.5178-1.5179,0.98215-2.9464,0.26785z\",\"name\":\"Republic of Mordovia\"},\"cu\":{\"path\":\"m159.11,299.07,1.3393-0.89286,2.9464,0.44643,1.3393,0.44643,1.0714-1.3393,0.26786-1.7857,2.2321-1.1607,2.2321-2.2322,3.125,0.0893,2.6786,0,1.25,1.5179,0.35715,2.9464-0.17857,1.5179,0.35714,1.25,0.71428,1.1607-0.0893,0.71428-1.3393,0.625-4.1071-0.0893-1.3393,0.53571-0.80357,0.80357,0,0.89286,1.1607,0.71428-0.17857,0.89286-1.3393,1.1607-1.7857,1.25-2.1429,0.98214-1.3393,0.44643-1.3393-1.3393-2.5-0.44643-0.98215-0.625-0.98214-1.3393-0.80357-0.80357,0.80357-3.5714z\",\"name\":\"Chuvash Republic\"},\"ul\":{\"path\":\"m158.57,305.32-1.875,2.6786-0.98215,1.4286-4.8214-0.26785-0.80358,0.26785-1.7857,1.4286-0.80357,1.1607,0,2.3214,0,2.5893,0,1.6964-1.7857,1.4286-1.0714,0.26786-0.89286,0-1.25,1.25-1.25,1.0714-0.625,0.26786,0.89286,1.9643,1.6071,1.6071,2.3214,0.44643,1.5178,0.17857,1.25,1.6072,1.5179,0.80357,2.1429,0.17857,0.89286-0.625,0.0893-1.875,0.17857-1.6964,1.0714-1.6964,0.35714-1.3393,1.3393-0.26786,0.80357,0.53571,1.3393,0.625,1.875-0.17857,1.3393-0.98214,1.0714,0.17857,1.6964,1.4286,2.0536,1.875,1.5179,1.6072,0.80357,1.4286,2.3214,0.17857,1.1607-1.5179,2.8572-2.0536,2.0536-1.1607,0.26785-2.3214,0-3.5714-1.875-1.1607-3.6607-0.0893-2.0536-1.4286-0.98214-1.1607-2.5-0.26785-0.98215-1.5179-3.0357-1.5179-0.80357-1.5179-0.625-2.0536z\",\"name\":\"Ulyanovsk Oblast\"},\"ss\":{\"path\":\"m150.98,329.96,1.3393,2.1428,0.71428,2.8572,0.44643,2.8571,0,2.1429,0.625,2.3214-0.0893,2.8571,0.35714,2.4107,0.53571,2.1429,0.625,1.9643,0.71429,0.98214,5.8929,0.0893,3.0357-1.6071,1.25-1.9643,1.9643-0.35715,1.6964-0.0893,2.1429-1.4286,1.4286-0.89286,1.25-0.17857,1.6072,0.625,1.7857-0.17857,0.80357-1.875,1.0714-2.3214,4.375-2.5893,1.7857-1.4286,1.1607-2.0536-0.625-1.5179-0.80357-1.7857-0.35715-2.5-1.1607-1.25-0.71429-2.4107-3.6607-0.26785-2.3214-1.6964-1.4286-0.80357-3.5714,2.3214-1.9643,2.2322-2.4107,0.0893-0.98214-0.98214-2.2321-2.4107-2.4107-1.875-1.0714-1.0714-0.89285,0.26785-1.6072,0.71429-1.6964-0.0893-1.5178-0.80357-1.0714,0-0.625,0.98215-0.53572,1.0714-0.80357,1.5179-0.17857,1.3393,0,0.98214-0.0893,0.71429z\",\"name\":\"Samara Oblast\"},\"ob\":{\"path\":\"m155.89,352.82,0.53571,1.4286,0.71429,1.6071-1.0714,1.6072,1.0714,1.4286,3.0357,0.17857,1.9643-0.35714,2.5,0,0.17857,2.3214-0.89286,2.6786,0.35714,1.0714,3.5714,1.6071,2.1429,1.4286,0.17857,3.5714,0,4.1071,0,1.4286-1.25,0.89286,0,1.9643,0,0.71428,0.71429,1.0714,1.0714,0.89286,1.7857-2.5,0-1.4286,0.89286-0.89286,1.4286,0,1.0714,2.3214-0.17858,1.4286-0.71428,1.25-0.35714,1.4286l0.36,1.43,1.25,0.89286,2.3214,1.25,1.7857,0.89286h1.9643,2.5l1.4286-1.0714,1.6071,0.17857,1.9643,1.0714,0.89285,1.6071,0.35715,1.7857,1.0714,1.25h1.7857l0.89286-0.89285h1.25l1.6071,0.53571,1.25,1.4286,0.53571,2.6786-0.17857,3.5714,1.7857,1.6072,1.4286,0.89285,1.0714,1.6072,1.0714,0.53571,1.6071-0.71429,1.4286-0.17857,1.6071,1.4286v1.25l1.9643,1.7857,1.25,0.71428,2.1429,0.35715h2.6786l1.4286-0.17857,1.25-0.89286,1.25-1.0714,0.89286-0.89286-0.17858-1.25-2.3214-3.2143-1.0714-1.25v-3.75l-0.71429-2.1429-0.17857-2.1429,1.0714-2.3214,1.9643-1.4286-1.4286-1.7857-3.0357-2.8571-1.9643,0.35714-1.4286-0.17857-0.89286-1.25h-2.3214l-1.4286,1.25-1.0714,1.25-0.53572,1.0714h-2.5l-1.0714-2.5-3.2143-0.17858-2.8572-0.35714-0.89285-2.5-1.08,0.33-1.79,0.89h-1.4286l-0.17857-1.0714,1.4286-1.7857,2.5-2.5-0.53-1.78-0.71-0.36v-0.89286l2.5-1.9643,0.35715-1.0714v-2.1429h-1.7857l-2.1429,0.71429-1.6071,0.17857-1.4286-1.9643-0.53571-2.3214,1.25-1.7857,1.0714-0.89286v-1.6071l-0.35714-2.3214,1.0714-0.89285,0.17857-3.0357-1.25-1.9643-1.7857-1.7857-0.17857-1.6071,1.0714-2.8571,1.6072-2.5,0.89285-1.7857-0.53571-1.25-2.1429-1.6071-1.4286-2.1429-1.25-1.4286-1.6071,1.7857-1.4286,1.4286-4.1072,2.5-1.4286,1.9643-0.35714,1.9643-0.53571,0.35714-1.9643,0.17857-2.1429-0.35714-1.9643,0.53571-1.9643,1.4286-2.8571,0.53572-1.0714,0.71428-1.4286,1.7857-2.1429,1.25h-2.5z\",\"name\":\"Orenburg Oblast\"},\"nn\":{\"path\":\"m156.25,271.57,4.2857-0.53571,2.5-1.4286,3.5714-0.71428,2.6786-1.0714,1.25-0.17857,2.3214,1.25,1.7857,1.0714,2.6786-0.17857,1.4286,0,2.6786-1.0714,1.25,0.17857,1.4286,1.9643,1.0714,2.1429,2.5,0.17857,2.5,1.7857,1.0714,1.25,0.89286,2.5,1.25,1.4286-0.17858,1.6071-1.25,0.89286-1.7857,0.17857-0.71429,0.89286-1.6071,0-0.71428-0.89286-1.7857-1.0714-1.6071,0.71429,0,1.6071-1.25,1.4286-1.25,0.53572-2.1429-0.89286-2.1429-1.6071-3.0357-0.89286-1.7857,0-1.0714,0.89286-0.71429,1.7857,0,2.8571-0.17857,2.8572,0.53571,1.0714-1.0714,1.4286-2.3214,1.4286-1.4286,0.89285,0,1.4286-0.35715,0.89285-0.89285,0.71429-2.8572-0.35714-1.0714-0.17858-0.89285,0-0.71429,0.53572-0.38692,0.34215-0.69448-0.12626-0.44194-0.50508-0.50508-3.0936-1.5784-0.12627-1.5784,1.4521-2.2097,0.44194-3.9775-0.25253-2.0834-2.0203,0.1894-3.3461-1.2627-1.389-0.0631-0.75761,1.0102-1.4521-0.0631-1.0733-3.7249-0.63135-1.1996-0.75761-1.0733-2.7148,1.1364-2.336-1.1996-3.3461,2.0203-0.50507,3.283-0.12627,5.9978,0.12627,1.2627,0.88388,2.0203,0.1894,2.0203-0.75761,0.12627-1.5152-0.94702-1.4521,0.63135-1.0733z\",\"name\":\"Nizhny Novgorod Oblast\"},\"ml\":{\"path\":\"m181.51,286.29,2.2728,2.336,2.4622,2.0834,2.7779,1.1364,2.9673,0.0631,2.4622,2.0834,1.5784,1.6415,0.44194,1.3258,0.63134,0.94702-0.3788,1.6415-0.56821,1.1364-0.0631,1.8309-1.5152,1.389-0.88388,0.56821-1.4521-0.12627-1.1996-1.5152-1.1996-0.44194-1.389-0.82075-1.7046-0.12627-0.50508,0.88389-1.7046,0.88388-2.5885,0.12627-1.9572-0.82075-1.1364-0.69448-0.88388-3.0305-0.37881-4.7351-1.1996-1.4521-4.0406-0.0631-1.3258-0.1894-0.63134-1.0733,0-2.0834,0.0631-3.0936,0.37881-1.8309,1.0102-1.0733,0.82075-0.63134,2.5885,0.3788,2.2728,0.88389,2.9673,1.7678z\",\"name\":\"Mari El Republic\"},\"ta\":{\"path\":\"m160.93,308.14,0.0631,1.1364,0.44194,1.0733,0.88389,1.0102,1.5152,0.63134,1.8309,1.4521,1.5152,0.75762,1.389,0.44194,1.4521,1.0733,1.389,1.0102,2.4622,0.44194,1.4521,0.0631,1.7046,0.88388,0.12627,2.2097-0.37881,2.9042,0.44195,1.4521,2.0834,1.1996,1.0733,0.75761,2.9042,0.18941,0.82075,0.69448,0.56821,1.7046,1.3258,2.1466,0.63134,2.5885,0.88389,1.7678,1.6415,1.894,1.389,2.2728,1.6415,1.1364,0.88388,0.88388,1.1996,0.0631,2.9042-1.8309,2.9042-2.7148,0.44194-0.63135,0-1.894-1.0102-1.0102-0.0631-0.88388,1.8309-0.25254,1.2627,0.31567,0.75762,0.56822,1.3258,0.3788,1.6415-0.31567,1.1996-0.69448,2.9042-0.12627,1.5152-0.37881,0-0.94701-0.37881-1.2627-1.1996-1.5784-0.63134-1.2627-1.5152-0.44194-0.88389-1.2627s1.2627-1.0102,1.5784-1.1364c0.31567-0.12627,2.2728-0.75762,2.2728-0.75762l0.0631-1.4521s-1.1364-0.18941-1.389-0.50508c-0.25254-0.31567-0.69448-0.94702-0.69448-0.94702l2.0203-1.3258,2.0203-1.389,0.12626-1.1364-0.69447-0.82075h-1.5152l-0.69448,0.0631-1.1364,1.3258-0.56821,0.69448h-1.894l-0.12627,0.88388-0.12627,1.3258-0.82075,1.1364-1.5152-0.12627-0.75761-1.4521-1.1364-0.94702-0.82075,1.0102-1.7678-0.31567-0.56821-2.2728-1.4521-0.88388-0.63135-1.2627,0.12627-1.3258-1.1364-1.3258,0.0631-2.6516,0.12627-3.0936,0.63135-0.94702-0.25254-1.0102-0.69448-1.0733-0.56821-0.56821-1.0102,0.44194-0.88388,0.37881-1.0102-0.12627-1.0733-0.88389-0.88388-0.82074-1.8309-0.69448-1.4521-0.44195-0.94702,0.94702-1.8309,0.75762-1.8309,0.1894-1.6415-0.31567-1.9572-1.0733-1.389,0.50508h-2.7148l-2.0834,0.0631-1.389,1.1364-0.0631,0.88389,0.69448,0.50507,0.12627,0.82075-0.82075,1.0733-1.5152,1.2627-2.6516,1.0733-1.5784,0.69448-1.1364-0.75762-2.0834-0.82075z\",\"name\":\"Republic of Tatarstan\"},\"iv\":{\"path\":\"m144.26,252.7,2.0203-1.1364s0.94702-0.50507,1.1996-0.50507c0.25254,0,2.5885,0.31567,2.5885,0.31567l2.7148,1.1364,2.3991,1.1364,1.2627,1.1996s1.4521,1.0102,1.7046,1.1996c0.25254,0.18941,1.4521,1.2627,1.4521,1.2627l1.7046,0.63135,1.1364-0.88388h0.88388l0.50508,0.82074,0.1894,1.1996,1.0102,0.75762,1.5152,0.82074,1.0102,0.63135,0.44194,1.0102-0.69448,1.0733-0.12626,0.88388,0.75761,0.37881,0.88388-0.56821,1.389,0.63134,0.69448,0.94702,0.25254,1.2627-0.25254,0.50508-1.894,0.69448-2.9673,0.82075-3.0936,0.50507-2.3991,1.5152-3.4724,0.50508-0.94702-0.12627-1.7678-2.3991-3.5987-3.4724-2.7148-3.3461-0.82075-2.7779-0.88388-1.0102-2.1466-0.44195-0.69448-0.56821,0.50507-1.4521,0.56821-1.3258z\",\"name\":\"Ivanovo Oblast\"},\"yr\":{\"path\":\"m154.11,228.33,1.7678,1.5784,1.9572,0.50507,1.7678,0.50508,1.3258,1.6415,1.9572,1.5784,1.5784,0.0631,1.0733-0.69448,0.82075,0.31568,0.3788,1.4521,0.12627,3.4093-0.0631,2.6516,0.25254,1.5152,0.88388,1.0102,0.56821,0.94702-0.37881,1.0733-1.7046,1.1364-2.7148,1.3258-3.283,2.2097-1.6415,1.0733-3.3461,0.88388-2.4622-0.1894-2.1466-0.63135-2.6516-0.69448-2.1466,0.63135-1.8309,1.0733-1.7046-0.88388-1.4521-1.0102-1.894-1.1364-1.1364-1.1996-0.25254-1.3258,0.56821-1.4521,2.0203-0.88388,2.2097-1.1996,1.6415-2.7779,1.0102-2.9673,1.1996-1.2627,0.75762-2.4622,1.6415-1.8309,1.9572-1.8309,2.7148-1.5152z\",\"name\":\"Yaroslavl Oblast\"},\"kt\":{\"path\":\"m168.7,245,1.389,0.12627,1.2627-0.75762,1.5152-1.389,1.894-0.75762,1.894,1.1364,1.894,1.5152,2.5254,0.12627,0.63135-0.75761,0.75761,0.50507,1.2627,2.1466,2.2728,2.2728,1.5152,1.5152,1.1364,1.894,0.3788,2.2728,1.2627,1.7678,1.5152,1.6415,2.5254,1.389,1.7678,1.5152,1.7678,1.894,2.0203,0.88388,1.894,0.12627,2.0203-2.0203,1.6415-0.3788,0.63135,1.894,1.1364,1.0102-0.12627,1.6415-1.6415,1.5152-0.12627,1.894-0.3788,2.5254s-1.7678,0.75761-2.3991,0.75761c-0.63134,0-6.3134-0.12626-6.3134-0.12626l-3.1567,0.12626-1.1364,1.1364-1.2627,0.50507-2.0203-0.75761-1.5152-0.75762-2.0203-0.3788-1.0102-1.5152-0.88388-1.6415-0.75762-0.63135-1.1364-0.12627-0.88388,0.50508-2.1466,0.75762-3.283-0.25254-1.7678-0.50508-2.0203-1.2627-0.50508-0.50508,0.25254-0.63134v-1.1364l-1.389-1.2627-0.88389-0.50508-0.63134,0.37881-0.38556,0.10695-0.53571-0.35714,0.0893-0.89286,0.71429-0.625,0.0893-0.98214-0.89285-0.71429-1.7857-1.0714-0.98214-0.98215-0.26786-0.98214-0.71428-0.89286h-0.98215l-0.89285,0.625-0.625,0.0893-1.25-0.71429-1.4286-0.80357-1.3393-1.25-1.7857-1.3393-0.69-0.57,1.07-0.71,2.05-0.54,2.3214-0.71428,2.8571-2.0536,3.3036-1.6964z\",\"name\":\"Kostroma Oblast\"},\"le\":{\"path\":\"m123.49,177.57,1.7678-1.6415,1.5152,0,2.2728-1.894,2.5254-0.50507,2.2728,0.63134,2.9042,2.1466,2.7779,1.5152,0.75761,2.5254,0.12627,1.389,1.0102,1.1364,1.1364-0.37881,0.75761-2.0203-0.12627-2.3991-0.88388-1.6415-0.88388-1.894,0.12626-2.0203,1.1364-1.2627-0.25254-1.894-0.75762-1.0102,0-0.37881,1.2627-0.25254,3.283,0.25254,3.5355,1.2627,2.2728,0.12627,1.894,0.12627,1.2627,1.1364,0.63135,1.2627,0,1.7678-0.37881,1.6415-0.25254,2.1466-0.63134,1.7678-2.1466,1.2627-0.75761,1.0102-1.0102,1.894-1.0102,1.1364-1.7678,1.1364-0.63135,1.2627,0.25254,1.1364,1.389,0.75762,2.1466,0.25253,1.0102,0.88389,0.25254,1.6415,1.0102,0.75762,2.1466,0.12627,1.1364-0.50508,3.4093-0.25254,1.7678-0.63134,2.0203-0.25254,1.5152,0.75761,1.0102,1.6415,1.1364-1.2627,1.389-1.7678,0.75762,0.88388,0.50507,2.0203,0.63135,2.2728,2.1466,0.50507,1.2627,0.75762,1.1364,1.0102,0.12626,1.2627,0.12627,1.6415-0.12627,1.7678-1.2627,0.75761-2.2728-0.25254-1.389-0.88388-1.389-0.25254-0.75761,0.88388-1.5152,1.0102-3.0305,0-1.5152,0.3788-2.7779,3.0305-1.0102,1.389-0.37881,2.1466-1.6415,1.0102-1.1364,0.12627-0.3788,1.2627-1.2627,0.63134-0.63135-1.0102-1.1364-1.1364-2.2728-0.12627-0.75761,0-1.1364-3.0305,0-2.9042-1.0102-1.5152-0.88389-1.894-0.12627-1.6415-2.2728-0.88388-0.88388-0.63135s-0.37881-1.0102-0.37881-1.5152c0-0.50507-0.25254-3.4093-0.25254-3.4093l-0.75761-1.1364-2.3991-0.25254-1.389,0.75761-0.75762-0.50507-0.12627-1.2627-0.63134-0.88389-1.0102,0.63135-2.1466,0.3788-2.7779-0.88388-1.5152-0.88388-3.283-0.37881-1.2627-0.88388-1.0102-0.75762,0.63135-1.2627,0.88388-2.1466,0.88388-1.389,0.12627-1.2627z\",\"name\":\"Leningrad Oblast\"},\"ki\":{\"path\":\"m207.59,265.33,1.2627-0.88388,0.12627-2.0203,0-2.0203-1.0102-1.389-0.12627-1.6415,1.5152-0.37881,3.9143,0.25254,2.5254-0.88388,2.6516-1.1364,0.63134-1.389,1.1364-0.63134,2.7779,0.25254,1.389,1.7678,0.12627,2.7779-0.63134,3.0305-1.0102,1.389-0.75761,2.7779-1.894,0.75762-2.0203,0.12626-1.6415,1.7678-0.63134,1.6415-1.0102,0.63134-0.75761,0.88389,0.75761,1.389,1.6415,0.88388,1.0102,1.389-1.6415,1.894,0.12626,1.894,1.1364,0.88389,1.2627,0.50507,0.88388-1.389,0.88388-1.894,2.7779,0,3.1567,0.3788,4.2932,1.2627,1.7678,2.2728,2.1466-0.12627,2.1466-1.6415,1.6415,0.37881,1.2627,1.0102,0.75762,1.894s1.0102,1.5152,1.389,1.7678c0.3788,0.25254,2.5254,1.894,2.5254,1.894l0.25254,1.5152-0.88389,2.0203-2.0203,1.1364-3.5355,0.25253-1.2627,0.63135-1.2627,1.5152-0.25254,1.389,1.0102,1.389,0.12627,1.1364-1.5152,1.1364-0.75762,1.389-0.12627,2.1466-1.2627,1.0102-2.7779,0.12627-1.1364-1.2627-1.0102-2.5254-2.0203-0.12627-1.389-0.3788v-1.894l-2.0203-1.1364-3.1567,0.75761-1.7678,1.389s-1.2627,1.0102-1.2627,1.5152c0,0.50508-0.3788,2.2728-0.50507,2.7779-0.12627,0.50508-1.6415,1.5152-1.6415,1.5152l-2.5254,1.1364-1.894-0.50507-1.2627-1.389-1.5152,0.25253s-0.75761,0.50508-1.0102,1.389c-0.25254,0.88389-0.12627,2.7779-0.12627,2.7779l0.12627,1.894-2.0203,0.63135-3.4093,0.3788-0.25254,1.1364v1.389l-0.3788,1.389-1.7678,0.88389h-0.63135l-0.63134-1.5152-0.50508-0.37881,0.12627-2.5254,0.25254-2.5254,0.50508-1.5152-0.88389-1.6415-0.25254-1.2627,0.75762-2.9042,0.63134-2.5254-1.0102-1.5152-1.6415-2.5254-2.1466-1.5152-0.88388-0.63134-3.9144-0.12627-1.7678-1.2627-1.6415-1.5152-1.6415-1.5152-0.50507-0.50508,0.50507-1.0102,1.2627-1.6415,0.25254-1.0102,1.1364-0.75761,1.5152,0.50507,1.894,1.389,1.389-0.75761,2.1466-0.63135,1.389-1.2627v-1.5152l-1.2627-1.894-0.63135-1.5152s-0.78918-1.1049-0.85231-1.2627c-0.0631-0.15784,0.56821-0.69448,0.56821-0.69448l0.97858-0.63135,0.75762-0.75761s2.2728-0.0316,2.8095-0.0316c0.53664,0,3.1567,0.0631,3.8828,0.0631,0.72605,0,3.7881-0.44194,3.7881-0.44194l1.4521-0.59978s0.12626-1.5784,0.15783-1.7993c0.0316-0.22097,0.47351-2.4938,0.47351-2.4938l2.0203-2.3991z\",\"name\":\"Kirov Oblast\"},\"bs\":{\"path\":\"m211.5,329.86,2.3991-1.6415,2.5254-1.6415,1.5152-0.25254,1.894,2.6516,2.2728,2.2728,2.9042,0,2.6516,2.5254,1.7678,2.5254,1.1364,1.7678,1.7678,0,1.2627,2.1466,2.6517,2.3991,2.2728,1.6415,2.0203,1.7678,1.2627,1.1364,0.88389,1.389-0.37881,1.1364-1.6415,0.63134-0.88388,1.2627,0.25254,1.389,1.389,0.63135-0.63135,1.2627-1.5152,0.50508-1.2627-0.75762-2.3991,0.37881,0,1.0102-1.5152-0.25254-0.50508-0.88388-1.5152-1.0102-4.5457,0-1.1364-0.37881,0-1.2627,1.7678-1.2627,0.12627-1.389-1.0102-0.88389-1.6415-1.1364-2.5254,0.25254-1.0102,2.1466-1.7678,2.6516-0.88388,2.0203,0.50508,3.0305,1.894,1.0102,2.0203-0.75761,1.6415,0.75761,1.0102,2.0203,2.5254,0.12627,2.0203,0.75761,2.7779,0,1.7678-0.50508,1.5152,1.1364-0.63135,1.389-1.894,1.5152-1.2627,1.1364-1.0102,1.389-1.2627,0-1.2627-0.63134-2.1466-0.75762-1.6415-0.3788-1.6415,1.2627-0.3788,1.5152-0.63135,1.389-2.3991,2.6516-1.6415,2.3991-3.9143,3.6618-1.894,1.5152-0.25254,2.0203-0.63134,1.5152-2.9042-0.25254-1.6415,1.7678-1.2627,1.389-0.50507,0.63135-2.0203,0-1.1364-2.0203-0.50508-0.63134-5.4296-0.63135-1.389-2.1466-2.7779,0.88388-1.2627-0.12627,0-0.50507,3.4093-4.4194,0-1.6415-0.88389-0.63134,0-1.1364,1.7678-1.1364,1.0102-1.389,0-2.0203-0.25253-0.50508-1.894-0.12627-2.2728,1.2627-1.7678-1.1364-1.1364-2.3991,1.2627-2.3991,1.0102-1.894-0.25254-2.5254,0-0.75761,0.88389-1.5152,0-3.1567-2.5254-2.9042-0.12627-2.0203,1.0102-2.6516,2.0203-4.1669,2.9042-2.1466,3.9143-3.1567,1.0102-2.1466-0.88389-1.389-0.12627-0.12627,0-0.75761,1.389-0.25254,2.3991,0.75762,1.389,0.12626,1.7678-0.63134,2.6516-0.25254,1.7678-0.12627,0.88388-0.63134,0-1.7678z\",\"name\":\"Republic of Bashkortostan\"},\"cl\":{\"path\":\"m242.18,347.66,1.7678-0.88388,2.7779,0.50507,2.3991,2.1466,2.3991,1.7678,3.0305,1.894,2.9042,0,1.5152,1.6415,1.6415,2.3991,0.75761,1.894-0.63135,3.1567,0,2.7779-0.88388,1.389-1.7678,0.63135-1.6415,1.1364-0.75762,1.2627-2.0203,0.63135-1.894,1.5152,0,1.1364,1.5152,1.5152,2.0203,2.0203,1.1364,2.3991-0.37881,2.7779-0.75762,1.7678-2.3991-0.63135-2.6516-0.50507-3.283-0.37881-2.0203-0.50508-1.5152-1.7678-2.0203-1.7678-1.1364-1.1364-1.1364,0.50508-1.5152,1.1364-0.88388,1.0102,0,1.894,1.6415,1.2627-0.37881,0.75761-2.2728,0.63135v1.0102c0,0.50508,0.75761,2.0203,0.75761,2.0203l2.0203,1.7678,0.12627,1.894-1.5152,0.63134-1.5152-1.5152-1.389-1.2627-2.2728-0.63134-3.283,0.12627-1.5152,0.25253-0.63134,1.2627,1.0102,1.389-0.37881,1.894-1.0102,1.6415-4.5457,0.25254-1.6415-0.88389-1.6415-0.63134,0.50507-2.0203,1.6415-0.88388-0.75761-1.7678-2.0203-2.3991-1.6415-1.0102-1.894,0.12627-1.389-0.63135,0.63134-2.7779,1.7678-2.6516,4.4194-4.1669,3.7881-4.672,1.2627-2.9042,1.389-0.88389,2.5254,0.25254,2.0203,1.0102h2.0203l1.894-2.2728,2.2728-1.894,0.50508-1.389-1.5152-1.2627-2.1466,0.50507h-3.0304l-2.7779-0.88388h-1.5152l-0.88388-1.894-1.389-0.50507-1.7678,0.63134-1.0102-0.37881-0.88389-0.63134-0.63134-1.894-0.12627-1.6415,3.6618-5.6821,0.75762-0.63135,1.7678,0.37881,1.7678,0.88388,0.63134,1.1364-0.3788,0.75762-1.2627,1.1364v1.1364l-0.12627,0.12627,0.75761,0.63135,2.6516,0.12627h2.2728l1.5152,1.0102,1.2627,1.1364,1.1364-0.63135,0.50507-0.75761,2.0203,0.12627,1.7678,0.37881,1.1364-1.2627-0.37881-1.0102-0.75761-0.88388,0.25253-1.5152,1.5152-1.0102,0.63135-1.1364z\",\"name\":\"Chelyabinsk Oblast\"},\"ud\":{\"path\":\"m231.7,302.33-0.12627,1.389-2.0203,2.7779-1.5152,1.389,0.12626,1.389-1.6415,1.0102-1.1364,1.5152-1.5152,2.3991-0.50508,1.894-0.50508,3.1567-2.0203,1.0102-2.2728,0.12627-0.63135,1.1364-0.37881,3.0304-0.12627,1.389-3.0304,2.0203-2.2728,1.389-1.0102,0-1.2627-1.5152-1.7678-0.75762-0.63134-1.2627,1.389-1.1364,2.0203-0.75761,0.50508-1.1364-0.37881-0.50508-1.5152-0.88388,0.25254-0.88389,2.7779-1.7678,1.0102-1.1364-0.50507-1.0102-0.75762-0.63134-2.0203,0.63134-1.1364,1.389-1.5152,0.63135-1.0102,0.25253-0.3788,1.5152-0.63135,0.75762-0.88388,0.25254-0.75762-1.0102-1.389-1.2627-0.75761,0.37881-1.2627,0.37881-0.88388-0.88389-0.63135-1.1364-1.0102-1.0102-0.63135-1.0102,0-1.1364,1.6415-0.88389,1.1364-1.1364,0.25254-2.0203,0.25254-1.0102,3.1567-0.50507,1.6415-0.50508,0.37881-4.4194s0-1.2627,0.63135-1.5152c0.63134-0.25253,1.2627-0.3788,1.2627-0.3788l1.2627,0.63134s1.6415,1.894,2.3991,1.389c0.75761-0.50507,1.894-0.88388,1.894-0.88388s2.3991-1.0102,2.2728-1.6415c-0.12627-0.63134,0.25254-1.6415,0.25254-1.6415l0.3788-1.389,2.1466-2.2728,1.2627-0.75761,2.2728-0.50508,1.6415,0.37881,0.88388,1.1364v0.75761l0.25254,0.63135,1.0102,0.12627,1.6415,0.3788,0.63135,0.50508,0.63134,1.6415,0.75762,0.75761z\",\"name\":\"Udmurt Republic\"},\"pe\":{\"path\":\"M242.06,274.03l-2.28,1.16,0.5,1.5-0.5,3.53,0.5,1.28,1.41,2.41,2.25,1.62,0.65,1.66-1.4,2.12-2.41,1.03-2.87,0.63-1.66,0.87-1.13,1.54,0.5,1.24,0.63,1.38-0.13,1.03-1.9,1.63-0.38,2.4-0.87,1.6-0.13-0.19-1,0.12-1.28,2.5-2,2.29-0.15,1.53-0.88,0.87-2,2.03-1.91,3.41-0.62,3.9-1.28,0.88-2.25,0.38-1.28,0.78-0.63,4.9,2.53,2.66,2.13,2.28,2.53,0.25,2.28,1.5,3.41,4.94,1,0.37,1.28-0.12,1.12-1.25,0.88-1.28,1.03-1.75,1.25-1.66,1.28,0.88,1.5,1.28h2.41l2.03-0.91,0.5-1.75,0.25-1.91,0.87-0.75,0.88-1,0.78-0.5,2.5,2.75h3.69l0.87-1,0.5-1.5,0.25-1.65,0.88-1.25,4.69-0.38,2.15-0.78,0.63-1.5-0.63-0.62-0.12-1.41,1.12-1.38,0.75-1.03v-1.37l-0.5-0.88-0.62-1.03,0.25-1.75,1-1.53,2.03-1.5,3.15-0.5,1.88-1.91,2.28-1.62,2.28-1.66,2.28-1.65,0.88-0.75,0.5-1.25,1-1.78s0.9-1.12,1.53-1.75c0.63-0.64,1.62-1.91,1.62-1.91l1.16-1.37,0.25-1.66-2.41-0.38-2.65-0.75-2.66-1.65-2.75-1.38-2.66-1.28-2.53,0.66-3.15,0.12-3.66-0.9-2.9-1.63-1.63,0.85-0.41-0.22-1.9-1.25-1.38-2.03-1.12-1.13-2.28-0.78-0.13-1.63-1.12-1.28-1.41-1.5-1.91-0.5-2.62-0.25-2.41-0.78z\",\"name\":\"Perm Krai\"},\"sv\":{\"path\":\"m286.13,291.72,1.7678-1.1364,1.1364,1.389,0.88388,2.3991,2.6516,1.5152,2.9042,2.1466,1.2627,2.3991,2.2728,2.7779,0.12627,1.7678,0.63135,2.0203,0.75761,1.5152-0.63134,1.7678-1.894,1.894-0.63135,1.7678-0.25253,4.7982,0.3788,2.7779,0.63135,1.0102-1.0102,2.9042-1.5152,1.7678-0.37881,2.3991,2.0203,1.2627,2.3991,2.0203,0.75761,2.0203,0.12627,2.6516-0.63134,1.6415,0,2.9042,0.75761,2.3991-0.25254,1.894s-0.88388,0.88388-0.88388,1.389c0,0.50508-0.50508,2.7779-0.50508,2.7779l-1.2627,1.2627-2.0203,0.12627-1.1364,0.88388h-3.0304l-1.5152-0.88388-2.1466,0.25254-1.389,1.1364-0.88388,1.389-0.25254,2.9042-0.75761,1.1364-1.1364,1.0102-1.7678,0.50508-3.0305,0.25254-2.0203,0.25254-1.0102,0.88388-1.894-0.37881-1.389-1.1364-1.894-1.894-2.5254-1.6415-1.5152-0.63135-2.2728,0.37881-1.894,0.3788-1.389-0.12626-1.6415-1.389-1.894-2.2728h-2.2728c-0.50508,0-1.6415-0.75761-1.6415-0.75761l-4.672-3.1567-1.6415-1.7678-2.9042-0.3788-1.389,0.12627-0.88389,0.12627-1.2627-1.2627-3.9143-3.283-3.1567-3.0305-0.50507-1.389,2.0203-2.9042,1.389-2.7779,0.75762-0.25253,1.6415,1.1364,1.1364,0.75761h2.7779l1.5152-1.389,0.50507-1.7678,0.12627-1.7678,2.5254-1.7678,1.7678,2.0203,1.2627,0.63134h2.3991l1.6415-1.1364,0.75761-2.0203,0.50508-1.894,3.7881-0.75762,2.5254-0.3788,1.389-1.2627v-1.0102l-0.88388-1.389,1.7678-2.1466,0.25254-1.1364v-1.389l-1.0102-1.6415,1.0102-2.5254,2.1466-1.6415,3.283-0.88388,1.1364-0.75762,8.0812-6.1872,0.88388-1.6415,1.6415-2.7779,2.1466-2.5254z\",\"name\":\"Sverdlovsk Oblast\"},\"ku\":{\"path\":\"m255.69,383.01,2.3991,1.894,3.283,0.88388,4.2932,1.2627,3.1567,0.75762,4.1669-0.50508,2.5254,0.25254,2.9042,1.0102,3.5355,1.1364,3.5355,0.88388,3.283,1.0102,3.4093-0.12627,2.3991-1.2627,3.6618,0,1.0102-1.5152,0-1.894-1.5152-2.1466-1.389-2.7779s-1.5152-0.12627-2.1466-0.37881c-0.63135-0.25254-2.2728-1.6415-2.2728-1.6415l-0.75761-3.1567-1.389-1.7678-2.6516-1.2627-1.5152-1.6415-1.2627-2.2728-1.6415-1.5152-1.389-1.2627-1.0102-1.389,0.50508-2.3991,1.389-1.2627,1.1364-1.894-2.5254,0.37881-3.0305,0.12627-1.389,0.50507-0.75762,0.50508-1.2627-0.37881-2.0203-1.0102-1.7678-1.7678-2.0203-1.389-1.7678-0.75761h-1.2627l-3.0305,0.63134-1.7678-0.12627v1.1364l0.63135,0.88388-0.50508,2.2728v2.2728l-0.25253,2.1466-0.88389,1.1364-2.5254,1.1364-1.389,1.1364-1.5152,1.2627-1.7678,0.88388-0.50507,1.2627,0.63134,1.1364,1.894,1.894,1.389,1.389,0.63134,1.7678v1.894l-0.50507,1.7678z\",\"name\":\"Kurgan Oblast\"},\"ko\":{\"path\":\"m224.63,259.27,2.1466-0.63134,0.63134-0.88388,1.894,0.12627,1.6415,1.894,2.1466,0.25254,2.1466-0.50508,1.5152-1.894,0.50508-1.5152-0.63135-0.88389,0.63135-1.5152,2.1466-1.2627,4.5457-1.894,2.6516-1.1364,0.25254-1.5152-0.50508-2.5254-2.1466-0.88389-3.283,0.12627-2.3991,1.6415-2.3991-0.75761s-0.50508-1.0102-1.2627-1.0102-1.5152-0.25253-1.5152-0.25253l0.50507-3.0305,1.7678-0.37881,1.389-1.5152,0.50508-1.894,2.1466-0.50508,2.2728,0.12627,0.63135-1.7678-0.63135-0.63134-0.63134-2.1466,0.63134-1.389,4.5457-2.0203v-1.2627l-1.0102-2.5254-0.63135-1.6415-1.6415-1.7678-0.63134-1.1364,0.25254-1.6415,1.2627-0.63134,1.7678,0.75761,1.5152,2.1466,1.6415,1.5152,2.2728,1.894,2.6516,1.2627,1.7678,1.1364,0.50508,1.7678,1.5152,1.5152,3.1567,0.3788,1.894,1.2627,2.9042,0.50507,0.88388,1.2627h2.0203l1.0102-0.63134-0.25254-1.5152-0.75761-1.5152,0.50507-1.0102,0.88389-1.5152s0.25253-1.1364-0.12627-1.6415c-0.37881-0.50508-1.1364-1.1364-1.1364-1.1364v-0.88388l2.7779-3.283,3.1567-2.1466,1.894-2.0203,1.0102-0.88388,2.3991,0.63134,3.4093,0.12627,2.5254,0.75762,4.2932,0.50507,2.1466,0.63135,3.283,0.12627,2.3991-0.50508,1.5152,0.12627,0.12627,1.894,1.2627,1.0102,2.1466,2.1466,5.3033,4.672,7.4499,4.672,6.4397,3.7881,5.177,3.0305,5.5558,3.283,2.7779,1.894,2.2728,0.25254h3.283l2.1466-1.0102,2.5254-2.3991,1.6415-1.2627,2.7779,0.25253,2.3991-0.12626,2.0203-0.63135,1.5152-0.88388,1.6415-0.37881,3.1567,0.12627,1.6415,0.25254-0.50508,1.5152-0.88388,1.1364-1.1364,0.63134-0.50508,1.894,1.2627,1.7678,1.2627,1.389,0.12627,1.894-1.1364,1.389-0.88388,0.25254-0.75762,1.389-2.0203,0.25254-2.3991-0.12627-2.1466,0.88388-2.5254,1.389-1.389,1.1364-3.0305-0.12627-2.1466-0.50507h-3.1567-2.0203l-1.0102,0.3788-1.389,1.5152-0.75762,0.88389-2.1466,1.6415-1.5152,0.50508h-2.3991l-2.3991-0.25254-1.5152,0.50508-2.9042,2.0203-2.2728,1.2627-1.5152,1.0102-1.5152,0.3788-1.2627-0.12626-1.2627-1.0102-0.12626-1.894-0.63135-1.389-1.6415,0.88388-1.5152,1.389-1.0102,1.2627-0.88388,0.50508-1.2627,0.50507-0.75762,0.37881-0.12627,1.7678-0.3788,1.7678-0.63135,1.389-0.88388,1.1364-1.0102,1.6415-1.894,1.6415-1.6415,1.389-1.2627,0.75762-2.7779,3.283-1.894,2.6516-1.1364,3.0305-0.50507,1.6415-1.5152,1.6415-2.0203,0.88388-1.5152,0.63134-1.7678,1.0102h-2.2728l-3.1567-1.0102-3.1567-1.6415-4.4194-2.1466-0.75761-0.3788-2.5254,0.50507h-3.283l-3.0305-0.88388-2.9042-1.389-1.0102,0.25254-1.6415-0.12627-1.5152-1.2627-2.2728-2.3991-1.894-0.88388-0.63135-1.5152-2.2728-3.0305-5.8084-1.1364-1.389-0.63134-1.7678,0.63134-0.75761,0.75762v0.75761l0.37881,0.88389v1.6415,1.0102l-0.50508,0.3788-1.389-0.63134-0.88388-0.37881-1.1364,0.25254-1.5152,0.88388-1.5152,0.50508-1.1364-0.25254-0.88389-1.389-0.88388-0.63135-2.2728-0.88388-6.0609-1.1364-1.2627,0.25254-1.1364,1.1364-0.63135,1.5152-1.1364,0.37881-1.6415-1.389v-1.1364l1.0102-1.389,0.50507-0.75761-0.50507-1.0102-1.1364-1.0102-1.1364-1.0102-0.3788-0.75761,1.5152-1.2627,1.1364-2.5254,1.6415-1.0102,1.6415-0.3788,1.894-1.2627,0.88388-2.3991,1.2627-1.2627z\",\"name\":\"Komi Republic\"},\"mu\":{\"path\":\"m217.31,136.92,1.1364-1.5152,1.5152-0.75761,2.9042,0,4.2932,0.12626,2.1466-0.50507,2.5254-1.6415,0.88388-2.0203,0.12627-3.5355,1.5152-3.4093,1.0102-1.0102,4.7982,0,2.3991-0.63134,1.0102-1.2627,1.7678-0.12627,2.3991,1.0102,3.0305,1.894,2.2728,1.894,2.6516,0,2.2728-0.25253,0.25254,2.3991,1.894,0.3788,1.7678,1.0102,0,2.2728,0,1.7678-1.0102,0.63134-1.5152-0.3788-0.75761-1.1364-0.25254-0.63134-0.88388,1.0102-0.25254,0.63135,0.50508,1.1364,1.1364,0.88388,0.50507,0.75762-0.3788,1.0102-1.0102,0.63134,0,0.75762,1.1364,1.2627,0.88388,1.5152,0.88388,1.7678,2.0203,2.1466,0.75761,1.7678,0,1.7678,0,1.1364-0.50507,1.1364-0.25254,2.0203-0.12627,5.5558,0,5.5558-0.75762,1.389-0.25253,1.894,0.63134,0.88389,0.63135,1.0102-0.12627,4.0406,0,3.5355-0.63135,1.389-1.7678,1.1364-0.88389,0.88388,0,1.0102-0.25254,0.88389-1.1364,0.88388-2.7779,0.75761-3.6618,0.12627-3.1567,0.50508-1.6415,0.37881-2.5254-0.50508-2.0203-0.75761-1.894-1.389-1.894-2.2728-1.7678-2.2728-1.1364-1.894-0.63135-2.2728-0.3788-2.3991-1.2627-2.6516-1.1364-2.0203-0.3788-1.6415-0.37881-3.9143,0-1.7678,0-1.389-0.88388-0.88389-0.12627-2.9042,0-2.1466,0.75761-1.5152,0.12627-1.1364,0-1.5152-0.88388,0-0.63135,0.88388-0.88388,1.389-0.75762,1.894-0.25253,0.63135-3.5355,0-2.6516-0.25254-0.75761-1.5152,1.389-2.0203,1.1364-0.75761,0.25254-1.0102-1.7678-2.2728-1.5152-1.7678-1.2627-2.7779-1.2627-1.2627z\",\"name\":\"Murmansk Oblast\"},\"kl\":{\"path\":\"M216.94,136.91l-2.28,1.53,0.12,1.62-1,2.28-1.9,2.04-1.88,0.87-4.31-0.13-0.88,1-2.28,2.16h-2.91l-2.4,0.38-0.13,4.03-0.62,1.9-2.91,0.38-1.87,0.25,0.12,1.4,0.88,1.5-1.78,1.29-1.25,0.5-3.41-0.91-1.66,1.16-0.37,2.9-0.13,4.16-1.25,2.28-2.65,1.62-3.41,1.16-8.72-0.12-3.53-0.91-5.19-0.75-4.28-0.75,0.88,1.87-0.13,1.54,0.07,0.53-0.94,5.65-2.53,1.5-2.03,3.32-2.91,1.87-0.13,1.66,2.66,1.25,1.91,0.75,1,2.4,2.9,0.25,5.07-0.75,1.65-0.9,2.25,0.53,1.78,1.37,1.38-1.62,1.12-0.78,1.78,4.69,1.5,0.62,2.91,1.53,0.06,0.69-0.12,2.69,0.06,1.78-1.63,1.53,1,1.12,2.29,0.5,1.75-0.62,2.53-1,0.62-0.5,1.91,1.5,1,1.9,1.03,1.88,3.16,0.25,3.28-3.03,0.75-1.5,1.25-1.38,2.4-1.28,2.03-1.75,0.5-1.15-0.37-1.25-1.91-0.63-1-1.03,0.13-1.63,1.37-2.4,1.78-1.91,1.66-1.87,1.25-2.16,1.38,0.25,1.78,1.53h1.9l0.88-0.53,0.12-2,1.5-2.03,0.25-1.75-0.25-3.16-0.5-1.53,0.63-1.78,1.4-0.87,1.38-0.63,3.03-2.53,0.5-1.13,0.53-1.28h1.38l3.4-0.62,2.16-1,1.5-1.28v-1.88-3.4l0.25-2.54,1.03-0.87v-1.16l-0.12-2-0.78-1.15-2-0.38-1.41-0.37-0.63-0.88v-0.75l0.63-1.15,1.28-1,0.75-0.63-0.38-1.03-1.65-2.37-1.88-2.29-1.4-2.15-1.75-2.53z\",\"name\":\"Republic of Karelia\"},\"vo\":{\"path\":\"m185.36,208.76c0.12627,2.5254-1.389,5.0508-1.389,5.0508l-1.5152,1.894s-0.3788,1.0102-0.3788,1.7678c0,0.75762,0.12626,1.389,0.12626,1.389s0.63135,1.389,1.894,2.1466c1.2627,0.75761,2.0203,2.7779,2.0203,2.7779l1.0102,1.894,1.5152,1.2627,1.2627,1.0102,1.1364,1.894,1.2627,0.37881,3.1567,0.50508,1.5152,2.2728,1.0102,1.894,1.7678,0.63135,0.25254,0.63135,1.0102,2.2728,1.2627,0.75761,2.6516,0.25254,1.5152,0.12627,0.50507,2.7779,1.2627,2.0203,2.7779,1.389,1.389,0.12627,1.0102-0.63134,1.389,0.12627,1.0102,0.50507,0.75761,1.0102-0.63134,1.5152-0.75762,1.389,0.25254,0.75762,1.2627,1.1364,0.75761,0.50508,1.0102,0.50507,0.3788,0.63135v1.0102l-1.5152,1.5152-2.0203,0.63135-2.0203,0.75761-4.2931-0.25254-1.2627,0.88389,0.25253,1.1364,0.88389,1.2627v2.6516,1.1364l-1.0102,1.1364-0.75761-0.63134-1.1364-1.0102-0.37881-1.5152-1.0102-0.12626-1.6415,1.0102-1.0102,1.0102h-1.7678l-3.0305-1.5152-2.1466-2.1466-2.0203-1.1364-1.894-1.6415-2.0203-2.7779v-1.894l-1.894-2.7779-2.5254-2.2728-1.5152-2.0203-1.2627-1.7678-0.63135,0.75761-1.6415,0.12627-1.6415-0.25254-2.2728-1.894-0.88388-0.50508-1.2627,0.63135-2.7779,1.7678-0.63135,0.37881-1.2627,0.12627-0.88388-0.50508-0.50508-1.2627-0.63134-1.894,0.25254-4.0406-0.50508-2.5254-0.50508-1.2627-1.2627,0.12627-1.2627,0.37881-0.88388-0.25254-1.389-1.2627-1.6415-1.7678-4.0406-1.0102-1.2627-1.1364-0.50508-1.0102,0.63135-2.0203-0.50508-0.88388-1.0102-0.75761-1.1364-0.63135-1.894-0.37881-0.25254-0.12627,0.50508-2.7779-0.50508-1.6415-0.63134-1.2627-0.88388-0.88389-0.37881-0.50507-0.12627-1.0102-0.25254-1.5152,0.63135-0.88388,0.75761-0.88388,1.389-0.25254h1.6415l0.88388,1.2627,1.0102,0.88388,1.1364-0.50507,0.25253-1.1364,1.2627-0.25254,1.1364-0.63135,0.75761-1.1364,0.12627-1.5152,3.283-3.6618,1.2627-0.88388h1.7678l2.0203-0.37881,1.389-0.75762,0.88388-0.63134h1.1364l1.5152,0.88388h1.2627l0.88389,0.75762,0.50507,0.88388,1.389,0.63134h1.1364l1.389-0.3788,1.5152-0.50508,1.1364-0.37881,0.63135-0.25253,0.88388,0.12627,1.0102,0.88388,1.2627,1.6415,0.50507,1.2627z\",\"name\":\"Vologda Oblast\"},\"ar\":{\"path\":\"M391.06,151.03l-3.56,1.06-2.16,0.91-3.56,0.19-1.59,0.87s-1.26-1.07-1.97-1.25c-0.72-0.18-0.91,1.1-0.91,1.1l-1.78,2.65-2.69,1.63-3.03,0.87-2.31,1.78s-2.15,0.37-3.22,0.72c-1.07,0.36-2.5,0.19-2.5,0.19l-1.59,0.72,1.06,1.78-2.16,1.25,0.38,0.72,1.25,1.44,1.78,1.59,1.78,1.78,0.91,1.63,1.4-0.72,0.91-1.97,2.16-0.72,1.25-0.53,1.93-0.19,0.91-1.59h1.97l1.25,0.87,1.59-1.25,1.1-1.25,2.65-0.15,0.72-0.57,3.41,0.72,1.78-1.06,0.34-1.44,2.69-0.34s1.07-0.01,2.5-1.44l0.72,1.06,2.84-0.68s1.98-0.19,2.69-0.19,3.03-0.38,3.03-0.38h2.31l2.35,1.25,1.78,0.91,1.25-0.72,0.72-0.87,4.28,1.06,1.97-1.44,3.22,0.19,4.09-0.72,1.25-1.59,1.97-2.88s-1.26-0.89-1.97-1.25-2.69-1.44-2.69-1.44l-3.22,0.57-4.43,1.59-4.32-0.91-2.5-0.15-3.18-0.72-1.63-0.91-1.59-1.78-1.44,0.72-1.97,1.06-2.5-0.15-3.22-0.91-2.5-0.72zm-35.53,14.47l-2.5,0.53-1.78,1.63-2.5-0.38s-1.44-1.06-1.44-0.34v1.78l0.72,1.59-2.12,1.25-2.88,1.1-1.06,1.25h-2.16l-0.72-1.1-1.59-0.87-2.69,2.12-0.15,3.03,1.93,2.69,1.44,2.16s1.26,2.14,0.91,3.03c-0.36,0.89-4.28,2.5-4.28,2.5l1.06,2.5,1.25,1.59v1.97l2.31,0.53,2.88,1.97,2.12,2.31,1.97,0.38s1.06-1.07,1.06-1.78c0-0.72-0.15-4.48-0.15-5.38,0-0.89,1.59-8.37,1.59-8.37l0.34-1.44,4.13-2.69s0.88-1.07,2.31-1.97c1.43-0.89,4.66-3.03,4.66-3.03l1.78-1.4s0.71-1.64,0-1.82c-0.72-0.17-1.62-0.53-2.16-1.25-0.53-0.71-3.03-2.65-3.03-2.65l-1.25-1.44zm-132.28,14.34l-0.63,0.63-2.28,0.25-0.87-0.13-1.78,0.91v1.38l-0.63,1.65-1.15,0.75-0.13,1.38,0.91,0.78,0.87,0.87-0.12,1.25-1.25,1.28-1.66,1.5-1.65,0.13-1.38-1-0.62-1.53-1.41-2-1.25-1.03-2.03,0.53h-1l-2.41-1.66-1,0.38-1.66,2.15-1.37,2-1.66,1.78-1.25,2.66,0.38,1,1,1.28,1.78,0.25,0.12,1-0.12,1-2.78,2.41-2.16,0.87-1.87,3.03-2.53,2.53-2.91,0.5-1.13,0.13-0.5,0.91-0.28,1.87-0.87,2.16-1.75,2.03-0.13,1.87,1.25,2.79,1.5,1.28,2.04,3.53,3.78,4.15,1.28,0.75,3.15,0.38,0.38,0.65,1.37,1.38,1.66,2.53,1.38,0.5,0.5,1.66,0.9,1.5,3.28,0.5,1.63,0.25,0.78,1.4,0.37,2.13,0.75,1.15,2.41,0.88,1.5,0.75,1.28-0.5,1.13-0.25,1.37,0.75,0.91,1.66-1.03,1.25-0.13,1.53,0.66,1,1.25,0.75,1,1.03,1.03,0.62,0.75-0.37,1.25-0.25,1.41,0.5,1,1.37,0.5,0.91,0.24,2,0.26,1.03h0.65l0.88-0.16,0.87-0.5,0.63-0.37h1.03l0.75,0.75,0.62,0.91,0.88,0.25,1.4,0.25,1.88-0.5,1.41-0.5,1.37-1.79v-0.87l-0.37-0.66-0.26-0.5,0.26-1,0.5-0.5,2.78-1.28,2.4-1,1.66-1.12,1.87-0.78,0.5-0.75,0.13-1.38-0.75-1.53-1.13-0.87-2.15-0.13h-1.5l-1.53,0.5-1,0.75h-1.28l-0.63-0.12-1-1.13-1.53-0.37-0.75-0.38,0.25-1.53v-1.13l1.66-0.5,0.74-0.78,0.76-0.87,0.62-1.63,0.53-0.37,1.5-0.53,1.78,0.25,1-0.5-0.12-1.38-0.5-0.87-0.5-1.66,0.25-0.88,0.87-0.62,1-0.53,1.41-0.63,1.37-0.75,0.38-0.75v-0.5l-0.88-1.9-0.75-1.41-0.9-1.62-1-0.75-0.63-1.28,0.38-1.88,0.62-0.5h1.28l0.88,0.38,1,0.87,1.41,2.16,2.65,2.37,1,0.91s1.65,0.49,2.28,0.75c0.63,0.25,1.38,1,1.38,1l0.5,0.62,0.37,1.03,0.53,1,1,0.63,1.38,0.37h1.41l1.12,0.53,0.88,0.88,2.03,0.5h1.37l0.28,0.88,1,0.53,1,0.25,0.88-0.54,0.78-0.74-0.13-1.26-1.03-1.03,0.38-0.87,0.78-1,0.37-1.53-0.25-1-1.15-0.75-0.13-1.28,0.91-0.88,3.15-3.28,1.88-1.12,1.91-1.79,0.25-1.25-0.63-0.5-1.65-0.9-1.63-1-2.16-0.25-1.25,0.62h-1.4l-1.5-1.12-1.03-1.78-0.75-1.75-1.5-3.16-1.41-2.28-0.75-1.41-0.88-2.25-0.12-1.15-2.41,0.25-0.75-0.63-1.53-1.12s0.25-0.5,0.88-0.5,1.02-0.41,1.53-0.66c0.5-0.25,0.25-0.87,0.25-0.87s-0.37-1-0.88-1.76c-0.5-0.75-0.77-0.77-1.28-1.15-0.5-0.38-0.75-1.75-0.75-1.75l-1.25-0.41-2.03-0.5-1.66,0.13-1.5,0.53-1.9,0.12-0.88-0.65-1.62-1-2.03-0.13h-2.78-2.53l-1.63,0.75-0.91,0.75-0.37,1.66-1.13,1.37-1.12,2.04-1.28,0.87h-2.41c-0.63,0-1.75-1-1.75-1l-1.03-1c-0.51-0.51,0-2.03,0-2.03s0.13-1.53,0-2.16-1.5-1-1.5-1l-2.03-0.87s1.65-0.78,2.16-1.16c0.5-0.38,0.37-1,0.37-1v-2.28c0-0.63-0.25-2-0.25-2l-0.75-1.91zm110.16,1l-0.19,1.1,0.53,1.78,1.44,0.72,0.53-0.72v-1.63l-0.38-1.25h-1.93zm-28.22,6.19l-2.35,0.78-1.4,2.07-2.88,1.43-0.25,1.07,1.78,1.43,2.13,0.97,3.22-0.44,3.5-0.9,0.25-1.6-0.78-1.96-1.1-1.88-2.12-0.97z\",\"name\":\"Arkhangelsk Oblast\"},\"tu\":{\"path\":\"m299.02,389.7,2.0536,0.80357,2.1428,1.1607,1.6072,1.3393,1.6071,1.5179,1.7857,0.71428,2.3214,0.17858,0.89286-1.0714,1.6071-1.875,0.53572-2.3214,0.625-2.1429,2.2321-1.7857,1.875-0.44643,1.25-2.5,1.6964-1.0714,2.9464,0.26786,1.6071-1.6072s0.625-2.3214,0.53571-2.6786c-0.0893-0.35714-0.80357-2.5893-0.80357-2.5893l-0.89285-1.875-0.625-3.3036-0.71429-2.2322v-1.7857l1.5179-1.9643,2.2321-2.5,1.4286-1.4286,3.125-0.26786,0.35714,1.4286-0.89285,1.6071-1.6964,1.6964-0.17857,1.25,2.5,0.35714,4.0178,0.35714,1.9643,1.6072,3.0357,1.7857,1.5179-1.25,2.9464-0.17857,2.1429,1.4286,3.3928,1.0714s2.5-0.98214,2.9464-1.1607c0.44643-0.17857,3.5714-0.44642,3.5714-0.44642l0.89286-0.98215-0.53572-1.0714-1.6964-1.25-2.9464-2.2321-1.0714-1.4286s-1.6964-0.44643-2.3214-0.44643-2.6786-0.80357-2.6786-0.80357l-0.17857-2.6786-0.26786-2.4107-1.3393-1.3393-0.44642-2.2321-0.53572-3.5714-0.35714-0.89286-2.4107-2.7679-1.1607-0.71428s-2.6786-0.26786-2.9464-0.26786h-5.0893l-0.98215-0.26786s-0.625-1.5178-0.625-1.875c0-0.35714-0.98214-1.5178-0.98214-1.5178l-1.875-0.35715-1.25,1.25-2.4107,1.875-2.1429,0.89286h-3.0357l-4.6428,0.0893-2.9464,0.26785s-1.4286,0.53572-1.7857,0.625c-0.35714,0.0893-4.375,0.0893-4.375,0.0893l-3.0357-0.0893-1.4286,0.35715-0.89286,1.5178-0.53571,2.3214-0.89286,1.3393-2.3214,0.71428-1.6071,0.53572-1.5179,0.35714-1.7857-0.17857-1.3393-0.625-1.4286,0.17857c-0.35714,0.17857-1.6964,1.0714-1.6964,1.0714l-1.1607,2.1429-0.35715,2.4107-1.6071,2.3214-2.1429,2.5893-0.98214,1.5179,0.26786,1.25,0.71428,1.3393,1.5179,1.25,1.25,1.6071,1.6964,1.875,1.0714,1.6964s3.0357,0.98214,3.0357,1.5179c0,0.53571,1.6964,2.9464,1.6964,2.9464l0.625,1.875,1.6071,1.4286,1.875,0.71428,1.0714,0.80357,1.4286,2.3214,1.0714,1.4286v1.6072z\",\"name\":\"Tyumen Oblast\"},\"ne\":{\"path\":\"m260.27,198.54,1.6071-0.89286,1.4286-1.1607,2.0536-1.0714,1.1607-1.25,0.625-3.3929,1.1607-1.6071s1.4286-0.80358,2.4107-1.0714c0.98215-0.26786,2.3214-0.26786,2.6786-0.26786,0.35714,0,1.5178-0.98214,2.0536-1.5179,0.53571-0.53571,3.0357-2.5,3.0357-2.5l0.71429-1.0714v-2.2321l1.25-1.9643s0.89285,0.17857,0.98214,0.625c0.0893,0.44642,0.26786,1.5178,0.625,1.6964,0.35714,0.17858,1.875,1.4286,1.875,1.4286l1.6964,1.1607,0.98214,0.89286-0.0893,1.3393-0.625,1.4286-0.44643,1.7857v1.6964l-0.26786,1.0714-0.44643,0.80357-0.26786,1.25-1.25,0.71428-1.3393-0.625-1.25-0.98214-0.625-0.80357-2.3214-0.53572h-3.0357c-0.44643,0-2.1429,1.1607-2.1429,1.1607l-0.80357,1.4286,0.17857,1.0714s0.53571,0.89286,0.625,1.25c0.0893,0.35714-0.71429,1.1607-0.71429,1.1607l-0.89285,1.6072s-0.26786,1.1607-0.0893,1.4286c0.17857,0.26785,0.625,0.80357,1.1607,1.25,0.53572,0.44643,1.875,1.5178,2.1429,1.6964,0.26786,0.17857,1.875,0.89285,1.875,0.89285s2.3214,0.17857,2.8571,0.17857c0.53572,0,1.9643-0.26785,1.9643-0.26785s1.5179-0.98215,1.875-1.1607c0.35714-0.17857,1.9643-1.1607,1.9643-1.1607s1.0714-0.44643,1.4286-0.35714c0.35714,0.0893,1.3393,0.98214,1.3393,0.98214l2.3214,0.17857s0.35714-0.44643,0.71429-0.80357c0.35714-0.35714,0.53571-0.71429,0.98214-0.35714,0.44643,0.35714,1.875,1.3393,1.875,1.3393l1.7857,0.44643h5.0893l2.5893,0.0893s0.80357,0.80357,1.25,0.89285c0.44642,0.0893,3.3928,0.53572,3.3928,0.53572l1.5179,1.4286,0.71429,1.9643,1.1607,0.17858,0.71429-1.5179,0.89285-1.0714,1.875-0.17857,0.89286,0.53571,2.1429,0.17857,2.5893,0.44643-0.44643,0.80357-0.98214,0.80358-1.6964,0.625-0.80357,0.98214-0.71428,0.98214-1.6964,0.71429-0.26786,1.0714,1.3393,0.98214,1.25,0.53571,0.625,2.0536,0.71428,0.35715,1.6964-0.80357s1.3393-0.89286,1.6071-0.89286c0.26786,0,3.3036,0.53571,3.3036,0.53571l2.6786,1.3393,1.5178,1.3393,1.4286,0.89286,4.4643,0.17857,0.71429,0.71429,1.5178-0.26786,2.5893-0.35714,1.7857-1.3393,0.625-1.7857s0.53572,0.625,0.53572,1.1607c0,0.53572-1.6964,2.7679-1.6964,2.7679l-0.71429,1.7857v1.0714l-1.1607,1.1607-0.89286,0.625-0.44643,0.98214,0.44643,0.80357h1.4286l0.80357-1.6071,0.17858-0.53572,1.5178-0.0893,1.5179,1.25,2.3214,0.35714,1.1607-0.89286,1.3393-1.1607,0.53571-0.89286-0.71428-1.0714-0.35715-1.4286,1.5179-1.1607,0.71429-1.875-0.53572-1.6964-1.25-0.80357-0.71428-3.3929-0.26786-3.125s-0.26786-0.89286,0.0893-1.25c0.35714-0.35714,2.2321-1.6964,2.2321-1.6964l1.3393,0.17857,1.1607,1.4286,1.0714,1.9643,0.35714,2.1429-0.89286,3.3036,0.89286,1.0714,2.8571,2.4107,2.7679,2.8572,3.3929,2.5893,2.1428,3.3036,1.6964,3.3929,0.80357,1.875,0.17858,1.6071-1.0714,1.1607-0.98215,2.0536-0.98214,1.5179h-2.5c-0.44643,0-3.6607-0.17858-3.6607-0.17858l-2.1429,0.98215-2.7679,0.71428h-3.0357l-1.7857-0.17857-2.4107,1.875-3.0357,2.4107-1.6072,0.53571-2.7678-0.0893-2.0536-0.53571-4.2857-2.4107-23.036-13.929-7.6786-6.875-1.25-1.1607v-1.3393l-0.98214-0.625-2.4107,0.625-5.0893-0.44642-5.625-0.98215-5.1786-0.80357-3.125-0.26786-4.1071-2.3214-2.0536-0.44643-1.7857,0.625-1.7857-0.26786-1.5179-1.7857-4.2857-8.4822-0.98215-2.4107z\",\"name\":\"Nenets Autonomous Okrug\"},\"om\":{\"path\":\"m358.39,368.89,0.71428,2.5-1.25,1.6071-1.25,1.9643,0.53572,1.6071,0.71428,1.9643-1.25,1.9643s-1.0714,1.25-1.0714,2.1429c0,0.89286,0.17857,3.0357,0.17857,3.0357l1.7857,1.6072,0.35714,2.3214-0.53571,3.3929-1.9643,0.89286-1.25,1.6071,0.71429,2.3214-0.35715,1.9643-3.9286,0.17857s-1.4286-0.89286-2.3214-1.0714c-0.89285-0.17857-3.3928,2.8571-3.3928,2.8571l-2.5,2.1429-0.89286,4.2857,0.53571,0.89286,1.9643,2.1429,0.35714,2.6786-1.6071,2.6786-1.0714,1.7857-0.17857,3.0357-2.5,2.1429s-2.3214,1.0714-3.0357,1.0714h-4.8214l-1.6072-0.71428c-2.1428,1.4286-3.75,0-3.75,0l-1.6071-0.71429-1.9643-0.35714h-1.0714l0.35714-1.7857,1.7857-1.0714,0.71429-1.4286-2.3214-1.25-2.1429-2.3214-1.9643,0.89285-0.89286-0.71428v-3.75l-1.4286-0.89286-2.8571,0.35714-2.8572-0.89285-0.89285-0.53572-0.17857-2.1428,2.1428-2.6786,0.71429-2.3214,0.35714-2.6786v-4.1071l0.71429-2.1429,1.4286-3.9286,1.6071-2.5,2.3214-0.53571,1.0714-1.25,1.0714-1.7857,1.6071-0.89285h2.6786l1.6071-1.4286,0.89286-3.9286-1.4286-3.2143-0.71429-3.0357-1.25-3.3928,0.35715-1.6072,4.4643-4.6428,1.0714-0.89286h2.6786l0.17857,1.6071-1.25,1.6072-1.7857,1.25-0.17857,1.4286,1.4286,0.35714,3.2143,0.35714,2.3214,0.17857,2.1429,1.4286,1.9643,1.4286,1.0714,0.35714,1.0714-0.71429,1.9643-0.35714,2.3214,0.35714,3.5714,1.6072h2.5l2.1428-1.0714h2.1429z\",\"name\":\"Omsk Oblast\"},\"ht\":{\"path\":\"m329.64,260.32,0,3.75-0.53572,3.2143-1.6071,2.3214-2.3214,2.3214-0.89286,1.25,1.9643,1.9643,1.7857,2.3214,5,1.9643,4.8214,0.17857,3.5714,1.4286,2.3214,2.6786,0,1.4286-2.1429,1.7857,1.4286,1.4286,2.3214,2.8572,1.9643,1.0714,2.1428-1.0714,1.7857-0.89286s1.6071,0.71429,1.9643,0c0.35715-0.71429,0.89286-2.1429,0.89286-2.1429l1.6071,2.1429,1.4286,2.8571,1.9643,1.6072s0.35714,2.1428,0.35714,2.8571v4.6429l1.9643,3.3928s0.35714,0.17857,0.71429,0.89286c0.35714,0.71429,0,2.1429,0,2.1429l1.0714,1.25,2.5,0.53571,3.75,0.71429,1.4286,0.89285s2.8571,2.1429,3.5714,2.6786c0.71429,0.53571,1.25,1.6071,2.1429,1.9643,0.89286,0.35714,3.5714,0.53572,3.5714,0.53572l2.8571,0.35714,0.89286,1.0714s0.35714,1.6071,0.71428,2.6786c0.35715,1.0714,1.4286,1.7857,1.4286,1.7857l3.0357,0.17857,1.7857,0.53572,0.35715,1.9643,0.35714,1.4286,1.0714,2.5c1.9643,0.17857,2.5,0.17857,3.5714,0.17857s3.3928,1.0714,3.3928,1.0714l1.9643,0.71428,2.8571,0.35714,2.8572-1.0714,3.2143-1.9643,3.0357,0.53571,1.9643,2.6786s0.35714,1.7857,1.0714,2.1428c0.71429,0.35715,2.8571,0.53572,2.8571,0.53572l2.3214,1.6071,0.71429,2.3214,1.9643,0.71428,2.6786-0.89285,1.9643,1.6071,1.0714,3.0357v2.3214l-0.35714,1.6072-0.53572,1.9643,3.0357,1.9643,2.5,1.7857,0.35714,2.3214v1.0714l-3.75,1.7857-2.6786,0.53572-3.2143,0.17857-3,0.15-1.61-1.07-1.7857-0.71428-2.3214,0.35714-2.3214,1.6071-2.6786,1.0714-2.1429-1.9643s-2.8571-0.35714-3.5714-0.35714c-0.71429,0-2.3214-1.7857-2.3214-1.7857l-0.89286-1.25-3.9286,0.17857h-3.5714l-1.6071-2.5s-1.25-0.89286-2.1429-0.89286c-0.89286,0-4.4643-1.25-4.4643-1.25l-2.5-2.3214h-1.25c-0.71428,0-2.3214,1.25-2.3214,1.25l-2.5,2.1429-1.7857,2.6786-2.8571,2.5-1.6071,3.3929-4.4643,1.6071-3.5714,0.89286-0.35714,2.1429-0.71429,2.1428-2.6786,1.25h-2.8571l-5.8929-5.5357-3.9286-0.89286-1.0714-1.4286-0.53571-4.1071-1.0714-1.25-1.0714-5.3572-0.53571-1.7857-3.5714-3.2143h-5.5357l-3.0357-0.35714-1.9643-2.8571-1.6071-0.53572-4.4643,3.0357-3.3929,0.71428h-5.1786l-5,0.71429-4.2857,0.53571h-3.5714l-1.4286-0.17857-0.53571-2.8571-0.35714-3.2143,0.89285-3.2143-0.89285-3.2143-2.3214-2.1428-1.0714-0.89286-1.0714-1.0714,1.25-2.6786,1.4286-2.3214-0.17857-2.1429-0.71429-3.2143,0.71429-5.5357,1.4286-1.7857,1.4286-2.1429-0.71428-2.3214-1.0714-3.5714-1.9643-2.6786-2.3214-3.3928-3.3928-2.1429-1.7857-1.9643-1.0714-2.6786,3.3929-2.1429,1.6071-2.6786,2.3214-4.8214,2.1429-2.6786,2.5-1.9643,3.5714-3.3929,1.6071-1.7857,1.7857-3.3929-0.17858-1.7857,0.89286-1.0714,2.1429-1.0714,1.4286-1.9643,1.6071-1.0714,1.25,0.17857,0.89286,2.3214,0.35714,1.0714,1.4286,0.35714,2.5-0.71428,3.0357-1.6071,1.4286-1.25,1.25-1.0714,2.5-0.53572z\",\"name\":\"Khanty–Mansi Autonomous Okrug\"},\"ya\":{\"path\":\"m366.25,234.25,1.4286,2.6786,1.6071,1.7857,1.6072,2.6786,1.0714,3.0357,0.89286,2.8572,3.0357,0.17857,1.7857-1.6072,1.4286-1.25-0.53571-3.2143s-0.89286-1.4286-0.53572-2.3214c0.35715-0.89286,1.7857-2.5,1.7857-2.5v-2.3214l-2.1429-1.6071-1.25-2.5s0.71429-1.6071,1.4286-1.9643c0.71429-0.35714,3.75-2.3214,3.75-2.3214s1.6071-3.75,1.9643-4.4643c0.35714-0.71429,0.35714-4.8214,0.35714-4.8214l0.89286-1.4286,7.5-2.1429,4.8214-3.5714,5.7143-6.0714,3.2143-2.1429,2.1428-0.71429,1.7857,2.3214,3.3928,0.35714,1.7857,1.25,1.0714,2.6786,0.17857,1.7857-0.89286,3.75-2.1429,2.6786-2.3214,2.8571-3.0357,1.6072-1.25,1.0714-0.35714,1.9643,1.0714,2.1429,0.17857,2.8571-0.89286,2.8571-2.1429,2.6786-1.7857,3.2143-2.6786,4.4643-1.25,3.5714-0.89286,2.1429-0.17857,2.5,0.35714,2.6786,0.71429,2.3214-0.71429,1.4286-3.0357,2.1429-1.0714,3.2143-0.89286,3.2143h-3.2143l-2.3214,1.25-2.1429,3.3929-3.5714,0.53571-2.3214,1.25-1.4286,1.4286h-3.5714l-1.4286-1.0714-1.0714-2.6786-0.71429,0.53572v1.6071l-1.9643-1.4286-0.71428-1.9643-1.0714,0.71429-0.17857,1.9643,1.7857,2.1428,2.5,2.1429,2.5,1.25,3.2143,1.0714,2.1429,1.25,2.1428-0.89286,3.5714-1.7857,3.0357-0.71429,3.75-1.0714,2.3214-3.0357,3.2143-2.6786,3.3929-1.6072,2.1428-1.7857-0.17857-2.1429-0.89286-2.3214-0.17857-1.7857,2.1429-2.1429,4.2857-0.89285h3.3929l1.4286,1.4286,1.25,3.0357v2.8571,3.0357l-1.6071,1.4286-1.25,2.5,0.17857,3.5714,1.7857,1.25,3.2143,0.71428,2.1429,2.8572,1.9643,3.2143,0.53572-0.71428-0.53572-4.1072-2.5-3.2143-3.75-1.0714v-2.8571l2.3214-3.0357s1.7857-0.35714,1.9643-1.0714c0.17857-0.71428,0.17857-3.5714,0.17857-3.5714l-0.89286-3.9286-2.6786-2.6786-2.6786-3.2143-0.89286-1.4286h-2.1428s-0.53572,1.25-1.4286,1.25c-0.89285,0-2.6786-1.25-2.6786-1.25l-1.6071-1.0714-0.53571-2.5,1.4286-3.75,2.3214-3.2143,2.1428-2.6786,3.0357-1.25,0.17857-4.4643-0.17857-3.0357v-3.0357l0.17857-2.3214,1.7857-2.3214,1.4286-1.4286,2.1429-0.35715,3.2143-0.53571,2.3214-2.5,1.7857-1.0714,1.25,2.1429-1.9643,2.3214-0.89285,1.4286-1.0714,4.4643-1.25,2.5,1.25,1.7857,2.6786,2.1429h2.8571l1.4286,2.1428,2.3214,2.5,1.7857,0.35715-1.4286-2.1429v-2.5s-1.25-1.25-1.9643-1.6071c-0.71429-0.35715-3.5714-2.8572-3.5714-2.8572l-1.25-3.5714-0.17857-1.4286s1.9643-0.71428,2.6786-0.71428c0.71429,0,3.2143,0.89285,3.2143,0.89285l0.89285,1.7857,1.6072,0.17857,1.25-0.71429-0.35715-1.9643,0.17858-1.9643,1.4286-0.35714,1.6071,0.71429,1.7857,1.4286,1.25,1.0714,0.89286,1.7857-0.35714,1.7857-2.3214,2.5-3.0357,1.25,1.0714,1.4286,2.6786,2.1428,0.35714,2.8572,0.17857,3.3928-0.71429,2.6786-2.5,1.4286-2.6786,1.4286-3.5714,1.7857-2.1428,2.1429,0.35714,2.6786,1.4286,2.5,1.25,2.5,1.6071,1.0714h3.3929,2.5l1.7857,1.6071,0.53571,3.0357,0.17857,3.3928v2.8572l-1.9643,3.2143-1.7857,2.5h-2.6786l-0.71429,0.53572,0.53572,1.9643,0.71428,1.7857-0.53571,2.5-0.89286,1.25,2.3214,3.3928,0.53572,1.7857,0.35714,1.7857-1.25,1.7857-1.0714,1.25,0.89286,2.1428-0.17857,2.5-1.6072,1.6072,1.6072,1.7857,2.1428,1.9643,1.6072,1.4286-0.17858,3.3928-1.4286,2.3214-0.17857,2.6786,2.3214,2.1429,4.6429,0.89286,0.89285,1.4286-1.4286,2.1429-0.53571,3.3928-0.89286,2.3214-2.6786,1.4286s-0.89286,0.53572-1.6071,1.0714c-0.71429,0.53572-1.7857,2.8572-1.7857,2.8572l1.9643,1.7857,0.17857,2.3214-1.4286,2.1429-1.25,2.5-2.6786,2.3214-2.8572,2.8572-0.89285-1.7857-1.6072-2.1428-1.7857-1.0714-1.9643,0.71428-1.9643-0.71428-0.71429-1.6072-1.25-1.25-2.5-0.89285-2.1428-0.89286-0.71429-1.6071-0.89286-1.7857-1.4286-1.4286-2.8571-0.17857-2.5,1.4286-2.5,1.0714-2.6786,0.17857-4.1072-1.6071-3.5714-0.35714-2.1429-0.17858-0.89286-1.9643-1.0714-2.3214v-1.4286l-3.3928-0.71429-2.3214-0.53571-0.89286-2.5-0.71429-2.3214s1.4286-0.17857-1.0714-0.35714-5.5357-1.0714-5.5357-1.0714l-1.4286-0.53572-3.2143-2.5-2.5-1.6071-2.8572-1.0714-3.2143-1.25-1.25-0.89285-0.17857-2.1429-2.8572-3.9286,0.17857-6.7857-1.25-1.7857-2.3214-2.8571-1.0714-2.1429-0.53572-0.53572-1.0714,1.25-0.53571,0.71429h-1.4286l-2.6786,0.89286-1.25,0.35714-1.6072-0.35714-2.1428-2.3214-1.7857-1.6071,0.53572-0.89286,1.4286-1.6071-0.35714-1.7857-2.5-2.3214-3.0357-1.4286-4.2857,0.35714-3.0357-1.25-2.6786-0.89285-3.3929-4.2857,2.3214-2.5,2.5-3.75,0.17857-5.3571,0.35715-1.4286,3.75-1.0714,2.6786-2.5,1.4286-1.4286h3.75,3.3929l3.9286,0.53571,1.7857-1.25,3.5714-1.6071,3.3929-0.53571,2.5-1.25,2.3214-1.25,0.35714-2.8572-2.1429-2.3214-0.71428-1.25,0.53571-1.6071,2.3214-1.4286,0.35714-1.25,1.92-2.87z\",\"name\":\"Yamalo-Nenets Autonomous Okrug\"},\"kr\":{\"path\":\"M501.66,122.41c-0.45,0.04-1,0.37-1,0.37-0.9,0.72-1.25,0.77-0.94,1.13,0.31,0.35,0.19,0.55,0.9,0.78,0.72,0.22,0.91,0.49,1.44,0,0.54-0.49,0.77-1.24,0.41-1.69s-0.37-0.64-0.81-0.59zm11.56,0.65c-0.22,0.02-0.44,0.11-0.6,0.38-0.31,0.53-0.49,1.57-0.62,1.84s-0.2,0.74-0.78,0.88c-0.58,0.13-1.39,0.54-1.75,0.09s-1.03-1.51-1.25-1.69-1.04-0.74-1.13-0.03c-0.09,0.72,0.19,1.51,0.19,1.91s-0.18,0.99-0.4,1.12c-0.23,0.14-1.06,0.25-1.29,0.56-0.22,0.32-0.62,0.49-0.62,1.16s-0.27,1.67-0.31,1.94c-0.05,0.27-0.32,0.26-0.63,0.75s-1.09,1.87-1.09,1.87,0.89,0.62,1.15,0.85c0.27,0.22,0.42,0.77,0.38,1-0.05,0.22-0.13,1.05-0.53,1.19-0.4,0.13-1.43,0-1.78-0.13-0.36-0.13-1.01-0.48-1.5-0.44-0.49,0.05-1.01,0.23-1.19,0.63s-0.71,0.38-0.13,1.18c0.58,0.81,0.87,1.53,1,1.76,0.14,0.22,0.29,1.51,0.07,1.87-0.23,0.36-1,1.13-1.22,1.53-0.23,0.4-0.44,0.71-0.22,1.16,0.22,0.44,0.66,0.8,1.15,0.94,0.5,0.13,3.66,0.71,3.66,0.71s0.28-0.36,0.81-0.71c0.54-0.36,1.36-0.77,1.85-0.41s0.52,0.8,0.65,1.25c0.14,0.45,0.41,2.02,0.5,2.37,0.09,0.36,0.49,0.58,0.94,1.16s1.59,1.37,2.22,1.59c0.63,0.23,1.05,0.55,1.72,0.6,0.67,0.04,2.85,0.82,2.94,1.09s0.31,1,0.31,1,0.54,0.52,0.81,0.56c0.27,0.05,2.22,0.19,2.22,0.19,1.38-0.76,2.23-0.8,2.5-0.94,0.27-0.13,0.84-0.03,1.37-1.06,0.54-1.03,0.76-1.35,0.63-2.06-0.13-0.72-0.34-0.93-0.87-1.6-0.54-0.66-1.5-1.24-1.1-1.56,0.4-0.31,1.56-0.8,1.88-1.15,0.31-0.36,0.54-1.32,0.4-2.35-0.13-1.02-0.15-2.5-0.47-2.9-0.31-0.41-0.73-0.92-1.4-1.19s-1.23-0.67-1.81-0.53c-0.59,0.13-1.92,0.25-2.19,0.03s-0.62-0.83-0.85-1.5c-0.22-0.67-0.5-1.13-0.5-1.53s1.16-3.63,1.16-3.63,0.71-0.29,0.84-0.56c0.14-0.27,0.36-0.76,0.22-1.66-0.13-0.89-0.39-1.55-1.28-2.09s-2.09-1.72-2.09-1.72v-0.97c0-0.35-0.15-1.73-0.28-2-0.14-0.27-0.48-0.72-0.97-0.72-0.25,0-0.5-0.05-0.72-0.03zm17.72,22.91c-0.13,0.02-0.25,0.07-0.35,0.19-0.4,0.44-0.72,1.12-0.9,1.34s-0.51,0.09-0.91,0-0.89-0.43-1.16-0.03c-0.26,0.4-0.67,0.74-0.71,1.19-0.05,0.44,0.09,1.75,0.09,2.46,0,0.72,0.09,1.8,0,2.6s-0.2,1.3-0.78,1.66c-0.58,0.35-0.91,0.4-1.31,0.93-0.41,0.54-1.13,1.25-1.13,1.88,0,0.62,0.06,1.45-0.66,2.03-0.71,0.58-1.14,0.56-0.96,1.4,0.17,0.85,0.22,0.93,0.84,1.38s2.79,0.63,3.28,0.5,1.26-0.77,1.66-1.22,1.61-0.99,2.28-1.12c0.67-0.14,1.17-0.08,2.16-0.13,0.98-0.04,1.54-0.39,2.03-0.65,0.49-0.27,0.54-0.54,1.43-0.54,0.9,0,1.74,0,2.1-0.31,0.35-0.31,1.35-1.19,1.62-1.5s0.88-1.05,0.97-1.5,0.18-1.3,0-1.75,0.15-1.15-1.19-1.28-1.57,0.07-1.84-0.38c-0.27-0.44-1.03-0.88-1.03-1.37s0.08-1.02-0.19-1.37c-0.27-0.36-0.79-0.81-1.28-0.72s-1.31,0.58-1.53,0.62c-0.22,0.05-0.71-0.09-0.85-0.4-0.13-0.32-0.21-1.11-0.21-1.91s-0.25-1.63-0.25-1.63c-0.34-0.13-0.83-0.43-1.22-0.37zm5.22,20.03c-0.62,0.05-1.16,0.75-1.16,0.75s-1.62,1.95-2.16,2.84c-0.53,0.9-0.86,1.08-1.93,1.25-1.08,0.18-1.82,1.63-1.82,1.63s-0.51,1.23-0.68,2.12c-0.18,0.9-1.25,3.07-1.25,3.07v1.93l0.87,1.63s1.6,1.05,1.78,2.12c0.18,1.08-2.12-0.68-2.12-0.68s-2.14-0.73-3.03-0.91c-0.9-0.18-1.64,0.01-3.07,0.19-1.42,0.18-1.25,0.34-1.25,0.34l0.72,1.63s1.61,1.4,1.25,2.65c-0.35,1.25-1.4-0.53-1.4-0.53l-1.97-0.87s-1.98,0.16-2.88,0.87c-0.89,0.72-1.25,0.91-1.97,0.91-0.71,0-1.59-0.71-2.12-1.78-0.54-1.08-0.91-0.91-1.63-1.44-0.71-0.54-3.2,0-4.09,0s-2.32,1.79-3.75,1.97-1.78,0.53-1.78,0.53l0.34,2.12-1.97,1.1-2.12,0.53-2.16,0.53c-0.71,0.18-2.12-0.19-2.12-0.19l-1.97-0.34-1.44,0.87-0.53,0.57-2.84,0.15-2.16,0.91s-2.49,2.13-4.09,2.31c-1.61,0.18-0.19,0.53-0.19,0.53s1.06,0.91,1.06,1.63c0,0.71-0.7,0.87-0.87,1.4-0.18,0.54-1.45-0.33-2.35-0.68-0.89-0.36-1.25,0-1.25,0s0.2,1.04,0.38,1.93c0.18,0.9,1.06,1.28,1.06,2.35s-0.19,2.12-0.19,2.12,0.53,2.69,0.53,3.41v2.69c0,0.89-0.87,1.59-0.87,1.59s-1.25,0.72-3.03,0.72c-1.79,0-0.91-0.72-0.91-0.72l0.72-0.91-0.53-1.4-1.97-0.38-2.31,1.25-1.78-0.53h-3.22-3.94c-1.43,0-1.95-1.07-2.84-1.25-0.9-0.18-2.88-0.34-2.88-0.34s-2.14-0.02-3.03,0.34-1.97,1.06-1.97,1.06v3.07,3.03s-1.6,0.69-1.78,1.4c-0.18,0.72,0.01,2.68,0.19,3.75,0.18,1.08,1.05,0.72,2.12,1.25,1.07,0.54,2.16,1.25,2.16,1.25l0.53,0.57,0.34,1.78s0.57,1.94,0.57,2.65c0,0.72,1.25,1.97,1.25,1.97s0.68,1.63,0.68,2.35c0,0.71-0.51,1.22-0.87,1.93-0.36,0.72-0.73,1.61-0.91,2.5-0.18,0.9,0,2.16,0,2.16l0.38,2.84s-0.2,2.88-0.38,3.6c-0.18,0.71-0.89,1.42-1.78,1.78s-1.25,2.12-1.25,2.12,0.01,2.7,0.19,3.6c0.18,0.89,0.88,1.42,1.59,1.78,0.72,0.36,1.25,1.78,1.25,1.78l-0.87,1.78-1.78-0.34-1.44-1.78-0.91-1.82v-2.5s-0.54-1.76-1.97-2.65c-1.42-0.9,0.19-1.63,0.19-1.63s1.08-1.25,1.44-1.97c0.36-0.71,1.06-1.78,1.06-1.78s1.8-1.6,2.16-2.5c0.35-0.89-0.38-1.4-0.38-1.4l-1.06,0.68-1.78,1.82-1.78-0.91s0.69-1.25,0.87-1.78c0.18-0.54,0.54-1.79,0.72-2.5,0.18-0.72,0.35-1.6,1.06-2.31,0.72-0.72,2.35-0.19,2.35-0.19l1.25-1.25v-1.63l-1.1-1.59s-1.4-0.17-3.9-0.34c-2.5-0.18-0.72-1.25-0.72-1.25l-0.72-1.82s-0.72-1.76-1.44-2.12c-0.71-0.36-1.94-3.04-2.65-3.75-0.72-0.72-1.1-1.44-1.82-2.16-0.71-0.71-2.11-1.78-3.18-2.5-1.08-0.71-1.97-1.4-1.97-1.4l-1.63,0.34s-1.05,1.07-0.15,2.5c0.89,1.43,1.06,1.44,1.06,1.44l1.25-0.28,0.97,0.18,1.22,0.5,1.15,1.07,1.06,0.71,0.91,1.07,0.53,0.9,0.1,0.94-0.6,1.63-1.68,1.84-1.29,0.81-1.93,0.88,0.81,1.15s2.04,1.71,2.22,1.85c0.18,0.13,0.69,0.9,0.69,0.9l0.31,2.85,0.09,2.59s-0.33,2.1-0.37,2.28c-0.05,0.18-0.63,0.88-0.63,0.88l-7.09,3.97-1.44,0.9-1.25,0.94-0.66,0.81s0.3,2.37,0.35,2.6c0.04,0.22,0.64,1.18,0.69,1.4,0.04,0.23,1.28,2.69,1.28,2.69s1.15,1.2,1.46,1.69c0.32,0.49,2.16,0.31,2.16,0.31h3.44c0.4,0,1.34,0.5,1.34,0.5s1.3,0.98,1.35,1.16c0.04,0.17,0.37,1.31,0.37,1.31l0.38,3.34s0.09,3.42,0.09,3.69-0.5,1.56-0.5,1.56l-0.34,1.22c-0.04-0.01-0.07-0.03-0.1-0.06l-1.15,2.06-1.82,1.69-1.68,0.28-1.6,0.28,0.16,1.41s1,1.98,1,2.34-0.01,1.68-0.19,2.13c-0.18,0.44-0.81,1.68-0.81,1.68l0.47,1.19,1.15,1.69,0.88,2.41,0.47,1.68-1.16,1.97-1,1.63,0.72,1.93s0.08,1.53-0.09,1.97c-0.18,0.45-1.07,1.16-1.07,1.16l-0.43,1.19s4.1,3.63,5,4.53c0.89,0.89,0.15,1.52,0.15,2.06s-0.72,2.5-0.72,2.5l-1.25,2.22,0.1,1.87s1.54,1.46,1.72,1.82c0.17,0.35,1.68,0.78,2.22,0.87,0.53,0.09,2.78,0.38,2.78,0.38l1.25,1.31-0.19,0.81-1.16,1.63-0.72,3.28s-0.8,2.07-1.15,2.34c-0.36,0.27-1.44,1.16-1.44,1.16l-2.22,1.15-1.72,2.41,0.38,0.97,1.34,1,0.25,1.78-0.81,1.78-1.25,2.78-1.5,1.41-2.31,2.34-1.72,1.6-1.5,2.25s-0.9,2.92-0.81,4c0.08,1.07,0.96,0.72,0.96,0.72s1.62,1.07,2.16,1.34,1.51,0.99,1.78,1.34c0.27,0.36,1,1.24,1,1.69v1.53l-0.81,0.88-1.25,0.81-3.41,1.25-1.69,0.34-2.4-0.25s-1,0.43-0.91,0.78c0.09,0.36,0.72,1.63,0.72,1.63s0.45,1.24,0.63,1.69c0.17,0.44,0.27,0.88,0.72,1.06,0.44,0.18,0.09,2.97,0.09,2.97s-0.89,2.3-1.16,2.75c-0.27,0.44-0.46,1.25-0.37,1.87,0.09,0.63,0.72,1,0.72,1s1.7,0.69,2.06,0.78,2.94,1.1,2.94,1.1,3.13,0.72,3.84,0.72,2.58,0.06,3.56,0.15,2.5,1,2.5,1,1,0.87,1.53,1.41c0.54,0.53,0.25,4.64,0.25,5s2.88,0.19,3.5,0.28c0.63,0.09,2.32,0.81,2.32,0.81s0.43,1.33,0.43,1.69-0.43,1.88-0.43,1.88l-1.78,0.9-3.47,1.5-0.57,1.06s-1.13,4.74-1.4,5.19,0.53,1.88,0.53,1.88l1.5,0.62,2.25,1.06s3.47,2.25,4.09,2.79c0.63,0.53-0.09,0.96-0.09,0.96l-0.97,1.82-5.44,4.72-0.72,1.96-0.18,1.5s-0.44,3.58-0.44,3.94,0.34,1.53,0.34,1.53,1.81,1.15,2.25,1.5c0.45,0.36,1.88,1,1.88,1l0.72,1.41s0.79,1.54,1.06,2.34c0.27,0.81-0.72,0.97-0.72,0.97l-3.56,2.94-1.97,0.91s-1.35,1.33-1.44,1.87,0.81,0.97,0.81,0.97l0.97,1.44,1,1.34s1.95,0.73,2.75,0.91c0.81,0.17,1.63-0.57,1.63-0.57s1.42-1.95,2.4-2.22c0.99-0.26,0.53,0.46,1.07,0.72,0.53,0.27,1.96,0.61,2.59,0.88s2.22,1.34,2.22,1.34l0.81,2.06,1.78,7.41,0.82,2.5-1.26,4.13s0.1,2.05,0.19,2.4c0.09,0.36,0.8,1.24,1.07,1.6,0.26,0.35,0.43,2.15,0.43,2.15l-0.97,1.35-2.4,1.5-1.1,1.78s-2.3,3.32-2.65,3.59c-0.36,0.27-2.06,1.14-2.6,1.41-0.53,0.27-2.06,1.44-2.06,1.44s0.27,1.06,0.63,1.15c0.35,0.09,0.53,2.16,0.53,2.16l0.81,1.06,1.88-0.44,3.21,0.78,2.5,0.91s1.25,0.88,1.79,1.06c0.53,0.18,3.4-0.44,3.4-0.44s5.87-2.32,6.31-2.59c0.45-0.27,1.72-1.06,1.72-1.06s2.5-1.89,3.03-2.25c0.54-0.36,3.74-2.14,4.1-2.41,0.35-0.27,1.44-1.78,1.44-1.78l0.9-2.12s0.16-1.99,0.25-2.44,0.53-1.5,0.53-1.5l0.72-1.25,2.16-0.19,3.12,0.44,2.32,0.19s3.57,0.1,4.37-0.35c0.8-0.44,0.45-0.72,0.63-1.34,0.17-0.63-0.27-0.9-0.63-1.35-0.36-0.44-1-1.33-1.53-1.78-0.54-0.44-1.25-1.15-1.25-1.15s-2.31-4.22-2.31-4.75c0-0.54,0.81-1.15,2.15-1.69s3.91-0.97,3.91-0.97l2.06-1.19-0.09-2.65,0.47-1.78s1.16-2.8,1.25-3.07c0.09-0.26,1.51-2.93,1.68-3.56,0.18-0.62,0.62-1.79,1.07-2.59,0.44-0.81,1.62-1.68,2.15-2.03,0.54-0.36,1.68-1.91,2.13-2.44,0.44-0.54,1.09-2.22,1.09-2.22l-0.19-4.09s-2.13-2.42-2.4-3.22c-0.27-0.81,0.07-1.43,0.34-1.78,0.27-0.36,1.61-1.88,1.97-2.5,0.36-0.63,0.81-2.53,0.81-2.97,0-0.45,0.98-1.5,1.88-2.13,0.89-0.62,2.83-0.18,3.28,0s1.09,0.81,1.72,1.35c0.62,0.53,3.28,0.68,3.28,0.68s1.07-1.42,1.25-1.87,0.98-1.77,1.25-2.22,1.53-1.07,2.25-1.16c0.71-0.09,1.69,0.63,1.69,0.63s0.97,1.78,1.15,2.31c0.18,0.54,1.18,1.61,1.53,1.97,0.36,0.36,1.26,1.8,1.35,2.16,0.09,0.35,1.06,0.33,2.22,0.15s0.09-1.4,0.09-1.4v-2.16s-0.62-2.16-0.62-2.78c0-0.63,0.71-1.78,0.71-1.78s2.5-0.8,3.03-1.06c0.54-0.27-0.08-1.17,0.1-1.97,0.18-0.81,1.33-1.7,1.69-1.88,0.35-0.18,2.96-0.61,3.4-0.87,0.45-0.27,1.41-1.25,1.41-1.25l0.62-2.69,0.28-2.88s-0.02-0.11-0.03-0.12c0.09-0.06,0.32-0.22,0.32-0.22l1.31,0.19s0.6-0.58,1.31-0.94c0.72-0.36,0.79,0.03,0.97,0.03s0.68,1.11,0.81,1.47c0.14,0.36,0.36,1.26,0.41,1.53,0.04,0.27,1.38,0.68,1.56,0.72s1.55,0.47,1.81,0.56c0.27,0.09,1.66,1.08,1.97,1.44,0.32,0.36,1.04,0.45,2.38,0.94s1.53-0.28,1.53-0.28l0.65-0.63s0.23-1.4,0.32-1.94c0.09-0.53,0.72-0.87,0.72-0.87s1.51-1.22,1.87-1.63c0.36-0.4,0.5-0.87,0.5-0.87s0.34-2.99,0.16-3.13c-0.18-0.13-1.38-0.71-1.78-0.84-0.41-0.13-1.6-1.46-2-2.13-0.41-0.66,0.3-1.16,0.43-1.43,0.14-0.27,1.41-1.06,1.63-1.28,0.22-0.23,1.06-0.78,1.59-1,0.54-0.23,0.27-2.9,0.22-3.35-0.04-0.44-0.7-0.44-1.81-0.62-1.12-0.18-1.97-0.85-1.97-0.85s-1.52-1.52-2.19-2.28-0.22-2.76-0.22-3.03,0.17-4.1,0.13-4.9c-0.05-0.81,0.54-1.63,0.72-1.85s2.37-0.49,2.59-0.53,1.9-0.99,2.35-1.34c0.44-0.36,0.59-1.19,0.59-1.19s-0.37-1.3-0.5-1.75c-0.14-0.45,0.72-1.65,1.03-1.88,0.31-0.22,1.91-1.37,1.91-1.37s1.07-6.86,1.25-7.13c0.17-0.26-0.32-1.59-0.32-1.59s-1.19-3.62-1.28-3.84c-0.09-0.23-0.68-1.65-0.5-2.32s1.27-1.02,1.41-1.25c0.13-0.22,0.07-0.97-0.16-1.15-0.22-0.18-1.03-1.16-1.03-1.16s0.58-3.41,0.63-3.81c0.04-0.4,0.28-1.69,0.28-1.69l1.22-0.84s3.79-0.07,4.06-0.07,2.03-0.79,2.44-1.06c0.4-0.27,0.13-1.66,0-1.84-0.14-0.18-1.19-1.94-1.19-1.94h-2.28l-2.5,0.06-2.1-0.43-1.03-0.41s-2.49-0.25-2.72-0.25c-0.22,0-1.5-0.16-1.5-0.16l-0.65-0.25s-0.13-1.6-0.13-1.87,0.48-0.55,1.07-0.91c0.58-0.35,0.93-0.94,0.93-0.94s-0.17-0.98-0.43-1.34c-0.27-0.36-0.1-0.97-0.1-0.97s2.29-2.76,2.38-2.93c0.09-0.18,0.62-1.04,0.62-1.04s0.89-1.56,1.06-2.18c0.18-0.63-0.59-1.16-0.59-1.16s-3.42-4.04-3.78-4.44-1.14-1.64-1.31-1.9c-0.18-0.27-0.91-1.24-1-1.69s0.31-1.41,0.31-1.41l1.09-3.47-0.56-1.06s-1.07-0.96-1.16-1.09c-0.09-0.14-1-0.75-1-0.75s-0.63-0.55-0.5-0.91c0.14-0.36,1.36-0.56,1.63-0.56s2.31-0.69,2.31-0.69,1.39-0.56,1.56-0.78c0.18-0.22-0.03-1.16-0.03-1.16s-1.56-17.7-1.56-18.06-0.65-1.56-0.78-1.78c-0.14-0.22-2.19-2.34-2.19-2.34l-0.72-5.16h0.06s1.85,0.06,2.47,0.06c0.63,0,0.97-0.84,0.97-0.84l2.5-2.06,1.53-1.38s0.57-0.52,0.88-0.56c0.31-0.05,1.26,0.58,1.44,0.62,0.17,0.05,1.47,0.6,1.47,0.6s0.99-0.52,1.43-0.66c0.45-0.13,0.75-0.62,0.75-0.62l-0.31-5.94,4.16-2.16s0.93-1.1,0.93-1.28,0.57-1.87,0.57-1.87l4.47-3.1s1.78-2.23,2.18-2.5-0.03-0.62-0.03-0.62l-1.25-1.85s-1.07-1.29-1.78-1.47c-0.71-0.17-0.91-1.09-0.91-1.09l0.29-5-0.6-0.47-2.84-2.31-3.41-2.69-0.72-1.97-0.34-1.4-1.06-1.78,0.15-0.91,1.25-2.69-1.4-1.4-1.63-1.97-0.72,1.59s-1.43-0.53-2.5-0.53-1.06,1.44-1.06,1.44-1.95,0.71-2.84,1.25c-0.9,0.53-1.25,1.78-1.25,1.78s-1.45,1.25-2.16,1.25-2.14,0.01-3.03,0.19c-0.89,0.17-1.43,1.41-1.97,2.12-0.54,0.72-1.44,2.33-2.16,2.69-0.71,0.36-0.71,0.34-1.78,0.34s-0.16-0.7,0.38-2.31c0.53-1.61,1.95-1.79,2.31-2.5s0.72-1.78,0.72-1.78l2.5-0.91s0.54-3.02,1.44-3.37c0.89-0.36,3.75-0.53,3.75-0.53s1.22-1.63,1.4-2.35c0.18-0.71,1.44-1.58,1.97-2.65,0.54-1.08,0.72-1.79,0.72-2.5,0-0.72,0.91-1.82,0.91-1.82l2.5-2.12s1.58-1.6,1.93-2.31c0.36-0.72,2.16-1.97,2.16-1.97l2.16-1.97,2.31-2.5s0.19-1.44,0.19-2.16c0-0.71-0.72-1.78-0.72-1.78s-1.26-0.9-1.97-1.44c-0.72-0.53-1.78-0.7-1.78-1.59s0.16-0.72,0.34-1.44c0.18-0.71,0.72,0,0.72,0l1.44,1.1,0.15-1.25-0.15-2.35-0.53-1.97-2.69-0.68-1.78-1.1h-2.16c-0.71,0-0.52-0.69-0.87-1.4-0.36-0.72-0.37-1.62-0.91-2.69s-2.31-0.19-2.31-0.19l-1.78,0.91c-0.72,0.35-0.73,0.52-1.44,1.06-0.72,0.54-1.61-0.37-3.22-0.91-1.61-0.53-1.77,0.02-2.84,0.38-1.08,0.36,0.17,0.88,0.53,1.59,0.35,0.72,0,1.44,0,1.44l-2.35-0.19s-1.06-0.35-1.78-1.25c-0.71-0.89,0.19-1.06,0.19-1.06s1.25-1.43,1.25-2.5-0.72-1.25-0.72-1.25h-2.69c-1.25,0-1.96-0.17-3.03-0.34-1.07-0.18-1.25-0.37-1.97-1.44-0.71-1.07,0.57-0.53,0.57-0.53l1.4-1.25,1.25-0.72,2.69,0.34s0.9,0.56,1.97,0.38,0.19-0.72,0.19-0.72l-1.63-1.06s-1.77,0.34-2.84,0.34-2.16-0.72-2.16-0.72l-1.97-0.87s-1.41-1.45-2.12-1.63c-0.09-0.02-0.2-0.04-0.28-0.03zm-45.94,3.34c-0.85,0.32-1.23-0.03-1.5,0.82-0.27,0.84-0.34,0.96,0.16,1.18,0.49,0.23,0.87,0.53,1.4,0.44,0.54-0.09,1.24-0.47,1.06-1.09-0.17-0.63-1.12-1.35-1.12-1.35zm20.84,3.82c-0.33,0-0.47,0.12-0.94,0.56-0.62,0.58-1.62,1.37-1.71,1.9-0.09,0.54,0.12,0.96-0.19,1.54s-1.55,1.81-2,2.12-2.51,0.16-2.6,0.47c-0.08,0.31-0.37,0.52,0.04,0.87,0.4,0.36,2.91,0.63,3.72,0.54,0.8-0.09,3.3-0.3,3.74-0.35,0.45-0.04,0.71,0.28,0.66-0.43-0.04-0.72-0.72-1.36-0.4-1.85,0.31-0.49,0.6-0.65,0.78-0.97,0.17-0.31,0.49-1.06,0.31-1.47-0.18-0.4-0.72-0.95-0.72-1.53s-0.28-1.37-0.28-1.37c-0.18-0.01-0.3-0.04-0.41-0.03zm-45.53,6.62c-0.49,0-2.1,0.86-2.19,1.13-0.09,0.26-0.56,0.38,0.07,0.97,0.62,0.58,0.39,0.88,1.15,0.84,0.76-0.05,1.55-0.67,2.22-0.63,0.67,0.05,1,0.79,1.31,0.79,0.32,0,0.62-0.23,0.66-0.72s-0.42-0.89-0.59-1.07c-0.18-0.17-0.54-0.18-0.54-0.18-0.31-0.45-1.6-1.13-2.09-1.13zm-2.06,6.25c-0.54,0.18-1.01,0.45-1.5,0.63-0.49,0.17-0.81,0.17-1.13,0.43-0.31,0.27-0.72,0.46-0.72,0.82,0,0.35,0.15,0.5,0.6,0.81s0.52,0.62,1.19,0.62,1.89-0.5,2.03-0.81c0.13-0.31,0.48-0.94,0.53-1.25,0.04-0.31-1-1.25-1-1.25zm-51.31,9.13l-2.35,2.12-0.34,1.78,1.97,0.38,1.25,0.87h2.5l1.25-0.87v-1.78l-1.63-2.16-2.65-0.34zm59.09,4.4c-0.49,0.14-1.47,0.59-1.25,1.03,0.22,0.45,0.5,0.8,0.91,0.75,0.4-0.04,0.74-0.01,0.87-0.5,0.14-0.49-0.22-1.25-0.22-1.25l-0.31-0.03zm97.34,1.78c-0.09,0.01-0.18,0.07-0.28,0.22-0.38,0.6-0.53,1.69-0.4,2.1,0.12,0.41-0.42,0.87,0.12,1.31s0.62,1.22,1.53,1.25c0.92,0.03,1.9,0.47,2.63-0.06,0.72-0.54,1.43-1.69,1.65-2.19,0.22-0.51,0.32-1.22,0.07-1.53-0.26-0.32-0.62-0.81-1.13-0.88-0.5-0.06-1.19,0.16-1.19,0.16-1.07,0.31-0.99,0.66-1.78,0.31-0.59-0.26-0.92-0.72-1.22-0.69zm-135.37,0.22l-1.97,0.19-1.44,1.44,0.53,1.06,1.63-0.91,1.44,0.57,0.34,1.59,1.25,0.34,0.72-0.87-0.53-1.06-1.97-2.35zm27.09,1.13c-0.49,0.01-1.04,0.1-0.9,0.5,0.17,0.53,1.09,0.75,2.03,0.75s2.97,0.08,3.06,0.44c0.09,0.35,0.68,1.56,0.91,1.65,0.22,0.09,0.92,0.13,0.97-0.41,0.04-0.53-0.44-1.13-0.76-1.4-0.31-0.27-2.09-1.25-2.09-1.25-0.45-0.09-2.24-0.28-2.78-0.28-0.13,0-0.27-0.01-0.44,0zm10.31,1.12c-0.71,0.23-0.93,0.25-0.93,0.88,0,0.62-0.1,1.06,0.43,1.15,0.54,0.09,0.85,0.33,1.26,0.07,0.4-0.27,0.59-0.91,0.37-1.22s-1.13-0.88-1.13-0.88zm-44.71,1.16l-1.44,1.25,0.72,0.87,1.78-1.06-1.06-1.06zm6.4,2.31v1.78l2.35-0.53v-1.25h-2.35zm133.35,1.5c-1.05,0.29-1.25,0.28-2.07,0.6-0.82,0.31-1.49,0.24-1.87,0.74-0.38,0.51-0.44,0.28-0.66,1.29s-0.69,0.99,0.1,1.31c0.79,0.31,1.39,0.29,2.31-0.41,0.91-0.69,1.71-1.09,2.19-1.65,0.47-0.57,0.84-1.19,0.84-1.35s-0.84-0.53-0.84-0.53zm-122.41,0.5c-0.4,0.63-0.65,1.16-0.87,1.56-0.23,0.41-0.68,0.77-1.13,1.66s-0.81,1.32-0.81,2.03c0,0.72,0.24,1.18,0.68,1.41,0.45,0.22,0.34,0.5,0.57,0.5,0.22,0,0.82,0.09,1.31,0s1.03-0.19,1.03-0.5v-1.88c0-0.53-0.31-3.37-0.31-3.59s-0.47-1.19-0.47-1.19zm-16.47,0.69l-1.06,0.87v1.25l1.44,0.57,0.87-1.25-1.25-1.44z\",\"name\":\"Krasnoyarsk Krai\"},\"tm\":{\"path\":\"m424.64,359.43,1.25,3.2143,1.25,2.3214s-0.53571,2.3214-0.71428,3.0357c-0.17857,0.71429-1.6071,3.0357-1.6071,3.0357s0.53571,1.25,1.6071,1.9643c1.0714,0.71429,5.8929,1.7857,5.8929,1.7857l5.3571,0.17857s3.75,0.89285,4.1071,1.6071c0.35714,0.71429,0.89286,1.0714,0.89286,2.1429,0,1.0714,0.35714,4.2857,0.35714,4.2857s1.25,0.35714,2.6786,0.35714,3.0357,0.35715,3.0357,0.35715,0.35714,2.1428,0.35714,2.6786c0,0.53571-0.89286,1.7857-1.9643,1.7857s-3.75,1.6072-3.75,1.6072-1.25,2.6786-1.25,3.75-0.89285,3.5714-0.53571,4.2857c0.35714,0.71429,4.4643,1.7857,5.1786,2.1429,0.71429,0.35714,3.2143,2.6786,3.2143,2.6786s-0.71429,1.6071-1.6072,2.6786c-0.89285,1.0714-4.1071,3.0357-5.3571,4.6429-1.25,1.6071-0.35714,2.8571-0.35714,2.8571l-0.71429,1.6071-3.2143,0.53572-3.2143,0.35714-1.4286-1.6071-1.9643-0.17857-4.66-0.57h-2.3214l-1.25,1.0714s-2.1429,1.0714-3.2143,1.25c-1.0714,0.17857-5.3571,1.25-6.0714,1.25-0.71428,0-6.4286,0.71429-6.4286,0.71429l-3.3928,1.4286h-2.3214l-0.35715-1.9643,0.71429-2.1429-0.35714-2.3214,1.7857-2.3214-0.53571-1.4286s-1.0714-0.17858-1.9643,0.53571c-0.89286,0.71429-4.4643,1.0714-4.4643,1.0714l-4.2857-0.17857-1.9643-2.3214-0.89286-3.0357s-1.25-1.0714-2.6786-0.71428c-1.4286,0.35714-1.6072,1.25-2.6786,1.25s-2.5,0-3.0357-0.89286c-0.53571-0.89286-0.89285-3.0357-0.89285-3.0357l-0.9-2.33s-1.6071-0.89286-2.5-1.6071c-0.89286-0.71429-3.2143-2.3214-3.2143-2.3214l-5.1786-2.3214-4.2857-1.9643-4.6429-1.7857-2.6786-1.0714-1.7857-2.5v-3.0357l1.6072-2.8572,0.35714-1.7857-0.53571-2.3214,1.25-3.0357,0.71428-3.3929,1.9643-1.0714,3.3928-2.8571s0-2.1429,0.71429-2.3214c0.71429-0.17857,5.7143-1.6071,5.7143-1.6071l1.9643-1.7857,1.25-2.6786,2.5-1.6071,1.6071-3.2143s1.0714-1.0714,1.7857-1.7857c0.71428-0.71429,2.1428-1.4286,2.1428-1.4286l1.9643-0.35715,2.1429,1.7857,2.1428,1.0714,2.5,0.35714,2.8572,1.4286,1.0714,1.6071,3.0357,0.89286h3.3929l2.1428,0.35714,1.25,1.6072,2.6786,0.71428,2.3214,0.71429,2.1429,1.7857,1.25-0.89286,1.7857-0.53571,2.1428-1.4286,2.1429-0.17857,1.6071,0.71428,1.7857,0.89286z\",\"name\":\"Tomsk Oblast\"},\"nv\":{\"path\":\"m341.43,421.57,4.1071,0.71429l4.4643-0.17858c1.25-0.17857,2.1429-0.71428,2.1429-0.71428l-2.14,3.4h-3.0357l-0.89285,2.1428s1.0714,1.9643,1.7857,2.5c0.71429,0.53572,2.6786,3.0357,2.6786,3.0357l0.53572,2.1428,2.3214,0.35715h1.4286s2.6786,0.35714,3.3928,0.35714c0.71429,0,0.89286,0,1.9643-0.35714,1.0714-0.35715,3.2143-0.71429,4.6429-0.71429h3.5714s2.6786,0.17857,3.5714-0.35714c0.89286-0.53572,0.89286-1.0714,2.3214-1.25,1.4286-0.17857,3.0357-0.17857,3.9286-0.17857,0.89286,0,1.9643-0.17857,1.9643-0.17857s0,1.6071,0.89286,2.1428c0.89285,0.53572,4.1071,2.6786,4.1071,2.6786l0.71428,0.71429c0.17858,0.71429-0.17857,2.5-0.17857,3.2143,0,0.71428-1.0714,0.71428-0.17857,1.6071,0.89286,0.89286,1.9643,1.4286,1.9643,1.4286l2.3214-1.9643,2.3214-2.3214s2.1429-0.53572,2.8572-0.53572c0.71428,0,3.0357,0,3.75-0.17857,0.71428-0.17857,1.4286-0.71429,2.6786-0.17857,1.25,0.53571,2.3214,0.71428,3.3929,0.71428,1.0714,0,3.5714-1.25,3.5714-1.25s1.7857-2.1428,1.9643-2.8571c0.21-0.7-0.33-4.45-0.33-4.45v-3.75c0-0.71429,0.71428-2.3214,1.25-2.6786,0.53571-0.35714,1.7857-0.89285,1.7857-1.7857,0-0.89286-0.89286-1.6071-0.89286-1.6071s-0.89285-0.53572-0.89285-1.4286c0-0.89286,0.35714-3.2143-0.53572-3.0357-0.89285,0.17857-4.1071,1.7857-4.1071,1.7857s0,0.17857-1.4286,0.17857-2.5,0-2.6786-0.71429c-0.17857-0.71428,0.35714-5,0.35714-5l0.53571-2.6786,0.17858-2.1429-2.8572,1.4286s-1.6071,0.53572-2.5,0.71429c-0.9,0.18-4.47-0.71-4.47-0.71l-2.1429-0.71428-1.4286-2.1429-1.4286-2.8571s-2.5,0.53571-3.2143,0.71428c-0.71428,0.17858-1.9643,0.53572-1.9643,0.53572l-2.3214-1.25-1.0714-3.3929v-1.25l-3.0357-1.7857s-1.9643-1.6072-2.6786-2.1429c-0.71428-0.53571-3.3928-1.7857-3.3928-1.7857s-3.3929-1.25-4.1072-1.6072c-0.71428-0.35714-1.9643-1.25-2.6786-1.6071-0.71428-0.35714-3.9286-1.4286-3.9286-1.4286l-1.9643,0.17857s-0.35715,1.0714-0.53572,1.9643c-0.17857,0.89285-1.0714,2.3214-1.0714,2.3214l-1.4286,1.0714-0.89286,1.6072,0.17858,2.1428-0.71429,1.4286h-3.2143l-2.5-0.35714-2.1428,0.89286-2.1429,2.3214-1.4286,1.9643-0.71429,2.6786,0.71429,1.9643,1.7857,2.6786v1.7857l-2.1428,3.5714z\",\"name\":\"Novosibirsk Oblast\"},\"al\":{\"path\":\"m351.25,435.14,1.7857,5,1.7857,5.1786,1.6071,6.7857,0.89286,8.5714,0.35714,8.2143,0.35714,2.8571,2.3214-0.53571,1.7857-0.53572,0.89285-0.53571,0.17857-1.9643,1.25-1.6071,1.25-0.35714,1.7857,0.53571,0.89286,1.9643,0.89285,2.8571,2.3214,2.8571,1.9643,1.6071,4.6428,0,3.3929-0.35714,2.5-0.89286,2.3214,0,3.3929,1.4286,1.0714,1.9643,2.3214,0.53572,2.3214-0.53572-0.17857-1.4286-1.6071-1.0714-1.0714-0.89286,0.35714-1.6071,0.71429-0.35714,2.5-0.35714,4.4643-0.71429,3.75-0.17857,2.6786-0.71429,2.3214-1.9643,1.0714-1.9643s0.53572-0.71428,1.25-0.71428c0.71429,0,3.3929-0.17858,3.3929-0.17858l1.9643-0.17857,1.0714-1.7857s0.53572-2.1429,1.25-2.5c0.71429-0.35714,0.89286-2.3214,0.89286-2.3214l0.71429-2.1429-0.35715-1.0714-0.71428-1.0714,0.71428-0.89286,1.25-0.53571-0.17857-1.0714-1.4286-1.6072-1.0714-1.0714c-0.17857-0.71429-0.89286-2.8572-0.89286-2.8572l-1.7857-1.7857-0.17857-0.89286-0.53572-2.1429-1.6071-1.4286-2.5-1.9643-1.74-1.79s-1.6072,1.0714-2.3214,1.4286c-0.71429,0.35715-1.7857,0.71429-1.7857,0.71429l-2.5,0.17857-2.5-0.35714-3.0357-0.17857-4.8214,0.71428-2.5,1.6072-1.6071,1.7857-1.0714,0.71429-0.89286,0.35714-1.4286-1.25-0.35714-0.89286,0.35714-0.89286,0.17857-1.7857-0.17857-1.4286-2.3214-1.6071-1.9643-1.25-1.0714-1.25-0.17857-0.89286-1.9643-0.17857-4.2857,0.17857-1.25,1.25-2.1429,0.53571-3.75-0.53571-4.2857,0.17857-2.6786,1.25h-2.5l-3.3929-0.17857z\",\"name\":\"Altai Krai\"},\"km\":{\"path\":\"m442.14,414.79-0.71428,2.3214,0.89286,1.6072,2.5,1.4286,1.7857,1.6071,1.25,2.5,0.17857,0.89286s-0.89286,1.4286-1.6071,2.1429c-0.71429,0.71428-4.2857,2.3214-4.2857,2.3214l-1.7857,1.7857-1.7857,1.7857v1.6072l1.0714,1.7857,0.17858,1.7857-1.9643,2.5s-1.25,1.0714-1.0714,1.7857c0.17857,0.71428,1.0714,1.4286,1.7857,1.6071,0.71428,0.17857,2.8571,0.89286,2.8571,0.89286l-0.71429,1.4286-1.25,1.7857-0.53571,1.6072-1.7857,0.71428-1.4286,1.6072,0.71429,1.25,1.25,1.25-0.89286,2.5-1.25,1.6071,0.53572,1.25,1.7857,1.7857-0.35714,1.6072-1.6072,1.9643-2.5,2.1429h-1.9643l-0.71429-1.7857-1.9643-1.25-2.6786-0.35714-1.4286,1.0714-2.1428-1.4286-0.71429-2.3214-1.0714-0.71429,0.17857-2.5-0.53571-2.5,0.89286-1.9643,0.71428-1.6071-2.1428-2.6786-1.6072-2.6786-1.25-1.4286-0.71428-2.3214-0.89286-1.7857-2.3214-2.1429-1.7857-1.6071-0.71429-1.25v-1.7857l-0.35714-4.6428,0.17857-2.5,0.71429-2.3214,1.25-1.4286,0.71428-1.25-1.4286-1.9643v-0.89286l-0.35714-2.5,1.6071-0.35714,4.4643-0.53571,2.5-0.89286,3.0357-0.89286,1.0714-0.35714,0.71428-0.89286h1.6072,1.9643,2.5l1.7857,0.35715,1.4286,0.35714,0.89286,0.89286,1.9643,0.53571,1.6071-0.17857,2.5-0.71429z\",\"name\":\"Kemerovo Oblast\"},\"lt\":{\"path\":\"m392.32,478.89-0.44643,2.1428s-0.17857,1.875,0,2.5893c0.17857,0.71429,1.1607,2.3214,1.1607,2.3214l3.3036,0.89286s0.98215,1.1607,1.0714,1.6071c0.0893,0.44643,0.0893,3.3036,0.0893,3.3036s0.17857,0.89286,0.53571,1.6071c0.35715,0.71429,1.25,1.875,1.7857,2.2322,0.53571,0.35714,1.6071,1.25,2.4107,1.3393,0.80357,0.0893,3.125,0.0893,3.5714,0.0893,0.44643,0,4.0179,0.0893,4.0179,0.0893s1.0714,0.53572,1.6071,0.89286c0.53571,0.35714,1.4286,1.25,1.7857,1.875,0.35715,0.625,1.5179,1.6964,2.0536,1.9643,0.53571,0.26785,1.1607,0.80357,1.7857,1.1607,0.625,0.35714,1.6964,0.71429,2.4107,0.80357,0.71429,0.0893,2.9464-0.44643,3.3929-0.71428,0.44643-0.26786,2.3214-0.89286,3.4821-0.89286s4.7322-0.35714,5-0.44643c0.26786-0.0893,3.5714-1.3393,4.1964-1.3393s1.4286-0.89285,1.6071-1.25c0.17858-0.35714,0.625-1.9643,0.17858-2.7678-0.44643-0.80357-0.80358-1.0714-1.4286-1.4286-0.625-0.35715-1.4286-1.25-1.25-1.7857,0.17858-0.53571,1.9643-1.1607,2.4107-1.1607,0.44643,0,2.5,1.0714,2.5,0.26785,0-0.80357-1.6964-2.2321-1.6964-2.2321s-0.98214-1.3393-1.25-1.7857c-0.26786-0.44643-1.875-1.9643-1.875-1.9643s-2.2321-2.7679-2.0536-4.1071c0.17857-1.3393-0.0893-3.3929-0.0893-3.3929s-0.625-1.3393-0.71428-1.6964c-0.0893-0.35714-1.3393-0.17857-1.3393-0.17857l-1.5179,1.5179s-1.4286-0.26786-1.5178-0.80357c-0.0893-0.53572-0.71429-2.5893-0.71429-2.5893s-0.35714-1.7857-0.44643-2.1429c-0.0893-0.35714-0.17857-1.9643-0.17857-1.9643l1.6964-1.3393,2.8571-1.3393,0.35715-1.1607-1.3393-1.6071-0.80357-0.625-2.1429-0.53571-1.9643,0.98214s-1.0714-0.625-1.4286-0.80357c-0.35714-0.17857-1.0714-0.89286-1.0714-0.89286l-0.89286-1.7857s0-1.0714-0.71429-0.89286c-0.71428,0.17857-0.89285,0.71428-0.89285,0.71428s-1.1607,1.1607-1.1607,1.5179c0,0.35714-0.625,1.4286-0.625,1.4286l-0.98214,1.0714s-1.6071,0.44643-1.9643,0.44643h-3.0357c-0.35714,0-1.1607,0.71429-1.5179,1.0714-0.35714,0.35714-1.1607,1.9643-1.1607,1.9643l-1.5179,1.0714-0.98214,0.625-2.3214,0.71429h-2.3214l-4.1071,0.71428-4.1071,0.625-1.0714,0.625-0.0893,0.98215s0.0893,0.89285,0.53572,0.98214c0.44642,0.0893,1.6071,0.80357,1.6071,0.80357l0.44643,0.89286-0.0893,0.89286-1.875,0.625z\",\"name\":\"Altai Republic\"},\"tv\":{\"path\":\"m431.96,477.02,0.26786-1.6964s0.89286-0.625,1.6071-0.625c0.71429,0,1.6964,0.71428,2.4107,0.89286,0.71428,0.17857,2.7678,0.71428,3.0357,0.71428,0.26786,0,1.0714-0.80357,1.3393-1.25,0.26785-0.44643,1.9643-2.6786,1.9643-2.6786s0-1.25,0.625-1.6071c0.625-0.35715,1.875-0.35715,2.3214-0.35715,0.44643,0,1.6071-0.17857,2.3214,0.26786,0.71429,0.44643,1.1607,3.0357,1.1607,3.0357s0.89286,0.89285,1.1607,0.89285c0.26786,0,2.1429-0.80357,2.1429-0.80357s1.4286,0.17857,1.7857,0.44643c0.35714,0.26786,3.0357,0.89286,3.0357,0.89286s1.6964,1.6071,2.2322,1.6071c0.53571,0,1.6964,0.26786,2.6786-0.0893,0.98214-0.35714,2.8571-0.80357,3.3929-1.25,0.53571-0.44642,5.5357-1.9643,5.9821-2.5,0.44643-0.53571,7.0536-5.9821,7.0536-5.9821l2.1429-2.8571s-0.17857-1.875-0.17857-2.9464,1.0714-2.3214,1.4286-2.5893c0.35714-0.26785,2.8571,0.0893,3.3036,0.17858,0.44643,0.0893,4.375,0.89285,4.7321,0.80357,0.35714-0.0893,4.2857-0.44643,4.2857-0.44643l2.4107-2.2321s1.5179-0.35715,2.4107,0.0893c0.89286,0.44643,3.6607,2.5,4.1964,2.7679,0.53572,0.26786,3.75,2.3214,3.75,2.3214l1.6072,1.5178s1.25,0.71429,1.7857,0.44643c0.53571-0.26785,2.3214-0.89285,2.3214-0.89285l1.6071,0.53571,0.35714,1.25s0.53572,0.89286,0.53572,1.25-0.89286,1.6071-0.89286,1.6071-0.71428,0.53572-0.80357,1.1607c-0.0893,0.625-0.26786,4.1071-0.26786,4.1071s-0.0893,2.3214-0.0893,2.7679c0,0.44643-0.71429,2.1428-0.71429,2.1428l-1.4286,2.4107s-1.5179,1.3393-1.875,1.875c-0.35714,0.53571-2.2321,1.3393-2.4107,1.6964-0.17858,0.35714-0.71429,1.875-0.71429,1.875s-0.71429,1.875-0.71429,2.4107c0,0.53572-0.0893,3.3929-0.0893,3.9286,0,0.53572,0.53571,2.5,1.0714,3.2143,0.53571,0.71428,1.25,1.6071,1.25,2.0536,0,0.44643-0.80357,2.3214-1.1607,2.7679-0.35714,0.44643-4.8214,4.1964-4.8214,4.1964l-2.0536,1.25-2.1428,0.17857s-1.7857-0.98215-2.1429-0.89286c-0.35714,0.0893-2.3214,0.17857-2.6786,0.17857-0.35715,0-1.7857-0.89286-1.7857-0.89286s-1.6964-0.35714-2.1428-0.625c-0.44643-0.26785-1.7857-1.1607-1.7857-1.1607s-2.7679-0.26786-3.2143-0.26786c-0.44643,0-2.8572-0.17857-3.2143-0.53571l-2.0536-2.0536s-0.71429-1.4286-0.80357-1.9643c-0.0893-0.53571-0.17857-2.5-0.17857-2.5s-0.80358-0.80357-1.3393-1.25c-0.53571-0.44643-2.1429-0.89286-2.9464-0.89286-0.80357,0-3.9286,0.17858-3.9286,0.17858s-1.9643,0.53571-2.2321,0.625c-0.26786,0.0893-1.25,0.71428-1.875,0.80357-0.625,0.0893-2.0536,0.0893-1.9643-0.80357,0.0893-0.89286,1.25-1.6964,1.3393-2.0536,0.0893-0.35714-0.0893-1.0714-0.71429-1.3393-0.625-0.26786-2.1429-0.17857-3.0357,0.0893-0.89286,0.26786-2.3214,0.80358-2.8572,0.89286-0.53571,0.0893-3.3928,0.71429-3.3928,0.71429s-2.1429,0.89285-2.6786,1.0714c-0.53572,0.17857-3.8393,1.1607-3.8393,1.1607l-3.0357,1.5179-2.4107,1.1607-2.5893-0.26786-2.1429-0.98214-1.5179-0.71428-1.25-1.25c0-0.44643,0.35714-0.98215,0.35714-0.98215l2.4107-0.44643,1.7857,0.53572s1.25-0.35714,0.17857-1.0714c-1.0714-0.71429-4.4643-5.0893-4.4643-5.0893l-1.48-2.44s-1.0714-1.4286-1.0714-1.7857v-2.5893z\",\"name\":\"Tuva Republic\"},\"hk\":{\"path\":\"m440.27,432.11c0.53572,0.35715,1.9643,1.875,1.9643,1.875l1.3393,1.6072s0.26785,0.625,1.1607,0.80357c0.89286,0.17857,2.0536,0.17857,2.0536,0.17857s0.35714-0.35714,0.80357-0.80357,0.625-0.98214,0.98215-1.25c0.35714-0.26786,0.89285-0.89286,1.3393-0.80357,0.44643,0.0893,0.71429,0.26785,1.3393,0.71428,0.625,0.44643,1.3393,1.25,2.2321,1.25,0.89286,0,2.5,0.80357,2.5,0.80357s0.44643,1.875,0.625,2.3214c0.17857,0.44643,0.53571,2.9464,0.53571,2.9464s0.35715,1.5179,0.71429,2.4107c0.35714,0.89285,0.98214,2.0536,1.0714,2.4107,0.0893,0.35714-0.0893,3.125-0.17857,3.3929-0.0893,0.26785-0.80357,1.875-0.89286,2.2321-0.0893,0.35714,0,2.5893,0,2.5893l1.5179,1.5179,0.625,1.875s-1.25,1.4286-1.4286,1.6964c-0.17858,0.26786-2.2322,1.3393-2.5893,1.875-0.35714,0.53571-1.4286,3.0357-1.4286,3.0357s-1.6071,1.9643-2.1429,2.2322c-0.53571,0.26785-2.8571,1.0714-3.125,1.5178-0.26786,0.44643-1.6964,1.6964-1.6964,1.6964l-2.7678,0.0893s-1.3393,0.17857-1.6072,0.625c-0.26785,0.44643-0.53571,1.4286-1.0714,1.875-0.53571,0.44643-1.0714,1.25-1.1607,1.6071-0.0893,0.35714-0.89286,1.0714-0.89286,1.0714s0.0893,0.71429-1.0714,0.625c-1.1607-0.0893-2.9464-0.35714-2.9464-0.35714l-1.7857-1.1607-1.6071,0.44643-0.625,0.80357-0.26786,0.89286-2.5,1.0714s-0.625,0.89286-1.1607,0.35714c-0.53572-0.53571-1.25-2.3214-1.25-2.3214l-0.625-2.5893v-1.5179s0.17857-1.0714,0.53571-1.25c0.35714-0.17857,2.5-1.6071,2.5-1.6071s1.3393-0.98215,1.6964-1.0714c0.35714-0.0893,2.1429-0.44643,2.1429-0.44643l1.9643-1.0714,1.5179-2.0536,1.3393-1.0714-0.44643-1.6071s-1.25-1.25-1.4286-1.6071c-0.17858-0.35715-0.44643-1.25-0.44643-1.25l1.6071-2.2322,0.0893-1.875s-1.0714-1.1607-1.1607-1.5178c-0.0893-0.35715-0.0893-1.25-0.0893-1.25l2.5893-1.5179,1.0714-1.875,1.1607-1.9643,0.53572-1.6964-3.5714-1.1607s-0.89286-1.25-0.71429-1.7857c0.17858-0.53572,1.7857-2.4107,1.7857-2.4107s0.89286-1.875,0.89286-2.3214c0-0.44642-1.0714-2.8571-1.0714-2.8571s0-0.71428,0.26785-1.1607c0.26786-0.44643,1.25-0.98215,1.25-0.98215z\",\"name\":\"Republic of Khakassia\"},\"ir\":{\"path\":\"M569.41,325.78c-0.12,0.03-0.22,0.12-0.22,0.34,0,0.45,0.53,1.54,0.53,1.54l0.37,1.06s-0.26,0.88-0.62,1.06-1.78,0.63-1.78,0.63l-2.69,0.09s-1.61,0.26-1.88,0.44c-0.26,0.18-0.9,0.73-0.9,1.09s-0.44,1.96-0.53,2.31c-0.09,0.36-0.16,1.97-0.16,1.97s0.18,0.78,0.63,1.41c0.44,0.62,0.43,1.81,0.43,1.81l-1.25,1.16s0.26,1.67,0.35,2.03,1,3.4,1,3.4l0.43,2.5s-0.28,1.42-0.28,1.69-0.96,4.57-0.96,4.57-0.09,0.98-0.54,1.24c-0.44,0.27-2.06,1.88-2.06,1.88s-0.19,0.99-0.19,1.34c0,0.36,0.37,1.06,0.19,1.5-0.18,0.45-1.97,1.72-1.97,1.72l-2.59,0.72-1.31,0.88-0.29,3.84-0.09,2.22v1.81c0,0.36,0.27,1.34,0.72,1.78,0.45,0.45,2.16,1.97,2.16,1.97l2.21,0.53,1.16,0.78,0.1,2.25s-0.37,1.33-0.82,1.5c-0.44,0.18-2.75,1.82-2.75,1.82l-0.53,1.15,0.97,1.16,1.97,1.59s0.78,0.1,0.87,0.72c0.09,0.63-0.15,2.6-0.15,2.6l-0.47,1.43-1.25,1.07-1.41,1.43-0.19,1.6-1.24,0.81-2.79-0.28-1.59-1.35-1.78-0.68-2.25-0.63s-0.45-0.74-0.63-1.19c-0.17-0.44-0.34-1.68-0.34-1.68l-1.25-0.72-1.87,1-1.26,0.09-0.18,1.69-0.35,2.41-0.53,1.53-0.9,0.97-1.6,0.53s-1.89,0.28-2.25,0.37c-0.35,0.09-1.34,1.41-1.34,1.41s-0.53,0.8-0.44,1.15c0.09,0.36,0.19,1.25,0.19,1.25l-1.16,0.91-2.06,0.81s-0.44,0.9-0.44,1.25c0,0.36,0.16,1.97,0.16,1.97l0.37,1.5,0.1,1.63s0.7,0.7,0.43,1.06c-0.26,0.36-2.78,0.62-2.78,0.62l-1.93-2.78-1-1.5-1.07-2.34-1.06-0.69h-1.72l-1.59,1.69s-0.89,0.81-1.16,1.44c-0.27,0.62,0.01,1.78-1.15,1.78s-3.22-0.38-3.22-0.38l-1.25-1.15-1.97-0.44-1.34-0.19s-0.62,0.64-0.97,0.91c-0.36,0.27-1.35,1.25-1.35,1.25v0.62l-0.72,1.88-1.15,2.22-0.81,0.9-0.29,1.35,0.63,1.68s0.45,0.9,0.81,1.25c0.36,0.36,0.63,0.35,0.72,0.97,0.09,0.63,0.19,2.6,0.19,2.6l-0.38,2.4-0.97,1.88s-1.88,1.79-2.15,2.06-2.13,1.61-2.13,1.97-1.62,4.19-1.62,4.19l-1.25,2.25s-0.69,2.11-0.78,2.56-0.63,3.59-0.63,3.59-0.09,1.33-0.62,1.6c-0.54,0.26-3.69,0.81-3.69,0.81s-2.12,1.07-2.56,1.34c-0.45,0.27-0.72,0.63-0.72,0.63s-0.19,0.52-0.1,0.87c0.09,0.36,1.16,2.25,1.16,2.25l1.44,2.66,1.06,0.56,0.97,1.06,1.09,1.69v0.81l1.25-0.43s0.9-0.91,1.25-1c0.36-0.09,1.78,0.28,1.78,0.28l1.44,0.87s1.43,0.91,1.78,1c0.36,0.09,2.03,1.41,2.03,1.41l4.32,2.87s0.34,0.82,1.06,0.82c0.71,0,2.41-0.38,2.41-0.38l1.78-0.34,1.06,1.15,0.28,1.16,0.28,1.53,2.56-0.81,2.44-2.41s2.14-2.16,3.13-2.34c0.98-0.18,2.12,1.19,2.12,1.19s0.72,1.58,1.25,2.03c0.54,0.44,2.43,2.32,2.78,2.59,0.36,0.27,3.03,1.53,3.03,1.53l2.22,2.66c0.45,0.53,2.52,3.22,2.97,3.22s2.84,0.18,3.38,0.09c0.53-0.09,1.96,0.63,2.5,1.25,0.53,0.63,1.78,2.69,1.78,2.69s1.27,1.69,1.62,1.78c0.36,0.09,1.16,1.88,1.16,1.88s0.89,1.62,1.25,1.53,2.31-0.63,2.31-0.63,0.73,0.15,0.91,0.69c0.18,0.53,0.87,2.59,0.87,2.59s1.18,0.62,1.53,0.53c0.36-0.09,1.88-1.25,1.88-1.25s1.77-0.26,2.12-0.43c0.36-0.18,1.44-0.82,0.82-1.44-0.05-0.04-0.11-0.06-0.16-0.09,0.05-0.01,0.34-0.07,0.34-0.07l1.69-0.62,8.75-2.88s1-1.76,1-2.03,0.63-2.06,0.63-2.06l0.06-2.06,0.81-0.82,1.78-0.96,2.25-0.82,1.16-1.68,1.06-0.82,5.44-2.59,1.62-1.31,0.82-1.1,0.62-2.5,1.94-1.15s1.27-0.9,1.62-1.35c0.36-0.44,0.35-0.97,0.35-0.97l-0.63-0.81-1.25-1.25-0.34-0.81s0.18-0.96,0.62-1.41c0.45-0.44,0.71-0.63,1.07-0.72,0.35-0.09,1.25,0.35,1.25,0.35l1,1.09,0.87-0.47,0.63-1.78s0.81-2.14,0.9-2.5,0.25-1.69,0.25-1.69-0.25-3.05-0.25-3.5v-2.5s0.44-4.01,0.53-4.37,0.35-2.13,0.35-2.13l-0.1-1.87s-0.44-1.17-0.62-1.44-0.16-0.81-0.16-0.81,0.63-1.05,0.72-1.41c0.09-0.35-0.37-0.81-0.37-0.81s-0.54-0.71-0.72-1.06c-0.18-0.36-0.88,0.15-0.88,0.15l-1.44,0.91s-0.79,1.26-1.15,1.53-0.44,1.31-0.44,1.31l-0.28,4.38-0.81,1.34-1.53-0.09c-0.34-0.63-0.73-1.32-0.79-1.6-0.08-0.44-0.43-2.67-0.34-3.65s0.97-4.38,0.97-4.38l1.25-1.25s0.09-1.52-0.53-2.06c-0.63-0.53-1.87-1.07-2.41-1.34-0.53-0.27-1.72-1.35-1.72-1.97,0-0.63,0.92-1.77,1.19-2.13,0.27-0.35,3.93-1.51,4.28-1.78,0.36-0.27,3.57-2.15,3.57-2.15l3.65-1.07,2.78,0.25,2.13-0.34,1.34-2.5,2.88-0.81s1.87,1.25,2.4,1.25c0.54,0,2.22-0.72,2.22-0.72s1.07,0.64,1.25,1,1.63,1.34,1.63,1.34l1.93-0.37s1.35-0.44,2.07-0.35c0.71,0.09,1.7,0.98,2.06,1.07s2.75-0.72,2.75-0.72l1.09-1.5,2.5-1.16s1.35-1.08,1.35-1.53,0.15-3.22,0.15-3.22,1.25-0.61,1.88-0.97c0.62-0.35,2.15-0.18,2.15-0.18s0.17-1.34,0.35-1.79c0.18-0.44,1.33-1.34,1.78-1.43s2.44,0.37,2.44,0.37l1.15,0.97-1.34,1.44-0.72,1.15,0.72,0.72s2.31-0.45,2.94-0.72c0.62-0.26,2.24-0.44,2.78-0.53,0.53-0.09,2.84-1.15,2.84-1.15s0.91-1.08,0.91-1.44-0.2-1.71-0.38-2.16c-0.18-0.44-2.21-1.14-2.65-1.59-0.45-0.45-0.54-2.58-0.72-2.94s-0.9-1.9-0.63-2.44c0.27-0.53,1.06-1.78,1.06-1.78l-0.62-2.5s-0.01-2.48,0.34-2.84c0.36-0.36,2.07-1,2.07-1l2.93,0.81s0.9,1.15,1.35,1.06c0.44-0.09,2.15-0.53,2.15-0.53l0.25-3.56-0.87-1.16s-1.27-1.42-1.63-1.68c-0.35-0.27-1.25-1.25-1.25-1.25l-1.68-2.97-0.25-2.6-0.72-1.68-2.25-0.54-1.78,0.97-3.13,1.53-1.97,0.44-0.72-0.72-0.78-2.84-1-1.59-2.75-2.35-2.34-1.68-2.66-0.91-2.78-0.06s-2.49,0.8-2.84,1.15c-0.36,0.36-1.45,1.52-1.72,1.88-0.27,0.35-0.88,2.5-0.88,2.5l-0.28,2.12v2.5s-0.17,1.36-0.43,1.72c-0.27,0.36-3.94,2.03-3.94,2.03l-1.16,1.72-0.19,2.66-0.97,2.25-2.15,2.22s-0.6,0.63-0.69,0.09-0.62-2.22-0.62-2.22l-2.16-2.34s-0.44-1.23-1.06-0.78c-0.63,0.44-1.63,1.31-1.63,1.31l-3.28,1s-0.89,0.43-1.25,0.87c-0.36,0.45-2.97,0.72-2.97,0.72l-2.03,0.28-2.16,2.5s-0.62,1.26-1.24,0.82c-0.63-0.45-2.22-2.35-2.22-2.35l-0.82-1.59-0.53-2.94,0.16-5.56-0.06-2.56,1.5-2.6,1.87-3.03s0.44-1.61,0.44-2.06-0.53-3.03-0.53-3.03l-2.03-2.25-4.94-3.66s-0.63-0.71-0.63-1.25c0-0.53,0.1-2.31,0.1-2.31l1.15-1.97s0.63-0.35,0-1.06c-0.62-0.72-3.18-4.57-3.18-4.57l0.15-5.34s0.02-0.65-0.34-1.09c-0.36-0.45-2.59-3.28-2.59-3.28l-1.54-1.88s-0.24-0.62-0.68-0.62c-0.45,0-2.16,0.68-2.16,0.68s-1.17,0.82-1.44,0.29c-0.27-0.54-0.25-2.6-0.25-2.6s-0.29-1.16,0.16-1.25,1.62-0.44,1.62-0.44h1.5l0.29-1.43-1.79-1.97-1.53-1.35-1.4-0.06s-0.14-0.03-0.25,0z\",\"name\":\"Irkutsk Oblast\"},\"br\":{\"path\":\"m513.39,476.39s1.6072,0.98214,2.3214,1.1607c0.71429,0.17857,2.8572,1.25,3.3929,1.3393,0.53571,0.0893,1.7857,0.71428,2.5,0.98214,0.71429,0.26786,1.875,0.98214,2.5893,1.3393,0.71428,0.35714,2.2321,0.53571,3.2143,0.625,0.98214,0.0893,2.8571,0.89285,3.4821,1.0714,0.625,0.17858,2.1429,1.0714,2.9464,1.1607,0.80357,0.0893,1.5179,0,2.7679,0.625s2.7679,1.3393,3.125,1.5179c0.35714,0.17857,0.71429,0.26785,0.80357,0.98214,0.0893,0.71428,0,2.6786,0.0893,3.0357,0.0893,0.35715,0.26785,1.6964,0.625,2.0536,0.35714,0.35715,1.6071,1.9643,2.5893,2.5893,0.98215,0.625,1.4286,1.6964,1.9643,2.1429,0.53571,0.44643,2.3214,1.875,2.8571,1.9643,0.53572,0.0893,2.3214,0.625,2.7679,0.625,0.44643,0,5.0893,0.44643,5.0893,0.44643s1.7857-0.80357,2.7679-1.25c0.98214-0.44643,4.0179-1.25,4.4643-1.5179,0.44643-0.26785,1.5178-0.98214,2.6786-1.0714,1.1607-0.0893,4.1964-0.0893,5.0893-0.0893,0.89286,0,4.1072,0.0893,4.1072,0.0893s2.3214-0.0893,3.125,0.44642c0.80357,0.53572,1.6071,1.6072,1.9643,2.1429,0.35715,0.53572,0.625,1.4286,1.0714,1.6071,0.44643,0.17858,1.4286,0.35715,1.875,0.35715,0.44643,0,2.1429-0.26786,2.5-0.35715,0.35714-0.0893,2.2321-0.44642,2.2321-0.44642l0.0893-2.6786s-0.0893-1.7857,0.53571-2.0536c0.625-0.26785,4.4643-1.5178,4.8214-1.6964,0.35715-0.17857,1.25-1.6071,1.25-1.6071s-2.5-0.625-3.3036-0.625c-0.80357,0-1.25-1.4286-1.25-1.4286l1.0714-1.5179,0.17857-1.9643,0.98214-1.0714,0.80358-1.3393s-0.625-0.98214-0.80358-1.3393c-0.17857-0.35715-0.0893-1.4286-0.0893-1.4286l2.2321-1.1607,3.125-0.35714,2.4107-1.1607,3.4821-2.4107,1.7857-0.625s1.4286,0.0893,1.875,0.26786c0.44643,0.17857,2.4107,0.53571,2.5893,0.17857,0.17857-0.35714,1.6071-1.9643,2.0536-2.3214,0.44643-0.35714,2.6786-2.1429,2.6786-2.1429l1.4286-1.1607s0.98215-1.25,1.4286-1.5179c0.44643-0.26786,1.875-1.0714,2.4107-1.0714,0.53571,0,0.98214,0,1.3393-0.26785,0.35715-0.26786,1.1607-1.25,1.3393-1.6072,0.17857-0.35714,1.0714-0.80357,1.6071-0.89285,0.53572-0.0893,5-1.3393,5-1.3393l2.6786-1.5179s1.875-1.5178,2.0536-1.875c0.17857-0.35714,1.6071-2.8571,1.6071-2.8571l0.98214-1.875s-0.26786-1.4286-0.71428-1.7857c-0.44643-0.35715-2.1429-1.6072-2.1429-1.6072l-2.5-1.25s-1.25-0.80357-1.1607-1.6071c0.0893-0.80357,7.5-5.625,7.5-5.625s0.98215-1.6964,1.0714-2.0536c0.0893-0.35714,0.89286-1.9643,1.25-2.3214,0.35715-0.35714,2.5-2.0536,2.5-2.0536s1.4286-0.625,1.875-0.71429c0.44643-0.0893,3.5714-1.5178,3.5714-1.5178l1.25-0.98215s0.44643-2.0536,0.44643-2.5893c0-0.53572-0.80357-3.8393-0.80357-3.8393s-1.0714-0.53571-1.4286-0.89285c-0.35715-0.35715-1.25-0.80358-2.1429-0.80358-0.89286,0-2.6786,0-3.125-0.625-0.44643-0.625-1.3393-1.25-1.6964-1.875-0.35714-0.625-1.1607-1.7857-1.25-2.2321-0.0893-0.44643-0.80357-2.4107-0.98214-2.7679-0.17857-0.35714-1.0714-2.3214-1.0714-2.3214l-2.0536-3.5714-1.0714-2.7679,0.26786-2.0536,1.0714-0.625,0.80357-1.25,1.4286-1.875,0.625-0.98214-2.3214-1.25s-1.875,0.44642-2.2321,0.71428c-0.35715,0.26786-0.98215,1.3393-0.98215,1.3393s0.35715,0.625,0,0.80357c-0.35714,0.17857-2.3214,0.44643-2.3214,0.44643l-1.25,0.89285-0.71429,1.9643v1.6071l-0.98214,0.98215-2.0536,1.0714-1.3393,0.98215-1.1607,1.3393s-1.6964,0.0893-2.0536,0.0893c-0.35714,0-2.0536-0.625-2.0536-0.625l-2.6786,0.17857-2.3214-0.0893-1.9643-1.4286-1.4286,0.26786-2.0536-0.35714s-0.80357-0.71429-1.1607-0.71429c-0.35714,0-2.1429,0.625-2.1429,0.625l-1.5178,1.3393-0.98215,1.0714-2.6786,0.26785-1.9643-0.0893-2.3214,0.44643-2.2322,1.1607-3.3928,1.7857-2.3214,0.98215-1.3393,0.89285-0.89285,1.1607s-0.0893,0.35714,0.0893,0.71428c0.17857,0.35715,0.98214,1.4286,0.98214,1.4286l1.6072,0.80357,0.98214,0.89285,0.83,0.91,0.0893,1.1607-1.6071,2.1428-0.35714,2.2322-0.35715,1.875v2.6786l0.80358,1.6071,1.1607,1.4286s0.26786-0.44643,0.71429-0.80357c0.44642-0.35714,1.1607-2.3214,1.1607-2.3214v-2.0536l0.0893-2.0536,0.98214-1.875,1.6964-1.25,1.1607-0.17857,0.89286,1.1607s-0.0893,1.25-0.26786,1.6964c-0.17857,0.44643-0.53571,0.98214-0.35714,1.3393,0.17857,0.35714,0.89286,1.4286,0.89286,1.4286l-0.17858,2.7678s-0.35714,2.3214-0.35714,2.6786c0,0.35714-0.26786,2.5893-0.26786,3.0357v2.5893c0,0.89285,0,1.5178,0.0893,2.1428s0.0893,1.6964-0.0893,2.1429c-0.17857,0.44643-0.44642,1.25-0.71428,1.9643-0.26786,0.71428-0.35714,1.25-0.44643,1.9643-0.0893,0.71429-1.0714,1.6964-1.0714,1.6964s-0.71428,0.26786-0.98214-0.625-1.6071-0.98214-1.6071-0.98214-0.71429,0.44642-1.0714,0.98214c-0.35715,0.53571-0.89286,1.25-0.35715,1.6964,0.53572,0.44643,1.5179,1.6071,1.5179,1.6071s0.625,0.35714,0.26786,1.1607c-0.35714,0.80358-1.1607,1.0714-1.6964,1.4286-0.53571,0.35714-1.5179,0.89285-1.6964,1.25-0.17857,0.35714-0.71428,1.4286-0.71428,1.7857,0,0.35714-0.44643,2.0536-0.44643,2.0536l-1.3393,0.98214-1.875,1.3393s-2.2321,0.71429-2.6786,0.98214c-0.44643,0.26786-2.5,1.4286-2.8571,1.7857-0.35715,0.35714-0.53572,1.25-1.4286,1.6071-0.89286,0.35714-3.125,1.3393-3.125,1.3393l-0.98215,0.26785s-0.35714,0.80357-0.35714,1.1607c0,0.35714-0.26786,2.2321-0.26786,2.7678,0,0.53572-0.26785,0.98215-0.625,1.6964-0.35714,0.71429-0.98214,1.6964-1.6071,1.7857-0.625,0.0893-2.7679,0.71428-3.2143,0.89285-0.44642,0.17858-2.5,0.89286-3.0357,0.98215-0.53571,0.0893-2.8571,1.0714-2.8571,1.0714l-0.71429,0.80357-1.5179,1.1607-2.0536,0.71429-1.4286,0.80357-1.6964-1.0714-0.35714-0.98214-0.44643-1.25s-0.35714-0.35715-1.25-0.26786c-0.89286,0.0893-2.0536,0.44643-2.0536,0.44643s-1.3393-1.4286-1.6071-1.875c-0.26786-0.44643-1.875-3.125-1.875-3.125l-1.54-1.99-1.34-1.61s-1.1607-0.71429-1.6964-0.71429c-0.53571,0-2.6786-0.17857-3.0357-0.17857-0.35715,0-1.6072-0.89285-1.7857-1.1607-0.17857-0.26786-3.4821-4.2857-3.4821-4.2857l-1.875-0.89285-2.8571-1.9643-1.9643-2.2321-1.0714-1.6964-0.89286-0.625s-0.89285-0.26786-1.25,0.0893c-0.35714,0.35714-0.80357,0.53571-1.3393,0.89285-0.53572,0.35715-1.875,1.4286-1.875,1.4286l-1.3393,1.25-1.9643,1.1607-1.4286,0.89286s-0.89286,1.0714-0.98215,1.6071c-0.0893,0.53571-0.26785,1.1607-0.26785,2.0536,0,0.89286-0.35715,3.3036-0.35715,3.3036z\",\"name\":\"Buryat Republic\"},\"zb\":{\"path\":\"m588.41,500.07s1.1364,1.1364,1.6415,1.5152c0.50508,0.3788,1.6415,1.6415,2.2728,1.894,0.63134,0.25254,2.6516,1.6415,2.6516,1.6415s2.9042,1.0102,3.4093,1.0102h5.5558c1.1364,0,3.283,0.75762,3.283,0.75762s0.88388,0.63134,2.0203-0.25254c1.1364-0.88389,2.3991-1.6415,2.3991-1.6415s0.75762,0.25254,1.6415,0.63135c0.88388,0.3788,1.5152,1.2627,2.1466,1.2627,0.63135,0,3.4093-1.7678,3.4093-1.7678s2.6516-2.2728,3.1567-2.7779c0.50507-0.50508,2.5254-0.88388,3.5355-1.2627,1.0102-0.37881,5.4296-0.50508,5.4296-0.50508s1.894-1.2627,2.2728-1.894c0.37881-0.63135,1.7678-3.4093,1.894-3.9143,0.12627-0.50508,2.7779-2.3991,3.4093-2.9042,0.63135-0.50508,4.9245-2.5254,5.177-3.0305,0.25253-0.50508,2.0203-1.5152,2.0203-1.5152l3.1567,1.2627,2.9042,1.2627s2.2728,0.25254,2.9042,0.25254c0.63135,0,2.2728-0.50508,2.7779-0.88388,0.50508-0.37881,3.1567-1.7678,3.1567-1.7678s3.283,0.25254,3.7881,0.50508c0.50508,0.25253,1.7678,0.88388,2.3991,1.1364,0.63135,0.25254,3.9144,1.389,3.9144,1.389s3.6618,0.3788,4.4194,0.25254c0.75762-0.12627,2.5254-1.7678,2.7779-2.3991,0.25254-0.63134,0.75762-2.3991,1.6415-2.9042,0.88388-0.50507,4.2932-1.5152,4.2932-1.5152s1.389-0.12627,1.5152-1.6415c0.12627-1.5152,0.37881-2.9042-0.25254-3.5355-0.63135-0.63134-1.389-0.88388-1.7678-1.7678-0.3788-0.88389,0.88389-8.9651,0.88389-8.9651l1.6415-3.7881,1.2627-4.2932s1.389-2.2728,1.2627-2.9042c-0.12627-0.63134-0.37881-3.9143-0.37881-3.9143l-1-2.41s-1.1364-0.88388-1.5152-1.389c-0.37881-0.50507-1.0102-0.37881-1.5152-1.0102-0.50508-0.63135-1.7678-1.1364-1.7678-1.7678,0-0.63134-0.25254-1.5152,0.37881-2.0203,0.63134-0.50508,3.0305-3.0305,3.7881-3.4093,0.75761-0.37881,4.5457-2.5254,4.9245-3.0305,0.37881-0.50507,1.389-1.6415,1.7678-2.1466,0.37881-0.50508,0.88388-0.50508,0.63135-1.6415-0.25254-1.1364-2.6516-3.5355-2.6516-3.5355s-0.63135-0.88389-1.5152-0.88389c-0.88389,0-3.1567-0.3788-3.1567-1.0102,0-0.63134-0.37881-1.2627-0.12627-2.0203,0.25254-0.75762,2.0203-2.2728,2.2728-2.9042,0.25254-0.63135,0.37881-1.894,0.37881-1.894l-2.3991-1.6415-2.6516,0.12627s-0.25254-0.25253-0.25254-0.88388c0-0.63134,0.63135-2.7779,0.88388-3.283,0.25254-0.50507,0.50508-1.5152,0.63135-2.1466,0.12627-0.63134-0.25254-1.7678-0.75761-2.3991-0.50508-0.63135-1.5152-1.389-1.5152-1.389s-1.1364-0.50508-1.6415,0.12627c-0.50508,0.63134-1.1364,1.5152-1.1364,1.5152s-1.1364,0.12627-1.6415-0.25254c-0.50508-0.37881-0.88388-4.1669-0.88388-4.1669s-0.88389-1.2627-1.6415-1.389c-0.75762-0.12627-1.6415-0.12627-2.1466,0.50508-0.50507,0.63134-1.0102,1.0102-1.7678,1.5152-0.75762,0.50508-1.2627,1.1364-1.894,0.75762-0.63134-0.37881-1.389-0.75762-1.2627-1.389,0.12627-0.63135,0.75761-1.6415,0.88388-2.1466,0.12627-0.50507-1.7678-2.1466-1.7678-2.1466l-3.283-0.12627-1.1364-1.1364c-0.12627-0.75761,0.25254-2.5254,0.25254-2.5254l-1.389-1.5152-2.7779-4.0406-1.2627-1.894-3.1567-0.3788-1.1364-2.0203-0.25254-2.9042-1.2627-0.3788h-1.2627l-1.6415,0.63134-1.6415-1.0102-3.0304-0.63135-1.894,0.75762-0.37881,1.0102-0.12627,1.894,0.37881,1.894-0.25254,1.5152-0.50507,2.0203,0.75761,2.0203,0.50508,1.389,1.7678,1.5152,0.88389,0.88388,0.25254,1.894s-0.25254,1.0102-0.75762,1.389c-0.50507,0.37881-3.0305,1.2627-3.0305,1.2627s-2.3991,0.63134-2.9042,0.75761c-0.50508,0.12627-3.4093,0.75762-3.4093,0.75762l-1.389,1.5152-0.25254,1.6415,0.75762,2.5254,1.7678,3.283,1.6415,3.7881,0.75762,2.9042,2.0203,2.2728,1.2627,1.1364,2.1466,0.25254,2.2728,0.50507,1.7678,1.389,0.50507,1.6415,0.12627,1.894v2.3991l-1.894,1.6415-3.0305,1.2627-2.5254,1.2627-2.1466,2.0203-1.0102,1.7678-0.75761,2.1466-2.6516,1.6415-1.894,1.389-2.0203,1.5152-0.88388,0.88388v0.75762l0.88388,0.88388c0.50508,0.12627,2.1466,1.2627,2.1466,1.2627l1.894,1.0102s0.75762,0.88389,0.88389,1.389c0.12627,0.50508,0,1.5152-0.12627,2.1466-0.12627,0.63134-2.0203,3.6618-2.0203,3.6618l-1.894,1.6415-3.6618,2.0203-3.1567,0.63135-2.1466,1.0102s-0.75761,0.37881-1.1364,1.0102c-0.3788,0.63135-1.6415,1.2627-1.6415,1.2627l-2.2728,0.50507-1.0102,0.88388s-1.2627,0.88389-1.6415,1.389c-0.37881,0.50508-3.5355,2.9042-3.5355,2.9042l-0.88389,1.389s-0.75761,1.1364-1.389,1.2627c-0.63134,0.12627-2.2728,0.12627-2.2728,0.12627l-2.3991-0.88388-1.6415,1.389s-1.6415,0.37881-2.1466,0.88388c-0.50508,0.50508-2.7779,1.7678-2.7779,1.7678l-2.3991,0.63134s-1.894-0.25253-2.5254,0.12627c-0.63134,0.37881-1.2627,1.5152-1.2627,1.5152l0.63135,1.5152,0.25254,0.88388-0.88389,1.894s-1.0102,0.75762-1.0102,1.2627-0.88388,2.0203-0.88388,2.0203-0.50508,0.88388,0.25253,1.389c0.75762,0.50507,2.5254,0.88388,2.5254,0.88388s1.389-0.12627,1.5152,0.50508c0.12627,0.63134-1.1364,1.6415-1.1364,1.6415l-2.6516,0.75762-2.0203,1.2627-0.88389,1.6415z\",\"name\":\"Zabaykalsky Krai\"},\"am\":{\"path\":\"m662.32,397.46,4.6429-0.17857,2.3214-0.17858,3.5714-1.7857,2.6786,0.35714,3.5714,1.0714,2.1429,1.0714,2.6786,0.53571,4.4643-0.53571,3.0357,0,2.3214,0.53571,2.8571,2.1429,2.1429,0.89286,2.8571,0.35714,2.3214-1.7857,2.3214-0.71429,1.9643,0,2.1429,1.4286,2.1429,0.71429,2.5-0.71429,1.7857-1.9643,1.7857-1.25,4.1072,0,2.5-1.4286,2.1428-0.89286,3.75,0,1.4286,0,1.25-0.71429,0.53571-2.5,1.6071-1.0714,4.2857-2.3214,2.3214-0.89286,3.5714-1.9643,2.8572-1.4286,5-0.89286,3.0357,0,1.6071,1.4286l-0.37,3.2s-1.25,1.6071-1.9643,2.6786c-0.71429,1.0714-1.6072,2.6786-1.9643,3.3929-0.35714,0.71429-1.25,2.1429-1.25,2.1429s-0.53571,2.8571-0.71429,3.5714c-0.17857,0.71428-1.0714,2.8571-1.0714,2.8571s-1.25,1.7857-1.0714,2.5c0.17857,0.71428,1.25,1.25,1.25,1.25l0.89285,0.71428,3.2143-0.71428s1.7857-0.17857,2.6786-0.17857c0.89286,0,2.5,0.89285,2.5,0.89285l0.53572,1.9643,0.89285,2.6786s0.17857,0.53572,1.6072,0.53572,2.6786-1.4286,2.6786-1.4286l0.17857-2.3214s1.0714-0.89286,1.9643-0.89286c0.89286,0,2.5-0.53572,2.5-0.53572l1.25-2.1428,0.35715-2.5,1.9643-1.7857,2.3214,0.17857c0.71,0.19,3.03-1.6,3.03-1.6l1.4286-1.4286s0.89285-1.0714,1.9643-0.35714c1.0714,0.71428,2.3214,2.5,2.3214,2.5v2.8571l0.53572,1.6071,1.9643,1.7857s1.6071,0.71428,1.25,1.6071c-0.35714,0.89286-2.8571,1.9643-3.5714,1.9643-0.71428,0-3.5714,0.89285-3.5714,0.89285l-1.6071,0.17857-1.96,0.89s-0.71429,0.17857-0.17858,1.0714c0.53572,0.89286,1.9643,1.7857,1.9643,1.7857l1.25,0.89286,0.35714,1.9643-3.2143,2.3214-1.6072,3.0357-0.17857,2.1429-1.6071,2.3214-2.6786,0.89285-1.6071,1.4286,1.9643,1.9643,0.35714,1.7857-2.3214,2.3214-1.25,3.5714,1.6071,2.8571s3.5714,1.4286,4.2857,1.6072c0.71429,0.17857,4.8214,0.71428,4.8214,0.71428s1.4286,0.71429,1.9643,1.25c0.53571,0.53572,0.71428,3.2143,0.71428,3.2143l0.35715,2.5s0,0.53571,0.71428,1.0714c0.71429,0.53571,0,3.5714,0,3.5714l-0.71428,2.8571-0.53572,1.7857-1.25,1.7857-3.2143,0.35714-4.1072-0.17857-2.8571-1.4286-1.77-0.53-3.04,1.07h-3.3929-2.5l-3.2143,0.89286s-2.6786-0.35714-3.5714-0.53572c-0.89286-0.17857-3.5714-2.1428-3.5714-2.1428l-3.22-2.67-1.07-2.15-1.43-2.14-1.7857-1.0714-1.0714-1.9643s0-1.0714-0.71428-1.6072c-0.71429-0.53571-2.6786-0.71428-2.6786-0.71428l-0.89286-1.25-1.7857-2.8571-1.9643-2.5s-1.25-1.4286-1.9643-1.6072c-0.72-0.18-1.79-0.36-2.15-1.43-0.35715-1.0714-2.3214-2.6786-2.3214-2.6786l-2.8572-1.4286-2.6786-1.4286-3.0357-0.17857-2.6786-0.17858s-0.71429,0.89286-1.6072,1.0714c-0.89285,0.17857-4.4643-0.35714-4.4643-0.35714l-3.5714-1.25-2.3214,0.35714-1.9643,0.89286-1.6072,1.4286-3.75,0.71429s-3.2143,0.71428-3.3928,0c-0.17858-0.71429-2.8572-4.1072-2.8572-4.1072l-1.7857-1.4286h-1.6071l-1.0714-1.0714v-2.1428l2.1428-2.1429,0.17858-1.4286-0.89286-1.4286-1.25-0.89286-2.1429-0.17857s-0.71428,1.0714-0.71428,0,0.71428-3.3929,0.71428-3.3929l0.89286-2.3214-0.35714-1.9643-1.25-1.7857-1.7857-0.71428-1.25,0.71428-1.25,0.71429-1.25-0.17857s-0.35714-0.71429-0.35714-1.4286c0-0.71429-1.25-2.6786-1.25-2.6786l-0.71429-0.71428-1.7857-0.17857-0.89286,0.89285-1.4286,0.89286-2.5,0.53572s-0.35714-0.35715-0.17857-1.0714c0.17857-0.71429,0.71428-2.5,0.71428-2.5l-1.25-1.4286-0.51-0.52-1.79-0.18h-2.1429l-0.35714-1.0714v-2.1429z\",\"name\":\"Amur Oblast\"},\"ch\":{\"path\":\"M876.72,53.094c-0.34,0-0.66,0.094-0.66,0.094l-1.78,2.124-4.47,1.969s-6.05,2.853-7.12,3.031c-1.07,0.179-1.44,1.969-1.44,1.969s0.37,2.514,0.19,3.407c-0.18,0.892-1.44,1.406-1.44,1.406s-2.32,1.428-2.5,2.5c-0.18,1.071,0.91,2.156,0.91,2.156s2.66,0.906,3.37,0.906c0.72,0,2.85-0.375,3.56-0.375,0.72,0-0.34,1.625-0.34,1.625l-0.91,1.782-2.31-0.907-3.03-0.719s-2.14,0.554-3.03,0.376c-0.89-0.179-2.31-1.438-2.31-1.438l-2.69,0.531-2.88,0.375h-1.06s-0.53,2.656-1.25,2.656c-0.71,0-2.12,1.782-2.12,1.782l-3.41,0.187-2.84,2.875s-2.86,2.496-3.75,3.032c-0.9,0.535-1.61,0.531-2.5,0.531-0.9,0-2.5,1.062-2.5,1.062l-4.85,3.219-5.15,1.062-3.07,0.907s-1.04,2.861-1.93,3.219c-0.9,0.357-2.88,1.968-2.88,1.968l-3.22,1.938-2.12,1.966-2.16,3.03-1.25,1.97-1.06,2.5v3.22s-0.91,0.72-1.63,0.72c-0.71,0-2.84,1.25-2.84,1.25s-0.9,2.51-1.44,3.41c-0.53,0.89-2.85,1.76-3.56,2.12s0.34,1.25,0.34,1.25l2.35,0.53,0.53,2.16,2.69,0.53h2.65,3.75s1.44,1.07,1.97,1.78c0.54,0.72,1.63,1.78,1.63,1.78l-1.82,2.5-2.5,1.1-2.31-0.72s-1.6,1.25-2.31,1.25c-0.72,0-2.16,1.59-2.16,1.59s-1.42-0.71-2.31-1.25c-0.89-0.53-1.96,0-3.03,0s-1.26,1.26-1.44,1.97-0.87,2.84-0.87,2.84-1.09,1.79-1.63,2.5c-0.53,0.72-2.66,2.69-3.37,3.22-0.72,0.54-1.81,0.54-4.13,0.72s-1.07,1.26-1.25,2.16c-0.18,0.89-1.06,3.03-1.06,3.03s-2.15,1.24-2.69,2.31c-0.53,1.07-0.53,2.67-0.53,3.56,0,0.9,0.53,1.82,0.53,1.82h1.06l0.19-0.72,0.19-1.97,0.72-1.06,0.72,0.53,3.9,1.59,5,3.41,0.38,0.87-0.38,5.19-1.06,2.84-4.09,4.47-2.88,3.94-0.34,2.5,1.25,0.19h1.59s-0.17,1.42-0.53,2.31,0.34,1.59,0.34,1.59l2.88,1.25,3.75,0.38,4.62-0.19,2.69,3.41,2.16,1.78h4.47c1.25,0,1.06,2.5,1.06,2.5l1.06,1.59,3.94-0.34s5.36-1.44,6.25-1.44,3.2-0.53,3.56-1.25c0.36-0.71,2.69-1.59,2.69-1.59l1.97-0.91h3.75s2.66-1.24,3.37-1.59c0.72-0.36,0.74-1.98,1.1-2.69,0.35-0.71,0.87-3.03,0.87-3.03l1.25-2.5h1.63l1.78-1.06,1.06-1.63,1.44-0.34,2.31-1.44,1.06-1.25s0.91-0.89,1.63-1.78c0.71-0.89,0.87-1.6,1.4-2.31,0.54-0.72,2.51-1.44,3.22-1.97,0.72-0.54,2.15-2.14,2.5-3.03,0.36-0.9,1.63,0,1.63,0l4.09,0.68s3.22-1.04,5.72-1.93c2.5-0.9,1.08,1.06,0.91,1.78-0.18,0.71,0,3.2,0,4.09s0.88,3.22,1.78,4.47c0.89,1.25,3.9-1.44,3.9-1.44s3.05-1.78,3.94-2.5c0.89-0.71,3.94,0,3.94,0h6.06v-2.84c0-0.72,1.43-3.23,1.97-4.13,0.54-0.89,1.25-3.56,1.25-3.56l0.72-2.5-0.19-4.81s1.79-1.97,3.22-1.97,2.69,1.59,2.69,1.59l4.28,0.91,1.44-0.53s-0.19-3.22-0.19-3.94c0-0.71-0.19-2.84-0.19-2.84l-0.53-3.22s-0.54-2.51-0.72-3.41c-0.18-0.89-0.87-2.12-0.87-2.12l-2.5-1.63,1.25-0.87,4.09-0.38s1.96-2.66,2.5-3.37c0.54-0.72,2.84-2.35,2.84-2.35v-2.5s-1.04-2.13-1.93-3.03c-0.9-0.89-2.35,0.18-3.07,0.53-0.71,0.36-3.03-0.34-3.03-0.34s-1.41-0.88-2.12-0.34c-0.72,0.53-1.63,1.06-1.63,1.06l-1.4-1.06-1.97,1.78-1.44-0.72s-2.84-1.79-4.09-1.25c-1.25,0.53-1.97-0.72-1.97-0.72h-2.5s-0.56,1.25-1.1,1.97c-0.53,0.71-3.03,0.87-3.03,0.87l-2.84,0.91-2.69,3.75-2.69,0.53,1.25-2.5,0.19-1.59-3.03-0.38s2.13-0.88,2.84-1.06c0.72-0.18,3.41-1.06,3.41-1.06l1.97-0.91,0.34-1.59s1.78-3.41,1.78-4.13c0-0.71-0.68-3.22-0.68-3.22l-0.91-2.31s-2.5-4.63-3.22-5.34c-0.71-0.72-1.05-1.78-2.12-1.78-1.08,0-3.07,0.68-3.07,0.68l-1.4,0.91-1.25-1.06s-2.17-1.98-3.6-2.159c-1.42-0.178,0.38-0.719,0.38-0.719l0.87-1.593s-0.16-1.973,0.38-2.688c0.53-0.714,1.97,1.25,1.97,1.25s2.67,1.438,3.56,1.438,1.78,0.531,1.78,0.531,3.41-0.371,4.13-0.906c0.71-0.536,0.68-2.313,0.68-2.313l0.19-2.687,0.72-1.25,1.25-1.782s0.36-1.964,1.25-2.5c0.89-0.535,1.79,0,2.69,0,0.89,0,2.31,1.626,2.31,1.626l1.59,0.718,2.5-1.437s1.28-2.139,1.82-3.031c0.53-0.893,2.84-1.782,2.84-1.782l2.84-2.156,1.44-3.219s2.14-1.973,2.5-2.687c0.36-0.715-0.34-1.782-1.59-1.782h-1.78l-1.82-1.062-1.93-0.188-3.07-1.781-3.18-0.187h-3.75c-0.9,0,0-0.875,0-0.875l2.5-1.625,0.68-2.5-1.06-1.25-2.5-0.532,1.78-1.25,0.53-1.25-2.31-0.531v-2.5s-0.35-1.785-0.53-2.5c-0.09-0.357-0.45-0.437-0.78-0.437zm-77.19,16.062c-0.22-0.01-0.48,0.081-0.78,0.282-1.61,1.071-3.94,2.312-3.94,2.312-1.07,0.357-1.79,1.42-1.97,2.312-0.17,0.893-0.53,2.88-0.53,3.594,0,0.715,0.2,2.496,1.1,3.032,0.89,0.535,3.03,1.598,3.03,2.312s-0.56,2.321,0.15,2.5c0.72,0.179,1.44-0.522,1.97-1.594,0.54-1.071,0.36-3.419,0.72-4.312s1.45-2.491,1.63-3.563c0.17-1.071-0.19-5.187-0.19-5.187s-0.24-1.644-1.19-1.688z\",\"name\":\"Chukotka Autonomous Okrug\"},\"ha\":{\"path\":\"m779.82,276.93c0.53572-0.71428,1.4286-1.4286,1.9643-2.3214,0.53571-0.89285,1.7857-2.5,1.7857-2.5s1.7857-0.17857,4.1072,0.17858c2.3214,0.35714,4.4643,1.4286,5.7143,2.1428,1.25,0.71429,2.6786,1.25,3.0357,2.3214,0.35714,1.0714,1.6071,2.1429,1.6071,3.3929s-1.4286,3.5714-1.4286,4.2857c0,0.71429-0.17857,2.5,0.71428,3.3929,0.89286,0.89286,0.71429,1.6071,1.7857,1.4286,1.0714-0.17857,3.9286-1.0714,5-1.25,1.0714-0.17857,3.3929,0,5,0.53572,1.6071,0.53571,2.8571,0.89285,3.2143,1.6071,0.35715,0.71428,1.0714,1.4286,0.89286,2.5-0.17857,1.0714-2.5,2.8571-2.5,2.8571l0.17857,1.4286,0.89286,1.6072s1.6071,0.71428-0.35714,0.89285c-1.9643,0.17857-3.0357-0.71428-3.0357-0.71428s0.17857-0.17857,0-1.0714c-0.17857-0.89286-0.71428-1.7857-1.7857-1.4286-1.0714,0.35714-2.3214,1.9643-3.0357,2.5-0.71428,0.53571-2.8571,3.0357-2.8571,3.0357s-1.9643,0.71429-2.8571,1.7857c-0.89286,1.0714-4.1071,4.6428-4.1071,4.6428s-0.17858,1.25-1.0714,2.5c-0.89286,1.25-2.3214,2.3214-2.5,3.5714-0.17857,1.25,0,4.1071,0,4.1071s1.4286,1.0714,1.6071,2.3214c0.17857,1.25-0.89286,1.9643-1.25,2.8572-0.35714,0.89285-1.4286,0.53571-1.4286,1.7857s0.17857,5.7143,0.17857,5.7143l-0.35714,4.8214-0.35715,4.1072s-1.0714,1.9643-1.25,3.2143c-0.17857,1.25-0.35714,2.6786-0.35714,3.3929,0,0.71429-0.17857,3.0357-0.17857,3.75,0,0.71429-0.71429,1.9643-0.89286,2.6786-0.17857,0.71429-1.0714,1.25-0.17857,1.9643,0.89286,0.71428,1.9643,1.9643,1.9643,1.9643l-1.7857,3.3929-0.17857,1.9643-1.7857,3.3928-1.25,3.75-0.35715,4.1072-0.71428,1.6071-3.2143,4.1071,0.35715,2.6786s2.1428,1.0714,2.8571,1.0714c0.71428,0,3.3929,0.53572,4.4643-0.17857s2.5-1.4286,3.2143-1.7857c0.71429-0.35715,1.6071-0.89286,2.8571,0.35714s2.5,4.4643,2.5,4.4643,0.17857,1.4286,1.4286,1.0714c1.25-0.35714,1.9643-2.1428,1.9643-2.1428l-1.0714-2.1429,0.53572-2.6786-0.53572-1.7857-1.6071-2.5s-1.7857-1.4286-2.5-1.4286c-0.71429,0-3.75,1.4286-3.75,1.4286s-1.9643,2.3214-1.6071,1.4286c0.35714-0.89285,1.9643-3.3928,1.9643-3.3928l1.6071-0.35715,1.25-1.7857s0.89286-0.71429,1.9643-0.71429,3.2143-1.25,3.2143-1.25,1.25-2.6786,1.0714-0.89285c-0.12,1.78-1.72,4.28-1.72,4.28l1.0714,2.1429,1.9643,2.1429,0.53572,1.7857-0.17857,2.6786,2.3214,1.4286v1.6072,2.8571l1.7857-0.71429c0.71429-0.71428,2.1429-4.2857,2.1429-4.2857l0.89285-3.2143v-2.1428s-1.6071-1.7857-0.89285-1.9643c0.71428-0.17857,4.6428-2.1429,4.6428-2.1429s2.1429-0.53571,3.0357-0.53571c0.89286,0,4.1071,0.17857,4.8214,0.35714,0.71428,0.17857,4.4643,1.6071,4.4643,1.6071s4.4643,1.25,5.1786,1.25c0.71429,0,1.9643,1.7857,1.9643,1.7857s-0.89286,1.9643,0.53571,2.8571c1.4286,0.89286,4.8214,3.0357,4.8214,3.0357l3.75,2.1428s1.4286,3.3929,1.4286,4.2857c0,0.89285-0.17857,4.6428-0.17857,5.7143,0,1.0714,0,5,0.53572,5.7143,0.53571,0.71428,1.0714,2.3214,2.1428,3.2143,1.0714,0.89286,3.2143,4.2857,3.2143,4.2857l2.5,1.25,3.0357,6.9643s1.4286,1.4286,1.6072,2.3214c0.17857,0.89286,1.6071,3.0357,1.7857,3.75,0.17857,0.71429,1.6071,5,1.7857,5.7143,0.17857,0.71428-0.53572,8.5714-0.53572,8.5714l0.53572,3.3928s0,1.25-0.89286,1.9643c-0.89286,0.71429-3.5714,1.6071-3.5714,1.6071l-1.4286,0.17857-1.4286-1.7857-0.53572-2.6786-3.0357-3.0357s-1.9643-1.25-2.6786-0.71428c-0.71429,0.53571-2.3214,1.9643-2.3214,1.9643s-0.89286,1.7857-1.25,2.5c-0.35714,0.71429-1.4286,1.25-0.89286,2.3214,0.53572,1.0714,1.9643,2.6786,1.9643,2.6786s0.35714-0.71428,2.1428-0.53571c1.79,0.18,2.14,2.68,2.14,2.68l-0.89286,3.2143s-1.9643,1.25-2.6786,1.6071c-0.71428,0.35714-2.8571,1.25-1.7857,2.1429,1.0714,0.89285,2.3214,1.25,2.3214,1.25s0.71428,1.25,0,1.9643c-0.71429,0.71429-2.3214,2.1429-2.3214,2.1429s-1.7857,0.35714-3.0357,1.25-3.2143,1.4286-4.2857,1.6071c-1.0714,0.17857-2.8571,1.25-4.1071,0s-2.1429-0.89285-2.5,0.17857c-0.35715,1.0714-1.6072,0.89286-1.7857,1.9643-0.17857,1.0714,0,2.8571,0.35715,3.5714,0.35714,0.71428,0,3.0357,0,3.0357s-2.3214,1.9643-2.5,1.25c-0.17858-0.71428,0.17857-2.3214-0.35715-3.2143-0.53571-0.89286-2.3214-2.5-2.3214-2.5s-2.8571-1.4286-1.7857-2.3214c1.0714-0.89286,2.8571-2.6786,3.2143-3.2143,0.35714-0.53571,0.35714-3.0357,0.35714-3.0357s-2.1429-0.89286-2.6786-1.7857c-0.53572-0.89285-1.0714-3.3928-1.0714-4.1071,0-0.71428-0.71429-3.3929,0.17857-3.75,0.89286-0.35714,2.8571-1.9643,2.8571-1.9643l0.53572-1.9643s-0.53572-0.35714-2.1429-0.35714c-1.6071,0-2.5-0.17857-3.9286,0.89285s-1.4286,1.0714-2.5,2.5-2.1429,2.6786-3.2143,3.2143c-1.0714,0.53571-2.6786,0.71429-2.6786,0.71429s-4.1071-0.71429-4.2857-1.4286c-0.17857-0.71428-1.6072-1.9643-2.5-1.9643-0.89286,0-2.1429,0.35714-3.2143,0.89286-1.06,0.55-1.95,0.73-2.84,0.73-0.89286,0-4.2857,1.0714-4.2857,1.0714s-2.1428,1.7857-3.2143,1.7857c-1.0714,0-2.1014,0.40945-2.28-0.66198-0.17857-1.0714-1.0823-3.4216-1.0823-3.4216l-1.5332-4.3507s-2.6677-0.69261-3.7392-0.87119c-1.0714-0.17857-3.8221-0.85138-3.8221-0.85138l-2.4892-1.1525s-2.1249-2.2078-1.7678-2.9221c0.35714-0.71428,1.7028-4.0044,2.4171-4.5401,0.71428-0.53572,1.2608-1.4069,1.2608-1.4069l-1.25-2.3214s-1.7965-1.2085-0.90368-1.7442c0.89286-0.53571,3.7608-2.0058,3.7608-2.0058l2.0906-4.0892,1.5025-3.2341,3.5498-2.6767-0.89285-1.9643-2.4171-1.7118-0.11357-1.6288,2.5306-1.1237,4.1071-0.71428,2.6786-0.89286,1.0714-1.25-0.53571-1.6071-1.986-1.47-1.0083-2.5108-0.0631-2.4477-1.47-2.0058-1.7226-0.67282-2.2583,1.7442s-1.6703,1.0823-2.3846,1.4394c-0.73,0.34-2.87,0.19-2.87,0.19l-2.3214,1.25-0.44008,2.5-0.80992,2.3214-2.5,1.0714-2.1429,0.53571-0.53571,2.4585-1.4809,1.4286-2.3431-0.17857-0.99746-2.4585-1.0714-2.5s-1.2608-0.51404-1.9751-0.69262c-0.71428-0.17857-4.4534,0.51405-4.4534,0.51405l-1.7857-0.17857-1.7857-1.25,1.9643-5.5357,0.89286-4.1072s1.25-2.3214,1.9643-3.0357c0.71428-0.71429,3.0357-5,3.0357-5l0.35714-2.6786s-0.53571-1.25-1.6071-1.6072c-1.0714-0.35714-5.3571,0.17858-5.3571,0.17858l-2.6786,0.53571s-3.3424,2.5325-4.0567,1.8182c-0.71428-0.71429-1.1219-3.9611-1.1219-3.9611s-3.0376-1.6288-3.0376-2.5217c0-0.89286,1.9662-1.5855,1.9662-1.5855s0.53571-1.0714,0.71428-2.1429c0.17857-1.0714-0.20024-2.8138-0.20024-2.8138l-2.6281-0.77741s-1.4069-0.89472-2.1212-1.0733c-0.71428-0.17857,1.1996-2.2998,1.1996-2.2998l0.89286-1.6072-0.35714-1.0714s-2.2493-0.54655-2.2493-1.2608c0-0.71429,1.6505-3.3604,1.6505-3.3604l-1.5873-1.6703-2.5415-0.82971-0.80806-1.618s0.69262-0.73594,1.5855-1.0931c0.89286-0.35714,1.0498-0.61866,1.0498-0.61866l-1.3852-0.89286v-2.4062c0-0.71429-0.074-2.3304-0.074-2.3304s-1.2718-1.1078-1.4502-2.345c-0.1894-1.3131,2.6371-1.7532,2.6371-1.7532l-0.93619-0.82972-0.49238-1.4917,0.2417-2.1339,2.7525-0.86037,2.9094-0.89285,2.4477,0.1371,0.70345-1.8922,3.2034,0.21106,2.9203,0.0108s0.35715-1.7749,0.35715-2.4892c0-0.71428-1.8705-1.618-1.4286-2.2691,0.40112-0.59101,1.5657-0.89285,2.4585-1.0714,0.89286-0.17858,3.9286-0.71429,4.1072-1.4286,0.17857-0.71428,2.5829-6.1562,2.5829-6.1562s0.96683-1.0083,1.6811-1.1869c0.71429-0.17857,3.9286-0.93432,3.9286-0.93432l-1.764-2.794-3.0051-2.8246-1.6378-4.8539-2.3214-2.1428-1.4286-1.7857v-5.3571l3.0357-6.7857-1.0714-3.2143-0.72512-5.8585,0.81889-2.85s3.5498,0.11543,4.264,0.29401c0.71428,0.17857,7.7634,0.22004,7.7634,0.22004s0.95599-4.0152,1.3131-4.7295c0.35714-0.71428,1.3871-0.826,2.28-1.0046,0.89286-0.17857,3.3495-0.62051,3.3495-0.62051l2.5433,1.1562,1.6071-1.0714z\",\"name\":\"Khabarovsk Krai\"},\"eu\":{\"path\":\"m781.96,462.82c0.98214,1.875,1.1607,1.875,1.875,2.5893l2.6786,2.6786s0.80357,1.1607,1.0714,1.7857c0.26786,0.625-0.0893,1.6964,0.625,1.9643,0.71429,0.26785,2.3214,0.53571,2.7679,0.625,0.44643,0.0893,1.4286,1.0714,2.3214,1.1607,0.89285,0.0893,1.6071,0.0893,2.1428-0.35714,0.53572-0.44643,1.0714-1.25,1.6964-1.7857,0.625-0.53571,2.5893-1.4286,3.125-1.6964,0.53572-0.26785,1.875-0.625,2.3214-1.0714,0.44643-0.44643,1.1607-0.98215,1.1607-2.0536s0.26785-2.7678,0.71428-3.125c0.44643-0.35714,2.9464-1.9643,3.5714-2.5,0.625-0.53571,1.6964-2.2321,2.1429-2.8571,0.44643-0.625,1.875-2.6786,2.2321-3.2143,0.35714-0.53572,2.1429-2.0536,2.1429-2.0536l2.0536-2.3214,0.98214-1.0714,2.6786-1.875,0.71429-0.80357,0.17857-1.1607,0.0893-0.35714-1.5179-0.17857-1.875-0.0893-1.6964,0.44643-1.6964,1.1607-1.3393,1.25-0.80358,1.0714-1.25,1.6072-1.4286,0.98214-1.7857,0.625s-1.25,0.17857-1.7857,0c-0.53571-0.17857-2.1428-0.71429-2.1428-0.71429l-1.4286-0.625-0.80358-0.98214-0.89285-0.625s-0.80357-0.26786-1.1607-0.17857c-0.35714,0.0893-1.7857,0.625-1.7857,0.625l-2.0536,0.71429-2.4107,0.17857s-1.0714,0.44643-1.7857,0.625c-0.71429,0.17857-2.4107,0.80357-2.4107,0.80357l-1.4286,0.89285-1.875,0.26786-0.80357,0.17857-0.35714,0.98215-0.0893,1.4286s-0.44643,1.1607-0.44643,1.5178c0,0.35715-0.53571,1.875-0.53571,1.875l-0.53571,1.1607-0.71429,1.4286z\",\"name\":\"Jewish Autonomous Oblast\"},\"pr\":{\"path\":\"m822.68,473.71c0,0.53571,0.53571,1.25,0.53571,1.25l1.4286,1.4286s0.35715,1.0714,0.44643,1.4286c0.0893,0.35714-0.625,2.0536-0.625,2.0536l-1.1607,2.7679s-0.0893,2.2321,0,2.5893c0.0893,0.35715,0.625,1.0714,0.89285,1.5179,0.26786,0.44643,0.80358,1.1607,0.80358,1.5179,0,0.35714-0.80358,1.9643-0.80358,1.9643v1.9643c0,0.44643-0.44642,1.9643-0.44642,1.9643s-0.17858,0.0893-0.17858,1.0714v2.7679c0,0.71429-0.26785,3.0357-0.35714,3.3929-0.0893,0.35714-1.9643,0.53571-2.3214,0.53571-0.35714,0-1.3393-0.98214-1.3393-0.98214s-0.98215-1.6071-1.1607-2.0536c-0.17857-0.44643-1.3393-1.5179-1.3393-1.875,0-0.35715-0.26786-1.6072-0.89286-1.7857-0.625-0.17857-1.5179,0.26786-1.5179,0.26786s-0.53571,0.89286-0.625,1.25c-0.0893,0.35714,0,0.98214-0.0893,1.4286-0.0893,0.44643-0.71429,2.5-0.71429,2.5s-0.625,0.625-1.1607,0.89286c-0.53572,0.26786-2.2322,1.0714-2.2322,1.6071,0,0.53572,1.0714,0.71429,2.1429,2.0536,1.0714,1.3393,3.125,4.6429,3.125,4.6429l2.5,4.2857,1.4286,4.9107s0.44643,1.6071,0.625,2.1429c0.17857,0.53571,0.89286,1.1607,0.98215,1.9643,0.0893,0.80357,0.53571,2.5-0.35715,2.8571-0.89285,0.35715-4.0178,1.0714-4.0178,1.0714l-0.71429,0.625,1.1607,0.71429s0.625,0.44643,1.0714,0.53571c0.44643,0.0893,0.53572,1.4286,0.98215,1.4286,0.44642,0,1.875-0.35714,2.4107-0.71428,0.53571-0.35714,1.3393-0.625,2.1429-0.625,0.80357,0,1.4286-0.44643,1.4286-1.0714,0-0.625-0.625-3.3929-0.625-3.8393,0-0.44642,1.5179-2.5893,1.5179-2.5893v-2.1429c0-0.35714-0.17858-1.4286,0.35714-1.5179,0.53571-0.0893,2.9464-0.71428,2.9464-0.71428s0-1.1607,1.0714-0.26786c1.0714,0.89286,1.5178,2.9464,1.5178,2.9464s1.875,0.35714,2.2322,0.17857c0.35714-0.17857,0.98214-0.625,1.5178-0.98214,0.53572-0.35714,2.5893-0.53572,3.3929-0.53572,0.80357,0,2.1429-0.44642,2.1429-0.44642l-0.26786-1.1607s2.0536-1.25,2.5-1.5179c0.44643-0.26785,2.2321-1.1607,2.8571-1.7857s1.5179-1.4286,1.9643-2.4107c0.44643-0.98215,1.3393-3.125,1.5179-3.4822,0.17857-0.35714,1.1607-2.5,1.4286-3.2143,0.26785-0.71429,0.89285-2.3214,1.3393-3.125,0.44643-0.80357,1.5179-2.8572,1.5179-2.8572s-0.0893-2.3214-0.0893-2.8571c0-0.53571-0.26785-1.875-0.625-2.8571-0.35714-0.98214-0.53571-1.1607-0.44642-2.1429,0.0893-0.98214,0.98214-1.6071,1.6071-2.0536,0.625-0.44643,1.0714-1.4286,1.0714-1.9643,0-0.53571-1.25-2.9464-1.25-2.9464s0.0893-1.1607,0.35714-1.6964c0.26786-0.53572,1.5179-1.7857,1.5179-1.7857l0.17857-2.9464s0.80357-2.2321,0.80357-2.6786c0-0.44643,0.26786-3.9286,0.26786-3.9286l0.89285-2.1429s0.26786-3.3928,0.26786-3.9286c0-0.53571-0.53571-5-0.53571-5.5357,0-0.53572-0.17857-4.1071-0.17857-4.7321s-0.71429-2.1429-0.71429-2.5893c0-0.44643,0.0893-2.1429,0.26786-2.5893,0.17857-0.44643,0.98214-1.9643,0.98214-1.9643s-0.0893-2.0536-0.0893-2.5893c0-0.53571,0.17858-1.6964-0.44642-1.7857s-2.3214,0.80357-2.3214,0.80357l-1.7857,0.71429-1.5178,0.17857-0.71429-0.44643-1.0714-1.4286s-0.26786-1.4286-0.26786-1.7857c0-0.35714-0.53571-1.1607-0.53571-1.1607l-1.25-1.3393-1.3393-1.3393-1.4286-0.71429-1.0714,0.17857s-0.98214,0.17858-1.0714,0.53572c-0.0893,0.35714-0.53572,0.44643-0.80358,0.80357-0.26785,0.35714-1.1607,1.3393-1.1607,1.3393l-0.53571,1.0714-0.44643,1.0714-0.80357,0.80357-0.17858,0.71429,0.35715,0.80357,0.89285,0.98214s0,0.71429,0.53572,0.80358c0.53571,0.0893,1.0714,0.0893,1.0714,0.0893h1.3393l1.25,0.625,0.71429,0.80357,0.0893,1.3393-0.26785,1.4286-0.44643,1.25-0.53572,0.71429-1.5178,0.89285-1.7857,0.89286-0.89285,0.89286,0.26785,0.80357,1.9643,0.80357,0.80357,0.98214-0.0893,0.71429-0.80357,1.0714-1.0714,1.0714-1.875,0.89286-1.7857,0.98214-3.64,1.44-1.6964,0.44643-1.9643,0.26786-0.89286-0.44643-1.25-0.71429s-0.53571-0.26786-0.89285,0c-0.35715,0.26786-0.625,0.98214-0.625,0.98214l-1.5179,1.0714-0.53571,1.6964,0.0893,1.3393s0.35714,0.71428,0.44643,1.1607c0.08,0.44,0.08,1.33,0.08,1.33l-0.0893,1.6071-0.98214,1.0714z\",\"name\":\"Primorsky Krai\"},\"ma\":{\"path\":\"m829.64,182.46s1.0714,0.71428,2.1429,1.25c1.0714,0.53571,3.0357,2.1429,3.2143,2.8571,0.17857,0.71429,0.17857,2.3214,1.0714,2.8571,0.89286,0.53572,3.5714,1.0714,3.5714,1.0714l1.9643,0.89286,1.0714,1.7857,3.0357,1.6072s0.71429,1.0714,0.17857,1.9643c-0.53571,0.89286,0,2.6786,0,2.6786l2.5-0.35714,2.8572,0.35714,1.6071,2.3214,1.9643,2.6786,2.1429,1.0714,1.9643,2.1429,1.0714,1.9643,0.17857,2.5s-0.35715,2.5,0,3.2143c0.35714,0.71429,1.0714,3.75,1.0714,3.75l1.0714,1.7857s0.53572,1.0714,0.53572,1.7857c0,0.71428-0.89286,2.1429-0.89286,2.1429l0.17857,1.7857-1.9643-0.53571-0.35715-1.9643s0.35715-0.71429-0.53571-0.35714c-0.89286,0.35714-1.7857,1.4286-1.7857,1.4286s-0.35715,0.89286-1.0714-0.53572c-0.71429-1.4286-1.7857-1.9643-1.7857-1.9643s-1.6071-0.71429-1.6071-1.9643-1.7857-2.3214-1.7857-2.3214l-1.6072-1.4286s-0.35714,1.7857-0.35714,2.5c0,0.71429,1.4286,1.4286-0.35714,1.4286s-4.1072,0.71429-4.1072,0.71429l-0.89285,1.0714-0.35715,2.6786-1.25,1.25-2.6786,2.8571-0.35714,2.3214-1.0714,1.9643,0.53572,2.3214,1.4286,1.4286s0.53571,0.71428,0.53571,1.4286v2.6786l0.17857,1.6071,1.6072,1.4286,0.17857,4.4643v4.4643l0.17857,3.0357,1.7857,2.6786,1.0714,3.0357,0.35714,0.89285,1.9643,0.35715,1.0714-1.25,1.9643-1.0714s1.6072-0.17857,2.3214-0.17857c0.71429,0,1.6072,0.89285,1.6072,0.89285l0.17857,0.89286-1.7857,1.4286-1.7857,0.71429v1.0714l-0.71429,0.89285-1.7857,0.89286-1.25,0.53571-0.53572,0.71429-0.17857,2.6786v2.3214l-0.89285,0.71429-1.7857-0.89286-0.71428,1.4286-0.53572,2.5-1.0714,1.25-3.2143,0.71429-1.25-0.17858-0.53572-1.6071,2.5-1.6071,1.25-1.9643s1.9643-1.7857,0.53572-1.7857-2.6786,1.0714-2.6786,1.0714l-0.89286,1.25-0.89286,0.53571s-0.89286,0.35714-1.7857-0.17857c-0.89286-0.53571-2.3214-0.71429-2.3214-0.71429s-1.25,0.89286-1.25,1.4286c0,0.53571,0.35714,1.4286-0.53572,1.4286-0.89285,0-3.2143,0.17857-3.2143,0.17857l-2.5,1.6071-2.5,0.89286-1.0714,2.1429,0.35714,1.7857,0.53572,1.9643,0.35714,0.89285,1.6071,1.0714s0.17857,0.89286-1.7857,0.89286h-4.4643l-1.0714,2.1429-1.0714,1.25-2.5,0.35714-2.1429-2.8571-2.6786-1.25s-1.9643-0.71429-2.6786-0.71429c-0.71429,0-3.3929,0.17857-3.3929,0.17857l-2.1429,0.89286-1.7857,0.17857-1.25-0.89286-1.0714-1.7857-0.17857-2.3214,1.25-1.9643,0.17857-2.5-2.5-3.9286-2.3214-1.4286-2.3214-1.25-2.6786-0.71428-2.6786-0.71429-2.1429,0.71429-1.0714,1.4286-1.0714,1.9643-0.89285,1.25h-1.25l-1.25-1.9643-0.17857-0.89286,1.25-0.71429,0.35714-1.4286v-1.25l-1.25-1.25-5.7143-6.7857s-0.35714-1.0714-0.35714-1.7857v-3.2143l-1.78-0.88-0.89286-0.35714-0.17857-3.0357-0.53572-1.4286-1.0714-0.35714-0.35714-1.25,1.6071-1.4286,2.1429-0.17857,1.0714-0.53572,1.0714-1.0714,2.1429-0.17857,1.9643,0.17857,0.53572-1.0714-1.25-1.9643-1.4286-1.25-0.35714-2.1429s1.25-0.53571,1.9643-0.53571c0.71428,0,3.5714-1.0714,3.5714-1.0714l-0.17858-2.6786s0.53572-0.35714,1.25-0.35714c0.71429,0,3.9286,0.35714,3.9286,0.35714l2.1428-1.7857,4.1072-6.4286-0.17858-3.0357-1.4286-1.4286-2.6786-2.8572s-1.25-0.89285-1.4286-1.6071c-0.17857-0.71428-0.35714-1.7857-0.35714-1.7857l2.1428-2.3214,0.17858-1.6071-1.25-1.25-2.5,0.17857-0.71429-0.53572-1.0714-1.0714v-0.71429l3.06-0.86,1.25-1.0714-0.53572-1.4286-1.25-0.89285-0.17857-1.6072,2.1429-3.0357,3.75-1.25,2.1428-1.25-1.25-2.5s0.17858-0.35714,0.89286-0.35714c0.71429,0,3.3929,0.71428,3.3929,0.71428l1.0714-0.17857-0.53572-3.5714v-1.6071l1.4286-0.53572,0.2-2.66-0.17858-0.53571h2.5l1.6072,0.53571,0.53571,1.9643,1.0714,1.0714s0.53571,0.53571,1.25,0.53571,3.75-0.71428,3.75-0.71428l3.5714-0.71429,2.3214-0.35714,2.6786-1.0714,2.3214-1.4286,2.3214-0.89286,1.9643-0.17857,2.8571-0.35714,2.5-1.6072z\",\"name\":\"Magadan Oblast\"},\"sh\":{\"path\":\"M943.16,321.59c-0.45,0.19-0.81,0.37-1.19,0.94s-0.31,1.53-0.5,1.85c-0.19,0.31-1.53,1.12-1.53,1.12-0.51,0.51-0.87,1.06-2,1.25-1.14,0.19-2.59-0.23-2.85,0.66-0.25,0.88,0.06,2.12,0.69,2.25,0.63,0.12,1.53,0.44,2.1,0.25,0.56-0.19,1.56-1.25,1.56-1.25s0.62,0.3,1,0.93c0.38,0.64,0.97,1.78,0.97,2.03,0,0.26,0.19,1.06-0.07,1.57-0.25,0.5-0.81,2.78-0.56,3.03s1.24,0.9,1.94,0.9c0.69,0,1.09,0.17,1.78-0.78,0.69-0.94,0.93-1.74,1.25-2.56s0.78-1.9,1.09-2.16c0.32-0.25,0.48-1.02-0.22-1.65-0.69-0.63-0.93-1.75-1-2.06-0.06-0.32-0.56-1.09-0.24-1.53,0.31-0.45,1.12-1.31,1-1.69-0.13-0.38-1.38-1.09-1.82-1.47s-0.96-1.82-1.4-1.63zm2.15,20.44s-0.43,0.15-0.69,0.85c-0.25,0.69-0.5,1.74-0.31,2.31s0.56,1.4,0.81,1.78c0.26,0.38,0.75,1.31,0.88,1.62,0.13,0.32,0.53,0.72,1.03,0.91,0.51,0.19,1.12,0.07,1.25-0.44,0.13-0.5,0.19-1.4,0.19-2.03s-0.19-2.15-0.19-2.53,0.07-0.87-0.31-1.31-2.66-1.16-2.66-1.16zm2.53,9.22c-0.56,0.19-1.9,0.5-2.15,0.69-0.26,0.19-0.63,0.52-0.5,1.03,0.12,0.5-0.2,1.24,0.5,1.69,0.69,0.44,2.15,0.96,2.53,1.09s0.55,0.44,1.19,0.13c0.63-0.32,1.09-0.59,1.03-1.41-0.07-0.82-0.59-1.62-0.78-1.88-0.19-0.25-1.5-1.34-1.5-1.34h-0.32zm-117,4.5l-1.87,1.25s0.5,1.12,0,1.12h-1.78s-1.26,0.78-0.5,1.29c0.76,0.5,2.4,0.87,3.03,1,0.63,0.12,1.52,0.65,2.16,1.15,0.63,0.51,1.49,0.87,1.74,1.63,0.26,0.76,0.63,2.28,0.63,2.28l0.91,1.62-0.54,2.16-1.74,0.13s-0.91-1.14-1.41-0.13c-0.51,1.01-0.5,1.77-0.5,2.41,0,0.63,0.27,1.24,0.91,1.37,0.63,0.13,1.48,0.4,2.74,1.41,1.27,1.01,2.03,2.9,2.29,3.53,0.25,0.63,0.24,2.65,0.5,3.41,0.25,0.75,1.4,2.02,2.03,2.53,0.63,0.5,2.03,2.52,2.28,3.03,0.25,0.5,1.25,2.4,1.5,2.9,0.25,0.51,1.78,1.75,1.78,1.75s1.24,1.15,2,1.66,3.8,1.37,4.56,1.37,3.03,0.66,3.28,1.16c0.26,0.51,2.78,5.66,2.78,5.66l5.57,8.34s2.52,2.15,3.15,2.66c0.64,0.5,2.4,3.9,2.91,4.65,0.51,0.76,2.12,4.44,2.5,4.94,0.38,0.51,3.69,5.06,3.69,5.06s2.77,1.88,3.4,2c0.64,0.13,3.41,1.91,3.41,1.91s2.65,2.9,2.78,3.41c0.13,0.5,0.75,3.53,0.75,3.53l2.16,3.4,3.15,2.66,2.5,5.19,0.53,2.25s0,2.15,0.5,2.53c0.51,0.38,5.29,4.06,5.29,4.06l1.65,0.88,1.78,0.25v-2.54s-0.9-1.65-1.15-2.15c-0.26-0.51-0.88-3.03-0.88-3.03s-0.5-0.74-0.5-1.63c0-0.88,0.75-2.4,0.75-2.4s1.53-0.25,2.16-0.25,1.24-0.12,2.25-0.63c1.01-0.5,2.41-0.37,2.41-0.37l2.28,2,1.37,0.78s0.5-1.4,0.5-2.03c0-0.64,0.01-1.53-0.62-2.41-0.64-0.88-1.63-1.88-1.63-1.88l-2.03-1.65s-0.99-1.38-1.75-1.25-1.15,0.24-1.41,0.75c-0.25,0.5,1.52,2.66,0,2.28-1.51-0.38-2.4-0.9-2.78-1.41-0.38-0.5-1.62-1.87-1.62-1.87s-2.4-1.28-3.03-1.53c-0.64-0.26-2.4-0.88-3.04-0.88-0.63,0-4.06-1.15-4.06-1.15l-2.12-2.38-2.41-6.31s-1.12-1.65-1.25-2.41-1.03-3.15-1.16-3.65c-0.12-0.51-0.37-2.28-0.62-2.78-0.25-0.51-1-2.29-1-2.29l-0.53-3.28,1.78-1.62s2.77-1.03,3.41-1.03c0.63,0,5.06-0.13,5.06-0.13l2.4,0.63s2,0.25,2.5,0.25c0.51,0,1.03,0.51,1.16-0.5s-1.53-2-1.53-2l-3.53-0.53-3.66-1.26-2.4-1.78-18.57-15.25-1.5-1.28-1.78-0.12s-0.87,0.13-1.25-0.63-0.4-1.27-1.15-1.9c-0.76-0.64-2.5-1.88-2.5-1.88s-1.52-0.25-2.66-0.5-3.66-1.4-3.66-1.4l-0.4-2.79-1.38-1.25-0.62-1.28,1.25-1.62-0.25-1.91-2.53-2.12-3.54-0.79s-2.4-0.99-2.65-1.5c-0.25-0.5,0.12-2.15,0.12-2.15s-0.62-1.12-1.12-1.5c-0.51-0.38-4.28-1.91-4.28-1.91l-2.91-1.9-1.03-2.63s0.01-1.91-0.63-1.91c-0.63,0-2.78-0.87-2.78-0.87zm119.16,7.94c-0.88,0.25-1.53,0.4-1.72,0.97-0.19,0.56,0.06,1.24,0.31,1.43,0.26,0.19,0.84,0.69,1.47,0.57,0.63-0.13,1.56-0.19,1.82-0.57,0.25-0.38-1.13-1.46-1.32-1.78-0.19-0.31-0.56-0.62-0.56-0.62zm1.75,4.06c-0.51,0.25-1.19,0.56-1.37,1.06-0.19,0.51,0.36,1.37,1,1.75,0.63,0.38,1.05,0.63,1.56,0.06,0.5-0.56,1.09-1.62,1.03-1.93-0.06-0.32-2.22-0.94-2.22-0.94zm0.19,6.97c-0.18,0.01-0.34,0.06-0.5,0.16-0.63,0.37-0.82,1.18-0.82,1.56s0.88,3.09,0.88,3.47-0.87,2.4-1,2.9c-0.13,0.51-0.01,1.33,0.62,2.6,0,0,1.13-0.25,1.38-0.25s1.72-0.94,1.84-1.19c0.13-0.25,0.44-2.28,0.44-2.91s-0.06-2.02-0.12-2.47c-0.07-0.44-0.63-1.4-0.63-1.78s-0.31-1.43-0.69-1.69c-0.28-0.18-0.87-0.44-1.4-0.4zm-4.41,14.53s-1.28,0.03-1.53,0.16c-0.25,0.12-0.69,0.49-0.81,0.75-0.13,0.25-0.57-0.07,0.06,0.62,0.63,0.7,1.02,1.38,1.66,1.38,0.63,0,2.06,0.65,2.31,0.65s1.03-0.21,1.22-0.47c0.19-0.25,0.75-0.49,0.31-1.18-0.44-0.7-0.97-1.06-1.22-1.19s-2-0.72-2-0.72zm1.81,6.47c-0.19,0.31-1.37,1.18-1.43,1.44-0.07,0.25-0.32,0.74-0.38,1.25-0.06,0.5-0.31,1.77-0.31,2.09s-0.53,1.59-0.78,2.16c-0.26,0.56-0.5,1.49-0.44,2.12s-0.07,1.09,0.19,1.66c0.25,0.57,0.24,1.18,0.56,1.37s-0.04,1.29,1.09,0.6c1.14-0.7,1.63-1.34,1.82-1.79,0.19-0.44,0.53-2.09,0.72-2.34,0.18-0.25,0.56-1.43,0.68-1.81,0.13-0.38,0.63-1.9,0.63-2.22s0.06-1.59-0.25-2.22c-0.32-0.63-1.19-1.31-1.19-1.31l-0.91-1zm-4.9,15.4c-0.26,0.07-0.97,0.19-1.28,0.44-0.32,0.26-0.63,0.56-0.69,0.75s-0.5,0.94-0.5,1.19,0.06,1.15,0,1.41c-0.06,0.25,0,0.56-0.56,0.81-0.57,0.25-1.22,0.43-1.6,0.56s-0.81,0.44-1.06,0.69-0.94,0.72-0.94,0.72-0.53,0.18-0.53,0.5c0,0.31,0.41,0.99,0.53,1.25,0.13,0.25,0.75,1.22,0.75,1.22l-0.18,0.75s-1.04,0.74-1.1,1.06c-0.06,0.31-0.12,1.59-0.12,1.97s0.06,1.74,0.06,2c0,0.25,0.19,1.84,0.19,2.09s0.15,1.34,0.28,1.97c0.12,0.63,0.12,1.06,0.43,1.44,0.32,0.38,0.56,1.03,0.88,1.22s0.5,0.68,0.88,0.62c0.37-0.06,1.71-1.03,1.71-1.03s0.63-0.62,0.75-1.06c0.13-0.44,0.44-2.16,0.44-2.16s0.19-1.37,0.13-1.69c-0.07-0.31-0.69-0.65-0.75-1.22-0.07-0.56-0.07-0.8,0-1.68,0.06-0.89,0.87-2.09,1.06-2.35,0.19-0.25,0.84-1.18,0.97-1.93,0.12-0.76-0.07-1.84,0.19-2.16,0.25-0.32,0.8-0.75,1.06-1.06,0.25-0.32,1.06-1.65,1.18-2.03,0.13-0.38,0.13-1.4,0.13-1.91s-0.31-1.37-0.56-1.56c-0.26-0.19-1.75-0.82-1.75-0.82zm-8.35,23.69c-0.31-0.01-0.62,0-0.75,0.03-0.25,0.07-0.56,0-0.81,0.32-0.25,0.31-0.78,0.71-1.22,0.84s-0.87,0-0.93,0.31c-0.07,0.32-0.26,0.87-0.26,1.13,0,0.25,0.06,0.74,0.32,1,0.25,0.25,0.62,0.21,0.75,0.78,0.12,0.57,0.19,1.18,0.12,1.44-0.06,0.25-0.31,1.12-0.37,1.43-0.07,0.32-0.19,0.4-0.38,1.03-0.19,0.64-0.31,1.38-0.31,1.76v1.15c0,0.38-0.06,1.19,0.13,1.44,0.18,0.25,0.62,0.56,0.87,0.81s1.47,0.47,1.72,0.47,0.5-0.28,0.75-0.66,0.56-0.99,0.56-1.56-0.12-2.96-0.06-3.28,1.12-0.84,1.19-1.41c0.06-0.56,0.03-1.74,0.09-2,0.06-0.25,0.31-1.15,0.31-1.15s0.75-0.44,0.88-0.81c0.12-0.38,0.25-1.13,0.25-1.5,0-0.38-0.19-1.54-0.19-1.54h-1.84c-0.19,0-0.5-0.02-0.82-0.03zm7.85,1.88c-0.57,1.01-0.72,0.99-0.78,1.75-0.07,0.76-0.88,1.53-0.88,1.53s-0.31,0.31-0.44,0.62c-0.12,0.32-0.69,0.81-0.06,1s1.72,0.19,1.97,0.07c0.25-0.13,0.75-0.69,1-0.82,0.25-0.12,0.44-0.49,0.44-1.37,0-0.89-0.19-1.9-0.31-2.16-0.13-0.25-0.94-0.62-0.94-0.62z\",\"name\":\"Sakhalin Oblast\"},\"ka\":{\"path\":\"M888.56,146.75l-1.65,0.84c-0.26,0.13-1.25,0.88-1.25,0.88l-0.13,1,0.13,2.78,0.25,1.16-0.88,2.43-1.72,4.69-0.93,1.56-0.44,1.41-0.06,1.81s-0.22,1.03-0.47,1.22c-0.26,0.19-0.82,0.13-0.82,0.13h-1.81-2.59l-1.6-0.19-1.68-0.31s-0.53,0.25-0.85,0.25c-0.31,0-0.68,0.56-1,0.75-0.31,0.19-1.37,0.74-1.56,1-0.19,0.25-1.28,0.78-1.59,0.9-0.32,0.13-1.38,1-1.63,1.19s-0.78,0.56-1.22,0.63c-0.44,0.06-0.94-0.32-0.94-0.32s-0.62-0.99-0.74-1.25c-0.13-0.25-0.97-1.72-0.97-1.72s-0.07-1.31-0.13-1.62c-0.06-0.32-0.06-1.47-0.12-1.72-0.07-0.25-0.13-1.06-0.13-1.06s0.25-1.22,0.31-1.66c0.07-0.44,0.38-0.75,0.38-0.75s0-0.56-0.19-0.87c-0.19-0.32-0.81,0.06-0.81,0.06l-1.75,0.44-1.97,0.81-1.66,0.5-1.18,0.19-2.04-0.25s-1.62-0.38-1.87-0.57-1.03-0.12-1.03-0.12l-0.63,0.56-0.87,1.16-0.63,0.81-0.84,0.88s-1.31,0.74-1.56,0.87c-0.26,0.13-0.94,0.59-0.94,0.59l-1.22,1.32-1.44,2.28s-2.27,2.28-2.59,2.47-1.18,0.87-1.44,1.12c-0.25,0.25-1.34,0.38-1.72,0.44s-0.74,0.62-1,0.94c-0.25,0.31-1.15,1.28-1.15,1.28l-0.81,0.56s-0.75-0.31-1.13-0.31-0.44,0.31-0.44,0.31l-0.97,1.91-1,2.18s-0.5,1.59-0.5,1.91,0.63,0.44,0.88,0.63c0.25,0.18,1.65,0.8,2.03,1.06,0.38,0.25,1,0.84,1.31,1.15,0.32,0.32,1.41,1.32,1.41,1.32s-0.13,0.43-0.06,0.68c0.06,0.26,0.37,1.15,0.68,1.66,0.32,0.51,0.94,0.81,0.94,0.81s4.09,1.16,4.35,1.28c0.25,0.13,1.09,1.32,1.09,1.32l0.37,0.68s1.13,0.85,1.44,1.04c0.32,0.18,1.22,0.31,1.22,0.31l0.62,0.62,0.44,1.19s-0.31,1.59-0.37,1.97c-0.07,0.38-0.07,0.99,0,1.37,0.06,0.38,1.12-0.06,1.12-0.06s1.4-0.31,1.97-0.25,1.56,0.25,1.56,0.25,1.22,0.4,1.35,0.66c0.12,0.25,0.75,1.18,0.75,1.18l1.15,1.5,1.25,1.72,1.85,1.32,2,1.65,1,1.31s0.84-0.99,1.03-1.31c0.19-0.31,0-0.74,0-1.19,0-0.44-0.37-0.71-0.75-0.96-0.38-0.26-0.97-1.19-1.35-1.63-0.37-0.44-0.56-0.84-0.56-0.84s-0.81-1.06-1.06-1.31c-0.25-0.26-1.09-0.94-1.34-1.19-0.26-0.26-1.25-1.34-1.69-1.97s0-0.75,0-1.06c0-0.32,0.87-1.04,0.87-1.04s0.94-1.3,1.19-1.62,0.44-1.21,0.5-1.59,0.47-1.31,0.85-1.5c0.37-0.19,1.18-0.38,1.68-0.44,0.51-0.06,1.84,0.5,1.97,0.81,0.13,0.32-0.62,0.69-0.75,0.94-0.12,0.25,0,1.59-0.06,2.16-0.06,0.56,0.12,1.71,0.12,2.28,0,0.56,0.75,1.37,0.75,1.37s1.13,1.4,1.44,1.72c0.32,0.32,1.28,0.93,1.59,1.19,0.32,0.25,1.57,1.65,1.57,1.65l3.34,2.32,0.97,0.59s0.75,1.25,0.81,1.69c0.07,0.44,0.44,0.93,0.44,0.93s1.03,0.22,1.34,0.47c0.32,0.26,0.63,1.31,0.63,1.69s-0.12,1.03-0.44,1.47c-0.31,0.44-1.21,0.93-1.53,1.25s-0.69,0.75-0.69,0.75-0.06,5.68-0.06,6.25,0.75,1.78,1,2.16,1.21,2.14,1.72,2.9c0.5,0.76,0.69,1.12,0.69,1.44s0.25,1.66,0.25,1.66,0.56,10.46,0.62,11.09,0.59,1.03,0.78,1.41,0.75,0.93,1,1.18c0.26,0.26,0.75,0.84,0.88,1.16,0.12,0.32,0.97,1.62,0.97,1.62s0.74,2.78,0.87,3.54c0.13,0.75,0.13,1.72,0.13,1.72s1.31,3.96,1.31,4.4v1.47s-0.81,1.75-1.13,2.13c-0.31,0.37-0.06,1.77-0.06,2.09,0,0.31-1.34,2.46-1.84,2.84-0.51,0.38-1.31,1-1.44,1.38s0.25,1.03,0.25,1.03l1.81,0.87,2.28,0.94s1.09,2.15,1.47,2.66c0.38,0.5,0.56,1.59,0.56,1.9,0,0.32,0.32,3.47,0.44,4.16,0.13,0.69,0.38,1.65,0.56,2.09,0.19,0.45,1.79,1.5,1.79,1.5s2.21,3.94,2.34,4.25c0.13,0.32,0.81,1.69,1.06,2,0.08,0.1,0.29,0.25,0.53,0.41,0.62,0.78,3.07,1.94,3.07,1.94l0.93,0.62s4.63,4.25,4.69,4.5c0.06,0.26,2.78,2.32,2.78,2.32s2.34,0.84,2.6,1.03c0.25,0.19,1.68,0.75,1.68,0.75l14.91,10.22,2.03,1.21,3.03,0.94s1.19,1.59,1.44,1.72,3.15,1.19,3.59,1.19c0.45,0,1.47,1,1.47,1s2.59,2.78,2.97,3.03,2.56,1.91,2.56,1.91,2.09,1.18,2.47,1.18,2.85-0.5,2.85-0.5l0.68-0.62v-2.03s-0.06-1.69-0.06-1.88,0-1.21-0.25-1.53-0.81-0.88-0.81-0.88,0.18-1.52,0.44-1.96c0.25-0.45,0.43-0.69,0.43-1.07s-0.31-1.15-0.56-1.4c-0.25-0.26-0.5-1.19-0.5-1.19s-0.06-2.34-0.31-2.66c-0.25-0.31-1.09-0.99-1.28-1.62s-0.5-1.03-0.63-1.41c-0.12-0.38-1.37-1.62-1.62-2.06-0.26-0.44-1.53-1.59-1.72-1.84-0.19-0.26-0.31-1.28-0.5-2.1s-1.02-0.75-1.78-0.75-1.12-0.06-1.38-0.25c-0.25-0.19,0.5-0.43,0.75-0.56,0.26-0.13,1.09-0.9,1.28-1.22,0.19-0.31,0.5-1.37,0.5-1.37l0.69-4.22,1.91-1.6c0.38-0.31,0.25-0.93-0.19-1.31s-1.09-0.25-1.41-0.31c-0.31-0.06-0.8-0.84-1.31-1.16-0.5-0.31-0.84-0.81-1.28-1s-1.24-0.31-2.06-0.56-1.4-1.03-1.91-1.47c-0.5-0.44-0.44-1-0.5-1.25s-0.06-1.96-0.06-2.84v-1.22s-0.97-2.78-0.97-3.1c0-0.31,0.03-1.05,0.16-1.43,0.12-0.38,0.49-0.69,0.75-0.94,0.25-0.25,1.43-0.78,1.43-0.78l1.47-0.88s0.38-1.71,0.38-2.59-0.5-2.25-0.63-2.56c-0.12-0.32-1.34-0.72-1.34-0.72s-1.5-1.19-1.94-1.19-2.46-0.56-2.9-0.69c-0.45-0.12-1.6-0.78-1.85-0.9-0.25-0.13-1.71-1.25-2.09-1.56-0.38-0.32-1.25-1.1-1.5-1.41-0.26-0.32-0.75-1.44-0.88-1.75-0.12-0.32-0.84-1.66-0.84-1.66s0-0.55-0.13-1.12c-0.12-0.57-0.18-1.65-0.18-2.41s1.02-0.62,1.28-0.62c0.25,0,1.68-0.25,2-0.32,0.31-0.06,1.03-0.74,1.22-1,0.19-0.25,0.37-1.77,0.31-2.09s-0.65-0.81-1.22-1-0.94-0.78-1.12-0.84c-0.19-0.07-2.16-0.88-2.16-0.88s-2.06-0.69-2.5-0.75-0.59,0.44-0.84,0.63c-0.26,0.19-0.5,0.37-1.32,0.37s-1.22-0.44-1.22-0.44l-0.87-1.18s-1.18,0.06-1.81,0.06c-0.64,0-0.91-0.59-1.16-0.91-0.25-0.31-1.06-0.56-1.06-0.56s-0.47-0.19-0.69-0.28c0-0.06,0.19-3.44,0.13-3.69-0.07-0.25-0.66-1.21-0.91-1.47-0.25-0.25-1.37-0.44-1.94-0.44s-1.4,0.6-1.84,0.85-1.06,0.75-1.31,0.94c-0.26,0.19-0.13,1.12-0.13,1.68,0,0.57-0.34,1.03-0.72,1.35-0.38,0.31-0.68,0.25-1.31,0.25s-1.12-0.19-1.63-0.31c-0.5-0.13-0.77-0.56-1.03-0.82-0.25-0.25-1.06-0.96-1.37-1.47-0.32-0.5-0.19-1.05-0.25-1.62-0.07-0.57-0.84-1.65-1.1-2.16-0.25-0.5-1.24-2.34-1.37-2.59s-0.56-1.28-1-1.91-0.9-1.99-1.28-2.62-0.74-1.09-1.5-2.1-0.78-0.56-1.35-0.68c-0.56-0.13-0.99-0.78-1.5-1.35-0.5-0.57-0.84-0.93-1.15-1.75-0.32-0.82-0.37-0.83-0.94-2.15-0.57-1.33-0.07-1.09,0.19-1.66,0.25-0.57,1.06-0.62,1.06-0.62l0.47-0.88s-0.38-1.59-0.31-2.09c0.06-0.51,0.36-0.56,1.06-0.75,0.69-0.19,1.56,0.75,1.94,0.75s1.59-0.5,1.9-0.82c0.32-0.31,0.32-1.08,0.32-1.71,0-0.64-0.62-1-1.13-1.13s-0.94-0.56-0.94-1.06c0-0.51,0.25-1.21,0.25-1.91,0-0.69,0-0.74-0.06-1.25-0.06-0.5-0.12-0.53-0.25-0.91-0.13-0.37,0.06-1.18,0.19-1.68,0.12-0.51,0.56-0.44,0.94-0.38,0.37,0.07,1.24,0.69,1.62,0.94s0.65,0.62,0.84,1,1,1.09,1.63,1.16c0.63,0.06,1.15-0.38,1.15-0.38s-0.09-0.52-0.34-1.09-0.81-1.44-1-1.81c-0.19-0.38-0.5-1.22-0.75-1.6s-0.44-0.5-0.44-0.75,0.69-2.09,0.69-2.41v-3.78c0-0.82,0.19-1.4,0.38-1.72,0.19-0.31,0.87-1.24,1.25-2.06s0.84-1.15,1.09-1.9c0.25-0.76,0.87-1.4,1.44-2.16s0.77-1,1.15-1.12c0.38-0.13,2.91,0.06,3.29,0.06,0.37,0,1.96-0.44,2.65-0.56,0.7-0.13,2.71-0.31,3.41-0.57,0.69-0.25,0.25-0.59,0.18-0.84-0.06-0.25-1.27-0.94-1.65-1.06-0.38-0.13-1.12-0.69-1.38-0.94-0.25-0.25-0.5-1.16-0.5-1.16s-0.59-2.96-0.65-3.28c-0.07-0.31-0.75-1.56-0.75-1.56s-0.13-5.18-0.13-5.63c0-0.44-0.68-2.02-1.37-2.34-0.7-0.32-0.91-0.99-0.91-1.5s0-0.96-0.12-1.59c-0.13-0.64-0.75-1.37-1-1.88-0.26-0.5,0.12-0.78,0.12-1.22s-0.12-1.18-0.5-1.5c-0.38-0.31-0.68-0.49-0.94-0.75-0.25-0.25-0.46-0.9-0.46-1.53s0.28-1,0.34-1.31c0.06-0.32,0.06-1.09-0.06-1.53-0.13-0.44-0.35-1.06-0.41-1.31-0.06-0.26-0.37-1.22-0.37-1.22s-0.5-0.44-0.69-0.44-0.94-0.19-0.94-0.19l-1.78-0.31s-1.69-0.44-1.81-0.69c-0.13-0.25-1.04-0.69-1.04-0.69l-1.56-0.59zm7.25,70.22c-0.88,0.44-1.12,0.43-1.06,1s0.37,1.09,0.63,1.47c0.25,0.38,0.44,0.93,0,1.44-0.45,0.5-1.45,0.52-1.19,1.15,0.25,0.63,0.49,1.06,0.75,1.31,0.25,0.26,0.81,0.9,0.94,1.41,0.12,0.51-0.01,1.06,0.31,1.56,0.31,0.51,0.31,0.69,0.69,0.69,0.37,0,0.59,0.32,0.65-0.5s-0.06-0.95,0-2.84c0.06-1.9,0-2.84,0.06-3.41,0.07-0.57,0.26-1.37,0-1.75-0.25-0.38-1.28-0.9-1.4-1.22-0.13-0.31-0.38-0.31-0.38-0.31zm58.91,12.47c-1.07,0.71-1.16,0.62-1.16,1.15,0,0.54-0.18,0.9,0.53,0.72,0.72-0.18,0.91-0.18,1-0.62,0.09-0.45-0.37-1.25-0.37-1.25zm-10.97,4.53c-0.63,0.45-1.08,0.2-0.81,1.09,0.27,0.9,0.44,1.16,1.15,1.25,0.72,0.09,0.73,0.1,2.07,0.1s2.31,0.06,3.03,0.06c0.71,0,0.99,0.36,1.43,0,0.45-0.36,0.63-0.07,0.54-0.78-0.09-0.72-1.24-0.9-2.22-0.81-0.98,0.08-1.52,0.34-3.13-0.19-1.6-0.54-2.06-0.72-2.06-0.72z\",\"name\":\"Kamchatka Krai\"},\"in\":{\"path\":\"m33.393,395.68,0.08929,5.2679,17.946-8.5714-1.3393-1.25-2.9464-1.25-1.5179-1.9643-2.4107,2.4107-4.1071-2.6786-1.875,1.0714,0.08929,5.8929-1.5179,1.0714z\",\"name\":\"Republic of Ingushetia\"},\"cc\":{\"path\":\"m33.482,401.04,1.0714,2.5,3.125,1.6964,3.4821,0.44642,2.1429-1.9643,2.1429,1.7857,2.5-1.5178-0.08929-1.6072,1.875-2.1428,2.8571,0.44642,3.8393-2.8571-0.625-1.9643-4.4643-0.53572,0.44643-2.7679z\",\"name\":\"Chechen Republic\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.serbia.js",
    "content": "/*\n * Map of Serbia\n * @author: Đorđe Jocić <http://www.djordjejocic.com/>\n * @source: https://upload.wikimedia.org/wikipedia/commons/2/29/Serbia_location_map_%28with_Kosovo%29.svg\n */\njQuery.fn.vectorMap(\"addMap\", \"serbia\", { \"width\" : 1041, \"height\" : 726, paths : { \"1\" : { path : \"m 81.383968,195.26246 c -1.823902,-2.05385 -3.527788,-2.48647 -7.350116,-1.86619 -3.243695,0.52638 -4.97581,0.25634 -4.97581,-0.77574 0,-0.87077 -0.867873,-1.58321 -1.928607,-1.58321 -1.060735,0 -2.676438,-0.90108 -3.590451,-2.00239 -1.329163,-1.60155 -1.083213,-2.31208 1.228596,-3.54932 1.939672,-1.03808 2.89044,-2.93576 2.89044,-5.76916 0,-3.50736 -0.835116,-4.57118 -4.932351,-6.28312 -2.712792,-1.13347 -6.177847,-3.30636 -7.700122,-4.82864 -3.493756,-3.49375 -5.095129,-3.48667 -7.292746,0.0323 -2.274158,3.6415 -6.675203,3.68737 -6.675203,0.0696 0,-1.50176 -0.947575,-3.26076 -2.105722,-3.90889 -1.767308,-0.98904 -1.823558,-1.78596 -0.350006,-4.95873 0.965644,-2.07916 2.616708,-3.78521 3.66903,-3.79122 1.222386,-0.007 1.648896,-1.02207 1.181087,-2.81097 -0.481493,-1.84123 -0.04295,-2.80004 1.280675,-2.80004 2.859541,0 3.819238,-3.46074 1.935677,-6.98021 -1.034084,-1.9322 -1.129416,-3.58959 -0.268009,-4.65947 0.735334,-0.91329 1.386069,-4.65308 1.446076,-8.31064 0.102944,-6.27442 -0.105505,-6.66264 -3.689856,-6.87193 -2.08943,-0.122 -4.954049,-0.12012 -6.365821,0.004 -1.411771,0.12431 -3.616806,-0.38672 -4.900077,-1.13562 -2.159425,-1.26022 -2.154392,-1.36482 0.06756,-1.40422 3.240997,-0.0575 5.562276,-4.78812 5.033215,-10.25742 -0.360048,-3.72209 -1.089069,-4.56078 -4.283945,-4.92839 -4.498279,-0.51758 -5.072381,-2.41084 -1.050017,-3.46271 3.148018,-0.82323 3.712813,-5.066916 1.050017,-7.88948 -1.400022,-1.484023 -1.400022,-1.983365 0,-2.496705 0.962515,-0.352924 1.750028,-1.743748 1.750028,-3.090722 0,-2.173398 0.901753,-2.326671 8.011908,-1.361803 4.406551,0.597982 8.344113,0.751553 8.750139,0.341268 0.406028,-0.410283 0.738231,-2.422513 0.738231,-4.471622 0,-3.387082 0.545066,-3.764986 5.997993,-4.158496 l 5.997994,-0.432843 -0.90488,-4.823417 c -0.632567,-3.371879 -0.207157,-5.888274 1.413629,-8.361907 2.668451,-4.072569 4.995542,-3.396732 4.995542,1.450812 0,4.644893 1.63622,5.266505 13.499039,5.128383 12.912352,-0.150342 16.123706,1.035628 20.062856,7.409306 2.54071,4.110946 2.79388,5.429681 1.37144,7.143614 -1.34036,1.61504 -1.37247,2.918411 -0.13861,5.626433 0.88322,1.938458 1.60585,5.93559 1.60585,8.882509 0,4.49765 0.99322,6.3206 6.18518,11.35226 3.65722,3.54431 6.52483,7.76481 7.01621,10.32633 0.56123,2.92564 2.46374,5.38985 5.85995,7.59005 l 5.02892,3.25793 3.00511,-2.80244 c 2.93321,-2.7354 3.0812,-2.7404 6.18525,-0.20911 1.86039,1.5171 2.58665,2.96015 1.75003,3.4772 -2.40765,1.48802 -1.58952,6.07942 1.2435,6.97859 5.85103,1.85704 6.23198,4.47541 1.50665,10.35546 -3.67212,4.56945 -4.28872,6.30405 -3.50667,9.86471 0.81733,3.72129 0.55434,4.32034 -1.89669,4.32034 -1.87586,0 -3.63801,1.66988 -5.17084,4.90008 -2.50374,5.27624 -3.48321,5.70666 -7.76796,3.41353 -3.94025,-2.10876 -11.0385,1.17311 -11.0385,5.10364 0,1.80138 -1.40628,3.57431 -3.64373,4.59376 -3.17851,1.44823 -3.57738,2.35595 -3.12405,7.1095 0.49976,5.2405 0.34434,5.46976 -4.0564,5.98352 -2.51684,0.29383 -4.576068,0.0732 -4.576068,-0.49032 0,-1.79731 -5.906301,-2.98306 -6.89449,-1.38414 -1.810947,2.93017 -9.043306,3.05257 -11.580074,0.19597 z\", name : \"Западна Бачка\" }, \"2\" : { path : \"m 156.11128,153.54035 c -4.69128,-2.21669 -6.82217,-3.90406 -5.75956,-4.56079 2.8389,-1.75454 0.30363,-8.1903 -3.61377,-9.1735 -3.62269,-0.90924 -4.47918,-2.58604 -2.07871,-4.06962 2.64652,-1.63563 1.39262,-4.6298 -3.14097,-7.50026 -4.07353,-2.57918 -4.86045,-2.66585 -7.64405,-0.84196 -2.46648,1.61609 -3.83257,1.7008 -6.65918,0.41291 -3.23275,-1.47294 -4.18524,-3.40427 -3.72306,-7.54912 0.0906,-0.81301 -2.98474,-4.49665 -6.83423,-8.18586 -5.8145,-5.57241 -7.01572,-7.57324 -7.09746,-11.822 -0.0541,-2.812893 -0.60627,-6.37437 -1.227,-7.914395 -0.62278,-1.545102 -0.54132,-3.536818 0.18174,-4.443946 1.69083,-2.12123 -0.0728,-11.648795 -2.1622,-11.680503 -0.87682,-0.0133 -3.02859,-2.060838 -4.7817,-4.550072 l -3.187487,-4.525879 3.755687,-3.026621 c 2.7491,-2.215437 4.96352,-2.830617 8.26226,-2.295304 3.76926,0.611665 5.45148,-0.122348 10.28197,-4.486407 3.17647,-2.869746 5.77539,-5.972741 5.77539,-6.895543 0,-0.922802 2.20504,-2.729331 4.90008,-4.014506 5.09017,-2.427332 6.09392,-4.828206 3.22005,-7.70207 -1.30668,-1.306688 -1.19935,-1.680027 0.48303,-1.680027 1.18968,0 3.2444,-1.194881 4.56605,-2.65529 1.83731,-2.030202 3.65837,-2.486911 7.73561,-1.940039 3.16448,0.424447 5.72459,0.08099 6.29674,-0.844765 1.85595,-3.003006 8.78899,-1.666427 13.32231,2.56833 2.43068,2.270591 5.80486,4.552732 7.49818,5.071425 1.69332,0.518693 3.86312,1.570505 4.82178,2.337362 1.20062,0.9604 2.87058,0.655482 5.36642,-0.979855 3.43037,-2.247666 3.72669,-2.237843 5.56257,0.184397 2.49419,3.290814 2.47993,3.940839 -0.13405,6.110247 -1.49939,1.244381 -1.88827,3.042102 -1.26848,5.863984 0.91492,4.165571 -1.54395,12.284649 -3.72041,12.284649 -2.71457,0 -5.57227,10.525781 -4.93475,18.176116 0.53917,6.470088 0.1633,8.241909 -2.31487,10.912126 -2.91734,3.143431 -2.92223,3.249327 -0.35043,7.603026 1.43446,2.42835 3.01702,6.34891 3.5168,8.71235 0.56274,2.6612 1.68074,4.16983 2.93662,3.9627 1.11537,-0.18396 2.86992,1.56769 3.899,3.89255 2.42167,5.47092 0.63085,7.72769 -6.93775,8.74285 -3.13223,0.42012 -6.08056,1.14945 -6.55183,1.62073 -0.83951,0.8395 -1.8573,7.50231 -1.8791,12.30119 -0.006,1.33236 -0.60093,2.78707 -1.32194,3.23268 -0.72101,0.44561 -1.31094,2.87693 -1.31094,5.40293 0,7.12551 -4.36667,8.37875 -13.74836,3.94578 z\", name : \"Северна Бачка\" }, \"3\" : { path : \"m 270.27719,158.19471 c -2.97345,-2.17424 -3.09633,-3.55797 -0.31596,-3.55797 1.15502,0 2.10004,-1.13401 2.10004,-2.52004 0,-3.0977 2.62067,-5.88009 5.53833,-5.88009 3.24993,0 6.41793,-7.90221 4.22655,-10.54266 -0.93918,-1.13165 -2.45879,-2.05754 -3.37691,-2.05754 -1.97313,0 -6.38797,-8.71674 -6.38797,-12.61253 0,-2.57469 -0.89057,-2.68455 -16.95907,-2.09217 -9.79779,0.36121 -17.77879,1.30552 -18.9003,2.23629 -2.23264,1.85293 -2.62785,6.86832 -0.54121,6.86832 2.02061,0 1.7258,3.8535 -0.35001,4.57501 -0.96251,0.33456 -3.53089,-0.87296 -5.7075,-2.68337 -2.86016,-2.37896 -5.70009,-3.29166 -10.2422,-3.29166 -3.4566,0 -7.47818,-0.63872 -8.93685,-1.41937 -1.45867,-0.78066 -6.29512,-1.67679 -10.74768,-1.99141 -5.45991,-0.3858 -8.11784,-1.17715 -8.16402,-2.43069 -0.12405,-3.36757 -3.86597,-9.55877 -5.77726,-9.55877 -1.03142,0 -1.8753,-0.92979 -1.8753,-2.0662 0,-1.13641 -1.25767,-4.12895 -2.79482,-6.6501 -3.49323,-5.729439 -3.48458,-6.279659 0.11679,-7.422688 2.6779,-0.849932 2.84252,-1.6128 1.97009,-9.129728 -1.059,-9.124386 1.08538,-18.131978 4.31657,-18.131978 1.0953,0 1.99145,-1.222838 1.99145,-2.717419 0,-1.494581 0.70201,-3.151284 1.56002,-3.681563 0.92813,-0.573613 1.26861,-3.136781 0.84058,-6.327959 -0.48611,-3.624225 -0.0839,-5.891231 1.24003,-6.99003 2.57874,-2.140167 2.493,-6.097804 -0.18017,-8.316342 -1.85407,-1.538741 -1.43365,-2.209778 3.15005,-5.027809 3.26173,-2.005296 7.53349,-3.268819 11.14241,-3.295762 5.01948,-0.03747 5.91641,0.404772 6.3001,3.106356 0.58335,4.107479 7.84773,5.268715 10.47581,1.674596 1.64065,-2.243724 2.01367,-2.253645 5.24046,-0.139372 2.17462,1.424865 4.95563,1.979992 7.43497,1.484123 2.91555,-0.583109 4.65629,-0.02379 6.59575,2.119301 1.44917,1.601314 3.23445,2.91148 3.96729,2.91148 0.73284,0 4.32757,3.190214 7.98829,7.089363 6.0492,6.443207 9.84562,14.136688 9.84562,19.952246 0,3.626909 8.76498,9.358969 14.31095,9.358969 5.58759,0 7.02349,1.322535 9.37858,8.638149 2.22708,6.917964 4.42858,8.580365 9.04069,6.826841 3.31819,-1.261571 3.67035,-1.078269 3.67035,1.910419 0,2.394165 1.33498,3.939367 4.84061,5.602907 6.68155,3.1706 7.69529,5.23019 7.77827,15.80292 0.0133,1.69436 0.6513,3.46825 1.41779,3.94196 0.86535,0.53482 0.59189,2.00591 -0.72144,3.88096 -1.16328,1.66081 -2.11505,4.81777 -2.11505,7.01547 0,3.70444 -0.35301,3.96541 -4.8411,3.57873 -3.81304,-0.32851 -5.92799,0.54518 -9.95927,4.11421 -5.18282,4.58852 -5.33867,5.3632 -2.73696,13.60475 0.81614,2.58534 0.36448,2.77446 -5.51008,2.30724 -3.62912,-0.28864 -8.67646,0.40228 -11.66021,1.59614 -4.27772,1.7116 -5.7127,1.77487 -7.6771,0.33847 z\", name : \"Северни Банат\" }, \"4\" : { path : \"m 140.46136,260.78201 c -2.69384,-0.77215 -5.24516,-1.96581 -5.6696,-2.65256 -0.42444,-0.68676 -3.04515,-1.4157 -5.82381,-1.61987 -4.41211,-0.3242 -5.14148,-0.90328 -5.7577,-4.57129 -1.84156,-10.96187 -2.41936,-11.4224 -15.34277,-12.22866 -9.648251,-0.60193 -13.97112,-1.70023 -23.562717,-5.98649 -13.179998,-5.88983 -16.646743,-8.38936 -16.646743,-12.00231 0,-3.85303 -3.942665,-6.88313 -8.956102,-6.88313 -2.952184,0 -5.627636,-1.14067 -7.600121,-3.24028 -3.947771,-4.20221 -3.8567,-4.64732 1.155979,-5.64986 3.249004,-0.6498 4.200066,-1.59136 4.200066,-4.15808 0,-1.82494 -1.26002,-4.45838 -2.800044,-5.85208 -1.753236,-1.58666 -2.739329,-4.15395 -2.63764,-6.86709 0.08932,-2.3832 0.423662,-3.37004 0.742978,-2.19299 0.319315,1.17706 1.905691,2.96766 3.52528,3.97911 2.440067,1.52384 3.170743,1.51698 4.263685,-0.0401 1.029267,-1.46634 1.474949,-1.49468 2.029072,-0.12904 0.390553,0.96251 1.622382,1.75003 2.737399,1.75003 1.115017,0 2.405715,0.98611 2.868215,2.19137 0.545199,1.42077 2.375961,2.10937 5.206143,1.95819 6.826192,-0.36465 7.86529,-0.0915 7.86529,2.06791 0,1.10958 0.51053,2.33293 1.13451,2.71857 1.779056,1.09952 12.865713,-2.10888 12.865713,-3.72324 0,-0.79569 1.102517,-0.48058 2.450039,0.70025 1.813891,1.58951 4.085848,1.91301 8.750138,1.24591 l 6.3001,-0.90105 -0.43104,-5.80894 c -0.35928,-4.84183 0.0486,-5.96117 2.45004,-6.72336 1.79444,-0.56953 2.88108,-2.11417 2.88108,-4.0954 0,-4.47947 5.64575,-6.94272 9.58642,-4.18258 3.70723,2.59665 7.93769,0.30605 9.91606,-5.3691 0.85207,-2.44424 2.35863,-3.87891 4.07329,-3.87891 2.75757,0 5.32711,-5.80732 3.72007,-8.40757 -0.92285,-1.4932 2.21365,-6.99268 3.9881,-6.99268 0.66547,0 4.33143,1.56784 8.14658,3.48408 6.46376,3.24656 7.26501,3.34687 11.7535,1.47146 4.18531,-1.74873 4.81687,-2.65362 4.81687,-6.90151 0,-2.68889 0.62037,-5.2723 1.3786,-5.74091 0.75822,-0.46861 1.36551,-2.23832 1.34952,-3.93268 -0.0763,-8.07943 0.77917,-10.0165 4.972,-11.25878 2.31004,-0.68443 6.33986,-2.15071 8.95517,-3.25839 4.98674,-2.11206 19.02579,-1.36048 20.54642,1.09996 0.42027,0.68002 4.09437,1.23639 8.16465,1.23639 5.62249,0 8.00932,0.67273 9.93452,2.80005 2.11995,2.34252 2.184,2.80004 0.39199,2.80004 -2.73223,0 -4.49088,8.0917 -2.32569,10.7006 1.6384,1.97416 0.89103,2.40472 -3.39987,1.95868 -3.35623,-0.34889 -6.56662,2.44389 -6.56662,5.71244 0,1.75988 1.04107,2.66515 3.15005,2.73914 1.73252,0.0608 2.36253,0.4283 1.40002,0.81669 -4.24365,1.71234 -1.20165,7.88101 4.55007,9.22678 2.396,0.56061 2.17988,0.89246 -1.49766,2.29967 -4.19998,1.60713 -4.3018,1.86623 -4.47852,11.3957 -0.0994,5.36314 0.40981,9.75117 1.13166,9.75117 2.13145,0 6.94455,-4.66296 6.94455,-6.72791 0,-2.8577 2.84927,-1.35077 6.571,3.47528 l 3.31175,4.29442 -4.94137,2.34484 c -6.47145,3.07089 -6.65089,7.20992 -0.38756,8.9393 5.04576,1.39321 9.3786,1.34669 11.76189,-0.12626 0.89628,-0.55394 1.86759,0.18431 2.27071,1.72588 0.4055,1.55066 -0.1211,3.01068 -1.24085,3.44037 -2.19367,0.84179 -2.68208,5.03444 -0.58647,5.03444 0.78253,0 1.02663,2.37514 0.57556,5.60009 -0.68019,4.86287 -0.42902,5.60008 1.90787,5.60008 3.80086,0 4.64561,1.2975 2.78472,4.27725 -1.36024,2.17811 -0.82394,3.33715 3.47699,7.51416 6.20877,6.02988 7.67468,9.98699 4.87485,13.15932 -1.14059,1.29234 -2.51523,5.04174 -3.05474,8.33201 l -0.98092,5.9823 -4.56903,-4.01166 c -3.58532,-3.14795 -6.46798,-4.21014 -13.38903,-4.93353 -7.77672,-0.81283 -9.04723,-0.59746 -10.74103,1.82078 -2.28363,3.26034 -6.04447,2.30599 -6.04447,-1.53386 0,-1.48181 -0.89412,-3.03731 -1.98692,-3.45666 -2.79793,-1.07366 -9.21326,3.4643 -9.21326,6.5171 0,1.39958 -1.10251,2.8577 -2.45004,3.24028 -4.38528,1.24504 -23.93233,0.0169 -25.91457,-1.6282 -1.47416,-1.22345 -3.64723,-0.94946 -9.19815,1.15972 -7.91108,3.00597 -21.2671,3.50404 -29.63612,1.10517 z\", name : \"Јужна Бачка\" }, \"5\" : { path : \"m 262.43859,273.50349 c -2.09283,-1.94975 -2.80938,-3.78919 -2.21078,-5.6752 0.53245,-1.6776 -0.006,-3.77617 -1.35117,-5.26212 -2.56027,-2.82907 -1.7244,-10.2308 1.45316,-12.86794 1.06222,-0.88157 1.92896,-2.62822 1.92608,-3.88146 -0.007,-3.09361 -5.17218,-11.53 -8.87602,-14.49768 l -3.01894,-2.4189 3.13306,-0.0311 c 2.65178,-0.0263 3.07808,-0.70905 2.77517,-4.44431 -0.2178,-2.68574 -1.44417,-5.01478 -3.13306,-5.9501 -1.52634,-0.84529 -3.03798,-1.69472 -3.35919,-1.88759 -0.32122,-0.19288 -0.66605,-1.46398 -0.76629,-2.82466 -0.10025,-1.36069 -0.66213,-3.25041 -1.24863,-4.19939 -0.60646,-0.98127 -0.37895,-1.72541 0.52752,-1.72541 1.06155,0 1.27368,-1.51967 0.63514,-4.55007 -1.33145,-6.31889 -2.34404,-6.98968 -7.05546,-4.67389 -3.89798,1.91596 -11.80858,1.60113 -11.80858,-0.46997 0,-0.53206 2.52004,-2.07922 5.60009,-3.43814 3.08005,-1.35891 5.60009,-2.95036 5.60009,-3.53654 0,-0.58618 -2.42327,-3.69065 -5.38503,-6.89882 -5.02315,-5.44104 -11.17034,-7.79221 -11.59024,-4.43301 -0.0962,0.77001 -0.25376,1.97753 -0.35001,2.68337 -0.0962,0.70585 -0.58678,1.69513 -1.09006,2.19842 -0.50329,0.50328 -0.81829,-2.27858 -0.70001,-6.18191 0.13206,-4.35817 0.84662,-7.09756 1.85162,-7.0985 0.90011,-8.3e-4 3.57367,-1.10404 5.94124,-2.45156 6.56256,-3.73513 5.24207,-10.8394 -1.35818,-7.30705 -1.61611,0.86491 -3.99166,1.16406 -5.27901,0.66476 -2.10478,-0.81632 -2.05848,-1.11807 0.4594,-2.99441 2.7668,-2.06183 2.76778,-2.11051 0.0824,-4.10008 -1.49469,-1.10741 -3.2644,-2.01347 -3.93269,-2.01347 -0.66828,0 -0.82569,-0.63001 -0.3498,-1.40002 0.4759,-0.77001 2.92812,-1.40002 5.44938,-1.40002 5.94129,0 6.93544,-1.15187 4.37148,-5.06497 -2.41276,-3.68233 -1.46306,-7.51413 1.87911,-7.58181 5.79493,-0.11734 11.5539,-9.8373 6.85033,-11.56194 -1.38397,-0.50745 -1.36924,-1.04434 0.0704,-2.56671 2.13497,-2.25763 31.08008,-2.84608 31.08008,-0.63185 0,3.60909 6.03783,13.20226 8.80263,13.98602 3.04468,0.86309 3.02692,0.93619 -1.04061,4.28194 -3.07048,2.52563 -4.60567,3.01587 -5.95009,1.9001 -1.30441,-1.08256 -2.40015,-1.01559 -3.91196,0.23911 -2.79816,2.32226 -2.65509,5.13766 0.35,6.88797 2.15791,1.25686 2.17738,1.43209 0.16329,1.46959 -1.25771,0.0234 -2.6654,1.46009 -3.1282,3.19262 -1.27052,4.75631 2.65865,7.02414 10.31503,5.95361 5.21039,-0.72853 11.04438,-1.24397 22.90926,-2.02406 1.26365,-0.0831 0.6023,-6.11801 -1.10517,-10.08495 -0.66677,-1.5491 0.30161,-3.61578 2.95204,-6.3001 3.31358,-3.35595 4.89583,-3.92592 9.89442,-3.56426 l 5.9501,0.43051 0,-5.59797 c 0,-3.07887 0.63001,-5.98732 1.40002,-6.46322 0.77001,-0.47589 1.45684,-2.87561 1.52629,-5.33271 l 0.12626,-4.46744 1.29593,4.48114 c 1.69241,5.85216 2.31245,6.12521 10.84573,4.77628 l 7.22443,-1.14202 -0.25091,9.94252 c -0.17006,6.73875 -1.09915,11.46492 -2.88331,14.66712 -3.36316,6.03617 -2.93327,14.8701 0.7245,14.88795 3.00439,0.0147 5.14062,3.03179 5.17002,7.30193 0.0142,2.05633 -1.4052,3.85183 -4.17863,5.28603 -3.23851,1.6747 -4.20007,3.12526 -4.20007,6.33605 0,3.81484 0.40549,4.16412 4.83421,4.16412 7.17987,0 12.19675,2.66772 11.15997,5.93431 -1.02323,3.22393 2.95266,8.06591 6.62317,8.06591 1.42067,0 2.58305,0.95851 2.58305,2.13003 0,1.17151 3.15005,5.3134 7.00011,9.20419 3.85007,3.89079 7.00012,7.3138 7.00012,7.60669 0,0.29289 -2.18837,0.94306 -4.86301,1.44483 -2.67466,0.50177 -7.87023,3.05036 -11.54571,5.66353 -3.67549,2.61317 -7.47223,4.75122 -8.4372,4.75122 -2.12437,0 -2.33817,3.67409 -0.28756,4.94144 1.77099,1.09453 -3.22405,6.13028 -8.99931,9.07265 -2.21777,1.12991 -4.65956,3.43105 -5.42621,5.11366 -1.37648,3.02104 -1.47762,2.9931 -8.09171,-2.23504 -10.17159,-8.04017 -22.3034,-8.94635 -22.37185,-1.67105 -0.0173,1.83952 -0.25693,1.90682 -1.24349,0.34923 -0.67213,-1.06117 -1.87897,-1.5234 -2.68187,-1.02718 -0.80289,0.49621 -1.85553,0.26192 -2.33918,-0.52065 -1.63528,-2.64593 -3.64806,-1.44436 -5.66443,3.38148 -1.10406,2.64239 -2.69799,5.23116 -3.54206,5.75283 -0.84407,0.52166 -1.1731,2.38909 -0.73118,4.14984 0.54782,2.18268 0.0879,3.47595 -1.44542,4.06433 -1.42724,0.54769 -1.98201,1.88365 -1.51839,3.65653 1.00056,3.82615 -3.83597,7.05798 -9.01296,6.02258 -2.19623,-0.43924 -4.8331,-0.1015 -5.85972,0.7505 -1.41099,1.17102 -2.62234,0.84501 -4.963,-1.33565 l 0,0 z\", name : \"Средњи Банат\" }, \"6\" : { path : \"m 197.43148,376.34499 c -1.55471,-1.5547 0.46953,-3.30478 3.82248,-3.30478 1.77575,0 4.91233,-1.3244 6.97018,-2.9431 5.51048,-4.33454 2.68201,-6.85705 -7.6887,-6.85705 -7.7199,0 -8.58491,-0.35786 -15.31672,-6.33666 -6.90218,-6.13011 -7.35561,-6.30736 -13.91083,-5.43778 -6.03635,0.80075 -6.9563,0.56215 -8.42682,-2.18554 -2.45341,-4.58424 -0.37939,-16.11038 4.33882,-24.11248 2.22188,-3.76831 4.02352,-7.29626 4.00366,-7.83988 -0.0199,-0.54362 -2.3824,-2.04802 -5.25009,-3.34311 -5.20415,-2.35026 -13.69953,-2.51004 -21.76523,-0.40934 -2.47083,0.64352 -5.23997,0.33925 -7.39143,-0.81218 -2.94157,-1.57428 -3.76845,-1.51315 -5.70322,0.42162 -2.08378,2.08378 -2.49977,1.91037 -5.25687,-2.19135 -3.25815,-4.84714 -9.19791,-6.88233 -9.19791,-3.15155 0,1.20857 -0.94502,2.1974 -2.10003,2.1974 -1.15502,0 -2.10004,0.56118 -2.10004,1.24707 0,0.68588 -5.19758,1.10103 -11.55018,0.92255 -6.352603,-0.17847 -12.586549,0.19212 -13.853215,0.82355 -1.494314,0.74492 -2.90647,0.42096 -4.021487,-0.92255 -2.231995,-2.68939 -8.233458,-2.67035 -9.269454,0.0294 -0.443222,1.15501 -1.703242,2.10003 -2.800044,2.10003 -1.096803,0 -2.356823,0.94501 -2.800045,2.10003 -0.443222,1.15502 -1.348163,2.10004 -2.010979,2.10004 -2.580892,0 1.052054,-5.58042 5.704761,-8.76285 3.663815,-2.50603 4.800535,-4.20626 4.50553,-6.73908 -0.616286,-5.29123 -3.539584,-7.5139 -7.262148,-5.52165 -3.597543,1.92535 -5.330683,0.92012 -3.083011,-1.78816 2.698545,-3.25155 3.350273,-19.67286 0.962488,-24.2514 -2.938757,-5.63501 -2.733686,-6.06077 2.509385,-5.20994 4.019214,0.65223 5.223716,0.0782 9.100145,-4.3368 2.457284,-2.79869 4.467789,-5.62293 4.467789,-6.27608 0,-0.65316 2.588863,-0.29562 5.753031,0.79452 7.327955,2.52469 11.482904,1.40823 10.317974,-2.77251 -0.818763,-2.93839 -0.760002,-2.92999 1.80735,0.2585 1.91201,2.37458 4.57763,3.50585 9.53791,4.04784 3.78636,0.41371 7.38809,1.60822 8.00386,2.65446 1.45183,2.46676 5.05892,2.44816 6.01026,-0.031 0.8785,-2.28936 9.03889,-0.91411 12.7265,2.14477 2.91748,2.42005 24.68332,2.21346 33.73256,-0.32017 3.76857,-1.05514 6.622,-1.26153 6.8767,-0.49741 0.23944,0.71834 6.57794,1.27565 14.08557,1.23848 13.75294,-0.0681 19.95033,-1.74878 19.95033,-5.41033 0,-1.03365 0.98464,-2.69652 2.18807,-3.69529 1.91079,-1.58581 2.07519,-1.36619 1.29733,1.73307 -0.79226,3.15661 -0.37633,3.65303 3.76203,4.48992 3.69166,0.74655 5.12765,0.35965 6.95172,-1.87302 2.00985,-2.46006 3.26238,-2.68584 9.95993,-1.79539 6.07254,0.80736 8.84096,2.08776 13.35214,6.17541 6.35501,5.75837 8.68951,9.4046 8.68951,13.572 0,1.54699 1.16964,3.63594 2.5992,4.64211 5.72602,4.03019 5.39524,12.18923 -0.60502,14.92312 -1.95365,0.89014 -3.20518,2.17976 -2.78117,2.86581 0.424,0.68605 -0.17048,1.60861 -1.32108,2.05014 -2.51316,0.96439 -2.74654,5.27617 -0.41197,7.61076 1.30669,1.30668 1.09785,1.68002 -0.93977,1.68002 -1.44089,0 -3.74613,1.01931 -5.12274,2.26513 -1.37663,1.24582 -4.57628,2.68667 -7.11035,3.20189 -3.50277,0.71217 -4.72349,1.76349 -5.09157,4.38498 -0.26629,1.89652 -0.98257,4.07822 -1.59173,4.84824 -0.60918,0.77001 -1.54288,4.04017 -2.07492,7.26703 -0.75374,4.57158 -1.63562,5.96263 -3.99405,6.3001 -3.77386,0.53999 -4.85253,5.26846 -1.72377,7.55626 1.50004,1.09686 1.80321,2.03749 0.84712,2.62838 -0.81892,0.50612 -1.12475,2.37124 -0.67964,4.14472 0.58096,2.31477 0.0886,3.50374 -1.74489,4.21426 -2.44188,0.94623 -2.44476,1.07033 -0.0655,2.82234 2.27427,1.67475 2.0331,2.03394 -2.80004,4.17027 -7.90593,3.49454 -11.07882,5.5056 -15.21992,9.64669 -3.50843,3.50842 -8.7568,4.89638 -10.79768,2.85549 l -4e-5,0 z\", name : \"Срем\" }, \"7\" : { path : \"m 333.06436,370.69876 c -0.34701,-0.90279 -2.06993,-1.8478 -3.82873,-2.10003 -2.03424,-0.29173 -4.3146,-2.49628 -6.26702,-6.05868 -1.68805,-3.08005 -4.83012,-7.30696 -6.98236,-9.39314 -3.18779,-3.08993 -3.92347,-5.03634 -3.96876,-10.50017 -0.0463,-5.58737 -0.58236,-6.93822 -3.21089,-8.09138 -1.73542,-0.76134 -2.96328,-1.70636 -2.72859,-2.10003 0.2347,-0.39368 1.85889,-3.74748 3.60931,-7.45289 2.99265,-6.33503 3.04668,-6.94455 0.90534,-10.21265 -1.25249,-1.91154 -3.97568,-4.12127 -6.05153,-4.91051 -5.21249,-1.98179 -8.67949,-5.37754 -8.67949,-8.50113 0,-1.44484 -1.10251,-3.04162 -2.45003,-3.54839 -1.34753,-0.50677 -5.12759,-3.66123 -8.40014,-7.00991 -6.23736,-6.38247 -8.0385,-13.2802 -3.88401,-14.87443 2.49249,-0.95646 8.3096,-12.84312 7.1798,-14.67117 -1.5133,-2.44858 3.31125,-9.70132 6.91113,-10.38948 1.93057,-0.36905 3.84728,-0.12548 4.25935,0.54126 1.39195,2.25223 3.44589,1.2318 4.82574,-2.39747 1.21365,-3.19215 1.89799,-3.49577 5.91544,-2.62448 6.4274,1.39394 14.64352,6.37632 16.62935,10.08428 2.27762,4.25281 5.17195,3.96884 6.93976,-0.68085 1.5612,-4.10625 5.88398,-8.7693 8.1294,-8.7693 0.75469,0 3.43395,-1.88315 5.95391,-4.18479 3.42527,-3.1285 4.17956,-4.58699 2.98832,-5.77822 -1.19123,-1.19124 0.0594,-2.71809 4.9548,-6.04905 7.2149,-4.90921 22.86873,-9.22765 23.75974,-6.55462 0.28716,0.86149 1.18767,1.56635 2.00113,1.56635 0.81346,0 2.18782,0.96934 3.05413,2.1541 1.41732,1.93829 2.19101,1.9368 7.72285,-0.0149 3.38125,-1.19298 6.22783,-2.00482 6.32572,-1.80409 1.34638,2.76066 3.48322,7.84898 4.03563,9.60977 1.05542,3.3641 11.98777,8.59969 15.9043,7.6167 1.81672,-0.45597 4.66781,-0.0987 6.33574,0.79397 1.66792,0.89264 5.17965,1.91233 7.80383,2.26597 5.02622,0.67735 10.90862,4.19572 17.67601,10.57236 4.28635,4.03886 4.20838,4.66635 -0.89466,7.20036 -1.76855,0.87821 -3.3537,3.11135 -3.57863,5.04154 -0.68741,5.899 -5.0432,13.93202 -7.56371,13.94912 -1.30208,0.009 -2.75679,0.64607 -3.23268,1.41608 -0.4759,0.77001 -2.0207,1.40002 -3.4329,1.40002 -1.4122,0 -2.9515,1.00034 -3.42066,2.22297 -1.08363,2.82388 11.09841,17.37735 14.54578,17.37735 3.34935,0 15.40814,5.44011 15.40814,6.95112 0,0.671 0.38241,2.21654 0.8498,3.43454 0.63788,1.66229 -0.0398,2.21454 -2.71741,2.21454 -1.96198,0 -3.91166,0.55731 -4.33265,1.23848 -0.42099,0.68116 -3.82016,1.23848 -7.55372,1.23848 -10.88662,0 -15.64419,1.53478 -17.16611,5.53775 -0.74345,1.95542 -1.03088,4.5746 -0.63873,5.82042 0.88512,2.81191 -6.33677,7.88482 -13.24189,9.30158 -7.48316,1.53536 -14.57929,5.61388 -16.71693,9.6081 -1.42062,2.65446 -2.70641,3.40214 -4.9027,2.85091 -1.8209,-0.45702 -4.20207,0.31527 -6.13145,1.9886 -2.35692,2.04415 -4.48643,2.55713 -8.42326,2.02909 -4.13042,-0.554 -6.43949,0.0877 -10.68655,2.96983 -2.97972,2.02209 -6.23919,4.84941 -7.24327,6.28294 -2.06649,2.95033 -7.6366,4.40202 -18.33047,4.77731 -4.53312,0.15908 -7.57453,-0.36946 -7.96452,-1.38408 l 0,0 z\", name : \"Јужни Банат\" }, \"8\" : { path : \"m 130.99579,493.46112 c -0.95523,-1.52958 -1.73679,-4.06938 -1.73679,-5.64403 0,-3.59621 -3.53793,-5.06749 -6.42463,-2.67175 -1.806,1.49885 -2.41141,1.46501 -3.46079,-0.19337 -0.69954,-1.10551 -1.28153,-2.4469 -1.29332,-2.98087 -0.0118,-0.53398 -1.86128,-2.05768 -4.10996,-3.38602 -2.84917,-1.68305 -4.37044,-3.93507 -5.01854,-7.42926 -0.51151,-2.75777 -1.75668,-5.95914 -2.76705,-7.11416 -1.01038,-1.15502 -2.06752,-3.36005 -2.34922,-4.90008 -0.40321,-2.20426 -1.75944,-2.87037 -6.37407,-3.13055 -3.224037,-0.18176 -6.245826,0.29075 -6.71509,1.05002 -1.285632,2.0802 -3.487999,1.657 -3.487999,-0.67026 0,-2.44508 -4.141928,-4.84174 -6.754834,-3.90855 -2.373858,0.84779 -7.245388,-4.33098 -7.245388,-7.70235 0,-1.41822 -0.54867,-3.17709 -1.219268,-3.9086 -0.670597,-0.73151 -1.602058,-2.96072 -2.069913,-4.9538 -0.648611,-2.7631 -0.02651,-4.34035 2.61929,-6.64084 4.094676,-3.56028 4.533707,-9.46866 1.369902,-18.43584 -2.630564,-7.45581 -2.711222,-7.00011 1.239006,-7.00011 4.228752,0 8.374699,-6.02115 7.455803,-10.82805 -0.500133,-2.61627 0.0076,-3.6964 1.979867,-4.21217 2.562897,-0.67021 5.515957,-5.69683 7.613924,-12.96022 0.556028,-1.92503 3.149449,-6.0032 5.763158,-9.0626 2.613702,-3.0594 5.112212,-6.99696 5.552232,-8.75014 0.44002,-1.75318 1.28773,-3.1876 1.8838,-3.1876 0.59607,0 1.53571,-4.88257 2.08809,-10.85017 0.55239,-5.96759 1.69631,-11.69522 2.54206,-12.72805 1.86404,-2.27639 1.43873,-11.2859 -0.65167,-13.80467 -1.15624,-1.39318 -0.81457,-1.81773 1.46289,-1.81773 1.63431,0 2.97147,-0.70715 2.97147,-1.57145 0,-1.10673 0.60289,-1.07109 2.03871,0.12053 2.34518,1.94633 4.96141,0.82222 4.96141,-2.13176 0,-3.35834 2.68584,-2.25986 3.62515,1.48265 0.61963,2.4688 1.83062,3.50005 4.11007,3.50005 1.77739,0 3.44302,-0.6342 3.7014,-1.40935 0.30433,-0.913 2.02989,-0.82047 4.89964,0.26274 3.45686,1.30482 5.60874,1.29244 9.79705,-0.0564 5.27335,-1.69822 13.58121,-1.54985 15.4062,0.27514 0.5103,0.5103 2.02225,0.92782 3.35988,0.92782 2.10662,0 1.88867,1.00324 -1.6288,7.49756 -3.08918,5.70356 -4.14569,9.67061 -4.41542,16.57923 -0.47349,12.12768 1.26795,14.27471 10.79129,13.3047 6.75454,-0.688 7.30587,-0.47515 12.96906,5.00704 5.95643,5.76607 7.42498,6.21866 21.20723,6.53582 2.79099,0.0642 3.04311,0.41184 1.5786,2.17647 -0.95858,1.15501 -3.53359,2.10003 -5.72225,2.10003 -4.84905,0 -8.04495,4.60704 -5.40365,7.78961 1.92534,2.3199 9.87959,2.69684 12.00743,0.56902 0.98868,-0.98869 1.40649,0.66057 1.33002,5.25008 l -0.11152,6.69161 -5.11943,0 c -3.22118,0 -6.40607,1.11276 -8.5894,3.00103 -3.06574,2.65144 -3.34686,3.67428 -2.41316,8.78029 0.59277,3.24163 0.49719,6.12513 -0.21768,6.56694 -0.70098,0.43323 -0.88582,2.0123 -0.41078,3.50905 0.59002,1.85898 -0.16833,3.56478 -2.39309,5.38289 -2.6128,2.13523 -2.91076,3.01339 -1.50678,4.44093 0.96251,0.97867 1.75002,2.91342 1.75002,4.29944 0,3.78485 -7.32154,3.41447 -9.11816,-0.46127 -0.79734,-1.72004 -4.34345,-4.08872 -8.38211,-5.59895 -8.45399,-3.1613 -10.03351,-3.21108 -15.26819,-0.48121 -3.77859,1.97052 -4.2556,1.92011 -6.70465,-0.70863 -2.98238,-3.20122 -5.18606,-3.437 -12.67771,-1.35646 -5.84306,1.6227 -5.90578,1.71449 -3.64526,5.33416 2.24984,3.60257 0.40706,9.99247 -2.88174,9.99247 -1.44297,0 -2.98622,0.94501 -3.42944,2.10003 -1.08925,2.83856 0.37967,6.3001 2.67348,6.3001 3.60585,0 3.63149,2.94086 0.0502,5.75791 -1.98957,1.56499 -3.61741,3.74474 -3.61741,4.84387 0,1.09913 -0.55656,1.99842 -1.23681,1.99842 -0.68024,0 -1.54114,1.59202 -1.91311,3.53783 -0.51702,2.70461 0.23734,4.18838 3.20296,6.3001 2.1336,1.51925 4.51729,2.76227 5.2971,2.76227 0.77981,0 4.31744,1.24292 7.8614,2.76204 5.14894,2.20709 6.61387,3.61354 7.29119,7.00011 0.46619,2.33094 1.57386,4.23808 2.4615,4.23808 0.88764,0 2.58706,1.13658 3.7765,2.52573 1.68982,1.97357 1.79046,2.87338 0.46032,4.11592 -0.93626,0.87459 -2.02587,1.26658 -2.42137,0.87107 -1.15669,-1.15668 -8.96238,3.38131 -9.86585,5.7357 -1.20963,3.15226 -8.28328,2.72334 -10.37699,-0.62923 z\", name : \"Мачва\" }, \"9\" : { path : \"m 181.94973,501.40042 c -1.1581,-4.61422 -4.93168,-8.40099 -11.35538,-11.39502 -3.06097,-1.42669 -6.41352,-3.44211 -7.45012,-4.47871 -1.0366,-1.03659 -2.88604,-1.88472 -4.10988,-1.88472 -2.4947,0 -10.17504,-7.98668 -10.17504,-10.5809 0,-2.6333 -3.14831,-4.61945 -12.77357,-8.05835 -6.91059,-2.46901 -9.02782,-3.88633 -9.37415,-6.27527 -0.24606,-1.69726 0.22645,-3.08592 1.05001,-3.08592 0.82357,0 1.4974,-0.89247 1.4974,-1.98327 0,-1.09079 1.66783,-3.19819 3.70628,-4.6831 2.99074,-2.1786 3.52618,-3.41747 2.77338,-6.41687 -0.61687,-2.4578 -1.87246,-3.71703 -3.70629,-3.71703 -1.52535,0 -2.77337,-0.63001 -2.77337,-1.40002 0,-0.77002 1.18359,-1.40003 2.63019,-1.40003 2.8327,0 5.91435,-5.80651 6.2642,-11.80313 0.28277,-4.84663 7.2309,-6.58383 10.07757,-2.51963 1.94678,2.77942 8.14948,2.87744 9.83181,0.15538 2.32,-3.75384 19.28002,2.1095 20.58983,7.11822 0.68023,2.6012 1.63135,2.96019 6.84866,2.5849 6.02326,-0.43326 6.05779,-0.46655 5.89904,-5.6859 -0.10025,-3.29596 0.47853,-5.25008 1.55501,-5.25008 2.25118,0 3.65451,-12.02881 2.17081,-18.60731 -0.9953,-4.41306 -0.73174,-5.35221 2.00539,-7.14564 2.39419,-1.56874 3.54224,-1.67387 4.77852,-0.43759 1.17837,1.17837 2.28595,1.21169 4.01538,0.1208 1.89857,-1.19759 2.67997,-0.92616 3.81153,1.32396 3.03729,6.03974 15.32332,10.26 17.01733,5.84548 1.15505,-3.01 4.25162,-2.5901 5.11016,0.69294 1.233,4.71501 5.27681,5.13902 8.65121,0.90712 3.11356,-3.90477 4.9452,-3.65893 4.9452,0.66374 0,1.37343 1.01983,3.06787 2.26629,3.76542 1.68031,0.94035 2.12323,2.76829 1.71303,7.06968 -0.30429,3.19077 -0.0641,5.8014 0.53376,5.8014 2.09188,0 1.05552,3.39499 -2.68325,8.79004 -2.913,4.20347 -3.43645,5.9697 -2.30213,7.76797 1.02563,1.62595 1.02183,3.04213 -0.0126,4.69852 -1.99601,3.19613 0.85676,8.5246 8.66353,16.18193 6.4103,6.28761 8.62164,7.28948 8.62164,3.90614 0,-1.16652 0.83049,-1.73741 1.91952,-1.31951 2.04684,0.78545 5.57666,-2.11954 7.93906,-6.53373 0.79206,-1.47998 2.83881,-2.69087 4.54834,-2.69087 4.59875,0 6.93909,8.12468 3.90327,13.55052 -1.21546,2.17236 -2.99745,4.45357 -3.95996,5.06934 -0.96252,0.61577 -1.75003,2.19891 -1.75003,3.51808 0,1.31917 -1.34606,3.02039 -2.99124,3.78049 -1.64518,0.7601 -2.7477,1.86009 -2.45004,2.44442 0.29766,0.58433 -1.50633,2.3076 -4.00887,3.82948 -2.50254,1.52189 -4.55007,3.27134 -4.55007,3.88766 0,0.61633 -1.10252,1.20117 -2.45004,1.29963 -8.4835,0.61993 -15.1063,1.98919 -15.51229,3.20715 -0.25921,0.77764 -1.99382,1.4139 -3.85468,1.4139 -2.07411,0 -3.38339,0.81265 -3.38339,2.10003 0,2.57484 -1.86392,2.56657 -9.10015,-0.0404 -7.20345,-2.59513 -10.41271,-2.57277 -13.35844,0.0931 -3.08727,2.79394 -9.40028,0.23187 -10.01969,-4.0664 -0.60979,-4.23148 -7.78024,-6.56302 -10.16289,-3.30456 -1.94786,2.66386 -5.70741,3.20608 -7.05962,1.01816 -1.06528,-1.72366 -3.55496,-1.7655 -6.17998,-0.10387 -1.61831,1.02438 -1.29868,2.06289 1.75002,5.68607 3.61985,4.30195 5.01415,9.81804 2.4817,9.81804 -0.68654,0 -1.6144,-1.45884 -2.06191,-3.24188 z\", name : \"Колубара\" }, \"10\" : { path : \"m 254.4364,454.92067 c -6.33525,-6.18328 -8.19657,-10.14413 -6.00689,-12.78253 1.37997,-1.66276 1.3985,-2.70781 0.0853,-4.81059 -0.92271,-1.47749 -1.10394,-2.68636 -0.40273,-2.68636 4.03157,0 6.28691,-26.721 2.44608,-28.98089 -1.04654,-0.61577 -2.47624,-3.59119 -3.17711,-6.61203 -1.67278,-7.20989 -3.96113,-7.73061 -6.886,-1.56691 -3.1326,6.60147 -4.0912,7.00205 -6.81352,2.84727 -2.61686,-3.99384 -5.28543,-4.42357 -8.36238,-1.34662 -1.3717,1.3717 -3.38352,1.82967 -5.59705,1.27411 -6.08839,-1.52809 -7.7745,-4.85082 -8.12402,-16.00952 -0.31679,-10.11412 -0.23276,-10.39562 3.81922,-12.79555 8.05669,-4.77185 12.29529,-6.81097 14.15755,-6.81097 1.24249,0 1.80079,-1.54949 1.63945,-4.55007 -0.13456,-2.50254 0.24969,-6.90596 0.85389,-9.78537 0.88112,-4.19916 0.65262,-5.40641 -1.15453,-6.09988 -3.07555,-1.1802 -2.83099,-2.88736 0.53991,-3.76886 1.53613,-0.40171 3.07131,-1.57771 3.41149,-2.61333 0.34018,-1.03562 1.74301,-5.82051 3.1174,-10.63308 2.14224,-7.50128 2.9625,-8.75014 5.74719,-8.75014 1.78657,0 4.60078,-1.26002 6.2538,-2.80005 1.65302,-1.54002 4.10954,-2.80004 5.45892,-2.80004 3.45215,0 4.4247,-2.22552 2.5243,-5.77646 -1.32573,-2.47713 -1.20908,-3.26642 0.63526,-4.29856 1.24255,-0.69536 2.25917,-1.92983 2.25917,-2.74326 0,-0.81344 1.64154,-2.77021 3.64788,-4.34839 3.62208,-2.84913 4.02599,-6.91488 1.35472,-13.6367 -1.0528,-2.64922 4.05297,-6.02222 7.47288,-4.93678 1.61856,0.51371 2.54186,2.25911 2.61836,4.94976 0.0856,3.00938 2.0241,6.09248 7.02533,11.17321 3.79894,3.85934 7.62135,7.01698 8.49425,7.01698 0.8729,0 1.58709,1.23061 1.58709,2.73468 0,2.6893 1.4426,4.02143 11.20018,10.34247 5.56449,3.60473 5.92266,7.37269 1.31336,13.81658 -3.54599,4.95738 -3.42787,6.1741 0.87297,8.99212 3.16677,2.07495 3.4788,2.98653 2.66699,7.7916 -0.83428,4.93805 -0.47199,5.86367 3.91411,10.0003 2.65842,2.50721 5.98743,6.99031 7.3978,9.96245 1.58346,3.33688 4.06963,5.97208 6.49975,6.88934 2.16449,0.81701 3.93544,1.97735 3.93544,2.57855 0,0.6012 1.26002,1.09309 2.80004,1.09309 1.8667,0 2.80005,0.93334 2.80005,2.80004 0,1.54002 0.67246,2.80004 1.49437,2.80004 0.85847,0 1.11527,1.19443 0.60347,2.80695 -0.59209,1.86553 -0.15419,3.08963 1.30568,3.64984 2.6884,1.03163 2.90326,3.34337 0.31075,3.34337 -1.0372,0 -3.28017,1.20932 -4.98438,2.68737 -2.81218,2.439 -2.95639,3.21536 -1.56028,8.40013 1.03071,3.82773 2.32892,5.72548 3.93437,5.75131 2.59077,0.0417 9.39619,8.27495 9.39619,11.36763 0,1.14547 -1.65997,1.93968 -4.20007,2.00953 -8.12475,0.22341 -9.10015,0.57734 -9.10015,3.30193 0,1.49458 -0.63001,3.10679 -1.40002,3.58269 -2.29196,1.41651 -1.60017,5.66805 1.58018,9.7112 4.07482,5.18029 1.73978,7.55193 -4.41323,4.48239 -3.28525,-1.63889 -5.18058,-1.8495 -7.15156,-0.79466 -3.27587,1.75319 -6.81565,-1.17742 -6.81565,-5.64275 0,-4.05794 -2.72208,-4.73079 -8.82416,-2.18118 -5.15937,2.15573 -5.17607,2.15148 -5.17607,-1.31512 0,-2.83795 -1.40768,-4.14378 -7.65083,-7.09726 l -7.65083,-3.61942 -4.24936,3.14167 c -4.88682,3.61298 -5.16516,4.88275 -1.86877,8.52521 2.21837,2.45128 2.22382,2.93577 0.08,7.11035 -1.2653,2.4639 -2.5096,5.73986 -2.7651,7.27988 -0.31097,1.87441 -1.38367,2.67402 -3.24489,2.41882 -1.93236,-0.26495 -3.56316,1.07235 -5.34695,4.38464 -1.94786,3.61698 -3.24447,4.58861 -5.37856,4.03053 -1.54659,-0.40444 -3.22,-0.1725 -3.71869,0.51543 -0.49869,0.68793 -2.8528,-0.64863 -5.23136,-2.97013 l -1e-5,0 z\", name : \"Београд\" }, \"11\" : { path : \"m 392.07708,470.15064 c -2.1342,-1.11822 -4.51269,-1.64233 -5.28554,-1.16469 -2.39811,1.48212 -14.03971,-5.05407 -15.40698,-8.65026 -1.2922,-3.39873 -2.03173,-3.47068 -11.12189,-1.08204 -1.15502,0.30351 -3.90458,-0.38506 -6.11013,-1.53015 -2.20555,-1.14509 -4.92555,-2.08197 -6.04444,-2.08197 -1.40583,0 -1.75625,-0.8762 -1.13423,-2.83601 0.71732,-2.26008 0.0485,-3.13288 -3.29347,-4.29789 -5.14506,-1.79359 -6.84136,-5.45564 -3.61865,-7.81215 2.95399,-2.16001 1.62066,-6.05429 -2.07287,-6.05429 -4.13472,0 -4.83896,-2.39274 -2.28704,-7.7705 2.38416,-5.02424 4.64135,-5.98888 7.44748,-3.18275 1.26257,1.26258 2.30814,1.04857 4.48007,-0.917 1.55822,-1.41017 2.83312,-3.46816 2.83312,-4.57331 0,-2.84632 -7.24932,-12.76683 -9.999,-13.68338 -1.26438,-0.42146 -2.68231,-1.84793 -3.15095,-3.16995 -0.46864,-1.32202 -1.22216,-3.20015 -1.67449,-4.17362 -0.51313,-1.10432 1.06673,-2.55928 4.20097,-3.86885 5.76399,-2.40835 6.12415,-4.2164 2.22334,-11.16147 -3.28613,-5.85068 -3.54376,-7.89763 -0.86459,-6.86954 2.90549,1.11494 18.10719,-3.22686 19.90464,-5.68502 4.44679,-6.08135 18.4313,-12.16518 16.52113,-7.18737 -0.41333,1.07713 -0.0113,2.41591 0.89342,2.97505 1.25526,0.77579 1.24889,1.2614 -0.0269,2.04988 -1.24068,0.76679 -0.90915,2.70746 1.28555,7.52512 1.62656,3.57053 3.55188,6.49187 4.27848,6.49187 0.7266,0 0.94945,0.96848 0.49522,2.15217 -1.0286,2.68048 3.28953,7.64798 6.6482,7.64798 3.53332,0 4.67508,2.54551 2.75281,6.1373 -1.69462,3.16643 -1.09427,5.53213 3.40608,13.42178 1.31465,2.30475 1.48642,3.75951 0.51479,4.36 -0.80198,0.49566 -1.28241,2.40425 -1.06761,4.24131 0.2148,1.83706 -1.02623,6.06566 -2.75783,9.3969 -3.36695,6.47728 -2.45372,10.04347 2.57192,10.04347 1.3264,0 3.49796,1.20037 4.82569,2.66749 2.31764,2.56097 2.24308,2.70505 -1.867,3.60777 -5.03236,1.10529 -6.86056,3.33842 -4.14251,5.06001 1.39717,0.88494 1.44665,1.22797 0.17937,1.24349 -2.01506,0.0247 -2.47976,10.60537 -0.519,11.81718 1.70937,1.05646 2.80923,5.79786 1.74453,7.52058 -0.5722,0.92584 -2.24231,0.71289 -4.76168,-0.60714 z\", name : \"Подунавље\" }, \"12\" : { path : \"m 505.08278,497.5092 c -0.50781,-0.82165 -2.3639,-1.13233 -4.12465,-0.69042 -2.19081,0.54986 -3.47623,0.0872 -4.07214,-1.46574 -0.66237,-1.72611 -2.04266,-2.07906 -5.76703,-1.47468 -3.95788,0.64227 -5.55082,0.14 -8.31169,-2.62088 -2.50677,-2.50677 -4.93834,-3.41544 -9.1396,-3.41544 -5.07588,0 -6.45443,-0.79278 -12.17236,-7.00011 -3.54651,-3.85007 -7.53724,-7.00012 -8.86828,-7.00012 -1.33105,0 -3.20438,-0.94501 -4.16296,-2.10003 -2.18164,-2.62872 -3.85641,-2.6271 -8.91017,0.009 -4.93089,2.57163 -7.74597,2.78728 -5.37006,0.41138 2.37945,-2.37945 2.08555,-6.72011 -0.45501,-6.72011 -1.25779,0 -2.48426,-1.74615 -2.98499,-4.24979 -1.32272,-6.61361 -9.8131,-9.73905 -11.27458,-4.15034 -1.01692,3.88868 -5.48181,3.50116 -8.24472,-0.71557 -1.26693,-1.93359 -4.53761,-4.57577 -7.26817,-5.8715 l -4.96466,-2.35589 3.73585,-1.24528 c 2.05471,-0.6849 3.73584,-2.02797 3.73584,-2.9846 0,-2.37858 -5.99157,-7.8275 -8.60703,-7.8275 -1.16956,0 -2.52135,-0.39488 -3.00398,-0.87751 -1.41343,-1.41343 3.08644,-8.92264 5.34686,-8.92264 2.52482,0 2.63146,-1.92255 0.31406,-5.6618 -1.42022,-2.29161 -1.39199,-3.04663 0.14982,-4.00629 2.02609,-1.2611 1.1665,-6.20197 -1.70009,-9.77197 -1.70566,-2.12419 -2.10536,-6.05428 -0.72823,-7.16036 0.47936,-0.38501 0.56535,-2.74755 0.1911,-5.25009 -0.4543,-3.03784 -1.4547,-4.55007 -3.01007,-4.55007 -1.2813,0 -3.75987,-1.00178 -5.50793,-2.22617 -2.46948,-1.72968 -2.82431,-2.65271 -1.59101,-4.13874 1.95587,-2.35668 0.37556,-5.2996 -2.29543,-4.27464 -1.8456,0.70822 -2.70237,-2.28651 -2.06293,-7.21073 0.12499,-0.96252 -0.27287,-1.75129 -0.88414,-1.75284 -0.61126,-0.002 -1.25092,-2.04907 -1.42146,-4.55007 -0.27246,-3.9955 0.32705,-4.85363 4.94073,-7.07207 2.88795,-1.38865 6.29245,-2.1251 7.56556,-1.63656 1.63594,0.62777 2.94139,-0.32353 4.45158,-3.24392 2.28963,-4.42766 10.7044,-9.08405 19.21057,-10.63034 2.78183,-0.50569 6.18501,-2.16491 7.56263,-3.68716 2.88478,-3.18764 5.49738,-1.8855 6.82428,3.40129 0.97416,3.88138 5.30464,5.02128 19.07573,5.02128 12.74311,0 15.27084,2.08282 16.64214,13.71289 0.56677,4.80686 1.77793,9.48716 2.69145,10.40069 1.00135,1.00134 7.07901,1.79385 15.30411,1.99561 12.79965,0.31396 21.5321,1.10371 29.74342,2.68995 1.92503,0.37187 5.8501,1.04178 8.72239,1.48867 4.02174,0.62575 5.71392,1.79795 7.36063,5.09884 1.95894,3.9268 1.93192,4.48692 -0.32227,6.67846 -5.14608,5.00307 -8.05012,9.13402 -8.32049,11.83575 -1.25905,12.58183 -2.30213,16.10026 -4.77304,16.10026 -1.41279,0 -3.2195,1.21602 -4.01492,2.70226 -0.79542,1.48625 -2.86511,2.90378 -4.59933,3.15005 -2.0566,0.29207 -3.3126,1.57301 -3.61172,3.68345 -0.25222,1.77961 -1.35474,3.57954 -2.45003,3.99984 -2.06958,0.79417 -2.76445,7.62508 -0.95929,9.43024 0.56769,0.56769 1.0402,2.08566 1.05002,3.37328 0.0113,1.48496 2.06585,3.01242 5.61795,4.17675 7.36576,2.41438 7.98807,3.18398 8.34982,10.32619 0.16878,3.33227 0.78906,7.1612 1.3784,8.50872 1.22722,2.80605 4.94973,3.32549 5.01653,0.70001 0.0276,-1.0854 0.73766,-0.83762 1.86958,0.65242 1.92609,2.53547 1.95655,4.17235 0.2357,12.66314 -0.67493,3.33017 -0.49874,5.95033 0.47941,7.12892 2.01686,2.43018 0.61449,3.7059 -4.07377,3.7059 -2.07786,0 -5.5531,1.39636 -7.72277,3.10303 -4.53879,3.57021 -8.48265,4.52012 -9.81516,2.36407 l 0,0 z\", name : \"Браничево\" }, \"13\" : { path : \"m 550.33656,538.48345 c -1.33604,-0.52944 -3.85608,-3.79272 -5.60009,-7.25173 -3.15613,-6.25975 -8.071,-9.29949 -8.071,-4.99172 0,1.21147 -0.21821,2.20268 -0.48492,2.20268 -1.86166,0 -9.62431,-4.8904 -12.80126,-8.0647 -2.67768,-2.67543 -5.37753,-3.87991 -8.92648,-3.98234 -13.37257,-0.38598 -12.92297,-0.21959 -11.89796,-4.40322 0.5188,-2.11753 1.51653,-4.07363 2.21718,-4.34689 0.70064,-0.27327 1.86707,-2.05699 2.59206,-3.96387 0.72499,-1.90685 2.1018,-3.18099 3.05958,-2.8314 0.95777,0.34958 3.14523,-0.64117 4.86101,-2.20168 1.71579,-1.56051 5.42728,-3.21285 8.24778,-3.67187 5.83354,-0.94937 9.4804,-5.03623 6.27703,-7.03438 -1.58051,-0.98587 -1.66332,-2.37267 -0.43147,-7.22577 0.83843,-3.30316 1.18307,-6.55805 0.76588,-7.2331 -0.4172,-0.67504 -0.75855,-3.3906 -0.75855,-6.03458 0,-5.09513 -3.01038,-6.55693 -6.4401,-3.12722 -0.92401,0.92402 -1.70805,1.39653 -1.7423,1.05002 -0.0343,-0.34651 -0.28715,-3.75546 -0.56198,-7.57546 -0.55429,-7.70415 -4.12094,-11.95485 -10.03101,-11.95485 -2.37771,0 -3.34496,-0.78579 -3.34496,-2.71742 0,-1.49458 -0.63001,-3.10679 -1.40002,-3.58268 -1.73521,-1.07242 -1.86115,-6.3001 -0.15177,-6.3001 0.68653,0 1.62892,-1.51673 2.09419,-3.37051 0.59802,-2.3827 1.585,-3.17725 3.36764,-2.71108 1.68048,0.43946 3.16245,-0.53783 4.44248,-2.92959 1.24504,-2.32637 3.10665,-3.58902 5.29153,-3.58902 2.93207,0 3.33109,-0.59216 3.06597,-4.55007 -0.16764,-2.50254 0.43982,-6.39125 1.34989,-8.64157 0.91008,-2.25032 1.33374,-4.92786 0.94147,-5.95009 -0.39327,-1.02485 0.20914,-1.8586 1.34288,-1.8586 1.13086,0 2.0561,-0.84862 2.0561,-1.88582 0,-1.0372 1.26002,-3.33863 2.80004,-5.1143 l 2.80005,-3.22847 0,3.78112 c 0,2.10356 1.41799,5.14904 3.19606,6.86432 1.75784,1.69576 4.19987,4.67451 5.42675,6.61945 3.17205,5.02858 11.08719,8.99134 15.66448,7.84251 2.87775,-0.72227 4.63404,-2.97105 7.83654,-10.034 2.27015,-5.00671 5.37925,-10.86097 6.9091,-13.00945 1.52986,-2.14849 3.20027,-5.5746 3.71202,-7.61358 0.51175,-2.03898 1.87929,-4.49471 3.03898,-5.45716 1.15968,-0.96245 2.6573,-3.19333 3.32804,-4.9575 0.838,-2.20412 2.35413,-3.20759 4.84627,-3.20759 4.42005,0 9.11759,-2.36346 11.57218,-5.82227 3.02843,-4.26741 6.24708,-2.99654 15.01468,5.92848 9.12177,9.28556 14.08489,12.49399 19.32693,12.49399 4.80249,0 9.80728,2.88896 14.34298,8.27935 l 3.89324,4.62685 -3.40324,2.61591 c -4.2217,3.24503 -6.02659,3.32191 -8.48191,0.36128 -3.09165,-3.72795 -10.14077,-6.07665 -14.63243,-4.87539 -3.21313,0.85932 -4.3748,2.30361 -5.79319,7.20262 -2.32514,8.03083 -3.55048,9.05987 -10.21518,8.57866 -4.06265,-0.29333 -5.81815,0.19964 -6.43497,1.80705 -1.22965,3.2044 0.50072,8.85121 3.68943,12.03992 1.52044,1.52044 2.76444,4.06358 2.76444,5.65143 0,5.10432 4.24625,15.89266 7.91056,20.09813 2.42286,2.78069 6.30974,4.84871 12.17453,6.47749 8.61073,2.39138 8.6152,2.39537 8.31349,7.41124 -0.18546,3.08327 -2.14647,7.6429 -5.08522,11.8239 -4.49497,6.39503 -4.76814,7.43425 -4.53105,17.23721 l 0.25231,10.43188 -9.55503,2.95472 c -9.31919,2.88179 -9.58991,2.88954 -10.96851,0.31359 -1.09026,-2.03716 -0.76147,-3.341 1.43773,-5.70156 1.56818,-1.68324 2.85123,-3.61307 2.85123,-4.28851 0,-2.57942 -2.98373,-6.64408 -4.8772,-6.64408 -1.08826,0 -3.67813,-1.57503 -5.75527,-3.50006 -3.76208,-3.48658 -13.16791,-5.03446 -13.16791,-2.16699 0,2.04598 -13.04714,-2.33561 -15.03015,-5.04755 -1.99717,-2.73129 -1.8469,-2.82622 -6.59002,4.16316 -4.02326,5.92861 -4.4895,8.70299 -1.64592,9.79417 1.06387,0.40825 2.29399,2.83819 2.73361,5.39987 0.43961,2.56169 1.2157,6.70514 1.72465,9.20768 0.55844,2.74596 0.36349,4.55007 -0.49169,4.55007 -2.0502,0 -10.10094,16.05904 -10.10094,20.14863 0,2.23349 -0.99418,3.77861 -2.80005,4.35176 -1.54002,0.48879 -2.80004,1.47626 -2.80004,2.19438 0,1.48702 -1.05943,1.52124 -4.5292,0.14627 l 0,0 z\", name : \"Бор\" }, \"14\" : { path : \"m 214.35063,734.93986 c -2.73764,-1.86028 -5.61521,-5.21156 -6.39459,-7.4473 -1.23749,-3.54985 -2.10921,-4.06496 -6.87918,-4.06496 -10.69747,0 -22.17377,-5.91152 -23.09252,-11.89512 -0.53346,-3.47435 -9.15897,-6.6369 -18.18051,-6.66591 -5.54805,-0.0179 -6.70855,-0.50247 -7.54972,-3.15277 -1.75753,-5.53746 -7.89484,-13.66858 -10.31697,-13.66858 -4.28418,0 -8.47807,-5.33251 -8.47807,-10.77984 0,-3.81226 -0.99946,-5.97027 -4.02727,-8.69559 -2.21499,-1.99372 -4.46381,-5.64391 -4.99738,-8.11155 -0.5994,-2.77216 -2.07582,-4.83755 -3.86369,-5.405 -1.59146,-0.50511 -5.63014,-3.00724 -8.97483,-5.56031 -3.3447,-2.55307 -7.51139,-5.09544 -9.25932,-5.64971 -1.74793,-0.55428 -5.407238,-2.41447 -8.131789,-4.13379 -4.894916,-3.08889 -5.84712,-6.11339 -3.735519,-11.86517 0.424031,-1.15502 1.192252,-4.61528 1.707158,-7.68946 1.248692,-7.45518 1.593997,-7.82702 5.787697,-6.23258 2.608873,0.99189 4.685613,0.8329 7.507293,-0.57473 3.65509,-1.8234 3.99792,-1.73264 5.44402,1.44121 0.84881,1.86294 1.54329,4.6373 1.54329,6.16526 0,4.44726 3.95958,4.84453 8.16147,0.81886 2.67712,-2.56485 4.71571,-3.39414 6.92399,-2.81667 1.72136,0.45015 4.0714,0.0369 5.22232,-0.91823 2.51002,-2.08313 2.76093,-6.5378 0.41234,-7.32067 -1.3031,-0.43437 -1.29155,-2.29689 0.0515,-8.29824 1.00571,-4.49399 1.32318,-10.29306 0.75725,-13.83222 -1.31898,-8.24842 -11.83258,-23.27212 -17.92077,-25.60838 -1.24937,-0.47943 -2.69606,-1.97784 -3.21485,-3.32981 -0.5188,-1.35196 -3.65456,-6.33665 -6.96836,-11.07708 -3.3138,-4.74044 -6.025088,-9.04569 -6.025088,-9.56724 0,-0.52155 -1.457348,-2.95376 -3.238552,-5.40493 -1.781203,-2.45116 -3.977162,-6.19891 -4.879909,-8.32833 -1.598511,-3.7706 -1.541378,-3.84685 2.188534,-2.92085 6.189155,1.53653 12.328455,4.38073 14.122785,6.54277 1.17088,1.41083 5.06541,2.07377 13.03337,2.21857 6.24993,0.11359 11.80024,0.47644 12.33402,0.80633 0.53379,0.3299 3.26894,-1.89997 6.07811,-4.95527 2.80918,-3.05529 6.69494,-6.27832 8.63503,-7.16229 2.88795,-1.31584 3.52743,-2.5923 3.52743,-7.04111 0,-6.13225 -3.80038,-11.33035 -7.90852,-10.81713 -1.4254,0.17807 -4.16667,-0.36161 -6.0917,-1.19929 -3.36252,-1.4632 -3.37817,-1.52654 -0.39827,-1.61179 1.70598,-0.0488 4.98306,-1.92776 7.28241,-4.17545 2.75153,-2.6897 5.11997,-3.84106 6.92851,-3.36811 1.84021,0.48122 3.2662,-0.2499 4.31703,-2.2134 1.7875,-3.33997 4.99672,-3.83879 6.65115,-1.0338 0.61577,1.044 3.63962,3.03658 6.71967,4.42796 6.25746,2.82675 10.42213,7.13268 10.46904,10.82413 0.0213,1.67993 1.1451,2.45004 3.57512,2.45004 4.35481,0 5.60554,-2.8361 3.68294,-8.35127 -1.25218,-3.59201 -1.12344,-4.1592 0.90695,-3.99576 5.00139,0.40259 7.26636,-0.33092 7.26636,-2.35321 0,-1.15502 0.94502,-2.10003 2.10004,-2.10003 1.15502,0 2.10003,1.21712 2.10003,2.70471 0,3.03605 6.81573,8.49547 10.60605,8.49547 1.36053,0 3.60042,-1.01969 4.97755,-2.26597 2.86478,-2.59259 8.85806,-1.73066 10.07837,1.44943 0.42373,1.10423 0.13674,4.30269 -0.63776,7.10769 -0.94563,3.42482 -0.94434,5.6589 0.004,6.8015 0.88484,1.06616 0.92726,2.4681 0.11361,3.75457 -2.01212,3.1814 -1.61522,5.01284 2.02352,9.33725 2.32985,2.76886 3.15124,5.11653 2.67035,7.63217 -0.49414,2.58498 0.22691,4.4917 2.49919,6.60864 1.75657,1.63647 2.52363,2.97541 1.70458,2.97541 -0.81902,0 -2.4939,2.04753 -3.72195,4.55007 -1.94573,3.96503 -1.971,4.74788 -0.19662,6.08852 1.11989,0.84615 1.62983,1.94481 1.13317,2.44146 -0.49665,0.49665 0.0112,2.00938 1.12828,3.36162 1.18824,1.43822 1.9574,5.07338 1.85325,8.75873 -0.14774,5.22848 0.49823,6.9422 3.79776,10.07507 3.59208,3.41064 3.81183,4.13483 2.27697,7.50349 -1.4248,3.12708 -1.33628,3.9936 0.54874,5.37196 3.00684,2.19866 0.001,6.9575 -3.13896,4.97049 -1.1107,-0.70274 -3.71207,-1.28736 -5.78081,-1.29915 -3.22562,-0.0184 -3.82384,0.62663 -4.20007,4.52863 -0.34955,3.62539 -1.00775,4.47465 -3.23875,4.17896 -1.70667,-0.2262 -5.20807,1.90253 -8.96684,5.45153 -5.21719,4.92603 -6.56166,5.57603 -8.73114,4.22117 -4.19202,-2.61796 -6.80241,-1.93415 -6.80241,1.78192 0,1.86087 -0.78751,3.66567 -1.75003,4.01068 -2.45755,0.88089 2.11825,8.53917 5.5043,9.21226 1.40021,0.27834 3.04964,1.38085 3.66541,2.45004 0.61578,1.06918 2.66331,1.94397 4.55008,1.94397 3.06032,0 3.43048,0.59536 3.43048,5.51746 0,3.0346 0.61316,5.89642 1.36256,6.35957 0.74941,0.46316 2.44933,3.17788 3.7776,6.03273 1.32827,2.85484 3.54732,6.76563 4.93123,8.69066 1.3839,1.92503 2.74643,5.50499 3.02784,7.95546 0.28142,2.45047 1.56265,5.50639 2.84717,6.79092 2.18066,2.18066 2.97733,2.17822 12.01586,-0.0368 5.32418,-1.30477 10.29337,-1.99342 11.04263,-1.53036 1.74619,1.0792 -2.14751,11.64314 -5.81916,15.78785 -2.69346,3.04048 -2.69075,3.10861 0.31861,7.97784 1.66939,2.70115 4.26401,5.30116 5.7658,5.77781 1.50179,0.47665 2.73053,1.32763 2.73053,1.89107 0,1.42959 -8.58737,4.38697 -12.73846,4.38697 -3.71498,0 -8.76843,4.78977 -7.87038,7.45971 0.30347,0.90224 -1.26141,2.40843 -3.47752,3.3471 -2.82375,1.19603 -5.08629,4.01546 -7.56212,9.42337 -1.94305,4.24419 -4.01692,8.01591 -4.6086,8.38158 -0.59167,0.36569 -3.31566,-0.85718 -6.05331,-2.71745 l 0,4e-5 z\", name : \"Златибор\" }, \"15\" : { path : \"m 262.61112,678.71788 c -0.96252,-0.38838 -1.75003,-1.36892 -1.75003,-2.17897 0,-1.78095 -6.60808,-8.094 -8.47227,-8.094 -0.73034,0 -1.32789,0.63001 -1.32789,1.40002 0,0.77001 -1.73668,1.40002 -3.8593,1.40002 -2.12262,0 -5.78286,0.55166 -8.13387,1.22593 -4.24145,1.21642 -10.11064,-1.0558 -8.04994,-3.11649 0.82141,-0.82142 -0.63048,-4.87558 -3.83538,-10.70964 -5.97642,-10.87924 -9.67989,-18.70911 -9.11599,-19.27301 1.46186,-1.46187 -3.60997,-8.72744 -6.09231,-8.72744 -1.43786,0 -2.97694,-0.94501 -3.42016,-2.10003 -0.44322,-1.15502 -2.06348,-2.10003 -3.60058,-2.10003 -1.5371,0 -3.46907,-1.26002 -4.29327,-2.80005 -1.016,-1.89841 -1.03186,-2.80004 -0.0493,-2.80004 0.79711,0 1.44928,-1.38602 1.44928,-3.08005 0,-2.39559 0.37334,-2.7067 1.68003,-1.40002 3.00522,3.00522 6.94169,1.78787 12.63777,-3.90822 3.07353,-3.07352 6.1551,-5.2379 6.84793,-4.80971 2.97952,1.84145 6.83472,-1.03337 6.83472,-5.09663 0,-4.489 2.23057,-5.25829 7.33132,-2.52844 2.40712,1.28824 3.28818,1.11094 4.80804,-0.9676 2.16157,-2.95612 2.49449,-9.00982 0.49549,-9.00982 -0.86157,0 -0.89544,-1.23602 -0.0918,-3.3498 1.4953,-3.93292 0.42068,-9.2504 -1.86942,-9.2504 -3.06903,0 -5.30426,-5.69137 -4.38113,-11.1553 0.67171,-3.97585 0.37816,-5.47181 -1.19197,-6.07432 -1.30383,-0.50033 -1.80085,-1.87895 -1.32854,-3.68507 0.53228,-2.03543 0.0877,-2.88569 -1.50869,-2.88569 -2.71897,0 -2.80653,-1.26713 -0.31443,-4.55007 1.02292,-1.34752 3.20792,-2.45004 4.85556,-2.45004 4.26985,0 3.70226,-3.15112 -1.22358,-6.79295 -3.60845,-2.66784 -3.99645,-3.53583 -2.6801,-5.99546 1.22577,-2.29036 1.01586,-3.49057 -1.03079,-5.89397 -4.24739,-4.98774 -6.15062,-9.10302 -4.64135,-10.0358 1.64793,-1.01848 1.83232,-5.85749 0.24827,-6.51571 -0.61769,-0.25667 -0.57084,-3.19365 0.10411,-6.52661 0.99203,-4.89872 1.67671,-5.87431 3.57311,-5.09124 6.4808,2.67606 7.7114,2.58189 6.89817,-0.52791 -0.64188,-2.45457 -0.18011,-3.02115 2.46228,-3.02115 1.78877,0 3.46232,-0.60077 3.71899,-1.33505 0.25667,-0.73428 2.67171,-1.66975 5.36675,-2.07883 11.10861,-1.68614 14.00022,-2.59874 14.00022,-4.41847 0,-1.05295 1.57503,-2.30977 3.50006,-2.79292 2.13134,-0.53493 3.50005,-1.876 3.50005,-3.42935 0,-1.57947 1.1996,-2.72127 3.15005,-2.99828 2.02438,-0.28751 3.30993,-1.57306 3.59743,-3.59743 0.24606,-1.73253 1.05388,-3.15005 1.79514,-3.15005 0.74127,0 1.87871,-1.41752 2.52763,-3.15005 1.07147,-2.86065 1.34493,-2.6034 2.97654,2.80005 0.98817,3.27255 2.32696,5.95009 2.97509,5.95009 0.64813,0 1.10381,0.47251 1.01262,1.05002 -0.46931,2.97229 0.48664,4.32705 3.60565,5.10987 3.72183,0.93412 8.71669,9.54566 7.99872,13.79043 -0.23488,1.38863 0.45684,2.45004 1.5967,2.45004 2.34835,0 14.94148,11.12198 12.86451,11.36167 -0.76967,0.0888 -2.29161,0.24632 -3.3821,0.35 -1.09049,0.10369 -3.44351,2.94714 -5.22893,6.3188 -1.78542,3.37166 -4.35826,6.95181 -5.71742,7.95588 -1.97999,1.46272 -2.12334,2.17826 -0.72116,3.59987 0.96251,0.97585 1.75002,2.96727 1.75002,4.42539 0,1.4581 1.2377,2.97477 2.75045,3.37036 1.51274,0.39559 3.97478,2.79435 5.47119,5.33058 l 2.72075,4.61132 -4.11525,3.94266 c -2.26339,2.16846 -3.92245,4.9083 -3.68681,6.08853 0.23564,1.18024 -1.00454,3.59204 -2.75596,5.35957 -1.75143,1.76753 -3.18441,4.76008 -3.18441,6.65011 0,2.47547 -0.76457,3.43641 -2.73417,3.43641 -5.6815,0 -9.86603,3.06431 -9.86603,7.22484 0,2.18644 0.47251,3.9766 1.05002,3.97815 0.5775,0.002 1.19481,2.04907 1.37178,4.55007 0.30344,4.2882 0.0641,4.53747 -4.20006,4.37538 -2.48701,-0.0946 -6.25713,0.83044 -8.37803,2.0555 -3.31527,1.91495 -3.73817,2.85655 -3.01478,6.71255 1.4104,7.51806 -0.45988,12.46438 -5.80048,15.34049 -2.65585,1.43028 -4.82883,2.8177 -4.82883,3.08317 0,0.26547 2.99255,3.63957 6.65011,7.49799 8.85222,9.33834 9.23815,10.19001 9.41022,20.76597 0.0816,5.01449 0.66475,10.84977 1.29592,12.9673 0.91056,3.05488 0.69267,3.85006 -1.05496,3.85006 -1.2114,0 -2.95821,1.41197 -3.8818,3.13772 -1.61457,3.01683 -8.91824,10.97982 -9.86176,10.75197 -0.25173,-0.0608 -1.24521,-0.42829 -2.20772,-0.81667 l 0,0 z\", name : \"Моравица\" }, \"16\" : { path : \"m 328.65696,563.77181 c -0.82787,-0.56572 -2.7179,-3.61522 -4.20007,-6.77667 -1.48216,-3.16145 -4.64854,-7.23448 -7.03641,-9.0512 -2.38786,-1.81671 -5.10498,-5.02777 -6.03803,-7.13569 -0.93306,-2.10791 -2.84736,-4.19785 -4.25402,-4.6443 -3.2544,-1.03291 -4.51911,-7.26883 -1.98761,-9.80033 1.05655,-1.05655 1.921,-2.70391 1.921,-3.66079 0,-2.63169 4.23254,-6.76001 6.16887,-6.01697 0.93815,0.36 2.55327,-0.92912 3.58917,-2.86472 1.72316,-3.21974 1.55356,-3.84946 -1.9927,-7.39906 -2.13188,-2.1339 -5.48208,-4.93508 -7.44489,-6.22485 -1.99278,-1.30947 -4.46369,-5.01897 -5.59536,-8.40013 -2.02309,-6.04455 -5.90795,-10.95517 -8.66677,-10.95517 -0.80221,0 -1.45856,-0.91371 -1.45856,-2.03047 0,-1.11676 -0.95186,-2.56315 -2.11524,-3.21421 -1.16338,-0.65106 -2.41241,-3.67492 -2.77561,-6.71968 -0.95214,-7.98182 -3.96455,-18.83613 -5.22762,-18.83613 -2.09786,0 -0.98564,-6.34333 1.71833,-9.80016 3.41651,-4.36775 3.41576,-4.46174 -0.068,-8.47858 l -2.86808,-3.30692 3.21525,-2.42528 c 3.07995,-2.32321 3.3477,-2.30084 6.36262,0.53153 1.73105,1.62623 3.54768,2.55646 4.03697,2.06718 1.83725,-1.83725 5.87327,1.7589 5.13641,4.57662 -1.02393,3.91552 2.42122,4.84288 8.52182,2.29388 l 5.06351,-2.11566 0,4.12863 c 0,2.6286 0.7206,4.12862 1.98337,4.12862 1.09085,0 2.2434,0.78011 2.56122,1.73357 0.4542,1.3626 1.36722,1.3739 4.26673,0.0528 2.29402,-1.04522 4.00373,-1.17134 4.52152,-0.33354 0.45795,0.74098 1.98807,1.34723 3.40027,1.34723 1.41219,0 2.92041,0.91932 3.35158,2.04294 0.43117,1.12362 2.86111,2.6077 5.39987,3.29796 2.53876,0.69027 4.44717,2.00973 4.24091,2.93214 -0.48211,2.15611 3.0743,5.72718 5.70367,5.72718 1.11574,0 2.77088,0.89438 3.6781,1.98751 1.63254,1.9671 7.91667,2.07301 13.71962,0.23122 2.07411,-0.65829 3.01743,-0.16874 3.54229,1.83832 0.91035,3.48118 12.85546,9.52607 19.0953,9.66328 5.50192,0.12098 7.37552,2.26995 5.73684,6.57999 -0.63439,1.66858 -0.6372,3.86907 -0.006,4.88999 0.63096,1.02091 0.82,2.70887 0.42009,3.75102 -0.39991,1.04215 0.0505,2.83181 1.00097,3.97702 2.24372,2.70352 -0.0892,5.6908 -6.55345,8.39175 -5.47199,2.28635 -6.00582,5.2287 -1.33478,7.35697 2.58921,1.17973 3.17379,2.31588 2.63683,5.12481 -0.37939,1.98497 -1.60642,3.60903 -2.72667,3.60903 -1.12025,0 -3.04944,1.01262 -4.28709,2.25027 -1.82553,1.82553 -1.96173,3.01466 -0.72162,6.3001 1.27117,3.3677 1.16791,4.04983 -0.61307,4.04983 -1.41316,0 -1.90561,0.90283 -1.44765,2.65405 0.4707,1.79999 -0.37779,3.22768 -2.63676,4.43664 -3.57376,1.91262 -4.42387,6.65649 -1.68386,9.39649 1.26258,1.26258 1.05554,2.30044 -0.88712,4.44706 -1.39374,1.54006 -3.00381,2.5098 -3.57793,2.15497 -0.57412,-0.35483 -2.63768,0.94869 -4.58569,2.8967 l -3.54184,3.54183 -3.56369,-3.56369 c -3.53498,-3.53498 -10.69108,-4.92793 -10.69108,-2.08105 0,0.81546 -0.67089,1.06802 -1.49086,0.56125 -0.81998,-0.50677 -3.71758,-0.50367 -6.43912,0.007 -4.7253,0.88647 -4.90896,1.13773 -4.07626,5.57642 0.66221,3.52987 0.33129,4.85562 -1.37551,5.51058 -2.93675,1.12693 -5.16582,1.0606 -7.02378,-0.20901 l 0,3e-5 z\", name : \"Шумадија\" }, \"17\" : { path : \"m 394.05035,581.27019 c -0.94942,-0.94968 -3.11246,-1.83758 -4.80675,-1.9731 -1.69429,-0.13552 -4.97055,-0.63987 -7.28059,-1.12077 -2.31003,-0.48091 -5.93863,-1.0952 -8.06354,-1.3651 -3.68402,-0.46792 -9.26977,-5.49484 -9.40928,-8.4679 -0.0361,-0.77002 -0.44557,-2.81755 -0.90987,-4.55008 -0.6008,-2.24188 -0.23874,-3.15005 1.25585,-3.15005 1.15502,0 2.42954,-1.26002 2.83226,-2.80004 0.41138,-1.57312 1.90966,-2.80005 3.4193,-2.80005 3.11831,0 8.77525,-5.51841 8.77525,-8.56036 0,-1.14389 -0.72931,-2.80912 -1.62069,-3.7005 -1.22758,-1.22757 -1.1891,-2.14073 0.15863,-3.76464 0.97863,-1.17918 2.3424,-1.79596 3.0306,-1.37062 0.6882,0.42533 1.61896,-0.36912 2.06835,-1.76545 0.44939,-1.39632 1.45427,-3.87754 2.23306,-5.51382 0.95988,-2.01674 0.95046,-3.84491 -0.0293,-5.67552 -1.72142,-3.2165 -0.54744,-5.53479 3.15877,-6.23771 2.77769,-0.52682 5.55269,-7.38932 4.32505,-10.69576 -0.36424,-0.98102 -2.09373,-2.3162 -3.84333,-2.96708 -3.00868,-1.11927 -2.87757,-1.32714 2.41901,-3.83543 l 5.60009,-2.65203 0.0658,-10.48115 c 0.0362,-5.76464 0.80801,-12.21342 1.71514,-14.33062 1.75429,-4.09446 0.85619,-12.2508 -1.34896,-12.2508 -2.56918,0 -0.50559,-7.66221 2.20204,-8.17625 3.30632,-0.62769 9.26614,2.46616 9.26614,4.81023 0,0.96851 2.03749,2.77736 4.52777,4.01967 4.1941,2.0923 4.65467,2.08522 6.24961,-0.096 0.94701,-1.29511 1.91408,-2.93148 2.14904,-3.63636 0.87908,-2.63724 4.99035,0.6111 5.78177,4.56823 0.47821,2.39104 1.71524,4.11056 2.95715,4.11056 2.57865,0 2.64428,0.62259 0.438,4.1554 -2.13362,3.41648 -1.07324,4.47974 5.15176,5.16573 3.73502,0.41159 4.94541,0.0229 4.94541,-1.58803 0,-2.76155 3.34888,-2.74551 5.64992,0.0271 0.98599,1.18804 2.77746,1.97043 3.98105,1.73864 2.21806,-0.42717 11.36936,8.55394 11.36936,11.15791 0,2.02703 5.44839,3.55814 11.44573,3.21647 4.20791,-0.23973 5.59365,0.39062 7.60414,3.45903 2.10089,3.20635 3.15792,3.63868 7.26634,2.97198 3.29791,-0.53518 5.48209,-0.10594 6.95479,1.36677 1.18084,1.18083 3.35162,1.83195 4.82396,1.44693 3.44847,-0.9018 4.98258,2.85569 2.08218,5.09996 -2.2483,1.73969 -5.92049,13.30572 -4.63325,14.59296 0.40005,0.40005 -1.41228,3.52957 -4.02739,6.95448 -2.61512,3.42492 -4.4432,7.03903 -4.0624,8.03137 0.4084,1.06428 -1.12151,2.55558 -3.73033,3.63619 -4.2944,1.7788 -4.39719,2.02414 -3.54372,8.45793 0.76463,5.76401 0.41751,7.17441 -2.66821,10.84159 -3.00677,3.57334 -4.50351,4.20113 -9.82433,4.12069 -3.99263,-0.0604 -7.21083,0.75007 -8.8426,2.2268 -1.41099,1.27694 -3.21135,2.3217 -4.0008,2.3217 -0.78944,0 -3.01988,1.41752 -4.95652,3.15005 -1.93664,1.73253 -5.45496,4.20103 -7.81847,5.48557 l -4.2973,2.33552 -0.96982,-4.41555 c -1.63735,-7.45481 -6.16593,-8.6531 -16.56878,-4.38418 -2.44075,1.00159 -2.58898,0.61127 -1.75305,-4.61633 0.50222,-3.14074 1.29487,-6.70521 1.76143,-7.92105 1.0748,-2.8009 -2.9825,-4.52467 -5.57859,-2.37011 -1.04536,0.86757 -2.2306,4.03733 -2.63387,7.04392 -0.52031,3.87925 -2.09528,6.68353 -5.42413,9.65786 -2.58001,2.30524 -5.00931,3.679 -5.39844,3.0528 -0.38913,-0.6262 -1.94093,-1.35902 -3.44843,-1.62848 -2.28461,-0.40838 -2.81658,0.43048 -3.1954,5.03882 -0.53875,6.55398 -0.72841,6.84696 -2.97668,4.59807 z\", name : \"Поморавље\" }, \"18\" : { path : \"m 618.08098,664.43062 c -1.65785,-1.43784 -3.01427,-3.32787 -3.01427,-4.20007 0,-0.87218 -1.26002,-1.5858 -2.80004,-1.5858 -1.55558,0 -2.80004,0.93335 -2.80004,2.10003 0,2.67158 -2.88266,2.6917 -6.38252,0.0445 -1.4947,-1.13051 -4.05801,-2.07553 -5.69625,-2.10003 -4.49368,-0.0672 -6.42557,-3.30022 -5.36144,-8.97248 0.79272,-4.22556 0.37018,-5.45597 -2.92114,-8.50625 -3.8458,-3.56418 -9.03912,-4.80867 -9.03912,-2.1661 0,2.15136 -2.33398,1.66608 -5.05015,-1.05002 -1.76415,-1.7641 -4.34483,-2.36717 -9.2176,-2.15407 -5.23156,0.2288 -7.93692,-0.49763 -11.92013,-3.20071 -2.83395,-1.92316 -6.13365,-3.29722 -7.33266,-3.05344 -1.30411,0.26513 -3.02381,-1.29596 -4.28006,-3.88532 -1.15502,-2.38069 -4.15339,-6.80302 -6.66305,-9.82739 -3.8267,-4.61154 -4.95627,-5.24416 -7.00011,-3.92041 -2.39036,1.54818 -2.62629,2.75472 -1.56533,8.00536 0.29054,1.43789 -0.55732,3.31401 -1.88412,4.16915 -2.75613,1.77635 -5.28337,-0.6913 -8.73963,-8.53352 -2.05353,-4.65944 -4.20758,-5.40292 -13.58063,-4.68741 -2.69252,0.20554 -3.98869,-0.52292 -4.65263,-2.6148 -0.50618,-1.59484 -2.76421,-4.9185 -5.01784,-7.38591 -2.25363,-2.46741 -4.09751,-5.50081 -4.09751,-6.7409 0,-1.24008 -0.43624,-2.69094 -0.96942,-3.22412 -1.78559,-1.78559 -1.90799,-6.9843 -0.18945,-8.04642 1.30567,-0.80695 1.32469,-1.87349 0.082,-4.60078 -1.01072,-2.2183 -1.11217,-3.86271 -0.2704,-4.38295 2.34454,-1.44902 1.47739,-4.10092 -2.91268,-8.90742 -3.66036,-4.00759 -3.96479,-4.88891 -2.16307,-6.26211 1.15326,-0.87896 2.77311,-3.41875 3.59968,-5.64397 1.18427,-3.18819 1.06425,-4.53051 -0.56614,-6.33208 -2.50595,-2.76903 -1.46263,-4.63658 4.08944,-7.32015 3.01825,-1.45885 4.10623,-2.89845 3.86657,-5.1162 -0.18342,-1.69737 0.28908,-3.08612 1.05002,-3.08612 0.76093,0 1.40342,-0.78752 1.42776,-1.75003 0.0243,-0.96252 1.63746,-3.56199 3.58473,-5.77661 2.90939,-3.30882 4.8271,-4.09599 10.75832,-4.41602 6.48627,-0.34998 7.68699,0.0662 11.84677,4.10664 2.54593,2.47285 6.9111,5.32132 9.7004,6.32994 4.55071,1.64556 5.21578,1.57595 6.47715,-0.67799 1.2083,-2.15912 1.74507,-1.64387 3.8224,3.66923 3.44592,8.81344 12.82173,14.12878 14.66695,8.31499 0.48879,-1.54002 2.10627,-2.80004 3.5944,-2.80004 2.11879,0 2.70617,-0.98699 2.70788,-4.55007 0.001,-2.50254 1.23502,-6.75511 2.74183,-9.45016 1.50681,-2.69504 3.15434,-6.00259 3.66117,-7.35011 0.50683,-1.34752 1.79304,-2.45004 2.85825,-2.45004 1.26438,0 1.9153,-1.57963 1.87496,-4.55007 -0.0879,-6.47191 -3.41503,-18.30921 -5.32519,-18.94593 -2.31089,-0.7703 -1.99125,-4.05978 0.4869,-5.01073 1.15502,-0.44322 2.10003,-1.76053 2.10003,-2.92736 0,-1.76048 0.95825,-1.62204 5.63098,0.81353 4.60223,2.39881 7.00782,2.763 13.16729,1.99343 6.2853,-0.7853 7.96508,-0.51035 10.11928,1.65632 1.42062,1.42886 4.31548,3.34324 6.43302,4.25419 4.56998,1.96596 4.74388,3.02894 1.13011,6.90787 -2.57442,2.76332 -3.14159,9.01387 -1.01121,11.14425 1.95142,1.95141 0.81082,4.6645 -1.96097,4.6645 -5.47727,0 -8.30809,2.6094 -8.30809,7.65824 0,2.61782 -0.70408,6.53322 -1.56462,8.70088 -0.86054,2.16766 -1.76173,6.14624 -2.00264,8.84128 -0.90304,10.1019 -2.2362,16.7607 -3.51375,17.55027 -2.23672,1.38237 -1.46623,7.47698 1.72641,13.656 1.67505,3.24187 3.13378,7.15434 3.24162,8.69436 0.10784,1.54003 0.31236,4.19565 0.45451,5.90138 0.30738,3.68864 8.11695,12.99892 10.90364,12.99892 1.07525,0 1.9957,0.47251 2.04543,1.05002 0.0498,0.57751 0.36337,4.51507 0.69695,8.75014 1.10619,14.04378 2.17881,18.82837 5.96331,26.60042 2.66707,5.47722 4.65885,7.82928 6.89953,8.1475 1.73253,0.24605 3.15005,1.32641 3.15005,2.40079 0,2.49303 4.37956,4.85196 9.00811,4.85196 1.97565,0 3.59209,0.48816 3.59209,1.0848 0,1.44378 -13.87113,15.71546 -15.27438,15.71546 -0.60361,0 -2.45386,-1.17641 -4.11171,-2.61426 z\", name : \"Зајечар\" }, \"19\" : { path : \"m 277.15835,780.19301 c -1.38892,-0.77727 -3.68377,-1.11028 -5.09966,-0.74002 -3.0908,0.80826 -3.97324,-2.31355 -3.37972,-11.95651 0.26747,-4.34573 -0.16715,-6.72604 -1.25425,-6.86924 -0.91495,-0.12054 -3.33993,-0.34083 -5.38883,-0.48957 -2.0489,-0.14874 -8.90392,-2.91713 -15.23337,-6.15198 -8.4273,-4.30701 -12.51253,-5.66093 -15.26007,-5.05748 -2.98114,0.65477 -4.06795,0.16601 -5.29,-2.37902 -2.54777,-5.30594 -3.13223,-7.97483 -1.91162,-8.72922 0.63692,-0.39363 1.51052,-2.47807 1.94131,-4.63206 1.06253,-5.31262 6.17917,-11.54216 9.48016,-11.54216 1.48414,0 2.77718,-0.63001 2.87344,-1.40002 0.65856,-5.26854 2.86189,-8.40014 5.91016,-8.40014 1.64206,0 5.6875,-1.10251 8.98988,-2.45003 6.54225,-2.66954 7.56746,-6.41425 2.54808,-9.30717 -1.47246,-0.84865 -3.93622,-2.74676 -5.47504,-4.218 -2.79537,-2.67263 -2.79517,-2.67717 0.22716,-5.12449 1.66375,-1.34723 3.025,-3.42139 3.025,-4.60925 0,-2.99511 2.99848,-9.29161 4.42479,-9.29161 0.64641,0 1.1753,0.71806 1.1753,1.59568 0,2.10336 4.29807,5.30372 7.19834,5.3599 1.30431,0.0253 2.67818,-1.46918 3.17672,-3.45553 0.48315,-1.92503 1.71035,-3.50005 2.7271,-3.50005 1.01675,0 2.56626,-1.57503 3.44336,-3.50006 0.87711,-1.92503 2.45213,-3.50005 3.50006,-3.50005 2.40737,0 5.53488,-6.66124 4.15753,-8.85505 -0.56808,-0.90482 -0.85148,-2.74764 -0.6298,-4.09516 0.22169,-1.34752 -0.12745,-2.45004 -0.77588,-2.45004 -0.64841,0 -1.13777,-3.62255 -1.08744,-8.05013 0.0777,-6.84041 -0.53845,-8.89166 -4.1005,-13.65021 -2.3056,-3.08005 -5.3209,-6.42333 -6.70068,-7.42951 -3.27478,-2.38808 -3.19848,-5.46308 0.16203,-6.52966 2.8824,-0.91484 4.00877,-2.94864 5.81148,-10.49332 0.75948,-3.17861 0.61416,-5.50911 -0.42134,-6.75681 -1.83417,-2.21004 0.59137,-4.3432 5.23936,-4.60779 10.62316,-0.60473 9.83242,0.025 9.4328,-7.5117 -0.20205,-3.81052 -1.1418,-7.40684 -2.08834,-7.99183 -2.57627,-1.59223 0.20044,-3.70088 6.63339,-5.03745 4.69456,-0.97539 5.66302,-1.80238 6.41471,-5.47773 0.48694,-2.3809 2.19413,-5.73371 3.79374,-7.4507 1.59962,-1.71698 2.59718,-3.9328 2.21681,-4.92402 -0.38037,-0.99123 1.02674,-3.39555 3.1269,-5.34293 3.65116,-3.38555 3.9601,-3.43788 7.05056,-1.19425 1.77764,1.29055 3.25187,3.232 3.27607,4.31434 0.0744,3.3282 7.03122,11.33232 9.84952,11.33232 1.46461,0 4.30279,-0.74717 6.30706,-1.66037 2.95128,-1.3447 3.56272,-2.47598 3.21593,-5.9501 -0.41214,-4.12872 -0.22251,-4.28971 5.05292,-4.28971 3.01462,0 5.73389,-0.7552 6.04282,-1.67821 1.21356,-3.62587 8.46445,5.21837 9.40158,11.46751 0.50162,3.3451 1.82618,6.84066 2.94346,7.76792 2.49296,2.06898 2.65611,4.26806 0.28139,3.79311 -1.74115,-0.34823 -1.98049,0.44657 -2.28855,7.60012 -0.0888,2.06254 -1.10651,4.69508 -2.26152,5.8501 -2.61065,2.61064 -2.75593,7.90012 -0.21699,7.90012 1.03568,0 3.02932,1.26662 4.43033,2.81472 2.47152,2.73101 2.45397,2.91404 -0.59059,6.15483 -2.69287,2.86642 -3.00044,4.25662 -2.16876,9.8027 0.53303,3.55442 1.52644,6.80702 2.20761,7.22801 2.56973,1.58818 1.07068,3.30481 -3.66111,4.1925 -4.08774,0.76686 -5.34714,0.37142 -7.60074,-2.3866 -2.10279,-2.57345 -3.07855,-2.93489 -4.40474,-1.63157 -0.94346,0.92719 -3.41072,1.33276 -5.52967,0.90897 -4.70226,-0.94045 -6.26824,1.2181 -3.94515,5.43803 2.26381,4.11224 2.30158,6.0866 0.2576,13.46508 -0.92727,3.34732 -1.34007,6.98738 -0.91733,8.08902 1.04719,2.72894 5.38519,4.88837 7.88953,3.92736 1.58047,-0.60648 2.17015,0.68382 2.56155,5.60511 0.27965,3.51613 0.0314,6.39296 -0.55165,6.39296 -0.58306,0 -1.06011,0.94501 -1.06011,2.10003 0,1.15502 -0.67818,2.10003 -1.50708,2.10003 -0.90672,0 -1.33619,2.36673 -1.07811,5.94121 0.4051,5.61054 0.19677,5.985 -3.743,6.72794 -2.48512,0.46863 -4.00435,1.54115 -3.75741,2.65258 0.31094,1.39949 -0.8526,1.66022 -4.65516,1.04316 -4.50691,-0.73137 -5.54041,-0.28661 -9.30973,4.0064 -3.72547,4.24309 -5.05372,4.82911 -10.94531,4.82911 -4.49473,0 -6.9563,0.65413 -7.46669,1.98417 -0.41876,1.09129 0.0949,2.31278 1.14157,2.7144 1.08509,0.4164 1.59896,1.89272 1.19563,3.43504 -0.53175,2.03342 0.20253,2.93316 2.95824,3.6248 2.01606,0.506 4.20765,2.34581 4.87021,4.08849 0.66256,1.74266 2.21531,4.00724 3.45054,5.03239 3.2016,2.65709 2.82337,7.23228 -0.67348,8.14673 -2.43607,0.63704 -2.78066,1.50282 -2.0815,5.22968 0.64449,3.43542 0.0935,5.33248 -2.38704,8.21932 -2.23769,2.60417 -3.67173,3.30626 -4.68451,2.29348 -2.12382,-2.12382 -5.22641,-0.47185 -8.03114,4.27619 -1.35031,2.28588 -3.58187,4.15616 -4.95901,4.15616 -4.40138,0 -10.67305,10.246 -7.60544,12.42498 0.6777,0.48137 2.33995,2.61582 3.69389,4.74321 2.41156,3.78916 2.39663,3.89279 -0.73234,5.0855 -1.75674,0.66964 -4.78658,2.8125 -6.73299,4.76193 -2.77836,2.78267 -4.08164,3.24069 -6.06423,2.13117 z\", name : \"Рашка\" }, \"20\" : { path : \"m 354.16257,709.74556 c -1.15502,-1.15502 -2.98505,-2.10003 -4.06673,-2.10003 -2.84944,0 -3.62519,-1.19376 -2.80756,-4.3204 0.52952,-2.0249 1.47029,-2.52051 3.53842,-1.86411 2.50883,0.79627 2.70773,0.45583 1.81741,-3.11079 -0.54985,-2.2027 -2.00965,-5.12549 -3.24399,-6.49509 -2.54605,-2.82502 -4.01924,-17.81015 -1.75092,-17.81015 0.77731,0 1.41329,-0.94501 1.41329,-2.10003 0,-1.15502 0.60033,-2.10003 1.33406,-2.10003 1.20289,0 0.45277,-13.79835 -0.83089,-15.28426 -0.43351,-0.50181 -2.65549,-0.88891 -8.03222,-1.39934 -0.67946,-0.0645 -0.74776,-2.7771 -0.15276,-6.06676 1.67937,-9.28501 1.79955,-12.76564 0.52642,-15.24622 -0.94903,-1.84912 -0.29924,-2.43143 3.33851,-2.99179 2.80586,-0.43222 5.37753,0.0609 6.78887,1.30184 2.73323,2.40317 11.93965,2.06154 14.08433,-0.52264 1.1048,-1.3312 0.85172,-3.93924 -0.93281,-9.61273 l -2.44896,-7.78588 3.70643,-3.86868 c 3.48816,-3.64085 3.87173,-8.52465 0.66952,-8.52465 -0.68763,0 -2.459,-1.20877 -3.93637,-2.68614 -2.58945,-2.58945 -2.59492,-2.7687 -0.15188,-4.97963 1.40795,-1.27417 2.23472,-3.43896 1.86028,-4.87085 -0.3707,-1.41756 0.002,-3.84011 0.82777,-5.38345 1.18119,-2.20709 2.62762,-2.70257 6.77596,-2.32113 12.71287,1.16895 18.78669,2.45319 20.71304,4.37954 3.121,3.121 7.03881,1.7253 6.57548,-2.34248 -0.61078,-5.36234 0.69845,-7.66079 3.18719,-5.59532 1.69234,1.40452 2.9698,0.92452 7.03226,-2.64237 5.46232,-4.79598 6.37393,-5.09158 8.65799,-2.80753 1.13483,1.13483 2.95375,1.08823 6.77727,-0.17365 4.53337,-1.49614 5.39582,-1.42159 6.5061,0.56237 1.44533,2.58266 7.89111,9.26032 8.93876,9.26032 0.3771,0 2.20795,-0.99746 4.06857,-2.21658 3.12136,-2.0452 3.6554,-2.01813 6.90685,0.35001 3.7781,2.75171 5.05209,7.93143 1.62758,6.61732 -1.28899,-0.49463 -2.81818,0.99575 -4.36392,4.25313 -1.94001,4.08828 -2.05202,5.40928 -0.60635,7.1512 0.97527,1.17514 1.89541,3.84858 2.04475,5.94097 0.14933,2.0924 0.37013,4.89488 0.49066,6.22773 0.12052,1.33285 1.79416,2.81867 3.71919,3.30183 2.19024,0.54971 3.50005,1.8695 3.50005,3.52672 0,1.45655 0.73502,2.64827 1.63336,2.64827 0.89835,0 1.20759,0.42577 0.68721,0.94616 -0.52039,0.52038 0.33744,2.31247 1.90627,3.98242 2.6921,2.86561 2.64015,7.67162 -0.0829,7.67162 -1.81095,0 -1.17349,8.69107 0.94477,12.88069 2.57543,5.09383 2.52319,5.252 -2.28864,6.92941 -2.31004,0.80529 -4.20007,2.33553 -4.20007,3.40056 0,1.99419 -6.18338,4.27983 -9.65963,3.5706 -1.07773,-0.21988 -2.73822,-1.17851 -3.69,-2.13028 -2.8463,-2.8463 -19.34196,-1.66346 -25.22726,1.80895 -2.74112,1.6173 -5.79521,2.94054 -6.78687,2.94054 -2.44818,0 -6.43706,4.59247 -6.43706,7.4111 0,1.2598 -1.18755,2.9261 -2.639,3.70289 -1.45145,0.7768 -3.07472,3.14837 -3.60725,5.27017 -0.85561,3.409 -8.27069,11.61629 -10.49503,11.61629 -0.4602,0 -1.91559,-1.26002 -3.2342,-2.80005 -2.6119,-3.05047 -5.93371,-3.6511 -7.36697,-1.33204 -0.62536,1.01186 -1.49328,0.98167 -2.79318,-0.0972 -2.55537,-2.12077 -7.86888,0.66881 -6.76304,3.55059 0.43872,1.14326 0.10025,2.07867 -0.75214,2.07867 -0.92643,0 -1.54981,2.81568 -1.54981,7.00011 0,3.85006 -0.61384,7.00011 -1.36407,7.00011 -0.75024,0 -2.34145,1.89003 -3.53601,4.20007 -2.44379,4.72577 -3.76603,5.1341 -6.80011,2.10003 z\", name : \"Расина\" }, \"21\" : { path : \"m 562.56588,727.45629 c -6.54562,-2.12837 -21.70034,-15.10154 -21.70034,-18.57653 0,-0.85761 -1.03079,-1.13826 -2.33811,-0.63659 -1.28596,0.49347 -2.80226,0.14622 -3.36954,-0.77168 -0.77568,-1.25506 -2.24451,-1.09325 -5.92361,0.65259 -5.99597,2.84528 -6.24138,2.84915 -8.94959,0.14094 -1.29525,-1.29525 -3.10196,-1.77704 -4.45007,-1.18668 -1.24823,0.54662 -4.15955,1.23896 -6.46958,1.53851 -3.77957,0.49012 -4.47553,-0.0568 -6.95142,-5.46342 -1.51325,-3.30444 -2.8314,-8.11451 -2.92923,-10.68904 -0.18354,-4.83025 -2.31044,-7.16051 -6.56962,-7.19778 -1.34752,-0.0118 -2.45003,-0.65145 -2.45003,-1.42146 0,-0.77001 -0.91647,-1.40002 -2.0366,-1.40002 -1.2272,0 -2.40973,1.98898 -2.97547,5.00465 -0.66943,3.56833 -1.3707,4.57284 -2.44348,3.50006 -0.82753,-0.82753 -2.56147,-1.5046 -3.85321,-1.5046 -1.29174,0 -3.12672,-0.93756 -4.07774,-2.08347 -1.40034,-1.6873 -1.29983,-2.2482 0.52859,-2.94983 3.13192,-1.20183 2.83834,-4.76686 -0.39255,-4.76686 -3.35473,0 -4.97362,-3.3778 -5.01633,-10.4665 -0.0233,-3.86569 -0.67517,-5.65646 -2.13357,-5.86112 -1.15502,-0.16208 -5.16265,-0.69885 -8.90584,-1.19281 -6.76775,-0.8931 -6.78733,-0.91074 -3.50006,-3.15453 1.81817,-1.24102 3.80957,-3.08194 4.42534,-4.09093 0.61577,-1.00899 2.04889,-1.83453 3.1847,-1.83453 2.81287,0 5.32554,-6.77499 3.38145,-9.11748 -2.53573,-3.05537 -2.94864,-11.40474 -0.65803,-13.30578 2.6657,-2.21233 2.65272,-6.15276 -0.0276,-8.37723 -1.15502,-0.95858 -2.10004,-2.57944 -2.10004,-3.60191 0,-1.02247 -0.78751,-2.36286 -1.75003,-2.97863 -0.96251,-0.61577 -1.75002,-2.0646 -1.75002,-3.21961 0,-1.15502 -1.41753,-2.30136 -3.15005,-2.54742 -3.5123,-0.49882 -3.95063,-1.69209 -1.51592,-4.12679 1.24549,-1.2455 1.08092,-1.84642 -0.69197,-2.52674 -1.27936,-0.49094 -2.04696,-1.34428 -1.70578,-1.89631 0.34117,-0.55203 -0.22887,-2.64051 -1.26677,-4.64105 -1.6706,-3.2201 -1.57582,-3.97146 0.8262,-6.54973 1.49231,-1.6018 3.31875,-2.91236 4.05877,-2.91236 1.5113,0 1.78708,-4.22031 0.49569,-7.58562 -0.46739,-1.218 -1.72741,-2.21454 -2.80005,-2.21454 -1.07263,0 -1.95025,-1.20016 -1.95025,-2.66701 0,-3.87044 11.25477,-10.02675 19.44539,-10.63656 5.6487,-0.42055 7.30605,0.0659 10.58604,3.10731 3.37975,3.13388 3.59299,3.77149 1.62894,4.87063 -2.81988,1.57808 -2.86964,3.51587 -0.15986,6.22564 1.86669,1.8667 1.86132,2.33874 -0.0483,4.2484 -1.3566,1.35659 -1.68186,2.73865 -0.88257,3.75006 0.69619,0.88093 1.68074,3.90687 2.18789,6.7243 0.54042,3.00226 2.70696,6.86765 5.23423,9.33853 2.37169,2.31876 3.93434,4.82725 3.47256,5.57443 -1.16089,1.87836 5.50861,6.0179 8.0961,5.02499 1.15849,-0.44456 2.92403,-0.27995 3.92342,0.36579 0.99939,0.64574 3.0456,1.17408 4.54714,1.17408 1.57349,0 3.05628,1.22121 3.50006,2.88261 0.42349,1.58544 2.11862,4.57538 3.76695,6.64431 2.71532,3.40817 3.60344,3.67856 9.45015,2.87718 3.54925,-0.48648 6.45318,-1.45439 6.45318,-2.15092 0,-0.69653 -1.37276,-3.12319 -3.0506,-5.39258 -1.67783,-2.26938 -2.64873,-4.52801 -2.15757,-5.01918 1.14293,-1.14293 8.65492,7.71903 8.68531,10.24614 0.0126,1.04819 0.96794,2.50521 2.12295,3.2378 1.15502,0.7326 1.55039,1.34164 0.87859,1.35343 -0.67179,0.0118 -0.42534,0.98068 0.54767,2.15309 1.04419,1.25816 2.86272,1.78454 4.43799,1.28457 1.71829,-0.54537 4.4376,0.502 7.63476,2.9406 4.21702,3.21647 5.87326,3.66329 10.98281,2.96295 5.29154,-0.72528 6.10943,-0.47095 6.78429,2.10971 0.50253,1.92167 1.5055,2.65117 2.90608,2.11371 1.1763,-0.45138 2.51108,-0.2182 2.96619,0.51818 1.30713,2.11498 4.86229,1.55845 4.86229,-0.76116 0,-2.71167 1.3572,-2.61268 5.2255,0.38114 l 3.12547,2.41891 -2.37003,11.4314 c -2.34133,11.29293 -2.42555,11.43789 -6.95251,11.96638 -2.59907,0.30343 -6.8215,-0.5541 -9.75556,-1.98125 -2.8452,-1.38393 -7.66627,-2.51623 -10.71349,-2.51623 l -5.5404,0 0.89214,6.50886 c 0.49068,3.57987 1.61481,7.37963 2.49808,8.44389 1.23518,1.4883 1.09037,2.32895 -0.62724,3.6413 -1.22824,0.93845 -3.14957,4.41721 -4.26962,7.73057 -1.92475,5.69386 -1.87596,6.17382 0.8894,8.75014 1.60921,1.49921 3.59456,2.75145 4.41188,2.78274 0.81732,0.0314 3.66727,1.92132 6.33323,4.20006 2.90784,2.4855 6.44181,4.14317 8.83276,4.14317 2.19207,0 3.62311,0.58649 3.1801,1.30328 -0.44301,0.71681 -0.16519,1.69901 0.61739,2.18267 2.51366,1.55352 1.52459,4.38659 -2.23363,6.39793 -2.01106,1.07628 -4.2005,3.38777 -4.86542,5.13665 -1.23243,3.24153 -2.61408,3.60437 -7.57835,1.99019 l 0,0 z\", name : \"Нишава\" }, \"22\" : { path : \"m 622.11135,770.99653 c -0.0288,-1.13026 -2.24341,-1.75002 -6.25348,-1.75002 -7.7494,0 -12.07125,-1.60721 -16.65929,-6.19526 -3.47425,-3.47424 -3.50024,-3.63051 -0.8408,-5.0538 2.11617,-1.13254 2.43374,-2.04901 1.38747,-4.00399 -1.61987,-3.02676 -19.33547,-11.77881 -21.87201,-10.80545 -0.97648,0.37471 -2.12279,-0.22394 -2.54736,-1.33034 -0.42456,-1.1064 -2.10423,-2.01163 -3.73258,-2.01163 -3.68622,0 -2.95573,-2.99865 1.18649,-4.87051 4.13371,-1.86802 5.0037,-4.83748 2.2944,-7.83123 -2.10809,-2.32941 -1.96968,-2.64649 2.06628,-4.73356 4.56745,-2.36193 5.28333,-5.06408 2.96034,-11.17402 -1.05029,-2.76246 -2.3426,-3.59119 -5.60009,-3.59119 -2.32909,0 -4.23472,-0.63001 -4.23472,-1.40002 0,-0.77002 -0.59842,-1.40003 -1.32983,-1.40003 -1.89918,0 -14.07041,-8.38244 -14.07041,-9.69042 0,-3.06017 3.24402,-9.78834 4.58962,-9.51898 2.56266,0.51298 2.78922,-4.46518 0.42953,-9.43787 -2.66893,-5.62435 -2.84375,-9.09578 -0.46908,-9.31455 3.72761,-0.3434 7.3902,0.5142 8.27637,1.93791 0.50944,0.81847 5.21682,1.54105 10.46084,1.60575 8.50073,0.10486 9.58271,-0.18599 9.97843,-2.68243 1.48706,-9.38134 1.43897,-9.32505 5.96651,-6.98377 2.29266,1.18558 4.16847,1.78869 4.16847,1.34025 0,-0.44844 1.4002,0.16539 3.11156,1.36407 3.64225,2.55113 9.02459,2.87154 9.78756,0.58265 0.31513,-0.9454 2.15943,-0.0887 4.52117,2.10004 4.4089,4.08603 14.35327,5.4519 12.94338,1.77779 -1.08117,-2.81747 9.01473,-11.96453 11.64724,-10.55261 1.14938,0.61645 4.37658,1.48406 7.17155,1.928 3.89086,0.61802 5.98605,2.11208 8.94054,6.37541 2.12233,3.06253 4.37355,5.56823 5.00272,5.56823 0.62916,0 2.17093,2.36254 3.42616,5.25008 1.25522,2.88755 2.86131,6.1951 3.56908,7.35012 0.70777,1.15502 1.87236,3.44547 2.58798,5.08988 1.90109,4.36853 11.45306,13.23198 14.00245,12.99314 1.20451,-0.11284 2.84992,-0.13262 3.65647,-0.0439 1.26657,0.13925 1.61811,6.10004 0.85479,14.49389 -0.12166,1.33786 -2.66576,3.97565 -5.65355,5.86176 -2.98778,1.88611 -6.06327,5.20156 -6.83442,7.36768 -1.5499,4.35361 -10.14727,13.79392 -15.99392,17.56207 -2.89143,1.86351 -3.97786,3.96624 -4.70183,9.10014 -1.28674,9.12454 -3.93846,13.01984 -8.60057,12.63399 -2.04641,-0.16936 -3.95826,0.40462 -4.24856,1.27553 -0.36692,1.10076 -1.89051,0.90366 -4.99806,-0.64659 -5.52754,-2.7575 -12.04128,-2.39598 -14.47124,0.80318 -1.13259,1.49112 -1.84806,1.74313 -1.8756,0.66067 l 0,-10e-6 z\", name : \"Пирот\" }, \"23\" : { path : \"m 431.3138,773.87752 c -1.34753,-0.34994 -2.45004,-1.77133 -2.45004,-3.15864 0,-2.88654 -8.0357,-5.19686 -10.27766,-2.9549 -1.74863,1.74863 -8.1202,-9.99845 -7.7536,-14.29508 0.50635,-5.93442 -0.17738,-9.23114 -2.36907,-11.42283 -3.10478,-3.10478 -6.07685,-2.73113 -7.55649,0.95002 -1.23071,3.06185 -1.26865,3.04552 -1.35491,-0.58334 -0.0488,-2.05337 -0.71669,-3.9434 -1.48419,-4.20007 -0.7675,-0.25667 -1.66997,-4.08055 -2.00549,-8.49751 -0.68495,-9.01708 -1.54616,-11.11828 -4.32676,-10.55659 -1.05405,0.21293 -2.8887,-0.87288 -4.07699,-2.41291 -2.14654,-2.78193 -2.17689,-2.77917 -4.69182,0.42655 l -2.5313,3.22658 -2.60327,-2.87658 c -2.78644,-3.07898 -11.10913,-4.00123 -12.71148,-1.40858 -0.62314,1.00827 -1.50968,0.96806 -2.83082,-0.12839 -1.61881,-1.3435 -1.54748,-2.18598 0.45031,-5.31806 1.30562,-2.04692 3.46724,-4.53084 4.8036,-5.51983 1.75969,-1.30227 2.20121,-2.94084 1.60104,-5.94171 -0.45579,-2.27895 -0.0258,-6.08184 0.95544,-8.45087 1.45065,-3.50217 2.38295,-4.15703 4.9876,-3.5033 1.76507,0.443 3.65225,0.0779 4.20297,-0.81324 0.69873,-1.13057 1.5468,-0.8688 2.81815,0.86988 1.00024,1.36792 3.4189,2.48712 5.3748,2.48712 4.65247,0 12.81097,-6.29437 13.9282,-10.74576 0.48394,-1.92817 2.50514,-5.13101 4.49155,-7.11743 1.99206,-1.99205 3.26346,-4.51908 2.83518,-5.63517 -0.52081,-1.3572 0.47498,-2.32592 3.02415,-2.94194 2.09035,-0.50515 5.52644,-2.1247 7.63575,-3.59901 4.63562,-3.24009 21.60648,-4.33217 22.70677,-1.46119 0.36887,0.96252 2.23417,1.75003 4.14511,1.75003 1.91093,0 4.0523,1.0326 4.75859,2.29467 0.86112,1.53874 3.76017,2.49317 8.8002,2.89721 8.5784,0.68771 9.24635,1.02691 7.1044,3.6078 -1.9021,2.29189 2.12151,12.20066 4.95427,12.20066 1.44407,0 1.47352,0.55512 0.14255,2.68636 -1.31494,2.10554 -1.29301,3.14984 0.10143,4.83003 1.67966,2.02387 12.52775,7.88385 14.59472,7.88385 0.5269,0 1.00774,-2.67754 1.06853,-5.95009 0.0608,-3.27256 0.42829,-5.16259 0.81668,-4.20007 0.38838,0.96251 2.1552,1.75003 3.92625,1.75003 3.51984,0 5.60016,4.38662 3.21259,6.77418 -0.94694,0.94694 -0.34069,2.91224 1.84545,5.98239 1.79063,2.51469 3.13774,5.99706 2.99361,7.7386 -0.14413,1.74154 0.35131,3.54552 1.10098,4.00884 2.31779,1.43247 -2.62808,7.31092 -6.86384,8.15808 -2.17319,0.43464 -5.86269,2.39862 -8.19889,4.3644 -2.3362,1.96578 -5.64105,3.57415 -7.3441,3.57415 -1.70306,0 -4.33538,1.57503 -5.84961,3.50006 -2.05998,2.61884 -4.07156,3.50005 -7.98969,3.50005 -3.99083,0 -6.19379,0.99915 -9.26046,4.20007 -2.21315,2.31004 -4.69356,4.2201 -5.51201,4.24459 -0.81846,0.0245 -2.67038,0.93978 -4.1154,2.03399 -2.5621,1.94009 -2.55625,2.10986 0.23577,6.84198 2.79843,4.74299 2.80368,4.90627 0.23282,7.23286 -1.44663,1.30918 -2.53523,2.77783 -2.4191,3.26365 0.11613,0.48583 -0.27394,2.93085 -0.86682,5.43339 -0.73273,3.0929 -1.90238,4.55007 -3.65225,4.55007 -1.41587,0 -3.41334,0.24012 -4.43883,0.5336 -1.0255,0.29348 -2.96705,0.24729 -4.31457,-0.10265 z\", name : \"Топлица\" }, \"24\" : { path : \"m 476.20735,816.49726 c -0.33557,-2.3391 -1.27156,-3.06245 -3.63577,-2.80976 -2.24692,0.24015 -3.55917,-0.64682 -4.45919,-3.01405 -1.66328,-4.37477 -3.55701,-5.43491 -10.45387,-5.85225 -8.64949,-0.5234 -22.60286,-4.10946 -20.66061,-5.30983 0.92857,-0.57389 1.41,-2.57817 1.06985,-4.45397 -0.34015,-1.87579 -0.0302,-3.41054 0.68886,-3.41054 0.71902,0 1.30731,-1.58357 1.30731,-3.51905 0,-1.93548 0.57705,-4.61302 1.28233,-5.9501 2.75759,-5.22786 5.71823,-12.74592 5.72701,-14.54281 0.005,-1.03865 1.22415,-3.73144 2.70906,-5.98399 2.45768,-3.72821 2.5145,-4.45392 0.63357,-8.09124 -2.1524,-4.16228 -1.63219,-6.71352 1.36892,-6.71352 0.96551,0 3.56624,-1.89003 5.77939,-4.20007 2.90695,-3.0342 5.32905,-4.20006 8.72571,-4.20006 3.04018,0 5.8403,-1.13852 7.92342,-3.22164 1.7719,-1.77191 3.99487,-2.96391 4.93992,-2.64889 0.94505,0.31502 4.03424,-1.27672 6.86488,-3.5372 2.83063,-2.26047 7.23591,-4.83032 9.7895,-5.71078 4.67983,-1.61355 9.92458,-6.62895 10.01076,-9.57299 0.0256,-0.87512 1.77911,-1.88853 3.89664,-2.25203 2.11753,-0.3635 4.84036,-1.08936 6.05073,-1.61302 1.53814,-0.66547 2.7119,0.16993 3.89881,2.77491 1.5356,3.37027 1.92799,3.52745 4.09943,1.64215 5.53966,-4.80969 16.11134,-3.57054 19.48198,2.28356 2.62812,4.5645 15.89149,13.43416 21.40808,14.3163 l 5.74398,0.9185 -3.07155,3.26952 c -2.54346,2.70739 -2.76605,3.63764 -1.29463,5.4106 0.97732,1.17759 2.88268,2.14107 4.23413,2.14107 1.35146,0 3.23573,0.93808 4.18727,2.08462 0.95156,1.14654 2.32674,1.71587 3.05597,1.26517 1.89476,-1.17102 9.20775,2.12076 10.14655,4.56725 0.4349,1.13333 1.41216,1.67652 2.1717,1.2071 1.68025,-1.03845 7.03894,1.64535 7.03894,3.52532 0,0.74292 -1.26002,1.35077 -2.80005,1.35077 -4.07698,0 -3.41254,2.87618 1.84389,7.98172 5.02141,4.87729 10.41577,7.41852 15.74753,7.41852 1.8749,0 3.40891,0.52019 3.40891,1.15598 0,2.14767 -6.25719,6.66894 -14.00019,10.11615 -4.23504,1.88546 -9.17363,5.16063 -10.97462,7.27817 -1.80099,2.11753 -4.41115,3.85006 -5.80033,3.85006 -1.3892,0 -2.88845,0.94501 -3.33168,2.10003 -1.38157,3.60034 -8.42351,2.4581 -13.95038,-2.26283 -2.80922,-2.39957 -4.76082,-4.92406 -4.33691,-5.60997 1.27905,-2.06955 -3.79008,-3.18643 -6.57328,-1.4483 -3.11651,1.94629 -4.48608,2.08571 -3.41168,0.3473 1.51649,-2.45373 -0.95302,-5.72643 -4.32103,-5.72643 -1.86974,0 -4.96853,1.02805 -6.88619,2.28455 -3.1075,2.03611 -3.74922,2.05598 -5.90084,0.18269 -2.99479,-2.60739 -5.91422,-1.70759 -5.91422,1.82282 0,2.8233 -2.09084,3.62148 -12.39677,4.73246 -10.14271,1.0934 -15.24088,3.34159 -16.19459,7.1415 -0.47435,1.88996 -1.48046,3.43629 -2.2358,3.43629 -0.75535,0 -1.37335,1.8543 -1.37335,4.12068 0,4.8577 -4.31895,8.47952 -10.11167,8.47952 -2.13871,0 -5.14858,1.26002 -6.6886,2.80004 -3.53381,3.53381 -3.90423,3.50472 -4.45723,-0.35 z\", name : \"Јабланица\" }, \"25\" : { path : \"m 476.46451,912.39718 c -9.62204,-3.22982 -10.35053,-3.72717 -12.52234,-8.54937 -1.14633,-2.54526 -2.78282,-4.19806 -3.77839,-3.81602 -2.11637,0.81212 -3.71058,-3.48323 -2.48153,-6.68609 0.48485,-1.26349 2.09394,-2.29726 3.57574,-2.29726 1.48181,0 3.021,-0.85162 3.42041,-1.89248 0.4335,-1.12966 2.05584,-1.63831 4.0249,-1.2619 2.6727,0.51092 3.74202,-0.30368 5.63491,-4.29264 2.07705,-4.37705 2.10982,-5.3553 0.29548,-8.81811 -1.95001,-3.72171 -1.81699,-4.16257 2.99156,-9.91514 2.76776,-3.31113 5.92265,-6.02024 7.01086,-6.02024 1.45989,0 1.75419,-1.12187 1.12265,-4.27956 -0.75802,-3.79012 -0.39379,-4.44064 3.1848,-5.68815 4.23482,-1.47626 6.53013,-6.27102 4.29263,-8.96704 -1.83164,-2.20699 1.41752,-10.27351 4.53691,-11.26357 3.20169,-1.01617 3.11193,-3.22983 -0.30825,-7.60228 -3.47567,-4.44338 -3.47567,-5.90464 0,-8.07523 1.69772,-1.06024 2.80004,-3.26489 2.80004,-5.60009 0,-2.38675 1.10939,-4.54426 2.9172,-5.67325 1.60446,-1.002 2.59142,-2.6708 2.19324,-3.70845 -0.82815,-2.15812 3.21761,-3.45783 13.78133,-4.42726 6.99483,-0.64191 13.30874,-3.56452 13.30874,-6.16039 0,-0.82754 1.02177,-0.74151 2.55339,0.215 1.99189,1.24396 3.66969,1.0649 7.62974,-0.81427 5.75178,-2.7294 8.09267,-2.04777 7.02243,2.04482 -0.59404,2.27161 -0.042,2.79865 2.93148,2.79865 2.01484,0 3.66334,-0.58234 3.66334,-1.29408 0,-1.18653 3.59725,1.40875 9.70408,7.00112 5.25551,4.81278 13.35102,5.74952 16.35067,1.89196 0.8549,-1.0994 2.53143,-1.99891 3.72561,-1.99891 1.19419,0 3.69435,-1.8101 5.55591,-4.02245 4.04088,-4.8023 9.46444,-8.07585 9.46444,-5.71253 0,0.86004 2.17452,5.27396 4.83226,9.8087 2.65773,4.53475 4.27266,8.59084 3.58871,9.01355 -2.76318,1.70774 -5.63081,9.51422 -4.15026,11.29817 0.86408,1.04116 0.93723,2.09203 0.17827,2.56109 -0.70789,0.4375 -1.68351,3.80114 -2.16805,7.47476 -0.48455,3.67361 -1.25519,8.95868 -1.71255,11.74458 -0.73478,4.47575 -0.44963,5.16121 2.45007,5.88946 1.80491,0.45329 6.06047,3.65604 9.4568,7.11722 l 6.17516,6.29304 -2.46565,10.46999 c -1.53224,6.50647 -3.07492,10.24761 -4.07511,9.88255 -0.88522,-0.32308 -2.2405,-0.12153 -3.01173,0.44788 -1.87595,1.38504 -4.96638,7.51431 -5.44991,10.80879 -0.5847,3.98382 -15.86709,6.97631 -19.4513,3.80881 -1.83806,-1.62437 -2.26128,-3.31297 -1.59295,-6.35582 0.90794,-4.13383 0.89717,-4.14168 -4.49704,-3.27949 -3.38111,0.54043 -6.47602,2.19237 -8.25979,4.40874 -1.56895,1.94946 -4.26626,3.54447 -5.99403,3.54447 -1.72777,0 -3.51793,0.98123 -3.97813,2.1805 -0.47403,1.2353 -1.74566,1.8317 -2.93356,1.37586 -1.15325,-0.44254 -2.89528,-0.14196 -3.87117,0.66796 -0.9759,0.80992 -4.91983,1.84512 -8.76429,2.30044 -6.26887,0.74245 -7.6603,0.36662 -13.48863,-3.64338 -7.60559,-5.23278 -11.13475,-5.14857 -11.76139,0.28064 -0.49877,4.32121 -4.34818,5.24313 -7.25713,1.73806 -2.84597,-3.42919 -7.96334,-2.63092 -8.97504,1.40002 -0.56283,2.2425 -1.86333,3.50006 -3.61956,3.50006 -1.5076,0 -3.77309,1.57502 -5.03442,3.50005 -1.35429,2.06691 -3.62191,3.50006 -5.53802,3.50006 -2.01511,0 -3.58147,1.06108 -4.13339,2.80004 -1.01074,3.18456 -0.68771,3.17219 -9.10015,0.34841 l 0,0 z\", name : \"Пчиња\" }, \"26\" : { path : \"m 280.81141,905.76146 c -2.50254,-1.08771 -4.55008,-2.59562 -4.55008,-3.35091 0,-0.7553 -1.38235,-1.81201 -3.0719,-2.34825 -1.68954,-0.53624 -4.10096,-2.24581 -5.35869,-3.79906 -1.71929,-2.12323 -2.88609,-2.48869 -4.70167,-1.47264 -1.32817,0.74328 -4.27184,1.07888 -6.54149,0.74576 -3.73066,-0.54754 -4.12662,-1.1113 -4.12662,-5.87542 0,-3.011 -0.91368,-6.02804 -2.13165,-7.03887 -1.1724,-0.973 -1.80115,-2.81038 -1.39722,-4.08306 0.40393,-1.27268 -1.75586,-7.39455 -4.79955,-13.60417 -4.36059,-8.89632 -6.46212,-11.67466 -9.9114,-13.1034 -4.62987,-1.91775 -9.13341,-7.40071 -7.82184,-9.52289 0.42907,-0.69424 0.24287,-3.13555 -0.41376,-5.42512 -0.92098,-3.21126 -0.59879,-4.937 1.40945,-7.54944 5.17062,-6.72624 3.56124,-8.58551 -13.08464,-15.11625 -6.03427,-2.36745 -4.28627,-10.95119 2.96695,-14.56957 3.71865,-1.85511 4.64947,-1.85654 8.141,-0.0126 2.16826,1.14512 7.56485,2.42365 11.99242,2.84118 6.83433,0.6445 8.05012,0.41262 8.05012,-1.53533 0,-1.26196 0.63001,-2.29448 1.40003,-2.29448 0.77001,0 1.40002,-0.65552 1.40002,-1.45671 0,-0.80119 1.3785,-3.32123 3.06333,-5.60009 2.32187,-3.1405 4.18563,-4.14337 7.70012,-4.14337 2.55024,0 4.63679,-0.63001 4.63679,-1.40003 0,-0.77001 1.57503,-1.40002 3.50006,-1.40002 1.92503,0 3.50005,-0.63001 3.50005,-1.40002 0,-1.93493 3.66684,-1.75334 7.06746,0.35 2.49327,1.54214 3.30292,1.2095 6.81547,-2.80004 2.19235,-2.50254 4.96845,-4.55007 6.16913,-4.55007 1.20068,0 2.48918,-0.49533 2.86334,-1.10073 1.73886,-2.81354 13.48518,0.85342 13.48518,4.2098 0,0.8858 1.20811,2.91116 2.68469,4.50082 2.40324,2.58727 2.52496,3.68916 1.16105,10.51074 -1.14744,5.73892 -1.11896,7.75536 0.11536,8.1668 2.61994,0.87331 1.89987,3.99831 -1.43089,6.20985 -2.98629,1.98283 -3.00605,2.17283 -0.72584,6.97801 3.02385,6.37229 5.39747,8.33984 8.04275,6.66679 3.45814,-2.18715 4.51162,-1.50922 3.76051,2.41996 -0.81081,4.24145 0.0492,7.43885 2.00094,7.43885 0.71983,0 2.62634,1.22749 4.23669,2.72776 2.17029,2.02193 4.05704,2.50423 7.29157,1.86391 3.98092,-0.78807 4.19195,-0.65509 2.4059,1.51607 -1.70007,2.06664 -1.62608,2.62244 0.5621,4.22248 1.81601,1.3279 2.05366,2.1307 0.8508,2.87411 -0.95534,0.59043 -1.28123,2.25346 -0.76211,3.88908 0.58273,1.83601 0.37796,2.53061 -0.57282,1.943 -0.81387,-0.503 -2.16355,0.36312 -2.99929,1.92471 -0.83574,1.56159 -2.63858,2.83925 -4.00632,2.83925 -2.68445,0 -8.61487,-4.85637 -8.61487,-7.05464 0,-1.66803 -7.95692,-1.79523 -8.97774,-0.14352 -0.40857,0.66108 -4.49896,1.54256 -9.08975,1.95884 -12.22696,1.1087 -17.4657,7.67759 -14.01567,17.57434 0.94028,2.69731 1.01028,5.2045 0.19028,6.81606 -2.40135,4.71942 0.72521,11.4483 7.5569,16.26372 5.92526,4.17651 6.13128,4.52589 3.09193,5.24338 -1.79098,0.4228 -3.25633,1.48061 -3.25633,2.35069 0,1.23644 -9.66475,8.97468 -10.91235,8.73716 -0.15831,-0.0301 -2.33536,-0.94474 -4.8379,-2.03245 z\", name : \"Пећ\" }, \"27\" : { path : \"m 328.76217,832.24751 c -1.39371,-1.54003 -3.36563,-2.80005 -4.38206,-2.80005 -1.30636,0 -1.60203,-1.23006 -1.00872,-4.19659 1.09508,-5.47542 -1.53656,-8.91571 -5.28533,-6.90942 -1.47509,0.78944 -3.29896,1.05402 -4.05306,0.58796 -1.79577,-1.10984 -1.77341,-8.66836 0.0289,-9.78227 1.72912,-1.06866 1.86797,-7.70012 0.16122,-7.70012 -0.68134,0 -0.92129,-3.95563 -0.53321,-8.79029 0.56175,-6.99821 0.24346,-9.17382 -1.56124,-10.67159 -1.24676,-1.03472 -2.26683,-2.70628 -2.26683,-3.71458 0,-2.36856 -7.91258,-8.02059 -10.17057,-7.26493 -0.95129,0.31835 -3.46215,-1.27386 -5.57968,-3.53825 -5.88576,-6.29396 -4.65433,-13.55943 2.10958,-12.44654 1.36478,0.22455 2.873,-0.72576 3.38836,-2.13497 0.51082,-1.39682 1.93794,-3.85958 3.17138,-5.47281 1.74845,-2.28685 2.75866,-2.60764 4.58463,-1.45584 3.26337,2.05848 12.47397,-7.22996 11.367,-11.46305 -0.41334,-1.5806 0.2567,-4.31327 1.48899,-6.0726 3.02573,-4.31984 2.81977,-8.61767 -0.55954,-11.6759 -1.54002,-1.3937 -2.80004,-3.68438 -2.80004,-5.09039 0,-1.5306 -1.34788,-2.89468 -3.3591,-3.39946 -2.04627,-0.51358 -3.60246,-2.11617 -3.98179,-4.10051 -0.55492,-2.90286 0.0328,-3.35573 5.39931,-4.16049 4.22082,-0.63295 7.03286,-2.10438 9.40164,-4.91952 3.02054,-3.5897 3.91199,-3.8964 8.38986,-2.88648 5.55004,1.25174 6.55043,0.7971 6.55043,-2.97692 0,-3.85997 2.05317,-3.1102 6.13394,2.23996 4.42401,5.80017 4.43069,5.86703 0.68434,6.84672 -1.99184,0.52088 -2.70368,1.50476 -2.14397,2.96333 0.46085,1.20095 0.22767,2.18355 -0.51818,2.18355 -0.74584,0 -1.35608,1.23147 -1.35608,2.73661 0,2.03072 1.29275,2.97912 5.01185,3.67683 2.75652,0.51713 5.34397,1.8057 5.74988,2.86348 0.40591,1.05779 1.61563,1.92326 2.68827,1.92326 1.07263,0 1.95024,0.52355 1.95024,1.16345 0,0.63989 1.69882,2.05741 3.77516,3.15005 5.34545,2.81294 10.22507,7.5538 10.22507,9.9343 0,2.86339 5.25115,13.3905 7.34883,14.73237 2.76169,1.76664 6.65139,9.61171 6.65139,13.41509 0,1.90444 -0.94502,4.24692 -2.10004,5.20549 -1.15501,0.95858 -2.10003,2.89502 -2.10003,4.30319 0,4.73724 4.18583,18.68294 6.21755,20.71466 1.75112,1.75112 1.52887,2.52665 -1.70634,5.95437 -2.38687,2.52889 -3.83632,5.76414 -4.04519,9.02905 -0.31368,4.90336 -1.33684,6.26284 -8.50534,11.30109 -3.53592,2.48516 -7.36092,1.67576 -7.36092,-1.55763 0,-2.9874 -5.52772,-2.67534 -9.72281,0.54889 -2.62332,2.01621 -4.22221,2.32663 -6.84591,1.3291 -3.94738,-1.50079 -8.63168,1.69235 -8.63168,5.88394 0,1.59043 -1.45091,2.7905 -4.06899,3.36552 -4.25227,0.93396 -6.51883,5.44731 -4.88012,9.7177 1.14762,2.99066 0.0989,2.78143 -2.95108,-0.58876 l 0,0 z\", name : \"Косовска Митровица\" }, \"28\" : { path : \"m 408.79677,946.11598 c -0.51334,-0.51334 -0.93335,-1.92134 -0.93335,-3.1289 0,-1.20755 -1.73252,-5.81314 -3.85006,-10.23465 -3.20322,-6.68848 -4.67331,-8.27843 -8.75014,-9.46351 -7.01127,-2.03807 -7.2798,-1.96533 -13.37663,3.62301 -10.33148,9.46983 -10.49168,9.50994 -13.52202,3.38508 -2.30666,-4.66217 -3.63345,-5.64024 -9.58954,-7.06907 -5.27643,-1.2658 -6.9125,-2.28796 -6.9125,-4.31869 0,-1.46322 0.72805,-2.66041 1.61788,-2.66041 0.88984,0 3.56738,-1.4639 5.9501,-3.25312 2.38272,-1.78921 5.36015,-3.63084 6.61653,-4.09253 2.96366,-1.08906 3.88825,-9.1092 2.07216,-17.97472 -1.1168,-5.45187 -2.00591,-6.91385 -4.28295,-7.04254 -2.45798,-0.13889 -2.50934,-0.25691 -0.35515,-0.81584 1.39332,-0.36151 2.34711,-1.69624 2.13497,-2.98765 -0.21089,-1.28382 0.0558,-3.03323 0.59272,-3.88758 1.36999,-2.18008 -1.95225,-8.79132 -4.89611,-9.74326 -1.34752,-0.43574 -2.45003,-1.69481 -2.45003,-2.79794 0,-1.10312 -0.51654,-2.00569 -1.14787,-2.00569 -0.63133,0 -3.26484,-1.89003 -5.85225,-4.20006 -2.5874,-2.31004 -6.16593,-4.20007 -7.95227,-4.20007 -2.91021,0 -3.27097,-0.69143 -3.46973,-6.65011 -0.122,-3.65755 -0.13616,-7.71466 -0.0315,-9.01578 0.1047,-1.30112 -0.9973,-2.74263 -2.44889,-3.20334 -5.9025,-1.87339 -4.59366,-8.05068 2.05958,-9.72054 2.0447,-0.51319 3.44263,-1.87651 3.44263,-3.35741 0,-4.06797 2.68266,-5.84688 6.31886,-4.19011 2.55798,1.16549 4.00271,0.83506 7.43099,-1.69958 l 4.25567,-3.14635 3.25608,3.78542 c 2.98965,3.47568 3.55095,3.63244 6.85976,1.91581 8.03244,-4.16729 12.38584,-9.14126 13.36609,-15.27145 0.56866,-3.55617 2.29134,-7.22906 4.23589,-9.0312 3.98407,-3.69231 4.00907,-4.14462 0.47739,-8.63442 -1.54002,-1.95783 -2.80004,-4.76603 -2.80004,-6.24045 0,-1.47442 -0.91802,-4.45601 -2.04004,-6.62577 -1.76793,-3.4188 -1.77387,-4.29654 -0.0445,-6.58058 4.13919,-5.46685 1.79412,-19.34834 -4.09418,-24.2352 -2.95095,-2.44907 -6.42146,-9.67147 -6.42146,-13.36355 0,-1.66787 -1.73253,-4.56362 -3.85006,-6.43501 l -3.85006,-3.40253 3.44682,-0.48626 c 2.23524,-0.31535 4.2826,0.54586 5.8245,2.45003 2.83054,3.49557 5.82035,3.7449 8.82896,0.73628 1.21002,-1.21002 2.20004,-1.50943 2.20004,-0.66536 0,0.84407 1.52509,2.11451 3.38908,2.8232 2.46567,0.93744 3.19069,2.04718 2.66095,4.07292 -0.40048,1.53142 -0.0171,4.93877 0.85187,7.57188 0.86901,2.63312 1.8409,6.14216 2.15976,7.79788 0.31886,1.65572 0.96766,3.63804 1.44176,4.40515 1.48043,2.39539 5.12462,1.5261 5.89119,-1.40528 0.40273,-1.54003 1.25915,-2.80005 1.90316,-2.80005 1.64706,0 3.99945,9.19212 3.16702,12.37533 -0.72421,2.76941 5.97427,17.02514 7.99978,17.02514 0.64387,0 1.56004,-0.63001 2.03593,-1.40002 1.486,-2.4044 6.52295,-1.55028 7.24984,1.22936 0.90801,3.47223 6.71432,6.00884 11.18552,4.88664 3.26789,-0.82019 3.48051,-0.61047 2.47739,2.4435 -0.60352,1.83738 -1.14571,4.60071 -1.20487,6.14073 -0.0592,1.54003 -0.89508,3.30386 -1.8576,3.91963 -0.96251,0.61577 -1.75002,2.85231 -1.75002,4.97008 0,2.11777 -0.71367,4.56416 -1.58593,5.43642 -0.87225,0.87225 -1.18778,2.62345 -0.70116,3.89155 0.67444,1.75756 1.89706,2.08329 5.14332,1.37029 2.55925,-0.5621 5.04919,-0.27917 6.23993,0.70905 1.08975,0.90441 2.63896,1.23796 3.44271,0.74122 2.10238,-1.29935 1.79845,1.07022 -0.54443,4.24458 -1.60764,2.17818 -2.35798,2.37025 -3.78006,0.9676 -2.34668,-2.3146 -4.93449,-2.21981 -5.86881,0.21497 -1.1272,2.93744 0.52003,7.83516 2.63516,7.83516 2.56943,0 3.75708,2.3306 2.77096,5.43761 -0.52426,1.65179 -2.14434,2.61251 -4.40549,2.61251 -4.56288,0 -10.34632,3.06696 -10.34632,5.48666 0,1.02491 -0.48061,1.86346 -1.06803,1.86346 -0.58742,0 -1.68994,1.41752 -2.45004,3.15005 -0.7601,1.73253 -2.82581,3.78006 -4.59047,4.55007 -4.03263,1.75965 -5.24159,6.33461 -3.21228,12.15589 1.29341,3.71027 1.19558,4.715 -0.55444,5.69437 -2.92071,1.6345 -2.94091,13.42501 -0.0249,14.54398 1.29574,0.49723 2.10003,2.62518 2.10003,5.55615 0,3.71367 -0.57362,4.75029 -2.62862,4.75029 -4.11725,0 -6.21889,3.56803 -5.14645,8.73732 0.52065,2.50959 0.91352,6.54514 0.87305,8.96788 -0.0445,2.66601 0.75061,4.72125 2.01419,5.20614 1.14828,0.44064 2.08778,1.76594 2.08778,2.94514 0,1.53595 1.45763,2.14397 5.13985,2.14397 2.82691,0 6.25509,1.00927 7.61816,2.24285 2.35776,2.13373 2.31205,2.39693 -0.93978,5.41062 -1.87995,1.74227 -3.41809,3.76472 -3.41809,4.4943 0,0.72959 -1.3192,4.05695 -2.93156,7.39414 -2.27084,4.70009 -2.60905,6.77548 -1.50061,9.20823 1.28436,2.81886 0.99305,3.22818 -2.84353,3.99549 -5.38052,1.0761 -6.04388,1.06887 -7.1912,-0.0784 l 0,-5e-5 z\", name : \"Косово\" }, \"29\" : { path : \"m 429.73938,913.73294 c -0.4442,-0.71872 -2.98068,-1.65941 -5.63663,-2.09041 -4.35902,-0.70737 -10.63924,-5.1544 -10.63924,-7.53364 0,-0.51688 1.00673,-2.05221 2.23718,-3.41184 2.46495,-2.72374 1.37431,-6.0595 -1.60711,-4.91542 -1.07791,0.41364 -2.272,-0.4898 -2.78541,-2.1074 -0.99555,-3.13672 2.53328,-6.70551 6.70541,-6.78133 1.96637,-0.0357 2.45004,-1.29693 2.45004,-6.38857 0,-4.34763 -0.66085,-6.59763 -2.10003,-7.14989 -2.8089,-1.07788 -2.83074,-10.11392 -0.027,-11.1898 2.13357,-0.81873 2.12641,-5.75621 -0.0158,-10.86773 -0.85031,-2.02895 -0.0693,-3.50713 3.3286,-6.3001 2.44176,-2.00704 4.43388,-4.16667 4.42694,-4.79918 -0.007,-0.63251 0.87615,-2.03878 1.96241,-3.12505 1.08627,-1.08626 2.19851,-2.64547 2.47166,-3.46489 0.27314,-0.81942 3.00693,-1.79152 6.07509,-2.16023 6.14018,-0.73786 9.07853,-3.5533 9.07853,-8.69875 0,-2.18612 -0.98017,-3.61986 -2.80004,-4.09577 -1.54003,-0.40273 -2.80005,-1.54478 -2.80005,-2.53791 0,-1.118 1.06921,-1.52607 2.80751,-1.0715 3.44314,0.90041 6.99265,-1.82432 6.99265,-5.3678 0,-2.67574 1.53263,-3.42937 3.32636,-1.63564 0.54614,0.54614 3.54529,0.80871 6.66477,0.58347 5.18618,-0.37445 5.59256,-0.1599 4.74644,2.50599 -0.73009,2.30029 -0.12599,3.21941 2.86288,4.35577 2.08352,0.79216 4.13134,1.09716 4.55071,0.67779 0.41937,-0.41937 1.56161,1.13802 2.5383,3.46088 1.98805,4.7282 4.34251,5.46033 5.70284,1.77334 2.65801,-7.20411 12.45998,-5.89447 14.96544,1.99954 0.62418,1.96661 0.22767,3.1871 -1.21532,3.74082 -1.17796,0.45203 -2.14175,1.87471 -2.14175,3.16151 0,1.2868 -1.07874,3.12842 -2.39719,4.0925 -1.98889,1.45431 -2.08982,2.12324 -0.59254,3.92735 1.64511,1.98224 1.82027,9.40847 0.18968,8.04211 -1.79506,-1.50419 -7.00011,3.05828 -7.00011,6.13593 0,1.84293 -0.78751,4.22073 -1.75003,5.28399 -0.96251,1.06326 -3.81374,4.1475 -6.33605,6.85386 -4.44548,4.76985 -4.52526,5.0652 -2.60302,9.63685 2.67134,6.35325 0.56738,11.50058 -4.21066,10.30137 -2.2706,-0.56988 -3.54223,-0.12397 -4.14796,1.45454 -0.55163,1.43753 -2.18028,2.13713 -4.41969,1.89852 -2.85931,-0.30465 -3.62988,0.30009 -3.9784,3.12222 -0.82581,6.68695 0.8093,12.6002 3.48415,12.6002 3.26851,0 6.17729,6.02419 3.97308,8.22839 -2.23084,2.23084 -5.21182,1.94715 -5.21182,-0.49599 0,-1.13727 -1.59485,-3.11275 -3.54412,-4.38996 -4.7606,-3.11926 -12.35259,-1.16083 -13.00351,3.35439 -0.27736,1.92396 -1.43097,3.10333 -3.03555,3.10333 -1.42349,0 -3.52098,0.35795 -4.66109,0.79545 -1.14011,0.4375 -2.43636,0.20741 -2.88055,-0.51131 z\", name : \"Косовo-Поморавље\" }, \"30\" : { path : \"m 308.44861,996.71531 c -1.95157,-5.13301 -1.77005,-6.20613 1.49725,-8.85183 1.68472,-1.3642 2.92588,-4.07741 2.98465,-6.52451 0.12686,-5.28201 -5.4194,-23.34655 -7.57746,-24.6803 -0.91591,-0.56606 -1.71036,-4.96471 -1.83201,-10.14327 -0.11814,-5.02907 -0.88322,-9.95883 -1.70018,-10.95502 -0.81696,-0.9962 -2.24105,-4.63653 -3.16465,-8.08963 -0.92359,-3.45311 -3.62763,-8.7384 -6.00898,-11.74509 l -4.32971,-5.46671 4.12207,-3.2982 c 2.26713,-1.81401 4.56594,-3.30133 5.10844,-3.30516 1.70207,-0.012 8.11747,-7.05233 8.03775,-8.82073 -0.0418,-0.92751 -3.03435,-3.57926 -6.6501,-5.89278 -5.08923,-3.25631 -6.47516,-4.91645 -6.13608,-7.35011 0.2409,-1.72905 -0.23694,-3.14373 -1.06188,-3.14373 -1.00391,0 -0.94423,-0.88975 0.18046,-2.69067 1.26053,-2.01843 1.29634,-3.94189 0.14333,-7.69875 -0.84536,-2.75444 -0.99369,-5.34387 -0.32961,-5.7543 0.66408,-0.41042 0.8862,-1.58327 0.49362,-2.60634 -0.96303,-2.50962 7.26616,-6.27441 17.31108,-7.91968 10.24629,-1.67825 10.12542,-1.68551 10.12542,0.60831 0,2.45305 6.01461,6.46112 9.6957,6.46112 1.53676,0 3.52948,-0.78751 4.42826,-1.75003 0.98482,-1.05464 4.06644,-1.55493 7.75532,-1.25905 4.7438,0.3805 6.12117,1.04994 6.12117,2.97505 0,1.63631 1.42372,2.76881 4.17173,3.31841 2.73376,0.54676 3.92156,1.48628 3.44596,2.72568 -0.42396,1.10482 0.75222,2.56475 2.82838,3.51071 1.95478,0.89066 3.6329,2.26289 3.72915,3.04941 0.72044,5.88709 0.28164,9.83017 -1.09395,9.83017 -0.93715,0 -1.30626,1.19575 -0.87646,2.83931 0.48955,1.87205 1.53591,2.58749 3.07149,2.10011 1.87287,-0.59443 2.37076,0.30806 2.54224,4.60804 0.11728,2.94098 0.32575,5.9335 0.46328,6.65003 1.03875,5.41202 -0.58104,8.55444 -6.26437,12.15297 -3.34434,2.11753 -7.1014,3.85006 -8.34902,3.85006 -1.43029,0 -2.346,1.29318 -2.47841,3.50005 -0.11551,1.92503 -0.27301,4.28312 -0.35001,5.24019 -0.0777,0.9653 2.66528,2.36794 6.1601,3.15005 8.43018,1.88661 10.7954,3.48317 11.94049,8.06002 0.85184,3.40476 0.57141,3.85006 -2.42458,3.85006 -3.39882,0 -9.51591,4.53493 -9.51591,7.05465 0,0.74002 -1.81289,1.34549 -4.02864,1.34549 -2.21576,0 -4.81294,0.94501 -5.77152,2.10003 -0.95858,1.15502 -3.12228,2.10003 -4.80821,2.10003 -1.83304,0 -4.42145,1.8292 -6.43863,4.55008 -2.76796,3.73358 -3.36514,6.18304 -3.32798,13.65021 0.0249,5.00508 0.42532,11.98409 0.88979,15.5089 0.75702,5.74486 0.41851,6.86456 -3.26763,10.80874 -3.32972,3.56279 -4.87259,4.24787 -8.10893,3.6006 -2.19824,-0.43965 -5.33974,-0.0806 -6.98111,0.7978 -2.61374,1.3988 -3.15652,1.14423 -4.37111,-2.05039 l 0,0 z\", name : \"Призрен\" } }, height: 1041.4434, width: 726.97412 });\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.tunisia.js",
    "content": "/** JQVMap merc map for tunisia  */\njQuery.fn.vectorMap('addMap', 'tunisia',{\"insets\": [{\"width\": 900, \"top\": 0, \"height\": 1954.3544733545057, \"bbox\": [{\"y\": -4519725.417185229, \"x\": 838669.3845975221}, {\"y\": -3535818.4871775922, \"x\": 1291768.476435734}], \"left\": 0}], \"paths\": {\"tn-za\": {\"path\": \"M544.74,259.86l2.72,1.39l7.19,-0.8l12.57,4.89l6.58,1.79l1.94,4.02l3.89,5.26l1.57,2.68l1.05,2.92l2.21,1.45l2.38,0.61l2.1,2.54l3.23,1.77l2.82,-0.07l1.77,0.4l1.82,-0.2l1.09,0.44l0.38,1.26l-2.85,10.19l0.32,2.67l0.5,0.33l4.18,-1.24l3.47,-2.95l1.84,-0.52l0.98,-1.62l1.84,-0.95l9.62,-3.95l0.71,3.78l-1.2,9.68l-0.23,8.98l2.32,4.63l0.5,1.8l2.33,1.82l-1.15,3.44l0.08,3.65l2.92,5.28l0.62,2.65l-0.45,2.65l0.69,2.7l0.0,2.42l-0.92,1.17l-1.87,0.04l-1.82,0.73l-1.15,1.42l0.62,1.7l3.05,0.6l1.01,0.73l0.85,1.72l0.09,1.82l-1.76,2.6l-2.33,1.81l-5.25,0.52l-2.5,0.81l-5.24,-1.44l-2.52,-0.35l-4.58,1.11l-1.65,2.57l0.35,2.41l0.91,2.29l0.05,2.24l-1.14,5.1l-2.41,7.18l-1.25,0.98l-4.44,0.92l-1.96,1.11l-0.85,0.84l-2.61,-0.32l-4.42,1.35l-3.22,-0.6l-3.46,0.36l-2.5,-0.52l-0.46,0.25l-1.15,3.09l1.7,2.38l-0.08,2.79l-1.54,3.16l-0.56,3.15l-2.52,2.28l-2.88,1.77l-3.17,0.53l-1.96,-0.71l-2.25,-2.38l-1.39,-2.04l-0.55,-0.11l-2.14,1.4l-0.45,2.56l2.11,4.25l-1.67,3.27l0.21,4.88l-0.93,3.06l-1.56,2.42l-2.45,0.93l-2.88,-0.85l-2.14,-1.51l-1.79,-2.1l-1.35,-3.0l-2.16,-0.47l-2.46,-1.63l-1.9,-0.72l-2.99,0.47l-2.21,-0.75l-7.12,1.17l-3.09,-1.56l-1.98,-2.19l-2.79,-5.16l-8.94,-2.95l-2.99,1.11l-3.85,2.31l-1.36,1.35l-1.59,2.31l-0.89,0.01l-10.27,-3.61l1.51,-4.78l1.43,-2.07l1.29,-2.72l1.08,-2.45l0.76,-2.85l1.16,-2.28l1.09,-4.14l-0.48,-3.05l-2.29,-1.99l-9.72,-2.97l-1.94,-3.36l-1.89,-4.26l-6.23,-3.31l-2.06,0.47l-2.04,1.41l-1.3,0.16l-0.78,-2.44l0.05,-4.75l-0.54,-1.89l-4.85,-1.61l-3.66,-5.44l1.71,-0.74l5.26,0.79l4.1,-0.73l2.57,-0.86l5.41,-5.28l4.59,-2.74l1.75,-1.7l1.41,-3.49l2.34,-3.85l0.54,-2.47l1.25,-2.91l1.87,-13.37l0.16,-3.05l-0.37,-3.78l-0.96,-2.98l-2.4,-4.03l-1.82,-1.99l0.78,-2.14l9.8,-4.82l2.01,-2.76l2.1,-6.42l1.03,-2.19l1.53,-1.95l4.75,-3.74l4.27,-4.42l2.6,-1.02l3.86,0.23l2.81,-1.34l3.64,-4.82l1.81,-5.19l0.83,-4.15l3.28,-6.96l1.83,-1.71l2.48,-0.51l4.59,2.4l2.42,2.68l1.76,3.79l1.18,4.24l1.56,2.47Z\", \"name\": \"Zaghouan\"}, \"tn-bz\": {\"path\": \"M346.87,111.96l2.64,-1.16l1.34,0.62l1.78,-0.39l0.58,-0.71l0.29,-1.37l0.84,-0.23l1.77,-1.7l1.3,-0.46l2.92,-2.33l2.09,-2.55l1.05,-1.91l0.58,0.0l0.4,-0.4l0.55,-1.85l-0.31,-0.56l1.54,-1.3l1.23,-1.91l5.52,-4.48l0.32,0.0l-0.18,0.99l0.61,0.94l-0.18,1.37l0.68,0.4l-0.06,0.53l0.47,0.42l-0.59,0.89l0.65,0.71l2.52,0.46l3.5,-0.14l1.29,0.45l1.26,-1.23l2.61,-0.23l1.6,-1.54l1.54,0.0l0.58,-0.93l0.83,0.0l0.57,-0.62l2.14,0.39l2.66,-0.54l2.44,0.23l1.97,-0.77l2.78,-1.78l0.72,-0.15l0.63,-0.7l0.6,0.0l3.07,-1.39l3.23,-2.72l0.68,-0.77l-0.12,-0.6l1.34,-0.54l1.52,-0.16l1.8,-1.24l4.76,0.23l2.21,0.46l2.11,1.16l1.72,-0.23l5.71,-1.93l2.05,-1.85l2.13,-0.77l1.9,-1.16l1.66,-1.31l0.4,-0.4l-0.17,-0.25l1.45,-1.28l1.66,-0.62l1.15,0.0l1.29,-0.93l2.66,-1.0l0.94,0.59l0.92,1.64l0.83,0.71l1.66,0.0l1.06,-0.69l1.64,-0.16l3.64,-2.39l3.24,-1.39l6.21,-4.64l0.89,-1.16l1.14,-0.16l1.51,-1.34l1.63,0.65l2.34,0.0l0.76,-0.86l0.7,-0.15l1.43,1.16l0.52,-0.33l0.59,0.56l0.86,0.0l0.69,-0.46l2.57,-0.15l2.27,-1.24l1.47,-1.29l1.01,-0.02l2.72,0.62l0.37,0.5l-0.12,0.96l2.55,2.18l1.15,0.0l2.84,0.93l5.13,-0.15l0.52,0.31l0.82,-1.78l2.03,-0.93l2.26,0.15l0.37,-0.37l1.72,0.83l1.18,-0.31l1.4,0.31l1.5,-0.22l0.25,0.41l-0.06,2.89l0.86,1.2l-0.25,4.05l1.29,2.3l0.06,2.18l1.32,1.84l-0.46,0.4l0.33,1.83l-2.49,2.04l-0.52,-0.33l-2.89,0.39l-0.46,0.48l0.06,0.77l0.4,0.4l1.38,0.28l-2.12,0.39l-0.65,0.56l-0.7,-0.25l-0.65,0.63l0.45,0.99l-0.54,-0.23l-0.68,0.36l-0.48,-0.52l-0.43,0.0l-1.2,1.54l-1.38,-0.08l-0.46,0.49l0.68,0.98l-0.32,0.23l-1.37,-1.23l-0.61,0.0l-1.11,0.46l-0.63,0.7l-1.52,-0.08l-0.75,0.62l-2.01,-0.15l-1.01,1.25l-0.06,3.16l0.89,0.68l-0.63,0.15l-0.66,-1.0l-1.21,-0.23l-0.6,-1.68l-0.89,-0.55l-0.58,0.55l0.86,1.41l-1.26,0.28l-0.46,0.55l1.63,1.4l0.55,-0.3l1.76,1.77l0.31,0.77l-0.98,1.84l0.4,0.48l1.35,-0.08l1.14,-1.42l0.18,1.04l-1.35,3.76l0.06,2.01l2.0,2.33l2.44,0.93l-0.08,0.45l1.23,0.79l0.74,1.42l-0.55,0.88l-0.37,2.54l2.24,2.33l0.56,-0.13l2.86,0.59l0.39,0.39l1.71,-0.31l3.21,1.16l2.4,-0.23l2.89,-1.85l1.83,-2.16l1.67,-0.08l0.94,-1.16l1.21,-0.08l2.09,-0.85l2.0,-2.87l1.41,-2.78l1.84,-5.63l0.55,-3.78l-0.31,-2.55l-1.57,-1.79l-1.72,-0.39l-1.98,0.23l-3.06,-0.15l-1.4,0.39l-3.87,-1.16l-0.87,-0.62l-2.46,-0.46l-2.41,0.69l-1.77,0.0l-1.94,1.77l-1.18,-0.08l-0.51,-0.54l-0.77,0.15l0.18,-0.62l1.38,0.03l2.03,-1.31l0.65,-1.02l-0.43,-0.68l1.81,-0.7l1.78,-1.39l1.41,-0.08l2.06,-2.56l0.18,-1.76l1.82,-1.52l0.48,0.52l0.74,0.15l0.52,-0.34l0.49,0.41l0.18,0.99l0.65,0.79l1.54,0.69l1.28,0.16l0.94,0.69l1.21,-0.16l10.46,2.16l2.95,0.23l0.69,-0.23l1.83,0.16l3.09,-1.16l2.75,-0.16l4.87,-2.63l3.61,-0.85l3.35,-1.64l0.0,0.53l-0.68,1.09l0.43,1.08l2.03,1.94l-0.06,0.99l2.37,2.79l1.29,0.54l3.92,-0.23l1.06,0.46l1.34,-0.08l6.81,2.93l0.58,0.93l0.92,0.09l1.41,1.6l0.29,-0.08l1.25,0.93l0.97,0.16l0.57,0.69l0.66,0.0l1.12,1.08l0.95,-0.08l-0.25,0.29l0.18,0.46l0.65,0.63l2.73,1.39l0.12,1.45l1.14,1.33l1.29,0.77l3.07,0.39l3.35,-0.46l1.37,0.23l0.94,0.85l3.86,-0.39l1.03,0.59l-1.69,0.16l-4.12,1.46l-0.75,1.22l-0.3,-0.3l-3.75,0.15l-0.46,0.79l0.56,0.48l-0.52,0.2l-0.85,1.13l-0.41,-0.29l-0.06,-1.6l-0.58,-0.86l-1.54,0.08l-0.62,-0.46l-2.27,-0.08l-1.8,0.85l-2.4,0.23l-5.15,-0.15l-1.41,0.39l-1.69,1.79l-0.43,1.48l-2.09,3.53l0.8,0.62l-0.18,0.7l0.86,0.83l0.06,0.58l-2.9,0.03l-2.01,-0.69l-2.71,-0.23l-5.35,2.57l-4.12,4.26l-1.95,-0.71l-0.49,0.19l-0.93,2.21l1.75,3.86l-0.26,2.64l0.16,6.08l-2.07,4.82l-3.88,7.05l-6.47,5.23l-0.31,3.74l-3.24,8.4l1.5,2.44l-2.35,2.37l-1.93,0.85l-3.68,0.74l-2.3,1.13l-1.8,-0.14l-1.07,-1.18l-0.82,-2.56l-2.19,-4.03l-1.82,-1.4l-4.53,-1.71l-3.37,-0.31l-2.89,-0.76l-10.52,0.15l-5.27,-3.59l-0.49,0.05l-1.94,1.96l-0.63,4.19l-3.57,3.8l-1.23,2.42l-1.45,4.57l-1.67,1.69l-1.95,1.16l-3.14,0.5l-2.89,-1.28l-2.49,0.1l-3.34,3.09l-2.7,0.82l-3.78,0.51l-5.66,6.42l-1.49,-2.59l-4.66,-0.26l-2.6,1.13l-2.84,3.11l-3.42,4.85l-2.47,1.86l-4.34,4.47l-5.25,6.86l-2.02,1.67l-1.88,2.1l-7.6,5.25l-7.73,7.22l-4.26,0.9l-2.52,-0.65l-1.58,-1.83l-2.36,0.12l-0.48,-0.47l-0.68,-4.29l-1.84,-4.36l-0.46,-2.3l3.43,-7.04l0.84,-3.12l2.42,-5.56l-0.86,-2.7l-2.87,-4.34l-2.97,-2.6l-3.39,-0.8l-3.81,0.17l-2.4,0.45l-4.57,-4.17l-1.57,-2.57l-4.7,-2.87l-1.62,-1.5l-0.26,-6.49l-0.69,-2.8l-7.1,-8.59l-0.52,-2.48l-0.11,-5.41l-0.72,-5.28l-5.48,-9.5l-5.71,-0.18l-2.76,0.76l-2.34,1.25l-1.79,1.58l-2.84,1.08l-3.32,0.4l-1.61,-0.39l-0.0,-2.43l-0.96,-4.86l-1.7,-4.95l0.06,-1.91l4.06,-7.1l0.34,-2.85l-1.28,-2.27l-0.44,-1.97l1.75,-0.08ZM596.93,112.81l0.9,-0.86l0.62,0.4l-1.06,0.73l-0.46,-0.26ZM498.79,95.3l-0.28,-0.46l0.59,-0.4l-0.25,-0.86l1.97,-1.6l0.42,-0.91l1.06,-0.88l0.71,0.73l0.83,0.0l-1.78,2.53l-0.37,1.3l-1.01,-0.15l-1.31,1.06l-0.57,-0.34ZM506.78,89.05l0.06,0.0l0.0,0.06l-0.06,-0.06ZM303.01,11.56l0.17,-0.7l2.29,-1.48l0.29,-0.92l0.78,0.15l2.08,-0.78l2.16,0.08l1.57,-1.72l0.0,-0.76l1.1,0.16l0.0,1.31l2.21,2.62l-0.68,0.79l-0.65,1.6l-0.5,-0.14l-1.77,-2.09l-1.53,0.46l-1.24,1.16l-1.35,-0.15l-2.17,1.32l-1.98,-0.08l-0.8,-0.82ZM315.36,0.56l0.01,-0.08l0.2,0.2l-0.02,0.03l-0.18,-0.14ZM296.55,17.42l0.57,-0.52l0.66,0.31l0.25,0.59l-1.47,-0.39ZM298.75,18.27l0.02,-0.06l0.12,0.13l-0.1,-0.08l-0.04,0.0Z\", \"name\": \"Bizerte\"}, \"tn-bj\": {\"path\": \"M304.73,149.07l2.7,-2.82l1.04,-0.63l0.38,-0.92l6.45,-5.94l1.23,-2.76l0.55,-0.55l0.06,-0.92l0.43,-0.68l2.52,-2.48l1.91,-3.16l0.12,-0.92l-0.46,-0.48l-0.43,0.0l0.19,-0.19l0.37,0.14l2.72,-2.39l1.46,-0.31l1.94,-2.17l0.29,-1.22l1.09,0.08l0.83,-0.63l0.06,-0.93l1.31,-1.84l0.57,0.15l0.39,-0.39l1.4,-0.08l1.57,-1.62l1.64,-1.0l2.32,-0.39l1.78,-0.93l0.63,-0.69l1.52,0.23l1.01,-0.62l0.53,2.31l1.24,2.2l-0.36,2.39l-4.0,6.94l-0.13,2.32l1.73,5.08l0.96,4.83l-0.01,2.58l0.31,0.39l1.99,0.48l3.58,-0.4l3.05,-1.14l1.86,-1.62l2.26,-1.2l2.57,-0.7l5.05,0.04l5.25,9.15l0.67,5.03l0.12,5.42l0.56,2.69l7.1,8.6l0.66,2.66l-0.04,3.94l0.44,2.9l1.85,1.69l4.58,2.79l1.52,2.52l4.76,4.34l6.58,-0.55l2.96,0.67l2.78,2.42l2.81,4.25l0.76,2.13l-2.37,5.42l-0.83,3.09l-3.51,7.4l0.52,2.55l1.81,4.26l0.7,4.38l0.83,0.92l2.32,-0.14l1.73,1.88l2.73,0.71l4.81,-1.02l7.81,-7.29l7.66,-5.3l1.89,-2.11l2.04,-1.7l5.23,-6.85l4.3,-4.44l2.31,-1.73l0.5,1.06l2.84,3.51l1.49,1.35l-0.58,2.65l0.24,1.44l1.59,0.83l2.26,-1.06l0.59,1.16l0.42,2.37l1.1,2.29l1.64,2.08l4.36,2.29l2.38,0.79l4.16,0.58l11.62,8.22l1.56,1.64l1.75,0.31l1.78,-0.13l2.42,-2.13l2.43,-0.66l0.28,0.64l-0.91,7.11l1.69,6.94l3.56,6.62l1.77,2.04l2.56,1.81l3.08,6.55l4.94,6.17l1.44,2.63l0.55,1.88l-2.17,0.89l-4.28,4.43l-4.84,3.83l-1.58,2.02l-1.11,2.33l-2.11,6.44l-1.86,2.52l-9.91,4.94l-0.84,2.94l1.91,2.07l2.26,3.81l-1.16,2.08l-3.72,0.64l-9.31,-1.12l-1.55,1.54l-0.98,2.05l0.02,1.83l-2.83,0.94l-2.37,-1.72l-3.49,-0.13l-4.09,0.63l-4.82,-0.92l-2.06,-2.21l-2.28,-3.43l-4.53,-4.0l-2.19,-1.24l-4.47,1.28l-1.85,1.03l-3.43,-0.81l-4.41,0.22l-2.81,-0.37l-4.12,0.27l-6.64,1.09l-8.24,3.03l-2.4,2.71l-0.8,3.33l-0.1,4.26l0.82,2.91l-0.4,2.46l-2.23,2.42l-4.78,2.61l-3.34,0.96l-2.16,-1.22l-2.48,-2.3l-1.16,-1.96l-1.27,-1.32l-2.5,-1.11l-2.78,-0.76l-3.61,-0.45l-4.75,-0.04l-5.96,-0.74l-1.28,0.59l-5.56,4.12l-7.53,2.57l-2.1,-0.82l-3.2,-3.13l-2.29,-0.16l-0.42,-1.28l0.68,-3.9l-1.24,-1.96l-3.66,-2.52l-1.64,-4.36l-2.17,-1.55l-2.11,-0.29l-2.99,0.26l-1.89,-0.3l-2.53,-2.89l2.7,-0.15l4.48,-1.05l3.48,-1.18l0.27,-0.38l-0.21,-5.31l0.52,-5.99l0.78,-2.5l4.61,-7.57l0.44,-2.77l0.28,-6.79l-0.18,-3.23l-1.48,-3.19l-7.91,-9.79l-2.61,-5.95l-0.23,-3.2l0.91,-3.56l1.92,-5.18l1.7,-3.14l-4.13,-9.63l-1.47,-2.4l-2.59,-1.74l-3.06,-1.12l-14.79,-1.07l-0.59,-1.22l0.14,-2.27l0.95,-2.62l0.24,-5.73l0.48,-1.63l4.43,-2.45l4.38,-3.72l1.31,-2.54l2.24,-3.28l1.14,-6.32l-2.0,-2.02l-4.69,-2.89l-2.17,-0.65l-2.77,-1.85l-1.28,-2.23l-0.82,-2.84l0.05,-2.3l0.63,-1.52l3.12,-4.66l0.35,-2.36l-0.04,-2.64l-3.39,-3.47l-6.51,-4.08Z\", \"name\": \"Beja\"}, \"tn-ba\": {\"path\": \"M555.79,232.61l2.34,0.88l2.91,0.49l4.38,-0.1l2.91,-0.65l2.08,-1.0l3.0,-3.29l0.67,-2.14l1.23,-1.68l2.37,0.23l2.18,1.08l3.24,0.01l4.53,-1.1l2.68,-0.31l1.69,-1.5l0.71,-1.53l0.4,-2.04l-0.28,-2.9l0.6,-0.27l0.4,0.4l0.68,-0.08l2.23,-1.76l0.6,-0.15l0.46,-0.48l-0.13,-0.37l1.17,0.24l0.06,0.9l1.11,1.02l-0.19,0.36l0.68,1.3l2.06,2.01l1.72,0.08l1.94,-1.47l0.37,-1.99l-0.43,-0.68l0.06,-4.01l-0.52,-0.63l-0.95,-0.44l-0.51,-1.59l1.28,-0.3l0.98,1.14l1.15,0.31l-0.63,0.75l1.2,0.71l1.51,-1.55l-0.12,-1.83l1.98,-0.15l1.09,0.61l-1.14,0.5l-1.32,1.87l-0.97,0.89l-0.41,-0.08l-0.46,0.63l0.49,1.29l-0.12,1.09l1.84,2.36l0.12,0.81l-0.37,0.43l0.18,1.61l0.71,0.63l0.4,-0.4l-0.18,-0.84l3.56,4.76l6.05,5.15l5.96,3.14l4.18,1.23l-1.41,6.39l-1.41,0.61l-1.46,1.32l-1.11,7.0l-1.95,5.62l-4.4,5.59l-0.83,1.48l0.44,1.79l0.35,0.28l4.7,0.46l1.52,1.23l0.21,2.04l-0.58,2.18l-3.53,7.21l-0.18,2.07l-2.48,5.12l-0.37,1.98l0.16,0.4l1.36,0.87l4.46,0.09l0.45,0.65l-1.14,1.14l-14.01,5.69l-1.96,1.02l-0.88,1.55l-1.89,0.57l-3.38,2.9l-3.61,1.08l-0.26,-1.98l2.86,-10.19l-0.47,-1.8l-1.79,-0.84l-1.85,0.2l-1.73,-0.4l-2.56,0.12l-3.07,-1.68l-2.02,-2.48l-2.54,-0.71l-2.03,-1.33l-0.89,-2.69l-1.62,-2.77l-3.88,-5.26l-1.97,-4.08l-6.94,-2.03l-12.67,-4.93l-7.32,0.78l-2.15,-1.11l-1.42,-2.22l-1.2,-4.27l-2.07,-4.2l1.48,-1.75l2.23,-1.7l2.43,-1.3l6.49,-7.08l0.84,-2.07l1.65,-2.13ZM596.34,213.83l0.02,0.02l-0.04,0.0l0.02,-0.02Z\", \"name\": \"Ben Arous\"}, \"tn-gf\": {\"path\": \"M133.61,830.47l0.8,-1.16l1.16,0.04l1.76,-0.46l0.33,-0.56l-0.32,-1.07l0.93,-1.91l1.16,-0.41l0.15,-0.9l0.96,0.06l0.76,-0.33l0.27,-0.74l-1.14,-2.07l0.32,-0.25l-0.34,-0.84l1.67,0.63l0.51,-0.38l-0.29,-2.36l1.23,0.07l2.14,0.86l2.62,-0.79l1.14,0.08l0.63,-0.79l1.08,0.33l1.97,-0.08l0.59,-0.35l0.23,-0.81l-0.36,-0.66l-1.25,-0.41l-2.03,-1.59l0.7,-0.18l0.29,-0.43l0.52,-3.27l1.76,-0.23l1.14,-1.1l0.8,0.08l0.23,-0.55l-0.3,-0.71l0.58,-0.3l1.22,0.58l2.89,-0.37l0.04,-0.71l-1.48,-1.94l-0.23,-2.14l1.2,-1.14l2.63,-1.19l1.11,-0.93l0.87,0.28l1.27,-0.8l0.12,-0.86l1.4,-1.69l0.05,-1.08l-0.43,-0.77l-0.49,-0.4l-1.24,-0.22l-0.58,0.5l-2.44,0.09l-3.5,-2.34l-1.01,-2.23l0.96,-2.59l4.66,-0.42l0.8,-0.69l1.96,-2.72l0.3,-1.17l3.34,-4.44l0.62,-2.25l0.79,-0.29l1.59,0.75l1.28,0.22l1.85,-1.04l-0.07,-1.16l-2.27,-0.37l-1.69,-1.35l-1.1,-1.46l17.14,7.42l7.58,4.37l5.03,0.14l3.6,2.33l8.72,6.88l3.87,3.69l4.13,2.58l6.13,1.85l4.98,-0.37l0.36,-0.29l0.82,-3.07l-1.64,-6.19l7.86,-3.15l13.91,-7.44l4.35,-2.86l3.52,-1.46l5.86,-1.25l5.77,-2.99l3.84,-3.9l5.5,-2.77l2.08,2.02l2.29,1.58l2.78,0.9l5.6,2.81l2.67,0.68l5.84,0.82l1.93,1.1l2.41,2.27l2.9,1.18l3.1,0.71l3.27,2.61l2.39,1.11l15.01,-4.09l5.13,-3.02l7.96,4.08l5.28,0.76l5.09,-1.1l2.81,1.81l3.79,0.41l3.1,2.24l5.13,-0.35l3.91,6.67l1.6,0.92l3.06,0.16l3.74,-3.22l1.51,-2.45l1.27,1.51l-0.0,3.15l-2.23,2.78l-2.14,1.59l-1.42,1.62l-1.25,2.25l0.86,3.09l1.65,2.49l0.53,2.05l-0.69,2.42l-0.23,7.43l0.41,2.4l1.27,1.99l2.4,1.71l2.18,0.02l1.92,-0.82l2.27,0.63l3.17,2.3l2.61,1.98l1.16,1.98l-0.11,3.11l1.55,1.81l5.44,-0.34l9.87,1.23l10.13,5.95l4.35,4.11l2.27,4.19l2.38,3.57l2.9,1.45l4.76,1.53l6.29,1.32l3.29,1.9l3.18,1.17l1.41,2.34l-1.0,3.28l-1.87,3.16l-1.01,4.68l-1.02,7.52l-2.34,6.23l0.79,2.41l1.78,1.45l-1.41,4.17l-2.32,4.94l-4.41,3.92l-4.88,2.33l-10.86,4.15l-6.85,0.63l-19.19,-3.68l-6.46,0.82l-4.36,2.19l-4.73,1.47l-4.53,3.42l-4.32,2.55l-4.08,1.08l-6.92,0.42l-4.36,0.74l-3.69,-0.1l-3.08,1.72l-2.7,1.07l-2.56,-0.72l-2.71,-1.62l-2.63,-0.99l-6.78,2.04l-5.01,2.02l-3.7,2.0l-2.35,2.58l-1.38,2.46l3.23,6.81l0.17,2.64l-1.33,2.87l-3.07,2.79l-5.95,0.5l-5.63,-0.64l-5.22,-1.24l-3.26,-1.72l-4.14,-3.38l-3.26,0.77l-2.94,2.6l-5.31,1.56l-7.89,-1.12l-6.49,-0.26l-9.93,0.77l-5.74,1.12l-4.49,1.07l-5.86,2.79l-0.52,1.4l-4.63,-1.82l-5.08,-1.25l-2.89,-1.14l-6.75,0.33l-5.52,-0.3l-8.27,1.2l-9.65,0.19l-10.23,-0.26l-8.04,2.23l-4.61,0.59l-2.42,-0.21l-0.3,-1.83l2.29,-5.07l0.2,-3.43l-2.87,-2.73l-2.4,-1.41l-0.81,-3.5l-1.66,-2.49l-3.63,-1.93l-10.87,-4.61l-5.77,-1.91l-9.43,-1.0l-3.25,-3.34l-2.1,-4.61l-2.5,-4.41l-6.93,-6.39l-11.74,-8.06l-5.12,-4.87l1.34,-3.97l2.96,-3.37l5.02,-7.72l1.26,-4.02l2.38,-0.83l3.95,-0.19l5.12,-1.42l3.85,-2.53l0.15,-0.48l-1.22,-2.94l-10.12,-5.98l-0.3,-2.38l1.11,-5.28l2.42,-3.16l2.07,-3.45l1.67,-4.43l-2.07,-3.64Z\", \"name\": \"Gafsa\"}, \"tn-ms\": {\"path\": \"M653.52,557.43l0.84,-1.3l2.94,-1.27l5.72,-3.87l1.88,-2.39l0.68,-3.27l-2.8,-4.92l0.21,-2.67l1.74,-1.99l3.09,-0.96l6.3,-0.37l2.84,-1.43l1.47,-2.52l0.32,-2.91l1.2,-2.85l5.43,-5.67l0.21,-2.71l-1.62,-3.15l-0.13,-4.72l0.65,-5.6l1.24,-2.72l-1.12,-3.02l4.39,-0.23l1.49,-2.59l0.61,-3.82l-0.6,-2.73l2.61,-2.87l5.13,4.71l2.46,0.99l6.33,4.24l1.41,0.38l1.9,0.23l2.77,-0.3l1.78,-0.76l1.63,-1.14l1.26,-0.08l1.72,-1.94l0.53,-0.1l0.95,0.6l0.6,-0.29l0.75,0.14l1.66,-0.76l0.81,-0.83l1.0,0.15l1.63,0.91l0.97,-0.15l1.8,0.3l0.58,-0.49l0.46,0.51l-0.52,0.94l1.97,1.46l0.04,0.7l-0.78,1.93l0.0,0.89l-0.55,0.38l-0.59,-0.23l-0.8,0.3l-0.46,0.55l0.06,0.58l-0.74,0.7l0.13,0.66l-1.12,2.89l-0.12,1.97l0.37,1.51l-1.23,1.67l1.3,1.73l-0.01,0.69l0.92,1.59l1.32,1.61l2.95,1.45l1.04,1.2l0.48,0.0l1.55,1.13l2.99,0.23l0.82,1.21l0.68,0.38l0.54,-0.15l0.93,1.13l1.09,-0.15l1.8,0.76l3.86,0.76l1.24,0.76l2.94,0.61l2.29,1.13l1.35,0.15l1.03,-0.68l0.23,0.89l0.71,0.63l4.58,0.53l1.14,2.12l1.96,0.85l0.93,1.19l0.98,0.68l1.89,-0.08l3.5,0.53l1.89,0.68l2.37,1.77l-0.77,0.93l-0.06,3.72l-0.31,1.06l-1.72,3.39l-0.8,2.83l-11.14,1.71l-0.36,0.43l1.35,2.62l-1.47,1.31l0.18,1.52l-0.3,0.34l-1.2,-0.3l-2.78,1.36l-2.14,-0.3l-1.5,1.15l-0.06,-1.36l-0.4,-0.4l-0.85,0.08l-0.97,-0.92l-0.06,-0.72l-0.4,-0.4l-0.8,-0.04l-3.87,2.28l-5.35,4.16l-7.33,4.54l-5.34,5.75l-2.95,2.72l-0.19,5.12l-1.31,1.09l-2.33,0.46l-3.3,0.2l-7.3,-1.67l-3.1,-3.05l-2.66,-4.49l-0.81,-3.13l-0.32,-0.29l-2.26,-0.41l-4.25,0.82l-2.84,0.15l-5.42,-0.84l-2.42,-0.7l-10.07,0.43l-3.07,-2.68l-2.8,-1.61l-4.92,1.07l-1.71,1.0l-0.99,1.97l-0.48,2.24l-0.82,1.67l-2.11,-0.34l-1.86,-1.34l-2.07,-0.45l-1.72,-1.64l-1.2,-2.2l-0.85,-2.82l-0.09,-2.03ZM729.78,500.25l-0.04,0.04l-0.04,-0.04l0.0,-0.0l0.07,0.0ZM730.77,489.62l0.07,-0.07l-0.06,0.3l0.0,-0.23l-0.01,-0.01ZM776.66,530.1l-0.03,-0.03l0.04,0.03l-0.01,0.0ZM773.24,488.32l-0.73,-0.9l1.11,-1.43l0.49,-1.19l1.13,-0.53l1.1,0.08l1.09,1.81l-1.21,1.25l-2.97,0.91ZM768.51,494.0l-0.06,-0.41l0.94,0.15l0.66,1.19l-0.58,-0.63l-0.95,-0.3ZM730.34,506.27l0.12,-0.14l0.12,0.37l-0.31,-0.0l0.06,-0.24Z\", \"name\": \"Monastir\"}, \"tn-to\": {\"path\": \"M0.85,1023.06l5.17,-9.76l-2.66,-11.0l-2.9,-7.94l5.01,-7.93l-1.24,-10.33l3.52,-10.85l-5.84,-6.8l-1.51,-3.59l0.33,-2.14l1.02,-0.89l3.04,-0.86l1.6,-0.14l1.25,-1.57l3.86,-0.8l1.76,-1.36l0.53,-1.3l-0.79,-0.93l-0.47,-0.01l-1.1,0.73l-0.15,-0.47l1.65,-1.45l0.51,0.1l1.36,-0.78l0.44,0.18l0.53,-0.27l0.45,-0.86l2.71,-1.08l1.16,-6.92l9.08,-14.97l16.68,7.74l0.4,-0.04l17.21,-12.26l0.14,-1.59l-0.56,-6.62l1.12,-2.56l0.11,-1.59l8.31,-26.46l-0.44,-1.69l0.33,-1.01l-0.18,-0.49l0.41,-1.84l0.65,-0.53l0.24,-1.17l-0.22,-0.62l-0.64,-0.13l-0.39,-1.81l0.39,-0.87l0.15,-2.69l1.44,0.17l1.85,-0.53l1.24,0.18l1.97,-1.45l0.74,-0.94l0.83,-0.23l2.42,0.56l0.9,-0.3l1.66,0.16l1.8,-1.11l1.26,-0.25l0.49,-0.59l0.03,-1.56l0.7,-1.08l1.42,-1.8l1.29,0.09l0.89,-0.42l0.33,-1.76l1.05,-0.38l3.08,0.33l5.57,-2.45l2.8,-0.28l2.19,-4.24l5.07,-5.25l6.41,-0.88l0.26,-1.86l0.83,-0.42l0.24,-0.61l0.69,-0.45l0.47,-1.72l0.7,0.34l1.62,0.03l1.26,0.62l1.39,-0.54l2.15,0.28l0.59,-1.95l0.69,-1.03l1.33,-1.05l2.32,3.55l-1.56,4.15l-2.04,3.4l-2.49,3.3l-1.16,5.51l0.33,2.74l10.35,6.28l0.9,2.32l-3.41,2.27l-5.02,1.39l-3.99,0.19l-2.63,0.92l-1.5,4.32l-4.97,7.64l-3.03,3.47l-0.92,2.26l-0.43,2.49l5.37,5.09l11.69,8.02l6.87,6.33l2.38,4.24l2.1,4.63l3.48,3.61l9.69,1.11l5.68,1.88l10.86,4.6l3.34,1.73l1.5,2.21l1.02,3.85l2.45,1.43l2.56,2.26l-0.14,3.01l-2.32,5.14l0.34,2.47l0.36,0.33l2.86,0.24l4.67,-0.6l7.96,-2.21l10.17,0.26l9.7,-0.19l8.31,-1.2l5.46,0.31l6.68,-0.32l2.72,1.11l5.05,1.24l4.67,1.85l-1.83,8.35l-3.97,9.37l-5.56,5.72l-4.83,6.93l-4.52,7.52l-3.46,4.15l-13.35,10.93l-8.65,5.88l-10.79,8.74l-17.4,15.85l-2.64,1.17l-15.49,13.61l-8.52,6.31l-6.84,4.46l-8.12,6.54l-8.62,6.24l-14.17,13.29l-26.47,21.42l-13.56,9.69l-12.44,4.71l-8.0,2.17l-2.42,-2.95l-0.59,-1.87l-23.34,-36.31l-7.09,-18.14l1.29,-11.15l-0.84,-3.92l-0.23,-3.41l-1.56,-9.49l-5.5,-7.27l-8.43,-4.57Z\", \"name\": \"Tozeur\"}, \"tn-kb\": {\"path\": \"M50.05,1122.84l7.76,-2.11l12.52,-4.75l13.69,-9.77l26.52,-21.47l14.14,-13.25l8.61,-6.23l8.13,-6.55l6.83,-4.44l8.55,-6.33l15.48,-13.6l2.66,-1.18l17.42,-15.87l10.77,-8.72l8.65,-5.87l13.4,-10.98l3.59,-4.3l4.53,-7.53l4.79,-6.87l5.63,-5.84l4.0,-9.45l2.33,-10.19l5.66,-2.69l10.03,-2.14l4.55,-0.53l5.28,-0.23l6.38,0.25l8.12,1.12l5.48,-1.61l3.08,-2.67l2.79,-0.61l3.67,3.19l3.52,1.85l5.34,1.26l5.69,0.65l6.21,-0.51l3.47,-3.04l1.54,-3.35l-0.21,-2.95l-3.19,-6.37l1.2,-2.15l2.16,-2.41l3.58,-1.94l4.94,-1.99l6.38,-2.0l2.4,0.9l2.82,1.67l3.0,0.76l2.91,-1.15l2.79,-1.63l3.7,0.1l4.34,-0.74l7.01,-0.44l4.17,-1.11l2.75,-1.61l2.75,3.67l2.96,2.41l7.72,8.22l2.86,2.32l1.83,2.28l0.75,1.91l-5.46,7.42l-2.91,1.68l-3.02,2.91l-3.92,2.66l-2.38,2.59l-1.56,2.59l-0.56,3.56l0.88,5.24l-1.05,13.95l-0.82,3.56l-0.25,5.65l0.11,4.83l1.41,8.15l1.84,3.69l3.82,5.65l2.78,5.62l3.38,2.99l4.09,8.25l2.57,5.58l0.44,6.26l2.18,6.97l1.29,1.76l4.46,1.35l2.67,2.44l0.46,0.02l1.83,-1.17l2.97,-0.02l3.35,0.63l5.65,6.03l0.35,4.65l0.66,3.62l3.36,2.06l3.71,-0.89l5.98,-0.25l1.91,1.55l1.7,3.93l2.34,3.58l3.08,1.2l4.65,2.55l-4.41,4.03l-3.93,4.93l-0.19,3.56l0.37,6.28l-0.78,1.51l-2.94,1.9l-1.47,2.18l0.01,0.47l6.0,7.05l1.5,3.48l8.22,5.62l3.12,1.73l3.11,2.72l3.91,12.02l5.28,7.08l3.5,6.97l8.58,7.95l10.56,10.91l5.22,3.99l2.86,0.5l3.33,3.85l3.75,1.03l3.13,1.53l7.6,-0.75l6.27,0.79l3.56,2.61l0.17,6.82l-0.4,22.87l-1.94,2.16l-2.28,1.23l-1.03,2.99l-0.65,3.43l1.24,1.48l1.85,1.27l2.48,5.81l6.24,2.05l2.91,2.04l5.99,3.36l2.19,3.11l-0.59,1.19l-9.22,0.14l-2.13,0.59l-1.72,2.07l0.25,3.44l-0.14,6.09l1.1,3.05l0.57,7.66l1.09,2.13l5.18,2.81l0.77,1.49l-1.88,4.06l-2.63,1.03l-2.44,1.57l-1.18,2.63l-1.85,2.01l-2.83,1.24l-1.58,2.06l0.58,3.8l1.26,2.76l-0.07,2.46l-2.85,5.73l-2.05,0.92l-1.65,1.66l-0.09,0.43l1.25,3.1l5.11,4.27l3.03,3.15l2.28,2.95l2.67,2.52l1.67,2.37l-0.66,2.22l-2.3,0.42l-2.21,-1.26l-2.45,-0.77l-7.54,-1.47l-2.91,-2.81l-1.62,-3.92l-1.91,-3.52l-5.71,-3.02l-3.13,-0.72l-3.58,-1.47l-4.96,-2.89l-2.93,-5.25l-2.38,-5.07l-0.42,-3.11l-1.9,-3.41l-3.03,-1.44l-6.01,1.37l-3.0,1.08l-6.64,-0.96l-2.66,1.91l-2.93,1.3l-3.65,1.23l-7.8,1.6l-16.56,10.73l-27.73,7.88l-21.32,5.34l-20.95,7.29l-55.16,0.91l-70.86,18.66l-53.18,14.74l-6.41,1.4l-6.97,-77.21l-16.71,-26.63l-17.3,-21.24l-1.46,-0.88l-10.21,-10.95l-0.34,-0.62l0.01,-2.12l0.61,-6.59l-0.13,-3.96l-7.22,-3.85l-5.88,-2.72l-1.49,-0.33l-0.86,-0.92l-1.27,-0.3l-12.52,-6.11l-5.08,-2.11l-2.48,-1.21l-1.1,-0.88l-1.08,-0.18l-7.91,-3.81l-3.74,-0.61l-11.52,-0.69l-0.87,0.23l-6.55,-16.33l-3.33,-9.46l-4.07,-21.09l-0.96,-3.6l-2.28,-13.0Z\", \"name\": \"Kebili\"}, \"tn-ta\": {\"path\": \"M341.01,1475.73l-1.11,-0.12l-58.51,-38.82l-64.13,-45.95l-33.83,-23.72l-0.57,-6.3l6.54,-1.43l53.18,-14.75l70.81,-18.64l55.2,-0.92l20.96,-7.3l21.31,-5.34l27.8,-7.9l16.64,-10.77l7.66,-1.54l3.71,-1.24l3.02,-1.34l2.36,-1.81l6.75,0.94l3.01,-1.09l5.88,-1.33l2.49,1.28l1.63,3.07l0.41,3.09l2.42,5.17l3.14,5.51l5.13,2.99l3.64,1.49l3.05,0.68l5.61,2.98l3.28,7.15l3.15,3.08l7.79,1.57l2.32,0.72l2.29,1.31l2.95,-0.45l0.31,-0.28l0.73,-2.99l-1.86,-2.62l-2.68,-2.53l-2.26,-2.93l-3.06,-3.18l-5.08,-4.25l-1.01,-2.6l1.41,-1.42l2.17,-1.04l2.98,-5.98l0.11,-2.79l-1.29,-2.89l-0.61,-3.27l1.26,-1.71l2.94,-1.32l1.96,-2.12l1.09,-2.52l2.23,-1.45l2.94,-1.26l2.05,-4.43l-1.07,-2.25l-5.21,-2.83l-0.82,-1.76l-0.53,-7.54l-1.09,-2.96l0.14,-6.02l-0.32,-3.08l1.33,-1.71l1.83,-0.52l9.4,-0.14l0.37,-0.22l0.79,-1.98l-2.58,-3.6l-5.98,-3.35l-3.01,-2.09l-5.93,-1.84l-2.41,-5.68l-2.97,-2.41l0.61,-3.19l0.95,-2.75l2.12,-1.06l1.97,-2.19l10.23,0.67l5.95,-1.54l8.2,-1.39l4.92,-1.17l5.21,-2.09l1.96,-2.48l0.46,-3.73l1.82,-3.39l2.38,-3.08l2.66,-1.3l3.87,-0.85l4.14,-0.05l3.88,1.81l9.08,2.03l5.21,-1.76l4.41,-3.99l4.52,-6.65l2.88,-1.84l6.93,-0.27l3.74,-1.56l3.28,-0.89l10.29,-1.84l14.92,-9.83l7.76,-3.9l4.84,0.0l7.74,2.76l2.93,2.22l2.93,0.82l7.11,-1.98l2.77,-1.88l2.57,-1.09l0.4,2.06l-2.39,1.92l-1.4,2.71l-0.73,2.93l-1.25,1.53l-4.25,2.33l-0.02,0.69l15.28,9.37l0.54,-0.12l1.16,-1.73l9.05,3.71l60.41,28.92l0.89,5.43l1.41,5.41l2.3,4.53l2.88,4.31l5.61,4.83l4.15,1.97l7.84,7.92l2.23,2.53l1.0,2.05l-1.38,2.99l-3.75,3.55l-2.02,3.34l-1.62,4.13l-0.31,9.18l-0.45,2.6l1.38,8.01l-0.96,4.52l0.17,10.47l-1.16,2.3l-1.72,2.44l-0.36,4.68l24.88,19.46l23.11,19.35l14.16,10.84l10.72,-2.18l2.02,5.03l-37.6,22.73l-15.14,30.11l-4.0,10.36l-1.5,1.18l-8.24,2.86l-2.77,2.13l-3.22,0.27l-3.89,2.43l-1.62,1.77l-3.34,2.67l-3.92,1.56l-4.58,1.02l-3.1,1.45l-11.47,7.97l-3.49,3.41l-12.5,8.57l-1.08,5.39l-0.79,1.97l-2.73,5.37l-9.42,16.04l-5.85,1.16l-3.85,1.63l-1.95,1.64l-2.32,0.92l-2.71,0.3l-3.96,-1.33l-4.27,-0.41l-2.42,-0.69l-2.13,0.85l-1.59,1.96l-2.77,1.23l-0.76,1.48l0.33,5.75l-0.69,1.57l-2.05,1.84l-0.73,1.92l0.19,1.85l4.02,6.57l0.07,2.3l-1.54,3.14l-0.41,1.65l-4.21,4.35l-4.3,3.6l-1.09,0.44l-2.18,2.3l-1.86,3.33l-2.58,9.96l-2.12,2.85l-0.98,0.48l-1.26,1.41l-2.57,1.81l-8.27,2.95l-7.34,1.94l-3.79,0.26l-10.51,-3.43l-1.99,0.03l-2.48,0.62l-2.13,1.02l-11.49,7.48l-4.86,4.06l-0.56,1.48l-1.02,1.22l-1.14,3.35l-5.52,8.22l-0.17,1.05l-2.8,5.11l-3.78,5.25l-0.39,1.31l-2.45,3.51l-1.85,1.83l-0.48,1.65l-2.43,3.11l-0.98,0.31l-3.09,4.31l-0.55,1.6l-3.13,4.2l-0.99,0.67l-2.04,2.99l-0.76,2.19l0.0,5.94l1.53,3.49l0.48,2.81l-0.36,4.2l0.59,4.1l1.41,4.68l0.82,0.93l8.2,20.92l3.03,8.98l0.67,1.04l1.21,4.79l0.75,1.04l2.55,7.21l2.32,4.38l4.39,16.92l2.01,3.22l3.03,6.24l0.6,3.46l-2.66,9.47l-0.08,5.04l1.05,5.14l0.56,0.85l0.95,4.08l0.29,5.82l2.02,9.27l2.31,5.19l-0.28,1.07l-2.42,2.7l-0.27,2.0l0.52,1.88l-2.08,5.87l-0.68,3.77l-1.35,4.27l-6.91,13.44l-4.54,10.37l-2.78,4.78l-2.97,2.42l-1.09,0.4l-2.91,2.15l-1.58,1.91l-4.92,9.28l-8.37,10.61l-3.18,5.95l-4.26,5.02l-0.93,1.54l-4.64,4.24l-7.92,9.86l-2.89,7.82l-6.51,10.54l-1.44,1.48l-1.98,1.3l-3.26,7.59l-6.46,4.76l-6.35,6.53l-1.29,0.43l-2.63,-0.2l-9.96,1.08l-6.14,2.44l-1.28,1.1l-3.87,1.78l-6.73,1.84l-6.49,4.37l-1.84,1.72l-6.9,2.62l-5.94,3.33l-7.26,4.84l-5.32,2.04l-7.21,1.28l-34.88,-157.68l-7.9,-36.95l-0.73,-1.16l-28.19,-129.54l-14.48,-63.67l-8.86,-41.11l-6.22,-24.9l-1.26,-2.38l-4.8,-20.66l-0.44,-0.11Z\", \"name\": \"Tataouine\"}, \"tn-kf\": {\"path\": \"M161.61,454.97l1.41,-1.77l-0.23,-1.86l0.36,-1.08l0.03,-2.34l1.1,-1.19l0.26,-0.75l1.18,-0.32l0.35,-0.63l0.77,0.17l0.81,-0.88l0.89,0.02l0.49,-0.49l-0.21,-0.8l0.38,-0.43l0.61,-8.37l1.0,-6.98l-1.01,-5.88l0.55,-2.05l0.79,-0.65l1.39,-2.19l1.08,-2.45l0.1,-2.62l1.48,-2.13l0.6,-2.1l4.67,-4.02l-0.43,-3.22l-0.87,-2.01l0.42,-2.43l-0.6,-2.6l-0.9,-1.02l-1.65,-1.08l-0.56,-1.07l-1.11,-0.9l-0.51,-1.46l-0.91,-0.39l-0.62,-3.62l1.11,-1.45l2.72,-1.83l1.21,-1.72l1.91,-6.31l1.38,-1.23l0.14,-1.43l1.54,-2.04l-0.28,-1.8l0.22,-4.06l-1.25,-2.41l-2.15,-0.81l1.52,-2.19l0.42,-1.43l1.58,-1.96l0.68,-0.26l2.12,-2.06l0.83,-0.36l2.26,-0.07l0.43,-1.57l1.39,-0.39l0.25,-0.59l-0.79,-1.29l-1.66,-1.07l-0.91,-2.23l-0.1,-2.04l1.01,-2.7l-0.8,-3.75l3.46,-3.37l13.04,1.42l7.4,-5.77l3.39,-0.93l4.71,-0.7l4.94,-4.78l2.04,-1.26l5.1,0.09l2.94,0.69l3.12,-0.11l3.1,-1.14l9.2,-4.42l3.46,0.68l4.7,1.47l3.72,1.87l2.72,0.41l3.88,-0.34l3.85,-1.15l3.57,-0.24l9.69,-2.09l3.02,0.04l3.6,-1.49l5.65,0.03l2.55,-0.76l2.92,-1.61l4.95,-5.76l1.54,5.28l2.25,4.39l5.51,6.23l0.85,3.42l1.72,3.66l0.47,2.3l-0.83,2.27l-5.75,6.2l-0.01,3.32l1.72,3.56l4.24,6.79l1.09,2.12l1.06,3.16l1.48,2.33l2.34,1.38l6.06,2.38l1.68,2.28l-0.62,3.06l1.06,3.61l-0.18,2.42l-1.78,2.54l-1.39,2.67l1.19,2.82l2.33,9.08l0.37,0.27l3.17,0.07l2.31,0.65l1.02,1.2l1.14,2.94l0.81,1.16l2.96,0.01l2.03,-0.33l1.34,3.49l7.7,2.6l-0.67,5.51l-0.13,4.58l0.8,6.57l1.31,5.46l-0.23,1.6l-2.48,2.42l-3.81,1.9l-6.49,6.2l-1.11,3.04l0.64,6.1l-0.09,2.99l-0.88,2.86l-3.26,2.26l-3.34,0.49l-2.95,1.65l-3.53,3.8l-1.63,5.9l0.33,0.51l2.66,0.38l-0.5,1.72l-2.94,2.63l-0.12,0.4l1.27,4.65l0.49,5.32l-0.66,4.07l-4.21,6.57l1.43,3.51l3.5,5.61l0.05,3.17l0.63,3.03l-0.24,2.44l-1.92,-0.29l-3.87,-2.43l-4.2,-1.83l-11.74,-2.24l-9.82,-2.8l-4.1,-1.85l-4.69,-3.17l-4.89,-2.82l-6.03,-5.41l-3.03,-1.73l-4.1,0.55l-5.39,2.3l-3.27,-1.12l-5.4,-2.82l-5.34,0.53l-2.36,4.05l-1.82,2.3l-4.75,2.27l-4.43,3.98l0.57,3.72l-0.52,3.69l1.2,5.47l-0.54,3.65l-2.88,2.59l-4.25,4.83l-2.73,-0.13l-2.95,1.92l-5.65,-6.49l-4.0,-2.52l-3.47,0.34l-6.19,1.3l-9.33,0.27l-3.24,2.28l-3.69,3.8l-2.49,2.89l-1.53,3.07l-0.97,0.25l-2.94,-0.07l0.27,-2.55l-0.2,-1.11l-0.68,-1.08l0.4,-1.31l-0.55,-3.54l-0.52,-1.0l-3.36,-2.04l-0.82,-0.93l-1.19,-0.28l-2.6,0.09l-1.35,-1.8l-0.49,-0.26l-0.55,0.15l-1.12,-2.58l-4.71,-5.76l-3.18,-1.9l0.36,-2.11l-1.02,-1.97l-0.7,-4.73l0.25,-1.73l1.12,-2.4l0.28,-2.29l-0.33,-0.7l0.12,-1.78l0.32,-1.37l0.58,-0.91l0.1,-2.71l0.56,-0.54l0.09,-1.05l-1.24,-13.82l0.48,-0.77l-0.2,-0.54l0.35,-1.67l1.05,-0.9l0.39,-1.58l-0.34,-0.58l-2.78,0.07l0.24,-0.61l0.96,-0.82l0.56,-1.56l-0.5,-0.54l-2.65,-0.89l-0.02,-0.74Z\", \"name\": \"Le Kef\"}, \"tn-me\": {\"path\": \"M647.37,1061.54l1.7,0.74l0.8,-0.15l0.43,0.44l1.51,0.3l0.45,0.44l-0.33,0.34l0.31,0.78l-1.48,0.22l-1.32,-0.44l-0.83,0.77l-0.06,2.37l-0.58,0.92l-0.37,-0.07l-0.46,0.55l0.89,0.62l1.19,-0.98l0.65,0.1l0.65,-0.55l0.31,-0.81l0.74,-0.59l-0.45,-0.78l1.28,0.3l-0.84,0.85l0.23,0.71l-0.78,0.62l0.65,0.62l0.8,-0.37l1.17,1.55l0.46,-0.47l-0.26,-0.6l0.38,-0.55l1.26,-0.3l0.46,-0.47l-0.93,-0.84l0.18,-0.76l0.36,0.29l0.92,0.0l1.23,-0.29l0.55,-0.52l0.86,0.15l0.7,-0.52l1.14,0.44l0.79,-0.7l0.25,0.25l0.39,-0.26l1.89,0.12l0.86,-0.29l0.46,-0.47l-0.26,-0.33l0.36,-0.23l0.86,0.0l0.36,0.3l1.27,-0.63l0.33,0.33l0.68,-0.29l0.22,0.23l-0.77,0.15l-0.46,0.47l0.71,0.62l1.72,-0.52l1.29,-1.03l-1.14,2.48l-0.12,2.58l0.46,0.47l0.44,-0.22l0.42,0.29l1.03,-0.15l1.55,1.03l0.68,-0.37l1.17,0.37l1.63,-1.43l-0.06,-0.74l-0.77,-0.55l-0.93,1.18l-0.54,-0.59l-0.71,0.55l-0.53,-0.55l-0.48,0.07l-1.56,-0.81l-0.38,-1.09l1.06,-2.56l0.63,0.09l2.16,-1.03l2.94,-0.3l0.83,-0.77l0.0,-0.34l0.95,-0.44l0.75,-0.96l1.42,-0.37l0.72,0.3l1.04,-0.3l0.55,-0.59l0.8,0.07l3.56,-0.81l1.41,-0.81l2.98,-2.95l2.98,-2.22l2.33,-0.59l1.07,-1.11l0.97,-0.44l2.32,0.0l2.02,-0.44l2.43,1.4l0.93,1.04l1.84,5.12l-1.04,3.04l-0.55,3.48l-1.23,1.46l-0.37,1.18l0.31,4.94l0.98,3.23l-0.12,2.31l-0.43,1.17l-0.89,0.26l-0.95,1.15l-0.8,4.53l-1.44,0.0l-1.81,2.07l-2.43,1.4l-2.12,2.17l-0.86,1.77l-0.43,4.05l0.89,1.06l0.79,-0.29l1.34,0.66l1.16,0.91l0.74,1.18l0.12,2.31l-0.92,2.65l-0.55,0.58l0.31,1.99l1.63,0.99l0.37,0.0l0.63,-0.66l0.85,0.29l2.32,-0.07l1.22,0.37l2.08,1.81l0.95,1.8l0.97,0.15l0.75,0.59l3.45,-0.29l3.67,0.15l1.61,-2.06l1.03,0.07l1.54,-0.44l0.95,-1.06l0.76,-1.88l3.95,-0.29l3.75,-1.33l1.87,-2.36l3.11,-0.44l4.07,-1.7l2.88,-0.52l3.61,-1.16l0.32,0.2l1.14,-0.78l0.52,0.34l0.61,-0.44l0.62,0.8l0.95,-0.69l0.31,-0.66l-1.29,-0.97l1.05,-1.09l0.18,-0.97l1.78,-1.98l0.28,-0.93l0.83,-0.84l-0.06,-1.33l0.86,-1.03l0.25,-1.25l-0.31,-0.96l-0.98,-1.02l-0.92,-2.45l-0.98,-0.8l-0.98,-1.66l-0.55,-1.75l-1.01,-0.84l-1.41,-0.15l-0.89,-0.59l0.06,-1.96l1.52,-1.37l1.22,0.0l1.17,-1.11l1.07,-0.37l1.33,0.22l0.95,-0.92l0.18,-0.81l1.97,0.33l0.83,0.67l0.98,0.0l1.41,1.18l3.07,-0.22l0.44,-0.42l1.09,-0.17l1.01,-1.21l-0.18,-2.07l-0.65,-0.47l-0.58,0.74l-0.37,-0.1l0.06,-0.59l0.41,-0.28l1.46,0.59l2.0,-0.14l0.12,0.77l1.69,1.58l4.36,1.62l1.6,-0.15l1.2,-0.52l2.39,3.29l1.29,0.96l-0.37,0.37l0.25,0.89l1.2,1.51l1.26,0.77l2.46,3.04l0.49,1.33l3.99,5.52l0.74,2.14l0.49,3.04l0.55,0.65l-0.43,1.05l0.47,0.96l-0.29,0.29l0.06,1.25l0.68,1.76l-0.18,0.75l0.43,0.73l-0.43,1.26l0.25,0.65l-0.25,0.97l0.49,0.6l-0.85,0.81l-0.74,1.33l1.82,1.96l-2.93,2.39l-0.8,2.81l-2.15,4.33l-0.12,4.12l2.89,5.01l-0.25,2.36l0.77,0.4l0.95,-1.06l3.04,2.98l2.15,1.69l0.28,-0.15l0.06,0.48l-2.38,2.63l-1.56,1.14l-1.21,1.66l-2.19,0.3l-1.55,-1.03l-1.38,1.14l0.0,0.66l0.52,0.4l0.86,-0.69l0.18,0.18l-0.64,0.55l0.74,0.49l-0.06,0.39l0.4,0.4l0.54,-0.22l0.69,0.44l1.11,0.15l0.81,-0.59l0.66,0.15l0.43,-0.3l2.06,-1.94l0.18,-0.7l1.46,-0.67l3.17,1.85l3.85,4.12l1.23,1.66l0.06,2.57l0.77,0.92l2.41,0.66l0.79,0.51l0.49,-0.07l0.74,0.88l0.46,-0.15l3.17,1.47l1.59,0.37l4.46,2.13l5.94,4.12l3.19,1.55l-1.97,-0.44l-0.92,-0.73l-1.89,-0.29l-4.87,-2.28l-4.04,-1.03l-9.17,-3.9l-1.68,0.0l-2.49,-1.03l-2.03,-0.15l-0.86,0.15l-1.44,1.47l-1.33,-0.44l-1.04,0.15l-0.71,0.77l-0.49,1.32l-0.31,3.34l-0.32,0.28l-0.38,-0.34l-0.98,-0.07l-0.4,0.4l1.23,4.48l0.71,0.55l1.22,-0.75l1.46,2.48l1.57,1.8l2.99,1.4l1.53,1.76l-0.12,1.44l1.47,2.34l-0.18,4.13l2.27,4.11l2.67,1.21l1.97,-0.44l0.88,-0.88l2.19,-0.22l0.41,-0.38l5.43,1.48l6.07,-0.73l5.29,1.76l0.75,0.59l4.06,0.89l2.89,1.24l4.6,0.88l2.59,1.03l1.83,0.29l0.53,0.29l-0.06,0.55l0.52,0.55l0.62,-0.15l1.47,1.32l0.89,-1.13l1.04,-0.66l0.96,-2.84l0.73,0.67l1.26,0.26l1.85,1.5l1.01,1.32l0.68,0.07l0.6,-0.42l0.32,0.2l0.3,-0.3l1.94,-0.36l1.26,1.69l0.96,0.37l1.13,1.17l0.95,0.0l0.83,0.66l1.35,-0.22l1.69,-1.72l0.22,0.85l-0.65,0.55l0.4,0.77l0.48,-0.29l0.87,0.22l0.59,-0.59l1.07,0.73l1.35,0.15l1.57,-1.13l-0.46,-0.55l-0.52,0.1l-0.89,-0.77l-0.58,0.15l-0.01,-1.14l-0.4,-0.4l-0.58,0.36l0.06,-0.77l-1.32,-1.14l-2.64,-0.81l-1.32,1.32l-0.43,-0.07l0.37,-1.88l-0.12,-1.03l-0.58,-0.77l-1.41,-0.66l-4.49,-3.31l-1.03,-0.15l-1.18,-0.81l-1.04,-1.18l-6.13,-4.41l-2.95,-2.57l-1.61,-1.76l-2.06,-1.7l0.09,0.0l2.38,1.62l3.22,2.87l1.46,0.74l5.48,4.78l2.08,1.03l4.87,3.38l3.65,1.69l3.97,2.5l2.7,1.32l1.28,0.07l1.79,1.25l4.98,1.69l2.09,0.51l1.09,-0.07l1.3,0.66l2.41,-0.66l1.62,0.18l-0.89,2.44l0.31,2.18l-2.35,8.68l-4.15,7.48l-0.74,3.22l-0.66,5.34l-0.53,10.6l-0.49,1.95l1.56,1.53l0.29,2.87l-2.83,3.39l-2.94,12.22l-3.16,9.92l1.52,4.19l2.51,9.0l-1.46,4.44l-1.14,5.47l-1.55,10.37l1.95,8.81l0.2,3.61l-0.95,8.19l-1.21,5.32l0.29,3.03l1.04,3.5l3.05,7.82l2.64,2.75l2.51,1.17l2.36,2.06l4.99,6.87l2.75,2.29l2.77,4.16l1.78,4.15l-15.57,31.4l-13.16,9.77l-0.92,1.18l-2.84,1.17l-5.63,0.62l-7.19,5.2l-5.71,3.04l-2.38,0.87l-4.43,0.93l-4.54,1.88l-24.51,8.26l-11.81,5.25l3.49,-9.04l15.08,-29.99l37.64,-22.68l0.16,-0.49l-2.28,-5.66l-0.46,-0.24l-10.54,2.28l-14.01,-10.73l-23.11,-19.34l-24.71,-19.32l0.47,-3.99l1.64,-2.25l1.26,-2.59l-0.17,-10.55l0.96,-4.61l-1.38,-8.01l0.45,-2.51l0.31,-9.09l1.55,-3.92l1.94,-3.21l3.79,-3.6l1.5,-3.24l-1.11,-2.62l-10.24,-10.67l-4.18,-2.0l-5.46,-4.69l-2.81,-4.2l-2.24,-4.39l-2.54,-11.23l-60.62,-29.02l-9.34,-3.85l-0.51,0.14l-1.14,1.7l-14.37,-8.81l3.72,-2.03l1.47,-1.75l0.79,-3.04l1.33,-2.59l2.41,-1.89l-0.39,-3.17l-0.55,-0.29l-3.06,1.3l-2.72,1.85l-6.71,1.92l-2.61,-0.7l-3.0,-2.26l-7.9,-2.82l-5.29,0.02l-7.92,3.98l-14.74,9.74l-10.25,1.83l-3.38,0.92l-3.58,1.52l-7.14,0.32l-3.17,2.06l-4.55,6.68l-4.12,3.75l-4.8,1.68l-8.94,-2.0l-4.0,-1.84l-4.27,0.06l-4.12,0.91l-2.92,1.48l-2.46,3.18l-1.91,3.55l-0.42,3.64l-1.65,2.17l-5.03,2.02l-4.85,1.15l-8.23,1.4l-5.9,1.53l-9.86,-0.67l0.4,-22.65l-0.34,-7.35l-3.96,-2.85l-6.49,-0.82l-7.6,0.75l-2.9,-1.48l-3.67,-1.0l-3.14,-3.74l-2.99,-0.58l-5.09,-3.9l-4.76,-5.17l-6.46,-6.34l1.6,0.05l3.19,1.71l4.79,1.61l4.94,0.72l3.88,-0.41l6.21,-2.54l6.35,-0.72l2.3,1.19l4.14,-0.48l4.46,-1.09l2.96,1.13l4.32,0.07l3.88,-1.13l2.67,-1.89l2.29,-2.63l1.86,0.09l2.66,1.74l3.16,0.73l2.75,-2.79l5.69,-0.85l3.81,-1.63l3.31,-2.74l4.52,-2.88l0.35,-4.26l-0.43,-2.73l2.03,-1.65l3.39,-0.61l3.51,-1.83l2.31,-3.98l0.21,-2.74l7.09,-4.11l3.99,-1.65l3.94,0.04l4.73,0.86l4.87,-0.01l4.26,-3.62l1.3,-2.87l1.05,-3.9l5.28,-5.66l2.39,-3.51l1.58,-3.05l4.77,-6.78l0.94,-4.39l3.92,-6.9l2.19,-3.3l3.02,-3.72l2.15,-4.58l2.13,-2.98l5.11,-2.49l3.38,-2.67ZM649.72,1065.39l-0.01,-0.01l0.04,0.0l-0.01,0.01l-0.01,0.0ZM749.07,1056.14l-0.69,-0.2l-1.4,1.26l-0.44,-0.3l-1.23,0.15l-1.87,2.34l-0.56,1.76l-0.18,5.86l-0.37,1.08l-0.77,-0.62l-1.44,-0.19l-0.49,-2.73l-0.55,-1.32l0.74,-1.12l0.06,-2.38l1.17,-1.32l0.37,-1.33l-0.37,-3.4l-2.7,-2.84l-0.31,-0.92l-4.12,-4.72l-0.86,-1.42l-2.98,-3.13l-1.17,-0.22l-2.46,0.59l-1.92,1.85l-1.22,0.15l-1.84,1.4l-1.01,1.21l-0.31,0.89l0.0,3.66l-1.01,-0.67l-3.93,1.18l-1.81,-3.44l-2.52,-2.17l-0.12,-0.78l-0.9,-1.14l0.17,-0.86l-0.8,-3.03l-1.12,-1.98l0.14,-1.94l-0.59,-1.22l0.47,-0.7l-0.23,-0.55l0.72,-1.61l0.46,-0.03l0.46,-0.92l0.46,0.25l0.77,-0.84l-0.13,-1.0l1.54,-2.63l0.37,-1.63l-0.18,-2.97l0.25,-0.95l-0.43,-1.84l0.37,-0.38l-0.3,-0.39l0.23,-1.6l-0.31,-0.62l0.43,-1.9l-0.43,-1.48l-0.74,-1.17l0.06,-0.83l-0.43,-0.83l0.25,-0.7l0.71,0.15l0.58,-0.47l0.31,-0.89l-1.35,-1.17l0.18,-3.04l-0.66,-0.47l0.47,-1.94l1.57,-0.65l3.87,-0.83l0.46,-0.37l1.02,0.15l3.5,-0.74l0.65,-0.77l0.71,0.62l0.61,-0.38l0.37,0.3l0.73,-0.3l0.69,0.37l0.67,-0.07l1.6,0.81l0.79,-0.3l2.88,1.04l1.56,1.04l1.03,0.11l1.31,0.86l0.44,-0.38l1.41,1.34l2.58,1.26l0.92,0.0l0.89,-0.54l2.25,1.36l2.32,-0.07l1.98,0.37l3.27,-0.52l0.85,0.15l1.26,-1.21l0.18,-1.48l-1.29,-2.56l0.23,-0.2l3.15,2.68l0.25,0.68l2.18,2.4l2.21,1.78l3.59,2.07l1.23,2.19l3.96,3.95l2.58,1.55l1.41,0.44l0.75,-0.44l1.22,0.07l1.04,-0.74l0.43,0.59l1.33,0.44l1.35,1.01l0.06,4.96l0.92,3.15l-0.41,0.38l-0.57,-0.83l0.18,-0.33l-0.49,-2.66l-0.46,-0.47l-0.58,0.4l-0.06,0.89l0.18,1.92l1.84,2.44l0.06,0.81l0.38,0.39l-0.44,0.94l-0.83,-0.62l-1.54,0.22l-1.61,1.48l-1.89,1.03l-2.35,3.03l-2.45,0.22l-2.06,1.5l-2.94,4.88l-0.49,1.63l-0.18,3.62l-0.46,-0.4l-0.58,0.62l-1.04,7.83l-1.35,-2.5l0.68,-1.34l0.06,-1.93l0.37,-0.65l-0.74,-2.35l0.18,-2.3l-0.58,-0.84l-0.55,0.0l-0.81,0.74l-1.22,-0.07l-1.26,1.51l-1.17,2.81l-0.37,2.3l-1.11,2.03l-1.07,0.15l-0.74,0.52l-2.93,3.01ZM763.77,1048.35l0.0,0.6l0.12,0.59l-0.43,-0.58l0.31,-0.62ZM763.9,1049.92l0.0,0.08l-0.06,0.06l0.0,-0.08l0.06,-0.06ZM763.74,1047.59l0.04,-0.05l0.06,-0.06l0.0,0.09l-0.1,0.02ZM761.48,1055.5l-0.02,0.0l0.1,-0.12l0.0,0.04l-0.08,0.08ZM761.62,1055.31l0.0,0.01l-0.06,0.06l0.0,-0.01l0.06,-0.06ZM831.61,1162.48l-0.08,-0.08l0.12,0.08l-0.03,0.0ZM831.46,1162.33l-0.05,0.0l-0.38,-0.38l0.3,0.29l0.12,0.08ZM830.87,1161.89l-0.15,-0.15l-0.05,-0.01l0.08,0.0l0.2,0.15l-0.1,0.0ZM844.73,1168.72l-0.05,-0.0l-0.01,-0.01l0.05,0.0l0.01,0.01ZM840.49,1166.59l-0.37,-0.22l-0.17,0.0l-0.13,-0.08l0.35,0.07l0.32,0.23ZM839.73,1166.22l0.02,0.0l0.01,0.01l-0.02,0.0l-0.01,-0.01ZM840.98,1166.81l0.01,0.01l-0.04,-0.01l0.03,0.0ZM841.05,1166.88l1.09,0.29l1.73,1.04l-2.66,-1.18l-0.16,-0.16ZM843.94,1168.28l0.17,0.0l0.13,0.08l-0.22,0.0l-0.08,-0.08ZM844.54,1168.65l-0.23,-0.23l0.3,0.23l-0.07,0.0ZM870.95,1191.32l-0.12,-0.12l0.06,0.0l0.06,0.12ZM863.61,1189.36l0.06,0.0l0.46,-0.44l-0.23,0.45l-0.29,-0.01ZM763.94,1066.35l0.5,-0.6l0.8,0.56l-0.55,0.48l-0.76,-0.44ZM764.02,1062.94l0.06,0.57l-0.25,0.36l-0.49,-1.12l0.18,-0.28l0.49,0.47ZM763.53,1062.47l0.0,-0.01l0.06,-0.06l0.0,0.01l-0.06,0.06ZM761.99,1059.16l-0.25,-0.48l0.03,-0.38l0.58,0.25l0.0,0.52l-0.37,0.09ZM737.29,1077.98l-0.37,-0.39l1.01,-0.75l1.26,0.65l0.06,1.53l-0.49,1.24l-1.29,-1.55l-0.18,-0.73ZM716.64,1052.66l-0.17,-0.28l2.01,0.3l-0.37,0.63l0.28,0.48l-0.16,0.36l-0.95,-0.87l-0.64,-0.15l0.0,-0.47ZM703.24,1042.15l0.95,-1.06l1.05,-0.08l0.4,-0.4l0.0,-0.52l0.1,1.07l-0.47,0.92l0.37,2.41l-1.04,-0.74l-1.35,-1.61ZM705.64,1040.0l0.0,0.01l-0.04,-0.04l0.01,-0.01l0.03,0.03ZM653.53,1067.21l-0.12,-0.9l0.18,-0.07l0.18,0.38l-0.24,0.59Z\", \"name\": \"Medenine\"}, \"tn-ks\": {\"path\": \"M167.23,763.61l0.3,-5.31l0.63,-2.12l-0.1,-1.38l-1.15,-1.68l0.39,-1.74l-0.39,-2.44l-0.63,-2.32l-0.91,-1.0l0.6,-1.01l-1.08,-1.95l0.18,-3.08l-2.46,-3.38l-0.27,-1.94l0.45,-1.67l-0.14,-1.18l-1.06,-3.09l-0.06,-1.1l-0.96,-1.01l0.07,-1.0l-0.89,-1.03l1.67,-1.77l2.02,-1.17l1.14,-0.01l1.39,-1.68l1.09,-0.48l0.78,-1.02l1.57,-0.25l1.04,-0.54l0.45,-0.75l1.13,0.62l0.81,-0.33l1.32,0.22l0.48,-0.3l0.57,-14.31l-0.49,-2.32l6.07,-16.35l-0.1,-0.62l1.27,-1.77l0.78,-2.75l0.71,-0.64l0.37,-2.07l0.78,-1.01l3.4,-1.99l1.83,-1.85l1.2,-0.67l2.71,-2.77l3.17,-6.11l1.39,-7.26l0.87,-0.77l1.27,-2.46l3.5,-5.0l1.3,-2.83l5.2,-5.49l-0.05,-0.54l-0.54,-0.36l-2.64,0.93l-0.67,-0.25l-4.02,0.34l-2.14,-0.68l-2.01,-1.57l-2.2,-0.39l-1.56,0.29l-0.11,-0.72l-1.8,-0.64l-1.62,-1.99l-3.33,-2.4l-2.77,-1.01l-1.14,-1.33l-2.08,-0.67l-3.44,-0.39l-1.87,-2.62l0.02,-1.87l-0.61,-1.66l-1.98,-2.54l0.01,-2.95l0.84,0.05l0.42,-0.45l-0.13,-2.17l0.34,-2.6l-0.81,-4.28l0.31,-2.31l-0.47,-2.45l2.62,-5.29l0.66,-2.68l-0.61,-2.0l-1.94,-0.28l2.24,-1.56l1.97,-5.82l2.55,-2.84l0.75,-1.56l-0.11,-0.63l0.66,-0.48l1.84,-0.3l1.77,-0.83l2.49,0.2l0.56,-0.69l0.47,-4.77l-2.93,-2.92l-2.89,-7.68l0.75,-3.26l-0.04,-3.05l-1.95,-8.54l-0.19,-6.28l-0.58,-2.5l1.37,-2.58l0.31,-3.17l3.0,0.07l1.31,-0.33l1.79,-3.31l2.45,-2.85l3.64,-3.74l2.84,-2.07l9.23,-0.27l6.28,-1.31l3.26,-0.32l3.5,2.28l5.84,6.7l0.52,0.08l3.14,-2.04l2.9,0.04l1.8,-2.29l5.6,-5.53l0.58,-3.87l-1.21,-5.58l0.53,-3.58l-0.67,-3.33l4.21,-3.79l4.83,-2.34l1.94,-2.46l1.97,-3.68l4.83,-0.53l5.32,2.79l3.45,1.18l5.77,-2.35l3.56,-0.54l2.79,1.57l6.06,5.43l4.96,2.87l4.74,3.2l4.21,1.89l5.08,1.52l4.84,1.3l11.63,2.21l2.93,1.28l-2.33,1.72l-3.99,1.16l-2.5,1.21l-0.03,0.71l5.75,3.29l1.5,2.75l1.14,3.06l0.54,2.64l2.79,2.02l3.65,0.23l4.96,-2.08l1.65,2.27l1.02,2.39l1.8,2.92l2.7,1.67l5.12,-2.08l2.56,-0.1l2.6,0.69l3.89,0.06l2.14,-1.04l2.62,1.01l2.19,2.6l2.79,1.99l-0.1,2.14l-0.87,3.5l1.11,3.26l3.36,2.46l3.61,1.59l2.57,0.47l2.64,0.04l4.21,-1.33l1.46,3.97l3.16,0.53l1.98,1.29l2.87,3.23l1.87,4.7l0.5,2.13l-0.89,2.1l0.28,0.55l2.8,0.7l-6.38,4.7l-1.52,2.37l-2.65,1.72l-3.41,1.42l-3.01,2.25l-6.7,8.61l-4.84,8.12l-7.7,10.74l-1.72,3.24l-2.1,6.67l0.26,2.57l1.69,2.1l2.87,0.45l5.93,3.35l1.47,3.36l1.71,2.35l4.09,2.37l2.23,2.01l3.34,1.36l4.98,3.64l0.16,1.44l-4.95,2.73l-0.51,2.15l1.2,2.7l0.03,2.32l-0.83,2.43l0.86,3.15l-1.56,2.01l-0.87,2.15l1.35,4.97l2.01,3.56l-1.25,2.83l-0.42,3.04l1.6,2.72l1.87,2.08l2.23,1.38l-0.42,3.19l-2.13,4.18l-3.47,1.36l-4.85,0.33l-4.58,1.03l-7.94,0.67l-3.29,1.42l-2.88,2.29l-3.51,1.94l-3.47,0.53l-4.89,0.08l-1.82,2.4l-1.07,3.29l-7.53,8.26l-1.18,1.77l-0.65,3.1l-1.25,2.98l-0.39,3.16l1.33,1.68l3.21,1.39l1.53,1.46l-0.2,2.53l-8.68,4.11l-6.11,5.64l-8.5,3.11l-5.7,3.17l-9.17,2.95l-3.41,2.08l-6.11,5.01l-4.25,2.4l-4.55,1.48l-4.4,2.44l-3.83,3.89l-5.66,2.93l-5.74,1.21l-3.66,1.51l-4.39,2.88l-13.9,7.43l-8.1,3.23l-0.25,0.47l1.7,6.45l-0.71,2.48l-4.63,0.35l-5.86,-1.79l-3.95,-2.48l-3.83,-3.65l-8.74,-6.9l-3.74,-2.43l-5.06,-0.15l-7.55,-4.34l-16.61,-7.31l-1.52,-0.29l-2.57,-6.06Z\", \"name\": \"Kasserine\"}, \"tn-mh\": {\"path\": \"M586.17,630.73l0.75,-10.67l1.22,-5.15l0.45,-5.91l-5.77,-5.63l-0.9,-4.02l0.66,-3.86l1.7,-3.36l0.77,-2.77l-0.39,-2.15l0.8,-2.97l0.09,-2.12l1.72,-1.47l4.35,-2.28l1.37,-1.3l0.67,-1.71l0.4,-3.91l1.72,-1.86l4.44,-2.98l1.89,-2.46l-0.35,-2.41l-1.71,-2.89l-2.3,-2.81l-1.77,-3.06l-1.05,-3.28l3.85,-2.41l1.35,-1.6l2.19,-1.71l1.72,-0.83l6.11,-0.99l3.68,-1.4l0.87,0.09l-3.63,3.61l-0.65,2.6l0.98,4.07l1.62,2.87l1.9,2.23l2.21,1.71l1.19,2.45l1.37,1.41l1.8,1.12l1.06,1.27l0.5,1.92l1.39,2.0l2.14,0.11l0.39,-0.42l-0.09,-1.97l0.83,-1.13l1.43,-0.72l1.68,0.96l2.54,0.3l1.73,-0.71l1.2,0.69l2.1,2.41l1.85,1.06l2.8,-0.09l0.8,3.38l1.69,2.93l1.16,1.52l2.02,1.0l2.68,4.21l2.18,2.06l4.23,1.09l5.08,2.05l3.22,0.24l0.38,-0.21l2.96,-5.47l0.4,-2.24l1.19,-1.73l3.22,-1.76l3.74,-3.19l0.85,-3.38l-0.39,-3.79l9.79,-0.39l2.29,0.68l5.59,0.86l2.91,-0.16l4.1,-0.82l1.94,0.35l0.8,3.04l2.71,4.57l3.29,3.25l5.03,1.4l2.68,0.41l5.96,-0.69l1.85,-1.65l0.07,-4.86l2.83,-2.61l5.32,-5.73l7.26,-4.48l5.34,-4.15l3.54,-2.15l0.34,0.0l0.0,0.47l1.51,1.53l0.77,0.04l-0.06,0.92l0.95,0.93l1.55,-1.28l1.04,0.38l1.04,-0.08l2.53,-1.28l1.46,0.23l1.01,-1.08l-0.18,-1.51l0.56,-0.48l0.64,0.34l0.52,-0.55l-1.32,-3.02l10.23,-1.61l-0.37,3.51l0.31,4.99l0.43,2.34l1.78,4.3l2.8,3.19l2.58,1.51l1.04,0.15l2.61,-1.28l-0.37,0.63l-1.57,0.45l-0.73,0.97l-0.83,0.41l-0.06,0.51l-0.71,-0.08l-0.52,0.63l-0.37,1.78l-1.78,4.79l-0.18,1.83l-1.6,5.57l-0.61,7.32l0.49,2.71l0.74,2.11l0.49,0.59l0.34,1.56l-0.8,-0.21l-0.67,0.89l-0.44,-0.13l-0.74,0.45l-1.01,1.68l-0.18,6.63l1.11,6.03l0.68,2.18l2.95,4.74l5.53,6.48l4.12,3.98l0.68,1.14l1.75,1.3l1.38,0.6l0.12,0.43l2.98,2.81l2.79,1.81l1.09,1.05l2.08,0.3l1.07,0.9l-0.41,0.7l-0.68,0.4l-0.06,0.91l-0.66,0.42l-0.66,-0.75l-0.74,-0.3l-0.89,0.64l-0.46,-0.51l0.09,-0.63l-0.46,-0.4l-1.78,0.68l-0.57,0.68l-1.28,0.07l-0.65,0.55l0.0,1.14l-2.27,1.65l0.31,0.99l-0.55,0.96l0.0,1.13l0.49,1.37l-0.25,0.41l-0.71,0.0l-1.51,1.15l-0.37,0.75l0.06,0.98l-0.89,0.27l-0.89,0.93l-0.74,2.12l-0.8,1.04l0.0,0.53l1.46,1.3l-1.04,0.25l-2.23,-0.38l-1.34,0.38l-0.94,-0.38l-2.34,1.81l-0.52,0.62l0.18,0.44l-1.66,2.34l-3.56,6.54l-0.98,2.95l-11.73,-0.63l-4.44,-2.15l-3.76,1.3l-1.47,-0.59l-0.96,-5.95l-0.89,-2.94l0.58,-4.07l-2.13,-5.96l-1.39,-2.27l-2.0,-1.87l-2.12,-0.6l-0.44,0.16l-1.44,2.06l-0.83,2.55l-1.27,2.2l-5.96,2.67l-1.77,1.17l-0.87,-0.84l-0.47,-2.9l-0.87,-2.56l-1.88,-3.35l-3.42,-3.53l-2.01,-3.47l1.28,-11.44l-1.13,-2.64l-1.89,-1.93l-2.3,-1.25l-2.37,-0.45l-3.79,2.22l-3.26,2.61l-8.91,5.84l-4.06,0.34l-2.72,-0.71l-10.5,-4.45l-2.36,-1.32l-3.39,-0.35l-0.43,0.45l0.53,3.92l-3.3,4.94l-2.41,2.1l-0.41,1.48l3.93,4.31l1.4,2.63l-2.11,1.2l-4.24,1.16l-8.29,6.52l-4.82,5.15l-6.1,5.27l-4.35,4.45l-3.41,1.87l-3.61,-1.64l-5.48,-3.19l-2.39,-2.45l-3.5,-2.11l-2.46,-2.2l-5.68,-1.21l-11.68,1.1l-3.53,-1.5l-3.53,-2.05l-4.16,-1.13l-0.91,-2.69l-0.46,-2.91l0.39,-5.45l0.77,-2.11l0.49,-2.71l-1.35,-1.91l-6.1,-3.84l-1.82,-2.26l-0.31,-2.86Z\", \"name\": \"Mahdia\"}, \"tn-mn\": {\"path\": \"M454.12,207.27l-0.63,-0.35l-0.2,-1.02l0.49,-3.18l-1.58,-1.43l-2.81,-3.48l-0.57,-1.25l4.78,-6.4l0.92,-0.91l2.29,-1.03l2.57,0.0l1.67,0.22l0.82,1.96l0.76,0.75l0.59,-0.03l5.8,-6.61l3.43,-0.38l2.89,-0.87l3.46,-3.14l1.96,0.01l2.98,1.29l3.34,-0.53l2.2,-1.28l1.95,-2.02l1.46,-4.62l1.16,-2.27l3.59,-3.82l0.69,-4.31l1.51,-1.44l5.29,3.54l10.51,-0.16l2.93,0.77l3.24,0.28l4.43,1.67l1.49,1.13l2.13,3.92l0.8,2.53l1.58,1.64l2.28,0.12l2.35,-1.16l3.03,-0.6l1.5,2.42l0.01,1.62l-0.26,1.08l-1.25,1.6l-0.89,4.07l-1.97,2.37l-1.37,0.86l-2.08,0.4l-0.46,2.48l-1.65,0.9l-0.25,0.85l0.25,0.44l0.86,0.41l4.43,0.52l1.78,0.8l0.93,-0.02l0.71,-1.04l-0.28,-2.59l0.88,-0.9l2.32,0.34l1.78,-0.89l2.45,-0.23l1.14,-0.6l3.91,-3.52l3.53,8.51l2.5,4.39l3.71,3.4l1.92,0.9l0.58,1.28l1.1,0.82l0.2,1.35l-2.75,-0.28l-3.21,0.58l-2.53,1.32l-0.42,1.35l0.93,1.21l-0.06,0.63l-0.64,0.55l-2.36,0.13l-3.68,-4.12l-1.87,-0.4l-0.97,-0.94l-3.08,0.41l-1.64,1.03l-0.76,2.03l0.15,0.45l3.24,2.58l2.82,9.05l2.55,1.44l2.1,0.5l1.15,1.7l0.92,4.03l-0.34,1.83l-1.81,2.33l-0.82,2.05l-6.4,6.98l-2.33,1.22l-2.29,1.75l-1.52,1.75l-1.84,-2.02l-4.83,-2.52l-3.16,0.63l-2.04,1.95l-1.68,3.28l-1.67,3.83l-0.84,4.21l-1.77,5.07l-3.48,4.58l-2.49,1.14l-3.8,-0.25l-0.57,-1.94l-1.5,-2.74l-4.89,-6.08l-3.13,-6.64l-2.72,-1.98l-2.75,-3.74l-2.36,-4.65l-1.61,-6.71l0.93,-6.99l-0.46,-1.21l-1.5,-0.22l-1.92,0.72l-2.27,2.07l-3.05,-0.16l-1.36,-1.51l-11.68,-8.27l-4.45,-0.68l-2.24,-0.75l-4.18,-2.2l-1.44,-1.88l-1.01,-2.13l-0.39,-2.27l-0.8,-1.63l-0.47,-0.2l-1.22,0.35l-1.34,0.76Z\", \"name\": \"Manubah\"}, \"tn-kr\": {\"path\": \"M546.49,689.98l-0.53,-13.26l-1.0,-5.96l-1.5,-5.45l-0.39,-4.56l0.11,-5.45l-0.26,-0.38l-1.94,-0.54l-3.96,3.1l-3.6,0.96l-2.96,1.76l-4.16,1.8l-10.19,-5.67l-3.3,-2.55l-2.33,-0.82l-5.04,0.29l-5.63,-0.7l-4.39,-1.74l-4.96,0.83l-4.65,-1.15l-5.13,-3.38l-4.57,-2.37l0.78,-3.89l-1.88,-3.13l-3.33,-3.39l-2.48,-3.05l-2.3,-3.99l-3.02,-4.15l-3.81,-2.93l-2.99,-0.95l-3.59,3.1l-2.68,1.28l-2.6,2.01l-1.35,-2.51l-0.65,-2.38l-4.03,-7.04l-10.98,-6.17l-2.76,-2.22l-1.75,-2.84l-0.5,-3.15l3.88,-4.6l2.83,-2.72l2.67,-3.94l-0.03,-2.03l-1.66,-5.79l-0.87,-9.05l-4.05,-2.58l-5.06,-2.65l-1.88,-2.18l-1.53,-4.47l-1.26,-10.12l-3.77,-4.11l-5.17,-9.77l-3.4,-1.09l-2.85,-2.8l-2.76,-3.96l-3.24,-1.79l-3.5,-2.43l-6.15,-6.32l-1.99,-2.77l-1.24,-2.52l-0.52,-3.43l3.27,-4.51l2.53,-0.39l9.15,5.01l3.57,1.24l6.34,-0.43l2.94,1.58l0.45,-0.05l3.2,-2.78l5.19,-1.63l4.51,-1.84l2.55,-2.24l3.15,-1.41l4.88,-0.09l3.76,-0.64l2.29,-1.9l1.88,-2.01l-0.21,-0.66l-4.77,-0.97l-3.6,-3.37l-2.21,-2.68l-1.37,-2.79l-0.33,-2.82l4.43,-5.17l2.04,-2.95l-1.23,-3.85l1.28,-2.43l0.66,-3.59l-5.75,-9.59l-0.02,-2.05l7.39,-4.0l12.33,-10.51l5.61,-6.51l4.76,-6.92l4.2,-0.82l8.19,-8.62l3.91,-3.12l3.99,-4.0l2.57,-2.02l9.71,3.41l1.3,0.0l3.2,-3.82l2.03,-1.37l4.23,-1.88l8.61,2.84l2.58,4.96l2.18,2.37l3.27,1.65l7.4,-1.13l2.21,0.75l2.78,-0.49l1.67,0.63l2.48,1.64l2.16,0.5l1.08,2.73l1.95,2.26l2.36,1.63l3.33,0.9l2.89,-1.18l1.71,-2.68l0.96,-3.18l-0.19,-4.98l1.67,-3.49l-2.16,-4.37l0.27,-1.73l1.66,-1.09l1.23,1.79l2.34,2.48l2.3,0.88l3.7,-0.6l3.03,-1.88l2.77,-2.62l0.54,-3.12l1.59,-3.35l0.08,-3.03l-1.67,-2.19l0.95,-2.55l2.35,0.47l3.34,-0.36l3.25,0.61l4.63,-1.36l1.8,0.18l-2.37,3.08l-0.47,2.62l0.62,5.32l-0.17,2.43l-2.56,5.26l-0.08,2.53l0.37,0.41l9.49,0.88l1.72,1.26l1.92,4.9l2.24,8.41l0.24,5.92l-4.39,10.97l-3.03,4.98l-1.39,3.6l-0.84,3.33l-1.5,3.55l-3.59,5.96l-1.25,3.58l-2.63,2.58l-2.92,4.48l-0.64,2.81l1.97,3.03l6.03,7.76l1.09,2.36l1.29,4.63l5.97,5.01l4.58,13.86l1.8,2.73l2.61,5.21l2.05,7.02l3.68,3.65l-0.05,2.36l2.55,5.98l0.73,0.94l-2.81,1.08l-6.28,1.04l-1.88,0.91l-2.26,1.76l-1.32,1.58l-4.01,2.47l-0.21,0.48l1.2,3.73l1.81,3.12l2.33,2.87l1.62,2.76l0.33,1.72l-1.65,2.17l-4.42,2.97l-1.91,2.05l-0.51,4.21l-0.5,1.33l-1.19,1.13l-4.4,2.32l-1.89,1.62l-0.22,2.45l-0.81,3.01l0.39,2.14l-0.74,2.64l-1.69,3.33l-0.71,4.09l1.03,4.54l2.02,2.21l3.6,3.11l-0.43,5.63l-1.23,5.21l-0.75,10.67l0.33,3.14l2.03,2.62l6.16,3.89l1.11,1.6l-1.29,4.38l-0.4,5.6l0.47,3.06l0.81,2.22l-0.96,-0.18l-2.99,2.03l-5.64,0.3l-4.84,2.8l-5.31,6.6l-6.68,5.67l-4.77,4.93l-3.66,4.96l-4.84,7.93l-5.34,-0.64l-3.08,-1.58Z\", \"name\": \"Kairouan\"}, \"tn-an\": {\"path\": \"M531.89,193.29l1.75,-1.16l0.35,-2.34l1.74,-0.19l1.57,-0.95l2.23,-2.64l0.72,-2.24l0.23,-1.95l1.2,-1.48l0.35,-1.39l-0.05,-1.96l-1.4,-2.41l1.88,-0.84l1.78,-1.5l0.91,-1.28l0.0,-0.46l-1.5,-2.16l3.2,-8.28l0.31,-3.67l2.84,-1.97l3.52,-3.07l3.94,-7.14l2.12,-4.94l-0.13,-6.28l0.27,-2.69l-1.75,-4.05l0.68,-1.33l2.24,0.59l1.78,-1.55l2.44,-2.8l5.14,-2.46l2.35,0.24l2.08,0.7l3.36,-0.04l0.87,0.73l3.19,1.16l0.74,0.62l2.49,-0.08l0.18,0.83l2.74,2.56l4.64,-0.15l-0.48,0.97l-0.97,-0.15l-0.58,0.48l-0.31,0.69l0.46,0.48l0.52,-0.14l-2.46,2.13l-2.83,3.7l-0.43,1.79l-0.68,0.52l0.37,0.48l-0.12,1.0l-1.17,0.99l-0.37,0.77l-0.31,1.08l0.12,1.08l0.74,1.06l-0.25,1.02l0.72,1.19l0.14,1.36l0.61,0.39l0.18,1.31l0.8,0.52l0.74,1.62l-0.06,0.48l0.78,0.73l0.88,3.49l-0.55,1.48l2.09,4.23l3.69,5.08l2.81,2.4l0.01,0.64l1.42,2.23l2.27,2.29l0.64,1.24l2.19,1.07l3.08,3.07l0.21,2.32l1.42,1.44l0.0,1.06l-1.38,1.04l-1.71,4.28l0.96,2.24l1.44,1.13l-1.08,1.52l-7.06,-0.66l-2.77,0.14l-0.44,-0.3l-0.05,-2.15l-0.41,-0.43l-0.82,-0.03l-2.78,1.9l-1.35,1.84l-0.02,1.7l-4.38,-0.25l-3.04,0.53l-0.83,0.91l-0.65,0.07l-1.15,-0.13l-3.75,-2.77l-1.8,-0.67l-3.82,0.61l-1.29,1.14l-1.52,3.61l-1.5,1.91l-2.93,2.63l-1.67,-0.76l-3.54,-3.22l-2.43,-4.25l-1.98,-5.16l-1.67,-3.63l-0.38,-0.23l-1.01,0.26l-3.61,3.44l-1.0,0.51l-2.31,0.18l-1.67,0.87l-1.91,-0.37l-0.78,0.16l-1.2,1.36l0.29,1.87l-0.2,1.2l-2.29,-0.81l-2.14,-0.08l-2.72,-0.69ZM591.95,118.06l0.0,-0.57l0.92,-2.45l0.98,-0.6l-1.42,1.99l0.18,2.99l0.8,2.4l-0.92,-1.76l-0.55,-2.0Z\", \"name\": \"Ariana\"}, \"tn-gb\": {\"path\": \"M439.92,1103.68l1.26,-1.88l2.85,-1.8l1.03,-1.87l-0.23,-9.71l3.82,-4.8l4.74,-4.34l-0.07,-0.63l-5.16,-2.85l-2.83,-1.03l-2.25,-3.44l-1.7,-3.93l-2.21,-1.86l-2.78,-0.13l-3.7,0.3l-3.64,0.87l-2.76,-1.81l-0.92,-8.13l-1.97,-2.35l-2.08,-1.69l-1.76,-2.18l-3.77,-0.81l-3.2,0.01l-1.9,1.14l-2.59,-2.36l-4.26,-1.23l-1.16,-1.59l-2.08,-6.74l-0.47,-6.34l-2.6,-5.65l-4.13,-8.34l-3.38,-2.99l-2.75,-5.57l-3.84,-5.7l-1.78,-3.57l-1.35,-7.93l-0.1,-4.75l0.25,-5.57l0.82,-3.55l1.05,-14.03l-0.88,-5.31l0.48,-3.14l1.45,-2.42l2.32,-2.52l3.84,-2.59l2.98,-2.88l3.06,-1.8l4.05,-5.19l1.64,-2.89l-0.9,-2.26l-1.89,-2.36l-2.88,-2.34l-7.77,-8.26l-2.95,-2.4l-2.6,-3.49l5.44,-3.97l4.7,-1.46l4.26,-2.16l6.33,-0.81l19.05,3.68l7.17,-0.66l10.95,-4.18l5.06,-2.43l4.61,-4.14l2.37,-5.04l1.38,-4.09l15.11,-3.58l3.68,1.45l2.82,1.87l3.36,1.03l3.5,10.13l2.26,2.07l3.99,1.86l4.27,3.14l5.65,1.33l3.23,-0.65l2.79,-2.53l2.64,-1.02l7.39,3.47l1.64,2.1l1.05,3.88l1.75,2.81l2.15,1.35l2.5,3.79l3.2,2.03l3.32,0.98l5.0,-0.76l2.09,-1.58l1.45,-1.59l0.75,-1.74l-1.33,-2.29l-0.53,-2.17l1.15,-0.97l2.43,0.67l1.81,1.75l0.79,2.8l2.6,0.92l4.69,3.14l-0.16,1.26l-0.6,0.38l-0.49,1.11l0.68,1.11l1.29,1.1l0.0,1.65l0.37,1.25l-0.12,2.7l-0.49,1.47l0.06,1.79l-0.31,0.8l0.44,1.17l-0.31,0.46l0.65,0.64l-0.46,0.77l0.92,2.07l-0.49,0.98l0.18,2.57l-0.31,0.32l-0.06,1.04l1.11,3.03l0.06,2.91l0.37,0.73l0.61,6.02l0.37,0.58l1.84,7.58l0.38,0.53l-0.14,0.28l0.68,1.17l0.12,1.49l4.86,11.12l3.07,5.93l1.81,1.14l1.26,0.15l-0.86,0.79l0.25,0.81l0.65,0.55l1.08,-0.3l0.56,0.08l-1.43,1.15l-0.31,0.59l2.4,3.54l0.41,0.94l-0.16,0.48l0.52,0.47l1.0,-0.6l-0.42,0.72l1.54,2.81l13.64,15.48l3.53,3.34l11.04,7.76l1.35,1.51l-0.43,0.9l0.58,0.62l0.91,-0.59l2.75,2.22l2.45,3.13l-0.43,1.42l0.49,0.67l0.4,0.4l0.7,-0.36l1.06,0.87l8.63,9.01l4.98,3.18l0.49,0.0l1.17,1.03l3.61,2.07l0.75,0.81l0.87,0.23l0.42,0.58l0.58,-0.3l1.08,1.11l1.01,-0.37l1.57,1.62l0.49,0.0l0.58,-0.59l1.23,0.15l0.83,1.18l1.72,0.44l0.9,-0.22l0.64,1.11l1.11,-0.14l0.42,0.44l0.86,0.0l0.44,-0.68l0.81,0.45l-2.85,2.26l-5.16,2.51l-2.36,3.22l-2.18,4.63l-2.95,3.61l-2.23,3.36l-3.98,6.99l-0.92,4.36l-4.72,6.71l-1.6,3.07l-2.35,3.46l-5.3,5.68l-1.15,4.13l-1.12,2.55l-3.85,3.37l-4.66,0.01l-4.66,-0.85l-4.28,-0.02l-4.1,1.7l-7.32,4.23l-0.38,3.03l-2.05,3.64l-3.35,1.75l-3.5,0.66l-2.29,1.86l0.32,3.21l-0.15,3.69l-4.36,2.78l-3.23,2.69l-3.64,1.57l-5.98,0.98l-2.31,2.6l-2.85,-0.66l-2.76,-1.77l-2.16,-0.11l-2.71,2.88l-2.51,1.75l-3.52,1.02l-4.19,-0.07l-3.11,-1.14l-4.56,1.11l-3.94,0.46l-2.29,-1.18l-6.54,0.74l-6.35,2.57l-3.53,0.37l-4.78,-0.69l-4.72,-1.59l-3.36,-1.76l-2.64,-0.09l-6.92,-6.45l-3.44,-6.89l-5.21,-6.95l-4.03,-12.22l-3.3,-2.88l-3.11,-1.72l-8.1,-5.54l-1.41,-3.37l-5.83,-6.83Z\", \"name\": \"Gabes\"}, \"tn-sf\": {\"path\": \"M835.67,770.84l0.43,-1.82l1.5,-0.85l3.26,-0.38l0.46,-0.3l1.64,0.62l-2.53,-0.08l-2.03,0.9l-2.12,2.05l-0.55,0.12l-0.06,-0.26ZM836.23,750.94l-1.01,-1.33l0.27,-0.52l1.22,0.22l0.47,0.75l1.97,1.65l0.54,-0.08l0.68,0.15l0.52,0.22l-1.94,-0.05l-0.41,-0.37l-1.57,0.07l-0.73,-0.71ZM795.73,789.68l-0.52,-0.57l1.35,-0.38l0.4,-0.4l0.68,-0.97l0.49,-1.64l-0.74,-1.84l2.18,-0.52l0.74,-0.52l0.95,-1.07l1.54,-2.84l-0.06,-1.1l2.67,-0.75l1.26,-1.3l-1.35,-1.45l0.18,-0.72l-0.23,-0.42l1.8,0.15l0.83,-0.85l0.0,-0.6l-0.73,-1.77l-0.63,-0.68l-0.18,-1.43l-0.31,-0.35l1.25,-0.3l-0.45,0.65l0.0,0.67l1.04,1.03l0.06,0.61l1.51,1.3l0.58,0.04l0.4,0.55l0.55,0.0l0.8,0.75l0.69,-0.22l1.65,0.22l0.87,-0.45l0.79,0.67l1.17,0.37l0.74,0.0l0.65,-0.55l0.06,-0.75l-0.92,-1.73l0.52,0.04l0.52,-0.55l-0.37,-2.67l1.29,-1.07l0.0,-0.52l-0.89,-1.15l-0.44,0.0l-1.5,-1.31l-0.8,-2.31l2.37,0.75l0.68,-0.82l0.83,-0.22l0.12,0.8l0.52,0.4l0.71,-0.77l-0.06,-0.45l-0.58,-0.55l-0.73,-0.45l-0.16,-0.19l0.83,0.17l1.06,-0.54l1.03,0.31l0.46,-0.47l-0.18,-1.87l-0.86,-1.86l1.07,0.09l0.58,-0.62l-0.12,-1.57l-1.29,-1.19l-0.06,-1.4l0.71,-0.22l0.58,-0.7l-0.37,-0.72l0.89,0.37l0.58,-0.52l-0.25,0.72l1.72,1.18l0.37,1.74l0.74,0.88l0.0,0.76l1.01,1.22l1.23,0.75l0.55,0.0l0.4,-0.4l0.31,-0.9l-0.74,-1.27l-1.17,-0.7l0.17,-0.99l3.18,1.65l1.69,0.22l1.56,1.42l2.35,1.32l-0.35,0.35l-0.52,-0.6l-0.48,0.15l-1.55,-1.5l-0.61,-0.23l-1.85,0.23l-0.48,0.51l-0.37,-0.07l-0.71,1.07l1.27,1.4l-1.27,1.0l-0.06,0.75l0.68,1.5l1.36,1.53l-0.5,0.5l-1.84,-0.03l-0.31,-0.95l-0.89,-0.77l-0.43,0.0l-1.26,1.22l0.0,0.45l0.58,0.63l0.71,0.07l-0.37,1.55l0.18,0.9l4.95,3.93l-0.09,0.71l1.11,1.26l0.31,1.69l-0.19,0.41l-0.82,0.13l-0.65,0.86l-1.5,-0.64l-1.66,0.15l-1.08,1.27l-1.26,0.97l-0.61,0.0l-0.75,0.82l-0.77,0.07l-0.57,-0.52l-0.37,0.0l-0.46,0.6l-0.71,-0.23l-0.58,0.7l0.08,1.44l-0.76,0.78l-6.54,1.12l-2.12,1.3l-1.07,-0.33l-2.53,1.5l-0.54,-0.3l-1.08,0.92l-0.43,0.87l-1.38,0.45l-1.75,1.64l-0.77,0.0l-1.17,0.75l-1.54,1.42l-2.02,0.97l-0.68,0.75l-0.79,0.15l-1.36,1.35l-0.52,-0.04l-0.49,-1.57l0.43,-1.64ZM832.68,763.52l0.84,0.12l-0.18,0.9l0.31,0.51l-1.15,-0.99l0.19,-0.55ZM817.55,757.97l0.28,0.24l0.16,0.0l0.36,0.22l0.0,0.05l-0.45,-0.18l-0.35,-0.34ZM816.07,756.53l0.92,0.26l0.06,0.64l-0.94,-0.69l-0.04,-0.2ZM821.48,754.81l-0.06,-0.06l0.0,-0.0l0.06,0.06l0.0,0.0ZM821.36,754.6l0.0,-0.01l0.06,0.07l-0.06,-0.06ZM761.0,795.39l0.03,-0.1l0.32,0.32l-0.06,0.0l-0.29,-0.22ZM761.52,795.67l1.64,-1.3l1.6,-2.36l2.31,-0.94l1.71,0.79l2.46,0.0l2.1,-0.45l1.52,0.3l0.91,-0.6l1.07,0.23l1.77,1.12l0.8,-0.22l1.2,-1.0l0.4,0.4l0.61,-0.35l3.33,0.5l1.54,-0.3l0.67,-0.52l1.05,1.57l4.91,0.07l1.39,1.23l-0.22,0.58l-3.07,0.67l-4.13,3.36l-1.03,0.0l-1.01,1.45l-4.47,4.23l-1.78,-0.07l-1.19,1.59l0.54,0.94l-4.26,-4.26l-3.85,-1.12l-3.82,-2.32l-2.84,-2.61l-1.85,-0.62ZM543.99,918.65l-0.63,-2.61l-1.97,-1.91l-3.27,-0.77l-1.62,1.67l0.61,2.48l1.27,1.92l-0.56,1.36l-1.33,1.47l-1.79,1.42l-4.8,0.73l-3.01,-0.93l-2.99,-1.91l-2.39,-3.68l-2.15,-1.34l-1.62,-2.57l-1.13,-4.04l-1.89,-2.35l-7.94,-3.59l-2.96,1.16l-2.63,2.44l-3.02,0.61l-5.17,-1.22l-4.24,-3.11l-4.03,-1.89l-2.04,-1.89l-2.59,-7.32l6.88,3.3l4.12,-0.57l1.4,-3.09l-1.07,-2.48l-1.68,-1.84l-1.21,-2.92l-0.49,-2.8l-1.0,-2.62l1.43,-2.29l2.49,-1.82l4.35,-1.99l4.04,-1.28l6.72,0.6l7.91,-3.22l2.65,-3.02l2.8,-4.04l3.34,-5.93l0.64,-1.92l2.54,-3.55l1.61,-3.36l2.51,-1.48l1.85,1.06l4.06,0.57l1.64,-1.71l1.25,-2.02l4.2,-3.84l4.04,-1.55l5.23,-0.7l2.96,-1.38l1.76,-4.16l1.83,-2.2l1.36,-2.94l0.87,-6.74l-0.21,-0.42l-3.51,-1.84l-7.15,-4.59l-5.5,-2.64l-3.76,-4.38l-3.69,-1.99l-1.69,0.09l-6.37,2.34l-3.19,-0.16l-4.37,1.67l-6.04,0.36l-1.9,-4.21l-4.03,-5.76l-0.59,-3.21l2.14,-3.36l2.21,-4.34l1.51,-1.95l10.37,-17.43l1.69,-4.73l2.93,-6.58l6.36,-12.87l3.51,-3.35l-0.2,-2.75l2.81,-4.44l3.25,-3.18l2.64,-3.43l1.71,-4.35l2.47,-2.92l0.08,-3.43l2.31,-4.91l2.58,-8.2l1.26,-5.29l-1.18,-3.07l-2.22,-2.13l0.46,-1.49l4.57,-7.18l3.6,-4.88l4.72,-4.87l6.7,-5.69l5.3,-6.58l4.59,-2.64l5.47,-0.25l3.12,-2.04l5.46,1.59l3.46,2.02l3.81,1.58l11.73,-1.1l5.41,1.17l2.29,2.1l3.41,2.04l2.51,2.54l5.54,3.23l4.18,1.72l3.73,-2.06l4.36,-4.46l6.14,-5.3l4.77,-5.11l8.2,-6.44l4.07,-1.09l2.58,-1.46l0.15,-0.54l-1.61,-3.03l-3.78,-3.92l0.2,-0.93l2.4,-2.1l3.44,-5.15l-0.43,-3.83l2.64,0.25l9.65,4.54l6.25,1.99l4.44,-0.43l8.99,-5.89l3.24,-2.59l3.63,-2.13l1.77,0.41l2.2,1.19l1.7,1.76l0.98,2.34l-1.26,11.52l2.17,3.71l3.36,3.45l1.83,3.28l0.8,2.36l0.49,3.0l1.31,1.38l0.5,0.05l1.96,-1.3l6.08,-2.74l1.5,-2.5l0.81,-2.5l1.24,-1.78l1.75,0.49l1.72,1.66l1.28,2.11l2.04,5.74l-0.59,4.05l0.9,2.96l1.22,6.43l2.13,0.74l3.44,-1.31l4.48,2.14l11.7,0.63l-0.32,3.54l0.55,2.33l0.86,1.56l-0.55,0.54l0.12,1.67l-1.04,3.14l0.06,0.98l0.49,0.81l-0.0,1.8l-0.98,0.84l-0.12,0.84l-0.86,1.11l-0.26,1.09l-1.46,2.06l-0.07,1.93l-2.23,0.97l-2.55,2.24l-0.71,-0.36l-0.4,0.67l-1.01,-0.15l-0.87,0.82l-0.6,0.08l-1.84,1.2l-2.8,2.93l-2.1,1.59l-1.77,2.11l-0.18,0.69l-0.74,0.44l0.12,0.61l-0.68,1.11l0.21,0.36l-0.76,3.39l0.49,5.08l-0.49,3.24l0.8,3.36l-0.55,1.21l-0.18,2.4l0.22,0.64l-1.51,2.73l-2.34,3.02l-1.84,1.63l0.0,0.45l-1.97,2.02l-0.86,1.95l0.18,0.91l-0.25,0.97l-1.54,1.34l-1.29,1.94l-0.59,-0.55l-0.52,0.55l0.29,1.84l-0.23,1.08l1.62,2.61l-0.14,1.06l-1.57,0.34l-0.7,0.52l-2.92,0.22l-2.13,1.42l-2.05,0.9l-1.57,1.3l-1.63,2.97l-2.08,0.15l-0.71,0.7l-0.37,0.99l-0.83,0.26l-1.11,1.35l-2.21,0.67l-0.95,1.22l-0.12,0.65l-1.47,0.92l-0.8,1.42l0.25,1.42l1.99,1.47l-0.14,0.39l-1.27,-1.16l-1.38,1.24l-0.06,0.37l0.4,0.4l0.85,-0.46l1.07,1.16l-0.39,0.0l-0.52,0.77l-0.58,-0.85l-0.92,-0.15l-0.46,0.47l-0.12,0.37l0.68,0.44l0.31,1.56l-0.86,-0.06l-0.37,-1.56l-0.8,-0.47l0.0,-0.8l-0.83,-1.15l-1.32,0.7l0.0,0.42l-1.11,1.3l-0.37,1.19l-0.68,0.91l0.0,0.52l0.74,0.47l-0.31,0.87l1.33,0.87l-0.82,0.15l-0.67,-0.3l-0.65,0.7l0.12,2.39l0.37,0.4l0.0,1.17l0.43,0.52l-0.37,1.57l0.22,1.23l-2.74,3.33l-0.86,1.49l-1.57,-1.44l-0.54,0.0l-0.69,-0.67l-1.41,0.22l-2.06,1.15l-0.18,0.52l0.52,0.7l-0.67,0.76l-0.31,-0.07l-1.0,0.75l-0.6,-0.3l-1.05,0.07l-0.98,0.6l-0.52,0.9l-1.7,1.41l-0.55,0.2l-1.59,-0.58l-1.08,1.12l-1.48,0.92l-0.8,1.35l0.47,1.23l-0.16,0.35l-1.57,0.63l-0.95,0.92l-0.43,0.97l0.12,0.91l-2.4,3.66l-1.1,1.0l-0.59,-0.37l-1.2,1.22l-0.0,1.13l-0.74,0.81l-0.18,2.33l-0.37,0.73l0.06,1.04l0.37,0.5l-0.31,0.92l0.0,2.39l0.31,0.31l-1.75,2.42l-2.41,1.42l-6.58,2.91l-0.6,-0.97l-1.11,-0.07l-3.35,1.37l0.06,-0.53l-0.46,-0.47l-0.86,-0.15l-1.12,0.97l-3.0,-0.37l-1.2,0.77l-0.37,0.52l0.12,0.42l-0.52,-0.15l-1.3,0.82l-0.85,-0.37l-1.97,0.45l-0.43,0.45l-1.1,-0.07l-0.58,0.97l-1.63,0.37l-1.44,1.57l-2.24,1.42l-2.37,2.56l0.0,0.35l-0.98,0.7l-0.98,1.87l-3.44,3.8l-2.33,3.89l-2.15,2.15l-1.29,2.77l-1.17,0.96l-0.89,1.46l-2.12,0.37l-0.49,-0.22l-0.06,-1.24l-0.4,-0.4l-1.38,-0.45l-0.52,-0.52l-0.74,0.0l-0.58,0.47l-0.74,1.19l0.36,0.43l-1.16,0.91l0.49,0.88l-0.37,0.91l1.01,0.62l2.0,-1.45l-0.18,2.26l-0.47,0.85l-5.87,2.68l-0.87,-0.6l-1.32,0.03l-0.83,-1.07l-3.5,-1.56l-0.8,1.19l-0.55,-0.07l-0.52,0.55l0.52,0.57l-0.91,-0.22l-0.52,0.55l0.36,0.47l-0.3,0.44l0.58,0.61l0.51,0.0l-0.17,0.8l-0.18,0.36l-0.58,-0.55l-0.61,0.08l-0.95,1.0l-0.49,2.16l-1.12,1.61l-2.54,0.22l-2.22,0.89l-1.28,-0.22l-1.63,1.37l-1.22,1.68l-2.37,1.12l-0.65,0.92l-1.63,-1.97l-1.41,-0.74l-0.52,0.1l0.0,-0.52l-0.4,-0.4l-1.04,0.22l-0.58,0.62l0.18,0.91l-1.23,1.48l0.12,1.35l-1.35,2.87l-1.38,0.52l-0.4,0.46l-1.01,-0.54l-0.92,0.0l-0.77,0.55l0.18,1.97l-0.49,3.46l-3.23,-3.97l-2.07,0.28l-1.99,1.13l-2.12,2.56l0.06,0.39l-3.13,3.26l-0.74,1.26l-0.06,0.52l0.31,0.34l-0.71,-0.07l-1.44,1.96l-2.77,5.87l-2.4,7.3l-2.21,2.81l-1.66,3.51l-0.58,-0.41l-0.46,0.47l-0.12,5.47l-0.55,0.55l-0.31,2.17l-0.9,1.75l-0.54,-0.46l-1.54,-0.15l0.09,-2.02l-5.11,-3.43l-2.52,-0.9ZM711.21,783.49l0.89,0.3l0.06,0.96l-0.47,0.48l0.04,-0.95l-0.52,-0.8ZM612.54,873.73l0.31,-2.37l0.64,-0.15l0.99,-1.19l0.91,-0.45l0.34,1.39l0.92,0.82l0.18,0.73l0.25,1.44l-0.31,1.19l-0.57,0.26l-1.24,-0.37l-0.97,0.37l-1.09,-0.56l-0.37,-1.11ZM610.94,868.65l0.12,-0.52l0.18,0.01l0.12,0.4l-0.43,0.11Z\", \"name\": \"Sfax\"}, \"tn-sl\": {\"path\": \"M308.76,304.47l2.39,-1.55l14.04,-1.63l0.7,1.21l2.46,2.39l2.06,0.33l3.09,-0.25l1.87,0.27l1.8,1.33l1.65,4.35l3.75,2.61l0.96,1.6l-0.71,3.59l0.55,1.84l0.37,0.28l2.13,0.04l3.17,3.09l2.43,0.98l8.0,-2.63l5.67,-4.19l1.07,-0.48l5.65,0.76l4.8,0.04l3.51,0.44l2.66,0.74l2.34,1.04l2.25,3.14l2.55,2.36l2.74,1.42l3.62,-1.06l4.88,-2.66l2.46,-2.64l0.54,-2.87l-0.82,-2.99l0.09,-4.08l0.68,-3.01l2.27,-2.56l7.92,-2.86l6.49,-1.07l4.06,-0.26l2.8,0.37l4.39,-0.22l3.42,0.83l2.16,-1.1l3.95,-1.25l1.93,1.09l4.46,3.94l2.24,3.39l2.39,2.45l5.01,0.96l4.26,-0.63l3.25,0.13l2.58,1.75l3.31,-1.1l0.27,-0.39l-0.06,-1.85l0.86,-1.82l1.03,-1.2l9.27,1.1l3.97,-0.68l1.2,-1.85l0.63,1.97l0.35,3.63l-0.16,2.94l-1.86,13.24l-1.22,2.82l-0.51,2.39l-2.32,3.82l-1.33,3.37l-1.57,1.54l-4.7,2.82l-5.2,5.13l-2.41,0.81l-4.01,0.72l-5.39,-0.77l-2.28,0.99l-0.16,0.6l4.0,5.92l4.75,1.5l0.45,1.54l-0.04,4.84l0.91,2.83l0.43,0.27l1.72,-0.22l2.12,-1.44l1.55,-0.44l5.78,2.98l1.84,4.15l2.05,3.55l10.01,3.17l1.84,1.53l0.45,2.65l-1.06,4.01l-1.16,2.28l-0.76,2.87l-2.31,5.03l-1.46,2.11l-0.78,2.04l-0.87,3.22l0.34,0.51l-2.23,1.75l-3.96,3.97l-3.95,3.16l-8.13,8.55l-4.26,0.87l-4.82,7.01l-5.54,6.43l-12.27,10.46l-7.48,4.02l-0.23,0.37l0.07,2.59l5.69,9.32l-0.62,3.37l-1.32,2.75l1.26,3.46l-1.88,2.72l-4.53,5.3l0.26,3.36l1.51,3.1l2.29,2.77l3.7,3.46l4.37,0.95l-3.35,3.17l-3.56,0.61l-5.09,0.13l-3.28,1.47l-2.53,2.23l-4.4,1.79l-5.25,1.65l-3.19,2.74l-2.99,-1.55l-6.24,0.45l-3.36,-1.16l-9.52,-5.11l-3.09,0.6l-3.47,4.78l0.52,4.07l1.32,2.66l2.03,2.83l6.29,6.46l3.55,2.47l3.08,1.66l2.72,3.91l3.0,2.96l3.26,0.98l5.11,9.66l3.67,3.91l1.27,10.12l1.56,4.59l1.27,1.85l-3.08,1.51l-8.53,-1.75l-4.51,1.77l-8.61,0.88l-1.01,0.36l-2.23,-0.48l0.78,-2.02l-0.55,-2.35l-1.91,-4.8l-3.11,-3.51l-2.25,-1.42l-2.96,-0.49l-0.28,-1.64l-1.0,-2.23l-0.47,-0.22l-4.38,1.39l-2.53,-0.04l-2.43,-0.45l-3.36,-1.49l-3.23,-2.36l-0.88,-2.61l0.85,-3.43l0.12,-2.48l-3.02,-2.37l-2.39,-2.75l-2.89,-1.11l-2.35,1.05l-3.74,-0.05l-2.63,-0.7l-2.68,0.11l-4.8,2.07l-2.29,-1.37l-1.73,-2.81l-1.04,-2.42l-1.84,-2.54l-0.45,-0.15l-2.63,0.86l-2.63,1.31l-3.03,-0.19l-2.4,-1.62l-0.53,-2.57l-1.16,-3.12l-1.6,-2.93l-5.34,-3.12l1.73,-0.84l4.03,-1.17l2.84,-2.12l4.42,2.67l2.42,0.37l0.46,-0.36l0.28,-2.92l-0.65,-3.17l-0.05,-3.16l-3.6,-5.88l-1.3,-3.22l4.17,-6.25l0.69,-4.31l-0.5,-5.41l-1.22,-4.51l2.84,-2.55l0.78,-2.46l-0.33,-0.51l-2.66,-0.38l1.48,-5.4l3.32,-3.49l2.6,-1.46l3.53,-0.56l3.45,-2.39l1.11,-3.36l0.09,-3.13l-0.63,-6.02l0.92,-2.54l6.35,-6.08l3.85,-1.93l2.62,-2.56l0.37,-2.03l-1.33,-5.67l-0.78,-6.41l0.12,-4.48l0.71,-5.86l-0.32,-0.44l-7.77,-2.57l-1.15,-3.39l-0.44,-0.27l-4.67,0.52l-1.75,-3.8l-1.4,-1.59l-2.58,-0.72l-2.94,-0.06l-2.22,-8.76l-1.15,-2.75l3.15,-4.9l0.18,-2.76l-1.05,-3.38l0.56,-3.45l-2.04,-2.65l-6.11,-2.4l-2.06,-1.17l-1.4,-2.21l-1.01,-3.05l-1.13,-2.21l-4.27,-6.83l-1.64,-3.41l-0.04,-2.65l5.7,-6.14l0.98,-2.78l-0.5,-2.46l-1.75,-3.76l-0.84,-3.4l-5.58,-6.36l-2.18,-4.23l-1.77,-5.63Z\", \"name\": \"Siliana\"}, \"tn-ss\": {\"path\": \"M579.35,475.76l0.54,-2.45l2.85,-4.37l2.71,-2.7l1.23,-3.56l3.61,-6.0l1.52,-3.6l0.84,-3.35l1.36,-3.54l3.02,-4.96l2.46,-5.62l2.01,-5.65l-0.26,-6.13l-2.25,-8.48l-1.98,-5.08l-2.26,-1.65l-9.21,-0.85l0.03,-1.91l2.6,-5.38l0.18,-2.64l-0.61,-5.26l0.44,-2.38l1.14,-1.71l2.4,-2.42l1.84,-1.05l4.41,-0.9l1.66,-1.34l2.48,-7.38l1.15,-5.16l-0.04,-2.47l-0.95,-2.45l-0.3,-2.11l1.39,-2.02l4.0,-0.91l2.39,0.34l5.33,1.46l2.69,-0.83l5.32,-0.52l2.68,-2.0l1.95,-2.86l-0.03,-2.28l-0.97,-2.04l-1.47,-1.06l-2.64,-0.37l-0.44,-0.86l0.76,-1.0l1.65,-0.66l2.15,-0.17l1.21,-1.68l-0.01,-2.7l-0.68,-2.66l0.45,-2.64l-0.66,-2.79l-2.89,-5.16l-0.09,-3.34l1.18,-3.51l1.81,0.1l2.93,-0.92l5.25,-1.08l3.72,0.19l1.6,1.04l5.49,6.13l1.95,0.2l2.27,-1.86l0.63,-1.94l0.23,-2.24l1.05,-1.82l1.47,-1.3l1.41,0.38l9.71,11.45l-2.4,3.82l-1.9,3.89l-4.18,10.68l-3.81,12.73l-2.15,10.44l-0.86,7.23l-0.31,11.27l0.49,8.06l1.41,9.05l1.9,7.76l2.27,4.33l1.32,1.31l0.39,-0.27l1.49,0.12l0.86,0.53l0.71,0.99l0.56,-0.06l-0.04,2.47l0.37,2.28l0.48,0.4l-0.24,0.89l0.98,1.69l0.61,1.87l0.49,3.81l2.7,4.6l0.31,1.32l5.1,7.06l2.15,2.28l0.12,0.68l0.86,0.87l1.66,3.31l3.09,3.38l-0.32,0.33l0.06,1.21l0.74,3.11l3.07,3.7l0.8,2.67l1.23,2.12l3.38,3.02l0.46,1.02l1.24,0.75l-0.53,1.2l0.0,2.12l1.32,1.84l1.79,1.21l-2.65,2.95l0.55,3.04l-0.59,3.66l-1.29,2.2l-4.32,0.03l-0.39,0.49l1.2,3.46l-1.22,2.44l-0.66,5.74l0.13,4.84l1.66,3.31l-0.13,2.0l-5.45,5.74l-1.25,2.97l-0.3,2.85l-1.2,2.18l-2.5,1.29l-6.26,0.37l-3.34,1.03l-2.08,2.3l-0.29,3.35l1.29,2.62l1.46,2.06l-0.55,2.84l-1.71,2.19l-2.95,2.19l-2.64,1.59l-2.98,1.28l-1.21,1.89l0.11,2.3l0.88,2.9l1.28,2.36l1.92,1.86l2.15,0.49l2.04,1.41l2.5,0.4l0.42,-0.22l0.97,-1.98l0.49,-2.25l0.76,-1.64l1.41,-0.85l4.74,-1.02l5.06,3.64l0.6,4.39l-0.79,3.05l-3.48,2.87l-3.34,1.87l-1.3,1.88l-0.43,2.3l-2.8,5.18l-2.77,-0.19l-5.08,-2.05l-4.0,-0.98l-2.03,-1.9l-2.68,-4.23l-2.21,-1.17l-0.95,-1.3l-1.62,-2.82l-0.82,-3.54l-0.41,-0.31l-2.8,0.16l-1.68,-0.97l-1.99,-2.32l-1.53,-0.92l-1.97,0.7l-2.35,-0.28l-2.02,-0.98l-1.71,0.86l-1.11,1.44l-0.0,1.96l-1.18,0.04l-1.22,-1.76l-0.53,-1.96l-1.16,-1.39l-1.9,-1.21l-1.22,-1.27l-1.25,-2.51l-2.19,-1.69l-1.85,-2.17l-1.48,-2.62l-0.94,-3.92l0.59,-2.18l4.01,-3.99l-0.26,-0.66l-1.95,-0.14l-0.79,-1.0l-2.5,-5.86l-0.02,-2.55l-3.66,-3.58l-2.04,-6.97l-2.66,-5.31l-1.76,-2.65l-4.6,-13.92l-6.07,-5.15l-1.13,-4.32l-1.18,-2.58l-7.86,-10.36Z\", \"name\": \"Sousse\"}, \"tn-je\": {\"path\": \"M138.24,295.01l0.48,-0.75l1.18,0.23l1.36,-0.63l1.21,-1.05l0.79,-2.37l0.82,-0.2l3.26,1.72l3.13,-1.71l2.69,-0.46l0.58,-0.61l0.07,-0.71l1.42,-0.12l1.6,-1.27l0.52,0.06l0.75,-0.67l0.56,-0.03l0.83,-1.56l1.51,-0.9l1.79,0.54l2.24,-0.79l1.11,-0.21l1.06,0.22l1.46,-0.59l2.31,-2.24l1.07,-0.05l0.98,-0.5l1.0,-1.38l1.04,-0.74l0.22,-0.88l0.52,-0.48l-0.19,-0.86l0.85,-2.15l1.47,-0.61l1.0,0.02l1.52,-1.12l1.14,-0.14l0.53,-0.64l1.43,-0.61l0.79,-1.39l0.69,-0.52l2.96,-0.82l0.57,-0.52l1.47,1.01l1.86,-1.25l0.06,-1.25l1.01,-1.51l0.09,-1.16l0.88,-1.19l1.19,-0.03l1.27,-0.76l0.46,-0.65l2.94,0.87l3.88,-0.27l0.31,-0.56l-0.31,-0.78l0.84,-1.76l0.02,-1.22l0.94,-1.96l1.06,-4.31l-0.31,-0.73l-1.08,-0.59l1.29,-0.25l2.31,-1.33l1.36,-2.49l1.48,-1.25l0.5,-1.78l-0.33,-0.69l0.86,-1.19l0.0,-0.98l-0.23,-0.44l-1.25,-0.64l-0.26,-1.74l-0.85,-2.38l-1.47,-1.33l-0.62,-1.17l-0.33,-2.73l1.16,-1.82l-0.22,-0.55l-2.43,-2.08l-2.85,0.8l-1.51,-0.03l-0.36,-0.47l-0.74,-0.19l-0.73,-2.12l2.02,-0.38l4.24,-2.45l3.42,-0.73l1.4,-1.66l0.79,-0.33l3.78,0.26l5.1,-0.64l1.72,1.8l0.6,-0.29l1.79,0.46l1.94,-0.71l0.4,-0.42l1.66,1.12l1.55,-0.43l1.12,0.55l3.3,-4.6l1.63,-1.69l1.21,-0.78l1.78,1.82l0.98,0.17l1.68,-1.17l0.94,-1.74l1.55,0.09l4.6,-2.56l1.42,-0.46l2.91,-2.07l0.61,-1.82l1.11,-1.51l0.63,-2.1l-0.16,-0.64l-2.07,-1.12l-2.02,-2.58l-2.18,0.73l-2.16,-1.23l-0.98,0.1l-1.63,-0.72l-1.12,0.28l0.83,-1.8l-0.25,-1.56l0.57,-1.64l-0.35,-3.54l0.47,-1.56l-0.18,-1.22l0.68,-1.91l0.46,-1.08l3.86,-1.7l0.19,-0.51l-2.22,-3.87l-0.7,-2.94l2.59,-1.77l2.2,-0.85l1.23,-0.91l1.23,-0.09l0.51,-1.11l0.78,0.26l0.89,-0.69l1.03,-0.23l1.7,0.54l2.1,-1.77l-0.05,0.6l1.01,0.71l2.6,-1.08l2.14,0.23l1.06,-1.23l2.01,2.38l1.35,1.08l0.41,-0.11l1.67,1.65l3.5,-0.08l1.84,-1.21l3.01,-1.09l0.58,-0.72l0.71,0.18l3.55,-3.0l2.17,-0.38l5.16,-4.0l2.72,-2.54l0.84,-0.39l0.38,-0.69l6.3,-5.82l6.61,4.11l3.1,3.01l-0.24,4.49l-3.07,4.56l-0.76,1.87l-0.04,2.56l0.85,2.94l1.52,2.58l2.9,1.94l2.18,0.66l4.63,2.85l1.6,1.4l-1.02,5.9l-3.52,5.76l-4.17,3.5l-4.69,2.72l-0.55,1.92l-0.24,5.72l-0.92,2.49l-0.17,2.55l1.08,1.93l14.88,1.07l2.87,1.04l2.35,1.54l1.38,2.25l4.04,9.41l-1.62,2.7l-1.96,5.28l-0.93,3.64l0.22,3.45l1.24,3.37l1.52,2.94l7.89,9.77l1.35,2.86l0.18,3.08l-0.28,6.77l-0.42,2.63l-4.55,7.41l-0.84,2.66l-0.54,6.11l0.21,5.09l-7.58,2.12l-17.83,1.91l-2.69,1.76l-5.36,6.28l-2.74,1.49l-2.37,0.7l-5.55,-0.05l-3.75,1.52l-2.91,-0.06l-9.72,2.09l-3.61,0.25l-3.78,1.13l-3.79,0.33l-2.52,-0.39l-3.64,-1.85l-4.75,-1.48l-3.66,-0.72l-9.55,4.51l-2.99,1.1l-2.87,0.08l-5.36,-0.89l-2.86,0.12l-2.45,1.47l-4.84,4.68l-4.4,0.59l-3.54,0.97l-7.46,5.78l-12.23,-1.42l1.23,-1.92l-0.52,-2.27l0.88,-3.11l-0.86,-0.95l0.06,-0.36l2.84,-3.38l-0.44,-2.97l-0.88,-0.59l-4.25,-0.49l-2.34,-0.81l-1.21,-0.99l-0.62,-1.32l-2.29,-2.5l-0.98,-0.08l-2.3,2.94l-3.09,0.8l-0.13,-0.77l-0.69,-0.43l-0.56,0.15l-0.83,1.59l-0.33,-0.88l-1.23,-0.21l0.46,-0.96l-0.76,-1.15l-2.66,-0.62l-1.54,0.17l-1.3,-0.82l-5.05,1.9l-0.8,-0.88l-2.02,-1.15l-1.04,-0.13l-1.57,0.31l-2.89,-0.54l-3.03,0.11l-1.48,-0.84l-1.38,-2.32l-0.85,-0.61l-4.2,0.2l-1.08,-0.64l-0.47,-0.63l0.03,-0.71l-0.6,-1.5l-0.8,-1.19l0.27,-2.61l-0.2,-0.96l-1.71,-1.05ZM271.85,165.87l-0.18,-0.26l0.24,-0.25l0.06,0.64l-0.12,-0.14Z\", \"name\": \"Jendouba\"}, \"tn-sz\": {\"path\": \"M345.25,702.43l4.4,0.08l3.78,-0.59l3.6,-1.99l2.83,-2.26l3.18,-1.37l7.8,-0.64l4.55,-1.03l5.0,-0.36l3.86,-1.6l2.3,-4.53l0.46,-3.51l-0.19,-0.39l-2.31,-1.42l-1.75,-1.94l-1.5,-2.56l0.44,-2.57l1.26,-3.23l-2.04,-3.6l-1.3,-4.78l0.77,-1.71l1.67,-2.41l-0.88,-3.22l0.83,-2.28l-0.06,-2.63l-1.17,-2.65l0.44,-1.57l4.86,-2.57l-0.01,-2.25l-5.33,-4.06l-3.4,-1.39l-2.16,-1.97l-4.06,-2.35l-1.47,-2.06l-1.66,-3.62l-6.17,-3.49l-2.65,-0.34l-1.41,-1.67l-0.24,-2.36l2.05,-6.4l1.64,-3.07l7.69,-10.73l4.84,-8.12l6.65,-8.53l2.84,-2.11l3.31,-1.36l2.82,-1.83l1.53,-2.38l6.68,-4.93l-0.04,-0.69l9.05,-1.04l4.33,-1.76l8.55,1.75l3.84,-1.79l8.94,4.97l0.86,8.88l1.67,5.85l0.02,1.74l-2.5,3.57l-2.79,2.68l-4.01,4.76l0.45,3.73l1.88,3.11l2.93,2.39l10.81,6.01l3.96,6.91l0.64,2.36l1.6,2.96l0.6,0.13l2.94,-2.27l2.62,-1.24l3.18,-2.96l2.58,0.79l3.7,2.85l2.89,4.0l2.32,4.02l2.54,3.12l3.31,3.37l1.72,2.88l-0.85,3.74l0.21,0.44l4.79,2.48l5.29,3.46l4.8,1.18l4.88,-0.85l4.43,1.74l5.71,0.71l4.92,-0.3l2.08,0.71l3.34,2.56l10.39,5.78l4.71,-1.87l2.98,-1.76l3.53,-0.93l3.95,-3.08l1.11,0.41l-0.11,5.18l0.39,4.66l1.51,5.5l0.99,5.88l0.6,10.08l-0.08,3.35l0.22,0.36l3.5,1.77l5.27,0.63l-0.02,0.82l2.25,2.1l1.08,2.63l-1.23,5.14l-2.58,8.17l-2.31,4.89l-0.02,3.29l-2.48,2.97l-1.66,4.26l-2.55,3.32l-3.33,3.27l-2.91,4.6l0.25,2.62l-3.49,3.37l-6.4,12.95l-2.94,6.6l-1.67,4.66l-10.35,17.39l-1.52,1.96l-4.47,8.08l0.7,3.61l4.07,5.82l1.25,3.04l1.11,1.54l6.35,-0.37l4.46,-1.68l3.19,0.16l6.37,-2.35l1.2,-0.1l3.41,1.81l3.9,4.49l5.53,2.65l7.12,4.57l3.31,1.74l-0.79,6.32l-1.31,2.83l-1.85,2.23l-1.52,3.86l-2.76,1.29l-5.1,0.67l-4.35,1.67l-4.36,3.99l-1.29,2.09l-1.41,1.46l-3.42,-0.63l-1.86,-1.1l-3.23,1.66l-1.77,3.55l-2.56,3.57l-0.67,1.98l-3.31,5.88l-2.74,3.94l-2.41,2.82l-7.73,3.15l-6.68,-0.61l-4.18,1.33l-4.41,2.01l-2.66,1.94l-1.71,2.99l1.06,2.77l0.49,2.81l1.25,3.03l1.68,1.84l0.97,2.24l-1.21,2.39l-3.27,0.35l-7.4,-3.49l-0.8,-2.04l-3.51,-1.08l-2.78,-1.86l-3.84,-1.51l-7.19,1.81l-5.07,0.83l-2.95,0.93l-1.86,-1.43l-0.7,-1.86l2.32,-6.24l1.02,-7.55l0.99,-4.57l1.85,-3.12l1.06,-3.49l-1.61,-2.93l-3.42,-1.35l-3.44,-1.96l-6.29,-1.32l-4.71,-1.52l-2.72,-1.37l-4.43,-7.53l-4.5,-4.28l-10.33,-6.07l-10.11,-1.29l-5.35,0.33l-0.99,-1.35l0.13,-3.06l-1.36,-2.27l-2.67,-2.03l-3.36,-2.41l-2.48,-0.69l-2.23,0.86l-1.8,-0.04l-2.01,-1.5l-1.08,-1.75l-0.33,-2.06l0.23,-7.34l0.69,-2.59l-0.63,-2.34l-1.6,-2.37l-0.8,-2.86l2.36,-3.21l2.22,-1.67l2.35,-2.93l0.09,-3.69l-1.81,-2.31l-0.65,0.05l-1.67,2.76l-3.6,3.09l-2.49,-0.24l-1.12,-0.62l-3.96,-6.78l-0.37,-0.21l-4.99,0.42l-3.06,-2.21l-3.99,-0.49l-3.0,-1.85l-5.18,1.12l-5.0,-0.75l-7.97,-4.11l-5.56,3.08l-14.54,4.06l-2.13,-0.98l-3.3,-2.63l-3.25,-0.79l-2.8,-1.14l-2.27,-2.17l-2.11,-1.22l-8.6,-1.54l-5.51,-2.77l-2.81,-0.91l-3.81,-3.13l2.51,-0.82l4.31,-2.43l6.19,-5.06l3.29,-2.0l9.07,-2.91l5.73,-3.18l8.55,-3.13l6.23,-5.72l8.77,-4.15l0.32,-3.58l-1.84,-1.71l-3.18,-1.37l-1.0,-1.34l0.43,-2.63l1.22,-2.88l0.61,-3.0l1.06,-1.61l7.57,-8.31l1.18,-3.47l1.6,-2.07Z\", \"name\": \"Sidi Bou Zid\"}, \"tn-nb\": {\"path\": \"M620.65,291.8l3.67,-1.35l1.6,-1.53l0.05,-0.51l-1.05,-1.26l-4.58,-0.1l-0.81,-0.57l0.27,-1.54l2.49,-5.15l0.18,-2.08l3.52,-7.19l0.65,-2.51l-0.23,-2.28l-1.88,-1.68l-4.78,-0.54l-0.34,-1.05l5.2,-7.03l1.97,-5.7l1.11,-6.94l2.83,-1.8l1.47,-6.63l2.16,0.46l3.44,0.15l6.45,-2.22l1.6,-0.83l2.7,-0.47l0.69,-0.77l1.71,-0.69l0.65,-1.15l0.48,0.0l3.73,3.83l0.8,0.15l2.52,-1.23l1.2,-1.7l0.0,-0.54l-0.58,-0.55l-3.07,-0.46l-0.4,0.4l0.31,0.6l-0.49,0.29l-1.08,-0.52l-1.03,0.08l-1.13,-1.02l0.1,-0.36l1.44,-0.12l1.98,-1.0l1.4,0.0l1.06,-0.69l1.52,-0.31l2.64,-1.23l2.4,-1.38l0.95,-1.09l0.43,-1.44l0.71,-0.15l0.95,-0.86l0.98,-2.46l-0.18,-1.09l0.31,-0.91l0.0,-1.93l1.54,-1.14l0.49,-1.38l0.12,-2.85l0.74,-1.14l-0.12,-0.78l0.49,-0.68l-0.37,-0.69l0.37,-0.39l0.37,-1.76l0.12,-1.23l-0.3,-0.64l0.54,-0.67l-0.26,-0.44l0.55,-0.69l0.54,0.15l1.32,-1.63l0.31,-1.23l-0.34,-0.49l0.91,-2.03l2.29,-0.15l1.08,-0.86l0.35,-0.67l2.11,-1.17l0.06,-0.84l-0.74,-0.75l0.06,-0.31l1.67,0.15l1.24,1.38l0.8,0.0l1.04,-0.6l1.35,-0.02l0.81,-0.67l1.44,-0.18l0.77,0.31l1.58,-1.19l1.56,1.11l0.52,-0.4l0.58,1.17l1.49,-0.34l0.72,0.18l0.82,-0.62l0.72,0.62l1.29,0.0l0.51,-0.31l0.84,0.23l2.03,-0.69l6.47,-3.38l0.6,0.0l2.29,-1.77l1.7,-0.69l4.27,-5.26l2.38,-2.43l6.68,-4.0l2.72,-2.54l0.48,0.15l0.46,-0.62l1.38,-0.38l0.46,-0.63l-0.75,-0.68l0.97,-0.46l2.54,-2.62l0.81,-0.49l0.58,0.41l0.77,-1.08l0.89,-0.08l0.46,-0.48l-0.12,-1.99l0.71,0.23l2.18,-1.86l-0.04,-0.58l0.28,-0.25l0.35,-0.23l0.6,0.38l0.83,-0.86l-0.25,-1.28l0.71,-0.09l1.26,-1.55l-0.51,-0.75l1.4,0.92l1.11,0.23l0.4,-0.4l0.61,-1.77l0.06,-1.62l-1.26,-1.63l-0.41,-0.08l-0.75,-0.92l-0.52,0.0l0.06,-0.66l0.83,0.62l0.71,-0.63l0.12,-1.0l-1.17,-0.63l0.58,0.03l0.71,-0.94l-1.54,-1.14l1.11,-1.4l0.95,1.01l1.11,-0.15l0.34,-0.34l0.46,0.49l0.68,0.0l0.52,-1.0l1.55,-0.62l1.12,0.54l0.58,-0.49l0.77,0.34l0.88,-0.92l2.14,0.54l0.84,-0.62l0.88,1.15l1.11,0.23l1.01,-0.78l0.12,-0.45l0.89,0.15l1.25,-1.23l1.21,0.08l0.58,-0.92l1.01,0.08l3.99,-1.62l1.18,-1.54l0.68,-0.39l0.54,0.08l1.12,-0.92l0.6,0.08l0.95,-0.94l-0.8,-2.0l1.72,1.17l0.18,1.14l0.4,0.4l0.78,0.0l0.84,0.59l0.8,0.88l-0.12,1.52l0.31,0.54l3.11,3.5l-0.08,0.72l-0.45,0.47l0.28,0.55l-1.97,0.43l-1.44,2.56l-0.37,1.92l0.31,4.54l1.41,2.45l0.18,1.63l1.78,2.26l0.18,0.89l1.01,0.88l-0.4,0.81l1.29,1.37l0.65,1.26l1.03,0.08l0.72,0.89l0.37,1.86l0.49,0.52l-0.18,0.63l0.65,0.96l-0.16,1.19l0.55,2.86l-0.06,1.68l0.31,2.46l0.59,1.58l0.27,3.5l0.68,1.54l2.95,4.15l1.81,2.01l1.0,0.38l-1.21,2.44l-0.25,2.29l-0.92,1.02l0.17,0.88l-0.48,0.58l-0.68,2.76l-0.6,0.83l-0.26,0.18l-0.52,-0.57l-0.28,0.21l-0.46,-0.91l-0.92,0.0l-1.47,0.23l-1.38,1.08l-1.01,0.0l-4.76,3.99l-1.94,0.92l-3.05,3.16l-2.11,1.68l-3.41,3.78l-1.41,2.47l-2.03,2.59l-0.61,1.63l-3.26,5.06l-3.44,4.2l-1.54,3.16l-1.87,-1.11l-0.52,0.48l1.47,1.24l0.37,0.69l-5.96,9.1l-0.31,0.98l-1.29,1.47l0.27,0.44l-0.27,0.77l-1.84,2.77l0.0,0.78l-1.72,2.9l-0.31,1.09l-0.92,0.98l-3.26,5.82l-0.8,2.08l-1.72,2.74l-3.26,7.39l-0.68,0.64l-0.8,2.77l-1.23,1.36l0.25,0.4l-0.61,1.61l-1.78,3.43l-1.23,3.36l-0.37,2.17l-1.35,4.11l-1.35,1.82l0.16,0.5l-0.53,1.35l-0.46,-0.19l-0.4,0.4l-1.11,1.76l-0.43,1.68l0.64,0.62l-0.57,1.86l-0.43,0.49l-1.14,0.76l-0.59,-0.16l-0.48,0.62l-0.77,0.0l-0.58,0.61l-1.26,-0.84l-0.55,0.0l-2.41,1.22l-1.46,-0.31l-3.72,2.29l-2.66,0.23l-1.19,-0.54l-0.71,0.84l-2.12,0.31l-2.04,1.07l-0.35,-0.08l-1.38,0.99l-1.08,-0.15l-3.09,2.22l-2.01,0.61l-4.15,4.58l-1.58,0.53l-0.97,-0.08l-1.2,0.92l-0.89,-0.15l-3.89,2.14l-0.77,0.23l-0.04,-1.05l-2.67,-1.93l-2.95,0.23l-2.04,1.07l-0.78,0.0l-1.84,1.3l-2.98,2.84l-1.72,2.06l0.07,0.31l-2.03,2.85l-9.63,-11.34l-1.92,-0.58l-2.13,1.67l-1.12,1.95l-0.28,2.44l-0.56,1.71l-1.66,1.41l-1.37,-0.07l-5.4,-6.04l-1.99,-1.25l-3.98,-0.2l-8.25,2.01l-2.1,-0.15l-1.95,-1.44l-0.52,-1.81l-2.24,-4.37l0.22,-8.81l1.21,-9.74l-0.81,-4.18ZM747.43,149.99l-0.12,-0.12l0.12,0.0l0.0,0.12ZM747.55,142.0l-0.06,-0.06l0.0,-0.09l0.06,0.06l0.0,0.09ZM747.43,141.78l0.0,-0.01l0.06,0.08l-0.06,-0.06ZM747.43,141.77l-0.06,-0.06l0.0,-0.01l0.06,0.06l0.0,0.01ZM747.31,141.63l-0.12,-0.23l0.06,-0.38l0.12,0.12l-0.06,0.49ZM722.05,121.91l-0.78,-0.98l0.1,-0.48l2.46,-2.1l0.62,-0.77l-0.12,-0.94l0.4,-0.12l0.52,1.76l0.92,0.83l0.06,1.17l1.17,1.02l0.12,1.23l-0.65,0.36l-1.41,-0.47l-0.97,0.62l-0.94,-0.39l-1.35,0.52l-0.56,-0.55l0.41,-0.72Z\", \"name\": \"Nabeul\"}, \"tn-tu\": {\"path\": \"M575.35,193.7l1.2,0.41l3.83,2.81l1.51,0.2l1.15,-0.26l0.52,-0.74l2.97,-0.53l4.61,0.29l0.42,-0.42l-0.07,-1.74l1.22,-1.66l2.34,-1.64l0.27,0.0l0.06,2.03l1.11,0.87l2.77,0.1l0.23,-0.23l7.47,0.5l1.71,-2.21l-0.26,-0.68l-0.7,-0.06l-1.01,-0.84l-0.8,-1.57l1.58,-3.99l1.52,-1.3l0.0,-1.44l-1.44,-1.49l-0.33,-2.57l-3.23,-3.21l-2.06,-0.94l-0.68,-1.27l-2.83,-3.18l2.93,3.0l0.79,0.15l3.18,2.23l0.25,0.6l1.14,1.01l1.63,-0.08l1.63,1.23l2.09,0.92l1.78,0.17l0.49,0.52l0.49,-0.37l0.68,0.83l1.01,-0.11l0.43,1.26l-0.92,1.91l0.12,0.69l1.05,1.37l0.12,1.09l1.2,1.17l1.35,1.0l0.32,-0.17l2.44,2.17l1.01,0.54l0.86,1.35l-0.31,0.9l-0.58,-0.14l-1.93,1.01l-0.37,0.7l0.0,1.4l-1.78,1.44l-0.98,1.38l-0.25,0.54l0.18,1.68l-0.46,-0.01l-1.08,1.17l-1.04,2.82l-1.41,1.09l-1.04,1.61l0.0,0.46l1.14,0.72l-0.81,0.54l-1.77,-1.66l-0.45,0.27l-0.59,-0.27l-1.2,0.23l-0.29,-0.67l4.07,-1.9l1.08,-1.01l0.0,-0.61l-0.95,-0.63l-1.7,-0.08l-0.59,-0.42l0.05,-1.18l-0.65,-0.71l-2.27,-1.07l-1.84,-0.15l-1.11,0.54l-1.17,-1.15l-1.65,-0.19l-2.83,1.23l-2.74,-0.02l-1.5,1.44l-2.21,-0.0l-0.95,-0.5l-1.04,-0.0l-3.32,2.44l-1.09,1.08l-1.13,2.01l-0.09,2.81l2.42,4.15l0.92,0.19l0.25,1.34l0.52,0.48l-0.28,0.67l0.65,0.71l1.09,0.15l0.61,0.78l0.26,2.91l-0.32,1.78l-0.55,1.26l-1.52,1.35l-2.43,0.22l-4.38,1.08l-3.11,-0.01l-2.13,-1.07l-2.68,-0.25l-1.77,2.09l-0.64,2.09l-2.87,3.14l-1.77,0.83l-2.84,0.64l-4.13,0.1l-2.84,-0.48l-2.19,-0.84l0.31,-1.84l-1.01,-4.32l-1.52,-2.05l-2.12,-0.49l-2.16,-1.11l-1.87,-6.66l-0.95,-2.37l-3.25,-2.68l0.46,-1.4l1.32,-0.85l2.62,-0.41l0.95,0.89l1.77,0.31l3.55,4.16l3.16,-0.07l1.1,-1.05l0.03,-1.16l-0.89,-1.27l0.18,-0.41l2.18,-1.13l3.02,-0.58l3.35,0.33l0.28,-0.6l-0.31,-1.89l-1.18,-0.97l-0.47,-1.04l2.95,-2.65l1.58,-2.02l1.57,-3.69l0.78,-0.73l3.4,-0.61l0.41,0.17ZM590.4,214.39l0.38,-0.6l-0.18,-1.14l0.0,-0.38l0.18,0.0l0.25,2.07l-0.63,0.04Z\", \"name\": \"Tunis\"}}, \"height\": 1954.3544733545057, \"projection\": {\"type\": \"merc\", \"centralMeridian\": 0.0}, \"width\": 900.0});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.turkey.js",
    "content": "/*\n * Map of Turkey\n * @author: Burak Özdemir <https://github.com/ozdemirburak>\n * @source: https://upload.wikimedia.org/wikipedia/commons/2/2e/BlankMapTurkishProvincesRegions.svg\n */\njQuery.fn.vectorMap(\"addMap\",\"turkey\",{\"width\": 1052, \"height\": 744, paths:{\"01\":{path:\"M 518.88945,536.62132 C 518.88945,536.07132 518.26346,535.62132 517.49836,535.62132 C 516.73326,535.62132 511.97173,533.17756 506.91718,530.19074 L 497.7271,524.76016 L 501.55827,523.69631 C 503.66542,523.1112 506.19107,522.62996 507.17083,522.6269 C 510.07497,522.61781 510.41243,519.58393 507.9795,515.35663 C 505.99039,511.90047 505.87157,511.07869 506.9756,508.41335 C 508.08759,505.72874 508.0129,505.26315 506.30864,504.25575 C 505.25309,503.63182 503.29662,502.89632 501.96094,502.62132 C 498.69356,501.94861 497.3983,497.30054 499.55919,494.0026 C 500.97835,491.83669 500.97132,491.39521 499.48141,489.12132 C 498.25083,487.24322 496.97309,486.62132 494.34496,486.62132 C 491.57224,486.62132 490.60734,486.09626 489.69325,484.09005 C 488.65658,481.81481 488.85957,481.28377 491.7001,478.84005 C 494.56985,476.37118 494.8846,475.52394 495.12487,469.62132 L 495.38945,463.12132 L 500.38945,462.59575 C 505.10181,462.10041 508.51769,460.80828 513.5626,457.61273 C 515.42541,456.43279 516.84105,456.47608 523.4757,457.91585 C 533.26028,460.03919 534.18,459.47061 533.72544,451.57937 C 533.37519,445.49913 534.72929,442.62132 537.94047,442.62132 C 538.93384,442.62132 540.40086,441.96705 541.20052,441.16739 C 542.00018,440.36773 544.84483,438.67919 547.52195,437.41509 C 550.58589,435.96833 552.95627,434.00597 553.9192,432.11902 C 557.78299,424.54754 561.3206,419.45051 564.07115,417.49194 C 567.03396,415.38223 567.09906,415.37974 570.6275,417.2412 C 575.02417,419.5607 577.57844,425.50888 575.66434,428.97063 C 574.35858,431.33217 572.9019,440.31251 572.55796,448.12132 C 572.43683,450.87132 571.67098,454.47132 570.85607,456.12132 C 569.54224,458.78151 568.75989,459.17796 563.9492,459.62132 L 558.52399,460.12132 L 555.80427,465.62132 C 554.30842,468.64632 552.54714,473.14632 551.8903,475.62132 C 551.23347,478.09632 550.28631,480.79632 549.7855,481.62132 C 547.00063,486.20892 546.53081,487.82921 547.52738,489.40909 C 548.23447,490.53007 548.23167,491.90371 547.51844,493.79327 C 546.11779,497.50402 546.97837,498.02883 551.42039,496.17284 C 556.13315,494.20372 557.88945,495.4026 557.88945,500.58873 C 557.88945,503.20394 556.75378,506.06835 554.07157,510.21825 C 548.46337,518.89522 545.2349,521.98503 540.59278,523.11814 C 536.68177,524.07279 536.43215,524.36322 535.43313,529.12132 L 534.38332,534.12132 L 528.71947,534.41874 C 525.30384,534.59811 522.5771,535.29276 521.85009,536.16874 C 520.46102,537.84247 518.88945,538.08271 518.88945,536.62132 z\",name:\"Adana\"},\"02\":{path:\"M 666.88945,476.95274 C 666.06445,476.67186 663.97144,475.80739 662.23832,475.03169 C 660.5052,474.25599 657.5228,473.62132 655.61077,473.62132 C 653.69873,473.62132 651.57414,472.94632 650.88945,472.12132 C 649.37398,470.29529 646.73637,470.18304 645.01481,471.87132 C 643.99109,472.87525 643.30454,472.57996 641.52725,470.37132 C 640.31014,468.85882 638.75289,467.62132 638.0667,467.62132 C 637.38051,467.62132 635.74671,466.91867 634.43603,466.05989 C 632.2339,464.61699 632.15764,464.29435 633.43156,461.80989 C 634.18978,460.33117 635.05624,457.99632 635.35704,456.62132 C 635.65783,455.24632 637.36318,453.21524 639.14669,452.10781 C 641.25068,450.80139 642.49811,449.15885 642.69885,447.43054 C 642.98999,444.92408 643.18743,444.82924 646.04233,445.82446 C 652.43377,448.05253 669.01974,444.05131 670.61399,439.89677 C 670.91365,439.11587 670.18127,437.15474 668.98649,435.5387 L 666.81414,432.60045 L 669.4169,431.61088 C 670.84841,431.06662 672.24538,430.62132 672.52127,430.62132 C 672.79716,430.62132 674.49784,429.49632 676.30056,428.12132 C 678.10328,426.74632 680.21076,425.62974 680.98384,425.64003 C 681.75693,425.65031 685.48113,427.22531 689.25984,429.14003 C 693.03856,431.05474 696.59609,432.62132 697.16545,432.62132 C 697.73482,432.62132 699.67562,433.74632 701.47834,435.12132 C 703.28106,436.49632 705.25099,437.62132 705.85597,437.62132 C 708.50398,437.62132 716.7703,432.46632 719.17241,429.31698 C 723.83428,423.20496 730.41515,424.18895 726.27539,430.37904 C 725.26671,431.88729 724.42974,433.57132 724.41544,434.12132 C 724.40115,434.67132 722.25195,435.53424 719.63945,436.03892 C 716.80857,436.58579 714.88945,437.49484 714.88945,438.28892 C 714.88945,439.02174 715.33945,439.62132 715.88945,439.62132 C 717.73094,439.62132 716.91458,442.47857 714.88945,443.12132 C 713.78945,443.47045 712.88945,444.57329 712.88945,445.57208 C 712.88945,446.57087 712.05043,447.60747 711.02495,447.87563 C 709.81346,448.19245 708.9153,449.67002 708.46047,452.09445 C 708.07548,454.14663 707.4965,455.5617 707.17384,455.23905 C 706.85119,454.9164 705.99452,455.43291 705.27013,456.38686 C 704.37561,457.56485 703.94285,457.69737 703.92125,456.79989 C 703.88536,455.30834 701.47729,452.62132 700.17649,452.62132 C 699.70578,452.62132 698.5048,451.24016 697.50762,449.55209 C 696.51045,447.86401 695.53454,446.6429 695.33892,446.83851 C 694.61971,447.55773 698.17937,458.17898 699.73193,459.9463 C 701.24572,461.66949 701.18301,461.7331 698.60768,461.08674 C 696.34834,460.51968 695.24712,461.01712 692.19148,463.98506 C 690.16267,465.95564 688.34717,467.41237 688.15704,467.22225 C 687.96692,467.03212 688.43937,465.05373 689.20694,462.82584 C 690.60417,458.77035 689.7533,454.20658 688.30408,457.98319 C 687.78523,459.3353 687.41399,459.47004 686.8265,458.51947 C 686.19356,457.49535 685.74198,457.49882 684.49059,458.53738 C 683.17521,459.62905 682.75827,459.42753 681.74888,457.21215 C 680.56958,454.62387 680.54133,454.61786 678.72396,456.56858 C 677.71498,457.65159 676.88945,459.00651 676.88945,459.57951 C 676.88945,460.1525 675.76445,460.62132 674.38945,460.62132 C 671.53457,460.62132 671.17773,461.78575 673.45374,463.67467 C 674.44666,464.49872 674.80495,465.82185 674.43468,467.29712 C 674.02052,468.94726 674.2817,469.62132 675.33521,469.62132 C 676.15134,469.62132 677.27887,470.48044 677.84083,471.53047 C 678.7041,473.14351 678.31293,473.76392 675.31885,475.53047 C 671.80966,477.60095 669.79288,477.94123 666.88945,476.95274 z\",name:\"Adıyaman\"},\"03\":{path:\"M 224.92847,443.31 C 224.30556,442.31377 222.21895,440.56825 220.29155,439.43105 C 217.1445,437.57425 216.8545,437.0452 217.44742,434.24237 C 218.1982,430.69335 222.15135,426.8825 225.97707,426.01979 C 227.40026,425.69885 230.66276,423.6429 233.22707,421.45099 C 238.2035,417.19726 238.86115,414.94511 236.38945,410.62132 C 235.60343,409.24632 234.94437,406.96226 234.92489,405.54563 C 234.88846,402.89813 232.18062,399.79632 228.03806,397.65683 L 225.68666,396.44242 L 228.28806,393.72715 C 229.85657,392.08997 230.90265,389.84247 230.9227,388.0666 C 230.95005,385.64339 232.38963,383.88053 239.04421,378.12132 C 249.67456,368.92127 250.87006,367.62651 251.4909,364.64122 C 251.77912,363.25527 252.22786,361.07862 252.48809,359.80421 C 252.74879,358.52753 254.37359,356.73144 256.10663,355.80421 C 257.83659,354.87862 260.27798,353.06194 261.53195,351.76714 L 263.81189,349.41296 L 266.77509,352.65726 C 269.26173,355.37978 270.2267,355.80387 272.7751,355.29419 C 274.44534,354.96014 276.08091,355.12209 276.40969,355.65407 C 276.73848,356.18606 278.99009,356.62132 281.41328,356.62132 C 284.83009,356.62132 286.06513,356.16158 286.91517,354.57326 C 287.69809,353.11036 288.59375,352.71008 290.05003,353.17228 C 291.37664,353.59333 294.35372,352.66975 298.57281,350.52825 C 305.76054,346.87995 308.13707,347.21351 308.70375,351.95018 C 309.01044,354.51376 313.04723,358.61576 315.27431,358.6269 C 315.88764,358.62996 318.07695,359.10112 320.13945,359.6739 C 323.64193,360.64659 323.88945,360.96909 323.88945,364.55992 C 323.88945,367.82682 324.2651,368.49879 326.38945,369.03196 C 329.33588,369.77147 329.6831,371.60102 327.00969,372.30013 C 325.69288,372.64448 324.96783,374.00031 324.58863,376.82746 C 324.23201,379.48622 322.99678,381.94711 320.96838,384.03988 C 317.23591,387.89082 317.11434,389.31104 320.38945,390.80327 C 321.76445,391.42977 322.88945,392.23045 322.88945,392.58257 C 322.88945,392.93469 320.97695,394.19091 318.63945,395.37418 C 316.30195,396.55744 311.63435,399.32153 308.267,401.5166 L 302.14455,405.50764 L 300.017,403.52552 C 298.84685,402.43536 297.88945,401.05169 297.88945,400.4507 C 297.88945,399.74387 296.40135,399.55758 293.67559,399.92318 C 290.69517,400.32294 288.90852,401.24781 287.57179,403.08285 C 286.53232,404.5098 284.26606,406.40137 282.53565,407.28633 C 280.80524,408.17129 277.66796,410.24843 275.56392,411.90219 C 273.45988,413.55595 268.73488,416.12015 265.06392,417.60042 C 259.99789,419.64323 257.6665,421.27208 255.38945,424.35961 C 253.73945,426.59689 250.63585,429.24418 248.49257,430.24247 C 245.69266,431.54659 243.42581,433.88341 240.43978,438.54379 L 236.28386,445.03004 L 231.17244,445.07568 C 227.28884,445.11036 225.78896,444.68622 224.92847,443.31 z\",name:\"Afyonkarahisar\"},\"04\":{path:\"M 909.70981,362.4615 C 908.21002,360.16428 907.88403,358.98236 906.08458,349.31747 C 905.44731,345.89471 904.15783,343.45099 901.59935,340.81747 C 899.6244,338.78459 897.5398,335.87575 896.96692,334.35339 C 896.39404,332.83102 894.76791,331.14541 893.3533,330.60757 L 890.78128,329.6297 L 893.33536,326.28112 C 896.61733,321.97824 896.75445,317.13456 893.63945,315.53971 C 891.10099,314.24005 882.88945,306.57728 882.88945,305.50813 C 882.88945,304.15935 891.70514,299.66507 896.51918,298.55963 C 904.77777,296.66324 915.26475,293.53323 917.88945,292.18134 C 922.6369,289.73609 929.29446,289.51535 933.72567,291.65628 C 935.96261,292.73705 938.23425,293.62132 938.77376,293.62132 C 940.31317,293.62132 941.05996,297.19551 940.33167,301.07761 C 939.68878,304.50452 939.76706,304.62132 942.70673,304.62132 C 944.37865,304.62132 946.39035,303.97756 947.17718,303.19074 C 948.40686,301.96105 949.15414,301.95489 952.4986,303.14684 C 954.63857,303.90952 958.21195,304.55329 960.43945,304.57743 C 962.66695,304.60157 964.94281,305.07468 965.49693,305.6288 C 966.05104,306.18291 971.43824,306.69762 977.46849,306.7726 C 985.88913,306.87731 989.17,306.5276 991.61136,305.26513 C 993.35968,304.36103 995.16279,303.62132 995.61826,303.62132 C 996.70935,303.62132 996.25132,311.4637 995.07291,312.95863 C 994.56883,313.59811 994.13649,316.29235 994.11215,318.94583 C 994.05445,325.23815 992.50056,326.33249 983.5439,326.38856 C 977.51786,326.42628 976.30801,326.74069 974.87412,328.64164 C 973.44515,330.53607 972.62434,330.75233 969.11399,330.15926 C 965.2749,329.51065 964.92292,329.65591 963.45487,332.49481 C 962.59389,334.15977 961.88945,336.12935 961.88945,336.87166 C 961.88945,340.12957 959.59331,340.63282 956.27538,338.10211 C 954.48651,336.73768 952.73784,335.62132 952.38945,335.62132 C 952.04106,335.62132 950.28106,334.49632 948.47834,333.12132 C 944.80329,330.31822 939.78144,329.84161 937.89327,332.11672 C 937.21068,332.93919 934.85874,334.14945 932.66673,334.80619 C 927.05854,336.48645 926.49069,339.21403 931.38945,340.94143 C 932.69885,341.40315 930.31575,346.08684 926.41681,350.71454 C 920.67697,357.52724 919.88945,358.64876 919.88945,360.01031 C 919.88945,361.90941 917.73676,363.50186 914.21824,364.20556 C 911.8196,364.68529 910.93934,364.34477 909.70981,362.4615 z\",name:\"Ağrı\"},\"05\":{path:\"M 522.9393,286.52818 C 523.55542,285.37695 523.8006,283.40344 523.48415,282.1426 C 523.12994,280.73134 523.48165,279.37473 524.39912,278.6133 C 525.2188,277.93302 525.88945,276.83497 525.88945,276.17319 C 525.88945,275.51141 527.01445,273.91307 528.38945,272.62132 C 529.76445,271.32957 530.88945,269.66979 530.88945,268.93291 C 530.88945,267.34178 524.91279,261.69268 523.1849,261.65063 C 522.5224,261.63451 520.80133,260.44229 519.3603,259.00126 C 517.06383,256.70479 516.132,256.43964 511.81542,256.85441 C 506.40335,257.37444 505.3449,256.69616 503.94355,251.80994 C 503.36525,249.79355 503.49434,248.00929 504.33587,246.38724 C 505.02568,245.05763 505.83157,241.82723 506.12673,239.20857 C 506.8781,232.54239 508.18885,231.57592 511.79397,235.02984 C 514.6054,237.72337 514.8988,237.78504 519.84978,236.72325 C 527.29327,235.12691 527.79254,235.23338 527.57771,238.37132 C 527.41543,240.7419 527.80336,241.1644 530.38945,241.43354 C 532.03945,241.60526 533.94765,242.47288 534.62989,243.36159 C 535.31213,244.2503 538.01213,245.27896 540.62989,245.64751 C 543.24765,246.01606 548.19693,246.92493 551.6283,247.66723 L 557.86715,249.01687 L 560.79739,246.20951 C 562.40903,244.66547 564.00789,242.28556 564.35042,240.92082 C 564.77908,239.2129 565.45318,238.62367 566.51311,239.0304 C 567.36006,239.35541 569.23122,239.62132 570.67124,239.62132 C 572.70762,239.62132 573.02278,239.88799 572.08945,240.82132 C 570.16542,242.74535 570.69531,244.53449 573.38945,245.21068 C 575.18432,245.66116 575.88945,246.51269 575.88945,248.22973 C 575.88945,249.95465 576.44696,250.62132 577.88945,250.62132 C 580.52696,250.62132 580.45952,252.23898 577.79294,252.93631 C 575.93232,253.42287 575.73541,254.09212 576.04294,258.88408 L 576.38945,264.28359 L 571.63945,263.82523 C 567.35615,263.4119 566.88945,263.57007 566.88945,265.43507 C 566.88945,266.57259 567.36744,267.7987 567.95164,268.15976 C 568.57467,268.54481 567.66746,269.80955 565.75736,271.21877 C 562.22978,273.82134 555.88945,274.53893 555.88945,272.33561 C 555.88945,271.44383 554.20426,271.04989 550.38945,271.04989 C 545.88369,271.04989 544.88945,271.35663 544.88945,272.74671 C 544.88945,275.22105 539.55738,279.30863 533.67031,281.34731 C 530.2447,282.5336 528.02443,284.03029 526.96851,285.865 C 525.03016,289.23295 521.14995,289.87161 522.9393,286.52818 z\",name:\"Amasya\"},\"06\":{path:\"M 431.49319,391.03108 C 431.15757,390.15644 431.13002,389.04109 431.43198,388.5525 C 432.02275,387.59663 428.00264,381.62132 426.76878,381.62132 C 426.35927,381.62132 425.72636,382.5598 425.36231,383.70683 L 424.70039,385.79234 L 422.29492,383.53252 C 419.85242,381.23791 418.80886,374.62132 420.88945,374.62132 C 422.26057,374.62132 422.0853,370.5788 420.60401,368.03805 C 418.52775,364.47675 415.14808,360.62132 414.10252,360.62132 C 413.55302,360.62132 412.84441,361.29632 412.52782,362.12132 C 411.65226,364.403 410.78757,364.03114 404.38945,358.62132 C 398.5272,353.6646 394.59272,352.34624 393.57526,354.99771 C 393.23983,355.87182 392.106,356.19421 390.46827,355.88114 C 388.51763,355.50825 387.88945,355.80069 387.88945,357.08167 C 387.88945,359.16148 382.59151,364.62132 380.57336,364.62132 C 379.7649,364.62132 378.85703,365.26343 378.55587,366.04824 C 377.98478,367.53646 369.67785,371.62132 367.22249,371.62132 C 366.4455,371.62132 363.96376,370.67955 361.70751,369.5285 C 358.72326,368.00605 356.62198,367.6052 353.99735,368.05769 C 352.01301,368.39979 349.03945,368.9136 347.38945,369.19949 C 344.79337,369.64929 344.08651,369.24333 342.13945,366.18432 C 340.90195,364.2401 339.88945,362.21542 339.88945,361.68503 C 339.88945,361.15465 339.15119,360.30755 338.24887,359.80259 C 336.86466,359.02794 337.21346,358.47325 340.48101,356.2529 C 342.611,354.80553 345.13343,353.62132 346.0864,353.62132 C 347.03938,353.62132 348.32347,352.67886 348.93994,351.52697 C 349.86686,349.79501 349.67136,349.01808 347.81011,347.03686 C 345.86936,344.97103 345.71985,344.28897 346.72443,342.08416 C 348.38498,338.43963 348.19434,336.56216 345.54733,330.49216 C 341.84491,322.00193 340.98644,320.2365 339.65868,318.38219 C 338.60904,316.9163 338.76501,316.39678 340.65142,315.07549 C 343.75043,312.90486 343.4507,311.14295 339.67106,309.31241 C 337.61216,308.31526 335.71621,306.1987 334.40849,303.43751 C 332.38805,299.17143 332.2909,299.11321 326.04105,298.42253 C 322.56325,298.03819 319.049,297.1687 318.23162,296.49033 C 316.45012,295.01182 301.23169,294.37598 296.95848,295.60152 C 292.50322,296.87927 290.00477,295.82396 289.03378,292.25423 C 288.2363,289.32242 288.41294,289.01067 291.78553,287.39754 C 293.76768,286.44947 296.10721,285.66197 296.98446,285.64754 C 299.29687,285.60953 301.88945,282.35625 301.88945,279.49258 C 301.88945,274.80457 305.02708,273.89801 309.11393,277.40521 C 310.34053,278.45784 311.99766,278.69973 314.85374,278.24302 C 318.13373,277.71853 319.25323,277.9851 320.96674,279.69861 C 322.73196,281.46383 323.88257,281.71112 328.22693,281.25893 C 341.8244,279.84363 345.50279,278.93809 350.33523,275.81631 C 353.05541,274.05907 355.68878,272.62132 356.18717,272.62132 C 357.89905,272.62132 370.87233,264.12102 370.88089,262.99376 C 370.8856,262.37361 370.17382,261.27229 369.29915,260.54638 C 366.54053,258.25692 370.30932,256.62075 378.33058,256.62551 C 383.87051,256.62879 386.44803,257.16674 390.30893,259.12551 C 393.01464,260.4982 396.14214,261.62132 397.25893,261.62132 C 398.83822,261.62132 399.02278,261.88799 398.08945,262.82132 C 396.04503,264.86574 396.75943,267.50273 399.78103,269.06526 C 401.3714,269.88767 403.13425,271.88481 403.69848,273.50334 C 404.85999,276.83524 410.48281,282.62132 412.5592,282.62132 C 413.31442,282.62132 414.46831,281.44497 415.1234,280.0072 C 416.21644,277.60825 416.68796,277.43783 420.85196,277.93674 C 423.34758,278.23576 427.24153,279.31295 429.50518,280.3305 L 433.62092,282.18059 L 430.72732,287.15095 C 427.9434,291.93292 427.62577,295.16464 429.46786,299.96505 C 430.03915,301.4538 424.43147,304.94765 420.38945,305.62132 C 418.11725,306.00002 417.30826,306.72782 417.05477,308.62132 C 416.8707,309.99632 416.3082,311.54882 415.80477,312.07132 C 415.30135,312.59382 414.88945,314.63617 414.88945,316.60988 C 414.88945,318.58359 413.98945,321.96373 412.88945,324.12132 C 411.78945,326.27891 410.88945,328.41708 410.88945,328.87282 C 410.88945,329.32855 412.69171,331.41588 414.89446,333.51131 C 418.39168,336.83813 418.81989,337.7191 418.2718,340.45957 C 417.85101,342.56351 418.17897,344.41424 419.26679,346.07446 C 420.15925,347.43653 420.88945,349.01679 420.88945,349.58614 C 420.88945,351.91086 436.61206,367.57567 438.97278,367.60299 C 442.04921,367.6386 441.83802,368.97175 438.38413,371.31872 C 434.67267,373.84073 433.92543,376.57637 436.38945,378.62132 C 438.41989,380.30643 438.2832,381.97947 435.6453,387.72954 C 433.2543,392.94143 432.46661,393.56776 431.49319,391.03108 z\",name:\"Ankara\"},\"07\":{path:\"M 358.69746,559.88281 C 355.56686,557.26399 352.97936,554.7297 352.94746,554.25105 C 352.88285,553.2817 349.1951,547.29935 343.88945,539.55694 C 340.92578,535.23212 339.39341,534.05619 333.88945,531.88296 C 330.31445,530.47138 326.31626,528.48504 325.00459,527.46888 C 323.69292,526.45272 322.21957,525.62132 321.73048,525.62132 C 321.2414,525.62132 318.59018,524.07287 315.83889,522.18031 C 313.0876,520.28776 309.83595,518.43604 308.613,518.06538 C 307.39005,517.69472 305.47495,516.55679 304.35722,515.53666 C 301.61782,513.03643 290.36605,510.51439 279.38945,509.94022 C 272.73687,509.59224 270.06646,509.05232 269.15109,507.87017 C 268.08302,506.49082 267.56826,506.45525 265.4077,507.61155 C 261.29423,509.81302 259.88467,513.02983 259.50113,521.09122 C 259.2772,525.79782 258.53963,529.50627 257.51707,531.06689 C 256.62188,532.43312 255.88945,534.24179 255.88945,535.08614 C 255.88945,535.93049 255.38838,536.62132 254.77595,536.62132 C 254.08247,536.62132 253.85349,537.84725 254.16891,539.87132 C 254.45716,541.72109 254.02613,544.52155 253.16846,546.37132 C 251.65269,549.64047 249.91059,550.69514 249.86485,548.37132 C 249.82911,546.55582 243.36717,543.62132 239.40505,543.62132 C 237.2289,543.62132 235.53196,544.28936 234.69615,545.4751 C 233.47386,547.20912 228.88053,548.65693 224.46392,548.70028 C 223.40487,548.71067 222.05487,549.36163 221.46392,550.14687 C 220.87296,550.9321 217.78272,551.8743 214.59673,552.24064 C 209.47698,552.82934 208.57209,552.65779 206.80777,550.76402 C 205.70984,549.58554 203.81657,548.60537 202.60049,548.58588 C 201.38442,548.5664 199.26445,547.90734 197.88945,547.12132 C 196.51445,546.3353 194.44669,545.67624 193.29444,545.65676 C 190.72361,545.61327 186.75637,541.55055 188.64104,540.89136 C 189.32942,540.65059 190.17519,538.68661 190.52053,536.52697 C 191.07944,533.0317 191.65599,532.37668 195.76893,530.56423 C 202.30055,527.68595 209.50755,520.28718 211.43643,514.47986 C 212.30332,511.8699 213.82299,508.69652 214.81346,507.4279 C 217.29018,504.25567 218.21035,500.93768 216.84704,500.09511 C 216.14661,499.66222 216.8737,498.70098 218.77714,497.54343 C 221.35035,495.97856 221.80925,495.10811 221.69289,492.01274 C 221.53169,487.72482 222.77531,486.55602 230.62318,483.61976 C 233.56753,482.51813 237.26968,480.66075 238.85018,479.49223 C 242.38818,476.87647 246.92224,477.45663 251.95399,481.16894 C 254.44046,483.00339 256.60603,483.68592 259.88216,483.66767 C 262.36117,483.65386 266.97695,483.90443 270.13945,484.22449 C 273.54186,484.56883 275.88945,484.41542 275.88945,483.84873 C 275.88945,483.322 276.81336,481.71647 277.94259,480.28089 C 279.70725,478.03749 280.26976,477.84188 281.94605,478.88874 C 283.48361,479.84897 284.26599,479.84323 285.64291,478.86164 C 288.64828,476.71914 292.21718,475.49442 297.17558,474.90404 C 301.41382,474.39942 302.45756,474.69027 306.29311,477.44475 C 311.71269,481.3368 317.47655,482.40332 321.59135,480.27547 C 324.52107,478.76046 324.67044,478.80095 327.664,481.92179 C 329.35199,483.68153 331.82433,487.59632 333.1581,490.62132 C 336.02495,497.12336 342.35065,503.7356 349.63945,507.84925 C 352.57698,509.50712 354.88945,511.52244 354.88945,512.42462 C 354.88945,513.31142 356.43133,515.63097 358.31586,517.57916 C 362.34144,521.74073 364.16879,528.37884 364.30187,539.32424 C 364.37466,545.31045 364.72728,546.77475 366.38945,547.99295 C 368.07429,549.22777 368.38945,550.61402 368.38945,556.79004 C 368.38945,563.36749 368.1838,564.14821 366.38945,564.38281 C 365.19907,564.53845 362.08526,562.71679 358.69746,559.88281 z\",name:\"Antalya\"},\"08\":{path:\"M 830.49644,257.03953 C 830.16259,256.16955 829.88945,253.49061 829.88945,251.08633 C 829.88945,246.86526 829.73427,246.64627 825.37764,244.71912 C 822.89614,243.62144 820.59372,242.01423 820.26114,241.14756 C 819.57255,239.3531 822.66825,234.56056 829.45824,226.90926 L 834.08358,221.6972 L 830.34708,218.27412 C 828.29201,216.39142 826.04174,213.19637 825.34648,211.174 C 824.09141,207.52325 824.1067,207.48536 827.48591,205.87393 C 829.35786,204.98126 830.88945,203.96604 830.88945,203.61789 C 830.88945,203.26974 832.29081,201.16156 834.00358,198.93305 C 837.39852,194.51584 837.67791,194.50082 846.67338,198.25193 C 851.29024,200.17715 852.45531,199.98831 854.66364,196.95675 C 856.30204,194.70759 857.44531,194.25706 861.99704,194.06687 C 873.19428,193.599 884.76253,196.76283 887.73933,201.10719 C 890.67372,205.38964 890.47788,206.795 886.13945,212.58823 C 884.07695,215.34234 881.03945,220.77818 879.38945,224.66786 L 876.38945,231.74001 L 867.87373,231.09305 C 857.14359,230.27784 855.68793,231.39546 855.45008,240.63161 C 855.3223,245.59299 854.8553,247.11002 852.83326,249.13205 C 850.62207,251.34324 849.99456,251.48913 846.6576,250.56775 C 842.14597,249.32203 838.53318,250.87253 835.10951,255.52385 C 832.55983,258.98779 831.39138,259.3717 830.49644,257.03953 z\",name:\"Artvin\"},\"09\":{path:\"M 83.81018,461.37132 C 83.766581,461.23382 83.654081,457.14728 83.56018,452.29011 C 83.399687,443.9884 83.239556,443.37596 80.88945,442.07555 C 79.51445,441.3147 77.60195,440.67624 76.63945,440.65676 C 75.67695,440.63727 74.88945,440.141 74.88945,439.55393 C 74.88945,438.96687 75.67695,438.72798 76.63945,439.02306 C 79.347196,439.8532 86.182473,437.93667 87.684021,435.92629 C 88.487514,434.85051 88.824457,432.79438 88.518058,430.83675 C 88.007195,427.57278 88.02538,427.55619 91.417328,428.19253 C 94.460114,428.76336 95.285412,428.38713 99.019205,424.7271 C 103.74971,420.09004 105.74602,419.71607 109.79379,422.70872 C 112.27251,424.54131 113.51874,424.72255 120.0033,424.19344 C 124.06568,423.86197 129.86445,423.45997 132.88945,423.30011 C 141.3862,422.85109 141.41508,422.83929 143.20472,419.08639 C 144.65082,416.05389 145.16526,415.69856 146.82419,416.58639 C 147.88777,417.1556 150.55826,417.62132 152.75861,417.62132 C 158.178,417.62132 160.64166,418.71927 165.63444,423.35956 L 169.87943,427.30485 L 167.38444,428.44165 C 165.31522,429.38445 164.88945,430.27783 164.88945,433.6768 C 164.88945,436.87097 165.53279,438.4185 167.80543,440.69115 C 169.40923,442.29494 170.30923,443.86188 169.80543,444.17324 C 169.30164,444.4846 168.88945,445.56878 168.88945,446.58251 C 168.88945,447.72852 167.76265,448.81847 165.91034,449.46419 C 162.22775,450.74795 155.88952,455.70525 155.88948,457.30177 C 155.88943,459.39676 151.47548,459.23899 148.38945,457.03371 C 144.67713,454.38087 137.94193,454.02805 133.27634,456.24202 C 128.54134,458.48892 113.59907,457.3248 109.90861,454.42148 C 106.44443,451.69618 101.20748,449.62132 97.793006,449.62132 C 95.645981,449.62132 94.563604,450.35076 93.41513,452.57166 C 92.576006,454.19435 91.88945,456.16759 91.88945,456.95665 C 91.88945,458.60256 87.705714,461.62132 85.424633,461.62132 C 84.580282,461.62132 83.853778,461.50882 83.81018,461.37132 z\",name:\"Aydın\"},10:{path:\"M 141.46624,347.76982 C 140.65523,346.20149 138.88495,344.19317 137.53229,343.30687 C 134.64135,341.41265 131.88945,336.32757 131.88945,332.87978 C 131.88945,330.60453 131.63487,330.48854 127.99208,331.10398 C 125.59855,331.50836 123.8394,331.34935 123.43306,330.69188 C 123.06915,330.10307 121.15295,329.62132 119.17482,329.62132 C 116.87917,329.62132 114.39265,328.71703 112.30056,327.12132 C 108.80148,324.45244 105.95898,323.95179 104.21379,325.69698 C 103.44623,326.46454 101.62355,326.32287 97.850526,325.2024 C 92.07415,323.487 86.237687,324.29187 83.883494,327.1285 C 83.20208,327.94955 81.879823,328.62132 80.945145,328.62132 C 80.010466,328.62132 77.478066,329.9588 75.317589,331.5935 C 70.580585,335.1777 70.118789,335.24512 69.709001,332.41231 C 69.51335,331.05981 68.420121,329.93114 66.88945,329.50135 L 64.38945,328.79938 L 66.63945,328.09372 C 67.87695,327.70561 68.88945,327.04514 68.88945,326.62601 C 68.88945,326.20688 70.23945,325.30477 71.88945,324.62132 C 73.53945,323.93787 74.88945,322.75827 74.88945,322 C 74.88945,321.24173 75.56445,320.62132 76.38945,320.62132 C 77.21445,320.62132 77.88945,319.94632 77.88945,319.12132 C 77.88945,318.29632 78.717218,317.62132 79.728935,317.62132 C 81.801855,317.62132 84.128399,313.40759 83.278437,311.19262 C 82.842679,310.05705 80.994307,309.8022 74.805275,310.02434 C 65.938717,310.34259 65.280293,309.71684 69.077508,304.58083 C 70.88161,302.14065 71.983174,301.62132 75.355002,301.62132 C 77.604192,301.62132 80.437188,300.92597 81.650549,300.0761 C 83.644259,298.67965 84.314676,298.68638 88.613831,300.14598 C 91.230274,301.03429 94.180181,302.62963 95.16918,303.6912 C 97.655126,306.35955 100.5256,306.09801 106.52611,302.65644 C 110.09632,300.60876 111.99503,298.7572 112.75232,296.58486 C 114.26515,292.24513 113.13163,281.75403 110.78878,278.41181 C 109.74415,276.92158 108.88945,275.4009 108.88945,275.03252 C 108.88945,273.73627 118.12599,265.7788 120.24486,265.2496 C 121.42438,264.955 124.13885,265.10969 126.277,265.59336 C 129.58662,266.34201 130.73876,266.11027 134.027,264.03449 C 136.1645,262.68515 137.88945,262.10611 137.88945,262.73794 C 137.88945,263.5435 139.67538,263.6776 143.95519,263.19339 C 149.69246,262.54429 149.96617,262.60944 149.00979,264.39647 C 148.45366,265.43561 147.30139,266.86447 146.4492,267.57173 C 144.40986,269.26424 145.36658,278.8271 148.01669,283.23935 C 149.04671,284.95427 149.89933,287.42927 149.91141,288.73935 C 149.92349,290.04944 150.77934,292.98435 151.8133,295.26139 C 153.25337,298.43278 154.53917,299.68064 157.30873,300.59468 C 159.62281,301.3584 161.48329,302.869 162.47736,304.79133 C 163.94093,307.62156 164.32682,307.77534 169.16915,307.45804 C 174.28162,307.12304 174.3129,307.13916 175.30677,310.62132 C 176.88213,316.14081 179.01964,317.87512 183.26529,317.07864 C 187.84674,316.21915 188.99747,318.39724 185.98516,322.22678 C 184.82613,323.70024 183.88945,326.35536 183.88945,328.16729 C 183.88945,331.81276 179.66393,336.22414 175.31238,337.12161 C 173.97977,337.39645 171.76445,337.85489 170.38945,338.14037 C 167.705,338.69772 167.24071,340.54061 168.97047,343.77271 C 169.56503,344.88366 169.84886,345.99524 169.60121,346.24289 C 169.35356,346.49055 164.9296,347.15944 159.77019,347.72933 C 154.61078,348.29921 149.96195,349.18305 149.43945,349.6934 C 148.91695,350.20376 147.24101,350.62132 145.71513,350.62132 C 143.67607,350.62132 142.55001,349.8656 141.46624,347.76982 z M 133.88945,259.94269 C 131.93243,259.35998 127.74982,252.82565 128.88483,252.12418 C 130.0351,251.41327 138.43378,253.31869 141.70516,255.03275 L 144.2796,256.38163 L 140.12436,258.50148 C 137.83898,259.66739 135.8387,260.56912 135.67929,260.50532 C 135.51988,260.44152 134.71445,260.18833 133.88945,259.94269 z M 121.23453,245.07819 C 120.90884,244.22947 120.87675,243.30069 121.16321,243.01423 C 122.17755,241.99988 127.99922,242.33109 129.13595,243.46782 C 130.00728,244.33915 129.76573,244.62132 128.14847,244.62132 C 126.97093,244.62132 125.72937,245.07132 125.38945,245.62132 C 124.44705,247.14615 121.90033,246.81325 121.23453,245.07819 z\",name:\"Balıkesir\"},11:{path:\"M 236.86925,316.25782 L 230.38945,314.02059 L 230.4832,308.57095 C 230.53476,305.57366 230.93513,301.40921 231.37291,299.31664 C 231.85808,296.99757 231.75645,294.65475 231.11263,293.31664 C 228.67771,288.25587 228.89804,286.42921 232.44293,282.28781 C 235.4485,278.77647 235.88945,277.57085 235.88945,272.8644 C 235.88945,268.23271 236.30392,267.05301 238.81253,264.5444 C 242.49878,260.85814 243.48962,260.87219 244.23945,264.62132 C 244.68083,266.82823 245.40271,267.62132 246.97009,267.62132 C 248.14195,267.62132 250.45125,268.7577 252.10187,270.1466 C 254.51988,272.18123 255.76101,272.54844 258.48965,272.03654 C 262.60019,271.2654 266.88664,272.21055 266.89715,273.89037 C 266.90139,274.56739 268.70139,276.14726 270.89715,277.40118 C 273.49968,278.88739 274.88945,280.38976 274.88945,281.71692 C 274.88945,282.83666 275.33649,284.58811 275.88288,285.60905 C 276.72162,287.17625 276.43161,287.56297 274.02039,288.09256 C 270.66116,288.83037 266.60161,293.08129 265.88053,296.61614 C 265.56308,298.17229 264.15307,299.68633 262.13294,300.64018 C 260.35168,301.48125 258.19268,303.17109 257.33516,304.39536 C 256.0939,306.16751 254.80379,306.62132 251.00706,306.62132 C 247.31507,306.62132 245.74705,307.144 244.06376,308.93577 C 241.69258,311.45978 241.14386,316.18837 243.13945,316.90108 C 243.82695,317.14662 244.15536,317.60571 243.86925,317.92128 C 243.58314,318.23685 240.43314,317.4883 236.86925,316.25782 z\",name:\"Bilecik\"},12:{path:\"M 782.63945,402.53939 C 781.67695,401.97979 780.88945,400.65467 780.88945,399.59468 C 780.88945,398.53469 779.76445,396.9303 778.38945,396.02936 C 775.58728,394.19331 775.12342,391.8525 777.38945,390.98295 C 778.21445,390.66636 778.88945,389.82494 778.88945,389.11311 C 778.88945,388.40128 780.46445,386.8896 782.38945,385.75382 C 786.63411,383.24941 786.84292,380.76392 783.02361,378.20528 C 781.20334,376.98584 780.32716,375.66352 780.61361,374.56814 C 780.86115,373.62153 780.60411,372.56301 780.04241,372.21586 C 778.92365,371.52442 779.47651,365.66024 781.05626,361.46205 C 782.29502,358.17005 780.66548,354.62132 777.91509,354.62132 C 776.86789,354.62132 773.93135,356.42132 771.38945,358.62132 C 768.84755,360.82132 766.17127,362.62132 765.44217,362.62132 C 764.64743,362.62132 763.85905,360.9043 763.4736,358.33389 C 762.63734,352.75735 764.96191,347.566 767.94581,348.34631 C 769.05098,348.63532 770.72792,348.22744 771.67233,347.43991 C 772.61675,346.65238 774.6729,345.45974 776.24156,344.7896 C 778.54948,343.80363 778.98124,343.12317 778.50441,341.22333 C 777.65751,337.849 783.94267,333.64873 790.79066,333.01262 C 795.72378,332.55439 795.88945,332.62259 795.88945,335.11155 C 795.88945,336.56485 796.5972,337.95568 797.51621,338.30833 C 798.41092,338.65167 803.6812,338.26717 809.22794,337.4539 L 819.31293,335.97521 L 821.46586,338.29827 C 822.64997,339.57595 824.46719,340.63934 825.50412,340.66136 C 826.98729,340.69285 826.80285,341.01963 824.63945,342.19329 C 821.24787,344.03326 821.24127,344.59715 824.53258,351.32435 C 826.49364,355.33261 828.171,357.23447 831.03258,358.69434 C 835.60071,361.02482 835.86313,362.24603 832.13945,363.84524 C 830.62695,364.49481 829.27007,365.09205 829.12415,365.17243 C 828.97824,365.25281 828.19074,367.88365 827.37415,371.01874 C 825.61234,377.7828 825.47213,382.24537 826.99191,383.18464 C 827.64543,383.58854 826.81806,384.48413 824.96009,385.38397 C 823.23624,386.21886 820.90949,388.1888 819.78954,389.76163 C 818.66959,391.33446 816.94048,392.62132 815.94708,392.62132 C 814.95368,392.62132 812.39683,393.22912 810.26518,393.97198 C 807.44487,394.95484 804.41137,395.10718 799.12548,394.53141 C 792.25529,393.78306 791.73071,393.87097 789.44866,396.15301 C 788.1216,397.48008 786.89039,399.55559 786.71263,400.76526 C 786.32962,403.37183 785.0385,403.9342 782.63945,402.53939 z\",\n    name:\"Bingöl\"},13:{path:\"M 908.88945,432.51896 C 907.51445,430.93174 903.84966,428.29807 900.74548,426.66635 C 897.64129,425.03462 892.97401,421.85824 890.37375,419.60773 C 886.3295,416.10746 885.19372,415.60718 882.51772,416.14738 C 880.79717,416.49471 878.23872,417.59275 876.83228,418.58747 C 874.5023,420.23538 873.92481,420.26742 870.33228,418.94809 C 868.16372,418.1517 864.99441,417.07485 863.28936,416.5551 C 858.73675,415.16732 857.2847,412.92082 855.89899,405.12132 C 854.2551,395.86868 854.18001,395.65282 852.41213,395.09864 C 847.31368,393.50041 847.27804,393.46381 849.8564,392.47313 C 851.21323,391.9518 855.93823,391.29314 860.3564,391.00943 C 872.46733,390.23176 872.2898,390.31241 873.7283,384.93402 C 874.8496,380.74163 874.80612,380.03356 873.36259,378.97802 C 871.87143,377.88765 871.90542,377.68314 873.74113,376.7007 C 874.85039,376.10704 876.81389,375.62132 878.10447,375.62132 C 879.79339,375.62132 880.76831,374.7806 881.58335,372.62132 C 882.29043,370.74804 883.42438,369.62132 884.60259,369.62132 C 885.64036,369.62132 887.0423,369.06847 887.718,368.39277 C 888.41549,367.69528 892.06819,367.07276 896.168,366.95265 C 906.55006,366.64849 917.66728,365.05059 919.39868,363.61366 C 920.2186,362.93318 920.88945,361.47643 920.88945,360.37643 C 920.88945,358.91607 921.22673,358.64306 922.13945,359.3646 C 922.82695,359.9081 924.73945,360.82767 926.38945,361.4081 C 928.33426,362.09224 928.7329,362.49119 927.52282,362.54237 C 926.08652,362.60312 925.7952,363.14004 926.25916,364.87132 C 926.5908,366.10882 926.86829,367.42893 926.8758,367.8049 C 926.88331,368.18087 928.12695,368.63703 929.63945,368.81861 L 932.38945,369.14874 L 929.18686,370.88619 C 926.96448,372.09187 923.10548,372.72346 916.57847,372.94978 C 908.97389,373.21346 905.9008,373.81647 900.53106,376.09863 C 895.09635,378.40842 893.88945,379.33767 893.88945,381.21232 C 893.88945,382.47235 894.33945,383.7814 894.88945,384.12132 C 896.35194,385.02519 896.11018,386.62132 894.51077,386.62132 C 893.7525,386.62132 892.5863,387.93899 891.91921,389.54946 C 891.25213,391.15994 890.07254,392.72082 889.29789,393.01808 C 888.52325,393.31534 887.88945,394.3062 887.88945,395.21999 C 887.88945,396.59532 888.65733,396.79487 892.3486,396.37881 C 895.14882,396.06319 896.94549,396.28945 897.17801,396.987 C 897.44344,397.7833 898.31771,397.74722 900.26592,396.85956 C 904.04106,395.13949 907.88945,395.27163 907.88945,397.12132 C 907.88945,398.05465 908.83389,398.62132 910.38945,398.62132 C 912.54434,398.62132 912.88945,399.07088 912.88945,401.87792 C 912.88945,403.66905 913.30804,406.59405 913.81964,408.37792 C 914.55946,410.95752 914.45713,411.62132 913.31964,411.62132 C 912.39721,411.62132 911.88945,412.6864 911.88945,414.62132 C 911.88945,416.81177 912.36169,417.62134 913.63945,417.6214 C 915.15314,417.62146 915.38945,418.65133 915.38945,425.24799 C 915.38945,431.78613 915.10403,433.05506 913.38945,434.13965 C 911.6362,435.24871 911.08102,435.04876 908.88945,432.51896 z\",name:\"Bitlis\"},14:{path:\"M 281.88945,287.07033 C 278.20841,286.15848 277.23155,285.42471 276.52182,283.03846 C 276.04463,281.43403 275.26634,279.35468 274.7923,278.41768 C 274.26028,277.36607 274.34134,276.46007 275.0041,276.05046 C 275.59463,275.6855 275.85423,274.21741 275.58099,272.78805 C 275.26032,271.11056 275.7878,269.29086 277.06884,267.65526 C 278.70385,265.56775 280.14017,265.03323 285.22147,264.62132 L 291.38945,264.12132 L 291.69695,259.87132 L 292.00445,255.62132 L 299.44695,255.62132 C 303.74195,255.62132 306.88945,256.04423 306.88945,256.62132 C 306.88945,257.90175 312.97963,257.91773 316.32435,256.64607 C 318.44571,255.83953 318.8933,255.01783 318.91169,251.89607 C 318.94279,246.61656 321.40533,243.99839 327.0121,243.28372 C 333.88275,242.40795 336.92332,240.70196 337.59447,237.34623 C 337.91312,235.75299 338.67234,234.2971 339.28164,234.11093 C 339.89094,233.92475 345.66654,233.48156 352.11631,233.12606 L 363.84317,232.47969 L 364.51844,236.70264 C 365.29331,241.54841 367.87332,244.62132 371.16694,244.62132 C 372.41957,244.62132 374.46918,245.33908 375.72164,246.21634 C 377.51322,247.47121 377.93387,248.59081 377.69415,251.46634 C 377.40724,254.90789 377.15587,255.15256 373.38945,255.65638 C 366.93884,256.51924 365.02819,258.83173 368.43191,261.65656 C 369.76206,262.76049 369.03941,263.53082 363.18191,267.25299 C 359.44606,269.62696 355.91505,271.581 355.33523,271.59531 C 354.75541,271.60961 352.05541,273.05907 349.33523,274.81631 C 346.03306,276.94953 342.3955,278.29113 338.38945,278.85333 C 323.23193,280.9805 324.15719,281.01326 321.60479,278.25917 C 319.42583,275.90804 318.94067,275.7928 315.5729,276.8264 C 312.55731,277.75191 311.59966,277.67734 310.15001,276.40414 C 305.58983,272.39903 300.88945,273.50789 300.88945,278.58878 C 300.88945,281.44142 298.23504,284.60582 295.81071,284.64328 C 295.02902,284.65536 292.58945,285.4572 290.38945,286.42515 C 287.02623,287.9049 285.67307,288.00761 281.88945,287.07033 z\",name:\"Bolu\"},15:{path:\"M 197.88945,502.68034 C 197.88945,502.1628 198.33945,501.46124 198.88945,501.12132 C 200.59038,500.07009 199.99425,497.16787 197.79533,495.79461 C 195.94866,494.64135 195.87028,494.28796 197.13203,492.80407 C 197.91898,491.87856 200.26375,487.97132 202.34264,484.12132 C 204.42152,480.27132 207.42,475.48156 209.00594,473.47742 C 212.46813,469.10224 212.62989,467.25734 209.66723,465.93536 C 207.76798,465.0879 207.4316,464.12098 207.35277,459.28255 C 207.26426,453.84972 207.364,453.62115 209.82499,453.61699 C 211.23544,453.61461 215.98945,451.78486 220.38945,449.55088 C 226.19075,446.60543 229.21396,445.61979 231.38945,445.96459 C 234.91105,446.52275 248.59571,444.84889 250.99094,443.56701 C 252.30875,442.86173 253.37194,443.77447 256.20787,448.04569 C 259.06493,452.34873 260.72138,453.76192 264.57956,455.18794 C 270.83916,457.50154 271.88945,458.37424 271.88945,461.26184 C 271.88945,462.57943 273.64408,466.54564 275.78863,470.07564 C 279.57332,476.30537 279.6328,476.54361 277.81416,478.18946 C 276.78365,479.12205 275.66042,480.76758 275.31808,481.84619 C 274.77499,483.55733 274.10255,483.72447 270.04255,483.15751 C 267.48334,482.80012 263.36901,482.51968 260.89958,482.53429 C 257.68264,482.55333 255.3644,481.83646 252.72267,480.00574 C 247.4622,476.36023 241.55519,475.753 237.86844,478.47873 C 236.27789,479.65467 232.56753,481.51813 229.62318,482.61976 C 221.93215,485.49734 220.59856,486.72678 220.44743,491.07893 C 220.27831,495.94896 217.73176,497.93694 212.74082,497.09516 C 209.60115,496.56562 208.43965,496.97787 204.41422,500.05055 C 199.67573,503.66752 197.88945,504.38748 197.88945,502.68034 z\",name:\"Burdur\"},16:{path:\"M 193.88945,318.92086 C 193.06445,318.62245 190.91957,317.70321 189.12306,316.87809 C 187.29081,316.03656 184.62196,315.62482 183.04453,315.9403 C 179.7279,316.60363 177.81542,314.80917 176.29594,309.60818 C 175.28515,306.14837 175.23742,306.12377 170.14303,306.43706 C 165.32151,306.73357 164.91487,306.57115 163.46652,303.77035 C 162.48325,301.86892 160.61376,300.35541 158.30873,299.59468 C 155.53917,298.68064 154.25337,297.43278 152.8133,294.26139 C 151.77934,291.98435 150.92349,288.98395 150.91141,287.59383 C 150.89933,286.2037 150.12141,283.9698 149.18269,282.62959 C 148.24397,281.28937 147.18562,277.92992 146.8308,275.16413 C 146.24299,270.58223 146.46036,269.77941 149.27721,266.12838 C 150.97755,263.92449 152.41581,262.0039 152.47335,261.8604 C 152.75914,261.1476 168.83332,264.05867 171.78331,265.35747 C 174.42856,266.5221 175.97261,266.61972 178.78331,265.80003 C 182.5115,264.71277 187.51012,265.19854 188.46324,266.74072 C 189.42381,268.29495 197.61591,267.77653 198.25108,266.12132 C 198.56766,265.29632 199.7408,264.62132 200.85807,264.62132 C 201.97533,264.62132 202.88945,264.24106 202.88945,263.77631 C 202.88945,262.36763 199.34407,259.62132 197.52553,259.62132 C 196.13812,259.62132 196.01603,259.25333 196.87249,257.653 C 197.68648,256.13205 198.43315,255.87263 200.15768,256.51161 C 201.38515,256.96642 207.89842,257.3572 214.6316,257.38002 C 225.2314,257.41594 227.20143,257.16376 229.31626,255.50023 C 231.74597,253.58902 231.78791,253.59325 237.32411,256.30846 C 243.32369,259.25093 243.98694,260.13822 240.91554,261.11304 C 237.20337,262.29124 234.88945,266.5009 234.88945,272.07618 C 234.88945,276.57077 234.41651,277.81385 231.33827,281.41007 C 228.17623,285.10421 227.86178,285.97316 228.46866,289.34007 C 228.84353,291.41976 229.59256,293.67889 230.13319,294.36036 C 230.67381,295.04183 230.81975,297.17933 230.45748,299.11036 C 229.80351,302.59633 229.76178,302.62109 224.59414,302.58952 C 221.61235,302.5713 218.5604,301.93065 217.44832,301.08952 C 214.15125,298.59574 211.88945,299.2139 211.88945,302.60878 C 211.88945,305.01596 211.09766,306.09606 207.81302,308.16957 C 205.28874,309.76308 203.15176,312.14761 202.20063,314.43211 C 200.12186,319.42508 198.18118,320.47322 193.88945,318.92086 z\",name:\"Bursa\"},17:{path:\"M 37.70422,313.12212 C 36.925933,312.32184 39.867496,305.62132 40.99711,305.62132 C 42.269906,305.62132 43.737719,299.3488 43.805194,293.62132 C 43.840831,290.59632 44.451435,286.11435 45.162091,283.6614 C 46.382966,279.44733 46.660376,279.19431 50.194444,279.07159 C 53.876077,278.94374 56.786379,276.67241 56.857647,273.87132 C 56.875138,273.18382 57.56445,272.62132 58.38945,272.62132 C 59.358976,272.62132 59.8897,271.64878 59.890156,269.87132 C 59.890743,267.58541 60.349095,267.09471 62.606176,266.96366 C 64.102532,266.87677 66.172962,265.75447 67.218201,264.46366 C 68.261391,263.17537 69.471095,262.12132 69.906432,262.12132 C 70.341768,262.12132 72.545412,260.46282 74.803418,258.43577 C 78.419643,255.18942 79.354606,254.81865 82.649167,255.32453 C 84.706323,255.6404 86.933518,256.3262 87.598491,256.84853 C 89.079884,258.01215 94.361865,256.96195 95.81119,255.21562 C 96.454752,254.44017 98.937077,253.98954 102.13029,254.06848 C 107.23335,254.19463 107.38084,254.27937 107.09947,256.92349 C 106.85591,259.21229 107.53117,260.08653 111.31786,262.38491 C 113.79747,263.88993 115.84046,265.43761 115.85784,265.8242 C 115.87523,266.21078 114.08945,267.97359 111.88945,269.74156 C 107.56123,273.21981 106.88968,275.85911 109.57726,278.82885 C 110.53095,279.88267 111.58264,283.3872 111.9952,286.88611 C 112.9917,295.33754 111.58546,298.38038 105.03567,301.94522 C 99.840846,304.7726 96.578907,304.8604 95.558142,302.20033 C 95.274303,301.46066 92.493601,300.05388 89.378804,299.07415 C 84.075186,297.40596 83.536621,297.39853 80.898202,298.95708 C 79.348667,299.87241 76.274499,300.62132 74.066717,300.62132 C 70.587767,300.62132 69.775039,301.07037 67.971009,303.98935 C 66.826152,305.84177 65.88945,308.00402 65.88945,308.79435 C 65.88945,309.80304 63.72864,310.58287 58.63945,311.41086 C 47.946961,313.15048 38.484048,313.92399 37.70422,313.12212 z M 47.907647,273.94624 C 47.917656,273.49254 49.267656,271.1411 50.907647,268.72084 C 53.868453,264.35135 54.57813,261.64333 53.13945,260.20465 C 51.530495,258.5957 52.513472,257.03832 56.369446,255.08723 C 58.580448,253.96847 61.28945,252.56091 62.38945,251.95931 C 67.13933,249.36155 72.167441,247.62132 74.923377,247.62132 C 76.554717,247.62132 77.88945,247.17132 77.88945,246.62132 C 77.88945,246.07132 78.67695,245.60701 79.63945,245.58952 C 84.587412,245.4996 86.553568,239.51814 82.38945,237.22345 C 81.28945,236.61728 80.212825,236.01969 79.996949,235.89549 C 79.781074,235.77128 80.173674,234.98378 80.869394,234.14549 C 81.652694,233.20167 83.813104,232.62132 86.54328,232.62132 C 91.907524,232.62132 93.161557,234.63832 89.933588,238.07434 C 88.610534,239.48266 87.858211,241.36716 88.05762,242.77346 C 88.348624,244.82571 87.572084,245.44776 81.889996,247.71408 C 78.314696,249.1401 75.50195,250.8276 75.63945,251.46408 C 75.77695,252.10056 75.203312,252.62132 74.364699,252.62132 C 73.526086,252.62132 72.403949,253.76809 71.87106,255.16969 C 71.314735,256.63293 69.438243,258.32973 67.464192,259.15454 C 65.573303,259.9446 63.715506,261.09375 63.335754,261.7082 C 62.956002,262.32265 61.131166,263.45803 59.280564,264.23126 C 56.753301,265.28722 55.974773,266.18191 56.152641,267.82588 C 56.33108,269.47514 55.341883,270.60084 52.13945,272.3929 C 49.80195,273.70095 47.897639,274.39995 47.907647,273.94624 z M 23.0294,267.28995 C 21.942416,265.98021 22.197542,265.51336 24.710383,264.21392 C 26.339735,263.37135 29.634078,262.55583 32.031145,262.40165 C 36.122471,262.13849 36.372815,262.27068 36.117889,264.55955 C 35.75289,267.83671 35.657021,267.89312 29.599006,268.3955 C 25.648575,268.7231 23.98671,268.44344 23.0294,267.28995 z\",name:\"Çanakkale\"},18:{path:\"M 442.38945,283.69166 C 440.18945,282.63121 436.81445,281.30884 434.88945,280.75305 C 432.96445,280.19727 429.58945,279.06001 427.38945,278.22582 C 423.12293,276.60805 414.88945,276.08398 414.88945,277.43019 C 414.88945,277.87507 414.29004,279.0588 413.55744,280.0607 C 412.30048,281.77968 412.04346,281.70446 408.99635,278.72582 C 407.22036,276.98973 405.29598,274.21733 404.71995,272.56492 C 404.14391,270.91252 402.3714,268.88767 400.78103,268.06526 C 397.79237,266.51976 397.15589,265.19272 398.88945,264.12132 C 400.57948,263.07682 399.99681,260.62132 398.05893,260.62132 C 397.05214,260.62132 394.01464,259.4982 391.30893,258.12551 C 388.60322,256.75281 384.70195,255.62781 382.63945,255.62551 C 379.05135,255.6215 378.88945,255.47633 378.88945,252.2629 C 378.88945,249.30287 379.53953,248.47285 384.36966,245.26582 C 387.73767,243.02959 390.09005,240.67024 390.47302,239.14437 C 391.01118,237.00018 391.37494,236.81078 393.14027,237.75556 C 396.01397,239.29351 402.48673,237.26933 403.18067,234.61568 C 403.62294,232.92444 404.54846,232.62132 409.27015,232.62132 C 414.54621,232.62132 414.92473,232.79169 416.49095,235.87132 C 417.40002,237.65882 418.32364,239.32089 418.54345,239.56481 C 418.76326,239.80873 420.25566,238.57123 421.8599,236.81481 C 424.68323,233.72366 425.03771,233.62132 432.92098,233.62132 L 441.06525,233.62132 L 440.41128,237.87132 C 440.0516,240.20882 439.51196,243.58382 439.21209,245.37132 L 438.66687,248.62132 L 443.55565,248.62132 C 449.45327,248.62132 452.34472,250.44074 453.89047,255.12442 C 454.52522,257.04772 455.35905,258.62132 455.74343,258.62132 C 456.12781,258.62132 456.27064,260.42132 456.06084,262.62132 C 455.80494,265.30467 456.07975,266.62132 456.89571,266.62132 C 457.7491,266.62132 457.91187,267.68827 457.44121,270.19712 C 457.03912,272.34042 457.2143,274.30781 457.87847,275.1081 C 458.68941,276.08521 458.68883,276.62727 457.87633,277.12943 C 457.26569,277.50682 456.35981,278.88417 455.86326,280.19021 C 455.35675,281.52244 453.35485,283.23568 451.30282,284.09307 C 446.76818,285.98776 447.1926,286.00688 442.38945,283.69166 z\",name:\"Çankırı\"},19:{path:\"M 458.13945,304.30261 C 456.90195,302.48483 455.88945,300.38236 455.88945,299.63044 C 455.88945,296.64789 453.25617,291.02108 450.88945,288.94641 L 448.38945,286.7549 L 452.18296,285.15651 C 454.26939,284.2774 456.25029,282.78484 456.58496,281.83972 C 456.91963,280.8946 457.89257,279.30865 458.74706,278.31538 C 459.89927,276.97604 460.03091,276.07175 459.25657,274.81538 C 458.68232,273.88365 458.41402,271.43382 458.66037,269.37132 C 458.96541,266.81731 458.71368,265.62132 457.87105,265.62132 C 456.98769,265.62132 456.81678,264.47727 457.27346,261.62132 C 457.63625,259.35253 457.50873,257.62132 456.97882,257.62132 C 456.46497,257.62132 455.52522,256.04772 454.89047,254.12442 C 454.25573,252.20113 452.7707,249.95113 451.59042,249.12442 C 449.52879,247.6804 449.52197,247.61751 451.41694,247.52443 C 452.50182,247.47114 455.11844,247.50854 457.23166,247.60755 C 459.34487,247.70656 462.43157,247.22519 464.09098,246.53784 C 466.84361,245.39767 467.06429,244.96152 466.60838,241.56248 C 466.33354,239.51338 465.1124,236.48932 463.89473,234.84233 C 461.01821,230.95164 461.77966,227.52575 466.79569,221.79037 C 470.28793,217.7973 471.04396,217.41843 476.48644,216.93414 C 481.98429,216.44492 482.91568,216.69359 490.05626,220.55709 C 495.69243,223.6066 497.98078,225.44455 498.69604,227.49634 C 499.27685,229.16246 500.90891,230.80096 502.74538,231.56165 C 505.69416,232.78307 505.79849,233.02852 505.26056,237.47862 C 504.95189,240.03211 504.05421,243.56654 503.26571,245.33291 C 501.73034,248.7724 502.17401,252.59453 504.55039,256.40019 C 505.82292,258.43809 506.48991,258.61055 510.85781,258.03113 C 515.24112,257.44966 516.01093,257.65189 518.36129,260.00225 C 519.80178,261.44274 521.5224,262.63451 522.1849,262.65063 C 522.8474,262.66676 524.90059,264.05387 526.74753,265.73311 L 530.10561,268.78626 L 527.67967,271.45379 C 523.71535,275.81291 521.67567,279.69582 522.23221,281.82405 C 522.51967,282.92327 522.27298,284.88021 521.68403,286.17282 C 520.82211,288.06453 519.71468,288.58138 516.00733,288.82217 L 511.40145,289.12132 L 510.39545,296.01278 C 509.32272,303.36136 509.16092,303.53888 502.13945,305.07104 C 499.46435,305.65478 498.88945,305.47805 498.88945,304.07194 C 498.88945,302.58988 498.1958,302.45568 493.65147,303.0585 C 490.77058,303.44066 486.93249,304.45612 485.12239,305.31507 C 482.11254,306.74334 481.36479,306.73007 476.37271,305.15987 C 471.04256,303.48334 470.83461,303.49209 467.53376,305.53213 C 462.85774,308.42207 460.75668,308.14708 458.13945,304.30261 z\",name:\"Çorum\"},20:{path:\"M 184.76463,500.8011 C 182.04115,498.36768 181.50748,497.22334 181.70794,494.24679 C 182.0552,489.0904 179.68384,485.28166 173.91684,481.73319 C 171.15178,480.03183 168.88945,478.18565 168.88945,477.63056 C 168.88945,477.07548 168.28419,476.62132 167.54444,476.62132 C 165.6156,476.62132 162.88945,473.30986 162.88945,470.96689 C 162.88945,469.86857 161.80738,467.9534 160.48485,466.71095 C 159.16233,465.4685 157.78176,462.86084 157.41694,460.91616 C 156.8258,457.76511 157.11466,457.07142 160.07154,454.54116 C 161.89639,452.9796 164.85195,451.19892 166.63945,450.58409 C 168.42695,449.96926 169.88945,448.82001 169.88945,448.0302 C 169.88945,447.24039 170.39278,445.78823 171.00795,444.80318 C 171.93145,443.32443 171.58275,442.46847 169.00795,439.89367 C 164.97949,435.86521 164.69881,431.12094 168.38945,429.43937 C 171.68377,427.93838 171.51957,426.72589 167.5364,423.14023 L 164.22482,420.15914 L 167.56879,415.50458 C 169.55699,412.73715 171.90799,410.65977 173.36747,410.38077 C 174.71756,410.12268 180.39371,410.29808 185.98112,410.77054 C 195.26979,411.55596 196.41786,411.45786 199.38279,409.62543 C 203.536,407.05861 204.11363,407.09763 207.79283,410.19348 C 209.6057,411.7189 211.77339,412.63453 213.11956,412.44348 C 215.00304,412.17616 215.54819,411.22759 216.32194,406.87132 C 216.83481,403.98382 217.78662,401.62132 218.43708,401.62132 C 219.08754,401.62132 220.79269,400.69867 222.2263,399.57099 C 224.40768,397.85512 225.2045,397.71238 227.11116,398.69596 C 231.06483,400.73551 233.88945,403.88828 233.88945,406.26171 C 233.88945,407.52217 234.67521,410.20121 235.63557,412.21513 L 237.3817,415.87679 L 232.53131,420.14491 C 229.8636,422.49237 226.49034,424.68084 225.03519,425.00816 C 220.51861,426.02414 217.05545,429.71349 216.32566,434.28656 C 215.70849,438.15387 215.86598,438.55782 218.52756,439.93418 C 220.10419,440.74949 222.20104,442.30814 223.18722,443.39786 C 224.94013,445.3348 224.85162,445.45175 219.23356,448.62239 C 216.07287,450.40617 211.83368,452.08737 209.81315,452.35838 L 206.13945,452.85113 L 206.13945,459.26794 C 206.13945,464.79763 206.43323,465.83734 208.26445,466.78849 C 209.4332,467.39555 210.5562,468.03552 210.76,468.21066 C 210.96381,468.3858 209.77873,470.23734 208.12649,472.32521 C 206.47425,474.41307 203.42152,479.27132 201.34264,483.12132 C 199.26375,486.97132 196.9664,490.82616 196.2374,491.68763 C 195.5084,492.54911 194.31026,494.99188 193.57486,497.11601 C 192.83947,499.24015 191.29872,501.60159 190.15098,502.36366 C 188.27005,503.61256 187.73867,503.45841 184.76463,500.8011 z\",name:\"Denizli\"},21:{path:\"M 765.88945,467.92092 C 761.30638,467.02037 760.59452,465.68898 761.1979,459.1463 C 761.89967,451.53681 760.86434,446.24017 758.58953,445.80208 C 757.64331,445.61985 755.34496,446.41275 753.48207,447.56407 L 750.09502,449.65739 L 744.74633,445.09183 C 741.58332,442.39194 737.65926,440.08855 735.14355,439.45508 C 732.80379,438.86593 730.88945,438.19648 730.88945,437.96742 C 730.88945,437.73836 731.66841,436.36212 732.62046,434.90909 C 734.32037,432.31471 734.31205,432.27755 732.15723,432.84104 C 729.19515,433.61564 727.39447,431.41471 728.81647,428.75768 C 730.68539,425.26557 727.88791,421.74294 724.79877,423.69853 C 721.8473,425.56695 721.12372,424.66119 722.76592,421.15389 C 723.66125,419.24169 725.1479,417.67184 726.08043,417.65389 C 727.01047,417.63597 728.04953,417.17132 728.38945,416.62132 C 729.28938,415.1652 732.95431,415.39348 738.7553,417.26699 C 743.83296,418.90689 743.86466,418.9035 747.8004,416.29895 C 749.97268,414.8614 753.80637,413.16743 756.31972,412.53456 C 760.42245,411.50148 760.88945,411.08944 760.88945,408.50261 C 760.88945,406.9179 761.22695,405.61567 761.63945,405.60877 C 768.72744,405.49016 786.49599,404.36449 787.09169,403.99633 C 787.53046,403.72515 787.88945,402.6503 787.88945,401.60776 C 787.88945,400.56522 788.95522,398.64646 790.25783,397.34385 C 792.47968,395.12199 793.06968,395.02285 799.79385,395.74132 C 805.11845,396.31026 808.01309,396.13616 811.0512,395.06425 C 813.30054,394.27064 815.81199,393.62132 816.6322,393.62132 C 817.45241,393.62132 819.8261,391.8669 821.90706,389.72261 C 826.32147,385.17386 831.29335,383.59665 833.6835,385.9868 C 835.47012,387.77342 838.88741,396.23239 838.88864,398.87132 C 838.88908,399.83382 838.32695,400.63093 837.63945,400.64267 C 835.72642,400.67535 830.83429,408.18639 830.20656,412.0546 C 829.7963,414.58276 830.2446,416.4599 831.89727,419.13397 C 833.66943,422.00138 833.9297,423.23391 833.12481,424.94713 C 828.2115,435.40514 826.27878,438.84638 824.24589,440.75619 C 821.30429,443.51968 821.11206,447.60527 823.88945,448.33157 C 824.98945,448.61923 825.88945,449.2121 825.88945,449.64906 C 825.88945,450.72655 820.02692,455.59387 818.56272,455.73201 C 815.15496,456.05351 812.09439,455.28665 809.57084,453.479 C 805.84381,450.80928 803.88945,451.68424 803.88945,456.02255 C 803.88945,459.96667 801.80407,461.20075 796.94327,460.13314 C 794.49789,459.59604 793.68742,459.97556 791.78512,462.54856 C 789.01168,466.29984 787.05358,467.03339 779.38945,467.19221 C 776.08945,467.26059 772.26445,467.56306 770.88945,467.86435 C 769.51445,468.16565 767.26445,468.19111 765.88945,467.92092 z\",name:\"Diyarbakır\"},22:{path:\"M 67.514349,238.91289 C 67.163412,238.56195 63.091855,238.17004 58.466445,238.04198 C 47.052527,237.72598 45.88945,237.27093 45.88945,233.12132 C 45.88945,230.63435 46.411411,229.59043 47.88945,229.12132 C 48.98945,228.77219 49.88945,228.01885 49.88945,227.44722 C 49.88945,226.06237 59.994244,216.62132 61.476454,216.62132 C 63.03967,216.62132 64.158182,210.65005 62.882818,209.11333 C 62.325175,208.44141 62.07271,205.91833 62.321784,203.50649 C 62.570858,201.09465 62.800477,198.3927 62.832048,197.50216 C 62.869904,196.43434 64.117452,195.68373 66.495862,195.29776 C 68.479389,194.97588 70.660209,193.9495 71.342129,193.01692 C 72.052809,192.04501 74.034711,191.27864 75.985717,191.22132 L 79.38945,191.12132 L 79.38945,181.37228 C 79.38945,174.75482 79.024082,171.62293 78.252012,171.62228 C 77.626421,171.62175 76.051421,170.2754 74.752012,168.63039 C 73.452603,166.98539 71.710196,165.63538 70.879997,165.63039 C 70.049798,165.6254 68.808484,164.72132 68.121523,163.62132 C 67.121901,162.02067 67.123789,161.20767 68.130976,159.54973 C 69.177497,157.82704 70.039852,157.57941 73.251213,158.07942 C 77.690502,158.77062 79.88945,157.45948 79.88945,154.12132 C 79.88945,150.55115 82.162752,149.52646 90.812158,149.1979 L 98.88945,148.89107 L 98.88945,157.17947 C 98.88945,164.56147 98.616057,165.79278 96.38945,168.43895 C 93.365207,172.03306 93.248456,173.44865 95.895511,174.42786 C 97.810095,175.13611 97.741694,175.41811 94.395511,180.61191 C 90.622421,186.46835 90.014633,190.56006 92.072474,196.25092 C 92.974297,198.74487 92.979144,200.12905 92.092866,202.07421 C 90.781252,204.9529 85.770114,208.40477 81.618641,209.28929 C 78.217572,210.01393 77.087455,211.593 79.145592,212.74479 C 80.365538,213.4275 80.50254,214.38003 79.809847,217.36311 C 78.559845,222.74624 78.692893,228.02476 80.114409,229.44628 C 81.081022,230.41289 81.081022,231.08492 80.114409,232.63271 C 79.440682,233.71152 78.88945,235.27529 78.88945,236.10775 C 78.88945,237.17619 77.840797,237.62132 75.323709,237.62132 C 73.362551,237.62132 70.946718,238.05549 69.955191,238.58614 C 68.963665,239.11679 67.865286,239.26382 67.514349,238.91289 z\",name:\"Edirne\"},23:{path:\"M 741.65956,417.05809 C 741.34978,416.74832 738.72235,415.86862 735.82081,415.10321 C 731.10962,413.86043 730.24565,413.88855 727.74435,415.3661 C 725.05283,416.95603 724.84492,416.92812 722.42168,414.6516 C 720.17193,412.53806 719.51958,412.39927 716.37353,413.36482 C 713.059,414.38208 712.62403,414.2367 709.13373,410.94492 C 705.68658,407.69384 705.25363,407.54388 703.09529,408.85348 C 701.052,410.09328 699.82041,410.01288 692.93178,408.19 C 688.62061,407.04918 684.14743,405.25978 682.99137,404.21356 C 680.31875,401.79486 680.29259,397.47144 682.93612,395.07908 C 684.06179,394.06037 685.66056,391.79858 686.48895,390.05289 C 687.92245,387.03201 688.21503,386.90369 692.55428,387.39279 L 697.11346,387.90667 L 696.41356,383.764 C 695.93182,380.91261 696.07038,379.62132 696.85809,379.62132 C 697.58766,379.62132 697.38398,378.57421 696.29622,376.73279 C 694.06547,372.95641 694.99701,370.07333 697.93918,371.64793 C 699.56711,372.51918 699.76951,373.06091 698.8714,374.14307 C 698.1786,374.97784 698.03055,376.43555 698.49761,377.82333 C 699.25629,380.07757 699.43117,380.86031 699.73714,383.37132 C 699.96376,385.23119 702.88945,384.88552 702.88945,382.99888 C 702.88945,381.62638 703.13545,381.58059 704.48623,382.70164 C 705.83053,383.81731 706.22937,383.7653 707.0087,382.37272 C 708.15099,380.33156 714.80386,380.86633 716.49969,383.13563 C 718.02811,385.1809 718.88945,384.99553 718.88945,382.62132 C 718.88945,380.18623 720.18695,380.06168 722.40877,382.2835 C 723.60374,383.47847 724.27283,383.61903 724.78917,382.78357 C 725.31787,381.92812 726.01959,382.00888 727.44842,383.08959 C 728.51599,383.89706 730.17695,384.57202 731.13945,384.58952 C 732.10195,384.60701 732.88945,385.06601 732.88945,385.60953 C 732.88945,386.15305 733.90049,386.49055 735.13622,386.35953 C 738.91912,385.95845 738.71959,390.28264 734.80437,393.55121 C 728.85227,398.52024 734.14593,399.8241 742.65641,395.48522 C 747.11488,393.21216 751.48752,393.08069 752.66475,395.1843 C 754.00924,397.58676 758.5673,396.04101 759.35146,392.91666 C 760.03222,390.20429 759.2319,388.5021 758.08508,390.22322 C 756.9498,391.92702 753.72788,392.73212 752.41272,391.64064 C 751.73995,391.08228 749.74362,390.79379 747.97644,390.99955 C 746.20925,391.20531 743.67026,390.86688 742.33422,390.24749 C 737.12278,387.83145 740.92866,382.42202 749.06808,380.67643 C 751.77398,380.09612 754.52824,379.61825 755.18867,379.61449 C 756.89925,379.60475 760.88945,373.41712 760.88945,370.77426 C 760.88945,369.55144 760.20431,367.5053 759.36692,366.22728 C 757.99952,364.14036 758.00383,363.77128 759.4093,362.60484 C 760.59463,361.62111 761.25501,361.58688 762.13183,362.4637 C 764.27427,364.60614 767.73932,363.64598 772.38945,359.62132 C 774.93135,357.42132 777.41789,355.62132 777.91509,355.62132 C 779.3979,355.62132 780.78008,359.05983 779.93531,360.64714 C 778.64204,363.07722 777.76428,372.42592 778.77097,373.0481 C 779.28287,373.36447 779.50299,374.41036 779.26013,375.37232 C 778.97302,376.5095 779.87938,377.82094 781.85113,379.12132 C 783.51904,380.22132 784.88499,381.474 784.88657,381.90505 C 784.88816,382.33609 783.31445,383.61804 781.38945,384.75382 C 779.46445,385.8896 777.88945,387.44942 777.88945,388.2201 C 777.88945,388.99077 777.45528,389.62132 776.92463,389.62132 C 776.39398,389.62132 775.43674,390.59869 774.79743,391.79326 C 773.78386,393.68714 774.02028,394.29526 776.64416,396.54326 C 778.29917,397.96119 779.8768,400.08607 780.14999,401.26521 C 780.61302,403.26368 780.14876,403.45575 773.30504,404.09706 C 769.26712,404.47545 765.4927,404.49415 764.91746,404.13863 C 762.70912,402.7738 759.88945,404.69808 759.88945,407.56999 C 759.88945,410.08109 759.39253,410.50902 755.2715,411.5467 C 752.73163,412.18625 749.02717,413.81467 747.03937,415.16542 C 743.24638,417.74282 742.57905,417.97759 741.65956,417.05809 z\",name:\"Elazığ\"},24:{path:\"M 695.36395,365.87656 C 693.25556,362.41176 689.15655,360.95478 684.18887,361.90441 C 682.71891,362.18542 681.03769,362.23175 680.45283,362.00739 C 678.94607,361.42935 679.19682,345.3522 680.72051,344.8443 C 682.44343,344.26999 682.14215,340.65552 680.31285,339.95355 C 677.98527,339.06038 676.68193,334.92648 678.04152,332.74943 C 678.82913,331.48825 678.85903,330.38938 678.14065,329.10571 C 677.0433,327.14484 679.60317,319.70086 682.46093,316.54258 C 684.58953,314.19014 684.19596,312.08201 681.38945,310.80327 C 678.58566,309.52578 678.16582,307.46677 680.34101,305.66152 C 681.47567,304.71984 682.56712,304.73691 685.34036,305.73973 C 688.10082,306.73792 689.15459,306.75618 690.0888,305.82197 C 690.74916,305.16161 693.0107,304.62132 695.11445,304.62132 C 698.55625,304.62132 698.99899,304.32364 699.53372,301.64997 C 700.0546,299.04559 700.37411,298.81033 702.12078,299.74512 C 703.21681,300.3317 705.23885,300.59652 706.61419,300.33361 C 708.97803,299.88173 718.68346,303.67347 728.15652,308.74981 C 730.2284,309.86007 733.1534,310.65687 734.65652,310.52046 C 736.15963,310.38405 738.88217,310.61833 740.70661,311.04109 C 743.09031,311.59343 744.49733,311.3944 745.70661,310.33381 C 746.63217,309.52205 748.28945,308.57771 749.38945,308.23527 C 750.48945,307.89284 752.41718,306.02268 753.67331,304.07937 C 754.92943,302.13606 756.98371,300.15578 758.23837,299.67876 C 764.93654,297.13212 780.61042,297.30035 778.0197,299.89107 C 774.87024,303.04053 779.38574,307.62132 785.63979,307.62132 C 789.1306,307.62132 790.88945,309.24023 790.88945,312.45329 C 790.88945,315.25134 794.26904,321.16927 796.31539,321.95453 C 797.0774,322.24694 797.99798,323.83898 798.36114,325.49241 C 798.8065,327.52012 799.89506,328.81841 801.70543,329.48103 L 804.38945,330.46343 L 801.88945,330.61538 C 800.51445,330.69895 796.97371,331.11063 794.02115,331.53022 C 789.23605,332.21024 788.35127,332.03935 785.87679,329.95722 C 782.42667,327.05413 773.81233,326.73672 768.40863,329.31356 C 765.05695,330.91187 764.58274,330.90612 759.86588,329.20996 C 754.2185,327.17919 751.40729,327.66953 752.16154,330.55379 C 752.5289,331.95859 752.00875,332.62555 750.18976,333.08208 C 748.83084,333.42315 746.65541,334.84982 745.35549,336.25247 C 742.81501,338.99369 740.88945,338.69612 740.88945,335.5623 C 740.88945,333.20891 739.60691,333.10512 736.41006,335.19977 C 735.08509,336.06792 731.83842,336.89367 729.19524,337.03477 C 726.55206,337.17587 723.12266,337.81557 721.57435,338.45632 C 720.02605,339.09707 718.12702,339.62132 717.35429,339.62132 C 716.58156,339.62132 714.95123,340.97132 713.73133,342.62132 C 712.51143,344.27132 710.92296,345.62132 710.20139,345.62132 C 709.47982,345.62132 708.88945,346.10164 708.88945,346.68871 C 708.88945,347.29417 708.04027,347.48658 706.92722,347.13331 C 703.99819,346.20367 700.70931,348.3438 701.07877,350.93898 C 701.29795,352.47858 702.19938,353.21451 704.13945,353.43774 C 707.89951,353.87038 707.59045,355.23838 703.38945,356.75748 C 701.46445,357.45357 699.88945,358.31337 699.88945,358.66815 C 699.88945,359.02292 698.22155,359.21193 696.18301,359.08817 C 693.66643,358.93538 692.20754,358.2602 691.63851,356.98496 C 690.71834,354.92279 684.88945,351.16021 684.88945,352.6284 C 684.88945,353.13114 685.60684,354.12271 686.48364,354.83189 C 687.36045,355.54108 689.13511,357.17219 690.42733,358.45658 C 692.05749,360.07687 693.4079,360.59155 694.83806,360.13763 C 697.32436,359.34851 698.1749,361.03339 697.68441,365.77612 L 697.33845,369.12132 L 695.36395,365.87656 z\",name:\"Erzincan\"},25:{path:\"M 847.97054,347.74073 C 843.44593,341.07795 841.39517,340.16434 833.24872,341.18217 C 829.57312,341.64141 827.88945,341.50141 827.88945,340.73654 C 827.88945,340.12317 827.15355,339.62132 826.25412,339.62132 C 825.35469,339.62132 823.53544,338.45237 822.21135,337.02365 C 820.53167,335.21124 819.13667,334.58611 817.59668,334.95569 C 809.89764,336.8034 798.66206,337.79393 797.58781,336.71968 C 795.77833,334.9102 798.09433,332.17076 801.7403,331.80796 C 805.52153,331.43171 805.99134,328.93598 802.44834,328.04674 C 800.77856,327.62766 799.80084,326.49437 799.35405,324.46012 C 798.99479,322.82445 798.0774,321.24694 797.31539,320.95453 C 795.26904,320.16927 791.88945,314.25134 791.88945,311.45329 C 791.88945,308.24023 790.1306,306.62132 786.63979,306.62132 C 783.63398,306.62132 777.88945,304.10979 777.88945,302.79564 C 777.88945,301.0846 780.46404,299.62132 783.47457,299.62132 C 788.57754,299.62132 800.88945,288.68806 800.88945,284.1565 C 800.88945,282.37928 798.78698,282.12379 797.20232,283.70845 C 796.41947,284.4913 795.92712,284.4913 795.4433,283.70845 C 795.07376,283.11053 793.68881,282.62132 792.36562,282.62132 C 791.01053,282.62132 789.50771,281.77655 788.92463,280.68706 C 787.47818,277.98434 787.63401,276.62132 789.38945,276.62132 C 791.1294,276.62132 791.39778,273.52965 789.79681,271.92868 C 789.00662,271.13849 789.03984,270.1835 789.9168,268.47868 C 791.69825,265.01556 797.06008,259.62132 798.72095,259.62132 C 800.46392,259.62132 804.88945,255.02996 804.88945,253.22167 C 804.88945,251.91705 810.67582,248.98164 814.38184,248.40622 C 815.47765,248.23607 816.93334,246.9303 817.6167,245.50451 L 818.85918,242.91216 L 823.87432,245.39412 C 828.72967,247.79701 828.88945,248.01279 828.88945,252.16692 C 828.88945,254.52687 829.16259,257.16955 829.49644,258.03953 C 830.47517,260.59006 833.65099,259.8637 836.10951,256.52701 C 839.49662,251.93006 842.40403,250.71077 847.12249,251.90844 C 850.71337,252.8199 851.28849,252.67682 853.691,250.27432 C 855.88834,248.07698 856.36586,246.61497 856.57674,241.43909 C 856.94515,232.39652 858.34097,231.30698 868.39042,232.21764 C 875.29405,232.84323 876.64722,233.30837 879.80594,236.14166 C 881.77687,237.90952 884.35178,239.65506 885.52796,240.02064 C 886.70414,240.38621 888.81748,241.75205 890.22427,243.05582 C 892.56698,245.22697 892.6932,245.74821 891.72516,249.25417 C 891.14385,251.35949 890.93765,255.37431 891.26693,258.176 C 891.81329,262.8247 891.62629,263.49044 889.12754,265.79228 C 884.55593,270.00363 881.59166,271.62066 878.41694,271.63497 C 870.88374,271.66895 869.06432,274.03133 872.85747,278.85354 C 874.11789,280.4559 876.26905,281.58631 878.84037,281.99748 C 881.5103,282.42442 883.37999,283.44034 884.42168,285.03016 C 885.28321,286.34503 887.74669,288.58461 889.89606,290.007 C 892.04543,291.42938 894.26905,293.46209 894.83743,294.52411 C 895.75598,296.24045 895.12287,296.82553 889.14111,299.7882 C 885.02719,301.82575 882.27313,303.84464 882.05573,304.9822 C 881.65291,307.08995 887.8096,313.95703 892.13945,316.22942 C 893.78893,317.0951 894.88945,318.50105 894.88945,319.74263 C 894.88945,322.70015 891.30295,327.3352 886.82925,330.15933 C 883.89475,332.01179 882.55829,333.80799 881.18672,337.74287 C 879.03423,343.91807 874.96582,348.61244 871.73824,348.64506 C 870.44641,348.65811 866.68945,349.78103 863.38945,351.14042 C 854.11526,354.96083 852.65496,354.63885 847.97054,347.74073 z\",\n    name:\"Erzurum\"},26:{path:\"M 326.88945,360.68457 C 326.06445,360.20281 322.75998,359.12326 319.54617,358.28556 C 312.94718,356.56548 309.88945,354.31124 309.88945,351.16633 C 309.88945,345.93439 305.52156,345.34358 297.60987,349.50537 C 294.12509,351.33847 291.20513,352.21316 289.59684,351.90572 C 287.74102,351.55095 286.76693,351.98173 285.94278,353.52166 C 284.7128,355.81992 278.57519,356.53988 277.33395,354.53151 C 276.93086,353.8793 275.31988,353.69319 273.3219,354.06801 C 270.49797,354.59779 269.73116,354.30937 268.34696,352.19682 C 267.44692,350.82319 265.81723,349.41579 264.72542,349.06926 C 262.21442,348.2723 258.3707,339.74007 259.85432,338.25645 C 260.42364,337.68713 260.88945,335.65577 260.88945,333.74232 C 260.88945,331.04364 260.10443,329.54428 257.38945,327.05745 C 255.17188,325.02624 253.88945,322.93258 253.88945,321.34344 C 253.88945,318.67875 252.28341,317.62132 248.23623,317.62132 C 245.49738,317.62132 242.88945,315.54628 242.88945,313.36706 C 242.88945,310.38761 247.34659,307.62132 252.1472,307.62132 C 255.79905,307.62132 257.10512,307.1515 258.33516,305.39536 C 259.19268,304.17109 261.3557,302.48116 263.14187,301.63997 C 265.2738,300.63595 266.50923,299.26308 266.73813,297.64363 C 268.06834,288.23249 286.43858,284.61697 288.19915,293.4198 C 288.89661,296.90714 292.41766,298.20343 297.38945,296.80324 C 301.7485,295.57563 315.50739,296.05935 317.24484,297.5013 C 318.05495,298.17364 321.56325,299.03819 325.04105,299.42253 C 331.2909,300.11321 331.38805,300.17143 333.40849,304.43751 C 334.73321,307.2346 336.60969,309.31406 338.74008,310.34584 L 342.0275,311.93799 L 339.45848,314.32012 C 336.38643,317.16868 336.35768,317.41153 338.77934,320.05687 C 341.3014,322.81188 346.18566,334.48521 346.12851,337.62132 C 346.10346,338.99632 345.75895,341.37459 345.36293,342.90636 C 344.84376,344.91446 345.12958,346.22917 346.38746,347.61912 C 348.65015,350.11937 347.79154,352.1909 344.19433,352.91034 C 342.61748,353.22571 339.24725,355.3147 336.70494,357.55253 C 332.1046,361.60191 329.74806,362.35387 326.88945,360.68457 z\",name:\"Eskişehir\"},27:{path:\"M 635.88945,523.62132 C 631.6241,521.28614 629.88945,521.14158 629.88945,523.12132 C 629.88945,525.9649 627.04207,524.6138 625.92936,521.24224 C 624.49761,516.904 622.38858,515.07332 617.24534,513.70432 C 613.98132,512.83552 612.95533,512.01937 612.41421,509.86129 C 612.03635,508.35431 610.80439,506.26103 609.67652,505.20957 C 607.09885,502.80653 604.60914,504.08878 603.88594,508.19184 C 603.4983,510.39107 602.61344,511.26902 600.04096,512.0068 C 598.20316,512.53387 595.41239,514.25222 593.83926,515.82535 C 591.10919,518.55543 590.82909,518.62215 587.68424,517.29147 C 585.87211,516.52471 583.57308,514.98042 582.57531,513.85972 C 578.2058,508.95192 585.15521,497.83699 595.72108,492.83429 C 599.07782,491.24495 601.4004,489.40762 601.98007,487.88297 C 603.26893,484.49302 605.00974,485.43537 607.68077,490.9689 C 610.72404,497.27361 612.22568,497.66705 616.71,493.33461 C 622.24459,487.98747 630.98613,482.62132 634.1621,482.62132 C 637.48166,482.62132 641.88945,478.65435 641.88945,475.66677 C 641.88945,474.36374 642.54278,473.62132 643.68945,473.62132 C 644.67945,473.62132 646.01882,473.09195 646.66582,472.44495 C 647.56765,471.54312 648.2745,471.65981 649.69456,472.94495 C 650.71337,473.86695 652.8615,474.62746 654.46819,474.63497 C 659.36659,474.65787 661.88945,475.72002 661.88945,477.75939 C 661.88945,478.81059 660.79112,480.16463 659.43857,480.7809 C 658.00142,481.4357 656.72873,483.07658 656.36163,484.74799 C 656.0173,486.31571 655.3202,487.8551 654.81251,488.16887 C 653.36043,489.06631 653.73383,497.00463 655.4177,501.03469 C 656.30351,503.15474 657.98501,505.08735 659.4177,505.63206 C 660.77716,506.14893 661.88945,507.20652 661.88945,507.98226 C 661.88945,508.75801 662.56168,510.68164 663.38329,512.25701 C 665.20909,515.75783 665.29807,517.62125 663.63945,517.62155 C 662.95195,517.62167 659.91445,518.95382 656.88945,520.58187 C 653.73074,522.28188 649.81824,523.55885 647.69847,523.58164 C 645.66843,523.60346 643.72937,524.07132 643.38945,524.62132 C 642.46412,526.11853 639.80256,525.76366 635.88945,523.62132 z\",name:\"Gaziantep\"},28:{path:\"M 702.38945,298.61617 C 701.28945,298.13779 698.21951,297.4608 695.56737,297.11177 C 692.7633,296.74274 689.90646,295.63833 688.7409,294.47277 C 687.56378,293.29565 685.01399,292.31831 682.56299,292.10476 C 680.26754,291.90476 676.36445,291.0958 673.88945,290.30706 L 669.38945,288.87298 L 669.71278,284.33929 C 669.90949,281.58102 669.41998,278.61415 668.46278,276.76312 C 667.59745,275.08976 666.88945,271.4768 666.88945,268.73434 C 666.88945,263.83971 666.8297,263.74228 663.63945,263.43468 C 660.87037,263.16769 660.33973,262.68441 660.05348,260.1687 C 659.86869,258.54475 659.07918,256.74475 658.29902,256.1687 C 657.08959,255.27568 657.17635,254.34494 658.88775,249.85333 C 662.1496,241.29253 662.72393,240.70582 667.56686,240.98719 C 669.91529,241.12363 672.14859,241.54713 672.52976,241.92829 C 672.91092,242.30946 676.00304,242.62132 679.40113,242.62132 C 684.29269,242.62132 685.9534,242.20814 687.37481,240.63749 C 688.63888,239.24072 689.89222,238.83489 691.61023,239.26609 C 693.26543,239.68152 694.97639,239.19382 696.92939,237.74991 C 698.51288,236.57919 700.41169,235.62132 701.14896,235.62132 C 701.88623,235.62132 702.91695,235.2241 703.43945,234.73861 C 703.96195,234.25313 706.71663,233.64758 709.56096,233.39295 L 714.73246,232.92999 L 715.18895,239.02565 C 715.44002,242.37827 715.81285,246.00403 716.01745,247.0829 C 716.27798,248.45668 715.49048,249.50679 713.38945,250.58729 C 709.09195,252.79738 699.06787,263.06224 698.32787,266.01067 C 697.48398,269.37297 698.28965,270.38272 702.78133,271.59221 C 704.87542,272.15609 708.01183,273.9774 709.75112,275.63956 L 712.91348,278.66168 L 710.45377,279.59687 C 707.09892,280.87238 704.73848,284.7811 704.14537,290.04312 C 703.74152,293.62608 704.0316,294.76261 705.71861,296.20707 C 709.01993,299.03375 706.89139,300.57404 702.38945,298.61617 z\",name:\"Giresun\"},29:{path:\"M 741.88945,309.63415 C 741.88945,309.05883 739.95177,308.84304 737.24498,309.11694 C 733.87519,309.45791 731.61097,309.05779 728.99498,307.65902 C 727.01194,306.59869 722.01445,304.18229 717.88945,302.28925 C 707.75342,297.63763 704.4948,294.44066 705.23572,289.87492 C 706.00687,285.12292 708.47687,281.66111 711.9635,280.44566 C 713.57277,279.88467 714.88945,279.19288 714.88945,278.90837 C 714.88945,277.3846 706.93735,271.44203 703.7497,270.58369 C 697.4118,268.87707 697.96403,266.39012 706.54009,258.01721 C 709.51307,255.11466 713.30507,252.0616 714.96676,251.23264 C 717.90848,249.76512 718.1687,249.84231 724.84988,254.16434 C 728.6239,256.60574 732.93549,259.06853 734.4312,259.63719 C 735.9269,260.20586 738.39886,261.55992 739.92443,262.64623 C 744.82627,266.13665 747.72171,264.59022 748.809,257.90104 C 749.13222,255.91254 750.00502,254.0828 750.74854,253.83496 C 751.78181,253.49053 751.93899,254.11929 751.41548,256.50283 C 750.82421,259.19486 751.00811,259.62132 752.7603,259.62132 C 753.87668,259.62132 755.19369,260.34255 755.68701,261.22406 C 757.02012,263.6062 760.44317,262.53753 760.15124,259.83033 C 759.80511,256.62058 761.49541,257.12507 763.31621,260.77496 C 765.35954,264.87091 765.35709,267.01475 763.30999,266.2292 C 756.53505,263.62941 748.95977,276.27864 752.89174,283.6256 C 753.7322,285.19602 753.08636,286.17944 748.89174,289.7164 C 744.58856,293.34489 743.88945,294.43977 743.88945,297.55045 C 743.88945,300.6574 744.38222,301.43189 747.38945,303.05139 C 751.51892,305.27525 751.79036,306.3571 748.43047,307.20038 C 747.07803,307.53982 745.44793,308.4484 744.80802,309.21943 C 743.45996,310.84375 741.88945,311.06691 741.88945,309.63415 z\",name:\"Gümüşhane\"},30:{path:\"M 1001.2037,487.37132 C 997.67738,481.88705 997.3506,477.62132 1000.4568,477.62132 C 1004.1355,477.62132 1000.8939,469.93895 996.42793,468.07295 C 989.75631,465.28537 983.97482,466.62627 982.48964,471.30566 C 981.69701,473.803 978.88162,474.59274 970.88945,474.5596 C 959.87631,474.51394 955.80503,473.40301 952.26441,469.47742 C 948.56938,465.38061 947.72487,463.0028 949.45492,461.56698 C 950.46292,460.73042 950.77807,459.3907 950.38637,457.60731 C 949.90036,455.3945 950.42946,454.35437 953.34191,451.7972 C 955.45285,449.94378 956.89097,447.75889 956.8932,446.40187 C 956.89808,443.43174 963.44482,440.62517 970.39996,440.61155 C 975.66798,440.60124 984.28972,437.26908 986.75276,434.29147 C 988.88457,431.71427 990.10343,433.39531 989.34743,437.87002 C 988.68799,441.77322 988.74624,441.88844 991.02687,441.19198 C 992.32629,440.79517 995.38014,440.05342 997.8132,439.54366 C 1000.2463,439.03389 1002.9463,438.00459 1003.8132,437.25633 C 1006.5624,434.88348 1011.5174,434.49945 1013.9517,436.47057 C 1015.8806,438.03256 1015.9835,438.49795 1014.8137,440.37104 C 1013.7094,442.13935 1013.7094,442.9163 1014.8138,444.97979 C 1015.6288,446.50269 1015.8964,448.7712 1015.5062,450.85073 C 1014.9775,453.66904 1015.3502,454.77711 1017.7192,457.43054 C 1019.286,459.18547 1020.9778,460.63343 1021.4787,460.64822 C 1021.9796,460.66302 1023.9645,462.00736 1025.8895,463.63564 C 1028.2218,465.60844 1029.0061,466.85058 1028.2403,467.35874 C 1027.6083,467.77816 1026.9333,469.24632 1026.7403,470.62132 C 1026.4395,472.76529 1025.8717,473.12132 1022.7535,473.12132 C 1019.7591,473.12132 1018.259,473.96382 1014.2535,477.89501 C 1006.452,485.55163 1003.0983,488.62132 1002.5345,488.62132 C 1002.2446,488.62132 1001.6458,488.05882 1001.2037,487.37132 z\",name:\"Hakkari\"},31:{path:\"M 562.76082,585.97743 C 562.36305,584.6209 560.98585,583.58177 559.01082,583.14798 C 556.76653,582.65505 555.88945,581.89229 555.88945,580.43346 C 555.88945,578.7243 555.46028,578.51222 553.1666,579.08789 C 550.48271,579.76151 550.4701,579.74217 552.28513,577.7366 C 553.61763,576.2642 553.93643,574.93081 553.43873,572.91161 C 552.64154,569.6774 546.30507,557.99622 544.8651,557.10627 C 543.18758,556.06951 543.78287,554.10497 546.85132,550.55143 C 548.48036,548.66487 550.16786,546.80435 550.60132,546.41694 C 555.72077,541.84146 559.95446,538.60501 562.56858,537.26856 C 566.23541,535.39392 566.7814,534.00014 566.54595,527.11517 C 566.31936,520.48909 563.19586,515.22318 558.48087,513.51822 C 554.33537,512.01918 554.22265,511.71417 556.79418,508.95396 C 558.40411,507.2259 559.4094,507.0173 563.28947,507.60615 C 565.81428,507.98932 568.76415,509.10294 569.84475,510.08086 C 571.27474,511.37499 572.70516,511.69087 575.10048,511.24151 C 577.99164,510.69912 578.72234,511.03873 581.11435,514.03654 C 582.61191,515.91338 585.42395,517.97265 587.36332,518.6127 C 591.36912,519.93473 591.48916,520.16447 589.3118,522.34182 C 588.4441,523.20953 587.94764,524.73584 588.20857,525.73363 C 588.4695,526.73141 588.04016,528.08128 587.25448,528.73333 C 586.45977,529.39289 585.86688,531.51663 585.91815,533.5201 C 585.96885,535.50077 585.70513,538.98718 585.33212,541.26767 C 584.63061,545.55651 586.12993,549.52181 590.17012,554.06286 C 593.0918,557.34675 591.95046,559.1133 586.86401,559.18 C 582.59366,559.236 580.20618,559.80531 576.88945,561.55851 C 575.8508,562.10753 575.37144,564.01862 575.33089,567.77209 C 575.26154,574.19247 574.5762,575.61367 571.88845,574.91081 C 570.49856,574.54734 569.88945,574.88066 569.88945,576.00469 C 569.88945,576.91951 569.07437,577.62132 568.01189,577.62132 C 565.35165,577.62132 564.08819,579.53585 563.71396,584.134 C 563.47021,587.12898 563.233,587.58776 562.76082,585.97743 z\",name:\"Hatay\"},32:{path:\"M 281.07356,475.87132 C 276.72711,469.74826 272.88945,462.3996 272.88945,460.19976 C 272.88945,457.37605 271.81547,456.49278 265.57956,454.18794 C 261.70196,452.75474 260.06672,451.35144 257.14295,446.94791 C 254.18021,442.48571 253.13845,441.60205 251.45283,442.12141 C 239.42608,445.82697 238.18344,445.39827 241.94046,438.83973 C 244.12225,435.03103 246.14052,432.97443 249.17772,431.46502 C 251.49417,430.31381 254.73945,427.55388 256.38945,425.33186 C 258.67527,422.25358 261.02866,420.63073 266.27522,418.51483 C 270.06239,416.98748 274.78739,414.43112 276.77522,412.83403 C 278.76304,411.23693 281.80524,409.19831 283.53565,408.30377 C 285.26606,407.40922 287.51606,405.54597 288.53565,404.16322 C 290.48176,401.52394 296.88945,399.47241 296.88945,401.48861 C 296.88945,402.10311 298.19607,403.7701 299.79306,405.19302 C 301.40274,406.62726 302.9769,409.27393 303.32553,411.13227 C 303.78689,413.59155 305.89144,416.30053 311.22685,421.30286 C 315.22671,425.05301 318.85084,428.70353 319.28047,429.41512 C 320.42526,431.3112 318.05135,433.62132 314.95813,433.62132 C 313.4806,433.62132 311.3982,434.28201 310.33058,435.08952 C 309.26296,435.89702 307.58783,436.57202 306.60807,436.58952 C 303.51207,436.64479 303.57476,439.45582 306.78349,444.45619 C 308.49177,447.11831 309.88945,450.08204 309.88945,451.04224 C 309.88945,452.00244 308.26602,454.36463 306.28182,456.29155 C 303.22041,459.26458 302.76651,460.2566 303.2839,462.84359 C 303.61924,464.52029 303.42533,467.63121 302.85299,469.75673 C 301.93671,473.15953 301.45166,473.62132 298.79373,473.62132 C 294.36583,473.62132 287.12432,475.63339 285.79724,477.23242 C 284.1436,479.22494 283.27683,478.97518 281.07356,475.87132 z M 283.88945,440.69275 C 283.88945,439.63203 284.65099,438.00264 285.58176,437.07187 C 286.72201,435.93162 287.27407,433.74199 287.27407,430.35965 C 287.27407,426.09606 286.86459,425.01323 284.55629,423.17266 C 283.06152,421.98077 282.14821,420.6959 282.52671,420.31739 C 282.90521,419.93889 283.36146,418.29047 283.54058,416.65424 C 284.02628,412.21763 280.99856,410.93559 277.37944,414.04541 C 274.9911,416.09765 274.71669,416.88691 275.30368,420.0158 C 275.6757,421.99883 276.52219,423.62821 277.18476,423.63663 C 277.84734,423.64505 279.01144,424.04588 279.77164,424.52735 C 280.94629,425.2713 280.94717,425.86963 279.77753,428.51204 C 279.02056,430.22214 278.06108,431.62132 277.64534,431.62132 C 277.2296,431.62132 276.88945,432.97132 276.88945,434.62132 C 276.88945,436.27132 277.3491,437.62132 277.91089,437.62132 C 278.47268,437.62132 279.44491,438.74632 280.0714,440.12132 C 281.41808,443.07695 283.88945,443.44683 283.88945,440.69275 z\",name:\"Isparta\"},33:{path:\"M 372.38945,568.09404 L 369.38945,566.61229 L 369.46502,556.87262 L 369.5406,547.13295 L 375.96502,545.33436 C 379.49846,544.34513 384.05812,543.55104 386.0976,543.56971 C 391.33125,543.61761 394.76984,542.06611 395.87555,539.15789 C 396.68607,537.02604 397.27153,536.74774 399.85761,537.26495 C 404.56195,538.20582 403.71308,535.40397 397.94268,530.94438 C 395.00307,528.67253 392.36569,525.59154 391.44268,523.35108 C 388.96827,517.34482 389.28507,516.62132 394.38945,516.62132 C 396.86445,516.62132 398.88945,517.07132 398.88945,517.62132 C 398.88945,519.76816 401.50741,518.47181 402.50402,515.83148 C 403.37314,513.52893 404.63147,512.74292 409.70816,511.33148 C 413.09126,510.39089 417.60536,509.62132 419.73949,509.62132 C 422.13728,509.62132 424.61557,508.83799 426.2263,507.57099 C 428.27048,505.96304 429.2563,505.74729 430.79542,506.57099 C 434.44294,508.52309 437.22242,507.63959 445.91837,501.76394 C 452.71445,497.17199 456.16607,495.55003 461.8952,494.25623 C 470.09601,492.40425 471.88886,491.32674 471.89077,488.24888 C 471.89175,486.65401 473.16388,485.55766 476.9716,483.87008 C 485.82022,479.94838 486.58402,479.95455 488.25811,483.96122 C 489.52378,486.9904 490.26186,487.53596 493.45998,487.80629 C 498.09756,488.1983 499.82662,490.50168 498.01888,493.87948 C 496.28504,497.11919 497.78603,503.00407 500.45262,503.42134 C 501.51788,503.58803 503.34555,504.19708 504.51412,504.77477 C 506.39333,505.70378 506.50999,506.16637 505.52389,508.77885 C 504.57571,511.29086 504.75056,512.32609 506.69313,515.70137 C 509.20065,520.05827 508.91512,521.59186 505.58043,521.67776 C 504.37539,521.70881 501.81445,522.28076 499.88945,522.94878 C 496.75946,524.03495 496.03111,523.92326 492.9999,521.89233 C 487.83209,518.42987 481.10468,518.99667 475.85846,523.33654 C 470.66288,527.63452 466.8577,530.53636 463.13945,533.0361 C 460.80195,534.60757 458.88945,536.17748 458.88945,536.52479 C 458.88945,536.8721 456.86445,539.26954 454.38945,541.85243 C 451.26471,545.11337 449.88752,547.40014 449.88313,549.33495 C 449.87843,551.40436 449.075,552.57772 446.76073,553.89506 C 443.90144,555.52263 443.54711,555.5354 442.46102,554.05009 C 440.82943,551.81876 436.69652,552.60378 435.30314,555.40969 C 433.58677,558.86602 430.79024,560.55424 426.72278,560.58952 C 424.70612,560.60701 422.88159,561.14489 422.66829,561.7848 C 422.40952,562.56112 418.1774,563.05673 409.9502,563.27419 C 403.01196,563.45758 397.04477,564.07745 396.30466,564.69169 C 395.58125,565.29206 392.49451,565.89973 389.44522,566.04205 C 385.98952,566.20335 383.21,566.92624 382.06652,567.96108 C 379.81098,570.00231 376.34932,570.04988 372.38945,568.09404 z\",name:\"Mersin\"},34:{path:\"M 210.10993,235.38932 C 208.9156,234.14192 205.90749,231.32132 203.42522,229.12132 C 200.94296,226.92132 198.90694,224.77488 198.90073,224.35145 C 198.89453,223.92802 199.98889,221.83996 201.33264,219.71131 C 202.6764,217.58266 203.50416,215.56936 203.17211,215.23731 C 202.84006,214.90526 203.38536,213.73082 204.3839,212.62745 C 206.8154,209.94068 211.35909,210.05385 220.22148,213.02191 C 224.16386,214.34224 230.65195,216.19072 234.63945,217.12963 C 238.62695,218.06855 241.88945,219.04287 241.88945,219.29478 C 241.88945,220.67795 239.64444,223.62132 238.58946,223.62132 C 237.91316,223.62132 235.69864,224.51167 233.6683,225.59986 C 230.21668,227.44982 229.79451,227.47381 227.1725,225.96898 C 224.53559,224.4556 224.15998,224.48505 220.87884,226.46242 C 218.51455,227.88725 216.90467,229.91818 215.88594,232.76114 C 214.06427,237.84489 212.94753,238.35303 210.10993,235.38932 z M 199.96203,233.98646 C 197.69977,231.11046 197.33386,229.62132 198.88945,229.62132 C 199.43945,229.62132 199.88945,230.041 199.88945,230.55393 C 199.88945,231.06687 200.78945,231.77219 201.88945,232.12132 C 202.98945,232.47045 203.88945,233.62577 203.88945,234.68871 C 203.88945,237.36701 202.41359,237.10312 199.96203,233.98646 z M 182.13945,224.86951 C 178.27874,224.61014 176.88945,224.11706 176.88945,223.0062 C 176.88945,222.12872 176.156,221.61166 175.13945,221.77251 C 174.17695,221.92481 172.23728,221.28225 170.82908,220.3446 C 165.04233,216.49154 154.60535,214.63824 149.53963,216.56422 C 147.6245,217.29235 146.92634,217.15983 146.47453,215.98243 C 145.3296,212.9988 145.93925,210.83785 149.84855,204.02299 C 157.13638,191.31851 157.40464,190.67592 156.21539,188.77163 C 155.40835,187.47935 155.44994,186.57529 156.37457,185.31078 C 157.54854,183.70528 157.71183,183.70387 159.0078,185.28807 C 163.27953,190.50982 192.89483,207.2103 200.07165,208.44454 C 204.00229,209.12051 204.00469,209.1238 202.07323,211.19533 C 201.00965,212.33604 200.13945,214.51372 200.13945,216.03462 C 200.13945,219.12818 196.97525,222.99952 196.18622,220.87132 C 195.4244,218.81651 193.6137,219.45885 194.1701,221.58653 C 194.90659,224.40288 191.01222,225.4656 182.13945,224.86951 z\",name:\"İstanbul\"},35:{path:\"M 91.220802,426.84727 C 90.578046,426.43838 89.903046,424.54866 89.720802,422.64789 C 89.432845,419.64453 88.96087,419.10503 86.116896,418.52831 C 84.316991,418.16332 81.655726,416.58216 80.202974,415.01461 C 78.091643,412.73645 76.692134,412.16019 73.228714,412.14292 C 70.207533,412.12786 68.894857,411.70038 68.892636,410.73085 C 68.890884,409.96609 67.909685,407.37859 66.712195,404.98085 C 64.728088,401.00806 64.205433,400.62132 60.820603,400.62132 C 57.692633,400.62132 57.007212,401.01598 56.478806,403.12132 C 55.741191,406.06021 51.902423,406.68465 51.868099,403.87132 C 51.844459,401.93377 44.407043,396.1834 43.027463,397.03602 C 42.548567,397.332 41.41025,396.74929 40.497868,395.74112 C 38.978711,394.06247 38.973874,393.79614 40.440437,392.579 C 41.735157,391.50448 42.193397,391.49508 42.832965,392.52992 C 44.387192,395.04472 52.88945,388.75332 52.88945,385.08845 C 52.88945,384.25795 51.821878,383.09202 50.517067,382.49751 C 49.065665,381.83621 47.706933,379.9555 47.017067,377.65293 C 45.480376,372.52391 45.596597,370.88459 47.575421,369.77718 C 50.217886,368.29839 53.601515,370.44443 55.293078,374.67207 C 56.124741,376.7506 57.27415,378.74104 57.847321,379.09528 C 59.366803,380.03437 59.122586,382.62132 57.51445,382.62132 C 56.71445,382.62132 56.13945,383.66677 56.13945,385.12132 C 56.13945,386.49632 56.5332,387.62132 57.01445,387.62132 C 57.4957,387.62132 57.88945,388.71976 57.88945,390.0623 C 57.88945,391.40484 58.33945,392.7814 58.88945,393.12132 C 59.452266,393.46916 59.88945,392.66737 59.88945,391.28733 C 59.88945,387.26123 64.803063,386.96599 64.874137,390.98782 C 64.882559,391.46439 67.92695,391.57459 71.63945,391.23272 C 75.35195,390.89084 79.51445,390.62277 80.88945,390.63699 C 83.989789,390.66907 87.88945,388.68919 87.88945,387.08305 C 87.88945,386.29459 85.780769,385.83508 81.743689,385.74382 C 75.087455,385.59336 73.533606,384.53367 72.349852,379.33744 C 72.001044,377.8063 70.629759,375.84204 69.302552,374.97243 C 67.555821,373.82792 66.88945,372.47679 66.88945,370.07963 C 66.88945,366.3555 68.833883,365.32827 72.711063,367.00412 C 75.375308,368.15571 77.215785,366.37279 76.489015,363.34433 C 76.156977,361.96072 77.039596,361.30603 80.476012,360.38693 C 82.903403,359.7377 84.88945,358.6766 84.88945,358.02893 C 84.88945,356.20798 80.287057,353.62132 77.047078,353.62132 C 75.445072,353.62132 73.592061,352.96791 72.929276,352.16931 C 71.352091,350.26892 72.473394,346.88815 74.940602,346.10508 C 77.670455,345.23866 77.366239,342.0072 74.262641,338.9036 L 71.635831,336.27679 L 75.012641,333.45032 C 76.869886,331.89575 79.51445,330.32423 80.88945,329.95805 C 82.26445,329.59186 84.51445,328.46831 85.88945,327.46126 C 89.079136,325.12515 92.214191,324.89235 98.14035,326.55158 C 102.19558,327.68697 103.15716,328.47097 104.82233,331.99957 C 105.97877,334.45013 106.94341,339.09811 107.20148,343.46314 C 107.78331,353.3041 106.04553,355.53004 96.819943,356.76095 C 91.586475,357.45922 89.971541,358.13106 88.144417,360.37013 C 85.268089,363.89495 85.312571,365.68242 88.38945,370.21646 C 89.76445,372.24263 90.88945,374.9922 90.88945,376.32661 C 90.88945,380.23258 92.593606,382.34324 96.310283,383.04049 C 98.221549,383.39905 101.60845,385.21559 103.83672,387.07726 C 106.06499,388.93893 109.26883,390.76537 110.95636,391.13602 C 112.64388,391.50666 114.28573,392.55498 114.6049,393.46562 C 115.62875,396.38678 119.94724,401.62132 121.33335,401.62132 C 122.82746,401.62132 123.88945,399.48451 123.88945,396.47826 C 123.88945,394.68826 124.34414,394.56369 128.63945,395.1769 C 133.9748,395.9386 134.5468,396.29039 135.0528,399.12132 C 135.3385,400.7197 136.41233,401.22258 140.40036,401.62556 C 145.54463,402.14538 151.07743,405.23553 152.87386,408.59219 C 154.40738,411.4576 152.16174,416.95208 149.76254,416.20476 C 148.73234,415.88387 147.00523,415.34796 145.92452,415.01386 C 144.38131,414.53678 143.59036,415.18066 142.2393,418.01386 C 141.29315,419.99796 139.81487,421.68943 138.95424,421.77268 C 138.0936,421.85593 134.91445,422.05886 131.88945,422.22364 C 128.86445,422.38842 123.5204,422.81313 120.01379,423.16744 C 114.49718,423.72483 113.25631,423.52934 110.80429,421.71648 C 106.40156,418.4614 102.846,418.99566 98.127115,423.62132 C 93.900486,427.76446 93.186707,428.09786 91.220802,426.84727 z\",name:\"İzmir\"},36:{path:\"M 896.08991,294.16195 C 895.4736,292.80929 893.17357,290.51418 890.97873,289.0617 C 888.78389,287.60923 886.29893,285.36901 885.45659,284.08345 C 884.48139,282.59511 882.41075,281.44659 879.75618,280.92163 C 875.77809,280.13492 870.6467,275.53073 872.11338,274.06405 C 872.43788,273.73956 875.14273,273.14303 878.12415,272.73844 C 883.46734,272.01336 887.59468,269.82319 891.25888,265.76853 C 892.77469,264.09121 892.99816,262.83191 892.44023,259.11141 C 892.06179,256.58775 892.03269,253.24563 892.37558,251.68448 C 892.973,248.96442 893.30606,248.81726 900.36105,248.15615 L 907.7231,247.46627 L 908.3592,242.29379 C 909.6435,231.85033 909.69328,231.75031 914.21506,230.52656 C 925.43996,227.4887 926.59065,226.69362 928.02894,220.98163 C 928.77013,218.03812 929.65693,216.63165 930.75816,216.65312 C 932.80973,216.69312 935.88945,218.97946 935.88945,220.46251 C 935.88945,221.0789 937.12695,221.87794 938.63945,222.23816 C 943.14291,223.31071 946.88945,225.92141 946.88945,227.98701 C 946.88945,229.05098 948.08558,232.28377 949.54752,235.17101 C 952.05218,240.11754 952.13048,240.68879 950.90422,245.06857 C 950.18846,247.625 948.31733,251.09277 946.74615,252.77473 C 943.50392,256.24554 943.21035,257.81283 945.45374,259.67467 C 946.45943,260.50933 946.80573,261.81877 946.42351,263.34165 C 945.85604,265.60263 948.46114,271.62132 950.00723,271.62132 C 950.38484,271.62132 951.14036,272.90233 951.68616,274.46801 C 952.58506,277.0466 952.39255,277.48363 949.64209,279.10837 C 947.81001,280.19061 944.48046,280.93275 941.24755,280.97948 C 936.3579,281.05016 935.88945,281.25646 935.88945,283.33913 C 935.88945,285.1068 935.32583,285.62132 933.38945,285.62132 C 931.88988,285.62132 930.88945,286.19278 930.88945,287.04936 C 930.88945,288.04065 929.13083,288.68987 925.13945,289.17206 C 921.97695,289.55412 918.26445,290.44626 916.88945,291.15459 C 913.30401,293.00161 901.61075,296.62132 899.22947,296.62132 C 898.05519,296.62132 896.74165,295.59235 896.08991,294.16195 z\",name:\"Kars\"},37:{path:\"M 440.22047,246.00424 C 440.52306,244.96863 441.07421,241.53382 441.44526,238.37132 L 442.1199,232.62132 L 432.95692,232.62132 C 424.39557,232.62132 423.63721,232.79045 421.40665,235.19726 L 419.01935,237.7732 L 417.42872,234.69726 C 415.94789,231.83365 415.46197,231.62132 410.38945,231.62132 C 405.37183,231.62132 404.82057,231.38881 403.42084,228.68202 C 402.58486,227.06541 400.93521,225.06635 399.75496,224.23968 C 397.9942,223.00639 397.71527,222.08209 398.20086,219.08974 C 398.95941,214.41533 400.39972,212.73509 405.63945,210.41201 C 410.31347,208.33974 410.8682,207.2155 407.97955,205.66954 C 406.83595,205.05751 405.80293,203.06869 405.40489,200.7127 C 404.6311,196.13267 403.41841,195.45001 397.49777,196.26153 C 392.2058,196.98687 390.77595,195.43549 393.78468,192.23284 C 396.38803,189.46171 396.39923,188.5409 393.88945,183.62132 C 391.19639,178.3425 391.34477,177.62656 395.13945,177.59005 C 396.92695,177.57285 400.63945,176.45196 403.38945,175.09919 C 406.13945,173.74642 408.89596,172.63549 409.51502,172.63046 C 410.13408,172.62543 413.1209,171.52441 416.1524,170.18374 C 421.51414,167.81252 421.83745,167.78667 428.02683,169.23419 C 431.52627,170.05261 440.68945,171.10711 448.38945,171.57754 C 456.08945,172.04796 463.11277,172.72378 463.99682,173.07934 C 466.26617,173.99208 468.15847,181.06952 467.37424,185.71133 L 466.71768,189.5975 L 473.76148,189.35941 C 479.26464,189.1734 481.17632,189.49097 482.50167,190.81134 C 484.07732,192.38107 484.08163,192.67907 482.56227,194.9979 C 481.66259,196.371 479.69683,198.08549 478.19393,198.80788 C 474.74188,200.46716 473.16487,206.10403 474.82244,210.85895 C 475.78203,213.61163 475.6925,214.29217 474.23004,215.36154 C 473.28247,216.05442 471.78849,216.62132 470.91008,216.62132 C 468.45825,216.62132 461.83367,225.19022 461.18228,229.20423 C 460.74586,231.89358 461.12911,233.4542 462.77148,235.67563 C 463.96185,237.28569 465.19223,239.8852 465.50565,241.45231 C 465.9933,243.89058 465.66245,244.4727 463.21218,245.48764 C 461.63734,246.13996 458.33298,246.62733 455.86915,246.57069 C 453.40531,246.51405 448.75264,246.78708 445.52988,247.17743 C 440.09655,247.83553 439.71032,247.75018 440.22047,246.00424 z\",name:\"Kastamonu\"},38:{path:\"M 525.38945,457.03474 C 522.63945,456.36296 518.8825,455.77011 517.04067,455.71732 L 513.6919,455.62132 L 515.7045,452.21021 C 517.40349,449.33064 517.64208,447.57758 517.2356,440.96021 C 516.66815,431.72201 515.16583,429.56111 508.7082,428.69459 C 505.03944,428.2023 504.3077,427.69755 503.52799,425.12132 C 501.23483,417.54455 500.66353,416.62132 498.26813,416.62132 C 494.26673,416.62132 495.47541,413.53496 501.63945,408.01263 L 507.38945,402.86125 L 506.01406,399.49129 C 505.25759,397.63781 504.4227,394.67459 504.15874,392.90636 C 503.89479,391.13813 503.1242,389.23111 502.44633,388.66852 C 501.28454,387.70432 501.68568,384.82081 504.50484,373.87132 C 504.8703,372.45192 508.88945,372.13674 508.88945,373.52748 C 508.88945,374.02587 511.17775,374.74837 513.97457,375.13303 C 518.55594,375.76313 519.32367,375.5806 521.72457,373.29048 C 523.19025,371.89242 525.62695,370.28107 527.13945,369.70969 C 529.9106,368.66283 530.92702,365.3806 528.87314,364.11124 C 527.00222,362.95495 528.89406,361.74304 533.66276,361.04303 C 536.99375,360.55405 539.4976,359.35588 542.14233,356.98525 C 544.20642,355.13509 546.27417,353.62132 546.73734,353.62132 C 548.19246,353.62132 550.88701,357.1941 550.94478,359.20006 C 550.97521,360.25675 552.41917,362.24632 554.15359,363.62132 C 556.82761,365.74121 558.57114,366.17507 565.62103,366.47487 C 570.48335,366.68164 574.45841,366.39402 575.19575,365.78207 C 575.99203,365.12123 576.99681,365.07743 577.92299,365.66321 C 580.30214,367.16794 584.15987,366.75382 587.66362,364.61758 C 592.17874,361.86471 594.17446,362.10902 595.72149,365.60399 C 596.66157,367.72779 598.15659,368.92068 600.91334,369.74662 C 605.70483,371.18219 606.60948,373.25408 603.89342,376.57182 C 602.74549,377.97405 601.03749,380.78576 600.09786,382.82008 C 599.15824,384.8544 597.37032,386.98527 596.12472,387.55535 C 594.87912,388.12543 593.35947,389.6904 592.74771,391.03305 C 591.8395,393.02636 592.00276,394.08402 593.63754,396.79778 C 595.73425,400.27835 595.58063,402.54159 593.15054,403.97265 C 592.11646,404.58161 591.88641,405.79158 592.34248,408.22265 C 592.95155,411.46928 592.84689,411.62132 590.00286,411.62132 C 586.73402,411.62132 584.30018,414.28622 581.55487,420.87132 C 579.6428,425.45775 577.4856,425.69115 576.26736,421.44341 C 575.33525,418.19334 570.98899,414.83084 567.54382,414.69441 C 563.43266,414.5316 558.63331,419.92166 552.9192,431.11902 C 551.95627,433.00597 549.58589,434.96833 546.52195,436.41509 C 543.84483,437.67919 541.00018,439.36773 540.20052,440.16739 C 539.40086,440.96705 538.02667,441.62132 537.14676,441.62132 C 536.26686,441.62132 534.73696,442.35433 533.747,443.25024 C 532.26213,444.59402 532.05043,445.86808 532.53757,450.52878 C 533.29502,457.77575 532.26405,458.7141 525.38945,457.03474 z\",name:\"Kayseri\"},39:{path:\"M 114.21348,198.00342 C 111.83937,195.48613 110.17556,194.61975 107.7066,194.61516 C 105.88217,194.61177 103.04328,193.90708 101.39796,193.04917 C 99.486478,192.05249 97.230043,191.71004 95.147955,192.10065 C 92.093767,192.67362 91.88945,192.53456 91.88945,189.88291 C 91.88945,188.32694 93.46445,184.60923 95.38945,181.62132 C 99.461058,175.30154 99.664686,174.05731 96.752021,173.29563 C 94.633154,172.74154 94.637496,172.70946 97.252021,169.60228 C 99.657998,166.74293 99.889557,165.70673 99.890671,157.7946 C 99.891737,150.22948 100.17921,148.79363 102.14067,146.55661 C 104.10732,144.31367 105.14221,144.0029 110.38945,144.0796 C 116.81673,144.17355 120.88945,146.00034 120.88945,148.78929 C 120.88945,149.71707 122.12695,151.40392 123.63945,152.53786 C 125.15195,153.67179 126.95203,155.07227 127.63963,155.65003 C 128.52143,156.39098 130.14206,156.29553 133.13963,155.32612 C 137.28825,153.98445 150.82271,153.84401 152.88922,155.12118 C 154.63131,156.19785 153.96982,159.36704 151.88945,159.91107 C 149.13027,160.63261 149.30384,164.41722 152.38945,170.81338 C 153.76445,173.66361 154.88945,176.78485 154.88945,177.74946 C 154.88945,178.71406 155.33945,179.7814 155.88945,180.12132 C 157.99127,181.42032 156.74526,182.62132 153.29575,182.62132 C 148.17277,182.62132 130.46043,188.33291 128.34935,190.66564 C 127.37266,191.74486 126.30056,194.30733 125.96691,196.36 C 125.40883,199.79336 125.04176,200.14391 121.38174,200.73883 C 117.76972,201.32594 117.10937,201.07395 114.21348,198.00342 z\",name:\"Kırklareli\"},40:{path:\"M 454.98447,378.62132 C 453.29238,375.87132 451.52601,373.62132 451.05921,373.62132 C 450.59241,373.62132 449.74158,372.59219 449.16847,371.33436 C 448.45307,369.76423 446.57172,368.62403 443.16622,367.69669 C 439.34991,366.65747 436.72811,364.89982 431.79772,360.07523 C 424.3265,352.76436 421.88945,349.97004 421.88945,348.71444 C 421.88945,346.85506 431.69984,339.62132 434.22153,339.62132 C 435.62651,339.62132 437.36406,338.81541 438.08275,337.8304 C 438.80143,336.84539 440.8407,335.02276 442.61445,333.78011 C 444.74361,332.28846 446.20501,330.16315 446.91527,327.52542 C 448.63656,321.13306 457.43305,317.03149 459.82717,321.50495 C 460.40076,322.57671 462.46323,323.68612 464.61235,324.07892 C 469.18405,324.9145 472.88945,327.15676 472.88945,329.08767 C 472.88945,329.8688 473.82257,331.1615 474.96306,331.96032 C 476.78615,333.23727 476.87676,333.67417 475.71306,335.57678 C 474.496,337.56662 474.74484,338.04563 478.80412,341.52693 C 483.12848,345.23558 483.18474,345.36165 481.55412,347.68968 C 480.63855,348.99684 479.88945,351.0912 479.88945,352.34383 C 479.88945,354.23934 480.42615,354.62132 483.08945,354.62132 C 485.57834,354.62132 486.02278,354.88799 485.08945,355.82132 C 484.42945,356.48132 483.88945,357.77957 483.88945,358.70631 C 483.88945,359.63305 482.75932,361.13179 481.37806,362.03683 C 479.42208,363.31843 479.00374,364.2285 479.48647,366.15184 C 480.00645,368.22361 479.74793,368.62132 477.88123,368.62132 C 476.18974,368.62132 475.775,369.07566 476.15166,370.51601 C 476.49391,371.82478 475.91149,372.74588 474.26829,373.49457 C 472.95993,374.0907 471.88945,375.19335 471.88945,375.94489 C 471.88945,376.69644 471.02688,378.09196 469.97264,379.04604 C 468.4699,380.40599 467.62001,380.54749 466.03838,379.70102 C 463.00333,378.07671 461.93496,378.37141 460.88945,381.12132 C 460.36668,382.49632 459.51641,383.62132 458.99998,383.62132 C 458.48354,383.62132 456.67656,381.37132 454.98447,378.62132 z\",\n    name:\"Kırşehir\"},41:{path:\"M 237.88945,255.07701 C 232.33314,252.15647 231.35417,252.11061 228.16232,254.62132 C 226.58898,255.85891 224.10554,256.62132 221.6476,256.62132 C 218.25683,256.62132 217.78092,256.36519 218.39591,254.87132 C 218.79216,253.90882 219.34188,252.33728 219.61753,251.379 C 220.3043,248.99143 226.74223,247.38554 236.38355,247.19685 C 243.0538,247.06631 244.43216,246.7573 244.70687,245.33086 C 244.98109,243.90697 244.22182,243.62132 240.16277,243.62132 C 237.48245,243.62132 234.76742,243.09929 234.12938,242.46125 C 233.41773,241.7496 229.4749,241.30734 223.92938,241.31713 C 218.95742,241.32591 214.88945,240.92 214.88945,240.4151 C 214.88945,239.91021 215.61062,237.29227 216.49205,234.59746 C 217.658,231.03277 218.9791,229.17596 221.34082,227.78251 C 224.36464,225.99842 224.76846,225.97732 227.23606,227.47457 C 229.72026,228.98189 230.14972,228.94713 234.13728,226.91594 C 236.47597,225.72465 239.18776,224.50599 240.16347,224.20781 C 241.13919,223.90962 242.31253,222.65186 242.77089,221.41277 C 243.54817,219.31158 244.10309,219.18071 251.01228,219.46905 C 257.34934,219.73352 258.81314,219.46918 261.13786,217.64056 C 263.11287,216.08702 264.31476,215.75996 265.5364,216.44362 C 267.03658,217.28316 266.91838,217.6833 264.43725,220.16443 C 260.64473,223.95695 259.56421,228.0917 261.42519,231.69044 C 263.38515,235.48058 263.2715,236.90163 260.88945,238.38925 C 259.53725,239.23371 258.88945,240.72127 258.88945,242.98191 C 258.88945,248.37601 255.15751,252.90861 249.86808,253.93874 C 247.40483,254.41847 244.71445,255.40303 243.88945,256.12665 C 242.63399,257.22784 241.65584,257.05672 237.88945,255.07701 z\",name:\"Kocaeli\"},42:{path:\"M 359.63945,517.07544 C 357.57695,514.78046 355.88945,512.20738 355.88945,511.35749 C 355.88945,510.5076 353.52695,508.47889 350.63945,506.84925 C 343.25428,502.68121 337.05846,496.13309 333.86533,489.12132 C 332.36252,485.82132 329.72875,481.80019 328.01251,480.18548 L 324.89207,477.24965 L 321.25345,478.98478 C 316.72593,481.14381 312.88198,480.4347 307.24578,476.40073 C 303.23219,473.5281 303.13306,473.32291 304.08802,469.86434 C 304.63026,467.90048 304.81328,464.99048 304.49472,463.39767 C 304.03892,461.11869 304.4722,459.98575 306.52829,458.08023 C 309.77449,455.07175 311.25818,455.84226 310.45571,460.11982 C 309.62068,464.57089 312.48955,465.83433 315.38383,462.29014 C 316.68309,460.69913 318.92285,459.58345 321.74336,459.12229 C 325.99148,458.42771 326.08205,458.33401 325.47071,455.26587 C 325.12611,453.53637 324.40435,451.97132 323.86681,451.78799 C 323.32926,451.60465 322.88945,450.81715 322.88945,450.03799 C 322.88945,449.25882 322.22302,448.62132 321.4085,448.62132 C 320.59398,448.62132 319.64375,447.49057 319.29689,446.10855 C 318.95002,444.72652 318.15395,443.26402 317.52784,442.85855 C 315.65919,441.6484 311.94836,435.89574 312.60975,435.23435 C 312.94692,434.89719 314.40778,434.62132 315.85612,434.62132 C 318.92893,434.62132 320.88945,432.97562 320.88945,430.39624 C 320.88945,429.39244 317.27164,425.09494 312.84988,420.84624 C 306.56049,414.803 304.68983,412.35578 304.25692,409.60475 C 303.71334,406.15055 303.83378,406.00576 311.04649,401.4423 C 315.08512,398.88706 319.62695,396.23479 321.13945,395.54835 C 324.62376,393.96703 324.66945,391.29774 321.23896,389.73471 L 318.58847,388.52706 L 321.81789,385.19515 C 323.98832,382.95583 325.22482,380.53982 325.58863,377.82746 C 325.96783,375.00031 326.69288,373.64448 328.00969,373.30013 C 330.8591,372.55499 330.41602,368.79158 327.38945,368.03196 C 325.47582,367.55167 324.88945,366.7551 324.88945,364.63575 C 324.88945,361.95802 325.03311,361.88319 329.25913,362.35952 C 331.91044,362.65836 333.8999,362.41343 334.31815,361.73668 C 335.52134,359.78989 337.69597,360.52829 339.13224,363.37132 C 343.05377,371.13376 345.18107,372.09174 352.56654,369.42112 C 355.45503,368.37663 356.47314,368.50637 360.41429,370.42112 C 362.90505,371.63123 365.99871,372.62132 367.28908,372.62132 C 370.486,372.62132 378.88083,368.80735 379.55587,367.04824 C 379.85703,366.26343 380.7649,365.62132 381.57336,365.62132 C 383.54343,365.62132 388.88945,360.1832 388.88945,358.17919 C 388.88945,356.97775 389.50517,356.73775 391.38013,357.20834 C 393.15324,357.65336 394.04837,357.37075 394.48712,356.22739 C 395.45548,353.70389 397.11624,354.28608 402.80762,359.14415 C 405.72187,361.63171 408.99557,364.14293 410.08251,364.72464 C 411.16945,365.30636 412.71814,367.3604 413.52404,369.28919 C 415.40932,373.80132 414.19626,375.34859 408.77347,375.34859 C 404.4109,375.34859 402.93032,376.61574 402.90476,380.37132 C 402.89634,381.60882 402.49191,382.62132 402.00603,382.62132 C 400.53193,382.62132 399.90108,388.03047 401.24796,389.12132 C 401.92705,389.67132 403.07879,391.58382 403.80738,393.37132 C 404.53597,395.15882 405.71603,396.62132 406.42973,396.62132 C 407.14343,396.62132 409.12712,397.40882 410.83792,398.37132 C 413.37145,399.79669 413.83819,400.57261 413.35402,402.55414 C 413.02708,403.89218 411.75275,406.1835 410.52218,407.64595 C 409.29161,409.1084 407.68258,412.81518 406.94656,415.88324 C 405.39988,422.33053 406.32624,425.60947 412.63311,436.01132 L 416.20435,441.90132 L 426.2969,441.17564 C 431.8478,440.77652 440.10748,440.26173 444.65174,440.03168 C 452.83689,439.6173 452.93025,439.63987 454.65174,442.44941 C 455.60748,444.00922 459.20195,447.88448 462.63945,451.06109 C 467.82964,455.85737 468.88945,457.3857 468.88945,460.07405 C 468.88945,462.04135 468.10485,464.0214 466.88945,465.12132 C 465.46187,466.41326 464.88945,468.20129 464.88945,471.36858 C 464.88945,474.29167 465.57194,476.6735 466.88945,478.34845 C 467.98945,479.74687 468.88945,481.73646 468.88945,482.76975 C 468.88945,483.80304 469.42488,485.50581 470.07929,486.55369 C 471.94331,489.53846 469.68349,491.28155 461.57051,493.11686 C 457.62093,494.01033 452.90399,495.61272 451.08843,496.67771 L 447.78741,498.61407 L 448.40373,491.13573 L 449.02006,483.65738 L 444.87737,481.99981 C 441.46659,480.63509 440.32052,479.43679 438.39049,475.2173 C 437.10118,472.39859 435.44851,468.14937 434.71787,465.7746 C 433.40449,461.50572 433.34681,461.46358 429.62396,462.05337 C 421.97789,463.26468 418.38947,465.41243 416.08431,470.15713 C 413.99009,474.46768 411.73226,475.79404 410.33561,473.5342 C 409.96608,472.93629 408.78699,472.67636 407.71542,472.95658 C 406.5689,473.2564 405.54249,472.88072 405.22129,472.0437 C 404.08802,469.09044 400.19255,470.58972 395.27629,475.87132 C 391.33023,480.11063 389.6194,481.21758 386.38945,481.62132 C 382.75356,482.07581 382.41458,482.36482 382.66554,484.79634 C 382.83572,486.44511 382.26026,487.98134 381.16554,488.80067 C 380.18869,489.53179 378.38294,491.56421 377.15275,493.31716 C 373.86978,497.99524 374.93606,501.76447 380.58122,505.4366 L 385.04002,508.33701 L 380.21473,512.49952 C 377.56083,514.78891 374.26445,516.93141 372.88945,517.26065 C 371.51445,517.58988 369.48945,518.40186 368.38945,519.06505 C 364.37963,521.48255 363.39991,521.25978 359.63945,517.07544 z\",name:\"Konya\"},43:{path:\"M 235.57867,372.88972 L 234.19663,368.12132 L 226.55126,367.21781 C 219.43097,366.37635 218.47607,366.49674 212.64767,368.97068 C 209.20565,370.43169 205.48945,371.64172 204.38945,371.65963 C 203.28945,371.67754 201.26445,372.3353 199.88945,373.12132 C 196.58106,375.01257 188.88945,375.10687 188.88945,373.25618 C 188.88945,372.50535 187.98945,370.74687 186.88945,369.34845 C 185.78945,367.95003 184.88945,365.85022 184.88945,364.68221 C 184.88945,363.5142 184.28116,362.32513 183.5377,362.03983 C 182.70226,361.71925 182.36856,360.56585 182.66404,359.02015 C 183.40277,355.15575 179.39827,351.43389 174.91566,351.81865 C 171.43279,352.1176 171.38212,352.06601 170.79284,347.62132 C 170.4647,345.14632 169.86128,342.35266 169.45192,341.41319 C 168.88046,340.10174 169.3093,339.57922 171.29853,339.16319 C 172.72354,338.86516 174.97977,338.39645 176.31238,338.12161 C 180.66393,337.22414 184.88945,332.81276 184.88945,329.16729 C 184.88945,327.36535 185.78945,324.74687 186.88945,323.34845 C 187.98945,321.95003 188.88945,320.36219 188.88945,319.81992 C 188.88945,319.17581 190.26718,319.18369 192.86324,319.84264 C 198.76154,321.33978 201.31347,320.3153 203.11595,315.72663 C 204.14566,313.10524 206.03693,310.92204 208.77593,309.19298 C 212.09652,307.09678 212.88945,306.02037 212.88945,303.60878 C 212.88945,300.26136 213.61933,299.94978 216.44832,302.08952 C 217.55987,302.93025 220.61181,303.57131 223.58955,303.58952 L 228.78964,303.62132 L 229.08955,309.33119 L 229.38945,315.04106 L 235.88945,317.30336 C 240.01659,318.7398 243.54414,319.35862 245.55251,318.99851 C 250.24839,318.15651 252.88945,319.31688 252.88945,322.22204 C 252.88945,323.70693 254.2819,326.08043 256.38945,328.18799 C 260.16231,331.96085 260.78805,334.97089 258.35776,337.65633 C 256.97994,339.17882 256.99693,339.68897 258.52696,342.73507 C 262.38372,350.4134 262.31537,350.85322 256.83064,353.65132 C 252.68329,355.76714 250.88945,358.18259 250.88945,361.65129 C 250.88945,364.99272 248.16443,368.72211 242.31231,373.38972 L 236.9607,377.65813 L 235.57867,372.88972 z\",name:\"Kütahya\"},44:{path:\"M 645.91768,444.50812 C 640.76471,442.45169 640.56384,438.47754 645.38945,434.05745 C 649.62134,430.1812 649.98123,426.10697 646.61649,420.16644 C 644.89906,417.13426 643.2836,415.82057 639.69228,414.5357 C 637.116,413.61397 633.84318,411.94348 632.41935,410.8235 C 630.99552,409.70352 628.00819,408.47928 625.78084,408.10297 L 621.73111,407.41877 L 623.73547,405.27005 C 624.83786,404.08825 626.94298,400.7174 628.4135,397.77927 C 630.10966,394.3903 632.33065,391.70354 634.48831,390.43049 C 638.11115,388.29296 638.72839,386.00365 636.67896,382.30558 C 636.01318,381.10424 635.40963,377.98382 635.33772,375.37132 C 635.20866,370.68224 635.24739,370.62132 638.35709,370.62132 C 640.08964,370.62132 642.3807,371.28201 643.44832,372.08952 C 646.5896,374.46546 648.51454,373.92138 649.5272,370.37132 L 650.45426,367.12132 L 661.10219,366.08936 C 669.01383,365.32259 672.27541,364.582 673.79426,363.20747 C 675.55708,361.61213 676.24465,361.52581 678.79021,362.58021 C 680.4137,363.25269 682.71431,363.4943 683.90267,363.11712 C 687.67082,361.92116 692.47693,363.42053 693.73651,366.18499 C 695.25115,369.50926 695.19132,370.62132 693.49786,370.62132 C 691.10542,370.62132 690.62087,375.42992 692.71179,378.42224 C 693.74909,379.90674 694.91065,382.41325 695.29303,383.99227 L 695.98827,386.86323 L 691.57238,386.20102 C 687.30086,385.56047 687.1046,385.64815 685.56964,388.88284 C 684.69687,390.72206 683.06179,393.06037 681.93612,394.07908 C 679.05799,396.68376 679.16588,402.62726 682.13945,405.27972 C 683.37695,406.38358 688.16776,408.27066 692.7857,409.47322 C 700.45609,411.47067 701.38542,411.52637 703.5357,410.11745 C 704.83026,409.26922 705.88945,409.01269 705.88945,409.54738 C 705.88945,410.08206 707.456,411.7144 709.37068,413.1748 C 712.4791,415.54571 713.19696,415.70977 716.07403,414.70682 C 718.87497,413.73041 719.56369,413.85129 721.3428,415.63157 C 723.32262,417.6127 723.33231,417.77922 721.63945,420.73148 C 720.67695,422.41004 719.88945,424.23996 719.88945,424.79799 C 719.88945,427.18786 715.34848,431.86176 710.77486,434.17939 L 705.83581,436.68219 L 702.51824,434.15176 C 700.69358,432.76002 698.73482,431.62132 698.16545,431.62132 C 697.59609,431.62132 694.03856,430.05474 690.25984,428.14003 C 682.08353,423.99701 679.6285,423.82024 675.37051,427.06797 C 673.60627,428.41362 670.93995,429.82153 669.44536,430.19664 C 665.77129,431.11878 665.27299,433.02215 667.84846,436.29634 L 669.99889,439.03017 L 667.72673,440.74406 C 662.38714,444.77172 651.35105,446.67646 645.91768,444.50812 z\",name:\"Malatya\"},45:{path:\"M 158.27138,417.23326 C 153.387,416.17209 153.1953,416.00824 154.07294,413.64483 C 155.44629,409.94651 154.29164,407.02987 150.22678,403.92945 C 147.75725,402.04585 144.94788,400.98194 141.526,400.63448 C 137.15781,400.19092 136.39313,399.7836 135.88819,397.63134 C 135.42824,395.67086 134.46248,394.99199 131.34673,394.43897 C 124.23393,393.1765 122.89093,393.40354 122.87414,395.87132 C 122.84289,400.46219 121.30981,401.04557 118.66561,397.47278 C 117.30139,395.62948 115.92407,393.37625 115.6049,392.46562 C 115.28573,391.55498 113.64388,390.50666 111.95636,390.13602 C 110.26883,389.76537 107.06499,387.93893 104.83672,386.07726 C 102.60845,384.21559 99.221549,382.39905 97.310283,382.04049 C 93.593606,381.34324 91.88945,379.23258 91.88945,375.32661 C 91.88945,373.9922 90.76445,371.24263 89.38945,369.21646 C 86.354127,364.74366 86.355506,364.78782 89.144417,361.37013 C 90.971541,359.13106 92.586475,358.45922 97.819943,357.76095 C 102.91396,357.08129 104.7224,356.35427 106.52132,354.26291 C 108.62723,351.81465 108.74874,350.98712 108.19389,342.87209 C 107.86482,338.05916 106.9867,333.23369 106.24251,332.14881 C 104.47297,329.56916 104.5187,326.70082 106.34052,326.00172 C 107.13861,325.69547 109.31858,326.60959 111.18491,328.03311 C 113.38166,329.70865 115.84648,330.62132 118.17482,330.62132 C 120.15295,330.62132 122.08131,331.12275 122.46008,331.7356 C 122.87161,332.40146 124.70628,332.64097 127.0191,332.33076 C 130.52048,331.86112 130.88945,332.02625 130.88945,334.06284 C 130.88945,337.34686 133.70167,342.45218 136.53229,344.30687 C 137.88495,345.19317 139.65523,347.20149 140.46624,348.76982 C 141.70667,351.16854 142.5625,351.62132 145.85611,351.62132 C 148.00953,351.62132 150.03007,351.20281 150.3462,350.69131 C 150.66232,350.1798 153.50138,349.49135 156.65521,349.16142 C 159.80904,348.83149 164.04701,348.34947 166.07291,348.09026 C 169.48453,347.65375 169.77974,347.82201 170.07291,350.37014 C 170.35348,352.80872 170.8022,353.12132 174.02208,353.12132 C 178.89306,353.12132 182.174,356.04927 181.37573,359.6838 C 180.95889,361.58164 181.24068,362.54212 182.33784,362.96314 C 183.19123,363.29062 183.88945,364.4909 183.88945,365.63043 C 183.88945,366.76996 184.83471,368.98084 185.99003,370.54349 C 187.98167,373.23733 188.00425,373.51648 186.42547,375.92601 C 185.31707,377.61763 183.47533,378.68444 180.91712,379.11665 C 174.96903,380.12157 173.85593,381.43525 173.26851,388.14355 C 172.98061,391.43132 172.04409,395.78689 171.18735,397.82259 C 169.67177,401.42378 169.70094,401.60858 172.26624,404.65726 C 175.07691,407.99755 174.95007,409.62132 171.87847,409.62132 C 170.76033,409.62132 168.71827,411.46322 166.88945,414.12132 C 165.18661,416.59632 163.70249,418.55919 163.59141,418.48326 C 163.48033,418.40732 161.08632,417.84482 158.27138,417.23326 z\",name:\"Manisa\"},46:{path:\"M 610.71397,493.48136 C 609.9628,492.18334 608.66744,489.77132 607.8354,488.12132 C 605.87038,484.22451 602.23989,483.56939 600.9796,486.88419 C 600.47742,488.20505 598.56465,490.01313 596.72902,490.90216 C 593.43829,492.4959 593.37224,492.4818 592.01738,489.89596 C 588.54858,483.27551 586.05226,481.36748 581.72835,482.03165 C 569.16528,483.96139 569.96271,483.99358 569.04761,481.51983 C 568.57755,480.24914 568.56393,477.61465 569.01735,475.6654 C 570.39575,469.73961 570.0756,465.90746 568.13945,465.15689 C 566.57931,464.55208 566.5571,464.35061 567.93475,463.2999 C 570.57353,461.28734 573.91089,452.84929 573.84235,448.36337 C 573.74949,442.2863 575.26685,432.49851 576.70567,429.89342 C 577.38244,428.66807 579.05066,426.55102 580.41281,425.18887 C 581.77496,423.82672 582.88945,422.12124 582.88945,421.39891 C 582.88945,420.67658 584.03067,418.40613 585.4255,416.35345 C 587.42049,413.41757 588.6106,412.62132 591.0037,412.62132 C 593.90113,412.62132 594.03024,412.44641 593.71765,408.9447 C 593.39174,405.29376 593.42437,405.2594 598.38945,404.02392 C 604.14587,402.59153 624.88945,400.7659 624.88945,401.69166 C 624.88945,402.03249 623.98945,403.12583 622.88945,404.12132 C 619.86681,406.85678 620.46531,408.37387 624.86001,409.11635 C 627.04382,409.4853 629.99552,410.70352 631.41935,411.8235 C 632.84318,412.94348 636.116,414.61397 638.69228,415.5357 C 642.2836,416.82057 643.89906,418.13426 645.61649,421.16644 C 648.78891,426.76743 648.50875,429.28432 644.28192,433.15595 C 640.70665,436.43076 640.68055,436.51337 641.36291,442.39264 L 642.05143,448.32497 L 637.97044,451.55718 C 635.61937,453.41926 633.88945,455.64212 633.88945,456.80106 C 633.88945,457.90748 633.10215,460.14553 632.1399,461.77449 C 630.41752,464.69025 630.42916,464.76606 632.8899,466.65655 C 634.26465,467.71271 636.16112,468.58685 637.10427,468.59908 C 639.06996,468.62457 640.88945,471.50963 640.88945,474.60103 C 640.88945,477.645 636.51265,481.62132 633.1621,481.62132 C 629.99188,481.62132 621.24763,486.98466 615.7346,492.31058 L 612.07975,495.84139 L 610.71397,493.48136 z\",name:\"Kahramanmaraş\"},47:{path:\"M 780.81376,505.04126 C 779.20985,503.3343 778.36215,501.21927 778.30876,498.79126 C 778.2533,496.26862 776.92467,493.11898 774.05876,488.71628 C 771.76564,485.19351 769.88945,481.75171 769.88945,481.06783 C 769.88945,480.38395 768.6002,477.37351 767.02446,474.37797 L 764.15947,468.93154 L 769.27446,468.78216 C 772.0877,468.7 776.86445,468.61516 779.88945,468.59364 C 786.74237,468.54487 790.02115,467.28703 792.68407,463.68524 C 794.27611,461.53189 795.35763,460.98816 797.30738,461.36088 C 798.70719,461.62847 800.98581,461.56297 802.37097,461.21531 C 804.42854,460.6989 804.88945,459.97666 804.88945,457.26893 C 804.88945,453.063 805.76468,452.19843 807.98673,454.20935 C 808.9545,455.08517 811.63029,456.22506 813.93294,456.74243 C 817.41886,457.52566 818.67865,457.35323 821.46002,455.71219 L 824.80047,453.74127 L 826.73708,456.9313 C 827.80222,458.68581 828.983,461.58382 829.36103,463.37132 L 830.04836,466.62132 L 839.03465,466.62132 C 848.71816,466.62132 850.04021,466.20569 855.08343,461.57592 C 858.44533,458.48962 866.81145,453.16716 867.3325,453.78316 C 869.09832,455.87074 869.93246,458.97831 868.98209,459.92868 C 868.38114,460.52963 867.88945,462.17307 867.88945,463.58077 C 867.88945,466.61357 865.48283,468.34289 860.05418,469.21097 C 856.28349,469.81393 856.10752,470.0137 855.51051,474.36934 C 855.16893,476.86146 854.88945,480.22341 854.88945,481.84035 C 854.88945,484.60809 855.07108,484.74034 857.99127,484.09896 C 861.07218,483.42227 861.08824,483.44027 860.37445,486.7695 C 859.9792,488.613 859.59589,490.13466 859.52263,490.15098 C 859.44938,490.16729 857.75453,490.92243 855.75629,491.82908 C 851.14138,493.92297 838.00841,494.3299 827.6326,492.7005 C 818.20478,491.21996 810.88059,492.43343 803.98823,496.61789 C 801.4589,498.15348 797.89654,499.72488 796.07188,500.10989 C 794.24722,500.4949 792.51507,501.43337 792.22266,502.19538 C 791.65808,503.66665 785.80769,507.62132 784.19573,507.62132 C 783.66902,507.62132 782.14714,506.46029 780.81376,505.04126 z\",name:\"Mardin\"},48:{path:\"M 182.76506,537.2068 C 180.3339,534.9525 180.21664,534.44104 180.99789,529.49889 C 181.84327,524.15105 181.2282,522.67447 178.13945,522.63663 C 176.19703,522.61284 176.66719,520.24122 178.88945,518.85339 C 181.35636,517.31278 181.48102,515.04219 179.13945,514.2996 C 178.17695,513.99436 176.17663,512.95262 174.6943,511.98463 C 172.31153,510.42864 171.69417,510.38787 169.36785,511.63288 C 167.44641,512.6612 166.85131,513.64149 167.16197,515.26657 C 167.39595,516.49057 167.21224,518.08362 166.75373,518.80667 C 166.15228,519.75514 165.91581,519.54713 165.90476,518.05988 C 165.88242,515.05235 162.56165,511.97001 158.52872,511.21342 C 155.46512,510.63869 154.97099,510.13842 154.70028,507.33742 C 154.44601,504.70656 153.93452,504.09376 151.88945,503.96986 C 150.51445,503.88656 148.82695,503.77406 148.13945,503.71986 C 147.45195,503.66566 146.88945,502.72132 146.88945,501.62132 C 146.88945,500.51021 146.22278,499.62132 145.38945,499.62132 C 144.55612,499.62132 143.88945,500.51021 143.88945,501.62132 C 143.88945,502.73243 143.22278,503.62132 142.38945,503.62132 C 141.56445,503.62132 139.98945,502.72132 138.88945,501.62132 C 137.78945,500.52132 136.44802,499.62132 135.9085,499.62132 C 134.42466,499.62132 133.47917,504.61104 134.72663,505.8585 C 135.51429,506.64616 135.22913,507.45942 133.7004,508.78528 C 132.53607,509.7951 131.08978,510.62417 130.48644,510.62764 C 129.8831,510.63112 128.65911,511.91799 127.76648,513.48735 C 126.07711,516.45746 121.28657,518.41844 119.66981,516.80168 C 119.096,516.22787 119.75503,515.87132 121.38945,515.87132 C 122.84695,515.87132 124.51545,515.39532 125.09723,514.81354 C 126.70071,513.21006 125.24439,510.63409 122.67083,510.52164 C 120.46976,510.42547 120.47745,510.39763 122.88945,509.73065 C 124.42463,509.30613 125.51277,508.18681 125.709,506.83033 C 125.99743,504.83645 125.59781,504.62132 121.60569,504.62132 C 119.17312,504.62132 114.43549,504.33417 111.07763,503.9832 C 105.32087,503.3815 104.91021,503.48137 103.88204,505.7332 C 102.92677,507.8254 102.03821,508.14971 96.711238,508.35042 C 89.535126,508.6208 88.517237,508.19019 90.150475,505.57496 C 91.073193,504.09745 92.48988,503.62132 95.96333,503.62132 C 98.489363,503.62132 100.85196,503.32547 101.21355,502.96388 C 102.33986,501.83758 113.13241,501.72819 118.71876,502.78646 C 124.69196,503.91802 125.87615,503.43093 124.09312,500.57584 C 123.28321,499.27897 123.23298,498.62132 123.94383,498.62132 C 124.53307,498.62132 124.87438,497.60882 124.70231,496.37132 C 124.42276,494.36084 124.81527,494.12132 128.38945,494.12132 C 131.20426,494.12132 133.05612,493.45465 134.63945,491.87132 C 135.87695,490.63382 137.78945,489.62132 138.88945,489.62132 C 139.98945,489.62132 140.88945,488.97228 140.88945,488.17901 C 140.88945,486.95643 137.49979,486.78443 118.63945,487.04994 C 101.82792,487.28662 96.022812,487.05529 94.88945,486.10354 C 94.06445,485.41074 91.95824,484.53994 90.208984,484.16843 C 87.613821,483.61726 86.825215,483.87283 85.9238,485.55714 C 84.361405,488.4765 83.189514,488.11915 82.667767,484.56425 C 81.817013,478.7677 89.931768,475.56177 93.41099,480.31989 C 94.444251,481.73296 94.816452,481.71526 97.222756,480.13859 C 98.689438,479.17758 99.88945,477.59815 99.88945,476.62875 C 99.88945,475.65935 100.56445,474.30601 101.38945,473.62132 C 103.33964,472.00281 103.3262,468.62132 101.36958,468.62132 C 100.53365,468.62132 98.017513,467.46471 95.778166,466.05107 C 91.992253,463.66113 91.818267,463.35746 93.298038,461.72233 C 95.164951,459.65941 95.347994,457.94083 93.757274,457.41059 C 92.014877,456.8298 95.602515,450.61701 97.66513,450.64328 C 99.807379,450.67057 107.82555,454.25518 109.87147,456.10026 C 110.79291,456.93125 115.2045,457.74824 121.09735,458.17919 C 129.00017,458.75715 131.43266,458.59143 134.17948,457.28798 C 138.48215,455.24623 144.22884,455.75679 147.95532,458.5119 C 149.97771,460.00711 151.63563,460.47215 153.38162,460.03393 C 155.57872,459.48249 155.97242,459.78618 156.5036,462.44208 C 156.83791,464.11361 158.18649,466.49119 159.50044,467.72559 C 160.8144,468.95999 161.88945,470.94676 161.88945,472.14065 C 161.88945,474.28843 164.67961,477.62132 166.47764,477.62132 C 166.98954,477.62132 167.95328,478.49389 168.61931,479.56036 C 169.28533,480.62683 171.4717,482.27831 173.47791,483.23032 C 178.32196,485.52897 181.13709,490.09951 180.36836,494.41737 C 179.86411,497.24968 180.28251,498.21438 183.34222,501.27409 C 186.30618,504.23805 187.36228,504.71946 189.64412,504.14676 C 193.03008,503.29694 192.79523,503.55174 194.43781,498.94573 C 195.18793,496.8423 195.82142,495.68382 195.84556,496.37132 C 195.8697,497.05882 196.56445,497.62132 197.38945,497.62132 C 199.25582,497.62132 199.2471,498.56436 197.35765,501.06245 C 195.29628,503.78781 195.52,504.62132 198.31285,504.62132 C 199.64573,504.62132 202.88466,502.9814 205.51049,500.97706 C 209.9907,497.55725 210.44149,497.42079 212.83002,498.76144 C 216.13737,500.61781 216.52139,503.00249 214.0242,506.17714 C 212.91782,507.58368 211.30332,510.8699 210.43643,513.47986 C 208.50967,519.28081 201.37867,526.53392 194.63945,529.54735 C 191.21835,531.07709 189.88945,532.24224 189.88945,533.71205 C 189.88945,536.437 188.11366,539.62132 186.59405,539.62132 C 185.92028,539.62132 184.19724,538.53479 182.76506,537.2068 z\",name:\"Muğla\"},49:{path:\"M 838.4379,392.51486 C 836.38316,386.08417 834.65543,383.9838 830.99158,383.4625 C 826.28373,382.79265 826.0461,380.31017 829.47235,367.5915 C 829.69901,366.7501 831.23558,365.55169 832.88696,364.92836 C 837.24775,363.28235 836.88579,360.17026 832.0464,357.70139 C 829.23288,356.26604 827.50124,354.32209 825.58248,350.44499 C 823.93642,347.11891 823.31318,344.79759 823.90686,344.20391 C 825.1761,342.93467 836.69287,341.53835 840.15907,342.23344 C 842.12229,342.62714 844.09847,344.51142 846.94633,348.70509 C 850.64111,354.14589 851.26233,354.62095 854.67671,354.61669 C 856.71872,354.61414 861.08945,353.49982 864.38945,352.14042 C 867.68945,350.78103 871.44641,349.65811 872.73824,349.64506 C 875.9637,349.61246 880.03386,344.91919 882.18238,338.75509 C 884.35549,332.52042 887.54858,330.01205 891.60741,331.35115 C 893.16062,331.86359 894.99587,333.56149 895.76237,335.19516 C 896.51748,336.80455 898.72265,339.78459 900.66274,341.81747 C 904.086,345.40446 904.58446,346.80552 906.55544,358.38059 C 906.86068,360.17319 907.51071,361.88724 907.99994,362.18961 C 911.18881,364.16043 905.62191,365.75296 894.6726,366.00215 C 890.8816,366.08843 887.41859,366.69218 886.7226,367.38817 C 886.04437,368.0664 884.64036,368.62132 883.60259,368.62132 C 882.42438,368.62132 881.29043,369.74804 880.58335,371.62132 C 879.76831,373.7806 878.79339,374.62132 877.10447,374.62132 C 872.304,374.62132 868.7122,378.57185 872.27103,379.9375 C 873.38866,380.36638 873.44292,381.25323 872.55505,384.57965 C 871.31337,389.23163 871.28452,389.2435 859.3564,390.00943 C 849.68637,390.63037 847.15691,391.46605 845.58531,394.55907 C 844.92759,395.85353 843.47333,397.24693 842.35364,397.65552 C 840.55825,398.31067 840.09581,397.70358 838.4379,392.51486 z\",name:\"Muş\"},50:{path:\"M 483.38945,417.70832 C 480.5344,417.37314 476.81246,416.05458 474.7134,414.63468 C 471.1848,412.24778 471.04441,411.93063 471.2134,406.7275 C 471.38767,401.36169 471.34906,401.28558 467.38945,399.18995 C 463.47047,397.11583 463.38945,396.96248 463.38945,391.6188 C 463.38945,387.35298 463.03067,386.09381 461.74275,385.83955 C 460.27114,385.54903 460.24723,385.2114 461.51792,382.66425 C 462.8307,380.03272 463.16417,379.89874 465.86452,380.91801 C 468.31218,381.8419 469.12365,381.71934 470.83935,380.16666 C 471.96691,379.14624 472.88945,377.69644 472.88945,376.94489 C 472.88945,376.19335 474.04447,375.05218 475.45616,374.40897 C 477.20829,373.61065 477.87272,372.66536 477.54978,371.43041 C 477.21551,370.15216 477.63608,369.62132 478.98307,369.62132 C 480.42958,369.62132 480.88945,368.90612 480.88945,366.6565 C 480.88945,364.71514 481.57985,363.3222 482.88945,362.62132 C 483.98945,362.03262 484.88945,360.72189 484.88945,359.70858 C 484.88945,358.69528 485.56445,357.30601 486.38945,356.62132 C 488.80281,354.61841 488.13809,353.62132 484.38945,353.62132 C 480.48004,353.62132 480.13658,352.70441 482.52896,348.65444 L 484.16846,345.87898 L 489.69474,349.75015 C 492.73419,351.87929 495.73105,353.62132 496.35443,353.62132 C 497.05394,353.62132 497.33633,354.91921 497.09206,357.01153 C 496.7655,359.80873 497.34154,361.11597 500.38524,364.48498 C 503.78752,368.2509 504.02292,368.90059 503.4142,372.84478 C 503.0512,375.19688 502.08316,379.53164 501.263,382.47758 C 499.92544,387.28197 499.93241,388.01131 501.33062,389.55632 C 502.18798,390.50368 502.88945,392.27822 502.88945,393.49972 C 502.88945,394.72123 503.62839,397.14959 504.53154,398.89609 L 506.17363,402.07155 L 500.53154,407.11778 C 496.83755,410.42165 494.88945,412.94207 494.88945,414.41742 C 494.88945,416.45336 491.25677,418.97771 489.07435,418.45832 C 488.69766,418.36868 486.13945,418.03118 483.38945,417.70832 z\",name:\"Nevşehir\"},51:{path:\"M 469.88945,482.25618 C 469.88945,480.95535 468.98945,478.74687 467.88945,477.34845 C 466.77049,475.92593 465.88945,473.29167 465.88945,471.36858 C 465.88945,469.20129 466.6284,467.26255 467.88945,466.12132 C 469.29271,464.85139 469.88945,463.04135 469.88945,460.05492 C 469.88945,456.10686 469.42971,455.37553 463.54335,449.95991 C 460.05299,446.74869 456.64857,443.08344 455.97797,441.81491 C 455.30738,440.54639 453.81582,439.15971 452.6634,438.7334 C 450.73875,438.02143 450.93905,437.67988 455.12265,434.53981 C 457.62766,432.65964 462.42496,429.43229 465.78333,427.36792 C 470.9078,424.21794 471.88945,423.16494 471.88945,420.81792 C 471.88945,419.27979 471.38866,417.52053 470.77658,416.90845 C 470.16451,416.29638 469.97999,415.28384 470.36654,414.65838 C 470.8474,413.88035 472.09795,414.30571 474.32606,416.00517 C 477.02109,418.06077 478.85952,418.52932 484.98609,418.72201 C 489.05794,418.85008 493.98471,418.61091 495.93447,418.19051 C 499.1393,417.49951 499.59513,417.67995 500.68447,420.07079 C 501.34721,421.52534 501.88945,423.50824 501.88945,424.47724 C 501.88945,427.61371 504.32222,429.74233 508.26433,430.05512 C 514.13654,430.52105 515.7816,432.87799 515.98813,441.12132 C 516.31497,454.16667 511.34857,460.28826 499.38945,461.58088 L 494.38945,462.12132 L 494.09641,468.75529 C 493.751,476.57459 492.28457,478.43207 485.44866,479.70916 C 482.96657,480.17286 479.04083,481.4678 476.72479,482.58679 C 471.27673,485.219 469.88945,485.1519 469.88945,482.25618 z\",name:\"Niğde\"},52:{path:\"M 639.57482,277.8148 C 637.13394,275.26708 637.02155,274.82908 638.35592,273.0648 C 641.48588,268.92646 640.40729,267.62132 633.85733,267.62132 C 625.78107,267.62132 621.35522,265.67183 619.53357,261.31201 C 617.69571,256.91339 617.53665,256.8303 608.5665,255.58266 C 601.83235,254.64603 600.63607,254.13497 597.21429,250.73292 C 595.11063,248.64139 592.71445,246.6873 591.88945,246.39048 C 590.6488,245.94413 590.73525,245.57713 592.38945,244.26788 C 593.48945,243.39725 595.34126,242.67062 596.50459,242.65312 C 599.6028,242.60654 603.60003,239.0637 605.03656,235.09104 C 605.73081,233.17112 606.98316,231.61857 607.84034,231.61516 C 608.69235,231.61177 610.67839,230.93677 612.25376,230.11516 C 615.54322,228.39958 619.48645,228.16023 620.38945,229.62132 C 620.72937,230.17132 622.01042,230.62132 623.23624,230.62132 C 624.46206,230.62132 627.023,231.95303 628.92722,233.58068 C 633.46932,237.46307 635.3952,237.36276 638.13026,233.10133 C 640.81324,228.92105 645.1577,228.49069 645.70632,232.35084 C 646.15114,235.48068 650.52591,238.21546 656.31042,238.97974 C 659.01695,239.33734 661.41541,239.81395 661.64032,240.03886 C 661.86524,240.26377 661.39584,241.49934 660.59721,242.78456 C 659.79859,244.06978 658.3085,247.52621 657.28589,250.46552 C 655.56662,255.4073 655.55052,255.90032 657.07206,257.0129 C 657.97705,257.67464 658.86869,259.54475 659.05348,261.1687 C 659.34118,263.69715 659.86499,264.16698 662.69971,264.43917 C 667.33417,264.88418 666.58011,267.72318 661.44475,269.16401 C 657.31693,270.32216 656.37699,271.37032 655.42996,275.87132 C 654.95854,278.11186 654.31004,278.62132 651.92941,278.62132 C 650.32235,278.62132 648.72937,278.17132 648.38945,277.62132 C 647.30196,275.86172 644.88945,276.55101 644.88945,278.62132 C 644.88945,281.43467 642.72873,281.10678 639.57482,277.8148 z\",name:\"Ordu\"},53:{path:\"M 786.00665,263.69375 C 784.66592,262.86514 784.39015,258.41437 785.42703,254.3391 C 786.42779,250.40582 783.2607,239.72116 780.09916,236.36473 C 776.92313,232.9929 777.85581,231.69316 784.01837,230.90311 C 789.63968,230.18246 795.41175,227.26269 799.30582,223.17004 C 801.42385,220.944 803.69416,219.72487 806.55601,219.27676 C 809.46452,218.82135 812.3149,217.26518 815.99624,214.12285 C 818.89676,211.64701 821.87056,209.62132 822.60468,209.62132 C 823.3388,209.62132 824.21271,210.98761 824.54669,212.65752 C 824.90038,214.42595 826.62851,216.90919 828.68544,218.60469 L 832.21695,221.51566 L 828.3032,226.12235 C 821.66581,233.93489 818.89252,237.85143 818.81636,239.51999 C 818.69085,242.2698 815.31744,247.10741 813.30854,247.41844 C 809.66741,247.98218 803.88945,250.92863 803.88945,252.22167 C 803.88945,254.05111 799.4549,258.62132 797.67977,258.62132 C 796.86558,258.62132 795.41099,259.49253 794.44735,260.55734 C 792.30277,262.92708 787.596,264.67603 786.00665,263.69375 z\",name:\"Rize\"},54:{path:\"M 270.13945,275.34616 C 268.90195,274.7794 267.88945,273.73978 267.88945,273.03589 C 267.88945,271.28838 264.88801,270.47748 259.45984,270.75846 C 255.94978,270.94016 254.38483,270.49589 252.58766,268.80753 C 251.30775,267.60511 249.28562,266.62132 248.09405,266.62132 C 245.98048,266.62132 245.7666,266.19999 244.43245,259.40809 C 243.97588,257.08377 245.56443,255.98171 250.86808,254.94335 C 256.14126,253.91096 259.88945,249.37674 259.88945,244.03014 C 259.88945,241.80438 260.57877,240.25191 262.01311,239.24726 C 263.74344,238.03529 264.01247,237.14503 263.46566,234.44055 C 261.5909,225.16831 261.5828,225.23883 264.92496,221.74157 L 268.12461,218.39345 L 273.12186,220.00739 C 275.87035,220.89505 278.72859,221.62132 279.47349,221.62132 C 280.2184,221.62132 282.52922,222.4908 284.60866,223.5535 C 286.68809,224.6162 290.52695,225.79229 293.13945,226.16704 C 295.75195,226.54179 297.94277,227.35981 298.00793,227.98486 C 298.30976,230.8799 297.55451,232.34831 294.23042,235.3294 C 291.394,237.87314 290.54721,239.47802 290.14129,243.0794 C 289.73267,246.70465 289.93674,247.62132 291.15241,247.62132 C 293.24358,247.62132 294.19358,250.54994 292.69008,252.36155 C 292.01145,253.17925 291.21618,255.93471 290.92283,258.4848 L 290.38945,263.12132 L 284.22147,263.62132 C 278.97188,264.04687 277.72864,264.53592 275.87173,266.90585 C 274.4075,268.77461 273.88403,270.46359 274.28004,272.04143 C 275.06018,275.14974 273.10968,276.70649 270.13945,275.34616 z\",\n    name:\"Sakarya\"},55:{path:\"M 549.38945,246.05119 C 546.63945,245.28598 542.94448,244.65122 541.17841,244.64061 C 539.32661,244.62949 537.21008,243.81158 536.17841,242.70843 C 535.19448,241.65634 533.03945,240.64384 531.38945,240.45843 C 528.76903,240.16397 528.43014,239.77337 528.71102,237.37132 C 528.99524,234.94068 528.70491,234.62409 526.21102,234.64518 C 524.65915,234.6583 521.59078,235.08598 519.3924,235.59558 C 515.83271,236.42075 515.1155,236.25401 512.83769,234.07173 C 511.43097,232.724 509.31331,231.62132 508.13178,231.62132 C 504.27632,231.62132 500.78538,229.308 499.30914,225.77487 C 498.08539,222.84602 498.07212,222.06315 499.22341,220.71558 C 499.97253,219.83874 500.86374,218.3364 501.20387,217.37704 C 501.78037,215.75099 507.46107,211.63342 509.13945,211.62506 C 509.55195,211.623 509.88945,212.15963 509.88945,212.81757 C 509.88945,213.47551 511.07565,215.72551 512.52545,217.81757 C 515.95915,222.7724 519.79365,223.00589 523.98824,218.51556 C 527.1148,215.16857 527.47937,213.5921 525.83663,210.52263 C 525.07922,209.1074 525.13914,207.51248 526.05018,204.83838 C 528.19189,198.55194 530.69162,195.62132 533.91206,195.62132 C 535.49958,195.62132 539.85644,194.46681 543.59396,193.05574 C 547.33148,191.64467 551.18486,190.24011 552.15704,189.93451 C 553.34586,189.56079 555.06488,190.58788 557.40704,193.07129 C 560.42133,196.26737 560.88945,197.43193 560.88945,201.73456 C 560.88945,205.76346 561.5053,207.54841 564.13945,211.15413 C 565.92695,213.60093 568.30586,215.85668 569.42592,216.16691 C 570.54599,216.47713 571.89599,217.71879 572.42592,218.92614 C 573.4341,221.22305 577.34326,222.24067 581.26028,221.22587 C 582.43132,220.92248 584.38381,218.91721 585.59915,216.7697 L 587.80884,212.86515 L 593.44857,214.17615 C 601.04235,215.94138 606.88945,219.85991 606.88945,223.18378 C 606.88945,225.09422 607.68928,226.05603 610.13945,227.09195 L 613.38945,228.46602 L 610.57435,229.54367 C 609.02605,230.13638 607.20395,230.62132 606.52524,230.62132 C 605.84653,230.62132 604.72663,232.1827 604.03656,234.09104 C 602.56063,238.17264 598.56574,241.62132 595.31361,241.62132 C 594.04524,241.62132 592.72835,242.07297 592.38718,242.62499 C 592.04602,243.17701 590.6774,243.35522 589.34582,243.02101 C 588.01424,242.68681 584.65887,242.95695 581.88945,243.62132 C 579.12003,244.28569 575.73841,244.54924 574.37475,244.20699 C 572.20856,243.66331 572.04811,243.34013 573.10456,241.64849 C 574.62954,239.20661 574.39713,239.02375 568.72234,238.20061 C 564.43984,237.57942 563.99794,237.71308 563.36,239.82248 C 562.42269,242.92175 557.88667,247.64257 555.95236,247.5319 C 555.09276,247.48272 552.13945,246.8164 549.38945,246.05119 z\",name:\"Samsun\"},56:{path:\"M 870.97959,454.12132 C 869.99393,453.02132 868.89601,451.29856 868.53978,450.29297 C 868.03639,448.87198 867.05628,448.53777 864.14077,448.79297 L 860.38945,449.12132 L 860.38945,444.68359 L 860.38945,440.24585 L 854.38945,439.12852 C 844.6494,437.3147 841.1033,434.18279 845.88945,431.62132 C 846.98945,431.03262 847.88945,429.89179 847.88945,429.08614 C 847.88945,428.20917 848.84658,427.62132 850.27444,427.62132 C 852.76487,427.62132 855.88945,423.98727 855.88945,421.09076 C 855.88945,420.21025 856.33533,418.65671 856.88028,417.63845 C 857.84081,415.84369 858.03201,415.84813 863.13028,417.78346 C 873.26265,421.62976 874.90726,421.91517 876.84308,420.16328 C 877.81701,419.28189 880.03258,418.15386 881.76656,417.65657 C 884.60711,416.84191 885.37318,417.14526 889.50412,420.72056 C 892.0258,422.90306 896.40659,425.86009 899.23922,427.29175 C 902.07185,428.7234 905.89618,431.48717 907.73774,433.43346 L 911.08603,436.97216 L 915.27689,434.68281 C 921.13989,431.48001 923.05783,432.12994 924.99925,437.97739 C 926.51136,442.53176 926.4977,443.05649 924.77422,446.62368 L 922.93939,450.42134 L 918.66442,449.38122 C 916.31319,448.80915 913.46045,447.50415 912.325,446.48121 C 907.88707,442.48303 900.1025,444.82039 895.43767,451.55173 C 892.20265,456.21988 893.07302,455.93786 881.58058,456.04172 C 873.97569,456.11044 872.52677,455.84796 870.97959,454.12132 z\",name:\"Siirt\"},57:{path:\"M 490.03647,219.04738 C 486.52557,217.10147 482.43996,215.62132 480.57963,215.62132 C 477.55993,215.62132 477.21354,215.28211 476.14202,211.27583 C 474.63654,205.64703 475.75225,201.49364 479.2226,199.80788 C 480.70973,199.08549 482.6304,197.42012 483.49076,196.10705 C 487.00784,190.7393 482.75707,187.19525 473.88945,188.10203 L 468.38945,188.66445 L 468.38945,183.39289 C 468.38945,180.49352 468.00374,177.05247 467.53232,175.74609 C 466.94134,174.10842 467.01181,173.57891 467.75924,174.04085 C 468.35548,174.40934 470.60801,174.23565 472.76487,173.65487 C 475.55833,172.90267 478.17821,172.91882 481.87214,173.71103 C 491.39476,175.75326 498.54611,173.11653 502.48603,166.11058 C 503.53537,164.24466 503.714,164.29203 506.63196,167.20999 C 508.97004,169.54806 509.56194,170.88376 509.16956,172.93637 C 508.70445,175.36942 509.65125,177.99725 513.21245,184.15726 C 515.30723,187.78073 518.31168,190.32994 521.88945,191.5195 C 523.81445,192.15953 526.2398,193.32734 527.27912,194.11463 C 528.97666,195.40053 529.02222,195.77864 527.7272,197.83369 C 524.80791,202.46629 523.47783,208.4225 524.7427,211.19857 C 525.73744,213.3818 525.59925,214.22013 523.83655,216.69561 C 520.71395,221.0809 517.23184,221.55917 514.29532,218.00608 C 512.98403,216.41946 511.63249,214.10882 511.29189,212.87132 C 510.9513,211.63382 509.93392,210.623 509.03104,210.62506 C 506.64057,210.6305 500.92697,214.34594 500.18565,216.37704 C 499.8355,217.3364 498.79952,219.10055 497.88347,220.29738 L 496.21793,222.47344 L 490.03647,219.04738 z\",name:\"Sinop\"},58:{path:\"M 596.46788,401.27752 C 596.80672,400.39453 596.10969,398.09571 594.91893,396.16902 L 592.75391,392.66595 L 595.1285,390.29136 C 596.43452,388.98534 597.92752,387.7378 598.44627,387.51905 C 598.96502,387.3003 600.17106,385.54632 601.12635,383.62132 C 602.08165,381.69632 603.82776,378.92299 605.00661,377.45837 C 608.14628,373.55758 607.00492,370.2721 601.98795,368.76898 C 599.15671,367.92072 597.66872,366.74394 596.72149,364.60399 C 595.09014,360.91853 591.65508,360.64703 586.33931,363.78341 C 583.08678,365.70244 582.28801,365.80561 579.23371,364.70116 C 576.56547,363.73631 575.4699,363.72463 574.35594,364.64913 C 573.43149,365.41635 570.31094,365.70971 565.60306,365.47197 C 559.65607,365.17166 557.69852,364.6364 555.14346,362.61192 C 553.41462,361.24209 551.97521,359.25032 551.94478,358.18577 C 551.91435,357.12122 550.96272,355.26376 549.83005,354.05809 L 547.77065,351.86596 L 552.58005,348.8943 C 556.78399,346.29673 557.80235,344.95515 560.66928,338.23756 C 563.68825,331.16372 563.85433,330.23614 562.75744,326.57503 C 562.10201,324.38743 560.96359,322.09781 560.2276,321.487 C 559.49162,320.87619 558.88945,319.07188 558.88945,317.47744 C 558.88945,315.3556 558.21926,314.27308 556.38945,313.43937 C 553.47196,312.11007 553.29838,311.35676 555.49038,309.53755 C 556.64927,308.57577 561.22758,308.1769 572.07142,308.093 C 588.8847,307.96292 588.34632,308.20581 589.43947,300.25764 C 589.88717,297.00244 590.94882,294.47104 592.52906,292.8908 C 594.68583,290.73404 595.49241,290.55274 600.27355,291.15011 C 604.18774,291.63915 606.40531,291.40592 608.59182,290.27523 C 611.28789,288.88104 611.72436,288.8848 613.15414,290.31459 C 614.62468,291.78512 622.1001,293.64318 627.88945,293.97712 C 629.90973,294.09365 630.44954,293.60016 630.70259,291.40534 C 630.90344,289.66327 632.42742,287.57128 634.95259,285.57131 C 637.11786,283.85638 638.88945,281.72607 638.88945,280.83729 C 638.88945,279.58042 639.15612,279.48799 640.08945,280.42132 C 640.74945,281.08132 642.32445,281.62132 643.58945,281.62132 C 645.29248,281.62132 645.88945,281.05031 645.88945,279.42132 C 645.88945,277.71021 646.15612,277.48799 647.08945,278.42132 C 647.74945,279.08132 649.95131,279.62132 651.98246,279.62132 C 655.7334,279.62132 656.88945,278.45293 656.88945,274.66198 C 656.88945,272.35137 658.58284,271.02474 662.63945,270.15734 C 665.65823,269.51185 665.88945,269.64946 665.88945,272.09152 C 665.88945,273.53754 666.56349,276.02409 667.38731,277.61719 C 668.23656,279.25945 668.77785,282.50608 668.63731,285.11468 L 668.38945,289.71563 L 673.88945,291.5503 C 676.91445,292.55937 680.82097,293.40718 682.57061,293.43431 C 684.36225,293.46209 686.62394,294.35581 687.74853,295.4804 C 688.84674,296.57861 691.80272,297.78569 694.31737,298.16278 C 696.83201,298.53988 698.88945,299.21051 698.88945,299.65308 C 698.88945,302.41998 697.40392,303.62132 693.98246,303.62132 C 691.95131,303.62132 689.84317,304.0676 689.29771,304.61306 C 688.64205,305.26872 687.21012,305.19117 685.07227,304.38422 C 681.0701,302.87357 678.52673,304.17444 678.07384,307.96373 C 677.83151,309.99137 678.35385,310.87579 680.32384,311.77338 C 683.24179,313.10289 683.48349,313.88342 681.48965,315.53816 C 680.71976,316.17712 679.1082,319.1185 677.90842,322.07458 C 676.20621,326.26855 675.96512,327.89418 676.81093,329.4746 C 677.59362,330.93708 677.5882,331.68947 676.79141,332.18191 C 675.10418,333.22468 676.62128,338.88779 679.08994,340.76198 C 681.14183,342.31976 681.16326,342.49037 679.51419,344.13944 C 678.10806,345.54556 677.90262,346.87855 678.43513,351.14064 C 679.20371,357.29215 678.40156,360.62132 676.1508,360.62132 C 675.26867,360.62132 673.69265,361.39444 672.64852,362.33936 C 671.30463,363.55556 667.65313,364.35883 660.14753,365.08936 C 649.58925,366.11701 649.54093,366.13385 648.5803,369.12132 C 647.30582,373.08484 647.43079,373.02213 644.5579,371.13973 C 642.94634,370.0838 640.50777,369.60945 637.72113,369.80983 C 634.01919,370.07604 633.43962,370.41208 633.73453,372.12132 C 633.92433,373.22132 634.0345,375.61692 633.97935,377.44488 C 633.9242,379.27283 634.55641,381.73546 635.38427,382.91738 C 637.60939,386.09419 637.26658,387.20126 633.34043,389.51774 C 631.27317,390.73745 629.17381,393.08983 628.31218,395.15201 C 626.48358,399.52848 624.82025,400.16139 612.88945,401.02048 C 607.66445,401.39672 601.69348,401.96969 599.62064,402.29375 C 596.43723,402.79143 595.94751,402.63358 596.46788,401.27752 z\",name:\"Sivas\"},59:{path:\"M 89.231551,243.07044 C 88.891608,242.18456 89.583572,240.51136 90.845312,239.1683 C 92.167883,237.76049 92.920835,235.87497 92.721825,234.46918 C 92.434736,232.44122 91.75334,232.08024 87.720735,231.81985 C 83.945594,231.57608 82.717634,231.00804 81.304938,228.85199 C 79.772651,226.51343 79.694618,225.38721 80.67024,219.69157 C 81.460502,215.07805 81.473055,212.82452 80.713591,211.90942 C 79.914419,210.94648 80.064175,210.62132 81.306843,210.62132 C 84.111129,210.62132 90.767623,206.73689 92.503663,204.08735 C 93.626251,202.37407 93.981459,200.34396 93.624413,197.68199 C 93.163034,194.24215 93.370653,193.71736 95.393787,193.20959 C 96.654435,192.89319 98.969179,193.30361 100.53766,194.12165 C 102.10615,194.93969 104.88217,195.61177 106.7066,195.61516 C 109.20827,195.6198 110.84905,196.49639 113.38082,199.18085 C 116.42174,202.40516 117.09818,202.68035 120.56367,202.10294 C 126.5368,201.10771 126.88945,200.86714 126.88945,197.78756 C 126.88945,193.6671 130.29736,189.86177 135.1931,188.51557 C 137.50109,187.88093 141.76883,186.5201 144.67696,185.4915 C 147.58509,184.4629 151.30141,183.62132 152.93544,183.62132 C 155.61416,183.62132 155.78853,183.81006 154.70809,185.54012 C 153.7664,187.048 153.78699,187.79293 154.80422,189.01862 C 155.88132,190.31645 155.75556,191.12762 154.05517,193.84983 C 146.80289,205.46026 144.76329,210.15031 145.18738,214.24131 C 145.9314,221.41859 143.11339,223.51583 138.06317,219.54333 C 135.73222,217.7098 134.59604,217.54442 128.40544,218.13752 C 121.24095,218.82392 117.96761,220.84682 117.91169,224.62259 C 117.88055,226.72448 108.16575,236.75071 103.58229,239.41133 C 101.48835,240.62682 98.76186,241.62132 97.523419,241.62132 C 96.284979,241.62132 94.398201,242.28201 93.33058,243.08952 C 90.82834,244.98212 89.963586,244.97809 89.231551,243.07044 z\",name:\"Tekirdağ\"},60:{path:\"M 553.8337,305.51715 C 553.31436,304.54676 552.88945,302.91322 552.88945,301.88706 C 552.88945,298.29344 550.94441,297.60815 542.44831,298.20833 L 534.38945,298.77762 L 530.63945,295.25045 C 524.70616,289.66973 526.17342,285.44083 535.17894,282.16693 C 540.7974,280.12438 545.88945,276.13817 545.88945,273.78243 C 545.88945,272.48037 546.86214,272.12132 550.38945,272.12132 C 553.32278,272.12132 554.88945,272.55651 554.88945,273.37132 C 554.88945,274.17234 556.39374,274.62132 559.07757,274.62132 C 565.36748,274.62132 572.36733,269.27077 568.88945,267.12132 C 567.14141,266.04097 567.81092,264.62132 570.06845,264.62132 C 571.2669,264.62132 573.73059,265.15763 575.54332,265.81312 C 579.48542,267.2386 580.84108,266.33034 578.54999,263.79871 C 577.63309,262.78555 576.88945,260.30865 576.88945,258.26783 C 576.88945,255.21451 577.33831,254.40116 579.47073,253.59042 C 582.46147,252.45334 582.22513,250.26734 579.06112,249.80177 C 577.76984,249.61176 576.88945,248.76413 576.88945,247.7109 C 576.88945,246.37179 578.28283,245.62775 582.59985,244.66165 C 586.93626,243.6912 588.40446,243.66634 588.70178,244.55831 C 588.91712,245.20433 589.7821,246.2703 590.62395,246.92711 C 591.4658,247.58393 593.92861,249.78956 596.09686,251.82851 C 599.56,255.08515 600.95396,255.66294 607.5665,256.58266 C 616.53665,257.8303 616.69571,257.91339 618.53357,262.31201 C 620.35522,266.67183 624.78107,268.62132 632.85733,268.62132 C 636.175,268.62132 638.88945,268.86215 638.88945,269.1565 C 638.88945,269.45085 638.13377,270.845 637.21017,272.2546 C 635.8661,274.3059 635.76629,275.19446 636.71017,276.70585 C 638.63176,279.78281 638.10634,281.28148 633.95259,284.57131 C 631.42742,286.57128 629.90344,288.66327 629.70259,290.40534 C 629.46539,292.46262 628.90439,293.05698 627.38945,292.85604 C 619.86197,291.85758 615.60535,290.67418 613.86002,289.09469 C 611.95257,287.36846 611.65896,287.36081 608.32566,288.95035 C 605.70671,290.19924 603.42954,290.46721 599.43006,289.99715 C 594.60311,289.42983 593.80279,289.61707 591.58803,291.83183 C 589.94755,293.47231 588.89313,295.95914 588.43947,299.25764 C 588.06432,301.98527 587.39427,304.8045 586.95047,305.52259 C 586.35233,306.4904 582.08594,306.88684 570.46075,307.05485 C 556.36131,307.25861 554.68262,307.10336 553.8337,305.51715 z\",name:\"Tokat\"},61:{path:\"M 769.38945,263.26309 C 766.70118,262.45356 764.96164,261.16704 764.08488,259.33994 C 762.37025,255.76677 758.88945,255.6203 758.88945,259.12132 C 758.88945,261.87131 757.43559,262.48693 756.52782,260.12132 C 756.21124,259.29632 755.11603,258.62132 754.09403,258.62132 C 752.58667,258.62132 752.32135,258.03865 752.68878,255.53524 C 753.09561,252.76332 752.9012,252.48337 750.77905,252.78524 C 748.9038,253.05199 748.28907,253.90896 747.79929,256.93923 C 747.4599,259.03907 746.47977,261.45958 745.62122,262.31812 C 744.20656,263.73278 743.77513,263.67611 741.01907,261.71361 C 739.34643,260.52259 736.4955,259.04088 734.68368,258.42092 C 732.87185,257.80096 731.16445,257.01516 730.88945,256.6747 C 730.61445,256.33425 727.96932,254.52406 725.01138,252.65207 C 718.00768,248.21966 715.89796,244.69772 715.89319,237.43034 C 715.88907,231.16062 716.77526,229.90855 719.85547,231.83217 C 721.5971,232.91984 722.53652,232.77515 726.14615,230.86327 C 731.34016,228.11221 732.09921,228.09064 734.39617,230.62875 C 737.25922,233.79238 741.82537,235.72598 743.86077,234.63667 C 745.10767,233.96935 746.74115,234.28202 749.50263,235.7166 C 752.33381,237.1874 754.44444,237.57541 757.2739,237.14524 C 760.12441,236.71188 761.64888,236.99862 763.00127,238.22252 C 765.35532,240.3529 771.28585,239.537 774.34649,236.66168 L 776.51673,234.62285 L 779.10621,237.37208 C 782.74978,241.24045 785.54018,251.63609 783.95936,255.45253 C 783.30751,257.02625 783.05812,259.44517 783.40516,260.82791 C 783.96149,263.04449 783.6577,263.41767 780.8378,263.98165 C 776.535,264.84221 774.13268,264.69143 769.38945,263.26309 z\",name:\"Trabzon\"},62:{path:\"M 732.23574,381.92154 C 730.5012,381.05701 728.55001,379.35559 727.89977,378.1406 C 727.04258,376.53893 726.05759,376.05768 724.31744,376.39034 C 720.55257,377.11003 714.88945,375.71988 714.88945,374.07601 C 714.88945,372.04148 710.91281,372.24759 709.19174,374.37132 C 707.91047,375.95235 707.8113,375.80338 708.1646,372.82837 C 708.46477,370.30082 708.2268,369.66163 707.14077,370.07837 C 706.36258,370.37699 705.51112,370.62132 705.24865,370.62132 C 704.98617,370.62132 705.04953,371.07132 705.38945,371.62132 C 705.72937,372.17132 705.30593,372.62132 704.44847,372.62132 C 703.59101,372.62132 702.88945,371.93049 702.88945,371.08614 C 702.88945,370.24179 702.17468,368.46007 701.30107,367.12678 C 698.83432,363.36204 700.19671,359.2736 704.42783,357.7436 C 708.65306,356.21574 709.36926,352.62132 705.44847,352.62132 C 702.22662,352.62132 701.12152,350.65601 703.40463,348.98656 C 704.82505,347.94793 705.54202,347.91802 706.66562,348.85052 C 707.80835,349.7989 708.36452,349.69211 709.35791,348.33357 C 710.04652,347.39183 711.0382,346.62132 711.56163,346.62132 C 712.08507,346.62132 713.51143,345.27132 714.73133,343.62132 C 715.95123,341.97132 717.58156,340.62132 718.35429,340.62132 C 719.12702,340.62132 721.02605,340.12917 722.57435,339.52766 C 724.12266,338.92614 727.5712,338.2739 730.23779,338.07823 C 732.90437,337.88257 736.1368,337.03405 737.42095,336.19264 C 739.61623,334.75423 739.77472,334.79543 740.07262,336.88184 C 740.52416,340.04437 743.60278,340.22269 746.36139,337.2461 C 747.65807,335.84696 749.91962,334.40087 751.38706,334.03256 C 753.36574,333.53595 753.9288,332.87979 753.56617,331.49312 C 752.85465,328.77226 754.31443,328.35422 758.46756,330.08951 C 762.99105,331.97954 766.62114,331.98965 769.88945,330.12132 C 773.69075,327.9483 782.1888,328.18963 784.30749,330.53075 C 785.94737,332.34281 785.94253,332.4714 784.21248,333.05209 C 783.20981,333.38863 780.8327,334.95721 778.93001,336.53783 C 775.94191,339.02011 775.65203,339.63031 776.80237,341.0164 C 777.96408,342.41617 777.68027,342.81077 774.58019,344.10607 C 772.6255,344.92279 770.74286,346.04949 770.39655,346.60984 C 770.05023,347.17019 768.70901,347.36315 767.41606,347.03864 C 765.45036,346.54528 764.78436,347.04051 763.35081,350.06151 C 762.24299,352.39606 761.83582,354.9034 762.20004,357.14786 C 762.66994,360.04349 762.46183,360.62132 760.94902,360.62132 C 759.95095,360.62132 758.54549,361.33083 757.8258,362.19802 C 756.73579,363.51139 756.81568,364.32887 758.30414,367.09277 C 761.37822,372.80099 758.5021,376.9834 750.71048,378.13535 L 746.03151,378.8271 L 745.71048,375.47421 C 745.45146,372.76892 744.90711,372.05334 742.8922,371.76937 C 740.48419,371.42999 740.45739,371.48642 742.1422,373.34811 C 744.58424,376.04654 744.32362,378.31444 741.24343,381.16907 C 738.20577,383.98428 736.63719,384.11531 732.23574,381.92154 z\",name:\"Tunceli\"},63:{path:\"M 725.38945,525.58657 C 723.73945,525.0698 718.25566,524.73919 713.20325,524.8519 L 704.01706,525.05682 L 699.20325,520.81072 C 696.55566,518.47537 692.36445,515.64166 689.88945,514.51359 C 684.0661,511.8594 673.63848,511.52136 669.30537,513.8463 L 666.22129,515.50108 L 664.55537,511.72518 C 663.63912,509.64843 662.88945,507.41435 662.88945,506.76055 C 662.88945,506.10675 661.77716,505.14893 660.4177,504.63206 C 656.41851,503.11157 652.81743,491.01993 655.81251,489.16887 C 656.3202,488.8551 657.0173,487.31571 657.36163,485.74799 C 657.72873,484.07658 659.00142,482.4357 660.43857,481.7809 C 661.78655,481.16671 662.88945,479.96405 662.88945,479.10832 C 662.88945,477.82785 663.74024,477.6653 667.6957,478.19001 C 671.50498,478.69532 673.17756,478.41671 675.759,476.84685 C 678.50921,475.17434 679.66756,475.0196 683.20275,475.85244 C 685.50544,476.39491 688.31909,477.84359 689.45531,479.07173 C 691.19461,480.95172 692.20788,481.21117 695.86521,480.71301 L 700.20925,480.12132 L 697.54935,478.70234 C 694.8362,477.25495 693.74606,474.24533 696.2883,475.22088 C 698.52583,476.0795 699.27069,473.62535 697.23959,472.08659 C 695.45326,470.73327 695.45268,470.68383 697.22278,470.65312 C 698.23112,470.63563 698.86996,470.06284 698.64243,469.38025 C 697.71352,466.59353 701.79833,464.92436 707.38945,465.80596 C 708.49577,465.98041 709.29203,465.60563 709.17142,464.96723 C 709.0515,464.33248 709.614,463.26488 710.42142,462.59479 C 711.22884,461.92469 711.88945,461.80359 711.88945,462.32568 C 711.88945,462.84777 713.18616,463.08462 714.77103,462.85201 C 716.3559,462.6194 717.95745,462.92234 718.33005,463.5252 C 719.38396,465.23047 720.60369,464.82207 721.19355,462.56643 C 721.59418,461.03441 721.09965,460.27154 719.25001,459.5683 C 716.71529,458.60461 716.84885,456.62132 719.44847,456.62132 C 720.24101,456.62132 720.88945,456.17132 720.88945,455.62132 C 720.88945,455.07132 720.26259,454.62132 719.49644,454.62132 C 717.68822,454.62132 716.64218,451.89217 718.10409,450.98866 C 718.82154,450.54525 718.47034,450.01043 717.1381,449.5176 C 714.62181,448.58676 715.12472,444.99881 717.8947,444.11965 C 719.12405,443.72947 719.51481,442.90469 719.14333,441.48418 C 717.37372,434.71715 734.21232,437.95375 743.92982,446.24846 C 746.74744,448.65353 749.5254,450.62132 750.10307,450.62132 C 750.68074,450.62132 752.70194,449.66426 754.59462,448.49452 C 759.46739,445.48298 760.30475,446.80921 760.08163,457.18503 C 759.90715,465.29897 760.06801,466.02049 763.00229,470.28532 C 764.71021,472.7677 767.13443,477.4189 768.38945,480.62132 C 769.64447,483.82374 772.14064,488.57951 773.9365,491.18971 C 776.26246,494.57037 777.16311,496.96185 777.06756,499.50349 C 776.96459,502.24248 777.65014,503.81094 780.01815,506.25411 C 783.02238,509.35368 783.04962,509.46523 781.0619,510.52903 C 779.93937,511.12979 778.07723,511.62132 776.92381,511.62132 C 775.77039,511.62132 774.56766,512.29632 774.25108,513.12132 C 773.93449,513.94632 773.24575,514.62132 772.72054,514.62132 C 772.19532,514.62132 769.43097,515.69685 766.57752,517.01139 C 763.72408,518.32594 760.26445,519.65147 758.88945,519.95702 C 757.51445,520.26258 753.91445,521.23948 750.88945,522.12792 C 745.88868,523.59664 739.43857,524.90596 731.38945,526.08625 C 729.73945,526.3282 727.03945,526.10335 725.38945,525.58657 z\",name:\"Şanlıurfa\"},64:{path:\"M 208.58369,409.10476 C 205.21261,406.12095 202.66687,405.97924 198.50748,408.54386 C 195.73147,410.25551 194.35237,410.38012 185.93481,409.67993 C 180.07901,409.19283 176.3275,408.43548 176.0791,407.69026 C 175.85851,407.0285 174.64434,405.28532 173.38095,403.81654 C 171.35752,401.46417 171.2348,400.84673 172.35078,398.63367 C 173.04758,397.25188 173.86965,393.21528 174.17759,389.66346 C 174.80645,382.41018 175.84269,381.14291 181.99472,380.10353 C 184.33842,379.70757 186.32667,378.67288 186.93767,377.53122 C 187.73867,376.03454 189.08807,375.61365 193.17463,375.58588 C 196.04278,375.5664 199.51445,374.90734 200.88945,374.12132 C 202.26445,373.3353 204.28945,372.67754 205.38945,372.65963 C 206.48945,372.64172 210.17488,371.44477 213.5793,369.99974 C 219.20833,367.61046 220.37711,367.45164 226.47935,368.24687 L 233.18955,369.12132 L 234.63848,374.107 L 236.08741,379.09268 L 232.98843,381.67983 C 230.77332,383.52908 229.88945,385.13177 229.88945,387.29909 C 229.88945,389.67317 228.70881,391.4478 224.44931,395.47626 C 221.45723,398.30604 218.38935,400.62132 217.6318,400.62132 C 216.75545,400.62132 215.91523,402.52995 215.32194,405.8684 C 214.23508,411.98414 212.6804,412.73084 208.58369,409.10476 z\",name:\"Uşak\"},65:{path:\"M 941.88945,442.49935 C 939.10531,440.91952 937.26453,440.62956 932.88945,441.08165 L 927.38945,441.64999 L 925.88945,436.88566 C 924.4955,432.45815 924.13314,432.0999 920.76402,431.81838 C 917.34778,431.53292 917.1072,431.28141 916.59457,427.45946 C 916.29535,425.22866 916.29818,421.87749 916.60084,420.0124 C 917.08215,417.04641 916.88402,416.62132 915.02029,416.62132 C 913.55612,416.62132 912.88945,415.99559 912.88945,414.62132 C 912.88945,413.44608 913.55612,412.62132 914.50608,412.62132 C 915.70949,412.62132 915.95573,412.0462 915.46942,410.37132 C 913.81728,404.68117 913.6589,398.05755 915.14548,396.8238 C 915.96524,396.14346 917.25549,395.82763 918.0127,396.12196 C 919.46777,396.68756 921.88945,401.15606 921.88945,403.27537 C 921.88945,404.72465 927.23238,405.93761 931.48152,405.45298 C 933.53044,405.21929 934.34822,404.60317 934.24989,403.36729 C 934.09331,401.3994 939.24332,396.62132 941.52097,396.62132 C 942.65833,396.62132 942.92878,395.53992 942.69424,391.92996 C 942.4149,387.63027 942.13302,387.17257 939.31787,386.4476 C 935.65634,385.50468 932.86871,381.24206 934.70966,379.40111 C 935.35854,378.75223 935.88945,377.36919 935.88945,376.3277 C 935.88945,375.28621 936.76416,374.20534 937.83326,373.92576 C 938.90235,373.64619 939.91631,372.45082 940.08649,371.26938 C 940.31104,369.71054 941.01222,369.18666 942.64268,369.35953 C 943.87841,369.49055 944.88945,369.18794 944.88945,368.68708 C 944.88945,368.18622 946.46445,367.25663 948.38945,366.62132 C 950.31445,365.98601 951.88945,365.10571 951.88945,364.66509 C 951.88945,364.22447 953.23945,363.30477 954.88945,362.62132 C 960.13934,360.44675 957.87176,358.21848 949.24427,357.074 C 944.98321,356.50875 943.49109,356.81037 939.04336,359.13602 C 933.74587,361.906 931.62105,361.99839 925.63945,359.71883 C 924.12695,359.14243 922.88945,358.27304 922.88945,357.78686 C 922.88945,357.30068 924.57695,354.92146 926.63945,352.4997 C 933.33297,344.64026 934.6694,340.32103 930.78879,339.08937 C 928.22104,338.2744 929.22008,337.23634 934.05946,335.69097 C 936.07796,335.04639 938.27056,333.86703 938.9319,333.07017 C 940.71133,330.92609 943.78478,331.3041 947.47834,334.12132 C 949.28106,335.49632 951.04106,336.62132 951.38945,336.62132 C 951.73784,336.62132 953.60862,337.83081 955.54673,339.30908 C 959.77091,342.53102 961.47623,341.86417 963.41199,336.23343 C 965.16639,331.13023 965.5348,330.90909 971.48821,331.38573 C 976.57263,331.7928 976.59091,331.80683 977.98821,336.37521 C 978.75889,338.89491 980.27908,341.44357 981.36641,342.0389 C 982.45374,342.63423 983.90193,343.79632 984.58461,344.62132 C 986.1959,346.56853 986.24824,352.33506 984.65942,352.86466 C 982.93749,353.43864 986.51967,361.18529 989.64312,363.6422 C 991.75755,365.30541 991.95021,366.03335 991.34467,370.07137 C 990.82456,373.5397 991.06783,375.24461 992.36537,377.22492 C 993.38746,378.78482 994.27024,382.68373 994.57217,386.97154 C 995.1159,394.69329 995.90381,395.87085 1000.1584,395.32039 C 1003.7277,394.85859 1005.4195,396.76235 1003.9237,399.5574 C 1003.3161,400.69255 1002.3849,401.62132 1001.8543,401.62132 C 1001.3236,401.62132 1000.8895,403.64632 1000.8895,406.12132 C 1000.8895,408.59632 1000.507,410.62132 1000.0395,410.62132 C 998.56645,410.62132 993.72449,423.31306 994.0645,426.28293 C 994.35397,428.81142 994.82618,429.15481 998.38945,429.42803 C 1001.0348,429.63087 1002.9469,430.45647 1004.0355,431.8659 C 1005.5926,433.88201 1005.553,434.09816 1003.301,435.86954 C 1001.9918,436.8994 999.22606,438.00245 997.155,438.32077 C 995.08395,438.63909 992.64579,439.2793 991.73688,439.74347 C 990.29912,440.4777 990.15344,440.07204 990.61611,436.62256 C 991.27298,431.72525 989.00141,430.2592 985.58857,433.37783 C 981.67953,436.94989 976.54377,438.94747 969.38945,439.67858 C 965.53945,440.07201 960.42478,441.13584 958.02351,442.04264 C 951.15372,444.6369 945.91766,444.78513 941.88945,442.49935 z\",name:\"Van\"},66:{path:\"M 512.63945,373.90507 C 511.12695,373.67594 509.88945,373.06837 509.88945,372.5549 C 509.88945,372.04143 508.76445,371.62132 507.38945,371.62132 C 505.5057,371.62132 504.88945,371.09657 504.88945,369.49252 C 504.88945,368.32168 503.27318,365.57471 501.29774,363.38813 C 498.30366,360.07404 497.79985,358.88914 498.26985,356.26693 C 498.78348,353.40134 498.50233,352.96709 495.11156,351.38882 C 493.0644,350.43595 487.83874,346.87613 483.49899,343.47811 C 476.41861,337.93419 475.78723,337.16923 477.34913,336.02715 C 479.23732,334.64646 478.71274,332.9877 475.70066,330.81462 C 474.70449,330.09593 473.88945,328.8688 473.88945,328.08767 C 473.88945,326.15676 470.18405,323.9145 465.61235,323.07892 C 463.46323,322.68612 461.40076,321.57671 460.82717,320.50495 C 460.27272,319.46895 459.18543,318.62132 458.41097,318.62132 C 456.6923,318.62132 453.88945,314.80849 453.88945,312.47053 C 453.88945,311.20268 455.36565,310.45015 459.63945,309.53933 C 462.80195,308.86534 466.73945,307.52088 468.38945,306.55163 C 471.08098,304.97056 471.80074,304.9334 475.38945,306.19028 C 480.46288,307.96716 482.85622,307.97269 486.48581,306.21593 C 488.08281,305.44297 491.30195,304.50341 493.63945,304.12803 C 497.14167,303.56561 497.88945,303.72491 497.88945,305.03342 C 497.88945,306.91679 500.64235,306.99226 506.38945,305.26644 L 510.38945,304.06527 L 511.39648,297.09329 L 512.40351,290.12132 L 518.59031,289.82506 C 524.26098,289.55352 524.88606,289.73113 526.08328,291.95413 C 526.80167,293.28806 528.87865,295.62135 530.69879,297.13921 C 533.85559,299.77176 534.37223,299.87402 541.90719,299.35756 C 547.27092,298.98992 550.0975,299.18609 550.71365,299.96873 C 551.97462,301.57042 553.07385,306.52461 552.98743,310.21662 C 552.93207,312.58183 553.50165,313.57923 555.40221,314.44518 C 557.15549,315.24403 557.88945,316.37303 557.88945,318.27114 C 557.88945,319.75212 558.50073,321.67427 559.24785,322.54258 C 562.7953,326.66546 562.83434,329.94669 559.428,337.68245 C 556.85587,343.52373 555.35335,345.58475 552.20543,347.58971 C 550.01929,348.98209 547.59137,350.66123 546.81004,351.32113 C 546.02872,351.98102 543.58945,354.05729 541.38945,355.93506 C 538.59267,358.32219 535.9431,359.56157 532.5812,360.05526 C 527.52983,360.79704 525.81742,362.62468 527.86366,365.09025 C 529.23543,366.74312 528.4384,368.62132 526.36523,368.62132 C 525.59183,368.62132 523.42148,369.97132 521.54223,371.62132 C 519.66299,373.27132 517.50983,374.5539 516.75743,374.47149 C 516.00504,374.38908 514.15195,374.13419 512.63945,373.90507 z\",name:\"Yozgat\"},67:{path:\"M 335.88945,231.62132 C 334.51445,231.18097 330.77658,230.77582 327.58308,230.721 C 322.41408,230.63226 321.46264,230.27746 318.91554,227.48874 L 316.05438,224.35617 L 318.49343,221.73874 C 319.83491,220.29916 321.20142,217.45817 321.53012,215.42544 C 322.04083,212.26714 322.76339,211.43077 326.49771,209.67544 C 328.90118,208.54567 331.2172,207.62132 331.64442,207.62132 C 332.07164,207.62132 335.56405,205.77006 339.40532,203.50741 C 351.44674,196.41456 353.84753,195.62768 358.17745,197.35469 C 360.69285,198.35796 361.88945,199.46666 361.88945,200.79402 C 361.88945,201.87135 362.41445,203.73377 363.05612,204.93274 C 363.69778,206.13171 364.22278,208.60391 364.22278,210.42653 C 364.22278,213.07527 363.5872,214.12691 361.05612,215.66616 C 358.48299,217.23097 357.88945,218.23963 357.88945,221.0476 C 357.88945,222.94823 357.3962,224.80813 356.79333,225.18072 C 356.19047,225.55332 355.88173,227.11537 356.10725,228.65196 C 356.46281,231.07452 356.12678,231.52385 353.57837,232.03354 C 349.53779,232.84165 338.92791,232.5944 335.88945,231.62132 z\",name:\"Zonguldak\"},68:{path:\"M 413.63046,435.00695 C 411.66774,431.76985 409.32024,427.26135 408.41379,424.98806 C 406.89558,421.18051 406.89156,420.42187 408.36273,415.36123 C 409.24109,412.33978 410.80346,409.10413 411.83466,408.1709 C 412.86587,407.23768 413.98362,405.38225 414.31857,404.04772 C 414.65351,402.7132 415.28479,401.62132 415.72141,401.62132 C 417.24541,401.62132 422.10254,407.46752 421.45244,408.51939 C 420.3967,410.22762 422.77751,413.62132 425.03162,413.62132 C 426.51589,413.62132 426.93012,413.1697 426.49231,412.02878 C 426.08949,410.97903 426.53637,410.26491 427.80344,409.93356 C 428.86068,409.65709 430.28157,408.08887 430.96098,406.44864 C 431.64038,404.8084 433.25223,402.7745 434.54286,401.92885 C 437.19087,400.1938 437.67772,397.62132 435.35807,397.62132 C 433.54078,397.62132 432.17935,394.70117 433.56269,393.7704 C 435.1441,392.70635 438.88945,384.17325 438.88945,381.63434 C 438.88945,380.33879 438.10436,378.41129 437.14481,377.351 C 435.47002,375.50038 435.52007,375.3262 438.39481,373.00093 C 442.70316,369.51605 445.90295,368.8915 447.49939,371.22386 C 448.21371,372.26746 449.63167,374.02132 450.65042,375.12132 C 451.66917,376.22132 453.73587,379.05615 455.2431,381.42094 C 456.75032,383.78573 458.96888,386.08507 460.17323,386.53059 C 462.05261,387.22582 462.36483,388.10459 462.3762,392.73097 C 462.3888,397.85492 462.55723,398.20508 465.78418,399.81605 C 471.13721,402.48841 471.29751,402.86981 469.94883,409.72503 C 468.98793,414.60918 468.98606,416.43332 469.94011,418.21598 C 471.74451,421.58753 470.8023,422.8403 462.84724,427.64683 C 458.86603,430.05231 454.01258,433.52574 452.06181,435.36555 C 448.84366,438.40066 447.86038,438.74309 441.4522,439.06045 C 437.56769,439.25283 430.52161,439.74376 425.79424,440.1514 L 417.19904,440.89258 L 413.63046,435.00695 z\",\n    name:\"Aksaray\"},69:{path:\"M 747.64124,301.77989 C 743.2738,299.1441 743.98117,295.9216 750.11433,290.51339 C 755.08379,286.13133 755.27988,285.77364 754.1147,283.21633 C 752.22596,279.07101 752.64313,275.58427 755.52545,271.42507 C 758.112,267.69268 759.11851,267.21599 763.63945,267.58219 C 765.31341,267.71779 765.88945,267.22922 765.88945,265.67383 C 765.88945,263.87339 766.27114,263.68996 768.63945,264.35227 C 770.15195,264.77525 775.56468,265.1011 780.66774,265.0764 C 788.6622,265.03769 789.85514,265.24524 789.28915,266.5764 C 787.93763,269.75499 787.73563,272.40822 788.79528,273.06312 C 790.38531,274.04581 790.13538,275.62132 788.38945,275.62132 C 786.65264,275.62132 786.40536,278.84827 787.92463,281.68706 C 788.49398,282.7509 789.97898,283.62132 791.22463,283.62132 C 792.47028,283.62132 794.04068,284.17255 794.71441,284.84628 C 795.68102,285.81289 796.35591,285.8111 797.91441,284.83781 C 801.67196,282.49117 799.97676,285.66612 794.75811,290.74925 C 786.43344,298.85774 785.96404,299.05198 778.35129,297.53881 C 769.00682,295.68143 757.36453,297.36769 754.20963,301.03548 C 751.66217,303.99707 751.36993,304.03019 747.64124,301.77989 z\",name:\"Bayburt\"},70:{path:\"M 365.80664,545.37132 C 365.7611,544.68382 365.60586,541.19632 365.46166,537.62132 C 365.31747,534.04632 364.7532,529.28017 364.20774,527.02989 L 363.21599,522.93845 L 367.80272,520.90864 C 370.32542,519.79224 373.51445,518.41785 374.88945,517.85444 C 378.16194,516.51352 385.88995,509.79536 385.88766,508.2934 C 385.88668,507.64875 383.8899,505.86035 381.45038,504.31917 C 378.81658,502.65526 376.87859,500.62426 376.67934,499.31917 C 376.32599,497.00472 379.1829,492.03388 382.13945,489.81895 C 383.11278,489.08976 383.88945,487.20165 383.88945,485.56462 C 383.88945,482.85596 384.17434,482.62132 387.4631,482.62132 C 390.51884,482.62132 391.76525,481.82423 396.06344,477.12132 C 401.28019,471.41337 403.24049,470.48777 404.29461,473.23477 C 404.68719,474.25781 405.64081,474.6581 406.90061,474.32865 C 407.99337,474.04289 409.13946,474.21683 409.44747,474.7152 C 409.75548,475.21357 411.11177,475.62132 412.46146,475.62132 C 414.37641,475.62132 415.39185,474.64073 417.08431,471.15713 C 419.28488,466.62771 422.15269,464.77766 429.38945,463.219 C 432.22473,462.60833 432.46239,462.80674 433.71787,466.83261 C 434.44851,469.17548 436.10118,473.39859 437.39049,476.2173 C 439.30204,480.39637 440.47882,481.63998 443.76662,482.95549 C 447.61363,484.49477 447.78035,484.74195 447.40162,488.34504 C 447.1833,490.42199 446.97875,493.75402 446.94707,495.74954 C 446.8955,498.9967 446.31243,499.77517 441.39549,503.1616 C 436.05441,506.84014 435.79225,506.90936 431.97384,505.64917 C 428.38261,504.46396 427.8137,504.53574 425.33293,506.48712 C 423.62164,507.83322 421.18687,508.62132 418.73949,508.62132 C 416.60536,508.62132 412.10632,509.3867 408.74163,510.32217 C 403.61868,511.74648 402.40805,512.51879 401.29587,515.07217 C 400.56539,516.7492 399.95012,517.55882 399.92859,516.87132 C 399.90217,516.02758 398.10191,515.62132 394.38945,515.62132 C 389.17085,515.62132 388.88945,515.75087 388.88945,518.15344 C 388.88945,519.5461 389.51033,522.17153 390.26918,523.98771 C 391.65314,527.29999 396.28239,532.62132 397.77992,532.62132 C 398.21967,532.62132 399.39695,533.52462 400.39608,534.62864 C 402.18415,536.60444 402.16336,536.6261 399.07223,536.00788 C 396.35686,535.4648 395.80191,535.72138 394.9723,537.90341 C 393.70049,541.24852 392.31681,541.98301 386.91661,542.17959 C 384.42667,542.27022 378.91022,543.30669 374.65783,544.48285 C 365.56355,546.99822 365.9121,546.96323 365.80664,545.37132 z\",name:\"Karaman\"},71:{path:\"M 419.95679,344.74714 C 419.37924,343.66799 419.18679,341.38462 419.52911,339.673 C 420.07192,336.95895 419.63073,336.06553 416.07933,332.68717 L 412.00713,328.81338 L 413.94829,325.00591 C 415.01593,322.9118 415.88945,319.58359 415.88945,317.60988 C 415.88945,315.63617 416.30135,313.59382 416.80477,313.07132 C 417.3082,312.54882 417.8707,310.99632 418.05477,309.62132 C 418.31121,307.70573 419.06564,307.04413 421.28206,306.79114 C 424.12221,306.46694 431.88945,301.99825 431.88945,300.68843 C 431.88945,300.32152 431.49755,299.59382 431.01856,299.07132 C 428.72918,296.57399 429.02842,292.95443 431.9467,287.84472 C 433.58746,284.97185 435.4833,282.62543 436.15968,282.63046 C 438.16826,282.6454 446.32505,286.9298 449.46911,289.62132 C 452.24261,291.99562 454.88945,297.45799 454.88945,300.80746 C 454.88945,301.65674 455.78945,303.49577 456.88945,304.89419 C 459.47852,308.18566 459.44174,308.34111 455.88945,309.12132 C 453.46371,309.6541 452.89238,310.29143 452.90476,312.45078 C 452.91318,313.91957 453.33619,315.7792 453.84478,316.58328 C 454.54671,317.69303 453.8805,318.54192 451.07946,320.10688 C 448.3319,321.64197 447.04601,323.24779 446.04477,326.39425 C 445.19792,329.05551 443.53191,331.43807 441.54477,332.82972 C 439.80934,334.04509 437.80143,335.84539 437.08275,336.8304 C 436.36406,337.81541 434.62651,338.62132 433.22153,338.62132 C 431.69956,338.62132 428.71468,340.25591 425.83694,342.66528 C 421.26503,346.49311 420.95075,346.60438 419.95679,344.74714 z\",name:\"Kırıkkale\"},72:{path:\"M 830.36103,462.37132 C 829.983,460.58382 828.85968,457.77132 827.86477,456.12132 C 826.74151,454.25847 826.25802,452.07894 826.58922,450.37132 C 826.99717,448.26803 826.73506,447.62132 825.47464,447.62132 C 822.51534,447.62132 822.58243,444.73503 825.62221,441.27291 C 827.24177,439.42833 829.57169,435.71462 830.79981,433.02022 C 832.02792,430.32583 833.4505,427.33993 833.96109,426.38489 C 835.37625,423.73793 835.09027,421.68232 832.7888,417.95846 C 831.32758,415.59416 830.89048,413.75334 831.35286,411.91107 C 832.21943,408.45838 837.03652,401.67005 838.63945,401.64267 C 839.32695,401.63093 839.88945,401.21534 839.88945,400.71915 C 839.88945,400.22295 841.24538,399.34429 842.90264,398.76657 C 844.55989,398.18885 846.16501,397.0668 846.46957,396.27313 C 847.15443,394.48841 851.884,395.50978 852.9509,397.6728 C 854.83974,401.50225 856.61211,414.91145 855.63295,417.96433 C 853.74736,423.84332 852.09359,426.11391 849.46139,426.43774 C 848.04682,426.61177 846.88945,427.26987 846.88945,427.90018 C 846.88945,428.53049 845.73637,429.96562 844.32706,431.08937 C 839.61355,434.84779 842.96846,438.19202 853.38945,440.12291 L 859.38945,441.23464 L 859.38945,445.67798 L 859.38945,450.12132 L 863.29857,450.12132 C 868.74527,450.12132 868.64858,451.71084 863.03581,454.44102 C 860.41291,455.71685 856.58832,458.29851 854.5367,460.17803 C 849.07575,465.18092 847.82154,465.62132 839.03465,465.62132 L 831.04836,465.62132 L 830.36103,462.37132 z\",name:\"Batman\"},73:{path:\"M 861.60522,485.98538 C 862.19031,482.37991 862.16883,482.35332 859.04235,482.81219 C 855.52347,483.32865 855.44941,483.11093 856.51051,475.36934 C 857.10752,471.0137 857.28349,470.81393 861.05418,470.21097 C 866.57653,469.32791 868.88945,467.6243 868.88945,464.43979 C 868.88945,462.95455 869.33945,461.46124 869.88945,461.12132 C 870.43945,460.7814 870.88945,459.71811 870.88945,458.75846 C 870.88945,457.20017 871.93184,457.04149 880.63945,457.27424 C 886.00195,457.41757 891.12543,457.31533 892.02497,457.04703 C 892.9245,456.77873 894.9199,454.74187 896.45919,452.52068 C 901.01303,445.9495 907.79944,443.6544 911.28558,447.50654 C 912.22394,448.54342 914.26618,449.64667 915.8239,449.95821 C 917.38162,450.26975 919.81105,450.81452 921.22262,451.16881 C 923.51278,451.7436 924.01645,451.32935 925.90035,447.32153 C 927.83108,443.21407 928.39482,442.77262 932.49456,442.15783 C 936.02505,441.6284 937.93798,441.95049 941.49775,443.67375 C 945.11798,445.42627 947.00065,445.73158 950.9537,445.20719 C 957.13742,444.38689 957.5822,446.19617 952.33039,450.80732 C 949.63172,453.17678 948.84029,454.58965 949.05659,456.65175 C 949.21348,458.14749 948.71702,460.12416 947.95334,461.04433 C 946.76258,462.47912 946.79669,463.2036 948.19291,466.13149 C 950.20406,470.34892 949.21856,471.0746 944.28145,469.01175 C 939.81305,467.14473 933.7249,467.64301 931.29314,470.07477 C 930.10119,471.26673 928.77263,471.53848 926.51574,471.05199 C 924.79628,470.68134 923.23945,469.98281 923.05612,469.4997 C 922.30983,467.53312 918.88536,468.82217 916.75572,471.87132 C 915.50727,473.65882 914.20531,475.34632 913.86248,475.62132 C 913.51965,475.89632 912.37297,477.97313 911.3143,480.23645 C 909.63148,483.83415 908.70834,484.56208 903.97267,486.02562 C 897.96855,487.88116 896.93314,487.36376 896.90476,482.49376 C 896.88642,479.34646 895.50685,478.11474 891.0539,477.26992 C 888.09687,476.70891 887.30251,477.07915 884.0539,480.5325 C 881.33465,483.42313 878.43553,485.09769 872.81427,487.02461 C 868.64792,488.4528 864.28871,489.62132 863.12714,489.62132 C 861.25693,489.62132 861.08273,489.20515 861.60522,485.98538 z\",name:\"Şırnak\"},74:{path:\"M 365.38392,211.61237 C 365.04096,211.05745 365.04323,209.71217 365.38896,208.62287 C 365.74773,207.49247 365.34619,205.6838 364.45351,204.40931 C 363.59328,203.18116 362.88945,201.19957 362.88945,200.00577 C 362.88945,198.44078 361.84326,197.40129 359.13945,196.2798 C 357.04441,195.41082 356.19627,194.70164 357.21764,194.67285 C 358.22315,194.64451 360.73992,192.80458 362.81047,190.58411 C 365.09264,188.13671 368.11371,186.12307 370.48228,185.47062 C 372.63122,184.87867 375.51445,183.60137 376.88945,182.63217 C 378.26445,181.66297 380.96445,180.55545 382.88945,180.171 C 384.81445,179.78655 387.15718,179.25655 388.09552,178.99322 C 389.3521,178.64058 390.49082,179.87455 392.41754,183.67676 L 395.03349,188.83909 L 392.83228,191.18217 C 391.45554,192.64765 390.82894,194.28193 391.15936,195.54546 C 391.58011,197.15442 390.87447,197.92443 387.69289,199.32814 C 385.43107,200.32605 383.06219,202.32038 382.23219,203.92544 C 381.22349,205.87604 378.72898,207.6743 374.23463,209.69078 C 367.02964,212.92344 366.29304,213.08337 365.38392,211.61237 z\",name:\"Bartın\"},75:{path:\"M 893.28248,244.85161 C 892.55211,242.91666 890.69163,241.21988 887.72646,239.78446 C 885.27458,238.59753 881.98789,236.28974 880.4227,234.65603 L 877.57691,231.68566 L 880.48318,225.18023 C 882.08163,221.60224 885.30014,216.08653 887.63544,212.9231 C 892.31249,206.58746 892.35045,205.57743 888.14517,199.35944 C 885.76965,195.84695 885.70999,195.47711 887.24522,193.7807 C 888.14954,192.78143 888.88945,190.97563 888.88945,189.76783 C 888.88945,187.03575 892.47138,185.51694 897.13126,186.27313 C 900.19914,186.77098 900.4742,187.09054 900.08972,189.71015 C 899.77939,191.82455 900.14855,192.78351 901.46767,193.28971 C 902.5507,193.70531 903.43377,193.48837 903.68125,192.74592 C 903.93246,191.9923 905.5631,192.99438 907.86348,195.31601 C 909.93724,197.40893 913.71645,200.23692 916.26171,201.60043 C 919.48726,203.32839 920.88945,204.70971 920.88945,206.15931 C 920.88945,207.30317 921.52809,209.11245 922.30865,210.17993 C 923.55721,211.88744 924.10811,211.97726 926.89063,210.92698 C 931.10951,209.33453 934.88945,210.73746 934.88945,213.89577 C 934.88945,215.93587 934.48654,216.17268 931.5907,215.83461 C 928.41783,215.46419 928.23657,215.63404 926.8407,220.28541 C 925.27433,225.50492 922.15226,227.78779 914.88945,229.02422 C 909.46461,229.94776 908.83997,230.79505 907.74324,238.71784 C 907.17958,242.78975 906.64438,246.18322 906.55392,246.25887 C 906.46346,246.33452 903.68744,246.70338 900.38499,247.07856 C 894.42914,247.75518 894.37165,247.73715 893.28248,244.85161 z\",name:\"Ardahan\"},76:{path:\"M 974.38945,305.82039 C 970.53945,305.65489 966.96195,305.09239 966.43945,304.57039 C 965.91695,304.0484 963.83113,303.62132 961.80428,303.62132 C 959.77744,303.62132 955.84482,302.8868 953.06512,301.98906 C 948.39066,300.47938 947.88853,300.47938 946.37885,301.98906 C 945.48111,302.8868 943.97202,303.62132 943.02532,303.62132 C 941.61613,303.62132 941.3118,302.69558 941.34675,298.51543 L 941.38945,293.40954 L 936.88945,291.63804 C 931.74131,289.61138 930.20756,286.62132 934.31613,286.62132 C 936.35404,286.62132 936.88945,286.13002 936.88945,284.25999 C 936.88945,282.35155 937.32098,281.98043 939.13945,282.32501 C 940.37695,282.55951 943.40603,282.29655 945.87074,281.74067 C 949.44126,280.93539 950.6767,281.02379 951.94948,282.17565 C 952.82808,282.97077 954.17145,283.62132 954.93476,283.62132 C 955.69806,283.62132 958.28101,284.36925 960.67465,285.28339 C 964.74047,286.83614 965.66777,286.83326 974.77305,285.23961 C 984.28948,283.574 984.624,283.58088 988.95442,285.53117 C 993.54832,287.60012 997.8411,290.81981 997.95471,292.28161 C 997.9906,292.74345 999.2281,294.12642 1000.7047,295.35487 C 1009.1023,302.34118 1011.8871,304.95703 1011.4221,305.42209 C 1011.1359,305.70826 1010.1115,305.26355 1009.1456,304.43386 C 1008.1797,303.60416 1006.602,302.64604 1005.6395,302.3047 C 1004.677,301.96337 1003.8895,301.21997 1003.8895,300.6527 C 1003.8895,299.05239 1000.8971,299.4378 1000.2511,301.12132 C 999.91889,301.98698 998.42423,302.62132 996.71672,302.62132 C 995.08941,302.62132 992.77505,303.15425 991.57371,303.80562 C 988.49846,305.47301 982.54516,306.171 974.38945,305.82039 z\",name:\"Iğdır\"},77:{path:\"M 187.63945,257.29779 C 184.42207,254.66351 184.1699,253.62132 186.7499,253.62132 C 187.77315,253.62132 190.26814,252.49632 192.29431,251.12132 C 195.54101,248.91805 197.03422,248.62132 204.87484,248.62132 C 209.76796,248.62132 214.02342,248.21357 214.33143,247.7152 C 214.63944,247.21683 215.79339,247.04494 216.89577,247.33322 C 217.99815,247.6215 219.53264,247.33241 220.30575,246.69079 C 221.1876,245.95891 221.9363,245.8881 222.31494,246.50077 C 222.64689,247.03787 222.12446,247.74079 221.15397,248.0628 C 220.18348,248.3848 218.71445,250.1047 217.88945,251.88479 C 216.56601,254.74035 215.75044,255.22193 210.96069,255.97605 C 207.28071,256.55544 204.23935,256.44351 201.51939,255.62859 C 197.70731,254.48647 197.41235,254.55616 195.61475,257.02387 C 193.3108,260.18668 191.25408,260.25732 187.63945,257.29779 z\",name:\"Yalova\"},78:{path:\"M 376.44832,245.08952 C 375.3807,244.28201 373.4682,243.62132 372.19832,243.62132 C 368.88987,243.62132 366.29669,240.56955 365.52977,235.77346 C 364.90119,231.84253 364.68357,231.62132 361.44502,231.62132 C 358.84784,231.62132 357.8637,231.11555 357.3575,229.52066 C 356.9908,228.36529 357.18548,226.92529 357.79011,226.32066 C 358.39475,225.71602 358.88945,223.74669 358.88945,221.94437 C 358.88945,218.04859 359.85661,217.32983 372.29791,211.97954 C 378.82781,209.17141 381.68565,207.36042 383.00141,205.19682 C 385.13494,201.68851 390.67651,198.66272 396.87689,197.62057 C 402.82066,196.62154 403.61898,197.06094 404.41445,201.76929 C 404.78533,203.9645 405.71893,206.00239 406.48911,206.29794 C 408.73565,207.16001 408.12848,208.13311 404.53276,209.43334 C 399.78194,211.15126 397.73168,213.8414 397.13437,219.14076 C 396.69492,223.03956 396.9406,223.96884 398.7449,225.23262 C 403.83736,228.79952 403.81312,234.75507 398.69888,236.53791 C 396.70685,237.23234 395.07263,237.25454 393.85652,236.6037 C 391.0492,235.10126 390.16152,235.40116 389.4894,238.0791 C 388.93334,240.29463 381.23455,246.66808 379.20927,246.58952 C 378.75837,246.57202 377.51594,245.89702 376.44832,245.08952 z\",name:\"Karabük\"},79:{path:\"M 612.38578,530.28771 C 611.83377,529.6462 611.51917,528.1729 611.68667,527.01372 C 612.01371,524.75056 609.54699,523.36251 602.88945,522.06341 C 598.28065,521.16408 593.67526,518.7639 594.102,517.48367 C 594.50149,516.28521 598.24997,514.02994 602.13945,512.64794 C 604.07063,511.96176 604.88945,510.97862 604.88945,509.34607 C 604.88945,508.06746 605.39512,506.51565 606.01316,505.89761 C 607.50621,504.40456 610.48066,507.13813 611.41421,510.86129 C 611.95533,513.01937 612.98132,513.83552 616.24534,514.70432 C 621.38858,516.07332 623.49761,517.904 624.92936,522.24224 C 625.78807,524.84417 626.60169,525.62132 628.467,525.62132 C 629.96802,525.62132 630.88945,525.04303 630.88945,524.101 C 630.88945,522.82439 631.52342,522.9041 634.84424,524.59826 L 638.79903,526.61584 L 636.50226,529.09409 C 634.47325,531.28344 633.80896,531.45862 630.80407,530.59683 C 626.50512,529.36391 615.5969,529.32474 614.33945,530.53771 C 613.76103,531.09567 612.99687,530.99788 612.38578,530.28771 z\",name:\"Kilis\"},80:{path:\"M 570.02867,508.61782 C 568.73023,507.51975 566.40454,506.62132 564.86045,506.62132 C 559.72489,506.62132 558.88945,505.78399 558.88945,500.63678 C 558.88945,494.49178 557.1188,492.775 552.50262,494.44424 C 548.02486,496.06342 547.77384,495.96917 549.05791,493.15093 C 549.9241,491.24985 549.88295,490.31841 548.87933,489.10912 C 547.78861,487.79488 547.90193,487.09446 549.57174,484.82951 C 550.66986,483.34 551.86557,480.88382 552.22888,479.37132 C 552.59219,477.85882 553.18528,475.38382 553.54684,473.87132 C 553.90841,472.35882 555.41301,468.87132 556.8904,466.12132 C 559.48836,461.28551 559.73565,461.11106 564.42094,460.80885 L 569.2653,460.49639 L 566.82738,462.62311 C 565.48652,463.7928 564.83945,464.95323 565.38945,465.20183 C 569.16941,466.91038 569.30007,467.31154 568.1285,473.61134 C 566.53928,482.15694 567.58886,484.62132 572.81765,484.62132 C 575.00538,484.62132 577.90833,484.11421 579.26866,483.4944 C 583.04447,481.77403 586.10905,483.18561 589.17192,488.05596 L 591.95438,492.48044 L 586.92418,497.1856 C 583.59274,500.30178 581.54249,503.19611 580.85317,505.75604 C 580.16247,508.32112 579.23666,509.62591 578.10091,509.63497 C 577.15961,509.64248 575.48945,509.86591 574.38945,510.13148 C 573.24874,510.40687 571.37515,509.75653 570.02867,508.61782 z\",name:\"Osmaniye\"},81:{path:\"M 307.88945,255.62132 C 307.88945,255.04898 304.86699,254.62132 300.82206,254.62132 C 294.20975,254.62132 293.79555,254.49254 294.38945,252.62132 C 295.26487,249.86311 294.07717,246.62132 292.19122,246.62132 C 289.20133,246.62132 291.36155,239.78961 295.4761,236.23286 C 298.19807,233.8799 299.18518,232.21735 299.27205,229.83944 C 299.3625,227.36343 299.84847,226.60599 301.38945,226.53922 C 302.48945,226.49155 305.97313,226.12973 309.13096,225.73518 C 314.74121,225.0342 314.9393,225.09328 317.79563,228.31956 C 320.36225,231.21861 321.32378,231.62132 325.67912,231.62132 C 333.99154,231.62132 336.88945,232.53993 336.88945,235.17489 C 336.88945,236.44186 336.19927,238.16865 335.35571,239.0122 C 333.60821,240.7597 327.65948,242.60748 323.75446,242.61574 C 320.42442,242.62279 317.88945,246.29455 317.88945,251.11089 C 317.88945,254.01211 317.41482,254.85128 315.32435,255.64607 C 311.9967,256.91124 307.88945,256.89757 307.88945,255.62132 z\",name:\"Düzce\"}},height:744.09448,width:1052.3622});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.ukraine.js",
    "content": "/** Add Ukraine Map Data Points */ /** @author: DariyGRAY <https://github.com/dariygray> <dariy.gray@gmail.com> */\njQuery.fn.vectorMap('addMap', 'ukraine_ua', {\"width\":1350,\"height\":950,\"paths\":{\"05\":{\"path\":\"M517.4,446.91c-0.273-0.71-0.666-1.749-0.883-2.313-0.292-0.784-1.021-2.306-1.158-3.125-0.127-0.756,0.082-2.287,0.082-3.044,0-0.673-0.082-2.687-0.082-2.687l-0.638-4.485,2.725-1.758s-1.494-4.318-1.803-5.813c-0.438-2.079-0.866-6.325-0.921-8.446-0.054-2.124,0.474-8.493,0.474-8.493l5.887-5.768s0.766-0.229,0.884-0.438c0.236-0.409-0.173-1.412-0.118-1.885,0.055-0.438,0.528-1.24,0.519-1.676-0.009-0.447-0.584-1.241-0.602-1.687-0.009-0.328,0.365-1.285,0.365-1.285l5.203-2.324h1.039l0.082-1.676,3.965,0.557,4.091,1.084,4.565,2.241,2.761-4.164,3.563,1.247,1.44-2.969-3.763-1.523,0.164-7.043,0.72-3.773-2.287-4.118,3.69-2.489-1.321-3.006-4.492-0.556-1.677-3.245,3.244-1.804,0.238-5.204-3.163-1.603,4.565-6.853,2.562,0.127,0.519-1.403-3.517-1.486,0.602-4.046,2.998-1.485-0.848-3.444,0.646-0.191s0.911-0.975,1.285-1.203c0.629-0.401,2.051-0.884,2.761-1.085,0.701-0.2,2.123-0.546,2.844-0.519,0.747,0.027,2.159,0.583,2.888,0.755,1.084,0.274,3.244,0.922,4.365,1.049,1.767,0.191,5.358,0.108,7.126-0.127,1.412-0.183,4.228-0.83,5.53-1.395,0.902-0.401,3.317-2.169,3.317-2.169l6.771,3.363,1.567-0.274,0.355-5.166,1.85,0.556,1.358,2.888,4.127,0.237,2.962,4.247,1.721-5.403,4.284-0.047,1.44,3.208,4.008,0.437-0.801-5.321,3.363-0.2,4.893-6.653,7.125,7.928-2.122,4.009,2.561,4.966-4.047,5.368,4.612,4.283-2.37,3.881,0.884,1.531,14.781,0.036,3.161,0.921,1.64-0.921-1.12-2.076,4.774-1.933,1.641,1.723,0.802-0.839-0.282-3.928,5.548,2.169,2.296,3.143-2.079,2.297,6.353,15.172-6.516,4.703,6.033,8.483,3.792-0.474,0.108,4.802,1.021,1.713,3.945-0.054,0.11,2.24-0.591,0.091-2.506,0.392,3.043,8.064-3.791,3.892-3.152,1.659-0.055,6.57,2.889-0.218,1.011,4.063-5.495,3.791,1.914,4.273,4.921-2.834,1.494,0.592,0.374,7.737,9.395,9.832-3.098,2.934,6.46,5.13,0.164,2.288,1.175,2.515,1.495,0.856v3.518l1.386,4.811-2.351,1.869,0.255,2.104,0.018,0.138-1.175,0.911-2.461,3.627-3.253-1.596-2.459,2.079,0.593,2.562-8.494,11.272,2.989,2.296,0.182,2.905,0.027,0.456-3.144,3.583-2.625-2.087-2.715,2.45,4.219,4.604,0.045,6.14-2.989-0.429-0.045-4.064-6.197-1.011-0.856,4.01-5.23-0.273-1.549-3.361-11.91,2.987-4.811-6.241-2.133-0.22-7.053-7.526-3.735,5.659-4.165,0.164-2.187,7.689-5.001,0.265c-0.055-0.237-0.119-0.464-0.183-0.638-0.265-0.802-0.847-2.414-1.331-3.098-0.265-0.373-0.947-1.003-1.34-1.23-0.655-0.391-2.159-0.783-2.879-1.012-1.139-0.373-3.481-0.902-4.593-1.34-0.782-0.3-2.231-1.147-2.988-1.493-0.71-0.33-2.104-1.175-2.89-1.231-0.664-0.045-1.921,0.512-2.56,0.693-0.684,0.199-2.05,0.627-2.725,0.857-0.401,0.135-1.322,0.264-1.603,0.583-0.248,0.291-0.248,1.12-0.32,1.502-0.109,0.612,0.009,1.969-0.374,2.451-0.237,0.31-1.058,0.619-1.439,0.594-0.82-0.073-2.278-1.111-2.779-1.77-0.418-0.535-0.683-1.938-0.803-2.614-0.099-0.601,0.265-1.97-0.108-2.451-0.256-0.345-1.222-0.474-1.65-0.539-0.528-0.072-1.641,0.238-2.142,0.057-0.52-0.192-1.485-0.921-1.649-1.44-0.137-0.418,0.346-1.274,0.418-1.712,0.129-0.704,0.63-2.215,0.274-2.836-0.255-0.418-1.321-0.729-1.822-0.791-0.565-0.084-1.787,0.028-2.288,0.319-0.492,0.273-0.847,1.61-1.393,1.757-0.419,0.111-1.276-0.354-1.605-0.637-0.555-0.493-0.957-2.05-1.494-2.561-0.474-0.464-1.704-1.086-2.352-1.231-0.629-0.156-1.959,0.02-2.614,0.048-0.611,0.026-1.868,0.362-2.451,0.162-0.455-0.154-1.186-0.873-1.45-1.284-0.419-0.665-0.574-2.314-0.901-3.043-0.274-0.574-0.938-1.676-1.394-2.133-0.656-0.667-2.379-1.531-3.145-2.078-0.847-0.609-2.487-1.876-3.262-2.569-0.892-0.802-2.542-2.579-3.362-3.471-0.711-0.767-1.968-2.479-2.78-3.153-0.582-0.483-1.904-1.266-2.614-1.542-0.775-0.308-2.442-0.508-3.253-0.7-1.103-0.254-3.363-0.629-4.384-1.121-0.456-0.218-1.238-0.875-1.603-1.23-0.501-0.482-1.185-1.787-1.758-2.188-0.557-0.372-1.896-0.729-2.571-0.801-0.446-0.045-1.394-0.017-1.813,0.164-0.457,0.2-1.048,0.975-1.495,1.368-0.52-0.612-1.348-1.594-1.658-2.06-0.539-0.838-1.568-2.597-1.795-3.572-0.219-0.912,0.2-2.833,0.036-3.763-0.1-0.546-0.602-1.558-0.802-2.078-0.02-0.14-0.06-0.26-0.1-0.37\",\"name\":\"Вінницька область\"},\"07\":{\"path\":\"M447.53,198.26c0.062,0.584,0.044,1.768-0.028,2.351-0.054,0.475-0.164,1.469-0.428,1.868-0.693,1.04-3.071,2.152-4.055,2.908-0.455,0.354-1.466,0.983-1.768,1.475-0.374,0.611-0.555,2.087-0.638,2.797-0.072,0.63-0.199,1.915-0.027,2.516,0.127,0.428,0.692,1.138,0.967,1.494,0.336,0.438,1.33,1.102,1.521,1.631,0.118,0.329,0.045,1.074-0.055,1.412-0.091,0.283-0.383,0.857-0.638,1.012-0.391,0.237-1.367,0.073-1.822,0.11-0.939,0.073-2.825,0.245-3.765,0.373-0.673,0.09-2.058,0.164-2.669,0.456-0.52,0.246-1.457,1.01-1.731,1.521-0.374,0.674-0.318,2.287-0.456,3.044-0.164,0.902-0.501,2.715-0.747,3.608-0.238,0.856-0.875,2.524-1.176,3.362-0.218,0.61-0.766,1.796-0.912,2.425-0.081,0.364-0.091,1.102-0.127,1.467-0.054,0.483-0.155,1.457-0.272,1.922-0.083,0.365-0.137,1.259-0.474,1.421-0.31,0.146-0.976-0.31-1.258-0.482-0.246-0.146-0.729-0.493-0.855-0.747-0.21-0.401-0.019-1.395-0.183-1.814-0.164-0.4-0.656-1.175-1.048-1.367-0.355-0.173-1.204,0-1.604,0-0.519,0-1.658,0.255-2.104-0.027-0.383-0.236-0.674-1.194-0.803-1.631-0.108-0.383,0-1.23-0.154-1.595-0.183-0.419-0.83-1.084-1.185-1.368-0.473-0.382-1.613-0.856-2.16-1.147-0.519-0.273-1.503-1.204-2.077-1.094-0.21,0.045-0.474,0.447-0.565,0.638-0.173,0.393-0.118,1.275-0.237,1.686-0.109,0.374-0.373,1.158-0.656,1.431-0.41,0.383-1.53,0.691-2.086,0.802-0.757,0.146-2.306,0.045-3.081,0.036-0.982,0-2.942-0.073-3.926-0.082-0.72,0-2.188-0.173-2.88,0.046-0.611,0.182-1.741,0.893-2.124,1.403-0.383,0.501-0.538,1.813-0.765,2.396-0.127,0.337-0.273,1.148-0.601,1.285-0.384,0.164-1.176-0.509-1.604-0.564-0.475-0.055-1.532-0.091-1.915,0.2-0.373,0.282-0.601,1.275-0.683,1.731-0.11,0.564,0.108,1.75,0,2.314-0.083,0.456-0.411,1.349-0.684,1.722-0.209,0.292-0.783,0.757-1.121,0.884-0.466,0.173-1.514,0.209-2.005,0.082-0.666-0.173-1.75-1.121-2.359-1.44-0.447-0.237-1.35-0.702-1.842-0.802-0.656-0.137-2.077-0.254-2.687,0.037-0.42,0.2-1.112,0.984-1.194,1.44-0.091,0.491,0.438,1.448,0.676,1.885,0.29,0.52,1.21,1.35,1.483,1.887,0.247,0.464,0.584,1.504,0.602,2.041,0.019,0.52-0.319,1.531-0.447,2.041-0.163,0.702-0.728,2.078-0.756,2.797-0.018,0.557,0.146,1.705,0.437,2.168,0.283,0.438,1.331,0.857,1.686,1.241,0.283,0.309,0.793,1.029,0.884,1.439,0.064,0.301,0.019,0.965-0.164,1.204-0.164,0.217-0.729,0.427-1.002,0.436-0.273,0.019-0.766-0.318-1.039-0.318-0.209,0-0.802,0.245-0.802,0.245l1.084,3.363-3.891,1.002v3.9l-3.281-0.703-0.484-4.802s-0.318-1.194-0.601-1.484c-0.282-0.283-1.111-0.475-1.476-0.639-0.538-0.236-1.604-0.711-2.123-0.957-0.328-0.154-0.938-0.573-1.285-0.646-0.483-0.101-1.476,0.037-1.959,0.118-0.619,0.11-1.786,0.602-2.406,0.683-0.336,0.045-1.038-0.091-1.366,0-0.492,0.137-1.294,0.82-1.758,1.048-0.301,0.137-0.912,0.429-1.24,0.474-1.504,0.209-4.693,0.091-6.05-0.602-0.32-0.164-0.848-0.738-0.958-1.076-0.127-0.382,0.155-1.202,0.155-1.604,0.01-0.49-0.155-1.967-0.155-1.967l-4.572-2.598-3.163-1.402s-0.483-0.965-0.52-1.322c-0.063-0.656,0.392-1.922,0.483-2.569,0.109-0.784,0.381-2.37,0.319-3.162-0.027-0.393-0.155-1.211-0.401-1.522-0.201-0.246-0.92-0.347-1.121-0.601-0.456-0.575-0.501-2.151-0.757-2.844-0.127-0.319-0.346-1.012-0.61-1.239-0.546-0.474-2.059-0.639-2.761-0.838-0.792-0.238-2.442-0.557-3.199-0.884-0.4-0.174-1.194-0.592-1.485-0.92-0.347-0.391-0.793-1.376-0.875-1.886-0.055-0.246,0.163-0.756,0.072-1.003-0.155-0.427-0.938-1.001-1.276-1.321-0.3-0.273-0.838-1.011-1.248-1.039-0.555-0.026-1.438,0.884-1.876,1.24-0.402,0.33-1.085,1.084-1.45,1.449-0.319,0.319-0.819,1.294-1.276,1.276-0.355-0.01-0.674-0.829-0.92-1.077-1.713-1.73-5.495-4.783-7.335-6.367-0.939-0.813-2.908-2.343-3.763-3.245-0.448-0.484-1.331-1.485-1.605-2.087-0.337-0.766-0.364-2.498-0.637-3.28-0.146-0.419-0.538-1.204-0.912-1.896,0-0.593-0.063-1.468-0.208-1.915-0.183-0.546-0.966-1.44-1.203-1.958-0.264-0.584-0.692-1.814-0.757-2.442-0.064-0.658,0-2.015,0.274-2.607,0.264-0.565,1.211-1.458,1.721-1.805,0.393-0.254,1.286-0.528,1.722-0.683,0.885-0.301,2.644-0.948,3.564-1.075,0.765-0.11,2.341,0.228,3.089,0.036,0.355-0.091,1.157-0.374,1.284-0.72,0.238-0.665-0.61-2.049-1.002-2.643-0.511-0.765-1.969-1.949-2.688-2.523-0.775-0.619-2.542-1.577-3.28-2.241-0.765-0.693-2.104-2.288-2.642-3.162-0.393-0.647-0.912-2.06-1.167-2.77-0.292-0.802-0.839-2.433-0.993-3.281-0.183-0.957-0.01-2.953-0.284-3.882-0.173-0.592-0.893-1.612-1.167-2.168-0.4-0.802-1.222-2.416-1.476-3.281-0.31-1.039-0.474-3.225-0.684-4.283-0.245-1.211-0.647-3.69-1.167-4.812-0.537-1.185-2.195-3.253-3.043-4.246-0.748-0.875-2.522-2.37-3.28-3.245-0.62-0.719-1.851-2.215-2.242-3.08-0.264-0.593-0.61-1.878-0.564-2.524,0.063-0.984,0.829-2.861,1.367-3.682,0.483-0.756,2.014-1.813,2.561-2.524,0.309-0.409,0.865-1.303,1.002-1.804,0.19-0.711,0.2-2.204,0.036-2.925-0.164-0.748-1.066-2.042-1.321-2.762-0.128-0.382-0.292-1.165-0.355-1.566-0.128-0.711-0.21-2.168-0.328-2.88-0.064-0.437-0.555-1.33-0.356-1.722,0.192-0.374,1.203-0.418,1.523-0.684,0.354-0.291,0.91-1.078,1.038-1.519,0.182-0.604,0.018-1.896-0.036-2.524-0.074-0.879-0.483-2.607-0.565-3.483-0.064-0.687-0.282-2.106-0.073-2.763,0.165-0.525,0.902-1.404,1.321-1.762,0.51-0.45,1.759-1.087,2.396-1.322,0.428-0.156,1.321-0.393,1.769-0.363,0.573,0.04,1.695,0.429,2.16,0.763,0.41,0.29,0.856,1.25,1.238,1.561,0.356,0.288,1.212,0.655,1.649,0.801,0.437,0.15,1.404,0.185,1.841,0.361,0.73,0.296,2.05,1.197,2.643,1.722,0.438,0.39,1.23,1.274,1.486,1.802,0.172,0.389,0,1.398,0.31,1.681,0.437,0.386,1.786,0.377,2.333,0.162,0.729-0.293,1.531-1.795,2.124-2.321,0.546-0.497,1.694-1.442,2.359-1.764,0.803-0.391,2.671-0.476,3.444-0.921,0.684-0.396,1.75-1.616,2.242-2.244,0.265-0.34,0.52-1.248,0.884-1.481,0.757-0.493,2.716-0.198,3.6-0.4,0.938-0.215,2.789-0.833,3.646-1.282,0.892-0.468,2.587-1.608,3.244-2.363,0.637-0.728,1.503-2.5,1.839-3.405,0.393-1.027,0.72-3.224,1.002-4.288,0.192-0.684,0.539-2.078,0.848-2.719,0.301-0.632,0.975-1.943,1.559-2.325,0.975-0.631,3.408-0.708,4.564-0.801,1.358-0.107,4.092-0.025,5.45,0.081,1.057,0.083,3.143,0.605,4.2,0.6,0.739-0.002,2.187-0.471,2.925-0.44,0.838,0.034,2.415,0.662,3.245,0.762,1.958,0.237,5.923,0.08,7.891,0.08,1.913,0,5.741,0.023,7.655-0.08,1.951-0.104,5.85-0.362,7.763-0.762,1.176-0.245,3.417-1.131,4.565-1.481,0.884-0.269,2.624-0.876,3.526-1.002,0.519-0.071,1.567-0.071,2.087,0,0.556,0.076,1.676,0.319,2.16,0.602,0.591,0.35,1.375,1.552,1.922,1.962,0.939,0.695,2.999,1.875,4.128,2.162,0.656,0.169,2.042,0,2.725,0.041,1.431,0.087,4.283,0.528,5.723,0.603,0.793,0.039,1.905,0.044,3.081,0.033,0.082,0.698,0.336,1.68,0.619,2.143,0.273,0.453,1.121,1.152,1.576,1.415,0.346,0.195,1.131,0.415,1.522,0.482,0.747,0.125,2.288,0.158,3.044,0.079,0.592-0.063,1.859-0.939,2.323-0.561,0.301,0.247,0.064,1.182-0.056,1.547-0.155,0.469-0.738,1.323-1.12,1.631-0.41,0.325-1.531,0.458-1.95,0.774-0.383,0.29-1.003,1.072-1.176,1.521-0.146,0.38-0.027,1.233-0.137,1.629-0.154,0.577-0.847,1.59-1.038,2.161-0.138,0.409-0.511,1.298-0.32,1.684,0.109,0.214,0.638,0.322,0.856,0.427,0.2,0.101,0.675,0.232,0.83,0.401,0.291,0.328,0.527,1.22,0.609,1.655,0.128,0.677,0.192,2.077,0.055,2.75-0.146,0.683-0.838,1.923-1.176,2.538-0.273,0.505-0.975,1.433-1.23,1.949-0.201,0.402-0.501,1.251-0.637,1.682-0.118,0.372-0.247,1.158-0.402,1.522-0.172,0.392-0.619,1.121-0.911,1.44-0.3,0.327-0.984,0.957-1.412,1.094-0.319,0.108-1.03,0.045-1.368-0.027-0.354-0.083-0.993-0.647-1.357-0.584-0.173,0.026-0.475,0.311-0.51,0.482-0.073,0.419,0.574,1.158,0.774,1.541,0.4,0.747,1.367,2.141,1.685,2.916,0.22,0.537,0.674,1.686,0.583,2.268-0.045,0.337-0.519,0.885-0.72,1.176-0.136,0.209-0.51,0.556-0.583,0.802-0.146,0.482,0.045,1.502,0.11,1.996,0.044,0.447,0.063,1.375,0.318,1.74,0.218,0.318,1.03,0.529,1.303,0.802,0.237,0.227,0.574,0.793,0.692,1.094,0.155,0.382,0.282,1.212,0.328,1.631,0.063,0.693,0.037,2.077-0.036,2.779-0.037,0.411-0.401,1.239-0.319,1.65,0.109,0.501,0.865,1.256,1.158,1.686,0.254,0.391,0.792,1.166,1.038,1.576,0.21,0.355,0.428,1.239,0.775,1.467,0.236,0.155,0.865,0.146,1.147,0.082,0.356-0.09,0.921-0.665,1.277-0.756,0.282-0.064,0.893-0.055,1.157,0.064,0.328,0.146,0.766,0.784,1.039,1.038,0.209,0.192,0.592,0.793,0.875,0.748,0.329-0.055,0.484-0.875,0.675-1.148,0.3-0.438,0.912-1.385,1.385-1.631,0.337-0.174,1.175-0.328,1.522-0.165,0.191,0.102,0.373,0.52,0.428,0.73,0.127,0.482-0.046,1.493-0.055,1.995-0.008,0.939-0.155,2.826,0.028,3.746,0.091,0.456,0.474,1.321,0.692,1.73,0.393,0.711,1.394,2.006,1.896,2.644,0.465,0.583,1.577,1.612,1.977,2.242,0.33,0.529,0.822,1.695,0.958,2.296,0.128,0.547,0.072,1.668,0.11,2.215,0.027,0.374,0,1.166,0.164,1.494,0.237,0.492,1.212,1.094,1.576,1.495,0.675,0.765,1.887,2.414,2.451,3.263,0.201,0.29,0.593,0.874,0.721,1.202,0.2,0.475,0.583,1.494,0.483,2.004-0.073,0.375-0.665,0.948-0.901,1.249-0.302,0.375-0.894,1.121-1.258,1.421-0.355,0.293-1.121,0.903-1.577,0.957-0.347,0.046-0.993-0.346-1.34-0.4-0.373-0.055-1.166-0.137-1.512,0-0.219,0.083-0.575,0.392-0.675,0.592-0.191,0.365-0.172,1.222-0.182,1.622-0.018,0.502-0.109,1.55,0.127,1.978,0.22,0.392,1.048,0.875,1.45,1.066,0.547,0.283,1.741,0.601,2.342,0.702,0.445,0.063,1.357-0.065,1.795,0.055,0.546,0.146,1.649,0.609,1.995,1.065,0.39,0.46,0.5,1.62,0.55,2.18\",\"name\":\"Волинська область\"},\"12\":{\"path\":\"M885.82,555.97c-0.558-0.117-1.141-0.265-1.504-0.365-0.447-0.117-1.731-0.592-1.731-0.592l-1.678-6.133-0.518-6.807,5.767-4.41-1.321-6.123,1.796-0.883-0.035-1.923-2.344-3.737s0.53-0.411,0.566-0.609c0.036-0.247-0.22-0.731-0.401-0.885-0.201-0.183-0.775-0.282-1.038-0.319-0.237-0.036-0.966,0-0.966,0l-0.613-7.965,0.837-3.807c0.074,0.018,0.13,0.026,0.195,0.018,0.272-0.018,0.672-0.502,0.919-0.637,0.694-0.395,2.196-0.96,2.925-1.287,0.768-0.336,2.271-1.049,3.043-1.357,0.794-0.318,2.416-0.885,3.243-1.121,0.356-0.099,1.15-0.089,1.442-0.319,0.273-0.228,0.527-0.938,0.601-1.284,0.056-0.265,0.01-0.811-0.045-1.076-0.083-0.475-0.457-1.358-0.602-1.804-0.202-0.664-0.721-1.985-0.758-2.688-0.02-0.383,0.037-1.222,0.282-1.521,0.248-0.299,1.057-0.575,1.442-0.556,0.264,0.008,0.782,0.282,0.964,0.473,0.357,0.401,0.592,1.494,0.758,2.004,0.182,0.602,0.346,1.869,0.602,2.443,0.154,0.347,0.464,1.222,0.847,1.24,0.301,0.017,0.603-0.712,0.792-0.959,0.199-0.254,0.574-0.782,0.765-1.039,0.211-0.299,0.758-0.848,0.84-1.201,0.092-0.39-0.347-1.213-0.236-1.604,0.09-0.337,0.592-0.874,0.874-1.083,0.31-0.221,1.029-0.484,1.403-0.559,0.711-0.135,2.168,0.02,2.887,0,0.539-0.017,1.733,0.212,2.162-0.118,0.235-0.189,0.19-0.91,0.365-1.163,0.228-0.355,0.9-0.922,1.273-1.122,0.476-0.266,1.568-0.429,2.088-0.603,0.52-0.173,1.867-0.246,2.041-0.757,0.109-0.347-0.838-0.846-0.802-1.202,0.037-0.427,0.802-1.064,1.202-1.239,0.311-0.146,1.066,0.119,1.358-0.044,0.42-0.238,0.957-1.131,1.04-1.604,0.117-0.666-0.511-1.969-0.594-2.642-0.109-0.821,0.117-2.527-0.128-3.327-0.117-0.401-0.557-1.165-0.874-1.44-0.248-0.199-0.901-0.347-1.203-0.436-0.174-0.057-0.546-0.057-0.683-0.164-0.319-0.266-0.631-1.103-0.639-1.522-0.009-0.455,0.475-1.285,0.639-1.723,0.208-0.547,0.774-1.612,0.839-2.196,0.19-1.694-0.729-5.048-0.958-6.735-0.128-0.955-0.411-2.879-0.482-3.843-0.037-0.557-0.192-1.705-0.037-2.243,0.146-0.52,0.855-1.358,1.157-1.804,0.191-0.283,0.737-0.773,0.801-1.12,0.074-0.348-0.381-1.012-0.362-1.358,0.027-0.328,0.28-0.984,0.527-1.203,0.229-0.209,0.883-0.265,1.158-0.4,0.263-0.137,0.684-0.603,0.964-0.684,0.355-0.102,1.141-0.066,1.486,0.081,0.61,0.264,1.96,1.841,1.96,1.841l6.89-4.529,6.442-6.562-0.885-0.765-1.915-0.081-4.69-4.483-6.524,0.246-1.004-5.213s0.84-0.911,1.204-1.085c0.254-0.109,0.847-0.054,1.12-0.118s0.819-0.218,1.039-0.4c0.254-0.211,0.418-0.93,0.683-1.122,0.339-0.228,1.212-0.19,1.602-0.318,0.412-0.127,1.169-0.52,1.559-0.684,0.221-0.082,0.667-0.41,0.885-0.32,0.384,0.165,0.612,1.113,0.685,1.522,0.083,0.511-0.354,1.568-0.165,2.042,0.147,0.346,1.122,0.967,1.122,0.967l8.894,0.154,0.757-1.24-1.796-6.843h3.08l0.073-2.789c0.602,0.393,1.186,0.785,1.558,1.077,0.803,0.628,2.251,2.077,2.988,2.778,0.785,0.738,2.215,2.37,3.101,2.99,0.755,0.527,2.486,1.192,3.309,1.603,0.7,0.339,2.058,1.103,2.777,1.386,0.828,0.319,2.597,0.639,3.418,0.965,0.645,0.256,1.929,0.83,2.459,1.276,0.748,0.646,1.696,2.46,2.342,3.208,0.666,0.756,2.158,2.096,2.889,2.779,0.609,0.565,1.877,1.648,2.459,2.241,0.674,0.684,1.842,2.241,2.562,2.879,0.659,0.592,2.133,1.576,2.881,2.033,0.7,0.418,2.34,0.893,2.888,1.494,0.684,0.766,0.775,3.107,1.495,3.846,0.482,0.492,1.878,0.955,2.56,1.065,0.767,0.126,2.415,0.146,3.098-0.209,0.456-0.218,1.276-1.039,1.185-1.495-0.092-0.509-1.483-0.583-1.931-0.856-0.41-0.253-1.203-0.838-1.494-1.23-0.429-0.583-0.775-2.031-1.123-2.67-0.416-0.765-1.42-2.205-1.976-2.878-0.958-1.185-3.18-3.273-4.22-4.383-1.203-1.286-3.344-4.111-4.702-5.231-0.618-0.521-1.849-1.094-2.869-1.659-0.057-0.856-0.147-1.959-0.057-2.579,0.103-0.583,0.229-2.096,0.803-2.242,0.338-0.082,0.712,0.756,1.003,0.922,0.319,0.181,1.113,0.609,1.402,0.4,0.603-0.418,0.12-2.196,0.202-2.925s0.465-2.177,0.445-2.923c-0.009-0.229-0.082-0.712-0.208-0.921-0.229-0.393-1.102-0.819-1.359-1.193-0.309-0.465-0.619-1.577-0.719-2.124-0.191-1.002-0.246-3.033-0.201-4.045,0.026-0.691,0.11-2.086,0.365-2.725,0.181-0.491,1.021-1.229,1.192-1.722,0.475-1.33-0.52-4.52,0.364-5.604,0.282-0.355,1.386-0.191,1.724-0.484,1.039-0.892,0.976-4.473,2.243-5.011,2.021-0.855,6.186,3.654,8.291,3.008,0.801-0.247,1.376-2.123,2.005-2.725,0.364-0.419,1.274-1.111,1.821-1.439,0.64-0.464,2.098-1.249,2.825-1.686,0.455-0.311,1.457-0.975,1.914-1.276,0.729-0.428,2.277-1.111,3.007-1.603,0.273-0.265,0.82-0.976,1.274-1.203,0.548-0.329,1.823-0.529,2.368-0.801,0.547-0.273,1.46-1.076,2.007-1.367,0.546-0.256,1.55-0.784,2.097-0.793,0.546-0.008,1.548,0.355,1.911,0.683,0.365,0.256,0.456,1.34,0.913,1.395,0.364,0.055,0.729-0.765,1.003-1.002,0.271-0.255,0.909-0.849,1.272-0.957,0.458-0.136,1.459,0.009,1.918,0.2,0.453,0.191,1,1.066,1.456,1.276,0.548,0.282,1.823,0.638,2.461,0.529,0.364-0.063,0.909-0.546,1.275-0.775,0-0.027,0.09-0.054,0.09-0.073,0.366-0.2,1.187-0.593,1.64-0.675,0.275-0.055,0.822-0.1,1.004,0,0.364,0.128,0.819,0.903,1.184,0.994,0.365,0.119,1.186-0.282,1.643-0.355,0.453-0.072,1.274-0.291,1.638-0.236,0.638,0.063,1.915,0.547,2.37,0.911,0.547,0.355,1.276,1.294,1.548,1.849,0.184,0.583-0.271,1.896,0,2.479,0.094,0.41,0.73,1.085,1.095,1.322,0.456,0.292,1.549,0.428,2.003,0.601,0.731,0.247,2.189,0.684,2.826,1.085,0.64,0.408,1.642,1.584,2.187,2.123,0.639,0.583,1.734,1.876,2.461,2.36,1.002,0.674,3.281,1.394,4.374,2.004,0.729,0.465,2.095,1.75,2.824,2.206,0.457,0.246,1.366,0.684,1.914,0.755,0.912,0.137,2.644-0.29,3.553-0.318,1.004-0.027,2.917,0.008,3.919,0.119,1.005,0.118,2.915,0.602,3.827,0.801,0.911,0.192,2.734,0.53,3.646,0.766,0.638,0.165,1.913,0.793,2.553,0.803,1.184,0.009,3.279-0.92,4.373-1.33,1.458-0.557,4.374-1.805,5.648-2.635,0.821-0.5,2.096-1.94,2.918-2.37,0.818-0.409,2.641-0.719,3.463-0.956,0.271-0.073,0.819-0.474,1.002-0.283,0.182,0.192-0.183,0.784-0.273,1.04-0.184,0.456-0.729,1.303-0.821,1.767-0.183,0.62-0.455,1.915-0.363,2.561,0,0.373,0.273,1.092,0.547,1.403,0.272,0.41,1.185,0.92,1.548,1.276,0.365,0.41,1.275,1.248,1.459,1.804,0.09,0.392,0,1.249-0.184,1.604-0.091,0.183-0.547,0.337-0.637,0.52-0.182,0.282-0.182,0.984-0.091,1.284,0.091,0.301,0.637,0.72,0.911,0.958,0.637,0.691,2.55,2.723,2.55,2.723l-0.181,1.968,4.646,2.599,0.273,3.289s0.183,2.241,0.456,2.924c0.183,0.383,1.096,1.312,1.096,1.312l3.096,2.77s1.369,1.205,1.914,1.44c0.638,0.291,2.28,0.037,2.824,0.519,0.639,0.52,1.094,2.214,1.004,3.008,0,0.374-0.731,0.937-0.731,1.32,0,0.593,1.096,1.422,1.276,1.96,0.274,0.492,0.547,1.548,0.547,2.086,0,0.52-0.453,1.577-0.272,2.078,0.093,0.401,0.73,1.103,1.094,1.238,0.454,0.138,1.64-0.236,1.64-0.236l10.389-11.491,3.28,2.561,4.009,2.041,2.915-3.163,3.191,1.212,0.364,0.145,5.74,0.648-0.092,3.408s0.548,0.428,0.82,0.511c0.548,0.218,1.912,0.063,2.552,0.328,0.455,0.193,1.003,1.039,1.367,1.24,0.365,0.164,1.183,0.027,1.549,0.237,0.092,0.082,0.365,0.373,0.365,0.52-0.092,0.419-0.731,1.029-1.003,1.366-0.272,0.355-0.911,0.994-1,1.401-0.183,0.458,0,1.533-0.183,1.961-0.185,0.227-0.73,0.437-0.821,0.637-0.365,0.365-0.73,1.256-0.914,1.687-0.27,0.546-0.91,2.24-0.91,2.24l0.094,10.134-2.19,1.239,0.64,2.442,8.657,0.364,1.549,9.814-2.733,1.44,0.728,6.569,1.185,3.362-5.831,5.167s-1.366-0.574-1.731-0.757c-1.275-0.528-3.736-1.657-5.01-2.004-1.277-0.348-3.829-1.021-5.106-0.765-1.001,0.199-2.733,1.396-3.461,2.041-0.547,0.509-1.641,1.703-1.912,2.405-0.548,1.048-0.821,4.527-0.821,4.527l-0.092,3.326s4.558-0.565,5.376,0.52c0.458,0.656-0.728,3.199-0.728,3.199l-4.011-0.2,0.093,2.853,3.279,4.319,0.456,0.244-6.742,0.055-0.366,2.051-11.116-0.347-1.274,2.726-1.734,0.318v-2.806l-14.761,0.483-1.003-4.321,3.646,0.211,2.097-4.593-2.553-3.309-5.377-3.471,2.28-1.658-1.002-4.164-7.2,2.833-0.912-4.063-7.836,1.286-0.273-3.319-5.285,1.287-1.732-4.594-11.298,7.582-4.829-3.418-8.839-3.479c0.089-0.356,0.183-0.759,0.183-1.002-0.094-0.548-0.91-1.524-1.459-1.688-0.365-0.128-1.274,0.363-1.639,0.482-0.458,0.118-1.277,0.483-1.733,0.483-0.636-0.009-2.095-0.31-2.551-0.803-0.365-0.362-0.272-1.439-0.365-1.92-0.182-0.94-0.638-2.818-0.548-3.764,0-0.566,0.548-1.605,0.641-2.17,0-0.611-0.274-1.888-0.641-2.396-0.363-0.529-1.639-0.948-2.004-1.449-0.456-0.52-0.909-1.822-1.003-2.479-0.183-1.021,0.184-3.152-0.09-4.163-0.183-0.975-1.368-2.67-1.731-3.61-0.365-0.81-0.91-2.487-1.002-3.361,0-0.83,0.271-2.479,0.546-3.282,0.183-0.755,0.819-2.169,1.094-2.888,0.273-0.729,0.729-2.287,1.277-2.88,0.453-0.526,1.821-1.002,2.368-1.438,0.639-0.503,1.729-1.631,2.097-2.325,0.272-0.509,0.637-1.694,0.454-2.241-0.089-0.411-0.729-1.093-1.184-1.212-0.547-0.154-1.824,0.264-2.278,0.564-0.638,0.365-1.641,1.458-2.006,2.087-0.363,0.574-0.363,2.042-0.729,2.562-0.364,0.399-1.548,0.528-1.822,0.957-0.364,0.472-0.183,1.684-0.274,2.241-0.09,0.564-0.09,1.758-0.363,2.25-0.273,0.374-1.003,0.975-1.367,1.121-0.546,0.182-1.822,0.182-2.278-0.081-0.456-0.238-0.817-1.258-1.184-1.605-0.547-0.455-1.642-1.148-2.278-1.44-0.638-0.3-1.912-0.737-2.643-0.884-0.729-0.163-2.279-0.191-3.007-0.318-0.729-0.119-2.006-0.61-2.733-0.638-0.821-0.038-2.462,0.218-3.19,0.473-0.455,0.165-1.64,0.492-1.823,0.966-0.09,0.356,0.365,1.139,0.64,1.358,0.546,0.328,1.73,0.217,2.278,0.245,0.454,0.02,1.365-0.027,1.823,0,0.817,0.037,2.549-0.027,3.278,0.319,0.547,0.255,1.276,1.431,1.824,1.687,0.454,0.218,1.639,0.017,2.094,0.154,0.547,0.146,1.643,0.666,2.096,0.965,0.549,0.338,1.642,1.094,2.096,1.604,0.457,0.483,1.003,1.622,1.186,2.242,0.183,0.71-0.092,2.269,0.183,2.961,0.273,0.566,1.365,1.276,1.64,1.841,0.272,0.811,0,2.679,0.184,3.526,0.272,0.747,1.184,2.05,1.547,2.716,0.549,0.92,2.004,2.589,2.28,3.609,0.181,0.855-0.276,2.649-0.093,3.523,0.093,0.822,1.093,2.298,1.093,3.128,0,0.802-0.272,2.476-0.819,3.124-0.364,0.52-1.548,1.186-2.187,1.359-0.638,0.183-2.005-0.165-2.644,0-0.637,0.162-1.912,0.767-2.369,1.284-0.546,0.667-1.002,2.424-1.002,3.28,0,0.3,0,0.703,0.09,1.121l-7.653,1.632-2.278-5.286-2.004,0.319,0.455,8.648s0.184,1.75,0.456,2.268c0.091,0.338,0.638,0.829,0.913,1.102,0.272,0.284,0.91,0.769,1.001,1.123,0.182,0.454-0.182,1.513,0,1.977,0.182,0.501,1.184,1.121,1.457,1.621,0.184,0.502,0.184,1.622,0.091,2.17,0,0.31-0.364,1.204-0.364,1.204l-5.375-2.06-0.092,8.783s0.456,0.773,0.729,0.957c0.366,0.291,1.185,0.747,1.641,0.747,0.457,0.008,1.274-0.654,1.732-0.721,0.272-0.034,0.911,0.066,1.186,0.164,0.637,0.229,1.911,0.866,2.367,1.413,0.273,0.365,0.547,1.32,0.454,1.769-0.088,0.263-0.546,0.618-0.728,0.793-0.183,0.173-0.729,0.336-0.911,0.563-0.273,0.519-0.091,1.805-0.091,2.405,0,0.475,0.091,1.467,0.364,1.896,0.092,0.31,0.638,0.783,1.002,0.956,0.363,0.235,1.367,0.235,1.731,0.565,0.455,0.456,0.729,1.824,0.82,2.45,0.183,0.676,0.457,2.06,0.364,2.726-0.091,0.346-0.455,0.993-0.819,1.204-0.273,0.235-1.185,0.207-1.458,0.427-0.275,0.146-0.639,0.545-0.729,0.802,0,0.318,0.273,0.966,0.454,1.284,0.093,0.467,0.549,1.377,0.549,1.869,0,0.666-0.273,1.985-0.549,2.615-0.181,0.573-1.092,1.532-1.092,2.131-0.092,0.456,0.182,1.396,0.364,1.759,0.364,0.466,1.457,0.938,1.914,1.231,0.364,0.199,1.094,0.619,1.641,0.893-0.182,0.064-0.274,0.117-0.456,0.155-1.276,0.328-3.918,0.155-5.192,0-0.73-0.1-2.189-0.629-2.918-0.748-0.82-0.117-2.277-0.181-3.007-0.218-1.002-0.038-2.915,0.117-3.827-0.055-1.094-0.191-3.1-0.893-4.01-1.438-0.638-0.329-1.55-1.26-2.004-1.716-0.364-0.381-0.911-1.384-1.458-1.593-0.364-0.174-1.368-0.137-1.732,0.046-0.455,0.19-0.818,1.047-1.184,1.283-0.274,0.211-1.003,0.447-1.367,0.483-0.638,0.073-1.913-0.238-2.644-0.317-0.682-0.101-2.114-0.512-2.842-0.428-0.492,0.054-1.512,0.345-1.869,0.691-0.281,0.281-0.409,1.139-0.581,1.493-0.265,0.53-0.776,1.613-1.186,2.032-0.256,0.274-0.901,0.738-1.275,0.802-0.503,0.082-1.514-0.293-1.979-0.482-0.574-0.236-1.559-1.059-2.143-1.285-0.581-0.218-1.829-0.501-2.449-0.474-0.484,0.019-1.468,0.256-1.869,0.528-0.399,0.273-0.993,1.103-1.174,1.55-0.164,0.409,0.073,1.421-0.219,1.767-0.176,0.21-0.786,0.274-1.059,0.321-0.419,0.054-1.275-0.147-1.655,0-0.293,0.098-0.685,0.665-0.969,0.8-0.291,0.136-0.958,0.218-1.275,0.21-0.41-0.01-1.266-0.101-1.604-0.317-0.529-0.338-1.057-1.578-1.506-2.033-0.499-0.512-1.602-1.531-2.285-1.759-0.521-0.175-1.659-0.055-2.197,0.054-0.345,0.074-1.073,0.275-1.331,0.526-0.198,0.204-0.198,0.868-0.427,1.024-0.264,0.181-0.957,0.055-1.286,0.055-0.299,0-0.957-0.211-1.22-0.055-0.336,0.198-0.437,1.094-0.69,1.384-0.186,0.2-0.648,0.629-0.913,0.584-0.319-0.037-0.556-0.848-0.856-0.958-0.263-0.09-0.9,0.027-1.119,0.219-0.339,0.292-0.521,1.258-0.586,1.705-0.108,0.7-0.055,2.142,0.101,2.833,0.074,0.318,0.375,0.848,0.548,1.239l-1.678-1.269-7.727,2.646-14.542,0.602-1.04-1.887s0.475-1.039,0.601-1.403c0.129-0.393,0.338-1.192,0.393-1.604,0.056-0.375,0.083-1.14,0.047-1.523-0.029-0.282-0.339-0.847-0.248-1.119,0.111-0.311,0.812-0.573,1.004-0.839,0.181-0.236,0.481-0.783,0.481-1.085,0.01-0.327-0.346-0.946-0.519-1.238-0.146-0.246-0.456-0.794-0.719-0.92-0.339-0.156-1.122-0.045-1.486,0.046-0.492,0.108-1.377,0.628-1.841,0.836-0.337,0.147-1.012,0.494-1.358,0.604-0.402,0.116-1.649,0.28-1.649,0.28l0.684,4.724-0.875,0.801-9.222,0.199s-0.673,0.548-0.793,0.802c-0.108,0.238,0.02,0.802-0.081,1.039-0.127,0.291-0.549,0.838-0.838,0.967-0.283,0.119-0.912,0.027-1.202-0.046-0.632-0.146-1.778-0.774-2.372-1.04-0.474-0.209-1.421-0.617-1.876-0.883-0.4-0.229-1.157-0.757-1.521-1.038-0.711-0.549-2.124-1.669-2.688-2.361-0.229-0.292-0.438-1.039-0.721-1.285-0.546-0.482-1.995-0.955-2.725-1.084-0.792-0.135-2.433,0.19-3.235,0.129-0.32,0-0.68-0.07-1.06-0.14\",\"name\":\"Дніпропетровська область\"},\"14\":{\"path\":\"M1120.9,521.29l-0.456-0.244-3.279-4.319-0.093-2.853,4.011,0.2s1.186-2.543,0.728-3.199c-0.818-1.085-5.376-0.52-5.376-0.52l0.092-3.326s0.273-3.479,0.821-4.527c0.271-0.702,1.365-1.896,1.912-2.405,0.728-0.646,2.46-1.842,3.461-2.041,1.277-0.256,3.829,0.417,5.106,0.765,1.273,0.347,3.734,1.476,5.01,2.004,0.365,0.183,1.731,0.757,1.731,0.757l5.831-5.167-1.185-3.362-0.728-6.569,2.733-1.44-1.549-9.814-8.657-0.364-0.64-2.442,2.19-1.239-0.094-10.134s0.641-1.693,0.91-2.24c0.184-0.431,0.549-1.322,0.914-1.687,0.091-0.2,0.637-0.401,0.821-0.637,0.183-0.429,0-1.504,0.183-1.961,0.089-0.407,0.728-1.046,1-1.401,0.271-0.337,0.911-0.947,0.911-1.366,0.092-0.146-0.182-0.43-0.273-0.52-0.366-0.21-1.184-0.073-1.549-0.237-0.364-0.202-0.912-1.047-1.367-1.24-0.64-0.265-2.004-0.11-2.552-0.328-0.272-0.083-0.82-0.511-0.82-0.511l0.092-3.408-5.74-0.648-0.364-0.145,1.274-9.103s-1.547-2.752-2.097-3.645c-0.453-0.767-1.64-2.17-1.911-2.998-0.184-0.365-0.458-1.167-0.272-1.531,0.089-0.365,1.184-0.993,1.184-0.993l5.101-0.247,2.826,2.561,1.914-1.322,0.638-1.959,6.105,0.201,4.556,5.367,1.457-1.003-3.735-5.522,3.099-2.687,1.093,2.287,1.186-4.41,3.279-0.037,0.182,4.848,3.374-0.163-0.184-6.771,3.008-3.727,7.107-0.274-2.643-4.41s-0.273-1.257-0.092-1.64c0.184-0.638,1.458-1.468,2.006-1.84,0.638-0.438,2.37-0.739,2.914-1.286,0.365-0.328,0.729-1.276,0.914-1.722,0.18-0.519,0.271-1.686,0.637-2.16,0.455-0.683,1.73-1.722,2.46-2.122,0.455-0.283,1.73-0.401,2.186-0.72,0.273-0.192,0.729-0.685,0.821-1.003,0.091-0.482-0.365-1.467-0.365-1.959,0-0.3,0-0.967,0.273-1.166,0.183-0.201,0.821-0.164,1.095-0.155,0.727,0.018,2.004,0.473,2.643,0.52,0.728,0.045,2.096,0.1,2.641-0.166,0.548-0.199,1.277-0.947,1.552-1.402,0.271-0.445,0.364-1.494,0.364-2.005,0-0.4-0.456-1.559-0.456-1.559l-5.834-2.004-0.455-2.241,1.55-3.645,4.19,0.336,1.277-1.63,11.844,2.296,1.733-2.661,3.098,1.139,0.91,6.086,2.005,1.176,5.65,1.814s0.911-1.204,1.186-1.604c0.183-0.265,0.546-0.984,0.91-1.066,0.184-0.064,0.73,0.347,1.002,0.483,0.182,0.118,0.73,0.309,0.82,0.538,0.274,0.529,0.092,1.813-0.09,2.397-0.091,0.583-0.821,1.594-1.002,2.141-0.274,0.51-0.912,1.521-0.912,2.078,0.091,0.856,1.093,2.36,1.459,3.097,0.455,0.793,2.095,2.999,2.095,2.999l-6.743,4.966s0.911,0.875,1.275,1.066c0.729,0.338,2.279,0.548,3.007,0.692,1.186,0.22,3.464,0.73,4.556,0.693,1.003-0.027,2.827-0.511,3.737-0.802,0.638-0.173,1.642-0.766,2.188-0.912,0.271-0.072,1.002-0.3,1.185-0.1,0.363,0.255,0.183,1.249,0.272,1.648,0.091,0.411,0.548,1.139,0.64,1.549,0,0.383-0.274,1.122-0.274,1.504,0.091,0.401,0.274,1.193,0.454,1.595,0.093,0.5,0.184,1.549,0.457,1.977,0.272,0.31,0.819,0.919,1.185,0.966,0.275,0.036,0.818-0.62,1.187-0.593,0.546,0.046,1.729,0.738,1.729,1.286,0,0.41-1.275,1.066-1.275,1.066l0.545,3.899-3.005,3.892,5.648,2.569,0.182,3.043-2.916,3.846s0,2.451,0.183,3.252c0.092,0.83,0.82,2.388,0.911,3.208,0.183,0.765,0,2.387,0.364,3.1,0.364,0.782,1.641,2.021,2.278,2.559,0.729,0.556,2.37,1.193,3.1,1.768,0.273,0.274,1.001,1.332,1.001,1.332l-2.096,4.19,3.007,2.726s1.275-0.875,1.824-1.039c0.272-0.109,0.91-0.255,1.275-0.165,0.272,0.092,0.819,0.604,1.002,0.857,0.639,0.701,1.822,3.208,1.822,3.208l2.188,2.587h1.457l0.912,1.869-2.644,1.257-0.091,6.033,2.915,0.026,6.652,2.588s0.545,1.722,0.729,2.296c0.091,0.465,0.272,1.458,0.545,1.867,0.458,0.704,1.823,1.733,2.461,2.188,0.729,0.466,2.278,1.202,3.007,1.448,1.277,0.385,4.01,0.448,5.286,0.722,1.002,0.198,3.826,1.064,3.826,1.064l-0.091,4.429-0.548,1.869,2.006,0.373,0.911,5.049,3.19-1.651,8.019,0.021,0.275,2.223,5.738,2.672-0.637,1.601-0.365,4.64,2.188,1.849-0.092,1.805c-0.273-0.054-0.455-0.099-0.638-0.126-0.638-0.082-2.097,0.036-2.825,0-1.366-0.064-4.009-0.477-5.377-0.529-1.091-0.056-3.37,0.045-4.556,0.045-0.637,0.008-1.913-0.009-2.552,0-0.363,0.008-0.91-0.101-1.182,0.055-0.275,0.221-0.458,1.049-0.641,1.386-0.273,0.729-1.002,2.141-1.276,2.888-0.363,0.939-0.91,2.86-1.092,3.847-0.184,1.165-0.365,3.518-0.365,4.702,0,0.773,0.273,2.322,0.273,3.098,0,0.547,0.092,1.677-0.092,2.188-0.089,0.345-0.728,0.864-0.912,1.119-0.362,0.328-1,1.03-1.456,1.177-0.547,0.164-1.641-0.093-2.188-0.109-0.454-0.01-1.549-0.12-2.005,0-0.363,0.098-1.274,0.399-1.457,0.747-0.273,0.3-0.091,1.094-0.182,1.447,0,0.439-0.092,1.405-0.456,1.707-0.182,0.189-0.821,0.189-1.094,0.216-0.911,0.085-2.644-0.045-3.554,0-0.911,0.037-2.643,0.092-3.556,0.319-0.818,0.209-2.368,0.975-3.097,1.386-0.819,0.419-2.187,1.515-2.915,1.924-0.822,0.428-2.645,0.982-3.463,1.393-0.729,0.385-2.369,1.13-3.008,1.76-0.455,0.463-1.185,1.647-1.273,2.295-0.185,0.805,0.271,2.443,0.361,3.253,0.092,1.085,0.457,3.246,0.549,4.328,0.09,1.038,0.181,3.126,0.273,4.167,0,0.92,0.273,2.777,0.09,3.681-0.09,0.729-0.82,2.059-1.273,2.669-0.457,0.692-1.732,1.806-2.188,2.46-0.459,0.547-1.367,1.633-1.552,2.296-0.089,0.357-0.273,1.187,0,1.497,0.274,0.479,1.552,0.729,2.097,0.911,0.639,0.198,1.914,0.373,2.553,0.581,0.363,0.13,1.093,0.347,1.367,0.648,0.271,0.355,0.455,1.337,0.455,1.812,0,0.429-0.184,1.266-0.366,1.649-0.363,0.739-1.366,2.042-2.005,2.571-0.546,0.519-2.279,0.938-2.823,1.548-0.273,0.392-0.64,1.458-0.73,1.977-0.091,0.586-0.091,1.806,0,2.398,0.091,0.557,0.457,1.631,0.457,2.196,0.089,0.691,0.456,2.168,0.182,2.798-0.274,0.655-1.823,1.184-2.369,1.685-0.366,0.374-1.093,1.213-1.276,1.721-0.273,0.575,0.092,1.917-0.182,2.444-0.365,0.537-1.459,1.138-2.097,1.403-0.362,0.173-1.184,0.61-1.548,0.437-0.274-0.118-0.548-0.756-0.455-1.038,0-0.374,0.819-0.838,0.819-1.203,0.091-0.465-0.272-1.44-0.547-1.806-0.365-0.392-1.366-0.864-1.822-0.919-0.364-0.036-1.002,0.155-1.276,0.319-0.274,0.199-0.637,0.947-0.91,1.165-0.273,0.202-1.001,0.328-1.367,0.474-0.548,0.247-1.458,1.021-2.003,1.122-0.912,0.18-2.918-0.395-3.83-0.592-0.819-0.165-2.276-0.774-3.006-0.802-0.82-0.028-2.461,0.364-3.189,0.637-1.001,0.354-2.825,1.531-3.737,2.005-0.818,0.383-2.367,1.247-3.277,1.439-0.457,0.109-1.551,0.102-2.007,0.047-1.094-0.138-3.188-0.867-4.19-1.086-1.188-0.255-3.556-0.919-4.74-0.801-1.001,0.09-2.732,0.801-3.462,1.32-0.639,0.438-1.73,1.631-2.187,2.288-0.548,0.919-1.367,3.033-1.823,4.035-0.454,0.939-1.275,2.826-1.822,3.728-0.729,1.285-2.369,3.709-3.188,4.931-0.548,0.785-1.641,2.352-2.186,3.081-0.549,0.582-1.369,1.931-2.098,2.203-0.363,0.146-1.277,0.138-1.55-0.117-0.365-0.301-0.455-1.34-0.545-1.804,0-0.558,0.271-1.762,0-2.243-0.364-0.584-1.643-1.274-2.37-1.356-0.911-0.137-2.916,0.582-3.829,1.038-0.909,0.481-2.366,2.068-3.279,2.678-1.366,1.003-4.375,2.825-5.921,3.609-0.549,0.264-1.276,0.554-2.098,0.856l-2.734-4.631,3.009-3.679,3.098,1.319,3.37-1.957-0.181-3.409-0.73-5.084-2.095-2.078-2.369,1.521-3.191,0.994-2.549-2.562s0.639-1.203,0.639-1.64c0-0.738-0.366-2.232-0.822-2.842-0.456-0.657-1.821-1.505-2.46-1.961-0.638-0.454-2.005-1.164-2.641-1.685-0.548-0.546-1.55-1.833-2.007-2.523-0.183-0.294-0.728-0.956-0.547-1.239,0.455-0.776,2.918,0.573,3.736,0.08,0.273-0.173,0.456-0.819,0.456-1.13,0-0.347-0.456-0.956-0.547-1.274-0.456-0.922-1.276-2.753-1.732-3.692-0.271-0.684-0.637-2.15-1.001-2.797-0.183-0.254-0.638-0.647-0.728-0.919-0.185-0.467-0.275-1.568,0-1.97,0.271-0.419,1.458-0.772,2.002-0.684,0.455,0.101,1.003,1.048,1.459,1.287,0.271,0.146,0.82,0.31,1.185,0.363,0.364,0.083,1.365-0.054,1.732,0.117,0.272,0.102,0.544,0.603,0.819,0.684,0.639,0.174,1.82-0.171,2.461-0.282,0.909-0.172,2.731-0.5,3.554-0.968,0.363-0.197,1.001-0.781,1.184-1.155,0.091-0.328,0.091-1.086,0.091-1.439-0.091-0.72-0.455-2.123-0.455-2.844,0-0.528-0.09-1.685,0.274-2.086,0.181-0.256,0.91-0.4,1.274-0.365,0.365,0.046,1.003,0.484,1.275,0.729,0.364,0.355,1.002,1.25,1.185,1.723,0.183,0.31,0.183,1.186,0.548,1.321,0.272,0.147,1.092-0.399,1.366-0.683,0.272-0.337,0.639-1.257,0.639-1.724,0.09-0.435-0.272-1.282-0.272-1.722,0-0.846,0.729-2.424,0.91-3.242,0.271-0.813,0.729-2.416,0.819-3.245,0-0.429,0.092-1.367-0.09-1.722-0.183-0.263-0.823-0.492-1.095-0.563-0.456-0.093-1.458,0.063-1.914,0.079-0.363,0.02-1.184-0.108-1.548,0.083-0.365,0.173-0.638,0.947-0.82,1.204-0.183,0.172-0.638,0.572-0.913,0.554-0.636-0.026-1.457-1.174-1.912-1.593-0.91-0.768-2.553-2.351-3.281-3.209-0.453-0.473-1.093-1.558-1.548-2.006-0.184-0.162-0.547-0.518-0.82-0.553-0.272-0.057-0.82,0.354-1.187,0.354-0.362,0.009-1.001-0.208-1.273-0.354-0.457-0.211-1.184-0.83-1.641-1.123-0.275-0.272-0.911-0.909-1.274-1.165-0.276-0.183-0.821-0.575-1.096-0.603-0.364-0.018-1.002,0.255-1.275,0.446-0.183,0.192-0.456,0.848-0.728,1.04-0.183,0.136-0.729,0.356-0.911,0.281-0.457-0.154-1.005-1.449-1.005-1.449l-3.644-5.521-6.104,1.723-2.004-5.166,3.004-0.802,0.367-1.241-5.47,0.238,0.093-5.529-2.644-4.002-6.471-3.526,4.557-1.441-2.6-1.34z\",\"name\":\"Донецька область\"},\"18\":{\"path\":\"M547.06,335.04l-5.121,1.531-0.356-5.485-8.528-7.217-0.082-2.597-2.889-1.485,3.846-8.575-3.044-5.248,2.487-0.794,3.527,1.003,3.882-3.572-3.926-2.36,0.519-7.372,3.845,0.565,0.401-3.043-1.44-0.201-1.64-2.605-1.567-5.487-1.878-0.037-0.246,2.643-3.161-0.127-0.483-2.359-5.122-2.324-0.046-3.326-4.482-4.684-1.003-0.155-0.118-2.324-6.005-2.524,4.92-9.175,0.282-2.124-0.756-1.204-1.887-0.273-2.278-2.524-0.145-0.264,2.041-0.966,0.374-1.549-2.406-1.714-2.296-1.595-0.374-1.767s1.138-0.984,1.496-1.33c0.865-0.848,2.587-2.561,3.307-3.527,0.529-0.702,1.494-2.205,1.768-3.043,0.191-0.602,0.264-1.877,0.264-2.516,0-0.746-0.4-2.242-0.319-2.988,0.055-0.501,0.574-1.413,0.639-1.924,0.073-0.5,0-1.53-0.11-2.021-0.118-0.594-0.802-1.65-0.847-2.243-0.036-0.438,0.201-1.311,0.374-1.712,0.181-0.447,1.011-1.13,1.066-1.605,0.054-0.464-0.446-1.338-0.638-1.758-0.3-0.655-1.029-1.895-1.394-2.515-0.228-0.383-1.039-1.058-0.957-1.494,0.055-0.328,0.92-0.492,1.066-0.802,0.191-0.392,0.019-1.321-0.054-1.759-0.119-0.701-0.538-2.087-0.857-2.725-0.292-0.592-1.522-1.477-1.549-2.132-0.009-0.41,0.547-1.12,0.857-1.395,0.364-0.309,1.322-0.563,1.767-0.747,0.739-0.3,2.196-1.048,2.989-1.174,0.383-0.056,1.194,0.263,1.549,0.108,0.418-0.182,1.065-0.983,1.175-1.439,0.045-0.229-0.191-0.675-0.219-0.911-0.054-0.466-0.191-1.44,0-1.868,0.164-0.356,0.939-0.712,1.175-1.012,0.2-0.256,0.438-0.847,0.583-1.122,0.21-0.364,0.748-1.038,0.857-1.448,0.137-0.501-0.182-1.587,0-2.079,0.163-0.446,1.229-1.439,1.229-1.439l6.779-5.933-0.373-9.658,2.142-0.219s0.729-0.31,0.957-0.429c0.419-0.218,1.358-0.565,1.604-0.956,0.246-0.394,0.281-1.377,0.155-1.823-0.101-0.374-0.611-1.021-0.904-1.276-0.282-0.247-1.193-0.346-1.338-0.702-0.256-0.629,0.647-1.951,0.802-2.616,0.182-0.72,0.173-2.288,0.536-2.934,0.229-0.401,0.932-1.202,1.386-1.229,0.411-0.019,1.058,0.666,1.339,0.965,0.546,0.575,1.249,2.023,1.705,2.669,0.328,0.456,1.395,1.759,1.395,1.759l1.12-1.066,1.23-7.798,1.758-0.375,1.285-2.562,0.938-1.01c0.275,0.555,1.04,1.239,1.404,1.595,0.283,0.281,0.875,0.819,1.23,0.965,0.301,0.127,0.966,0.228,1.286,0.164,0.555-0.128,1.42-0.957,1.922-1.23,0.756-0.418,2.342-1.138,3.153-1.439,0.62-0.238,1.959-0.474,2.561-0.757,0.419-0.191,1.32-0.61,1.548-1.009,0.264-0.475,0.146-1.651,0.055-2.188-0.1-0.566-0.428-1.705-0.801-2.133-0.292-0.337-1.193-0.592-1.549-0.856-0.301-0.228-0.965-0.712-1.066-1.076-0.118-0.401,0.11-1.312,0.374-1.65,0.201-0.253,0.856-0.51,1.175-0.591,0.402-0.092,1.249-0.11,1.649,0,0.684,0.191,1.806,1.083,2.406,1.448,0.865,0.52,2.733,1.385,3.472,2.078,0.31,0.291,0.601,1.166,0.965,1.385,0.511,0.337,1.786,0.428,2.397,0.428,0.437,0.01,1.284-0.182,1.713-0.264,1.002-0.193,3.08-0.42,4-0.856,0.729-0.337,1.913-1.441,2.515-1.978,0.565-0.5,1.603-1.585,2.132-2.132,0.402-0.411,1.049-1.395,1.549-1.659,0.338-0.173,1.139-0.346,1.495-0.208,0.519,0.19,1.14,1.193,1.449,1.657,0.411,0.629,0.938,2.069,1.33,2.716,0.483,0.819,1.804,2.232,2.187,3.097,0.247,0.566,0.319,1.833,0.539,2.406,0.1,0.255,0.282,0.847,0.529,0.957,0.547,0.245,1.73-0.418,2.304-0.582,0.83-0.239,2.469-0.794,3.307-1.012,1.004-0.274,3.027-0.794,4.056-0.911,0.966-0.11,2.925-0.137,3.9-0.055,0.639,0.064,1.877,0.418,2.506,0.483,0.438,0.044,1.339-0.101,1.769,0,0.264,0.063,0.838,0.246,0.956,0.483,0.22,0.419-0.246,1.394-0.263,1.867-0.036,1.139,0.137,3.417,0.318,4.538,0.183,1.129,0.564,3.435,1.121,4.428,0.246,0.438,0.929,1.24,1.394,1.449,0.365,0.165,1.193,0.046,1.595,0.046,0.657,0.018,2.032,0.282,2.625,0,0.373-0.174,0.902-0.894,1.066-1.275,0.191-0.447,0.146-1.45,0.209-1.924,0.091-0.656,0.174-2.004,0.429-2.615,0.346-0.829,1.531-2.224,2.133-2.889,0.729-0.792,2.277-2.351,3.208-2.879,0.537-0.311,1.758-0.584,2.351-0.747,0.883-0.247,2.679-0.648,3.581-0.858,1.012-0.245,3.125-0.492,4.055-0.965,1.312-0.666,3.599-2.661,4.482-3.837,0.256-0.346,0.61-1.139,0.703-1.549,0.081-0.411-0.119-1.257,0-1.658,0.081-0.301,0.363-0.911,0.636-1.066,0.301-0.172,1.049-0.091,1.386,0,0.384,0.092,1.157,0.429,1.387,0.748,0.527,0.71,0.473,2.615,0.7,3.471,0.465,1.74,1.75,5.112,2.295,6.834,0.439,1.366,1.286,4.11,1.65,5.494,0.265,0.976,0.757,2.916,0.912,3.9,0.127,0.793,0.046,2.433,0.264,3.208,0.265,0.911,1.258,2.562,1.768,3.362,0.347,0.557,1.212,1.559,1.595,2.087,0.264,0.346,0.593,1.267,1.003,1.431l3.17,3.8-2.086,7.207-3.308-1.868-3.9,2.188,3.846,14.426,1.339-1.286,9.923,8.539-4.638,2.998-0.055,4-2.406,0.055,0.374,2.67,5.504,6.779s-0.118,1.486-0.164,1.979c-0.046,0.517-0.356,1.584-0.21,2.085,0.192,0.674,1.44,1.594,1.705,2.242,0.2,0.474,0.492,1.567,0.264,2.032-0.172,0.365-1.02,0.666-1.384,0.846-0.474,0.247-1.476,0.611-1.977,0.803-0.393,0.156-1.44,0.191-1.595,0.592-0.137,0.318,0.347,0.975,0.583,1.229,0.336,0.348,1.257,0.739,1.704,0.903,0.647,0.236,1.986,0.601,2.669,0.593,0.675-0.009,1.997-0.411,2.624-0.647,0.293-0.109,0.839-0.729,1.121-0.583,0.292,0.146,0.156,0.957,0.209,1.275,0.119,0.738,0.574,2.206,0.484,2.943-0.092,0.747-0.711,2.178-1.176,2.779-0.647,0.829-2.45,2.031-3.363,2.56-1.03,0.593-3.325,1.276-4.382,1.813-0.602,0.301-2.297,1.394-2.297,1.394l-0.055,2.617,3.426,2.341,0.583,1.712-2.514,2.087,0.801,2.506,2.46,1.869-2.141,3.361-3.626-0.208,3.79,7.854,9.56,7.737-0.319,5.449-1.704-0.165,2.605,2.569-2.451,5.067,0.803,2.78,2.405,0.318,2.132,4.12-2.614,1.44,1.01,2.934-3.627,4.009,7.364,9.131-8.803,4.483-6.733,5.977-7.956,3.58,1.55,5.186-0.912,3.308,3.362,1.603-0.319,5.341-5.548-2.169,0.282,3.928-0.802,0.838-1.649-1.722-4.766,1.933,1.121,2.076-1.64,0.921-3.162-0.921-14.781-0.036-0.883-1.531,2.369-3.881-4.611-4.283,4.047-5.368-2.561-4.966,2.123-4.009-7.135-7.928-4.884,6.653-3.362,0.2,0.801,5.321-4.009-0.437-1.44-3.208-4.284,0.047-1.721,5.403-2.962-4.247-4.127-0.237-1.368-2.888-1.84-0.556-0.355,5.166-1.567,0.274-6.771-3.363s-2.415,1.768-3.315,2.169c-1.313,0.565-4.12,1.211-5.532,1.395-1.769,0.236-5.358,0.319-7.126,0.127-1.121-0.127-3.28-0.775-4.365-1.049-0.729-0.171-2.14-0.728-2.888-0.756-0.721-0.027-2.142,0.32-2.844,0.52-0.709,0.201-2.132,0.684-2.76,1.085-0.374,0.228-1.286,1.203-1.286,1.203l-0.66,0.24z\",\"name\":\"Житомирська область\"},\"21\":{\"path\":\"M326.34,478.76c0.299,0.48,0.72,1.61,0.692,2.184-0.027,0.604-0.611,1.726-0.903,2.241-0.337,0.586-1.395,1.506-1.604,2.144-0.229,0.665,0.009,2.113,0,2.825-0.019,0.647-0.092,2.187-0.136,3.043-0.966-0.411-2.762-0.611-3.654-0.792-0.957-0.202-2.889-0.511-3.847-0.702-0.564-0.11-1.676-0.521-2.242-0.484-0.418,0.037-1.183,0.402-1.548,0.593-0.729,0.374-2.032,1.395-2.725,1.813-0.783,0.473-2.341,1.465-3.207,1.767-0.665,0.221-2.078,0.412-2.779,0.43-1.158,0.02-3.444-0.374-4.592-0.537-0.912-0.128-2.753-0.319-3.628-0.583-0.537-0.175-1.604-0.592-2.031-0.967-0.492-0.428-0.948-1.759-1.439-2.187-0.884-0.765-3.135-1.547-4.221-1.979-0.929-0.365-2.824-0.993-3.79-1.229-0.92-0.229-2.797-0.692-3.746-0.639-1.084,0.056-3.116,1.13-4.209,1.175-0.802,0.028-2.415-0.328-3.153-0.646-0.628-0.264-1.677-1.166-2.242-1.55-0.811-0.527-2.378-1.678-3.262-2.078-0.793-0.364-2.516-0.784-3.362-1.012-0.957-0.253-2.908-0.592-3.846-0.91-1.002-0.347-2.833-1.459-3.845-1.768-0.675-0.201-2.078-0.475-2.78-0.429-0.655,0.055-1.858,0.683-2.505,0.802-0.794,0.146-2.424,0.329-3.208,0.165-0.702-0.146-1.932-0.931-2.561-1.285-0.875-0.486-2.67-1.413-3.417-2.078-0.583-0.52-1.513-1.795-1.922-2.461-0.411-0.673-1.103-2.122-1.331-2.877-0.192-0.611-0.165-1.933-0.429-2.517-0.273-0.582-1.121-1.621-1.657-1.977-0.839-0.538-2.862-0.929-3.847-1.065-0.665-0.091-2.014-0.136-2.669,0-0.593,0.136-1.722,0.638-2.188,1.021-0.629,0.501-1.448,1.913-1.922,2.561-0.546,0.737-1.53,2.304-2.195,2.934-0.447,0.427-1.495,1.156-2.078,1.394-0.603,0.236-1.923,0.346-2.561,0.419-0.72,0.091-2.196,0.437-2.889,0.218-0.464-0.146-1.039-1.066-1.494-1.231-0.401-0.145-1.321-0.181-1.713,0-0.419,0.201-0.939,1.04-1.167,1.441-0.155,0.273-0.382,0.874-0.428,1.176-0.073,0.436,0.182,1.339,0.055,1.766-0.127,0.393-0.693,1.021-0.966,1.332-0.318,0.364-0.911,1.283-1.385,1.339-0.255,0.026-0.702-0.338-0.857-0.538-0.355-0.473-0.447-1.73-0.638-2.296-0.219-0.629-1.084-1.795-1.02-2.452,0.054-0.574,0.938-1.466,1.284-1.921,0.411-0.548,1.404-1.504,1.76-2.088,0.345-0.565,0.992-1.795,1.021-2.46,0.018-0.529-0.466-1.541-0.693-2.022-0.274-0.574-0.902-1.688-1.339-2.142-0.502-0.519-1.742-1.32-2.406-1.604-0.811-0.337-2.598-0.555-3.472-0.692-0.993-0.145-2.998-0.427-4-0.427-0.738,0-2.214,0.19-2.944,0.327-0.555,0.1-1.64,0.728-2.187,0.583-0.474-0.128-1.139-0.967-1.385-1.385-0.292-0.485-0.537-1.596-0.637-2.142-0.174-0.875-0.165-2.689-0.329-3.582-0.136-0.757-0.564-2.25-0.792-2.988-0.228-0.676-0.665-2.042-1.02-2.671-0.256-0.438-0.856-1.312-1.286-1.596-0.519-0.354-1.776-0.627-2.396-0.745-0.83-0.165-2.534-0.156-3.372-0.274-0.574-0.083-1.759-0.228-2.287-0.483-0.41-0.183-1.112-0.765-1.395-1.122-0.209-0.264-0.509-0.892-0.583-1.22-0.191-0.848,0.127-2.617,0-3.473-0.109-0.693-0.547-2.041-0.857-2.67-0.218-0.437-0.792-1.238-1.12-1.604-0.274-0.3-1.048-0.701-1.23-1.066-0.173-0.354-0.046-1.193-0.11-1.595-0.072-0.483-0.246-1.467-0.437-1.922-0.202-0.464-0.784-1.33-1.122-1.722-0.328-0.364-1.13-0.965-1.522-1.276-0.3-0.245-0.875-0.802-1.239-0.919-0.437-0.156-1.421,0.126-1.85-0.046-0.482-0.183-1.312-0.902-1.558-1.357-0.228-0.438-0.283-1.477-0.237-1.969,0.063-0.747,0.638-2.168,0.875-2.879,0.292-0.839,0.957-2.479,1.248-3.326,0.428-1.276,0.975-3.946,1.558-5.167,0.692-1.449,2.634-4.073,3.645-5.321,0.921-1.149,2.943-3.318,4.047-4.292,0.948-0.83,3.217-2.05,4.082-2.961,1.02-1.067,2.506-3.655,3.244-4.921,0.557-0.948,1.704-2.843,2.005-3.89,0.301-1.058,0.282-3.272,0.364-4.365,0.064-0.976-0.073-2.962,0.238-3.883,0.209-0.629,1.038-1.685,1.44-2.205,0.747-0.966,2.386-2.78,3.244-3.646,0.756-0.765,2.332-2.205,3.162-2.888,0.656-0.529,2.068-1.44,2.724-1.959,0.546-0.428,1.851-1.158,2.123-1.805,0.265-0.61,0.038-2.005-0.155-2.642-0.1-0.311-0.564-0.803-0.646-1.12-0.055-0.247-0.137-0.821,0.045-1.003,0.292-0.292,1.23-0.1,1.64-0.073,0.438,0.018,1.313,0.082,1.724,0.237,0.627,0.246,1.676,1.156,2.241,1.521,0.765,0.492,2.305,1.477,3.125,1.886,0.738,0.355,2.242,1.039,3.044,1.193,0.729,0.146,2.251-0.136,2.961,0.046,0.628,0.154,1.703,0.911,2.286,1.203,0.447,0.219,1.313,0.738,1.805,0.838,0.219,0.045,0.538,0.082,0.884,0.082l6.643,7.127-4.327,2.286,0.919,4.202,3.444,4.164,2.16,6.971,7.537-1.677,5.804,7.563,4.329-0.164,4.364,2.406,2.925,4.282,8.247,1.605,0.702-2.168c0.501,0.364,1.158,0.846,1.449,1.093,0.456,0.375,1.294,1.192,1.713,1.604,0.3,0.283,0.948,0.82,1.175,1.167,0.356,0.555,0.657,1.877,0.957,2.461,0.347,0.664,1.186,1.921,1.658,2.505,0.219,0.273,0.638,0.875,0.958,1.021,0.5,0.218,1.64,0.045,2.196,0.055,0.647,0,1.959-0.083,2.615-0.055,0.556,0.018,1.858-0.209,2.242,0.209,0.264,0.292,0.018,1.167,0,1.549-0.018,0.484-0.128,1.441-0.164,1.923-0.045,0.656-0.155,1.959-0.155,2.615,0,0.474-0.037,1.421,0.1,1.876,0.126,0.384,0.565,1.104,0.856,1.386,0.565,0.538,2.024,1.159,2.726,1.495,0.618,0.301,1.922,0.72,2.515,1.065,0.392,0.237,1.239,0.71,1.44,1.122,0.164,0.364,0,1.211-0.055,1.604-0.074,0.492-0.401,1.43-0.483,1.922-0.128,0.792-0.583,2.47-0.265,3.208,0.137,0.328,0.765,0.865,1.121,0.902,0.365,0.047,1.048-0.4,1.34-0.637,0.382-0.329,0.883-1.24,1.166-1.659,0.192-0.272,0.474-0.93,0.747-1.122,0.228-0.154,0.801-0.2,1.076-0.208,0.482-0.028,1.448,0.318,1.922,0.208,0.602-0.126,1.568-1.029,2.133-1.284,0.483-0.218,1.503-0.538,2.032-0.638,0.473-0.092,1.448-0.256,1.923-0.155,0.437,0.083,1.33,0.483,1.603,0.848,0.329,0.464,0.237,1.695,0.365,2.251,0.109,0.427,0.538,1.256,0.538,1.703,0,0.448-0.328,1.313-0.538,1.704-0.273,0.528-1.248,1.313-1.44,1.878-0.119,0.337-0.063,1.084,0,1.439,0.101,0.555,0.565,1.604,0.747,2.132,0.255,0.73,0.565,2.268,1.021,2.889,0.564,0.785,2.224,1.913,3.088,2.351,0.638,0.311,2.024,0.729,2.725,0.748,0.428,0.008,1.331-0.109,1.659-0.375,0.282-0.228,0.382-1.038,0.638-1.286,0.447-0.418,1.668-0.764,2.25-0.965,0.301-0.101,0.93-0.438,1.221-0.318,0.456,0.19,0.702,1.292,0.966,1.713,0.319,0.509,1.03,1.484,1.385,1.976,0.473,0.639,1.494,1.841,1.922,2.506,0.383,0.603,1.057,1.859,1.34,2.515,0.436,1.021,1.094,3.153,1.439,4.21,0.21,0.656,0.629,1.96,0.801,2.624,0.146,0.573,0.575,1.758,0.484,2.352-0.092,0.537-0.812,1.439-1.075,1.922-0.265,0.483-0.857,1.449-1.066,1.967-0.119,0.302-0.428,0.931-0.32,1.23,0.11,0.32,0.775,0.638,1.066,0.802,0.53,0.31,1.723,0.647,2.242,0.966,0.921,0.556,2.516,2.005,3.317,2.716,0.465,0.42,1.477,1.23,1.814,1.768\",\"name\":\"Закарпатська область\"},\"23\":{\"path\":\"M 1165.838,556.373 C 1166.018,556.727 1165.928,557.666 1165.928,558.095 1165.838,558.924 1165.38,560.527 1165.109,561.34 1164.927,562.158 1164.197,563.736 1164.197,564.582 1164.197,565.021 1164.561,565.869 1164.471,566.304 1164.471,566.771 1164.105,567.691 1163.832,568.028 1163.558,568.311 1162.738,568.858 1162.466,568.711 1162.101,568.575 1162.101,567.699 1161.918,567.39 1161.735,566.917 1161.098,566.023 1160.733,565.667 1160.461,565.423 1159.822,564.984 1159.458,564.938 1159.094,564.903 1158.364,565.047 1158.184,565.303 1157.819,565.704 1157.91,566.861 1157.91,567.389 1157.91,568.11 1158.273,569.513 1158.365,570.233 1158.365,570.587 1158.365,571.344 1158.273,571.672 1158.091,572.046 1157.454,572.63 1157.089,572.827 1156.268,573.295 1154.445,573.623 1153.536,573.795 1152.895,573.906 1151.714,574.251 1151.075,574.077 1150.8,573.996 1150.526,573.495 1150.255,573.393 1149.889,573.222 1148.887,573.359 1148.524,573.276 1148.16,573.222 1147.611,573.058 1147.338,572.913 1146.881,572.674 1146.335,571.726 1145.88,571.626 1145.336,571.537 1144.149,571.891 1143.877,572.31 1143.603,572.711 1143.692,573.813 1143.877,574.28 1143.968,574.551 1144.423,574.945 1144.605,575.199 1144.97,575.845 1145.336,577.312 1145.607,577.996 1146.063,578.935 1146.881,580.767 1147.338,581.688 1147.43,582.006 1147.886,582.616 1147.886,582.973 1147.886,583.273 1147.703,583.919 1147.43,584.092 1146.61,584.585 1144.149,583.236 1143.693,584.012 1143.513,584.295 1144.058,584.957 1144.241,585.25 1144.698,585.941 1145.7,587.229 1146.248,587.774 1146.882,588.295 1148.251,589.004 1148.888,589.459 1149.528,589.915 1150.893,590.763 1151.349,591.42 1151.805,592.029 1152.171,593.524 1152.171,594.262 1152.171,594.699 1151.532,595.902 1151.532,595.902 L 1154.081,598.463 1157.272,597.47 1159.641,595.949 1161.736,598.027 1162.466,603.111 1162.647,606.52 1159.277,608.477 1156.179,607.158 1153.17,610.837 1155.904,615.468 C 1154.264,616.061 1152.442,616.689 1151.439,617.289 1149.982,618.119 1147.429,620.179 1146.427,621.419 1145.514,622.577 1144.057,625.273 1143.512,626.667 1143.054,627.753 1142.324,630.021 1142.234,631.187 1142.144,632.08 1142.508,633.867 1142.418,634.75 1142.418,635.352 1142.234,636.582 1141.961,637.084 1141.597,637.586 1140.412,638.167 1139.867,638.479 1139.411,638.77 1138.5,639.543 1137.952,639.526 1137.678,639.507 1137.042,639.253 1137.042,639.006 1137.042,638.387 1138.682,638.059 1139.137,637.641 1139.594,637.23 1140.412,636.264 1140.686,635.716 1140.959,635.16 1141.234,633.931 1141.325,633.312 1141.416,632.626 1141.325,631.215 1141.143,630.55 1140.87,629.675 1139.957,628.018 1139.321,627.387 1138.592,626.668 1136.585,625.74 1135.584,625.466 1134.673,625.209 1132.759,625.183 1131.758,625.264 1130.3,625.384 1127.568,626.085 1126.199,626.504 1124.468,627.042 1121.187,628.508 1119.547,629.192 1118.362,629.657 1116.083,630.541 1114.989,631.07 1114.08,631.508 1112.257,632.354 1111.437,633.038 1110.798,633.658 1109.796,635.263 1109.341,636.081 1108.793,637.111 1107.975,639.336 1107.61,640.447 1107.427,641.02 1107.064,642.216 1106.881,642.807 1106.606,643.754 1105.97,645.631 1105.695,646.571 1105.42,647.537 1104.876,649.54 1104.419,650.416 1103.873,651.336 1102.322,652.903 1101.504,653.579 1100.683,654.288 1098.77,655.419 1097.677,655.865 1097.22,656.065 1096.309,656.521 1095.765,656.42 1095.49,656.375 1095.036,656.02 1094.944,655.782 1094.852,655.481 1095.036,654.798 1095.217,654.498 1095.398,654.033 1096.036,653.204 1096.491,652.903 1096.947,652.547 1098.132,652.245 1098.679,652.021 1099.135,651.828 1100.047,651.482 1100.502,651.217 1101.139,650.816 1102.414,649.806 1102.961,649.258 1103.508,648.713 1104.51,647.529 1104.876,646.852 1105.147,646.26 1105.513,644.94 1105.695,644.292 1105.878,643.746 1106.057,642.632 1106.15,642.087 1106.241,641.676 1106.515,640.866 1106.515,640.446 1106.605,640.262 1106.698,639.79 1106.515,639.726 1106.241,639.636 1105.969,640.208 1105.786,640.4 1105.513,640.729 1105.146,641.53 1104.876,641.804 1104.693,641.978 1104.147,642.286 1103.873,642.248 1103.6,642.204 1103.052,641.693 1102.87,641.447 1102.597,641.038 1102.414,640.008 1102.142,639.596 1101.776,639.187 1101.047,638.477 1100.591,638.239 1100.136,638.003 1099.134,637.785 1098.585,637.757 1097.767,637.72 1096.216,638.058 1095.488,638.204 1094.85,638.312 1093.666,638.603 1093.028,638.761 1092.388,638.943 1091.115,639.433 1090.477,639.561 1089.474,639.752 1087.377,639.762 1086.284,639.88 1085.373,639.999 1083.46,640.4 1082.457,640.526 1081.548,640.634 1079.634,640.627 1078.632,640.845 1077.902,641.018 1076.444,641.556 1075.806,641.965 1075.259,642.319 1074.348,643.331 1073.892,643.808 1073.348,644.299 1072.344,645.32 1071.888,645.811 1070.429,647.169 1067.423,649.748 1065.965,651.096 1064.143,652.783 1060.589,656.337 1058.767,657.949 1057.947,658.587 1056.398,659.754 1055.579,660.345 1055.122,660.701 1054.212,661.485 1053.664,661.749 1053.299,661.949 1052.48,662.341 1052.023,662.269 1051.659,662.205 1050.929,661.739 1050.838,661.384 1050.655,660.974 1051.113,660.099 1051.294,659.705 1051.385,659.406 1052.113,658.952 1052.023,658.623 1052.023,658.332 1051.385,657.931 1051.114,657.948 1050.656,657.957 1050.018,658.721 1049.745,659.069 1049.472,659.334 1049.382,660.126 1049.017,660.307 1048.744,660.473 1048.014,660.408 1047.649,660.263 1046.92,659.925 1045.919,658.55 1045.554,657.866 1045.006,657.074 1044.279,655.341 1044.094,654.423 1044.004,653.739 1044.459,652.335 1044.279,651.652 1044.186,651.132 1043.55,650.239 1043.366,649.73 1043.276,649.411 1043.092,648.718 1043.002,648.371 1043.002,647.697 1043.276,646.311 1043.092,645.646 1043.002,645.246 1042.455,644.588 1042.275,644.207 1042.09,643.808 1041.911,642.923 1041.728,642.521 1041.546,642.193 1041.181,641.573 1040.906,641.317 1040.724,641.146 1040.269,640.744 1039.995,640.799 1039.632,640.871 1039.267,641.617 1039.083,641.964 1038.902,642.549 1038.812,643.824 1038.902,644.443 1038.995,645.034 1039.449,646.138 1039.449,646.72 1039.542,647.422 1039.083,648.788 1039.083,649.491 1039.083,650.375 1039.357,652.114 1039.542,652.97 1039.813,653.992 1040.633,655.915 1040.906,656.944 1041,657.865 1040.906,659.777 1041.09,660.71 1041.272,661.601 1042.001,663.297 1042.365,664.152 1042.548,664.764 1042.912,666.096 1043.277,666.595 1043.55,666.839 1044.095,667.215 1044.461,667.279 1044.825,667.341 1045.646,667.205 1045.92,666.994 1046.191,666.832 1046.467,666.265 1046.556,666.031 1046.831,665.738 1047.196,665.145 1047.47,664.874 1047.651,664.69 1047.923,664.235 1048.199,664.189 1048.38,664.152 1048.835,664.354 1048.928,664.554 1049.02,664.919 1048.562,665.657 1048.289,665.993 1048.108,666.348 1047.471,666.94 1047.196,667.278 1046.74,667.904 1045.738,669.173 1045.374,669.875 1044.826,670.833 1044.097,672.917 1043.643,673.921 1043.188,674.898 1042.277,676.837 1041.73,677.766 1041.456,678.256 1040.726,679.162 1040.455,679.653 1040.09,680.155 1039.634,681.203 1039.359,681.73 1039.179,682.224 1038.813,683.243 1038.63,683.734 1038.63,683.781 1038.54,683.837 1038.54,683.889 L 1037.354,683.169 C 1037.719,682.769 1038.173,682.323 1038.449,682.013 1038.72,681.574 1039.268,680.591 1039.543,680.09 1039.814,679.46 1040.271,678.15 1040.544,677.529 1040.818,676.994 1041.455,675.962 1041.819,675.442 1042.002,675.104 1042.548,674.476 1042.639,674.084 1042.73,673.775 1042.73,673.091 1042.548,672.837 1042.365,672.646 1041.819,672.518 1041.547,672.481 1041.182,672.427 1040.361,672.691 1039.905,672.646 1039.449,672.591 1038.539,672.354 1038.173,672.042 1037.901,671.76 1037.627,670.96 1037.627,670.559 1037.536,670.039 1037.9,669.036 1038.083,668.554 1038.267,668.155 1038.812,667.45 1038.902,667.033 1039.083,666.522 1039.267,665.411 1039.083,664.91 1038.902,664.545 1038.448,663.915 1038.083,663.751 1037.81,663.626 1037.263,663.751 1036.898,663.708 1036.534,663.652 1035.713,663.524 1035.349,663.269 1035.076,663.014 1034.802,662.185 1034.62,661.831 1034.438,661.438 1034.075,660.583 1033.8,660.264 1033.527,660.055 1033.071,659.706 1032.706,659.706 1032.343,659.697 1031.522,660.144 1031.25,660.463 1030.976,660.847 1030.61,661.875 1030.702,662.351 1030.794,662.806 1031.704,663.364 1031.977,663.709 1032.432,664.181 1033.345,665.047 1033.617,665.63 1033.8,666.195 1033.8,667.444 1033.71,668.036 1033.617,668.537 1033.254,669.492 1032.981,669.922 1032.617,670.506 1031.705,671.61 1031.066,671.963 1030.795,672.129 1030.155,672.346 1029.792,672.284 1029.336,672.191 1028.517,671.555 1028.243,671.117 1028.06,670.696 1028.15,669.676 1028.243,669.203 1028.243,668.692 1028.516,667.682 1028.425,667.197 1028.335,666.897 1027.876,666.313 1027.607,666.23 1027.334,666.169 1026.786,666.432 1026.602,666.63 1026.239,667.024 1026.147,668.155 1026.054,668.674 1025.964,669.63 1026.054,671.563 1026.054,672.519 1026.054,673.075 1025.6,674.414 1026.054,674.724 1026.239,674.87 1026.785,674.468 1026.967,674.358 1027.239,674.27 1027.696,673.804 1027.876,673.922 1028.15,674.059 1027.969,674.733 1027.969,675.006 1027.876,675.488 1027.787,676.475 1027.607,676.928 1027.422,677.458 1026.877,678.469 1026.513,678.888 1026.328,679.081 1026.147,679.28 1025.873,679.49 1025.144,679.354 1024.415,679.154 1024.051,678.934 1023.595,678.623 1023.14,677.668 1022.866,677.211 1022.593,676.685 1022.047,675.599 1021.955,675.006 1021.955,674.597 1022.047,673.713 1022.226,673.364 1022.5,673.027 1023.412,672.857 1023.594,672.481 1023.867,671.797 1023.139,670.313 1023.049,669.592 1022.774,668.426 1022.32,666.057 1021.954,664.909 1021.863,664.443 1021.497,663.514 1021.225,663.112 1020.86,662.521 1019.858,661.51 1019.31,661.108 1018.673,660.67 1017.307,660.079 1016.669,659.824 1015.939,659.568 1014.391,659.413 1013.753,659.067 1013.387,658.885 1012.75,658.384 1012.567,658.065 1012.113,657.401 1012.113,655.769 1011.838,655.059 1011.655,654.702 1011.289,653.938 1011.019,653.783 1010.653,653.619 1009.833,653.828 1009.467,653.938 1008.83,654.12 1007.737,654.92 1007.099,655.095 1006.736,655.203 1005.914,655.367 1005.55,655.221 1005.094,655.049 1004.549,654.246 1004.276,653.891 1003.911,653.453 1003.363,652.478 1002.999,652.05 1002.633,651.713 1002.088,650.793 1001.633,650.858 1001.36,650.884 1001.268,651.522 1001.086,651.65 1000.904,651.805 1000.266,651.961 999.993,651.851 999.719,651.732 999.353,651.113 999.263,650.811 999.173,650.529 998.992,649.91 999.082,649.609 999.082,649.419 999.263,649.051 999.353,648.889 999.628,648.598 1000.174,648.196 1000.448,647.931 1000.721,647.678 1001.177,647.175 1001.267,646.847 1001.452,646.365 1001.267,645.308 1001.176,644.807 1001.085,644.452 1000.993,643.757 1000.81,643.43 1000.721,643.194 1000.538,642.701 1000.265,642.564 999.993,642.346 999.081,642.365 998.717,642.346 998.351,642.336 997.531,642.592 997.167,642.437 996.894,642.336 996.711,641.863 996.528,641.653 996.437,641.491 996.347,641.061 996.164,640.969 995.891,640.824 995.253,641.007 994.979,641.08 994.796,641.135 994.431,641.5 994.25,641.416 994.066,641.314 993.978,640.741 993.885,640.506 V 639.173 C 993.885,638.882 993.792,638.254 993.978,638.034 994.159,637.762 994.979,637.744 995.344,637.661 995.799,637.534 996.801,637.317 997.347,637.207 997.805,637.105 998.716,636.969 999.171,636.822 999.443,636.734 1000.081,636.577 1000.264,636.324 1000.355,636.158 1000.173,635.729 1000.173,635.539 1000.081,635.221 999.534,634.583 999.717,634.309 999.899,634.054 1000.72,634.253 1000.992,634.201 1001.265,634.164 1001.813,634.192 1001.903,633.99 1002.086,633.781 1001.903,633.208 1001.813,632.951 1001.721,632.588 1001.45,631.904 1001.357,631.539 1001.265,631.203 1001.265,630.518 1001.174,630.19 1001.083,629.807 1000.626,629.061 1000.808,628.706 1000.902,628.46 1001.357,628.212 1001.63,628.104 1001.902,627.976 1002.45,627.884 1002.815,627.812 1003.087,627.721 1003.999,627.766 1004.183,627.447 1004.274,627.219 1003.909,626.718 1003.816,626.491 1003.544,626.073 1003.087,625.289 1002.815,624.915 1002.542,624.597 1001.994,624.074 1001.721,623.737 1001.63,623.52 1001.174,622.983 1001.357,622.763 1001.538,622.5 1002.36,623.001 1002.63,622.791 1002.724,622.707 1002.724,622.418 1002.724,622.3 1002.541,621.862 1001.813,621.27 1001.537,620.923 1001.174,620.494 1000.353,619.655 1000.08,619.21 999.716,618.8 999.17,617.916 998.896,617.506 998.714,617.249 998.348,616.658 998.075,616.531 997.712,616.375 996.982,616.566 996.618,616.531 996.346,616.493 995.798,616.385 995.522,616.256 994.885,615.946 993.976,614.918 993.428,614.472 992.88,614.06 991.879,613.296 991.424,612.813 991.15,612.54 990.695,611.903 990.512,611.566 990.329,611.237 990.147,610.5 989.966,610.198 989.783,609.952 989.237,609.64 989.054,609.397 988.598,608.877 988.235,607.637 988.05,607.027 987.779,606.271 987.505,604.714 987.231,603.957 987.05,603.419 986.869,602.253 986.502,601.842 986.23,601.515 985.226,601.423 984.86,601.132 984.498,600.83 983.951,599.583 983.951,599.583 L 981.464,587.171 984.498,586.251 984.408,583.772 981.39,583.091 981.463,579.161 978.7,579.042 978.218,582.605 970.29,583.044 965.808,574.596 967.894,572.035 965.653,569.419 C 966.383,569.356 967.12,569.254 967.587,569.108 968.441,568.819 970.071,567.924 970.738,567.295 971.274,566.768 971.921,565.355 972.333,564.727 972.698,564.179 973.306,562.986 973.828,562.593 974.254,562.266 975.33,561.993 975.86,561.891 976.323,561.817 977.261,561.828 977.726,561.846 978.239,561.855 979.248,562.021 979.758,562.001 980.305,561.983 981.426,561.882 981.945,561.682 982.584,561.428 983.677,560.469 984.314,560.078 985.045,559.604 986.411,558.574 987.23,558.212 988.049,557.857 989.691,557.263 990.511,557.199 991.149,557.145 992.515,557.262 993.062,557.574 993.518,557.81 994.064,558.72 994.428,559.066 994.703,559.348 995.341,559.905 995.706,560.078 996.067,560.271 996.98,560.333 997.435,560.453 997.982,560.606 999.167,560.881 999.623,561.199 1000.169,561.6 1000.898,562.857 1001.446,563.341 1001.899,563.762 1002.901,564.551 1003.45,564.833 1003.995,565.126 1005.362,565.282 1005.909,565.584 1006.456,565.828 1007.277,566.53 1007.64,566.913 1008.188,567.432 1009.007,568.735 1009.554,569.208 1010.101,569.637 1011.195,570.356 1011.832,570.495 1012.379,570.604 1013.38,570.475 1013.837,570.34 1014.473,570.14 1015.749,569.401 1016.297,568.999 1016.935,568.518 1018.119,567.168 1018.849,566.759 1019.578,566.339 1021.309,565.92 1022.218,565.793 1023.041,565.672 1024.864,565.839 1025.775,565.793 1026.777,565.747 1028.781,565.728 1029.692,565.419 1030.787,565.098 1032.609,563.968 1033.427,563.285 1034.247,562.622 1035.706,561.098 1036.072,560.132 1036.343,559.514 1036.254,558.128 1036.162,557.463 1036.162,556.579 1035.98,554.767 1035.707,553.937 1035.343,553.18 1034.068,552.014 1033.703,551.268 1033.519,550.785 1033.339,549.717 1033.247,549.19 1033.063,548.597 1032.882,547.376 1032.974,546.783 1033.064,546.428 1033.52,545.799 1033.703,545.502 1033.977,545.126 1034.705,544.542 1034.978,544.17 1035.16,543.915 1035.524,543.366 1035.524,543.05 1035.614,542.786 1035.432,542.193 1035.25,542.027 1034.979,541.857 1034.248,541.911 1033.978,542.027 1033.793,542.138 1033.428,542.639 1033.248,542.831 1033.064,543.076 1032.61,543.659 1032.337,543.797 1031.972,543.924 1031.334,543.924 1031.06,543.852 1030.515,543.726 1029.513,543.206 1029.148,542.788 1028.965,542.549 1028.874,541.947 1028.874,541.664 1028.783,541.037 1029.239,539.632 1028.874,539.15 1028.603,538.885 1027.87,538.84 1027.508,538.885 1027.145,538.931 1026.415,539.341 1026.141,539.577 1025.778,539.86 1025.049,540.552 1024.867,540.963 1024.502,541.546 1024.226,542.895 1024.046,543.532 1023.863,544.069 1023.59,545.174 1023.317,545.665 1023.046,546.12 1022.222,546.877 1021.86,547.269 1021.586,547.624 1020.857,548.28 1020.493,548.654 1019.946,549.32 1019.034,550.894 1018.395,551.487 1017.668,552.153 1015.845,553.017 1015.025,553.519 1014.296,553.911 1013.113,554.787 1012.293,555.178 1011.746,554.904 1011.018,554.484 1010.651,554.284 1010.194,553.991 1009.103,553.518 1008.739,553.064 1008.555,552.689 1008.281,551.75 1008.373,551.293 1008.373,550.694 1009.284,549.735 1009.466,549.162 1009.74,548.533 1010.014,547.213 1010.014,546.547 1010.014,546.055 1009.558,545.145 1009.466,544.678 1009.284,544.36 1009.012,543.724 1009.012,543.394 1009.102,543.139 1009.466,542.739 1009.741,542.592 1010.014,542.372 1010.927,542.401 1011.2,542.165 1011.563,541.954 1011.928,541.307 1012.018,540.961 1012.112,540.295 1011.837,538.911 1011.655,538.236 1011.563,537.609 1011.289,536.241 1010.835,535.785 1010.47,535.466 1009.467,535.455 1009.103,535.22 1008.741,535.048 1008.193,534.574 1008.102,534.264 1007.83,533.835 1007.737,532.842 1007.737,532.368 1007.737,531.767 1007.554,530.481 1007.83,529.963 1008.01,529.736 1008.558,529.572 1008.741,529.4 1008.921,529.225 1009.379,528.87 1009.468,528.607 1009.56,528.159 1009.286,527.204 1009.014,526.838 1008.558,526.291 1007.283,525.653 1006.647,525.425 1006.372,525.327 1005.733,525.227 1005.46,525.261 1005.002,525.327 1004.186,525.99 1003.728,525.982 1003.273,525.982 1002.454,525.526 1002.087,525.235 1001.815,525.051 1001.358,524.278 1001.358,524.278 L 1001.452,515.495 1006.825,517.555 C 1006.825,517.555 1007.19,516.66 1007.19,516.351 1007.282,515.805 1007.282,514.683 1007.099,514.181 1006.825,513.682 1005.823,513.061 1005.641,512.56 1005.459,512.096 1005.823,511.038 1005.641,510.583 1005.55,510.229 1004.913,509.744 1004.641,509.461 1004.365,509.188 1003.818,508.696 1003.727,508.358 1003.456,507.84 1003.272,506.09 1003.272,506.09 L 1002.817,497.442 1004.821,497.124 1007.099,502.409 1014.751,500.777 C 1015.026,501.706 1015.391,502.8 1015.575,503.421 1016.027,504.515 1016.94,506.657 1017.58,507.584 1018.125,508.313 1019.765,509.261 1020.13,510.072 1020.401,510.635 1020.313,511.941 1020.219,512.559 1020.13,513.417 1019.491,515.055 1019.402,515.921 1019.402,517.067 1019.583,519.4 1020.039,520.486 1020.22,521.132 1021.225,522.19 1021.496,522.809 1021.77,523.21 1021.861,524.277 1022.225,524.486 1022.499,524.632 1023.228,524.477 1023.411,524.249 1023.867,523.803 1023.777,522.446 1023.685,521.843 1023.593,521.124 1022.955,519.767 1022.865,519.047 1022.773,518.483 1022.773,517.343 1022.955,516.796 1023.139,516.331 1023.777,515.584 1023.959,515.119 1024.141,514.099 1023.867,511.958 1023.594,510.956 1023.411,510.153 1022.318,508.786 1022.046,507.985 1021.863,507.201 1022.046,505.451 1021.681,504.703 1021.407,504.13 1020.221,503.42 1019.95,502.862 1019.676,502.389 1019.221,501.286 1019.404,500.776 1019.585,500.011 1021.226,499.182 1021.955,498.771 1022.866,498.261 1024.78,497.441 1025.783,497.259 1026.692,497.085 1028.608,497.239 1029.519,497.331 1030.155,497.403 1031.43,497.823 1032.069,497.813 1032.617,497.802 1033.8,497.695 1034.256,497.331 1034.44,497.185 1034.621,496.894 1034.804,496.584 L 1043.643,500.056 1048.472,503.474 1059.77,495.892 1061.502,500.486 1066.787,499.199 1067.06,502.518 1074.896,501.232 1075.808,505.295 1083.008,502.462 1084.01,506.626 1081.73,508.284 1087.107,511.755 1089.66,515.064 1087.563,519.657 1083.917,519.446 1084.92,523.767 1099.681,523.284 V 526.09 L 1101.415,525.772 1102.689,523.046 1113.805,523.393 1114.171,521.342 1120.913,521.287 1123.282,522.526 1118.725,523.967 1125.195,527.493 1127.84,531.495 1127.747,537.024 1133.215,536.786 1132.85,538.027 1129.846,538.829 1131.848,543.995 1137.952,542.272 1141.597,547.793 C 1141.597,547.793 1142.145,549.088 1142.6,549.242 1142.783,549.317 1143.33,549.096 1143.512,548.961 1143.784,548.769 1144.058,548.113 1144.241,547.921 1144.514,547.73 1145.152,547.457 1145.515,547.475 1145.79,547.503 1146.335,547.895 1146.61,548.078 1146.975,548.334 1147.611,548.971 1147.886,549.243 1148.343,549.536 1149.07,550.155 1149.527,550.366 1149.799,550.512 1150.438,550.728 1150.8,550.72 1151.165,550.72 1151.714,550.31 1151.987,550.366 1152.259,550.401 1152.624,550.757 1152.807,550.919 1153.262,551.367 1153.901,552.452 1154.353,552.925 1155.083,553.783 1156.726,555.366 1157.636,556.134 1158.091,556.553 1158.912,557.7 1159.548,557.727 1159.822,557.746 1160.278,557.345 1160.461,557.173 1160.644,556.916 1160.916,556.152 1161.281,555.969 1161.645,555.778 1162.466,555.906 1162.828,555.886 1163.284,555.87 1164.287,555.714 1164.743,555.807 1165.014,555.878 1165.655,556.108 1165.836,556.37\",\"name\":\"Запорізька область\"},\"26\":{\"path\":\"M399.07,429.11l-4.757,2.005s-0.136,1.485-0.155,1.978c-0.044,1.112-0.09,3.326,0,4.438,0.092,1.13,0.629,3.352,0.748,4.482,0.127,1.285,0.1,3.882,0.155,5.176,0.056,1.194,0.073,3.581,0.273,4.757,0.109,0.655,0.774,1.895,0.748,2.56-0.028,0.475-0.356,1.44-0.703,1.769-0.446,0.419-1.73,0.773-2.342,0.746-1.038-0.054-2.833-1.266-3.799-1.657-0.765-0.31-2.269-1.094-3.089-1.176-1.011-0.1-3.062,0.291-4.009,0.646-1.595,0.584-4.41,2.561-5.823,3.516-1.303,0.895-3.892,2.745-5.021,3.846-0.819,0.811-2.124,2.752-2.88,3.627-0.574,0.665-1.731,1.995-2.406,2.569-0.574,0.492-2.022,1.131-2.504,1.705-0.529,0.628-0.867,2.323-1.34,2.998-0.355,0.511-1.321,1.321-1.814,1.703-0.646,0.511-2.141,1.241-2.778,1.76-0.712,0.592-1.741,2.241-2.561,2.669-0.492,0.265-1.659,0.22-2.188,0.384-0.437,0.126-1.33,0.437-1.658,0.737-0.856,0.802-1.695,3.079-2.241,4.118-0.692,1.303-2.214,3.846-2.726,5.231-0.309,0.838-0.728,2.588-0.801,3.472-0.064,0.765,0.054,2.295,0.209,3.044,0.137,0.6,0.592,1.75,0.857,2.295,0.381,0.794,1.604,2.142,1.822,2.99,0.227,0.919-0.082,2.851-0.218,3.799-0.164,1.139-0.665,3.399-1.067,4.482-0.391,1.04-1.63,2.927-2.086,3.948-0.201,0.464-0.574,1.547-0.829,2.275-0.165-0.036-0.311-0.063-0.446-0.081-0.584-0.09-1.832,0.119-2.351-0.163-0.638-0.337-1.331-1.714-1.769-2.295-0.5-0.677-1.558-1.99-1.968-2.727-0.383-0.665-0.737-2.195-1.176-2.836-0.52-0.736-1.986-1.858-2.67-2.449-0.838-0.721-2.642-1.997-3.416-2.779-0.384-0.374-1.059-1.202-1.34-1.648-0.483-0.785-1.203-2.471-1.549-3.317-0.31-0.766-0.766-2.37-1.065-3.153-0.265-0.682-0.757-2.104-1.176-2.715-0.11-0.155-0.373-0.446-0.538-0.538-0.063-0.037-0.145-0.073-0.236-0.109,0.044-0.856,0.118-2.396,0.136-3.043,0.009-0.712-0.229-2.16,0-2.825,0.208-0.638,1.267-1.558,1.594-2.144,0.302-0.516,0.885-1.638,0.913-2.241,0.027-0.573-0.393-1.703-0.692-2.184-0.337-0.539-1.349-1.35-1.814-1.77-0.802-0.711-2.396-2.161-3.318-2.715-0.519-0.32-1.711-0.657-2.241-0.967-0.292-0.164-0.957-0.481-1.066-0.802-0.108-0.3,0.201-0.928,0.32-1.229,0.209-0.519,0.802-1.485,1.066-1.968,0.263-0.483,0.983-1.385,1.075-1.922,0.091-0.592-0.337-1.778-0.484-2.352-0.172-0.664-0.591-1.968-0.801-2.624-0.346-1.057-1.003-3.189-1.439-4.21-0.284-0.656-0.958-1.913-1.34-2.515-0.428-0.665-1.449-1.867-1.923-2.506-0.354-0.491-1.065-1.467-1.384-1.976-0.265-0.421-0.511-1.523-0.966-1.713-0.291-0.119-0.92,0.217-1.221,0.318-0.583,0.201-1.804,0.547-2.25,0.966-0.255,0.247-0.355,1.057-0.638,1.285-0.328,0.265-1.23,0.383-1.659,0.375-0.701-0.019-2.087-0.438-2.725-0.747-0.865-0.438-2.524-1.567-3.088-2.352-0.456-0.621-0.766-2.159-1.021-2.888-0.182-0.53-0.646-1.578-0.747-2.133-0.063-0.355-0.119-1.103,0-1.439,0.191-0.564,1.167-1.35,1.44-1.878,0.21-0.391,0.538-1.256,0.538-1.704,0-0.446-0.429-1.275-0.538-1.703-0.128-0.556-0.036-1.787-0.365-2.251-0.272-0.365-1.166-0.766-1.603-0.848-0.475-0.101-1.45,0.063-1.923,0.155-0.529,0.1-1.549,0.419-2.032,0.638-0.566,0.255-1.531,1.158-2.133,1.284-0.474,0.11-1.44-0.236-1.922-0.208-0.274,0.009-0.848,0.055-1.076,0.208-0.273,0.192-0.555,0.849-0.747,1.122-0.283,0.419-0.784,1.331-1.166,1.659-0.292,0.236-0.975,0.684-1.34,0.638-0.356-0.036-0.984-0.575-1.121-0.903-0.319-0.738,0.137-2.415,0.265-3.208,0.082-0.492,0.41-1.43,0.483-1.922,0.055-0.393,0.218-1.24,0.055-1.604-0.201-0.41-1.048-0.885-1.44-1.122-0.593-0.346-1.896-0.765-2.515-1.065-0.702-0.336-2.161-0.957-2.726-1.495-0.291-0.282-0.729-1.002-0.856-1.386-0.137-0.455-0.1-1.402-0.1-1.875,0-0.657,0.109-1.96,0.155-2.616,0.036-0.482,0.145-1.439,0.164-1.923,0.018-0.382,0.264-1.256,0-1.549-0.383-0.418-1.686-0.191-2.242-0.209-0.656-0.028-1.968,0.055-2.616,0.055-0.556-0.009-1.695,0.164-2.195-0.055-0.319-0.145-0.738-0.748-0.958-1.021-0.473-0.584-1.312-1.842-1.658-2.505-0.3-0.584-0.602-1.905-0.957-2.461-0.227-0.347-0.875-0.884-1.175-1.167-0.419-0.411-1.258-1.229-1.714-1.604-0.291-0.246-0.947-0.729-1.448-1.093l1.585-4.92,1.321-5.641,3.126-0.884,0.036-2.807-1.723-3.199,2.524-7.335,6.89-5.969v-2.241l6.25-3.6,5.122,2.078,3.891-0.756,6.807,0.237,2.041-1.439,3.281,1.476,3.762,0.966,4.576-0.802,4.802-1.923,2.807-1.558h2.925l0.956,2.607,3.089-0.283,1.121-5.887-0.602-1.203-7.536-1.121-0.236-3.243-2.406-2.087,2.205-3.281,3.326,1.64,2.041-3.407,0.283-3.727-1.404-3.043,3.327-3.646-1.121-1.995,2.323-5.249,4.165-0.438,0.603,3.646,1.321,0.675,3.445-1.003,10.178,3.981-0.292,4.794,2.569,5.075,1.649,12.921s1.394,0.784,1.869,1.012c0.702,0.338,2.123,0.931,2.833,1.229,0.465,0.192,1.586,0.33,1.868,0.748,0.137,0.2,0.11,0.748,0,0.966-0.2,0.374-1.057,0.747-1.439,0.958-0.794,0.428-2.57,0.929-3.309,1.438-0.455,0.311-1.348,1.048-1.548,1.549-0.192,0.456-0.1,1.495,0,1.979,0.118,0.601,0.583,1.758,0.956,2.241,0.402,0.528,1.541,1.284,2.086,1.658,0.557,0.383,1.796,0.975,2.352,1.386,0.547,0.41,1.694,1.266,2.023,1.867,0.201,0.383,0.301,1.276,0.265,1.714-0.018,0.292-0.11,0.975-0.374,1.12-0.237,0.137-0.83-0.119-1.066-0.264-0.364-0.228-0.729-1.157-1.122-1.34-0.328-0.154-1.084-0.074-1.439,0-0.373,0.083-1.011,0.565-1.384,0.639-0.42,0.091-1.304-0.173-1.713-0.046-0.301,0.091-0.939,0.438-1.012,0.748-0.119,0.437,0.501,1.266,0.747,1.648,0.219,0.356,0.749,1.022,1.067,1.286,0.337,0.292,1.185,0.647,1.549,0.911,0.492,0.346,1.412,1.148,1.813,1.604,0.411,0.455,0.912,1.63,1.385,2.022,0.666,0.556,2.36,1.047,3.153,1.394,0.71,0.292,2.278,0.647,2.833,1.167,0.311,0.301,0.585,1.157,0.748,1.549,0.21,0.501,0.684,1.495,0.748,2.032,0.072,0.647-0.401,1.923-0.32,2.562,0.055,0.472,0.383,1.411,0.693,1.767,0.302,0.347,1.14,0.875,1.604,0.903,0.355,0.027,1.056-0.31,1.33-0.528,0.3-0.246,0.593-1.013,0.856-1.286,0.257-0.264,0.811-0.884,1.176-0.855,0.438,0.036,1.112,0.81,1.23,1.229,0.118,0.456-0.328,1.375-0.483,1.813-0.101,0.292-0.483,0.82-0.483,1.12,0,0.42,0.282,1.349,0.647,1.55,0.311,0.183,1.076-0.255,1.44-0.209,0.61,0.074,1.767,0.619,2.296,0.957,0.638,0.418,1.641,1.612,2.241,2.086,0.493,0.392,1.504,1.148,2.087,1.385,0.301,0.129,0.966,0.364,1.275,0.274,0.439-0.137,1.012-0.921,1.286-1.285,0.22-0.3,0.446-1.049,0.693-1.34,0.155-0.165,0.52-0.51,0.747-0.529,0.437-0.045,1.267,0.465,1.604,0.748,0.355,0.292,0.856,1.084,1.066,1.494,0.32,0.601,0.583,1.968,0.912,2.561,0.246,0.473,0.883,1.358,1.276,1.713,0.464,0.419,1.549,1.075,2.141,1.285,0.582,0.2,1.877,0.092,2.451,0.319,0.455,0.173,1.331,0.711,1.604,1.121,0.483,0.712,0.656,2.506,0.748,3.363,0.062,0.583-0.147,1.777,0,2.352,0.272,1.084,1.429,3.079,2.131,3.954,0.22,0.16,0.47,0.41,0.75,0.67\",\"name\":\"Івано-Франківська область\"},\"32\":{\"path\":\"M655.83,179.6l-3.17-3.8c0.009,0,0.009,0.008,0.018,0.008,0.345,0.128,1.121-0.182,1.439-0.373,0.511-0.31,1.083-1.478,1.603-1.758,0.411-0.238,1.396-0.365,1.869-0.329,0.693,0.054,1.951,0.701,2.615,0.857,0.356,0.082,1.102,0.336,1.44,0.209,0.282-0.092,0.629-0.611,0.801-0.849,0.447-0.609,0.994-2.022,1.45-2.615,0.5-0.684,1.758-1.85,2.396-2.405,0.729-0.629,2.323-1.723,3.097-2.296,0.776-0.575,2.343-1.705,3.099-2.297,0.411-0.32,1.139-1.102,1.603-1.341,0.512-0.253,1.668-0.509,2.243-0.528,0.446-0.018,1.476-0.082,1.759,0.264,0.346,0.43-0.137,1.642-0.101,2.188,0.054,0.939,0.22,2.852,0.638,3.691,0.282,0.555,1.157,1.53,1.704,1.813,0.82,0.419,2.725,0.446,3.636,0.483,0.419,0.009,1.256,0.009,1.658-0.109,0.566-0.184,1.521-0.912,2.023-1.232,0.528-0.337,1.932-1.274,2.142-1.274s2.569-0.264,3.417-0.429c0.419-0.083,1.312-0.172,1.659-0.428,0.292-0.228,0.492-1.011,0.747-1.286,0.283-0.318,0.965-0.911,1.385-1.01,0.71-0.173,2.159,0.364,2.889,0.482,1.486,0.228,4.51,0.483,5.977,0.848,0.757,0.192,2.188,0.838,2.934,1.066,0.593,0.191,1.961,0.209,2.407,0.647,0.428,0.411,0.392,1.776,0.691,2.296,0.311,0.547,1.24,1.44,1.713,1.869,0.501,0.456,1.95,0.965,2.188,1.603,0.146,0.383-0.311,1.194-0.374,1.604-0.101,0.594-0.155,1.795-0.209,2.397-0.083,0.765-0.402,2.287-0.328,3.043,0.054,0.528,0.31,1.613,0.647,2.032,0.328,0.41,1.339,0.839,1.814,1.067,0.509,0.254,1.594,0.664,2.132,0.855,0.61,0.21,1.85,0.547,2.458,0.748,0.52,0.173,1.614,0.446,2.079,0.747,0.438,0.283,1.04,1.167,1.45,1.494,0.3,0.255,0.947,0.748,1.33,0.857,0.182,0.054,0.539,0.109,0.784,0.063l-0.538,2.325c-0.391-0.21-0.939-0.393-1.257-0.411-0.683-0.037-1.959,0.775-2.644,0.72-0.292-0.027-0.784-0.356-1.047-0.483-0.527-0.264-1.513-0.965-2.077-1.12-0.565-0.156-1.741-0.092-2.324-0.083-0.72,0.019-2.215,0.512-2.88,0.248-0.4-0.165-0.72-1.158-1.121-1.286-0.473-0.146-1.44,0.547-1.932,0.483-0.427-0.064-1.093-0.757-1.521-0.884-0.456-0.136-1.559-0.4-1.922-0.082-0.355,0.318-0.382,1.503-0.155,1.922,0.409,0.766,2.305,1.229,3.044,1.686,0.602,0.375,1.659,1.358,2.323,1.604,0.528,0.191,1.732,0,2.241,0.237,0.63,0.29,1.86,1.248,2.005,1.922,0.155,0.738-1.039,2.049-1.121,2.806-0.09,0.802,0.365,2.396,0.474,3.199,0.092,0.583,0.192,1.75,0.33,2.324,0.127,0.574,0.828,1.667,0.72,2.241-0.101,0.537-0.912,1.394-1.368,1.685-0.593,0.383-2.033,0.602-2.716,0.72-1.057,0.174-3.262-0.082-4.255,0.32-0.428,0.181-1.267,0.766-1.439,1.202-0.154,0.418-0.055,1.431,0.245,1.759,0.311,0.364,1.377,0.392,1.842,0.483,0.629,0.136,1.949,0.173,2.559,0.401,0.885,0.328,2.535,1.339,3.209,2.005,0.765,0.766,1.858,2.697,2.323,3.681,0.357,0.766,0.993,2.36,1.04,3.207,0.072,1.267-0.612,3.773-1.04,4.966-0.309,0.831-1.357,2.296-1.686,3.126-0.236,0.593-0.264,1.959-0.638,2.479-0.236,0.328-0.985,0.755-1.367,0.884-0.51,0.172-1.749-0.2-2.16,0.164-0.292,0.255-0.446,1.148-0.319,1.513,0.127,0.382,0.957,0.729,1.202,1.047,0.275,0.355,0.839,1.156,0.794,1.604-0.046,0.591-1.257,1.348-1.44,1.922-0.155,0.511-0.237,1.723,0.081,2.16,0.365,0.492,1.896,0.364,2.326,0.802,0.528,0.538,0.81,2.141,0.965,2.879,0.191,0.984,0.008,3.053,0.32,4.01,0.318,1.002,1.293,2.998,2.159,3.599,0.62,0.437,2.215,0.493,2.961,0.565,0.621,0.055,1.997,0.375,2.488,0,0.492-0.383,0.72-1.786,0.638-2.406-0.118-0.912-1.54-2.323-1.841-3.198-0.327-0.957-0.52-2.998-0.564-4.01-0.055-1.439-0.083-4.383,0.327-5.769,0.319-1.085,1.722-2.916,2.242-3.918,0.402-0.792,1.295-2.341,1.44-3.207,0.208-1.23-0.502-3.727-0.402-4.966,0.074-0.949,0.584-2.789,0.885-3.691,0.209-0.638,0.875-1.822,1.039-2.479,0.2-0.818,0.391-2.523,0.317-3.362-0.063-0.646-0.709-1.841-0.718-2.488-0.01-0.2,0.026-0.446,0.082-0.71l1.521,0.026h1.604l1.12,0.73-0.52,5.367,2.479,6.607,1.441,0.875h3.408l0.838,2.806,0.163,4.365-1.048,0.566-2.241-1.522-2.16,4.044,3.526,0.52,2.078,0.838,2.043-0.365,0.847,0.329,0.2,1.558,1.923,1.24,2.516,0.127,4.729-0.565,4.246-1.039,3.289-1.084,1.158,0.118,0.838,1.003,0.117,1.167,1.889,1.521,1.722,1.403,0.237,1.076-0.604,1.203,0.65,0.437,0.8,0.484,0.601,3.125,0.803,3.363-0.364,1.722-1.368,0.438-2.359,0.328,0.082,1.322,0.685,1.402,0.282,1.312,1.273-0.474,1.485-0.52,3.163,3.399,3.928,0.046,4.119-0.365,3.727,0.483,3.727-0.519,3.481,0.355,2.77,1.167,1.075-1.203,1.405-1.404,7.088-0.355,0.601-1.969,4.328-3.645,6.005,2.242,0.684,4.811,6.37,1.039,2.242,2.241-7.856,4.093,4.493,7.244,3.766,0.036-4.293,6.771,5.969-0.154-1.222,10.761-0.956-0.483-2.562,4.22-3.097-2.324-4.165,9.769-2.133,2.087-0.27,2.09,2.854,2.724,1.574,0.456-7.097,3.446-1.229,5.795-2.059-0.19s-0.948,0.947-1.205,1.311c-0.309,0.457-0.774,1.486-0.983,2.005-0.173,0.428-0.519,1.293-0.537,1.758-0.01,0.301,0.374,0.902,0.245,1.175-0.138,0.284-0.828,0.447-1.12,0.565-0.255,0.101-0.866,0.109-1.05,0.319-0.235,0.263-0.173,1.048-0.263,1.384-0.108,0.402-0.564,1.549-0.564,1.549l-6.826-0.165s-0.676-0.665-0.755-0.957c-0.12-0.419,0.207-1.302,0.207-1.73,0.01-0.438,0.019-1.349-0.17-1.741-0.201-0.391-0.851-1.147-1.286-1.203-0.43-0.054-1.175,0.529-1.504,0.802-0.438,0.365-1.03,1.367-1.439,1.769-0.119,0.118-0.365,0.31-0.612,0.492,0.039-0.2,0.065-0.383,0.085-0.557,0.153-1.612-0.156-4.865-0.249-6.478-0.072-1.449-0.035-4.375-0.4-5.767-0.235-0.903-1.021-2.644-1.604-3.373-0.519-0.656-1.887-1.695-2.643-2.078-0.646-0.326-2.077-0.71-2.799-0.802-0.699-0.09-2.103,0.028-2.805,0.082-0.555,0.037-1.785-0.1-2.241,0.238-0.328,0.245-0.593,1.111-0.639,1.522-0.054,0.419,0.43,1.303,0.236,1.685-0.108,0.219-0.628,0.52-0.884,0.483-0.52-0.083-1.082-1.139-1.439-1.53-0.383-0.412-0.984-1.497-1.521-1.679-0.309-0.108-1.076-0.017-1.274,0.238-0.174,0.199-0.11,0.802,0,1.038,0.181,0.447,1.165,0.93,1.356,1.367,0.163,0.382,0.246,1.294,0.073,1.686-0.219,0.528-1.222,1.284-1.758,1.521-0.849,0.365-2.763,0.511-3.682,0.392-1.168-0.136-3.39-1.02-4.412-1.594-1.166-0.674-3.171-2.534-4.163-3.444-1.368-1.275-3.91-4.019-5.203-5.368-1.03-1.075-2.962-3.353-4.082-4.328-1.13-0.976-3.792-2.433-4.894-3.445-0.546-0.51-1.504-1.695-1.923-2.323-0.555-0.847-1.466-2.661-1.841-3.6-0.501-1.266-1.175-3.9-1.521-5.212-0.311-1.175-0.528-3.663-1.122-4.729-0.382-0.683-1.512-1.941-2.242-2.242-0.483-0.2-1.622-0.245-2.087,0-0.61,0.328-1.347,1.65-1.521,2.325-0.318,1.247,0.054,3.891,0.401,5.129,0.3,1.058,1.612,2.898,2.004,3.919,0.42,1.111,1.021,3.408,1.203,4.574,0.119,0.729-0.282,2.37,0.155,2.962,0.283,0.374,1.358,0.409,1.768,0.638,0.693,0.392,1.833,1.549,2.487,2.005,1.314,0.92,4.229,2.332,5.522,3.28,1.458,1.083,4.056,3.644,5.368,4.893,1.494,1.412,4.208,4.52,5.85,5.769,1.303,0.992,4.164,2.66,5.687,3.28,1.477,0.601,4.583,1.403,6.168,1.604,1.285,0.165,3.927,0.264,5.203,0,0.683-0.146,1.986-0.729,2.561-1.121,0.064-0.045,0.138-0.101,0.201-0.165l-0.392,6.17-7.701,2.159-1.64,1.723-0.874,7.573,1.275,1.922-0.119,5.485,0.839,2.89-5.559,7.845,1.395,2.324-2.961,4.127-7.527,7.008,1.157,2.124-0.557,1.285-5.686-0.246-0.082,1.841,1.557,3.491-6.44,3.479-5.933,1.522-4.164-3.598-1.287-0.201-0.162,0.72-1.04-0.046-1.677-1.358-1.048-0.118-6.689,2.679,1.287,2.041-0.521,0.802-3.964-4.046-1.767,0.847,1.649,3.199-3.09,1.768,1.805,5.048-0.282,1.195-3.563-0.037-0.921-1.805-9.613-2.242,0.201-5.886-5.804-0.046-3.327,0.802-3.645-0.355-5.076,2.377-0.819,4.647-1.449,1.148-0.483,4.593-1.996,1.968-6.306-1.094-2.779-3.963,0.593-0.091-0.11-2.24-3.946,0.054-1.021-1.713-0.108-4.802-3.792,0.474-6.033-8.483,6.516-4.703-6.352-15.172,2.079-2.297-2.297-3.143,0.318-5.34-3.361-1.604,0.912-3.308-1.55-5.185,7.956-3.581,6.733-5.977,8.803-4.483-7.364-9.13,3.627-4.01-1.01-2.934,2.613-1.44-2.131-4.12-2.405-0.318-0.803-2.78,2.451-5.067-2.605-2.568,1.704,0.164,0.319-5.449-9.56-7.736-3.791-7.854,3.627,0.208,2.141-3.361-2.461-1.869-0.801-2.506,2.515-2.086-0.583-1.713-3.426-2.341,0.054-2.617s1.696-1.093,2.298-1.394c1.057-0.537,3.352-1.221,4.382-1.813,0.912-0.529,2.716-1.731,3.363-2.56,0.465-0.602,1.083-2.032,1.176-2.779,0.09-0.738-0.365-2.205-0.484-2.943-0.054-0.319,0.083-1.13-0.209-1.274-0.282-0.146-0.828,0.473-1.121,0.582-0.627,0.236-1.949,0.639-2.624,0.647-0.683,0.008-2.022-0.355-2.669-0.593-0.446-0.164-1.367-0.555-1.704-0.902-0.237-0.255-0.72-0.92-0.584-1.23,0.156-0.401,1.203-0.437,1.596-0.591,0.501-0.191,1.503-0.557,1.977-0.803,0.364-0.182,1.211-0.482,1.384-0.847,0.228-0.465-0.063-1.558-0.264-2.032-0.265-0.647-1.513-1.568-1.705-2.242-0.146-0.51,0.164-1.569,0.21-2.086,0.046-0.493,0.164-1.978,0.164-1.978l-5.504-6.78-0.374-2.67,2.406-0.055,0.055-4,4.638-2.998-9.923-8.539-1.339,1.286-3.846-14.426,3.9-2.188,3.308,1.869,2.03-7.18z\",\"name\":\"Київська область\"},\"35\":{\"path\":\"M882.63,511.41c-0.318-0.093-0.737-0.41-0.975-0.54-0.547-0.312-1.667-0.919-2.123-1.366-0.263-0.263-0.581-0.995-0.837-1.275-0.146-0.174-0.456-0.582-0.684-0.602-0.457-0.046-1.177,0.729-1.605,0.921-0.519,0.236-1.62,0.52-2.158,0.72-0.548,0.199-1.65,0.609-2.16,0.884-0.257,0.137-0.803,0.399-0.966,0.639-0.192,0.3-0.292,1.047-0.273,1.401,0.017,0.766,0.639,2.206,0.711,2.962,0.063,0.51,0.191,1.588-0.037,2.05-0.137,0.283-0.692,0.685-1.002,0.794-0.602,0.219-1.923,0.072-2.561,0.044-0.364-0.018-1.158,0.064-1.441-0.162-0.309-0.256-0.227-1.213-0.48-1.523-0.221-0.264-0.857-0.653-1.204-0.637-0.355,0.019-0.874,0.646-1.203,0.8-0.684,0.321-2.177,0.695-2.914,0.839-0.513,0.102-1.577,0.02-2.051,0.24-0.219,0.106-0.547,0.498-0.72,0.683-0.255,0.281-1.085,0.855-0.921,1.202,0.191,0.401,1.321,0.073,1.758,0.081,0.657,0.011,1.959-0.036,2.606-0.046,0.429,0,1.331-0.227,1.686,0,0.282,0.183,0.502,0.912,0.556,1.24,0.037,0.191,0.082,0.619-0.034,0.765-0.239,0.301-1.096,0.402-1.488,0.448-0.627,0.055-1.887-0.229-2.522-0.246-0.565-0.021-1.777-0.202-2.276,0.079-0.321,0.175-0.806,1.205-0.806,1.205l1.205,1.276s-3.481,10.733-3.362,10.733c-0.138,0.01-3.893,0.046-3.893,0.046l-4.445-1.887-9.57,4.129-2.403-4.85-3.043,0.365-3.245,2.314-2.278,3.444-3.564,0.803-1.046-1.276,0.2-2.287-2.444-4.884-8.929,1.402,0.118,2.277-0.883,1.05-7.006-0.129,1.885-2.277,0.354-4.41,2.206-1.24-1.403-1.119,0.482-1.04-2.441-3.681-0.318-1.97-1.887,0.485-3.645-3.292-1.523-5.805,3.929-1.521-2.561-3.964-3.044,0.201-2.169-1.805-1.724,0.601-2.12-2.004-1.925,1.24-0.035,1.603-3.528,2.041-2.961-0.119,1.442-2.996-0.12-1.522-5.332,0.354-1.84-1.521,0.884-1.757-10.18,0.552-3.563-4.279,1.004-1.924-2.278-2.643-4.895,0.52s-0.481-2.068-1.073-2.204c-0.237-0.056-0.529,0.547-0.767,0.601-0.646,0.173-2.112-0.347-2.679,0-0.155,0.1-0.183,0.528-0.327,0.646-0.146,0.128-0.619,0.091-0.757,0.238-0.364,0.399-0.402,2.122-0.402,2.122l-7.526,3.764-2.442-1.677-12.383,0.155-3.963,1.758-2.76,0.209-1.442,3.234s-0.865-0.817-1.165-1.072c-0.593-0.521-1.759-1.642-2.479-1.969-0.711-0.311-2.306-0.466-3.089-0.521-0.894-0.054-2.725-0.1-3.6,0.119-0.475,0.129-1.349,0.621-1.768,0.884-0.255,0.163-0.784,0.421-1.12,0.711-0.766,0.484-2.087,0.393-2.644,0.31-0.737-0.127-2.131-0.691-2.853-0.883-0.702-0.192-2.15-0.493-2.888-0.51-0.382-0.01-1.139,0.138-1.514,0.19-0.92,0.127-2.715,0.583-3.636,0.583-0.875,0-2.632-0.246-3.443-0.556-0.658-0.265-1.823-1.094-2.351-1.549-0.793-0.691-2.17-2.306-2.752-3.181-0.521-0.791-1.23-2.569-1.66-3.417-0.246-0.51-1.01-2.031-1.01-2.031l-1.787-0.208-0.109,4.262-3.762,0.082-2.151-3.135-3.062,0.091-0.182-2.905-2.989-2.296,8.494-11.272-0.593-2.562,2.459-2.079,3.253,1.596,2.461-3.627,1.175-0.911-0.018-0.138,4.983-1.676,1.121,0.664,1.23,5.505,5.314-6.543,4.774,2.644,13.669-10.598s1.64,1.176,2.25,1.467c0.583,0.283,1.832,0.729,2.478,0.802,0.656,0.063,1.987-0.073,2.607-0.282,0.427-0.147,1.366-0.511,1.557-0.921,0.128-0.273-0.062-0.929-0.2-1.203-0.291-0.61-1.412-1.477-1.804-2.042-0.365-0.529-1.149-1.639-1.193-2.286-0.046-0.51,0.474-1.486,0.673-1.959,0.22-0.511,0.557-1.64,1.003-1.958,0.218-0.156,0.784-0.201,1.047-0.165,0.265,0.045,0.712,0.374,0.958,0.483,0.201,0.091,0.593,0.355,0.803,0.319,0.291-0.046,0.811-0.484,0.919-0.757,0.2-0.501-0.128-1.604-0.236-2.132-0.146-0.657-0.693-1.896-0.849-2.56-0.118-0.556-0.482-1.75-0.272-2.278,0.155-0.42,0.946-0.93,1.322-1.167,0.756-0.473,2.459-1.103,3.315-1.358,0.766-0.237,2.333-0.61,3.126-0.646,0.902-0.027,2.715,0.164,3.562,0.446,0.667,0.219,1.814,1.067,2.453,1.357,0.392,0.184,1.203,0.547,1.64,0.603,1.057,0.145,3.181-0.273,4.247-0.366,0.763-0.053,2.304-0.264,3.078-0.237,0.811,0.028,2.425,0.257,3.208,0.484,0.729,0.219,2.059,1.047,2.797,1.239,0.429,0.109,1.322,0.12,1.769,0.164,0.455,0.046,1.377,0.229,1.84,0.201,0.813-0.055,2.37-0.592,3.162-0.766,1.142-0.236,3.408-0.739,4.566-0.838,1.131-0.101,3.417-0.174,4.529,0.036,0.745,0.146,2.194,0.684,2.842,1.085,0.438,0.282,1.058,1.194,1.521,1.439,0.237,0.128,0.773,0.283,1.038,0.247,0.504-0.092,1.313-0.785,1.725-1.085,0.372-0.272,1.175-0.802,1.403-1.203,0.209-0.355,0.153-1.221,0.318-1.604,0.127-0.291,0.454-0.864,0.719-1.038,0.43-0.273,1.503-0.301,2.006-0.365,0.592-0.073,1.794-0.017,2.368-0.155,0.41-0.1,1.213-0.437,1.558-0.682,0.438-0.302,1.277-1.031,1.475-1.522,0.139-0.302,0.057-0.992,0.048-1.322-0.02-0.565-0.101-1.686-0.2-2.242-0.118-0.582-0.492-1.722-0.685-2.287-0.163-0.493-0.574-1.458-0.719-1.959-0.109-0.374-0.354-1.139-0.318-1.522,0.035-0.346,0.318-1.03,0.565-1.285,0.208-0.228,0.828-0.436,1.12-0.555,0.382-0.164,1.174-0.528,1.594-0.52,0.319,0.01,0.876,0.329,1.168,0.438,0.282,0.1,0.854,0.383,1.155,0.4,0.548,0.037,1.586-0.391,2.124-0.446,0.493-0.036,1.532-0.146,1.969,0.083,0.292,0.165,0.501,0.938,0.802,1.084,0.29,0.146,0.992,0.082,1.32,0,0.42-0.1,1.177-0.583,1.559-0.803,0.63-0.364,1.804-1.247,2.441-1.603,0.428-0.228,1.295-0.675,1.76-0.802,0.428-0.11,1.349-0.283,1.768-0.154,0.327,0.1,0.802,0.673,1.076,0.883,0.317,0.237,0.964,0.693,1.282,0.92,0.412,0.292,1.25,0.858,1.643,1.158,0.254,0.191,0.829,0.519,0.966,0.802,0.118,0.246,0.063,0.811,0.036,1.083-0.027,0.301-0.346,0.903-0.283,1.205,0.055,0.2,0.365,0.509,0.529,0.637,0.192,0.155,0.629,0.464,0.876,0.437,0.418-0.037,1.047-0.72,1.33-1.039,0.326-0.364,0.69-1.321,1.038-1.685,0.337-0.355,1.184-0.93,1.639-1.121,0.34-0.137,1.112-0.119,1.439-0.282,0.393-0.191,0.922-0.975,1.322-1.158,0.556-0.264,1.832-0.391,2.45-0.355,0.521,0.018,1.551,0.318,2.033,0.519,0.512,0.202,1.367,0.931,1.888,1.075,0.345,0.101,1.111,0.191,1.439,0.045,0.228-0.1,0.509-0.556,0.646-0.765,0.183-0.292,0.665-0.901,0.601-1.24-0.073-0.346-0.802-0.674-1.048-0.92-0.246-0.236-0.919-1.003-0.919-1.003l4.044-1.758,2.444-9.331,9.048-1.886,0.081,2.688,3.809,2.643,2.68-2.323,3.125,9.048,3.327-2.642,1.402-1.959,1.158,3.799,4.29,0.319,1.396-2.123,2.168,2.926,10.938-1.004-3.609-5.32,0.737-5.761c0.128-0.044,0.237-0.081,0.336-0.089,0.666-0.11,2.032-0.046,2.717-0.055,0.856-0.01,2.569,0.091,3.416,0,0.583-0.064,1.749-0.264,2.297-0.483,0.355-0.137,0.921-0.684,1.285-0.802,0.721-0.227,2.288-0.227,3.043-0.154,0.575,0.055,1.668,0.583,2.243,0.529,0.39-0.037,1.048-0.602,1.439-0.639,0.354-0.036,1.11,0.1,1.393,0.319,0.292,0.237,0.711,0.967,0.692,1.339-0.016,0.439-0.848,1.067-0.965,1.496-0.218,0.838,0.356,2.604,0.219,3.472-0.085,0.537-0.365,1.704-0.801,2.023-0.528,0.391-2.024-0.109-2.616,0.164-0.273,0.128-0.738,0.574-0.857,0.856-0.082,0.201-0.127,0.674,0,0.857,0.174,0.236,0.829,0.391,1.121,0.373,0.238-0.018,0.621-0.373,0.856-0.427,0.284-0.073,0.876-0.073,1.176-0.055,0.367,0.019,1.103,0.364,1.439,0.209,0.384-0.164,0.711-1.02,0.902-1.385,0.254-0.446,0.773-1.367,0.856-1.869,0.082-0.446-0.309-1.394-0.153-1.813,0.254-0.711,1.503-1.73,2.131-2.141,0.62-0.401,2.05-0.92,2.779-1.066,0.655-0.128,2.014-0.165,2.671-0.056,0.565,0.102,1.621,0.557,2.132,0.802,0.311,0.147,0.839,0.703,1.175,0.694,0.183,0,0.402-0.083,0.638-0.202l0.483,1.968-0.639,2.242-3.309-0.273,5.176,8.658,3.417,1.12,0.222-2.889,3.471,0.055,1.276,2.196,4.866,0.045,1.12,2.033,1.76,0.109,2.122-4.493c0.218,0.419,0.446,0.857,0.711,1.021,0.719,0.473,2.552,0.501,3.418,0.529,0.691,0.028,2.086-0.292,2.768-0.21,0.758,0.091,2.232,0.574,2.89,0.966,0.602,0.355,1.466,1.503,2.031,1.913,0.858,0.648,2.816,1.578,3.736,2.142,0.467,0.282,1.168,0.719,1.86,1.166l-0.073,2.789h-3.08l1.796,6.843-0.757,1.24-8.894-0.155s-0.975-0.62-1.122-0.966c-0.188-0.474,0.248-1.531,0.165-2.042-0.072-0.411-0.301-1.358-0.685-1.522-0.219-0.089-0.664,0.238-0.885,0.32-0.39,0.164-1.146,0.556-1.559,0.684-0.39,0.128-1.264,0.09-1.602,0.318-0.265,0.191-0.43,0.911-0.683,1.122-0.211,0.182-0.766,0.336-1.039,0.4s-0.866,0.009-1.12,0.118c-0.364,0.174-1.204,1.085-1.204,1.085l1.004,5.213,6.523-0.246,4.691,4.483,1.913,0.081,0.886,0.765-6.441,6.562-6.89,4.529s-1.35-1.577-1.96-1.841c-0.346-0.147-1.131-0.183-1.486-0.082-0.281,0.082-0.701,0.547-0.966,0.684-0.273,0.136-0.928,0.191-1.156,0.401-0.247,0.219-0.5,0.875-0.527,1.203-0.021,0.346,0.436,1.011,0.362,1.357-0.063,0.348-0.611,0.838-0.802,1.121-0.302,0.446-1.011,1.285-1.156,1.804-0.155,0.539,0,1.686,0.037,2.243,0.071,0.964,0.354,2.889,0.481,3.843,0.229,1.687,1.149,5.041,0.959,6.735-0.057,0.584-0.631,1.649-0.839,2.196-0.165,0.438-0.648,1.267-0.639,1.721,0.008,0.421,0.329,1.259,0.639,1.524,0.136,0.106,0.509,0.106,0.683,0.164,0.302,0.089,0.955,0.236,1.202,0.436,0.318,0.275,0.756,1.039,0.874,1.44,0.246,0.8,0.02,2.506,0.129,3.327,0.083,0.673,0.709,1.976,0.592,2.64-0.083,0.476-0.618,1.366-1.038,1.606-0.292,0.163-1.049-0.102-1.358,0.044-0.4,0.174-1.165,0.813-1.203,1.239-0.035,0.356,0.911,0.855,0.803,1.202-0.174,0.52-1.521,0.584-2.041,0.757-0.52,0.174-1.612,0.337-2.088,0.603-0.373,0.2-1.047,0.767-1.274,1.121-0.174,0.254-0.129,0.975-0.364,1.164-0.429,0.33-1.623,0.102-2.162,0.118-0.719,0.02-2.176-0.135-2.887,0-0.374,0.074-1.094,0.338-1.403,0.559-0.282,0.209-0.785,0.746-0.874,1.083-0.11,0.392,0.328,1.214,0.236,1.604-0.082,0.354-0.63,0.902-0.84,1.201-0.19,0.257-0.565,0.785-0.765,1.039-0.189,0.247-0.491,0.976-0.792,0.959-0.383-0.019-0.692-0.896-0.847-1.24-0.256-0.574-0.412-1.842-0.602-2.443-0.166-0.51-0.401-1.603-0.758-2.004-0.182-0.19-0.701-0.465-0.966-0.473-0.384-0.02-1.192,0.257-1.441,0.556-0.244,0.3-0.301,1.139-0.281,1.521,0.037,0.702,0.556,2.023,0.758,2.688,0.145,0.445,0.519,1.329,0.602,1.804,0.055,0.266,0.101,0.812,0.045,1.076-0.073,0.347-0.328,1.057-0.601,1.284-0.293,0.23-1.086,0.221-1.442,0.318-0.829,0.237-2.449,0.804-3.243,1.122-0.773,0.309-2.275,1.021-3.043,1.357-0.729,0.327-2.23,0.893-2.925,1.286-0.247,0.136-0.647,0.62-0.92,0.638-0.064,0.009-0.12,0-0.194-0.018\",\"name\":\"Кіровоградська область\"},\"09\":{\"path\":\"M1345.2,464.34c0,0.639,0.184,1.967,0,2.56-0.182,0.347-0.729,0.947-1.094,1.066-0.366,0.137-1.275-0.2-1.639-0.209-0.365-0.008-1.095-0.074-1.366,0.101-0.275,0.172-0.549,0.819-0.728,1.121-0.186,0.61-0.276,1.967-0.55,2.57-0.274,0.536-1.002,1.439-1.368,1.921-0.272,0.393-1.003,1.113-1.185,1.55-0.271,0.556-0.545,1.785-0.637,2.397-0.182,0.793-0.273,2.406-0.365,3.207-0.091,0.72,0,2.232-0.363,2.889-0.184,0.465-1.096,1.121-1.458,1.494-0.274,0.284-1.003,0.748-1.094,1.122-0.274,0.39-0.274,1.329-0.183,1.757,0.091,0.502,0.911,1.249,1.185,1.713,0.274,0.548,0.82,1.677,0.911,2.287,0.183,1.095-0.091,3.336-0.272,4.438-0.092,1.076-0.364,3.272-0.729,4.274-0.456,0.966-1.731,2.651-2.461,3.417-0.547,0.583-1.731,1.678-2.46,2.022-1.002,0.485-3.188,0.832-4.283,0.967-0.819,0.108-2.551,0.045-3.462,0.108-0.819,0.056-2.552,0.529-3.372,0.374-0.638-0.118-1.641-1.03-2.186-1.175-0.547-0.128-1.55-0.063-2.097,0-0.729,0.099-2.277,0.639-3.099,0.801-0.729,0.155-2.278,0.422-3.099,0.475-0.638,0.065-2.096,0.065-2.824,0-0.819-0.063-2.46-0.52-3.28-0.528-1.094-0.01-3.098,0.409-4.192,0.583-0.818,0.146-2.367,0.511-3.189,0.647-0.82,0.136-2.552,0.475-3.462,0.429-0.456-0.036-1.368-0.328-2.005-0.521l0.092-1.805-2.188-1.849,0.365-4.64,0.637-1.601-5.738-2.672-0.275-2.223-8.018-0.021-3.189,1.651-0.913-5.049-2.006-0.373,0.548-1.869,0.092-4.429s-2.825-0.866-3.827-1.064c-1.276-0.273-4.009-0.337-5.284-0.722-0.73-0.246-2.278-0.992-3.009-1.448-0.638-0.454-2.003-1.483-2.461-2.188-0.272-0.409-0.454-1.402-0.545-1.867-0.183-0.574-0.729-2.296-0.729-2.296l-6.652-2.588-2.915-0.026,0.091-6.033,2.644-1.257-0.912-1.869h-1.457l-2.188-2.587s-1.184-2.507-1.822-3.208c-0.183-0.253-0.729-0.765-1.002-0.857-0.365-0.09-1.003,0.056-1.275,0.164-0.547,0.165-1.824,1.04-1.824,1.04l-3.007-2.726,2.096-4.19s-0.728-1.058-1.001-1.332c-0.729-0.575-2.371-1.212-3.1-1.768-0.638-0.538-1.912-1.777-2.278-2.559-0.364-0.712-0.182-2.334-0.364-3.1-0.091-0.82-0.819-2.378-0.911-3.208-0.181-0.803-0.181-3.252-0.181-3.252l2.914-3.846-0.18-3.044-5.65-2.568,3.005-3.892-0.545-3.899s1.275-0.657,1.275-1.066c0-0.547-1.184-1.239-1.729-1.286-0.368-0.027-0.911,0.629-1.185,0.593-0.367-0.046-0.912-0.656-1.187-0.966-0.273-0.427-0.362-1.476-0.457-1.977-0.18-0.402-0.363-1.194-0.454-1.595,0-0.382,0.274-1.121,0.274-1.504-0.092-0.41-0.549-1.138-0.64-1.549-0.09-0.4,0.091-1.393-0.271-1.648-0.183-0.2-0.912,0.027-1.186,0.099-0.546,0.147-1.549,0.739-2.187,0.912-0.911,0.292-2.734,0.775-3.738,0.803-1.091,0.037-3.37-0.474-4.556-0.693-0.728-0.145-2.277-0.354-3.007-0.692-0.364-0.191-1.275-1.075-1.275-1.075l6.743-4.957s-1.64-2.206-2.095-2.999c-0.366-0.737-1.368-2.241-1.459-3.097,0-0.556,0.638-1.568,0.912-2.078,0.181-0.547,0.911-1.558,1.002-2.141,0.182-0.585,0.364-1.869,0.09-2.397-0.09-0.229-0.639-0.419-0.82-0.538-0.271-0.136-0.729-0.547-1.002-0.483-0.364,0.083-0.728,0.801-0.91,1.066-0.274,0.4-1.186,1.604-1.186,1.604l-5.65-1.814-2.005-1.176-0.91-6.086-3.098-1.139,1.64-2.441-0.09-4.375,3.645,1.896s0.636-0.555,0.73-0.802c0.088-0.272,0.088-0.884-0.093-1.147-0.093-0.328-0.638-0.802-1.003-0.993-0.455-0.283-1.549-0.5-2.005-0.72-0.545-0.218-1.639-0.593-1.912-1.012-0.273-0.292-0.455-1.075-0.548-1.439-0.273-1.094-0.91-3.289-1.093-4.411-0.089-0.664,0-2.031-0.182-2.696-0.093-0.594-0.548-1.723-0.73-2.297-0.271-0.565-0.82-1.641-0.909-2.242-0.091-0.766,0.273-2.314,0.454-3.07,0.091-0.61,0.274-1.969,0.638-2.424,0.273-0.255,1.003-0.292,1.368-0.456,0.273-0.155,0.817-0.501,1.002-0.775,0.182-0.229,0.273-0.811,0.182-1.039-0.089-0.219-0.637-0.329-0.82-0.428-0.273-0.137-1.091-0.228-1.184-0.511-0.183-0.272,0-0.965,0.093-1.229,0.271-0.346,1.091-0.71,1.545-0.847,0.547-0.218,1.823-0.218,2.37-0.428,0.457-0.155,1.368-0.52,1.549-0.884,0.365-0.51,0.365-1.84,0.456-2.461,0.183-0.574,0.274-1.722,0.456-2.295,0.092-0.475,0.092-1.532,0.454-1.869,0.275-0.274,1.276-0.073,1.55-0.347,0.185-0.2,0.273-0.829,0.273-1.121,0-0.373-0.089-1.122-0.273-1.467-0.273-0.793-1.366-2.161-1.823-2.834-0.454-0.511-1.093-1.75-1.731-1.95-0.453-0.128-1.457,0.765-1.729,0.429-0.366-0.419,0.728-1.495,0.818-2.032,0.183-0.492,0.093-1.576,0.274-2.051,0.091-0.282,0.547-0.837,0.82-0.965,0.182-0.084,0.637-0.019,0.819,0.054,0.365,0.119,0.728,0.803,1.093,0.803,0.364,0.008,0.822-0.584,1.094-0.803,0.273-0.264,0.91-0.875,1.186-1.148,0.364-0.346,1.184-1.021,1.64-1.275,0.364-0.193,1.366-0.183,1.457-0.539,0.092-0.182-0.182-0.564-0.363-0.691-0.456-0.402-1.823-0.447-2.458-0.666-0.275-0.128-1.097-0.374-1.277-0.648-0.274-0.3-0.729-1.157-0.548-1.548,0.093-0.237,0.729-0.31,0.82-0.5,0.182-0.229,0.182-0.938,0.365-1.122,0.272-0.228,1.094,0.009,1.456-0.081,0.275-0.072,0.912-0.264,1.004-0.511,0.273-0.573-0.092-1.967-0.275-2.587-0.181-0.51-0.637-1.468-1-1.896-0.366-0.565-1.822-1.284-2.097-1.949-0.092-0.272,0-0.938,0.091-1.376,0.456,0.156,1.366,0.1,1.822,0.018,0.729-0.155,2.097-0.855,2.734-1.285,0.819-0.52,2.097-1.913,2.734-2.561,0.364-0.346,1.184-0.956,1.457-1.394,0.365-0.72,0.457-2.397,0.639-3.198,0.091-0.748-0.093-2.26,0.091-2.998,0.089-0.593,0.362-1.85,0.728-2.296,0.365-0.365,1.367-0.693,1.822-0.792,0.548-0.12,1.641-0.028,2.097-0.056,0.549-0.037,1.641-0.328,2.187-0.218,0.274,0.064,0.911,0.336,1.003,0.592,0.456,0.638,0.456,2.314,0.547,3.089,0.183,0.72,0.092,2.215,0.363,2.888,0.183,0.384,0.64,1.149,1.096,1.34,0.455,0.255,1.731,0,2.277,0,0.638-0.009,1.913-0.055,2.551-0.055,0.639,0,1.914-0.245,2.461,0.055,0.455,0.274,0.912,1.449,1.185,1.922,0.272,0.393,0.729,1.404,1.185,1.541,0.274,0.091,0.82-0.284,1.094-0.42,0.638-0.337,1.73-1.265,2.277-1.658,0.822-0.555,2.552-1.777,3.464-2.087,0.547-0.154,1.549-0.118,2.095-0.154,0.729-0.055,2.187-0.456,2.825-0.164,0.638,0.282,1.367,1.522,1.639,2.141,0.276,0.52,0.185,1.74,0.457,2.242,0.547,0.901,2.277,2.15,3.007,2.825,0.639,0.537,1.824,1.722,2.644,2.031,0.454,0.22,1.641,0.22,2.278,0.264,0.911,0.073,2.825-0.246,3.736,0.164,0.272,0.119,0.546,0.621,0.728,0.857,0.365,0.446,0.821,1.421,1.094,1.922,0.364,0.647,0.821,2.078,1.275,2.67,0.274,0.356,0.911,1.067,1.275,1.175,0.549,0.11,1.552-0.345,2.005-0.537,0.912-0.364,2.552-1.395,3.372-1.868,0.911-0.52,2.825-1.44,3.646-2.087,0.637-0.427,1.548-1.54,2.096-2.022,0.365-0.328,1.002-1.202,1.46-1.23,0.636-0.045,1.638,0.838,2.002,1.23,1.003,0.801,2.371,2.871,3.098,3.791,0.73,0.766,2.006,2.397,2.826,2.989,0.455,0.301,1.458,0.71,2.004,0.856,0.455,0.137,1.549,0.137,2.005,0.264,0.729,0.191,2.096,0.984,2.825,1.122,0.457,0.091,1.367,0.091,1.822,0,0.548-0.109,1.459-0.692,2.005-0.857,0.456-0.127,1.274-0.419,1.731-0.373,0.639,0.063,1.73,0.812,2.278,1.02,0.455,0.174,1.55,0.456,2.005,0.529,0.729,0.092,2.004,0,2.734,0.055,0.455,0.037,1.366,0,1.821,0.264,0.364,0.292,0.729,1.303,0.818,1.767,0.274,0.729,0.55,2.287,0.731,3.044,0.18,0.784,0.545,2.388,1.001,3.099,0.272,0.592,1.276,1.612,1.823,2.022,0.455,0.32,1.367,0.747,1.914,0.966,0.547,0.246,1.64,0.674,2.186,0.901,0.64,0.293,1.914,0.866,2.552,1.185,0.637,0.283,1.823,1.021,2.458,1.222,0.551,0.191,1.916,0.191,2.463,0.319,0.729,0.136,1.915,0.71,2.552,0.747,0.729,0.046,2.095-0.137,2.732-0.418,0.729-0.365,1.915-1.65,2.553-2.252,0.455-0.473,1.274-1.547,1.821-2.022,0.549-0.529,1.55-1.668,2.188-1.977,0.457-0.201,1.459-0.265,1.915-0.265,0.453-0.01,1.276,0.155,1.73,0.21,0.639,0.081,1.913,0.228,2.552,0.319,0.456,0.063,1.275,0.09,1.73,0.273,0.548,0.273,1.55,1.139,1.824,1.704,0.18,0.301,0.272,1.039,0.09,1.339-0.181,0.302-0.821,0.602-1.185,0.639-0.272,0.028-0.729-0.347-1.003-0.264-0.454,0.154-1.001,1.184-1.274,1.594-0.548,0.793-1.731,2.351-2.096,3.263-0.274,0.602-0.457,1.915-0.364,2.562,0,0.746,0.637,2.159,0.91,2.832,0.455,0.976,1.823,2.717,2.461,3.628,0.727,1.22,2.37,3.653,3.099,4.911,0.453,0.82,1.367,2.478,1.639,3.372,0.273,0.619,0.456,1.914,0.548,2.56,0.09,0.792,0.273,2.396,0.273,3.207,0,0.529,0.272,1.623,0.091,2.133-0.364,0.902-1.822,2.196-2.46,2.935-0.819,1.101-2.735,3.244-3.463,4.438-0.638,0.893-1.55,2.806-2.006,3.79-0.272,0.684-0.548,2.188-1.002,2.824-0.274,0.593-1.366,1.477-1.822,2.034-0.548,0.854-1.276,2.915-2.004,3.689-0.456,0.546-1.822,1.385-2.461,1.65-0.82,0.282-2.46,0.228-3.189,0.428-0.547,0.127-1.548,0.5-2.004,0.746-0.364,0.219-1.002,0.93-1.458,1.067-0.64,0.191-1.914-0.109-2.552-0.055-0.729,0.082-2.277,0.456-3.098,0.703-0.638,0.2-2.096,0.492-2.46,1.066-0.274,0.4-0.185,1.485,0,1.922,0.181,0.381,0.908,1.029,1.274,1.176,0.273,0.11,1.002-0.01,1.277-0.111,0.362-0.108,0.909-0.764,1.274-0.746,0.455,0.018,1.093,0.684,1.366,0.966,0.548,0.427,1.276,1.512,1.823,1.967,0.729,0.738,2.46,2.014,3.188,2.725,0.729,0.665,2.279,1.969,2.826,2.779,0.275,0.346,0.363,1.239,0.637,1.549,0.637,0.593,2.277,1.076,3.008,1.44,0.82,0.383,2.279,1.349,3.098,1.548,0.729,0.173,2.277,0.127,3.008,0,0.455-0.09,1.549-0.383,2.003-0.747,0.366-0.319,0.549-1.285,0.819-1.713,0.093-0.319,0.274-1.085,0.549-1.275,0.273-0.165,0.911-0.045,1.184,0,0.274,0.044,0.911,0.163,1.188,0.374,0.363,0.3,0.636,1.204,0.727,1.649,0.091,0.593,0,1.813-0.091,2.406-0.092,0.729-0.272,2.214-0.636,2.833-0.366,0.52-1.369,1.25-1.916,1.605-0.546,0.419-1.823,1.174-2.551,1.44-0.729,0.281-2.278,0.583-3.098,0.691-0.729,0.109-2.46,0.483-3.189,0.164-0.638-0.264-1.275-1.549-1.731-2.031-0.365-0.411-1.095-1.268-1.549-1.55-0.366-0.191-1.183-0.592-1.552-0.429-0.544,0.264-0.727,1.695-1,2.243-0.274,0.546-0.912,1.621-1.184,2.132-0.455,0.638-1.459,1.787-1.822,2.46-0.184,0.52-0.551,1.623-0.639,2.196-0.09,0.776,0.181,2.36,0.181,3.144-0.093,0.739-0.363,2.205-0.638,2.888-0.271,0.575-1.001,1.559-1.366,2.079-0.366,0.574-1.276,1.658-1.55,2.295-0.18,0.491-0.273,1.558-0.273,2.087,0,0.557,0.184,1.686,0.457,2.188,0.272,0.656,1.275,1.84,1.913,2.187,0.454,0.292,1.731,0.401,2.278,0.374,0.73-0.019,1.913-0.556,2.552-0.584,0.819-0.037,2.369,0.091,3.097,0.428,0.822,0.402,2.279,1.769,2.734,2.562,0.455,0.665,0.912,2.223,1.094,2.988,0.184,0.857,0.184,2.616,0.366,3.472,0.179,0.856,0.545,2.587,1,3.363,0.364,0.702,1.367,1.941,1.913,2.459,0.456,0.429,1.642,1.004,2.189,1.332,0.364,0.255,1.276,0.666,1.638,1.021,0.184,0.2,0.456,0.691,0.55,0.956,0.089,0.356,0.18,1.149,0,1.45-0.275,0.336-1.187,0.428-1.55,0.582-0.457,0.201-1.64,0.438-2.005,0.858-0.275,0.382-0.366,1.431-0.366,1.923,0,0.518,0.274,1.612,0.548,2.032,0.364,0.445,1.457,1.111,2.004,1.12,0.545,0,1.369-0.938,1.914-1.075,0.457-0.11,1.458-0.11,1.914,0,0.363,0.108,1.183,0.511,1.457,0.801,0.364,0.355,0.911,1.276,1.003,1.769,1.3,0.89,1.2,2.65,1.2,3.53\",\"name\":\"Луганська область\"},\"46\":{\"path\":\"M380.54,266.74l4.045,0.865,0.119,2.406-3.718,1.924,0.201,10.05,12.092,14.379s0.228-0.255,0.592-0.638l1.567,4.027-2.879,9.769-3.526,3.152s-0.993,0.557-1.332,0.483c-0.41-0.091-0.992-0.802-1.175-1.174-0.218-0.438,0.055-1.559-0.272-1.922-0.138-0.156-0.593-0.229-0.794-0.219-0.519,0.027-1.458,0.501-1.921,0.701-0.401,0.165-1.13,0.692-1.55,0.748-0.455,0.045-1.32-0.382-1.768-0.374-0.848,0.009-2.478,0.61-3.308,0.793-0.893,0.209-2.843,0.219-3.581,0.755-0.437,0.311-0.984,1.339-1.066,1.868-0.11,0.729,0.409,2.178,0.637,2.88,0.174,0.537,0.912,2.086,0.912,2.086l-1.978,4.219-4.27,0.48-3.891,5.44-6.305,4.646-10.151,3.362,1.166,5.294-0.073,1.129-10.178-3.981-3.445,1.003-1.321-0.675-0.603-3.646-4.164,0.438-2.323,5.249,1.121,1.995-3.327,3.646,1.404,3.053-0.283,3.717-2.041,3.407-3.326-1.64-2.205,3.281,2.406,2.086,0.237,3.245,7.536,1.12,0.601,1.204-1.121,5.887-3.089,0.283-0.956-2.607h-2.925l-2.807,1.558-4.802,1.923-4.576,0.802-3.762-0.966-3.281-1.477-2.041,1.44-6.807-0.237-3.891,0.756-5.122-2.078-6.25,3.6v2.25l-6.89,5.96-2.524,7.335,1.723,3.199-0.036,2.807-3.126,0.884-1.321,5.641-1.585,4.92-0.702,2.168-8.247-1.605-2.925-4.282-4.364-2.396-4.329,0.155-5.804-7.563-7.527,1.677-2.169-6.971-3.444-4.164-0.919-4.202,4.327-2.286-6.643-7.117c0.501,0.008,1.038-0.029,1.358-0.129,0.51-0.172,1.53-0.792,1.758-1.285,0.355-0.774-0.019-2.604-0.319-3.407-0.337-0.903-1.622-2.387-2.241-3.117-0.429-0.51-1.559-1.295-1.841-1.886-0.218-0.456-0.146-1.514-0.246-2.006-0.091-0.455-0.254-1.412-0.52-1.794-0.255-0.394-1.066-0.903-1.439-1.167-0.328-0.237-1.14-0.52-1.368-0.839-0.282-0.401-0.41-1.431-0.4-1.922,0.017-0.701,0.428-2.077,0.683-2.724,0.264-0.675,1.129-1.851,1.367-2.525,0.229-0.675,0.41-2.096,0.475-2.807,0.182-1.904,0.082-5.741,0.127-7.645,0.036-1.723,0.183-5.166,0.2-6.889,0.009-1.148-0.036-3.425-0.044-4.574-0.009-0.684,0.31-2.169-0.038-2.762-0.191-0.309-0.938-0.591-1.284-0.719-0.419-0.155-1.313-0.327-1.759-0.355-0.41-0.036-1.375,0.392-1.649,0.073-0.246-0.292,0.219-1.149,0.328-1.522,0.265-0.92,0.793-2.825,1.358-3.599,0.948-1.294,3.791-2.961,5.011-4.01,0.958-0.819,2.815-2.523,3.718-3.398,1.303-1.276,3.827-3.9,5.048-5.249,2.261-2.479,6.571-7.609,8.775-10.133,1.204-1.387,3.563-4.21,4.839-5.531,2.479-2.56,7.882-7.227,10.379-9.769,1.303-1.331,3.708-4.182,5.002-5.532,1.057-1.093,3.227-3.234,4.365-4.246,0.93-0.811,2.88-2.315,3.846-3.08,1.531-1.221,4.538-3.717,6.133-4.848,2.296-1.622,7.171-4.464,9.531-6.005,1.367-0.901,4.019-2.815,5.404-3.69,0.546-0.336,1.832-0.784,2.242-1.275,0.419-0.511,0.62-1.869,0.847-2.488,0.338-0.929,0.875-2.889,1.476-3.681,0.319-0.411,1.194-0.993,1.641-1.24,0.492-0.264,1.531-0.701,2.087-0.765,0.765-0.082,2.279,0.319,3.043,0.402,1.211,0.137,3.626,0.556,4.848,0.482,0.519-0.027,1.549-0.263,2.041-0.438,0.729-0.265,2.068-1.075,2.761-1.403,0.911-0.437,2.88-1.048,3.69-1.64,0.329-0.246,0.848-0.902,1.077-1.248,0.564-0.83,1.366-2.661,1.803-3.564,0.411-0.847,1.376-2.486,1.568-3.408,0.182-0.902-0.082-2.76-0.119-3.682-0.063-1.284-0.09-3.862-0.329-5.119-0.2-1.122-1.165-3.218-1.357-4.33-0.1-0.601-0.127-1.831-0.082-2.442,0.045-0.51,0.375-1.494,0.401-2.004,0-0.082,0.009-0.182,0.009-0.291,0.375,0.692,0.766,1.476,0.912,1.896,0.272,0.782,0.3,2.514,0.638,3.28,0.273,0.602,1.157,1.603,1.604,2.087,0.855,0.902,2.824,2.432,3.763,3.244,1.84,1.585,5.622,4.638,7.335,6.368,0.246,0.248,0.564,1.067,0.92,1.077,0.457,0.018,0.958-0.957,1.276-1.276,0.365-0.365,1.048-1.121,1.45-1.449,0.438-0.356,1.321-1.267,1.877-1.24,0.409,0.028,0.946,0.766,1.247,1.049,0.338,0.309,1.121,0.883,1.277,1.32,0.09,0.237-0.127,0.748-0.073,0.994,0.082,0.51,0.529,1.495,0.875,1.886,0.291,0.328,1.084,0.747,1.485,0.92,0.757,0.338,2.407,0.646,3.199,0.884,0.702,0.2,2.214,0.364,2.761,0.838,0.265,0.228,0.483,0.92,0.61,1.239,0.256,0.692,0.301,2.269,0.757,2.844,0.201,0.254,0.92,0.354,1.121,0.601,0.246,0.311,0.375,1.129,0.401,1.521,0.063,0.793-0.21,2.379-0.319,3.172-0.092,0.638-0.546,1.914-0.483,2.56,0.037,0.356,0.52,1.322,0.52,1.322l3.163,1.402,4.573,2.607s0.165,1.467,0.155,1.958c0,0.402-0.282,1.222-0.155,1.604,0.11,0.336,0.638,0.912,0.958,1.076,1.357,0.692,4.546,0.811,6.05,0.602,0.328-0.045,0.939-0.337,1.24-0.474,0.464-0.228,1.266-0.911,1.758-1.048,0.329-0.091,1.03,0.045,1.366,0,0.62-0.082,1.787-0.573,2.406-0.683,0.484-0.082,1.476-0.219,1.959-0.118,0.347,0.072,0.957,0.492,1.285,0.646,0.52,0.246,1.585,0.721,2.123,0.957,0.365,0.164,1.193,0.355,1.476,0.639,0.283,0.291,0.602,1.484,0.602,1.484l0.483,4.802,3.26,0.73z\",\"name\":\"Львівська область\"},\"48\":{\"path\":\"M854.35,535.02c-0.119,0,3.362-10.733,3.362-10.733l-1.205-1.276s0.484-1.03,0.806-1.204c0.499-0.282,1.711-0.101,2.276-0.08,0.636,0.018,1.896,0.301,2.522,0.246,0.393-0.046,1.249-0.14,1.488-0.448,0.116-0.146,0.071-0.573,0.034-0.765-0.054-0.328-0.273-1.048-0.556-1.24-0.354-0.227-1.257,0-1.686,0-0.647,0.011-1.949,0.057-2.605,0.048-0.438-0.01-1.567,0.318-1.759-0.083-0.164-0.347,0.666-0.921,0.921-1.202,0.173-0.185,0.501-0.576,0.72-0.683,0.474-0.221,1.538-0.139,2.051-0.24,0.737-0.144,2.23-0.518,2.914-0.839,0.329-0.154,0.849-0.781,1.203-0.8,0.347-0.017,0.983,0.373,1.204,0.637,0.254,0.311,0.172,1.268,0.48,1.523,0.283,0.227,1.077,0.145,1.441,0.162,0.638,0.028,1.959,0.175,2.561-0.044,0.31-0.109,0.866-0.511,1.002-0.794,0.229-0.462,0.101-1.54,0.037-2.05-0.072-0.756-0.694-2.195-0.711-2.962-0.019-0.354,0.081-1.102,0.273-1.401,0.163-0.239,0.709-0.502,0.966-0.639,0.51-0.274,1.612-0.685,2.16-0.884,0.538-0.2,1.64-0.483,2.158-0.72,0.429-0.192,1.148-0.967,1.605-0.921,0.228,0.02,0.538,0.428,0.684,0.602,0.256,0.28,0.574,1.013,0.837,1.284,0.456,0.438,1.576,1.046,2.123,1.356,0.237,0.131,0.656,0.448,0.975,0.541l-0.838,3.817,0.613,7.954s0.728-0.036,0.965,0c0.263,0.037,0.837,0.137,1.039,0.319,0.181,0.153,0.437,0.638,0.4,0.885-0.036,0.198-0.566,0.608-0.566,0.608l2.344,3.738,0.035,1.922-1.796,0.884,1.321,6.123-5.766,4.41,0.517,6.806,1.678,6.134s1.284,0.474,1.731,0.591c0.363,0.11,0.946,0.257,1.504,0.366l3.254,6.325,2.567,9.375-4.527-0.082-2.89-5.685-2.314,1.365,3.035,7.764,3.691,0.246,1.356,4.237-2.24,2.169,0.208,4.246,2.114,5.083-4.046,2.607-6.359,0.237-3.892,7.49,3.928,4.966,7.208,4.812-3.601,4.64-4.256-1.878-1.795,2.88,3.683,1.521-0.083,2.688-9.768,3.243-0.155,1.604,5.998-0.081,2.285,2.76-17.523,3.7-1.657-4.939-3.9,1.678-2.406-2.435-4.857,0.065,1.147,3.654-4.327,0.638-2.132-2.242-4.384-0.026,0.218,5.267-6.414-4.093-3.198,2.78-2.188,2.323-0.19,2.615-4.374,3.098-2.269-3.152-6.954,1.331,3.556,6.414-1.239,0.866c-0.385-0.455-0.786-1.028-1.03-1.357-0.594-0.811-1.769-2.433-2.196-3.326-0.602-1.24-1.56-3.873-1.687-5.248-0.108-1.131,0.229-3.438,0.564-4.53,0.292-0.966,1.34-2.715,1.842-3.599,0.546-0.976,1.951-2.754,2.314-3.809,0.308-0.874,0.492-2.753,0.483-3.682,0-0.547-0.11-1.657-0.32-2.169-0.163-0.4-0.646-1.165-1.001-1.438-0.32-0.248-1.12-0.483-1.522-0.559-0.219-0.035-0.711,0.139-0.883,0-0.293-0.254-0.265-1.138-0.239-1.52,0.029-0.318,0.247-0.931,0.403-1.203,0.162-0.281,0.8-0.646,0.838-0.966,0.063-0.448-0.483-1.277-0.757-1.642-0.255-0.327-0.884-0.956-1.285-1.075-0.474-0.146-1.466,0.182-1.958,0.237-0.356,0.037-1.06,0.202-1.403,0.12-0.238-0.055-0.694-0.321-0.839-0.521-0.256-0.337-0.475-1.192-0.446-1.603,0.036-0.456,0.537-1.286,0.765-1.688,0.255-0.455,1.021-1.23,1.204-1.712,0.219-0.604,0.372-1.896,0.272-2.524-0.054-0.374-0.356-1.077-0.593-1.367-0.254-0.309-1.021-0.656-1.32-0.92-0.42-0.374-1.257-1.165-1.487-1.686-0.107-0.237,0.074-0.867-0.118-1.038-0.172-0.156-0.71-0.084-0.92,0-0.29,0.108-0.809,0.518-0.93,0.801-0.182,0.483-0.036,1.595,0.21,2.04,0.22,0.42,1.184,0.811,1.44,1.202,0.392,0.612,0.729,2.079,0.757,2.808,0.028,0.547-0.246,1.631-0.402,2.16-0.155,0.547-0.619,1.595-0.838,2.123-0.155,0.382-0.628,1.112-0.639,1.521-0.01,0.402,0.293,1.22,0.557,1.521,0.346,0.382,1.351,0.802,1.842,0.922,0.374,0.091,1.146,0.009,1.521,0.035,0.447,0.046,1.495-0.063,1.769,0.283,0.219,0.281-0.048,1.057-0.118,1.403-0.073,0.337-0.328,0.965-0.446,1.286-0.146,0.399-0.684,1.164-0.674,1.602,0,0.41,0.428,1.185,0.674,1.521,0.218,0.272,0.756,0.776,1.083,0.886,0.309,0.09,0.993-0.092,1.322-0.082,0.329,0,1.029-0.083,1.284,0.116,0.311,0.247,0.458,1.122,0.475,1.523,0.036,0.611-0.228,1.84-0.475,2.406-0.291,0.627-1.203,1.703-1.685,2.195-0.922,0.955-3.228,2.352-4.128,3.324-0.528,0.584-1.576,1.868-1.76,2.645-0.21,0.883,0.175,2.753,0.484,3.608,0.19,0.529,0.965,1.403,1.202,1.923,0.254,0.574,0.748,1.768,0.757,2.396,0.01,0.655-0.639,1.84-0.719,2.486-0.111,0.895,0.307,2.725,0.116,3.609-0.127,0.593-0.683,1.73-1.084,2.196-0.373,0.445-1.367,1.139-1.913,1.32-0.865,0.301-2.743,0.283-3.645,0.209-0.683-0.063-2.016-0.41-2.644-0.645-0.875-0.328-2.414-1.414-3.29-1.724-0.665-0.237-2.059-0.547-2.759-0.565-0.95-0.009-2.846,0.302-3.729,0.647-0.819,0.312-2.157,1.53-2.96,1.876-0.52,0.229-1.614,0.484-2.16,0.565-0.465,0.066-1.403,0.163-1.851,0.038-0.328-0.092-0.975-0.438-1.157-0.721-0.262-0.382-0.446-1.395-0.328-1.841,0.164-0.574,1.358-1.24,1.567-1.804,0.248-0.648-0.229-2.104,0-2.762,0.238-0.692,1.458-1.641,1.806-2.286,0.335-0.629,0.673-2.051,0.919-2.716,0.201-0.575,0.547-1.748,0.884-2.252,0.429-0.646,1.75-1.548,2.243-2.157,0.463-0.574,1.468-1.788,1.557-2.526,0.046-0.374-0.109-1.257-0.437-1.438-0.292-0.163-1.003,0.182-1.285,0.364-0.456,0.281-1.122,1.176-1.403,1.64-0.235,0.401-0.464,1.34-0.675,1.758-0.273,0.521-0.884,1.541-1.284,1.96-0.337,0.355-1.104,0.994-1.559,1.166-0.573,0.209-1.813,0.282-2.404,0.2-0.42-0.056-1.178-0.546-1.605-0.564-0.327-0.01-1.039,0.138-1.283,0.364-0.229,0.219-0.504,0.886-0.438,1.204,0.063,0.309,0.619,0.729,0.874,0.92,0.302,0.209,1.085,0.364,1.332,0.636,0.337,0.395,0.628,1.451,0.637,1.97,0.019,0.638-0.392,1.896-0.684,2.477-0.438,0.904-1.759,2.435-2.405,3.211-0.602,0.719-1.813,2.176-2.562,2.761-0.646,0.52-2.076,1.447-2.879,1.641-0.718,0.171-2.241,0-2.961-0.167-0.885-0.189-2.514-1.008-3.363-1.31-0.729-0.264-2.168-0.847-2.924-0.968-0.484-0.071-1.559,0.275-1.97,0-0.235-0.154-0.372-0.764-0.454-1.038-0.182-0.609-0.437-1.875-0.475-2.516-0.072-1.102-0.036-3.363,0.266-4.428,0.154-0.554,0.946-1.466,1.066-2.032,0.137-0.61,0.035-1.914-0.165-2.505-0.175-0.538-0.912-1.403-1.223-1.868-0.209-0.328-0.802-0.901-0.854-1.285-0.064-0.447,0.509-1.259,0.538-1.712,0.025-0.62-0.164-1.951-0.538-2.453-0.31-0.419-1.433-0.665-1.813-1.021-0.364-0.316-0.883-1.166-1.121-1.601-0.266-0.466-0.557-1.523-0.857-1.972-0.446-0.664-1.638-1.767-2.24-2.294-0.512-0.446-1.759-1.104-2.144-1.658-0.381-0.564-0.636-1.787-0.828-2.688l2.516-2.69s1.074-0.265,1.439-0.244c0.227,0.017,0.684,0.163,0.885,0.281,0.337,0.219,0.737,1.048,1.12,1.168,0.302,0.09,0.929-0.21,1.24-0.282,0.481-0.112,1.429-0.411,1.922-0.449,0.491-0.027,1.559,0.449,1.959,0.165,0.347-0.229,0.263-1.222,0.492-1.559,0.173-0.282,0.692-0.745,0.993-0.882,0.39-0.176,1.259-0.211,1.686-0.248,0.603-0.035,1.805,0.056,2.396,0,0.292-0.017,0.904-0.009,1.131-0.191,0.273-0.237,0.437-1.012,0.521-1.367,0.127-0.618,0.154-1.886,0.154-2.522,0-1.439-0.238-4.319-0.355-5.77-0.119-1.35-0.338-4.063-0.565-5.402-0.118-0.72-0.02-2.525-0.683-2.844-0.364-0.173-1.075,0.628-1.479,0.684-1.127,0.137-4.482-0.803-4.482-0.803v1.886l-5.33,1.111-0.719-2.796,4.728-3.607s0.311-0.712,0.355-0.958c0.082-0.463,0.138-1.449-0.037-1.888-0.127-0.309-0.616-0.829-0.918-0.965-0.548-0.238-1.787-0.173-2.37-0.074-0.483,0.084-1.457,0.411-1.843,0.722-0.29,0.236-0.607,0.946-0.835,1.239-0.164,0.2-0.43,0.72-0.685,0.765-0.482,0.082-1.267-0.765-1.723-0.966-0.318-0.135-1.002-0.3-1.32-0.438-0.547-0.236-1.706-0.693-2.125-1.121-0.246-0.255-0.565-0.93-0.638-1.283-0.082-0.402,0.201-1.249,0.082-1.641-0.108-0.338-0.573-0.948-0.883-1.121-0.255-0.146-0.876-0.172-1.166-0.118-0.447,0.082-1.213,0.664-1.641,0.839-0.438,0.173-1.331,0.592-1.804,0.566-0.383-0.029-1.149-0.357-1.403-0.649-0.575-0.674-0.693-2.579-0.911-3.445-0.202-0.773-0.639-2.331-0.767-3.125-0.082-0.491-0.337-1.53-0.164-1.994,0.109-0.274,0.647-0.584,0.847-0.803,0.22-0.256,0.72-0.756,0.793-1.084,0.119-0.467-0.063-1.449-0.274-1.887-0.164-0.328-0.719-0.895-1.039-1.075-0.438-0.254-1.541-0.173-1.922-0.483-0.265-0.211-0.51-0.883-0.601-1.203-0.137-0.429-0.411-1.375-0.246-1.802,0.1-0.238,0.583-0.513,0.802-0.639,0.245-0.139,0.839-0.209,1.048-0.402,0.264-0.246,0.51-0.974,0.637-1.319,0.101-0.284,0.064-0.959,0.283-1.159,0.229-0.219,0.984-0.027,1.239-0.2,0.319-0.238,0.72-1.011,0.756-1.402,0.047-0.429-0.209-1.313-0.481-1.65-0.237-0.282-1.031-0.446-1.322-0.674-0.3-0.246-0.847-0.849-0.992-1.203-0.11-0.235-0.065-0.784-0.12-1.038-0.072-0.285-0.172-0.92-0.409-1.085-0.31-0.219-1.138-0.038-1.513,0-0.419,0.046-1.238,0.455-1.649,0.363-0.346-0.091-0.901-0.637-1.121-0.929-0.292-0.384-0.584-1.339-0.756-1.795-0.155-0.392-0.702-1.176-0.565-1.567,0.064-0.184,0.51-0.3,0.683-0.4,0.256-0.146,0.839-0.383,1.039-0.602,0.219-0.237,0.574-0.838,0.565-1.159-0.019-0.427-0.473-1.265-0.847-1.483-0.675-0.394-2.369-0.21-3.125,0-0.539,0.153-1.568,0.766-1.914,1.202-0.265,0.338-0.41,1.212-0.565,1.604-0.127,0.328-0.336,1.021-0.564,1.285-0.264,0.311-0.984,0.818-1.394,0.875-0.283,0.045-0.875-0.13-1.085-0.32-0.302-0.271-0.52-1.12-0.602-1.521s0.128-1.287-0.082-1.643c-0.209-0.372-1.03-0.8-1.441-0.918-0.928-0.273-2.916-0.035-3.881,0-1.139,0.046-3.398,0.2-4.528,0.356-0.82,0.116-2.415,0.608-3.244,0.646-0.464,0.018-1.431,0.008-1.841-0.201-0.365-0.182-0.902-0.836-1.084-1.204-0.355-0.711-0.455-2.34-0.6-3.125-0.21-1.12-0.648-3.353-0.803-4.482-0.073-0.555-0.401-1.723-0.2-2.241,0.173-0.438,1.011-0.958,1.367-1.247,0.446-0.366,1.476-0.938,1.877-1.358,0.282-0.292,0.774-0.94,0.884-1.322,0.191-0.646,0.09-2.023-0.036-2.678-0.101-0.484-0.301-1.569-0.72-1.806-0.739-0.418-2.489,0.61-3.327,0.557-0.4-0.019-1.521-0.438-1.521-0.438l-3.043-11.973-3.844-1.769-0.72-4.838,2.477-1.531-2.806-4.838s-0.073-1.45,0.283-1.685c0.492-0.331,1.695,0.525,2.288,0.563,0.31,0.019,0.938-0.071,1.238-0.164,0.374-0.108,1.02-0.601,1.403-0.683,0.283-0.064,0.866,0.046,1.158,0.046,0.51,0,1.649,0.238,2.049-0.083,0.274-0.219,0.265-1.02,0.355-1.366,0.073-0.274,0.338-0.829,0.32-1.121-0.019-0.365-0.657-1.003-0.556-1.358,0.028-0.126,0.137-0.254,0.273-0.373,0.336-0.29,0.866-0.548,1.121-0.711,0.419-0.263,1.293-0.755,1.767-0.884,0.875-0.219,2.707-0.173,3.6-0.119,0.784,0.056,2.379,0.211,3.09,0.521,0.718,0.327,1.885,1.448,2.479,1.969,0.3,0.253,1.165,1.083,1.165,1.083l1.441-3.245,2.76-0.209,3.964-1.758,12.384-0.155,2.442,1.677,7.525-3.764s0.038-1.723,0.403-2.122c0.137-0.147,0.61-0.11,0.757-0.238,0.145-0.118,0.171-0.547,0.326-0.646,0.566-0.347,2.033,0.173,2.68,0,0.236-0.054,0.529-0.657,0.766-0.601,0.592,0.135,1.075,2.204,1.075,2.204l4.893-0.52,2.278,2.643-1.002,1.923,3.563,4.28,10.179-0.552-0.885,1.757,1.841,1.521,5.332-0.354,0.119,1.522-1.441,2.996,2.961,0.119,3.527-2.041,0.035-1.603,1.926-1.24,2.12,2.004,1.723-0.601,2.17,1.805,3.044-0.201,2.56,3.964-3.928,1.521,1.523,5.805,3.646,3.291,1.885-0.484,0.319,1.97,2.44,3.681-0.481,1.04,1.402,1.119-2.206,1.249-0.354,4.401-1.886,2.277,7.007,0.129,0.883-1.05-0.117-2.277,8.929-1.402,2.443,4.884-0.201,2.287,1.047,1.285,3.565-0.812,2.276-3.444,3.246-2.314,3.042-0.365,2.405,4.85,9.57-4.129,4.446,1.887c-0.06-0.06,3.69-0.1,3.83-0.11\",\"name\":\"Миколаївська область\"},\"51\":{\"path\":\"M671.2,739.65c0.173-0.338,0.126-1.12,0.109-1.496-0.019-0.428-0.201-1.265-0.265-1.686-0.064-0.41-0.056-1.275-0.246-1.654-0.083-0.168-0.374-0.433-0.529-0.533-0.228-0.144-0.811-0.209-0.993-0.399-0.229-0.245-0.155-1.075-0.419-1.285-0.208-0.163-0.811-0.163-1.075-0.109-0.21,0.056-0.529,0.438-0.748,0.456-0.427,0.055-1.212-0.546-1.648-0.556-0.32-0.009-0.948,0.163-1.204,0.346-0.456,0.317-1.121,1.275-1.34,1.787-0.255,0.628-0.474,2.005-0.401,2.669,0.056,0.43,0.438,1.23,0.647,1.604,0.183,0.347,0.766,0.92,0.93,1.285,0.183,0.383,0.384,1.231,0.428,1.65,0.045,0.401-0.146,1.21-0.054,1.602,0.082,0.347,0.328,1.177,0.665,1.261,0.338,0.07,0.839-0.585,1.103-0.804,0.3-0.256,0.848-0.83,1.148-1.095,0.329-0.29,1.002-0.884,1.358-1.146,0.401-0.302,1.256-0.82,1.658-1.121,0.23-0.19,0.75-0.52,0.87-0.78m12.33-11.22c0.009-0.329-0.364-0.923-0.446-1.24-0.027-0.146,0.037-0.501-0.073-0.603-0.318-0.301-1.358,0-1.768-0.163-0.464-0.182-1.067-1.139-1.559-1.239-0.71-0.136-2.142,0.447-2.761,0.803-0.456,0.264-1.275,0.984-1.531,1.438-0.254,0.485-0.063,1.724-0.4,2.169-0.219,0.292-0.956,0.721-1.313,0.639-0.337-0.082-0.773-0.745-0.846-1.084-0.065-0.311,0.52-0.993,0.318-1.238-0.163-0.209-0.856-0.111-1.075,0.036-0.438,0.31-0.702,1.449-0.802,1.969-0.129,0.673-0.064,2.076,0.037,2.762,0.091,0.608,0.61,1.756,0.683,2.358,0.082,0.639-0.128,1.923-0.081,2.568,0.026,0.329-0.073,1.194,0.245,1.322,0.174,0.073,0.482-0.317,0.638-0.446,0.501-0.401,1.403-1.331,1.876-1.759,0.411-0.365,1.241-1.047,1.641-1.404,0.54-0.465,1.585-1.42,2.124-1.876,0.673-0.574,2.059-1.639,2.726-2.204,0.473-0.401,1.476-1.148,1.849-1.643,0.17-0.27,0.49-0.86,0.51-1.18m18.7-228.87c0.557,0.083,1.878,0.175,2.644-0.309-0.137,0.119-0.247,0.246-0.273,0.372-0.101,0.356,0.538,0.995,0.555,1.358,0.019,0.292-0.246,0.848-0.319,1.122-0.091,0.346-0.082,1.146-0.357,1.367-0.399,0.319-1.538,0.081-2.049,0.081-0.283,0-0.875-0.11-1.157-0.045-0.383,0.082-1.029,0.573-1.404,0.683-0.3,0.092-0.929,0.183-1.238,0.163-0.592-0.037-1.796-0.892-2.288-0.563-0.354,0.234-0.282,1.685-0.282,1.685l2.806,4.838-2.478,1.523,0.719,4.847,3.846,1.768,3.043,11.973s1.121,0.421,1.521,0.438c0.838,0.045,2.588-0.974,3.326-0.556,0.419,0.236,0.621,1.32,0.72,1.796,0.127,0.663,0.227,2.041,0.036,2.688-0.11,0.382-0.601,1.03-0.884,1.322-0.401,0.419-1.431,0.993-1.876,1.357-0.356,0.29-1.195,0.811-1.367,1.247-0.202,0.52,0.127,1.687,0.2,2.241,0.155,1.131,0.592,3.364,0.802,4.482,0.146,0.786,0.246,2.416,0.601,3.126,0.183,0.367,0.72,1.021,1.083,1.203,0.41,0.21,1.377,0.219,1.842,0.201,0.829-0.036,2.424-0.528,3.243-0.646,1.13-0.156,3.39-0.311,4.529-0.356,0.965-0.035,2.952-0.272,3.881,0,0.411,0.118,1.231,0.546,1.441,0.918,0.209,0.357,0,1.242,0.082,1.644,0.081,0.399,0.3,1.248,0.602,1.521,0.209,0.191,0.802,0.356,1.084,0.319,0.409-0.057,1.129-0.564,1.394-0.875,0.228-0.273,0.438-0.956,0.565-1.285,0.155-0.392,0.3-1.267,0.565-1.604,0.346-0.437,1.375-1.049,1.913-1.202,0.756-0.21,2.451-0.393,3.125,0,0.374,0.22,0.829,1.057,0.848,1.483,0.009,0.323-0.346,0.922-0.565,1.159-0.2,0.219-0.784,0.455-1.039,0.603-0.173,0.1-0.62,0.216-0.683,0.399-0.137,0.392,0.41,1.176,0.564,1.567,0.173,0.456,0.465,1.403,0.756,1.796,0.219,0.291,0.776,0.838,1.122,0.928,0.411,0.092,1.229-0.316,1.649-0.363,0.374-0.036,1.204-0.217,1.512,0,0.238,0.165,0.337,0.801,0.41,1.085,0.054,0.254,0.009,0.793,0.119,1.038,0.146,0.355,0.692,0.958,0.993,1.203,0.291,0.228,1.085,0.392,1.321,0.675,0.282,0.338,0.529,1.221,0.482,1.649-0.036,0.392-0.438,1.164-0.756,1.402-0.256,0.174-1.012-0.018-1.239,0.201-0.219,0.2-0.182,0.875-0.283,1.158-0.128,0.346-0.373,1.073-0.638,1.32-0.208,0.193-0.802,0.263-1.047,0.401-0.219,0.127-0.702,0.4-0.802,0.639-0.164,0.427,0.109,1.365,0.247,1.803,0.09,0.319,0.336,0.992,0.601,1.202,0.382,0.312,1.485,0.229,1.922,0.483,0.319,0.181,0.874,0.748,1.039,1.075,0.21,0.438,0.393,1.421,0.282,1.887-0.081,0.328-0.582,0.828-0.801,1.085-0.2,0.218-0.739,0.528-0.847,0.802-0.173,0.464,0.082,1.503,0.164,1.994,0.127,0.794,0.565,2.352,0.766,3.126,0.218,0.866,0.337,2.761,0.911,3.444,0.255,0.292,1.021,0.621,1.404,0.639,0.472,0.036,1.367-0.383,1.804-0.556,0.427-0.175,1.193-0.756,1.641-0.838,0.289-0.055,0.911-0.027,1.165,0.118,0.311,0.172,0.775,0.773,0.884,1.12,0.119,0.392-0.164,1.239-0.083,1.641,0.074,0.355,0.393,1.028,0.638,1.283,0.419,0.428,1.578,0.885,2.125,1.123,0.319,0.136,1.003,0.301,1.321,0.436,0.456,0.201,1.24,1.049,1.722,0.968,0.256-0.047,0.52-0.565,0.685-0.767,0.227-0.293,0.546-1.011,0.836-1.238,0.386-0.311,1.358-0.639,1.843-0.722,0.583-0.1,1.822-0.163,2.369,0.074,0.302,0.135,0.791,0.655,0.919,0.964,0.174,0.439,0.119,1.425,0.037,1.889-0.046,0.245-0.355,0.957-0.355,0.957l-4.728,3.607,0.719,2.797,5.33-1.12v-1.878s3.354,0.939,4.482,0.803c0.403-0.055,1.113-0.865,1.486-0.684,0.655,0.318,0.557,2.124,0.675,2.844,0.228,1.339,0.446,4.054,0.565,5.402,0.117,1.438,0.354,4.33,0.354,5.77,0,0.637-0.027,1.904-0.155,2.523-0.082,0.354-0.245,1.129-0.521,1.367-0.226,0.174-0.837,0.174-1.129,0.19-0.591,0.056-1.793-0.034-2.396,0-0.428,0.038-1.297,0.073-1.686,0.248-0.301,0.137-0.82,0.6-0.993,0.883-0.229,0.336-0.146,1.33-0.492,1.56-0.4,0.282-1.468-0.193-1.96-0.167-0.492,0.038-1.44,0.337-1.921,0.449-0.312,0.072-0.939,0.373-1.241,0.282-0.383-0.12-0.784-0.949-1.119-1.167-0.202-0.118-0.659-0.265-0.886-0.282-0.364-0.019-1.438,0.245-1.438,0.245l-2.517,2.69c-0.044-0.239-0.089-0.45-0.125-0.621-0.22-0.949-0.604-2.871-0.647-3.845-0.028-0.858,0.281-2.561,0.271-3.419-0.008-0.6,0.037-1.887-0.271-2.405-0.139-0.237-0.631-0.674-0.903-0.637-0.33,0.045-0.666,0.736-0.858,1.01-0.3,0.429-1.019,1.295-1.065,1.813-0.054,0.602,0.702,1.668,0.857,2.242,0.172,0.645,0.346,1.959,0.427,2.624,0.101,0.931,0.173,2.798,0.265,3.736,0.101,1.066-0.009,3.315,0.483,4.273,0.301,0.593,1.503,1.341,1.969,1.815,0.784,0.79,2.268,2.431,2.941,3.307,0.677,0.892,1.915,2.761,2.452,3.745,0.421,0.736,1.258,2.259,1.45,3.088,0.155,0.712,0.063,2.168,0,2.89-0.073,0.783-0.583,2.304-0.594,3.099,0,0.637,0.211,1.904,0.431,2.503,0.163,0.458,0.745,1.231,0.955,1.66,0.238,0.475,0.729,1.449,0.802,1.979,0.075,0.5,0.165,1.676-0.209,2.022-0.244,0.237-1.013-0.019-1.339,0.054-0.611,0.146-1.74,0.711-2.297,1.02-0.646,0.367-1.759,1.44-2.45,1.706-0.885,0.336-2.808,0.364-3.736,0.482-1.003,0.137-3.027,0.301-4.011,0.538-0.592,0.136-1.84,0.392-2.296,0.802-0.555,0.501-1.03,2.003-1.284,2.717-0.457,1.311-1.004,4.044-1.331,5.394-0.43,1.739-1.131,5.256-1.705,6.942-0.61,1.778-2.141,5.24-3.043,6.889-0.829,1.495-2.707,4.357-3.799,5.66-0.938,1.139-3.208,3.044-4.22,4.108-0.911,0.977-2.505,3.136-3.471,4.064-0.794,0.775-2.752,1.922-3.464,2.78-0.628,0.746-1.412,2.55-1.877,3.417-0.5,0.956-1.384,2.935-1.967,3.845-0.729,1.132-2.433,3.208-3.317,4.21-0.337,0.4-0.957,1.694-1.44,1.504-0.254-0.109-0.1-0.857,0-1.12,0.183-0.457,1.195-0.976,1.331-1.442,0.155-0.525-0.445-1.602-0.373-2.141,0.09-0.593,0.938-1.547,1.075-2.132,0.155-0.691,0.173-2.159-0.055-2.833-0.229-0.675-1.157-1.787-1.658-2.297-0.429-0.437-1.604-1.002-1.978-1.492-0.254-0.349-0.573-1.179-0.638-1.605-0.091-0.594,0.009-1.822,0.164-2.406,0.119-0.456,0.766-1.23,0.803-1.704,0.036-0.573-0.365-1.694-0.647-2.186-0.172-0.311-0.646-0.866-0.957-1.022-0.556-0.263-1.896,0.046-2.46-0.21-0.51-0.236-1.294-1.083-1.604-1.549-0.283-0.42-0.684-1.376-0.748-1.867-0.099-0.757,0.438-2.279,0.374-3.045-0.037-0.527-0.191-1.676-0.583-2.031-0.32-0.291-1.331-0.526-1.713-0.317-0.228,0.128-0.347,0.701-0.373,0.956-0.046,0.556,0.483,1.64,0.428,2.196-0.037,0.437-0.273,1.401-0.638,1.649-0.3,0.21-1.148,0.21-1.44,0-0.401-0.276-0.537-1.341-0.646-1.813-0.184-0.829-0.136-2.552-0.374-3.362-0.1-0.355-0.41-1.048-0.637-1.341-0.356-0.437-1.231-1.203-1.76-1.385-0.993-0.336-3.162-0.254-4.173,0-0.627,0.155-1.84,0.756-2.296,1.23-0.52,0.547-1.121,1.987-1.276,2.717-0.208,0.981-0.208,3.061,0.101,4.008,0.345,1.038,1.749,2.797,2.514,3.581,0.903,0.931,3.089,2.37,4.165,3.098,0.947,0.639,2.951,1.75,3.899,2.397,0.884,0.603,2.607,1.867,3.418,2.569,1.092,0.929,3.416,2.751,4.108,4,0.483,0.866,0.519,2.926,0.856,3.845,0.32,0.876,1.467,2.417,1.704,3.31,0.219,0.792,0.155,2.451,0.166,3.262,0.009,0.511,0.126,1.56-0.056,2.031-0.172,0.448-0.883,1.149-1.23,1.495-0.355,0.355-1.194,0.92-1.549,1.276-0.5,0.52-1.313,1.731-1.813,2.241-0.692,0.729-2.351,1.896-3.043,2.624-0.492,0.512-1.176,1.832-1.759,2.242-0.336,0.236-1.24,0.263-1.549,0.538-0.583,0.48-0.967,2.078-1.439,2.66-1.02,1.267-3.746,3.097-4.921,4.219-1.185,1.14-3.28,3.69-4.483,4.812-1.859,1.732-5.951,4.783-7.9,6.405-1.84,1.532-5.432,4.667-7.262,6.196-1.331,1.104-3.929,3.391-5.34,4.385-1.166,0.81-3.672,2.196-4.921,2.878-1.412,0.785-4.364,2.169-5.758,2.989-0.829,0.492-2.452,1.54-3.208,2.144-0.573,0.455-1.677,1.447-2.132,2.021-0.528,0.657-1.44,2.096-1.713,2.889-0.136,0.392-0.183,1.239-0.209,1.648-0.055,0.63-0.41,1.998-0.055,2.518,0.256,0.363,1.257,0.546,1.705,0.581,0.282,0.028,0.903,0.009,1.121-0.153,0.318-0.236,0.318-1.23,0.647-1.448,0.446-0.293,1.603-0.147,2.132-0.057,0.538,0.102,1.648,0.421,2.031,0.812,0.466,0.476,0.838,1.84,0.912,2.507,0.019,0.272-0.173,0.801-0.164,1.066,0.027,0.627,0.509,1.83,0.583,2.459,0.109,0.821-0.046,2.488,0.055,3.308,0.118,0.885,0.747,2.589,0.856,3.473,0.091,0.711,0.173,2.187,0,2.88-0.201,0.812-1.258,2.168-1.549,2.941-0.227,0.592-0.438,1.841-0.593,2.452-0.109,0.455-0.082,1.566-0.474,1.823-0.209,0.127-0.72-0.147-0.965-0.165-0.329-0.027-1.001-0.035-1.33,0-0.383,0.044-1.112,0.383-1.495,0.375-0.255,0-0.793-0.083-0.966-0.264-0.501-0.531-0.455-2.134-0.638-2.835-0.292-1.104-1.467-3.254-1.285-4.383,0.092-0.557,1.121-1.322,1.285-1.868,0.183-0.583,0.218-1.877,0-2.45-0.255-0.649-1.331-1.598-1.869-2.034-0.928-0.747-3.026-1.924-4.109-2.404-1.23-0.53-3.845-1.158-5.13-1.541-1.048-0.319-3.108-1.011-4.165-1.284-1.357-0.346-4.109-0.976-5.504-1.122-1.302-0.136-3.927-0.11-5.23-0.054-1.03,0.035-3.144,0.019-4.11,0.373-0.874,0.32-2.306,1.577-3.042,2.131-0.793,0.594-2.25,1.961-3.098,2.463-0.711,0.418-2.26,1.048-3.044,1.283-0.602,0.174-1.841,0.347-2.46,0.43-0.438,0.045-1.376-0.121-1.758,0.1-0.501,0.293-0.912,1.485-1.286,1.922-0.208,0.246-0.738,0.612-0.939,0.856-0.482,0.593-1.011,2.143-1.594,2.644-0.445,0.383-1.604,0.747-2.168,0.883-0.665,0.156-2.087,0.493-2.725,0.236-0.556-0.228-1.084-1.51-1.604-1.839-0.445-0.3-1.539-0.574-2.076-0.639-0.657-0.081-2.042-0.127-2.643,0.154-0.419,0.201-1.122,0.922-1.285,1.368-0.301,0.82,0.419,2.671,0.164,3.518-0.228,0.757-1.211,2.096-1.84,2.567-0.61,0.447-2.132,0.859-2.888,0.96-1.213,0.153-3.701-0.02-4.885-0.319-0.701-0.175-2.041-0.803-2.642-1.205-0.593-0.391-1.439-1.63-2.086-1.92-0.365-0.165-1.204-0.229-1.605-0.156-0.364,0.064-0.983,0.609-1.357,0.638-0.92,0.063-2.679-0.747-3.526-1.121-1.175-0.519-3.473-1.758-4.484-2.568-1.029-0.813-2.724-2.853-3.608-3.838-0.719-0.81-2.27-2.352-2.797-3.288-0.492-0.858-1.039-2.798-1.286-3.764-0.236-0.95-0.227-2.962-0.638-3.846-0.309-0.665-1.421-1.704-1.922-2.242-0.319-0.336-1.111-0.865-1.312-1.285-0.155-0.319-0.173-1.075-0.155-1.438,0.027-0.558,0.164-1.723,0.475-2.188,0.392-0.583,1.693-1.256,2.295-1.604,0.803-0.454,2.469-1.313,3.372-1.492,0.492-0.102,1.522,0.008,2.022,0.055,0.61,0.044,1.805,0.346,2.406,0.317,0.574-0.028,1.667-0.619,2.242-0.536,0.373,0.054,0.966,0.555,1.284,0.746,0.32,0.2,0.911,0.728,1.276,0.8,0.537,0.11,1.694-0.055,2.141-0.372,0.311-0.22,0.629-0.963,0.747-1.329,0.192-0.595,0.119-1.859,0.266-2.464,0.089-0.362,0.2-1.228,0.536-1.383,0.33-0.154,1.049,0.62,1.386,0.482,0.318-0.137,0.482-0.911,0.592-1.229,0.227-0.701,0.619-2.148,0.583-2.888-0.019-0.564-0.592-1.624-0.638-2.188-0.046-0.565,0.328-1.676,0.264-2.241-0.046-0.446-0.365-1.31-0.583-1.713-0.201-0.347-0.884-0.847-1.02-1.222-0.127-0.354-0.091-1.139,0-1.493,0.136-0.529,0.738-1.449,1.074-1.878,0.311-0.391,1.012-1.213,1.495-1.385,0.365-0.128,1.175,0,1.549,0.11,0.128,0.036,0.337,0.245,0.474,0.265,0.482,0.062,1.521-0.147,1.867-0.485,0.457-0.438,0.457-1.82,0.702-2.395,0.154-0.384,0.455-1.224,0.802-1.452,0.429-0.28,1.604,0.02,2.078-0.208,0.564-0.273,1.285-1.394,1.769-1.813,0.355-0.328,1.075-1.03,1.539-1.177,0.639-0.198,2.023,0.255,2.68,0.101,0.437-0.101,1.285-0.519,1.594-0.847,0.821-0.884,1.887-3.18,1.978-4.383,0.045-0.556-0.438-1.603-0.583-2.133-0.146-0.52-0.54-1.55-0.593-2.088-0.064-0.746,0.091-2.259,0.273-2.987,0.165-0.676,0.556-2.087,1.066-2.561,0.666-0.638,2.597-0.921,3.462-1.23,0.985-0.355,2.934-1.076,3.901-1.439,1.047-0.392,3.144-1.156,4.165-1.604,0.674-0.293,2.232-0.666,2.624-1.285,0.301-0.481,0.127-1.73,0-2.296-0.137-0.583-0.81-1.594-1.076-2.132-0.246-0.52-0.848-1.521-0.957-2.087-0.1-0.511-0.118-1.612,0.109-2.079,0.282-0.591,1.485-1.272,1.969-1.712,0.765-0.675,2.287-2.04,2.998-2.781,0.802-0.817,2.424-2.495,3.044-3.461,0.246-0.401,0.71-1.248,0.748-1.714,0.027-0.382-0.146-1.183-0.375-1.493-0.291-0.391-1.265-0.736-1.657-1.013-0.766-0.546-2.351-1.63-2.879-2.405-0.401-0.574-0.757-1.941-0.912-2.615-0.274-1.165-0.474-3.563-0.593-4.758-0.137-1.564-0.09-4.745-0.374-6.303-0.155-0.903-0.756-2.653-1.066-3.519-0.201-0.575-0.775-1.656-0.903-2.251-0.063-0.272-0.209-0.883-0.054-1.12,0.19-0.3,0.976-0.492,1.33-0.527,0.738-0.093,2.196,0.453,2.944,0.427,0.71-0.029,2.131-0.336,2.769-0.637,0.921-0.439,2.26-2.104,3.208-2.461,0.602-0.229,1.959,0.046,2.56-0.164,0.711-0.236,1.887-1.229,2.517-1.648,0.464-0.321,1.357-1.04,1.867-1.287,0.456-0.218,1.44-0.729,1.923-0.582,0.41,0.109,0.966,0.884,1.121,1.275,0.265,0.657,0.154,2.125,0.109,2.836-0.063,0.873-0.52,2.585-0.593,3.471-0.09,1.075-0.099,3.242,0,4.319,0.064,0.627,0.046,2.014,0.483,2.461,0.227,0.236,0.966,0.345,1.285,0.264,0.701-0.165,1.777-1.258,2.242-1.814,0.409-0.499,1.021-1.676,1.22-2.297,0.174-0.5,0.138-1.585,0.329-2.085,0.246-0.621,0.92-1.876,1.493-2.242,0.384-0.247,1.386-0.438,1.814-0.265,0.446,0.175,0.929,1.083,1.175,1.495,0.311,0.526,0.729,1.675,0.957,2.241,0.173,0.41,0.237,1.477,0.646,1.659,0.173,0.072,0.574-0.147,0.702-0.284,0.355-0.382,0.511-1.483,0.602-1.996,0.092-0.5-0.082-1.546,0.118-2.004,0.174-0.372,0.83-0.901,1.167-1.122,0.501-0.327,1.613-0.955,2.206-0.883,0.5,0.066,1.285,0.83,1.64,1.204,0.629,0.655,1.477,2.296,2.005,3.043,0.784,1.128,2.442,3.346,3.281,4.448,0.519,0.673,1.356,2.285,2.122,2.678,0.365,0.191,1.249,0.209,1.641,0.082,0.574-0.183,1.43-1.094,1.886-1.485,0.528-0.467,1.677-1.349,2.041-1.958,0.292-0.494,0.602-1.632,0.602-2.206,0-0.428-0.447-1.247-0.438-1.678,0.01-0.482,0.238-1.484,0.557-1.85,0.218-0.247,0.875-0.593,1.203-0.558,0.555,0.056,1.375,0.959,1.803,1.323,0.684,0.602,1.905,1.968,2.562,2.606,0.792,0.747,2.815,1.915,3.244,2.914,0.137,0.33,0.027,1.068-0.037,1.404-0.091,0.429-0.701,1.177-0.647,1.605,0.083,0.565,0.939,1.429,1.368,1.803,0.491,0.43,1.684,1.004,2.277,1.286,0.574,0.264,1.768,1.121,2.369,0.92,0.428-0.147,0.747-1.129,0.957-1.522,0.292-0.537,0.656-1.713,1.002-2.204,0.292-0.41,0.948-1.295,1.44-1.404,0.528-0.109,1.484,0.594,2.004,0.72,0.602,0.146,1.832,0.267,2.442,0.319,0.675,0.063,2.013,0.128,2.688,0.128,0.893-0.02,2.707-0.045,3.572-0.254,0.529-0.13,1.505-0.604,1.979-0.858,0.438-0.228,1.431-0.638,1.658-1.066,0.164-0.317,0.154-1.157-0.055-1.438-0.236-0.331-1.11-0.457-1.493-0.54-0.684-0.136-2.161,0.146-2.779-0.163-0.521-0.256-1.175-1.275-1.496-1.759-0.428-0.637-0.883-2.151-1.385-2.725-0.537-0.61-2.012-1.394-2.668-1.867-0.475-0.349-1.396-1.06-1.878-1.396-0.52-0.365-1.66-1.003-2.133-1.439-0.427-0.392-1.395-1.24-1.439-1.813-0.036-0.438,0.538-1.229,0.857-1.548,0.464-0.467,1.868-0.785,2.287-1.276,0.51-0.602,0.974-2.169,1.074-2.944,0.119-0.893-0.273-2.678-0.318-3.581-0.045-0.72-0.129-2.159-0.056-2.878,0.064-0.694,0.484-2.032,0.584-2.726,0.109-0.737,0.437-2.26,0.272-2.988-0.146-0.612-0.883-1.658-1.285-2.142-0.419-0.483-1.603-1.12-1.978-1.65-0.272-0.381-0.83-1.329-0.638-1.767,0.173-0.393,1.203-0.521,1.603-0.693,0.329-0.146,1.158-0.265,1.332-0.582,0.164-0.312-0.128-1.066-0.265-1.396-0.201-0.473-0.72-1.467-1.175-1.703-0.393-0.2-1.358,0.236-1.759,0.055-0.483-0.221-1.047-1.167-1.34-1.604-0.319-0.493-0.646-1.675-1.066-2.086-0.218-0.2-0.783-0.438-1.065-0.474-0.529-0.073-1.568,0.227-2.087,0.316-0.492,0.084-1.486,0.456-1.978,0.375-0.346-0.064-0.966-0.454-1.229-0.691-0.647-0.594-1.495-2.187-2.032-2.889-0.584-0.784-1.649-2.479-2.451-3.044-0.575-0.399-2.024-0.62-2.67-0.911-0.675-0.293-1.931-1.058-2.56-1.441-0.357-0.208-0.993-0.792-1.396-0.9-0.309-0.091-0.975,0.154-1.274,0.044-0.401-0.127-1.24-0.645-1.285-1.065-0.055-0.519,1.039-1.185,1.285-1.647,0.191-0.374,0.465-1.185,0.482-1.606,0.009-0.481-0.51-1.392-0.427-1.867,0.108-0.674,1.13-1.695,1.439-2.295,0.354-0.693,1.075-2.116,1.176-2.89,0.063-0.502,0.055-1.632-0.274-2.022-0.282-0.355-1.258-0.511-1.704-0.591-0.655-0.121-2.005-0.094-2.67-0.11-0.537-0.011-1.668,0.264-2.141,0-0.3-0.166-0.646-0.839-0.747-1.167-0.137-0.51-0.228-1.649,0.055-2.087,0.256-0.391,1.239-0.61,1.658-0.802,0.502-0.238,1.658-0.491,2.033-0.91,0.255-0.282,0.446-1.059,0.483-1.44,0.063-0.775-0.328-2.323-0.429-3.099-0.127-0.865-0.546-2.597-0.482-3.473,0.045-0.646,0.364-1.949,0.692-2.505,0.31-0.538,1.395-1.268,1.759-1.759,0.309-0.418,0.874-1.312,0.966-1.821,0.1-0.566-0.119-1.75-0.329-2.297-0.219-0.593-0.975-1.64-1.385-2.133-0.445-0.546-1.394-1.659-2.023-1.979-0.546-0.272-1.803-0.519-2.404-0.428-0.448,0.064-1.24,0.538-1.604,0.803-0.538,0.382-1.403,1.395-1.868,1.866-0.528,0.548-1.413,1.853-2.086,2.197-0.465,0.237-1.631,0.537-2.079,0.264-0.427-0.272-0.483-1.447-0.637-1.921-0.229-0.676-0.848-1.97-0.911-2.671-0.065-0.702,0.464-2.078,0.427-2.779-0.036-0.639-0.327-1.941-0.692-2.461-0.22-0.302-0.939-0.619-1.23-0.847-0.948-0.766-2.907-2.296-3.582-3.316-0.382-0.574-0.5-2.097-0.956-2.618-0.328-0.372-1.267-0.881-1.768-0.91-0.492-0.018-1.367,0.538-1.813,0.758-0.438,0.2-1.23,0.829-1.705,0.902-0.382,0.063-1.193-0.046-1.504-0.266-0.318-0.228-0.637-1.01-0.746-1.395-0.119-0.427-0.355-1.429-0.101-1.813,0.229-0.337,1.139-0.465,1.549-0.528,0.4-0.074,1.349,0.282,1.649,0,0.374-0.345,0.301-1.54,0.165-2.032-0.109-0.401-0.584-1.186-0.967-1.331-0.373-0.153-1.193,0.32-1.603,0.311-0.529,0-1.677-0.073-2.077-0.418-0.419-0.365-0.666-1.541-0.749-2.089-0.063-0.464-0.146-1.474,0.109-1.867,0.329-0.52,1.586-1.001,2.188-1.177,0.427-0.117,1.33,0.012,1.758-0.108,0.445-0.109,1.366-0.437,1.659-0.802,0.245-0.293,0.337-1.109,0.374-1.494,0.082-0.903-0.21-2.715-0.266-3.627-0.072-1.111-0.409-3.324-0.272-4.438,0.1-0.763,0.674-2.214,0.965-2.934,0.274-0.674,0.894-2.005,1.276-2.615,0.464-0.718,1.567-2.041,2.142-2.67,0.41-0.453,1.631-1.111,1.758-1.702,0.064-0.283-0.192-0.903-0.418-1.076-0.438-0.319-1.604-0.129-2.143-0.156-0.528-0.026-1.739,0.303-2.131-0.055-0.301-0.273-0.329-1.22-0.219-1.603,0.154-0.521,1.103-1.203,1.394-1.658,0.364-0.565,1.057-1.777,1.176-2.451,0.127-0.813,0.009-2.543-0.375-3.263-0.283-0.511-1.467-1.029-1.822-1.493-0.382-0.512-0.792-1.751-1.012-2.352-0.355-0.967-0.592-3.099-1.176-3.946-0.301-0.455-1.185-1.211-1.712-1.34-0.51-0.117-1.567,0.292-2.078,0.429-0.383,0.102-1.176,0.255-1.495,0.481-0.601,0.42-1.212,1.869-1.768,2.354-0.355,0.309-1.175,0.883-1.649,0.899-0.602,0.028-1.677-0.653-2.196-0.954-0.974-0.576-2.697-2.078-3.626-2.726-0.529-0.363-1.65-0.984-2.142-1.384-0.519-0.438-1.467-1.432-1.868-1.979-0.529-0.738-1.375-2.359-1.704-3.209-0.273-0.691-0.492-2.032-0.729-2.988l5.001-0.265,2.188-7.689,4.164-0.164,3.736-5.659,7.052,7.526,2.133,0.22,4.811,6.241,11.91-2.987,1.549,3.361,5.23,0.273,0.856-4.01,6.197,1.011,0.045,4.064,2.989,0.429-0.045-6.14-4.219-4.604,2.715-2.45,2.625,2.087,3.144-3.583-0.027-0.456,3.062-0.091,2.151,3.137,3.762-0.084,0.109-4.262,1.787,0.208s0.764,1.521,1.012,2.031c0.428,0.848,1.138,2.626,1.658,3.417,0.583,0.875,1.958,2.489,2.752,3.181,0.528,0.455,1.693,1.284,2.351,1.549,0.811,0.31,2.568,0.556,3.443,0.556,0.921,0,2.716-0.456,3.636-0.583,0.375-0.053,1.131-0.2,1.514-0.19,0.738,0.017,2.187,0.317,2.888,0.51,0.93,0.14,2.32,0.7,3.06,0.83m-46.88,250.63c0.601-0.338,1.85-0.949,2.451-1.276,0.583-0.319,1.722-0.976,2.295-1.286,0.337-0.182,1.084-0.419,1.341-0.692,0.118-0.126,0.392-0.529,0.264-0.646-0.264-0.236-0.921,0.674-1.276,0.701-0.428,0.019-1.194-0.527-1.604-0.647-0.218-0.063-0.756,0.009-0.911-0.154-0.301-0.327-0.19-1.32-0.21-1.767-0.027-0.639,0.201-1.925,0.101-2.563-0.073-0.499-0.411-1.494-0.693-1.921-0.475-0.703-2.132-1.532-2.506-2.297-0.328-0.674-0.3-2.241-0.264-2.988,0.036-0.804,0.391-2.38,0.583-3.152,0.173-0.703,0.692-2.07,0.857-2.781,0.155-0.665,0.538-2.04,0.429-2.724-0.064-0.364-0.33-1.267-0.702-1.329-0.446-0.083-0.92,1.037-1.332,1.229-0.209,0.091-0.72,0.235-0.911,0.099-0.2-0.137,0-0.82-0.21-0.956-0.401-0.266-1.54,0.035-1.867,0.373-0.156,0.156-0.166,0.639-0.166,0.856,0.01,0.42,0.338,1.23,0.375,1.649,0.063,0.71,0.008,2.135-0.101,2.834-0.127,0.73-0.72,2.104-0.856,2.834-0.2,1.066,0.037,3.3-0.319,4.328-0.255,0.712-1.349,1.841-1.713,2.507-0.237,0.429-0.71,1.33-0.802,1.813-0.146,0.748-0.018,2.297,0.109,3.043,0.11,0.693,0.73,1.979,0.802,2.671,0.082,0.838-0.464,2.532-0.319,3.361,0.055,0.348,0.366,1.013,0.583,1.286,0.273,0.355,0.949,1.086,1.387,1.119,0.354,0.029,0.938-0.49,1.229-0.691,0.482-0.337,1.338-1.157,1.813-1.495,0.51-0.36,1.59-1.02,2.14-1.33\",\"name\":\"Одеська область\"},\"53\":{\"path\":\"M834.27,303.92v-1.468l-6.516-1.567-4.564-7.007,0.018-0.127,1.222-10.761,2.687-1.368,2.324,1.885,4.565-5.73,4.283-3.799,2.241,1.675,6.204,0.047,0.895,4.766,9.122,0.438v-2.525l1.767,0.046,1.439,1.922,6.606-0.529,8.212-7.81,1.202-2.878,3.363-0.801,2.843-5.888-0.01-0.346c0.239-0.054,0.474-0.09,0.619-0.127,0.311-0.064,0.957-0.127,1.275-0.102,0.575,0.047,1.725,0.312,2.242,0.557,0.665,0.318,1.724,1.42,2.378,1.768,0.492,0.255,1.561,0.673,2.114,0.693,0.409,0.018,1.295-0.137,1.621-0.402,0.283-0.219,0.521-0.947,0.64-1.284,0.129-0.337,0.181-1.094,0.356-1.414,0.09-0.171,0.338-0.574,0.525-0.583,0.284-0.027,0.677,0.51,0.885,0.692,0.356,0.31,1.012,0.966,1.332,1.304,0.454,0.473,1.192,1.568,1.711,1.95,0.401,0.291,1.322,0.746,1.815,0.803,0.683,0.081,2.049-0.366,2.724-0.476,0.372-0.063,1.121-0.272,1.495-0.245,0.327,0.028,0.964,0.245,1.257,0.4,0.256,0.146,0.812,0.492,0.902,0.774,0.127,0.356-0.438,1.095-0.319,1.44,0.127,0.374,0.83,0.866,1.202,0.993,0.412,0.138,1.303-0.09,1.732-0.054,0.684,0.046,1.995,0.482,2.67,0.482,0.31,0,0.93-0.054,1.184-0.218,0.258-0.164,0.53-0.756,0.692-1.011,0.146-0.237,0.329-0.793,0.528-0.994,0.294-0.282,1.066-0.683,1.478-0.719,0.283-0.019,0.829,0.237,1.095,0.346,0.554,0.255,1.576,0.965,2.13,1.23,0.802,0.382,2.46,1.049,3.308,1.313,1.068,0.319,3.245,0.884,4.358,0.929,0.946,0.046,2.896-0.091,3.763-0.482,0.402-0.174,1.175-0.73,1.338-1.139,0.146-0.402-0.354-1.285-0.218-1.687,0.1-0.282,0.574-0.701,0.828-0.856,0.274-0.164,0.912-0.374,1.23-0.374,0.283,0,0.813,0.319,1.095,0.319,0.519,0.009,1.512-0.374,2.005-0.529,0.576-0.191,1.677-0.729,2.268-0.857,0.537-0.117,1.668-0.245,2.216-0.164,0.501,0.083,1.376,0.684,1.867,0.776,0.574,0.11,1.742-0.128,2.323-0.072,0.42,0.036,1.25,0.19,1.632,0.363,0.348,0.165,0.948,0.647,1.23,0.912,0.355,0.346,0.819,1.266,1.221,1.549,0.165,0.109,0.575,0.319,0.755,0.237,0.265-0.108,0.403-0.783,0.476-1.066,0.127-0.473,0.264-1.466,0.162-1.949-0.081-0.402-0.737-1.048-0.8-1.468-0.055-0.336-0.027-1.139,0.236-1.357,0.536-0.465,2.124-0.045,2.835-0.055,0.919-0.01,2.77-0.109,3.681-0.027,0.627,0.064,1.868,0.292,2.461,0.484,0.362,0.117,1.147,0.337,1.384,0.637,0.21,0.265,0.283,0.976,0.265,1.313-0.018,0.456-0.428,1.304-0.49,1.758-0.111,0.838-0.074,2.543,0,3.381,0.071,0.774,0.299,2.332,0.545,3.071,0.236,0.729,0.93,2.123,1.357,2.761,0.564,0.829,1.978,2.269,2.688,2.98,0.476,0.491,1.568,1.339,1.995,1.868,0.256,0.309,0.739,0.993,0.85,1.385,0.055,0.2,0.045,0.636-0.028,0.838-0.1,0.291-0.611,0.71-0.755,0.974-0.174,0.312-0.521,0.958-0.503,1.305,0.019,0.354,0.366,1.093,0.684,1.265,0.284,0.154,0.956-0.136,1.276-0.1,0.41,0.044,1.175,0.355,1.567,0.502,0.618,0.227,1.904,0.655,2.462,1.021,0.398,0.254,1.191,0.847,1.384,1.275,0.146,0.355-0.202,1.203-0.02,1.548,0.165,0.338,0.874,0.766,1.241,0.903,0.392,0.146,1.347-0.082,1.677,0.172,0.218,0.174,0.272,0.792,0.381,1.049,0.146,0.318,0.656,0.884,0.685,1.239,0.017,0.311-0.274,0.912-0.466,1.157-0.311,0.419-1.185,1.057-1.658,1.267-0.382,0.165-1.448-0.091-1.641,0.274-0.254,0.482,0.655,1.485,0.901,1.968,0.365,0.738,1.031,2.278,1.559,2.898,0.337,0.4,1.149,1.103,1.641,1.266,0.566,0.192,1.814-0.081,2.405,0,0.701,0.101,2.022,0.547,2.751,0.803,0.64,0.236,1.732,1.129,2.37,1.157,0.549,0.028,2.005-0.775,2.005-0.775l1.367-5.986,1.731,0.619,0.365,1.604,2.733,0.692,2.822-3.044,5.927,2.17s1.73,5.093,0.637,6.625c-0.273,0.391-1.458,0.229-1.823,0.483-0.272,0.155-0.729,0.619-0.819,0.911-0.182,0.556,0.091,1.803,0,2.396,0,0.83-0.274,2.516-0.639,3.262-0.183,0.247-0.637,0.584-0.729,0.849-0.182,0.491-0.182,1.576,0,2.086,0.093,0.628,0.822,1.713,1.094,2.296,0.274,0.556,0.548,1.758,0.91,2.242,0.457,0.619,1.822,1.494,2.371,1.978,0.729,0.61,2.187,2.05,3.098,2.405,0.273,0.128,1.004,0.238,1.367,0.109,0.273-0.136,0.548-1.047,0.911-1.075,0.729-0.065,1.55,1.941,2.278,1.923,0.365-0.009,1.093-1.012,1.093-1.012l0.821,2.296h5.923l2.004,1.176,1.094,10.999s0.364,1.04,0.639,1.204c0.455,0.236,1.549-0.155,2.004-0.119,0.457,0.027,1.548-0.027,1.823,0.319,0.274,0.319-0.185,1.267,0,1.638,0.183,0.384,1.275,1.04,1.275,1.04l7.837,0.566,5.192,8.291s0,1.469-0.181,1.924c-0.183,0.445-0.912,1.138-1.004,1.603-0.09,0.427,0,1.367,0.185,1.758,0.181,0.293,1,0.556,1,0.885,0.183,0.446-0.455,1.257-0.637,1.677-0.275,0.62-0.548,2.095-1.094,2.486-0.456,0.273-1.458,0.247-1.913,0.119-0.638-0.156-1.367-1.139-2.007-1.321-0.637-0.227-2.092-0.145-2.823-0.082-0.546,0.046-1.64,0.101-2.003,0.438-0.456,0.4-0.821,1.649-0.821,2.251-0.091,0.5,0.091,1.521,0.274,1.995,0.181,0.529,0.91,1.458,1.275,1.886,0.456,0.521,1.639,1.277,2.006,1.841,0.361,0.62,1.185,2.086,1,2.807-0.183,0.72-1.731,1.395-2.277,1.876-0.457,0.393-1.457,1.129-1.823,1.603-0.546,0.666-1.55,2.124-1.55,2.962,0,0.556,1.004,1.45,0.912,2.005,0,0.457-0.638,1.24-1.094,1.44-0.455,0.199-1.367,0.1-1.822,0-0.457-0.091-1.185-0.62-1.549-0.721-0.73-0.155-2.187,0.101-2.825-0.036-0.546-0.11-1.457-0.693-2.003-0.802-0.639-0.146-2.007,0-2.734-0.082-1.005-0.101-2.825-0.557-3.828-0.721-0.819-0.146-2.551-0.912-3.278-0.52-1.186,0.629-1.916,3.582-2.279,4.885-0.183,0.675-0.364,2.808-0.364,2.808l4.556,8.637c-0.366,0.238-0.911,0.712-1.275,0.775-0.637,0.109-1.913-0.236-2.461-0.52-0.455-0.22-1.003-1.094-1.456-1.285-0.459-0.191-1.46-0.336-1.916-0.2-0.365,0.108-1.003,0.701-1.274,0.957-0.274,0.236-0.639,1.057-1.003,1.002-0.457-0.055-0.548-1.139-0.912-1.395-0.364-0.328-1.365-0.691-1.912-0.683-0.547,0.009-1.549,0.546-2.097,0.802-0.547,0.282-1.458,1.094-2.007,1.358-0.545,0.282-1.82,0.481-2.368,0.801-0.454,0.228-1.001,0.947-1.274,1.203-0.729,0.492-2.278,1.175-3.007,1.603-0.457,0.302-1.459,0.966-1.914,1.275-0.728,0.438-2.186,1.222-2.825,1.687-0.547,0.327-1.457,1.021-1.821,1.439-0.629,0.602-1.204,2.479-2.005,2.724-2.105,0.646-6.27-3.862-8.291-3.007-1.268,0.537-1.203,4.12-2.243,5.011-0.338,0.293-1.441,0.128-1.724,0.484-0.883,1.084,0.11,4.274-0.364,5.604-0.17,0.493-1.012,1.231-1.192,1.722-0.255,0.638-0.339,2.033-0.365,2.725-0.045,1.011,0.01,3.043,0.201,4.045,0.1,0.547,0.41,1.659,0.719,2.124,0.258,0.374,1.13,0.801,1.359,1.193,0.127,0.209,0.199,0.693,0.209,0.921,0.019,0.747-0.364,2.194-0.446,2.932-0.082,0.729,0.4,2.499-0.202,2.917-0.289,0.209-1.083-0.219-1.402-0.401-0.291-0.165-0.665-1.002-1.003-0.921-0.573,0.146-0.699,1.659-0.803,2.242-0.091,0.619,0,1.723,0.058,2.579-0.52-0.292-0.994-0.574-1.295-0.856-0.747-0.674-2.16-2.27-2.406-3.253-0.146-0.638,0.439-1.915,0.427-2.561,0-0.601-0.08-1.869-0.427-2.352-0.182-0.264-0.794-0.62-1.121-0.638-0.438-0.037-1.238,0.803-1.648,0.638-0.236-0.091-0.374-0.666-0.429-0.911-0.09-0.418,0.245-1.331,0.055-1.703-0.12-0.237-0.601-0.629-0.856-0.593-0.364,0.054-0.655,0.902-0.912,1.176-0.491,0.556-1.458,1.777-2.132,2.086-0.291,0.129-0.993,0.257-1.284,0.102-0.311-0.165-0.739-0.876-0.693-1.221,0.027-0.255,0.63-0.502,0.693-0.749,0.063-0.245-0.028-0.8-0.209-0.966-0.281-0.255-1.122-0.199-1.497-0.154-0.49,0.045-1.382,0.529-1.866,0.583-0.711,0.081-2.142-0.055-2.834-0.219-0.839-0.192-2.441-0.884-3.198-1.277-0.837-0.427-2.407-1.465-3.152-2.031-0.812-0.602-2.25-2.005-3.044-2.615-0.812-0.619-2.505-1.758-3.363-2.297-0.864-0.538-2.688-1.412-3.526-1.978-0.347-0.228-0.901-0.883-1.286-1.011-0.254-0.091-0.827-0.118-1.064,0-0.273,0.127-0.464,0.838-0.745,0.956-0.35,0.146-1.14-0.036-1.497-0.155-0.51-0.173-1.366-0.838-1.822-1.12-0.52-0.346-1.549-1.058-2.077-1.395-0.885-0.563-2.68-1.694-3.581-2.242-0.319-0.191-0.911-0.783-1.275-0.746-0.491,0.045-1.341,0.811-1.495,1.284-0.209,0.593,0.246,1.897,0.527,2.451,0.202,0.402,0.831,1.058,1.179,1.34,0.519,0.419,1.757,0.947,2.294,1.33,0.547,0.393,1.585,1.258,2.031,1.768,0.146,0.175,0.311,0.484,0.466,0.793l-2.122,4.493-1.76-0.109-1.12-2.033-4.866-0.045-1.276-2.196-3.471-0.055-0.222,2.888-3.417-1.119-5.176-8.658,3.309,0.273,0.639-2.242-0.492-1.968c0.502-0.254,1.03-0.71,1.24-1.03,0.211-0.3,0.274-1.075,0.274-1.439,0-0.428-0.009-1.403-0.319-1.704-0.457-0.438-1.85-0.254-2.461-0.374-0.028-0.01-0.065-0.018-0.092-0.018l1.376-0.894-1.922-2.824-3.327,0.136c-0.019-0.027-0.026-0.055-0.035-0.091-0.211-0.383-0.676-1.12-1.021-1.385-0.503-0.382-1.786-0.62-2.352-0.911-0.676-0.347-1.96-1.185-2.562-1.65-0.601-0.465-1.793-1.422-2.241-2.032-0.773-1.057-1.603-3.581-2.188-4.757-0.281-0.556-0.672-1.832-1.176-2.188-0.601-0.419-2.187-0.199-2.889-0.428-0.554-0.174-1.63-0.694-2.085-1.066-0.674-0.575-1.495-2.215-2.132-2.834-0.702-0.683-2.342-1.813-3.209-2.297-0.209-0.118-0.746-0.181-0.902-0.373-0.199-0.228-0.438-0.92-0.263-1.167,0.226-0.355,1.285-0.073,1.648-0.272,0.456-0.248,1.149-1.085,1.394-1.551,0.373-0.71,0.584-2.358,0.748-3.152,0.163-0.802,1.065-2.625,0.528-3.254-0.229-0.273-1.102-0.136-1.44,0-0.481,0.192-1.129,1.066-1.493,1.44-0.511,0.52-1.595,1.522-1.979,2.133-0.218,0.355-0.237,1.339-0.582,1.558-0.356,0.218-1.386,0.154-1.659-0.164-0.272-0.328,0.135-1.285,0.101-1.713-0.037-0.565-0.191-1.741-0.474-2.242-0.265-0.456-1.075-1.203-1.55-1.439-0.555-0.283-1.83-0.428-2.461-0.484-0.729-0.063-2.222,0.237-2.934,0.056-0.363-0.092-1.094-0.447-1.34-0.748-0.336-0.418-0.665-1.541-0.638-2.078,0.027-0.629,0.646-1.768,0.967-2.296,0.399-0.684,1.585-1.776,1.977-2.46,0.594-1.049,1.376-3.363,1.65-4.539,0.227-0.966,0.474-2.962,0.427-3.955-0.019-0.474-0.009-1.567-0.372-1.868-0.302-0.246-1.212-0.191-1.551,0-0.311,0.174-0.436,1.039-0.746,1.229-0.246,0.156-0.911,0.238-1.174,0.109-0.203-0.099-0.348-0.573-0.485-0.755-0.155-0.219-0.409-0.674-0.665-0.921l0.21-3.024-5.066-1.021-3.472-0.984-0.886-2.005,0.622-1.122-0.11-2.268-4.676-3.919-1.603,0.875-6.532-9.02,3.014-2.515-0.427-5.231-2.697-1.065,0.401-6.679-1.395-2.05-4.702-0.22-1.412-1.758,0.665-6.061,0.85-0.15z\",\"name\":\"Полтавська область\"},\"56\":{\"path\":\"M514.57,251.32l-0.21,0.1-3.198-0.155-1.604-4.329-3.153,1.175-1.067,2.671-3.898,0.154-2.133,2.196-4.438-2.779-3.737,2.078s-0.136,1.568-0.529,1.822c-0.364,0.229-1.283-0.263-1.713-0.272-0.71,0-2.186,0.063-2.824,0.383-0.501,0.236-1.35,1.046-1.604,1.539-0.311,0.593-0.283,1.977-0.428,2.625-0.209,0.884-0.72,2.624-1.076,3.463-0.137,0.337-0.374,1.102-0.691,1.285-0.32,0.191-1.14-0.174-1.495-0.055-1.212,0.41-3.017,2.387-4,3.208-0.684,0.564-2.151,1.585-2.671,2.295-0.401,0.537-0.692,1.904-1.065,2.452-0.548,0.792-1.988,2.077-2.725,2.677-0.875,0.703-2.698,2.088-3.746,2.507-0.738,0.292-2.352,0.438-3.144,0.528-0.482,0.064-1.477-0.018-1.923,0.164-0.638,0.255-1.64,1.249-2.141,1.713-0.893,0.829-2.424,2.735-3.308,3.572-0.857,0.819-2.579,2.506-3.635,3.043-0.802,0.419-2.862,0.893-4.165,1.167l0.292-6.088s1.238-1.449,1.604-1.968c0.228-0.31,0.857-0.938,0.802-1.321-0.037-0.311-0.638-0.72-0.92-0.874-0.282-0.166-0.919-0.33-1.24-0.33-0.4,0.009-1.139,0.346-1.521,0.447-0.355,0.091-1.075,0.318-1.439,0.318-0.802-0.008-2.351-0.473-3.089-0.766-0.438-0.173-1.194-0.765-1.641-0.919-0.418-0.146-1.322-0.347-1.758-0.275-0.419,0.065-1.112,0.565-1.485,0.757-0.347,0.183-1.011,0.756-1.403,0.72-0.411-0.036-1.022-0.709-1.323-1.001-0.463-0.456-1.102-1.668-1.64-2.042-0.31-0.219-1.066-0.501-1.44-0.483-0.492,0.037-1.385,0.539-1.767,0.848-0.384,0.311-0.92,1.149-1.204,1.559-0.365,0.546-1.021,1.695-1.321,2.288-0.201,0.401-0.437,1.293-0.72,1.639-0.383,0.474-1.485,1.076-1.996,1.404-0.492,0.3-1.477,0.912-2.004,1.12-0.62,0.237-1.923,0.738-2.57,0.603-0.584-0.137-1.394-1.139-1.877-1.486-0.202-0.137-0.803-0.519-0.803-0.519l-5.804,0.155s-1.239,1.266-1.649,1.686c-0.273,0.291-0.721,1.102-1.121,1.166-0.684,0.091-1.832-0.975-2.397-1.367-0.546-0.364-1.494-1.284-2.049-1.64-0.346-0.228-1.084-0.638-1.477-0.765-0.41-0.128-1.302-0.429-1.686-0.237-0.482,0.237-0.901,1.358-1.039,1.886-0.145,0.556-0.117,1.75,0,2.324,0.092,0.437,0.511,1.249,0.721,1.64,0.272,0.492,0.983,1.377,1.239,1.877,0.21,0.4,0.583,1.24,0.647,1.686,0.054,0.382,0.082,1.231-0.119,1.558-0.282,0.456-1.312,0.929-1.805,1.13-0.719,0.273-2.351,0.21-3.043,0.556-1.112,0.556-3.29,2.779-4.337,3.891-0.364,0.382-0.592,0.638-0.592,0.638l-12.092-14.379-0.201-10.06,3.718-1.914-0.119-2.406-4.046-0.865v-3.9l3.891-1.002-1.084-3.363s0.593-0.245,0.802-0.245c0.273,0,0.765,0.336,1.038,0.318,0.273-0.009,0.839-0.219,1.003-0.437,0.183-0.238,0.229-0.902,0.164-1.203-0.091-0.41-0.602-1.13-0.884-1.439-0.355-0.384-1.403-0.802-1.686-1.241-0.291-0.464-0.455-1.612-0.437-2.168,0.028-0.719,0.593-2.095,0.756-2.797,0.128-0.51,0.466-1.521,0.447-2.041-0.018-0.537-0.355-1.577-0.602-2.041-0.273-0.537-1.193-1.367-1.483-1.887-0.239-0.437-0.767-1.394-0.676-1.885,0.082-0.457,0.774-1.24,1.194-1.44,0.61-0.292,2.031-0.174,2.687-0.037,0.493,0.1,1.395,0.565,1.842,0.802,0.61,0.319,1.694,1.267,2.359,1.44,0.491,0.127,1.539,0.091,2.005-0.082,0.336-0.127,0.911-0.593,1.121-0.884,0.282-0.374,0.601-1.266,0.684-1.722,0.108-0.564-0.11-1.75,0-2.314,0.091-0.456,0.31-1.449,0.683-1.731,0.382-0.291,1.44-0.255,1.923-0.2,0.419,0.055,1.211,0.728,1.595,0.564,0.328-0.137,0.474-0.948,0.601-1.285,0.237-0.583,0.382-1.895,0.765-2.396,0.382-0.51,1.512-1.222,2.124-1.403,0.692-0.219,2.16-0.046,2.88-0.046,0.983,0.009,2.943,0.082,3.926,0.082,0.775,0.009,2.324,0.109,3.08-0.036,0.557-0.11,1.677-0.419,2.087-0.802,0.283-0.273,0.547-1.057,0.656-1.431,0.119-0.411,0.064-1.293,0.237-1.686,0.091-0.19,0.355-0.593,0.564-0.638,0.575-0.11,1.559,0.821,2.078,1.094,0.547,0.292,1.687,0.766,2.169,1.147,0.346,0.283,0.993,0.949,1.176,1.368,0.154,0.365,0.046,1.212,0.154,1.595,0.128,0.437,0.419,1.395,0.802,1.631,0.446,0.282,1.585,0.027,2.114,0.027,0.391,0,1.24-0.173,1.595,0,0.392,0.192,0.883,0.967,1.048,1.367,0.163,0.42-0.028,1.413,0.183,1.813,0.127,0.255,0.61,0.602,0.855,0.748,0.283,0.173,0.948,0.629,1.258,0.482,0.337-0.162,0.392-1.057,0.482-1.421,0.109-0.465,0.21-1.439,0.264-1.922,0.037-0.365,0.046-1.103,0.127-1.467,0.146-0.629,0.693-1.815,0.912-2.425,0.301-0.838,0.938-2.506,1.176-3.362,0.245-0.893,0.583-2.707,0.747-3.608,0.137-0.757,0.082-2.37,0.456-3.044,0.274-0.511,1.211-1.275,1.731-1.522,0.612-0.291,2.004-0.364,2.669-0.455,0.939-0.128,2.826-0.3,3.765-0.373,0.455-0.037,1.431,0.126,1.822-0.11,0.255-0.155,0.547-0.729,0.638-1.012,0.1-0.337,0.173-1.083,0.055-1.412-0.191-0.529-1.185-1.194-1.521-1.631-0.274-0.355-0.839-1.066-0.967-1.494-0.172-0.602-0.045-1.886,0.027-2.516,0.083-0.71,0.265-2.186,0.648-2.797,0.292-0.492,1.303-1.121,1.758-1.475,0.984-0.756,3.372-1.869,4.055-2.908,0.273-0.399,0.374-1.393,0.428-1.868,0.073-0.583,0.09-1.767,0.028-2.351-0.056-0.555-0.165-1.722-0.502-2.16-0.347-0.456-1.458-0.92-2.004-1.065-0.438-0.12-1.35,0.008-1.786-0.055-0.61-0.102-1.804-0.419-2.351-0.702-0.401-0.192-1.23-0.675-1.449-1.066-0.236-0.428-0.145-1.476-0.127-1.978,0.009-0.4-0.009-1.257,0.182-1.622,0.1-0.2,0.465-0.509,0.675-0.592,0.346-0.137,1.139-0.055,1.513,0,0.347,0.055,0.993,0.447,1.339,0.4,0.456-0.054,1.222-0.664,1.577-0.957,0.364-0.3,0.956-1.046,1.258-1.421,0.236-0.301,0.828-0.874,0.901-1.249,0.101-0.51-0.283-1.531-0.482-2.004-0.128-0.328-0.52-0.912-0.721-1.202-0.564-0.849-1.776-2.498-2.451-3.263-0.364-0.401-1.339-1.003-1.576-1.495-0.164-0.328-0.127-1.121-0.164-1.494-0.037-0.546,0.019-1.668-0.1-2.215-0.138-0.601-0.638-1.767-0.968-2.296-0.4-0.629-1.512-1.659-1.977-2.242-0.501-0.637-1.503-1.932-1.896-2.644-0.218-0.41-0.601-1.274-0.692-1.73-0.184-0.921-0.037-2.807-0.028-3.746,0.009-0.502,0.183-1.513,0.055-1.996-0.055-0.21-0.236-0.628-0.428-0.729-0.338-0.163-1.185-0.009-1.521,0.165-0.474,0.246-1.076,1.193-1.386,1.631-0.191,0.273-0.337,1.093-0.675,1.148-0.282,0.045-0.665-0.556-0.875-0.748-0.272-0.254-0.711-0.892-1.038-1.038-0.265-0.12-0.875-0.128-1.148-0.064-0.365,0.091-0.93,0.667-1.286,0.756-0.282,0.064-0.911,0.074-1.147-0.082-0.348-0.228-0.565-1.113-0.775-1.467-0.246-0.41-0.784-1.186-1.038-1.576-0.283-0.429-1.049-1.186-1.148-1.686-0.091-0.412,0.272-1.239,0.319-1.65,0.063-0.702,0.09-2.086,0.027-2.779-0.036-0.419-0.172-1.249-0.328-1.631-0.119-0.3-0.455-0.867-0.692-1.094-0.273-0.273-1.085-0.483-1.303-0.802-0.255-0.365-0.274-1.293-0.318-1.74-0.065-0.493-0.256-1.513-0.11-1.996,0.073-0.246,0.447-0.593,0.583-0.802,0.202-0.292,0.675-0.838,0.72-1.176,0.092-0.583-0.363-1.731-0.583-2.269-0.318-0.774-1.285-2.168-1.685-2.915-0.2-0.383-0.848-1.122-0.774-1.541,0.036-0.172,0.337-0.456,0.51-0.482,0.364-0.063,1.002,0.501,1.357,0.584,0.338,0.072,1.048,0.136,1.368,0.026,0.427-0.136,1.111-0.766,1.412-1.093,0.292-0.32,0.739-1.048,0.911-1.44,0.155-0.365,0.284-1.151,0.402-1.522,0.136-0.431,0.437-1.28,0.637-1.682,0.255-0.517,0.957-1.444,1.23-1.949,0.337-0.615,1.03-1.854,1.176-2.538,0.146-0.674,0.073-2.073-0.055-2.75-0.082-0.435-0.318-1.327-0.609-1.655-0.155-0.169-0.63-0.3-0.83-0.401-0.219-0.105-0.748-0.213-0.856-0.427-0.191-0.386,0.182-1.275,0.32-1.684,0.19-0.571,0.883-1.584,1.048-2.161,0.1-0.396-0.019-1.25,0.127-1.629,0.173-0.448,0.793-1.231,1.176-1.521,0.419-0.317,1.54-0.449,1.95-0.774,0.392-0.308,0.965-1.162,1.12-1.631,0.12-0.366,0.356-1.302,0.056-1.547-0.464-0.378-1.731,0.498-2.323,0.561-0.757,0.08-2.297,0.047-3.044-0.079-0.392-0.067-1.176-0.287-1.522-0.482-0.455-0.263-1.302-0.962-1.576-1.415-0.283-0.463-0.537-1.445-0.619-2.143,1.722-0.013,3.571-0.059,4.729-0.076,1.914-0.024,5.75-0.342,7.654-0.16,0.519,0.05,1.559,0.239,2.041,0.442,0.538,0.225,1.395,1.131,1.958,1.28,0.647,0.172,1.996-0.3,2.644-0.16,0.709,0.154,1.903,1.067,2.569,1.359,0.656,0.299,1.995,0.923,2.724,1.006,0.538,0.059,1.613-0.325,2.16-0.281,0.665,0.052,1.941,0.529,2.56,0.761,0.785,0.29,2.287,1.014,3.044,1.362,1.148,0.521,3.508,1.443,4.565,2.121,0.957,0.609,2.397,2.503,3.445,2.924,0.792,0.315,2.551,0.188,3.409,0.199,0.992,0.017,2.979-0.193,3.962-0.119,0.866,0.062,2.624,0.223,3.409,0.601,0.719,0.355,1.859,1.565,2.397,2.163,0.61,0.673,1.549,2.256,2.168,2.923,0.583,0.631,1.794,1.934,2.597,2.244,0.346,0.132,1.121,0.088,1.485,0.039,0.474-0.064,1.403-0.372,1.841-0.56,0.774-0.323,2.114-1.401,2.925-1.6,0.884-0.223,2.788-0.271,3.645,0.039,0.857,0.307,2.151,1.692,2.843,2.281,0.765,0.649,2.142,2.125,2.961,2.686,0.474,0.317,1.522,0.783,2.051,0.998,0.801,0.335,2.515,0.773,3.316,1.121,0.812,0.356,2.25,1.423,3.09,1.686,0.627,0.197,1.977,0.305,2.642,0.276,1.039-0.036,3.053-0.604,4.082-0.759,1.222-0.182,3.663-0.533,4.894-0.56,1.275-0.028,3.918-0.101,5.121,0.359,0.383,0.146,1.066,0.654,1.285,1.004,0.3,0.495,0.418,1.701,0.438,2.275,0.027,1.076-0.739,3.189-0.574,4.257,0.146,0.92,0.837,2.833,1.604,3.361,0.565,0.383,2.296-0.328,2.725,0.21,0.31,0.391-0.31,1.477-0.32,1.977-0.018,0.401-0.1,1.294,0.155,1.604,0.246,0.302,1.139,0.265,1.495,0.428,0.438,0.201,1.148,0.911,1.604,1.066,0.756,0.246,2.415-0.009,3.208,0.154,1.02,0.219,2.853,1.504,3.891,1.495,0.7,0,1.95-0.81,2.624-1.011,0.729-0.219,2.223-0.656,2.989-0.638,0.911,0.018,2.661,0.62,3.527,0.91,0.938,0.31,2.724,1.232,3.681,1.496,0.702,0.191,2.242,0.073,2.879,0.428,0.438,0.237,1.257,1.001,1.284,1.494,0.046,0.776-1.32,1.924-1.759,2.562-0.509,0.737-1.613,2.149-2.032,2.934-0.191,0.355-0.646,1.103-0.583,1.494,0.009,0.091,0.037,0.183,0.082,0.274l-0.938,1.01-1.285,2.562-1.759,0.375-1.23,7.798-1.12,1.066s-1.067-1.303-1.395-1.768c-0.456-0.637-1.158-2.085-1.705-2.66-0.282-0.301-0.92-0.985-1.339-0.965-0.455,0.027-1.157,0.828-1.386,1.229-0.364,0.646-0.354,2.214-0.536,2.934-0.154,0.665-1.058,1.986-0.802,2.616,0.155,0.355,1.056,0.445,1.338,0.692,0.293,0.264,0.803,0.912,0.904,1.286,0.126,0.445,0.091,1.429-0.155,1.823-0.247,0.391-1.185,0.738-1.604,0.956-0.227,0.119-0.957,0.429-0.957,0.429l-2.142,0.209,0.373,9.667-6.779,5.932s-1.066,0.994-1.229,1.44c-0.174,0.492,0.136,1.577,0,2.079-0.109,0.41-0.647,1.075-0.857,1.439-0.146,0.282-0.383,0.874-0.583,1.13-0.236,0.3-1.012,0.656-1.175,1.011-0.191,0.429-0.055,1.403,0,1.869,0.027,0.235,0.264,0.682,0.219,0.911-0.11,0.456-0.757,1.257-1.175,1.439-0.356,0.155-1.167-0.164-1.549-0.108-0.793,0.126-2.25,0.874-2.989,1.174-0.446,0.182-1.403,0.438-1.767,0.747-0.312,0.275-0.867,0.985-0.857,1.395,0.027,0.656,1.257,1.541,1.549,2.132,0.319,0.638,0.738,2.024,0.856,2.725,0.073,0.438,0.247,1.367,0.055,1.759-0.146,0.301-1.011,0.474-1.066,0.801-0.082,0.438,0.729,1.112,0.957,1.495,0.365,0.62,1.094,1.859,1.394,2.515,0.192,0.42,0.692,1.294,0.638,1.758-0.055,0.475-0.885,1.158-1.067,1.605-0.172,0.401-0.409,1.274-0.373,1.712,0.045,0.593,0.729,1.649,0.847,2.243,0.11,0.491,0.183,1.521,0.11,2.021-0.065,0.51-0.584,1.422-0.639,1.924-0.081,0.746,0.319,2.242,0.319,2.988,0,0.639-0.074,1.915-0.265,2.516-0.273,0.829-1.238,2.332-1.767,3.043-0.72,0.966-2.442,2.679-3.307,3.527-0.358,0.346-1.496,1.33-1.496,1.33l0.374,1.767,2.296,1.595,2.406,1.714-0.374,1.549-2.02,0.94z\",\"name\":\"Рівненська область\"},\"59\":{\"path\":\"M1047.7,276.95c-0.092,0.528-0.272,1.204-0.364,1.585-0.093,0.41-0.273,1.267-0.547,1.604-0.275,0.273-0.819,0.793-1.186,0.774-0.272-0.009-0.728-0.545-0.91-0.737-0.274-0.191-0.548-0.71-0.821-0.801-0.547-0.155-1.549,0.154-2.003,0.265-0.548,0.099-1.458,0.382-1.916,0.555-0.453,0.154-1.456,0.355-1.64,0.765-0.089,0.337,0.64,1.021,0.547,1.376-0.091,0.265-0.547,0.574-0.819,0.72-0.183,0.119-0.547,0.373-0.729,0.348-0.546-0.073-1.185-1.049-1.64-1.423-0.457-0.51-1.459-1.612-1.914-2.169-0.273-0.327-0.729-1.321-1.184-1.34-0.275-0.008-0.456,0.574-0.639,0.72-0.455,0.302-1.367,0.685-1.823,0.885-0.636,0.272-1.82,0.747-2.459,0.984-0.274,0.11-1.004,0.228-1.184,0.438-0.185,0.155-0.459,0.61-0.459,0.837,0,0.291,0.185,0.866,0.367,1.103,0.181,0.272,0.818,0.573,0.912,0.866,0.089,0.218,0.181,0.746,0.089,0.957-0.089,0.218-0.637,0.437-0.82,0.501-0.548,0.137-1.458,0.064-2.004,0.082-0.547,0.008-1.731-0.274-2.187,0.019-0.274,0.154-0.547,0.728-0.547,1.02-0.092,0.383,0.547,1.039,0.547,1.421,0,0.274-0.274,0.803-0.364,1.021-0.183,0.273-0.729,0.693-1.003,0.884-0.183,0.146-0.64,0.438-0.822,0.482-0.454,0.074-1.275-0.21-1.729-0.3-0.64-0.146-1.915-0.52-2.644-0.682-0.271-0.074-0.911-0.347-1.185-0.284-0.364,0.082-0.91,0.629-1.186,0.884-0.455,0.41-1.275,1.294-1.549,1.822-0.181,0.409-0.364,1.312-0.456,1.758,0,0.483,0.092,1.45,0.092,1.923-0.092,0.318-0.182,1.011-0.455,1.202-0.183,0.146-0.729,0.065-0.913,0.082-0.543,0.037-1.639,0.247-2.187,0.119-0.363-0.073-0.819-0.474-1.092-0.638-0.365-0.173-0.819-0.748-1.186-0.702-1.367,0.2-3.552,4.028-3.552,4.028l-5.927-2.17-2.823,3.044-2.733-0.692-0.364-1.604-1.732-0.619-1.366,5.986s-1.456,0.803-2.005,0.775c-0.638-0.028-1.73-0.921-2.37-1.157-0.729-0.255-2.05-0.702-2.751-0.803-0.591-0.081-1.84,0.192-2.407,0-0.49-0.164-1.302-0.866-1.639-1.266-0.528-0.62-1.193-2.16-1.559-2.898-0.246-0.482-1.155-1.486-0.902-1.968,0.192-0.365,1.259-0.109,1.642-0.274,0.474-0.209,1.348-0.847,1.657-1.267,0.192-0.245,0.483-0.847,0.466-1.156-0.027-0.356-0.538-0.922-0.685-1.24-0.108-0.256-0.162-0.875-0.381-1.049-0.329-0.254-1.284-0.026-1.678-0.172-0.365-0.137-1.074-0.565-1.24-0.903-0.182-0.345,0.166-1.193,0.021-1.548-0.192-0.428-0.985-1.021-1.386-1.275-0.556-0.366-1.842-0.793-2.46-1.021-0.394-0.147-1.158-0.458-1.568-0.502-0.319-0.037-0.992,0.254-1.275,0.1-0.318-0.172-0.666-0.911-0.684-1.265-0.019-0.347,0.328-0.994,0.503-1.305,0.144-0.263,0.653-0.683,0.755-0.974,0.073-0.201,0.083-0.638,0.028-0.838-0.11-0.393-0.595-1.076-0.85-1.385-0.428-0.529-1.521-1.377-1.995-1.868-0.702-0.711-2.123-2.151-2.688-2.98-0.428-0.638-1.121-2.032-1.357-2.761-0.246-0.739-0.474-2.296-0.545-3.071-0.074-0.838-0.111-2.543,0-3.381,0.062-0.454,0.471-1.302,0.49-1.758,0.018-0.337-0.056-1.048-0.265-1.313-0.237-0.3-1.021-0.52-1.385-0.637-0.592-0.192-1.833-0.429-2.46-0.483-0.911-0.083-2.762,0.008-3.682,0.026-0.71,0.009-2.288-0.41-2.834,0.055-0.264,0.218-0.292,1.021-0.236,1.357,0.062,0.421,0.719,1.067,0.8,1.468,0.102,0.482-0.035,1.476-0.162,1.949-0.074,0.284-0.211,0.958-0.476,1.067-0.181,0.082-0.591-0.128-0.755-0.238-0.401-0.283-0.865-1.203-1.221-1.548-0.283-0.265-0.883-0.748-1.23-0.912-0.382-0.174-1.212-0.328-1.633-0.364-0.582-0.056-1.749,0.182-2.322,0.072-0.492-0.092-1.368-0.693-1.869-0.776-0.546-0.081-1.677,0.047-2.214,0.164-0.592,0.128-1.693,0.667-2.268,0.857-0.494,0.155-1.486,0.538-2.006,0.529-0.281,0-0.811-0.319-1.094-0.319-0.318,0-0.948,0.209-1.23,0.374-0.255,0.156-0.729,0.574-0.828,0.856-0.136,0.401,0.364,1.285,0.218,1.687-0.163,0.409-0.938,0.965-1.338,1.139-0.866,0.391-2.816,0.529-3.763,0.482-1.114-0.045-3.291-0.61-4.358-0.929-0.848-0.264-2.506-0.931-3.308-1.313-0.556-0.265-1.576-0.975-2.13-1.23-0.266-0.109-0.813-0.365-1.095-0.346-0.411,0.036-1.184,0.437-1.478,0.719-0.199,0.2-0.382,0.757-0.528,0.994-0.162,0.255-0.436,0.847-0.692,1.012-0.255,0.164-0.874,0.217-1.185,0.217-0.674,0-1.986-0.436-2.669-0.482-0.43-0.036-1.32,0.192-1.732,0.054-0.363-0.126-1.076-0.619-1.202-0.993-0.118-0.345,0.446-1.084,0.318-1.44-0.09-0.283-0.646-0.628-0.901-0.774-0.293-0.156-0.931-0.373-1.257-0.401-0.374-0.027-1.123,0.182-1.496,0.245-0.675,0.11-2.04,0.556-2.724,0.476-0.493-0.057-1.413-0.512-1.814-0.803-0.519-0.382-1.258-1.477-1.712-1.95-0.319-0.337-0.975-0.994-1.332-1.304-0.207-0.183-0.6-0.72-0.884-0.692-0.188,0.009-0.436,0.411-0.526,0.583-0.175,0.32-0.228,1.076-0.355,1.414-0.118,0.337-0.356,1.066-0.64,1.284-0.327,0.265-1.212,0.419-1.621,0.402-0.554-0.02-1.622-0.438-2.114-0.693-0.655-0.347-1.705-1.45-2.378-1.768-0.519-0.246-1.668-0.51-2.242-0.557-0.318-0.026-0.966,0.038-1.276,0.102-0.146,0.037-0.38,0.073-0.618,0.127l-0.064-1.541,2.042-3.48,1.604-2.807-0.766-2.042,1.924-2.279,0.838-2.805,4.966,0.165,0.163-1.722-4.766-2.808-1.238-4.045,1.959-2.405-0.483-6.453,2.487,0.046,0.839-1.122-0.237-6.651-12.895-13.531-1.156-0.501-0.957,0.692-1.012-0.045v-1.021l0.155-1.978,1.12-1.541,0.21-1.339-0.638-1.705-0.055-1.395,0.912-1.065,1.493-0.374,1.387-0.801,0.063-1.276,0.154-1.714,1.067-1.549,0.967-2.296-0.304-2.059,0.11-3.471-0.983-1.332-0.983-0.829-1.287-2.779-0.938-1.413-0.083-1.229,0.784-1.147,0.929-0.348,0.984,0.32,0.484,0.938,0.375,1.603,0.371,1.759,1.66,1.631,1.84,0.374,1.204-0.83,0.982-1.867,0.164-1.367-1.412-1.868-0.856-1.468-0.801-1.494-0.184-2.406,0.748-0.929,1.921-0.911,1.732-1.066,0.292-1.494-0.829-1.231-0.901-1.521-0.913-1.631,1.313-0.583,1.923,0.082,0.792-0.456-0.235-1.631-1.067-2.806-1.257-2.078-1.12-1.011-0.291-2.998-0.348-2.188-1.549-1.977-2.032-1.814-0.025-3.181,1.119-4.2,1.485-2.525,0.956-1.686,0.128-1.919-0.128-1.241,0.72-1.241,1.851-1.404,0.519,0.644,1.32,1.16,1.241-0.399,0.437-1.281-0.602-1.205,0.448-0.598,1.356,0.078,1.203,0.604,1.687,0.157,0.755-0.717,1.366,0.319,1.679,0.72,0.646-1.642,0.958-2.564-1.205-2.602-0.836-1.403-1.96-0.919-2.168-2.323-0.686-1.402,1.568-0.521,2.206-0.402,1.759-0.48,0.602,1.16,1.521,0.802,1.357-0.479h1.605l1.767-0.681,0.082-1.404-1.211-1.881-1.03-0.16-0.93-1.241-0.283-1.723-1.238-1.282-2.442-0.962-2.277-1.721-1.969-1.843-0.482-2.483,0.965-2.685,1.805-2.521,0.273-2.925,0.484-3.204,1.236-2.683,1.014-2.884c1.01,0.057,2.241,0.119,2.96,0.148,0.529,0.02,1.649-0.17,2.132,0.052,0.365,0.167,0.866,0.838,1.068,1.175,0.3,0.488,0.572,1.616,0.8,2.137,0.128,0.289,0.291,1.019,0.585,1.12,0.464,0.159,1.319-0.615,1.767-0.8,0.857-0.351,2.607-0.942,3.473-1.281,1.075-0.42,3.144-1.505,4.271-1.763,0.903-0.206,2.763-0.305,3.683-0.213,1.313,0.13,3.892,0.768,5.077,1.334,1.211,0.583,3.371,2.253,4.328,3.205,0.582,0.586,1.492,1.989,1.968,2.669,0.474,0.681,1.303,2.129,1.822,2.779,0.702,0.886,2.269,2.543,3.146,3.256,0.526,0.429,1.749,1.054,2.294,1.441,0.684,0.478,2.151,1.349,2.625,2.032,0.448,0.655,0.774,2.257,0.901,3.044,0.128,0.804,0.146,2.441,0.109,3.256-0.063,1.158-0.555,3.438-0.637,4.594-0.074,0.865-0.219,2.616-0.056,3.47,0.209,1.093,1.103,3.177,1.703,4.111,0.431,0.661,1.578,1.75,2.143,2.296,0.838,0.828,2.827,2.195,3.526,3.152,0.527,0.732,1.148,2.454,1.44,3.312,0.2,0.6,0.118,2.034,0.583,2.457,0.365,0.326,1.44,0.244,1.923,0.267,0.774,0.032,2.323-0.181,3.097-0.162,0.521,0.014,1.641-0.064,2.088,0.214,0.475,0.299,0.984,1.39,1.165,1.922,0.319,0.916,0.184,2.909,0.428,3.846,0.211,0.775,0.912,2.224,1.288,2.935,0.337,0.637,1.403,1.75,1.548,2.461,0.128,0.601-0.02,1.95-0.374,2.451-0.364,0.528-1.649,0.993-2.24,1.229-0.939,0.384-2.944,0.739-3.902,1.067-1.119,0.382-3.296,1.33-4.383,1.821-0.9,0.411-2.614,1.496-3.57,1.76-0.867,0.246-2.717,0.073-3.583,0.319-0.719,0.209-2.242,0.72-2.67,1.338-0.135,0.191-0.209,0.739-0.107,0.958,0.226,0.445,1.301,0.737,1.711,1.011,1.403,0.947,4.303,2.779,5.396,4.063,0.691,0.812,1.367,2.908,1.978,3.792,0.611,0.883,2.112,2.451,2.879,3.197,0.684,0.675,2.633,1.595,2.89,2.516,0.182,0.692-0.576,2.087-0.911,2.725-0.529,0.966-2.305,2.451-2.725,3.472-0.238,0.583-0.43,1.895-0.264,2.505,0.154,0.565,0.965,1.467,1.384,1.868,0.921,0.875,3.473,1.813,4.219,2.834,0.31,0.419,0.657,1.466,0.583,1.977-0.071,0.637-0.847,1.767-1.329,2.187-0.529,0.456-2.032,0.666-2.562,1.121-0.401,0.338-1.047,1.249-1.12,1.768-0.08,0.602,0.446,1.786,0.692,2.343,0.283,0.628,0.911,1.903,1.44,2.351,0.335,0.282,1.174,0.582,1.603,0.646,0.674,0.091,2.06-0.1,2.726-0.272,0.647-0.165,1.795-0.949,2.45-1.066,0.575-0.092,1.741,0.009,2.298,0.163,0.474,0.119,1.358,0.583,1.768,0.848,0.545,0.365,1.339,1.549,1.966,1.713,0.602,0.156,1.815-0.355,2.408-0.482,0.884-0.183,2.632-0.702,3.523-0.749,0.459-0.017,1.396,0.047,1.814,0.221,0.648,0.263,1.66,1.256,2.197,1.704,0.736,0.619,2.115,1.94,2.842,2.561,0.548,0.418,1.458,1.393,2.006,1.603,0.547,0.21,1.822,0.11,2.46,0,1.003-0.164,2.733-1.001,3.735-1.33,1.185-0.437,3.555-1.348,4.74-1.767,1.366-0.448,3.917-1.368,5.284-1.705,0.912-0.237,2.824-0.739,3.828-0.692,0.546,0.018,1.639,0.345,2.095,0.583,0.82,0.392,2.461,1.403,3.007,2.142,0.548,0.674,0.911,2.379,1.094,3.199,0.364,1.285,0.546,3.973,1.001,5.229,0.275,0.894,1.004,2.698,1.643,3.373,0.453,0.492,1.729,1.12,2.368,1.274,0.639,0.147,1.913-0.063,2.461-0.054,1.092,0.027,3.278,0.019,4.282,0.275,0.729,0.182,2.277,0.802,2.826,1.283,0.546,0.384,1.638,1.34,1.638,1.969,0,0.418-0.544,1.157-0.91,1.394-0.639,0.428-2.279,0.329-2.915,0.693-0.549,0.292-1.643,1.121-1.824,1.704-0.18,0.702,0.457,2.178,0.729,2.833,0.456,0.93,1.824,2.497,2.552,3.252,0.365,0.43,1.367,1.058,1.642,1.55,0.364,0.593,0.455,2.013,0.636,2.671,0.364,0.982,1.002,2.951,1.459,3.844,0.456,0.711,1.641,1.876,2.005,2.57,0.546,0.81,1.457,2.532,1.732,3.472,0.18,1.011,0.09,3.116,0.18,4.164,0,0.811,0.366,2.458,0.184,3.253-0.184,0.793-1.093,2.178-1.456,2.889-0.366,0.646-1.278,1.84-1.46,2.561-0.274,0.729-0.182,2.287-0.091,3.043,0.091,1.167,0.365,3.518,0.728,4.646,0.274,1.211,1.276,3.555,1.916,4.648,0.363,0.702,1.365,1.987,1.911,2.615,0.185,0.237,0.548,0.738,0.822,0.902,0.272,0.166,0.91,0.247,1.184,0.374,0.456,0.228,1.368,0.83,1.731,1.13,0.639,0.447,2.096,1.25,2.553,1.914,0.363,0.575,0.363,1.987,0.545,2.625,0.183,0.546,0.548,1.649,0.911,2.132,0.365,0.51,1.276,1.285,1.73,1.713,0.64,0.565,1.733,1.95,2.462,2.241,0.3,0.13,0.7,0.15,1,0.15\",\"name\":\"Сумська область\"},\"61\":{\"path\":\"M448.25,286.55l-0.064,1.401,3.28,1.076,0.365,2.087-3.289,0.802-1.076,4.129,2.241,1.558-0.564,2.324-0.675,2.76-4.446-0.082s-0.329,1.868-0.483,2.488c-0.118,0.455-0.337,1.384-0.556,1.795-0.283,0.528-1.35,1.276-1.531,1.85-0.1,0.338,0.101,1.085,0.127,1.439,0.036,0.675-0.009,2.023,0.119,2.679,0.1,0.565,0.474,1.658,0.72,2.169,0.355,0.72,1.348,1.995,1.759,2.679,0.382,0.628,1.238,1.858,1.439,2.57,0.218,0.72,0.228,2.25,0.209,2.998-0.027,0.828-0.492,2.46-0.447,3.288,0.064,1.04,0.692,3.063,1.048,4.047,0.182,0.51,0.747,1.449,0.912,1.958,0.264,0.784,0.665,2.416,0.646,3.244-0.009,0.492-0.227,1.495-0.482,1.923-0.237,0.401-1.084,0.901-1.358,1.286-0.392,0.537-0.957,1.758-1.121,2.396-0.11,0.419,0.119,1.367-0.128,1.723-0.236,0.373-1.193,0.555-1.558,0.801-0.419,0.292-1.33,0.894-1.522,1.367-0.255,0.621,0.101,2.015,0.201,2.679,0.145,0.938,0.655,2.762,0.838,3.692,0.146,0.72,0.391,2.186,0.483,2.915,0.128,1.048,0.337,3.152,0.32,4.21-0.019,1.048-0.429,3.116-0.438,4.165-0.01,1.066,0.118,3.207,0.355,4.247,0.218,0.92,1.221,2.587,1.367,3.526,0.136,0.875,0.054,2.687-0.246,3.517-0.165,0.474-0.83,1.239-1.158,1.604-0.365,0.4-1.24,1.046-1.604,1.448-0.4,0.437-1.212,1.349-1.403,1.923-0.364,1.112-0.118,3.518-0.036,4.684,0.091,1.313,0.729,3.89,0.802,5.204,0.072,1.338-0.155,4.027-0.201,5.367-0.018,0.61,0.118,1.867-0.082,2.441-0.192,0.556-1.047,1.414-1.403,1.887-0.428,0.574-1.403,1.668-1.722,2.324-0.356,0.739-0.784,2.342-0.838,3.163-0.055,0.802,0.018,2.487,0.401,3.198,0.209,0.4,1.139,0.782,1.357,1.166,0.311,0.528,0.557,1.794,0.483,2.405-0.064,0.538-0.82,1.432-0.921,1.96-0.199,1.075,0.265,3.271,0.282,4.364,0.02,1.121-0.155,3.363-0.163,4.492,0,1.322-0.174,4,0.163,5.285,0.247,0.957,1.313,2.68,1.842,3.526,0.246,0.392,0.966,1.075,1.12,1.521,0.183,0.529-0.154,1.732,0.083,2.241,0.156,0.33,0.884,0.656,1.084,0.958,0.366,0.583,0.593,1.987,0.793,2.643,0.218,0.71,0.529,2.186,0.883,2.844,0.565,1.057,2.296,2.76,3.044,3.689,0.41,0.501,1.267,1.594,1.941,2.442-0.957,0.064-2.315,0.355-3.062,0.427-1.03,0.102-3.08,0.338-4.109,0.321-1.204-0.028-3.619-0.228-4.757-0.593-0.775-0.246-2.278-0.993-2.88-1.549-0.446-0.4-0.957-1.548-1.338-2.022-0.347-0.437-1.066-1.322-1.55-1.604-0.236-0.137-0.801-0.346-1.067-0.264-0.345,0.09-0.7,0.83-1.01,1.012-0.556,0.318-1.831,0.811-2.46,0.693-0.438-0.083-1.13-0.74-1.44-1.066-0.255-0.274-0.748-0.867-0.802-1.232-0.119-0.855,0.984-2.441,1.021-3.307,0.019-0.565-0.182-1.713-0.484-2.196-0.199-0.311-0.838-0.756-1.175-0.901-0.328-0.138-1.039-0.247-1.394-0.219-0.319,0.037-0.939,0.282-1.222,0.428-0.564,0.292-1.549,1.122-2.085,1.45-0.466,0.272-1.396,0.875-1.923,1.011-0.493,0.128-1.541,0.2-2.032,0.055-0.52-0.164-1.395-0.875-1.759-1.285-0.483-0.538-1.011-1.921-1.439-2.504-0.328-0.439-1.093-1.24-1.495-1.605-0.364-0.327-1.093-1.029-1.549-1.175-0.793-0.255-2.488,0.018-3.317,0.109-0.701,0.073-2.069,0.547-2.77,0.484-0.656-0.074-1.896-0.63-2.462-0.967-0.482-0.282-1.229-0.875-1.812-1.421-0.283-0.254-0.53-0.509-0.703-0.711-0.702-0.875-1.858-2.86-2.131-3.954-0.147-0.575,0.062-1.768,0-2.352-0.092-0.856-0.265-2.652-0.748-3.363-0.273-0.409-1.149-0.947-1.604-1.121-0.574-0.227-1.868-0.119-2.451-0.319-0.592-0.21-1.677-0.866-2.141-1.285-0.393-0.355-1.03-1.24-1.276-1.713-0.328-0.593-0.592-1.959-0.912-2.561-0.209-0.411-0.71-1.203-1.066-1.494-0.337-0.284-1.167-0.793-1.604-0.748-0.227,0.019-0.592,0.364-0.746,0.529-0.247,0.291-0.474,1.04-0.693,1.339-0.273,0.365-0.847,1.149-1.286,1.286-0.31,0.09-0.974-0.146-1.284-0.274-0.575-0.237-1.586-0.993-2.079-1.385-0.6-0.474-1.603-1.668-2.241-2.086-0.528-0.328-1.686-0.884-2.296-0.958-0.364-0.045-1.129,0.393-1.44,0.21-0.365-0.201-0.647-1.13-0.647-1.55,0-0.3,0.383-0.829,0.483-1.12,0.155-0.438,0.601-1.357,0.483-1.813-0.119-0.419-0.792-1.195-1.23-1.23-0.365-0.027-0.919,0.593-1.176,0.856-0.263,0.273-0.556,1.039-0.855,1.286-0.274,0.218-0.975,0.555-1.331,0.528-0.465-0.028-1.303-0.556-1.604-0.903-0.31-0.355-0.638-1.294-0.693-1.768-0.081-0.637,0.392-1.913,0.32-2.561-0.064-0.537-0.538-1.531-0.748-2.032-0.163-0.393-0.437-1.248-0.748-1.549-0.555-0.52-2.131-0.874-2.833-1.167-0.792-0.347-2.488-0.838-3.153-1.395-0.473-0.391-0.974-1.566-1.385-2.021-0.401-0.457-1.32-1.25-1.813-1.604-0.364-0.264-1.212-0.62-1.549-0.911-0.319-0.264-0.848-0.931-1.067-1.286-0.246-0.383-0.865-1.211-0.747-1.649,0.072-0.311,0.71-0.656,1.012-0.748,0.41-0.127,1.284,0.137,1.713,0.046,0.373-0.074,1.011-0.558,1.384-0.639,0.356-0.074,1.112-0.154,1.439,0,0.393,0.183,0.757,1.111,1.122,1.34,0.236,0.146,0.829,0.401,1.066,0.263,0.264-0.145,0.355-0.828,0.374-1.119,0.037-0.438-0.064-1.331-0.265-1.714-0.328-0.601-1.476-1.458-2.023-1.867-0.556-0.411-1.794-1.003-2.352-1.386-0.555-0.375-1.685-1.131-2.086-1.659-0.373-0.482-0.838-1.64-0.956-2.242-0.1-0.482-0.192-1.521,0-1.977,0.201-0.501,1.093-1.239,1.548-1.55,0.738-0.509,2.515-1.01,3.309-1.438,0.382-0.211,1.239-0.574,1.439-0.958,0.11-0.217,0.137-0.765,0-0.965-0.281-0.418-1.403-0.556-1.868-0.748-0.71-0.3-2.131-0.892-2.833-1.229-0.475-0.228-1.869-1.012-1.869-1.012l-1.658-12.921-2.561-5.075,0.292-4.794,0.073-1.129-1.166-5.294,10.151-3.362,6.296-4.646,3.899-5.451,4.274-0.473,1.978-4.219s-0.738-1.549-0.912-2.086c-0.229-0.702-0.748-2.151-0.637-2.88,0.082-0.529,0.629-1.558,1.066-1.868,0.737-0.537,2.688-0.546,3.581-0.755,0.83-0.184,2.46-0.786,3.308-0.793,0.447-0.009,1.313,0.419,1.768,0.374,0.419-0.055,1.149-0.583,1.55-0.748,0.464-0.2,1.402-0.674,1.921-0.701,0.201-0.009,0.656,0.063,0.794,0.219,0.328,0.364,0.054,1.484,0.264,1.922,0.192,0.373,0.774,1.083,1.184,1.174,0.338,0.073,1.332-0.483,1.332-0.483l3.526-3.152,2.879-9.769-1.567-4.027c1.048-1.112,3.226-3.335,4.337-3.891,0.692-0.347,2.324-0.283,3.043-0.556,0.494-0.201,1.523-0.674,1.796-1.13,0.209-0.327,0.182-1.176,0.128-1.558-0.074-0.447-0.438-1.285-0.647-1.686-0.255-0.5-0.975-1.385-1.239-1.877-0.22-0.392-0.629-1.203-0.721-1.64-0.117-0.573-0.145-1.768,0-2.324,0.138-0.52,0.557-1.649,1.039-1.886,0.384-0.192,1.276,0.109,1.686,0.237,0.393,0.127,1.13,0.538,1.477,0.765,0.556,0.356,1.503,1.275,2.049,1.64,0.565,0.392,1.714,1.458,2.397,1.367,0.4-0.064,0.848-0.875,1.121-1.166,0.411-0.42,1.649-1.686,1.649-1.686l5.804-0.155s0.601,0.382,0.803,0.519c0.483,0.346,1.293,1.349,1.877,1.486,0.646,0.136,1.95-0.365,2.57-0.602,0.527-0.208,1.512-0.82,1.995-1.12,0.52-0.329,1.622-0.93,2.005-1.404,0.283-0.346,0.52-1.239,0.72-1.639,0.3-0.593,0.956-1.741,1.321-2.288,0.283-0.41,0.82-1.249,1.204-1.559,0.382-0.31,1.275-0.811,1.767-0.848,0.374-0.018,1.13,0.274,1.44,0.483,0.538,0.374,1.176,1.585,1.64,2.042,0.301,0.291,0.912,0.965,1.323,1.001,0.392,0.037,1.046-0.537,1.403-0.72,0.364-0.191,1.066-0.691,1.485-0.757,0.437-0.072,1.34,0.129,1.758,0.275,0.446,0.154,1.203,0.746,1.641,0.919,0.738,0.292,2.287,0.757,3.089,0.766,0.364,0.009,1.084-0.227,1.439-0.318,0.383-0.101,1.122-0.438,1.521-0.447,0.32,0,0.958,0.164,1.24,0.329,0.282,0.154,0.884,0.564,0.92,0.874,0.055,0.384-0.574,1.012-0.802,1.322-0.365,0.52-1.604,1.968-1.604,1.968l-0.28,6.06z\",\"name\":\"Тернопільська область\"},\"63\":{\"path\":\"M1195.087,379.248l-1.733,2.661l-11.844-2.296l-1.276,1.631l-4.191-0.336l-1.548,3.645l0.454,2.241 l5.833,2.004c0,0,0.456,1.158,0.456,1.559c0,0.511-0.091,1.558-0.364,2.005c-0.274,0.456-1.004,1.203-1.551,1.402 c-0.546,0.265-1.914,0.211-2.642,0.165c-0.639-0.045-1.914-0.501-2.643-0.519c-0.273-0.009-0.911-0.046-1.093,0.155 c-0.273,0.199-0.273,0.866-0.273,1.166c0,0.492,0.455,1.476,0.363,1.959c-0.09,0.318-0.546,0.811-0.82,1.003 c-0.456,0.318-1.731,0.437-2.187,0.72c-0.729,0.4-2.005,1.439-2.46,2.122c-0.366,0.475-0.457,1.641-0.637,2.16 c-0.184,0.446-0.549,1.395-0.914,1.722c-0.544,0.547-2.276,0.848-2.913,1.286c-0.549,0.372-1.823,1.202-2.007,1.84 c-0.182,0.383,0.092,1.64,0.092,1.64l2.643,4.41l-7.106,0.274l-3.009,3.727l0.184,6.771l-3.374,0.163l-0.18-4.848l-3.281,0.037 l-1.186,4.41l-1.093-2.287l-3.098,2.687l3.734,5.522l-1.456,1.003l-4.557-5.367l-6.105-0.201l-0.638,1.959l-1.914,1.322 l-2.824-2.562l-5.103,0.248c0,0-1.095,0.628-1.184,0.993c-0.186,0.364,0.089,1.166,0.272,1.53c0.271,0.829,1.459,2.232,1.912,2.998 c0.549,0.894,2.096,3.645,2.096,3.645l-1.274,9.104l-3.191-1.212l-2.915,3.163l-4.008-2.041l-3.281-2.561l-10.389,11.491 c0,0-1.183,0.374-1.639,0.246c-0.364-0.145-1.002-0.847-1.094-1.24c-0.182-0.51,0.271-1.566,0.271-2.086 c0-0.538-0.271-1.595-0.545-2.086c-0.182-0.538-1.278-1.367-1.278-1.96c0-0.383,0.731-0.938,0.731-1.321 c0.092-0.793-0.363-2.487-1.003-3.007c-0.545-0.473-2.188-0.228-2.825-0.519c-0.545-0.236-1.914-1.44-1.914-1.44l-3.096-2.77 c0,0-0.913-0.929-1.095-1.312c-0.274-0.683-0.455-2.924-0.455-2.924l-0.275-3.29l-4.646-2.598l0.182-1.968 c0,0-1.914-2.032-2.551-2.724c-0.274-0.237-0.82-0.647-0.91-0.958c-0.092-0.3-0.092-1.001,0.09-1.285 c0.09-0.182,0.546-0.336,0.638-0.519c0.183-0.355,0.273-1.212,0.183-1.604c-0.183-0.556-1.093-1.384-1.459-1.804 c-0.362-0.356-1.274-0.866-1.548-1.277c-0.273-0.31-0.547-1.029-0.547-1.403c-0.091-0.646,0.183-1.94,0.364-2.56 c0.092-0.464,0.637-1.313,0.82-1.768c0.091-0.254,0.455-0.846,0.273-1.039c-0.183-0.191-0.73,0.21-1.002,0.283 c-0.822,0.237-2.645,0.547-3.462,0.956c-0.823,0.429-2.096,1.869-2.919,2.37c-1.274,0.83-4.19,2.078-5.648,2.634 c-1.093,0.41-3.189,1.339-4.373,1.331c-0.64-0.01-1.913-0.638-2.552-0.803c-0.911-0.236-2.733-0.574-3.646-0.766 c-0.912-0.199-2.823-0.683-3.828-0.801c-1.002-0.11-2.915-0.146-3.918-0.119c-0.91,0.028-2.642,0.455-3.554,0.318 c-0.547-0.072-1.457-0.509-1.913-0.756c-0.729-0.457-2.096-1.74-2.825-2.205c-1.092-0.611-3.371-1.331-4.374-2.004 c-0.727-0.475-1.822-1.776-2.461-2.361c-0.545-0.537-1.546-1.713-2.186-2.122c-0.638-0.402-2.096-0.839-2.827-1.085 c-0.454-0.173-1.546-0.309-2.002-0.601c-0.365-0.237-1.002-0.912-1.095-1.322c-0.271-0.583,0.183-1.896,0-2.479 c-0.271-0.555-1.001-1.494-1.549-1.839c-0.455-0.374-1.73-0.848-2.369-0.921c-0.364-0.055-1.184,0.164-1.639,0.236 c-0.457,0.073-1.276,0.475-1.643,0.365c-0.363-0.1-0.818-0.875-1.184-1.003c-0.182-0.1-0.729-0.055-1.003,0 c-0.453,0.082-1.274,0.475-1.641,0.674c0,0.028-0.09,0.047-0.09,0.073l-4.556-8.637c0,0,0.182-2.132,0.364-2.808 c0.363-1.303,1.094-4.255,2.279-4.885c0.728-0.392,2.459,0.375,3.278,0.52c1.003,0.164,2.823,0.62,3.828,0.721 c0.728,0.082,2.096-0.064,2.734,0.082c0.546,0.108,1.457,0.691,2.004,0.802c0.638,0.137,2.096-0.119,2.824,0.036 c0.364,0.101,1.093,0.629,1.55,0.721c0.454,0.1,1.459,0.199,1.822,0c0.455-0.201,1.093-0.984,1.093-1.44 c0.092-0.555-0.911-1.449-0.911-2.005c0-0.838,1.003-2.296,1.549-2.962c0.366-0.474,1.366-1.21,1.823-1.603 c0.547-0.482,2.096-1.157,2.277-1.876c0.185-0.721-0.638-2.187-1-2.807c-0.367-0.564-1.55-1.321-2.006-1.841 c-0.364-0.428-1.095-1.357-1.274-1.886c-0.184-0.473-0.366-1.494-0.275-1.995c0-0.602,0.365-1.851,0.821-2.251 c0.364-0.337,1.457-0.392,2.004-0.438c0.73-0.063,2.186-0.145,2.822,0.082c0.64,0.183,1.369,1.166,2.007,1.321 c0.455,0.128,1.457,0.155,1.913-0.119c0.546-0.391,0.82-1.867,1.094-2.486c0.183-0.42,0.819-1.231,0.638-1.677 c0-0.329-0.82-0.592-1.001-0.885c-0.185-0.391-0.274-1.331-0.185-1.758c0.092-0.465,0.821-1.158,1.004-1.603 c0.182-0.455,0.182-1.924,0.182-1.924l-5.193-8.291l-7.837-0.566c0,0-1.093-0.656-1.275-1.04c-0.185-0.372,0.274-1.329,0-1.638 c-0.274-0.346-1.366-0.292-1.823-0.319c-0.455-0.036-1.549,0.354-2.004,0.119c-0.274-0.164-0.639-1.204-0.639-1.204l-1.093-10.999 l-2.005-1.176h-5.923l-0.821-2.296c0,0-0.728,1.003-1.092,1.012c-0.729,0.018-1.551-1.988-2.278-1.923 c-0.364,0.028-0.639,0.939-0.911,1.075c-0.364,0.128-1.095,0.019-1.368-0.109c-0.91-0.355-2.368-1.795-3.098-2.405 c-0.548-0.483-1.913-1.359-2.369-1.978c-0.364-0.492-0.637-1.686-0.91-2.242c-0.273-0.583-1.003-1.667-1.095-2.296 c-0.183-0.51-0.183-1.595,0-2.086c0.092-0.264,0.546-0.602,0.729-0.849c0.366-0.747,0.64-2.432,0.64-3.262 c0.09-0.592-0.183-1.84,0-2.396c0.09-0.291,0.546-0.755,0.818-0.911c0.365-0.254,1.55-0.091,1.823-0.482 c1.094-1.531-0.636-6.634-0.636-6.634s2.184-3.818,3.551-4.018c0.366-0.046,0.82,0.528,1.186,0.702 c0.273,0.164,0.729,0.564,1.093,0.637c0.548,0.129,1.643-0.082,2.188-0.118c0.183-0.017,0.729,0.064,0.912-0.082 c0.273-0.191,0.362-0.884,0.455-1.202c0-0.474-0.093-1.44-0.093-1.923c0.093-0.446,0.276-1.349,0.456-1.758 c0.274-0.528,1.095-1.413,1.55-1.822c0.274-0.255,0.821-0.803,1.185-0.884c0.274-0.063,0.913,0.209,1.186,0.284 c0.729,0.162,2.003,0.537,2.643,0.682c0.453,0.09,1.276,0.374,1.729,0.3c0.184-0.045,0.64-0.336,0.821-0.482 c0.274-0.191,0.82-0.611,1.004-0.884c0.089-0.218,0.363-0.747,0.363-1.021c0-0.383-0.638-1.039-0.547-1.421 c0-0.292,0.272-0.865,0.547-1.021c0.455-0.292,1.641-0.01,2.187-0.018c0.546-0.018,1.456,0.054,2.004-0.082 c0.184-0.064,0.731-0.283,0.82-0.501c0.093-0.211,0-0.739-0.089-0.958c-0.093-0.292-0.731-0.592-0.912-0.865 c-0.183-0.238-0.367-0.812-0.367-1.103c0-0.227,0.275-0.682,0.459-0.837c0.18-0.21,0.909-0.328,1.185-0.438 c0.638-0.237,1.823-0.711,2.458-0.984c0.456-0.2,1.368-0.593,1.823-0.885c0.183-0.146,0.365-0.728,0.639-0.72 c0.454,0.019,0.91,1.012,1.184,1.34c0.455,0.557,1.458,1.659,1.915,2.169c0.455,0.374,1.094,1.35,1.639,1.423 c0.184,0.025,0.547-0.229,0.729-0.348c0.274-0.146,0.729-0.455,0.82-0.72c0.092-0.355-0.637-1.04-0.546-1.376 c0.182-0.41,1.186-0.611,1.639-0.765c0.459-0.172,1.368-0.456,1.915-0.555c0.454-0.11,1.457-0.42,2.005-0.265 c0.271,0.091,0.545,0.61,0.82,0.801c0.182,0.192,0.637,0.729,0.91,0.737c0.365,0.02,0.91-0.501,1.186-0.774 c0.272-0.337,0.453-1.193,0.546-1.604c0.092-0.382,0.272-1.057,0.365-1.584c0.637,0.009,1.458-0.11,1.913-0.164 c0.82-0.101,2.552-0.41,3.281-0.747c0.637-0.265,1.64-1.086,2.186-1.495c0.911-0.766,2.553-2.524,3.464-3.317 c0.819-0.683,2.369-2.104,3.279-2.615c1.094-0.627,3.646-1.431,4.921-1.705c0.82-0.172,2.459-0.327,3.281-0.318 c0.729,0,2.278,0.082,2.916,0.318c0.544,0.182,1.549,0.939,2.002,1.176c0.912,0.374,2.917,0.656,3.739,1.066 c0.818,0.365,2.277,1.376,2.914,1.922c0.819,0.693,2.46,2.215,3.099,3.099c0.729,0.965,1.458,3.334,2.277,4.273 c0.457,0.52,1.46,1.484,2.097,1.704c0.729,0.245,2.371,0,3.189-0.109c0.729-0.101,2.005-0.611,2.734-0.692 c0.454-0.045,1.274,0.017,1.641,0.053c0.91,0.073,2.734,0.366,3.645,0.484c0.818,0.1,2.46,0.301,3.189,0.428 c0.456,0.056,1.273,0.01,1.547,0.265c0.364,0.346,0.364,1.484,0.456,1.977c0.183,0.73,0.366,2.288,0.82,2.879 c0.455,0.511,1.642,1.176,2.188,1.339c0.82,0.202,2.463,0.191,3.19-0.108c0.909-0.365,2.277-1.858,2.915-2.615 c0.455-0.638,1.093-2.178,1.549-2.834c0.639-0.856,2.188-2.388,3.008-3.088c0.911-0.766,2.733-2.143,3.735-2.726 c1.001-0.61,3.006-1.721,4.191-2.032c1.275-0.364,4.101-0.4,5.469-0.482c0.91-0.055,2.734,0.099,3.645-0.11 c0.728-0.173,2.005-1.029,2.823-1.277c0.456-0.171,1.551-0.418,2.098-0.481c0.729-0.082,2.276,0.2,3.005,0 c0.64-0.174,1.733-0.966,2.188-1.331c0.912-0.592,2.459-1.959,3.279-2.57c0.821-0.601,2.554-1.804,3.462-2.296 c0.731-0.438,2.462-1.084,3.372-1.441c0.729-0.309,2.097-1.193,2.826-1.23c0.364-0.018,1.094,0.247,1.367,0.429 c0.729,0.41,1.913,1.567,2.368,2.242c0.731,1.002,1.093,3.526,1.824,4.482c0.638,0.894,2.641,2.025,3.552,2.671 c0.821,0.591,2.644,1.576,3.371,2.305c0.365,0.337,0.821,1.166,1.095,1.595c0.273,0.564,0.638,1.74,0.819,2.352 c0.273,1.076,0.273,3.29,0.456,4.383c0.183,1.185,0.549,3.608,1.095,4.692c0.454,1.029,2.094,2.716,2.915,3.582 c0.455,0.592,1.55,1.704,2.095,2.295c0.365,0.456,1.004,1.505,1.458,1.869c0.365,0.264,1.188,0.6,1.551,0.693 c0.729,0.155,2.186-0.11,2.915,0c0.548,0.09,1.55,0.456,2.096,0.692c1.367,0.692,3.828,2.542,5.104,3.526 c1.092,0.911,3.098,2.988,4.101,4.009c0.728,0.728,2.096,2.241,2.824,2.989c0.456,0.51,1.276,1.741,1.913,2.032 c0,0.009,0.091,0.026,0.091,0.036c-0.091,0.438-0.182,1.104-0.091,1.376c0.275,0.665,1.732,1.384,2.097,1.949 c0.363,0.428,0.819,1.385,1.002,1.896c0.183,0.62,0.547,2.014,0.273,2.587c-0.091,0.246-0.729,0.439-1.003,0.51 c-0.363,0.091-1.185-0.146-1.455,0.082c-0.185,0.183-0.185,0.893-0.366,1.122c-0.092,0.191-0.729,0.264-0.821,0.5 c-0.18,0.392,0.273,1.249,0.549,1.548c0.181,0.274,1.001,0.52,1.276,0.648c0.635,0.219,2.002,0.264,2.459,0.666 c0.181,0.127,0.455,0.51,0.363,0.691c-0.092,0.356-1.093,0.346-1.458,0.539c-0.456,0.253-1.274,0.929-1.64,1.275 c-0.271,0.273-0.912,0.884-1.186,1.148c-0.271,0.219-0.728,0.811-1.093,0.803c-0.364,0-0.728-0.684-1.094-0.803 c-0.181-0.073-0.638-0.138-0.817-0.045c-0.274,0.119-0.729,0.673-0.822,0.956c-0.182,0.474-0.091,1.559-0.274,2.06 c-0.089,0.529-1.183,1.604-0.818,2.022c0.271,0.337,1.275-0.556,1.729-0.428c0.64,0.2,1.278,1.439,1.732,1.95 c0.455,0.673,1.548,2.041,1.822,2.834c0.184,0.345,0.273,1.094,0.273,1.467c0,0.291-0.09,0.92-0.273,1.121 c-0.274,0.274-1.274,0.073-1.549,0.346c-0.364,0.337-0.364,1.395-0.456,1.869c-0.181,0.573-0.271,1.721-0.455,2.295 c-0.092,0.62-0.092,1.95-0.455,2.461c-0.183,0.365-1.094,0.729-1.551,0.884c-0.547,0.21-1.821,0.21-2.37,0.427 c-0.452,0.138-1.273,0.502-1.545,0.848c-0.093,0.264-0.275,0.957-0.093,1.229c0.093,0.283,0.91,0.375,1.186,0.511 c0.182,0.1,0.729,0.209,0.818,0.428c0.092,0.236,0,0.81-0.181,1.039c-0.186,0.273-0.729,0.62-1.003,0.775 c-0.365,0.163-1.093,0.2-1.368,0.456c-0.363,0.455-0.547,1.813-0.638,2.424c-0.181,0.766-0.545,2.304-0.454,3.069 c0.089,0.602,0.638,1.678,0.911,2.242c0.181,0.575,0.636,1.704,0.729,2.306c0.181,0.656,0.092,2.023,0.181,2.688 c0.183,1.121,0.821,3.317,1.093,4.411c0.093,0.364,0.275,1.148,0.549,1.439c0.272,0.418,1.367,0.793,1.913,1.012 c0.455,0.219,1.548,0.437,2.005,0.729c0.363,0.182,0.91,0.656,1.001,0.984c0.183,0.264,0.183,0.875,0.093,1.147 c-0.093,0.246-0.73,0.802-0.73,0.802l-3.645-1.896l0.092,4.374L1195.087,379.248L1195.087,379.248z\",\"name\":\"Харківська область\"},\"65\":{\"path\":\"M1024,678.93c0.272,0.22,1.093,0.42,1.822,0.556-0.729,0.492-1.55,1.011-2.005,1.367-0.818,0.602-2.278,1.995-3.189,2.441-0.637,0.3-2.004,0.701-2.643,0.72-0.636,0.017-1.73-0.409-2.278-0.481-0.546-0.063-1.638-0.293-2.095-0.083-0.456,0.217-1.003,1.24-1.366,1.648-0.366,0.439-1.186,1.294-1.551,1.724-0.548,0.556-1.73,1.603-2.276,2.195-0.273,0.337-0.73,1.094-1.004,1.448-0.181,0.32-0.638,1.012-1.002,1.24-0.363,0.254-1.275,0.611-1.641,0.557-0.729-0.083-1.731-1.167-2.368-1.441-0.638-0.3-2.097-0.817-2.824-0.801-0.822,0.018-2.28,0.62-3.008,0.967-0.367,0.173-0.91,0.746-1.275,0.919-0.365,0.146-1.186,0.054-1.366,0.356-0.093,0.253,0.363,0.784,0.453,1.057,0,0.511-0.181,1.575-0.09,2.077,0.09,0.584,0.911,1.559,1.003,2.142,0.18,0.984,0,3.014-0.184,4.007-0.182,1.031-0.729,3.056-1.183,4.002-0.364,0.701-1.096,2.104-1.642,2.617-0.547,0.455-1.822,1.001-2.551,1.174-0.547,0.137-1.733-0.091-2.188,0.11-0.365,0.12-0.819,0.683-1.094,0.847-0.363,0.202-1.186,0.474-1.549,0.539-0.181,0.025-0.546,0.108-0.639,0-0.454-0.346-0.092-1.604-0.272-2.081-0.182-0.298-0.64-0.773-0.912-0.964-0.454-0.299-1.612-0.41-1.876-0.857-0.192-0.318-0.019-1.137,0.101-1.493,0.183-0.493,0.772-1.421,1.229-1.703,0.364-0.229,1.367-0.019,1.639-0.329,0.185-0.191,0.275-0.802,0.185-1.057-0.093-0.383-1.005-0.756-1.095-1.132-0.183-0.373-0.091-1.219,0.09-1.592,0.093-0.429,0.64-1.224,1.005-1.507,0.271-0.182,0.818-0.445,1.093-0.417,0.274,0.009,0.547,0.373,0.729,0.417,0.272,0.074,0.91,0.083,1.184-0.044,0.183-0.109,0.365-0.665,0.548-0.757,0.363-0.126,1.093,0.064,1.366,0.22,0.273,0.127,0.545,0.757,0.819,0.801,0.274,0.046,0.91-0.31,1.095-0.536,0.364-0.393,0.638-1.459,0.728-1.978,0-0.512-0.274-1.568-0.182-2.078,0.092-0.392,0.456-1.095,0.638-1.44,0.184-0.317,0.911-0.883,0.822-1.229-0.185-0.602-1.553-1.085-2.19-1.23-0.455-0.118-1.547-0.118-1.912,0.111-0.364,0.189-0.91,0.954-1.095,1.328-0.182,0.411-0.182,1.366-0.363,1.77-0.273,0.435-0.91,1.282-1.367,1.494-0.545,0.254-1.912,0.21-2.55,0-1.186-0.409-2.927-2.334-3.899-3.1-0.795-0.61-2.298-1.995-3.21-2.405-0.481-0.218-1.623-0.684-2.086-0.428-0.438,0.245-0.694,1.375-0.694,1.866,0.012,0.42,0.394,1.186,0.584,1.551,0.2,0.384,0.893,0.975,0.968,1.395,0.146,0.766-0.337,2.377-0.749,3.043-0.263,0.429-1.085,1.121-1.548,1.331-0.302,0.146-1.078,0.428-1.341,0.219-0.345-0.291-0.08-1.368-0.044-1.822,0.044-0.655,0.573-1.958,0.473-2.616-0.146-1.021-1.286-2.825-1.868-3.682-0.483-0.72-1.74-1.94-2.296-2.614-0.565-0.693-1.776-2.031-2.188-2.836-0.326-0.636-0.391-2.213-0.856-2.771-0.337-0.418-1.34-0.974-1.867-1.02-0.692-0.053-2.085,0.467-2.617,0.911-0.354,0.291-1.046,1.167-0.9,1.596,0.102,0.338,0.974,0.411,1.275,0.591,0.493,0.302,1.568,0.922,1.821,1.441,0.274,0.602-0.309,2.05-0.063,2.669,0.202,0.483,1.24,0.994,1.505,1.449,0.227,0.393,0.438,1.304,0.475,1.759,0.025,0.292,0.108,0.976-0.102,1.177-0.219,0.198-0.92,0.198-1.177,0.053-0.299-0.171-0.454-0.938-0.638-1.229-0.262-0.4-0.72-1.395-1.185-1.493-0.244-0.057-0.79,0.244-0.9,0.481-0.2,0.429,0.255,1.422,0.43,1.867,0.227,0.583,1.139,1.567,1.22,2.188,0.063,0.419-0.137,1.34-0.419,1.658-0.318,0.348-1.303,0.638-1.769,0.638-0.437,0-1.284-0.356-1.658-0.592-0.348-0.219-0.783-1.021-1.166-1.167-0.294-0.118-0.955-0.082-1.23,0.045-0.31,0.146-0.62,0.85-0.911,1.021-0.311,0.173-1.067,0.456-1.387,0.318-0.453-0.2-0.81-1.256-1.01-1.713-0.355-0.775-0.647-2.487-1.022-3.253-0.317-0.646-1.102-1.896-1.646-2.351-0.666-0.53-2.28-1.157-3.101-1.339-0.818-0.165-2.486-0.027-3.315-0.046-0.655-0.028-2.005,0.136-2.617-0.109-0.609-0.246-1.419-1.404-1.976-1.759-0.411-0.273-1.284-0.729-1.758-0.802-0.493-0.083-1.549-0.037-1.978,0.209-0.503,0.291-1.03,1.413-1.396,1.868-0.29,0.373-0.755,1.394-1.22,1.439-0.429,0.055-1.048-0.756-1.395-1.013-0.336-0.243-0.957-0.817-1.33-1.011-0.513-0.264-1.696-0.982-2.197-0.691-0.254,0.146-0.31,0.874-0.264,1.166,0.036,0.255,0.182,0.603,0.366,0.931l-0.421,1.211-2.278-0.047,2.645,10.736-1.342,0.674c-0.109-0.865-0.527-2.315-0.946-2.952-0.275-0.421-1.067-1.075-1.523-1.286-0.664-0.3-2.168-0.592-2.879-0.437-0.547,0.118-1.55,0.784-1.875,1.237-0.273,0.374-0.586,1.322-0.494,1.76,0.099,0.42,0.893,0.929,1.131,1.286,0.264,0.392,0.767,1.221,0.838,1.686,0.053,0.373,0.018,1.202-0.246,1.477-0.237,0.264-1.02,0.235-1.358,0.327-0.274,0.064-0.884,0.118-1.075,0.318-0.245,0.246-0.355,0.993-0.365,1.34-0.018,0.42,0.447,1.258,0.32,1.658-0.072,0.247-0.477,0.666-0.72,0.703-0.345,0.063-0.965-0.448-1.285-0.62-0.318-0.174-0.875-0.729-1.238-0.758-0.339-0.035-0.976,0.302-1.241,0.503-0.173,0.118-0.327,0.584-0.519,0.655-0.346,0.128-1.202,0.02-1.438-0.254-0.283-0.33,0.062-1.304-0.064-1.704-0.146-0.449-0.748-1.204-1.058-1.552-0.219-0.226-0.821-0.527-0.983-0.791-0.202-0.311-0.247-1.084-0.385-1.431-0.146-0.346-0.436-1.131-0.754-1.34-0.273-0.173-0.968-0.1-1.286-0.091-0.439,0.011-1.295,0.273-1.721,0.236-0.522-0.055-1.541-0.364-1.942-0.683-0.392-0.301-0.748-1.304-1.104-1.64-0.326-0.31-1.092-0.804-1.521-0.921-0.455-0.128-1.449-0.173-1.885,0-0.257,0.101-0.574,0.611-0.803,0.756-0.182,0.129-0.601,0.456-0.803,0.364-0.19-0.091-0.256-0.592-0.235-0.801,0.036-0.447,0.61-1.186,0.765-1.604,0.182-0.548,0.527-1.695,0.518-2.276-0.008-0.476-0.507-1.342-0.48-1.807,0.019-0.327,0.364-0.902,0.48-1.202,0.111-0.29,0.459-0.856,0.439-1.167-0.009-0.162-0.155-0.563-0.319-0.602-0.236-0.044-0.575,0.457-0.764,0.602-0.302,0.257-1.003,0.667-1.205,1.002-0.218,0.384-0.245,1.295-0.317,1.724-0.091,0.602-0.064,1.859-0.32,2.405-0.3,0.637-1.294,1.75-1.922,2.086-0.593,0.319-1.984,0.574-2.644,0.438-0.619-0.137-1.53-1.175-2.123-1.403-0.482-0.181-1.522-0.309-2.04-0.319-0.475-0.008-1.477-0.008-1.887,0.238-0.192,0.119-0.445,0.547-0.52,0.764-0.135,0.439,0.083,1.396-0.037,1.842-0.081,0.319-0.381,0.949-0.636,1.157-0.357,0.301-1.305,0.529-1.769,0.601-0.812,0.146-2.479,0.193-3.28,0.047-0.921-0.163-2.553-1.284-3.49-1.366-0.684-0.055-2.004,0.463-2.679,0.564-0.484,0.073-1.44,0.172-1.923,0.153-0.721-0.017-2.124-0.454-2.843-0.391-0.467,0.028-1.35,0.345-1.77,0.556-0.446,0.228-1.174,1.002-1.639,1.203-0.446,0.191-1.432,0.354-1.923,0.365-0.855,0.008-2.543-0.503-3.399-0.53-0.765-0.017-2.322,0.047-3.053,0.283-0.501,0.166-1.467,0.702-1.841,1.085-0.282,0.293-0.692,1.038-0.803,1.44-0.09,0.381,0.156,1.23,0,1.603-0.073,0.191-0.364,0.521-0.555,0.601-0.366,0.156-1.222,0.12-1.604,0-0.545-0.171-1.394-1.011-1.876-1.32-1.048-0.686-3.161-2.021-4.293-2.561-1.255-0.619-3.854-1.658-5.203-2.006-0.994-0.263-3.035-0.428-4.045-0.6-0.739-0.128-2.241-0.265-2.925-0.565-0.512-0.218-1.559-0.82-1.805-1.32-0.182-0.373-0.108-1.295,0.046-1.678,0.217-0.565,1.292-1.284,1.595-1.804,0.2-0.356,0.52-1.122,0.527-1.522,0-0.447-0.218-1.367-0.527-1.686-0.274-0.272-1.094-0.482-1.479-0.482-0.472,0.01-1.338,0.528-1.802,0.647-0.72,0.163-2.188,0.428-2.927,0.354-0.665-0.063-1.958-0.52-2.558-0.839-0.604-0.317-1.741-1.146-2.162-1.686-0.418-0.519-0.665-1.922-1.12-2.395-0.302-0.312-1.104-0.713-1.522-0.805-0.556-0.127-1.722,0.166-2.286,0.083-0.594-0.101-1.725-0.511-2.242-0.812-0.703-0.392-1.859-1.53-2.488-2.041-0.519-0.419-1.477-1.394-2.077-1.678-0.346-0.163-1.103-0.289-1.485-0.281-0.309,0.011-0.984,0.065-1.202,0.281-0.209,0.203-0.209,0.84-0.273,1.122-0.091,0.328-0.138,1.066-0.364,1.321-0.329,0.364-1.322,0.665-1.806,0.72-0.701,0.083-2.131-0.191-2.797-0.438-0.639-0.236-1.831-0.946-2.288-1.449-0.245-0.266-0.636-0.92-0.684-1.276-0.046-0.417,0.184-1.311,0.446-1.639,0.349-0.455,1.479-0.892,1.998-1.12,0.672-0.301,2.076-0.811,2.807-0.886,0.599-0.063,1.812,0.139,2.403,0.237,0.521,0.092,1.522,0.458,2.043,0.52,0.993,0.129,3.053,0.31,4.008,0,0.757-0.245,2.051-1.295,2.599-1.876,0.365-0.394,0.701-1.477,1.119-1.806,0.266-0.199,0.957-0.244,1.24-0.399,0.392-0.22,1.259-0.72,1.368-1.158,0.154-0.64-0.647-1.877-0.968-2.45-0.428-0.793-1.411-2.353-2.112-2.915-0.63-0.513-2.181-1.121-2.974-1.286-0.718-0.155-2.22,0-2.958,0-0.875,0-2.636,0.127-3.482-0.036-0.828-0.166-2.396-0.83-3.126-1.249-0.657-0.364-1.567-1.186-2.415-1.896l3.135-1.467,0.574-1.148c0.91,0.4,1.905,0.792,2.552,0.983,1.285,0.401,3.946,0.866,5.285,1.049,1.065,0.146,3.208,0.319,4.283,0.319,1.539-0.01,4.594-0.401,6.132-0.519,1.195-0.102,3.609-0.5,4.801-0.365,0.74,0.091,2.162,0.628,2.847,0.92,0.827,0.364,2.377,1.322,3.17,1.767,0.526,0.302,1.55,1.003,2.113,1.241,0.683,0.283,2.115,0.729,2.844,0.764,0.738,0.027,2.159-0.428,2.889-0.48,0.682-0.057,2.058,0.153,2.724,0,0.603-0.148,1.76-0.685,2.205-1.122,0.255-0.264,0.647-0.957,0.674-1.322,0.028-0.463-0.272-1.475-0.637-1.767-0.364-0.283-1.386-0.294-1.842-0.236-0.52,0.054-1.512,0.445-1.967,0.719-0.318,0.191-0.839,0.756-1.121,1.003-0.255,0.217-0.72,0.766-1.038,0.883-0.53,0.191-1.696,0.119-2.244,0-0.28-0.063-0.873-0.245-1.046-0.482-0.238-0.356,0.045-1.321-0.119-1.721-0.1-0.258-0.531-0.612-0.674-0.841-0.247-0.383-0.884-1.166-0.802-1.603,0.073-0.411,0.984-0.792,1.237-1.121,0.448-0.573,1.241-1.85,1.359-2.562,0.117-0.691,0.008-2.205-0.401-2.769-0.327-0.457-1.576-0.657-1.995-1.039-0.22-0.201-0.457-0.765-0.638-1.002-0.201-0.248-0.601-0.768-0.884-0.885-0.246-0.09-0.803-0.09-1.04,0-0.346,0.127-0.856,0.683-1.13,0.919-0.392,0.365-1.03,1.305-1.521,1.521-0.501,0.238-1.667,0.01-2.206,0.167-0.455,0.135-1.291,0.619-1.677,0.92-0.317,0.245-0.737,0.954-1.073,1.156-0.348,0.209-1.149,0.557-1.531,0.446-0.247-0.074-0.565-0.528-0.685-0.764-0.272-0.575-0.181-1.926-0.4-2.525-0.173-0.491-0.702-1.431-1.074-1.795-0.593-0.593-2.115-1.321-2.845-1.724-0.728-0.408-2.314-1.001-2.97-1.521-0.156-0.127-0.338-0.337-0.527-0.565l1.239-0.866-3.556-6.414,6.944-1.331,2.278,3.152,4.374-3.097,0.19-2.615,2.188-2.323,3.198-2.781,6.414,4.093-0.218-5.267,4.384,0.026,2.132,2.242,4.327-0.638-1.147-3.654,4.857-0.065,2.406,2.435,3.9-1.678,1.657,4.939,17.523-3.7-2.286-2.76-6.007,0.081,0.164-1.604,9.769-3.242,0.083-2.689-3.683-1.52,1.795-2.881,4.248,1.878,3.608-4.64-7.209-4.812-3.927-4.966,3.891-7.49,6.36-0.237,4.045-2.604-2.113-5.085-0.209-4.246,2.241-2.159-1.357-4.256-3.691-0.237-3.034-7.765,2.314-1.365,2.889,5.686,4.528,0.081-2.567-9.375-3.254-6.325c0.381,0.072,0.747,0.139,1.012,0.165,0.81,0.062,2.45-0.264,3.242-0.129,0.729,0.129,2.18,0.602,2.725,1.084,0.284,0.246,0.493,0.993,0.721,1.285,0.565,0.692,1.979,1.813,2.688,2.361,0.364,0.281,1.12,0.81,1.521,1.038,0.455,0.266,1.402,0.674,1.875,0.885,0.594,0.264,1.733,0.893,2.363,1.038,0.301,0.073,0.929,0.165,1.212,0.046,0.289-0.129,0.71-0.666,0.838-0.967,0.1-0.236-0.027-0.8,0.082-1.039,0.12-0.254,0.793-0.802,0.793-0.802l9.212-0.199,0.883-0.801-0.684-4.722s1.247-0.166,1.65-0.282c0.347-0.109,1.021-0.456,1.358-0.604,0.464-0.208,1.349-0.728,1.84-0.836,0.365-0.091,1.147-0.202,1.486-0.046,0.263,0.126,0.572,0.674,0.719,0.92,0.165,0.292,0.528,0.911,0.519,1.238,0,0.302-0.3,0.849-0.48,1.086-0.193,0.265-0.893,0.527-1.004,0.848-0.092,0.263,0.218,0.827,0.247,1.119,0.027,0.374,0.009,1.139-0.047,1.521-0.054,0.403-0.264,1.212-0.391,1.596-0.128,0.364-0.602,1.403-0.602,1.403l1.039,1.887,14.542-0.602,7.729-2.645,1.676,1.268c0.038,0.092,0.074,0.173,0.093,0.257,0.18,0.563,0.573,1.767,0.427,2.351-0.101,0.391-0.846,0.901-1.012,1.274-0.265,0.622-0.555,2.024-0.375,2.671,0.146,0.527,1.004,1.321,1.387,1.713,0.301,0.292,1.083,0.701,1.285,1.066,0.338,0.63,0.282,2.114,0.319,2.833,0.056,1.104,0.255,3.363-0.055,4.429-0.265,0.93-1.597,2.443-2.023,3.309-0.347,0.71-0.857,2.207-1.12,2.943-0.22,0.583-0.466,1.822-0.812,2.351-0.482,0.739-1.951,1.813-2.607,2.397-0.756,0.663-2.432,1.831-3.051,2.622-0.63,0.796-1.486,2.68-1.86,3.628-0.408,1.021-0.938,3.162-1.239,4.219-0.227,0.811-0.499,2.514-0.902,3.255-0.435,0.81-1.676,2.222-2.404,2.777-0.61,0.474-2.135,0.92-2.778,1.34-0.638,0.409-1.934,1.319-2.344,1.979-0.301,0.464-0.527,1.575-0.592,2.133-0.09,0.763,0.309,2.351,0.109,3.097-0.136,0.512-0.867,1.341-1.121,1.813-0.265,0.475-0.819,1.44-0.91,1.977-0.119,0.649,0.235,1.96,0.217,2.615-0.025,0.639-0.209,1.904-0.372,2.506-0.146,0.512-0.429,1.567-0.813,1.933-0.291,0.283-1.13,0.519-1.548,0.582-0.847,0.12-2.552-0.209-3.407-0.265-0.71-0.044-2.142-0.299-2.834-0.163-0.805,0.155-2.197,1.057-2.935,1.387-0.574,0.264-1.786,0.654-2.299,1.02-0.572,0.4-1.476,1.485-1.92,2.031-0.338,0.402-0.93,1.276-1.231,1.706-0.228,0.318-1.04,0.91-0.911,1.284,0.146,0.383,1.194,0.374,1.603,0.429,0.503,0.063,1.532,0.099,2.033,0,0.611-0.139,1.767-0.686,2.297-1.022,0.583-0.364,1.502-1.431,2.088-1.813,0.627-0.418,1.994-1.085,2.714-1.328,0.593-0.209,1.831-0.557,2.461-0.538,0.409,0.008,1.212,0.282,1.603,0.426,0.483,0.175,1.376,0.712,1.868,0.857,0.393,0.111,1.205,0.266,1.604,0.208,0.674-0.097,1.978-0.672,2.506-1.12,0.392-0.326,1.047-1.2,1.12-1.712,0.065-0.437-0.482-1.257-0.528-1.703-0.063-0.564-0.026-1.713,0.153-2.241,0.185-0.558,0.967-1.485,1.287-1.978,0.491-0.775,1.65-2.24,1.977-3.1,0.374-0.983,0.412-3.134,0.639-4.163,0.229-1.048,0.675-3.172,1.175-4.119,0.429-0.801,1.668-2.16,2.352-2.771,0.556-0.511,1.95-1.201,2.506-1.714,0.582-0.536,1.741-1.712,2.031-2.452,0.228-0.581,0.083-1.885,0.155-2.514,0.09-0.683,0.173-2.131,0.538-2.723,0.318-0.512,1.376-1.223,1.921-1.497,0.42-0.209,1.432-0.209,1.814-0.482,0.629-0.437,1.258-1.939,1.714-2.56,0.655-0.894,2.233-2.497,2.771-3.472,0.538-0.948,1.221-3.054,1.503-4.109,0.246-0.939,0.284-2.934,0.639-3.846,0.338-0.849,1.312-2.479,2.031-3.045,0.61-0.481,2.16-0.956,2.935-1.064,0.711-0.109,2.16,0.182,2.88,0.163,0.6-0.019,1.867,0.019,2.406-0.272,0.29-0.155,0.738-0.702,0.854-1.012,0.174-0.464,0.282-1.542,0.056-1.979-0.126-0.234-0.647-0.509-0.91-0.592-0.256-0.073-0.813-0.063-1.067,0-0.529,0.153-1.404,0.893-1.868,1.186-0.429,0.255-1.23,0.875-1.713,1.012-0.511,0.136-1.615,0.107-2.133,0-0.372-0.073-1.119-0.321-1.394-0.586-0.273-0.282-0.61-1.056-0.638-1.447-0.037-0.656,0.491-1.906,0.746-2.505,0.32-0.748,0.957-2.342,1.604-2.836,0.491-0.373,1.786-0.508,2.405-0.583,0.857-0.109,2.598,0,3.462,0,1.224,0,3.655,0.075,4.867,0,0.408-0.026,1.028-0.063,1.648-0.119l2.233,2.617-2.078,2.561,4.483,8.447,7.928-0.438,0.482-3.563,2.763,0.119-0.073,3.93,3.017,0.671,0.091,2.489-3.034,0.92,2.487,12.412s0.547,1.247,0.909,1.549c0.365,0.291,1.369,0.383,1.642,0.709,0.366,0.411,0.548,1.578,0.729,2.116,0.274,0.757,0.548,2.314,0.73,3.07,0.273,0.61,0.637,1.851,1.093,2.369,0.183,0.256,0.729,0.556,0.912,0.802,0.181,0.301,0.363,1.039,0.546,1.368,0.183,0.336,0.638,0.974,0.912,1.247,0.455,0.483,1.456,1.239,2.004,1.659,0.548,0.446,1.457,1.475,2.094,1.784,0.275,0.129,0.823,0.237,1.096,0.274,0.364,0.036,1.094-0.156,1.457,0,0.273,0.128,0.64,0.719,0.821,0.976,0.273,0.41,0.819,1.294,1.184,1.704,0.273,0.445,1.094,1.284,1.457,1.713,0.274,0.347,1.004,0.939,1.185,1.375,0,0.119,0,0.409-0.092,0.493-0.271,0.21-1.093-0.291-1.274-0.028-0.183,0.22,0.273,0.757,0.365,0.974,0.272,0.337,0.82,0.859,1.094,1.178,0.272,0.374,0.729,1.158,1.001,1.576,0.093,0.228,0.458,0.729,0.367,0.956-0.185,0.319-1.096,0.274-1.368,0.364-0.364,0.073-0.912,0.165-1.185,0.293-0.273,0.107-0.729,0.355-0.822,0.602-0.182,0.354,0.275,1.102,0.366,1.484,0.091,0.328,0.091,1.013,0.183,1.349,0.093,0.365,0.364,1.049,0.456,1.412,0.09,0.256,0.272,0.83,0.09,1.039-0.09,0.201-0.638,0.174-0.911,0.211-0.272,0.053-1.094-0.146-1.275,0.108-0.183,0.274,0.364,0.912,0.456,1.23,0,0.19,0.182,0.619,0.091,0.793-0.183,0.245-0.82,0.392-1.093,0.49-0.455,0.146-1.366,0.283-1.824,0.385-0.546,0.11-1.548,0.326-2.003,0.454-0.366,0.083-1.186,0.101-1.366,0.373-0.186,0.218-0.093,0.848-0.093,1.139v1.333c0.093,0.235,0.182,0.809,0.365,0.91,0.181,0.084,0.546-0.281,0.729-0.336,0.273-0.073,0.911-0.256,1.185-0.102,0.184,0.082,0.273,0.512,0.364,0.674,0.183,0.21,0.365,0.684,0.639,0.793,0.364,0.146,1.184-0.109,1.55-0.1,0.364,0.019,1.275,0,1.548,0.218,0.272,0.138,0.456,0.629,0.545,0.866,0.184,0.327,0.275,1.021,0.366,1.377,0.091,0.501,0.275,1.558,0.091,2.04-0.091,0.328-0.546,0.831-0.819,1.084-0.273,0.265-0.819,0.667-1.095,0.957-0.091,0.163-0.271,0.529-0.271,0.72-0.091,0.302,0.091,0.921,0.181,1.203,0.091,0.302,0.456,0.921,0.73,1.039,0.272,0.109,0.911-0.045,1.093-0.2,0.182-0.128,0.273-0.766,0.547-0.793,0.455-0.063,1,0.856,1.366,1.193,0.364,0.428,0.912,1.403,1.277,1.841,0.273,0.355,0.818,1.158,1.274,1.33,0.364,0.146,1.186-0.018,1.549-0.126,0.638-0.165,1.731-0.976,2.368-1.158,0.366-0.1,1.186-0.318,1.552-0.154,0.271,0.154,0.636,0.919,0.818,1.276,0.275,0.71,0.275,2.342,0.729,3.006,0.182,0.329,0.819,0.82,1.186,1.002,0.638,0.346,2.186,0.501,2.916,0.757,0.637,0.255,2.003,0.847,2.641,1.283,0.548,0.403,1.55,1.414,1.915,2.005,0.271,0.402,0.637,1.331,0.729,1.796,0.365,1.148,0.819,3.518,1.095,4.684,0.09,0.721,0.818,2.205,0.545,2.889-0.183,0.376-1.094,0.546-1.368,0.883-0.18,0.349-0.271,1.232-0.271,1.642,0.092,0.593,0.637,1.678,0.911,2.204,0.4,0.4,0.9,1.35,1.3,1.66\",\"name\":\"Херсонська область\"},\"68\":{\"path\":\"M548.83,388l-1.44,2.969-3.563-1.247-2.761,4.164-4.565-2.241-4.091-1.084-3.96-0.56-0.082,1.676h-1.038l-5.21,2.32s-0.374,0.957-0.365,1.285c0.018,0.446,0.593,1.24,0.602,1.677,0.009,0.446-0.464,1.248-0.519,1.686-0.055,0.473,0.355,1.477,0.118,1.885-0.128,0.209-0.884,0.438-0.884,0.438l-5.887,5.768s-0.528,6.369-0.474,8.493c0.055,2.123,0.484,6.368,0.921,8.454,0.309,1.486,1.803,5.805,1.803,5.805l-2.725,1.76,0.638,4.483s0.072,2.014,0.082,2.687c0,0.757-0.208,2.288-0.082,3.044,0.137,0.819,0.866,2.341,1.158,3.125,0.208,0.565,0.61,1.604,0.883,2.313-0.401,0.029-0.829,0-1.058-0.036-0.537-0.081-1.43-0.775-1.921-1.011-0.712-0.355-2.106-1.166-2.881-1.339-0.409-0.082-1.267-0.129-1.658,0-0.301,0.101-0.711,0.674-1.013,0.757-0.482,0.117-1.521-0.476-1.976-0.274-0.356,0.154-0.656,0.947-0.856,1.285-0.174,0.292-0.374,1.011-0.638,1.23-0.337,0.264-1.23,0.528-1.659,0.472-0.684-0.072-1.731-1.156-2.405-1.33-0.528-0.135-1.64-0.027-2.188,0-0.601,0.028-1.832,0.01-2.406,0.21-0.509,0.182-1.357,0.92-1.813,1.229-0.265,0.183-0.757,0.658-1.066,0.748-0.437,0.127-1.476,0.201-1.813-0.109-0.301-0.273,0.009-1.302-0.274-1.595-0.309-0.327-1.311-0.354-1.757-0.382-0.438-0.018-1.341,0.346-1.758,0.218-0.466-0.145-1.013-1.066-1.451-1.283-0.555-0.284-1.84-0.656-2.449-0.529-0.502,0.101-1.213,0.938-1.66,1.176-0.401,0.21-1.257,0.537-1.704,0.637-0.62,0.136-1.904,0.393-2.515,0.21-0.438-0.128-1.148-0.766-1.44-1.12-0.328-0.401-0.492-1.549-0.912-1.868-0.638-0.484-2.351-0.565-3.143-0.583-0.748-0.018-2.251,0.091-2.943,0.374-0.357,0.137-0.894,0.719-1.222,0.902-0.32,0.182-0.995,0.473-1.34,0.593-0.729,0.237-2.414,0.135-2.988,0.637-0.32,0.273-0.429,1.167-0.593,1.55-0.255,0.609-0.72,1.877-1.121,2.405-0.456,0.612-1.576,1.751-2.296,2.033-0.565,0.219-1.868,0.246-2.452,0.045-0.773-0.245-1.94-1.458-2.568-1.968-0.72-0.601-1.996-2.023-2.825-2.459-0.603-0.321-1.941-0.649-2.616-0.694-0.165-0.009-0.356-0.009-0.574,0-0.675-0.848-1.531-1.941-1.941-2.442-0.748-0.93-2.47-2.633-3.044-3.689-0.354-0.658-0.665-2.134-0.883-2.844-0.201-0.655-0.428-2.059-0.794-2.643-0.2-0.302-0.928-0.639-1.083-0.958-0.237-0.509,0.1-1.712-0.083-2.241-0.154-0.446-0.875-1.129-1.12-1.521-0.528-0.846-1.595-2.57-1.842-3.526-0.336-1.285-0.163-3.963-0.163-5.285,0.008-1.122,0.182-3.372,0.163-4.492-0.017-1.094-0.481-3.29-0.282-4.365,0.101-0.528,0.856-1.422,0.921-1.96,0.074-0.611-0.173-1.876-0.483-2.405-0.218-0.383-1.148-0.766-1.357-1.166-0.383-0.703-0.456-2.396-0.401-3.198,0.055-0.812,0.482-2.424,0.838-3.163,0.319-0.655,1.294-1.75,1.722-2.324,0.356-0.473,1.212-1.331,1.403-1.886,0.2-0.575,0.063-1.832,0.082-2.442,0.046-1.34,0.274-4.028,0.201-5.367-0.073-1.313-0.711-3.891-0.802-5.204-0.082-1.167-0.328-3.572,0.036-4.684,0.191-0.564,1.003-1.486,1.403-1.932,0.364-0.393,1.249-1.039,1.604-1.439,0.328-0.365,0.993-1.131,1.166-1.604,0.301-0.829,0.374-2.643,0.238-3.517-0.146-0.939-1.149-2.606-1.367-3.526-0.238-1.039-0.365-3.18-0.355-4.247,0.009-1.049,0.419-3.117,0.438-4.165,0.018-1.057-0.192-3.162-0.32-4.21-0.092-0.729-0.337-2.195-0.483-2.915-0.183-0.93-0.693-2.753-0.838-3.692-0.1-0.665-0.456-2.059-0.201-2.679,0.192-0.473,1.103-1.075,1.522-1.367,0.364-0.246,1.322-0.428,1.558-0.801,0.248-0.356,0.018-1.304,0.128-1.713,0.164-0.647,0.729-1.869,1.121-2.406,0.273-0.384,1.121-0.885,1.358-1.286,0.255-0.428,0.474-1.431,0.482-1.923,0.019-0.828-0.382-2.46-0.646-3.244-0.165-0.519-0.729-1.448-0.912-1.958-0.356-0.984-0.984-3.007-1.048-4.047-0.045-0.828,0.419-2.46,0.446-3.288,0.018-0.748,0.009-2.278-0.201-2.998-0.209-0.711-1.066-1.941-1.448-2.57-0.411-0.684-1.403-1.959-1.758-2.679-0.247-0.511-0.621-1.604-0.72-2.169-0.119-0.656-0.073-2.004-0.119-2.679-0.026-0.354-0.227-1.093-0.127-1.439,0.182-0.574,1.249-1.322,1.531-1.84,0.218-0.42,0.438-1.35,0.556-1.805,0.155-0.62,0.483-2.487,0.483-2.487l4.446,0.081,0.675-2.76,0.565-2.324-2.242-1.558,1.076-4.129,3.289-0.802-0.365-2.087-3.28-1.075,0.064-1.402c1.303-0.275,3.363-0.748,4.165-1.167,1.056-0.537,2.778-2.224,3.635-3.043,0.885-0.837,2.415-2.743,3.308-3.572,0.501-0.465,1.503-1.458,2.141-1.712,0.447-0.173,1.44-0.101,1.924-0.155,0.792-0.1,2.405-0.246,3.143-0.538,1.048-0.419,2.871-1.795,3.746-2.507,0.737-0.601,2.177-1.885,2.725-2.677,0.373-0.548,0.664-1.916,1.065-2.452,0.52-0.71,1.987-1.73,2.671-2.295,0.983-0.821,2.787-2.799,4-3.208,0.355-0.119,1.175,0.246,1.495,0.055,0.318-0.183,0.555-0.948,0.691-1.275,0.357-0.839,0.867-2.598,1.076-3.472,0.146-0.647,0.118-2.032,0.428-2.625,0.254-0.491,1.103-1.303,1.604-1.548,0.638-0.311,2.114-0.374,2.824-0.364,0.43,0,1.349,0.492,1.714,0.263,0.392-0.254,0.528-1.822,0.528-1.822l3.737-2.078,4.438,2.78,2.133-2.197,3.899-0.154,1.066-2.671,3.153-1.175,1.604,4.329,3.198,0.155,0.21-0.1,0.145,0.264,2.278,2.524,1.887,0.273,0.756,1.204-0.282,2.124-4.92,9.175,6.005,2.524,0.118,2.324,1.003,0.155,4.482,4.684,0.046,3.326,5.122,2.324,0.483,2.359,3.161,0.127,0.246-2.642,1.878,0.037,1.567,5.486,1.64,2.605,1.44,0.201-0.401,3.043-3.845-0.565-0.519,7.372,3.926,2.36-3.882,3.573-3.527-1.003-2.487,0.794,3.044,5.248-3.846,8.575,2.89,1.485,0.082,2.597,8.528,7.217,0.356,5.485,5.122-1.54,0.847,3.453-2.998,1.486-0.602,4.045,3.518,1.486-0.52,1.403-2.561-0.127-4.566,6.853,3.163,1.604-0.239,5.204-3.244,1.803,1.677,3.246,4.492,0.555,1.321,3.006-3.69,2.489,2.287,4.118-0.72,3.773-0.164,7.043,3.78,1.53z\",\"name\":\"Хмельницька область\"},\"71\":{\"path\":\"M834.27,303.92l-0.938,0.136-0.667,6.06,1.414,1.758,4.702,0.22,1.393,2.05-0.399,6.679,2.697,1.065,0.427,5.231-3.015,2.515,6.533,9.021,1.603-0.875,4.676,3.918,0.11,2.269-0.622,1.121,0.886,2.005,3.471,0.984,5.067,1.021-0.21,3.024c-0.063-0.062-0.128-0.108-0.182-0.144-0.292-0.146-0.986-0.174-1.286-0.055-0.463,0.191-1.102,1.038-1.384,1.449-0.355,0.5-0.903,1.603-1.066,2.187-0.2,0.674-0.565,2.115-0.328,2.779,0.166,0.429,1.094,0.884,1.34,1.277,0.327,0.527,0.656,1.74,0.745,2.351,0.11,0.756,0.11,2.305-0.053,3.043-0.118,0.519-0.711,1.421-0.858,1.922-0.198,0.738-0.382,2.278-0.371,3.043,0.009,0.83,0.136,2.516,0.482,3.263,0.31,0.655,1.411,1.667,1.921,2.187,0.486,0.483,1.805,1.175,2.032,1.813,0.137,0.4-0.117,1.266-0.273,1.658-0.126,0.348-0.5,1.011-0.801,1.231-0.565,0.418-2.014,0.72-2.716,0.802-0.737,0.082-2.25,0.09-2.943-0.164-0.902-0.337-2.242-1.814-3.042-2.352-1.113-0.739-3.546-1.896-4.647-2.67-1.386-0.985-3.873-3.335-5.176-4.428-0.867-0.729-2.563-2.224-3.473-2.889-0.848-0.61-2.533-1.923-3.526-2.242-0.93-0.3-2.926-0.146-3.893-0.21-0.847-0.054-2.559-0.045-3.37-0.272-0.909-0.257-2.604-1.14-3.362-1.705-0.794-0.583-1.939-2.241-2.723-2.834-1.096-0.811-3.656-1.859-4.859-2.506-1.411-0.755-4.173-2.386-5.613-3.097-1.12-0.556-3.381-1.695-4.592-2.033-1.037-0.282-3.191-0.501-4.264-0.529-0.793-0.026-2.378,0.084-3.154,0.21-0.528,0.083-1.804,0.083-2.078,0.538-0.246,0.383,0.183,1.349,0.366,1.758,0.283,0.63,1.074,1.795,1.603,2.241,0.794,0.675,2.79,1.386,3.737,1.814,0.692,0.32,2.096,0.865,2.778,1.185,0.92,0.418,2.753,1.312,3.636,1.813,1.057,0.593,3.116,1.904,4.11,2.615,1.156,0.821,3.389,2.561,4.437,3.526,0.775,0.729,2.188,2.334,2.881,3.145,1.002,1.185,2.806,3.709,3.846,4.866,0.854,0.956,2.67,2.824,3.682,3.626,1.047,0.83,3.343,2.225,4.536,2.835,1.341,0.674,4.166,1.695,5.559,2.242,1.021,0.401,3.108,1.11,4.111,1.548,1.374,0.602,4.08,1.922,5.394,2.669,1.421,0.812,4.145,2.652,5.494,3.581,0.857,0.576,2.56,1.76,3.363,2.398,1.312,1.047,3.891,3.198,5.029,4.436,0.894,0.976,2.442,3.145,3.146,4.267,0.382,0.61,0.781,2.068,1.338,2.515,0.394,0.31,1.423,0.536,1.922,0.536,0.347-0.008,0.931-0.291,1.377-0.447l-0.737,5.761,3.609,5.32-10.938,1.004-2.168-2.926-1.395,2.123-4.291-0.319-1.158-3.799-1.402,1.959-3.327,2.642-3.125-9.048-2.68,2.323-3.809-2.643-0.081-2.688-9.048,1.886-2.444,9.331-4.044,1.758s0.673,0.767,0.919,1.003c0.247,0.246,0.975,0.574,1.048,0.92,0.064,0.338-0.418,0.947-0.601,1.24-0.138,0.208-0.419,0.665-0.646,0.765-0.328,0.146-1.095,0.056-1.439-0.045-0.521-0.145-1.376-0.874-1.888-1.075-0.482-0.201-1.513-0.492-2.032-0.519-0.619-0.036-1.895,0.1-2.451,0.355-0.399,0.183-0.93,0.966-1.322,1.167-0.326,0.154-1.1,0.136-1.439,0.273-0.455,0.191-1.302,0.766-1.639,1.13-0.348,0.355-0.712,1.312-1.038,1.676-0.283,0.319-0.912,1.002-1.33,1.039-0.247,0.027-0.684-0.281-0.875-0.437-0.165-0.128-0.476-0.438-0.529-0.637-0.063-0.301,0.256-0.904,0.282-1.205,0.027-0.273,0.082-0.837-0.036-1.083-0.137-0.283-0.712-0.611-0.966-0.802-0.392-0.3-1.23-0.866-1.643-1.158-0.318-0.227-0.965-0.683-1.282-0.92-0.273-0.209-0.749-0.783-1.076-0.883-0.419-0.128-1.34,0.044-1.768,0.154-0.465,0.127-1.332,0.575-1.759,0.811-0.639,0.347-1.813,1.23-2.442,1.594-0.382,0.229-1.139,0.702-1.559,0.803-0.327,0.082-1.03,0.155-1.32,0-0.301-0.146-0.51-0.919-0.802-1.084-0.437-0.228-1.476-0.119-1.969-0.072-0.538,0.045-1.576,0.473-2.124,0.436-0.3-0.017-0.873-0.291-1.155-0.4-0.292-0.109-0.849-0.429-1.168-0.438-0.42-0.008-1.212,0.356-1.594,0.52-0.291,0.119-0.912,0.328-1.12,0.555-0.247,0.255-0.53,0.939-0.565,1.285-0.036,0.384,0.209,1.149,0.318,1.522,0.145,0.501,0.556,1.467,0.719,1.959,0.192,0.565,0.566,1.705,0.685,2.287,0.1,0.556,0.181,1.676,0.2,2.242,0.009,0.33,0.091,1.02-0.048,1.322-0.197,0.491-1.037,1.22-1.475,1.522-0.345,0.245-1.147,0.583-1.558,0.682-0.574,0.138-1.776,0.092-2.368,0.165-0.503,0.055-1.576,0.082-2.006,0.355-0.265,0.174-0.59,0.747-0.719,1.038-0.165,0.384-0.109,1.249-0.318,1.604-0.229,0.401-1.031,0.93-1.403,1.203-0.411,0.301-1.221,0.993-1.724,1.085-0.265,0.045-0.802-0.119-1.039-0.247-0.464-0.245-1.083-1.157-1.521-1.439-0.647-0.401-2.097-0.938-2.842-1.085-1.112-0.209-3.398-0.136-4.529-0.036-1.158,0.1-3.425,0.602-4.566,0.838-0.792,0.173-2.35,0.71-3.162,0.766-0.463,0.027-1.385-0.155-1.84-0.201-0.446-0.044-1.34-0.055-1.769-0.164-0.738-0.191-2.068-1.02-2.797-1.239-0.783-0.227-2.397-0.456-3.208-0.484-0.774-0.027-2.315,0.184-3.078,0.247-1.066,0.083-3.19,0.501-4.247,0.356-0.438-0.056-1.248-0.419-1.64-0.603-0.639-0.291-1.785-1.138-2.453-1.357-0.846-0.282-2.66-0.473-3.562-0.437-0.793,0.027-2.36,0.4-3.126,0.637-0.856,0.255-2.56,0.885-3.315,1.358-0.375,0.237-1.167,0.747-1.331,1.167-0.2,0.537,0.164,1.723,0.282,2.278,0.156,0.665,0.703,1.903,0.849,2.57,0.109,0.518,0.436,1.621,0.236,2.122-0.109,0.273-0.628,0.711-0.919,0.757-0.21,0.036-0.602-0.229-0.802-0.319-0.247-0.11-0.694-0.438-0.959-0.483-0.263-0.036-0.828,0.009-1.047,0.165-0.446,0.318-0.783,1.448-1.003,1.958-0.199,0.474-0.719,1.449-0.673,1.959,0.044,0.647,0.829,1.757,1.193,2.286,0.393,0.564,1.513,1.432,1.805,2.042,0.137,0.273,0.327,0.929,0.199,1.203-0.19,0.41-1.129,0.774-1.557,0.921-0.621,0.209-1.951,0.345-2.607,0.282-0.646-0.073-1.895-0.519-2.478-0.802-0.61-0.292-2.25-1.467-2.25-1.467l-13.669,10.598-4.774-2.644-5.314,6.543-1.229-5.505-1.122-0.664-4.983,1.676-0.255-2.104,2.351-1.869-1.385-4.811v-3.518l-1.496-0.856-1.175-2.515-0.164-2.288-6.46-5.13,3.098-2.934-9.395-9.832-0.374-7.737-1.494-0.592-4.921,2.834-1.914-4.273,5.495-3.791-1.011-4.063-2.889,0.218,0.055-6.57,3.152-1.659,3.791-3.892-3.043-8.064,2.506-0.392,2.779,3.963,6.306,1.094,1.996-1.968,0.482-4.593,1.45-1.148,0.819-4.647,5.076-2.377,3.645,0.355,3.327-0.802,5.803,0.046-0.2,5.886,9.613,2.242,0.921,1.805,3.563,0.037,0.283-1.195-1.805-5.048,3.09-1.768-1.649-3.199,1.767-0.847,3.964,4.046,0.521-0.802-1.287-2.041,6.689-2.679,1.048,0.118,1.677,1.358,1.038,0.046,0.164-0.72,1.287,0.2,4.164,3.599,5.933-1.522,6.44-3.48-1.557-3.49,0.081-1.841,5.687,0.246,0.557-1.285-1.157-2.124,7.527-7.008,2.961-4.127-1.395-2.324,5.559-7.845-0.839-2.89,0.119-5.485-1.275-1.922,0.874-7.573,1.64-1.723,7.701-2.159,0.392-6.17c0.51-0.456,1.166-1.356,1.649-1.677,0.338-0.236,1.102-0.656,1.514-0.646,0.573,0.027,1.62,0.629,2.003,1.048,0.773,0.829,1.641,3.043,1.841,4.164,0.265,1.422-0.155,4.329-0.319,5.759-0.1,0.976-0.499,2.889-0.637,3.855-0.092,0.657-0.501,2.005-0.319,2.642,0.183,0.639,1.049,1.878,1.675,2.078,0.74,0.237,2.397-0.282,2.972-0.801,0.665-0.603,1.013-2.506,1.277-3.364,0.282-0.92,0.765-2.661,0.964-3.854,0.247-0.182,0.493-0.374,0.612-0.492,0.409-0.402,1.002-1.404,1.439-1.769,0.329-0.264,1.074-0.856,1.504-0.802,0.436,0.056,1.085,0.812,1.275,1.203,0.199,0.393,0.19,1.303,0.181,1.741,0,0.428-0.327,1.312-0.207,1.73,0.079,0.292,0.755,0.957,0.755,0.957l6.826,0.165s0.456-1.147,0.564-1.549c0.09-0.336,0.027-1.121,0.263-1.384,0.184-0.21,0.795-0.219,1.05-0.319,0.292-0.119,0.982-0.282,1.12-0.565,0.129-0.273-0.255-0.875-0.245-1.175,0.019-0.465,0.364-1.33,0.537-1.758,0.209-0.52,0.675-1.548,0.983-2.005,0.257-0.364,1.205-1.311,1.205-1.311l2.059,0.19,1.229-5.795,7.097-3.446-1.574-0.456-2.86-2.74,0.292-2.132,2.133-2.087,4.165-9.769,3.097,2.324,2.562-4.22,0.956,0.483-0.018,0.127,4.564,7.007,6.516,1.567v1.467l0.01,0.003z\",\"name\":\"Черкаська область\"},\"74\":{\"path\":\"M882.17,262.09l0.018,0.346-2.851,5.888-3.363,0.801-1.202,2.878-8.212,7.81-6.606,0.529-1.439-1.922-1.758-0.046v2.525l-9.131-0.438-0.885-4.766-6.214-0.047-2.241-1.675-4.283,3.799-4.565,5.73-2.324-1.885-2.687,1.368-5.97,0.154,4.292-6.771-3.764-0.036-4.493-7.244,7.856-4.093-2.242-2.241-6.37-1.039-0.684-4.811-6.005-2.242-4.328,3.645-0.601,1.969-7.089,0.355-1.394,1.404-1.086,1.203-2.77-1.167-3.482-0.355-3.727,0.519-3.726-0.483-4.119,0.365-3.928-0.046-3.163-3.399-1.485,0.52-1.273,0.483-0.282-1.33-0.685-1.394-0.082-1.322,2.359-0.328,1.368-0.438,0.362-1.722-0.801-3.363-0.601-3.125-0.801-0.484-0.649-0.437,0.611-1.203-0.245-1.076-1.723-1.403-1.888-1.521-0.117-1.167-0.838-1.003-1.158-0.118-3.289,1.084-4.246,1.039-4.721,0.565-2.523-0.118-1.923-1.249-0.2-1.558-0.847-0.329-2.043,0.365-2.078-0.838-3.526-0.52,2.16-4.044,2.241,1.522,1.048-0.566-0.164-4.365-0.838-2.806h-3.407l-1.441-0.875-2.479-6.607,0.521-5.367-1.121-0.73h-1.604l-1.522-0.026c0.174-0.885,0.593-2.013,0.802-2.652,0.256-0.776,1.067-2.233,1.194-3.043,0.155-0.894,0-2.717-0.154-3.608-0.238-1.321-1.64-3.782-1.604-5.121,0.019-0.575,0.683-1.604,0.802-2.169,0.117-0.548,0.273-1.686,0.163-2.241-0.172-0.813-0.912-2.397-1.521-2.962-0.093-0.073-0.21-0.155-0.347-0.227l0.538-2.325c0.072-0.01,0.136-0.037,0.182-0.063,0.4-0.283,0.274-1.604,0.693-1.868,0.409-0.255,1.439,0.237,1.922,0.156,0.375-0.056,1.112-0.329,1.386-0.585,0.374-0.354,0.93-1.347,0.911-1.868-0.027-0.528-1.104-1.292-1.076-1.812,0.038-0.538,1.104-1.213,1.286-1.713,0.181-0.474,0.201-1.522,0.164-2.032-0.063-0.922-0.492-2.752-0.802-3.627-0.271-0.757-1.148-2.133-1.439-2.888-0.2-0.501-0.538-1.542-0.593-2.078-0.082-0.802,0.219-2.405,0.219-3.208-0.009-0.829,0.028-2.533-0.273-3.307-0.292-0.766-1.594-1.887-1.977-2.625-0.283-0.556-0.656-1.776-0.748-2.397-0.219-1.603,0.009-4.856,0.164-6.461,0.074-0.729,0.62-2.168,0.483-2.887-0.109-0.565-1.02-1.414-1.175-1.97-0.155-0.574-0.201-1.803,0-2.351,0.146-0.419,0.738-1.156,1.121-1.394,0.418-0.255,1.43-0.438,1.921-0.419,0.447,0.009,1.268,0.529,1.713,0.473,0.348-0.037,0.994-0.428,1.222-0.691,0.419-0.484,0.755-1.777,0.911-2.406,0.246-1.003,0.246-3.099,0.482-4.11,0.255-1.121,1.048-3.271,1.496-4.325,0.5-1.194,1.502-3.616,2.295-4.645,0.866-1.138,3.271-2.775,4.265-3.793,0.792-0.802,2.096-2.668,2.943-3.417,0.956-0.856,3.398-1.938,4.273-2.884,0.529-0.576,1.232-2.007,1.549-2.724,0.302-0.706,0.838-2.173,0.902-2.937,0.056-0.547-0.418-1.66-0.264-2.188,0.108-0.383,0.656-1.054,1.012-1.229,0.545-0.26,1.803,0.008,2.406-0.05,1.038-0.108,3.07-0.628,4.109-0.751,0.93-0.11,2.807-0.284,3.735-0.214,0.712,0.054,2.15,0.276,2.78,0.59,0.554,0.27,1.393,1.214,1.867,1.601,0.618,0.498,1.74,1.752,2.516,1.922,0.602,0.133,1.858-0.242,2.396-0.533,0.464-0.245,1.138-1.064,1.494-1.44,0.611-0.643,1.705-2.023,2.305-2.673,0.666-0.729,1.885-2.391,2.771-2.829,0.884-0.435,2.917-0.467,3.899-0.481,1.313-0.019,3.937,0.258,5.231,0.481,0.538,0.092,1.566,0.415,2.086,0.534,1.969,0.45,5.924,1.223,7.901,1.602,1.867,0.355,5.594,1.104,7.479,1.335,1.222,0.147,3.692,0.138,4.911,0.32,0.693,0.103,2.051,0.436,2.726,0.64,0.466,0.142,1.578,0.274,1.813,0.695,0.19,0.341-0.299,1.157-0.263,1.549,0.044,0.509,0.364,1.53,0.691,1.92,0.319,0.375,1.24,0.813,1.703,0.961,0.483,0.151,1.486,0.26,1.979,0.215,0.557-0.051,1.586-0.542,2.142-0.64,0.426-0.079,1.322-0.134,1.759-0.109,0.437,0.029,1.286,0.247,1.713,0.321,0.41,0.072,1.247,0.381,1.658,0.267,0.229-0.067,0.564-0.466,0.736-0.641,0.613-0.598,1.651-1.961,2.251-2.563,0.903-0.904,3.063-2.353,3.848-3.363,0.473-0.616,1.021-2.089,1.385-2.778,0.282-0.552,0.647-1.863,1.175-2.189,0.383-0.237,1.395,0.113,1.813-0.054,0.318-0.126,0.931-0.575,1.012-0.907,0.128-0.483-0.482-1.416-0.693-1.87-0.272-0.597-1.167-1.649-1.273-2.296-0.13-0.721,0.243-2.192,0.471-2.885,0.268-0.785,1.323-2.138,1.551-2.937,0.102-0.36,0.073-1.121,0.109-1.496,0.074-0.667-0.036-2.133,0.373-2.669,0.346-0.452,1.531-0.792,2.076-0.907,0.804-0.167,2.452-0.013,3.264,0,0.992,0.014,2.998-0.15,3.955,0.105,1.084,0.291,2.988,1.552,3.956,2.136,1.027,0.631,2.932,2.158,3.997,2.724,0.797,0.423,2.472,1.175,3.364,1.335,0.584,0.104,1.768,0.004,2.353-0.054,0.808-0.082,2.395-0.49,3.205-0.587,1.096-0.132,3.317-0.32,4.43-0.267,0.592,0.028,1.758,0.319,2.351,0.375,0.556,0.049,1.688,0.16,2.243,0.053,0.91-0.18,2.596-1.057,3.416-1.495,1.104-0.586,3.18-1.975,4.22-2.671,0.819-0.551,2.441-1.668,3.206-2.298,0.82-0.675,2.161-2.423,3.09-2.937,0.737-0.401,2.434-0.731,3.262-0.8,0.984-0.079,2.964,0.246,3.956,0.322,1.094,0.083,3.28,0.251,4.374,0.319,0.298,0.019,0.682,0.041,1.102,0.066l-1.013,2.884-1.237,2.683-0.484,3.204-0.272,2.925-1.805,2.523-0.966,2.684,0.482,2.483,1.969,1.843,2.277,1.721,2.443,0.962,1.238,1.281,0.283,1.724,0.931,1.241,1.028,0.16,1.211,1.881-0.08,1.404-1.768,0.68h-1.605l-1.357,0.48-1.521-0.802-0.602-1.16-1.758,0.481-2.207,0.401-1.567,0.522,0.684,1.398,2.169,2.325,1.96,0.92,0.837,1.403,1.204,2.601-0.955,2.565-0.649,1.641-1.679-0.719-1.365-0.32-0.756,0.718-1.686-0.158-1.204-0.603-1.356-0.079-0.447,0.599,0.602,1.203-0.437,1.282-1.242,0.398-1.32-1.159-0.518-0.644-1.85,1.404-0.721,1.241,0.127,1.241-0.127,1.919-0.957,1.686-1.484,2.525-1.12,4.2,0.026,3.181,2.032,1.814,1.55,1.977,0.346,2.188,0.292,2.998,1.12,1.011,1.257,2.078,1.066,2.806,0.236,1.631-0.792,0.456-1.923-0.082-1.313,0.583,0.912,1.631,0.902,1.521,0.83,1.231-0.292,1.494-1.732,1.066-1.922,0.911-0.748,0.929,0.183,2.406,0.802,1.494,0.855,1.468,1.414,1.868-0.166,1.367-0.982,1.867-1.204,0.83-1.839-0.374-1.66-1.631-0.372-1.759-0.374-1.603-0.483-0.938-0.985-0.32-0.929,0.348-0.783,1.147,0.083,1.229,0.938,1.413,1.286,2.779,0.982,0.829,0.984,1.331-0.11,3.473,0.304,2.059-0.966,2.296-1.067,1.549-0.155,1.714-0.055,1.276-1.395,0.801-1.494,0.374-0.912,1.065,0.056,1.395,0.638,1.705-0.21,1.339-1.121,1.541-0.154,1.978v1.021l1.012,0.054,0.957-0.701,1.157,0.501,12.894,13.531,0.237,6.651-0.839,1.122-2.487-0.046,0.482,6.453-1.957,2.405,1.238,4.045,4.765,2.797-0.163,1.732-4.966-0.165-0.838,2.805-1.924,2.279,0.767,2.042-1.605,2.807-2.04,3.48,0.05,1.6z\",\"name\":\"Чернігівська область\"},\"77\":{\"path\":\"M449.44,447.03c0.218-0.009,0.41-0.019,0.574,0,0.674,0.044,2.013,0.373,2.615,0.692,0.829,0.437,2.105,1.859,2.825,2.46,0.628,0.509,1.795,1.723,2.568,1.968,0.584,0.201,1.887,0.174,2.452-0.045,0.72-0.283,1.84-1.422,2.296-2.033,0.401-0.528,0.866-1.795,1.121-2.405,0.164-0.383,0.273-1.277,0.593-1.55,0.574-0.501,2.259-0.399,2.988-0.637,0.346-0.12,1.021-0.411,1.34-0.583,0.328-0.201,0.865-0.774,1.222-0.911,0.691-0.283,2.195-0.402,2.943-0.374,0.792,0.018,2.515,0.1,3.143,0.583,0.419,0.319,0.583,1.466,0.912,1.868,0.292,0.354,1.002,0.992,1.44,1.12,0.611,0.183,1.895-0.074,2.515-0.21,0.447-0.1,1.303-0.428,1.704-0.637,0.447-0.238,1.158-1.075,1.66-1.176,0.609-0.127,1.895,0.246,2.449,0.529,0.438,0.217,0.985,1.139,1.451,1.283,0.417,0.128,1.32-0.237,1.758-0.218,0.446,0.028,1.448,0.054,1.757,0.382,0.284,0.292-0.027,1.322,0.274,1.595,0.337,0.311,1.376,0.237,1.813,0.109,0.319-0.091,0.802-0.565,1.066-0.748,0.456-0.309,1.303-1.047,1.813-1.229,0.574-0.2,1.805-0.182,2.406-0.21,0.547-0.027,1.659-0.135,2.196,0,0.666,0.174,1.713,1.258,2.397,1.33,0.428,0.056,1.321-0.208,1.659-0.472,0.273-0.229,0.464-0.939,0.638-1.23,0.2-0.337,0.51-1.13,0.856-1.285,0.456-0.202,1.494,0.391,1.976,0.274,0.301-0.083,0.712-0.656,1.013-0.757,0.391-0.129,1.249-0.082,1.658,0,0.775,0.172,2.169,0.984,2.89,1.339,0.482,0.236,1.375,0.93,1.913,1.011,0.229,0.036,0.656,0.063,1.058,0.036,0.045,0.12,0.082,0.229,0.118,0.329,0.2,0.52,0.703,1.532,0.802,2.078,0.165,0.93-0.254,2.852-0.036,3.763,0.227,0.975,1.256,2.734,1.796,3.572,0.309,0.466,1.138,1.448,1.657,2.06-0.054,0.045-0.109,0.09-0.154,0.127-0.802,0.573-2.552,1.467-3.417,1.922-0.574,0.3-1.694,0.919-2.296,1.121-0.337,0.109-1.066,0.391-1.394,0.265-0.429-0.156-0.812-1.103-1.122-1.44-0.355-0.392-1.092-1.168-1.547-1.44-0.512-0.309-1.65-0.801-2.242-0.801-0.492-0.01-1.439,0.391-1.87,0.638-0.583,0.337-1.485,1.368-2.031,1.769-0.729,0.538-2.306,1.457-3.099,1.921-0.783,0.446-2.332,1.432-3.197,1.704-0.748,0.237-2.37,0.656-3.099,0.374-0.902-0.336-1.85-2.232-2.57-2.88-0.611-0.565-1.877-2.25-2.661-1.977-0.52,0.173-0.42,1.567-0.593,2.078-0.126,0.391-0.292,1.266-0.591,1.549-0.401,0.401-1.577,0.629-2.133,0.747-0.747,0.173-2.286,0.2-3.043,0.319-0.783,0.137-2.359,0.994-3.098,0.702-0.447-0.183-0.802-1.203-1.067-1.604-0.382-0.593-0.948-1.959-1.493-2.406-0.529-0.428-1.915-0.747-2.561-0.956-0.703-0.229-2.133-0.547-2.834-0.749-0.628-0.182-1.859-0.893-2.515-0.802-0.329,0.046-0.92,0.474-1.122,0.748-0.253,0.345-0.437,1.22-0.473,1.659-0.046,0.473-0.019,1.493,0.209,1.92,0.255,0.467,1.249,0.996,1.659,1.333,0.538,0.446,1.623,1.33,2.132,1.813,0.3,0.282,1.103,0.775,1.122,1.175,0.017,0.347-0.584,0.856-0.858,1.066-0.411,0.337-1.384,0.976-1.913,0.967-0.33-0.01-0.875-0.438-1.131-0.646-0.593-0.485-1.358-1.906-2.022-2.299-0.357-0.199-1.221-0.446-1.604-0.318-0.465,0.164-0.947,1.14-1.284,1.495-0.301,0.328-1.24,0.793-1.276,1.23-0.037,0.419,0.948,0.92,1.012,1.339,0.053,0.383-0.32,1.12-0.538,1.441-0.31,0.473-1.194,1.221-1.65,1.548-0.464,0.337-1.53,0.774-2.033,1.067-0.601,0.355-1.803,1.056-2.35,1.494-0.429,0.346-1.175,1.148-1.549,1.549-0.292,0.338-0.748,1.141-1.122,1.394-0.355,0.247-1.221,0.558-1.658,0.529-0.437-0.026-1.185-0.582-1.594-0.747-0.447-0.173-1.34-0.556-1.823-0.584-0.383-0.036-1.185,0.109-1.54,0.265-0.329,0.137-0.875,0.601-1.13,0.857-0.264,0.265-0.593,1.002-0.902,1.229-0.602,0.431-2.197,0.513-2.834,0.902-0.628,0.393-1.513,1.651-2.079,2.133-0.519,0.446-1.694,1.148-2.195,1.604-0.984,0.901-2.716,2.945-3.518,4.01-0.711,0.929-1.905,2.942-2.57,3.899-0.437,0.63-1.257,1.934-1.813,2.451-0.811,0.773-2.788,1.869-3.735,2.459-0.611,0.376-1.777,1.232-2.46,1.442-0.548,0.171-1.723,0.244-2.297,0.163-0.628-0.1-1.795-0.702-2.406-0.913-0.737-0.252-2.205-0.891-2.988-0.955-1.113-0.103-3.336,0.402-4.429,0.639-1.075,0.226-3.125,1.166-4.219,1.229-0.865,0.046-2.552-0.694-3.417-0.592-0.82,0.099-2.25,1.093-3.044,1.338-0.783,0.237-2.396,0.521-3.207,0.583-0.993,0.083-3.008,0.093-4-0.053-0.692-0.092-1.986-0.675-2.67-0.749-0.801-0.072-2.414,0.156-3.208,0.275-0.793,0.108-2.351,0.573-3.152,0.637-1.24,0.101-3.727-0.092-4.965-0.209-1.113-0.119-3.309-0.62-4.43-0.703-1.002-0.072-3.007-0.055-4.01,0.056-0.592,0.063-1.785,0.266-2.342,0.482-0.537,0.211-1.468,0.911-1.977,1.175-0.465,0.228-1.431,0.629-1.923,0.805-0.438,0.145-1.358,0.272-1.769,0.471-1.029,0.521-2.771,2.07-3.626,2.837-0.911,0.81-2.743,2.459-3.417,3.47-0.628,0.932-1.376,3.063-1.769,4.11-0.245,0.684-0.755,2.061-0.847,2.779-0.064,0.438,0.073,1.32,0.046,1.758-0.009,0.301,0.072,0.994-0.155,1.175-0.247,0.192-0.93-0.045-1.231-0.099-0.684-0.146-1.996-0.665-2.669-0.855-1.249-0.365-3.764-1.014-5.022-1.341-0.783-0.2-2.241-0.612-3.226-0.821,0.246-0.729,0.62-1.812,0.82-2.275,0.456-1.021,1.695-2.908,2.086-3.948,0.402-1.083,0.904-3.344,1.068-4.482,0.136-0.948,0.445-2.87,0.218-3.799-0.218-0.849-1.44-2.196-1.822-2.99-0.266-0.546-0.721-1.695-0.848-2.295-0.165-0.749-0.273-2.279-0.219-3.044,0.073-0.884,0.492-2.634,0.801-3.472,0.512-1.377,2.033-3.929,2.726-5.231,0.547-1.029,1.386-3.316,2.241-4.109,0.329-0.31,1.221-0.62,1.658-0.746,0.529-0.164,1.695-0.119,2.188-0.384,0.82-0.428,1.849-2.077,2.561-2.669,0.637-0.52,2.133-1.25,2.778-1.76,0.493-0.382,1.458-1.192,1.814-1.703,0.473-0.674,0.812-2.37,1.34-2.998,0.482-0.575,1.931-1.213,2.504-1.705,0.674-0.574,1.832-1.904,2.406-2.56,0.756-0.885,2.061-2.826,2.88-3.637,1.129-1.102,3.718-2.952,5.021-3.846,1.413-0.955,4.228-2.932,5.823-3.516,0.947-0.355,2.998-0.747,4.01-0.646,0.819,0.082,2.333,0.866,3.088,1.176,0.966,0.391,2.761,1.604,3.8,1.657,0.611,0.027,1.895-0.327,2.35-0.746,0.338-0.329,0.666-1.294,0.694-1.769,0.027-0.666-0.639-1.905-0.748-2.56-0.2-1.176-0.218-3.563-0.273-4.757-0.055-1.294-0.027-3.891-0.155-5.176-0.11-1.13-0.656-3.353-0.748-4.482-0.09-1.112-0.044-3.326,0-4.438,0.019-0.493,0.156-1.978,0.156-1.978l4.757-2.005c0.592,0.547,1.339,1.14,1.813,1.422,0.565,0.336,1.806,0.893,2.461,0.966,0.701,0.063,2.068-0.411,2.77-0.484,0.829-0.091,2.524-0.364,3.317-0.109,0.456,0.146,1.185,0.848,1.549,1.175,0.401,0.366,1.166,1.167,1.495,1.605,0.428,0.583,0.956,1.967,1.439,2.504,0.365,0.41,1.239,1.121,1.759,1.285,0.492,0.146,1.54,0.073,2.032-0.055,0.528-0.136,1.458-0.729,1.923-1.011,0.536-0.328,1.521-1.158,2.085-1.45,0.292-0.146,0.902-0.391,1.23-0.428,0.346-0.027,1.057,0.082,1.385,0.219,0.337,0.146,0.976,0.591,1.175,0.901,0.302,0.483,0.502,1.631,0.484,2.196-0.037,0.865-1.139,2.452-1.02,3.307,0.054,0.365,0.546,0.958,0.801,1.232,0.31,0.327,1.002,0.983,1.44,1.066,0.629,0.118,1.914-0.375,2.459-0.693,0.31-0.182,0.666-0.921,1.01-1.012,0.266-0.073,0.831,0.127,1.067,0.264,0.484,0.283,1.204,1.168,1.55,1.604,0.382,0.475,0.892,1.623,1.338,2.023,0.602,0.555,2.105,1.302,2.88,1.548,1.148,0.365,3.563,0.565,4.757,0.593,1.029,0.018,3.079-0.219,4.109-0.319,0.73,0.01,2.09-0.28,3.04-0.35\",\"name\":\"Чернівецька область\"},\"43\":{\"path\":\"M1137,751.74c0.183,0.74-0.092,2.253-0.092,3.009,0,2.059,0.274,6.206,0.092,8.248-0.182,1.118-0.546,3.398-1.094,4.364-0.363,0.563-1.367,1.503-2.003,1.767-0.639,0.265-2.097,0.366-2.735,0.201-0.546-0.137-1.367-1.012-1.914-1.203-0.454-0.164-1.364-0.409-1.821-0.283-0.273,0.1-0.82,0.62-1.004,0.922-0.181,0.354-0.364,1.192-0.364,1.604,0,0.438,0.184,1.329,0.093,1.758-0.093,0.547-0.638,1.533-1.003,1.969-0.638,0.8-2.371,1.896-3.099,2.641-0.273,0.32-1.001,0.967-1.001,1.404-0.092,0.337,0.091,1.231,0.363,1.323,0.364,0.072,0.638-0.741,1.003-0.84,0.273-0.119,1.003-0.182,1.275,0.037,0.364,0.284,0.364,1.293,0.272,1.723-0.092,0.437-0.817,1.093-0.909,1.521-0.276,0.885-0.276,2.78-0.094,3.683,0.186,0.863,0.911,2.478,1.368,3.242,0.455,0.831,1.914,2.18,2.097,3.091,0.182,0.582,0.091,1.84-0.183,2.405-0.184,0.638-1.094,1.759-1.642,2.196-0.638,0.545-2.186,1.331-3.007,1.521-0.911,0.218-2.824-0.126-3.734,0-1.002,0.156-3.1,0.721-4.102,1.203-0.546,0.282-1.458,1.057-1.914,1.485-0.273,0.283-0.729,1.139-1.092,1.276-0.457,0.153-1.276-0.218-1.731-0.319-1.46-0.317-4.283-1.303-5.741-1.52-1.093-0.166-3.28-0.385-4.373-0.156-1.005,0.2-2.733,1.183-3.646,1.722-0.639,0.4-1.642,1.668-2.369,1.921-0.638,0.221-2.006-0.054-2.734,0-0.729,0.046-2.188,0.238-2.823,0.439-0.367,0.099-1.005,0.519-1.37,0.555-0.637,0.064-1.821-0.219-2.367-0.473-0.729-0.301-1.822-1.202-2.278-1.768-0.639-0.712-1.093-2.578-1.64-3.317-0.457-0.702-1.822-1.857-2.46-2.37-0.73-0.527-2.28-1.477-3.099-1.758-1.001-0.31-2.917-0.52-3.827-0.564-2.187-0.092-6.378,0.027-8.476,0.481-1.548,0.338-4.465,1.504-5.832,2.279-0.819,0.519-2.552,1.777-3.19,2.568-0.362,0.419-1,1.378-1,1.925,0,0.481,0.729,1.312,0.729,1.803,0.091,0.619-0.183,1.914-0.547,2.441-0.183,0.355-1.003,0.738-1.277,1.038-0.272,0.257-0.818,0.777-0.818,1.123-0.093,0.409,0.181,1.237,0.364,1.64,0.091,0.229,0.364,0.638,0.364,0.885,0.09,0.481-0.091,1.631-0.457,1.877-0.454,0.256-1.55-0.202-1.912-0.438-0.548-0.266-1.094-1.367-1.643-1.559-0.544-0.221-1.91-0.091-2.459,0.155-0.363,0.19-1.093,0.883-1.274,1.285-0.366,0.527-0.366,1.812-0.638,2.358-0.273,0.511-0.913,1.478-1.367,1.806-0.362,0.29-1.459,0.481-1.914,0.636-0.548,0.184-1.73,0.357-2.095,0.722-0.639,0.536-1.188,2.122-1.551,2.888-0.271,0.758-0.271,2.415-0.638,3.126-0.457,0.711-1.55,1.895-2.277,2.361-0.728,0.536-2.462,1.538-3.372,1.521-0.729-0.008-2.005-0.848-2.551-1.239-0.548-0.383-1.459-1.575-2.096-1.84-0.456-0.21-1.551-0.202-2.098-0.129-0.729,0.119-2.095,0.839-2.823,1.05-0.82,0.245-2.644,0.591-3.464,0.718-0.637,0.102-2.005,0.138-2.644,0.237-2.185,0.335-6.648,1.221-8.745,1.887-1.551,0.481-4.557,1.859-6.015,2.479-1.367,0.528-4.01,1.367-5.193,2.123-0.549,0.401-1.642,1.476-2.096,2.005-1.187,1.248-3.464,3.835-4.466,5.248-0.546,0.757-1.368,2.407-1.823,3.245-0.455,1.065-1.093,3.334-1.639,4.4-0.639,1.396-1.906,4.2-2.89,5.367-0.392,0.475-1.368,1.259-1.922,1.522-1.039,0.491-3.429,0.555-4.484,1.001-0.984,0.419-2.744,1.687-3.563,2.371-0.62,0.5-1.768,1.639-2.241,2.277-0.592,0.793-1.35,2.624-1.887,3.444-0.502,0.776-1.522,2.35-2.242,2.926-1.103,0.865-3.792,1.857-5.13,2.287-0.966,0.3-2.962,0.701-3.965,0.8-1.492,0.138-4.502-0.072-6.004-0.044-1.258,0.017-3.772-0.019-5.012,0.202-1.305,0.234-3.718,1.564-5.04,1.637-0.737,0.046-2.259-0.217-2.888-0.6-0.692-0.421-1.422-1.995-2.04-2.525-0.44-0.372-1.506-0.872-2.006-1.157-0.438-0.246-1.42-0.592-1.759-0.965-0.255-0.272-0.51-0.993-0.602-1.358-0.127-0.5,0.027-1.585-0.201-2.041-0.3-0.61-1.349-1.56-1.968-1.841-0.773-0.364-2.542-0.382-3.401-0.401-0.955-0.027-2.888,0.538-3.807,0.274-0.501-0.138-1.274-0.91-1.677-1.238-0.92-0.749-2.688-2.333-3.525-3.162-0.492-0.483-1.56-1.432-1.886-2.042-0.229-0.448-0.438-1.457-0.438-1.968,0-0.312,0.028-1.048,0.282-1.239,0.236-0.183,0.903,0.09,1.203,0.045,0.455-0.082,1.357-0.392,1.722-0.683,0.365-0.301,0.684-1.284,1.039-1.604,0.394-0.365,1.368-0.874,1.886-1.003,0.493-0.126,1.532-0.036,2.04,0,0.503,0.037,1.532,0.101,1.997,0.283,0.282,0.109,0.712,0.601,1.003,0.683,0.308,0.085,1.066,0.157,1.284-0.082,0.283-0.301,0.228-1.302,0-1.64-0.21-0.319-1.039-0.465-1.403-0.565-0.337-0.091-1.103-0.008-1.357-0.236-0.337-0.3-0.511-1.285-0.483-1.722,0.028-0.484,0.621-1.313,0.758-1.768,0.173-0.559,0.399-1.706,0.445-2.28,0.072-1.026-0.092-3.098-0.2-4.127-0.1-0.939-0.582-2.779-0.603-3.727-0.019-1.011,0.119-3.089,0.484-4.044,0.302-0.813,1.374-2.226,1.959-2.881,0.501-0.574,1.769-1.449,2.277-2.005,0.364-0.384,1.011-1.229,1.286-1.677,0.264-0.438,0.765-1.349,0.885-1.841,0.253-1.094,0.189-3.382,0.035-4.492-0.192-1.366-1.058-4-1.56-5.286-0.5-1.284-1.794-3.745-2.442-4.966-0.655-1.229-2.231-3.554-2.768-4.848-0.275-0.683-0.693-2.104-0.758-2.844-0.053-0.61,0.056-1.858,0.236-2.441,0.137-0.403,0.702-1.048,0.849-1.441,0.138-0.361,0.236-1.138,0.272-1.527,0.046-0.411-0.046-1.259,0-1.679,0.037-0.326,0.101-1.011,0.283-1.283,0.182-0.248,0.811-0.447,1.048-0.639,0.272-0.221,0.956-0.685,0.956-1.04,0-0.219-0.363-0.564-0.564-0.646-0.237-0.091-0.775,0.054-1.039,0.081-0.455,0.046-1.349,0.228-1.805,0.2-0.427-0.026-1.282-0.228-1.676-0.4-0.31-0.128-0.802-0.629-1.121-0.721-0.392-0.107-1.22-0.063-1.603,0.046-0.355,0.092-0.931,0.613-1.286,0.722-0.364,0.107-1.137,0.117-1.521,0.117-0.339,0-1.031-0.018-1.36-0.117-0.208-0.064-0.545-0.457-0.765-0.447-0.31,0.027-0.864,0.474-0.956,0.766-0.108,0.327,0.155,1.037,0.356,1.32,0.226,0.311,1.093,0.51,1.284,0.838,0.138,0.245,0.163,0.877,0.037,1.12-0.2,0.394-1.059,0.839-1.476,0.967-0.54,0.154-1.688-0.055-2.252,0-0.511,0.045-1.551,0.21-2.032,0.401-0.519,0.192-1.457,0.774-1.886,1.121-0.337,0.273-0.82,1.021-1.167,1.285-0.338,0.246-1.104,0.674-1.522,0.709-0.528,0.056-1.557-0.346-2.041-0.555-0.63-0.272-1.813-0.992-2.323-1.439-0.91-0.812-2.305-2.835-3.042-3.809-0.85-1.121-2.279-3.582-3.246-4.604-0.884-0.937-2.979-2.478-4.045-3.206-0.949-0.647-2.961-1.769-3.965-2.323-1.486-0.82-4.392-2.646-6.004-3.162-1.605-0.521-5.003-0.921-6.688-0.921-1.241,0-3.745,0.219-4.887,0.684-0.993,0.392-2.578,1.896-3.443,2.524-0.474,0.326-1.376,1.038-1.886,1.313-0.439,0.237-1.35,0.784-1.842,0.729-0.619-0.073-1.458-1.203-2.041-1.403-0.627-0.218-1.986-0.209-2.642-0.2-0.575,0-1.74,0.363-2.287,0.2-0.465-0.146-1.212-0.865-1.522-1.249-0.528-0.646-1.275-2.169-1.558-2.96-0.283-0.756-0.766-2.353-0.722-3.163,0.047-0.939,0.768-2.743,1.239-3.563,0.565-0.994,2.087-2.743,2.963-3.489,1.411-1.195,4.738-2.871,6.334-3.8,0.819-0.483,2.577-1.286,3.316-1.886,0.682-0.547,1.686-2.006,2.324-2.597,0.383-0.356,1.158-1.075,1.639-1.25,0.512-0.183,1.76-0.429,2.168-0.073,0.193,0.166,0.185,0.757,0.119,1.004-0.081,0.3-0.71,0.684-0.765,0.992-0.045,0.284,0.111,0.911,0.327,1.084,0.292,0.238,1.157,0.246,1.524,0.119,0.427-0.155,1.027-0.93,1.319-1.276,0.374-0.455,1.166-1.392,1.321-1.968,0.154-0.602-0.31-1.867-0.199-2.479,0.09-0.536,0.583-1.547,0.883-2.005,0.712-1.12,2.487-3.132,3.518-3.962,1.121-0.911,3.726-2.188,5.011-2.844,1.303-0.673,4.02-1.786,5.323-2.44,1.026-0.531,3.151-1.514,4.044-2.244,0.483-0.401,1.285-1.384,1.604-1.931,0.329-0.557,0.811-1.796,0.92-2.433,0.081-0.51-0.173-1.551-0.072-2.05,0.082-0.476,0.427-1.432,0.758-1.807,0.226-0.253,0.864-0.59,1.203-0.672,0.227-0.065,0.772-0.154,0.956,0,0.226,0.181,0.217,0.863,0.234,1.156,0.047,0.465-0.19,1.396-0.071,1.84,0.109,0.429,0.602,1.186,0.92,1.486,0.273,0.256,0.966,0.601,1.32,0.72,0.622,0.209,1.951,0.493,2.599,0.401,0.673-0.092,1.856-0.803,2.451-1.121,0.811-0.439,2.416-1.377,3.124-1.958,0.693-0.585,1.86-1.988,2.434-2.69,0.301-0.354,0.73-1.229,1.131-1.476,0.392-0.253,1.395-0.2,1.841-0.363,0.445-0.166,1.304-0.631,1.677-0.921,0.39-0.301,0.903-1.268,1.366-1.44,0.511-0.199,1.723-0.11,2.205,0.155,0.282,0.164,0.466,0.903,0.758,1.048,0.337,0.154,1.127,0.027,1.484-0.083,0.374-0.127,1.038-0.573,1.32-0.847,0.384-0.355,0.83-1.375,1.24-1.723,0.537-0.438,1.85-1.013,2.523-1.156,0.438-0.09,1.368-0.082,1.807,0.035,0.334,0.1,0.9,0.566,1.236,0.684,0.401,0.139,1.303,0.473,1.677,0.283,0.2-0.1,0.339-0.556,0.402-0.757,0.183-0.5,0.28-1.547,0.446-2.05,0.182-0.555,0.584-1.677,0.957-2.124,0.217-0.245,0.81-0.599,1.118-0.719,0.402-0.154,1.297-0.119,1.688-0.283,0.373-0.145,1.128-0.564,1.321-0.92,0.163-0.284,0.21-1.013,0.081-1.322-0.145-0.354-0.811-0.837-1.165-1.001-0.576-0.266-1.888-0.329-2.517-0.356-0.756-0.035-2.276-0.035-3.007,0.154-0.438,0.121-1.158,0.802-1.604,0.802-0.335,0.011-1.056-0.271-1.238-0.555-0.227-0.366,0.009-1.294,0.036-1.723,0.037-0.437,0.202-1.295,0.202-1.722,0-0.71-0.193-2.114-0.32-2.807-0.128-0.711-0.693-2.077-0.72-2.796-0.037-0.842,0.42-2.472,0.566-3.291,0.082-0.527,0.39-1.585,0.354-2.122,0-0.065-0.01-0.139-0.019-0.21l1.343-0.674-2.646-10.736,2.278,0.047,0.421-1.212c0.218,0.403,0.49,0.792,0.701,0.992,0.3,0.274,1.11,0.476,1.447,0.701,0.393,0.265,1.192,0.849,1.386,1.275,0.201,0.439-0.026,1.451,0.055,1.925,0.091,0.52,0.383,1.557,0.692,1.977,0.374,0.501,1.494,1.131,2.032,1.439,0.665,0.384,2.012,1.249,2.778,1.287,0.521,0.026,1.633-0.303,1.978-0.694,0.282-0.328,0.301-1.276,0.32-1.712,0.008-0.283-0.246-0.876-0.111-1.124,0.191-0.334,1.005-0.672,1.387-0.691,0.446-0.02,1.329,0.338,1.658,0.639,0.336,0.31,0.811,1.194,0.801,1.657-0.008,0.438-0.556,1.186-0.801,1.55-0.21,0.301-0.855,0.766-0.967,1.121-0.164,0.564-0.127,1.904,0.274,2.352,0.244,0.272,1.085,0.227,1.44,0.318,0.39,0.092,1.219,0.191,1.549,0.429,0.438,0.327,0.857,1.421,1.176,1.868,0.235,0.337,0.655,1.074,1.011,1.283,0.4,0.229,1.375,0.256,1.85,0.237,0.529-0.027,1.722-0.081,2.078-0.482,0.31-0.347,0.116-1.386,0.245-1.84,0.109-0.446,0.347-1.403,0.675-1.722,0.274-0.268,1.065-0.475,1.439-0.52,0.447-0.055,1.321,0.154,1.769,0.198,0.444,0.037,1.347,0.1,1.794,0.12,0.319,0.009,1.086-0.246,1.284,0,0.275,0.318-0.308,1.229-0.281,1.641,0.047,0.591,0.364,1.813,0.766,2.25,0.42,0.447,1.722,0.684,2.277,0.955,0.394,0.193,1.239,0.52,1.521,0.838,0.338,0.377,0.574,1.388,0.768,1.843,0.116,0.31,0.408,0.921,0.481,1.238,0.101,0.492,0.319,1.549,0.117,2.006-0.164,0.382-0.873,0.993-1.283,1.048-0.355,0.045-0.968-0.675-1.32-0.602-0.357,0.063-0.904,0.69-1.002,1.038-0.119,0.429,0.116,1.388,0.397,1.724,0.283,0.326,1.187,0.547,1.604,0.637,0.639,0.146,1.978,0.339,2.608,0.165,0.582-0.165,1.603-0.938,2.004-1.404,0.326-0.392,0.854-1.33,0.91-1.841,0.055-0.437-0.21-1.32-0.391-1.723-0.193-0.437-0.766-1.202-1.084-1.566-0.302-0.337-1.011-0.909-1.358-1.192-0.318-0.265-1.075-0.649-1.321-0.967-0.181-0.22-0.418-0.756-0.446-1.039-0.018-0.237,0.037-0.757,0.199-0.92,0.272-0.264,1.104-0.246,1.487-0.282,0.418-0.037,1.312-0.174,1.676,0.045,0.155,0.082,0.328,0.42,0.365,0.591,0.045,0.21-0.094,0.629-0.119,0.85-0.055,0.336-0.238,1.021-0.199,1.357,0.026,0.31,0.225,0.901,0.399,1.165,0.218,0.329,0.802,0.966,1.202,1.04,0.43,0.072,1.295-0.364,1.641-0.647,0.365-0.29,0.921-1.104,1.039-1.558,0.1-0.355-0.291-1.177-0.082-1.476,0.174-0.247,0.829-0.402,1.12-0.367,0.265,0.03,0.795,0.293,0.921,0.52,0.164,0.276-0.072,0.979,0,1.287,0.083,0.318,0.393,0.947,0.646,1.156,0.33,0.273,1.214,0.438,1.644,0.484,0.49,0.044,1.467-0.139,1.957-0.166,0.419-0.009,1.277-0.091,1.686,0,0.292,0.074,1.004,0.238,1.086,0.52,0.053,0.228-0.529,0.538-0.529,0.769,0,0.462,0.784,1.138,1.047,1.52,0.32,0.474,1.222,1.348,1.285,1.923,0.027,0.391-0.41,1.102-0.602,1.438-0.301,0.514-1.139,1.341-1.447,1.842-0.209,0.347-0.63,1.085-0.685,1.486-0.035,0.348,0.02,1.139,0.281,1.359,0.165,0.135,0.685-0.139,0.849,0,0.318,0.281-0.054,1.375,0.237,1.684,0.182,0.192,0.784,0.273,1.038,0.2,0.384-0.101,1.003-0.7,1.185-1.038,0.274-0.582,0.364-1.95,0.364-2.606,0.093-0.528,0-1.594,0-2.124,0.093-0.528,0-1.648,0.273-2.123,0.091-0.264,0.637-0.712,0.912-0.756,0.273-0.055,0.91,0.201,1.095,0.438,0.273,0.29,0.273,1.111,0.273,1.484,0,0.547-0.185,1.649-0.185,2.195,0,0.721-0.182,2.207,0.092,2.889,0.093,0.301,0.455,0.867,0.729,1.002,0.456,0.184,1.367,0.084,1.822-0.08,0.364-0.156,0.821-0.976,1.185-1.121,0.364-0.146,1.185,0.136,1.55,0,0.455-0.156,1.093-0.773,1.277-1.167,0.362-0.591,0.18-1.978,0.18-2.644,0-0.482,0-1.476-0.091-1.96-0.089-0.453-0.639-1.266-0.729-1.721,0-0.327-0.092-1.047,0.09-1.32,0.275-0.349,1.094-0.656,1.549-0.685,0.365-0.017,1.096,0.248,1.367,0.447,0.639,0.366,1.551,1.431,1.915,2.041,0.363,0.592,0.728,1.959,0.728,2.642-0.091,0.792-0.638,2.326-0.911,3.045-0.272,0.664-1.002,2.022-1.55,2.478-0.546,0.392-1.821,0.53-2.368,0.84-0.364,0.227-1.002,0.819-1.275,1.166-0.455,0.602-0.82,2.086-1.184,2.724-0.273,0.355-0.822,1.012-1.094,1.32-0.365,0.419-1.275,1.094-1.551,1.561-0.273,0.398-0.818,1.329-0.729,1.767,0.184,0.383,1.094,0.711,1.549,0.721,0.64,0.017,1.914-0.646,2.461-1.039,0.547-0.429,1.275-1.722,1.822-2.171,0.638-0.49,2.187-1.01,2.825-1.475,0.729-0.502,1.913-1.731,2.46-2.369,0.547-0.583,1.366-1.948,1.914-2.479,0.637-0.574,2.005-1.613,2.824-1.841,0.458-0.137,1.549-0.192,2.004,0.036,0.184,0.118,0.549,0.583,0.549,0.838,0,0.558-0.912,1.458-1.367,1.77-0.365,0.234-1.276,0.28-1.641,0.437-0.547,0.201-1.55,0.666-2.006,1.002-0.363,0.338-1.092,1.168-1.365,1.642-0.274,0.481-0.64,1.548-0.549,2.085,0,0.354,0.274,1.131,0.639,1.275,0.364,0.165,1.095-0.19,1.459-0.355,0.456-0.21,1.002-1.065,1.458-1.203,0.637-0.2,2.005-0.08,2.643,0.239,0.364,0.218,0.818,1.001,0.91,1.403,0.273,0.528,0.364,1.686,0.364,2.242-0.091,0.509-0.636,1.428-0.819,1.922-0.091,0.337-0.274,1.01-0.274,1.367,0,0.399,0.091,1.256,0.364,1.557,0.185,0.293,1.095,0.492,1.459,0.52,0.364,0.038,1.096-0.045,1.459-0.236,0.273-0.183,0.455-0.938,0.728-1.121,0.365-0.21,1.186-0.373,1.549-0.282,0.367,0.091,0.912,0.603,1.186,0.92,0.183,0.355,0.272,1.221,0.272,1.649,0,0.465-0.455,1.331-0.455,1.796,0,0.446,0.092,1.422,0.455,1.723,0.184,0.217,0.912,0.173,1.276,0.197,0.638,0.064,2.098-0.052,2.826,0.037,1.002,0.138,3.098,0.521,4.011,1.003,0.816,0.475,2.275,1.942,2.914,2.689,0.638,0.656,1.548,2.15,2.096,2.878,0.273,0.476,0.911,1.424,1.186,1.889,0.818,1.191,2.732,3.397,3.28,4.729,0.454,0.929,0.819,2.952,0.819,3.964-0.092,0.801-0.457,2.432-0.819,3.114-0.365,0.558-1.368,1.47-2.006,1.722-0.456,0.202-1.549,0.021-2.004,0.202-0.547,0.229-1.459,1.039-1.914,1.486-0.363,0.483-1.003,1.611-1.276,2.205-0.272,0.666-0.819,2.079-0.729,2.798,0.091,0.746,0.638,2.186,1.185,2.723,0.273,0.338,1.095,0.857,1.549,0.851,0.456-0.012,1.275-0.477,1.548-0.851,0.185-0.444-0.18-1.529-0.09-2.04,0-0.556,0.09-1.693,0.274-2.197,0.183-0.38,0.728-1.084,1.092-1.245,0.274-0.093,0.821-0.102,1.003,0.042,0.366,0.293,0.366,1.34,0.455,1.807,0.185,0.708,0.275,2.204,0.548,2.879,0.365,0.629,1.093,1.958,1.73,2.203,0.638,0.248,2.097-0.427,2.825-0.598,0.546-0.138,1.552-0.648,2.096-0.603,0.82,0.053,2.097,0.773,2.733,1.201,0.82,0.567,1.824,2.415,2.643,2.882,0.637,0.309,1.915,0.317,2.554,0.436,0.543,0.11,1.638,0.229,2.096,0.447,0.728,0.318,2.004,1.411,2.64,1.84,0.638,0.402,1.823,1.257,2.554,1.486,0.638,0.18,1.913,0.301,2.46,0.2,0.455-0.074,1.187-0.374,1.458-0.648,0.182-0.199,0.546-0.745,0.546-1.038,0-0.383-0.637-1.001-0.817-1.32-0.274-0.401-0.824-1.231-1.187-1.568-0.456-0.401-1.548-0.92-2.005-1.238-0.548-0.311-1.549-0.901-2.006-1.276-1.184-0.947-3.189-3.207-4.191-4.292-0.729-0.82-2.368-2.433-3.097-3.325-1.822-2.206-5.013-6.953-6.562-9.332-1.185-1.769-3.372-5.439-4.558-7.209-1.273-1.966-4.099-5.786-5.557-7.688-0.73-1.05-2.369-3.108-3.19-4.165-0.455-0.602-1.185-1.648-1.822-2.508l2.096-1.166c0.183,0.35,0.365,0.648,0.548,0.913,0.911,1.365,3.099,3.79,4.099,5.048,0.821,1.048,2.643,3.07,3.466,4.165,0.819,1.121,2.276,3.5,3.005,4.684,1.094,1.876,3.281,5.74,4.465,7.572,1.095,1.612,3.554,4.702,4.739,6.204,1.185,1.386,3.646,4.047,4.828,5.367,1.094,1.178,3.282,3.49,4.375,4.648,0.638,0.654,1.914,1.94,2.46,2.644,0.365,0.436,0.912,1.512,1.367,1.839,0.456,0.356,1.641,0.646,2.277,0.721,0.913,0.119,2.644,0.08,3.555-0.156,0.729-0.208,2.097-1.12,2.825-1.52,0.819-0.493,2.461-1.688,3.279-2.087,0.639-0.283,2.097-0.575,2.733-0.758,0.64-0.172,1.824-0.373,2.462-0.647,0.729-0.337,2.005-1.257,2.552-1.875,0.365-0.457,0.819-1.56,0.911-2.124,0.092-0.558-0.183-1.687-0.092-2.241,0-0.328,0.092-1.002,0.272-1.284,0.274-0.458,1.184-1.003,1.642-1.359,0.365-0.364,1.185-1.085,1.458-1.531,0.272-0.383,0.546-1.312,0.819-1.713,0.183-0.337,0.638-1.011,0.911-1.248,0.272-0.22,1.003-0.537,1.367-0.521,0.273,0.02,0.821,0.237,0.911,0.447,0.183,0.311,0.092,1.111,0,1.478,0,0.382-0.363,1.109-0.363,1.484,0.273,0.875,1.731,2.142,2.368,2.76,0.729,0.666,2.188,1.85,3.005,2.325,0.729,0.383,2.188,1.011,2.919,1.167,0.546,0.107,1.821,0.172,2.369,0.035,0.453-0.1,1.183-0.574,1.64-0.803,0.546-0.355,1.822-1.021,2.278-1.565,0.455-0.593,0.911-2.097,1.002-2.843,0.182-0.502,0-1.598,0.182-2.08,0.092-0.301,0.457-0.864,0.821-1.002,0.273-0.136,0.909,0.045,1.185,0,0.547-0.072,1.548-0.265,1.913-0.6,0.364-0.283,0.638-1.149,0.729-1.56,0.182-0.546,0.091-1.703,0.271-2.251,0.276-0.646,1.005-1.794,1.277-2.396,0.365-0.548,0.91-1.631,1.183-2.204,0.185-0.492,0.458-1.58,0.73-2.041,0.274-0.438,0.913-1.287,1.276-1.522,0.455-0.2,1.275-0.11,1.731-0.2,0.729-0.166,2.096-0.874,2.823-0.967,0.729-0.091,2.277,0.137,3.099,0.283,0.639,0.135,2.005,0.491,2.553,0.802,0.546,0.29,1.367,1.311,2.005,1.521,0.637,0.235,2.006,0.273,2.645,0.118,0.545-0.118,1.272-0.885,1.821-1.003,0.363-0.091,1.275,0.01,1.639,0.129,0.729,0.182,1.913,0.929,2.552,1.238,0.729,0.337,2.004,1.212,2.734,1.357,0.546,0.101,1.551,0.101,2.004-0.118,0.363-0.185,0.638-1.11,1.003-1.239,0.547-0.173,1.731,0.165,2.188,0.521,0.1,0.31,0.4,1.34,0.5,1.83\",\"name\":\"АР Крим\"}}});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.usa.counties.js",
    "content": "/** Add USA Counties Map Data Points */\njQuery.fn.vectorMap('addMap', 'usa_counties_en', {\"width\":\"989.97772\",\"height\":\"627.07098\",\"paths\":{\"51153\":{\"name\":\"Prince William, VA\",\"path\":\"m 849.44672,261.01737 0.57668,0.003 0.31735,0.6049 0.19286,0.003 -0.0161,0.30123 0.28474,-0.0411 0.33661,-0.0826 0.19138,-0.15519 0.24325,0.14563 0.0358,0.25974 0.34809,0.15435 0.006,0.2166 0.19248,0.36182 0.1925,-0.17759 0.47257,0.40331 -0.0461,0.27884 0.22361,0.18547 0.14063,-0.12572 0.0323,-0.18143 0.62357,0.0364 0.053,0.31649 0.13515,0.004 0.27,-0.23467 1.13099,0.60557 0.41523,0.38773 -0.68478,3.59959 -1.2738,-0.16011 -1.61692,-1.1017 -0.69128,-0.10425 -0.55562,0.98098 -0.77062,-0.86792 -3.7672,-4.814 -0.0571,-0.248 0.0623,-0.49721 -0.03,-0.46029 0.33001,0.23197 0.25617,-1.74327 0.74077,0.37708 0.64846,0.60783 0.71307,0.14632 z m 2.17756,1.68932 0.0492,-0.25359 5.3e-4,-0.17754 -0.19412,-0.19977 -0.23356,-0.002 -0.28469,0.007 -0.16425,0.18853 0.0709,0.0763 -0.0341,0.15335 -0.33937,0.39075 -0.08,0.27143 -0.0789,0.0999 -0.13537,0.0957 0.0693,0.48407 0.41308,0.22627 0.0771,-0.17608 -0.31274,-0.4698 0.13647,-0.13777 0.39038,0.11614 0.23804,0.0653 0.24962,-0.26741 -0.0118,-0.61071 z\"},\"51685\":{\"name\":\"Manassas Park, VA\",\"path\":\"m 850.79744,262.26875 0.0709,0.0766 0.31723,0.0248 0.005,0.17325 0.25994,0.0428 0.174,0.12079 0.0493,-0.25359 5.3e-4,-0.17754 -0.19412,-0.20035 -0.23357,-0.002 -0.28468,0.007 z\"},\"02185\":{\"name\":\"North Slope, AK\",\"path\":\"m 111.74805,462.41314 1.57249,-1.571 1.17669,-0.784 0.39045,0.784 -0.78268,0.393 0.78268,0 3.92945,-1.177 3.53543,-4.324 3.14142,1.573 0,0.788 -1.17848,1.175 0,1.182 1.17848,-0.394 0.78624,-1.963 0.78447,-0.788 1.17847,1.177 0.39223,1.574 1.17848,0.394 0.39045,-0.786 1.96294,-0.396 3.1432,0 0.39045,0.396 -0.78447,1.176 0,0.393 2.35874,0.394 -0.3958,1.176 1.5725,0 1.96294,-1.176 4.31989,-0.394 2.74918,0.786 1.18383,0 1.17313,0.392 0.39758,0.392 1.57071,0 1.96294,-0.392 2.35873,0 2.74919,0.788 0.78446,-0.396 1.57249,-1.176 0.39045,-0.394 0.78625,-0.783 2.75097,0.39 6.28283,1.963 1.96294,6.287 1.17848,3.927 -16.10289,3.928 0.78625,4.318 -3.14142,0.786 -8.24934,1.576 -0.39758,0 -18.45448,1.962 -4.32168,0 0,-0.787 -3.13963,0 0,-0.786 -3.1432,0 -3.14142,0.392 -2.35874,0 0,-0.781 -1.17669,0 0,0.389 -3.53365,0 -0.78624,-0.389 -0.39402,0 0,0.389 -1.56892,0 -0.3958,-0.784 -1.96294,0 0,0.784 -0.78803,0 -5.500153,-0.389 0,1.566 -2.749186,0 -2.355171,-1.177 -1.178477,-1.572 0.784463,-2.354 0.394014,-2.752 2.749186,0.395 3.537213,-0.395 1.174912,-0.391 2.356949,-2.751 1.18205,-3.534 2.35517,-3.533 1.57249,-1.574 1.17669,0.397 1.5725,-0.788 2.35695,-2.751\"},\"02188\":{\"name\":\"Northwest Arctic, AK\",\"path\":\"m 132.55771,496.97814 -0.78268,0 -1.57071,0.784 0.39401,0.786 -2.35517,0 0,2.355 -1.57249,0.395 0,-0.785 -0.78446,-0.783 -1.57071,0 0,1.568 -1.57249,0 0,-1.568 -3.13964,0 0,3.534 -3.92766,0 0,1.569 -2.35517,0 0,3.928 -0.78624,0 0,0.788 -0.78625,0 -13.747711,-0.394 0,-1.573 -0.395797,0 -0.390448,-0.392 0,-1.177 -0.786246,-0.394 0,-3.141 -0.395797,-3.93 1.572491,0 0.786246,0.393 -0.786246,2.749 0.395797,1.574 7.069081,0.781 1.96472,-1.961 1.18026,0 -0.3958,-0.786 -1.17669,-0.785 -1.17669,-0.783 -1.57784,-1.968 -0.7809,-0.39 -0.39223,-1.179 0.39223,-0.394 0.7809,0 1.18204,2.749 1.57249,1.571 0.78625,-0.389 -0.78625,-0.394 -1.17669,-1.574 0.78446,-2.355 0.39223,0.392 0,-0.392 -1.17669,-0.785 -1.96473,0.391 -1.57427,0 -2.750969,-1.177 -1.174912,-4.32 -3.931228,-4.323 2.749186,0 0,-1.566 5.500153,0.389 0.78803,0 0,-0.784 1.96294,0 0.3958,0.784 1.56892,0 0,-0.389 0.39402,0 0.78624,0.389 3.53365,0 0,-0.389 1.17669,0 0,0.781 2.35874,0 3.14142,-0.392 3.1432,0 0,0.786 3.13963,0 0,0.787 3.1432,0 0,1.963 0.78446,0 0,0.786 1.56893,1.572 0,2.354 1.57071,0 0.78268,0.786 0.39579,2.357 -0.39579,1.571\"},\"02198\":{\"name\":\"Prince of Wales-Hyder Census Area, AK\",\"path\":\"m 236.25391,561 -0.39063,0.78516 1.17969,0.78515 0.39258,0.39258 0.78125,0.39258 0.39648,0.39258 1.17774,2.35742 0.7871,-0.39063 0,-0.39453 -1.43554,-2.57812 1.13476,-1.05664 -1.27343,-0.68555 -2.75,0 z m 1.96289,2.35547 -1.17383,0 -1.17969,-0.78516 -0.78711,0.39258 -0.39062,1.18164 0.78711,1.17578 1.96289,1.17774 0.78125,0.78515 -0.78125,0 0,1.18164 0.78125,1.96289 0.78711,0.39063 -0.39063,-1.96484 0.7832,0.78906 0,-2.35938 -0.7832,0 -0.39648,-1.17773 0,-0.78516 0.78711,-0.39062 -0.78711,-1.57422 z m 18.85351,-1.96094 -0.38867,0.78516 0.0488,1.48828 1.52344,0.86914 0,-2.35742 -1.1836,-0.78516 z m -14.92578,4.71094 -1.95898,0.78515 0,0.39258 0.78515,1.96485 -0.39258,1.17968 0.39258,0.39063 0.78516,-0.39063 0.38867,-1.17968 1.18359,1.57031 -0.39648,0.39453 -0.78711,0 -0.38867,0.39258 1.96484,0.78515 1.17774,0 1.17773,1.17774 -1.57031,1.57226 0.39258,0.78516 4.71289,3.14258 1.17969,0 -0.78711,-1.96289 -0.78321,-0.39453 -0.78906,0.78711 -1.96289,-2.75 3.53516,1.17773 2.35547,1.96289 1.17968,-0.39062 0,-1.18164 -1.96484,-3.53516 -1.57031,-0.7832 -2.35743,-2.75 -5.50195,-3.14258 z m -6.67187,3.14258 0.39062,0.7832 0,-0.7832 -0.39062,0 z m 5.10546,1.57031 -0.39257,0.39453 0.39257,0.39258 0,-0.78711 z m -1.96484,0.78711 -0.39648,0.39258 0.78711,0.39257 0.39257,-0.78515 -0.7832,0 z m 14.92578,0 0.39258,1.57226 0.39258,0.78516 1.17969,-0.78516 -0.39258,-1.17968 -1.57227,-0.39258 z m -9.42773,1.17578 -1.57422,0.78711 0,1.17969 1.57422,0.39257 0.78711,-1.96289 -0.78711,-0.39648 z\"},\"02130\":{\"name\":\"Ketchikan Gateway, AK\",\"path\":\"m 256.28906,573.17773 -0.78515,1.17579 1.17773,0 0,-0.78516 z m 0.39258,-10.99804 -1.17773,0 -2.35743,-1.17969 -1.57226,0.39453 1.17969,0.78516 -0.39453,0.7832 -1.17579,1.57422 -1.17968,0.7832 -0.39258,0.78516 0,1.57226 0.39258,0.39258 0,1.57227 -1.17774,-0.39453 -0.39453,0 1.17969,1.17968 1.17969,0 0,-2.75 -0.78711,-0.39453 0.78711,-0.39258 1.17773,2.35743 -0.39453,0.7832 0,0.78711 0.43555,0.125 0.34961,1.05469 1.17968,1.17968 -0.39258,-1.57226 -0.88281,-0.58985 2.06055,0.58985 1.57031,-0.39258 0.39453,-1.18164 -0.78515,-2.35352 -3.14453,-2.74804 2.75195,1.96093 1.57031,2.75196 -0.39258,1.57031 1.96485,2.75 0.78125,0.39063 1.17773,-0.39063 0.78516,-2.75 0,-3.14258 -2.74414,-3.5332 -1.52277,-0.86855 z\"},\"02275\":{\"name\":\"Wrangell City and Borough, AK\",\"path\":\"m 245.10547,559.56641 -0.30078,1.55468 -0.85742,0.34766 0.95117,0.31641 0.78515,2.75195 -0.78515,1.56836 0,0.78515 1.17773,0.78711 1.96485,0.39258 0.39062,-0.78711 -0.39062,-0.78515 0.39062,-1.56836 0.78906,3.14062 -0.39453,1.17774 1.17774,0.39453 0,-1.57227 -0.39258,-0.39258 0,-1.57226 0.39258,-0.78516 1.17968,-0.7832 1.17579,-1.57422 0.39453,-0.7832 -1.17969,-0.78516 -3.14258,-0.78711 -0.78516,0.39258 -1.17773,-1.17773 -1.36328,-0.25586 z m -0.99414,4.57812 -1.17969,0.78516 0,1.17578 1.17969,0 0.78711,-0.39063 -0.78711,-1.57031 z\"},\"02195\":{\"name\":\"Petersburg Census Area, AK\",\"path\":\"m 239.21094,554.00391 -3.40821,0.33789 -0.33007,0.76758 0,0.78515 1.31445,2.38086 0.1875,1.40039 0.85351,0.14649 1.17579,0 1.96679,-0.39454 0.38868,0.78516 1.17773,0.78711 1.41016,0.46875 0.85742,-0.34766 0.30078,-1.55468 -0.16016,-1.33789 -1.61719,0.0234 0,-1.17968 -1.18359,-1.17774 -1.55273,-1.26172 -0.75196,0.23828 -0.59179,-0.15625 -0.0371,-0.71093 z m 0.97461,6.20898 -1.18164,0.78711 1.27343,0.68555 -1.13476,1.05664 1.43554,2.57812 1.17774,0 0.38867,-0.7832 -0.38867,-0.78906 -1.57031,-0.78516 0,-0.7832 1.95898,1.17578 0,0.78906 1.18359,0 1.17774,-1.57422 -4.32031,-2.35742 z\"},\"02220\":{\"name\":\"Sitka, AK\",\"path\":\"m 226.04248,557.46314 1.96294,0.788 1.57251,-0.788 1.17668,1.965 0,0.394 -1.17668,0.39 -2.75098,-1.176 -0.394,0.392 1.18024,1.572 -0.39401,1.179 -0.78623,0 -3.53365,-3.143 1.57071,-0.391 0,-1.572 1.57247,0.39 m 9.82007,12.569 0,0.396 -0.78625,-0.396 -1.96474,-1.962 0,-1.179 -0.78444,0.786 -0.39403,-0.786 -1.17848,-0.394 -0.78446,-2.353 -0.78803,-0.788 0,-0.785 -0.78447,0.391 -1.17847,-0.783 0.78624,-2.357 1.57251,0.786 1.57071,-0.396 0.39221,0.788 -0.78624,0.394 0.78624,0 2.75277,4.32 1.56893,3.534 -0.39045,0 0.39045,0.784 m -9.0356,-7.461 0.39223,-0.392 1.57071,1.569 0,1.182 -0.78447,0.39 -1.17847,-2.749\"},\"02100\":{\"name\":\"Haines, AK\",\"path\":\"m 224.86224,547.25314 -0.39223,0.392 -1.17848,-1.963 -1.17671,-0.786 0,0.394 1.96472,3.141 1.56893,2.357 1.96472,3.142 -1.57071,0 -1.18024,-1.177 -0.39223,-0.392 0.78623,-0.787 -0.78623,-0.786 -1.96296,-0.394 0.39225,-1.963 -1.57071,-1.178 -3.53543,0 0,-3.143 1.57071,-1.963 3.14318,2.358 1.17671,-0.395 0.39578,0.395 1.56893,0 0.78448,0.785 0.394,-0.394 0.78624,1.178 0.39223,0 -3.14318,1.179\"},\"02110\":{\"name\":\"Juneau, AK\",\"path\":\"m 235.0763,553.93014 0,0.786 -0.78268,0 -2.75277,-2.355 -1.96292,0.781 -3.14498,-1.96 -1.96294,-3.537 0.39223,-0.392 3.14318,-1.179 0.78447,0.785 1.18026,0.394 3.92768,1.572 0,0.785 1.96472,1.178 -0.78625,2.748 0,0.394 m -5.10615,0.394 -0.78803,0 -0.39223,-1.182 0.39223,0.394 0.39581,-0.394 1.96292,-0.389 -1.17847,0.783 -0.39223,0.394 0,0.394\"},\"02230\":{\"name\":\"Skagway Municipality, AK\",\"path\":\"m 222.50705,544.50514 -3.14318,-2.358 0.78801,-1.177 1.56894,0.39 1.17848,0.787 0.78446,1.963 -1.17671,0.395\"},\"02105\":{\"name\":\"Hoonah-Angoon Census Area, AK\",\"path\":\"m 217.79297,547.25391 0,0.78515 -1.17774,0.39258 -2.35546,3.53516 -1.57032,1.57031 3.92578,1.57227 1.17774,0.39257 0.78711,0 1.57226,0.78516 2.35547,-2.35742 -1.57226,-2.35547 -2.35547,-0.78516 -1.57227,0 0,-0.39453 3.53516,0.78711 0.39258,0 0,-0.78711 1.17968,1.17969 0.78321,2.35547 1.96289,-1.17578 -0.39063,-0.39258 0.78516,-0.78711 -0.78516,-0.78516 -1.96289,-0.39453 0.39063,-1.96289 -1.57032,-1.17773 -3.53515,0 z m 9.42578,4.71289 0,0.39453 1.57031,1.96289 1.57422,3.13867 1.96289,1.57422 0,2.35742 1.17774,1.56836 1.18164,-1.96289 0,-1.17773 0.78711,-1.17774 -0.39649,-0.78711 -2.75,-2.74804 0.39258,-0.39258 1.17969,1.57031 0.78711,0 -3.14453,-3.14453 0,-0.38867 -1.17774,0.7832 -0.39258,0.39258 0,0.39453 -0.78906,0 -0.39258,-1.18164 -1.17578,-1.17578 -0.39453,0 z m -3.13867,2.35742 -0.78906,0.78516 -1.57032,0.39257 -0.39258,1.96094 0.39258,1.18164 1.17774,0.39258 1.57226,-0.39258 0,-1.57226 1.57227,0.39062 1.96289,0.39453 0.7832,-0.39453 0.39258,-0.39062 -0.39258,-1.17774 -0.39062,-0.78515 -4.31836,-0.78516 m 16.5114,0.30795 -4.7282,-3.84311 -0.78711,2.74805 0,0.39258 0.39649,1.17969 0.32932,-0.76835 3.40988,-0.33781 0.036,0.71194 0.59229,0.15561 z\"},\"02282\":{\"name\":\"Yakutat, AK\",\"path\":\"m 195.40565,544.50514 1.96115,0 0.39582,-0.788 2.35695,0.393 0.78625,-1.568 2.35517,-0.788 0.39401,2.356 0.78447,0.395 1.96472,0.391 0.78446,1.178 5.89239,3.142 1.17847,2.751 -1.5707,1.569 0,-0.783 -1.18026,-0.786 -8.63801,-1.965 -0.39401,-0.392 0,-0.785 0.78446,0 0,-0.786 -1.1767,-1.965 -0.39401,1.179 -1.57071,1.572 -3.53899,0.391 -2.35341,-1.177 -5.10436,0.392 -5.49837,1.963 1.96653,-5.104 5.10255,-1.573 0.78446,0 0,0.788 2.74919,-0.788 0.78626,0 0.39222,0.788\"},\"02016\":{\"name\":\"Aleutians West, AK\",\"path\":\"m 62.259146,580.24714 -0.784463,0.786 -0.394014,-0.396 0,-0.39 1.178477,0 m 1.964723,6.284 0.392231,0 -0.392231,0.392 -0.786246,-0.786 0.786246,0.394 m 13.348347,25.137 1.572491,1.571 -0.394014,0.786 -3.141417,2.355 -1.178477,0.394 -1.176694,0 -3.1432,1.178 -1.178477,-0.786 4.321677,-1.572 0.390448,-3.142 0.394015,-0.392 2.355171,-0.392 0,0.784 0.394014,0.394 0.394014,-0.394 0.390449,-0.784 m -13.742362,6.284 2.358737,-1.572 0.386883,-0.786 0.786246,-0.392 1.178477,-0.391 1.178477,0.391 -0.786246,1.572 -1.570708,0.392 -1.961157,1.963 -2.356954,1.18 -1.176694,0.393 1.962939,-1.965 0,-0.785 m -56.5651136,0 0.39758,0.393 -0.39758,0.392 -0.3922314,-0.392 0.3922314,-0.393 m 3.9312286,0.393 0.784462,0 0.786246,1.572 -1.176694,0.785 -0.786246,-0.393 -0.394014,-1.964 0.786246,0 m 47.529529,0 0,0.784 -0.394014,-0.392 0.394014,-0.392 m -1.964723,0.784 0.388666,0 -0.388666,0.394 -0.39758,-0.394 0.39758,0 m -24.355786,1.18 -0.392231,-0.392 1.572491,-0.788 0.78268,1.18 -1.176694,1.571 -2.356954,0 -4.319894,-0.788 3.927662,0.396 1.96294,-0.786 0.394014,-0.393 -0.394014,0 m -10.212279,-0.786 0.784463,0 0,0.786 -0.390449,0.393 -0.786245,-0.393 0,-0.786 0.392231,0 m -5.892385,0 0.786246,0.394 -1.178477,1.571 -0.784463,0 -1.178477,-0.786 1.96294,-0.393 0.392231,-0.786 m 42.031159,0 0.394014,0.394 -0.394014,0.392 -1.570709,-0.392 0.388666,-0.394 1.182043,0 m -38.493945,1.569 1.176694,0.396 -0.392231,0.784 -3.927663,0.391 1.964723,-2.746 1.178477,0 0,0.392 -0.394014,0 -0.394014,0.783 0.788028,0 m 36.133425,-0.783 0.392231,0 0,0.393 -0.392231,0 0,-0.393 z m -2.749186,0 0.395798,0.393 -0.395798,0.786 -1.174911,0 0,-0.786 1.174911,-0.393 m -29.066128,0.783 0.394014,0.396 -0.394014,0 0,-0.396 m -2.747403,0.396 1.178477,0 0.390449,0.392 -1.176694,0.392 -0.786246,-0.392 0.394014,-0.392 m -16.1028806,0 0,0.392 -0.39758,0.392 0.39758,-0.784 m 44.3809806,0 0.394015,0.392 -0.394015,0.392 -0.392231,-0.392 0.392231,-0.392 m -6.676848,0 0.394015,0.392 0,0.392 -1.572492,0 0.394015,-0.392 0.784462,-0.392 m -7.070862,0.784 0.788029,0.391 2.749185,0.788 -3.143199,0 -1.568926,-0.394 -1.178477,-1.177 1.178477,0.392 1.174911,0 m -31.4212991,-0.392 0,0.783 -0.3940143,0 0.3940143,-0.783\"},\"02013\":{\"name\":\"Aleutians East, AK\",\"path\":\"m 113.71099,597.92414 0,0.782 -0.39045,-0.782 0,-0.788 -0.78624,-0.394 -0.39402,0.786 -0.78446,0 -0.3958,0.786 -1.96294,1.573 -3.53186,1.176 -1.57784,-0.392 0.78981,-1.965 -1.1767,0 -1.96829,4.713 -1.568921,0.786 -1.182042,-0.392 0,-1.963 -0.780898,-0.394 -0.395797,0.784 0.395797,0.786 0.390449,1.573 -1.572491,0.392 -0.786246,-1.965 -1.178477,0.393 0.788029,1.572 0,2.355 -1.178477,-0.392 -1.572492,0.392 -2.749185,0 -0.786246,0.396 -1.176694,1.177 -1.964723,0 -0.392231,-1.177 0,-0.788 1.178477,-0.394 0.784463,-1.177 4.319894,-1.964 1.178477,0 0.394014,1.964 0.786246,0 0,-2.357 2.355171,-0.786 3.540783,-3.926 2.35517,-1.965 2.35517,-0.786 1.18026,0.392 1.17848,0.394 -0.39402,0 0,0.787 0.39402,0.788 0.78624,-0.396 0.39223,-0.786 0,-1.179 1.1767,-2.749 2.35695,-1.961 4.71213,-3.145 0.39401,0.396 0,0.388 -0.78446,0.788 -1.17848,0 0,0.787 -1.57249,0 0,0.786 -1.57071,0 0,1.567 0.39402,0 0,3.143 -0.39402,0.786 1.57071,0 0,1.575 m -3.53365,2.351 0.78268,0 0,0.788 -0.78268,0 -0.39401,-0.392 0.39401,-0.396 m -1.18026,1.181 0.78625,0 0,0.784 -0.78625,1.179 -1.56892,-0.393 -0.39402,-1.57 0.39402,-0.393 0.78624,0 0.78268,0.393 m 3.1432,0.394 0.39402,1.569 -1.96473,2.356 0,-2.356 0.39045,-0.393 0.78803,0.393 0.39223,-1.569 m 1.96472,0.39 0,1.965 -0.78446,0 0.78446,-1.965 m -10.99852,1.179 0.39401,0.394 -0.78624,0 -0.78803,-0.787 0.39223,-0.392 0.78803,0.785 m 11.7812,0.394 0.3958,0.786 -0.78625,0.392 0,-1.178 0.39045,0 m -14.924401,0.786 0,0.784 -0.390448,0.392 -0.791594,-0.784 1.182042,-0.392 m 15.320201,0.392 0.39223,0.392 -0.39223,0.392 0,-0.784 m -18.465183,3.928 1.182042,0.39 0,0.396 -1.182042,0 -0.390449,-0.396 0.390449,-0.39 m -14.532173,0.786 0.392231,0 0,0.784 -0.784462,0.787 -0.394015,-1.179 0.394015,-0.392 0.392231,0 m -1.176694,1.178 -0.394014,0.785 -1.178477,0 -0.392232,-0.785 0.786246,-0.786 1.178477,0.786 m 3.925879,0.393 0.394015,0 0,0.392 -1.570709,0 1.176694,-0.392 m -1.570708,0.392 0.394014,0.392 -1.18026,-0.392 0.786246,0\"},\"02150\":{\"name\":\"Kodiak Island, AK\",\"path\":\"m 128.63539,582.60014 0.78268,-1.175 1.18026,-0.788 0.39045,-0.39 0.39402,0.39 0.39223,-0.39 0.78268,-1.179 1.57249,-1.18 -0.39223,-3.14 1.57249,-0.786 1.96472,-0.785 1.1767,-0.786 0,-1.963 1.18026,0 1.17491,-0.396 -0.39223,-0.784 1.96293,0 -0.39223,-1.178 0.78981,0 -0.39758,1.178 -0.78446,0.784 -0.78624,0.396 -0.78447,1.177 -0.39044,2.749 -0.78803,1.179 -1.17848,0.784 -0.78625,-0.392 -1.17847,0.392 -0.78447,0.788 -0.78624,1.963 -0.78268,0 -1.18026,1.569 -0.78446,0.396 -0.39402,-0.396 0,0.788 -2.35339,1.571 0,0.39 0.78268,-0.39 0,1.572 -1.95759,0 0,-0.788 0.78268,-0.394 0.39223,-0.786 m 16.88556,-7.067 -0.39223,0.392 -1.96294,-0.785 1.56893,-2.358 1.57606,-2.75 1.17312,-0.39 -0.38688,1.571 0,0.784 1.57071,-0.392 0.78446,0.392 0.38867,1.18 -0.38867,0.785 -3.14141,1.178 -1.18205,-0.786 -0.39401,0.394 0.78624,0.785 m -4.7139,4.714 0.39401,1.178 0.78446,0.392 -0.78446,-0.784 -0.39401,-3.145 0.78624,-0.783 2.35696,-0.394 0.78446,-0.394 1.18382,0 -0.39758,1.18 0.39758,0.391 1.56536,-1.571 0.78803,-0.392 -0.39045,1.572 0.78625,1.179 0.78446,0 -0.78446,1.571 -1.97007,1.964 -1.96294,2.357 -0.39223,0.392 -0.39223,-0.786 0.39223,-0.788 -0.39223,0 -1.17492,2.751 -1.18204,1.18 -1.17847,0.391 -0.78268,-1.177 -1.18026,-1.963 -0.39402,-1.182 -0.78268,-0.786 0.39045,-1.963 1.17848,-1.177 1.96294,-0.392 0,1.179 m -0.39223,8.641 1.5707,0.392 -0.39223,0.391 -1.57071,0 -0.39044,-0.391 0.78268,-0.392 m -1.57071,0 0.78803,0.392 -1.96651,1.573 0,-0.786 1.17848,-1.179 m -5.10614,6.675 0.78624,0.392 0,1.573 -1.57071,-0.392 0,-0.787 0.78447,-0.786\"},\"02060\":{\"name\":\"Bristol Bay, AK\",\"path\":\"m 125.88621,568.85414 3.1432,0 0,2.359 -4.32168,0.392 0.78625,-1.177 0.39223,-1.574\"},\"02070\":{\"name\":\"Dillingham, AK\",\"path\":\"m 125.10175,568.85414 0,0.394 -4.71213,2.357 -0.78625,-0.392 -1.5707,-2.359 -0.39402,0.394 -0.39223,1.571 0.78625,1.963 -1.18026,0.786 -0.78268,0 -2.35874,-4.32 -0.78625,-0.394 -0.39044,1.178 -0.39402,0 -1.96294,-1.567 0.39223,-0.395 -0.39223,-0.393 -3.1432,1.965 0,-1.572 0.78446,0 0.78803,-2.356 0.78447,-0.784 0.39223,-2.359 0.78624,-1.571 1.17848,0 0,-1.572 1.17669,-2.355 0.78625,-1.571 0.78624,0 1.96473,-4.714 4.71212,0 0,0.786 0.78625,0 0.78268,-0.786 0,-1.178 1.57249,0 0,0.784 5.10257,0 0,0.788 0.3958,2.748 0.39045,7.464 -0.78625,0 0,1.177 -1.56714,0 -0.78624,0.785 -0.39402,1.574 -1.17669,0 -1.17848,0.784 0.78625,3.14 m -19.63653,1.574 0,-0.786 1.17669,0 -1.17669,0.786\"},\"02164\":{\"name\":\"Lake and Peninsula, AK\",\"path\":\"m 128.63539,582.60014 -0.39223,0.786 -0.78268,0.394 0,0.788 1.95759,0 -4.31632,3.14 -0.78625,-0.391 -0.39223,1.571 -2.35517,0.783 0,0.396 0.39223,0 0.39223,0.786 -2.35695,0 -0.78447,1.178 1.56893,1.569 -1.56893,1.963 -5.10614,1.179 0,1.182 -0.39401,0.782 0,-2.357 -1.57071,0 0.39402,-0.786 0,-3.143 -0.39402,0 0,-1.567 1.57071,0 0,-0.786 1.57249,0 0,-0.787 1.17848,0 0.78446,-0.788 0,-0.388 1.17848,0 -0.39223,-1.573 0.78446,-1.571 3.92588,-3.927 0.78803,-7.465 1.17669,-1.963 4.32168,-0.392 0,-2.359 -3.1432,0 -0.39223,-0.389 -0.39223,0.783 0,-0.394 -0.78625,-3.14 1.17848,-0.784 1.17669,0 0.39402,-1.574 0.78624,-0.785 1.56714,0 0,-1.177 0.78625,0 -0.39045,-7.464 -0.3958,-2.748 0,-0.788 6.28284,-0.392 2.35695,-0.392 2.35696,0 0.78624,3.926 -0.78624,0 0.39223,3.143 -0.78447,0 0.39224,0.784 0,2.359 -0.39224,0 0,0.786 -0.78446,0 0,0.786 -0.39401,0.785 -0.39223,0.392 -0.78625,0.785 -0.39045,1.574 -1.18026,0 0,1.567 0.39223,0.394 0,0.786 0.39223,2.751 1.5725,0 0,1.963 -1.1767,0.786 -1.96472,0.785 -1.57249,0.786 0.39223,3.14 -1.57249,1.18 -0.78268,1.179 -0.39223,0.39 -0.39402,-0.39 -0.39045,0.39 -1.18026,0.788 -0.78268,1.175 m -2.74918,7.467 0.78446,0.39 -1.56892,0 0.39223,-0.39 0.39223,0\"},\"02122\":{\"name\":\"Kenai Peninsula, AK\",\"path\":\"m 137.27518,564.93014 0.39045,-1.574 0.78625,-0.785 0.39223,-0.392 0.39401,-0.785 0,-0.786 0.78446,0 0,-0.786 0.39224,0 0,-2.359 -0.39224,-0.784 0.78447,0 -0.39223,-3.143 0.78624,0 -0.78624,-3.926 0,-0.394 -0.39224,-3.534 0,-0.786 0.39224,0 1.5707,-0.391 1.57071,0 0.78625,-0.395 4.71925,-0.393 0,1.573 1.1767,0 0.78803,0.392 -0.78803,0.786 -1.96651,1.571 -1.57427,2.749 -1.56893,4.322 0,1.963 -1.96294,3.139 -1.96472,1.182 -1.17848,1.568 -1.17847,0.786 -0.39223,2.357 0.39223,0.786 0.39401,-0.394 1.56893,-0.392 1.96828,1.572 0,0.393 -0.78981,0 0.39223,1.178 -1.96293,0 0.39223,0.784 -1.17491,0.396 -2.75276,0 -0.39223,-2.751 0,-0.786 -0.39223,-0.394 0,-1.567 1.18026,0 m 11.39254,-2.359 2.74384,-1.963 0.79159,-1.572 -0.79159,0 -1.17313,1.176 -0.78625,-0.39 -0.78446,-0.786 0.39401,-2.357 0.77912,-1.963 0.39758,-1.574 0,-1.568 -0.78625,-1.572 1.57428,-0.786 2.35339,-2.357 0.78802,0.786 1.1767,0 1.17669,-0.786 1.17848,0.394 1.57249,0 0.39223,0.392 1.18026,0.786 0.78268,0 0,0.394 0.39402,1.569 0,0.394 0.39223,0.394 0.39401,3.534 0,0.394 -3.1432,0.392 -1.56892,0.785 0,2.358 -2.75097,2.355 -0.39223,-0.392 -0.78447,0.786 -0.78802,1.962 -3.539,1.18 -1.17313,-0.788 0,-1.177\"},\"02020\":{\"name\":\"Anchorage, AK\",\"path\":\"m 156.52126,546.85914 -1.96294,-1.569 0.39402,-0.394 0,-0.391 0.39223,0 0.78624,-1.572 0.39045,-0.391 0.3958,0 0.39045,-0.395 0.39223,0 0.3958,0.395 3.14141,-0.788 0,1.179 0.39045,1.177 0,1.18 0.39402,0.392 0,1.571 -1.1767,0 0,0.786 0.39223,0.392 -0.39223,0 -1.18026,-0.786 -0.39223,-0.392 -1.57249,0 -1.17848,-0.394\"},\"02261\":{\"name\":\"Valdez-Cordova, AK\",\"path\":\"m 162.02142,546.46814 0,-0.786 -0.39402,-0.392 0,-1.18 -0.39045,-1.177 0,-1.179 3.13964,-0.394 2.35873,-0.39 -0.39401,-0.396 0.39401,0 0.78268,-0.39 -0.78268,-4.32 0,-0.394 -0.78624,-1.965 1.96472,-0.392 0.39045,-0.391 -0.39045,-1.18 0,-0.392 -1.17848,-5.106 -0.39401,-1.179 1.57249,-0.786 1.17669,-0.394 0.39224,0 0.78446,-0.39 1.18026,0 1.17848,0.39 0.39223,0 6.67864,-1.569 0.78446,1.179 0.39223,1.963 0,1.178 1.17848,0 0.39399,-1.178 1.56895,0 1.9647,1.178 0.78448,2.751 0.78801,0.392 0,0.392 0.39224,1.571 3.14141,-1.18 3.92768,13.355 -0.78626,0 -2.74919,0.788 0,-0.788 -0.78446,0 -5.10255,1.573 -1.96653,5.104 -5.1079,-1.569 0,-1.18 -1.57072,0.786 0.78625,0.785 -3.1432,-1.177 -3.53365,3.143 -0.78803,-1.18 0.3958,-1.177 0.78446,0 1.57071,-0.786 0.78624,-0.786 0,-0.785 -1.96472,0.785 -1.57249,0 -0.39045,-0.394 1.57071,-1.177 0.39223,-0.392 -1.57249,0.784 -0.39045,-0.784 -0.39401,0.392 0,-1.965 -2.35517,1.179 -0.39224,1.178 -2.74918,1.179 -0.3958,0 0.3958,-2.357 -0.78625,0.394 -0.39223,1.963 1.17848,0.392 1.17848,2.749 -0.39402,1.573 1.57071,1.569 -0.78625,1.18 -2.7474,0.394 0,-0.394 -0.39401,-3.534 -0.39223,-0.394 0,-0.394 -0.39402,-1.569 0,-0.394 -0.39045,0 -0.39223,-0.392 0,-0.786 1.1767,0 0,-0.785 m 5.89238,-0.786 0,0.392 -0.78624,0 0.78624,-0.392 m -1.17848,1.963 0.78268,0.394 -0.78268,0.392 0,-0.786 m -2.35873,0 0.78803,0.394 -0.39402,0.392 -0.39401,-0.392 0,-0.394 m 1.96472,1.18 0,3.928 -1.17669,-0.786 0.39044,-1.965 0.78625,-1.177 m 2.74918,3.142 -0.78624,1.175 -0.39045,2.36 -1.57249,0.785 0,-1.571 1.96294,-3.142 0,-0.786 0.39401,-0.394 1.17848,0.394 -0.78625,1.179\"},\"02170\":{\"name\":\"Matanuska-Susitna, AK\",\"path\":\"m 157.69974,542.14714 -0.39223,0 -0.39045,0.395 -0.3958,0 -0.39045,0.391 -0.78624,1.572 -0.39223,0 0,0.391 -3.1432,0 -0.78268,0.786 -0.78803,-0.392 -1.1767,0 0,-1.573 -4.71925,0.393 -0.78625,0.395 -1.57071,0 0,-0.788 -0.39223,-0.394 0,-3.533 -0.39223,-0.393 0,-2.749 -0.39401,-3.926 4.32167,-0.395 0,-0.785 9.4296,-6.284 5.50016,-0.789 0,-0.39 -0.39402,-0.784 4.32168,-0.787 1.96294,-0.392 0.39223,2.749 0.39401,1.179 1.17848,5.106 0,0.392 0.39045,1.18 -0.39045,0.391 -1.96472,0.392 0.78624,1.965 0,0.394 0.78268,4.32 -0.78268,0.39 -0.39401,0 0.39401,0.396 -2.35873,0.39 -3.13964,0.394 -3.14141,0.788 -0.3958,-0.395\"},\"02240\":{\"name\":\"SE Fairbanks, AK\",\"path\":\"m 169.09049,523.68514 -1.17669,0.394 -1.57249,0.786 -0.39223,-2.749 -1.96294,0.392 -1.57249,-7.071 2.35695,-0.788 0.78446,-1.173 1.18026,-0.788 1.17848,0 4.71213,-3.533 1.5707,0 0,-0.394 0.78625,-1.179 -0.78625,-1.178 0.39224,-0.785 0.39401,-0.786 1.17669,-0.788 0.39402,-2.355 0.39223,0 1.17848,-1.177 1.17848,-0.394 1.17848,-1.571 0,-1.176 0.78623,-1.179 9.81826,34.169 -3.14141,1.18 -0.39224,-1.571 0,-0.392 -0.78801,-0.392 -0.78448,-2.751 -1.9647,-1.178 -1.56895,0 -0.39399,1.178 -1.17848,0 0,-1.178 -0.39223,-1.963 -0.78446,-1.179 -6.67864,1.569 -0.39223,0 -1.17848,-0.39 -1.18026,0 -0.78446,0.39 -0.39224,0\"},\"02090\":{\"name\":\"Fairbanks North Stark, AK\",\"path\":\"m 155.7368,513.47614 0,-0.392 -1.17848,-5.108 0.39402,0 3.92766,-0.786 0.39223,-0.786 1.57249,0 0.78268,-0.785 0.78625,-1.178 0.78624,-0.396 0.78625,0.396 0,0.788 0.78446,0.784 0.39402,0 0.78446,1.177 0.39223,0.392 4.32168,-1.569 1.96294,-0.394 -0.39224,0.785 0.39224,2.751 -4.71213,3.533 -1.17848,0 -1.18026,0.788 -0.78446,1.173 -2.35695,0.788 -2.74919,0.396 -1.17848,-0.396 -0.39044,0 -1.57428,-1.961 -0.78446,0\"},\"02068\":{\"name\":\"Denali, AK\",\"path\":\"m 154.55832,525.25814 -9.4296,6.284 0,0.785 -4.32167,0.395 1.5707,-4.323 0,-1.179 -1.5707,-0.39 -0.39223,-2.361 2.36051,-0.39 0.7809,-1.571 -0.39045,-1.572 1.1767,-1.177 0.78624,0 1.18205,0.392 1.5707,-3.141 5.89061,-0.786 4.7139,-0.787 1.17848,0.396 2.74919,-0.396 1.57249,7.071 -4.32168,0.787 0.39402,0.784 0,0.39 -5.50016,0.789\"},\"02050\":{\"name\":\"Bethel, AK\",\"path\":\"m 140.02258,545.68214 0.39224,3.534 0,0.394 -2.35696,0 -2.35695,0.392 -6.28284,0.392 -5.10257,0 0,-0.784 -1.57249,0 0,1.178 -0.78268,0.786 -0.78625,0 0,-0.786 -4.71212,0 -1.96473,4.714 -0.78624,0 -0.78625,1.571 -1.17669,2.355 0,1.572 -1.17848,0 -0.78624,1.571 -0.39223,2.359 -0.78447,0.784 -0.78803,2.356 -0.78446,0 0,1.572 -1.56892,0 0,1.571 -1.17848,0.392 -2.75454,-0.392 0.78625,-0.394 0.78803,0.394 0.39401,-1.571 -0.39401,-2.359 -0.78803,-1.569 1.56893,-1.966 -0.7809,-2.354 0,-0.394 -1.96472,-3.927 -0.78268,1.572 -2.754538,1.567 -2.750968,0.396 -1.570708,-0.786 -0.392232,-1.177 -1.570708,-2.358 -3.535431,-3.145 2.356954,-1.568 -0.392232,-1.18 -0.786245,0 0,-0.392 0.392231,-0.392 2.358737,0 1.96294,-0.394 1.964723,-3.142 3.931228,-0.784 0.390448,-0.394 1.178481,-0.391 2.35873,0.785 3.53365,-0.785 1.18026,-1.182 1.96294,-1.176 -0.39401,-0.787 5.10435,0 0,-0.786 3.14499,0 0,-0.784 6.28283,-0.393 0,0.787 5.88882,0 1.96294,-0.394 3.53365,0 1.57427,-0.393 0.78268,0 0,-0.786 1.57428,-0.39 0,-0.396 0.39044,-0.39 0.78447,0 0.39401,-0.787 0,2.749 0.39223,0.393 0,3.533 0.39223,0.394 0,0.788 -1.5707,0.391 -0.39224,0 0,0.786 m -85.230093,1.963 0.395797,1.18 0.388666,0.785 1.572491,0.784 0.395797,0.394 -1.574274,0 -0.394014,-0.786 -1.171346,-1.571 0.386883,-0.786 m 28.672114,6.679 1.176694,-0.394 1.964723,1.572 -0.392232,2.355 -0.392231,0.788 -1.96294,0.783 -3.927662,-1.965 -1.18026,-1.176 0,-0.785 0.394014,-0.392 2.355171,0 1.572492,-1.18 0.392231,0.394\"},\"02270\":{\"name\":\"Wade Hampton, AK\",\"path\":\"m 109.78333,541.36014 0.39401,0.787 -1.96294,1.176 -1.18026,1.182 -3.53365,0.785 -2.35873,-0.785 -1.178481,0.391 -0.390448,0.394 -3.931228,0.784 -1.964723,3.142 -1.96294,0.394 -2.358737,0 0,-0.394 0.786246,-0.391 0.394014,-0.786 -1.572491,-0.786 -0.392232,0.786 -1.178477,-0.394 -1.962939,-3.928 0.392231,-2.357 4.319894,-5.496 1.96294,-1.574 -0.390449,-1.177 0.784463,-1.963 1.570708,-1.963 1.572492,-0.394 2.749185,2.357 1.182043,-0.394 1.959369,-1.963 0.78625,0.394 1.56893,2.355 4.71925,0 -0.39223,0 -0.3958,1.18 -0.39044,3.142 0,3.143 0.78624,0 -0.3958,1.177 0,0.786 0.3958,0.39 1.56893,0\"},\"02180\":{\"name\":\"Nome, AK\",\"path\":\"m 112.92474,522.90214 0,1.567 -0.78446,0 0,0.789 -0.78446,0.786 -1.57249,0 -0.78625,0.786 0,2.357 -0.39045,0 0,2.355 -4.71925,0 -1.56893,-2.355 -0.78625,-0.394 1.18205,-1.573 1.17313,0.394 1.57784,0 1.96294,-0.394 1.17847,-2.355 0.39045,-1.18 -1.17848,-3.534 -0.78446,-1.178 0,-1.179 0.78446,0 1.17848,-0.784 0,-1.177 -1.56892,-1.574 -0.78625,1.178 -3.14142,0.787 -1.57427,1.176 -6.284617,-0.39 -3.1432,0.784 -4.319894,-1.57 -0.786246,-0.787 -0.392231,-0.788 0.392231,-1.173 -0.392231,-2.358 0.392231,-0.394 0.392232,-1.175 -3.535431,-1.573 -2.355171,-1.572 0,-1.175 7.069079,-3.931 0.786245,0.786 1.964723,0.394 0,-0.394 -1.178477,-0.786 0,-0.785 5.496588,-1.965 0.395797,3.93 0,3.141 0.786246,0.394 0,1.177 0.390448,0.392 0.395797,0 0,1.573 13.747711,0.394 0.78625,0 0,-0.788 1.5707,0 0,2.357 -0.39401,0 0,3.141 -0.78625,0 0,1.574 -0.78446,0 0,6.283 0.78446,0 0,0.786 m -22.783291,-21.999 -0.392232,0.395 0,-0.395 0.392232,0 m -9.426033,10.607 0.784462,-0.392 0.394015,0.784 -0.784463,0.396 -0.394014,-0.788 m -15.314853,9.426 0.388666,-0.785 0,1.179 2.356954,1.572 1.964722,-1.18 0.784463,0.394 0.786246,0.786 0,1.177 1.962939,1.573 3.1432,0.784 -0.786246,1.571 -1.570708,-0.787 -1.176694,0.787 -1.18026,-0.393 -2.355171,-2.749 -1.572491,-0.786 -0.784463,0 -1.572491,0.786 -1.173129,-0.786 0,-0.784 0.784463,-2.359 m 36.917887,4.716 0,0.784 -1.17669,0 0.39044,-0.784 0.78625,0\"},\"02290\":{\"name\":\"Yukon-Koyukuk, AK\",\"path\":\"m 140.41482,537.43514 -0.39224,0 -0.39044,0.39 0,0.396 -1.57428,0.39 0,0.786 -0.78268,0 -1.57427,0.393 -3.53365,0 -1.96294,0.394 -5.88882,0 0,-0.787 -6.28283,0.393 0,0.784 -3.14499,0 0,0.786 -6.67328,0 -0.3958,-0.39 0,-0.786 0.3958,-1.177 -0.78624,0 0,-3.143 0.39044,-3.142 0.3958,-1.18 0.39223,0 0,-2.355 0.39045,0 0,-2.357 0.78625,-0.786 1.57249,0 0.78446,-0.786 0,-0.789 0.78446,0 0,-2.353 -0.78446,0 0,-6.283 0.78446,0 0,-1.574 0.78625,0 0,-3.141 0.39401,0 0,-2.357 -0.78446,0 0,-3.928 2.35517,0 0,-1.569 3.92766,0 0,-3.534 3.13964,0 0,1.568 1.57249,0 0,-1.568 1.57071,0 0.78446,0.783 0,0.785 1.57249,-0.395 0,-2.355 2.35517,0 -0.39401,-0.786 1.57071,-0.784 0.78268,0 0.39579,-1.571 -0.39579,-2.357 -0.78268,-0.786 -1.57071,0 0,-2.354 -1.56893,-1.572 0,-0.786 -0.78446,0 0,-1.963 1.17848,0 18.45448,-1.962 0.39758,0 8.24934,-1.576 3.14142,-0.786 -0.78625,-4.318 16.10289,-3.928 6.67862,23.174 -0.78623,1.179 0,1.176 -1.17848,1.571 -1.17848,0.394 -1.17848,1.177 -0.39223,0 -0.39402,2.355 -1.17669,0.788 -0.39401,0.786 -0.39224,0.785 0.78625,1.178 -0.78625,1.179 0,0.394 -1.5707,0 -0.39224,-2.751 0.39224,-0.785 -1.96294,0.394 -4.32168,1.569 -0.39223,-0.392 -0.78446,-1.177 -0.39402,0 -0.78446,-0.784 0,-0.788 -0.78625,-0.396 -0.78624,0.396 -0.78625,1.178 -0.78268,0.785 -1.57249,0 -0.39223,0.786 -3.92766,0.786 -0.39402,0 1.17848,5.108 0,0.392 0.78446,0 1.57428,1.961 0.39044,0 -4.7139,0.787 -5.89061,0.786 -1.5707,3.141 -1.18205,-0.392 -0.78624,0 -1.1767,1.177 0.39045,1.572 -0.7809,1.571 -2.36051,0.39 0.39223,2.361 1.5707,0.39 0,1.179 -1.5707,4.323 0.39401,3.926 -0.39401,0.787 -0.39223,0\"},\"01069\":{\"name\":\"Houston, AL\",\"path\":\"m 730.3972,455.30114 6.44329,-0.587 -0.20859,0.61 -0.1355,0.595 0.27278,1.632 0.19968,0.465 0.16937,0.1 0.16938,0 0.14619,0.04 0.92888,1.022 0.14619,0.262 0.21216,0.458 0.57587,1.665 -9.49735,1.156 -0.15333,-1.822 -0.31556,-2.814 -1.9362,0.33 -2.44253,0.257 0.69353,-1.744 0.11054,-0.1 0.4582,-0.152 0.32983,-0.02 0.312,0.02 0.6668,0.159 0.50811,0.137 0.88431,0.08 0.29774,-0.03 -0.10533,-0.92153 1.34977,-0.14547 -0.0802,-0.658\"},\"01067\":{\"name\":\"Henry, AL\",\"path\":\"m 729.63413,448.33314 -0.21751,-2.002 3.88844,-0.337 0.10341,-0.176 0.29774,-0.892 0.51525,-0.651 0.0981,-0.06 0.11053,0 0.32983,0.104 0.18542,0.162 2.13766,5.329 -0.24247,4.901 -6.44329,0.587 -0.76307,-6.968\"},\"01061\":{\"name\":\"Geneva, AL\",\"path\":\"m 723.39765,458.81114 1.57428,-0.144 2.44253,-0.257 1.9362,-0.33 0.31556,2.813 0.15333,1.823 -0.19611,0.03 -10.49933,1.215 -2.98274,0.296 -0.58478,-4.525 7.84106,-0.924\"},\"01045\":{\"name\":\"Dale, AL\",\"path\":\"m 723.19619,449.07314 6.43794,-0.74 0.76307,6.968 0.0802,0.658 -1.34977,0.14547 0.10533,0.92153 -0.29774,0.03 -0.88431,-0.08 -0.50811,-0.137 -0.6668,-0.159 -0.312,-0.02 -0.32983,0.02 -0.4582,0.152 -0.11054,0.1 -0.69353,1.744 -1.57428,0.144 -0.99484,-9.651 0.79338,-0.09\"},\"01031\":{\"name\":\"Coffee, AL\",\"path\":\"m 722.40281,449.16014 0.99484,9.651 -7.84106,0.924 -0.60261,-5.672 -0.22642,-2.059 0.73989,-0.08 0.23177,-0.193 -0.23177,-1.833 6.93536,-0.74\"},\"01039\":{\"name\":\"Covington, AL\",\"path\":\"m 708.81378,452.72114 1.92906,-0.243 0.20274,1.67912 1.75485,-1.91012 0.36193,-0.03 0.082,0.335 0.15333,1.325 0.32983,0.3 1.32645,-0.113 0.60261,5.672 0.58478,4.525 -3.94549,0.401 -5.89951,0.565 -0.65075,-4.493 -0.76842,-7.586 3.93658,-0.426\"},\"01097\":{\"name\":\"Mobile, AL\",\"path\":\"m 680.80846,463.68914 0.16046,0.321 0.42788,1.817 0.58657,3.121 -0.83795,1.548 -0.55447,2.168 -0.0374,0.49 0.33518,0.811 0.42789,0.822 -0.28348,-0.1 -0.0731,0.05 -0.9057,0.963 -0.54734,3.368 -1.7276,3.334 -1.14817,-0.367 -1.60815,-0.03 -0.44036,0.07 -0.2086,0.07 -0.37084,0.392 0,0 -1.0198,-8.363 -0.73811,-5.996 -0.34053,-2.655 2.00038,-0.158 1.97008,-0.617 3.99362,-0.564 0.93958,-0.506\"},\"01003\":{\"name\":\"Baldwin, AL\",\"path\":\"m 684.60954,460.25014 3.02374,0.957 0.83439,5.632 -0.44394,3.078 0.25852,0.438 2.00038,2.181 0.62935,0.433 0.11054,0.04 0.32983,0.06 0.66679,0.344 0.88431,0.547 0.24068,0.394 0.0713,0.273 0.0321,0.378 -0.19968,5.023 -0.26565,2.513 -1.2694,0.573 -2.67609,0.946 -2.80445,0.708 -0.74703,0.12 -2.45857,0.155 -0.0963,-0.129 1.0198,-0.37 2.66718,-1.705 -3.53543,-7.176 -0.25674,-0.36 -0.11945,-0.1 -0.9164,-0.33 -0.27277,-0.09 -0.42789,-0.822 -0.33518,-0.811 0.0374,-0.49 0.55447,-2.168 0.83795,-1.548 -0.58657,-3.121 -0.42788,-1.817 -0.16046,-0.321 0.45998,-0.74 3.3411,-2.699\"},\"01053\":{\"name\":\"Escambia, AL\",\"path\":\"m 705.64562,460.73314 0.65075,4.493 -1.88628,0.142 -7.39356,0.66 -8.54886,0.811 -0.83439,-5.632 1.14639,0.296 0.19433,-0.08 1.09112,-0.77 1.22126,-0.141 12.96147,-1.234 -0.0321,0.152 -0.0214,1.004 0.0214,0.208 0.066,0.09 0.15868,0.136 0.89143,0.02 0.31379,-0.161\"},\"01035\":{\"name\":\"Conecuh, AL\",\"path\":\"m 704.8772,453.14714 0.76842,7.586 -0.31379,0.16 -0.89143,-0.02 -0.15868,-0.135 -0.066,-0.09 -0.0214,-0.208 0.0214,-1.004 0.0321,-0.152 -12.96147,1.234 0.009,-0.132 0.13015,-0.314 2.11983,-3.007 1.18917,-1.334 1.39064,-4.074 0.0571,-0.417 2.00038,-1.808 1.64559,-0.907 0.44394,-0.218 0.11945,-0.02 0.25139,2.749 1.03584,1.951 0.51347,0.387 2.685,-0.225\"},\"01129\":{\"name\":\"Washington, AL\",\"path\":\"m 670.2093,452.19814 7.31333,-0.627 0.0232,0.973 0.34765,1.261 1.00376,0.861 0.26565,0.16 0.8112,0.282 0.72385,0.182 0.76307,0.701 0.55269,2.234 0.025,0.144 -0.0553,0.749 -0.1872,0.706 -0.39223,0.41 -0.34588,0.465 -0.27278,0.925 0.48316,1.325 -0.45998,0.74 -0.93958,0.506 -3.99362,0.564 -1.97008,0.617 -2.00038,0.158 -1.6955,-13.336\"},\"01023\":{\"name\":\"Choctaw, AL\",\"path\":\"m 669.92047,438.10514 9.47595,-0.829 -0.90034,0.128 -0.50099,0.314 -0.26387,0.289 -1.46908,5.48 0.0891,0.845 0.0963,0.232 0.14263,0.159 0.16046,0.09 0.4992,0.06 0.27278,6.7 -7.31333,0.627 -0.46533,-4.507 0.13015,-7.707 0.0464,-1.879\"},\"01025\":{\"name\":\"Clarke, AL\",\"path\":\"m 685.10874,444.17014 3.56752,3.432 -0.30487,0.369 0.30281,2.61922 -1.00348,0.15178 0.28883,3.081 0.25138,2.248 -0.14441,0.699 -0.41184,0.547 -0.23356,0.137 -0.25673,-0.04 -0.41006,-0.315 -0.23891,0.02 -0.21751,0.08 -1.79713,1.526 -0.3334,0.834 0,0.105 0.0499,0.241 0.0713,0.135 0.32092,0.211 -3.3411,2.699 -0.48316,-1.325 0.27278,-0.925 0.34588,-0.465 0.39223,-0.41 0.1872,-0.706 0.0553,-0.749 -0.025,-0.144 -0.55269,-2.234 -0.76307,-0.701 -0.72385,-0.182 -0.8112,-0.282 -0.26565,-0.16 -1.00376,-0.861 -0.34765,-1.261 -0.0232,-0.973 -0.27278,-6.7 7.85889,-0.701\"},\"01099\":{\"name\":\"Monroe, AL\",\"path\":\"m 700.19895,446.50214 0.19255,1.783 -0.11945,0.02 -0.44394,0.218 -1.64559,0.907 -2.00038,1.808 -0.0571,0.417 -1.39064,4.074 -1.18917,1.334 -2.11983,3.007 -0.13015,0.314 -0.009,0.132 -1.22126,0.141 -1.09112,0.77 -0.19433,0.08 -1.14639,-0.296 -3.02374,-0.957 -0.32092,-0.21 -0.0713,-0.136 -0.0499,-0.241 0,-0.105 0.3334,-0.834 1.79713,-1.526 0.21751,-0.08 0.23891,-0.02 0.41006,0.315 0.25673,0.04 0.23356,-0.137 0.41184,-0.547 0.14441,-0.699 -0.25138,-2.248 -0.28883,-3.081 1.00348,-0.15178 -0.30281,-2.61922 0.30487,-0.369 5.20063,-0.529 2.82764,-0.209 3.49442,-0.362\"},\"01131\":{\"name\":\"Wilcox, AL\",\"path\":\"m 688.3393,437.55014 0.5206,-0.139 0.12123,0.07 2.40153,1.68 3.09506,2.852 5.24699,-0.506 0.92303,-0.11706 0.218,1.99806 -0.99696,0.14541 0.33017,2.96558 -3.49442,0.362 -2.82764,0.209 -5.20063,0.529 -3.56752,-3.432 0.80407,-0.403 -0.24247,-2.906 1.92719,-0.2218 -0.23168,-2.7662 0.16224,-0.276 0.17473,-0.06 0.33696,-0.02 0.29952,0.04\"},\"01013\":{\"name\":\"Butler, AL\",\"path\":\"m 700.86574,443.39114 7.92486,-0.836 0.61866,5.659 0.0874,1.421 -0.98771,0.103 0.30487,2.983 -3.93658,0.426 -2.685,0.225 -0.51347,-0.387 -1.03584,-1.951 -0.25139,-2.749 -0.19255,-1.783 -0.33017,-2.96558 0.99696,-0.14541\"},\"01041\":{\"name\":\"Crenshaw, AL\",\"path\":\"m 713.75589,442.00014 0.37075,3.22245 0.91292,-0.13489 0.37374,3.79803 -0.59632,1.08186 0.65047,-0.0674 0.23177,1.833 -0.23177,0.193 -0.73989,0.08 0.22642,2.059 -1.32645,0.113 -0.32983,-0.3 -0.15333,-1.325 -0.082,-0.335 -0.36193,0.03 -1.75485,1.91012 -0.20274,-1.67912 -1.92906,0.243 -0.30487,-2.983 0.98771,-0.103 -0.0874,-1.421 -0.61866,-5.659 0.60974,-2.058 1.98434,-0.224 0.23534,1.986 2.13587,-0.259\"},\"01109\":{\"name\":\"Pike, AL\",\"path\":\"m 717.3145,439.67214 0.79516,-0.332 0.84508,0.07 0.36014,0.129 0.93244,1.76 1.20217,-0.18217 0.25979,2.03917 2.58872,-0.283 -1.10181,6.197 -0.79338,0.09 -6.93536,0.74 -0.65047,0.0674 0.59632,-1.08186 -0.37374,-3.79803 -0.91292,0.13489 -0.37075,-3.22245 3.79871,-0.52452 -0.2401,-1.80348\"},\"01011\":{\"name\":\"Bullock, AL\",\"path\":\"m 727.72825,434.27714 0.6757,1.972 -0.312,0.2 0.16759,2.009 0.12837,0.843 -1.58319,0.53 -1.52436,0.572 -0.8843,1.735 -0.1141,0.556 0.016,0.182 -2.58872,0.283 -0.25979,-2.03917 -1.20217,0.18217 -0.93244,-1.76 -0.36014,-0.129 -0.84508,-0.07 -0.79516,0.332 -0.66652,-5.06378 1.62214,-0.21722 1.18383,0.779 0.15867,0.06 8.11563,-0.95\"},\"01087\":{\"name\":\"Macon, AL\",\"path\":\"m 721.77346,426.55514 0.041,0.323 4.17013,1.51 0.97345,-0.112 0.31378,1.993 0.45642,4.008 -8.11563,0.95 -0.15867,-0.06 -1.18383,-0.779 -2.35517,-3.125 2.46036,-1.953 1.70442,-0.21 -0.17158,-2.28392 1.86531,-0.26408\"},\"01085\":{\"name\":\"Lowndes, AL\",\"path\":\"m 700.8497,434.62514 0.52594,-1.197 0.0606,-0.107 0.85043,-0.151 2.30704,-0.273 2.37834,1.038 2.42827,6.562 -0.60974,2.058 -7.92486,0.836 -0.218,-1.99806 -0.92303,0.11706 1.12499,-6.885\"},\"01101\":{\"name\":\"Montgomery, AL\",\"path\":\"m 708.47682,432.27014 2.64934,-2.404 0.21751,0.03 0.28348,0.1 0.15154,0.102 0.9164,0.989 -0.0892,0.154 1.52614,0.289 1.33537,0.112 0.4475,-0.369 2.35517,3.125 -1.62214,0.21722 0.66652,5.06378 0.2401,1.80348 -3.79871,0.52452 -2.13587,0.259 -0.23534,-1.986 -1.98434,0.225 -2.42827,-6.563 1.50475,-1.665\"},\"01051\":{\"name\":\"Elmore, AL\",\"path\":\"m 715.4104,423.55114 2.37121,-0.24 0.0553,0.02 0.041,0.306 -0.17829,0.674 0.54913,4.75 0.0624,0.184 0.0642,0.07 -2.46036,1.952 -0.4475,0.369 -1.33537,-0.112 -1.52614,-0.289 0.0892,-0.154 -0.9164,-0.989 -0.15154,-0.102 -0.28348,-0.1 -0.21751,-0.03 -2.64934,2.403 -0.73276,-6.821 0.57943,-1.15 7.08691,-0.747\"},\"01001\":{\"name\":\"Autauga, AL\",\"path\":\"m 707.74406,425.44814 0.73276,6.822 -1.50475,1.665 -2.37834,-1.038 -2.30704,0.273 -0.85043,0.151 -0.0606,0.107 -0.52594,1.197 -2.67431,-7.232 1.93442,-0.1 1.9772,-0.224 -0.10876,-1.011 5.76581,-0.612\"},\"01047\":{\"name\":\"Dallas, AL\",\"path\":\"m 696.093,426.08114 0.15862,1.44051 1.92377,-0.12851 2.67431,7.232 -1.12499,6.885 -5.24699,0.506 -3.09506,-2.852 -2.40153,-1.68 -0.12123,-0.07 -0.5206,0.139 -0.10341,-0.982 0.98593,-0.09 -0.39223,-4.012 3.33397,-0.335 2.62616,-0.348 0.15511,-0.328 0.52238,-1.815 0.29596,-1.394 0.32983,-2.161\"},\"01091\":{\"name\":\"Marengo, AL\",\"path\":\"m 681.25239,432.16614 1.59032,-0.137 0.10341,1.005 3.93836,-0.378 0.37852,3.99384 0.97289,-0.0818 0.10341,0.982 -0.29952,-0.04 -0.33696,0.02 -0.17473,0.06 -0.16224,0.276 0.23168,2.7662 -1.92719,0.2218 0.24247,2.906 -0.80407,0.403 -7.85889,0.701 -0.4992,-0.06 -0.16046,-0.09 -0.14263,-0.159 -0.0963,-0.232 -0.0891,-0.845 1.46908,-5.48 0.26387,-0.289 0.50099,-0.314 0.90034,-0.128 -0.84686,-0.708 -1.47622,-0.563 -0.041,-0.136 0.0339,-0.923 0.10341,-0.289 2.14479,-2.179 0.16046,-0.112 0.97166,-0.305 0.80586,0.105\"},\"01119\":{\"name\":\"Sumter, AL\",\"path\":\"m 670.21999,422.28914 3.21987,-0.376 -0.2086,1.959 0.3851,1.68 2.31595,4.862 0.4582,0.563 0.0624,0.02 0.8219,-0.241 0.64005,-0.297 0.14619,-0.145 0.37084,-0.258 0.32805,-0.161 0.16937,0 0.19968,0.121 1.31754,2.042 -0.97166,0.305 -0.16046,0.112 -2.14479,2.179 -0.10341,0.288 -0.0339,0.924 0.041,0.135 1.47622,0.564 0.84686,0.708 -9.47595,0.829 0.13728,-6.246 0.1355,-8.131 0.0267,-1.439\"},\"01105\":{\"name\":\"Perry, AL\",\"path\":\"m 688.05047,423.46414 1.95046,-0.194 0.0963,1.005 1.32824,-0.128 4.41082,-0.537 0.25673,2.471 -0.32983,2.161 -0.29596,1.394 -0.52238,1.815 -0.15511,0.328 -2.62616,0.348 -3.33397,0.335 0.39223,4.012 -0.98593,0.09 -0.97291,0.0857 -0.3785,-3.99769 -0.37619,-3.984 0.96992,-0.12311 -0.20685,-2.86889 0.97794,-0.12737 -0.19883,-2.08863\"},\"01021\":{\"name\":\"Chilton, AL\",\"path\":\"m 705.02696,418.45614 1.10892,3.65648 2.18761,2.18552 -0.57943,1.15 -5.76581,0.612 0.10876,1.011 -1.9772,0.224 -1.93442,0.1 -1.92377,0.12851 -0.15862,-1.44051 -0.25673,-2.471 2.74027,-0.242 -0.32983,-3.391 -0.24247,-1.51 -0.0553,-0.509 3.08436,-0.235 2.10736,-0.11 0.32804,0.442 0.61866,0.385 0.93957,0.02\"},\"01037\":{\"name\":\"Coosa, AL\",\"path\":\"m 711.37576,416.09693 3.13976,-0.3628 0.89488,7.81701 -7.08691,0.747 -2.18761,-2.18552 -1.10892,-3.65648 0.30487,-1.945 6.04393,-0.41421\"},\"01123\":{\"name\":\"Tallapoosa, AL\",\"path\":\"m 721.29922,414.75314 1.15173,-0.137 0.95562,8.687 -1.9594,0.25458 0.32629,2.99742 -1.86531,0.26408 0.17158,2.28392 -1.70442,0.211 -0.0642,-0.07 -0.0624,-0.184 -0.54913,-4.75 0.17829,-0.674 -0.041,-0.306 -0.0553,-0.02 -2.37121,0.24 -0.89488,-7.81701 6.7837,-0.98099\"},\"01027\":{\"name\":\"Clay, AL\",\"path\":\"m 716.56035,406.16314 -0.62757,0.579 0.0143,0.168 1.99503,-0.209 0.29061,-0.363 -0.0339,-0.344 2.32129,-0.195 0.77912,8.954 -6.7837,0.98099 -3.13976,0.3707 -0.18377,-2.33969 1.67462,-0.20833 -0.10734,-2.26767 2.06695,-0.20406 -0.0826,-2.00694 0.74875,-0.32771 0.0553,-2.47729 1.01267,-0.11\"},\"01121\":{\"name\":\"Talladega, AL\",\"path\":\"m 710.54851,402.61014 1.80961,-0.09 0.54378,0.601 0.17829,0.861 0.54734,0.451 3.80108,-0.378 0.0463,0.674 -0.91461,1.432 -1.01267,0.11 -0.0553,2.47729 -0.74875,0.32771 0.0826,2.00694 -2.06695,0.20406 0.10737,2.26859 -1.67459,0.20925 0.18371,2.33785 -6.04393,0.40631 -0.0802,-1.469 2.17867,-3.206 0.17829,-1.391 -0.26743,-0.385 -0.52951,-0.379 2.03425,-2.498 0.79338,-1.712 -0.0874,-0.112 -0.19255,-0.426 -0.009,-0.12 0.88431,-2.027 0.31378,-0.176\"},\"01117\":{\"name\":\"Shelby, AL\",\"path\":\"m 703.83066,406.38814 2.98096,3.293 0.52951,0.379 0.26743,0.385 -0.17829,1.391 -2.17867,3.206 0.0802,1.469 -0.30487,1.945 -0.93957,-0.02 -0.61866,-0.385 -0.32804,-0.442 -2.10736,0.11 -3.08436,0.235 0.0553,0.509 -1.67552,-0.6542 -0.59683,-1.92903 -0.85043,-0.18068 -0.0828,-1.48909 0.90035,-0.315 0.55447,-0.303 0.39401,-0.291 0.71672,-1.253 3.6531,-3.543 1.32824,-0.146 1.52613,-1.476 -0.041,-0.499\"},\"01007\":{\"name\":\"Bibb, AL\",\"path\":\"m 694.05162,414.27914 0.74702,-0.07 0.0828,1.48909 0.85043,0.18068 0.59683,1.92903 1.67552,0.6542 0.24247,1.51 0.32983,3.391 -2.74027,0.242 -4.41082,0.537 -1.32824,0.128 -0.0963,-1.005 -1.95046,0.194 -0.28347,-2.965 1.9772,-0.242 -0.0553,-2.033 0.48138,-0.948 1.50835,-0.16609 -0.0607,-1.44091 0.81833,-0.909 0.16046,-0.1 1.25336,-0.369 0.20147,-0.02\"},\"01065\":{\"name\":\"Hale, AL\",\"path\":\"m 682.14383,420.92314 5.62317,-0.424 0.28347,2.965 0.19883,2.08863 -0.97794,0.12737 0.20685,2.86889 -0.96992,0.12311 0.37619,3.984 -3.93836,0.378 -0.10341,-1.005 -1.59032,0.137 1.02159,-2.154 -0.95027,-1.134 -0.75416,-2.242 -0.34944,-1.751 -0.0303,-0.49 1.95403,-3.472\"},\"01063\":{\"name\":\"Greene, AL\",\"path\":\"m 679.52301,417.75014 0.28074,3.35164 2.34008,-0.17864 -1.95403,3.472 0.0303,0.49 0.34944,1.751 0.75416,2.242 0.95027,1.134 -1.02159,2.154 -0.80586,-0.105 -1.31754,-2.041 -0.19968,-0.122 -0.16937,0 -0.32805,0.161 -0.37084,0.258 -0.14619,0.145 -0.64005,0.297 -0.8219,0.241 -0.0624,-0.02 -0.4582,-0.563 -2.31595,-4.862 -0.3851,-1.68 0.2086,-1.959 -0.0232,-0.103 1.65628,-1.118 1.45304,-0.811 0.64362,-0.227 2.35339,-1.904\"},\"01107\":{\"name\":\"Pickens, AL\",\"path\":\"m 678.72785,409.21514 0.79516,8.535 -2.35339,1.904 -0.64362,0.226 -1.45304,0.812 -1.65628,1.117 0.0232,0.104 -3.21987,0.376 0.1355,-6.896 0.10519,-5.704 6.25787,-0.288 2.0093,-0.186\"},\"01125\":{\"name\":\"Tuscaloosa, AL\",\"path\":\"m 686.49225,406.73314 0.34231,-0.02 1.68124,0.177 0.16046,1.679 0.98058,-0.06 -0.66679,0.589 0.33696,1.116 1.28723,1.405 0.76842,0.666 1.76147,1.054 0.90749,0.933 -0.20147,0.02 -1.25336,0.369 -0.16046,0.1 -0.81833,0.909 0.0607,1.44091 -1.50835,0.16609 -0.48138,0.948 0.0553,2.033 -1.9772,0.242 -5.62317,0.424 -2.34008,0.17864 -0.28074,-3.35164 -0.79516,-8.535 1.90589,-0.06 1.4049,-0.16 -0.0981,-1.181 0.64988,-0.047 -0.0615,-0.86002 3.96332,-0.177\"},\"01073\":{\"name\":\"Jefferson, AL\",\"path\":\"m 694.94483,401.00314 1.25158,-0.772 2.37121,-0.167 2.16084,1.26 1.43878,0.139 0.66679,-0.06 0.43502,0.972 0.14442,1.501 -0.12124,0.513 -0.16046,0.02 -0.12836,0.344 0.11945,1.336 0.18542,0.167 0.52238,0.138 0.041,0.499 -1.52613,1.476 -1.32824,0.146 -3.6531,3.543 -0.71672,1.253 -0.39401,0.291 -0.55447,0.303 -0.90035,0.315 -0.74702,0.07 -0.90749,-0.933 -1.76147,-1.054 -0.76842,-0.666 -1.28723,-1.405 -0.33696,-1.116 0.66679,-0.589 0.42611,-0.24 0.54555,-0.402 2.08953,-2.305 0.40293,-0.709 0.34409,-0.697 1.21414,-2.468 0.26564,-0.692\"},\"01127\":{\"name\":\"Walker, AL\",\"path\":\"m 690.82997,397.25914 0.65899,2.24885 3.17418,0.52415 0.28169,0.971 -0.26564,0.692 -1.21414,2.468 -0.34409,0.697 -0.40293,0.709 -2.08953,2.306 -0.54555,0.401 -0.42611,0.24 -0.98058,0.06 -0.16046,-1.679 -1.68124,-0.177 -0.34231,0.02 -0.18542,-2.002 -1.98612,0.113 -0.42254,-4.031 -1.9879,0.07 -0.082,-0.997 -0.18364,-2.002 9.18535,-0.626\"},\"01075\":{\"name\":\"Lamar, AL\",\"path\":\"m 670.74772,397.51614 4.17192,-0.209 0.057,0.69861 0.66681,-0.0636 0.32092,3.753 0.57052,5.584 0.18363,2.122 -6.25787,0.288 0.10162,-4.894 0.18542,-7.279\"},\"01057\":{\"name\":\"Fayette, AL\",\"path\":\"m 675.84316,400.29714 5.9851,-0.41 0.082,0.997 1.9879,-0.07 0.42254,4.031 1.98612,-0.113 0.18542,2.002 -3.96332,0.177 0.0615,0.86002 -0.64988,0.047 0.0981,1.181 -1.4049,0.16 -1.90589,0.06 -2.0093,0.186 -0.18363,-2.122 -0.57052,-5.584 -0.12124,-1.398\"},\"01059\":{\"name\":\"Franklin, AL\",\"path\":\"m 671.02228,385.35214 11.47456,-0.651 0.53842,6.049 -1.98612,0.119 -1.58853,0.07 -4.163,0.291 -4.41261,0.18 0.0731,-3.298 0.0642,-2.756\"},\"01093\":{\"name\":\"Marion, AL\",\"path\":\"m 670.885,391.40614 4.41261,-0.18 4.163,-0.291 1.58853,-0.07 0.59548,7.016 0.18364,2.002 -5.9851,0.41 -0.19968,-2.355 -0.66681,0.0636 -0.057,-0.69861 -4.17192,0.209 0.0178,-0.658 0.11945,-5.452\"},\"01133\":{\"name\":\"Winston, AL\",\"path\":\"m 683.03526,390.75014 7.90703,-0.603 -0.11232,7.112 -9.18535,0.626 -0.59548,-7.016 1.98612,-0.119\"},\"01043\":{\"name\":\"Cullman, AL\",\"path\":\"m 690.91198,389.81014 9.94663,-0.747 2.53168,0.803 -0.5937,0.04 -0.55804,0.187 -0.0784,0.06 -1.06081,2.659 -0.10341,0.178 -2.52454,3.231 -1.70264,1.501 -1.39955,1.385 -0.70602,0.931 -3.17418,-0.52415 -0.65899,-2.24885 0.11232,-7.112 -0.0303,-0.337\"},\"01009\":{\"name\":\"Blount, AL\",\"path\":\"m 703.39029,389.86614 3.18064,3.4 -0.29774,0.65 -0.58478,3.135 0.84329,-0.09 -0.67749,1.77 -0.4885,0.633 -0.5313,0.572 -0.15154,0 -0.16937,-0.1 -2.42649,0.779 0.0802,0.845 -1.43878,-0.139 -2.16084,-1.26 -2.37121,0.167 -1.25158,0.772 -0.28169,-0.971 0.70602,-0.931 1.39955,-1.385 1.70264,-1.501 2.52454,-3.231 0.10341,-0.178 1.06081,-2.659 0.0784,-0.06 0.55804,-0.187 0.5937,-0.04\"},\"01115\":{\"name\":\"St. Clair, AL\",\"path\":\"m 706.5317,396.96014 -0.016,-0.08 0.11945,-0.249 0.42611,-0.699 0.25851,-0.193 1.48692,-0.144 0.18363,0.103 0.14263,0.25 0.41898,0.973 0.4992,0.475 0.24069,0.151 0.39401,-0.159 0.99484,1.316 0.23534,0.216 0.0642,0.146 0.025,1.471 -1.44948,1.309 -0.0713,0.235 0.0642,0.528 -0.31378,0.176 -0.88431,2.027 0.009,0.12 0.19255,0.426 0.0874,0.112 -0.79338,1.712 -2.03425,2.498 -2.98096,-3.293 -0.52238,-0.138 -0.18542,-0.167 -0.11945,-1.336 0.12836,-0.344 0.16046,-0.02 0.12124,-0.513 -0.14442,-1.501 -0.43502,-0.972 -0.66679,0.06 -0.0802,-0.845 2.42649,-0.779 0.16937,0.1 0.15154,0 0.5313,-0.572 0.4885,-0.633 0.67749,-1.77\"},\"01015\":{\"name\":\"Calhoun, AL\",\"path\":\"m 717.53201,395.14514 4.00076,0.185 -0.003,1.69821 -1.84403,0.0298 0.24069,2.362 0.30487,2.871 -0.27278,0.522 -1.50118,1.815 -0.98236,0.103 -0.0463,-0.674 -3.80108,0.378 -0.54734,-0.451 -0.17829,-0.861 -0.54378,-0.601 -1.80961,0.09 -0.0642,-0.528 0.0713,-0.235 1.44948,-1.309 -0.025,-1.471 -0.0642,-0.146 -0.23534,-0.216 0.30666,-0.03 0.49742,-0.28 0.46711,-0.363 1.04476,-1.077 0.56161,-0.906 0.32091,-0.201 1.13391,-0.113 1.55823,0.168 -0.0392,-0.763\"},\"01055\":{\"name\":\"Etowah, AL\",\"path\":\"m 710.05109,390.54314 4.9332,-0.508 0.26565,2.049 0.83616,0.07 1.42987,2.513 0.016,0.482 0.0392,0.763 -1.55823,-0.168 -1.13391,0.113 -0.32091,0.201 -0.56161,0.906 -1.04476,1.077 -0.46711,0.363 -0.49742,0.28 -0.30666,0.03 -0.99484,-1.315 -0.39401,0.158 -0.24069,-0.151 -0.4992,-0.475 -0.41898,-0.973 -0.14263,-0.25 -0.18363,-0.103 -1.48692,0.144 -0.25851,0.193 -0.42611,0.699 -0.11945,0.249 0.016,0.08 -0.84329,0.09 0.58478,-3.134 0.29774,-0.651 3.48016,-2.723\"},\"01095\":{\"name\":\"Marshall, AL\",\"path\":\"m 704.95565,381.79114 3.34288,-0.33 0.23177,1.327 1.76148,1.324 -0.24069,6.431 -3.48016,2.723 -3.18064,-3.4 -2.53168,-0.803 0.0392,-5.61 0.41184,0.957 0.65075,0.401 0.62578,0.107 0.65075,-0.217 1.8631,-0.951 0.26565,-0.682 0.14619,-0.876 -0.10697,-0.297 -0.24782,-0.12 -0.20146,0.02\"},\"01103\":{\"name\":\"Morgan, AL\",\"path\":\"m 696.39074,383.78414 4.5071,-0.331 -0.0392,5.61 -9.94663,0.747 -0.71671,-8.575 6.19547,2.549\"},\"01079\":{\"name\":\"Lawrence, AL\",\"path\":\"m 683.94274,379.16314 3.18956,0.665 3.06297,1.407 0.71671,8.575 0.0303,0.337 -7.90703,0.603 -0.53842,-6.049 1.33272,-2.0576 0.11318,-3.4804\"},\"01033\":{\"name\":\"Colbert, AL\",\"path\":\"m 671.21483,378.12614 0.71494,-0.336 0.32269,-0.08 1.30863,0.439 0.41719,0.308 0.28348,0.383 0.12837,0.241 0.15154,0.515 0.22464,0.339 1.48691,1.166 0.15155,0.09 0.56339,0.169 0.85221,-0.153 0.49029,-0.275 0.0963,-0.103 0.32092,-0.555 2.17688,-1.292 0.73989,-0.314 0.40293,-0.09 0.14441,0.02 1.75078,0.57 -0.11318,3.4804 -1.33272,2.0576 -11.47456,0.651 0.19255,-7.226\"},\"01077\":{\"name\":\"Lauderdale, AL\",\"path\":\"m 687.3195,374.22314 0.23177,-0.02 -0.41897,5.623 -3.18956,-0.665 -1.75078,-0.57 -0.14441,-0.02 -0.40293,0.09 -0.73989,0.314 -2.17688,1.292 -0.32092,0.555 -0.0963,0.103 -0.49029,0.275 -0.85221,0.153 -0.56339,-0.169 -0.15155,-0.09 -1.48691,-1.166 -0.22464,-0.339 -0.15154,-0.515 -0.12837,-0.241 -0.28348,-0.383 -0.41719,-0.308 -1.30863,-0.439 -0.32269,0.08 -0.71494,0.335 -2.10735,-2.225 3.99541,-0.577 7.07087,-0.548 7.14574,-0.552\"},\"01083\":{\"name\":\"Limestone, AL\",\"path\":\"m 694.54369,373.71514 0.97701,-0.09 0.87004,10.164 -6.19547,-2.549 -3.06297,-1.407 0.41897,-5.623 6.99242,-0.49\"},\"01089\":{\"name\":\"Madison, AL\",\"path\":\"m 704.32808,372.75914 0.39579,1.034 -0.49207,2.589 -0.17472,2.355 0.21751,2.364 0.68106,0.69 0.20146,-0.02 0.24782,0.12 0.10697,0.297 -0.14619,0.876 -0.26565,0.683 -1.8631,0.95 -0.65075,0.217 -0.62578,-0.107 -0.65075,-0.401 -0.41184,-0.957 -4.5071,0.331 -0.87004,-10.164 8.66653,-0.854 0.14085,0\"},\"01071\":{\"name\":\"Jackson, AL\",\"path\":\"m 717.49101,371.51314 0.72384,2.811 -1.17134,2.58 -2.02,3.256 -3.21451,3.407 -0.52951,0.353 -0.42611,0.169 -0.5616,0.02 -1.76148,-1.324 -0.23177,-1.327 -3.34288,0.33 -0.68106,-0.69 -0.21751,-2.364 0.17472,-2.355 0.49207,-2.589 -0.39579,-1.034 8.33491,-0.811 4.82802,-0.435\"},\"01049\":{\"name\":\"DeKalb, AL\",\"path\":\"m 718.21485,374.32414 1.51187,5.344 0.22465,0.79 0.40827,1.454 -0.11232,-0.04 -0.0695,0.05 -0.89322,1.036 -0.11232,1.334 -0.58656,1.262 -2.44432,2.983 -0.65074,0.08 -0.45464,0.432 -0.13015,0.251 0.0784,0.738 -4.9332,0.508 0.24069,-6.431 0.5616,-0.02 0.42611,-0.169 0.52951,-0.353 3.21451,-3.407 2.02,-3.256 1.17134,-2.58\"},\"01019\":{\"name\":\"Cherokee, AL\",\"path\":\"m 720.35964,381.91214 1.57606,5.351 1.28545,4.644 0.73098,2.628 -2.41936,0.795 -4.00076,-0.185 -0.016,-0.482 -1.42987,-2.513 -0.83616,-0.07 -0.26565,-2.049 -0.0784,-0.738 0.13015,-0.251 0.45464,-0.432 0.65074,-0.08 2.44432,-2.983 0.58656,-1.262 0.11232,-1.334 0.89322,-1.036 0.0695,-0.05 0.11232,0.04\"},\"01029\":{\"name\":\"Cleburne, AL\",\"path\":\"m 723.95213,394.53514 0.39401,1.405 1.55823,5.611 1.07685,3.831 -6.46112,0.417 -2.32129,0.195 0.0339,0.344 -0.29061,0.363 -1.99503,0.209 -0.0143,-0.168 0.62757,-0.579 0.91461,-1.432 0.98236,-0.103 1.50118,-1.815 0.27278,-0.522 -0.30487,-2.871 -0.24069,-2.362 1.84403,-0.0298 0.003,-1.69821 2.41936,-0.795\"},\"01111\":{\"name\":\"Randolph, AL\",\"path\":\"m 720.5201,405.79914 6.46112,-0.417 0.34588,1.239 1.8631,6.725 0.13728,0.482 -6.87653,0.788 -1.15173,0.137 -0.77912,-8.954\"},\"01017\":{\"name\":\"Chambers, AL\",\"path\":\"m 729.32748,413.82814 1.54396,5.343 1.2284,2.735 -2.12874,0.28 -0.6668,0.408 -5.89773,0.709 -0.95562,-8.687 6.87653,-0.788\"},\"01081\":{\"name\":\"Lee, AL\",\"path\":\"m 723.40657,423.30314 5.89773,-0.709 0.6668,-0.408 2.12874,-0.28 1.38886,3.059 1.84349,2.05 -1.16474,0.28176 0.27198,1.00012 -3.56085,0.62312 -1.72192,0.35408 0.10664,0.74592 -1.99147,0.249 -0.31378,-1.993 -0.97345,0.112 -4.17013,-1.51 -0.041,-0.323 -0.32629,-2.99742 1.9594,-0.25458\"},\"01113\":{\"name\":\"Russell, AL\",\"path\":\"m 735.86705,430.18914 -0.21573,0.82 0.041,0.194 0.12123,0.136 1.27654,0.344 0.47424,0.396 0.19255,0.383 -0.16046,0.724 -0.0464,0.07 -2.08953,4.127 -2.49423,0.323 -0.13372,-0.06 -0.79694,-0.838 -0.0731,-0.209 -0.61865,-0.722 -2.93996,0.371 -0.6757,-1.972 -0.45642,-4.008 1.99147,-0.249 -0.10664,-0.74592 1.72192,-0.35408 3.56085,-0.62312 -0.27198,-1.00012 1.16474,-0.28176 0.53486,3.174\"},\"01005\":{\"name\":\"Barbour, AL\",\"path\":\"m 735.46055,437.37914 0.0535,1.719 -0.90748,4.937 0.33874,0.449 -0.18542,-0.162 -0.32983,-0.104 -0.11053,0 -0.0981,0.06 -0.51525,0.651 -0.29774,0.892 -0.10341,0.176 -3.88844,0.337 0.21751,2.002 -6.43794,0.74 1.10181,-6.197 -0.016,-0.182 0.1141,-0.556 0.8843,-1.735 1.52436,-0.572 1.58319,-0.53 -0.12837,-0.843 -0.16759,-2.009 0.312,-0.2 2.93996,-0.371 0.61865,0.722 0.0731,0.209 0.79694,0.838 0.13372,0.06 2.49423,-0.323\"},\"05017\":{\"name\":\"Chicot, AR\",\"path\":\"m 614.22718,412.76114 0.26386,0.73 0.025,0.01 0.97345,0.663 0.79516,0.537 0.15155,0.536 -0.23178,0.459 -0.98949,0.288 0.96453,2.758 0.65075,1.181 0.4992,0.529 0.0553,1.747 0,0.02 -0.60261,2.501 -0.016,0.02 -0.56161,0.634 -0.15511,0.177 -1.89519,0.07 -3.2787,0.134 -0.47424,0.03 -0.36014,-8.83 -0.12123,-4.033 1.9772,-0.1 0.10519,0.692 0.5206,0.319 1.40668,-0.04 0.29774,-1.036\"},\"05003\":{\"name\":\"Ashley, AR\",\"path\":\"m 599.85903,417.19414 10.18197,-0.239 0.36014,8.83 -11.67601,0.474 -1.46196,-3.521 0.44929,-1.155 0.70958,-0.925 0.84151,-0.681 0.37975,-0.106 0.55269,-0.467 0.25674,-1.775 -0.5937,-0.435\"},\"05115\":{\"name\":\"Pope, AR\",\"path\":\"m 582.40652,364.07114 0.0481,3.101 -0.65253,0.934 0.041,2 0.073,6.29395 -0.66896,0.0594 -2.36943,0.255 0.31403,1.19628 -0.71382,-0.0759 -2.83101,-3.4634 -1.65553,-0.6564 -0.39045,-0.218 -0.0428,-3.302 0.33875,0 1.00376,-1.059 0.95561,-1.955 -0.0303,-3.037 3.95263,-0.02 2.62795,-0.04\"},\"05101\":{\"name\":\"Newton, AR\",\"path\":\"m 579.60919,355.06414 0.16938,9.05 -3.95263,0.02 -6.5984,-0.617 -0.16046,-1.392 0.009,-1.341 0.40828,-1.012 0.57051,-1.004 -0.312,-3.641 3.30901,0 6.55739,-0.06\"},\"05087\":{\"name\":\"Madison, AR\",\"path\":\"m 563.44926,351.07814 2.90965,0.01 0.49742,0.569 0.2496,0.908 0,0.868 0.16224,0.33 0.50633,0.706 0.64897,0.659 1.31932,0 0.312,3.641 -0.57051,1.004 -0.40828,1.012 -0.009,1.341 0.16046,1.392 -3.27869,-0.04 -3.96867,0.298 -0.96454,0 0,-1.679 0.17651,-5.98 0.96275,-3.352 0.0754,-1.65019 1.21894,-0.0358\"},\"05047\":{\"name\":\"Franklin, AR\",\"path\":\"m 561.98018,363.77514 3.96867,-0.298 -0.0392,9.113 -1.59645,-0.6213 0.0202,1.76194 -2.22186,0.0639 0.11038,1.92293 -1.37644,-0.0392 -0.78718,0.77669 -0.72536,-0.007 -0.2463,-5.3295 0.28882,-0.153 0.34588,-1.108 0.25852,-1.317 -0.94339,-0.58029 -0.15514,-2.31442 0.71674,-0.0323 2.3822,-1.165 0.33696,-0.335 0.007,-0.339 -0.34409,0\"},\"05071\":{\"name\":\"Johnson, AR\",\"path\":\"m 565.94885,363.47714 3.27869,0.04 6.5984,0.617 0.0303,3.037 -0.95561,1.955 -1.00376,1.059 -0.33875,0 0.0428,3.302 -2.03568,0.0217 -0.23332,-2.34275 -1.07388,0.40309 -0.78981,0.312 -1.4156,0.451 -2.14301,0.248 0.0392,-9.113\"},\"05083\":{\"name\":\"Logan, AR\",\"path\":\"m 565.90962,372.59014 2.14301,-0.248 1.4156,-0.451 0.78981,-0.312 1.07388,-0.40309 0.23332,2.34275 2.03568,-0.0217 0.39045,0.218 0.16988,2.01309 -3.36476,0.23559 -1.55988,1.45225 -3.14816,0.52907 0.0227,2.24697 0.0945,0.619 -3.94549,0.02 -2.97383,-0.02 -1.26762,-0.651 0,-1.022 0.007,-1.012 2.01821,0.02 0.0143,-1.694 0.78718,-0.77669 1.37644,0.0392 -0.11038,-1.92293 2.22186,-0.0639 -0.0202,-1.76195 1.59645,0.6213\"},\"05149\":{\"name\":\"Yell, AR\",\"path\":\"m 573.99137,373.71514 1.65553,0.6564 2.83101,3.4634 0.71382,0.0759 -0.31403,-1.19628 2.36943,-0.255 -2.65774,2.6856 -1.51187,1.4 -1.38886,1.341 -0.63648,0.709 -0.95562,1.309 0.0731,2.403 -1.97542,0.747 -5.93874,0.104 -0.0499,-6.347 -0.0945,-0.619 -0.0227,-2.24697 3.14816,-0.52907 1.55988,-1.45225 3.36476,-0.23559 -0.16988,-2.01309\"},\"05105\":{\"name\":\"Perry, AR\",\"path\":\"m 578.58939,379.14514 6.01897,-0.08 1.56536,-0.151 0.29774,-0.06 0.24069,-0.09 0.93422,-0.772 0.0874,0.09 0.17651,0.472 0.025,0.216 -0.0713,0.564 -0.082,0.201 -0.14441,0.207 -0.2086,0.219 -0.29595,0.25 -0.13015,0.16 -0.082,0.273 0.0713,0.28 0.21751,0.362 0.19611,0.169 0.22286,0.129 0.33697,0.103 -0.55983,0.387 -1.37637,0.346 -1.94333,0.378 0.0143,1.333 0.29061,0 -0.18542,0.412 -1.50296,-0.396 -2.64221,0 -1.9362,0.08 0.0392,1.993 -3.99363,0.09 -0.0731,-2.403 0.95562,-1.309 0.63648,-0.71 1.38886,-1.34 1.51187,-1.4\"},\"05029\":{\"name\":\"Conway, AR\",\"path\":\"m 581.84313,370.10614 6.91219,-0.07 0.0392,2.016 -1.14817,5.946 -0.93422,0.772 -0.24069,0.09 -0.29774,0.06 -1.56536,0.151 -6.01897,0.08 2.65774,-2.6856 0.66896,-0.0595 -0.073,-6.29395\"},\"05045\":{\"name\":\"Faulkner, AR\",\"path\":\"m 595.67998,371.91614 0.13015,6.853 0.0214,1.252 -1.99325,0.03 -0.58478,2.018 -3.80999,0.04 -1.478,-0.419 -0.33697,-0.103 -0.22286,-0.129 -0.19611,-0.169 -0.21751,-0.362 -0.0713,-0.28 0.082,-0.273 0.13015,-0.16 0.29595,-0.25 0.2086,-0.219 0.14441,-0.207 0.082,-0.201 0.0713,-0.564 -0.025,-0.215 -0.17651,-0.473 -0.0874,-0.09 1.14817,-5.946 4.25928,-0.06 2.62616,-0.08\"},\"05141\":{\"name\":\"Van Buren, AR\",\"path\":\"m 589.63071,362.27914 0.0553,1.70264 3.27692,-0.0546 0.0909,8.069 -4.25928,0.06 -0.0392,-2.016 -6.91219,0.07 -0.041,-2 0.65253,-0.934 -0.0481,-3.101 3.31079,-0.02 -0.0321,-1.678 3.94549,-0.1\"},\"05129\":{\"name\":\"Searcy, AR\",\"path\":\"m 579.60919,355.06414 0.99663,0 0.97983,-0.008 0.0328,0.99434 7.8678,-0.111 0.0232,2.019 0.12124,4.328 -3.94549,0.1 0.0321,1.678 -3.31079,0.02 -2.62795,0.04 -0.16938,-9.05\"},\"05137\":{\"name\":\"Stone, AR\",\"path\":\"m 593.40682,354.15714 2.20007,1.679 0.10697,0.08 0.33518,0.409 0.009,0.105 -0.8022,2.07146 2.74537,0.1586 1.17329,1.05694 0.87717,0.314 0.39402,3.751 -7.48271,0.145 -3.27692,0.0546 -0.0553,-1.70264 -0.12124,-4.328 1.98612,-0.03 -0.0109,-2.01105 1.95422,-0.046 -0.0321,-1.704\"},\"05023\":{\"name\":\"Cleburne, AR\",\"path\":\"m 600.4456,363.78214 0.81599,-0.0239 0.15567,3.93794 0.0499,1.816 -0.94849,2.299 -4.83871,0.105 -2.62616,0.08 -0.0909,-8.069 7.48271,-0.145\"},\"05145\":{\"name\":\"White, AR\",\"path\":\"m 601.41726,367.69614 3.94727,-0.09 0.0355,1.98541 4.42172,-0.0824 -1.51009,1.864 -0.0481,1.382 0.041,0.145 0.50633,0.698 -0.40293,3.57 -0.39401,0.531 -2.20922,0.035 0.0241,1.45842 -1.23674,-0.0633 -0.37822,-0.8962 -1.36585,0.32039 -1.07768,0.8007 -2.65113,-0.241 -0.87539,-0.307 -2.43362,-0.03 -0.13015,-6.853 4.83871,-0.105 0.94849,-2.299 -0.0499,-1.816\"},\"05063\":{\"name\":\"Independence, AR\",\"path\":\"m 609.12282,359.07414 2.93282,-0.13 -0.1034,0.403 -0.18542,0.547 -0.51347,1.196 -1.6045,1.25484 0.0552,2.20916 -0.3958,2.958 -2.50671,0.08 -1.437,0 -3.94727,0.09 -0.15567,-3.93794 -0.81599,0.0239 -0.39402,-3.751 2.49245,-1.833 4.57128,-0.1 0.025,1.029 1.98255,-0.06\"},\"05067\":{\"name\":\"Jackson, AR\",\"path\":\"m 612.05564,358.94414 3.07902,-0.05 0.13015,4.09 0.271,6.14 0.10519,2.051 -3.94371,0.126 -0.13015,-2.041 -1.80961,0.112 0.0642,0.129 -4.42172,0.0824 -0.0355,-1.98541 1.437,0 2.50671,-0.08 0.3958,-2.958 -0.0552,-2.20916 1.6045,-1.25484 0.51347,-1.196 0.18542,-0.547 0.1034,-0.403\"},\"05147\":{\"name\":\"Woodruff, AR\",\"path\":\"m 609.82171,369.50414 -0.0642,-0.129 1.80961,-0.112 0.13015,2.041 3.94371,-0.126 0.19255,4.762 0.1647,3.41857 -1.98858,0.0564 -1.64559,0.05 -0.83795,0.481 -0.15154,0.708 0.0232,0.979 -1.38351,0.06 -0.0624,-3.222 -1.79,0.08 -0.0909,-0.255 -0.0571,-0.603 0.39401,-0.531 0.40293,-3.57 -0.50633,-0.698 -0.041,-0.145 0.0481,-1.382 1.51009,-1.864\"},\"05123\":{\"name\":\"St. Francis, AR\",\"path\":\"m 625.90141,375.48314 1.91302,-0.201 0.16046,3.368 0.0161,2.273 -10.034,0.499 -1.90767,-0.02 -0.98592,0.06 0.0392,1.027 -0.88901,-0.96557 -0.20389,-2.10743 1.98858,-0.0564 -0.1647,-3.41857 10.06786,-0.457\"},\"05035\":{\"name\":\"Crittenden, AR\",\"path\":\"m 631.77121,368.33214 0.0826,0.95529 0.33065,-0.0871 -0.003,-0.5322 0.58501,-0.24604 1.04603,0.89856 -0.46921,0.48046 0.1004,0.41812 -0.14434,0.75462 -0.97029,0.58638 0.26865,0.41812 0.86517,-0.0254 0.53298,0.566 0.15059,0.62718 -0.54284,0.86711 0.70142,0.32742 -0.0595,0.82488 -0.59016,0.46514 -1.05685,-0.37181 -0.35021,0.41971 -0.58569,1.81583 -1.74222,0.16275 -0.22464,0.717 0.0321,0.321 0.47246,3.102 -2.09665,0.768 -0.11232,-1.645 -0.0161,-2.273 -0.16046,-3.368 -1.91302,0.201 -0.3851,-6.878 4.01146,-0.16 2.24344,-0.113\"},\"05037\":{\"name\":\"Cross, AR\",\"path\":\"m 625.51631,368.60514 0.3851,6.878 -10.06786,0.457 -0.19255,-4.762 -0.10519,-2.051 1.69551,-0.07 4.30741,-0.408 1.96116,-0.09 2.01642,0.05\"},\"05111\":{\"name\":\"Poinsett, AR\",\"path\":\"m 615.26481,362.98714 3.47838,-0.114 7.38465,-0.383 3.03801,-0.09 0.36192,6.044 -4.01146,0.16 -2.01642,-0.05 -1.96116,0.09 -4.30741,0.408 -1.69551,0.07 -0.271,-6.14\"},\"05093\":{\"name\":\"Mississippi, AR\",\"path\":\"m 639.60049,354.72439 0.0852,0.56319 0.89211,0.45974 0.4572,0.43906 -0.22462,1.03902 -1.37704,-0.24826 -0.33517,0.06 -0.21496,0.66415 1.2014,0.49515 -0.11767,0.9926 -1.24349,0.18845 -0.20906,0.56085 -0.4987,0.58153 -1.11935,0.33327 -0.63758,-0.0999 -0.69964,0.62414 0.58304,1.14135 0.93475,-0.45166 0.54167,0.7069 -0.28588,0.72758 -1.46511,0.91378 0.56235,0.76896 0.25979,1.04461 -1.31404,-0.25898 -0.31251,-0.56102 -0.70995,0.059 -0.12132,1.07844 0.57815,0.64923 -0.26106,1.89247 -0.289,0.032 -0.77362,-0.57834 -0.35978,-0.9882 -0.51378,0.50294 -0.8417,0.28677 -2.24344,0.113 -0.36192,-6.044 -0.45107,-6.847 6.07424,-0.433 4.81147,-0.39675\"},\"05031\":{\"name\":\"Craighead, AR\",\"path\":\"m 628.71478,355.55414 0.45107,6.847 -3.03801,0.09 -7.38465,0.383 -3.47838,0.114 -0.13015,-4.09 3.32639,-0.0416 -0.10474,-2.04744 8.58273,-0.41 0.30844,-0.747 1.4673,-0.1\"},\"05065\":{\"name\":\"Izard, AR\",\"path\":\"m 602.56721,350.97414 -0.0232,7.224 -2.49245,1.833 -0.87717,-0.314 -1.17329,-1.05694 -2.74537,-0.1586 0.8022,-2.07146 -0.009,-0.105 -0.33518,-0.409 -0.10697,-0.08 -2.20007,-1.679 -0.36192,0 -0.016,-0.963 0.98949,-0.412 -0.025,-1.624 8.57382,-0.184\"},\"05075\":{\"name\":\"Lawrence, AR\",\"path\":\"m 610.51346,350.49114 2.23572,1.97 1.25336,1.093 0.57765,-0.804 4.33237,-0.185 1.10182,-0.05 0.007,0.09 -0.34766,0.868 -0.50634,0.488 -0.26386,0.195 -0.72206,2.016 0.17472,0.635 0.10474,2.04744 -3.32639,0.0416 -3.07902,0.05 -2.93282,0.13 -0.0713,-3.085 -0.15155,-3.496 -0.025,-1.294 0.3227,-0.346 1.31576,-0.362\"},\"05135\":{\"name\":\"Sharp, AR\",\"path\":\"m 607.52537,345.09314 0.007,0.224 1.12678,1.141 0.66679,0.321 0.73811,1.029 0.3851,1.198 0.0642,1.485 -1.31576,0.362 -0.3227,0.346 0.025,1.294 0.15155,3.496 0.0713,3.085 -1.98255,0.06 -0.025,-1.029 -4.57128,0.1 0.0232,-7.224 2.31595,-0.03 -0.0815,-2.63807 2.00876,-0.0999 -0.0713,-3.095 0.78624,-0.02\"},\"05055\":{\"name\":\"Greene, AR\",\"path\":\"m 618.82342,349.85114 1.6652,-0.123 5.99222,-0.144 1.31755,0.602 0.041,0.685 2.2482,-0.162 -2.84011,4.942 -0.30844,0.747 -8.58273,0.41 -0.17472,-0.635 0.72206,-2.016 0.26386,-0.195 0.50634,-0.488 0.34766,-0.868 -0.007,-0.09 -1.10182,0.05 -0.0891,-2.714\"},\"05021\":{\"name\":\"Clay, AR\",\"path\":\"m 622.75286,344.25814 6.51639,-0.371 0.49029,-0.03 0.72385,-0.02 1.63846,2.314 0.17828,0.239 0.11945,1.826 -0.19433,0.529 -0.12836,0.202 -2.0093,1.767 -2.2482,0.162 -0.041,-0.685 -1.31755,-0.602 -5.99222,0.144 -1.6652,0.123 1.65993,-0.65071 -0.31883,-3.62584 -1.23056,-1.10945 3.8189,-0.207\"},\"05121\":{\"name\":\"Randolph, AR\",\"path\":\"m 618.93396,344.46514 1.23056,1.10945 0.31883,3.62584 -1.65993,0.65071 0.0891,2.714 -4.33237,0.185 -0.57765,0.804 -1.25336,-1.093 -2.23572,-1.97 -0.0642,-1.485 -0.3851,-1.198 -0.73811,-1.029 -0.66679,-0.321 -1.12678,-1.141 -0.007,-0.224 5.14358,-0.273 6.26501,-0.355\"},\"05049\":{\"name\":\"Fulton, AR\",\"path\":\"m 606.73913,345.11614 0.0713,3.095 -2.00876,0.0999 0.0815,2.63807 -2.31595,0.03 -8.57382,0.184 -0.0981,-5.493 0.54734,-0.03 8.21903,-0.369 4.07743,-0.146\"},\"05005\":{\"name\":\"Baxter, AR\",\"path\":\"m 586.9457,345.95214 6.94963,-0.287 0.0981,5.493 0.025,1.624 -0.98949,0.412 0.016,0.963 0.36192,0 0.0321,1.704 -1.95422,0.046 0.0109,2.01105 -1.98612,0.03 -0.0232,-2.019 -0.0107,-1.349 -0.46355,-1.079 -0.98236,-2.013 -0.85043,-1.005 -0.30487,-0.22 0.0874,-1.822 -0.0161,-2.492\"},\"05089\":{\"name\":\"Marion, AR\",\"path\":\"m 582.48675,346.10514 4.45895,-0.153 0.0161,2.492 -0.0874,1.822 0.30487,0.22 0.85043,1.005 0.98236,2.013 0.46355,1.079 0.0107,1.349 -7.8678,0.111 -0.0328,-0.99434 -0.97983,0.008 0.37618,-8.904 1.50475,-0.05\"},\"05009\":{\"name\":\"Boone, AR\",\"path\":\"m 580.982,346.15314 -0.37618,8.904 -0.99663,0 -6.55739,0.06 -0.16759,-8.727 8.09779,-0.241\"},\"05015\":{\"name\":\"Carroll, AR\",\"path\":\"m 572.88421,346.39414 0.16759,8.727 -3.30901,0 -1.31932,0 -0.64897,-0.659 -0.50633,-0.706 -0.16224,-0.33 0,-0.868 -0.2496,-0.908 -0.49742,-0.569 -2.90965,-0.01 -1.03719,-1.20743 10e-4,-3.21957 5.17568,-0.129 4.94033,-0.121 0.35479,0\"},\"05007\":{\"name\":\"Benton, AR\",\"path\":\"m 558.54815,346.73114 3.86526,-0.08 -10e-4,3.21957 1.03719,1.20743 -1.21894,0.0358 -0.0754,1.65019 -0.33485,-0.82135 -1.89642,0.14437 -0.0141,0.95571 -5.94871,0.36327 -0.82012,1.678 -0.19255,1.006 -2.97383,-0.02 -0.21751,-1.377 -1.1339,-7.803 9.92523,-0.159\"},\"05143\":{\"name\":\"Washington, AR\",\"path\":\"m 549.97433,356.07014 2.97383,0.02 0.19255,-1.006 0.82012,-1.678 5.94871,-0.36327 0.0141,-0.95571 1.89642,-0.14437 0.33485,0.82135 -0.96275,3.352 -0.17651,5.98 0,1.679 -2.997,-0.03 -2.29099,0.284 -4.53918,-0.04 -1.21414,-7.921\"},\"05033\":{\"name\":\"Crawford, AR\",\"path\":\"m 561.01564,363.77514 1.30863,0 -0.007,0.339 -0.33696,0.335 -2.3822,1.165 -0.71674,0.0323 0.15514,2.31442 0.94339,0.58029 -0.25852,1.317 -0.34588,1.108 -0.28882,0.153 -1.10181,-0.111 -0.15868,0.02 -0.1141,0.06 -0.16046,0.135 -0.0784,0.177 0.0874,0.192 0.27278,0.243 0.0802,0.144 0.0713,0.248 -0.0143,0.169 -0.0571,0.147 -0.13728,0.119 -1.17313,0.529 -0.30487,0.1 -1.28545,0.1 -0.47424,-0.154 -0.43324,-0.538 -0.0642,-0.314 0.0731,-0.305 0,-0.09 -0.10518,-0.234 -0.61153,-0.474 -0.30487,-0.135 -0.2496,-0.05 -0.0481,0.02 -0.33874,1.205 -0.84152,-5.554 -0.4261,-2.788 4.53918,0.04 2.29099,-0.284 2.997,0.03\"},\"05131\":{\"name\":\"Sebastian, AR\",\"path\":\"m 552.45609,372.33314 0.33874,-1.205 0.0481,-0.02 0.2496,0.05 0.30487,0.135 0.61153,0.474 0.10518,0.234 0,0.09 -0.0731,0.305 0.0642,0.314 0.43324,0.538 0.47424,0.154 1.28545,-0.1 0.30487,-0.1 1.17313,-0.529 0.13728,-0.119 0.0571,-0.147 0.0143,-0.169 -0.0713,-0.248 -0.0802,-0.144 -0.27278,-0.243 -0.0874,-0.192 0.0784,-0.177 0.16046,-0.135 0.1141,-0.06 0.15868,-0.02 1.10181,0.111 0.2463,5.3295 0.72536,0.007 -0.0143,1.694 -2.01821,-0.02 -0.007,1.012 -0.33875,0 -1.18917,0.501 -0.51525,0.328 0,0.17 0.42076,0 0,2.057 -0.63649,0.264 -3.09328,0.668 -0.32983,-0.06 0.11232,-10.34 0.007,-0.403\"},\"05127\":{\"name\":\"Scott, AR\",\"path\":\"m 558.01864,379.13814 0,1.022 1.26762,0.651 2.97383,0.02 3.94549,-0.02 0.0499,6.347 -0.65253,0 -1.57249,0.841 -0.88609,1.07 -0.97879,0.04 0,-0.337 -1.66342,-0.25 -5.62496,0 -0.071,-0.74335 -2.51769,0.0614 0.0481,-4.748 0.32983,0.06 3.09328,-0.669 0.63649,-0.263 0,-2.058 -0.42076,0 0,-0.169 0.51525,-0.328 1.18917,-0.501 0.33875,0\"},\"05097\":{\"name\":\"Montgomery, AR\",\"path\":\"m 572.19424,387.05414 -0.025,8.019 0.016,1.327 -9.95732,0 -0.0624,-7.297 0.97879,-0.04 0.88609,-1.069 1.57249,-0.842 0.65253,0 5.93874,-0.103\"},\"05051\":{\"name\":\"Garland, AR\",\"path\":\"m 578.16329,386.21814 1.98433,-0.07 0.0571,2.025 -0.006,1.06207 1.22543,0.0359 0.32923,0.97037 1.56061,0.0126 0.33518,0.65 0.0107,1.35 -2.29099,0.02 -0.57765,1.341 0.0392,1.381 -8.66118,0.08 0.025,-8.019 1.97542,-0.747 3.99363,-0.09\"},\"05125\":{\"name\":\"Saline, AR\",\"path\":\"m 584.39085,384.12814 1.6481,-0.17406 0.0225,1.38906 1.9772,1.904 2.75632,1.906 3.02375,0.928 0.15867,2.028 -2.97382,0.06 -0.003,1.0586 -2.8086,-0.006 -1.17313,0.908 -0.93957,0.103 -0.0569,-1.97663 -2.36241,-0.007 -0.0107,-1.35 -0.33518,-0.65 -1.56061,-0.0126 -0.32923,-0.97037 -1.22543,-0.0359 0.006,-1.06207 -0.0571,-2.025 -1.98433,0.07 -0.0392,-1.993 1.9362,-0.08 2.64221,0 1.50296,0.395 0.18542,-0.412\"},\"05119\":{\"name\":\"Pulaski, AR\",\"path\":\"m 595.83153,380.02114 0.94314,-0.02 0.14441,6.46 -0.13429,2.53432 1.13804,-0.0103 0.11946,3.054 -3.34823,0.05 -0.71672,0.02 -0.15867,-2.028 -3.02375,-0.928 -2.75632,-1.906 -1.9772,-1.904 -0.0225,-1.38906 -1.64809,0.17406 -0.29061,0 -0.0143,-1.333 1.94333,-0.378 1.37637,-0.346 0.55983,-0.387 1.478,0.419 3.80999,-0.04 0.58478,-2.018 1.99325,-0.03\"},\"05085\":{\"name\":\"Lonoke, AR\",\"path\":\"m 595.81013,378.76914 2.43362,0.03 0.87539,0.307 2.65113,0.241 0.0891,2.515 2.06635,-0.05 -0.14527,5.48485 1.48777,1.25815 0.16759,1.478 -0.009,0.353 -0.74702,1.535 -0.51347,0 -6.12415,0.114 -0.11946,-3.054 -1.13804,0.0103 0.13429,-2.53432 -0.14441,-6.46 -0.94314,0.02 -0.0214,-1.252\"},\"05117\":{\"name\":\"Prairie, AR\",\"path\":\"m 601.77027,379.34914 1.07768,-0.8007 1.36585,-0.32039 0.37822,0.8962 1.23674,0.0633 -0.0241,-1.45842 2.20922,-0.035 0.0571,0.603 0.0909,0.255 1.79,-0.08 0.0624,3.222 -0.0309,5.52695 -1.49238,0.002 0.0823,1.39375 1.28997,0.19255 0.37738,0.96104 -4.08099,0.1 0.0695,2.009 -0.55269,0.05 -0.99663,0 0.74702,-1.535 0.009,-0.353 -0.16759,-1.478 -1.48777,-1.25815 0.14527,-5.48485 -2.06635,0.05 -0.0891,-2.515\"},\"05095\":{\"name\":\"Monroe, AR\",\"path\":\"m 610.01426,381.69314 1.38351,-0.06 -0.0232,-0.979 0.15154,-0.708 0.83795,-0.481 1.64559,-0.05 0.20389,2.10743 0.88901,0.96557 0.10519,3.063 1.00375,-0.03 0.0571,2.042 0.15154,4.041 1.02693,-0.03 0.016,0.362 0.10697,2.724 -1.01445,0.04 -0.1355,0.01 -0.59548,-0.226 -0.29596,-0.207 -1.71155,-1.851 -1.33537,-1.913 -0.61687,-0.786 -1.6242,0.04 -0.37738,-0.96104 -1.28997,-0.19255 -0.0823,-1.39375 1.49238,-0.002 0.0309,-5.52695\"},\"05077\":{\"name\":\"Lee, AR\",\"path\":\"m 615.10257,382.48814 -0.0392,-1.027 0.98592,-0.06 1.90767,0.02 10.034,-0.499 0.11232,1.645 -2.89182,4.606 -8.94287,0.386 -0.0571,-2.041 -1.00375,0.03 -0.10519,-3.063\"},\"05107\":{\"name\":\"Phillips, AR\",\"path\":\"m 625.21144,387.17414 0.25673,2.676 0.20147,2.064 -0.1355,0.442 -0.0178,0.04 -0.041,0.03 -0.65075,0.57 -0.81834,0.392 -0.98949,0.203 -0.98593,0.193 -1.8007,3.231 -0.85399,1.759 -0.27278,0.569 0.0642,0.225 0.009,0.03 -3.52652,0.176 0.9057,-5.079 1.01445,-0.04 -0.10697,-2.724 -0.016,-0.362 -1.02693,0.03 -0.15154,-4.041 8.94287,-0.387\"},\"05069\":{\"name\":\"Jefferson, AR\",\"path\":\"m 598.04229,392.03714 6.12415,-0.114 0.1355,5.753 2.25177,0.02 0.98949,0.05 0.19077,0.137 1.7686,2.057 0.24961,0.878 -0.1462,0.135 -0.10341,0.05 -1.06793,0.209 -1.42452,-0.466 -2.93282,-1.424 -0.43324,1.624 -3.76898,0.184 0.025,0.675 -5.29691,0.257 -0.0713,-2.457 0.30665,-1.44 -0.14441,-6.067 3.34823,-0.05\"},\"05053\":{\"name\":\"Grant, AR\",\"path\":\"m 594.69406,392.09114 0.14441,6.067 -0.30665,1.44 0.0713,2.457 -1.94333,0.139 -1.76682,-1.455 -1.31041,-0.386 -3.47303,0 -0.0303,-6.116 0.93957,-0.103 1.17313,-0.908 2.80861,0.006 0.003,-1.0586 2.97382,-0.06 0.71672,-0.02\"},\"05059\":{\"name\":\"Hot Spring, AR\",\"path\":\"m 583.65988,392.25314 2.36241,0.007 0.0569,1.97663 0.0303,6.116 -3.93836,0 -1.92728,0 -0.76307,-1.15 -6.28284,-1.446 0.0258,-1.29935 -1.03844,-0.0417 -0.016,-1.326 8.66118,-0.08 -0.0392,-1.381 0.57765,-1.341 2.29099,-0.02\"},\"05039\":{\"name\":\"Dallas, AR\",\"path\":\"m 582.17118,400.34514 3.93836,0 3.47303,0 1.31041,0.387 1.76682,1.455 -2.55485,0.257 -0.007,1.856 0.34409,0.06 0.68284,0.617 0.44215,0.636 1.28545,2.266 0.0784,0.419 -4.73174,0 -5.90486,0.02 -0.42789,-1.928 -0.85005,-2.44098 1.15492,0.36598 0,-3.992\"},\"05025\":{\"name\":\"Cleveland, AR\",\"path\":\"m 594.60313,402.05514 5.29691,-0.257 -0.15333,6.308 0.0891,2.018 -6.75886,0.193 -0.14619,-2.007 -0.0784,-0.419 -1.28545,-2.266 -0.44215,-0.637 -0.68284,-0.617 -0.34409,-0.06 0.007,-1.856 2.55485,-0.257 1.94333,-0.139\"},\"05079\":{\"name\":\"Lincoln, AR\",\"path\":\"m 609.50257,400.99614 0.5206,1.494 0.007,0.368 -0.79337,0.563 -1.57606,0.05 0.009,3.446 0.0321,1.031 -7.95517,0.158 0.15333,-6.308 -0.025,-0.675 3.76898,-0.184 0.43324,-1.624 2.93282,1.424 1.42452,0.466 1.06793,-0.209\"},\"05001\":{\"name\":\"Arkansas, AR\",\"path\":\"m 604.16644,391.92314 1.5101,0 0.55269,-0.05 -0.0695,-2.009 4.08099,-0.1 1.6242,-0.04 0.61687,0.787 1.33537,1.913 1.71155,1.85 0.29596,0.207 0.59548,0.226 0.1355,-0.01 -0.9057,5.079 -0.93422,0.635 -0.29596,0.281 -0.15511,0.25 -0.0214,0.522 0.0553,0.345 0.3958,0.395 0.87539,1.35 -0.33874,0.451 -2.31417,-0.685 -1.13212,-0.691 -1.76148,-0.145 -0.5206,-1.494 0.10341,-0.05 0.1462,-0.135 -0.24961,-0.878 -1.7686,-2.057 -0.19077,-0.137 -0.98949,-0.05 -2.25177,-0.02 -0.1355,-5.754\"},\"05041\":{\"name\":\"Desha, AR\",\"path\":\"m 619.17643,399.60614 0.85221,0.682 0.20146,0.5 -0.11232,0.772 -3.71372,1.87 -1.52613,6.573 -0.10519,0.523 0.025,0.05 0.1141,0.203 0.56874,0.426 0.53842,0.435 0,0.02 -0.0499,0.247 -0.33696,0.289 -1.4049,0.565 -0.29774,1.036 -1.40668,0.04 -0.5206,-0.32 -0.10519,-0.691 -1.9772,0.1 -0.15164,-5.01321 -2.06625,0.0392 -0.0321,-1.031 -0.009,-3.446 1.57606,-0.05 0.79337,-0.563 -0.007,-0.368 1.76148,0.145 1.13212,0.691 2.31417,0.685 0.33874,-0.451 -0.87539,-1.35 -0.3958,-0.395 -0.0553,-0.345 0.0214,-0.522 0.15511,-0.25 0.29596,-0.281 0.93422,-0.635 3.52652,-0.176\"},\"05043\":{\"name\":\"Drew, AR\",\"path\":\"m 599.74671,408.10614 7.95517,-0.158 2.06625,-0.0392 0.15164,5.01321 0.12123,4.033 -10.18197,0.239 -0.21038,-0.296 -0.312,-0.924 -0.0178,-0.112 0.0588,-1.632 0.0143,-0.04 0.60261,-0.03 -0.15868,-4.033 -0.0891,-2.018\"},\"05011\":{\"name\":\"Bradley, AR\",\"path\":\"m 593.07699,410.31714 6.75886,-0.193 0.15868,4.033 -0.60261,0.03 -0.0143,0.04 -0.0588,1.632 0.0178,0.112 0.312,0.924 0.21038,0.296 0.5937,0.435 -0.25674,1.775 -0.55269,0.467 -0.37975,0.106 -0.84151,0.681 -0.70958,0.925 -0.44929,1.155 -1.68838,-1.283 -2.50493,-1.295 -0.0499,-0.248 0.0499,-0.146 -0.53842,-0.344 -0.11411,-0.717 0.082,-0.716 0.16046,-0.1 0.0802,0.03 0.32092,-0.812 0.43324,-1.29 0.14441,-0.717 -0.35123,-3.222 -0.21038,-1.567\"},\"05013\":{\"name\":\"Calhoun, AR\",\"path\":\"m 588.19906,408.31714 4.73174,0 0.14619,2.007 0.21038,1.567 0.35123,3.222 -0.14441,0.717 -0.43324,1.29 -0.32092,0.812 -0.0802,-0.03 -0.16046,0.1 -0.082,0.717 0.11411,0.716 0.53842,0.344 -0.56338,0.491 -0.83617,0.176 -0.36905,-0.02 -0.57944,-0.449 0.0267,-0.06 -0.17829,-0.715 -1.42986,-0.771 -0.27278,-0.07 -2.685,-1.383 -1.20344,-1.375 -0.16224,-0.394 -0.0642,-0.818 0.92346,-0.56259 -0.0891,-1.86441 0.13015,-0.105 1.2694,-0.217 0.0874,-0.07 0.61866,-0.973 0.50633,-2.266\"},\"05103\":{\"name\":\"Ouachita, AR\",\"path\":\"m 582.2942,408.34014 5.90486,-0.02 -0.50633,2.266 -0.61866,0.973 -0.0874,0.07 -1.2694,0.217 -0.13015,0.105 0.0891,1.86441 -0.92346,0.56259 0.0642,0.818 0.16224,0.394 1.20344,1.375 2.685,1.383 -7.86781,0.04 -2.68329,0.0204 7e-5,-1.69239 0,-7.49 3.97759,-0.884\"},\"05099\":{\"name\":\"Nevada, AR\",\"path\":\"m 573.08567,405.22214 1.37281,1.97 2.96492,1.26 0.40114,0.225 0.49207,0.547 0,7.49 -4.74956,0.335 -2.29396,0.0545 0.0279,-0.71948 0.009,-4.548 0.19968,-3.519 0,-3.054 1.57605,-0.04\"},\"05057\":{\"name\":\"Hempstead, AR\",\"path\":\"m 564.53503,404.23614 6.97459,1.027 0,3.054 -0.19968,3.519 -0.009,4.548 -4.58198,-0.03 -2.03068,-2.908 -2.06031,-1.26039 -0.51238,-1.93761 2.3944,0.01 0.025,-6.031\"},\"05019\":{\"name\":\"Clark, AR\",\"path\":\"m 570.86065,396.40014 1.32467,0 1.03844,0.0417 -0.0258,1.29935 6.28284,1.446 0.76307,1.15 1.92728,0 0,3.991 -1.15492,-0.36548 0.85005,2.44148 0.42789,1.927 -3.97759,0.884 -0.49207,-0.547 -0.40114,-0.225 -2.96492,-1.26 -1.37281,-1.97 -1.10894,-2.065 -0.28348,-0.779 -0.81834,-3.954 -0.0143,-2.024\"},\"05109\":{\"name\":\"Pike, AR\",\"path\":\"m 562.228,396.40014 8.63265,0 0.0143,2.024 0.81834,3.954 0.28348,0.779 1.10894,2.065 -1.57605,0.04 -6.97459,-1.027 -0.0481,-4.044 -1.99146,-0.02 -0.24961,-1.767 -0.0178,-2.007\"},\"05061\":{\"name\":\"Howard, AR\",\"path\":\"m 562.228,396.40014 0.0178,2.007 0.24961,1.767 1.99146,0.02 0.0481,4.044 -0.025,6.031 -2.3944,-0.01 -0.0321,0 -2.11983,-3.808 -0.0802,-0.234 -0.37084,-2.443 -0.13728,-1.1 -0.0571,-1.745 0.0731,-0.699 -0.2086,-0.1 -2.70818,0.03 -0.26386,-1.774 -0.0107,-1.993 6.02789,0\"},\"05113\":{\"name\":\"Polk, AR\",\"path\":\"m 552.2885,387.82414 2.51769,-0.0604 0.071,0.74335 5.62496,0 1.66342,0.25 0,0.337 0.0624,7.297 -6.02789,0 0.0107,1.993 0.26386,1.774 -4.28245,0.13 0.0963,-12.464\"},\"05133\":{\"name\":\"Sevier, AR\",\"path\":\"m 556.47467,400.15814 2.70818,-0.03 0.2086,0.1 -0.0731,0.699 0.0571,1.746 0.13728,1.1 0.37084,2.442 0.0802,0.234 2.11983,3.808 -1.57427,-0.02 -4.99917,-1.48 -3.35893,-2.701 0.041,-5.761 4.28245,-0.13\"},\"05081\":{\"name\":\"Little River, AR\",\"path\":\"m 552.15121,406.04914 3.35893,2.701 4.99917,1.48 1.57427,0.02 0.0161,0 0.016,0 0.51238,1.93761 2.06031,1.26039 -4.11487,1.421 -0.4582,-0.378 -0.353,-0.144 -1.84884,-0.371 -1.06972,0.155 -0.27991,0.03 -0.0963,0.09 -1.84883,0.938 -1.02872,-0.561 -0.27991,-0.184 -0.7809,-0.499 -0.12658,-0.17 -0.1462,-0.335 -0.15154,-0.394 0.0463,-7.001\"},\"05091\":{\"name\":\"Miller, AR\",\"path\":\"m 564.68836,413.45114 2.03068,2.908 -0.13549,1.478 1.31932,1.954 0,0.121 -0.31378,1.02 -1.43878,2.539 -0.13728,0.177 -0.1355,0.128 -0.22464,0.03 -1.07685,1.911 0.82725,1.359 -0.18542,0 -4.38586,0.1 -0.25852,-12.304 4.11487,-1.421\"},\"05073\":{\"name\":\"Lafayette, AR\",\"path\":\"m 566.71904,416.35914 4.58198,0.03 -0.0279,0.71948 2.29396,-0.0545 -0.2086,0.266 -1.89697,4.051 -0.0232,5.585 -0.58835,0 -5.44666,0.121 -0.82725,-1.358 1.07685,-1.911 0.22464,-0.03 0.1355,-0.129 0.13728,-0.176 1.43878,-2.539 0.31378,-1.02 0,-0.121 -1.31932,-1.954 0.13549,-1.478\"},\"05027\":{\"name\":\"Columbia, AR\",\"path\":\"m 573.56705,417.04914 4.74956,-0.335 -7e-5,1.69239 2.68329,-0.0204 0.0713,8.307 -4.79592,0.13 -4.83693,0.128 0.0232,-5.586 1.89697,-4.05 0.2086,-0.266\"},\"05139\":{\"name\":\"Union, AR\",\"path\":\"m 580.99983,418.38614 7.86781,-0.04 0.27278,0.07 1.42986,0.771 0.17829,0.715 -0.0267,0.06 0.57944,0.449 0.36905,0.02 0.83617,-0.176 0.56338,-0.491 -0.0499,0.147 0.0499,0.247 2.50493,1.295 1.68838,1.283 1.46196,3.522 -12.59241,0.338 -5.06157,0.1 -0.0713,-8.307\"},\"04015\":{\"name\":\"Mohave, AZ\",\"path\":\"m 196.1531,304.30414 20.63493,3.84 6.44508,1.143 -1.76861,3.839 -1.1963,3.022 -0.0802,0.217 -0.94849,2.972 -0.0481,0.298 0,0.369 0.21751,0.676 0.19968,0.322 -0.25673,1.5 -0.21751,0.396 -0.58656,0.69 -0.23356,0.194 -0.27278,0.09 -4.29137,1.279 -0.79516,0.169 -0.80407,0.09 -0.15155,-0.05 -1.07685,0.137 -1.95224,0.747 -2.78128,1.24 -1.28545,2.626 -2.10557,10.157 -5.06156,27.531 -0.41898,0.36 -0.15154,0.07 -0.20147,0.03 -5.30154,-0.6705 -1.51972,1.0485 -7.40069,-3.327 -0.8843,-1.545 -1.02159,-1.138 -1.17313,-1.407 -1.18739,-4.999 -0.0642,-0.925 -1.27832,-2.008 -1.01267,-2.635 -0.0161,-0.121 0.0321,-0.321 0.57765,-2.557 1.72047,-2.875 0.16758,-0.548 0.0981,-0.458 0.0232,-0.513 0.12837,-2.805 -0.025,-0.675 -0.16759,-1.348 -0.24069,-2.844 0.22464,-4.027 0.49742,-6.588 0.23356,-2.25 0.016,-0.146 0.24961,-0.225 0.18363,-0.1 2.05743,-0.483 1.12678,0 1.05902,0.217 2.33913,0.69 0.2496,0.234 0.54556,0.772 0.22464,0.563 0.0321,0.176 0.009,0.05 0.0161,0.192 0.12837,0.385 0.4261,0.676 0.16046,0.168 0.23356,0.178 0.0963,0.02 0.36192,0.04 1.11608,0.02 0.016,0 0.0642,-0.04 0.0321,-0.02 0.2496,-0.282 2.33021,-3.148 0.77912,-4.042 0.44215,-2.316 0.73098,-4.172 0.0891,-0.462 0.72206,-3.786 0.69176,-3.584\"},\"04012\":{\"name\":\"La Paz, AZ\",\"path\":\"m 182.74235,365.31014 7.40069,3.327 1.51972,-1.0485 5.30154,0.6705 0.20147,-0.03 0.15154,-0.07 0.41898,-0.36 -1.34251,7.247 -2.60299,14.126 -11.72415,-2.209 0.37797,-1.977 -5.8175,-1.093 -1.92907,9.827 -1.94333,-0.328 -2.76523,-0.547 -1.67233,-0.28 -0.312,-0.138 -0.88609,-0.62 -0.40115,-1.068 -0.0143,-0.04 1.13212,-6.975 1.92729,-0.476 2.31416,-2.731 0.74881,-2.603 0.54555,-2.724 0.10519,-0.747 0.49029,-1.76 0.53843,-0.933 1.7276,-2.442 2.36943,-0.908 1.6242,-0.666 2.41044,-1.391 0.041,-0.03 0.0642,-0.997\"},\"04003\":{\"name\":\"Cochise, AZ\",\"path\":\"m 270.38467,423.76914 1.27119,0.167 -3.49621,24.959 -7.31155,-1.059 -20.05016,-2.942 1.5511,-9.03 2.4354,-15.857 5.37535,0.836 14.1346,2.041 6.09028,0.885\"},\"04023\":{\"name\":\"Santa Cruz, AZ\",\"path\":\"m 223.58612,440.00714 0.353,-2.168 3.92232,0.626 0.73989,-4.644 5.97083,0.82 7.77688,1.223 -1.5511,9.03 -10.0126,-1.551 -2.32129,-0.539 -4.87793,-2.797\"},\"04019\":{\"name\":\"Pima, AZ\",\"path\":\"m 211.64624,412.76114 7.7947,1.316 4.27354,0.845 7.22419,1.18 0.6347,0.09 3.01305,0.307 5.97975,0.829 4.53027,0.699 -0.312,1.975 -2.4354,15.857 -7.77688,-1.223 -5.97083,-0.82 -0.73989,4.644 -3.92232,-0.626 -0.353,2.168 -0.92353,-0.528 -2.93282,-1.697 -23.19871,-13.379 -4.64437,-2.642 -3.69767,-2.219 1.94511,-10.576 21.51211,3.795\"},\"04011\":{\"name\":\"Greenlee, AZ\",\"path\":\"m 267.08279,394.71314 0.40115,-0.804 0.15333,-0.13 2.63508,-1.517 5.67487,0.77 -4.29136,30.904 -1.27119,-0.167 -1.81496,-2.653 0.0392,-0.312 0.41897,-0.908 0.25674,-1.158 0,-1.045 -0.43324,-1.687 -1.03763,-2.3 -0.28882,-0.05 -2.32308,-5.811 1.88092,-13.129\"},\"04009\":{\"name\":\"Graham, AZ\",\"path\":\"m 259.32731,395.57314 1.14104,1.068 1.92193,0.433 1.88093,-1.173 2.81158,-1.188 -1.88092,13.129 2.32308,5.811 0.28882,0.05 1.03763,2.3 0.43324,1.687 0,1.045 -0.25674,1.158 -0.41897,0.908 -0.0392,0.312 1.81496,2.653 -6.09028,-0.885 -14.1346,-2.041 -5.37535,-0.836 0.312,-1.975 0.041,0 0.39401,-2.532 1.25336,-8.283 0.73098,-4.709 0.19255,-2.227 0.39401,-1.688 0.19255,-0.305 0.66858,-0.346 1.39777,-0.433 0.52951,-0.07 2.84546,-0.314 3.18955,0.465 0.37797,-2.539 2.02356,0.516\"},\"04001\":{\"name\":\"Apache, AZ\",\"path\":\"m 286.17555,319.20214 -3.17351,22.867 -4.50888,32.626 -2.54594,18.337 -5.67487,-0.77 -2.63508,1.517 -0.15333,0.13 -0.40115,0.804 -2.81158,1.188 -1.88093,1.173 -1.92193,-0.433 -1.14104,-1.068 0.56339,-3.803 0.69888,-0.915 1.51901,-8.629 2.42648,-16.01 1.59924,-10.066 0.95562,-5.015 0.48315,-3.309 -3.18955,-0.475 4.53919,-30.601 17.25283,2.452\"},\"04017\":{\"name\":\"Navajo, AZ\",\"path\":\"m 268.92272,316.75014 -4.53919,30.601 3.18955,0.475 -0.48315,3.309 -0.95562,5.015 -1.59924,10.066 -2.42648,16.01 -1.51901,8.629 -0.69888,0.915 -0.56339,3.803 -2.02356,-0.516 1.43878,-9.666 -14.06328,-2.147 10.74357,-68.671 4.60516,0.697 2.93995,0.58 5.95479,0.9\"},\"04007\":{\"name\":\"Gila, AZ\",\"path\":\"m 245.62061,377.23414 -0.94136,6.01 14.06328,2.147 -1.81675,12.205 -3.18955,-0.465 -2.84546,0.314 -0.52951,0.07 -1.39777,0.433 -0.66858,0.346 -0.19255,0.305 -0.39401,1.688 -0.19255,2.227 -0.29596,0 -3.38389,0.644 -1.9772,1.365 -0.0232,0.104 0.11232,0.451 -0.0481,0.16 -1.10895,1.092 -0.28882,0 -0.0571,-0.03 -2.14657,-6.547 -0.16759,-1.858 -0.42611,-1.854 -0.3851,-1.487 -1.36746,-5.167 -0.5616,0.321 -0.47425,0.4 -2.8205,-4.483 -0.24781,-4.082 -0.11411,-0.345 -0.0481,-0.08 -0.3851,-0.176 -0.55447,0.06 0.85935,-1.344 0,-1.149 -0.10519,-0.394 -0.29596,-0.577 -3.94549,-0.667 -0.12124,-0.218 0.007,-0.06 0.66145,-1.694 1.32467,-3.229 0.26565,-0.107 1.4049,-0.415 0.45998,-0.323 0.0321,-0.03 0.10341,-0.754 5.33613,1.54 4.0489,2.767 3.06297,2.409 1.77574,0.458\"},\"04021\":{\"name\":\"Pinal, AZ\",\"path\":\"m 237.31956,394.57614 0.3851,1.487 0.42611,1.854 0.16759,1.858 2.14657,6.547 0.0571,0.03 0.28882,0 1.10895,-1.091 0.0481,-0.161 -0.11232,-0.451 0.0232,-0.103 1.9772,-1.366 3.38389,-0.644 0.29596,0 -0.73098,4.709 -1.25336,8.283 -0.39401,2.532 -0.041,0 -4.53027,-0.699 -5.97975,-0.829 -3.01305,-0.307 -0.6347,-0.09 -7.22419,-1.181 -4.27354,-0.845 -7.7947,-1.315 0.68284,-3.957 2.24106,-12.872 0.17651,-0.995 0.0802,0.04 1.70442,2.106 2.09665,0.529 2.59586,0.46 4.88507,0.78 0.62044,-3.957 0.40114,-1.975 6.21152,1.047 3.97758,0.609\"},\"04027\":{\"name\":\"Yuma, AZ\",\"path\":\"m 193.79079,389.16714 -3.65666,19.799 -1.94511,10.576 -0.32092,-0.2 -25.85875,-15.541 0.63649,-2.766 0.0553,-0.09 0.16759,-0.06 0.32983,0.07 0.82012,-0.756 0.77911,-1.132 2.01821,0.152 2.66718,-1.655 0.83438,-1.173 0,0 0.16937,-0.587 0.18542,-1.511 -0.57052,-1.332 -0.0553,-0.06 -0.0571,-0.07 2.76523,0.548 1.94333,0.328 1.92907,-9.827 5.8175,1.093 -0.37797,1.977 11.72415,2.209\"},\"04013\":{\"name\":\"Maricopa, AZ\",\"path\":\"m 196.39378,375.04114 11.00031,1.976 8.285,4.211 0.75593,-0.458 1.14104,-1.437 0.0802,-0.316 0.77911,-1.189 0.27278,0.08 7.70557,2.394 4.33237,0.724 0.55447,-0.06 0.3851,0.177 0.0481,0.08 0.11411,0.344 0.24781,4.083 2.8205,4.482 0.47425,-0.4 0.5616,-0.321 1.36746,5.167 -3.97758,-0.61 -6.21152,-1.046 -0.40114,1.975 -0.62044,3.956 -4.88507,-0.779 -2.59586,-0.46 -2.09665,-0.529 -1.70442,-2.106 -0.0802,-0.04 -0.17651,0.995 -2.24106,12.872 -0.68284,3.956 -21.51211,-3.795 6.25965,-33.925\"},\"04005\":{\"name\":\"Coconino, AZ\",\"path\":\"m 243.49008,312.70114 11.93274,1.872 -9.80221,62.661 -1.77574,-0.458 -3.06297,-2.409 -4.0489,-2.767 -5.33613,-1.54 0.68462,-3.771 0.61687,-3.76 -0.74702,-0.128 -3.23769,-0.571 -0.0571,-0.9 0.54734,-3.174 -4.41974,-0.627 -0.6347,-0.06 -5.2559,-0.884 0.67393,-4.001 -1.6866,-1.929 -9.08015,-5.721 -3.1646,-3.247 -1.56714,-0.845 -0.71671,-0.16 -0.28883,-0.04 -0.26565,0.02 2.10557,-10.157 1.28545,-2.626 2.78128,-1.24 1.95224,-0.747 1.07685,-0.137 0.15155,0.05 0.80407,-0.09 0.79516,-0.169 4.29137,-1.279 0.27278,-0.09 0.23356,-0.194 0.58656,-0.69 0.21751,-0.396 0.25673,-1.5 -0.19968,-0.322 -0.21751,-0.676 0,-0.369 0.0481,-0.298 0.94849,-2.972 0.0802,-0.217 1.1963,-3.022 1.76861,-3.839 20.25697,3.414\"},\"04025\":{\"name\":\"Yavapai, AZ\",\"path\":\"m 202.79785,340.26314 0.26565,-0.02 0.28883,0.04 0.71671,0.16 1.56714,0.845 3.1646,3.247 9.08015,5.721 1.6866,1.929 -0.67393,4.001 5.2559,0.884 0.6347,0.06 4.41974,0.627 -0.54734,3.174 0.0571,0.9 3.23769,0.571 0.74702,0.128 -0.61687,3.76 -0.68462,3.771 -0.10341,0.754 -0.0321,0.03 -0.45998,0.323 -1.4049,0.415 -0.26565,0.107 -1.32467,3.229 -0.66145,1.694 -0.007,0.06 0.12124,0.218 3.94549,0.667 0.29596,0.577 0.10519,0.394 0,1.149 -0.85935,1.344 -4.33237,-0.724 -7.70557,-2.394 -0.27278,-0.08 -0.77911,1.189 -0.0802,0.315 -1.14104,1.437 -0.75593,0.459 -8.285,-4.211 -11.00031,-1.976 1.34251,-7.247 5.06156,-27.531\"},\"06015\":{\"name\":\"Del Norte, CA\",\"path\":\"m 50.323251,148.95214 6.332754,1.993 4.974207,1.375 -0.547341,0.914 -0.754154,0.983 -1.165997,0.112 -1.631326,1.453 -1.301495,6.019 0.153327,0.531 0.153327,1.478 -0.09806,0.282 -0.802292,0.931 -0.443934,0.306 -0.939573,-0.274 -0.666793,-0.892 0.354791,-1.189 -1.880928,-0.611 -2.955998,-0.867 0.287042,-1.92 0.06418,-1.31 0.02496,-2.571 -0.0071,-0.218 -0.04101,-0.273 -0.08914,-0.297 0.394015,-3.785 0.586564,-2.17\"},\"06093\":{\"name\":\"Siskiyou, CA\",\"path\":\"m 61.630212,152.32014 4.708559,1.317 0.04101,0 1.228398,0.255 1.752561,0.637 0.722062,0.215 0.426106,0.122 5.569686,1.574 2.208976,0.547 2.016426,0.546 0.52238,0.169 0.916396,0.282 13.733447,4.09 -0.443935,1.012 -0.158675,0.555 -0.877172,3.231 0.02496,0.07 0.08023,0.05 -2.089524,7.763 -1.502959,5.489 -9.199609,-2.557 -4.765611,-1.381 -3.471248,-0.933 0.417192,-2.337 -2.032472,-1.254 -3.608529,1.421 -2.515629,2.605 0.153327,1.068 -0.208596,0.371 -0.3851,0.305 -0.329831,-0.05 -1.349633,-0.685 -2.314165,-2.442 -1.269403,-1.905 -0.788029,-0.763 -0.82012,-0.659 0.128367,-4.491 -0.320917,-0.459 -2.636864,-0.779 0.443934,-0.306 0.802292,-0.931 0.09806,-0.282 -0.153327,-1.478 -0.153327,-0.531 1.301495,-6.019 1.631326,-1.453 1.165997,-0.112 0.754154,-0.983 0.547341,-0.914\"},\"06025\":{\"name\":\"Imperial, CA\",\"path\":\"m 142.45127,377.78114 11.55656,2.418 9.48131,1.858 2.45857,0.424 3.81535,0.763 -1.92729,0.476 -1.13212,6.975 0.0143,0.04 0.40115,1.068 0.88609,0.62 0.312,0.138 1.67233,0.28 0.0571,0.06 0.0553,0.06 0.57052,1.332 -0.18542,1.512 -0.16937,0.586 0,0 -0.83438,1.173 -2.66718,1.655 -2.01821,-0.152 -0.11232,0 -14.20591,-1.686 -0.28169,-0.03 -1.61528,-0.193 -6.00292,-0.715 -2.55485,-0.298 -1.88093,-0.217 0.86826,-3.799 1.81496,-6.395 0.56338,-2.63 1.06081,-5.319\"},\"06065\":{\"name\":\"Riverside, CA\",\"path\":\"m 176.23309,369.30414 -1.7276,2.442 -0.53843,0.933 -0.49029,1.76 -0.10519,0.747 -0.54555,2.724 -0.74881,2.603 -2.31416,2.731 -3.81535,-0.763 -2.45857,-0.424 -9.48131,-1.858 -11.55656,-2.418 -4.00967,-0.909 -5.9227,-1.285 -4.08099,-0.892 -7.52192,-1.806 0.0891,-0.387 -2.00216,-1.784 -2.69927,-0.619 0.13728,-0.66 2.45858,-2.401 -0.9164,-1.271 -1.06793,-0.401 -0.55626,-1.495 -1.19631,-2.718 0.62757,-1.138 2.35339,-2.034 2.66004,0.603 0.72385,0.169 0.16046,0.385 2.45858,0.916 5.48054,1.22 2.40152,0.09 4.66934,0.82 13.53198,2.86 9.43317,2 0.20239,-1.01215 3.54342,0.69815 12.82418,2.573\"},\"06073\":{\"name\":\"San Diego, CA\",\"path\":\"m 116.3037,370.09914 2.69927,0.619 2.00216,1.784 -0.0891,0.387 7.52192,1.806 4.08099,0.892 5.9227,1.285 4.00967,0.909 -1.06081,5.319 -0.56338,2.629 -1.81496,6.396 -0.86826,3.799 -1.79892,-0.218 -3.6638,-0.44 -3.72976,-0.433 -5.26303,-0.621 -5.05444,-0.617 -0.11232,0 -0.87539,-3.833 0.35301,-5.68 0,-0.192 0.009,0 0.0143,-1.24 0.009,-0.481 -0.22464,-1.968 -0.0963,-0.697 -0.36906,-1.097 -0.0339,-0.09 -1.03585,-2.612 -0.30487,-0.731 -0.0571,-0.114 -0.41719,-0.883 -0.61866,-0.891 -0.37797,-0.408 -0.41006,-0.277 2.21789,-2.289\"},\"06059\":{\"name\":\"Orange, CA\",\"path\":\"m 113.53134,358.98614 1.63132,2.167 1.19631,2.718 0.55626,1.495 1.06793,0.401 0.9164,1.271 -2.45858,2.401 -0.13728,0.66 -2.21789,2.289 -0.12123,-0.488 -0.32092,-0.651 -0.19968,-0.291 -3.5283,-4.426 -2.83655,-3.472 -0.69175,-0.854 0.49029,-0.866 1.02871,-1.295 2.02534,-1.741 0.85935,0.06 0.21751,0.05 2.52276,0.579\"},\"06037\":{\"name\":\"Los Angeles, CA\",\"path\":\"m 96.897162,381.80514 -1.429862,-0.06 -0.907481,-1.118 -0.121235,-0.192 -0.442151,-1.407 -0.401146,-2.514 0.506335,0.17 2.635082,4.594 0.21751,0.467 -0.05705,0.06 m -0.971664,-15.651 -0.08023,-0.06 -0.01605,-0.166 0.01605,-0.03 0.08736,0.02 0.982362,0.33 1.10003,0.884 0.891435,0.715 0.675708,0.571 0.868255,1.799 0.0713,0.185 0.0481,0.385 -0.0874,0.209 -0.26564,0.155 -0.0161,0 -0.15333,0 -2.314161,-1.093 -0.153327,-0.137 -1.654503,-3.776 m 24.332611,-26.405 -1.22305,5.302 -0.56874,3.063 -0.42789,2.603 -0.16937,1.125 -1.23553,2.675 -1.06794,1.784 -0.4261,0.708 -1.33537,0.649 -0.48138,0.589 -0.0321,0.16 0.0874,0.362 0.15333,0.217 -2.52276,-0.579 -0.21751,-0.05 -0.85935,-0.06 -2.02534,1.741 -1.02871,1.295 -0.49029,0.866 -1.42986,0.195 -1.50296,-0.03 -0.69176,-0.273 -0.34409,-0.195 -1.3425,-0.866 -0.24069,-0.2 -0.14441,-0.811 0.1355,-0.144 0.43502,-0.323 0.22464,-0.05 0.11232,-0.232 0.11945,-0.579 -0.14263,-1.061 -0.0891,-0.515 -0.0481,-0.289 -0.1034,-0.596 -0.18542,-0.724 -0.25852,-0.697 -0.0232,-0.05 -0.0321,-0.07 -0.009,-0.01 -0.19968,-0.394 -0.041,-0.05 -0.15154,-0.218 -0.0499,-0.07 -0.0553,-0.05 -0.3227,-0.305 -0.465331,-0.184 -1.839922,-0.386 -1.445907,-0.193 -0.763069,0.06 -2.84546,-1.262 0.240688,-0.644 1.83279,-0.795 1.477999,-0.619 2.21789,0.548 1.124991,-1.794 0.121235,-0.841 -1.743647,-12.304 -0.08023,-0.667 22.419593,5.24\"},\"06111\":{\"name\":\"Ventura, CA\",\"path\":\"m 88.332255,330.15614 1.060807,0.385 1.823876,0.85 0.249602,0.596 0.08736,0.625 4.637244,2.138 1.727601,0.426 1.743647,12.304 -0.121235,0.841 -1.124991,1.794 -2.21789,-0.547 -1.477999,0.618 -1.83279,0.795 -0.240688,0.644 -2.522761,-1.904 -2.772363,-4.823 -1.896973,-2.442 -0.442152,-0.562 -0.233556,-0.105 0.531295,-0.369 0.153327,-0.136 0.353008,-1.126 2.51563,-10.002\"},\"06083\":{\"name\":\"Santa Barbara, CA\",\"path\":\"m 68.428295,346.58814 3.358927,0.271 1.502959,1.375 -0.04992,0.763 -0.01426,0.144 -0.08023,0.02 -2.742054,0.321 -0.247819,0.01 -0.730977,-0.746 -0.137281,-0.24 -0.859343,-1.928 m 9.385027,1.05 0.7078,0.5 1.864882,0.618 0.06418,-0.04 0.03031,-0.02 0.04814,-0.02 0.0731,-0.04 0.09628,-0.06 0.05705,-0.02 0.506335,0.03 0.609741,0.451 0.128367,0.191 -0.0071,0 -0.0071,0.02 -0.01783,0.01 -0.618656,0.483 -0.176504,0.144 -0.128366,0.02 -3.157463,0.06 -0.684622,-0.162 -0.666793,-0.264 -0.0071,0 -0.249602,-0.123 -0.563387,-0.262 -0.504552,-0.371 -0.04101,-0.135 -0.369054,-2.09 0.128367,-0.162 0.112321,0.03 0.989492,0.392 1.78287,0.811 m -10.936124,-24.78 2.868638,0.312 1.021584,0.396 0.946704,0.972 1.246226,-0.209 1.20522,-0.676 3.711936,-1.069 0.345876,0.41 1.053676,0.988 3.253738,2.611 4.080989,3.213 0.820121,0.211 0.345876,0 0.554473,0.139 -2.51563,10.002 -0.353008,1.126 -0.153327,0.136 -0.531295,0.369 -1.340718,-1.229 -1.01267,-0.44 -1.028716,-0.146 -0.279911,0 -0.04101,0 -1.100031,-0.05 -2.315948,-0.731 -0.79516,-0.804 -1.358546,-0.981 -0.545559,-0.216 -1.413815,-0.524 -1.182043,-0.314 -1.374593,-0.288 -1.574274,-0.2 -1.872013,-0.323 -2.410441,-3.148 0.151544,-1.826 1.182043,-6.065 0.41006,-1.648\"},\"06079\":{\"name\":\"San Luis Obispo, CA\",\"path\":\"m 59.267909,301.13614 20.233791,5.539 0.353008,0.1 -1.01267,3.92 2.33198,0.81867 -0.354777,2.12133 1.113104,1.88083 1.65568,0.57404 -0.623992,1.95813 1.407268,0.53837 -0.628153,1.75963 2.00038,0.531 0.536644,0.63075 -0.1554,1.72988 0.90302,-0.14271 0.862311,0.30508 -0.372017,2.19738 1.256321,0.48762 -0.996625,3.935 -0.345876,0 -0.820121,-0.211 -4.080989,-3.213 -3.253738,-2.611 -1.053676,-0.988 -0.345876,-0.41 -3.711936,1.07 -1.20522,0.675 -1.246226,0.209 -0.946704,-0.972 -1.021584,-0.396 -2.868638,-0.312 0.304871,-0.556 0.02496,-0.04 0.288825,-0.642 0.233556,-0.619 0.110538,-0.379 0.08201,-0.384 0.02318,-0.105 0.0089,-0.04 0.03922,-0.511 0,-0.03 -0.05527,-0.369 -0.08023,-0.22 -0.16759,-0.174 -0.556256,-0.571 -0.08023,-0.07 -0.160458,-0.111 -1.663418,-4.532 -3.077233,-5.674 -2.02534,-3.135 -0.313785,-0.328 -0.183636,-0.224 -0.290608,-1.02 -0.07131,-1.988\"},\"06029\":{\"name\":\"Kern, CA\",\"path\":\"m 91.63413,309.78514 8.71823,2.16 9.87532,2.427 7.87494,1.84 1.06259,0.305 6.80521,1.399 -0.74702,1.904 -0.1765,0.658 -0.24069,2.708 -3.90627,16.722 -0.64183,-0.159 -22.419593,-5.24 0.08023,0.667 -1.727601,-0.426 -4.637244,-2.138 -0.08736,-0.625 -0.249602,-0.596 -1.823876,-0.85 -1.060807,-0.385 -0.554473,-0.139 0.996625,-3.935 -1.256321,-0.48762 0.372017,-2.19738 -0.862311,-0.30508 -0.90302,0.14271 0.1554,-1.72988 -0.536644,-0.63075 -2.00038,-0.531 0.628153,-1.75963 -1.407268,-0.53837 0.623992,-1.95813 -1.65568,-0.57404 -1.113104,-1.88083 0.354777,-2.12133 -2.33198,-0.81867 1.01267,-3.92 11.779422,3.013\"},\"06071\":{\"name\":\"San Bernardino, CA\",\"path\":\"m 125.97042,317.91614 4.63725,1.116 29.65804,6.556 1.68838,0 3.68697,5.537 1.27119,1.896 0.47246,0.7 6.81591,10.198 2.51385,3.743 -0.57765,2.556 -0.0321,0.321 0.0161,0.121 1.01267,2.635 1.27832,2.008 0.0642,0.925 1.18739,4.999 1.17313,1.407 1.02159,1.138 0.8843,1.545 -0.0642,0.997 -0.041,0.03 -2.41044,1.391 -1.6242,0.666 -2.36943,0.908 -12.82418,-2.573 -3.54342,-0.69815 -0.20239,1.01215 -9.43317,-2 -13.53198,-2.86 -4.66934,-0.82 -2.40152,-0.09 -5.48054,-1.22 -2.45858,-0.916 -0.16046,-0.385 -0.72385,-0.169 -2.66004,-0.603 -2.35339,2.034 -0.62757,1.138 -1.63132,-2.167 -0.15333,-0.217 -0.0874,-0.362 0.0321,-0.16 0.48138,-0.589 1.33537,-0.649 0.4261,-0.708 1.06794,-1.784 1.23553,-2.675 0.16937,-1.124 0.42789,-2.603 0.56874,-3.063 1.22305,-5.303 0.64183,0.159 3.90627,-16.722 0.24069,-2.708 0.1765,-0.658 0.74702,-1.904\"},\"06027\":{\"name\":\"Inyo, CA\",\"path\":\"m 114.55114,275.53614 16.61813,3.931 9.2424,13.876 0.34409,0.513 1.96829,2.926 1.14995,1.744 6.06711,9.08 4.91715,7.385 0.6347,0.948 2.63687,3.953 0.2086,0.306 3.61566,5.383 -1.68838,0 -29.65804,-6.556 -4.63725,-1.116 -6.80521,-1.399 0.87539,-1.912 0.30487,-1.076 -0.0802,-1.519 -0.51347,-7.481 -1.3425,-7.611 -0.43324,-3.431 0.52238,-2.264 0.15155,-1.237 -0.0481,-0.87 -0.29774,-2.819 -0.23355,-0.476 -1.35677,-1.469 -0.35479,-0.03 -1.38886,-0.981 -0.0571,-0.05 -0.15154,-0.339 -0.90035,-4.525 0.0481,-1.396 0.64183,-1.488\"},\"06107\":{\"name\":\"Tulare, CA\",\"path\":\"m 117.97603,293.48714 0.43324,3.431 1.3425,7.611 0.51347,7.481 0.0802,1.519 -0.30487,1.076 -0.87539,1.912 -1.06259,-0.305 -7.87494,-1.84 -9.87532,-2.427 -8.71823,-2.16 1.905888,-7.433 0.891435,-2.999 0.586564,-0.159 0.465329,0.111 0.747023,-2.963 -0.804803,-0.30301 0.346605,-1.91499 -0.79516,-0.202 2.394394,-1.454 2.712165,0.49434 0.63963,-1.69334 2.29812,0.612 3.36606,0.875 0.51525,-1.888 7.89811,1.858 3.17529,0.761\"},\"06031\":{\"name\":\"Kings, CA\",\"path\":\"m 94.977011,293.92214 0.79516,0.202 -0.346605,1.91499 0.804803,0.30301 -0.747023,2.963 -0.465329,-0.111 -0.586564,0.159 -0.891435,2.999 -1.905888,7.433 -11.779422,-3.013 -0.353008,-0.1 -1.117859,-3.109 7.955165,-4.502 1.246226,-4.924 2.740271,0.674 2.586945,0.265 2.064563,-1.157\"},\"06039\":{\"name\":\"Madera, CA\",\"path\":\"m 107.41609,267.17914 1.33359,0.362 1.12678,0.362 0.24781,0.298 0.55448,1.109 0.21038,2.394 -5.6107,3.454 -0.79516,0.522 -0.33696,0.332 -0.21751,0.426 -0.15333,1.027 -0.016,0.396 -0.0392,0.151 -0.36906,0.859 -0.26565,0.289 -0.50633,0.451 -0.54734,0.303 -2.611907,-0.167 -0.761286,0.121 -2.925689,1.824 -0.788029,0.522 -0.183635,0.152 -1.262272,1.406 -0.304871,0.507 -0.458197,0.449 -0.06418,0.02 -7.723456,-0.25 -1.100031,-0.208 -1.269403,-1.031 -0.691754,-1.123 -0.185418,-0.435 -0.08736,-0.289 -0.06418,-0.431 -0.506335,-3.948 1.461953,-0.868 3.487294,-0.355 2.724225,0.364 1.777521,0 6.450423,-3.938 1.945112,0.474 1.599225,-1.432 0.40115,-1.46 6.04393,-3.681 0.48137,1.044\"},\"06019\":{\"name\":\"Fresno, CA\",\"path\":\"m 114.55114,275.53614 -0.64183,1.488 -0.0481,1.396 0.90035,4.525 0.15154,0.339 0.0571,0.05 1.38886,0.981 0.35479,0.03 1.35677,1.469 0.23355,0.476 0.29774,2.819 0.0481,0.87 -0.15155,1.237 -0.52238,2.264 -3.17529,-0.761 -7.89811,-1.858 -0.51525,1.888 -3.36606,-0.875 -2.29812,-0.612 -0.63963,1.69334 -2.712165,-0.49434 -2.394394,1.454 -2.064563,1.157 -2.586945,-0.265 -2.740271,-0.674 -1.246226,4.924 -7.955165,4.502 -3.640621,-4.452 -1.132122,-1.631 -0.08023,-1.298 0.490289,-2.4 0.914612,-0.988 0.979833,0.27203 0.749551,-3.87303 -4.073858,-7.133 8.452587,-5.032 0.506335,3.948 0.06418,0.431 0.08736,0.289 0.185418,0.435 0.691754,1.123 1.269403,1.031 1.100031,0.208 7.723392,0.25 0.06418,-0.02 0.458197,-0.449 0.304871,-0.507 1.262272,-1.406 0.183635,-0.152 0.788029,-0.522 2.925689,-1.824 0.761286,-0.121 2.611906,0.167 0.54734,-0.303 0.50633,-0.451 0.26565,-0.289 0.36906,-0.859 0.0392,-0.151 0.016,-0.396 0.15333,-1.027 0.21751,-0.426 0.33696,-0.332 0.79516,-0.522 5.6107,-3.454 3.66201,3.832\"},\"06053\":{\"name\":\"Monterey, CA\",\"path\":\"m 60.738777,275.14214 -0.09806,0.467 0.185419,0.708 1.479782,2.456 1.67768,3.022 1.070596,1.31835 -0.426234,2.81518 0.874643,-0.0115 2.419355,4.88 -0.08326,1.13206 1.18329,0.21094 3.383887,2.85 0.488506,0.193 0.09806,0 0.135498,-0.08 0.893218,-1.311 -0.490289,2.4 0.08023,1.298 1.132122,1.631 3.640621,4.452 1.117859,3.109 -20.233791,-5.539 -0.570518,-0.833 -0.948487,-1.752 0.03209,-0.852 0.02318,-0.411 0.04101,-0.747 -0.105189,-0.659 -0.01605,-0.1 -2.128747,-4.563 -0.474243,-0.836 -0.914612,-1.031 -0.258517,-0.231 -0.0071,0 -0.178287,-0.02 -0.112321,-0.06 -0.176504,-0.223 -0.112321,-0.25 -0.451066,-1.045 -0.160458,-0.378 -0.01605,-0.362 0.588347,-5.849 1.285449,-0.457 0.03922,0.01 0.290608,0 0.222859,-0.1 0.443935,-0.328 0.272779,-0.282 0.199681,-0.241 0.345877,-0.524 0.329831,-0.656 0.884303,-1.913 0.01605,-0.266 -0.103406,-0.836 -0.0089,-0.06 3.198469,-0.153\"},\"06069\":{\"name\":\"San Benito, CA\",\"path\":\"m 60.738777,275.14214 1.139254,0.162 1.601017,-0.9 1.638458,0.347 3.574654,0.961 -0.369054,0.385 -0.128367,0.179 -0.04814,0.128 0.121235,0.33 0.971664,2.112 3.157462,2.887 0.194333,0.33 4.073858,7.133 -0.749551,3.87303 -0.979833,-0.27203 -0.914612,0.988 -0.893218,1.311 -0.135498,0.08 -0.09806,0 -0.488506,-0.193 -3.383882,-2.85 -1.18329,-0.21094 0.08326,-1.13206 -2.419355,-4.88 -0.874643,0.0115 0.426234,-2.81518 -1.070596,-1.31835 -1.67768,-3.022 -1.479782,-2.456 -0.185419,-0.708 0.09806,-0.467\"},\"06047\":{\"name\":\"Merced, CA\",\"path\":\"m 87.230441,264.54414 0.868258,4.427 -0.0071,0.339 -0.01604,0.06 -0.08023,0.08 0.730977,4.363 0.472461,0.672 1.296146,1.683 -1.777521,0 -2.724262,-0.364 -3.487294,0.355 -1.461953,0.868 -8.452587,5.032 -0.194333,-0.33 -3.157462,-2.887 -0.971664,-2.112 -0.121235,-0.33 0.04814,-0.128 0.128367,-0.179 0.369054,-0.385 -0.247819,-0.257 -0.137281,-0.303 -0.01605,-0.13 0.256733,-0.9 0.458198,-0.209 0.377968,-0.593 0.256734,-1.24 -0.09628,-0.303 5.881687,-3.473 0.03209,-0.754 -0.103406,-0.226 -0.135498,-0.08 2.611904,-0.772 9.39929,-1.928\"},\"06087\":{\"name\":\"Santa Cruz, CA\",\"path\":\"m 54.268742,263.90214 -0.0071,0.255 0.03922,0.129 0.483157,1.014 0.939573,1.904 0.458197,0.656 1.230181,1.081 0.7702,0.552 1.551096,1.641 2.144793,3.549 0.121235,0.202 -0.121235,0.419 -1.139254,-0.162 -3.198469,0.153 -0.128366,-0.724 -0.281694,-1.332 -0.201464,-0.497 -0.176504,-0.339 -0.160458,-0.217 -0.361923,-0.323 -0.169373,-0.04 -0.900349,0.209 -0.804074,-0.04 -0.415409,-0.06 -0.290608,-0.07 -0.144412,-0.08 -0.05705,-0.03 -0.254951,-0.145 -0.194332,-0.114 -0.698885,-0.793 -0.691754,-0.995 -0.520598,-1.241 -0.43502,-1.307 -0.04814,-0.955 0.146196,-0.91 1.492262,-0.249 1.567142,0.433 0.121236,-0.312 0.336962,-1.261\"},\"06081\":{\"name\":\"San Mateo, CA\",\"path\":\"m 52.765783,253.31014 -0.03209,0 -0.392231,2.347 0.238904,0.376 2.781277,2.918 0.201465,0.127 0.481374,0.169 0.329831,-0.09 0.0089,-0.02 0.329831,0.827 -2.444315,3.929 -0.336962,1.261 -0.121236,0.312 -1.567142,-0.433 -1.492262,0.249 -0.146196,0.91 0.04814,0.955 -0.144413,-0.233 -0.490289,-0.804 -0.659662,-1.231 -0.08023,-0.226 0.04101,-1.091 0.297739,-5.962 0.55269,-2.427 0.675708,-2.417 1.920151,0.545\"},\"06001\":{\"name\":\"Alameda, CA\",\"path\":\"m 55.32955,249.51814 0.79516,0.02 0.09627,0.06 0.540209,0.755 0.344094,1.077 0.0731,0.537 3.141417,3.231 6.355931,-0.17 1.301495,-0.144 -0.722062,2.605 -0.989493,3.599 0.128366,0.275 0.980579,1.494 -0.01605,-0.02 -6.667933,-1.902 -0.217511,-0.02 -0.185418,0.137 -0.137281,0.06 -0.625787,0.08 -0.320917,-0.04 -2.203627,-0.754 -0.287042,-0.417 -0.329831,-0.827 0.01605,-4.035 -1.390639,-4.035 0.320917,-1.558\"},\"06085\":{\"name\":\"Santa Clara, CA\",\"path\":\"m 56.713057,259.97314 0.287042,0.417 2.203627,0.754 0.320917,0.04 0.625787,-0.08 0.137281,-0.06 0.185418,-0.137 0.217511,0.02 6.667933,1.902 -0.281693,0.114 -0.07131,1.205 0.515249,5.882 2.023558,1.745 0.09628,0.303 -0.256734,1.24 -0.377968,0.593 -0.458198,0.209 -0.256733,0.9 0.01605,0.13 0.137281,0.303 0.247819,0.257 -3.574654,-0.961 -1.638458,-0.347 -1.601017,0.9 0.121235,-0.419 -0.121235,-0.202 -2.144793,-3.549 -1.551096,-1.64 -0.7702,-0.553 -1.230181,-1.081 -0.458197,-0.656 -0.939573,-1.904 -0.483157,-1.014 -0.03922,-0.129 0.0071,-0.255 2.444315,-3.929\"},\"06099\":{\"name\":\"Stanislaus, CA\",\"path\":\"m 80.48941,252.10314 3.271566,6.752 3.47838,5.68 -0.0089,0 -9.39929,1.928 -2.611904,0.771 0.135498,0.08 0.103406,0.226 -0.03209,0.754 -5.881687,3.473 -2.023558,-1.745 -0.515249,-5.882 0.07131,-1.205 0.281693,-0.114 0.01605,0.02 4.73352,-2.798 0.836166,-0.536 0.360139,-0.162 2.034255,-0.539 0.449283,0.162 0.891435,0.177 1.030499,0.119 0.98771,-0.258 0.643616,-2.642 1.148168,-4.269\"},\"06043\":{\"name\":\"Mariposa, CA\",\"path\":\"m 87.239356,264.53514 0.08736,-0.9 0.153327,-0.225 1.051893,-0.756 5.223809,-1.092 0.345877,0.178 1.511874,1.631 0.126583,0.234 0.10519,0.07 0.515249,0.248 1.663418,0.451 0.570518,0 2.208976,-0.339 0.27991,-0.152 1.5511,-1.237 1.04654,-0.241 1.69373,1.22 1.07685,1.239 0.48316,1.277 -6.04393,3.681 -0.40115,1.46 -1.599229,1.432 -1.945112,-0.474 -6.450423,3.938 -1.296146,-1.683 -0.472461,-0.672 -0.730977,-4.363 0.08023,-0.08 0.01604,-0.06 0.0071,-0.339 -0.868258,-4.427 0.0089,0\"},\"06109\":{\"name\":\"Tuolumne, CA\",\"path\":\"m 104.29072,252.34614 -0.13549,0.112 -0.19434,0.678 -0.28882,2.111 0.73811,1.173 0.53129,0.451 0.41719,0.273 0.75594,0.41 0.6347,0.465 0.44215,0.346 0.7078,0.674 0.49742,1.086 -0.5553,2.15156 1.16765,0.86166 0.31118,1.07578 -0.62579,2.024 -0.9574,0.733 -0.32092,0.208 -0.48137,-1.044 -0.48316,-1.277 -1.07685,-1.239 -1.69373,-1.22 -1.04654,0.241 -1.5511,1.237 -0.27991,0.152 -2.208976,0.339 -0.570518,0 -1.663418,-0.451 -0.515249,-0.248 -0.10519,-0.07 -0.126583,-0.234 -1.511874,-1.631 -0.345877,-0.179 -5.223809,1.093 -1.051893,0.756 -0.153327,0.225 -0.08736,0.9 -3.47838,-5.68 3.139634,-2.073 1.326456,-1.304 2.210758,-2.28 2.112701,-1.961 2.692134,-2.336 0.43502,-0.203 0.417192,-0.13 2.208975,-0.303 1.952244,2.275 0.26565,-0.13 1.37459,-0.459 0.98771,-0.121 0.69888,0.162 0.0802,0.08 0.0642,0.16 0.56338,2.113\"},\"06051\":{\"name\":\"Mono, CA\",\"path\":\"m 107.42501,243.90214 3.43024,5.135 2.30703,3.435 9.81827,14.772 8.18872,12.223 -16.61813,-3.931 -3.66201,-3.832 -0.21038,-2.394 -0.55448,-1.109 -0.24781,-0.298 -1.12678,-0.362 -1.33359,-0.362 0.32092,-0.208 0.9574,-0.733 0.62579,-2.024 -0.31118,-1.07578 -1.16765,-0.86166 0.5553,-2.15156 -0.49742,-1.086 -0.7078,-0.674 -0.44215,-0.346 -0.6347,-0.465 -0.75594,-0.41 -0.41719,-0.273 -0.53129,-0.451 -0.73811,-1.173 0.28882,-2.111 0.19434,-0.678 0.13549,-0.112 1.81497,-1.544 0.83616,-1.918 -0.72384,-2.669 0.025,-0.234 0.41897,-1.077 0.76307,-1.002\"},\"06003\":{\"name\":\"Alpine, CA\",\"path\":\"m 103.19069,237.55214 4.23432,6.35 -0.76307,1.002 -0.41897,1.077 -0.025,0.234 0.72384,2.669 -0.83616,1.918 -1.81497,1.544 -0.56338,-2.113 -0.0642,-0.16 -0.0802,-0.08 -0.69888,-0.162 -0.98771,0.121 -1.37459,0.459 -0.26565,0.13 -1.952244,-2.275 -0.465329,-1.954 1.116077,-4.331 2.371216,-1.18 0.44037,-0.321 1.43878,-1.28 0.0891,-0.137 0.12123,-0.64 -0.025,-0.443 -0.19968,-0.427\"},\"06009\":{\"name\":\"Calaveras, CA\",\"path\":\"m 98.303846,248.26514 -2.208975,0.303 -0.417192,0.13 -0.43502,0.203 -2.692134,2.336 -2.112701,1.961 -2.210758,2.28 -1.326456,1.304 -3.139634,2.073 -3.271566,-6.752 -0.304871,-3.638 0.119453,0.137 0.224641,0.137 1.399553,0.298 4.250362,-1.343 3.214514,-1.415 0.836166,-0.433 0.779115,0.05 6.830174,0.419 0.465329,1.954\"},\"06005\":{\"name\":\"Amador, CA\",\"path\":\"m 98.954594,241.98014 -1.116077,4.331 -6.830174,-0.419 -0.779115,-0.05 -0.836166,0.433 -3.214514,1.415 -4.250362,1.343 -1.399553,-0.298 -0.224641,-0.137 -0.119453,-0.137 -0.09628,-1.76 1.244444,-4.709 1.663417,0.193 2.057511,-0.63326 3.148469,2.39326 0.796943,0.201 1.276535,0.146 3.521168,0.159 0.996624,-0.159 4.161219,-2.316\"},\"06077\":{\"name\":\"San Joaquin, CA\",\"path\":\"m 80.184539,248.46514 0.304871,3.638 -1.148168,4.269 -0.643616,2.642 -0.98771,0.258 -1.030499,-0.119 -0.891435,-0.177 -0.449283,-0.162 -2.034255,0.539 -0.360139,0.162 -0.836166,0.536 -4.73352,2.798 -0.980579,-1.494 -0.128366,-0.275 0.989493,-3.599 0.722062,-2.605 1.262272,-6.235 0.779114,-1.011 1.93798,-2.052 0.408277,0 0.313785,0.132 0.215727,0.497 0.331614,0.314 0.866475,0.216 3.182423,0.371 0.121235,-0.02 1.237311,-0.426 1.454822,0.04 0.09628,1.76\"},\"06013\":{\"name\":\"Contra Costa, CA\",\"path\":\"m 57.16234,246.07014 1.551097,0.94 0.891435,0.258 3.792164,0.922 0.256733,0.03 0.233556,-0.02 0.162241,-0.106 0.144413,-0.176 0.369054,1.013 0.160458,0.215 0.451066,0.186 0.199682,0.05 0.698885,0.02 0.788028,-0.223 0.426106,-0.267 0.08736,-0.159 0.04992,-0.322 0.08736,-0.143 0.128366,-0.06 0.199682,0 1.021584,0.183 0.320917,0.168 0.05705,0.07 -1.262272,6.235 -1.301495,0.144 -6.355931,0.17 -3.141417,-3.231 -0.0731,-0.537 -0.344094,-1.077 -0.540209,-0.755 -0.09627,-0.06 -0.79516,-0.02 -0.689971,-0.506 -0.659662,-1.503 2.282074,-0.499 0.377968,-0.179 0.490289,-0.383 0.04814,-0.153 -0.01605,-0.225\"},\"06017\":{\"name\":\"El Dorado, CA\",\"path\":\"m 102.28143,234.10514 0.90926,3.447 0.19968,0.427 0.025,0.443 -0.12123,0.64 -0.0891,0.137 -1.43878,1.28 -0.44037,0.321 -2.371216,1.18 -4.161219,2.316 -0.996624,0.159 -3.521168,-0.159 -1.276535,-0.146 -0.796943,-0.201 -3.148469,-2.39326 -2.057511,0.63326 -1.663417,-0.193 -0.722063,-5.095 2.19293,-2.619 0.490289,-1.068 0.377969,-0.314 1.895191,-0.538 2.419354,-0.394 0.771983,0.04 0.121235,0.05 0.417191,0.246 0.554473,0.572 0.199681,0.449 0.146196,0.245 0.247819,0.287 1.060807,1.052 0.21751,0.13 0.144413,0 0.859343,-0.162 0.426106,-0.191 0.948487,-0.795 3.83317,0.144 1.01267,0.09 0.369054,-0.09 0.249602,-0.107 0.07131,-0.271 0.21751,-0.169 2.426492,0.618\"},\"06067\":{\"name\":\"Sacramento, CA\",\"path\":\"m 74.84841,234.79014 5.762235,2.111 0.722063,5.095 -1.244444,4.709 -1.454822,-0.04 -1.237311,0.426 -0.121235,0.02 -3.182423,-0.371 -0.866475,-0.216 -0.331614,-0.314 -0.215727,-0.497 -0.313785,-0.132 -0.408277,0 -1.93798,2.052 -0.779114,1.011 -0.05705,-0.07 -0.320917,-0.168 -1.021584,-0.183 -0.199682,0 -0.128366,0.06 -0.08736,0.143 -0.04992,0.322 -0.08736,0.159 -0.426106,0.267 -0.788028,0.223 -0.698885,-0.02 -0.199682,-0.05 -0.451066,-0.186 -0.160458,-0.215 -0.369054,-1.013 1.044762,0.44 1.709772,-0.169 1.968288,-2.027 1.470868,-2.469 1.173128,-0.509 0.34766,-0.208 0.875389,-1.808 0.779114,-3.175 0.02496,-0.239 -0.02496,-0.105 -0.668576,-1.182 -0.07131,-2.266 2.025341,0.588\"},\"06095\":{\"name\":\"Solano, CA\",\"path\":\"m 55.345595,243.25914 3.649535,1.051 0.07845,-0.208 -0.03922,-0.104 -0.06418,0 -0.09628,-0.136 -0.06418,-0.187 0.04814,-0.2 0.971664,-2.788 2.435401,0.681 0.08023,-0.191 0.02496,-0.201 0.02318,-0.41 -0.01605,-0.193 -0.08023,-0.522 -0.394014,-1.19 0.0071,-0.112 0.03209,-0.151 0.811206,-1.527 0.08914,-0.1 0.811205,0.136 6.083153,1.214 0.185418,0.307 0,0.07 -0.19255,0.82 -1.092899,3.88 1.750778,0.501 -1.470868,2.469 -1.968288,2.027 -1.709772,0.169 -1.044762,-0.44 -0.144413,0.176 -0.162241,0.106 -0.233556,0.02 -0.256733,-0.03 -3.792164,-0.922 -0.891435,-0.258 -1.551097,-0.94 -1.784653,-2.676 -0.03209,-0.135\"},\"06075\":{\"name\":\"San Franciso, CA\",\"path\":\"m 52.765783,253.31014 -1.920151,-0.545 0,-0.02 0.02318,-0.355 0.226425,-1.31 0.208595,-0.12 0.827252,-0.162 0.691754,0.05 0.32983,0.08 0.121236,0.178 0.126583,0.393 -0.103406,1.372 -0.103407,0.332 -0.427888,0.103\"},\"06041\":{\"name\":\"Marin, CA\",\"path\":\"m 45.9677,237.15214 0.21751,-0.114 1.454822,0.03 0.144412,0.04 3.801079,4.525 1.274696,0.68721 0.74173,1.56279 -0.641833,1.673 -0.666794,2.112 -0.04992,0.179 0.121235,0.19 0.297739,0.369 0.29774,0.494 0.103406,0.255 -0.0071,0.07 -1.060807,1.035 -0.474244,-0.06 -0.297739,-0.153 -0.201464,-0.193 -5.664178,-6.5 0.939573,-5.006 -0.05527,-0.426 -0.201465,-0.587 -0.0731,-0.191\"},\"06055\":{\"name\":\"Napa, CA\",\"path\":\"m 60.055938,227.52314 1.679463,1.063 0.882521,4.699 0.208596,1.327 0.02496,0.474 -0.0089,1.679 -0.08914,0.1 -0.811206,1.527 -0.03209,0.151 -0.0071,0.112 0.394014,1.19 0.08023,0.522 0.01605,0.193 -0.02318,0.41 -0.02496,0.201 -0.08023,0.191 -2.435401,-0.681 -0.971664,2.788 -0.04814,0.2 0.06418,0.187 0.09628,0.136 0.06418,0 0.03922,0.104 -0.07845,0.208 -3.649535,-1.051 0.698885,0.128 0.554473,-0.9 0.04101,-0.53 -0.01605,-0.538 -0.21751,-1.858 -1.23018,-4.354 -0.706017,-1.938 0.05705,-1.51 0.295957,-0.989 3.045141,-0.04 2.059215,-1.743 0.199682,-0.305 -0.07132,-1.159\"},\"06097\":{\"name\":\"Sonoma, CA\",\"path\":\"m 39.989737,223.98914 2.515357,0.74632 0.353981,-0.76632 4.041797,1.22568 0.394589,-1.04963 5.382961,1.59095 2.144793,5.032 -0.295957,0.989 -0.05705,1.51 0.706017,1.938 1.23018,4.354 0.21751,1.858 0.01605,0.538 -0.04101,0.53 -0.554473,0.9 -0.698885,-0.128 0.03209,0.135 -1.775738,0.49 -0.74173,-1.56279 -1.274696,-0.68721 -3.801079,-4.525 -0.144412,-0.04 -1.454822,-0.03 -0.21751,0.114 -1.139254,-4.052 -3.72085,-7.119 -1.117859,-1.992\"},\"06113\":{\"name\":\"Yolo, CA\",\"path\":\"m 61.373479,226.45514 8.62909,2.418 2.8205,5.329 0.07131,2.266 0.668576,1.182 0.02496,0.105 -0.02496,0.239 -0.779114,3.175 -0.875389,1.808 -0.34766,0.208 -1.173128,0.509 -1.750778,-0.501 1.092899,-3.88 0.19255,-0.82 0,-0.07 -0.185418,-0.307 -6.083153,-1.214 -0.811205,-0.136 0.0089,-1.679 -0.02496,-0.474 -0.208596,-1.327 -0.882521,-4.699 -1.679463,-1.063 1.317541,-1.068\"},\"06061\":{\"name\":\"Placer, CA\",\"path\":\"m 77.645733,229.25214 2.545938,-0.208 0.852212,0.729 0.185418,0.09 2.41044,0.811 0.57765,-0.1 1.108945,-1.1 0.153327,-0.225 0.135498,-0.353 0.153327,-0.162 0.836166,-0.627 0.836166,-0.434 1.269403,-0.633 2.433618,-1.134 0.909263,-0.208 0.666794,-0.03 10.952172,2.84 -0.85935,3.383 -0.28882,1.198 -0.24247,1.012 -2.426487,-0.618 -0.21751,0.169 -0.07131,0.271 -0.249602,0.107 -0.369054,0.09 -1.01267,-0.09 -3.83317,-0.144 -0.948487,0.795 -0.426106,0.19 -0.859343,0.163 -0.144413,0 -0.21751,-0.13 -1.060807,-1.052 -0.247819,-0.287 -0.146196,-0.245 -0.199681,-0.449 -0.554473,-0.572 -0.417191,-0.246 -0.121235,-0.05 -0.771983,-0.04 -2.419354,0.394 -1.895191,0.538 -0.377969,0.314 -0.490289,1.068 -2.19293,2.619 -5.762235,-2.111 1.429861,-4.213 0.948487,0.25 0.418975,-1.575\"},\"06057\":{\"name\":\"Nevada, CA\",\"path\":\"m 104.45118,225.62814 -0.77911,2.884 -10.952172,-2.84 -0.666794,0.03 -0.909263,0.208 -2.433618,1.134 -1.269403,0.633 -0.836166,0.434 -0.836166,0.627 -0.153327,0.162 -0.135498,0.353 -0.153327,0.225 -1.108945,1.1 -0.57765,0.1 -2.41044,-0.811 -0.185418,-0.09 -0.852212,-0.729 1.198088,-4.388 0.465329,-0.74 1.567143,-1.086 1.469085,-0.772 0.957401,-0.103 0.418974,0.06 0.481375,0.232 0.240688,-0.28 0.401146,-0.103 2.893597,0.231 2.266028,-0.563 0.05705,-0.07 0.256733,-0.22 0.609742,-0.296 0.274562,-0.04 1.269403,0.408 0.361923,0.451 0.128366,1.084 0.376186,0.443 0.226424,0.128 8.340266,2.202\"},\"06091\":{\"name\":\"Sierra, CA\",\"path\":\"m 88.467753,216.75814 1.647372,-1.048 0.226424,-0.833 0.456415,-0.323 0.836166,-0.24 3.262652,2.556 3.544345,0.883 5.086533,1.351 2.56376,0.312 -1.64024,6.212 -8.340264,-2.202 -0.226424,-0.128 -0.376186,-0.443 -0.128366,-1.084 -0.361923,-0.451 -1.269403,-0.408 -0.274562,0.04 -0.609742,0.296 -0.256733,0.22 -0.05705,0.07 -2.266028,0.563 -2.893597,-0.231 -0.401146,0.103 -0.240688,0.28 1.718687,-5.493\"},\"06115\":{\"name\":\"Yuba, CA\",\"path\":\"m 87.071766,217.39314 1.395987,-0.635 -1.718687,5.493 -0.481375,-0.232 -0.418974,-0.06 -0.957401,0.103 -1.469085,0.772 -1.567143,1.086 -0.465329,0.74 -1.198088,4.388 -2.545938,0.208 -0.755937,-0.235 -0.386883,0.01 -1.203437,0.167 -0.427889,0.337 -0.247819,0.266 -0.02496,-2.393 0.796943,-4.767 0.103406,-0.344 0.304871,-0.646 0.112321,-0.06 2.233936,0.123 1.775738,-0.128 0.698885,-0.355 2.061762,-2.79765 2.961857,-0.0974 1.423239,-0.93598\"},\"06101\":{\"name\":\"Sutter, CA\",\"path\":\"m 75.916349,221.58414 -0.112321,0.06 -0.304871,0.646 -0.103406,0.344 -0.796943,4.767 0.02496,2.393 0.247819,-0.266 0.427889,-0.337 1.203437,-0.167 0.386883,-0.01 0.755937,0.235 -0.418975,1.575 -0.948487,-0.25 -1.429861,4.213 -2.025341,-0.588 -2.8205,-5.329 0.675708,-1.341 -0.609742,-2.733 -0.517032,-1.059 0.169373,-1.109 1.406684,-2.571 4.788789,1.524\"},\"06011\":{\"name\":\"Colusa, CA\",\"path\":\"m 71.940549,218.36614 -0.812989,1.694 -1.406684,2.571 -0.169373,1.109 0.517032,1.059 0.609742,2.733 -0.675708,1.341 -8.62909,-2.418 -0.852212,-1.013 -0.08023,-0.183 -0.611525,-2.332 0.06418,-1.614 0.653121,-1.91121 -2.355762,-0.99779 -0.618656,-0.619 -0.973447,-1.446 -0.144412,-0.692 0.353008,-0.595 0.707799,-0.769 10.17762,2.86218 0.320641,-0.75373 2.226724,0.67583 -0.261774,0.64936 1.96199,0.64936\"},\"06033\":{\"name\":\"Lake, CA\",\"path\":\"m 57.515348,214.28314 -0.707799,0.769 -0.353008,0.595 0.144412,0.692 0.973447,1.446 0.618656,0.619 2.355762,0.99779 -0.653121,1.91121 -0.06418,1.614 0.611525,2.332 0.08023,0.183 0.852212,1.013 -1.317541,1.068 0.07132,1.159 -0.199682,0.305 -2.059215,1.743 -3.045141,0.04 -2.144793,-5.032 -1.461953,-1.66 -0.442152,-0.709 -0.98771,-2.594 -0.297739,-1.318 0.03922,-0.194 0.09627,-0.328 0.394014,-0.925 0.394014,-0.74 0.763069,-0.234 0.747022,-0.834 0.153327,-0.963 -0.09627,-3.161 0.19255,-0.64 0.137281,-0.348 0.497421,-1.086 0.738108,-0.151 1.488696,0.492 0.866475,-0.05 0.306654,-0.786 0.103406,-0.332 2.538807,0.726 -0.586564,2.273 -0.199682,0.633 -0.547341,1.474\"},\"06007\":{\"name\":\"Butte, CA\",\"path\":\"m 71.876365,208.38414 -0.226424,-0.394 0.105189,-0.669 0.714931,-0.818 4.041766,1.091 0.499204,0.03 0.536644,-0.282 0.137281,-0.415 0.137281,-0.277 0.263864,-0.279 0.739891,-0.541 3.109326,-1.927 0.861126,0.234 1.10003,-0.209 0.215728,-0.128 0.24247,-0.466 0.536644,0.152 0.210379,1.091 0.02318,0.549 -0.08736,0.314 -0.376185,0.376 -1.431645,4.147 2.529893,4.605 1.312192,2.821 -1.423239,0.93598 -2.961857,0.0974 -2.061762,2.79765 -0.698885,0.355 -1.775738,0.128 -2.233936,-0.123 -4.788789,-1.524 0.812989,-1.694 1.494045,-3.168 -2.055475,-0.53571 1.372639,-4.14829 -0.87539,-2.129\"},\"06021\":{\"name\":\"Glenn, CA\",\"path\":\"m 56.841423,204.06914 15.034942,4.315 0.87539,2.129 -1.372639,4.14829 2.055475,0.53571 -1.494045,3.168 -1.961991,-0.64936 0.261774,-0.64936 -2.226724,-0.67583 -0.320641,0.75373 -10.177619,-2.86218 0.547341,-1.474 0.199682,-0.633 0.586564,-2.273 -2.538807,-0.726 0.531295,-5.108\"},\"06063\":{\"name\":\"Plumas, CA\",\"path\":\"m 85.133786,196.49014 2.845461,0.788 4.475003,1.188 -1.148168,4.252 0.208596,0.572 1.647371,1.469 0.634702,0.17 0.36014,-0.08 0.146195,-0.537 1.743647,-1.398 0.616873,-0.185 0.643616,0.169 2.957778,2.216 3.90449,4.58 0.4992,0.653 0.85935,3.726 -0.0161,0.701 -0.16937,0.649 -0.85935,2.542 -0.95561,1.141 -5.086533,-1.351 -3.544345,-0.883 -3.262652,-2.556 -0.836166,0.24 -0.456415,0.323 -0.226424,0.833 -1.647372,1.048 -1.395987,0.635 -1.312192,-2.821 -2.529893,-4.605 1.431645,-4.147 0.376185,-0.376 0.08736,-0.314 -0.02318,-0.549 -0.210379,-1.091 -0.536644,-0.152 1.519005,-1.037 0.06418,-0.06 0.128366,-0.202 0.529513,-1.583 -0.208596,-1.079 -0.151544,-0.03 -1.198089,-0.582 -0.05705,-0.06 -0.06418,-0.224 0.0071,-0.154 0.121235,-1.535 0.08914,-0.305\"},\"06103\":{\"name\":\"Tehama, CA\",\"path\":\"m 85.133786,196.49014 -0.08914,0.305 -0.121235,1.535 -0.0071,0.154 0.06418,0.224 0.05705,0.06 1.198089,0.582 0.151544,0.03 0.208596,1.079 -0.529513,1.583 -0.128366,0.202 -0.06418,0.06 -1.519005,1.037 -0.24247,0.466 -0.215728,0.128 -1.10003,0.209 -0.861126,-0.234 -3.109326,1.927 -0.739891,0.541 -0.263864,0.279 -0.137281,0.277 -0.137281,0.415 -0.536644,0.282 -0.499204,-0.03 -4.041766,-1.091 -0.714931,0.818 -0.105189,0.669 0.226424,0.394 -15.034942,-4.315 -0.0731,-0.114 0,-1.034 0.522381,-1.062 0.618655,-0.362 0.185419,-0.419 0.05527,-0.746 -0.08023,-0.246 -0.05527,-0.429 0.377968,-3.142 0.328048,-1.159 0.08914,-0.08 0.21751,-1.027 0.01426,-0.237 -0.08736,-0.198 -1.085768,-1.235 1.479782,-0.171 2.410441,-0.06 1.927282,0.02 4.043549,0.548 1.091116,0.74 1.663418,0.531 0.588347,0.157 2.21789,0.148 1.654504,-0.06 1.486913,0.08 2.756317,0.392 2.442532,0.485 3.503339,1.091\"},\"06045\":{\"name\":\"Mendocino, CA\",\"path\":\"m 39.934468,194.13714 8.042526,2.401 -0.16759,0.548 10.260417,3 0.08023,0.246 -0.05527,0.746 -0.185419,0.419 -0.618655,0.362 -0.522381,1.062 0,1.034 0.0731,0.114 -0.531295,5.108 -0.103406,0.332 -0.306654,0.786 -0.866475,0.05 -1.488696,-0.492 -0.738108,0.151 -0.497421,1.086 -0.137281,0.348 -0.19255,0.64 0.09627,3.161 -0.153327,0.963 -0.747022,0.834 -0.763069,0.234 -0.394014,0.74 -0.394014,0.925 -0.09627,0.328 -0.03922,0.194 0.297739,1.318 0.98771,2.594 0.442152,0.709 1.461953,1.66 -5.382961,-1.59095 -0.394589,1.04963 -4.041797,-1.22568 -0.353981,0.76632 -2.515357,-0.74632 -0.82012,-1.469 -1.228398,-2.656 0.980579,-10.122 0.05527,-0.394 0.03922,-0.178 0.331614,-0.825 0.3851,-0.845 0.401145,-0.585 0.224642,-0.332 0.306653,-0.319 0.112321,-0.153 0.06418,-0.09 0.01604,-0.02 0.401146,-0.619 0.03209,-0.16 0.345877,-2.313 0.05527,-0.572 -0.0071,-3.582 -0.01605,-0.06 -0.771982,-2.055 -0.424323,-1.109 -0.538427,-1.398\"},\"06023\":{\"name\":\"Humboldt, CA\",\"path\":\"m 55.192269,165.32914 2.636864,0.779 0.320917,0.459 -0.128367,4.491 -0.281693,0.274 -0.295957,0.401 -0.531295,1.052 -0.03209,0.749 0.08736,0.152 -0.08736,1.117 -1.260489,1.286 -0.556255,0.49 -1.855968,1.494 -0.52238,2.66 -4.70856,15.805 -8.042526,-2.401 -0.386883,-0.681 -3.414196,-6.518 -0.105189,-0.289 0.433237,-4.163 0.05705,-0.105 1.461953,-2.106 1.028716,-1.326 0.394015,-0.442 0.707799,-0.755 1.051893,-1.021 1.237312,-1.318 0.684622,-0.722 0.520598,-0.627 0.684622,-0.988 0.74524,-1.311 0.363705,-0.836 -0.08914,-0.513 2.160838,-5.135 1.633109,-3.785 2.955998,0.867 1.880928,0.611 -0.354791,1.189 0.666793,0.892 0.939573,0.274\"},\"06105\":{\"name\":\"Trinity, CA\",\"path\":\"m 58.021683,171.05814 0.82012,0.659 0.788029,0.763 1.269403,1.905 2.314165,2.442 1.349633,0.685 0.329831,0.05 0.3851,-0.305 0.208596,-0.371 -0.153327,-1.068 2.515629,-2.605 3.608529,-1.421 2.032472,1.254 -0.417192,2.337 0.338745,0.241 0.279911,0.305 0.04814,0.217 -0.249601,0.909 -0.119453,0.202 -0.160458,0.232 -1.937979,1.72 -0.634702,0.232 -0.112321,0.02 -4.612284,5.609 -2.957782,3.73 -2.747402,1.269 -2.089524,1.696 -0.249602,0.82 1.085768,1.235 0.08736,0.198 -0.01426,0.237 -0.21751,1.027 -0.08914,0.08 -0.328048,1.159 -0.377968,3.142 0.05527,0.429 -10.260417,-3 0.16759,-0.548 4.70856,-15.805 0.52238,-2.66 1.855968,-1.494 0.556255,-0.49 1.260489,-1.286 0.08736,-1.117 -0.08736,-0.152 0.03209,-0.749 0.531295,-1.052 0.295957,-0.401 0.281693,-0.274\"},\"06089\":{\"name\":\"Shasta, CA\",\"path\":\"m 90.509139,180.25214 1.904105,0.504 -1.59032,5.875 -0.03209,0.772 -2.144792,7.763 -0.666793,2.112 -2.845461,-0.788 -3.503339,-1.091 -2.442532,-0.485 -2.756317,-0.392 -1.486913,-0.08 -1.654504,0.06 -2.21789,-0.148 -0.588347,-0.157 -1.663418,-0.531 -1.091116,-0.74 -4.043549,-0.548 -1.927282,-0.02 -2.410441,0.06 -1.479782,0.171 0.249602,-0.82 2.089524,-1.696 2.747402,-1.269 2.957782,-3.73 4.612284,-5.609 0.112321,-0.02 0.634702,-0.232 1.937979,-1.72 0.160458,-0.232 0.119453,-0.202 0.249601,-0.909 -0.04814,-0.217 -0.279911,-0.305 -0.338745,-0.241 3.471248,0.933 4.765611,1.381 9.199609,2.557\"},\"06035\":{\"name\":\"Lassen, CA\",\"path\":\"m 114.5761,186.64014 -1.83279,7.135 -2.06456,8.221 -1.03585,4.008 -0.32983,1.294 -0.009,0.02 -1.12499,4.277 -1.73473,6.508 -0.35301,1.31 -2.56376,-0.312 0.95561,-1.141 0.85935,-2.542 0.16937,-0.649 0.0161,-0.701 -0.85935,-3.726 -0.4992,-0.653 -3.90449,-4.58 -2.957778,-2.216 -0.643616,-0.169 -0.616873,0.185 -1.743647,1.398 -0.146195,0.537 -0.36014,0.08 -0.634702,-0.17 -1.647371,-1.469 -0.208596,-0.572 1.148168,-4.252 -4.475003,-1.188 0.666793,-2.112 2.144792,-7.763 0.03209,-0.772 1.59032,-5.875 22.162858,5.884\"},\"06049\":{\"name\":\"Modoc, CA\",\"path\":\"m 95.476215,162.08314 9.304795,2.603 3.05406,0.82 0.0232,0 6.0261,1.599 0.65074,0.168 4.74244,1.198 -4.70143,18.16 -22.162856,-5.883 -1.904105,-0.505 1.502959,-5.489 2.089524,-7.763 -0.08023,-0.05 -0.02496,-0.07 0.877172,-3.231 0.158675,-0.554 0.443935,-1.013\"},\"08083\":{\"name\":\"Montezuma, CO\",\"path\":\"m 307.43805,307.04414 -0.78802,0.692 -1.28549,3.33789 -2.82046,1.98711 -0.13728,0.193 -1.53506,2.525 -2.42648,4.371 -0.24069,0.66 -12.02902,-1.608 1.57427,-11.154 2.72423,-3.059 10.8969,1.444 2.05743,0.226 1.56714,0.09 2.44253,0.297\"},\"08067\":{\"name\":\"La Plata, CO\",\"path\":\"m 307.43805,307.04414 8.78242,1.084 -1.77574,14.714 -16.24016,-2.032 0.24069,-0.66 2.42648,-4.371 1.53506,-2.525 0.13728,-0.193 2.82046,-1.98711 1.28549,-3.33789 0.78802,-0.692\"},\"08099\":{\"name\":\"Prowers, CO\",\"path\":\"m 402.52207,301.82914 12.48009,0.796 -0.009,0.144 -0.72385,12.125 -0.12836,2.177 -12.73504,-0.843 0.28882,-4.145 0.12837,0 0.0321,-0.33 0.66679,-9.924\"},\"08011\":{\"name\":\"Bent, CO\",\"path\":\"m 402.52207,301.82914 -0.66679,9.924 -0.0321,0.33 -0.12837,0 -0.28882,4.145 -5.9227,-0.426 -5.91378,-0.45 1.19631,-14.368 11.75624,0.845\"},\"08061\":{\"name\":\"Kiowa, CO\",\"path\":\"m 395.43517,293.27914 1.96828,0.09 8.01935,0.622 4.39478,0.248 5.682,0.376 -0.49742,8.013 -12.48009,-0.796 -11.75624,-0.845 -1.81675,-0.128 0.40293,-5.818 0.76307,-0.103 3.77612,0.289 1.39064,0.07 0.15333,-2.016\"},\"08017\":{\"name\":\"Cheyenne, CO\",\"path\":\"m 416.11824,284.62614 -0.49029,8.084 -0.12837,1.902 -5.682,-0.376 -4.39478,-0.248 -8.01935,-0.622 -1.96828,-0.09 0.91639,-9.811 1.97542,0.1 5.92983,0.449 3.81712,0.2 2.60477,0.08 5.43954,0.331\"},\"08063\":{\"name\":\"Kit Carson, CO\",\"path\":\"m 397.4195,271.26714 6.17943,0.403 13.23424,0.758 -0.007,0.134 -0.59548,10.069 -0.11232,1.995 -5.43954,-0.331 -2.60477,-0.08 -3.81712,-0.2 -5.92983,-0.449 -1.97542,-0.1 0.15154,-2.042 0.41898,-3.689 0.49742,-6.47\"},\"08125\":{\"name\":\"Yuma, CO\",\"path\":\"m 407.4321,251.72014 10.6473,0.683 -0.13728,2.097 -0.50634,8.001 -0.60261,9.927 -13.23424,-0.758 0.52238,-6.899 0.18363,-3.136 0.74881,-8.059 0.3851,-1.995 1.99325,0.139\"},\"08121\":{\"name\":\"Washington, CO\",\"path\":\"m 388.56398,260.45414 4.07386,0.323 0.27456,-3.819 0.37619,-4.225 0.25673,-1.994 11.89353,0.842 -0.3851,1.995 -0.74881,8.059 -0.18363,3.136 -0.52238,6.899 -6.17943,-0.403 -9.69881,-0.768 0.84329,-10.045\"},\"08095\":{\"name\":\"Phillips, CO\",\"path\":\"m 418.54473,245.24114 -0.0802,1.207 -0.3851,5.955 -10.6473,-0.683 0.74702,-7.162 10.36561,0.683\"},\"08115\":{\"name\":\"Sedgwick, CO\",\"path\":\"m 409.10443,238.74314 9.80222,0.656 -0.36192,5.842 -10.36561,-0.683 0.36905,-5.848 0.55626,0.03\"},\"08075\":{\"name\":\"Logan, CO\",\"path\":\"m 392.69489,237.53714 3.30188,0.255 12.5514,0.918 -0.36905,5.848 -0.74702,7.162 -1.99325,-0.139 -11.89353,-0.842 0.1722,-1.97612 -2.02816,-0.19488 0.35479,-4.12 0.1034,0 0.5313,-6.379 0.016,-0.539\"},\"08087\":{\"name\":\"Morgan, CO\",\"path\":\"m 388.56398,260.45414 -7.7537,-0.643 1.08399,-12.077 5.62495,0.483 2.1858,0.223 1.98434,0.128 2.02816,0.19488 -0.1722,1.97612 -0.25673,1.994 -0.37619,4.225 -0.27456,3.819 -4.07386,-0.323\"},\"08009\":{\"name\":\"Baca, CO\",\"path\":\"m 395.4833,315.80214 5.9227,0.426 12.73504,0.843 -0.3851,5.898 -0.58657,9.162 -5.69627,-0.401 -9.45099,-0.779 -2.30703,-0.178 -1.52614,-0.113 0.20146,-2.892 0.52238,-5.921 0.14442,0 0.4261,-6.053\"},\"08089\":{\"name\":\"Otero, CO\",\"path\":\"m 390.76583,300.98414 -1.19631,14.368 -11.7812,-0.971 0.12837,-2.099 0.85934,-9.506 0.43502,0.169 1.69551,0.507 1.83992,0.433 3.81712,0.307 0.16257,-1.31677 1.91091,0.10377 0.312,-2.123 1.81675,0.128\"},\"08025\":{\"name\":\"Crowley, CO\",\"path\":\"m 379.58902,294.09914 9.76299,0.939 -0.40293,5.818 -0.312,2.123 -1.91091,-0.10377 -0.16257,1.31677 -3.81712,-0.307 -1.83992,-0.433 -1.69551,-0.507 -0.43502,-0.169 0.81299,-8.677\"},\"08073\":{\"name\":\"Lincoln, CO\",\"path\":\"m 397.4195,271.26714 -0.49742,6.47 -0.41898,3.689 -0.15154,2.042 -0.91639,9.811 -0.15333,2.016 -1.39064,-0.07 -3.77612,-0.289 -0.76307,0.103 -9.76299,-0.939 0.65075,-8.003 5.94587,0.538 0.57051,-6.01 0.83617,-10.141 0.12837,0.02 9.69881,0.768\"},\"08039\":{\"name\":\"Elbert, CO\",\"path\":\"m 380.23977,286.09614 0.57764,-5.989 -10.78279,-0.979 0.96453,-10.062 16.59317,1.417 -0.83617,10.141 -0.57051,6.01 -5.94587,-0.538\"},\"08005\":{\"name\":\"Arapahoe, CO\",\"path\":\"m 367.42678,264.65914 1.48285,0.149 1.15708,0.114 4.61228,0.474 9.65068,0.762 3.72798,0.331 -0.33696,4.01 -0.12837,-0.02 -16.59317,-1.417 -6.807,-0.64 0.041,-1.288 0.0232,-0.199 0,-0.03 0.0178,0 2.94709,0.02 0.3227,-0.715 -0.12837,-1.197 0.0182,-0.199\"},\"08123\":{\"name\":\"Weld, CO\",\"path\":\"m 384.46695,236.86314 8.22794,0.674 -0.016,0.539 -0.5313,6.379 -0.1034,0 -0.35479,4.12 -1.98434,-0.128 -2.1858,-0.223 -5.62495,-0.483 -1.08399,12.077 -14.42691,-1.305 0.0705,-0.565 -0.73478,-0.07 -0.101,0.569 -0.5327,-0.04 0.52951,-6.051 0.16938,-2.01 1.92015,0.179 0.21572,-2.026 1.2391,-12.931 15.30772,1.296\"},\"08001\":{\"name\":\"Adams, CO\",\"path\":\"m 365.97634,258.48814 14.83394,1.323 7.7537,0.643 -0.50633,6.035 -3.72798,-0.331 -9.65068,-0.762 -4.61228,-0.474 -1.15708,-0.114 -1.48061,-0.164 0.62854,-0.77599 1.93097,0.15431 0.3733,-1.22638 2.03,0.14629 0.41642,-1.75892 -2.13827,-0.15652 -1.57957,1.94186 -1.71911,0.36035 -2.76196,-0.11 0.27457,-2.837 0.53719,-0.255 0.16977,-1.21 0.31674,0.04\"},\"08031\":{\"name\":\"Denver, CO\",\"path\":\"m 364.60934,263.21814 2.75413,0.128 1.72913,-0.36585 1.58958,-1.94736 2.12443,0.16652 -0.43771,1.72992 -2.00833,-0.14629 -0.37018,1.22438 -1.92941,-0.15531 -0.62698,0.77499 -0.0184,0.386 0.12837,1.197 -0.3227,0.715 -2.94709,-0.02 0.0713,-0.844 0.0321,-0.331 0.23177,-2.514\"},\"08035\":{\"name\":\"Douglas, CO\",\"path\":\"m 364.19215,268.42614 6.807,0.64 -0.96453,10.062 -6.53244,-0.619 -5.20776,-0.497 5.89773,-9.586\"},\"08041\":{\"name\":\"El Paso, CO\",\"path\":\"m 380.23977,286.09614 -0.65075,8.003 -15.79801,-1.352 0.27278,-3.004 0.19255,-1.397 0.18541,-1.41153 -2.06327,-0.28508 0.017,-1.3252 0.72426,0.0478 -0.10783,-0.82594 0.3851,-3.713 0.10519,-2.324 6.53244,0.619 10.78279,0.979 -0.57764,5.989\"},\"08119\":{\"name\":\"Teller, CO\",\"path\":\"m 358.27124,278.01214 0.0232,0 5.20776,0.497 -0.10519,2.324 -0.3851,3.713 0.10784,0.82594 -0.72427,-0.0478 -0.017,1.3252 2.06327,0.28508 -0.18541,1.41153 -0.19255,1.397 -2.98096,-0.231 -2.31417,-0.227 0.0553,-0.554 -0.74702,-0.66 -0.7702,-0.09 0.96453,-9.972\"},\"08101\":{\"name\":\"Pueblo, CO\",\"path\":\"m 363.79101,292.74714 15.79801,1.352 -0.81299,8.677 -0.85934,9.506 -5.04553,-2.362 -5.13466,-2.394 -6.15625,-0.161 -0.73811,-0.57 -0.30665,-0.291 0.76485,-7.898 1.94333,0.176 0.54734,-6.035\"},\"08071\":{\"name\":\"Las Animas, CO\",\"path\":\"m 372.87116,309.92014 5.04553,2.362 -0.12837,2.099 11.7812,0.971 5.91378,0.45 -0.4261,6.053 -0.14442,0 -0.52238,5.921 -0.20146,2.892 -16.75363,-1.246 -13.16115,-1.1 -4.8708,-0.448 -2.80445,-0.315 0.68284,-6.871 0.69888,0 6.87118,-1.936 0.77912,-0.619 3.26265,-3.719 2.16975,-3.208 1.80783,-1.278\"},\"08055\":{\"name\":\"Huerfano, CO\",\"path\":\"m 352.90302,306.21514 0.96453,0.243 0.0963,-0.02 2.09665,-0.548 2.80446,-1.333 1.67055,1.943 0.30665,0.291 0.73811,0.57 6.15625,0.161 5.13466,2.394 -1.80783,1.278 -2.16975,3.208 -3.26265,3.719 -0.77912,0.618 -6.87118,1.937 -0.69888,0 0.61865,-2.707 -0.66679,-4.646 -1.68659,-1.205 -0.11232,-0.02 -1.27832,0.232 -1.35142,0.49 -0.85934,0.708 0.90926,-3.955 0.0481,-3.359\"},\"08023\":{\"name\":\"Costilla, CO\",\"path\":\"m 346.78778,318.14814 5.15784,-4.619 0.85934,-0.708 1.35142,-0.49 1.27832,-0.232 0.11232,0.02 1.68659,1.205 0.66679,4.646 -0.61865,2.707 -0.68284,6.871 -1.18917,-0.114 -9.03202,-0.915 -0.7078,-0.788 -0.10341,-0.248 -0.025,-0.21 0.1141,-0.465 0.50456,-0.869 0.36192,-1.139 0.4261,-2.772 -0.16045,-1.883\"},\"08021\":{\"name\":\"Conejos, CO\",\"path\":\"m 341.54792,316.58114 -0.11567,1.00235 5.35553,0.56465 0.16045,1.883 -0.4261,2.772 -0.36192,1.139 -0.50456,0.869 -0.1141,0.465 0.025,0.21 0.10341,0.248 0.7078,0.788 -5.22381,-0.538 -8.51677,-0.876 -0.17651,-0.522 -2.37121,-4.951 -0.50634,-0.353 0.4582,-4.026 11.50664,1.325\"},\"08003\":{\"name\":\"Alamosa, CO\",\"path\":\"m 352.85488,309.57414 -0.90926,3.955 -5.15784,4.619 -5.35553,-0.56465 0.11567,-1.00235 0.85935,-8.012 10.44761,1.005\"},\"08105\":{\"name\":\"Rio Grande, CO\",\"path\":\"m 330.88458,305.28614 1.9041,0.23 -0.20859,1.994 9.82718,1.059 -0.85935,8.012 -11.50664,-1.325 -0.58656,-0.08 0.30487,-2.717 0.64361,-3.245 0.48138,-3.928\"},\"08027\":{\"name\":\"Custer, CO\",\"path\":\"m 347.98408,297.11214 4.45183,0.472 3.66558,0.492 5.19885,0.53 -0.76485,7.898 -1.67055,-1.943 -2.80446,1.333 -2.09665,0.548 -0.0963,0.02 -0.96453,-0.243 -0.46711,-0.699 -1.64559,-2.699 -0.93244,-2.724 -0.24247,-0.506 -1.63133,-2.475\"},\"08043\":{\"name\":\"Fremont, CO\",\"path\":\"m 357.30671,287.98414 0.7702,0.09 0.74702,0.66 -0.0553,0.554 2.31417,0.227 2.98096,0.231 -0.82012,9.039 -1.94333,-0.176 -5.19885,-0.53 -3.66558,-0.492 -4.45183,-0.472 -3.36606,-4.58 1.99147,-1.382 0.52416,-1.052 0.2086,-0.87 0.007,-0.112 -0.0874,-0.328 -0.52238,-1.407 -0.0571,-0.07 -0.32092,-0.225 -0.41897,-0.169 4.13091,0.401 5.11862,0.449 2.11448,0.218\"},\"08109\":{\"name\":\"Saguache, CO\",\"path\":\"m 340.35875,292.63014 4.25927,-0.1 3.36606,4.58 1.63133,2.475 0.24247,0.506 0.93244,2.724 1.64559,2.699 0.46711,0.699 -0.0481,3.359 -10.44761,-1.005 -9.82718,-1.059 0.20859,-1.994 -1.9041,-0.23 -0.11946,-0.943 -2.93282,-2.353 -0.19255,-0.153 -1.29436,-0.337 -0.55447,0.281 -0.0802,0.09 0.50633,-4.396 0.75594,-6.413 13.38579,1.569\"},\"08015\":{\"name\":\"Chaffee, CO\",\"path\":\"m 336.10839,277.35214 6.81412,0.788 0.0963,0.443 1.00376,2.351 0.72384,0.291 0.0891,0 0.0945,-0.104 0.0499,-0.105 0.11945,-0.03 0.41897,0.06 0.97167,0.923 0.29774,0.603 0.2496,2.209 -0.61866,1.63 -0.47602,0.492 0.41897,0.169 0.32092,0.225 0.0571,0.07 0.52238,1.407 0.0874,0.328 -0.007,0.112 -0.2086,0.87 -0.52416,1.052 -1.99147,1.382 -4.25927,0.1 -1.29437,-1.796 -1.37281,-3.822 -0.0963,-0.843 0.61687,-2.774 0.16224,-0.345 0.0802,-0.05 0.0802,-0.05 1.51681,-1.57021 -2.46388,-0.376 -2.01075,-2.31979 0.5313,-1.336\"},\"08051\":{\"name\":\"Gunnison, CO\",\"path\":\"m 322.27866,271.11614 0.15333,1.358 0.33696,0.644 1.0929,1.4 3.56752,0.415 0.24248,0.03 1.08398,1.276 -0.0161,0.443 0.31379,0.538 1.06081,0.972 1.38885,0.506 0.45107,0.04 0.33696,-0.169 0.69175,-0.837 0.0945,-0.37 0.83616,-0.207 0.12124,0.02 1.54218,1.512 2.01075,2.31979 2.46388,0.376 -1.51681,1.57021 -0.16046,0.1 -0.16224,0.345 -0.61687,2.774 0.0963,0.843 1.37281,3.822 1.29437,1.796 -13.38579,-1.569 -0.75594,6.413 -10.11778,-1.214 -0.74703,-3.705 2.40331,0.298 1.01267,-8.439 1.53327,-12.637 1.9772,-0.661\"},\"08097\":{\"name\":\"Pitkin, CO\",\"path\":\"m 327.5096,269.18114 12.03794,1.462 -3.43915,6.709 -0.5313,1.336 -1.54218,-1.512 -0.12124,-0.02 -0.83616,0.207 -0.0945,0.37 -0.69175,0.837 -0.33696,0.169 -0.45107,-0.04 -1.38885,-0.506 -1.06081,-0.972 -0.31379,-0.538 0.0161,-0.443 -1.08398,-1.276 -0.24248,-0.03 -3.56752,-0.415 -1.0929,-1.4 -0.33696,-0.644 -0.15333,-1.358 -0.33696,-2.601 5.5679,0.666\"},\"08065\":{\"name\":\"Lake, CO\",\"path\":\"m 343.4449,270.65914 1.25335,0.138 -0.34587,0.36 -0.67393,1.164 -0.12837,0.692 -0.0891,1.599 -0.016,1.656 -0.2817,1.405 -0.24069,0.467 -6.81412,-0.788 3.43915,-6.709 3.89736,0.02\"},\"08093\":{\"name\":\"Park, CO\",\"path\":\"m 358.06086,267.82314 -0.98058,10.068 1.19096,0.121 -0.96453,9.972 -2.11448,-0.218 -5.11862,-0.449 -4.13091,-0.401 0.47602,-0.492 0.61866,-1.63 -0.2496,-2.209 -0.29774,-0.603 -0.97167,-0.923 -0.41897,-0.06 -0.11945,0.03 -0.0499,0.105 -0.0945,0.104 -0.0891,0 -0.72384,-0.291 -1.00376,-2.351 -0.0963,-0.443 0.24069,-0.467 0.2817,-1.405 0.016,-1.656 0.0891,-1.599 0.12837,-0.692 0.67393,-1.164 0.34587,-0.36 2.04139,0.529 3.07723,-3.109 0.69176,-1.134 7.55223,0.74\"},\"08059\":{\"name\":\"Jefferson, CO\",\"path\":\"m 364.88391,260.38114 -0.13728,1.419 -0.13729,1.418 -0.23177,2.514 -0.0321,0.331 -0.0713,0.844 -0.0178,0 0,0.03 -0.0232,0.199 -0.041,1.288 -5.89773,9.586 -0.0232,0 -1.19096,-0.121 0.98058,-10.068 0.42611,-4.17 0.38688,-3.828 4.96522,0.481 -0.0573,0.211 0.67182,0.07\"},\"08047\":{\"name\":\"Gilpin, CO\",\"path\":\"m 354.06723,258.88514 3.05406,0.316 1.10895,0 0.68283,0.112 -0.0392,0.505 -0.38688,3.828 -2.53881,-1.045 -0.46711,-0.62 -0.85043,-0.883 -1.00554,-0.387 0.44215,-1.833\"},\"08019\":{\"name\":\"Clear Creek, CO\",\"path\":\"m 353.62508,260.71814 1.00554,0.387 0.85043,0.883 0.46711,0.62 2.53881,1.045 -0.42611,4.17 -7.55223,-0.74 1.03584,-0.829 0.0161,-0.127 -0.0802,-0.46 -0.16759,-0.167 -0.41897,0.03 -1.56715,-0.829 -0.24782,-0.287 0.0945,-0.589 0.34587,-0.593 1.64024,-1.214 1.0519,-0.113 0.39401,-0.167 0.8843,-0.724 0.1355,-0.291\"},\"08117\":{\"name\":\"Summit, CO\",\"path\":\"m 340.83299,257.65714 0.68284,0.09 2.82941,1.031 1.67947,1.382 0.62579,0.891 0.18541,1.013 0.0571,0.925 0.47424,0.866 0.51347,0.177 0.90035,-0.02 0.39223,-0.193 -0.0945,0.589 0.24782,0.287 1.56715,0.829 0.41897,-0.03 0.16759,0.167 0.0802,0.46 -0.0161,0.127 -1.03584,0.829 -0.69176,1.134 -3.07723,3.109 -2.04139,-0.529 -1.25335,-0.138 -0.50634,-3.351 1.79184,-1.28945 -3.41382,-3.83018 -0.52281,-2.65237 -0.0892,-0.681 0.12837,-1.198\"},\"08037\":{\"name\":\"Eagle, CO\",\"path\":\"m 337.49011,257.28814 3.34288,0.369 -0.12837,1.198 0.0892,0.681 0.52281,2.65237 3.41382,3.83018 -1.79184,1.28945 0.50634,3.351 -3.89736,-0.02 -12.03794,-1.462 1.48692,-12.736 1.43164,0.178 7.06195,0.665\"},\"08013\":{\"name\":\"Boulder, CO\",\"path\":\"m 354.06723,258.88514 1.166,-7.513 1.76683,0.156 2.57981,0.344 6.03501,0.483 -0.52951,6.051 -0.14855,1.298 -0.61468,-0.06 -0.45916,0.654 -4.98913,-0.469 0.0392,-0.505 -0.68283,-0.112 -1.10895,0 -3.05406,-0.316\"},\"08049\":{\"name\":\"Grand, CO\",\"path\":\"m 337.49011,257.28814 0.20146,-1.728 0.77912,-7.875 -0.0731,-2.426 0.54021,1.501 0.1355,0.186 2.68322,0.989 3.62457,0.915 0.72385,0.02 3.81712,-0.186 1.28545,-0.964 1.06794,-1.92 2.95778,5.567 -1.166,7.513 -0.44215,1.833 -0.1355,0.291 -0.8843,0.724 -0.39401,0.167 -1.0519,0.113 -1.64024,1.214 -0.34587,0.593 -0.39223,0.193 -0.90035,0.02 -0.51347,-0.177 -0.47424,-0.866 -0.0571,-0.925 -0.18541,-1.013 -0.62579,-0.891 -1.67947,-1.382 -2.82941,-1.031 -0.68284,-0.09 -3.34288,-0.369\"},\"08069\":{\"name\":\"Larimer, CO\",\"path\":\"m 347.74339,233.40614 15.68569,1.607 5.73015,0.554 -1.2391,12.931 -0.21572,2.026 -1.92015,-0.179 -0.16938,2.01 -6.03501,-0.483 -2.57981,-0.344 -1.76683,-0.156 -2.95778,-5.567 -0.86647,-2.051 -0.65967,-2.979 -0.79516,-2.106 -0.20146,-0.392 -1.67233,-2.797 -0.33697,-2.074\"},\"08057\":{\"name\":\"Jackson, CO\",\"path\":\"m 336.3259,232.02614 9.18356,1.115 2.23393,0.265 0.33697,2.074 1.67233,2.797 0.20146,0.392 0.79516,2.106 0.65967,2.979 0.86647,2.051 -1.06794,1.92 -1.28545,0.964 -3.81712,0.186 -0.72385,-0.02 -3.62457,-0.915 -2.68322,-0.989 -0.1355,-0.186 -0.54021,-1.501 -0.1765,-0.738 -0.32092,-2.45 0.007,-0.838 1.18204,-3.494 0.16046,-0.08 0.29774,-0.289 0.057,-0.305 -0.016,-0.33 -0.36192,-1.003 -0.21038,-0.307 -0.31201,-0.323 -1.19808,-0.665 -0.12837,-0.06 -0.0963,0.07 -0.26564,0.143 -0.81121,-0.769 -0.21751,-0.78 -0.0143,-0.362 0.27278,-0.587 0.0802,-0.07\"},\"08107\":{\"name\":\"Routt, CO\",\"path\":\"m 328.43313,231.09814 7.89277,0.928 -0.0802,0.07 -0.27278,0.587 0.0143,0.361 0.21751,0.781 0.81121,0.769 0.26564,-0.143 0.0963,-0.07 0.12837,0.06 1.19808,0.665 0.31201,0.323 0.21038,0.306 0.36192,1.004 0.016,0.33 -0.057,0.305 -0.29774,0.289 -0.16046,0.08 -1.18204,3.494 -0.007,0.838 0.32092,2.45 0.1765,0.738 0.0731,2.426 -0.77912,7.875 -0.20146,1.728 -7.06195,-0.665 0.36014,-3.988 0.35479,-3.078 -6.96032,-0.788 0.2496,-2.562 0.82012,-4.74 1.13212,-1.127 0.57052,-0.02 0.43502,0.05 0.26387,-2.156 0.77911,-7.111\"},\"08081\":{\"name\":\"Moffat, CO\",\"path\":\"m 318.14062,229.85514 10.29251,1.243 -0.77911,7.111 -0.26387,2.156 -0.43502,-0.05 -0.57052,0.02 -1.13212,1.127 -0.82012,4.74 -0.2496,2.562 -0.007,0.07 -0.13728,-0.01 -4.70856,-0.652 -7.03164,-0.842 -15.99769,-2.155 1.40668,-9.883 1.07685,-7.964 13.66748,1.84 5.68914,0.685\"},\"08103\":{\"name\":\"Rio Blanco, CO\",\"path\":\"m 324.18277,248.76914 6.96032,0.788 -0.35479,3.078 -4.85297,-0.553 -0.28882,2.081 -0.22465,1.959 -1.73451,-0.28447 -0.47625,2.03847 -5.15071,-0.629 -3.67984,-0.387 -0.37797,3.008 -4.86902,-0.644 -3.96153,-0.151 -1.8918,-0.17966 -0.14959,0.59466 -5.94587,-0.802 -0.0642,-0.25 -2.61191,-0.353 1.79179,-12.906 15.99769,2.155 7.03164,0.842 4.70856,0.652 0.13728,0.01 0.007,-0.07\"},\"08045\":{\"name\":\"Garfield, CO\",\"path\":\"m 330.7883,252.63514 -0.36014,3.988 -1.43164,-0.178 -1.48692,12.736 -5.5679,-0.666 -28.36546,-3.691 0.41898,-3.004 0.51346,-3.737 2.61191,0.353 0.0642,0.25 5.94587,0.802 0.14959,-0.59466 1.8918,0.17966 3.96153,0.151 4.86902,0.644 0.37797,-3.008 3.67984,0.387 5.15071,0.629 0.47625,-2.03847 1.73451,0.28447 0.22465,-1.959 0.28882,-2.081 4.85297,0.553\"},\"08029\":{\"name\":\"Delta, CO\",\"path\":\"m 320.30146,271.77714 -1.53327,12.637 -15.52523,-1.95 0.48138,-3.705 4.00353,-1.17983 3.66281,-3.22417 2.10557,-0.119 1.66341,0.3519 1.66342,-0.4999 0.85935,-0.865 0.58656,-0.378 2.03247,-1.068\"},\"08077\":{\"name\":\"Mesa, CO\",\"path\":\"m 293.57624,264.82414 28.36546,3.691 0.33696,2.601 -1.9772,0.661 -2.03247,1.068 -0.58656,0.378 -0.85935,0.865 -1.66342,0.4999 -1.66341,-0.3519 -2.10557,0.119 -3.66281,3.22417 -4.00353,1.17983 -0.48138,3.705 -0.51347,3.865 -12.05398,-1.622 0.69889,-5.048 0.69175,-4.227 0.12837,-0.884 0.60974,-4.172 0.77198,-5.552\"},\"08085\":{\"name\":\"Montrose, CO\",\"path\":\"m 303.24296,282.46414 15.52523,1.95 -1.01267,8.439 -2.40331,-0.298 0.14442,-0.539 -0.0713,-0.151 -8.82342,-1.104 -0.0232,0.252 0.60974,1.617 1.33359,0.167 0.47424,0.218 0.58657,0.586 0.15332,0.193 -0.14441,1.036 -0.21751,0.474 -0.33696,-0.04 -19.14981,-2.544 0.78803,-8.01 12.05398,1.622 0.51347,-3.865\"},\"08111\":{\"name\":\"San Juan, CO\",\"path\":\"m 312.3873,301.45114 0.22464,0.186 0.41006,0.208 0.0892,0 0.60261,-0.185 0.27278,-0.128 0.24068,-0.218 0.009,-0.06 -0.0571,-0.193 0,-0.121 0.10518,-0.651 1.3015,0.161 0.6347,7.673 -8.78242,-1.084 0.21573,-0.636 0.64362,-0.795 0.98771,-0.184 0.4582,-0.82 0.0802,-0.44 2.56377,-2.718\"},\"08033\":{\"name\":\"Dolores, CO\",\"path\":\"m 309.82353,304.16914 -0.0802,0.44 -0.4582,0.82 -0.98771,0.184 -0.64362,0.795 -0.21573,0.636 -2.44253,-0.297 -1.56714,-0.09 -2.05743,-0.226 -10.8969,-1.444 -2.72423,3.059 1.27654,-9.094 3.95619,0.552 0.0713,-0.192 0.43324,-0.08 9.61145,1.294 0.27278,0.456 0.0963,0.371 0,0.417 0.25674,0.555 2.82228,-0.145 0.78625,-0.233 0.44215,0.169 1.14995,0.926 0.89856,1.125\"},\"08113\":{\"name\":\"San Miguel, CO\",\"path\":\"m 289.88748,292.71714 19.14981,2.544 -0.0161,0.171 0.16938,0.701 1.00491,0.19999 -0.35595,1.97501 0.14441,0.362 0.10519,0.112 0.57052,0.378 0.5937,0.186 0.47424,0.328 0.60261,0.66 0.22642,0.563 -0.0963,0.433 -0.0731,0.121 -2.56377,2.718 -0.89856,-1.125 -1.14995,-0.926 -0.44215,-0.169 -0.78625,0.233 -2.82228,0.145 -0.25674,-0.555 0,-0.417 -0.0963,-0.371 -0.27278,-0.456 -9.61145,-1.294 -0.43324,0.08 -0.0713,0.192 -3.95619,-0.552 0.86112,-6.237\"},\"08091\":{\"name\":\"Ouray, CO\",\"path\":\"m 315.35221,292.55514 0.74703,3.705 -0.11357,1.04875 0.89227,0.81208 -1.14901,1.10792 -0.14316,1.22625 -1.3015,-0.161 -0.10518,0.651 0,0.121 0.0571,0.193 -0.009,0.06 -0.24068,0.218 -0.27278,0.128 -0.60261,0.185 -0.0892,0 -0.41006,-0.208 -0.22464,-0.186 0.0731,-0.121 0.0963,-0.433 -0.22642,-0.563 -0.60261,-0.66 -0.47424,-0.328 -0.5937,-0.186 -0.57052,-0.378 -0.10519,-0.112 -0.14441,-0.362 0.35595,-1.97501 -1.00491,-0.19999 -0.16938,-0.701 0.0161,-0.171 0.33696,0.04 0.21751,-0.474 0.14441,-1.036 -0.15332,-0.193 -0.58657,-0.586 -0.47424,-0.218 -1.33359,-0.167 -0.60974,-1.617 0.0232,-0.252 8.82342,1.104 0.0713,0.151 -0.14442,0.539\"},\"08053\":{\"name\":\"Hinsdale, CO\",\"path\":\"m 316.09924,296.26014 10.11778,1.214 -0.50633,4.396 -1.27832,-0.13 -1.23018,0.241 -0.68106,5.103 -0.025,2.827 -0.51346,3.963 -6.36485,-0.754 0.60261,-4.992 -0.6347,-7.673 0.14316,-1.22625 1.149,-1.10792 -0.89227,-0.81208 0.11358,-1.04875\"},\"08079\":{\"name\":\"Mineral, CO\",\"path\":\"m 325.71069,301.87014 0.0802,-0.09 0.55447,-0.281 1.29436,0.337 0.19255,0.153 2.93282,2.353 0.11946,0.943 -0.48138,3.928 -0.64361,3.245 -0.30487,2.717 -0.0161,0.185 -7.54511,-0.781 0.0892,-0.706 0.51346,-3.963 0.025,-2.827 0.68106,-5.103 1.23018,-0.241 1.27832,0.13\"},\"08007\":{\"name\":\"Archuleta, CO\",\"path\":\"m 315.61786,313.12014 6.36485,0.754 -0.0892,0.706 7.54511,0.781 0.0161,-0.185 0.58656,0.08 -0.4582,4.026 0.50634,0.353 2.37121,4.951 0.17651,0.522 -2.55485,-0.274 -4.58198,-0.505 -2.34447,-0.451 -7.61108,-0.9 -1.10003,-0.136 1.17313,-9.722\"},\"08014\":{\"name\":\"Broomfield, CO\",\"path\":\"m 363.78175,260.50814 0.0777,-0.205 0.46606,-0.656 0.62824,0.07 0.13424,-1.306 0.53655,0.03 0.0987,-0.565 0.71317,0.06 -0.0565,0.572 -0.40949,-0.03 -0.0635,0.465 -0.32477,-0.03 -0.16943,1.215 -0.94604,0.444 -0.68484,-0.06\"},\"09003\":{\"name\":\"Hartford, CT\",\"path\":\"m 910.37792,171.66914 3.17788,-0.74731 0.22757,0.87968 0.82688,-0.25166 0.049,-0.89993 3.97876,-0.93278 0.77198,1.888 -0.50103,0.13505 0.48085,1.90997 0.3197,-0.0698 0.14846,1.14443 0.48574,-0.2036 1.31136,2.91607 0.35685,0.16748 0.56266,0.75038 0.0571,0.127 0.0963,0.531 -0.82725,0.643 -1.00376,-1.253 -1.99503,0.66 -1.35676,0.642 -0.36192,1.253 -2.92676,1.09655 -0.5598,-1.76871 -0.68358,0.26216 -1.43877,-3.43 1.07863,-0.459 0.0945,-4.002 -2.31416,0.731 -0.0553,-1.719\"},\"09005\":{\"name\":\"Litchfield, CT\",\"path\":\"m 909.63803,171.83714 0.73989,-0.168 0.0553,1.719 2.31416,-0.731 -0.0945,4.002 -1.07863,0.459 1.43877,3.43 -1.77574,2.218 -0.65852,0.34006 0.3381,0.96295 -2.74968,0.86699 -0.0553,0.306 0.0374,0.191 0.1462,0.146 0.21751,0.136 -0.0321,0.05 -0.24069,0 -0.77515,-0.246 -0.35728,-0.42266 -0.73867,0.5944 -0.39671,-0.63874 -0.14976,-0.264 -0.3227,-0.531 -0.90035,-1.89 -0.14441,-0.168 -0.46712,-0.1 -1.57427,-8.743 7.22419,-1.528\"},\"09001\":{\"name\":\"Fairfield, CT\",\"path\":\"m 904.53367,185.29014 -0.54556,-3.182 0.46712,0.1 0.14441,0.168 0.90035,1.89 0.3227,0.531 0.14976,0.264 0.39671,0.63874 0.73867,-0.5944 0.35728,0.42266 0.77515,0.246 0.24069,0 0.0321,-0.05 0.62579,0.233 1.35141,0.442 2.98809,2.115 -0.0571,1.116 -0.2086,0.481 -0.041,0.186 0.0499,1.094 0.0481,0.109 0.27456,0.171 -1.15887,0.314 -2.90964,2.2 -3.99185,3.389 -0.0981,0.188 -0.0499,0.247 -1.79713,-2.312 1.25158,-1.278 2.26396,-2.33389 -1.61143,-1.48311 -0.2817,-1.623 -0.62757,-3.68\"},\"09009\":{\"name\":\"New Haven, CT\",\"path\":\"m 917.18314,180.95814 0.58656,1.792 0.2953,1.54884 0.92597,-0.28684 0.62043,-0.307 0.24069,0.154 0.74702,0.843 2.00752,2.492 -0.88431,-0.05 -0.5616,0.136 -2.31417,0.7 -1.4459,0.608 -0.78803,0.115 -0.37084,-0.459 -0.1355,0.06 -1.96116,2.283 -0.26564,0.371 -0.31379,0.594 -0.0214,0.09 0,0.02 -0.27456,-0.171 -0.0481,-0.109 -0.0499,-1.094 0.041,-0.186 0.2086,-0.481 0.0571,-1.116 -2.98809,-2.115 -1.35141,-0.442 -0.62579,-0.233 -0.21751,-0.136 -0.1462,-0.146 -0.0374,-0.191 0.0553,-0.306 2.74968,-0.86699 -0.3381,-0.96295 0.65852,-0.34006 1.77574,-2.218 0.68358,-0.26216 0.5598,1.76871 2.92676,-1.09655\"},\"09007\":{\"name\":\"Middlesex, CT\",\"path\":\"m 921.90061,179.65614 0.9834,0.86094 1.68596,-0.52982 0.78267,2.03664 -1.86982,0.78925 2.2991,3.07099 -3.17529,1.31 -2.00752,-2.492 -0.74702,-0.843 -0.24069,-0.154 -0.62043,0.307 -0.92597,0.28662 -0.2956,-1.54862 -0.58626,-1.792 0.36192,-1.253 1.35676,-0.642 1.99503,-0.66 1.00376,1.253\"},\"09011\":{\"name\":\"New London, CT\",\"path\":\"m 933.05246,176.48314 0.96081,3.94251 -0.0783,0.0701 -0.26579,-0.003 -0.274,0.35605 0.0488,0.31509 0.20975,0.25828 0.0393,0.44768 0.20028,0.26774 0.0406,0.21847 -0.23405,0.3037 -0.11093,0.0764 -0.10146,0.19952 -0.5057,-0.20947 -0.99405,0.29866 -0.629,0.50681 -0.3464,0.27884 -1.28597,0.14348 -0.33613,0.62381 -0.44615,0.1009 -0.46959,-0.0718 -0.29481,-0.22121 -0.3019,0.11786 0.0195,0.63166 -0.871,0.4035 -0.90748,0.355 -0.16937,0.02 -0.16759,-0.03 -2.2991,-3.07099 1.86982,-0.78925 -0.78267,-2.03664 -1.68596,0.52982 -0.9834,-0.86094 0.82725,-0.643 1.26147,-0.60147 0.93146,-2.63653 1.0929,0.626 0.58656,0.291 3.53544,-0.355 1.50295,-0.617 1.15887,-0.202 0.25495,0.965 m -2.15825,8.80708 0.18785,-0.60504 0.18662,-0.0129 0.10743,0.0977 0.12855,-0.36953 0.58387,-0.31957 0.2143,-0.16388 0.2563,-0.10113 -0.0594,0.29583 -0.32804,0.24894 -0.45893,0.33465 -0.21661,0.4029 -0.23153,-0.002 z\"},\"09013\":{\"name\":\"Tolland, CT\",\"path\":\"m 925.37899,168.14314 0.4475,1.549 -1.58676,0.401 -0.34587,0.112 0.68997,2.766 0.78803,-0.18352 0.68997,1.75052 -0.62433,-0.002 0.13582,0.5795 -1.00328,0.2528 0.35075,0.4072 -0.93146,2.63653 -1.26147,0.60147 -0.0963,-0.531 -0.0571,-0.127 -0.56266,-0.75038 -0.35685,-0.16748 -1.31136,-2.91607 -0.48574,0.2036 -0.14846,-1.14443 -0.3197,0.0698 -0.48085,-1.90997 0.50103,-0.13505 -0.77198,-1.888 6.17942,-1.464 0.56161,-0.11\"},\"09015\":{\"name\":\"Windham, CT\",\"path\":\"m 930.48869,167.31414 1.80962,6.307 0.4992,1.897 -1.15887,0.202 -1.50295,0.617 -3.53544,0.355 -0.58656,-0.291 -1.0929,-0.626 -0.35075,-0.4072 1.00328,-0.2528 -0.13582,-0.5795 0.62433,0.002 -0.68997,-1.75052 -0.78803,0.18352 -0.68997,-2.766 0.34587,-0.112 1.58676,-0.401 -0.4475,-1.549 0.7078,-0.147 4.28958,-1.019 0.11232,0.337\"},\"10003\":{\"name\":\"New Castle, DE\",\"path\":\"m 879.69727,231.2832 -0.20704,0.0117 -0.21289,0.0254 -0.21484,0.0371 -0.21875,0.0508 -0.22266,0.0664 -0.22656,0.0801 -0.27734,0.1269 -0.25977,0.1387 -0.24414,0.1504 -0.22656,0.1621 -0.21094,0.1719 -0.1953,0.1816 -0.1797,0.1934 -0.1641,0.20311 -0.1485,0.21289 -0.1348,0.22071 -0.1211,0.23242 -0.1074,0.24023 -0.0938,0.25 -0.0801,0.25782 -0.0684,0.26562 -0.0547,0.27539 -0.17187,0.0508 0.1875,0.70117 0.0176,0.11914 0.0215,0.11719 0.0274,0.11133 0.0312,0.10742 0.0312,0.10742 0.0351,0.10547 0.0371,0.10742 0.0352,0.10938 1.16601,4.35937 0.47461,1.77735 0.50586,1.79883 3.07422,-1.10352 0.2168,-0.80078 0.64648,-0.58594 -1.09961,-1.50586 -0.67578,-0.52929 -0.17969,-0.64258 0.16861,-1.72848 -1.028,-0.55275 -0.11514,-0.56255 0.078,-0.28513 0.15039,-0.375 0.41797,-0.39648 0.36328,-0.75782 0.19336,-0.90234 0.62109,-1.28906 0.58789,-0.70703 -0.1875,-0.0723 -0.1875,-0.0664 -0.18945,-0.0625 -0.19141,-0.0527 -0.19335,-0.0488 -0.19532,-0.0391 -0.19726,-0.0293 -0.19922,-0.0215 -0.20313,-0.01 z m 0.20791,4.85267 0.0845,0.46295 0.3073,-0.0308 -0.125,-0.561 z\"},\"10005\":{\"name\":\"Sussex, DE\",\"path\":\"m 882.38151,259.08714 -1.22304,-4.356 2.42292,-0.633 1.00375,-0.909 0.0606,-0.346 0.29239,-0.69 1.39777,-0.996 1.34072,-0.747 0.14441,0.618 0.19255,0.232 1.60102,1.28 0.9057,0.69 0.63648,0.248 0.47424,0.09 0.35301,-0.1 0.24782,-0.193 0.041,-0.137 0.44928,0.94 1.07685,3.145 0.78803,2.706 0.19255,0.786 -5.10079,1.115 -0.25852,0.06 -0.6757,0.153 -0.28348,0.05 -0.24425,0.05 -0.066,0.01 -0.895,0.167 -0.36727,0.07 -1.04476,0.2 -0.52238,0.1 -0.0642,0 -1.22839,0.209 -0.54021,0.09 -0.20682,-0.726 -0.19255,-0.657 -0.24068,-0.867 -0.46712,-1.665\"},\"10001\":{\"name\":\"Kent, DE\",\"path\":\"m 878.22743,244.30214 3.0729,-1.10297 0.21804,-0.80091 0.64563,-0.58712 1.51901,0.9 0.77198,0.99 0.14441,0.208 0.42433,1.091 0.0499,0.378 -0.13823,0.62334 0.65485,2.29547 1.00026,0.46585 0.68265,0.57138 0.40346,1.07596 -1.34072,0.747 -1.39777,0.996 -0.29239,0.69 -0.0606,0.346 -1.00375,0.909 -2.42292,0.633 -2.61013,-9.296 -0.32091,-1.133\"},\"12005\":{\"name\":\"Bay, FL\",\"path\":\"m 732.95919,472.32014 0.82903,8.356 0.73276,6.317 -2.06813,-0.628 -0.44928,-0.185 -0.14442,-0.09 -0.54555,-0.388 -0.68997,-0.635 -4.35021,-2.523 -0.31913,-0.174 -0.22642,-0.129 -0.21573,-0.121 -0.34766,-0.169 -0.75237,-0.385 -0.31557,-0.154 -0.25673,-0.121 -0.30666,-0.127 -0.36905,-0.171 -0.32805,-0.117 -1.18917,-0.435 -0.23356,-2.757 0.48851,-0.538 2.13053,-0.924 6.01896,-0.579 1.19631,-0.13 -0.29596,-2.98 1.00376,-0.112 1.00376,-0.1\"},\"12063\":{\"name\":\"Jackson, FL\",\"path\":\"m 729.81955,462.71614 9.49735,-1.156 3.46946,6.283 -1.05189,2.555 -3.23769,0.353 -1.43219,0.0835 0.0344,0.96348 -1.49583,0.247 -2.64399,0.275 -1.00376,0.1 -0.49742,-4.981 -1.51901,-0.854 -1.88092,0.187 1.56536,-4.019 0.19611,-0.03\"},\"12015\":{\"name\":\"Charlotte, FL\",\"path\":\"m 820.17718,542.29414 0.83617,5.946 -10.15345,1.39241 0.0357,-0.62041 -0.22464,-1.262 -0.17171,-0.71255 -0.57678,-0.0481 -0.15962,-0.81935 0.54619,-0.21404 -0.0713,-0.248 -0.29774,-0.146 -0.64183,0.114 -0.1765,0.103 -0.96632,0.854 -0.10162,0.159 0.94506,1.83866 0.007,1.07942 -2.50556,0.23492 -2.644,-3.216 2.46036,-0.344 -0.18542,-1.35 -0.0945,-0.627 4.04027,-0.56798 z\"},\"12071\":{\"name\":\"Lee, FL\",\"path\":\"m 821.01367,548.24023 -10.15429,1.39413 -0.28516,2.56681 -0.8459,-0.82923 -1.12114,0.24124 0.16523,0.53112 0.90592,0.76383 1.08442,2.62203 0.0456,0.69007 0.71563,-0.14332 0.0932,-0.50623 0.30822,-0.29869 0.89886,0.28856 0.0524,0.40385 0.78234,0.13105 1.43287,0.91822 1.04297,0.96485 0.65039,1.03125 0.58789,0.21289 3.3125,-0.5293 -0.47219,-2.32785 2.07766,-0.33231 L 821.94531,554 Z m -12.00781,1.47071 -2.50586,0.23437 0.01,0.0195 0.0469,0.0899 0.0977,0.29687 0.0957,0.3125 0.0809,0.62226 0.24032,-0.0701 -0.0419,-0.56194 0.13086,-0.44336 0.1289,-0.22071 0.0547,0 0.23437,0.21289 0.88282,-0.14453 0.0586,-0.0996 z m -2.13948,2.05247 0.24518,0.77565 2.12305,3.91211 0.1621,0.28321 0.0937,0.0898 0.0977,0.0801 1.05078,0.5625 0.62695,0.16992 0.32422,0.0195 0.16016,-0.0195 0.23047,-0.11328 0.92383,-0.75586 0,-0.0508 -1.0586,-0.20703 -0.2832,0.13476 -0.19922,0.2793 -1.32617,-0.32031 -0.38477,-0.2168 -0.27343,-0.25781 -1.93437,-3.62089 -0.1695,-0.97276 z\"},\"12051\":{\"name\":\"Hendry, FL\",\"path\":\"m 821.01335,548.24014 8.07462,-1.223 4.63011,-0.745 0.53843,-4.47 2.34625,14.031 0.28705,1.664 -7.96943,1.404 -0.65788,-3.792 -0.33875,-2.121 -5.97796,1.011 -0.93244,-5.759\"},\"12021\":{\"name\":\"Collier, FL\",\"path\":\"m 836.88981,557.49714 1.14995,6.257 0.62757,3.892 -9.73804,1.598 -0.14441,-0.289 -0.0963,-0.103 -0.96631,-0.541 -0.5206,-0.215 -0.15333,-0.05 -2.00216,-0.427 -0.24782,0 -2.40152,0.448 -0.19434,0.13 -0.16937,0.211 -0.0232,0.24 -0.0571,0.433 -0.0784,0.275 -0.14441,-0.02 -0.1141,-0.114 -1.30863,-1.849 -1.80783,-3.084 -0.21929,-0.845 -0.14263,-0.571 -0.5313,-1.863 -0.44928,-1.262 -0.34588,-0.706 -0.025,-0.04 0.58657,0.214 3.31257,-0.529 -0.47174,-2.32777 2.07811,-0.33223 -0.34588,-2.034 5.97796,-1.011 0.33875,2.121 0.65788,3.793 7.96943,-1.405\"},\"12087\":{\"name\":\"Monroe, FL\",\"path\":\"m 838.66797,567.64258 -9.73828,1.5957 0.30078,1.77539 0.69726,0.2168 1.45313,1.41601 1.50976,2.29688 -0.26953,0.60547 1.14063,0.72265 0.58203,1.66211 0.86914,0.60352 0.0137,0.22461 -0.0469,0.15234 -0.27149,-0.0605 -0.11914,0.0605 -0.13867,0.2168 -0.0488,0.19141 -0.0879,0.8125 -0.0312,1.01171 0.0547,0.53125 0.85351,1.20508 0.1836,0.14453 0.91601,0.5293 0.33594,0.13867 1.66406,-0.39258 1.67188,-0.66211 1.25391,-1.01171 -0.0156,0 -0.2168,-0.3125 -0.93359,-3.78321 z m 14.25586,8.04297 -1.01953,1.63672 -1.01172,0.61718 0.57812,0.39453 0.0469,0.95899 -0.91406,0.84961 0.23242,0.59375 -0.35547,0.52344 -0.65235,0.0586 0.32227,0.81836 -0.40625,0.33398 -0.82226,-0.44922 -0.0703,0.29102 0.6211,0.24219 -0.0312,0.16211 -0.39063,1.08203 -0.625,0.75586 -0.44531,-0.0527 -0.0215,0.77735 -0.49414,0.38281 -0.45703,0.40039 -0.6582,1.00586 -0.01,0.10547 0,0.0195 0.0508,0.0508 1.63282,-1.55859 0.10156,-0.11914 1.03516,-1.47461 0.80468,-1.29883 1.45508,-1.7207 0.29883,-0.59375 0.12695,-0.36329 -0.14843,-0.32812 0.0371,-0.14453 1.24609,-3.19922 0.29492,-0.56055 0.12891,-0.0898 0,-0.006 z m -7.33008,11.84961 -1.78906,1.35546 -0.99024,0.98829 -0.0898,0.10547 0.0176,0.0195 0.0859,-0.0195 1.01563,-0.3711 0.83594,-0.72266 0.84179,-0.7539 0.23438,-0.49805 z m -4.0332,3.12109 -2.45899,1.36719 -1.77539,1.0039 0.0391,0.0703 -0.16406,0.19922 0.45313,0.26367 0.70898,-0.33594 1.21094,-0.82813 0.91016,-0.82812 0,-0.002 1.0996,-0.51953 0.10547,-0.12891 -0.11328,-0.24219 z m -8.73438,1.95313 -0.65039,0.3496 -0.15039,0.2461 0.67969,0.17773 0.99414,0.17383 -0.0371,-0.44531 z m -1.80859,0.72656 -0.42969,0.42187 -0.43359,-0.3164 -0.0176,0.8457 -0.46875,-0.0176 -0.59375,0.21875 -0.41406,0.55274 -0.49805,0.0703 -0.23828,0.26562 -0.0156,0.24219 -1.0039,1.00586 -0.79492,0.66797 -0.30469,0.17383 -0.73047,0.33984 -0.0918,-0.0312 -0.11914,-0.11914 -0.18359,0.0195 -0.95508,0.24024 -0.30664,0.42187 -0.043,0.14453 0.0898,0.37696 0.0547,0.0312 0.50977,-0.11914 1.41601,-0.0703 1.35352,-0.82422 1.92773,-1.11914 0.60938,-0.16211 -0.0117,-0.9375 0.44336,-0.0898 0.004,0 0.10938,0.44726 2.09375,-0.1621 1.24414,-0.61133 0.37891,-0.24219 -0.0611,-0.20766 -0.26777,-0.21226 -0.1164,-0.4707 -0.98437,-0.28907 -0.43555,-0.13476 z m 3.02468,1.63426 0.84898,-0.22801 -0.0954,-0.36723 -0.49022,0.003 z m -17.00515,3.96925 -0.7207,0.0449 -0.34375,0.54882 0.20312,0.41016 1.00391,-0.15039 z\"},\"12086\":{\"name\":\"Miami-Dade, FL\",\"path\":\"m 853.40453,575.79214 -0.48138,-0.101 0.21751,-1.063 0.78625,-2.644 0.15333,-0.282 0.0963,0 0.15333,0.788 -0.36192,1.689 -0.56339,1.613 m -15.36477,-12.038 3.88786,-0.69618 0.17886,0.55218 4.95638,-0.811 2.85312,-0.30139 0.0386,-0.45231 1.36929,-0.3073 0.80229,-0.152 1.50296,-0.299 0.0196,0.06 0.20682,1.269 0.24068,1.68 0.0392,0.522 0.0499,1.043 -0.11411,0.522 -0.0981,0.236 -0.12801,0.45044 -0.0153,1.60217 -0.47958,-0.34163 -0.0364,-1.37668 -0.19827,-0.2973 -0.26386,0.08 -0.60261,0.367 -0.20325,0.227 -0.0553,0.176 -1.0608,4.411 -0.0927,0.779 0.0784,0.469 0.57587,1.758 0.13728,0.128 0.21751,0 0.0963,0.114 -0.0321,0.255 -0.39223,0.861 -0.87004,1.302 -0.0481,0.05 -0.54555,0.614 0.0234,0.67882 -0.75447,0.12292 -0.42606,0.46726 -0.37122,0.73066 -1.12852,-0.63698 -0.81061,0.0506 -0.31781,1.33187 -0.83698,0.60762 -0.8822,0.0918 -0.21226,0.60386 -0.55247,0.10239 -0.44805,-0.49888 -1.9208,-0.25299 -0.016,0 -0.21751,-0.312 -0.93423,-3.783 -1.5814,-9.892 -0.62757,-3.892\"},\"12011\":{\"name\":\"Broward, FL\",\"path\":\"m 836.60276,555.83314 11.98089,-1.979 0.98058,-0.159 3.64062,-0.304 0.42432,7.896 -1.50296,0.299 -0.80229,0.152 -1.36929,0.3073 -0.0386,0.45231 -2.85312,0.30139 -4.95638,0.811 -0.17886,-0.55218 -3.88786,0.69618 -1.14995,-6.257 -0.28705,-1.664\"},\"12099\":{\"name\":\"Palm Beach, FL\",\"path\":\"m 834.25651,541.80214 10.22119,-1.656 0.2086,-0.03 4.74421,-0.747 1.2177,-0.528 0.36192,0.795 0.39402,0.845 0.34409,0.745 0.53843,1.357 0.33874,2.147 0.27992,1.991 0.098,0.981 0.23178,5.329 -0.0303,0.362 -3.64062,0.304 -0.98058,0.159 -11.98089,1.979 -2.34625,-14.031\"},\"12115\":{\"name\":\"Sarasota, FL\",\"path\":\"m 809.51205,539.88414 0.56517,3.959 -4.03998,0.571 0.0945,0.627 0.18542,1.35 -2.46036,0.344 -3.62992,-5.495 -0.21573,-0.299 -0.30844,-0.414 -0.19076,-0.269 -0.91818,-1.132 -0.5206,-0.528 -1.0929,-1.095 7.96052,-1.06 0.55625,4.002 4.01502,-0.561\"},\"12027\":{\"name\":\"DeSoto, FL\",\"path\":\"m 819.10211,535.37314 1.07507,6.921 -10.09996,1.549 -0.98057,-6.901 4.00967,-0.564 2.21076,-0.41 3.78503,-0.595\"},\"12043\":{\"name\":\"Glades, FL\",\"path\":\"m 832.1759,536.32914 1.51636,1.18933 0.56425,4.28367 -0.53843,4.47 -4.63011,0.745 -8.07462,1.223 -0.83617,-5.946 6.03502,-0.909 -0.3227,-1.994 1.91976,-0.28424 -0.22247,-2.02976 4.58911,-0.748\"},\"12085\":{\"name\":\"Martin, FL\",\"path\":\"m 847.10565,532.67514 3.54256,6.164 -1.2177,0.528 -4.74421,0.747 -0.2086,0.03 -10.22119,1.656 3.53242,-4.3473 -0.19667,-1.8877 5.32543,-0.877 2.65291,-0.44 -0.20147,-1.295 1.73652,-0.28\"},\"12111\":{\"name\":\"St. Lucie, FL\",\"path\":\"m 836.2658,527.64414 7.2545,-1.175 3.58535,6.206 -1.73652,0.28 0.20147,1.295 -2.65291,0.44 -5.32543,0.877 -1.32646,-7.923\"},\"12061\":{\"name\":\"Indian River, FL\",\"path\":\"m 831.47701,522.30814 7.26341,-1.164 1.00376,-0.933 0.10519,-0.144 3.67093,6.402 -7.2545,1.175 -1.97899,0.314 -0.31913,-1.904 -1.92906,0.328 -0.56161,-4.074\"},\"12093\":{\"name\":\"Okeechobee, FL\",\"path\":\"m 826.59017,527.23414 5.44845,-0.852 1.92906,-0.328 0.31913,1.904 1.97899,-0.314 1.32646,7.923 0.19667,1.8877 -3.53242,4.3473 -0.56425,-4.28367 -1.51636,-1.18933 -1.73652,-1.733 -2.02356,-1.562 -2.89949,-2.68092 0.67091,-1.09408 0.40293,-2.025\"},\"12055\":{\"name\":\"Highlands, FL\",\"path\":\"m 818.04844,528.47914 8.54173,-1.245 -0.40293,2.025 -0.67091,1.09408 2.89949,2.68092 2.02356,1.562 1.73652,1.733 -4.58911,0.748 0.22247,2.02976 -1.91976,0.28424 0.3227,1.994 -6.03502,0.909 -1.07507,-6.921 -1.05367,-6.894\"},\"12049\":{\"name\":\"Hardee, FL\",\"path\":\"m 808.10002,529.98314 9.94842,-1.504 1.05367,6.894 -3.78503,0.595 -2.21076,0.41 -4.00967,0.564 -0.99663,-6.959\"},\"12081\":{\"name\":\"Manatee, FL\",\"path\":\"m 797.95906,531.48614 10.14096,-1.503 0.99663,6.959 0.4154,2.942 -4.01502,0.561 -0.55625,-4.002 -7.96052,1.06 -1.15886,-1.092 -0.65075,-1.199 0.53129,-0.247 0.69354,-0.451 1.34607,-2.161 0.0802,-0.17 0.13728,-0.697\"},\"12103\":{\"name\":\"Pinellas, FL\",\"path\":\"m 794.30417,519.82614 0.72207,4.67 -1.35855,0.376 -0.0713,0.07 -0.0481,0.182 0.11945,0.258 0.23356,0.152 0.53472,0.23267 1.00171,-0.16581 0.0807,0.63682 0.57756,0.25132 0.82012,-0.351 0.1034,0.578 -0.5967,0.33081 0.33284,0.65819 -0.71271,1.09474 0.20445,1.06471 -0.38377,0.64114 -1.37465,0.3784 0.0447,0.73734 0.2767,0.28472 0.21457,0.62714 -0.67291,0.19272 -0.31523,-2.10591 -0.87041,-1.33505 -1.34196,-1.16951 -0.88959,-1.46278 0.91795,-1.51966 0.0143,-0.05 0.0963,-1.189 0.0571,-1.036 -0.19255,-1.631 -0.16759,-0.376 -0.10519,-0.155 -0.35479,-0.41 3.10397,-0.457\"},\"12057\":{\"name\":\"Hillsborough, FL\",\"path\":\"m 794.30417,519.82614 11.00209,-1.553 1.00198,-0.144 1.06972,6.919 0.72206,4.935 -10.14096,1.503 2.04138,-3.045 0.0392,-0.09 0.45106,-1.095 0.10341,-0.586 -0.32983,-0.997 -0.28883,-0.383 -0.90162,-0.0407 -0.69691,-0.35698 0.12009,1.45043 0.30933,0.34708 0.0614,0.61371 -0.81598,0.0628 -0.81639,-0.62509 0.26375,-0.45113 -0.56881,-2.07913 -0.73098,0 -0.60261,0.114 -0.57051,0.161 -0.72207,-4.67\"},\"12053\":{\"name\":\"Hernando, FL\",\"path\":\"m 792.73703,508.01514 4.56237,-0.662 0.10697,0.651 3.10041,-0.49 0.041,0.451 0.27278,0.371 0.81121,0.907 0.41719,0.25 2.58338,0.64 0.67392,1.053 -3.98828,0.58 0.14442,0.989 -7.76975,1.149 -0.77198,0.112 -0.18364,-6.001\"},\"12101\":{\"name\":\"Pasco, FL\",\"path\":\"m 805.30626,511.18614 0.53665,3.768 0.11741,1.27377 -0.93778,0.219 0.28372,1.82623 -11.00209,1.553 -3.10397,0.457 1.72047,-6.267 0.77198,-0.112 7.76975,-1.149 -0.14442,-0.989 3.98828,-0.58\"},\"12097\":{\"name\":\"Osceola, FL\",\"path\":\"m 813.7428,512.95514 15.94956,-2.5 0.39401,2.274 0.56161,3.649 -0.12837,0.03 0.9574,5.905 0.56161,4.074 -5.44845,0.852 -0.17651,-0.802 -0.14441,-0.565 -1.04655,-1.559 -0.60082,-0.857 -2.10982,-0.34584 -1.53707,-2.45518 -1.25218,-0.46915 -1.0593,-1.17632 1.48158,0.34749 0.76372,-1.26268 -2.19358,0.15168 -0.26222,-1.20029 -1.35514,0.14978 -0.13871,-1.27553 -0.87803,-1.24337 -2.03524,0.26741 -0.30309,-1.984\"},\"12105\":{\"name\":\"Polk, FL\",\"path\":\"m 813.7428,512.95514 0.30309,1.984 2.03524,-0.26741 0.87803,1.24337 0.13871,1.27553 1.35514,-0.14978 0.26222,1.20029 2.19358,-0.15168 -0.76372,1.26268 -1.48158,-0.34749 1.0593,1.17632 1.25218,0.46915 1.53707,2.45518 2.10982,0.34584 0.60082,0.857 1.04655,1.559 0.14441,0.565 0.17651,0.802 -8.54173,1.245 -9.94842,1.504 -0.72206,-4.935 -1.06972,-6.919 -1.00198,0.144 -0.28372,-1.82623 0.93778,-0.219 -0.11741,-1.27377 0.81892,-0.38933 0.33675,0.35 0.65819,-0.004 0.0474,-1.00007 6.03858,-0.956\"},\"12095\":{\"name\":\"Orandge, FL\",\"path\":\"m 817.10173,502.29714 -0.6454,1.858 0.0731,0.508 0.16879,1.10389 2.70821,-0.31047 0.12,0.52358 6.71786,-1.125 2.36693,2.31783 1.08114,3.28217 -15.94956,2.5 -1.51365,-9.756 0.19433,-0.183 0.19255,-0.04 0.28169,-0.04 4.20401,-0.638\"},\"12117\":{\"name\":\"Seminole, FL\",\"path\":\"m 817.10173,502.29714 0.60974,-2.262 1.0929,0.857 2.00511,-0.22081 0.59075,0.80781 0.42432,0.07 0.12124,-0.02 0.65966,-0.316 0.19968,-0.449 1.28546,-0.0244 0.19254,1.26139 0.65966,0.829 1.3015,2.016 -6.71786,1.125 -0.12,-0.52358 -2.70821,0.37476 -0.16879,-1.16818 -0.0731,-0.508 0.6454,-1.858\"},\"12069\":{\"name\":\"Lake FL\",\"path\":\"m 810.84742,491.87114 0.8113,1.46227 1.8843,0.60255 0.98425,1.63118 1.3532,0.898 0.84151,0.459 0.81121,0.625 0.0481,0.07 0.24247,1.173 -0.11232,1.247 -0.60974,2.262 -4.20401,0.638 -0.28169,0.04 -0.19255,0.04 -0.19433,0.183 1.51365,9.756 -6.03858,0.956 -1.99859,-13.925 5.89951,-0.891 0.0374,-2.38 -0.79516,-4.844\"},\"12119\":{\"name\":\"Sumter, FL\",\"path\":\"m 798.57058,501.03114 7.13505,-1.045 1.99859,13.925 -0.0474,1.00007 -0.65819,0.004 -0.33675,-0.35 -0.81892,0.38933 -0.53665,-3.768 -0.67392,-1.053 -2.58338,-0.64 -0.41719,-0.25 -0.81121,-0.907 -0.27278,-0.371 -0.041,-0.451 0.0874,-0.997 0.0731,-0.208 0.2496,-0.434 0.40114,-0.545 0.37084,-0.1 0.0713,-0.07 0.21037,-0.731 -0.016,-0.1 -2.54059,-2.282 -0.8433,-1.02\"},\"12017\":{\"name\":\"Citrus, FL\",\"path\":\"m 793.82102,499.76014 1.28187,-0.36098 3.46769,1.63198 0.8433,1.02 2.54059,2.282 0.016,0.1 -0.21037,0.731 -0.0713,0.07 -0.37084,0.1 -0.40114,0.545 -0.2496,0.434 -0.0731,0.208 -0.0874,0.997 -3.10041,0.49 -0.10697,-0.651 -4.56237,0.662 -0.32983,-3.402 -0.12837,-0.738 -0.13728,-0.282 -2.65112,-2.032 0.13371,-0.241 0.20325,-0.242 0.52238,-0.507 0.37797,-0.1 0.30487,0 1.23731,0.28 1.18204,-0.697 0.35301,-0.259 0.016,-0.05\"},\"12075\":{\"name\":\"Levy, FL\",\"path\":\"m 789.73824,488.30314 0.0728,0.57163 2.05656,-0.25939 0.34089,1.32223 2.75354,-0.52747 0.94849,6.1 -2.64221,0.394 0.55269,3.856 -0.016,0.05 -0.35301,0.259 -1.18204,0.697 -1.23731,-0.28 -0.30487,0 -0.37797,0.1 -0.52238,0.506 -0.20325,0.243 -0.13371,0.241 0.0392,-0.771 -0.20681,-0.611 -1.23702,-0.55142 0.51175,-0.64113 -0.47282,-0.77745 -0.48316,-0.209 -3.22329,0.23217 -0.50273,0.83702 -0.6848,-0.086 -0.87541,-2.47716 -1.87199,-0.52905 1.60636,-1.432 0.85221,-1.535 0.43324,-1.455 0.7078,-3.07 5.65526,-0.182\"},\"12083\":{\"name\":\"Marion, FL\",\"path\":\"m 794.96205,489.41014 3.56753,-0.504 0.36192,0.401 -0.041,0.248 1.46374,0.644 1.478,-0.617 0.25673,-0.163 0.0161,-0.05 -0.10163,-0.673 0.51169,-0.611 0.41897,-0.225 1.34963,-0.531 2.05738,-0.36212 0.12352,0.80486 1.29775,-0.2354 0.26413,1.3817 0.8115,-0.11536 0.0946,1.28502 0.94942,-0.12967 0.55797,0.0968 0.186,0.73901 -0.67807,0.11815 0.93957,0.958 0.79516,4.844 -0.0374,2.38 -5.89951,0.891 -7.13505,1.045 -3.46769,-1.63198 -1.28187,0.36098 -0.55269,-3.856 2.64221,-0.394 -0.94849,-6.099\"},\"12127\":{\"name\":\"Volusia, FL\",\"path\":\"m 809.90785,490.91314 0.67808,-0.11937 3.74558,-1.36971 0.2225,-0.93892 0.3679,-0.0588 0.44331,3.12182 1.66341,-0.28 0.0802,-0.02 3.55148,-0.641 -0.4582,-2.461 0.84508,-1.333 1.51544,2.524 1.22483,1.888 0.94671,1.471 0.56873,0.77 1.68125,2.06 3.71372,4.482 -4.70143,0.781 0.70602,3.983 -0.4582,0.08 -1.3015,-2.017 -0.65966,-0.829 -0.19254,-1.26139 -1.28546,0.0244 -0.19968,0.449 -0.65966,0.316 -0.12124,0.02 -0.42432,-0.07 -0.59075,-0.80781 -2.00511,0.22081 -1.0929,-0.857 0.11232,-1.247 -0.24247,-1.173 -0.0481,-0.07 -0.81121,-0.625 -0.84151,-0.459 -1.3532,-0.898 -0.98425,-1.63118 -1.8843,-0.60255 -0.8113,-1.46227 -0.93957,-0.958\"},\"12009\":{\"name\":\"Brevard, FL\",\"path\":\"m 826.24429,504.85514 0.4582,-0.08 -0.70602,-3.982 4.70143,-0.781 3.67093,3.888 0.0392,0.05 0.15689,0.159 0.0285,0.05 1.46373,2.669 0,0.185 -0.6757,0.433 -0.18542,0.257 -0.21573,0.426 -0.016,0.113 -0.0107,0.03 -0.0642,0.344 -0.0463,0.627 0.0321,0.637 0.0642,0.568 0.27991,1.199 0.57943,1.75 0.7809,1.778 0.54555,0.993 0.44037,0.677 0.59548,0.91 0.0339,0.06 1.6545,2.266 -0.10519,0.144 -1.00376,0.933 -7.26341,1.164 -0.9574,-5.905 0.12837,-0.03 -0.56161,-3.649 -0.39401,-2.274 -1.08114,-3.28217 -2.36693,-2.31783\"},\"12133\":{\"name\":\"Washington, FL\",\"path\":\"m 723.56703,470.19814 0.11945,-1.528 0.11232,-0.522 1.37459,-0.128 0.36014,0.297 0.0588,0.667 2.30703,-0.192 0.2086,-1.582 0,-0.196 -0.0499,-0.246 1.88092,-0.187 1.51901,0.854 0.49742,4.981 -1.00376,0.112 0.29596,2.98 -1.19631,0.13 -6.01896,0.579 -2.13053,0.924 -0.48851,0.538 0.71315,-1.358 1.66137,-1.12924 -0.97853,-2.20476 -0.31201,-0.346 -0.0945,-0.699 0.91283,-1.587 0.25139,-0.157\"},\"12059\":{\"name\":\"Holmes, FL\",\"path\":\"m 719.12411,463.96414 10.49933,-1.215 -1.56536,4.019 0.0499,0.246 0,0.196 -0.2086,1.582 -2.30703,0.192 -0.0588,-0.667 -0.36014,-0.297 -1.37459,0.128 -0.11232,0.522 -0.11945,1.528 -3.79217,0.371 -0.65075,-6.605\"},\"12131\":{\"name\":\"Walton, FL\",\"path\":\"m 716.14137,464.26014 2.98274,-0.296 0.65075,6.605 3.79217,-0.371 -0.25139,0.157 -0.91283,1.587 0.0945,0.699 0.31201,0.346 0.97853,2.20476 -1.66137,1.12924 -0.71315,1.358 0.23356,2.757 -8.19764,-1.68 -1.25336,-14.095 3.94549,-0.401\"},\"12091\":{\"name\":\"Okaloosa, FL\",\"path\":\"m 712.19588,464.66114 1.25336,14.095 -7.97121,0.603 -1.06794,-13.991 1.88628,-0.142 5.89951,-0.565\"},\"12113\":{\"name\":\"Santa Rosa, FL\",\"path\":\"m 697.01653,466.02814 7.39356,-0.66 1.06794,13.991 -2.31238,0.593 -0.18352,-0.6014 -5.91657,1.55837 0.1216,-1.0052 1.29489,-0.32077 0.32173,-2.74237 -2.80705,-1.76463 -1.01267,-2.428 -0.30487,-0.826 -0.0642,-0.379 -0.24069,-1.719 0.0624,-0.337 0.36905,-1.36 0.13906,-0.239 0.88074,-0.774 1.19096,-0.986\"},\"12033\":{\"name\":\"Escambia, FL\",\"path\":\"m 688.46767,466.83914 8.54886,-0.811 -1.19096,0.986 -0.88074,0.774 -0.13906,0.239 -0.36905,1.36 -0.0624,0.337 0.24069,1.719 0.0642,0.379 0.30487,0.826 1.01267,2.428 2.80705,1.76463 -0.32173,2.74237 -1.29489,0.32077 -0.1216,1.0052 5.91657,-1.55837 0.18352,0.6014 -4.57307,1.423 -0.17115,0.04 -0.11945,0.03 -0.69889,0.179 -0.46354,0.09 -0.74168,0.144 -3.07545,0.731 -1.80961,0.523 1.2694,-0.573 0.26565,-2.514 0.19968,-5.022 -0.0321,-0.378 -0.0713,-0.273 -0.24068,-0.394 -0.88431,-0.547 -0.66679,-0.344 -0.32983,-0.06 -0.11054,-0.04 -0.62935,-0.433 -2.00038,-2.181 -0.25852,-0.438 0.44394,-3.078\"},\"12013\":{\"name\":\"Calhoun, FL\",\"path\":\"m 732.95919,472.32014 2.64399,-0.275 1.49583,-0.247 -0.0344,-0.96348 1.43219,-0.0835 3.23769,-0.353 -0.93957,2.147 -0.65966,4.239 -0.93244,3.306 -5.41458,0.586 -0.82903,-8.356\"},\"12045\":{\"name\":\"Gulf, FL\",\"path\":\"m 733.78822,480.67614 5.41458,-0.586 0.14896,3.51594 2.2383,1.48806 0.23355,3.127 0.19453,0.92913 -1.28029,0.62187 -0.29596,-0.05 -1.75256,1.721 -0.18542,0.392 -1.87201,0.153 -0.0553,-2.289 -0.0571,-0.249 -0.29596,-0.491 -1.14995,-1.449 -0.47603,-0.455 -0.0767,-0.06 -0.73276,-6.317\"},\"12037\":{\"name\":\"Franklin, FL\",\"path\":\"m 750.99291,483.07114 4.17014,0.652 0.14441,0.4 0.0571,0.217 0.0481,0.169 0.007,0.03 -0.0178,0.257 -0.11232,0.323 -0.10341,0.07 -0.57764,0.161 -0.9164,-0.12 -0.21751,-0.05 -0.21216,-0.144 -0.1979,-0.33 -1.15708,0.424 -0.4582,0.211 -2.86864,2.216 -1.30149,1.085 -1.13213,0.837 -1.07863,0.69 -2.15906,0.691 -0.86112,0.195 -0.71315,-0.107 -0.58657,0.07 -0.38688,0.114 -1.85775,0.697 0.18542,-0.392 1.75256,-1.721 0.29596,0.05 1.28029,-0.62187 -0.19453,-0.92913 -0.23355,-3.127 0.24069,-1.009 9.16216,-1.014\"},\"12029\":{\"name\":\"Dixie, FL\",\"path\":\"m 783.68897,483.14214 0.39401,5.343 -0.7078,3.07 -0.43324,1.455 -0.85221,1.535 -1.60636,1.432 -0.36014,-1.246 -0.69354,-1.052 -0.39401,-0.555 -0.48138,-0.226 -0.47424,0 -0.93244,-0.425 -1.56715,-0.804 -0.45819,-0.256 -0.0481,-0.129 -0.63649,-3.214 1.22376,-0.68995 0.14371,-3.12005 7.88385,-1.118\"},\"12041\":{\"name\":\"Gilchrist, FL\",\"path\":\"m 784.28979,481.60514 1.43165,-1.25 3.12537,1.928 0.89143,6.02 -5.65526,0.182 -0.39401,-5.343 0.60082,-1.537\"},\"12001\":{\"name\":\"Alachua, FL\",\"path\":\"m 791.04152,479.39614 2.24107,0.1 0.55447,0.779 0.2086,0.08 2.51563,0.425 1.10003,-0.08 0.22464,-0.128 0.13015,-0.03 0.92353,0.1 0.28169,0.07 1.75969,1.664 0.21751,0.451 -0.0339,0.264 0.79872,5.61 0.10163,0.673 -0.0161,0.05 -0.25673,0.163 -1.478,0.617 -1.46374,-0.644 0.041,-0.248 -0.36192,-0.401 -3.56753,0.505 -2.75354,0.52722 -0.34089,-1.32248 -2.05656,0.25914 -0.0728,-0.57188 -0.89143,-6.02 2.19471,-2.887\"},\"12107\":{\"name\":\"Putnam, FL\",\"path\":\"m 810.10932,478.94114 1.88984,4.748 0.58327,3.09215 1.97158,1.70385 -0.2225,0.93892 -3.74551,1.36971 -0.186,-0.7392 -0.55795,-0.0954 -0.94942,0.12967 -0.0946,-1.28502 -0.8115,0.11536 -0.26413,-1.3817 -1.29775,0.2354 -0.12352,-0.80486 -2.05738,0.36212 -1.34963,0.531 -0.41897,0.225 -0.51169,0.611 -0.79872,-5.61 0.10519,-0.02 0.47424,-0.239 1.76148,-1.257 0.0874,-0.408 0.13549,-0.164 1.81497,-1.298 0.30665,-0.05 4.25928,-0.715\"},\"12035\":{\"name\":\"Flagler, FL\",\"path\":\"m 811.99916,483.68914 4.10858,-0.62094 1.86938,-1.42706 3.0701,5.174 -0.84508,1.333 0.4582,2.461 -3.55148,0.641 -0.0802,0.02 -1.66341,0.28 -0.44331,-3.12182 -0.3679,0.0588 -1.97158,-1.70385 -0.58327,-3.09215\"},\"12109\":{\"name\":\"St. Johns, FL\",\"path\":\"m 807.17649,472.84914 1.07151,-0.449 0.45463,0 1.31754,0.417 2.06635,-0.353 -0.57943,-3.327 1.11786,-0.189 2.39439,6.216 1.68659,4.025 0.0321,0.08 0.2496,0.512 0.18542,0.401 0.80407,1.464 -1.86938,1.42706 -4.10858,0.62094 -1.88984,-4.747 -0.50356,-2.50909 -1.99836,-1.16498 -0.43091,-2.41893\"},\"12019\":{\"name\":\"Clay, FL\",\"path\":\"m 807.17649,472.84914 0.43091,2.41868 1.99836,1.16473 0.50356,2.50859 -4.25928,0.715 -0.30665,0.05 -1.81497,1.297 -0.13549,0.164 -0.0874,0.409 -1.76148,1.257 -0.47424,0.239 -1.42986,-9.635 -0.14442,-0.99 1.97721,-0.288 4.11308,-0.683 0.54734,-0.121 0.61687,-0.08 0.22642,1.576\"},\"12007\":{\"name\":\"Bradford, FL\",\"path\":\"m 798.00898,473.70914 1.83101,-0.273 1.42986,9.635 -0.10519,0.02 0.0339,-0.264 -0.21751,-0.451 -1.75969,-1.664 -0.28169,-0.07 -0.92353,-0.1 -0.13015,0.03 -0.22464,0.128 -1.10003,0.08 -2.51563,-0.424 -0.2086,-0.08 -0.55447,-0.779 0.86113,-0.392 1.24622,-0.676 2.12697,-2.997 0.58834,-1.148 0.0392,-0.25 -0.1355,-0.322\"},\"12125\":{\"name\":\"Union, FL\",\"path\":\"m 798.00898,473.70914 0.1355,0.322 -0.0392,0.25 -0.58834,1.148 -2.12697,2.997 -1.24622,0.676 -0.86113,0.392 -2.24107,-0.1 -0.92845,-1.21841 1.868,-2.61974 -0.16935,-0.79685 6.19726,-1.052\"},\"12121\":{\"name\":\"Suwannee, FL\",\"path\":\"m 784.54831,471.14714 1.17313,9.208 -1.43165,1.25 -1.22839,-1.458 -0.76307,-0.756 -0.32983,-0.241 -2.02356,-1.301 -0.93957,-0.443 -0.9895,-0.105 -0.0802,0.227 -0.30666,0.199 -0.61152,-0.139 -0.25674,-0.189 -0.70601,-1.633 -0.27456,-1.485 0.0178,-0.123 0.0802,-0.06 1.11786,-3.036 0.16046,-0.685 0.0553,-0.09 0.60261,-0.435 0.73989,-0.24 1.58141,0.03 0.9984,0.192 3.4142,1.304\"},\"12067\":{\"name\":\"Lafayette, FL\",\"path\":\"m 775.87821,474.10314 -0.0802,0.06 -0.0178,0.123 0.27456,1.485 0.70601,1.633 0.25674,0.189 0.61152,0.139 0.30666,-0.199 0.0802,-0.227 0.9895,0.105 0.93957,0.443 2.02356,1.301 0.32983,0.241 0.76307,0.756 1.22839,1.458 -0.60082,1.537 -7.88385,1.118 -0.6668,0.1 -0.57943,-1.633 -1.03585,-8.299 2.35517,-0.323\"},\"12123\":{\"name\":\"Taylor, FL\",\"path\":\"m 773.52304,474.42514 1.03585,8.3 0.57943,1.633 0.6668,-0.1 -0.14371,3.12005 -1.22376,0.68995 -0.68462,-0.171 -1.98077,-0.801 -0.21751,-0.187 -0.18541,-0.216 -0.68819,-0.941 0.007,-0.111 -0.13728,-0.435 -0.23356,-0.346 -1.02158,-1.212 -0.9057,-0.628 -0.16224,-0.105 -2.17867,-0.946 -1.18026,-0.337 -1.84705,-0.829 -1.28723,-0.756 2.74027,-5.433 6.9104,-0.922 0.12302,1.002 2.01464,-0.271\"},\"12129\":{\"name\":\"Wakulla, FL\",\"path\":\"m 746.87805,476.87714 9.1693,-1.191 0.2086,0.644 3.26978,-0.394 0.49742,4.063 -3.34288,0.476 -1.82388,0.9 -0.312,0.169 -0.0481,0.778 0.18364,0.829 0.0481,0.06 0.43502,0.51 -4.17014,-0.652 -1.29614,-0.763 -0.62401,-0.435 -0.85399,-1.109 -0.44605,-2.70802 -1.14605,-0.88298 0.25138,-0.296\"},\"12077\":{\"name\":\"Liberty, FL\",\"path\":\"m 747.9549,474.70514 -1.07685,2.172 -0.25138,0.296 1.14605,0.88298 0.44605,2.70802 0.85399,1.109 0.62401,0.435 1.29614,0.763 -9.16216,1.014 -0.24069,1.009 -2.2383,-1.48806 -0.14896,-3.51594 0.93244,-3.306 0.65966,-4.239 0.93957,-2.147 1.20887,-0.15767 0.21531,1.48321 2.11245,-0.14856 0.12533,1.20629 1.23932,-0.0582 0.16805,1.17519 0.83041,-0.0592 0.32069,0.866\"},\"12039\":{\"name\":\"Gadsden, FL\",\"path\":\"m 752.34076,467.20114 1.97008,-0.137 -0.80408,2.17 -0.9057,2.699 -0.0909,0.194 -0.28883,0.257 -0.40114,0.168 -2.63509,1.333 -1.23018,0.82 -0.32069,-0.866 -0.83041,0.0592 -0.16805,-1.17519 -1.23932,0.0582 -0.12533,-1.20629 -2.11245,0.14856 -0.21531,-1.48321 -1.20887,0.15767 1.05189,-2.555 0.025,0 9.52944,-0.642\"},\"12073\":{\"name\":\"Leon, FL\",\"path\":\"m 759.71828,466.68814 1.33401,3.02059 -1.56757,0.48941 -0.41006,2.074 0.45107,3.664 -3.26978,0.394 -0.2086,-0.644 -9.1693,1.191 1.07685,-2.172 1.23018,-0.82 2.63509,-1.333 0.40114,-0.168 0.28883,-0.257 0.0909,-0.194 0.9057,-2.699 0.80408,-2.17 3.89913,-0.275 1.50831,-0.101\"},\"12065\":{\"name\":\"Jefferson, FL\",\"path\":\"m 764.92604,466.33314 2.61191,-0.169 0.1765,0.272 0.17651,1.288 -0.56339,0.747 -1.57428,1.695 -1.1339,3.343 -0.14441,1.107 -2.74027,5.433 -1.71156,-0.05 -0.94849,-7.727 0.41006,-2.074 1.56757,-0.48941 -1.33401,-3.02059 5.20776,-0.355\"},\"12079\":{\"name\":\"Madison, FL\",\"path\":\"m 772.56564,465.81814 0.95027,-0.06 0.8843,0.394 0.92353,3.11 0.55447,1.061 0.12837,0.11 0.98949,0.63 -1.11786,3.036 -2.35517,0.322 -2.01464,0.271 -0.12302,-1.002 -6.9104,0.922 0.14441,-1.107 1.1339,-3.343 1.57428,-1.695 0.56339,-0.747 -0.17651,-1.288 -0.1765,-0.272 5.02769,-0.346\"},\"12047\":{\"name\":\"Hamilton, FL\",\"path\":\"m 776.93189,465.52714 8.84482,-0.608 -0.44929,0.867 -0.007,0.41 0.0802,0.636 0.39223,0.458 1.12499,1.188 0.12837,0.183 0.20325,0.55 0.007,0.208 -0.52951,1.375 -0.12302,0.151 -1.05189,0.516 -0.93066,-0.08 -0.0731,-0.233 -3.4142,-1.303 -0.9984,-0.193 -1.58141,-0.03 -0.73989,0.241 -0.60261,0.435 -0.0553,0.09 -0.16046,0.685 -0.98949,-0.63 -0.12837,-0.11 -0.55447,-1.061 -0.92353,-3.109 -0.8843,-0.394 3.41598,-0.236\"},\"12023\":{\"name\":\"Columbia, FL\",\"path\":\"m 787.86623,464.76614 2.45858,-0.177 1.48691,10.172 0.16935,0.79685 -1.868,2.61974 0.92845,1.21841 -2.19471,2.887 -3.12537,-1.928 -1.17313,-9.208 0.0731,0.233 0.93066,0.08 1.05189,-0.516 0.12302,-0.151 0.52951,-1.375 -0.007,-0.208 -0.20325,-0.55 -0.12837,-0.183 -1.12499,-1.188 -0.39223,-0.458 -0.0802,-0.636 0.007,-0.41 0.44929,-0.867 2.08952,-0.153\"},\"12003\":{\"name\":\"Baker, FL\",\"path\":\"m 791.12888,464.53214 4.03464,-0.247 0.57765,3.221 0.19433,0.514 0.36905,0.529 0.40828,0.321 0.13015,0.03 2.24998,-0.435 0.31557,2.016 0.43146,2.958 -1.83101,0.273 -6.19726,1.052 -1.48691,-10.172 0.80407,-0.06\"},\"12031\":{\"name\":\"Duval, FL\",\"path\":\"m 799.40853,470.47814 3.56574,-4.965 1.67768,-2.275 0.41898,-0.401 0.20146,-0.113 1.38172,-0.593 2.24107,0.09 0.29774,0.04 1.29436,1.052 0.37797,0.25 0.34588,0.289 0.55447,1.807 0.23356,1.366 0.21573,0.82 0.22464,0.653 0.18542,0.453 -1.11786,0.189 0.57943,3.326 -2.06635,0.353 -1.31754,-0.417 -0.45463,0 -1.07151,0.449 -0.22642,-1.576 -0.61687,0.08 -0.54734,0.121 -4.11308,0.683 -1.97721,0.288 -0.28704,-1.968\"},\"12089\":{\"name\":\"Nassau, FL\",\"path\":\"m 809.76344,458.77714 0.72384,4.534 -1.29436,-1.052 -0.29774,-0.04 -2.24107,-0.09 -1.38172,0.593 -0.20146,0.113 -0.41898,0.401 -1.67768,2.275 -3.56574,4.965 -0.31557,-2.016 0.10341,-1.592 0.10519,-1.573 -0.0143,-1.537 -0.25852,-0.706 -0.60261,-0.788 -0.30665,-0.465 -0.0874,-0.474 0.17116,-2.484 2.15014,-1.253 0.83617,0.563 3.06297,0.658 2.31238,0.257 1.22305,-0.06 1.67233,-0.201 0.30309,-0.03\"},\"13241\":{\"name\":\"Rabun, GA\",\"path\":\"m 763.82423,365.43214 -0.40293,1.831 -1.70442,1.324 -1.23553,2.243 -0.30666,1.737 -1.09758,-0.68276 -0.737,0.47111 -1.29369,-0.0674 -1.29369,-1.72612 -1.47399,0.29318 1.39599,-4.138 1.21592,-0.194 6.93358,-1.091\"},\"13281\":{\"name\":\"Towns, GA\",\"path\":\"m 748.50225,367.76214 7.17248,-1.045 -1.39599,4.138 -0.48315,0.585 -1.81497,0.41 -0.0802,-0.578 -0.68284,-1.599 -0.54913,-0.314 -0.54377,0.04 -1.13926,-0.643 -0.59548,-0.571 0.11233,-0.424\"},\"13205\":{\"name\":\"Mitchell, GA\",\"path\":\"m 757.66976,449.05514 0.94671,8.383 -2.20898,0.255 -5.07226,0.622 -2.56734,0.318 0.0161,-0.963 0.29417,-0.788 0.10697,-0.168 2.34448,-3.36 2.36408,-1.838 1.01089,-2.026 2.76523,-0.435\"},\"13007\":{\"name\":\"Baker, GA\",\"path\":\"m 749.28849,450.26814 5.61604,-0.778 -1.01089,2.026 -2.36408,1.838 -2.34448,3.36 -0.10697,0.168 -0.29417,0.788 -0.0161,0.963 -0.67749,0.06 -0.80563,-4.09584 -1.62085,0.22484 -0.40115,-4.011 4.02572,-0.547\"},\"13201\":{\"name\":\"Miller, GA\",\"path\":\"m 745.66392,454.82614 1.62085,-0.22484 0.80563,4.09584 -3.64775,0.669 -3.75472,0.369 -0.40115,-4.203 4.15587,-0.403 1.22127,-0.247 0,-0.03 0,-0.03\"},\"13099\":{\"name\":\"Early, GA\",\"path\":\"m 741.53479,449.70114 0.23354,1.2907 3.49444,-0.1767 0.40115,4.011 0,0.06 -1.22127,0.248 -4.15587,0.402 0.40115,4.203 -1.9469,0.16 -0.21216,-0.458 -0.14619,-0.262 -0.92888,-1.022 -0.14619,-0.04 -0.16938,0 -0.16937,-0.1 -0.19968,-0.465 -0.27278,-1.632 0.1355,-0.595 0.20859,-0.61 0.24247,-4.901 0.42433,0.715 0.44215,-0.05 0.37797,-0.121 0.53842,-0.213 2.66896,-0.445\"},\"13253\":{\"name\":\"Seminole, GA\",\"path\":\"m 740.68793,459.73514 3.75472,-0.369 -0.34409,0.843 0.35301,3.423 -0.15155,1.166 -0.61331,1.132 -0.77198,0.499 -0.28169,0.594 -0.0303,0.362 0.20859,0.458 -0.025,0 -3.46946,-6.283 -0.57587,-1.665 1.9469,-0.16\"},\"13087\":{\"name\":\"Decatur, GA\",\"path\":\"m 751.33523,458.31514 1.00553,8.886 -9.52944,0.642 -0.20859,-0.458 0.0303,-0.362 0.28169,-0.594 0.77198,-0.499 0.61331,-1.132 0.15155,-1.166 -0.35301,-3.423 0.34409,-0.843 3.64775,-0.669 0.67749,-0.06 2.56734,-0.318\"},\"13131\":{\"name\":\"Grady, GA\",\"path\":\"m 756.40749,457.69314 0.24247,2.259 0.29061,0.628 0.26386,0.33 0.39224,0.378 0.6133,5.501 -3.89913,0.275 -1.97008,0.137 -1.00553,-8.886 5.07226,-0.622\"},\"13275\":{\"name\":\"Thomas, GA\",\"path\":\"m 758.61647,457.43814 0.0477,0.70829 5.27954,-0.47629 0.98236,8.663 -5.20776,0.355 -1.50831,0.101 -0.6133,-5.501 -0.39224,-0.378 -0.26386,-0.33 -0.29061,-0.628 -0.24247,-2.259 2.20898,-0.255\"},\"13027\":{\"name\":\"Brooks, GA\",\"path\":\"m 769.05695,457.13214 1.76504,4.541 -0.51168,0.561 -0.5723,1.207 -0.0143,0.08 0.74702,1.096 0.31913,0.239 1.77574,0.958 -5.02769,0.346 -2.61191,0.169 -0.98236,-8.663 3.11955,-0.37086 -0.0887,-0.96314 2.08239,0.796\"},\"13071\":{\"name\":\"Colquitt, GA\",\"path\":\"m 767.43989,450.48714 0.22818,2.73248 -0.69351,3.11652 0.0887,0.96314 -3.11955,0.37086 -5.27954,0.47629 -0.0477,-0.70829 -0.66501,-5.89 6.72676,-0.772 2.76167,-0.289\"},\"13075\":{\"name\":\"Cook, GA\",\"path\":\"m 768.89649,449.77214 0,0.724 0.12659,0.36 0.12658,0.184 1.06438,0.747 0.312,0.114 1.09846,1.61404 0.5079,1.82496 0.4582,1.43 -3.53365,0.362 -2.08239,-0.796 0.69351,-3.11652 -0.22818,-2.73248 1.4566,-0.715\"},\"13173\":{\"name\":\"Lanier, GA\",\"path\":\"m 776.93724,452.54414 1.47265,-0.217 0.98771,7.181 -0.87539,0.581 -0.2496,-1.237 -0.51525,-0.923 -2.67431,0.296 -0.58656,-1.671 -0.11019,-0.80255 0.46822,-0.0585 -0.10126,-1.99894 2.47641,-0.331 0.0143,-0.09 -0.11945,-0.402 -0.1872,-0.328\"},\"13185\":{\"name\":\"Lowndes, GA\",\"path\":\"m 772.5906,456.77014 1.90589,-0.216 0.58656,1.671 2.67431,-0.296 0.51525,0.923 0.2496,1.237 -2.02672,0.80795 0.4364,4.63005 -3.41598,0.236 -0.95027,0.06 -1.77574,-0.958 -0.31913,-0.238 -0.74702,-1.097 0.0143,-0.08 0.5723,-1.207 0.51168,-0.561 -1.76504,-4.541 3.53365,-0.362\"},\"13101\":{\"name\":\"Echols, GA\",\"path\":\"m 779.3976,459.50814 2.54772,0.469 0.22464,0.36 0.28883,0.804 0.56338,0.628 0.2817,0.15 0.52238,0.148 0.73811,-0.03 0.39401,-0.06 0.77911,-0.02 1.29437,0.08 0.34587,0.141 0.19969,0.199 0.0713,0.12 0.21751,2.266 -2.08952,0.153 -8.84482,0.608 -0.4364,-4.63005 2.02672,-0.80795 0.87539,-0.581\"},\"13065\":{\"name\":\"Clinch, GA\",\"path\":\"m 778.40989,452.32714 5.83177,-0.794 1.75969,3.003 0.67571,0.683 1.23018,0.916 0.56276,3.10069 1.54102,-0.0787 0.40293,2.653 0.37797,2.039 0.33696,0.683 -0.80407,0.06 -2.45858,0.177 -0.21751,-2.266 -0.0713,-0.12 -0.19969,-0.199 -0.34587,-0.141 -1.29437,-0.08 -0.77911,0.02 -0.39401,0.06 -0.73811,0.03 -0.52238,-0.148 -0.2817,-0.15 -0.56338,-0.628 -0.28883,-0.804 -0.22464,-0.36 -2.54772,-0.469 -0.98771,-7.181\"},\"13003\":{\"name\":\"Atkinson, GA\",\"path\":\"m 784.49304,447.31314 -0.0442,1.90619 -1.32644,-0.0252 1.11923,2.33898 -5.83177,0.794 -1.47265,0.217 -0.18364,-0.964 -0.48316,-2.09 -0.89321,-0.69 -0.91283,-0.964 -0.0321,-0.06 -0.041,-0.383 3.53543,-0.412 1.91024,-0.14111 0.6874,0.67411 0.30309,0.296 3.66558,-0.498\"},\"13019\":{\"name\":\"Berrien, GA\",\"path\":\"m 774.11674,446.23514 0.27456,1.159 0.041,0.383 0.0321,0.06 0.91283,0.964 0.89321,0.69 0.48316,2.09 0.18364,0.964 0.1872,0.328 0.11945,0.401 -0.0143,0.09 -2.47641,0.331 0.10126,1.99894 -0.46822,0.0585 0.11019,0.80255 -1.90589,0.216 -0.4582,-1.43 -0.5079,-1.82496 -1.09846,-1.61404 -0.312,-0.114 -1.06438,-0.748 -0.12658,-0.183 -0.12659,-0.36 0,-0.724 1.478,-3.127 3.74225,-0.41\"},\"13155\":{\"name\":\"Irwin, GA\",\"path\":\"m 776.34354,441.25314 -2.2268,4.982 -3.74225,0.41 -3.50334,-2.264 0.42433,-3.866 1.60101,-0.192 0.9037,-0.046 0.19634,1.668 1.14383,-0.034 0.0828,0.48296 1.72938,-0.169 -0.0577,-0.49575 1.16662,-0.0741 2.28207,-0.40219\"},\"13277\":{\"name\":\"Tift, GA\",\"path\":\"m 764.05779,445.34314 -0.11687,-0.69865 2.93023,-0.26335 3.50334,2.264 -1.478,3.127 -1.4566,0.715 -2.76167,0.289 -0.62043,-5.433\"},\"13321\":{\"name\":\"Worth, GA\",\"path\":\"m 757.62163,439.67914 2.77236,0.674 0.0874,0.06 0.14441,0.908 0.41898,3.15 1.52613,-0.178 0.16937,0.06 0.58479,0.386 0.31197,0.68539 0.42079,-0.0764 0.62043,5.433 -6.72676,0.772 -0.2817,-2.493 -0.9984,-4.667 -0.21639,-2.50268 1.16666,-2.20632\"},\"13095\":{\"name\":\"Dougherty, GA\",\"path\":\"m 751.33523,445.71214 4.79863,-0.73185 0.5375,-0.59215 0.9984,4.667 -2.76523,0.435 -5.61604,0.778 -0.9057,-4.185 2.95244,-0.371\"},\"13037\":{\"name\":\"Calhoun, GA\",\"path\":\"m 746.509,446.32414 1.87379,-0.241 0.9057,4.185 -4.02572,0.547 -3.49444,0.1767 -0.23354,-1.2907 -0.28169,-2.719 5.2559,-0.658\"},\"13061\":{\"name\":\"Clay, GA\",\"path\":\"m 734.60656,444.03514 3.49621,-0.348 0.58421,3.493 2.56612,-0.198 0.28169,2.719 -2.66896,0.445 -0.53842,0.213 -0.37797,0.121 -0.44215,0.05 -0.42433,-0.715 -2.13766,-5.329 -0.33874,-0.449\"},\"13239\":{\"name\":\"Quitman, GA\",\"path\":\"m 735.51404,439.09814 3.19134,1.118 0.22969,3.36552 -0.8323,0.10548 -3.49621,0.348 0.90748,-4.937\"},\"13243\":{\"name\":\"Randolph, GA\",\"path\":\"m 743.57618,439.74314 1.08398,-0.13 0.33696,3.393 0.68284,0.273 0.87717,1.631 0.0642,0.786 -0.0642,0.451 -0.0481,0.177 -5.2559,0.658 -2.56612,0.186 -0.58421,-3.481 0.8323,-0.10548 -0.22969,-3.36552 4.8708,-0.473\"},\"13273\":{\"name\":\"Terrell, GA\",\"path\":\"m 751.00183,444.15414 0.3334,1.558 -2.95244,0.371 -1.87379,0.241 0.0481,-0.177 0.0642,-0.451 -0.0642,-0.786 -0.87717,-1.631 -0.68284,-0.273 -0.33696,-3.393 2.8699,-0.37723 0.006,-1.07577 2.30525,1.904 1.12842,0.39381 0.49972,1.19714 -0.40838,0.60337 -0.0591,1.89568 -2e-5,0 -3e-5,0 -3e-5,0 z\"},\"13177\":{\"name\":\"Lee, GA\",\"path\":\"m 757.76604,438.18514 -0.14441,1.494 -1.16666,2.20632 0.21639,2.50268 -0.5375,0.59215 -4.79863,0.73185 -0.3334,-1.558 0.0591,-1.89568 0.40838,-0.60337 -0.49972,-1.19714 -1.12842,-0.39381 -0.11767,-0.982 8.04253,-0.897\"},\"13081\":{\"name\":\"Crisp, GA\",\"path\":\"m 756.67136,435.55714 6.79273,-0.82 0.46533,3.985 0.14109,1.21991 -3.67652,0.41109 -2.77236,-0.674 0.14441,-1.494 -1.09468,-2.628\"},\"13287\":{\"name\":\"Turner, GA\",\"path\":\"m 763.92942,438.72214 2.5709,-0.184 0.79516,1.977 -0.42433,3.866 -2.93023,0.26335 0.11687,0.69865 -0.42079,0.0764 -0.31197,-0.68539 -0.58479,-0.386 -0.16937,-0.06 -1.52613,0.178 -0.41898,-3.15 -0.14441,-0.908 -0.0874,-0.06 3.67652,-0.41109 -0.14109,-1.21991\"},\"13017\":{\"name\":\"Ben Hill, GA\",\"path\":\"m 766.50032,438.53814 5.84068,-0.797 3.72085,1.061 0.28169,2.451 -2.28207,0.40219 -1.16662,0.0741 0.0577,0.49575 -1.72938,0.169 -0.0828,-0.48296 -1.14383,0.034 -0.19634,-1.668 -0.9037,0.046 -1.60101,0.192 -0.79516,-1.977\"},\"13069\":{\"name\":\"Coffee, GA\",\"path\":\"m 776.06185,438.80214 2.96491,-1.244 0.45107,3.303 4.0489,-0.595 0.34765,2.61 0.62579,-0.08 0.26565,2.025 -0.66629,0.0639 0.39351,2.42807 -3.66558,0.498 -0.30309,-0.296 -0.6874,-0.67411 -1.91024,0.14111 -3.53543,0.412 -0.27456,-1.159 2.2268,-4.982 -0.28169,-2.451\"},\"13005\":{\"name\":\"Bacon, GA\",\"path\":\"m 785.44866,439.10914 1.49404,0.827 0.91462,0.474 1.29436,0.337 2.2268,1.102 0.19434,0.208 0.16759,0.33 -0.2496,0.04 -1.0519,1.021 0.0802,0.578 -0.73276,0.98 -1.42629,0.523 -1.53037,0.0268 -0.38905,-0.86994 -1.67485,0.13513 -0.26565,-2.025 -0.62579,0.08 -0.34765,-2.61 2.07676,-0.23222 -0.15483,-0.92478\"},\"13305\":{\"name\":\"Wayne, GA\",\"path\":\"m 794.19185,435.13114 1.66164,0.635 6.75886,4.813 1.05367,1.831 -1.64558,3.119 -0.69532,-0.305 -0.77734,-0.259 -0.91639,0.36 -1.39064,0.403 -2.16084,-0.151 -0.20859,-0.137 -0.97572,-2.00353 -1.13877,0.0345 -1.0198,-6.878 0.73098,-1.205 0.72384,-0.257\"},\"13229\":{\"name\":\"Pierce, GA\",\"path\":\"m 791.74041,442.38714 2.01642,1.084 1.13877,-0.0345 0.97572,2.00353 1.1553,1.351 -0.0464,0.497 -0.25851,0.289 -3.22165,2.179 -0.0571,0 -1.80783,-0.243 -2.20822,-1.05449 -1.06691,-2.92951 1.42629,-0.523 0.73276,-0.98 -0.0802,-0.578 1.0519,-1.021 0.2496,-0.04\"},\"13025\":{\"name\":\"Brantley, GA\",\"path\":\"m 802.02044,445.52914 -0.13015,3.753 -1.07508,1.583 -1.248,0.394 -0.34588,0.16 -0.12124,0.195 -0.0945,0.93 -2.52454,-0.274 -0.16937,1.542 -0.99485,0.137 -2.10248,-1.76118 -0.22746,-1.55737 -1.4503,-0.3753 0.0986,-0.74215 1.80783,0.243 0.0571,0 3.22165,-2.179 0.25851,-0.289 0.0464,-0.497 -1.1553,-1.351 0.20859,0.137 2.16084,0.151 1.39064,-0.403 0.91639,-0.36 0.77734,0.259 0.69532,0.305\"},\"13299\":{\"name\":\"Ware, GA\",\"path\":\"m 784.76582,444.82114 1.67485,-0.13513 0.38905,0.86994 1.53037,-0.0268 1.06691,2.92951 2.20822,1.05449 -0.0986,0.74215 1.4503,0.3753 0.22746,1.55737 2.10248,1.76118 -5.54472,0.749 0.62579,4.981 4.74956,-0.586 0.57052,0.06 -0.55447,5.128 -4.03464,0.247 -0.33696,-0.682 -0.37797,-2.04 -0.40293,-2.653 -1.54102,0.0787 -0.56276,-3.10069 -1.23018,-0.916 -0.67571,-0.683 -1.75969,-3.003 -1.11923,-2.33898 1.32644,0.0252 0.0442,-1.90619 -0.39351,-2.42807 0.66629,-0.0639\"},\"13049\":{\"name\":\"Charlton, GA\",\"path\":\"m 799.0056,452.54414 1.34785,5.046 -2.15014,1.253 -0.17116,2.484 0.0874,0.474 0.30665,0.465 0.60261,0.788 0.25852,0.706 0.0143,1.537 -0.10519,1.573 -0.10341,1.592 -2.24998,0.435 -0.13015,-0.03 -0.40828,-0.321 -0.36905,-0.529 -0.19433,-0.514 -0.57765,-3.221 0.55447,-5.128 -0.57052,-0.06 -4.74956,0.586 -0.62579,-4.981 5.54472,-0.749 0.99485,-0.137 0.16937,-1.542 2.52454,0.274\"},\"13039\":{\"name\":\"Camden, GA\",\"path\":\"m 808.59923,451.83714 1.16421,6.94 -0.30309,0.03 -1.67233,0.202 -1.22305,0.06 -2.31238,-0.257 -3.06297,-0.658 -0.83617,-0.563 -1.34785,-5.046 0.0945,-0.93 0.12124,-0.195 0.34588,-0.16 1.248,-0.394 1.07508,-1.583 0.0731,0.272 0.0624,0.09 1.58141,0.485 0.92531,0.04 4.06673,1.673\"},\"13127\":{\"name\":\"Glynn, GA\",\"path\":\"m 811.07385,444.98314 -2.47462,6.854 -4.06673,-1.673 -0.92531,-0.04 -1.58141,-0.485 -0.0624,-0.09 -0.0731,-0.272 0.13015,-3.753 1.64558,-3.119 0.0143,0.07 1.05189,0.994 1.3425,0.812 2.73314,0.524 1.94333,0.24 0.3227,-0.07\"},\"13191\":{\"name\":\"McIntosh, GA\",\"path\":\"m 805.36866,436.41614 0.63471,0.184 0.95561,0.669 0.49921,0.119 1.40668,-0.595 1.05903,0.04 0.56338,0.184 0.35301,0.169 0.64184,0.53 0.0802,0.16 0.0267,0.635 -0.51525,6.47 -0.3227,0.07 -1.94333,-0.24 -2.73314,-0.524 -1.3425,-0.812 -1.05189,-0.994 -0.0143,-0.07 -1.05367,-1.831 1.58196,-1.38856 1.17435,-2.77444\"},\"13149\":{\"name\":\"Heard, GA\",\"path\":\"m 732.61331,406.07414 1.99325,4.436 -5.41636,2.836 -1.8631,-6.725 5.28621,-0.547\"},\"13143\":{\"name\":\"Haralson, GA\",\"path\":\"m 724.34614,395.94014 2.21076,-0.207 1.05902,-0.265 3.07189,-0.314 0.47246,2.098 -0.0292,2.2619 -1.40062,0.5181 -2.90965,1.438 -0.91639,0.08 -1.55823,-5.611\"},\"13233\":{\"name\":\"Polk, GA\",\"path\":\"m 730.23674,390.74314 2.36944,0.05 -0.69532,3.133 -1.34607,0.13 0.12302,1.1 -3.07189,0.313 -1.05902,0.266 -2.21076,0.207 -0.39401,-1.405 -0.73098,-2.628 3.08615,-0.314 -0.0339,-0.385 3.96332,-0.465\"},\"13115\":{\"name\":\"Floyd, GA\",\"path\":\"m 728.51627,379.51614 -0.21287,4.05438 1.9173,0.28562 0.12836,1.044 0.007,3.112 -0.3851,0.04 0.26564,2.692 -3.96332,0.465 0.0339,0.385 -3.08615,0.314 -1.28545,-4.644 1.40669,-0.145 0.99484,-2.2 0.98771,-0.565 1.50296,-1.118 0.15332,-0.465 0.81121,-3.174 0.72384,-0.08\"},\"13055\":{\"name\":\"Chattooga, GA\",\"path\":\"m 727.79243,379.59614 -0.81121,3.174 -0.15332,0.465 -1.50296,1.118 -0.98771,0.565 -0.99484,2.2 -1.40669,0.145 -1.57606,-5.351 -0.40827,-1.454 7.84106,-0.862\"},\"13313\":{\"name\":\"Whitfield, GA\",\"path\":\"m 729.1688,370.11514 3.09328,-0.362 -0.37975,1.478 0.0662,4.36645 -1.24467,0.76155 -0.0588,0.765 0.6454,0.978 -2.51741,0.564 -0.26565,-2.234 -2.20898,0.24 0.025,-0.192 0.30487,-0.941 0.2086,-1.238 1.17491,-0.353 0.44037,-0.909 0.7078,-2.571 -0.0481,-0.344 0.0571,0\"},\"13047\":{\"name\":\"Catoosa, GA\",\"path\":\"m 723.81485,370.78914 5.2969,-0.665 0.0481,0.344 -0.7078,2.571 -0.44037,0.909 -1.17491,0.353 -0.2086,1.238 -1.07202,0.17183 -0.33466,-1.8839 -1.07202,0.16434 -0.33466,-3.20227\"},\"13295\":{\"name\":\"Walker, GA\",\"path\":\"m 723.81485,370.78914 0.33466,3.20227 1.07202,-0.16434 0.33466,1.8839 1.07202,-0.17183 -0.30487,0.941 -0.025,0.192 2.20898,-0.24 0.26565,2.234 -0.25674,0.85 -0.72384,0.08 -7.84106,0.862 -0.22465,-0.79 0.69711,-1.147 0.52238,-2.146 -0.10163,-0.869 0.42433,-2.626 0.71493,-1.841 1.83101,-0.25\"},\"13083\":{\"name\":\"Dade, GA\",\"path\":\"m 721.98384,371.03914 -0.71493,1.841 -0.42433,2.627 0.10163,0.868 -0.52238,2.146 -0.69711,1.147 -1.51187,-5.344 -0.72384,-2.811 2.47462,-0.257 2.01821,-0.217\"},\"13183\":{\"name\":\"Long, GA\",\"path\":\"m 797.8717,430.20514 0.49029,0.595 1.14984,0.27778 -0.073,1.90822 0.0553,0.248 2.74918,2.123 2.96492,1.067 0.16045,0 -1.17435,2.77444 -1.58196,1.38856 -6.75886,-4.814 2.01821,-5.561\"},\"13001\":{\"name\":\"Appling, GA\",\"path\":\"m 790.5031,433.66714 3.68875,1.464 -0.72384,0.257 -0.73098,1.205 1.0198,6.878 -2.01642,-1.084 -0.16759,-0.33 -0.19434,-0.208 -2.2268,-1.102 -1.29436,-0.337 -0.91462,-0.474 -1.49404,-0.827 -0.39402,-2.919 1.71869,-0.232 -0.31378,-2.3 -0.10876,-0.624 4.15231,0.633\"},\"13161\":{\"name\":\"Jeff Davis, GA\",\"path\":\"m 786.35079,433.03414 0.10876,0.624 0.31378,2.3 -1.71869,0.232 0.39402,2.919 0.15483,0.92478 -2.07676,0.23222 -4.0489,0.595 -0.45107,-3.303 3.3518,-2.853 1.83992,-1.198 1.166,-0.442 0.96631,-0.03\"},\"13259\":{\"name\":\"Stewart, GA\",\"path\":\"m 742.65978,432.60114 0.18364,-0.03 0.19255,0.162 0.15332,1.307 0.12837,1.551 -0.007,1.673 0.26565,2.483 -4.8708,0.473 -3.19134,-1.118 -0.0535,-1.719 2.08953,-4.127 5.1097,-0.651\"},\"13307\":{\"name\":\"Webster, GA\",\"path\":\"m 742.84342,432.56714 0.54734,-0.06 1.60636,1.152 0.41719,0.504 0.88431,0.28 1.01267,-0.114 0.22464,3.835 -0.006,1.07577 -2.8699,0.37723 -1.08398,0.13 -0.26565,-2.483 0.007,-1.673 -0.12837,-1.551 -0.15332,-1.307 -0.19255,-0.162\"},\"13261\":{\"name\":\"Sumter, GA\",\"path\":\"m 751.7967,431.33202 0.75686,-0.003 0.10953,0.77856 2.09942,0.32142 1.90885,3.12767 1.09468,2.628 -8.04253,0.897 0.11767,0.982 -2.30525,-1.904 -0.22464,-3.835 -0.0642,-0.738 4.64114,-0.7511 -0.0915,-1.50402\"},\"13315\":{\"name\":\"Wilcox, GA\",\"path\":\"m 768.46861,432.27014 3.16637,4.348 0.70602,1.123 -5.84068,0.797 -2.5709,0.184 -0.46533,-3.985 -0.25138,-2.056 2.27672,-0.299 1.02693,-0.303 0.34766,-0.234 0.80408,-0.08 0.21394,0.05 0.58657,0.458\"},\"13271\":{\"name\":\"Telfair, GA\",\"path\":\"m 776.25618,430.52814 6.12238,4.177 -3.3518,2.853 -2.96491,1.244 -3.72085,-1.061 -0.70602,-1.123 4.6212,-6.09\"},\"13309\":{\"name\":\"Wheeler, GA\",\"path\":\"m 779.65611,426.00314 1.30685,0.08 0.17829,0.03 0.16045,0.456 0.68284,2.298 0.14798,1.224 0.57587,1.814 0.19968,0.352 0.0874,0.146 1.22305,1.109 -1.83992,1.198 -6.12238,-4.177 0.6347,-1.505 2.76523,-3.02\"},\"13091\":{\"name\":\"Dodge, GA\",\"path\":\"m 767.77864,428.49314 0.91887,-1.34379 -0.46702,-0.36553 2.16383,-2.85064 0.9037,0.57596 3.7048,5.905 1.88806,-1.391 -0.6347,1.505 -4.6212,6.09 -3.16637,-4.348 0.48137,-0.53 0.0571,-0.185 0.12124,-1.077 -1.80962,-1.398 0.45999,-0.587\"},\"13235\":{\"name\":\"Pulaski, GA\",\"path\":\"m 767.77864,428.49314 -0.45999,0.587 1.80962,1.398 -0.12124,1.077 -0.0571,0.185 -0.48137,0.53 -0.58657,-0.459 -0.21394,-0.05 -0.80408,0.08 -0.34766,0.234 -1.02693,0.303 -2.27672,0.299 -0.64897,-3.874 1.19763,-2.97475 0.71361,0.0908 3.30366,2.57\"},\"13093\":{\"name\":\"Dooly, GA\",\"path\":\"m 762.56374,428.80714 0.64897,3.874 0.25138,2.056 -6.79273,0.82 -1.90885,-3.12767 1.06618,-2.17759 2.24935,-0.91374 4.4857,-0.531\"},\"13193\":{\"name\":\"Macon, GA\",\"path\":\"m 754.19138,424.82114 1.70265,-0.14746 1.70264,0.60546 0.48137,4.059 -2.24935,0.91374 -1.06618,2.17759 -2.09942,-0.32142 -0.10953,-0.77856 -0.75686,0.003 -0.85487,0.008 -0.29017,-1.41687 -0.63974,0.0621 0.0325,-1.52443 -0.1292,-0.78492 0.97331,-0.19333 0.62374,-1.61852 0.48928,-0.86559 1.47311,-0.45064 0.71671,0.273\"},\"13249\":{\"name\":\"Schley, GA\",\"path\":\"m 747.88181,428.13114 2.16262,0.33 -0.0325,1.52443 0.63974,-0.0621 0.29017,1.41687 0.85487,-0.008 0.0915,1.50402 -4.64114,0.7511 -0.16938,-1.508 -0.0282,-1.46246 0.60051,-0.12954 -0.37083,-2.66 z m 0,0 0,0\"},\"13197\":{\"name\":\"Marion, GA\",\"path\":\"m 742.24259,425.63214 3.62279,-1.068 1.41382,3.263 0.37083,2.66 -0.60051,0.12954 0.0282,1.46246 0.16938,1.508 0.0642,0.738 -1.01267,0.114 -0.88431,-0.28 -0.41719,-0.504 -1.60636,-1.152 -0.54734,0.06 -0.18364,0.03 -0.85396,-6.20042 0.43351,-0.0347 0.003,-0.73386\"},\"13053\":{\"name\":\"Chattahoochee, GA\",\"path\":\"m 742.24259,425.63214 -0.003,0.73386 -0.43351,0.0347 0.85396,6.20042 -5.1097,0.651 0.0464,-0.07 0.16046,-0.724 -0.19255,-0.383 -0.47424,-0.396 -1.27654,-0.344 -0.12123,-0.136 -0.041,-0.194 0.21573,-0.82 1.9879,-1.054 2.1127,-0.602 0.58374,-2.00771 0.63752,-0.39429 1.05368,-0.499\"},\"13215\":{\"name\":\"Muscogee, GA\",\"path\":\"m 733.4887,424.96514 3.36784,-0.385 0.0642,0.554 4.08277,-0.499 0.18542,1.496 -0.63752,0.39429 -0.58374,2.00771 -2.1127,0.602 -1.9879,1.054 -0.53486,-3.174 -1.84349,-2.05\"},\"13269\":{\"name\":\"Taylor, GA\",\"path\":\"m 748.36496,419.94514 1.76505,1.116 2.30078,0.35405 0.63948,1.81733 1.33862,1.01062 -0.93422,0.305 -1.47311,0.45064 -0.48928,0.86559 -0.62373,1.61852 -0.97332,0.19333 0.1292,0.78492 -2.16262,-0.33 -0.60261,-0.304 -1.41382,-3.263 2.49958,-4.619\"},\"13263\":{\"name\":\"Talbot, GA\",\"path\":\"m 743.77586,417.38614 0.17115,-0.07 0.41541,0.1 1.3015,0.836 0.30665,0.392 0.2389,0.468 0.0481,0.169 0.17651,0.137 0.9574,0.36 0.97344,0.163 -2.49958,4.619 -3.62279,1.068 -1.05368,0.499 -0.18542,-1.496 -0.82012,-5.953 2.38783,-0.35221 1.20466,-0.94379\"},\"13145\":{\"name\":\"Harris, GA\",\"path\":\"m 737.02591,418.40814 1.74007,-0.26635 1.41739,0.54035 0.82012,5.953 -4.08277,0.499 -0.0642,-0.554 -3.36784,0.385 -1.38886,-3.059 -1.2284,-2.735 6.15447,-0.763\"},\"13285\":{\"name\":\"Troup, GA\",\"path\":\"m 734.60656,410.51014 1.54396,-0.15813 0.87539,8.05613 -6.15447,0.763 -1.54396,-5.343 -0.13728,-0.482 5.41636,-2.836\"},\"13045\":{\"name\":\"Carroll, GA\",\"path\":\"m 731.16027,397.25214 2.66004,0.417 0.51982,4.32712 1.79435,0.21388 -0.33613,1.06154 -3.18504,2.80246 -5.28621,0.547 -0.34588,-1.239 -1.07685,-3.831 0.91639,-0.08 2.90965,-1.438 1.40062,-0.5181 0.0292,-2.2619\"},\"13223\":{\"name\":\"Paulding, GA\",\"path\":\"m 732.60618,390.79114 3.48729,-0.339 0.32983,3.029 0.30844,-0.04 0.35122,3.254 -3.26265,0.973 -2.66004,-0.417 -0.47246,-2.098 -0.12302,-1.1 1.34607,-0.13 0.69532,-3.133\"},\"13213\":{\"name\":\"Murray, GA\",\"path\":\"m 735.77255,369.32214 0.4172,3.043 0.72384,0.555 0.0481,0.07 -0.007,0.07 -0.40293,0.692 -0.49742,0.545 -0.22464,1.061 0.44928,3.336 -4.98847,-0.596 -0.6454,-0.978 0.0588,-0.765 1.24467,-0.76155 -0.0662,-4.36645 0.37975,-1.478 0.64005,-0.08 2.87042,-0.351\"},\"13129\":{\"name\":\"Gordon, GA\",\"path\":\"m 731.29042,378.10214 4.98847,0.596 0.0963,0.786 0.39402,3.127 -6.54848,1.245 -1.9173,-0.28562 0.21287,-4.05438 0.25674,-0.85 2.51741,-0.564\"},\"13015\":{\"name\":\"Bartow, GA\",\"path\":\"m 736.76918,382.61114 0.8112,7.697 -4.9742,0.483 -2.36944,-0.05 -0.26564,-2.692 0.3851,-0.04 -0.007,-3.111 -0.12836,-1.045 6.54848,-1.245\"},\"13067\":{\"name\":\"Cobb, GA\",\"path\":\"m 737.58038,390.30814 4.53206,-0.442 0.76485,1.727 -0.67749,2.798 -0.21573,0.898 -0.11232,0.332 -1.18739,1.492 -0.65253,0.685 -1.09787,-1.36206 -1.851,0.26006 -0.35122,-3.254 -0.30844,0.04 -0.32983,-3.029 1.48691,-0.144\"},\"13097\":{\"name\":\"Douglas, GA\",\"path\":\"m 733.82031,397.66914 3.26265,-0.973 1.851,-0.26006 1.09787,1.36206 -1.19096,1.906 -1.79891,1.139 -0.73098,0.843 -0.15333,0.227 -0.0232,0.297 -1.79435,-0.21388 -0.51982,-4.32712\"},\"13077\":{\"name\":\"Coweta, GA\",\"path\":\"m 735.79835,403.27168 3.83246,-0.28337 0.47234,0.41183 0.27456,2.378 1.22839,1.171 0.86113,1.061 0.44215,0.747 0.0143,0.843 -6.77313,0.75187 -1.54396,0.15813 -1.99325,-4.436 3.18504,-2.80246\"},\"13199\":{\"name\":\"Meriwether, GA\",\"path\":\"m 743.12511,410.45414 0.0232,4.939 0.62757,1.993 -1.20466,0.94379 -2.38783,0.35221 -1.41739,-0.54035 -1.74007,0.26635 -0.87539,-8.05613 6.77313,-0.75187 0.20146,0.854\"},\"13231\":{\"name\":\"Pike, GA\",\"path\":\"m 743.12511,410.45414 0.79516,-0.693 1.10003,-0.118 0.43502,0.376 2.3837,-0.272 0.14798,4.581 -4.30167,0.37116 -0.53704,0.69384 -0.0232,-4.939\"},\"13293\":{\"name\":\"Upson, GA\",\"path\":\"m 747.987,414.32814 2.7463,-0.3361 0.21861,1.3311 0.21573,1.897 -0.0174,1.04092 -0.39386,0.0998 -0.62638,2.70032 -1.76505,-1.116 -0.97344,-0.163 -0.9574,-0.36 -0.17651,-0.137 -0.0481,-0.17 -0.2389,-0.467 -0.30665,-0.392 -1.3015,-0.836 -0.41541,-0.1 -0.17115,0.07 -0.62757,-1.993 0.53704,-0.69384 4.30167,-0.37116\"},\"13079\":{\"name\":\"Crawford, GA\",\"path\":\"m 751.16764,417.22014 4.43578,-0.531 1.62719,2.1157 1.70039,1.066 -0.692,0.0701 -3.83011,4.29516 -1.33862,-1.01087 -0.63948,-1.81758 -2.30078,-0.35455 0.62638,-2.69982 0.39386,-0.0995 0.0174,-1.04067\"},\"13225\":{\"name\":\"Peach, GA\",\"path\":\"m 754.40889,424.24314 3.83011,-4.30245 1.47928,-0.14255 0.11589,3.698 -0.0285,0.255 -1.41267,0.33084 0.20032,1.55016 -0.35301,0.225 -0.19255,0.04 -0.45106,-0.62 -1.70265,-0.60546 -1.70264,0.14746 -0.71733,-0.273 0.93484,-0.305\"},\"13153\":{\"name\":\"Houston, GA\",\"path\":\"m 759.71828,419.79814 0,0 2.06278,0.378 0.61004,-0.007 0.82516,2.89712 0.95962,0.79967 0.1529,0.90724 0.1462,1.157 -0.71361,-0.0907 -1.19763,2.97475 -4.4857,0.532 -0.48137,-4.06 0.45106,0.62 0.19255,-0.04 0.35301,-0.225 -0.20029,-1.55898 1.41264,-0.32202 0.0285,-0.255 -0.11589,-3.698\"},\"13023\":{\"name\":\"Bleckley, GA\",\"path\":\"m 771.29802,424.50914 -0.9037,-0.57596 -2.16383,2.85064 0.46702,0.36553 -0.91887,1.34379 -3.30366,-2.571 -0.1462,-1.157 4.79057,-3.713 2.17867,3.457\"},\"13175\":{\"name\":\"Laurens, GA\",\"path\":\"m 769.11935,421.05214 4.76561,-3.536 1.77753,-0.426 1.55822,0.458 -0.10424,0.81878 2.586,0.57422 0.16937,2.03 0.55447,0.188 -0.21293,0.98681 -1.10968,2.94335 0.55241,0.91384 -2.76523,3.02 -1.88806,1.391 -3.7048,-5.905 -2.17867,-3.457\"},\"13319\":{\"name\":\"Wilkinson, GA\",\"path\":\"m 765.56966,413.57114 3.46946,-2.195 0.28883,-0.239 0.28882,0.02 1.29615,1.22 1.03407,1.697 0.8629,0.298 0.32092,0.199 0.51347,0.806 0.27278,0.945 -0.0321,1.198 -4.76561,3.536 -4.41082,-6.716 0.86113,-0.765\"},\"13289\":{\"name\":\"Twiggs, GA\",\"path\":\"m 762.84543,415.82814 1.8631,-1.492 4.41082,6.716 -4.79057,3.713 -0.1529,-0.90699 -0.95962,-0.79942 -0.82516,-2.89687 -0.61004,0.007 -0.33382,-1.56715 0.47288,-0.16885 1.23732,-1.6 0.19968,-0.586 -0.51169,-0.419\"},\"13021\":{\"name\":\"Bibb, GA\",\"path\":\"m 758.76266,413.85214 0.38688,0.787 0.8023,0.565 1.14638,-0.145 0.66858,0.152 1.07863,0.617 0.51169,0.419 -0.19968,0.586 -1.23732,1.6 -0.47288,0.16885 0.33382,1.56715 -2.06278,-0.378 -0.78728,0.0798 -1.70039,-1.06614 -1.62719,-2.1157 3.15924,-2.837\"},\"13009\":{\"name\":\"Baldwin, GA\",\"path\":\"m 766.3559,407.38414 0.39402,-0.04 3.06832,0.407 0.0606,0.09 0.0125,0.136 -0.0232,0.185 -0.10519,0.07 -0.0713,0.193 -0.0749,0.852 0.0588,0.191 0.40293,0.604 0.47781,-0.403 0.34766,-0.424 0.009,3.124 -1.29615,-1.22 -0.28882,-0.02 -0.28883,0.239 -3.46946,2.195 -2.15371,-5.754 2.93995,-0.433\"},\"13169\":{\"name\":\"Jones, GA\",\"path\":\"m 763.41595,407.81714 2.15371,5.754 -0.86113,0.765 -1.8631,1.492 -1.07863,-0.617 -0.66858,-0.152 -1.14638,0.145 -0.8023,-0.565 -0.38688,-0.787 -2.5388,-3.84 5.02234,-1.583 2.16975,-0.612\"},\"13207\":{\"name\":\"Monroe, GA\",\"path\":\"m 751.73281,408.93414 4.23431,-0.02 0.25674,1.094 2.5388,3.841 -3.15924,2.836 -4.43578,0.531 -0.21573,-1.897 1.32289,-0.144 0.14619,-0.403 -0.68818,-5.842\"},\"13171\":{\"name\":\"Lamar, GA\",\"path\":\"m 751.73281,408.93414 0.68818,5.842 -0.14619,0.403 -1.32289,0.144 -0.21861,-1.3311 -2.7463,0.3361 -0.14798,-4.581 2.32004,0.005 0.005,-0.62391 1.56893,-0.194\"},\"13255\":{\"name\":\"Spalding, GA\",\"path\":\"m 744.72434,406.32214 0.63471,-0.08 1.95448,-0.26996 0.18759,0.48728 1.55783,-0.34207 0.25606,0.64029 0.97724,0.13546 -0.12837,2.234 -0.005,0.62341 -2.32004,-0.005 -2.3837,0.273 -0.43502,-0.376 -1.10003,0.118 -0.79516,0.693 -0.20146,-0.854 -0.0143,-0.843 1.19595,-0.35209 0.61901,-2.08291\"},\"13113\":{\"name\":\"Fayette, GA\",\"path\":\"m 740.10315,403.40014 0.26227,-0.9068 2.46373,-0.5592 1.61382,1.32501 0.28137,3.06299 -0.61901,2.08291 -1.19595,0.35209 -0.44215,-0.747 -0.86113,-1.061 -1.22839,-1.171 -0.27456,-2.378\"},\"13063\":{\"name\":\"Clayton, GA\",\"path\":\"m 745.90639,399.32414 0.40114,0.321 0.18542,1.118 0.0214,0.763 -0.24782,2.676 -0.16046,0.208 -0.90748,0.412 0.16046,1.421 -0.63471,0.08 -0.28137,-3.06299 -1.61382,-1.32501 -0.15581,-2.27929 1.92977,-0.19371 1.30328,-0.137\"},\"13035\":{\"name\":\"Butts, GA\",\"path\":\"m 753.24111,402.95714 1.39064,1.751 1.33537,4.209 -4.23431,0.02 -1.56893,0.195 0.12837,-2.234 2.94886,-3.937\"},\"13151\":{\"name\":\"Henry, GA\",\"path\":\"m 745.90639,399.32414 1.83814,-0.202 1.06668,1.74288 1.9321,0.66112 0.37678,0.79695 1.45854,0.0758 0.66248,0.55828 -2.94886,3.937 -0.97724,-0.13546 -0.25606,-0.64029 -1.55783,0.34207 -0.18759,-0.48728 -1.95448,0.26996 -0.16046,-1.421 0.90748,-0.412 0.16046,-0.208 0.24782,-2.676 -0.0214,-0.763 -0.18542,-1.118 -0.40114,-0.321\"},\"13089\":{\"name\":\"DeKalb, GA\",\"path\":\"m 745.10944,392.18914 1.59789,1.86971 3.76142,2.23029 -0.54556,0.681 -0.71634,2.4931 -0.73116,-0.4139 -0.73116,0.0728 -1.83814,0.202 -1.30328,0.137 -0.19255,-1.695 -0.15333,-1.391 -0.0214,-0.218 -0.46711,-3.879 0.73358,0.12521 0.60713,-0.21521\"},\"13121\":{\"name\":\"Fulton, GA\",\"path\":\"m 744.79566,386.91014 0.32116,1.59373 3.10195,1.13027 -1.21183,0.43598 -0.34284,0.84152 -1.06699,0.0594 -0.48767,1.21808 -0.60713,0.21521 -0.73358,-0.12521 0.46711,3.879 0.0214,0.218 0.15333,1.391 0.19255,1.695 -1.92977,0.19371 0.15581,2.27929 -2.46373,0.5587 -0.26227,0.9063 -0.47234,-0.41133 -3.83246,0.28387 0.33613,-1.06154 0.0232,-0.297 0.15333,-0.227 0.73098,-0.843 1.79891,-1.139 1.19096,-1.906 0.65253,-0.685 1.18739,-1.492 0.11232,-0.332 0.21573,-0.898 0.67749,-2.798 -0.76485,-1.727 0.005,-0.97073 0.90253,-0.62314 0.26528,-1.26039 1.51083,-0.10174\"},\"13057\":{\"name\":\"Cherokee, GA\",\"path\":\"m 744.27328,382.43314 0.10519,1.054 0.41719,3.423 -1.51083,0.10174 -0.26528,1.26039 -0.90253,0.62314 -0.005,0.97073 -4.53206,0.442 -0.8112,-7.697 7.5041,-0.178\"},\"13227\":{\"name\":\"Pickens, GA\",\"path\":\"m 736.37516,379.48414 1.75078,-0.25 3.53543,-0.385 0.44216,-0.387 0.041,0.332 0.71493,1.792 1.18026,-0.136 0.23356,1.983 -7.5041,0.178 -0.39402,-3.127\"},\"13085\":{\"name\":\"Dawson, GA\",\"path\":\"m 744.72434,376.85614 0.19969,0.33 0.42868,1.4534 1.58733,1.39427 2.42155,0.88033 0.66679,1.897 -5.64991,0.676 -0.10519,-1.054 -0.23356,-1.983 -1.18026,0.136 -0.71493,-1.792 -0.041,-0.332 1.59888,-0.29818 1.02193,-1.30782\"},\"13117\":{\"name\":\"Forsyth, GA\",\"path\":\"m 744.37847,383.48714 5.64991,-0.676 0.60905,1.99903 -0.73237,1.42513 -1.38142,0.63184 -0.67383,2.04973 0.36896,0.71727 -3.10195,-1.13027 -0.32116,-1.59373 -0.41719,-3.423\"},\"13135\":{\"name\":\"Gwinnett, GA\",\"path\":\"m 753.24825,387.20714 -0.39743,2.64603 1.34056,1.83497 -3.03088,3.739 -0.69175,0.862 -3.76142,-2.23029 -1.59789,-1.86971 0.48767,-1.21808 1.06699,-0.0594 0.34284,-0.84152 1.21183,-0.43598 -0.36896,-0.71727 0.67383,-2.04973 3.92649,0.98106 0.79812,-0.64106\"},\"13247\":{\"name\":\"Rockdale, GA\",\"path\":\"m 752.55114,396.22214 0.052,2.10164 -1.85981,3.20236 -1.9321,-0.66112 -1.06668,-1.74288 0.73116,-0.0728 0.73116,0.4139 0.71634,-2.4931 0.54556,-0.681 0.69175,-0.862 1.39064,0.795\"},\"13159\":{\"name\":\"Jasper, GA\",\"path\":\"m 760.6739,402.38514 0.5723,6.044 -5.02234,1.583 -0.25674,-1.095 -1.33537,-4.209 0.48703,-1.44721 0.99186,-0.58179 1.35244,-1.15874 0.12645,-0.87026 3.08437,1.735\"},\"13217\":{\"name\":\"Newton, GA\",\"path\":\"m 752.55114,396.22214 4.85298,2.806 0.18541,1.622 -0.12645,0.87026 -1.35244,1.15874 -0.99186,0.58179 -0.48703,1.44721 -1.39064,-1.751 -0.66248,-0.55828 -1.45854,-0.0758 -0.37678,-0.79695 1.85981,-3.20236 -0.052,-2.10164\"},\"13297\":{\"name\":\"Walton, GA\",\"path\":\"m 754.19138,391.68814 0.95557,0.69744 1.97547,-0.52644 2.92569,1.679 -2.64399,5.49 -4.85298,-2.806 -1.39064,-0.795 3.03088,-3.739\"},\"13013\":{\"name\":\"Barrow, GA\",\"path\":\"m 753.24825,387.20714 0.74167,0.931 0.32092,0.202 1.77573,0.354 0.45642,-0.06 1.55823,0 0.21929,0.13 0.68284,1.446 -1.88093,1.639 -1.97547,0.52644 -0.95557,-0.69744 -1.34056,-1.83497 0.39743,-2.64603\"},\"13157\":{\"name\":\"Jackson, GA\",\"path\":\"m 760.82544,384.57814 1.14911,1.38654 0.12921,2.10046 -3.10041,2.156 -0.68284,-1.446 -0.21929,-0.131 -1.55823,0 -0.45642,0.06 -1.77573,-0.355 -0.32092,-0.202 -0.74167,-0.93 3.20738,-4.333 0.58656,0.475 0.38689,0.249 0.22464,0.08 0.81833,-0.16 0.69889,-0.227 1.17491,0.878 0.47959,0.408\"},\"13059\":{\"name\":\"Clarke, GA\",\"path\":\"m 762.10376,388.06514 2.04317,0.694 -0.15333,0 -0.10519,1.068 0.016,0.07 0.0891,0.199 0.77912,0.786 -0.48138,1.377 -5.28799,-2.042 3.10041,-2.155\"},\"13219\":{\"name\":\"Oconee, GA\",\"path\":\"m 757.12242,391.85914 1.88093,-1.638 5.28799,2.041 0.16759,1.991 -0.39976,0.95562 -1.76999,0.81138 -2.24107,-2.482 -2.92569,-1.679\"},\"13211\":{\"name\":\"Morgan, GA\",\"path\":\"m 762.28918,396.02014 3.03979,4.605 -4.65507,1.76 -3.08437,-1.735 -0.18541,-1.622 2.64399,-5.49 2.24107,2.482\"},\"13237\":{\"name\":\"Putnam, GA\",\"path\":\"m 760.6739,402.38514 4.65507,-1.76 2.58516,2.637 0.27457,0.154 0.14084,0.126 0.0357,0.07 -0.16046,0.756 -0.76485,0.61 -0.52238,0.273 -0.39402,0.435 -0.20859,1.373 0.007,0.233 0.0339,0.09 -2.93995,0.433 -2.16975,0.612 -0.5723,-6.044\"},\"13141\":{\"name\":\"Hancock, GA\",\"path\":\"m 773.54622,400.43314 0.61152,0.314 1.01267,2.554 0.80408,1.215 0.19077,0.328 -0.56161,0.08 -1.30684,1.148 -0.19434,0.387 -0.15332,0.658 -0.13015,0.379 -0.1979,0.262 -1.88271,1.368 -0.83438,0.121 -0.34766,0.424 -0.47781,0.403 -0.40293,-0.604 -0.0588,-0.191 0.0749,-0.852 0.0713,-0.193 0.10519,-0.07 0.0232,-0.185 -0.0125,-0.136 -0.0606,-0.09 -3.06832,-0.407 -0.39402,0.04 -0.0339,-0.09 -0.007,-0.233 0.20859,-1.373 0.39402,-0.435 0.52238,-0.273 0.76485,-0.61 0.16046,-0.756 -0.0357,-0.07 -0.14084,-0.126 -0.27457,-0.154 2.50672,-2.997 1.6348,0.37247 1.49057,-0.20447\"},\"13265\":{\"name\":\"Taliaferro, GA\",\"path\":\"m 770.8006,394.05414 1.38886,2.103 0.27277,0.291 0.0205,0 0.0205,0 0.98482,-0.84618 1.34539,0.59618 1.46195,0.193 -0.61865,0.956 -0.31093,1.13709 -1.46481,0.41591 -0.62579,0.978 -0.025,0.1 0.29596,0.458 -1.49057,0.20447 -1.6348,-0.37247 0.6988,-0.75487 -0.88778,-1.83663 0.80697,-1.72846 -0.99596,-0.86304 0.75772,-1.028\"},\"13133\":{\"name\":\"Greene, GA\",\"path\":\"m 770.04288,395.08214 0.99596,0.86304 -0.80698,1.72846 0.88779,1.83663 -0.69879,0.75487 -2.50672,2.997 -2.58516,-2.637 -3.03979,-4.605 1.76999,-0.81138 0.39976,-0.95562 3.26074,1.0275 2.32321,-0.1985\"},\"13221\":{\"name\":\"Oglethorpe, GA\",\"path\":\"m 769.30477,387.02214 3.92766,1.15 -1.18739,0.891 -0.3851,0.466 -1.01267,1.841 -0.71671,1.582 -0.007,0.112 0.87717,0.99 -0.75772,1.028 -2.32321,0.1985 -3.26074,-1.0275 -0.16759,-1.991 0.48138,-1.376 -0.77912,-0.787 -0.0891,-0.199 -0.016,-0.07 0.10519,-1.068 0.15333,0 2.19115,-1.4 0.13728,-0.02 0.27456,0.161 1.02872,0.299 0.25673,0.03 1.2694,-0.811\"},\"13317\":{\"name\":\"Wilkes, GA\",\"path\":\"m 773.23243,388.17214 2.46036,-0.669 1.66088,3.97691 2.5984,3.47209 -3.10932,1.157 -0.54735,0.282 -1.46195,-0.193 -1.3454,-0.59618 -0.98481,0.84618 -0.041,0 -0.27277,-0.291 -1.38886,-2.103 -0.87717,-0.99 0.007,-0.112 0.71671,-1.582 1.01267,-1.841 0.3851,-0.466 1.18739,-0.891\"},\"13301\":{\"name\":\"Warren, GA\",\"path\":\"m 776.84275,396.10914 1.15708,2.298 1.73651,3.231 0.84152,0.257 2.25889,0.281 -0.78802,0.981 -1.38173,-0.474 -1.21235,-0.376 -0.56339,0.208 -2.91677,2.001 -0.80408,-1.215 -1.01267,-2.554 -0.61152,-0.314 -0.29596,-0.458 0.025,-0.1 0.62579,-0.978 1.46481,-0.41591 0.31093,-1.13709 0.61865,-0.956 0.54735,-0.282\"},\"13189\":{\"name\":\"McDuffie, GA\",\"path\":\"m 780.94156,394.55114 -0.16937,0.234 -0.016,0.305 0.31378,1.806 1.26227,1.763 1.71869,2.072 0.34409,0.224 -0.98771,1.132 -0.57052,0.09 -2.25889,-0.282 -0.84152,-0.257 -1.73651,-3.23 -1.15708,-2.299 3.10932,-1.157 0.98949,-0.401\"},\"13125\":{\"name\":\"Glascock, GA\",\"path\":\"m 775.97449,404.51614 2.91677,-2.001 0.56339,-0.208 1.21235,0.376 1.38173,0.474 -0.65788,0.676 -1.90589,2.105 0.0642,0.216 0.15333,0.973 -1.53505,0.05 -1.42774,-0.80334 -0.57442,-1.52866 -0.19077,-0.328\"},\"13163\":{\"name\":\"Jefferson, GA\",\"path\":\"m 782.83675,402.17614 0.57052,-0.09 1.77396,0.79 0.10697,0.02 0.16046,0.129 0.52238,0.579 -0.39401,1.881 -0.12837,1.011 -0.0321,1.118 0.14441,0.568 0.21573,0.653 0.41006,1.581 -0.23891,1.398 -0.25673,1.045 -1.73478,0.96374 -0.26738,1.04526 -1.85597,-1.132 -0.42611,-2.517 -0.85934,-1.774 -0.0571,0 -0.69889,-0.36 -0.77911,-0.596 -0.31379,-0.419 -0.53129,-0.906 1.53505,-0.05 -0.15333,-0.973 -0.0642,-0.216 1.90589,-2.105 0.65788,-0.676 0.78802,-0.981\"},\"13303\":{\"name\":\"Washington, GA\",\"path\":\"m 778.16742,407.17614 0.53129,0.905 0.31379,0.419 0.77911,0.596 0.69889,0.36 0.0571,0 0.85934,1.774 0.42611,2.517 -1.60815,0.804 -1.04654,0.489 -1.94775,0.62642 -0.15426,-0.59642 -0.56339,-0.275 -2.59585,1.533 -0.27278,-0.945 -0.51347,-0.806 -0.32092,-0.199 -0.8629,-0.298 -1.03407,-1.697 -0.009,-3.124 0.83438,-0.121 1.88271,-1.368 0.1979,-0.262 0.13015,-0.379 0.15332,-0.658 0.19434,-0.387 1.30684,-1.148 0.56161,-0.08 0.57442,1.52866 1.42774,0.80334\"},\"13167\":{\"name\":\"Johnson, GA\",\"path\":\"m 783.68897,414.87214 -0.6123,2.69513 -2.65036,3.59187 -0.55447,-0.188 -0.16937,-2.03 -2.586,-0.57422 0.10424,-0.81878 -1.55822,-0.458 -1.77753,0.426 0.0321,-1.198 2.59585,-1.533 0.56339,0.274 0.15426,0.59642 1.94775,-0.62642 1.04654,-0.489 1.60815,-0.804 1.85597,1.132\"},\"13283\":{\"name\":\"Treutlen, GA\",\"path\":\"m 780.42631,421.15914 2.8936,-0.07 0.50634,0.144 1.69372,0.706 0.18542,0.16 -0.041,1.133 -0.16046,0.902 -4.54097,1.95 -1.30685,-0.08 -0.55241,-0.91384 1.10968,-2.94335 0.21293,-0.98681\"},\"13209\":{\"name\":\"Montgomery, GA\",\"path\":\"m 785.50393,424.13114 -0.11945,8.934 -1.166,0.442 -1.22305,-1.109 -0.0874,-0.146 -0.19968,-0.352 -0.57587,-1.815 -0.14798,-1.223 -0.68284,-2.298 -0.16045,-0.456 -0.17829,-0.03 4.54097,-1.95\"},\"13279\":{\"name\":\"Toombs, GA\",\"path\":\"m 785.50393,424.13114 1.38125,1.17503 2.11496,-0.86303 1.31754,3.945 0.18542,5.279 -4.15231,-0.633 -0.96631,0.03 0.11945,-8.934\"},\"13179\":{\"name\":\"Liberty, GA\",\"path\":\"m 798.9646,429.27314 0.68284,-1.068 1.6545,0.754 1.54495,1.63379 1.87103,-0.48579 1.41381,0.485 0.16046,0.271 0.62044,1.48 0.0374,0.16 -0.005,0.06 0.20681,0.186 1.45483,1.068 2.20362,1.069 0.11946,0.04 -0.0695,0.171 0.39045,0.353 0.52238,0.151 0.12124,-0.07 0.0303,-0.11 0.0499,-0.03 0.19255,-0.04 0.16937,0.06 0.1355,0.948 0.0802,0.708 -0.32983,1.284 -0.19255,0.369 -0.11232,0.03 -0.32805,-0.234 -0.0267,-0.635 -0.0802,-0.16 -0.64184,-0.53 -0.35301,-0.169 -0.56338,-0.184 -1.05903,-0.04 -1.40668,0.595 -0.49921,-0.119 -0.95561,-0.669 -0.63471,-0.184 -0.16045,0 -2.96492,-1.066 -2.74918,-2.123 -0.0553,-0.248 0.073,-1.90822 -1.14984,-0.27778 -0.49029,-0.595 1.0929,-0.933\"},\"13109\":{\"name\":\"Evans, GA\",\"path\":\"m 793.115,424.76514 1.11608,0.07 1.36347,-0.32698 1.445,0.65128 1.17802,1.7917 1.42987,1.254 -0.68284,1.067 -2.46036,0.314 -1.85597,-0.451 -1.53327,-4.37\"},\"13267\":{\"name\":\"Tattnall, GA\",\"path\":\"m 789.00014,424.44314 4.11486,0.322 1.53327,4.37 1.85597,0.451 2.46036,-0.313 -1.0929,0.932 -2.01821,5.561 -1.66164,-0.635 -3.68875,-1.464 -0.18542,-5.279 -1.31754,-3.945\"},\"13043\":{\"name\":\"Candler, GA\",\"path\":\"m 792.14155,418.85014 1.22127,0.419 0.25918,1.24831 1.07441,0.84069 -0.30309,2.924 -0.16224,0.553 -1.11608,-0.07 -4.11486,-0.322 -0.38689,-0.947 0.86113,-2.74 0.46533,-1.159 1.18204,-1.093 1.0198,0.346\"},\"13107\":{\"name\":\"Emanuel, GA\",\"path\":\"m 789.03401,412.92214 1.59195,3.29031 1.83651,1.00769 -0.32092,1.63 -1.0198,-0.346 -1.18204,1.093 -0.46533,1.159 -0.86113,2.74 0.38689,0.947 -2.11496,0.86303 -1.38125,-1.17503 0.16046,-0.902 0.041,-1.133 -0.18542,-0.16 -1.69372,-0.706 -0.50634,-0.144 -2.8936,0.07 2.65036,-3.59187 0.6123,-2.69513 0.26738,-1.04526 1.73478,-0.96374 3.34288,0.06\"},\"13051\":{\"name\":\"Chatham, GA\",\"path\":\"m 810.5586,423.41414 0.0998,0.449 0.18185,0.918 0.2496,0.997 0.0892,0.09 1.08577,0.419 3.57465,0.674 0.66679,0.07 0.18364,0.03 0.0963,0.279 0,0.202 -0.0713,0.353 -0.20147,0.474 -3.22164,5.192 -0.14441,0.201 -0.90214,1.034 -0.13549,0.06 -0.44037,-0.1 -0.64362,-1.952 -0.11697,-1.6053 -1.82672,-0.2136 -1.17455,-2.0071 -1.59923,-1.425 -0.41185,-0.47 3.14633,-3.87906 1.51588,0.19706\"},\"13029\":{\"name\":\"Bryan, GA\",\"path\":\"m 798.21757,426.95114 6.32384,-3.038 1.35498,3.183 0.41185,0.47 1.59923,1.425 1.17455,2.0071 1.82672,0.2136 0.11697,1.6053 0.64362,1.952 -0.73989,0.159 -0.11946,-0.04 -2.20362,-1.069 -1.45483,-1.068 -0.20681,-0.186 0.005,-0.06 -0.0374,-0.16 -0.62044,-1.48 -0.16046,-0.271 -1.41381,-0.485 -1.87103,0.48579 -1.54495,-1.63379 -1.6545,-0.754 -1.42987,-1.254\"},\"13031\":{\"name\":\"Bulloch, GA\",\"path\":\"m 795.37924,415.79614 6.15447,2.79 3.0077,5.327 -6.32384,3.038 -1.17802,-1.7917 -1.445,-0.65128 -1.36347,0.32698 0.16224,-0.553 0.30309,-2.924 -1.07441,-0.84069 -0.25918,-1.24831 -1.22127,-0.419 0.32092,-1.63 2.91677,-1.424\"},\"13165\":{\"name\":\"Jenkins, GA\",\"path\":\"m 789.03401,412.92214 -0.082,-0.154 0.24782,-1.527 0.69353,-0.878 2.30323,-0.42128 1.84016,-1.03872 0.6454,0.1 0.82547,0.267 0.20147,0.143 0.1765,0.242 -0.98687,5.804 0.48053,0.342 -2.91677,1.424 -1.83651,-1.00769 -1.59195,-3.29031\"},\"13103\":{\"name\":\"Effingham, GA\",\"path\":\"m 804.17949,415.70014 2.00929,0.804 0.36906,0.137 1.71155,1.414 2.03961,4.138 0.2496,1.221 -1.51588,-0.19706 -3.14633,3.87906 -1.35498,-3.183 -3.0077,-5.327 2.64578,-2.886\"},\"13251\":{\"name\":\"Screven, GA\",\"path\":\"m 795.88558,409.65014 3.80999,-3.762 3.65489,6.453 0.82903,3.359 -2.64578,2.886 -6.15447,-2.79 -0.48053,-0.342 0.98687,-5.804\"},\"13033\":{\"name\":\"Burke, GA\",\"path\":\"m 785.18123,402.87714 1.73651,-0.943 0.12837,0 0.62757,0.364 0.1355,0.271 0.6184,0.83493 0.5155,-0.39993 1.84884,-0.02 1.57427,-1.013 0.75772,0.184 1.78822,1.351 3.20739,1.503 1.57605,0.867 -3.80999,3.761 -0.1765,-0.242 -0.20147,-0.143 -0.82547,-0.267 -0.6454,-0.1 -1.84016,1.03922 -2.30323,0.42178 -0.69353,0.877 -0.24782,1.528 0.082,0.153 -3.34288,-0.06 0.25673,-1.045 0.23891,-1.397 -0.41006,-1.582 -0.21573,-0.652 -0.14441,-0.569 0.0321,-1.118 0.12837,-1.011 0.39401,-1.881 -0.52238,-0.579 -0.16046,-0.129 -0.10697,-0.02\"},\"13245\":{\"name\":\"Richmond, GA\",\"path\":\"m 788.77549,395.87614 0.31201,0.29 0.16224,0.154 0.90035,0.852 1.27475,1.487 0.45107,1.742 1.248,1.767 -0.75772,-0.184 -1.57427,1.013 -1.84884,0.02 -0.5155,0.39993 -0.6184,-0.83493 -0.1355,-0.271 -0.62757,-0.364 -0.12837,0 -1.73651,0.943 -1.77396,-0.79 0.98771,-1.132 4.38051,-5.079\"},\"13073\":{\"name\":\"Columbia, GA\",\"path\":\"m 784.71768,393.16914 2.20006,1.921 1.85775,0.786 -4.38051,5.079 -0.34409,-0.224 -1.71869,-2.072 -1.26227,-1.763 -0.31378,-1.806 0.016,-0.305 0.16937,-0.234 3.77612,-1.382\"},\"13181\":{\"name\":\"Lincoln, GA\",\"path\":\"m 775.69279,387.50314 1.6242,0.444 2.84368,1.694 0.11945,0.03 0.26743,-0.103 0.0874,0 1.64024,0.827 0.49742,0.355 1.18204,0.971 0.76307,1.439 -3.77612,1.382 -0.98949,0.401 -2.5984,-3.47209 -1.66088,-3.97691\"},\"13105\":{\"name\":\"Elbert, GA\",\"path\":\"m 772.47828,380.78614 0.7078,1.841 3.34288,4.122 0.78803,1.198 -1.6242,-0.444 -2.46036,0.669 -3.92766,-1.15 -2.2109,-1.969 -0.26372,-1.969 2.60771,0.14912 3.04042,-2.44712\"},\"13195\":{\"name\":\"Madison, GA\",\"path\":\"m 766.01716,382.10514 0.81299,0.979 0.26372,1.969 2.2109,1.969 -1.2694,0.811 -0.25673,-0.03 -1.02872,-0.3 -0.27456,-0.16 -0.13728,0.02 -2.19115,1.4 -2.04317,-0.694 -0.12921,-2.10046 -1.14911,-1.38654 0.65534,-0.16268 0.51111,-0.52326 3.63528,-0.69521 0.38999,-1.09185\"},\"13011\":{\"name\":\"Banks, GA\",\"path\":\"m 760.10516,378.52814 0.59789,0.97142 0.0931,2.1974 1.06666,1.00747 0.12912,1.18777 -0.51111,0.52326 -0.65534,0.16268 -0.47959,-0.409 -1.17491,-0.877 -0.69889,0.227 -0.81833,0.16 -0.22464,-0.08 -0.38689,-0.25 -0.58656,-0.474 -0.80149,-1.59956 0.49662,-1.52744 1.44136,-1.52024 1.29713,-0.006 1.21591,0.306\"},\"13139\":{\"name\":\"Hall, GA\",\"path\":\"m 754.96158,378.21514 1.18918,1.533 -0.49662,1.52744 0.80149,1.59956 -3.20738,4.332 -0.79812,0.64106 -3.92649,-0.98106 1.38142,-0.63184 0.73237,-1.42513 -0.60905,-1.99903 -0.66679,-1.897 2.2892,-2.312 3.31079,-0.387\"},\"13187\":{\"name\":\"Lumpkin, GA\",\"path\":\"m 750.76649,373.65814 0.8843,4.944 -2.2892,2.312 -2.42155,-0.88033 -1.58733,-1.39427 -0.42868,-1.4534 0.44393,-1.132 2.41734,0.0402 1.43083,-2.58827 1.55036,0.15206\"},\"13123\":{\"name\":\"Gilmer, GA\",\"path\":\"m 736.18975,372.36514 3.5693,-0.417 1.06794,0.121 0.82012,0.515 0.43502,0.327 1.32467,1.775 1.11608,1.623 0.20146,0.547 -1.02193,1.30782 -1.59888,0.29818 -0.44216,0.387 -3.53543,0.385 -1.75078,0.25 -0.0963,-0.786 -0.44928,-3.336 0.22464,-1.061 0.49742,-0.545 0.40293,-0.692 0.007,-0.07 -0.0481,-0.07 -0.72384,-0.555\"},\"13111\":{\"name\":\"Fannin, GA\",\"path\":\"m 741.34046,368.63714 3.57822,-0.419 -0.74703,0.797 -0.0677,0.128 0.0178,0.12 1.69703,0.89556 -0.54429,1.02129 -0.0527,1.18515 0.3548,0.232 0.72168,-0.43872 0.28402,1.39334 -0.53528,1.14756 -0.67906,1.35482 -0.44393,1.132 -0.19969,-0.33 -0.20146,-0.547 -1.11608,-1.623 -1.32467,-1.775 -0.43502,-0.327 -0.82012,-0.515 -1.06794,-0.121 -3.5693,0.417 -0.4172,-3.043 5.56791,-0.685\"},\"13291\":{\"name\":\"Union, GA\",\"path\":\"m 747.22214,367.92914 1.28011,-0.167 -0.11233,0.424 0.59548,0.571 1.13926,0.643 0.54377,-0.04 0.54913,0.314 0.68284,1.599 0.0802,0.578 -1.21413,1.808 -1.55036,-0.15206 -1.43083,2.58827 -2.41734,-0.0402 0.67906,-1.35482 0.53528,-1.14756 -0.28402,-1.39334 -0.72168,0.43872 -0.3548,-0.232 0.0527,-1.18515 0.54429,-1.02129 -1.69703,-0.89556 -0.0178,-0.12 0.0677,-0.128 0.74703,-0.797 2.30346,-0.289\"},\"13311\":{\"name\":\"White, GA\",\"path\":\"m 751.98062,371.85014 1.81497,-0.41 0.98949,0.57 0.12837,0.218 0.12836,0.579 0.72206,4.379 -0.80229,1.029 -3.31079,0.387 -0.8843,-4.944 1.21413,-1.808\"},\"13137\":{\"name\":\"Habersham, GA\",\"path\":\"m 754.27874,370.85514 1.47399,-0.29318 1.29369,1.72612 1.29369,0.0674 0.737,-0.47111 1.09758,0.68276 0.37084,0.618 -1.65628,5.037 -1.29713,0.006 -1.44136,1.52024 -1.18918,-1.533 0.80229,-1.029 -0.72206,-4.379 -0.12836,-0.579 -0.12837,-0.218 -0.98949,-0.57 0.48315,-0.585\"},\"13147\":{\"name\":\"Hart, GA\",\"path\":\"m 766.46823,376.92014 1.16599,0.163 0.2086,-0.106 0.016,0 0.74881,-0.185 0.67392,-0.09 0.39402,0.112 0.19255,0.146 -0.007,0.06 0.62578,0.966 1.99147,2.803 -3.04042,2.44712 -2.60771,-0.14912 -0.81299,-0.979 0.45107,-5.185\"},\"13119\":{\"name\":\"Franklin, GA\",\"path\":\"m 765.31649,376.11814 1.15174,0.802 -0.45107,5.185 -0.38999,1.09185 -3.63528,0.69521 -0.12913,-1.18777 -1.06665,-1.00747 -0.0931,-2.1974 -0.59789,-0.97142 0.37619,-0.231 0.14441,-0.05 3.54435,-0.642 1.14638,-1.487\"},\"13257\":{\"name\":\"Stephens, GA\",\"path\":\"m 760.54553,373.18514 4.77096,2.933 -1.14638,1.487 -3.54435,0.642 -0.14441,0.05 -0.37619,0.231 -1.21591,-0.306 1.65628,-5.037\"},\"15007\":{\"name\":\"Kauai, HI\",\"path\":\"m 309.6956,550.02314 2.34804,0 1.01088,0.672 0.33162,1.006 0,0.674 -0.67215,1.676 0,2.016 -1.3425,1.341 -1.00375,0.675 -3.35715,-0.338 -1.34428,-1.341 -2.01464,-0.674 -0.67215,-0.67 0,-1.009 1.00911,-1.343 3.35893,-2.685 2.34804,0 m -15.78197,10.747 -0.33518,-0.34 0.33518,-2.013 2.01464,-1.344 0.33697,-1.006 1.00732,0 -0.33518,2.35 -1.67946,0.672 -1.00733,1.681 -0.33696,0\"},\"15003\":{\"name\":\"Honolulu, HI\",\"path\":\"m 349.65684,568.82314 -1.34606,1.013 0,-0.337 -2.01465,0.67 -1.67946,-1.007 -3.35715,0.337 -1.34428,0.337 -0.67036,-1.683 -1.0091,-0.67 -0.3334,-1.006 -1.0091,-1.009 0,-1.007 -1.00733,-0.669 3.35893,-0.676 1.67947,-2.346 1.00732,-0.674 1.00554,0.334 1.67946,3.022 0.33518,0 0.33518,0.674 -0.33518,0.67 0.33518,1.005 1.34428,1.011 0.33518,-1.011 0.67214,0 0,1.011 0.67215,0.337 0.33517,1.343 1.01089,0.331\"},\"15009\":{\"name\":\"Maui, HI\",\"path\":\"m 364.7631,571.51214 0.33874,0 0.67215,0.333 0.33339,0 -0.33339,-0.67 3.0184,-0.67 1.34428,0.337 -0.67214,1.344 -2.01465,1.341 -1.00732,0 -4.02572,-0.669 -4.70143,0.333 -0.33874,0 1.01089,-2.686 0.33518,0 4.70142,0.337 1.00733,0.333 0.33161,0.337 m 8.05857,2.35 1.00732,0.337 1.67947,2.687 3.35714,-1.678 2.01464,0.335 0,0.335 2.68679,1.681 2.34982,0.671 0.33518,0.67 0,1.341 -1.3425,1.344 -1.67946,0.672 -3.35715,1.346 -2.3516,0 -0.67215,-0.338 -0.67035,-4.028 -1.00554,-0.337 -0.67215,0.669 -2.01464,-1.006 -1.3425,-1.344 -0.33696,-1.341 0.67214,-1.344 0.33518,-0.672 1.00732,0 m -8.72715,3.024 2.34804,0 1.34429,1.007 0.67036,1.007 -0.33697,1.341 -3.0184,1.011 -0.33874,-1.344 -0.33161,-1.008 -1.34251,-1.341 0,-0.34 1.00554,-0.333 m 10.07144,6.717 0.33517,0.334 0.33518,1.342 -2.68678,0.672 -1.00554,-0.338 0.67036,-1.002 2.35161,-1.008\"},\"15001\":{\"name\":\"Hawaii, HI\",\"path\":\"m 397.00095,619.86514 -0.67036,0.672 -1.34428,-1.007 -3.35714,-1.342 -0.67571,-1.01 -0.33518,-0.67 0.33518,-5.374 -2.34982,-5.71 -1.34429,-1.341 -1.00732,-1.342 0.33696,-1.011 2.01465,-2.013 2.34982,-3.02 0,-1.343 -1.67768,-2.351 -0.33696,-1.343 0.33696,-1.346 0.67036,-0.335 2.01642,0.335 0.67036,1.007 3.02375,1.347 3.69589,0.67 4.02928,1.681 2.68679,1.678 1.3425,1.677 0.33518,2.689 1.67768,-0.337 0.67214,1.004 0,1.346 1.67947,1.342 2.34982,1.006 -0.67214,1.344 -3.69233,3.357 -3.02196,1.683 -2.68679,0.336 -3.02196,2.348 -1.67768,1.005 -2.35161,4.368\"},\"15005\":{\"name\":\"Kalawao, HI\",\"path\":\"m 364.43149,571.17514 -1.00733,-0.333 2.34983,0.333 0.33339,0.67 -0.33339,0 -0.67215,-0.333 -0.33874,0 -0.33161,-0.337\"},\"19163\":{\"name\":\"Scott, IA\",\"path\":\"m 610.2906,222.59014 1.91124,-0.104 5.72301,-0.162 2.32843,0.685 -0.26565,2.505 -0.89143,1.198 -1.0198,1.189 -3.24661,1.608 -1.38351,0.353 -0.58656,0.02 -0.24782,-0.03 -0.19061,-3.30549 -1.93992,0.0765 -0.19077,-4.027\"},\"19045\":{\"name\":\"Clinton, IA\",\"path\":\"m 609.96969,216.53214 12.62985,-0.717 0.18542,2.405 -1.32646,3.437 -1.20522,1.352 -2.32843,-0.685 -5.72301,0.162 -1.91124,0.104 -0.21751,-4.033 -0.1034,-2.025\"},\"19119\":{\"name\":\"Lyon, IA\",\"path\":\"m 513.29356,184.92814 2.42471,0.02 6.6608,0.02 3.19134,0 -0.009,5.592 -11.98088,-0.09 -0.052,-1.13109 1.02139,-0.0616 -0.0458,-1.68211 -1.13892,-1.28919 -0.0718,-1.388\"},\"19167\":{\"name\":\"Sioux, IA\",\"path\":\"m 513.58061,190.48014 11.98088,0.09 0.0571,8.045 -11.14472,-0.02 1.16422,-4.019 0.26565,-0.708 0.0481,-0.158 -0.64361,-2.314 -0.15868,-0.08 -1.19809,0 -0.37083,-0.836\"},\"19149\":{\"name\":\"Plymouth, IA\",\"path\":\"m 525.61854,198.61414 0,8.049 -10.45474,-0.02 -0.60975,-1.606 -0.43502,-0.699 -0.55447,-0.515 -0.44037,-0.337 0.67393,-3.084 0.6757,-1.801 11.14472,0.02\"},\"19035\":{\"name\":\"Cherokee, IA\",\"path\":\"m 533.53449,198.57114 0.0553,8.044 -5.96905,0.03 -2.00217,0.01 0,-8.049 7.91595,-0.04\"},\"19141\":{\"name\":\"O'Brien, IA\",\"path\":\"m 525.56149,190.56914 7.92308,0.02 0.0499,7.978 -7.91595,0.04 -0.0571,-8.045\"},\"19143\":{\"name\":\"Osceola, IA\",\"path\":\"m 532.34531,184.93614 1.10895,0 0.0303,5.657 -7.92308,-0.02 0.009,-5.592 6.7749,-0.04\"},\"19059\":{\"name\":\"Dickinson, IA\",\"path\":\"m 533.45426,184.93614 7.86602,-0.07 0.0874,5.655 -7.92307,0.07 -0.0303,-5.657\"},\"19041\":{\"name\":\"Clay, IA\",\"path\":\"m 533.48457,190.59314 7.92307,-0.07 0.0891,7.981 -7.96229,0.07 -0.0499,-7.978\"},\"19021\":{\"name\":\"Buena Vista, IA\",\"path\":\"m 541.49678,198.50014 0.0802,8.074 -7.98725,0.04 -0.0553,-8.044 7.96229,-0.07\"},\"19151\":{\"name\":\"Pocahontas, IA\",\"path\":\"m 541.49678,198.50014 7.90703,-0.07 0.0963,6.082 0.041,1.984 -7.96408,0.08 -0.0802,-8.074\"},\"19147\":{\"name\":\"Palo Alto, IA\",\"path\":\"m 549.26653,190.41614 0.13728,8.012 -7.90703,0.07 -0.0891,-7.981 7.85889,-0.103\"},\"19063\":{\"name\":\"Emmet, IA\",\"path\":\"m 549.17917,184.75014 0.0874,5.666 -7.85889,0.103 -0.0874,-5.655 1.01267,-0.02 6.84622,-0.1\"},\"19109\":{\"name\":\"Kossuth, IA\",\"path\":\"m 557.03806,184.62214 0.12837,5.641 0.15154,8.028 -7.91416,0.137 -0.13728,-8.012 -0.0874,-5.666 3.25552,-0.05 4.60337,-0.07\"},\"19091\":{\"name\":\"Humboldt, IA\",\"path\":\"m 549.40381,198.42814 7.91416,-0.137 0.13015,6.074 -7.94803,0.145 -0.0963,-6.082\"},\"19193\":{\"name\":\"Woodbury, IA\",\"path\":\"m 525.61854,206.66314 2.00217,-0.01 0.007,1.672 0.65966,0.327 0.55269,0 0,6.09 -11.62788,-0.09 0.21038,-1.422 -0.51525,-0.965 -0.19968,-2.646 0.11945,-0.319 -0.007,-0.355 -0.0713,-0.265 -0.17829,-0.248 -0.22464,-0.09 -0.57765,-0.04 -0.60439,-1.666 10.45474,0.02\"},\"19093\":{\"name\":\"Ida, IA\",\"path\":\"m 533.58976,206.61514 0.016,2.01 1.10003,0 0.025,6.11 -5.8906,0.01 0,-6.09 -0.55269,0 -0.65966,-0.327 -0.007,-1.672 5.96905,-0.03\"},\"19161\":{\"name\":\"Sac, IA\",\"path\":\"m 533.58976,206.61514 7.98725,-0.04 0.0161,1.988 0.98058,0 0.0481,6.114 -3.9455,0.02 -3.94549,0.03 -0.025,-6.11 -1.10003,0 -0.016,-2.01\"},\"19025\":{\"name\":\"Calhoun, IA\",\"path\":\"m 541.57701,206.57414 7.96408,-0.08 0.025,1.977 0.7702,0 0.10519,6.108 -3.92231,0.06 -3.89735,0.05 -0.0481,-6.114 -0.98058,0 -0.0161,-1.988\"},\"19187\":{\"name\":\"Webster, IA\",\"path\":\"m 557.44812,204.36514 0.0802,3.987 0.67571,0 0.1355,6.049 -3.95263,0.09 -3.94549,0.09 -0.10519,-6.108 -0.7702,0 -0.025,-1.977 -0.041,-1.984 7.94803,-0.145\"},\"19073\":{\"name\":\"Greene, IA\",\"path\":\"m 550.44144,214.57214 3.94549,-0.09 0.16759,8.017 -1.98611,0.04 -5.93696,0.107 -0.11232,-8.02 3.92231,-0.06\"},\"19027\":{\"name\":\"Carroll, IA\",\"path\":\"m 542.62178,214.67614 3.89735,-0.05 0.11232,8.02 -1.9772,0.03 -5.92983,0.05 -0.0481,-8.026 3.9455,-0.02\"},\"19047\":{\"name\":\"Crawford, IA\",\"path\":\"m 538.67628,214.70114 0.0481,8.026 -7.91416,0.05 -1.97007,0.02 0,-8.053 5.8906,-0.01 3.94549,-0.03\"},\"19133\":{\"name\":\"Monona, IA\",\"path\":\"m 528.84019,214.73814 0,8.053 -7.9623,-0.06 -2.25889,-4.195 -1.40669,-3.889 11.62788,0.09\"},\"19085\":{\"name\":\"Harrison, IA\",\"path\":\"m 530.81026,222.77514 0.007,6.051 1.02872,0 0.009,2.227 -8.27608,0 -2.39618,-4.065 -0.30487,-4.243 7.9623,0.06 1.97007,-0.02\"},\"19165\":{\"name\":\"Shelby, IA\",\"path\":\"m 530.81026,222.77514 7.91416,-0.05 0.0553,6.042 0.89322,0 0.025,2.248 -1.96116,0.01 -5.88169,0.02 -0.009,-2.227 -1.02872,0 -0.007,-6.051\"},\"19009\":{\"name\":\"Audubon, IA\",\"path\":\"m 538.72442,222.72714 5.92983,-0.05 0.0802,5.004 0.75772,1.004 0.0303,2.27 -5.82463,0.05 -0.025,-2.248 -0.89322,0 -0.0553,-6.042\"},\"19077\":{\"name\":\"Guthrie, IA\",\"path\":\"m 546.63145,222.64714 5.93696,-0.107 0.1141,6.053 0.66679,0 0.0392,2.251 -7.86603,0.113 -0.0303,-2.27 -0.75772,-1.004 -0.0802,-5.004 1.9772,-0.03\"},\"19001\":{\"name\":\"Adair, IA\",\"path\":\"m 553.38853,230.84414 0.14619,8.018 -3.94549,0.06 -3.95262,0.05 -0.11411,-8.01 7.86603,-0.113\"},\"19029\":{\"name\":\"Cass, IA\",\"path\":\"m 545.5225,230.95714 0.11411,8.01 -3.91518,0.04 -3.92945,0.02 -0.0553,-8.009 1.96116,-0.01 5.82463,-0.05\"},\"19155\":{\"name\":\"Pottawattamie, IA\",\"path\":\"m 531.85502,231.04414 5.88169,-0.02 0.0553,8.009 -3.9134,0.03 -8.09066,0.02 -1.20522,-0.724 -0.25674,-4.677 -0.74702,-2.635 8.27608,0\"},\"19071\":{\"name\":\"Fremont, IA\",\"path\":\"m 526.31921,245.05714 7.5665,-0.03 0.025,3.119 0.20147,2.588 0.016,1.726 -6.79808,-0.07 -1.5511,-4.598 0.54021,-2.732\"},\"19129\":{\"name\":\"Mills, IA\",\"path\":\"m 533.87858,239.06214 0.007,5.963 -7.5665,0.03 -0.76485,-3.358 0.23356,-2.619 8.09066,-0.02\"},\"19137\":{\"name\":\"Montgomery, IA\",\"path\":\"m 537.79198,239.03014 3.92945,-0.02 0.0481,5.967 -7.88385,0.05 -0.007,-5.963 3.9134,-0.03\"},\"19145\":{\"name\":\"Page, IA\",\"path\":\"m 541.76956,244.97514 0.0499,4.012 0.26387,0 0.016,3.528 -4.99738,-0.03 -2.97383,-0.02 -0.016,-1.726 -0.20147,-2.588 -0.025,-3.119 7.88385,-0.05\"},\"19173\":{\"name\":\"Taylor, IA\",\"path\":\"m 549.68551,244.89714 0.11232,7.609 -2.78663,0.03 -4.91181,-0.02 -0.016,-3.528 -0.26387,0 -0.0499,-4.012 7.91595,-0.08\"},\"19003\":{\"name\":\"Adams, IA\",\"path\":\"m 549.58923,238.91914 0.0963,5.978 -7.91595,0.08 -0.0481,-5.967 3.91518,-0.04 3.95262,-0.05\"},\"19175\":{\"name\":\"Union, IA\",\"path\":\"m 553.53472,238.86214 3.9134,-0.06 0.11945,6.012 -7.88206,0.09 -0.0963,-5.978 3.94549,-0.06\"},\"19159\":{\"name\":\"Ringgold, IA\",\"path\":\"m 549.68551,244.89714 7.88206,-0.09 0.13728,7.481 -3.76007,0.117 -4.14695,0.1 -0.11232,-7.609\"},\"19053\":{\"name\":\"Decatur, IA\",\"path\":\"m 557.56757,244.81014 7.90703,-0.211 0.18542,7.36 -3.76899,0.155 -4.18618,0.177 -0.13728,-7.481\"},\"19039\":{\"name\":\"Clarke, IA\",\"path\":\"m 565.30701,238.50714 0.16759,6.092 -7.90703,0.211 -0.11945,-6.012 3.87239,-0.209 3.9865,-0.08\"},\"19121\":{\"name\":\"Madison, IA\",\"path\":\"m 561.11192,230.48814 0.20859,8.101 -3.87239,0.209 -3.9134,0.06 -0.14619,-8.018 7.72339,-0.356\"},\"19049\":{\"name\":\"Dallas, IA\",\"path\":\"m 560.48613,222.36514 0.14441,5.078 0.42433,1.005 0.0571,2.04 -7.72339,0.356 -0.0392,-2.251 -0.66679,0 -0.1141,-6.053 1.98611,-0.04 5.93161,-0.137\"},\"19015\":{\"name\":\"Boone, IA\",\"path\":\"m 562.29396,214.32114 0.20147,7.996 -2.0093,0.05 -5.93161,0.137 -0.16759,-8.017 3.95263,-0.09 3.9544,-0.07\"},\"19079\":{\"name\":\"Hamilton, IA\",\"path\":\"m 565.45856,206.19114 0.82725,8.032 -3.99185,0.1 -3.9544,0.07 -0.1355,-6.049 -0.67571,0 -0.0392,-1.985 7.96943,-0.176\"},\"19197\":{\"name\":\"Wright, IA\",\"path\":\"m 557.31797,198.29114 7.9409,-0.209 0.19969,8.109 -7.96943,0.176 -0.041,-2.002 -0.13015,-6.074\"},\"19081\":{\"name\":\"Hancock, IA\",\"path\":\"m 565.06632,190.07014 0.19255,8.012 -7.9409,0.209 -0.15154,-8.028 7.89989,-0.193\"},\"19189\":{\"name\":\"Winnebago, IA\",\"path\":\"m 564.92191,184.43614 0.14441,5.634 -7.89989,0.193 -0.12837,-5.641 5.35931,-0.121 2.52454,-0.06\"},\"19195\":{\"name\":\"Worth, IA\",\"path\":\"m 572.78793,184.20314 0.18364,5.635 -7.90525,0.232 -0.14441,-5.634 7.45596,-0.215 0.41006,-0.02\"},\"19033\":{\"name\":\"Cerro Gordo, IA\",\"path\":\"m 565.06632,190.07014 7.90525,-0.232 0.0321,0.988 0.20147,7.039 -7.94626,0.217 -0.19255,-8.012\"},\"19069\":{\"name\":\"Franklin, IA\",\"path\":\"m 565.25887,198.08214 7.94626,-0.217 0.22464,8.116 -7.97121,0.21 -0.19969,-8.109\"},\"19083\":{\"name\":\"Hardin, IA\",\"path\":\"m 573.42977,205.98114 0.68462,8.01 -3.90627,0.13 -3.92231,0.102 -0.82725,-8.032 7.97121,-0.21\"},\"19169\":{\"name\":\"Story, IA\",\"path\":\"m 570.20812,214.12114 0.23177,8.003 -1.97542,0.05 -5.96904,0.146 -0.20147,-7.996 3.99185,-0.1 3.92231,-0.102\"},\"19153\":{\"name\":\"Polk, IA\",\"path\":\"m 568.46447,222.17114 0.55448,8.215 0.0143,0.369 -7.92129,-0.267 -0.0571,-2.04 -0.42433,-1.005 -0.14441,-5.078 2.0093,-0.05 5.96904,-0.146\"},\"19181\":{\"name\":\"Warren, IA\",\"path\":\"m 569.03321,230.75514 0.22464,7.656 -3.95084,0.1 -3.9865,0.08 -0.20859,-8.101 7.92129,0.267\"},\"19117\":{\"name\":\"Lucas, IA\",\"path\":\"m 569.25785,238.41114 3.94014,-0.112 0.20682,6.069 -7.93021,0.231 -0.16759,-6.092 3.95084,-0.1\"},\"19185\":{\"name\":\"Wayne, IA\",\"path\":\"m 573.40481,244.36814 0.23355,7.281 -4.80483,0.223 -3.17351,0.09 -0.18542,-7.36 7.93021,-0.231\"},\"19007\":{\"name\":\"Appanoose, IA\",\"path\":\"m 581.32253,244.09314 0.27991,7.135 -1.32645,0.07 -6.63763,0.348 -0.23355,-7.281 7.91772,-0.275\"},\"19135\":{\"name\":\"Monroe, IA\",\"path\":\"m 581.08719,238.02814 0.23534,6.065 -7.91772,0.275 -0.20682,-6.069 3.9455,-0.129 3.9437,-0.142\"},\"19125\":{\"name\":\"Marion, IA\",\"path\":\"m 576.85288,230.12814 0.29061,8.042 -3.9455,0.129 -3.94014,0.112 -0.22464,-7.656 -0.0143,-0.369 7.83393,-0.258\"},\"19099\":{\"name\":\"Jasper, IA\",\"path\":\"m 570.43989,222.12414 7.93021,-0.24 0.44393,8.171 -1.96115,0.07 -7.83393,0.258 -0.55448,-8.215 1.97542,-0.05\"},\"19127\":{\"name\":\"Marshall, IA\",\"path\":\"m 574.11439,213.99114 3.95975,-0.144 0.29596,8.037 -7.93021,0.24 -0.23177,-8.003 3.90627,-0.13\"},\"19075\":{\"name\":\"Grundy, IA\",\"path\":\"m 581.41702,205.73314 0.54735,5.958 -3.95562,0.156 0.0654,2 -3.95975,0.144 -0.68462,-8.01 7.98725,-0.248\"},\"19023\":{\"name\":\"Butler, IA\",\"path\":\"m 573.20513,197.86514 7.89989,-0.248 0.21751,6.115 0.0945,2.001 -7.98725,0.248 -0.22464,-8.116\"},\"19067\":{\"name\":\"Floyd, IA\",\"path\":\"m 573.00366,190.82614 7.84285,-0.266 0.25851,7.057 -7.89989,0.248 -0.20147,-7.039\"},\"19131\":{\"name\":\"Mitchcell, IA\",\"path\":\"m 580.63078,183.92314 0.21573,6.637 -7.84285,0.266 -0.21573,-6.623 7.84285,-0.28\"},\"19089\":{\"name\":\"Howard, IA\",\"path\":\"m 582.36729,183.85914 6.12951,-0.25 0.26565,6.638 -7.91594,0.313 -0.21573,-6.637 1.73651,-0.06\"},\"19037\":{\"name\":\"Chickasaw, IA\",\"path\":\"m 588.76245,190.24714 0.11054,3.007 0.16224,4.056 -7.93021,0.307 -0.25851,-7.057 7.91594,-0.313\"},\"19017\":{\"name\":\"Bremer, IA\",\"path\":\"m 581.10502,197.61714 7.93021,-0.307 0.25138,6.116 -7.96408,0.306 -0.21751,-6.115\"},\"19013\":{\"name\":\"Black Hawk, IA\",\"path\":\"m 589.28661,203.42614 0.17294,4.027 0.31557,0.514 0.12837,3.416 -3.96154,0.153 -3.97758,0.155 -0.54735,-5.958 -0.0945,-2.001 7.96408,-0.306\"},\"19171\":{\"name\":\"Tama, IA\",\"path\":\"m 585.94195,211.53614 0.40114,10.048 -7.97299,0.3 -0.36802,-10.038 7.93987,-0.31\"},\"19157\":{\"name\":\"Poweshiek, IA\",\"path\":\"m 578.3701,221.88414 7.97299,-0.3 0.33162,8.166 -1.96294,0.08 -5.89774,0.225 -0.44393,-8.171\"},\"19123\":{\"name\":\"Mahaska, IA\",\"path\":\"m 578.81403,230.05514 5.89774,-0.225 0.33874,8.037 -3.96332,0.161 -3.9437,0.142 -0.29061,-8.042 1.96115,-0.07\"},\"19179\":{\"name\":\"Wapello, IA\",\"path\":\"m 585.05051,237.86714 3.96154,-0.171 0.25673,6.083 -7.94625,0.314 -0.23534,-6.065 3.96332,-0.161\"},\"19051\":{\"name\":\"Davis, IA\",\"path\":\"m 589.26878,243.77914 0.26387,6.919 -2.956,0.193 -4.97421,0.337 -0.27991,-7.135 7.94625,-0.314\"},\"19177\":{\"name\":\"Van Buren, IA\",\"path\":\"m 589.26878,243.77914 7.95517,-0.369 0.082,2.025 0.26208,4.964 -3.93657,0.01 -4.09882,0.288 -0.26387,-6.919\"},\"19101\":{\"name\":\"Jefferson, IA\",\"path\":\"m 596.99039,237.35214 0.23356,6.058 -7.95517,0.369 -0.25673,-6.083 4.02394,-0.193 3.9544,-0.151\"},\"19011\":{\"name\":\"Benton, IA\",\"path\":\"m 593.85611,211.17214 0.43502,10.107 -7.94804,0.305 -0.40114,-10.048 3.96154,-0.153 3.95262,-0.211\"},\"19095\":{\"name\":\"Iowa, IA\",\"path\":\"m 586.34309,221.58414 7.94804,-0.305 0.39223,8.091 -1.99147,0.107 -6.01718,0.273 -0.33162,-8.166\"},\"19107\":{\"name\":\"Keokuk, IA\",\"path\":\"m 586.67471,229.75014 6.01718,-0.273 0.3441,8.026 -4.02394,0.193 -3.96154,0.171 -0.33874,-8.037 1.96294,-0.08\"},\"19183\":{\"name\":\"Washington, IA\",\"path\":\"m 594.68336,229.37014 5.28799,-0.23 0.2817,0.401 0.44215,1.583 0.2496,6.05 -3.95441,0.178 -3.9544,0.151 -0.3441,-8.026 1.99147,-0.107\"},\"19087\":{\"name\":\"Henry, IA\",\"path\":\"m 600.9448,237.17414 1.97624,-0.054 0.10437,1.99901 0.0592,6.083 -5.77865,0.233 -0.082,-2.025 -0.23356,-6.058 3.95441,-0.178\"},\"19111\":{\"name\":\"Lee, IA\",\"path\":\"m 597.30596,245.43514 5.77865,-0.233 4.84369,2.435 -1.207,1.416 -0.56161,0.01 -0.45819,0.03 -0.13729,0 -0.007,0 -0.90926,0.319 -0.025,0.02 -0.10341,0.06 -0.43502,0.248 -0.15332,0.1 -0.0535,0.06 -0.0642,0.06 -0.0642,0.07 -0.73097,1.123 -0.0267,0.171 0.0571,0.192 0.35479,0.168 0.28882,0.419 0.0963,0.28 0.0143,0.232 -0.0464,2.068 -0.007,0.01 -0.041,0.202 -0.18364,0.153 -0.025,0.01 -0.53129,0.187 -1.13926,-0.08 -0.72563,-0.586 -1.75077,-2.154 -0.0642,-0.16 0.0571,-0.467 -0.041,-0.152 -1.37459,-1.038 -0.36193,-0.226 -0.26208,-4.964\"},\"19057\":{\"name\":\"Des Moines, IA\",\"path\":\"m 610.28169,238.78214 0.016,0.06 0.0642,0.2 0.0874,0.62 -0.0695,1.872 -0.1462,0.683 -0.0963,0.144 -0.49742,0.282 -0.18542,0.182 -1.3425,1.915 -0.0642,0.297 -0.11945,2.603 -4.84369,-2.435 -0.0592,-6.083 7.25628,-0.337\"},\"19115\":{\"name\":\"Louisa, IA\",\"path\":\"m 600.6952,231.12414 1.9772,-0.08 0.0874,2.017 4.96529,-0.193 0,0 -0.49029,1.963 0.0178,0.191 0.007,0.02 1.16422,1.399 0.54912,0.273 0.22999,-0.03 0.13907,0.06 0.14619,0.152 0.80942,1.326 -0.016,0.555 -7.25628,0.337 -0.10437,-1.99901 -1.97624,0.054 -0.2496,-6.05\"},\"19139\":{\"name\":\"Muscatine, IA\",\"path\":\"m 610.48137,226.61714 1.93992,-0.0765 0.19061,3.30549 -1.05189,0 -2.41044,0.658 -0.6454,0.233 -0.18364,0.12 -0.016,0 0,0 -0.12124,0.171 -0.016,0.05 -0.23891,0.982 -0.20325,0.788 -4.96529,0.192 -0.0874,-2.016 -0.16046,-4.051 7.96943,-0.376\"},\"19103\":{\"name\":\"Johnson, IA\",\"path\":\"m 602.22133,220.95114 0.29061,6.042 0.16046,4.051 -1.9772,0.08 -0.44215,-1.583 -0.2817,-0.401 -5.28799,0.23 -0.39223,-8.091 7.9302,-0.328\"},\"19113\":{\"name\":\"Linn, IA\",\"path\":\"m 601.77918,210.86714 0.34766,8.068 0.0945,2.016 -7.9302,0.328 -0.43502,-10.107 3.97045,-0.114 3.95262,-0.191\"},\"19031\":{\"name\":\"Cedar, IA\",\"path\":\"m 610.07309,218.55714 0.21751,4.033 0.19077,4.027 -7.96943,0.376 -0.3851,-8.058 7.94625,-0.378\"},\"19105\":{\"name\":\"Jones, IA\",\"path\":\"m 605.72467,210.68214 3.92053,-0.194 0.32449,6.044 0.1034,2.025 -7.94625,0.378 -0.34766,-8.068 3.94549,-0.185\"},\"19019\":{\"name\":\"Buchanan, IA\",\"path\":\"m 597.27922,203.03914 0.0481,1.752 0.11232,2.282 0.2906,2.209 0.0963,1.776 -3.97045,0.114 -3.95262,0.211 -0.12837,-3.416 -0.31557,-0.514 -0.17294,-4.027 7.99261,-0.387\"},\"19065\":{\"name\":\"Fayette, IA\",\"path\":\"m 588.87299,193.25414 7.97477,-0.324 0.43146,10.109 -7.99261,0.387 -0.25138,-6.116 -0.16224,-4.056\"},\"19191\":{\"name\":\"Winneshiek, IA\",\"path\":\"m 596.30042,183.27214 0.16759,3.657 0.12124,0 0.25851,6.01 -7.97477,0.324 -0.11054,-3.007 -0.26565,-6.638 5.81929,-0.248 1.98433,-0.09\"},\"19005\":{\"name\":\"Allamakee, IA\",\"path\":\"m 602.83999,182.95814 0.28882,1.776 -0.016,1.182 1.78465,1.255 0.38688,0.491 0.50456,0.811 -0.0642,0.287 -1.28366,2.162 -0.43681,1.696 -7.15644,0.312 -0.25851,-6.01 -0.12124,0 -0.16759,-3.657 6.53957,-0.314\"},\"19043\":{\"name\":\"Clayton, IA\",\"path\":\"m 604.0042,192.61814 0.35658,2.186 0.37618,1.758 1.53505,3.408 0.2086,0.434 1.35676,0.9 0.46712,0.216 0.8843,0.21 -3.92945,0.877 -7.98012,0.432 -0.43146,-10.109 7.15644,-0.312\"},\"19055\":{\"name\":\"Delaware, IA\",\"path\":\"m 597.27922,203.03914 7.98012,-0.432 0.46533,8.075 -3.94549,0.185 -3.95262,0.191 -0.0963,-1.776 -0.2906,-2.209 -0.11232,-2.282 -0.0481,-1.752\"},\"19061\":{\"name\":\"Dubuque, IA\",\"path\":\"m 605.25934,202.60714 3.92945,-0.877 2.17688,0.417 0.8433,0.202 0.19255,0.09 0.12124,0.122 1.06972,1.945 0.18363,0.579 0.0107,0.13 -0.0642,0.111 -0.23534,0.403 -0.007,0.05 0.016,0.129 0.0392,0.115 0.13728,0.143 0.39223,0.282 1.13569,0.586 1.44412,1.006 0.007,0 0.0428,0.04 -3.21451,0.168 0.10519,2.023 -3.94015,0.202 -3.92053,0.194 -0.46533,-8.075\"},\"19097\":{\"name\":\"Jackson, IA\",\"path\":\"m 616.69467,208.09514 1.01089,1.171 0.0481,0.07 0.009,0.09 -0.0963,0.65 -0.0963,0.216 0,0.146 0.23534,0.53 0.0125,0.03 0.48316,0.602 0.016,0.01 0.29061,0.233 0.312,0.202 0.7078,0.226 2.97205,3.541 -12.62985,0.717 -0.32449,-6.044 3.94015,-0.202 -0.10519,-2.023 3.21451,-0.168\"},\"16043\":{\"name\":\"Fremont, ID\",\"path\":\"m 273.01975,135.82314 0.77198,0.763 1.31933,2.587 0.71493,2.064 0.18542,0.548 1.30862,1.214 -1.7686,11.168 -5.95479,0.451 -0.0321,0.035 -0.0321,0.035 -0.0312,0.01 -0.0312,0.01 -2.45053,-0.43457 -0.17742,0.81957 -2.23394,-0.371 -2.14479,-1.389 -2.27494,-0.387 0.16045,-0.987 -2.91677,-0.515 0.33696,-1.96 1.98612,0.346 0.38136,-1.85737 1.91676,0.22637 1.06794,-0.844 0.33874,-1.47 0.24782,-1.455 1.20522,-1.15 1.48691,-0.369 1.42987,0.233 0.57943,-3.439 2.77949,-3.191 1.83101,-0.69\"},\"16033\":{\"name\":\"Clark, ID\",\"path\":\"m 268.40925,139.70414 -0.57943,3.439 -1.42987,-0.233 -1.48691,0.369 -1.20522,1.15 -0.24782,1.455 -0.33874,1.47 -1.06794,0.844 -1.91676,-0.22637 -0.38136,1.85737 -1.98612,-0.346 -8.75746,-1.542 -0.35479,1.959 -4.86188,-0.884 1.05367,-5.937 0.96454,0.266 1.95937,0.344 0.59548,-3.318 -0.0963,-0.467 0.19255,-0.86 0.23356,-0.361 0.6347,-0.674 1.08399,-0.257 5.74619,1.43 2.44253,-0.917 4.475,0.459 3.23948,0.923 2.08952,0.06\"},\"16009\":{\"name\":\"Benewah, ID\",\"path\":\"m 195.36507,59.678143 2.13053,0.473 4.2254,0.666 0.21751,-0.472 0.61152,-0.201 3.94371,0.884 -1.90232,8.741 -1.98612,-0.424 -4.75669,-1.407 -3.68876,-2.933 0.66857,-2.941 0.53665,-2.386\"},\"16055\":{\"name\":\"Kootenai, ID\",\"path\":\"m 198.39416,46.057143 4.16301,0.82 2.12161,0.248 1.96116,0.435 -0.51525,2.25 2.78128,0.603 -2.41223,10.615 -3.94371,-0.884 -0.61152,0.201 -0.21751,0.472 -4.2254,-0.666 -2.13053,-0.473 3.02909,-13.621\"},\"16017\":{\"name\":\"Bonner, ID\",\"path\":\"m 202.87095,26.781143 3.72085,0.811 -0.82725,3.849 -0.87717,3.849 11.10549,2.395 -1.37459,6.388 -1.11608,5.311 -0.14441,-0.298 -0.79516,-1.148 -1.39955,-1.109 -0.17651,-0.112 -0.64361,0.06 -0.9164,0.779 -0.0713,0.323 -0.44928,2.539 -2.78128,-0.603 0.51525,-2.25 -1.96116,-0.435 -2.12161,-0.248 -4.16301,-0.82 0.34588,-1.517 4.13091,-17.759\"},\"16021\":{\"name\":\"Boundary, ID\",\"path\":\"m 203.65006,23.397143 14.71403,3.191 -2.37122,11.097 -11.10549,-2.395 0.87717,-3.849 0.82725,-3.849 -3.72085,-0.811 0.77911,-3.384\"},\"16057\":{\"name\":\"Latah, ID\",\"path\":\"m 194.15985,65.005143 3.68876,2.933 4.75669,1.407 1.98612,0.424 -0.42611,1.969 -1.29436,5.963 -0.85221,0.731 -1.3015,-0.289 -2.39617,-0.57 -0.16759,0 -0.68997,0.257 -0.71672,0.442 -0.19255,0.249 0.009,0.08 -0.33697,0.579 -5.00629,-1.095 2.93995,-13.081\"},\"16069\":{\"name\":\"Nez Perce, ID\",\"path\":\"m 191.2199,78.086143 5.00629,1.095 0.33697,-0.579 -0.009,-0.08 0.19255,-0.249 0.71672,-0.442 0.68997,-0.257 0.16759,0 2.39617,0.57 -0.35479,1.632 -0.24782,1.43 0.95562,0.03 0.36192,0.103 -0.16045,0.731 -0.0891,-0.06 -0.15154,-0.04 -0.39402,-0.07 -0.0891,0.01 0.025,0.313 0.0481,0.282 0.3851,1.262 -0.10519,0.69 -0.0785,0.195 -0.15332,0.192 -1.96829,-0.02 -3.48908,-0.772 -0.0945,0.483 0.007,0.159 -1.36568,6.775 -0.29061,0.112 -0.49742,0.387 -0.12836,0.136 -0.20147,0.371 -0.016,0.272 0.0499,0.33 0.0945,0.136 0.082,0.217 -0.0499,0.234 -0.31378,0.392 -0.11946,0.1 -0.65074,0.168 -0.17651,-0.06 -1.13212,-3.528 -0.0981,-1.59 0.76485,-2.108 -0.0981,-1.975 -0.15333,-1.269 -0.0232,-0.08 -0.50455,-2.034 0.33696,-1.004 0.58657,-2.595\"},\"16061\":{\"name\":\"Lewis, ID\",\"path\":\"m 203.9068,84.877143 0.97344,2.908 -2.85259,1.631 -2.96491,-1.622 -0.37797,0.06 -0.057,0.06 -3.19847,3.014 -1.67055,0.546 1.36568,-6.775 -0.007,-0.159 0.0945,-0.483 3.48908,0.772 1.96829,0.02 0.15332,-0.192 0.0785,-0.195 0.10519,-0.69 -0.3851,-1.262 -0.0481,-0.282 -0.025,-0.313 0.0891,-0.01 0.39402,0.07 0.15154,0.04 0.0891,0.06 0.59369,0.772 1.83279,1.02 0.16046,0.297 0.041,0.305 0.007,0.419\"},\"16003\":{\"name\":\"Adams, ID\",\"path\":\"m 190.31063,107.85114 5.52868,1.206 0.0802,0.417 0.16046,1.406 -0.0232,1.052 -0.22642,0.532 -0.11054,0.07 -0.0571,0.225 2.54059,0.579 0.66679,1.189 -0.90035,2.177 -0.34766,0.412 -0.14441,0 -0.23177,-0.139 -0.77199,1.175 -0.22464,0.497 -0.64183,1.785 -0.55626,4.475 0,2.089 -2.55485,0.74 -1.478,-0.322 -0.54556,-0.289 -1.39242,-1.238 0.69944,-2.692 -1.30918,-0.362 -0.0891,-1.164 0.86112,-3.954 -4.24323,-0.981 0.48316,-0.513 0.37619,-0.403 0.53842,-0.931 0.016,-0.02 -0.0232,-0.185 -0.0963,-0.225 -0.0571,-0.225 -0.016,-0.465 0.40114,-0.836 0.50812,-0.467 0.77912,-0.706 2.40152,-3.914\"},\"16087\":{\"name\":\"Washington, ID\",\"path\":\"m 184.99946,116.73714 4.24323,0.981 -0.86112,3.954 0.0891,1.164 1.30918,0.362 -0.69944,2.692 1.39242,1.238 0.54556,0.289 1.478,0.322 -0.95562,1.632 -0.36192,0.923 -0.30487,1.503 -0.54556,1.808 -0.21038,0.529 -1.50296,-0.337 -7.15822,-1.606 0.0232,-0.04 0.0232,-0.05 0.0321,-0.06 0.009,0 0,-0.02 0.0232,-0.234 -0.0553,-0.176 -0.0161,-0.03 -0.85221,-1.686 -0.16759,-0.105 -0.63648,-0.225 -0.0874,0 -0.15333,0.07 -2.00038,-0.811 -0.24069,-0.408 -0.0321,-0.33 0.0232,-0.194 0.041,-0.122 0.55448,-3.783 0.20146,-0.403 3.55861,-4.892 0.37797,-0.339 0.11232,-0.05 0.39401,-0.09 1.53505,-0.523 0.87539,-0.941\"},\"16075\":{\"name\":\"Payette, ID\",\"path\":\"m 181.4569,132.19114 7.15822,1.606 -0.43502,1.937 -2.34447,1.494 -2.26603,-0.521 -0.86826,3.928 -3.94549,-2.61 0.48138,-0.804 0.78089,-1.478 0.62579,-2.555 0.81299,-0.997\"},\"16015\":{\"name\":\"Boise, ID\",\"path\":\"m 208.15894,133.51614 0.85935,0.964 -0.20923,3.04129 2.84431,0.96871 0.0731,0.378 0.0731,3.794 -0.066,0.191 -0.46533,0.467 -1.27832,-0.04 -1.57033,-1.19583 0.0646,-2.50376 -1.01525,-0.59323 -0.88607,3.55482 -3.76008,0.417 -0.33874,0.167 -1.81496,1.698 -0.78803,0.946 -0.72385,0.997 -0.46533,0.435 -0.40114,0.186 -2.27494,0.859 -1.29972,0.05 -0.92531,-0.114 -0.19255,-0.09 -0.10519,0.106 -1.80069,-2.869 -2.01643,-3.175 0.12124,0.03 0.0321,-0.113 1.67055,-7.641 0.98057,0.209 1.57428,-0.122 0.60439,-1.42 9.64889,2.073 0.77912,-0.03 0.89322,-0.298 2.17866,-1.333\"},\"16045\":{\"name\":\"Gem, ID\",\"path\":\"m 195.05128,126.99914 0.0802,0.02 -0.85043,3.93 -0.9574,-0.2 -0.8433,3.896 -0.98057,-0.209 -1.67055,7.642 -0.0321,0.112 -0.12124,-0.03 -3.7369,-0.819 -3.23769,-0.7 0.86826,-3.928 2.26603,0.521 2.34447,-1.494 0.43502,-1.937 1.50296,0.337 0.21038,-0.529 0.54556,-1.808 0.30487,-1.503 0.36192,-0.923 0.95562,-1.632 2.55485,-0.74\"},\"16027\":{\"name\":\"Canyon, ID\",\"path\":\"m 178.75585,138.02514 3.94549,2.61 3.23769,0.7 -0.85934,3.905 0.23356,0.972 -0.16938,1.8 -0.28882,1.311 -0.69889,1.173 -0.75593,2.499 -1.0519,-0.675 -2.37121,-4.413 -0.0321,-0.119 0.14441,-0.878 0.025,-0.41 -0.12124,-0.713 -0.1034,-0.346 -0.40115,-0.499 -1.96294,-2.266 -0.54556,-0.344 1.77574,-4.307\"},\"16001\":{\"name\":\"Ada, ID\",\"path\":\"m 185.93903,141.33514 3.7369,0.819 2.01643,3.175 1.80069,2.869 0.10519,-0.105 -1.07685,5.118 -0.37797,1.776 -0.90035,3.883 -4.70856,-0.99 -0.25673,-0.233 -0.38688,-0.458 -0.52238,-0.828 -0.3851,-0.698 -0.007,-0.06 0.12837,-0.458 0.2086,-0.314 0.0321,-0.217 -0.31379,-1.116 -0.20146,-0.266 -0.11945,-0.09 -1.31041,-0.143 0.75593,-2.499 0.69889,-1.173 0.28882,-1.311 0.16938,-1.8 -0.23356,-0.972 0.85934,-3.905\"},\"16039\":{\"name\":\"Elmore, ID\",\"path\":\"m 211.26827,143.32014 0.26565,0.33 -0.65967,1.734 -0.21751,0.138 -0.51346,0.738 -0.22464,0.419 -1.73652,4.145 -1.13391,5.281 -0.78624,3.888 -0.51347,6.645 -0.66857,3.255 -6.8694,-1.399 0.39401,-1.888 0.26565,-0.569 0.31913,-1.191 -5.73549,-1.622 -3.36784,-0.708 -0.20146,-0.09 -1.05903,-1.109 -1.52792,-1.769 -0.71493,-1.446 -0.0481,-0.225 4.70856,0.99 0.90035,-3.883 0.37797,-1.776 1.07685,-5.119 0.19255,0.09 0.92531,0.114 1.29972,-0.05 2.27494,-0.859 0.40114,-0.186 0.46533,-0.435 0.72385,-0.997 0.78803,-0.946 1.81496,-1.698 0.33874,-0.167 3.76008,-0.417 0.88607,-3.55482 1.01525,0.59323 -0.0646,2.50376 1.57033,1.19583 1.27832,0.04\"},\"16073\":{\"name\":\"Owyhee, ID\",\"path\":\"m 176.98011,142.33214 0.54556,0.344 1.96294,2.266 0.40115,0.499 0.1034,0.346 0.12124,0.713 -0.025,0.41 -0.14441,0.878 0.0321,0.119 2.37121,4.413 1.0519,0.675 1.31041,0.143 0.11945,0.09 0.20146,0.266 0.31379,1.116 -0.0321,0.217 -0.2086,0.314 -0.12837,0.458 0.007,0.06 0.3851,0.699 0.52238,0.827 0.38688,0.458 0.25673,0.234 0.0481,0.224 0.71493,1.446 1.52792,1.769 1.05903,1.109 0.20146,0.09 3.36784,0.708 5.73549,1.622 -0.31913,1.191 -0.26565,0.569 -0.39401,1.888 6.8694,1.4 -3.55861,17.502 -24.5002,-5.201 -1.92907,-0.442 -6.49321,-1.487 -0.12836,-0.05 8.50963,-37.886\"},\"16025\":{\"name\":\"Camas, ID\",\"path\":\"m 210.87425,145.38414 1.67947,1.173 2.59586,0.756 0.11945,0.154 0.0481,0.167 0.041,0.337 0.0161,1.045 -0.12837,1.785 -0.0802,1.686 0.98368,3.70551 -0.48355,2.57687 1.96736,0.30062 0.53665,0.305 -0.0321,1.88 -0.2086,1.043 -3.60675,-0.681 -8.06035,-1.624 0.78624,-3.888 1.13391,-5.281 1.73652,-4.145 0.22464,-0.419 0.51346,-0.738 0.21751,-0.138\"},\"16047\":{\"name\":\"Gooding, ID\",\"path\":\"m 206.26197,159.99314 8.06035,1.624 -1.56001,7.875 -1.2694,4.491 -2.20184,-0.98 -1.14104,-1.054 -0.88431,-1.654 0.45107,-1.937 -0.009,-0.112 -0.67571,-1.416 -0.58478,-0.192 -0.45998,-0.1 -0.23891,0.1 0.51347,-6.645\"},\"16053\":{\"name\":\"Jerome, ID\",\"path\":\"m 212.76231,169.49214 3.77612,0.746 -0.11945,0.611 0.26565,0.394 4.782,1.48386 -0.0895,0.46114 1.92728,0.378 -0.98058,5.213 -1.18026,-0.01 -2.10557,0.216 -0.77911,-0.786 -0.0891,-0.186 -0.79516,-0.69 -2.644,-1.432 -1.02871,-0.385 -2.00038,-1.301 -0.2086,-0.218 1.2694,-4.491\"},\"16083\":{\"name\":\"Twin Falls, ID\",\"path\":\"m 205.7485,166.63814 0.23891,-0.1 0.45998,0.1 0.58478,0.192 0.67571,1.416 0.009,0.112 -0.45107,1.937 0.88431,1.654 1.14104,1.054 2.20184,0.98 0.2086,0.218 2.00038,1.301 1.02871,0.385 2.644,1.432 0.79516,0.69 0.0891,0.186 0.77911,0.786 2.10557,-0.216 -0.64361,0.1 -0.86648,1.68 -3.68875,-0.209 -0.24961,1.343 -0.0642,0.624 -1.49404,7.643 -3.61566,-0.715 -4.40369,-0.997 -2.51563,-0.506 -2.08061,-0.328 3.55861,-17.503 0.66857,-3.255\"},\"16031\":{\"name\":\"Cassia, ID\",\"path\":\"m 222.32384,178.77914 3.56931,1.07 0.21573,0.03 0.11232,-0.03 0.69175,-0.218 0.23177,-0.201 0.26565,-0.385 1.23018,-1.59 0.12837,-0.106 0.26565,-0.153 0.68997,-0.112 0.79694,0.08 1.01089,0.07 0.86825,0.266 0.44216,0.731 0.2496,0.353 0.85043,0.467 0.0981,0 0.19255,-0.161 0.68283,-0.08 3.04515,1.639 -1.03585,5.929 -1.35855,7.497 -6.7339,-1.139 -0.49029,-0.08 -5.58395,-0.95 -0.53129,-0.09 -1.42986,-0.249 -0.19968,-0.04 -1.3425,-0.32 -1.11786,-0.282 -4.00076,-0.788 1.49404,-7.643 0.0642,-0.624 0.24961,-1.343 3.68875,0.209 0.86648,-1.68 0.64361,-0.1 1.18026,0.01\"},\"16071\":{\"name\":\"Oneida, ID\",\"path\":\"m 247.3072,184.10814 1.4156,1.496 0,1.662 0.65788,0.772 1.5511,1.59 0.41006,0.284 0.33696,0.456 0.41006,0.768 -0.26565,1.571 -0.65075,-0.118 -0.67392,3.942 -0.91818,-0.146 -1.2284,-0.317 -0.009,0 -3.55148,-0.614 -4.33059,-0.748 -4.89398,-0.828 1.35855,-7.497 5.78541,1.006 0.35479,-1.986 2.59408,0.46 0.34588,-1.986 1.30149,0.233\"},\"16077\":{\"name\":\"Power, ID\",\"path\":\"m 240.03487,168.54414 -1.02871,5.639 3.17529,0.563 1.44591,-1.815 0.68284,0.739 1.96828,-0.771 0.21751,0.04 0.4582,0.513 0.3851,1.102 1.20522,6.404 -0.0802,0.492 -0.32091,1.189 -0.83617,1.469 -1.30149,-0.233 -0.34588,1.986 -2.59408,-0.46 -0.35479,1.986 -5.78541,-1.006 1.03585,-5.929 -3.04515,-1.639 -0.68283,0.08 0.57051,-3.118 0.24961,-1.968 1.10003,-5.971 3.8813,0.708\"},\"16005\":{\"name\":\"Bannock, ID\",\"path\":\"m 255.26237,173.30114 -1.35855,1.59 -0.0481,0.09 -0.33696,0.795 -0.51347,2.557 -0.041,0.649 0.025,0.249 0.312,1.304 0.13728,0.1 0.19968,-0.02 0.31557,-0.162 0.0874,-0.129 0.13728,-0.08 1.46195,0.248 0.44929,2.107 0.0321,0.344 0.0321,3.015 -0.007,1.018 -0.11232,0.662 -0.32983,-0.05 -0.64184,3.632 -1.46373,-0.251 -0.71493,-0.571 -1.54218,-0.487 -0.41006,-0.283 -1.5511,-1.59 -0.65788,-0.772 0,-1.662 -1.4156,-1.496 0.83617,-1.469 0.32091,-1.189 0.0802,-0.492 -1.20522,-6.404 -0.3851,-1.102 -0.4582,-0.513 -0.21751,-0.04 -1.96828,0.771 -0.68284,-0.739 0,-0.153 0.041,-0.112 0.25674,-0.555 1.34071,-0.474 0.19255,-0.03 9.80401,1.688\"},\"16041\":{\"name\":\"Franklin, ID\",\"path\":\"m 256.03435,187.63714 4.61941,0.788 -0.1765,2.28 -0.73098,1.546 -0.33696,0.816 -0.0571,0.41 0.0963,2.177 0.0571,0.13 1.10894,2.384 -10.116,-1.637 0.67392,-3.942 0.65075,0.118 0.26565,-1.571 -0.41006,-0.768 -0.33696,-0.456 1.54218,0.486 0.71493,0.571 1.46373,0.251 0.64184,-3.632 0.32983,0.05\"},\"16007\":{\"name\":\"Bear Lake, ID\",\"path\":\"m 270.22599,187.69414 -1.87379,11.679 -7.73766,-1.205 -1.10894,-2.384 -0.0571,-0.13 -0.0963,-2.177 0.0571,-0.41 0.33696,-0.816 0.73098,-1.546 0.1765,-2.28 -0.0553,-3.079 0.0321,-0.548 0.59369,-0.385 6.01897,0.958 0.2086,0.472 0.009,0.153 -0.15332,0.573 -0.12124,0.319 -0.19968,0.426 1.36568,0.668 1.87379,-0.288\"},\"16029\":{\"name\":\"Caribou, ID\",\"path\":\"m 263.08025,174.66614 9.03202,1.471 -1.88628,11.557 -1.87379,0.288 -1.36568,-0.668 0.19968,-0.426 0.12124,-0.319 0.15332,-0.573 -0.009,-0.153 -0.2086,-0.472 -6.01897,-0.958 -0.59369,0.385 -0.0321,0.548 0.0553,3.079 -4.61941,-0.788 0.11232,-0.662 0.007,-1.018 -0.0321,-3.015 -0.0321,-0.344 -0.44929,-2.107 -1.46195,-0.248 -0.13728,0.08 -0.0874,0.129 -0.31557,0.162 -0.19968,0.02 -0.13728,-0.1 -0.312,-1.304 -0.025,-0.249 0.041,-0.649 0.51347,-2.557 0.33696,-0.795 0.0481,-0.09 1.35855,-1.59 7.81788,1.365\"},\"16067\":{\"name\":\"Minidoka, ID\",\"path\":\"m 228.77783,164.37214 4.94212,0.932 -1.46374,7.964 -0.97879,-0.185 -0.75594,4.09 -0.79694,-0.08 -0.68997,0.112 -0.26565,0.153 -0.12837,0.106 -1.23018,1.59 -0.26565,0.385 -0.23177,0.201 -0.69175,0.218 -0.11232,0.03 -0.21573,-0.03 -3.56931,-1.07 0.98058,-5.213 2.78128,0.546 1.20522,-1.783 1.48691,-7.957\"},\"16063\":{\"name\":\"Lincoln, ID\",\"path\":\"m 214.32232,161.61714 3.60675,0.681 10.84876,2.074 -1.48691,7.957 -1.20522,1.783 -2.78128,-0.546 -1.92728,-0.378 0.0895,-0.46114 -4.782,-1.48386 -0.26565,-0.394 0.11945,-0.611 -3.77612,-0.746 1.56001,-7.875\"},\"16019\":{\"name\":\"Bonneville, ID\",\"path\":\"m 264.76863,160.74914 3.69589,0.715 2.55663,0.426 0.23178,0.394 0.016,0.232 1.35855,1.736 1.21235,0.917 -0.59813,3.95907 -1.12947,7.00893 -9.03202,-1.471 0.69889,-4.09 0.3227,-1.863 -3.8799,-1.00117 0.33555,-1.57083 -4.64333,-0.8856 0.25569,-1.2274 -6.84622,-1.198 0.80407,-4.58 14.64093,2.499\"},\"16011\":{\"name\":\"Bingham, ID\",\"path\":\"m 250.1277,158.25014 -0.80407,4.58 6.84622,1.198 -0.25569,1.2274 4.64333,0.8856 -0.33555,1.57083 3.8799,1.00117 -0.3227,1.863 -0.69889,4.09 -7.81788,-1.365 -9.80401,-1.689 -0.19255,0.03 -1.34071,0.474 -0.25674,0.555 -0.041,0.112 0,0.154 -1.44591,1.814 -3.17529,-0.563 1.02871,-5.639 0.72385,-3.946 0.98058,0.177 0.49742,-1.849 0.34588,-1.865 1.9772,0.364 0.45444,-2.07278 1.83476,0.34278 0.36193,-1.872 2.91677,0.427\"},\"16013\":{\"name\":\"Blaine, ID\",\"path\":\"m 211.53392,143.65014 0.77911,-0.557 0.19968,-0.103 0.61153,-0.225 0.24068,-0.04 0.97345,0.193 1.85418,1.906 1.35142,1.51 1.85597,-0.136 2.38726,0.699 0.62579,0.466 4.31633,4.701 1.28366,1.583 0.22643,0.305 0.45819,0.891 0.15868,0.362 0.13728,0.546 0.89322,-0.273 0.33696,0 0.42611,0.2 0.0802,0.144 0.6347,2.042 0.12123,0.941 -0.36192,0.248 -0.32983,1.752 4.48392,0.844 -0.34588,1.881 5.82642,1.06 -0.72385,3.946 -3.8813,-0.708 -1.10003,5.971 -0.24961,1.968 -0.57051,3.118 -0.19255,0.161 -0.0981,0 -0.85043,-0.467 -0.2496,-0.353 -0.44216,-0.731 -0.86825,-0.266 -1.01089,-0.07 0.75594,-4.09 0.97879,0.186 1.46374,-7.965 -4.94212,-0.932 -10.84876,-2.073 0.2086,-1.043 0.0321,-1.881 -0.53665,-0.305 -1.96736,-0.30062 0.48355,-2.57687 -0.98368,-3.70551 0.0802,-1.686 0.12837,-1.785 -0.0161,-1.045 -0.041,-0.337 -0.0481,-0.167 -0.11945,-0.154 -2.59586,-0.755 -1.67947,-1.174 0.65967,-1.734\"},\"16085\":{\"name\":\"Valley, ID\",\"path\":\"m 198.2034,113.33914 0.0143,-0.128 0.25673,-0.5 0.34588,-0.433 2.49245,-0.337 20.38534,4.17 -0.31379,0.154 -0.21751,0.224 -0.26386,0.642 -0.2496,1.238 -0.16938,1.053 -0.55269,2.115 -0.94135,1.824 -0.93244,1.148 -2.52276,1.478 -0.16938,0.03 -0.68997,-0.241 -0.52238,-0.715 -0.4992,-0.435 -0.27278,-0.09 -0.78625,0.369 -2.9346,2.499 -0.55447,0.651 -0.0143,0.635 0.0392,0.387 0.0891,0.424 0.3851,0.128 0.0963,-0.06 0.0481,0.02 0.10519,0.218 0.0553,0.722 -0.28882,1.301 -0.0963,0.17 -0.36192,0.579 -0.29774,0.337 -0.51347,0.474 -0.19255,0.12 -2.17866,1.333 -0.89322,0.298 -0.77912,0.03 -9.64889,-2.073 -0.60439,1.421 -1.57428,0.121 0.8433,-3.896 0.9574,0.2 0.85043,-3.93 -0.0802,-0.02 0,-2.089 0.55626,-4.475 0.64183,-1.785 0.22464,-0.497 0.77199,-1.175 0.23177,0.139 0.14441,0 0.34766,-0.412 0.90035,-2.177 -0.66679,-1.189\"},\"16079\":{\"name\":\"Shoshone, ID\",\"path\":\"m 208.90597,50.413143 0.44928,-2.539 0.0713,-0.323 0.9164,-0.779 0.64361,-0.06 0.17651,0.112 1.39955,1.109 0.79516,1.148 0.14441,0.298 0.47425,0.843 3.09328,6.301 0.0232,0.08 0.025,0.06 0.007,0.03 0,0.09 -0.007,1.287 -0.52238,1.325 -0.44215,1.005 -0.29774,1.849 0,0.02 0.0161,0.569 2.46036,3.4 0.33696,0.289 0.26565,0.233 0.8433,0.41 1.22126,0.489 0.26565,0.194 1.39777,3.149 1.30863,3.054 0.73989,1.381 0.40114,0.74 -20.94694,-4.428 0.42611,-1.969 1.90232,-8.741 2.41223,-10.615\"},\"16035\":{\"name\":\"Clearwater, ID\",\"path\":\"m 204.16531,71.738143 20.94694,4.428 0.30666,2.323 0,0.01 0.0713,0.194 2.31595,3.093 0.22464,0.06 0.10341,0.03 0.68997,0 0.86826,2.176 -10.00369,0.177 -6.86226,0.128 -0.0321,0.02 -2.18579,2.589 -0.48138,0.94 -0.27278,0.305 -0.32983,0.29 -0.2496,-0.03 -0.32092,-0.103 -2.35339,-1.109 -0.0891,-0.07 -0.41006,-0.578 -0.28169,-0.619 -1.53505,-0.955 -0.37797,-0.17 -0.007,-0.418 -0.041,-0.305 -0.16046,-0.298 -1.83279,-1.02 -0.59369,-0.772 0.16045,-0.731 -0.36192,-0.103 -0.95562,-0.03 0.24782,-1.43 0.35479,-1.631 1.3015,0.288 0.85221,-0.731 1.29436,-5.963\"},\"16049\":{\"name\":\"Idaho, ID\",\"path\":\"m 233.63972,84.605143 0.0874,0.09 0.0571,0.266 -0.0963,0.506 -0.55626,1.574 -0.93957,2.163 -1.40669,3.125 -4.48391,11.185997 -0.56161,3.077 -0.28169,1.558 -0.0161,0.08 0.0481,0.06 -0.70602,0.531 -1.5921,0.995 -0.81834,-0.433 -0.22642,-0.225 -0.1355,-0.257 -0.16046,-0.169 -0.22642,-0.03 -0.10341,0.07 -0.13015,0.259 -0.0963,0.465 -0.11232,0.82 0.009,0.09 0.57943,0.82 0.82726,1.117 0.69888,1.486 -1.59923,2.291 -20.38534,-4.17 -2.49245,0.337 -0.34588,0.434 -0.25673,0.499 -0.0143,0.128 -2.54059,-0.579 0.0571,-0.225 0.11054,-0.07 0.22642,-0.532 0.0232,-1.051 -0.16046,-1.407 -0.0802,-0.417 -5.52868,-1.206 0.54556,-1.15 2.78128,-3.567 1.54218,-1.576 0.38688,-0.44 0.0642,-0.291 -0.55448,-2.907997 -0.10519,-0.442 0,0 -0.312,-0.396 -0.27456,-0.353 -0.007,0 -0.58657,-0.257 -1.39955,-1.287 -0.73098,-0.674 -0.0481,-0.09 -0.0713,-0.135 0.17651,0.06 0.65074,-0.168 0.11946,-0.1 0.31378,-0.392 0.0499,-0.234 -0.082,-0.217 -0.0945,-0.136 -0.0499,-0.329 0.016,-0.273 0.20147,-0.371 0.12836,-0.135 0.49742,-0.387 0.29061,-0.113 1.67055,-0.545 3.19847,-3.015 0.057,-0.06 0.37797,-0.06 2.96491,1.623 2.85259,-1.632 -0.97344,-2.907 0.37797,0.169 1.53505,0.956 0.28169,0.618 0.41006,0.578 0.0891,0.07 2.35339,1.109 0.32092,0.103 0.2496,0.03 0.32983,-0.29 0.27278,-0.305 0.48138,-0.94 2.18579,-2.588 0.0321,-0.02 6.86226,-0.128 10.00369,-0.176 0.0321,0.03 1.71155,0.36 0.36192,-0.1 0.24961,-0.1 0.41006,-0.08 0.82725,0.112 0.28169,0.234 0.0731,0.07\"},\"16037\":{\"name\":\"Custer, ID\",\"path\":\"m 208.15894,133.51614 0.19255,-0.12 0.51347,-0.474 0.29774,-0.337 0.36192,-0.579 0.0963,-0.17 0.28882,-1.301 -0.0553,-0.722 -0.10519,-0.218 -0.0481,-0.02 -0.0963,0.06 -0.3851,-0.128 -0.0891,-0.424 -0.0392,-0.387 0.0143,-0.635 0.55447,-0.651 2.9346,-2.499 0.78625,-0.369 0.27278,0.09 0.4992,0.435 0.52238,0.715 0.68997,0.241 0.16938,-0.03 2.52276,-1.478 -0.40115,1.349 0.0232,0.298 0.12836,0.369 2.63687,3.432 0.47424,0.562 0.0963,0.03 1.45482,-0.145 0.49742,-0.329 1.24623,-1.061 0.0642,-0.09 0.37619,-0.788 0.37083,-0.916 0.48138,-0.715 0.68462,-0.538 1.64737,-1.198 0.312,0.522 -0.0874,0.813 0.0392,1.952 4.52492,6.629 2.29812,1.455 1.70264,0.916 0.2086,0.08 0.57051,0.161 0.0981,-0.02 0.24069,-0.179 0.25673,-0.312 0.16046,-0.121 0.2086,0.04 0.0731,0.112 0.11232,0.296 0.82726,2.372 0.22464,0.7 0.0571,0.979 -0.0891,0.972 -1.55823,-0.289 -1.39955,3.817 -0.12837,0.642 -0.27991,2.676 -0.40293,2.41 -1.70264,1.721 -2.75632,0.907 -1.5921,0.852 -0.70602,0.747 -0.0571,0.129 -0.13728,-0.546 -0.15868,-0.362 -0.45819,-0.891 -0.22643,-0.305 -1.28366,-1.583 -4.31633,-4.702 -0.62579,-0.465 -2.38726,-0.699 -1.85597,0.136 -1.35142,-1.51 -1.85418,-1.906 -0.97345,-0.193 -0.24068,0.04 -0.61153,0.225 -0.19968,0.103 -0.77911,0.557 -0.26565,-0.33 0.46533,-0.467 0.066,-0.191 -0.0731,-3.794 -0.0731,-0.378 -2.84431,-0.96871 0.20923,-3.04129 -0.85935,-0.964\"},\"16059\":{\"name\":\"Lemhi, ID\",\"path\":\"m 235.567,107.17614 0.32983,0.346 1.55823,2.201 0.0891,0.289 0.18364,1.824 -0.0143,0.683 -0.2086,0.378 -0.041,1.366 0.0232,1.8 2.51563,9.353 2.66718,3.712 0.54734,-0.135 0.57052,0.449 0.68283,0.763 0.30666,0.474 0.35122,1.102 0.46712,2 0,0.177 -0.0963,0.176 -0.0642,0.05 -0.0232,2.868 0.19077,1.086 0.44393,0.642 1.30863,1.464 0.41719,0.151 0.32983,-0.184 0.16046,-0.249 0.009,-0.06 0.0963,0.467 -0.59548,3.318 -1.95937,-0.344 -0.96454,-0.266 -5.27194,-0.941 0.0891,-0.972 -0.0571,-0.979 -0.22464,-0.7 -0.82726,-2.372 -0.11232,-0.296 -0.0731,-0.112 -0.2086,-0.04 -0.16046,0.121 -0.25673,0.312 -0.24069,0.179 -0.0981,0.02 -0.57051,-0.161 -0.2086,-0.08 -1.70264,-0.916 -2.29812,-1.455 -4.52492,-6.629 -0.0392,-1.952 0.0874,-0.813 -0.312,-0.522 -1.64737,1.198 -0.68462,0.538 -0.48138,0.715 -0.37083,0.916 -0.37619,0.788 -0.0642,0.09 -1.24623,1.061 -0.49742,0.329 -1.45482,0.145 -0.0963,-0.03 -0.47424,-0.562 -2.63687,-3.432 -0.12836,-0.369 -0.0232,-0.298 0.40115,-1.349 0.93244,-1.148 0.94135,-1.824 0.55269,-2.115 0.16938,-1.053 0.2496,-1.238 0.26386,-0.642 0.21751,-0.224 0.31379,-0.154 1.59923,-2.291 -0.69888,-1.486 -0.82726,-1.117 -0.57943,-0.82 -0.009,-0.09 0.11232,-0.82 0.0963,-0.466 0.13015,-0.258 0.10341,-0.07 0.22642,0.03 0.16046,0.169 0.1355,0.257 0.22642,0.225 0.81834,0.433 1.5921,-0.995 0.70602,-0.531 0.7078,0.1 0.6347,0.16 0.20147,0.09 1.18026,1.865 0.14441,0.562 0,0 0.65966,0.103 3.15033,-1.446 1.98434,-1.736 1.41381,-0.811\"},\"16023\":{\"name\":\"Butte, ID\",\"path\":\"m 244.84862,143.07914 -1.05367,5.937 4.86188,0.884 -1.4459,7.923 -0.36193,1.872 -1.83476,-0.34278 -0.45444,2.07278 -1.9772,-0.364 -0.34588,1.865 -0.49742,1.849 -0.98058,-0.177 -5.82642,-1.06 0.34588,-1.881 -4.48392,-0.844 0.32983,-1.752 0.36192,-0.248 -0.12123,-0.941 -0.6347,-2.042 -0.0802,-0.144 -0.42611,-0.2 -0.33696,0 -0.89322,0.273 0.0571,-0.129 0.70602,-0.747 1.5921,-0.852 2.75632,-0.907 1.70264,-1.721 0.40293,-2.41 0.27991,-2.676 0.12837,-0.642 1.39955,-3.817 1.55823,0.289 5.27194,0.941\"},\"16051\":{\"name\":\"Jefferson, ID\",\"path\":\"m 248.65683,149.90014 0.35479,-1.959 8.75746,1.542 -0.33696,1.96 2.91677,0.515 -0.16045,0.987 -0.60261,2.933 -0.17651,0.997 0.18364,0.169 0.35479,0.03 0.0285,-0.015 0.0285,-0.015 2.75081,2.69159 2.12534,0.36841 -0.11232,0.652 -14.64093,-2.499 -2.91677,-0.427 1.4459,-7.923\"},\"16065\":{\"name\":\"Madison, ID\",\"path\":\"m 260.18844,152.94514 2.27494,0.387 2.14479,1.389 2.23394,0.371 0.17742,-0.81957 2.45053,0.43457 0.0312,-0.01 0.0312,-0.01 0.0321,-0.035 0.0321,-0.035 -1.13212,6.846 -3.69589,-0.715 0.11232,-0.652 -2.12534,-0.36841 -2.75081,-2.69159 -0.0285,0.015 -0.0285,0.015 -0.35479,-0.03 -0.18364,-0.169 0.17651,-0.997 0.60261,-2.932\"},\"16081\":{\"name\":\"Teton, ID\",\"path\":\"m 275.55143,154.16714 -1.71156,11.002 -1.21235,-0.917 -1.35855,-1.736 -0.016,-0.232 -0.23178,-0.394 -2.55663,-0.426 1.13212,-6.846 5.95479,-0.451\"},\"17183\":{\"name\":\"Vermilion, IL\",\"path\":\"m 670.36441,248.32714 0.59369,7.604 0.51347,6.115 -7.05482,0.69 -0.76485,-7.971 0.23356,-0.02 -0.40828,-4.01 -0.21751,-1.993 7.07799,-0.74 0.0267,0.328\"},\"17075\":{\"name\":\"Iroquois, IL\",\"path\":\"m 658.88094,237.21614 10.38878,-1.191 1.06794,11.974 -7.07799,0.74 -3.16638,0.225 -1.21235,-11.748\"},\"17003\":{\"name\":\"Alexander, IL\",\"path\":\"m 641.41951,323.66214 4.27354,-0.306 -0.0553,2.515 -0.0571,2.338 0.16937,0.362 0.14442,0.171 0.44393,0.2 1.18204,0.497 0.85756,1.927 -3.4962,-0.376 -1.21414,-0.989 -0.64183,-1.575 -1.11608,-2.089 -0.45998,-0.658 -0.0303,-2.017\"},\"17153\":{\"name\":\"Pulaski, IL\",\"path\":\"m 645.69305,323.35614 3.69589,-0.145 0.0761,1.1715 2.06334,-0.6965 0.15333,1.768 -0.0981,0.03 -4.06316,3.953 -1.18204,-0.497 -0.44393,-0.2 -0.14442,-0.171 -0.16937,-0.362 0.0571,-2.338 0.0553,-2.515\"},\"17127\":{\"name\":\"Massac, IL\",\"path\":\"m 651.52838,323.68614 3.89558,-1.092 4.30741,3.791 0.17829,2.145 -1.32468,-0.141 -6.90327,-2.935 -0.15333,-1.768\"},\"17069\":{\"name\":\"Hardin, IL\",\"path\":\"m 661.00256,316.05314 4.4126,0.223 1.43521,1.487 0,0.371 -0.3441,0.392 -0.18363,0.04 -2.5085,0.531 -0.37797,0.08 -0.312,0.09 -0.1141,0.03 -0.0392,0 -0.43502,0.264 -0.0874,0.06 -0.016,0 -0.30666,0.283 -0.45641,0.608 -1.05368,-0.344 -0.27278,-4.081 0.65967,-0.05\"},\"17151\":{\"name\":\"Pope, IL\",\"path\":\"m 660.34289,316.10114 0.27278,4.081 -0.11232,0.05 -0.312,0.143 -0.12837,0.1 -0.16224,0.114 -0.23355,0.303 -0.0945,0.227 -0.51525,2.264 0,0 -0.0107,0.153 0.15511,0.498 0.76307,0.916 0.24247,0.137 0.22464,0.216 0.51346,1.141 -0.26564,1.277 -0.21573,0.595 -0.41898,0.185 -0.13549,0.02 -0.17829,-2.145 -4.30741,-3.791 -0.42433,-6.059 5.34326,-0.434\"},\"17087\":{\"name\":\"Johnson, IL\",\"path\":\"m 654.99963,316.53514 0.42433,6.059 -3.89558,1.092 -2.06334,0.6965 -0.0761,-1.1715 -0.39223,-6.163 6.00292,-0.513\"},\"17181\":{\"name\":\"Union, IL\",\"path\":\"m 648.99671,317.04814 0.39223,6.163 -3.69589,0.145 -4.27354,0.306 0.65788,-0.176 0.2086,-0.107 0.016,-0.02 0.0178,-0.02 0.0143,-0.02 0.0731,-0.218 0.0713,-0.708 0.009,-0.03 -0.009,-0.02 -0.10341,-0.387 -0.009,-0.04 -0.007,-0.02 -0.28882,-0.651 -0.22464,-0.282 -0.47603,-0.467 -0.33696,-0.504 -0.51347,-0.958 -0.007,0 -0.1141,-0.46 -0.016,-0.209 0,-0.137 0.77964,-0.82848 5.80985,-0.28952 2.02534,-0.06\"},\"17059\":{\"name\":\"Gallatin, IL\",\"path\":\"m 665.96785,308.89114 0.90748,2.035 -0.23356,0.875 -0.0874,0.234 -0.1355,0.247 -0.21751,0.236 -0.83616,0.608 -0.0143,0 -0.29061,0.547 -0.1462,0.248 -0.0232,0.05 -0.0963,0.256 -0.025,0.161 0.009,0.03 0.0945,0.52 0.0107,0.02 0.3851,1.045 0.1462,0.264 -4.4126,-0.223 -0.55448,-7.121 0,-0.02 5.51977,-0.02\"},\"17165\":{\"name\":\"Saline, IL\",\"path\":\"m 660.44808,308.93214 0.55448,7.121 -0.65967,0.05 -5.34326,0.434 -0.44215,-6.109 -0.0713,-1.003 5.96191,-0.491\"},\"17199\":{\"name\":\"Williamson, IL\",\"path\":\"m 654.55748,310.42614 0.44215,6.109 -6.00292,0.513 -2.02534,0.06 -0.39402,-6.051 7.98013,-0.626\"},\"17077\":{\"name\":\"Jackson, IL\",\"path\":\"m 638.4546,309.45514 7.49697,-0.41 0.62578,2.007 0.39402,6.051 -5.80985,0.28952 -0.77964,0.82848 -3.11645,-5.16 1.18917,-3.606\"},\"17133\":{\"name\":\"Monroe, IL\",\"path\":\"m 625.66251,297.15314 2.23215,2.032 1.6659,2.77304 2.53633,0.65596 0.49207,1.054 -2.45323,0.107 0.13015,2.025 -2.94352,1.269 -0.91283,-0.683 -1.51187,-1.47 -0.0464,-0.05 -0.0571,-0.08 -0.32983,-0.451 -0.2086,-0.515 -0.24068,-1.034 -0.0339,-0.965 0.016,-0.233 0.0339,-0.1 0.26208,-0.892 0.0802,-0.16 0.0499,-0.06 1.2391,-3.222\"},\"17157\":{\"name\":\"Randolph, IL\",\"path\":\"m 638.07841,303.34814 0.37619,6.107 -1.18917,3.606 -4.85476,-1.347 -5.08831,-4.645 2.94352,-1.269 -0.13015,-2.025 2.45323,-0.107 3.51047,-0.191 1.97898,-0.129\"},\"17145\":{\"name\":\"Perry, IL\",\"path\":\"m 638.07841,303.34814 7.97656,-0.411 0.17977,2.009 0.18355,2.59139 -0.46672,1.50761 -7.49697,0.41 -0.37619,-6.107\"},\"17055\":{\"name\":\"Franklin, IL\",\"path\":\"m 654.13137,304.36814 0.42611,6.058 -7.98013,0.626 -0.62578,-2.007 0.46672,-1.50761 -0.18355,-2.59139 7.89663,-0.578\"},\"17065\":{\"name\":\"Hamilton, IL\",\"path\":\"m 659.87578,300.89714 0.5723,8.019 0,0.02 -5.96191,0.491 -0.3548,-5.055 -0.19433,-3.038 5.93874,-0.433\"},\"17193\":{\"name\":\"White, IL\",\"path\":\"m 666.65069,300.23014 0.66679,0.747 -0.10341,2.411 -0.25673,5.325 -0.0481,0.1 -0.0107,0.02 -0.0392,0.03 -0.0303,0 -0.86112,0.03 -5.51977,0.02 -0.5723,-8.019 3.92232,-0.337 2.85259,-0.33\"},\"17081\":{\"name\":\"Jefferson, IL\",\"path\":\"m 653.60899,296.28514 0.32805,5.045 0.19433,3.038 -7.89663,0.578 -0.17977,-2.009 -0.37796,-6.043 7.93198,-0.609\"},\"17189\":{\"name\":\"Washington, IL\",\"path\":\"m 645.63778,296.22014 0.0392,0.674 0.37796,6.043 -7.97656,0.411 -1.97898,0.129 -0.32092,-4.605 0.60974,-0.612 0.9164,-0.763 0.72384,-0.273 5.3504,-0.925 2.25889,-0.08\"},\"17027\":{\"name\":\"Clinton, IL\",\"path\":\"m 643.27548,290.83414 2.06456,-0.01 0.29774,5.4 -2.25889,0.08 -5.3504,0.925 -0.72384,0.273 -0.9164,0.763 -0.60974,0.612 -0.41006,-5.472 1.80783,-2.17 6.0992,-0.396\"},\"17163\":{\"name\":\"St. Clair, IL\",\"path\":\"m 626.92121,293.81714 8.44724,-0.417 0.41006,5.472 0.32092,4.605 -3.51047,0.191 -0.49207,-1.054 -2.53633,-0.65596 -1.6659,-2.77304 -2.23215,-2.032 0.0802,-0.284 1.17847,-3.052\"},\"17119\":{\"name\":\"Madison, IL\",\"path\":\"m 636.03524,285.36514 0.16938,1.863 0.28169,1.003 0.5616,1.407 0.12837,1.592 -1.80783,2.17 -8.44724,0.417 -0.36727,-1.85 1.29437,-1.58 0.0392,-0.218 0.0642,-0.531 -0.016,-0.135 -0.0731,-0.129 -1.74365,-1.053 -0.33874,-0.2 -0.44929,-0.216 -0.45819,-0.139 2.19471,-1.849 7.92307,-0.479 1.04476,-0.07\"},\"17005\":{\"name\":\"Bond, IL\",\"path\":\"m 642.87255,284.22414 0.40293,6.61 -6.0992,0.396 -0.12837,-1.592 -0.5616,-1.407 -0.28169,-1.003 -0.16938,-1.863 0.77529,-0.0418 -0.007,-0.83458 6.0687,-0.26459\"},\"17121\":{\"name\":\"Marion, IL\",\"path\":\"m 645.34004,290.82014 -0.13728,-2.032 2.45323,-0.154 5.39853,-0.474 0.33875,5.087 0.21572,3.038 -7.93198,0.609 -0.0392,-0.674 -0.29774,-5.4\"},\"17191\":{\"name\":\"Wayne, IL\",\"path\":\"m 661.30743,292.77214 1.95224,0.557 0.53843,7.231 -3.92232,0.337 -5.93874,0.433 -0.32805,-5.045 -0.21572,-3.038 7.91416,-0.475\"},\"17185\":{\"name\":\"Wabash, IL\",\"path\":\"m 667.43693,292.93514 4.64616,-0.348 -1.27832,3.68 -3.46233,4.598 -0.025,0.112 -0.66679,-0.747 0.0321,-7.231 0.75415,-0.06\"},\"17047\":{\"name\":\"Edwards, IL\",\"path\":\"m 666.68278,292.99914 -0.0321,7.231 -2.85259,0.33 -0.53843,-7.231 3.42311,-0.33\"},\"17101\":{\"name\":\"Lawrence, IL\",\"path\":\"m 673.61636,285.83714 0.0731,0 0.0392,0.06 0.68462,1.471 -0.007,0.562 -0.25138,1.462 -0.17651,0.322 -0.14263,0.12 -1.40668,1.799 -0.34588,0.941 -4.64616,0.348 -0.47424,-6.47 6.65367,-0.628\"},\"17159\":{\"name\":\"Richland, IL\",\"path\":\"m 666.96269,286.46514 0.47424,6.47 -0.75415,0.06 -3.42311,0.33 -1.95224,-0.557 -0.72385,-2.018 -0.0499,-0.344 -0.005,-0.651 0.46711,-0.02 -0.24425,-2.692 5.54473,-0.522 0.66679,-0.06\"},\"17025\":{\"name\":\"Clay, IL\",\"path\":\"m 652.92615,286.11214 5.89061,-0.378 0.11756,1.487 1.81685,-0.17 0.24425,2.692 -0.46711,0.02 0.005,0.651 0.0499,0.344 0.72385,2.018 -7.91416,0.475 -0.33875,-5.087 -0.12837,-2.048\"},\"17079\":{\"name\":\"Jasper, IL\",\"path\":\"m 664.56116,279.14414 1.01267,-0.11 0.72207,7.495 -7.36165,0.694 -0.59174,-7.499 6.21865,-0.58\"},\"17033\":{\"name\":\"Crawford, IL\",\"path\":\"m 665.57383,279.03414 5.70519,-0.08 0.36192,1.235 0.83617,0.983 1.27653,2.28 -0.0481,0.733 -0.12836,0.363 -0.10519,0.145 0.14441,1.146 -6.65367,0.628 -0.66679,0.06 -0.72207,-7.495\"},\"17023\":{\"name\":\"Clark, IL\",\"path\":\"m 664.80185,271.97714 4.7567,-0.554 0.0107,0.247 2.76344,-0.256 -0.82012,5.143 -0.23355,2.395 -5.70519,0.08 -1.01267,0.11 -0.47424,-4.724 -0.30721,-2.35699 1.02214,-0.086\"},\"17035\":{\"name\":\"Cumberland, IL\",\"path\":\"m 664.08692,274.42014 0.47424,4.724 -8.16009,0.759 -0.3745,-4.719 8.06035,-0.764\"},\"17049\":{\"name\":\"Effingham, IL\",\"path\":\"m 656.31539,278.87114 0.0842,1.034 1.94293,-0.181 0.47425,6.01 -5.89061,0.378 -2.00038,0.217 -0.50633,-7.04\"},\"17051\":{\"name\":\"Fayette, IL\",\"path\":\"m 650.41944,279.28914 0.50633,7.04 2.00038,-0.217 0.12837,2.048 -5.39853,0.474 -2.45323,0.154 0.13728,2.032 -2.06456,0.01 -0.40293,-6.61 -0.29921,-4.44075 1.93767,-0.0913 5.90843,-0.403\"},\"17173\":{\"name\":\"Shelby, IL\",\"path\":\"m 645.78219,269.46114 3.76899,-0.256 0.16046,1.681 4.15409,2.385 0.84329,0.312 1.19096,-0.09 0.12659,1.688 0.28882,3.687 -5.89595,0.418 -5.90843,0.403 -0.21573,-3.03 2.01821,-0.08 -0.27278,-4.088 -0.25852,-3.031\"},\"17135\":{\"name\":\"Montgomery, IL\",\"path\":\"m 634.13114,273.32014 2.94708,-0.236 0.3334,4.067 4.91716,-0.337 1.9665,-0.152 0.21573,3.03 -1.93767,0.0913 0.29921,4.44075 -6.0687,0.26459 0.007,0.83458 -0.77529,0.0418 -1.04476,0.07 -0.85934,-12.118\"},\"17083\":{\"name\":\"Jersey, IL\",\"path\":\"m 626.65735,279.86114 0.41006,6.056 -2.19471,1.849 -3.1646,-0.77 -2.89894,-3.311 0.31021,-1.583 0.77912,-0.185 0.49207,0.09 0.10162,0.09 0.0107,0.05 0.30309,0.175 3.04692,-0.239 -0.082,-1.182 2.05922,-0.983 0.82725,-0.05\"},\"17117\":{\"name\":\"Macoupin, IL\",\"path\":\"m 630.18387,273.59914 3.94727,-0.279 0.85934,12.118 -7.92307,0.479 -0.41006,-6.056 -0.47424,-5.964 4.00076,-0.298\"},\"17013\":{\"name\":\"Calhoun, IL\",\"path\":\"m 612.31594,277.49714 5.94409,-0.241 0.54913,6.429 2.89894,3.311 -3.7672,0.995 -0.95562,-2.562 0,0 -0.0446,-0.161 0.0178,-0.07 0.48315,-0.747 0.0143,-0.289 -0.82725,-2.82 -4.31277,-3.833\"},\"17061\":{\"name\":\"Greene, IL\",\"path\":\"m 626.18311,273.89714 0.47424,5.964 -0.82725,0.05 -2.05922,0.983 0.082,1.182 -3.04692,0.239 -0.30309,-0.175 -0.0107,-0.05 -0.10162,-0.09 -0.49207,-0.09 -0.77912,0.185 -0.31021,1.583 -0.54913,-6.429 0.41006,-2.949 4.91003,-0.249 2.60299,-0.161\"},\"17021\":{\"name\":\"Christian, IL\",\"path\":\"m 642.15762,266.03114 1.35142,0.191 0.28704,3.359 1.98611,-0.12 0.25852,3.031 0.27278,4.088 -2.01821,0.08 -1.9665,0.152 -4.91716,0.337 -0.3334,-4.067 -0.20681,-2.69 1.15619,-0.12704 -0.0196,-1.12646 1.18558,-0.0389 -0.049,-1.21465 2.35517,-1.856 0.65788,0\"},\"17029\":{\"name\":\"Coles, IL\",\"path\":\"m 655.49527,268.77914 7.16179,-0.603 -0.0553,-0.667 0.64896,-0.137 1.03585,-0.116 0.51525,4.721 -1.02214,0.086 0.30721,2.35699 -8.06035,0.764 -0.12659,-1.688 -0.40471,-4.717\"},\"17045\":{\"name\":\"Edgar, IL\",\"path\":\"m 664.41675,262.73614 7.05482,-0.69 0.58656,6.364 0.27456,3.004 -2.76344,0.256 -0.0107,-0.247 -4.7567,0.554 -0.51525,-4.721 -0.16759,-1.683 0.43324,-0.813 -0.1355,-2.024\"},\"17041\":{\"name\":\"Douglas, IL\",\"path\":\"m 655.24745,263.50714 9.1693,-0.771 0.1355,2.024 -0.43324,0.813 0.16759,1.683 -1.03585,0.116 -0.64896,0.137 0.0553,0.667 -7.16179,0.603 -0.27991,-3.238 0.0321,-2.034\"},\"17139\":{\"name\":\"Moultrie, IL\",\"path\":\"m 655.21536,265.54114 0.27991,3.238 0.40471,4.717 -1.19096,0.09 -0.84329,-0.312 -4.15409,-2.385 -0.16046,-1.681 -0.0735,-1.53426 0.94476,-0.68442 0.0273,-1.07432 4.76561,-0.371\"},\"17115\":{\"name\":\"Macon, IL\",\"path\":\"m 649.99155,259.83614 0.4582,6.076 -0.0273,1.07432 -0.94476,0.68442 0.0735,1.53426 -3.76899,0.256 -1.98611,0.12 -0.28704,-3.359 -1.35142,-0.191 -0.1765,-2.403 1.25953,-0.0827 -0.19873,-3.05129 2.01821,-0.168 3.91162,-0.421 1.0198,-0.07\"},\"17167\":{\"name\":\"Sangamon, IL\",\"path\":\"m 635.58418,262.70414 1.65628,-0.128 0.0731,1.004 1.39777,0.256 3.26979,-0.208 0.1765,2.403 -0.65788,0 -2.35517,1.856 0.049,1.21465 -1.18558,0.0389 0.0196,1.12646 -1.15619,0.12704 0.20681,2.69 -2.94708,0.236 -3.94727,0.279 -0.016,-0.673 -0.11945,-0.498 -1.18026,-3.296 -0.25852,-1.543 -0.1355,-2.025 -0.0481,-0.676 3.93836,-0.256 1.1553,-0.448 -0.0392,-0.467 0.0143,-0.852 2.08952,-0.161\"},\"17137\":{\"name\":\"Morgan, IL\",\"path\":\"m 618.15663,266.09514 10.31746,-0.531 0.1355,2.025 0.25852,1.543 1.18026,3.296 0.11945,0.498 0.016,0.673 -4.00076,0.298 -2.60299,0.161 -0.1355,-2.692 -1.2539,-0.70131 -0.14387,-1.93469 -2.0093,-0.707 -2.03247,0.1 0.40828,-1.173 -0.25673,-0.853\"},\"17171\":{\"name\":\"Scott, IL\",\"path\":\"m 623.58012,274.05814 -4.91003,0.249 0.12837,-0.41 -0.007,-0.09 -0.13728,-0.466 -0.61688,-1.727 -0.31378,-2.444 0.28169,-1.052 2.03247,-0.1 2.0093,0.707 0.14387,1.93469 1.2539,0.70131 0.1355,2.692\"},\"17149\":{\"name\":\"Pike, IL\",\"path\":\"m 618.41336,266.94814 -0.40828,1.173 -0.28169,1.052 0.31378,2.444 0.61688,1.727 0.13728,0.466 0.007,0.09 -0.12837,0.41 -0.41006,2.949 -5.94409,0.241 -4.23431,-4.397 -2.47819,-1.886 -1.04298,-1.656 2.88468,-0.104 5.03661,-0.265 -0.11232,-2.033 6.04393,-0.208\"},\"17009\":{\"name\":\"Brown, IL\",\"path\":\"m 612.09665,261.14414 2.0503,-0.135 1.75078,-0.06 1.31932,1.745 0.40115,0.778 1.6135,-0.02 -1.07507,2.637 0.25673,0.853 -6.04393,0.208 -0.27278,-6.012\"},\"17001\":{\"name\":\"Adams, IL\",\"path\":\"m 612.0182,259.09414 0.0784,2.05 0.27278,6.012 0.11232,2.033 -5.03661,0.265 -2.88468,0.104 -1.75256,-4.249 -1.23018,-5.858 10.44048,-0.357\"},\"17067\":{\"name\":\"Hancock, IL\",\"path\":\"m 606.7213,249.05314 4.87793,-0.284 0.33874,8.214 0.0802,2.111 -10.44048,0.357 0.10697,-1.125 1.28367,-3.062 0.53129,-0.187 0.025,-0.01 0.18364,-0.153 0.041,-0.202 0.007,-0.01 0.0464,-2.068 -0.0143,-0.232 -0.0963,-0.28 -0.28882,-0.419 -0.35479,-0.167 -0.0571,-0.193 0.0267,-0.171 0.73097,-1.123 0.0642,-0.07 0.0642,-0.06 0.0535,-0.06 0.15332,-0.1 0.43502,-0.248 0.10341,-0.06 0.025,-0.02 0.90926,-0.319 0.007,0 0.13729,0 0.45819,-0.03 0.56161,-0.01\"},\"17109\":{\"name\":\"Donough, IL\",\"path\":\"m 613.59248,248.73914 5.96013,-0.153 0.3958,8.131 -8.01044,0.266 -0.33874,-8.214 1.99325,-0.03\"},\"17169\":{\"name\":\"Schuyler, IL\",\"path\":\"m 611.93797,256.98314 8.01044,-0.266 0.056,1.96548 4.43507,-0.0855 -2.62795,1.544 -2.57981,3.317 -1.6135,0.02 -0.40115,-0.778 -1.31932,-1.745 -1.75078,0.06 -2.0503,0.135 -0.15868,-4.161\"},\"17017\":{\"name\":\"Cass, IL\",\"path\":\"m 621.81151,260.14114 1.04323,0.26062 0.26718,1.25838 1.55823,-0.02 0.0321,-0.02 1.73651,-0.708 1.60102,-0.658 0.0713,-0.128 0.30487,4.763 0.0481,0.676 -10.31746,0.531 1.07507,-2.637 2.57981,-3.317\"},\"17129\":{\"name\":\"Menard, IL\",\"path\":\"m 628.12109,260.12514 0.7702,-0.61 4.82088,-0.956 0.62578,0.111 0.62044,0.675 0.62579,3.359 -2.08952,0.161 -0.0143,0.852 0.0392,0.467 -1.1553,0.448 -3.93836,0.256 -0.30487,-4.763\"},\"17125\":{\"name\":\"Mason, IL\",\"path\":\"m 628.86098,252.46714 3.59783,-0.225 0.21751,2.691 1.94333,-0.154 0.33874,4.566 -0.62044,-0.675 -0.62578,-0.111 -4.82088,0.956 -0.7702,0.61 -0.0713,0.128 -1.60102,0.658 -1.73651,0.708 -0.0321,0.02 -1.55823,0.02 -0.26718,-1.25838 -1.04323,-0.26062 2.62795,-1.544 1.19809,-1.075 0.11232,-0.147 0.81299,-1.517 0.21572,-1.309 0.0963,-0.363 0.10519,-0.187 1.62954,-1.38 0.25139,-0.152\"},\"17107\":{\"name\":\"Logan, IL\",\"path\":\"m 640.51203,254.25914 0.0495,0.98242 2.01331,-0.13042 0.46711,5.383 0.19873,3.05129 -1.25953,0.0827 -3.26979,0.208 -1.39777,-0.256 -0.0731,-1.004 -1.65628,0.128 -0.62579,-3.359 -0.33874,-4.566 5.89238,-0.52\"},\"17039\":{\"name\":\"De Witt, IL\",\"path\":\"m 652.55888,254.37114 -2.62178,4.19606 0.0544,1.26894 -1.0198,0.07 -3.91162,0.421 -2.01821,0.168 -0.46711,-5.383 9.98407,-0.74\"},\"17147\":{\"name\":\"Piatt, IL\",\"path\":\"m 652.55888,254.37114 1.9986,-0.16 0.68997,9.296 -0.0321,2.034 -4.76561,0.371 -0.4582,-6.076 -0.0544,-1.26894 2.62178,-4.19606\"},\"17019\":{\"name\":\"Champaign, IL\",\"path\":\"m 654.33284,251.50314 9.14434,-0.771 0.40828,4.01 -0.23356,0.02 0.76485,7.971 -9.1693,0.771 -0.68997,-9.296 -0.22464,-2.708\"},\"17053\":{\"name\":\"Ford, IL\",\"path\":\"m 656.90195,237.45014 1.97899,-0.234 1.21235,11.748 3.16638,-0.225 0.21751,1.993 -9.14434,0.771 -0.3851,-5.048 3.87952,-0.328 -0.92531,-8.677\"},\"17113\":{\"name\":\"McLean, IL\",\"path\":\"m 645.58073,243.94014 5.95657,-0.553 0.18363,2.009 0.24069,1.236 1.98612,-0.177 0.3851,5.048 0.22464,2.708 -1.9986,0.16 -9.98407,0.74 -2.01331,0.13042 -0.0495,-0.98242 -0.53843,-6.212 2.34091,-0.226 0.52209,-0.69268 0.97731,-0.13432 -0.0705,-0.82768 1.03504,-0.11232 -0.18414,-1.99996 0.98643,-0.11404\"},\"17179\":{\"name\":\"Tazewell, IL\",\"path\":\"m 634.78189,244.84014 3.88844,-0.282 0.0963,1.352 0.16937,1.72 1.03763,0.417 0.53843,6.212 -5.89238,0.52 -1.94333,0.154 -0.21751,-2.691 -3.59783,0.225 0.78446,-1.842 3.57822,-2.289 1.62954,-2.46 0.12124,-0.408 -0.0945,-0.427 -0.0981,-0.201\"},\"17203\":{\"name\":\"Woodford, IL\",\"path\":\"m 643.2523,240.10814 1.99147,-0.192 0.33696,4.024 -0.98643,0.11404 0.18414,1.99996 -1.03504,0.11232 0.0705,0.82768 -0.97731,0.13432 -0.52209,0.69268 -2.34091,0.226 -1.03763,-0.417 -0.16937,-1.72 -0.0963,-1.352 -3.88844,0.282 -0.0359,-2.10643 1.193,-1.99957 7.31333,-0.626\"},\"17143\":{\"name\":\"Peoria, IL\",\"path\":\"m 632.9901,239.71414 2.86364,-0.10446 0.0852,1.12446 -1.193,1.99957 0.0359,2.10643 0.0981,0.201 0.0945,0.427 -0.12124,0.408 -1.62954,2.46 -3.57822,2.289 -0.0874,-1.549 -0.0945,-1.022 -2.00217,0.1 -0.0731,-2.003 -0.37619,-6.067 5.97796,-0.369\"},\"17057\":{\"name\":\"Fulton, IL\",\"path\":\"m 627.38833,246.15014 0.0731,2.003 2.00217,-0.1 0.0945,1.022 0.0874,1.549 -0.78446,1.842 -0.25139,0.152 -1.62954,1.38 -0.10519,0.187 -0.0963,0.363 -0.21572,1.309 -0.81299,1.517 -0.11232,0.147 -1.19809,1.075 -4.43507,0.0855 -0.056,-1.96548 -0.3958,-8.131 -0.0963,-2.01 7.93199,-0.426\"},\"17187\":{\"name\":\"Warren, IL\",\"path\":\"m 613.1111,238.72714 5.96192,-0.234 0.47959,10.093 -5.96013,0.153 -0.48138,-10.012\"},\"17071\":{\"name\":\"Henderson, IL\",\"path\":\"m 610.29773,238.83914 2.81337,-0.112 0.48138,10.012 -1.99325,0.03 -4.87793,0.284 1.207,-1.416 0.11945,-2.603 0.0642,-0.297 1.3425,-1.915 0.18542,-0.182 0.49742,-0.282 0.0963,-0.144 0.1462,-0.683 0.0695,-1.872 -0.0874,-0.62 -0.0642,-0.2\"},\"17131\":{\"name\":\"Mercer, IL\",\"path\":\"m 607.72505,232.87514 11.08411,-0.465 0.26386,6.083 -5.96192,0.234 -2.81337,0.112 -0.016,-0.06 0.016,-0.555 -0.80942,-1.326 -0.14619,-0.152 -0.13907,-0.06 -0.22999,0.03 -0.54912,-0.273 -1.16422,-1.399 -0.007,-0.02 -0.0178,-0.191 0.49029,-1.963\"},\"17095\":{\"name\":\"Knox, IL\",\"path\":\"m 626.76967,236.04314 0.24247,4.04 0.37619,6.067 -7.93199,0.426 -0.38332,-8.083 -0.0891,-2.016 7.78579,-0.434\"},\"17175\":{\"name\":\"Stark, IL\",\"path\":\"m 628.8271,233.94514 3.76018,-0.23348 0.12826,1.96948 0.27456,4.033 -5.97796,0.369 -0.24247,-4.04 2.18974,-0.21545 -0.13231,-1.88255\"},\"17123\":{\"name\":\"Marshall, IL\",\"path\":\"m 632.71554,235.68114 2.96848,-0.201 2.34982,-0.153 -0.0303,0.563 -0.0339,0.153 -0.10162,0.143 -0.16938,0.09 -0.0963,0.11 3.37675,-0.251 1.97013,-0.12766 0.30303,4.09966 -7.31333,0.626 -0.0852,-1.12446 -2.86364,0.10446 -0.27456,-4.033\"},\"17155\":{\"name\":\"Putnam, IL\",\"path\":\"m 640.60831,231.37914 0.37083,4.757 -3.37675,0.251 0.0963,-0.11 0.16938,-0.09 0.10162,-0.143 0.0339,-0.153 0.0303,-0.563 -2.34982,0.153 -0.14798,-1.977 2.04566,-0.20289 0.27742,-1.55011 0.93244,-0.513 0.2086,-0.02 1.60815,0.166\"},\"17105\":{\"name\":\"Livingston, IL\",\"path\":\"m 650.87051,235.30314 5.73549,-0.595 0.29595,2.742 0.92531,8.677 -3.87952,0.328 -1.98612,0.177 -0.24069,-1.236 -0.18363,-2.009 -5.95657,0.553 -0.33696,-4.024 -0.29774,-4.117 5.92448,-0.496\"},\"17091\":{\"name\":\"Kankakee, IL\",\"path\":\"m 668.93989,232.43314 0.32983,3.592 -10.38878,1.191 -1.97899,0.234 -0.29595,-2.742 -0.041,-2.033 2.98274,-0.331 0.86826,-1.334 -0.082,-0.761 8.33313,-0.861 0.27278,3.045\"},\"17063\":{\"name\":\"Grundy, IL\",\"path\":\"m 655.9392,226.65614 0.62579,6.019 0.041,2.033 -5.73549,0.595 -0.79873,-8.044 5.86742,-0.603\"},\"17197\":{\"name\":\"Will, IL\",\"path\":\"m 655.27954,220.62914 3.93843,-0.46972 0.0962,1.03972 0.11232,1.015 1.84985,-0.46847 0.3404,2.27597 1.98707,-0.19402 0.20319,2.00152 4.52136,-0.401 0.33874,3.96 -8.33313,0.861 0.082,0.761 -0.86826,1.334 -2.98274,0.331 -0.62579,-6.019 -0.65966,-6.027\"},\"17093\":{\"name\":\"Kendall, IL\",\"path\":\"m 655.27241,220.62914 0.007,0 0.65966,6.027 -5.86742,0.603 -0.42432,-4.019 -0.15155,-2.032 5.7765,-0.579\"},\"17099\":{\"name\":\"La Salle, IL\",\"path\":\"m 643.9191,223.75614 5.72836,-0.516 0.42432,4.019 0.79873,8.044 -5.92448,0.496 0.29774,4.117 -1.99147,0.192 -0.30303,-4.09966 -1.97013,0.12766 -0.37083,-4.757 -0.58479,-7.35 1.96473,-0.1 1.93085,-0.176\"},\"17011\":{\"name\":\"Bureau, IL\",\"path\":\"m 640.10019,225.03414 0.50812,6.345 -1.60815,-0.166 -0.2086,0.02 -0.93244,0.513 -0.27742,1.55011 -2.04566,0.20289 0.14798,1.977 -2.96848,0.201 -0.12826,-1.96948 -3.76018,0.23348 -0.60261,-8.069 3.93658,-0.289 7.93912,-0.553\"},\"17073\":{\"name\":\"Henry, IL\",\"path\":\"m 628.22449,225.87614 0.60261,8.069 0.13231,1.88255 -2.18974,0.21545 -7.78579,0.434 -0.17472,-4.067 -0.13907,-2.995 1.0929,-1.136 0.20147,-0.153 0.30308,-0.136 0.81299,-0.192 0.6347,-0.104 0.88431,-0.467 0.15332,-0.348 0.0731,-0.401 -0.0267,-0.142 -0.0963,-0.131 5.52155,-0.329\"},\"17161\":{\"name\":\"Rock Island, IL\",\"path\":\"m 621.4585,221.65714 -0.0642,0.442 0.016,0.421 0.19255,0.922 0.25674,0.522 0.33161,0.305 0.33518,0.121 0.28348,0.177 0.22464,0.242 0.0392,0.312 0.009,0.282 -0.0481,0.523 -0.041,0.07 -0.29061,0.206 0.0963,0.131 0.0267,0.142 -0.0731,0.401 -0.15332,0.348 -0.88431,0.467 -0.6347,0.104 -0.81299,0.192 -0.30308,0.136 -0.20147,0.153 -1.0929,1.136 0.13907,2.995 -11.08411,0.465 0,0 0.20325,-0.788 0.23891,-0.982 0.016,-0.05 0.12124,-0.171 0,0 0.016,0 0.18364,-0.12 0.6454,-0.233 2.41044,-0.658 1.05189,0 0.24782,0.03 0.58656,-0.02 1.38351,-0.353 3.24661,-1.608 1.0198,-1.189 0.89143,-1.198 0.26565,-2.505 1.20522,-1.352\"},\"17103\":{\"name\":\"Lee, IL\",\"path\":\"m 631.70465,218.27514 1.13926,-0.09 3.43202,-0.252 0.025,0.339 7.119,-0.602 0.49921,6.083 -1.93085,0.176 -1.96473,0.1 0.0767,1.005 -7.93912,0.553 -0.45642,-7.312\"},\"17195\":{\"name\":\"Whiteside, IL\",\"path\":\"m 630.69198,217.67314 1.01267,0.602 0.45642,7.312 -3.93658,0.289 -5.52155,0.329 0.29061,-0.206 0.041,-0.07 0.0481,-0.522 -0.009,-0.282 -0.0392,-0.312 -0.22464,-0.242 -0.28348,-0.177 -0.33518,-0.121 -0.33161,-0.305 -0.25674,-0.522 -0.19255,-0.922 -0.016,-0.421 0.0642,-0.442 1.32646,-3.437 7.90702,-0.547\"},\"17015\":{\"name\":\"Carroll, IL\",\"path\":\"m 630.24805,211.47514 0.44393,6.198 -7.90702,0.547 -0.18542,-2.405 -2.97205,-3.541 6.71786,-0.476 3.9027,-0.323\"},\"17141\":{\"name\":\"Ogle, IL\",\"path\":\"m 635.19195,211.06914 3.7779,-0.314 0.0874,1.243 3.94371,-0.337 0.41897,6.012 -7.119,0.602 -0.025,-0.339 -3.43202,0.252 -1.13926,0.09 -1.01267,-0.602 -0.44393,-6.198 4.9439,-0.406\"},\"17037\":{\"name\":\"DeKalb, IL\",\"path\":\"m 648.94144,211.17914 0.55447,10.029 0.15155,2.032 -5.72836,0.516 -0.49921,-6.083 -0.41897,-6.012 3.96332,-0.328 1.9772,-0.154\"},\"17089\":{\"name\":\"Kane, IL\",\"path\":\"m 654.87127,210.69814 -0.10519,3.904 0.50633,6.027 -5.7765,0.579 -0.55447,-10.029 5.92983,-0.481\"},\"17043\":{\"name\":\"DuPage, IL\",\"path\":\"m 655.27241,220.62914 -0.50633,-6.027 3.92053,-0.472 1.69551,-0.169 0.2496,0.811 0.57943,5.543 -1.89697,0.884 -0.0962,-1.03972 -3.93843,0.46972 -0.004,0 -0.003,0\"},\"17031\":{\"name\":\"Cook, IL\",\"path\":\"m 655.52914,210.64114 7.4417,-0.594 1.69551,2.282 0.92353,2.587 0.20146,0.701 0.17651,0.754 0.16937,0.537 0.0642,0.144 0.12124,0.266 0.49742,0.902 1.04476,1.71 0.46355,5.498 -4.52136,0.401 -0.20319,-2.00152 -1.98706,0.19402 -0.34041,-2.27597 -1.84985,0.46847 -0.11232,-1.015 1.89697,-0.884 -0.57943,-5.543 -0.2496,-0.811 -1.69551,0.169 -3.92053,0.472 0.10519,-3.904 0.65787,-0.06\"},\"17097\":{\"name\":\"Lake, IL\",\"path\":\"m 654.86235,202.75914 6.73568,-0.465 0.007,0 0.0802,0.456 0.0481,2.016 -0.15332,0.476 -0.0642,0.08 -0.11232,0.729 0,0.677 0.16046,0.715 0.35479,0.851 0.25495,0.531 0.79694,1.221 -7.4417,0.594 -0.66679,-7.882\"},\"17111\":{\"name\":\"McHenry, IL\",\"path\":\"m 653.10979,202.93514 1.75256,-0.176 0.66679,7.882 -0.65787,0.06 -5.92983,0.481 -1.9772,0.154 -0.6347,-7.834 6.78025,-0.564\"},\"17007\":{\"name\":\"Boone, IL\",\"path\":\"m 645.16354,203.57914 1.166,-0.08 0.6347,7.834 -3.96332,0.328 -0.60083,-7.898 2.76345,-0.184\"},\"17201\":{\"name\":\"Winnebago, IL\",\"path\":\"m 642.40009,203.76314 0.60083,7.898 -3.94371,0.337 -0.0874,-1.243 -3.7779,0.314 -0.5723,-6.875 0.60261,-0.04 7.17783,-0.394\"},\"17177\":{\"name\":\"Stephenson, IL\",\"path\":\"m 627.26887,204.57414 7.35078,-0.38 0.5723,6.875 -4.9439,0.406 -3.9027,0.323 -0.57944,-7.137 1.50296,-0.09\"},\"17085\":{\"name\":\"Jo Daviess, IL\",\"path\":\"m 625.76591,204.66114 0.57944,7.137 -6.71786,0.476 -0.7078,-0.226 -0.312,-0.202 -0.29061,-0.233 -0.016,-0.01 -0.48316,-0.602 -0.0125,-0.03 -0.23534,-0.53 0,-0.146 0.0963,-0.216 0.0963,-0.65 -0.009,-0.09 -0.0481,-0.07 -1.01089,-1.171 -0.0428,-0.04 -0.007,0 -1.44412,-1.006 -1.13569,-0.586 -0.39223,-0.282 -0.13728,-0.143 -0.0392,-0.115 -0.016,-0.129 0.007,-0.05 0.23534,-0.403 3.61388,-0.178 8.4294,-0.491\"},\"18127\":{\"name\":\"Porter, IN\",\"path\":\"m 677.91486,218.94214 1.09646,10.913 -0.14619,0.192 -0.49207,0.275 -0.15155,-0.04 -1.32645,-0.841 -0.93066,-0.323 -0.34588,-0.09 -0.19255,0.04 -0.97166,0.563 -0.40293,0.578 -0.87717,-8.799 4.74065,-2.467\"},\"18089\":{\"name\":\"Lake, IN\",\"path\":\"m 667.86482,219.93014 5.30939,1.479 0.87717,8.799 -0.92531,0.628 -1.93339,1.27761 -2.25279,0.31939 -0.27278,-3.045 -0.80229,-9.458\"},\"18123\":{\"name\":\"Perry, IN\",\"path\":\"m 690.04194,298.01914 1.94333,-0.272 0.20296,1.28436 1.89548,-0.10436 0.2906,2.542 -0.35479,1.211 -0.10519,0.01 -0.36905,0.07 -0.0963,0.06 -0.0731,0.104 -0.0303,0.251 0.1355,1.373 -1.17313,2.674 -0.49921,0.387 -0.2389,0.08 -0.13728,0 -3.19669,-3.316 -0.0588,-4.814 -0.11054,-1.012 2.02534,-0.17 -0.0499,-0.346\"},\"18147\":{\"name\":\"Spencer, IN\",\"path\":\"m 688.17706,299.54714 0.0588,4.814 -2.79732,1.854 -1.11786,1.047 -1.3425,2.425 -2.62617,-1.751 -0.0874,-1.109 0.0303,-0.09 3.04514,-4.598 0.94154,-0.045 -0.13746,-2.12304 4.03285,-0.426\"},\"18173\":{\"name\":\"Warrick, IN\",\"path\":\"m 678.7118,299.49214 4.38051,-0.1 0.0464,0.64917 1.0055,-0.0702 0.13746,2.12304 -0.94154,0.045 -3.04514,4.598 -0.0303,0.09 0.0874,1.109 -0.64361,-0.45 -2.75632,-0.739 -0.1765,-2.17 -0.41898,0.04 -0.15867,-2.009 -0.009,-1.013 -0.0571,-0.827 2.67074,-0.257 -0.0909,-1.02\"},\"18163\":{\"name\":\"Vanderburgh, IN\",\"path\":\"m 672.23464,301.87614 3.9544,-0.28 0.009,1.013 0.15867,2.009 0.41898,-0.04 0.1765,2.17 -1.50265,0.43681 -1.01385,-1.15101 -0.43221,1.67638 0.81185,0.98166 -0.67758,0.94419 -1.04917,-0.26756 0.2272,-1.49545 -0.75836,0.20098 -0.3227,-6.197\"},\"18129\":{\"name\":\"Posey, IN\",\"path\":\"m 667.3418,300.86523 -0.0234,0.10938 -0.10352,2.41211 -0.25781,5.32422 -0.0488,0.0996 -0.01,0.0215 -0.0391,0.0293 -0.0313,0 -0.85937,0.0293 0.90625,2.03516 0.83113,-0.0668 0.66431,0.42621 0.37813,-0.65038 0.44626,-0.29606 -0.84836,-1.37265 0.13595,-0.56964 4.07422,-0.32421 -0.32226,-6.19532 -0.0366,-0.47457 -2.40875,-0.0313 0.0186,-0.5849 z\"},\"18051\":{\"name\":\"Gibson, IN\",\"path\":\"m 675.50586,293.0957 -4.70117,3.17188 0,-0.006 -3.46289,4.59766 2.46587,-0.0771 -0.0186,0.58295 2.40875,0.0332 0.0366,0.47262 3.95507,-0.27929 -0.0566,-0.82813 2.66992,-0.25586 -0.36523,-4.11523 -0.15234,-0.0606 -0.94532,0.16016 -0.25,0.0898 -1.05468,-1.27148 -0.39258,-0.65039 z\"},\"18125\":{\"name\":\"Pike, IN\",\"path\":\"m 679.41069,292.46814 3.07901,0.417 0.60261,6.509 -4.38051,0.1 -0.27456,-3.095 -0.15154,-0.06 -0.94671,0.16 -0.2496,0.09 -1.05368,-1.271 -0.39223,-0.651 -0.13728,-1.565 0.65075,-0.233 1.18204,-0.186 0.11945,0.03 0.97345,0.656 0.22999,-0.06 0.30666,-0.273 0.23355,-0.234 0.2086,-0.329\"},\"18037\":{\"name\":\"Dubois, IN\",\"path\":\"m 689.39832,291.95214 0.31379,3.028 0.32983,3.039 0.0499,0.346 -2.02534,0.17 0.11054,1.012 -4.03285,0.426 -1.0055,0.0702 -0.0464,-0.64917 -0.60261,-6.509 2.65826,-0.01 1.04541,-0.61325 3.20495,-0.30475\"},\"18025\":{\"name\":\"Crawford, IN\",\"path\":\"m 696.28555,293.66614 0.95562,-0.09 0.40293,6.776 -3.62458,2.329 0.35479,-1.211 -0.2906,-2.542 -1.89548,0.10436 -0.20296,-1.28436 -1.94333,0.272 -0.32983,-3.039 4.08277,-0.448 2.55485,-0.2 -0.0642,-0.666\"},\"18061\":{\"name\":\"Harrison, IN\",\"path\":\"m 701.20271,293.27014 0.21751,2.009 0.39401,0.635 0.0571,0 0.73098,0.538 0.36905,0.305 0.0391,1.5281 1.11085,0.0889 0.0232,0.177 -0.44215,4.041 -0.86826,0.296 -0.53664,0.177 -2.59586,-0.128 -0.12837,-0.02 -0.78089,-0.307 -0.81121,-0.537 -0.0874,-0.06 -0.041,-0.06 -0.10519,-0.161 -0.12836,-0.449 -0.0161,-0.04 -0.007,-0.105 -0.007,-0.161 0,-0.04 0.0553,-0.649 -0.40293,-6.776 3.96154,-0.305\"},\"18043\":{\"name\":\"Floyd, IN\",\"path\":\"m 701.87841,293.19114 0.0178,0.168 0.51347,0.119 2.8205,-0.319 0.98058,1.157 -0.39402,1.478 -1.67233,2.757 -0.0232,-0.177 -1.11085,-0.0889 -0.0391,-1.5281 -0.36905,-0.305 -0.73098,-0.538 -0.0571,0 -0.39401,-0.635 -0.21751,-2.009 0.6757,-0.08\"},\"18019\":{\"name\":\"Clark, IN\",\"path\":\"m 708.94928,288.05014 1.29436,-0.055 1.29436,0.22803 0.0553,1.449 -3.2787,3.712 -2.4978,2.41 0.39402,-1.478 -0.98058,-1.157 -2.8205,0.319 -0.51347,-0.119 -0.0178,-0.168 -0.14441,-1.624 0.77912,-0.394 1.10894,-0.15 0.29774,-0.379 0.25673,-0.701 -0.041,-0.319 0.46042,-0.42888 0.083,-0.85347 4.27032,-0.29165\"},\"18115\":{\"name\":\"Ohio, IN\",\"path\":\"m 715.80263,279.30514 4.26106,-2.418 1.77395,2.828 -6.04036,0.02 0.005,-0.433\"},\"18155\":{\"name\":\"Switzerland, IN\",\"path\":\"m 715.79728,279.73814 6.04036,-0.02 0.24247,1.003 -3.89022,2.63 -2.92391,2.001 -0.61865,-5.11 -0.0716,-0.42886 1.22155,-0.0721\"},\"18077\":{\"name\":\"Jefferson, IN\",\"path\":\"m 710.37914,280.73414 4.26819,-0.495 0.61865,5.11 -2.48353,-0.862 -1.24445,3.736 -1.29436,-0.22803 -1.29436,0.055 -0.20147,-1.673 -0.68997,-0.256 -0.53129,-0.291 -0.57587,-0.612 -0.3958,-0.506 -0.14441,-1.262 1.2694,-0.344 0.56161,-0.901 0.17828,-0.543 0.32092,-0.728 1.63846,-0.2\"},\"18143\":{\"name\":\"Scott, IN\",\"path\":\"m 706.41047,283.45014 0.14441,1.262 0.3958,0.506 0.57587,0.612 0.53129,0.291 0.68997,0.256 0.20147,1.673 -4.27032,0.29165 -0.083,0.85347 -0.46042,0.42888 -0.0865,-0.66032 -0.65265,1.5e-4 -0.40897,-3.25483 1.04208,-0.57768 0.42879,-1.28532 1.95224,-0.396\"},\"18175\":{\"name\":\"Washington, IN\",\"path\":\"m 696.06982,285.75114 6.91754,-0.04 0.40897,3.25483 0.65265,-1.4e-4 0.0865,0.66031 0.041,0.319 -0.25673,0.701 -0.29774,0.379 -1.10894,0.15 -0.77912,0.394 0.14441,1.624 -0.6757,0.08 -3.96154,0.305 -0.95562,0.09 -0.62579,-6.117 -0.06,-1.05803 0.47008,-0.73997\"},\"18117\":{\"name\":\"Orange, IN\",\"path\":\"m 695.65976,287.54914 0.62579,6.117 0.0642,0.666 -2.55485,0.2 -4.08277,0.448 -0.31379,-3.028 -0.37618,-3.696 6.63762,-0.707\"},\"18101\":{\"name\":\"Martin, IN\",\"path\":\"m 684.61845,283.61014 3.9134,-0.39 0.49029,5.036 0.37618,3.696 -3.20495,0.30475 -1.04541,0.61325 -0.52951,-9.26\"},\"18027\":{\"name\":\"Daviess, IN\",\"path\":\"m 681.17929,283.94214 3.43916,-0.332 0.52951,9.26 -2.65826,0.01 -3.07901,-0.417 -0.80229,-3.522 0.24068,-1.886 0.31379,-0.62 1.50296,-2.088 0.51346,-0.41\"},\"18083\":{\"name\":\"Knox, IN\",\"path\":\"m 678.65653,284.08614 2.52276,-0.144 -0.51346,0.41 -1.50296,2.088 -0.31379,0.62 -0.24068,1.886 0.80229,3.522 -0.2086,0.329 -0.23355,0.234 -0.30666,0.273 -0.22999,0.06 -0.97345,-0.656 -0.11945,-0.03 -1.18204,0.186 -0.65075,0.233 -4.70143,3.172 1.27832,-3.68 0.34588,-0.941 1.40668,-1.799 0.14263,-0.12 0.17651,-0.322 0.25138,-1.462 0.007,-0.562 -0.68462,-1.471 -0.0392,-0.06 -0.0731,0 -0.14441,-1.146 5.18458,-0.605\"},\"18153\":{\"name\":\"Sullivan, IN\",\"path\":\"m 677.91486,275.98714 0.17829,2.009 0.56338,6.09 -5.18458,0.605 0.10519,-0.145 0.12836,-0.363 0.0481,-0.733 -1.27653,-2.28 -0.83617,-0.983 -0.36192,-1.235 0.23355,-2.395 6.40229,-0.57\"},\"18055\":{\"name\":\"Greene, IN\",\"path\":\"m 681.38076,277.77814 6.55739,-0.577 0.40115,3.993 0.19255,2.026 -3.9134,0.39 -3.43916,0.332 -2.52276,0.144 -0.56338,-6.09 3.28761,-0.218\"},\"18093\":{\"name\":\"Lawrence, IN\",\"path\":\"m 688.3393,281.19414 6.44329,-0.611 0.85565,-0.093 0.43158,5.261 -0.47008,0.73997 0.06,1.05803 -6.63762,0.707 -0.49029,-5.036 -0.19255,-2.026\"},\"18071\":{\"name\":\"Jackson, IN\",\"path\":\"m 698.83327,278.78214 4.00519,-0.4894 0.90484,-0.4486 0.71493,6.002 -0.42879,1.28532 -1.04208,0.57768 -6.91754,0.04 -0.43158,-5.261 -0.85565,0.093 -0.14441,-1.334 4.19509,-0.467\"},\"18079\":{\"name\":\"Jennings, IN\",\"path\":\"m 709.74622,274.21814 0.63292,6.516 -1.63846,0.2 -0.32092,0.728 -0.17828,0.543 -0.56161,0.901 -1.2694,0.344 -1.95224,0.396 -0.71493,-6.002 -0.17,-1.25634 1.99209,-0.39966 2.6701,-0.62827 1.51073,-1.34173\"},\"18137\":{\"name\":\"Ripley, IN\",\"path\":\"m 716.02727,270.90014 -0.22464,8.405 -0.005,0.433 -1.22155,0.0721 0.0716,0.42886 -4.26819,0.495 -0.63292,-6.516 2.33021,-1.961 1.21737,-0.85686 2.73347,-0.50014\"},\"18029\":{\"name\":\"Dearborn, IN\",\"path\":\"m 716.02727,270.90014 4.32524,-0.458 0.52951,4.598 -0.81833,1.847 -4.26106,2.418 0.22464,-8.405\"},\"18047\":{\"name\":\"Franklin, IN\",\"path\":\"m 719.83905,265.44314 0.51346,4.999 -4.32524,0.458 -2.73347,0.50014 -1.21737,0.85686 -0.4992,-4.258 -0.20147,-1.654 4.58733,-0.547 3.87596,-0.355\"},\"18031\":{\"name\":\"Decatur, IN\",\"path\":\"m 705.75972,268.65914 5.81751,-0.66 0.4992,4.258 -2.33021,1.961 -1.51073,1.34173 -2.6701,0.62827 -0.51347,-5.054 0.9548,-0.20147 -0.247,-2.27353\"},\"18005\":{\"name\":\"Bartholomew, IN\",\"path\":\"m 705.05192,271.13414 0.51347,5.054 -1.99209,0.39966 0.17,1.25634 -0.90484,0.4486 -4.00519,0.4894 -0.80229,-6.766 2.33734,-0.312 4.6836,-0.57\"},\"18013\":{\"name\":\"Brown, IN\",\"path\":\"m 695.11242,272.38014 2.91856,-0.364 0.80229,6.766 -4.19509,0.467 -1.0855,0.14722 -0.71342,-6.73622 2.27316,-0.28\"},\"18105\":{\"name\":\"Monroe, IN\",\"path\":\"m 688.44449,272.90814 4.39477,-0.248 0.71342,6.73622 1.0855,-0.14722 0.14441,1.334 -6.44329,0.611 -0.40115,-3.993 -0.35086,-4.23736 0.8572,-0.0556\"},\"18119\":{\"name\":\"Owen, IN\",\"path\":\"m 682.73039,270.54514 4.44291,-0.36 1.12346,-0.0789 0.14773,2.80187 -0.8572,0.0556 0.35086,4.23736 -6.55739,0.577 -0.36192,-4.032 1.95046,-0.17 -0.23891,-3.031\"},\"18021\":{\"name\":\"Clay, IN\",\"path\":\"m 677.89346,267.88714 3.26801,-0.258 0.24934,3.06335 1.31958,-0.14735 0.23891,3.031 -1.95046,0.17 0.36192,4.032 -3.28761,0.218 -0.17829,-2.009 -0.52773,-6.044 0.67392,-0.04 -0.16759,-2.017\"},\"18167\":{\"name\":\"Vigo, IN\",\"path\":\"m 677.89346,267.88714 0.16759,2.017 -0.67392,0.04 0.52773,6.044 -6.40229,0.57 0.82012,-5.143 -0.27456,-3.004 2.62082,-0.25 3.21451,-0.273\"},\"18165\":{\"name\":\"Vermillion, IN\",\"path\":\"m 673.16708,256.20914 0.12836,4.06 0.80408,1.052 0.22642,0.298 0.31914,0.634 -0.15155,4.113 0.18542,1.794 -2.62082,0.25 -0.58656,-6.364 -0.51347,-6.115 2.20898,0.278\"},\"18121\":{\"name\":\"Parke, IN\",\"path\":\"m 679.04163,259.73014 0.20016,1.95101 1.40799,-0.093 0.51169,6.041 -3.26801,0.258 -3.21451,0.273 -0.18542,-1.794 0.15155,-4.113 -0.31914,-0.634 -0.22642,-0.298 -0.80408,-1.052 5.74619,-0.539\"},\"18133\":{\"name\":\"Putnam, IN\",\"path\":\"m 680.64978,261.58814 5.48768,-0.492 0.14441,-0.02 0.30487,3.158 0.22092,2.24498 0.30324,-0.019 0.29596,0.651 0.0548,1.01448 -0.43915,0.60285 0.15078,1.45267 -4.44291,0.36 -1.31958,0.14735 -0.24934,-3.06335 -0.51169,-6.041\"},\"18109\":{\"name\":\"Morgan, IN\",\"path\":\"m 694.45454,265.64414 0.65788,6.736 -2.27316,0.28 -4.39477,0.248 -0.14773,-2.80187 -1.12346,0.0789 -0.15078,-1.45267 0.43915,-0.60285 -0.0548,-1.01448 3.35179,-0.33 -0.0731,-0.674 2.26602,-0.272 0.16938,-0.02 1.33358,-0.179\"},\"18081\":{\"name\":\"Johnson, IN\",\"path\":\"m 699.65339,264.99514 0.71493,6.709 -2.33734,0.312 -2.91856,0.364 -0.65788,-6.736 5.19885,-0.649\"},\"18145\":{\"name\":\"Shelby, IN\",\"path\":\"m 699.51611,263.63514 5.56077,-0.633 0.68284,5.657 0.247,2.27353 -0.9548,0.20147 -4.6836,0.57 -0.71493,-6.709 -0.13728,-1.36\"},\"18139\":{\"name\":\"Rush, IN\",\"path\":\"m 705.48516,260.90414 5.15249,-0.596 0.93958,7.691 -5.81751,0.66 -0.68284,-5.657 -0.26146,-2.01124 0.66974,-0.0868\"},\"18041\":{\"name\":\"Fayette, IN\",\"path\":\"m 710.63765,260.30814 1.39777,-0.176 0.65967,-0.07 0.16759,1.68 2.62795,-0.28 0.47246,4.338 -4.58733,0.547 -0.73811,-6.037\"},\"18161\":{\"name\":\"Union, IN\",\"path\":\"m 715.49063,261.46014 3.80821,-0.726 0.41897,3.666 0.12124,1.043 -3.87596,0.355 -0.47246,-4.338\"},\"18177\":{\"name\":\"Wayne, IN\",\"path\":\"m 718.60173,254.31414 0.2086,2.034 0.48851,4.386 -3.80821,0.726 -2.62795,0.28 -0.16759,-1.68 -0.65967,0.07 -0.26284,-2.19164 0.27096,-0.0342 -0.23454,-2.7882 6.79273,-0.804\"},\"18065\":{\"name\":\"Henry, IN\",\"path\":\"m 705.10897,254.17914 6.29354,-0.701 0.13652,1.64295 0.26997,-0.003 0.23454,2.7882 -0.27096,0.0342 0.26284,2.19164 -1.39777,0.176 -5.15249,0.596 -0.27541,-2.10577 0.46954,-0.0571 -0.24043,-1.5421 -0.32984,-3.02\"},\"18059\":{\"name\":\"Hancock, IN\",\"path\":\"m 705.43881,257.19914 0.24038,1.5421 -0.46957,0.0571 0.27539,2.10577 -0.66974,0.0868 0.26146,2.01124 -5.56077,0.633 -0.32092,-5.325 1.31758,-0.1028 -0.0482,-0.4132 4.97421,-0.595\"},\"18097\":{\"name\":\"Marion, IN\",\"path\":\"m 699.19519,258.31014 0.32092,5.325 0.13728,1.36 -5.19885,0.649 -1.33358,0.179 -0.68463,-6.736 1.4887,-0.191 5.27016,-0.586\"},\"18063\":{\"name\":\"Hendricks, IN\",\"path\":\"m 692.43633,259.08714 0.68463,6.736 -0.16938,0.02 -2.26602,0.272 0.0731,0.674 -3.35179,0.33 -0.29596,-0.651 -0.30324,0.019 -0.22092,-2.24498 -0.30487,-3.158 -0.14441,0.02 -0.12837,-1.333 6.42724,-0.676\"},\"18011\":{\"name\":\"Boone, IN\",\"path\":\"m 693.28855,253.02214 0.63648,5.874 -1.4887,0.191 -6.42724,0.676 -0.59548,-5.898 7.87494,-0.843\"},\"18057\":{\"name\":\"Hamilton, IN\",\"path\":\"m 693.1994,252.20914 6.5984,-0.762 0.6668,6.347 0.0482,0.4132 -1.31758,0.1028 -5.27016,0.586 -0.63648,-5.874 -0.0892,-0.813\"},\"18135\":{\"name\":\"Randolph, IN\",\"path\":\"m 710.71788,248.19014 7.17427,-0.908 0.70958,7.032 -6.79273,0.804 -0.26997,0.003 -0.13652,-1.64295 -0.68463,-5.288\"},\"18035\":{\"name\":\"Delaware, IN\",\"path\":\"m 710.50929,246.52814 0.20859,1.662 0.68463,5.288 -6.29354,0.701 -0.80229,-6.961 2.3213,-0.248 3.88131,-0.442\"},\"18095\":{\"name\":\"Madison, IN\",\"path\":\"m 704.30668,247.21814 0.80229,6.961 0.32984,3.02 -4.97421,0.595 -0.6668,-6.347 -0.40292,-3.674 4.9118,-0.555\"},\"18159\":{\"name\":\"Tipton, IN\",\"path\":\"m 699.39488,247.77314 0.40292,3.674 -6.5984,0.762 -0.3851,-3.641 -0.0534,-0.61047 6.56983,-0.83553 0.0642,0.651\"},\"18023\":{\"name\":\"Clinton, IN\",\"path\":\"m 684.85914,248.01314 5.51976,-0.545 1.14995,-0.112 0.10519,0.996 0.52952,0.289 0.65074,-0.07 0.3851,3.641 0.0892,0.813 -7.87494,0.843 -0.0802,-0.827 -0.47424,-5.025\"},\"18107\":{\"name\":\"Montgomery, IN\",\"path\":\"m 685.33338,253.03814 0.0802,0.827 0.59548,5.898 0.12837,1.333 -5.48768,0.492 -1.40799,0.093 -0.20016,-1.95101 -0.59548,-6.042 6.88723,-0.65\"},\"18045\":{\"name\":\"Fountain, IN\",\"path\":\"m 678.44615,253.68814 0.59548,6.042 -5.74619,0.539 -0.12836,-4.06 -0.54556,-0.586 -0.0891,-0.216 0.016,-0.121 0.23534,-0.448 2.77058,-2.909 0.42611,-0.353 2.14479,-1.384 0.32091,3.496\"},\"18075\":{\"name\":\"Jay, IN\",\"path\":\"m 717.20396,241.24914 0.56874,5.056 0.11945,0.977 -7.17427,0.908 -0.20859,-1.662 0.30501,-0.0387 -0.47439,-4.32534 2.28386,-0.289 4.58019,-0.626\"},\"18009\":{\"name\":\"Blackford, IN\",\"path\":\"m 706.09668,242.65614 4.24323,-0.492 0.47439,4.32534 -0.30501,0.0387 -3.88131,0.442 -0.5313,-4.314\"},\"18053\":{\"name\":\"Grant, IN\",\"path\":\"m 702.57908,241.03214 3.268,-0.376 0.2496,2 0.5313,4.314 -2.3213,0.248 -4.9118,0.555 -0.0642,-0.651 -0.4261,-3.655 -0.22286,-1.986 3.89735,-0.449\"},\"18067\":{\"name\":\"Howard, IN\",\"path\":\"m 693.71465,244.07714 5.18994,-0.61 0.4261,3.655 -6.56983,0.83553 0.0534,0.61047 -0.65074,0.07 -0.52952,-0.289 -0.10519,-0.996 -1.14995,0.112 -0.27278,-2.981 3.60853,-0.41\"},\"18015\":{\"name\":\"Carroll, IN\",\"path\":\"m 690.10612,244.48714 0.27278,2.981 -5.51976,0.545 -0.35408,-2.98 -1.25942,0.112 -0.21751,-1.919 0.0874,-1.904 0.066,-0.162 0.0713,-0.09 2.86864,-0.245 0.9788,-0.09 0.10461,0.87649 2.60356,-0.15249 0.29774,3.029\"},\"18157\":{\"name\":\"Tippecanoe, IN\",\"path\":\"m 677.64208,245.66914 5.60356,-0.524 1.26053,-0.112 0.35297,2.98 0.47424,5.025 -6.88723,0.65 -0.32091,-3.496 -0.26565,-2.515 -0.21751,-2.008\"},\"18171\":{\"name\":\"Warren, IN\",\"path\":\"m 670.36441,248.32714 7.49518,-0.65 0.26565,2.515 -2.14479,1.384 -0.42611,0.353 -2.77058,2.909 -0.23534,0.448 -0.016,0.121 0.0891,0.216 0.54556,0.586 -2.20898,-0.278 -0.59369,-7.604\"},\"18007\":{\"name\":\"Benton, IN\",\"path\":\"m 674.2992,241.93914 2.90964,-0.271 0.65075,6.009 -7.49518,0.65 -0.0267,-0.328 -0.50455,-5.666 4.46609,-0.394\"},\"18001\":{\"name\":\"Adams, IN\",\"path\":\"m 716.24121,233.19814 0.542,4.468 0.42075,3.583 -4.58019,0.626 -1.02158,-8.026 4.63902,-0.651\"},\"18179\":{\"name\":\"Wells, IN\",\"path\":\"m 707.10935,234.37814 4.49284,-0.529 1.02158,8.026 -2.28386,0.289 -4.24323,0.492 -0.2496,-2 1.97007,-0.236 -0.7078,-6.042\"},\"18069\":{\"name\":\"Huntington, IN\",\"path\":\"m 701.60564,233.00514 5.2862,-0.661 0.21751,2.034 0.7078,6.042 -1.97007,0.236 -3.268,0.376 -0.97344,-8.027\"},\"18169\":{\"name\":\"Wabash, IN\",\"path\":\"m 700.80156,232.05714 0.10753,0.98938 0.69655,-0.0414 0.97344,8.027 -3.89735,0.449 -1.29615,0.153 -0.96275,-8.001 -0.0963,-1.004 4.475,-0.572\"},\"18103\":{\"name\":\"Miami, IN\",\"path\":\"m 696.42283,233.63314 0.96275,8.001 1.29615,-0.153 0.22286,1.986 -5.18994,0.61 -0.90035,-7.978 -0.20789,-1.97944 3.81642,-0.48656\"},\"18017\":{\"name\":\"Cass, IN\",\"path\":\"m 687.67072,236.62114 5.14358,-0.522 0.90035,7.978 -3.60853,0.41 -0.29774,-3.029 -2.60356,0.15249 -0.10461,-0.87649 -0.9788,0.09 -0.40293,-4.032 1.95224,-0.168\"},\"18181\":{\"name\":\"White, IN\",\"path\":\"m 685.71848,236.78914 0.40293,4.032 -2.86864,0.245 -0.0713,0.09 -0.066,0.162 -0.0874,1.904 0.21751,1.919 -5.60356,0.524 -0.43324,-4.001 -0.19053,-2.30882 1.75034,-0.21471 -0.13945,-1.69591 1.08636,-0.11256 6.00292,-0.547\"},\"18003\":{\"name\":\"Allen, IN\",\"path\":\"m 715.33017,225.60314 0.72384,6.06 0.1872,1.535 -4.63902,0.651 -4.49284,0.529 -0.21751,-2.034 -0.36122,-3.78882 0.39368,-0.0404 -0.23214,-2.1788 1.96829,-0.227 6.6198,-0.931 0.0499,0.425\"},\"18183\":{\"name\":\"Whitley, IN\",\"path\":\"m 700.72846,226.28714 1.97721,-0.226 0.057,0.667 3.92944,-0.392 0.23214,2.1788 -0.39368,0.0404 0.36122,3.78882 -5.2862,0.661 -0.69655,0.0414 -0.10753,-0.98938 -0.37084,-3.029 0.58122,-0.07 -0.16224,-1.735 -0.12124,-0.94\"},\"18049\":{\"name\":\"Fulton, IN\",\"path\":\"m 687.08416,230.58614 6.66972,-0.715 0.26995,2.03634 0.82167,-0.13808 0.17258,1.03027 1.30848,-0.17053 0.0963,1.004 -3.81642,0.48656 0.20789,1.97944 -5.14358,0.522 -0.58656,-6.035\"},\"18131\":{\"name\":\"Pulaski, IN\",\"path\":\"m 687.08416,230.58614 0.58656,6.035 -1.95224,0.168 -6.00292,0.547 -0.56874,-5.987 7.93734,-0.763\"},\"18033\":{\"name\":\"DeKalb, IN\",\"path\":\"m 707.94374,220.07614 6.61445,-0.852 0.28882,2.394 0.43324,3.56 -6.6198,0.931 -0.71671,-6.033\"},\"18113\":{\"name\":\"Noble, IN\",\"path\":\"m 707.94374,220.07614 0.71671,6.033 -1.96829,0.227 -3.92944,0.392 -0.057,-0.667 -1.97721,0.226 -0.38331,-3.271 -0.24069,-1.984 7.83928,-0.956\"},\"18085\":{\"name\":\"Kosciusko, IN\",\"path\":\"m 693.43474,223.77914 6.91041,-0.763 0.38331,3.271 0.12124,0.94 0.16224,1.735 -0.58122,0.07 0.37084,3.029 -4.475,0.572 -1.30848,0.17053 -0.17258,-1.03027 -0.82167,0.13808 -0.26995,-2.03634 0.4246,-0.0602 -0.74374,-6.03177\"},\"18099\":{\"name\":\"Marshall, IN\",\"path\":\"m 693.43474,223.77914 0.74374,6.03177 -0.4246,0.0602 -6.66972,0.715 -0.60261,-6.028 -0.10162,-0.995 3.06653,-0.362 3.87596,-0.41 0.11232,0.988\"},\"18149\":{\"name\":\"Starke, IN\",\"path\":\"m 686.48155,224.55814 0.60261,6.028 -7.93734,0.763 -0.1355,-1.494 1.88628,-1.029 0.50634,-0.33 0.39223,-0.618 0.29952,-0.564 0.1141,-0.305 0.35123,-1.351 0.92353,-0.795 2.00751,-0.2 0.98949,-0.105\"},\"18073\":{\"name\":\"Jasper, IN\",\"path\":\"m 679.01132,229.85514 0.1355,1.494 0.56874,5.987 -1.08636,0.11256 0.13945,1.69591 -1.75034,0.21471 0.19053,2.30882 -2.90964,0.271 -0.39936,-4.033 -0.0963,-0.04 -0.0499,-0.1 -0.62757,-6.933 0.92531,-0.628 0.40293,-0.578 0.97166,-0.563 0.19255,-0.04 0.34588,0.09 0.93066,0.323 1.32645,0.841 0.15155,0.04 0.49207,-0.274 0.14619,-0.193\"},\"18111\":{\"name\":\"Newton, IN\",\"path\":\"m 668.93989,232.43314 2.25279,-0.31939 1.93339,-1.27761 0.62757,6.933 0.0499,0.1 0.0963,0.04 0.39936,4.033 -4.46609,0.394 -0.56339,-6.308 -0.32983,-3.592\"},\"18151\":{\"name\":\"Steuben, IN\",\"path\":\"m 713.58652,213.98614 0.49742,1.428 0.47425,3.81 -6.61445,0.852 -0.65788,-5.35 6.30066,-0.74\"},\"18087\":{\"name\":\"LaGrange, IN\",\"path\":\"m 705.66345,214.90014 1.62241,-0.174 0.65788,5.35 -7.83928,0.956 -0.67749,-5.415 6.23648,-0.717\"},\"18039\":{\"name\":\"Elkhart, IN\",\"path\":\"m 699.42697,215.61714 0.67749,5.415 0.24069,1.984 -6.91041,0.763 -0.84508,-7.456 4.60337,-0.467 2.23394,-0.239\"},\"18141\":{\"name\":\"St. Joseph, IN\",\"path\":\"m 692.58966,216.32314 0.73276,6.468 -3.87596,0.41 -3.06653,0.362 0.10162,0.995 -0.98949,0.105 -0.73811,-7.522 5.06335,-0.522 2.77236,-0.296\"},\"18091\":{\"name\":\"LaPorte, IN\",\"path\":\"m 679.64424,217.63214 5.10971,-0.491 0.73811,7.522 -2.00751,0.2 -0.92353,0.795 -0.35123,1.351 -0.1141,0.305 -0.29952,0.564 -0.39223,0.618 -0.50634,0.33 -1.88628,1.029 -1.09646,-10.913 1.72938,-1.31\"},\"20043\":{\"name\":\"Doniphan, KS\",\"path\":\"m 534.81102,265.90314 0.55447,0 0.009,0.216 0.11232,0.162 2.12161,1.92 0.85935,0.553 0.43324,0.16 0.33696,0.128 0.0642,0.02 0.0802,0 0.66858,-0.06 0.13015,-0.05 0.1034,-0.1 0.0143,-0.02 0.60261,-0.683 1.47086,1.849 0.14442,0.683 0.13728,0.634 -0.36906,0.822 -0.37083,0.06 -1.26941,1.124 -0.0713,0.08 -0.6044,0.882 -0.20859,0.298 -0.87007,-0.61232 -4.02213,-0.0317 -0.0571,-8.042\"},\"20013\":{\"name\":\"Brown, KS\",\"path\":\"m 526.96818,265.93314 7.84284,-0.03 0.0571,8.042 -3.94549,0.02 -3.9544,0.02 0,-8.053\"},\"20187\":{\"name\":\"Stanton, KS\",\"path\":\"m 414.2694,314.89414 9.27449,0.619 -0.44215,8.044 -0.56339,-0.03 -8.78241,-0.556 0.3851,-5.898 0.12836,-2.177\"},\"20129\":{\"name\":\"Morton, KS\",\"path\":\"m 413.75594,322.96914 8.78241,0.556 -0.50633,9.096 -8.60591,-0.474 -0.25674,-0.02 0.58657,-9.162\"},\"20189\":{\"name\":\"Stevens, KS\",\"path\":\"m 422.53835,323.52514 0.56339,0.03 7.89098,0.457 0.39223,0.02 -0.45641,9.025 -8.89652,-0.443 0.50633,-9.096\"},\"20067\":{\"name\":\"Grant, KS\",\"path\":\"m 423.54389,315.51314 7.88207,0.433 -0.43324,8.068 -7.89098,-0.457 0.44215,-8.044\"},\"20081\":{\"name\":\"Haskell, KS\",\"path\":\"m 439.31694,316.35614 -0.31378,6.051 -0.0963,2.026 -7.52193,-0.394 -0.39223,-0.02 0.43324,-8.068 7.89098,0.41\"},\"20175\":{\"name\":\"Seward, KS\",\"path\":\"m 438.90688,324.43314 -0.0874,8.984 -5.682,-0.241 -2.20898,-0.112 0.45641,-9.025 7.52193,0.394\"},\"20119\":{\"name\":\"Meade, KS\",\"path\":\"m 446.91019,322.76214 1.97007,0.105 -0.15333,10.958 -9.90741,-0.408 0.0874,-8.984 0.0963,-2.026 7.90703,0.355\"},\"20069\":{\"name\":\"Gray, KS\",\"path\":\"m 447.15979,312.59814 -0.2496,10.164 -7.90703,-0.355 0.31378,-6.051 -0.12836,-2.161 0.20859,-4.016 7.86781,0.41 -0.10519,2.009\"},\"20057\":{\"name\":\"Ford, KS\",\"path\":\"m 447.15979,312.59814 11.82934,0.512 0.0321,4.132 -0.16937,6.185 -9.97159,-0.56 -1.97007,-0.105 0.2496,-10.164\"},\"20025\":{\"name\":\"Clark, KS\",\"path\":\"m 458.85185,323.42714 0.15154,2.018 -0.28882,8.838 -8.40623,-0.385 -1.58141,-0.07 0.15333,-10.958 9.97159,0.56\"},\"20033\":{\"name\":\"Comanche, KS\",\"path\":\"m 468.64694,325.70214 -0.0874,8.92 -8.29392,-0.282 -1.55109,-0.06 0.28882,-8.838 9.64355,0.257\"},\"20097\":{\"name\":\"Kiowa, KS\",\"path\":\"m 459.02122,317.24214 9.84323,0.385 -0.16938,6.082 -0.0481,1.993 -9.64355,-0.257 -0.15154,-2.018 0.16937,-6.185\"},\"20047\":{\"name\":\"Edwards, KS\",\"path\":\"m 459.14781,309.07014 3.92944,0.137 -0.0642,2.016 5.89773,0.2 0.025,4.067 -0.0713,2.137 -9.84323,-0.385 -0.0321,-4.132 0.15868,-4.04\"},\"20151\":{\"name\":\"Pratt, KS\",\"path\":\"m 478.69163,315.78614 0.0802,2.13 -0.16045,6.058 -9.91633,-0.265 0.16938,-6.082 0.0713,-2.137 9.75587,0.296\"},\"20007\":{\"name\":\"Barber, KS\",\"path\":\"m 468.69507,323.70914 9.91633,0.265 0.003,1.97746 2.02904,0.0965 -0.16937,8.945 -3.60675,-0.115 -8.30817,-0.256 0.0874,-8.92 0.0481,-1.993\"},\"20077\":{\"name\":\"Harper, KS\",\"path\":\"m 480.64387,326.04814 9.84322,0.162 -0.0802,8.982 -5.64991,-0.105 -4.28245,-0.09 0.16937,-8.945\"},\"20095\":{\"name\":\"Kingman, KS\",\"path\":\"m 478.77185,317.91614 11.85252,0.239 -0.10519,6.019 -0.0321,2.036 -9.84322,-0.162 -2.02904,-0.0965 -0.003,-1.97746 0.16045,-6.058\"},\"20155\":{\"name\":\"Reno, KS\",\"path\":\"m 488.76841,307.92914 3.95262,0.07 -0.11232,6.044 -0.0167,4.12352 -1.96765,-0.0125 -11.85252,-0.239 -0.0802,-2.13 0.19968,-8.068 9.8771,0.211\"},\"20079\":{\"name\":\"Harvey, KS\",\"path\":\"m 498.64372,308.09814 3.86999,0.15506 0.0256,1.89294 -0.0303,4.049 -9.90027,-0.151 0.11232,-6.044 5.92269,0.1\"},\"20173\":{\"name\":\"Sedgwick, KS\",\"path\":\"m 492.60871,314.04414 9.90027,0.151 -0.13728,10.134 -11.85252,-0.155 0.10519,-6.019 1.96765,0.0125 0.0167,-4.12352\"},\"20191\":{\"name\":\"Sumner, KS\",\"path\":\"m 490.51918,324.17414 11.85252,0.155 -0.0321,11.042 -5.73727,-0.07 -6.19548,-0.107 0.0802,-8.982 0.0321,-2.036\"},\"20035\":{\"name\":\"Cowley, KS\",\"path\":\"m 502.3717,324.32914 11.36223,0.08 0,4.026 -0.0571,7.03 -4.0899,-0.02 -7.24737,-0.07 0.0321,-11.042\"},\"20015\":{\"name\":\"Butler, KS\",\"path\":\"m 508.14999,310.25014 5.72122,0.02 -0.11232,11.106 -0.025,3.03 -11.36223,-0.08 0.13728,-10.134 0.0303,-4.049 5.6107,0.104\"},\"20019\":{\"name\":\"Chautauqua, KS\",\"path\":\"m 513.73393,328.43514 10.17484,0.105 0.005,6.959 -0.66501,0 -9.57223,-0.03 0.0571,-7.03\"},\"20049\":{\"name\":\"Elk, KS\",\"path\":\"m 523.96226,321.48214 0,5.031 -0.0535,2.027 -10.17484,-0.105 0,-4.026 0.025,-3.03 10.20337,0.103\"},\"20073\":{\"name\":\"Greenwood, KS\",\"path\":\"m 523.99613,308.33214 -0.009,3.036 -0.025,7.087 0,3.027 -10.20337,-0.103 0.11232,-11.106 2.96108,0.0176 0.0199,-2.00858 7.14396,0.05\"},\"20125\":{\"name\":\"Montgomery, KS\",\"path\":\"m 523.96226,326.51314 7.8999,0.04 0.082,0 0.0713,2.717 -0.0553,4.741 0.005,1.453 -4.82088,0.03 -3.23056,0 -0.005,-6.959 0.0535,-2.027\"},\"20205\":{\"name\":\"Wilson, KS\",\"path\":\"m 523.96226,318.45514 7.85889,0.02 0.041,8.083 -7.8999,-0.04 0,-8.058\"},\"20207\":{\"name\":\"Woodson, KS\",\"path\":\"m 523.98722,311.36814 7.91594,0.02 -0.082,7.08 -7.85889,-0.02 0.025,-7.087\"},\"20099\":{\"name\":\"Labette, KS\",\"path\":\"m 531.94417,326.55414 7.8571,-0.06 0.24069,1.02 0.11232,7.884 -6.09741,0.06 -2.09131,0 -0.005,-1.453 0.0553,-4.741 -0.0713,-2.717\"},\"20133\":{\"name\":\"Neosho, KS\",\"path\":\"m 539.72105,318.42414 0.0178,1.339 0.0624,6.734 -7.8571,0.06 -0.082,0 -0.041,-8.083 7.8999,-0.05\"},\"20001\":{\"name\":\"Allen, KS\",\"path\":\"m 539.8405,311.34314 -0.11945,7.081 -7.8999,0.05 0.082,-7.08 7.93734,-0.05\"},\"20021\":{\"name\":\"Cherokee, KS\",\"path\":\"m 540.04196,327.51714 8.30818,-0.06 0.10519,7.884 -7.10296,0.06 -1.19809,0 -0.11232,-7.884\"},\"20037\":{\"name\":\"Crawford, KS\",\"path\":\"m 548.23068,319.69214 0.11232,7.158 0.007,0.603 -8.30818,0.06 -0.24069,-1.02 -0.0624,-6.734 8.49181,-0.07\"},\"20011\":{\"name\":\"Bourbon, KS\",\"path\":\"m 539.8405,311.34314 8.33491,-0.08 0.0553,8.429 -8.49181,0.07 -0.0178,-1.339 0.11945,-7.081\"},\"20075\":{\"name\":\"Hamilton, KS\",\"path\":\"m 414.99325,302.76914 8.5346,0.508 0.44928,0.02 -0.37797,6.72 0.0642,3.382 -0.11945,2.113 -9.27449,-0.619 0.72385,-12.125\"},\"20071\":{\"name\":\"Greeley, KS\",\"path\":\"m 415.62795,292.71014 8.49359,0.472 -0.59369,10.095 -8.5346,-0.508 0.50633,-8.157 0.12837,-1.902\"},\"20199\":{\"name\":\"Wallace, KS\",\"path\":\"m 426.2913,283.20214 -0.69176,10.052 -1.478,-0.07 -8.49359,-0.472 0.49029,-8.084 0.11232,-1.995 10.06074,0.571\"},\"20181\":{\"name\":\"Sherman, KS\",\"path\":\"m 416.82604,272.56214 11.17681,0.677 0.43324,0.02 -0.61688,10.022 -1.52791,-0.08 -10.06074,-0.571 0.59548,-10.069\"},\"20023\":{\"name\":\"Cheyenne, KS\",\"path\":\"m 417.43578,262.50114 11.18573,0.694 -0.61866,10.044 -11.17681,-0.677 0.007,-0.134 0.60261,-9.927\"},\"20185\":{\"name\":\"Stafford, KS\",\"path\":\"m 471.06451,305.45214 7.75548,0.225 0.0713,2.041 -0.19968,8.068 -9.75587,-0.296 -0.025,-4.067 1.95403,0.06 0.19968,-6.035\"},\"20093\":{\"name\":\"Kearny, KS\",\"path\":\"m 423.97713,303.29814 7.46488,0.395 0.39401,0.02 -0.18542,3.866 -0.36192,6.216 0.13728,2.154 -7.88207,-0.433 0.11945,-2.113 -0.0642,-3.382 0.37797,-6.72\"},\"20055\":{\"name\":\"Finney, KS\",\"path\":\"m 439.33299,304.10114 7.88207,0.421 0.30487,0.02 -0.25495,6.051 -7.86781,-0.41 -0.20859,4.016 0.12836,2.161 -7.89098,-0.41 -0.13728,-2.154 0.36192,-6.216 0.18542,-3.866 7.49697,0.391\"},\"20083\":{\"name\":\"Hodgeman, KS\",\"path\":\"m 459.03548,305.01014 0.11233,4.06 -0.15868,4.04 -11.82934,-0.512 0.10519,-2.009 0.25495,-6.051 11.51555,0.472\"},\"20145\":{\"name\":\"Pawnee, KS\",\"path\":\"m 459.10145,302.98514 9.88245,0.372 -0.0718,1.99607 2.15242,0.0989 -0.19968,6.035 -1.95403,-0.06 -5.89773,-0.2 0.0642,-2.016 -3.92944,-0.137 -0.11233,-4.06 0.066,-2.025\"},\"20031\":{\"name\":\"Coffey, KS\",\"path\":\"m 532.05471,302.20614 0,1.021 0.0339,3.036 -0.16937,0 -0.0161,5.128 -7.91594,-0.02 0.009,-3.036 0.15155,-6.1 7.90703,-0.03\"},\"20003\":{\"name\":\"Anderson, KS\",\"path\":\"m 532.05471,303.22714 7.92485,-0.05 0.0392,3.036 -0.17828,3.102 0,2.026 -7.93734,0.05 0.0161,-5.128 0.16937,0 -0.0339,-3.036\"},\"20107\":{\"name\":\"Linn, KS\",\"path\":\"m 548.07023,303.10814 0.0963,7.614 0.009,0.541 -8.33491,0.08 0,-2.026 0.17828,-3.102 -0.0392,-3.036 8.09067,-0.07\"},\"20121\":{\"name\":\"Miami, KS\",\"path\":\"m 548.02209,295.00614 0.025,6.044 0.0232,2.058 -8.09067,0.07 0.0784,-8.083 7.96408,-0.09\"},\"20059\":{\"name\":\"Franklin, KS\",\"path\":\"m 532.14385,295.16014 7.91416,-0.06 -0.0784,8.083 -7.92485,0.05 0,-1.021 0.0891,-7.046\"},\"20139\":{\"name\":\"Osage, KS\",\"path\":\"m 532.13493,292.11514 0.009,3.045 -0.0891,7.046 -7.90703,0.03 0.0731,-7.056 -0.007,-3.036 7.92129,-0.03\"},\"20111\":{\"name\":\"Lyon, KS\",\"path\":\"m 516.98054,295.15114 7.24023,0.03 -0.0731,7.056 -0.15155,6.1 -7.14396,-0.05 0.0874,-8.086 0.041,-5.045\"},\"20017\":{\"name\":\"Chase, KS\",\"path\":\"m 508.62245,300.12514 8.31708,0.07 -0.0874,8.086 -0.0199,2.00858 -2.96108,-0.0176 -5.72122,-0.02 0.0321,-3.808 0.0802,-2.291 0.32804,0.01 0.0321,-4.036\"},\"20127\":{\"name\":\"Morris, KS\",\"path\":\"m 514.34368,292.11514 0.0789,1.02015 1.81986,0.0626 0.0209,1.94866 0.71725,0.005 -0.041,5.045 -8.31708,-0.07 -2.06359,0.0378 0.10421,-2.06979 0.27589,-5.11373 0.51234,0.003 -0.0162,-0.92334 6.90863,0.06\"},\"20115\":{\"name\":\"Marion, KS\",\"path\":\"m 506.66307,298.09314 -0.10421,2.06979 2.06359,-0.0378 -0.0321,4.036 -0.32804,-0.01 -0.0802,2.291 -0.0321,3.808 -5.6107,-0.104 -0.0256,-1.89294 -3.86999,-0.15506 0.14442,-10.102 7.87493,0.1\"},\"20113\":{\"name\":\"McPherson, KS\",\"path\":\"m 498.78814,297.99614 -0.14442,10.102 -5.92269,-0.1 -3.95262,-0.07 0.15867,-10.109 9.86106,0.176\"},\"20159\":{\"name\":\"Rice, KS\",\"path\":\"m 478.9644,299.62814 9.93237,0.208 -0.12836,8.093 -9.8771,-0.211 -0.0713,-2.041 0.14441,-6.049\"},\"20169\":{\"name\":\"Saline, KS\",\"path\":\"m 498.90937,289.92014 -0.12123,8.076 -9.86106,-0.176 0.0499,-6.06 0.0392,-2.017 9.89315,0.177\"},\"20053\":{\"name\":\"Ellsworth, KS\",\"path\":\"m 479.0999,291.53514 9.8771,0.225 -0.0499,6.06 -0.0303,2.016 -9.93237,-0.208 0.009,-4.067 0.12658,-4.026\"},\"20009\":{\"name\":\"Barton, KS\",\"path\":\"m 478.97332,295.56114 -0.009,4.067 -0.14441,6.049 -7.75548,-0.225 -2.15242,-0.0989 0.0718,-1.99607 0.2496,-8.069 9.73982,0.273\"},\"20165\":{\"name\":\"Rush, KS\",\"path\":\"m 459.39741,294.95114 9.6578,0.328 0.17829,0 -0.2496,8.069 -9.88245,-0.372 0.29596,-8.034\"},\"20135\":{\"name\":\"Ness, KS\",\"path\":\"m 447.60907,294.42914 1.66342,0.09 9.88423,0.426 0.24069,0 -0.29596,8.034 -0.066,2.025 -11.51555,-0.472 -0.30487,-0.02 0.39401,-10.093\"},\"20101\":{\"name\":\"Lane, KS\",\"path\":\"m 439.76623,294.01014 7.84284,0.419 -0.39401,10.093 -7.88207,-0.421 0.43324,-10.091\"},\"20171\":{\"name\":\"Scott, KS\",\"path\":\"m 431.9323,293.59314 5.51263,0.304 2.3213,0.113 -0.43324,10.091 -7.49697,-0.391 -0.39401,-0.02 0.49029,-10.1\"},\"20203\":{\"name\":\"Wichita, KS\",\"path\":\"m 425.59954,293.25414 6.33276,0.339 -0.49029,10.1 -7.46488,-0.395 -0.44928,-0.02 0.59369,-10.095 1.478,0.07\"},\"20109\":{\"name\":\"Logan, KS\",\"path\":\"m 427.81921,283.28414 2.63509,0.144 2.69035,0.193 4.92607,0.257 -0.62579,10.019 -5.51263,-0.304 -6.33276,-0.339 0.69176,-10.052 1.52791,0.08\"},\"20063\":{\"name\":\"Gove, KS\",\"path\":\"m 439.67887,283.95814 9.85035,0.49 0.29061,0 -0.54734,10.061 -1.66342,-0.09 -7.84284,-0.419 -2.3213,-0.113 0.62579,-10.019 1.60815,0.08\"},\"20195\":{\"name\":\"Trego, KS\",\"path\":\"m 449.81983,284.45514 9.60254,0.387 0.24068,0 -0.50633,10.093 -9.88423,-0.426 0.54734,-10.061\"},\"20051\":{\"name\":\"Ellis, KS\",\"path\":\"m 459.66305,284.84914 9.62572,0.321 0.18542,0 -0.41898,10.1 -9.6578,-0.328 -0.24069,0 0.50633,-10.093\"},\"20167\":{\"name\":\"Russell, KS\",\"path\":\"m 469.47419,285.17914 9.6899,0.289 -0.0642,6.067 -0.12658,4.026 -9.73982,-0.273 -0.17829,0 0.41898,-10.1\"},\"20105\":{\"name\":\"Lincoln, KS\",\"path\":\"m 489.12141,283.69214 -0.10519,6.051 -0.0392,2.017 -9.8771,-0.225 0.0642,-6.067 0.0571,-2.018 9.90027,0.242\"},\"20143\":{\"name\":\"Ottawa, KS\",\"path\":\"m 489.16955,281.67614 9.89136,0.176 -0.0874,4.035 -0.0642,4.033 -9.89315,-0.177 0.10519,-6.051 0.0481,-2.016\"},\"20041\":{\"name\":\"Dickinson, KS\",\"path\":\"m 506.19774,285.96714 1.23731,6.092 0.0163,0.92334 -0.51234,-0.003 -0.27589,5.11373 -7.87493,-0.1 0.12123,-8.076 0.0642,-4.033 7.22419,0.08\"},\"20061\":{\"name\":\"Geary, KS\",\"path\":\"m 506.19774,285.96714 0.0553,-2.041 1.96829,0.05 -0.0481,3.033 4.80484,0.39 1.39777,0.02 0,0.678 -0.0321,4.026 -6.90863,-0.06 -1.23731,-6.092\"},\"20197\":{\"name\":\"Wabaunsee, KS\",\"path\":\"m 522.56449,286.19214 0.0324,0.72729 1.61029,0.026 0.006,5.19469 0.007,3.036 -7.24023,-0.03 -0.71725,-0.005 -0.0209,-1.94866 -1.81986,-0.0626 -0.0789,-1.02015 0.0321,-4.026 2.03364,0.0173 -0.0315,-3.00034 0.11232,0.105 0.44928,0.282 0.18542,0.05 0.93244,-0.955 1.19809,-0.289 2.1127,0.169 0.41898,0.17 0.25673,0.328 0.49742,1.046 0.0232,0.184\"},\"20177\":{\"name\":\"Shawnee, KS\",\"path\":\"m 522.62867,284.10214 7.89098,0 -0.0268,1.75234 -0.0369,2.1252 1.66294,-0.17454 0.016,4.317 -7.92129,0.03 -0.006,-5.19469 -1.61029,-0.026 -0.0324,-0.72729 0.0642,-2.09\"},\"20045\":{\"name\":\"Douglas, KS\",\"path\":\"m 537.67253,288.04114 2.33734,1.414 0.0481,5.641 -7.91416,0.06 -0.009,-3.045 -0.016,-4.317 0.77376,-0.28 0.36014,-0.04 0.24782,0.04 0.35479,0.152 0.22465,0.257 0.56338,0.338 0.31379,0.08 0.25495,-0.02 2.46036,-0.289\"},\"20091\":{\"name\":\"Johnson, KS\",\"path\":\"m 542.62178,289.22114 0.47424,-1.462 0.11232,-0.1 0.23356,-0.08 0.27277,0 1.51901,0.386 2.72422,-0.04 0.0571,4.565 0.007,2.522 -7.96408,0.09 -0.0481,-5.641 2.61191,-0.234\"},\"20209\":{\"name\":\"Wyandotte, KS\",\"path\":\"m 548.01496,285.23414 -0.082,1.079 0.025,1.606 -2.72422,0.04 -1.51901,-0.386 -0.27277,0 -0.23356,0.08 -0.11232,0.1 -0.47424,1.462 -0.025,-3.19 0.12124,-1.704 1.89697,0 3.39994,0.907\"},\"20103\":{\"name\":\"Leavenworth, KS\",\"path\":\"m 537.72958,279.34614 3.71907,-0.04 3.16637,5.017 -1.89697,0 -0.12124,1.704 0.025,3.19 -2.61191,0.234 -2.33734,-1.414 -0.0321,-1.961 0.11945,-2.331 -0.0303,-4.403\"},\"20087\":{\"name\":\"Jefferson, KS\",\"path\":\"m 530.83344,279.38714 6.89614,-0.04 0.0303,4.403 -0.11945,2.331 0.0321,1.961 -2.46036,0.289 -0.25495,0.02 -0.31379,-0.08 -0.56338,-0.338 -0.22465,-0.257 -0.35479,-0.152 -0.24782,-0.04 -0.36014,0.04 -0.77376,0.28 -1.66294,0.17454 0.0369,-2.1252 0.0268,-1.75234 -0.0672,-2.74378 0.38094,-1.96422\"},\"20005\":{\"name\":\"Atchison, KS\",\"path\":\"m 539.06317,276.68614 2.38548,2.624 -3.71907,0.04 -6.89614,0.04 0.0891,-5.419 3.94549,-0.02 4.02213,0.0317 0.87007,0.61232 -0.6971,2.097\"},\"20085\":{\"name\":\"Jackson, KS\",\"path\":\"m 530.83344,279.38714 -0.38094,1.96422 0.0671,2.74378 -7.89098,0 0,-8.099 2.42286,0.0476 1.87673,0.0252 0.0399,-2.08988 3.9544,-0.02 -0.0891,5.419\"},\"20149\":{\"name\":\"Pottawatomie, KS\",\"path\":\"m 522.62867,284.10214 -0.0642,2.09 -0.0232,-0.184 -0.49742,-1.046 -0.25673,-0.328 -0.41898,-0.17 -2.1127,-0.169 -1.19809,0.289 -0.93244,0.955 -0.18542,-0.05 -0.44928,-0.282 -0.11232,-0.105 -1.2694,-0.378 -1.17313,-0.515 -1.66342,-1.541 -0.87539,-1.367 -0.86826,-1.597 0.007,-0.926 0.21752,-0.362 2.26602,-2.458 6.03502,0.03 3.57465,0 0,8.099\"},\"20161\":{\"name\":\"Riley, KS\",\"path\":\"m 506.25301,283.92614 0.12837,-8.02 2.68322,0.02 3.9544,0.03 -2.26602,2.458 -0.21752,0.362 -0.007,0.926 0.86826,1.597 0.87539,1.367 1.66342,1.541 1.17313,0.515 1.2694,0.378 0.0315,3.00034 -2.03364,-0.0173 0,-0.678 -1.39777,-0.02 -4.80484,-0.39 0.0481,-3.033 -1.96829,-0.05\"},\"20027\":{\"name\":\"Clay, KS\",\"path\":\"m 499.06091,281.85214 0.10519,-6.044 7.21528,0.1 -0.12837,8.02 -0.0553,2.041 -7.22419,-0.08 0.0874,-4.035\"},\"20029\":{\"name\":\"Cloud, KS\",\"path\":\"m 489.24978,275.63414 0.0481,-2.019 9.89136,0.177 -0.0232,2.016 -0.10519,6.044 -9.89136,-0.176 0.0802,-6.042\"},\"20123\":{\"name\":\"Mitchell, KS\",\"path\":\"m 489.24978,275.63414 -0.0802,6.042 -0.0481,2.016 -9.90027,-0.242 0.25851,-8.057 9.77013,0.241\"},\"20141\":{\"name\":\"Osborne, KS\",\"path\":\"m 479.22114,283.45014 -0.0571,2.018 -9.6899,-0.289 -0.18542,0 0.10519,-3.366 0.13728,-2.676 0.14441,-4.024 9.4813,0.28 0.3227,0 -0.25851,8.057\"},\"20163\":{\"name\":\"Rooks, KS\",\"path\":\"m 459.8556,274.77114 9.44208,0.315 0.37797,0.02 -0.14441,4.024 -0.13728,2.676 -0.10519,3.366 -9.62572,-0.321 -0.24068,0 0.43323,-10.071\"},\"20065\":{\"name\":\"Graham, KS\",\"path\":\"m 449.52922,284.44814 0.49029,-10.077 9.38503,0.38 0.45106,0.02 -0.43323,10.071 -9.60254,-0.387 -0.29061,0\"},\"20179\":{\"name\":\"Sheridan, KS\",\"path\":\"m 440.19233,273.88614 9.49913,0.478 0.32805,0 -0.49029,10.077 -9.85035,-0.49 0.51346,-10.072\"},\"20193\":{\"name\":\"Thomas, KS\",\"path\":\"m 427.81921,283.28414 0.61688,-10.022 11.39432,0.61 0.36192,0.01 -0.51346,10.072 -1.60815,-0.08 -4.92607,-0.257 -2.69035,-0.193 -2.63509,-0.144\"},\"20153\":{\"name\":\"Rawlins, KS\",\"path\":\"m 428.62151,263.19514 1.519,0.08 9.88245,0.529 0.34766,0.03 -0.54021,10.043 -11.39432,-0.61 -0.43324,-0.02 0.61866,-10.044\"},\"20039\":{\"name\":\"Decatur, KS\",\"path\":\"m 440.37062,263.82914 9.52944,0.457 0.27278,0.02 -0.48138,10.06 -9.49913,-0.478 -0.36192,-0.01 0.54021,-10.043\"},\"20147\":{\"name\":\"Phillips, KS\",\"path\":\"m 467.64318,264.97014 1.95937,0.06 -0.30487,10.06 -9.44208,-0.315 -0.45106,-0.02 0.41897,-10.062 7.81967,0.281\"},\"20137\":{\"name\":\"Norton, KS\",\"path\":\"m 459.78251,264.68914 0.041,0 -0.41897,10.062 -9.38503,-0.38 -0.32805,0 0.48138,-10.06 9.60967,0.385\"},\"20183\":{\"name\":\"Smith, KS\",\"path\":\"m 469.60255,265.02614 5.95479,0.185 3.88131,0.105 -0.2817,10.068 -9.4813,-0.28 -0.37797,-0.02 0.30487,-10.06\"},\"20089\":{\"name\":\"Jewell, KS\",\"path\":\"m 483.4715,265.41114 5.98688,0.144 -0.16046,8.06 -0.0481,2.019 -9.77013,-0.241 -0.3227,0 0.2817,-10.068 4.03285,0.09\"},\"20157\":{\"name\":\"Republic, KS\",\"path\":\"m 491.38744,265.59814 7.91416,0.127 -0.11232,8.067 -9.89136,-0.177 0.16046,-8.06 1.92906,0.04\"},\"20201\":{\"name\":\"Washington, KS\",\"path\":\"m 499.3016,265.72514 7.93199,0.105 1.9362,0.02 -0.10519,10.078 -2.68322,-0.02 -7.21528,-0.1 0.0232,-2.016 0.11232,-8.067\"},\"20117\":{\"name\":\"Marshall, KS\",\"path\":\"m 515.14953,265.90314 3.92766,0.02 -0.0232,10.07 -6.03502,-0.03 -3.9544,-0.03 0.10519,-10.078 5.97974,0.05\"},\"20131\":{\"name\":\"Nemaha, KS\",\"path\":\"m 523.07082,265.93314 3.89736,0 0,8.053 -0.0399,2.08988 -1.87673,-0.0252 -2.42286,-0.0476 -3.57465,0 0.0232,-10.07 3.99363,0\"},\"21105\":{\"name\":\"Hickman, KY\",\"path\":\"m 648.87547,335.90014 5.68201,-0.139 0.41719,6.254 -0.19968,0.02 -0.13728,0 -1.38886,-1.622 -0.7488,-0.282 -4.33059,-1.046 0.70601,-3.188\"},\"21075\":{\"name\":\"Fulton, KY\",\"path\":\"m 648.16946,339.08814 4.33059,1.046 0.7488,0.282 1.38886,1.622 -9.36185,0.676 -1.29436,0.184 1.42273,-3.19 1.1639,1.0898 0.84441,-0.0675 0.24723,-1.08361 0.50969,-0.55868 m -6.4219,3.986 -0.40828,-0.584 -0.025,-0.03 -0.19968,-0.427 -0.007,-0.02 -0.0178,-0.1 -0.0178,-0.07 0.0178,-0.08 0.025,-0.105 0.0232,-0.09 0.0303,-0.04 0.21038,-0.281 0.1141,-0.07 0.33696,-0.05 0.51347,0.08 0.28169,0.08 0.0481,0.03 0.0392,0.03 0.025,0.02 0.11767,0.183 0.0107,0.02 0.11232,0.266 0.0571,0.25 0,0 0.007,0.04 0,0.1 -0.016,0.06 -0.0571,0.227 -0.0232,0.09 -0.0285,0.06 -0.18007,0.339 -0.98949,0.05\"},\"21013\":{\"name\":\"Bell, KY\",\"path\":\"m 750.51689,321.94214 0.48494,0.948 -0.0635,3.86131 1.28298,1.36069 -3.70302,1.987 -4.60515,0.884 -0.91335,-1.48603 1.58727,-0.90897 1.22305,-2.155 1.70799,-1.753 0.75772,-0.713 1.11786,-1.244 0.11232,-0.483 -0.0891,-0.177 -0.41006,-0.323 1.51009,0.202\"},\"21121\":{\"name\":\"Knox, KY\",\"path\":\"m 743.62253,320.12714 0.22643,-0.02 1.57427,0.202 0.58656,0.167 0.23356,0.209 0.2496,0.289 0.0392,0.162 0.53843,0.224 0.77912,0.25 0.75593,0.135 0.40115,0 0.41006,0.323 0.0891,0.177 -0.11232,0.483 -1.11786,1.244 -0.75772,0.713 -1.70799,1.753 -1.22305,2.156 -1.58319,-0.733 -2.29811,-2.667 -0.78625,-2.291 3.70302,-2.771\"},\"21235\":{\"name\":\"Whitley, KY\",\"path\":\"m 736.22897,323.59814 3.69054,-0.7 0.78625,2.291 2.29811,2.667 1.58319,0.732 -1.58727,0.90897 0.91335,1.48603 -1.03585,0.103 -4.35555,0.5 -1.166,-1.086 -0.53129,-0.651 -1.05903,-2.282 -0.0392,-0.323 0.50277,-3.646\"},\"21125\":{\"name\":\"Laurel, KY\",\"path\":\"m 738.03858,314.63814 3.70302,1.148 -0.23177,1.809 0.54556,0.603 0.94848,0.586 0.50634,0.755 0.11232,0.588 -3.70302,2.771 -3.69054,0.7 -1.13925,-0.171 0.70779,-4.578 2.24107,-4.211\"},\"21051\":{\"name\":\"Clay, KY\",\"path\":\"m 744.30537,313.16714 1.47978,0.07 2.7171,1.34 0.72206,0.07 0.40828,0.465 -0.23793,3.14747 1.12223,3.69153 -1.51009,-0.202 -0.40115,0 -0.75593,-0.135 -0.77912,-0.25 -0.53843,-0.224 -0.0392,-0.162 -0.2496,-0.289 -0.23356,-0.209 -0.58656,-0.167 -1.57427,-0.202 -0.22643,0.02 -0.11232,-0.588 -0.50634,-0.755 -0.94848,-0.586 -0.54556,-0.603 0.23177,-1.809 2.56377,-2.619\"},\"21131\":{\"name\":\"Leslie, KY\",\"path\":\"m 749.63259,315.10314 1.35141,-1.815 1.52614,0.884 1.98611,1.245 0.68997,0.604 0.73098,1.277 0.28348,0.955 -0.025,1.004 -5.17389,3.633 -0.48494,-0.948 -1.12223,-3.69153 0.23793,-3.14747\"},\"21095\":{\"name\":\"Harlan, KY\",\"path\":\"m 756.17572,319.25714 1.14817,0.305 0.54555,0.684 2.70818,-1.462 1.39956,0.771 -0.0731,1.742 -0.37797,0.661 -1.18453,0.94749 -1.7333,0.0851 -0.71417,2.67216 -1.10614,0.0851 -3.46434,2.00421 -1.10232,0.35985 -1.28298,-1.36069 0.0635,-3.86131 5.17389,-3.633\"},\"21133\":{\"name\":\"Letcher, KY\",\"path\":\"m 763.48014,312.38814 0.81833,0.714 0.51525,-0.02 0.50277,-0.41 0.10697,0 0.5937,0.376 0.71671,0.644 -2.47958,2.20387 0.13476,1.9525 -1.6249,0.9805 -0.78697,0.72913 -1.39956,-0.771 -2.70818,1.462 -0.54555,-0.684 0.21929,0.178 0.0642,0 0.82012,-0.651 0.0606,-0.09 0.0481,-0.258 -0.0232,-1.115 -0.46533,-0.893 0.0303,-0.16 0.31379,-0.813 0.51346,-0.963 0.32627,0.226 0.39045,0 0.70779,-0.562 0.36014,-0.362 0.33875,-0.435 1.24444,-0.866 1.20701,-0.41\"},\"21119\":{\"name\":\"Knott, KY\",\"path\":\"m 759.3314,307.93614 1.79356,0.265 1.31933,0.731 0.16581,0.259 0.0891,0.754 -0.0392,0.626 0.32804,0.963 0.0963,0.1 0.40293,0.233 0.34587,0.154 -0.353,0.369 -1.20701,0.41 -1.24444,0.866 -0.33875,0.435 -0.36014,0.362 -0.70779,0.562 -0.39045,0 -0.32627,-0.226 -2.55106,-0.61598 -0.33897,-3.88602 0.0308,-2.34686 2.81998,-0.32714 0.46533,0.321\"},\"21193\":{\"name\":\"Perry, KY\",\"path\":\"m 756.01526,310.28914 0.33897,3.88602 2.55106,0.61598 -0.51346,0.963 -0.31379,0.813 -0.0303,0.16 0.46533,0.893 0.0232,1.115 -0.0481,0.258 -0.0606,0.09 -0.82012,0.651 -0.0642,0 -0.21929,-0.178 -1.14817,-0.305 0.025,-1.004 -0.28348,-0.955 -0.73098,-1.277 -0.68997,-0.604 -1.98611,-1.245 -1.52614,-0.884 -1.35141,1.815 -0.40828,-0.465 -0.60974,-1.705 2.1127,-0.747 3.90448,-1.927 1.38351,0.03\"},\"21189\":{\"name\":\"Owsley, KY\",\"path\":\"m 747.53593,309.07014 1.07864,3.863 0.60974,1.705 -0.72206,-0.07 -2.7171,-1.34 -1.47978,-0.07 -2.30525,-3.657 0.4261,0.321 0.4172,0.171 0.36192,0.07 1.42986,-0.345 1.06081,-0.555 0.21573,-0.314 0.85399,-0.06 0.7702,0.266\"},\"21109\":{\"name\":\"Jackson, KY\",\"path\":\"m 738.17408,308.86814 3.3928,0.114 0.43324,0.528 2.30525,3.657 -2.56377,2.619 -3.70302,-1.148 -0.28169,-1.102 -0.49564,-1.197 -0.54021,-0.756 -0.34588,-0.618 -0.0874,-0.587 0.0553,-0.264 1.83101,-1.246\"},\"21065\":{\"name\":\"Estill, KY\",\"path\":\"m 737.52333,302.25414 1.44769,0.16 0.77377,0.758 1.2284,0.827 1.43521,0.1 1.92906,0.482 -2.77058,4.405 -3.3928,-0.114 -0.65075,-6.614\"},\"21129\":{\"name\":\"Lee, KY\",\"path\":\"m 744.59598,304.53814 3.55861,1.356 -0.61866,3.176 -0.7702,-0.266 -0.85399,0.06 -0.21573,0.314 -1.06081,0.555 -1.42986,0.345 -0.36192,-0.07 -0.4172,-0.171 -0.4261,-0.321 -0.43324,-0.528 2.77058,-4.405 0.25852,-0.04\"},\"21025\":{\"name\":\"Breathitt, KY\",\"path\":\"m 748.15459,305.89414 0.6133,0.336 0.55269,-0.304 0.12837,-0.176 0.23177,-0.481 0.0481,-0.296 -0.0214,-0.147 0.0464,-0.217 0.0963,-0.161 0.47602,-0.279 2.6333,0.353 5.90665,3.093 -2.81998,0.32714 -0.0308,2.34686 -1.38351,-0.03 -3.90448,1.927 -2.1127,0.747 -1.07864,-3.863 0.61866,-3.176\"},\"21071\":{\"name\":\"Floyd, KY\",\"path\":\"m 763.67982,301.86114 1.49583,0.617 -0.48316,0.163 -0.30487,0.185 -0.0802,0.119 0.34766,3.311 0.52951,0.523 0.30487,0.716 0.0143,0.505 -0.35301,1.455 -0.84329,2.016 -0.30487,0.41 -0.16938,0.138 -0.34587,-0.154 -0.40293,-0.233 -0.0963,-0.1 -0.32804,-0.963 0.0392,-0.626 -0.0891,-0.754 -0.16581,-0.259 -1.31933,-0.731 -1.79356,-0.265 -1.00376,-5.242 0.58657,0.01 2.08952,-1.075 0.57052,-0.209 0.53842,0.01 1.51188,0.377 0.0553,0.05\"},\"21115\":{\"name\":\"Johnson, KY\",\"path\":\"m 763.66377,298.14214 -0.8576,2.09994 0.8736,1.61906 -0.0276,-0.025 -0.0276,-0.025 -1.51188,-0.377 -0.53842,-0.01 -0.57052,0.209 -2.08952,1.075 -0.58657,-0.01 -1.59745,-3.116 -0.0499,-2.45 0.15333,-0.499 0.0802,-0.161 0.30843,-0.264 0.0695,0 2.17867,0.457 1.87023,0.948 1.06972,0.378 1.25336,0.162\"},\"21153\":{\"name\":\"Magoffin, KY\",\"path\":\"m 756.73019,299.57814 1.59745,3.116 1.00376,5.242 -0.46533,-0.321 -5.90665,-3.093 -0.36905,-0.956 -0.32983,-1.28 2.09843,-3.172 0.0499,-0.05 0.71315,0 0.83438,0.17 0.77377,0.344\"},\"21237\":{\"name\":\"Wolfe, KY\",\"path\":\"m 747.96382,300.69514 0.24782,0.386 0.98949,0.451 1.89519,0.641 1.49405,1.393 0.36905,0.956 -2.6333,-0.353 -0.47602,0.279 -0.0963,0.161 -0.0464,0.217 0.0214,0.147 -0.0481,0.296 -0.23177,0.481 -0.12837,0.176 -0.55269,0.304 -0.6133,-0.336 -3.55861,-1.356 1.04476,-2.685 2.32308,-1.158\"},\"21197\":{\"name\":\"Powell, KY\",\"path\":\"m 739.33295,300.19614 3.56574,-0.16 2.74205,1.817 -1.04476,2.685 -0.25852,0.04 -1.92906,-0.482 -1.43521,-0.1 -1.2284,-0.827 -0.77377,-0.758 0.36193,-2.218\"},\"21049\":{\"name\":\"Clark, KY\",\"path\":\"m 736.76918,296.22814 2.56377,3.968 -0.36193,2.218 -1.44769,-0.16 -4.70143,-0.321 0.41363,-4.147 3.53365,-1.558\"},\"21173\":{\"name\":\"Montgomery, KY\",\"path\":\"m 738.36128,294.22014 0.95562,0.915 0.93066,0.144 0.20146,0.177 1.03763,0.957 1.18918,1.441 0.15332,0.31 0.0695,1.872 -3.56574,0.16 -2.56377,-3.968 1.5921,-2.008\"},\"21165\":{\"name\":\"Menifee, KY\",\"path\":\"m 747.31842,296.36514 1.21592,0.232 -0.57052,4.098 -2.32308,1.158 -2.74205,-1.817 -0.0695,-1.872 4.48927,-1.799\"},\"21175\":{\"name\":\"Morgan, KY\",\"path\":\"m 755.95108,296.22014 0.72919,0.908 0.0499,2.45 -0.77377,-0.344 -0.83438,-0.17 -0.71315,0 -0.0499,0.05 -2.09843,3.172 0.32983,1.28 -1.49405,-1.393 -1.89519,-0.641 -0.98949,-0.451 -0.24782,-0.386 0.57052,-4.098 2.78662,-2.281 1.20902,2.2504 3.4211,-0.3464\"},\"21063\":{\"name\":\"Elliott, KY\",\"path\":\"m 757.14738,292.13114 0.60407,1.85214 -1.80037,2.23686 -3.4211,0.3464 -1.20902,-2.2504 0.0963,-1.807 0.94848,-1.874 0.43502,0.09 1.37281,0.763 0.73098,0.529 1.38173,0.282 0.56338,0 0.29774,-0.158\"},\"21205\":{\"name\":\"Rowan, KY\",\"path\":\"m 749.30454,289.81614 2.1127,2.693 -0.0963,1.807 -2.78662,2.281 -1.21592,-0.232 -2.84546,-2.821 0.93422,-0.763 0.30487,-0.331 0.7702,-1.172 -0.16759,-0.417 0.17829,-1.014 0.64183,-1.197 2.16976,1.166\"},\"21011\":{\"name\":\"Bath, KY\",\"path\":\"m 740.36166,291.52114 0.1355,-0.157 0.0802,0 1.73651,0.09 0.19255,0.105 0.44037,0.337 0.59726,1.148 0.77912,0.919 0.11945,-0.186 0.0303,-0.225 2.84546,2.821 -4.48927,1.799 -0.15332,-0.31 -1.18918,-1.441 -1.03763,-0.957 -0.20146,-0.177 -0.93066,-0.144 -0.95562,-0.915 2.00038,-2.699\"},\"21181\":{\"name\":\"Nicholas, KY\",\"path\":\"m 737.61248,288.54514 2.74918,2.976 -2.00038,2.699 -4.35733,-3.641 1.37459,-2.228 2.23394,0.194\"},\"21069\":{\"name\":\"Fleming, KY\",\"path\":\"m 743.3444,285.78914 3.79038,2.861 -0.64183,1.197 -0.17829,1.014 0.16759,0.417 -0.7702,1.172 -0.30487,0.331 -0.93422,0.763 -0.0303,0.225 -0.11945,0.185 -0.77912,-0.918 -0.59726,-1.148 -0.44037,-0.337 -0.19255,-0.105 -1.73651,-0.09 -0.0802,0 -0.1355,0.157 -2.74918,-2.976 0.72384,-1.332 1.36568,0.665 2.29812,-1.413 1.34428,-0.676\"},\"21201\":{\"name\":\"Robertson, KY\",\"path\":\"m 736.9546,285.01714 1.38172,2.196 -0.72384,1.332 -2.23394,-0.194 -1.62411,-0.39385 0.29944,-1.64415 2.90073,-1.296\"},\"21023\":{\"name\":\"Bracken, KY\",\"path\":\"m 737.99044,280.80814 -1.03584,4.209 -2.90073,1.296 -0.85221,-0.556 -1.14996,-5.607 3.30188,0.939 2.63686,-0.281\"},\"21161\":{\"name\":\"Mason, KY\",\"path\":\"m 742.91473,283.25014 0.42967,2.539 -1.34428,0.676 -2.29812,1.413 -1.36568,-0.665 -1.38172,-2.196 1.03584,-4.209 0.60975,0.08 0.21751,0.08 0.11232,0.09 1.56714,1.622 1.39064,0.69 1.02693,-0.121\"},\"21135\":{\"name\":\"Lewis, KY\",\"path\":\"m 753.53172,279.74714 -1.70442,5.416 -0.80408,2.887 0.19434,0.939 -0.0731,0.168 -0.71671,0.41 -1.12321,0.249 -2.16976,-1.166 -3.79038,-2.861 -0.42967,-2.539 0.0963,-0.811 0.13728,-0.225 0.18542,-0.128 1.39777,-0.612 0.21929,-0.05 0.15154,0.02 0.025,0 0.72028,0.177 1.9148,0.46 0.0481,0.02 0.60083,0.282 0.0428,0.01 1.01802,0.763 0.72337,-0.63486 1.70727,-0.25222 0.30431,-1.21791 1.32464,-1.30901\"},\"21019\":{\"name\":\"Boyd, KY\",\"path\":\"m 762.06401,286.00941 0.14853,1.22791 0.60486,0.69952 0.0405,0.9397 -0.24776,0.7956 -3.35715,0.554 -0.83616,-2.925 2.26424,-3.407 1.38298,2.11527\"},\"21089\":{\"name\":\"Greenup, KY\",\"path\":\"m 757.81418,282.77814 2.86685,1.116 -2.26424,3.407 -1.76148,-0.346 -2.67431,-1.189 -0.73989,-0.257 -1.41381,-0.346 1.70442,-5.416 0,0 0.31914,-0.145 1.48691,-0.673 0.48494,-0.213 0.0214,0 0.0909,0 0.18364,0.08 0.082,0.09 0.0232,0.04 0.0481,0.07 0.0303,0.06 0.009,0.03 0.007,0.03 0.0339,0.137 0.0143,0.163 0,0.02 0.009,0.01 -0.0178,0.278 0.16937,0.724 0.49921,1.502 0.041,0.09 0.11945,0.255 0.14442,0.169 0.0178,0.03 0.3851,0.257 0.0802,0.04\"},\"21043\":{\"name\":\"Carter, KY\",\"path\":\"m 751.8273,285.16314 1.41381,0.346 0.73989,0.257 2.67431,1.189 1.76148,0.346 0.83616,2.925 -2.10557,1.905 -0.29774,0.158 -0.56338,0 -1.38173,-0.282 -0.73098,-0.529 -1.37281,-0.763 -0.43502,-0.09 -0.94848,1.874 -2.1127,-2.693 1.12321,-0.249 0.71671,-0.41 0.0731,-0.168 -0.19434,-0.939 0.80408,-2.887\"},\"21127\":{\"name\":\"Lawrence, KY\",\"path\":\"m 759.25295,290.22614 3.35715,-0.554 -0.44929,1.967 0,0 -0.0189,0.50545 0.80496,0.43682 0,0.02 0.33398,0.62528 0.53578,0.22658 0.90506,1.44203 1.21519,0.44384 0.025,0.03 0.007,0.02 0,0.129 -0.46533,0.804 -1.40085,0.33093 -0.43907,1.48507 -1.25336,-0.162 -1.06972,-0.378 -1.87023,-0.948 -2.17867,-0.457 -0.0695,0 -0.30843,0.264 -0.0802,0.161 -0.15333,0.499 -0.72919,-0.908 1.80037,-2.23686 -0.60407,-1.85214 2.10557,-1.905\"},\"21159\":{\"name\":\"Martin, KY\",\"path\":\"m 767.14013,298.00293 2.09154,2.56421 -1.45094,1.67683 -2.60508,0.23417 -1.49583,-0.617 -0.8736,-1.61906 0.8576,-2.09994 0.43907,-1.48507 1.40085,-0.33093 1.63644,1.67679\"},\"21195\":{\"name\":\"Pike, KY\",\"path\":\"m 765.17565,302.47814 2.60508,-0.23417 1.45094,-1.67683 -0.004,0.01 -0.004,0.01 0.0339,0.113 0.67214,1.035 1.32546,0.77503 0.61789,-0.36623 0.54941,1.04892 1.16569,1.00328 10e-4,0 10e-4,0 10e-4,0 0.001,0 1.17466,0.26062 1.06878,-0.37538 0.47543,0.21776 -5.28086,6.347 -0.6757,0.872 -2.71532,1.531 -0.70601,0.507 -0.20147,0.137 -0.71671,-0.644 -0.5937,-0.376 -0.10697,0 -0.50277,0.41 -0.51525,0.02 -0.81833,-0.714 0.353,-0.369 0.16938,-0.138 0.30487,-0.41 0.84329,-2.016 0.35301,-1.455 -0.0143,-0.505 -0.30487,-0.716 -0.52951,-0.523 -0.34766,-3.311 0.0802,-0.119 0.30487,-0.185 0.48316,-0.163\"},\"21097\":{\"name\":\"Harrison, KY\",\"path\":\"m 734.05387,286.31314 -0.29944,1.64415 1.62411,0.39385 -1.37459,2.228 -4.163,2.58 -2.62617,-4.582 1.29258,-1.324 4.6943,-1.496 0.85221,0.556\"},\"21017\":{\"name\":\"Bourbon, KY\",\"path\":\"m 729.84095,293.15914 4.163,-2.58 4.35733,3.641 -1.5921,2.008 -3.53365,1.558 -0.80745,-0.21577 -0.9998,-0.40813 0.0582,-1.85079 -0.71127,-0.50431 -0.93422,-1.648\"},\"21151\":{\"name\":\"Madison, KY\",\"path\":\"m 732.8219,301.93314 4.70143,0.321 0.65075,6.614 -1.83101,1.246 -2.70818,-0.04 -3.8403,-4.919 1.39777,-1.975 1.62954,-1.246\"},\"21203\":{\"name\":\"Rockcastle, KY\",\"path\":\"m 736.34307,310.11414 -0.0553,0.264 0.0874,0.587 0.34588,0.618 0.54021,0.756 0.49564,1.197 0.28169,1.102 -2.24107,4.211 -4.36446,-3.593 0.57052,-3.742 1.34464,0.28936 0.28668,-1.73036 2.70818,0.04\"},\"21147\":{\"name\":\"McCreary, KY\",\"path\":\"m 735.08972,323.42714 1.13925,0.171 -0.50277,3.646 0.0392,0.323 1.05903,2.282 0.53129,0.651 1.166,1.086 -0.62757,0.07 -9.43495,0.884 1.46374,-3.239 1.15708,-1.822 0.27991,-1.448 3.72977,-2.605\"},\"21137\":{\"name\":\"Lincoln, KY\",\"path\":\"m 727.79243,308.55414 4.21114,2.96 -0.57052,3.742 -1.02806,-0.40033 -2.64465,2.94833 0.0891,-1.448 -0.4582,-1.357 -1.40668,-0.538 -1.08399,-0.724 -0.28169,-0.907 0.0178,-1.881 3.15568,-2.395\"},\"21079\":{\"name\":\"Garrard, KY\",\"path\":\"m 726.25025,304.51314 0.33696,-0.321 0.26565,-0.09 1.31041,0.749 0.0713,0.538 0.57052,0.708 0.27456,0.103 0.0481,-0.03 0.66679,-1.015 3.8403,4.919 -0.28668,1.73036 -1.34464,-0.28936 -4.21114,-2.96 -1.76861,-1.624 0.22643,-2.417\"},\"21113\":{\"name\":\"Jessamine, KY\",\"path\":\"m 726.73875,300.06314 3.38094,0.98093 1.07267,2.13507 -1.39777,1.975 -0.66679,1.015 -0.0481,0.03 -0.27456,-0.103 -0.57052,-0.708 -0.0713,-0.538 -1.31041,-0.749 -0.26565,0.09 -0.33696,0.321 -0.007,-1.084 0.49564,-3.366\"},\"21067\":{\"name\":\"Fayette, KY\",\"path\":\"m 730.77517,294.80714 0.71127,0.50431 -0.0582,1.85079 0.9998,0.40813 0.80745,0.21577 -0.41363,4.147 -1.62954,1.246 -1.07267,-2.13507 -3.38094,-0.98093 0.31557,-2.671 3.72085,-2.585\"},\"21239\":{\"name\":\"Woodford, KY\",\"path\":\"m 725.05216,295.78514 2.00216,1.607 -0.31557,2.671 -0.49564,3.366 -1.8417,-2.307 -1.62241,-3.231 2.27316,-2.106\"},\"21209\":{\"name\":\"Scott, KY\",\"path\":\"m 727.21478,288.57714 2.62617,4.582 0.93422,1.648 -3.72085,2.585 -2.00216,-1.607 -0.70067,-3.574 2.51028,-3.117 0.35301,-0.517\"},\"21073\":{\"name\":\"Franklin, KY\",\"path\":\"m 722.03198,292.37814 2.31951,-0.167 0.70067,3.574 -2.27316,2.106 -0.90623,0.79442 -1.96419,-0.74442 -0.0874,-4.812 2.21076,-0.749\"},\"21005\":{\"name\":\"Anderson, KY\",\"path\":\"m 719.90858,297.93914 1.96419,0.74442 0.90623,-0.79442 1.62241,3.231 -1.42095,0.852 -2.14657,1.406 -0.22286,0.12 -0.13015,-0.01 -0.0571,-0.07 -2.20185,0.112 -0.46533,-1.671 1.00554,-1.631 1.14639,-2.291\"},\"21167\":{\"name\":\"Mercer, KY\",\"path\":\"m 724.40141,301.12214 1.8417,2.307 0.007,1.084 -0.22643,2.417 -4.9332,1.375 -0.66679,-4.885 0.0571,0.07 0.13015,0.01 0.22286,-0.119 2.14657,-1.407 1.42095,-0.852\"},\"21021\":{\"name\":\"Boyle, KY\",\"path\":\"m 726.02382,306.93014 1.76861,1.624 -3.15568,2.395 -3.44985,0.467 -0.0642,-2.002 -0.0321,-1.109 4.9332,-1.375\"},\"21045\":{\"name\":\"Casey, KY\",\"path\":\"m 721.1869,311.41614 3.44985,-0.467 -0.0178,1.881 0.28169,0.907 1.08399,0.724 1.40668,0.538 0.4582,1.357 -0.0891,1.448 -2.92391,3.189 -1.37816,0.36897 -1.37816,-1.66997 -0.4549,-1.46919 -2.07677,-1.14481 1.37459,-2.571 0.49936,-0.0554 -0.23549,-3.03562\"},\"21199\":{\"name\":\"Pulaski, KY\",\"path\":\"m 727.76034,317.80414 2.64465,-2.94833 1.02806,0.40033 4.36446,3.593 -0.70779,4.578 -3.72977,2.605 -1.25336,-0.611 -1.15718,-1.95749 -1.34953,0.73549 -1.25336,-0.611 -1.56598,-0.92679 0.0559,-1.66821 2.92391,-3.189\"},\"21231\":{\"name\":\"Wayne, KY\",\"path\":\"m 731.35995,326.03214 -0.27991,1.448 -1.15708,1.822 -1.46374,3.239 -0.1355,0 -3.35892,0.154 -0.38689,-0.08 -0.20859,-0.112 -0.0874,-0.185 -0.47246,-1.366 -0.0499,-0.218 -0.0143,-0.353 0.0481,-0.304 -0.73276,-1.971 -0.49207,-0.85 3.7779,-3.674 1.25336,0.611 1.34953,-0.73549 1.15718,1.95749 1.25336,0.611\"},\"21207\":{\"name\":\"Russell, KY\",\"path\":\"m 722.08011,319.69214 1.37816,1.66997 1.37816,-0.36897 -0.0559,1.66821 1.56598,0.92679 -3.7779,3.674 -0.89857,0.842 -1.50296,-0.883 -0.66679,-0.28 -0.0963,0.06 0.016,0.114 0.41898,0.561 -0.24426,0.1 -0.15154,-0.03 -0.11945,-0.07 -0.68463,-0.87 0.70959,-0.713 0.2906,-1.706 0.61688,-0.922 1.14103,-2.266 0.68284,-1.503\"},\"21053\":{\"name\":\"Clinton, KY\",\"path\":\"m 719.83905,327.67914 -0.41898,-0.561 -0.016,-0.114 0.0963,-0.06 0.66679,0.28 1.50296,0.883 0.89857,-0.842 0.49207,0.85 0.73276,1.971 -0.0481,0.304 0.0143,0.353 0.0499,0.218 0.47246,1.366 0.0874,0.185 0.20859,0.112 0.38689,0.08 -5.641,0.354 -0.35301,0.06 0.86826,-5.44\"},\"21057\":{\"name\":\"Cumberland, KY\",\"path\":\"m 719.34876,326.08914 -0.70959,0.713 0.68463,0.87 0.11945,0.07 0.15154,0.03 0.24426,-0.1 -0.86826,5.44 -2.54059,0.46 -3.4142,-4.284 2.31417,-3.062 4.01859,-0.144\"},\"21001\":{\"name\":\"Adair, KY\",\"path\":\"m 719.54844,317.07814 2.07677,1.14481 0.4549,1.46919 -0.68284,1.503 -1.14103,2.266 -0.61688,0.922 -0.2906,1.706 -4.01859,0.144 -1.79179,-3.785 2.93104,-2.266 3.07902,-3.104\"},\"21217\":{\"name\":\"Taylor, KY\",\"path\":\"m 713.72202,314.12614 0.0339,-0.06 0.35123,-0.149 1.69016,-0.159 1.70108,0.93996 0.65844,-0.58925 0.89013,-0.56607 0.77429,0.17536 1.10181,0.795 -1.37459,2.571 -3.07902,3.104 -1.68659,-2.396 -1.01802,-1.291 -2.10735,-1.383 -0.0553,-0.202 -0.009,-0.658 2.12875,-0.126\"},\"21155\":{\"name\":\"Marion, KY\",\"path\":\"m 714.19626,307.88014 0.68284,0.931 0.78803,0.731 1.38351,0.348 4.07207,-0.476 0.0642,2.002 0.23549,3.03562 -0.49936,0.0554 -1.10181,-0.795 -0.77429,-0.17536 -0.89013,0.56607 -0.65844,0.58925 -1.70108,-0.93996 -1.69016,0.159 -0.35123,0.149 -0.0339,0.06 -1.2284,-1.94 1.70264,-4.306\"},\"21229\":{\"name\":\"Washington, KY\",\"path\":\"m 720.42383,303.42014 0.66679,4.885 0.0321,1.109 -4.07207,0.476 -1.38351,-0.348 -0.78803,-0.731 -0.68284,-0.931 4.02572,-4.348 2.20185,-0.112\"},\"21215\":{\"name\":\"Spencer, KY\",\"path\":\"m 712.72718,298.32414 6.03501,1.906 -1.00554,1.631 -4.07542,1.23379 -1.7189,-1.03379 -0.38146,-0.41444 1.13026,-2.63756 0.016,-0.685\"},\"21211\":{\"name\":\"Shelby, KY\",\"path\":\"m 714.68655,293.19914 5.13467,-0.07 0.0874,4.812 -1.14639,2.291 -6.03501,-1.906 0.082,-2.54398 -1.21594,-0.53802 0.19968,-0.262 0.16224,-0.109 0.30488,-0.121 0.6757,-0.202 0.6668,0.05 0.47424,-0.208 0.60974,-1.189\"},\"21103\":{\"name\":\"Henry, KY\",\"path\":\"m 716.13424,287.71814 1.63133,-0.449 4.26641,5.109 -2.21076,0.749 -5.13467,0.07 -0.89856,-3.04 2.34625,-2.441\"},\"21187\":{\"name\":\"Owen, KY\",\"path\":\"m 720.07082,285.48614 2.46749,-1.649 0.48138,2.316 2.95065,2.628 0.34409,0.151 0.54734,0.162 -2.51028,3.117 -2.31951,0.167 -4.26641,-5.109 2.30525,-1.783\"},\"21081\":{\"name\":\"Grant, KY\",\"path\":\"m 725.31781,281.58714 1.519,0.06 1.67055,5.609 -1.29258,1.324 -0.35301,0.517 -0.54734,-0.162 -0.34409,-0.151 -2.95065,-2.628 -0.48138,-2.316 2.07348,-1.582 0.70602,-0.668\"},\"21191\":{\"name\":\"Pendleton, KY\",\"path\":\"m 732.0517,280.15014 1.14996,5.607 -4.6943,1.496 -1.67055,-5.609 1.96116,-0.578 3.08436,-1.97 0.16937,1.054\"},\"21037\":{\"name\":\"Campbell, KY\",\"path\":\"m 729.93009,275.89814 1.95224,3.198 -3.08436,1.97 -2.35517,-6.454 3.48729,1.286\"},\"21117\":{\"name\":\"Kenton, KY\",\"path\":\"m 726.4428,274.61214 2.35517,6.454 -1.96116,0.578 -1.519,-0.06 -0.88431,-6.242 2.0093,-0.733\"},\"21015\":{\"name\":\"Boone, KY\",\"path\":\"m 724.4335,275.34514 0.88431,6.242 -0.70602,0.668 -2.53168,-1.537 -0.24247,-1.003 -1.77395,-2.828 0.81833,-1.847 3.55148,0.305\"},\"21077\":{\"name\":\"Gallatin, KY\",\"path\":\"m 722.08011,280.71814 2.53168,1.537 -2.07348,1.582 -2.46749,1.649 -1.88093,-2.138 3.89022,-2.63\"},\"21041\":{\"name\":\"Carroll, KY\",\"path\":\"m 715.26598,285.34914 2.92391,-2.001 1.88093,2.138 -2.30525,1.783 -1.63133,0.449 -3.35179,-3.231 2.48353,0.862\"},\"21223\":{\"name\":\"Trimble, KY\",\"path\":\"m 712.78245,284.48714 3.35179,3.231 -2.34625,2.441 -2.19472,-0.487 -0.0553,-1.449 1.24445,-3.736\"},\"21185\":{\"name\":\"Oldham, KY\",\"path\":\"m 713.78799,290.15914 0.89856,3.04 -0.60974,1.189 -0.47424,0.208 -0.6668,-0.05 -0.6757,0.202 -0.30488,0.121 -0.16224,0.109 -0.19968,0.262 -3.2787,-1.858 3.2787,-3.712 2.19472,0.487\"},\"21111\":{\"name\":\"Jefferson, KY\",\"path\":\"m 708.31457,293.38414 3.2787,1.858 1.21594,0.53802 -0.082,2.54398 -0.016,0.685 -2.17153,1.276 -2.80981,0 -2.75097,1.327 -0.53842,0.399 -0.52951,0.751 -0.2086,-0.17 0.44215,-4.041 1.67233,-2.757 2.4978,-2.41\"},\"21029\":{\"name\":\"Bullitt, KY\",\"path\":\"m 712.71113,299.00914 -1.13026,2.63756 0.38146,0.41444 -1.46196,2.461 0.16938,0.151 -0.025,0.05 -1.02694,1.254 -0.5723,0.411 -0.77911,0.307 -0.30487,-0.02 -4.05068,-3.913 0.52951,-0.751 0.53842,-0.399 2.75097,-1.327 2.80981,0 2.17153,-1.276\"},\"21179\":{\"name\":\"Nelson, KY\",\"path\":\"m 717.75665,301.86114 0.46533,1.671 -4.02572,4.348 -1.70264,4.306 -0.62044,0.754 -0.0695,0.05 -0.91639,-0.321 -0.0499,-0.435 0.0321,-0.715 0.0321,-0.354 0.37797,-0.434 -0.41006,-1.615 -0.16759,-0.118 -1.25336,-0.547 -0.25673,-0.05 -1.23018,-1.728 0.30487,0.02 0.77911,-0.307 0.5723,-0.411 1.02694,-1.254 0.025,-0.05 -0.16938,-0.151 1.46196,-2.461 1.7189,1.03379 4.07542,-1.23379\"},\"21123\":{\"name\":\"Larue, KY\",\"path\":\"m 709.19175,308.40314 0.25673,0.05 1.25336,0.547 0.16759,0.118 0.41006,1.615 -0.37797,0.434 -0.0321,0.354 -0.0321,0.715 0.0499,0.435 0.91639,0.321 0.0695,-0.05 0.62044,-0.754 1.2284,1.94 -2.12875,0.126 -0.85748,0.22862 -0.34774,1.01638 -4.2985,0.05 0.0553,-2.441 1.21414,-1.67 0.75415,-0.949 1.07864,-2.08\"},\"21087\":{\"name\":\"Green, KY\",\"path\":\"m 710.38805,315.49714 0.34774,-1.01638 0.85748,-0.22862 0.009,0.658 0.0553,0.202 2.10735,1.383 1.01802,1.291 1.68659,2.396 -2.93104,2.266 -1.93975,-0.19299 -1.13926,-1.16501 -0.0713,-5.593\"},\"21169\":{\"name\":\"Metcalfe, KY\",\"path\":\"m 710.45937,321.09014 1.13926,1.16501 1.93975,0.19299 1.79179,3.785 -2.31417,3.062 -2.66004,-0.257 -0.60974,-3.776 -0.31379,-1.407 -0.32983,-0.932 -0.16759,-0.644 0.51347,-0.802 1.01089,-0.387\"},\"21171\":{\"name\":\"Monroe, KY\",\"path\":\"m 710.35596,329.03814 2.66004,0.257 3.4142,4.284 -6.42012,0.617 -3.43915,0.21 -0.24069,-2.17 2.78476,-2.94267 1.24096,-0.25533\"},\"21213\":{\"name\":\"Simpson, KY\",\"path\":\"m 694.41354,329.72814 0.6347,1.166 3.37319,0.192 -0.0214,0.722 0.19255,2.91 -2.74918,0.676 -3.66558,0 0.42978,-3.85748 1.80594,-1.80852\"},\"21003\":{\"name\":\"Allen, KY\",\"path\":\"m 702.36692,327.72614 3.96332,4.51 0.24069,2.17 -4.18618,0.177 -3.79217,0.135 -0.19255,-2.91 1.79892,-1.895 0.54556,-0.868 1.04654,-1.212 0.57587,-0.107\"},\"21009\":{\"name\":\"Barren, KY\",\"path\":\"m 709.44848,321.47714 -0.51347,0.802 0.16759,0.644 0.32983,0.932 0.31379,1.407 0.60974,3.776 -1.24096,0.25533 -2.78476,2.94267 -3.96332,-4.51 0.65966,-3.03 0.75911,-0.0886 0.0218,-2.4644 2.8205,-0.0185 2.8205,-0.64748\"},\"21099\":{\"name\":\"Hart, KY\",\"path\":\"m 706.08955,315.54314 4.2985,-0.05 0.0713,5.593 -1.01089,0.387 -2.8205,0.64748 -2.8205,0.0185 0.0709,-1.20909 -2.30487,-2.47891 1.75463,-0.65577 -0.0431,-2.18823 2.80445,-0.07\"},\"21093\":{\"name\":\"Hardin, KY\",\"path\":\"m 703.70229,302.59214 0.2086,0.17 4.05068,3.913 1.23018,1.728 -1.07864,2.08 -0.75415,0.949 -1.21414,1.67 -0.0553,2.441 -2.80445,0.07 -0.28883,-1.134 -1.14995,-1.375 -0.34587,-0.03 -0.31379,0.175 -0.49029,0.194 -1.8631,-0.709 1.74365,-4.966 2.53881,-0.722 0.41897,-1.389 -0.70067,-2.767 0.86826,-0.296\"},\"21163\":{\"name\":\"Meade, KY\",\"path\":\"m 694.01952,302.68014 3.62458,-2.329 -0.0553,0.649 0,0.04 0.007,0.161 0.007,0.105 0.0161,0.04 0.12836,0.449 0.10519,0.161 0.041,0.06 0.0874,0.06 0.81121,0.537 0.78089,0.307 0.12837,0.02 2.59586,0.128 0.53664,-0.177 0.70067,2.767 -0.41897,1.389 -2.53881,0.722 -6.66259,-5.072 0.10519,-0.01\"},\"21091\":{\"name\":\"Hancock, KY\",\"path\":\"m 685.43857,306.21514 2.79732,-1.854 3.19669,3.316 -0.17829,0.171 -0.11232,1.011 1.31219,3.077 -0.30665,-0.117 -3.49443,-1.432 -0.0107,-1.253 -0.7702,-1.07 -1.10182,-1.141 -1.40668,0.02 0.0749,-0.731\"},\"21027\":{\"name\":\"Breckinridge, KY\",\"path\":\"m 691.43258,307.67714 0.13728,0 0.2389,-0.08 0.49921,-0.387 1.17313,-2.674 -0.1355,-1.373 0.0303,-0.251 0.0731,-0.104 0.0963,-0.06 0.36905,-0.07 6.66259,5.072 -1.74365,4.966 -0.19968,0.146 -1.50474,0.827 -1.79892,-0.683 -0.0178,-0.09 -0.21572,-0.223 -0.49029,-0.233 -0.0784,0 -0.41184,0.224 -0.3851,0.442 -0.53843,0.819 -1.04476,-2.152 0.30665,0.117 -1.31219,-3.077 0.11232,-1.011 0.17829,-0.171\"},\"21085\":{\"name\":\"Grayson, KY\",\"path\":\"m 693.19227,313.97114 0.53843,-0.819 0.3851,-0.442 0.41184,-0.224 0.0784,0 0.49029,0.233 0.21572,0.223 0.0178,0.09 1.79892,0.683 1.50474,-0.827 0.19968,-0.146 1.8631,0.709 0.49029,-0.194 0.31379,-0.175 0.34587,0.03 1.14995,1.374 0.28883,1.134 0.0431,2.18823 -1.75463,0.65577 -5.58573,0.914 -0.52352,-1.05418 -2.2328,-0.40582 -1.40278,-3.80486 1.36358,-0.13314\"},\"21061\":{\"name\":\"Edmonson, KY\",\"path\":\"m 695.98781,319.36914 5.58573,-0.914 2.30487,2.47891 -0.0709,1.20909 -0.0218,2.4644 -0.75911,0.0886 -1.43958,-0.30892 -0.49745,-0.61614 -1.19381,0.65369 -2.29978,-1.70163 -1.60815,-3.354\"},\"21227\":{\"name\":\"Warren, KY\",\"path\":\"m 697.59596,322.72314 2.29978,1.70163 1.19381,-0.65369 0.49745,0.61614 1.43958,0.30892 -0.65966,3.03 -0.57587,0.107 -1.04654,1.212 -0.54556,0.868 -1.79892,1.895 0.0214,-0.722 -3.37319,-0.192 -0.6347,-1.166 -1.40669,-2.58 0.62757,-4.01 -0.14011,-0.43259 1.59866,0.0389 0.62612,-0.28523 0.6556,0.59888 1.22127,-0.335\"},\"21031\":{\"name\":\"Butler, KY\",\"path\":\"m 693.23149,317.90914 2.2328,0.40582 0.52352,1.05418 1.60815,3.354 -1.22127,0.335 -0.6556,-0.59888 -0.62612,0.28523 -1.59866,-0.0389 0.14011,0.43259 -0.62757,4.01 -4.99738,-1.132 0.44215,-3.373 1.3425,-2.027 -0.21871,-0.87635 0.64203,-0.22728 0.28927,0.49236 0.44449,0.0973 2.28029,-2.193\"},\"21141\":{\"name\":\"Logan, KY\",\"path\":\"m 688.00947,326.01614 4.99738,1.132 1.40669,2.58 -1.80594,1.80852 -0.42978,3.85748 -5.40745,0.649 -0.7702,-9.651 2.0093,-0.376\"},\"21219\":{\"name\":\"Todd, KY\",\"path\":\"m 682.2294,326.49714 3.77077,-0.105 0.7702,9.651 -0.98771,0.114 -4.02393,0.394 0.47067,-10.054\"},\"21177\":{\"name\":\"Muhlenberg, KY\",\"path\":\"m 684.38489,318.28414 4.06673,4.359 -0.44215,3.373 -2.0093,0.376 -3.77077,0.105 -1.51543,-1.838 0.29595,-0.651 -1.20522,-1.487 -0.21751,-1.285 1.31041,-2.057 3.48729,-0.895\"},\"21183\":{\"name\":\"Ohio, KY\",\"path\":\"m 688.65308,310.38714 3.49443,1.432 1.04476,2.152 -1.36358,0.13314 1.40278,3.80486 -2.28029,2.193 -0.44449,-0.0973 -0.28927,-0.49236 -0.64203,0.22728 0.21871,0.87635 -1.3425,2.027 -4.06673,-4.359 -0.31603,-1.44222 1.10406,-2.00278 1.76683,-1.656 1.88238,-1.20504 -0.88398,-0.85296 0.71493,-0.738\"},\"21059\":{\"name\":\"Daviess, KY\",\"path\":\"m 679.70843,307.48614 0.64361,0.45 2.62617,1.751 1.3425,-2.425 1.11786,-1.047 -0.0749,0.731 1.40668,-0.02 1.10182,1.141 0.7702,1.07 0.0107,1.253 -0.71493,0.738 0.88398,0.85296 -1.88238,1.20504 -1.76683,1.656 -6.91753,-2.209 0.36326,-1.286 1.83423,-1.17285 -0.83898,-1.00312 0.0945,-1.68203\"},\"21149\":{\"name\":\"McLean, KY\",\"path\":\"m 678.25539,312.63014 6.91753,2.209 -1.10406,2.00278 0.31603,1.44222 -3.48729,0.895 -1.00558,-0.8904 -0.80047,-3.1056 -2.33199,-1.59 1.49583,-0.963\"},\"21107\":{\"name\":\"Hopkins, KY\",\"path\":\"m 679.09155,315.18314 0.80047,3.1056 1.00558,0.8904 -1.31041,2.057 0.21751,1.285 1.20522,1.487 -0.29595,0.651 -1.23019,0.69 -2.07526,0.804 -2.97026,-0.765 -2.80623,-4.432 3.20738,-2.501 2.2268,-1.165 2.02534,-2.107\"},\"21047\":{\"name\":\"Christian, KY\",\"path\":\"m 680.71397,324.65914 1.51543,1.838 -0.47067,10.054 -5.56077,0.579 -0.96454,0.111 0.0856,-1.969 -0.12658,-5.689 -1.4156,-0.706 0.66144,-3.489 2.97026,0.765 2.07526,-0.804 1.23019,-0.69\"},\"21221\":{\"name\":\"Trigg, KY\",\"path\":\"m 673.77682,328.87714 1.4156,0.706 0.12658,5.689 -0.0856,1.969 -2.90073,0.339 0.007,-0.708 -2.98809,-0.06 -1.07151,0.06 -0.86647,-1.526 -1.07508,-2.708 4.91716,-2.57 2.52098,-1.198\"},\"21143\":{\"name\":\"Lyon, KY\",\"path\":\"m 665.14773,326.24014 1.69551,-0.898 0.98949,0.03 1.42095,2.362 2.00216,2.339 -4.91716,2.57 -1.72581,-2.523 0.53486,-3.882\"},\"21033\":{\"name\":\"Caldwell, KY\",\"path\":\"m 671.63203,320.95614 2.80623,4.432 -0.66144,3.489 -2.52098,1.198 -2.00216,-2.339 -1.42095,-2.362 -0.98949,-0.03 0.19022,-1.27646 4.76081,-3.78654 -0.16224,0.677\"},\"21233\":{\"name\":\"Webster, KY\",\"path\":\"m 676.75956,313.59314 2.33199,1.59 -2.02534,2.107 -2.2268,1.165 -3.20738,2.501 0.16224,-0.677 -0.83779,-0.18359 0.0102,-0.76177 -1.32868,0.40372 -0.42175,-1.58236 3.26087,-3.967 4.28245,-0.595\"},\"21101\":{\"name\":\"Henderson, KY\",\"path\":\"m 676.95211,306.74714 2.75632,0.739 -0.0945,1.68203 0.83898,1.00312 -1.83423,1.17285 -0.36326,1.286 -1.49583,0.963 -4.28245,0.595 -0.73732,-2.60624 -1.03621,-0.47657 -2.22189,-2.70919 4.07565,-0.323 0.75836,-0.20098 -0.2272,1.49545 1.04917,0.26756 0.67758,-0.94419 -0.81185,-0.98166 0.4322,-1.67638 1.01385,1.15101 1.50266,-0.43681\"},\"21225\":{\"name\":\"Union, KY\",\"path\":\"m 666.87533,310.92614 0.83086,-0.0669 0.66425,0.42616 0.37806,-0.65042 0.4462,-0.29611 -0.84843,-1.37269 0.13542,-0.56999 2.22189,2.70919 1.03621,0.47657 0.73732,2.60624 -3.26087,3.967 -0.66856,0.0754 -0.63001,-1.62052 -0.45656,0.82708 -0.61074,0.32599 -1.43521,-1.487 -0.1462,-0.264 -0.3851,-1.045 -0.0107,-0.02 -0.0945,-0.52 -0.009,-0.03 0.025,-0.161 0.0963,-0.256 0.0232,-0.05 0.1462,-0.248 0.29061,-0.547 0.0143,0 0.83616,-0.608 0.21751,-0.236 0.1355,-0.247 0.0874,-0.234 0.23356,-0.875\"},\"21055\":{\"name\":\"Crittenden, KY\",\"path\":\"m 669.21624,318.15514 0.42175,1.58236 1.32868,-0.40372 -0.0102,0.76177 0.83779,0.18359 -4.76081,3.78654 -0.19022,1.27646 -1.69551,0.898 -0.37753,-2.83809 -3.10085,-2.87591 0.45641,-0.608 0.30666,-0.283 0.016,0 0.0874,-0.06 0.43502,-0.264 0.0392,0 0.1141,-0.03 0.312,-0.09 0.37797,-0.08 2.5085,-0.531 0.18363,-0.04 0.3441,-0.392 0,-0.371 0.61074,-0.32599 0.45656,-0.82708 0.63001,1.62052 0.66856,-0.0754\"},\"21139\":{\"name\":\"Livingston, KY\",\"path\":\"m 661.66935,320.52614 3.10085,2.87591 0.37753,2.83809 -0.53486,3.882 -2.02965,-1.90437 -2.45605,1.31737 -1.54219,-1.146 1.32468,0.141 0.13549,-0.02 0.41898,-0.185 0.21573,-0.595 0.26564,-1.277 -0.51346,-1.141 -0.22464,-0.216 -0.24247,-0.137 -0.76307,-0.916 -0.15511,-0.498 0.0107,-0.153 0,0 0.51525,-2.264 0.0945,-0.227 0.23355,-0.303 0.16224,-0.114 0.12837,-0.1 0.312,-0.143 0.11232,-0.05 1.05368,0.344\"},\"21035\":{\"name\":\"Calloway, KY\",\"path\":\"m 660.56754,335.82514 6.84622,-0.472 0.86647,1.526 1.12363,3.29824 -0.46397,0.85576 -7.97834,0.554 -0.39401,-5.762\"},\"21157\":{\"name\":\"Marshall, KY\",\"path\":\"m 660.12717,329.53514 2.45605,-1.31737 2.02965,1.90437 1.72581,2.523 1.07508,2.708 -6.84622,0.472 -0.32984,-4.434 -0.11053,-1.856\"},\"21083\":{\"name\":\"Graves, KY\",\"path\":\"m 660.2377,331.39114 0.32984,4.434 0.39401,5.762 -0.49742,0.03 -5.48946,0.396 -0.41719,-6.254 -0.29774,-3.999 5.97796,-0.371\"},\"21145\":{\"name\":\"McCracken, KY\",\"path\":\"m 651.68171,325.45414 6.90327,2.935 1.54219,1.146 0.11053,1.856 -5.97796,0.371 -0.0642,-0.176 -2.61191,-6.1 0.0981,-0.03\"},\"21039\":{\"name\":\"Carlisle, KY\",\"path\":\"m 654.25974,331.76214 0.29774,3.999 -5.68201,0.139 -1.05189,-0.554 -0.009,0 0,-0.53 0.009,0 0.50634,-0.289 0.0107,0 0.68819,-2.298 5.16676,-0.618 0.0642,0.176\"},\"21007\":{\"name\":\"Ballard, KY\",\"path\":\"m 651.58365,325.48614 2.61191,6.1 -5.16676,0.618 -0.65075,-0.838 -0.85756,-1.927 4.06316,-3.953\"},\"22103\":{\"name\":\"St. Tammany, LA\",\"path\":\"m 636.69491,477.27614 8.21903,0.548 3.30187,4.548 0.0339,0.03 0.12836,0.13 1.23018,2.5 0.0303,0.426 -0.18363,0.465 -0.0499,0.193 0.016,0.123 0.62936,1.194 0.19255,0.371 0.43145,0.505 0.1462,0.169 0.0499,0.03 0.0713,0.05 0.0481,0.03 0.0374,0 0.91818,-0.06 -1.91124,0.784 -0.12837,-0.08 -1.10359,-0.36 -1.93887,-0.1535 -1.22338,-0.69012 -3.11329,-0.59613 -0.84947,-1.0593 -2.77006,-1.34281 -1.51019,0.65673 -0.70221,-8.41087\"},\"22117\":{\"name\":\"Washington, LA\",\"path\":\"m 644.54488,470.11114 2.1127,-0.144 0.041,0.713 -0.24247,1.214 -0.1979,0.442 -0.12302,0.02 -0.16046,0.02 -0.0463,0.05 -0.25852,1.075 -0.29774,1.469 -0.2389,1.213 -0.21929,1.642 -8.21903,-0.548 -0.009,-0.41 -1.42986,-3.405 -0.61866,-0.515 -0.14441,-2.177 1.7276,-0.105 8.32422,-0.553\"},\"22081\":{\"name\":\"Red River, LA\",\"path\":\"m 572.28873,444.94914 0.83617,0 4.38318,0.16565 0.32716,1.71335 0.23177,0.227 0.47246,0.713 0.37084,1.159 0.009,0.103 -0.10519,1.334 -1.80783,2.139 -0.8112,0.368 -0.7809,0 -0.56873,-0.202 -0.10698,-0.761 -1.75077,-1.293 -0.2086,-0.256 -1.23018,-1.915 -0.74702,-2.466 -1.2908,-0.972 2.77771,-0.07\"},\"22013\":{\"name\":\"Bienville, LA\",\"path\":\"m 583.46733,436.59314 0.0647,3.20461 2.04082,-0.23761 -0.49028,7.085 -2.4051,0.06 -4.84227,0.135 -0.32716,-1.71335 -4.38318,-0.16565 0.96453,-4.042 2.62795,-0.08 1.70442,-1.085 -0.0267,-0.571 -0.67392,-2.403 5.74619,-0.184\"},\"22061\":{\"name\":\"Lincoln, LA\",\"path\":\"m 586.32705,432.46914 1.59032,-0.05 0.82725,0.1 0.62757,0.137 0.87792,0.54552 0.12644,1.18428 2.00156,-0.0658 0.0802,2.009 0.0642,2.006 -3.99363,0.141 0.0481,0.993 -3.00414,0.09 -2.04082,0.23761 -0.0647,-3.20461 0.56931,-3.62374 2.29041,-0.50026\"},\"22049\":{\"name\":\"Jackson, LA\",\"path\":\"m 585.57289,439.56014 3.00414,-0.09 -0.0481,-0.993 3.99363,-0.141 0.0731,1.85 0.11232,0.282 1.97542,1.824 0.0321,0.995 0.11232,3.029 -9.74516,0.33 0.49028,-7.085\"},\"22127\":{\"name\":\"Winn, LA\",\"path\":\"m 585.08261,446.64514 9.74516,-0.33 0.19434,5.029 -0.85935,3.054 -4.99917,0.17 0.025,1.086 -0.0731,0.932 -6.78917,0.248 1.20522,-3.753 0.35301,-1.614 0.0339,-0.281 -0.12837,-1.705 -0.41184,-1.485 -0.70067,-1.294 2.4051,-0.06\"},\"22021\":{\"name\":\"Caldwell, LA\",\"path\":\"m 594.71545,443.28614 5.37714,-0.207 1.14348,2.20101 1.68415,0.57899 0.4261,0.57 0.10519,0.193 0.0481,0.595 -1.0198,0.626 0.4582,1.622 0.26208,0.532 -0.0293,1.1507 -2.17787,-0.0347 -5.97083,0.231 -0.19434,-5.029 -0.11232,-3.029\"},\"22073\":{\"name\":\"Ouachita, LA\",\"path\":\"m 599.07279,432.83314 3.08476,1.56085 0.0566,3.31715 -2.12161,5.368 -5.37714,0.207 -0.0321,-0.995 -1.97542,-1.824 -0.11232,-0.282 -0.0731,-1.85 -0.0642,-2.006 2.96669,-0.1 0.52952,-0.162 0.19968,-0.138 2.52276,-2.467 0.3958,-0.633\"},\"22083\":{\"name\":\"Richland, LA\",\"path\":\"m 611.16421,435.55014 -0.18898,1.027 -0.22821,3.054 -3.00414,0.16 -0.72384,0.425 -1.68125,2.002 -0.87361,2.016 -1.54396,1.625 -1.68415,-0.57899 -1.14348,-2.20101 2.12161,-5.368 0.70602,-0.642 1.34963,-0.959 1.3015,-0.441 1.19095,-0.597 0.18364,-0.199 0.26565,-0.482 0.1765,-0.545 -0.0232,-0.09 0.8023,0.259 0.84329,1.622 2.15371,-0.09\"},\"22041\":{\"name\":\"Franklin, LA\",\"path\":\"m 610.65966,444.30614 0.25174,5.35636 -1.51401,2.10964 -0.47425,-1.31 -0.98058,-0.465 -0.0303,0.192 -0.35122,0.596 -0.71137,0.786 -0.49563,0.362 -0.9271,0.257 -0.28882,-0.37 -0.46533,-0.714 -0.69889,-0.708 -0.49207,-0.314 -0.28169,-0.09 -0.26208,-0.532 -0.4582,-1.622 1.0198,-0.626 -0.0481,-0.595 -0.10519,-0.193 -0.4261,-0.57 1.54396,-1.625 0.87361,-2.016 1.68125,-2.002 0.72384,-0.425 3.00414,-0.16 -0.0874,4.675\"},\"22107\":{\"name\":\"Tensas, LA\",\"path\":\"m 610.65966,444.30614 3.33396,-0.136 0.0963,-0.183 0.33696,-0.241 2.14479,-0.692 0.87539,-0.146 0.11411,0 0.25138,0.208 0.005,0.5 0,0.02 1.96116,2.291 -3.99363,5.828 -2.22502,2.942 -0.19255,0.346 -3.23948,-0.307 -0.73097,-2.965 1.51401,-2.10964 -0.25174,-5.35636\"},\"22065\":{\"name\":\"Madison, LA\",\"path\":\"m 618.02826,435.64414 -0.4368,1.471 0.0339,0.369 0,0.03 0.0553,0.08 0.082,0.128 0.016,0.04 2.14479,2.282 0.1355,3.318 -2.24107,0.278 0,-0.02 -0.005,-0.5 -0.25138,-0.208 -0.11411,0 -0.87539,0.146 -2.14479,0.692 -0.33696,0.241 -0.0963,0.183 -3.33396,0.136 0.0874,-4.675 0.22821,-3.054 7.05303,-0.933\"},\"22035\":{\"name\":\"East Carroll, LA\",\"path\":\"m 616.04927,425.55214 -0.63292,1.021 -0.20146,0.731 0.0321,0.186 1.54218,6.988 0.11411,0.275 0.0214,0.04 0.0606,0.07 0.0214,0.04 0.041,0.03 0.18364,0.161 0.0481,0.04 0.61153,0.191 0.13728,0.313 -7.05303,0.933 0.18898,-1.027 0.54912,-0.524 0.18364,-0.56 0.57765,-2.22 0.29596,-2.547 0.0891,-0.676 0.70067,-2.058 0.59369,-1.34 1.89519,-0.07\"},\"22123\":{\"name\":\"West Carroll, LA\",\"path\":\"m 614.15408,425.62514 -0.59369,1.34 -0.70067,2.058 -0.0891,0.676 -0.29596,2.547 -0.57765,2.22 -0.18364,0.56 -0.54912,0.524 -2.15371,0.09 -0.84329,-1.622 -0.8023,-0.259 0.70602,-1.984 2.69035,-5.52 0.1141,-0.493 3.2787,-0.134\"},\"22067\":{\"name\":\"Morehouse, LA\",\"path\":\"m 610.40114,425.78514 0.47424,-0.03 -0.1141,0.493 -2.69035,5.52 -0.70602,1.984 0.0232,0.09 -0.1765,0.545 -0.26565,0.482 -0.18364,0.199 -1.19095,0.598 -1.3015,0.44 -1.34963,0.959 -0.70602,0.642 -0.0566,-3.31715 -3.08476,-1.56085 0.0874,-0.07 0.14441,-0.314 -0.0571,-1.214 -0.69711,-1.977 0.17473,-2.997 11.67601,-0.475\"},\"22111\":{\"name\":\"Union, LA\",\"path\":\"m 598.72513,426.25914 -0.17473,2.997 0.69711,1.978 0.0571,1.214 -0.14441,0.314 -0.0874,0.07 -0.3958,0.633 -2.52276,2.467 -0.19968,0.138 -0.52952,0.162 -2.96669,0.1 -0.0802,-2.009 -2.00156,0.0658 -0.12644,-1.18428 -0.87792,-0.54552 -0.62757,-0.137 -0.82725,-0.1 -1.59032,0.05 -0.19433,-5.871 12.59241,-0.339\"},\"22027\":{\"name\":\"Claiborne, LA\",\"path\":\"m 581.07115,426.69314 5.06157,-0.1 0.19433,5.871 -2.29041,0.50026 -0.56931,3.62374 -5.74619,0.184 0.0481,-1.133 -0.29061,-1.904 -0.97701,0.04 -0.22642,-6.958 4.79592,-0.13\"},\"22119\":{\"name\":\"Webster, LA\",\"path\":\"m 571.4383,426.95114 4.83693,-0.128 0.22642,6.958 0.97701,-0.04 0.29061,1.904 -0.0481,1.133 0.67392,2.403 0.0267,0.57 -1.70442,1.086 -2.62795,0.08 -1.32646,0.02 -0.16224,-2.015 -0.12658,-6.069 -0.20147,-2.498 -0.54734,-0.57 -0.67392,-1.006 -0.36014,-0.642 0,-0.345 0.15867,-0.837 0.58835,0\"},\"22015\":{\"name\":\"Bossier, LA\",\"path\":\"m 570.84995,426.95814 -0.15867,0.837 0,0.345 0.36014,0.642 0.67392,1.006 0.54734,0.57 0.20147,2.498 0.12658,6.069 0.16224,2.015 1.32646,-0.02 -0.96453,4.042 -0.83617,0 -1.71155,-2.225 -2.15371,-1.148 -2.41757,-7.426 -0.20147,-1.085 -0.82725,-5.722 0.0321,-0.09 0.2086,-0.177 0.18542,0 5.44666,-0.121\"},\"22017\":{\"name\":\"Caddo, LA\",\"path\":\"m 565.21787,427.08014 -0.2086,0.176 -0.0321,0.09 0.82725,5.722 0.20147,1.085 2.41757,7.426 2.15371,1.148 1.71155,2.225 -2.77771,0.07 -0.0178,-0.756 -0.18542,-0.28 -0.44928,-0.483 -0.40293,-0.297 -1.58319,-0.532 -0.33696,-0.07 -0.36727,0.08 -0.28348,0.178 -0.1034,0.09 -0.96632,1.141 -0.0535,0.339 0.0392,0.137 -0.0642,0.2 -0.68284,0.629 -1.04654,0.745 -1.77396,0.03 -0.2496,-11.459 -0.0802,-4.34 -0.0713,-3.189 4.38586,-0.1\"},\"22031\":{\"name\":\"De Soto, LA\",\"path\":\"m 569.51102,445.01514 1.2908,0.972 0.74702,2.466 1.23018,1.914 0.2086,0.257 1.75077,1.293 -1.6231,0.15197 6.9e-4,1.89603 -8.51677,0.227 -2.74027,-3.062 -0.62579,-4.967 1.77396,-0.03 1.04654,-0.745 0.68284,-0.629 0.0642,-0.2 -0.0392,-0.137 0.0535,-0.339 0.96632,-1.141 0.1034,-0.09 0.28348,-0.178 0.36727,-0.08 0.33696,0.07 1.58319,0.531 0.40293,0.298 0.44928,0.483 0.18542,0.28 0.0178,0.756\"},\"22085\":{\"name\":\"Sabine, LA\",\"path\":\"m 564.59921,454.19214 8.51677,-0.227 0.0642,3.006 2.00929,-0.05 0.1462,4.051 1.96828,-0.06 0.12837,4.002 -3.0291,0.09 -0.59517,1.8612 -2.20037,0.3258 -0.22642,0.715 -0.0963,1.255 0.0481,0.04 -0.91461,0.24 -0.20325,-1.189 -0.1355,-0.754 -0.58656,-2.557 -1.8007,-2.612 -2.1127,-2.219 -0.98058,-5.919\"},\"22069\":{\"name\":\"Natchitoches, LA\",\"path\":\"m 577.83524,446.83714 4.84227,-0.135 0.70067,1.294 0.41184,1.485 0.12837,1.705 -0.0339,0.281 -0.35301,1.614 -1.20522,3.753 5.1097,4.234 -5.0063,4.108 -4.99738,-0.257 -0.12837,-4.002 -1.96828,0.06 -0.1462,-4.051 -2.00929,0.05 -0.0642,-3.006 -6.9e-4,-1.89603 1.6231,-0.15197 0.10698,0.761 0.56873,0.202 0.7809,0 0.8112,-0.368 1.80783,-2.139 0.10519,-1.334 -0.009,-0.103 -0.37084,-1.159 -0.47246,-0.713 -0.23177,-0.227\"},\"22043\":{\"name\":\"Grant, LA\",\"path\":\"m 582.32629,456.83414 6.78917,-0.248 0.0731,-0.932 -0.025,-1.086 4.99917,-0.17 0.22464,2.912 0.64184,1.774 0.92531,1.287 0.89321,0.981 0.84865,0.246 -2.08061,0.533 -6.37198,1.808 -0.52238,0.07 -0.59548,-0.209 -0.13371,-0.1 -0.26565,-1.184 -0.29061,-1.453 -5.1097,-4.234\"},\"22059\":{\"name\":\"La Salle, LA\",\"path\":\"m 595.02211,451.34414 5.97083,-0.231 0.53129,13.838 -1.55288,-0.16 -2.27494,-3.193 -0.84865,-0.246 -0.89321,-0.981 -0.92531,-1.287 -0.64184,-1.774 -0.22464,-2.912 0.85935,-3.054\"},\"22025\":{\"name\":\"Catahoula, LA\",\"path\":\"m 600.99294,451.11314 2.17787,0.0347 0.0293,-1.1507 0.28169,0.09 0.49207,0.314 0.69889,0.708 0.46533,0.714 0.28882,0.37 0.9271,-0.257 0.49563,-0.362 0.71137,-0.786 0.35122,-0.596 0.0303,-0.192 0.98058,0.465 0.47425,1.31 0.73097,2.965 -2.69391,0.337 -0.15868,0.145 -0.005,1.54473 -2.09903,0.98627 -0.13015,0.225 0.1314,1.26532 1.94642,2.38225 -0.008,0.60213 -1.47009,-0.0131 -0.76996,-1.57723 -0.56052,0.3076 -0.10519,0.656 0.0891,3.489 0.066,0.21 0.624,0.876 -1.09111,-0.539 -0.40293,-0.1 -0.3441,0.06 -0.22642,0.232 -0.1355,0.353 0.19077,0.465 0.23534,0.284 0.0642,0.153 -0.37797,0.225 -0.93244,-0.06 -0.0891,-0.1 -0.35123,-1.431 0,-0.771 -0.53129,-13.838\"},\"22029\":{\"name\":\"Concordia, LA\",\"path\":\"m 610.12836,454.73714 3.23948,0.307 -0.30844,0.528 -0.0143,0.02 -2.09666,4.212 -0.0481,0.09 -0.0731,0.155 -0.007,0.02 -0.73098,5.992 -0.47424,2.477 -0.47603,3.592 -0.47246,0.69 0.0571,-0.554 -1.3425,-1.086 0.14441,-0.346 0.0963,-0.335 0.52416,-2.662 -0.22642,-0.271 -0.35836,-0.185 -0.0998,0.03 -0.65966,-0.09 -0.93066,-0.248 -0.44394,-0.28 -0.44215,-0.611 -0.624,-0.876 -0.066,-0.21 -0.0891,-3.489 0.10519,-0.656 0.56052,-0.3076 0.76996,1.57723 1.47009,0.0131 0.008,-0.60213 -1.94642,-2.38225 -0.1314,-1.26532 0.13015,-0.225 2.09903,-0.98627 0.005,-1.54473 0.15868,-0.145 2.69391,-0.337\"},\"22009\":{\"name\":\"Avoyelles, LA\",\"path\":\"m 599.97135,464.79114 1.55288,0.16 0,0.771 0.35123,1.431 0.0891,0.1 0.93244,0.06 0.37797,-0.224 -0.0642,-0.154 -0.23534,-0.283 -0.19077,-0.465 0.1355,-0.353 0.22642,-0.232 0.3441,-0.06 0.40293,0.1 1.09111,0.539 0.44215,0.611 0.44394,0.28 0.93066,0.248 0.65966,0.09 0.0998,-0.03 0.35836,0.185 0.22642,0.271 -0.52416,2.662 -0.0963,0.335 -0.14441,0.346 -0.48851,0.611 -1.11251,3.978 -7.83393,0.314 -1.43877,-2.619 1.23909,-0.658 -0.47424,-3.207 -0.16224,-4.388 0.17828,-0.153 0.1355,-0.06 0.082,0.02 1.21949,0.572 1.24622,-0.795\"},\"22079\":{\"name\":\"Rapides, LA\",\"path\":\"m 587.43599,461.06814 0.29061,1.453 0.26565,1.184 0.13371,0.1 0.59548,0.209 0.52238,-0.07 6.37198,-1.808 2.08061,-0.533 2.27494,3.193 -1.24622,0.795 -1.21949,-0.572 -0.082,-0.02 -0.1355,0.06 -0.17828,0.153 0.16224,4.388 0.47424,3.207 -1.23909,0.658 -1.99147,-0.754 -4.19509,2.569 -4.44291,0.296 -0.17651,-2.785 -0.22464,-5.539 -1.02872,-1.462 -0.33874,-0.161 -1.67947,-0.449 5.0063,-4.108\"},\"22115\":{\"name\":\"Vernon, LA\",\"path\":\"m 577.43231,464.91914 4.99738,0.257 1.67947,0.449 0.33874,0.161 1.02872,1.462 0.22464,5.539 0.17651,2.785 -3.04693,0.371 -3.0594,0 -5.66596,0.151 -2.69927,0.403 -0.0731,-7.288 -0.0481,-0.04 0.0963,-1.256 0.22642,-0.714 2.20037,-0.3263 0.59517,-1.8617 3.0291,-0.09\"},\"22039\":{\"name\":\"Evangeline, LA\",\"path\":\"m 590.32068,475.27614 4.19509,-2.569 1.99147,0.754 1.43877,2.619 0.87539,1.824 0.0499,1.253 0.0232,0.885 -0.82012,2.483 -0.82725,0.715 -3.02197,0.112 -0.65788,0.122 -0.20681,0.233 -0.62935,1.043 -2.74741,0.08 0.0339,-0.153 0.12658,-0.13 0.17651,-0.312 0.5723,-1.391 -0.0428,-0.105 -0.26387,-0.241 -0.16937,-4.195 -0.0321,-0.858 -0.0642,-2.171\"},\"22003\":{\"name\":\"Allen, LA\",\"path\":\"m 585.87777,475.57214 4.44291,-0.296 0.0642,2.171 0.0321,0.858 0.16937,4.195 0.26387,0.241 0.0428,0.105 -0.5723,1.391 -0.17651,0.312 -0.12658,0.13 -2.84724,0.09 0.058,0.8177 -1.63229,0.009 -3.15033,0.484 -2.30525,0.399 -0.10519,-4.001 1.64737,-0.07 1.3425,-0.04 -0.0963,-4.629 -0.0981,-1.8 3.04693,-0.371\"},\"22011\":{\"name\":\"Beauregard, LA\",\"path\":\"m 582.83084,475.94314 0.0981,1.8 0.0963,4.629 -1.3425,0.04 -1.64737,0.07 0.10519,4.001 0.016,0.476 -5.04018,0.151 -0.0481,-2.009 -2.00751,0.05 0.0553,2.018 -5.08474,0.136 0.0214,-0.02 0.75772,-0.637 0.0802,-0.2 0.007,-0.119 -0.27991,-1.433 -0.55447,-0.669 -0.0571,-0.06 0,0 0.22464,-0.804 2.8205,-5.311 0.35479,-1.542 2.69927,-0.403 5.66596,-0.152 3.0594,0\"},\"22053\":{\"name\":\"Jefferson Davis, LA\",\"path\":\"m 589.98371,484.83214 0.44929,8.92 -2.20898,1.339 -5.13466,0.146 -0.025,-1.013 2.12161,-0.121 -0.35479,-1.02 -0.48851,-0.593 -2.09843,-2.332 -0.0437,-2.73483 -2.02798,0.0578 -0.016,-0.529 -0.016,-0.476 2.30525,-0.399 3.15033,-0.484 1.63229,-0.009 -0.058,-0.8177 2.84724,-0.09 -0.0339,0.153\"},\"22019\":{\"name\":\"Calcasieu, LA\",\"path\":\"m 580.15654,486.95214 0.016,0.529 2.02798,-0.0578 0.0437,2.73483 2.09843,2.332 0.48851,0.593 0.35479,1.02 -2.12161,0.121 0.025,1.013 -2.62795,0.09 -0.009,-0.339 -11.79725,0.328 -0.0303,0.03 0.0143,-4.441 -0.60796,-3.61 5.08474,-0.136 -0.0553,-2.018 2.00751,-0.05 0.0481,2.009 5.04018,-0.151\"},\"22023\":{\"name\":\"Cameron, LA\",\"path\":\"m 588.22402,495.09114 2.45145,-0.104 0.29774,7.859 0.0303,2.667 -0.72385,-0.183 -1.83814,-0.61 -1.6652,-0.724 -0.91461,-0.394 -1.40668,-0.667 -0.66502,-0.267 -0.0267,0 -2.29633,-0.74 -1.79357,-0.435 -1.00554,-0.128 -0.80229,0 -4.14696,0.322 -1.26227,0.168 -1.9255,0.291 -0.96631,0.149 -1.1553,0.277 -0.0588,0.02 -0.11054,0.04 -0.31556,0.103 -0.64897,0.346 -0.39401,0.266 -0.36906,0.314 -1.32396,-0.94886 -0.73544,-1.76767 1.77216,-1.43502 0.10896,-0.97445 2.29098,-3.193 0.0303,-0.03 11.79725,-0.328 0.009,0.338 2.62795,-0.09 5.13466,-0.146\"},\"22001\":{\"name\":\"Acadia, LA\",\"path\":\"m 589.98371,484.83214 2.74741,-0.08 4.91894,-0.184 1.39598,0.94 0.80408,2.635 0,0.506 -2.69035,3.584 -1.55823,1.778 -0.41006,0.287 -0.38689,0.178 -0.353,0.119 -3.80108,-0.777 -0.21751,-0.06 -0.44929,-8.92\"},\"22097\":{\"name\":\"St. Landry, LA\",\"path\":\"m 605.77994,475.76614 0.29239,0.227 0.75951,1.292 0.70066,1.728 0.0892,0.772 -0.0963,3.125 -0.21751,0.845 0.79516,1.091 0.84508,1.206 -2.65291,0.128 -0.15154,-0.12 -0.99484,-0.354 -1.19096,0.522 -0.57701,0.49011 -2.19797,0.12806 -1.33275,1.80083 0,-0.506 -0.80408,-2.635 -1.39598,-0.94 -4.91894,0.184 0.62935,-1.043 0.20681,-0.233 0.65788,-0.122 3.02197,-0.112 0.82725,-0.715 0.82012,-2.483 -0.0232,-0.885 -0.0499,-1.253 -0.87539,-1.824 7.83393,-0.314\"},\"22077\":{\"name\":\"Pointe Coupee, LA\",\"path\":\"m 606.89245,471.78914 1.83101,0.474 -0.0571,0.554 0.12837,2.539 1.8116,0.2101 0.41628,0.0961 0.007,-1.03305 -0.95813,-0.64306 1.36126,-0.23255 0.76602,1.55317 -0.3637,0.23976 -0.13792,1.14288 -1.13261,0.34736 0.36349,0.88569 2.54209,0.0825 0.77688,-0.65644 0.45235,0.009 0.2325,0.66363 0.61331,1.641 -2.86864,3.856 -4.27532,0.194 -1.0929,0.04 0.21751,-0.845 0.0963,-3.125 -0.0892,-0.772 -0.70066,-1.728 -0.75951,-1.292 -0.29239,-0.227 1.11251,-3.977\"},\"22121\":{\"name\":\"West Baton Rouge, LA\",\"path\":\"m 615.54472,479.66414 0.51347,0.112 0.15332,0.07 3.45521,7.329 -3.36606,0.184 -0.77199,-0.972 -2.18579,-2.373 -0.6668,-0.497 2.86864,-3.856\"},\"22055\":{\"name\":\"Lafayette, LA\",\"path\":\"m 599.85012,488.64714 1.33275,-1.80083 2.19797,-0.12806 0.48608,6.94289 -0.24782,0.902 -2.05743,-0.829 -1.2694,-0.884 -1.65272,-0.546 -1.47978,-0.07 2.69035,-3.584\"},\"22113\":{\"name\":\"Vermilion, LA\",\"path\":\"m 603.6191,494.56314 0.12302,5.279 -1.2801,0.578 -0.40828,0.233 -0.98771,0.676 -0.71671,0.672 -0.0802,0.451 0.36906,0.82 0.45106,0.877 0.36906,0.06 1.91301,0.06 -0.82725,0.749 -0.10697,-0.06 -1.1963,0 -1.03407,0.153 -0.016,0 -1.06259,0.48 -0.76485,0.565 -0.52238,0.144 -0.0463,0 -0.12837,0 -0.35479,0.03 -0.0963,0 -5.02235,-0.658 -1.15708,-0.162 -0.0321,0 -0.0303,-2.667 -0.29774,-7.859 -2.45145,0.104 2.20898,-1.339 0.21751,0.06 3.80108,0.777 0.353,-0.119 0.38689,-0.179 0.41006,-0.287 1.55823,-1.777 1.47978,0.07 1.65272,0.545 1.2694,0.885 2.05743,0.829\"},\"22045\":{\"name\":\"Iberia, LA\",\"path\":\"m 603.37128,504.26014 1.48514,-0.538 0.47602,-0.104 0.6668,0.1 3.15033,1.391 0.0535,0.09 -0.0356,0.151 -1.11252,1.553 -0.23355,0.144 -0.77912,0.241 -0.33696,-0.1 -3.85635,-1.847 -0.30487,-0.33 0.82725,-0.749 m 12.09321,-10.801 2.01919,0.0591 0.89759,0.56891 -0.55448,1.271 -4.30028,0.56 -3.03623,0.387 -1.61528,2.353 -3.16637,2.999 0.002,-2.25958 -1.96889,0.44458 -0.12302,-5.279 0.24782,-0.902 0.87004,-0.02 2.22334,0.42324 0.56507,-1.37924 0.36906,-0.224 0.26743,-0.07 0.56873,-0.02 0.71315,0.154 0.17829,0.06 1.51576,1.18794 1.94835,-0.18194 2.37835,-0.131\"},\"22047\":{\"name\":\"Iberville, LA\",\"path\":\"m 612.67608,483.52014 0.6668,0.497 2.18579,2.373 0.77199,0.972 3.36606,-0.184 2.40152,-0.09 -1.37994,6.026 -2.30703,0.972 -0.89759,-0.56891 -2.01919,-0.0591 -0.0178,-0.303 -0.21572,-0.522 -1.18094,-1.16605 -0.89254,-1.81495 -0.3441,-0.152 -0.37083,-0.07 -0.62757,0.06 -0.40828,-0.03 -0.25852,-0.122 -0.25495,-0.21 -0.7078,-1.179 -0.11232,-0.315 -0.0428,-0.134 0.0428,-0.276 -0.0499,-1.204 -0.0874,-0.449 -0.27278,-0.651 -1.26227,-1.198 4.27532,-0.194\"},\"22007\":{\"name\":\"Assumption, LA\",\"path\":\"m 623.51593,492.88214 1.75078,3.61 -2.18402,4.489 -1.41559,2.106 -0.43324,-1.655 0.0481,-1.479 -0.0161,-0.867 -0.15333,-0.298 -0.2496,-0.258 -0.40828,-0.216 -0.20859,0 -0.87004,-0.169 -0.29596,-0.289 -1.08577,-2.065 -0.16759,-0.433 0.55448,-1.271 2.30703,-0.972 2.82763,-0.233\"},\"22099\":{\"name\":\"St. Martin, LA\",\"path\":\"m 607.30786,483.75514 1.0929,-0.04 1.26227,1.198 0.27278,0.651 0.0874,0.449 0.0499,1.204 -0.0428,0.276 0.0428,0.134 0.11232,0.315 0.7078,1.179 0.25495,0.21 0.25852,0.122 0.40828,0.03 0.62757,-0.06 0.37083,0.07 0.3441,0.152 0.89254,1.81495 1.18094,1.16605 0.21572,0.522 0.0178,0.303 -2.37835,0.131 -1.94835,0.18194 -1.51576,-1.18794 -0.17829,-0.06 -0.71315,-0.154 -0.56873,0.02 -0.26743,0.07 -0.36906,0.224 -0.56506,1.37924 -2.22335,-0.42324 -0.87004,0.02 -0.48608,-6.94289 0.57701,-0.49011 1.19096,-0.522 0.99484,0.354 0.15154,0.12 2.65291,-0.128 -0.84508,-1.206 -0.79516,-1.091 m 6.21865,12.163 4.30028,-0.56 0.16759,0.433 1.08577,2.065 0.29596,0.289 0.87004,0.169 0.20859,0 0.40828,0.216 0.2496,0.258 0.15333,0.298 0.0161,0.867 -0.0481,1.479 -2.35339,-1.069 -2.62109,-0.34398 -0.68078,-1.18302 -0.39676,-1.87852 -1.65533,-1.03948\"},\"22101\":{\"name\":\"St. Mary, LA\",\"path\":\"m 613.52651,495.91814 1.65533,1.03998 0.39676,1.87902 0.68078,1.18252 2.62109,0.34348 2.35339,1.069 0.43324,1.655 -2.60535,1.11817 -1.01031,2.51383 -0.44216,0 -0.84329,-0.161 -3.96154,-0.859 -0.16224,-0.779 -0.11945,-0.651 -0.27278,-0.868 -1.52782,-0.24246 0.0569,-2.03954 -0.23356,-0.161 -2.09487,-0.06 -0.29952,0.04 -2.44253,0.715 3.16637,-2.999 1.61528,-2.353 3.03623,-0.387\"},\"22109\":{\"name\":\"Terrebonne, LA\",\"path\":\"m 623.08269,500.98114 0.87405,-0.39575 1.71084,0.0525 0.0373,-0.84403 0.87405,-0.39575 0.1355,-0.06 0.26565,0.03 0.52406,1.45494 4.40914,3.24806 3.77077,3.873 0.28704,0.303 0.11945,0.34 0.12124,1.074 -0.50455,2.524 -2.43833,-0.12852 -0.1025,-0.67364 0.61908,-0.75003 -1.24336,-0.59992 -1.06633,0.63737 0.64206,0.7426 -8.4e-4,0.58291 -1.40469,0.15827 -0.38433,1.69727 -2.21286,0.67524 -0.85702,0.44867 0.39765,0.60692 3.09243,-0.73489 0.50543,0.43075 -4.06673,0.91 -2.92206,-2.835 -6.08321,-1.393 -0.50099,-0.394 -0.67927,-0.716 0.0303,-0.166 1.10004,-0.603 0.37641,-1.05311 0.975,0.27211 0.19077,-0.217 -0.0767,-0.451 -0.27634,-0.699 -0.12124,-0.264 -0.0802,-0.08 -1.06793,-0.861 1.01031,-2.51383 2.60535,-1.11817 1.41559,-2.106\"},\"22057\":{\"name\":\"Lafourche, LA\",\"path\":\"m 632.16107,496.41214 1.07863,0.704 1.73474,1.847 1.0305,1.327 0.007,0.139 0.18363,0.247 0.24247,0.06 2.22503,-0.115 0.50633,-0.02 0.65788,0.154 0.21038,0.128 0.0553,0.176 0.23177,1.614 0.016,0.232 -0.11767,0.429 -0.50103,0.64173 0.94316,1.84523 1.16423,-0.11696 1.21235,0.531 0.025,2.603 -1.18917,1.462 0.60083,1.173 -0.29596,1.109 -0.21929,0.216 -0.0535,0.06 -1.28545,1.063 -0.066,0.06 -0.0535,0.03 -0.91105,0.488 -2.36943,0.788 -0.11232,0 0,-0.02 -0.0232,-0.12 0.47424,-0.29 0.42433,-0.08 0.22642,-0.04 0.19077,-0.1 0.49207,-0.239 0.0945,-0.06 0.35479,-0.401 -0.025,-0.425 -1.49718,-0.62674 -0.10216,-0.82418 0.41017,-0.69708 -0.64005,-0.859 -0.35657,-0.259 -0.68106,0.107 -0.3851,0.514 -0.36192,1.317 0.50455,-2.524 -0.12124,-1.074 -0.11945,-0.34 -0.28704,-0.303 -3.77077,-3.873 -4.40914,-3.24806 -0.52406,-1.45494 -0.26565,-0.03 -0.1355,0.06 -0.87405,0.39575 -0.0373,0.84403 -1.71084,-0.0525 -0.87405,0.39575 2.18402,-4.489 4.58911,0.111 2.30525,-0.191\"},\"22093\":{\"name\":\"St. James, LA\",\"path\":\"m 629.78272,490.23814 -0.23177,2.669 -0.52952,0.378 0.39224,1.92 0.27456,1.045 0.16759,0.353 -4.58911,-0.111 -1.75078,-3.61 6.26679,-2.644\"},\"22005\":{\"name\":\"Ascension, LA\",\"path\":\"m 624.59992,486.41314 3.61566,3.375 0.4261,0.289 0.0963,0.03 0.0802,-0.04 1.07863,-1.093 -0.1141,1.27 -6.26679,2.644 -2.82763,0.233 1.37994,-6.026 2.53168,-0.676\"},\"22033\":{\"name\":\"East Baton Rouge, LA\",\"path\":\"m 624.97789,477.78314 -1.125,1.674 -1.29258,1.545 0.066,3.178 0.37619,0.941 1.59745,1.292 -2.53168,0.676 -2.40152,0.09 -3.45521,-7.329 0.58657,-1.166 0.20325,-0.152 7.97656,-0.748\"},\"22037\":{\"name\":\"East Feliciana, LA\",\"path\":\"m 620.47792,471.58914 4.60515,-0.259 -0.59547,1.496 0.39401,1.992 0.0963,1.285 0,1.68 -7.97656,0.748 -0.20325,0.152 -0.58657,1.166 -0.15332,-0.07 -0.0464,-0.539 0.0374,-0.754 0.28883,-0.902 0.20325,-0.273 0.79516,-1.365 0.57764,-2.651 0.27992,-1.591 2.28385,-0.112\"},\"22091\":{\"name\":\"St. Helena, LA\",\"path\":\"m 630.17852,471.03314 0.45641,8.028 -6.78204,0.396 1.125,-1.674 0,-1.68 -0.0963,-1.285 -0.39401,-1.992 0.59547,-1.496 5.09545,-0.297\"},\"22063\":{\"name\":\"Livingston, LA\",\"path\":\"m 623.85289,479.45714 6.78204,-0.396 0.21751,3.744 0.48138,1.205 1.54396,2.138 -0.50982,0.19616 -0.29901,0.40166 -0.78697,0.71635 0.27832,0.79858 -0.002,0.35648 -0.20705,0.10891 0.005,0.34661 -0.11892,0.47025 -0.21573,-0.04 -1.12499,-0.533 -1.07863,1.093 -0.0802,0.04 -0.0963,-0.03 -0.4261,-0.288 -3.61566,-3.375 -1.59745,-1.293 -0.37619,-0.941 -0.066,-3.177 1.29258,-1.546\"},\"22095\":{\"name\":\"St. John the Baptist, LA\",\"path\":\"m 634.99839,486.84258 1.50077,0.0189 0.0996,0.85362 -1.12465,0.96393 -0.9197,0.80808 -0.015,2.45505 -1.64559,1.254 -0.85221,0.353 -0.2086,0.338 0.0321,0.425 0.29596,2.1 -2.30525,0.191 -0.16759,-0.353 -0.27456,-1.045 -0.39224,-1.92 0.52952,-0.378 0.34587,-3.939 1.12499,0.533 0.21573,0.04 0.51337,0.39697 2.02231,-0.16572 0.7467,-1.31688 0.067,-0.3495 0.51068,-0.65937 -0.0992,-0.60206\"},\"22089\":{\"name\":\"St. Charles, LA\",\"path\":\"m 632.16107,496.41214 -0.29596,-2.1 -0.0321,-0.425 0.2086,-0.338 0.85221,-0.353 1.64559,-1.254 0.71776,0.21499 1.86195,0.33557 0.0732,0.99144 0.0481,0.796 0.20147,1.142 0.12837,0.377 0.60974,0.941 1.21413,0.724 -0.32983,1.911 -0.11232,0.353 -0.28882,0.891 -2.22503,0.115 -0.24247,-0.06 -0.18363,-0.247 -0.007,-0.139 -1.0305,-1.327 -1.73474,-1.847 -1.07863,-0.704\"},\"22105\":{\"name\":\"Tangipahoa, LA\",\"path\":\"m 630.5547,471.02014 3.93836,-0.251 0.14441,2.177 0.61866,0.515 1.42986,3.405 0.009,0.41 0.70201,8.41119 -0.26155,1.13338 -0.63621,0.0408 -1.50077,-0.0189 -0.54616,-0.53719 -0.54772,-0.112 -0.50186,-0.39968 -0.52487,0.35043 -1.54396,-2.138 -0.48138,-1.205 -0.21751,-3.744 -0.45641,-8.028 0.37618,-0.01\"},\"22071\":{\"name\":\"Orleans, LA\",\"path\":\"m 642.81024,492.21732 2.66803,-2.90674 0.74106,1.31916 0.77087,-0.11182 0.17462,-0.52921 -0.51107,-0.5292 0.20976,-0.74087 1.93887,0.1535 1.10359,0.36 0.12837,0.08 -0.854,1.015 -0.36793,1.08747 -0.76462,0.1315 -0.14004,0.87508 -1.3928,-0.38305 -0.89321,1.068 -2.5624,0.31719 -0.62533,1.02316 1.62514,0.48176 0.67115,1.25689 -1.9772,-0.49 -1.06972,-0.8455 -1.44637,0.2795 0.10387,-2.344 1.74148,-0.67442 z\"},\"22087\":{\"name\":\"St. Bernard, LA\",\"path\":\"m 645.62174,493.10614 0.12123,0.507 0.19255,0.49 0.12837,0.219 0.20146,0.134 0.47822,0.24371 1.05864,-0.24079 -0.0967,0.73098 1.38752,0.7071 0.63649,0.08 0.44928,-0.05 0.47959,-0.218 0.29061,-0.233 0.11232,-0.362 0.22643,-1.455 -0.0267,-0.555 1.48157,-1.647 0.68997,-0.337 0.82725,0.257 0.52238,0.428 -0.4261,0.239 -0.13015,0.13 -0.19077,0.183 0.016,0.387 0.0321,0.28 1.17313,1.278 0.22464,0.17 0.94848,0.488 0.22465,0.123 -1.33181,2.225 -0.77198,1.14 -1.14282,0.433 -0.89144,-0.342 -2.08952,-0.08 -0.33874,0.107 0.082,0.674 0.11232,0.201 0.99662,0.546 0.47603,0.201 0.33518,0.06 0.46889,-0.03 0.9788,0.843 0.0553,0.136 -0.0232,0.09 -0.12123,-0.176 -0.55448,-0.443 -2.1858,-0.524 -1.41381,-1.275 -0.29774,-0.315 -2.94887,-0.786 -0.21751,0.08 -0.12836,-0.02 -0.25139,-0.296 -0.44037,-0.765 -0.27991,-0.587 -0.67115,-1.25689 -1.62514,-0.48176 0.62533,-1.02316 2.5624,-0.31719\"},\"22075\":{\"name\":\"Plaquemines, LA\",\"path\":\"m 642.7531,495.69514 1.9772,0.49 0.27991,0.587 0.44037,0.765 0.25139,0.296 0.12836,0.02 0.21751,-0.08 2.94887,0.786 0.29774,0.316 1.41381,1.274 2.1858,0.525 0.55448,0.442 0.12123,0.176 -0.37084,-0.224 -0.63292,-0.345 -1.72938,-0.08 -0.39401,0.232 -0.6347,0.537 -0.16046,0.554 -0.19968,1.897 0.0143,0.112 0.14619,0.163 0.58657,0.385 3.7262,1.968 0.59547,-0.04 1.55288,-0.07 4.15409,1.198 1.06794,1.326 0.53843,0.746 0.8112,0.467 0.74881,-0.337 0.14263,0.06 0.14619,0.137 0.3441,0.701 0,0.02 -0.0642,0.314 0,0.02 -0.36192,0.829 -0.62579,1.421 -1.82387,1.086 -1.28723,-0.795 -2.77058,0.07 -2.21789,-2.564 -0.0588,-0.06 -0.271,-0.262 -0.0321,-0.03 -0.21929,-0.153 0,0 -0.0856,-0.03 -0.59548,-0.218 -0.43502,-0.16 -2.78662,-1.022 -0.44215,-0.121 -0.0802,-0.02 -0.42611,-0.09 -0.16759,-0.04 -0.0339,0 -0.0874,0 -0.42076,-0.03 -0.59191,-0.05 -1.41429,0.12273 0.28216,-1.14173 0.25495,-0.443 0.0731,-0.16 0,-0.216 -0.025,-0.121 -0.44215,-1.542 -0.0125,-0.07 -0.13193,-0.06 -0.18364,-0.1 -0.25851,0.06 -0.26387,0.113 -0.50455,0.313 -0.31557,0.386 -0.2496,0.354 -0.4582,0.05 -0.19255,-0.129 -0.26386,-0.28 -0.29061,-3.439 -0.10341,-0.435 -0.79694,-1.358 -0.39223,-0.457 -0.64184,-0.861 -0.22107,-0.747 0.37262,-1.542 0.79516,-1.366\"},\"22125\":{\"name\":\"West Feliciana, LA\",\"path\":\"m 609.13887,472.12714 9.0552,-0.426 -0.27992,1.591 -0.57764,2.651 -0.79516,1.365 -0.20325,0.273 -0.28883,0.902 -0.0374,0.754 0.0464,0.539 -0.51347,-0.112 -0.61331,-1.641 -0.2325,-0.66363 -0.45235,-0.009 -0.77688,0.65644 -2.54209,-0.0825 -0.36349,-0.88569 1.13261,-0.34736 0.13792,-1.14263 0.3637,-0.23951 -0.76602,-1.55311 -1.36126,0.23261 0.95813,0.64313 -0.007,1.03311 -0.41628,-0.0958 -1.8116,-0.2111 -0.12837,-2.539 0.47246,-0.69 m -1.75791,-0.95 1.3425,1.086 -1.83101,-0.474 0.48851,-0.612\"},\"22051\":{\"name\":\"Jefferson, LA\",\"path\":\"m 640.34083,492.78514 -0.10387,2.344 1.44637,-0.2795 1.06972,0.8455 -0.79516,1.366 -0.37262,1.542 0.22107,0.747 0.64184,0.861 0.39223,0.457 0.79694,1.358 0.10341,0.435 0.29061,3.439 -0.9895,0.33 -1.21235,-0.531 -1.16423,0.11696 -0.94316,-1.84523 0.50103,-0.64173 0.11767,-0.429 -0.016,-0.232 -0.23177,-1.614 -0.0553,-0.176 -0.21038,-0.128 -0.65788,-0.154 -0.50633,0.02 0.28882,-0.891 0.11232,-0.353 0.32983,-1.911 -1.21413,-0.724 -0.60974,-0.941 -0.12837,-0.377 -0.20147,-1.142 -0.0481,-0.796 -0.0732,-0.99144 2.28198,0.35161 z m 2.13771,18.68 0.0178,0.02 0.55447,-0.107 0.43324,-0.488 1.15708,-0.892 0.16937,0.02 0.0339,0.07 -0.0178,0.06 -0.10341,0.167 -1.26405,0.94 -1.08399,1.127 -0.1872,0.192 -0.005,0 0.29596,-1.109\"},\"25027\":{\"name\":\"Worcester, MA\",\"path\":\"m 924.76925,151.99914 0.0713,0.16 0.7861,0.65186 0.33271,0.88991 1.16985,-0.37536 -0.0598,-0.30677 2.01152,0.3056 0.27445,1.78337 0.74823,0.0913 -0.0188,-0.60805 1.53785,-0.35989 0.25851,0.476 -0.27868,1.05515 0.39814,0.19785 0.0642,1.284 -0.77666,0.41624 0.57698,0.23576 -0.51525,1.013 0.41336,0.2467 0.34567,0.42718 0.66153,-0.4978 0.99993,-0.31732 -0.0379,1.41985 -1.12076,0.56254 -0.26346,0.67535 0.14263,0.3595 0.44928,0.419 0.53129,0.175 0.78261,-0.42845 0.64726,0.65445 0.4885,3.206 -4.90111,1.503 -0.11232,-0.337 -4.28958,1.019 -0.7078,0.147 -0.56161,0.11 -0.73989,-2.949 -1.07685,0.289 -1.17313,-0.248 -0.0784,-0.29 0.007,-0.175 0.42432,-1.086 -0.2665,-1.32957 -1.00789,0.2894 -0.34215,-0.92105 -0.47833,0.15322 -0.29774,-1.182 0.23037,-0.984 -0.32667,-0.984 0.50892,-0.78078 -0.53554,-0.39781 -0.36862,-1.37337 0.26788,-0.41188 0.37234,-0.13335 -0.32397,-1.03855 -0.70693,-0.0637 -0.4603,-1.26454 5.83176,-1.263 0.49208,-0.11\"},\"25017\":{\"name\":\"Middlesex, MA\",\"path\":\"m 935.11702,148.75214 0.63827,1.535 -0.26693,0.3124 1.90539,0.7876 1.62737,-0.59954 0.7887,0.66473 -0.67083,0.18954 0.11786,0.85427 0.60493,-0.0342 0.0619,0.88222 0.3334,0.424 0.33339,0.424 -0.0963,0.618 -0.3851,0.867 0.16221,0.40251 -0.18747,0.35864 -0.45148,0.11863 -0.18292,-0.26678 -0.68997,0.441 0.1576,0.49287 0.162,0.097 -0.238,0.428 0.28894,0.145 -0.2832,0.64413 -0.81121,-0.634 -0.0481,-0.03 -0.41006,-0.04 -0.27991,0.04 -0.89321,0.602 0.21037,0.33 0.39224,0.513 0.22642,0.484 -0.45941,0.25689 0.0636,0.98911 -0.82547,0.738 -1.11072,0.82 -0.64725,-0.65445 -0.78262,0.42845 -0.53129,-0.175 -0.44928,-0.419 -0.14263,-0.3595 0.26346,-0.67535 1.12076,-0.56254 0.0379,-1.41985 -0.99993,0.31732 -0.66153,0.4978 -0.34567,-0.42718 -0.41336,-0.2467 0.51525,-1.012 -0.57698,-0.23626 0.77666,-0.41674 -0.0642,-1.284 -0.39814,-0.19785 0.27868,-1.05515 -0.25851,-0.476 -1.53785,0.35989 0.0188,0.60805 -0.74823,-0.0913 -0.27445,-1.78337 -2.01152,-0.3056 0.0598,0.30677 -1.16985,0.37536 -0.33271,-0.88991 -0.7861,-0.65186 -0.0713,-0.16 4.06494,-0.909 0.2496,-0.06 0.0713,-0.02 5.5465,-1.278 0.41541,-0.988\"},\"25019\":{\"name\":\"Nantucket, MA\",\"path\":\"m 963.10617,175.08522 0.15155,-0.08 0.26743,-0.306 0.19255,-0.36 0.12836,-0.468 -0.0784,-0.465 -0.0909,-0.16 -0.1765,-0.163 -0.16225,-0.128 -0.0945,-0.08 -0.016,-0.09 0.29774,0.06 0.353,0.312 1.52614,1.729 0.0909,0.321 -0.0107,0.241 -0.007,0.05 -0.12124,0.16 -0.39401,0.298 -0.21751,0.1 -1.3639,0.314 -0.36905,0.07 -0.95027,-0.06 -1.61528,-0.321 -0.21573,-0.1 -0.15332,-0.128 -0.0892,-0.186 0.2496,-0.06 0.21751,0.05 0.0963,0.03 0.8433,-0.03 1.1963,-0.312 0.51525,-0.233\"},\"25001\":{\"name\":\"Barnstable, MA\",\"path\":\"m 952.43582,166.16514 0.27482,-0.0425 0.33875,0.241 0.4885,0.272 0.44216,0.12484 1.07863,0.0578 0.64718,-0.04 1.11233,-0.33411 0.68939,0.26544 0.56977,-0.68173 1.1304,-0.72019 0.85935,-0.58 0.69879,-0.39566 0.17294,-0.378 0.27945,-0.16792 -0.20146,-0.666 -0.31379,-0.821 -0.14441,-0.45542 -0.52951,-0.755 -0.27631,-0.0504 -0.15994,0.31779 0.0881,0.93091 -0.42665,-0.98125 -0.51052,-1.72104 -0.43154,-0.50496 -0.26743,-0.185 -0.29774,-0.113 -0.47424,-0.112 -0.11945,0.03 -0.22465,0.127 -0.12301,0.114 -0.0963,0.169 -0.0553,0.28 0.016,0.121 -0.94849,-0.369 -0.0553,-0.07 0.0642,-0.232 0.16937,-0.185 0.28882,-0.16 0.27991,-0.09 0.49564,-0.05 0.79694,0.04 0.62936,0.138 0.47959,0.208 0.55626,0.385 0.52951,0.53 0.66679,0.772 0.5313,0.763 0.82224,1.45525 0.37975,0.756 0.51848,1.54017 0.31735,1.101 0.0571,0.507 -0.17049,0.65017 -0.0392,1.89591 -0.35004,0.159 0.13489,-0.96978 -0.13602,-1.2333 -0.0392,-0.128 -0.082,-0.145 -0.4261,-0.201 -0.19969,-0.05 -0.12123,0.03 -3.36334,1.81463 -0.1649,0.7257 -0.47284,-0.44991 -1.14005,0.25291 -0.10484,0.36167 -1.11144,0.66339 -0.59841,1.52047 -2.16598,0.86578 -0.57454,0.71455 -0.62579,-0.06 0.55048,-1.17365 -0.45983,-2.21502 -0.3656,-0.38681 0.3589,-0.45594 -0.35904,-0.20528 0.0649,-1.17774 1.14827,-1.17775\"},\"25025\":{\"name\":\"Suffolk, MA\",\"path\":\"m 940.59043,154.19214 0.81299,0.322 0.0614,0.54745 0.82912,0.89955 -0.8363,0.13613 -0.11761,0.54798 0.43955,0.56889 -0.58388,0.085 -0.0713,0.89107 -1.03699,1.19229 -1.24065,-0.84432 0.28321,-0.64417 0.222,0.112 0.409,-0.91 -0.021,-0.384 -0.392,0.126 -0.26896,0.48297 -0.16204,-0.0966 -0.15757,-0.49328 0.68997,-0.441 0.18292,0.26678 0.45148,-0.11863 0.18747,-0.35864 -0.16221,-0.40251 0.3851,-0.867 0.0963,-0.618\"},\"25005\":{\"name\":\"Bristol, MA\",\"path\":\"m 937.49715,166.02814 4.29137,-3.792 1.29258,2.819 0.92888,0.19484 0.98305,1.60315 -0.47137,0.82301 -0.40919,0.38793 0.45747,0.17127 0.0483,0.55921 1.66738,-0.61491 0.7089,0.6925 1.79179,2.758 -0.30487,-0.02 -0.76307,0.112 -0.312,0.411 -0.18721,0.242 -0.0303,0.06 0.0553,0.747 0.0784,0.273 0.25852,0.31434 -1.45092,1.24658 -0.88346,0.0403 -0.50487,0.61584 -0.72333,-2.19009 -0.2726,-0.23377 -0.004,-0.44474 -0.2822,-0.71326 -1.04761,-0.10782 0.10191,-0.31941 0.25202,-0.31374 -0.23415,-0.0256 -0.72635,-0.2237 -0.13843,0.20612 -0.75594,-0.68594 -1.12023,-0.26096 -0.17467,-0.015 -0.10331,-0.17553 -0.19594,-0.16113 -0.0893,-0.29768 -0.149,-0.22941 0.0644,-0.29768 -0.10639,-0.14793 0.005,-0.3997 -0.30268,-0.63866 -0.0296,-0.21621 -0.66294,0.32026 -0.54878,-2.06945\"},\"25023\":{\"name\":\"Plymouth, MA\",\"path\":\"m 943.38063,157.78414 0.18957,-0.75345 -0.44529,-0.2471 0.5065,-0.0892 0.70301,0.56078 0.59458,-0.0389 -0.249,0.49338 0.434,0.91951 0.639,-0.71815 0.073,-0.56657 1.15071,0.79669 2.06813,2.298 -0.18871,1.43971 -0.50578,0.60895 1.86838,0.82522 0.84376,-0.21105 0.97757,1.29017 0.28883,0.66 0.10697,1.117 -1.14827,1.17825 -0.0649,1.17824 -1.28549,-0.024 0.23801,0.86814 -0.52692,-0.0327 0.10913,1.24705 -0.96244,-0.0733 0.49485,0.6303 -0.50346,0.49299 -1.79179,-2.758 -0.7089,-0.6925 -1.66738,0.61491 -0.0483,-0.55921 -0.45747,-0.17127 0.40919,-0.38793 0.47137,-0.82301 -0.98305,-1.60315 -0.92888,-0.19484 -1.29258,-2.819 2.17077,-2.19206 -0.57866,-2.25994\"},\"25021\":{\"name\":\"Norfolk, MA\",\"path\":\"m 939.74,156.81922 0.021,0.38363 -0.409,0.90988 -0.222,-0.11155 -0.289,-0.14518 0.238,-0.42786 0.269,-0.48316 z m 2.47094,1.17492 -0.43164,-0.67383 0,-0.002 -0.58399,0.0859 -0.0703,0.89062 -0.70161,0.20344 -0.3355,0.98797 -1.24023,-0.84375 -0.8125,-0.63281 -0.0469,-0.0312 -0.41016,-0.0391 -0.28124,0.0391 -0.89258,0.60351 0.21093,0.32813 0.39258,0.51367 0.22461,0.48437 -0.45877,0.25694 0.0642,0.98916 -0.82617,0.73828 -1.11133,0.82031 0.49023,3.20508 1.91798,-0.55887 0.18945,0.77567 4.29101,-3.79102 2.16992,-2.19336 -0.57812,-2.25977 -0.51953,-0.13281 z m 2.71875,-0.67187 -0.25,0.49414 0.43359,0.91992 0.64063,-0.71875 0.0723,-0.56641 z\"},\"25009\":{\"name\":\"Essex, MA\",\"path\":\"m 941.40342,143.74614 0.11946,0.481 0.61865,1.478 0.96275,1.849 0.99663,0.442 0.71671,-0.0229 0.57555,-1.07428 0.22985,0.10289 0.22614,0.59815 0.42435,-0.14104 0.0963,0.54502 -0.40818,0.35288 -0.19546,1.14959 -0.22719,0.12664 -0.27433,-0.2391 -0.24307,0.37008 -1.70433,0.88681 -0.19732,0.36014 -0.71024,0.28513 0.25072,0.42241 0.5524,0.14568 0.11062,0.50477 -0.25521,0.0856 -0.39435,0.35508 -0.13426,0.44893 -0.4381,0.006 -0.12551,0.24107 0.21808,0.55585 0.48195,0.11827 0.0433,0.101 -0.56679,0.13501 -0.10221,-0.0735 -0.29129,-0.66367 -0.20204,0.34418 -0.15356,0.49107 -0.81299,-0.322 -0.33339,-0.424 -0.3334,-0.424 -0.0619,-0.88222 -0.60493,0.0342 -0.11786,-0.85427 0.67083,-0.18954 -0.7887,-0.66473 -1.62737,0.59954 -1.90539,-0.7876 0.26693,-0.3124 -0.63827,-1.535 0.10698,-0.242 0.9469,-0.0475 -0.39716,-1.05553 0.35774,-0.71899 0.21751,-0.227 1.35227,-0.073 0.22913,-1.27601 1.54932,-1.15 0.007,0 0.13193,-0.06 0.11232,-0.06 0.48851,-0.03 0.59191,0.30101 0.59191,-0.37101\"},\"25013\":{\"name\":\"Hampden, MA\",\"path\":\"m 922.18052,163.79414 -0.42432,1.086 -0.007,0.175 0.0784,0.29 1.17313,0.248 1.07685,-0.289 0.73989,2.949 -6.17942,1.464 -3.97876,0.93278 -0.049,0.89993 -0.82688,0.25166 -0.22757,-0.87968 -3.17788,0.74731 -0.73989,0.168 -0.62757,-1.132 -0.0802,-0.209 -0.19255,-1.022 0.62757,-0.04 -0.0499,-2.547 -0.32092,-1.382 0.59548,-0.901 0.96988,-0.16 0.2193,0.137 0.44928,1.494 -0.34628,0.75066 0.69888,0.355 0.12536,-0.55516 1.01196,-0.24176 0.51046,0.76126 1.64915,-0.02 -0.26577,-0.64904 0.55813,-0.50575 0.21783,-1.16846 0.26939,-0.21152 0.14401,0.61239 -0.23212,0.57657 0.68134,0.32581 2.99701,-1.239 0.35707,0.95095 0.57201,-0.19536 0.33917,-0.84015 1.66457,-0.98344\"},\"25015\":{\"name\":\"Hampshire, MA\",\"path\":\"m 920.08565,161.98614 0.47833,-0.15322 0.34215,0.92105 1.00789,-0.2894 0.2665,1.32957 -1.66457,0.98344 -0.33917,0.84015 -0.57201,0.19536 -0.35707,-0.95095 -2.99701,1.239 -0.68134,-0.32581 0.23212,-0.57657 -0.14401,-0.61239 -0.26939,0.21152 -0.21783,1.16846 -0.55813,0.50575 0.26577,0.64904 -1.64915,0.02 -0.51046,-0.76126 -1.01196,0.24176 -0.12536,0.55516 -0.69888,-0.355 0.34628,-0.75066 -0.44928,-1.494 -0.2193,-0.137 -0.96988,0.161 -0.59548,0.9 -0.0553,0.192 -0.36192,0.02 -0.69888,-0.321 -0.37797,-1.141 0,-0.201 0.93957,-0.02 -0.0713,-2.049 -0.11232,-1.43252 -0.21838,-0.41878 1.67091,-0.0637 0.33944,1.23755 0.73048,-0.0279 1.26005,0.0629 0.18579,0.3201 0.74561,-0.46667 0.35117,1.08141 2.52995,-1.21841 0.83352,-0.26309 0.16753,0.57774 1.80162,-0.784 0.98817,2.4977 0.44348,-1.10335\"},\"25003\":{\"name\":\"Berkshire, MA\",\"path\":\"m 902.26943,156.83614 3.98471,-0.861 0.20346,0.96776 1.07008,-0.10621 -0.44844,0.82447 0.77439,0.2004 0.1843,2.27328 0.21838,0.41878 0.11232,1.43252 0.0713,2.049 -0.93957,0.02 0,0.201 0.37797,1.141 0.69888,0.321 0.36192,-0.02 0.0553,-0.192 0.32092,1.382 0.0499,2.547 -0.62757,0.04 0.19255,1.022 0.0802,0.209 0.62757,1.132 -7.22419,1.528 -0.16046,0.04 -0.3851,-0.779 0.25317,-10.141 0.14798,-5.648\"},\"25011\":{\"name\":\"Franklin, MA\",\"path\":\"m 915.55181,153.99014 2.8936,-0.618 0.4603,1.26454 0.70693,0.0637 0.32397,1.03855 -0.37234,0.13335 -0.26788,0.41188 0.36862,1.37337 0.53554,0.39781 -0.50892,0.78078 0.32667,0.984 -0.23037,0.984 0.29774,1.182 -0.44348,1.10335 -0.98817,-2.4977 -1.80162,0.784 -0.16753,-0.57774 -0.83352,0.26309 -2.52995,1.21841 -0.35117,-1.08141 -0.74561,0.46667 -0.18579,-0.3201 -1.26005,-0.0629 -0.73048,0.0279 -0.33944,-1.23755 -1.67091,0.0637 -0.1843,-2.27328 -0.77439,-0.2004 0.44844,-0.82447 -1.07008,0.10621 -0.20346,-0.96776 1.52792,-0.321 7.76975,-1.664\"},\"25007\":{\"name\":\"Dukes, MA\",\"path\":\"m 956.26186,174.17473 0.21573,0.522 0.23177,0.965 -0.016,0.137 -4.2115,1.18379 -0.58442,0.56721 -0.23818,0.62581 -1.06284,-0.31784 -0.25373,-0.48179 1.05554,-0.25118 0.65075,-2.041 0.17829,-0.298 0.49742,-0.611 0.624,-0.681 0.0981,0 0.0891,0.1955 0.63015,-0.11154 0.45076,0.85295 0.84302,0.32467 0.47592,0.20556 z m -4.13833,-1.1594 -0.72745,0.89939 -0.66451,1.12487 -0.74329,0.24289 -0.40652,0.55782 -0.53132,0.34779 -0.73977,0.32005 -0.19698,-0.0109 0.18741,-0.39674 0.70483,-0.1876 0.39561,-0.56769 1.40352,-1.24952 0.14164,-0.45952 0.55104,-0.68289 0.62579,0.06\"},\"24001\":{\"name\":\"Allegany, MD\",\"path\":\"m 831.01703,243.76514 0.65253,-0.121 0.53665,1.945 -1.83993,3.15 -3.35001,0.184 -2.12161,-0.844 -2.88469,3.971 -1.89697,-0.426 1.3942,-6.108 2.11805,-0.387 7.39178,-1.364\"},\"24023\":{\"name\":\"Garrett, MD\",\"path\":\"m 821.5072,245.51614 -1.3942,6.108 -3.26978,3.945 -0.92423,1.70743 -1.41583,1.54356 -0.5375,0.20301 -1.88806,-11.789 1.46374,-0.264 7.96586,-1.454\"},\"24037\":{\"name\":\"St. Mary's, MD\",\"path\":\"m 871.70212,268.87714 0.8433,2.2 1.4339,1.40218 -0.15665,0.50292 0.65402,1.70821 -0.80261,-0.26266 -0.83763,-0.79593 -1.2306,-0.50672 -0.14218,0.65955 -1.22679,-0.60971 -1.22452,-1.14286 -1.5875,-0.34832 -1.32917,0.28336 -0.24946,0.21953 -0.84591,-0.39455 -0.70424,-0.949 -0.91818,-1.597 0.007,-0.428 0.95561,-2.931 0.15511,-0.138 0.61688,-0.09 0.32983,-0.03 0.7078,0.1 2.48244,1.80729 1.20758,0.26105 0.56191,1.2589 1.29992,-0.18224\"},\"24017\":{\"name\":\"Charles, MD\",\"path\":\"m 858.00968,262.51214 1.06259,1.911 0.27991,-0.603 0.0464,-0.178 0.082,-0.103 0.23177,-0.159 0.56517,-0.266 1.83101,-0.315 2.17688,0.508 0.0695,0.128 0.4368,1.222 0.89143,0.265 0.27278,0 0.19434,0.819 -0.7078,-0.1 -0.32983,0.03 -0.61688,0.09 -0.15511,0.138 -0.95561,2.931 -0.007,0.428 0.91818,1.597 0.0927,0.587 0,0.297 -0.0392,0.179 -1.74794,-0.80329 -0.18513,-0.3654 -0.90675,-0.53621 -1.13362,-2.04799 -0.75511,0.52499 -0.47403,0.65856 -0.48564,0.0877 -0.26735,0.47303 -0.93879,0.90663 -0.18542,-0.04 -0.67392,-0.328 -0.38689,-0.667 -0.48137,-1.494 0.0463,-0.733 0.27457,-0.987 0.72384,-1.304 0.77911,-0.964 -0.87291,-0.80824 0.57715,-0.0254 0.23019,-0.63032 0.52377,-0.31006\"},\"24047\":{\"name\":\"Worcester, MD\",\"path\":\"m 889.6788,261.83314 5.10079,-1.115 0.0892,0.844 0.007,0.602 -0.016,0.822 -0.0713,0.747 -0.47219,5.272 -0.0464,0.323 -0.0571,0.223 -0.0998,0.369 -0.0588,0.265 -0.32504,0.84146 -0.69324,0.23687 0.86508,-1.67277 0.13892,-0.57214 0.0884,-1.09313 0.32304,-2.7908 -0.21511,0.97888 -0.55549,0.4364 -0.12278,-0.74071 -0.56225,0.41383 -0.5035,2.29275 -0.16014,1.04153 -0.48421,0.13751 0.0258,0.67132 -0.32359,-0.0975 0.0199,1.47056 -4.5744,1.55604 -1.07976,-1.44852 2.0746,-1.03348 -0.56338,-2.059 -1.63668,-1.951 4.29672,-1.214 0.53842,-1.189 0.0892,-0.54 -0.38688,-1.083 -0.64897,-0.944\"},\"24045\":{\"name\":\"Wicomico, MD\",\"path\":\"m 882.84863,260.75214 0.24068,0.867 0.19255,0.657 0.20682,0.726 0.54021,-0.09 1.22839,-0.209 0.0642,0 0.52238,-0.1 1.04476,-0.2 0.36727,-0.07 0.895,-0.167 0.066,-0.01 0.24425,-0.05 0.28348,-0.05 0.6757,-0.153 0.25852,-0.06 0.64897,0.944 0.38688,1.083 -0.0892,0.54 -0.53842,1.189 -4.29672,1.214 -1.06795,-0.45541 -0.49247,0.93443 -1.24235,0.0107 -1.40837,1.38032 -1.04654,-0.362 0.0339,-1.725 0.54556,-3.568 0.11232,-0.21 0.37084,-0.209 0.41541,-0.378 0.83795,-1.469\"},\"24043\":{\"name\":\"Washington, MD\",\"path\":\"m 835.87892,242.84914 10.87372,-2.058 -0.25851,1.262 -0.26387,0.713 -0.14441,0.245 -0.62935,0.406 -0.0446,0.25 -0.13906,1.672 -0.041,2.154 -0.32804,3.141 -0.68998,0.08 -0.68168,-0.36058 0.0703,-1.78334 -1.15385,-0.1498 -0.21889,-1.24736 -0.49875,-0.0151 -0.51177,-0.27673 -0.77601,-1.2117 0.77054,-0.32129 -0.0831,-0.60585 -0.63372,0.0891 -0.8573,0.3127 -0.67438,0.0281 -0.83697,0.3127 -0.49145,-0.54096 -0.29596,-0.328 -0.80229,-0.581 -0.64362,-0.241 -0.64896,-0.07 -0.59548,-0.02 -0.10519,0.04 -0.12123,0.137 -0.45642,0.722 -0.62044,1.143 -0.20859,0.03 -0.93244,-0.185 -0.53665,-1.945 4.20936,-0.796\"},\"24009\":{\"name\":\"Calvert, MD\",\"path\":\"m 871.70212,268.87714 -1.29992,0.18224 -0.56191,-1.2589 -1.20758,-0.26105 -2.48244,-1.80729 -0.19434,-0.819 -1.18026,-4.781 0.0874,-0.193 0.48138,-0.417 0.44215,-0.05 0.21024,0.93525 1.6796,-0.0293 0.007,0.305 0.10519,0.481 0.91462,3.111 0.082,0.225 0.27991,0.515 0.33874,0.45 0.79516,0.577 1.48692,1.198 0.0642,0.12 0.0802,0.476 -0.12837,1.045\"},\"24041\":{\"name\":\"Talbot, MD\",\"path\":\"m 876.79578,253.57614 0.16938,0.546 1.09666,1.5975 -1.31061,1.6805 -0.18007,0.722 0.0571,0.08 0.93958,0.789 0.48137,0.111 -0.66277,2.3641 -2.03242,-0.16769 -0.70296,-0.50141 0.0553,-0.103 -0.24782,-0.451 -0.88782,-0.17979 -0.92892,-1.26621 -0.29774,0.03 -0.28689,0.57062 -0.68478,-0.22662 -0.0571,0.04 -0.18364,0.424 0,0.234 0.2817,0.266 0.0303,0.233 -0.27278,0.248 -0.19968,-0.305 -0.20325,-1.519 0.016,-0.499 0.34231,-1.332 0.0374,-0.06 0.46533,-0.554 0.47506,0.47765 0.80139,-0.0113 -0.13399,-0.83612 1.40037,-1.03911 -0.0938,-1.41264 2.71773,0.0385\"},\"24011\":{\"name\":\"Caroline, MD\",\"path\":\"m 876.79578,253.57614 0.94817,-4.58569 1.44623,-1.26531 3.19133,11.362 -4.33237,0.02 -0.48137,-0.111 -0.93958,-0.789 -0.0571,-0.08 0.18007,-0.722 1.31061,-1.6805 -1.09666,-1.5975 -0.16938,-0.546\"},\"24029\":{\"name\":\"Kent, MD\",\"path\":\"m 873.67041,243.47614 4.05068,-0.973 0.50634,1.799 0.32091,1.133 -2.29812,0.393 -1.46373,0.412 -0.58657,0.256 -0.68284,0.867 0.48424,1.10718 -1.68232,1.89882 -0.74524,0.354 0.32581,1.61399 -0.67502,-0.0609 -0.19813,-1.57309 -1.04477,-1.068 -0.025,-0.467 0.0642,-0.369 0.73989,-3.441 0.20146,-0.344 0.8433,-1.134 1.86488,-0.408\"},\"24510\":{\"name\":\"Baltimore City, MD\",\"path\":\"m 865.28914,248.90114 -0.31114,0.5888 -1.31127,-0.7028 -1.82577,-0.53433 -0.43934,-2.09467 3.10067,-0.6458 0.7868,3.3888\"},\"24033\":{\"name\":\"Prince George's, MD\",\"path\":\"m 859.48768,252.14614 0.95562,0.48 3.02196,2.203 0.65967,1.471 0.65074,3.832 1.18026,4.781 -0.27278,0 -0.89143,-0.265 -0.4368,-1.222 -0.0695,-0.128 -2.17688,-0.508 -1.83101,0.315 -0.56517,0.266 -0.23177,0.159 -0.082,0.103 -0.0464,0.178 -0.27991,0.603 -1.06259,-1.911 0.43324,-2.004 -0.009,-0.102 1.82515,-2.88049 -2.00166,-1.20251 1.23018,-4.177\"},\"24003\":{\"name\":\"Anne Arundel, MD\",\"path\":\"m 867.45897,250.93514 0.38186,0.70176 -0.16844,0.66213 0.83134,0.55611 0.11946,0.25 -1.21162,1.10191 0.57157,0.69209 -0.44394,1.42 -0.19403,0.86913 0.452,0.18031 -0.90872,1.86556 0.15511,0.51 0.11767,0.202 0.51525,0.424 -1.6796,0.0292 -0.21024,-0.93525 -0.44215,0.05 -0.48138,0.417 -0.0874,0.193 -0.65074,-3.832 -0.65967,-1.471 -3.02196,-2.203 1.95224,-3.02 1.27119,-0.819 1.31123,0.71087 1.66205,0.61392 z\"},\"24027\":{\"name\":\"Howard, MD\",\"path\":\"m 858.57307,247.16314 3.82247,2.443 -1.95224,3.02 -0.95562,-0.48 -0.28882,0.216 -0.75594,0.04 -0.20146,-0.06 -3.68698,-2.509 -0.84508,-0.866 -0.35301,-0.46 -0.016,-0.05 0.0321,-0.123 0.21929,-0.239 0.0143,-0.02 4.96708,-0.909\"},\"24031\":{\"name\":\"Montgomery, MD\",\"path\":\"m 853.59173,248.08814 -0.21929,0.239 -0.0321,0.123 0.016,0.05 0.35301,0.46 0.84508,0.866 3.68698,2.509 0.20146,0.06 0.75594,-0.04 0.28882,-0.216 -1.23018,4.177 -0.91461,-0.474 -0.98236,1.599 -0.63731,-0.49051 -0.84824,0.0808 -0.2418,-0.0599 -0.38243,0.002 -0.4,-0.31474 -0.0221,-0.69265 -0.64609,-0.20048 -1.00644,-0.4202 -0.83616,0.09 -0.86113,0.04 -0.63292,-0.04 -0.0339,-0.01 -1.13926,-0.765 -0.11232,-0.08 -0.0107,0 -0.10162,-0.136 -0.12302,-0.392 -0.005,-0.02 0.0214,-0.208 0.0428,-0.289 0.007,-0.105 0.0731,-0.193 0.55727,-0.23701 0.14874,-0.87899 4.42152,-4.042\"},\"24035\":{\"name\":\"Queen Anne's, MD\",\"path\":\"m 876.79578,253.57614 -2.71773,-0.0385 0.0938,1.41264 -1.40037,1.03911 -0.29838,-1.24102 -0.20871,-0.39888 -0.52103,-0.3345 -0.28818,0.56823 -0.35456,-0.12348 -0.381,0.25246 0.12437,0.45141 -0.75201,0.10792 0.25819,0.9762 -0.58157,0.77925 -0.0128,-0.82962 -0.41244,-1.53758 0.70223,-2.46281 0.60781,1.1183 1.41857,-0.20516 0.48991,-0.93817 -0.35883,-0.69591 0.17316,-0.50069 -0.0573,-0.60617 1.68232,-1.89882 -0.48424,-1.10718 0.68284,-0.867 0.58657,-0.256 1.46373,-0.412 2.29812,-0.393 0.64184,2.29 -1.44623,1.26531 -0.94817,4.58569\"},\"24015\":{\"name\":\"Cecil, MD\",\"path\":\"m 869.69283,236.05814 5.9637,-1.277 0.18747,0.70087 0.0184,0.11922 0.0231,0.11514 0.027,0.11188 0.0301,0.10941 0.0326,0.10778 0.0342,0.10694 0.0352,0.10692 0.0354,0.10771 1.64099,6.13617 -4.05068,0.973 -0.0759,-0.27165 -0.5536,-0.0139 0.0307,-0.39581 0.64774,-0.95976 -0.55698,-0.20891 0.34095,-1.89581 -0.24733,-0.55154 -1.66982,0.70536 -3.57287,-3.463 1.67946,-0.363\"},\"24025\":{\"name\":\"Harford, MD\",\"path\":\"m 867.90104,236.44414 0.11233,-0.02 3.57287,3.463 -0.44395,1.24221 0.96369,0.43347 0.19166,0.43632 -1.72047,2.024 -0.67571,0.799 -0.63373,0.90994 0.0349,0.46637 -0.32327,-0.098 -0.27596,-0.79734 -0.4172,-0.3 -0.0874,-0.206 -1.57605,-1.874 -1.0519,-0.795 -1.03763,-0.314 -0.36014,0.07 -0.46711,-0.369 -0.72206,-1.079 -0.16937,-0.401 -0.57944,-2.403 5.66596,-1.188\"},\"24005\":{\"name\":\"Baltimore County, MD\",\"path\":\"m 858.49284,238.41114 3.74224,-0.779 0.57944,2.403 0.16937,0.401 0.72206,1.079 0.46711,0.369 0.36014,-0.07 1.03763,0.314 1.0519,0.795 1.57605,1.874 0.0874,0.206 -0.0874,0 -0.29774,0.138 0.412,1.09839 -0.82919,0.29161 -0.17472,1.004 0.30309,0.153 0.0998,-0.03 -0.0196,0.169 -0.0553,0.187 -0.47603,0.802 -0.24782,0.298 -1.08398,-0.105 -0.50634,-0.1 -0.0339,0 -0.7868,-3.3898 -3.10067,0.6458 0.43934,2.09567 1.82577,0.53433 -1.27119,0.819 -3.82247,-2.443 -0.68284,-2.394 0.27991,-1.817 0.3227,-4.541\"},\"24013\":{\"name\":\"Carroll, MD\",\"path\":\"m 858.49284,238.41114 -0.3227,4.541 -0.27991,1.817 0.68284,2.394 -4.96708,0.909 0.36193,-2.637 0.0642,-0.706 -0.0161,-0.05 -2.1537,-1.574 -1.97825,-0.43134 0.52164,-0.88966 0.68997,-1.856 3.73868,-0.756 3.65845,-0.763\"},\"24021\":{\"name\":\"Frederick, MD\",\"path\":\"m 846.92023,240.75714 4.17548,-0.827 -0.68997,1.856 -0.52164,0.88966 1.97825,0.43134 2.1537,1.574 0.0161,0.05 -0.0642,0.706 -0.36193,2.637 -0.0143,0.02 -4.42152,4.042 -1.58224,-0.53266 -0.66202,-0.83411 -0.95554,0.24477 -1.0666,-0.374 0.32804,-3.141 0.041,-2.154 0.13906,-1.672 0.0446,-0.25 0.62935,-0.406 0.14441,-0.245 0.26387,-0.713 0.25851,-1.262 0.16759,-0.03\"},\"24039\":{\"name\":\"Somerset, MD\",\"path\":\"m 893.73047,271.13477 -0.69531,0.23632 -0.3868,1.04312 -0.43814,1.05375 -0.75918,1.43506 0.81124,-0.0207 -0.005,0.17592 -0.74013,0.18202 1.02673,0.34145 0.62795,-2.57746 z m -2.66211,4.19726 -0.3142,-0.19362 -2.5e-4,-0.54661 0.20507,-1.46485 -0.0488,-0.38867 0.63476,-0.43945 0.0254,-0.45313 -4.57422,1.55664 0,0.002 -0.58984,1.15039 -0.8613,0.46617 -0.16994,0.53528 1.2191,-0.11919 -0.0843,0.93219 -0.0137,0.2793 -0.30273,0.90429 -0.084,0.16602 -0.28907,0.38672 -0.63101,-0.35388 -0.64751,0.63081 0.31496,0.26218 0.27936,-0.286 0.31021,0.2978 -0.45999,0.6776 -1.19727,3.56836 -0.16406,0.57227 -0.10938,0.88281 0.0215,0.1211 0.10351,0.19336 1.73829,-0.51758 1.01367,0.41015 0.0957,0.9336 -0.0606,0.24023 -0.0371,0.18945 0.0938,0.21094 0.2246,-0.2207 0.22266,-0.35938 0.91406,-0.18945 0.0137,-0.23437 -0.68555,-0.16407 0.32226,-1.1289 0.3086,0.19726 0.043,0.33203 0.21484,0.14649 -0.16211,0.31054 0.20508,0.15626 0.13281,-0.38086 0.13867,0.0547 0.0391,0.54883 0.48242,0.37891 -0.0742,-0.19922 0.50781,-0.49024 0.24024,-1.62109 -0.28711,-3.00977 0.0625,-0.4414 0.53125,-2.42969 0.32031,-0.84765 0.24805,-0.51563 0.0664,-0.10352 0.0723,-0.11132 0.0723,-0.11524 0.11133,-0.13672 0.0566,-0.0605 0.0469,-0.0606 0.14648,-0.10156 z m -3.20898,9.80274 0.0254,0.006 -0.0254,-0.01 z m -7.2168,-9.56641 -0.93164,0.19531 0.0527,0.15039 0.11133,0.50196 0.31836,0.31836 0.48437,-0.13672 0.0469,-0.44141 -0.0312,-0.43164 z\"},\"24019\":{\"name\":\"Dorchester, MD\",\"path\":\"m 878.04914,259.10314 2.14543,-1.15138 2.18694,1.13138 0.46712,1.665 -0.83795,1.469 -0.41541,0.378 -0.37084,0.209 -0.11232,0.21 -0.54556,3.568 -0.0339,1.725 -0.55665,0.51139 -0.69553,-0.47338 -0.72809,-0.82745 0.61962,-0.29145 0.38276,-0.37468 -0.52542,-0.81436 -0.6076,-0.0449 -0.002,0.88866 -0.50616,0.82823 0.51154,0.60497 0.14286,1.16756 -0.69999,-0.30782 -0.56552,-0.0147 -0.15844,-0.73527 -1.08582,0.0902 -0.1341,0.53031 1.03857,0.44846 -0.32555,0.41442 -0.87687,-0.55668 -0.29665,-0.41972 -0.4609,-0.33687 -0.62418,-0.21192 -0.0802,-0.06 -0.2496,-0.449 0.47573,-0.55737 -0.82018,-0.119 -0.74845,-1.46963 -0.99104,-1.12083 1.19773,-0.61794 0.13313,-0.58813 -1.05432,-0.73913 0.29196,-0.86197 0.0998,-0.169 0.3958,-0.337 0.16046,-0.09 1.46195,-0.41 0.70296,0.50141 2.03242,0.16769 0.66277,-2.3641 m 0.28883,13.138 -0.0392,-0.03 -0.016,0.01 -0.15333,-0.266 -0.12837,-0.451 -0.12836,-0.958 0.2496,-0.304 0.39401,-0.09 0.5937,0.484 0.0339,0.137 0.10341,0.339 -0.0963,0.456 -0.22464,0.467 -0.58834,0.207\"},\"23003\":{\"name\":\"Aroostook, ME\",\"path\":\"m 950.81341,56.776143 -1.19096,-3.873 -13.73879,3.937 -4.6212,1.301 -0.34588,-2.715 -0.009,-0.07 0.0178,-0.06 0.41719,-1.238 1.17134,-3.439 2.26781,-6.589 3.05406,-8.84 1.24444,-0.103 1.47979,-0.03 0.22464,0.06 0.27099,0.369 0.0571,0.1 -0.11233,0.152 -0.016,0.03 -0.0321,0.536 0.80407,2.589 0.23356,0.209 0.12836,0.06 2.40331,0.786 0.61688,-0.537 1.67233,-1.592 1.84705,-1.679 2.84546,-2.484 0.39402,-0.224 0.74702,-0.234 0.69888,-0.06 0.2817,0.06 1.28545,0.433 3.74402,1.599 3.36784,2.122 0.0481,0.112 5.35931,17.125 3.1432,10.157 -0.25139,0.376 -0.016,0.217 0.50633,2.275 0.27278,0.225 -3.46055,2.033 -2.96669,1.711 -0.007,0.08 0.0392,0.12 -1.09469,0.62 -1.15708,0.642 -0.36014,-0.06 -1.08398,-3.682 -0.25852,-1.084 -0.49742,-1.767 -0.48316,-1.528 -2.997,-9.568 -4.04177,0.882 -1.90232,0.546\"},\"23021\":{\"name\":\"Piscataquis, ME\",\"path\":\"m 950.81341,56.776143 0.89857,3.214 1.60636,5.481 2.0093,6.992 -1.9362,1.1 0.89144,3.327 1.56001,-0.813 3.12358,5.955 -1.58938,0.789901 0.97073,1.733099 -4.35377,2.275 -2.99879,1.519 -2.20897,1.807 -1.54219,0.772 -1.09289,-1.824 -4.73352,-9.24 0.22142,-2.317125 -2.47627,-1.581668 1.11504,-1.068623 1.20399,-2.723584 -1.33359,-2.427 -1.07685,-1.221 -2.23394,-7.658 -0.95383,-4.027 13.73879,-3.937 1.19096,3.873\"},\"23013\":{\"name\":\"Knox, ME\",\"path\":\"m 956.87891,103.75195 -1.11719,1.53907 -0.71484,-0.47852 -0.14258,0.38281 -0.41016,0.21094 -0.16211,0.29492 0.35156,1.13281 0.49219,0.7168 0.5293,0.23242 0.5625,-0.0391 0.52148,-0.24219 1.03125,1.53516 0.72266,1.65625 -0.67383,1.07617 -0.10742,1.32617 1.54297,-0.27343 0.63086,0.47461 0.81445,-0.66407 -0.18164,-0.61328 1.56055,-2.23437 0.0312,-0.4336 0.33984,-0.33789 -0.16602,-0.48633 -0.78515,0.40625 -0.0996,-0.58593 0.041,-0.44141 -0.20117,-0.6875 0.28321,-0.27344 -0.22657,-1.25781 -0.81054,-0.42578 z m 8.16992,1.90039 -0.32813,0.17774 -0.88086,1.09375 -0.16992,0.47265 -0.0332,0.43555 0.041,0.0605 0.47657,-0.0527 0.87304,1.50586 0.29688,0.0899 0.17578,-0.041 0.66016,-0.35937 0.15234,-0.13672 0.22461,-0.5 0,0.006 0.0684,-0.1211 0.0664,-0.30468 -0.0859,-0.1836 -0.57422,-0.93164 -0.4082,-0.10742 -0.12305,-0.20117 0.65039,-0.30469 -0.95313,-0.49609 z m 3.92773,0.60157 -0.61133,0.83984 0.35718,0.65895 0.0725,0.77269 0.43164,-0.32031 0.35547,0.13672 0.0215,-1.58008 z m -2.88867,6.34375 -0.11719,0.2832 0.42969,0.87305 0.26758,-0.33985 -0.25586,-0.21484 -0.0937,-0.47266 z\"},\"23015\":{\"name\":\"Lincoln, ME\",\"path\":\"m 950.57094,110.84714 1.72047,-0.08 -0.80407,-2.291 -0.0892,-1.23 1.73652,-0.05 0.1355,-0.129 0.16224,-0.426 -0.16224,-1.439 1.6331,-0.121 -0.41006,0.211 -0.16224,0.295 0.35301,1.133 0.49207,0.716 0.52952,0.234 0.5616,-0.04 0.52238,-0.243 1.0305,1.537 0.72206,1.655 -0.67392,1.077 -0.10698,1.326 -0.41719,-0.05 -0.32091,-0.04 -0.24782,0.321 -0.0695,0.08 -0.0125,0.54 0.11232,0.892 -0.27991,1.654 -0.13729,0.193 -2.12161,0.948 -0.50634,0.161 -0.37796,0 -2.81159,-6.839\"},\"23023\":{\"name\":\"Sagadahoc, ME\",\"path\":\"m 950.57094,110.84714 2.81159,6.839 -0.14791,1.59745 -1.21071,1.22763 -1.11882,-1.11213 -0.47856,-1.64695 -0.10572,-2.09034 -0.28971,-0.19252 -0.43182,0.75486 -0.3548,0.449 -0.93065,0 -0.74168,-0.435 -0.36014,-0.513 -0.47246,-3.431 1.72192,-0.013 0.0449,-0.49499 0.0392,-0.545 0.0321,-0.161 0.14441,-0.265 0.11946,-0.152 1.55822,-0.09 0.12302,0.153 0.0481,0.127\"},\"23005\":{\"name\":\"Cumberland, ME\",\"path\":\"m 939.76497,116.44114 -0.0107,0.05 0.0481,0.07 0.59547,0.24 0.90927,0.147 0.8192,0.14257 0.39288,-1.468 3.81739,1.99043 0.43324,-0.594 0.44215,-1.302 0.36014,0.514 0.74168,0.435 0.93065,0 0.3548,-0.449 0.43182,-0.75511 0.28971,0.19227 0.10572,2.08984 0.47856,1.64795 -0.84516,0.63755 -0.45849,0.84628 -0.68293,0.40505 0.30704,-1.75833 -0.41006,-1.182 -0.15511,-0.11 -0.14442,0.05 -1.25033,2.11105 -0.63291,1.101 -0.43502,1.792 0,0.153 0.32091,0.337 1.41654,1.66973 -0.83097,0.68863 -1.77588,0.85045 -1.20952,-0.31736 -1.68415,-0.51597 0.32805,-0.94 -1.9255,-1.228 -0.6397,0.76644 -0.96911,-0.0822 -0.36153,-1.74736 -1.61488,0.24658 -0.7782,-0.19674 -0.0374,-3.95276 -1.1267,-0.9058 -1.41091,-0.26633 -0.27405,-0.85843 0.79175,0.20737 1.40756,-2.01898 1.00493,-0.76371 0.88649,0.61002 -0.25036,1.29686 0.26387,0.417 0.43502,0.403 0.11232,0.06 0.62757,0.1 0.86113,-0.859\"},\"23031\":{\"name\":\"York, ME\",\"path\":\"m 936.47371,122.9809 0.7782,0.19674 1.61488,-0.24658 0.36153,1.74736 0.96911,0.0822 0.6397,-0.76644 1.9255,1.228 -0.32805,0.94 1.68415,0.51597 1.20952,0.31736 -0.0713,1.599 0.59642,0.8564 -0.88564,2.49113 -1.00995,0.32088 -0.52266,2.43802 0.68934,0.51665 -0.95822,3.63875 -0.55937,-0.32519 -0.0802,0.16 -0.42789,0.37 -2.2482,-0.901 -0.624,-2.507 -0.0499,-0.06 -1.94333,-1.159 -0.80586,-0.401 -0.29595,-0.153 -0.46712,-0.649 -0.15154,-0.323 -0.12302,-0.513 -0.27991,-3.135 -2.02534,-5.279 1.52592,0.11483 1.86324,-1.12007\"},\"23001\":{\"name\":\"Androscoggin, ME\",\"path\":\"m 940.9684,105.89914 1.5511,-1.118 1.07685,2.129 -0.5464,0.10083 1.15416,1.35542 0.90947,2.41575 1.62862,0.1 -0.003,1.40501 0.47246,3.43 -0.44215,1.302 -0.43324,0.594 -3.81739,-1.99043 -0.39288,1.468 -0.8192,-0.14257 -0.90927,-0.147 -0.59547,-0.24 -0.0481,-0.07 0.0107,-0.05 -0.25852,-0.611 1.478,-4.001 0.15154,-0.685 0,-3.006 -0.52951,-1.098 -0.0891,-0.588 0.45106,-0.553\"},\"23017\":{\"name\":\"Oxford, ME\",\"path\":\"m 926.75358,90.638143 1.25336,2.909 0.9134,2.31235 -0.56039,0.23565 2.56555,6.032997 2.0396,-2.071 2.67609,3.285 -0.33231,0.78049 4.30989,-0.49849 0.8843,1.334 0.46533,0.941 -0.45106,0.553 0.0891,0.588 0.52951,1.098 0,3.006 -0.15154,0.685 -1.478,4.001 0.25852,0.611 -0.86113,0.86 -0.62757,-0.1 -0.11232,-0.06 -0.43502,-0.403 -0.26387,-0.417 0.25036,-1.29686 -0.88649,-0.61002 -1.00493,0.7637 -1.40755,2.01899 -0.79176,-0.20737 0.27405,0.85843 1.41091,0.26632 1.1267,0.90581 0.0374,3.95276 -1.86324,1.12007 -1.52592,-0.11483 -3.28404,-10.872 -3.01484,-9.586 -0.24068,-0.772 -3.39994,-10.252997 -0.61865,-1.767 1.10181,-0.619 2.21789,1.229 0.22464,0.112 0.46711,0 0.007,0 0.19254,-0.177 0.0339,-0.09 -0.0178,-0.563\"},\"23011\":{\"name\":\"Kennebec, ME\",\"path\":\"m 944.89072,101.16614 1.71868,-0.41 3.61745,-0.298 0.18363,-0.216 -0.082,-1.004997 -0.54556,-0.402 -0.21573,-0.06 -0.28169,-0.29 -0.18542,-0.386 -0.0802,-0.24 2.21789,-1.118 0.22465,0 0.1141,0.209 0.0214,0.353 0.48673,0.964 1.08933,-0.151 0.28419,2.045237 0.65003,0.003 0.18542,2.016 -0.8219,0.08 -0.20146,2.957 0.16224,1.439 -0.16224,0.426 -0.1355,0.129 -1.73652,0.05 0.0892,1.23 0.80407,2.291 -1.72047,0.08 -0.0481,-0.127 -0.12302,-0.153 -1.55822,0.09 -0.11946,0.151 -0.14441,0.266 -0.0321,0.161 -0.0392,0.545 -0.0449,0.49499 -1.72192,0.013 0.003,-1.40501 -1.62862,-0.1 -0.90947,-2.41575 -1.15416,-1.35542 0.5464,-0.10083 -1.07685,-2.129 1.18561,-0.33936 0.0626,-0.69984 -0.74352,-0.26836 0.3453,-1.21379 1.36279,-0.34775 0.1584,-0.7459\"},\"23027\":{\"name\":\"Waldo, ME\",\"path\":\"m 961.50781,94.304688 -5.0625,2.86914 -0.89258,-1.791016 -0.91601,0.451172 0,0.002 -0.75977,0.390624 -0.76562,-0.517578 -0.6543,0.06641 -0.0996,1.234375 -0.75976,0.392578 0.48632,0.96289 1.08985,-0.15039 0.28515,2.044927 0.64844,0.004 0.18555,2.01563 -0.82031,0.0801 -0.20313,2.95703 1.63477,-0.1211 0.14258,-0.38476 0.71484,0.47851 1.11719,-1.53906 3.65625,1.50977 0.8125,0.42578 0.76172,-2.25 0,-0.23438 -0.10352,-0.73047 -0.42852,-0.45858 -0.25312,-0.0727 -0.15625,-0.20898 -0.21485,-0.36914 0.0566,-0.29102 0.71679,-0.50586 0.0588,-0.42081 0.37886,-0.0371 0.3943,0.3252 0.89455,-1.095823 0.19922,-0.121094 -0.0156,-0.126953 -0.0879,-0.44336 -0.60156,-1.589843 -0.53907,-0.476563 -0.42187,-0.263672 -0.10156,-0.144531 -0.0332,-0.126953 0.11328,-1.433594 z m 0.78225,10.453982 0.33115,-1.32464 -0.18188,-0.99919 -0.0554,-0.53447 0.24867,-0.48158 0.46012,0.0648 0.21748,0.59621 -0.34145,0.67709 0.34786,0.43657 -0.0556,1.20406 -0.40214,0.91233 z\"},\"23009\":{\"name\":\"Hancock, ME\",\"path\":\"m 970.06445,78.470703 -3.62304,1.894531 1.32812,2.517578 -1.89844,1.019532 0.93164,1.726562 -1.87304,0.958985 0.60351,1.115234 1.70508,3.423828 -2.52539,1.300781 -0.18945,1.066407 -0.84375,-0.294922 -0.39649,0.730469 -0.0527,0.65039 -0.81445,-0.166016 -0.45118,0.199219 0,0.01367 -0.11328,1.431641 0.0332,0.128906 0.10156,0.144531 0.42187,0.263672 0.53907,0.476563 0.60156,1.589843 0.0879,0.441407 0.0156,0.128906 0.1875,-0.111328 0.0293,0.255859 -0.0625,0.683599 -0.12891,0.16015 -0.041,0.0586 0.0156,0.45117 0.49805,2.07226 0.0469,0.0996 0.54296,-0.0586 0.28711,-0.39258 0.7168,-0.23242 1.73438,0.33594 0.49804,0.13086 0.81836,0.39062 0.24219,0.16016 0.0156,0.041 0.42969,-0.17382 -0.0918,-0.49414 -0.0254,-0.11133 -0.36132,-0.5 -0.16797,-0.17578 -0.29102,0.0605 -0.16797,-0.1289 -0.0644,-0.10157 -0.0391,-0.0996 -0.25977,-1.29296 -0.33924,-0.803539 0.521,-0.01641 0.39202,-0.982832 0.51411,0.925826 0.0215,0.21875 0.14453,0.199219 0.20312,-0.04102 0.0645,-0.06055 -0.19336,-0.697266 -0.23242,-0.570312 0.0137,-0.16211 0.0586,-0.121093 0.0957,-0.06836 0.14454,0 0.21093,0.144531 0.0371,0.296875 0.14453,0.552735 0.1211,0.08008 0.10547,-0.01953 0.0723,-0.06055 0.27344,-0.527344 0.36133,-0.322266 0.53711,-0.371093 0.60351,-0.595704 0.0898,-0.810546 0.56836,-0.248047 0.55859,-0.111328 0.62305,-0.128907 0.45898,-0.06055 0.11133,0.06055 0.0898,0.144532 -0.0156,0.201172 0.0879,0.3125 0.4082,0.93164 0.25195,0.324219 0.90625,0.916015 0.1211,0.04883 0.008,0 0.18359,-0.0293 0,-0.185547 0.01,-0.128906 0.0234,-0.410157 0.0566,-0.3125 0.0644,-0.443359 0.19922,-0.296875 0.17969,0.152344 0.0859,0.08008 0.11329,-0.0293 0.18554,-0.345703 -0.0332,-0.394531 -0.20899,-0.22461 -0.4414,-0.691406 -0.47656,-0.84375 -0.98633,-1.767578 -0.0723,-0.707031 -0.49023,-1.238282 -1.14844,-1.736328 -2.00781,-3.625 1.5664,-0.816406 -0.27539,-1.150391 -1.18945,-2.533203 z m 2.48047,19.619141 -0.71875,0.410156 -0.52539,0.216797 -0.41797,0.318359 -0.16211,0.226563 -0.20703,0.888671 -0.10351,0.6582 0.0879,0.30664 0.33593,0.48243 0.43555,0.40234 1.17188,0.35938 0.33203,-0.15235 0.27148,-0.625 -0.16015,-0.28906 -0.0469,-0.0215 -0.0449,-0.0684 -0.0527,-0.21679 0.0879,-0.20899 0.19336,-0.17773 0.65821,-0.19336 0.46679,-0.527344 0.0625,-0.07031 0.01,-0.01953 0.17773,-0.33789 -0.11914,-0.330078 -0.32422,-0.515625 -0.31054,-0.320313 -0.0176,-0.01953 z m 1.50977,2.703126 -0.80078,0.33984 0.0879,0.44336 0.47461,-0.14648 0.0234,-0.25781 z m -5.42062,-1.209133 -0.24815,0.223499 0.29645,0.535524 -0.008,0.50201 0.71354,0.10007 0.19433,-0.32085 -0.6867,-0.770748 z m 3.47772,3.378003 -4.6e-4,0.44246 0.61328,0.14258 -0.043,-0.47266 0.16016,-0.42774 -0.38868,0.0879 z m -1.62843,0.0871 -0.30367,-0.28524 -0.002,0.51172 0.33008,0.13086 0.16211,-0.14648 z m -3.68063,-0.15829 -0.0801,0.0293 0.0801,0.0684 0.041,0.14453 0,0.16211 -0.13672,0.71289 -0.27539,-0.0488 -0.006,0.38672 0.0234,0.0899 0.36914,1.09961 0.39648,0.0879 0.31055,0.16797 0.17578,0.125 0.0664,-0.4043 0.33203,-0.21875 0.24414,-0.49024 -0.11914,-1.1582 -0.18359,-0.2793 -0.25782,-0.18554 -0.84375,-0.25 z m 4.45118,0.4043 -0.72071,0.53906 -0.30273,0.73243 0.60937,0.041 0.32422,-0.0117 0.27344,0.36524 0.32617,-0.0527 0.32422,-0.69922 -0.0606,-0.3164 z m 1.69531,1.13086 -0.32031,0.0625 -0.0918,0.48438 0.36328,0.0312 0.47656,-0.29297 z m -2.32422,0.88281 -0.33398,0.0117 0.11914,0.53125 0.33789,-0.17968 z\"},\"23029\":{\"name\":\"Washington, ME\",\"path\":\"m 971.08464,67.826143 5.40923,0.25 0.18542,-0.131 0.32091,-0.112 0.10341,0.02 0.5313,0.401 0.0802,0.145 1.33359,4.22 0.12837,0.811 -0.18364,1.093 -0.066,0.112 -0.26743,0.225 0.0196,0.242 0.64896,0.69 1.44056,1.446 0.9467,0.499 0.0321,0.02 0.0571,0.03 0.16759,0.04 0.0802,-0.02 0.40293,-0.587 -0.0642,-0.378 0,-0.635 0.0802,-0.128 0.19968,-0.04 1.89698,0.09 0.009,0 0.70602,0.515 0.39579,0.353 3.39815,4.138 0.35301,0.692 -0.0906,0.761647 0.0321,0.16 -0.42432,1.029 -1.40669,2.901 -0.37083,0.692 -1.06794,1.173 -0.6044,0.128 0.25704,-0.917962 -0.47522,-0.179103 -0.2855,-1.189698 -1.02211,0.794576 0.66876,0.879043 -0.32187,1.212875 -0.71974,0.366151 -1.26016,-0.569962 -0.42772,0.782846 0.42049,1.47188 -0.6131,0.612576 -1.16194,0.346463 -0.37505,0.960298 -2.23901,-0.819964 0.60162,3.354334 -0.63649,0.33 -0.53842,0.241 -0.14441,0.05 -0.2086,-0.225 -0.44215,-0.691 -0.47603,-0.844 -0.98771,-1.768 -0.0713,-0.706 -0.49029,-1.238 -1.14817,-1.736 -2.00929,-3.625 1.56714,-0.818 -0.27456,-1.15 -1.18918,-2.532 -1.42986,-2.69 0.45107,-0.177 1.28366,-0.643 -0.82725,-1.824 -3.34823,-5.859 3.46055,-2.032\"},\"23019\":{\"name\":\"Penobscot, ME\",\"path\":\"m 967.62409,69.858143 3.34823,5.859 0.82725,1.824 -1.28366,0.643 -0.45107,0.177 -3.62457,1.895 1.32823,2.516 -1.8986,1.019639 0.93229,1.727361 -1.87202,0.958 0.60261,1.116 1.70443,3.423 -2.52455,1.301 -0.19011,1.067082 -0.84395,-0.295082 -0.3958,0.731 -0.0518,0.650149 -0.81464,-0.167149 -0.45107,0.2 -0.4582,-0.305 -5.06156,2.869 -0.89322,-1.792 -0.9164,0.451 -3.64062,-7.377 2.99879,-1.519 4.35377,-2.275 -0.97073,-1.733099 1.58938,-0.789901 -3.12358,-5.955 -1.56001,0.813 -0.89144,-3.327 1.9362,-1.1 -2.0093,-6.992 -1.60636,-5.481 -0.89857,-3.214 1.90232,-0.546 4.04177,-0.882 2.997,9.568 0.48316,1.528 0.49742,1.767 0.25852,1.084 1.08398,3.682 0.36014,0.06 1.15708,-0.642 1.09469,-0.62 -0.0392,-0.12 0.007,-0.08 2.96669,-1.712\"},\"23007\":{\"name\":\"Franklin, ME\",\"path\":\"m 928.70404,80.570143 2.1234,4.58 3.09328,6.308 1.47659,-0.589692 0.67037,0.949446 1.66125,-0.937754 2.22196,3.88272 -0.67763,0.253375 0.8615,1.792512 1.48448,-0.516195 1.76834,3.699685 0.59566,-0.258097 0.90748,1.431997 -0.1584,0.7459 -1.36232,0.36414 -0.34577,1.1974 0.74352,0.26836 -0.0626,0.69984 -1.18561,0.33936 -1.5511,1.118 -0.46533,-0.941 -0.8843,-1.334 -4.30989,0.49899 0.33231,-0.77999 -2.67609,-3.286 -2.0396,2.071 -2.56555,-6.032997 0.56039,-0.23565 -0.9134,-2.31235 -1.25336,-2.909 -0.0161,-0.77 -0.016,-0.74 0.21573,-4.58 0.22464,-1.229 0.14619,-0.29 0.16759,-0.337 0.3958,-0.715 0.60796,-1.116 0.0499,-0.08 0.17472,-0.209\"},\"23025\":{\"name\":\"Somerset, ME\",\"path\":\"m 935.88366,56.840143 0.95383,4.027 2.23394,7.658 1.07685,1.221 1.33359,2.427 -1.20399,2.723584 -1.11504,1.068623 2.47627,1.581668 -0.22142,2.317125 4.73352,9.24 1.09289,1.824 1.54219,-0.772 2.20897,-1.807 3.64062,7.377 -0.7595,0.39125 -0.76454,-0.518975 -0.6546,0.06736 -0.0999,1.234111 -0.7595,0.39125 -0.0214,-0.353 -0.1141,-0.208 -0.22465,0 -2.21789,1.118 0.0802,0.24 0.18542,0.385 0.28169,0.291 0.21573,0.06 0.54556,0.401 0.082,1.006001 -0.18363,0.216 -3.61745,0.297 -1.71868,0.41 -0.90748,-1.431001 -0.59566,0.258097 -1.76834,-3.699685 -1.48448,0.516195 -0.8615,-1.792512 0.67763,-0.253375 -2.22196,-3.88272 -1.66125,0.937754 -0.67037,-0.949446 -1.47659,0.589692 -3.09328,-6.308 -2.1234,-4.58 0.13015,-0.161 0.89322,-1.069 2.07348,-5.014 0.0374,-0.369 -0.0374,-0.957 -0.24961,-0.193 -0.25673,-0.119 -0.77198,0 -0.29774,-0.983 -0.25852,-1.075 -0.49742,-2.884 0.20147,-1.56 0.2496,-1.872 0.009,-0.02 0.17472,-0.499 0.15511,-0.241 0.0214,-0.02 0.0428,-0.02 0.50455,-0.371 0.89143,-1.381 -0.18363,-1.471 -0.27278,-2.147 4.6212,-1.301\"},\"26053\":{\"name\":\"Gogebic, MI\",\"path\":\"m 620.09104,106.75814 0.41897,-0.03 0.23356,3.945 1.95041,-0.1086 0.13198,1.9896 5.96905,-0.417 0.28169,3.945 5.9637,-0.433 0.39223,5.399 -1.13212,-0.555 -1.0929,-0.369 -0.67749,-0.144 -0.86647,-0.177 -11.52447,-2.364 -1.62242,-0.337 -1.47799,-0.312 -3.23056,-3.97 -1.81497,-0.988 1.06081,-0.861 0.31379,-0.177 2.54772,-1.021 0.98771,-0.28 0.85934,-0.362 0.25852,-0.153 0.4885,-0.466 1.15709,-1.15 0.42432,-0.601\"},\"26131\":{\"name\":\"Ontonagon, MI\",\"path\":\"m 634.76584,99.615143 0.46533,6.098997 1.08399,-0.08 0.13906,1.952 -1.97542,0.128 0.15867,2.596 0.24961,3.359 0.15332,1.977 -5.9637,0.433 -0.28169,-3.945 -5.96905,0.417 -0.13198,-1.9896 -1.95041,0.1086 -0.23356,-3.945 -0.41897,0.03 0.59726,-0.74 0.25673,-0.209 0.62579,-0.369 1.10003,-0.346 0.73098,-0.114 0.21038,0.03 0.29595,0.112 3.22343,-0.545 0.33875,-0.12 0.65788,-0.354 5.67131,-3.577 0.96631,-0.913997\"},\"26115\":{\"name\":\"Monroe, MI\",\"path\":\"m 734.38013,203.79514 1.97186,-0.442 2.1127,-0.305 0.14441,0.06 1.90411,1.18 -1.91302,2.437 -0.91462,1.637 -0.72384,1.318 -0.0713,0.139 -0.025,0.103 0.0303,1.776 -5.21311,0.884 -1.24623,-8.205 3.94371,-0.586\"},\"26091\":{\"name\":\"Lenawee, MI\",\"path\":\"m 730.43642,204.38114 1.24623,8.205 -1.9772,0.346 -8.10136,1.326 -1.07329,-8.413 3.91162,-0.46 5.994,-1.004\"},\"26059\":{\"name\":\"Hillsdale, MI\",\"path\":\"m 720.5308,205.84514 1.07329,8.413 -0.64897,0.104 -6.87118,1.052 -0.49742,-1.428 -0.86826,-7.18 1.97542,-0.182 5.83712,-0.779\"},\"26023\":{\"name\":\"Branch, MI\",\"path\":\"m 704.82728,207.74214 7.89098,-0.936 0.86826,7.18 -6.30066,0.74 -1.62241,0.174 -0.83617,-7.158\"},\"26149\":{\"name\":\"St. Joseph, MI\",\"path\":\"m 696.91312,208.67314 7.91416,-0.931 0.83617,7.158 -6.23648,0.717 -2.23394,0.239 -0.27991,-7.183\"},\"26027\":{\"name\":\"Cass, MI\",\"path\":\"m 689.12733,209.44514 7.78579,-0.772 0.27991,7.183 -4.60337,0.467 -2.77236,0.296 -0.68997,-7.174\"},\"26021\":{\"name\":\"Berrien, MI\",\"path\":\"m 686.32109,205.74714 2.42699,-0.2475 0.37925,3.9455 0.68997,7.174 -5.06335,0.522 -5.10971,0.491 0.007,-0.01 0.74881,-0.627 0.93779,-0.901 0.58656,-0.65 0.90214,-1.229 0.312,-0.595 0.20859,-0.58 0.30666,-1.374 0.87539,-2.532 0.33874,-0.713 1.45304,-2.669\"},\"26163\":{\"name\":\"Wayne, MI\",\"path\":\"m 740.92327,194.48314 3.56039,-0.571 -0.13728,1.236 -0.0624,0.217 -0.38689,0.926 -0.55269,0.369 -0.46711,0.233 -0.4261,0.114 -0.0642,0.01 -0.73276,0.378 -0.23177,0.249 -0.22643,0.459 -0.36905,1.253 0.007,0.08 0,0.08 0.0981,1.327 -0.12124,2.096 -0.29773,1.357 -1.90411,-1.18 -0.14441,-0.06 -2.1127,0.305 -1.97186,0.442 -1.26583,-7.982 7.80897,-1.33\"},\"26161\":{\"name\":\"Washtenaw, MI\",\"path\":\"m 733.1143,195.81314 1.26583,7.982 -3.94371,0.586 -5.994,1.004 -1.01267,-8.082 7.81253,-1.173 1.87202,-0.317\"},\"26075\":{\"name\":\"Jackson, MI\",\"path\":\"m 723.26929,197.31814 0.16046,-0.02 1.01267,8.082 -3.91162,0.46 -5.83712,0.779 -1.11607,-8.06 1.97898,-0.227 7.7127,-1.019\"},\"26025\":{\"name\":\"Calhoun, MI\",\"path\":\"m 707.64778,199.28214 5.92983,-0.718 1.11607,8.06 -1.97542,0.182 -7.89098,0.936 -0.99662,-7.982 3.81712,-0.478\"},\"26077\":{\"name\":\"Kalamazoo, MI\",\"path\":\"m 699.72471,200.17614 4.10595,-0.416 0.99662,7.982 -7.91416,0.931 -0.90035,-8.075 3.71194,-0.422\"},\"26159\":{\"name\":\"Van Buren, MI\",\"path\":\"m 687.44786,201.52914 8.56491,-0.931 0.90035,8.075 -7.78579,0.772 -0.37925,-3.9455 -2.42699,0.2475 1.12677,-4.218\"},\"26005\":{\"name\":\"Allegan, MI\",\"path\":\"m 694.83964,192.64114 3.96867,-0.435 0.9164,7.97 -3.71194,0.422 -8.56491,0.931 0.26565,-8.118 7.12613,-0.77\"},\"26015\":{\"name\":\"Barry, MI\",\"path\":\"m 706.68325,191.25914 0.96453,8.023 -3.81712,0.478 -4.10595,0.416 -0.9164,-7.97 3.93836,-0.481 3.93658,-0.466\"},\"26045\":{\"name\":\"Eaton, MI\",\"path\":\"m 710.64479,190.79914 3.9134,-0.447 0.9984,7.985 -1.97898,0.227 -5.92983,0.718 -0.96453,-8.023 3.96154,-0.46\"},\"26065\":{\"name\":\"Ingham, MI\",\"path\":\"m 718.53755,189.72414 3.42846,-0.44 1.30328,8.034 -7.7127,1.019 -0.9984,-7.985 3.97936,-0.628\"},\"26093\":{\"name\":\"Livingston, MI\",\"path\":\"m 729.81955,188.13614 1.42273,7.994 -7.81253,1.173 -0.16046,0.02 -1.30328,-8.034 3.91696,-0.596 3.93658,-0.552\"},\"26125\":{\"name\":\"Oakland, MI\",\"path\":\"m 739.25272,184.41314 1.67055,10.07 -7.80897,1.33 -1.87202,0.317 -1.42273,-7.994 -0.31378,-2.02 1.96115,-0.303 1.95046,-0.419 5.83534,-0.981\"},\"26099\":{\"name\":\"Macomb, MI\",\"path\":\"m 741.18,184.02814 4.06494,-0.649 0.78803,4.354 0.0891,0.545 -1.63845,5.634 -3.56039,0.571 -1.67055,-10.07 1.92728,-0.385\"},\"26147\":{\"name\":\"St. Clair, MI\",\"path\":\"m 740.15307,178.09814 8.12988,-1.471 0.041,0.145 0.32983,0.971 0.13015,0.346 1.35676,2.01 -0.11232,6.427 -0.12123,2.259 -0.0731,0.561 -0.0571,0.154 -0.8433,1.365 -0.0785,0.1 -0.28347,0.08 -0.95562,0.19 -0.92174,-0.907 -0.0606,-0.161 0.29952,-0.722 0.31379,-0.281 0.41006,0.09 0.20859,-0.293 0.0642,-0.126 0.025,-0.2 -0.041,-0.217 -0.14441,-0.17 -0.0802,-0.04 -0.69176,-0.169 -0.19255,-0.04 -0.25673,0.05 -0.40115,0.219 -0.025,0.01 -0.0891,-0.545 -0.78803,-4.354 -4.06494,0.649 -1.02693,-5.93\"},\"26087\":{\"name\":\"Lapeer, MI\",\"path\":\"m 732.24604,177.56014 -0.0321,-0.227 1.80638,-0.32895 -0.31947,-1.95305 3.85635,-0.625 0.15154,0.98 1.96116,-0.291 0.48316,2.983 1.02693,5.93 -1.92728,0.385 -5.83534,0.981 -1.17134,-7.834\"},\"26049\":{\"name\":\"Genesee, MI\",\"path\":\"m 728.35403,178.10514 3.89201,-0.545 1.17134,7.834 -1.95046,0.419 -1.96115,0.303 0.31378,2.02 -3.93658,0.552 -1.1339,-8.051 -0.21136,-2.12524 3.81632,-0.40676\"},\"26155\":{\"name\":\"Shiawassee, MI\",\"path\":\"m 724.74907,180.63714 1.1339,8.051 -3.91696,0.596 -3.42846,0.44 -1.03763,-7.834 -0.025,-0.231 7.27411,-1.022\"},\"26037\":{\"name\":\"Clinton, MI\",\"path\":\"m 717.49992,181.89014 1.03763,7.834 -3.97936,0.628 -3.9134,0.447 -0.93958,-7.985 7.79471,-0.924\"},\"26067\":{\"name\":\"Ionia, MI\",\"path\":\"m 701.79818,183.72314 7.90703,-0.909 0.93958,7.985 -3.96154,0.46 -3.93658,0.466 -0.94849,-8.002\"},\"26139\":{\"name\":\"Ottawa, MI\",\"path\":\"m 693.61659,182.62314 0.49921,3.983 0.36192,2.685 0.36192,3.35 -7.12613,0.77 -1.88271,-7.946 2.44432,-0.248 3.62279,-0.412 -0.24247,-1.991 1.96115,-0.191\"},\"26121\":{\"name\":\"Muskegon, MI\",\"path\":\"m 681.83896,177.64714 7.01381,-0.602 0.43323,3.986 4.12378,-0.426 0.20681,2.018 -1.96115,0.191 0.24247,1.991 -3.62279,0.412 -2.44432,0.248 -0.19255,-0.401 -0.73097,-1.294 -1.60637,-2.652 -0.2496,-0.488 -0.58657,-1.287 -0.30487,-0.795 -0.32091,-0.901\"},\"26081\":{\"name\":\"Kent, MI\",\"path\":\"m 693.40978,180.60514 3.77612,-0.451 4.15409,-0.457 0.45819,4.026 0.94849,8.002 -3.93836,0.481 -3.96867,0.435 -0.36192,-3.35 -0.36192,-2.685 -0.49921,-3.983 -0.20681,-2.018\"},\"26117\":{\"name\":\"Montcalm, MI\",\"path\":\"m 708.61231,174.86814 1.0929,7.946 -7.90703,0.909 -0.45819,-4.026 -4.15409,0.457 -0.43324,-3.994 7.90525,-0.836 3.9544,-0.456\"},\"26057\":{\"name\":\"Gratiot, MI\",\"path\":\"m 712.5578,174.40114 3.92767,-0.482 0.98949,7.74 0.025,0.231 -7.79471,0.924 -1.0929,-7.946 3.94549,-0.467\"},\"26145\":{\"name\":\"Saginaw, MI\",\"path\":\"m 727.5357,172.22414 0.81833,5.881 -3.81632,0.40676 0.21136,2.12524 -7.27411,1.022 -0.98949,-7.74 -0.0374,-0.362 3.28583,-0.41 -0.20325,-1.991 1.94689,-0.211 0.28375,0.91821 1.58114,-0.12221 2.1127,-0.264 0.35505,0.79181 1.72556,-0.0448\"},\"26151\":{\"name\":\"Sanilac, MI\",\"path\":\"m 736.51423,166.44714 8.36166,-1.512 0.0802,0.475 0.29774,1.51 0.0891,0.29 0.79637,1.5183 1.05845,2.10955 0.56453,4.52715 0.11233,0.282 0.40827,0.98 -8.12988,1.471 -0.48316,-2.983 -1.96116,0.291 -0.15154,-0.98 -1.04298,-7.979\"},\"26157\":{\"name\":\"Tuscola, MI\",\"path\":\"m 730.59688,165.99614 0.20325,1.407 5.7141,-0.956 1.04298,7.979 -3.85635,0.625 0.31947,1.95305 -1.80638,0.32895 0.0321,0.227 -3.89201,0.545 -0.81833,-5.881 -0.36193,-2.7 3.42311,-3.528\"},\"26063\":{\"name\":\"Huron, MI\",\"path\":\"m 736.51423,166.44714 -5.7141,0.956 -0.20325,-1.407 0.0267,-0.112 0.18185,-0.909 0.4582,-1.462 1.9772,-3.456 4.51601,-2.875 0.82725,-0.218 2.15371,0.804 0.85934,0.514 0.13728,0.128 0.60974,0.875 1.40669,2.035 0.22642,0.465 0.4582,1.391 0.18363,0.641 0.25674,1.118 -8.36166,1.512\"},\"26017\":{\"name\":\"Bay, MI\",\"path\":\"m 718.32539,161.35214 1.98612,-0.257 0.26564,1.961 2.1858,-0.258 -0.12123,3.512 2.49958,2.403 2.03247,0.811 0.36193,2.7 -1.72556,0.0448 -0.35505,-0.79181 -2.1127,0.264 -1.58114,0.12221 -0.28375,-0.91821 -1.94689,0.211 -0.72028,-5.884 -0.48494,-3.92\"},\"26111\":{\"name\":\"Midland, MI\",\"path\":\"m 711.62002,166.40614 3.9437,-0.458 -0.041,-0.337 3.28761,-0.339 0.72028,5.884 0.20325,1.991 -3.28583,0.41 0.0374,0.362 -3.92767,0.482 -0.93778,-7.995\"},\"26073\":{\"name\":\"Isabella, MI\",\"path\":\"m 711.62002,166.40614 0.93778,7.995 -3.94549,0.467 -3.9544,0.456 -0.9788,-7.953 7.94091,-0.965\"},\"26107\":{\"name\":\"Mecosta, MI\",\"path\":\"m 695.87549,168.20514 7.80362,-0.834 0.9788,7.953 -7.90525,0.836 -0.87717,-7.955\"},\"26123\":{\"name\":\"Newaygo, MI\",\"path\":\"m 695.87549,168.20514 0.87717,7.955 0.43324,3.994 -3.77612,0.451 -4.12378,0.426 -0.43323,-3.986 -0.82904,-7.997 7.85176,-0.843\"},\"26127\":{\"name\":\"Oceana, MI\",\"path\":\"m 681.54835,169.63714 6.47538,-0.589 0.82904,7.997 -7.01381,0.602 -1.19809,-2.298 -0.19434,-0.369 -0.20859,-0.538 -0.0713,-0.353 -0.0267,-0.266 0.0107,-0.33 0.1034,-0.458 0.26565,-0.506 0.41006,-0.651 0.29061,-0.53 0.20681,-0.602 0.0892,-0.419 0.041,-0.619 -0.009,-0.07\"},\"26011\":{\"name\":\"Arenac, MI\",\"path\":\"m 727.68011,156.26514 0.0481,0.86 0.009,0.586 -0.041,1.045 -1.38885,1.638 -1.3425,0.378 -0.39402,0.05 -0.68997,0 -0.28882,0.218 -0.0981,0.112 -0.32092,0.458 -0.36905,1.004 -0.041,0.186 -2.1858,0.258 -0.26564,-1.961 -1.98612,0.257 -0.46355,-3.778 4.60694,-0.587 5.21133,-0.722\"},\"26051\":{\"name\":\"Gladwin, MI\",\"path\":\"m 717.86184,157.57414 0.94849,7.698 -3.28761,0.339 0.041,0.337 -3.9437,0.458 -0.99128,-7.916 3.92945,-0.481 3.30365,-0.435\"},\"26035\":{\"name\":\"Clare, MI\",\"path\":\"m 706.64403,158.94814 3.98471,-0.458 0.99128,7.916 -7.94091,0.965 -0.89856,-8.045 3.86348,-0.378\"},\"26133\":{\"name\":\"Osceola, MI\",\"path\":\"m 702.78055,159.32614 0.89856,8.045 -7.80362,0.834 -0.92353,-8.003 3.76721,-0.426 4.06138,-0.45\"},\"26085\":{\"name\":\"Lake, MI\",\"path\":\"m 694.95196,160.20214 0.92353,8.003 -7.85176,0.843 -0.9057,-8.074 3.63171,-0.307 4.20222,-0.465\"},\"26105\":{\"name\":\"Mason, MI\",\"path\":\"m 681.44494,161.31314 5.67309,-0.339 0.9057,8.074 -6.47538,0.589 -0.87717,-3.432 -1.11513,-1.46505 1.31837,-2.00695 0.57052,-1.42\"},\"26069\":{\"name\":\"Iosco, MI\",\"path\":\"m 721.41332,149.06414 9.2424,-1.276 0.0856,0.577 0.10518,1.641 -0.20146,1.952 -1.34072,1.551 -0.30487,-0.09 -0.26743,0 -0.33696,0.121 -0.12659,0.09 -0.21751,0.305 -0.1765,0.339 -0.12123,0.497 -0.0731,1.487 -5.21133,0.722 -1.05546,-7.923\"},\"26129\":{\"name\":\"Ogemaw, MI\",\"path\":\"m 721.41332,149.06414 1.05546,7.923 -4.60694,0.587 -3.30365,0.435 -1.00376,-7.923 7.85889,-1.022\"},\"26143\":{\"name\":\"Roscommon, MI\",\"path\":\"m 705.71158,150.94514 7.84285,-0.859 1.00376,7.923 -3.92945,0.481 -3.98471,0.458 -0.93245,-8.003\"},\"26113\":{\"name\":\"Missaukee, MI\",\"path\":\"m 705.71158,150.94514 0.93245,8.003 -3.86348,0.378 -4.06138,0.45 -0.8843,-7.955 7.87671,-0.876\"},\"26165\":{\"name\":\"Wexford, MI\",\"path\":\"m 689.9528,152.67314 7.88207,-0.852 0.8843,7.955 -3.76721,0.426 -4.20222,0.465 -0.79694,-7.994\"},\"26101\":{\"name\":\"Manistee, MI\",\"path\":\"m 689.9528,152.67314 0.79694,7.994 -3.63171,0.307 -5.67309,0.339 0.97033,-3.96181 0.14442,-1.31 0.016,-0.457 0.007,-2.252 7.36994,-0.65919\"},\"26001\":{\"name\":\"Alcona, MI\",\"path\":\"m 720.36856,141.12514 9.17465,-1.26 0.41897,0.618 0.79516,2.587 0.0178,0.571 -0.11945,4.147 -9.2424,1.276 -1.04476,-7.939\"},\"26135\":{\"name\":\"Oscoda, MI\",\"path\":\"m 712.55067,142.14714 7.81789,-1.022 1.04476,7.939 -7.85889,1.022 -1.00376,-7.939\"},\"26039\":{\"name\":\"Crawford, MI\",\"path\":\"m 704.82728,142.99014 7.72339,-0.843 1.00376,7.939 -7.84285,0.859 -0.8843,-7.955\"},\"26079\":{\"name\":\"Kalkaska, MI\",\"path\":\"m 704.82728,142.99014 0.8843,7.955 -7.87671,0.876 -0.75951,-6.879 0.0464,-0.802 0.0232,-0.114 0.48316,-0.225 7.19923,-0.811\"},\"26055\":{\"name\":\"Grand Treverse, MI\",\"path\":\"m 695.26575,143.85814 1.80961,1.084 0.75951,6.879 -7.88207,0.852 -0.60083,-5.985 2.53992,-0.339 0.56652,0.37537 0.13328,-1.19591 0.50675,-0.55389 -0.15477,-0.61558 0.45185,-0.38242 -0.62096,-0.31716 0.44467,-1.08004 0.26242,-1.33306 0.66417,0.56326 -0.38773,0.81748 0.20026,1.58569 -0.52793,0.85322 -0.38336,1.68363 0.5458,0.0234 0.1434,-1.01929 1.52949,-1.89568\"},\"26019\":{\"name\":\"Benzie, MI\",\"path\":\"m 689.35197,146.68814 0.60083,5.985 -7.36994,0.65919 0.0802,-0.731 0.0178,-0.41 -0.14441,-0.625 -0.14441,-0.323 -0.44929,-0.86 -0.12301,-0.345 -0.0161,-0.53 0.0161,-0.128 0.0891,-0.17 0.2496,-0.192 0.93957,-0.433 1.05368,-0.348 0.24782,-0.273 0.14619,-0.401 0.0392,-0.273 -0.009,-0.201 4.77586,-0.40119\"},\"26089\":{\"name\":\"Leelanau, MI\",\"path\":\"m 691.99609,136.34766 -1.02929,0.66601 -1.19141,3.32031 -0.73633,0.53321 -0.14844,0.96484 -1.48046,1.65235 -0.56641,-0.58985 -0.88027,0.33867 -0.09,1.05703 -0.90077,0.36592 -0.19948,-0.50498 -0.42159,0.15698 0.0487,0.89693 0.17578,1.99219 4.77539,-0.40235 2.53906,-0.33789 -0.42382,-1.25195 -0.0645,-0.40235 -0.008,-0.57226 0.0312,-0.23242 0.23438,-0.89258 0.0625,-0.0488 -0.30078,-1.77734 0.28906,-1.34961 -0.60547,-1.80274 1.33984,-1.33007 -0.28125,-0.44922 z m -0.10547,10.10937 0.002,0.008 0,-0.008 z m -9.02624,-4.18643 10e-4,-0.68682 0.83563,-0.2884 0.15258,0.23089 -0.0968,0.60035 -0.49363,0.57073 z m 2.6698,-1.43994 0.12728,-0.43027 -0.34961,-1.73047 -0.82812,-0.25 -0.85352,0.55469 0.10157,0.63477 0.64843,0.49609 0.41407,0.57812 z\"},\"26007\":{\"name\":\"Alpena, MI\",\"path\":\"m 727.40733,132.07014 1.31041,1.439 1.1963,2.41 -0.0784,0.09 -0.27635,-0.03 -0.89143,-0.233 -0.30487,-0.17 -0.19255,-0.249 -0.54021,-0.113 -0.51169,0.362 -0.11053,0.17 -0.13907,0.385 -0.007,0.08 0.19255,0.94 0.21751,0.852 0.11945,0.249 0.11232,0.17 0.14442,0.128 0.57943,0.474 1.31576,0.844 -9.17465,1.26 -0.47603,-3.535 0.009,-0.289 0.0731,-0.161 -0.50633,-3.913 7.93912,-1.157\"},\"26119\":{\"name\":\"Montmorency, MI\",\"path\":\"m 719.46821,133.22714 0.50633,3.913 -0.0731,0.161 -0.009,0.289 0.47603,3.535 -7.81789,1.022 -0.89321,-7.866 1.93619,-0.243 5.87456,-0.811\"},\"26137\":{\"name\":\"Otsego, MI\",\"path\":\"m 705.73476,134.92214 5.9227,-0.641 0.89321,7.866 -7.72339,0.843 -0.84151,-5.875 1.92603,-0.32537 -0.17704,-1.86763\"},\"26009\":{\"name\":\"Antrim, MI\",\"path\":\"m 695.18552,136.01514 0.19077,-0.03 2.46749,-0.231 0.1765,1.654 0.63649,0.282 3.01305,-0.353 2.31595,-0.227 0.84151,5.875 -7.19923,0.811 -0.48316,0.225 -0.0232,0.114 -0.0464,0.802 -1.80961,-1.084 0.12658,-0.321 0.24247,-0.724 0.12124,-0.458 0.1141,-1.574 0.005,-1.64 -0.12837,-1.093 -0.5616,-2.033\"},\"26029\":{\"name\":\"Charlevoix, MI\",\"path\":\"m 699.83789,131.9375 -1.14844,0.0195 -0.83007,0.31445 -0.19922,0.11133 -1.46289,1.18164 -0.24024,0.24805 -0.30554,0.28984 -0.37805,0.54024 -0.18555,0.84961 0.0977,0.62695 0.1914,-0.0293 2.4668,-0.23046 0.17578,1.65429 0.63672,0.28125 3.01367,-0.35351 2.31641,-0.22657 1.92578,-0.32422 -0.17773,-1.86914 -0.2168,-1.99218 -3.73633,0.39453 -0.81836,0 -1.125,-1.48047 z m -7.57555,-8.0805 -0.99136,-0.1353 0.006,0.96552 -0.52899,0.9018 0.12666,0.71876 -0.23327,0.61433 0.16864,0.94023 1.09583,0.0706 0.73779,-0.81129 0.0977,-0.60942 -0.37169,-0.98575 0.0367,-1.13834 -0.40604,-0.28831 z\"},\"26141\":{\"name\":\"Presque Isle, MI\",\"path\":\"m 727.40733,132.07014 -7.93912,1.157 -5.87456,0.811 -0.67392,-5.32 -0.61866,-4.42 0.76129,-0.112 1.47978,1.776 5.49659,2.153 3.5283,1.086 0.47424,0.06 0.89857,-0.105 0.25851,-0.289 0.12659,0.02 0.82903,0.941 1.25336,2.234\"},\"26031\":{\"name\":\"Cheboygan, MI\",\"path\":\"m 705.51725,132.92914 -1.34785,-11.378 0.32092,0.467 4.37873,2.097 1.35854,-0.234 0.72385,-0.298 1.91124,0.451 0.19968,0.152 -0.76129,0.112 0.61866,4.42 0.67392,5.32 -1.93619,0.243 -5.9227,0.641 -0.21751,-1.993\"},\"26047\":{\"name\":\"Emmet, MI\",\"path\":\"m 705.51725,132.92914 -3.73511,0.394 -0.82012,0 -1.12499,-1.48 0.80942,-0.128 0.98949,-0.328 0.65075,-0.476 0.0321,-0.225 -0.0214,-0.16 -0.0749,-0.177 -0.11054,-0.08 -0.96453,-0.07 -0.14442,0.114 -0.83438,-0.169 -0.52594,-0.458 -0.34232,-0.369 -0.45998,-0.979 -0.14263,-0.396 -0.14619,-0.667 0,-0.144 0.082,-0.257 0.48138,-1.061 0.18541,-0.256 1.69551,-1.833 -0.80961,-1.14459 3.01859,0.0266 0.16224,-0.136 -0.32999,-0.69488 1.13228,-0.22112 1.34785,11.378\"},\"26097\":{\"name\":\"Mackinac, MI\",\"path\":\"m 696.88086,111.92773 -1.97656,0.23243 -9.96485,1.125 0,0.0156 0.65039,6.29883 2.72461,-0.10352 0.51563,-0.21093 0.12695,-0.16797 0.50586,-0.85938 0.16211,-0.52343 0.88477,-1.23633 0.26953,-0.29883 0.13867,-0.0996 0.19336,-0.0703 1.14648,-0.24024 0.24219,-0.0195 1.23828,0.0605 3.39063,0.6914 1.94531,0.58594 4.38281,3.16602 0.53591,-0.61596 -0.35427,-1.58521 0.42383,-2.52735 2.68555,0.76563 3.375,0.73437 3.36718,-0.92773 -2.02539,-0.0586 -0.57031,-1.77734 -1.41992,0.20313 -0.45313,-1.97852 -11.90039,1.41406 z m 8.17377,7.32762 0.3342,0.77004 0.45769,-0.17694 -0.43056,-0.71029 z m 1.13846,1.66366 0.80496,-0.0792 1.25586,1.56641 1.62109,0.0586 0.32227,-1.36914 -1.34766,-0.0644 -1.69141,-0.56055 z\"},\"26033\":{\"name\":\"Chippewa, MI\",\"path\":\"m 697.93359,99.537109 -1.18945,0.552731 -2.16211,0.17578 -0.99609,0.29883 1.31836,11.61914 1.97656,-0.23437 0.24023,1.99414 11.90039,-1.41406 0.45313,1.97851 1.41992,-0.20312 0.57031,1.77734 2.02539,0.0586 0.16016,0.0996 0.25781,0.10547 1.17969,0.041 2.17773,0.0586 0.13868,-0.51367 -0.19532,-0.63476 -0.36718,-0.0606 -0.57618,-0.6836 -0.94335,0.0957 -0.67579,-0.42578 -0.69726,-0.66602 0.12305,-0.5957 0.43945,-0.52735 -2.50586,-0.8164 -1.02148,0.21679 -0.35352,-0.91796 0.79492,-0.71875 0.40234,-0.10352 -0.39768,-0.70734 -0.37966,-0.33172 -0.19336,-1.2461 -0.5039,-0.5332 -0.3086,-1.32617 -0.48828,-0.4961 -0.63672,-0.76757 -0.82812,-0.16211 -0.92578,0.32226 -0.35938,0.32227 -0.0762,1.17773 -0.61719,0.0606 -1.32812,0.47461 -0.0899,-0.44922 -0.74414,-0.79102 -0.94922,-0.0859 -1.30859,0.9375 -0.84375,0.42578 -0.59961,-0.61914 -0.83789,0.0215 -0.57617,-0.24023 -1.02149,0.37109 -0.16992,-0.0586 -0.14648,-0.0996 -0.29688,-0.33789 -0.10547,-0.23242 -0.0469,-0.27344 -0.008,-3.65039 0.008,-0.28906 0.0723,-0.35352 0.16211,-0.38477 z m 13.37273,9.402451 0.47027,0.40697 0.42849,0.92886 0.14844,0.44727 0.10351,-0.43946 0.49609,-0.30468 -0.18554,-0.80274 -0.64063,-0.75976 -0.16601,-0.15505 -0.23047,0.004 -0.375,0.2195 z m 0.65462,-0.83995 0.82617,-0.0137 -0.80664,-0.86133 -0.72852,-1.22461 0.20313,-0.87109 0.23437,-0.12305 0.17188,-0.71094 0.0371,-0.41992 -0.2168,-0.26758 -0.16797,-0.0195 -0.875,-0.0703 -0.34765,0.70508 -0.71875,0.32617 0.0449,0.56055 0.5,0.21484 0.49609,1.3418 0.85547,0.49804 z m 8.79297,4.18359 -1.04688,0.18164 -0.18164,0.29883 0.97266,0.32617 0.1289,0.64454 -0.66797,0.24609 -0.74609,0.24609 -0.34375,0.76563 -0.46875,0.25195 -0.24219,-0.6543 -0.30859,-0.0996 -0.26758,0.69922 0.11328,0.4375 0.85157,0.13867 0.26367,0.29688 0.23242,0.30469 0.71484,0.12304 2.72461,0 0.55274,-0.21679 0.1289,-0.12891 0.0899,-0.14453 0.42578,-1.33398 -0.0234,-0.0898 -0.13281,-0.16015 -1.87696,-1.91211 -0.74023,-0.20118 z\"},\"26095\":{\"name\":\"Luce, MI\",\"path\":\"m 684.30467,107.24014 -0.42433,-4.218 1.09825,0.09 0.70958,0 2.58695,-0.218 0.70601,-0.07 0.51525,-0.1 0.42789,-0.153 1.68303,-0.956 1.97899,-1.189 1.31754,11.619 -9.96446,1.125 -0.6347,-5.939\"},\"26153\":{\"name\":\"Schoolcraft, MI\",\"path\":\"m 684.30467,107.24014 0.6347,5.939 0.65074,6.298 -0.85042,0.555 -2.41936,-0.136 -0.37084,0 -1.61528,0.248 -0.36905,0.136 -0.88252,0.483 -0.53843,0.676 -0.11232,0.215 -0.009,1.254 -0.17651,1.262 -0.1765,0.201 -0.9088,0.06 -0.24115,0.73599 -0.2496,0.112 -0.0642,-0.02 -0.30487,-3.158 -0.53129,-1.961 -0.57052,-3.968 -2.00038,0.176 -0.39402,-3.979 3.97937,-0.36 -0.39401,-3.978 7.91416,-0.804\"},\"26003\":{\"name\":\"Alger, MI\",\"path\":\"m 683.88086,103.12305 -0.95117,0.22461 -4.08985,1.13476 -2.99023,2.40235 -2.10938,0.95312 -0.32226,0.59961 -0.52344,0.21094 -0.36523,1.0039 -0.33594,0.14649 -0.17188,0.84765 -0.52734,-0.0469 -0.0312,-0.48242 -0.91211,0.0801 -0.375,-0.51172 -0.83008,-0.1875 -0.48632,1.04883 -0.40821,-0.0293 -0.14648,-0.0898 -1.08985,-0.88476 -0.34765,-0.70703 -0.22461,-0.20899 -0.51367,-0.0918 -0.13868,0 -0.90625,0.50781 -0.57812,0.51562 0.72266,7.67969 7.9707,-0.76953 -0.39453,-3.98047 3.98047,-0.35937 -0.39454,-3.97852 7.91407,-0.80273 0,-0.006 z m -11.61298,6.13189 -0.0586,-0.35659 -0.25589,0.0689 -0.0799,0.26229 -0.28715,-0.12635 0.13217,-0.92282 -0.68728,-0.78581 -0.74805,0.35742 0.41016,0.98047 0.31641,0.44336 -0.16016,0.55078 0.17773,0.20117 0.29688,-0.0469 0.15625,-0.50195 0.19922,0.14843 -0.01,0.19727 0.22656,0.0352 z\"},\"26041\":{\"name\":\"Delta, MI\",\"path\":\"m 665.22796,117.13114 7.97121,-0.77 2.00038,-0.176 0.57052,3.968 0.53129,1.961 0.30487,3.158 -0.86825,0.217 -0.18996,0.90196 -0.71276,0.0869 0.01,1.13015 -0.70096,0.16917 0.44792,1.25951 -1.11915,-0.30101 -0.63899,-0.66875 -0.1445,-0.67816 0.51599,-0.28918 0.0124,-0.47775 0.72174,-1.53092 1.0373,-0.15432 -0.39693,-0.28691 0.69307,-1.44268 -0.45501,-1.10855 -0.85989,0.68336 -0.53182,1.04608 -1.11124,-0.15391 -0.48256,-0.4859 -0.61527,0.25323 0.0853,1.50969 -0.79385,1.74444 -1.90714,1.42702 -0.24787,-1.93446 -0.18364,-0.884 -0.15332,-0.41 -0.31379,-0.458 0.68666,-1.15024 -0.31471,-0.81421 -0.45043,0.79317 -0.0398,0.79468 -0.6109,0.6756 -0.36105,0.83399 0.62024,1.01564 -0.91226,1.44786 -1.00811,0.53963 -0.76709,1.77188 -0.3851,0.885 -0.009,0.03 -1.0198,0.1 -0.69888,-7.964 -0.49742,-0.626 -0.35479,-1.294 1.99324,-0.177 -0.34587,-3.977 2.00038,-0.186\"},\"26109\":{\"name\":\"Menominee, MI\",\"path\":\"m 657.59549,121.80814 3.98472,-0.337 0.35479,1.294 0.49742,0.626 0.69888,7.964 1.0198,-0.1 -0.29595,1.157 -0.51347,1.654 -1.47265,3.336 -1.04298,1.687 -0.99841,3.07 -0.73097,-0.114 -0.41719,-0.07 -0.0161,0 -1.2694,-1.342 -0.0731,-0.121 -0.14263,-0.473 -0.001,-0.002 -10e-4,-0.002 -10e-4,-0.002 -10e-4,-0.002 -10e-4,-0.003 -0.001,-0.002 -10e-4,-0.002 -10e-4,-0.002 1.03528,-3.44506 -0.93194,-0.82209 -0.8147,0.84765 -2.29013,-0.005 1.57876,-3.41468 -0.16045,-4.147 -0.48138,-0.594 -0.041,-0.04 -0.025,-0.02 -0.30488,-0.248 2.10379,-0.194 -0.34231,-4.017 1.2694,-0.114 -0.16937,-2\"},\"26043\":{\"name\":\"Dickinson, MI\",\"path\":\"m 649.10012,116.53814 7.98012,-0.692 0.51525,5.962 0.16937,2 -1.2694,0.114 0.34231,4.017 -2.10379,0.194 -3.79929,-1.021 -0.21751,0.03 -0.016,0 -0.21751,-0.06 -0.1355,-0.03 -0.6133,-0.498 -0.0161,0 -0.1034,-0.201 0.0232,-0.08 0.009,-0.02 0.28169,-0.36 0.11232,-0.09 0.25673,-0.362 0.22465,-0.385 -0.0232,-0.08 -0.0499,-0.07 -0.47246,-0.676 -0.24782,-0.159 -0.62935,-7.521\"},\"26103\":{\"name\":\"Marquette, MI\",\"path\":\"m 648.98779,101.23714 2.27316,-0.128 1.41739,0.37 0.50455,0.145 2.48354,1.342 0.65787,0.61 0.13729,0.674 0.16759,0.506 3.48907,4.429 0.1355,0.152 0.25852,0.208 0.25495,0.121 0.65966,0.145 0.83616,0 2.06635,-0.321 0.1765,-0.05 0.72207,7.68 -2.00038,0.186 0.34587,3.977 -1.99324,0.177 -3.98472,0.337 -0.51525,-5.962 -7.98012,0.692 -0.32092,-3.955 -0.47424,-5.914 1.96294,-0.185 -0.16225,-1.936 -0.0392,-0.02 -0.80407,0.06 -0.27457,-3.352\"},\"26071\":{\"name\":\"Iron, MI\",\"path\":\"m 639.83632,113.29114 8.94288,-0.708 0.32092,3.955 0.62935,7.521 -0.37797,-0.251 -0.61152,-0.296 -0.39937,-0.06 -0.0356,0 -4.67647,-0.587 -2.81159,0.298 -0.32983,-0.586 -4.08099,-1.045 -0.97345,-0.474 -0.39223,-5.399 -0.15332,-1.977 4.94924,-0.378\"},\"26083\":{\"name\":\"Keweenaw, MI\",\"path\":\"m 636.77514,74.640143 0.1141,-0.217 0.0285,-0.06 0.24247,-0.29 0.64183,-0.41 0.99662,-0.537 1.89519,-0.515 -0.62154,0.785425 -1.50374,1.193769 -0.11497,0.396378 0.17788,0.485828 -0.31347,0.3366 -1.28056,1.143025 -1.20353,0.654107 -1.19902,0.209956 -2.49093,1.786073 0.007,0.374554 1.11842,-0.03966 -2.82694,1.737951 -0.51346,0.144 -0.52417,-0.137 -0.72206,-0.408 -0.36192,-0.532 0.1141,-0.288 0.46355,-0.612 0.51525,-0.522 1.248,-0.844 1.50831,-0.898 3.42311,-2.147 1.18205,-0.795 m 4.15408,18.683 0.73811,-1.304 0.58122,-0.763 0.43323,-0.337 2.56912,-1.679 0.53843,-0.248 2.18579,-0.602 0.95027,-0.163 0.77734,-0.05 2.00929,-0.05 0.72206,0.227 0.42789,0.231 0.24782,0.186 0.15333,0.763 -0.0143,0.112 -1.58497,0.515 -0.18542,-0.02 -2.13587,0.45 -2.35518,3.294 -0.44036,0.571 -0.9895,0.458 -1.10894,0.1 -0.16937,-1.968 -3.35002,0.273\"},\"26061\":{\"name\":\"Houghton, MI\",\"path\":\"m 642.77537,100.1088 -0.22374,0.85134 -1.62241,0.33 0.0583,1.90828 -1.90001,0.22972 0.7488,9.859 -4.94924,0.378 -0.24961,-3.359 -0.15867,-2.596 1.97542,-0.128 -0.13906,-1.953 -1.08399,0.08 -0.46533,-6.099997 0.36906,-1.269 0.20859,-0.346 1.09468,-1.02 1.63949,-1.553427 0.28774,-0.270698 0.0362,0.817488 0.68861,1.140043 1.51368,0.263871 0.55217,1.378121 z m -4.17205,-5.142803 2.32589,-1.645354 3.35003,-0.2705 0.16937,1.968 1.10894,-0.1 -2.65588,5.006639 -1.57469,-1.314611 -0.57449,-1.467423 -1.53601,-0.241546 -0.57698,-1.028415 z\"},\"26013\":{\"name\":\"Baraga, MI\",\"path\":\"m 648.98779,101.23714 0.27457,3.352 0.80407,-0.06 0.0392,0.02 0.16225,1.936 -1.96294,0.185 0.47424,5.914 -8.94288,0.708 -0.7488,-9.859 1.90001,-0.22972 -0.0583,-1.90828 1.62241,-0.33 -0.31913,1.43 -0.0267,1.246 0.0267,0.129 0.18185,0.442 0.21038,0.433 0.37619,-0.03 0.0571,-0.161 0.26565,-0.442 0.77198,-1.077 1.70442,-1.823 1.34072,-0.924 0.17651,-0.06 0.1765,0.09 1.49404,1.02\"},\"27055\":{\"name\":\"Houston, MN\",\"path\":\"m 601.33703,175.02814 0.40293,2.78 1.10003,5.15 -6.53957,0.314 -1.98433,0.09 -0.36371,-7.98 7.38465,-0.353\"},\"27045\":{\"name\":\"Fillmore, MN\",\"path\":\"m 588.18302,175.62214 5.76936,-0.241 0.36371,7.98 -5.81929,0.248 -6.12951,0.25 -0.2906,-7.69 6.10633,-0.547\"},\"27071\":{\"name\":\"Koochiching, MN\",\"path\":\"m 547.5728,73.080143 -0.15332,-7.73 0.21573,-0.09 0.41897,-0.03 1.23731,0.02 0.27456,0.05 0.47246,0.257 0.14442,0.289 0.009,0.153 0.0161,0.458 0,0 0.0945,0.06 0.31557,0.08 1.51009,0.09 1.13212,-0.02 3.26978,0.282 0.0981,0.08 0.19255,0.353 0.25673,0.717 0.0321,0.206 -0.0802,0.596 -0.10341,0.176 0,0.106 0.0553,0.08 0.3227,0.233 0.58656,0 1.45304,-0.05 1.80783,-0.346 1.18204,-0.41 0.0963,-0.112 0.0553,-0.257 -0.005,-0.128 -0.0749,-0.153 -0.0802,-0.298 0.0267,-0.105 1.78287,-0.835 1.41382,-0.41 0.73098,-0.02 0.43323,0.385 0.54734,-0.02 0.0321,0 0.82725,-0.09 0.0874,4.846 0.0428,3.92 0.13371,3.978 0.15511,1.045 0.17472,2.089 0.0339,0.875 -10.82559,0.129 0.025,1.198 -10.01973,0.216 -0.35301,-11.885\"},\"27077\":{\"name\":\"Lake of the Woods, MN\",\"path\":\"m 533.62898,58.881143 2.59586,-0.02 -0.0303,-3.519206 -0.016,-1.48 -0.016,-2.369 -0.009,-0.651 0,-0.03 2.98988,0.29 0.94774,0.441 1.09364,0.925 1.25367,4.18812 0.003,2.600242 0.83089,0.707624 0.39483,1.786858 -0.28187,2.047362 0.71493,0.651 0.24782,0.225 1.02337,0.57 0.44037,0.243 0.025,0.02 0.21751,0.02 0.77733,0.08 0.58835,-0.259 0.15332,7.731 -12.10212,0.185 -0.0481,-3.961 -2.01821,0 -0.0232,-3.931 3.88844,-0.03 -0.0713,-4.722 -0.37796,0.392 -0.33875,0.201 -0.15154,0.06 -1.19631,0.249 -0.1765,0 -0.25852,-0.06 -0.7078,-0.435 -0.33696,-0.651 -0.0642,-1.109 0.0392,-0.394\"},\"27135\":{\"name\":\"Roseau, MN\",\"path\":\"m 533.62898,58.881143 -0.0392,0.394 0.0642,1.109 0.33696,0.651 0.7078,0.435 0.25852,0.06 0.1765,0 1.19631,-0.249 0.15154,-0.06 0.33875,-0.201 0.37796,-0.392 0.0713,4.723 -3.88844,0.03 0.0232,3.931 -4.00968,0.06 -12.11638,-0.128 -0.009,-1.737 -0.24247,-2.2 0.025,-6.422 16.57713,0\"},\"27069\":{\"name\":\"Kittson, MN\",\"path\":\"m 504.42914,58.753143 12.62271,0.128 -0.025,6.422 0.24247,2.2 0.009,1.737 -11.96662,-0.09 1.12677,-3.126 -0.67571,-1.535 -0.29774,-0.884 -1.10894,-3.623 -0.0892,-0.481 0.0178,-0.339 0.0713,-0.337 0.0731,-0.07\"},\"27125\":{\"name\":\"Red Lake, MN\",\"path\":\"m 527.7883,83.109143 0.009,1.993 -1.98191,-0.0053 -0.0113,2.012251 -8.03539,0 -0.0274,-2.007751 -1.99796,0.0098 0,-2.644 12.03615,0 0.009,0.651\"},\"27113\":{\"name\":\"Pennington, MN\",\"path\":\"m 529.56404,77.692143 0.18541,3.481 0.016,1.968 -1.9772,-0.03 -0.009,-0.651 -12.03615,0 -0.25852,-4.807 3.80286,0 1.1553,0.05 2.81159,0.03 6.30958,-0.05\"},\"27089\":{\"name\":\"Marshall, MN\",\"path\":\"m 505.31166,69.151143 11.96662,0.09 12.11638,0.128 0,2.958 0.025,0.98 0.1355,0 0.009,4.379 -6.30958,0.05 -2.81159,-0.03 -1.1553,-0.05 -3.80286,0 -10.03577,-0.06 0.009,-0.468 0.50634,-1.952 -0.0981,-5.48 -0.36014,-0.442 -0.12124,-0.06 -0.0731,-0.04\"},\"27119\":{\"name\":\"Polk, MN\",\"path\":\"m 515.48471,77.660143 0.25852,4.807 0,2.644 1.99796,-0.0098 0.0274,2.007751 8.03539,0 0.0113,-2.012251 1.98192,0.0053 -0.009,-1.993 1.9772,0.03 0.0802,5.577 0.16224,0.369 0.2389,0 0,3.954 -8.04252,0.04 -12.33568,-0.06 -0.53843,-3.961 -2.02355,-4.622 -1.49583,-5.391 -0.36192,-1.398 0,-0.06 10.03577,0.06\"},\"27107\":{\"name\":\"Norman, MN\",\"path\":\"m 522.20435,93.082143 0,7.945997 -2.0093,0 -9.96446,-0.04 -0.0802,-1.992997 -0.2817,-5.978 12.33568,0.06\"},\"27087\":{\"name\":\"Mahnomen, MN\",\"path\":\"m 530.24687,93.041143 0.0892,7.970997 -8.13167,0.02 0,-7.945997 8.04252,-0.04\"},\"27029\":{\"name\":\"Clearwater, MN\",\"path\":\"m 529.7655,83.141143 -0.016,-1.968 5.50372,-0.03 0.57944,3.36 0.1765,4.547 0.0713,5.947 0.27456,5.945997 -6.01897,0.06 -0.0892,-7.970997 0,-3.954 -0.2389,0 -0.16224,-0.369 -0.0802,-5.577\"},\"27007\":{\"name\":\"Beltrami, MN\",\"path\":\"m 533.40434,69.313143 2.01821,0 0.0481,3.961 12.10212,-0.185 0.35301,11.885 0.0571,3.697 0.11946,2.876 0.009,2.58 -0.0242,0.818204 -3.94624,0.0338 -8.06035,0.03 -0.0713,-5.947 -0.1765,-4.547 -0.57944,-3.361 -5.50372,0.03 -0.18541,-3.48 -0.009,-4.378 -0.1355,0 -0.025,-0.981 0,-2.958 4.00968,-0.06\"},\"27031\":{\"name\":\"Cook, MN\",\"path\":\"m 600.30118,75.275143 0.82012,-0.683 1.38173,-0.676 0.59548,0 0.0553,0.02 0.0731,0.09 0.61866,1.373 0.26386,0.756 0,0.02 0.49742,1.006 0.16224,0.151 2.80446,-0.522 6.0885,-0.482 0.62935,-0.03 0.70067,0.129 0.27813,0.06 0.80407,0.321 0.43502,0.595 0.0785,0.186 -0.0321,0.312 0.0731,0.16 0.40292,0.291 1.14104,0.545 0.37619,0.02 0.3851,-0.185 2.95956,-0.546 2.57803,-0.33 -0.0232,0.216 -0.0571,0.06 -0.8843,0.692 -0.25674,0.193 -3.31792,1.952 -2.11983,1.159 -1.207,0.658 -1.13391,0.49 -1.38885,0.465 -1.06972,0.378 -2.94887,1.238 -1.45482,0.62 -3.00592,1.967 -1.98434,1.649 -2.31416,2.225 -0.45642,-9.346 -0.28169,-4.307 -0.26565,-2.892\"},\"27075\":{\"name\":\"Lake, MN\",\"path\":\"m 600.30118,75.275143 0.26565,2.892 0.28169,4.307 0.45642,9.346 -0.34588,0.208 -1.21948,1.366 -0.42432,0.499 -1.93798,2.684 -2.51742,3.021 -0.30487,0.329 -0.6347,0.426997 -0.8433,0.459 -1.9772,2.032 -0.49029,0.537 -0.86112,1.03 -0.49564,-13.258997 -0.37975,-4.837 -0.0963,-1.945 -0.36192,-8.718 0.87182,-0.138 0.42433,0.1 0.016,0.03 0.0553,0.1 0.22464,1.109 -0.11232,0.499 -0.0553,0.145 0.007,0.06 1.11786,0.328 2.40153,0.563 2.47641,-0.176 0.59191,-0.104 0.3637,-0.13 0.23891,-0.128 0.0107,0 3.25373,-2.619\"},\"27061\":{\"name\":\"Itasca, MN\",\"path\":\"m 568.74617,83.422143 0.007,1.593 0.0981,2.321 0.27278,2.644 0.21572,5.311 0.0963,2.772 0.25673,3.214997 0.0588,1.895 -11.35688,0.218 -0.12837,-6.275997 -0.15155,-0.08 -1.14995,-0.218 -0.30487,-0.02 -0.007,0.09 -0.3851,0.337 -0.17829,0.1 -0.42432,-0.265 -1.35141,-0.917 -0.18364,-0.192 -0.12837,-0.346 0,-0.571 0.0303,-0.06 -0.041,-0.41 -0.60974,-1.068 -0.24069,-0.217 -0.36192,-0.06 -2.79555,1.327 -0.38688,0.225 -0.97344,-0.275 -0.51169,-0.369 -0.009,-2.58 -0.11946,-2.876 -0.0571,-3.697 10.01973,-0.216 -0.025,-1.198 10.82559,-0.128\"},\"27057\":{\"name\":\"Hubbard, MN\",\"path\":\"m 536.08043,95.002143 8.06035,-0.03 0.13015,2.025 0.19077,7.882997 0.0321,3.97 -2.00751,0.02 -5.95479,0.04 -0.0339,-3.968 -0.11232,-0.266 -0.0303,-1.648 0,-2.073 -0.27456,-5.945997\"},\"27021\":{\"name\":\"Cass, MN\",\"path\":\"m 544.14078,94.970143 3.94624,-0.0338 0.0242,-0.818204 0.51169,0.369 0.97344,0.275 0.38688,-0.225 2.79555,-1.327 0.36192,0.06 0.24069,0.217 0.60974,1.068 0.041,0.41 -0.0303,0.06 0,0.571 0.12837,0.346 0.18364,0.192 1.35141,0.917 0.42432,0.265 0.17829,-0.1 0.3851,-0.337 0.007,-0.09 0.30487,0.02 1.14995,0.218 0.15155,0.08 0.23355,11.483001 -8.97496,0.122 -0.009,2.644 0.0321,1.347 0.25674,1.095 0.15332,5.777 0.0161,0.948 -0.0802,0.241 -0.14441,0.04 -0.0392,-0.234 -0.10519,-0.169 -1.23018,-0.827 -0.53843,0.04 -0.11232,0.194 -0.312,0.2 -0.75772,0.273 -0.15868,-0.04 -1.29436,-0.57 -0.45107,-0.41 -1.25336,-0.449 -0.77198,-0.571 -0.17472,-5.407 -0.0642,-3.978 2.00751,-0.02 -0.0321,-3.97 -0.19077,-7.883001 -0.13015,-2.025\"},\"27159\":{\"name\":\"Wadena, MN\",\"path\":\"m 542.48628,108.86414 0.0642,3.978 0.17472,5.407 0.77198,0.571 -6.76599,0.07 -0.19968,-7.989 0,-2.001 5.95479,-0.04\"},\"27005\":{\"name\":\"Becker, MN\",\"path\":\"m 536.35499,100.94814 0,2.074 0.0303,1.647 0.11232,0.266 0.0339,3.968 0,2.001 -7.4827,0.1 -8.556,-0.05 -0.29774,-9.915 2.0093,0 8.13167,-0.02 6.01897,-0.06\"},\"27027\":{\"name\":\"Clay, MN\",\"path\":\"m 520.19505,101.03714 0.29774,9.915 0.018,2.00759 -1.71529,-0.0146 -7.97834,-0.04 -0.009,-1.287 0.30666,-4.998 -0.19434,-0.531 -0.66679,-2.186 -0.0232,-2.908 9.96446,0.04\"},\"27167\":{\"name\":\"Wilkin, MN\",\"path\":\"m 510.81716,112.90614 7.97834,0.04 -0.007,7.987 0.24247,0 -0.0178,3.994 -0.016,1.993 -4.99739,-0.03 0.29774,-0.836 0.0392,-0.145 0.0321,-0.465 -0.0481,-0.403 -0.61153,-4.821 -2.20897,-5.32 -0.68284,-1.984 0,0\"},\"27111\":{\"name\":\"Otter Tail, MN\",\"path\":\"m 520.49279,110.95214 8.556,0.05 7.4827,-0.1 0.19968,7.989 0.21038,6.017 -9.99833,0.03 -7.93021,-0.02 0.0178,-3.994 -0.24247,0 0.007,-7.987 1.71529,0.0146 -0.018,-2.00759\"},\"27137\":{\"name\":\"St. Louis, MN\",\"path\":\"m 568.1186,66.669143 1.66342,0 10.90403,6.035 0.40114,-0.28 3.19847,-0.234 0.41006,0.747 0.70067,1.462 0.0713,0.113 0.12836,0.178 2.81872,0.956 0.36192,8.718 0.0963,1.945 0.37975,4.837 0.49564,13.258997 -0.72028,0.36 -0.64362,0.474 -2.69213,2.308 -0.41006,0.377 -0.12124,0.152 0.10697,0.321 0.40115,0.628 0.64183,0.763 0.17651,0.1 -0.082,0.06 -0.22285,-0.1 -0.91462,-0.894 -0.42789,0.03 -1.1232,0.764 -0.0892,0.184 -0.016,0.169 0.0553,0.145 0,0.02 0.0802,0.09 0.016,0.02 0.016,0.257 -0.21573,0.563 -0.0731,0.07 -0.0784,0.05 -0.47603,0.03 -0.44215,-0.04 -0.36014,-0.25 -0.24247,-2.298 -3.67985,0.1 -8.36522,0.266 -0.0945,-5.948 -0.0588,-1.895 -0.25673,-3.214997 -0.0963,-2.772 -0.21572,-5.311 -0.27278,-2.644 -0.0981,-2.321 -0.007,-1.593 -0.0339,-0.875 -0.17472,-2.089 -0.15511,-1.045 -0.13371,-3.978 -0.0428,-3.92 -0.0874,-4.846\"},\"27017\":{\"name\":\"Carlton, MN\",\"path\":\"m 569.8462,109.12114 8.36522,-0.266 3.67985,-0.1 0.24247,2.298 0.20859,5.632 -12.14312,0.387 -0.11946,-3.448 -0.12836,-0.539 -0.0499,-0.85 -0.0464,-1.134 -0.009,-1.984\"},\"27115\":{\"name\":\"Pine, MN\",\"path\":\"m 570.19921,117.07614 12.14312,-0.387 0.21573,5.964 0.041,0.996 0.0321,0.901 -2.33913,1.46 -3.34288,2.195 -0.005,0 -0.79872,0.699 -0.20147,0.265 -0.19968,0.36 -1.61349,3.231 -4.83871,0.137 -0.19434,-5.737 1.40669,-0.06 -0.10163,-4.058 -0.20324,-5.978\"},\"27065\":{\"name\":\"Kanabec, MN\",\"path\":\"m 564.35853,123.32714 6.04392,-0.273 0.10163,4.058 -1.40669,0.06 0.19434,5.737 -5.99401,0.09 -0.15333,-3.23 -0.0624,-2.45 0.71315,-0.03 0.005,-0.62221 0.63101,-0.0448 -0.0731,-3.294\"},\"27001\":{\"name\":\"Aitkin, MN\",\"path\":\"m 569.75171,103.17314 0.0945,5.948 0.009,1.984 0.0464,1.134 0.0499,0.85 0.12836,0.539 0.11946,3.448 0.20324,5.978 -6.04392,0.273 0.016,-0.603 -0.0481,-1.51 -1.65628,0.03 -4.18618,0.191 -0.18364,-0.12 -0.0499,-0.05 -0.007,-0.06 -0.18363,-7.586 0.4885,-1.68 -0.0481,-3.343 -0.10518,-5.207 11.35688,-0.218\"},\"27035\":{\"name\":\"Crow Wing, MN\",\"path\":\"m 549.74969,120.81314 0.14441,-0.04 0.0802,-0.241 -0.0161,-0.948 -0.15332,-5.777 -0.25674,-1.095 -0.0321,-1.347 0.009,-2.644 8.97496,-0.122 0.0481,3.343 -0.4885,1.68 0.18363,7.586 0.007,0.06 0.0499,0.05 0.18364,0.12 -0.18364,1.993 -9.02488,0.169 -0.025,-0.763 0.016,-1.214 0.48316,-0.802\"},\"27097\":{\"name\":\"Morrison, MN\",\"path\":\"m 544.75052,119.26914 0.45107,0.41 1.29436,0.57 0.15868,0.04 0.75772,-0.273 0.312,-0.2 0.11232,-0.194 0.53843,-0.04 1.23018,0.827 0.10519,0.169 0.0392,0.234 -0.48316,0.802 -0.016,1.214 0.025,0.763 9.02488,-0.169 0.0945,3.979 0.082,0 0.61865,1.341 0.12837,2.33 -3.96154,0.05 -5.51263,0.152 1.32467,1.054 -5.98509,0.121 -0.33875,-13.179\"},\"27153\":{\"name\":\"Todd, MN\",\"path\":\"m 543.49716,118.82014 1.25336,0.449 0.33875,13.179 -7.97835,0.112 -0.16937,-7.65 -0.21038,-6.017 6.76599,-0.07\"},\"27041\":{\"name\":\"Douglas, MN\",\"path\":\"m 536.94155,124.91014 0.16937,7.65 0,0.33 -9.96624,0.03 -0.007,-3.986 -0.1765,0 -0.0178,-3.994 9.99833,-0.03\"},\"27051\":{\"name\":\"Grant, MN\",\"path\":\"m 519.01301,124.92614 7.93021,0.02 0.0178,3.994 0.1765,0 0.007,3.986 -7.96943,0 -0.17828,-6.01 0.016,-1.993\"},\"27155\":{\"name\":\"Traverse, MN\",\"path\":\"m 513.99958,126.88714 4.99739,0.03 0.17828,6.01 0,4.003 -9.40285,-0.07 -0.28883,-0.369 -0.0642,-0.09 0.22464,-0.771 0.0553,-0.128 0.025,-0.02 0.0321,-0.04 0.025,-0.03 1.46909,-1.18 0.55625,-0.362 0.61866,-0.337 0.32805,-0.33 1.12499,-1.671 0.025,-0.06 0.016,-0.03 0.016,-0.05 0.016,-0.114 0.0392,-0.209 0.0571,-0.497 0.0713,-0.61 0.009,-0.03 0,-0.05 0.0891,-1.004 -0.21751,-1.993\"},\"27011\":{\"name\":\"Big Stone, MN\",\"path\":\"m 509.7724,136.85914 9.40285,0.07 0.19077,0 -0.0161,3.968 2.01821,0.03 0.2086,5.408 -1.13391,-0.394 -1.64737,-0.665 -0.15154,-0.332 -0.68997,-0.314 -2.04139,-0.433 -0.26565,-1.326 -0.30665,-0.706 -0.52951,-0.426 -1.5511,-0.756 -1.24885,-0.15868 -1.11345,-2.46032 -1.12499,-1.503\"},\"27151\":{\"name\":\"Swift, MN\",\"path\":\"m 527.34436,140.90914 7.97478,-0.05 0.18364,5.987 -12.84023,0.05 -1.08577,-0.563 -0.2086,-5.408 5.97618,-0.02\"},\"27149\":{\"name\":\"Stevens, MN\",\"path\":\"m 527.14468,132.92214 0.016,4.01 0.16937,0 0.0143,3.977 -5.97618,0.02 -2.01821,-0.03 0.0161,-3.968 -0.19077,0 0,-4.003 7.96943,0\"},\"27121\":{\"name\":\"Pope, MN\",\"path\":\"m 537.11092,132.89014 0.0303,3.992 0.13728,0 0.0321,3.972 -1.99147,0 -7.97478,0.05 -0.0143,-3.977 -0.16937,0 -0.016,-4.01 9.96624,-0.03\"},\"27145\":{\"name\":\"Stearns, MN\",\"path\":\"m 545.08927,132.44814 5.98509,-0.121 2.06635,4.926 1.72047,3.109 -0.68455,1.84572 -1.42901,1.22533 -0.51911,-0.30493 -0.76727,0.48088 -2.1403,0.06 0.0164,-0.981 -2.33684,0.02 -3.70302,0.06 -0.0267,-1.993 -5.96013,0.08 -0.0321,-3.972 -0.13728,0 -0.0303,-3.992 0,-0.33 7.97835,-0.112\"},\"27009\":{\"name\":\"Benton, MN\",\"path\":\"m 551.07436,132.32714 -1.32467,-1.054 5.51263,-0.152 3.96154,-0.05 0.2086,6.026 -6.29175,0.154 -2.06635,-4.926\"},\"27095\":{\"name\":\"Mille Lacs, MN\",\"path\":\"m 558.48397,121.43014 4.18618,-0.191 1.65628,-0.03 0.0481,1.51 -0.016,0.603 0.0731,3.294 -0.63101,0.0448 -0.005,0.62221 -0.71315,0.03 0.0624,2.45 0.15333,3.23 0.15154,4.026 -4.0168,0.08 -0.2086,-6.026 -0.12837,-2.33 -0.61865,-1.341 -0.082,0 -0.0945,-3.979 0.18364,-1.993\"},\"27059\":{\"name\":\"Isanti, MN\",\"path\":\"m 569.29173,132.90614 0.11232,3.97 1.94511,0.288 0.14441,3.005 -2.32308,0.02 -4.64438,0.143 -0.97166,0 -0.10519,-3.311 -0.15154,-4.026 5.99401,-0.09\"},\"27025\":{\"name\":\"Chisago, MN\",\"path\":\"m 574.13044,132.76914 -0.65432,2 -0.0214,0.364 0.007,0.151 0.041,0.61 0.0553,0.451 0.21751,0.168 0.77199,0.13 0.32091,-0.05 1.27119,0.685 0.79338,1.501 0.32091,1.624 -0.60974,1.558 -0.42789,0.53 -0.0214,0.02 -0.19433,0.176 -4.41796,0.128 -0.0891,-2.644 -0.14441,-3.005 -1.94511,-0.288 -0.11232,-3.97 4.83871,-0.137\"},\"27123\":{\"name\":\"Ramsey, MN\",\"path\":\"m 568.38246,148.92914 -0.0507,-2.21144 3.34728,0.0734 0.18542,5.359 -2.57982,0.138 -0.90213,-3.359\"},\"27003\":{\"name\":\"Anoka, MN\",\"path\":\"m 563.55445,140.33014 0.97166,0 4.64438,-0.143 2.32308,-0.02 0.0891,2.644 0.0963,3.978 -3.34728,-0.0734 0.0507,2.21144 -0.7662,-0.0202 -0.23892,-2.71515 -3.75871,-1.97369 -0.0642,-3.89\"},\"27141\":{\"name\":\"Sherburne, MN\",\"path\":\"m 563.44926,137.01914 0.10519,3.311 0.0642,3.89 -0.15154,-0.02 -0.99662,-1.022 -1.43165,-0.04 -1.36568,0.05 -0.23355,-0.06 -1.63133,-0.932 -2.94708,-1.84 -1.72047,-3.109 6.29175,-0.154 4.0168,-0.08\"},\"27171\":{\"name\":\"Wright, MN\",\"path\":\"m 551.46124,143.60914 0.76727,-0.48088 0.51911,0.30493 1.42901,-1.22533 0.68455,-1.84572 2.94708,1.84 1.63133,0.932 0.23355,0.06 1.36568,-0.05 1.43165,0.04 0.99662,1.022 -1.93798,0.988 -0.22464,0.185 -1.45482,2.771 -0.2086,2.33 -4.00254,0.07 -3.96867,0.06 -0.2086,-6.999\"},\"27093\":{\"name\":\"Meeker, MN\",\"path\":\"m 543.29748,142.76514 3.70302,-0.06 2.33684,-0.02 -0.0164,0.981 2.1403,-0.06 0.2086,6.999 -4.05539,0.0697 0.0707,2.01134 -4.17192,0.06 -0.21573,-9.988\"},\"27067\":{\"name\":\"Kandiyohi, MN\",\"path\":\"m 535.31914,140.86114 1.99147,0 5.96013,-0.08 0.0267,1.993 0.21573,9.988 -7.99439,0.1 -0.016,-6.003 -0.18364,-5.987\"},\"27023\":{\"name\":\"Chippewa, MN\",\"path\":\"m 522.66255,146.89614 12.84023,-0.05 0.016,6.003 -3.83317,0.04 0.025,3.167 -4.16478,-4.195 -4.88328,-4.966\"},\"27163\":{\"name\":\"Washington, MN\",\"path\":\"m 571.58271,142.81314 4.41796,-0.128 -0.24782,2 -0.33875,3.03 0.0499,0.755 0.39936,0.853 0.34945,1.615 -0.1248,1.735 -0.56874,2.717 -3.67293,-0.18462 0.018,-3.05538 -0.18542,-5.359 -0.0963,-3.978\"},\"27037\":{\"name\":\"Dakota, MN\",\"path\":\"m 569.28459,152.28814 2.57982,-0.138 -0.0181,3.05538 3.67293,0.18462 1.166,0.674 0.0624,1.945 -0.90871,0.0358 0.003,1.97321 -2.07526,0.07 -0.003,0.64691 -1.94037,0.0771 0.0232,0.995 -4.00731,-0.048 -0.0184,-1.49399 -0.007,-2 -0.65253,0.02 -0.21573,-1.992 -0.0731,-1.688 1.76269,-0.65901 0.64953,-1.65499\"},\"27053\":{\"name\":\"Hennepin, MN\",\"path\":\"m 563.61863,144.22014 3.75871,1.97369 0.23892,2.71515 0.7662,0.0202 0.90213,3.359 -0.64953,1.65499 -1.76269,0.65901 -3.12537,-0.227 -0.0481,-2 -4.02572,0.105 -0.0321,-2.002 0.2086,-2.33 1.45482,-2.771 0.22464,-0.185 1.93798,-0.988 0.15154,0.02\"},\"27139\":{\"name\":\"Scott, MN\",\"path\":\"m 563.747,154.37514 3.12537,0.227 0.0731,1.688 0.21573,1.992 0.65253,-0.02 0.007,2 -3.9758,0.114 -6.33276,0.161 2.28208,-2.291 0.0731,0.03 0.43323,-0.179 1.3746,-1.077 0.40114,-0.538 -0.11232,-0.209 0.0161,-0.337 0.82547,-1.308 0.60439,-0.252 0.33696,0\"},\"27019\":{\"name\":\"Carver, MN\",\"path\":\"m 555.63851,150.55114 4.00254,-0.07 0.0321,2.002 4.02572,-0.105 0.0481,2 -0.33696,0 -0.60439,0.252 -0.82547,1.308 -0.0161,0.337 0.11232,0.209 -0.40114,0.538 -1.3746,1.077 -0.43323,0.178 -0.0731,-0.03 -4.00254,-1.686 -0.15333,-6.012\"},\"27085\":{\"name\":\"McLeod, MN\",\"path\":\"m 551.66984,150.60814 3.96867,-0.06 0.15333,6.012 -1.99147,0.04 -1.98612,0.25 0.0178,1.799 -3.38389,0.07 -0.59547,0 -0.0321,-2.01 -0.13549,-4.025 -0.0707,-2.01134 4.05539,-0.0697\"},\"27143\":{\"name\":\"Sibley, MN\",\"path\":\"m 555.79184,156.56314 4.00254,1.687 -2.28208,2.291 -0.26564,2 -11.40324,0.217 -0.11232,-1.986 -0.0642,-4.018 2.1537,-0.04 0.0321,2.009 0.59547,0 3.38389,-0.07 -0.0178,-1.799 1.98612,-0.25 1.99147,-0.04\"},\"27129\":{\"name\":\"Renville, MN\",\"path\":\"m 547.68513,152.68914 0.13549,4.025 -2.1537,0.04 0.0642,4.018 0.11232,1.986 -2.57268,0.02 -1.4049,-0.94 -8.1388,-4.532 -2.01643,-1.253 -0.025,-3.167 3.83317,-0.04 7.99439,-0.1 4.17192,-0.06\"},\"27073\":{\"name\":\"Lac qui Parle, MN\",\"path\":\"m 521.57678,146.33314 1.08577,0.563 4.88328,4.966 0,1.028 -1.80536,0.009 -0.008,1.97553 -9.84501,-0.02 0.025,-10.663 2.04139,0.433 0.68997,0.314 0.15154,0.332 1.64737,0.665 1.13391,0.394\"},\"27173\":{\"name\":\"Yellow Medicine, MN\",\"path\":\"m 515.88764,154.85914 9.84501,0.02 0.008,-1.97553 1.80536,-0.009 0,-1.028 4.16478,4.195 2.01643,1.253 0.016,3.607 -3.84208,0 -0.15155,-2.017 -8.01221,0 -5.87456,-0.03 0.025,-4.018\"},\"27081\":{\"name\":\"Lincoln, MN\",\"path\":\"m 521.73724,158.90914 0.22464,9.995 -6.16338,-0.02 0.0499,-7.987 0.0143,-2.017 5.87456,0.03\"},\"27083\":{\"name\":\"Lyon, MN\",\"path\":\"m 529.95627,168.91314 -7.74479,0 -0.2496,0 -0.22464,-9.995 8.01221,0 0.15155,2.017 0.0553,7.987\"},\"27127\":{\"name\":\"Redwood, MN\",\"path\":\"m 541.86584,161.84214 0.0571,4.974 -3.96867,0.06 -0.009,2 -5.82642,0.02 -2.16262,0.02 -0.0553,-7.987 3.84208,0 -0.016,-3.607 8.1388,4.532\"},\"27015\":{\"name\":\"Brown, MN\",\"path\":\"m 543.27074,162.78214 0.52595,0.16 0.6971,0.346 3.48016,1.76 0.19255,0.137 0.39401,0.385 1.50296,1.544 0.10519,3.591 -8.09244,0.128 -4.13519,-0.0165 0.004,-1.94449 0.009,-2.001 3.96867,-0.06 -0.0571,-4.974 1.4049,0.94\"},\"27103\":{\"name\":\"Nicollet, MN\",\"path\":\"m 557.24666,162.54114 -0.49742,2.009 -0.78803,2.354 0.0392,0.675 0.18542,1.462 -0.025,0.161 -0.69175,0.337 -0.14442,0.02 -0.47959,-0.146 -0.49207,-0.281 -0.20147,-0.159 -3.41419,-1.624 -0.67393,-0.232 -1.50296,-1.544 -0.39401,-0.385 -0.19255,-0.137 -3.48016,-1.76 -0.6971,-0.346 -0.52595,-0.16 2.57268,-0.02 11.40324,-0.217\"},\"27079\":{\"name\":\"Le Sueur, MN\",\"path\":\"m 557.5123,160.54114 6.33276,-0.161 0.19077,8.011 -4.00076,0.1 -0.0374,-0.9803 -3.99722,0.0723 -0.0392,-0.675 0.78803,-2.354 0.49742,-2.009 0.26564,-2\"},\"27131\":{\"name\":\"Rice, MN\",\"path\":\"m 563.84506,160.38014 3.9758,-0.114 0.0184,1.49399 4.00731,0.048 0.16937,6.342 -0.0891,0 -5.93696,0.176 -1.95402,0.07 -0.19077,-8.011\"},\"27049\":{\"name\":\"Goodhue, MN\",\"path\":\"m 576.68529,156.06414 1.69372,1.439 0.17651,0.224 0.041,0.225 1.18918,1.182 0.25851,0.119 0.69889,0.08 2.20898,0.09 0.28169,0.06 0.18542,0.09 0.15867,0.137 0.0571,0.09 0.0907,1.09715 1.21258,0.84785 -3.09506,0.103 0.04,1.99109 -1.93697,0.0759 0.1355,4.009 -2.10201,0.05 -5.9637,0.177 -0.16937,-6.342 -0.0232,-0.995 1.94037,-0.0766 0.003,-0.64641 2.07526,-0.07 -0.003,-1.97321 0.90871,-0.0358 -0.0624,-1.945\"},\"27157\":{\"name\":\"Wabasha, MN\",\"path\":\"m 584.93819,161.74614 2.46368,1.004 1.85159,0.86839 0.92749,0.84954 0.0222,0.51007 -0.0982,0.35854 0.39218,0.33969 0.35445,1.26378 0.26016,0.52827 -3.25631,0.1601 0.0797,2.00862 -3.95441,0.153 -0.0891,-2.009 -3.80999,0.144 -0.1355,-4.01 1.93697,-0.0754 -0.04,-1.99059 3.09506,-0.103\"},\"27169\":{\"name\":\"Winona, MN\",\"path\":\"m 591.11183,167.46842 5.23687,3.75676 2.5868,0.74896 2.40153,3.054 -7.38465,0.353 -5.76936,0.241 -0.24782,-5.985 -0.0797,-2.00862 3.25631,-0.1601\"},\"27109\":{\"name\":\"Olmsted, MN\",\"path\":\"m 577.97965,167.97314 2.10201,-0.05 3.80999,-0.144 0.0891,2.009 3.95441,-0.153 0.24782,5.985 -6.10633,0.547 -4.00255,-0.192 -0.0945,-8.004\"},\"27039\":{\"name\":\"Dodge, MN\",\"path\":\"m 572.01595,168.15014 5.9637,-0.177 0.0945,8.004 -5.88882,0.201 -0.25851,-8.028 0.0891,0\"},\"27147\":{\"name\":\"Steele, MN\",\"path\":\"m 571.92681,168.15014 0.25851,8.028 -0.0624,0 -5.91734,0.177 -0.21573,-8.029 5.93696,-0.176\"},\"27161\":{\"name\":\"Waseca, MN\",\"path\":\"m 564.03583,168.39114 1.95402,-0.07 0.21573,8.029 -4.00076,0.103 -1.9772,0.05 -0.19255,-8.019 4.00076,-0.1\"},\"27013\":{\"name\":\"Blue Earth, MN\",\"path\":\"m 560.03507,168.48714 0.19255,8.019 -7.93912,0.178 -2.01643,0.03 -0.10341,-6.01 -0.10519,-3.591 0.67393,0.232 3.41419,1.624 0.20147,0.159 0.49207,0.281 0.47959,0.146 0.14442,-0.02 0.69175,-0.337 0.025,-0.161 -0.18542,-1.462 3.99722,-0.0723 0.0374,0.9803\"},\"27165\":{\"name\":\"Watonwan, MN\",\"path\":\"m 542.07622,170.83314 8.09244,-0.128 0.10341,6.01 -8.03539,0.112 -0.0802,0 -0.0802,-5.994\"},\"27033\":{\"name\":\"Cottonwood, MN\",\"path\":\"m 532.11889,168.89014 5.82642,-0.02 -0.004,1.94449 4.13519,0.0165 0.0802,5.994 -9.82897,0.1 -0.16759,0 -0.041,-8.033\"},\"27101\":{\"name\":\"Murray, MN\",\"path\":\"m 529.95627,168.91314 2.16262,-0.02 0.041,8.033 -9.76299,0 -0.20147,0 0.0161,-8.012 7.74479,0\"},\"27117\":{\"name\":\"Pipestone, MN\",\"path\":\"m 515.7985,168.88114 6.16338,0.02 0.2496,0 -0.0161,8.012 -6.44507,-0.03 0.0481,-8.003\"},\"27133\":{\"name\":\"Rock, MN\",\"path\":\"m 515.75036,176.88414 6.44507,0.03 0.20147,0 -0.0178,8.052 -6.6608,-0.02 0.0321,-8.06\"},\"27105\":{\"name\":\"Nobles, MN\",\"path\":\"m 522.3969,176.91614 9.76299,0 0.16759,0 0.0178,8.013 -6.7749,0.04 -3.19134,0 0.0178,-8.052\"},\"27063\":{\"name\":\"Jackson, MN\",\"path\":\"m 542.15645,176.82714 0.0802,0 0.0963,8.021 -1.01267,0.02 -7.86602,0.07 -1.10895,0 -0.0178,-8.013 9.82897,-0.1\"},\"27091\":{\"name\":\"Martin, MN\",\"path\":\"m 552.2885,176.68414 0.14619,8.011 -3.25552,0.05 -6.84622,0.1 -0.0963,-8.021 8.03539,-0.112 2.01643,-0.03\"},\"27043\":{\"name\":\"Faribault, MN\",\"path\":\"m 562.20482,176.45814 0.19255,8.043 -5.35931,0.121 -4.60337,0.07 -0.14619,-8.011 7.93912,-0.178 1.9772,-0.05\"},\"27047\":{\"name\":\"Freeborn, MN\",\"path\":\"m 572.12292,176.17814 0.25495,8.043 -7.45596,0.215 -2.52454,0.06 -0.19255,-8.043 4.00076,-0.103 5.91734,-0.177\"},\"27099\":{\"name\":\"Mower, MN\",\"path\":\"m 578.07414,175.97714 4.00255,0.192 0.2906,7.69 -1.73651,0.06 -7.84285,0.28 -0.41006,0.02 -0.25495,-8.043 0.0624,0 5.88882,-0.201\"},\"29143\":{\"name\":\"New Madrid, MO\",\"path\":\"m 638.39755,334.91214 3.11824,-0.442 3.88844,5.238 -1.42273,3.19 -0.1955,0.86287 -0.63404,0.32741 -0.47196,-0.35741 0.0571,-0.70977 0.18007,-0.339 0.0285,-0.06 0.0232,-0.09 0.0571,-0.227 0.016,-0.06 0,-0.1 -0.007,-0.04 0,0 -0.0571,-0.25 -0.11232,-0.266 -0.0107,-0.02 -0.11767,-0.183 -0.025,-0.02 -0.0392,-0.03 -0.0481,-0.03 -0.28169,-0.08 -0.51347,-0.08 -0.33696,0.05 -0.1141,0.07 -0.21038,0.281 -0.0303,0.04 -0.0232,0.09 -0.025,0.105 -0.0178,0.08 0.0178,0.07 0.0178,0.1 0.007,0.02 0.19968,0.427 0.025,0.03 0.40828,0.584 0.26479,1.25996 0.69118,0.94016 -0.003,1.26737 -0.80635,0.26951 -0.96454,-1.485 -0.3637,-0.153 -1.33181,0.24 -1.35141,0.521 -2.81872,0.178 -0.8843,0 -0.31557,-5.559 4.72639,-0.267 -0.42433,-5.358 0.23178,-0.02\"},\"29155\":{\"name\":\"Pemiscot, MO\",\"path\":\"m 641.89376,346.81114 -0.87453,0.14623 1.08912,0.80804 0.37303,0.77035 -1.05913,0.64787 -1.54908,-0.10591 0.70839,1.33342 1.18224,0.58179 -0.14183,0.83005 -1.19693,0.66454 -0.14333,1.20119 -0.68122,1.03568 -4.81147,0.39675 -0.60974,-9.009 0.8843,0 2.81872,-0.178 1.35141,-0.521 1.33181,-0.24 0.3637,0.153 0.96454,1.485\"},\"29005\":{\"name\":\"Atchison, MO\",\"path\":\"m 527.3301,252.38714 6.79808,0.07 2.97383,0.02 0.0321,2.296 0.41719,0 0.0232,2.188 -0.0303,2.853 -6.47716,-0.03 0.0178,-0.418 0,-0.03 0.005,-0.04 -0.0463,-0.119 -1.21414,-1.182 -1.13212,-2.846 -0.0963,-0.408 0.19968,-0.185 0.37797,-0.676 -0.65075,-0.578 -0.22643,0.491 -0.97166,-1.414\"},\"29087\":{\"name\":\"Holt, MO\",\"path\":\"m 537.54416,259.82014 1.65272,0 0.37084,0.717 -0.0464,0.09 -0.0891,0.708 0.23356,1.16 0.1034,0.175 0.21038,0.168 0.92175,5.311 -0.60261,0.683 -0.0143,0.02 -0.1034,0.1 -0.13015,0.05 -0.66858,0.06 -0.0802,0 -0.0642,-0.02 -0.33696,-0.128 -0.43324,-0.16 -0.85935,-0.553 -2.12161,-1.92 -0.11232,-0.163 -0.009,-0.215 -4.29849,-6.044 0,-0.06 6.47716,0.03\"},\"29165\":{\"name\":\"Platte, MO\",\"path\":\"m 539.06317,276.68614 8.82877,-0.08 0.041,1.767 0.082,6.862 -3.39994,-0.907 -3.16637,-5.017 -2.38548,-2.624\"},\"29021\":{\"name\":\"Buchanan, MO\",\"path\":\"m 547.77249,269.94314 0.0321,1.681 0.0874,4.981 -8.82877,0.08 0.6971,-2.097 0.20859,-0.298 0.6044,-0.882 0.0713,-0.08 1.26941,-1.124 0.37083,-0.06 0.36906,-0.822 -0.13728,-0.634 -0.14442,-0.683 5.40032,-0.06\"},\"29003\":{\"name\":\"Andrew, MO\",\"path\":\"m 547.61381,262.84014 0.0374,2.018 0.12124,5.085 -5.40032,0.06 -1.47086,-1.849 -0.92175,-5.311 7.63425,0\"},\"29147\":{\"name\":\"Nodaway, MO\",\"path\":\"m 542.09939,252.51514 4.91181,0.02 0.64005,4.265 -0.0374,6.035 -7.63425,0 -0.21038,-0.168 -0.1034,-0.174 -0.23356,-1.161 0.0891,-0.708 0.0464,-0.09 -0.37084,-0.717 -1.65272,0 0.0303,-2.853 -0.0232,-2.187 -0.41719,0 -0.0321,-2.297 4.99738,0.03\"},\"29227\":{\"name\":\"Worth, NO\",\"path\":\"m 549.79783,252.50614 4.14695,-0.1 0.39223,4.342 -6.68576,0.06 -0.64005,-4.265 2.78663,-0.03\"},\"29075\":{\"name\":\"Gentry, MO\",\"path\":\"m 547.65125,256.80514 6.68576,-0.06 0.0731,5.748 0,2.349 -6.75886,0.01 -0.0374,-2.018 0.0374,-6.035\"},\"29063\":{\"name\":\"DeKalb, MO\",\"path\":\"m 554.41011,264.84714 0.33696,5.689 0.016,1.001 -6.95854,0.09 -0.0321,-1.681 -0.12124,-5.085 6.75886,-0.01\"},\"29049\":{\"name\":\"Clinton, MO\",\"path\":\"m 554.76312,271.53714 0.0499,5.068 0,1.68 -6.8801,0.09 -0.041,-1.767 -0.0874,-4.981 6.95854,-0.09\"},\"29047\":{\"name\":\"Clay, MO\",\"path\":\"m 547.93294,278.37214 6.8801,-0.09 0.0713,5.737 -0.51524,-0.529 -0.0963,-0.07 -0.1765,-0.06 -0.61153,0 -0.20681,0.104 -0.10519,0.132 -0.1355,0.262 -0.0891,0.403 -0.23534,0.344 -0.5206,0.538 -1.78465,0.884 -2.47463,0.291 0.082,-1.079 -0.082,-6.862\"},\"29025\":{\"name\":\"Caldwell, MO\",\"path\":\"m 554.74707,270.53614 1.97721,0.03 3.56574,-0.09 2.2999,-0.01 0.10519,4.012 0.0321,2.016 -7.91416,0.105 -0.0499,-5.068 -0.016,-1.001\"},\"29061\":{\"name\":\"Daviess, MO\",\"path\":\"m 562.31714,262.40714 0.12837,4.018 0.14441,4.047 -2.2999,0.01 -3.56574,0.09 -1.97721,-0.03 -0.33696,-5.689 0,-2.349 7.90703,-0.09\"},\"29081\":{\"name\":\"Harrison, MO\",\"path\":\"m 561.89103,252.11414 0.36193,7.256 0.0642,3.037 -7.90703,0.09 -0.0731,-5.748 -0.39223,-4.342 3.76007,-0.117 4.18618,-0.177\"},\"29129\":{\"name\":\"Mercer, MO\",\"path\":\"m 565.66002,251.95914 3.17351,-0.09 0.25673,4.564 0.066,2.701 -6.90327,0.233 -0.36193,-7.256 3.76899,-0.155\"},\"29079\":{\"name\":\"Grundy, MO\",\"path\":\"m 569.15623,259.13714 0.24069,5.398 0.0392,1.518 -6.99063,0.372 -0.12837,-4.018 -0.0642,-3.037 6.90327,-0.233\"},\"29117\":{\"name\":\"Livingston, MO\",\"path\":\"m 569.43614,266.05314 0.0321,2.034 0.0891,4.083 1.72047,-0.05 -0.13906,2.047 -8.44367,0.316 -0.10519,-4.012 -0.14441,-4.047 6.99063,-0.372\"},\"29033\":{\"name\":\"Carroll, MO\",\"path\":\"m 562.69511,274.48414 8.44367,-0.316 0.0438,4.05748 3.11935,0.46526 0.0514,0.76026 -0.73097,0.06 -0.75237,0.291 -1.61885,1.446 -1.00376,1.688 -0.19255,0.12 -0.70601,0.176 -0.24069,-0.04 -0.11232,-0.103 -1.15887,-1.35 -1.88805,1.262 -1.18205,-0.146 -1.84705,0.997 -0.19255,-7.353 -0.0321,-2.016\"},\"29177\":{\"name\":\"Ray, MO\",\"path\":\"m 562.7272,276.50014 0.19255,7.353 -1.3015,-0.161 -2.4764,0.36 -0.9788,0.79 0.0464,0.09 0.0339,0.249 -0.37797,0.323 -0.19255,0.126 -0.24068,0.04 -0.24961,-0.02 -0.36192,-0.186 -1.9362,-1.437 -0.0713,-5.737 0,-1.68 7.91416,-0.105\"},\"29107\":{\"name\":\"Lafayette, MO\",\"path\":\"m 562.91975,283.85314 1.84705,-0.997 1.18205,0.146 1.88805,-1.262 -0.12836,8.116 0,0.338 -6.00114,-0.07 -0.0107,0.676 -4.94033,-0.09 0.0642,-5.249 0.36192,0.186 0.24961,0.02 0.24068,-0.04 0.19255,-0.126 0.37797,-0.323 -0.0339,-0.249 -0.0464,-0.09 0.9788,-0.79 2.4764,-0.36 1.3015,0.161\"},\"29095\":{\"name\":\"Jackson, MO\",\"path\":\"m 556.82055,285.45914 -0.0642,5.249 -0.0481,1.952 -8.69327,-0.176 -0.0571,-4.565 -0.025,-1.606 2.47463,-0.291 1.78465,-0.884 0.5206,-0.538 0.23534,-0.344 0.0891,-0.403 0.1355,-0.262 0.10519,-0.132 0.20681,-0.104 0.61153,0 0.1765,0.06 0.0963,0.07 0.51524,0.529 1.9362,1.437\"},\"29101\":{\"name\":\"Johnson, MO\",\"path\":\"m 567.70854,290.19414 -0.025,8.631 -9.87532,-0.03 -1.19901,-0.0408 0.099,-6.09817 0.0481,-1.952 4.94033,0.09 0.0107,-0.676 6.00114,0.07\"},\"29083\":{\"name\":\"Henry, MO\",\"path\":\"m 567.68358,298.82514 0,1.011 -0.007,7.08 -9.4403,0.06 -0.3958,-5.393 -0.0321,-2.788 9.87532,0.03\"},\"29037\":{\"name\":\"Cass, MO\",\"path\":\"m 548.01496,292.48414 8.69327,0.176 -0.099,6.09817 1.19902,0.0408 0.0321,2.788 -2.57268,0.02 -1.00375,-0.103 -1.03585,-0.394 -5.18102,-0.06 -0.025,-6.044 -0.007,-2.522\"},\"29185\":{\"name\":\"St. Clair, MO\",\"path\":\"m 558.23615,306.98014 9.4403,-0.06 0.43502,3.102 -0.0481,3.694 -0.45998,0 -0.57052,1.006 -0.0232,1.014 -0.99662,-0.01 -3.30188,-0.05 0.0232,-1.34 -4.63546,-0.09 0.0713,-3.151 0.066,-4.113\"},\"29013\":{\"name\":\"Bates, MO\",\"path\":\"m 548.04705,301.05014 5.18102,0.06 1.03585,0.394 1.00375,0.103 2.57268,-0.02 0.3958,5.393 -0.066,4.113 -1.35676,-0.472 -1.20522,0.101 -0.71493,0.107 -6.72677,-0.107 -0.0963,-7.614 -0.0232,-2.058\"},\"29039\":{\"name\":\"Cedar, MO\",\"path\":\"m 558.09887,314.24414 4.63546,0.09 -0.0232,1.34 3.30188,0.05 0.37084,5.938 -8.30818,-0.02 0,-1.349 0.0232,-6.051\"},\"29217\":{\"name\":\"Vernon, MO\",\"path\":\"m 558.17018,311.09314 -0.0713,3.151 -0.0232,6.051 -9.83787,-0.152 -0.007,-0.451 -0.0553,-8.429 -0.009,-0.541 6.72677,0.107 0.71493,-0.107 1.20522,-0.101 1.35676,0.472\"},\"29057\":{\"name\":\"Dade, MO\",\"path\":\"m 558.07569,321.64414 8.30818,0.02 -0.009,3.368 0,3.373 -7.74657,0 -0.56873,-1.363 0.016,-5.385\"},\"29011\":{\"name\":\"Barton, MO\",\"path\":\"m 558.07569,320.29514 0,1.349 -0.016,5.384 -9.71665,-0.178 -0.10518,-6.707 9.83787,0.152\"},\"29097\":{\"name\":\"Jasper, MO\",\"path\":\"m 558.05965,327.02814 0.56873,1.364 -0.007,5.611 -10.18375,-0.02 -0.0874,-6.525 -0.007,-0.603 9.71665,0.178\"},\"29145\":{\"name\":\"Newton, MO\",\"path\":\"m 548.4375,333.97814 10.18375,0.02 -0.041,6.95 -10.05182,-0.257 -0.0909,-6.718\"},\"29119\":{\"name\":\"McDonald, MO\",\"path\":\"m 558.58024,340.95314 -0.0321,5.778 -9.92523,0.159 -0.0553,-3.903 -0.0392,-2.291 10.05182,0.257\"},\"29109\":{\"name\":\"Lawrence, MO\",\"path\":\"m 566.37495,328.40114 0.41719,4.252 0.0321,2.37 0.0321,1.688 -8.25113,-0.02 0.0161,-2.692 0.007,-5.611 7.74657,0\"},\"29009\":{\"name\":\"Barry, MO\",\"path\":\"m 558.6052,336.69514 8.25113,0.02 0.025,2.371 0.71493,0 -0.007,7.44 -5.17568,0.129 -3.86526,0.08 0.0571,-10.036\"},\"29167\":{\"name\":\"Polk, MO\",\"path\":\"m 567.00965,315.73214 6.96746,0.392 0.35479,8.927 -7.95695,-0.02 0.009,-3.368 -0.37084,-5.938 0.99662,0.01\"},\"29209\":{\"name\":\"Stone, MO\",\"path\":\"m 566.82423,335.02314 4.97421,-0.06 0.0321,4.056 0.69176,0 0.007,7.384 -4.94033,0.121 0.007,-7.439 -0.71493,0 -0.025,-2.372 -0.0321,-1.688\"},\"29077\":{\"name\":\"Greene, MO\",\"path\":\"m 574.3319,325.05114 1.98255,0 0.0428,3.357 0.271,0 0.0642,4.195 -9.90028,0.06 -0.41719,-4.252 0,-3.373 7.95695,0.02\"},\"29213\":{\"name\":\"Taney, MO\",\"path\":\"m 579.73756,338.97514 2.644,-0.01 0.10519,7.144 -1.50475,0.05 -8.09779,0.241 -0.35479,0 -0.007,-7.385 7.21527,-0.04\"},\"29043\":{\"name\":\"Christian, MO\",\"path\":\"m 576.69242,332.59614 2.963,0.0557 0.002,0.26725 0.0802,6.056 -7.21527,0.04 -0.69176,0 -0.0321,-4.056 -4.97421,0.06 -0.0321,-2.37 9.90028,-0.06\"},\"29225\":{\"name\":\"Webster, MO\",\"path\":\"m 580.2439,323.31714 3.02374,-0.05 0.0713,5.054 0.2389,0 0.0339,4.548 -3.95441,0.05 -0.002,-0.26725 -2.963,-0.0557 -0.0642,-4.195 -0.271,0 -0.0428,-3.357 0.0735,-1.63401 3.85599,-0.093\"},\"29059\":{\"name\":\"Dallas, MO\",\"path\":\"m 575.97749,313.74414 3.9134,0.03 0.0553,4.053 0.24247,0 0.0553,5.497 -3.85599,0.093 -0.0735,1.63401 -1.98255,0 -0.35479,-8.927 -0.0855,-2.31075 2.08592,-0.0693\"},\"29085\":{\"name\":\"Hickory, MO\",\"path\":\"m 568.11147,310.01814 7.88028,0.02 -0.0143,3.71 -2.08592,0.0693 0.0855,2.31075 -6.96746,-0.392 0.0232,-1.014 0.57052,-1.006 0.45998,0 0.0481,-3.694\"},\"29015\":{\"name\":\"Benton, MO\",\"path\":\"m 567.68358,299.83614 3.94549,0.04 0.009,-0.675 1.87202,-0.02 2.11448,0.02 0.007,6.252 0.36014,4.582 -7.88028,-0.02 -0.43502,-3.102 0.007,-7.08\"},\"29159\":{\"name\":\"Pettis, MO\",\"path\":\"m 567.70854,289.85614 3.46233,0.07 3.66558,0 0.80408,0.04 0,5.454 -0.0161,3.776 -2.11448,-0.02 -1.87202,0.02 -0.009,0.675 -3.94549,-0.04 0,-1.011 0.025,-8.631 0,-0.338\"},\"29195\":{\"name\":\"Saline, MO\",\"path\":\"m 574.35329,279.45114 3.26618,1.53551 0.0601,1.90178 1.30386,0.0727 -1.39064,3.784 -1.95224,3.225 -0.80408,-0.04 -3.66558,0 -3.46233,-0.07 0.12836,-8.116 1.15887,1.35 0.11232,0.103 0.24069,0.04 0.70601,-0.176 0.19255,-0.12 1.00376,-1.688 1.61885,-1.446 0.75237,-0.291 0.73097,-0.06\"},\"29041\":{\"name\":\"Chariton, MO\",\"path\":\"m 578.46816,271.98614 3.01546,-0.0348 -0.0327,2.01683 -0.041,6.688 -1.36844,-0.55472 -1.05804,2.85972 -1.30386,-0.0727 -0.0601,-1.90178 -3.26618,-1.53551 -0.0514,-0.76026 -3.11935,-0.46526 -0.0438,-4.05748 0.13906,-2.047 7.19032,-0.135\"},\"29115\":{\"name\":\"Linn, MO\",\"path\":\"m 578.23638,264.17314 0.15155,0 0.0802,7.818 -7.19032,0.135 -1.72047,0.05 -0.0891,-4.083 -0.0321,-2.034 -0.0392,-1.518 8.83946,-0.362\"},\"29211\":{\"name\":\"Sullivan, MO\",\"path\":\"m 569.09026,256.43614 4.87972,-0.216 4.0168,-0.121 0.0232,1.004 0.22642,7.07 -8.83946,0.362 -0.24069,-5.398 -0.066,-2.701\"},\"29171\":{\"name\":\"Putnam, MO\",\"path\":\"m 580.27599,251.30114 0.31557,1.134 -0.11411,2.193 0.52238,2.355 -2.98987,0.12 -0.0232,-1.004 -4.0168,0.121 -4.87972,0.216 -0.25673,-4.564 4.80483,-0.223 6.63763,-0.348\"},\"29197\":{\"name\":\"Schuyler, MO\",\"path\":\"m 586.57665,250.89114 0.23177,5.801 -5.80859,0.291 -0.52238,-2.355 0.11411,-2.193 -0.31557,-1.134 1.32645,-0.07 4.97421,-0.337\"},\"29001\":{\"name\":\"Adair, MO\",\"path\":\"m 586.80842,256.69214 0.082,1.013 0.27991,6.147 -8.78242,0.316 -0.15155,0 -0.22642,-7.071 2.98987,-0.119 5.80859,-0.291\"},\"29121\":{\"name\":\"Macon, MO\",\"path\":\"m 587.17035,263.85214 1.07863,1.928 0.11232,8.046 -0.0339,0 -6.87653,0.142 0.0327,-2.01683 -3.01546,0.0348 -0.0802,-7.818 8.78242,-0.316\"},\"29175\":{\"name\":\"Randolph, MO\",\"path\":\"m 588.32743,273.82614 0.0713,5.969 0.0161,2.348 -2.04674,0.02 -4.95816,-1.51 0.041,-6.688 6.87653,-0.142\"},\"29089\":{\"name\":\"Howard, MO\",\"path\":\"m 581.40989,280.65614 4.95816,1.51 -2.0182,6.525 -4.03286,0.127 -1.10181,-0.184 -0.19077,-0.08 -0.89321,-0.619 -0.14442,-0.192 -0.39401,-0.843 0,-0.155 1.39064,-3.784 1.05804,-2.85972 1.36844,0.55472\"},\"29053\":{\"name\":\"Cooper, MO\",\"path\":\"m 577.59277,286.74514 0,0.155 0.39401,0.843 0.14442,0.192 0.89321,0.619 0.19077,0.08 1.10181,0.184 4.03286,-0.127 1.09289,1.093 -1.42807,3.937 -0.34766,1.029 -0.1355,0.506 -2.27316,0.209 -1.68838,0.05 -3.92944,-0.09 0,-5.454 1.95224,-3.225\"},\"29019\":{\"name\":\"Boone, MO\",\"path\":\"m 588.41479,282.14314 3.71372,0 0.0713,4.072 -0.26386,0.01 -0.0963,0.216 -0.34409,3.351 -0.0981,3.382 -0.90748,1.591 0.1355,1.278 -3.18242,-2.105 -2.00039,-4.162 -1.09289,-1.093 2.0182,-6.525 2.04674,-0.02\"},\"29051\":{\"name\":\"Cole, MO\",\"path\":\"m 587.44313,293.94614 3.18242,2.105 3.84921,1.517 0.19352,1.17946 -1.90936,0.93775 -1.06337,1.59037 -0.31407,1.88042 -0.99662,0.337 -2.83476,-0.321 0.016,-1.945 -1.64024,0 1.51723,-7.281\"},\"29135\":{\"name\":\"Moniteau, MO\",\"path\":\"m 585.44274,289.78414 2.00039,4.162 -1.51723,7.281 -2.33199,0.02 -4.00076,-3.712 -0.0232,-2.018 1.68838,-0.05 2.27316,-0.209 0.1355,-0.506 0.34766,-1.029 1.42807,-3.937\"},\"29141\":{\"name\":\"Morgan, MO\",\"path\":\"m 575.64053,295.42414 3.92944,0.09 0.0232,2.018 4.00076,3.712 -0.008,1.74923 -0.81861,0.065 -0.26485,3.0618 -1.21413,0.628 -3.56039,0.112 -1.21035,0.0537 0.16202,-0.91317 -1.04833,-0.54755 -0.007,-6.252 0.0161,-3.776\"},\"29131\":{\"name\":\"Miller, MO\",\"path\":\"m 585.9259,301.22714 1.64024,0 -0.016,1.945 2.83476,0.321 0.99662,-0.337 0.016,1.005 0.0874,3.028 0.29061,0 0.0642,3.359 -3.97045,0.04 -1.6135,0.03 -1.03763,-0.653 -0.33696,-0.33 -0.50455,-1.005 -0.0267,-0.667 -0.16938,-0.713 -0.6757,-0.958 -1.00198,-0.176 0.26485,-3.0618 0.81861,-0.065 0.008,-1.74923 2.33199,-0.02\"},\"29029\":{\"name\":\"Camden, MO\",\"path\":\"m 582.50279,306.11914 1.00198,0.176 0.6757,0.958 0.16938,0.713 0.0267,0.667 0.50455,1.005 0.33696,0.33 1.03763,0.653 1.6135,-0.03 0.0891,3.751 -1.05189,0.779 -1.24801,0.635 -0.1658,0.04 -0.28348,-0.111 -0.67393,-0.781 -0.28169,-0.538 -0.12837,-0.524 0.0339,-0.05 -0.025,-0.08 -4.24323,0.06 -3.9134,-0.03 0.0143,-3.71 -0.36014,-4.582 1.04833,0.54755 -0.16202,0.91317 1.21035,-0.0537 3.56039,-0.112 1.21413,-0.628\"},\"29169\":{\"name\":\"Pulaski, MO\",\"path\":\"m 591.83968,310.54814 2.956,0 0.2496,9.456 -3.9758,0.114 -0.0339,-1.014 -3.02732,-1.405 -0.0499,-3.368 -0.0891,-3.751 3.97045,-0.04\"},\"29105\":{\"name\":\"Laclede, MO\",\"path\":\"m 579.89089,313.77614 4.24323,-0.06 0.025,0.08 -0.0339,0.05 0.12837,0.524 0.28169,0.538 0.67393,0.781 0.28348,0.111 0.1658,-0.04 1.24801,-0.635 1.05189,-0.779 0.0499,3.368 3.02732,1.405 0.0339,1.014 0.0713,3.052 -7.87316,0.09 -3.02374,0.05 -0.0553,-5.497 -0.24247,0 -0.0553,-4.053\"},\"29229\":{\"name\":\"Wright, MO\",\"path\":\"m 583.26764,323.26714 7.87316,-0.09 0.18363,5.048 0.12124,0.843 0.0874,3.68 -7.92129,0.119 -0.0339,-4.548 -0.2389,0 -0.0713,-5.054\"},\"29067\":{\"name\":\"Douglas, MO\",\"path\":\"m 594.49081,332.70214 -0.17472,6.09 -11.93453,0.169 -2.644,0.01 -0.0802,-6.056 3.95441,-0.05 7.92129,-0.119 2.95778,-0.05\"},\"29153\":{\"name\":\"Ozark, MO\",\"path\":\"m 582.38156,338.96114 11.93453,-0.169 0.12658,6.839 -0.54734,0.03 -6.94963,0.287 -4.45895,0.153 -0.10519,-7.144\"},\"29091\":{\"name\":\"Howell, MO\",\"path\":\"m 602.38179,332.53214 0.13015,3.712 0.0713,2.339 -0.0321,4.227 0.11054,2.452 -8.21903,0.369 -0.12658,-6.839 0.17472,-6.09 1.97007,-0.06 2.26425,0.02 3.65666,-0.129\"},\"29215\":{\"name\":\"Texas, MO\",\"path\":\"m 595.04528,320.01314 3.98472,-0.09 0.98236,-0.04 0.17828,4.043 1.9576,-0.06 0.23355,8.663 -3.65666,0.129 -2.26425,-0.02 -1.97007,0.06 -2.95778,0.05 -0.0874,-3.68 -0.12124,-0.843 -0.18363,-5.048 -0.0713,-3.052 3.9758,-0.114\"},\"29161\":{\"name\":\"Phelps, MO\",\"path\":\"m 601.66864,306.93914 1.71869,-0.06 0.49564,8.415 -4.99739,0.168 0.14442,4.459 -3.98472,0.09 -0.2496,-9.456 1.45482,-0.683 0.76307,-0.355 2.16084,-0.128 2.56555,-0.07 -0.0713,-2.378\"},\"29125\":{\"name\":\"Maries, MO\",\"path\":\"m 601.26572,303.81914 0.12476,3.09397 0.27816,0.026 0.0713,2.378 -2.56555,0.07 -2.16084,0.128 -0.76307,0.355 -1.45482,0.683 -2.956,0 -0.0642,-3.359 -0.29061,0 -0.0874,-3.028 3.0701,-0.04 2.51385,-0.136 4.28424,-0.164\"},\"29151\":{\"name\":\"Osage, MO\",\"path\":\"m 600.78256,294.22014 0.12123,-0.02 0.36193,9.615 -4.28424,0.164 -2.51385,0.136 -3.0701,0.04 -0.016,-1.005 0.31407,-1.88042 1.06337,-1.59037 1.90936,-0.93775 -0.19352,-1.17946 0.7078,-0.527 1.42273,-1.35 0.12837,-0.235 0.13015,-0.145 0.15868,-0.103 2.31416,-0.988 0.57943,-0.07 0.86648,0.07\"},\"29027\":{\"name\":\"Callaway, MO\",\"path\":\"m 592.19982,286.22214 8.43833,-0.248 0.14441,8.246 -0.86648,-0.07 -0.57943,0.07 -2.31416,0.988 -0.15868,0.103 -0.13015,0.145 -0.12837,0.235 -1.42273,1.35 -0.7078,0.527 -3.84921,-1.517 -0.1355,-1.278 0.90748,-1.591 0.0981,-3.382 0.34409,-3.351 0.0963,-0.216 0.26386,-0.01\"},\"29137\":{\"name\":\"Monroe, MO\",\"path\":\"m 598.5825,272.17714 0.27991,7.377 -10.46367,0.241 -0.0713,-5.969 0.0339,0 1.98434,-0.05 -0.0321,-1.368 5.94587,-0.144 2.32308,-0.09\"},\"29205\":{\"name\":\"Shelby, MO\",\"path\":\"m 594.11462,265.60514 1.96829,-0.06 0.17651,6.718 -5.94587,0.144 0.0321,1.368 -1.98434,0.05 -0.11232,-8.046 5.86564,-0.175\"},\"29103\":{\"name\":\"Knox, MO\",\"path\":\"m 586.89044,257.70514 6.92823,-0.232 0.0303,1.013 0.26564,7.119 -5.86564,0.175 -1.07863,-1.928 -0.27991,-6.147\"},\"29199\":{\"name\":\"Scotland, MO\",\"path\":\"m 593.63147,250.41014 0.1872,7.063 -6.92823,0.232 -0.082,-1.013 -0.23177,-5.801 2.956,-0.193 4.09882,-0.288\"},\"29045\":{\"name\":\"Clark, MO\",\"path\":\"m 597.56804,250.39914 0.36193,0.226 1.37459,1.038 0.041,0.152 -0.0571,0.467 0.0642,0.16 1.75077,2.154 0.72563,0.586 1.13926,0.08 -1.28367,3.062 -7.83571,0.16 -0.0303,-1.013 -0.1872,-7.063 3.93657,-0.01\"},\"29111\":{\"name\":\"Lewis, MO\",\"path\":\"m 601.68469,258.32614 -0.10697,1.125 1.23018,5.858 -6.72499,0.239 -1.96829,0.06 -0.26564,-7.119 7.83571,-0.16\"},\"29127\":{\"name\":\"Marion, MO\",\"path\":\"m 602.8079,265.30914 1.75256,4.249 1.04298,1.656 -6.97629,0.40828 -0.0447,0.55472 -2.32308,0.09 -0.17651,-6.718 6.72499,-0.239\"},\"29173\":{\"name\":\"Ralls, MO\",\"path\":\"m 598.5825,272.17714 0.0447,-0.55472 6.97629,-0.40828 2.47819,1.886 -0.45107,0.02 -4.3502,3.639 0.53308,3.04 -2.332,0 -2.61903,0.09 0,-0.344 -0.27991,-7.377\"},\"29007\":{\"name\":\"Audrain, MO\",\"path\":\"m 588.39874,279.79514 10.46367,-0.241 0,0.344 2.61903,-0.09 2.332,0 0.71493,4.049 -3.88622,0.10488 -0.004,2.01612 -8.43833,0.248 -0.0713,-4.072 -3.71372,0 -0.0161,-2.348\"},\"29139\":{\"name\":\"Montgomery, MO\",\"path\":\"m 607.16345,283.79014 0.0963,3.406 0.15868,3.448 -2.67431,0.09 0.0963,3.143 -3.93658,0.323 -0.12123,0.02 -0.14441,-8.246 0.004,-2.01612 3.88622,-0.10488 2.63508,-0.06\"},\"29163\":{\"name\":\"Pike, MO\",\"path\":\"m 608.08163,273.10014 4.23431,4.397 4.31277,3.833 -5.02948,0.264 -3.17529,0.1 0.0642,2.05 -1.32467,0.05 -2.63508,0.06 -0.71493,-4.049 -0.53308,-3.04 4.3502,-3.639 0.45107,-0.02\"},\"29113\":{\"name\":\"Lincoln, MO\",\"path\":\"m 616.62871,281.33014 0.82725,2.82 -0.0143,0.289 -0.48315,0.747 -0.0178,0.07 0.0446,0.161 0,0 0.95562,2.562 -5.11149,1.745 -1.87201,0.06 -1.33537,-1.31 -1.01267,-1.317 -1.34964,0.03 -0.0963,-3.406 1.32467,-0.05 -0.0642,-2.05 3.17529,-0.1 5.02948,-0.264\"},\"29219\":{\"name\":\"Warren, MO\",\"path\":\"m 607.25972,287.19614 1.34964,-0.03 1.01267,1.317 1.33537,1.31 1.87201,-0.06 0.29596,7.488 -4.79771,-1.936 -0.11232,-0.217 -1.49404,-1.215 -0.19968,-0.02 -0.78803,0.248 -0.89322,-0.202 -0.0963,-3.143 2.67431,-0.09 -0.15868,-3.448\"},\"29073\":{\"name\":\"Gasconage, MO\",\"path\":\"m 605.73359,294.08314 0.22464,4.393 0.25673,4.116 0.10519,2.821 -3.03249,0.0582 0.0997,1.41076 -1.71869,0.06 -0.27816,-0.026 -0.12476,-3.09397 -0.36193,-9.615 3.93658,-0.323 0.89322,0.202\"},\"29055\":{\"name\":\"Crawford, MO\",\"path\":\"m 606.32015,305.41314 4.8708,-0.114 0.47959,10.745 -0.91282,1.034 -2.83833,0.08 -0.0571,-2.016 -3.97936,0.153 -0.49564,-8.415 -0.0997,-1.41076 3.03249,-0.0582\"},\"29065\":{\"name\":\"Dent, MO\",\"path\":\"m 610.75772,317.07814 0.10162,2.534 -2.85259,0.03 0.0749,2.032 1.86131,-0.02 0.0874,2.002 -7.88206,0.207 -1.9576,0.06 -0.17828,-4.043 -0.98236,0.04 -0.14442,-4.459 4.99739,-0.168 3.97936,-0.153 0.0571,2.016 2.83833,-0.08\"},\"29203\":{\"name\":\"Shannon, MO\",\"path\":\"m 602.14824,323.86914 7.88206,-0.207 0.66145,-0.02 0.3483,3.92844 1.57185,1.53456 1.2484,0.0865 0.078,1.68246 -1.6652,0.297 -1.95224,0.113 0.12837,4.683 -7.93734,0.273 -0.13015,-3.712 -0.23355,-8.663\"},\"29149\":{\"name\":\"Oregon, MO\",\"path\":\"m 602.51194,336.24414 7.93734,-0.273 0.009,1.33582 2.01647,-0.0408 0.19433,7.554 -5.14358,0.273 -0.78624,0.02 -4.07743,0.146 -0.11054,-2.452 0.0321,-4.227 -0.0713,-2.339\"},\"29181\":{\"name\":\"Ripley, MO\",\"path\":\"m 612.47462,337.26614 1.31932,-0.04 2.8419,0.07 4.12378,-0.193 1.99324,7.153 -3.8189,0.207 -6.26501,0.355 -0.19433,-7.554\"},\"29035\":{\"name\":\"Carter, MO\",\"path\":\"m 613.93835,330.87814 1.20684,-0.013 0.0112,0.6985 3.16959,0.1345 1.41873,0.45091 0.57273,2.31209 0.44216,2.644 -4.12378,0.193 -2.8419,-0.07 -1.31932,0.04 -2.01647,0.0408 -0.009,-1.33582 -0.12837,-4.683 1.95224,-0.113 1.6652,-0.297\"},\"29179\":{\"name\":\"Reynolds, MO\",\"path\":\"m 610.85934,319.61214 3.51404,-0.548 3.4445,-0.167 0.1765,4.348 0.11972,3.341 0.72536,-0.04 0.0802,1.015 0.0232,1.405 -0.68997,1.157 0.0731,1.576 -3.16959,-0.1345 -0.0112,-0.6985 -1.20684,0.013 -0.078,-1.68246 -1.2484,-0.0865 -1.57185,-1.53456 -0.3483,-3.92844 -0.66145,0.02 -0.0874,-2.002 -1.86131,0.02 -0.0749,-2.032 2.85259,-0.03\"},\"29093\":{\"name\":\"Iron, MO\",\"path\":\"m 619.87531,315.72214 0.045,2.12738 2.0606,-0.12538 0.16937,7.552 -0.014,1.22294 -3.29683,0.0461 -0.72536,0.04 -0.11972,-3.341 -0.1765,-4.348 -3.4445,0.167 -3.51404,0.548 -0.10162,-2.534 0.91282,-1.034 8.20477,-0.322\"},\"29221\":{\"name\":\"Washington, MO\",\"path\":\"m 616.84622,304.99414 2.67608,2.813 0.35301,7.915 -8.20477,0.322 -0.47959,-10.745 5.65527,-0.305\"},\"29071\":{\"name\":\"Franklin, MO\",\"path\":\"m 613.12537,297.22414 4.01859,-2.344 0.15154,3.999 -0.44928,6.115 -5.65527,0.305 -4.8708,0.114 -0.10519,-2.821 -0.25673,-4.116 -0.22464,-4.393 0.78803,-0.248 0.19968,0.02 1.49404,1.215 0.11232,0.217 4.79771,1.936\"},\"29510\":{\"name\":\"St. Louis, MO\",\"path\":\"m 626.55394,291.96714 0.36727,1.85 -1.17847,3.052 -0.73989,-0.383 -0.22643,-1.225 -0.27991,-1.806 0.44215,-0.916 0.72385,-0.546 0.89143,-0.03\"},\"29183\":{\"name\":\"St. Charles, MO\",\"path\":\"m 621.7081,286.99614 3.1646,0.77 0.45819,0.139 0.44929,0.216 0.33874,0.2 1.74365,1.053 0.0731,0.129 0.016,0.135 -0.0642,0.531 -0.0392,0.218 -0.16938,-0.337 -0.2906,-0.187 -0.30488,0.03 -0.43323,0.29 -0.30487,-0.114 -1.10182,-0.659 -0.1765,-0.184 -1.28545,0.112 -0.0303,0.275 -0.13906,0.312 -0.11232,0.178 -0.19969,0.168 -0.26564,0.02 -0.63649,-0.12 -0.19076,0 -0.13015,0.06 -0.11946,0.134 -0.41897,0.765 -0.90035,1.945 0.0161,0.264 -0.11767,0.225 -0.29061,0.162 -0.26743,0.03 -1.53327,-0.09 -0.12837,0.04 -0.23355,0.176 -0.52238,0.819 -0.41719,0.187 -4.01859,2.344 -0.29596,-7.488 5.11149,-1.745 3.7672,-0.995\"},\"29189\":{\"name\":\"St. Louis Co., MO\",\"path\":\"m 627.84831,290.38714 -1.29437,1.58 -0.89143,0.03 -0.72385,0.546 -0.44215,0.916 0.27991,1.806 0.22643,1.225 0.73989,0.383 -0.0802,0.284 -1.2391,3.222 -0.13728,-0.523 -1.13212,-2.113 -3.31079,0.184 -2.34626,0.587 -0.20146,0.369 -0.15154,-3.999 0.41719,-0.187 0.52238,-0.819 0.23355,-0.176 0.12837,-0.04 1.53327,0.09 0.26743,-0.03 0.29061,-0.162 0.11767,-0.225 -0.0161,-0.264 0.90035,-1.945 0.41897,-0.765 0.11946,-0.134 0.13015,-0.06 0.19076,0 0.63649,0.12 0.26564,-0.02 0.19969,-0.168 0.11232,-0.178 0.13906,-0.312 0.0303,-0.275 1.28545,-0.112 0.1765,0.184 1.10182,0.659 0.30487,0.114 0.43323,-0.29 0.30488,-0.03 0.2906,0.187 0.16938,0.337\"},\"29099\":{\"name\":\"Jefferson, MO\",\"path\":\"m 617.2955,298.87914 0.20146,-0.369 2.34626,-0.587 3.31079,-0.183 1.13212,2.112 0.13728,0.523 -0.0499,0.06 -0.0802,0.16 -0.26208,0.892 -0.0339,0.1 -0.016,0.233 0.0339,0.965 0.24068,1.034 0.2086,0.515 0.32983,0.451 0.0571,0.08 0.0464,0.05 1.51187,1.47 -2.8205,1.983 -3.63488,0.67375 -0.43185,-1.23575 -2.67608,-2.813 0.44928,-6.115\"},\"29187\":{\"name\":\"St. Francois, MO\",\"path\":\"m 619.5223,307.80714 0.43185,1.23575 3.63488,-0.67375 1.75078,1.301 -2.30525,2.527 1.46908,1.419 3.48195,3.141 0.78624,-0.745 0.82547,0.612 -0.60796,0.72 -7.00846,0.38 -2.0606,0.12538 -0.045,-2.12738 -0.35301,-7.915\"},\"29186\":{\"name\":\"Sainte Genevieve, MO\",\"path\":\"m 627.32236,307.06914 5.08831,4.645 -2.81337,4.91 -0.82547,-0.612 -0.78624,0.745 -3.48195,-3.141 -1.46908,-1.419 2.30525,-2.527 -1.75078,-1.301 2.8205,-1.983 0.91283,0.683\"},\"29123\":{\"name\":\"Madison, MO\",\"path\":\"m 628.98934,317.34414 0.0642,1.03 0.23177,1.286 0.19255,5.313 -1.30863,0.01 -6.01897,0.291 -0.16937,-7.552 7.00846,-0.38\"},\"29223\":{\"name\":\"Wayne, MO\",\"path\":\"m 622.15025,325.27614 6.01897,-0.291 0.22286,5.29 2.0503,-0.112 0.0481,1.037 -1.76851,0.88297 -0.74712,2.03203 -7.65743,0.346 -0.57273,-2.31209 -1.41873,-0.45091 -0.0731,-1.576 0.68997,-1.157 -0.0232,-1.405 -0.0802,-1.015 3.29683,-0.0461 0.014,-1.22294\"},\"29023\":{\"name\":\"Butler, MO\",\"path\":\"m 627.97489,334.11514 0.89322,2.356 0.63292,1.397 0.12301,0.05 0.16759,0.122 0.5937,1.139 0.22642,0.82 -0.0481,0.449 -0.16224,0.282 -1.13213,3.159 -6.51639,0.371 -1.99324,-7.153 -0.44216,-2.644 7.65743,-0.346\"},\"29069\":{\"name\":\"Dunklin, MO\",\"path\":\"m 633.86371,340.55314 0.31557,5.559 0.60974,9.009 -6.07424,0.433 -1.4673,0.1 2.84011,-4.942 2.0093,-1.767 0.12836,-0.202 0.19433,-0.529 -0.11945,-1.826 -0.17828,-0.239 -1.63846,-2.314 -0.72385,0.02 -0.49029,0.03 1.13213,-3.159 3.46233,-0.175\"},\"29207\":{\"name\":\"Stoddard, MO\",\"path\":\"m 634.81576,328.94914 1.83101,-0.113 0.35122,2.131 0.36906,0.495 0.29061,0.468 0.39401,0.957 0.28169,0.786 0.0642,1.239 -0.23178,0.02 0.42433,5.358 -4.72639,0.267 -3.46233,0.175 0.16224,-0.282 0.0481,-0.449 -0.22642,-0.82 -0.5937,-1.139 -0.16759,-0.122 -0.12301,-0.05 -0.63292,-1.397 -0.89322,-2.356 0.74712,-2.03203 1.76851,-0.88297 1.68659,-0.09 1.06259,-0.396 -0.1141,-1.686 1.69016,-0.08\"},\"29017\":{\"name\":\"Bollinger, MO\",\"path\":\"m 634.20424,318.00414 0.61152,10.945 -1.69016,0.08 0.1141,1.686 -1.06259,0.396 -1.68659,0.09 -0.0481,-1.037 -2.0503,0.112 -0.22286,-5.29 1.30863,-0.01 -0.19255,-5.313 -0.23177,-1.286 5.15071,-0.37\"},\"29157\":{\"name\":\"Perry, MO\",\"path\":\"m 632.41067,311.71414 4.85476,1.347 3.11645,5.16 0,0.137 -6.17764,-0.354 -5.15071,0.37 -0.0642,-1.03 0.60796,-0.72 2.81337,-4.91\"},\"29031\":{\"name\":\"Cape Girardeau, MO\",\"path\":\"m 634.20424,318.00414 6.17764,0.354 0.016,0.209 0.1141,0.46 0.007,0 0.51347,0.958 0.33696,0.504 0.47603,0.467 0.22464,0.282 0.28882,0.651 0.007,0.02 0.009,0.04 0.10341,0.387 0.009,0.02 -0.009,0.03 -0.0713,0.708 -0.0731,0.218 -0.0143,0.02 -0.0178,0.02 -0.016,0.02 -0.2086,0.107 -0.65788,0.176 0.0303,2.017 -2.68532,0.32046 -0.956,0.86509 -0.3322,1.45219 -0.82953,0.51926 -1.83101,0.113 -0.61152,-10.945\"},\"29201\":{\"name\":\"Scott, MO\",\"path\":\"m 641.44982,325.67914 0.45998,0.658 1.11608,2.089 0.64183,1.575 1.21414,0.989 -3.36606,3.48 -3.11824,0.442 -0.0642,-1.239 -0.28169,-0.786 -0.39401,-0.957 -0.29061,-0.468 -0.36906,-0.495 -0.35122,-2.131 0.82953,-0.51926 0.3322,-1.45219 0.956,-0.86509 2.68532,-0.32046\"},\"29133\":{\"name\":\"Mississippi, MO\",\"path\":\"m 644.88185,330.99014 3.4962,0.376 0.65075,0.838 -0.68819,2.298 -0.0107,0 -0.50634,0.289 -0.009,0 0,0.53 0.009,0 1.05189,0.554 -0.70601,3.188 -0.50969,0.55868 -0.24723,1.08361 -0.84441,0.0675 -1.1639,-1.0898 -3.88844,-5.238 3.36606,-3.48\"},\"28047\":{\"name\":\"Harrison, MS\",\"path\":\"m 663.79096,476.24014 1.23732,6.18 -1.49583,0.378 -3.15033,0.816 -3.86527,1.113 -1.23731,-0.852 -0.45819,-6.301 2.00038,-0.137 0.0909,-0.69 6.87831,-0.507\"},\"28059\":{\"name\":\"Jackson, MS\",\"path\":\"m 663.68399,474.90514 9.29945,-0.72 1.0198,8.363 -0.016,0.337 -1.4156,0.909 -0.15868,0.06 -4.96707,-0.176 -0.37084,-0.08 -1.34072,-0.756 -0.70601,-0.417 -1.23732,-6.18 -0.10697,-1.335\"},\"28043\":{\"name\":\"Grenada, MS\",\"path\":\"m 638.50274,403.58114 2.97204,-0.165 0.0481,0.681 4.96529,-0.328 0.30487,4.371 -5.3183,0.376 -6.49321,0.41 -0.21573,-1.019 -0.12123,-2.026 2.0503,-0.146 1.92015,-0.44 -0.0481,-0.667 -0.0642,-1.047\"},\"28161\":{\"name\":\"Yalobusha, MS\",\"path\":\"m 645.97474,396.97814 0.51347,6.791 -4.96529,0.328 -0.0481,-0.681 -2.97204,0.165 -0.48851,-6.129 3.96346,-0.30945 -0.0358,-0.59855 3.96787,-0.21666 0.065,0.65066\"},\"28025\":{\"name\":\"Clay, MS\",\"path\":\"m 661.49819,403.98414 0.24069,3.004 4.16478,-0.312 0.11411,0.138 -0.31557,0.57 0.73822,0.75136 -0.0634,1.88092 -3.40618,0.91972 -0.1141,-1.357 -5.94409,0.472 -0.65075,0.09 -0.59547,-4.058 0.22951,-0.66344 2.2901,-0.1483 -0.0875,-1.17859 3.39965,-0.10867\"},\"28155\":{\"name\":\"Webster, MS\",\"path\":\"m 652.67834,406.31614 2.98809,-0.233 0.59547,4.058 -1.27118,0.764 -3.32435,0.51751 -2.13123,1.56149 -2.38548,0.178 -0.42789,-6.043 5.95657,-0.803\"},\"28017\":{\"name\":\"Chickasaw, MS\",\"path\":\"m 659.06279,398.05614 1.99325,-0.146 0.44215,6.074 -3.39965,0.10867 0.0875,1.17859 -2.2901,0.1483 -0.22951,0.66344 -2.98809,0.233 -0.0909,-1.688 0.98949,-0.08 -0.4582,-6.033 5.94409,-0.457\"},\"28013\":{\"name\":\"Calhoun, MS\",\"path\":\"m 645.97474,396.97814 4.99026,-0.328 0.13726,1.99155 2.01644,-0.12855 0.4582,6.033 -0.98949,0.08 0.0909,1.688 -5.95657,0.803 -0.23356,-3.35 -0.51347,-6.791\"},\"28115\":{\"name\":\"Pontotoc, MS\",\"path\":\"m 658.55111,391.37014 0.51168,6.686 -5.94409,0.457 -2.01644,0.12855 -0.13726,-1.99155 -0.37084,-5.041 7.95695,-0.239\"},\"28081\":{\"name\":\"Lee, MS\",\"path\":\"m 659.95601,387.92114 3.67307,-0.20848 0.0549,0.93148 0.66145,8.671 -3.33172,0.23831 0.0423,0.35669 -1.99325,0.146 -0.51168,-6.686 1.4049,-3.449\"},\"28145\":{\"name\":\"Union, MS\",\"path\":\"m 653.19893,386.35514 6.62158,-0.46 0.1355,2.026 -1.4049,3.449 -7.95695,0.239 -0.19255,-2.674 -0.12658,-2.018 2.9239,-0.562\"},\"28071\":{\"name\":\"Lafayette, MS\",\"path\":\"m 641.38564,388.19314 0.98949,-0.06 1.94689,-0.162 1.65986,-0.08 0.48856,0.60478 1.95575,-0.0408 1.97542,0.481 0.19255,2.674 0.37084,5.041 -4.99026,0.328 -0.065,-0.65066 -3.96787,0.21666 -0.55625,-8.351\"},\"28137\":{\"name\":\"Tate, MS\",\"path\":\"m 632.13967,384.84314 1.83101,-0.303 3.51047,-1.15 3.5283,-0.226 0.15155,2 1.01267,0.163 0.20146,2.804 -0.98949,0.06 -8.96606,0.573 -0.94512,-1.9615 0.66521,-1.9615\"},\"28107\":{\"name\":\"Panola, MS\",\"path\":\"m 632.41958,388.76614 8.96606,-0.573 0.55625,8.351 0.0358,0.59855 -3.96346,0.30945 -3.851,0.337 -0.13728,-2.443 -1.19809,-1.308 -0.35301,-4.269 -0.0553,-1.003\"},\"28119\":{\"name\":\"Quitman, MS\",\"path\":\"m 632.47485,389.76914 0.35301,4.269 1.19809,1.308 0.13728,2.443 0.12124,2.009 -1.02159,0.06 -4.94211,0.296 -0.24961,-4.37 0.98237,-0.04 -0.23534,-3.746 1.84348,-0.128 -0.17115,-1.961 1.98433,-0.144\"},\"28135\":{\"name\":\"Tallahatchie, MS\",\"path\":\"m 634.16323,397.78914 3.851,-0.337 0.48851,6.129 0.0642,1.047 0.0481,0.667 -1.92015,0.44 -2.0503,0.146 0.12123,2.026 -0.72239,0.0981 -0.007,-0.39803 -0.57956,-0.1368 -0.74964,0.9383 -1.19705,0.1926 -0.0576,-1.13106 0.26556,-0.41022 2.30507,-0.24889 -0.007,-0.39803 -0.0241,-0.475 -5.33342,0.255 -0.21929,-4.025 -0.11945,-2.01 4.94211,-0.296 1.02159,-0.06 -0.12124,-2.009\"},\"28083\":{\"name\":\"Leflore, MS\",\"path\":\"m 628.65951,406.19314 5.33342,-0.255 0.0241,0.475 0.007,0.39803 -2.30507,0.24889 -0.26556,0.41022 0.0576,1.13106 1.19705,-0.1926 0.74964,-0.9383 0.57956,0.1368 0.007,0.39803 0.72239,-0.0981 0.21573,1.019 0.50099,0.314 0.0463,0.241 0.27991,4.436 -0.63292,1.019 -0.6971,0.03 0.11945,1.928 -2.05148,-0.67655 -0.90808,1.56055 -0.34752,-0.53593 -0.36642,0.50267 0.009,1.34715 -0.98138,0.008 -0.5898,-0.69362 -0.0778,-1.10185 -0.62579,-11.115\"},\"28133\":{\"name\":\"Sunflower, MS\",\"path\":\"m 628.44022,402.16814 0.21929,4.025 0.62579,11.115 -1.96294,0.121 0.0909,1.35 -3.07724,0.183 -0.97094,0.0522 -0.26102,-5.9822 -0.11054,-2 1.99325,-0.111 -0.45107,-8.566 3.90449,-0.187\"},\"28053\":{\"name\":\"Humphreys, MS\",\"path\":\"m 629.2853,417.30814 0.0778,1.10185 0.58979,0.69362 0.98139,-0.008 -0.009,-1.34715 0.36642,-0.50267 0.34752,0.53593 0.25851,3.865 -0.61865,1.141 -0.11232,0.08 -0.21751,-0.04 -0.51347,-0.319 -0.24069,-0.322 -0.082,0.02 -0.0464,0.08 -0.0677,0.383 0.0891,0.763 0.0428,0.121 0.93066,0.772 0.36192,0.23 -1.63133,0.13 0.10519,1.979 -3.97045,0.248 -1.09111,-3.952 -0.49921,-3.996 3.07724,-0.183 -0.0909,-1.35 1.96294,-0.121\"},\"28051\":{\"name\":\"Holmes, MS\",\"path\":\"m 631.63869,417.78214 0.90808,-1.56055 2.05148,0.67655 8.29035,2.225 -3.64776,7.982 -7.81788,-2.552 -0.36192,-0.23 -0.93066,-0.772 -0.0428,-0.121 -0.0891,-0.763 0.0677,-0.383 0.0464,-0.08 0.082,-0.02 0.24069,0.322 0.51347,0.319 0.21751,0.04 0.11232,-0.08 0.61865,-1.141 -0.25851,-3.865\"},\"28015\":{\"name\":\"Carroll, MS\",\"path\":\"m 634.98157,408.92614 6.49321,-0.41 0.42611,6.003 1.35141,0.241 1.31576,-0.103 0.20146,2.699 -1.33449,0.0954 -0.54643,1.67157 -8.29035,-2.225 -0.11945,-1.928 0.6971,-0.03 0.63292,-1.019 -0.27991,-4.436 -0.0463,-0.241 -0.50099,-0.314\"},\"28097\":{\"name\":\"Montgomery, MS\",\"path\":\"m 646.79308,408.14014 0.35658,5.022 2.38548,-0.178 -0.30209,0.30741 -0.3021,0.28255 -0.55066,-0.21459 0.0459,3.73763 -3.65667,0.259 -0.20146,-2.699 -1.31576,0.103 -1.35141,-0.241 -0.42611,-6.003 5.3183,-0.376\"},\"28019\":{\"name\":\"Choctaw, MS\",\"path\":\"m 654.99072,410.90514 0.41184,5.695 -0.3958,0.03 0.14409,2.04537 -1.98936,0.12963 0.1355,2.027 -1.98612,0.152 -0.2274,-4.01418 -2.65728,0.12318 -0.0459,-3.73763 0.55066,0.21459 0.30209,-0.28255 0.3021,-0.30741 2.13123,-1.56149 3.32435,-0.51751\"},\"28105\":{\"name\":\"Oktibbeha, MS\",\"path\":\"m 656.2619,410.14114 0.65075,-0.09 5.94409,-0.472 0.1141,1.357 0.43681,5.038 -2.75275,0.223 -5.25234,0.403 -0.41184,-5.695 1.27118,-0.765\"},\"28087\":{\"name\":\"Lowndes, MS\",\"path\":\"m 665.7022,407.38414 4.8601,-2.589 -0.10162,4.894 -0.10519,5.704 -6.94784,0.581 -0.43681,-5.038 3.40618,-0.91972 0.0634,-1.88092 -0.73822,-0.75136\"},\"28095\":{\"name\":\"Monroe, MS\",\"path\":\"m 670.76555,396.85814 -0.0178,0.658 -0.18542,7.279 -4.8601,2.589 0.31557,-0.57 -0.11411,-0.138 -4.16478,0.312 -0.24069,-3.004 -0.44215,-6.074 -0.0423,-0.35669 3.33172,-0.23831 6.42011,-0.457\"},\"28057\":{\"name\":\"Itawamba, MS\",\"path\":\"m 670.9581,388.10814 -0.19255,8.75 -6.42011,0.457 -0.66145,-8.671 4.01146,-0.281 3.26265,-0.255\"},\"28117\":{\"name\":\"Prentiss, MS\",\"path\":\"m 666.45814,381.68614 0.96912,0.4997 0.26819,6.1773 -4.01146,0.281 -0.0549,-0.93148 -3.67307,0.20848 -0.1355,-2.026 0.5047,-0.0449 -0.0971,-3.67414 6.22997,-0.49\"},\"28141\":{\"name\":\"Tishomingo, MS\",\"path\":\"m 666.05521,376.15214 3.05227,-0.251 2.10735,2.225 -0.19255,7.226 -0.0642,2.756 -3.26265,0.255 -0.26819,-6.1773 -0.96912,-0.4997 -0.40293,-5.534\"},\"28003\":{\"name\":\"Alcorn, MS\",\"path\":\"m 665.74142,376.17314 0.31379,-0.02 0.40293,5.534 -6.22997,0.49 -0.39258,0.007 -0.0115,-2.3057 -1.98016,0.1276 -0.3608,-3.1714 0.68284,-0.06 7.57541,-0.603\"},\"28139\":{\"name\":\"Tippah, MS\",\"path\":\"m 653.85681,377.11514 3.62636,-0.282 0.3608,3.1714 1.98016,-0.1276 0.0115,2.3057 0.39258,-0.007 0.0971,3.67414 -0.5047,0.0449 -6.62158,0.46 -0.36192,-5.006 0.98771,-0.07 0.25852,-1.031 -0.22643,-3.132\"},\"28009\":{\"name\":\"Benton, MS\",\"path\":\"m 650.48362,377.36214 3.37319,-0.247 0.22643,3.132 -0.25852,1.031 -0.98771,0.07 0.36192,5.006 -2.9239,0.562 -0.9895,0.07 -0.44928,-6.035 -0.74702,-1.1 -0.49029,-2.289 2.88468,-0.204\"},\"28093\":{\"name\":\"Marshall, MS\",\"path\":\"m 642.15049,377.91914 5.44845,-0.353 0.49029,2.289 0.74702,1.1 0.44928,6.035 0.9895,-0.07 0.12658,2.018 -1.97542,-0.481 -1.95575,0.0408 -0.48856,-0.60478 -1.65986,0.08 -1.94689,0.162 -0.20146,-2.804 -1.01267,-0.163 -0.15155,-2 -0.35301,-5.135 1.49405,-0.11\"},\"28033\":{\"name\":\"DeSoto, MS\",\"path\":\"m 640.65644,378.02914 0.35301,5.135 -3.5283,0.226 -3.51047,1.15 -1.83101,0.303 -0.22828,-3.08945 -1.71148,0.0464 -0.47246,-3.102 10.92899,-0.669\"},\"28143\":{\"name\":\"Tunica, MS\",\"path\":\"m 630.19991,381.80014 1.71148,-0.0464 0.22828,3.08945 -0.66521,1.9615 0.94512,1.9615 0.0553,1.003 -1.98433,0.145 0.17115,1.961 -1.84348,0.128 -3.35002,-2.153 -0.25673,-2.676 2.89182,-4.606 2.09665,-0.768\"},\"28027\":{\"name\":\"Coahoma, MS\",\"path\":\"m 625.46817,389.85014 3.35002,2.153 0.23534,3.746 -0.98237,0.04 0.24961,4.37 0.11945,2.01 -3.90449,0.187 -0.21572,-3.031 -3.02197,0.119 -2.13053,0.129 -0.0642,-0.225 0.27278,-0.569 0.85399,-1.759 1.8007,-3.231 0.98593,-0.193 0.98949,-0.203 0.81834,-0.392 0.65075,-0.571 0.041,-0.03 0.0178,-0.04 0.1355,-0.442 -0.20147,-2.064\"},\"28011\":{\"name\":\"Bolivar, MS\",\"path\":\"m 619.16751,399.57214 2.13053,-0.129 3.02197,-0.119 0.21572,3.031 0.45107,8.566 -1.99325,0.111 0.11054,2 -8.61305,0.459 -0.26386,-0.73 1.4049,-0.565 0.33696,-0.289 0.0499,-0.247 0,-0.02 -0.53842,-0.435 -0.56874,-0.426 -0.1141,-0.203 -0.025,-0.05 0.10519,-0.523 1.52613,-6.573 3.71372,-1.87 0.11232,-0.772 -0.20146,-0.5 -0.85221,-0.682 -0.009,-0.03\"},\"28151\":{\"name\":\"Washington, MS\",\"path\":\"m 614.49104,413.49114 8.61305,-0.459 0.26102,5.9822 0.97094,-0.0522 0.49921,3.996 -3.65203,0.29426 -0.31308,1.96374 -4.66577,0.159 0.56161,-0.635 0.016,-0.02 0.60261,-2.501 0,-0.02 -0.0553,-1.747 -0.4992,-0.529 -0.65075,-1.181 -0.96453,-2.758 0.98949,-0.289 0.23178,-0.458 -0.15155,-0.536 -0.79516,-0.537 -0.97345,-0.663 -0.025,-0.01\"},\"28125\":{\"name\":\"Sharkey, MS\",\"path\":\"m 624.83526,422.95814 1.09111,3.952 -1.87201,2.113 0.0321,0.499 0.36192,0.09 0.52238,0.416 0.5206,0.522 0.60261,1.817 -0.0232,0.297 -0.18541,0.193 -0.89857,0.121 -4.66042,0.241 -0.19255,-4.044 0.11232,-0.337 0.0963,-0.01 0.1355,-0.103 0.0891,-0.148 0.32804,-1.79 -0.025,-1.566 0.31308,-1.96374 3.65203,-0.29426\"},\"28055\":{\"name\":\"Issaquena, MS\",\"path\":\"m 620.87015,425.21614 0.025,1.566 -0.32804,1.79 -0.0891,0.148 -0.1355,0.103 -0.0963,0.01 -0.11232,0.336 0.19255,4.044 4.66042,-0.241 0.11054,0.995 0.0157,0.97218 -2.58177,0.26973 0.0594,2.97609 -1.94333,0.605 -0.20146,-3.568 -2.55485,0.104 -0.61153,-0.191 -0.0481,-0.04 -0.18364,-0.16 -0.041,-0.03 -0.0214,-0.04 -0.0606,-0.07 -0.0214,-0.04 -0.11411,-0.274 -1.54218,-6.989 -0.0321,-0.186 0.20146,-0.731 0.63292,-1.021 0.15511,-0.177 4.66577,-0.158\"},\"28163\":{\"name\":\"Yazoo, MS\",\"path\":\"m 631.42296,424.55314 7.81788,2.552 -1.22126,3.132 -0.19255,0.305 -1.10003,0.788 -5.64992,3.207 -0.71493,0.168 -1.91123,1.647 -3.35358,-2.38 -0.11054,-0.995 0.89857,-0.121 0.18541,-0.192 0.0232,-0.298 -0.60261,-1.817 -0.5206,-0.522 -0.52238,-0.416 -0.36192,-0.09 -0.0321,-0.499 1.87201,-2.113 3.97045,-0.248 -0.10519,-1.979 1.63133,-0.13\"},\"28007\":{\"name\":\"Attala, MS\",\"path\":\"m 648.42619,417.09714 2.65728,-0.12318 0.2274,4.01418 0.25674,4.082 -4.60337,0.346 -3.27157,0.232 0.0713,1.045 -4.52315,0.412 3.64776,-7.982 0.54643,-1.67157 1.33449,-0.0954 3.65667,-0.259\"},\"28159\":{\"name\":\"Winston, MS\",\"path\":\"m 655.40256,416.60014 5.25234,-0.403 0.63648,8.296 -1.95224,0.135 -7.77153,0.442 -0.25674,-4.082 1.98612,-0.152 -0.1355,-2.027 1.98936,-0.12963 -0.14409,-2.04537 0.3958,-0.03\"},\"28103\":{\"name\":\"Noxubee, MS\",\"path\":\"m 663.40765,415.97414 6.94784,-0.581 -0.1355,6.896 -0.0267,1.439 -8.90187,0.765 -0.63648,-8.296 2.75275,-0.223\"},\"28069\":{\"name\":\"Kemper, MS\",\"path\":\"m 661.29138,424.49314 8.90187,-0.765 -0.1355,8.131 -10.11779,0.812 -0.60082,-8.043 1.95224,-0.135\"},\"28099\":{\"name\":\"Neshoba, MS\",\"path\":\"m 651.56761,425.07014 7.77153,-0.442 0.60082,8.043 -7.76083,0.57 -0.61152,-8.171\"},\"28079\":{\"name\":\"Leake, MS\",\"path\":\"m 651.56761,425.07014 0.61152,8.171 -0.0981,0.01 -7.84997,0.52 -0.0963,-1.317 -0.37083,-5.762 -0.0713,-1.045 3.27157,-0.232 4.60337,-0.346\"},\"28089\":{\"name\":\"Madison, MS\",\"path\":\"m 639.24084,427.10514 4.52315,-0.412 0.37083,5.762 -0.96453,1.166 -0.42611,0.02 -1.00375,0.119 -2.70105,2.484 -1.05189,1.171 -0.0713,0.171 -0.009,0.296 0.11232,0.394 -2.45145,0.138 -0.99484,-0.1 -0.11232,-1.847 -0.70958,0.04 -3.268,0.185 -0.12124,-1.984 0.71493,-0.168 5.64992,-3.207 1.10003,-0.788 0.19255,-0.305 1.22126,-3.133\"},\"28121\":{\"name\":\"Rankin, MS\",\"path\":\"m 643.17029,433.62114 1.35627,4.9463 0.23583,3.3777 0.27278,4.017 -9.70772,0.556 -0.49743,-1.423 0.69889,-3.255 1.17313,-1.696 1.31754,-1.872 -0.11232,-0.394 0.009,-0.296 0.0713,-0.171 1.05189,-1.171 2.70105,-2.484 1.00375,-0.119 0.42611,-0.02\"},\"28049\":{\"name\":\"Hinds, MS\",\"path\":\"m 628.45092,436.35214 1.91123,-1.647 0.12124,1.984 3.268,-0.185 0.70958,-0.04 0.11232,1.847 0.99484,0.1 2.45145,-0.137 -1.31754,1.872 -1.17313,1.695 -0.69889,3.256 0.49743,1.422 -9.46526,0.585 -0.42254,-4.056 3.01127,-6.695\"},\"28149\":{\"name\":\"Warren, MS\",\"path\":\"m 617.89098,435.33114 2.55485,-0.104 0.20146,3.568 1.94333,-0.605 -0.0594,-2.97609 2.58177,-0.26973 -0.0157,-0.97218 3.35358,2.38 -3.01127,6.695 -0.4689,0.562 -0.95561,1.132 -2.01821,1.783 -0.5313,-0.07 -1.68659,-0.524 -1.96116,-2.291 2.24107,-0.278 -0.1355,-3.318 -2.14479,-2.282 -0.016,-0.04 -0.082,-0.128 -0.0553,-0.08 0,-0.03 -0.0339,-0.369 0.4368,-1.471 -0.13728,-0.313\"},\"28063\":{\"name\":\"Jefferson, MS\",\"path\":\"m 615.78541,451.75614 4.57128,-0.06 3.37675,0.635 0.0481,0.271 0.007,0.258 0.15333,0.401 1.9041,-0.112 0.10341,2.016 0.0981,2.01 -8.12276,0.46 -1.92786,-0.0125 -0.94604,-1.04599 -0.49685,-1.83359 -0.99371,-0.0499 2.22502,-2.942\"},\"28021\":{\"name\":\"Claiborne, MS\",\"path\":\"m 625.43965,443.04714 0.42254,4.056 -0.0161,6.051 -1.9041,0.112 -0.15333,-0.401 -0.007,-0.258 -0.0481,-0.271 -3.37675,-0.635 -4.57128,0.06 3.99363,-5.828 1.68659,0.524 0.5313,0.07 2.01821,-1.783 0.95561,-1.132 0.4689,-0.562\"},\"28029\":{\"name\":\"Copiah, MS\",\"path\":\"m 635.32745,446.51814 2.0521,2.656 0.46352,4.046 -2.33912,0.956 -9.5544,0.994 -0.10341,-2.016 0.0161,-6.051 9.46526,-0.585\"},\"28127\":{\"name\":\"Simpson, MS\",\"path\":\"m 645.03517,445.96214 1.23732,-0.0954 0.66679,6.12344 -1.97721,0.273 -4.25036,0.57 -2.86864,0.387 -0.46352,-4.046 -2.0521,-2.656 9.70772,-0.556\"},\"28129\":{\"name\":\"Smith, MS\",\"path\":\"m 644.76239,441.94514 7.89099,-0.569 0.79516,9.672 -1.64024,0.234 -4.86902,0.708 -0.66679,-6.12344 -1.23732,0.0954 -0.27278,-4.017\"},\"28123\":{\"name\":\"Scott, MS\",\"path\":\"m 644.13482,432.45514 0.0963,1.317 7.84997,-0.52 0.57231,8.124 -7.89099,0.569 -0.23583,-3.3777 -1.35627,-4.9463 0.96453,-1.166\"},\"28101\":{\"name\":\"Newton, MS\",\"path\":\"m 652.17913,433.24114 7.76083,-0.57 0.61866,8.11 -7.90524,0.595 -0.57231,-8.124 0.0981,-0.01\"},\"28075\":{\"name\":\"Lauderdale, MS\",\"path\":\"m 659.93996,432.67114 10.11779,-0.812 -0.13728,6.246 -0.0464,1.879 -9.3155,0.797 -0.61866,-8.11\"},\"28023\":{\"name\":\"Clarke, MS\",\"path\":\"m 669.87412,439.98414 -0.13015,7.707 -8.43654,2.218 -0.74881,-9.128 9.3155,-0.797\"},\"28061\":{\"name\":\"Jasper, MS\",\"path\":\"m 660.55862,440.78114 0.74881,9.128 -0.63649,0.09 -7.2224,1.044 -0.79516,-9.672 7.90524,-0.595\"},\"28067\":{\"name\":\"Jones, MS\",\"path\":\"m 660.67094,450.00414 0.66145,8.982 -3.95263,0.276 -4.94568,0.353 -0.62578,-8.333 1.64024,-0.234 7.2224,-1.044\"},\"28031\":{\"name\":\"Covington, MS\",\"path\":\"m 651.8083,451.28214 0.62578,8.333 -1.02871,0.07 -2.64222,0.188 -0.11945,-1.833 -0.35479,-0.563 -0.69889,-0.411 -0.70601,-0.09 -0.52417,-0.256 -1.15708,-0.667 -0.24069,-3.792 1.97721,-0.273 4.86902,-0.708\"},\"28065\":{\"name\":\"Jefferson Davis, MS\",\"path\":\"m 640.71171,452.83314 4.25036,-0.57 0.24069,3.792 1.15708,0.667 0.52417,0.256 0.70601,0.09 0.69889,0.41 0.35479,0.563 0.11945,1.833 -1.31754,0.09 -3.32505,0.212 0.0874,1.011 -2.65291,0.161 -0.19255,-3.027 -0.46533,-2.406 -0.18542,-3.077\"},\"28077\":{\"name\":\"Lawrence, MS\",\"path\":\"m 637.84307,453.22014 2.86864,-0.387 0.18542,3.077 0.46533,2.405 0.19255,3.028 -1.63093,0.1452 0.11906,1.2058 -4.00076,-0.08 -0.53843,-8.438 2.33912,-0.956\"},\"28085\":{\"name\":\"Lincoln, MS\",\"path\":\"m 635.50395,454.17614 0.53843,8.438 -0.32805,0.02 -5.62674,0.348 -1.67055,0.103 -0.33696,-6.027 -2.03247,0.121 -0.0981,-2.01 9.5544,-0.994\"},\"28037\":{\"name\":\"Franklin, MS\",\"path\":\"m 617.92485,457.64014 8.12276,-0.46 2.03247,-0.121 0.33696,6.027 -6.84622,0.387 -2.15905,0.747 -1.26406,-0.524 -0.22286,-6.056\"},\"28001\":{\"name\":\"Adams, MS\",\"path\":\"m 613.56039,454.69814 0.99371,0.0499 0.49685,1.83359 0.94604,1.04599 1.92786,0.0125 0.22286,6.056 -0.0963,-0.09 -1.38173,-0.463 -0.80229,0.144 -0.63648,0.225 -2.63509,1.085 -2.50671,2.331 -0.18542,0.408 -0.28882,1.198 0.47424,-2.476 0.73098,-5.993 0.007,-0.02 0.0731,-0.155 0.0481,-0.09 2.09666,-4.211 0.0143,-0.02 0.30844,-0.528 0.19255,-0.346\"},\"28157\":{\"name\":\"Wilkinson, MS\",\"path\":\"m 618.14771,463.69614 1.26406,0.524 0.77232,0.66999 0.29383,6.69901 -2.28385,0.112 -9.0552,0.426 0.47603,-3.592 0.28882,-1.198 0.18542,-0.408 2.50671,-2.331 2.63509,-1.085 0.63648,-0.225 0.80229,-0.145 1.38173,0.464 0.0963,0.09\"},\"28005\":{\"name\":\"Amite, MS\",\"path\":\"m 630.08759,462.98314 0.46711,8.037 -0.37618,0.01 -5.09545,0.297 -4.60515,0.259 -0.29383,-6.69901 -0.77232,-0.66999 2.15905,-0.747 6.84622,-0.387 1.67055,-0.103\"},\"28113\":{\"name\":\"Pike, MS\",\"path\":\"m 630.08759,462.98314 5.62674,-0.348 0.50633,8.029 -1.7276,0.105 -3.93836,0.251 -0.46711,-8.037\"},\"28147\":{\"name\":\"Walthall, MS\",\"path\":\"m 636.04238,462.61414 4.00076,0.08 0.14619,2.345 0.33875,1.326 0.76307,0.941 1.43699,0.908 1.43877,0.232 0.37797,1.665 -8.32422,0.553 -0.50633,-8.029 0.32805,-0.02\"},\"28091\":{\"name\":\"Marion, MS\",\"path\":\"m 647.44561,459.95914 0.6668,9.901 -1.45483,0.107 -2.1127,0.144 -0.37797,-1.665 -1.43877,-0.232 -1.43699,-0.908 -0.76307,-0.941 -0.33875,-1.326 -0.14619,-2.345 -0.11906,-1.2058 1.63093,-0.1452 2.65291,-0.161 -0.0874,-1.011 3.32505,-0.212\"},\"28073\":{\"name\":\"Lamar, MS\",\"path\":\"m 651.40537,459.68614 0.15511,2.01 2.01642,-0.145 0.51525,7.715 -5.97974,0.594 -0.6668,-9.901 1.31754,-0.09 2.64222,-0.188\"},\"28035\":{\"name\":\"Forrest, MS\",\"path\":\"m 657.37976,459.26214 0.5206,7.087 0.3441,2.853 0.16224,2.08 -3.99363,0.278 -0.32092,-2.294 -0.51525,-7.715 -2.01642,0.145 -0.15511,-2.01 1.02871,-0.07 4.94568,-0.353\"},\"28153\":{\"name\":\"Wayne, MS\",\"path\":\"m 669.74397,447.69114 0.46533,4.507 0.76485,5.994 -7.64852,0.644 -1.99324,0.15 -0.66145,-8.982 0.63649,-0.09 8.43654,-2.218\"},\"28041\":{\"name\":\"Greene, MS\",\"path\":\"m 663.32563,458.83614 7.64852,-0.644 0.93065,7.342 0.34053,2.655 -8.02113,0.628 -0.89857,-9.981\"},\"28111\":{\"name\":\"Perry, MS\",\"path\":\"m 661.33239,458.98614 1.99324,-0.15 0.89857,9.981 0.14955,1.95517 -1.00176,0.11583 -4.96529,0.394 -0.16224,-2.08 -0.3441,-2.853 -0.5206,-7.087 3.95263,-0.276\"},\"28131\":{\"name\":\"Stone, MS\",\"path\":\"m 663.37199,470.88814 0.312,4.017 0.10697,1.335 -6.87831,0.507 -0.0909,0.69 -2.00038,0.137 -0.40828,-6.014 3.99363,-0.278 4.96529,-0.394\"},\"28109\":{\"name\":\"Pearl River, MS\",\"path\":\"m 654.09215,469.26614 0.32092,2.294 0.40828,6.014 -2.73136,0.185 -1.21414,0.764 0.15155,2.339 -1.94333,1.453 -0.86826,0.06 -3.30187,-4.548 0.21929,-1.642 0.2389,-1.213 0.29774,-1.469 0.25852,-1.075 0.0463,-0.05 0.16046,-0.02 0.12302,-0.02 0.1979,-0.442 0.24247,-1.214 -0.041,-0.713 1.45483,-0.107 5.97974,-0.594\"},\"28045\":{\"name\":\"Hancock, MS\",\"path\":\"m 648.21581,482.37214 0.86826,-0.06 1.94333,-1.453 -0.15155,-2.34 1.21414,-0.763 2.73136,-0.185 0.45819,6.301 -0.36269,2.06897 -2.97127,2.58403 -0.91818,0.06 -0.0374,0 -0.0481,-0.03 -0.0713,-0.05 -0.0499,-0.03 -0.1462,-0.169 -0.43145,-0.505 -0.19255,-0.371 -0.62936,-1.194 -0.016,-0.123 0.0499,-0.193 0.18363,-0.465 -0.0303,-0.426 -1.23018,-2.5 -0.12836,-0.13 -0.0339,-0.03\"},\"28039\":{\"name\":\"George, MS\",\"path\":\"m 664.2242,468.81714 8.02113,-0.628 0.73811,5.996 -9.29945,0.72 -0.312,-4.017 1.00176,-0.11583 -0.14955,-1.95517\"},\"30091\":{\"name\":\"Sheridan, MT\",\"path\":\"m 400.09559,53.675143 -0.69176,8.292 -0.45819,5.545 -8.95179,-0.779 0.18541,-1.977 -2.11206,-0.27454 0.29532,-1.87946 -3.31079,-0.312 0.18542,-1.961 -1.00376,-0.105 0.27278,-5.923 0.19434,-2 15.39508,1.374\"},\"30085\":{\"name\":\"Roosevelt, MT\",\"path\":\"m 385.05173,62.290143 3.31079,0.312 -0.29532,1.87946 2.11206,0.27454 -0.18541,1.977 8.95179,0.779 -0.71493,8.936 -2.94887,-1.022 -3.03801,-1.767 -6.50748,-1.638 -0.90926,0.369 -0.41006,0.546 -0.49742,0.378 -0.32983,0.167 -1.88806,0 -1.14995,-0.224 -0.87539,-0.635 -1.31754,-0.257 -1.14995,-0.05 -2.81159,-0.04 -0.76307,0.03 -0.83616,0.458 -2.41044,0.738 0.4992,-4.731 0.60083,0.06 0.80407,-7.795 12.76,1.262\"},\"30031\":{\"name\":\"Gallatin, MT\",\"path\":\"m 283.339,103.93614 4.39478,0.708 -0.2817,1.125 -0.53842,3.214 -0.11946,1.19 -0.25851,1.656 -0.33518,2.016 -0.7809,4.66556 -1.11174,-0.0991 -0.0382,0.61656 -0.17333,0.88713 -0.98847,-0.11843 -0.49984,3.5943 -1.92906,-0.305 -0.77198,3.945 -0.2817,1.719 -0.312,2.266 -1.23219,7.26384 -0.76106,4.71916 -1.30862,-1.214 -0.18542,-0.548 -0.71493,-2.064 -1.31933,-2.587 -0.77198,-0.763 0.60439,-3.632 1.69551,-9.957 0.46533,-0.642 0.95562,-5.907 -2.94887,-0.49 -1.09111,-1.519 -0.62757,-1.118 -0.74703,-0.802 -0.58656,-0.433 -0.62757,-0.371 2.44253,-0.417 3.43203,-2.179 0.93957,-0.859 0.21573,-1.519 0.56338,-0.924 1.06972,-1.366 0.70602,-0.256 2.31417,0.247 1.54396,0.257\"},\"30057\":{\"name\":\"Madison, MT\",\"path\":\"m 263.82014,111.04114 0.0892,0.03 0.31378,-0.02 0.5206,-0.387 0.46711,-0.866 0.0874,-0.442 0.18542,-0.17 0.39401,-0.135 1.03585,-0.07 1.37459,0.346 1.77574,1.246 0.0731,0.119 -0.025,0.25 0.62757,0.371 0.58656,0.433 0.74703,0.802 0.62757,1.118 1.09111,1.519 2.94887,0.49 -0.95562,5.907 -0.46533,0.642 -1.69551,9.957 -0.60439,3.632 -1.83101,0.69 -4.84584,-0.795 0.27456,-1.639 -1.94511,-0.321 -2.61903,-0.515 0.0516,-0.94913 -1.51537,-0.30387 -0.0392,-2.017 0.33696,-1.986 -2.29812,-0.401 0.10273,-1.94913 -1.72514,-0.38987 1.02872,-5.921 0.0624,-1.022 -0.4582,-1.221 -0.48851,-0.144 -0.43502,0.1 -0.26386,0.144 -0.29774,-0.04 -0.47425,-0.346 -0.80407,-1.037 -0.0392,-0.12 0.007,-1.164 0.64183,-2.027 1.55288,-0.594 0.7702,-0.337 0.39402,-0.289 0.19255,-0.185 1.1339,-0.619 4.33059,0.619\"},\"30007\":{\"name\":\"Broadwater, MT\",\"path\":\"m 273.31036,93.556143 2.37835,0.09 0.59369,-3.522 0.62044,-0.754 0.0874,-0.05 0.26565,-0.05 1.32645,0.667 0.72784,2.554367 1.35892,1.134425 -0.59535,2.111079 1.25846,1.085564 0.27239,1.756093 1.52158,-0.329329 1.40324,1.563928 -1.98884,2.2739 0.65383,0.77507 0.14463,1.0719 -1.54396,-0.256 -2.31417,-0.248 -0.70602,0.256 -1.06972,1.366 -0.56338,0.924 -0.21573,1.519 -0.93957,0.859 -3.43203,2.179 0.80408,-4.894 -1.96116,-0.337 1.91302,-11.747997\"},\"30043\":{\"name\":\"Jefferson, MT\",\"path\":\"m 264.53507,95.500143 0.6044,0.233 0.59369,-0.137 1.03763,-0.514 0.0392,-0.06 -0.0481,-0.369 2.52104,-0.337444 0.24241,-1.405556 3.78503,0.643 -1.91302,11.747997 1.96116,0.337 -0.80408,4.894 -2.44253,0.417 0.025,-0.25 -0.0731,-0.119 -1.77574,-1.247 -1.37459,-0.345 -1.03585,0.07 -0.39401,0.135 -0.18542,0.169 -0.0874,0.443 -0.46711,0.866 -0.5206,0.387 -0.31378,0.02 -0.0892,-0.03 -2.72422,-2.257 -0.45642,-1.047 0.15155,-4.796 0.007,-0.442 -0.83439,-2.064 -0.5723,-0.193 0.63649,-1.914997 0.009,-0.577 0.0624,-0.346 0.58657,-0.489 2.46749,-0.772 1.38172,-0.643\"},\"30093\":{\"name\":\"Silver Bow, MT\",\"path\":\"m 259.39149,100.24214 0.5723,0.193 0.83439,2.064 -0.007,0.442 -0.15155,4.796 0.45642,1.047 2.72422,2.257 -4.33059,-0.619 -1.1339,0.619 -0.19255,0.185 -0.39402,0.289 -0.7702,0.337 -1.55288,0.594 -0.67392,-2.257 -0.54734,-1.086 -0.56161,-0.546 -2.56377,-1.333 -1.0198,-1.23 1.03585,-0.104 0.7078,-0.346 0.93244,-0.586 0.18542,-0.177 -0.0297,-1.26697 0.82482,0.086 0.79516,-1.181 1.26152,0.14801 0.26462,-1.91701 1.95224,-0.02 1.38172,-0.392\"},\"30023\":{\"name\":\"Deer Lodge, MT\",\"path\":\"m 260.02798,98.327143 -0.63649,1.914997 -1.38172,0.392 -1.95224,0.02 -0.26462,1.91701 -1.26152,-0.14801 -0.79516,1.181 -0.82482,-0.086 0.0297,1.26697 -0.18542,0.177 -0.93244,0.586 -0.7078,0.346 -1.03585,0.104 0.0161,-0.266 -0.15154,-0.239 -0.11233,-0.05 -1.11786,-0.275 -0.60261,0.131 -2.25889,1.083 -0.27278,0.33 -0.64383,0.7117 -0.51325,-1.3777 -0.10519,-1.215 -0.40115,-1.72 -0.0802,-0.143 -0.0642,0 -0.1765,0.02 -0.0161,-0.03 1.36568,-0.707 1.36568,-0.352 1.30709,-0.66603 0.4526,-2.018967 0.36192,-1.961 3.89736,0.699 0.1765,-0.979 7.52193,1.364\"},\"30001\":{\"name\":\"Beaverhead, MT\",\"path\":\"m 243.59527,102.98114 0.1765,-0.02 0.0642,0 0.0802,0.143 0.40115,1.72 0.10519,1.215 0.51325,1.3777 0.64383,-0.7117 0.27278,-0.329 2.25889,-1.084 0.60261,-0.131 1.11786,0.275 0.11233,0.05 0.15154,0.239 -0.0161,0.266 1.0198,1.23 2.56377,1.333 0.56161,0.546 0.54734,1.086 0.67392,2.257 -0.64183,2.027 -0.007,1.164 0.0392,0.12 0.80407,1.037 0.47425,0.346 0.29774,0.04 0.26386,-0.144 0.43502,-0.1 0.48851,0.144 0.4582,1.221 -0.0624,1.022 -1.02872,5.921 1.72516,0.38597 -0.10275,1.95303 2.29812,0.401 -0.33696,1.986 0.0392,2.017 1.51539,0.30003 -0.0517,0.95297 2.61903,0.515 1.94511,0.321 -0.27456,1.639 4.84584,0.795 -2.77949,3.191 -2.08952,-0.06 -3.23948,-0.923 -4.475,-0.459 -2.44253,0.917 -5.74619,-1.43 -1.08399,0.257 -0.6347,0.674 -0.23356,0.362 -0.19255,0.859 -0.009,0.06 -0.16046,0.25 -0.32983,0.183 -0.41719,-0.151 -1.30863,-1.464 -0.44393,-0.642 -0.19077,-1.086 0.0232,-2.868 0.0642,-0.05 0.0963,-0.177 0,-0.176 -0.46712,-2.001 -0.35122,-1.102 -0.30666,-0.474 -0.68283,-0.763 -0.57052,-0.449 -0.54734,0.135 -2.66718,-3.712 -2.51563,-9.353 -0.0232,-1.8 0.041,-1.366 0.2086,-0.378 0.0143,-0.683 -0.18364,-1.824 -0.0891,-0.288 -1.55823,-2.202 -0.32983,-0.346 0.32983,0.02 0.5313,-0.09 5.08653,-2.25 1.00375,-0.53 0.57052,-0.403 0.50634,-0.948\"},\"30081\":{\"name\":\"Ravalli, MT\",\"path\":\"m 241.77139,85.778143 -0.8843,2.899 0.24068,3.713 0.0553,2.266 -0.81834,2.09 0.0963,3.068 1.166,2.178997 0.97166,0.804 0.98058,0.151 0.0161,0.03 -0.50634,0.948 -0.57052,0.403 -1.00375,0.53 -5.08653,2.249 -0.5313,0.09 -0.32983,-0.02 -1.41381,0.811 -1.98434,1.736 -3.15033,1.446 -0.65966,-0.103 0,0 -0.14441,-0.562 -1.18026,-1.865 -0.20147,-0.09 -0.6347,-0.16 -0.7078,-0.1 -0.0481,-0.06 0.0161,-0.08 0.28169,-1.558 0.56161,-3.077 4.48391,-11.185997 1.40669,-3.125 0.93957,-2.163 0.55626,-1.574 0.0963,-0.507 -0.0571,-0.265 -0.0874,-0.09 8.13167,1.174\"},\"30039\":{\"name\":\"Granite, MT\",\"path\":\"m 250.67504,83.455143 1.44699,1.393104 0.5213,1.321896 0.4582,0.492 0.89856,-0.226 0.24247,-0.113 0.16046,0.05 -1.01267,5.779 -0.8843,4.813 -0.1765,0.979 -3.89736,-0.699 -0.36192,1.961 -0.4526,2.018967 -1.30709,0.66603 -1.36568,0.352 -1.36568,0.707 -0.98058,-0.151 -0.97166,-0.804 -1.166,-2.178997 -0.0963,-3.068 0.81834,-2.09 -0.0553,-2.266 -0.24068,-3.713 0.8843,-2.899 0.52238,0.16 1.96829,0.369 0.29319,-1.089574 1.78855,0.334574 0.43562,-0.769141 0.79165,0.01414 0.21929,-1.189 1.02088,0.154641 0.0952,-0.628641 1.76861,0.321\"},\"30049\":{\"name\":\"Lewis and Clark, MT\",\"path\":\"m 260.18844,59.131143 0.21751,4.363 -0.15333,1.679 0.0642,0.218 0.52238,1.182 0.50634,0.795 0.5616,0.314 0.12124,0.02 1.81496,-0.241 1.76861,-0.369 0.0802,0.02 1.75256,1.446 0.12836,0.474 -0.0802,0.112 -0.016,0.514 0.0232,0.05 1.73651,1.237 1.03585,0.385 1.61706,0.225 0.99484,-0.05 -1.20522,7.295 1.45482,1.432 0.5937,0.506 0.33875,0.04 0.0553,-0.08 1.28545,0.209 -0.82012,4.855 2.05922,0.353 0.48405,0.956 -0.62035,0.956 1.94343,1.192657 0.12906,0.719343 -1.32645,-0.667 -0.26565,0.05 -0.0874,0.05 -0.62044,0.754 -0.59369,3.521 -2.37835,-0.09 -3.78503,-0.643 -0.24241,1.405556 -2.52104,0.337444 0.0481,0.369 -0.0392,0.06 -1.03763,0.514 -0.59369,0.137 -0.6044,-0.233 0.2086,-0.651 0.66679,-3.263 -0.19968,-1.437 -1.28616,-0.108548 0.13799,-1.105452 -1.95402,-0.314 0.54021,-3.061 -2.07526,-0.353 -0.17651,0.02 -1.81674,-0.33 1.32645,-7.48 0.0481,-0.305 -3.92053,-0.699 -0.13728,-0.08 1.24622,-6.911 -0.28169,0 -0.43324,-1.784 -0.15332,-0.924 0.18541,-2.853 0.0392,-0.176 1.88633,-0.367374 0.31551,-2.847626 0.82725,-0.875 0.65967,-0.467\"},\"30077\":{\"name\":\"Powell, MT\",\"path\":\"m 251.33292,65.720143 4.94212,0.997 0.15332,0.924 0.43324,1.784 0.28169,0 -1.24622,6.911 0.13728,0.08 3.92053,0.699 -0.0481,0.305 -1.32645,7.48 1.81674,0.33 0.17651,-0.02 2.07526,0.353 -0.54021,3.061 1.95402,0.314 -0.13799,1.105452 1.28616,0.108548 0.19968,1.437 -0.66679,3.263 -0.2086,0.651 -1.38172,0.643 -2.46749,0.772 -0.58657,0.489 -0.0624,0.346 -0.009,0.577 -7.52193,-1.364 0.8843,-4.813 1.01267,-5.779 -0.16046,-0.05 -0.24247,0.113 -0.89856,0.226 -0.4582,-0.492 -0.5213,-1.321896 -1.44699,-1.393104 1.43699,-7.818 -2.53167,-0.451 1.75256,-9.466\"},\"30047\":{\"name\":\"Lake, MT\",\"path\":\"m 248.75489,65.246143 -4.83871,-0.932 0.51347,7.682 0.0321,0.137 -0.37797,1.953 -1.91837,0.65 -3.93122,-0.756 0.20146,-0.98 0.50633,-3.953 -1.31754,-0.257 -0.37796,-0.169 -0.12837,-0.144 -0.33696,-0.628 0.39401,-1.1 0.36192,-0.57 0.0802,-0.02 0.12837,0.07 0.37618,-0.555 0.0571,-2.307 -0.0874,-0.128 -0.33875,-0.152 -0.96453,-0.185 -2.61904,-0.515 0.31379,-3.302 0.19968,-0.972 1.94511,0.385 0.37797,-1.913 -0.0232,-0.683 0.18364,-1.301 6.92645,1.333 0.0891,-0.616 -0.0321,-0.17 -0.0731,-0.1 -0.11054,-0.02 -0.025,-0.537 0.29596,-0.274 0.40293,-0.257 2.16797,0.433 2.62795,4.122 0.0321,0.122 0.25851,3.961 -0.016,0.563 -0.0731,0.353 -0.88252,1.728\"},\"30063\":{\"name\":\"Missoula, MT\",\"path\":\"m 248.75489,65.246143 2.57803,0.474 -1.75256,9.466 2.53167,0.451 -1.43699,7.818 -1.76861,-0.321 -0.0952,0.628641 -1.02088,-0.154641 -0.21929,1.189 -0.79165,-0.01414 -0.43561,0.769141 -1.78855,-0.334574 -0.2932,1.089574 -1.96829,-0.369 -0.52238,-0.16 -8.13167,-1.173 -0.0731,-0.07 -0.28169,-0.233 -0.82725,-0.112 -0.41006,0.08 -0.24961,0.1 -0.36192,0.1 -1.71155,-0.36 -0.0321,-0.03 -0.86826,-2.177 0.12123,-0.627 1.93928,0.188964 0.22334,-2.228964 1.67947,-3.312 0.22306,-1.292984 -0.23673,-0.05025 -0.23673,-0.05025 -0.23672,-0.05025 -0.23673,-0.05025 -0.38689,-1.227248 -1.01088,-1.071252 0.12009,-1.461241 -1.51786,-0.837259 0.11945,-0.634 1.73652,0.208 0.87539,0.378 1.12499,0.626 1.83101,1.358 0.50812,0.516 0.28882,0.795 0.81121,0.82 0.23355,0.16 0.32983,0.122 1.10717,-0.195 3.93122,0.756 1.91837,-0.65 0.37797,-1.953 -0.0321,-0.137 -0.51347,-7.682 4.83871,0.932\"},\"30061\":{\"name\":\"Mineral, MT\",\"path\":\"m 216.15333,60.393143 0.55447,0.965 0.35301,0.408 0.75594,0.258 0.62757,0.209 2.08774,0.362 0.5313,-0.137 0.12836,0.02 1.71869,0.314 0.48316,0.24 3.08436,2.17 0.67571,0.587 0.0642,0.515 -0.27991,1.373 1.75969,1.383 0.68997,0.136 -0.11945,0.634 1.51786,0.837259 -0.12009,1.461241 1.01088,1.071252 0.38689,1.227248 0.23673,0.05025 0.23672,0.05025 0.23673,0.05025 0.23673,0.05025 -0.22306,1.292984 -1.67947,3.312 -0.22334,2.228964 -1.93928,-0.188964 -0.12123,0.627 -0.68997,0 -0.10341,-0.03 -0.22464,-0.06 -2.31595,-3.093 -0.0713,-0.195 0,-0.01 -0.30666,-2.323 -0.40114,-0.74 -0.73989,-1.382 -1.30863,-3.054 -1.39777,-3.148 -0.26565,-0.194 -1.22126,-0.489 -0.8433,-0.41 -0.26565,-0.234 -0.33696,-0.288 -2.46036,-3.4 -0.0161,-0.569 0,-0.02 0.29774,-1.849\"},\"30089\":{\"name\":\"Sanders, MT\",\"path\":\"m 214.61828,44.073143 1.61528,1.084 0.89144,-0.266 1.77573,-0.779 1.25514,2.564 0.87539,4.685 0.83617,1.157 0.16046,0.129 2.79554,1.133 1.56714,-0.354 0.75415,-0.876 0.16225,-1.23 2.18579,0.451 0.26387,0.392 -0.5937,2.91 1.96116,0.394 1.31754,0.225 2.61904,0.499 -0.37797,1.92 -0.19968,0.972 -0.31379,3.302 2.61904,0.515 0.96453,0.185 0.33875,0.152 0.0874,0.128 -0.0571,2.307 -0.37618,0.555 -0.12837,-0.07 -0.0802,0.02 -0.36192,0.57 -0.39401,1.1 0.33696,0.628 0.12837,0.144 0.37796,0.17 1.31754,0.256 -0.50633,3.953 -0.20146,0.98 -1.10717,0.195 -0.32983,-0.121 -0.23355,-0.161 -0.81121,-0.82 -0.28882,-0.795 -0.50812,-0.515 -1.83101,-1.359 -1.12499,-0.626 -0.87539,-0.378 -1.73652,-0.208 -0.68997,-0.136 -1.75969,-1.383 0.27991,-1.373 -0.0642,-0.515 -0.67571,-0.587 -3.08436,-2.17 -0.48316,-0.24 -1.71869,-0.314 -0.12836,-0.02 -0.5313,0.137 -2.08774,-0.362 -0.62757,-0.209 -0.75594,-0.258 -0.35301,-0.408 -0.55447,-0.965 0.44215,-1.005 0.52238,-1.325 0.007,-1.287 0,-0.09 -0.007,-0.03 -0.025,-0.06 -0.0232,-0.08 -3.09328,-6.301 -0.47425,-0.843 1.11608,-5.311\"},\"30053\":{\"name\":\"Lincoln, MT\",\"path\":\"m 215.99287,37.685143 2.37122,-11.097 11.96484,2.546 6.63584,1.327 1.22127,0.24 -0.0232,3.167 0.66679,2.66 0,0.06 -0.81833,1.993 -3.77077,-0.749 -0.0553,1.304 0.25673,0.715 -1.52614,7.753 -2.26602,-0.458 -0.35301,-0.06 -0.40293,1.936 -0.40115,2.749 -2.18579,-0.451 -0.16225,1.23 -0.75415,0.876 -1.56714,0.354 -2.79554,-1.133 -0.16046,-0.129 -0.83617,-1.157 -0.87539,-4.685 -1.25514,-2.564 -1.77573,0.779 -0.89144,0.266 -1.61528,-1.084 1.37459,-6.388\"},\"30029\":{\"name\":\"Flathead, MT\",\"path\":\"m 248.09523,32.670143 0.27991,3.929 0.63648,0.449 3.12661,-0.06613 0.15031,2.414126 -0.61773,3.328913 3.59869,1.758087 -0.0802,0.36 -0.10341,0.242 -0.37797,1.309 1.32215,1.299975 0.86744,0.349213 0.20604,0.8866 -1.40613,0.349212 0.37618,0.845 1.33537,2.385 -0.14441,0.949 0.0392,0.128 1.40669,0.965 0.0963,0.06 0.11232,0.04 1.34963,0.417 0.15333,-0.03 1.16468,2.747738 0.21031,1.704569 -1.60854,-0.362307 -0.65967,0.467 -0.82725,0.875 -0.31551,2.847626 -1.88633,0.367374 -0.0392,0.176 -0.18541,2.853 -4.94212,-0.997 -2.57803,-0.474 0.88252,-1.727 0.0731,-0.353 0.016,-0.564 -0.25851,-3.961 -0.0321,-0.122 -2.62795,-4.122 -2.16797,-0.433 -0.40293,0.257 -0.29596,0.274 0.025,0.537 0.11054,0.02 0.0731,0.1 0.0321,0.17 -0.0891,0.616 -6.92645,-1.333 -0.18364,1.301 0.0232,0.683 -0.37797,1.913 -1.94511,-0.385 0.37797,-1.92 -2.61904,-0.499 -1.31754,-0.225 -1.96116,-0.394 0.5937,-2.91 -0.26387,-0.392 0.40115,-2.749 0.40293,-1.936 0.35301,0.06 2.26602,0.458 1.52614,-7.753 -0.25673,-0.715 0.0553,-1.304 3.77077,0.749 0.81833,-1.993 0,-0.06 -0.66679,-2.66 0.0232,-3.167 9.90919,1.969\"},\"30035\":{\"name\":\"Glacier, MT\",\"path\":\"m 274.48349,49.537143 -0.41719,-0.169 -0.57052,-0.145 -4.95816,-0.859 -0.68463,3.824 -0.0642,0.06 -11.71524,-2.12 -0.37618,-0.845 1.40613,-0.349212 -0.20604,-0.8866 -0.86744,-0.349213 -1.32215,-1.299975 0.37797,-1.309 0.10341,-0.242 0.0802,-0.36 -3.59869,-1.758087 0.61773,-3.328913 -0.15031,-2.414126 -3.12661,0.06613 -0.63648,-0.449 -0.27991,-3.929 1.478,0.288 4.17013,0.829 8.68614,1.591 1.60815,0.281 12.31785,2.186 -1.87201,11.692\"},\"30051\":{\"name\":\"Liberty, MT\",\"path\":\"m 290.29754,40.184143 7.97835,1.261 -0.41006,1.872 -1.20522,7.811 -0.5937,3.221 -0.71493,4.566 -1.0929,-0.169 -0.30487,1.943 -8.92861,-1.405 0.3227,-1.961 2.05565,0.33 1.25335,-7.802 1.3425,-7.788 0.29774,-1.879\"},\"30101\":{\"name\":\"Toole, MT\",\"path\":\"m 274.48349,49.537143 1.87201,-11.692 5.12753,0.876 1.39064,0.24 3.83139,0.635 3.59248,0.588 -0.29774,1.879 -1.3425,7.788 -1.25335,7.802 -2.05565,-0.33 -3.9455,-0.651 0.49743,-2.924 -1.92811,-0.197137 0.0561,-0.775863 -1.43877,-0.587 -1.478,-0.281 0.19345,-0.846312 -2.70017,-1.259688 -0.12123,-0.264\"},\"30073\":{\"name\":\"Pondera, MT\",\"path\":\"m 256.07357,50.124143 11.71524,2.12 0.0642,-0.06 0.68463,-3.824 4.95816,0.859 0.57052,0.145 0.41719,0.169 0.12123,0.264 2.70017,1.259688 -0.19345,0.846312 1.478,0.281 1.43877,0.587 -0.0561,0.775863 1.92811,0.197137 -0.49743,2.924 3.9455,0.651 -0.3227,1.961 -0.52238,3.263 -8.8466,-1.416 0.16045,-0.923 -0.56005,-0.138525 0.14269,-0.965275 -2.33756,-0.593237 0.18403,-1.171963 -12.82419,-2.298 -0.15333,0.03 -1.34963,-0.417 -0.11232,-0.04 -0.0963,-0.06 -1.40669,-0.965 -0.0392,-0.128 0.14441,-0.949 -1.33537,-2.385\"},\"30099\":{\"name\":\"Teton, MT\",\"path\":\"m 260.42199,55.041143 12.82419,2.298 -0.18403,1.171963 2.33756,0.593237 -0.14268,0.965275 0.56004,0.138525 -0.16045,0.923 8.8466,1.416 -1.07686,6.509 -3.97758,-0.652 -0.32092,1.954 -3.95262,-0.669 -0.7078,2.323 -1.58319,-0.506 -0.99484,0.05 -1.61706,-0.225 -1.03585,-0.385 -1.73651,-1.237 -0.0232,-0.05 0.016,-0.514 0.0802,-0.112 -0.12836,-0.474 -1.75256,-1.446 -0.0802,-0.02 -1.76861,0.369 -1.81496,0.241 -0.12124,-0.02 -0.5616,-0.314 -0.50634,-0.795 -0.52238,-1.182 -0.0642,-0.218 0.15333,-1.679 -0.21751,-4.363 1.60854,0.362307 -0.21031,-1.704569 -1.16468,-2.747738\"},\"30013\":{\"name\":\"Cascade, MT\",\"path\":\"m 272.88425,71.506143 1.58319,0.506 0.7078,-2.323 3.95262,0.669 0.32092,-1.954 3.97758,0.652 6.67863,1.059 -0.52951,0.667 -0.32983,0.33 -0.53843,0.811 -0.0963,0.275 0.0713,0.183 1.6125,1.620907 2.31521,1.061949 -0.19973,1.263144 1.90411,0.98 -0.19255,1.295 -1.98434,-0.314 -0.51346,1.116 -0.20147,1.303 -0.29774,3.52 1.97721,0.313 -0.4582,3.905 -0.30487,1.961 -0.30665,0.266 -1.73666,-0.611286 0.23548,-1.005714 -2.0093,-2.562 -0.16045,-0.138 -2.53981,-0.705729 0.37897,-1.021271 -1.50911,-0.417207 -0.32584,1.239392 -5.54257,-0.992185 -0.32983,1.961 -1.84705,-0.304 -2.05922,-0.353 0.82012,-4.855 -1.28545,-0.209 -0.0553,0.08 -0.33875,-0.04 -0.5937,-0.506 -1.45482,-1.432 1.20522,-7.295\"},\"30059\":{\"name\":\"Meagher, MT\",\"path\":\"m 276.64611,86.115143 1.84705,0.304 0.32983,-1.961 5.54257,0.992185 0.32583,-1.239392 1.50912,0.417207 -0.37897,1.021271 2.53981,0.705729 0.16045,0.138 2.0093,2.562 -0.23548,1.005714 1.73666,0.611286 -0.0232,0.513 0.0642,0.257 0.12837,0.273 0.16046,0.217 2.33912,2.452 1.42986,0.02 1.45483,-0.266 -0.65967,4.34 -0.65788,3.486997 -0.4992,3.264 -0.11945,0.819 -7.91594,-1.407 -4.39478,-0.708 -0.14463,-1.0719 -0.65383,-0.77507 1.98884,-2.2739 -1.40324,-1.563928 -1.52158,0.329329 -0.27239,-1.756093 -1.25846,-1.085564 0.59535,-2.111079 -1.35892,-1.134425 -0.72784,-2.554367 -0.12906,-0.719343 -1.94343,-1.192657 0.62035,-0.956 -0.48405,-0.956\"},\"30067\":{\"name\":\"Park, MT\",\"path\":\"m 287.73378,104.64414 7.91594,1.407 -0.34588,1.125 -1.19809,7.914 1.14104,0.169 -0.57765,4.154 -0.79516,5.169 -0.25852,0.569 -0.59369,4.002 2.64399,0.417 4.25037,0.731 -0.55448,3.762 -3.66379,-0.57 -1.35142,-0.211 -1.81496,-0.09 -5.34326,-0.724 -0.041,0 -2.41935,-0.378 -0.70602,-0.242 -2.00038,-0.409 -2.70818,-0.419 0.312,-2.266 0.2817,-1.718 0.77198,-3.946 1.92906,0.305 0.49984,-3.5943 0.98847,0.11843 0.17333,-0.88713 0.0382,-0.61656 1.11174,0.0991 0.7809,-4.66556 0.33518,-2.016 0.25851,-1.656 0.11946,-1.189 0.53842,-3.215 0.2817,-1.125\"},\"30041\":{\"name\":\"Hill, MT\",\"path\":\"m 298.27589,41.445143 19.00539,2.797 -0.58656,2.947 -0.37797,2.027 -0.6668,4.732 -1.0929,6.147 -0.74702,3.536 -0.98949,-0.09 -1.98434,-0.28 0.29774,-2.002 -1.77237,-0.198475 0.23019,-1.978525 -11.94166,-1.808 -0.30487,1.952 -1.99325,-0.312 0.71493,-4.566 0.5937,-3.221 1.20522,-7.811 0.41006,-1.872\"},\"30015\":{\"name\":\"Chouteau, MT\",\"path\":\"m 295.35198,58.915143 1.99325,0.312 0.30487,-1.952 11.94166,1.808 -0.23019,1.978525 1.77237,0.198475 -0.29774,2.002 1.98434,0.28 0.98949,0.09 -1.34963,8.936 -0.62757,-0.289 -1.54397,0.08 -1.76682,0.337 -0.90035,0.754 0.009,0.524 -0.53842,2.241 -0.0481,0.105 -0.41719,0.314 -4.90289,1.79 -0.78803,-0.11 -6.62158,-1.006 -1.90411,-0.98 0.19973,-1.263144 -2.31521,-1.061949 -1.6125,-1.620907 -0.0713,-0.184 0.0963,-0.274 0.53843,-0.811 0.32983,-0.33 0.52951,-0.667 -6.67863,-1.059 1.07686,-6.509 0.52238,-3.263 8.92861,1.405 0.30487,-1.943 1.0929,0.169\"},\"30045\":{\"name\":\"Judith Basin, MT\",\"path\":\"m 294.31435,77.307143 6.62158,1.006 -0.19968,1.299 1.28405,0.640614 -0.13589,0.798386 -0.13764,1.073157 1.91338,0.599843 0.0259,0.821757 1.87974,0.348443 -0.0799,0.6225 1.77389,0.188629 -0.93066,6.438671 -0.28583,0.718816 -0.43463,0.198027 -0.12628,0.944256 -0.87027,0.05147 1.33057,1.547928 -0.12881,1.1535 -1.15708,-0.162 -0.68997,-0.49 -0.9895,-0.779 -0.14441,-0.186 -0.32983,-0.233 -1.33359,-0.127 -0.79516,0 -2.7884,0.353 -1.45483,0.266 -1.42986,-0.02 -2.33912,-2.451 -0.16046,-0.218 -0.12837,-0.272 -0.0642,-0.257 0.0232,-0.514 0.30665,-0.265 0.30487,-1.961 0.4582,-3.905 -1.97721,-0.314 0.29774,-3.519 0.20147,-1.303 0.51346,-1.116 1.98434,0.313 0.19255,-1.294\"},\"30107\":{\"name\":\"Wheatland, MT\",\"path\":\"m 305.81386,95.758143 5.60178,0.802 -0.42611,3.03 -1.31754,7.704997 -3.97758,-0.57 -9.92524,-1.493 0.4992,-3.264 0.65788,-3.486997 0.65967,-4.34 2.7884,-0.353 0.79516,0 1.33359,0.127 0.32983,0.233 0.14441,0.186 0.9895,0.779 0.68997,0.49 1.15708,0.162\"},\"30097\":{\"name\":\"Sweet Grass, MT\",\"path\":\"m 295.76917,105.23214 9.92524,1.493 -0.2817,1.977 0.91475,0.0401 -0.42446,2.0489 2.97205,0.442 -0.27278,1.245 -0.21518,1.35503 -0.9905,-0.13598 -0.19867,1.33748 -0.974,-0.15353 -0.52238,1.961 -0.53843,3.962 -1.96829,-0.282 -0.22584,1.00205 -1.89577,-0.31005 -0.22138,1.06519 -1.89132,-0.36619 -0.58657,3.954 -2.09843,-0.314 -0.60975,4.017 -2.64399,-0.417 0.59369,-4.002 0.25852,-0.569 0.79516,-5.169 0.57765,-4.154 -1.14104,-0.169 1.19809,-7.914 0.34588,-1.125 0.11945,-0.819\"},\"30009\":{\"name\":\"Carbon, MT\",\"path\":\"m 316.66262,122.37114 0.77912,-0.451 0.27278,-0.05 -0.0874,0.586 -0.16938,0.321 -0.12836,0.202 -0.0642,0.01 0.44216,1.553 0.81833,1.478 0.85221,0.112 -0.69175,0.626 -0.53843,1.872 -0.40114,2.999 9.20852,1.148 -0.1355,0.298 -2.47462,4.492 -6.00292,-0.813 -4.99026,-0.659 -2.13053,-0.289 -0.32804,-0.05 -2.98988,-0.547 -8.54173,-1.157 0.55448,-3.762 1.7276,0.259 0.68284,-2.083 0.99448,0.0509 0.51739,-1.52187 1.26762,-1.164 0.75594,-0.563 2.12161,-0.715 2.63508,0.378 1.19809,-1.196 0.10341,-0.756 0.54734,-0.555 2.05743,-0.483 0.16759,0.05 0.48316,0.339 0.36905,0.08 0.31379,0.04 0.80407,-0.09\"},\"30095\":{\"name\":\"Stillwater, MT\",\"path\":\"m 316.98354,110.33314 -0.28169,1.881 -0.22465,2.049 -0.59369,6.341 0.24069,0.699 0.53842,1.068 -0.80407,0.09 -0.31379,-0.04 -0.36905,-0.08 -0.48316,-0.339 -0.16759,-0.05 -2.05743,0.483 -0.54734,0.555 -0.10341,0.756 -1.19809,1.196 -2.63508,-0.378 -2.12161,0.715 -0.75594,0.563 -1.26762,1.165 -0.51744,1.51033 -0.99443,-0.0403 -0.68284,2.083 -1.7276,-0.259 -4.25037,-0.731 0.60975,-4.016 2.09843,0.313 0.58657,-3.954 1.89132,0.36619 0.22138,-1.06519 1.89577,0.31005 0.22584,-1.00205 1.96829,0.282 0.53843,-3.962 0.52238,-1.961 0.974,0.15353 0.19867,-1.33748 0.9905,0.13598 0.21518,-1.35503 0.27278,-1.244 0.31557,-1.985 7.79292,1.084\"},\"30037\":{\"name\":\"Golden Valley, MT\",\"path\":\"m 317.56297,96.102143 -0.39401,2.926 0.18363,1.028997 1.03763,2.202 1.33359,5.1 -0.44928,3.281 -2.29099,-0.307 -7.79292,-1.084 -0.31557,1.984 -2.97205,-0.442 0.42446,-2.0489 -0.91475,-0.0401 0.2817,-1.977 3.97758,0.57 1.31754,-7.704997 0.42611,-3.03 0.18542,-1.301 5.96191,0.843\"},\"30027\":{\"name\":\"Fergus, MT\",\"path\":\"m 312.4604,72.567143 1.69551,0.675 1.83279,-0.604 0.41541,-0.28 4.6622,-0.06 0.25674,0.05 0.57051,0.369 0.57052,1.358 0.69889,0.45 0.34587,0.322 0.44929,0.642 0.0232,0.154 -0.0553,0.119 0.36192,0.653 1.2284,0.722 4.8387,1.865 0.16759,0.02 0.24961,-0.07 0.20859,-0.265 -0.57052,4.009 -0.26386,2.074 -0.35479,0.119 -3.93658,-0.49 -2.14479,0.547 -0.5313,1.913 -0.26564,1.953 2.00038,0.273 -0.82726,5.922 -0.57765,1.936 -5.94587,-0.836 -5.96191,-0.843 -0.18542,1.301 -5.60178,-0.802 0.12881,-1.1535 -1.33057,-1.547928 0.87027,-0.05147 0.12628,-0.944256 0.43463,-0.198027 0.28583,-0.718816 0.93066,-6.438671 -1.77389,-0.188629 0.0799,-0.6225 -1.87974,-0.348443 -0.0259,-0.821757 -1.91338,-0.599843 0.13764,-1.073157 0.13589,-0.798386 -1.28405,-0.640614 0.19968,-1.299 0.78803,0.11 4.90289,-1.79 0.41719,-0.313 0.0481,-0.106 0.53842,-2.241 -0.009,-0.524 0.90035,-0.754 1.76682,-0.337 1.54397,-0.08 0.62757,0.289\"},\"30005\":{\"name\":\"Blaine, MT\",\"path\":\"m 313.81003,63.631143 0.74702,-3.536 1.0929,-6.147 0.6668,-4.732 0.37797,-2.027 0.58656,-2.947 1.59923,0.225 4.90824,0.708 0.90927,0.135 0.0874,0 6.85513,0.924 0.8433,0.112 3.81713,0.497 -0.0802,0.635 -0.2086,1.294 -0.81299,3.825 -0.95679,-0.158667 -1.53298,6.755667 -0.61777,-0.168 -0.13015,0.33 -0.97166,4.692 -0.72385,5.488 -3.61566,0.788 -0.2086,-0.08 -3.35179,-0.434 -0.19968,1.172 -0.42611,3.079 -0.57052,-1.359 -0.57051,-0.369 -0.25674,-0.05 -4.6622,0.06 -0.41541,0.28 -1.83279,0.604 -1.69551,-0.675 1.34963,-8.936\"},\"30071\":{\"name\":\"Phillips, MT\",\"path\":\"m 322.46408,74.070143 0.42611,-3.079 0.19968,-1.172 3.35179,0.433 0.2086,0.08 3.61566,-0.788 0.72385,-5.488 0.97166,-4.693 0.13015,-0.329 0.61776,0.168 1.53299,-6.755667 0.95679,0.158667 0.81299,-3.825 0.2086,-1.294 0.0802,-0.635 16.07079,1.985 -0.63471,1.913 -0.82725,6.942 -0.12196,2.134706 -1.96579,0.751838 -0.26265,1.989264 1.12022,0.145442 -0.41006,1.67375 -1.67055,-0.211 -0.8112,2.22 -1.06973,7.536 -0.49742,4.051 -0.17828,0.731 -0.30487,0.626 -0.0785,0.1 -0.10519,0.05 -0.77198,-0.121 -1.33359,-0.715 -0.18542,-0.06 -0.6347,-0.08 -0.94849,0.444 -0.68283,1.013 -0.56161,0.617 -1.8007,1.874 -0.66679,0.08 -0.0963,-0.03 0.10519,-0.845 -0.11232,-1.478 -0.0802,-0.417 -0.59548,-0.475 -0.13728,-0.07 -1.94332,-0.305 -0.50634,0.06 -0.65966,-0.02 -1.50296,-0.121 -0.35301,-0.07 -0.10519,-0.08 -0.20859,0.265 -0.24961,0.07 -0.16759,-0.02 -4.8387,-1.864 -1.2284,-0.722 -0.36192,-0.653 0.0553,-0.119 -0.0232,-0.154 -0.44929,-0.642 -0.34587,-0.322 -0.69889,-0.45\"},\"30069\":{\"name\":\"Petroleum, MT\",\"path\":\"m 330.98085,78.682143 0.10519,0.08 0.35301,0.07 1.50296,0.122 0.65966,0.02 0.50634,-0.06 1.94332,0.305 0.13728,0.07 0.59548,0.475 0.0802,0.417 0.11232,1.478 -0.10519,0.845 -1.13212,2.081 -0.34588,2.307 -0.65074,8.445 0.007,0.136 0.0571,0.07 0.5313,0.538 0.0874,0.05 0.7381,2.298 -6.94249,-0.836 -1.75078,-0.128 -3.96154,-0.523 0.57765,-1.936 0.82726,-5.922 -2.00038,-0.273 0.26564,-1.953 0.5313,-1.913 2.14479,-0.547 3.93658,0.49 0.35479,-0.119 0.26386,-2.074 0.57052,-4.009\"},\"30065\":{\"name\":\"Musselshell, MT\",\"path\":\"m 317.56297,96.102143 5.94587,0.836 3.96154,0.523 1.75078,0.128 6.94249,0.836 -0.007,6.002997 -0.29774,2.289 -2.31416,-0.29 -1.48513,1.166 -0.36192,0.619 -0.13729,1.005 -4.61228,-0.603 -1.41382,0.457 -0.31378,2.355 -5.94587,-0.786 0.44928,-3.281 -1.33359,-5.1 -1.03763,-2.202 -0.18363,-1.028997 0.39401,-2.926\"},\"30111\":{\"name\":\"Yellowstone, MT\",\"path\":\"m 336.15652,104.42814 0.6347,0.409 0.29774,0.37 1.33359,2.837 1.50296,4.202 -0.40115,1.993 -0.36192,1.02 -2.58873,-0.321 -0.28317,1.3152 -1.84557,-0.2472 -0.15477,0.7364 -0.60117,-0.1564 -0.11232,0.643 -0.70602,0.53 -2.65291,-0.282 -0.67392,2.587 -0.78803,6.051 -4.122,0.804 -2.05743,-0.273 -3.19847,-0.506 -0.85221,-0.112 -0.81833,-1.478 -0.44216,-1.553 0.0642,-0.01 0.12836,-0.202 0.16938,-0.321 0.0874,-0.586 -0.27278,0.05 -0.77912,0.451 -0.53842,-1.068 -0.24069,-0.699 0.59369,-6.341 0.22465,-2.049 0.28169,-1.881 2.29099,0.307 5.94587,0.786 0.31378,-2.355 1.41382,-0.457 4.61228,0.603 0.13729,-1.005 0.36192,-0.619 1.48513,-1.166 2.31416,0.29 0.29774,-2.289\"},\"30003\":{\"name\":\"Big Horn, MT\",\"path\":\"m 347.82362,120.28914 -0.10519,0.877 0.0321,3.416 1.03763,0.289 1.54218,0.183 0.3227,0.122 -0.82725,7.336 -0.3375,0.0127 -0.22589,1.2403 -0.50634,2.603 3.95263,0.548 2.00216,0.176 1.92907,0.154 -0.20147,4.282 -10.10887,-1.182 -3.10219,-0.378 -0.85935,-0.177 -7.65921,-0.939 -4.60352,-0.56442 -5.7603,-0.71258 2.47462,-4.492 0.1355,-0.298 -9.20852,-1.148 0.40114,-2.999 0.53843,-1.872 0.69175,-0.626 3.19847,0.506 2.05743,0.273 4.122,-0.804 0.78803,-6.051 0.67392,-2.587 2.65291,0.282 0.70602,-0.53 0.11232,-0.643 0.60117,0.1564 0.15477,-0.7364 1.84557,0.2472 0.28317,-1.3152 2.58873,0.321 1.38173,0.17 -0.24069,1.968 3.95975,0.474 0.73989,1.086 1.01267,1.123 1.80783,0.209\"},\"30103\":{\"name\":\"Treasure, MT\",\"path\":\"m 336.79122,104.83714 8.9197,1.069 -0.2989,1.962 2.37951,0.288 -0.75052,5.76321 1.4815,0.29479 -0.69889,6.075 -1.80783,-0.209 -1.01267,-1.123 -0.73989,-1.086 -3.95975,-0.474 0.24069,-1.968 -1.38173,-0.17 0.36192,-1.02 0.40115,-1.993 -1.50296,-4.202 -1.33359,-2.837 -0.29774,-0.37\"},\"30087\":{\"name\":\"Rosebud, MT\",\"path\":\"m 335.42555,96.127143 6.68576,0.827 0.312,-0.08 0.60439,0 0.53665,0.06 10.31033,1.206 0.56161,0.29 1.15886,0.241 8.21903,0.875 -0.57765,0.28 -0.74702,5.264997 -0.64361,2.603 -0.57052,5.32 -0.009,0.594 -0.36014,1.301 -0.48315,0.619 -0.86648,7.948 -0.67571,-0.06 -0.39401,3.735 -0.7078,4.14 -0.13337,2.14451 -0.57978,-0.0875 -0.4261,3.897 -1.92907,-0.153 -2.00216,-0.176 -3.95263,-0.548 0.50634,-2.603 0.22589,-1.2403 0.3375,-0.0127 0.82725,-7.337 -0.3227,-0.121 -1.54218,-0.183 -1.03763,-0.289 -0.0321,-3.416 0.10519,-0.877 0.69889,-6.075 -1.4815,-0.29479 0.75052,-5.76321 -2.37951,-0.288 0.2989,-1.962 -8.9197,-1.07 -0.6347,-0.408 0.007,-6.002997 -0.7381,-2.298\"},\"30033\":{\"name\":\"Garfield, MT\",\"path\":\"m 361.36452,73.740143 0.93244,0.105 -0.46313,1.984476 1.7468,0.199524 -0.91225,7.910494 -0.78451,-0.03846 -0.15029,3.73297 1.99146,0.208 -0.41541,3.946 1.30863,0.144 -0.77198,7.296 -0.0321,0.322 -8.21903,-0.875 -1.15886,-0.241 -0.56161,-0.29 -10.31033,-1.206 -0.53665,-0.06 -0.60439,0 -0.312,0.08 -6.68576,-0.828 -0.0874,-0.05 -0.5313,-0.538 -0.0571,-0.07 -0.007,-0.136 0.65074,-8.445 0.34588,-2.307 1.13212,-2.081 0.0963,0.03 0.66679,-0.08 1.8007,-1.874 0.56161,-0.617 0.68283,-1.012 0.94849,-0.444 0.6347,0.08 0.18542,0.06 1.33359,0.715 0.77198,0.121 0.10519,-0.05 0.0785,-0.1 0.30487,-0.626 0.17828,-0.731 2.51563,0.997 3.39815,0.424 0.23356,0 1.46195,-0.05 0.38689,-0.05 0.27277,-0.08 3.95263,-2.138 2.65291,-3.528 0.78803,-0.177 0.48137,0.362\"},\"30019\":{\"name\":\"Daniels, MT\",\"path\":\"m 368.62793,50.677143 16.07258,1.624 -0.19434,2 -0.27278,5.923 1.00376,0.105 -0.18542,1.961 -12.76,-1.262 -3.83212,-0.101208 1.12394,-6.142792 -1.99146,-0.208 0.21572,-1.962 0.47603,-0.627 0.34409,-1.31\"},\"30105\":{\"name\":\"Valley, MT\",\"path\":\"m 368.62793,50.677143 -0.34409,1.31 -0.47603,0.627 -0.21572,1.962 1.99146,0.208 -1.12394,6.142792 3.83212,0.101208 -0.80407,7.795 -0.60083,-0.06 -0.4992,4.732 -1.18918,0.03 -4.74065,-1.021 -0.22464,-0.104 -0.39402,-0.41 -1.83279,-0.626 -0.10519,0.05 -0.0945,0.105 -0.21751,0.297 -0.21751,0.562 -0.007,1.375 -0.48137,-0.362 -0.78803,0.176 -2.65291,3.529 -3.95263,2.137 -0.27277,0.08 -0.38689,0.05 -1.46195,0.05 -0.23356,0 -3.39815,-0.425 -2.51563,-0.996 0.49742,-4.051 1.06973,-7.536 0.8112,-2.22 1.67055,0.211 0.41006,-1.67375 -1.12022,-0.145442 0.26265,-1.989264 1.96579,-0.751838 0.12196,-2.134706 0.82725,-6.943 0.63471,-1.913 16.2562,1.84\"},\"30055\":{\"name\":\"McCone, MT\",\"path\":\"m 380.55177,73.249143 -0.12659,1.487 -0.28169,2.668 -0.64183,0.265 -0.16938,1.76 -2.00216,-0.193 -0.70799,6.259931 -0.64184,-0.161572 -0.68977,7.681641 -6.69468,-0.667 -0.19968,2.002 -0.67571,-0.06 -1.32645,-0.146 0.20859,-2 -1.98433,-0.209 -1.30863,-0.144 0.41541,-3.946 -1.99146,-0.208 0.15029,-3.73297 0.78451,0.03846 0.91225,-7.910494 -1.7468,-0.199524 0.46313,-1.984476 -0.93244,-0.105 0.007,-1.375 0.21751,-0.561 0.21751,-0.298 0.0945,-0.105 0.10519,-0.05 1.83279,0.626 0.39402,0.41 0.22464,0.104 4.74065,1.021 1.18918,-0.03 2.41044,-0.738 0.83616,-0.458 0.76307,-0.03 2.81159,0.04 1.14995,0.05 1.31754,0.257 0.87539,0.634\"},\"30079\":{\"name\":\"Prairie, MT\",\"path\":\"m 364.61826,91.932143 1.98433,0.209 -0.20859,2 1.32645,0.146 0.67571,0.06 0.19968,-2.002 6.69468,0.667 1.27653,0.13 -0.46533,4.654 2.01643,0.19 -0.17722,1.341233 2.05636,0.179767 0.29774,0.344 0.28883,0.490997 -0.0553,0.538 6.68576,0.635 -0.41719,4.009 -0.0642,0.66 -1.98612,-0.185 -0.0874,0.987 -1.99325,-0.176 -0.41719,0.955 -1.73652,0.5 -4.03463,-0.402 -3.24661,-1.005 -0.55269,-0.731 -0.79516,-1.416 -0.26564,-2.023 -0.45107,-2.058 -3.32684,-0.986997 -3.99362,-0.419 0.77198,-7.296\"},\"30075\":{\"name\":\"Powder River, MT\",\"path\":\"m 359.55669,123.48014 19.36375,2 -0.73098,7.884 -0.28882,2.056 -0.82725,-0.07 -0.77198,8.051 -1.14569,-0.10895 -11.96732,-1.20105 -1.15709,-0.06 -1.9302,-0.10008 -3.66266,-0.39692 0.20147,-4.282 0.4261,-3.898 0.57978,0.0875 0.13337,-2.14451 0.7078,-4.14 0.39401,-3.735 0.67571,0.06\"},\"30017\":{\"name\":\"Custer, MT\",\"path\":\"m 363.84628,99.228143 3.99362,0.419 3.32684,0.986997 0.45107,2.058 0.26564,2.023 0.79516,1.416 0.55269,0.731 3.24661,1.005 4.03463,0.402 1.73652,-0.5 0.41719,-0.955 1.99325,0.176 -0.28169,2.981 -2.74027,-0.257 -0.22465,2.452 0.0161,0.948 0.16759,0.491 -0.38332,4.033 -0.85399,-0.08 -0.74703,7.988 -0.69175,-0.06 -19.36375,-2 0.86648,-7.948 0.48315,-0.619 0.36014,-1.301 0.009,-0.594 0.57052,-5.32 0.64361,-2.603 0.74702,-5.264997 0.57765,-0.28 0.0321,-0.322\"},\"30011\":{\"name\":\"Carter, MT\",\"path\":\"m 381.21321,117.63814 4.122,0.394 1.75791,0.361 -0.26952,1.5801 1.14669,0.1639 1.13159,0.1502 -0.32752,1.8668 1.38173,0.185 2.70818,0.209 -0.16938,1.984 1.44591,0.128 -1.23731,15.326 -0.69888,4.917 -15.9032,-1.503 0.77198,-8.051 0.82725,0.07 0.28882,-2.056 0.73098,-7.884 0.69175,0.06 0.74703,-7.988 0.85399,0.08\"},\"30025\":{\"name\":\"Fallon, MT\",\"path\":\"m 384.6595,106.99014 0.0874,-0.987 1.98612,0.185 0.0642,-0.66 2.98809,0.264 0.98058,0.419 -0.0571,0.667 4.88684,0.417 -0.19255,2.3 -0.51525,5.955 -0.64183,7.657 -0.10519,1.453 -1.44591,-0.128 0.16938,-1.984 -2.70818,-0.209 -1.38173,-0.185 0.32752,-1.8668 -1.13159,-0.1502 -1.14669,-0.1639 0.26952,-1.5801 -1.75791,-0.361 -4.122,-0.394 0.38332,-4.033 -0.16759,-0.491 -0.0161,-0.948 0.22465,-2.452 2.74027,0.257 0.28169,-2.981\"},\"30109\":{\"name\":\"Wibaux, MT\",\"path\":\"m 397.06649,90.060143 -0.13728,1.535 -1.33359,15.699997 -4.88684,-0.417 0.0571,-0.667 -0.98058,-0.419 -2.98809,-0.264 0.41719,-4.009 1.6866,0.151 1.0608,-0.569 0.36193,-0.297 1.53505,-2.201997 0.41897,-0.802 0.15155,-1.826 -0.0392,-1.334 -0.041,-0.337 -0.12837,-0.508 -1.67572,-2.349748 0.55786,-0.920252 4.52493,0.411 0.0874,-0.997 1.35141,0.121\"},\"30021\":{\"name\":\"Dawson, MT\",\"path\":\"m 379.33228,79.429143 -0.20146,1.977 4.00076,0.385 -0.19968,1.984 6.00292,0.564 -0.22099,1.80392 1.29785,0.28508 -0.36193,3.969 1.45304,0.128 -0.55786,0.920252 1.67572,2.349748 0.12837,0.508 0.041,0.337 0.0392,1.334 -0.15155,1.826 -0.41897,0.802 -1.53505,2.201997 -0.36193,0.297 -1.0608,0.569 -1.6866,-0.151 -6.68576,-0.635 0.0553,-0.539 -0.28883,-0.489997 -0.29774,-0.344 -2.05636,-0.179767 0.17722,-1.341233 -2.01643,-0.19 0.46533,-4.654 -1.27653,-0.13 0.68977,-7.681641 0.64184,0.161572 0.70799,-6.259931 2.00216,0.193\"},\"30083\":{\"name\":\"Richland, MT\",\"path\":\"m 398.23071,76.448143 -1.16422,13.612 -1.35141,-0.121 -0.0874,0.997 -4.52493,-0.411 -1.45304,-0.128 0.36193,-3.969 -1.29785,-0.28508 0.22099,-1.80392 -6.00292,-0.564 0.19968,-1.984 -4.00076,-0.385 0.20146,-1.977 0.16938,-1.76 0.64183,-0.265 0.28169,-2.668 0.12659,-1.487 1.14995,0.225 1.88806,0 0.32983,-0.168 0.49742,-0.377 0.41006,-0.546 0.90926,-0.369 6.50748,1.638 3.03801,1.767 2.94887,1.022\"},\"37043\":{\"name\":\"Clay, NC\",\"path\":\"m 751.68289,363.42214 1.6824,-0.0555 3.52536,3.15652 -1.21592,0.194 -7.17248,1.045 -1.28011,0.167 1.73375,-3.04809 2.727,-1.45891\"},\"37113\":{\"name\":\"Macon, NC\",\"path\":\"m 758.52911,358.43214 5.29512,7 -6.93358,1.091 -3.52536,-3.15652 -1.6824,0.0555 0.3851,-2.209 0.32091,-0.765 0.13015,-0.09 3.9758,-1.228 2.03426,-0.699\"},\"37175\":{\"name\":\"Transylvania, NC\",\"path\":\"m 769.21028,354.82314 2.40866,2.145 0.51346,0.589 0.2086,0.657 0.12123,0.844 0.44394,1.342 0.1355,0.227 0.24068,0.126 -3.29474,2.25 -2.41757,0.619 -1.96116,0.947 -0.42428,-0.96678 1.2034,-5.32322 2.00869,-0.99465 0.81359,-2.46135\"},\"37099\":{\"name\":\"Jackson, NC\",\"path\":\"m 760.79513,353.84314 5.59287,4.436 -1.2034,5.32322 0.42428,0.96678 -1.78465,0.863 -5.29512,-7 -0.36947,-3.18372 2.63549,-1.40528\"},\"37087\":{\"name\":\"Haywood, NC\",\"path\":\"m 764.00252,346.87014 1.831,2.457 0.46884,1.23569 0.88619,-0.12109 1.1271,1.09193 -0.0903,2.59578 0.98491,0.69369 -0.81359,2.46135 -2.00869,0.99465 -5.59287,-4.436 -1.82566,-3.992 -0.0802,-0.437 5.11327,-2.544\"},\"37173\":{\"name\":\"Swain, NC\",\"path\":\"m 758.96947,349.85114 1.82566,3.992 -2.63549,1.40528 0.36947,3.18372 -2.03426,0.699 -3.9758,1.228 -0.13015,0.09 -0.33696,-0.379 -0.007,-0.223 0.12836,-0.41 0.0981,-0.122 0.32983,-0.199 0.43146,-0.178 0.25851,-0.145 0.3851,-0.891 0.0874,-0.571 -0.016,-0.249 -0.0802,-0.427 -1.05189,-0.07 -5.80146,0.351 5.02056,-3.18 0.0891,0 0.33697,0 2.62616,-0.271 0.22643,-0.146 3.18955,-2.525 0.66679,-0.977\"},\"37075\":{\"name\":\"Graham, NC\",\"path\":\"m 746.81387,356.93414 5.80146,-0.351 1.05189,0.07 0.0802,0.427 0.016,0.249 -0.0874,0.571 -0.3851,0.891 -0.25851,0.145 -0.43146,0.178 -0.32983,0.199 -0.0981,0.122 -0.12836,0.41 0.007,0.223 0.33696,0.379 -0.32091,0.765 -3.38211,0.738 -1.2694,0.594 -0.18007,0 -0.67393,-0.28 -0.65609,-1.262 0.75415,-4.122 0.15333,0.05\"},\"37039\":{\"name\":\"Cherokee, NC\",\"path\":\"m 752.06799,361.21314 -0.3851,2.209 -2.727,1.45891 -1.73375,3.04809 -2.30346,0.289 -3.57822,0.419 -0.0695,-5.079 1.51543,-1.334 1.98077,-0.05 0.70424,-0.579 0.43502,-0.594 0.65609,1.262 0.67393,0.28 0.18007,0 1.2694,-0.594 3.38211,-0.738\"},\"37121\":{\"name\":\"Mitchell, NC\",\"path\":\"m 779.13373,337.41714 2.47463,4.181 -2.47463,2.409 -0.52416,-1.976 -1.11197,-0.62044 -0.47885,-1.2869 -1.07858,0.29855 -1.72117,-1.23756 -1.10426,-0.11865 3.2787,-2.442 2.74027,0.793\"},\"37199\":{\"name\":\"Yancey, NC\",\"path\":\"m 773.11476,339.06614 1.10426,0.11865 1.72117,1.23756 1.07858,-0.29855 0.47885,1.2869 1.11197,0.62044 0.52416,1.976 -2.20184,3.125 -2.82942,-2.25 -2.29633,-3.421 1.30862,-2.395\"},\"37115\":{\"name\":\"Madison, NC\",\"path\":\"m 769.82715,340.31114 -0.20401,1.28048 1.0464,0.65527 0.64185,-0.6687 0.49475,-0.11705 2.29633,3.421 -1.7276,0.628 -1.01267,0.636 -0.59369,0.425 -1.15708,0.841 -2.34626,1.53 -1.43165,0.385 -1.831,-2.457 0.71136,-3.625 0.83082,-0.21 1.62241,-1.519 1.1553,-1.141 0.3227,-0.234 0.46711,-0.336 0.0874,-0.01 0.27635,0.175 0,0 0.35122,0.337\"},\"37021\":{\"name\":\"Buncombe, NC\",\"path\":\"m 776.93189,347.13214 0.0414,2.65745 2.4956,1.10455 -1.57427,1.64 -1.34072,-0.563 -1.21413,0.852 -1.53505,0.827 -1.39064,0.516 -0.85221,-0.07 -0.57765,-0.13 -0.19434,-0.101 -0.36014,-0.06 -0.56873,0.223 -0.17829,0.138 -0.47246,0.666 -0.98491,-0.69369 0.0903,-2.59578 -1.1271,-1.09193 -0.88619,0.12109 -0.46884,-1.23569 1.43165,-0.385 2.34626,-1.53 1.15708,-0.841 0.59369,-0.425 1.01267,-0.636 1.7276,-0.628 2.82942,2.25\"},\"37089\":{\"name\":\"Henderson, NC\",\"path\":\"m 777.89464,352.53414 0.32983,1.696 -1.41393,2.1142 0.29964,2.3998 -3.82783,2.009 -0.24068,-0.126 -0.1355,-0.227 -0.44394,-1.342 -0.12123,-0.844 -0.2086,-0.657 -0.51346,-0.589 -2.40866,-2.145 0.47246,-0.666 0.17829,-0.138 0.56873,-0.223 0.36014,0.06 0.19434,0.101 0.57765,0.13 0.85221,0.07 1.39064,-0.516 1.53505,-0.827 1.21413,-0.852 1.34072,0.563\"},\"37149\":{\"name\":\"Polk, NC\",\"path\":\"m 784.30584,358.15014 -4.59624,0.475 -2.59942,0.119 -0.29964,-2.3998 1.41393,-2.1142 1.10003,-0.387 0.71493,-0.257 0.16937,0.02 0.57944,0.252 0.27278,0.18 2.93817,2.478 0.1872,0.305 0.11945,1.326\"},\"37161\":{\"name\":\"Rutherford, NC\",\"path\":\"m 788.06056,348.39414 0.57765,5.126 -0.57765,3.249 -0.016,0.987 -1.97721,0.202 -1.76147,0.192 -0.11945,-1.326 -0.1872,-0.305 -2.93817,-2.478 -0.27278,-0.18 -0.57944,-0.252 -0.16937,-0.02 -0.71493,0.257 -1.10003,0.387 -0.32983,-1.696 1.57427,-1.64 3.01289,-1.04083 0.5781,0.4988 2.04614,-0.53955 0.5423,-0.93342 1.0634,-1.04165 1.34882,0.55665\"},\"37111\":{\"name\":\"McDowell, NC\",\"path\":\"m 781.60836,341.59814 0.53664,-1.198 0.13015,0.07 0.13728,0.175 0.40828,0.659 0.10341,0.218 0.1551,0.513 -0.12301,0.869 -1.21486,1.10306 2.58054,1.67594 1.32645,3.193 -0.5423,0.93342 -2.04614,0.53955 -0.5781,-0.4988 -3.01289,1.04083 -2.4956,-1.10455 -0.0414,-2.65745 2.20184,-3.125 2.47463,-2.409\"},\"37011\":{\"name\":\"Avery, NC\",\"path\":\"m 781.29457,333.37614 0.19255,-0.555 0.63693,0.9325 -0.53588,0.75207 0.48988,0.71885 0.81465,-0.25548 1.14214,1.58206 1.36781,0.95206 -0.77411,2.46194 -2.1196,-0.4321 -0.36394,0.8671 -0.53664,1.198 -2.47463,-4.181 2.16084,-4.041\"},\"37189\":{\"name\":\"Watauga, NC\",\"path\":\"m 784.73373,329.98414 1.63132,0.644 1.06794,0.941 0.7078,0.516 1.53327,0.602 0.41193,1.497 -1.21422,1.497 -4.83693,0.87 -1.14214,-1.58206 -0.81465,0.25548 -0.48988,-0.71885 0.53588,-0.75207 -0.63693,-0.9325 0.1355,-0.369 0.84508,-0.947 0.9164,-0.627 0.0232,-0.02 0.0963,-0.06 0.1141,0.263 0.48138,0.154 0.28704,-0.01 0.0339,0 0.38332,-0.129 -0.0695,-1.095\"},\"37003\":{\"name\":\"Alexander, NC\",\"path\":\"m 798.54027,335.85214 0.55512,2.59084 -1.12029,3.73316 -1.40922,-0.69117 -2.70386,0.94617 -0.60261,-4.597 0.99663,-0.825 0.53842,-0.21 0.82725,-0.264 0.29774,0.07 1.26762,-0.303 1.02159,-0.291 0.33161,-0.16\"},\"37009\":{\"name\":\"Ashe, NC\",\"path\":\"m 784.82109,325.27114 5.92269,-0.596 0.0731,0.457 1.20344,1.697 0.65253,0.554 0.1765,0.289 0.41006,0.858 0.10341,0.691 -2.34525,0.45252 0.24213,1.64271 -1.58564,1.37077 -1.53327,-0.602 -0.7078,-0.516 -1.06794,-0.941 -1.63132,-0.644 0.0874,-4.713\"},\"37005\":{\"name\":\"Alleghany, NC\",\"path\":\"m 798.97173,323.67814 -0.60261,3.857 -0.16046,0.658 -0.84508,0.135 -0.35301,-0.39 -0.0713,-0.394 -0.80408,-0.403 -0.14263,-0.02 -1.166,0.346 -1.46373,1.757 -0.10341,-0.691 -0.41006,-0.858 -0.1765,-0.289 -0.65253,-0.554 -1.20344,-1.697 -0.0731,-0.457 8.22795,-0.997\"},\"37193\":{\"name\":\"Wilkes, NC\",\"path\":\"m 793.36282,329.22114 1.46373,-1.757 1.166,-0.346 0.14263,0.02 0.80408,0.403 0.0713,0.394 0.35301,0.39 0.84508,-0.135 0.16046,-0.658 1.61685,1.50677 0.6991,1.99623 0.49742,4.163 -2.64222,0.651 -0.33161,0.16 -1.02159,0.291 -1.26762,0.303 -0.29774,-0.07 -0.82725,0.264 -0.53842,0.21 -0.99663,0.825 -4.38764,-2.153 1.21422,-1.497 -0.41193,-1.497 1.58564,-1.37077 -0.24213,-1.64271 2.34525,-0.45252\"},\"37027\":{\"name\":\"Caldwell, NC\",\"path\":\"m 784.03484,336.55114 4.83693,-0.87 4.38764,2.153 0.60261,4.597 -0.44215,0.741 -0.21573,0.282 -0.39579,0.03 -1.47087,-0.4473 -1.47087,0.4473 -3.56752,-2.161 -1.51722,-1.158 -0.15333,-0.209 0.77411,-2.46194 -1.36781,-0.95206\"},\"37023\":{\"name\":\"Burke, NC\",\"path\":\"m 784.62854,339.96514 0.15333,0.209 1.51722,1.158 3.56752,2.161 1.47087,-0.4473 1.47087,0.4473 0.39579,-0.03 0.21573,-0.282 -2.42649,5.039 -0.041,0.11 -2.89182,0.07 -1.34882,-0.55665 -1.0634,1.04165 -1.32645,-3.193 -2.58054,-1.67594 1.21486,-1.10306 0.12301,-0.869 -0.1551,-0.513 -0.10341,-0.217 -0.40828,-0.66 -0.13728,-0.175 -0.13015,-0.07 0.36394,-0.8671 2.1196,0.4321\"},\"37045\":{\"name\":\"Cleveland, NC\",\"path\":\"m 790.95238,348.32114 2.00038,3.079 2.4893,2.50246 0.7894,2.99454 -0.72385,0.07 -7.46309,0.788 0.016,-0.987 0.57765,-3.249 -0.57765,-5.126 2.89182,-0.07\"},\"37071\":{\"name\":\"Gaston, NC\",\"path\":\"m 792.95276,351.40014 9.28162,-1.019 -0.84476,2.71435 0.14409,3.31865 -5.30225,0.483 -0.7894,-2.99454 -2.4893,-2.50246\"},\"37109\":{\"name\":\"Lincoln, NC\",\"path\":\"m 801.61751,347.03814 0.45641,1.333 0.16046,2.01 -9.28162,1.019 -2.00038,-3.079 0.041,-0.11 10.62413,-1.173\"},\"37035\":{\"name\":\"Catawba, NC\",\"path\":\"m 793.86202,342.43114 2.70386,-0.94617 1.40922,0.69117 1.1972,1.28235 1.1972,0.10665 0.67571,0.675 0.8843,1.15 -0.312,1.648 -10.62413,1.173 2.42649,-5.039 0.44215,-0.741\"},\"37097\":{\"name\":\"Iredell, NC\",\"path\":\"m 801.18249,335.20114 3.46946,-0.458 0.45998,4.58 -0.35479,2.972 -0.15154,1.279 1.0608,2.893 0.11946,0.433 0.0731,0.41 -0.86825,0.138 -2.61854,0.18527 -0.29824,0.73773 -0.45641,-1.333 0.312,-1.648 -0.8843,-1.15 -0.67571,-0.675 -1.1972,-0.10665 -1.1972,-1.28235 1.12029,-3.73316 -0.55512,-2.59084 2.64222,-0.651\"},\"37119\":{\"name\":\"Mecklenburg, NC\",\"path\":\"m 802.07392,348.37114 0.29824,-0.73773 2.61854,-0.18527 -0.016,0.167 0.025,0.154 0.71493,2.039 2.33913,2.765 2.35339,0.997 -4.58911,5.6 -1.49405,-1.526 -0.69755,-0.3075 -1.51172,1.51652 -0.55086,-0.36675 0.40924,-1.41429 -0.4393,-0.65798 -0.14409,-3.31865 0.84476,-2.71435 -0.16046,-2.01\"},\"37159\":{\"name\":\"Rowan, NC\",\"path\":\"m 805.11193,339.32314 4.96529,1.769 2.40331,0.158 2.80446,2.791 0.75415,1.656 -2.06456,0.374 -8.11563,1.239 -0.0731,-0.41 -0.11946,-0.433 -1.0608,-2.893 0.15154,-1.279 0.35479,-2.972\"},\"37059\":{\"name\":\"Davie, NC\",\"path\":\"m 804.65195,334.74314 3.59605,-0.476 2.11805,1.367 0.33696,0.186 0.10697,0.16 0.21573,0.603 0.0927,0.635 -0.16402,1.356 -0.69176,0.467 -0.18542,2.051 -4.96529,-1.769 -0.45998,-4.58\"},\"37197\":{\"name\":\"Yadkin, NC\",\"path\":\"m 808.31753,329.68014 0.41738,2.34374 -1.02211,0.79509 0.53523,1.44817 -3.59605,0.476 -3.46946,0.458 -0.49742,-4.163 1.57427,-0.98 2.16237,0.10575 0.52798,-1.02275 1.08755,-0.02 0.34099,0.66984 1.35274,-0.38084 0.38688,0.121 0.19968,0.145\"},\"37171\":{\"name\":\"Surry, NC\",\"path\":\"m 804.22941,322.91414 3.14142,-0.337 0.87717,6.636 0.0695,0.467 -0.19968,-0.145 -0.38688,-0.121 -1.35274,0.38084 -0.34099,-0.66984 -1.08755,0.02 -0.52798,1.02275 -2.16237,-0.10575 -1.57427,0.98 -0.6991,-1.99623 -1.61685,-1.50677 0.60261,-3.857 1.16599,-0.121 4.09169,-0.643\"},\"37169\":{\"name\":\"Stokes, NC\",\"path\":\"m 814.86601,321.50914 0.9574,6.539 -7.57541,1.165 -0.87717,-6.636 7.02094,-0.988 0.47424,-0.08\"},\"37067\":{\"name\":\"Forsyth, NC\",\"path\":\"m 808.248,329.21314 7.57541,-1.165 0.81834,5.659 -3.35028,0.19444 0.0784,0.73075 -1.58808,0.34767 -1.41569,0.65414 -2.11805,-1.367 -0.53523,-1.44817 1.02211,-0.79509 -0.41738,-2.34374 -0.0695,-0.467\"},\"37057\":{\"name\":\"Davidson, NC\",\"path\":\"m 810.36605,335.63414 1.41569,-0.65414 1.58808,-0.34767 -0.0784,-0.73075 3.35028,-0.19444 0.27278,2.065 1.24801,9.529 -2.1234,0.396 -0.75415,-1.656 -2.80446,-2.791 -2.40331,-0.158 0.18542,-2.051 0.69176,-0.467 0.16402,-1.356 -0.0927,-0.635 -0.21573,-0.603 -0.10697,-0.16 -0.33696,-0.186\"},\"37167\":{\"name\":\"Stanly, NC\",\"path\":\"m 813.97458,346.07114 2.06456,-0.374 1.42273,0.722 0.11232,0.07 0.86113,1.366 0.34409,0.717 -0.12382,2.077 1.01526,2.077 0.0267,0.135 -0.0339,0.209 -0.26565,0.538 -3.91875,-0.586 -2.07883,1.24482 -2.07882,-0.30582 2.65291,-7.891\"},\"37025\":{\"name\":\"Cabarrus, NC\",\"path\":\"m 813.97458,346.07114 -2.65291,7.891 -0.91461,-0.392 -2.35339,-0.997 -2.33913,-2.765 -0.71493,-2.039 -0.025,-0.154 0.016,-0.167 0.86825,-0.138 8.11563,-1.239\"},\"37179\":{\"name\":\"Union, NC\",\"path\":\"m 815.47932,353.02314 0.6561,8.853 -4.47322,0.664 -4.01146,0.592 -0.37797,-0.07 -0.009,-0.217 -0.12837,-2.346 -1.31754,-1.327 4.58911,-5.6 0.91461,0.392 2.07883,0.30582 2.07882,-1.24482\"},\"37007\":{\"name\":\"Anson, NC\",\"path\":\"m 819.39807,353.60914 0.0481,0.202 0.21751,0.483 0.87717,0.344 0.4885,0.05 0.0981,-0.02 0.11232,-0.1 0.0464,-0.06 0.0571,-0.234 0.37084,-0.394 0.2389,-0.144 0.29774,0 0.33875,0.419 0.53129,0.859 1.38707,3.318 0,0.121 -0.18185,0.435 -0.89322,1.929 -7.29728,1.057 -0.6561,-8.853 3.91875,0.586\"},\"37157\":{\"name\":\"Rockingham, NC\",\"path\":\"m 820.51593,320.55814 3.69589,-0.618 0.78089,6.702 0.0214,0.192 -9.1907,1.214 -0.9574,-6.539 5.64992,-0.951\"},\"37081\":{\"name\":\"Guilford, NC\",\"path\":\"m 815.82341,328.04814 9.1907,-1.214 1.19096,7.829 -9.29054,1.109 -0.27278,-2.065 -0.81834,-5.659\"},\"37151\":{\"name\":\"Randolph, NC\",\"path\":\"m 826.20507,334.66314 0.21572,1.285 1.06081,7.527 -3.89557,0.765 -5.42349,1.061 -1.24801,-9.529 9.29054,-1.109\"},\"37123\":{\"name\":\"Montgomery, NC\",\"path\":\"m 823.58603,344.24014 1.9362,4.919 0.0553,0.289 0.27277,0.44 1.05368,1.232 0.43502,0.353 0.47424,0.209 -1.87379,0.105 -2.57981,0.2 -0.9788,0.66 -1.92015,0.843 -0.41184,0.09 -0.65075,0.03 0.26565,-0.538 0.0339,-0.209 -0.0267,-0.135 -1.01526,-2.077 0.12382,-2.077 -0.34409,-0.717 -0.86113,-1.366 -0.11232,-0.07 -1.42273,-0.722 2.1234,-0.396 5.42349,-1.061\"},\"37153\":{\"name\":\"Richmond, NC\",\"path\":\"m 819.39807,353.60914 0.65075,-0.03 0.41184,-0.09 1.92015,-0.843 0.9788,-0.66 2.57981,-0.2 1.87379,-0.105 0.83572,0.5625 0.33922,1.47607 1.78901,-0.17233 0.37894,0.38376 -0.90927,0.562 -0.67571,0.611 -0.30665,0.328 -0.0963,0.909 0.0731,0.28 0.16938,0.266 -0.26387,1.335 -0.29061,0.619 -0.97879,1.253 -4.4447,0.724 0.89322,-1.929 0.18185,-0.435 0,-0.121 -1.38707,-3.318 -0.53129,-0.859 -0.33875,-0.419 -0.29774,0 -0.2389,0.144 -0.37084,0.394 -0.0571,0.234 -0.0464,0.06 -0.11232,0.1 -0.0981,0.02 -0.4885,-0.05 -0.87717,-0.344 -0.21751,-0.483 -0.0481,-0.202\"},\"37165\":{\"name\":\"Scotland, NC\",\"path\":\"m 834.02117,358.23014 -0.0618,0.49058 0.57636,0.7158 -1.78042,3.90562 -4.87793,-3.247 0.97879,-1.253 0.29061,-0.619 0.26387,-1.335 -0.16938,-0.266 -0.0731,-0.28 0.0963,-0.909 0.30665,-0.328 0.67571,-0.611 0.90927,-0.562 2.14199,1.84802 0.72308,2.44998\"},\"37033\":{\"name\":\"Caswell, NC\",\"path\":\"m 830.9368,318.72714 0.93957,6.879 -1.87914,0.297 -5.00452,0.739 -0.78089,-6.702 0.73097,-0.136 2.29812,-0.408 2.24285,-0.412 1.45304,-0.257\"},\"37001\":{\"name\":\"Alamance, NC\",\"path\":\"m 824.99271,326.64214 5.00452,-0.739 0.89194,7.56581 0.73939,0.77719 0.22774,0.66222 -5.43551,1.03978 -0.21572,-1.285 -1.19096,-7.829 -0.0214,-0.192\"},\"37125\":{\"name\":\"Moore, NC\",\"path\":\"m 831.24167,342.75314 1.62715,2.86234 2.28625,1.39766 -0.39489,1.3837 2.46124,0.9443 0.0481,0.421 -2.90073,-0.362 -0.62757,0.545 -0.88252,1.052 -1.14995,1.929 -0.55269,1.006 -0.37894,-0.38376 -1.78901,0.17233 -0.33922,-1.47607 -0.83572,-0.5625 -0.47424,-0.209 -0.43502,-0.353 -1.05368,-1.232 -0.27277,-0.44 -0.0553,-0.289 -1.9362,-4.919 3.89557,-0.765 3.76007,-0.722\"},\"37093\":{\"name\":\"Hoke, NC\",\"path\":\"m 831.1561,353.93214 0.55269,-1.006 1.14995,-1.929 0.88252,-1.052 0.62757,-0.545 2.90073,0.362 2.06634,4.812 -2.13944,2.885 -1.01089,0.465 -2.1644,0.306 -0.72308,-2.44998 -2.14199,-1.84802\"},\"37155\":{\"name\":\"Robeson, NC\",\"path\":\"m 839.3359,354.57414 2.94887,2.259 2.36943,2.988 0.0713,0.339 -0.18364,4.098 -0.24782,0.491 -0.8843,0.864 -1.11786,2.404 -0.94849,1.574 -8.33313,-6.073 -0.25495,-0.176 1.78042,-3.90562 -0.57636,-0.7158 0.0618,-0.49058 2.1644,-0.306 1.01089,-0.465 2.13944,-2.885\"},\"37047\":{\"name\":\"Columbus, NC\",\"path\":\"m 856.04853,364.51314 1.92906,0.639 -1.10894,3.524 -2.24999,1.27 -2.00929,0.691 -0.21573,0.02 -0.14441,0.05 -0.47424,0.579 -0.85935,3.159 -0.26743,1.79 -9.3048,-6.646 0.94849,-1.574 1.11786,-2.404 0.8843,-0.864 0.78625,0.312 0.16046,0 0.39401,-0.07 2.04852,-0.531 2.33021,0.497 2.6119,0.739 2.06457,-0.152 1.35855,-1.029\"},\"37019\":{\"name\":\"Brunswick, NC\",\"path\":\"m 857.97759,365.15214 2.5602,0.11 1.5297,1.808 1.10895,2.603 0.3851,1.432 0.0891,0.495 0.36906,2.47 -0.18943,1.5838 -0.65131,0.29894 -0.50176,-0.66174 -1.50831,-0.129 -0.80586,0 -0.76307,0.1 -1.83279,0.385 -1.89519,0.595 -0.0642,0.02 -0.007,0 -2.17867,1.262 -0.54021,0.442 -2.43362,-1.737 0.26743,-1.79 0.85935,-3.159 0.47424,-0.579 0.14441,-0.05 0.21573,-0.02 2.00929,-0.691 2.24999,-1.27 1.10894,-3.524\"},\"37129\":{\"name\":\"New Hanover, NC\",\"path\":\"m 866.51932,365.04514 -0.34588,0.52 -0.32091,0.701 -0.85221,2.113 -0.13729,0.547 -0.32091,1.588 -0.0303,0.195 -0.49207,3.361 -0.36906,-2.47 -0.0891,-0.495 -0.3851,-1.432 -1.10895,-2.603 -1.5297,-1.808 1.78644,-1.095 1.44769,-0.69 0.74702,0 -0.1462,0.226 0.0802,0.177 0.29774,0.288 1.29437,0.885 0.47424,0\"},\"37017\":{\"name\":\"Bladen, NC\",\"path\":\"m 849.69081,354.96114 5.72301,6.042 -0.2496,0.426 0.0499,0.111 0.4582,0.572 0.32805,0.201 0.56338,0.07 0.68106,0.361 -1.1963,1.767 -1.35855,1.029 -2.06457,0.152 -2.6119,-0.739 -2.33021,-0.497 -2.04852,0.531 -0.39401,0.07 -0.16046,0 -0.78625,-0.312 0.24782,-0.491 0.18364,-4.098 -0.0713,-0.339 -2.36943,-2.988 1.02693,-0.483 0.77377,-0.2 4.91537,-0.941 0.51347,-0.129 0.1765,-0.119\"},\"37051\":{\"name\":\"Cumberland, NC\",\"path\":\"m 845.79524,346.52214 -0.33874,3.664 0,0.17 0.45106,0.989 0.59548,1.109 0.1355,0.209 3.05227,2.298 -0.1765,0.119 -0.51347,0.129 -4.91537,0.941 -0.77377,0.2 -1.02693,0.483 -2.94887,-2.259 -2.06634,-4.812 -0.0481,-0.421 0.57052,-0.255 3.31079,-1.519 1.63132,-0.877 0.55448,-0.127 2.50671,-0.04\"},\"37037\":{\"name\":\"Chatham, NC\",\"path\":\"m 837.92209,333.32014 0.0374,0.587 -0.60974,5.577 1.58318,0.345 -0.76485,1.584 -1.79713,-1.416 -0.35657,-0.233 -0.19077,-0.09 -0.4992,-0.139 -0.37084,0.03 -0.32983,0.107 -0.77733,1.194 -0.82904,0.726 -1.31754,0.931 -0.4582,0.224 -3.76007,0.722 -1.06081,-7.527 5.43551,-1.03978 -0.22774,-0.66222 4.2985,-0.459 1.99503,-0.467\"},\"37085\":{\"name\":\"Harnett, NC\",\"path\":\"m 838.93297,339.82914 4.04177,0.78 3.92231,4.072 -1.10181,1.841 -2.50671,0.04 -0.55448,0.127 -1.63132,0.877 -3.31079,1.519 -0.57052,0.255 -2.46124,-0.9443 0.39489,-1.3837 3.01305,-5.6 0.76485,-1.584\"},\"37105\":{\"name\":\"Lee, NC\",\"path\":\"m 831.24167,342.75314 0.4582,-0.224 1.31754,-0.931 0.82904,-0.726 0.77733,-1.194 0.32983,-0.107 0.37084,-0.03 0.4992,0.139 0.19077,0.09 0.35657,0.233 1.79713,1.416 -3.01305,5.6 -2.28625,-1.39766 -1.62715,-2.86234\"},\"37135\":{\"name\":\"Orange, NC\",\"path\":\"m 831.87637,325.60614 3.69233,-0.594 0.35836,8.775 -4.2985,0.459 -0.73939,-0.77719 -0.89194,-7.56581 1.87914,-0.297\"},\"37145\":{\"name\":\"Person, NC\",\"path\":\"m 830.9368,318.72714 6.1723,-1.116 1.17313,6.982 -2.71353,0.419 -3.69233,0.594 -0.93957,-6.879\"},\"37063\":{\"name\":\"Durham, NC\",\"path\":\"m 838.28223,324.59314 0.25816,3.22016 1.38921,0.35484 -0.12339,0.84341 1.27156,0.31559 -0.0802,1.06 -0.64938,1.30001 -0.92993,0.12492 -0.1162,1.27507 -1.37994,0.233 -1.99503,0.467 -0.35836,-8.775 2.71353,-0.419\"},\"37141\":{\"name\":\"Pender, NC\",\"path\":\"m 857.3108,356.68814 7.97834,-1.503 4.25214,5.768 -3.02196,4.092 -0.47424,0 -1.29437,-0.885 -0.29774,-0.289 -0.0802,-0.176 0.1462,-0.226 -0.74702,0 -1.44769,0.69 -1.78644,1.095 -2.5602,-0.11 -1.92906,-0.639 1.1963,-1.767 -0.68106,-0.361 -0.56338,-0.07 -0.32805,-0.201 -0.4582,-0.573 -0.0499,-0.11 0.2496,-0.426 1.89698,-4.315\"},\"37163\":{\"name\":\"Sampson, NC\",\"path\":\"m 846.89705,344.68114 1.41959,0.70274 3.03937,-0.85474 3.00414,1.712 0.54734,2.483 0.99484,3.976 -0.27278,3.947 1.33537,0.401 0.1141,-0.06 0.23178,-0.296 -1.89698,4.315 -5.72301,-6.042 -3.05227,-2.298 -0.1355,-0.209 -0.59548,-1.109 -0.45106,-0.989 0,-0.17 0.33874,-3.664 1.10181,-1.841\"},\"37191\":{\"name\":\"Wayne, NC\",\"path\":\"m 854.45821,336.89514 4.45004,-0.56 1.21413,4.546 0.32983,4.468 -6.09206,0.892 -3.00414,-1.712 0.72206,-1.054 1.45483,-2.449 0.92531,-4.131\"},\"37101\":{\"name\":\"Johnston, NC\",\"path\":\"m 851.49864,334.03514 0.79694,0.851 0.97345,1.818 1.18918,0.191 -0.92531,4.131 -1.45483,2.449 -0.72206,1.054 -3.03937,0.85474 -1.41959,-0.70274 -3.92231,-4.072 2.52989,-3.543 2.57803,-2.87 1.89876,-1.929 1.51722,1.768\"},\"37183\":{\"name\":\"Wake, NC\",\"path\":\"m 839.9296,328.16814 3.88131,0.451 1.05189,0.249 1.32467,0.412 2.49959,1.405 0.64361,0.537 0.60261,0.813 0.0481,0.232 -1.89876,1.929 -2.57803,2.87 -2.52989,3.543 -4.04177,-0.78 -1.58318,-0.345 0.60974,-5.577 -0.0374,-0.587 1.37994,-0.233 0.1162,-1.27507 0.92993,-0.12492 0.64938,-1.30001 0.0802,-1.06 -1.27156,-0.31559 0.12339,-0.84341\"},\"37077\":{\"name\":\"Granville, NC\",\"path\":\"m 838.22517,317.39414 4.99917,-0.933 -0.61152,0.781 -0.0481,0.451 0.15333,1.493 0.65074,3.487 0.44929,2.147 0.2496,0.135 -0.25673,3.664 -3.88131,-0.451 -1.38921,-0.35484 -0.25816,-3.22016 -1.17313,-6.982 1.11607,-0.217\"},\"37181\":{\"name\":\"Vance, NC\",\"path\":\"m 843.22434,316.46114 2.3944,-0.481 1.49404,6.26 -0.56199,1.02751 -0.96058,0.32999 -0.33779,1.15207 -1.18478,0.20543 -0.2496,-0.135 -0.44929,-2.147 -0.65074,-3.487 -0.15333,-1.493 0.0481,-0.451 0.61152,-0.781\"},\"37185\":{\"name\":\"Warren, NC\",\"path\":\"m 850.61612,315.02314 2.63687,-0.523 0.19968,0.861 -0.62579,7.289 -5.7141,-0.41 -1.49404,-6.26 4.99738,-0.957\"},\"37069\":{\"name\":\"Franklin, NC\",\"path\":\"m 852.82688,322.65014 -2.84546,9.617 -0.0481,-0.232 -0.60261,-0.813 -0.64361,-0.537 -2.49959,-1.405 -1.32467,-0.412 -1.05189,-0.249 0.25673,-3.664 1.18478,-0.20543 0.33779,-1.15207 0.96058,-0.32999 0.56199,-1.02751 5.7141,0.41\"},\"37127\":{\"name\":\"Nash, NC\",\"path\":\"m 858.62834,322.70514 -0.0499,1.116 -0.75237,3.794 -0.30666,2.049 -6.02075,4.371 -1.51722,-1.768 2.84546,-9.617 1.45037,0.015 0.69688,0.79746 2.26181,-0.50664 1.3924,-0.24582\"},\"37131\":{\"name\":\"Northampton, NC\",\"path\":\"m 866.47831,311.85614 0.36137,0.716 0.77029,-0.0596 0.52463,0.77564 -0.93054,0.41808 0.19956,2.18692 -0.35479,2.931 -1.49866,1.11812 0.35228,0.96388 -0.10697,0.104 -0.18542,-0.03 -1.56536,-0.665 -0.79163,-0.97238 -1.03277,-1.30999 -2.26264,0.73978 0.0524,-1.18941 -0.32805,-1.455 -1.82565,-0.98 -4.32346,0.07 -0.0802,0.144 -0.19968,-0.861 2.38548,-0.456 8.47754,-1.672 2.3623,-0.516\"},\"37083\":{\"name\":\"Halifax, NC\",\"path\":\"m 853.45267,315.36114 0.0802,-0.144 4.32346,-0.07 1.82565,0.98 0.32805,1.455 -0.0524,1.18941 2.26264,-0.73978 1.03277,1.30999 0.79163,0.97238 1.56536,0.665 0.18542,0.03 0.10697,-0.104 1.09415,1.22777 -1.31345,1.03123 -1.04297,1.854 -0.37976,0.105 -1.85596,-0.428 -0.31914,-0.688 -0.98949,-0.531 -2.46749,-0.772 -1.3924,0.24582 -2.26181,0.50664 -0.69688,-0.79746 -1.45037,-0.015 0.62579,-7.289\"},\"37065\":{\"name\":\"Edgecombe, NC\",\"path\":\"m 864.64018,325.01914 1.77395,4.026 -0.77911,-0.168 -1.34964,1.02 -0.3851,0.658 -0.53129,0.685 -1.97007,2.144 -1.29971,-0.996 -0.83795,-1.689 -1.74187,-1.035 0.30666,-2.049 0.75237,-3.794 0.0499,-1.116 2.46749,0.772 0.98949,0.531 0.31914,0.688 1.85596,0.428 0.37976,-0.105\"},\"37195\":{\"name\":\"Wilson, NC\",\"path\":\"m 857.51939,329.66414 1.74187,1.035 0.83795,1.689 1.29971,0.996 -0.60083,0.708 -1.88984,2.243 -4.45004,0.56 -1.18918,-0.191 -0.97345,-1.818 -0.79694,-0.851 6.02075,-4.371\"},\"37079\":{\"name\":\"Greene, NC\",\"path\":\"m 860.79809,334.09214 5.10436,4.324 -1.48157,1.317 -1.14995,0.901 -0.60261,0.271 -0.16581,0.03 -0.33874,-0.385 -2.04139,0.328 -1.21413,-4.546 1.88984,-2.243\"},\"37107\":{\"name\":\"Lenoir, NC\",\"path\":\"m 867.84578,340.07014 -1.02337,2.837 -1.01089,-0.138 0.61153,1.593 -0.009,0.151 -1.2284,2.427 -2.08061,1.905 -2.65291,-3.496 -0.32983,-4.468 2.04139,-0.328 0.33874,0.385 0.16581,-0.03 0.60261,-0.271 1.14995,-0.901 1.48157,-1.317 1.94333,1.654\"},\"37103\":{\"name\":\"Jones, NC\",\"path\":\"m 866.82241,342.90714 0.19433,0.02 5.62496,2.241 0.57051,0.305 0.69889,-0.426 0.20859,0.04 0.11411,0.137 0.33696,1.043 0.69889,4.325 0.52238,0.56 -1.31041,0.684 -1.39777,-1.911 -0.0892,-0.109 -1.02871,-0.791 -0.57943,-0.07 -5.26839,0 -1.90588,0.495 -1.10717,-0.61 2.08061,-1.905 1.2284,-2.427 0.009,-0.151 -0.61153,-1.593 1.01089,0.138\"},\"37061\":{\"name\":\"Duplin, NC\",\"path\":\"m 854.36015,346.24114 6.09206,-0.892 2.65291,3.496 1.10717,0.61 0.72384,1.004 0.19255,4.315 0.016,0.144 0.14441,0.267 -7.97834,1.503 -0.23178,0.296 -0.1141,0.06 -1.33537,-0.401 0.27278,-3.947 -0.99484,-3.976 -0.54734,-2.483\"},\"37133\":{\"name\":\"Onslow, NC\",\"path\":\"m 864.21229,349.45514 1.90588,-0.495 5.26839,0 0.57943,0.07 1.02871,0.791 0.0892,0.109 1.39777,1.911 1.64737,3.11 -6.58771,6.001 -4.25214,-5.768 -0.14441,-0.267 -0.016,-0.144 -0.19255,-4.315 -0.72384,-1.004\"},\"37031\":{\"name\":\"Carteret, NC\",\"path\":\"m 882.97878,344.57014 0.0784,0.153 0.32983,0.352 0.75416,-0.08 1.38099,-0.78493 0.37134,-1.75299 0.80616,1.02263 0.94691,0.93558 1.2344,-0.21113 -0.98658,-1.29671 1.60629,0.48683 0.57786,1.5134 -1.16827,1.78273 -0.45725,0.0415 -0.4556,0.62608 0.35514,0.84762 3.24713,-4.96284 1.62851,-2.42525 0.33411,0.44634 -1.5783,2.10013 -0.92531,2.218 -1.79392,2.58609 -1.84492,3.93691 -0.56594,1.24381 -0.37363,-0.66581 -0.63113,-0.216 -1.93263,-0.376 -0.95027,0.112 -0.7916,0.161 -0.85399,0.248 -1.59032,0.581 -1.48692,0.617 -0.16224,0.07 -0.066,0.03 -0.48138,0.235 -0.40828,0.234 -0.69888,0.401 -0.29774,0.168 -1.64737,-3.11 1.31041,-0.684 2.4354,-0.683 3.47838,-1.549 1.08576,-0.756 0.34588,-1.1 0.0874,-0.523 -0.13015,-0.119 -1.16421,-0.749 1.04833,-1.109\"},\"37137\":{\"name\":\"Pamlico, NC\",\"path\":\"m 882.15509,337.19414 2.03425,-0.02 0.36906,0.113 0.27278,0.392 0.17115,0.394 0.0713,0.355 -0.26565,1.196 -0.52416,2.232 -0.28705,0.678 -1.01801,2.032 -1.04833,1.109 -0.80229,0.829 -0.3227,0.152 -0.71493,0.1 -1.65451,-0.408 -1.03763,-0.58 -0.43323,-0.458 -0.84509,-2.548 0.20325,-1.094 0.24069,-0.571 0.73276,-0.882 1.0822,0.666 3.80999,-1.237 0.15868,-0.868 0,-0.209 -0.19255,-1.373\"},\"37049\":{\"name\":\"Craven, NC\",\"path\":\"m 871.14765,337.55514 6.14912,2.66 -0.73276,0.882 -0.24069,0.571 -0.20325,1.094 0.84509,2.548 0.43323,0.458 1.03763,0.58 1.65451,0.408 0.71493,-0.1 0.3227,-0.152 0.80229,-0.829 1.16421,0.749 0.13015,0.119 -0.0874,0.523 -0.34588,1.1 -1.08576,0.756 -3.47838,1.549 -2.4354,0.683 -0.52238,-0.56 -0.69889,-4.325 -0.33696,-1.043 -0.11411,-0.137 -0.20859,-0.04 -0.69889,0.426 -0.57051,-0.305 -5.62496,-2.241 -0.19433,-0.02 1.02337,-2.837 3.30187,-2.515\"},\"37147\":{\"name\":\"Pitt, NC\",\"path\":\"m 866.41413,329.04514 3.60675,1.319 1.12677,7.191 -3.30187,2.515 -1.94333,-1.654 -5.10436,-4.324 0.60083,-0.708 1.97007,-2.144 0.53129,-0.685 0.3851,-0.658 1.34964,-1.02 0.77911,0.168\"},\"37117\":{\"name\":\"Martin, NC\",\"path\":\"m 865.68315,323.16514 0.025,0.127 0.16759,0.258 2.15986,1.108 0.58755,1.108 0.21929,0.129 2.4071,-0.76307 0.53998,1.84107 0.21038,0.06 1.38724,-1.41257 1.06786,1.73205 0.77306,-0.84752 -0.0377,-0.89665 1.71954,0.24269 -0.78982,3.93 -1.7579,1.223 -0.57944,0.367 -1.62954,-0.506 -2.13231,-0.496 -3.60675,-1.319 -1.77395,-4.026 1.04297,-1.854\"},\"37041\":{\"name\":\"Chowan, NC\",\"path\":\"m 876.05589,315.82814 2.21789,-1.765 -0.0214,2.673 0.90748,2.835 0.0713,0.07 0.21038,0.105 0.40828,0.06 0.74702,0.06 1.63668,-0.1 -1.11804,1.13821 -0.84003,1.00732 -1.76823,-0.5451 -0.65778,0.59257 -1.87752,-2.07266 0.14813,-2.84434 -0.0642,-1.219\"},\"37091\":{\"name\":\"Hertford, NC\",\"path\":\"m 870.96223,311.01314 0.34588,0.515 -0.025,0.225 -0.312,0.907 -0.29774,0.138 0.31022,1.246 0.0678,0.08 0.28169,0.191 0.51347,0.151 1.64024,0.273 0.49742,0 2.07169,1.087 0.0642,1.22 -3.47837,0.731 -1.95225,0.483 -3.15746,0.562 -0.48316,0 0.35479,-2.931 -0.19956,-2.18692 0.93054,-0.41808 -0.52463,-0.77564 -0.77029,0.0596 -0.36137,-0.716 4.45183,-0.836 0.0321,0\"},\"37015\":{\"name\":\"Bertie, NC\",\"path\":\"m 876.12007,317.04814 -0.14813,2.84434 1.87752,2.07266 -0.0731,1.803 -0.86647,2.078 -1.71954,-0.24269 0.0377,0.89665 -0.77306,0.84752 -1.06786,-1.73205 -1.38724,1.41257 -0.21038,-0.06 -0.53998,-1.84107 -2.4071,0.76307 -0.21929,-0.129 -0.58755,-1.108 -2.15986,-1.108 -0.16759,-0.258 -0.025,-0.127 1.31345,-1.03123 -1.09415,-1.22777 -0.35228,-0.96388 1.49866,-1.11812 0.48316,0 3.15746,-0.562 1.95225,-0.483 3.47837,-0.731\"},\"37073\":{\"name\":\"Gates, NC\",\"path\":\"m 877.65691,309.48714 1.08398,0.715 1.30863,2.859 -1.77574,1.002 -2.21789,1.765 -2.07169,-1.087 -0.49742,0 -1.64024,-0.273 -0.51347,-0.151 -0.28169,-0.191 -0.0678,-0.08 -0.31022,-1.246 0.29774,-0.138 0.312,-0.907 0.025,-0.225 -0.34588,-0.515 -0.15722,-0.17913 6.8519,-1.34687\"},\"37029\":{\"name\":\"Camden, NC\",\"path\":\"m 878.55904,309.29414 3.1949,-0.675 3.37498,2.234 2.1858,1.196 0.0891,-0.08 0.24782,0.02 0.41006,0.16 1.35854,1.029 1.85241,2.596 0.0125,0.06 -2.95778,0.08 -0.55626,-0.626 -1.39777,-0.98 -2.72244,-1.657 -3.67271,-1.686 -1.23732,-0.763 -1.08398,-0.715 0.90213,-0.193\"},\"37139\":{\"name\":\"Pasquotank, NC\",\"path\":\"m 878.74089,310.20214 1.23732,0.763 3.67271,1.686 2.72244,1.657 1.39777,0.98 0.55626,0.626 -2.24999,2.017 -1.81496,-1.181 -2.23572,-1.285 -1.79,-2.088 -0.1872,-0.316 -1.30863,-2.859\"},\"37143\":{\"name\":\"Perquimans, NC\",\"path\":\"m 880.04952,313.06114 0.1872,0.316 1.79,2.088 2.23572,1.285 1.81496,1.181 -3.84386,1.841 -1.63668,0.1 -0.74702,-0.06 -0.40828,-0.06 -0.21038,-0.105 -0.0713,-0.07 -0.90748,-2.835 0.0214,-2.673 1.77574,-1.002\"},\"37013\":{\"name\":\"Beaufort, NC\",\"path\":\"m 879.88193,329.01114 0.88919,1.54178 2.40734,0.90922 -1.50475,1.48 -0.20859,0.122 -0.0571,0.1 0,0.1 0.0731,0.273 0.58657,1.087 0.63648,0.842 0.31201,0.362 -0.86113,1.374 0.19255,1.373 0,0.209 -0.15868,0.868 -3.80999,1.237 -1.0822,-0.666 -6.14912,-2.66 -1.12677,-7.191 2.13231,0.496 1.62954,0.506 0.57944,-0.367 1.7579,-1.223 3.76186,-0.765\"},\"37187\":{\"name\":\"Washington, NC\",\"path\":\"m 877.77636,323.76814 0.0161,0.01 0.37083,0.151 0.11946,0 1.0608,-0.289 1.7597,-0.684 0.55625,-0.375 0.19077,-0.267 1.06259,-0.547 0.1765,0.07 0.18364,0.159 0.54734,0.578 0.29774,2.428 -0.37084,1.221 0.57944,2.033 -4.4447,0.745 -3.76186,0.765 0.78982,-3.93 0.86647,-2.078\"},\"37177\":{\"name\":\"Tyrrell, NC\",\"path\":\"m 891.14075,327.50114 -1.91324,0.0235 -0.76141,-0.5184 -0.50976,0.65596 -0.0484,2.1239 -1.72606,0.0268 -0.15171,-1.73804 -1.70353,0.19125 -0.57944,-2.033 0.37084,-1.221 -0.29774,-2.428 1.4263,-1.022 0.98236,-0.569 0.65074,-0.256 2.07527,-0.433 0.78802,0.353 0.22465,0.201 0.44928,1.212 -0.041,0.298 -0.007,0.651 0.18542,1.262 0.32983,1.293 0.30309,1.519 -0.0464,0.408\"},\"37053\":{\"name\":\"Currituck, NC\",\"path\":\"m 889.555,307.06641 0.95867,2.32617 0.42383,0.33789 -0.008,0.26758 0.74219,1.28906 0.29101,0.68945 -0.54687,-0.1875 0.32031,0.8086 0.66406,0.10156 0.72266,1.17187 0.14843,-0.10351 -3.51171,-6.74414 z m -0.463,0.0996 -0.906,0.19352 0.0139,0.16804 -0.33892,-0.0988 -0.58,0.12395 0.0882,0.16602 0.6875,0.0879 -0.0625,0.70117 0.25391,0.0957 0.27734,-0.18946 0.86133,0.0508 z m -2.231,0.47656 -1.68522,0.36133 0,-0.01 -3.42187,0.72266 3.375,2.23242 2.18554,1.19726 0.0899,-0.0801 0.24804,0.0195 0.41016,0.16015 1.35742,1.0293 1.85352,2.5957 0.0117,0.0606 0.51953,0.67383 0.48633,0.49023 0.2539,0.16797 0.75586,0.3125 0.11328,0 -0.0156,-0.24805 -0.30469,-0.65624 -0.84766,-1.99024 -2.37304,-3.12695 -0.31641,-1.63086 -0.39258,-0.0742 0.0488,0.92773 0.043,0.79297 -1.11133,-1.41406 0.58985,-0.0391 -0.23633,-0.30664 -0.55664,0.0586 -0.91993,-1.52734 z\"},\"37055\":{\"name\":\"Dare, NC\",\"path\":\"m 891.14075,327.50114 0.0464,-0.408 -0.30309,-1.519 -0.32983,-1.293 -0.18542,-1.262 0.007,-0.651 0.041,-0.298 0.7702,-1.463 0.13728,-0.152 0.64362,-0.424 0.353,-0.113 0.34588,-0.07 0.19968,0 0.81121,0.224 0.64361,0.596 1.3015,1.834 0.21216,0.344 0.86291,2.748 0.0196,0.105 0.0321,1.606 -0.59548,1.23 -0.36905,0.202 -0.71671,0.232 -0.63292,-0.145 -1.35379,-1.88379 -1.94096,0.54879 m 5.10971,-7.255 0.32983,0.152 0.32805,0.258 0.42789,0.443 0.32805,0.561 0.2496,0.908 -0.0802,0.171 -0.0731,0.01 -0.86113,-0.153 -0.15867,-0.12 -1.34963,-1.968 -0.0981,-0.169 -0.009,-0.05 0.13728,-0.122 0.23356,-0.05 0.27456,0 0.32092,0.119 m 2.15371,16.811 0.33696,-0.185 0.26565,-0.177 1.45482,-1.005 1.55823,-1.156 0.0428,-0.369 -0.0838,-2.332 -0.11054,-1.558 -0.19433,-2.307 -0.23356,-1.045 -0.16759,-0.522 -0.24068,-0.544 -0.28883,-0.364 -0.22821,-0.288 -0.93065,-2.003 0.0678,-0.08 0.10162,0.02 0.0339,0 0.0374,0.05 0.47603,0.58 0.18364,0.297 0.55447,1.059 0.32805,0.764 0.45106,1.012 0.14441,0.99 0.0339,0.296 0.16759,1.406 0.15867,2.058 0.0767,1.679 -0.0107,2.042 -0.0963,0.21 -0.21573,0 -0.29774,-0.03 -0.36192,0.105 -0.52952,0.2 -0.4261,0.266 -1.90589,1.237 -0.15154,-0.305 m -5.13288,-23.39562 1.00554,1.50139 0.005,0 0.55626,0.8762 0.63801,0.731 0.89704,1.141 0.88302,1.24418 1.22789,2.15385 0.88252,1.364 -0.0856,0.266 -1.81675,-2.024 -0.73122,-1.62276 -0.99325,-0.3009 -0.6047,-1.28046 -0.89716,-1.79047 -1.11698,-2.16344 0.15001,-0.10259\"},\"37095\":{\"name\":\"Hyde, NC\",\"path\":\"m 891.14075,327.50114 1.94096,-0.54879 1.35379,1.88379 -0.42611,0.321 -0.79694,1.173 -0.0553,0.114 -0.49742,1.318 0.0713,0.264 -0.009,0.241 -0.10162,0.739 -0.025,0.154 -0.0892,0.167 -0.68284,1.086 -1.14103,1.246 -0.11232,0.07 -4.66043,0.451 -0.16937,0 -1.51187,-0.188 -1.21235,-0.183 -0.31201,-0.362 -0.63648,-0.842 -0.58657,-1.087 -0.0731,-0.273 0,-0.1 0.0571,-0.1 0.20859,-0.121 1.50475,-1.48 -2.40734,-0.90922 -0.88919,-1.54178 4.4447,-0.745 1.70353,-0.19125 0.15171,1.73804 1.72606,-0.0268 0.0484,-2.1239 0.50976,-0.65596 0.76141,0.5184 1.91324,-0.0235 m 7.26342,9.556 0.15154,0.305 -0.34409,0.193 -0.33162,0.265 -0.82547,0.667 -1.16599,1.004 -0.51347,0.451 -0.57943,0.683 -0.27278,0.401 -0.18542,0.169 -0.0553,-0.07 0.0178,-0.09 0.28704,-0.818 0.32983,-0.473 1.166,-1.021 1.76682,-1.416 0.55448,-0.248\"},\"38017\":{\"name\":\"Cass, ND\",\"path\":\"m 500.41055,98.850143 9.73982,0.153 0.0802,1.992997 0.0232,2.908 0.66679,2.186 0.19434,0.531 -0.30666,4.998 0.009,1.287 0,0 -7.89812,-0.06 -6.38089,-0.113 0.14442,-7.987 -0.38347,-0.044 0.1018,-5.942977 4.00968,0.09\"},\"38077\":{\"name\":\"Richland, ND\",\"path\":\"m 510.81716,112.91314 0.68284,1.984 2.20897,5.32 0.61153,4.821 0.0481,0.403 -0.0321,0.465 -0.0392,0.145 -0.29774,0.836 0.21751,1.993 -10.68117,-0.105 -0.33696,-1.391 -0.12837,-1.422 0.0731,-5.149 -0.33875,0 0.1141,-7.955 7.89812,0.06\"},\"38013\":{\"name\":\"Burke, ND\",\"path\":\"m 430.78234,60.352143 -1.99146,-0.135 -0.13921,1.937478 -1.2443,-0.04248 -0.26386,3.954 -10.03756,-0.708 0.14441,-1.968 0.14441,-1.984 -0.83438,-0.06 0.48138,-6.317 14.03118,0.965 -0.29061,4.355\"},\"38023\":{\"name\":\"Divide, ND\",\"path\":\"m 400.09559,53.675143 16.94618,1.357 -0.48138,6.317 0.83438,0.06 -0.14441,1.984 -17.84653,-1.423 0.69176,-8.292\"},\"38105\":{\"name\":\"Williams, ND\",\"path\":\"m 399.40383,61.967143 17.84653,1.423 -0.14441,1.968 -0.27278,3.946 0.8843,0.06 -0.41719,5.666 -0.65253,-0.346 -3.53365,-0.481 -1.57605,0.135 -0.19255,0.138 -0.40293,0.419 -0.27991,0.385 -0.009,0.04 0.0321,0.05 0.23356,0.103 0.12837,0.138 0.007,0.1 -0.0321,0.128 -0.11946,0.129 -0.72384,0.265 -1.06081,0.289 -2.24998,0.417 -0.19968,-0.02 -0.81121,-0.715 -0.34766,-0.577 -0.0392,-0.708 -0.27278,-0.523 -1.01267,-0.337 -0.32092,0.07 -0.31378,0.16 -0.48138,0.369 -0.009,0.105 0.0481,0.104 0.32091,0.314 -0.44928,0.659 -1.36568,1.045 -0.98058,0.538 -0.54734,0.113 -1.85596,-1.077 0.71493,-8.936 0.45819,-5.545\"},\"38061\":{\"name\":\"Mountrail, ND\",\"path\":\"m 427.14351,66.066143 4.01859,0.225 -0.24781,3.98076 0.78445,0.04524 -0.49742,7.939 -0.0693,1.26315 0.5114,0.10185 0.0963,2.676 -8.00331,-0.513 -0.13728,2.04 -3.88844,-1.767 -0.0642,-0.07 -0.0321,-0.113 -0.066,-0.674 0.041,-0.322 0.15332,-0.603 0.0553,-0.112 0.55448,-0.667 0.33874,-0.209 0.25673,-0.233 0.23178,-0.314 0.20146,-0.408 0.009,-0.121 -0.0499,-0.07 -2.21611,-2.167 -1.15887,-0.854 -0.66501,-0.09 0.41719,-5.666 -0.8843,-0.06 0.27278,-3.946 10.03756,0.708\"},\"38053\":{\"name\":\"McKenzie, ND\",\"path\":\"m 417.30028,75.025143 0.66501,0.09 1.15887,0.854 2.21611,2.168 0.0499,0.07 -0.009,0.121 -0.20146,0.408 -0.23178,0.314 -0.25673,0.233 -0.33874,0.209 -0.55448,0.667 -0.0553,0.112 -0.15332,0.603 -0.041,0.322 0.066,0.674 0.0321,0.113 0.0642,0.07 -0.2496,3.407 -7.12791,-0.531 -0.57765,7.876 -8.89652,-0.7 -5.92983,-0.514 0.13728,-1.535 1.16422,-13.612 1.85596,1.077 0.54734,-0.113 0.98058,-0.538 1.36568,-1.045 0.44928,-0.659 -0.32091,-0.314 -0.0481,-0.104 0.009,-0.105 0.48138,-0.369 0.31378,-0.16 0.32092,-0.06 1.01267,0.336 0.27278,0.523 0.0392,0.708 0.34766,0.577 0.81121,0.715 0.19968,0.02 2.24998,-0.417 1.06081,-0.289 0.72384,-0.265 0.11946,-0.129 0.0321,-0.128 -0.007,-0.1 -0.12837,-0.138 -0.23356,-0.103 -0.0321,-0.05 0.009,-0.04 0.27991,-0.385 0.40293,-0.419 0.19255,-0.138 1.57605,-0.135 3.53365,0.481 0.65253,0.346\"},\"38025\":{\"name\":\"Dunn, ND\",\"path\":\"m 423.59916,83.824143 0.51347,-0.763 0.11232,-0.106 0.1141,-0.06 0.22464,0.04 0.85043,0.378 0.16224,0.103 0.0392,0.122 -0.007,0.144 -0.0642,0.168 -0.26564,3.175 0.0321,0.112 0.0642,0.1 0.76485,0.948 -0.37084,5.625 0.95562,0.06 -0.47424,7.256997 -6.00114,-0.402 -0.041,0.658 -8.0033,-0.545 0.5937,-7.947997 -1.04298,-0.08 0.57765,-7.876 7.12791,0.531 0.2496,-3.407 3.88844,1.767\"},\"38089\":{\"name\":\"Stark, ND\",\"path\":\"m 426.25029,101.12514 0.76681,0.0378 -0.0501,0.67716 -0.37797,6.019 -0.13728,1.977 -13.17897,-0.877 -4.81197,-0.361 0.61866,-7.996 3.12537,0.234 8.0033,0.545 0.041,-0.658 6.00114,0.402\"},\"38033\":{\"name\":\"Golden Valley, ND\",\"path\":\"m 402.85904,92.109143 -0.65075,7.963997 0.90926,0.07 -0.6347,7.992 -3.03801,-0.247 -0.16937,2.032 -3.8724,-0.328 0.19255,-2.3 1.33359,-15.699997 5.92983,0.514\"},\"38007\":{\"name\":\"Billings, ND\",\"path\":\"m 402.85904,92.109143 8.89652,0.7 1.04298,0.08 -0.5937,7.947997 -3.12537,-0.234 -0.61866,7.996 -5.97796,-0.46 0.6347,-7.992 -0.90926,-0.07 0.65075,-7.963997\"},\"38011\":{\"name\":\"Bowman, ND\",\"path\":\"m 411.61828,116.86614 -0.57052,7.675 -16.80177,-1.334 0.64183,-7.657 16.73046,1.316\"},\"38087\":{\"name\":\"Slope, ND\",\"path\":\"m 402.48285,108.13814 5.97796,0.46 4.81197,0.361 -0.52951,7.973 -1.12499,-0.07 -16.73046,-1.316 0.51525,-5.955 3.8724,0.328 0.16937,-2.032 3.03801,0.247\"},\"38041\":{\"name\":\"Hettinger, ND\",\"path\":\"m 426.45175,109.83614 0.72385,0.06 -0.45855,8.06184 0.7955,0.0712 -0.11232,1.655 -7.97121,-0.538 0.12837,-1.767 -6.81413,-0.442 0.52951,-7.973 13.17897,0.877\"},\"38001\":{\"name\":\"Adams, ND\",\"path\":\"m 411.61828,116.86614 1.12499,0.07 6.81413,0.442 -0.12837,1.767 7.97121,0.538 -0.3851,5.971 -0.0321,0 -15.07595,-1.045 -0.85934,-0.06 0.57052,-7.675\"},\"38057\":{\"name\":\"Mercer, ND\",\"path\":\"m 426.13975,88.188143 0.3441,0.177 4.45182,1.718 1.0198,0.305 0.22464,-0.04 0.36371,-0.184 0.77911,-0.483 0.54556,-0.176 3.99363,-0.337 0.28169,0 0.12837,0.06 0.86826,0.898 -0.0321,0.138 -0.13015,0.144 -0.58478,0.298 -0.1462,0.128 -0.27278,0.312 -0.0553,0.17 0.0232,0.16 1.24623,3.471 1.38172,1.205 -0.041,0.539 -7.96229,-0.465 -0.36193,5.937997 -5.23807,-0.322 0.0501,-0.67716 -0.76681,-0.0378 0.47424,-7.256997 -0.95562,-0.06 0.37084,-5.625\"},\"38037\":{\"name\":\"Grant, ND\",\"path\":\"m 426.58903,107.85914 5.98688,0.361 -0.12123,1.992 6.65367,0.403 -0.33697,5.923 3.99185,0.215 0.25852,2.018 -1.52792,1.527 -1.63133,1.271 -1.50118,1.059 -3.42489,1.558 -1.2694,0.378 -0.0464,0 -1.5921,-0.33 -2.38013,-0.836 -1.05011,-0.353 -1.42273,0.121 0.22464,-3.48 0.11232,-1.654 -0.7955,-0.0722 0.45855,-8.06184 -0.72385,-0.06 0.13728,-1.977\"},\"38085\":{\"name\":\"Sioux, ND\",\"path\":\"m 443.02175,118.77114 0.18363,-0.82 1.64024,-1.519 0.67393,-0.224 0.22464,0.201 0.62757,0.129 1.62419,0.103 0.40115,-0.127 1.7276,-0.677 0.13728,0.274 0.30487,0.804 0.11232,0.427 0.009,0.69 -0.2496,2.098 -0.066,0.216 -0.24782,0.506 -0.29774,0.305 -0.44215,0.66 -0.19255,0.458 -0.007,0.265 0.16046,1.43 0.0642,0.232 1.43878,2.79 -3.64776,-0.185 -0.36192,-0.02 -0.13015,0 -1.92728,-0.1 -1.45482,-0.08 -4.66042,-0.256 -1.63846,-0.09 -0.93244,-0.06 -2.0093,-0.112 -2.42827,-0.153 -2.30525,-0.136 -1.93619,-0.121 -0.25852,-0.02 -0.0392,0 -0.10341,0 0.16046,-2.491 1.42273,-0.121 1.05011,0.353 2.38013,0.836 1.5921,0.33 0.0464,0 1.2694,-0.378 3.42489,-1.558 1.50118,-1.059 1.63133,-1.272 1.52792,-1.526\"},\"38059\":{\"name\":\"Morton, ND\",\"path\":\"m 426.967,101.84014 5.23807,0.322 13.07379,0.699 0.025,0.426 0.36192,1.501 0.96275,3.545 0.69889,1.381 0.78089,0.772 1.10895,0.562 0.92353,0.756 0.30665,0.538 0.44037,0.981 -0.49029,0.74 -0.14441,0.289 -0.24069,1.02 0.0161,0.201 0.0963,0.264 -1.7276,0.677 -0.40115,0.127 -1.62419,-0.103 -0.62757,-0.129 -0.22464,-0.201 -0.67393,0.224 -1.64024,1.519 -0.18363,0.82 -0.25852,-2.018 -3.99185,-0.215 0.33697,-5.923 -6.65367,-0.403 0.12123,-1.992 -5.98688,-0.361 0.37797,-6.019\"},\"38065\":{\"name\":\"Oliver, ND\",\"path\":\"m 445.02926,98.867143 0.2496,3.993997 -13.07379,-0.699 0.36193,-5.938997 7.96229,0.466 0.041,-0.539 2.15371,-0.529 0.55447,-0.05 0.44928,0.119 0.36193,0.154 0.52238,0.401 0.27278,0.355 0.0571,0.128 0.0874,2.138\"},\"38075\":{\"name\":\"Renville, ND\",\"path\":\"m 430.78234,60.352143 0.29061,-4.355 8.01757,0.474 -0.36906,6.342 0.68474,0.05191 -0.21762,3.932088 6.03501,0.353 -0.10519,1.97 -12.06111,-0.707 0.353,-5.923 -2.7474,-0.17 0.11945,-1.968\"},\"38101\":{\"name\":\"Ward, ND\",\"path\":\"m 427.14351,66.066143 0.26386,-3.954 1.2443,0.04248 0.13921,-1.937478 1.99146,0.135 -0.11945,1.968 2.7474,0.17 -0.353,5.923 12.06111,0.707 -0.10519,1.983 0.42976,0.04694 -0.0588,6.157058 0.40115,1.801 0.19254,0 -0.21572,3.96 -14.02227,-0.779 -0.0963,-2.677 -0.5114,-0.10185 0.0692,-1.26315 0.49742,-7.939 -0.78445,-0.04524 0.24781,-3.98076 -4.01859,-0.225\"},\"38055\":{\"name\":\"McLean, ND\",\"path\":\"m 445.76202,83.077143 6.01005,0.329 -0.18363,3.955 -1.36746,-0.07 -0.0802,1.166 -0.32805,6.743 -1.19096,-0.07 -0.20146,3.89 -3.39102,-0.161 -0.0874,-2.137 -0.0571,-0.129 -0.27278,-0.354 -0.52238,-0.402 -0.36193,-0.153 -0.44928,-0.119 -0.55447,0.05 -2.15371,0.529 -1.38172,-1.205 -1.24623,-3.471 -0.0232,-0.161 0.0553,-0.169 0.27278,-0.312 0.1462,-0.128 0.58478,-0.298 0.13015,-0.145 0.0321,-0.137 -0.86826,-0.898 -0.12837,-0.06 -0.28169,0 -3.99363,0.336 -0.54556,0.177 -0.77911,0.483 -0.36371,0.184 -0.22464,0.04 -1.0198,-0.305 -4.45182,-1.719 -0.3441,-0.176 -0.76485,-0.949 -0.0642,-0.1 -0.0321,-0.112 0.26564,-3.175 0.0642,-0.168 0.007,-0.144 -0.0392,-0.122 -0.16224,-0.103 -0.85043,-0.378 -0.22464,-0.04 -0.1141,0.06 -0.11232,0.105 -0.51347,0.763 0.13728,-2.039 8.00331,0.513 14.02227,0.779\"},\"38009\":{\"name\":\"Bottineau, ND\",\"path\":\"m 439.09052,56.471143 20.10721,1.029 -0.2817,6.364 0.57052,0.03 -0.17829,3.944 -2.01642,-0.07 -2.00038,-0.09 0.0891,-1.994 -6.01184,-0.305 -4.04176,-0.201 -0.10341,1.977 -6.03501,-0.353 0.21762,-3.932088 -0.68474,-0.05191 0.36906,-6.342\"},\"38049\":{\"name\":\"McHenry, ND\",\"path\":\"m 457.29184,67.760143 -0.16759,3.938 0.43259,0.0041 -0.18478,7.98391 0.4693,0.006 -0.0361,3.986955 -6.03323,-0.273 -6.01005,-0.329 0.21572,-3.96 -0.19254,0 -0.40115,-1.801 0.0588,-6.157058 -0.42976,-0.04694 0.21038,-3.953 0.10341,-1.977 4.04176,0.201 6.01184,0.305 -0.0891,1.994 2.00038,0.09\"},\"38083\":{\"name\":\"Sheridan, ND\",\"path\":\"m 457.8053,83.679143 2.0093,0.1 -0.17651,3.961 0.57052,0.03 -0.33696,7.907 -1.26227,-0.05 -8.79668,-0.417 0.32805,-6.743 0.0802,-1.166 1.36746,0.07 0.18363,-3.954 6.03323,0.272\"},\"38015\":{\"name\":\"Burleigh, ND\",\"path\":\"m 458.60938,95.621143 -0.36014,7.890997 0.62579,0.02 -0.44216,7.964 -9.21565,-0.451 -1.10895,-0.562 -0.78089,-0.772 -0.69889,-1.381 -0.96275,-3.545 -0.36192,-1.501 -0.025,-0.426 -0.2496,-3.992997 3.39102,0.16 0.20146,-3.89 1.19096,0.07 8.79668,0.417\"},\"38029\":{\"name\":\"Emmons, ND\",\"path\":\"m 458.43287,111.49914 2.62795,0.12 -0.35538,8.00901 0.62103,0.035 -0.35301,7.82 -9.92523,-0.484 -0.19968,0 -1.43878,-2.79 -0.0642,-0.232 -0.16046,-1.429 0.007,-0.266 0.19255,-0.458 0.44215,-0.66 0.29774,-0.305 0.24782,-0.506 0.066,-0.216 0.2496,-2.098 -0.009,-0.69 -0.11232,-0.426 -0.30487,-0.804 -0.13728,-0.275 -0.0963,-0.264 -0.0161,-0.201 0.24069,-1.02 0.14441,-0.289 0.49029,-0.74 -0.44037,-0.98 -0.30665,-0.539 -0.92353,-0.756 9.21565,0.451\"},\"38051\":{\"name\":\"McIntosh, ND\",\"path\":\"m 461.32647,119.66314 13.4268,0.481 0.54734,0.03 -0.29061,7.868 -11.43355,-0.435 -2.60299,-0.119 0.35301,-7.82\"},\"38047\":{\"name\":\"Logan, ND\",\"path\":\"m 461.06082,111.61914 7.4007,0.313 6.55739,0.257 -0.26564,7.955 -13.4268,-0.481 -0.62103,-0.035 0.35538,-8.00901\"},\"38043\":{\"name\":\"Kidder, ND\",\"path\":\"m 458.60938,95.621143 1.26227,0.05 8.67901,0.346 -0.29774,7.913997 0.54556,0.02 -0.33696,7.987 -7.4007,-0.313 -2.62795,-0.12 0.44216,-7.964 -0.62579,-0.02 0.36014,-7.890997\"},\"38103\":{\"name\":\"Wells, ND\",\"path\":\"m 459.8146,83.775143 4.00967,0.163 8.01222,0.312 -0.12837,3.97 0.48138,0.02 -0.0642,1.945 -0.2086,5.946 -3.36606,-0.119 -8.67901,-0.346 0.33696,-7.907 -0.57052,-0.03 0.17651,-3.962\"},\"38069\":{\"name\":\"Pierce, ND\",\"path\":\"m 459.30826,67.833143 10.06252,0.417 -0.13728,3.955 -5.47341,-0.216 -0.34409,7.962 0.5616,0.03 -0.15333,3.962 -4.00967,-0.162 -2.0093,-0.1 0.0361,-3.986955 -0.4693,-0.006 0.18478,-7.98391 -0.43259,-0.0041 0.16759,-3.938 2.01642,0.07\"},\"38079\":{\"name\":\"Rolette, ND\",\"path\":\"m 459.30826,67.833143 0.17829,-3.944 -0.57052,-0.03 0.2817,-6.364 10.05895,0.402 -0.24782,6.388 0.51347,0.01 -0.15155,3.945 -10.06252,-0.417\"},\"38095\":{\"name\":\"Towner, ND\",\"path\":\"m 469.25668,57.902143 8.05144,0.273 -0.15333,4.09 -0.0464,2.305 0.44928,0.02 -0.11945,3.953 -0.13728,3.952 -3.54435,-0.119 -4.52314,-0.169 0.13728,-3.955 0.15155,-3.945 -0.51347,-0.01 0.24782,-6.388\"},\"38005\":{\"name\":\"Benson, ND\",\"path\":\"m 469.2335,72.205143 4.52314,0.169 -0.16046,4.901 0.11232,0.153 2.20261,1.290746 0.97982,2.284254 0.54734,-0.119 2.1481,-0.982356 0.8489,1.310356 1.92728,1.784 1.54397,0.07 -0.0321,1.566 -12.03794,-0.385 -8.01222,-0.312 0.15333,-3.962 -0.5616,-0.03 0.34409,-7.962 5.47341,0.216\"},\"38027\":{\"name\":\"Eddy, ND\",\"path\":\"m 471.83649,84.250143 12.03794,0.385 0.28882,3.977 -0.0481,1.946 -11.9898,-0.37 0.0642,-1.945 -0.48138,-0.02 0.12837,-3.97\"},\"38031\":{\"name\":\"Foster, ND\",\"path\":\"m 472.12532,90.188143 11.9898,0.37 -0.14442,5.954 -12.05398,-0.378 0.2086,-5.946\"},\"38093\":{\"name\":\"Stutsman, ND\",\"path\":\"m 468.55066,96.015143 3.36606,0.119 12.05398,0.378 0.45159,0.0056 -0.002,1.972448 -0.15155,5.969999 0.44037,0 -0.19968,7.979 -9.49022,-0.257 -6.55739,-0.257 0.33696,-7.987 -0.54556,-0.02 0.29774,-7.913999\"},\"38045\":{\"name\":\"LaMoure, ND\",\"path\":\"m 484.50913,112.44614 6.43616,0.162 -0.18542,7.978 -15.45926,-0.417 -0.54734,-0.03 0.26564,-7.955 9.49022,0.257\"},\"38021\":{\"name\":\"Dickey, ND\",\"path\":\"m 475.30061,120.16914 15.45926,0.417 0.4582,0 -0.20146,7.947 -11.49773,-0.344 -4.50888,-0.161 0.29061,-7.868\"},\"38081\":{\"name\":\"Sargent, ND\",\"path\":\"m 491.21807,120.59514 11.58687,0.209 0.33875,0 -0.0731,5.149 0.12837,1.423 0.33696,1.39 -12.04507,-0.217 -0.47424,-0.02 0.20146,-7.947\"},\"38073\":{\"name\":\"Ransom, ND\",\"path\":\"m 490.94529,112.60814 5.59286,0.128 6.38089,0.113 -0.1141,7.955 -11.58687,-0.209 -0.4582,0 0.18542,-7.978\"},\"38003\":{\"name\":\"Barnes, ND\",\"path\":\"m 492.3912,98.675143 4.00967,0.09 -0.1018,5.942977 0.38347,0.044 -0.14442,7.987 -5.59286,-0.128 -6.43616,-0.162 0.19968,-7.978 -0.44037,0 0.15155,-5.970997 7.97121,0.185\"},\"38039\":{\"name\":\"Griggs, ND\",\"path\":\"m 492.22361,88.807143 0.16759,9.868 -7.97121,-0.185 0.002,-1.972448 -0.45159,-0.0056 0.19255,-7.9 8.06036,0.195\"},\"38091\":{\"name\":\"Steele, ND\",\"path\":\"m 492.22361,88.807143 1.59923,0.03 6.40229,0.121 0.18542,9.89 -4.00968,-0.09 -4.00967,-0.09 -0.16759,-9.868\"},\"38063\":{\"name\":\"Nelson, ND\",\"path\":\"m 487.69868,76.778143 6.03502,0.135 -0.0802,3.971 0.32805,0 0,0.03 -0.15868,7.914 -1.59923,-0.03 -8.06036,-0.194 -0.28882,-3.978 0.0321,-1.565 0.0713,-2.42 1.59924,0.04 0.11232,-3.954 2.00929,0.04\"},\"38071\":{\"name\":\"Ramsey, ND\",\"path\":\"m 487.49722,68.830143 -0.0713,2.669 0.37796,1.301 -0.10519,3.978 -2.00929,-0.04 -0.11232,3.954 -1.59924,-0.04 -0.0713,2.419 -1.54397,-0.07 -1.92728,-1.784 -0.8489,-1.310356 -2.1481,0.982356 -0.54734,0.119 -0.97982,-2.284254 -2.20261,-1.290746 -0.11232,-0.153 0.16046,-4.901 3.54435,0.12 0.13728,-3.953 10.05895,0.289\"},\"38019\":{\"name\":\"Cavalier, ND\",\"path\":\"m 477.30812,58.175143 16.07257,0.401 -0.12123,6.421 0.34587,0 -0.0802,3.977 -6.02788,-0.153 -10.05895,-0.289 0.11945,-3.953 -0.44928,-0.02 0.0464,-2.306 0.15333,-4.09\"},\"38067\":{\"name\":\"Pembina, ND\",\"path\":\"m 493.38069,58.576143 11.04845,0.177 -0.0731,0.07 -0.0713,0.337 -0.0178,0.339 0.0892,0.481 1.10894,3.623 0.29774,0.884 0.67571,1.535 -1.12677,3.126 0.0731,0.04 -11.85965,-0.209 0.0802,-3.978 -0.34587,0 0.12123,-6.42\"},\"38099\":{\"name\":\"Walsh, ND\",\"path\":\"m 487.49722,68.830143 6.02788,0.153 11.85965,0.209 0.12124,0.06 0.36014,0.442 0.0981,5.481 -0.50634,1.952 -11.72415,-0.218 -6.03502,-0.135 0.10519,-3.978 -0.37796,-1.301 0.0713,-2.669\"},\"38035\":{\"name\":\"Grand Forks, ND\",\"path\":\"m 505.45785,77.131143 -0.009,0.467 0,0.06 0.36192,1.398 1.49583,5.391 2.02355,4.622 -9.10511,-0.104 -6.40229,-0.121 0.15868,-7.914 0,-0.03 -0.32805,0 0.0802,-3.971 11.72415,0.218\"},\"38097\":{\"name\":\"Traill, ND\",\"path\":\"m 500.22513,88.960143 9.10511,0.103 0.53843,3.962 0.2817,5.978 -9.73982,-0.153 -0.18542,-9.89\"},\"31045\":{\"name\":\"Dawes, NE\",\"path\":\"m 397.53895,191.53414 8.42941,0.651 3.48729,0.265 -0.36014,4.948 0.22465,1.344 -0.46712,6.643 -11.32122,-0.786 -0.59548,-0.05 0.61866,-8.013 -0.14441,-0.898 -0.0392,-1.771 0.16759,-2.335\"},\"31165\":{\"name\":\"Sioux, NE\",\"path\":\"m 397.53895,191.53414 -0.16759,2.335 0.0392,1.771 0.14441,0.898 -0.61866,8.013 0.59548,0.05 -0.61866,7.987 0.71494,0.06 -0.15333,2.002 -11.03953,-0.854 1.94511,-23.013 9.1586,0.749\"},\"31147\":{\"name\":\"Richardson, NE\",\"path\":\"m 523.07974,259.89114 7.98726,-0.03 4.29849,6.044 -0.55447,0 -7.84284,0.03 -3.89736,0 0.009,-6.042\"},\"31133\":{\"name\":\"Pawnee, NE\",\"path\":\"m 515.17984,259.85214 6.91932,0.02 0.98058,0.02 -0.009,6.042 -3.99363,0 -3.92766,-0.02 0.0303,-6.051\"},\"31127\":{\"name\":\"Nemaha, NE\",\"path\":\"m 522.09916,253.82414 6.2026,-0.02 0.22643,-0.491 0.65075,0.578 -0.37797,0.676 -0.19968,0.185 0.0963,0.408 1.13212,2.846 1.21414,1.182 0.0463,0.119 -0.005,0.04 0,0.03 -0.0178,0.418 0,0.06 -7.98726,0.03 -0.98058,-0.02 0,-6.051\"},\"31097\":{\"name\":\"Johnson, NE\",\"path\":\"m 522.09916,253.82414 0,6.051 -6.91932,-0.02 0.025,-6.037 6.89436,0\"},\"31131\":{\"name\":\"Otoe, NE\",\"path\":\"m 525.779,247.78914 1.5511,4.598 0.97166,1.414 -6.2026,0.02 -6.89436,0 0.0232,-6.049 10.55102,0.02\"},\"31025\":{\"name\":\"Cass, NE\",\"path\":\"m 517.75965,241.73114 0.12837,0.199 0.2496,0.227 1.26941,0.724 0.15332,0.02 0.46533,-0.177 0.51347,-0.256 0.26565,-0.209 0.17828,-0.241 0.3851,-0.363 0.16938,-0.111 0.75415,-0.282 0.38688,0 2.36052,0.147 0.13015,0.02 0.3851,0.275 0.76485,3.358 -0.54021,2.732 -10.55102,-0.02 0.0321,-5.376 2.42596,-0.0355 0.0736,-0.62354\"},\"31153\":{\"name\":\"Sarpy, NE\",\"path\":\"m 517.62416,238.37214 6.95854,-0.02 1.20522,0.724 -0.23356,2.619 -0.3851,-0.275 -0.13015,-0.02 -2.36052,-0.147 -0.38688,0 -0.75415,0.282 -0.16938,0.111 -0.3851,0.363 -0.17828,0.241 -0.26565,0.209 -0.51347,0.256 -0.46533,0.177 -0.15332,-0.02 -1.26941,-0.724 -0.2496,-0.227 -0.12837,-0.199 -0.13549,-3.359\"},\"31055\":{\"name\":\"Douglas, NE\",\"path\":\"m 515.17984,233.65614 2.4354,0.02 6.71072,0 0.25674,4.677 -6.95854,0.02 -0.39048,-2.56592 -2.05384,-2.15008\"},\"31177\":{\"name\":\"Washington, NE\",\"path\":\"m 515.663,226.93814 5.51976,0.04 2.39618,4.065 0.74702,2.635 -6.71072,0 -0.0336,-0.86666 -1.13956,-0.10066 -0.47422,-1.09868 -0.16046,-0.417 -0.15333,-0.555 0.009,-3.696\"},\"31021\":{\"name\":\"Burt, NE\",\"path\":\"m 518.619,218.54114 2.25889,4.195 0.30487,4.243 -5.51976,-0.04 0.0363,-1.26506 -1.91723,-0.0929 0.0392,-6.34 4.863,0.0545 -0.0653,-0.75346\"},\"31173\":{\"name\":\"Thurston, NE\",\"path\":\"m 510.94553,213.15814 6.47716,0.07 -0.21038,1.422 1.40669,3.889 0.0653,0.75346 -4.863,-0.0545 0.0214,-1.56323 -4.58374,-0.18977 0.0624,-4.026 1.6242,-0.303\"},\"31043\":{\"name\":\"Dakota, NE\",\"path\":\"m 512.52158,207.47514 3.24661,0.829 0.57765,0.04 0.22464,0.09 0.17829,0.248 0.0713,0.265 0.007,0.355 -0.11945,0.319 0.19968,2.646 0.51525,0.965 -6.47716,-0.07 0.17325,-5.66223 1.4028,-0.0208\"},\"31051\":{\"name\":\"Dixon, NE\",\"path\":\"m 506.16387,202.00514 3.52117,1.315 1.37281,0.869 0.18541,0.419 0.0963,0.385 -0.0642,0.271 -0.009,0.21 0.0499,0.209 1.20522,1.792 -1.4028,0.0208 -0.17325,5.66223 -1.6242,0.303 -3.32975,0.002 0.0439,-2.04111 0.12837,-9.417\"},\"31179\":{\"name\":\"Wayne, NE\",\"path\":\"m 500.11281,211.33314 5.92269,0.09 -0.0439,2.04111 3.32975,-0.002 -0.0624,4.026 -3.3197,-0.04 -5.92983,-0.08 0.10341,-6.033\"},\"31139\":{\"name\":\"Pierce, NE\",\"path\":\"m 492.09346,217.26314 0.15333,-8.05 5.90664,0.09 1.99057,-0.0217 -0.0312,2.0547 -0.10341,6.033 -7.91594,-0.103\"},\"31027\":{\"name\":\"Cedar, NE\",\"path\":\"m 498.30498,199.30154 1.04476,0.2426 0.81063,-0.34897 0.81062,-0.17405 1.05,0.45096 1.05,0.1303 0.0324,0.828 0.96527,0.68225 2.09519,0.88751 -0.12837,9.417 -5.92269,-0.09 0.0312,-2.0547 -1.99057,0.0217 0.15155,-9.9986\"},\"31107\":{\"name\":\"Knox, NE\",\"path\":\"m 484.46991,198.78814 2.36052,1.07 1.83279,1.582 0.36192,0.16 0.29774,0.05 0.27991,-0.01 0.85221,-0.128 0.22464,-0.14 0.47425,-0.431 0.353,-0.506 0.43219,-0.54489 0.19682,-0.62334 0.79832,-0.12645 0.51065,0.57968 0.56878,0.0513 0.50899,-0.68617 0.51858,0.13525 0.41893,0.67338 0.65847,-0.72603 0.62025,0.081 0.11689,0.48611 0.91491,-0.23824 0.53431,-0.18914 -0.15155,9.9986 -5.90664,-0.09 -7.86603,-0.153 0.0963,-7.492 -0.007,-2.78\"},\"31053\":{\"name\":\"Dodge, NE\",\"path\":\"m 513.78207,225.58014 1.91723,0.0929 -0.0363,1.26506 -0.009,3.696 0.15333,0.555 0.16046,0.417 0.47422,1.09868 1.13956,0.10066 0.0336,0.86666 -2.4354,-0.02 -7.44883,-1.448 0,-0.02 0.057,-6.671 5.99401,0.07\"},\"31037\":{\"name\":\"Colfax, NE\",\"path\":\"m 505.84295,225.49014 1.94511,0.02 -0.057,6.671 -0.24782,0 -0.23355,0.06 -2.57269,1.245 -1.79891,0.41 -1.13391,0 0.13015,-8.448 3.96867,0.05\"},\"31039\":{\"name\":\"Cuming, NE\",\"path\":\"m 505.93923,217.44814 3.3197,0.04 4.58374,0.18977 -0.0214,1.56323 -0.0392,6.34 -5.99401,-0.07 -1.94511,-0.02 0.0963,-8.042\"},\"31167\":{\"name\":\"Stanton, NE\",\"path\":\"m 505.93923,217.44814 -0.0963,8.042 -3.96867,-0.05 -1.9772,-0.03 0.11232,-8.046 5.92983,0.08\"},\"31119\":{\"name\":\"Madison, NE\",\"path\":\"m 492.09346,217.26314 7.91594,0.103 -0.11232,8.046 -7.89811,-0.114 0.0392,-4.028 0.0553,-4.007\"},\"31003\":{\"name\":\"Antelope, NE\",\"path\":\"m 492.09346,217.26314 -0.0553,4.007 -7.87494,-0.135 0.0161,-4.024 0.20146,-8.051 7.86603,0.153 -0.15333,8.05\"},\"31011\":{\"name\":\"Boone, NE\",\"path\":\"m 484.16325,221.13514 7.87494,0.135 -0.0392,4.028 -0.082,4.997 -0.9467,0 -2.87755,0.637 -0.81121,0.328 -3.28761,-0.07 0.0731,-6.034 0.0963,-4.011\"},\"31141\":{\"name\":\"Platte, NE\",\"path\":\"m 499.89708,225.41214 1.9772,0.03 -0.13015,8.448 -1.95937,-0.419 -3.97937,1.374 0.0941,-1.38226 -1.87698,-0.0887 0.0867,-3.01781 -2.19232,-0.0612 0.082,-4.997 7.89811,0.114\"},\"31155\":{\"name\":\"Saunders, NE\",\"path\":\"m 507.73101,232.20814 7.44883,1.448 2.05384,2.15008 0.39048,2.56592 0.13549,3.359 -0.0736,0.62354 -2.42596,0.0355 0.009,-0.668 -7.67525,-0.08 0.13728,-9.433\"},\"31159\":{\"name\":\"Seward, NE\",\"path\":\"m 507.55451,241.64114 -0.11946,8.063 -7.88385,-0.107 0.11232,-8.066 7.89099,0.11\"},\"31023\":{\"name\":\"Butler, NE\",\"path\":\"m 499.66352,241.53114 0.12124,-8.06 1.95937,0.419 1.13391,0 1.79891,-0.41 2.57269,-1.245 0.23355,-0.06 0.24782,0 0,0.02 -0.13728,9.433 -0.0392,0 -7.89099,-0.11\"},\"31143\":{\"name\":\"Polk, NE\",\"path\":\"m 495.80539,234.84514 3.97937,-1.374 -0.12124,8.06 -7.89811,-0.128 0.0232,-2.944 2.65516,-3.06972 1.36164,-0.54428\"},\"31185\":{\"name\":\"York, NE\",\"path\":\"m 499.66352,241.53114 -0.11232,8.066 -7.90702,-0.145 -0.025,0 0.14619,-8.049 7.89811,0.128\"},\"31081\":{\"name\":\"Hamilton, NE\",\"path\":\"m 491.76541,241.40314 -0.14619,8.049 -7.83394,-0.16 -0.0802,0 0.0963,-4.026 0.85221,-1.004 1.81496,-1.809 2.14658,-1.714 0.65075,-0.452 0.0963,0.149 0.025,0 0.37619,-0.135 0.89322,-0.426 0.21572,-0.17 0.27456,-0.31 0.49743,-0.668 0.14441,-0.268 -0.0232,2.944\"},\"31125\":{\"name\":\"Nance, NE\",\"path\":\"m 483.99388,231.18014 3.28761,0.07 0.81121,-0.328 2.87755,-0.637 0.9467,0 2.19232,0.0612 -0.0867,3.01781 -0.0642,1.985 -2.45145,-0.02 -2.61903,0.272 -1.51901,0.321 -0.73989,0.309 -2.12696,-0.04 -0.35479,0 0.0963,-2.997 -0.21751,-0.01 -0.0874,0 0.0553,-2.007\"},\"31121\":{\"name\":\"Merrick, NE\",\"path\":\"m 484.02597,233.18714 0.21751,0.01 -0.0963,2.997 0.35479,0 2.12696,0.04 0.73989,-0.309 1.51901,-0.321 2.61903,-0.272 2.45145,0.02 0.0642,-1.985 1.87697,0.0887 -0.0941,1.38226 -1.36164,0.54428 -2.65516,3.06972 -0.14441,0.267 -0.49743,0.669 -0.27456,0.31 -0.21572,0.17 -0.89322,0.426 -0.37619,0.135 -0.025,0 -0.0963,-0.15 -0.65075,0.453 -2.14658,1.714 -1.81496,1.809 -0.85221,1.004 0.025,-4.033 0.19968,-8.046\"},\"31079\":{\"name\":\"Hall, NE\",\"path\":\"m 476.32932,241.03214 7.49697,0.201 -0.025,4.033 -0.0963,4.026 -7.60038,-0.216 0.22464,-8.044\"},\"31093\":{\"name\":\"Howard, NE\",\"path\":\"m 476.176,232.97114 7.76261,0.216 0.0874,0 -0.19968,8.046 -7.49697,-0.201 -0.45819,-0.02 0.30487,-8.045\"},\"31163\":{\"name\":\"Sherman, NE\",\"path\":\"m 476.04763,232.97114 0.12837,0 -0.30487,8.045 -7.91595,-0.259 0.34588,-8.026 7.74657,0.24\"},\"31015\":{\"name\":\"Boyd, NE\",\"path\":\"m 468.69507,195.63314 12.67086,0.371 3.10398,2.784 0.007,2.78 -2.65113,-0.185 -1.80961,-0.337 -2.7474,-0.931 -1.5101,-0.522 -1.70442,-0.979 -0.41006,-0.419 -0.20146,-0.07 -0.26387,0 -0.19255,0.05 -2.90073,1.205 -1.45482,0.622 -0.12837,0.104 0.19255,-4.466\"},\"31089\":{\"name\":\"Holt, NE\",\"path\":\"m 468.50252,200.09914 0.12837,-0.104 1.45482,-0.622 2.90073,-1.205 0.19255,-0.05 0.26387,0 0.20146,0.07 0.41006,0.419 1.70442,0.978 1.5101,0.523 2.7474,0.931 1.80961,0.336 2.65113,0.186 -0.0963,7.492 -0.20146,8.051 -7.8268,-0.203 -7.84284,-0.234 -0.19969,0 0.25674,-7.367 0.0713,-7.939 -0.1355,-1.262\"},\"31175\":{\"name\":\"Valley, NE\",\"path\":\"m 468.42229,224.71114 7.72875,0.25 0.12123,0 -0.22464,8.01 -7.74657,-0.24 0.12123,-8.02\"},\"31077\":{\"name\":\"Greeley, NE\",\"path\":\"m 484.06698,225.14614 -0.0731,6.034 -0.0553,2.007 -7.76261,-0.216 -0.12837,0 0.22464,-8.01 7.79471,0.185\"},\"31183\":{\"name\":\"Wheeler, NE\",\"path\":\"m 484.1793,217.11114 -0.0161,4.024 -0.0963,4.011 -7.79471,-0.185 -0.12123,0 0.20146,-8.053 7.8268,0.203\"},\"31071\":{\"name\":\"Garfield, NE\",\"path\":\"m 468.25292,224.70214 0.25674,-8.028 7.84284,0.234 -0.20146,8.053 -7.72875,-0.25 -0.16937,0\"},\"31115\":{\"name\":\"Loup, NE\",\"path\":\"m 468.30997,216.66714 0.19969,0 -0.25674,8.028 -7.9302,-0.279 0.30487,-7.995 0.41719,0.02 7.26519,0.217\"},\"31149\":{\"name\":\"Rock, NE\",\"path\":\"m 468.30997,216.66714 -7.26519,-0.217 0.28882,-8.059 -0.20859,0 0.24247,-6.853 1.26762,0.271 0.93244,0.105 0.33874,-0.05 0.5937,-0.219 3.68876,-1.339 0.14441,-0.07 0.16937,-0.144 0.1355,1.262 -0.0713,7.939 -0.25674,7.367\"},\"31103\":{\"name\":\"Keya Paha, NE\",\"path\":\"m 452.88102,194.99814 11.12867,0.467 4.68538,0.168 -0.19255,4.466 -0.16937,0.144 -0.14441,0.07 -3.68876,1.339 -0.5937,0.219 -0.33874,0.05 -0.93244,-0.105 -1.26762,-0.271 -0.1462,0.06 -0.312,0 -1.23909,-0.218 -4.61942,-1.349 -0.96453,-0.392 -0.32092,-0.186 -1.04654,-0.932 0.16224,-3.518\"},\"31017\":{\"name\":\"Brown, NE\",\"path\":\"m 461.36748,201.53814 -0.24247,6.853 0.20859,0 -0.28882,8.059 -0.41719,-0.02 -8.15663,-0.331 0.35301,-8.027 -0.10519,-9.554 1.04654,0.932 0.32092,0.186 0.96453,0.392 4.61942,1.349 1.23909,0.218 0.312,0 0.1462,-0.06\"},\"31009\":{\"name\":\"Blaine, NE\",\"path\":\"m 450.77545,216.01614 1.69551,0.08 8.15663,0.331 -0.30487,7.995 -9.6275,-0.387 -0.24782,-0.02 0.32805,-8.004\"},\"31041\":{\"name\":\"Custer, NE\",\"path\":\"m 460.32272,224.42314 7.9302,0.279 0.16937,0 -0.12123,8.02 -0.34588,8.026 -3.76007,-0.117 -13.75662,-0.557 -0.24247,0 0.13728,-2.685 0.15332,-2.312 0.0963,-2.926 -0.2496,-0.105 0.36192,-8.012 9.6275,0.387\"},\"31019\":{\"name\":\"Buffalo, NE\",\"path\":\"m 464.19511,240.64014 3.76007,0.117 7.91595,0.259 0.45819,0.02 -0.22464,8.044 -0.057,0.216 -0.54734,0.06 -1.25336,0.25 -0.66501,0.313 -0.7078,0.136 -2.11448,-0.07 -2.46571,-0.209 -0.1462,-0.06 -4.11308,-0.378 0.16046,-8.702\"},\"31047\":{\"name\":\"Dawson, NE\",\"path\":\"m 450.43849,240.08314 13.75662,0.557 -0.16046,8.702 -3.90627,-0.475 -5.84246,-0.579 -4.18618,-0.193 0.33875,-8.012\"},\"31137\":{\"name\":\"Phelps, NE\",\"path\":\"m 460.12838,248.86714 3.90627,0.475 4.11308,0.378 -0.24068,7.174 -7.8589,-0.289 -0.20146,0 0.28169,-7.729\"},\"31099\":{\"name\":\"Kearney, NE\",\"path\":\"m 476.04763,249.29214 -0.2086,7.859 -0.0571,0 -7.87493,-0.25 0.24068,-7.174 0.1462,0.06 2.46571,0.209 2.11448,0.07 0.7078,-0.136 0.66501,-0.313 1.25336,-0.25 0.54734,-0.06\"},\"31001\":{\"name\":\"Adams, NE\",\"path\":\"m 476.04763,249.29214 0.057,-0.216 7.60038,0.216 0.0802,0 -0.19255,8.062 -7.7537,-0.203 0.2086,-7.859\"},\"31035\":{\"name\":\"Clay, NE\",\"path\":\"m 491.61922,249.45214 0.025,0 -0.14442,8.07 -7.8268,-0.168 -0.0802,0 0.19255,-8.062 7.83394,0.16\"},\"31059\":{\"name\":\"Fillmore, NE\",\"path\":\"m 499.5512,249.59714 -0.11945,8.06 -7.87672,-0.135 -0.0553,0 0.14442,-8.07 7.90702,0.145\"},\"31151\":{\"name\":\"Saline, NE\",\"path\":\"m 499.5512,249.59714 7.88385,0.107 -0.0321,4.04 -0.0963,4.025 -7.87494,-0.112 0.11945,-8.06\"},\"31109\":{\"name\":\"Lancaster, NE\",\"path\":\"m 507.59373,241.64114 7.67525,0.08 -0.009,0.668 -0.0321,5.376 -0.0232,6.049 -7.80184,-0.07 0.0321,-4.04 0.11946,-8.062 0.0392,0\"},\"31067\":{\"name\":\"Gage, NE\",\"path\":\"m 515.2048,253.81514 -0.025,6.037 -0.0303,6.051 -5.97974,-0.05 -1.9362,-0.02 0.0731,-8.061 0.0963,-4.025 7.80184,0.07\"},\"31095\":{\"name\":\"Jefferson, NE\",\"path\":\"m 499.43175,257.65714 7.87494,0.112 -0.0731,8.061 -7.93199,-0.105 0.13015,-8.068\"},\"31169\":{\"name\":\"Thayer, NE\",\"path\":\"m 499.43175,257.65714 -0.13015,8.068 -7.91416,-0.127 0.16759,-8.076 7.87672,0.135\"},\"31129\":{\"name\":\"Nuckolls, NE\",\"path\":\"m 491.49976,257.52214 0.0553,0 -0.16759,8.076 -1.92906,-0.04 -5.98688,-0.144 0.20146,-8.057 7.8268,0.168\"},\"31181\":{\"name\":\"Webster, NE\",\"path\":\"m 475.83903,257.15114 7.7537,0.203 0.0802,0 -0.20146,8.057 -4.03285,-0.09 -3.88131,-0.105 0.22464,-8.067 0.0571,0\"},\"31061\":{\"name\":\"Franklin, NE\",\"path\":\"m 475.78198,257.14414 -0.22464,8.067 -5.95479,-0.185 -1.95937,-0.06 0.26387,-8.076 7.87493,0.25\"},\"31083\":{\"name\":\"Harlan, NE\",\"path\":\"m 460.04815,256.60514 7.8589,0.289 -0.26387,8.076 -7.81967,-0.281 -0.041,0 0.26564,-8.084\"},\"31073\":{\"name\":\"Gosper, NE\",\"path\":\"m 460.12838,248.86714 -0.28169,7.729 -7.87494,-0.322 0.082,-2.022 1.98433,0.09 0.24782,-6.058 5.84246,0.579\"},\"31065\":{\"name\":\"Furnas, NE\",\"path\":\"m 450.18175,256.22014 1.79,0.05 7.87494,0.322 0.20146,0 -0.26564,8.084 -9.60967,-0.385 -0.27278,-0.02 0.28169,-8.066\"},\"31145\":{\"name\":\"Red Willow, NE\",\"path\":\"m 440.42589,255.76914 9.75586,0.451 -0.28169,8.066 -9.52944,-0.457 -0.34766,-0.03 0.40293,-8.035\"},\"31087\":{\"name\":\"Hitchcock, NE\",\"path\":\"m 430.60584,255.23114 9.49913,0.531 0.32092,0 -0.40293,8.035 -9.88245,-0.529 0.46533,-8.044\"},\"31057\":{\"name\":\"Dundy, NE\",\"path\":\"m 430.26888,255.21614 0.33696,0.01 -0.46533,8.044 -1.519,-0.08 -11.18573,-0.694 0.50634,-8.001 12.32676,0.716\"},\"31063\":{\"name\":\"Frontier, NE\",\"path\":\"m 440.4972,247.64314 9.60254,0.452 4.18618,0.193 -0.24782,6.058 -1.98433,-0.09 -0.082,2.022 -1.79,-0.05 -9.75586,-0.451 -0.32092,0 0.39223,-8.119\"},\"31085\":{\"name\":\"Hayes, NE\",\"path\":\"m 440.4972,247.64314 -0.39223,8.119 -9.49913,-0.531 -0.33696,-0.01 0.41006,-8.046 1.68659,0.1 8.13167,0.375\"},\"31029\":{\"name\":\"Chase, NE\",\"path\":\"m 418.4645,246.44814 12.21444,0.722 -0.41006,8.046 -12.32676,-0.716 0.52238,-8.052\"},\"31135\":{\"name\":\"Perkins, NE\",\"path\":\"m 418.90665,239.39914 0.007,-0.03 13.80654,0.82 -0.35479,7.08 -1.68659,-0.1 -12.21444,-0.722 0.0802,-1.207 0.36192,-5.842\"},\"31111\":{\"name\":\"Lincoln, NE\",\"path\":\"m 442.41022,231.66314 7.92308,0.385 0.2496,0.105 -0.0963,2.926 -0.15332,2.312 -0.13728,2.685 0.24247,0 -0.33875,8.012 -9.60254,-0.452 -8.13167,-0.375 0.35479,-7.08 0.16046,-9.055 9.52944,0.53\"},\"31101\":{\"name\":\"Keith, NE\",\"path\":\"m 420.63425,230.40814 9.89136,0.581 2.35517,0.144 -0.16046,9.055 -13.80654,-0.82 0.2496,-5.029 0.2075,-4.03953 1.26337,0.10853\"},\"31113\":{\"name\":\"Logan, NE\",\"path\":\"m 442.83633,223.66714 7.61107,0.353 0.24782,0.02 -0.36192,8.012 -7.92308,-0.385 0.42611,-7.996\"},\"31117\":{\"name\":\"McPherson, NE\",\"path\":\"m 430.99272,222.95214 4.37873,0.265 3.00414,0.209 2.23572,0.112 2.22502,0.129 -0.42611,7.996 -9.52944,-0.53 -2.35517,-0.144 0.46711,-8.037\"},\"31005\":{\"name\":\"Arthur, NE\",\"path\":\"m 421.12454,222.38314 9.53835,0.553 0.32983,0.02 -0.46711,8.037 -9.89136,-0.581 0.49029,-8.025\"},\"31171\":{\"name\":\"Thomas, NE\",\"path\":\"m 440.9554,215.49414 9.82005,0.522 -0.32805,8.004 -7.61107,-0.353 -2.22502,-0.129 0.34409,-8.044\"},\"31091\":{\"name\":\"Hooker, NE\",\"path\":\"m 431.11218,214.87714 9.84322,0.617 -0.34409,8.044 -2.23572,-0.112 -3.00414,-0.209 -4.37873,-0.265 -0.32983,-0.02 0.44929,-8.059\"},\"31075\":{\"name\":\"Grant, NE\",\"path\":\"m 420.13683,216.13014 0.99756,0.0773 0.15774,-2.02227 9.82005,0.692 -0.44929,8.059 -9.53835,-0.553 -1.40669,-0.08 0.41898,-6.171\"},\"31049\":{\"name\":\"Deuel, NE\",\"path\":\"m 409.64107,233.69514 9.52231,0.644 -0.2496,5.029 -0.007,0.03 -9.80222,-0.656 0.53664,-5.048\"},\"31069\":{\"name\":\"Garden, NE\",\"path\":\"m 420.13683,216.13014 -0.41898,6.171 1.40669,0.08 -0.49029,8.025 -1.26337,-0.10853 -0.2075,4.03953 -9.52231,-0.644 0.32864,-3.64362 -0.51641,-0.0367 0.0844,-1.37372 0.39223,-5.721 -0.37797,-1.336 -0.11054,-0.672 -0.025,-0.412 0.0571,-1.228 0.28883,-3.744 10.37452,0.602\"},\"31033\":{\"name\":\"Cheyenne, NE\",\"path\":\"m 409.53767,228.64114 -0.0844,1.37372 0.51641,0.0367 -0.32864,3.64362 -0.53664,5.048 -0.55626,-0.03 -12.5514,-0.918 0.79516,-9.055 0.16755,0.0217 0.0589,-1.01073 12.51932,0.893\"},\"31123\":{\"name\":\"Morrill, NE\",\"path\":\"m 409.41643,215.51014 0.34588,0.02 -0.28883,3.744 -0.0571,1.228 0.025,0.412 0.11054,0.672 0.37797,1.336 -0.39223,5.721 -12.51932,-0.893 0.44037,-6.032 0.66858,-6.999 11.28913,0.793\"},\"31105\":{\"name\":\"Kimball, NE\",\"path\":\"m 396.79193,228.73714 -0.79516,9.055 -3.30188,-0.255 -8.22794,-0.674 0.77911,-9.033 11.54587,0.907\"},\"31007\":{\"name\":\"Banner, NE\",\"path\":\"m 397.45872,221.71614 -0.44037,6.032 -0.0589,1.01073 -0.16755,-0.0217 -11.54587,-0.907 0.58657,-7.03 11.62609,0.916\"},\"31157\":{\"name\":\"Scotts Bluff, NE\",\"path\":\"m 397.47477,214.65214 0.65253,0.06 -0.66858,6.999 -11.62609,-0.916 0.60261,-7.002 11.03953,0.854\"},\"31013\":{\"name\":\"Box Butte, NE\",\"path\":\"m 409.41643,215.51014 -11.28913,-0.793 -0.65253,-0.06 0.15333,-2.002 -0.71494,-0.06 0.61866,-7.987 11.32122,0.786 0.40293,0.02 -0.50944,8.2476 0.79532,0.1174 -0.12542,1.735\"},\"31031\":{\"name\":\"Cherry, NE\",\"path\":\"m 421.33313,193.26714 0,0 3.46234,0.226 4.17904,0.321 6.66081,0.346 5.37713,0.282 6.07424,0.281 3.26265,0.154 1.19809,0.06 1.33359,0.07 -0.16224,3.518 0.10519,9.554 -0.35301,8.027 -1.69551,-0.08 -9.82005,-0.522 -9.84322,-0.617 -9.82005,-0.692 -0.57765,-0.05 0.61449,-9.34013 -0.29654,-0.0317 0.24365,-7.20003 -0.14913,-0.004 0.20621,-4.29448\"},\"31161\":{\"name\":\"Sheridan, NE\",\"path\":\"m 421.33313,193.26714 -0.20621,4.29448 0.14913,0.004 -0.24365,7.20003 0.29654,0.0317 -0.61449,9.34013 0.57765,0.05 -0.15774,2.02227 -0.99756,-0.0773 -10.37452,-0.602 -0.34588,-0.02 0.12542,-1.735 -0.79532,-0.1184 0.50944,-8.2466 -0.40293,-0.02 0.46712,-6.643 -0.22465,-1.344 0.36014,-4.948 11.87748,0.817\"},\"33007\":{\"name\":\"Coos, NH\",\"path\":\"m 922.5264,90.736143 0.61865,1.767 3.39994,10.252997 0.24068,0.772 3.01484,9.586 -0.23534,1.181 -3.15541,0.6777 -0.34945,2.42076 0.20206,1.22582 -0.42315,0.24557 -0.59353,-1.55406 -0.47862,-0.26719 -0.54756,-0.74977 -0.44689,0.15617 -0.65075,-0.708 -0.48315,-0.128 -1.61946,0.50533 -0.51642,-1.01133 -1.76504,-0.298 -1.65094,-1.23 0.34409,0.03 0.51525,-0.378 0.041,-0.06 0.22464,-0.29 0.0945,-0.137 0.066,-0.104 0.79516,-1.398 0.0802,-0.137 0,0 0.18542,-0.515 -0.32106,-1.06649 0.53678,-0.93451 -0.41719,-0.673 -0.0713,-0.115 -0.40293,-0.499 -0.73811,-0.907 -0.60439,-0.596 -0.1355,-0.383 1.15498,-4.11309 -1.13178,-1.529907 0.38688,-0.795 -0.1355,-1.366 0.3851,-4.154 1.29258,-1.688 0.17829,-0.127 0.34409,0.177 0.14442,0.287 0.0731,0.08 0.51525,0.257 0.8433,0.06 0.70602,-0.147 0.10519,-0.09 0.3851,-1.526\"},\"33009\":{\"name\":\"Grafton, NH\",\"path\":\"m 916.01001,114.97814 1.07685,-1.398 1.65094,1.23 1.76504,0.298 0.51642,1.01133 1.61946,-0.50533 0.48315,0.128 0.65075,0.708 0.78981,1.139 1.1553,1.76 0.6668,3.487 -3.10933,1.35 0.9057,2.074 0.36192,0.65 0.62303,1.21255 -1.86733,0.95167 0.20478,1.57789 -0.91985,1.57789 -1.22352,0.37752 -1.01042,-0.93852 -0.47424,1.003 -0.42611,1.213 -1.05546,0.08 -1.84527,0.07 -1.87201,-0.289 -1.99325,0.161 -0.36612,-0.42147 0.28888,-1.28623 -0.22848,-0.58191 0.4165,-0.84518 0.33092,-0.18948 0.57805,-1.00673 0.0553,-1.15913 -0.26783,-1.15912 0.62544,-1.27316 0.11229,-1.19714 -0.40087,-0.47492 0.32135,-1.69128 0.29371,-0.84564 -0.35248,-0.31348 0.0553,-1.15913 -0.27277,-0.217 -0.29953,-0.403 -0.52773,-1.84 0,-0.144 0.0553,-0.234 0.53843,-0.972 0.0499,-0.04 0.0838,-0.08 1.11252,-0.692 1.12499,-0.707\"},\"33017\":{\"name\":\"Strafford, NH\",\"path\":\"m 931.80089,130.37414 0.4557,-1.06805 0.63087,1.26784 0.44305,-0.0229 0.38859,-0.59269 0.42836,0.006 0.23707,0.82303 0.35382,-0.63656 0.37154,-0.88595 0.27991,3.135 0.12302,0.513 0.15154,0.323 0.46712,0.649 0.29595,0.153 0.80586,0.401 1.94333,1.159 0.0499,0.06 0.624,2.507 -0.62065,0.0834 0.11432,0.90658 -1.06729,0.0234 -2.25372,0.72355 0.41006,-1.456 -4.4006,-1.79097 0.12123,-0.289 0.79516,-1.913 -0.79516,-1.784 -0.65074,-1.568 0.29774,-0.722\"},\"33015\":{\"name\":\"Rockingham, NH\",\"path\":\"m 942.09874,139.06114 -0.69532,4.685 -0.59191,0.37101 -0.59191,-0.30101 -0.48851,0.03 -0.11232,0.06 -0.13193,0.06 -0.007,0 -1.54932,1.15 -0.22913,1.27601 -1.35227,0.073 -0.21751,0.227 -0.35774,0.71899 0.39716,1.05553 -0.9469,0.0475 -2.07171,-0.40557 -0.70376,-1.04552 -0.75995,0.0564 -0.92532,-2.2728 1.25427,-0.62921 -0.75507,-1.02234 0.7702,-6.541 4.4006,1.79097 -0.41006,1.456 2.25372,-0.72355 1.06729,-0.0234 -0.11432,-0.90658 0.62065,-0.0834 2.2482,0.901\"},\"33005\":{\"name\":\"Cheshire, NH\",\"path\":\"m 913.19664,144.23614 0.47602,0.489 0.98771,-0.168 -0.13722,-0.8331 0.61143,-0.20422 2.76224,-1.12612 -0.14378,0.58779 0.0178,0.408 2.3201,-0.14235 0.30487,2.54 0.48547,1.40201 0.91639,-0.218 1.32756,2.99674 0.54031,-0.0288 0.61157,2.17009 -5.83176,1.263 -2.8936,0.618 -1.83814,-1.478 -0.59742,-0.87938 -0.37658,-0.55571 0.37153,-1.05354 -0.25933,-0.9314 1.01527,-1.0528 -0.45882,-1.28456 0.16662,-1.45306 -0.37836,-1.06555\"},\"33019\":{\"name\":\"Sullivan, NH\",\"path\":\"m 912.68317,133.91014 1.99325,-0.161 1.87201,0.289 1.84527,-0.07 1.05546,-0.08 -0.58176,2.17214 -0.84754,0.003 -0.0126,0.4797 0.41229,0.28345 0.13396,0.42261 -0.41302,1.88855 0.75535,1.1579 0.37792,-0.15431 0.22349,1.01941 0.72385,0.653 -0.13015,1.437 -2.3201,0.14235 -0.0178,-0.408 0.14378,-0.58779 -2.76224,1.12612 -0.61143,0.20422 0.13722,0.8331 -0.98771,0.168 -0.47602,-0.489 -0.0642,-1.695 0.0731,-2.01 -0.40962,-0.26945 0.0655,-0.63055 -0.35096,0.0211 -0.44598,-3.68505 -0.14681,-1.20905 0.76546,-0.84795\"},\"33011\":{\"name\":\"Hillsborough, NH\",\"path\":\"m 920.22115,141.81014 1.56054,-0.95955 1.33981,1.53268 2.88978,-1.41145 0.89081,1.86187 2.06359,-0.70345 1.18214,0.79499 1.11464,0.26587 0.75507,1.02234 -1.25427,0.62921 0.92532,2.2728 0.75995,-0.0564 0.70376,1.04552 2.07171,0.40557 -0.10698,0.242 -0.41541,0.988 -5.5465,1.278 -0.0713,0.02 -0.2496,0.06 -4.06494,0.909 -0.49208,0.11 -0.61157,-2.17009 -0.54031,0.0288 -1.32756,-2.99674 -0.91639,0.218 -0.48547,-1.40201 -0.30487,-2.54 0.13015,-1.437\"},\"33001\":{\"name\":\"Belknap, NH\",\"path\":\"m 924.54282,126.91014 1.41382,0.885 4.08277,2.266 1.76148,0.313 -0.29774,0.722 0.65074,1.568 0.79516,1.784 -0.79516,1.913 -2.0831,-1.01929 -3.92873,-1.57164 -0.75416,0.62 -0.86466,-1.14333 -0.27856,0.19102 -0.75146,-0.48186 -0.0598,-0.37907 -0.84994,-0.35183 0.91985,-1.57789 -0.20478,-1.57789 1.86733,-0.95167 -0.62303,-1.21255\"},\"33013\":{\"name\":\"Merrimack, NH\",\"path\":\"m 922.58345,132.23014 0.84994,0.35183 0.0598,0.37907 0.75146,0.48186 0.27856,-0.19102 0.86466,1.14333 0.75416,-0.62 3.92873,1.57164 2.0831,1.01929 -0.12123,0.289 -0.7702,6.541 -1.11464,-0.26537 -1.18214,-0.79449 -2.06359,0.70295 -0.89081,-1.86237 -2.88977,1.41145 -1.33982,-1.53268 -1.56054,0.95955 -0.72385,-0.653 -0.22349,-1.01941 -0.37792,0.15431 -0.75535,-1.1579 0.41302,-1.88855 -0.13396,-0.42261 -0.41229,-0.28345 0.0126,-0.4797 0.84754,-0.003 0.58176,-2.17214 0.42611,-1.212 0.47424,-1.004 1.01042,0.93852 1.22352,-0.37752\"},\"33003\":{\"name\":\"Carroll, NH\",\"path\":\"m 929.80051,113.11414 3.28404,10.872 2.02534,5.279 -0.37154,0.88595 -0.35382,0.63666 -0.23707,-0.82293 -0.42835,-0.006 -0.3886,0.59269 -0.44305,0.0229 -0.63087,-1.26784 -0.4557,1.06805 -1.76148,-0.313 -4.08277,-2.266 -1.41382,-0.885 -0.36192,-0.65 -0.9057,-2.074 3.10933,-1.35 -0.6668,-3.487 -1.1553,-1.76 -0.78981,-1.139 0.44689,-0.15617 0.54756,0.74977 0.47862,0.26719 0.59353,1.55406 0.42315,-0.24557 -0.20206,-1.22582 0.34945,-2.42076 3.15541,-0.6777 0.23534,-1.181\"},\"34025\":{\"name\":\"Monmouth, NJ\",\"path\":\"m 898.58306,212.13675 0.25882,0.14827 0.31288,-0.54635 0.76227,-0.009 0.9291,0.0802 0.91853,0.42381 0.894,0.0209 -0.25498,-0.98692 -0.19763,-0.0205 -0.0144,-0.16906 -0.28589,-0.17119 -0.007,-0.14852 0.0887,-0.10463 0.0553,-0.07 0.12123,0 0.23178,0.107 0.63942,0.83487 0.38462,1.55006 0.13015,0.535 0.0107,0.04 0.14441,1.075 0.0392,0.467 0.025,0.99 -0.0451,3.287 -0.66948,0.23552 -0.66947,-0.77422 -0.37395,0.80195 -0.57096,0.0877 -1.14409,0.11851 -0.14849,-0.60901 -0.71493,-0.5105 -2.44431,0.483 -2.00751,2.676 -0.89322,-1.196 -0.66501,-0.901 0.89143,-0.659 1.03407,-1.221 0,-0.06 -0.0945,-0.168 1.55883,-1.16582 1.85435,-3.13604 -0.0839,-1.34653\"},\"34029\":{\"name\":\"Ocean, NJ\",\"path\":\"m 894.98106,221.98714 2.00751,-2.676 2.44431,-0.483 0.71493,0.5105 0.14849,0.60901 1.14409,-0.11851 0.57096,-0.0877 0.37395,-0.8019 0.66947,0.77427 0.66948,-0.23547 -0.009,0.426 0.0981,1.879 0.0303,0.523 0.1355,1.59 -0.69418,2.34521 -0.23724,1.41845 0.61508,0.62613 -0.22563,0.95645 -1.70135,3.18974 0.90965,1.21902 -0.52416,0.546 -2.1341,-0.967 0.24069,-0.415 0.0571,-0.562 -0.92531,-4.009 -4.04176,-5.804 -0.33696,-0.458\"},\"36085\":{\"name\":\"Richmond, NY\",\"path\":\"m 899.51915,209.92631 -0.0713,0.03 -0.16224,0.226 -0.25316,0.225 -0.0731,0 -0.25852,0.272 -0.16224,0.1 -0.11945,0.191 -0.41185,0.168 -0.0945,-0.06 -0.12224,-0.12562 -0.0355,-0.15955 0.0819,-0.16807 -0.17284,-0.54233 0.21137,-0.35414 0.18179,-0.008 0.16217,-0.29212 0.005,-0.73473 -0.10127,-0.22746 -0.10155,-0.55605 0.22549,-0.30172 0.40369,-0.0943 0.31382,-0.0397 0.22354,-0.0578 0.17713,-0.05 0.53033,-0.2189 0.18721,-0.03 0.13728,0.137 0.12836,0.378 0.35123,0.401 -0.0464,0.25 -0.64183,1.261 -0.41184,0.411 -0.0802,-0.02\"},\"34013\":{\"name\":\"Essex, NJ\",\"path\":\"m 895.47848,202.42014 2.79732,1.189 -0.12124,0.829 -0.15799,0.93904 0.28549,0.21333 0.16454,-0.32088 0.43423,-0.0449 0.11169,0.4691 0.12177,0.23728 -0.0705,0.37062 -0.21125,0.4815 -0.56608,-0.25869 -0.55242,0.2061 -0.48219,-0.36384 -0.94453,-0.0883 -0.37037,0.25341 -1.29995,-0.15669 -0.21138,-1.12195 0.3586,-0.88446 0.0736,-1.05862 -0.30638,-0.15615 -0.0855,-0.87792 1.03221,0.1441\"},\"34039\":{\"name\":\"Union, NJ\",\"path\":\"m 894.61735,206.37514 1.29995,0.15669 0.37037,-0.25341 0.94453,0.0883 0.48219,0.36384 0.55242,-0.2061 0.56608,0.25869 -0.18618,0.66597 -0.35596,0.14095 -0.0802,0.03 -0.0392,0.06 -0.17593,0.23245 0.0558,0.23558 0.10728,0.515 0.0122,0.346 -0.60403,-0.0335 -0.58899,0.24606 -0.37138,-0.17138 -2.349,0.63641 -0.48316,0.12467 0.59526,-0.66065 0.10313,-1.02973 -0.75809,0.22792 -0.29331,-0.25054 1.19631,-1.71931\"},\"34017\":{\"name\":\"Hudson, NJ\",\"path\":\"m 900.79856,203.52214 -0.16224,2.161 -0.21971,-0.0502 -0.44538,0.49233 0.18702,0.47435 -0.37271,0.22328 0.0787,0.26895 -1.21748,0.35729 0.28697,-0.54502 0.27173,-0.44118 0.01,-0.60244 -0.22256,-0.16673 -0.11169,-0.4691 -0.43423,0.0449 -0.16454,0.32088 -0.28549,-0.21333 0.15799,-0.93904 0.87972,0.0581 0.41494,-0.89884 0.61999,-0.57075 0.72935,0.49552\"},\"34003\":{\"name\":\"Bergen, NJ\",\"path\":\"m 895.22174,196.86114 6.08137,1.819 0.0268,1.884 -0.0713,0.74685 -0.45998,2.21115 -0.72935,-0.49552 -0.61999,0.57075 -0.41494,0.89884 -0.87972,-0.0581 0.12124,-0.829 0.0802,-0.08 0.10519,-0.85 -0.025,-0.122 -0.69889,-1.228 -0.16625,-0.79481 -0.6048,-0.38378 -1.17302,0.18194 -0.94953,-0.73235 0.37797,-2.739\"},\"34023\":{\"name\":\"Middlesex, NJ\",\"path\":\"m 898.17061,209.01114 0.016,0.129 -0.009,0.273 -0.0765,0.19457 -0.041,0.0942 -0.11232,0.006 -0.11945,0.01 -0.24247,0.28 -0.007,0.176 0.19968,0.457 -0.13517,0.73743 -0.0107,0.03 -0.0232,0.257 0.15075,0.23123 0.34331,0.0855 0.47108,0.17589 0.005,0 0.005,0 0.0839,1.34653 -1.85435,3.13604 -1.55883,1.16582 -0.1242,-0.54752 -1.2038,-0.11384 -1.39758,-0.51984 -0.20724,-1.0458 0.10519,-0.03 0.2086,-0.241 0.0992,-0.68607 1.8015,-2.34944 -0.68663,-0.41449 -0.43502,-0.353 -0.44928,-0.481 -0.025,-0.168 0.11232,-0.331 0.10519,-0.129 0.61687,-0.56769 0.48316,-0.12467 2.349,-0.63641 0.37138,0.17138 0.58899,-0.24606 0.60403,0.0335\"},\"34035\":{\"name\":\"Somerset, NJ\",\"path\":\"m 893.42104,208.09445 0.29331,0.25054 0.75809,-0.22792 -0.10313,1.02973 -0.59526,0.66065 -0.61687,0.56769 -0.10519,0.129 -0.11232,0.331 0.025,0.168 0.44928,0.481 0.43502,0.353 0.68663,0.41449 -1.8015,2.34944 -0.0992,0.68607 -0.2086,0.241 -0.10519,0.03 -0.10162,-0.191 -0.51525,-0.06 -1.12677,0.644 -0.68997,-1.004 -0.10698,-0.144 -1.26296,-1.88379 0.48688,0.1322 0.31254,-1.03841 0.11945,-0.191 0.19255,-1.494 -0.47526,-0.42357 -0.16836,-1.39543 -0.12836,-0.24 -0.11232,-0.08 2.67608,-1.519 0.29944,0.35552 0.66377,0.68828 -0.12886,0.76087 0.27466,0.52433 0.89143,-0.90869\"},\"34027\":{\"name\":\"Morris, NJ\",\"path\":\"m 890.61124,199.06114 0.43786,0.26633 0.11278,0.85553 0.62072,-0.52605 0.58008,0.46951 0.97992,0.0397 1.27148,0 0.19578,0.48473 0.29737,-0.12479 0.23641,0.91139 0.13484,0.99267 -1.03221,-0.1441 0.0855,0.87792 0.30638,0.15615 -0.0736,1.05862 -0.3586,0.88446 0.21138,1.12195 -1.19631,1.71931 -0.89143,0.90869 -0.27466,-0.52433 0.12886,-0.76087 -0.66377,-0.68828 -0.29944,-0.35552 -2.67608,1.519 -1.68753,-0.0777 -1.43071,-0.82834 0.99412,-1.36068 0.42861,-1.91132 0.49087,-0.42506 0.65049,0.50981 1.03812,-1.10911 -0.21598,-0.67588 1.59867,-3.25076\"},\"34031\":{\"name\":\"Passaic, NJ\",\"path\":\"m 894.8206,196.74014 0.40114,0.121 -0.37797,2.739 0.94953,0.73235 1.17302,-0.18194 0.6048,0.38378 0.16625,0.79481 0.69889,1.228 0.025,0.122 -0.10519,0.85 -0.0802,0.08 -2.79732,-1.189 -0.13483,-0.99267 -0.23642,-0.91139 -0.29737,0.12479 -0.19578,-0.48473 -1.27148,0 -0.97992,-0.0397 -0.58008,-0.46951 -0.62072,0.52605 -0.11278,-0.85553 -0.43786,-0.26633 1.69373,-3.173 2.51563,0.852\"},\"34037\":{\"name\":\"Sussex, NJ\",\"path\":\"m 892.30497,195.88814 -1.69373,3.173 -1.59867,3.25076 0.21598,0.67588 -1.03812,1.10911 -0.65049,-0.50981 -0.49087,0.42506 -4.35555,-3.432 -0.0963,-0.119 0.68462,-0.963 0.47425,-1.118 0.1034,-0.692 -0.0321,-0.378 -0.0713,-0.07 0.0321,-0.313 0.20859,-0.892 0.0874,-0.257 0.41006,-0.843 0.48138,-0.522 1.01445,-0.731 6.31493,2.209\"},\"34041\":{\"name\":\"Warren, NJ\",\"path\":\"m 882.69352,200.58014 4.35555,3.432 -0.42861,1.91132 -0.99412,1.36068 -0.16581,0.44 -0.7488,1.439 -0.13729,0.185 -0.97879,0.983 -1.68838,1.884 -0.37618,0.644 -0.18721,-0.362 -0.1141,-0.209 -0.42432,-1.64 -0.17829,-1.387 0.29239,-0.686 0.1355,-0.04 0.25673,0.03 0.2603,-0.04 0.35123,-0.486 0.57765,-1.771 0.009,-0.135 -0.0571,-0.136 -1.63133,-1.922 1.87202,-3.496\"},\"34019\":{\"name\":\"Hunterdon, NJ\",\"path\":\"m 885.62634,207.28414 1.43071,0.82834 1.68753,0.0777 0.11232,0.08 0.12836,0.24 0.16836,1.39543 0.47526,0.42357 -0.19255,1.494 -0.11945,0.191 -0.31254,1.03841 -0.48688,-0.1322 1.26296,1.88379 0.10698,0.144 -0.89593,0.30357 0.23084,0.7497 -1.1413,0.41594 0.17892,0.32694 0.20117,0.37885 -1.21057,0.435 -0.16759,0 -0.1141,-0.06 -1.67055,-1.013 -1.3015,-2.619 -2.4657,-1.005 0.37618,-0.644 1.68838,-1.884 0.97879,-0.983 0.13729,-0.185 0.7488,-1.439 0.16581,-0.44\"},\"34021\":{\"name\":\"Mercer, NJ\",\"path\":\"m 889.8874,214.95014 0.68997,1.004 1.12677,-0.644 0.51525,0.06 0.10162,0.191 0.20724,1.0458 1.39758,0.51984 1.2038,0.11384 0.1242,0.54752 0.0945,0.168 0,0.06 -1.03407,1.221 -0.89143,0.659 0.66501,0.901 -2.09639,-0.58812 -0.27305,0.91812 -4.63546,-3.561 0.16759,0 1.21057,-0.435 -0.20117,-0.37885 -0.17892,-0.32694 1.1413,-0.41594 -0.23084,-0.7497 0.89593,-0.30357\"},\"34007\":{\"name\":\"Camden, NJ\",\"path\":\"m 885.53185,228.35914 1.30862,-2.433 2.56172,1.69831 1.43954,2.37754 1.11468,-0.5756 1.70532,1.16675 -1.8007,3.288 -1.30348,-1.66198 -1.09375,-0.32094 -0.84346,-0.61673 -1.10513,-0.58261 -0.377,-1.31074 -0.93957,-0.685 -0.66679,-0.344\"},\"34015\":{\"name\":\"Gloucester, NJ\",\"path\":\"m 884.84544,229.34014 0.68641,-0.981 0.66679,0.344 0.93957,0.685 0.377,1.31074 1.10513,0.58261 0.84346,0.61673 1.09375,0.32094 1.30348,1.66198 -1.37102,2.54 -1.59211,-0.925 -2.82265,-1.66076 -1.00606,0.0733 -2.05198,-0.49099 -1.77673,-1.09651 0.25633,-0.25515 0.14937,-0.48861 1.13843,-1.45171 2.06083,-0.78553\"},\"34033\":{\"name\":\"Salem, NJ\",\"path\":\"m 881.24048,232.32114 1.77673,1.09651 2.05198,0.49099 1.00606,-0.0733 2.82265,1.66076 0.21038,2.007 0,0.476 -0.025,0.113 -3.18955,-1.696 -2.00155,2.68395 -0.54154,0.33577 0.13372,1.63228 -0.63182,-0.66038 -0.29071,-0.35126 -0.47304,-0.0906 -0.28745,-0.24847 -0.4015,-0.0954 -0.44741,-0.64426 0.33226,-0.0972 -0.28382,-1.22267 0.35318,-0.66558 -1.05705,-0.51142 -0.125,-0.56049 0.53344,-1.00702 -0.0634,-0.7124 0.26904,-0.57829 0.32934,-1.2816\"},\"34011\":{\"name\":\"Cumberland, NJ\",\"path\":\"m 893.59755,240.26214 -0.41253,2.04404 0.23781,1.46596 -2.00974,-0.0115 -0.18233,-0.36716 -1.31127,0.35863 -0.43868,0.67415 -0.59078,-0.23209 -0.18288,-0.73052 -1.00628,-0.51342 -0.46855,-0.0986 0.15484,-0.33794 -0.25765,-0.28954 -0.6585,0.157 -0.078,0.29392 -0.54348,-0.30301 -0.52229,-0.78312 -0.64848,0.13037 -0.36992,-0.20624 -0.23596,-0.37709 -0.58844,-0.0899 -0.13372,-1.63228 0.54154,-0.33577 2.00155,-2.68395 3.18955,1.696 0.025,-0.113 0,-0.476 -0.21038,-2.007 1.59211,0.925 2.69185,1.41469 0.41569,2.42631\"},\"34009\":{\"name\":\"Cape May, NJ\",\"path\":\"m 893.59755,240.26214 5.60356,-0.701 -0.73276,1.134 -0.21751,0.387 -0.24782,0.617 -0.39401,1.067 -0.43324,1.53 0,0.07 0.007,0.01 0.0232,0.03 -0.65075,2.323 -0.47246,1.148 -0.60439,1.038 -0.89144,0.497 -0.22464,0.06 -0.52951,0.06 -0.082,-0.04 -0.11233,-0.137 -0.025,-1.437 0.0321,-0.355 0.0891,-0.481 0.33875,-1.318 0.0392,-0.28 0.0988,-0.38014 0.009,-0.68186 -0.22705,-0.339 -0.3958,-0.289 -0.17472,-0.02 -0.23781,-1.46596 0.41253,-2.04404\"},\"34001\":{\"name\":\"Atlantic, NJ\",\"path\":\"m 902.12145,234.20214 0.35675,0.79244 -1.05646,2.32557 -2.22063,2.24099 -5.60356,0.701 -0.41569,-2.42631 -2.69185,-1.41469 1.37102,-2.54 1.8007,-3.288 0.24247,0.128 0.98593,0.507 1.27297,1.255 1.59032,0.738 0.4261,0.128 0.7702,0.154 1.03763,-0.268 2.1341,0.967\"},\"34005\":{\"name\":\"Burlington, NJ\",\"path\":\"m 891.7184,221.12114 0.27305,-0.91812 2.09639,0.58812 0.89322,1.196 0.33696,0.458 4.04176,5.804 0.92531,4.009 -0.0571,0.562 -0.24069,0.415 -1.03763,0.268 -0.7702,-0.154 -0.4261,-0.128 -1.59032,-0.738 -1.27297,-1.255 -0.98593,-0.507 -0.24247,-0.128 -1.70532,-1.16675 -1.11468,0.5756 -1.43954,-2.37754 -2.56172,-1.69831 1.10895,-1.616 1.88449,-1.5945 0.23559,-0.74286 0.70665,-0.0544 0.94225,-0.79725\"},\"35025\":{\"name\":\"Lea, NM\",\"path\":\"m 388.91878,409.84314 -0.39402,4.195 -0.8843,9.868 -1.48692,20.056 -0.15154,1.993 -0.47603,-0.03 -1.09111,-0.09 -1.36746,-0.106 -1.00376,-0.07 -1.14104,-0.09 -7.6913,-0.603 0.98236,-12.004 -1.75256,-0.135 0.82012,-10.182 0.92353,0.07 0.81121,-9.902 0.8319,-0.028 0.36618,-3.90902 4.00076,0.307 8.70398,0.658\"},\"35015\":{\"name\":\"Eddy, NM\",\"path\":\"m 352.48405,431.11214 0.18541,0.01 0.96454,-10.168 19.64722,1.689 -0.82012,10.182 1.75256,0.135 -0.98236,12.004 -4.98134,-0.408 -0.85934,-0.07 -15.94955,-1.43 0.54556,-5.794 -0.0731,0 0.57052,-6.14\"},\"35028\":{\"name\":\"Los Alamos, NM\",\"path\":\"m 334.21141,349.21314 -0.0392,0.822 -0.24247,1.727 -0.52951,-0.05 0.45106,0.369 0.0392,0.06 -0.2086,1.929 -0.26565,-0.588 -0.27278,-0.321 -0.74702,-0.433 -0.56339,-0.273 -0.11232,0.103 -0.37797,0.03 -0.33696,-0.02 -0.18542,-0.1 -0.12123,-0.224 0.62044,-2.363 0.312,-0.625 1.62419,-0.17 0.6668,0.02 0.28882,0.102\"},\"35039\":{\"name\":\"Rio Arriba, NM\",\"path\":\"m 315.54476,322.97814 7.61108,0.9 2.34447,0.451 4.58198,0.505 2.55485,0.274 8.51677,0.876 0.20146,1.59 -0.16937,2.491 -0.22464,4.951 0.10519,1.365 0.0642,1.439 -0.0161,0.466 -0.51346,2.242 -0.15333,0.321 -0.24069,0.195 -0.57943,0.231 -0.4582,0.03 -0.23177,0.06 -0.37084,0.442 -0.0642,0.176 3.52652,1.922 1.49582,2.459 0.18542,0.385 0.23356,0.385 3.56574,2.394 -3.5176,0.443 0.0713,-0.548 -6.46825,-0.667 0.0232,0.298 0.1765,0.03 0.025,0.09 -0.12837,1.261 -3.51938,-0.385 0.0392,-0.822 0.041,-0.159 0.0642,-0.644 -11.72415,-1.251 0.29774,-2.74 0.27991,-2.268 -6.45221,-0.747 -7.06195,-0.931 0.62579,-5.425 0.23356,-1.776 0.87539,-5.996 0.48137,-0.875 2.91856,-2.411 0.75415,-1.012\"},\"35045\":{\"name\":\"San Juan, NM\",\"path\":\"m 298.20457,320.81014 16.24016,2.032 1.10003,0.136 -0.75415,1.012 -2.91856,2.411 -0.48137,0.875 -0.87539,5.996 -0.23356,1.776 -0.62579,5.425 -0.65966,5.037 -8.47754,-1.118 -17.5167,-2.323 3.17351,-22.867 12.02902,1.608\"},\"35031\":{\"name\":\"McKinely, NM\",\"path\":\"m 283.00204,342.06914 17.5167,2.323 8.47754,1.118 5.83355,0.747 -1.93619,15.935 -5.05304,-0.61073 0.16145,-1.11794 -2.75755,-0.33953 -0.20084,1.1202 -13.58012,-1.785 -0.041,0.323 -1.02158,7.659 -10.70257,-1.464 3.30366,-23.908\"},\"35001\":{\"name\":\"Bernalillo, NM\",\"path\":\"m 314.76565,364.41914 4.32346,0.52 3.7048,0.435 3.04514,0.353 4.43579,0.498 2.12161,0.29 -0.41897,4.026 -0.21573,1.993 1.75078,0.184 -0.20147,1.92 -1.48513,-0.135 -3.38388,-0.394 -0.009,-0.516 -0.14441,-0.231 -0.15155,-0.06 -4.7246,-0.594 -0.58835,0.538 -0.15154,0.218 -5.66596,-0.653 -0.54556,-2.087 -1.69551,-6.308\"},\"35061\":{\"name\":\"Valencia, NM\",\"path\":\"m 316.46116,370.72714 0.54556,2.087 5.66596,0.653 0.15154,-0.218 0.58835,-0.538 4.7246,0.594 0.15155,0.06 0.14441,0.231 0.009,0.516 -0.97831,-0.10204 -0.17165,1.39604 -0.6347,4.587 -0.19968,2.026 0.98058,0.1 -0.19433,1.881 -1.50118,-0.515 -4.92607,-2.377 -1.92906,-1.303 -0.5206,-0.08 -5.49837,-0.603 1.0608,-8.711 2.53168,0.323\"},\"35006\":{\"name\":\"Cibola, NM\",\"path\":\"m 314.76565,364.41914 1.69551,6.308 -2.53168,-0.323 -1.0608,8.711 -9.72199,-1.166 -1.27119,-0.184 -6.20974,-0.822 -4.46787,-0.529 -12.70473,-1.719 1.20522,-8.718 10.70257,1.464 1.02158,-7.659 0.041,-0.323 13.58012,1.785 0.20084,-1.1202 2.75755,0.33953 -0.16145,1.11794 5.05304,0.61073 1.34882,0.15028 0.52319,2.07672\"},\"35051\":{\"name\":\"Sierra, NM\",\"path\":\"m 300.23704,403.23714 12.49436,1.471 2.09843,0.298 6.01897,0.708 2.72423,0.287 2.07348,0.13 -0.22529,2.03892 0.52302,0.0661 -0.74702,7.77 -11.05023,4.099 -0.11232,0.995 -7.8678,-0.94 -0.48138,4.003 -5.91378,-0.715 -2.04138,-0.651 -0.30487,-0.253 0.0481,-0.246 0.2086,-0.401 0.34588,-1.35 0.0963,-0.973 -0.0321,-0.344 -0.49098,-2.85326 0.09,-2.64575 -1.3453,-0.62647 0.61235,-3.29552 -0.0321,-0.182 -0.23355,-0.412 -0.16046,-0.05 -2.54594,-0.305 0.80408,-6.332 5.44666,0.707\"},\"35053\":{\"name\":\"Socorro, NM\",\"path\":\"m 312.86868,379.11514 5.49837,0.603 0.5206,0.08 1.92906,1.303 4.92607,2.377 1.50118,0.515 -0.43324,4.138 9.24061,0.988 -0.65788,5.971 -0.40292,4.018 -2.41758,-0.267 -0.43323,4.036 -1.84171,-0.194 -0.16046,-0.07 -2.05743,-0.4 -1.99146,-0.226 -0.44215,4.147 -2.07348,-0.13 -2.72423,-0.287 -6.01897,-0.708 -2.09843,-0.298 -12.49436,-1.471 0.47425,-3.76 1.68837,-14.199 -0.1765,-0.03 0.66501,-5.512 0.25852,-1.792 9.72199,1.166\"},\"35003\":{\"name\":\"Catron, NM\",\"path\":\"m 303.14669,377.94914 -0.25852,1.792 -0.66501,5.512 0.1765,0.03 -1.68837,14.199 -0.47425,3.76 -5.44666,-0.707 -0.80408,6.332 -8.53281,-1.093 -1.76148,-0.394 -1.95224,-0.299 -7.60216,-1.018 4.35555,-31.363 12.70473,1.719 4.46787,0.53 6.20974,0.821 1.27119,0.184\"},\"35017\":{\"name\":\"Grant, NM\",\"path\":\"m 274.13761,406.05814 7.60216,1.018 1.95224,0.299 1.76148,0.394 8.53281,1.093 2.54594,0.305 0.16046,0.05 0.23355,0.412 0.0321,0.182 -0.61235,3.29552 1.3453,0.62647 -0.09,2.64575 0.49098,2.85326 0.0321,0.344 -0.0963,0.973 -0.34588,1.35 -0.2086,0.401 -0.0481,0.246 0.30487,0.253 2.04138,0.651 -6.04214,-0.731 -0.2496,1.991 -5.86743,-0.738 -1.30149,9.986 0.009,1.223 -0.22464,2.418 -0.17651,1.328 -5.93874,-0.772 0.71494,-7.224 1.0198,-7.733 -2.07783,-0.23744 0.25395,-2.02056 -3.95262,-0.537 0.51347,-3.971 -3.67985,-0.515 1.36568,-9.857\"},\"35023\":{\"name\":\"Hidalgo, NM\",\"path\":\"m 272.77193,415.91514 3.67985,0.515 -0.51347,3.971 3.95262,0.537 -0.25395,2.02056 2.07783,0.23744 -1.0198,7.733 -0.71494,7.224 5.93874,0.772 -0.0642,1.856 -0.84508,6.484 -0.48851,3.8 -12.49613,-1.632 -0.19255,-0.03 -1.54218,-0.21 -2.13053,-0.298 3.49621,-24.959 1.11607,-8.021\"},\"35029\":{\"name\":\"Luna, NM\",\"path\":\"m 305.68549,424.16314 -2.19471,18.811 -17.63615,-2.193 0.0642,-1.856 0.17651,-1.328 0.22464,-2.418 -0.009,-1.223 1.30149,-9.986 5.86743,0.738 0.2496,-1.991 6.04214,0.731 5.91378,0.715\"},\"35013\":{\"name\":\"Dona Ana, NM\",\"path\":\"m 325.19722,416.00614 -0.24247,2.17 -0.68284,-0.07 -2.41044,21.92 -4.22718,-0.447 -0.79852,-0.0621 -0.007,0 0,0 -0.32589,0.14926 -0.0378,0.32313 0.3169,0.12626 -0.21057,1.21222 -0.43812,0.28139 0.10674,0.45615 0.003,0.29066 0.43546,0.46799 0.18542,0.249 1.51009,1.615 -14.8834,-1.711 2.19471,-18.811 0.48138,-4.003 7.8678,0.94 0.11232,-0.995 11.05023,-4.099\"},\"35055\":{\"name\":\"Taos, NM\",\"path\":\"m 346.37772,326.52214 9.03202,0.915 -0.0731,1.415 -0.56161,3.657 -1.14995,1.084 -0.64183,0.241 -0.57943,0.267 -0.42433,0.305 -0.24247,1.678 -0.041,1.246 0.14619,2.314 -0.28169,4.475 -4.05068,5.4 -3.56574,-2.394 -0.23356,-0.385 -0.18542,-0.385 -1.49582,-2.459 -3.52652,-1.922 0.0642,-0.176 0.37084,-0.442 0.23177,-0.06 0.4582,-0.03 0.57943,-0.231 0.24069,-0.195 0.15333,-0.321 0.51346,-2.242 0.0161,-0.466 -0.0642,-1.439 -0.10519,-1.365 0.22464,-4.951 0.16937,-2.491 -0.20146,-1.59 5.22381,0.538\"},\"35049\":{\"name\":\"Santa Fe, NM\",\"path\":\"m 334.17219,350.03514 3.51938,0.385 0.12837,-1.261 -0.025,-0.09 -0.1765,-0.03 -0.0232,-0.298 6.46825,0.667 -0.0713,0.548 -0.30666,2.474 -1.84705,19.111 -9.86105,-1.006 0.41897,-4.026 1.28545,-12.446 0.24782,-2.307 0.24247,-1.727\"},\"35035\":{\"name\":\"Otero, NM\",\"path\":\"m 325.94424,408.23614 6.55562,0.73 5.19171,0.522 -0.16937,1.97 7.74657,0.77 -0.35301,3.978 -0.45324,4.05509 -0.53982,-0.0591 -1.10537,10.01902 3.93835,0.387 0.74703,0.03 4.98134,0.472 -0.57052,6.141 0.0731,0 -0.54556,5.794 -1.36746,-0.128 -20.88454,-2.131 -7.3276,-0.772 2.41044,-21.92 0.68284,0.07 0.24247,-2.17 0.74702,-7.77\"},\"35057\":{\"name\":\"Torrance, NM\",\"path\":\"m 341.83853,371.54714 7.88207,0.777 -0.96454,10.004 -0.4261,-0.03 -0.5937,5.994 -0.20146,1.992 -11.48347,-1.164 -9.24061,-0.988 0.43324,-4.138 0.19433,-1.881 -0.98058,-0.1 0.19968,-2.026 0.6347,-4.587 0.17165,-1.39604 0.97831,0.10204 3.38388,0.394 1.48513,0.135 0.20147,-1.92 -1.75078,-0.184 0.21573,-1.993 9.86105,1.006\"},\"35027\":{\"name\":\"Lincoln, NM\",\"path\":\"m 347.73626,388.29114 7.91416,0.755 -0.58656,5.947 -0.5937,6.075 0.0392,0 0.016,0.06 -0.82012,8.536 -0.93244,7.158 -1.9362,-0.08 -5.92091,-0.531 0.35301,-3.978 -7.74657,-0.77 0.16937,-1.97 -5.19171,-0.522 -6.55562,-0.73 -0.52302,-0.0661 0.22529,-2.03892 0.44215,-4.147 1.99146,0.226 2.05743,0.4 0.16046,0.07 1.84171,0.194 0.43323,-4.036 2.41758,0.267 0.40292,-4.018 0.65788,-5.971 11.48347,1.164 0.20146,-1.991\"},\"35007\":{\"name\":\"Colfax, NM\",\"path\":\"m 356.59891,327.55114 2.80445,0.315 4.8708,0.448 13.16115,1.1 -1.54218,17.961 -7.84285,-0.692 -7.87493,-0.706 0.1034,-0.99 -8.71823,-0.868 0.28169,-4.475 -0.14619,-2.314 0.041,-1.246 0.24247,-1.678 0.42433,-0.305 0.57943,-0.267 0.64183,-0.241 1.14995,-1.084 0.56161,-3.657 0.0731,-1.415 1.18917,0.114\"},\"35033\":{\"name\":\"Mora, NM\",\"path\":\"m 351.56052,344.11914 8.71823,0.868 -0.1034,0.99 7.87493,0.706 1.62566,6.39885 -0.96591,1.69434 -0.28178,2.10481 -7.08156,-0.556 -4.72282,-0.298 -1.82388,-0.995 -4.22005,-1.881 -6.89436,-0.715 0.30666,-2.474 3.5176,-0.443 4.05068,-5.4\"},\"35059\":{\"name\":\"Union, NM\",\"path\":\"m 394.18894,330.66014 1.52614,0.113 -0.85043,11.547 -0.75594,0.449 -0.27991,3.705 -0.43502,6.074 -0.54734,7.298 -6.17051,-0.491 0.46711,-5.97 0.21572,-0.409 0.12124,-1.599 -7.8999,-0.62 0.17651,-2.033 -3.94549,-0.346 0.082,-1.003 1.54218,-17.961 16.75363,1.246\"},\"35021\":{\"name\":\"Harding, NM\",\"path\":\"m 368.05028,346.68314 7.84285,0.692 -0.082,1.003 3.94549,0.346 -0.17651,2.033 7.8999,0.62 -0.12124,1.599 -0.21572,0.409 -0.46711,5.97 -0.23356,2.019 -0.47424,5.872 -0.19969,0.168 -4.5891,-0.36 0.066,-0.74 -1.62419,-0.137 -3.94549,-9.145 -0.60654,0.39763 -2.17474,-0.17263 -4.46609,-0.376 0.28178,-2.10481 0.96591,-1.69434 -1.62566,-6.39885\"},\"35047\":{\"name\":\"San Miguel, NM\",\"path\":\"m 343.68558,352.43614 6.89436,0.715 4.22005,1.881 1.82388,0.995 4.72282,0.298 7.08156,0.556 4.46609,0.376 2.17474,0.17263 0.60654,-0.39763 3.94549,9.145 1.62419,0.137 -0.066,0.74 -0.27278,3.439 -4.09882,-0.369 0.041,-0.506 -5.20777,2.392 0.13015,-1.697 -21.66543,-2.008 -0.3851,4.019 -7.88207,-0.777 1.84705,-19.111\"},\"35037\":{\"name\":\"Quay, NM\",\"path\":\"m 386.67593,359.35514 6.17051,0.491 -0.2086,2.694 -0.76307,10.139 -0.40114,5.286 -3.72798,-0.28 -0.23578,2.0508 -2.12296,-0.1993 -0.27207,2.01451 -2.08667,-0.16301 -0.2501,1.98534 -4.16963,-0.33734 -0.24439,1.96388 -0.53473,0.004 -3.94549,-0.328 -3.37497,-0.289 0.32983,-4.017 0.18364,-2.107 0.4261,-4.09 0.19255,-2.163 5.20777,-2.392 -0.041,0.506 4.09882,0.369 0.27278,-3.439 4.5891,0.36 0.19969,-0.168 0.47424,-5.872 0.23356,-2.019\"},\"35019\":{\"name\":\"Guadelupe, NM\",\"path\":\"m 371.64098,372.01014 -0.19255,2.163 -0.4261,4.09 -0.18364,2.107 -3.93836,-0.333 -0.17026,1.98594 -1.97222,-0.15503 -0.1806,2.00409 -8.37235,-0.754 -0.55448,5.928 -7.91416,-0.755 0.5937,-5.994 0.4261,0.03 1.34964,-14.023 21.66543,2.008 -0.13015,1.697\"},\"35011\":{\"name\":\"De Baca, NM\",\"path\":\"m 370.83869,380.37014 -0.32983,4.017 3.37497,0.289 -0.57051,6.716 -0.0499,1.239 -0.33697,4.081 -3.96153,-0.353 -0.18542,2.025 -4.13626,-0.371 -7.74835,-0.795 0.18541,-2.025 -2.01642,-0.2 0.58656,-5.947 0.55448,-5.928 8.37235,0.754 0.1806,-2.00409 1.97222,0.15503 0.17026,-1.98594 3.93836,0.333\"},\"35009\":{\"name\":\"Curry, NM\",\"path\":\"m 391.47363,377.96514 -0.35301,4.766 -0.77198,10.021 -0.0161,0.241 -13.10588,-1.036 0.60261,-6.953 0.53473,-0.004 0.24439,-1.96388 4.16963,0.33734 0.2501,-1.98534 2.08667,0.16301 0.27207,-2.01451 2.12296,0.1993 0.23578,-2.0508 3.72798,0.28\"},\"35041\":{\"name\":\"Roosevelt, NM\",\"path\":\"m 377.82932,385.00414 -0.60261,6.953 13.10588,1.036 -0.8843,11.009 -0.52951,5.841 -8.70398,-0.658 0.16938,-2.002 -3.96154,-0.289 0.33696,-3.755 -2.36943,-0.199 0.50633,-6.044 -1.97007,-0.184 0.33697,-4.081 0.0499,-1.239 0.57051,-6.716 3.94549,0.328\"},\"35005\":{\"name\":\"Chaves, NM\",\"path\":\"m 372.92643,396.71214 1.97007,0.184 -0.50633,6.044 2.36943,0.199 -0.33696,3.755 3.96154,0.289 -0.16938,2.002 -4.00076,-0.307 -0.36618,3.90902 -0.8319,0.028 -0.81121,9.902 -0.92353,-0.07 -19.64722,-1.689 -0.96454,10.168 -0.18541,-0.01 -4.98134,-0.472 -0.74703,-0.03 -3.93835,-0.387 1.10538,-10.01902 0.53981,0.0591 0.45324,-4.05509 5.92091,0.531 1.9362,0.08 0.93244,-7.158 0.82012,-8.536 -0.016,-0.06 -0.0392,0 0.5937,-6.074 2.01642,0.2 -0.18541,2.025 7.74835,0.795 4.13626,0.371 0.18542,-2.025 3.96153,0.353\"},\"35043\":{\"name\":\"Sandoval, NM\",\"path\":\"m 309.65594,340.47314 7.06195,0.931 6.45221,0.747 -0.27991,2.268 -0.29774,2.74 11.72415,1.251 -0.0642,0.644 -0.041,0.159 -0.28882,-0.102 -0.6668,-0.02 -1.62419,0.17 -0.312,0.625 -0.62044,2.363 0.12123,0.224 0.18542,0.1 0.33696,0.02 0.37797,-0.03 0.11232,-0.103 0.56339,0.273 0.74702,0.433 0.27278,0.321 0.26565,0.588 -1.28545,12.446 -2.12161,-0.29 -4.43579,-0.498 -3.04514,-0.353 -3.7048,-0.435 -4.32346,-0.52 -0.5232,-2.07672 -1.34881,-0.15028 1.93619,-15.935 -5.83355,-0.747 0.65966,-5.037 m 24.23456,11.667 -0.0392,-0.06 -0.45106,-0.369 0.52951,0.05 -0.0392,0.378\"},\"32007\":{\"name\":\"Elko, NV\",\"path\":\"m 201.52132,187.39614 2.08061,0.328 2.51563,0.506 4.40369,0.997 3.61566,0.715 4.00076,0.788 -4.34664,22.589 -3.92945,20.07 -3.51938,-0.674 -10.52785,-2.22 -3.87239,-0.786 -3.91162,-0.844 -3.39102,-0.788 -5.35217,-1.123 -2.83833,-0.586 -0.0553,-10.136 0.009,-2.232 0.0464,-0.642 1.56714,-7.328 -7.22241,-1.585 -7.27232,-1.611 5.07761,-22.568 6.49321,1.487 1.92907,0.442 24.5002,5.201\"},\"32033\":{\"name\":\"White Pine, NV\",\"path\":\"m 179.28715,226.95414 5.35217,1.123 3.39102,0.788 3.91162,0.844 3.87239,0.786 10.52785,2.22 3.51938,0.674 -0.93244,4.799 -1.59923,8.26 -3.82426,19.694 -16.63417,-3.286 -13.47494,-14.263 1.31755,-6.212 0.16759,-0.497 0.71671,-0.53 0.42611,-0.411 0.44215,-0.523 0.62578,-1.276 1.56715,-5.836 0.65074,-5.792 -0.0232,-0.562\"},\"32003\":{\"name\":\"Clark, NV\",\"path\":\"m 162.45151,301.20214 2.33912,0.52 0.49742,-0.156 13.26812,2.738 2.89182,0.587 1.31754,0.49 12.69581,2.507 -0.72206,3.786 -0.0891,0.462 -0.73098,4.172 -0.44215,2.316 -0.77912,4.042 -2.33021,3.148 -0.2496,0.282 -0.0321,0.02 -0.0642,0.04 -0.016,0 -1.11608,-0.02 -0.36192,-0.04 -0.0963,-0.02 -0.23356,-0.178 -0.16046,-0.168 -0.4261,-0.676 -0.12837,-0.385 -0.0161,-0.192 -0.009,-0.05 -0.0321,-0.176 -0.22464,-0.563 -0.54556,-0.772 -0.2496,-0.234 -2.33913,-0.69 -1.05902,-0.217 -1.12678,0 -2.05743,0.483 -0.18363,0.1 -0.24961,0.225 -0.016,0.146 -0.23356,2.25 -0.49742,6.588 -0.22464,4.027 0.24069,2.844 0.16759,1.348 0.025,0.675 -0.12837,2.805 -0.0232,0.513 -0.0981,0.458 -0.16758,0.548 -1.72047,2.875 -2.51385,-3.742 -6.81591,-10.198 -0.47246,-0.7 -1.27119,-1.896 -3.68697,-5.537 -3.61566,-5.383 4.11308,-18.996\"},\"32017\":{\"name\":\"Lincoln, NV\",\"path\":\"m 186.87148,262.85614 16.63417,3.286 -0.46711,2.38 -1.84705,9.658 -2.42649,12.367 -2.6119,13.757 -0.69176,3.584 -12.69581,-2.507 -1.31754,-0.49 -2.89182,-0.587 -13.26812,-2.738 -0.49742,0.156 -2.33912,-0.52 0.33696,-1.79 1.02871,-4.839 4.45361,-20.74 15.716,3.263 2.88469,-14.24\"},\"32009\":{\"name\":\"Esmeralda, NV\",\"path\":\"m 138.95685,257.27414 6.74103,12.767 -5.28621,23.302 -9.2424,-13.876 -8.18872,-12.223 0.24069,0.121 1.11786,0.264 6.51639,-4.652 8.10136,-5.703\"},\"32023\":{\"name\":\"Nye, NV\",\"path\":\"m 139.10126,243.02714 1.64737,-0.09 4.98134,0.06 3.04514,0.128 12.61559,2.871 12.00584,2.594 13.47494,14.263 -2.88469,14.24 -15.716,-3.263 -4.45361,20.74 -1.02871,4.839 -0.33696,1.79 -4.11308,18.996 -0.2086,-0.306 -2.63687,-3.953 -0.6347,-0.948 -4.91715,-7.385 -6.06711,-9.08 -1.14995,-1.744 -1.96829,-2.926 -0.34409,-0.513 5.28621,-23.302 -13.13797,-24.88 0.43324,-1.824 6.10811,-0.31\"},\"32011\":{\"name\":\"Eureka, NV\",\"path\":\"m 170.79355,204.44514 7.22241,1.585 -1.56714,7.328 -0.0464,0.642 -0.009,2.232 0.0553,10.136 2.83833,0.586 0.0232,0.562 -0.65074,5.792 -1.56715,5.836 -0.62578,1.276 -0.44215,0.523 -0.42611,0.411 -0.71671,0.53 -0.16759,0.497 -1.31755,6.212 -12.00584,-2.594 0.32983,-1.198 0.98771,-4.122 1.7276,-7.651 1.67233,-7.6 -0.1034,-0.04 -0.0481,-0.03 1.71155,-7.297 2.68322,-12.432 0.44215,-1.181\"},\"32015\":{\"name\":\"Lander, NV\",\"path\":\"m 163.52123,202.83414 7.27232,1.611 -0.44215,1.181 -2.68322,12.432 -1.71155,7.297 0.0481,0.03 0.1034,0.04 -1.67233,7.6 -1.7276,7.651 -0.98771,4.122 -0.32983,1.198 -12.61559,-2.871 -3.04514,-0.128 -4.98134,-0.06 -0.16937,-0.61 0.0963,-0.635 1.32761,-0.0585 0.38158,-1.74475 -0.0529,-2.75177 0.14263,-0.353 0.23355,-0.267 2.28208,-1.551 1.17313,-0.553 1.46195,-0.285 0.13015,0.03 0.12123,-0.04 0.23178,-0.224 0.16937,-0.362 0.50634,-2.018 1.34963,-6.654 -0.61866,-1.485 6.81413,-10.913 1.51009,-2.427 3.86526,0.86 1.81675,-8.064\"},\"32021\":{\"name\":\"Mineral, NV\",\"path\":\"m 123.78462,239.33414 15.31664,3.693 -6.10811,0.31 -0.43324,1.824 6.39694,12.113 -8.10136,5.703 -6.51639,4.652 -1.11786,-0.264 -0.24069,-0.121 -9.81827,-14.772 4.33773,1.072 0.56338,-2.234 1.3746,-5.65 0.13549,-2.031 -1.51722,-0.37 0.50634,-2.067 0.98771,-1.196 1.1963,-1.384 3.03801,0.722\"},\"32005\":{\"name\":\"Douglas, NV\",\"path\":\"m 102.5239,233.09314 2.09665,0.529 2.0093,0.838 0.0481,0.36 3.4552,0.861 4.10595,1.084 -0.50634,2.092 -0.68462,0 -0.92353,-0.227 -0.49029,0.562 -0.7381,1.547 -0.16938,0.664 0.0892,2.103 0.16046,0.74 0.36905,1.35 -0.19968,2.225 -0.29061,1.216 -3.43024,-5.135 -4.23432,-6.35 -0.90926,-3.447 0.24247,-1.012\"},\"32510\":{\"name\":\"Carson City, NV\",\"path\":\"m 102.81272,231.89514 5.48768,-0.626 0.28882,1.061 0.49029,0.465 1.48692,0.371 0.009,0.119 -0.37084,2.307 -0.0713,0.09 -3.4552,-0.861 -0.0481,-0.36 -2.0093,-0.838 -2.09665,-0.529 0.28882,-1.198\"},\"32019\":{\"name\":\"Lyon NV\",\"path\":\"m 119.36489,224.97714 1.92906,-1.214 0.47425,-0.186 -0.61866,1.698 -1.14995,2.533 -0.73098,2.922 1.64738,2.86 1.02871,1.64 0.81121,1.197 1.23018,2.066 -0.20147,0.841 -3.03801,-0.722 -1.1963,1.384 -0.98771,1.196 -0.50634,2.067 1.51722,0.37 -0.13549,2.031 -1.3746,5.65 -0.56338,2.234 -4.33773,-1.072 -2.30703,-3.435 0.29061,-1.216 0.19968,-2.225 -0.36905,-1.35 -0.16046,-0.74 -0.0892,-2.103 0.16938,-0.664 0.7381,-1.547 0.49029,-0.562 0.92353,0.227 0.68462,0 0.50634,-2.092 -4.10595,-1.084 0.0713,-0.09 0.37084,-2.307 -0.009,-0.119 -1.48692,-0.371 -0.49029,-0.465 -0.28882,-1.061 1.21413,-0.07 3.28583,-0.861 4.94212,-5.543 1.62241,0.184\"},\"32001\":{\"name\":\"Churchill, NV\",\"path\":\"m 149.515,223.37814 0.61866,1.485 -1.34963,6.654 -0.50634,2.018 -0.16937,0.362 -0.23178,0.224 -0.12123,0.04 -0.13015,-0.03 -1.46195,0.285 -1.17313,0.553 -2.28208,1.551 -0.23355,0.267 -0.14263,0.353 0.0529,2.75177 -0.38158,1.74475 -1.32761,0.0585 -0.0963,0.635 0.16937,0.61 -1.64737,0.09 -15.31664,-3.693 0.20147,-0.841 -1.23018,-2.066 -0.81121,-1.197 -1.02871,-1.64 -1.64738,-2.86 0.73098,-2.922 1.14995,-2.533 0.61866,-1.698 -0.47425,0.186 -1.92906,1.214 0.43502,-1.07 0.52238,-2.417 -0.15333,-0.828 0.4582,-3.152 0.23356,-0.971 10.51715,2.621 6.05997,1.356 5.19885,1.222 6.87831,1.64\"},\"32027\":{\"name\":\"Pershing, NV\",\"path\":\"m 156.32913,212.46514 -6.81413,10.913 -6.87831,-1.64 -5.19885,-1.222 -6.05997,-1.356 -10.51715,-2.621 -1.94511,-0.467 2.93995,-11.659 0.43502,0.1 2.53881,-9.924 8.76637,2.161 -0.57765,2.364 19.22825,4.53 -0.90748,3.914 5.64813,1.319 0.13728,0.06 -0.007,0.143 -0.78803,3.391\"},\"32029\":{\"name\":\"Storey, NV\",\"path\":\"m 117.74248,224.79314 -4.94212,5.543 -3.28583,0.861 -1.21413,0.07 1.39064,-1.576 0.72206,-2.596 -0.21751,-0.633 0.0642,-1.132 2.685,-0.332 1.32646,0.136 1.78287,0.05 0.82903,-0.129 0.85935,-0.264\"},\"32031\":{\"name\":\"Washoe, NV\",\"path\":\"m 129.81072,171.16314 0.58835,0.151 -0.81299,3.071 -1.50296,5.986 -0.60974,4.035 -0.61152,2.443 -0.42611,1.028 -0.41719,0.45 -1.10003,4.38 -0.42611,1.799 0.33697,0.08 -2.53881,9.924 -0.43502,-0.1 -2.93995,11.659 1.94511,0.467 -0.23356,0.971 -0.4582,3.152 0.15333,0.828 -0.52238,2.417 -0.43502,1.07 -1.62241,-0.184 -0.85935,0.264 -0.82903,0.129 -1.78287,-0.05 -1.32646,-0.136 -2.685,0.332 -0.0642,1.132 0.21751,0.633 -0.72206,2.596 -1.39064,1.576 -5.48768,0.626 0.85935,-3.383 0.77911,-2.884 1.64024,-6.212 0.35301,-1.31 1.73473,-6.508 1.12499,-4.277 0.009,-0.02 0.32983,-1.294 1.03585,-4.008 2.06456,-8.221 1.83279,-7.135 4.70143,-18.16 10.53319,2.683\"},\"32013\":{\"name\":\"Humboldt, NV\",\"path\":\"m 130.39907,171.31414 9.02311,2.275 9.61858,2.211 19.42972,4.418 0.12836,0.05 -6.89436,30.632 -3.86526,-0.86 -1.51009,2.427 0.78803,-3.391 0.007,-0.143 -0.13728,-0.06 -5.64813,-1.319 0.90748,-3.914 -19.22825,-4.53 0.57765,-2.364 -8.76637,-2.161 -0.33697,-0.08 0.42611,-1.799 1.10003,-4.38 0.41719,-0.45 0.42611,-1.028 0.61152,-2.443 0.60974,-4.035 1.50296,-5.986 0.81299,-3.071\"},\"36019\":{\"name\":\"Clinton, NY\",\"path\":\"m 888.65722,106.38814 -0.025,0.394 0.623,0.63939 0.16872,0.83409 -0.32883,1.07204 0.0389,0.96389 1.00415,0.71828 -0.11906,1.78838 0.0825,1.59369 0.13199,0.89134 0.28669,0.9659 0.26564,0.224 0.46711,0.273 -1.93619,0.69 0.0624,0.428 -0.30309,0.843 -1.11786,0.788 -1.42986,0.892 -1.24623,0.264 -2.51563,0.909 -0.56338,-1.64 -0.58657,-1.559 -1.22839,-2.852 -2.08953,-5.119 -0.40114,-1.077 2.39439,-0.691 3.94549,-1.004 4.41974,-1.23\"},\"36031\":{\"name\":\"Essex, NY\",\"path\":\"m 882.76661,121.56014 2.51563,-0.909 1.24623,-0.264 1.42986,-0.892 1.11786,-0.788 0.30309,-0.843 -0.0624,-0.428 1.93619,-0.69 0.76486,0.924 0.22999,0.499 0.29774,0.804 0.009,0.01 0.025,0.25 -0.17599,1.38105 0.62531,2.37895 -0.67392,1.922 -0.009,1.902 0,0.749 0.0392,0.765 0,0 0.50652,0.36255 1.44567,4.24245 0.27991,0.507 -0.92174,0.338 -9.66672,3.703 -0.0161,-0.868 -0.0963,-0.337 -1.82566,-0.353 -0.59192,0.266 -0.19255,0.126 -0.15511,0.266 -2.58694,-2.106 1.06972,-1.299 -1.19809,-3.295 2.93639,-1.086 -2.18936,-5.874 3.58356,-1.373\"},\"36073\":{\"name\":\"Orleans, NY\",\"path\":\"m 822.76591,164.99114 -1.09468,0.249 -5.69627,1.095 -0.89144,0.216 -0.98949,-5.522 7.70735,-1.309 0.96453,5.271\"},\"36037\":{\"name\":\"Genesee, NY\",\"path\":\"m 822.76591,164.99114 1.50129,-0.26837 -0.44407,2.2094 0.82553,-0.12503 0.19073,1.206 -0.19434,2.98 -8.43654,1.478 -0.93065,-5.013 -0.19434,-0.907 0.89144,-0.216 5.69627,-1.095 1.09468,-0.249\"},\"36121\":{\"name\":\"Wyoming, NY\",\"path\":\"m 816.20851,172.47114 8.43654,-1.478 0.82904,4.42 -0.30665,1.189 -0.61688,0.539 -0.13906,0.781 -0.10341,0.825 0.0232,0.07 0.41184,0.193 -4.47678,0.852 -2.53486,0.61664 -0.10736,-0.47964 -1.02158,-5.553 -0.41898,0.07 -0.33696,-1.985 0.36192,-0.07\"},\"36051\":{\"name\":\"Livingston, NY\",\"path\":\"m 824.83939,168.01314 2.94708,-0.587 0.19255,0.16 0.0802,0.145 -0.0945,0.635 -0.016,0.05 -0.4261,0.1 -0.025,0.03 0.041,0.06 2.00217,-0.376 0.91461,-0.275 0.25851,0.209 0.15155,0.241 0.25673,0.595 0.19968,0.868 0,0.03 -0.58656,0.119 0.513,1.97742 -0.5023,0.16058 0.61865,2.025 1.64559,-0.289 0.37084,0.997 0.20859,1.084 -2.70945,0.61912 0.15205,1.10178 -0.98566,0.17094 0.15204,1.27419 -1.96115,0.298 -0.19255,-0.981 -3.30188,0.562 -0.41184,-0.193 -0.0232,-0.07 0.10341,-0.825 0.13906,-0.781 0.61688,-0.539 0.30665,-1.189 -0.82904,-4.419 0.19434,-2.981\"},\"36093\":{\"name\":\"Schenectady, NY\",\"path\":\"m 887.60532,155.36514 0.63292,-0.1 2.21789,0.609 0.73811,0.532 0.19433,0.545 1.47087,1.246 0.11232,0.06 0.21751,-0.02 -5.8175,2.531 -0.13379,0.61639 -1.2065,0.16131 -0.3326,-0.75009 0.38254,-0.91261 -0.43012,-0.295 -0.0321,-0.06 0.0571,-0.307 2.38548,-2.587 -0.45642,-1.269\"},\"36057\":{\"name\":\"Montgomery, NY\",\"path\":\"m 887.39851,154.76214 0.20681,0.603 0.45642,1.269 -2.38548,2.587 -0.0571,0.307 0.0321,0.06 -1.15709,0.61 -1.84883,0.651 -1.95938,-0.491 -1.50295,-0.06 -2.05744,-0.33 -0.89143,-4.163 3.88131,0.58 0.87539,-0.193 6.40763,-1.439\"},\"36035\":{\"name\":\"Fulton, NY\",\"path\":\"m 875.7849,150.26214 3.19846,0.644 3.12229,-0.95368 0.47698,0.5408 1.63062,-0.26878 -0.0492,-0.85572 0.19363,-0.24854 0.90856,-0.28808 2.13231,5.93 -6.40763,1.439 -0.87539,0.193 -3.88131,-0.58 -0.35324,-0.99377 0.74184,-1.91364 -0.83788,-2.64459\"},\"36099\":{\"name\":\"Seneca, NY\",\"path\":\"m 844.34042,163.27214 -0.10341,1.503 0.77198,3.897 0.0963,0.433 0.36014,1.093 0.082,0.17 0.1248,0.176 1.31933,1.632 1.821,1.32884 -1.96542,0.51016 -3.26265,0.796 -0.74325,-3.11594 -1.00288,-0.65617 -0.55199,-1.01689 -0.60261,-2.227 0.025,-0.112 0.0392,-0.05 0.19433,-0.1 -0.65075,-3.18 4.0489,-1.086\"},\"36069\":{\"name\":\"Ontario, NY\",\"path\":\"m 840.29152,164.35814 0.65075,3.18 -0.19433,0.1 -0.0392,0.05 -0.025,0.112 0.60261,2.227 -5.59999,1.196 -0.2817,0.731 -0.0802,0.476 -0.11233,1.091 0.42611,2.067 -2.04852,0.385 -0.20859,-1.084 -0.37084,-0.997 -1.64559,0.289 -0.61865,-2.025 0.5023,-0.16058 -0.513,-1.97742 0.58656,-0.12 0,-0.03 -0.19968,-0.868 -0.25673,-0.595 -0.15155,-0.241 -0.25851,-0.209 1.61349,-0.297 -0.44928,-2.065 1.8738,-0.369 2.02534,-0.522 1.84705,-0.378 0.13728,0.618 2.78841,-0.577\"},\"36123\":{\"name\":\"Yates, NY\",\"path\":\"m 841.28636,170.02214 0.55199,1.01689 1.00288,0.65617 0.74325,3.11594 0.20729,1.008 0.22091,1.01852 -1.2896,0.20691 -0.56816,-0.49197 -1.80813,0.27454 -0.65788,-0.128 -0.1141,-0.104 -0.2086,-1.037 -0.0553,-0.53 0.009,-0.192 -3.68163,0.747 -0.42611,-2.067 0.11233,-1.091 0.0802,-0.476 0.2817,-0.731 5.59999,-1.196\"},\"36097\":{\"name\":\"Schuyler, NY\",\"path\":\"m 843.58448,174.81114 3.26265,-0.796 0.39402,1.543 0.50633,1.961 0.016,0.403 0.3958,2.016 1.20522,-0.208 0.15867,0.77 -0.30665,0.419 -0.73811,0.06 -0.85756,-0.207 -0.21038,-0.893 -1.75969,0.36 -2.04139,0.563 0.0392,0.202 -2.03068,0.562 -0.17829,0.03 -0.61866,-2.635 -0.47424,-2.131 1.80813,-0.27454 0.56816,0.49197 1.2896,-0.20691 -0.22091,-1.01852 -0.20729,-1.008\"},\"36109\":{\"name\":\"Tompkins, NY\",\"path\":\"m 846.99155,172.17614 3.3928,-0.788 0.0642,0.185 3.15746,-0.779 1.23732,4.844 -0.51636,0.47913 0.27234,0.52121 0.65569,-0.085 0.26007,0.65973 -0.0657,0.56664 0.28334,0.38047 -0.79814,0.17215 -0.14655,-0.27002 -0.44655,0.13005 -1.58685,0.0137 0.2516,1.24708 -0.9818,0.24641 -0.33019,-0.42846 -0.98179,0.19987 -1.34785,0.259 -1.20522,0.208 -0.3958,-2.016 -0.016,-0.403 -0.50633,-1.961 -0.39402,-1.543 1.96542,-0.51016 -1.821,-1.32884\"},\"36011\":{\"name\":\"Cayuga, NY\",\"path\":\"m 844.05873,154.03114 0.73097,2.635 0.18159,1.06844 0.67954,-0.17644 1.41203,-0.337 0.17116,0.651 0.47424,1.777 0.22464,0.972 -0.025,0.02 -0.29774,0 -0.0874,0.103 -0.009,0.122 0.56338,2.073 0.46685,-0.0983 0.9648,3.55331 1.51722,-0.403 1.15887,0.747 0.51346,0.532 0.0553,0.201 0.85221,3.311 -3.15746,0.779 -0.0642,-0.185 -3.3928,0.788 -1.31933,-1.632 -0.1248,-0.176 -0.082,-0.17 -0.36014,-1.092 -0.0963,-0.434 -0.77198,-3.897 0.10341,-1.503 -1.62241,-7.199 1.34072,-2.042\"},\"36067\":{\"name\":\"Onodaga, NY\",\"path\":\"m 855.39778,157.18914 0.31913,0.314 0.47229,1.95589 0.71154,-0.35689 0.78624,2.186 1.20522,4.426 -6.13842,1.769 -0.0553,-0.201 -0.51346,-0.532 -1.15887,-0.747 -1.51722,0.403 -0.9648,-3.55331 -0.46685,0.0983 -0.56338,-2.074 0.009,-0.121 0.0874,-0.103 0.29774,0 0.025,-0.02 -0.22464,-0.972 -0.47424,-1.778 2.56668,-0.60376 0.74337,0.2921 0.27863,-0.6443 0.63598,0.39949 -0.0478,-1.0513 2.54807,0.49077 1.43878,0.435\"},\"36023\":{\"name\":\"Cortland, NY\",\"path\":\"m 858.8922,165.71414 0.42611,1.496 1.92193,6.87 -4.37159,1.06 -2.02534,0.498 -1.23732,-4.844 -0.85221,-3.311 6.13842,-1.769\"},\"36017\":{\"name\":\"Chenango, NY\",\"path\":\"m 859.31831,167.21014 6.41298,-1.825 1.11786,-0.152 2.14479,-0.611 0.16759,10.14 0.54021,2.702 -1.89697,0.408 -1.7276,0.371 -0.28922,-1.33739 -3.01266,0.79739 -0.24247,0.163 -0.20146,-0.33 -1.09112,-3.455 -1.92193,-6.87\"},\"36053\":{\"name\":\"Madison, NY\",\"path\":\"m 855.39778,157.18914 1.91837,0.249 1.69907,-0.756 0.82547,0.09 0.39401,0.209 1.02872,0.587 0.51257,0.3395 0.63221,0.53888 0.27332,0.57875 0.6322,-0.0991 0.60261,2.04 0.0642,0.323 1.84584,-0.22001 0.25082,1.37501 3.06119,-0.867 -0.14442,3.045 -2.14479,0.612 -1.11786,0.152 -6.41298,1.825 -0.42611,-1.496 -1.20522,-4.426 -0.78624,-2.186 -0.71154,0.35639 -0.47229,-1.95639 -0.31913,-0.313\"},\"36065\":{\"name\":\"Oneida, NY\",\"path\":\"m 867.65144,144.30914 1.97721,6.29 -0.36739,0.72788 -0.62301,0.40408 0.1609,0.91533 1.47311,0.25071 -0.90926,2.805 -0.65966,1.686 0.98236,3.867 -0.54734,0.321 -3.06119,0.867 -0.25082,-1.37501 -1.84584,0.22001 -0.0642,-0.323 -0.60261,-2.04 -0.6322,0.0991 -0.27332,-0.57875 -0.63221,-0.53888 -0.51257,-0.3395 -1.02872,-0.587 -0.39401,-0.208 -0.82547,-0.09 -1.69907,0.756 -0.4475,-3.769 -0.41898,-0.05 0.41363,-3.833 1.0091,0.1 3.87061,0.355 5.90843,-5.93\"},\"36049\":{\"name\":\"Lewis, NY\",\"path\":\"m 859.2149,131.94914 5.04552,1.727 3.39102,10.633 -5.90843,5.93 -3.87061,-0.355 -1.36746,-4.869 -0.60057,-2.03202 -1.20157,0.29525 0.13995,-0.50967 -0.23567,-1.42191 1.32049,-0.50967 2.26993,-2.37277 0.75627,-0.18663 -0.34409,-0.82326 0.76033,-0.23543 -0.0909,-1.80589 -1.10182,-0.532 1.03763,-2.932\"},\"36043\":{\"name\":\"Herkimer, NY\",\"path\":\"m 864.26042,133.67614 2.03923,0.68546 3.18458,-1.22346 4.25215,12.842 -0.74881,3.648 2.79733,0.634 0.83788,2.64459 -0.74184,1.91364 0.35324,0.99377 0.89143,4.163 -2.07347,-0.362 0.11232,1.519 -0.19968,0.234 -3.6014,-1.166 -0.39223,1.237 -1.14995,0.337 -0.1355,-0.521 -0.98236,-3.867 0.65966,-1.686 0.90926,-2.805 -1.47311,-0.25071 -0.1609,-0.91533 0.62301,-0.40408 0.36739,-0.72788 -1.97721,-6.29 -3.39102,-10.633\"},\"36077\":{\"name\":\"Otsego, NY\",\"path\":\"m 879.18305,160.30714 -0.0892,0.907 0.0963,0.635 0.0802,0.307 1.03049,2.104 0.21573,0.547 -0.36192,1.535 -0.40828,1.219 -2.1537,0.621 -2.8936,2.603 -1.46374,1.382 -0.68997,0.804 -1.63311,1.237 -0.42432,0.169 -1.32646,0.385 -0.16759,-10.14 0.14442,-3.046 0.54734,-0.321 0.1355,0.521 1.14995,-0.337 0.39223,-1.237 3.6014,1.166 0.19968,-0.234 -0.11232,-1.519 2.07347,0.362 2.05744,0.33\"},\"36095\":{\"name\":\"Schoharie, NY\",\"path\":\"m 885.6513,159.59214 0.43012,0.295 -0.38254,0.91261 0.3326,0.75009 1.2065,-0.16131 0.13379,-0.61639 0.32091,0.225 0.17651,1.141 -0.12837,1.182 -0.1141,2.161 -0.0143,2.597 0.0874,0.28 0.14441,-0.06 0.01,1.08287 -2.85167,0.83713 -2.81435,-0.82505 -2.44155,-1.83695 0.40828,-1.219 0.36192,-1.535 -0.21573,-0.547 -1.03049,-2.104 -0.0802,-0.307 -0.0963,-0.635 0.0892,-0.907 1.50295,0.06 1.95938,0.491 1.84883,-0.651 1.15709,-0.61\"},\"36001\":{\"name\":\"Albany, NY\",\"path\":\"m 893.18927,158.24114 1.38155,-1.20058 0.29069,0.54538 0.47255,0.0362 -0.041,7.595 -7.44883,3.086 -0.14441,0.06 -0.0874,-0.279 0.0143,-2.598 0.1141,-2.161 0.12837,-1.182 -0.17651,-1.141 -0.32091,-0.225 5.8175,-2.531\"},\"36091\":{\"name\":\"Saratoga, NY\",\"path\":\"m 884.32663,146.26914 4.35376,-1.648 0.2086,0.266 1.0305,1.599 0.32805,1.245 0.16402,0.09 1.08933,0.296 1.36568,-1.318 0.98236,-1.237 0.12837,0.201 1.32467,4.308 0.0731,0.433 0.0713,1.576 -0.0802,0.811 -0.2086,1.02 0.1765,3.712 -0.47255,-0.0362 -0.29069,-0.54539 -1.38155,1.20058 -0.21751,0.02 -0.11232,-0.06 -1.47087,-1.246 -0.19433,-0.546 -0.73811,-0.531 -2.21789,-0.61 -0.63292,0.1 -0.20681,-0.603 -2.13231,-5.93 -0.93957,-2.563\"},\"36113\":{\"name\":\"Warren, NY\",\"path\":\"m 884.02889,137.49314 9.66672,-3.703 -0.041,1.871 -0.10341,1.39 -0.92352,2.25 -0.29952,0.797 -0.17473,0.835 -0.0178,0.153 0.0481,0.321 1.6652,4.154 -0.98236,1.237 -1.36568,1.318 -1.08933,-0.296 -0.16402,-0.09 -0.32805,-1.245 -1.0305,-1.599 -0.2086,-0.266 -4.35376,1.648 -2.75454,-7.827 2.4568,-0.949\"},\"36041\":{\"name\":\"Hamilton, NY\",\"path\":\"m 878.43602,129.89314 1.19809,3.295 -1.06972,1.299 2.58694,2.106 0.15511,-0.266 0.19255,-0.126 0.59192,-0.266 1.82566,0.353 0.0963,0.337 0.0161,0.868 -2.4568,0.949 2.75454,7.827 0.93957,2.563 -0.90856,0.28808 -0.19363,0.24854 0.0492,0.85572 -1.63062,0.26878 -0.47698,-0.5408 -3.12229,0.95368 -3.19846,-0.644 -2.79733,-0.634 0.74881,-3.648 -4.25215,-12.842 4.99026,-1.824 3.96153,-1.421\"},\"36033\":{\"name\":\"Franklin, NY\",\"path\":\"m 882.76661,121.56014 -3.58356,1.373 2.18936,5.874 -2.93639,1.086 -3.96153,1.421 -0.2193,-1.639 -0.58478,-1.743 -3.25374,-9.314 -2.04316,-6.074 -1.24445,0.28 -0.39223,-1.173 0.42432,-0.02 6.57523,-1.253 2.29633,-0.515 1.67947,-0.49 0.18542,-0.06 0.40114,1.077 2.08953,5.119 1.22839,2.852 0.58657,1.559 0.56338,1.64\"},\"36089\":{\"name\":\"St. Lawrence, NY\",\"path\":\"m 866.73683,111.65114 0.39223,1.173 1.24445,-0.28 2.04316,6.074 3.25374,9.314 0.58478,1.743 0.2193,1.639 -4.99026,1.824 -3.18458,1.22346 -2.03923,-0.68546 -5.04552,-1.727 -1.19809,-0.457 -3.51938,-1.207 -2.84368,-1.075 0.50455,-1.72 0.46711,-1.15 0.85222,-1.398 2.5709,-3.987 0.74702,-1.035 5.87277,-6.67 0.29774,-0.209 2.15371,-1.244 0.40293,-0.06 1.21413,-0.08\"},\"36045\":{\"name\":\"Jefferson, NY\",\"path\":\"m 851.65375,129.21014 2.84368,1.075 3.51938,1.207 1.19809,0.457 -1.03763,2.932 1.10182,0.532 0.0909,1.80589 -0.76033,0.23543 0.34409,0.82326 -0.75627,0.18663 -2.26993,2.37277 -1.32049,0.50967 0.23567,1.42191 -0.13995,0.50967 1.20157,-0.29525 0.60057,2.03202 -3.34288,0.385 -0.73811,0.337 0.15333,0.612 -2.93995,0.362 -1.0626,-2.717 -1.07544,-0.42424 0.41766,-0.63147 0.58942,-0.0423 0.88107,-0.57775 0.3212,-0.66228 0.0731,-0.128 -0.0339,-0.346 -0.35301,-0.916 -0.11232,-0.145 -0.13015,-0.04 -1.4049,-0.119 -0.99484,-0.419 -1.56001,-1.123 -0.24782,-0.644 -0.0107,-0.264 0.0339,-0.517 0.3851,-1.629 3.67449,-3.907 2.62617,-2.248\"},\"36075\":{\"name\":\"Oswego, NY\",\"path\":\"m 849.63733,146.71114 2.93995,-0.362 -0.15333,-0.612 0.73811,-0.337 3.34288,-0.385 1.36746,4.869 -1.0091,-0.1 -0.41363,3.833 0.41898,0.05 0.4475,3.769 -1.91837,-0.249 -1.43878,-0.435 -2.54807,-0.49077 0.0478,1.0513 -0.63598,-0.39949 -0.27863,0.6443 -0.74337,-0.2921 -2.56668,0.60476 -0.17116,-0.651 -1.41203,0.337 -0.67954,0.17644 -0.18159,-1.06844 -0.73097,-2.635 0.77376,-0.868 2.02356,-2.138 0.10519,-0.06 0.66679,-0.209 0.44037,0.202 0.24247,-0.02 0.54556,-0.137 0.92531,-0.58 0.0963,-0.112 0.11945,-0.305 0.0571,-0.369 0.0321,-0.355 -0.0481,-0.594 -0.19255,-1.117 -0.20859,-0.658\"},\"36117\":{\"name\":\"Wayne, NY\",\"path\":\"m 842.71801,156.07314 1.62241,7.199 -4.0489,1.086 -2.78841,0.577 -0.13728,-0.618 -1.84705,0.378 -2.02534,0.522 -1.14995,-5.497 0.97344,-0.272 2.77058,-0.708 0.51525,-0.112 0.76307,0 0.58657,0.112 1.24622,-0.227 0.0963,-0.03 2.39439,-1.405 0.38688,-0.29 0.64184,-0.722\"},\"36055\":{\"name\":\"Monroe, NY\",\"path\":\"m 822.76591,164.99114 -0.96453,-5.271 0.68997,-0.1 2.65291,0.05 1.71155,0.41 0.78625,0.442 0.12123,0.06 1.41382,0.579 0.46711,0.08 0.27991,-0.03 2.41936,-1.494 1.14995,5.497 -1.8738,0.369 0.44928,2.065 -1.61349,0.297 -0.91461,0.275 -2.00217,0.376 -0.041,-0.06 0.025,-0.03 0.4261,-0.1 0.016,-0.05 0.0945,-0.634 -0.0802,-0.145 -0.19255,-0.16 -2.94708,0.586 -0.19073,-1.206 -0.82553,0.12503 0.44407,-2.2094 -1.50129,0.26837\"},\"36063\":{\"name\":\"Niagara, NY\",\"path\":\"m 815.08352,166.55114 0.19434,0.907 -0.37976,0.202 -1.74364,0.57 -3.01103,0.87842 -0.7392,1.36032 -0.80804,0.12114 -1.15226,-1.18688 -1.36925,0.257 -0.53129,-0.104 -0.19077,-0.338 -0.77198,-3.882 3.65488,-1.961 3.11111,-1.51 1.37459,-0.538 0.93957,-0.298 0.10519,0 0.32805,0 0.98949,5.522\"},\"36029\":{\"name\":\"Erie, NY\",\"path\":\"m 815.27786,167.45814 0.93065,5.013 -0.36192,0.07 0.33696,1.985 0.41898,-0.07 1.02158,5.553 -2.14479,0.981 -1.84884,0.989 -1.92371,1.277 -0.40828,0.168 -0.41006,0.105 -0.98771,-0.507 -2.1965,-1.237 -0.38418,-0.67809 -1.00289,0.18809 0.0321,-0.483 0.2086,-0.596 0.72206,-1.902 0.45107,-0.378 1.10894,-0.916 0.41185,-0.193 0.68818,-0.9 0.19434,-0.362 0,-0.184 -0.60261,-1.334 -0.94136,-1.704 -0.21751,-0.282 -0.25495,-0.16 -0.70958,-0.128 -0.72206,-0.305 -0.17651,-0.193 -0.13728,-0.499 -0.29774,-1.109 1.36925,-0.257 1.15226,1.18688 0.80804,-0.12114 0.7392,-1.36032 3.01103,-0.87842 1.74364,-0.57 0.37976,-0.202\"},\"36013\":{\"name\":\"Chautauqua, NY\",\"path\":\"m 807.70422,181.77814 2.20363,12.263 -9.19248,1.629 -0.25673,0.05 -2.28207,0.394 -0.52951,-3.011 -0.44216,-2.549 -0.098,-0.61 0.6757,-0.465 1.08399,-0.917 1.46373,-1.376 1.35855,-1.355 0.33696,-0.467 0.28883,-0.637 0.74702,-0.964 1.64916,-1.3 1.60636,-1.173 1.00289,-0.18809 0.38418,0.67809\"},\"36009\":{\"name\":\"Cattaraugus, NY\",\"path\":\"m 817.62411,180.00214 0.10736,0.47964 2.53486,-0.61664 2.24463,11.853 -4.83336,0.889 -4.64259,0.902 -0.7399,0.129 -2.38726,0.403 -2.20363,-12.263 2.1965,1.237 0.98771,0.507 0.41006,-0.105 0.40828,-0.168 1.92371,-1.277 1.84884,-0.989 2.14479,-0.981\"},\"36003\":{\"name\":\"Allegany, NY\",\"path\":\"m 824.74311,179.01314 3.30188,-0.562 0.19255,0.981 1.96115,-0.298 1.63846,10.808 -7.63425,1.44 -1.69194,0.336 -2.24463,-11.853 4.47678,-0.852\"},\"36101\":{\"name\":\"Steuben, NY\",\"path\":\"m 833.58971,175.96814 2.04852,-0.385 3.68163,-0.747 -0.009,0.192 0.0553,0.53 0.2086,1.037 0.1141,0.104 0.65788,0.128 0.47424,2.131 0.61866,2.635 0.17829,-0.03 2.03068,-0.562 1.26228,6.29 -10.73466,2.18 -2.33913,0.473 -1.63846,-10.808 -0.15204,-1.27419 0.98566,-0.17094 -0.15206,-1.10178 2.70946,-0.61912\"},\"36015\":{\"name\":\"Chemung, NY\",\"path\":\"m 850.7124,179.47114 0.9984,6.445 -6.15625,1.23 -0.64361,0.143 -1.26228,-6.29 -0.0392,-0.202 2.04139,-0.563 1.75969,-0.36 0.21038,0.893 0.85756,0.207 0.73811,-0.06 0.30665,-0.419 -0.15867,-0.77 1.34785,-0.259\"},\"36107\":{\"name\":\"Tioga, NY\",\"path\":\"m 856.86865,175.14014 0.13014,0.17 1.37995,2.956 0.041,0.144 0.18542,0.901 0.0464,0.738 -0.47425,0.13 1.06794,4.186 -0.68106,0.144 -6.85335,1.407 -0.9984,-6.445 0.98179,-0.19987 0.33019,0.42846 0.9818,-0.24641 -0.2516,-1.24708 1.58685,-0.0137 0.44655,-0.13005 0.14655,0.27002 0.79814,-0.17215 -0.28334,-0.38047 0.0657,-0.56664 -0.26007,-0.65973 -0.65569,0.085 -0.27234,-0.52121 0.51636,-0.47913 2.02534,-0.498\"},\"36007\":{\"name\":\"Broome, NY\",\"path\":\"m 861.24024,174.08014 1.09112,3.455 0.20146,0.33 0.24247,-0.163 3.01266,-0.79739 0.28922,1.33739 1.7276,-0.371 1.89697,-0.408 1.95046,4.202 -2.05565,0.456 -10.35134,2.243 -1.06794,-4.186 0.47425,-0.13 -0.0464,-0.738 -0.18542,-0.901 -0.041,-0.144 -1.37995,-2.956 -0.13014,-0.17 4.37159,-1.06\"},\"36025\":{\"name\":\"Delaware, NY\",\"path\":\"m 879.74643,167.56114 2.44155,1.83695 2.81435,0.82505 0.28704,0.07 -1.03584,3.745 1.58319,0.402 -4.66043,4.692 -5.23985,5.103 -1.96122,0.0389 -0.68278,-1.53493 -0.30487,-0.289 -1.01267,-0.713 -0.3227,-0.07 -1.95046,-4.202 -0.54021,-2.702 1.32646,-0.385 0.42432,-0.169 1.63311,-1.237 0.68997,-0.804 1.46374,-1.382 2.8936,-2.603 2.1537,-0.621\"},\"36105\":{\"name\":\"Sullivan, NY\",\"path\":\"m 875.93644,184.23714 5.23985,-5.103 2.35518,0.715 3.79929,1.214 -0.34588,1.036 -0.65787,1.51 -0.33697,0.859 1.64559,0.765 1.86488,0.811 0.74703,1.109 -0.58657,0.523 -0.32091,0.692 -0.44216,1.157 -4.57127,1.292 -0.12124,0.1 -0.016,0.06 0.2086,0.87 0.22464,0.503 -0.75415,0.08 -1.35142,0.07 -0.29774,-0.137 -1.831,-0.95 -0.52239,-0.497 -0.7381,-0.723 -0.45998,-1.053 -2.73136,-4.901\"},\"36039\":{\"name\":\"Greene, NY\",\"path\":\"m 895.29306,165.21714 0.0891,0 0.0571,0.04 0.13015,0.378 0.63292,3.199 0.0642,0.577 -0.041,0.314 -0.65075,1.631 -0.50633,1.6 -0.0713,0.337 -1.6545,-0.699 -0.74702,0.242 -0.14442,1.79 -2.64221,0.339 -1.29615,0.16 -2.67608,-0.682 -1.58319,-0.402 1.03584,-3.745 -0.28704,-0.07 2.85162,-0.84551 -0.12421,-1.03633 7.56332,-3.12416\"},\"36061\":{\"name\":\"New York, NY\",\"path\":\"m 901.25781,201.41797 -0.45898,2.21094 -0.15137,2.16308 0.0459,0.2334 -0.003,0.1897 0.10306,0.004 0.12695,-0.1543 -0.0125,-0.16979 -0.0207,-0.10267 0.23242,-0.26465 0.26758,-0.15429 0.0918,-0.625 0.0234,-0.27149 0.34375,-0.81054 0.22852,-0.42188 -0.34961,-0.11719 -0.28125,-0.58789 0.17383,-1.08789 z\"},\"36111\":{\"name\":\"Ulster, NY\",\"path\":\"m 894.94005,174.45814 0.33161,3.938 0.96702,0.43776 0.18755,2.4124 0.36192,0.738 0.36088,3.57684 -1.62242,0.603 -0.0191,-0.74495 -1.61347,0.31618 0.13683,0.60613 -0.30487,0.0605 -0.75896,0.20384 -1.2391,-0.69609 -1.48043,1.24641 -0.74703,-1.109 -1.86488,-0.811 -1.64559,-0.765 0.33697,-0.859 0.65787,-1.51 0.34588,-1.036 -3.79929,-1.214 -2.35518,-0.715 4.66043,-4.692 2.67608,0.682 1.29615,-0.16 2.64221,-0.339 0.14442,-1.79 0.74702,-0.242 1.6545,0.699 -0.0571,1.166\"},\"36005\":{\"name\":\"Bronx, NY\",\"path\":\"m 901.32986,200.56414 2.44966,0.291 0.0865,0.31583 0.30677,0.0197 -0.035,0.26234 -0.14332,0.26209 -0.13036,0.012 -0.12312,-0.21047 -0.14711,-0.17795 -0.21742,0.12614 0.14562,0.61339 0.11504,-0.0101 0.1919,0.17217 0.20862,0.19963 -0.0435,0.0342 -0.32152,-0.0825 -0.2734,0.0707 -0.0692,0.13902 -0.23642,-0.13608 -0.095,0.24687 -0.26483,-0.0294 -0.0453,0.21174 -0.003,0.28395 -0.14147,0.0874 -0.17895,-0.0487 -0.0239,-0.22101 0.0732,-0.0652 -0.12182,-0.0739 -0.12106,0.1037 -0.0972,0.17723 -0.34928,-0.11812 -0.2821,-0.58834 0.1747,-1.0871 -0.35856,-0.0332 0.0713,-0.74685\"},\"36047\":{\"name\":\"Kings, NY\",\"path\":\"m 900.90956,206.00866 0.20891,-0.58893 0.26912,-0.1541 0.09,-0.62431 0.2765,-0.0895 0.4227,0.30341 0.4052,0.45268 0.29663,0.24459 0.38708,-0.33446 0.4052,0.61553 0.007,0.25364 0.10662,0.27173 0.13022,-0.0768 0.37273,0.34163 -0.007,0.52257 -0.40004,0.62459 -0.98993,0.27517 -1.14331,0.46102 -0.55569,0.0626 -0.007,-0.23505 0.32263,-0.11176 0.004,-0.23236 -0.37477,-0.12707 -0.25937,0.009 -0.24136,-0.61254 0.31597,-0.72319 -0.19184,-0.33685 z\"},\"36087\":{\"name\":\"Rockland, NY\",\"path\":\"m 898.09038,191.71814 0.55626,1.166 1.02693,1.406 0.91639,1.036 0.10519,0.264 0.60796,3.09 -6.08137,-1.819 -0.40114,-0.121 3.26978,-5.092 0,0.07\"},\"36059\":{\"name\":\"Nassau, NY\",\"path\":\"m 907.92188,198.98438 -0.40626,0.1875 -0.33007,0.0566 -1.02344,0.57226 -0.35156,0.66406 0.45898,1.23828 -0.69726,-0.83398 -0.59571,-0.0586 -0.27734,0.22461 -0.0508,0.36718 0.20117,0.23438 0.4375,-0.01 -0.11328,0.35157 -0.81445,-0.20508 -0.0156,0.58203 0.43359,0.5918 1.06055,0.47461 0.0684,0.50195 -0.36719,0.19531 0.38477,1.53516 -0.19531,0.22265 0.002,0.28907 -0.32227,0.2871 0.0645,0.23438 0.22265,0.0625 0.12891,-0.0176 0.22266,0.3125 -0.16993,0.0117 -0.0527,0.23633 0.77539,-0.11328 1.33984,-0.32617 0.85352,-0.27149 0.002,-0.32226 -0.61523,0.14648 -0.23633,0.20898 -0.30469,0.0117 -0.85351,0.36524 -0.72461,0.0508 0.77148,-0.39063 0.24024,-0.0566 1.04492,-0.51758 0.60156,-0.1582 0.34766,0.1836 0.77228,-0.60845 0.27329,-0.19426 0.2255,-0.12893 -0.13947,-0.16677 -0.27614,-0.24727 0.69335,-0.2539 0.34375,-0.20313 -1.71289,-4.37695 -0.33203,-0.10938 -0.3125,-0.20117 -0.0976,-0.2168 -0.40625,0.16407 0.0469,-0.28907 z m 3.18912,5.73293 -0.24876,0.39429 -0.53993,0.31037 -0.47657,0.41992 -0.51367,0.44336 -0.26953,0.16601 -0.16602,0.2793 0.0664,0.0606 0.74219,-0.50586 0.56836,-0.22852 1.11353,-0.6404 z\"},\"36071\":{\"name\":\"Orange, NY\",\"path\":\"m 897.14903,185.56114 -0.3392,2.57728 0.67794,0.93672 0.84269,0.74512 -0.24008,1.82788 -3.26978,5.092 -2.51563,-0.852 -6.31493,-2.209 -1.36746,-1.337 -0.22464,-0.503 -0.2086,-0.87 0.016,-0.06 0.12124,-0.1 4.57127,-1.292 0.44216,-1.157 0.32091,-0.692 0.58657,-0.523 1.48043,-1.24641 1.2391,0.69609 0.75896,-0.20384 0.30487,-0.0605 -0.13683,-0.60613 1.61347,-0.31618 0.0191,0.74495 1.62242,-0.603\"},\"36081\":{\"name\":\"Queens, NY\",\"path\":\"m 902.07378,203.13775 0.28447,0.16514 0.0216,0.19712 0.12733,0.017 0.0592,-0.15468 0.15616,-0.02 0.42078,0.28102 0.063,-0.11059 -0.18951,-0.37484 0.11515,-0.22406 0.16979,-0.0359 0.14067,-0.19805 0.25803,0.0563 0.2232,-0.0551 0.14278,0.11851 0.15611,-0.19232 0.47818,0.40384 0.0765,-0.17028 1.06147,0.47448 0.0683,0.50096 -0.36877,0.19638 0.38609,1.53392 -0.1966,0.22286 0.002,0.28908 -0.32063,0.28747 0.0634,0.23449 0.22233,0.0623 0.12962,-0.0171 0.22717,0.31556 -0.30596,0.19338 -0.19903,0.002 -1.03444,0.66659 -0.96811,0.69417 -0.64919,0.44472 -0.0157,-0.32387 0.48567,-0.39458 0.5154,-0.45272 0.40004,-0.62459 0.007,-0.52257 -0.37273,-0.34163 -0.13022,0.0768 -0.10662,-0.27173 -0.007,-0.25364 -0.4052,-0.61553 -0.38708,0.33446 -0.29663,-0.24459 -0.4052,-0.45268 -0.4227,-0.30341 -0.2765,0.0895 0.0234,-0.27078 0.34558,-0.8111 0.2272,-0.42169\"},\"36103\":{\"name\":\"Suffolk, NY\",\"path\":\"m 928.4765,187.7727 0.29512,0.14121 0.15585,-0.36379 0.33835,-0.25205 -0.51272,0.0444 z m -0.34191,0.55072 -0.701,0.0555 -0.74218,0.67773 -0.4375,0.082 -0.42774,1.26953 -0.71094,0.32227 -0.35742,0.80273 -0.70312,0.54102 -0.8125,1.34375 -1.77539,0.80469 -1.29297,0.50976 -1.98828,0.51367 -2.43946,0.60547 -1.36718,0.16992 -0.70508,0.37696 0.3457,0.83008 -1.0957,0.80859 -1.38086,-0.18945 -0.79492,0.16211 -0.65821,-0.27539 -0.39257,-0.11915 0.0977,0.81641 0.82617,-0.17969 0.0899,0.2461 -1.27149,0.23047 -0.16992,-0.44532 -0.92578,-0.0957 -0.15039,0.36328 1.05273,1.3711 1.71289,4.3789 0.92774,-0.39258 1.3457,-0.86328 0.54688,-0.82422 0.24218,0.17969 1.21094,-0.0332 0.0977,-0.63867 1.0664,-0.15235 0.76368,-0.70117 0.57226,-0.34961 0.75391,0.0137 0.23242,-0.48633 0.61328,-0.0957 0.16016,0.27735 0.51758,-0.19141 0.29101,-0.34375 0.3457,-0.19922 0.20118,-0.54688 0.65234,-0.0508 0.36914,-0.74218 0.56445,0.10351 0.51368,-0.32422 0.20312,0.11524 -1.41016,0.9707 0.0723,0.082 1.64062,-1.03906 1.81446,-1.23242 0.36498,-0.20438 0.25707,-0.20209 -0.0435,-0.10753 0.1174,-0.32553 -0.15302,-0.006 -0.25585,0.28806 -0.13314,-0.0433 0.0584,-0.54687 -0.12118,-0.13663 0.41997,-0.16553 0.52775,0.0189 0.084,0.31451 -0.44556,0.5439 0.0601,0.1078 1.14936,-0.81054 4.10742,-3.56641 1.82812,-1.51562 1.76172,-1.4668 0.2168,-0.49219 -0.89648,-0.0781 -0.78907,0.58984 -0.10547,0.69141 -0.27148,-0.18555 -0.50781,0.90234 -0.41407,0.1211 -0.37695,0.4082 -0.19141,0.39258 -0.25,0.002 -0.63085,-0.55859 -0.0781,-0.40821 -0.48437,-0.18164 -0.375,0.60157 -0.82422,-0.1211 -0.0274,0.8086 -0.22851,0.082 -0.11328,0.27344 -0.44336,0.0859 -0.4375,-0.66601 -0.31641,0.16211 0.34961,0.66211 -0.80664,0.27343 -0.33399,1.09375 -0.55273,0.47071 -0.17383,0.84179 -0.51758,0.4375 -1.26757,-0.0996 -0.75782,0.15039 0.0449,-0.38281 0.45703,-0.10547 0.375,-0.65625 0.0879,-0.52929 0.81836,-0.51758 0.0879,-0.48438 0.63281,0.32618 -0.31836,-0.73243 0.12891,-0.34179 0.78906,-0.15235 -0.0156,-0.3125 -0.61132,0.0273 0.36132,-0.77735 0.36914,-0.61328 0.2129,-0.48828 0.35937,-0.46875 0.49805,0.37695 0.52344,-0.51172 z m 2.00213,0.26056 0,0.56055 0.37695,0.18359 0.28516,-0.0137 0.31055,0.63282 0.16601,-0.12696 -0.10742,-0.99609 z m -3.1836,1.22266 -0.6914,1.0293 0.55664,0.48242 0.38476,-0.0156 0.34766,-0.34179 0.6836,0.32617 -0.0645,-0.58399 -0.27148,-0.49414 -0.64844,-0.11914 z m -5.38085,9.32617 -1.35743,0.97461 -0.48632,0.23242 -0.47461,0.34375 -0.24024,0.0488 -0.22461,0.24805 -0.41797,0.27734 -1.37109,1.20313 -1.42188,0.80468 -0.42773,0.28711 -0.44336,0.14649 -0.22461,0.28125 -0.64453,0.33008 -0.37891,0.0957 -0.21875,-0.0859 -0.28125,0.16602 0.0977,0.29297 0.84961,-0.19922 0.90234,-0.5957 0.5293,-0.29102 0.38477,-0.29297 1.38672,-0.74023 1.16992,-1.00977 1.13086,-0.81641 0.54101,-0.40429 1.72852,-1.1836 z m -7.64649,4.34961 -0.80273,0.49024 -1.03321,0.28906 -0.97851,0.45508 0.27539,0.79882 1.37109,-1.04492 0.27344,-0.22656 0.91797,-0.1543 0.43359,-0.27148 -0.10547,-0.21289 -0.14257,-0.0566 z\"},\"36119\":{\"name\":\"Westchester, NY\",\"path\":\"m 898.09038,191.71814 7.07086,-2.748 0.2817,1.623 1.61143,1.48311 -2.26396,2.33389 -1.25158,1.278 1.79713,2.312 -1.55644,2.855 -2.44966,-0.291 -0.0268,-1.884 -0.60796,-3.09 -0.10519,-0.264 -0.91639,-1.036 -1.02693,-1.406 -0.55626,-1.166\"},\"36079\":{\"name\":\"Putnam, NY\",\"path\":\"m 904.53367,185.29014 0.62757,3.68 -7.07086,2.748 0,-0.07 0.24008,-1.82788 -0.84269,-0.74512 0.5313,-1.303 5.70518,-2.266 0.80942,-0.216\"},\"36027\":{\"name\":\"Dutchess, NY\",\"path\":\"m 902.41384,173.36514 1.57427,8.743 0.54556,3.182 -0.80942,0.216 -5.70518,2.266 -0.5313,1.303 -0.67794,-0.93672 0.3392,-2.57728 -0.36088,-3.57684 -0.36192,-0.738 -0.18755,-2.4124 -0.96702,-0.43776 -0.33161,-3.938 0.22642,-0.1 0.21573,0 2.72066,0.65 0.84686,0.234 3.19134,-0.113 0.11232,-1.736 0.16046,-0.04\"},\"36021\":{\"name\":\"Columbia, NY\",\"path\":\"m 895.29306,165.21714 6.82839,-2.733 -0.25317,10.141 0.3851,0.779 -0.11232,1.736 -3.19134,0.113 -0.84686,-0.234 -2.72066,-0.651 -0.21573,0 -0.22642,0.1 0.0571,-1.166 0.0713,-0.337 0.50633,-1.6 0.65075,-1.631 0.041,-0.314 -0.0642,-0.577 -0.63292,-3.199 -0.13015,-0.378 -0.0571,-0.04 -0.0891,0\"},\"36083\":{\"name\":\"Rensselaer, NY\",\"path\":\"m 895.15756,153.91014 5.88169,-1.478 0.44574,1.9647 -0.34887,1.0319 0.68757,1.53861 0.44574,-0.13121 -0.14798,5.648 -6.82839,2.733 0.041,-7.595 -0.1765,-3.712\"},\"36115\":{\"name\":\"Washington, NY\",\"path\":\"m 894.61735,133.45214 0.59548,1.157 -0.31022,1.704 -0.0909,0.933 0.16224,1.342 0.0642,0.09 0.54556,0.226 -0.005,-1.532 1.07705,-0.15436 0.44863,0.90683 0.79749,0.26665 0.44493,1.12288 0.97345,4.525 1.71869,8.397 -5.88169,1.478 0.2086,-1.02 0.0802,-0.811 -0.0713,-1.576 -0.0731,-0.433 -1.32467,-4.308 -0.12837,-0.201 -1.6652,-4.154 -0.0481,-0.321 0.0178,-0.153 0.17473,-0.835 0.29952,-0.797 0.92352,-2.25 0.10341,-1.39 0.041,-1.871 0.92174,-0.338\"},\"39155\":{\"name\":\"Trumbull, OH\",\"path\":\"m 787.33494,209.65314 0.0428,0.25 1.34072,8.123 -8.1798,1.312 -0.8023,-4.889 -0.59547,-3.51 8.19407,-1.286\"},\"39007\":{\"name\":\"Ashtabula, OH\",\"path\":\"m 786.02631,201.66614 1.30863,7.987 -8.19407,1.286 -0.7809,-4.878 -0.49742,-3.197 7.68595,-4.115 0.47781,2.917\"},\"39087\":{\"name\":\"Lawrence, OH\",\"path\":\"m 759.84843,275.96914 1.32645,-0.08 0.0856,1.52 1.62777,-0.15498 0.0509,0.64163 0.40633,0.0197 0.0732,1.37461 2.07219,-0.1802 0.30168,2.19523 1.33358,-0.135 -0.007,1.005 -0.007,0.05 -0.0802,1.648 -0.0321,0.167 -0.0321,0.153 -0.30947,0.47668 -0.82453,0.31568 -0.61454,-0.032 -1.491,0.81495 -1.03196,0.4411 -0.63191,-0.19913 -1.38298,-2.11527 -2.86685,-1.116 1.09111,-0.699 -0.42136,-1.03365 -0.13262,-0.87817 1.0668,-0.12298 -0.15483,-1.65557 0.66014,-0.1643 -0.075,-2.25533\"},\"39145\":{\"name\":\"Scioto, OH\",\"path\":\"m 748.39706,273.64814 0.79264,0.37665 0.38762,0.74635 3.76721,-0.398 3.41598,-0.283 0.9574,-0.07 0.12462,2.11209 0.36742,-0.0461 1.63846,-0.114 0.075,2.25533 -0.66014,0.1643 0.15483,1.65557 -1.0668,0.12298 0.13261,0.87817 0.42137,1.03365 -1.09111,0.699 -0.0802,-0.04 -0.3851,-0.257 -0.0178,-0.03 -0.14442,-0.169 -0.11945,-0.255 -0.041,-0.09 -0.49921,-1.502 -0.16937,-0.724 0.0178,-0.278 -0.009,-0.01 0,-0.02 -0.0143,-0.163 -0.0339,-0.137 -0.007,-0.03 -0.009,-0.03 -0.0303,-0.06 -0.0481,-0.07 -0.0232,-0.04 -0.082,-0.09 -0.18364,-0.08 -0.0909,0 -0.0214,0 -0.48494,0.213 -1.48691,0.673 -0.31914,0.145 0,0 0,0 0,0 0,0 -1.32464,1.30901 -0.30431,1.21791 -1.70727,0.25222 -0.72337,0.63486 -1.07507,-9.513\"},\"39001\":{\"name\":\"Adams, OH\",\"path\":\"m 748.39706,273.64814 1.07507,9.513 -1.01802,-0.763 -0.0428,-0.01 -0.60083,-0.282 -0.0481,-0.02 -1.9148,-0.46 -0.72028,-0.177 -0.025,0 -0.15154,-0.02 -0.21929,0.05 -1.39777,0.612 -0.18542,0.128 -0.13728,0.225 -0.0963,0.811 -1.02693,0.121 -0.57943,-8.887 0.96657,0.0121 3.98267,-1.4741 1.26643,-0.10226 0.87302,0.72826\"},\"39131\":{\"name\":\"Pike, OH\",\"path\":\"m 746.38776,269.66814 10.03756,-0.697 0.33518,5.117 -3.41598,0.283 -3.76721,0.398 -0.38762,-0.74635 -0.79264,-0.37665 -0.87302,-0.72826 -1.26643,0.10226 0.13015,-3.354\"},\"39079\":{\"name\":\"Jackson, OH\",\"path\":\"m 756.70523,268.01514 1.99325,-0.144 0.0431,0.39098 2.01435,-0.18398 0.10822,0.84332 1.99735,-0.14232 0.15154,2.387 0.1915,4.56043 -2.02964,0.16257 -1.32645,0.08 -1.63846,0.114 -0.36742,0.0461 -0.12462,-2.11209 -0.9574,0.07 -0.33518,-5.117 0.36583,-0.0263 -0.0859,-0.92975\"},\"39053\":{\"name\":\"Gallia, OH\",\"path\":\"m 765.0134,271.05214 0.0267,0.338 4.04711,-0.353 0.0892,1.043 -0.35654,1.34384 -0.25498,0.35095 0.005,0 0.20486,0.71432 -0.0866,0.63721 -0.54204,0.58761 -0.51741,0.3752 -0.0418,0.46301 0.436,0.441 0.18931,0.57821 0.3162,0.42721 -0.1326,0.76881 0.58401,1.27002 -0.15439,0.65961 -0.48075,0.29264 -0.95936,-0.0768 -0.25965,0.24121 -1.33358,0.135 -0.30168,-2.19523 -2.07219,0.18019 -0.0732,-1.3746 -0.40633,-0.0197 -0.0509,-0.64163 -1.62777,0.15498 -0.0856,-1.52 2.02964,-0.16257 -0.1915,-4.56043 2.00038,-0.114\"},\"39105\":{\"name\":\"Meigs, OH\",\"path\":\"m 765.37711,266.87414 9.16752,-0.795 0.25733,0.95418 0.0805,1.17027 -0.46937,0.40138 -0.63156,0.0762 0.0874,0.313 0.19255,0.252 0.61309,0.40438 0.32542,0.52738 -0.29838,1.00015 0.42065,0.30488 0.0589,0.53743 -0.58984,0.19985 -0.71903,-0.39442 -0.15641,0.35294 -0.20808,1.07641 -0.89662,0.36071 -0.59427,-0.3921 -0.0642,-0.178 0.43812,-0.81403 -0.79983,-1.16839 -0.65553,0.11682 -0.009,0 -0.53115,-0.74639 -0.34364,-0.0586 -0.31868,0.89485 -0.50144,0.49415 -0.0553,0.32 -0.0892,-1.043 -4.04711,0.353 -0.0267,-0.338 -0.23238,-4.1306 0.59609,-0.0474\"},\"39163\":{\"name\":\"Vinton, OH\",\"path\":\"m 756.43958,264.30414 1.99503,-0.131 2.03961,-0.472 -0.0321,-0.612 3.96866,-0.296 0.13728,2.072 0.67393,-0.06 0.15511,2.066 -0.59609,0.0474 0.23238,4.1306 -2.00038,0.114 -0.15154,-2.387 -1.99735,0.14232 -0.10822,-0.84332 -2.01435,0.18398 -0.0431,-0.39098 -1.99325,0.144 -0.26565,-3.711\"},\"39167\":{\"name\":\"Washington, OH\",\"path\":\"m 781.18047,255.07014 0.30462,-0.0481 0.0754,0.5631 4.02365,-0.419 0.0802,0.731 -1.09205,2.15619 -0.23267,0.42748 -0.70217,0.33358 -0.41144,0.61617 -0.16549,0.72393 -0.75571,-0.0273 -1.72165,1.51403 -0.51657,-0.1381 -0.50444,-0.93337 -0.31833,-0.31636 -0.20147,-0.02 -0.33743,0.0942 -0.46015,0.84476 -0.93392,0.84113 0.0478,1.72645 -1.60119,0.10916 -0.36444,0.236 -0.11075,0.64826 -0.0306,0.451 -0.39508,0.20072 -0.1355,-1.44 -1.69551,0.192 -0.15899,-0.67497 -0.25967,0.0129 -0.0415,-0.30586 -0.30999,0.0129 -0.30843,-3.045 0.38109,-0.0631 -0.12182,-0.98017 1.97859,-0.0927 -0.0922,-1.12808 -0.35849,0.0257 -0.0331,-1.24642 0.41068,-0.24058 1.83067,-0.0927 1.95162,-0.37039 -0.17181,-1.36798 0.28422,-0.0141 0.10272,0.31643 0.70734,-0.1068 0.0643,0.3507 0.29613,-0.0524 0.0543,0.29024 0.64051,-0.0854 0.0705,0.19966 1.28181,-0.15663 -0.0436,-0.25638\"},\"39009\":{\"name\":\"Athens, OH\",\"path\":\"m 766.1063,258.50914 1.97007,-0.151 0.19749,2.1297 3.67313,-0.3467 0.30843,3.045 0.30999,-0.0129 0.0415,0.30586 0.25967,-0.0129 0.15899,0.67497 1.69551,-0.192 0.1355,1.44 -0.312,0.69 -9.16752,0.795 -0.15511,-2.066 -0.67393,0.06 -0.27277,-4.122 1.99324,-0.144 -0.16224,-2.09\"},\"39073\":{\"name\":\"Hocking, OH\",\"path\":\"m 762.02531,256.79814 0.0832,1.38611 2.10638,-0.0834 0.12578,0.57683 1.76564,-0.16856 0.16224,2.09 -1.99324,0.144 0.13549,2.05 -3.96866,0.296 0.0321,0.612 -2.03961,0.472 -1.99503,0.131 -0.18363,-2.316 -0.12124,-2.001 0.005,-0.20643 1.98444,-0.12584 -0.0676,-1.08903 2.03623,-0.2545 -0.0996,-1.3852 2.03247,-0.128\"},\"39141\":{\"name\":\"Ross, OH\",\"path\":\"m 746.91727,262.14814 4.53741,-0.392 0.3958,0.312 0.22464,0.242 4.18083,-0.322 0.18363,2.316 0.26565,3.711 0.0859,0.92975 -0.36583,0.0263 -10.03756,0.697 -0.07,-1.15393 -0.64501,-0.023 -0.07,-0.84723 -0.10829,-2.05486 1.42273,-3.441\"},\"39071\":{\"name\":\"Highland, OH\",\"path\":\"m 741.67207,266.06314 3.82247,-0.474 0.10829,2.05486 0.07,0.84723 0.64501,0.023 0.07,1.15393 -0.13015,3.354 -3.98267,1.4741 -0.96657,-0.0121 -3.50334,0.433 -0.55269,-5.208 0.54904,-0.0489 0.0698,0.60282 0.49154,-0.0298 0.21701,-0.87745 3.09231,-3.29271\"},\"39015\":{\"name\":\"Brown, OH\",\"path\":\"m 734.99344,269.83914 2.2589,-0.13 0.55269,5.208 3.50334,-0.433 0.57943,8.887 -1.39064,-0.69 -1.56714,-1.622 -0.11232,-0.09 -0.21751,-0.08 -0.60975,-0.08 -2.63686,0.281 -0.36014,-11.25\"},\"39025\":{\"name\":\"Clermont, OH\",\"path\":\"m 734.75097,269.83914 0.24247,0 0.36014,11.25 -3.30188,-0.939 -0.16937,-1.054 -1.95224,-3.198 -0.0713,-3.552 0.4303,-0.69802 -0.71377,-0.074 0.70067,-1.526 4.475,-0.209\"},\"39061\":{\"name\":\"Hamilton, OH\",\"path\":\"m 728.57154,269.75914 1.70443,0.289 -0.70067,1.526 0.71377,0.074 -0.4303,0.69802 0.0713,3.552 -3.48729,-1.286 -2.0093,0.733 -3.55148,-0.305 -0.52951,-4.598 2.90073,-0.337 1.29437,-0.235 3.34466,-0.152 0.67927,0.04\"},\"39027\":{\"name\":\"Clinton, OH\",\"path\":\"m 739.7751,262.30114 1.66192,-0.0809 0.23505,3.84295 -3.09231,3.29271 -0.21701,0.87745 -0.49154,0.0298 -0.0698,-0.60282 -0.54904,0.0489 -2.2589,0.13 -0.24247,0 -0.39223,-7.277 5.41636,-0.261\"},\"39165\":{\"name\":\"Warren, OH\",\"path\":\"m 731.93938,262.65414 2.41936,-0.09 0.39223,7.277 -4.475,0.209 -1.70443,-0.289 -0.3602,-5.73094 -0.55895,0.14163 -0.13274,-1.23169 4.41973,-0.284\"},\"39017\":{\"name\":\"Butler, OH\",\"path\":\"m 725.53353,263.16814 1.98612,-0.23 0.13274,1.23169 0.55895,-0.14163 0.3602,5.73094 -0.67927,-0.04 -3.34466,0.152 -1.29437,0.235 -2.90073,0.337 -0.51346,-4.999 -0.12124,-1.043 5.91496,-0.71071 -0.0992,-0.52129\"},\"39135\":{\"name\":\"Preble, OH\",\"path\":\"m 724.49055,255.63314 1.04298,7.535 0.0992,0.52129 -5.91496,0.71071 -0.41897,-3.666 -0.48851,-4.386 5.68022,-0.715\"},\"39113\":{\"name\":\"Montgomery, OH\",\"path\":\"m 725.52818,255.47814 4.66756,-0.658 -0.14442,0.282 0.10341,0.362 0.13015,0.218 1.87023,-0.1 0.0428,0.674 -0.003,0.4517 -0.54757,-0.0189 0.29223,5.96217 -4.41973,0.284 -1.98612,0.23 -1.04298,-7.535 1.03763,-0.155\"},\"39057\":{\"name\":\"Greene, OH\",\"path\":\"m 739.50054,257.12814 0.066,1.308 0.2086,3.865 -5.41636,0.261 -2.41936,0.09 -0.29223,-5.96217 0.54757,0.0189 0.003,-0.4517 1.24266,-0.06 0.75594,0.02 0.0551,0.39968 1.97203,-0.22768 0.0303,0.577 1.63071,-0.0138 0.10217,0.37143 1.51373,-0.20365\"},\"39047\":{\"name\":\"Fayette, OH\",\"path\":\"m 739.5665,258.43614 7.0459,-0.433 0.30487,4.145 -1.42273,3.441 -3.82247,0.474 -0.23505,-3.84295 -1.66192,0.0809 -0.2086,-3.865\"},\"39129\":{\"name\":\"Pickaway, OH\",\"path\":\"m 746.40381,255.27014 7.34364,-0.576 0.15333,2.296 0.26564,3.111 1.96829,-0.114 0.12124,2.001 -4.18083,0.322 -0.22464,-0.242 -0.3958,-0.312 -4.53741,0.392 -0.30487,-4.145 -0.20859,-2.733\"},\"39045\":{\"name\":\"Fairfield, OH\",\"path\":\"m 754.0131,251.26914 5.56968,-0.571 0.14263,2.161 1.34899,-0.06 0.21836,2.02745 0.59527,-0.0665 0.13728,2.033 -2.03247,0.128 0.0996,1.3852 -2.03623,0.2545 0.0676,1.08903 -1.98444,0.12584 -0.005,0.20643 -1.96829,0.114 -0.26564,-3.111 -0.15333,-2.296 0.0664,-0.45816 0.34507,-0.0601 -0.16583,-2.12663 -0.32507,0.0363 -0.0862,-0.77313 0.43129,-0.0433\"},\"39127\":{\"name\":\"Perry, OH\",\"path\":\"m 759.58278,250.69814 4.02572,-0.185 1.2813,-0.0561 0.18948,2.03653 1.64524,-0.16985 0.0985,1.05844 0.10724,1.0379 0.88221,-0.0147 0.2639,3.95278 -1.97007,0.151 -1.76564,0.16856 -0.12578,-0.57683 -2.10638,0.0834 -0.0832,-1.38611 -0.13728,-2.033 -0.59527,0.0665 -0.21836,-2.02745 -1.34899,0.06 -0.14263,-2.161\"},\"39111\":{\"name\":\"Monroe, OH\",\"path\":\"m 781.03606,248.94814 1.92015,-0.234 4.08277,-0.362 1.2694,-0.144 0.23149,-0.046 -0.15898,0.3682 0.16258,0.75676 -0.62791,1.1185 0.7387,0.78355 0.0548,0.52195 -0.45062,0.20905 0.0735,1.30865 -0.35969,0.74303 -0.90124,0.14132 -1.40668,1.784 -0.0802,-0.731 -4.02365,0.419 -0.0754,-0.5631 -0.30462,0.0481 -0.32805,-2.321 -0.65788,0.09 -0.48494,-3.726 1.32646,-0.169\"},\"39121\":{\"name\":\"Noble, OH\",\"path\":\"m 780.79715,247.02814 0.23891,1.92 -1.32646,0.169 0.48494,3.726 0.65788,-0.09 0.32805,2.321 0.0435,0.25638 -1.28181,0.15663 -0.0705,-0.19966 -0.64051,0.0854 -0.0543,-0.29024 -0.29613,0.0524 -0.0643,-0.3507 -0.70734,0.1068 -0.10272,-0.31643 -0.28422,0.0141 0.17181,1.36798 -1.95162,0.37039 -0.23855,-1.84361 -1.00768,0.0566 -0.26117,-1.9341 -0.98506,0.1471 -0.2389,-2.001 1.98433,-0.224 -0.16567,-1.35531 1.87245,-0.22256 -0.1073,-0.70082 1.56492,-0.18856 -0.19238,-0.60476 0.65075,-0.169 1.97898,-0.255\"},\"39115\":{\"name\":\"Morgan, OH\",\"path\":\"m 766.82302,253.38214 6.62692,-0.633 0.98506,-0.1471 0.26117,1.9341 1.00768,-0.0566 0.23855,1.84361 -1.83067,0.0927 -0.41068,0.24058 0.0331,1.24642 0.35849,-0.0257 0.0922,1.12808 -1.97859,0.0927 0.12182,0.98017 -0.38109,0.0631 -3.67313,0.3467 -0.19749,-2.1297 -0.2639,-3.95278 -0.88221,0.0147 -0.10724,-1.0379\"},\"39119\":{\"name\":\"Muskingum, OH\",\"path\":\"m 763.5675,244.58514 8.18872,-0.877 0.54734,5.085 0.64896,-0.08 0.25852,2.034 0.2389,2.001 -6.62692,0.633 -0.0985,-1.05844 -1.64524,0.16985 -0.18948,-2.03653 -1.2813,0.0561 -0.12018,-0.80672 0.63362,-0.17856 -0.55444,-4.94272\"},\"39013\":{\"name\":\"Belmont, OH\",\"path\":\"m 786.10654,241.29714 3.10932,-0.451 0.24474,1.27116 -0.4838,0.77197 0.21775,0.31327 -0.0251,0.5696 -0.0787,0.54875 0.3009,0.95069 -0.32433,0.61574 0.32323,0.78321 -0.31317,0.25846 -0.61463,-0.0765 0.42373,0.8837 -0.34667,0.42593 -0.23149,0.046 -1.2694,0.144 -4.08277,0.362 -1.92015,0.234 -0.23891,-1.92 -0.6454,-5.032 5.95479,-0.699\"},\"39067\":{\"name\":\"Harrison, OH\",\"path\":\"m 784.1222,235.39814 1.31754,-0.168 0.12837,0.997 -0.0553,0.144 0.5937,4.926 -5.95479,0.699 -2.00226,0.21936 -0.0944,-0.92536 -0.25674,-2.075 0.64362,-0.09 0.35301,-0.253 -0.34588,-2.79 5.67309,-0.685\"},\"39059\":{\"name\":\"Guernsey, OH\",\"path\":\"m 773.13081,241.88414 4.92429,-0.594 0.0944,0.92536 2.00226,-0.21936 0.6454,5.032 -1.97898,0.254 -0.65075,0.17 0.19238,0.60476 -1.56492,0.18856 0.1073,0.70082 -1.87245,0.22256 0.16567,1.35531 -1.98433,0.224 -0.25852,-2.034 -0.64896,0.08 -0.54734,-5.085 0.62579,-0.08 0.14441,-0.1 -0.15155,-1.397 0.75594,-0.257\"},\"39031\":{\"name\":\"Coshocton, OH\",\"path\":\"m 762.64575,237.94614 8.21903,-0.956 0.20147,1.704 1.66163,-0.192 0.40293,3.382 -0.75594,0.257 0.15155,1.397 -0.14441,0.1 -0.62579,0.08 -8.18872,0.877 -0.11974,-1.68193 -0.27428,0.0489 -0.52773,-5.006\"},\"39089\":{\"name\":\"Licking, OH\",\"path\":\"m 753.44258,243.45814 4.81375,-0.394 0.0392,0.435 1.97007,-0.169 2.90786,-0.378 0.27428,-0.0489 0.11974,1.68193 0.55444,4.94272 -0.63362,0.17856 0.12018,0.80672 -4.02572,0.185 -5.56968,0.571 -0.0475,-0.66351 0.24913,-0.0565 -0.45124,-3.60302 -0.32091,-3.488\"},\"39041\":{\"name\":\"Delaware, OH\",\"path\":\"m 744.36242,240.80714 3.95441,-0.305 0.0434,0.34092 1.51698,-0.0925 0.15171,1.20775 3.31564,-0.17918 0.0981,1.679 0.32091,3.488 -7.11186,0.579 -0.35301,-2.305 -1.3015,0.158 -0.44393,-2.988 -0.19077,-1.583\"},\"39049\":{\"name\":\"Franklin, OH\",\"path\":\"m 753.76349,246.94614 0.45124,3.60302 -0.24913,0.0565 0.0475,0.66351 -0.43129,0.0433 0.0862,0.77313 0.32507,-0.0363 0.16583,2.12663 -0.34507,0.0601 -0.0664,0.45816 -7.34364,0.576 -0.36352,-2.64853 -0.86631,-2.76279 1.03059,-0.0889 -0.0664,-1.34583 0.5767,-0.10669 -0.0632,-0.79231 7.11186,-0.579\"},\"39097\":{\"name\":\"Madison, OH\",\"path\":\"m 740.97319,249.03714 5.16497,-0.613 0.0664,1.34583 -1.03059,0.0889 0.86631,2.76279 0.36352,2.64853 0.20859,2.733 -7.0459,0.433 -0.066,-1.308 1.06874,-0.0914 0.51444,-5.6806 -0.11053,-2.319\"},\"39023\":{\"name\":\"Clark, OH\",\"path\":\"m 731.94652,251.86314 9.1372,-0.507 -0.51444,5.6806 -1.06874,0.0914 -1.51373,0.20365 -0.10217,-0.37143 -1.63071,0.0138 -0.0303,-0.577 -1.97203,0.22768 -0.0551,-0.39968 -0.75594,-0.02 -1.24266,0.06 -0.0428,-0.674 -0.20859,-3.722\"},\"39021\":{\"name\":\"Champaign, OH\",\"path\":\"m 739.79114,246.43214 0.89812,-0.0913 0.28393,2.69626 0.11053,2.319 -9.1372,0.507 -0.29774,-5.408 4.0275,-0.21 0.0446,0.40934 4.07029,-0.22234\"},\"39109\":{\"name\":\"Miami, OH\",\"path\":\"m 724.62783,249.10814 7.13505,-0.577 0.18364,3.332 0.20859,3.722 -1.87023,0.1 -0.13015,-0.218 -0.10341,-0.362 0.14442,-0.282 -4.66756,0.658 -0.90035,-6.37\"},\"39149\":{\"name\":\"Shelby, OH\",\"path\":\"m 724.16072,245.49114 -0.0796,-0.48789 1.63714,-0.28819 -0.30154,-2.32083 5.83088,-0.79409 0.40115,4.851 0.1141,2.076 -7.13505,0.577 -0.47602,-3.608 0.005,0 0.005,0\"},\"39037\":{\"name\":\"Darke, OH\",\"path\":\"m 724.15181,245.50014 0.47602,3.608 0.90035,6.37 -1.03763,0.155 -5.68022,0.715 -0.2086,-2.034 -0.70958,-7.032 -0.11945,-0.977 6.37911,-0.805\"},\"39107\":{\"name\":\"Mercer, OH\",\"path\":\"m 722.85744,237.94614 1.01209,7.57525 0.29119,-0.0302 -0.005,0 -0.005,0 -6.37911,0.805 -0.56874,-5.056 -0.42075,-3.583 5.96563,-0.69332 0.1086,0.97332\"},\"39011\":{\"name\":\"Auglaize, OH\",\"path\":\"m 723.87368,237.81914 2.98809,-0.396 0.0856,0.669 2.00884,-0.121 0.0152,0.28642 3.90935,-0.63242 0.31022,2.437 -2.11701,0.3981 0.17368,1.1439 -5.83088,0.79409 0.30154,2.32083 -1.63714,0.28819 0.0796,0.48789 -0.29119,0.0302 -1.01209,-7.57525 1.01624,-0.127\"},\"39091\":{\"name\":\"Logan, OH\",\"path\":\"m 733.19096,240.06214 0.72919,0.118 5.54116,-0.25 0.0392,0.121 0.2906,6.381 -4.07029,0.22234 -0.0446,-0.40934 -4.0275,0.21 -0.40115,-4.851 -0.17368,-1.1439 2.11701,-0.3981\"},\"39159\":{\"name\":\"Union, OH\",\"path\":\"m 739.50054,240.05114 1.74364,-0.265 2.90811,-0.48962 0.21013,1.51062 0.19077,1.583 0.44393,2.988 1.3015,-0.158 0.35301,2.305 0.0632,0.79231 -0.5767,0.10669 -5.16497,0.613 -0.28393,-2.69626 -0.89812,0.0913 -0.2906,-6.381\"},\"39101\":{\"name\":\"Marion, OH\",\"path\":\"m 750.25124,233.89714 0.16224,1.342 -1.67946,0.264 0.35361,3.51563 -0.85995,0.30837 0.0892,1.175 -3.95441,0.305 -0.21013,-1.51062 -2.90811,0.48962 -0.57586,-4.162 1.88844,-0.21125 -0.0453,-0.36667 3.40028,-0.50608 4.3395,-0.643\"},\"39117\":{\"name\":\"Morrow, OH\",\"path\":\"m 750.25124,233.89714 2.22681,-0.458 1.61595,-0.15352 0.0692,0.8615 -0.35123,0.0643 0.1321,0.69268 0.40922,-0.0164 0.43175,1.99736 -0.45456,0.0538 0.0398,0.63064 0.30122,0.0555 0.37737,4.01601 -1.70442,0.138 -3.31564,0.17918 -0.15171,-1.20775 -1.51698,0.0925 -0.0434,-0.34092 -0.0892,-1.175 0.85995,-0.30837 -0.35361,-3.51563 1.67946,-0.264 -0.16224,-1.342\"},\"39083\":{\"name\":\"Knox, OH\",\"path\":\"m 761.65448,235.47114 0.78375,-0.29912 0.20752,2.77412 0.52773,5.006 -2.90786,0.378 -1.97007,0.169 -0.0392,-0.435 -4.81375,0.394 -0.0981,-1.679 1.70442,-0.138 -0.37737,-4.01601 -0.30122,-0.0555 -0.0398,-0.63064 0.45456,-0.0538 4.91002,-0.819 1.95938,-0.595\"},\"39075\":{\"name\":\"Holmes, OH\",\"path\":\"m 771.10547,231.71814 0.11232,0.765 -0.19433,0.192 0.51525,4.235 -0.67393,0.08 -8.21903,0.956 -0.20752,-2.77412 -0.78375,0.29912 -0.27321,-2.22639 1.55152,-0.30561 8.17268,-1.221\"},\"39157\":{\"name\":\"Tuscarawas, OH\",\"path\":\"m 776.84988,231.22214 0.23355,1.949 0.98771,-0.11 0.72385,5.812 -0.35301,0.253 -0.64362,0.09 0.25674,2.075 -4.92429,0.594 -0.40293,-3.382 -1.66163,0.192 -0.20147,-1.704 0.67393,-0.08 -0.51525,-4.235 0.19433,-0.192 3.16532,-1.03799 2.46677,-0.22301\"},\"39019\":{\"name\":\"Carroll, OH\",\"path\":\"m 780.52437,228.85814 2.74761,-0.55081 0.30095,1.8742 0.95051,-0.11777 0.236,1.00812 0.12604,0.98464 -1.12977,0.24849 0.33868,1.94763 -0.22426,0.0206 0.25207,1.12487 -5.67309,0.685 -0.37797,-3.022 -0.98771,0.11 -0.23355,-1.949 1.31754,-0.178 -0.20007,-1.6244 0.66215,-0.11182 -0.0199,-0.17678 1.9148,-0.273\"},\"39081\":{\"name\":\"Jefferson, OH\",\"path\":\"m 784.75944,231.07188 1.80377,-0.32598 0.14407,0.39996 1.52979,-0.11968 0.0346,0.27293 0.51482,0.42386 0.3323,0.39093 0.22254,0.55556 0.44508,0.50746 0.0944,0.56215 -0.16628,0.65819 0.10813,0.50727 -0.21234,0.35525 0.57434,0.41453 -0.006,0.55114 0.39221,0.72188 -0.21112,0.81295 0.11901,0.39177 -0.64368,0.61943 -0.15419,0.6422 -0.12005,0.7105 -0.34479,0.722 -3.10932,0.451 -0.5937,-4.926 0.0553,-0.144 -0.12837,-0.997 -1.31754,0.168 -0.25207,-1.12487 0.22426,-0.0206 -0.33868,-1.94763 1.12977,-0.24849 -0.12604,-0.98464\"},\"39029\":{\"name\":\"Columbiana, OH\",\"path\":\"m 789.57779,223.36214 0.20324,1.105 0.79516,4.857 -0.58478,0.4255 -0.31983,0.31565 -0.37471,-0.0685 -0.61222,0.38434 -0.44758,0.64502 -1.52979,0.11968 -0.14407,-0.39996 -1.80377,0.32598 -0.236,-1.00812 -0.95051,0.11777 -0.30095,-1.8742 -2.74761,0.55081 -0.62757,-4.011 3.12019,-0.52679 -0.099,-0.83372 1.19716,-0.056 0.13897,0.71754 5.32369,-0.78603\"},\"39151\":{\"name\":\"Stark, OH\",\"path\":\"m 774.35564,223.71714 5.23629,-0.812 0.93244,5.953 -1.9148,0.273 0.0199,0.17678 -0.66215,0.11182 0.20007,1.6244 -1.31754,0.178 -2.46677,0.22301 -3.16532,1.03799 -0.93957,-6.406 3.89271,-0.52718 -0.35156,-1.72591 0.53627,-0.10691\"},\"39169\":{\"name\":\"Wayne, OH\",\"path\":\"m 769.32795,224.48014 0.68949,-0.11251 0.26078,1.70951 0.82725,5.641 -8.17268,1.221 -1.15173,-7.416 7.54689,-1.043\"},\"39005\":{\"name\":\"Ashland, OH\",\"path\":\"m 760.82544,223.99614 0.19854,1.60132 0.75708,-0.0743 1.15173,7.416 -1.55152,0.30561 0.27321,2.22639 -1.95938,0.595 -0.61152,-3.938 -0.79713,0.0421 -0.32073,-1.78412 -0.54795,-0.18899 -0.15094,-1.38001 -0.40827,-2.594 -0.25674,0.03 -0.298,-1.67078 1.70291,-0.23422 2.81871,-0.353\"},\"39139\":{\"name\":\"Richland, OH\",\"path\":\"m 751.60444,226.90614 4.99738,-0.652 0.25674,-0.03 0.40827,2.594 0.15094,1.38001 0.54795,0.18899 0.32073,1.78412 0.79713,-0.0421 0.61152,3.938 -4.91002,0.819 -0.43175,-1.99736 -0.40922,0.0164 -0.1321,-0.69268 0.35123,-0.0643 -0.0692,-0.8615 -1.61595,0.15352 -0.87361,-6.533\"},\"39033\":{\"name\":\"Crawford, OH\",\"path\":\"m 751.60444,226.90614 0.87361,6.533 -2.22681,0.458 -4.3395,0.643 -0.92888,-6.662 4.82801,-0.747 1.79357,-0.225\"},\"39175\":{\"name\":\"Wyandot, OH\",\"path\":\"m 739.72696,228.61814 5.2559,-0.74 0.92888,6.662 -3.40028,0.50608 0.0453,0.36667 -1.88843,0.21125 -0.35658,0.03 -0.11978,-0.30748 -0.87506,0.11548 -0.36192,-2.678 -0.34053,0.04 -0.29759,-1.88232 0.66882,-0.15645 -0.2045,-0.96082 0.36889,-0.0437 -0.11374,-1.07794 0.69063,-0.0897\"},\"39065\":{\"name\":\"Hardin, OH\",\"path\":\"m 732.36371,233.60114 6.25074,-0.772 0.34053,-0.04 0.36192,2.678 0.87506,-0.11548 0.11978,0.30748 0.35658,-0.03 0.57586,4.162 -1.74364,0.265 -0.0392,-0.121 -5.54116,0.25 -0.72919,-0.118 -0.82725,-6.461\"},\"39003\":{\"name\":\"Allen, OH\",\"path\":\"m 732.06062,231.29414 0.30309,2.307 0.51703,4.024 -3.90935,0.63242 -0.0152,-0.28642 -2.00884,0.121 -0.0856,-0.669 -2.98809,0.396 -0.33173,-2.83037 0.99134,-0.23716 -0.18715,-1.05647 3.96078,-0.48729 -0.0279,-1.02157 1.83947,-0.26691 -0.0172,-0.36023 1.95937,-0.265\"},\"39063\":{\"name\":\"Hancock, OH\",\"path\":\"m 731.32251,225.61214 7.85711,-0.997 0.54734,4.003 -0.69063,0.0897 0.11374,1.07794 -0.36889,0.0438 0.2045,0.96082 -0.66882,0.15645 0.29759,1.88232 -6.25074,0.772 -0.30309,-2.307 -0.73811,-5.682\"},\"39137\":{\"name\":\"Putnam, OH\",\"path\":\"m 731.32251,225.61214 0.73811,5.682 -1.95937,0.265 0.0172,0.36023 -1.83947,0.26691 0.0279,1.02157 -3.96078,0.48729 -0.13196,-0.8291 -0.92579,0.17644 -0.31684,-2.24034 0.96136,-0.17734 -0.46038,-3.96866 1.92729,-0.251 5.92269,-0.793\"},\"39161\":{\"name\":\"Van Wert, OH\",\"path\":\"m 716.05401,231.66314 6.91754,-0.861 0.31684,2.24034 0.92579,-0.17644 0.13196,0.8291 0.18715,1.05647 -0.99134,0.23716 0.33173,2.83037 -1.01624,0.127 -0.1086,-0.97332 -5.96563,0.69332 -0.542,-4.468 -0.1872,-1.535\"},\"39099\":{\"name\":\"Mahoning, OH\",\"path\":\"m 788.74875,218.21114 0.82904,5.151 -5.32369,0.78603 -0.13898,-0.71754 -1.19715,0.056 0.099,0.83372 -3.12019,0.52679 -0.30487,-1.942 1.4066,-0.22808 -0.45989,-3.33892 8.1798,-1.312 0.0303,0.185\"},\"39133\":{\"name\":\"Portage, OH\",\"path\":\"m 773.1219,215.47114 6.61444,-1.022 0.8023,4.889 0.45989,3.33892 -1.4066,0.22808 -5.23629,0.812 -1.24088,-8.246 0.007,0\"},\"39153\":{\"name\":\"Summit, OH\",\"path\":\"m 773.11476,215.47114 1.24088,8.246 -0.53627,0.10691 0.35156,1.72591 -3.89271,0.52718 -0.26078,-1.70951 -0.68949,0.11251 -0.9467,-6.615 2.03247,-0.321 -0.52238,-0.941 -0.29061,-0.649 3.51403,-0.483\"},\"39103\":{\"name\":\"Medina, OH\",\"path\":\"m 768.38125,217.86514 0.9467,6.615 -7.54689,1.043 -0.75708,0.0743 -0.19854,-1.60132 -0.21572,-1.686 1.42694,-0.31254 -0.24098,-1.3776 1.76857,-0.35274 -0.22088,-1.53836 1.76631,-0.31676 3.27157,-0.547\"},\"39077\":{\"name\":\"Huron, OH\",\"path\":\"m 748.66984,220.43614 8.50785,-1.061 0.82904,4.974 -1.70291,0.23422 0.298,1.67078 -4.99738,0.652 -1.79357,0.225 -1.14103,-6.695\"},\"39147\":{\"name\":\"Seneca, OH\",\"path\":\"m 748.80533,221.23314 1.00554,5.898 -4.82801,0.747 -5.2559,0.74 -0.54734,-4.003 -0.2496,-2.007 9.87531,-1.375\"},\"39143\":{\"name\":\"Sandusky, OH\",\"path\":\"m 738.27214,216.94214 1.27832,-0.195 0.15154,1.006 4.59802,-0.619 0.30271,0.19642 0.31617,-0.15059 0.28516,0.004 0.28747,0.38781 0.24415,-0.10616 -0.1526,-0.32443 0.26772,-0.0627 0.34282,0.38811 0.43736,0.12945 0.36674,-0.19696 1.12302,-0.16312 0.68462,3.997 -9.87531,1.375 -0.65788,-5.666\"},\"39173\":{\"name\":\"Wood, OH\",\"path\":\"m 737.89417,214.22314 0.37797,2.719 0.65788,5.666 0.2496,2.007 -7.85711,0.997 -0.76485,-5.657 0.49742,-0.06 1.6652,-1.422 0.46533,-0.867 2.08774,-2.991 2.62082,-0.387\"},\"39069\":{\"name\":\"Henry, OH\",\"path\":\"m 730.34906,218.27514 0.2086,1.68 0.76485,5.657 -5.92269,0.793 -0.75772,-6.017 -1.92907,0.241 -0.16759,-1.323 7.80362,-1.031\"},\"39125\":{\"name\":\"Paulding, OH\",\"path\":\"m 723.47253,226.65614 0.46038,3.96866 -0.96136,0.17734 -6.91754,0.861 -0.72384,-6.06 5.90486,-0.731 0.18483,1.02239 1.92253,-0.24139 0.13014,1.003\"},\"39039\":{\"name\":\"Defiance, OH\",\"path\":\"m 722.71303,220.62914 1.92907,-0.241 0.75772,6.017 -1.92729,0.251 -0.13014,-1.003 -1.92253,0.24139 -0.18483,-1.02239 -5.90486,0.731 -0.0499,-0.425 -0.43324,-3.56 7.86602,-0.989\"},\"39055\":{\"name\":\"Geauga, OH\",\"path\":\"m 772.341,210.40714 1.60815,-0.255 -0.24069,-1.626 3.04209,-0.5918 -0.22299,-1.71879 1.83245,-0.15441 0.7809,4.878 0.59547,3.51 -6.61444,1.022 -0.7809,-5.064\"},\"39085\":{\"name\":\"Lake, OH\",\"path\":\"m 777.86255,202.86414 0.49742,3.197 -1.83245,0.15441 0.22299,1.71879 -3.04209,0.5918 0.24069,1.626 -1.60815,0.255 -1.67227,0.27473 -0.19796,-1.42073 0.6347,-1.086 0.78625,-0.916 0.52238,-0.564 1.00375,-0.916 3.67985,-2.434 0.76485,-0.481\"},\"39035\":{\"name\":\"Cuyahoga, OH\",\"path\":\"m 770.47077,209.26114 0.19796,1.42073 1.67227,-0.27473 0.7809,5.064 -0.007,0 -3.51403,0.483 0.29061,0.649 0.52238,0.941 -2.03247,0.321 -3.27157,0.547 -0.24069,-1.738 -1.60636,0.227 -0.48138,-3.559 0.11767,0.105 0.082,0.05 0.36906,0.113 1.05367,0.03 1.07854,-0.47651 1.15362,0.0505 0.0981,-0.05 0.42611,-0.37 1.18026,-1.087 0.49742,-0.544 0.85188,-1.50814 0.61186,-0.19086 0.16937,-0.205\"},\"39093\":{\"name\":\"Lorain, OH\",\"path\":\"m 762.78125,213.34214 0.48138,3.559 1.60636,-0.227 0.24069,1.738 -1.76631,0.31676 0.22088,1.53836 -1.76857,0.35274 0.24098,1.3776 -1.42694,0.31254 0.21572,1.686 -2.81871,0.353 -0.82904,-4.974 -0.57052,-3.303 1.34958,-0.36298 0.99604,-1.03353 2.6738,-1.54885 1.15466,0.21536\"},\"39043\":{\"name\":\"Erie, OH\",\"path\":\"m 750.51689,215.41414 1.52792,1.31 1.0929,0.512 0.80407,0.251 0.25673,0.03 0.30488,-0.04 0.32983,-0.168 0.46711,-0.313 1.30684,-0.927 0.57052,3.303 -8.50785,1.061 -0.54913,-3.2 -1.03673,0.15059 0.42548,-0.35862 0.73576,-0.39099 0.0887,-0.41173 0.4801,-0.0397 0.59943,0.55397 0.53137,-0.41611 1.24495,0.0424 -0.71629,-0.63739 0.0434,-0.31436\"},\"39123\":{\"name\":\"Ottawa, OH\",\"path\":\"m 742.03934,213.53514 1.84171,0.435 1.13056,1.08966 1.22417,0.43605 0.67003,-0.3658 0.50718,-0.57563 -0.12222,-0.65161 0.43099,-0.39379 0.74771,0.96015 1.45948,-0.0233 0.22999,0.66995 -2.52131,0.69032 -1.79359,0.51783 -0.12663,0.40182 -1.41739,0.40832 -4.59802,0.619 -0.15154,-1.006 -1.27832,0.195 -0.37797,-2.719 4.14517,-0.688\"},\"39095\":{\"name\":\"Lucas, OH\",\"path\":\"m 731.68265,212.58614 5.21311,-0.884 -0.31781,0.53799 0.83573,0.44418 1.16214,-0.10227 0.3793,-0.45765 0.72724,0.49972 2.35698,0.91103 -4.14517,0.688 -2.62082,0.387 -2.08774,2.991 -0.46533,0.867 -1.6652,1.422 -0.49742,0.06 -0.2086,-1.68 -0.64361,-5.343 1.9772,-0.346\"},\"39051\":{\"name\":\"Fulton, OH\",\"path\":\"m 721.60409,214.25814 8.10136,-1.326 0.64361,5.343 -7.80362,1.031 -0.0964,-0.54124 -0.60819,0.12403 -0.29523,-2.36184 -0.37199,0.0178 -0.21847,-2.18273 0.64897,-0.104\"},\"39171\":{\"name\":\"Williams, OH\",\"path\":\"m 714.08394,215.41414 6.87118,-1.052 0.21847,2.18273 0.37199,-0.0178 0.29523,2.36184 0.60819,-0.12403 0.0964,0.54124 0.16759,1.323 -7.86602,0.989 -0.28882,-2.394 -0.47425,-3.81\"},\"40139\":{\"name\":\"Texas, OK\",\"path\":\"m 422.03202,332.62114 8.89652,0.443 2.20898,0.112 -0.18542,3.455 -0.15155,0 -0.4261,8.062 -2.40331,-0.119 -9.86819,-0.563 -7.47914,-0.473 0.8023,-11.396 8.60591,0.474\"},\"40025\":{\"name\":\"Cimarron, OK\",\"path\":\"m 395.71508,330.77314 2.30703,0.178 9.45099,0.779 5.69627,0.401 0.25674,0.02 -0.8023,11.396 -2.38726,-0.155 -15.3719,-1.068 0.85043,-11.547\"},\"40115\":{\"name\":\"Ottawa, OK\",\"path\":\"m 548.45533,335.33714 0.0731,5.359 0.0392,2.291 -6.67734,0.0126 0.055,-6.23342 -0.57159,-0.002 -0.0213,-1.36493 7.10296,-0.06\"},\"40035\":{\"name\":\"Craig, OK\",\"path\":\"m 540.15428,335.40114 1.19809,0 0.0214,1.36493 0.57159,0.002 -0.055,6.23342 0.0181,1.93477 -0.36204,0.006 -0.0407,1.80501 -5.91556,0.04 0.0486,-2.0077 -1.95982,7e-4 -0.0238,-7.76815 0.43038,0.007 -0.0287,-1.55324 6.09741,-0.06\"},\"40097\":{\"name\":\"Mayes, OK\",\"path\":\"m 541.5057,346.74014 -0.0178,8.06 -1.97542,0.02 0.025,2.017 -1.65629,0 -4.29136,0.02 -0.016,-4.029 0.0499,-6.041 1.96651,-0.02 5.91556,-0.04\"},\"40041\":{\"name\":\"Delaware, OK\",\"path\":\"m 548.56765,342.98714 0.0553,3.903 1.1339,7.803 -4.32168,0.07 -3.94727,0.04 0.0178,-8.06 0.0407,-1.80501 0.36204,-0.006 -0.0181,-1.93477 6.67734,-0.0126\"},\"40001\":{\"name\":\"Adair, OK\",\"path\":\"m 545.43514,354.75914 4.32168,-0.07 0.21751,1.377 1.64024,10.709 -6.21152,0.09 -0.082,-6.078 0.15511,-2.481 -0.041,-3.552\"},\"40021\":{\"name\":\"Cherokee, OK\",\"path\":\"m 541.48787,354.80014 3.94727,-0.04 0.041,3.552 -0.15511,2.481 0.082,6.078 -5.94765,0.06 -0.1395,-3.9651 -2.45458,-0.0449 -0.041,-0.06 -0.29774,-2.122 0.0731,-1.31 0.11233,-0.216 0.36905,-0.33 0.25673,-0.01 0.0731,-0.08 0.48138,-1.13 -0.007,-0.806 1.65629,0 -0.025,-2.017 1.97542,-0.02\"},\"40135\":{\"name\":\"Sequoyah, OK\",\"path\":\"m 551.61457,366.77914 0.84152,5.554 -0.007,0.403 -1.20765,0.96187 -0.002,0.4939 0.39422,0.31543 -0.20069,0.37492 -0.37916,0.13696 -0.26734,-0.44368 -3.0039,-0.007 -0.01,-0.52299 -0.85222,-0.562 -0.37796,-0.105 -0.36014,0.04 -0.10341,0.05 -0.7078,0.697 -1.77574,-1.712 -0.61152,0 -0.9164,-0.24 -0.27456,-0.1 -0.28704,-0.264 -0.5723,-0.779 -1.41563,-1.35672 -0.0624,-2.79728 5.94765,-0.06 6.21152,-0.09\"},\"40061\":{\"name\":\"Haskell, OK\",\"path\":\"m 540.9334,371.08014 0.5723,0.779 0.28704,0.264 0.27456,0.1 0.9164,0.24 0.61152,0 1.77574,1.712 0.0143,2.305 -1.39777,0.508 -0.71671,0 0.041,3.343 -7.88029,0.07 -0.0178,-2.362 -1.96829,0 -0.0178,-0.981 0.0678,-2.153 0.72167,-0.63082 0.74346,0.0188 0.51743,0.66207 0.004,0.34332 1.3329,0.0311 0.0115,0.57009 0.82867,-0.004 0.28107,-0.46603 0.27963,0.25383 0.62737,-0.7894 -0.23768,-0.27135 0.59191,-1.66284 1.43343,-1.687 0.30309,-0.2\"},\"40079\":{\"name\":\"Le Flore, OK\",\"path\":\"m 552.44895,372.73614 -0.11232,10.341 -0.0481,4.747 -0.0392,5.121 -8.97853,0.135 -0.0952,-3.9502 -2.24213,-0.0428 -0.0392,-4.035 1.12286,-0.0417 0.0182,-1.63733 1.30863,-0.361 -0.0731,-6.027 0.71671,0 1.39777,-0.509 -0.0143,-2.305 0.7078,-0.697 0.10341,-0.05 0.36014,-0.04 0.37796,0.105 0.85222,0.562 0.01,0.52299 3.0039,0.007 0.26734,0.44368 0.37916,-0.13696 0.20069,-0.37492 -0.39422,-0.31543 0.002,-0.4939 1.20765,-0.96187\"},\"40077\":{\"name\":\"Latimer, OK\",\"path\":\"m 543.31175,380.32714 0.0321,2.685 -1.30863,0.361 -0.0182,1.63733 -1.12286,0.0417 0.0392,4.035 -8.54886,0.06 0,-2.083 0.0874,-5.971 2.50255,-0.02 0.006,-0.66469 0.45076,-0.002 7.88029,-0.07\"},\"40121\":{\"name\":\"Pittsburg, OK\",\"path\":\"m 533.49526,374.91114 -0.0678,2.154 0.0178,0.98 1.96829,0 0.0178,2.363 -0.45076,0.002 -0.006,0.66419 -2.50255,0.02 -0.0874,5.97 0,2.083 0.004,2.04422 -2.9525,-0.0122 -3.96154,0.02 0,-2.018 -3.94549,0 0,-2.007 0.0731,-6.535 0.5206,-0.964 0.90748,-1.237 0.16224,-0.1 0.36905,-0.06 0.67571,0.03 1.55733,-0.78293 2.14747,0.004 0.69176,-0.316 3.61387,-2.007 1.24801,-0.298\"},\"40029\":{\"name\":\"Coal, OK\",\"path\":\"m 521.52864,387.16614 0,6.043 -1.42911,-0.007 -0.0153,0.69954 0.3917,0.20685 0.049,1.12797 -4.95103,-0.02 -2.00588,-0.0676 0.0126,-1.94844 0.0571,-4.035 1.98433,0 0.009,-2.015 5.89773,0.01\"},\"40005\":{\"name\":\"Atoka, OK\",\"path\":\"m 521.52864,389.17414 3.94549,0 0,2.018 3.96154,-0.02 0.009,2.009 -2.01821,0.159 0.009,7.941 -4.01859,0 -7.86602,-0.02 0.0232,-6.044 4.95103,0.02 -0.049,-1.12797 -0.3917,-0.20685 0.0153,-0.69954 1.42911,0.007 0,-4.035\"},\"40127\":{\"name\":\"Pushmataha, OK\",\"path\":\"m 532.38454,389.14414 8.54886,-0.06 2.24213,0.0428 0.0952,3.9502 -2.05387,0.01 0.0642,6.092 -1.17491,0 -0.80408,0.435 0.0239,1.58374 -0.10407,-0.003 -11.78655,0.07 -0.009,-7.941 2.01821,-0.158 -0.009,-2.01 2.95251,0.0122 -0.004,-2.04422\"},\"40089\":{\"name\":\"McCurtain, OK\",\"path\":\"m 543.27074,393.08014 8.97853,-0.135 -0.0571,7.343 -0.0874,12.762 -4.97421,-1.431 -2.3623,-0.965 -3.26265,-2.612 -2.22681,-1.904 -0.0571,-4.926 0.10407,0.003 -0.0239,-1.58374 0.80408,-0.436 1.17491,0 -0.0642,-6.092 2.05387,-0.01\"},\"40023\":{\"name\":\"Choctaw, OK\",\"path\":\"m 539.22184,401.21214 0.0571,4.926 -1.20522,-0.403 -0.13549,0 -0.0642,0.03 -0.016,0 -0.0107,0 -0.40828,0.619 -0.009,0.03 0,0.04 -0.007,0.02 0.007,0.02 0.0731,0.154 0,0.03 0.0321,0.2 -0.0321,0.232 -0.10341,0.233 -0.10697,0.104 -0.50634,0.33 -0.14976,0.02 -0.28169,0.03 -0.55448,0.07 -0.009,0 -1.28723,0.06 -0.71315,-0.06 -1.88093,-0.25 -0.0713,-0.06 -0.0749,-0.128 0,-0.02 -0.005,-0.118 0.0571,-0.162 0.005,-0.153 -0.20147,-0.514 -0.14441,-0.06 -0.61687,-0.03 -1.39064,0.722 -1.5921,0.829 -0.007,0 -1.58319,-0.16 -1.478,-1.165 -0.32983,-0.417 -0.041,-0.13 -0.007,-4.097 -1.01267,-0.724 4.01859,0 11.78655,-0.07\"},\"40013\":{\"name\":\"Bryan, OK\",\"path\":\"m 523.4167,401.28514 1.01267,0.724 0.007,4.097 0.041,0.13 0.32983,0.417 1.478,1.164 1.58319,0.161 -1.63133,0.611 -0.92353,-0.169 -1.10003,-0.217 -0.25851,0.03 -0.41006,0.03 -2.13766,0.178 -0.96454,0.223 -0.16046,0.563 -0.11945,0.555 -0.009,0.06 -0.016,0.06 -0.0553,0.176 -0.0481,0.154 -0.009,0.02 -0.0232,0.03 -0.17828,0.185 -0.0232,0.03 -0.34588,0.148 -0.39401,0.105 -2.83655,0.701 -0.18363,-0.252 -0.82725,-1.125 0,0 -0.24961,-0.08 -0.22464,-0.03 -0.97344,0.186 -0.025,0 -0.17651,-0.122 -1.95224,-1.31 -0.0161,-0.06 -0.016,-0.111 -0.016,-0.283 0.0642,-0.369 0.37951,-1.78685 -0.34851,-0.99412 0.75161,-1.6736 -0.23526,-1.20443 2.15674,0.0671 0.0105,-1.01985 1.20775,-0.0173 7.86602,0.02\"},\"40095\":{\"name\":\"Marshall, OK\",\"path\":\"m 505.59513,400.83414 4.92429,0.05 0.99662,0.246 0.72385,0.854 0,0.144 -0.0642,0.104 0.23526,1.20443 -0.75161,1.6736 0.34851,0.99412 -0.37951,1.78685 -1.9041,0.859 -0.0161,0 -0.92352,0.155 -1.79357,-0.549 -0.19255,-0.134 -0.312,-0.349 -0.96454,-1.983 0.002,-1.35353 -0.66925,-0.0119 0.033,-1.34957 0.0465,-2.33531 0.6613,-0.0127\"},\"40069\":{\"name\":\"Johnston, OK\",\"path\":\"m 507.67574,393.14414 5.90487,0.06 -0.0126,1.94844 2.00588,0.0676 -0.0232,6.044 -1.20775,0.0173 -0.0105,1.01985 -2.15674,-0.0671 0.0642,-0.104 0,-0.144 -0.72385,-0.854 -0.99662,-0.246 -4.92429,-0.05 0.0392,-3.696 0.98771,0 0.0499,-4.001 1.00375,0\"},\"40123\":{\"name\":\"Pontotoc, OK\",\"path\":\"m 514.06376,383.83314 1.5207,-0.009 0.0464,3.32773 -0.009,2.015 -1.98433,0 -0.0571,4.034 -5.90487,-0.06 0.0143,-2.016 -1.97542,-0.02 0.009,-1.004 0.0481,-5.038 0.0642,-2.539 2.88468,1.508 1.15082,0.68824 1.52081,-0.79174 1.32381,0.31049 0.65109,0.68048 0.69673,-1.09447\"},\"40049\":{\"name\":\"Garvin, OK\",\"path\":\"m 505.77164,385.07014 -0.0481,5.038 -3.95441,-0.05 -0.97166,0.312 -0.0481,0.06 -0.0321,0.234 0.14263,0.321 0.29774,0.242 0.2496,0.722 0.22464,0.997 -0.7078,0.119 -3.1325,-0.05 -3.96154,-0.06 0.0772,-4.04416 -2.00628,-0.0208 0.0802,-4.019 13.7905,0.202\"},\"40099\":{\"name\":\"Murray, OK\",\"path\":\"m 497.79151,393.01614 3.1325,0.05 0.7078,-0.119 -0.22464,-0.997 -0.2496,-0.722 -0.29774,-0.242 -0.14263,-0.321 0.0321,-0.234 0.0481,-0.06 0.97166,-0.312 3.95441,0.05 -0.009,1.004 1.97542,0.02 -0.0143,2.016 -1.00375,0 -0.0499,4.001 -0.98771,0 -1.8007,-0.02 -0.19968,-0.119 -0.0571,-0.113 0,-0.05 0.21751,-0.153 -0.041,-0.506 -0.0553,-0.06 -5.95479,-0.09 0.0481,-3.022\"},\"40085\":{\"name\":\"Love, OK\",\"path\":\"m 493.69269,403.02914 11.19464,0.153 -0.033,1.34957 0.66925,0.0119 -0.002,1.35353 -0.18541,0.104 -2.85973,4.96 -0.0891,0.119 -0.19255,0.153 -0.27278,0.09 -0.30487,-0.04 -0.26565,-0.09 -1.13187,-1.87606 0.71938,-1.96862 -1.33812,-0.65128 -2.68027,2.38013 -1.10671,-0.30417 -0.16759,-0.112 -0.11232,-0.136 0,0 -0.0161,-0.04 -0.0499,-0.119 -0.37618,-1.719 -1.46374,0.394 0.0642,-4.002\"},\"40019\":{\"name\":\"Carter, OK\",\"path\":\"m 493.82997,392.95214 3.96154,0.06 -0.0481,3.022 5.95479,0.09 0.0553,0.06 0.041,0.507 -0.21751,0.153 0,0.05 0.0571,0.113 0.19968,0.119 1.8007,0.02 -0.0392,3.696 -0.6613,0.0127 -0.0465,2.33531 -11.19464,-0.153 0.0499,-5.037 0.0874,-5.04\"},\"40067\":{\"name\":\"Jefferson, OK\",\"path\":\"m 482.85284,397.75714 10.88977,0.235 -0.0499,5.037 -0.0642,4.002 -0.68284,-0.476 -1.9362,-1.292 -0.65074,0.82 -0.99663,1.036 -0.94849,0.747 -0.59369,0.176 -0.22643,-0.02 -1.67768,-0.765 -0.21037,-0.194 0.49028,-1.061 0.16938,-1.229 -0.007,0 -0.7078,-0.28 -0.65967,0.161 -0.0232,0 -0.41006,0 -0.80408,-0.241 -0.0321,0 -0.0481,-0.05 -0.32983,-0.66 0.65805,-0.70388 -0.1551,-1.06166 -1.00077,-0.63883 0.008,-3.53363\"},\"40137\":{\"name\":\"Stephens, OK\",\"path\":\"m 491.90091,388.88714 2.00628,0.0208 -0.0772,4.04416 -0.0874,5.04 -10.88977,-0.235 0.0571,-5.023 0.0571,-3.97678 1.02686,-0.0232 7.90703,0.153\"},\"40033\":{\"name\":\"Cotton, OK\",\"path\":\"m 473.05062,394.82414 1.94155,4.2e-4 1.17842,-0.81253 3.81362,-0.003 0.99662,-0.849 0.66679,-0.444 1.26228,0.02 -0.0571,5.023 -0.008,3.53388 1.00077,0.63908 0.1551,1.06191 -0.65805,0.70413 -1.14817,-1.889 -2.94173,-0.923 -0.72385,-0.162 -0.36905,0.208 -0.76307,0.965 -1.01267,0.909 -0.016,0.02 -0.007,0 -0.54021,-0.194 -0.89856,-1.446 -0.43324,-0.369 -0.41897,-0.277 -0.19255,-0.01 0.11945,-3.993 -0.98771,-0.02 0.041,-1.68\"},\"40031\":{\"name\":\"Comanche, OK\",\"path\":\"m 474.13461,384.46714 9.88423,0.248 -0.025,4.019 -1.02686,0.0232 -0.0571,3.97678 -1.26228,-0.02 -0.66679,0.444 -0.99662,0.849 -3.81362,0.003 -1.17842,0.81253 -1.94155,-4.2e-4 0.0553,-1.749 -1.0929,-0.622 -1.98433,-0.06 0.0571,-2.016 0.17651,-6.035 3.87239,0.121\"},\"40141\":{\"name\":\"Tillman, OK\",\"path\":\"m 470.08571,390.38114 -0.0571,2.016 1.98433,0.06 1.0929,0.622 -0.0553,1.749 -0.041,1.679 0.98771,0.02 -0.11945,3.994 -1.72047,0.53 -1.23731,-0.05 -1.74365,-0.426 -1.75078,-1.047 -0.26565,-0.133 -0.025,0 -1.74364,-0.138 -0.76307,0.01 -0.35301,0.02 -0.7078,-0.161 -0.3851,-0.119 -0.24069,-0.07 -0.009,-0.01 0,0 -0.32805,-1.783 0.0161,-0.499 0.0232,-0.531 0.29774,-0.09 0.0642,-0.126 0,-0.188 -0.2817,-0.795 -0.11945,-0.1 -0.25852,0.03 -0.1034,-0.348 -0.0321,-0.447 0.353,-1.553 0.75594,-1.575 0.42432,-0.595 0.41898,-0.09 0.79516,0.06 0.0891,0.1 0.1355,-0.02 0.0731,-0.05 0.0392,-0.545 -0.14263,-0.273 -0.24247,-0.298 1.2694,0.05 0.62757,0.772 -0.009,0.255 3.28761,0.1\"},\"40065\":{\"name\":\"Jackson, OK\",\"path\":\"m 462.36232,384.85914 1.06081,-0.795 0.1765,-0.03 0.0731,0.03 0.39401,0.266 0.0874,0.146 -0.44642,3.21408 2.0617,0.0789 -0.85934,1.439 0.24247,0.298 0.14263,0.272 -0.0392,0.546 -0.0731,0.05 -0.1355,0.02 -0.0891,-0.1 -0.79516,-0.06 -0.41898,0.09 -0.42432,0.595 -0.75594,1.575 -0.353,1.552 0.0321,0.448 0.1034,0.348 0.25852,-0.03 0.11945,0.1 0.2817,0.795 0,0.187 -0.0642,0.127 -0.29774,0.09 0,-0.02 -0.89143,-1.551 -0.94136,-0.506 -0.82725,-0.45 -0.8112,1.453 -0.007,0.02 -0.025,0.04 -0.016,0 -0.14441,0.06 -0.63471,-0.06 -0.61865,-0.586 -0.46711,-0.273 -0.28883,-0.121 -0.90035,-0.105 -0.20859,-0.03 -0.10341,0.04 -0.73276,0.925 -0.73098,0 -0.16046,0 -0.57943,-0.137 -1.31754,-1.254 -0.47424,-0.561 -0.98058,-1.272 3.42311,0.138 0.18542,-5.03 2.6119,0.09 1.78466,-0.06 -0.0892,-0.208 -0.025,-0.507 0.0642,-0.176 0.62757,-0.997 2.91677,0.113 0.0802,-0.218\"},\"40055\":{\"name\":\"Greer, OK\",\"path\":\"m 450.51871,379.59614 1.97542,0.09 0.0802,-2.01 6.18121,0.243 0.79338,0.08 0.74881,0.644 0.79516,1.173 -0.0802,0.522 -0.17651,0.626 0.24069,2.717 0.13728,0.193 1.14817,0.987 -0.0802,0.218 -2.91677,-0.112 -0.62757,0.996 -0.0642,0.177 0.025,0.506 0.0892,0.209 -1.78466,0.06 -2.6119,-0.09 0.0482,-0.57327 -1.23583,-0.0596 0.18206,-4.48509 -2.94708,-0.114 0.0802,-2.001\"},\"40075\":{\"name\":\"Kiowa, OK\",\"path\":\"m 459.54895,377.99714 0.92531,-0.01 9.53835,0.314 3.29475,0.05 0.95562,0.507 -0.12837,5.61 -3.87239,-0.121 -0.17651,6.035 -3.28761,-0.1 0.009,-0.255 -0.62757,-0.772 -1.2694,-0.05 0.85934,-1.439 -2.0617,-0.0789 0.44642,-3.21408 -0.0874,-0.146 -0.39401,-0.266 -0.0731,-0.03 -0.1765,0.03 -1.06081,0.795 -1.14817,-0.987 -0.13728,-0.193 -0.24069,-2.717 0.17651,-0.626 0.0802,-0.522 -0.79516,-1.173 -0.74881,-0.644\"},\"40057\":{\"name\":\"Harmon, OK\",\"path\":\"m 448.42919,379.50914 2.08952,0.09 -0.0802,2.001 2.94708,0.114 -0.18206,4.48559 1.23583,0.0599 -0.0482,0.57352 -0.18542,5.029 -3.42311,-0.137 -2.75453,-1.373 0.12836,-4.275 0.27278,-6.565\"},\"40101\":{\"name\":\"Muskogee, OK\",\"path\":\"m 527.58683,361.95814 2.14658,-0.02 1.33811,1.31404 1.93235,-0.35523 2.79664,0.0152 1.06081,0 2.45458,0.0449 0.1395,3.9651 0.0624,2.79728 1.41563,1.35672 -0.30309,0.199 -1.43343,1.687 -0.59191,1.66384 0.23768,0.27122 -0.62737,0.78937 -0.27963,-0.25385 -0.28107,0.46596 -0.82868,0.003 -0.0115,-0.57034 -1.33291,-0.0313 -0.004,-0.34332 -0.0464,-5.994 -6.83909,0.04 -0.009,-4.026 -0.98771,0 -0.009,-3.031\"},\"40091\":{\"name\":\"McIntosh, OK\",\"path\":\"m 528.59237,369.00614 6.83909,-0.04 0.0464,5.994 -0.51743,-0.66207 -0.74346,-0.0188 -0.72167,0.63082 -1.24801,0.298 -3.61387,2.007 -0.69176,0.316 -2.14747,-0.004 -1.55733,0.78293 -0.67571,-0.03 0.0499,-3.197 0,-2.018 1.96651,0 0,-0.644 0.27278,-1.373 0.7078,-2.041 2.03425,0\"},\"40063\":{\"name\":\"Hughes, OK\",\"path\":\"m 515.0283,375.05514 8.58273,0.03 -0.0499,3.197 -0.36905,0.06 -0.16224,0.1 -0.90748,1.238 -0.5206,0.964 -0.0731,6.535 -5.89773,-0.01 -0.0465,-3.32773 -1.5207,0.009 0.0321,-4.752 0.91639,0.01 0.016,-4.037\"},\"40133\":{\"name\":\"Seminole, OK\",\"path\":\"m 511.64441,372.47014 0.12124,0.12 0.11232,0.03 1.39063,0.09 0.0321,-0.03 0.025,-0.119 -0.066,-0.289 0.15333,-0.79 1.0929,-0.399 0.54555,-0.145 -0.0232,4.111 -0.016,4.037 -0.91639,-0.01 -0.0321,4.752 -0.69673,1.09422 -0.65109,-0.68061 -1.32381,-0.31061 -1.52081,0.79149 -1.15082,-0.68849 0.0784,-11.825 0.97345,-0.314 1.87201,0.57\"},\"40125\":{\"name\":\"Pottawatomie, OK\",\"path\":\"m 502.02583,370.91614 9.61145,0.123 0.007,1.431 -1.87201,-0.57 -0.97345,0.314 -0.0784,11.825 -2.88468,-1.508 -1.53147,1.31364 -1.10216,-0.0601 -0.39383,-0.72553 -0.95191,0.176 0.13729,-10.29 0.0321,-2.029\"},\"40027\":{\"name\":\"Cleveland, OK\",\"path\":\"m 492.13446,372.78414 9.85928,0.161 -0.13729,10.29 -1.0198,0.06 -2.3623,-0.632 -0.24069,-0.145 -0.0963,-0.09 -0.12124,-0.369 -0.15154,-1.302 -0.28348,-1.125 -0.88252,-1.488 -3.76899,-3.767 -0.81833,-0.667 0.0232,-0.931\"},\"40087\":{\"name\":\"McClain, OK\",\"path\":\"m 492.11129,373.71514 0.81833,0.667 3.76899,3.767 0.88252,1.488 0.28348,1.125 0.15154,1.302 0.12124,0.369 0.0963,0.09 0.24069,0.144 2.3623,0.633 1.0198,-0.06 0.95191,-0.176 0.39383,0.72553 1.10216,0.0601 1.53147,-1.31364 -0.0642,2.539 -13.7905,-0.202 0.13015,-11.128 0,-0.03\"},\"40051\":{\"name\":\"Grady, OK\",\"path\":\"m 484.21852,372.61514 1.59559,0.018 1.74596,1.02443 2.28588,0.22119 1.61281,0.11041 0.65253,-0.24 -0.13015,11.128 -0.0802,4.019 -7.90703,-0.153 0.025,-4.019 0.19968,-12.1\"},\"40015\":{\"name\":\"Caddo, OK\",\"path\":\"m 480.27303,368.50014 0.0981,0 0.016,0.248 -0.0802,3.794 3.91161,0.07 -0.19968,12.1 -9.88423,-0.248 0.12837,-5.61 0.066,-0.09 0.0642,-2.373 -0.0321,-2.378 0.0963,-3.648 0.0624,-2.015 5.75332,0.152\"},\"40017\":{\"name\":\"Canadian, OK\",\"path\":\"m 482.33938,364.52914 9.88423,0.188 -0.0892,8.067 -0.0232,0.931 0,0.03 -0.65253,0.24 -1.61281,-0.11041 -2.28588,-0.22119 -1.74596,-1.02443 -1.59559,-0.018 -3.91161,-0.07 0.0802,-3.794 -0.016,-0.248 -0.0981,0 0.0766,-4.00505 1.9898,0.034\"},\"40109\":{\"name\":\"Oklahoma, OK\",\"path\":\"m 492.22361,364.71714 9.88423,0.173 -0.082,6.026 -0.0321,2.029 -9.85928,-0.161 0.0892,-8.067\"},\"40081\":{\"name\":\"Lincoln, OK\",\"path\":\"m 511.77278,359.96014 -0.0321,6.998 -0.10341,4.081 -9.61145,-0.123 0.082,-6.026 0.0624,-5.028 9.60254,0.1\"},\"40107\":{\"name\":\"Okfuskee, OK\",\"path\":\"m 519.68872,366.99014 -0.009,2.025 1.94512,0 0.007,4.058 1.97898,0 0,2.018 -8.58273,-0.03 0.0232,-4.111 -0.54555,0.145 -1.0929,0.399 -0.15333,0.79 0.066,0.289 -0.025,0.119 -0.0321,0.03 -1.39063,-0.09 -0.11232,-0.03 -0.12124,-0.12 -0.007,-1.431 0.10341,-4.081 7.94803,0.03\"},\"40111\":{\"name\":\"Okmulgee, OK\",\"path\":\"m 527.58683,361.95814 0.009,3.031 0.98771,0 0.009,4.026 -2.03425,0 -0.7078,2.041 -0.27278,1.373 0,0.644 -1.96651,0 -1.97898,0 -0.007,-4.058 -1.94512,0 0.009,-2.025 0.007,-5.039 2.95065,0 3.94549,0.02 0.99484,-0.02\"},\"40145\":{\"name\":\"Wagoner, OK\",\"path\":\"m 533.58976,356.86514 4.29136,-0.02 0.007,0.806 -0.48138,1.13 -0.0731,0.08 -0.25673,0.01 -0.36905,0.33 -0.11233,0.216 -0.0731,1.31 0.29774,2.122 0.041,0.06 -1.06081,0 -2.79664,-0.0152 -1.93235,0.35523 -1.33811,-1.31404 -2.14658,0.02 -0.99484,0.02 0.0133,-1.14346 0.9395,-0.0294 0.11513,-5.93016 2.63687,-0.02 0.88252,1.133 0.20146,0.361 -0.0802,0.315 -0.28882,0.04 0.0464,0.105 0.1141,0.07 2.41758,-0.02\"},\"40131\":{\"name\":\"Rogers, OK\",\"path\":\"m 526.75245,344.79514 6.92645,-0.02 1.95982,-7e-4 -0.0486,2.0077 -1.96651,0.02 -0.0499,6.041 0.016,4.029 -2.41758,0.02 -0.1141,-0.07 -0.0464,-0.105 0.28882,-0.04 0.0802,-0.315 -0.20146,-0.361 -0.88252,-1.133 -2.63687,0.02 -1.06818,-0.0139 0.0766,-5.52951 0.46534,-0.002 0.0231,-0.47006 -0.44526,-0.0278 0.041,-4.034\"},\"40105\":{\"name\":\"Nowata, OK\",\"path\":\"m 531.96556,335.46514 2.09131,0 0.0287,1.55324 -0.43039,-0.007 0.0238,7.76815 -6.92645,0.02 0.0373,-7.90566 0.38354,0.0121 -0.0286,-1.41144 4.82088,-0.03\"},\"40147\":{\"name\":\"Washington, OK\",\"path\":\"m 523.91412,335.49914 3.23056,0 0.0286,1.41144 -0.38354,-0.0121 -0.0373,7.90566 -0.041,4.034 -3.47124,0 0.009,-13.33 0.66501,0\"},\"40143\":{\"name\":\"Tulsa, OK\",\"path\":\"m 523.2402,348.82914 3.47124,0 0.44526,0.0278 -0.0231,0.47006 -0.46534,0.002 -0.0766,5.52951 1.06818,0.0139 -0.11513,5.93016 -0.9395,0.0294 -0.0133,1.14346 -3.94549,-0.02 0.0624,-5.061 -4.94033,-0.02 0,-2 0.54556,0 4.92607,0.04 0,-6.089\"},\"40037\":{\"name\":\"Creek, OK\",\"path\":\"m 511.80665,354.89714 5.96192,-0.02 0,2 4.94033,0.02 -0.0624,5.061 -2.95065,0 -0.007,5.039 -7.94803,-0.03 0.0321,-6.998 0.0339,-5.063\"},\"40119\":{\"name\":\"Payne, OK\",\"path\":\"m 506.22092,352.84614 1.96116,0.02 -0.025,2.035 3.64953,0 -0.0339,5.063 -9.60254,-0.1 -3.92945,-1.052 0.0571,-4.036 3.92944,0.05 0.025,-2.016 3.96867,0.04\"},\"40083\":{\"name\":\"Logan, OK\",\"path\":\"m 492.36802,354.54914 3.96154,0.07 1.96829,0.152 -0.0571,4.036 3.92945,1.052 -0.0624,5.028 -9.88423,-0.173 0.14441,-10.168\"},\"40073\":{\"name\":\"Kingfisher, OK\",\"path\":\"m 482.51588,354.34914 1.96116,0.04 7.89098,0.159 -0.14441,10.168 -9.88423,-0.188 0.0963,-4.016 0.025,-3.352 0.0553,-2.812\"},\"40011\":{\"name\":\"Blaine, OK\",\"path\":\"m 474.65699,354.15014 7.85889,0.199 -0.0553,2.812 -0.025,3.352 -0.0963,4.016 -1.9898,-0.034 -0.0766,4.00505 -5.75332,-0.152 0,-6.035 0.13728,-8.163\"},\"40149\":{\"name\":\"Washita, OK\",\"path\":\"m 474.45731,370.36314 -0.0963,3.648 0.0321,2.378 -0.0642,2.373 -0.066,0.09 -0.95562,-0.507 -3.29475,-0.05 -9.53835,-0.314 0.2086,-8.076 13.77445,0.456\"},\"40009\":{\"name\":\"Beckham, OK\",\"path\":\"m 460.71495,368.90114 -0.0321,1.006 -0.2086,8.076 -0.92531,0.01 -0.79338,-0.08 -6.18121,-0.243 -0.0802,2.01 -1.97542,-0.09 -2.08952,-0.09 0.15333,-3.519 0.23177,-5.547 7.8999,0.332 0.0713,-2.018 3.92945,0.144\"},\"40039\":{\"name\":\"Custer, OK\",\"path\":\"m 460.74704,361.87614 13.77267,0.437 0,6.035 -0.0624,2.015 -13.77445,-0.456 0.0321,-1.006 0.0321,-7.025\"},\"40043\":{\"name\":\"Dewey, OK\",\"path\":\"m 468.7753,354.05314 5.88169,0.1 -0.13728,8.163 -13.77267,-0.437 0.0731,-4.651 0.1034,-3.503 7.85176,0.331\"},\"40129\":{\"name\":\"Roger Mills, OK\",\"path\":\"m 460.82014,357.22514 -0.0731,4.651 -0.0321,7.025 -3.92945,-0.144 -0.0713,2.018 -7.8999,-0.332 0.19433,-4.546 0.24782,-6.06 1.2251,-0.027 0.51993,-2.01169 1.4837,-0.43465 -0.006,1.81413 0.49074,0.12025 0.44037,0.548 0.16046,0.128 0.90926,0.571 0.57765,0.208 0.92353,0.234 0.28169,0.03 1.08577,-0.451 0.0642,-0.06 0.88431,-1.398 0.312,-1.054 0.0481,-0.1 0.17828,-0.159 0.45642,-0.33 0.31378,-0.155 0.45107,-0.1 0.76307,0\"},\"40045\":{\"name\":\"Ellis, OK\",\"path\":\"m 457.18843,343.65614 -0.29239,9.91164 4.02752,0.15436 -0.1034,3.503 -0.76307,0 -0.45107,0.1 -0.31378,0.155 -0.45642,0.33 -0.17828,0.159 -0.0481,0.1 -0.312,1.054 -0.88431,1.398 -0.0642,0.06 -1.08577,0.451 -0.28169,-0.03 -0.92353,-0.234 -0.57765,-0.208 -0.90926,-0.571 -0.16046,-0.128 -0.44037,-0.548 -0.49074,-0.12025 0.006,-1.81413 -1.4837,0.43465 -0.51993,2.01169 -1.2251,0.027 0.16938,-4.04 0.37796,-10.278 0.10341,-2.163 7.28124,0.3\"},\"40153\":{\"name\":\"Woodward, OK\",\"path\":\"m 457.18843,343.65614 5.68022,0.151 0.18542,-5.192 0.016,0.33 0.41719,0.369 0.30487,0.113 1.60815,-0.07 0.24069,0.08 0.26564,0.155 3.07724,4.32 -0.0392,2.139 -0.16938,7.996 -7.85176,-0.331 -4.02752,-0.15436 0.29239,-9.91164\"},\"40093\":{\"name\":\"Major, OK\",\"path\":\"m 484.62145,347.48514 -0.14441,6.905 -1.96116,-0.04 -7.85889,-0.199 -5.88169,-0.1 0.16938,-7.996 2.13766,0.08 0.41719,0.828 0.20859,0.24 0.27278,0.186 1.68838,0.907 1.00376,0.467 0.33696,0.114 0.41897,0.05 1.27832,-0.12 0.0392,-1.528 7.87494,0.2\"},\"40047\":{\"name\":\"Garfield, OK\",\"path\":\"m 496.45792,344.69114 0.009,0 -0.13728,9.931 -3.96154,-0.07 -7.89098,-0.159 0.14441,-6.905 0.0713,-3.02 11.76515,0.226\"},\"40103\":{\"name\":\"Noble, OK\",\"path\":\"m 503.87466,344.77914 0.10653,0.40063 0.23237,0.27407 1.78481,-0.42232 0.36378,0.72329 -0.67584,0.50687 -0.9641,-0.0697 0.005,0.61212 -0.41006,0 -0.041,4.019 1.96829,0.02 -0.0232,2.009 -3.96867,-0.04 -0.025,2.016 -3.92944,-0.05 -1.96829,-0.152 0.13728,-9.931 7.40782,0.09\"},\"40117\":{\"name\":\"Pawnee, OK\",\"path\":\"m 506.22092,352.84614 0.0232,-2.009 -1.96829,-0.02 0.041,-4.019 0.41006,0 0.0802,0.481 0.42611,0.468 0.24782,0.135 0.53129,0.12 1.18655,-0.27819 0.67232,-1.1447 1.29541,-1.03794 0.81053,0.40388 0.28091,2.45597 0.86472,0.68278 1.12417,0.2792 0.92237,0.97105 -0.43962,1.12197 1.0017,0.48779 0.85757,-1.0112 0.64679,-0.0366 -0.0162,0.42463 2.00164,2.15422 2.00164,0.0787 -0.90863,1.32039 -0.54556,0 -5.96192,0.02 -3.64953,0 0.025,-2.035 -1.96116,-0.02\"},\"40113\":{\"name\":\"Osage, OK\",\"path\":\"m 509.58698,335.44214 4.0899,0.02 9.57223,0.03 -0.009,13.33 0,6.089 -4.92607,-0.04 0.90863,-1.32039 -2.00164,-0.0787 -2.00164,-2.15422 0.0162,-0.42463 -0.64679,0.0366 -0.85757,1.0112 -1.0017,-0.48779 0.43962,-1.12197 -0.92237,-0.97105 -1.12417,-0.2792 -0.86472,-0.68278 -0.28091,-2.45597 -0.81053,-0.40388 -1.29541,1.03794 -0.67232,1.1447 -1.18655,0.27819 -0.53129,-0.12 -0.24782,-0.135 -0.42611,-0.468 -0.0802,-0.481 -0.005,-0.61212 0.9641,0.0697 0.67584,-0.50687 -0.36378,-0.72329 -1.78481,0.42232 -0.23237,-0.27407 -0.10653,-0.40063 0.0963,-1.157 0.98058,-1.061 2.69213,-1.277 0.36192,0.07 0.1355,-0.05 1.35855,-0.834 0.0874,-5.031\"},\"40071\":{\"name\":\"Kay, OK\",\"path\":\"m 496.60234,335.29914 5.73727,0.07 7.24737,0.07 -0.0874,5.031 -1.35855,0.834 -0.1355,0.05 -0.36192,-0.07 -2.69213,1.277 -0.98058,1.061 -0.0963,1.157 -7.40782,-0.09 -0.009,0 0.14442,-9.392\"},\"40053\":{\"name\":\"Grant, OK\",\"path\":\"m 490.40686,335.19214 6.19548,0.107 -0.14442,9.392 -11.76515,-0.226 -0.0945,0 0.17472,-8.068 -0.016,-1.303 5.64991,0.105\"},\"40003\":{\"name\":\"Alfalfa, OK\",\"path\":\"m 480.4745,334.99314 4.28245,0.09 0.016,1.303 -0.17472,8.068 0.0945,0 -0.0713,3.02 -7.87494,-0.2 0.12124,-12.407 3.60675,0.115\"},\"40151\":{\"name\":\"Woods, OK\",\"path\":\"m 460.26566,334.34014 8.29392,0.282 8.30817,0.256 -0.12124,12.407 -0.0392,1.528 -1.27832,0.12 -0.41897,-0.05 -0.33696,-0.114 -1.00376,-0.467 -1.68838,-0.907 -0.27278,-0.186 -0.20859,-0.24 -0.41719,-0.828 -2.13766,-0.08 0.0392,-2.139 -3.07724,-4.32 -0.26564,-0.155 -0.24069,-0.08 -1.60815,0.07 -0.30487,-0.113 -0.41719,-0.369 -0.016,-0.33 -2.78841,-4.275\"},\"40059\":{\"name\":\"Harper, OK\",\"path\":\"m 450.30834,333.89814 8.40623,0.385 1.55109,0.06 2.78841,4.275 -0.18542,5.192 -5.68022,-0.151 -7.28124,-0.3 0.40115,-9.458\"},\"40007\":{\"name\":\"Beaver, OK\",\"path\":\"m 433.13752,333.17614 5.682,0.241 9.90741,0.408 1.58141,0.07 -0.40115,9.458 -0.10341,2.163 -9.94841,-0.444 -7.48092,-0.376 0.4261,-8.063 0.15155,0 0.18542,-3.455\"},\"41007\":{\"name\":\"Clatsop, OR\",\"path\":\"m 91.290036,61.438143 -2.34804,8.083 -1.943328,-0.474 -3.576437,-1.012 -0.04814,-0.02 0.01605,-0.233 -3.80821,-1.15 1.286782,-2.867791 -0.447508,-0.984692 1.305519,-0.510073 0.315328,-1.109888 0.0145,-0.698556 0.06418,-0.836 0.131678,-0.445666 -0.21482,-2.028013 0.271142,-0.228963 0.404106,0.111865 0.525212,1.055473 0.561363,0.550253 0.744433,-0.443385 1.075648,-0.01229 0.533929,0.801399 1.929793,0.219716 0.32925,-0.593389 0.714931,-0.256 0.08023,-0.234 1.035847,0.06 0.08914,0.06 0.04814,0.03 0.06418,0.105 0.233556,0.417 0.167589,0.538 -0.351225,1.029 0.673925,1.052 0.121235,0.04\"},\"41009\":{\"name\":\"Columbia, OR\",\"path\":\"m 93.771791,61.541143 0.82012,-0.151 0.755937,0.314 2.594076,3.18 0.153327,0.605 0.449283,2.505 -0.144413,2.185 -0.119452,0.378 -0.418974,2.805 -2.619036,-0.619 -1.214135,-1.719 -5.086528,-1.503 2.34804,-8.083 2.481755,0.103\"},\"41015\":{\"name\":\"Curry, OR\",\"path\":\"m 62.104455,133.42114 1.501177,0.585 -0.07131,0.03 -0.297739,0.225 -2.497801,2.539 -0.0089,0.112 0.09627,0.249 0,0.09 -0.07131,0.119 -1.519005,1.865 -0.329831,0.2 -0.625788,-0.04 -0.877172,-0.329 -0.0731,-0.06 -0.355557,-0.10626 -0.457962,1.81894 -0.949503,0.59009 0.09502,0.79489 1.404134,0.23034 0.682839,0.41 0.625787,0.915 0.160459,1.92 -0.08736,0.588 -0.41006,0.642 -0.3851,0.547 -1.116076,2.354 0.02318,0.627 0.09627,0.61 -6.332754,-1.993 -0.634702,-1.334 -0.747022,-2.266 0.169372,-4.91 0.570519,-1.895 0.474243,-1.269 0.119452,-0.275 0.934377,-0.87728 0.476269,-2.32247 -1.17813,-2.46159 0.02422,-0.58966 0.0089,-2.105 1.961157,-2.163 3.558608,1.102 0.04814,0.103 0.723845,1.89 -0.08023,1.286 -0.144413,0.217 -0.176504,0.619 -0.265647,1.116 -0.121236,1.631 0.06418,0.122 2.323079,0.24 1.244444,-0.659 0.251384,-0.184 0.256733,-0.779 1.317541,0.06 0.60261,0.178\"},\"41011\":{\"name\":\"Coos, OR\",\"path\":\"m 62.104455,133.42114 -0.60261,-0.178 -1.317541,-0.06 -0.256733,0.779 -0.251384,0.183 -1.244444,0.66 -2.323079,-0.241 -0.06418,-0.121 0.121236,-1.631 0.265647,-1.116 0.176504,-0.619 0.144413,-0.217 0.08023,-1.286 -0.723845,-1.89 -0.04814,-0.103 -3.558608,-1.102 3.856197,-5.9146 -0.318369,-1.45974 1.576639,-0.45304 3.280492,-4.32214 0.20204,-1.03648 3.054056,0.941 2.394394,0.771 -0.601141,1.98729 0.902446,0.22221 -0.568454,1.92192 0.869759,0.28758 -1.142249,3.77321 0.949699,0.37379 -1.10003,3.785 -1.057831,-0.30209 -0.687588,1.99952 -0.770211,-0.25343 -1.133905,3.801 -0.103407,0.813\"},\"41033\":{\"name\":\"Josephine, OR\",\"path\":\"m 70.918964,138.14414 -4.580193,15.493 -4.708559,-1.317 -4.974207,-1.375 -0.09627,-0.61 -0.02318,-0.627 1.116076,-2.354 0.3851,-0.547 0.41006,-0.642 0.08736,-0.588 -0.160459,-1.92 -0.625787,-0.915 -0.682839,-0.41 -1.404134,-0.23084 -0.09502,-0.79502 0.949503,-0.59021 0.457962,-1.81907 0.355557,0.10614 0.0731,0.06 0.877172,0.33 0.625788,0.04 0.329831,-0.199 1.519005,-1.865 0.07131,-0.12 0,-0.09 -0.09627,-0.249 0.0089,-0.113 2.497801,-2.538 0.297739,-0.225 0.07131,-0.03 -0.270996,0.981 2.594075,1.486 0.730977,0.403 0.595479,0.264 0.900349,-0.09 0.135498,-0.216 0.625787,0 1.486914,0.45 0.345877,0.273 0.169372,0.586\"},\"41029\":{\"name\":\"Jackson, OR\",\"path\":\"m 88.114745,136.04014 -3.182423,11.031 -0.442152,1.351 -2.747402,9.571 -0.916396,-0.282 -0.52238,-0.169 -2.016426,-0.546 -2.208976,-0.547 -5.569686,-1.574 -0.426106,-0.122 -0.722062,-0.215 -1.752561,-0.637 -1.228398,-0.255 -0.04101,0 4.580193,-15.493 0.04814,-0.168 1.567142,-0.65 0.634702,0.199 1.688378,0.402 3.5907,0.563 2.458578,-1.391 2.355171,-1.068 1.508593,0.60318 1.433142,-1.13218 1.911237,0.538\"},\"41019\":{\"name\":\"Douglas, OR\",\"path\":\"m 93.313593,126.86214 0.29774,0.137 0.281693,0.378 0.682839,1.769 0.08736,0.424 -0.0071,1.865 -2.868637,3.423 0.307737,0.82861 -3.538298,-1.22261 -0.442151,1.576 -1.911237,-0.538 -1.433142,1.13218 -1.508593,-0.60318 -2.355171,1.068 -2.458578,1.391 -3.5907,-0.563 -1.688378,-0.402 -0.634702,-0.199 -1.567142,0.651 -0.04814,0.167 -0.169372,-0.586 -0.345877,-0.273 -1.486914,-0.45 -0.625787,0 -0.135498,0.216 -0.900349,0.09 -0.595479,-0.264 -0.730977,-0.402 -2.594075,-1.487 0.270996,-0.981 -1.501177,-0.585 0.103407,-0.813 1.133905,-3.801 0.770211,0.25343 0.687588,-1.99952 1.057831,0.30209 1.10003,-3.785 -0.949699,-0.37379 1.142249,-3.77321 -0.86976,-0.28758 0.568455,-1.92192 -0.902446,-0.22221 0.601141,-1.98729 -2.394394,-0.771 -3.054056,-0.941 2.668956,-5.286 1.477999,0.481 1.727601,0.514 0.497421,0.07 2.080609,-1.279 1.96294,0.603 0.648964,0.403 0.418975,0.891 -0.08023,0.273 1.028716,1.785 0.79516,0.715 1.752561,1.246 3.342881,0.997 -1.126774,3.849 0.04992,1.599 1.686594,0.514 0.217511,0.05 0.03209,-0.04 1.78287,0.45 2.146576,0.626 -0.666794,2.387 3.879525,1.02 5.890602,1.695\"},\"41035\":{\"name\":\"Klamath, OR\",\"path\":\"m 96.47997,123.56014 10.73466,2.942 -1.57427,5.793 -0.3851,0.916 -0.65075,1.865 -1.92194,6.846 -1.03584,3.88 5.40031,1.479 2.16262,0.635 -4.42865,16.77 -9.304795,-2.603 -13.733447,-4.09 2.747402,-9.571 0.442152,-1.351 3.182423,-11.031 0.442151,-1.576 3.538298,1.22261 -0.307737,-0.82861 2.868637,-3.423 0.0071,-1.865 -0.08736,-0.424 -0.682839,-1.769 -0.281693,-0.378 -0.29774,-0.137 0.292243,-1.80489 2.874134,-1.49711\"},\"41037\":{\"name\":\"Lake, OR\",\"path\":\"m 107.21463,126.50214 5.51263,1.469 0.24069,0.07 10.32638,2.885 6.95855,1.831 -2.42072,9.95158 -0.48417,-0.27456 -1.60128,6.02802 -0.28801,-0.0769 -0.94132,3.49689 2.58695,0.65 1.30149,0.289 5.5679,1.4 -2.72422,10.959 -0.62757,2.788 -0.81121,3.199 -10.53319,-2.683 -4.74244,-1.198 -0.65074,-0.168 -6.0261,-1.599 -0.0232,0 -3.05406,-0.82 4.42865,-16.77 -2.16262,-0.635 -5.40031,-1.48 1.03584,-3.879 1.92194,-6.846 0.65075,-1.865 0.3851,-0.917 1.57427,-5.792\"},\"41025\":{\"name\":\"Harney, OR\",\"path\":\"m 136.08821,125.93914 13.49098,3.342 0.49028,-1.961 2.44254,0.66 1.19809,0.41 5.76758,1.391 -1.39777,5.849 -0.24782,0.754 -0.65075,2.693 -1.47086,6.188 -2.27495,9.779 -0.99484,4.821 -2.19471,9.593 0.12123,0.443 -0.0891,0.82 -1.23731,5.079 -9.61858,-2.211 -9.02311,-2.275 -0.58835,-0.151 0.81121,-3.199 0.62757,-2.788 2.72422,-10.959 -5.5679,-1.4 -1.30149,-0.289 -2.58695,-0.65 0.94132,-3.49689 0.28801,0.0769 1.60128,-6.02802 0.48417,0.27456 2.42072,-9.95158 0.48315,-1.976 1.9362,0.505 1.51901,-5.825 1.89697,0.482\"},\"41045\":{\"name\":\"Malheur, OR\",\"path\":\"m 160.55453,124.91014 0.62757,0.153 0.73098,-0.176 1.2694,-1.07 1.29437,-1.141 0.13728,-0.571 0.40114,-0.249 0.7078,-0.152 6.09029,1.391 0.83616,0.875 0.52951,0.779 -0.42432,1.946 4.63546,1.059 -0.041,0.121 -0.0232,0.194 0.0321,0.33 0.24069,0.408 2.00038,0.811 0.15333,-0.07 0.0874,0 0.63648,0.225 0.16759,0.105 0.85221,1.687 0.0161,0.03 0.0553,0.176 -0.0232,0.234 0,0.02 -0.009,0 -0.0321,0.06 -0.0232,0.05 -0.0232,0.04 -0.81299,0.997 -0.62579,2.555 -0.78089,1.478 -0.48138,0.804 -1.77574,4.307 -8.50963,37.886 -19.42972,-4.418 1.23731,-5.079 0.0891,-0.82 -0.12123,-0.442 2.19471,-9.594 0.99484,-4.821 2.27495,-9.779 1.47086,-6.188 0.65075,-2.692 0.24782,-0.755 1.39777,-5.849 1.07685,-4.871\"},\"41001\":{\"name\":\"Baker, OR\",\"path\":\"m 164.10779,109.13514 0.65075,-0.617 1.478,-0.811 0.3227,-0.04 0.72206,0.9 0.82725,0.642 0.84915,0.24806 2.12529,-1.47341 0.94051,2.19377 3.06855,0.72358 0.4582,-1.946 4.70856,1.052 7.6503,1.762 -0.77912,0.706 -0.50812,0.467 -0.40114,0.836 0.016,0.465 0.0571,0.225 0.0963,0.225 0.0232,0.185 -0.016,0.02 -0.53842,0.931 -0.37619,0.403 -0.48316,0.513 -0.87539,0.942 -1.53505,0.522 -0.39401,0.09 -0.11232,0.05 -0.37797,0.338 -3.55861,4.892 -0.20146,0.403 -0.55448,3.784 -4.63546,-1.059 0.42432,-1.945 -0.52951,-0.78 -0.83616,-0.875 -6.09029,-1.391 -0.7078,0.152 -0.40114,0.25 -0.13728,0.57 -1.29437,1.141 -1.2694,1.07 -0.73098,0.176 -0.62757,-0.153 -4.24144,-0.988 0.10518,-0.524 2.15795,-1.72719 -0.031,-1.67781 1.46553,-0.45543 -0.33163,-0.61257 1.23018,-1.375 0.24782,-0.378 -0.39521,-1.39693 -2.18103,-1.1665 0.2465,-0.97923 1.83304,0.0864 0.54207,-0.30242 1.34857,0.27364 0.076,-2.21785 0.53688,-0.60485 0.82257,0.20171 0.15332,-0.925 0.041,-0.555 -0.0731,-0.451\"},\"41063\":{\"name\":\"Wallowa, OR\",\"path\":\"m 173.82978,86.814143 5.84247,1.406 1.92015,0.466 8.81629,2.057 1.13212,3.528 0.0713,0.136 0.0481,0.09 0.73098,0.674 1.39955,1.287 0.58657,0.257 0.007,0 0.27456,0.353 0.312,0.396 0,0 0.10519,0.442 0.55448,2.907997 -0.0642,0.29 -0.38688,0.441 -1.54218,1.576 -2.78128,3.567 -0.54556,1.15 -2.40152,3.913 -7.6503,-1.761 0.42611,-1.911 -3.15759,-0.78461 0.27335,-1.0854 -0.53531,-0.10749 0.23574,-1.14182 -0.32845,-0.0887 -0.16759,-0.706 -0.43502,-1.101 -0.61865,-0.145 -0.2086,-0.627 0.27043,-1.36772 -0.56104,-0.23928 0.53385,-1.849782 -0.77275,-0.246215 0.59181,-2.303065 -0.59601,-2.243675 0.42611,-1.501956 0.60912,0.137001 0.46299,-1.906305 -3.53543,-0.82 0.65788,-3.151\"},\"41061\":{\"name\":\"Union, OR\",\"path\":\"m 173.1719,89.964143 3.53543,0.82 -0.46299,1.906305 -0.60912,-0.137001 -0.42611,1.501956 0.59601,2.243675 -0.59181,2.303065 0.77275,0.246215 -0.53385,1.849782 0.56104,0.23928 -0.27043,1.36772 0.2086,0.627 0.61865,0.145 0.43502,1.102 0.16759,0.706 0.32845,0.0884 -0.23574,1.14157 0.53531,0.10724 -0.27335,1.08515 3.15759,0.78461 -0.42611,1.911 -4.70856,-1.052 -0.4582,1.946 -3.06855,-0.72358 -0.94051,-2.19377 -2.12529,1.47341 -0.84915,-0.24806 -0.82725,-0.642 -0.72206,-0.9 -0.3227,0.04 -1.478,0.811 -0.65075,0.617 -4.13804,-1.888 0.46533,-1.895 0.1765,-2.708 -1.71868,-0.411 0.37674,-1.32372 -0.69231,-0.19528 0.45998,-1.958997 1.44111,0.400957 0.21117,-0.571566 2.67592,0.824131 0.56497,-1.778349 3.54488,1.093588 0.30805,-0.955413 1.13228,0.315218 1.41649,-4.897653 0.63666,0.153588 0.57653,-1.99883 0.39836,0.07987 0.16659,-0.689147 0.82775,0.180523 0.23383,-0.947914\"},\"41023\":{\"name\":\"Grant, OR\",\"path\":\"m 141.73634,102.76514 8.02826,1.984 10.20515,2.498 4.13804,1.888 0.0731,0.451 -0.041,0.555 -0.15332,0.925 -0.82257,-0.20171 -0.53688,0.60485 -0.076,2.21785 -1.34857,-0.27364 -0.54207,0.30242 -1.83304,-0.0864 -0.2465,0.97923 2.18103,1.1665 0.39521,1.39693 -0.24782,0.378 -1.23018,1.375 0.33163,0.61257 -1.46553,0.45543 0.0309,1.67781 -2.15795,1.72719 -0.10518,0.524 4.24144,0.988 -1.07685,4.871 -5.76758,-1.391 -1.19809,-0.41 -2.44254,-0.66 -0.49028,1.961 -13.49098,-3.342 2.00038,-7.763 2.98987,-11.516 -0.39016,-0.16219 1.04808,-3.73281\"},\"41069\":{\"name\":\"Wheeler, OR\",\"path\":\"m 129.19385,97.750143 11.08767,2.899997 -0.37921,1.63716 1.83403,0.47784 -1.04808,3.73281 0.39016,0.16219 -2.98987,11.516 -3.50334,-0.9 0.38011,-1.76278 -2.25728,-0.64783 0.30111,-1.12539 -5.78541,-1.478 0.20146,-0.866 0.54556,-1.954 1.71869,-5.681 -0.94169,-2.80142 0.44605,-3.209577\"},\"41013\":{\"name\":\"Crook, OR\",\"path\":\"m 127.9708,109.44214 -0.54556,1.954 -0.20146,0.866 5.78541,1.478 -0.30111,1.12539 2.25728,0.64783 -0.38011,1.76278 3.50334,0.9 -2.00038,7.763 -1.89697,-0.482 -1.51901,5.825 -1.9362,-0.505 -5.43953,-1.383 -0.34588,-0.121 0.50455,-1.928 -2.03488,-0.56102 0.60502,-1.88098 -5.91378,-1.551 0.4582,-1.929 -1.56714,-0.427 -2.16976,-0.657 1.02872,-3.857 -1.81675,-0.588 0.39402,-1.817 1.05368,-3.824 1.88092,0.522 0.51347,-1.927 2.55485,0.683 0.52238,-1.913 7.00668,1.824\"},\"41017\":{\"name\":\"Deschutes, OR\",\"path\":\"m 103.85749,107.01514 11.63501,3.238 -1.05368,3.824 -0.39402,1.817 1.81675,0.588 -1.02872,3.857 2.16976,0.657 1.56714,0.427 -0.4582,1.929 5.91378,1.551 -0.60502,1.88098 2.03488,0.56102 -0.50455,1.928 0.34588,0.121 5.43953,1.383 -0.48315,1.976 -6.95855,-1.831 -10.32638,-2.885 -0.24069,-0.07 -5.51263,-1.469 -10.73466,-2.942 0.49029,-0.795 0.538426,-1.157 0.786246,-2.17 2.219678,-2.137 2.59585,-3.279 0.21573,-0.506 0.1355,-1.061 0.25138,-2.275 0.14442,-3.165\"},\"41031\":{\"name\":\"Jefferson, OR\",\"path\":\"m 107.8422,97.767143 10.51002,2.891997 1.74543,0.514 9.59184,2.588 -1.71869,5.681 -7.00668,-1.824 -0.52238,1.913 -2.55485,-0.683 -0.51347,1.927 -1.88092,-0.522 -11.63501,-3.238 0.54752,-2.04113 1.07821,-0.97325 0.93625,-3.24462 0.94719,-1.811957 -0.63805,-0.416007 0.11908,-0.416007 0.99451,-0.345026\"},\"41043\":{\"name\":\"Linn, OR\",\"path\":\"m 85.624075,93.234143 1.510091,0.731 0.110048,1.244221 1.96343,-0.802221 1.904105,-0.273 0.893464,-0.165725 0.578345,0.201487 0.205548,0.698547 1.370248,-0.05811 1.451427,1.410353 3.481094,0.830447 0.840681,1.917153 1.006374,-0.568153 1.73651,1.254 1.0929,0.354998 2.65113,0.747 -0.93625,3.24462 -1.07821,0.97325 -0.54752,2.04113 -0.14442,3.165 -3.64062,-1.004 -4.749562,-1.237 -0.144413,0.192 -0.0089,0.09 0.05705,0.08 -0.08914,0.135 -0.739891,0.298 -0.222858,-0.06 -1.864882,-0.844 -1.101814,-0.666 -0.600827,-0.482 -0.588347,-0.635 -0.369054,-0.338 -0.955619,-0.562 -1.672332,-0.419 -0.786245,0.467 -0.169373,0.474 -0.249602,0.812 -3.487293,-1.013 -0.60261,-0.241 0.226424,-0.666 0.103407,-1.006 -0.02496,-0.112 -0.09628,-0.122 -0.215728,-0.05 -0.04992,-0.04 -0.02318,-0.1 -0.10519,-1.245 1.479782,-4.395998 -0.536422,-0.811054 1.309429,0.0496 0.712406,-0.985533 1.600735,-0.07702 -0.764851,-1.808 0.281693,-0.627\"},\"41039\":{\"name\":\"Lane, OR\",\"path\":\"m 67.223075,99.108143 5.407444,1.461997 2.836546,0.972 3.544346,0.941 2.708179,0.786 0.215728,0.05 0.09628,0.122 0.02496,0.112 -0.103407,1.006 -0.226424,0.666 0.60261,0.241 3.487293,1.013 0.249602,-0.811 0.169373,-0.475 0.786245,-0.467 1.672332,0.419 0.955619,0.562 0.369054,0.339 0.588347,0.634 0.600827,0.482 1.101814,0.666 1.864882,0.844 0.222858,0.06 0.739891,-0.298 0.08914,-0.135 -0.05705,-0.08 0.0089,-0.09 0.144413,-0.192 4.749563,1.237 3.64062,1.004 -0.25138,2.275 -0.1355,1.061 -0.21573,0.506 -2.59585,3.279 -2.219679,2.137 -0.786246,2.17 -0.538426,1.157 -0.49029,0.795 -2.874134,1.49711 -0.292243,1.80489 -5.890602,-1.695 -3.879525,-1.02 0.666794,-2.387 -2.146576,-0.626 -1.78287,-0.449 -0.03209,0.04 -0.217511,-0.05 -1.686594,-0.514 -0.04992,-1.599 1.126774,-3.849 -3.342881,-0.997 -1.752561,-1.246 -0.79516,-0.715 -1.028716,-1.785 0.08023,-0.273 -0.418975,-0.891 -0.648964,-0.403 -1.96294,-0.602 -2.080609,1.278 -0.497421,-0.07 -1.727601,-0.514 -1.477999,-0.481 3.455202,-8.903997\"},\"41003\":{\"name\":\"Benton, OR\",\"path\":\"m 85.342382,93.861143 0.764851,1.808 -1.600735,0.07702 -0.712407,0.985533 -1.309428,-0.0496 0.536422,0.811054 -1.479782,4.396 0.10519,1.245 0.02318,0.1 0.04992,0.04 -2.708179,-0.786 -3.544346,-0.941 -2.836546,-0.972 0.212437,-0.669768 -0.747673,-0.152838 0.184271,-0.611158 1.240904,0.414397 0.619355,-1.450249 0.681509,-0.549004 1.60136,0.56762 1.399553,-4.675 0.417191,-1.713 7.102954,2.13\"},\"41041\":{\"name\":\"Lincoln, OR\",\"path\":\"m 78.456938,84.041143 -2.018208,6.718 0.208595,0.497 1.592103,0.475 -0.417191,1.713 -1.399553,4.675 -1.60136,-0.56762 -0.681509,0.549004 -0.619355,1.450249 -1.240904,-0.414397 -0.184271,0.611158 0.747673,0.152838 -0.212437,0.669765 -5.407444,-1.461997 0.609741,-1.15 0.90035,-1.84 0.09628,-0.24 1.383507,-3.85 2.506715,-6.282 1.388856,-3.038 4.348419,1.333\"},\"41053\":{\"name\":\"Polk, OR\",\"path\":\"m 78.456938,84.041143 0.231773,-0.706 10.190885,3.052 -0.210379,0.772 -0.404011,0.76829 0.677128,0.729678 -0.210951,0.555924 -0.519848,0.32425 -0.947223,-0.115142 -0.952002,1.270591 -0.627701,0.01135 -0.06782,0.802897 1.036326,0.240343 0.07102,0.703688 -0.778444,0.163118 -0.353709,0.472015 0.03209,0.145 -0.281693,0.627 -7.102954,-2.13 -1.592103,-0.475 -0.208595,-0.497 2.018208,-6.718\"},\"41071\":{\"name\":\"Yamhill, OR\",\"path\":\"m 85.069603,76.656143 5.109705,1.528 0.941355,0.956 0.898567,1.052 0.982361,1.416 0.584782,0.344 -0.08023,1.358 -1.333586,-0.586 -1.775739,1.397 0.0089,0.33 -0.249602,0.851 -0.361923,0.725 -0.914612,0.36 -10.190885,-3.052 -0.946704,-0.29 0.932441,-3.069 4.997385,1.487 0.650747,-2.146 0.747023,-2.661\"},\"41047\":{\"name\":\"Marion, OR\",\"path\":\"m 93.506143,83.310143 0.3227,-0.249 0.779114,0.224 0.57765,0.523 -0.545558,1.381 -0.19255,0.307 -0.242471,0.289 -0.142629,0.05 -0.249602,0.33 -0.176504,0.297 0.834383,1.93 1.254866,1.409257 0.938064,2.549743 1.536834,1.279 6.22578,1.688 4.18796,1.171 -0.77198,1.28 -0.99451,0.345026 -0.11908,0.416007 0.638,0.416006 -0.94718,1.811958 -2.65113,-0.748 -1.0929,-0.353997 -1.73651,-1.254 -1.006371,0.568153 -0.840684,-1.917153 -3.481094,-0.830447 -1.451427,-1.410353 -1.370248,0.05811 -0.205548,-0.698547 -0.578345,-0.201487 -0.893464,0.165725 -1.904105,0.273 -1.96343,0.802221 -0.110048,-1.244221 -1.510091,-0.731 -0.03209,-0.145 0.353709,-0.472015 0.778444,-0.163118 -0.07102,-0.703688 -1.036326,-0.240343 0.06782,-0.802897 0.627701,-0.01135 0.952002,-1.270591 0.947223,0.115142 0.519848,-0.32425 0.210951,-0.555924 -0.677128,-0.729678 0.404011,-0.76829 0.210379,-0.772 0.914612,-0.36 0.361923,-0.725 0.249602,-0.851 -0.0089,-0.33 1.775739,-1.397 1.333586,0.586\"},\"41005\":{\"name\":\"Clackamas, OR\",\"path\":\"m 96.26246,79.951143 1.477999,0.442 -0.03209,-0.602 0.322699,0 12.776042,3.608 0.34708,1.518829 1.11929,0.766636 -0.1082,1.894926 -0.68224,0.865609 0.0644,0.806352 -1.16622,0.118648 -0.0874,0.59534 0.49934,1.486029 0.60793,0.780226 -0.38743,0.653544 -0.68821,-0.02412 -0.45294,0.500706 -0.69408,-0.203088 -0.92598,0.353365 -0.32983,1.583 0.025,0.06 0.66679,1.324 -4.18796,-1.171 -6.225779,-1.688 -1.536834,-1.279 -0.938064,-2.550243 -1.254866,-1.409757 -0.834383,-1.929 0.176504,-0.297 0.249602,-0.33 0.142629,-0.05 0.242471,-0.289 0.19255,-0.307 0.545558,-1.381 -0.57765,-0.523 -0.779114,-0.224 -0.3227,0.249 0.08023,-1.358 0.669022,-0.50025 0.546812,0.62 1.015281,0.009 0.444972,-2.129705\"},\"41059\":{\"name\":\"Umatilla, OR\",\"path\":\"m 158.08882,83.037143 15.44501,3.703 0.29595,0.07 -0.65788,3.15 -0.23383,0.947914 -0.82775,-0.180523 -0.16659,0.689147 -0.39836,-0.07987 -0.57653,1.99883 -0.63666,-0.153588 -1.41649,4.897653 -1.13228,-0.314218 -0.30805,0.954913 -3.54488,-1.094088 -0.56497,1.778349 -2.67592,-0.824131 -0.21117,0.571566 -1.44111,-0.400957 -0.45998,1.96 0.69231,0.19528 -0.37674,1.32372 1.71868,0.41 -0.1765,2.708 -0.46533,1.895 -10.20515,-2.498 0.49212,-1.74647 0.50075,0.0468 2.29061,-9.961755 -1.71006,-0.498565 0.46619,-1.69303 -2.90786,-0.747 1.47086,-5.833 0.31201,-1.086 0.90926,0.05 2.41044,0.33 0.44215,0.226 0.41006,0.104 0.69889,0.05 0.57052,-0.09 1.17312,-0.339 0.3441,-0.152 0.45106,-0.378\"},\"41049\":{\"name\":\"Morrow, OR\",\"path\":\"m 141.2621,83.239143 2.1858,0 1.53505,0.16 1.67055,0.159 0.71137,-0.732724 0.82502,-0.48268 0.87048,0.494761 0.71137,0.335643 0.90748,0.06 -0.31201,1.086 -1.47086,5.833 2.90786,0.747 -0.46619,1.69303 1.71006,0.498565 -2.29061,9.961752 -0.50075,-0.0468 -0.49212,1.74647 -8.02826,-1.984 -1.83403,-0.47784 0.37921,-1.63716 0.062,-0.27244 0.48356,0.0964 0.4992,-1.926997 -1.68601,-0.510748 0.46218,-1.790922 -2.1351,-0.69733 1.52614,-5.777 0.62044,-2.169 1.14817,-4.363\"},\"41021\":{\"name\":\"Gilliam, OR\",\"path\":\"m 130.64689,82.233143 0.33696,-0.112 0.68462,0.168 0.44929,0.315 0.41719,0.786 0.19433,0.282 0.32805,0.216 1.25336,0.217 3.16637,0.193 0.83617,-0.635 0.51347,-0.128 2.41044,-0.296 0.025,0 -1.14817,4.363 -0.62044,2.169 -1.52614,5.777 2.1351,0.69733 -0.46218,1.790922 1.68601,0.510748 -0.4992,1.926997 -0.48356,-0.0964 -0.062,0.27244 -11.08767,-2.899997 -0.0499,-0.353 0.96263,-0.434368 -0.1336,-2.072632 -0.57051,-1.478 0.75415,-1.585 0.86113,-1.678 0.94472,-1.394146 0.98434,0.349146 0.58478,-0.297 0.19434,-0.04 0.15154,-0.241 -0.28169,-2.138 -1.13213,-1.952 -1.36746,-1.704 -0.44928,-0.498\"},\"41055\":{\"name\":\"Sherman, OR\",\"path\":\"m 125.98647,83.278143 0.83616,-0.257 1.41382,-0.217 1.71869,-0.241 0.69175,-0.33 0.44928,0.498 1.36746,1.704 1.13213,1.952 0.28169,2.138 -0.15154,0.241 -0.19434,0.04 -0.58478,0.297 -0.98434,-0.349146 -0.94472,1.394146 -0.86113,1.678 -0.75415,1.585 0.57051,1.478 0.1336,2.072632 -0.96263,0.434368 -2.49067,-0.676 -0.83539,-0.33817 0.41076,-0.976931 -1.97574,-2.206342 -1.67915,-0.417738 -0.59438,-0.670852 0.4,-1.737547 1.23166,-0.03807 1.68557,-1.528353 0.93957,-1.664 0.28882,-0.579 0.0321,-0.152 -0.88189,-0.789579 0.31137,-2.344421\"},\"41065\":{\"name\":\"Wasco, OR\",\"path\":\"m 118.15254,79.814143 1.10003,0.162 0.55447,0.113 1.97556,1.130964 0.25165,1.820526 2.14795,-0.90324 1.45839,0.68275 0.34588,0.458 -0.31137,2.344421 0.88189,0.789579 -0.0321,0.152 -0.28882,0.579 -0.93957,1.664 -1.68557,1.528353 -1.23166,0.03807 -0.4,1.737547 0.59438,0.670852 1.67915,0.417738 1.97574,2.206342 -0.41076,0.976931 0.83539,0.33817 2.49067,0.676 0.0499,0.353 -0.44605,3.209574 0.94169,2.80142 -9.59184,-2.588 -1.74543,-0.514 -10.51002,-2.891994 0.77198,-1.28 -0.66679,-1.324 -0.025,-0.06 0.32983,-1.583 0.92598,-0.353365 0.69407,0.203088 0.45295,-0.500706 0.68821,0.02412 0.38743,-0.653544 -0.60793,-0.780226 -0.49934,-1.486029 0.0874,-0.59534 1.16622,-0.118648 -0.0644,-0.806352 3.37497,0.925 0.19969,-0.692 1.37459,-5.109 0.68706,0.08787 1.03341,-3.849868\"},\"41027\":{\"name\":\"Hood River, OR\",\"path\":\"m 110.38101,78.826143 0.45106,-0.403 0.68284,-0.353 0.94849,-0.06 1.10716,0.61 0.43502,0.105 1.32646,0.103 1.72582,0.03 1.09468,0.949 -1.03354,3.858339 -0.68693,-0.09634 -1.37459,5.109 -0.19969,0.692 -3.37497,-0.925 0.68224,-0.865609 0.1082,-1.894926 -1.11907,-0.766636 -0.34708,-1.518829 -0.81792,-2.063175 0.39182,-2.516825\"},\"41051\":{\"name\":\"Multnomah, OR\",\"path\":\"m 97.861695,73.362143 -0.344094,0.579 -0.153327,0.417 0.01605,0.564 0.313785,0.401 0.818337,0.859 0.426106,0.323 4.458958,2.747 0.52416,0.257 0.0143,0 0.44215,0.112 0.0321,0 0.26564,0 5.70519,-0.795 -0.39182,2.516825 0.81792,2.063175 -12.776039,-3.608 -0.322699,0 0.03209,0.603 -1.477999,-0.443 0.290608,-2.218 -0.297739,-0.192 -0.90035,-1.655 -0.625787,-1.39 0.513467,-1.753 2.619036,0.619\"},\"41067\":{\"name\":\"Washington, OR\",\"path\":\"m 95.242659,72.743143 -0.513467,1.753 0.625787,1.39 0.90035,1.655 0.297739,0.192 -0.290608,2.218 -0.444972,2.129705 -1.015281,-0.009 -0.546812,-0.62 -0.669022,0.50025 -0.584782,-0.344 -0.982361,-1.416 -0.898567,-1.052 -0.941355,-0.956 -5.109705,-1.528 -0.329831,-0.09 0.105189,-0.314 0.266457,0.04434 0.894141,-1.252007 2.399766,-1.014276 0.101707,-0.512401 -1.486801,-1.032796 -0.773611,-1.561086 0.335796,-0.504506 1.894251,0.65773 0.465329,-1.559 5.086528,1.503 1.214135,1.719\"},\"41057\":{\"name\":\"Tillamook, OR\",\"path\":\"m 88.941996,69.521143 -0.465329,1.559 -1.894251,-0.65773 -0.335796,0.504506 0.773611,1.561086 1.486801,1.032796 -0.101707,0.512401 -2.399766,1.014276 -0.894141,1.252007 -0.266457,-0.04434 -0.105189,0.314 0.329831,0.09 -0.747023,2.66 -0.650747,2.146 -4.997385,-1.487 -0.932441,3.069 0.946704,0.29 -0.231773,0.706 -4.348419,-1.333 0.563386,-1.013 0.06418,-0.12 0.0071,-0.02 0.458198,-0.868 0.03209,-0.06 0.13015,-0.298 0.36014,-0.893 3.519385,-9.995 0.306654,-1.037 0.06418,-0.418 0,-0.153 -0.03209,-1.205 3.80821,1.15 -0.01605,0.233 0.04814,0.02 3.576437,1.012 1.943328,0.474\"},\"42101\":{\"name\":\"Philadelphia, PA\",\"path\":\"m 887.94942,224.31014 -1.10895,1.616 -1.30862,2.433 -0.68641,0.981 -0.41942,-0.5625 -0.77813,0.10368 0.19551,-1.22868 -0.67564,-0.5625 0.82012,-1.109 -0.91461,-0.706 0.25579,-1.00666 2.22305,0.48532 1.2634,-2.29966 0.78437,0.36635 0.34954,1.48965\"},\"42017\":{\"name\":\"Bucks, PA\",\"path\":\"m 881.53109,212.85914 2.4657,1.005 1.3015,2.619 1.67055,1.013 0.1141,0.06 4.63546,3.561 -0.94224,0.79725 -0.70666,0.0544 -0.23559,0.74286 -1.88449,1.5945 -0.34954,-1.48965 -0.78437,-0.36635 -9.39216,-4.582 1.95938,-3.236 1.96115,-2.139 0.18721,0.362\"},\"42059\":{\"name\":\"Greene, PA\",\"path\":\"m 793.115,244.78514 3.54078,-1.945 0.26677,0.24835 1.85484,-0.27835 0.48336,0.31627 1.08716,-0.20701 0.22155,-0.49394 0.33541,0.32201 -0.003,0.23829 0.20575,0.24777 0.21524,-0.25508 0.13934,0.077 1.76699,0.92004 0.17223,1.79239 0.52911,1.10747 -0.26146,0.64403 0.79923,1.04272 -8.75033,1.462 -1.70264,0.274 -0.90035,-5.512\"},\"42051\":{\"name\":\"Fayette, PA\",\"path\":\"m 803.55192,239.17414 2.28386,-0.426 2.19792,0.66254 1.82037,-1.727 0.75403,0.2113 1.8836,0.93422 0.35751,0.72046 1.10041,-0.15752 -0.44215,1.187 -0.8023,2.322 -0.13728,1.125 0.84555,0.83577 -0.24294,1.85623 0.37084,0.249 -1.46374,0.264 -4.97599,0.878 -2.63329,0.449 -0.79923,-1.04272 0.26146,-0.64403 -0.52911,-1.10747 -0.17223,-1.79239 -1.76699,-0.92004 0.49133,-0.9695 0.60033,0.33853 0.63667,-0.64249 0.47921,-0.31548 -0.41703,-1.03006 0.56401,-0.1217 0.10376,-0.73939 -0.36858,-0.40026\"},\"42125\":{\"name\":\"Washington, PA\",\"path\":\"m 793.89233,232.56314 3.6014,2.805 4.70637,1.11194 -0.76089,0.49354 0.0824,0.46543 1.13648,0.35299 0.73338,-0.2489 0.0401,0.77641 -0.71713,0.20847 0.46855,0.62696 0.36892,0.0192 0.36858,0.40026 -0.10377,0.73939 -0.564,0.1217 0.41703,1.03006 -0.47921,0.31548 -0.63667,0.64249 -0.60033,-0.33853 -0.49133,0.9695 -0.13934,-0.077 -0.21524,0.25508 -0.20575,-0.24777 0.003,-0.23829 -0.3354,-0.32199 -0.22156,0.49395 -1.08716,0.20702 -0.48336,-0.31627 -1.85484,0.27835 -0.26677,-0.24835 -3.54078,1.945 -0.73633,-4.507 -0.88786,-5.474 -0.30488,-1.792 2.7064,-0.449\"},\"42003\":{\"name\":\"Allegheny, PA\",\"path\":\"m 804.82928,229.74581 0.43541,2.17843 -0.93407,1.09344 0.0734,3.53446 -0.16046,0.408 -0.85221,0.578 -0.73338,0.2489 -1.13648,-0.35299 -0.0824,-0.46543 0.76089,-0.49354 -4.70637,-1.11194 -3.6014,-2.805 1.90767,-2.564 1.26762,-1.173 -0.29774,-1.374 7.81435,-1.20425 0.0613,0.87573 -1.19647,1.28146 0.10187,0.92645 0.64938,-0.0642 z\"},\"42007\":{\"name\":\"Beaver, PA\",\"path\":\"m 789.78103,224.46714 6.12951,-1.105 0.85934,4.09 0.29774,1.374 -1.26762,1.173 -1.90767,2.564 -2.7064,0.449 -0.60974,-3.688 -0.79516,-4.857\"},\"42073\":{\"name\":\"Lawrence, PA\",\"path\":\"m 796.13518,218.28414 -0.90347,1.82503 0.67883,3.25297 -6.12951,1.105 -0.20324,-1.105 -0.82904,-5.151 4.42152,-0.797 0.0714,0.25565 1.84877,-0.25565 1.04476,0.861\"},\"42019\":{\"name\":\"Butler, PA\",\"path\":\"m 802.63731,214.79714 1.94333,11.442 -7.81076,1.213 -0.85934,-4.09 -0.67883,-3.25297 0.90347,-1.82503 1.25336,-2.612 5.16854,-0.916 0.0802,0.04\"},\"42005\":{\"name\":\"Armstrong, PA\",\"path\":\"m 811.18439,216.11314 0.56517,3.175 0.55269,3.095 -2.03961,4.322 -0.97344,1.995 -0.73248,0.0892 -0.37706,0.19447 -1.11422,-0.67433 -0.23226,-0.52954 0.22846,-0.26626 -0.48259,0.0585 -0.21932,-0.26401 0.006,-0.50389 -0.38938,0.32543 -0.21168,-0.28668 -0.18535,-0.0958 -0.42972,-0.51637 -0.56135,0.0233 -8.8e-4,-0.001 -8.7e-4,-0.001 -8.8e-4,-0.001 -8.7e-4,-0.001 -8.7e-4,-0.001 -8.8e-4,-10e-4 -8.8e-4,-0.001 -8.7e-4,-0.001 -1.94333,-11.442 0.44037,1.551 0.0571,0.209 0.40114,0.939 0.68924,0.29325 0.56986,0.59711 -0.36329,0.53276 0.4479,0.34152 0.51226,-0.59164 0.36192,0.06 0.51525,0.04 0.32092,-0.1 1.23731,-0.444 1.84884,-0.745 1.50831,-1.367\"},\"42031\":{\"name\":\"Clarion, PA\",\"path\":\"m 805.38649,209.25014 1.30685,-0.233 -0.19255,-1.131 0.7078,-0.13 2.57089,-0.33 0.36906,2.258 1.03585,6.429 -1.50831,1.367 -1.84884,0.745 -1.23731,0.444 -0.32092,0.1 -0.51525,-0.04 -0.36192,-0.06 -0.51226,0.59164 -0.4479,-0.34152 0.36329,-0.53276 -0.56986,-0.59711 -0.68924,-0.29325 -0.40114,-0.939 -0.0571,-0.209 -0.44037,-1.551 -0.0802,-0.04 0.44037,-1.968 0.28704,-0.603 0.3227,-0.483 -0.18211,-0.48033 0.96301,-0.25767 0.17828,-0.03 1.01089,-0.526 -0.19077,-1.157\"},\"42053\":{\"name\":\"Forest, PA\",\"path\":\"m 803.84966,203.92314 9.36898,-1.654 0.62117,4.52301 -0.30187,0.0822 -0.0722,-0.40587 -1.32732,0.24136 0.10709,0.64786 -0.49576,0.13114 0.28864,1.65134 -1.88984,0.544 -0.36906,-2.258 -2.57089,0.33 -0.7078,0.13 0.19255,1.131 -1.30685,0.233 -0.22642,-1.228 -0.78462,0.19958 -0.0355,-1.61558 -0.49029,-2.683\"},\"42121\":{\"name\":\"Venango, PA\",\"path\":\"m 803.84966,203.92314 0.49029,2.683 0.0355,1.61558 0.78462,-0.19958 0.22642,1.228 0.19077,1.157 -1.01089,0.526 -0.17828,0.03 -0.96301,0.25767 0.18211,0.48033 -0.3227,0.483 -0.28704,0.603 -0.44037,1.968 -5.16854,0.916 -1.23731,-7.263 0.61152,-0.653 1.83101,-2.394 3.59248,-0.972 -0.0321,-0.151 1.69551,-0.316\"},\"42085\":{\"name\":\"Mercer, PA\",\"path\":\"m 787.37772,209.90314 6.32055,-0.68528 2.45296,-0.80872 1.23731,7.263 -1.25336,2.612 -1.04476,-0.861 -1.84877,0.25565 -0.0714,-0.25565 -4.42152,0.797 -0.0303,-0.185 -1.34072,-8.123\"},\"42039\":{\"name\":\"Crawford, PA\",\"path\":\"m 801.26985,199.07914 0.8843,5.16 0.0321,0.151 -3.59248,0.972 -1.83101,2.394 -0.61152,0.653 -2.45296,0.80872 -6.32055,0.68528 -0.0428,-0.25 -1.30863,-7.987 10.23724,-1.744 3.81891,-0.686 1.18739,-0.157\"},\"42049\":{\"name\":\"Erie, PA\",\"path\":\"m 800.71537,195.67014 0.55448,3.409 -1.18739,0.157 -3.81891,0.686 -10.23724,1.744 -0.47781,-2.917 2.95422,-1.863 2.65803,-2.2039 0.16985,-0.83144 0.38418,-0.43959 0.59542,-0.11077 0.0881,0.3557 3.08614,-2.525 1.62242,-1.189 0.098,0.61 0.44216,2.549 0.52951,3.011 2.28207,-0.394 0.25673,-0.05\"},\"42129\":{\"name\":\"Westmoreland, PA\",\"path\":\"m 809.2892,228.70014 -0.11946,0.301 0.24069,0.749 0.0428,0.04 1.14639,0.458 4.2254,0.257 0.75347,0.83909 0.80196,-0.24399 0.41401,-1.16539 1.17376,0.37029 -0.93066,2.778 -0.77198,1.57775 -0.75629,2.6763 -0.78768,0.4792 -0.77198,1.57775 -1.10041,0.15752 -0.35751,-0.72046 -1.8836,-0.93422 -0.75403,-0.2113 -1.82037,1.727 -2.19792,-0.66254 -2.28386,0.426 -0.36892,-0.0192 -0.46855,-0.62696 0.71713,-0.20847 -0.0401,-0.77641 0.85221,-0.578 0.16046,-0.408 -0.0734,-3.53446 0.93407,-1.09344 -0.43541,-2.17843 -0.62866,-0.48273 -0.64894,0.065 -0.10098,-0.92489 1.19735,-1.27989 -0.0604,-0.87417 0.56135,-0.0233 0.42972,0.51637 0.18535,0.0958 0.21168,0.28668 0.38938,-0.32543 -0.006,0.50389 0.21932,0.26401 0.48259,-0.0585 -0.22846,0.26626 0.23226,0.52954 1.11422,0.67433 0.37706,-0.19447 0.73248,-0.0892\"},\"42063\":{\"name\":\"Indiana, PA\",\"path\":\"m 811.74956,219.28814 6.99776,-1.134 0.80942,4.122 -1.58853,8.03 -1.17376,-0.37029 -0.41401,1.16539 -0.80196,0.24399 -0.75347,-0.83909 -4.2254,-0.257 -1.14639,-0.458 -0.0428,-0.04 -0.24069,-0.749 0.11946,-0.301 0.97344,-1.995 2.03961,-4.322 -0.55269,-3.095\"},\"42065\":{\"name\":\"Jefferson, PA\",\"path\":\"m 810.14854,209.68414 1.88984,-0.544 0.33518,-0.355 1.8738,-0.547 4.19509,1.567 0.11783,0.79033 0.44377,-0.12233 0.12124,0.651 -0.9574,0.152 -0.28883,1.413 -0.009,0.05 0.0196,0.665 0.85756,4.75 -6.99776,1.134 -0.56517,-3.175 -1.03585,-6.429\"},\"42123\":{\"name\":\"Warren, PA\",\"path\":\"m 809.90785,194.04114 2.38726,-0.403 0.24069,1.012 0.4582,2.557 -0.0464,0.239 -0.45998,0.1 0.73098,4.725 -9.36898,1.654 -1.69551,0.316 -0.8843,-5.16 -0.55448,-3.409 9.19248,-1.629\"},\"42083\":{\"name\":\"McKean, PA\",\"path\":\"m 822.51096,191.71814 1.69194,-0.336 1.69551,8.669 -3.55861,1.044 -0.92771,0.23492 -0.14909,-0.61451 -3.27875,0.65059 -2.6119,0.534 -2.15371,0.369 -0.73098,-4.725 0.45998,-0.1 0.0464,-0.239 -0.4582,-2.557 -0.24069,-1.012 0.7399,-0.129 4.64259,-0.902 4.83336,-0.889\"},\"42023\":{\"name\":\"Cameron, PA\",\"path\":\"m 822.3398,201.09514 3.55861,-1.044 3.08542,2.84775 1.13998,-0.27675 0.43981,2.78689 -1.07273,3.41711 -2.48888,0.152 -0.36549,-2.127 -0.39642,0.0729 -0.27037,-1.85985 -2.80267,0.523 -0.82726,-4.492\"},\"42047\":{\"name\":\"Elk, PA\",\"path\":\"m 813.21864,202.26914 2.15371,-0.369 2.6119,-0.534 3.27875,-0.65059 0.14909,0.61451 0.92771,-0.23492 0.82726,4.492 2.80267,-0.523 0.27037,1.85985 0.39642,-0.0729 0.36549,2.127 -5.48233,0.611 -1.51009,0.307 0.0468,0.82587 -0.93107,0.40213 -0.12124,-0.651 -0.44377,0.12233 -0.11783,-0.79033 -4.19509,-1.567 -1.8738,0.547 -0.33518,0.355 -0.28864,-1.65134 0.49576,-0.13114 -0.10709,-0.64786 1.32732,-0.24136 0.0722,0.40587 0.30187,-0.0822 -0.62117,-4.52301\"},\"42033\":{\"name\":\"Clearfield, PA\",\"path\":\"m 827.00201,208.97814 2.48888,-0.152 1.20701,1.26 -1.11023,1.31175 1.27782,1.41125 0.0232,0.549 -0.20681,1.43 -0.0909,0.103 -0.96275,0.396 -0.82012,0.722 -0.19255,0.216 -1.9362,4.024 0.0232,0.08 0.29952,0.369 0.24603,0.153 -7.6913,1.43 -0.80942,-4.122 -0.85756,-4.75 -0.0196,-0.665 0.009,-0.05 0.28883,-1.413 0.9574,-0.152 0.93107,-0.40213 -0.0468,-0.82587 1.51009,-0.307 5.48233,-0.611\"},\"42013\":{\"name\":\"Blair, PA\",\"path\":\"m 827.00201,220.69314 4.17548,-0.931 -1.27654,1.205 -0.18541,0.346 -0.0642,0.266 0.97633,1.14705 -0.0439,1.38995 0.46755,0.619 0.4305,-0.76469 -10e-4,1.68769 0.53292,0.218 -0.2086,0.852 -1.13391,3.535 -0.11766,0.628 -0.17829,0.674 -2.97616,-0.74542 -0.0622,1.1972 -3.01089,-1.25478 0.65745,-1.09341 -0.29216,-1.7143 0.1096,-1.56821 0.80355,-1.02036 0.54788,-0.80122 -0.25563,-1.53169 0.58441,-0.0707 0.76702,-2.11607 -0.24603,-0.153\"},\"42021\":{\"name\":\"Cambria, PA\",\"path\":\"m 819.55674,222.27614 7.6913,-1.43 -0.76702,2.11607 -0.58441,0.0707 0.25563,1.53169 -0.54788,0.80122 -0.80355,1.02036 -0.1096,1.56821 0.29216,1.7143 -0.65745,1.09341 -0.29774,2.033 -1.56714,0.289 -2.25177,0.338 -0.34409,-0.488 -0.60261,-0.251 -2.22502,0.401 0.93066,-2.778 1.58853,-8.03\"},\"42111\":{\"name\":\"Somerset, PA\",\"path\":\"m 824.02818,232.79514 -0.66857,4.211 -0.40306,0.33882 1.077,5.99218 -0.40828,1.792 -10.08391,1.841 -0.37084,-0.249 0.24294,-1.85623 -0.84555,-0.83577 0.13728,-1.125 0.8023,-2.322 0.44215,-1.187 0.77198,-1.57775 0.78768,-0.4792 0.75629,-2.6763 0.77198,-1.57775 2.22502,-0.401 0.60261,0.251 0.34409,0.488 2.25177,-0.338 1.56714,-0.289\"},\"42009\":{\"name\":\"Bedford, PA\",\"path\":\"m 824.32592,230.76214 3.01089,1.25478 0.0622,-1.1972 2.97616,0.74542 0.17829,-0.674 0.11766,-0.628 0.68098,1.61046 1.99511,1.01054 -0.22464,1.061 -0.8103,1.02061 0.41941,1.11768 -0.75015,5.06971 -0.48137,1.535 -0.48316,1.077 -7.39178,1.364 0.40828,-1.792 -1.077,-5.99218 0.40306,-0.33882 0.66857,-4.211 0.29774,-2.033\"},\"42057\":{\"name\":\"Fulton, PA\",\"path\":\"m 833.34724,232.88414 1.12499,0.547 2.73314,0.207 1.23018,0.715 -0.1765,0.194 -0.0981,0.168 -0.41719,1.143 -0.0731,1.301 -0.37797,2.218 -0.21572,0.811 -0.77912,1.913 -0.41897,0.748 -4.20936,0.795 -0.65253,0.121 0.48316,-1.077 0.48137,-1.535 0.75015,-5.06971 -0.41941,-1.11768 0.8103,-1.02061 0.22464,-1.061\"},\"42061\":{\"name\":\"Huntingdon, PA\",\"path\":\"m 831.17749,219.76214 3.12715,0.523 1.59529,-1.35694 2.28067,0.0709 0.42967,-0.451 -0.11945,0.531 -0.29295,0.70549 0.34987,-0.005 -1.65846,2.41917 -0.2152,0.97041 0.3756,1.1036 -1.11642,2.67938 1.31312,0.47602 0.44928,-0.07 1.13926,-0.335 0.13015,-0.267 1.34071,2.458 -1.08121,1.72746 -0.78902,3.40754 -1.23018,-0.715 -2.73314,-0.207 -1.12499,-0.547 -1.99511,-1.01054 -0.68098,-1.61046 1.13391,-3.535 0.2086,-0.852 -0.53292,-0.218 10e-4,-1.68769 -0.4305,0.76469 -0.46755,-0.619 0.0439,-1.38995 -0.97633,-1.14705 0.0642,-0.266 0.18541,-0.346 1.27654,-1.205\"},\"42055\":{\"name\":\"Franklin, PA\",\"path\":\"m 840.30578,229.21814 0.42076,-0.697 0.1745,0.23313 0.0258,0.31035 -0.0922,0.28415 0.25316,0.0234 0.21383,0.75749 0.6202,-0.39612 0.20072,0.65262 -0.18542,0.287 0.46711,0.74 2.61191,2.981 0.68284,1.302 1.22126,5.061 -0.16759,0.03 -10.87372,2.058 0.41897,-0.748 0.77912,-1.913 0.21572,-0.811 0.37797,-2.218 0.0731,-1.301 0.41719,-1.143 0.0981,-0.168 0.1765,-0.194 0.78902,-3.40754 1.08121,-1.72746\"},\"42087\":{\"name\":\"Mifflin, PA\",\"path\":\"m 843.48108,214.81814 0.29773,0.885 0.31231,2.46093 1.36538,-0.10593 -0.95562,0.65 -0.54556,0.411 -1.04655,0.9 -0.78798,0.8191 0.13308,0.68867 -1.7086,1.82878 0.14211,0.58801 -1.39263,1.85966 -0.32968,0.95678 -0.13015,0.267 -1.13926,0.335 -0.44928,0.07 -1.31312,-0.47602 1.11642,-2.67938 -0.3756,-1.1036 0.2152,-0.97041 1.65846,-2.41917 -0.34987,0.005 0.29295,-0.70549 0.11945,-0.531 4.87081,-3.73\"},\"42105\":{\"name\":\"Potter, PA\",\"path\":\"m 834.17628,189.46914 2.20184,10.35 0.312,1.446 -6.56631,1.357 -1.13998,0.27675 -3.08542,-2.84775 -1.69551,-8.669 7.63425,-1.44 2.33913,-0.473\"},\"42035\":{\"name\":\"Clinton, PA\",\"path\":\"m 836.69012,201.26514 0.17829,0.843 1.18917,1.147 2.04852,1.825 5.74619,4.035 0.33518,-0.07 0.12302,0.57 -3.07902,1.928 -2.73135,1.141 -1.58319,-1.678 -0.26387,-0.521 -1.47678,-0.31699 -1.64337,0.0744 -0.8871,-1.22803 -1.69016,0.19089 -0.39726,-1.46688 -0.41637,0.74257 -0.58161,0.21293 -0.0354,0.96921 -0.8271,0.42586 -1.20701,-1.26 1.07273,-3.41711 -0.43981,-2.78689 6.56631,-1.357\"},\"42027\":{\"name\":\"Centre, PA\",\"path\":\"m 830.6979,210.08614 0.8271,-0.42586 0.0354,-0.96921 0.58161,-0.21293 0.41637,-0.74257 0.39726,1.46688 1.69016,-0.19089 0.8871,1.22803 1.64337,-0.0744 1.47678,0.31699 0.26387,0.521 1.58319,1.678 2.73135,-1.141 3.07902,-1.928 -0.78981,1.375 -0.86648,2.073 -1.17312,1.758 -4.87081,3.73 -0.42967,0.451 -2.28067,-0.0709 -1.59529,1.35694 -3.12715,-0.523 -4.17548,0.931 -0.29952,-0.369 -0.0232,-0.08 1.9362,-4.024 0.19255,-0.216 0.82012,-0.722 0.96275,-0.396 0.0909,-0.103 0.20681,-1.43 -0.0232,-0.549 -1.27782,-1.41125 1.11023,-1.31175\"},\"42119\":{\"name\":\"Union, PA\",\"path\":\"m 846.18747,209.04214 2.71888,-0.988 0.0214,-1.453 1.11786,0 0.28134,1.07486 0.6884,0.52019 0.0804,1.90995 -0.0214,0.289 0.20146,0.408 0.56339,0.749 0.57587,0.428 0.45106,0.12 -0.57052,-0.03 -2.87725,0.96648 -0.21962,0.50541 -0.97342,-0.14789 -3.75829,1.89 -0.68819,0.415 -0.29773,-0.884 1.17312,-1.758 0.86648,-2.073 0.78981,-1.375 -0.12302,-0.57\"},\"42093\":{\"name\":\"Montour, PA\",\"path\":\"m 852.65751,205.29114 0.81566,0.40088 0.81566,-0.34088 0.78803,1.9714 0.8843,0.0836 0.29193,1.42234 1.04166,0.52266 0.14441,0.296 0.0321,1.494 -0.51454,0.22064 -0.38424,-0.73483 0.0356,-0.57558 -0.83303,-0.1268 -0.44144,-0.25243 -0.51524,0 -1.16957,0.564 -0.95918,0.385 -0.0392,-0.05 0.16758,-2.395 -0.16045,-2.884\"},\"42117\":{\"name\":\"Tioga, PA\",\"path\":\"m 845.55455,187.14614 2.74919,9.009 -0.0784,0.191 -1.15351,1.128 -3.86348,0.913 -6.83018,1.432 -2.20184,-10.35 10.73466,-2.18 0.64361,-0.143\"},\"42081\":{\"name\":\"Lycoming, PA\",\"path\":\"m 848.30374,196.15514 1.05189,-0.07 1.90411,3.946 3.1432,1.77 0.79516,0.104 1.77395,0.04 -1.88476,3.3023 -0.79846,0.0977 -0.81566,0.34088 -0.81566,-0.40088 -2.61191,1.315 -1.11786,0 -0.0214,1.453 -2.71888,0.988 -0.33518,0.07 -5.74619,-4.035 -2.04852,-1.825 -1.18917,-1.147 -0.17829,-0.843 -0.312,-1.446 6.83018,-1.432 3.86348,-0.912 1.15351,-1.129 0.0784,-0.191\"},\"42131\":{\"name\":\"Wyoming, PA\",\"path\":\"m 860.74995,192.25114 0.0553,0.19 4.11487,-0.891 2.47462,-0.49 -0.12124,0.174 -0.45106,1.553 -0.21573,1.254 0.60261,0.288 -0.66679,1.999 -0.24782,0.187 -2.47641,1.414 -4.55701,1.132 0.26743,-3.951 -0.0749,-2.49096 1.29616,-0.36804\"},\"42113\":{\"name\":\"Sullivan, PA\",\"path\":\"m 849.35563,196.08714 10.17306,-0.977 -0.26743,3.951 -0.14442,1.657 -1.72418,0.47921 -0.42061,0.75079 -1.77395,-0.04 -0.79516,-0.104 -3.1432,-1.77 -1.90411,-3.946\"},\"42037\":{\"name\":\"Columbia, PA\",\"path\":\"m 859.11684,200.71814 0.25139,1.847 0.11232,0.533 1.04298,1.51 0.76754,-0.34593 0.43439,2.4186 0.84124,1.80833 -0.53843,0.911 -0.44393,0.856 0.009,1.938 -1.10894,0.85 -0.82588,-1.03324 -1.46286,0.371 -0.72431,-1.24376 -0.0321,-1.494 -0.14441,-0.296 -1.04166,-0.52266 -0.29193,-1.42234 -0.8843,-0.0836 -0.78803,-1.9714 0.79846,-0.0977 1.88476,-3.3023 0.42061,-0.75079 1.72418,-0.47921\"},\"42097\":{\"name\":\"Northumberland, PA\",\"path\":\"m 850.0456,206.60614 2.61191,-1.315 0.16045,2.884 -0.16758,2.395 0.0392,0.05 0.95918,-0.385 1.16957,-0.564 0.51524,0 0.44144,0.25243 0.83303,0.1268 -0.0356,0.57558 0.38424,0.73483 0.51454,-0.22064 0.72431,1.24376 1.46286,-0.371 0.82588,1.03324 -4.90111,3.801 -0.72207,0.225 -1.98611,1.318 -0.79695,0.313 -0.0802,0.03 -0.19968,-0.05 -0.27991,-0.303 0.12124,-0.274 0.1355,-0.161 0.64005,-1.141 0.13015,-0.296 0.0802,-0.306 0.0321,-0.401 -0.14442,-0.612 -0.30652,-1.04221 0.49194,-0.98079 0.16759,-1.061 -0.45106,-0.12 -0.57587,-0.428 -0.56339,-0.748 -0.20146,-0.409 0.0214,-0.289 -0.0804,-1.90995 -0.68839,-0.52019 -0.28134,-1.07486\"},\"42109\":{\"name\":\"Snyder, PA\",\"path\":\"m 852.8661,212.10514 -0.16759,1.061 -0.49194,0.98079 0.30652,1.04221 0.14442,0.612 -0.0321,0.401 -0.0802,0.306 -0.13015,0.296 -0.64005,1.141 -0.1355,0.161 -1.21852,0.18027 -0.71567,-0.62384 -0.89116,0.12123 -0.3019,-0.28966 -0.66857,0.403 -2.38726,0.159 -1.36539,0.10593 -0.3123,-2.46093 0.68819,-0.416 3.75829,-1.89 0.97342,0.14789 0.21962,-0.50541 2.87725,-0.96648 0.57052,0.03\"},\"42067\":{\"name\":\"Juniata, PA\",\"path\":\"m 851.63949,218.10614 -0.12124,0.274 -1.25613,0.88061 -2.56386,0.98121 0.16182,0.60049 -1.63873,1.19269 -2.44254,2.25 -1.29436,1.311 0.0548,0.62899 -0.79021,0.54851 -0.73544,1.1775 -0.28704,0.57 -0.42076,0.697 -1.34071,-2.458 0.32968,-0.95678 1.39262,-1.85966 -0.1421,-0.58801 1.7086,-1.82877 -0.13308,-0.68868 0.78798,-0.8191 1.04655,-0.9 0.54556,-0.411 0.95562,-0.65 2.38726,-0.159 0.66857,-0.403 0.3019,0.28966 0.89116,-0.12127 0.71567,0.62384 1.21852,-0.18027\"},\"42099\":{\"name\":\"Perry, PA\",\"path\":\"m 853.50794,225.05014 -0.96989,0.651 -0.76306,0.289 -5.05032,1.85506 -0.26956,-0.48808 -1.33555,1.17636 -0.008,-0.41327 0.68422,-1.06783 -0.86801,0.50311 -1.67218,2.27975 -0.55009,0.0917 -0.38177,0.74623 -0.20146,-0.287 -0.20072,-0.65261 -0.62021,0.39611 -0.21382,-0.7575 -0.25316,-0.0234 0.0922,-0.28414 -0.0258,-0.31037 -0.1745,-0.23312 0.28704,-0.57 0.73543,-1.1775 0.79022,-0.54851 -0.0548,-0.62899 1.29436,-1.311 2.44254,-2.25 1.63873,-1.19269 -0.16182,-0.60049 2.56386,-0.98121 1.25613,-0.88061 -0.13906,1.043 -0.41164,0.55295 0.3441,0.63163 -0.007,0.61391 0.73181,0.40274 0.046,0.64129 -0.99826,1.31955 0.52244,1.23009 1.31326,-0.31289 0.58788,0.54773\"},\"42041\":{\"name\":\"Cumberland, PA\",\"path\":\"m 853.50794,225.05014 0.0508,1.21101 1.36654,0.92499 -1.13366,0.56815 0.32328,1.20556 -1.90961,0.74458 -1.33248,2.00671 -0.43323,0.658 -0.62044,0.565 -1.20344,0.497 -1.96829,0.908 -0.94848,1.357 -0.68284,-1.302 -2.61191,-2.981 -0.46711,-0.74 0.18542,-0.287 0.20146,0.287 0.38177,-0.74623 0.55009,-0.0917 1.67218,-2.27975 0.86801,-0.50311 -0.68422,1.06783 0.008,0.41327 1.33555,-1.17636 0.26956,0.48808 5.05032,-1.85506 0.76306,-0.289 0.96989,-0.651\"},\"42001\":{\"name\":\"Adams, PA\",\"path\":\"m 850.87285,231.71114 0.20147,0.02 0.65253,0.191 0.47944,0.63178 0.94864,0.0182 1.26227,1.603 0.0802,0.321 -0.40499,0.64023 0.53339,0.45977 -0.2817,1.036 0,0.1 0.49029,2.451 -3.73868,0.756 -4.17548,0.827 -1.22126,-5.061 0.94848,-1.357 1.96829,-0.908 1.20344,-0.497 0.62044,-0.565 0.43323,-0.658\"},\"42133\":{\"name\":\"York, PA\",\"path\":\"m 854.92532,227.18614 0.57199,0.48225 1.34775,0.34734 0.30217,0.98817 0.60572,0.11124 1.03659,1.10194 0.58582,6e-5 1.12677,0.05 0.47246,-0.06 1.45295,1.82796 1.92458,0.75242 0.32071,0.9215 3.18009,2.56212 0.0481,0.185 -5.66596,1.188 -3.74224,0.779 -3.65845,0.763 -0.49029,-2.451 0,-0.1 0.2817,-1.036 -0.53338,-0.45977 0.40501,-0.64023 -0.0802,-0.321 -1.26227,-1.603 -0.94864,-0.0182 -0.47944,-0.63178 -0.65253,-0.191 -0.20147,-0.02 1.33248,-2.00671 1.90961,-0.74458 -0.32328,-1.20556 1.13366,-0.56815\"},\"42043\":{\"name\":\"Dauphin, PA\",\"path\":\"m 855.5832,216.84514 3.309,1.746 -2.04851,2.326 3.15746,5.948 0.0285,-0.02 0.0285,-0.02 -1.35296,1.01929 -0.95229,1.26971 -0.60572,-0.11124 -0.30217,-0.98817 -1.34775,-0.34734 -0.57199,-0.48225 -1.36654,-0.92499 -0.0508,-1.21101 -0.58788,-0.54773 -1.31326,0.31289 -0.52244,-1.23009 0.99826,-1.31955 -0.046,-0.64129 -0.73181,-0.40274 0.007,-0.61391 -0.3441,-0.63163 0.41164,-0.55295 0.13906,-1.043 0.27991,0.303 0.19968,0.05 0.0802,-0.03 0.79695,-0.313 1.98611,-1.318 0.72207,-0.225\"},\"42075\":{\"name\":\"Lebanon, PA\",\"path\":\"m 858.8922,218.59114 1.89698,1.011 5.77649,3.045 -2.36943,1.936 -2.12161,0.852 -2.01643,1.391 -0.0571,0.04 -3.15746,-5.948 2.04851,-2.326\"},\"42071\":{\"name\":\"Lancaster, PA\",\"path\":\"m 866.56567,222.64714 5.60357,3.038 -1.05368,0.907 0.34647,1.37081 -0.45879,2.32519 0.0642,0.587 0.0874,0.403 0.22464,0.617 -0.17472,1.246 -0.27456,1.012 -0.22642,0.603 -1.01089,1.302 -1.67946,0.363 -0.11233,0.02 -0.0482,-0.185 -3.18009,-2.56212 -0.32071,-0.9215 -1.92458,-0.75242 -1.45295,-1.82796 -0.47246,0.06 -1.12677,-0.05 -0.58582,-6e-5 -1.03659,-1.10194 0.95229,-1.26971 1.35296,-1.01929 2.01643,-1.391 2.12161,-0.852 2.36943,-1.936\"},\"42011\":{\"name\":\"Berks, PA\",\"path\":\"m 876.50696,217.39314 -1.83101,5.268 -2.50671,3.024 -5.60357,-3.038 -5.77649,-3.045 2.19471,-0.926 0.81834,-0.208 0.34587,-0.177 2.7581,-1.895 0.5587,-0.12965 0.22759,-1.53335 1.54218,-1.214 7.27233,3.874\"},\"42107\":{\"name\":\"Schuylkill, PA\",\"path\":\"m 862.5667,208.48914 3.12193,0.63563 0.61496,-0.56563 2.32712,1.91299 2.58826,1.23401 -1.98434,1.81 -1.54218,1.214 -0.22759,1.53335 -0.5587,0.12965 -2.7581,1.895 -0.34587,0.177 -0.81834,0.208 -2.19471,0.926 -1.89698,-1.011 -3.309,-1.746 4.90111,-3.801 1.10894,-0.85 -0.009,-1.938 0.44393,-0.856 0.53843,-0.911\"},\"42025\":{\"name\":\"Carbon, PA\",\"path\":\"m 866.30359,208.56214 4.00789,-3.118 -0.21751,-0.451 -0.67392,-0.548 -0.0802,-0.483 0.007,-0.199 0.0499,-0.104 0.92531,-1.102 0.0695,-0.06 0.41006,-0.146 0.35301,0.201 0.54734,0.193 2.69214,2.298 -1.01446,1.239 2.24464,2.587 -2.14658,1.114 -2.25889,1.721 -2.58826,-1.23401 -2.32712,-1.91299\"},\"42079\":{\"name\":\"Luzerne, PA\",\"path\":\"m 859.26126,199.06114 4.55701,-1.132 2.47641,-1.414 0.24782,-0.187 0.1355,0.405 0.41897,0.456 1.01445,0.376 1.01802,0.213 1.30328,1.711 0.40828,1.589 0.14263,0.233 0.23534,0.123 0.55447,0.06 -0.61866,1.066 -0.35301,-0.201 -0.41006,0.146 -0.0695,0.06 -0.92531,1.102 -0.0499,0.104 -0.007,0.199 0.0802,0.483 0.67392,0.548 0.21751,0.451 -4.00789,3.118 -0.61496,0.56563 -3.12193,-0.63563 -0.84124,-1.80833 -0.43439,-2.4186 -0.76754,0.34593 -1.04298,-1.51 -0.11232,-0.533 -0.25139,-1.848 0.14442,-1.656\"},\"42069\":{\"name\":\"Lackawanna, PA\",\"path\":\"m 867.39471,191.06014 4.32346,-0.933 2.25711,8.572 -0.27991,0.337 -0.67571,0.499 -1.24622,1.956 -0.55447,-0.06 -0.23534,-0.123 -0.14263,-0.233 -0.40828,-1.589 -1.30328,-1.711 -1.01802,-0.213 -1.01445,-0.376 -0.41897,-0.456 -0.1355,-0.405 0.66679,-1.999 -0.60261,-0.288 0.21573,-1.254 0.45106,-1.553 0.12124,-0.174\"},\"42015\":{\"name\":\"Bradford, PA\",\"path\":\"m 851.7108,185.91614 6.85335,-1.407 2.1858,7.742 -1.29616,0.36804 0.0749,2.49096 -10.17306,0.977 -1.05189,0.07 -2.74919,-9.009 6.15625,-1.23\"},\"42115\":{\"name\":\"Susquehanna, PA\",\"path\":\"m 859.24521,184.36514 10.35134,-2.243 2.12162,8.005 -4.32346,0.933 -2.47462,0.49 -4.11487,0.891 -0.0553,-0.19 -2.1858,-7.742 0.68106,-0.144\"},\"42127\":{\"name\":\"Wayne, PA\",\"path\":\"m 869.59655,182.12214 2.05565,-0.456 0.3227,0.07 1.01267,0.713 0.30487,0.289 0.68278,1.53493 1.96122,-0.0389 2.73136,4.901 -1.25514,3.792 -1.20062,2.75228 -1.31965,0.19303 0.34683,0.69893 0.5849,0.10376 -0.37084,2.159 -2.43362,0.698 0.67571,-0.499 0.27991,-0.337 -2.25711,-8.572 -2.12162,-8.005\"},\"42103\":{\"name\":\"Pike, PA\",\"path\":\"m 878.6678,189.13814 0.45998,1.053 0.7381,0.723 0.52239,0.497 1.831,0.95 0.29774,0.137 1.35142,-0.07 0.75415,-0.08 1.36746,1.337 -1.01445,0.731 -0.48138,0.522 -0.41006,0.843 -0.0874,0.257 -0.20859,0.892 -0.0321,0.313 0.0713,0.07 0.0321,0.378 -0.1034,0.692 -0.47425,1.118 -0.68462,0.963 -0.23355,0.328 -0.57765,0.362 -1.24979,-1.0284 -1.2498,-0.0166 -0.016,-2.432 -3.81713,1.163 0.37084,-2.159 -0.5849,-0.10376 -0.34683,-0.69893 1.31965,-0.19303 1.20062,-2.75228 1.25514,-3.792\"},\"42089\":{\"name\":\"Monroe, PA\",\"path\":\"m 875.45328,198.83714 3.81713,-1.163 0.016,2.432 1.24979,0.0166 1.2498,1.0284 0.57765,-0.362 0.23355,-0.328 0.0963,0.119 -1.87202,3.496 -1.29927,1.1995 -0.81024,1.45688 -1.63386,1.53409 -1.45369,0.60753 -2.24464,-2.587 1.01446,-1.239 -2.69214,-2.298 -0.54734,-0.193 0.61866,-1.066 1.24622,-1.956 2.43362,-0.698\"},\"42095\":{\"name\":\"Northampton, PA\",\"path\":\"m 880.8215,204.07614 1.63133,1.922 0.0571,0.136 -0.009,0.135 -0.57765,1.771 -0.35123,0.486 -0.2603,0.04 -0.25673,-0.03 -0.1355,0.04 -0.29239,0.686 0.17829,1.387 0.42432,1.64 0.1141,0.209 -1.96115,2.139 -1.42791,-0.70913 0.18962,-0.97215 -1.20034,-1.01308 -0.65287,0.55536 -0.57052,-0.353 -0.77767,-1.2408 -0.36336,0.5348 -0.57052,-0.353 -0.22643,-0.285 -0.30487,-0.812 2.14658,-1.114 1.45369,-0.60753 1.63386,-1.53409 0.81024,-1.45688 1.29927,-1.1995\"},\"42077\":{\"name\":\"Lehigh, PA\",\"path\":\"m 873.47786,209.98814 0.30487,0.812 0.22643,0.285 0.57052,0.353 0.36336,-0.5348 0.77767,1.2408 0.57052,0.353 0.65287,-0.55536 1.20034,1.01308 -0.18962,0.97215 1.42791,0.70913 -1.95938,3.236 -0.91639,-0.479 -7.27233,-3.874 1.98434,-1.81 2.25889,-1.721\"},\"42045\":{\"name\":\"Delaware, PA\",\"path\":\"m 881.29575,225.37814 1.87201,1.712 0.67564,0.5625 -0.19551,1.22868 0.77813,-0.10368 0.41942,0.5625 -2.06083,0.78553 -1.13843,1.45171 -0.18705,-0.0715 -0.18807,-0.0664 -0.18933,-0.0607 -0.19084,-0.0542 -0.19259,-0.0469 -0.19459,-0.039 -0.19681,-0.0303 -0.1993,-0.0209 -0.20201,-0.0107 -0.20497,1.6e-4 -0.20818,0.0118 -0.21162,0.0241 -0.21531,0.0372 -0.21925,0.051 -0.22341,0.0655 -0.22783,0.0807 -0.0761,-1.23185 2.9768,-4.83715\"},\"42091\":{\"name\":\"Montgomery, PA\",\"path\":\"m 877.42335,217.87214 9.39216,4.582 -1.2634,2.29966 -2.22305,-0.48532 -0.25579,1.00666 0.91461,0.706 -0.82012,1.109 -1.87201,-1.712 -1.92015,-0.442 -1.6973,-1.342 -0.18185,-0.241 -0.0571,-0.07 -1.78287,-0.729 -0.98058,0.11 1.83101,-5.268 0.91639,0.479\"},\"42029\":{\"name\":\"Chester, PA\",\"path\":\"m 874.67595,222.66114 0.98058,-0.11 1.78287,0.729 0.0571,0.07 0.18185,0.241 1.6973,1.342 1.92015,0.442 -2.9768,4.83908 0.0761,1.23379 -0.27807,0.1283 -0.26084,0.1396 -0.24395,0.1507 -0.22737,0.1615 -0.21114,0.1722 -0.1952,0.1826 -0.1797,0.1927 -0.1644,0.20271 -0.1495,0.21243 -0.135,0.22192 -0.1207,0.2312 -0.1068,0.24024 -0.0932,0.24906 -0.0799,0.25765 -0.067,0.26601 -0.0545,0.27415 -0.17142,0.0472 -5.9637,1.277 1.01089,-1.302 0.22642,-0.603 0.27456,-1.012 0.17472,-1.246 -0.22464,-0.617 -0.0874,-0.403 -0.0642,-0.587 0.45879,-2.32519 -0.34647,-1.37081 1.05368,-0.907 2.50671,-3.024\"},\"44003\":{\"name\":\"Kent, RI\",\"path\":\"m 939.00829,173.4666 -0.15569,0.009 -0.13206,0.12285 -0.199,0.14648 -0.0573,0.4181 -0.19112,-0.0858 -0.24229,0.2134 -0.0652,0.33538 0.14348,0.29607 -5.05673,1.56128 -0.25495,-0.965 -0.4992,-1.897 5.43953,-1.606 0.0481,-0.03 0.12837,-0.29903 -0.0481,-0.14997 0.0826,-0.28302 0.19202,-0.0565 0.0367,-0.12461 0.0679,3.9e-4 0.22743,-0.16658 0.0243,-0.0728 0.25199,0.0986 0.0207,0.11495 0.0933,0.0724 0.0712,0.15024 0.11377,0.0315 -0.0464,0.0993 0.0816,0.19355 0.0177,0.13779 0.22572,0.10336 0.30589,-0.0621 0.0176,0.0486 -0.23348,0.17782 0.0949,0.42804 -0.0624,0.25097 0.0688,0.1607 -0.0231,0.19145 -0.27962,-0.11903 0.0194,-0.19122 -0.12883,-0.0152 -0.11071,-0.0109 -0.0761,-0.11922 -0.0862,0.0223 0.0263,0.14026 -0.66443,0.0658 0.13717,0.49663 0.10338,0.0497 0.24397,-0.12726 0.29475,0.0732 z\"},\"44007\":{\"name\":\"Providence, RI\",\"path\":\"m 935.3898,165.81114 1.91912,-0.55872 0.18823,0.77572 0.54878,2.06945 0.66294,-0.32026 0.0296,0.21621 0.30268,0.63866 -0.005,0.3997 0.10639,0.14793 -0.0644,0.29768 0.149,0.22941 0.0893,0.29768 0.19594,0.16113 0.10331,0.17553 0.17467,0.015 -0.40978,0.69377 -0.085,0.062 -0.0277,-0.11442 -0.11493,-0.16343 -0.0687,0.005 -0.0663,-0.0647 0.003,-0.21655 -0.29031,-0.46272 -0.24104,-0.15362 -0.004,-0.14253 0.10062,-0.62552 -0.0582,-0.30642 -0.17354,-0.0898 -0.0547,0.20767 0.0276,0.26463 -0.0377,0.51737 -0.14485,-0.0153 -0.0465,0.0715 0.23827,0.33162 0.17096,0.0456 0.097,0.10471 -0.0416,0.10931 0.18595,0.52569 -0.252,-0.0986 -0.0243,0.0728 -0.22743,0.16658 -0.0679,-3.9e-4 -0.0367,0.12461 -0.19202,0.0565 -0.0826,0.28302 0.0481,0.14997 -0.12837,0.29903 -0.0481,0.03 -5.43953,1.606 -1.80962,-6.307 4.90111,-1.503\"},\"44001\":{\"name\":\"Newport, RI\",\"path\":\"m 941.25036,173.06807 -0.10264,0.14351 0.009,0.1182 0.16545,0.0278 0.0889,-0.16321 z m 1.06214,-0.66963 0.0762,0.57226 0.19727,0.70118 0.21679,0.1289 -0.11523,0.41406 0.21484,0.46875 -0.15625,0.11914 0.0918,0.2793 0.23633,0.0469 0.13086,0.55078 0.13086,0.0703 -0.0703,0.25781 0.46485,0.48438 0.0645,0.54883 0.34766,-0.28711 0.10937,-0.3418 0.29883,-0.19141 -0.0449,-0.27148 0.23633,-0.17383 -0.72358,-2.19014 -0.27285,-0.23381 -0.004,-0.44478 -0.28244,-0.7133 -1.0471,-0.10339 z m -2.01009,2.75072 -0.15208,0.003 -0.11265,0.14043 -0.007,0.26755 0.0593,0.41926 -0.0167,0.3712 0.20602,0.32351 0.15154,0.0909 -0.006,0.20683 0.0907,0.0675 -0.10121,0.0382 -0.22773,0.0349 -0.006,0.10268 0.16779,0.31004 0.0301,0.22143 -0.009,0.24072 0.0623,0.10448 0.12459,-0.25486 -0.0199,-0.15084 0.0562,-0.0631 0.0339,-0.27413 0.27284,-0.1038 0.0256,-0.11865 -0.16651,-0.19331 -0.0285,-0.1402 0.0801,-0.24663 -0.17812,-0.0894 0.0214,-0.0829 -0.16184,-0.49453 0.0267,-0.29447 z m 0.52624,-0.34162 0.13799,-0.1054 0.11689,-0.23709 0.0604,-0.60878 -0.20651,-0.17869 -0.4909,-0.17777 -0.11474,-0.32166 -0.17302,-0.21526 -0.14848,0.16142 0.17323,0.24514 -0.12614,0.17025 0.0333,0.20542 0.17883,0.10003 0.27717,-0.0154 0.0735,0.33392 -0.0569,0.22236 0.14203,0.41666 z m 0.48475,0.62073 0.11558,0.66729 -0.22392,-0.0358 0.0101,0.17494 0.0936,0.0499 0.0388,0.15035 0.0648,0.25117 0.20311,0.3168 -0.28809,0.22916 -0.0917,-0.10675 -0.23102,0.39308 -0.0202,0.17598 0.20525,0.18126 0.13487,-0.1315 0.10467,0.0129 0.23707,-0.24525 0.27779,0.0624 0.009,-0.23744 0.0525,-0.18547 -0.0542,-0.17493 0.0242,-0.15775 0.17433,-0.11787 0.0611,0.0898 0.12956,-0.0367 0.008,-0.14677 0.13697,-0.0388 0.11736,0.003 0.18836,0.10842 0.0175,0.16543 0.0818,-0.003 0.0133,-0.26946 -0.16492,-0.14127 -0.002,-0.34898 0.0629,-0.2096 -0.002,-0.42553 -0.13936,-0.0773 -0.1802,-0.44801 -0.062,-0.43989 -0.25864,-0.22249 -0.0543,-0.67271 0.26822,-0.2251 -0.24618,-0.61838 -0.11679,0.26414 -0.31366,0.21181 -0.077,0.30949 -0.11509,0.15247 0.0102,0.4065 -0.0813,0.2846 0.0203,0.4464 z\"},\"44009\":{\"name\":\"Washington, RI\",\"path\":\"m 933.05246,176.48314 5.05673,-1.56128 -0.14348,-0.29607 0.0652,-0.33543 0.24229,-0.2134 0.19112,0.0858 0.0573,-0.4181 0.19899,-0.14648 0.13207,-0.1229 0.15569,-0.009 0.13541,0.36216 0.11621,0.19633 -0.0999,0.0835 -0.0227,0.1129 0.14493,-0.015 0.0956,0.12549 -0.17773,0.22205 0.12595,0.0934 0.14741,-0.0437 0.0495,0.15561 -0.0522,0.11455 -0.39999,0.28261 -0.18277,0.005 -0.0603,0.1175 0.15273,0.16253 0.35709,0.26249 0.075,0.15115 0.2067,0.30473 0.156,0.46385 -0.0686,0.21588 0.0827,0.32677 0.10562,0.16834 0.0464,0.18165 -0.12931,0.0617 -0.0243,0.24892 0.14196,0.10434 -0.0539,0.28123 -0.29519,0.30905 0.22189,0.52815 -0.27199,0.68159 -0.017,0.29446 0.0577,0.23901 -0.0987,0.009 -0.14923,-0.11522 -0.31628,-0.065 -0.002,-0.12592 0.13205,-0.15904 0.0729,-0.19451 -0.0501,-0.13162 -0.0215,-0.12928 -0.0914,-0.0699 -0.0795,-0.25902 -0.18074,0.0623 0.0252,0.13086 -0.01,0.59451 -0.037,0.13305 0.0708,0.16536 -0.29175,0.17053 -0.13603,0.0131 -0.004,3.4e-4 -0.36538,0.15638 -0.36334,0.26146 -0.48575,0.20088 -0.24689,0.2183 -0.84588,0.59933 -0.13357,0.24389 -0.21481,0.10993 -0.17431,0.0396 -0.25356,0.14733 -0.25611,0.0412 -0.21971,0.10424 -0.78601,0.42379 -0.18317,0.1398 -0.16605,0.24557 -0.11394,-0.0985 -0.15628,0.0672 -0.18075,0.10869 -0.0477,-0.13467 0.40918,-0.15024 0.0825,-0.19005 -0.003,-0.17111 0.23405,-0.3037 -0.0406,-0.21847 -0.20028,-0.26774 -0.0393,-0.44768 -0.20975,-0.25828 -0.0488,-0.31509 0.274,-0.35605 0.26578,0.004 0.0783,-0.0701 -0.96081,-3.94252 m 6.09052,7.19275 0.13713,0.38174 -0.0177,0.30213 0.0721,0.18323 0.42043,0.47696 -0.18428,0.1652 -0.4646,0.17752 -0.32994,0.23528 -0.12135,-0.11806 -0.10017,-0.61957 0.16538,-0.28606 0.28329,0.0921 0.0931,-0.12312 -0.24046,-0.27568 0.0628,-0.18935 -0.16741,-0.47156 z\"},\"45077\":{\"name\":\"Pickens, SC\",\"path\":\"m 769.98761,363.00314 0.59609,0.32756 2.95709,-0.86182 -0.0186,1.28671 0.83347,-0.13345 1.33002,2.917 0.20147,0.538 0.15332,0.779 -0.0909,0.113 -4.85184,3.71493 -1.08512,1.71007 -2.42014,-7.83348 -0.66779,-0.25052 0.32448,-1.182 0.32092,-0.506 2.41757,-0.619\"},\"45073\":{\"name\":\"Oconee, SC\",\"path\":\"m 767.57004,363.62214 -0.32092,0.506 -0.32448,1.182 0.66779,0.25052 2.42014,7.83348 -2.37835,3.689 -1.16599,-0.163 -1.15174,-0.802 -4.77096,-2.933 -0.37084,-0.618 0.30666,-1.737 1.23553,-2.243 1.70442,-1.324 0.40293,-1.831 1.78465,-0.863 1.96116,-0.947\"},\"45013\":{\"name\":\"Beaufort, SC\",\"path\":\"m 814.52192,411.52914 2.61341,0.2156 1.12259,1.7064 1.39018,0.23471 2.34583,1.68729 0.39951,1.16955 0.45478,0.0738 0.25465,0.37063 0.0981,0.192 0.0553,0.273 -0.041,0.346 -0.21751,1.18 -0.18363,0.202 -3.50191,2.15806 -0.0562,0.64539 -1.19141,2.14755 -1.10003,0.891 -0.53942,-0.0453 -0.59448,0.90428 -0.48138,-0.385 -2.30703,-1.848 -0.30309,-0.489 -0.16224,-0.522 0.0232,-0.123 0.24068,-1.011 -0.33924,-0.39945 1.35904,-0.48655 -0.12864,-0.99473 1.13418,-0.0803 0.26565,-0.3495 0.26565,-0.3495 0.0677,-0.3185 0.0678,-0.3185 -0.59137,-0.259 0.58437,-1.217 -0.79738,-1.362 0.0735,-1.362 -0.0963,-0.219 -0.33696,-0.496 -0.51346,-0.644 0.66679,-1.118\"},\"45049\":{\"name\":\"Hampton, SC\",\"path\":\"m 814.52192,411.52914 -0.66679,1.118 -0.48316,0.997 -0.34588,-0.08 -0.5723,-0.209 -0.15868,-0.433 0.0642,-0.33 -0.0642,-0.332 -0.69888,-0.65 -0.79516,-0.516 -0.39401,0.355 -4.21828,5.055 -2.00929,-0.804 -0.82903,-3.359 0.3637,-0.175 0.82725,-0.556 0.80229,-1.357 0.15333,-1.095 0.0553,-0.848 0.32983,-0.919 0.25673,-0.353 0.21573,-0.201 2.1234,-1.87 3.3118,2.96702 2.73213,3.59498\"},\"45053\":{\"name\":\"Jasper, SC\",\"path\":\"m 813.85513,412.64714 0.51346,0.644 0.33696,0.496 0.0963,0.219 -0.0735,1.362 0.79738,1.362 -0.58437,1.217 0.59137,0.259 -0.0678,0.3185 -0.0677,0.3185 -0.26565,0.3495 -0.26565,0.3495 -1.13418,0.0803 0.12864,0.99473 -1.35904,0.48655 0.33924,0.39945 -0.24068,1.011 -0.0232,0.123 0.16224,0.522 0.30309,0.489 2.30703,1.848 0.48138,0.385 0.009,1.077 -3.57465,-0.674 -1.08577,-0.419 -0.0892,-0.09 -0.2496,-0.997 -0.18185,-0.918 -0.0998,-0.449 -0.2496,-1.221 -2.03961,-4.138 -1.71155,-1.414 -0.36906,-0.137 4.21828,-5.055 0.39401,-0.355 0.79516,0.516 0.69888,0.65 0.0642,0.332 -0.0642,0.33 0.15868,0.433 0.5723,0.209 0.34588,0.08 0.48316,-0.997\"},\"45067\":{\"name\":\"Marion, SC\",\"path\":\"m 832.84795,372.2802 0.47219,-0.22304 0.70103,-0.92002 0.99127,-0.444 0.57765,-0.113 3.15352,0.39491 0.74205,-0.77991 0.98236,0.619 0.21029,0.73401 -0.89313,1.44799 -0.68283,2.182 -0.54021,0.956 -0.79516,1.116 -0.0642,0.145 0.0802,0.693 1.76067,1.48823 0.24328,1.66777 1.02693,1.383 0.73098,0.86 -0.77554,0.23865 -0.96728,-0.35785 -0.26425,-0.82655 -0.66902,-0.31525 -0.22642,-0.412 0.16371,-0.65627 -3.67086,-2.18673 -0.53462,-0.75098 -0.28715,-1.43939 -0.56464,-1.59481 -1.2591,-1.40082 0.57808,-0.75397 -0.21981,-0.75397\"},\"45033\":{\"name\":\"Dillon, SC\",\"path\":\"m 833.01028,363.51814 8.33313,6.073 -0.87539,1.223 -0.98236,-0.619 -0.74205,0.77991 -3.15352,-0.39491 -0.57765,0.113 -0.99127,0.444 -0.70103,0.92002 -0.47219,0.22304 -0.95115,-0.77698 -1.00814,-0.0361 2.12162,-7.949\"},\"45051\":{\"name\":\"Horry, SC\",\"path\":\"m 840.46802,370.81414 0.87539,-1.223 9.3048,6.646 2.43362,1.737 -0.78625,0.305 -1.519,0.909 -0.71493,0.537 -0.96275,0.925 -0.0909,0.1 -0.37618,0.409 -0.17651,0.203 -0.27991,0.369 -0.38688,0.506 -0.1141,0.154 -1.13926,1.75 -0.67571,1.295 -0.24068,0.463 -1.78541,0.14364 -0.20891,-0.64461 -1.06107,-1.30503 -1.01847,-0.602 -0.73098,-0.86 -1.02693,-1.383 -0.24328,-1.66777 -1.76067,-1.48823 -0.0802,-0.693 0.0642,-0.145 0.79516,-1.116 0.54021,-0.956 0.68284,-2.182 0.89312,-1.44799 -0.21029,-0.73401\"},\"45019\":{\"name\":\"Charleston, SC\",\"path\":\"m 838.70833,395.54114 0.83706,0.28191 1.36458,0.63359 1.32942,5.6e-4 -0.18283,0.91494 -0.53823,0.6299 -0.27054,1.78317 -1.38989,0.0779 -0.90406,0.43362 -0.21295,0.0286 -0.30485,-0.5867 -0.57616,0.0595 -0.77623,0.75686 -0.61644,1.37298 0.28742,0.36904 0.72591,9e-5 -0.0376,0.54576 -1.43507,0.96379 -0.5533,0.80553 -0.47313,0.4431 -0.004,0.38267 -2.4519,1.9173 0.0906,0.45393 -0.28725,1.11052 -1.41092,1.38872 -0.0729,0.38472 -0.64809,0.30532 -0.84176,0.39572 -0.20147,0.08 -0.16046,0.09 -0.62757,0.344 -1.46195,1.061 -0.74702,0.731 -0.009,0 -0.15154,-0.126 -1.18204,0.513 -0.2086,0.266 0.21751,0.192 0.025,0.06 -0.025,0.169 -0.14441,0.04 -0.36014,-0.09 -0.81477,-1.13 -1.13212,-2.523 -0.7078,-1.239 0.41897,-2.017 -0.0571,-1.1 2.25711,-0.09 2.4978,0.0554 -0.61324,-1.02419 0.91852,-0.73157 0.62745,0.0543 0.16374,-0.86191 -2.07113,-1.70273 0.37384,-0.21827 1.00028,0.34196 0.79654,-0.18196 0.48703,0.975 0.6996,0.98714 1.25264,-0.17714 -0.0138,0.85695 0.48791,0.25383 0.16774,0.63222 0.27991,0.129 0.40844,-0.28124 -0.16188,-0.83961 0.80593,-0.46129 0.17908,-0.49817 -0.079,-0.53504 1.21155,-0.94065 -0.15601,-0.80506 0.65522,-0.84194 1.10894,-2.395 0.47648,-0.68065 0.89365,-0.57635 0.89366,-0.0549 0.47648,-1.20212 0.65788,-0.345\"},\"45035\":{\"name\":\"Dorchester, SC\",\"path\":\"m 821.26295,397.49314 0.32092,0.214 1.21413,1.353 -0.19255,0.49 -0.17829,0.209 0.62044,0.426 3.13251,1.999 -0.37384,0.21877 2.07113,1.70323 -0.16374,0.86091 -0.62745,-0.0543 -0.91852,0.73157 0.61324,1.02419 -2.4978,-0.0554 -2.25711,0.09 -0.72998,-2.82502 0.23072,-1.43398 -0.22285,-0.167 -0.0481,0 -2.32308,0.181 -1.28723,0.293 -0.60083,-0.09 -2.03601,-1.82411 -1.55651,-0.27489 4.8601,-4.386 0.0963,0.08 0.098,0.135 0.0446,0.187 0.0125,0.246 0.0535,0.17 0.22643,0.346 0.21037,0.112 0.9788,0.233 1.23018,-0.192\"},\"45015\":{\"name\":\"Berkeley, SC\",\"path\":\"m 825.25658,391.21714 0.34588,-0.282 0.14263,-0.04 1.53683,-0.199 0.53843,0.05 1.39063,0.811 0.64184,0.49 0.27991,0.409 0.13906,0.114 1.99147,1.077 1.73473,0.568 4.71034,1.329 -0.65788,0.345 -0.47648,1.20212 -0.89366,0.0549 -0.89365,0.57635 -0.47648,0.68065 -1.10894,2.395 -0.65522,0.84194 0.15601,0.80506 -1.21155,0.94065 0.079,0.53504 -0.17908,0.49817 -0.80593,0.46129 0.16188,0.83961 -0.40844,0.28124 -0.27991,-0.129 -0.16774,-0.63222 -0.48791,-0.25383 0.0138,-0.85695 -1.25264,0.17714 -0.6996,-0.98714 -0.48702,-0.975 -0.79654,0.18196 -1.00029,-0.34196 -3.13251,-1.999 -0.62044,-0.426 0.17829,-0.209 0.19255,-0.49 -1.21413,-1.353 -0.32092,-0.214 0.129,-0.67303 0.86454,0.16222 0.86454,-0.75212 0.12901,-1.69125 -0.058,-1.73282 2.06456,-1.589\"},\"45043\":{\"name\":\"Georgetown, SC\",\"path\":\"m 838.86879,382.22614 0.66902,0.31525 0.26425,0.82655 0.96728,0.35785 0.77554,-0.23865 1.01847,0.602 1.06107,1.30503 0.20891,0.64461 1.78541,-0.14364 -1.18918,2.284 -0.0553,0.145 -0.13015,0.337 -0.0374,0.1 -0.0107,0.04 -0.009,0.02 -0.38332,1.358 -0.0499,0.225 -0.0642,0.321 -0.016,0.07 -0.0642,1.212 -0.0178,0.637 -0.0214,1.05 -0.009,0.03 0.009,0 0.0481,0.289 0.007,0.07 0.28169,0.684 -0.16046,0.803 -0.11232,0.199 -0.78981,1.102 -0.78803,0.49 0.18283,-0.91494 -1.32942,-5.6e-4 -1.36458,-0.63359 -0.83706,-0.28191 -4.71034,-1.328 -0.12837,-0.321 0.009,-0.426 1.20522,-2.683 2.46575,-3.48935 -0.29422,-0.47265 0.22999,-2.184 0.24961,-0.636 0.7488,-1.574 0.11054,-0.1 0.27456,-0.102\"},\"45027\":{\"name\":\"Clarendon, SC\",\"path\":\"m 825.89841,380.57014 0.79981,1.1369 1.28972,-0.0529 -0.4375,1.65474 -1.17352,1.19912 0.40365,0.88369 -1.52399,5.82545 -2.06456,1.589 -1.86489,0.611 -0.53842,0.105 -0.24782,-0.02 -0.59013,-0.19 -0.76842,-0.508 -0.60261,-0.578 -0.98236,-1.173 -1.03585,-1.824 0.87657,-1.80421 1.54591,-0.44899 -0.31691,-1.0028 2.36385,-0.94779 1.15554,-1.30021 3.71193,-3.15\"},\"45089\":{\"name\":\"Williamsburg, SC\",\"path\":\"m 838.64237,381.81414 0.22642,0.412 -0.27456,0.102 -0.11054,0.1 -0.7488,1.574 -0.24961,0.637 -0.22999,2.184 0.29421,0.47215 -2.46574,3.48885 -1.20522,2.683 -0.009,0.427 0.12837,0.32 -1.73473,-0.568 -1.99147,-1.077 -0.13906,-0.114 -0.27991,-0.409 -0.64184,-0.49 -1.39063,-0.811 -0.53843,-0.05 -1.53683,0.2 -0.14263,0.04 -0.34588,0.281 1.52399,-5.82545 -0.40365,-0.88369 1.17352,-1.19912 0.4375,-1.65474 0.82369,-0.22639 0.82368,1.10339 0.80096,-0.29593 0.66099,0.54393 1.52247,-0.5449 2.92223,0.6449 0.98057,-0.344 0.15155,-0.258 0.90213,-0.692 0.1355,-0.06 0.37618,0.02 0.55448,0.265\"},\"45041\":{\"name\":\"Florence, SC\",\"path\":\"m 830.40551,371.38514 0.48315,0.08 1.00814,0.0361 0.95115,0.77698 0.21981,0.75397 -0.57808,0.75397 1.2591,1.40082 0.56464,1.59481 0.28715,1.43939 0.53462,0.75098 3.67086,2.18673 -0.16371,0.65627 -0.55448,-0.265 -0.37618,-0.02 -0.1355,0.06 -0.90213,0.692 -0.15155,0.258 -0.98057,0.344 -2.92223,-0.6449 -1.52247,0.5449 -0.66099,-0.54393 -0.80096,0.29593 -0.82368,-1.10339 -0.82369,0.22639 -1.28972,0.0529 -0.79981,-1.1369 1.27702,-1.39345 -2.15241,-0.83355 -1.49404,-0.642 3.81712,-4.099 0.4987,-0.68909 1.2396,0.0518 0.0143,-0.51812 0.24224,-0.68909 0.87426,0.0127 0.19035,-0.38623\"},\"45069\":{\"name\":\"Marlboro, SC\",\"path\":\"m 823.4327,360.81914 4.4447,-0.724 4.87793,3.247 0.25495,0.176 -2.12162,7.949 -0.48315,-0.08 0,-0.09 -0.56161,-1.421 -0.29595,-0.563 -0.7078,-0.282 -0.57377,-0.83821 0.40616,-0.80732 -0.79426,-0.38151 -0.7557,0.63451 -0.79449,-0.38447 -0.0517,-0.369 0.041,-0.113 0.40812,-2.5411 -3.29281,-3.4119\"},\"45031\":{\"name\":\"Darlington, SC\",\"path\":\"m 826.31739,366.77214 -0.041,0.113 0.0517,0.369 0.79449,0.38447 0.7557,-0.63451 0.79426,0.38151 -0.40616,0.80732 0.57377,0.83821 0.7078,0.282 0.29595,0.563 0.56161,1.421 0,0.09 -0.19035,0.38573 -0.87426,-0.0132 -0.24224,0.68909 -0.0143,0.51812 -1.2396,-0.0518 -0.4987,0.68909 -3.81712,4.099 -0.0731,0.02 -1.54218,-1.094 -0.2817,-0.369 0.52239,-0.69 0.0963,-0.99 -0.76307,-1.237 -0.78624,-0.787 -0.63649,-0.192 -1.62954,-0.314 0,-0.05 4.03285,-3.641 3.12785,-0.66982 0.72137,-0.91318\"},\"45061\":{\"name\":\"Lee, SC\",\"path\":\"m 818.43532,372.04414 1.62954,0.314 0.63649,0.193 0.78624,0.786 0.76307,1.237 -0.0963,0.99 -0.52239,0.69 0.2817,0.369 1.54218,1.094 0.0731,-0.02 1.49404,0.642 -0.33696,0.981 -0.97832,0.2081 -1.39825,1.3979 -0.62628,-0.98381 -0.98195,0.21061 -1.47186,-1.6091 -1.8568,0.2456 -1.43687,-0.3843 -0.32091,-1.319 0.24069,-0.273 0.45106,-1.214 -0.0802,-0.692 -0.0731,-0.298 0.5313,-0.729 1.75078,-1.84\"},\"45055\":{\"name\":\"Kershaw, SC\",\"path\":\"m 815.26003,366.69214 1.92628,2.31337 1.24901,2.99063 -1.75078,1.89 -0.5313,0.729 0.0731,0.298 0.0802,0.692 -0.45106,1.214 -0.24069,0.273 -2.29099,1.991 -1.81674,1.015 -3.22878,-2.138 0.50633,-2.098 0.82229,-2.87359 -2.51066,-1.28841 2.39612,-2.34973 0.18806,1.23601 0.37701,-0.0388 0.42615,-0.77211 0.86305,0.59568 2.26063,-1.04991 -0.78263,-0.94309 2.4354,-1.678\"},\"45085\":{\"name\":\"Sumter, SC\",\"path\":\"m 815.61482,377.09014 0.32091,1.319 1.43687,0.3843 1.8568,-0.2456 1.47186,1.6091 0.98195,-0.21061 0.62628,0.98381 1.39825,-1.3979 0.97832,-0.2081 0.33696,-0.981 2.15241,0.83355 -1.27702,1.39345 -3.71193,3.15 -1.15554,1.30021 -2.36385,0.94779 0.31691,1.0028 -1.54591,0.44899 -0.87657,1.80421 -1.98433,-2 0.17476,-1.34428 -0.80144,-2.72722 -0.65908,-1.7917 0.52457,-1.03793 -0.49217,-1.24187 2.29099,-1.991\"},\"45017\":{\"name\":\"Calhoun, SC\",\"path\":\"m 806.71117,385.28714 0.98592,0.601 1.45928,0.6195 0.42713,-0.2146 1.09265,0.7131 1.44246,0.181 1.59536,-0.52911 0.86322,0.56911 1.98433,2 1.03585,1.824 -0.2086,0.506 -1.57795,-0.43599 -0.36537,2.26899 -0.79553,-0.24696 -0.84216,-1.0398 -2.80761,-1.43341 -2.48115,0.29217 -1.75078,-1.641 1.52435,-0.955 0.51525,-0.523 -0.26565,-0.176 -0.52238,-0.225 -0.97879,0.105 -0.29061,0.5926 -0.47246,-0.0199 -0.0392,-2.26073 0.0303,-0.28 0.44216,-0.289\"},\"45029\":{\"name\":\"Colleton, SC\",\"path\":\"m 813.4522,400.56114 1.55651,0.27489 2.03601,1.82411 0.60083,0.09 1.28723,-0.293 2.32308,-0.182 0.0481,0 0.22285,0.168 -0.23072,1.43298 0.72998,2.82602 0.0571,1.1 -0.41897,2.017 0.7078,1.239 1.13212,2.523 0.81477,1.13 0.36014,0.09 0.14441,-0.04 0.025,-0.17 -0.025,-0.06 -0.21751,-0.192 0.2086,-0.266 1.18204,-0.513 0.15154,0.126 0.009,0 -1.39064,1.441 -0.11232,0 -0.68825,-0.28822 -0.43788,0.36281 -0.54089,0.0853 -0.14854,-0.41938 -0.69653,0.23062 -0.14795,0.25788 -2.34583,-1.68729 -1.39017,-0.23471 -1.1226,-1.7064 -2.61341,-0.2156 -2.73213,-3.59498 -3.3118,-2.96702 2.46237,-2.30356 0.83619,0.76117 0.33582,-0.69823 -0.37415,-0.79736 1.58561,-1.25602 0.12837,-0.112\"},\"45005\":{\"name\":\"Allendale, SC\",\"path\":\"m 808.47799,404.96714 -2.1234,1.87 -0.21573,0.201 -0.25673,0.353 -0.32983,0.919 -0.0553,0.848 -0.15333,1.095 -0.80229,1.357 -0.82725,0.556 -0.3637,0.175 -3.65489,-6.453 -1.57605,-0.866 1.18204,-1.703 1.76861,0.271 1.76682,0.353 1.53505,-0.248 1.68125,-0.497 2.4247,1.769\"},\"45009\":{\"name\":\"Bamberg, SC\",\"path\":\"m 813.32383,400.67314 -1.58561,1.25602 0.37415,0.79736 -0.33582,0.69823 -0.83619,-0.76117 -2.46237,2.30356 -2.4247,-1.769 -0.67571,-0.763 -0.0891,-0.332 -0.56339,-4.699 -0.15868,-0.813 -0.22642,-0.635 2.25711,0.998 2.07348,0.706 0.60261,0.209 1.92907,1.006 2.12161,1.798\"},\"45075\":{\"name\":\"Orangeburg, SC\",\"path\":\"m 806.76822,389.31814 1.75078,1.641 2.48115,-0.29217 2.80761,1.43341 0.84216,1.0398 0.79553,0.24696 0.36537,-2.26899 1.57795,0.43599 0.2086,-0.506 0.98236,1.173 0.60261,0.578 0.76842,0.508 0.59013,0.19 0.24782,0.02 0.53842,-0.105 1.86489,-0.611 0.058,1.73282 -0.12901,1.69125 -0.86454,0.75212 -0.86454,-0.16222 -0.129,0.67303 -1.23018,0.192 -0.9788,-0.233 -0.21037,-0.112 -0.22643,-0.346 -0.0535,-0.17 -0.0125,-0.246 -0.0446,-0.187 -0.098,-0.135 -0.0963,-0.08 -4.8601,4.386 -0.12837,0.113 -2.12161,-1.799 -1.92907,-1.006 -0.60261,-0.208 -2.07348,-0.707 -2.25711,-0.998 -1.50742,-0.71342 -1.50741,4.2e-4 2.92747,-4.252 2.51563,-1.673\"},\"45011\":{\"name\":\"Barnwell, SC\",\"path\":\"m 804.33995,395.95614 0.22642,0.635 0.15868,0.813 0.56339,4.699 0.0891,0.332 0.67571,0.763 -1.68125,0.497 -1.53505,0.248 -1.76682,-0.353 -1.76861,-0.271 -1.18204,1.703 -3.20739,-1.503 6.41299,-8.276 1.50742,-4.2e-4 1.50741,0.71342\"},\"45003\":{\"name\":\"Aiken, SC\",\"path\":\"m 796.23146,386.99014 0.0802,0.119 0.78802,0.796 1.62359,0.56961 1.09532,1.3437 0.97698,0.0817 0.42789,0.06 1.18026,0.326 1.84884,0.717 -2.92747,4.252 -6.41299,8.276 -1.78822,-1.352 -1.248,-1.766 -0.45107,-1.742 -1.27475,-1.487 -0.90035,-0.852 -0.16224,-0.154 5.85138,-7.513 1.29258,-1.663\"},\"45063\":{\"name\":\"Lexington, SC\",\"path\":\"m 799.46202,379.00114 0.90043,0.41737 -0.26297,0.52313 0.97976,1.02551 0.60958,-0.085 0.55447,0 0.69711,0.07 0.70066,0.408 1.71869,1.239 0.31379,0.33 0.70779,1.084 0.0642,0.129 0.26565,1.142 -0.44216,0.289 -0.0303,0.28 0.0392,2.26073 0.47246,0.0199 0.29061,-0.5926 0.97879,-0.105 0.52238,0.225 0.26565,0.176 -0.51525,0.523 -1.52435,0.955 -2.51563,1.673 -1.84884,-0.717 -1.18026,-0.326 -0.42789,-0.06 -0.97698,-0.0817 -1.09532,-1.3437 -1.62359,-0.56961 -0.78802,-0.796 -0.0802,-0.119 1.16778,-4.837 1.5626,-0.22428 -0.99426,-1.33159 0.47543,-1.08999 1.01901,-0.50614\"},\"45079\":{\"name\":\"Richland, SC\",\"path\":\"m 808.78464,375.86014 -0.50633,2.098 3.22878,2.138 1.81674,-1.015 0.49217,1.24159 -0.52457,1.03821 0.65908,1.7917 0.80144,2.72722 -0.17476,1.34428 -0.86322,-0.56911 -1.59536,0.52911 -1.44246,-0.181 -1.09265,-0.7131 -0.42713,0.2146 -1.45928,-0.6195 -0.98592,-0.601 -0.26565,-1.143 -0.0642,-0.128 -0.70779,-1.084 -0.31379,-0.33 -1.71869,-1.239 -0.70066,-0.408 -0.69711,-0.07 -0.55447,0 -0.60958,0.085 -0.97976,-1.02551 0.26297,-0.52313 -0.90043,-0.41737 0.25673,-1.018 0.6347,0.05 2.07426,0.75823 0.0324,-0.99582 0.93137,0.16759 2.90608,-1.31 2.4871,-0.788\"},\"45039\":{\"name\":\"Fairfield, SC\",\"path\":\"m 806.81457,369.74614 0.2817,1.952 2.51066,1.28841 -0.82229,2.87359 -2.4871,0.788 -2.90608,1.31 -0.93137,-0.16759 -0.0324,0.99582 -2.07426,-0.75823 -0.6347,-0.05 -2.8829,-5.522 -0.26743,-1.775 3.2466,-0.323 4.32346,-0.344 2.67609,-0.273\"},\"45071\":{\"name\":\"Newberry, SC\",\"path\":\"m 796.83585,372.46114 2.8829,5.522 -0.25673,1.018 -1.01901,0.50614 -0.47543,1.08999 0.99426,1.33159 -1.5626,0.22428 -0.56339,0.144 -0.82725,-0.192 -0.54734,-0.202 -1.23018,-0.698 -1.43878,-0.603 -0.48851,-0.136 -2.11448,0.537 -0.36108,-0.21844 -0.26119,0.3809 0.17119,0.77054 -1.62954,-1.343 0.48138,-1.125 0.37599,-1.44431 1.12518,-1.09469 0.50099,-0.497 1.1553,-2.236 0.85399,-2 2.44788,1.414 0.65967,-0.874 0.28347,-0.139 0.55447,-0.153 0.24961,0 0.0392,0.02\"},\"45081\":{\"name\":\"Saluda, SC\",\"path\":\"m 789.73824,381.93614 -0.17119,-0.77054 0.26119,-0.3809 0.36108,0.21844 2.11448,-0.537 0.48851,0.136 1.43878,0.603 1.23018,0.698 0.54734,0.202 0.82725,0.192 0.56339,-0.144 -1.16778,4.837 -1.29258,1.663 -3.64954,-0.659 -0.47246,-0.282 -0.24782,-0.216 -0.74167,-1.832 -0.7078,0.07 -1.37459,0.554 1.99324,-4.355\"},\"45037\":{\"name\":\"Edgefield, SC\",\"path\":\"m 787.745,386.29114 1.37459,-0.554 0.7078,-0.07 0.74167,1.832 0.24782,0.216 0.47246,0.282 3.64954,0.659 -5.85138,7.513 -0.31201,-0.29 -1.85775,-0.786 0.40133,-1.20107 -0.5144,-0.42148 -0.51441,-0.42148 -0.5144,-0.42149 -0.5144,-0.42148 0.11217,-1.15637 0.68361,-1.62391 -0.87487,-1.0871 -0.0956,-0.89662 1.95937,-0.843 0.69889,-0.305\"},\"45065\":{\"name\":\"McCormick, SC\",\"path\":\"m 787.04611,386.59614 -1.95937,0.843 0.0956,0.89662 0.87487,1.0871 -0.68361,1.62391 -0.11217,1.15637 0.5144,0.42148 0.5144,0.42149 0.51441,0.42148 0.5144,0.42148 -0.40133,1.20107 -2.20006,-1.921 -0.76307,-1.438 -1.18204,-0.972 -0.49742,-0.355 -1.64024,-0.827 -0.0874,0 -0.26743,0.103 -0.11945,-0.03 -2.84368,-1.694 -0.78803,-1.198 1.05368,-1.551 0.79337,-0.249 0.70067,0.305 0.2086,-0.01 1.21413,-0.121 0.92353,-0.291 0.92531,1.849 0.73097,-1.09911 0.73098,0.73011 0.91826,0.0139 0.25309,-0.33258 1.99325,-0.0933 0.0713,0.701\"},\"45047\":{\"name\":\"Greenwood, SC\",\"path\":\"m 781.78308,376.70514 0.33874,0.353 1.61707,1.18 2.76345,1.439 1.60636,0.916 1.62954,1.343 -1.99324,4.355 -0.69889,0.305 -0.0713,-0.701 -1.99325,0.0933 -0.25309,0.33258 -0.91826,-0.0139 -0.73097,-0.73011 -0.73098,1.09911 -0.92531,-1.849 0.60974,-0.682 0.36014,-0.491 0.24247,-0.651 0.0802,-0.675 -0.0874,-0.651 -0.24247,-0.624 -0.40115,-0.531 -0.27456,-0.259 -0.36727,-0.264 -0.26565,-0.105 -0.71671,-1.423 1.42273,-1.766\"},\"45059\":{\"name\":\"Laurens, SC\",\"path\":\"m 788.46884,371.39214 4.13269,0.804 -0.85399,2 -1.1553,2.236 -0.50099,0.497 -1.12518,1.09469 -0.37599,1.44431 -0.48138,1.125 -1.60636,-0.916 -2.76345,-1.439 -1.61707,-1.18 -0.33874,-0.353 -1.50831,-1.519 1.27654,-1.398 -0.2086,-1.166 0.57052,-2.667 0.46533,-2.122 1.59515,0.94419 0.38627,0.70194 2.58799,1.16164 1.52087,0.75123\"},\"45001\":{\"name\":\"Abbeville, SC\",\"path\":\"m 780.27477,375.18614 1.50831,1.519 -1.42273,1.766 0.71671,1.423 0.26565,0.105 0.36727,0.264 0.27456,0.259 0.40115,0.531 0.24247,0.624 0.0874,0.651 -0.0802,0.675 -0.24247,0.651 -0.36014,0.491 -0.60974,0.682 -0.92353,0.291 -1.21413,0.121 -0.2086,0.01 -0.70067,-0.304 -0.79337,0.249 -1.05368,1.551 -3.34288,-4.122 7.08869,-7.441\"},\"45007\":{\"name\":\"Anderson, SC\",\"path\":\"m 770.01257,373.39414 1.08512,-1.71007 4.85184,-3.71493 0.61732,0.39262 0.12943,0.75212 0.18571,2.47926 0.3227,0.74 0.5677,0.63514 0.25955,0.73786 2.24285,1.48 -7.08869,7.441 -0.7078,-1.841 -1.99147,-2.803 -0.62578,-0.966 0.007,-0.06 -0.19255,-0.146 -0.39402,-0.112 -0.67392,0.09 -0.74881,0.185 -0.016,0 -0.2086,0.105 2.37835,-3.688\"},\"45087\":{\"name\":\"Union, SC\",\"path\":\"m 790.01102,363.71814 1.28545,0.17 2.51563,0.112 0.36192,0.105 0.22465,0.121 0.58834,0.448 -0.32983,0.467 0.88919,0.94085 -0.53524,0.81699 0.45566,0.3525 0.14601,0.66216 0.23891,0.69312 0.8737,0.42992 -0.0862,0.8944 -0.0708,0.75506 0.26743,1.775 -0.0392,-0.02 -0.24961,0 -0.55447,0.154 -0.28347,0.139 -0.65967,0.873 -2.44788,-1.413 -4.13269,-0.804 0.27991,-2.5 0.19433,-3.245 0.59548,-1.134 0.47246,-0.795\"},\"45025\":{\"name\":\"Chesterfield, SC\",\"path\":\"m 816.13542,361.87614 7.29728,-1.057 3.29281,3.4119 -0.40812,2.5411 -0.72137,0.91318 -3.12785,0.66982 -4.03285,3.641 -1.24901,-2.99063 -1.92628,-2.31337 -3.59783,-4.152 4.47322,-0.664\"},\"45057\":{\"name\":\"Lancaster, SC\",\"path\":\"m 804.3239,357.64414 1.49405,1.526 1.31754,1.327 0.12837,2.346 0.009,0.217 0.37797,0.07 4.01146,-0.592 3.59783,4.152 -2.4354,1.678 0.78263,0.94309 -2.26063,1.04991 -0.86305,-0.59568 -0.42615,0.77211 -0.37701,0.0388 -0.18806,-1.23601 -2.39612,2.34973 -0.2817,-1.952 -0.68997,-2.043 0.0232,-0.786 0.26565,-0.949 -0.40293,-1.157 -0.40115,-1.029 -0.20146,-0.313 0.52831,-0.88554 -0.12375,-2.00336 -1.36587,-1.58438 -0.12268,-1.35172\"},\"45023\":{\"name\":\"Chester, SC\",\"path\":\"m 805.40789,363.46914 0.20146,0.313 0.40115,1.029 0.40293,1.157 -0.26565,0.949 -0.0232,0.786 0.68997,2.043 -2.67609,0.273 -4.32346,0.344 -3.2466,0.323 0.0708,-0.75506 0.0862,-0.8944 -0.87371,-0.42992 -0.2389,-0.69312 -0.14601,-0.66216 -0.45566,-0.3525 0.53524,-0.81699 -0.88919,-0.94085 10.75071,-1.672\"},\"45091\":{\"name\":\"York, SC\",\"path\":\"m 796.23146,356.89714 5.30225,-0.483 0.4393,0.65798 -0.40924,1.41429 0.55086,0.36675 1.51172,-1.51652 0.69755,0.3075 0.12268,1.35172 1.36587,1.58438 0.12375,2.00336 -0.52831,0.88554 -10.75071,1.672 0.32983,-0.467 -0.34766,-0.649 -0.60261,-1.583 -0.0654,-2.32436 1.33605,-0.5891 -0.33655,-1.81154 0.53664,-0.749 0.72385,-0.07\"},\"45021\":{\"name\":\"Cherokee, SC\",\"path\":\"m 788.04452,357.75614 7.46309,-0.788 -0.53664,0.749 0.33655,1.81154 -1.33605,0.5891 0.0654,2.32436 0.60261,1.583 0.34766,0.649 -0.58834,-0.448 -0.22465,-0.121 -0.36192,-0.105 -2.51563,-0.112 -1.28545,-0.17 -0.9467,-0.506 -1.00376,-2.079 -1.99325,-3.175 1.97721,-0.202\"},\"45083\":{\"name\":\"Spartanburg, SC\",\"path\":\"m 784.30584,358.15014 1.76147,-0.192 1.99325,3.175 1.00376,2.079 0.9467,0.506 -0.47246,0.795 -0.59548,1.134 -0.19433,3.245 -0.27991,2.5 -1.52087,-0.75123 -2.58799,-1.16164 -0.38627,-0.70194 -1.59515,-0.94419 -1.64737,-1.31 -0.0713,-0.184 -0.41897,-3.6 -0.5313,-4.114 4.59624,-0.475\"},\"45045\":{\"name\":\"Greenville, SC\",\"path\":\"m 777.11018,358.74414 2.59942,-0.119 0.5313,4.114 0.41897,3.6 0.0713,0.184 1.64737,1.31 -0.46533,2.122 -0.57052,2.667 0.2086,1.166 -1.27654,1.398 -2.24285,-1.48 -0.25955,-0.73786 -0.5677,-0.63514 -0.3227,-0.74 -0.18571,-2.47926 -0.12943,-0.75212 -0.61732,-0.39262 0.0909,-0.113 -0.15332,-0.779 -0.20147,-0.538 -1.33002,-2.917 -0.83347,0.13345 0.0186,-1.28671 -2.95709,0.86182 -0.59609,-0.32756 3.29474,-2.25 3.82783,-2.009\"},\"46105\":{\"name\":\"Perkins, SD\",\"path\":\"m 411.9071,124.60514 15.07595,1.045 -0.67571,10.824 -0.62757,9.962 -15.54841,-1.084 0.28883,-3.977 0.29774,-3.978 0.69888,-7.939 0.12124,0 0.36905,-4.86\"},\"46063\":{\"name\":\"Harding, SD\",\"path\":\"m 394.24599,123.20714 16.80177,1.334 0.85934,0.06 -0.36905,4.86 -0.12124,0 -0.69888,7.939 -0.29774,3.978 -17.5167,-1.389 1.23731,-15.326 0.10519,-1.453\"},\"46033\":{\"name\":\"Custer, SD\",\"path\":\"m 390.01168,171.16314 11.22494,0.843 11.36937,0.868 -0.0464,0.337 -0.24247,0.869 -2.02534,2.499 -0.41623,0.70763 -1.26323,-0.50763 -0.64192,1.37645 -0.97336,0.0876 -0.21751,2.973 -17.49174,-1.413 0.0481,-0.58 0.67571,-8.06\"},\"46047\":{\"name\":\"Fall River, SD\",\"path\":\"m 389.28783,179.80314 17.49174,1.413 -0.81121,10.969 -8.42941,-0.651 -9.1586,-0.749 0.90748,-10.982\"},\"46113\":{\"name\":\"Shannon, SD\",\"path\":\"m 421.42941,177.04514 -0.32805,5.166 0.46533,0.02 -0.12837,2.001 -0.353,6.01 0.45641,0.03 -0.2086,2.986 -11.87748,-0.817 -3.48729,-0.265 0.81121,-10.969 0.21751,-2.973 0.97336,-0.0875 0.64192,-1.37645 1.26323,0.50763 0.41623,-0.70763 10.4708,0.731 0.66679,-0.265\"},\"46007\":{\"name\":\"Bennett, SD\",\"path\":\"m 436.12739,185.13014 -0.49207,9.03 -6.66081,-0.346 -4.17904,-0.321 -3.46234,-0.226 0.2086,-2.986 -0.45641,-0.03 0.353,-6.01 14.68907,0.893\"},\"46095\":{\"name\":\"Mellette, SD\",\"path\":\"m 439.42035,174.85214 0.1141,-0.122 0.37619,-0.09 4.07348,3.12322 1.55682,0.35277 1.78232,-0.8403 1.98579,0.96646 1.18013,-0.0824 0.63928,-0.11477 0.15332,0.275 1.79179,0.151 -0.0571,7.474 -16.88913,-0.818 0.49029,-8.92 0.23177,-0.522 0.13728,-0.195 1.23731,-0.698 0.82726,-0.138 0.27277,0.105 0.0963,0.09\"},\"46121\":{\"name\":\"Todd, SD\",\"path\":\"m 436.12739,185.13014 16.88913,0.818 -0.1355,9.05 -1.33359,-0.07 -1.19809,-0.06 -3.26265,-0.154 -6.07424,-0.281 -5.37713,-0.282 0.49207,-9.03\"},\"46123\":{\"name\":\"Tripp, SD\",\"path\":\"m 453.07357,178.47414 0.47424,0.459 1.8741,0.46584 1.21062,-0.45105 2.57962,0.61256 1.9812,-0.78063 1.27226,-0.58812 0.68474,0.0384 -0.20147,5.601 1.49583,0.06 -0.43502,11.574 -11.12867,-0.467 0.1355,-9.05 0.0571,-7.474\"},\"46053\":{\"name\":\"Gregory, SD\",\"path\":\"m 468.36524,184.02814 -0.2169,0.87449 0.84464,0.69732 1.62746,0.0745 0.50353,0.67054 0.62422,0.99611 1.72982,2.52013 1.78998,0.40089 0.2557,1.8255 1.67275,0.7826 1.28825,1.39125 2.22686,0.4656 0.65424,1.27902 -12.67086,-0.371 -4.68538,-0.168 0.43502,-11.574 3.92053,0.137\"},\"46015\":{\"name\":\"Brule, SD\",\"path\":\"m 474.84241,174.18314 1.9772,0.06 -0.0802,10.054 -8.36522,-0.273 0.0963,-0.114 0.1355,-0.239 0.0571,-0.21 -0.7025,-0.95933 0.0134,-1.26358 -0.45201,-0.54109 -0.82208,-0.22221 -0.59073,0.0702 -0.34783,-0.49658 0.32018,-0.37513 0.68454,-0.27392 0.0368,-1.63017 0.74527,-0.43586 0.62382,-0.77998 0.44163,-0.53708 -0.0967,-0.46984 -0.84804,-0.58529 0.0866,-0.97314 7.08691,0.192\"},\"46003\":{\"name\":\"Aurora, SD\",\"path\":\"m 484.69277,174.39314 0.0571,2.008 -0.12124,8.124 -6.40407,-0.174 -1.48513,-0.05 0.0802,-10.054 7.87316,0.146\"},\"46035\":{\"name\":\"Davison, SD\",\"path\":\"m 490.67251,176.54714 -0.11232,8.1 -2.49958,-0.03 -3.43203,-0.09 0.12124,-8.124 5.92269,0.146\"},\"46043\":{\"name\":\"Douglas, SD\",\"path\":\"m 478.22451,184.35114 6.40407,0.174 3.43203,0.09 -0.0713,6.949 -9.16217,-4.168 -0.27278,-0.08 -0.43502,0 0.025,-1.334 0.0802,-1.645\"},\"46023\":{\"name\":\"Charles Mix, SD\",\"path\":\"m 468.37416,184.02814 8.36522,0.273 1.48513,0.05 -0.0802,1.645 -0.025,1.334 0.43502,0 0.27278,0.08 9.16217,4.168 0.66547,0.24547 -0.18409,0.44153 -0.0785,0.67708 -0.22093,1.3714 -0.1229,1.66548 0.37764,0.89312 -0.43924,1.38326 -0.0167,0.6933 -0.89896,0.88936 -0.24068,0.03 -2.36052,-1.07 -3.10398,-2.784 -0.65424,-1.27902 -2.22686,-0.4656 -1.28825,-1.39125 -1.67275,-0.7826 -0.2557,-1.8255 -1.78998,-0.40089 -1.72982,-2.52013 -0.62422,-0.99611 -0.50353,-0.67054 -1.62746,-0.0746 -0.84464,-0.69732 0.2169,-0.87449 0.009,0\"},\"46009\":{\"name\":\"Bon Homme, SD\",\"path\":\"m 488.47067,192.25114 7.62246,0.135 0.0255,6.7757 -0.65847,0.72603 -0.41893,-0.67338 -0.51858,-0.13525 -0.50899,0.68617 -0.56878,-0.0513 -0.51065,-0.57968 -0.79832,0.12645 -0.19682,0.62334 -0.43219,0.54489 -0.353,0.506 -0.47425,0.431 -0.22464,0.14 -0.85221,0.128 -0.27991,0.01 -0.29774,-0.05 -0.36192,-0.16 -1.83279,-1.582 0.24068,-0.03 0.89896,-0.88936 0.0167,-0.6933 0.43924,-1.38326 -0.37764,-0.89312 0.1229,-1.66548 0.22093,-1.3714 0.0785,-0.67708\"},\"46135\":{\"name\":\"Yankton, SD\",\"path\":\"m 496.09313,192.38614 3.76294,0.05 4.21513,0.0254 0.0116,1.97335 -0.0142,6.68575 -0.96526,-0.68225 -0.0324,-0.828 -1.05,-0.1303 -1.05,-0.45096 -0.81062,0.17405 -0.81063,0.34897 -1.04476,-0.2426 -0.53431,0.18914 -0.91491,0.23824 -0.11689,-0.48611 -0.62025,-0.081 -0.0255,-6.7757\"},\"46067\":{\"name\":\"Hutchinson, SD\",\"path\":\"m 488.06061,184.61514 2.49958,0.03 5.94587,0.103 3.42311,0.06 -0.0731,7.628 -3.76294,-0.05 -7.62246,-0.135 0.18409,-0.44153 -0.66547,-0.24547 0.0713,-6.949\"},\"46061\":{\"name\":\"Hanson, SD\",\"path\":\"m 492.60158,176.60214 4.0168,0.1 -0.11232,8.051 -5.94587,-0.103 0.11232,-8.1 1.92907,0.06\"},\"46087\":{\"name\":\"McCook, SD\",\"path\":\"m 500.57992,176.77214 3.97758,0.06 -0.1034,8.044 -4.52493,-0.07 -3.42311,-0.06 0.11232,-8.051 3.96154,0.07\"},\"46125\":{\"name\":\"Turner, SD\",\"path\":\"m 504.4541,184.87114 3.41419,0.02 -0.0891,9.628 -3.69631,-0.0813 -0.0116,-1.97335 -4.21513,-0.0254 0.0731,-7.628 4.52493,0.07\"},\"46027\":{\"name\":\"Clay, SD\",\"path\":\"m 507.77915,194.51514 1.98612,0.02 -0.0802,8.782 -3.52117,-1.315 -2.09519,-0.88751 0.0142,-6.68575 3.69631,0.0813\"},\"46127\":{\"name\":\"Union, SD\",\"path\":\"m 515.63804,194.57714 -1.16422,4.019 -0.6757,1.801 -0.67393,3.084 0.44037,0.337 0.55447,0.515 0.43502,0.699 0.60975,1.606 0.60439,1.666 -3.24661,-0.829 -1.20522,-1.792 -0.0499,-0.209 0.009,-0.21 0.0642,-0.271 -0.0963,-0.385 -0.18541,-0.419 -1.37281,-0.869 0.0802,-8.782 5.87277,0.04\"},\"46083\":{\"name\":\"Lincoln, SD\",\"path\":\"m 507.86829,184.88714 5.42527,0.04 0.0718,1.388 1.13892,1.28919 0.0458,1.68211 -1.02139,0.0616 0.052,1.13109 0.37083,0.836 1.19809,0 0.15868,0.08 0.64361,2.314 -0.0481,0.158 -0.26565,0.708 -5.87277,-0.04 -1.98612,-0.02 0.0891,-9.628\"},\"46099\":{\"name\":\"Minnehaha, SD\",\"path\":\"m 508.54222,176.86814 7.20814,0.02 -0.0321,8.06 -2.42471,-0.02 -5.42527,-0.04 -3.41419,-0.02 0.1034,-8.044 3.98472,0.04\"},\"46085\":{\"name\":\"Lyman, SD\",\"path\":\"m 464.33239,167.89314 0.6598,1.09929 -0.34931,0.8046 -0.0947,0.41711 0.29774,0.443 0.44215,0.442 0.46533,0.112 0.54734,0.07 0.36192,0.147 0.81121,0.747 0.36905,0.394 0.12124,0.32 -0.009,0.275 -0.0874,0.528 -0.11232,0.297 -0.0866,0.97414 0.84804,0.58529 0.0967,0.46984 -0.44163,0.53707 -0.62382,0.77999 -0.74527,0.43585 -0.0368,1.63018 -0.68454,0.27391 -0.32018,0.37514 0.34783,0.49658 0.59073,-0.0702 0.82208,0.22221 0.45201,0.54109 -0.0134,1.26358 0.7025,0.95933 -0.0571,0.21 -0.1355,0.239 -0.0963,0.114 -0.009,0 -3.92053,-0.137 -1.49583,-0.06 0.20147,-5.601 -0.68474,-0.0384 -1.27226,0.58812 -1.9812,0.78063 -2.57962,-0.61256 -1.21062,0.45105 -1.8741,-0.46584 -0.47424,-0.459 -1.79179,-0.151 0.10519,-2.468 -0.41897,-0.545 0.3227,-7.41 0.0321,-0.602 7.06373,0.297 0.0392,0.161 0.54556,1.084 0.57592,0.62163 1.26143,-0.20607 0.6818,-0.004 1.26562,0.79212 0.61892,-0.009 0.29774,-0.12 0.37975,-0.38111 -0.33853,-0.67001 -0.94963,-0.36611 -0.46943,-0.217 -0.0675,-0.40331 0.20803,-0.31836 0.4903,-0.3041 1.40668,0.635\"},\"46075\":{\"name\":\"Jones, SD\",\"path\":\"m 451.2907,167.90014 -0.3227,7.41 0.41897,0.545 -0.10519,2.468 -0.15332,-0.275 -0.63928,0.11477 -1.18013,0.0824 -1.98579,-0.96646 -1.78232,0.8403 -1.55682,-0.35277 -4.07348,-3.12322 -0.37619,0.09 -0.1141,0.122 0.18542,-3.529 0.49029,-3.977 11.19464,0.554\"},\"46071\":{\"name\":\"Jackson, SD\",\"path\":\"m 424.04131,170.42314 15.56446,0.9 -0.18542,3.529 -0.0963,-0.09 -0.27277,-0.106 -0.82726,0.138 -1.23731,0.699 -0.13728,0.194 -0.23177,0.522 -0.49029,8.92 -14.68907,-0.893 0.12837,-2.001 -0.46533,-0.02 0.32805,-5.166 0.69888,0.345 0.66858,0 0.0463,0 0.58835,-0.387 0.41719,-6.596 0.19255,0\"},\"46117\":{\"name\":\"Stanley, SD\",\"path\":\"m 446.2113,153.75814 1.34072,0.796 0.0499,0.05 0.23356,0.706 0,0.314 -0.24247,0.955 -0.17651,0.46 -0.16046,0.248 -0.0642,0.515 0.0731,0.328 0.11232,0.193 0.18363,0.217 0.21038,0.147 0.23178,0.103 1.07685,0.266 0.32953,0.66825 -1.06942,0.38275 -0.11945,0.17 -0.0963,0.362 -0.025,0.256 0.0161,0.09 0.15332,0.208 0.46681,0.32522 1.22339,-0.31716 1.32332,0.53935 0.28123,1.95259 0.0642,0.06 0.35301,0.161 1.52613,0.442 0.58835,0.09 0.67393,0.01 0.2496,0.07 1.05189,0.355 1.77544,1.15859 0.99692,-0.005 0.22465,0.2 0.12123,0.314 -0.016,0.05 -0.78625,0.989 -7.06373,-0.297 -0.0321,0.602 -11.19464,-0.554 -1.96829,-0.1 0.21573,-4.034 0.6347,-7.962 0.35479,-1.302 1.83992,0.635 0.54556,-0.154 0.25851,-0.433 1.01267,-0.403 1.35677,-0.216 0.89908,0.57269 0.9658,-0.19469\"},\"46055\":{\"name\":\"Haakon, SD\",\"path\":\"m 430.4123,157.34148 0.92077,0.26172 1.54607,0.18156 0.95141,-0.73453 0.21005,-0.72426 1.4874,-0.32904 0.22723,-0.6391 2.50849,-0.22869 0.64313,-0.625 0.42611,-0.555 -0.35479,1.302 -0.6347,7.962 -0.21573,4.035 1.96829,0.1 -0.49029,3.977 -15.56446,-0.9 0.50634,-8.035 0.1034,0 0.25048,-3.8505 1.2829,-0.27664 2.11395,0.1089 z\"},\"46103\":{\"name\":\"Pennington, SD\",\"path\":\"m 390.58219,164.55714 9.8985,0.82 17.50956,1.286 -0.23397,-1.0805 0.82767,-1.0805 0.20218,-2.10518 0.7778,-0.627 0.37143,-1.68082 0.21751,-0.233 0.91545,-0.11187 0.44203,0.74797 0.59346,-0.0484 0.10555,-0.41431 0.8585,0.1312 1.22306,-1.48356 0.60261,-0.137 -0.24248,3.849 -0.1034,0 -0.50634,8.036 -0.19255,0 -0.41719,6.596 -0.58835,0.387 -0.0463,0 -0.66858,0 -0.69888,-0.345 -0.66679,0.265 -10.4708,-0.731 2.02534,-2.499 0.24247,-0.869 0.0464,-0.337 -11.36937,-0.868 -11.22494,-0.843 0.57051,-6.606\"},\"46081\":{\"name\":\"Lawrence, SD\",\"path\":\"m 391.40053,154.69114 2.53168,-0.339 1.37459,-0.121 4.12913,0.346 -0.60975,6.324 -0.13728,1.663 1.99325,0.144 -0.20146,2.669 -9.8985,-0.82 0.0784,-0.898 0.73989,-8.968\"},\"46019\":{\"name\":\"Butte, SD\",\"path\":\"m 410.42019,141.37514 -0.28883,3.977 -0.0232,0 -0.51524,7.055 -0.29774,2.926 -9.85927,-0.756 -4.12913,-0.346 -1.37459,0.121 -2.53168,0.339 0.80408,-9.788 0.69888,-4.917 17.5167,1.389\"},\"46093\":{\"name\":\"Meade, SD\",\"path\":\"m 425.67977,146.43614 -0.7702,12.102 -0.016,0 -0.60261,0.138 -1.22306,1.48356 -0.8585,-0.1302 -0.10555,0.41431 -0.59346,0.0484 -0.44203,-0.74797 -0.91545,0.11087 -0.21751,0.234 -0.37143,1.67982 -0.7778,0.627 -0.20218,2.10518 -0.82767,1.0805 0.23397,1.0805 -17.50956,-1.285 0.20146,-2.669 -1.99325,-0.145 0.13728,-1.663 0.60975,-6.324 9.85927,0.756 0.29774,-2.926 0.51524,-7.055 0.0232,0 15.54841,1.084\"},\"46137\":{\"name\":\"Ziebach, SD\",\"path\":\"m 426.30734,136.47414 8.54886,0.513 -1.07507,9.941 -0.0571,1.027 5.92269,0.323 -0.31378,5.673 -0.42611,0.555 -0.64313,0.625 -2.50849,0.22869 -0.22723,0.6391 -1.4874,0.32904 -0.21005,0.72426 -0.95141,0.73453 -1.54607,-0.18156 -0.92077,-0.26172 -2.11193,1.03004 -2.11193,-0.10927 -1.27887,0.27589 0.7702,-12.102 0.62757,-9.962\"},\"46041\":{\"name\":\"Dewey, SD\",\"path\":\"m 453.08248,137.91914 0.14025,1.10988 0.86351,1.04412 -0.007,0.137 -0.16225,0.459 -0.44215,0.513 -0.0802,0.12 -0.0713,0.194 0.12837,0.61 0.71493,1.069 0.0321,0.257 -0.42611,1.744 -0.82012,1.92 0.64394,1.21349 -0.16803,0.4239 -0.97242,-0.37644 -0.97257,0.15105 -0.23356,0.401 -0.0232,0.435 0.0713,1.148 0.041,0.25 0.2817,0.884 -0.025,0.176 -0.15333,0.234 -0.27278,0.296 -1.90589,1.695 -0.30308,0.122 -0.6044,-0.138 -0.40827,-0.144 -0.47425,-0.522 -0.25851,-0.443 -0.12837,-0.151 -0.19255,-0.186 -0.29774,-0.119 -0.0713,0 -0.20147,0.128 -0.16046,0.289 -0.0642,0.177 -0.0571,0.233 0.009,0.234 0.0553,0.144 0.10519,0.105 -0.9658,0.19469 -0.89908,-0.57269 -1.35677,0.216 -1.01267,0.403 -0.25851,0.433 -0.54556,0.154 -1.83992,-0.635 0.31378,-5.673 -5.92269,-0.323 0.0571,-1.027 1.07507,-9.941 18.22628,0.932\"},\"46129\":{\"name\":\"Walworth, SD\",\"path\":\"m 451.7792,135.05114 11.49951,0.529 0.15333,0 -0.33874,7.988 -8.92683,-0.402 -0.71493,-1.069 -0.12837,-0.61 0.0713,-0.194 0.0802,-0.12 0.44215,-0.513 0.16225,-0.458 0.007,-0.138 -0.86351,-1.04362 -0.14025,-1.10938 -0.46431,-0.71989 -1.22269,-0.0932 -0.59827,-0.55116 0.71995,-0.91886 0.26204,-0.58585\"},\"46107\":{\"name\":\"Potter, SD\",\"path\":\"m 454.16647,143.17514 8.92683,0.402 2.19471,0.09 -0.28169,8.003 -1.65451,-0.07 -11.90065,-0.507 -0.11233,-0.353 -0.041,-0.249 -0.0713,-1.148 0.0232,-0.435 0.23356,-0.401 0.97257,-0.15105 0.97242,0.37644 0.16803,-0.4239 -0.64394,-1.21349 0.82012,-1.92 0.42611,-1.744 -0.0321,-0.257\"},\"46119\":{\"name\":\"Sully, SD\",\"path\":\"m 463.35181,151.59614 -0.34587,8.044 -13.926,-0.586 -1.07685,-0.266 -0.23178,-0.103 -0.21038,-0.147 -0.18363,-0.217 -0.11232,-0.193 -0.0731,-0.328 0.0642,-0.515 0.16046,-0.248 0.17651,-0.46 0.24247,-0.955 0,-0.314 -0.23356,-0.706 -0.0499,-0.05 -1.34072,-0.795 -0.10519,-0.106 -0.0553,-0.144 -0.009,-0.234 0.0571,-0.233 0.0642,-0.177 0.16046,-0.289 0.20147,-0.128 0.0713,0 0.29774,0.12 0.19255,0.185 0.12837,0.152 0.25851,0.442 0.47425,0.522 0.40827,0.144 0.6044,0.138 0.30308,-0.121 1.90589,-1.696 0.27278,-0.296 0.15333,-0.233 0.025,-0.177 -0.16937,-0.531 11.90065,0.506\"},\"46065\":{\"name\":\"Hughes, SD\",\"path\":\"m 463.00594,159.64014 -0.0802,7.618 -0.4903,0.3041 -0.20803,0.31836 0.0675,0.40331 0.46943,0.217 0.94963,0.36611 0.33853,0.67001 -0.37975,0.38111 -0.29774,0.12 -0.61892,0.009 -1.26562,-0.79212 -0.6818,0.004 -1.26143,0.20607 -0.57592,-0.62163 -0.54556,-1.084 -0.0392,-0.161 0.78625,-0.989 0.016,-0.05 -0.12123,-0.314 -0.22465,-0.2 -0.99692,0.005 -1.77544,-1.15859 -1.05189,-0.355 -0.2496,-0.07 -0.67393,-0.01 -0.58835,-0.09 -1.52613,-0.442 -0.35301,-0.161 -0.0642,-0.06 -0.28123,-1.95259 -1.32332,-0.53935 -1.22339,0.31716 -0.46681,-0.32522 -0.15332,-0.208 -0.0161,-0.09 0.025,-0.257 0.0963,-0.362 0.11945,-0.169 1.06942,-0.38325 -0.32953,-0.66875 13.926,0.586\"},\"46017\":{\"name\":\"Buffalo, SD\",\"path\":\"m 464.33239,167.89314 4.56415,0.112 6.14555,0.152 -0.19968,6.026 -7.08691,-0.193 0.11232,-0.297 0.0874,-0.528 0.009,-0.275 -0.12124,-0.32 -0.36905,-0.394 -0.81121,-0.747 -0.36192,-0.147 -0.54734,-0.07 -0.46533,-0.112 -0.44215,-0.442 -0.29774,-0.443 0.0947,-0.41711 0.34931,-0.8046 -0.6598,-1.09929\"},\"46073\":{\"name\":\"Jerauld, SD\",\"path\":\"m 475.04209,168.15714 3.72085,0.112 6.07602,0.161 -0.14619,5.963 -7.87316,-0.146 -1.9772,-0.06 0.19968,-6.026\"},\"46111\":{\"name\":\"Sanborn, SD\",\"path\":\"m 484.83896,168.43014 7.87494,0.208 0.0713,0 -0.18363,7.964 -1.92907,-0.06 -5.92269,-0.146 -0.0571,-2.008 0.14619,-5.963\"},\"46097\":{\"name\":\"Miner, SD\",\"path\":\"m 500.68511,168.77714 -0.10519,7.995 -3.96154,-0.07 -4.0168,-0.1 0.18363,-7.964 7.8999,0.139\"},\"46079\":{\"name\":\"Lake, SD\",\"path\":\"m 500.68511,168.77714 3.95975,0.03 3.96332,0.05 -0.066,8.01 -3.98472,-0.04 -3.97758,-0.06 0.10519,-7.995\"},\"46101\":{\"name\":\"Moody, SD\",\"path\":\"m 515.7985,168.88114 -0.0481,8.003 -7.20814,-0.02 0.066,-8.01 7.19032,0.02\"},\"46011\":{\"name\":\"Brookings, SD\",\"path\":\"m 504.7661,160.81314 3.97758,0.02 7.10474,0.06 -0.0499,7.987 -7.19032,-0.02 -3.96332,-0.05 0.12124,-7.995\"},\"46057\":{\"name\":\"Hamlin, SD\",\"path\":\"m 508.81678,154.83414 -0.0731,6.002 -3.97758,-0.02 -5.96905,-0.105 0.11232,-5.987 9.90741,0.113\"},\"46077\":{\"name\":\"Kingsburg, SD\",\"path\":\"m 498.79705,160.70814 5.96905,0.105 -0.12124,7.995 -3.95975,-0.03 -7.8999,-0.139 -0.0713,0 0.16759,-8.042 5.91556,0.112\"},\"46005\":{\"name\":\"Beadle, SD\",\"path\":\"m 490.88111,158.53814 2.05163,0.097 -0.0513,1.96096 -0.16759,8.042 -7.87494,-0.208 -6.07602,-0.161 0.20146,-10.077 11.91671,0.346\"},\"46069\":{\"name\":\"Hyde, SD\",\"path\":\"m 465.00632,151.66914 4.25927,0.16 -0.29774,8.043 0.20147,0 -0.27278,8.124 -4.56415,-0.112 -1.40668,-0.635 0.0802,-7.618 0.34587,-8.044 1.65451,0.07\"},\"46059\":{\"name\":\"Hand, SD\",\"path\":\"m 469.26559,151.82914 9.69881,0.305 0,6.058 -0.20146,10.077 -3.72085,-0.112 -6.14555,-0.152 0.27278,-8.124 -0.20147,0 0.29774,-8.043\"},\"46045\":{\"name\":\"Edmunds, SD\",\"path\":\"m 463.43204,135.58914 15.85328,0.587 -0.19255,7.98 -13.80476,-0.49 -2.19471,-0.09 0.33874,-7.988\"},\"46049\":{\"name\":\"Faulk, SD\",\"path\":\"m 479.09277,144.15614 0.0802,0 -0.2086,7.971 -9.69881,-0.305 -4.25927,-0.16 0.28169,-8.003 13.80476,0.49\"},\"46115\":{\"name\":\"Spink, SD\",\"path\":\"m 491.11466,144.53214 -0.0481,2.009 -0.1462,5.666 0,0.328 0.0891,0 -0.12836,5.994 -11.91671,-0.345 0,-6.059 0.2086,-7.971 11.94166,0.369\"},\"46025\":{\"name\":\"Clark, SD\",\"path\":\"m 498.98068,146.72714 -0.0713,7.994 -0.11232,5.987 -5.91556,-0.112 0.0512,-1.96096 -2.05163,-0.097 0.12836,-5.994 -0.0891,0 0,-0.328 0.1462,-5.666 7.91415,0.186\"},\"46029\":{\"name\":\"Codington, SD\",\"path\":\"m 498.98068,146.72714 4.35556,0.06 5.56968,0.1 -0.0178,3.985 -0.0713,3.969 -9.90741,-0.113 0.0713,-7.994\"},\"46039\":{\"name\":\"Deuel, SD\",\"path\":\"m 515.89477,150.89714 -0.007,3.962 -0.025,4.018 -0.0143,2.017 -7.10474,-0.06 0.0731,-6.002 0.0713,-3.969 7.00668,0.03\"},\"46051\":{\"name\":\"Grand, SD\",\"path\":\"m 515.64695,142.86914 0.26565,1.326 -0.0178,6.702 -7.00668,-0.03 0.0178,-3.985 -5.56968,-0.1 0.0392,-3.361 3.55326,0.06 0.35011,-0.90393 8.36812,0.29693\"},\"46037\":{\"name\":\"Day, SD\",\"path\":\"m 491.30721,136.52914 9.78618,0.201 0.12836,0.66 2.22681,0.05 -0.11232,9.346 -4.35556,-0.06 -7.91415,-0.186 0.24068,-10.012\"},\"46109\":{\"name\":\"Roberts, SD\",\"path\":\"m 514.21709,128.88014 -0.0891,1.004 0,0.05 -0.009,0.03 -0.0713,0.61 -0.0571,0.497 -0.0392,0.209 -0.016,0.114 -0.016,0.05 -0.016,0.03 -0.025,0.06 -1.12499,1.671 -0.32805,0.33 -0.61866,0.337 -0.55625,0.362 -1.46909,1.18 -0.025,0.03 -0.0321,0.04 -0.025,0.02 -0.0553,0.128 -0.22464,0.771 0.0642,0.09 0.28883,0.369 1.12499,1.503 1.11345,2.46032 1.24885,0.15868 1.5511,0.756 0.52951,0.426 0.30665,0.706 -8.36812,-0.29693 -0.35011,0.90393 -3.55326,-0.06 0.0731,-5.985 0.0874,-8.663 10.68117,0.105\"},\"46091\":{\"name\":\"Marshall, SD\",\"path\":\"m 503.53592,128.77514 -0.0874,8.663 -2.22681,-0.05 -0.12836,-0.66 -9.78618,-0.201 0.18364,-7.971 12.04507,0.217\"},\"46013\":{\"name\":\"Brown, SD\",\"path\":\"m 479.51888,128.19714 11.49773,0.345 0.47424,0.02 -0.18364,7.971 -0.19255,8.003 -11.94166,-0.369 -0.0802,0 0.19255,-7.98 0.23356,-7.978\"},\"46089\":{\"name\":\"McPherson, SD\",\"path\":\"m 463.57645,127.60214 11.43355,0.435 4.50888,0.16 -0.23356,7.979 -15.85328,-0.587 -0.15333,0 0.29774,-7.978\"},\"46021\":{\"name\":\"Campbell, SD\",\"path\":\"m 460.97346,127.48314 2.60299,0.119 -0.29774,7.978 -11.49951,-0.529 0.25852,-0.908 0.1765,-0.338 0.32092,-0.209 0.69175,0.26213 0.41072,-0.29213 0.33994,-0.87602 -0.61162,-0.5579 -0.0535,-0.81326 -0.6539,-1.20341 0.49772,-1.02928 -0.38036,-0.28613 -0.5631,-0.20289 0.032,-0.73698 -0.82101,0.1283 -0.3755,-0.97943 9.92523,0.483\"},\"46031\":{\"name\":\"Corson, SD\",\"path\":\"m 427.01514,125.65014 0.10341,0 0.0392,0 0.25852,0.02 1.93619,0.121 2.30525,0.136 2.42827,0.153 2.0093,0.112 0.93244,0.06 1.63846,0.09 4.66042,0.256 1.45482,0.08 1.92728,0.1 0.13015,0 0.36192,0.02 3.64776,0.185 0.19968,0 0.3755,0.97993 0.82101,-0.12805 -0.032,0.7371 0.5631,0.20302 0.38036,0.28613 -0.49772,1.02928 0.6539,1.20341 0.0535,0.81326 0.61162,0.5579 -0.33994,0.87602 -0.41072,0.29213 -0.69175,-0.26213 -0.32092,0.208 -0.1765,0.339 -0.25852,0.908 -0.26204,0.58572 -0.71995,0.91874 0.59827,0.55103 1.22269,0.0931 0.46431,0.71939 -18.22628,-0.932 -8.54886,-0.514 0.67571,-10.823 0.0321,0\"},\"47163\":{\"name\":\"Sullivan, TN\",\"path\":\"m 782.02555,325.08314 -0.70884,0.875 -0.69418,0.21535 -0.19578,0.66977 -0.88474,1.09488 -1.56,1.52996 -0.50285,-0.0558 -1.26997,1.49821 -1.22193,-0.30377 -0.81347,0.72937 -0.8433,0.11 -0.28882,-0.08 -0.90927,-0.662 -0.63292,-0.128 -1.09468,0.346 -2.25711,0.444 -1.01267,0.159 -0.37636,-0.56038 1.17079,-1.17513 -0.0224,-2.16949 5.7141,-0.852 0.91461,-0.137 1.76861,-0.241 3.84743,-0.555 0.12837,-0.538 1.74543,-0.209\"},\"47091\":{\"name\":\"Johnson, TN\",\"path\":\"m 782.02555,325.08314 3.26978,-0.442 -0.47424,0.63 -0.0874,4.713 0.0695,1.095 -0.38332,0.129 -0.0339,0 -0.28704,0.01 -0.48138,-0.154 -0.1141,-0.263 -0.0963,0.06 -0.0232,0.02 -0.9164,0.627 -0.84508,0.947 -0.1355,0.369 -0.19255,0.555 -0.3227,0.123 -0.61152,-0.523 -1.25336,-1.305 -0.27991,-0.553 1.42273,-2.403 0,-0.07 -0.7078,-0.706 0.88474,-1.09488 0.19578,-0.66977 0.69418,-0.21535 0.70884,-0.875\"},\"47109\":{\"name\":\"McNairy, TN\",\"path\":\"m 665.35632,367.25414 0.3851,8.919 -7.57541,0.603 -0.35479,-5.832 1.25832,-0.30378 0.13945,-0.38822 0.20859,-0.884 0.0847,-0.15275 0.86578,0.006 2.4e-4,-0.31108 -0.45363,-0.0472 -0.0852,-0.47122 0.85813,-0.70233 0.73464,-0.38977 1.15538,-0.14945 2.7787,0.10422\"},\"47023\":{\"name\":\"Chester, TN\",\"path\":\"m 660.32685,362.84314 0.91834,-0.23012 1.21926,1.65057 1.77566,0.54695 0.99329,-0.3257 0.0908,1.8913 0.0321,0.878 -2.7787,-0.10422 -1.15538,0.14945 -0.73464,0.38977 -0.85813,0.70233 0.0852,0.47122 0.45363,0.0472 -2.4e-4,0.31108 -0.86578,-0.006 -0.0847,0.15275 -0.20859,0.884 -0.13945,0.38822 -1.25832,0.30378 -0.38688,-1.72 -0.97345,-1.352 -0.0695,-1.002 0.65676,-0.0729 2.35975,-1.74838 0.94517,-1.74837 -0.0162,-0.4574\"},\"47069\":{\"name\":\"Hardeman, TN\",\"path\":\"m 651.97054,367.11814 4.41082,-0.248 0.0695,1.002 0.97345,1.352 0.38688,1.72 0.35479,5.832 -0.68284,0.06 -3.62636,0.282 -3.37319,0.247 -0.40114,-9.312 -0.0247,-0.82926 1.91272,-0.10274\"},\"47047\":{\"name\":\"Fayette, TN\",\"path\":\"m 644.68216,368.28914 5.40032,-0.238 0.40114,9.311 -2.88468,0.204 -5.44845,0.353 -0.11232,-3.095 -0.18542,-3.004 -0.0802,-2.702 1.00896,-0.76128 1.90068,-0.0677\"},\"47075\":{\"name\":\"Haywood, TN\",\"path\":\"m 646.19939,358.56714 0.007,0.08 0.4584,0.25233 0.20146,0.209 0.46176,0.335 0.7916,0.371 0.38688,0 1.79158,0.70567 1.40669,0.537 0.26565,6.051 -1.91272,0.10324 0.0247,0.82976 -5.40032,0.238 -0.14139,-3.38558 -0.5206,-0.88088 0.14441,-0.07 0.41967,-0.46221 -0.11083,-1.8511 0.36391,-0.16915 0.16575,-1.02608 -0.007,-0.169 -0.23356,0 -0.016,-0.314 0.1034,-0.401 0.49921,-1.061 0.85043,0.06\"},\"47113\":{\"name\":\"Madison, TN\",\"path\":\"m 660.09329,358.18914 0.23356,4.654 0.0162,0.4574 -0.94517,1.74837 -2.35975,1.74838 -0.65676,0.0729 -4.41082,0.248 -0.26565,-6.051 1.09475,0.26489 1.70849,-2.48498 -0.14142,-0.39891 3.86883,-0.153 1.85775,-0.106\"},\"47033\":{\"name\":\"Crockett, TN\",\"path\":\"m 648.98779,354.14114 1.0305,0.659 0.19077,1.243 0.18542,0.46 0.35657,0.6071 2.88409,0.49145 0.73157,0.84645 0.14142,0.39891 -1.70849,2.48498 -1.09475,-0.26489 -1.40669,-0.537 -1.79158,-0.70567 -0.38688,0 -0.7916,-0.371 -0.46176,-0.335 -0.20146,-0.209 -0.4584,-0.25233 -0.007,-0.08 0.14441,-1.486 1.20588,-0.23048 0.17666,-0.735 1.26642,-1.34042 -0.005,-0.6341\"},\"47053\":{\"name\":\"Gibson, TN\",\"path\":\"m 649.2784,349.35914 3.56784,-0.32393 -0.0164,-0.35907 0.69656,0.4413 1.16197,0.86261 0.77171,0.61723 1.21006,0.43286 1.34963,0.981 0.21573,6.292 -3.86883,0.153 -0.73157,-0.84645 -2.88409,-0.49145 -0.35657,-0.6071 -0.18542,-0.46 -0.19077,-1.243 -1.0305,-0.659 -0.0888,-0.59007 0.59736,-0.0856 -0.10897,-2.8907 -0.10898,-1.21568\"},\"47017\":{\"name\":\"Carroll, TN\",\"path\":\"m 660.84745,349.74414 5.8964,-0.47615 0.005,0.70215 0.5158,6.2804 0.63771,0.002 0.0339,0.675 -7.22241,0.394 -0.27456,0.259 -0.24069,0.312 -0.10519,0.297 -1.85775,0.106 -0.21573,-6.292 0.84973,-0.17198 -0.15003,-1.20746 2.13515,-0.2434 -0.007,-0.63616\"},\"47183\":{\"name\":\"Weakley, TN\",\"path\":\"m 654.97467,342.01514 5.48946,-0.396 0.38332,8.125 0.007,0.63616 -2.13515,0.2434 0.15003,1.20746 -0.84973,0.17198 -1.34963,-0.981 -1.21006,-0.43286 -0.77171,-0.61723 -1.16197,-0.86261 -0.69656,-0.4413 -0.1462,-4.314 0.0588,-0.07 0.34409,0.02 0.26387,0.07 0.25851,0.249 0.27991,0.03 1.24623,-0.506 -0.0642,-1.382 -0.29596,-0.731 0.19968,-0.02\"},\"47131\":{\"name\":\"Obion, TN\",\"path\":\"m 654.63771,342.03814 0.13728,0 0.29596,0.731 0.0642,1.382 -1.24623,0.506 -0.27991,-0.03 -0.25851,-0.249 -0.26387,-0.06 -0.34409,-0.02 -0.0588,0.07 0.1462,4.314 0.0164,0.35907 -3.56784,0.32393 -6.04214,0.241 1.0429,-1.0286 0.35,-2.3078 0.6165,-1.5616 0.0302,-1.988 9.36185,-0.675\"},\"47095\":{\"name\":\"Lake, TN\",\"path\":\"m 645.27586,342.71414 -0.0302,1.988 -0.6165,1.5616 -0.35,2.3078 -1.0429,1.0286 0.0584,0.4055 -2.71314,0.4055 -0.70839,-1.33342 1.54908,0.10591 1.05913,-0.64787 -0.37303,-0.77035 -1.08912,-0.80804 0.87453,-0.14623 0.80635,-0.26951 0.003,-1.26737 -0.69118,-0.94016 -0.26479,-1.25996 0.98949,-0.05 -0.0571,0.70638 0.47192,0.3608 0.63408,-0.33026 0.19546,-0.86002 1.29436,-0.184\"},\"47045\":{\"name\":\"Dyer, TN\",\"path\":\"m 643.23626,349.60014 6.04214,-0.241 0.10898,1.21568 0.10897,2.8907 -0.59736,0.0855 0.0888,0.59007 0.005,0.6341 -1.26642,1.34042 -0.17666,0.735 -1.20588,0.23048 -0.22999,-0.409 -0.15333,-0.194 -0.91639,-0.827 -1.54219,0.08 -1.99266,0.4781 -0.69881,1.01816 0.22507,-1.03902 -0.45765,-0.43906 -0.89211,-0.45974 -0.0852,-0.56319 0.68122,-1.03568 0.14333,-1.20119 1.19693,-0.66454 0.14183,-0.83005 -1.18224,-0.58179 2.71314,-0.4055 -0.0584,-0.4055\"},\"47097\":{\"name\":\"Lauderdale, TN\",\"path\":\"m 641.035,356.18601 2.4669,-0.45687 1.54219,-0.08 0.91639,0.827 0.15333,0.194 0.22999,0.409 -0.14441,1.486 -0.85043,-0.06 -0.49921,1.061 -0.1034,0.401 0.016,0.314 0.23356,0 0.007,0.169 -0.16575,1.02608 -0.36391,0.16915 0.11083,1.8511 -0.41967,0.46221 -0.14441,0.07 -0.9622,-0.37554 -1.48691,-0.795 -2.55307,0.256 -0.55448,0.2 -0.43502,0.323 -0.95561,0.882 -0.3548,0.426 -0.28791,0.23887 -0.56238,-0.76956 1.46509,-0.91437 0.28585,-0.72818 -0.54169,-0.7075 -0.93477,0.45107 -0.58307,-1.14195 0.69962,-0.62474 0.63755,0.0994 1.11935,-0.33327 0.4987,-0.58153 0.20906,-0.56085 1.24349,-0.18845 0.11767,-0.9926 -1.2014,-0.49515 0.21496,-0.66415 0.33517,-0.06 1.37704,0.24826 z\"},\"47167\":{\"name\":\"Tipton, TN\",\"path\":\"m 641.57031,362.95703 -2.55273,0.25586 -0.55469,0.20117 -0.43555,0.32227 -0.95507,0.88086 -0.35352,0.42773 -0.28906,0.23242 0.25974,1.04501 -1.3141,-0.25856 -0.31257,-0.56062 -0.71,0.0594 -0.12156,1.07811 0.57793,0.64889 -0.26013,1.90576 5.75373,-0.65625 0.12696,0.0195 0.98047,0.41016 0.36328,0.25586 1.00824,-0.76084 1.89996,-0.0673 -0.14106,-3.38533 -0.52028,-0.88063 0,-0.002 -0.96171,-0.37662 z m -7.31031,6.26953 -0.77367,-0.59179 -0.35938,-0.98829 -0.51367,0.50391 -0.8418,0.28711 0.082,0.95508 0.33007,-0.0879 -0.002,-0.53125 0.58398,-0.2461 1.04688,0.89844 0.33594,-0.18555 z\"},\"47157\":{\"name\":\"Shelby, TN\",\"path\":\"m 633.81231,369.32068 0.33666,-0.18554 6.15447,-0.701 0.12658,0.02 0.98058,0.41 0.36192,0.256 0.0802,2.702 0.18542,3.004 0.11232,3.095 -1.49405,0.11 -10.92899,0.669 -0.0321,-0.321 0.22464,-0.717 1.74222,-0.16275 0.58569,-1.81583 0.35021,-0.41971 1.05685,0.37181 0.59016,-0.46514 0.0595,-0.8249 -0.70142,-0.32742 0.54284,-0.86711 -0.15059,-0.62718 -0.53298,-0.566 -0.86517,0.0254 -0.26865,-0.41812 0.97029,-0.58638 0.14434,-0.75462 -0.1004,-0.41812 0.46921,-0.48046\"},\"47077\":{\"name\":\"Henderson, TN\",\"path\":\"m 667.93614,356.92714 0.18541,4.809 -0.8219,1.934 0.10697,2.435 0.11946,-0.01 -2.20185,0.281 -0.0908,-1.8913 -0.99329,0.3257 -1.77566,-0.54695 -1.21926,-1.65057 -0.91834,0.23012 -0.23356,-4.654 0.10519,-0.297 0.24069,-0.312 0.27456,-0.259 7.22241,-0.394\"},\"47079\":{\"name\":\"Henry, TN\",\"path\":\"m 660.96155,341.58714 7.97834,-0.554 -0.11571,1.159 1.54023,1.886 -1.89698,0.169 -0.025,0.03 -0.0731,0.763 0.041,0.362 0.40293,1.294 -1.44056,2.492 -0.624,0.779 -0.005,-0.70215 -5.8964,0.47615 -0.38332,-8.125 0.49742,-0.03\"},\"47005\":{\"name\":\"Benton, TN\",\"path\":\"m 670.36441,344.07814 0.1765,0.153 0.74088,1.29039 0.0543,1.20961 0.7702,1.792 0.0752,0.91877 -1.22129,2.11992 0.0188,0.93513 -0.41971,0.34408 0.34291,0.82074 1.27715,-0.0372 0.22772,0.0989 -0.0191,0.63266 -0.12123,0.972 -0.0856,0.258 -0.29952,0.45 -0.0981,0.595 -0.97033,0.0845 -0.1814,-0.8 -0.81494,0.21604 -1.91464,0.12041 -0.63771,-0.002 -0.5158,-6.2804 0.624,-0.779 1.44056,-2.492 -0.40293,-1.294 -0.041,-0.362 0.0731,-0.763 0.025,-0.03 1.89698,-0.169\"},\"47039\":{\"name\":\"Decatur, TN\",\"path\":\"m 667.90226,356.25214 1.91464,-0.12041 0.81494,-0.21604 0.1814,0.8 0.97033,-0.0845 -0.083,1.15422 -0.84132,0.96091 0.4227,1.0078 -0.26677,1.36472 1.31935,2.04703 -0.0869,0.6635 -0.43171,0.51574 -0.56305,0.49932 0.27425,0.64708 0.33845,0.24268 0.62455,0.0949 0.0579,0.18675 -0.26373,0.27864 -0.67723,0.18675 -0.71394,-0.75555 -1.06147,0.90104 -0.73749,-0.18506 -0.52308,0.25908 -0.42296,-0.51051 -0.62205,-0.097 -0.11946,0.01 -0.10697,-2.435 0.8219,-1.934 -0.18541,-4.809 -0.0339,-0.675\"},\"47071\":{\"name\":\"Hardin, TN\",\"path\":\"m 665.32423,366.37614 2.20185,-0.281 0.62205,0.097 0.42296,0.51051 0.52308,-0.25908 0.73749,0.18506 1.06147,-0.90104 0.71394,0.75555 0.0339,0.393 0.3981,0.26868 -0.0932,1.25132 0.65255,0.0924 0.50453,6.83465 -3.99541,0.578 -3.05227,0.251 -0.31379,0.02 -0.3851,-8.919 -0.0321,-0.878\"},\"47099\":{\"name\":\"Lawrence, TN\",\"path\":\"m 685.04277,364.08014 1.65629,0.114 -0.0392,0.617 -0.009,0.594 0.56161,6.163 0.10697,2.655 -7.14574,0.553 -0.24069,-9.163 0.75594,-0.07 1.55109,-0.642 -0.0749,-0.859 2.27494,-0.178 0.60261,0.217\"},\"47181\":{\"name\":\"Wayne, TN\",\"path\":\"m 677.12861,363.89614 1.34703,0.0149 0.0552,0.84361 0.76205,-0.0339 0.64018,0.89236 0.24069,9.163 -7.07087,0.547 -0.50453,-6.83465 -0.65255,-0.0924 0.0932,-1.25132 -0.3981,-0.26868 -0.0339,-0.393 0.67721,-0.18675 0.26372,-0.27864 -0.0579,-0.18675 -0.62455,-0.0949 0.48219,-0.72079 2.013,-0.53143 1.2057,-0.53143 0.996,-0.2169 0.56614,0.16055\"},\"47101\":{\"name\":\"Lewis, TN\",\"path\":\"m 683.76802,359.21314 -0.17115,0.977 0.0178,0.474 0.0642,0.289 0.27991,0.25 0.44928,0.08 0.50812,0.41 0.46355,0.932 -0.0624,0.834 -0.0553,0.273 -0.2193,0.346 -0.60261,-0.217 -2.27494,0.178 0.0749,0.859 -1.55109,0.642 -0.75594,0.07 -0.64018,-0.89236 -0.76205,0.0339 -0.0552,-0.84361 -1.34703,-0.0149 0.21127,-0.75125 0.27639,-0.0241 -0.034,-1.05333 0.44352,-0.0115 0.23587,-0.58726 -0.28796,-0.5776 0.71493,-0.475 -0.004,-0.28935 0.51371,-0.43732 0.34461,-0.0462 0.39745,0.58792 0.93615,-0.15837 0.88951,0.32937 0.75415,-0.392 1.24801,-0.795\"},\"47135\":{\"name\":\"Perry, TN\",\"path\":\"m 676.4226,355.69214 0.0145,0.87408 -0.0752,1.56169 0.448,0.27619 0.0145,0.26123 -0.47876,0.0968 -0.0154,0.93387 0.82168,0.41072 0.82169,0.7844 0.28796,0.5776 -0.23587,0.58726 -0.44352,0.0115 0.034,1.05333 -0.27639,0.0241 -0.21127,0.75125 -0.56614,-0.16055 -0.996,0.2169 -1.2057,0.53143 -2.013,0.53143 -0.48219,0.72079 -0.33845,-0.24268 -0.27425,-0.64708 0.56305,-0.49932 0.43171,-0.51574 0.0869,-0.6635 -1.31935,-2.04703 0.26677,-1.36472 -0.4227,-1.0078 0.84132,-0.96091 0.083,-1.15422 0.0981,-0.595 2.2268,0.281 0.4582,-0.385 0.32805,-0.06 1.52792,-0.176\"},\"47081\":{\"name\":\"Hickman, TN\",\"path\":\"m 685.61507,352.06714 0.0303,2.525 -0.0747,2.94905 -1.80261,1.67195 -1.24801,0.795 -0.75415,0.392 -0.88951,-0.32937 -0.93615,0.15837 -0.39745,-0.58792 -0.34461,0.0463 -0.51371,0.43732 0.004,0.28935 -0.71493,0.475 -0.82169,-0.7844 -0.82168,-0.41072 0.0154,-0.93388 0.47876,-0.0968 -0.0145,-0.26124 -0.448,-0.27618 0.0752,-1.56169 -0.0145,-0.87408 0.12859,-1.57812 0.16146,-0.21924 0.50123,-0.15349 0.7094,-0.44938 0.40256,-0.41649 0.70941,-0.022 0.54502,-0.56992 -0.1125,-0.44937 6.14733,0.233\"},\"47085\":{\"name\":\"Humphreys, TN\",\"path\":\"m 678.49608,347.62414 0.97166,4.21 0.1125,0.44937 -0.54502,0.56992 -0.70941,0.022 -0.40256,0.41649 -0.7094,0.44938 -0.50119,0.15349 -0.16147,0.21924 -0.12859,1.57812 -1.52792,0.176 -0.32805,0.06 -0.4582,0.385 -2.2268,-0.281 0.29952,-0.45 0.0856,-0.258 0.12123,-0.972 0.0191,-0.63266 -0.22773,-0.0989 -1.27715,0.0372 -0.34292,-0.82073 0.41972,-0.34409 -0.0188,-0.93513 1.22128,-2.11992 -0.0752,-0.91877 -0.7702,-1.792 2.11983,0.07 0.65253,-0.346 0.74881,0 3.24482,0.738 0.39402,0.419\"},\"47083\":{\"name\":\"Houston, TN\",\"path\":\"m 677.63495,343.29214 0.14053,0.61191 1.37134,0.0141 0.0263,1.97608 -0.67703,1.72992 -0.39402,-0.419 -3.24482,-0.738 -0.74881,0 -0.65253,0.346 -2.11983,-0.07 -0.0543,-1.20961 -0.74088,-1.29039 1.99147,0.339 0.36192,0.02 0.54021,-0.03 0.35835,-0.06 0.3958,-0.123 0.49742,-0.248 0.32805,-0.232 0.25138,-0.226 2.36944,-0.378\"},\"47161\":{\"name\":\"Stewart, TN\",\"path\":\"m 675.23342,337.24114 0.96454,-0.111 1.43699,6.162 -2.36944,0.378 -0.25138,0.226 -0.32805,0.232 -0.49742,0.248 -0.3958,0.123 -0.35835,0.06 -0.54021,0.03 -0.36192,-0.02 -1.99147,-0.339 -0.1765,-0.153 -1.54023,-1.886 0.11571,-1.159 0.46397,-0.85576 -1.12363,-3.29824 1.07151,-0.06 2.98809,0.06 -0.007,0.708 2.90073,-0.339\"},\"47125\":{\"name\":\"Montgomery, TN\",\"path\":\"m 685.78266,336.15714 0.30666,4.323 -2.75632,3.359 -4.18618,0.08 -1.37134,-0.0141 -0.14053,-0.61191 -1.43699,-6.162 5.56077,-0.579 4.02393,-0.394\"},\"47147\":{\"name\":\"Robertson, TN\",\"path\":\"m 692.17782,335.39414 3.66558,0 -0.20471,1.221 -0.35424,0.62424 -0.42163,0.89376 -0.0173,0.79269 -0.489,0.72531 -0.40828,0.902 -1.06081,0.442 -0.47579,1.0308 -0.7136,0.15094 -0.95139,-0.58624 -0.71359,0.1985 -0.5787,-0.0935 -0.56311,0.48329 -0.59429,-0.67024 -0.5787,-0.0935 -1.62891,-0.93509 -0.30666,-4.323 0.98771,-0.114 5.40745,-0.649\"},\"47021\":{\"name\":\"Cheatham, TN\",\"path\":\"m 686.08932,340.48014 1.62891,0.93509 0.5787,0.0935 0.59429,0.67024 0.56311,-0.48329 0.5787,0.0935 0.1558,1.41133 -0.85828,1.41134 -0.15135,3.1313 -0.68043,0.68429 -0.30567,1.38974 -2.36765,0.12 0.14263,-3.286 -0.25673,-0.861 -0.37084,-0.271 0.49921,-0.772 0.0321,-0.619 -0.0571,-0.13 -0.42433,-0.159 -0.95027,-0.121 -1.10716,0.121 2.75632,-3.359 2e-5,0 z m -0.13728,3.783 -0.0892,0.113 0.23178,-0.104 -0.0535,-0.05 -0.0321,0.06 -0.0571,-0.02\"},\"47043\":{\"name\":\"Dickson, TN\",\"path\":\"m 679.14682,343.91814 4.18618,-0.08 1.10716,-0.121 0.95027,0.121 0.42433,0.159 0.0571,0.13 -0.0321,0.619 -0.49921,0.772 0.37084,0.271 0.25673,0.861 -0.14263,3.286 -0.21038,2.13 -6.14733,-0.233 -0.97166,-4.21 0.67703,-1.72992 -0.0263,-1.97608\"},\"47117\":{\"name\":\"Marshall, TN\",\"path\":\"m 693.95712,357.14514 1.75791,-0.248 0.9164,0.472 -0.0161,4.518 0.0571,0.82 0.18364,0.466 0.90213,1.51 0.27813,0.03 0.0642,-0.03 -0.003,0.72483 -1.28232,0.52088 -1.09691,1.42941 -1.63461,0.0759 -0.34704,-1.12316 -1.19996,-0.0478 -0.56954,-1.99462 -0.68079,-0.14046 0.12084,-1.00535 1.11505,-1.09835 0.68539,-1.29365 0.43332,-3.29039 0.31614,-0.30226\"},\"47187\":{\"name\":\"Williamson, TN\",\"path\":\"m 685.82545,349.93714 2.36765,-0.12 0.36906,1.277 0.24247,-0.03 1.67055,-1.63 2.64578,0.136 3.24482,1.26 0.0757,1.27672 0.20125,0.38183 0.13846,0.71152 0.10705,1.60643 -0.80354,0.0678 0.0286,0.61733 -0.66224,0.25623 0.26405,1.15112 -1.75791,0.248 -8.31174,-2.553 -0.0303,-2.525 0.21038,-2.13\"},\"47055\":{\"name\":\"Giles, TN\",\"path\":\"m 686.69906,364.19414 1.23073,-0.68617 1.31462,0.21572 0.89514,0.42545 1.14683,-0.015 0.68079,0.14046 0.56954,1.99462 1.19996,0.0478 0.34704,1.12316 0.45998,6.274 -6.99242,0.49 -0.23177,0.02 -0.10697,-2.655 -0.56161,-6.163 0.009,-0.594 0.0392,-0.617\"},\"47119\":{\"name\":\"Maury, TN\",\"path\":\"m 685.64538,354.59214 8.31174,2.553 -0.31614,0.30226 -0.43332,3.29039 -0.68539,1.29365 -1.11505,1.09835 -0.12084,1.00535 -1.14683,0.015 -0.89514,-0.42545 -1.31462,-0.21572 -1.23073,0.68617 -1.65629,-0.114 0.2193,-0.346 0.0553,-0.273 0.0624,-0.834 -0.46355,-0.932 -0.50812,-0.41 -0.44928,-0.08 -0.27991,-0.25 -0.0642,-0.289 -0.0178,-0.474 0.17115,-0.977 1.80261,-1.67195 0.0747,-2.94905\"},\"47103\":{\"name\":\"Lincoln, TN\",\"path\":\"m 703.87879,369.63214 0.30844,3.134 -8.66653,0.854 -0.97701,0.09 -0.45998,-6.274 1.63461,-0.0759 1.09691,-1.42941 1.28232,-0.52088 0.003,-0.72483 0.37357,-0.19833 0.87993,0.23013 0.21856,0.86889 1.53729,0.51029 0.43834,0.55657 0.19545,0.545 0.43834,-0.12594 0.5656,1.3316 0.29953,1.10026 z\"},\"47127\":{\"name\":\"Moore, TN\",\"path\":\"m 704.32808,362.95314 0.11232,1.828 -0.50983,2.16375 -0.0518,2.68725 -0.83166,-0.12817 -0.29953,-1.09987 -0.5656,-1.33122 -0.43835,0.12632 -0.19545,-0.54462 -0.43836,-0.55618 -1.53729,-0.50991 -0.21856,-0.86851 0.45743,-0.2732 0.42834,0.0387 0.50624,0.66189 0.81773,0.10658 0.20426,-0.57507 2.56007,-1.72572\"},\"47003\":{\"name\":\"Bedford, TN\",\"path\":\"m 704.03925,357.87714 0.49244,3.62383 -0.20361,1.45217 -2.56007,1.72572 -0.20426,0.57507 -0.81773,-0.10658 -0.50624,-0.66189 -0.42834,-0.0387 -0.45743,0.2732 -0.87993,-0.23013 -0.37357,0.19833 -0.0642,0.03 -0.27813,-0.03 -0.90213,-1.51 -0.18364,-0.466 -0.0571,-0.82 0.0161,-4.518 0.0232,-0.376 0.26743,-0.05 1.46195,-0.03 1.23605,0.7403 2.06812,0.41527 0.482,-0.75482 0.79402,0.11625 1.07507,0.442\"},\"47149\":{\"name\":\"Rutherford, TN\",\"path\":\"m 697.9668,347.58314 0.80229,0.539 2.94173,1.775 0.30488,0.12 1.22126,0.298 1.72582,-0.04 -0.39045,5.875 -0.66486,0.43862 0.13178,1.28838 -1.07507,-0.442 -0.79402,-0.11625 -0.482,0.75482 -2.06812,-0.41527 -1.23605,-0.7403 -1.46195,0.03 -0.26743,0.05 -0.0232,0.376 -0.9164,-0.472 -0.26405,-1.15112 0.66224,-0.25623 -0.0286,-0.61733 0.80354,-0.0678 -0.10705,-1.60643 -0.13846,-0.71152 -0.20125,-0.38183 -0.0757,-1.27672 1.60102,-3.245\"},\"47037\":{\"name\":\"Davidson, TN\",\"path\":\"m 690.03303,341.78914 0.71359,-0.1985 0.95139,0.58624 0.7136,-0.15094 0.47579,-1.0308 0.82502,0.851 0.11795,0.70959 1.42604,0.81564 0.20039,0.84975 0.73069,0.17802 1.77931,3.184 -1.60102,3.245 -3.24482,-1.26 -2.64578,-0.136 -1.67055,1.63 -0.24247,0.03 -0.36906,-1.277 0.30567,-1.38974 0.68043,-0.68429 0.15135,-3.1313 0.85828,-1.41134 -0.1558,-1.41133\"},\"47165\":{\"name\":\"Sumner, TN\",\"path\":\"m 698.59258,334.71814 3.79217,-0.135 -0.0357,2.58324 0.2932,0.29625 -0.3289,0.66951 0.086,0.85035 -0.60468,0.0754 0.20391,1.79369 -0.352,0.61451 -0.22642,0.838 -0.83295,0.0342 0.009,-0.77436 -0.35196,-0.20107 -0.30142,0.59065 -0.0656,0.69172 -0.47038,-0.10224 -0.38321,-0.65422 -1.36151,1.06088 -0.14914,0.4439 -0.38447,-0.77489 -0.33885,0.13494 0.13083,0.71141 -0.73345,0.92508 -0.73069,-0.17802 -0.20039,-0.84975 -1.42604,-0.81564 -0.11795,-0.70959 -0.82502,-0.851 1.06081,-0.442 0.40828,-0.902 0.489,-0.72531 0.0173,-0.79269 0.42162,-0.89376 0.35424,-0.62424 0.20471,-1.221 2.74918,-0.676\"},\"47189\":{\"name\":\"Wilson, TN\",\"path\":\"m 704.44931,342.37514 1.91302,4.686 1.13212,2.797 -2.53167,0.417 -1.72582,0.04 -1.22126,-0.298 -0.30488,-0.12 -2.94173,-1.775 -0.80229,-0.539 -1.77931,-3.184 0.73345,-0.92508 -0.13083,-0.71141 0.33885,-0.13494 0.38447,0.77489 0.14914,-0.4439 1.36151,-1.06088 0.38321,0.65422 0.47038,0.10224 0.0656,-0.69172 0.30142,-0.59065 0.35196,0.20107 -0.009,0.77436 0.83295,-0.0342 0.22642,-0.838 0.35033,0.11363 0.0621,0.74251 0.44204,0.0874 0.10143,-0.94764 0.52066,-0.0829 0.42894,0.49358 0.25862,-0.16151 0.63858,0.6639\"},\"47015\":{\"name\":\"Cannon, TN\",\"path\":\"m 707.49445,349.85814 2.48916,1.93226 0.18693,0.60674 -1.38931,2.08584 -0.008,2.24516 -1.14305,0.2671 -1.03683,-0.10467 -2.02056,-0.74043 0.39045,-5.875 2.53167,-0.417\"},\"47031\":{\"name\":\"Coffee, TN\",\"path\":\"m 708.77277,356.72814 0.98012,1.7501 1.35188,1.1659 -0.0588,0.04 -0.0392,0.122 0.0642,1.711 0.21751,1.155 0.29596,0.266 -0.12837,0.745 -0.35122,1.241 -0.10519,0.209 -2.40866,-1.02 -2.27673,-0.21 -1.68837,0.593 -0.17651,0.186 -0.009,0.1 -0.11232,-1.828 0.20361,-1.45217 -0.49244,-3.62383 -0.13178,-1.28838 0.66486,-0.43862 2.02056,0.74043 1.03683,0.10467 1.14305,-0.2671\"},\"47051\":{\"name\":\"Franklin, TN\",\"path\":\"m 704.4404,364.78114 0.009,-0.1 0.17651,-0.186 1.68837,-0.593 2.27673,0.21 2.40866,1.02 0.91639,1.422 0.74702,5.392 -8.33491,0.811 -0.14085,0 -0.30844,-3.134 0.0518,-2.68725 0.50983,-2.16375\"},\"47115\":{\"name\":\"Marion, TN\",\"path\":\"m 711.91597,366.55614 0.84403,-0.61062 0.80925,0.45547 0.85788,0.0504 0.77879,-0.66159 -0.42161,-1.08525 2.72278,-0.98637 0.21751,0.323 1.59032,0.642 0.47603,0.119 0.75594,0.756 0.27991,0.403 0.27991,1.164 0.016,0.193 -0.15084,0.82629 0.7691,0.43099 -0.41748,1.04405 -0.4629,0.0434 -0.0717,0.5692 -0.82323,1.02405 -2.47462,0.257 -4.82802,0.435 -0.74702,-5.392\"},\"47153\":{\"name\":\"Sequatchie, TN\",\"path\":\"m 719.36302,357.73114 -0.0681,0.86638 0.44563,0.18918 0.072,0.37599 3.7616,3.06145 -2.45145,5.094 -0.016,-0.193 -0.27991,-1.164 -0.27991,-0.403 -0.75594,-0.756 -0.47603,-0.119 -1.59032,-0.642 -0.21751,-0.323 0.17974,-0.61372 0.74872,-0.52389 0.17974,-0.98805 -0.43417,-0.0447 -0.0299,-0.31426 -0.62883,-0.23938 -0.0299,-1.25758 -1.42241,-0.80838 0.91461,-0.127 2.37835,-1.07\"},\"47061\":{\"name\":\"Grundy, TN\",\"path\":\"m 716.07006,358.92814 1.42241,0.80838 0.0299,1.25758 0.62883,0.23938 0.0299,0.31426 0.43417,0.0447 -0.17974,0.98805 -0.74872,0.52389 -0.17974,0.61372 -2.72278,0.98637 0.42161,1.08525 -0.77879,0.66159 -0.85788,-0.0504 -0.80925,-0.45547 -0.84403,0.61062 -0.91639,-1.422 0.10519,-0.209 0.35122,-1.241 0.12837,-0.745 -0.29596,-0.266 -0.21751,-1.155 -0.0642,-1.711 0.0392,-0.122 0.0588,-0.04 0.83438,0.122 0.29061,0 1.14817,-0.378 0.9253,-0.2 1.76683,-0.267\"},\"47175\":{\"name\":\"Van Buren, TN\",\"path\":\"m 721.62192,352.22814 -0.0392,0.121 0.40115,0.442 0,0.03 -0.1334,0.98577 -2.48742,3.92223 -2.37835,1.07 -1.12675,-2.83602 -0.37443,-3.10298 1.44551,-0.27792 1.08928,-0.63414 1.91135,0.44824 1.3359,-0.64785 0.35639,0.47767\"},\"47177\":{\"name\":\"Warren, TN\",\"path\":\"m 714.31516,352.28946 1.16833,0.57268 0.37443,3.10298 1.12675,2.83602 -0.91461,0.127 -1.76683,0.267 -0.9253,0.2 -1.14817,0.378 -0.29061,0 -0.83438,-0.122 -1.35188,-1.1659 -0.98012,-1.7501 0.008,-2.24516 1.38931,-2.08584 1.69505,-0.55593 2.44957,0.44825\"},\"47185\":{\"name\":\"White, TN\",\"path\":\"m 721.23503,347.92914 0.64754,1.40226 0.46889,0.37507 -0.18613,1.89353 -0.54341,0.62814 -0.35639,-0.47767 -1.3359,0.64785 -1.91135,-0.44824 -1.08928,0.63414 -1.44551,0.27792 -1.16833,-0.57268 0.26443,-0.66353 -0.48984,-2.46476 0.32072,-0.89994 -0.25343,-0.38209 0.007,-0.135 0.0802,-0.17 0.32983,-0.344 0.98236,-0.866 0.26387,-0.13 0.68284,-0.168 2.56376,0.401 0.90748,0.344 0.2817,0.22 0.0874,0.68719 0.89134,0.21081\"},\"47041\":{\"name\":\"DeKalb, TN\",\"path\":\"m 710.87834,345.51914 0.81967,0.59 -0.0488,0.47553 0.4236,0.35307 0.4761,-0.45171 0.91347,0.33558 0.13737,0.67747 0.55725,0.38006 0.25343,0.38209 -0.32072,0.89994 0.48984,2.46476 -0.26443,0.66353 -2.44957,-0.44825 -1.69505,0.55593 -0.18693,-0.60674 -2.48916,-1.93226 -1.13212,-2.797 4.51601,-1.542\"},\"47141\":{\"name\":\"Putnam, TN\",\"path\":\"m 711.11903,343.02114 2.67609,0.191 1.15886,-0.353 0.56874,-0.275 0.12123,-0.175 0.52952,-0.909 0,-0.531 0.69805,-0.0527 0.85304,1.41973 1.84901,0.29439 0.0139,0.41844 2.30008,0.76717 1.56715,0 0.36905,0.102 -0.85934,1.005 -1.53505,0.03 -0.18364,0.136 -0.0107,2.836 -0.89134,-0.21081 -0.0874,-0.68719 -0.2817,-0.22 -0.90748,-0.344 -2.56376,-0.401 -0.68284,0.168 -0.26387,0.13 -0.98236,0.866 -0.32983,0.344 -0.0802,0.17 -0.007,0.135 -0.55725,-0.38006 -0.13737,-0.67747 -0.91347,-0.33558 -0.47609,0.45171 -0.42361,-0.35307 0.0488,-0.47553 -0.81968,-0.59 0.24069,-2.498\"},\"47169\":{\"name\":\"Trousdale, TN\",\"path\":\"m 707.20862,339.07414 -0.0522,0.68528 -1.31193,0.52975 -0.7987,1.1363 -0.59651,0.94967 -0.63858,-0.6639 -0.25862,0.16151 -0.42894,-0.49358 -0.52066,0.0829 -0.1014,0.94763 -0.44204,-0.0874 -0.0621,-0.74252 -0.35033,-0.11362 0.352,-0.61451 -0.20391,-1.79369 0.60468,-0.0754 -0.086,-0.85035 0.91275,0.08 0.3684,0.8265 0.39951,0.12664 3.21453,-0.0911\"},\"47111\":{\"name\":\"Macon, TN\",\"path\":\"m 706.57093,334.40614 3.43915,-0.21 -0.16045,2.87 -0.0374,2.038 -2.60357,-0.03 -3.21453,0.0911 -0.39951,-0.12664 -0.3684,-0.8265 -0.91275,-0.08 0.32888,-0.66951 -0.29323,-0.29625 0.0357,-2.58324 4.18618,-0.177\"},\"47159\":{\"name\":\"Smith, TN\",\"path\":\"m 707.20862,339.07414 2.60357,0.03 0.25268,3.24087 1.05416,0.67613 -0.24069,2.498 -4.51601,1.542 -1.91302,-4.686 0.59651,-0.94967 0.7987,-1.1363 1.31193,-0.52975 0.0522,-0.68528\"},\"47087\":{\"name\":\"Jackson, TN\",\"path\":\"m 709.84963,337.06614 0.8112,-0.508 2.35517,0.371 1.23731,0.303 0.93245,0.684 0.72384,0.724 0.26387,2.329 0,0.531 -0.52952,0.909 -0.12123,0.175 -0.56874,0.275 -1.15886,0.353 -2.67609,-0.191 -1.05416,-0.67613 -0.25268,-3.24087 0.0374,-2.038\"},\"47133\":{\"name\":\"Overton, TN\",\"path\":\"m 719.41294,335.26514 0.88446,0.23482 1.94704,1.16029 0.28462,0.90321 0.21606,0.21768 0.23534,2.36 0.31379,0.821 0.70601,1.592 -0.54555,1.262 -1.56715,0 -2.30008,-0.76717 -0.0139,-0.41844 -1.84901,-0.29439 -0.85304,-1.41973 -0.69805,0.0527 -0.26387,-2.329 1.07225,-2.3169 0.87584,0.0892 0.008,-0.38544 1.54694,-0.76191\"},\"47027\":{\"name\":\"Clay, TN\",\"path\":\"m 719.3238,333.05614 0.0891,2.209 -1.54694,0.76191 -0.008,0.38544 -0.87584,-0.0892 -1.07225,2.3169 -0.72384,-0.724 -0.93245,-0.684 -1.23731,-0.303 -2.35517,-0.371 -0.8112,0.508 0.16045,-2.87 6.42012,-0.617 2.54059,-0.46 0.35301,-0.06\"},\"47137\":{\"name\":\"Pickett, TN\",\"path\":\"m 724.9648,332.70214 3.35892,-0.154 1.18918,1.698 -0.9158,0.22232 -0.53876,-0.5489 -0.41879,-0.24042 -0.62445,-0.189 -0.78981,-0.122 -0.71315,0.03 -1.12678,0.353 -0.68997,0.683 0.0656,0.46247 -0.48281,0.22253 -0.19433,0.449 0.10484,2.1338 -0.44359,0.0772 -0.21606,-0.21768 -0.28462,-0.90321 -1.94704,-1.16029 -0.88446,-0.23482 -0.0891,-2.209 5.641,-0.354\"},\"47007\":{\"name\":\"Bledsoe, TN\",\"path\":\"m 721.98384,352.82314 2.21611,-0.346 0.86825,0.09 0.88206,-0.34515 0.22291,0.55483 2.03823,-0.58868 -1.95224,3.408 -1.06972,1.374 -0.49742,1.92 0.5699,0.2624 -0.29712,0.4936 -0.20316,0.27427 -0.40546,-0.10145 -0.78202,2.39818 -3.7616,-3.06145 -0.072,-0.37599 -0.44563,-0.18918 0.0681,-0.86638 2.48742,-3.92223 0.1334,-0.98577\"},\"47049\":{\"name\":\"Fentress, TN\",\"path\":\"m 729.5129,334.24614 1.65814,2.72923 -0.66865,0.74177 -1.72314,2.18671 -1.08845,-0.0347 -0.0999,1.27052 -0.54544,0.77748 0.26743,1.182 -2.22056,10e-4 -0.57541,0.70299 -0.69311,0.11453 -0.36905,-0.102 0.54555,-1.262 -0.70601,-1.592 -0.31379,-0.821 -0.23534,-2.36 0.44359,-0.0772 -0.10484,-2.1338 0.19433,-0.449 0.48281,-0.22253 -0.0656,-0.46247 0.68997,-0.683 1.12678,-0.353 0.71315,-0.03 0.78981,0.122 0.62445,0.189 0.41879,0.24042 0.53876,0.5489 0.9158,-0.22232\"},\"47035\":{\"name\":\"Cumberland, TN\",\"path\":\"m 723.82376,343.91814 0.69311,-0.11453 0.57541,-0.70299 2.22056,-10e-4 1.207,1.3015 1.11874,0.33054 1.5895,1.56631 0.91277,2.00765 -1.63133,2.14 -2.29812,1.75 -2.03823,0.58868 -0.22291,-0.55483 -0.88206,0.34515 -0.86825,-0.09 -2.21611,0.346 0,-0.03 -0.40115,-0.442 0.0392,-0.121 0.54341,-0.62814 0.18613,-1.89353 -0.46889,-0.37507 -0.64754,-1.40226 0.0107,-2.836 0.18364,-0.136 1.53505,-0.03 0.85934,-1.005\"},\"47143\":{\"name\":\"Rhea, TN\",\"path\":\"m 731.77893,351.98014 0.23177,0.36 0.0571,0.137 -0.0731,0.901 -0.38648,0.43544 -0.15312,-0.41564 -0.24921,-0.0313 -0.16684,0.4629 0.0116,1.17669 0.14216,0.35471 -0.0226,0.39589 -0.51674,0.31353 0.43042,0.54689 -0.15984,0.32725 -1.31291,-0.0297 -0.0775,0.51944 0.45787,0.40961 -0.15312,0.42172 -0.60611,0.46289 0.1203,0.49102 -0.32061,0.41015 -0.63633,-0.0428 -0.33605,-0.56399 -0.32232,0.0812 0.10351,0.70454 -0.52793,0.70454 -0.99446,-0.56424 -0.60156,0.2361 -0.16501,-0.47693 -0.58701,-0.0549 0.29712,-0.4936 -0.5699,-0.2624 0.49742,-1.92 1.06972,-1.374 1.95224,-3.408 2.29812,-1.75 0.31735,0.38375 0.66696,0.28386 -0.20705,0.84573 0.49215,0.0217\"},\"47121\":{\"name\":\"Meigs, TN\",\"path\":\"m 733.98968,354.23714 -2.03781,3.59323 -1.59567,3.70377 -1.42987,1.623 -0.47613,-0.51548 -0.0317,-0.39808 -0.20635,-0.55814 -0.62834,-0.64546 -0.23544,0.21309 -0.25786,-0.0789 0.22235,-0.661 0.52793,-0.70454 -0.10351,-0.70454 0.32232,-0.0812 0.33605,0.56399 0.63633,0.0428 0.32061,-0.41015 -0.1203,-0.49102 0.60611,-0.46289 0.15312,-0.42172 -0.45787,-0.40961 0.0775,-0.51944 1.31291,0.0297 0.15984,-0.32725 -0.43042,-0.54689 0.51674,-0.31353 0.0226,-0.39589 -0.14216,-0.35471 -0.0116,-1.17669 0.16684,-0.4629 0.24921,0.0313 0.15312,0.41564 0.38648,-0.43544 0.0731,-0.901 -0.0571,-0.137 -0.23177,-0.36 0.62448,0.56425 0.48089,0.56425 0.76808,-0.61523 0.3373,1.74373\"},\"47065\":{\"name\":\"Hamilton, TN\",\"path\":\"m 727.31284,360.51314 -0.22235,0.661 0.25786,0.0789 0.23544,-0.21309 0.62834,0.64546 0.20635,0.55814 0.0317,0.39808 0.47613,0.51548 -0.75593,2.096 -0.11232,0.419 -0.16581,1.348 0.66323,1.817 0.78175,0.40145 -0.16845,0.87655 -0.0285,0 -0.0285,0 -5.2969,0.665 -1.83101,0.25 -2.01821,0.217 0.82323,-1.02405 0.0717,-0.5692 0.4629,-0.0434 0.41748,-1.04405 -0.7691,-0.43099 0.15084,-0.82629 2.45145,-5.094 0.78202,-2.39818 0.40546,0.10145 0.20316,-0.27427 0.58701,0.0549 0.16501,0.47693 0.60156,-0.2361 0.99446,0.56424\"},\"47011\":{\"name\":\"Bradley, TN\",\"path\":\"m 730.3562,361.53414 2.59923,1.26272 -0.22944,0.49127 0.51753,-0.023 0.30936,0.43004 0.19703,1.61441 -0.64231,1.92916 0.22701,0.10058 -0.43248,2.33385 -0.64005,0.08 -3.09328,0.362 0.16845,-0.87655 -0.78175,-0.40145 -0.66323,-1.817 0.16581,-1.348 0.11232,-0.419 0.75593,-2.096 1.42987,-1.623\"},\"47139\":{\"name\":\"Polk, TN\",\"path\":\"m 737.28265,362.20614 3.98828,1.352 0.0695,5.079 -5.56791,0.685 -2.87042,0.351 0.43248,-2.33385 -0.22701,-0.10058 0.64231,-1.92916 -0.19703,-1.61441 0.50812,-0.442 0.87717,-0.346 2.01643,-0.209 0.32805,-0.492\"},\"47123\":{\"name\":\"Monroe, TN\",\"path\":\"m 742.03934,354.04114 0.15333,0.253 1.9362,1.1 0.90926,-0.169 1.93798,1.037 0.0214,0.02 -0.0214,0.09 -0.31557,0.506 -0.75415,4.122 -0.43502,0.594 -0.70424,0.579 -1.98077,0.05 -1.51543,1.334 -3.98828,-1.352 1.4459,-1.219 -0.16759,-1.567 -1.90232,-3.327 -0.77376,-1.229 -0.025,-0.249 -0.0784,-0.121 0.61865,-0.804 0.5313,-0.305 0.41541,-0.191 0.55881,0.12988 0.18465,0.54765 0.5413,-0.21485 0.34453,-0.49771 0.35683,-0.055 2.60477,0.763 0.10162,0.166 z\"},\"47107\":{\"name\":\"McMinn, TN\",\"path\":\"m 734.64043,354.16614 1.14104,0.328 0.0784,0.121 0.025,0.249 0.77376,1.229 1.90232,3.327 0.16759,1.567 -1.4459,1.219 -0.32805,0.492 -2.01643,0.209 -0.87717,0.346 -0.50812,0.442 -0.30936,-0.43004 -0.51753,0.023 0.22944,-0.49127 -2.59923,-1.26272 1.59567,-3.70377 2.03781,-3.59323 0.65075,-0.07\"},\"47145\":{\"name\":\"Roane, TN\",\"path\":\"m 735.38567,353.46514 -0.74524,0.701 -0.65075,0.07 -0.3373,-1.74373 -0.76807,0.61523 -0.4809,-0.56425 -0.62448,-0.56425 -0.49215,-0.0217 0.20705,-0.84573 -0.66696,-0.28386 -0.31735,-0.38375 1.63133,-2.14 2.66895,-1.863 1.41917,-0.444 0.61152,-0.544 1.12499,-1.133 1.67947,3.03 0.19433,0.287 -0.34588,-0.103 0.0812,0.56814 -0.396,-0.088 -0.47553,-0.008 -0.15742,1.32366 -0.51227,0.23093 0.005,1.18526 -1.10874,0.46951 -1.22803,1.24491 -0.31557,1.004 z m 0,0 0,0\"},\"47129\":{\"name\":\"Morgan, TN\",\"path\":\"m 735.82961,341.91014 -0.10025,0.65913 0.50578,0.20812 0.21453,0.46075 0.38365,0.01 0.44004,0.16478 0.15815,0.30572 0.53397,0.60275 -1.12499,1.133 -0.61152,0.544 -1.41917,0.444 -2.66895,1.863 -0.91277,-2.00765 -1.5895,-1.56631 -1.11874,-0.33054 -1.207,-1.3015 -0.26743,-1.182 0.54544,-0.77748 0.0999,-1.27052 1.08845,0.0347 1.72314,-2.18671 1.92015,2.112 0.85934,0.644 1.87915,0.704 0.66858,0.733\"},\"47151\":{\"name\":\"Scott, TN\",\"path\":\"m 728.45922,332.54114 9.43495,-0.884 0.4056,0.77668 -0.025,1.17899 -1.15338,0.32812 -0.35799,1.1235 0.25241,0.93852 0.60386,0.62408 -0.3025,0.14314 0.40039,2.34432 -0.80193,0.38361 0.0158,1.03904 -0.57909,0.99656 -0.52272,0.37644 -0.66858,-0.733 -1.87915,-0.704 -0.85934,-0.644 -1.92015,-2.112 0.66865,-0.74177 -1.65814,-2.72923 -1.18918,-1.698 0.1355,0\"},\"47013\":{\"name\":\"Campbell, TN\",\"path\":\"m 742.87729,331.08614 1.99147,3.703 0.0314,0.24243 0.22499,0.34567 -0.38155,0.24243 -0.31702,-0.17053 -0.44928,2.3 -0.20146,0.392 -0.27278,0.323 -0.39708,-0.625 -0.78609,1.72677 -0.39708,-0.0238 -2.41288,0.15303 0.01,1.30239 -1.17511,-0.60732 -0.43244,0.25913 -0.9806,-0.11221 -0.0158,-1.03904 0.80193,-0.38361 -0.40039,-2.34432 0.3025,-0.14314 -0.60386,-0.62408 -0.25241,-0.93852 0.35799,-1.1235 1.15338,-0.32812 0.025,-1.17899 -0.4056,-0.77668 0.62757,-0.07 4.35555,-0.5\"},\"47001\":{\"name\":\"Anderson, TN\",\"path\":\"m 743.50308,338.46414 1.38885,1.783 -0.0481,0 -0.32092,0.297 -1.81758,2.92565 0.5848,0.69505 -1.43509,1.26736 -0.83733,0.1427 -1.04999,1.56624 -0.3227,0.21 -1.67947,-3.03 -0.53397,-0.60275 -0.15815,-0.30572 -0.44004,-0.16478 -0.38365,-0.01 -0.21453,-0.46075 -0.50578,-0.20812 0.10025,-0.65913 0.52272,-0.37644 0.57909,-0.99656 0.9806,0.11221 0.43244,-0.25913 1.17511,0.60732 -0.01,-1.30239 2.41288,-0.15303 0.39708,0.0238 0.78609,-1.72677 0.39708,0.625\"},\"47105\":{\"name\":\"Loudon, TN\",\"path\":\"m 739.83928,347.63814 2.04852,1.881 0.34518,1.26494 -0.26941,0.99606 1.09422,1.20732 -1.01845,1.05368 -0.10162,-0.166 -2.60477,-0.763 -0.35683,0.055 -0.34453,0.49771 -0.5413,0.21485 -0.18465,-0.54765 -0.55881,-0.12988 -0.41541,0.191 -0.5313,0.305 -0.61865,0.804 -1.14104,-0.328 0.74524,-0.701 0.31557,-1.004 1.22803,-1.24491 1.10874,-0.46951 -0.005,-1.18526 0.51227,-0.23093 0.15742,-1.32366 0.47553,0.008 0.396,0.088 -0.0812,-0.56814 0.34588,0.103\"},\"47009\":{\"name\":\"Blount, TN\",\"path\":\"m 748.47729,346.77214 1.56714,2.71 0.78624,1.18 0.64184,0.305 0.36192,2.787 -5.02056,3.18 -0.15333,-0.05 0.31557,-0.506 0.0214,-0.09 -0.0214,-0.02 -1.93798,-1.037 -0.90926,0.169 -1.9362,-1.1 -0.15333,-0.253 1.01845,-1.05368 -1.09422,-1.20732 0.26941,-0.99606 -0.34518,-1.26494 0.28169,-0.909 1.9849,-0.14614 0.60205,-1.14486 0.97879,0.07 1.15887,0.579 0.74579,0 0.8374,-1.198\"},\"47155\":{\"name\":\"Sevier, TN\",\"path\":\"m 757.31675,345.40514 1.5725,4.009 0.0802,0.437 -0.66679,0.977 -3.18955,2.525 -0.22643,0.146 -2.62616,0.271 -0.33697,0 -0.0891,0 -0.36192,-2.787 -0.64184,-0.305 -0.78624,-1.18 -1.56714,-2.71 0.65446,-0.87921 0.68486,-0.0282 1.0192,-1.45671 -0.5917,-1.39591 1.02102,0.36 2.10263,1.15968 0.1951,0.47172 0.77362,0.23719 0.92997,-0.37259 2.0503,0.537\"},\"47093\":{\"name\":\"Knox, TN\",\"path\":\"m 748.78394,340.25414 1.43699,1.768 -0.41567,-0.11229 -0.23063,0.20638 0.55062,0.61757 0.11888,0.27834 0.5917,1.39591 -1.0192,1.45671 -0.68486,0.0282 -0.65446,0.87921 -0.8374,1.198 -0.74579,0 -1.15887,-0.579 -0.97879,-0.07 -0.60205,1.14486 -1.9849,0.14614 -0.28169,0.909 -2.04852,-1.881 -0.19433,-0.287 0.3227,-0.21 1.04999,-1.56624 0.83733,-0.1427 1.43509,-1.26736 -0.5848,-0.69505 1.81758,-2.92565 0.32092,-0.297 0.0481,0 0.39726,0.35467 3.49475,-0.35467\"},\"47173\":{\"name\":\"Union, TN\",\"path\":\"m 744.86876,334.78914 0.51346,-0.231 1.46876,-0.0265 1.24084,1.0537 0.0411,0.53879 0.54674,0.21731 0.20884,-0.56242 0.54438,0.18609 -0.0986,3.31822 -0.55032,0.97378 -3.49475,0.35467 -0.39726,-0.35467 -1.38885,-1.783 0.27278,-0.323 0.20146,-0.392 0.44928,-2.3 0.31702,0.17053 0.38155,-0.24243 -0.22499,-0.34567 -0.0314,-0.24243\"},\"47025\":{\"name\":\"Claiborne, TN\",\"path\":\"m 748.51829,330.09914 3.70302,-0.41 1.06873,0.73004 0.86521,1.13709 0.60354,1.64589 -0.41408,0.51198 -0.89009,0.33676 -0.068,0.7985 -1.45008,0.59943 -0.42524,-0.0538 -0.673,0.0251 -0.63922,0.88098 -0.76621,-0.33896 -0.54438,-0.18609 -0.20884,0.56242 -0.54674,-0.21731 -0.0411,-0.53879 -1.24084,-1.0537 -1.46876,0.0265 -0.51346,0.231 -1.99147,-3.703 1.03585,-0.103 4.60515,-0.884\"},\"47067\":{\"name\":\"Hancock, TN\",\"path\":\"m 763.88841,328.18614 -2.01642,1.469 -0.47425,-0.06 -0.45121,-0.22816 -0.30919,0.28422 -0.57872,0.472 -2.24061,2.51568 0.0446,0.55464 -1.53527,0.68162 -1.98255,-0.161 0.41408,-0.51198 -0.60354,-1.64589 -0.86521,-1.13709 -1.06873,-0.73004 8.86265,-1.118 2.80445,-0.385\"},\"47057\":{\"name\":\"Grainger, TN\",\"path\":\"m 754.34471,333.71414 1.98255,0.161 0.78803,2.362 -0.30567,0.7875 -0.94211,-0.45942 -1.50064,1.78763 -0.76027,1.03429 -1.64181,0.23302 -1.74386,2.40198 -1.43699,-1.768 0.55032,-0.97378 0.0986,-3.31822 0.76621,0.33896 0.63922,-0.88098 0.673,-0.0251 0.42524,0.0538 1.45008,-0.59943 0.068,-0.7985 0.89009,-0.33676\"},\"47063\":{\"name\":\"Hamblen, TN\",\"path\":\"m 760.41895,336.88814 -1.33537,1.613 -0.95562,2.371 -0.80258,-0.86896 -1.70089,-0.14061 -1.66447,0.0658 -0.35342,-0.5412 0.76027,-1.03429 1.50064,-1.78763 0.94211,0.45942 0.30567,-0.7875 0.82591,0.16275 0.71433,-1.33576 1.35199,1.34243 0.41143,0.48158\"},\"47089\":{\"name\":\"Jefferson, TN\",\"path\":\"m 758.12796,340.87214 -0.81121,4.533 -2.0503,-0.537 -0.92997,0.37259 -0.77362,-0.23719 -0.1951,-0.47172 -2.10263,-1.15968 -1.02102,-0.36 -0.11888,-0.27834 -0.55062,-0.61757 0.23063,-0.20638 0.41567,0.11229 1.74387,-2.40198 1.6418,-0.23302 0.35342,0.5412 1.66447,-0.0658 1.70089,0.14061 0.80258,0.86896\"},\"47029\":{\"name\":\"Cocke, TN\",\"path\":\"m 759.08358,338.50114 -0.0481,0.548 0.13015,0.146 0.72028,0.531 1.59923,0.858 2.04139,1.592 1.18739,1.069 -0.71136,3.625 -5.11327,2.544 -1.5725,-4.009 0.81121,-4.533 0.95562,-2.371\"},\"47171\":{\"name\":\"Unicoi, TN\",\"path\":\"m 773.91706,334.74314 1.29585,0.0813 0.42463,0.70361 0.75592,1.09608 -3.2787,2.442 -1.30862,2.395 -0.49475,0.11705 -0.64185,0.6687 -1.0464,-0.65527 0.20401,-1.28048 -0.0392,-1.318 1.05189,-1.383 0.71493,-0.257 0.42611,-0.05 0.79516,-0.514 0.57765,-0.859 0.56339,-1.189\"},\"47073\":{\"name\":\"Hawkins, TN\",\"path\":\"m 767.907,327.61514 0.0224,2.16949 -1.17079,1.17513 0.37636,0.56038 -0.32983,0.547 -1.92015,1.333 -0.88252,0.259 -0.33875,0.184 -0.93066,0.593 -0.41184,0.476 -0.34409,0.617 -0.42611,0.492 -0.77911,0.697 -0.20147,0.154 -0.15154,0.02 -0.41143,-0.48158 -1.35199,-1.34243 -0.71432,1.33576 -0.82592,-0.16275 -0.78803,-2.362 1.53527,-0.68162 -0.0445,-0.55464 2.24061,-2.51568 0.57872,-0.472 0.30919,-0.28422 0.45121,0.22816 0.47425,0.06 2.01642,-1.469 4.01859,-0.571\"},\"47059\":{\"name\":\"Greene, TN\",\"path\":\"m 766.80519,332.06714 1.26405,-0.369 0.0535,0.16 0.41897,4.885 0.19255,1.27 1.05368,0.98 0.0392,1.318 -0.35122,-0.337 0,0 -0.27635,-0.175 -0.0874,0.01 -0.46711,0.337 -0.3227,0.233 -1.1553,1.141 -1.62241,1.519 -0.83082,0.21 -1.18739,-1.069 -2.04139,-1.592 -1.59923,-0.858 -0.72028,-0.531 -0.13015,-0.146 0.0481,-0.548 1.33537,-1.613 0.15154,-0.02 0.20147,-0.154 0.77911,-0.697 0.42611,-0.492 0.34409,-0.617 0.41184,-0.476 0.93066,-0.593 0.33875,-0.184 0.88252,-0.259 1.92015,-1.333\"},\"47179\":{\"name\":\"Washington, TN\",\"path\":\"m 767.13502,331.52014 1.01267,-0.159 2.25711,-0.444 1.09468,-0.346 0.63292,0.128 0.90927,0.662 0.28882,0.08 0.8433,-0.11 -0.25673,3.407 -0.56339,1.189 -0.57765,0.859 -0.79516,0.514 -0.42611,0.05 -0.71493,0.257 -1.05189,1.383 -1.05368,-0.98 -0.19255,-1.27 -0.41897,-4.885 -0.0535,-0.16 -1.26405,0.369 0.32983,-0.547\"},\"47019\":{\"name\":\"Carter, TN\",\"path\":\"m 779.54201,327.93814 0.7078,0.706 0,0.07 -1.42273,2.403 0.27991,0.553 1.25336,1.305 0.61152,0.523 0.3227,-0.123 -2.16084,4.041 -2.74027,-0.793 -0.75592,-1.09608 -0.42463,-0.70361 -1.29585,-0.0813 0.25673,-3.407 0.81347,-0.72937 1.22193,0.30377 1.26997,-1.49821 0.50285,0.0558 1.56,-1.52996\"},\"48037\":{\"name\":\"Bowie, TX\",\"path\":\"m 552.10486,413.05014 0.15154,0.394 0.1462,0.335 0.12658,0.17 0.7809,0.499 0.27991,0.184 1.02872,0.561 1.84883,-0.938 0.0963,-0.09 0.27991,-0.03 1.06972,-0.155 1.84884,0.371 0.353,0.144 0.4582,0.378 0.13728,6.493 -0.16224,-0.362 -0.40114,-0.206 -1.7276,-0.277 -0.47425,0.107 -0.60083,0.209 -0.30665,0.545 0.0553,0.482 0.066,0.208 -0.041,0.07 -2.92228,-0.0387 -0.59562,-0.75683 -1.53295,0.12426 -0.84357,0.46894 -1.31372,0.16235 -0.64362,-0.126 -0.16046,-0.129 -0.0481,-0.221 -1.83101,-1.363 -0.0963,-8.638 4.97421,1.431\"},\"48387\":{\"name\":\"Red River, TX\",\"path\":\"m 539.27889,406.13814 2.22681,1.904 3.26265,2.612 2.3623,0.965 0.0963,8.638 -1.19987,-0.788 -6.0582,-0.528 -2.1529,0.55729 -1.3023,-0.26829 -0.0392,-0.06 -0.11945,-11.337 0.28169,-0.03 0.14976,-0.02 0.50634,-0.329 0.10697,-0.104 0.10341,-0.233 0.0321,-0.232 -0.0321,-0.2 0,-0.03 -0.0731,-0.153 -0.007,-0.02 0.007,-0.02 0,-0.04 0.009,-0.03 0.40828,-0.619 0.0107,0 0.016,0 0.0642,-0.03 0.13549,0 1.20522,0.403\"},\"48107\":{\"name\":\"Crosby, TX\",\"path\":\"m 417.59624,405.73514 9.91632,0.485 -0.49029,10.066 -9.89136,-0.497 0.46533,-10.054\"},\"48303\":{\"name\":\"Lubbock, TX\",\"path\":\"m 407.67992,405.26314 9.91632,0.472 -0.46533,10.054 -9.90741,-0.483 0.45642,-10.043\"},\"48219\":{\"name\":\"Hockley, TX\",\"path\":\"m 397.63523,404.58014 10.04469,0.683 -0.45642,10.043 -9.89136,-0.633 0.30309,-10.093\"},\"48079\":{\"name\":\"Cochran, TX\",\"path\":\"m 389.44829,404.00214 8.18694,0.578 -0.30309,10.093 -8.80738,-0.635 0.39402,-4.195 0.52951,-5.841\"},\"48153\":{\"name\":\"Floyd, TX\",\"path\":\"m 419.9835,394.72014 8.10671,0.443 -0.57765,11.057 -9.91632,-0.485 0.62757,-11.12 1.75969,0.105\"},\"48189\":{\"name\":\"Hale, TX\",\"path\":\"m 408.3164,393.98814 1.74365,0.112 8.16376,0.515 -0.62757,11.12 -9.91632,-0.472 0.63648,-11.275\"},\"48279\":{\"name\":\"Lamb, TX\",\"path\":\"m 398.43217,393.32814 1.68659,0.123 8.19764,0.537 -0.63648,11.275 -10.04469,-0.683 0.79694,-11.252\"},\"48017\":{\"name\":\"Bailey, TX\",\"path\":\"m 398.43217,393.32814 -0.79694,11.252 -8.18694,-0.578 0.8843,-11.009 0.0161,-0.241 8.08353,0.576\"},\"48045\":{\"name\":\"Briscoe, TX\",\"path\":\"m 420.56115,384.67614 7.14396,0.376 2.73314,0.146 -0.54734,10.052 -1.8007,-0.09 -8.10671,-0.443 0.57765,-10.044\"},\"48437\":{\"name\":\"Swisher, TX\",\"path\":\"m 410.68583,384.05514 6.91932,0.443 2.956,0.178 -0.57765,10.044 -1.75969,-0.105 -8.16376,-0.515 0.62578,-10.045\"},\"48069\":{\"name\":\"Castro, TX\",\"path\":\"m 407.48915,383.87214 3.19668,0.183 -0.62578,10.045 -1.74365,-0.112 -8.19764,-0.537 0.69176,-10.014 6.67863,0.435\"},\"48369\":{\"name\":\"Parmer, TX\",\"path\":\"m 391.12062,382.73114 9.6899,0.706 -0.69176,10.014 -1.68659,-0.123 -8.08353,-0.576 0.77198,-10.021\"},\"48011\":{\"name\":\"Armstrong, TX\",\"path\":\"m 418.32008,374.44714 10.00369,0.587 -0.61866,10.018 -7.14396,-0.376 -2.956,-0.178 0.71493,-10.051\"},\"48381\":{\"name\":\"Randall, TX\",\"path\":\"m 408.17199,373.81114 10.14809,0.636 -0.71493,10.051 -6.91932,-0.443 -3.19668,-0.183 0.68284,-10.061\"},\"48117\":{\"name\":\"Deaf Smith, TX\",\"path\":\"m 391.12062,382.73114 0.35301,-4.766 0.40114,-5.286 3.81,0.266 3.95975,0.199 8.52747,0.667 -0.68284,10.061 -6.67863,-0.435 -9.6899,-0.706\"},\"48065\":{\"name\":\"Carson, TX\",\"path\":\"m 418.92269,364.34614 0,-0.09 9.95555,0.53 -0.009,0.144 -0.54556,10.102 -10.00369,-0.587 0.60261,-10.101\"},\"48375\":{\"name\":\"Potter, TX\",\"path\":\"m 408.9101,363.72714 10.01259,0.619 -0.60261,10.101 -10.14809,-0.636 0.73811,-10.084\"},\"48359\":{\"name\":\"Oldham, TX\",\"path\":\"m 408.92614,363.55814 -0.016,0.169 -0.73811,10.084 -8.52747,-0.667 -3.95975,-0.199 -3.81,-0.266 0.76307,-10.139 16.2883,1.018\"},\"48233\":{\"name\":\"Hutchinson, TX\",\"path\":\"m 419.50034,354.28514 9.91633,0.562 -0.53843,9.941 -9.95555,-0.53 0.57765,-9.973\"},\"48341\":{\"name\":\"Moore, TX\",\"path\":\"m 409.56084,353.67314 9.9395,0.612 -0.57765,9.973 0,0.09 -10.01259,-0.619 0.016,-0.169 0.6347,-9.885\"},\"48205\":{\"name\":\"Hartley, TX\",\"path\":\"m 393.39378,352.54814 16.16706,1.125 -0.6347,9.885 -16.2883,-1.018 0.2086,-2.694 0.54734,-7.298\"},\"48195\":{\"name\":\"Hansford, TX\",\"path\":\"m 429.97114,344.57914 -0.55447,10.212 0,0.06 -9.91633,-0.562 0.60261,-10.269 9.86819,0.563\"},\"48421\":{\"name\":\"Sherman, TX\",\"path\":\"m 412.62381,343.54314 7.47914,0.473 -0.60261,10.269 -9.9395,-0.612 0.67571,-10.285 2.38726,0.155\"},\"48111\":{\"name\":\"Dallam, TX\",\"path\":\"m 410.23655,343.38814 -0.67571,10.285 -16.16706,-1.125 0.43502,-6.074 0.27991,-3.705 0.75594,-0.449 15.3719,1.068\"},\"48229\":{\"name\":\"Hudspeth, TX\",\"path\":\"m 350.07361,442.92614 -0.29596,3.237 -0.49207,6.253 -1.30863,15.17 -0.19255,1.357 -0.18542,0.669 -0.3851,3.943 -0.77414,0.49924 -0.12123,0.103 -0.42074,-1.52968 -1.28548,-0.41309 -0.88438,-1.28773 -2.13758,-1.71302 -0.83457,0.18026 -2.29983,-1.53306 0.34243,-0.61246 -3.37807,-2.80348 -0.30632,-1.78757 -1.04581,-1.13412 -1.16445,-0.64649 -0.18282,-0.56326 -0.96258,-0.39418 -0.34366,-0.91367 -1.30704,-1.93209 -0.85296,-0.61038 -0.56131,-1.20106 -0.9894,-0.36716 0.93066,-0.754 0.041,-1.52853 -0.61698,-0.11386 1.13045,-11.70761 20.88454,2.131\"},\"48141\":{\"name\":\"El Paso, TX\",\"path\":\"m 329.18907,440.79514 -1.13045,11.70761 0.61698,0.11386 -0.041,1.52853 -0.93066,0.754 -0.5238,-0.31807 -1.15114,-0.24877 -0.65622,-0.61038 -0.4185,-0.0827 -0.8036,-0.73508 -0.25674,-0.208 -0.007,-0.02 -0.0731,-0.08 -0.025,-0.03 -0.15867,-0.257 -0.52416,-1.632 -0.69457,-0.49271 -0.0917,-0.7355 -0.36426,-1.00263 -0.46478,-1.53016 -0.64608,-0.36438 0.12338,-0.43531 -0.5292,-0.47231 -1.69143,-0.13568 -0.37313,-0.82532 -1.51009,-1.615 -0.18542,-0.249 -0.43546,-0.46799 -0.003,-0.29066 -0.10674,-0.45615 0.43812,-0.28139 0.21057,-1.21222 -0.3169,-0.12626 0.0378,-0.32313 0.32589,-0.14926 0,0 0.007,0 0.79852,0.0621 4.22718,0.447 7.3276,0.772\"},\"48305\":{\"name\":\"Lynn, TX\",\"path\":\"m 417.13091,415.78914 -0.59548,9.996 -2.56198,-0.167 -7.38465,-0.412 0.6347,-9.9 9.90741,0.483\"},\"48445\":{\"name\":\"Terry, TX\",\"path\":\"m 397.33214,414.67314 9.89136,0.633 -0.6347,9.9 -2.53881,-0.145 -7.4096,-0.497 0.69175,-9.891\"},\"48501\":{\"name\":\"Yoakum, TX\",\"path\":\"m 397.33214,414.67314 -0.69175,9.891 -8.99993,-0.658 0.8843,-9.868 8.80738,0.635\"},\"48115\":{\"name\":\"Dawson, TX\",\"path\":\"m 406.5888,425.20614 7.38465,0.412 -0.55448,10.051 -9.9181,-0.57 0.54912,-10.038 2.53881,0.145\"},\"48165\":{\"name\":\"Gaines, TX\",\"path\":\"m 387.64046,423.90614 8.99993,0.658 7.4096,0.497 -0.54912,10.038 -0.15868,0 -16.44875,-1.134 0.74702,-10.05\"},\"48317\":{\"name\":\"Martin, TX\",\"path\":\"m 403.34219,435.09014 0.15868,0 9.9181,0.571 -0.72384,10.069 -1.57606,-0.08 -8.43654,-0.533 0.65966,-10.036\"},\"48003\":{\"name\":\"Andrews, TX\",\"path\":\"m 386.89344,433.95614 16.44875,1.134 -0.65966,10.036 -1.46195,-0.1 -9.93237,-0.659 -5.13467,-0.408 0.7399,-10.006\"},\"48329\":{\"name\":\"Midland, TX\",\"path\":\"m 401.22058,445.03014 1.46195,0.1 8.43654,0.533 -0.60083,10.011 -9.97337,-0.633 0.67571,-10.007\"},\"48135\":{\"name\":\"Ector, TX\",\"path\":\"m 401.22058,445.03014 -0.67571,10.007 -0.60261,-0.03 -8.75033,-0.621 -0.61865,-0.04 0.71493,-9.975 9.93237,0.66\"},\"48103\":{\"name\":\"Crane, TX\",\"path\":\"m 391.19193,454.38214 8.75033,0.621 -0.52951,12.992 -1.72047,-0.136 -0.61866,-2.41 -0.1765,-0.444 -0.0553,-0.1 -0.25138,-0.24 -0.94671,-0.821 -0.25673,-0.201 -2.41044,-1.382 -0.2496,0 -2.12162,0.328 0.58656,-8.22\"},\"48377\":{\"name\":\"Presidio, TX\",\"path\":\"m 368.73312,481.24714 -0.16046,2.498 -0.56338,6.935 -0.8433,11.508 -0.43502,5.352 -3.35001,-1.094 -3.56589,-2.99293 -0.47453,-1.76595 -1.03911,-0.87751 -1.77479,-0.62047 -1.13595,-1.08853 -1.97327,-1.81686 -0.39491,-2.0088 -2.25246,-4.39185 -0.25632,-2.82142 0.55476,-1.20503 -0.18294,-3.01081 -0.92218,-1.40703 -1.10648,-2.06675 -0.55503,-0.6808 -0.20393,-2.23345 -0.73463,-2.64057 -1.04476,-0.667 0.12123,-0.103 20.30905,7.02976 1.98433,0.163\"},\"48109\":{\"name\":\"Culberson, TX\",\"path\":\"m 351.44107,443.05414 15.94955,1.43 -3.26265,20.394 -16.91409,8.677 0.3851,-3.943 0.18542,-0.669 0.19255,-1.357 1.30863,-15.17 0.49207,-6.253 0.29596,-3.237 1.36746,0.128\"},\"48475\":{\"name\":\"Ward, TX\",\"path\":\"m 390.57328,454.34514 0.61865,0.04 -0.58656,8.221 -1.39777,0.09 -0.83617,-0.836 -0.55447,-0.492 -0.61865,-0.371 -1.23018,-0.513 -0.94683,-0.3856 -0.20312,0.4456 -0.72207,-0.02 -0.46533,-0.05 -0.99662,-0.224 -1.75156,-1.35085 -3.63271,-0.43215 -0.24782,-0.259 -0.22642,-0.403 -0.19255,-1.155 0.0481,-1.376 0.11232,-0.788 -0.11946,-0.487 -0.32269,-0.517 -1.53506,-0.342 5.51442,0.44 10.29251,0.765\"},\"48495\":{\"name\":\"Winkler, TX\",\"path\":\"m 386.15354,443.96214 5.13467,0.408 -0.71493,9.975 -10.29251,-0.765 0.64183,-8.012 1.14104,0.09 1.00376,0.07 1.36746,0.106 1.09111,0.09 0.47603,0.03 0.15154,-1.993\"},\"48301\":{\"name\":\"Loving, TX\",\"path\":\"m 368.24996,444.55714 4.98134,0.408 7.6913,0.603 -0.64183,8.012 -5.51442,-0.44 -0.41719,-0.917 0.14106,-0.42939 -1.10559,-0.96961 -0.19255,-0.04 -0.3851,0.08 -0.0161,0.05 -0.0481,0.04 -0.17829,0 -0.42432,-0.1 -0.15333,-0.202 -0.82482,-0.87348 -0.35468,-2.51898 -0.94236,0.18434 -0.47222,-0.52088 -1.14282,-2.377\"},\"48389\":{\"name\":\"Reeves, TX\",\"path\":\"m 367.39062,444.48414 0.85934,0.07 1.14282,2.377 0.47222,0.52088 0.94236,-0.18434 0.35468,2.51898 0.82482,0.87348 0.15333,0.202 0.42432,0.1 0.17829,0 0.0481,-0.04 0.0161,-0.05 0.3851,-0.08 0.19255,0.04 1.10559,0.96961 -0.14106,0.42939 0.41719,0.917 1.53506,0.342 0.32269,0.517 0.11946,0.487 -0.11232,0.788 -0.0481,1.376 0.19255,1.155 0.22642,0.403 0.24782,0.259 3.63271,0.43215 1.75156,1.35085 0.99662,0.224 0.46533,0.05 0.72207,0.02 0.20312,-0.4456 0.94683,0.3856 -12.32498,13.002 -9.51518,-8.606 3.26265,-20.394\"},\"48243\":{\"name\":\"Jeff Davis, TX\",\"path\":\"m 373.64315,473.48414 2.6743,2.532 -7.58433,5.231 -1.98433,-0.163 -20.30905,-7.02976 0.77414,-0.49924 16.91409,-8.677 9.51518,8.606\"},\"48043\":{\"name\":\"Brewster, TX\",\"path\":\"m 376.31745,476.01614 16.24016,15.324 4.72639,4.394 -1.02871,0.66 -0.87762,1.48383 -1.6974,-0.64365 -3.58123,1.17582 -0.46533,0.282 -0.0481,0.03 -2.70105,4.404 -1.62241,3.76 -0.77178,2.54222 -0.90938,1.13832 -1.16086,0.15962 -0.72455,1.51848 -1.47855,0.78146 -0.38729,1.9189 -0.85221,0.226 -0.14441,0 -2.34626,-0.587 -1.11586,-1.38791 -0.86134,0.44891 -2.70179,-3.41803 -3.66305,-0.76097 -0.18364,-0.193 -0.80407,-0.827 -0.42611,-0.907 0.43502,-5.353 0.8433,-11.508 0.56338,-6.935 0.16046,-2.498 7.58433,-5.231\"},\"48443\":{\"name\":\"Terrell, TX\",\"path\":\"m 408.95823,486.98614 -0.76306,11.706 -0.35301,-0.105 -0.1462,-0.05 -1.92015,-0.443 -1.21235,-0.192 -1.92907,0.135 -0.19255,0.104 -1.31041,-0.255 -3.84743,-2.156 -4.72639,-4.394 0.37084,-5.288 4.43578,0.281 0.48138,-7.21 3.98952,0.0981 0.14852,-1.14108 7.27945,0.514 0.28883,-0.03 1.08577,0.224 0.78803,0.635 0.12836,1.453 -0.63616,0.85152 -0.37266,0.99199 -0.74438,0.0627 -0.28067,1.00818 1.02038,1.65871 -1.11705,0.68293 -0.46533,0.854\"},\"48371\":{\"name\":\"Pecos, TX\",\"path\":\"m 390.60537,462.60314 2.12162,-0.328 0.2496,0 2.41044,1.382 0.25673,0.201 0.94671,0.821 0.25138,0.24 0.0553,0.1 0.1765,0.444 0.61866,2.41 2.67609,1.214 3.87239,1.205 1.25514,0.393 1.99325,1.665 0.7888,3.43706 0.88175,2.22894 0.1034,0.592 -7.27945,-0.514 -0.14852,1.14008 -3.98952,-0.0971 -0.48138,7.21 -4.43578,-0.282 -0.37084,5.288 -16.24016,-15.323 -2.6743,-2.532 12.32498,-13.002 1.23018,0.513 0.61865,0.371 0.55447,0.492 0.83617,0.836 1.39777,-0.09\"},\"48461\":{\"name\":\"Upton, TX\",\"path\":\"m 399.94226,455.00314 0.60261,0.03 9.97337,0.633 -0.81298,13.129 -10.29251,-0.804 0.52951,-12.992\"},\"48383\":{\"name\":\"Reagan, TX\",\"path\":\"m 410.51824,455.67014 9.91454,0.593 -0.12836,2.17 -0.0392,0.635 -0.70779,10.319 -9.85214,-0.588 0.81298,-13.129\"},\"48173\":{\"name\":\"Glasscock, TX\",\"path\":\"m 412.69513,445.73914 8.34918,0.489 -0.61153,10.035 -9.91454,-0.593 0.60083,-10.011 1.57606,0.08\"},\"48227\":{\"name\":\"Howard, TX\",\"path\":\"m 423.33351,436.26514 -0.73097,10.05 -1.55823,-0.09 -8.34918,-0.489 0.72384,-10.07 9.91454,0.596\"},\"48033\":{\"name\":\"Borden, TX\",\"path\":\"m 416.53543,425.78514 7.37752,0.362 -0.57052,10.036 -0.009,0.08 -9.91454,-0.596 0.55448,-10.051 2.56198,0.167\"},\"48169\":{\"name\":\"Garza, TX\",\"path\":\"m 427.02227,416.28614 -0.52238,9.845 -2.58694,0.02 -7.37752,-0.362 0.59548,-9.996 9.89136,0.497\"},\"48415\":{\"name\":\"Scurry, TX\",\"path\":\"m 426.49989,426.13114 7.33651,0.531 -0.58656,10.093 -9.90741,-0.572 0.57052,-10.036 2.58694,-0.02\"},\"48335\":{\"name\":\"Mitchell, TX\",\"path\":\"m 423.34243,436.18314 9.90741,0.572 -0.58657,10.123 -3.02909,-0.185 -7.03164,-0.378 0.73097,-10.05 0.009,-0.08\"},\"48431\":{\"name\":\"Sterling, TX\",\"path\":\"m 421.04431,446.22814 1.55823,0.09 7.03164,0.378 -0.5313,8.984 -0.68106,-0.248 -0.25138,3.286 -7.86602,-0.282 0.12836,-2.17 0.61153,-10.035\"},\"48235\":{\"name\":\"Irion, TX\",\"path\":\"m 420.26519,459.06814 5.40745,0.314 5.8175,0.386 -0.41719,10.052 -5.37713,-0.176 -6.13842,-0.257 0.70779,-10.319\"},\"48105\":{\"name\":\"Crockett, TX\",\"path\":\"m 397.69228,467.85914 1.72047,0.136 10.29251,0.804 9.85214,0.588 6.13842,0.257 -0.41719,8.647 -0.49743,9.593 -15.82297,-0.898 0.46533,-0.854 1.11705,-0.68293 -1.02038,-1.65871 0.28067,-1.00818 0.74438,-0.0627 0.37266,-0.99199 0.63616,-0.85152 -0.12836,-1.453 -0.78803,-0.635 -1.08577,-0.224 -0.28883,0.03 -0.1034,-0.592 -0.88174,-2.22894 -0.78881,-3.43706 -1.99325,-1.665 -1.25514,-0.392 -3.87239,-1.206 -2.67609,-1.214\"},\"48465\":{\"name\":\"Val Verde, TX\",\"path\":\"m 408.95823,486.98614 15.82297,0.898 5.15785,0.248 -0.74703,15.229 -0.20146,4.21 -0.22464,1.72 -0.11232,0.555 -0.80229,1.895 -0.25852,0.378 -0.0802,0.02 -0.61865,-0.112 -4.71035,-4.22 -0.31132,-1.36361 -1.56467,-0.656 -0.39829,-0.66028 -1.26776,-0.53407 0.15349,-1.83045 -1.17997,-0.38361 -0.12986,-0.60436 -1.34091,-0.60295 -0.85325,-1.61767 -0.99663,-0.344 0.16325,-0.6561 -1.23734,0.19073 -0.48349,-1.07433 -1.40016,1.3557 -0.45641,-0.02 -2.685,-0.298 0.76306,-11.706\"},\"48505\":{\"name\":\"Zapata, TX\",\"path\":\"m 452.15717,558.33114 1.75969,-1.18 0.72385,1.076 7.79471,0.346 -0.32983,11.008 -1.31181,2.74001 -3.35753,2.01799 -0.30487,-1.223 -0.36905,-1.494 0,-0.02 -0.61866,-2.275 -0.49742,-1.262 -1.05368,-1.487 -1.15708,-0.674 0.43391,-0.91779 -0.88255,-1.12546 -0.87782,-0.0228 -0.0802,-0.908 0.025,-0.09 0.0963,-0.08 0.36192,-0.532 0.14442,-1.863 -0.25674,-1.688 -0.20859,-0.332 -0.0178,0 -0.0161,0\"},\"48247\":{\"name\":\"Jim Hogg, TX\",\"path\":\"m 465.71412,556.74114 3.39944,0.01 0.004,0.32151 0.70319,0.0333 0.03,-0.34915 0.83995,0.0402 -10e-4,0.33617 0.6842,0.009 -0.0668,1.7808 0.60974,0.699 -0.12842,1.97207 0.72968,0.0924 -0.0263,2.01293 0.87269,0.0516 -0.25852,6.191 -11.0003,-0.364 0.32983,-11.008 3.20193,0.14252 0.0768,-1.97452\"},\"48427\":{\"name\":\"Starr, TX\",\"path\":\"m 462.10559,569.58114 11.0003,0.364 2.10557,0.06 -1.66163,3.542 -1.9469,3.76 -2.2161,4.5 -0.97345,0.138 -1.49404,-0.66 -2.03069,-2.0426 -2.355,-0.69643 -2.63704,-0.41897 -1.18204,-0.763 0.24952,-1.45652 -1.22597,-0.77229 -0.22877,-0.52219 -0.041,-0.158 -0.0321,-0.12 3.35753,-2.01799 1.31181,-2.74001\"},\"48489\":{\"name\":\"Willacy, TX\",\"path\":\"m 495.90345,574.55714 0.6347,0.02 1.27654,4.306 -0.35301,0 -1.55823,-4.322 m -13.25207,-0.483 1.65392,0.36544 9.04152,0.0676 -0.25305,2.09999 -1.19075,0.15018 0.66888,2.03293 1.47271,0.80672 -0.8112,1.007 -1.77465,0.73318 -6.9425,-1.23 0.0321,-1.687 -0.95562,-0.306 -1.98433,-0.352 0.1765,-0.98 0.27278,-1.013 0.5937,-1.695\"},\"48215\":{\"name\":\"Hidalgo, TX\",\"path\":\"m 475.21146,570.00914 6.9425,0.199 -0.12365,3.7799 0.62107,0.0861 -0.5937,1.695 -0.27278,1.013 -0.1765,0.98 1.98433,0.352 0.95562,0.306 -0.0321,1.687 -0.12837,6.518 -0.14441,-0.03 -0.41006,-0.06 -1.87201,0.02 -0.62579,0.01 -0.0802,0.103 -0.68462,0.273 -2.57981,-0.497 -1.51722,-0.298 -0.47425,-0.257 -0.29774,-0.2 -2.20897,-1.504 -1.05368,-1.259 -0.5616,-0.267 -0.0481,-0.02 -2.42827,-0.827 -0.0143,0 2.2161,-4.5 1.9469,-3.76 1.66163,-3.542\"},\"48047\":{\"name\":\"Brooks, TX\",\"path\":\"m 471.30698,558.92614 5.99401,0.209 3.58357,0.114 1.48692,0.0544 -0.025,1.15763 -0.19255,9.747 -6.9425,-0.199 -2.10557,-0.06 0.25852,-6.19 -0.87269,-0.0516 0.0263,-2.01293 -0.72968,-0.0924 0.12842,-1.97207 -0.60974,-0.699\"},\"48261\":{\"name\":\"Kenedy, TX\",\"path\":\"m 494.99419,559.12114 0.53129,0 -0.0642,0.219 -0.29061,1.318 -0.16759,1.117 -0.14441,1.364 -0.0642,1.206 0,1.262 0.12836,1.897 0.0963,0.779 0.016,0.08 0.24961,1.448 0.36192,1.638 0.6347,2.313 0.0321,0.09 0.0321,0.09 0.19255,0.629 -0.6347,-0.02 -1.35855,-5.033 0,-2.85 0.0161,-2.422 0.009,-0.955 0.0321,-1.421 0.0874,-1.093 0.0981,-0.555 0.20682,-1.107 m -12.64768,1.341 0.57099,-0.21143 0.1382,-0.54237 1.74206,0.0177 1.25835,-0.61875 1.26564,-0.1838 0.60372,0.37629 1.62205,-0.28563 -0.0481,0.179 0.007,0.401 0.082,0.144 0.12658,0.1 1.76861,0.337 0.46533,-0.04 0.21751,-0.09 0.13728,-0.1 0.0642,-0.104 0.312,-0.144 0.71493,-0.259 0.54734,-0.02 0.0339,0.144 -0.49207,3.213 -1.47897,0.28257 0.60358,2.34543 -1.90052,0.0209 0.48349,2.49319 -0.12197,1.96094 1.7155,1.029 0.50634,2.86 0.0553,0.739 -9.04152,-0.0676 -1.65392,-0.36544 -0.62107,-0.0856 0.12365,-3.7794 0.19255,-9.747\"},\"48273\":{\"name\":\"Kleberg, TX\",\"path\":\"m 494.99419,559.12114 2.66895,-6.889 0.5313,0.13 -2.66896,6.764 -0.53129,0 m -11.54587,-8.367 1.29556,0.19909 0.76901,1.60191 0.1765,0 10.38165,0.121 -1.03585,3.623 -0.61865,1.487 -0.0642,0.13 -0.16937,0.192 -0.14441,0.09 -1.83101,0.938 -2.66004,-0.128 -1.62205,0.28563 -0.60372,-0.37629 -1.26564,0.1838 -1.25835,0.61875 -1.74206,-0.0177 -0.1382,0.54237 -0.57099,0.21143 0.025,-1.15813 -1.48692,-0.0549 0.15332,-8.543 2.41044,0.05\"},\"48249\":{\"name\":\"Jim Wells, TX\",\"path\":\"m 477.66291,540.99114 7.18318,0.176 1.82809,0.29173 -0.12366,1.13827 -2.82942,2.468 -0.0321,2.474 -0.24069,3.215 -2.41044,-0.05 -0.15332,8.543 -3.58357,-0.114 0.36192,-18.144\"},\"48355\":{\"name\":\"Nueces, TX\",\"path\":\"m 501.87428,546.45514 -3.67984,5.907 -0.5313,-0.13 4.10595,-6.067 0.10519,0.29 m -18.42596,4.299 0.24069,-3.215 0.0321,-2.474 2.82942,-2.468 -0.22465,0.54 0.20682,0.835 2.2968,0.37956 0.40425,1.02844 0.52951,0.248 1.05367,0.232 1.46196,0.121 0.1765,-0.596 3.28761,-0.07 1.41382,0.07 -0.36906,0.07 -1.3425,0.61 -0.38688,0.282 -0.271,0.545 -0.041,0.708 0.14441,0.371 0.35301,0.578 0.43502,0.378 0.61866,0.296 1.0198,0.795 -0.64362,1.464 -0.60261,1.205 -10.38165,-0.121 -0.1765,0 -0.76901,-1.60191 -1.29556,-0.19909\"},\"48409\":{\"name\":\"San Patricio, TX\",\"path\":\"m 486.22782,538.45714 5.14494,1.0718 0.48893,-0.6988 1.79201,0.0421 1.05167,1.01795 1.96026,-0.22716 0.88341,1.28716 2.51741,3.995 -1.40948,1.17168 -1.50016,-0.73168 -1.41382,-0.07 -3.28761,0.07 -0.1765,0.596 -1.46196,-0.121 -1.05367,-0.232 -0.52951,-0.248 -0.40425,-1.02844 -2.2968,-0.37956 -0.20682,-0.835 0.22465,-0.54 0.12367,-1.13827 -1.8281,-0.29173 -0.16165,-1.42058 1.54338,-1.28942\"},\"48057\":{\"name\":\"Calhoun, TX\",\"path\":\"m 506.34215,540.22114 0.27278,-1.054 4.58733,-3.143 0.24069,-0.111 1.06259,-0.458 1.5814,-0.33 0.24247,0.419 -1.93619,0.954 -0.28348,0.128 -0.0232,0.02 -1.478,0.911 -1.49404,1.076 -1.30328,1.021 -1.87915,1.633 -0.041,0.04 -0.0481,0.05 0.4992,-1.155 m 5.18281,-13.725 5.1828,0.899 0.007,0.772 -1.25336,0.586 -1.99324,0.811 -1.62242,-1.479 -0.18541,-0.535 -0.1355,-1.054 m -6.34167,4.676 -0.29596,-0.579 -0.49029,-1.246 1.56715,-1.093 3.05405,-1.045 1.08399,-0.602 -0.29774,0.267 1.06972,2.542 0.0553,0.06 0.89143,0.166 0.56339,0.386 2.35517,2.122 0.18364,0.184 0.16937,0.233 -0.0321,0.154 -3.82604,1.918 -0.1765,0.07 -1.478,0.417 -0.51525,-0.167 -0.14442,-0.138 -1.30149,-1.399 -2.4354,-2.256\"},\"48391\":{\"name\":\"Refugio, TX\",\"path\":\"m 499.72058,530.05514 5.46271,1.117 2.4354,2.256 -0.44928,2.068 -6.76599,0.986 0.0321,0.467 0.45641,0.611 0.7809,0.468 0.44215,0.06 0.42432,0.01 -0.12658,0.346 -2.57981,1.945 -1.82388,0.884 -0.0642,0 -0.3958,-0.322 -0.88341,-1.28716 -1.96026,0.22716 -1.05167,-1.01795 -1.79201,-0.0421 3.44628,-5.064 4.41261,-3.711\"},\"48025\":{\"name\":\"Bee, TX\",\"path\":\"m 487.24049,527.24314 1.60815,2.917 2.8694,0.69298 0.0313,1.07502 3.55861,1.839 -3.44628,5.063 -0.48893,0.6988 -5.14494,-1.0718 0.19255,-0.15 -5.47876,-11.073 1.71868,-0.586 1.84171,-0.635 0.26386,0.16 0.16046,0.28 0.71493,0.396 0.63649,0.264 0.96275,0.13\"},\"48297\":{\"name\":\"Live Oak, TX\",\"path\":\"m 480.82929,524.38914 1.831,2.259 -1.71868,0.586 5.47876,11.073 -0.19255,0.15 -1.54338,1.28942 0.16165,1.42058 -7.18318,-0.176 -2.01821,-0.05 0.29774,-12.678 4.88685,-3.874\"},\"48311\":{\"name\":\"McMullen, TX\",\"path\":\"m 466.51819,527.42714 9.44208,0.128 -0.31557,13.386 -9.56153,-0.246 0.43502,-13.268\"},\"48131\":{\"name\":\"Duval, TX\",\"path\":\"m 466.08317,540.69514 9.56153,0.246 2.01821,0.05 -0.36192,18.144 -5.99401,-0.209 0.0668,-1.7808 -0.6842,-0.009 0.001,-0.33617 -0.83995,-0.0402 -0.03,0.34915 -0.70319,-0.0333 -0.004,-0.32151 -3.39944,-0.01 0.36905,-16.046\"},\"48479\":{\"name\":\"Webb, TX\",\"path\":\"m 437.55725,536.45214 1.95224,0.06 14.64985,0.426 -0.041,3.977 11.96484,-0.224 -0.36905,16.046 -0.0768,1.97452 -3.20193,-0.14252 -7.79471,-0.345 -0.72385,-1.077 -1.75969,1.18 -0.34587,-0.03 -0.44037,-0.277 -0.041,-0.01 -0.13659,-0.42165 -0.0874,-0.1 -0.0321,-0.04 -0.016,-0.02 -0.0232,-0.09 0.0945,-0.128 0.0154,-1.01735 0.3227,-0.763 0.12124,-0.442 0.21572,-1.719 -0.59753,-0.36584 -0.13344,-1.66816 -0.42611,-0.747 -0.27456,-0.202 -0.90748,-0.659 -0.46533,-0.08 -0.86281,-0.0205 -1.43814,-0.90938 -1.55219,-2.14971 -0.53457,-0.0674 -0.63471,-0.754 -0.35671,-1.02034 0.13618,-1.02898 -0.65854,-0.6863 -0.0105,-1.12325 -1.20619,-0.5387 -0.333,-1.52936 -0.0527,-0.12855 -1.423,-1.82852 -0.0981,-0.08 -2.41757,-1.238\"},\"48283\":{\"name\":\"La Salle, TX\",\"path\":\"m 466.53245,527.21814 -0.0143,0.209 -0.43502,13.268 -11.96484,0.224 0.041,-3.977 0.32091,-9.965 12.0522,0.241\"},\"48127\":{\"name\":\"Dimmit, TX\",\"path\":\"m 439.94273,526.22914 14.27187,0.739 0.26565,0 -0.32091,9.965 -14.64985,-0.426 0.43324,-10.287\"},\"48323\":{\"name\":\"Maverick, TX\",\"path\":\"m 440.4348,516.21814 -0.49207,10.011 -0.43324,10.287 -1.95224,-0.06 -0.0731,-0.08 -0.86647,-0.955 -0.64362,-0.828 0.098,-1.37007 -0.99371,-1.44058 0.51668,-2.27341 -1.34275,-1.02768 0.12134,-1.03817 -0.76389,-0.43827 -0.11865,-0.72163 -1.01563,-0.96593 -0.099,-1.42992 -0.64414,-1.89276 -0.98324,-1.69784 -0.93334,-1.27482 -0.60056,-3.27492 11.2196,0.476\"},\"48271\":{\"name\":\"Kinney, TX\",\"path\":\"m 429.19202,503.36114 11.75625,0.564 -0.51347,12.293 -11.2196,-0.476 -2.32129,-3.719 0.61865,0.112 0.0802,-0.02 0.25852,-0.378 0.80229,-1.895 0.11232,-0.555 0.22464,-1.72 0.20146,-4.21\"},\"48137\":{\"name\":\"Edwards, TX\",\"path\":\"m 441.52592,488.62414 7.1921,0.296 -0.26565,4.96 -1.75078,-0.06 -2.41935,-0.289 -1.18918,4.363 -0.21751,3.316 0.0321,2.797 -1.95937,-0.08 -11.75625,-0.564 0.74703,-15.229 11.58687,0.492\"},\"48385\":{\"name\":\"Real, TX\",\"path\":\"m 448.45237,493.88014 1.35141,0.05 -0.14441,3.006 0.40115,0.811 1.32645,0.08 -0.2496,6.418 -8.22973,-0.241 -0.0321,-2.797 0.21751,-3.316 1.18918,-4.363 2.41935,0.289 1.75078,0.06\"},\"48463\":{\"name\":\"Uvalde, TX\",\"path\":\"m 440.94827,503.92514 1.95937,0.08 8.22973,0.241 3.82426,0.135 -0.48138,12.281 -14.04545,-0.442 0.51347,-12.293\"},\"48507\":{\"name\":\"Zavala, TX\",\"path\":\"m 454.48025,516.66014 -0.26565,10.308 -14.27187,-0.739 0.49207,-10.011 14.04545,0.442\"},\"48163\":{\"name\":\"Frio, TX\",\"path\":\"m 466.75175,517.07714 -0.2193,10.141 -12.0522,-0.241 -0.26565,0 0.26565,-10.308 12.2715,0.417\"},\"48175\":{\"name\":\"Goliad, TX\",\"path\":\"m 496.87512,522.91114 1.49404,0 0.58656,0.271 0.29061,0.588 0.3851,0.997 0.0891,5.295 -4.41261,3.712 -3.55861,-1.838 -0.0313,-1.07552 -2.8694,-0.69348 -1.60815,-2.917 4.18796,-3.25 3.21451,-2.512 0.12659,0 0.53129,0.201 0.89144,0.498 0.27456,0.242 0.40828,0.489\"},\"48469\":{\"name\":\"Victoria, TX\",\"path\":\"m 503.58584,517.50514 0.75415,0.938 2.00216,0.884 0.1355,0.1 1.44591,2.86 2.29812,4.268 -0.11945,0.06 -1.08399,0.602 -3.05405,1.045 -1.56715,1.093 0.49029,1.246 0.29596,0.58 -5.46271,-1.118 -0.0891,-5.295 -0.3851,-0.997 -0.29061,-0.588 -0.58656,-0.271 -1.49404,0 6.71072,-5.406\"},\"48123\":{\"name\":\"DeWitt, TX\",\"path\":\"m 498.36203,511.01014 5.22381,6.495 -6.71072,5.406 -0.40828,-0.489 -0.27456,-0.242 -0.89144,-0.498 -0.53129,-0.201 -0.12659,0 -3.21451,2.512 -3.56931,-4.497 2.90073,-2.298 7.60216,-6.188\"},\"48255\":{\"name\":\"Karnes, TX\",\"path\":\"m 488.48671,514.58614 2.27316,2.612 -2.90073,2.298 3.56931,4.497 -4.18796,3.25 -0.96275,-0.13 -0.63649,-0.264 -0.71493,-0.396 -0.16046,-0.28 -0.26386,-0.16 -1.84171,0.635 -1.831,-2.259 -1.82388,-2.225 9.4813,-7.578\"},\"48493\":{\"name\":\"Wilson, TX\",\"path\":\"m 486.30091,510.99414 -0.47591,0.59633 2.66171,2.99567 -9.4813,7.578 -4.2361,-5.417 5.68914,-7.377 0.12123,1.182 0.0713,0.289 0.16937,0.306 0.57765,-0.321 4.90289,0.168\"},\"48013\":{\"name\":\"Atascosa, TX\",\"path\":\"m 466.86407,513.41314 7.90524,3.334 4.2361,5.417 1.82388,2.225 -4.88685,3.874 0.0178,-0.708 -9.44208,-0.128 0.0143,-0.209 0.2193,-10.141 0.11232,-3.664\"},\"48325\":{\"name\":\"Medina, TX\",\"path\":\"m 467.1208,503.32914 -0.25673,10.084 -0.11232,3.664 -12.2715,-0.417 0.48138,-12.281 8.5649,0.378 0.13728,0.213 0.0161,0.11 -0.0642,0.25 -0.17472,0.264 0.007,0.46 0.11945,0.272 0.0802,0.07 0.0731,0.01 0.90035,-0.211 2.49958,-2.867\"},\"48019\":{\"name\":\"Bandera, TX\",\"path\":\"m 451.38697,497.82614 6.16338,0.288 2.31417,0.296 1.05189,0.546 4.05068,2.218 2.72423,1.494 -0.57052,0.661 -2.49958,2.867 -0.90035,0.211 -0.0731,-0.01 -0.0802,-0.07 -0.11945,-0.272 -0.007,-0.46 0.17472,-0.264 0.0642,-0.25 -0.0161,-0.11 -0.13728,-0.213 -8.5649,-0.377 -3.82426,-0.136 0.2496,-6.418\"},\"48265\":{\"name\":\"Kerr, TX\",\"path\":\"m 457.68585,489.33914 -0.0963,3.495 7.57719,0.162 -0.19968,8.178 -4.05068,-2.218 -1.05189,-0.546 -2.31417,-0.296 -6.16338,-0.288 -1.32645,-0.08 -0.40115,-0.811 0.14441,-3.006 -1.35141,-0.05 0.26565,-4.96 8.96783,0.419\"},\"48171\":{\"name\":\"Gillespie, TX\",\"path\":\"m 457.82313,484.44514 6.72499,0.255 7.37751,0.186 -0.15332,8.285 -6.60554,-0.175 -7.57719,-0.162 0.23355,-8.389\"},\"48031\":{\"name\":\"Blanco, TX\",\"path\":\"m 476.70729,485.33014 4.41082,1.478 -0.98058,1.583 -2.64399,7.247 -2.37835,2.241 -3.34288,-4.708 0.15332,-8.285 3.83453,0.0752 0.94713,0.36882\"},\"48259\":{\"name\":\"Kendall, TX\",\"path\":\"m 465.16677,492.99614 6.60554,0.175 3.34288,4.708 -4.74957,4.291 -2.6743,0.498 -2.72423,-1.494 0.19968,-8.178\"},\"48029\":{\"name\":\"Bexar, TX\",\"path\":\"m 470.36562,502.17014 1.82388,-0.224 0.16224,0 2.54594,0.33 1.23018,0.987 0.85221,2.532 0.19968,0.635 0.57052,0.442 0.97345,0.312 1.9041,1.278 0.0321,0.683 -0.20146,0.216 -5.68914,7.377 -7.90524,-3.334 0.25673,-10.084 0.57052,-0.661 2.6743,-0.497\"},\"48187\":{\"name\":\"Guadalupe, TX\",\"path\":\"m 485.82667,499.94514 2.10786,2.84351 2.64171,2.01849 -4.27533,6.187 -4.90289,-0.168 -0.57765,0.321 -0.16937,-0.306 -0.0713,-0.289 -0.12123,-1.182 0.20146,-0.216 -0.0321,-0.683 -1.9041,-1.278 -0.97345,-0.312 -0.57052,-0.442 -0.19968,-0.635 6.31493,-3.48 2.53167,-2.379\"},\"48091\":{\"name\":\"Comal, TX\",\"path\":\"m 477.49354,495.63814 5.22381,4.468 0.57765,2.218 -6.31493,3.48 -0.85221,-2.532 -1.23018,-0.987 -2.54594,-0.33 -0.16224,0 -1.82388,0.224 4.74957,-4.291 2.37835,-2.241\"},\"48209\":{\"name\":\"Hays, TX\",\"path\":\"m 480.13753,488.39114 9.04807,7.802 -1.10182,0.987 -2.61903,2.163 -0.12837,0.61 0.18542,0.03 0.30487,-0.04 -2.53167,2.378 -0.57765,-2.218 -5.22381,-4.468 2.64399,-7.247\"},\"48055\":{\"name\":\"Caldwell, TX\",\"path\":\"m 489.1856,496.19314 1.1963,-1.013 6.58236,6.596 -5.34326,3.38638 -1.04475,-0.35638 -2.64171,-2.01849 -2.10786,-2.84351 -0.30487,0.04 -0.18542,-0.03 0.12837,-0.61 2.61903,-2.163 1.10182,-0.987\"},\"48177\":{\"name\":\"Gonzales, TX\",\"path\":\"m 496.92325,501.81714 3.97363,3.13693 -0.52556,0.50407 -1.23018,1.07 0.0161,1.678 -0.79516,2.804 -7.60216,6.188 -2.27316,-2.612 -2.66171,-2.99567 0.47591,-0.59633 4.27533,-6.187 1.04471,0.35587 5.3023,-3.34587\"},\"48285\":{\"name\":\"Lavaca, TX\",\"path\":\"m 500.37132,505.45814 5.38249,-0.05 0.16937,0.05 0.37084,0.225 1.08398,1.012 4.61942,5.568 -1.97542,1.632 -5.68201,4.548 -5.97796,-7.433 0.79516,-2.804 -0.0161,-1.678 1.23018,-1.07\"},\"48239\":{\"name\":\"Jackson, TX\",\"path\":\"m 510.022,513.89514 0.36192,0.369 6.63763,6.55 -0.31379,6.581 -5.1828,-0.899 -1.30328,0.06 -2.29812,-4.268 -1.44591,-2.86 -0.1355,-0.1 -2.00216,-0.884 5.68201,-4.548\"},\"48321\":{\"name\":\"Matagorda, TX\",\"path\":\"m 517.02155,520.81414 6.94071,-4.193 1.83279,-1.899 0.47424,0.451 0.12124,0.121 -0.0217,2.77371 1.50741,0.81469 0.0244,1.7306 2.0567,0.67051 0.45736,1.14611 1.58472,1.42738 1.22126,0.112 -0.3851,0.257 -0.84508,0.539 -0.37618,0.224 -4.55702,2.653 -1.44591,0.731 -2.3623,1.029 -1.56714,0.724 -2.8936,1.478 -1.0198,0.684 -0.0731,0.05 -1.37459,0.962 -0.60261,0.452 -0.16759,0.265 -0.0481,-0.167 0.11945,-0.195 3.26979,-2.458 0.4992,-4.219 -0.0963,-0.103 -0.13549,-0.05 -0.41185,0.06 -0.92174,0.218 -0.3958,0.128 -0.32983,0.262 -0.3851,0.678 -0.007,-0.772 0.31379,-6.581\"},\"48481\":{\"name\":\"Wharton, TX\",\"path\":\"m 521.4805,506.19614 1.62955,3.955 1.14995,2.137 1.43877,1.6 0.62579,0.08 -0.52951,0.754 -1.83279,1.899 -6.94071,4.193 -6.63763,-6.55 0.72206,-0.409 5.15963,-3.239 0.32983,-0.957 0.96275,-1.951 2.1858,-2.25 1.73651,0.738\"},\"48089\":{\"name\":\"Colorado, TX\",\"path\":\"m 511.89401,497.91314 0.67571,1.244 0.81834,0.742 0.20146,0.182 1.26227,0.877 0.19968,0.1 0.3548,0.07 1.33595,0.0233 0.5842,1.87374 0.84442,1.64243 1.07573,0.25457 0.49742,0.538 -2.1858,2.25 -0.96275,1.951 -0.32983,0.957 -5.15963,3.239 -0.72206,0.409 -0.36192,-0.369 1.97542,-1.632 -4.61942,-5.568 -1.08398,-1.012 -0.37084,-0.225 -0.16937,-0.05 6.1402,-7.497\"},\"48021\":{\"name\":\"Bastrop, TX\",\"path\":\"m 496.79489,487.62614 2.65112,1.526 2.32308,1.835 1.08577,4.787 -5.8906,6.002 -6.58236,-6.596 0.87718,-0.804 2.33021,-2.37 2.51384,-4.776 0.69176,0.396\"},\"48149\":{\"name\":\"Fayette, TX\",\"path\":\"m 507.45823,493.30614 0.51525,0.451 0.65788,-0.135 0.66679,-0.236 0.29774,-0.151 0.76307,0.506 0.29061,0.843 0.18363,0.903 0.041,0.511 1.0198,1.915 -6.1402,7.497 -5.38249,0.05 0.52556,-0.50407 -3.97363,-3.13693 0.041,-0.04 5.8906,-6.002 4.60337,-2.468\"},\"48287\":{\"name\":\"Lee, TX\",\"path\":\"m 500.36241,486.42114 3.81712,-2.25 2.29099,2.909 1.81496,2.099 2.24998,1.027 -3.07723,3.1 -4.60337,2.468 -1.08577,-4.787 -2.32308,-1.835 -2.65112,-1.526 3.56752,-1.205\"},\"48015\":{\"name\":\"Austin, TX\",\"path\":\"m 510.87421,495.99814 0.71493,-0.458 5.84068,-0.697 0.36193,0.07 0.91639,0.399 0.98058,0.348 0.46533,0.03 0.21038,-0.249 1.41117,1.29273 -0.62652,4.42765 1.41117,0.73293 0.0452,1.40469 -0.1577,2.83385 -0.96729,0.0582 -1.73651,-0.738 -0.49742,-0.538 -1.07573,-0.25457 -0.84442,-1.64243 -0.5842,-1.87374 -1.33595,-0.0233 -0.3548,-0.07 -0.19968,-0.1 -1.26227,-0.877 -0.20146,-0.182 -0.81834,-0.742 -0.67571,-1.244 -1.0198,-1.915\"},\"48477\":{\"name\":\"Washington, TX\",\"path\":\"m 517.3175,488.32714 0.21751,0.288 0.22464,0.161 0.14263,0.05 1.07864,-0.369 0.33875,-0.41 0.13549,-0.104 0.26565,0.03 0.55447,0.585 -0.0874,0.91 1.26204,0.61417 -0.0497,1.81183 -1.3909,0.34022 0.0102,1.29537 -0.56339,0.90256 0.90826,1.01285 -0.21038,0.25 -0.46533,-0.03 -0.98058,-0.348 -0.91639,-0.399 -0.36193,-0.07 -5.84068,0.697 -0.71493,0.458 -0.041,-0.512 -0.18363,-0.902 -0.29061,-0.843 -0.76307,-0.506 -0.29774,0.151 -0.66679,0.236 -0.65788,0.135 -0.51525,-0.451 3.07723,-3.1 2.93283,-0.722 0.57943,-0.163 3.00413,-1.093 0.17651,0.03 0.0891,0.07\"},\"48473\":{\"name\":\"Waller, TX\",\"path\":\"m 521.40027,491.89414 5.74441,-0.474 0.0321,3.567 -1.06794,-0.264 -1.07685,-0.602 -0.40293,-0.38 -0.58656,-0.435 0.27456,0.886 2.41935,7.724 -4.13091,1.388 -0.0452,-1.40469 -1.41117,-0.73293 0.62652,-4.42765 -1.41117,-1.29273 -0.90826,-1.0131 0.56339,-0.90281 -0.0102,-1.29562 1.3909,-0.34047\"},\"48157\":{\"name\":\"Fort Bend, TX\",\"path\":\"m 522.60549,503.30414 4.13091,-1.388 8.05858,4.74 -0.74703,3.238 -1.61462,0.0663 -0.0329,1.08188 -0.29934,0.79884 -0.64896,0.649 -0.68283,0.353 -0.0343,0.68927 -1.73253,-0.70927 -0.77198,-0.275 -0.48704,0.64303 -0.42044,-0.25603 -0.99841,1.038 -0.62579,-0.08 -1.43877,-1.6 -1.14995,-2.137 -1.62955,-3.955 0.96729,-0.0582 0.1577,-2.83385\"},\"48039\":{\"name\":\"Brazoria, TX\",\"path\":\"m 534.79498,506.65614 1.7364,-0.42937 1.5491,0.18601 0.13106,0.77464 0.74644,-10e-4 -0.312,2.073 2.30525,3.865 1.30149,2.201 -1.45482,2.62 0.21751,0.17 -0.12124,0.248 -5.04552,4.412 -2.62795,1.196 -1.22126,-0.112 -1.58472,-1.42738 -0.45736,-1.14611 -2.0567,-0.67051 -0.0244,-1.7306 -1.50741,-0.81469 0.0217,-2.77371 -0.12124,-0.121 -0.47424,-0.451 0.52951,-0.754 0.99841,-1.038 0.42044,0.25603 0.48704,-0.64303 0.77198,0.275 1.73253,0.70927 0.0343,-0.68927 0.68283,-0.353 0.64896,-0.649 0.29934,-0.79884 0.0329,-1.08188 1.61462,-0.0663 0.74703,-3.238\"},\"48167\":{\"name\":\"Galveston, TX\",\"path\":\"m 555.90416,506.98414 -0.59548,0.275 -1.78287,0.82 -0.13728,0.06 -0.0874,0.05 -1.60637,0.747 -0.2496,0.118 -0.72206,0.387 -0.13015,0.08 -0.41006,0.259 -0.24069,0.144 -0.0713,0.05 -0.23355,0.179 -0.16937,0.119 -0.0802,0.1 -0.0571,0.05 -0.14441,0.154 -0.0481,0.07 -0.17472,0.266 -0.082,0.121 -0.0963,0.232 -0.041,0.09 -0.60974,0.174 -0.34588,0.02 -0.0713,-0.06 -0.016,-0.269 0.32092,-0.409 1.68838,-1.807 0.17472,-0.127 1.53505,-0.731 1.02871,-0.355 0.25852,-0.03 0.19077,-0.08 -0.10341,-0.25 0,-0.33 3.10933,-0.112 m -12.9686,0.186 0.92353,1.044 3.29652,3.527 1.59745,0.474 -1.09289,0.957 -0.3441,0.266 -1.90589,1.309 -2.39617,1.647 -0.14442,0.1 -0.25673,0.203 -0.72206,0.553 -0.12837,0.105 -0.0731,0.06 -0.28882,0.273 -0.21573,0.201 -0.16937,0.234 -0.21751,-0.17 1.45482,-2.621 -1.30149,-2.2 -2.30525,-3.865 0.312,-2.073 0.96453,0.964 2.00038,-1.03 1.01267,0.05\"},\"48339\":{\"name\":\"Montgomery, TX\",\"path\":\"m 526.61517,482.58014 4.58732,2.782 2.13053,0 1.29437,0 1.33358,0.09 0.73339,1.28314 0.96409,1.08127 1.19478,0.36034 0.96409,0.90825 1.40669,4.073 -2.00217,1.897 -1.30149,1.23 -0.58657,0.07 -0.35122,-0.08 -0.21216,-0.458 -0.57587,-0.539 -1.44769,-0.777 -2.51385,-1.334 -0.94135,0.819 -1.40669,0.666 -1.31754,0.266 -0.43502,0.04 -0.95562,0.05 -0.0321,-3.567 -0.52951,-8.84\"},\"48201\":{\"name\":\"Harris, TX\",\"path\":\"m 527.17677,494.98714 0.95562,-0.05 0.43502,-0.04 1.31754,-0.266 1.40669,-0.666 0.94135,-0.819 2.51385,1.334 1.44769,0.777 0.57587,0.539 0.21216,0.458 0.35122,0.08 0.58657,-0.07 1.30149,-1.231 2.00217,-1.896 2.38726,6.47 1.58012,1.72011 -0.56032,3.05789 -1.69551,2.783 -1.01267,-0.05 -2.00038,1.03 -0.96453,-0.964 -0.74644,10e-4 -0.13106,-0.77464 -1.5491,-0.18601 -1.7364,0.42937 -8.05858,-4.74 -2.41935,-7.724 -0.27456,-0.886 0.58656,0.435 0.40293,0.38 1.07685,0.603 1.06794,0.263\"},\"48071\":{\"name\":\"Chambers, TX\",\"path\":\"m 554.34593,499.34314 1.68659,0.01 0.2193,7.171 -0.0178,0.303 -0.32983,0.153 -3.10933,0.113 -4.18618,-0.667 0.50634,-0.947 0.28882,-1.592 0.007,-0.209 -0.0642,-0.451 -0.5937,-1.171 -0.21751,-0.242 -0.11232,-0.04 -1.02158,0.467 -0.47246,0.249 -2.29812,1.894 0.56032,-3.05789 -1.58012,-1.72011 10.73466,-0.266\"},\"48199\":{\"name\":\"Hardin, TX\",\"path\":\"m 552.06385,484.74314 9.38503,-0.144 -0.4992,1.219 -0.17472,0.531 -0.21751,0.892 0.0571,0.321 0.36014,0.822 0.0642,0.02 0.20147,0.21 -0.36193,2.241 -0.20681,0.291 0.0713,1.858 -0.12836,-0.13 -1.47265,-0.491 -0.27813,0.04 -1.29615,0.419 -0.0481,0.06 -0.0161,0.256 0.0481,0.364 -0.0553,0.145 -0.26565,0.383 -0.14441,0.08 -2.0093,0.428 -0.31378,-0.06 -0.55447,-0.289 -3.01305,0.07 -2.82942,-8.637 3.876,-0.088 -0.17833,-0.81199\"},\"48291\":{\"name\":\"Liberty, TX\",\"path\":\"m 546.0538,485.59314 2.31238,0.05 2.82942,8.636 3.01305,-0.06 0.13728,5.128 -10.73466,0.265 -2.38726,-6.47 -1.40669,-4.072 6.23648,-3.473\"},\"48245\":{\"name\":\"Jefferson, TX\",\"path\":\"m 554.20865,494.21514 0.55447,0.289 0.31378,0.06 2.0093,-0.428 0.14441,-0.08 0.26565,-0.383 0.0553,-0.145 -0.0481,-0.364 0.0161,-0.256 0.0481,-0.06 1.29615,-0.419 0.27813,-0.04 1.47265,0.491 0.12836,0.13 0.0481,0.28 0.41719,1.446 0.0553,0.06 2.76702,1.801 1.66163,0.428 0.25674,0.112 0.30665,0.472 0.0731,0.186 0.0392,0.226 -0.0339,0.523 -0.10896,0.9742 -1.77216,1.43477 0.73544,1.76742 1.32396,0.94861 -1.85597,0.298 -0.49207,0 -0.91461,0 -1.10003,0.259 -1.51187,0.602 -4.40369,2.024 0.0178,-0.303 -0.2193,-7.171 -1.68659,-0.01 -0.13728,-5.128\"},\"48361\":{\"name\":\"Orange, TX\",\"path\":\"m 568.6392,490.90614 -0.0143,4.441 -2.29098,3.194 0.0339,-0.523 -0.0392,-0.226 -0.0731,-0.186 -0.30665,-0.472 -0.25674,-0.112 -1.66163,-0.428 -2.76702,-1.801 -0.0553,-0.06 -0.41719,-1.446 -0.0481,-0.28 -0.0713,-1.858 4.28959,-0.114 3.67806,-0.127\"},\"48453\":{\"name\":\"Travis, TX\",\"path\":\"m 481.11811,486.80814 1.59924,-4.517 1.83992,-0.06 0.77911,0.553 0.94136,1.358 0.35122,1.689 0.73276,0.618 0.62757,0.209 0.45642,-0.02 1.3425,-0.472 1.84883,-0.892 0.40115,0 1.26049,0.399 2.80445,1.548 -2.51384,4.776 -2.33021,2.37 -0.87718,0.804 -1.1963,1.012 -9.04807,-7.801 0.98058,-1.584\"},\"48263\":{\"name\":\"Kent, TX\",\"path\":\"m 436.97069,416.76914 -0.50634,10.029 -2.62795,-0.136 -7.33651,-0.531 0.52238,-9.845 9.94842,0.483\"},\"48267\":{\"name\":\"Kimble, TX\",\"path\":\"m 454.43211,479.47814 -0.18541,4.846 3.57643,0.121 -0.13728,4.894 -8.96783,-0.419 -7.1921,-0.296 0.4261,-9.636 12.48009,0.49\"},\"48435\":{\"name\":\"Sutton, TX\",\"path\":\"m 441.95202,478.98814 -0.4261,9.636 -11.58687,-0.492 -5.15785,-0.248 0.49743,-9.593 16.67339,0.697\"},\"48413\":{\"name\":\"Schleicher, TX\",\"path\":\"m 431.07295,469.82014 11.27309,0.491 -0.39402,8.677 -16.67339,-0.697 0.41719,-8.647 5.37713,0.176\"},\"48327\":{\"name\":\"Menard, TX\",\"path\":\"m 442.34604,470.31114 10.06073,0.424 -0.10787,3.35282 2.30972,0.10418 -0.17651,5.286 -12.48009,-0.49 0.39402,-8.677\"},\"48319\":{\"name\":\"Mason, TX\",\"path\":\"m 454.60862,474.19214 7.73052,0.264 -0.0166,0.47326 2.51436,0.0577 -0.28882,9.713 -6.72499,-0.255 -3.57643,-0.121 0.18541,-4.846 0.17651,-5.286\"},\"48299\":{\"name\":\"Llano, TX\",\"path\":\"m 464.83694,474.98714 10.22298,0.289 1.30863,2.059 -1.14866,0.86179 -0.14841,2.28768 0.53262,2.3941 0.8518,0.45743 0.25138,1.994 -0.94713,-0.36882 -3.83453,-0.0752 -7.37751,-0.186 0.28882,-9.713\"},\"48053\":{\"name\":\"Burnet, TX\",\"path\":\"m 485.64125,472.90614 1.57606,2.989 -2.67718,2.6359 -1.82278,3.7601 -1.59924,4.517 -4.41082,-1.478 -0.25138,-1.994 -0.85185,-0.45743 -0.53262,-2.3941 0.14841,-2.28768 1.14866,-0.86179 -1.30863,-2.059 0.18363,-2.482 10.3977,0.112\"},\"48491\":{\"name\":\"Williamson, TX\",\"path\":\"m 487.21731,475.89514 3.4142,0.757 0.58656,0.145 6.05997,2.802 0.74725,0.32667 2.33712,6.49533 -3.56752,1.205 -0.69176,-0.396 -2.80445,-1.547 -1.26049,-0.4 -0.40115,0 -1.84883,0.892 -1.3425,0.472 -0.45642,0.02 -0.62757,-0.208 -0.73276,-0.619 -0.35122,-1.688 -0.94136,-1.359 -0.77911,-0.553 -1.83992,0.06 1.82278,-3.7606 2.67718,-2.6364\"},\"48051\":{\"name\":\"Burleson, TX\",\"path\":\"m 510.98653,480.24114 1.05903,0.811 -0.11232,0.147 -0.56161,1.059 0,0.06 1.83279,0.437 1.6866,0.786 2.13053,3.038 0.29595,1.744 -0.0891,-0.07 -0.17651,-0.03 -3.00413,1.092 -0.57943,0.163 -2.93283,0.722 -2.24998,-1.027 -1.81496,-2.099 -2.29099,-2.909 6.807,-3.93\"},\"48407\":{\"name\":\"San Jacinto, TX\",\"path\":\"m 536.52258,477.26714 0.334,-0.892 1.44826,-0.14916 0.0121,1.08891 0.73018,0.74225 1.43104,0.94353 0.43669,2.3903 1.47665,0.13701 0.38716,1.27604 -0.42996,0.58271 1.59483,0.15542 2.38719,0.79922 -0.4356,0.92302 0.15868,0.32875 -6.23648,3.473 -0.96409,-0.90825 -1.19478,-0.36034 -0.96409,-1.08127 -0.73339,-1.28314 0.56161,-8.166\"},\"48471\":{\"name\":\"Walker, TX\",\"path\":\"m 534.3867,472.72314 0.84562,4.43962 1.29026,0.10438 -0.56161,8.166 -1.33358,-0.09 -1.29437,0 -2.13053,0 -4.58732,-2.782 -0.65075,-5.368 4.82801,-1.542 3.59427,-2.947\"},\"48185\":{\"name\":\"Grimes, TX\",\"path\":\"m 519.93832,478.15214 6.0261,-0.94 0.65075,5.368 0.52951,8.84 -5.74441,0.474 0.0497,-1.81183 -1.26204,-0.61417 1.38886,-2.067 -0.70602,-0.49 -0.14619,-0.257 -0.22464,-0.415 -0.92353,-3.097 0.16759,-2.378 0.19433,-2.612\"},\"48041\":{\"name\":\"Brazos, TX\",\"path\":\"m 519.93832,478.15214 -0.19433,2.612 -0.16759,2.378 0.92353,3.097 0.22464,0.415 0.14619,0.257 0.70602,0.49 -1.38886,2.067 0.0874,-0.91 -0.55447,-0.584 -0.26565,-0.03 -0.13549,0.104 -0.33875,0.41 -1.07864,0.369 -0.14263,-0.05 -0.22464,-0.161 -0.21751,-0.288 -0.29595,-1.744 -2.13053,-3.038 -1.6866,-0.786 -1.83279,-0.437 0,-0.06 0.56161,-1.059 0.11232,-0.147 2.18758,-1.107 0.53842,-0.939 0.39224,-0.91 0.44215,-0.841 0.53129,-0.829 0.24782,-0.323 0.3227,-0.28 0.58656,-0.403 0.80408,-0.531 0.41719,-0.2 1.42273,3.463\"},\"48313\":{\"name\":\"Madison, TX\",\"path\":\"m 518.51559,474.68914 1.36568,-0.474 1.77574,-1.18 2.07348,-1.061 4.163,-0.06 2.44771,0.32687 -0.5536,1.54963 0.2801,0.93825 0.72473,0.93825 -4.82801,1.542 -6.0261,0.94 -1.42273,-3.463\"},\"48289\":{\"name\":\"Leon, TX\",\"path\":\"m 528.3499,462.48414 0.20147,0.337 0.36192,0.811 0.87539,2.505 -0.44037,1.12 -0.082,-0.02 -0.16759,0.1 -0.44216,0.497 -0.98771,3.124 0.0232,0.299 0.20147,0.66 -4.163,0.06 -2.07348,1.061 -1.77574,1.18 -1.36568,0.474 -1.51187,-8.83 1.62419,-1.287 8.79133,-4.714 0.11633,0.32825 0.27087,-0.0967 -0.0382,-0.67621 0.32881,-0.17398 0.48335,0.94638 -0.1541,1.04296 -0.75291,0.65663 0.67651,0.59868\"},\"48395\":{\"name\":\"Robertson, TX\",\"path\":\"m 511.541,468.96814 5.46272,-3.109 1.51187,8.83 -0.41719,0.2 -0.80408,0.531 -0.58656,0.403 -0.3227,0.28 -0.24782,0.323 -0.53129,0.829 -0.44215,0.841 -0.39224,0.91 -0.53842,0.939 -2.18758,1.107 -1.05903,-0.811 -0.94849,-2.385 -1.69551,-2.17 -1.14995,-3.359 -0.23355,-0.747 4.58197,-2.612\"},\"48331\":{\"name\":\"Milam, TX\",\"path\":\"m 506.95903,471.58014 0.23355,0.747 1.14995,3.359 1.69551,2.17 0.94849,2.385 -6.807,3.93 -3.81712,2.25 -2.33712,-6.49533 -0.74725,-0.32667 1.15709,-3.136 3.75294,-2.175 4.77096,-2.708\"},\"48027\":{\"name\":\"Bell, TX\",\"path\":\"m 495.43634,466.51714 1.35088,1.81191 1.38939,-0.84591 4.01146,6.805 -3.75294,2.175 -1.15709,3.136 -6.05997,-2.802 -0.58656,-0.145 -3.4142,-0.757 -1.57606,-2.989 0.10519,-0.788 9.6899,-5.601\"},\"48099\":{\"name\":\"Coryell, TX\",\"path\":\"m 491.88486,460.29814 3.55148,6.219 -9.6899,5.601 -5.15962,-9.194 8.18159,-4.635 1.44047,-0.7617 1.67598,2.7707\"},\"48281\":{\"name\":\"Lampasas, TX\",\"path\":\"m 478.77899,463.97814 1.80783,-1.054 5.15962,9.194 -0.10519,0.788 -10.3977,-0.112 -2.2892,-4.685 5.82464,-4.131\"},\"48333\":{\"name\":\"Mills, TX\",\"path\":\"m 475.16333,457.72514 3.61566,6.253 -5.82464,4.131 -0.0499,-0.275 -0.74702,-1.631 -2.57982,-2.264 -0.89854,-0.33439 -3.52654,-0.50261 -0.50812,-0.666 0.0731,-0.41 1.01267,-0.637 3.21452,-2.152 0.44215,-1.759 1.79,-0.241 3.46429,-0.41543 0.52221,0.90343\"},\"48411\":{\"name\":\"San Saba, TX\",\"path\":\"m 464.71749,462.02614 -0.0731,0.41 0.50812,0.666 3.52654,0.50261 0.89854,0.33439 2.57982,2.264 0.74702,1.631 0.0499,0.275 2.2892,4.685 -0.18363,2.482 -10.22298,-0.289 -2.51436,-0.0577 0.0166,-0.47326 0.42433,-11.956 0.97701,-0.79972 0.97701,0.32572\"},\"48307\":{\"name\":\"McCulloch, TX\",\"path\":\"m 460.57054,462.28214 2.19293,0.218 -0.42433,11.956 -7.73052,-0.264 -2.30972,-0.10418 0.10787,-3.35282 0.37797,-9.303 1.26941,0.248 0.88786,0.74052 0.88787,-0.46652 2.2904,0.93516 1.48572,-0.83516 0.96454,0.233\"},\"48095\":{\"name\":\"Concho, TX\",\"path\":\"m 450.51871,459.38914 2.26603,2.043 -0.37797,9.303 -10.06073,-0.424 0.57052,-11.314 7.60215,0.392\"},\"48451\":{\"name\":\"Tom Green, TX\",\"path\":\"m 429.10288,455.67714 11.49238,0.617 -0.15694,2.56507 2.47824,0.13793 -0.57052,11.314 -11.27309,-0.491 0.41719,-10.052 -5.8175,-0.386 -5.40745,-0.314 0.0392,-0.635 7.86602,0.282 0.25138,-3.286 0.68106,0.248\"},\"48081\":{\"name\":\"Coke, TX\",\"path\":\"m 429.63418,446.69314 3.02909,0.185 8.34918,0.457 -0.41719,8.959 -11.49238,-0.617 0.5313,-8.984\"},\"48399\":{\"name\":\"Runnels, TX\",\"path\":\"m 442.62773,447.40114 8.49359,0.369 -0.60261,11.619 -7.60215,-0.392 -2.47824,-0.13793 0.15694,-2.56507 0.41719,-8.959 1.61528,0.07\"},\"48083\":{\"name\":\"Coleman, TX\",\"path\":\"m 452.72769,447.85014 8.45437,0.348 -0.61152,14.084 -0.96454,-0.233 -1.48572,0.83516 -2.2904,-0.93516 -0.88787,0.46652 -0.88786,-0.74052 -1.26941,-0.248 -2.26603,-2.043 0.60261,-11.619 1.60637,0.08\"},\"48049\":{\"name\":\"Brown, TX\",\"path\":\"m 462.68324,448.24414 3.77077,0.153 4.72282,8.84 -1.79,0.241 -0.44215,1.759 -3.21452,2.152 -1.01267,0.637 -0.97701,-0.32572 -0.97701,0.79972 -2.19293,-0.218 0.61152,-14.084 1.50118,0.05\"},\"48093\":{\"name\":\"Comanche, TX\",\"path\":\"m 473.81191,444.38114 4.15587,7.486 1.50296,-0.858 0.80229,1.462 0.96632,1.767 -6.07602,3.487 -0.52221,-0.90343 -3.46429,0.41543 -4.72282,-8.84 7.3579,-4.016\"},\"48193\":{\"name\":\"Hamilton, TX\",\"path\":\"m 480.27303,452.47114 4.00254,-2.227 4.49284,8.045 -8.18159,4.635 -1.80783,1.054 -3.61566,-6.253 6.07602,-3.487 -0.96632,-1.767\"},\"48035\":{\"name\":\"Bosque, TX\",\"path\":\"m 491.93478,446.10814 2.68322,0.738 -0.21751,1.423 -0.13728,1.196 0.10519,0.974 1.4376,-0.33351 0.35728,0.74681 0.61562,0.30059 -1.07532,1.14606 1.10033,1.36677 1.7814,0.68569 -1.13076,1.64859 0.23355,0.36 0.64897,0.403 -6.45221,3.535 -1.67598,-2.7707 -1.44047,0.7617 -4.49284,-8.045 2.75632,-1.542 4.90289,-2.594\"},\"48145\":{\"name\":\"Falls, TX\",\"path\":\"m 507.5866,462.00114 3.9544,6.967 -4.58197,2.612 -4.77096,2.708 -4.01146,-6.805 9.40999,-5.482\"},\"48309\":{\"name\":\"McLennan, TX\",\"path\":\"m 505.06384,457.68614 2.52276,4.315 -9.40999,5.482 -1.38939,0.84591 -1.35088,-1.81191 -3.55148,-6.219 6.45221,-3.535 4.71747,-2.652 2.0093,3.575\"},\"48217\":{\"name\":\"Hill, TX\",\"path\":\"m 494.618,446.84614 7.58433,-2.016 2.70578,4.95714 0.94376,-0.50514 3.39101,6.001 -4.17904,2.403 -2.0093,-3.575 -4.71747,2.652 -0.64897,-0.403 -0.23355,-0.36 1.13076,-1.64859 -1.7814,-0.68569 -1.10033,-1.36677 1.07532,-1.14606 -0.61562,-0.30059 -0.35728,-0.74681 -1.4376,0.33351 -0.10519,-0.974 0.13728,-1.196 0.21751,-1.423\"},\"48293\":{\"name\":\"Limestone, TX\",\"path\":\"m 509.24288,455.28314 4.3306,0.458 5.05443,8.831 -1.62419,1.287 -5.46272,3.109 -3.9544,-6.967 -2.52276,-4.315 4.17904,-2.403\"},\"48161\":{\"name\":\"Freestone, TX\",\"path\":\"m 522.23466,450.92914 -0.17472,1.075 1.72581,3.206 1.24623,1.255 0.65966,0.242 1.55823,1.838 0.16937,1.313 -8.79133,4.714 -5.05443,-8.831 8.62195,-4.965 0.0392,0.153\"},\"48349\":{\"name\":\"Navarro, TX\",\"path\":\"m 505.85187,449.28214 9.97872,-5.804 1.82566,0.844 1.06081,0.966 0.68997,0.827 1.64737,1.994 0.90035,1.34 0.24068,1.327 -8.62195,4.965 -4.3306,-0.458 -3.39101,-6.001\"},\"48425\":{\"name\":\"Somervell, TX\",\"path\":\"m 485.53785,445.30614 3.23479,-1.89389 3.20137,0.0449 -0.0392,2.651 -4.90289,2.594 -1.49404,-3.396\"},\"48139\":{\"name\":\"Ellis, TX\",\"path\":\"m 502.26651,438.28014 0.94136,0.03 9.82005,0.163 1.48513,4.305 1.31754,0.697 -9.97872,5.804 -0.94376,0.50514 -2.70578,-4.95714 0.0642,-6.55\"},\"48251\":{\"name\":\"Johnson, TX\",\"path\":\"m 492.03106,438.00014 1.28366,0.03 8.95179,0.255 -0.0642,6.55 -7.58433,2.016 -2.68322,-0.738 0.0392,-2.651 0.0571,-5.457\"},\"48221\":{\"name\":\"Hood, TX\",\"path\":\"m 483.35205,437.75014 8.67901,0.25 -0.0571,5.457 -3.20137,-0.0449 -3.23479,1.89389 -2.24285,-6.461 0.0571,-1.095\"},\"48143\":{\"name\":\"Erath, TX\",\"path\":\"m 483.295,438.84514 2.24285,6.461 1.49404,3.396 -2.75632,1.542 -4.00254,2.227 -0.80229,-1.462 -1.50296,0.858 -4.15587,-7.486 1.46177,-0.73757 0.16242,-5.02543 7.8589,0.227\"},\"48133\":{\"name\":\"Eastland, TX\",\"path\":\"m 463.44809,438.22414 10.03577,0.298 1.95224,0.1 -0.16242,5.02543 -1.46177,0.73757 -7.3579,4.016 -3.77077,-0.153 0.41006,-10.03 0.35479,0.01\"},\"48059\":{\"name\":\"Callahan, TX\",\"path\":\"m 453.48363,437.87814 9.60967,0.336 -0.41006,10.03 -1.50118,-0.05 -8.45437,-0.348 0.41897,-9.988 0.33697,0.02\"},\"48441\":{\"name\":\"Taylor, TX\",\"path\":\"m 453.14666,437.86214 -0.41897,9.988 -1.60637,-0.08 -8.49359,-0.369 0.54556,-10.132 9.97337,0.593\"},\"48353\":{\"name\":\"Nolan, TX\",\"path\":\"m 443.17329,437.26914 -0.54556,10.132 -1.61528,-0.07 -8.34918,-0.457 0.58657,-10.123 9.92345,0.514\"},\"48151\":{\"name\":\"Fisher, TX\",\"path\":\"m 436.46435,426.79814 7.1921,0.401 -0.48316,10.07 -9.92345,-0.514 0.58656,-10.093 2.62795,0.136\"},\"48253\":{\"name\":\"Jones, TX\",\"path\":\"m 443.65645,427.19914 2.98096,0.121 7.23132,0.362 -0.3851,10.196 -0.33697,-0.02 -9.97337,-0.593 0.48316,-10.07\"},\"48417\":{\"name\":\"Shackelford, TX\",\"path\":\"m 453.86873,427.68214 2.70818,0.1 7.20101,0.248 -0.32983,10.196 -0.35479,-0.01 -9.60967,-0.336 0.3851,-10.196\"},\"48429\":{\"name\":\"Stephens, TX\",\"path\":\"m 466.56633,428.12414 7.20636,0.264 -0.28883,10.134 -10.03577,-0.298 0.32983,-10.196 2.78841,0.1\"},\"48363\":{\"name\":\"Palo Pinto, TX\",\"path\":\"m 476.66629,427.23314 7.11186,0.273 -0.4261,10.244 -0.0571,1.095 -7.8589,-0.227 -1.95224,-0.1 0.28883,-10.134 2.83496,0.14813 0.0586,-1.30313\"},\"48367\":{\"name\":\"Parker, TX\",\"path\":\"m 483.77815,427.50614 2.57982,0.103 7.24736,0.289 -0.29061,10.127 -1.28366,-0.03 -8.67901,-0.25 0.4261,-10.244\"},\"48439\":{\"name\":\"Tarrant, TX\",\"path\":\"m 493.60533,427.89814 2.79554,0.137 7.03164,0.216 -0.22464,10.062 -0.94136,-0.03 -8.95179,-0.255 0.29061,-10.127\"},\"48113\":{\"name\":\"Dallas, TX\",\"path\":\"m 503.43251,428.25114 3.59962,-0.03 6.30066,0.167 -0.0642,3.89 -0.24068,6.198 -9.82005,-0.163 0.22464,-10.062\"},\"48397\":{\"name\":\"Rockwall, TX\",\"path\":\"m 517.55284,428.42014 -0.0107,3.229 0.004,0.65247 -4.27725,-0.0235 0.0642,-3.89 4.22005,0.03\"},\"48257\":{\"name\":\"Kaufman, TX\",\"path\":\"m 517.54214,431.64914 4.24502,0.08 0.007,11.097 -7.28124,-0.05 -1.48513,-4.305 0.24068,-6.198 4.27725,0.0235 -0.004,-0.65247\"},\"48379\":{\"name\":\"Rains, TX\",\"path\":\"m 525.90024,428.47714 3.7737,0.0668 0.0185,0.36721 0.5937,5.537 -0.87338,-0.14811 -2.00684,-1.19439 -1.02596,0.20065 -1.85427,-1.54315 -0.78292,-0.78395 -0.0694,-0.70884 0.86938,-1.79786 1.35756,0.005\"},\"48467\":{\"name\":\"Van Zandt, TX\",\"path\":\"m 524.52565,431.76314 1.85427,1.54315 1.02596,-0.20065 2.00684,1.19439 0.87338,0.14811 0.78803,0.765 0.0339,4.778 2.37657,2.532 0.43502,0.331 -12.1253,-0.03 -0.007,-11.097 2.73849,0.03\"},\"48213\":{\"name\":\"Henderson, TX\",\"path\":\"m 521.79429,442.82814 12.1253,0.03 -0.17651,5.064 0.61688,1.171 -12.1253,1.84 -0.0392,-0.153 -0.24068,-1.327 -0.90035,-1.341 -1.64737,-1.993 -0.68997,-0.827 -1.06081,-0.966 -1.82566,-0.844 -1.31754,-0.697 7.28124,0.05\"},\"48001\":{\"name\":\"Anderson, TX\",\"path\":\"m 534.35996,449.08914 -0.3441,3.127 0.31379,1.66 0.72384,2.605 1.3639,1.244 0.26565,0.06 0.44393,0.539 0.27278,0.57 0.27991,0.892 0.0571,0.226 -0.27278,0.385 -4.29315,0.669 -3.10041,0.545 -1.72047,0.876 -0.67651,-0.59868 0.75291,-0.65663 0.1541,-1.04296 -0.48335,-0.94638 -0.32881,0.17398 0.0382,0.67621 -0.27087,0.0967 -0.11633,-0.32825 -0.16937,-1.313 -1.55823,-1.838 -0.65966,-0.242 -1.24623,-1.255 -1.72581,-3.206 0.17472,-1.075 12.1253,-1.84\"},\"48225\":{\"name\":\"Houston, TX\",\"path\":\"m 528.3499,462.48414 1.72047,-0.876 3.10041,-0.545 4.29315,-0.669 1.25336,0.483 0.82238,-0.40647 0.61204,0.75041 0.86444,0.75041 -0.35553,0.89765 2.12161,1.31 0.90035,0.894 -9.29588,7.65 -3.59427,2.947 -0.72474,-0.93825 -0.28009,-0.93825 0.5536,-1.54963 -2.44771,-0.32687 -0.20147,-0.66 -0.0232,-0.299 0.98771,-3.124 0.44216,-0.497 0.16759,-0.1 0.082,0.02 0.44037,-1.12 -0.87539,-2.505 -0.36192,-0.811 -0.20147,-0.337\"},\"48455\":{\"name\":\"Trinity, TX\",\"path\":\"m 546.00566,470.57414 -6.95854,7.483 -0.73018,-0.74225 -0.0121,-1.08891 -1.44826,0.14916 -0.334,0.892 -1.29026,-0.10438 -0.84562,-4.43962 9.29588,-7.65 2.32308,5.501\"},\"48373\":{\"name\":\"Polk, TX\",\"path\":\"m 551.55752,472.51214 -1.88093,1.117 2.38726,11.114 0.17833,0.81199 -3.876,0.088 -2.31238,-0.05 -0.15868,-0.32875 0.4356,-0.92302 -2.38719,-0.79922 -1.59483,-0.15542 0.42996,-0.58271 -0.38716,-1.27604 -1.47665,-0.13701 -0.43669,-2.3903 -1.43104,-0.94353 6.95854,-7.483 2.23216,0.935 1.71333,0.36 1.60637,0.643\"},\"48351\":{\"name\":\"Newton, TX\",\"path\":\"m 570.4185,469.44214 0.91461,-0.24 0.0731,7.288 -0.35479,1.542 -2.8205,5.311 -0.22464,0.804 0,0 0.0571,0.06 0.55447,0.669 0.27991,1.433 -0.007,0.12 -0.0802,0.199 -0.75772,0.637 -0.0214,0.02 0.60796,3.61 -3.67806,0.127 0.29773,-9.761 0.0481,-6.447 -0.99841,-4.821 6.1099,-0.562\"},\"48241\":{\"name\":\"Jasper, TX\",\"path\":\"m 561.80189,470.59914 2.50671,-0.595 0.99841,4.821 -0.0481,6.447 -0.29773,9.761 -4.28959,0.114 0.20681,-0.291 0.36193,-2.241 -0.20147,-0.21 -0.0642,-0.02 -0.36014,-0.822 -0.0571,-0.321 0.21751,-0.892 0.17472,-0.531 0.4992,-1.219 -0.29774,-0.484 -0.20681,-0.675 0.0535,-0.177 0.44393,-0.854 -0.0963,-0.922 -1.40491,-2.788 -0.17828,-0.152 -0.44394,-0.06 -0.11945,-0.02 -0.0463,-0.06 -1.32646,-3.867 0.1355,-0.77 -0.0713,-0.184 -0.23355,-0.242 -0.9164,-0.353 -1.16599,0.03 -1.95938,0.06 6.42903,-1.631 1.75791,-0.844\"},\"48457\":{\"name\":\"Tyler, TX\",\"path\":\"m 553.61495,473.07414 1.95938,-0.06 1.16599,-0.03 0.9164,0.353 0.23355,0.242 0.0713,0.184 -0.1355,0.77 1.32646,3.867 0.0463,0.06 0.11945,0.02 0.44394,0.07 0.17828,0.151 1.40491,2.788 0.0963,0.922 -0.44393,0.854 -0.0535,0.177 0.20681,0.675 0.29774,0.484 -9.38503,0.144 -2.38726,-11.114 1.88093,-1.116 2.05743,0.561\"},\"48005\":{\"name\":\"Angelina, TX\",\"path\":\"m 545.45119,461.83314 0.83438,0.924 3.63171,0.932 0.87717,-0.144 0.7702,0.322 1.03763,0.544 0.2496,0.268 3.26087,3.952 3.93123,2.812 -6.42903,1.631 -2.05743,-0.562 -1.60637,-0.643 -1.71333,-0.36 -2.23216,-0.935 -2.32308,-5.501 -0.90035,-0.894 2.66896,-2.346\"},\"48403\":{\"name\":\"Sabine, TX\",\"path\":\"m 565.57979,460.11114 2.1127,2.219 1.8007,2.612 0.58656,2.557 0.1355,0.754 0.20325,1.189 -6.1099,0.562 -2.50671,0.595 -0.16759,-0.538 -0.0713,-3.206 0.016,-2.595 0.83438,-0.899 0.32805,-0.419 -0.0784,-2.369 2.91677,-0.462\"},\"48405\":{\"name\":\"San Augustine, TX\",\"path\":\"m 562.66302,460.57314 0.0784,2.369 -0.32805,0.419 -0.83438,0.899 -0.016,2.595 0.0713,3.206 0.16759,0.538 -1.75791,0.844 -3.93123,-2.812 0.10519,-2.747 0.14441,-5.249 -1.36567,-1.526 -0.46533,-0.323 6.03501,0.644 2.09666,1.143\"},\"48419\":{\"name\":\"Shelby, TX\",\"path\":\"m 552.21718,451.44214 9.64176,-0.312 2.74027,3.062 0.98058,5.919 -2.91677,0.462 -2.09666,-1.143 -6.03501,-0.644 -1.11786,-4.379 -1.19631,-2.965\"},\"48347\":{\"name\":\"Nacogdoches, TX\",\"path\":\"m 543.97319,454.51314 9.4403,-0.106 1.11786,4.379 0.46533,0.323 1.36567,1.526 -0.14441,5.249 -0.10519,2.747 -3.26087,-3.952 -0.2496,-0.268 -1.03763,-0.544 -0.7702,-0.322 -0.87717,0.144 -3.63171,-0.932 -0.83438,-0.924 -1.06259,-1.046 -0.0945,-0.152 -0.48138,-1.309 -0.35657,-1.326 -0.2086,-2.059 0.72563,-1.428\"},\"48073\":{\"name\":\"Cherokee, TX\",\"path\":\"m 533.74308,447.91814 9.21744,-0.132 -0.10349,6.7514 1.11616,-0.0244 -0.72563,1.428 0.2086,2.059 0.35657,1.326 0.48138,1.309 0.0945,0.152 1.06259,1.046 -2.66896,2.346 -2.12161,-1.31 0.35553,-0.89765 -0.86444,-0.75041 -0.61204,-0.75041 -0.82238,0.40647 -1.25336,-0.483 0.27278,-0.385 -0.0571,-0.226 -0.27991,-0.892 -0.27278,-0.57 -0.44393,-0.539 -0.26565,-0.06 -1.3639,-1.244 -0.72384,-2.605 -0.31379,-1.66 0.3441,-3.127 -0.61688,-1.171\"},\"48365\":{\"name\":\"Panola, TX\",\"path\":\"m 561.1351,441.64014 0.0981,4.523 0.62579,4.967 -9.64176,0.312 -1.71869,0.04 -0.066,-2.458 0.37618,-2.846 0.42611,-1.062 0.61866,-1.091 0.58121,-1.407 0.0143,-0.875 0.55448,0.49 2.09665,0.9 0.16224,0.03 5.87278,-1.525\"},\"48401\":{\"name\":\"Rusk, TX\",\"path\":\"m 550.75344,441.75814 1.69551,-0.01 -0.0143,0.875 -0.58121,1.407 -0.61866,1.091 -0.42611,1.062 -0.37618,2.846 0.066,2.458 1.71869,-0.04 1.19631,2.965 -9.4403,0.106 -1.11616,0.0244 0.10349,-6.7514 -0.0731,-5.335 3.41598,-0.07 3.2056,-0.03 0.95071,0.16302 0.29373,-0.75102\"},\"48183\":{\"name\":\"Gregg, TX\",\"path\":\"m 542.81433,438.57714 0.31378,-0.03 2.90964,-1.246 1.14817,-1.597 0.14441,-0.06 0.90749,0.104 0.057,0.112 0.0713,4.598 0.025,0.69 1.14995,0.555 1.0198,0.133 0.19255,-0.07 -0.29373,0.75102 -0.95071,-0.16302 -3.2056,0.03 -3.41598,0.07 -0.0731,-3.874\"},\"48423\":{\"name\":\"Smith, TX\",\"path\":\"m 531.07413,435.21314 1.74543,1.564 0.55269,0.242 5.55185,1.391 0.13907,-0.02 0.36905,-0.18 0.1765,-0.359 3.20561,0.722 0.0731,3.875 0.0731,5.334 -9.21744,0.132 0.17651,-5.064 -0.43502,-0.331 -2.37657,-2.532 -0.0339,-4.778\"},\"48499\":{\"name\":\"Wood, TX\",\"path\":\"m 539.53741,427.62714 0.0232,2.562 0.0481,7.666 -0.1765,0.359 -0.36905,0.18 -0.13907,0.02 -5.55185,-1.391 -0.55269,-0.242 -1.74543,-1.564 -0.78803,-0.765 -0.5937,-5.537 6.84622,-0.09 2.58794,0.10808 0.41085,-1.30408\"},\"48203\":{\"name\":\"Harrison, TX\",\"path\":\"m 548.24673,432.61514 3.79216,2.233 2.36409,-0.02 0.6347,-0.323 2.29099,-0.296 1.35498,-0.112 0.98236,0.12 1.31754,0.49 0.15155,6.935 -5.87278,1.525 -0.16224,-0.03 -2.09665,-0.9 -0.55448,-0.49 -1.69551,0.01 -0.19255,0.07 -1.0198,-0.133 -1.14995,-0.555 -0.025,-0.69 -0.0713,-4.598 -0.0481,-3.238\"},\"48459\":{\"name\":\"Upshur, TX\",\"path\":\"m 539.56059,430.18914 8.30817,-0.146 0.28169,0.586 0.0963,1.986 0.0481,3.238 -0.057,-0.112 -0.90749,-0.104 -0.14441,0.06 -1.14817,1.597 -2.90964,1.246 -0.31378,0.03 -3.20561,-0.722 -0.0481,-7.666\"},\"48063\":{\"name\":\"Camp, TX\",\"path\":\"m 539.53741,427.62714 0.49742,-0.492 1.63846,-0.893 0.4261,-0.08 0.34588,0 1.13212,0.02 0.25852,0.09 1.0198,1.262 1.07685,0.738 1.9362,1.783 -8.30817,0.146 -0.0232,-2.562\"},\"48315\":{\"name\":\"Marion, TX\",\"path\":\"m 549.14708,430.60814 11.75624,-0.243 0.0802,4.34 -1.31754,-0.49 -0.98236,-0.12 -1.35498,0.112 -2.29099,0.296 -0.6347,0.323 -2.36409,0.02 -3.79216,-2.233 -0.0963,-1.986 0.99663,-0.02\"},\"48067\":{\"name\":\"Cass, TX\",\"path\":\"m 549.05794,421.62014 0.0481,0.222 0.16046,0.128 0.64362,0.126 1.31372,-0.16235 0.84357,-0.46894 1.53295,-0.12426 0.59562,0.75683 2.92228,0.0387 0.041,-0.07 -0.066,-0.208 -0.0553,-0.482 0.30665,-0.545 0.60083,-0.209 0.47425,-0.107 1.7276,0.277 0.40114,0.207 0.16224,0.361 0.12124,5.811 0.0713,3.189 -11.75624,0.243 -0.0891,-8.988\"},\"48343\":{\"name\":\"Morris, TX\",\"path\":\"m 546.02706,419.46914 1.19987,0.788 1.83101,1.363 0.0891,8.988 -0.99663,0.02 -0.28169,-0.586 -1.9362,-1.783 0.0945,-8.791\"},\"48449\":{\"name\":\"Titus, TX\",\"path\":\"m 546.02706,419.46914 -0.0945,8.791 -1.07685,-0.738 -1.0198,-1.263 -0.25852,-0.09 -1.13212,-0.02 -0.34588,0 -0.4261,0.08 -1.63846,0.893 -0.066,-8.194 6.0582,0.528\"},\"48159\":{\"name\":\"Franklin, TX\",\"path\":\"m 539.96886,418.94114 0.066,8.194 -0.49742,0.492 -0.41085,1.30408 -2.58794,-0.10808 -0.0642,-9.563 0.0392,-0.03 1.3023,0.26829 2.1529,-0.55729\"},\"48223\":{\"name\":\"Hopkins, TX\",\"path\":\"m 525.90737,422.94214 1.57606,-0.935 0.85934,-1.003 1.6398,-0.0548 0.73855,-1.03118 0.4582,-0.193 0.98057,-0.03 4.31455,-0.433 0.0642,9.563 -6.84622,0.09 -0.0184,-0.36721 -3.7737,-0.0668 0.007,-5.535\"},\"48119\":{\"name\":\"Delta, TX\",\"path\":\"m 525.98047,417.34914 1.48691,-0.692 0.35301,-0.1 2.65113,0.192 0.37083,0.06 2.09666,0.658 0.37084,0.161 1.93619,1.317 1.2284,0.225 0.0392,0.06 -0.0392,0.03 -4.31455,0.433 -0.98057,0.03 -0.4582,0.193 -0.73855,1.03118 -1.6398,0.0548 -0.85934,1.003 -1.57606,0.935 0.0499,-4.395 0.0232,-1.198\"},\"48231\":{\"name\":\"Hunt, TX\",\"path\":\"m 525.95729,418.54714 -0.0499,4.395 -0.007,5.535 -1.35756,-0.005 -0.86938,1.79786 0.0694,0.70884 0.78292,0.78395 -2.73849,-0.03 -4.24502,-0.08 0.0107,-3.229 0.0624,-8.549 8.34205,-1.324\"},\"48085\":{\"name\":\"Collin, TX\",\"path\":\"m 507.32095,418.57714 8.59165,0.232 -0.0499,1.3947 1.75258,-0.3327 -0.0624,8.549 -4.22005,-0.03 -6.30066,-0.167 0.28882,-9.644\"},\"48121\":{\"name\":\"Denton, TX\",\"path\":\"m 496.84302,417.87814 8.39019,0.426 2.08774,0.273 -0.28882,9.644 -3.59962,0.03 -7.03164,-0.216 0.44215,-10.157\"},\"48497\":{\"name\":\"Wise, TX\",\"path\":\"m 486.62896,417.62114 8.22973,0.152 1.98433,0.105 -0.44215,10.157 -2.79554,-0.137 -7.24736,-0.289 0.27099,-9.988\"},\"48237\":{\"name\":\"Jack, TX\",\"path\":\"m 477.03712,416.64114 8.44367,0.192 -0.0338,0.76549 1.18197,0.0225 -0.27099,9.988 -2.57982,-0.103 -7.11186,-0.273 0.34587,-8.959 0.025,-1.633\"},\"48503\":{\"name\":\"Young, TX\",\"path\":\"m 466.82306,417.95114 10.1891,0.323 -0.34587,8.959 -0.0586,1.30313 -2.83496,-0.14813 -7.20636,-0.264 0.25673,-10.173\"},\"48447\":{\"name\":\"Throckmorton, TX\",\"path\":\"m 456.92278,417.58214 9.90028,0.369 -0.25673,10.173 -2.78841,-0.1 -7.20101,-0.248 0.34587,-10.198\"},\"48207\":{\"name\":\"Haskell, TX\",\"path\":\"m 447.02251,417.23614 9.90027,0.346 -0.34587,10.198 -2.70818,-0.1 -7.23132,-0.362 0.3851,-10.084\"},\"48433\":{\"name\":\"Stonewall, TX\",\"path\":\"m 436.97069,416.76914 10.05182,0.467 -0.3851,10.084 -2.98096,-0.121 -7.1921,-0.401 0.50634,-10.029\"},\"48125\":{\"name\":\"Dickens, TX\",\"path\":\"m 427.51256,406.22014 9.91632,0.449 -0.45819,10.1 -9.94842,-0.483 0.49029,-10.066\"},\"48345\":{\"name\":\"Motley, TX\",\"path\":\"m 428.09021,395.16314 1.8007,0.09 8.09245,0.374 -0.55448,11.045 -9.91632,-0.449 0.57765,-11.057\"},\"48191\":{\"name\":\"Hall, TX\",\"path\":\"m 438.01545,385.58314 2.34625,0.12 -0.50633,10.021 -1.87201,-0.1 -8.09245,-0.374 0.54734,-10.052 7.5772,0.385\"},\"48129\":{\"name\":\"Donley, TX\",\"path\":\"m 438.52891,375.52314 -0.51346,10.06 -7.5772,-0.385 -2.73314,-0.146 0.61866,-10.018 10.20514,0.489\"},\"48179\":{\"name\":\"Gray, TX\",\"path\":\"m 428.86933,364.93214 10.11778,0.507 -0.4582,10.084 -10.20514,-0.489 0.54556,-10.102\"},\"48393\":{\"name\":\"Roberts, TX\",\"path\":\"m 429.41667,354.84714 0,-0.06 9.9395,0.53 0.12123,0 -0.49029,10.111 -10.11778,-0.507 0.009,-0.144 0.53843,-9.941\"},\"48357\":{\"name\":\"Ochiltree, TX\",\"path\":\"m 432.37445,344.69914 7.48092,0.376 -0.4992,10.246 -9.9395,-0.53 0.55447,-10.212 2.40331,0.12\"},\"48295\":{\"name\":\"Lipscomb, TX\",\"path\":\"m 439.85537,345.07514 9.94841,0.444 -0.37796,10.278 -9.94842,-0.469 -0.12123,0 0.4992,-10.246\"},\"48211\":{\"name\":\"Hemphill, TX\",\"path\":\"m 449.42582,355.79714 -0.16938,4.04 -0.24782,6.06 -10.02151,-0.458 0.49029,-10.111 9.94842,0.469\"},\"48483\":{\"name\":\"Wheeler, TX\",\"path\":\"m 438.98711,365.43914 10.02151,0.458 -0.4261,10.093 -10.05361,-0.467 0.4582,-10.084\"},\"48087\":{\"name\":\"Collingsworth, TX\",\"path\":\"m 438.52891,375.52314 10.05361,0.467 -0.15333,3.519 -0.27278,6.565 -7.79471,-0.371 -2.34625,-0.12 0.51346,-10.06\"},\"48075\":{\"name\":\"Childress, TX\",\"path\":\"m 440.3617,385.70314 7.79471,0.371 -0.12836,4.275 -0.24961,5.769 -7.92307,-0.394 0.50633,-10.021\"},\"48101\":{\"name\":\"Cottle, TX\",\"path\":\"m 437.98336,395.62414 1.87201,0.1 7.92307,0.394 -0.0802,2.018 -0.21037,-0.411 -0.52952,0.05 -0.18542,0.202 -0.41719,9.085 -8.92683,-0.392 0.55448,-11.045\"},\"48269\":{\"name\":\"King, TX\",\"path\":\"m 437.42888,406.66914 8.92683,0.393 0.9895,0.05 -0.3227,10.125 -10.05182,-0.467 0.45819,-10.1\"},\"48275\":{\"name\":\"Knox, TX\",\"path\":\"m 457.16347,409.85914 -0.24069,7.723 -9.90027,-0.346 0.3227,-10.125 3.05227,0.129 2.50926,0.92567 0.30845,-0.47099 2.66283,0.68632 0.96453,0.683 0.27278,0.497 0.0481,0.298\"},\"48155\":{\"name\":\"Foard, TX\",\"path\":\"m 447.69821,398.13614 3.43916,2.659 4.00849,0.788 0.87657,0.788 1.13391,-0.187 0.21573,-0.225 0.0731,-0.225 -0.21751,5.804 -0.0642,2.321 -0.0481,-0.298 -0.27278,-0.497 -0.96453,-0.683 -2.66283,-0.68632 -0.30845,0.47099 -2.50926,-0.92567 -3.05227,-0.129 -0.9895,-0.05 0.41719,-9.086 0.18542,-0.201 0.52952,-0.05 0.21037,0.412\"},\"48197\":{\"name\":\"Hardeman, TX\",\"path\":\"m 450.78258,391.72214 0.98058,1.271 0.47424,0.561 1.31754,1.254 0.57943,0.137 0.16046,0 0.73098,0 0.73276,-0.925 0.10341,-0.04 0.20859,0.03 0.90035,0.105 0.28883,0.121 0.46711,0.273 -0.2817,7.231 -0.0731,0.225 -0.21573,0.225 -1.13391,0.187 -0.87657,-0.788 -4.00849,-0.788 -3.43916,-2.658 0.0802,-2.019 0.24961,-5.769 2.75453,1.373\"},\"48009\":{\"name\":\"Archer, TX\",\"path\":\"m 467.15289,407.87514 10.05895,0.24 -0.17472,8.526 -0.025,1.633 -10.1891,-0.323 0.32983,-10.076\"},\"48023\":{\"name\":\"Baylor, TX\",\"path\":\"m 467.15289,407.87514 -0.32983,10.076 -9.90028,-0.369 0.24069,-7.723 0.0642,-2.321 9.92524,0.337\"},\"48487\":{\"name\":\"Wilbarger, TX\",\"path\":\"m 462.64401,396.10014 -0.0232,0.532 -0.0161,0.499 0.32805,1.783 0,0 0.009,0.01 0.24069,0.07 0.3851,0.119 0.7078,0.161 0.35301,-0.02 0.76307,-0.01 1.74364,0.138 0.025,0 0.26565,0.133 -0.27278,8.351 -9.92524,-0.337 0.21751,-5.803 0.2817,-7.231 0.61865,0.586 0.63471,0.06 0.14441,-0.06 0.016,0 0.025,-0.04 0.007,-0.02 0.8112,-1.454 0.82725,0.45 0.94136,0.506 0.89143,1.551 0,0.02\"},\"48485\":{\"name\":\"Wichita, TX\",\"path\":\"m 473.87788,400.51314 0.19255,0.01 0.41897,0.277 0.43324,0.369 0.89856,1.446 0.54021,0.194 0.007,0 0.016,-0.02 1.01267,-0.909 -0.18542,6.22 -10.05895,-0.241 0.27278,-8.351 1.75078,1.047 1.74365,0.426 1.23731,0.05 1.72047,-0.53\"},\"48077\":{\"name\":\"Clay, TX\",\"path\":\"m 483.34313,403.69514 0.32983,0.66 0.0481,0.05 0.0321,0 0.80408,0.241 0.41006,0 0.0232,0 0.65967,-0.161 0.7078,0.28 0.007,0 -0.16938,1.229 -0.49028,1.061 -0.22465,9.771 -8.44367,-0.192 0.17472,-8.526 0.18542,-6.22 0.76307,-0.965 0.36905,-0.208 0.72385,0.162 2.94173,0.923 1.14817,1.888\"},\"48337\":{\"name\":\"Montague, TX\",\"path\":\"m 495.09225,406.63714 -0.23356,11.136 -8.22973,-0.152 -1.18197,-0.0225 0.0338,-0.76549 0.22465,-9.771 0.21037,0.194 1.67768,0.765 0.22643,0.02 0.59369,-0.176 0.94849,-0.747 0.99663,-1.036 0.65074,-0.82 1.9362,1.292 0.68284,0.476 1.46374,-0.394\"},\"48097\":{\"name\":\"Cooke, TX\",\"path\":\"m 505.33662,406.00114 -0.10341,12.303 -8.39019,-0.426 -1.98433,-0.105 0.23356,-11.136 0.37618,1.719 0.0499,0.119 0.0161,0.04 0,0 0.11232,0.136 0.16759,0.112 1.10671,0.30417 2.68027,-2.38013 1.33812,0.65128 -0.71938,1.96862 1.13187,1.87606 0.26565,0.09 0.30487,0.04 0.27278,-0.09 0.19255,-0.153 0.0891,-0.119 2.85973,-4.96\"},\"48147\":{\"name\":\"Fannin, TX\",\"path\":\"m 526.2372,408.58914 -0.25673,8.76 -0.0232,1.198 -8.34205,1.324 -1.75258,0.3327 0.0499,-1.3947 0.12837,-7.617 0.18363,0.252 2.83655,-0.701 0.39401,-0.105 0.34588,-0.148 0.0232,-0.03 0.17828,-0.185 0.0232,-0.03 0.009,-0.02 0.0481,-0.154 0.0553,-0.176 0.016,-0.06 0.009,-0.06 0.11945,-0.555 0.16046,-0.563 0.96454,-0.223 2.13766,-0.178 0.41006,-0.03 0.25851,-0.03 1.10003,0.217 0.92353,0.169\"},\"48181\":{\"name\":\"Grayson, TX\",\"path\":\"m 505.52203,405.89714 0.96454,1.983 0.312,0.349 0.19255,0.134 1.79357,0.549 0.92352,-0.155 0.0161,0 1.9041,-0.859 -0.0642,0.369 0.016,0.283 0.016,0.111 0.0161,0.06 1.95224,1.31 0.17651,0.122 0.025,0 0.97344,-0.186 0.22464,0.03 0.24961,0.08 0,0 0.82725,1.125 -0.12837,7.617 -8.59165,-0.232 -2.08774,-0.273 0.10341,-12.303 0.18541,-0.104\"},\"48277\":{\"name\":\"Lamar, TX\",\"path\":\"m 536.35499,407.83314 0.11945,11.338 -1.2284,-0.225 -1.93619,-1.317 -0.37084,-0.161 -2.09666,-0.658 -0.37083,-0.06 -2.65113,-0.192 -0.35301,0.1 -1.48691,0.692 0.25673,-8.76 1.63133,-0.611 0.007,0 1.5921,-0.829 1.39064,-0.722 0.61687,0.03 0.14441,0.06 0.20147,0.513 -0.005,0.154 -0.0571,0.162 0.005,0.118 0,0.02 0.0749,0.128 0.0713,0.06 1.88093,0.25 0.71315,0.06 1.28723,-0.06 0.009,0 0.55448,-0.07\"},\"48007\":{\"name\":\"Aransas, TX\",\"path\":\"m 497.54904,540.95014 0.3958,0.322 0.0642,0 1.82388,-0.884 2.57981,-1.945 0.12658,-0.346 -0.42432,-0.01 -0.44215,-0.06 -0.7809,-0.468 -0.45641,-0.611 -0.0321,-0.467 6.76599,-0.986 -0.16938,1.059 0.24069,0.387 0,0.128 -0.27278,0.594 -0.20146,0.153 -2.56199,1.73583 -0.57051,0 -0.90178,-0.0783 -0.46861,0.68944 -0.40714,2.05898 -1.79,2.715 -2.51741,-3.995 m 8.79311,-0.73 -0.4992,1.156 -3.96867,5.079 -0.10519,-0.291 4.57306,-5.944\"},\"48061\":{\"name\":\"Cameron, TX\",\"path\":\"m 484.51626,580.10714 6.9425,1.23 1.77465,-0.73318 0.8112,-1.007 0.0981,0.05 0.0849,1.17343 0.47142,1.81195 -0.0267,1.7054 0.92436,1.8786 1.25813,1.20681 0.92783,0.88999 0.0499,0.06 -0.24247,0.786 -2.51223,0.065 -1.20446,0.98098 -0.0826,1.23103 -1.84884,-0.565 -0.2906,-0.177 -0.28705,-0.223 -1.19095,-0.941 -1.75078,-1.952 -0.0731,-0.259 -2.37835,-0.415 -1.58319,-0.275 0.12837,-6.518 m 12.94542,-1.229 0.35301,0 0.57052,2.395 0.17828,0.9 0.24069,1.696 0.36192,2.861 -0.0963,-0.02 -0.0571,0 -0.16759,-0.233 -0.18542,-1.549 0.0232,-0.708 -0.0963,-0.845 -0.20146,-1.3 -0.40115,-1.872 -0.24069,-0.731 -0.28169,-0.588\"},\"49037\":{\"name\":\"San Juan, UT\",\"path\":\"m 290.67551,284.70714 -0.78803,8.01 -0.86112,6.237 -1.27654,9.094 -1.57427,11.154 -17.25283,-2.452 -5.95479,-0.9 -2.93995,-0.58 -4.60516,-0.697 -11.93274,-1.872 0.55447,0.05 1.32645,0.03 0.46283,-1.18938 0.92121,0.79695 0.28457,-0.50181 0.3355,0.21124 0.97214,-1.11298 0.38643,0.44042 0.53922,-0.22168 2.24544,0.21124 0.60974,-0.209 1.27832,-1.109 0.7543,-1.72505 0.72884,-0.9102 0.14312,-0.40083 -0.61997,-0.3294 0.32228,-0.38033 1.31543,0.81656 0.88252,-0.4058 0.30665,-0.484 -0.3131,-0.69519 0.29808,-0.23681 0.47635,0.17064 0.29808,-0.66972 -0.49136,-0.10948 -0.3584,-0.49212 0.71117,-0.46666 1.39874,0.16999 -0.53666,-0.46665 0.24715,-0.466 0.24715,-0.466 1.12823,-0.64178 0.65233,-1.14412 1.43661,-0.50596 0.64344,-1.19338 0.70521,-1.197 -0.52499,-0.73821 0.90273,-0.0243 0.79697,-1.6107 2.01317,0.26649 1.50545,-0.12066 0.0777,-1.12534 1.58319,-1.246 0.97764,0.34221 1.40071,-2.37021 1.63132,-0.756 0.52239,-0.547 0.18363,-1.155 -0.0232,-0.972 -0.55361,-1.71539 -0.77654,-1.19228 0.42975,-2.21933 -0.32804,-0.434 17.07454,2.452\"},\"49017\":{\"name\":\"Garfield, UT\",\"path\":\"m 228.92225,283.30014 0.62757,0.05 6.77312,1.188 0.4261,0.128 0.86826,0.178 0.63292,0.1 1.93798,0.212 7.58433,1.284 5.06335,0.773 21.31064,3.284 -1.63132,0.756 -1.40071,2.37021 -0.97764,-0.34221 -1.58319,1.246 -0.0777,1.12534 -1.50545,0.12066 -2.01317,-0.26649 -0.79697,1.6107 -0.90273,0.0243 0.52499,0.73821 -0.70521,1.197 -0.64344,1.19338 -1.43661,0.50596 -0.65233,1.14412 -1.12823,0.64178 -21.34273,-3.43 -0.0892,0.06 -0.15332,0 -9.23875,-1.60737 0.0342,-0.16953 -5.56293,-0.9561 0.65075,-4.248 0.30487,-1.764 1.95011,0.38552 0.32483,-1.8857 1.41382,0.16418 0.0776,-0.2959 0.49708,0.0399 0.33039,-1.62703 -0.37072,-0.10201 0.87951,-3.81099\"},\"49029\":{\"name\":\"Morgan, UT\",\"path\":\"m 259.6821,212.98014 1.52614,0.521 0.30977,0.86825 0.30977,0.86825 -0.34056,1.07518 0.96011,0.66132 -0.10519,0.419 -0.16937,0.321 -0.2086,0.265 -0.44928,0.392 -1.88093,0.312 -0.42685,0.92163 -2.42574,0.0594 -0.32983,0.2 -0.29774,0.276 -0.78624,0.777 -0.0339,0.147 0.0178,0.483 0.0553,0.119 0.0963,0.08 0.73098,0.933 0.50812,1.285 0.0553,0.346 -0.93958,1.414 -0.2496,0.112 -0.28882,0.06 -0.15333,-0.02 -1.34963,-0.657 -1.42986,-1.698 -1.1368,-2.16117 0.58773,0.0337 -0.74486,-2.0044 0.35257,-2.55311 -0.19968,-0.797 0.11232,-0.359 0.37619,-0.167 0.97344,-0.284 0.41006,0.05 0.4582,0.145 0.11945,0.33 0.29774,0.401 0.51347,0.226 0.4992,-0.04 0.9964,-0.88528 1.8241,0.35628 0.5937,-0.46 0.53843,-0.553 0.16937,-0.339 -0.0627,-0.74928 0.61719,-0.71972\"},\"49011\":{\"name\":\"Davis, UT\",\"path\":\"m 251.44524,216.82814 -0.35257,2.55311 0.74486,2.0044 -0.58773,-0.0337 1.1368,2.16117 -0.2817,0.13 -0.47424,0.136 -1.63133,0.257 -0.78802,-0.136 -0.42433,-0.08 -0.45539,-0.89392 0.46969,-1.02608 0.0731,-0.403 -0.82012,-0.137 -2.61012,1.248 -2.34626,1.388 -2.70817,-7.6 4.36268,-0.699 1.0929,-0.139 2.67608,0.465 2.92391,0.805\"},\"49057\":{\"name\":\"Weber, UT\",\"path\":\"m 258.38774,211.32414 0.29075,1.06986 1.00361,0.58614 -0.61719,0.71972 0.0627,0.74928 -0.16937,0.339 -0.53843,0.553 -0.5937,0.46 -1.8241,-0.35628 -0.9964,0.88528 -0.4992,0.04 -0.51347,-0.226 -0.29774,-0.401 -0.11945,-0.33 -0.4582,-0.145 -0.41006,-0.05 -0.97344,0.284 -0.37619,0.167 -0.11232,0.359 0.19968,0.797 -2.92391,-0.805 -2.67608,-0.465 -1.0929,0.139 -4.36268,0.699 5.3593,-5.174 3.54256,0.608 1.23018,-0.456 -0.0599,-1.21475 1.59496,0.0328 0.0963,0.522 0.0891,0.159 1.65451,0.964 0.28169,0.04 0.62804,-0.92371 3.58132,0.37471\"},\"49033\":{\"name\":\"Rich, UT\",\"path\":\"m 268.3522,199.37314 -2.73136,17.143 -2.14198,1.37251 -1.96397,0.48249 0.44928,-0.392 0.2086,-0.265 0.16937,-0.321 0.10519,-0.419 -0.96011,-0.66132 0.34056,-1.07518 -0.30977,-0.86825 -0.30977,-0.86825 -1.52614,-0.521 -1.00361,-0.58614 -0.29075,-1.06986 1.8007,-2.762 0.50879,-2.1651 -0.0634,-1.56504 -0.73244,-3.54624 0.14973,-0.85848 0.50152,-0.0376 0.0617,-2.2215 7.73766,1.205\"},\"49005\":{\"name\":\"Cache, UT\",\"path\":\"m 249.58036,196.38514 0.91818,0.146 10.116,1.637 -0.0617,2.2215 -0.50152,0.0376 -0.14973,0.85848 0.73244,3.54624 0.0634,1.56504 -0.50879,2.1651 -1.8007,2.762 -3.58132,-0.37471 -0.62804,0.92371 -0.28169,-0.04 -1.65451,-0.964 -0.0891,-0.159 -0.0963,-0.522 -0.6465,-0.85002 0.4889,0.017 0.30312,-0.40618 -0.4607,-0.42682 0.0491,-0.775 -0.24473,-0.26831 -0.0919,-0.33869 -0.96568,0.3774 -0.0108,-3.12981 -0.46549,-0.92637 0.89475,-1.48922 0.20147,-0.915 -0.16937,-1.328 -0.40115,-0.986 -0.51525,-0.676 -0.44215,-1.681\"},\"49003\":{\"name\":\"Box Elder, UT\",\"path\":\"m 218.13767,190.73014 1.11786,0.282 1.3425,0.32 0.19968,0.04 1.42986,0.249 0.53129,0.09 5.58395,0.95 0.49029,0.08 6.7339,1.139 4.89398,0.828 4.33059,0.748 3.55148,0.614 0.009,0 1.2284,0.317 0.44215,1.681 0.51525,0.676 0.40115,0.986 0.16937,1.328 -0.20147,0.915 -0.89475,1.48922 0.46549,0.92637 0.0108,3.12981 0.96568,-0.3774 0.0919,0.33869 0.24473,0.26831 -0.0491,0.775 0.4607,0.42682 -0.30312,0.40618 -0.48892,-0.017 0.64649,0.85002 -1.59496,-0.0328 0.0599,1.21475 -1.23018,0.456 -3.54256,-0.608 -5.3593,5.174 -5.50551,0.826 -21.09313,-3.903 4.34664,-22.589\"},\"49009\":{\"name\":\"Daggett, UT\",\"path\":\"m 298.784,227.33014 -1.07685,7.964 -1.28723,-0.185 0.0806,-0.61314 -0.63506,-0.16586 0.21037,-1.501 0.0784,-0.847 -0.71576,-0.13354 0.26826,-1.62446 -3.28048,-0.451 -0.28546,1.70843 -1.62938,0.81474 -0.54101,-0.21399 0.2641,-1.27255 -0.13846,-0.60163 -1.3737,0.1345 -1.30559,0.20889 -1.30558,-0.29803 -0.38969,0.47741 -1.12025,0.0152 -0.58834,0.02 -1.7276,-1.324 -0.37619,-0.154 0.61687,-4.202 0.0178,0 2.46571,0.353 2.3944,0.337 0.66857,0.1 8.01757,1.07 2.69391,0.392\"},\"49035\":{\"name\":\"Salt Lake, UT\",\"path\":\"m 243.09784,223.99614 2.34626,-1.388 2.61012,-1.248 0.82012,0.137 -0.0731,0.403 -0.46969,1.02608 0.45539,0.89392 0.42433,0.08 0.78802,0.136 1.63133,-0.257 0.47424,-0.136 0.2817,-0.13 1.42986,1.698 -0.24877,1.13403 0.64189,1.15947 -0.4269,1.1213 0.82002,1.1722 -0.81833,0.62 -1.73652,0.787 -0.70201,0.0234 -1.03741,0.0607 -0.6461,0.58242 -1.16786,0.3961 -0.23654,-0.31629 -0.83283,0.41043 0.0802,0.42907 -1.0022,0.23717 -0.7338,-0.47917 -0.24931,-0.77732 -1.39306,0.30876 -0.69215,-0.81827 -0.29565,-1.10287 0.39156,-2.1601 0.0215,-2.23939 -0.45423,-1.76364\"},\"49043\":{\"name\":\"Summit UT\",\"path\":\"m 265.62084,216.51614 -0.93244,5.801 9.29588,1.535 7.73053,1.109 0.8112,0.121 -0.61687,4.202 -2.86151,-0.403 -3.11086,-0.53889 -0.27066,0.57014 -3.27316,0.1103 -1.40674,-0.1602 -0.74816,0.37474 -1.07276,-0.24739 -1.77604,0.59114 -1.20801,-0.49084 -0.1753,0.933 -0.81751,0.31821 -0.4929,1.18379 -0.26386,0.225 -0.77912,0.137 -0.65298,0.0483 -0.59887,-0.43864 -0.76117,0.1294 -0.59888,0.45399 -1.31933,-0.747 -1.77573,-1.471 -0.5649,-1.27645 -0.67087,-0.0217 -0.52832,0.64817 -0.67181,0.88298 -0.90699,-0.29295 -0.82002,-1.1722 0.4269,-1.1213 -0.64189,-1.15947 0.24877,-1.13403 1.34963,0.657 0.15333,0.02 0.28882,-0.06 0.2496,-0.112 0.93958,-1.414 -0.0553,-0.346 -0.50812,-1.285 -0.73098,-0.933 -0.0963,-0.08 -0.0553,-0.119 -0.0178,-0.483 0.0339,-0.147 0.78624,-0.777 0.29774,-0.276 0.32983,-0.2 2.42574,-0.0594 0.42685,-0.92163 1.88093,-0.312 1.96397,-0.48249 2.14198,-1.37251\"},\"49051\":{\"name\":\"Wasatch, UT\",\"path\":\"m 254.6027,229.79814 0.90699,0.29295 0.67181,-0.88298 0.52832,-0.64817 0.67087,0.0217 0.5649,1.27645 1.77573,1.471 1.31933,0.747 0.59888,-0.45399 0.76117,-0.1294 0.59887,0.43864 0.65298,-0.0482 0.77912,-0.137 0.26386,-0.225 0.49291,-1.18379 0.8175,-0.31821 -0.91639,5.649 -1.06794,8.006 -0.65967,4.191 -3.31079,-0.537 0.17272,-0.94744 -0.84619,-0.25458 0.11967,-0.34633 -0.71682,-0.88267 -0.39076,-1.11362 -0.49945,-0.0404 -0.11232,-0.241 -0.025,-0.192 0.73097,-1.567 -0.61791,-2.19713 0.30591,-0.56687 -0.19433,-0.417 -0.41719,-0.683 -0.0356,-0.03 -0.0357,-0.03 -2.57254,-0.52733 0.25324,-0.50016 -0.35519,-0.83871 -1.22465,-0.3768 -0.34409,-1.743 -0.5169,-0.38789 0.13529,-0.36926 0.49393,-0.17785 0.42611,-2.487 0.81833,-0.62\"},\"49049\":{\"name\":\"Utah, UT\",\"path\":\"m 253.78437,230.41814 -0.42611,2.487 -0.49393,0.17785 -0.13529,0.36926 0.5169,0.38789 0.34409,1.743 1.22465,0.3768 0.35519,0.83871 -0.25324,0.50016 2.57254,0.52733 0.0356,0.03 0.0357,0.03 0.41719,0.683 0.19433,0.417 -0.30591,0.56687 0.61791,2.19713 -0.73097,1.567 0.025,0.192 0.11232,0.241 0.49945,0.0404 0.39076,1.11362 0.71682,0.88267 -0.11967,0.34633 0.84619,0.25458 -0.17272,0.94744 3.31079,0.537 0.52292,0.0953 -0.25014,1.97271 -6.74994,-1.08 -7.03176,-1.1544 -2.03441,-0.32888 0.62071,-0.79772 0.0178,-0.413 -0.72379,-0.80842 0.12836,-0.74858 -0.39401,-0.353 -1.7276,0.854 -1.17313,1.364 -0.0481,0.275 -0.15154,0.183 -1.06259,0.387 -0.46533,0.08 -0.46711,-0.147 -0.19077,-0.103 0.49742,-1.59 0.15333,-0.369 0.28882,-0.339 -0.86064,-1.19456 0.22416,-0.95944 -0.59903,-0.16293 -0.0339,-0.72807 -0.3227,-0.17 0.10261,-1.56338 0.42572,-0.13789 0.0879,-0.46975 -0.34649,-0.46976 0.17991,-0.59457 0.64059,-0.31816 -0.0833,-0.52876 -0.14914,-0.23919 0.0615,-0.39078 -0.41958,-1.00162 0.16033,-1.11304 0.42357,-0.59971 -0.23453,-1.25781 0.0155,-1.42893 0.33351,-0.20565 0.41897,-0.143 0.28883,0.09 0.69215,0.81827 1.39306,-0.30876 0.24931,0.77732 0.7338,0.47917 1.0022,-0.23717 -0.0802,-0.42907 0.83283,-0.41043 0.23654,0.31629 1.16786,-0.39609 0.6461,-0.58243 1.03741,-0.0607 0.70201,-0.0234 1.73652,-0.787\"},\"49045\":{\"name\":\"Tooele, UT\",\"path\":\"m 213.79103,213.31914 21.09313,3.903 5.50551,-0.826 2.70817,7.6 0.45427,1.76364 -0.0215,2.23939 -0.39151,2.1601 0.29569,1.10287 -0.28883,-0.09 -0.41897,0.143 -0.33351,0.20565 -0.0155,1.42893 0.23453,1.25781 -0.42357,0.59971 -0.16033,1.11304 0.41958,1.00162 -0.0615,0.39078 0.14914,0.23919 0.0833,0.52876 -0.64059,0.31816 -0.17991,0.59457 0.34649,0.46976 -0.0879,0.46975 -0.42572,0.13789 -0.10261,1.56338 -1.12863,0.62251 -0.53479,0.70949 -1.425,-0.12554 -0.13323,0.76254 -6.57344,-1.141 -22.80469,-4.274 0.93244,-4.799 3.92945,-20.07\"},\"49023\":{\"name\":\"Juab, UT\",\"path\":\"m 241.52892,241.63414 0.3227,0.17 0.0339,0.72807 0.59903,0.16293 -0.22416,0.95944 0.86064,1.19456 -0.28882,0.339 -0.15333,0.369 -0.49742,1.59 0.19077,0.103 0.46711,0.147 0.46533,-0.08 1.06259,-0.387 0.15154,-0.183 0.0481,-0.275 1.17313,-1.364 1.7276,-0.854 0.39401,0.353 -0.12836,0.74858 0.72379,0.80842 -0.0178,0.413 -0.62071,0.79772 2.03441,0.32888 -0.0505,0.39424 0.35272,0.0775 -0.0504,0.34624 0.69829,0.14466 -0.24979,0.96261 -0.78756,-0.20582 -1.48692,0.811 -0.87036,5.5231 -0.56769,-0.0963 -0.24854,1.61417 -3.05406,-0.485 -0.13274,0.48663 -0.76672,-0.11213 -0.11512,0.53946 -0.78433,-0.16496 -0.0891,0.504 -0.98057,-0.176 0.048,-0.20862 -2.13573,-0.49038 -0.009,-1.13561 0.28026,-1.50246 0.28025,-0.79805 -0.38766,-0.7224 0.49286,-0.44065 -0.0392,-0.224 -0.0969,-0.36883 -3.75116,-0.64 -1.18917,-0.178 -22.7726,-4.163 -4.05959,-0.546 1.59923,-8.26 22.80469,4.274 6.57344,1.141 0.13323,-0.76254 1.425,0.12554 0.53479,-0.70949 1.12863,-0.62251\"},\"49027\":{\"name\":\"Millard, UT\",\"path\":\"m 207.32991,246.44814 4.05959,0.546 22.7726,4.163 1.18917,0.178 3.75116,0.64 0.0969,0.36883 0.0392,0.224 -0.49286,0.44065 0.38766,0.7224 -0.28025,0.79805 -0.28026,1.50246 0.009,1.13561 2.13573,0.49038 -0.048,0.20862 0.98057,0.176 -1.0198,6.158 -0.53153,1.13145 -0.66276,-0.0788 -0.18948,0.77302 -1.20486,-0.0838 -0.1179,0.47883 -0.26371,-0.0461 -0.13248,0.65381 -0.29288,-0.0315 -0.16164,0.56631 -0.29288,-0.0607 -0.11201,0.36015 -0.62237,-0.0773 -0.49113,2.21204 0.1942,0.0394 -0.15575,0.84136 -0.46197,-0.019 -0.17034,0.36016 -0.50652,0.005 -0.1274,0.31151 -0.56484,0.18027 -0.84191,-0.0676 -0.004,-0.27873 -1.3104,-0.169 -0.36014,0.112 -0.42611,0.612 -0.83617,1.558 -5.05443,-0.898 0.007,-0.05 -2.04139,-0.411 -19.85582,-3.607 0.46711,-2.38 3.82426,-19.694\"},\"49041\":{\"name\":\"Sevier, UT\",\"path\":\"m 253.08548,266.57914 -0.27456,1.87 -1.06081,6.366 -0.1355,-0.03 -0.57943,3.712 -8.15485,-1.149 -5.20776,-0.884 0.0321,-0.192 -1.10894,-0.225 -6.91932,-1.148 0.30665,-1.416 0.83617,-1.558 0.42611,-0.612 0.36014,-0.112 1.3104,0.169 0.004,0.27873 0.84191,0.0676 0.56484,-0.18027 0.1274,-0.31151 0.50652,-0.005 0.17034,-0.36016 0.46197,0.019 0.15575,-0.84136 -0.1942,-0.0394 0.49113,-2.21204 0.62237,0.0773 0.11201,-0.36015 0.29288,0.0607 0.16164,-0.56631 0.29288,0.0315 0.13248,-0.65381 0.26371,0.0461 0.1179,-0.47883 1.20486,0.0838 0.18948,-0.77302 0.66276,0.0788 0.53153,-1.13145 2.70422,0.48 -0.0483,0.331 9.79922,1.568\"},\"49039\":{\"name\":\"Sanpete, UT\",\"path\":\"m 256.88478,248.85714 -1.27654,7.917 -0.94135,-0.151 -1.58141,9.956 -9.79922,-1.568 0.0483,-0.331 -2.70422,-0.48 1.0198,-6.158 0.0891,-0.504 0.78433,0.16496 0.11512,-0.53946 0.76672,0.11213 0.13274,-0.48663 3.05406,0.485 0.24854,-1.61417 0.56769,0.0963 0.87036,-5.5231 1.48692,-0.811 0.78756,0.20582 0.24979,-0.96261 -0.69829,-0.14466 0.0504,-0.34624 -0.35272,-0.0775 0.0504,-0.39424 7.03176,1.1544\"},\"49007\":{\"name\":\"Carbon, UT\",\"path\":\"m 256.88478,248.85714 6.74994,1.08 5.54651,0.899 0.22464,0.07 0.0945,0.09 9.55618,1.465 1.43699,0.218 0.11232,0.31 0.009,0.162 -0.0802,0.06 -0.0731,-0.01 -1.10003,0.633 -0.78803,0.685 -1.28545,2.487 -0.25673,0.727 -0.11232,1.036 0.007,1.269 -18.35286,-2.845 -0.25674,-1.63 -0.31239,-1.71654 -0.47837,0.19235 -0.68011,-2.38181 -0.18363,-0.232 -0.17829,-0.09 0.40115,-2.485\"},\"49013\":{\"name\":\"Duchesne, UT\",\"path\":\"m 281.90914,229.28414 0.37619,0.154 -2.03961,13.972 -0.54021,3.953 -0.64896,5.104 -9.55618,-1.465 -0.0945,-0.09 -0.22464,-0.07 -5.54651,-0.899 0.25014,-1.97271 -0.52292,-0.0953 0.65967,-4.191 1.06794,-8.006 0.91639,-5.649 0.1753,-0.933 1.20801,0.49084 1.77604,-0.59114 1.07276,0.24739 0.74816,-0.37474 1.40674,0.1602 3.27316,-0.1103 0.27066,-0.57014 3.11086,0.53889 2.86151,0.403\"},\"49047\":{\"name\":\"Uintah, UT\",\"path\":\"m 282.28533,229.43814 1.7276,1.324 0.58834,-0.02 1.12025,-0.0152 0.38969,-0.47741 1.30558,0.29803 1.30559,-0.20889 1.3737,-0.1345 0.13846,0.60163 -0.2641,1.27255 0.54101,0.21399 1.62938,-0.81474 0.28546,-1.70843 3.28048,0.451 -0.26826,1.62446 0.71576,0.13354 -0.0784,0.847 -0.21037,1.501 0.63506,0.16586 -0.0806,0.61314 1.28723,0.185 -1.40668,9.883 -1.79179,12.906 -0.51346,3.737 -1.08577,0.681 -16.00661,-2.289 0.0232,-0.168 -0.007,-1.269 0.11232,-1.036 0.25673,-0.727 1.28545,-2.487 0.78803,-0.685 1.10003,-0.633 0.0731,0.01 0.0802,-0.06 -0.009,-0.162 -0.11232,-0.31 -1.43699,-0.218 0.64896,-5.104 0.54021,-3.953 2.03961,-13.972\"},\"49019\":{\"name\":\"Grand, UT\",\"path\":\"m 293.99522,261.82014 -1.19096,8.556 -0.60974,4.172 -0.12837,0.884 -0.69175,4.227 -0.69889,5.048 -17.07454,-2.452 0.6347,-0.499 0.24069,-0.843 -1.00314,-0.44646 0.45274,-0.48196 0.28408,0.36767 0.26632,-0.25375 0,-0.2715 -0.041,-0.209 -0.47424,0.136 -0.19805,-0.88392 -0.97301,-1.4461 0.73768,-1.19972 -0.25658,-1.27074 -0.80317,-1.19097 0.0346,-1.5846 0.36562,0.0321 0.61019,-3.29983 0.66041,-0.68851 0.11112,-1.23466 0.28169,-0.555 0.83347,-0.73972 0.11796,-1.41281 1.15411,-1.77447 0.25674,-1.001 0.009,-1.285 16.00661,2.289 1.08577,-0.681\"},\"49015\":{\"name\":\"Emery, UT\",\"path\":\"m 256.48363,251.34214 0.17829,0.09 0.18363,0.232 0.68011,2.38181 0.47837,-0.19235 0.31239,1.71654 0.25674,1.63 18.35286,2.845 -0.0232,0.168 -0.009,1.285 -0.25674,1.001 -1.15411,1.77447 -0.11796,1.41281 -0.83347,0.73972 -0.28169,0.555 -0.11112,1.23466 -0.66041,0.68851 -0.61019,3.29983 -0.36562,-0.032 -0.0346,1.5846 0.80317,1.19097 0.25658,1.27074 -0.73768,1.19972 0.97301,1.4461 0.19805,0.88392 0.47424,-0.136 0.041,0.209 0,0.2715 -0.26632,0.25375 -0.28408,-0.36767 -0.45274,0.48196 1.00314,0.44646 -0.24069,0.843 -0.6347,0.499 -22.60501,-3.519 0.0392,-0.235 0.57943,-3.712 0.1355,0.03 1.06081,-6.366 0.27456,-1.871 1.58141,-9.955 0.94135,0.151 0.87539,-5.432\"},\"49055\":{\"name\":\"Wayne, UT\",\"path\":\"m 242.88033,277.35214 8.15485,1.149 -0.0392,0.235 22.60501,3.519 0.32804,0.434 -0.42975,2.21933 0.77654,1.19228 0.55361,1.71539 0.0232,0.972 -0.18363,1.155 -0.52239,0.547 -21.31064,-3.284 -5.06335,-0.773 -7.58433,-1.284 0.32092,-1.892 0.62757,-4.386 0.56873,-0.666 1.17491,-0.853\"},\"49031\":{\"name\":\"Piute, UT\",\"path\":\"m 229.6764,274.90314 6.91932,1.148 1.10894,0.225 -0.0321,0.192 5.20776,0.884 -1.17491,0.853 -0.56873,0.666 -0.62757,4.386 -0.32092,1.892 -1.93798,-0.212 -0.63292,-0.1 -0.86826,-0.178 -0.4261,-0.128 -6.77312,-1.188 0.43799,-0.69822 0.90005,-0.5134 0.32248,-0.35167 -0.0934,-0.58271 0.5174,-0.61 0.37797,-1.38005 -0.31725,-0.11432 -0.55161,-0.91686 -0.0541,-0.72474 -0.21772,-0.11992 -0.28307,0.27215 -0.26673,-0.1526 -0.10337,-0.47932 -0.60452,-1.11834 -0.0178,-0.201 0.0802,-0.754\"},\"49001\":{\"name\":\"Beaver, UT\",\"path\":\"m 203.03854,268.52214 19.85582,3.607 2.04139,0.411 -0.007,0.05 5.05443,0.898 -0.30665,1.416 -0.0802,0.754 0.0178,0.201 0.60452,1.11834 0.10337,0.47932 0.26673,0.1526 0.28307,-0.27215 0.21772,0.11992 0.0541,0.72474 0.55161,0.91686 0.31725,0.11432 -0.37797,1.38005 -0.5174,0.61 0.0934,0.58271 -0.32248,0.35167 -0.90005,0.5134 -0.43799,0.69822 -0.62757,-0.05 -27.73076,-5.12 1.84705,-9.658\"},\"49021\":{\"name\":\"Iron, UT\",\"path\":\"m 201.19149,278.18014 27.73076,5.12 -0.87951,3.81099 0.37072,0.10201 -0.33039,1.62703 -0.49708,-0.0399 -0.0776,0.2959 -1.41382,-0.16418 -0.32483,1.8857 -1.95011,-0.38552 -0.30487,1.764 -0.65075,4.248 -3.89865,-0.75206 -0.16094,1.05006 -2.64301,-0.55297 -0.14733,0.58143 -1.88283,-0.37993 0.0457,-0.15305 -1.90551,-0.28918 0.16991,-1.15865 -3.87464,-0.75333 0.31981,-1.91497 -2.09606,-0.48096 -0.0466,0.35217 -7.97886,-1.45456 2.42649,-12.367\"},\"49053\":{\"name\":\"Washington, UT\",\"path\":\"m 198.765,290.54714 7.97886,1.45456 0.0466,-0.35217 2.09606,0.48096 -0.31981,1.91497 3.87464,0.75333 -0.16991,1.15865 1.90551,0.28918 -0.0456,0.15305 1.88282,0.37993 0.14733,-0.58143 2.64301,0.55297 -2.01643,11.394 -20.63493,-3.84 2.6119,-13.757\"},\"49025\":{\"name\":\"Kane, UT\",\"path\":\"m 218.80446,296.75014 0.16094,-1.05006 3.89865,0.75206 5.56293,0.9561 -0.0342,0.16953 9.23875,1.60737 0.15332,0 0.0892,-0.06 21.34273,3.431 -0.24715,0.46587 -0.24715,0.46588 0.53666,0.46662 -1.39874,-0.17002 -0.71117,0.46663 0.3584,0.49208 0.49136,0.10936 -0.29808,0.6696 -0.47635,-0.17077 -0.29808,0.23668 0.3131,0.69507 -0.30665,0.484 -0.88252,0.40576 -1.31543,-0.81661 -0.32228,0.38034 0.61997,0.3294 -0.14312,0.40083 -0.72884,0.9102 -0.7543,1.72505 -1.27832,1.109 -0.60974,0.209 -2.24544,-0.21124 -0.53922,0.22168 -0.38643,-0.44042 -0.97214,1.11298 -0.3355,-0.21124 -0.28457,0.50181 -0.92121,-0.79695 -0.46283,1.18938 -1.32645,-0.03 -0.55447,-0.05 -20.25697,-3.414 -6.44508,-1.143 2.01643,-11.394\"},\"51131\":{\"name\":\"Northampton, VA\",\"path\":\"m 885.37891,284.15234 -1.73829,0.51758 0,0.002 -0.0781,0.67187 -0.0586,0.52148 -0.0801,1.58399 -0.0859,2.44336 -0.008,0.33008 0.0566,0.67382 0.11133,0.72461 0.47461,1.13282 1.02734,1.5664 0.0273,0.50586 0.57618,-0.14648 0.13086,-0.0508 -0.26172,-0.91602 -0.31446,-3.71875 0.67578,-1.7832 1.14258,-0.4375 -0.56445,-0.47071 -0.006,-1.18945 -0.12109,-0.0801 -0.0723,-0.16797 0.0254,-0.0605 0.10547,-0.0703 0.14453,-0.24024 -0.0957,-0.93164 z m 3.51757,1.43164 -0.91601,0.40821 0.36864,0.41437 -0.13896,2.20198 -0.46082,1.36624 0.6577,-1.00191 0.58711,-2.84396 -0.01,-0.37696 z m -1.48326,4.77173 -0.0499,0.70197 0.15645,0.19035 0.13257,-0.24056 z m 0.47544,1.26148 -0.51953,-0.0566 -0.30859,0.59375 -0.41407,1.05664 -0.38671,1.21875 0.0488,-0.0195 0.14258,-0.12891 0.13086,-0.17383 0.0273,-0.0508 0.78906,-1.2207 0.006,-0.0195 0.20117,-0.35547 0.18164,-0.33789 z m -1.49414,-2.92383 -0.52539,0.19922 -0.25586,1.70312 0.29883,0.15039 -0.38672,1.41797 0.42383,1.6836 0.34961,-1.50196 0.008,-0.98047 0.4043,-0.36914 -0.64258,-0.54687 z\"},\"51027\":{\"name\":\"Buchanan, VA\",\"path\":\"m 776.31323,304.29514 0.61561,0.23406 -0.0558,0.36194 -0.8112,0.731 -0.0481,0.153 0.12837,0.344 1.2983,0.74333 0.25279,1.45867 1.51188,1.317 0.007,0 0.2086,0.107 2.04316,0.738 -0.35657,0.988 -1.78287,1.15 -0.63873,0.96565 -1.44188,0.29635 -0.19968,0.152 -0.12123,0.378 -0.0321,0.314 0.007,0.52 -0.16045,0.275 -0.68284,0.49 -1.166,0.161 -0.1355,-0.03 -0.46006,-1.61968 -1.40037,-1.45756 -0.60597,-1.65211 -1.25445,-0.77665 5.28086,-6.347\"},\"51185\":{\"name\":\"Tazewell, VA\",\"path\":\"m 787.68129,307.13211 3.01257,2.06603 -0.84897,0.62456 0.48528,0.9216 -1.25085,0.83793 1.38472,0.315 -0.0795,0.79609 -1.16718,0.87977 -1.02077,0.23132 -0.41416,0.44051 -0.5815,0.10582 0.48165,0.5914 -0.45564,0.48114 -0.1628,-0.48106 -0.52701,0.25705 -0.92307,0.53843 -1.0875,1.0317 -0.97788,0.61151 -0.6125,-0.88653 -1.25653,0.56976 -2.9939,-3.47735 0.63873,-0.96565 1.78287,-1.15 0.35657,-0.988 1.20344,0.715 2.10557,-0.417 0.0571,-0.03 0.78803,-0.724 0.0143,-0.02 1.31819,-1.39732 0.73081,-1.47971\"},\"51173\":{\"name\":\"Smyth, VA\",\"path\":\"m 788.92704,316.10114 1.26929,1.33582 -0.008,0.29126 1.54304,2.37392 -1.84077,0.70569 -1.16702,0.82819 -1.64497,0.52325 0.31504,0.79887 -1.44591,0.952 -0.22642,0.146 -1.99325,-3.342 -2.96491,-2.821 0.91639,-0.829 1.25653,-0.56976 0.6125,0.88653 0.97788,-0.61151 1.0875,-1.0317 0.92307,-0.53843 0.52701,-0.25705 0.1628,0.48106 0.45564,-0.48114 1.24444,1.159\"},\"51520\":{\"name\":\"Bristol, VA\",\"path\":\"m 776.30432,326.38514 -1.76861,0.241 0.54063,-0.43926 0.35363,-0.23238 0.74243,-0.46757 0.58196,-0.21826 0.27803,0.20265 -0.72805,0.91682\"},\"51191\":{\"name\":\"Washington, VA\",\"path\":\"m 780.76328,317.89314 2.96491,2.821 1.99325,3.342 0.22642,-0.146 0.10303,0.54948 -0.75556,0.18152 -3.26978,0.442 -1.74543,0.209 -0.12837,0.538 -3.84743,0.555 0.72805,-0.91682 -0.27803,-0.20265 -0.58196,0.21826 -0.74243,0.46757 -0.35363,0.23238 -0.54063,0.43926 -0.91461,0.137 -1.0715,-2.514 2.4519,-1.82576 1.41606,-0.66946 -0.24612,-0.54902 0.21157,-0.54901 1.89581,-1.14655 0.11318,0.15429 0.64315,-0.15887 0.98041,-0.49613 0.74772,-1.11549\"},\"51167\":{\"name\":\"Russell, VA\",\"path\":\"m 778.68577,313.58679 2.9939,3.47735 -0.91639,0.829 -0.74772,1.11549 -0.98041,0.49613 -0.64315,0.15887 -0.11318,-0.15429 -1.89581,1.14655 -0.21157,0.54901 0.24612,0.54902 -1.41606,0.66946 -2.4519,1.82576 -1.90233,-3.633 1.92807,-0.8883 -0.81912,-1.4817 2.997,-2.098 0.1355,0.03 1.166,-0.161 0.68284,-0.49 0.16045,-0.275 -0.007,-0.52 0.0321,-0.314 0.12123,-0.378 0.19968,-0.152 1.44188,-0.29635\"},\"51720\":{\"name\":\"Norton, VA\",\"path\":\"m 766.80257,319.61219 0.0326,0.39466 -0.38481,0.0394 -0.0812,0.25284 0.18658,0.34511 -0.56566,0.19751 -0.21181,-0.56806 0.36521,-0.63317 z\"},\"51195\":{\"name\":\"Wise, VA\",\"path\":\"m 766.93534,313.55214 0.32096,1.80083 1.24591,1.7712 0.0705,0.46611 0.30521,-0.003 2.03744,0.98785 0.18749,0.31137 0.27278,-0.128 0.38057,-0.51208 0.81912,1.4817 -1.92807,0.8883 -2.57174,0.37805 -1.39898,0.1616 -0.98308,1.61357 -1.09013,-0.24622 -0.30487,0.537 -0.17314,0.41077 -1.28617,-0.92163 -0.93508,-1.25014 0.0731,-1.742 0.78697,-0.72913 1.62489,-0.9805 -0.13475,-1.9525 2.47958,-2.20387 0.20147,-0.137 z m -0.79197,6.08735 -0.36521,0.63317 0.21181,0.56806 0.56566,-0.19751 -0.18658,-0.34511 0.0812,-0.25284 0.38481,-0.0394 -0.0326,-0.39466 z\"},\"51051\":{\"name\":\"Dickenson, VA\",\"path\":\"m 771.03237,310.64214 1.25445,0.77665 0.60597,1.65211 1.40037,1.45756 0.46006,1.61968 -2.997,2.098 -0.38057,0.51208 -0.27278,0.128 -0.18749,-0.31137 -2.03744,-0.98785 -0.30521,0.003 -0.0705,-0.46611 -1.24591,-1.7712 -0.32096,-1.80083 0.70601,-0.507 2.71532,-1.531 0.6757,-0.872\"},\"51169\":{\"name\":\"Scott, VA\",\"path\":\"m 764.12533,323.46891 0.17314,-0.41077 0.30487,-0.537 1.09013,0.24622 0.98308,-1.61357 1.39898,-0.1616 2.57174,-0.37805 1.90233,3.633 1.0715,2.514 -5.7141,0.852 -4.01859,0.571 -2.80445,0.385 0.41719,-1.969 0.71671,-0.65 1.35484,-0.7803 -0.31729,-0.43099 0.86992,-1.27194\"},\"51105\":{\"name\":\"Lee, VA\",\"path\":\"m 764.12533,323.46891 -0.86993,1.27194 0.3173,0.43099 -1.35484,0.7803 -0.71671,0.65 -0.41719,1.969 -8.86265,1.118 -3.70302,0.41 3.70302,-1.987 1.10232,-0.35985 3.46434,-2.00421 1.10614,-0.0851 0.71417,-2.67215 1.7333,-0.0851 1.18453,-0.94749 0.37797,-0.661 0.93508,1.25014 1.28617,0.92163\"},\"51021\":{\"name\":\"Bland, VA\",\"path\":\"m 790.69386,309.19814 2.09844,-1.27126 2.09844,-0.75374 -0.34005,0.57787 2.26603,1.76111 0.38869,-0.37086 0.30618,0.28913 -0.34004,0.34413 0.49868,0.37162 -1.18258,1.0145 0.41238,0.8495 -2.10557,0.998 -1.11118,0.81652 -0.40782,-0.23852 -0.89825,0.34892 -0.99873,-0.45492 -1.0091,0.837 -1.44234,1.784 -1.24444,-1.159 -0.48165,-0.5914 0.5815,-0.10582 0.41416,-0.44051 1.02077,-0.23132 1.16718,-0.87977 0.0795,-0.79609 -1.38472,-0.315 1.25085,-0.83793 -0.48528,-0.9216 0.84897,-0.62456\"},\"51077\":{\"name\":\"Grayson, VA\",\"path\":\"m 795.26897,318.66836 2.39317,2.72903 -0.12302,0.161 -0.0681,0.24356 0.097,0.19041 0.24335,0.006 0.15894,0.14168 -0.005,0.35532 0.26702,-0.006 0.0414,-0.63785 1.86413,1.70344 -1.16599,0.121 -8.22795,0.997 -5.92269,0.596 0.47424,-0.63 0.75556,-0.18152 -0.10303,-0.54948 1.44591,-0.952 -0.31504,-0.79887 1.64497,-0.52325 1.16702,-0.82819 1.84077,-0.70569 2.92237,-0.51141 0.0208,-0.44143 0.59429,-0.48094\"},\"51640\":{\"name\":\"Galax, VA\",\"path\":\"m 797.66214,321.39739 0.007,0 0.17006,-0.13619 0.0871,-0.32068 0.49884,-0.19788 0.29845,0.10563 -0.32341,0.63384 -0.0937,0.22328 -0.033,0.15331 -0.0414,0.63785 -0.26702,0.006 0.005,-0.35531 -0.15894,-0.14169 -0.24335,-0.005 -0.097,-0.19141 0.0681,-0.24356 0.12302,-0.161\"},\"51197\":{\"name\":\"Wythe, VA\",\"path\":\"m 800.71537,315.95514 -5.4464,2.71322 -0.59429,0.48094 -0.0208,0.44143 -2.92237,0.51141 -1.54304,-2.37392 0.008,-0.29126 -1.26929,-1.33582 1.44234,-1.784 1.0091,-0.837 0.99873,0.45492 0.89825,-0.34892 0.40782,0.23852 1.11118,-0.81652 2.10557,-0.998 0.54113,0.97259 3.27421,2.97241\"},\"51071\":{\"name\":\"Giles, VA\",\"path\":\"m 798.35307,304.75314 2.23394,-1.677 0.18542,-0.147 1.80783,-1.429 0.86112,1.237 1.16422,2.346 -1.1107,1.27599 -1.7419,0.83901 -1.02069,0.737 -1.17844,0.737 -0.95759,0.54771 -0.92605,0.92629 -0.49868,-0.37163 0.34004,-0.34412 -0.30618,-0.28913 -0.38869,0.37086 -2.26603,-1.76111 0.34005,-0.57787 1.2898,-0.64 0.91603,-0.95628 -0.78276,-0.69156 0.30493,-0.52892 -0.061,-0.64074 z\"},\"51750\":{\"name\":\"Radford, VA\",\"path\":\"m 802.77285,310.84051 -0.11624,-0.0315 -0.19209,-0.22018 -0.11092,-0.17499 -0.0731,-0.264 0.066,-0.258 0.30294,-0.22027 0.31702,-0.21381 0.17651,-0.03 0.27645,0.16231 0.10949,-0.2104 0.18825,-0.12852 0.14417,0.1 0.11252,0.28584 -0.22174,0.28505 -0.60472,0.26706 0.0361,0.38859 -0.41062,0.26966\"},\"51155\":{\"name\":\"Pulaski, VA\",\"path\":\"m 801.753,307.19814 -0.0357,0.98995 0.55939,0.51714 0.48837,-0.44681 0.74344,-0.27676 0.0952,0.30774 -0.60625,0.20148 -0.27825,0.33827 0.34999,0.42535 0.25661,-0.0745 0.186,0.03 0.205,0.034 -0.2167,0.20705 -0.0911,0.1518 -0.26599,-0.17714 -0.17651,0.03 -0.31702,0.21381 -0.30294,0.22027 -0.066,0.258 0.0731,0.264 0.11092,0.17499 0.19209,0.22018 0.11624,0.0315 0.15941,0.26146 0.37196,0.0383 0.0744,0.58029 0.47818,1.2446 -1.42095,1.471 -0.8853,1.3361 -0.83517,0.1829 -3.27421,-2.97241 -0.54113,-0.97259 -0.41238,-0.8495 1.18258,-1.0145 0.92605,-0.92629 0.95759,-0.54771 1.17844,-0.737 1.02069,-0.737\"},\"51610\":{\"name\":\"Falls Church, VA\",\"path\":\"m 856.17541,259.0397 -0.16201,0.14077 -0.35053,-0.082 -0.29585,0.0509 -0.0985,-0.48275 0.28646,0.0454 0.62041,0.32861\"},\"51013\":{\"name\":\"Arlington, VA\",\"path\":\"m 856.36053,257.44814 0.66857,0.546 0.80408,0.353 0.47246,0.918 0.0344,0.31187 -0.78669,0.0514 0.0224,0.30242 -0.66985,-0.39767 -0.73049,-0.49345 -0.62041,-0.32773 0.80553,-1.26488\"},\"51035\":{\"name\":\"Carroll, VA\",\"path\":\"m 802.43584,314.43614 3.89736,4.596 0.11503,0.80065 -0.86563,0.44405 -0.11053,0.29143 -0.25673,0.123 -0.17413,-0.28259 -0.58894,0.0275 -0.2086,0.01 -0.098,0.05 -0.24604,0.922 -0.082,0.42 0.41184,1.067 -4.09169,0.643 -1.86413,-1.70344 0.033,-0.15431 0.0938,-0.22228 0.3234,-0.63384 -0.29845,-0.10563 -0.49884,0.19788 -0.0871,0.32068 -0.17005,0.13619 -0.007,0 -2.39318,-2.72903 5.4464,-2.71322 0.83517,-0.1829 0.8853,-1.3361\"},\"51089\":{\"name\":\"Henry, VA\",\"path\":\"m 820.51593,320.55814 -5.64992,0.951 -0.47424,0.08 -0.20146,-1.535 -0.32984,-1.013 -0.13549,-0.24 -0.27278,-0.296 -0.47425,-0.878 -0.0148,-1.08728 -0.22407,-0.23872 0.19968,-0.234 0.6971,-0.265 0.4968,0.143 0.0676,-0.99569 3.71903,0.13929 0.23011,-0.20424 0.6192,0.10893 0.283,-0.64068 1.11144,-0.54882 0.31711,-0.4405 0.0358,7.1947 z m -4.09649,-2.44186 0.92899,0.1366 0.0624,0.331 0.57005,-0.0703 -0.0209,-0.22739 -0.32575,-0.33488 -0.008,-0.7313 -0.93779,-0.0432 -0.0947,0.26889 z\"},\"51141\":{\"name\":\"Patrick, VA\",\"path\":\"m 809.80748,314.6897 2.95873,0.15683 0.86962,0.95561 -0.6971,0.265 -0.19968,0.234 0.22407,0.23872 0.0148,1.08728 0.47425,0.878 0.27278,0.296 0.13549,0.24 0.32984,1.013 0.20146,1.535 -7.02094,0.988 -3.14142,0.337 -0.41184,-1.067 0.082,-0.42 0.24604,-0.922 0.098,-0.05 0.2086,-0.01 0.58894,-0.0275 0.17413,0.28259 0.25673,-0.123 0.11053,-0.29143 0.86563,-0.44405 -0.11503,-0.80065 0.23602,-1.01632 0.96918,-0.18957 -0.0448,-1.34391 0.53918,-0.19618 0.2584,-0.53936 1.51626,-1.0571\"},\"51063\":{\"name\":\"Floyd, VA\",\"path\":\"m 810.80998,308.55414 0.7972,2.01071 -0.39571,1.76638 -0.52506,0.14229 -0.87893,2.21618 -1.51626,1.0571 -0.2584,0.53936 -0.53918,0.19618 0.0448,1.34391 -0.96918,0.18957 -0.23602,1.01632 -3.89736,-4.596 1.42095,-1.471 1.26227,-0.399 0.54729,-0.65058 0.80235,0.0296 0.8112,-0.481 0.0481,-0.139 0.85399,-1.291 1.76683,-1.111 0.86112,-0.369\"},\"51121\":{\"name\":\"Montgomery, VA\",\"path\":\"m 807.56873,303.98314 0.62935,1.171 1.05902,1.088 0.64362,2.296 0.0481,0.385 -1.76683,1.111 -0.85399,1.291 -0.0481,0.139 -0.8112,0.481 -0.80235,-0.0296 -0.54729,0.65058 -1.26227,0.399 -0.47818,-1.2446 -0.0744,-0.58029 -0.37196,-0.0383 -0.15941,-0.26146 0.41062,-0.26966 -0.0361,-0.38859 0.60472,-0.26706 0.22174,-0.28505 -0.11252,-0.28584 -0.14453,-0.1 -0.205,-0.0338 -0.186,-0.0305 -0.25663,0.0697 -0.34999,-0.42535 0.27825,-0.33827 0.60625,-0.20148 -0.0952,-0.30774 -0.74344,0.27676 -0.48837,0.44681 -0.55939,-0.51714 0.0357,-0.98995 1.7419,-0.83901 1.1107,-1.27599 1.74861,-1.47253 1.21452,0.37253\"},\"51775\":{\"name\":\"Salem, VA\",\"path\":\"m 811.68059,303.86136 -0.0481,0.105 0.40924,0.25874 -0.0486,0.33545 0.2621,0.17565 -0.0841,0.38871 -0.32381,0.12239 0.15154,0.266 -0.36787,-0.10515 -0.44776,0.12566 -0.33236,-0.53127 -0.36786,-0.10515 -0.28432,0.009 0.59455,-0.31918 0.45259,-0.47204 0.43483,-0.2501\"},\"51067\":{\"name\":\"Franklin Co., VA\",\"path\":\"m 815.44545,305.35614 1.27785,-0.24558 0.29068,0.674 0.91209,-0.0351 0.23901,0.75015 0.79668,-0.0271 1.05049,1.16263 0.69623,1.25584 -0.22836,4.47241 -0.31711,0.4405 -1.11144,0.54882 -0.283,0.64068 -0.6192,-0.10893 -0.23011,0.20424 -3.71903,-0.13929 -0.0676,0.99569 -0.4968,-0.143 -0.86962,-0.95561 -2.95873,-0.15683 0.87893,-2.21618 0.52506,-0.14229 0.39571,-1.76638 -0.7972,-2.01071 0.61048,-0.91121 0.78729,-0.38079 0.54254,-0.23802 0.56463,0.64602 0.40114,0.07 0.14441,-0.08 0.62936,-0.717 0.95562,-1.583\"},\"51019\":{\"name\":\"Bedford Co., VA\",\"path\":\"m 821.21303,295.14414 0.22494,0.3451 0.34728,-0.2429 0.53687,0.30479 1.00031,1.52657 0.93265,0.31959 0.57901,-0.2429 0.49473,-0.11651 0.8887,0.75162 -0.47834,0.15616 -0.22557,0.15616 -0.24662,0.38789 -0.45728,-0.0756 0.13461,0.58425 0.41488,0.092 -0.17494,0.42905 0.49271,0.20508 -0.32883,1.02662 -2.03083,7.23095 -0.7776,-0.0197 -0.11279,0.14929 0.25115,0.30569 -0.017,0.20703 0.47351,0.26407 -0.34775,0.36843 -0.8839,-0.60691 -0.48058,-0.22637 -0.18398,0.42387 -0.52987,0.0436 -0.69623,-1.25584 -1.05049,-1.16263 -0.79668,0.0271 -0.23901,-0.75015 -0.91209,0.0351 -0.29068,-0.674 -1.27785,0.24558 -0.33697,-1.904 0.76797,-0.8778 0.0358,-0.3305 0.12519,-0.44546 -0.57222,-0.15708 -0.11513,-0.38564 0.39133,-0.26452 1.52792,-1.847 0.18364,-0.183 0.31557,-0.1 0.13549,0.04 0.25852,0.194 0.32983,0.335 0.60974,0.04 0.0874,-0.03 0.0892,-0.07 0.15201,-0.27181 -0.15456,-0.32291 0.35639,-0.55283 0.31807,-0.0546 0.51013,-0.9108 0.43348,-0.39125 0.48303,-0.56077 -0.40467,-0.86137 0.24053,-0.29861 0,-3e-5 -10e-6,-4e-5 0,-3e-5 -1e-5,-3e-5 0,-4e-5 0,-3e-5 -10e-6,-4e-5 0,-3e-5 0,-3e-5 0,-4e-5 -10e-6,-3e-5 0,-3e-5 0,-4e-5 0,-3e-5 -10e-6,-4e-5 0,-3e-5 0,-3e-5 -10e-6,-4e-5 0,-3e-5 0,-4e-5 -1e-5,-3e-5 0,-4e-5 -10e-6,-3e-5 0,-4e-5 0,-3e-5 -10e-6,-3e-5 0,-3e-5 -10e-6,-3e-5 0,-3e-5 0,-3e-5 -1e-5,-3e-5 z\"},\"51161\":{\"name\":\"Roanoke Co., VA\",\"path\":\"m 810.42688,301.85932 4.37863,1.24636 0.30297,0.34646 0.33697,1.904 -0.95562,1.583 -0.62936,0.717 -0.14441,0.08 -0.40114,-0.07 -0.56464,-0.64602 -0.54253,0.23802 -0.78729,0.38079 -0.61048,0.91121 -0.86112,0.369 -0.0481,-0.385 -0.64362,-2.296 -1.05902,-1.088 -0.62935,-1.171 0.17115,-0.29 0.79516,-0.764 1.12499,-0.472 0.76685,-0.59782 -2e-5,0.002 z m 1.25371,2.00204 -0.43483,0.25014 -0.45259,0.47204 -0.59455,0.31918 0.28432,-0.009 0.36786,0.10515 0.33236,0.53127 0.44776,-0.12566 0.36787,0.10515 0.0571,0.105 0.47158,-0.28905 1.03023,0.67836 0.021,-0.34063 0.45539,0.0268 0.24012,-0.587 -0.16833,-0.74101 0.41756,-0.25049 -0.0892,-0.273 -0.0802,-0.07 -0.44215,-0.24 -0.76815,0.0374 -0.41389,-0.22144 -0.47771,0.4666 -0.53222,-0.0375 -0.0392,0.08\"},\"51005\":{\"name\":\"Alleghany, VA\",\"path\":\"m 808.92014,289.39014 0.54062,0.17451 0.36686,-0.52051 1.19809,-0.06 0.041,0.02 0.90748,1.14 0.29645,0.23032 2.36686,-0.22033 1.32433,0.69189 0.43922,-0.83388 0.94195,-0.0292 -0.92595,2.57718 -2.68679,-0.425 -0.43145,0.514 0.0481,0.103 -0.0874,0.33 -0.21751,0.403 -0.61866,0.947 -1.39064,1.519 -0.32983,0.306 -0.36727,-0.1 -1.64024,1.637 -1.16421,-0.273 -0.3227,-0.216 -1.58497,-1.239 1.29467,-3.53605 2.00185,-3.13195 3e-5,-0.002 4e-5,-0.002 3e-5,-0.002 z m 1.49418,3.19496 0.098,0.69134 -0.13016,0.51516 0.32947,0.23465 0.29444,-0.1682 -0.0158,-0.56834 -0.23275,-0.42385 -0.13916,-0.35731 -0.20402,0.0766\"},\"51045\":{\"name\":\"Craig, VA\",\"path\":\"m 810.70301,296.24514 -0.16759,0.241 0.1355,0.314 1.35142,1.646 -1.01267,2.554 -0.58279,0.85918 -0.76685,0.59782 -1.12499,0.472 -0.79516,0.764 -0.17115,0.29 -1.21452,-0.37253 -1.74861,1.47253 -1.16422,-2.346 0.86531,-0.79473 0.77148,-0.56734 0.0758,-0.28319 0.71269,-0.38118 0.35996,-0.37137 0.17587,-0.51549 -0.20625,-0.12356 -0.27483,0.33694 -0.48918,-0.13554 0.32403,-0.25313 -0.19841,-0.51441 0.61483,-0.583 1.03585,-1.254 0.3227,0.216 1.16421,0.273 1.64024,-1.637 0.36727,0.1\"},\"51023\":{\"name\":\"Botetourt, VA\",\"path\":\"m 816.41711,292.54814 0.0106,0.34108 -0.0767,0.35564 0.3599,0.67582 0.1416,0.26831 -0.14949,0.64672 2.19555,1.23791 -0.0331,0.38475 1.59515,0.79777 -0.51013,0.9108 -0.31807,0.0546 -0.35639,0.55283 0.15456,0.32291 -0.15201,0.27181 -0.0892,0.07 -0.0874,0.03 -0.60974,-0.04 -0.32983,-0.335 -0.25852,-0.194 -0.13549,-0.04 -0.31557,0.1 -0.18364,0.183 -1.52792,1.847 -0.39133,0.26452 0.11512,0.38564 0.57223,0.15708 -0.12519,0.44546 -0.0358,0.3305 -0.76797,0.8778 -0.30297,-0.34646 -4.37863,-1.24636 0.58279,-0.85918 1.01267,-2.554 -1.35142,-1.646 -0.1355,-0.314 0.16759,-0.241 0.32983,-0.306 1.39064,-1.519 0.61866,-0.947 0.21751,-0.403 0.0874,-0.33 -0.0481,-0.103 0.43145,-0.514 2.68679,0.425\"},\"51009\":{\"name\":\"Amherst, VA\",\"path\":\"m 825.17457,290.06414 0.52893,-0.18557 0.39576,0.19582 0.24289,0.30166 0.49109,-0.0885 0.31469,0.18199 0.27676,1.32989 1.3939,0.24804 0.23624,0.2605 0.33031,0.0606 1.55836,2.61336 0.61903,0.006 -0.51677,0.65026 0.007,0.43373 -0.39752,0.37143 -0.45981,-0.25156 0.24512,0.58287 -0.40902,0.27138 -0.29892,0.32494 -0.29737,0.72256 -0.48266,0.11431 9.8e-4,0.30656 -0.41676,-0.0101 0.22595,0.68129 -0.38755,0.009 -0.53952,-0.34901 -0.15684,0.27283 -0.92219,-0.97086 -0.53952,-0.34902 -0.88869,-0.75162 -0.49474,0.11651 -0.579,0.2429 -0.93267,-0.31958 -1.0003,-1.52658 -0.53687,-0.3048 -0.34728,0.24291 -0.22494,-0.3451 0.21038,0 0.39223,-0.323 0.56517,-0.563 0.29596,-0.402 0.37975,-1.782 0.23712,-0.796 0.17115,-0.378 0.39402,-0.65 0.17472,-0.193 0.73988,0.42341 0.40116,-0.42341\"},\"51163\":{\"name\":\"Rockbridge, VA\",\"path\":\"m 818.53159,284.57714 2.90786,1.511 3.06832,1.478 0.57052,0.443 0.36268,0.87024 -0.26638,1.18476 -0.40116,0.42341 -0.73988,-0.42341 -0.17472,0.193 -0.39402,0.65 -0.17115,0.378 -0.23712,0.796 -0.37975,1.782 -0.29596,0.402 -0.56517,0.563 -0.39223,0.323 -0.21038,0 -0.24053,0.29861 0.40467,0.86137 -0.48303,0.56077 -0.43348,0.39125 -1.59515,-0.79777 0.0331,-0.38475 -2.19555,-1.23791 0.14949,-0.64672 -0.1416,-0.26831 -0.3599,-0.67582 0.0767,-0.35564 -0.0106,-0.34108 0.92595,-2.57718 -0.94195,0.0292 0.64198,-1.70565 1.29805,-2.27426 -0.34213,-0.0873 0.53263,-1.35575 -3e-5,-0.002 -2e-5,-0.002 -3e-5,-0.002 z m 2.34245,6.69855 -0.48778,-0.16244 -0.20743,0.16994 -0.0876,0.18664 0.0262,0.273 0.20041,0.15086 z m 0.86075,0.99356 0.17931,0.51002 -0.12825,0.31508 0.21114,0.17641 0.25622,-0.35667 0.3692,-0.58702 -0.0401,-0.70265 -0.2936,0.0204 -0.24129,0.35441 z\"},\"51017\":{\"name\":\"Bath, VA\",\"path\":\"m 812.30225,281.45814 0.8843,0.412 0.83617,0.314 2.65112,0.07 0.95027,0.264 -0.21051,0.84254 0.90481,-0.57896 0.90481,0.0334 -0.69163,1.76104 -0.53263,1.35575 0.34213,0.0873 -1.29805,2.27426 -0.64198,1.70565 -0.43922,0.83388 -1.32433,-0.69189 -2.36686,0.22033 -0.29645,-0.23032 -0.90748,-1.14 -0.041,-0.02 -1.19809,0.06 -0.36686,0.52051 -0.54062,-0.17451 1.24444,-2.836 0.49043,-0.94408 -0.32339,-1.60392 1.32624,-1.60392 0.64439,-0.94408\"},\"51091\":{\"name\":\"Highland, VA\",\"path\":\"m 820.21819,276.61414 -0.029,0.31827 0.34933,0.34462 -0.46881,0.44081 -0.85111,2.41721 0.15254,0.66057 -0.51447,0.7884 -0.66991,0.0423 -0.12586,0.46197 -0.43675,0.43088 -0.95027,-0.264 -2.65112,-0.07 -0.83617,-0.314 -0.8843,-0.412 -0.43324,-0.875 0,-0.03 0.009,-0.08 1.10003,-1.71 0.47425,-1.688 0.0891,-1.625 0.0303,-1.904 1.77752,0.426 0.36192,0.161 0.33697,0.337 1.09111,1.617 3.07902,0.522\"},\"51079\":{\"name\":\"Greene, VA\",\"path\":\"m 834.72362,273.74614 0.35301,-1.336 0.55242,0.64232 0.38099,1.78961 2.10852,1.84236 0.75023,-0.17529 -1.09112,2.25 -5.57146,-1.157 1.5752,-1.63788 0.94221,-2.21812\"},\"51165\":{\"name\":\"Rockingham, VA\",\"path\":\"m 823.27224,267.83914 0.82271,-1.90967 2.46312,1.27467 4.64973,2.876 -0.47246,2.291 1.41738,0.729 1.34072,0.542 0.27991,0.09 0.95027,0.02 -0.94221,2.21812 -1.5752,1.63788 0.20899,0.66062 -0.52951,0.0804 -0.59543,0.687 -0.30532,0.476 -2.89723,-1.72177 -0.33443,0.08 -6.28887,-3.04921 1.80783,-6.976 0,-0.003 z m 4.78055,6.07926 0.20325,0.29547 -0.007,0.18742 0.30699,-0.15856 0.0274,0.27954 0.206,0.0893 0.0158,0.42592 -0.44418,0.20786 -0.532,0.14932 -0.0417,0.47131 -0.40759,0.0981 -0.0856,-0.13608 0.17785,-0.53857 -0.15879,-0.27512 -0.17707,-0.10357 0.154,-0.47009 0.2027,-0.0331 0.20281,-0.73208 z\"},\"51015\":{\"name\":\"Augusta, VA\",\"path\":\"m 820.21819,276.61414 1.24622,-1.799 6.28887,3.04921 0.33443,-0.08 2.89723,1.72177 -0.11232,0.644 -0.10341,1.164 0.2086,0.882 0,0.211 -0.24247,0.426 -0.67571,0.586 -0.1596,0.44522 -0.40792,0.20123 0.0118,0.67632 -0.25982,0.22062 -0.02,0.29046 0.26001,0.0483 -0.0645,0.29705 0.0653,0.34032 -0.38918,0.089 -0.0431,0.13231 -0.33362,0.0633 -0.82036,1.44781 -0.85281,-0.13137 -0.11731,-0.4126 -0.45261,0.0633 -0.24709,0.26882 -1.15067,0.55184 -0.57052,-0.443 -3.06832,-1.478 -2.90786,-1.511 0.69163,-1.76104 -0.90481,-0.0334 -0.90481,0.57896 0.21051,-0.84254 0.43675,-0.43088 0.12586,-0.46197 0.66991,-0.0423 0.51447,-0.7884 -0.15254,-0.66057 0.85111,-2.41721 0.46881,-0.44081 -0.34933,-0.34462 0.029,-0.31827 z m 4.81696,4.51041 -0.20468,0.34959 -0.0499,0.403 0.14278,0.39012 0.44563,0.2374 0.273,-0.19239 0.50025,0.14847 0.33697,-0.351 0.0928,-0.35861 0.002,-0.42939 -0.2173,-0.15616 0.19283,-0.2107 -0.46422,-0.23753 -0.2221,0.27815 z m 3.13007,2.58036 -0.0887,-0.32134 0.19231,-0.29134 0.0639,-0.33329 0.53842,-0.2383 0.60441,-0.084 0.11868,0.37542 0.18862,0.0624 -0.17014,0.37457 0.0782,0.28188 -0.41828,-0.0292 -0.51329,0.57391 -0.23291,-0.29447 z\"},\"51125\":{\"name\":\"Nelson, VA\",\"path\":\"m 830.05963,283.41914 4.20241,5.90572 -0.25467,0.40689 0.49697,0.36734 0.33873,-0.14695 -0.0705,0.30748 -0.22541,0.47744 0.36047,0.44317 -0.0945,0.17979 -0.25408,0.0281 -0.38178,-0.38685 -0.20618,0.16382 0.10507,0.3873 -0.38976,0.2995 0.0492,0.71452 -1.39537,0.0282 -0.38177,0.53095 0.3844,0.41924 -0.3259,0.47509 0.32055,0.28354 0.0104,0.38706 -0.12671,0.43656 -0.0946,0.22345 -0.30968,-0.39617 -0.25478,0.0242 -0.61903,-0.006 -1.55836,-2.61336 -0.33031,-0.0606 -0.23624,-0.2605 -1.3939,-0.24804 -0.27676,-1.32989 -0.31469,-0.18199 -0.49109,0.0885 -0.24289,-0.30166 -0.39576,-0.19582 -0.52893,0.18557 0.26638,-1.18476 -0.36268,-0.87024 1.15067,-0.55184 0.24709,-0.26882 0.45261,-0.0633 0.11731,0.4126 0.85281,0.13137 0.82036,-1.44781 0.33362,-0.0633 0.043,-0.13231 0.38918,-0.089 -0.0653,-0.34032 0.0645,-0.29705 -0.26001,-0.0483 0.02,-0.29046 0.25982,-0.22062 -0.0118,-0.67632 0.40792,-0.20123 0.1596,-0.44522\"},\"51029\":{\"name\":\"Buckingham, VA\",\"path\":\"m 842.19741,289.58314 0.0713,1.285 -1.19095,3.4 -1.45942,4.08107 -0.8831,0.16697 -0.78552,-0.15291 -0.7513,-0.90577 -0.20797,-0.12692 -0.20798,0.51164 -0.53229,-0.31265 -0.15712,-0.33544 -0.46862,-0.0551 -3.27619,-2.44855 -0.0104,-0.38706 -0.32055,-0.28354 0.3259,-0.47509 -0.3844,-0.41922 0.38177,-0.53095 1.39537,-0.0282 -0.0492,-0.71452 0.38975,-0.29951 -0.10506,-0.38729 0.20618,-0.16382 0.38178,0.38685 0.25408,-0.0281 0.0945,-0.17979 -0.36047,-0.44316 0.22541,-0.47745 0.0705,-0.30748 0.0571,-0.152 0.36193,-0.28349 0.8326,-0.24 0.43566,-0.30787 0.63406,0.10787 0.0892,-0.08 0.025,-0.09 -0.0499,-0.716 0.27121,0.0674 0.42537,0.57732 1.14869,0.37574 0.79296,-0.0748 0.75738,0.25716 0.5558,-0.0156 0.35422,0.19788 0.66322,0.005\"},\"51011\":{\"name\":\"Appomattox, VA\",\"path\":\"m 837.19843,297.45747 -0.0492,1.11235 0.15155,0.26138 -0.4754,0.4361 -0.7383,1.81384 -0.28015,0.35297 -0.29988,0.0372 -0.1716,0.45164 -0.40842,0.10628 -0.4479,0.0175 -0.13213,0.20495 -0.21107,0.49111 -0.33972,-0.0863 -0.7278,-0.0873 -0.0182,-0.59133 -0.59652,-0.0987 -0.61794,0.22261 -0.0514,-0.63035 -0.45833,-0.26622 -1.89044,-3.12101 0.29737,-0.72256 0.29892,-0.32495 0.40901,-0.27137 -0.24512,-0.58287 0.45982,0.25156 0.39752,-0.37143 -0.007,-0.43373 0.51677,-0.65026 0.25478,-0.0242 0.30968,0.39617 0.0946,-0.22345 0.12671,-0.43656 3.27619,2.44855 0.46862,0.0551 0.15712,0.33544 0.53229,0.31265 0.20797,-0.51164 0.20798,0.12692\"},\"51031\":{\"name\":\"Campbell, VA\",\"path\":\"m 828.37559,299.18556 0.38755,-0.009 -0.22595,-0.6813 0.41676,0.0101 -9.8e-4,-0.30656 0.48266,-0.11431 1.89044,3.12101 0.45833,0.26622 0.0514,0.63035 0.61794,-0.22261 0.59652,0.0987 0.0182,0.59133 0.7278,0.0873 -0.56347,4.39897 -1.31483,-0.37493 -0.49512,0.4897 -0.88814,-0.12789 -0.84322,-0.38598 -0.47624,0.0977 -0.22094,-0.29739 -0.36825,0.20414 -0.29589,0.25237 -0.21485,-0.0123 -0.21485,-0.18114 -0.21485,0.40977 -0.21485,-0.26556 -0.0306,-0.98621 -0.24431,-0.0394 -0.13577,0.15349 0.0391,0.28011 -0.18921,0.0248 -0.1289,-0.30079 -0.29171,-0.35507 -0.2676,0.16347 -0.0334,0.44318 -0.34694,0.0935 -0.65031,-0.26931 -0.37965,-0.22305 -0.0782,0.30755 -0.54223,0.18097 0.23062,0.34186 -0.50499,0.35391 0.05,0.66187 -0.64942,0.28802 2.03083,-7.23095 0.90391,0.27923 0.7218,-0.28935 0.28017,-0.57326 0.65872,-0.3209 0.46285,-0.66131\"},\"51083\":{\"name\":\"Halifax, VA\",\"path\":\"m 829.69145,306.65591 0.84322,0.38636 0.88814,0.12789 0.49512,-0.4897 1.31483,0.37494 0.21787,0.19731 -0.0487,0.71818 1.47085,-0.40305 0.61251,0.61397 0.14276,-0.76643 0.28294,-0.10909 -0.16846,-0.26941 0.12962,-0.2103 0.21279,0.14978 0.0395,0.30593 0.47741,0.99431 -0.38393,0.3818 1.43446,1.18572 0.47743,0.26696 -0.32651,0.51579 0.41999,0.3818 -0.17255,0.57398 0.42082,0.38256 -0.42138,0.6314 1.03454,0.87823 0.71977,0.62279 1.42577,0.55491 0.0138,0.13403 -1.534,-0.47694 -0.73296,-0.62628 -0.80085,0.44629 0.0952,2.31743 -0.2986,0.22315 0.25209,0.72683 -1.11607,0.217 -6.1723,1.116 -1.45304,0.257 0.20769,-12.32823\"},\"51143\":{\"name\":\"Pittsylvania, VA\",\"path\":\"m 823.91671,307.03221 0.50499,-0.35391 -0.23062,-0.34186 0.54223,-0.18097 0.0782,-0.30755 0.37965,0.22305 0.65031,0.26931 0.34694,-0.0935 0.0334,-0.44318 0.2676,-0.16349 0.29171,0.35507 0.1289,0.30079 0.18921,-0.0248 -0.0391,-0.28011 0.13577,-0.1535 0.24431,0.0395 0.0306,0.98621 0.21485,0.26556 0.21485,-0.40977 0.21485,0.18114 0.21485,0.0123 0.29589,-0.25237 0.36825,-0.20414 0.22094,0.29739 0.47624,-0.0977 -0.20769,12.32823 -2.24285,0.412 -0.16036,-0.39474 0.23909,-0.27032 0.46417,-0.14706 -0.0603,-0.27936 -0.44368,0.10154 -0.14502,-0.44981 -0.63465,-0.0726 -0.19816,-0.55503 -0.54453,-0.0646 -0.36074,1.00368 -0.2344,-0.16795 -1.03844,-0.0646 -0.32492,0.51459 0.45723,0.36286 0.63624,0.0356 -0.19063,0.46607 0.24109,0.38672 -0.73097,0.136 -3.69589,0.618 -0.0358,-7.1947 0.22836,-4.47241 0.52987,-0.0436 0.18398,-0.42387 0.48058,0.22637 0.8839,0.60691 0.34775,-0.36843 -0.47351,-0.26407 0.017,-0.20703 -0.25115,-0.30569 0.11279,-0.14929 0.77753,0.0213 0.64938,-0.28721 z\"},\"51690\":{\"name\":\"Martinsville, VA\",\"path\":\"m 816.68791,317.17488 0.93779,0.0431 0.008,0.7313 0.32575,0.33488 0.0209,0.22739 -0.57005,0.0703 -0.0624,-0.331 -0.92899,-0.1366 0.17413,-0.67055 z\"},\"51590\":{\"name\":\"Danville, VA\",\"path\":\"m 827.24091,319.39614 -2.29812,0.408 -0.24109,-0.38672 0.19063,-0.46607 -0.63624,-0.0356 -0.45723,-0.36286 0.32492,-0.51459 1.03844,0.0646 0.2344,0.16795 0.36074,-1.00368 0.54453,0.0646 0.19816,0.55503 0.63465,0.0726 0.14502,0.44981 0.44367,-0.10154 0.0603,0.27936 -0.46417,0.14706 -0.23909,0.27032 0.16036,0.39474\"},\"51680\":{\"name\":\"Lynchburg, VA\",\"path\":\"m 828.37559,299.18556 -0.46285,0.66131 -0.65872,0.3209 -0.28017,0.57326 -0.7218,0.28935 -0.90391,-0.27923 0.32883,-1.02662 -0.49272,-0.20508 0.17495,-0.42905 -0.41488,-0.092 -0.13461,-0.58425 0.45728,0.0756 0.24663,-0.38788 0.22556,-0.15617 0.47834,-0.15616 0.53952,0.34902 0.92219,0.97086 0.15684,-0.27283 0.53952,0.34901\"},\"51770\":{\"name\":\"Roanoke, VA\",\"path\":\"m 811.68059,303.86136 0.0392,-0.08 0.53222,0.0375 0.47771,-0.4666 0.41389,0.22144 0.76815,-0.0374 0.44215,0.24 0.0802,0.07 0.0892,0.273 -0.41756,0.25049 0.16833,0.74101 -0.24012,0.587 -0.45539,-0.0268 -0.0209,0.34063 -1.03022,-0.67835 -0.47159,0.28904 -0.0571,-0.105 -0.15154,-0.266 0.32381,-0.12239 0.0841,-0.38871 -0.2621,-0.17565 0.0486,-0.33545 -0.40923,-0.25874 0.0481,-0.105\"},\"51530\":{\"name\":\"Buena Vista, VA\",\"path\":\"m 822.28865,291.64877 0.2936,-0.0204 0.0401,0.70265 -0.3692,0.58702 -0.25622,0.35667 -0.21114,-0.17641 0.12825,-0.31508 -0.17931,-0.51002 0.31265,-0.27007 z\"},\"51580\":{\"name\":\"Covington, VA\",\"path\":\"m 810.61834,292.50855 0.13916,0.35731 0.23275,0.42385 0.0158,0.56834 -0.29444,0.1682 -0.32947,-0.23465 0.13016,-0.51516 -0.0979,-0.69134 z\"},\"51678\":{\"name\":\"Lexington, VA\",\"path\":\"m 820.87404,291.27569 -0.55625,0.618 -0.20041,-0.15086 -0.0262,-0.273 0.0876,-0.18664 0.20743,-0.16994 0.48778,0.16244\"},\"51820\":{\"name\":\"Waynesboro, VA\",\"path\":\"m 828.75919,284.08259 0.51329,-0.57391 0.41828,0.0292 -0.0782,-0.28188 0.17014,-0.37457 -0.18862,-0.0624 -0.11868,-0.37542 -0.60441,0.084 -0.53842,0.2383 -0.0639,0.33329 -0.19231,0.29134 0.0887,0.32134 0.36122,0.0762 z\"},\"51790\":{\"name\":\"Staunton, VA\",\"path\":\"m 826.08518,280.71336 0.46422,0.23753 -0.19283,0.2107 0.2173,0.15616 -0.002,0.42939 -0.0928,0.35861 -0.33697,0.351 -0.50025,-0.14847 -0.273,0.19239 -0.44563,-0.2374 -0.14278,-0.39012 0.0499,-0.403 0.20468,-0.34959 0.82806,-0.12906 z\"},\"51540\":{\"name\":\"Charlottesville, VA\",\"path\":\"m 836.49907,281.81229 0.10469,0.38112 0.19826,-0.0383 0.14059,0.36566 0.0703,0.33831 -0.28519,0.29534 -0.26566,-0.0172 -0.0801,0.20581 -0.31581,0.0146 -0.21751,0 -0.083,-0.22456 -0.0321,-0.192 0.0571,-0.28775 0.0643,-0.38187 0.30092,-0.31363 z\"},\"51660\":{\"name\":\"Harrisonburg, VA\",\"path\":\"m 827.4926,274.41149 -0.2027,0.0331 -0.154,0.47009 0.17707,0.10357 0.15879,0.27512 -0.17785,0.53857 0.0856,0.13608 0.40759,-0.0981 0.0417,-0.47131 0.532,-0.14932 0.44418,-0.20786 -0.0158,-0.42592 -0.206,-0.0893 -0.0274,-0.27954 -0.30699,0.15856 0.007,-0.18742 -0.20325,-0.29547 -0.35719,-0.24299 z\"},\"51003\":{\"name\":\"Albermarle, VA\",\"path\":\"m 832.20621,277.60214 5.57146,1.157 3.07367,0.633 -1.19452,3.225 -2.42826,5.57551 0.0499,0.716 -0.025,0.09 -0.0892,0.08 -0.63406,-0.10787 -0.43566,0.30787 -0.8326,0.24 -0.36193,0.28349 -0.0571,0.152 -0.33873,0.14695 -0.49697,-0.36734 0.25467,-0.40689 -4.20241,-5.90572 0.67571,-0.586 0.24247,-0.426 0,-0.211 -0.2086,-0.882 0.10341,-1.164 0.11232,-0.644 0.30532,-0.476 0.59543,-0.687 0.52951,-0.0804 -0.20899,-0.66062 4e-5,-5e-4 4e-5,-5e-4 4e-5,-5e-4 z m 3.64868,4.66134 -0.0643,0.38187 -0.0571,0.28775 0.0321,0.192 0.083,0.22456 0.21751,0 0.31581,-0.0146 0.0801,-0.20581 0.26566,0.0172 0.28519,-0.29535 -0.0703,-0.33831 -0.14059,-0.36566 -0.19826,0.0383 -0.10469,-0.38112 -0.34322,0.14556 z\"},\"51065\":{\"name\":\"Fluvanna, VA\",\"path\":\"m 839.65682,282.61714 4.73887,1.485 -1.0198,3.898 -0.7747,0.7915 -0.40378,0.7915 -0.66322,-0.005 -0.35422,-0.19788 -0.5558,0.0156 -0.75738,-0.25716 -0.79296,0.0749 -1.14869,-0.37574 -0.42537,-0.57732 -0.27121,-0.0674 2.42826,-5.57551\"},\"51049\":{\"name\":\"Cumberland, VA\",\"path\":\"m 842.60119,288.79164 0.7747,-0.7915 0.96095,0.44375 0.45755,0.28478 -0.31079,0.6822 0.82848,0.36427 -0.0974,4.61892 -0.97295,0.72838 -0.57879,1.7877 -1.62375,1.71657 -0.51753,0.16443 -0.56137,0.12059 -0.73672,-0.49315 -0.60521,-0.0694 1.45942,-4.08107 1.19095,-3.4 -0.0713,-1.285 z\"},\"51147\":{\"name\":\"Prince Edward, VA\",\"path\":\"m 843.66293,296.91014 0.37975,1.625 0.61866,4.033 -0.74539,0.5206 -1.63676,0.31602 -0.13165,0.40369 -1.11071,0.43293 -0.30852,-0.14869 -0.29118,0.0247 -0.56854,-0.46072 -0.20451,-0.46071 -0.9499,-0.2527 -0.41253,0.33668 -1.10421,-0.55721 -0.0988,-0.3492 -0.5495,-0.15852 -0.27475,0.25011 -0.17074,-0.0966 -0.0166,-1.28734 0.7383,-1.81384 0.4754,-0.4361 -0.15155,-0.26138 0.0492,-1.11235 0.7513,0.90577 0.78552,0.15291 0.8831,-0.16697 0.60521,0.0694 0.73672,0.49314 0.56137,-0.12059 0.51753,-0.16443 1.62375,-1.71657\"},\"51037\":{\"name\":\"Charlotte, VA\",\"path\":\"m 833.79623,302.65643 0.33972,0.0863 0.21107,-0.49111 0.13213,-0.20496 0.4479,-0.0175 0.40842,-0.10628 0.1716,-0.45164 0.29988,-0.0372 0.28015,-0.35297 0.0166,1.28734 0.17074,0.0966 0.27475,-0.25011 0.5495,0.15852 0.0988,0.3492 1.10421,0.55721 0.41253,-0.33668 0.9499,0.2527 0.20451,0.46071 0.56854,0.46072 0.29118,-0.0247 0.30852,0.14869 -0.0558,4.34695 -1.89614,4.8836 -1.03454,-0.87823 0.42138,-0.6314 -0.42082,-0.38256 0.17255,-0.57398 -0.41999,-0.3818 0.32651,-0.51579 -0.47743,-0.26696 -1.43446,-1.18572 0.38393,-0.3818 -0.47741,-0.99431 -0.0395,-0.30593 -0.21279,-0.14978 -0.12962,0.2103 0.16846,0.26941 -0.28294,0.10909 -0.14276,0.76643 -0.61251,-0.61397 -1.47085,0.40305 0.0487,-0.71818 -0.21787,-0.19731 0.56347,-4.39897\"},\"51117\":{\"name\":\"Mecklenburg, VA\",\"path\":\"m 849.85216,309.52636 0.76396,5.49678 -4.99738,0.957 -2.3944,0.481 -4.99917,0.933 -0.25219,-0.72683 0.2986,-0.22315 -0.0952,-2.31359 0.80085,-0.44629 0.73296,0.62628 1.534,0.47694 -0.0138,-0.13403 -1.42577,-0.55491 -0.71977,-0.62279 1.89614,-4.88768 1.53221,0.49331 1.00414,-0.14133 0.34128,0.24726 0.173,-0.27164 1.68033,0.62561 2.6037,0.13014 0.0813,-0.29775 1.45512,0.15267\"},\"51570\":{\"name\":\"Colonial Heights, VA\",\"path\":\"m 858.84732,297.13344 -0.0915,-0.56614 -0.38077,-0.29431 0.0537,-0.28936 0.36534,0.0188 0.27131,-0.17204 0.20102,0.0476 0.10726,-0.17115 -0.0589,-0.17823 0.0619,-0.0869 0.11656,0.0459 0.10094,0.19821 -0.0465,0.2416 -0.1402,0.14003 -0.0392,0.13 0.12251,0.49424 -0.32281,0.17393 -0.0956,0.14536 -0.0966,0.0303 -0.12837,0.09\"},\"51111\":{\"name\":\"Lunenburg, VA\",\"path\":\"m 849.29858,303.98314 0.55358,5.54322 -1.45512,-0.15267 -0.0813,0.29776 -2.60371,-0.13015 -1.68033,-0.62561 -0.17299,0.27163 -0.34128,-0.24724 -1.00414,0.14132 -1.53221,-0.49307 0.0558,-4.34695 1.1107,-0.43292 0.13164,-0.4037 1.63676,-0.31602 0.74538,-0.5206 0.82391,0.84337 0.41162,-0.061 0.34513,0.21829 0.27863,0.51088 0.68893,-0.0578 0.978,0.43283 z\"},\"51670\":{\"name\":\"Hopewell, VA\",\"path\":\"m 860.0051,295.13313 0.59123,-0.1699 0.21809,-0.0665 0.18685,-0.17815 0.15283,0.25217 0.36727,0.15265 -0.13563,0.35389 -0.54188,0.35389 -0.13491,0.32009 -0.18373,-0.11931 -0.22987,0.20219 -0.11657,-0.79594 -0.17368,-0.29607\"},\"51510\":{\"name\":\"Alexandria, VA\",\"path\":\"m 858.34,259.68359 -0.78727,0.0527 0.0234,0.30078 -0.66992,-0.39649 -0.36761,0.45797 0.10905,0.6963 0.96418,-0.32514 0.83149,0.14548 -0.01,-0.10156 z\"},\"51139\":{\"name\":\"Page, VA\",\"path\":\"m 834.71065,264.30369 2.09358,1.09245 -0.48769,0.72773 -0.0523,0.89098 0.34219,0.0747 -0.0874,0.60874 0.17398,0.44042 -0.26137,0.44042 -1.35498,3.831 -0.35301,1.336 -0.95027,-0.02 -0.27991,-0.09 -1.34072,-0.542 -1.41738,-0.729 0.47246,-2.291 0.56517,-2.032 0.4992,-1.316 0.74524,0.159 0.52951,-0.69 1.16373,-1.89745\"},\"51171\":{\"name\":\"Shenandoah, VA\",\"path\":\"m 835.22639,260.04601 -0.24567,0.79205 0.77898,0.57156 -0.34943,1.51837 -0.69962,1.3757 -1.16373,1.89745 -0.52951,0.69 -0.74524,-0.159 -0.4992,1.316 -0.56517,2.032 -4.64973,-2.876 0.96914,-2.8846 0.38773,-0.38263 0.16213,-0.57755 0.47482,-0.19207 0.0905,0.55151 0.67694,-0.69487 0.21626,-0.77995 0.43149,-0.61665 0.42026,0.25996 0.57439,-1.39015 -0.29825,-0.14899 0.33335,-0.75587 1.79388,0.54158 -0.0173,-0.71741 0.60597,-0.94888 0.45135,-0.0764 0.6391,-0.30835 0.25257,0.46471 -0.27753,0.49784 0.68327,0.42053 0.098,0.57514\"},\"51043\":{\"name\":\"Clarke, VA\",\"path\":\"m 838.98788,253.18173 4.16336,2.19341 -0.42343,0.80679 0.10826,0.6517 -0.3459,0.23079 -0.1951,0.53631 -0.83757,1.00155 -0.70065,0.84886 -1.05314,-0.49862 -0.66843,0.28405 -1.07156,-0.37375 0.12382,-0.55136 -0.22255,-0.28581 0.61611,-0.69709 -0.0997,-0.32764 0.60651,-3.81919\"},\"51840\":{\"name\":\"Winchester, VA\",\"path\":\"m 837.12779,255.27286 0.39155,0.29869 -0.48139,1.21034 -0.4186,-0.15722 0.0523,-0.70644 -0.23353,-0.078 0.1107,-0.54431 0.30649,-0.0408 z\"},\"51069\":{\"name\":\"Frederick, VA\",\"path\":\"m 832.74,249.8566 2.29526,1.18441 3.95262,2.14072 -0.60651,3.81919 0.0997,0.32764 -0.61611,0.69709 0.22255,0.28581 -0.12382,0.55136 -0.17143,0.45857 -2.5659,0.72462 -0.098,-0.57514 -0.68327,-0.42053 0.27753,-0.49784 -0.25257,-0.46471 -0.6391,0.30835 -0.45135,0.0764 -0.60597,0.94888 0.0173,0.71741 -1.79388,-0.54158 0.50308,-0.97514 0.53719,-0.34477 0.37023,-0.40441 0.0602,-0.45211 0.46564,-0.65484 -0.40511,-0.28764 -0.0341,-0.20332 -0.21958,-0.13586 0.42129,-1.14778 -0.40511,-0.10213 0.15146,-0.16959 0.13458,-0.55749 0.48961,-0.85345 0.18668,-0.86704 -0.42405,-0.0357 0.16539,-0.7579 -0.33981,-0.3889 z m 3.8088,5.43829 -0.1107,0.54431 0.23352,0.078 -0.0523,0.70644 0.4186,0.15722 0.48139,-1.21034 -0.39155,-0.29869 -0.2725,-0.0178 z\"},\"51187\":{\"name\":\"Warren, VA\",\"path\":\"m 837.96372,258.86282 1.07156,0.37375 0.66843,-0.28405 1.05314,0.49862 -0.45682,1.22331 -0.35085,0.21712 -0.10598,0.40758 0.32438,0.61 -0.94085,0.28348 -0.19425,0.58239 -0.58064,0.96489 -0.13813,0.96488 -0.70032,0.63137 -0.80916,0.06 -2.09358,-1.09245 0.69962,-1.3757 0.34943,-1.51837 -0.77898,-0.57156 0.24567,-0.79205 2.5659,-0.72462 0.17143,-0.45857\"},\"51157\":{\"name\":\"Rappahannock, VA\",\"path\":\"m 836.80423,265.39614 0.80916,-0.06 0.70032,-0.63137 0.13813,-0.96489 0.58064,-0.96488 0.7097,0.4426 0.0749,0.17355 0.4004,0.0754 0.55732,0.3445 0.38484,0.0495 0.26941,0.81906 0.16359,0.43426 0.49066,0.43426 0.76128,0.218 0.34766,-0.09 -1.62419,1.976 -1.83993,2.795 -1.01088,-0.06 -2.28564,-1.806 0.26137,-0.44042 -0.17398,-0.44042 0.0874,-0.60874 -0.34219,-0.0747 0.0523,-0.89098 0.48769,-0.72773\"},\"51113\":{\"name\":\"Madison, VA\",\"path\":\"m 836.43161,268.57914 2.28564,1.806 2.99433,2.55175 -0.29299,0.89619 0.7075,0.65798 -0.24534,0.2411 0.20969,0.22598 -0.43372,0.79429 -0.49179,0.14383 -0.90119,1.15394 -0.51787,0.25956 -0.41334,-0.34445 -0.0533,-0.26315 -0.41049,-0.19302 -0.75023,0.17529 -2.10852,-1.84236 -0.38099,-1.78961 -0.55242,-0.64232 1.35498,-3.831\"},\"51109\":{\"name\":\"Louisa, VA\",\"path\":\"m 840.85134,279.39214 1.8891,-0.70445 2.64474,0.21545 2.09368,-0.12405 1.90957,0.92306 0.14904,0.38224 1.04656,0.39375 -0.70602,6.718 -0.58525,-0.4446 -1.20498,0.0397 -0.41006,-0.7914 -0.82886,-1.03089 -0.97339,-0.0192 -0.36775,-0.42054 -1.11203,-0.42706 -4.73887,-1.485 1.19452,-3.225\"},\"51075\":{\"name\":\"Goochland, VA\",\"path\":\"m 852.93742,287.16414 0.0544,0.83425 0.0171,1.07672 0.65122,0.8156 -0.50516,0.61043 -0.87547,-0.52845 -0.58249,-0.008 -0.64411,-0.34071 -0.68163,0.22692 -0.3561,-9.5e-4 -0.0824,-0.39193 -1.57993,-0.73374 -0.1801,-0.35937 -0.32659,-0.001 -0.4393,0.58503 0.0894,0.36515 0.2877,0.27477 -0.16752,0.48692 -0.58389,0 -0.51981,-0.30026 -1.00811,0.15548 -0.19255,-0.168 -0.82848,-0.36427 0.31079,-0.6822 -0.45755,-0.28478 -0.96095,-0.44375 1.0198,-3.898 1.11203,0.42706 0.36775,0.42054 0.97339,0.0192 0.82886,1.03089 0.41006,0.7914 1.20498,-0.0397 0.58525,0.4446 2.44362,0.13421 0.61579,-0.16421\"},\"51137\":{\"name\":\"Orange, VA\",\"path\":\"m 838.86879,276.50914 0.41049,0.19302 0.0533,0.26315 0.41334,0.34445 0.51787,-0.25956 0.90119,-1.15394 0.49179,-0.14383 0.43372,-0.79429 0.83247,-0.29039 0.76676,-0.91461 1.35142,-0.892 0.95561,-0.331 0.41006,-0.10625 1.01785,0.20586 -0.13202,-0.58263 0.34435,0.058 0.84152,0.257 0.28348,0.146 -0.18815,0.76792 -3.18861,5.62708 -2.64474,-0.21545 -1.8891,0.70445 -3.07367,-0.633 1.09112,-2.25\"},\"51007\":{\"name\":\"Amelia, VA\",\"path\":\"m 845.21467,294.39406 0.0974,0.37908 0.3958,-0.04 0.46355,-0.29 0.64718,-0.58 0.73811,-0.499 1.14638,-0.103 0.48316,0.07 0.0802,0.06 0.58656,0.481 0.36906,0.612 -0.32092,0.06 -0.0321,0.04 0.0891,0.779 0.0963,0.394 0.44206,0.15831 0.17777,0.35486 0.5169,-0.0958 0.41116,0.15903 -0.0863,0.56603 0.72324,0.27466 0.17211,0.29486 0.41417,0.069 0.52369,-0.86191 0.30296,0.25641 0.46724,-0.23641 0.41897,0.565 -0.10533,0.52095 -0.45289,0.2727 -0.91628,1.18295 -0.80044,0.1734 -8.22081,-0.866 -0.37975,-1.625 0.57879,-1.7877 0.97295,-0.72838\"},\"51145\":{\"name\":\"Powhatan, VA\",\"path\":\"m 851.11883,293.10766 -0.0658,0.97773 -0.83087,0.39175 -0.36906,-0.612 -0.58656,-0.481 -0.0802,-0.06 -0.48316,-0.07 -1.14638,0.103 -0.73811,0.499 -0.64718,0.58 -0.46355,0.29 -0.3958,0.04 -0.0974,-0.37908 0.0974,-4.61892 0.19255,0.168 1.00811,-0.15548 0.51981,0.30026 0.58389,0 0.16752,-0.48692 -0.2877,-0.27477 -0.0894,-0.36515 0.4393,-0.58503 0.32659,10e-4 0.1801,0.35937 1.57993,0.73374 0.0824,0.39193 0.3561,9.5e-4 0.68163,-0.22692 0.64411,0.34071 0.58249,0.008 0.8754,0.52588 z\"},\"51135\":{\"name\":\"Nottoway, VA\",\"path\":\"m 844.04268,298.53514 8.22081,0.866 -0.29785,0.66987 -0.54126,0.17534 -0.38166,0.41473 -0.41755,0.16449 0.71292,3.48937 -1.09876,0.35519 -0.94075,-0.68699 -1.11101,0.47153 -0.97801,-0.43283 -0.68893,0.0578 -0.27863,-0.51088 -0.34513,-0.21829 -0.41162,0.061 -0.82391,-0.84337 z\"},\"51025\":{\"name\":\"Brunswick, VA\",\"path\":\"m 849.29858,303.98314 0.94075,0.68699 1.09876,-0.35519 2.27089,-0.0449 1.4362,1.16455 1.01226,0.2676 0.8433,4.108 -1.26227,4.234 -2.38548,0.456 -2.63687,0.523 -0.76396,-5.49678 -0.55358,-5.54322\"},\"51053\":{\"name\":\"Dinwiddie, VA\",\"path\":\"m 854.53843,297.25114 0.58974,-0.3169 0.54008,0.5437 0.43292,0.0656 0.21777,0.28074 0.38328,-0.13302 0.34886,0.1983 0.34886,-0.33131 0.95384,-0.0521 0.12969,0.76381 0.51382,0.0596 0.0424,0.40301 0.4088,-0.22139 0.8112,4.041 -3.43202,3.393 -0.7702,-0.242 -1.01226,-0.2676 -1.4362,-1.16455 -2.27089,0.0449 -0.71292,-3.48937 0.41755,-0.16449 0.38166,-0.41473 0.54126,-0.17534 0.29785,-0.66987 0.80044,-0.1734 0.91628,-1.18295 0.45289,-0.2727 0.10533,-0.52095\"},\"51595\":{\"name\":\"Emporia, VA\",\"path\":\"m 859.5898,309.88454 -0.21179,0.0554 -0.006,0.20964 -0.28602,0.0296 -0.003,0.10672 -0.25789,-0.0407 -0.2199,-0.484 -0.0232,-0.155 0.11945,-0.20214 0.59582,-0.12215 0.0304,-0.205 0.0891,-0.01 z\"},\"51081\":{\"name\":\"Greensville, VA\",\"path\":\"m 860.97459,309.15014 -1.06016,1.03274 0.46982,-0.0215 0.36696,0.32561 0.61125,-0.13724 1.06124,0.46703 0.19982,0.55703 0.30268,0.42847 0.15853,0.30312 1.03128,0.26677 -8.47754,1.672 1.26227,-4.234 -0.8433,-4.108 0.7702,0.242 0.40269,0.0437 0.63113,0.3422 0.55068,-0.19256 0.5991,0.0173 0.61524,-0.41853 0.21425,3.3179 1.1339,0.1 0,-5e-4 0,-5e-4 0,-5e-4 0,-5e-4 0,-5e-4 0,-5e-4 0,-5e-4 z m -1.6471,-0.0754 -0.0304,0.205 -0.59582,0.12215 -0.11945,0.20214 0.0232,0.155 0.2199,0.484 0.25789,0.0407 0.003,-0.10672 0.28602,-0.0296 0.006,-0.20964 0.21179,-0.0554 -0.1733,-0.81743 z\"},\"51735\":{\"name\":\"Poquoson, VA\",\"path\":\"m 877.67552,296.12768 -0.39575,-0.51556 0.001,-0.36671 0.0105,-0.26907 0.44847,-0.0702 0.0168,0.37263 0.31364,-0.10694 -0.11405,-0.43074 0.36785,-0.10755 0.12684,0.33804 0.50424,0.40971 0.0316,-0.22486 0.62014,0.36334 -0.10126,0.13731 -0.33645,0.16036 -0.20035,0.017 -0.26299,0.17137 -0.31471,-0.13729 -0.17747,-0.0655 -0.33034,0.12053 -0.002,0.003 -0.2061,0.20085\"},\"51620\":{\"name\":\"Franklin, VA\",\"path\":\"m 869.87619,307.18899 0.71699,1.43015 -0.009,0.04 -0.6816,-0.32802 -0.34463,0.0137 0.0867,-0.31585 -0.23934,0.006 -0.0656,-0.22403 0.21563,-0.14982 -0.0539,-0.31703 0.37468,-0.15\"},\"51175\":{\"name\":\"Southampton, VA\",\"path\":\"m 869.87619,307.18899 -0.37468,0.15 0.0539,0.31703 -0.21563,0.14982 0.0656,0.22403 0.23934,-0.006 -0.0867,0.31585 0.34463,-0.0137 0.6816,0.32802 0.009,-0.04 0.23355,0.06 -0.045,1.1785 -0.27684,0.61176 0.30004,0.37171 0.1252,0.18203 -4.45183,0.836 -2.3623,0.516 -1.03128,-0.26677 -0.15853,-0.30312 -0.30268,-0.42847 -0.19982,-0.55703 -1.06124,-0.46703 -0.61125,0.13724 -0.36696,-0.32561 -0.46982,0.0215 1.06016,-1.03274 7.46488,-7.096 1.61528,-1.551 0.007,0.81429 0.98403,0.9686 -0.5589,2.78577 -0.61033,2.11719\"},\"51650\":{\"name\":\"Hampton, VA\",\"path\":\"m 877.67552,296.12768 0.28389,-0.0432 0.043,0.11068 0.45062,0.002 0.14092,0.19592 0.24671,0.0254 -0.034,0.20547 -0.3342,0.25968 0.0359,0.42909 0.13863,0.15152 0.0551,-0.15425 -0.0197,-0.13271 0.26448,-0.37985 -0.0433,-0.24482 0.13843,-0.0598 -0.0106,-0.26093 0.17001,-0.0588 0.12639,0.30102 0.13638,0.10464 -0.002,-0.14152 -0.0586,-0.28381 0.22865,-0.12286 0.0873,-0.17277 0.19702,0.0584 0.0972,0.41809 -0.12791,1.26028 0.0405,0.3655 -0.16201,0.32012 -0.2022,0.0858 -0.0236,-0.16106 0.19232,-0.27924 -0.025,-0.25806 -0.1016,0.0182 -0.0481,0.20178 -0.10076,0.16062 -0.29762,0.0244 -0.0979,-0.0128 -0.0876,0.28677 -0.3522,0.20886 -0.30221,0.20398 -0.20038,-0.19549 -0.17604,0.23047 -0.51865,-0.63914 -0.16572,0.10326 -0.31175,-0.29837 0.008,-0.53255 -0.13763,-0.31348 0.16474,-0.37805 0.61302,-0.22669 0.0813,-0.38177\"},\"51830\":{\"name\":\"Williamsburg, VA\",\"path\":\"m 871.88355,294.20084 -0.28341,-0.0263 -0.32193,0.10714 -0.25691,-0.0757 -0.19968,-0.17 -0.0909,-0.185 -0.0302,-0.23963 0.17191,-0.10182 -0.24408,-0.46393 0.16083,-0.16209 0.29939,0.55453 0.34548,-0.0251 0.091,-0.28969 0.21494,0.0221 0.0609,0.47319 0.0348,0.21319 0.20905,0.0319 0.0298,0.23357 z\"},\"51700\":{\"name\":\"Newport News, VA\",\"path\":\"m 873.63832,294.5012 0.35939,-0.0284 0.10461,-0.18345 2.47518,2.32004 0.4037,0.12672 -0.16473,0.37805 0.13762,0.31348 -0.008,0.53255 0.31176,0.29837 0.16571,-0.10326 0.51866,0.63914 0.17603,-0.23047 0.20038,0.19549 -0.24001,0.46003 -0.0998,0.40649 -0.34109,-0.10284 -0.3609,-0.53011 0.0135,-0.2841 -0.2311,-0.11532 -0.18441,-0.29164 -0.40317,-0.22995 -0.24243,0.0132 -0.67227,-0.31796 -0.1089,-0.2265 0.10511,-0.14571 -0.0247,-0.26655 -0.10607,0.0276 -0.14218,0.13758 -0.19282,-0.0329 10e-4,-0.132 -0.41034,-0.46973 -0.13044,0.0424 0.001,0.16328 0.44995,0.46577 -0.002,0.16699 -0.18641,0.0107 -0.16985,-0.059 -0.0727,-0.20257 -0.62844,-0.37894 -0.33298,-0.008 -0.15333,-0.146 0.15964,-1.13484 0.10614,-0.22396 0.30554,-0.17966 -0.3148,-0.41228 -0.0711,-0.2572\"},\"51740\":{\"name\":\"Portsmouth, VA\",\"path\":\"m 878.49239,300.93969 0.36099,-0.0539 -0.009,-0.60333 0.57432,-0.067 0.10816,0.86592 0.27934,0.30322 -0.0726,0.24505 0.48107,-0.0347 0.0658,0.18383 0.30731,-0.022 0.14368,0.23236 0.13206,0.31734 0.12536,0.47221 -1.51833,0.58072 -0.55669,-0.58856 0.0443,-0.46836 0.0616,-0.25912 -0.29383,-0.36731 -0.52586,0.0536 0.20098,-0.34052 0.0917,-0.4498\"},\"51199\":{\"name\":\"York, VA\",\"path\":\"m 870.78916,292.88356 -0.17542,-0.26967 -0.0806,-0.27643 -0.33785,0.0267 -0.0714,-0.42342 0.25014,-0.45099 0.51363,0.0886 0.55957,-0.28804 0.31991,0.0916 0.12162,0.30207 0.37863,0.24232 0.16943,0.36679 0.84205,0.60875 0.16831,0.007 0.0684,0.20988 0.59645,-0.006 0.30944,0.28714 0.38474,0.2463 0.27545,0.0881 0.24328,0.17837 0.49934,0.129 0.87248,-0.40786 0.11276,-0.20511 0.46645,-0.17625 0.014,0.25906 -0.29403,0.12234 -0.20797,0.18375 0.007,0.14377 0.2852,-0.11538 0.21095,0.18934 0.0431,0.29603 0.0339,0.23137 -0.19583,-0.0641 -0.22995,-0.16511 -0.3546,0.12061 0.0444,0.0991 0.34946,-0.11938 0.13758,0.13976 0.007,0.29598 -0.158,0.13184 -0.1013,0.27238 0.0425,0.13462 -0.29839,0.0352 0.0656,0.10614 0.35872,-0.0431 0.0253,-0.21545 0.2206,-0.0466 -10e-4,0.36671 0.39575,0.51556 -0.0813,0.38177 -0.61302,0.22669 -0.4037,-0.12672 -2.47518,-2.32004 -0.10461,0.18345 -0.35939,0.0284 -0.11509,-0.1522 -0.16056,-0.36009 -0.35545,0.23109 -0.47889,-0.0158 -0.25246,-0.18654 -0.10954,-0.29698 -0.13552,-0.0956 -0.23027,-0.006 -0.0606,-0.46915 -0.21494,-0.0221 -0.091,0.28969 -0.34548,0.0251 -0.29939,-0.55453\"},\"51095\":{\"name\":\"James City, VA\",\"path\":\"m 869.60807,289.43374 0.73653,0.72985 0.52765,0.29728 0.57496,0.82952 -0.55957,0.28804 -0.51363,-0.0886 -0.25014,0.45099 0.0714,0.42342 0.33785,-0.0267 0.0806,0.27643 0.17542,0.26967 -0.16083,0.16209 0.24408,0.46393 -0.17191,0.10182 0.0302,0.23963 0.0909,0.185 0.19968,0.17 0.25691,0.0757 0.32193,-0.10714 0.28341,0.0263 0.19103,-0.10365 -0.0299,-0.23358 -0.20913,-0.0319 -0.035,-0.21322 0.23026,0.006 0.13552,0.0957 0.10954,0.29712 0.25246,0.18667 0.47889,0.0158 0.35545,-0.23105 0.16056,0.36012 0.11509,0.15224 0.0711,0.2572 0.3148,0.41228 -0.30554,0.17966 -0.10614,0.22396 -0.23668,-0.15261 -0.1091,-0.31579 -0.33646,-0.35907 -0.33097,-0.17082 -0.79047,0.0975 -0.1023,0.23771 -0.6097,0.13114 -0.26483,0.0459 -0.0361,0.0973 0.31669,0.1253 -0.0651,0.27747 -0.25821,0.0218 -0.38324,-0.36018 -0.4997,-0.44626 -0.4886,-0.0988 -0.8308,0.18009 0.008,-0.24925 -0.1521,-0.2915 -0.0902,-0.41234 0.17933,-0.0329 0.10172,-0.19162 -0.30192,-0.11485 -0.0656,-0.11346 0.12286,-0.12773 -0.24242,-0.15648 -0.25338,-0.74104 0.0256,-0.33187 -0.25569,0.0244 -0.1534,0.32197 -0.19989,0.15459 -0.0649,-0.11629 0.12105,-0.29298 0.0745,-0.48826 0.0707,-0.25416 -0.27363,8.3e-4 -0.0744,-0.18666 0.16777,-0.0265 0.0701,-0.003 -0.007,-0.35749 -0.007,-0.27999 0.36914,-0.48435 0.6907,-0.0733 1.01361,0.0881 0.14681,-0.71503\"},\"51181\":{\"name\":\"Surry, VA\",\"path\":\"m 871.18806,296.55567 0.25646,0.0615 0.3132,-0.17265 0.1082,-0.59121 0.10191,-0.1799 -0.0534,-0.2153 0.13667,-0.18427 0.48747,0.35776 -0.0866,0.31351 0.13112,0.58211 -0.15453,1.85852 -2.37382,2.11744 -1.61528,1.551 -0.48316,-1.223 -0.20216,-0.82512 0.0745,-0.27063 -0.067,-0.1757 -0.27622,-0.0284 -0.25555,0.18967 -0.97081,-0.30222 -0.0738,0.2341 -0.49237,0.0285 -0.12249,-0.40614 -0.42765,0.0562 -0.29818,-0.23044 -0.57318,0.003 -0.21044,-0.13473 1.21797,-2.11369 0.75693,-0.37256 0.0911,-0.52051 0.10371,-0.14952 0.30957,-0.44584 0.27802,0.0242 0.39822,0.0712 0.93062,0.52843 0.50991,-0.2799 1.28103,-0.26255 0.0421,0.36757 0.33734,-0.0322 0.23517,0.30901 0.30268,0.0961 z\"},\"51183\":{\"name\":\"Sussex, VA\",\"path\":\"m 864.06074,298.97514 0.21044,0.13473 0.57318,-0.003 0.29818,0.23044 0.42765,-0.0562 0.12249,0.40614 0.49237,-0.0285 0.0738,-0.2341 0.97081,0.30222 0.25555,-0.18967 0.27622,0.0284 0.067,0.1757 -0.0745,0.27063 0.20216,0.82512 0.48316,1.223 -7.46488,7.096 -1.1339,-0.1 -0.21425,-3.3179 -0.61524,0.41853 -0.5991,-0.0173 -0.55068,0.19256 -0.63113,-0.3422 -0.40269,-0.0437 3.43202,-3.393 3.80108,-3.576\"},\"51149\":{\"name\":\"Prince George, VA\",\"path\":\"m 861.70192,295.01896 0.18734,-0.11813 -0.0163,-0.25341 0.25414,0.11564 0.20368,-0.0516 0.069,0.31292 0.21797,0.11974 0.21685,-0.0743 0.19031,-0.27806 0.21984,-0.007 0.0863,-0.12749 0.19739,-0.0115 0.23023,7.4e-4 0.30006,-0.1655 0.15153,-0.255 0.12113,0.11379 0.17417,0.64161 0.52365,0.22335 0.1734,-0.15782 0.12036,-0.35625 0.22691,-0.28669 0.20211,-0.17778 0.0531,-0.12878 0.26266,0.0733 -0.0419,0.30956 0.25598,0.28193 0.19549,0.53427 -0.19297,0.0801 -0.19889,0.20086 0.0412,0.39083 -0.0911,0.52051 -0.75693,0.37256 -1.21797,2.11369 -3.80108,3.576 -0.8112,-4.041 0.18582,-0.23202 0.46878,0.0766 0.28098,-0.15708 -0.0682,-0.31922 0.2465,-0.27185 -0.55166,-0.38409 -0.0308,-0.29426 -0.42106,-0.20573 -0.0955,-0.51474 0.19175,-0.22748 0.0962,-0.2119 -0.0837,-0.60056 0.14191,-0.0742 0.19543,0.0395 0.17367,0.29607 0.11658,0.79594 0.22987,-0.20219 0.18373,0.11931 0.13491,-0.32009 0.54188,-0.35389 0.13563,-0.35389 z\"},\"51730\":{\"name\":\"Petersburg, VA\",\"path\":\"m 859.55892,296.71854 0.42109,0.20573 0.0308,0.29427 0.55164,0.38408 -0.24652,0.27185 0.0682,0.31921 -0.28103,0.15709 -0.46878,-0.0766 -0.18582,0.23202 -0.4088,0.22139 -0.0424,-0.40301 -0.51382,-0.0596 -0.12969,-0.76381 0.49354,-0.3727 0.12837,-0.09 0.0966,-0.0303 0.0958,-0.14212 z\"},\"51087\":{\"name\":\"Henrico, VA\",\"path\":\"m 852.93742,287.16414 0.5939,-0.0933 0.89233,0.20517 0.89843,-0.56259 1.0663,0.25806 1.02695,1.7097 2.95693,0.71254 0.37797,0.03 1.21493,1.00829 -0.5135,2.0583 0.31734,0.31272 -0.26149,0.28425 -0.22043,-0.22942 -0.18246,-0.0112 0.0358,0.34941 -0.2822,0.0777 0.0815,0.35221 -0.12415,0.29979 -0.53211,-0.0233 -0.13629,-0.28716 0.14661,-0.68095 -0.2822,-0.0872 -0.2382,0.6901 -0.50208,0.0964 -0.27119,-0.21698 -0.2382,0.14584 -0.4691,-0.72825 -0.51857,-0.0356 0.009,-0.54683 -0.0338,-0.44746 -0.16435,-0.58735 0.0315,-0.40083 0.47912,0.0934 -0.0326,-0.78268 -0.52685,-0.30707 -0.14449,-0.51223 -0.37282,0.0213 -0.23294,-0.37964 -0.67124,0.23584 0.2,0.39873 -0.48179,0.11517 -0.67159,-0.23242 -0.0993,0.47157 0.33339,0.0628 -0.038,0.13098 -1.24088,0.43804 -0.96185,-0.0819 0.50516,-0.61043 -0.65122,-0.8156 -0.0171,-1.07672 -0.0544,-0.83425\"},\"51041\":{\"name\":\"Chesterfield, VA\",\"path\":\"m 854.11678,290.58308 0.24523,0.42083 0.45614,-0.0775 0.28437,-0.22566 0.16314,0.23129 0.27504,-0.12308 0.29958,0.83885 0.34619,0.54042 0.42461,0.0908 0.4246,-0.15166 0.34563,-0.0422 0.40215,0.17672 -0.009,0.54683 0.51858,0.0356 0.46909,0.72825 0.2382,-0.14584 0.27119,0.21698 0.50208,-0.0964 0.2382,-0.6901 0.2822,0.0872 -0.14661,0.68095 0.13629,0.28715 0.53211,0.0233 0.12415,-0.2998 -0.0815,-0.3522 0.2822,-0.0777 0.20459,0.25721 -0.29019,0.64143 -0.18388,0.31868 -0.24642,0.11474 -0.0282,0.42503 -0.59123,0.1699 -0.19554,-0.0392 -0.14196,0.0743 0.0837,0.60062 -0.0963,0.21193 -0.19175,0.2275 0.0955,0.51476 -0.39079,0.14269 0.32273,-0.17214 -0.12258,-0.49245 0.0392,-0.13 0.1402,-0.14003 0.0465,-0.2416 -0.10094,-0.19821 -0.11656,-0.0459 -0.0619,0.0869 0.0589,0.17823 -0.10726,0.17115 -0.20102,-0.0476 -0.27131,0.17204 -0.36534,-0.0188 -0.0537,0.28936 0.38077,0.29431 0.0915,0.57166 -0.49354,0.3727 -0.95384,0.0521 -0.34886,0.33131 -0.34886,-0.1983 -0.38328,0.13302 -0.21777,-0.28074 -0.43292,-0.0656 -0.54008,-0.5437 -0.58974,0.3169 -0.41897,-0.565 -0.46724,0.23641 -0.30296,-0.25641 -0.52369,0.86191 -0.41417,-0.069 -0.17211,-0.29486 -0.72324,-0.27466 0.0863,-0.56603 -0.41116,-0.15903 -0.5169,0.0958 -0.17777,-0.35486 -0.44206,-0.15831 -0.0963,-0.394 -0.0891,-0.779 0.0321,-0.04 0.32092,-0.06 0.83087,-0.39175 0.0658,-0.97773 2.03614,-2.60952 z\"},\"51036\":{\"name\":\"Charles City, VA\",\"path\":\"m 861.96516,290.44205 0.16349,0.20466 0.16554,-0.12394 0.39805,0.25065 0.19547,-0.10578 0.18901,0.24297 0.24067,0.16546 0.33756,0.21714 0.32463,-0.12517 0.26005,0.0686 0.0589,0.19997 0.62726,-0.12941 0.0783,0.27747 0.34954,0.0321 0.1558,-0.17462 0.44642,-0.11649 0.0331,0.23872 0.34065,0.006 0.16628,-0.1684 0.1017,0.10286 -0.0662,0.40641 0.14198,0.005 0.14198,-0.33129 0.16135,0.005 0.0645,0.24997 0.18073,0.18539 0.21903,-0.29902 -0.0746,0.48826 -0.12105,0.29298 0.0649,0.11629 0.19989,-0.15459 0.1534,-0.32197 0.25569,-0.0244 -0.0256,0.33187 0.25338,0.74104 -0.18859,0.21573 0.0537,0.18608 0.15547,0.087 -0.0459,0.24807 0.10448,0.49623 0.0852,0.10885 -0.0425,0.16483 -0.22366,0.0729 -0.0219,0.19452 -0.21588,0.04 -0.0588,0.30017 -0.43615,-0.0445 -0.36733,-0.22111 -0.55806,-0.45153 -0.24498,-0.58321 -0.44467,-0.21059 -0.32157,0.33143 -0.56188,0.68487 -0.21478,-0.13128 -0.0621,-0.62699 0.0677,-0.31913 -0.45887,0.33591 -0.2861,0.0564 -0.26615,0.20175 -0.95259,0.14918 -0.36304,-0.20423 -0.79804,0.24387 -0.21135,0.11249 -0.0954,-0.27308 -0.1185,-0.25466 0.29019,-0.64143 -0.20459,-0.25721 -0.0358,-0.34941 0.18246,0.0112 0.22043,0.22942 0.26149,-0.28425 -0.31734,-0.31272 0.5135,-2.0583\"},\"51127\":{\"name\":\"New Kent, VA\",\"path\":\"m 862.13813,287.31271 0.45905,-0.14114 0.11633,0.1214 0.23084,-0.0504 4.6e-4,0.33382 0.33255,0.15059 0.19558,-0.23704 0.63878,0.13157 0.11793,0.25074 0.22032,0.35277 0.18849,-0.0882 0.37002,0.14873 0.17951,-0.19486 -0.0629,-0.34839 0.10196,-0.0531 0.15552,0.31711 -0.0205,0.13847 -0.11197,0.21321 0.0418,0.18622 0.67949,0.16378 0.0909,-0.63082 0.23817,-0.23615 0.32955,0.32524 0.26458,-0.0357 0.19868,-0.26423 -0.0516,-0.49462 0.10887,-0.10368 0.0776,0.60211 -0.2186,0.34349 0.0979,0.33664 0.26733,-0.0469 0.27673,0.0166 0.16819,-0.52976 0.22242,-0.19113 0.24754,0.35727 0.16257,0.16197 0.0345,0.55861 0.83225,0.27338 0.28909,0.27528 -0.14681,0.71504 -1.01362,-0.0881 -0.69069,0.0733 -0.36914,0.48433 0.007,0.27999 0.007,0.35749 -0.0701,0.003 -0.16778,0.0265 0.0744,0.18672 0.27359,-7.9e-4 -0.0707,0.25416 -0.21903,0.29902 -0.18073,-0.18539 -0.0645,-0.24997 -0.16135,-0.005 -0.14198,0.33129 -0.14198,-0.005 0.0662,-0.40641 -0.1017,-0.10286 -0.16628,0.1684 -0.34065,-0.006 -0.0331,-0.23872 -0.44642,0.11649 -0.1558,0.17462 -0.34954,-0.0321 -0.0783,-0.27747 -0.62726,0.12941 -0.0589,-0.19997 -0.26005,-0.0686 -0.32463,0.12517 -0.33756,-0.21714 -0.24067,-0.16546 -0.18901,-0.24297 -0.19547,0.10578 -0.39805,-0.25065 -0.16554,0.12394 -0.16349,-0.20466 -1.21493,-1.00829 0.38146,-0.61337 0.48986,-0.8196 0.53469,-0.0158 -0.0181,-0.67228\"},\"51760\":{\"name\":\"Richmond, VA\",\"path\":\"m 857.78346,292.26189 -0.40215,-0.17672 -0.34563,0.0422 -0.4246,0.15163 -0.42461,-0.0908 -0.34619,-0.54042 -0.29958,-0.83885 -0.27504,0.12308 -0.16314,-0.23129 -0.28437,0.22566 -0.45614,0.0775 -0.24523,-0.42083 1.24088,-0.43804 0.038,-0.13098 -0.33339,-0.0628 0.0993,-0.47157 0.67159,0.23242 0.48179,-0.11517 -0.2,-0.39873 0.67124,-0.23584 0.23294,0.37964 0.37282,-0.0214 0.14449,0.51224 0.52685,0.30707 0.0326,0.78268 -0.47912,-0.0934 -0.0315,0.40083 0.16436,0.58735 0.0338,0.44746\"},\"51630\":{\"name\":\"Fredericksburg, VA\",\"path\":\"m 853.58282,273.35914 -0.32982,0.32839 -0.70598,-0.0697 -0.18727,-0.52097 -0.33089,-0.0458 0.0627,-0.36036 0.38952,-0.13309 0.35722,0.15936 0.30744,-0.11335 0.21543,0.19153 0.19064,0.22966 0.031,0.3344\"},\"51600\":{\"name\":\"Fairfax, VA\",\"path\":\"m 853.61061,259.78547 0.003,-0.11212 0.49827,-0.0764 0.0846,0.66683 -0.2555,0.0217 -0.014,0.10082 -0.54676,0.15328 -0.14346,-0.2347 -0.24277,-0.14533 0.089,-0.37654 z\"},\"51683\":{\"name\":\"Manassas, VA\",\"path\":\"m 851.19034,262.54366 0.25994,0.0428 0.0118,0.611 -0.24962,0.26683 -0.23804,-0.0654 -0.39038,-0.11613 -0.13647,0.13777 0.31274,0.4698 -0.0771,0.17608 -0.41308,-0.22627 -0.0693,-0.48407 0.13538,-0.0957 0.0788,-0.0999 0.08,-0.27143 0.33937,-0.39075 0.0341,-0.1531 0.31723,0.025 z\"},\"51107\":{\"name\":\"Loudoun, VA\",\"path\":\"m 844.21383,250.71514 0.68998,-0.08 1.0666,0.374 0.95554,-0.24477 0.66202,0.83411 1.58224,0.53266 -0.14874,0.87899 -0.55727,0.23701 -0.0731,0.193 -0.007,0.105 -0.0428,0.289 -0.0214,0.208 0.005,0.02 0.12302,0.392 0.10162,0.136 0.0107,0 0.11232,0.08 1.13926,0.765 0.0339,0.01 0.63292,0.04 0.86113,-0.04 0.83616,-0.09 -2.72941,5.66523 -0.34389,-0.78315 -0.7131,-0.14627 -0.64848,-0.60778 -0.74079,-0.37703 -5.54296,-0.50086 0.83757,-1.00155 0.1951,-0.53631 0.3459,-0.23079 -0.10826,-0.6517 0.42343,-0.80679 1.06259,-4.66\"},\"51061\":{\"name\":\"Fauquier, VA\",\"path\":\"m 841.4575,258.60228 5.54296,0.50086 -0.2562,1.74332 -0.33003,-0.23192 0.0299,0.46034 -0.0624,0.49726 0.0571,0.248 3.7672,4.814 0.77062,0.86792 -1.36935,2.63308 0.11022,1.022 -0.79647,-0.16047 -0.66279,0.2038 -0.21892,0.22024 -0.20247,-0.17431 -0.4162,-0.27295 -0.12028,-0.5031 -0.66018,-0.56391 -0.42873,-0.72582 -0.626,-0.29839 -0.7082,-0.73404 -0.14926,-0.99707 -0.23276,-0.6461 -0.21892,-0.19075 -0.21415,0.14659 -0.21156,-0.20932 0.0281,-0.32304 -0.32202,-0.3062 -0.36448,0.0538 -0.34766,0.09 -0.76128,-0.218 -0.49066,-0.43426 -0.16359,-0.43426 -0.26941,-0.81906 -0.38484,-0.0495 -0.55732,-0.3445 -0.4004,-0.0754 -0.0749,-0.17355 -0.7097,-0.4426 0.19425,-0.58239 0.94085,-0.28348 -0.32437,-0.61 0.10597,-0.40758 0.35085,-0.21712 0.45682,-1.22331 0.70065,-0.84886\"},\"51047\":{\"name\":\"Culpeper, VA\",\"path\":\"m 843.19225,265.67814 0.36448,-0.0538 0.32202,0.3062 -0.0281,0.32304 0.21156,0.20932 0.21415,-0.14659 0.21892,0.19075 0.23276,0.6461 0.14926,0.99707 0.7082,0.73404 0.626,0.29839 0.42873,0.72582 0.66018,0.56391 0.12028,0.5031 0.4162,0.27295 0.20247,0.17431 0.21892,-0.22024 0.66279,-0.2038 0.79647,0.16047 0.48138,0.9 -0.29675,0.22994 -0.10925,-0.40288 -0.67174,0.51119 -0.35925,0.11275 -0.28348,-0.146 -0.84152,-0.257 -0.34435,-0.058 0.13202,0.58263 -1.01785,-0.20586 -0.41006,0.10625 -0.95561,0.331 -1.35142,0.892 -0.76676,0.91461 -0.83247,0.29039 -0.20969,-0.22598 0.24534,-0.2411 -0.7075,-0.65798 0.29299,-0.89619 -2.99433,-2.55175 1.01088,0.06 1.83993,-2.795 1.62419,-1.976\"},\"51177\":{\"name\":\"Spotsylvania, VA\",\"path\":\"m 850.19893,272.05714 0.37154,0.24846 0.0825,0.42034 0.13499,0.0695 0.35374,-0.44608 0.88717,0.70159 0.33089,0.0458 0.18727,0.52097 0.70598,0.0697 0.32982,-0.32839 1.52435,0.593 -3.64775,6.75 -0.87539,-0.224 -1.04656,-0.39375 -0.14904,-0.38224 -1.90957,-0.92306 -2.09368,0.12405 3.18861,-5.62708 0.18815,-0.76792 0.35925,-0.11275 0.67174,-0.51119 0.10925,0.40288 0.29675,-0.22994\"},\"51085\":{\"name\":\"Hanover, VA\",\"path\":\"m 850.58403,280.47814 0.87539,0.224 0.35578,0.6262 0.68356,0.21599 0.16904,-0.16346 0.16903,0.0586 0.28871,0.57999 0.26403,0.13579 0.26893,-0.11094 1.03397,0.58006 0.56507,-0.32071 0.61444,0.61707 -0.12592,0.20988 0.17726,0.61787 0.25129,0.0503 -0.0942,0.32173 0.43638,0.0133 0.0415,0.50682 0.42404,0.075 0.53584,-0.37443 0.36178,-0.0423 0.1592,0.3285 -0.10231,0.35253 0.10353,0.11417 0.51526,-0.13503 0.0277,0.125 -0.28651,0.17918 0.0169,0.24418 0.28773,-0.24338 0.16403,0.0475 -0.0418,0.23169 0.22389,0.27151 0.16589,0.0224 0.12758,-0.26102 0.18121,-0.0235 0.19653,0.19865 0.11992,-0.0848 -0.1712,-0.27634 0.13524,-0.1078 0.12512,0.089 0.11172,0.1161 0.0581,0.22335 -0.15642,0.30763 0.18833,0.2157 0.16343,-0.0949 0.22472,-0.0872 0.0255,0.18093 0.1481,0.0813 0.0945,-0.11019 0.0179,-0.2098 0.21624,-0.0579 0.086,0.29449 -0.0902,0.2792 0.10897,0.18723 0.24687,-0.0656 0.21624,-0.32605 0.93351,0.015 -0.28311,0.99196 0.0181,0.67228 -0.53469,0.0158 -0.48986,0.8196 -0.38146,0.61337 -0.37797,-0.03 -2.95693,-0.71254 -1.02695,-1.7097 -1.0663,-0.25806 -0.89843,0.56259 -0.89233,-0.20517 -0.5939,0.0933 -0.61579,0.16421 -2.44362,-0.13421 0.70602,-6.718\"},\"51101\":{\"name\":\"King William, VA\",\"path\":\"m 860.07526,281.40568 0.19255,-0.169 0.39122,0.23046 -0.0367,0.32325 0.40049,0.0206 0.64715,1.1529 0.40283,-0.0229 -0.0681,0.5601 0.50373,0.10043 -0.0344,0.48162 0.19957,0.0599 0.30047,-0.041 0.51348,0.50839 0.43501,-0.0858 0.27805,0.26175 0.44621,-0.0634 0.21079,0.32898 0.24441,0.0263 0.63681,-0.28765 0.25562,0.40745 0.009,0.41866 0.15472,0.0375 0.39016,-0.18675 0.51349,0.46351 -0.13678,0.3627 0.25563,0.0263 0.15179,-0.17219 0.30607,0.24091 0.29937,-0.01 -0.0751,0.31302 0.42443,-0.0148 0.0721,0.30017 0.21302,0.0553 0.16617,0.10849 0.14414,0.33272 -0.0801,0.32151 -0.16082,0.20705 -0.20249,0.0724 -0.14939,-0.29568 -0.21245,-0.16683 -0.36583,0.24831 -0.1203,0.26625 -0.17264,0.12161 -0.11205,-0.11433 0.20602,-0.37096 -0.0881,-0.39273 -0.23919,-0.32438 -0.45381,0.26573 0.19114,0.48338 -0.24357,0.0749 -0.13423,-0.29868 -0.20483,-0.0348 -0.52708,0.43331 -0.0731,0.39511 -0.19684,-0.0413 0.0781,-0.33377 -0.14905,-0.34681 -0.21161,-0.18557 -0.42386,0.17356 0.0899,0.25687 -0.35218,0.0111 0.007,-0.37765 -0.30303,-0.0278 -0.16676,0.13468 -0.63878,-0.13157 -0.19558,0.23704 -0.33255,-0.15059 -4.6e-4,-0.33382 -0.23084,0.0504 -0.11633,-0.1214 -0.45905,0.14114 0.28311,-0.99196 -0.93351,-0.015 -0.21623,0.32605 -0.24688,0.0656 -0.10897,-0.18723 0.0902,-0.27919 -0.086,-0.29449 -0.21623,0.0579 -0.0179,0.2098 -0.0945,0.11019 -0.1481,-0.0813 -0.0255,-0.18093 -0.22471,0.0872 -0.16343,0.0949 -0.18833,-0.2157 0.15642,-0.30763 -0.0581,-0.22335 -0.11172,-0.1161 -0.12512,-0.089 -0.13525,0.1078 0.17121,0.27634 -0.11992,0.0848 -0.19654,-0.19865 -0.18121,0.0235 -0.12758,0.26102 -0.16589,-0.0224 -0.22389,-0.27151 0.0418,-0.23169 -0.16403,-0.0475 -0.28772,0.24338 -0.0169,-0.24418 0.28651,-0.17918 -0.0277,-0.125 -0.51526,0.13503 -0.10353,-0.11417 0.10231,-0.35253 -0.1592,-0.3285 -0.36178,0.0423 0.56287,-0.79236 0.94002,-1.58781 -0.0261,-0.71372 0.55472,0.0155 0.11109,0.25563 0.41447,-0.11275\"},\"51097\":{\"name\":\"King and Queen, VA\",\"path\":\"m 860.07526,281.40568 -0.20762,-1.07216 0.0225,-0.58271 0.54795,-0.32184 0.62114,-0.10229 0.3012,0.0787 0.3012,-0.34558 0.0597,0.64047 0.468,0.31879 0.21649,0.0235 0.25315,0.35352 0.16565,0.61598 -0.24992,0.18947 0.0344,0.17854 0.38922,0.0361 0.19237,0.42981 0.3236,0.11265 0.21424,-0.11701 0.35641,0.20015 0.43056,-0.0738 0.17843,0.9032 0.6177,-0.36736 0.64863,0.22036 0.51316,-0.50713 0.82203,-0.0545 0.12886,0.40992 0.62524,0.34659 0.3378,0.20678 0.28154,0.90282 1.18227,1.35713 0.90803,0.71924 0.22213,1.52327 0.0713,0.192 0.46711,0.491 0.0909,0.217 0,0.111 -0.0428,0.192 -0.14441,0.314 -0.80779,0.39918 -0.22348,-0.10495 -0.53732,-0.67188 -0.79013,-0.49609 -0.0641,-0.22041 -0.19793,-0.25848 0.0801,-0.32151 -0.14415,-0.33272 -0.16656,-0.10849 -0.21302,-0.0553 -0.0721,-0.30017 -0.42443,0.0148 0.0751,-0.31302 -0.29937,0.01 -0.30607,-0.24091 -0.15179,0.17219 -0.25562,-0.0263 0.13677,-0.36265 -0.51349,-0.46355 -0.39016,0.18671 -0.15472,-0.0375 -0.009,-0.4187 -0.25562,-0.40749 -0.63681,0.28761 -0.24441,-0.0263 -0.21078,-0.32902 -0.44622,0.0634 -0.27805,-0.26175 -0.43501,0.0858 -0.51348,-0.50839 -0.30047,0.041 -0.19957,-0.0599 0.0344,-0.48162 -0.50373,-0.10043 0.068,-0.5601 -0.40283,0.0229 -0.64715,-1.1529 -0.40049,-0.0206 0.0367,-0.32325 -0.39122,-0.23046 -0.19255,0.169\"},\"51119\":{\"name\":\"Middlesex, VA\",\"path\":\"m 869.4501,282.4261 0.33181,0.22467 0.83741,-0.0548 0.15259,0.36988 0.26693,0.0232 0.28906,0.47015 0.22129,0.69496 0.20186,0.15821 -0.58403,-0.11207 -0.0718,0.19971 0.65353,0.0728 -0.0333,0.23853 0.49812,0.26377 0.55179,0.26433 1.8921,-0.36546 0.20336,0.53644 0.70956,0.11834 0.83267,-0.16693 0.22783,0.16278 0.73833,-0.0401 -0.16604,0.48948 -0.33584,-0.13888 0.0671,0.45599 -0.3568,-0.0894 -0.5119,0.1218 -0.61058,0.12547 -0.13218,0.38767 -0.31526,-0.0146 -0.1366,0.15205 -0.70076,-0.40305 -0.22839,0.17968 -0.47029,-0.27357 -0.21001,0.0704 -0.23532,-0.0693 -0.33493,-0.0804 -0.13572,0.20734 -0.33493,-0.20214 -0.40133,-0.33494 -0.30173,0.20735 -0.4456,-0.13574 -0.31279,-0.0318 -0.90803,-0.71924 -1.18227,-1.35713 -0.28154,-0.90282 1.0627,-0.70374\"},\"51073\":{\"name\":\"Gloucester, VA\",\"path\":\"m 874.98924,287.20293 -0.0442,0.55841 0.15502,0.65802 0.16266,0.48511 -0.21378,0.34051 0.22099,0.0213 0.66425,0.10197 0.34837,0.79755 -0.58298,-0.14478 -0.5602,-0.23117 -0.57057,-0.24305 0.0292,0.25069 0.46309,0.16892 -0.0404,0.61441 0.63454,-0.0524 0.6645,0.26873 0.12576,0.49762 -0.60871,-0.10289 -0.28991,-0.0206 0.24794,0.31784 0.20602,0.13378 0.47745,-0.0904 0.65369,0.26363 -0.16202,0.72952 -0.46382,0.22623 -0.82764,0.36663 -0.60131,0.11623 -0.42861,-0.45578 -0.31441,-0.0852 -1.02883,-0.73731 -0.10432,-0.34308 -0.39725,-0.15217 -1.12535,-0.89077 -0.0735,-0.16135 -0.50126,-0.0192 -0.48804,-0.83835 0.80779,-0.39918 0.14441,-0.314 0.0428,-0.192 0,-0.111 -0.0909,-0.217 -0.46711,-0.491 -0.0713,-0.192 -0.22213,-1.52327 0.31279,0.0318 0.4456,0.13574 0.30173,-0.20734 0.40133,0.33494 0.33493,0.20213 0.13572,-0.20734 0.33493,0.0804 0.23532,0.0693 0.43005,0.34231 0.36383,-0.006 0.42578,0.1419 0.50799,0.17654\"},\"51103\":{\"name\":\"Lancaster, VA\",\"path\":\"m 870.52236,281.07583 1.64032,-1.08897 0.47175,-0.066 0.40642,0.2327 0.42766,-0.0141 0.27832,-0.15409 0.34365,0.56462 0.409,0.35927 0.35299,-0.0421 0.23164,0.13525 0.17565,0.79798 -0.067,0.48061 0.35041,0.13002 0.69741,0.39936 0.0435,0.24379 -0.24678,0.11218 0.27638,0.25353 0.0615,0.39926 0.22882,-0.0438 0.3494,-0.28778 0.57238,0.52472 -0.085,0.21015 -0.22329,0.0953 -0.17956,-0.16133 -0.0964,-0.19332 -0.22605,0.32128 -0.62333,-0.0837 -0.13229,0.2806 -0.56248,-0.30339 -0.35047,0.0975 -0.154,-0.15945 -0.384,-0.0477 0.10157,-0.26432 0.25271,0.0117 0.0161,-0.23804 -0.24673,-0.0475 -0.14159,-0.19203 -0.12844,0.22856 -0.13502,0.39942 -0.17213,0.0245 -0.0341,-0.21869 -0.24442,-0.0478 0.005,-0.13983 0.16302,-0.18583 0.10388,-0.22526 -0.15242,-0.13326 -0.0473,-0.24498 0.26707,-0.17593 0.0634,-0.21535 0.14878,-0.18907 0.0502,-0.2285 -0.27838,0.0147 -0.12066,0.36952 -0.33095,0.0804 0.0402,0.2421 -0.11095,0.0384 -0.12408,-0.1785 -0.24895,-0.001 -0.17666,-0.19163 -0.10437,-0.40193 -0.30152,-0.001 0.0194,0.47788 0.21651,0.0507 0.0194,0.19529 0.24279,-0.008 0.27566,0.32672 -0.0924,0.0507 0.25594,0.26758 -0.154,0.18228 0.0497,0.36628 -0.154,0.0574 0.24031,0.22827 -0.30515,0.21514 -0.65489,-0.36385 -0.31167,-0.96162 -0.44617,-0.10539 -0.29887,-0.39031 -0.0396,-0.44393 -0.20587,-0.51191 -0.34769,0.0873 -0.66879,-0.24021 0.25913,-0.36089\"},\"51159\":{\"name\":\"Richmond Co., VA\",\"path\":\"m 863.86295,275.73029 0.10032,-0.22832 0.32379,-0.40107 0.37901,0.0207 0.0293,0.27461 1.07309,0.87824 0.29996,-0.15262 0.84972,0.5331 -0.009,0.63321 0.23042,0.0692 0.43227,-0.0898 0.65316,0.18634 0.61635,-0.12659 0.52431,0.25078 0.43756,0.30323 0.91485,0.1873 0.58169,0.66325 0.0925,0.71968 0.77072,0.5293 -1.64032,1.08897 -0.24067,-0.062 -0.23111,-0.0262 -0.14578,0.35611 -0.4934,-0.25363 -8.7e-4,-0.15757 -0.11682,-0.13127 -0.15191,0.26094 -0.25052,0.0369 -0.33861,-0.22249 -0.16041,-0.05 -0.12217,-0.3239 -0.18072,-0.0572 -0.10215,-0.28517 -0.12137,-0.18486 0.31229,-0.20953 -0.11551,-0.0946 -0.18633,0.0588 -0.29917,0.29896 -0.18137,-0.5184 -0.75268,-0.43233 -0.21642,0.0537 -0.18497,-0.20652 -0.27082,0.0279 -0.35738,-0.32705 0.02,-0.28136 -0.0804,-0.19616 -0.16248,-0.149 -0.16062,0.18128 -0.15349,-0.18156 -0.34669,-0.0302 -0.14719,-0.4809 -0.23912,-0.46423 -0.15777,-0.41836 -0.62202,-0.54289 z\"},\"51057\":{\"name\":\"Essex, VA\",\"path\":\"m 863.62709,276.43001 0.54029,0.90513 -0.15412,0.33982 0.26058,0.24205 -0.13129,0.37621 0.25193,0.17617 0.64259,-0.0179 -0.0934,0.39495 0.16016,0.11245 0.18999,0.062 0.52001,0.41159 0.52663,0.11117 0.004,0.21497 0.26973,0.20861 0.26605,-0.0529 0.4647,0.61802 0.27121,0.24997 0.072,0.21664 1.00769,0.94908 0.55078,0.0543 0.22452,0.26716 -0.0209,0.15657 -1.0627,0.70374 -0.3378,-0.20678 -0.62524,-0.34659 -0.12886,-0.40992 -0.82203,0.0545 -0.51316,0.50713 -0.64863,-0.22036 -0.6177,0.36736 -0.17843,-0.9032 -0.43056,0.0738 -0.35641,-0.20015 -0.21424,0.11701 -0.3236,-0.11265 -0.19237,-0.42981 -0.38922,-0.0361 -0.0344,-0.17854 0.24992,-0.18947 -0.16565,-0.61598 -0.25315,-0.35352 -0.21648,-0.0235 -0.46802,-0.31879 -0.0597,-0.64047 -0.22891,-0.42975 -0.072,-0.14531 -0.22559,-0.10986 -0.65093,0.16188 -0.14289,-0.15713 0.0428,-0.40402 -0.93781,-0.73484 0.33821,-0.66395 -0.0753,-0.45128 0.62177,-0.12046 -0.0281,-0.26224 0.0478,-0.4265 0.14307,-0.002 0.0766,0.28108 0.32151,-0.0393 0.0191,-0.24755 0.21768,0.0667 0.11612,0.74822 0.31832,0.0622 0.2578,0.28445 0.27136,0.0153 0.27066,-0.43538 0.32202,0.22124 z\"},\"51033\":{\"name\":\"Caroline, VA\",\"path\":\"m 855.64879,273.63968 0.36088,0.30866 0.2835,0.15046 0.14162,-0.23644 0.10294,0.0344 0.0642,0.34392 0.2835,-0.12037 -0.0871,-0.42345 0.33849,-0.2171 0.55774,0.0666 0.033,0.26171 -0.34098,0.11983 -0.0186,0.18432 0.21783,0.14603 -0.15618,0.58453 0.4378,0.0924 0.0251,-0.32035 0.16696,-0.0688 0.17985,0.1504 0.2964,0.16608 0.26267,0.2533 0.12024,0.12178 0.19131,0.0186 0.34748,-0.2497 0.25032,0.18885 0.19716,0.37775 0.39808,0.17408 0.028,0.2617 -0.62178,0.11991 0.0753,0.45074 -0.33822,0.6634 0.9378,0.7343 -0.0429,0.40348 0.14288,0.15699 0.65093,-0.16202 0.22559,0.10973 0.072,0.14518 0.2289,0.4292 -0.3012,0.34558 -0.3012,-0.0787 -0.62114,0.10229 -0.54795,0.32184 -0.0225,0.58271 0.20762,1.07216 -0.41447,0.11275 -0.11109,-0.25563 -0.55472,-0.0155 0.0261,0.71372 -0.94002,1.58781 -0.46538,0.71437 -0.63333,0.45242 -0.42404,-0.075 -0.0415,-0.50682 -0.43638,-0.0133 0.0942,-0.32173 -0.25129,-0.0503 -0.17726,-0.61787 0.12592,-0.20988 -0.61444,-0.61707 -0.56507,0.32071 -1.03397,-0.58005 -0.26893,0.11091 -0.26403,-0.13578 -0.28872,-0.58 -0.16903,-0.0586 -0.16903,0.16346 -0.68355,-0.21599 -0.35579,-0.6262 3.64775,-6.75 0.54162,-0.31246\"},\"51059\":{\"name\":\"Fairfax Co., VA\",\"path\":\"m 852.17613,255.35214 1.00644,0.4202 0.64609,0.20048 0.0221,0.69265 0.4,0.31474 0.38243,-0.002 0.2418,0.0599 0.84824,-0.0808 0.63731,0.49051 -0.80566,1.26535 -0.28633,-0.0468 0.0985,0.48275 0.29584,-0.0508 0.35054,0.082 0.162,-0.14077 0.73049,0.49345 -0.36779,0.45825 0.10887,0.69657 0.96403,-0.32431 0.83191,0.14448 -0.43324,2.004 -0.52377,0.31006 -0.23019,0.63032 -0.57715,0.0254 0.87291,0.80824 -0.64743,0.0716 0.0342,0.36513 -0.54558,0.17955 -0.2842,-0.31254 0.27983,-0.28704 -0.20778,-0.24396 -0.38142,0.2287 -0.41523,-0.38773 -1.13099,-0.60557 -0.27,0.23467 -0.13515,-0.004 -0.053,-0.31649 -0.62357,-0.0364 -0.0323,0.18143 -0.14063,0.12572 -0.22361,-0.18547 0.0461,-0.27884 -0.47257,-0.40331 -0.1925,0.17759 -0.19248,-0.36182 -0.006,-0.2166 -0.34809,-0.15435 -0.0358,-0.25974 -0.24325,-0.14563 -0.19138,0.15519 -0.33661,0.0826 -0.28474,0.0411 0.0161,-0.30124 -0.19286,-0.003 -0.31735,-0.60489 -0.57668,-0.003 z m 0.81811,4.80443 0.24277,0.14533 0.14346,0.2347 0.54676,-0.15328 0.014,-0.10082 0.2555,-0.0217 -0.0846,-0.66683 -0.49827,0.0764 -0.003,0.11212 -0.52734,-0.002 z\"},\"51179\":{\"name\":\"Stafford, VA\",\"path\":\"m 850.19893,272.05714 -0.48138,-0.9 -0.11022,-1.022 1.36935,-2.63308 0.55562,-0.98098 0.69128,0.10425 1.61692,1.1017 1.2738,0.16011 0.0524,1.28067 0.33698,1.10543 -0.2279,-0.0284 -0.92027,-0.68009 -0.0978,0.0675 0.65457,0.66756 1.14068,0.58103 -0.27577,0.39685 -0.93124,0.14723 0.0103,0.13486 0.67098,0.12176 -0.10386,1.08915 0.2254,0.86896 -0.54162,0.31246 -1.52435,-0.593 -0.031,-0.3344 -0.19064,-0.22966 -0.21543,-0.19153 -0.30744,0.11335 -0.35722,-0.15936 -0.38952,0.13309 -0.0627,0.36036 -0.88717,-0.70159 -0.35374,0.44608 -0.13499,-0.0695 -0.0825,-0.42034 -0.37155,-0.24846\"},\"51099\":{\"name\":\"King George, VA\",\"path\":\"m 855.52725,271.68157 1.30185,0.0265 0.71999,-0.41298 0.69534,-0.19945 0.27947,-0.63244 1.00851,-0.20581 0.38035,-0.84402 0.24877,-0.18421 0.69869,0.50282 0.18165,1.02283 -0.13526,0.32668 -0.57133,-0.0295 -0.17222,0.26953 -0.002,0.26637 0.21174,-0.14609 0.36584,-0.0407 0.43925,0.22365 0.38558,0.21399 -0.14565,0.21279 -0.36489,0.10961 0.009,0.23859 -0.33721,0.10639 0.32793,1.72982 -0.12279,0.35403 -0.15909,0.21941 -0.33286,-0.0773 -0.22219,0.22087 -0.2393,0.0504 -0.1544,-0.30823 -0.23084,0.21664 -0.25276,-0.16409 -0.37172,0.24007 -0.43146,-0.12518 -0.29639,-0.1661 -0.17985,-0.1504 -0.16696,0.0688 -0.0251,0.32035 -0.4378,-0.0924 0.15618,-0.58453 -0.21783,-0.14603 0.0186,-0.18433 0.34098,-0.11983 -0.033,-0.26171 -0.55774,-0.0666 -0.33849,0.2171 0.0871,0.42345 -0.28349,0.12037 -0.0643,-0.34392 -0.10294,-0.0344 -0.14162,0.23644 -0.2835,-0.15046 -0.36088,-0.30866 -0.2254,-0.86896 0.10386,-1.08915\"},\"51193\":{\"name\":\"Westmoreland, VA\",\"path\":\"m 861.56393,271.83866 0.74772,0.28986 0.18255,1.08873 -0.54322,0.22819 0.0363,0.10238 0.35312,-0.0817 0.35986,-0.15597 0.70044,0.10304 -0.0415,0.49443 0.14551,0.007 0.15598,-0.379 0.48742,0.34096 0.95368,-0.0361 0.96211,-0.27977 0.5267,0.59394 0.33477,0.0263 0.17332,0.38212 0.22244,0.19018 0.20791,-0.13447 -0.11732,-0.33789 -0.0482,-0.81009 0.24738,0.0155 0.99007,0.6927 -0.21192,-0.62429 0.54642,-0.0481 0.37479,0.38161 -0.2839,0.37482 1.64568,0.49198 0.10494,0.24745 0.30491,0.27767 -0.27313,0.1304 -0.31974,-0.26007 -0.14355,0.34589 0.19501,0.16236 0.005,0.22401 -0.29495,0.32583 -0.29495,0.42707 -0.46983,0.22458 -0.12007,0.73081 -0.52431,-0.25078 -0.61635,0.12659 -0.65316,-0.18634 -0.43227,0.0898 -0.23042,-0.0692 0.009,-0.63321 -0.84972,-0.5331 -0.29995,0.15262 -1.0731,-0.87824 -0.0292,-0.27461 -0.37901,-0.0207 -0.32379,0.40107 -0.10032,0.22832 -0.29908,0.31377 -0.31997,-0.0615 -0.46638,-0.0125 -0.21434,-0.14385 -0.01,-0.20567 -0.27027,-0.0345 -0.19732,0.0902 -0.004,0.10808 -0.22037,0.22134 -0.15617,-0.13263 -0.25363,-0.0282 -0.0741,-0.55815 -0.12826,-0.54544 -0.31884,-0.15136 0.12279,-0.35403 -0.32793,-1.72982 0.33721,-0.10639 -0.009,-0.23859 0.36489,-0.10961 0.14565,-0.21279\"},\"51133\":{\"name\":\"Northumberland, VA\",\"path\":\"m 870.54516,275.87581 1.67427,0.004 -0.43306,0.53123 0.24303,0.15166 0.57115,-0.1858 0.83805,0.32828 0.80784,0.0917 1.16442,0.35452 1.18818,0.48217 0.12362,0.5039 0.009,1.325 -0.27739,0.18083 -0.32918,-0.21215 -0.64364,-0.62965 -0.25581,0.16236 -0.4316,-0.0387 -0.60008,-0.21954 -0.43528,0.011 -0.0535,0.1363 0.53275,0.0909 0.24243,0.1725 0.76831,0.0968 0.20733,-0.0666 0.30243,0.34164 0.22056,0.65307 0.43724,0.0587 0.0471,0.21518 -0.25893,0.23523 0.23703,0.6495 -0.34394,0.17704 -0.0441,0.27273 0.37393,0.2658 0.0406,0.45569 -0.92471,-0.0739 -0.35041,-0.13002 0.067,-0.48061 -0.17564,-0.79797 -0.23165,-0.13526 -0.35299,0.0421 -0.40899,-0.35927 -0.34366,-0.56462 -0.27831,0.15409 -0.42766,0.0141 -0.40643,-0.2327 -0.47175,0.066 -0.77072,-0.5293 -0.0925,-0.71968 -0.58169,-0.66325 -0.91485,-0.1873 -0.43756,-0.30323 0.12007,-0.73081 0.46983,-0.22458 0.29495,-0.42707 0.29495,-0.32583\"},\"51115\":{\"name\":\"Mathews, VA\",\"path\":\"m 874.98924,287.20293 0.48966,-0.11677 0.15287,-0.20267 0.12716,-0.0905 -0.0555,-0.1924 0.64028,-0.0439 0.12017,0.31614 0.44746,0.003 0.26584,0.12782 0.0122,0.15526 -0.381,0.0301 0.0331,0.12614 0.37202,0.0145 0.29293,-0.012 -0.006,-0.40802 -0.0711,-0.57386 0.43252,0.062 0.76733,0.73256 -0.21936,0.0917 -0.38146,-0.19974 -0.28722,0.12399 0.24544,0.23505 -0.17031,0.19261 -0.31812,0.009 0.16742,0.37937 0.27585,-0.2546 0.184,0.0788 0.47063,0.0165 0.029,-0.34063 0.28821,0.25022 -0.0133,0.46256 0.35624,0.79557 -0.24896,0.37493 -0.11067,0.51747 -0.007,0.83359 0.16678,0.12849 -0.14402,0.40693 -0.24891,-0.0796 0.089,-0.24621 -0.71424,-0.52559 -0.45307,-0.27844 -0.0861,-0.83301 -0.27011,-0.16029 -0.0243,-0.36201 -0.18999,0.0874 -0.0358,0.37811 0.19219,0.12708 0.2985,0.27756 -0.10734,0.1851 -0.22555,0.0244 -0.40493,-0.1477 -0.28777,-0.12248 -0.15166,-0.29627 3.9e-4,-0.47673 -0.47396,-0.0239 0.0666,0.29542 -0.40896,0.0367 -0.11326,-0.46037 -0.007,-0.006 -0.25709,-0.20458 -0.15502,-0.65802 0.0442,-0.55841\"},\"51710\":{\"name\":\"Norfolk, VA\",\"path\":\"m 882.32329,299.72305 -0.1296,0.75227 0.24131,0.35045 0.29716,0.2991 -0.15359,0.74358 -0.64812,-0.13731 -0.46413,0.45013 -0.60322,0.1256 -0.13206,-0.31734 0.48793,-0.15022 0.0207,-0.20619 -0.32105,0.0342 -0.40243,-0.1109 -0.10292,-0.26452 -0.42213,-0.16563 0.18894,-0.23527 -0.0451,-0.35456 0.32302,-0.0879 0.37516,0.29448 0.0951,-0.20146 -0.30607,-0.20819 -0.40741,-0.10755 -0.30913,0.14165 -0.27862,-0.082 -0.21153,-1.21493 0.2076,-0.0215 0.0396,0.21332 0.41694,-0.0487 0.0565,0.21447 0.44796,-0.16893 -0.0472,-0.23451 -0.52757,0.0902 -0.0689,-0.18656 0.61064,-0.0867 0.83874,0.46432 0.49804,0.0527 0.38607,-0.0153 0.0492,0.37974\"},\"51093\":{\"name\":\"Isle of Wight, VA\",\"path\":\"m 869.87619,307.18899 0.61033,-2.11719 0.5589,-2.78578 -0.984,-0.96859 -0.007,-0.81429 2.37382,-2.11744 0.15453,-1.85852 0.3971,0.591 0.0222,0.38738 -0.0643,0.54338 0.0814,0.47887 0.45199,0.24854 0.81217,-0.16386 0.41495,0.1572 -0.0231,0.35457 -0.43751,0.1755 -0.082,0.27173 0.4027,-0.17345 0.27339,-0.12173 0.44313,-0.12677 0.77629,0.59418 0.60543,0.10593 0.12142,0.38155 -0.40001,-0.002 0.20905,0.33053 -0.0172,0.25945 -0.41637,0.31 -0.0713,0.04 -5.2559,7.506 -0.23355,-0.06 -0.71699,-1.43015\"},\"51800\":{\"name\":\"Suffolk, VA\",\"path\":\"m 878.49239,300.93969 -0.0917,0.4498 -0.20098,0.34052 -0.31112,1.43677 0.67046,6.12736 -0.90213,0.193 -6.85191,1.34851 -0.30011,-0.37625 0.27684,-0.61176 0.045,-1.1785 5.2559,-7.506 0.0713,-0.04 0.52037,-0.0764 0.26588,-0.23463 -0.0136,0.55094 -0.26872,0.18873 -0.2384,0.668 -0.25307,0.56499 -0.25228,0.0829 0.099,0.30229 0.26887,0.0722 -0.0971,-0.26506 0.35662,-0.17422 0.19074,-0.30356 -0.0806,-0.11792 0.11438,-0.1199 0.0229,-0.25304 0.24998,-0.0375 0.0563,-0.32278 0.52066,-0.27756 0.058,-0.3731 0.29687,-0.10477 0.52163,0.0409\"},\"51550\":{\"name\":\"Chesapeake, VA\",\"path\":\"m 881.93045,301.73114 0.71061,1.32121 1.23627,0.11395 0.71082,0.65484 0.49066,0.098 0.33611,0.32985 -0.0348,0.3762 -0.8075,0.5153 0.60264,2.75662 -3.42133,0.722 -3.1949,0.675 -0.67046,-6.12736 0.31112,-1.43677 0.52586,-0.0536 0.29383,0.36731 -0.0616,0.25912 -0.0443,0.46837 0.55668,0.58857 1.51834,-0.58071 -0.12536,-0.4722 0.6032,-0.12559 z\"},\"51810\":{\"name\":\"Virginia Beach, VA\",\"path\":\"m 889.092,307.059 -0.906,0.19401 -0.0581,-0.37546 0.3387,-0.12564 0.33947,-0.25978 0.0269,0.27585 z m -1.8727,-1.83429 0.32568,1.17472 0.028,0.53876 0.28798,0.38382 -0.58,0.12397 -0.23614,-0.49079 -0.69498,-0.46415 -0.0539,0.14114 0.35485,0.49183 0.21019,0.41197 -1.68603,0.36179 -0.60264,-2.75662 0.8075,-0.5153 0.0348,-0.3762 -0.33611,-0.32985 -0.49066,-0.098 -0.71082,-0.65484 -1.23627,-0.11395 -0.71061,-1.32121 0.64812,0.13731 0.15359,-0.74358 -0.29716,-0.2991 -0.24131,-0.35046 0.12975,-0.75259 0.23237,0.15114 0.37788,0.52197 0.31649,-0.19212 -0.54779,-0.48595 -0.0551,-0.36347 0.43163,-0.003 0.82128,0.17187 -0.26181,0.77602 0.21412,7.9e-4 -0.0897,0.43699 0.29417,-0.16197 -0.0833,-0.69169 0.25055,-0.0158 0.24245,0.17589 0.05,0.55651 0.20999,-0.0581 0.003,-0.25599 0.15866,-0.22679 -0.24789,-0.1266 -0.0721,-0.29759 -0.47245,0.0123 -0.0657,-0.24598 0.49782,-0.17645 0.26221,-0.39804 0.45609,-0.10784 0.5347,0.15034 0.13672,0.36498 0.78635,1.87876 0.60015,1.12298 0.62477,0.94994 0.73443,1.13188 0.68956,1.3525 0.23791,0.56336 0.16812,0.68258 -0.20373,0.0422 -0.16209,-0.2897 -0.0927,-0.45606 -0.19662,-0.38018 -0.10534,-0.27836 -0.49051,-0.72729 -0.27737,-0.30953 -0.0173,0.29473 -0.0827,0.27123 -0.37022,-0.35583 -0.0682,-0.47045 0.31133,-0.23362 -0.3354,-0.1859 -0.40397,0.18217 0.0412,0.58987 z\"},\"50009\":{\"name\":\"Essex, VT\",\"path\":\"m 911.49221,100.69114 6.19726,-1.719997 -0.38688,0.795 1.13178,1.529907 -1.15498,4.11309 0.1355,0.383 0.60439,0.596 0.73811,0.907 0.40293,0.499 0.0713,0.114 0.41719,0.674 -0.53678,0.93451 0.32106,1.06649 -0.18542,0.515 0,0 -0.0802,0.137 -0.79516,1.398 -0.066,0.103 -0.0945,0.138 -0.22464,0.29 -0.041,0.06 -0.51525,0.378 -0.34409,-0.03 -1.07685,1.397 -1.80783,-1.478 0.48613,-0.4299 0.51912,-1.05679 -1.13056,-0.9578 0.68409,-1.71666 -1.32185,-0.49885 0.69888,-1.881 -1.92906,-0.738 -0.64362,-0.25 1.0353,-2.36582 -1.0103,-0.51818 -0.0981,-2.395\"},\"50019\":{\"name\":\"Orleans, VT\",\"path\":\"m 911.59031,103.08614 1.0103,0.51818 -1.0353,2.36582 0.64362,0.25 -0.6972,1.82836 -1.8322,-0.70174 0.74876,1.43114 -1.03274,-0.28188 -1.01088,4.09412 -2.00929,-0.481 0.0714,-0.23833 -1.94801,-0.54659 0.4884,-2.12341 -2.9513,-0.68267 0.51941,-1.40181 -0.63625,-1.92589 0.11627,-0.17898 -0.78405,-1.71088 4.17142,-0.9058 0.69562,-0.0369 3.40546,-1.02171 1.96846,-0.64507 z\"},\"50003\":{\"name\":\"Bennington, VT\",\"path\":\"m 906.71412,143.61814 -0.50812,-0.04 0.25673,1.32281 -0.16043,0.0192 0.40293,2.09 -2.1234,0.385 0.0802,0.481 0.78803,3.801 1.43343,-0.273 0.89856,4.251 -1.52792,0.321 -3.98471,0.861 -0.44574,0.13121 -0.68757,-1.53861 0.34887,-1.0319 -0.44574,-1.9647 -1.71869,-8.397 6.34702,-1.238 0.86221,-0.1631 0.18433,0.9841\"},\"50013\":{\"name\":\"Grand Isle, VT\",\"path\":\"m 891.03556,105.74614 -0.17658,1.30994 -0.19075,0.26139 0.40438,0.60146 0.6311,0.063 0.0501,1.30995 0.1635,0.41725 -0.007,0.28972 -0.33108,0.23893 -0.26023,0.98992 0.19319,0.42313 0.60412,0.60734 0.22102,0.86776 -0.0579,0.18598 0.12805,0.61984 -0.24383,0.13949 -0.0269,0.35643 0.17454,0.57335 -0.19735,0.51138 -1.32848,0.96073 -0.26564,-0.224 -0.28669,-0.9659 -0.13199,-0.89134 -0.0825,-1.59369 0.11906,-1.78838 -1.00415,-0.71828 -0.0389,-0.96389 0.32883,-1.07204 -0.16872,-0.83409 -0.623,-0.63939 0.025,-0.394 2.37834,-0.642\"},\"50023\":{\"name\":\"Washington, VT\",\"path\":\"m 905.86904,114.08614 3.80821,0.972 0.0642,0.05 0.12123,0.224 -0.025,0.369 -0.34595,1.38307 -0.60143,1.11254 0.19509,0.61661 -0.45115,1.75878 -0.91639,-0.169 0.13379,2.14916 -2.04779,-0.33484 -0.0423,0.27118 -0.46481,-0.0457 -0.18312,1.7853 -0.15317,-0.0378 -0.29848,1.92474 -1.01802,-0.137 -2.76336,-0.40764 -0.34017,0.11867 -0.71297,-1.92077 -0.30728,0.0967 0.27456,-2.795 -0.27456,-0.07 0.44381,-2.09568 0.52717,-0.0117 0.15205,-0.77234 -0.63987,-0.1263 0.27278,-1.212 0.74527,0.005 1.95399,0.58876 0.55884,-1.9896 1.89261,0.7196 0.44215,-2.025\"},\"50005\":{\"name\":\"Caledonia, VT\",\"path\":\"m 912.20893,106.22014 1.92906,0.738 -0.69888,1.881 1.32185,0.49935 -0.68409,1.71678 1.13056,0.95793 -0.51912,1.05691 -0.48613,0.43003 1.80783,1.478 -1.12499,0.707 -1.11252,0.692 -0.0838,0.08 -0.0499,0.04 -0.53843,0.972 -0.0553,0.234 0,0.144 0.52773,1.84 0.29953,0.403 0.27277,0.217 -2.28207,-0.274 -2.10557,0.747 -1.12321,-0.207 0.45115,-1.75878 -0.19509,-0.61661 0.60143,-1.11254 0.34595,-1.38307 0.025,-0.369 -0.12123,-0.224 -0.0642,-0.05 -3.80821,-0.972 0.50634,-1.977 2.00929,0.481 1.01088,-4.09412 1.03274,0.28188 -0.74876,-1.43114 1.8322,0.70174 0.6972,-1.82836\"},\"50015\":{\"name\":\"Lamoille, VT\",\"path\":\"m 902.03587,108.51814 2.9513,0.68267 -0.4884,2.12341 1.94801,0.54659 -0.0714,0.23833 -0.50634,1.977 -0.44215,2.025 -1.89261,-0.7196 -0.55884,1.9896 -1.95399,-0.58876 -0.74527,-0.005 -0.53973,-0.0417 0.29387,-1.24005 -0.46679,-0.13553 0.18967,-0.8024 -0.35217,0.0208 -1.70051,-1.44327 -0.32507,0.0572 -10e-4,-0.48685 0.41587,-0.0268 0.40517,-1.57805 0.92938,0.17642 -0.0129,-1.03576 0.17962,-0.0301 -0.013,-0.62923 0.0512,-0.51155 2.05564,-0.876 0.65075,0.314\"},\"50011\":{\"name\":\"Franklin, VT\",\"path\":\"m 901.25125,103.30058 0.78405,1.71088 -0.11627,0.17898 0.63625,1.92589 -0.51941,1.40181 -0.65075,-0.314 -2.05564,0.876 -0.0512,0.51155 0.0129,0.62923 -0.17961,0.0301 0.0129,1.03576 -0.92938,-0.17642 -0.40517,1.57805 -0.41588,0.0268 10e-4,0.48685 -1.90106,0.008 -3.35759,-0.95233 -0.60412,-0.60734 -0.1932,-0.42313 0.26024,-0.98992 0.33108,-0.23892 0.007,-0.28973 -0.1635,-0.41725 -0.0501,-1.30995 -0.6311,-0.063 -0.40438,-0.60146 0.19075,-0.26139 0.17658,-1.30994 10.21569,-2.44556\"},\"50007\":{\"name\":\"Chittenden,VT\",\"path\":\"m 892.1168,112.25818 3.35759,0.95233 1.90106,-0.008 0.32507,-0.0572 1.70051,1.44327 0.35217,-0.0208 -0.18967,0.8024 0.46679,0.13553 -0.29387,1.24005 0.53973,0.0417 -0.27278,1.212 0.63987,0.1263 -0.15205,0.77234 -0.52717,0.0117 -0.44381,2.09568 0.27456,0.07 -0.27456,2.795 -0.73097,-1.913 -0.30626,-1.06546 -0.76474,0.0182 0.11156,0.40962 -0.83666,0.30543 -0.0541,-0.0951 -3.04196,1.37628 -0.86826,0.1 -0.62531,-2.37895 0.17599,-1.38105 -0.025,-0.25 -0.009,-0.01 -0.29774,-0.804 -0.22999,-0.499 -0.76486,-0.924 -0.46711,-0.273 1.32848,-0.96073 0.19735,-0.51138 -0.17454,-0.57335 0.0269,-0.35643 0.24383,-0.13949 -0.12805,-0.61984 0.0579,-0.18598 -0.22102,-0.86776\"},\"50001\":{\"name\":\"Addison, VT\",\"path\":\"m 893.02881,122.99714 0.86826,-0.1 3.04196,-1.37628 0.0541,0.0951 0.83666,-0.30543 -0.11156,-0.40962 0.76474,-0.0182 0.30626,1.06546 0.73097,1.913 0.30728,-0.0967 0.71297,1.92077 0.34017,-0.11867 2.76336,0.40764 -0.41897,1.711 -0.22906,0.73924 -0.10323,-0.0251 -0.34302,1.72538 -0.22312,-0.085 -0.1392,-0.67251 -1.3425,1.132 0.28347,0.611 0.15333,0.273 -0.84092,0.71269 -0.42135,-0.88169 -2.00038,0.586 -0.97167,0.369 0.58478,1.535 -2.41935,0.901 -0.59548,-1.157 -0.27991,-0.507 -1.44567,-4.24245 -0.50652,-0.36255 0,0 -0.0392,-0.765 0,-0.749 0.009,-1.902 0.67392,-1.922\"},\"50021\":{\"name\":\"Rutland, VT\",\"path\":\"m 895.21283,134.60914 2.41935,-0.901 -0.58478,-1.535 0.97167,-0.369 2.00038,-0.586 0.42134,0.88169 0.84093,-0.71269 1.18382,-1.045 0.0785,0.39718 0.54004,0.12446 0.12046,-0.27414 0.66591,0.0825 0.28704,0.312 -0.23464,1.61227 0.2269,0.0179 -0.10877,0.64725 2.1989,0.31159 -0.37627,2.31243 -0.37628,0.0677 0.1967,2.10805 0.34624,0.0197 0.0945,0.37635 0.49309,-0.0223 0.34707,0.1642 0.0114,0.94041 -0.24033,1.48585 -0.82774,-0.17146 -0.41684,0.234 0.0867,0.54869 -0.18607,0.10813 0.27546,1.05218 -6.34702,1.238 -0.97345,-4.525 -0.44493,-1.12288 -0.79749,-0.26665 -0.44863,-0.90683 -1.07705,0.15436 0.005,1.532 -0.54556,-0.226 -0.0642,-0.09 -0.16224,-1.342 0.0909,-0.933 0.31022,-1.704\"},\"50025\":{\"name\":\"Windham, VT\",\"path\":\"m 906.71412,143.61814 2.35339,0.199 2.08952,-0.843 1.97542,-0.433 0.0642,1.695 0.37836,1.06555 -0.16662,1.45306 0.45882,1.28456 -1.01527,1.0528 0.25933,0.9314 -0.37153,1.05354 0.37658,0.55571 0.59742,0.87938 1.83814,1.478 -7.76975,1.664 -0.89856,-4.251 -1.43343,0.273 -0.78803,-3.801 -0.0802,-0.481 2.1234,-0.385 -0.40293,-2.09 0.16043,-0.0192 -0.25673,-1.32281 0.50812,0.04\"},\"50027\":{\"name\":\"Windsor, VT\",\"path\":\"m 903.22505,127.68914 0.0963,0.355 0.21751,0.346 1.31041,0.112 1.88628,0.225 4.82088,0.554 2.14657,0.298 -0.57805,1.00673 -0.33097,0.18948 -0.4165,0.84518 0.22848,0.58191 -0.28888,1.28623 0.36612,0.42147 -0.76546,0.84795 0.14681,1.20905 0.44598,3.68505 0.35096,-0.0211 -0.0655,0.63055 0.40962,0.26945 -0.0731,2.01 -1.97542,0.433 -2.08952,0.843 -2.35339,-0.199 -0.18433,-0.9841 -0.86221,0.1631 -0.27549,-1.05218 0.18605,-0.10813 -0.0867,-0.54869 0.41681,-0.234 0.82774,0.17146 0.24033,-1.48585 -0.0114,-0.94041 -0.34707,-0.1642 -0.49309,0.0222 -0.0945,-0.37635 -0.34624,-0.0197 -0.1967,-2.10805 0.37628,-0.0677 0.37627,-2.31243 -2.1989,-0.31159 0.10877,-0.64725 -0.2269,-0.0179 0.23464,-1.61227 -0.28704,-0.312 -0.66591,-0.0825 -0.12046,0.27414 -0.54004,-0.12446 -0.0785,-0.39718 -1.18382,1.045 -0.15333,-0.273 -0.28347,-0.611 1.3425,-1.132 0.1392,0.67251 0.22312,0.085 0.34302,-1.77334 0.10323,0.0251 0.22906,-0.69128\"},\"50017\":{\"name\":\"Orange, VT\",\"path\":\"m 914.14512,120.30614 -0.0553,1.15913 0.35248,0.31348 -0.29371,0.84564 -0.32135,1.69128 0.40087,0.47492 -0.11229,1.19714 -0.62544,1.27316 0.26783,1.15913 -0.0553,1.15912 -2.14657,-0.298 -4.82088,-0.554 -1.88628,-0.225 -1.31041,-0.112 -0.21751,-0.346 -0.0963,-0.355 0.41897,-1.711 1.01802,0.137 0.29848,-1.92474 0.15317,0.0378 0.18312,-1.7853 0.46481,0.0457 0.0423,-0.27118 2.04779,0.33484 -0.13379,-2.14916 0.91639,0.169 1.12321,0.207 2.10557,-0.747 2.28207,0.274\"},\"53047\":{\"name\":\"Okanogan, WA\",\"path\":\"m 146.86209,9.3671435 17.02819,4.4749995 8.45259,2.122 4.39656,1.086 -0.46712,1.984 -1.33082,5.521406 -0.53463,-0.118107 -0.87296,3.823741 0.34486,0.113988 -0.86563,3.814146 -0.12213,-0.02233 -1.90486,7.768153 -0.12123,0.112 -1.92015,-0.146 -0.0321,-0.441 0.41006,-0.458 0.28169,-0.41 0.0945,-0.265 -0.0562,-0.32058 -0.40664,-0.386278 -0.1767,-0.638125 0.0642,-1.032318 -0.21087,-0.315699 -0.24069,-0.376 -0.57725,-0.123152 -0.2816,-0.451647 -0.43551,0.0738 -0.35653,0.300535 -0.42222,-0.07176 -1.15105,0.250676 -0.35887,-0.410153 -0.40268,0.192088 -0.31507,0.356335 -0.26033,0.68483 -1.05198,-0.221468 -0.395,-0.70326 -0.58114,-0.133869 -0.3512,-0.232417 -0.47164,0.523123 -0.2855,0.06323 -0.31834,0.271277 -0.27455,0.0085 -0.88208,0.584724 -0.5317,-0.09417 -0.37839,-0.586907 0.1253,-0.499308 0.4699,-0.691381 -0.14328,-0.373836 -0.29659,0.08606 -0.38418,-0.07819 -0.14413,-0.537771 -0.43977,-0.176426 -0.11865,0.378946 -0.44715,-0.146645 -1.4361,0.421247 -0.16514,0.327308 0.27286,0.568203 -0.0675,0.457518 -0.39345,0.333746 -0.0568,0.176225 0.009,0.08 0.12659,0.257 -2.89238,-0.788165 0.0966,-0.440523 -0.19236,-0.423757 0.085,-0.474179 -0.747,-0.726288 0.31187,-0.373335 -0.72179,-0.675867 -0.36883,-0.04559 -0.54531,-0.978399 -0.34362,-0.49939 -0.50213,0.04686 -0.0483,-0.381726 -0.27523,-0.205249 0.002,-0.608625 0.45588,-0.457358 0.002,-0.633836 -0.52734,-0.154827 0.10293,-0.280881 -0.78728,-0.645689 -0.66122,-1.553285 -0.45954,0.06022 -0.56042,-0.519633 0.52369,-0.721322 0.0446,-0.620477 -1.01422,-0.570055 -0.006,-1.225542 0.66012,-0.309755 -0.32311,-0.334966 0.48364,-0.284543 -0.35063,-0.331355 0.17879,-0.583465 -0.79742,-0.105 0.29293,-0.589994 0.3103,-0.152288 -0.27398,-0.736576 -0.59966,0.259588 -0.18778,-0.209759 -0.1381,-1.011448 0.58029,-0.532523 0.25674,-0.07 0.40847,0.0628 0.33184,-0.646007 0.54256,0.139428 -0.0352,-0.495416 0.46286,-0.112277 -0.32077,-0.70135 -0.5315,-0.854605 0.52214,-1.678356 -0.30161,-0.490622 0.15815,-1.141961 0.34973,-0.241582 -0.0909,-0.50978 -0.35908,-0.145797 -0.76782,0.364088 -0.56768,-1.050785 0.49475,-0.3637785\"},\"53075\":{\"name\":\"Whitman, WA\",\"path\":\"m 182.80653,59.275143 12.02189,2.789 -0.66857,2.941 -2.93995,13.081 -0.58657,2.596 -0.41678,-0.06399 -0.46,0.0801 -0.74818,-0.467446 -0.73378,0.0801 -0.25502,-0.22716 0.23488,-0.428886 -0.3703,-0.457704 0.16045,-0.957 -0.12658,-0.981 -1.55288,-2.869 -0.78625,-0.634 -0.7488,-0.458 -2.31417,-0.947 -0.40114,-0.153 -0.94849,-0.02 -0.20859,0.07 -1.89698,1.086 -0.51346,0.296 -3.83317,0.242 -0.13729,0 -0.68283,-0.112 -0.15333,-0.09 -0.49742,-0.869 0.44215,-3.423 3.14142,0.04 0.57943,-0.529 0.44215,-0.499 0.64183,-0.901 0.43502,-1.02 1.79001,-7.698 2.0913,0.49\"},\"53069\":{\"name\":\"Wahkiakum, WA\",\"path\":\"m 86.652791,56.615143 0.657879,-2.096 3.415979,1.076 2.19293,0.635 2.153707,0.61 -1.301495,4.701 -2.481755,-0.103 -0.121235,-0.04 -0.673925,-1.052 0.351225,-1.029 -0.167589,-0.538 -0.233556,-0.417 -0.06418,-0.106 -0.04814,-0.02 -0.08914,-0.06 -1.035847,-0.06 -2.554853,-1.503\"},\"53003\":{\"name\":\"Asotin, WA\",\"path\":\"m 187.88415,79.197143 0.3703,0.457704 -0.23488,0.428886 0.25502,0.22716 0.73378,-0.0801 0.74818,0.467446 0.46,-0.0801 0.41678,0.06399 -0.33696,1.004 0.50455,2.034 0.0232,0.08 0.15333,1.27 0.0981,1.975 -0.76485,2.108 0.0981,1.59 -8.81629,-2.058 0.64361,-2.77 0.93958,0.216 1.0198,-4.548 0.29213,-1.21349 0.32284,0.08546 0.10887,-0.423972 0.64058,0.169469 0.0904,-0.336469 1.9772,0.472 0.25674,-1.139\"},\"53023\":{\"name\":\"Garfield, WA\",\"path\":\"m 179.06072,73.339143 1.89698,-1.086 0.20859,-0.07 0.94849,0.02 0.40114,0.153 2.31417,0.947 0.7488,0.458 0.78625,0.634 1.55288,2.869 0.12658,0.981 -0.16045,0.957 -0.25674,1.139 -1.9772,-0.472 -0.0904,0.336469 -0.64058,-0.169469 -0.10887,0.423972 -0.32284,-0.08546 -0.29213,1.21349 -1.0198,4.548 -0.93958,-0.216 -0.64361,2.77 -1.92015,-0.465 0.68314,-2.618211 -0.19921,-0.05323 1.14026,-4.94656 -0.92269,-0.203678 0.23786,-0.863081 -0.44792,-0.12455 0.0796,-0.322371 -0.38198,-0.12455 0.3038,-0.981772 -0.32923,-0.09817 0.19829,-0.704824 -1.95403,-0.449 0.48316,-1.978 0.49742,-1.413\"},\"53013\":{\"name\":\"Columbia, WA\",\"path\":\"m 173.06671,72.656143 0.17651,0.158 0.49742,0.869 0.15333,0.09 0.68283,0.112 0.13729,0 3.83317,-0.242 0.51346,-0.296 -0.49742,1.413 -0.48316,1.978 1.95403,0.449 -0.19829,0.704824 0.32923,0.09817 -0.3038,0.981772 0.38198,0.12455 -0.0796,0.322371 0.44792,0.12455 -0.23786,0.863081 0.92269,0.203678 -1.14026,4.94656 0.19921,0.05323 -0.68314,2.618211 -5.84247,-1.406 -0.29595,-0.07 0.24781,-0.754 0.93245,-3.849 -1.95225,-0.458 0.48611,-1.937438 -1.96589,-0.473562 1.39955,-5.922 0.3851,-0.69\"},\"53071\":{\"name\":\"Walla Walla, WA\",\"path\":\"m 173.06671,72.656143 -0.3851,0.69 -1.39955,5.922 1.96589,0.473562 -0.48611,1.937438 1.95225,0.458 -0.93245,3.849 -0.24781,0.754 -15.44501,-3.703 0.97478,-0.590098 0.24613,-1.395451 -0.2716,-0.590098 -0.0207,-0.659375 -0.71105,-1.272978 0.22465,-0.289 0.18363,-0.17 0.7078,-0.208 0.39401,-0.05 1.57428,0.1 1.18204,-0.644 0.64029,-0.0073 0.0455,-0.602117 0.60725,-0.767332 0.73942,0.09179 0.78756,-0.507741 0.51489,-0.306655 0.57848,-1.763604 0.11945,-0.202 0.47425,-0.387 0.84329,-0.495 1.40669,-0.646 0.33436,0.07647 0.38436,0.358012 0.66474,0.217822 0.56279,-0.342934 0.53729,0.07763 1.05189,0.393 0.20146,0.21\"},\"53021\":{\"name\":\"Franklin, WA\",\"path\":\"m 156.2489,65.157143 2.77236,0.676 6.4112,1.647 8.25291,1.911 -0.44215,3.423 -0.17651,-0.158 -0.20146,-0.211 -1.05189,-0.392 -0.53729,-0.07763 -0.56279,0.342934 -0.66474,-0.217822 -0.38436,-0.358012 -0.33436,-0.07647 -1.40669,0.646 -0.84329,0.495 -0.47425,0.387 -0.11945,0.202 -0.57848,1.763604 -0.51489,0.306655 -0.78756,0.507741 -0.73942,-0.09179 -0.60725,0.767332 -0.0455,0.602117 -0.64029,0.0073 -1.18204,0.644 -1.57428,-0.1 -0.39401,0.05 -0.7078,0.208 -0.18363,0.169 -0.22465,0.289 -1.01267,-0.946 -0.36192,-0.195 -0.44928,-0.144 -0.47603,-0.298 -0.73811,-1.059 -0.025,-0.13 0.0892,-0.193 0.48076,-0.514026 -0.005,-1.568793 0.46402,-1.267431 0.31334,-1.11675 0,-0.731 -0.51525,-0.837 -0.68997,-0.971 -0.36192,-0.82 0.12717,-0.513071 -0.10028,-0.381386 -0.32775,-0.106043 -0.10028,-0.3335 0.0232,-0.28 1.263,0.360136 0.34515,-1.326136\"},\"53063\":{\"name\":\"Spokane, WA\",\"path\":\"m 192.75316,43.140143 5.98688,1.4 -0.34588,1.517 -3.02909,13.621 -0.53665,2.386 -12.02189,-2.789 2.98096,-12.551 0.21573,0.33 0.14619,0.09 0.27605,-0.106691 0.067,-0.251456 0.38865,0.09437 0.97574,-0.532941 0.2278,-0.436433 0.24388,-0.243413 0.21975,0.102413 -0.089,0.385278 0.004,0.77424 0.4025,0.171429 0.45717,0.972868 0.5254,-0.05077 0.22053,0.228299 1.20585,-5.463193 1.478,0.353\"},\"53051\":{\"name\":\"Pend Oreille, WA\",\"path\":\"m 203.65006,23.397143 -0.77911,3.384 -4.13091,17.759 -5.98688,-1.4 0.44216,-1.945 -0.96689,-0.228958 2.68735,-11.559042 -1.94511,-0.44 0.44216,-1.93 1.03515,0.239882 0.61446,-2.173592 0.8016,0.148975 0.44733,-1.799518 1.02569,0.140478 0.38318,-1.562225 5.92982,1.366\"},\"53065\":{\"name\":\"Stevens, WA\",\"path\":\"m 197.72024,22.031143 -0.38318,1.562225 -1.02569,-0.140478 -0.44733,1.799518 -0.8016,-0.148975 -0.61446,2.173592 -1.03515,-0.239882 -0.44216,1.93 1.94511,0.44 -2.68735,11.559042 0.96689,0.228958 -0.44216,1.945 -1.478,-0.353 -1.20585,5.463193 -0.22053,-0.228298 -0.5254,0.05077 -0.45716,-0.972868 -0.40251,-0.17143 -0.004,-0.774239 0.089,-0.385279 -0.21976,-0.102413 -0.24388,0.243413 -0.2278,0.436433 -0.97574,0.532941 -0.38865,-0.09437 -0.067,0.251456 -0.27605,0.106691 -0.14619,-0.09 -0.21573,-0.33 -0.0516,-0.495768 -0.53725,-0.352931 -1.06574,0.346979 -0.78066,-0.456042 -0.46641,0.400989 -0.46641,0.358138 -0.38071,-0.127513 -0.334,-0.267852 -0.0963,-0.458 -0.36905,-1.198 -0.70067,-1.76 -0.0481,-0.05 -0.76306,0 -1.00376,0.401 -0.46533,0.25 -0.0183,-0.769004 0.33628,-1.097956 -0.43023,-1.38104 0.66679,-0.257 0.42085,-0.05448 0.20499,0.246919 0.83986,0.163657 0.13214,-0.294288 0.39233,0.03876 0.24022,-0.743181 -0.12977,-0.488577 0.10961,-0.498984 0.48014,0.11203 0.57381,-0.231426 0.26158,-1.44913 0.60503,-0.314688 0.32817,-0.540615 -0.0939,-2.063 0.15631,-2.507793 0.87911,-1.42361 0.42132,-0.06401 0.44912,-0.897994 0.31013,-0.731197 0.39352,-0.564399 0.27278,-2.307 -0.0392,-0.651 -0.34588,-1.551 -0.2086,-0.186 -0.0802,-0.85 0.19254,-1.286 0.17651,-0.772 0.22464,-0.288 0.28883,-0.266 11.45137,2.676\"},\"53043\":{\"name\":\"Lincoln, WA\",\"path\":\"m 168.94472,39.901143 1.92015,0.146 0.23356,0.722 0.11945,0.202 1.0929,0.772 0.37975,0.02 0.16204,-0.292542 0.008,-0.397769 0.53831,-0.19368 0.46004,0.569464 1.12534,0.09984 0.51874,0.432489 -0.30589,0.900729 0.44959,0.310296 0.71188,-0.116542 0.14636,0.860982 0.61576,0.482181 0.61576,0.01255 0.52238,-1.118 0.46533,-0.25 1.00376,-0.401 0.76306,0 0.0481,0.05 0.70067,1.76 0.36905,1.198 0.0963,0.458 0.334,0.267852 0.38071,0.127514 0.46641,-0.358137 0.46641,-0.400988 0.78066,0.456042 1.06575,-0.346975 0.53724,0.352933 0.0516,0.495771 -2.98096,12.551 -2.0913,-0.49 -15.58764,-3.776 3.81713,-15.108\"},\"53001\":{\"name\":\"Adams, WA\",\"path\":\"m 180.71523,58.785143 -1.79001,7.698 -0.43502,1.02 -0.64183,0.901 -0.44215,0.499 -0.57943,0.529 -3.14142,-0.04 -8.25291,-1.911 -6.4112,-1.647 -2.77236,-0.676 0.98771,-3.888 2.1127,0.529 3.81,0.974 1.96828,-7.763 15.58764,3.776\"},\"53025\":{\"name\":\"Grant, WA\",\"path\":\"m 168.91263,39.460143 0.0321,0.441 -3.81713,15.108 -1.96828,7.763 -3.81,-0.974 -2.1127,-0.529 -0.98771,3.888 -0.34515,1.326136 -1.263,-0.360136 0.0802,-0.08 -0.0143,-0.151 -0.37975,-0.749 -0.17472,-0.216 -0.20147,-0.112 -0.12836,0.05 -0.64362,0.497 -0.48138,0.418 -0.4992,0.281 -0.41897,0.154 -0.53895,0.04789 -0.24626,-0.271821 -0.33006,-0.17605 -0.94061,0.171121 -1.18003,-0.140136 -0.54021,-0.177 -0.12659,-0.07 -0.51018,-0.278897 0.0425,-0.309746 -0.35757,-0.649778 -0.19755,-1.009811 0.12248,-0.549768 0.22284,-0.353834 0.6015,-0.401166 0.40083,-0.754157 -0.3965,-0.898483 0.45677,-2.12436 -0.29983,-1.087546 0.22915,-1.022672 -0.34435,-0.714171 0.31281,-0.852346 0.73223,-0.52307 -10e-4,-0.594068 0.31816,-1.513127 0.52491,-2.060116 0.33932,0.07544 0.10895,-0.34987 0.37476,0.102017 0.0912,-0.296707 0.30388,0.07544 0.0912,-0.332149 0.29969,0.06759 0.22882,-0.676692 0.28197,0.07645 0.11441,-0.351637 0.26504,0.07367 0.21527,-0.69543 5.22203,1.238 0.49882,-1.883154 0.32084,0.08646 0.0835,-0.293223 0.29711,0.0746 0.0954,-0.316954 0.29711,0.0746 0.10727,-0.316954 0.3219,0.08793 0.0609,-0.291754 0.36936,0.08793 0.0727,-0.32735 0.29817,0.07607 0.10833,-0.303618 0.8677,0.194717 0.0838,-0.323854 0.39232,0.07956 0.22211,-0.958845 0.34077,0.08529 0.3289,-1.255474 0.3289,0.08529 0.10346,-0.341857 0.34078,0.08529 0.20977,-0.669823 0.24537,0.05395 0.19408,-0.639602 0.31703,0.06156 0.51732,-1.847823 0.22736,0.05199 0.0855,-0.335277 0.72317,0.13456 0.0771,-0.301717 0.35069,0.0672 0.14094,-0.671114 0.3423,0.100759 0.10738,-0.343907 1.76441,0.48456\"},\"53005\":{\"name\":\"Benton, WA\",\"path\":\"m 147.87654,65.601143 0.12659,0.07 0.54021,0.177 1.18003,0.140136 0.94061,-0.171121 0.33006,0.17605 0.24626,0.271821 0.53895,-0.04789 0.41897,-0.154 0.4992,-0.281 0.48138,-0.417 0.64362,-0.498 0.12836,-0.05 0.20147,0.112 0.17472,0.216 0.37975,0.749 0.0143,0.151 -0.0802,0.08 -0.0232,0.28 0.10028,0.3335 0.32775,0.106043 0.10028,0.381386 -0.12717,0.513071 0.36192,0.82 0.68997,0.972 0.51525,0.836 0,0.731 -0.31334,1.117 -0.46402,1.267681 0.005,1.569043 -0.48076,0.514276 -0.0892,0.192 0.025,0.13 0.73811,1.059 0.47603,0.298 0.44928,0.145 0.36192,0.194 1.01267,0.947 0.71105,1.273103 0.0207,0.6595 0.2716,0.590348 -0.24613,1.395701 -0.97478,0.590348 -0.45106,0.377 -0.3441,0.152 -1.17312,0.339 -0.57052,0.09 -0.69889,-0.05 -0.41006,-0.103 -0.44215,-0.227 -2.41044,-0.33 -0.90926,-0.05 -0.90748,-0.06 -0.71137,-0.335643 -0.87048,-0.494761 -0.82502,0.48268 -0.71137,0.732724 -1.67055,-0.159 -1.53505,-0.16 1.66341,-6.317 0.36193,-1.487 0.0392,-0.634 2.36408,-9.2\"},\"53039\":{\"name\":\"Klickitat, WA\",\"path\":\"m 144.64598,78.689143 -1.19808,4.55 -2.21076,0 -2.41044,0.296 -0.51347,0.128 -0.83617,0.635 -3.16637,-0.193 -1.25336,-0.217 -0.32805,-0.216 -0.19433,-0.282 -0.41719,-0.786 -0.44929,-0.315 -0.68462,-0.168 -0.33696,0.112 -0.69175,0.33 -1.71869,0.241 -1.41382,0.217 -0.83616,0.257 -0.34588,-0.458 -1.45839,-0.68275 -2.14795,0.90324 -0.25165,-1.820526 -1.97556,-1.130964 -0.55447,-0.113 -1.10003,-0.162 -1.09468,-0.949 -0.0954,-0.860551 0.51434,-0.328449 -1.40668,-0.465 0.4992,-2.057 1.04476,-3.736 1.36568,0.369 1.52614,0.411 4.19509,1.132 1.28545,0.403 7.38464,2.016 11.27487,2.94\"},\"53011\":{\"name\":\"Clark, WA\",\"path\":\"m 98.280669,70.557143 0.725448,-0.05003 0.06115,-1.097334 0.399726,-0.411032 0.762907,0.123697 0.12478,0.323869 0.23016,-0.191425 0.54268,0.146375 0.57754,-0.219746 0.31604,0.05921 0.71701,-0.46383 1.15289,0.285849 0.0719,0.338152 0.35091,-0.01054 1.02454,0.674265 0.57125,-0.232322 0.14875,-0.743595 0.47999,-0.569251 0.74152,-0.290301 0.61935,0.222981 -0.90926,3.239 -1.05189,3.463 -1.26228,4.467 -0.26564,0 -0.0321,0 -0.44215,-0.112 -0.0143,0 -0.52416,-0.257 -4.458962,-2.747 -0.426106,-0.323 -0.818337,-0.859 -0.313785,-0.401 -0.01605,-0.564 0.153327,-0.417 0.344094,-0.579 0.418974,-2.805\"},\"53059\":{\"name\":\"Skamania, WA\",\"path\":\"m 121.07644,64.176143 -2.09665,7.611 -1.36568,-0.369 -1.04476,3.736 -0.4992,2.057 1.40668,0.465 -0.51434,0.328449 0.0954,0.860551 -1.72582,-0.03 -1.32646,-0.103 -0.43502,-0.105 -1.10716,-0.61 -0.94849,0.06 -0.68284,0.353 -0.45106,0.403 -5.70519,0.795 1.26228,-4.467 1.05189,-3.463 0.90926,-3.239 2.13588,-7.296 11.04131,3.02\"},\"53015\":{\"name\":\"Cowlitz, WA\",\"path\":\"m 110.03513,61.156143 -2.13588,7.296 -0.61935,-0.222981 -0.74152,0.2903 -0.48,0.569251 -0.14874,0.743595 -0.57125,0.232322 -1.02455,-0.674265 -0.3509,0.01053 -0.072,-0.338154 -1.15288,-0.285851 -0.71702,0.463828 -0.31603,-0.0592 -0.57754,0.219746 -0.54268,-0.146375 -0.23016,0.191425 -0.12478,-0.323869 -0.762907,-0.123697 -0.399726,0.411032 -0.06115,1.097334 -0.725448,0.05003 0.119452,-0.378 0.144413,-2.185 -0.449283,-2.505 -0.153327,-0.605 -2.594076,-3.18 -0.755937,-0.314 -0.82012,0.151 1.301495,-4.701 1.945111,0.506 1.23018,0.355 9.023103,2.628 2.76345,0.827\"},\"53049\":{\"name\":\"Pierce, WA\",\"path\":\"m 107.93945,36.408203 -0.002,0.0098 -0.29688,0.990234 -0.20117,1.259766 -0.79297,1.009765 0.0566,1.087891 0.33204,0.837891 0.65429,-1.431641 0.23047,-1.080078 0.63477,-1.330078 0.89999,-0.291645 1.05346,0.212452 -1.16655,0.981267 -0.2298,0.711898 -0.11622,0.461351 0.5176,0.204872 0.68416,0.56812 0.49563,-0.636596 -0.20858,-1.004688 0.61718,-0.261719 0.36719,-1.169922 z m 1.19869,3.724944 0.40932,1.182132 0.41449,-0.211507 z m 2.11232,0.428092 -0.68601,0.737588 -0.5664,0.636719 -0.64258,0.568359 -0.3125,0.611328 -0.59375,-0.01758 -0.53125,0.685547 -0.62109,0.292969 0.11914,1.414062 0.35609,0.709457 -0.29699,0.428111 0.36517,0.163527 0.10368,-0.166703 0.47778,0.303178 -0.001,0.919099 0.63746,0.645357 0.19327,1.22375 1.51636,0.950006 0.67595,0.567946 0.087,1.173638 1.45576,0.7174 2.41015,1.166016 3.07032,1.107422 0.24804,-0.240235 0.65039,-0.410156 0.20899,-0.103516 0.3125,-0.08008 4.64453,1.277344 0.003,-0.46569 -0.27536,-0.335277 0.14133,-0.188904 -0.0922,-0.177229 0.0829,-0.130524 -0.32048,-0.1937 0.15501,-0.283669 -0.12521,-0.143555 -0.1119,-0.346953 0.65874,-0.5688 0.5143,-0.148122 0.31992,-0.211133 0.0747,-0.666504 0.30474,-0.321335 0.58439,-0.172344 0.0473,-0.359163 0.31643,-0.12284 -0.0339,-0.30966 0.55345,-0.503037 0.0998,-0.672227 -0.28028,-0.03001 -0.17551,-0.197628 -0.47675,0.04475 -0.38519,-0.661466 -0.54233,-0.535751 -1.17091,-0.200508 -0.25947,-0.787182 -0.689,-0.284319 -0.80423,-0.116698 -0.20709,-0.284318 -0.73091,-0.556703 -0.96168,0.418039 -0.83335,-0.453413 -0.44112,0.155872 -0.28958,0.03041 -0.0858,-0.417309 -0.82896,-0.757703 -0.52739,0.05283 -0.40558,-0.685733 -0.47816,-1.903628 -2.753,-0.846764 -0.90039,-1.599609 -0.23633,0.417969 0.31055,0.527343 -0.39844,0.427735 -0.61133,0.158203 -0.49609,-0.943359 -0.36328,-0.8125 z m -2.7446,0.280558 -0.67774,0.05273 0.22657,0.613281 0.80078,0.01172 z m -0.8457,0.910156 -0.39454,0.451172 0.2793,0.837891 0.51172,-0.478516 -0.0488,-0.703125 z\"},\"53041\":{\"name\":\"Lewis, WA\",\"path\":\"m 95.387071,47.207143 3.198469,0.915 -0.19255,0.643 3.51047,1.036 11.08232,3.208 2.41044,1.164 3.0701,1.109 0.24782,-0.241 0.65075,-0.41 0.20859,-0.103 0.31379,-0.08 4.64438,1.277 0.19341,0.916716 -0.19206,0.277194 0.19341,0.09322 0.684,0.347278 0.0976,0.3939 -0.41666,0.06929 0.0141,0.402789 -0.57286,-0.105325 -0.39764,0.770734 0.40833,0.332704 -0.0925,0.384673 -0.44294,0.428477 0.0126,0.393434 -0.46046,0.191941 0.10022,0.165659 -0.21517,0.410956 -0.38096,0.116311 -0.37219,0.633186 0.3199,0.422932 -0.14493,0.570806 0.22309,1.251257 -0.18073,0.499864 -1.83279,-0.508 -11.04131,-3.02 -2.76345,-0.827 -9.023103,-2.628 -1.23018,-0.355 -1.945111,-0.506 -2.153707,-0.61 0.634702,-2.08 0.442152,-1.616 -0.187971,-0.06767 1.578609,-5.259333\"},\"53067\":{\"name\":\"Thurston, WA\",\"path\":\"m 99.838897,41.541143 1.920153,0.571 0.47297,-0.280385 0.64584,-0.240967 0.25298,-0.300189 0.34704,0.01657 0.3724,-0.269331 0.37165,-0.07482 0.15962,0.448855 -0.60067,1.223113 0.007,1.027394 0.37442,-0.07265 0.29686,-0.759782 0.2218,-1.029352 0.49222,-0.211477 0.0236,0.809093 0.12235,0.664108 0.31951,0.0707 0.26898,-1.353476 0.24952,0.829464 0.54481,0.995157 0.59466,0.355974 0.11945,1.414 0.35516,0.709316 -0.29667,0.427252 0.36481,0.162949 0.10499,-0.165922 0.47776,0.302932 -0.001,0.918853 0.63744,0.64511 0.19325,1.223627 1.51635,0.949883 0.67552,0.568954 0.0868,1.174142 1.45554,0.717904 -11.08232,-3.208 -3.51047,-1.036 0.19255,-0.643 1.23035,-4.348719 -0.650494,-0.186851 0.673501,-2.04543\"},\"53077\":{\"name\":\"Yakima, WA\",\"path\":\"m 127.42879,49.404525 0.1803,0.374663 0.39861,-0.05085 0.10064,0.172629 0.33902,0.04599 0.21237,-0.207291 0.40619,0.0816 0.46578,0.62541 0.2274,0.156096 0.31484,0.536188 0.18074,0.05197 0.45419,0.837753 0.38857,0.732999 0.17364,0.04524 -0.10166,0.419563 0.68275,1.459662 5.98688,1.592 -0.56849,1.90846 1.92765,0.56222 -0.45886,1.88332 5.52868,1.512 2.70818,0.658 -0.12248,0.549643 0.19755,1.009686 0.35757,0.649653 -0.0425,0.309621 0.51018,0.278397 -2.36408,9.2 -0.0392,0.634 -0.36193,1.487 -0.46533,1.767 -11.27487,-2.94 -7.38464,-2.016 -1.28545,-0.403 -4.19509,-1.132 -1.52614,-0.411 2.09665,-7.611 1.83279,0.509 0.18073,-0.499864 -0.22309,-1.251257 0.14493,-0.570806 -0.3199,-0.422932 0.37219,-0.633186 0.38096,-0.116311 0.21517,-0.410956 -0.10022,-0.165659 0.46047,-0.191941 -0.0126,-0.393434 0.44295,-0.428477 0.0925,-0.384673 -0.40833,-0.332705 0.39764,-0.770733 0.57286,0.105325 -0.0141,-0.402789 0.41665,-0.06929 -0.0976,-0.3939 -0.684,-0.347278 -0.19341,-0.09322 0.19206,-0.277194 -0.19341,-0.916716 0.002,-0.464581 -0.27513,-0.335257 0.14138,-0.188899 -0.0921,-0.177224 0.083,-0.130519 -0.32046,-0.193697 0.15501,-0.283668 -0.12521,-0.143554 -0.11167,-0.346933 0.65896,-0.56878 0.51351,-0.147888 0.32027,-0.211379 0.0751,-0.66675 0.30483,-0.321397 0.58443,-0.172375 0.0473,-0.359193 0.31653,-0.122902 -0.0338,-0.309721 0.55379,-0.503283 0.0998,-0.671618\"},\"53037\":{\"name\":\"Kittitas, WA\",\"path\":\"m 127.42879,49.404525 -0.0399,-0.206619 -0.22848,-0.185665 0.0334,-0.227572 0.16962,-0.238047 0.65272,-0.207015 0.77291,0.318856 0.2771,-0.267114 -0.12858,-0.522537 0.3372,-0.552586 -0.13815,-0.431548 -0.70012,-0.381047 0.29152,-0.320948 0.47787,-0.25125 -0.003,-0.641895 -0.1081,-0.206176 -1.17487,-0.206175 -0.063,-0.611846 0.3126,-0.401498 -0.30888,-0.522536 0.0367,-0.537562 0.63208,-0.255971 0.2865,-0.601544 0.67715,-0.105723 0.0611,-0.361146 0.21448,-0.242595 1.38642,-0.257619 0.10931,-0.302695 0.48493,-0.498017 0.27458,0.118002 0.39478,-0.212545 0.28961,-0.543092 0.8045,0.149907 0.29941,-0.520912 0.80497,0.02535 0.20873,1.344683 0.95611,0.860189 0.1274,0.744342 0.3466,0.328007 -0.0991,0.445294 0.48735,0.351465 -0.16946,0.539124 0.92835,0.467862 0.9518,0.162917 -0.0334,0.256746 0.52957,0.538234 0.27154,0.02217 0.0135,0.632063 0.43575,0.233289 0.17771,0.467862 1.28074,0.451273 0.0844,0.82659 0.3659,0.02904 0.47266,-0.438429 0.23808,0.570236 0.35537,0.382577 0.35537,0.171462 0.30487,0.52 0.41719,0.442 4.49283,1.141 0.0101,1.007656 1.08106,0.271344 -0.31816,1.513127 0.001,0.594068 -0.73223,0.52307 -0.31281,0.852346 0.34435,0.714171 -0.22915,1.023672 0.29983,1.087546 -0.45677,2.12336 0.3965,0.899483 -0.40083,0.753157 -0.6015,0.401666 -0.22284,0.354334 -2.70818,-0.658 -5.52868,-1.512 0.45886,-1.88332 -1.92765,-0.56222 0.56849,-1.90846 -5.98688,-1.592 -0.68275,-1.459662 0.10166,-0.419563 -0.17364,-0.04524 -0.38857,-0.732999 -0.45419,-0.837753 -0.18074,-0.05197 -0.31484,-0.536188 -0.2274,-0.156096 -0.46578,-0.62541 -0.40619,-0.0816 -0.21237,0.207292 -0.33902,-0.04599 -0.10064,-0.172629 -0.39861,0.05085 -0.1803,-0.374663\"},\"53017\":{\"name\":\"Douglas, WA\",\"path\":\"m 168.91263,39.460143 -1.76441,-0.48456 -0.10738,0.343907 -0.3423,-0.100759 -0.14094,0.671114 -0.35069,-0.0672 -0.0771,0.301717 -0.72317,-0.13456 -0.0855,0.335277 -0.22736,-0.05199 -0.51732,1.847823 -0.31703,-0.06156 -0.19408,0.639602 -0.24537,-0.05395 -0.20977,0.669823 -0.34078,-0.08529 -0.10346,0.341857 -0.3289,-0.08529 -0.3289,1.255474 -0.34077,-0.08529 -0.22211,0.958845 -0.39232,-0.07956 -0.0838,0.323854 -0.8677,-0.194717 -0.10833,0.303618 -0.29817,-0.07607 -0.0727,0.32735 -0.36936,-0.08793 -0.0609,0.291754 -0.3219,-0.08793 -0.10727,0.316954 -0.29711,-0.0746 -0.0954,0.316954 -0.29711,-0.0746 -0.0835,0.293223 -0.32084,-0.08646 -0.49882,1.883154 -5.22203,-1.238 -0.21527,0.69543 -0.26504,-0.07367 -0.11441,0.351637 -0.28197,-0.07645 -0.22882,0.676692 -0.29969,-0.06759 -0.0912,0.332149 -0.30388,-0.07544 -0.0912,0.296707 -0.37476,-0.102017 -0.10895,0.34987 -0.33932,-0.07544 -0.52491,2.060116 -1.08106,-0.271344 -0.0101,-1.007656 0.16046,-0.312 0.19968,-0.547 0.22464,-0.676 -0.0143,-0.128 -0.50633,-0.779 -1.55288,-0.699 -0.23178,-0.128 -0.44215,-0.385 -0.0642,-0.193 -0.0481,-0.788 0,-0.556 0.11232,-0.328 0.48316,-1.004 0.38127,-0.507358 0.54487,-0.180143 0.5691,-0.692647 0.29818,-0.980301 0.67993,-0.571283 0.0783,-0.46087 -0.16713,-0.610844 0.12222,-0.425554 0.22465,-0.249 0.14441,-0.1 0.22464,-0.09 0.98058,-0.128 0.19255,0.09 0.20146,0.209 0.0802,0.128 0.10519,0.04 1.50118,-0.04 0.73595,-0.638147 0.19941,-0.605298 0.86736,-0.243953 0.15561,-0.868093 0.88646,-0.449108 0.11299,-0.215401 0,-0.177 -0.0571,-0.274 -0.12659,-0.257 -0.009,-0.08 0.0568,-0.176225 0.39345,-0.333746 0.0675,-0.457518 -0.27286,-0.568203 0.16514,-0.327308 1.4361,-0.421247 0.44715,0.146645 0.11865,-0.378946 0.43977,0.176426 0.14413,0.537771 0.38418,0.07819 0.29659,-0.08606 0.14328,0.373836 -0.4699,0.691381 -0.1253,0.499308 0.37839,0.586907 0.5317,0.09416 0.88208,-0.584724 0.27455,-0.0085 0.31834,-0.271277 0.2855,-0.06323 0.47164,-0.523122 0.3512,0.232415 0.58114,0.133867 0.395,0.703258 1.05198,0.221468 0.26033,-0.68483 0.31507,-0.356335 0.40268,-0.192088 0.35887,0.410153 1.15105,-0.250676 0.42222,0.07176 0.35653,-0.300535 0.43551,-0.0738 0.2816,0.451647 0.57725,0.123152 0.24069,0.376 0.21087,0.315699 -0.0642,1.032318 0.1767,0.638125 0.40664,0.386278 0.0562,0.32058 -0.0945,0.265 -0.28169,0.41 -0.41006,0.458\"},\"53019\":{\"name\":\"Ferry, WA\",\"path\":\"m 176.73943,17.050143 9.52944,2.305 -0.28883,0.266 -0.22464,0.289 -0.17651,0.772 -0.19254,1.285 0.0802,0.85 0.2086,0.186 0.34588,1.551 0.0392,0.651 -0.27278,2.307 -0.39352,0.564462 -0.31013,0.731259 -0.44912,0.898056 -0.42132,0.06407 -0.87911,1.42386 -0.15631,2.508043 0.0939,2.06325 -0.32817,0.540365 -0.60503,0.314625 -0.26158,1.449068 -0.57381,0.231363 -0.48014,-0.112092 -0.10961,0.498734 0.12977,0.488327 -0.24022,0.743181 -0.39233,-0.03876 -0.13214,0.294288 -0.83986,-0.163657 -0.20499,-0.246919 -0.42085,0.05448 -0.66679,0.257 0.43023,1.38104 -0.33628,1.097956 0.0183,0.768004 -0.52238,1.118 -0.61576,-0.01255 -0.61576,-0.482181 -0.14636,-0.860982 -0.71188,0.116542 -0.44959,-0.310296 0.30589,-0.900729 -0.51874,-0.432489 -1.12534,-0.09984 -0.46004,-0.569464 -0.53831,0.19368 -0.008,0.397769 -0.16204,0.292542 -0.37975,-0.02 -1.0929,-0.772 -0.11945,-0.202 -0.23356,-0.722 0.12123,-0.112 1.90486,-7.768153 0.12213,0.02233 0.86563,-3.814146 -0.34486,-0.113988 0.87296,-3.823741 0.53463,0.118107 1.33082,-5.521406 0.46712,-1.984\"},\"53055\":{\"name\":\"San Juan, WA\",\"path\":\"m 109.57422,6.421875 0.26562,0.4960938 0.57227,0.6933593 0.85937,0.5097657 L 111.0957,7.6972656 111.04688,7.3320312 110.44141,6.84375 110,6.4335938 Z m 3.71094,0.066406 -0.60157,0.056641 -0.45507,0.2402343 0.25,0.3613282 -0.10352,0.3808594 0.71094,-0.1523438 0.15039,-0.5 z m 1.23437,0.7304688 -0.39258,0.050781 -1.33593,0.8339844 -0.60938,0.4414063 0,0.3691406 0.47461,0.013672 0.22852,0.4902344 0.16796,-0.3046876 -0.002,-0.5039062 0.34375,0.1152344 -0.0742,0.4335937 0.0586,0.4765625 0.29882,0.4707034 0.70118,-0.101563 0.11132,-0.2363279 -0.0273,-0.5898437 -0.1543,-0.9492188 0.0508,-0.6269531 0.42187,0.1132813 -0.0742,1.078125 0.32422,0.6953124 0.082,0.6562498 0.41992,-0.01172 0.0137,-0.4804682 0.46874,-0.140625 0,-0.015625 0.51368,-0.1855469 0.26562,-0.1835938 -0.008,-0.029297 -1.10156,-1.1816406 -0.54493,-0.4921875 -0.25976,-0.1347656 z m -4.42773,0.875 -0.35352,0.2578125 -0.17773,0.2011719 -0.0312,0.1367187 0.27148,0.375 -0.17773,0.3476563 0.0996,0.7714846 0.0801,0.392578 0.0879,0.232422 0.24219,0.371094 0.98828,1.060546 0.43555,0.337891 0.58398,0.226563 0.12891,-0.341797 -0.57031,-0.199219 -0.0449,-0.658203 0.19336,-0.429688 0.39453,0.113281 0.33789,-0.287109 -0.25,-0.25 -0.36328,-0.103515 0.043,-0.451172 -0.47071,-0.7011722 -0.47265,-0.6113282 0.21289,-0.4414062 -0.77735,-0.2597656 z m 1.1875,0.3496094 0.002,0 0,-0.00391 z m 2.88476,1.9062496 -0.20117,0.101563 -0.21094,0.302734 -0.30859,-0.02344 -0.43359,0.767578 -0.32853,0.475077 -0.0543,0.601095 0.39844,0.265625 -0.0957,0.798828 0.23242,0.175781 0.13672,0.06055 0.94726,0.177734 0.16993,-0.107422 0.0859,-0.466796 0.0391,-0.658204 0.6914,-0.507812 -0.0508,-0.525391 -0.75976,-0.06836 -0.0254,0.615234 L 114.13086,13 l -0.0996,-0.154297 0.0801,-0.359375 -0.30664,-0.453125 0.28906,-0.322265 0.45117,-0.416016 -0.32617,-0.140625 0.0312,-0.345703 z m -1.08196,0.354131 0.15119,-0.332456 0.29283,0.06551 0.21873,-0.180596 -0.4539,-0.4292764 -0.42125,-0.2596374 -0.3625,-0.1957192 -0.27329,0.3662288 0.29109,0.1664702 0.0685,0.511495 z m 1.74212,-0.258428 -0.0566,0.386719 0.0469,0.761719 0.35157,0.01172 0.52343,-0.238281 -0.11718,-0.529297 -0.32032,-0.332032 z\"},\"53029\":{\"name\":\"Island, WA\",\"path\":\"m 116.96336,15.176143 0.0802,-0.06 0.14441,-0.06 0.10341,0.07 0.0499,0.112 0.10341,0.282 -0.39911,0.818054 0.96249,1.108946 0.0713,0.266 -0.0321,0.224 -0.0321,0.05 -0.32983,0.2 -0.14442,0.03 -0.31378,-0.07 -0.0963,-0.04 -0.16046,-0.353 -0.11945,-0.106 -0.22642,-0.07 -0.31379,0 -0.15154,0.08 -0.53843,0.41 -0.40114,0.465 -0.81205,-0.135064 0.006,0.575319 0.92856,0.02778 0.64956,0.453968 0.15558,0.863772 0.0693,1.347576 -0.39749,0.412311 0.29967,0.680303 -0.22117,0.860238 0.0867,0.557606 0.50828,-0.450197 -0.0175,-0.792036 0.17448,-0.60258 0.41331,0.132853 0.27504,0.536735 0.21005,0.649705 0.40314,0.497703 0.49262,0.271585 -0.20379,0.764415 0.10148,0.666 -0.29466,0.662663 -0.61583,0.301558 -0.70108,-0.114221 -0.005,-0.384691 0.20057,-0.309475 -0.0892,-0.460235 -0.23255,-0.493764 -0.28116,-0.169856 -0.41857,0.133894 -0.3515,0.123429 -0.1785,-0.236533 0.17552,-0.357412 -0.16911,-0.451792 -0.37585,-0.194645 -0.14493,-0.536004 0.27122,-0.21657 -0.19951,-0.731346 0.69262,-0.855335 0.004,-0.957005 -0.4503,-0.297659 -0.59767,0.09731 -0.17893,-0.954095 -0.31175,-0.230013 -0.10207,-0.314262 -0.24864,-0.330116 0.27424,-0.599661 0.70435,-0.551494 0.20709,-0.379638 1.26316,-1.180355 0.22495,-0.381798 0.0909,-0.395661 0.12211,-0.05422 0.33874,0.144 m 1.39734,8.14171 -0.26943,-0.576678 -0.29681,-0.316395 -0.23696,-0.519592 -0.32454,0.06 -0.204,-0.344 -0.0708,-1.141094 0.16059,-0.197029 -0.14198,-0.386041 0.48039,-0.92333 0.52849,-0.08845 0.32105,0.226235 0.33521,-0.405404 0.69668,0.779102 -0.0561,0.560701 -0.19851,-0.0568 -0.12974,-0.24425 -0.2832,-0.08553 -0.0908,0.331721 -0.19142,0.520125 -0.51532,0.03546 -0.0399,0.578194 0.33089,0.867247 0.55025,1.204731 0.0772,0.716195 -0.37527,-0.06463 z\"},\"53061\":{\"name\":\"Snohomish, WA\",\"path\":\"m 119.91223,18.528143 8.08353,2.273 3.86526,1.086 1.125,0.337 7.46487,2.048 -0.20249,0.424937 0.27187,0.685074 0.33309,0.700376 -0.2331,0.256613 0.37735,0.389761 0.23964,0.940639 -1.09166,0.129624 0.0866,0.772316 -1.29237,0.556095 -0.22122,-0.178408 -1.98096,0.403074 0.34496,0.953952 -0.452,0.341489 -0.16561,-0.01 -0.43789,0.45195 -0.008,0.208698 -0.27105,0.418227 -0.22222,0.463146 -0.0539,0.49375 0.26745,0.264217 -0.23753,0.63147 0.47363,0.549272 0.65725,0.166717 -0.50571,0.53397 -0.50571,0.335041 -4.53206,-1.246 -0.54734,-0.106 -1.94333,-0.497 -7.37751,-2.034 -4.8298,-1.414 0.009,-0.05 0.1765,-0.506 2.22502,-2.821 0.48316,-0.04 0.44928,0.06 0.36371,-0.169 0.0874,-0.106 0.26386,-0.875 -0.0143,-0.323 -0.61152,-0.642 -0.63471,-1.317 -0.14441,-0.667 -0.009,-0.04 0.16937,-0.563 0.16046,-0.498 0.0452,-1.208558 0.12651,-0.697516 0.37559,-0.856926\"},\"53033\":{\"name\":\"King, WA\",\"path\":\"m 114.11535,38.405861 -0.4577,0.200691 -0.73555,0.133095 -0.55209,0.348151 -0.59836,0.08962 0.37782,-1.125794 0.44736,-1.025288 0.34061,-0.574125 0.35376,-0.378962 0.16946,-0.482549 0.23942,0.131592 -0.15109,0.553648 0.0393,1.253637 -0.12213,0.522392 z m 2.3621,-6.989271 -0.0862,-1.575448 4.8298,1.414 7.37751,2.034 1.94333,0.498 0.54734,0.105 4.53206,1.246 -2.2e-4,0.008 0.36192,1.036 -0.16937,0.353 0.231,0.346825 -0.0481,0.168438 -1.22621,0.286712 0.006,0.492025 -0.15868,1.368 -0.80497,-0.02535 -0.29941,0.520912 -0.8045,-0.149907 -0.28961,0.543092 -0.39478,0.212544 -0.27458,-0.118001 -0.48493,0.498017 -0.1093,0.302694 -1.38643,0.25762 -0.21448,0.242595 -0.0611,0.361146 -0.67716,0.105723 -0.2865,0.601544 -0.63208,0.255971 -0.0367,0.537561 0.30888,0.522537 -0.3126,0.401498 0.063,0.611846 1.17487,0.206175 0.1081,0.206175 0.003,0.641896 -0.47787,0.25125 -0.29152,0.320948 0.70012,0.381047 0.13815,0.431548 -0.3372,0.552586 0.12858,0.522537 -0.2771,0.267114 -0.77291,-0.318856 -0.65272,0.207015 -0.16962,0.238047 -0.0334,0.227572 0.22848,0.185665 0.0399,0.206619 -0.28044,-0.02992 -0.17567,-0.197537 -0.47706,0.04493 -0.38525,-0.66154 -0.5424,-0.535825 -1.17097,-0.200582 -0.25953,-0.787257 -0.68907,-0.284393 -0.8043,-0.116771 -0.20715,-0.284393 -0.73097,-0.556777 -0.96152,0.418711 -0.8326,-0.454679 -0.44226,0.156422 -0.28888,0.02994 -0.0862,-0.416139 -0.82917,-0.758516 -0.52649,0.05252 -0.40609,-0.683811 -0.47802,-1.904347 -2.75287,-0.84742 -0.90035,-1.6 1.35854,-0.105 0.50546,-1.23782 -0.33208,-1.126703 0.24567,-0.540417 -0.10461,-1.236679 0.10849,-1.06753 0.27111,-0.151729 0.35832,0.595978 0.39822,-0.280035 0.1769,-0.700122 -0.86273,-0.994387 -0.0243,-0.592969 z\"},\"53035\":{\"name\":\"Kitsap, WA\",\"path\":\"m 114.36719,25.939453 0.13476,1.267578 -0.69726,0.589844 -1.27735,0.513672 -0.31445,0.488281 -1.10547,0.708984 -0.41406,1.083985 -0.74219,0.666015 -2.25195,0.123047 -0.18555,0.509766 -0.81445,0.05859 -1.05274,0.728515 -0.2246,0.248047 0.36328,0.09375 0.66601,0.134766 2.25,0.714844 -0.76367,2.539062 3.53125,1.126953 1.44531,-2.164062 -0.46973,-0.379883 0.24122,-0.858399 -0.27735,-0.378906 -0.32617,0.425782 -0.64648,0.193359 -0.54297,-0.02148 -0.43555,0.101563 -0.27734,-0.289063 0.53906,-0.392578 0.44727,-0.324218 0.0547,-0.601563 -0.36523,0.01563 -0.29883,-0.515625 0.66992,-0.914062 0.20313,0.701171 -0.0293,1.253907 0.67773,-0.244141 0.39454,-0.716797 -0.34766,-0.777343 0.32617,-0.826172 -0.60742,-0.800782 0.50781,-0.558593 0.51367,1.179687 0.49024,-0.140625 0.59765,-0.732422 0.58204,0.388672 0.5625,-0.02734 -0.24219,-0.824218 0.25976,-0.271485 -0.14062,-0.55664 0.30078,-1.285157 -0.0488,-0.611328 -0.23242,-0.378906 z m -0.81192,4.795382 0.53353,0.677626 -0.25897,1.494381 -0.0364,0.92067 -0.55463,0.0326 -0.18071,-0.734133 -0.50433,0.105239 0.34984,-1.447113 z\"},\"53045\":{\"name\":\"Mason, WA\",\"path\":\"m 98.673828,28.855469 -0.585937,1.953125 -1.851563,5.677734 0.263672,0.111328 -1.121094,3.841797 4.460938,1.205078 1.919926,0.570313 0.32421,-0.677735 0.50391,-0.04102 0.0566,-0.402344 0.64453,-0.333984 0.70703,-0.228516 0.90235,0.25 -0.13477,-0.875 -0.0566,-0.648438 0.30078,-0.777343 0.70703,-0.226563 0.83204,-0.349609 0.80664,-1.169922 0.28748,0.673614 0.2965,-0.99002 0.76367,-2.552735 -2.25,-0.714843 -0.66601,-0.134766 -0.36328,-0.09375 -0.52149,0.785156 -1.86914,1.716797 0.63281,0.423828 0.70899,0.0332 1.40039,-0.201171 1.05859,-0.306641 0.74414,-0.183594 -0.16406,0.726563 -0.47852,0.201172 -1.11328,0.349609 -0.73633,-0.09375 -1.04101,0.376953 -1.03906,-0.349609 -0.50196,0.33789 -0.5,-0.75 0.49219,-0.941406 1.22461,-1.320313 0.82031,-0.644531 0.35742,-0.875 1.10547,-0.890625 0.0957,-0.06055 0.33007,-0.08008 z m 6.980682,9.771043 -0.58244,0.332038 0.13047,1.469355 0.0361,0.905495 0.80372,-0.612506 -0.14239,-1.21992 0.45451,-1.130493 z\"},\"53027\":{\"name\":\"Grays Harbor, WA\",\"path\":\"m 85.454703,26.499143 4.529748,1.402591 -0.0387,0.341409 8.142367,2.458 -1.851915,5.68 0.263374,0.112131 -1.120771,3.840869 4.460091,1.205 -0.673501,2.04543 0.650494,0.186851 -1.23035,4.348719 -3.198469,-0.915 -3.583568,-1.109 -3.801079,-1.077 -3.647752,-1.175 0.0037,-2.578933 0.327045,0.159944 0.02408,0.0032 -0.183488,1.630967 0.429424,-0.253258 0.224973,0.614376 0.63281,-0.100051 -0.0069,-0.642539 0.131374,-0.382945 0.884363,-0.589695 1.766943,-0.06102 0.377969,-0.08 0.02318,0 0.776392,0.03009 0.177687,-0.484253 -0.787908,0.01017 -2.212584,-1.208566 0.07099,-0.895445 -0.524164,-0.417 -0.793385,-0.509675 -0.841231,0.06482 -0.296863,1.848471 -0.282026,-0.03 0.587633,-1.99029 0.469775,-1.730417 0.20563,-4.103368 -0.54312,-0.481673 -0.225099,-1.118869 0.0071,-0.282 0.137281,-1.116 0.538427,-2.644\"},\"53031\":{\"name\":\"Jefferson, WA\",\"path\":\"m 83.951172,17.847656 0,0.0059 0.322266,0.167968 0.267578,0.322266 0.02148,0.0293 0.01758,0.01953 0.658203,1.246094 0.08789,0.162109 0.410156,1.816407 0.02344,0.199218 -0.07227,2.50586 -0.08789,1.085937 -0.0957,0.933594 -0.04883,0.271484 4.528934,1.403701 -0.0387,0.34044 8.142579,2.458984 0.585937,-1.953125 7.753905,2.320313 0.93946,-0.666016 0.86914,-0.626953 0.85547,-1.203125 0.37304,-1.769531 L 110,26.74223 l -0.18359,1.144531 0.23437,0.0098 0.32031,-1.478515 0.56836,0.04492 -0.14843,1.109375 -1.30274,2.480468 0.45899,0.05469 0.52343,-1.15625 0.27735,-0.0957 0.50976,-0.908203 0.97071,-0.611328 0.17382,-0.765626 0.82422,0.208985 0,-0.953125 -0.26172,-0.878906 -0.15234,-1.65625 -0.30583,-0.19336 -0.10042,-0.761718 -0.22461,-0.84375 0.28906,-0.546876 0.69727,-0.05664 0.082,-0.501953 -0.35352,-0.09961 -0.7871,-0.0293 -0.7129,0.888672 0.41993,1.06836 -0.6543,1.164062 -0.58984,-0.207031 0.20898,-0.492187 -0.0215,-0.558594 -0.53321,-0.501953 0.24219,-0.763672 -0.36133,-0.316407 -1.42969,5.070313 -10.296874,-3.101563 0.05664,-0.226562 -1.662109,-0.537109 -5.59961,-1.679688 -3.728515,-1.15625 -0.916016,-0.320312 z m 29.306638,4.949219 0.44336,0.841797 0.12891,-1.134766 0.1543,-0.892578 -0.62696,0.0625 z\"},\"53009\":{\"name\":\"Clallam, WA\",\"path\":\"m 83.951743,17.740143 -0.167589,-0.442 -0.03209,-2.049 0.487144,-2.203021 0.467634,-0.675723 -0.305945,-1.439043 0.5712,-0.132394 L 85.407965,9.7339839 85.333316,9.4089967 85.773505,9.110395 85.960962,8.6291129 86.394681,8.315224 86.60239,7.5304859 86.137682,7.0192927 85.672215,6.2081435 l 0.151544,-0.04 0.95027,0.273 0.529512,0.467 0.490289,0.433 0.586564,0.596 0.185419,0.192 1.141037,1.366 4.564147,4.3299995 0.946704,0.594 1.631325,0.733 2.060232,0.68111 0.745693,0.126116 0.443089,0.356829 0.34433,0.435191 1.07496,0.0625 0.32158,0.466739 1.35178,0.643516 0.9437,0.448272 1.76616,0.442204 1.08968,-0.182106 1.00582,0.01907 0.54504,0.78956 -0.0117,1.367179 0.24485,1.143675 0.44807,-0.270752 0.13357,-1.123555 0.75235,-0.126547 -1.42986,5.07 -10.298308,-3.101411 0.05805,-0.227049 -1.662182,-0.53654 -5.599995,-1.679 -3.727981,-1.157 -0.916395,-0.321 -2.579813,-0.74\"},\"53057\":{\"name\":\"Skagit, WA\",\"path\":\"m 146.3094,17.307143 -0.58029,0.532273 0.1381,1.011198 0.18778,0.209696 0.59966,-0.25965 0.27398,0.736514 -0.3103,0.152225 -0.29293,0.589744 -0.43945,-0.01399 -0.45361,0.226682 -0.45361,-0.02814 -0.29788,-0.339598 0.0985,-0.353754 -0.0572,-0.353754 -0.49608,-0.113086 -0.0143,0.272564 -0.22666,0.102681 -0.15587,-0.251244 -0.45317,0.173465 -0.40868,-0.175726 -0.30797,-0.05173 -0.0673,0.599491 -1.483,-0.221612 -0.53448,0.741062 0.3291,0.557021 -0.67606,0.726904 0.003,0.457922 0.14505,0.415451 -0.11086,0.404983 -0.37847,-0.05002 -0.22942,0.356431 0.79516,0.914 -7.46487,-2.048 -1.125,-0.337 -3.86526,-1.086 -8.08353,-2.273 -0.27456,-0.756 -0.82466,-0.772071 -0.85438,-0.744977 -0.10056,-0.918221 0.26151,-0.624568 -0.29502,-0.214796 -0.28873,0.346206 -0.34167,0.07504 -0.42301,-0.0015 -0.26416,-0.105324 -0.0517,-0.67557 0.25652,-0.189491 0.0997,-0.436039 -0.10147,-0.329578 -0.37605,-0.175646 0.0795,-0.319704 0.44896,0.08203 0.73813,-0.144371 0.38286,0.0625 0.11571,0.787662 0.42337,-0.230332 0.27086,1.178531 0.421,0.230538 0.38211,-0.33052 -0.0386,-0.78654 0.21772,-0.667373 -0.11535,-0.64043 -0.74558,-0.532977 0.21583,-0.260559 0.74769,0.624681 0.35272,0.408607 0.87035,-0.745193 -0.20146,-0.603 -0.43502,-0.594 0.33874,0.03 5.14358,1.438 12.8331,3.671 5.27943,1.413314 0.0668,-0.374826 2.18286,0.603512 m -29.0673,-5.010149 0.46882,-1.297569 0.60982,0.997449 0.0721,0.56227 z m -0.93592,-0.424527 0.0283,-0.550788 -0.11734,-0.553079 0.50054,-0.55496 0.36445,0.322365 -0.0183,0.406123 0.12063,0.33318 -0.22209,0.09179 -0.18684,0.311567 z\"},\"53007\":{\"name\":\"Chelan, WA\",\"path\":\"m 146.32366,20.279143 0.79742,0.105 -0.17879,0.583465 0.35063,0.331355 -0.48364,0.284543 0.32311,0.334966 -0.66012,0.309755 0.006,1.225542 1.01422,0.570055 -0.0446,0.620477 -0.52365,0.721322 0.56042,0.519633 0.45958,-0.06022 0.66126,1.553285 0.78732,0.645689 -0.10293,0.280881 0.52734,0.154827 -0.002,0.633836 -0.45588,0.457358 -0.002,0.608625 0.27523,0.205249 0.0483,0.381726 0.50213,-0.04686 0.34362,0.49939 0.54531,0.978399 0.36883,0.04559 0.72178,0.675867 -0.31185,0.373335 0.74699,0.726288 -0.085,0.474179 0.19236,0.423757 -0.0966,0.440523 2.89238,0.788165 0.0571,0.274 0,0.177 -0.11299,0.215401 -0.88646,0.449108 -0.15561,0.868093 -0.86736,0.243953 -0.19941,0.605298 -0.73595,0.638147 -1.50118,0.04 -0.10519,-0.04 -0.0802,-0.128 -0.20146,-0.209 -0.19255,-0.09 -0.98058,0.128 -0.22464,0.09 -0.14441,0.1 -0.22465,0.249 -0.12222,0.425554 0.16713,0.610844 -0.0783,0.46087 -0.67993,0.571283 -0.29818,0.980301 -0.5691,0.692647 -0.54487,0.180143 -0.38127,0.507358 -0.48316,1.004 -0.11232,0.328 0,0.556 0.0481,0.788 0.0642,0.193 0.44215,0.385 0.23178,0.128 1.55288,0.699 0.50633,0.779 0.0143,0.128 -0.22464,0.676 -0.19968,0.547 -0.16046,0.312 -4.49283,-1.141 -0.41719,-0.442 -0.30487,-0.52 -0.35537,-0.171462 -0.35537,-0.382577 -0.23808,-0.570236 -0.47266,0.438429 -0.3659,-0.02904 -0.0844,-0.82659 -1.28074,-0.451273 -0.17771,-0.467862 -0.43575,-0.233289 -0.0135,-0.632063 -0.27154,-0.02217 -0.52957,-0.538234 0.0334,-0.256746 -0.9518,-0.162917 -0.92835,-0.467862 0.16946,-0.539124 -0.48735,-0.351465 0.0991,-0.445294 -0.3466,-0.328007 -0.1274,-0.744342 -0.95611,-0.860189 -0.20873,-1.344683 0.15868,-1.368 -0.006,-0.492025 1.22621,-0.286712 0.0481,-0.168438 -0.231,-0.346825 0.16937,-0.353 -0.36192,-1.036 0.50571,-0.335041 0.50571,-0.53397 -0.65725,-0.166717 -0.47363,-0.549272 0.23756,-0.63147 -0.26741,-0.264217 0.0539,-0.49375 0.22225,-0.463146 0.27105,-0.418227 0.008,-0.208698 0.43789,-0.45195 0.16561,0.01 0.452,-0.341489 -0.34496,-0.953952 1.98096,-0.403075 0.22122,0.178409 1.29237,-0.556095 -0.0866,-0.772316 1.09166,-0.129624 -0.23964,-0.940639 -0.37735,-0.389761 0.2331,-0.256613 -0.33309,-0.700376 -0.27187,-0.685074 0.20249,-0.424937 -0.79516,-0.914 0.22942,-0.356431 0.37847,0.05002 0.11086,-0.404983 -0.14505,-0.415451 -0.003,-0.457922 0.67606,-0.726904 -0.3291,-0.557021 0.53448,-0.741062 1.483,0.221612 0.0673,-0.599491 0.30797,0.05173 0.40868,0.175726 0.45317,-0.173465 0.15587,0.251244 0.22666,-0.102681 0.0143,-0.272564 0.49608,0.113086 0.0572,0.353754 -0.0985,0.353754 0.29788,0.339598 0.45361,0.02814 0.45361,-0.226682 0.43945,0.01399\"},\"55029\":{\"name\":\"Door, WI\",\"path\":\"m 671.47461,133.53711 -0.01,0.25977 -0.18359,0.27343 -0.28125,0.0195 -0.11133,-0.1582 -0.33398,0.0312 -0.11914,0.13672 -0.50196,0.0391 -0.16797,-0.18945 -0.17382,0.004 -0.12305,0.68555 0.0273,0.41211 0.11719,0.0781 0.0176,0.20312 -0.0937,0.0176 0.0547,0.40625 0.42968,0.30469 0.54311,0.58649 0.002,-0.67438 0.4707,-0.26172 -0.0176,-0.69727 0.25977,-0.56445 0.29101,-0.4082 0.17774,-0.0117 -0.006,-0.39844 z m -2.08399,3.36328 -0.3457,-0.15039 -0.37695,0 -0.53125,0.34961 -0.19336,0.004 -0.15625,0.55078 -0.50977,0.19531 -0.0918,1.50977 -0.59571,0.24804 -0.4082,0.5918 -0.41602,-0.0234 -0.1289,-0.24219 -0.33984,0.1836 0.0586,0.86523 -0.24609,0.35156 0.0664,1.02149 -0.87109,0.91797 -0.52344,1.30273 -0.45898,1.27539 -0.0371,0.66992 0.32812,0.23047 0.0156,0.4375 -0.2793,0.26367 -0.2207,-0.18164 -0.0645,-0.43945 -0.23828,-0.16601 -0.5625,0.74609 -0.71679,-0.01 -0.56055,0.55274 -0.95703,0.22851 -0.38672,0.61133 -1.1875,2.16211 -0.1543,1.11524 0,0.01 5.91602,-0.48828 0.40039,-1.05273 0.32422,-0.7168 -0.10743,-0.88867 0.56055,-0.65821 0.19141,-0.38867 -0.0488,-0.31836 0.91016,-0.7207 0.0684,-0.30859 -0.25976,-0.36719 0.4668,-0.59961 0.29687,-0.0176 -0.30469,-0.40625 0.002,-0.65039 0.28125,-0.75195 0.39257,-0.19727 0.0957,-1.08203 0.65039,-0.0547 0.48242,-0.80078 0.0898,-0.33984 -0.26171,-0.39649 0.38867,-0.46289 -0.3125,-0.29492 -0.084,-1.34961 0.26758,-0.29492 0.4082,0.32227 0.23829,-0.125 0.0918,-0.33008 0.0488,-0.44141 -0.16406,-0.27734 0.14062,-0.46094 z\"},\"55061\":{\"name\":\"Kewaunee, WI\",\"path\":\"m 658.30151,151.96514 5.91556,-0.489 -0.37808,1.09785 -0.52405,0.60515 -0.3851,1.262 -0.16937,0.956 -0.26296,3.37483 -0.33074,0.93217 -3.65667,0.328 -0.57052,-7.286 0.36193,-0.781\"},\"55093\":{\"name\":\"Pierce, WI\",\"path\":\"m 576.08803,152.67314 10.1998,-0.282 0.10572,3.987 0.0464,3.30083 -2.80504,0.12217 -0.0571,-0.09 -0.15867,-0.137 -0.18542,-0.09 -0.28169,-0.06 -2.20898,-0.09 -0.69889,-0.08 -0.25851,-0.119 -1.18918,-1.182 -0.041,-0.225 -0.17651,-0.225 -1.69372,-1.438 -1.166,-0.674 0.56874,-2.717\"},\"55091\":{\"name\":\"Pepin, WI\",\"path\":\"m 586.39355,156.37814 8.00098,-0.321 0.0963,2 -5.77828,0.25 -0.31379,0.16 -0.31976,0.19349 -0.34741,2.90248 -0.27447,0.54703 -0.0553,0.644 -2.46368,-1.004 -1.21258,-0.84785 -0.0907,-1.09715 2.80504,-0.12217 -0.0464,-3.30083\"},\"55011\":{\"name\":\"Buffalo, WI\",\"path\":\"m 596.47693,157.97714 0.30203,8.13832 -0.58536,0.56193 -0.50279,0.17665 -0.30383,0.43586 0.2741,0.29826 -0.37263,0.4909 0.94503,0.29862 0.2295,0.95911 0.20198,0.29863 -0.31646,1.58976 -5.23687,-3.75676 -0.26016,-0.52827 -0.35445,-1.26378 -0.39218,-0.33969 0.0982,-0.35854 -0.0222,-0.51007 -0.92749,-0.84954 -1.85159,-0.86839 0.0553,-0.644 0.27447,-0.54703 0.34741,-2.90248 0.31976,-0.19349 0.31379,-0.16 5.77828,-0.25 1.98612,-0.08\"},\"55121\":{\"name\":\"Trempealeau, WI\",\"path\":\"m 602.4228,157.66314 0.30859,8.07285 0.20147,0 0.1863,3.93722 -0.77377,-0.14367 -0.42147,0.80996 -0.37606,-2.4e-4 -0.34862,-0.42173 -0.28476,0.31111 -0.39654,-0.0739 -0.40473,0.64454 -0.11935,0.51025 0.22968,0.35755 0.0545,0.34105 -1.3426,-0.0291 -2.5868,-0.74896 0.31646,-1.58976 -0.20202,-0.29862 -0.22955,-0.95911 -0.94507,-0.29863 0.37262,-0.4909 -0.27411,-0.29826 0.30382,-0.43586 0.50279,-0.17665 0.58535,-0.56193 -0.30203,-8.13832 5.94587,-0.314\"},\"55053\":{\"name\":\"Jackson, WI\",\"path\":\"m 602.4228,157.66314 3.9758,-0.193 0.0963,1.994 1.93189,-0.11105 0.15942,2.00605 5.99401,-0.337 1.97542,-0.169 0.21468,4.20784 0.16989,2.07735 -2.58632,0.0677 -5.27917,0.21116 -1.74187,0.112 -0.79516,0.298 -0.44393,0.426 0.1141,1.359 -3.0714,0.19421 -0.0173,-0.14514 -0.1863,-3.93622 -0.20147,0 -0.30859,-8.07285\"},\"55035\":{\"name\":\"Eau Claire, WI\",\"path\":\"m 606.07768,151.46814 0.32092,6.002 -3.9758,0.193 -5.94587,0.314 -1.98612,0.08 -0.0963,-2 -0.18541,-3.971 11.86856,-0.619\"},\"55019\":{\"name\":\"Clark, WI\",\"path\":\"m 605.84591,147.47414 9.88958,-0.619 0.45998,8.011 0.36014,5.987 -1.97542,0.169 -5.99401,0.337 -0.15942,-2.00605 -1.93189,0.11105 -0.0963,-1.994 -0.32092,-6.002 -0.23177,-3.994\"},\"55017\":{\"name\":\"Chippewa, WI\",\"path\":\"m 595.52131,141.98614 9.97872,-0.499 0.57765,9.981 -11.86856,0.618 -0.27623,-6.0489 -0.27624,0.0172 -0.0573,-2.04229 1.96176,-0.0837 -0.0398,-1.94231\"},\"55033\":{\"name\":\"Dunn, WI\",\"path\":\"m 593.59937,144.01214 0.0573,2.04229 0.27624,-0.0172 0.27623,6.0489 0.18541,3.971 -8.00098,0.321 -0.10572,-3.987 -0.33216,-6.00259 -0.37623,0.0124 -0.008,-2.08485 8.02839,-0.304\"},\"55109\":{\"name\":\"St. Croix, WI\",\"path\":\"m 585.57098,144.31614 0.008,2.08485 0.37623,-0.0124 0.33216,6.00259 -10.1998,0.282 0.1248,-1.735 -0.34945,-1.615 -0.39936,-0.853 -0.0499,-0.755 0.33875,-3.03 9.81813,-0.369\"},\"55095\":{\"name\":\"Polk, WIO\",\"path\":\"m 585.25733,134.43214 0.31365,9.884 -9.81813,0.369 0.24782,-2 0.19433,-0.176 0.0214,-0.02 0.42789,-0.53 0.60974,-1.558 -0.32091,-1.624 -0.79338,-1.501 -1.27119,-0.685 -0.32091,0.05 -0.77199,-0.13 -0.21751,-0.168 -0.0553,-0.451 -0.041,-0.61 -0.007,-0.151 0.0214,-0.364 5.74797,-0.16 -0.0553,-1.985 6.01718,-0.16 0.0713,1.968\"},\"55005\":{\"name\":\"Barron, WI\",\"path\":\"m 587.25058,134.35214 7.91594,-0.298 0.35479,7.932 0.0398,1.94231 -1.96176,0.0837 -8.02839,0.304 -0.31365,-9.884 1.99325,-0.08\"},\"55107\":{\"name\":\"Rusk, WI\",\"path\":\"m 609.04259,133.32314 0.33875,5.978 -4.01314,0.20068 0.13183,1.98532 -9.97872,0.499 -0.35479,-7.932 13.87607,-0.731\"},\"55119\":{\"name\":\"Taylor, WI\",\"path\":\"m 619.65958,138.59314 0.3548,6.003 -2.49209,0.221 0.11906,1.929 -1.90589,0.112 -9.88958,0.619 -0.34588,-5.987 -0.13183,-1.98532 4.01314,-0.20068 3.56752,-0.183 2.16262,-0.211 3.2056,-0.248 1.3425,-0.07\"},\"55099\":{\"name\":\"Price, WI\",\"path\":\"m 614.63546,125.10214 4.13269,-0.263 0.14441,1.943 0.48138,7.843 0.26564,3.968 -1.3425,0.07 -3.2056,0.248 -2.16262,0.211 -3.56752,0.183 -0.33875,-5.978 -0.40827,-7.875 6.00114,-0.346\"},\"55113\":{\"name\":\"Sawyer, WI\",\"path\":\"m 594.43554,122.14614 10.01973,-0.451 0.16046,3.657 0.041,0.33 3.97759,-0.234 0.40827,7.875 -13.87607,0.731 -0.73098,-11.908\"},\"55129\":{\"name\":\"Washburn, WI\",\"path\":\"m 586.46433,122.48314 7.97121,-0.337 0.73098,11.908 -7.91594,0.298 -0.36014,-7.891 -0.27457,0 -0.15154,-3.987\"},\"55013\":{\"name\":\"Burnett, WI\",\"path\":\"m 582.55806,122.65314 3.90627,-0.17 0.15154,3.987 0.27457,0 0.36014,7.891 -1.99325,0.08 -0.0713,-1.968 -6.01718,0.16 0.0553,1.985 -5.74797,0.16 0.65432,-2 1.61349,-3.231 0.19968,-0.36 0.20147,-0.266 0.79872,-0.699 0.005,0 3.34288,-2.194 2.33913,-1.46 -0.0321,-0.901 -0.041,-0.996\"},\"55031\":{\"name\":\"Douglas, WI\",\"path\":\"m 582.13374,111.05714 0.36014,0.25 0.44215,0.04 0.47603,-0.03 0.0784,-0.05 0.0731,-0.07 0.21573,-0.563 -0.016,-0.257 -0.016,-0.02 -0.0802,-0.09 0,-0.02 -0.0553,-0.145 0.016,-0.169 0.0892,-0.184 1.1232,-0.764 0.42789,-0.03 0.91462,0.894 0.22285,0.1 0.082,-0.06 0.44215,0.298 0.24069,0.137 0.1872,0.08 0.30309,0.05 1.93797,-0.321 0.46533,-0.13 3.72798,-1.567 0.21751,5.457 0.11946,1.962 0.30665,6.291 -7.97121,0.337 -3.90627,0.17 -0.21573,-5.964 -0.20859,-5.632\"},\"55007\":{\"name\":\"Bayfield, WI\",\"path\":\"m 603.87762,111.84514 0.57765,9.85 -10.01973,0.451 -0.30665,-6.291 -0.11946,-1.961 -0.21751,-5.458 0.22643,0.02 0.40828,-0.09 1.71911,-0.86163 0.37774,-0.0221 0.52757,-0.77878 1.23323,-0.28498 0.44735,-0.73511 0.41345,0.0161 0.43726,0.47826 0.49053,-0.78671 0.1462,0.33228 0.50822,0.0377 0.13728,-0.09 -0.0322,-0.45946 0.32702,0.0229 0.27289,0.14022 0.29877,-0.38861 -0.0196,-0.24858 0.2865,-0.27969 0.24659,-0.11373 0.46711,-0.602 0.76135,0.28057 0.83786,-0.81457 0.24068,-0.04 0.28883,0.1 0.86113,0.665 0.52773,0.612 0.066,0.121 0,0.112 -0.30868,0.33701 -0.36524,1.18899 -0.47907,0.58172 -0.12134,0.34234 -0.41143,0.0302 0.0134,0.44375 -0.23165,0.22907 0.009,0.41948 0.49061,0.74773 -0.0394,0.35564 -0.44454,0.44176 -0.35279,0.15935 -0.006,0.009 -0.18994,0.29793 0.0184,0.38706 -0.20686,0.71554 -0.19337,0.0636 0.005,0.08 0.16224,0.184 0.23356,0.07\"},\"55003\":{\"name\":\"Ashland, WI\",\"path\":\"m 611.76172,100.27734 -0.78711,0.0117 -0.21484,0.31055 -0.0996,0.44141 0.11914,0.40234 -0.0859,0.28711 -0.15039,0.20703 0.0884,0.2547 0.61672,-0.284 0.38086,-0.47265 0.006,-0.54102 z m -1.75274,2.82764 -0.26924,-0.18589 -1.66951,0.5602 -0.36059,0.6724 0.17192,0.28264 1.13736,-0.36024 0.50558,-0.011 0.002,-0.24291 0.25704,-0.2889 z m -3.30195,6.28564 -0.28125,0.625 0.0293,0.39649 -0.14453,0.24219 -0.375,0.27929 -1.70508,1.03907 -0.0644,0.0195 -0.13672,0 -0.15235,-0.041 0,0.006 0.57813,9.84961 0.16015,3.65625 0.041,0.33008 3.97852,-0.23438 6,-0.3457 -0.0859,-1.98437 -0.16992,-1.98438 -1.95118,0.10742 -0.12109,-1.95508 -2.01562,0.11133 -0.0977,-2.66015 -0.18359,-3.2793 -0.13086,-1.91992 -1.29297,-0.8418 z m 0.52547,-2.08566 -0.38228,7.1e-4 -0.72035,0.73675 -0.28527,0.004 -0.0398,-0.77593 0.86723,-0.43581 0.12728,-0.29022 1.05484,-0.742 0.39015,-0.62252 0.3905,-0.032 0.53097,0.54268 -0.35987,0.23927 -0.42627,0.0396 -0.88321,0.41193 -0.071,0.45878 0.49764,-0.0688 -0.0134,0.31827 z\"},\"55051\":{\"name\":\"Iron, WI\",\"path\":\"m 611.99324,111.82914 1.81497,0.988 3.23056,3.97 1.47799,0.312 1.62242,0.337 0.47781,7.281 -1.84884,0.122 -4.13269,0.263 -0.0874,-1.984 -0.16938,-1.984 -1.95035,0.10675 -0.12134,-1.95575 -2.01643,0.112 -0.0981,-2.66 -0.18364,-3.279 -0.13015,-1.92 0.58246,-0.11943 1.01343,0.48808 0.51859,-0.0777\"},\"55125\":{\"name\":\"Vilas, WI\",\"path\":\"m 620.13918,117.43614 11.52447,2.364 0.86647,0.177 0.67749,0.144 1.0929,0.369 1.13212,0.555 0.97345,0.474 0.14263,2.098 -1.83101,0.129 0.15155,1.993 -2.19591,0.14892 0.0689,0.90387 -2.09197,0.12658 -0.0207,-0.89937 -11.71705,0.763 -0.14441,-1.943 1.84884,-0.122 -0.47781,-7.281\"},\"55085\":{\"name\":\"Oneida, WI\",\"path\":\"m 634.86925,125.73914 0.73989,9.859 -6.10811,0.378 -0.19255,-2.018 -3.94549,0.266 -5.96905,0.401 -0.48138,-7.843 11.71705,-0.763 0.0207,0.89937 2.09197,-0.12658 -0.0689,-0.90387 2.19591,-0.14892\"},\"55069\":{\"name\":\"Lincoln, WI\",\"path\":\"m 629.50103,135.97614 0.53129,7.986 -10.01794,0.634 -0.3548,-6.003 -0.26564,-3.968 5.96905,-0.401 3.94549,-0.266 0.19255,2.018\"},\"55067\":{\"name\":\"Langlade, WI\",\"path\":\"m 629.50103,135.97614 6.10811,-0.378 1.98433,-0.153 0.10519,1.984 4.01146,-0.305 0.26208,3.987 0.68284,-0.05 0.10697,2.007 -5.53046,0.403 0.16224,2.049 -3.92944,0.272 -0.15273,-2.02833 -3.2793,0.19633 -0.53129,-7.986\"},\"55073\":{\"name\":\"Marathon, WI\",\"path\":\"m 620.01438,144.59614 10.01794,-0.634 3.2793,-0.19633 0.15273,2.02833 0.54826,8.09927 -5.05269,0.19423 -5.07493,0.3055 -7.68952,0.473 -0.45998,-8.011 1.90589,-0.112 -0.11906,-1.929 2.49209,-0.221\"},\"55141\":{\"name\":\"Wood, WI\",\"path\":\"m 616.19547,154.86614 7.68952,-0.473 0.27278,3.985 1.92906,-0.121 0.23177,3.136 0.19434,2.924 -3.0141,0.31084 -6.72855,0.433 -0.21468,-4.20784 -0.36014,-5.987\"},\"55001\":{\"name\":\"Adams, WI\",\"path\":\"m 628.60246,164.21914 0.41006,6.068 0.48851,7.818 -3.07367,0.241 -0.10703,-0.45136 -0.50163,-0.30479 -0.37761,-0.78958 -0.2987,-1.07144 -1.25299,-1.24105 -0.0128,-0.20382 -0.71338,-0.67822 -0.0144,-0.31744 -0.49917,-0.81351 0.24804,-0.25737 0.24804,-0.0206 -0.0225,-0.4603 -0.36077,-1.22695 -0.654,-0.21803 0.10136,-0.49988 -0.29323,-0.2293 -0.16921,-1.30036 0.18779,-0.59159 0.47974,-0.10046 0.11834,-0.92904 0.38278,-0.0211 0.19767,0.19925 0.18885,-0.0123 -0.0403,-0.49712 0.32106,-0.0387 -0.0211,-0.27854 -0.26791,0.0388 -0.0582,-0.15117 0.29443,-0.1688 -0.34024,-0.21287 0.006,-0.12407 0.24109,-0.11492 0.0824,-0.2207 -0.0211,-0.41076 3.0141,-0.31084 2.08952,-0.1\"},\"55057\":{\"name\":\"Juneau, WI\",\"path\":\"m 616.77029,165.06098 6.72855,-0.433 0.0211,0.41076 -0.0824,0.2207 -0.24109,0.11492 -0.006,0.12407 0.34024,0.21287 -0.29443,0.1688 0.0582,0.15117 0.26791,-0.0388 0.0211,0.27854 -0.32107,0.0387 0.0403,0.49712 -0.18885,0.0123 -0.19767,-0.19925 -0.38278,0.0211 -0.11834,0.92904 -0.47974,0.10046 -0.18779,0.59159 0.16921,1.30036 0.29323,0.2293 -0.10136,0.49988 0.654,0.21803 0.36077,1.22695 0.0226,0.4603 -0.24804,0.0206 -0.24804,0.25737 0.49917,0.81351 0.0144,0.31744 0.71338,0.67822 0.0128,0.20382 1.25299,1.24105 0.29869,1.07144 0.37762,0.78958 0.50163,0.30479 0.10703,0.45136 -8.73785,0.547 -0.11945,-2.082 -0.62988,-9.67281 -0.16989,-2.07735\"},\"55081\":{\"name\":\"Monroe, WI\",\"path\":\"m 606.20783,169.61214 -0.1141,-1.359 0.44393,-0.426 0.79516,-0.298 1.74187,-0.112 5.27917,-0.21116 2.58632,-0.0677 0.62988,9.67281 -9.90028,0.701 -0.25138,-4.677 -0.22464,-3.287 -0.98593,0.06\"},\"55063\":{\"name\":\"La Crosse, WI\",\"path\":\"m 603.11916,169.66521 0.0173,0.14517 3.0714,-0.19417 0.98593,-0.06 0.22464,3.287 0.25138,4.677 -5.92982,0.296 -0.40293,-2.78 -2.40153,-3.054 1.3426,0.0291 -0.0545,-0.34105 -0.22968,-0.35755 0.11935,-0.51025 0.40473,-0.64454 0.39654,0.0739 0.28476,-0.31111 0.34862,0.42173 0.37606,2.4e-4 0.42147,-0.80996 0.77377,0.14367\"},\"55123\":{\"name\":\"Vernon, WI\",\"path\":\"m 617.57006,176.81114 0.11945,2.082 0.14442,2.001 -5.9851,0.369 0.21751,2.999 -8.93753,0.472 -0.28882,-1.776 -1.10003,-5.15 5.92982,-0.296 9.90028,-0.701\"},\"55111\":{\"name\":\"Sauk, WI\",\"path\":\"m 617.68951,178.89314 8.73785,-0.547 0.24435,0.89833 0.86237,0.10006 -0.23204,0.3962 0.10271,0.34469 1.98674,-0.0926 0.11232,0.1 0.39301,4.06037 -0.30487,0.274 -0.40293,0.2 -0.1765,0.06 -0.24069,-0.03 -0.15332,0.05 -0.6668,1.1 -0.041,0.314 0.12836,0.183 0.0195,0.57302 -0.27605,0.37562 -0.36884,0.24305 -0.19729,0.20622 -0.60358,0.0693 -0.40472,0.66581 -1.22298,0.58141 -1.64653,-0.0539 -0.50971,0.61825 -0.2223,0.13418 -0.0408,0.46697 -0.43408,-0.33475 -0.75174,0.0434 -0.43407,-0.19861 -0.75174,0.17956 0.0143,-0.06 -0.39551,-9.0535 -1.97898,0.145 -0.14442,-2.001\"},\"55103\":{\"name\":\"Richland, WI\",\"path\":\"m 617.83393,180.89414 1.97898,-0.145 0.39551,9.0535 -0.0143,0.06 -1.02988,-0.66085 -0.45591,0.026 -0.24891,-0.25625 -0.82374,0.01 -0.60732,0.14149 -0.69029,0.0253 -0.79273,0.0596 -0.5402,-0.0999 -0.87248,0.0197 -0.5402,0.20578 -0.47285,0.54398 -0.47284,0.0921 -0.22032,0.0788 -0.36014,-5.785 -0.21751,-2.999 5.9851,-0.369\"},\"55023\":{\"name\":\"Crawford, WI\",\"path\":\"m 603.12881,184.73414 8.93753,-0.472 0.36014,5.785 -0.55652,0.0302 -0.123,0.43499 -0.52624,0.37047 -0.0262,0.37046 -1.10691,0.43499 -0.42748,0.57861 -0.20167,0.0141 -0.16941,0.28828 -0.54039,0.0625 -0.60491,0.23989 -0.29845,-0.002 -0.10462,0.34056 -0.60646,0.54587 -0.37835,0.0896 -0.30991,0.45462 -0.42397,0.0212 -0.17306,0.31776 -0.46959,0.0212 -0.10462,-0.16127 -0.59172,-0.0184 -0.3222,0.32043 -0.35658,-2.186 0.43681,-1.696 1.28366,-2.162 0.0642,-0.287 -0.50456,-0.811 -0.38688,-0.491 -1.78465,-1.255 0.016,-1.182\"},\"55049\":{\"name\":\"Iowa, WI\",\"path\":\"m 626.20807,188.42514 0.52059,8.033 0.066,1.006 -9.88423,0.633 -0.5723,-8.95 0.69029,-0.0253 0.60732,-0.14149 0.82374,-0.01 0.24891,0.25625 0.45591,-0.026 1.02988,0.66085 0.75174,-0.17956 0.43407,0.19861 0.75174,-0.0434 0.43408,0.33475 0.0408,-0.46697 0.2223,-0.13418 0.50971,-0.61825 1.64653,0.0539 1.22298,-0.58141\"},\"55043\":{\"name\":\"Grant, WI\",\"path\":\"m 612.42648,190.04714 0.22032,-0.0788 0.47284,-0.0921 0.47285,-0.54398 0.5402,-0.20578 0.87248,-0.0197 0.5402,0.0999 0.79273,-0.0596 0.5723,8.95 0.42611,7.055 -3.61388,0.178 0.0642,-0.111 -0.0107,-0.13 -0.18363,-0.579 -1.06972,-1.945 -0.12124,-0.122 -0.19255,-0.09 -0.8433,-0.202 -2.17688,-0.417 -0.8843,-0.21 -0.46712,-0.216 -1.35676,-0.9 -0.2086,-0.434 -1.53505,-3.408 -0.37618,-1.758 0.3222,-0.32043 0.59172,0.0184 0.10462,0.16127 0.46959,-0.0212 0.17306,-0.31776 0.42397,-0.0212 0.30991,-0.45462 0.37835,-0.0897 0.60646,-0.54587 0.10462,-0.34056 0.29845,0.002 0.60491,-0.23989 0.54039,-0.0625 0.16941,-0.28828 0.20167,-0.0141 0.42748,-0.57861 1.10691,-0.43499 0.0262,-0.37046 0.52624,-0.37047 0.123,-0.43499 0.55652,-0.0302\"},\"55065\":{\"name\":\"Lafayette, WI\",\"path\":\"m 616.9104,198.09714 9.88423,-0.633 0.47424,7.11 -1.50296,0.09 -8.4294,0.49 -0.42611,-7.054\"},\"55045\":{\"name\":\"Green, WI\",\"path\":\"m 626.72866,196.45814 7.86604,-0.50908 0.0178,0.26108 0.60975,7.947 -0.60261,0.04 -7.35078,0.38 -0.47424,-7.11 -0.066,-1.006\"},\"55077\":{\"name\":\"Marquette, WI\",\"path\":\"m 636.09051,169.77214 0.16537,2.66262 -0.50769,0.057 0.12588,1.41051 0.12218,0.11391 0.12217,-0.001 0.079,-0.11649 0.17977,-0.001 0.0358,1.02108 -0.6122,0.0275 -0.32024,-0.0377 -0.26141,0.14584 0.15648,2.6344 -5.87455,0.417 -0.48851,-7.818 7.07799,-0.515\"},\"55097\":{\"name\":\"Portage, WI\",\"path\":\"m 623.88499,154.39314 5.07493,-0.3055 5.05269,-0.19423 0.72114,9.95673 -6.13129,0.369 -2.08952,0.1 -0.19434,-2.924 -0.23177,-3.136 -1.92906,0.121 -0.27278,-3.985\"},\"55135\":{\"name\":\"Waupaca, WI\",\"path\":\"m 634.01261,153.89341 10.11508,-0.79427 0.14441,2.018 -2.13053,0.168 0.2086,2.811 0.34766,5.167 -2.41044,0.201 -5.55364,0.386 -0.72114,-9.95673\"},\"55137\":{\"name\":\"Waushara, WI\",\"path\":\"m 640.28739,163.46414 0.45641,5.962 -4.65329,0.346 -7.07799,0.515 -0.41006,-6.068 6.13129,-0.369 5.55364,-0.386\"},\"55047\":{\"name\":\"Green Lake, WI\",\"path\":\"m 640.7438,169.42614 0.15333,2.019 0.44928,6.026 -2.00038,0.16 -1.99503,0.177 -0.0143,-0.273 -1.96116,0.153 -0.15648,-2.6344 0.26141,-0.14584 0.32024,0.0377 0.6122,-0.0275 -0.0358,-1.02108 -0.17977,0.001 -0.079,0.11649 -0.12217,0.001 -0.12218,-0.11391 -0.12588,-1.41051 0.50769,-0.057 -0.16539,-2.66262 4.65329,-0.346\"},\"55021\":{\"name\":\"Columbia, WI\",\"path\":\"m 635.37558,177.68814 1.96116,-0.153 0.0143,0.273 1.99503,-0.177 0.55626,8.021 -1.59923,0.168 -4.29316,0.337 -0.0232,-0.296 -5.94766,0.431 -0.12836,-0.183 0.041,-0.314 0.6668,-1.1 0.15332,-0.05 0.24069,0.03 0.1765,-0.06 0.40293,-0.2 0.30487,-0.274 -0.39301,-4.06037 -0.11232,-0.1 -1.98674,0.0926 -0.10271,-0.34469 0.23204,-0.3962 -0.86237,-0.10006 -0.24435,-0.89833 3.07367,-0.241 5.87455,-0.417\"},\"55025\":{\"name\":\"Dane, WI\",\"path\":\"m 639.90229,185.65214 0.15154,1.999 0.51169,8.085 -5.95301,0.474 -0.0178,-0.26108 -7.86604,0.50908 -0.52059,-8.033 0.40472,-0.66581 0.60358,-0.0693 0.19729,-0.20622 0.36884,-0.24305 0.27605,-0.37562 -0.0195,-0.57302 5.94766,-0.431 0.0232,0.296 4.29316,-0.337 1.59923,-0.168\"},\"55105\":{\"name\":\"Rock, WI\",\"path\":\"m 644.53775,195.53514 0.62579,8.044 -2.76345,0.184 -7.17783,0.394 -0.60975,-7.947 5.95301,-0.474 3.97223,-0.201\"},\"55059\":{\"name\":\"Kenosha, WI\",\"path\":\"m 652.87089,200.25914 1.98433,-0.167 -0.1141,-1.35 3.11645,-0.266 3.30544,-0.256 0.43502,4.074 -6.73568,0.465 -1.75256,0.176 -0.2389,-2.676\"},\"55101\":{\"name\":\"Racine, WI\",\"path\":\"m 656.38849,194.57714 4.05959,-0.337 0.53534,0.72622 0.73204,0.38161 -0.11364,1.97344 -0.43881,0.89873 -3.30544,0.256 -3.11645,0.266 0.1141,1.35 -1.98433,0.167 -0.44216,-5.327 3.95976,-0.355\"},\"55127\":{\"name\":\"Walworth, WI\",\"path\":\"m 648.49216,195.23014 3.93657,-0.298 0.44216,5.327 0.2389,2.676 -6.78025,0.564 -1.166,0.08 -0.62579,-8.044 3.95441,-0.305\"},\"55027\":{\"name\":\"Dodge, WI\",\"path\":\"m 641.34641,177.47114 2.00217,-0.145 6.04036,-0.419 0.13015,1.512 0.0392,0.498 0.29774,3.995 -0.28169,0.02 0.33161,4.033 -1.96115,0.121 -7.89099,0.562 -0.15154,-1.999 -0.55626,-8.021 2.00038,-0.16\"},\"55055\":{\"name\":\"Jefferson, WI\",\"path\":\"m 640.05383,187.65114 7.89099,-0.562 0.54734,8.141 -3.95441,0.305 -3.97223,0.201 -0.51169,-8.085\"},\"55133\":{\"name\":\"Waukesha, WI\",\"path\":\"m 655.81797,186.54414 0.57052,8.033 -3.95976,0.355 -3.93657,0.298 -0.54734,-8.141 1.96115,-0.121 5.912,-0.424\"},\"55079\":{\"name\":\"Milwaukee, WI\",\"path\":\"m 658.67948,186.31014 0.4016,0.53088 -0.22242,0.61368 0.0598,0.62896 0.33152,0.37208 0.26611,0.70139 -0.55909,0.64382 0.30759,0.98842 0.46202,0.22503 0.41173,0.58965 -0.0478,1.03308 0.35751,1.60301 -4.05959,0.337 -0.57052,-8.033 2.86151,-0.234\"},\"55089\":{\"name\":\"Ozaukee, WI\",\"path\":\"m 655.52914,178.45114 4.08278,-0.362 0.11232,1.157 -0.17651,0.747 -0.27456,0.637 -0.41006,0.715 -0.12658,0.28 -0.10519,0.322 -0.0571,0.257 0.0593,1.10632 -0.39804,1.68268 0.0588,0.328 0.30487,0.868 0.0802,0.121 -2.86151,0.234 -0.312,-4.026 0.37013,-0.0364 -0.34696,-4.03062\"},\"55131\":{\"name\":\"Washington, WI\",\"path\":\"m 653.52876,178.60314 2.00038,-0.152 0.34696,4.03062 -0.37013,0.0364 0.312,4.026 -5.912,0.424 -0.33161,-4.033 0.28169,-0.02 -0.29774,-3.995 3.97045,-0.314\"},\"55139\":{\"name\":\"Winnebago, WI\",\"path\":\"m 648.20868,162.80714 0.66679,8.083 -7.97834,0.555 -0.15333,-2.019 -0.45641,-5.962 2.41044,-0.201 5.51085,-0.456\"},\"55039\":{\"name\":\"Fond du Lac, WI\",\"path\":\"m 652.85484,170.59214 0.67392,8.011 -3.97045,0.314 -0.0392,-0.498 -0.13015,-1.512 -6.04036,0.419 -2.00217,0.145 -0.44928,-6.026 7.97834,-0.555 -0.0874,-1.054 3.98597,-0.18661 0.0808,0.94261\"},\"55117\":{\"name\":\"Sheboygan, WI\",\"path\":\"m 659.95601,169.94914 0.76485,2.845 0.11945,1.84 -0.0464,0.193 -1.18204,3.262 -4.08278,0.362 -2.00038,0.152 -0.67392,-8.011 1.98433,-0.169 5.11684,-0.474\"},\"55015\":{\"name\":\"Calumet, WI\",\"path\":\"m 651.68171,162.58014 2.45858,-0.184 0.69888,8.027 -1.98433,0.169 -0.0808,-0.94261 -3.98597,0.18661 -0.57943,-7.029 3.47303,-0.227\"},\"55071\":{\"name\":\"Manitowoc, WI\",\"path\":\"m 658.5101,160.03214 3.65667,-0.328 0.77198,2.193 0.0481,0.435 -0.0481,0.418 -0.0891,0.306 -0.28883,0.498 -0.353,0.385 -0.58657,0.346 -0.31378,0.249 -0.38689,0.433 -0.0225,1.34959 -0.4107,0.65141 -0.1355,0.715 0.0672,0.60609 -0.46296,1.65991 -5.11684,0.474 -0.69888,-8.027 2.54594,-0.201 -0.16938,-2 0.99841,-0.08 0.99484,-0.08\"},\"55009\":{\"name\":\"Brown, WI\",\"path\":\"m 650.02696,152.68719 0.2165,-0.003 7.2e-4,0.19247 0.56587,-0.0336 0.90497,-0.20828 2.43817,-0.14464 -0.18993,0.28562 -0.0525,0.7934 0.28351,0.215 -0.13129,0.34126 -0.32084,0.62781 -0.21338,0.0247 -0.007,0.145 0.65788,0.579 0.58657,0.152 0.44215,-0.02 0.22464,-0.16 0.1765,-0.298 0.21751,-0.499 0.0214,-0.119 -0.0856,-0.161 0.0321,-0.08 0.51347,-0.596 0.89143,-0.722 0.73989,-0.249 0.57052,7.286 -0.99484,0.08 -0.99841,0.08 0.16938,2 -2.54594,0.201 -2.45858,0.184 -0.082,-1.325 -0.52392,-6.53997 -0.89703,0.063 -0.12015,-1.61195 -0.19208,0.0116 -0.0277,-0.48163 0.18812,-0.009\"},\"55087\":{\"name\":\"Outagamie, WI\",\"path\":\"m 644.2721,155.11714 5.90665,-0.339 0.89703,-0.063 0.52392,6.53997 0.082,1.325 -3.47303,0.227 -5.51085,0.456 -0.34766,-5.167 -0.2086,-2.811 2.13053,-0.168\"},\"55115\":{\"name\":\"Shawano, WI\",\"path\":\"m 637.39379,145.52214 0.15155,1.968 3.99362,-0.305 0.13729,1.992 4.02572,-0.289 3.91874,-0.248 0.14509,2.74894 0.26116,1.29811 -0.18812,0.009 0.0277,0.48163 0.19208,-0.0116 0.12015,1.61195 -5.90665,0.339 -0.14441,-2.018 -10.11508,0.79427 -0.54826,-8.09927 3.92944,-0.272\"},\"55078\":{\"name\":\"Menominee, WI\",\"path\":\"m 637.39379,145.52214 -0.16224,-2.049 5.53046,-0.403 2.55307,-0.192 0.21038,3.558 0.17651,2.452 -4.02572,0.289 -0.13729,-1.992 -3.99362,0.305 -0.15155,-1.968\"},\"55083\":{\"name\":\"Oconto, WI\",\"path\":\"m 645.74297,136.87168 1.9772,-0.1 0.3016,4.1719 1.9262,-0.15121 0.19146,1.94151 1.10013,-0.08 0.14458,1.9663 2.87349,-0.1327 0.0225,0.66944 3.016,-0.21145 0.0337,0.53413 -0.10519,0.02 -0.72206,0.20754 -0.0981,0.08 -0.27991,0.466 -0.12358,0.5179 0.42752,0.44734 -0.0324,0.39301 -0.40837,0.41336 -0.0757,0.47766 -0.36889,0.0874 -0.20372,0.40863 -0.45815,1.45656 -0.69287,0.85218 -0.041,0.781 0.006,0.39524 -2.43818,0.14464 -0.90497,0.20828 -0.56587,0.0336 -7.1e-4,-0.19247 -0.2165,0.003 -0.26116,-1.29811 -0.14509,-2.74894 -3.91874,0.248 -0.17651,-2.452 -0.21038,-3.558 -2.55307,0.192 -0.10697,-2.007 -0.68284,0.05 -0.26208,-3.987 4.03285,-0.25246\"},\"55041\":{\"name\":\"Forest, WI\",\"path\":\"m 636.40608,121.51914 4.08099,1.045 0.20681,0.763 0.42789,5.906 4.02751,-0.305 0.59369,7.94354 -4.03285,0.25246 -4.01146,0.305 -0.10519,-1.984 -1.98433,0.153 -0.73989,-9.859 -0.15155,-1.993 1.83101,-0.129 -0.14263,-2.098\"},\"55037\":{\"name\":\"Florence, WI\",\"path\":\"m 640.48707,122.56414 0.32983,0.586 2.81159,-0.298 4.67647,0.587 0.0356,0 0.39937,0.06 0.61152,0.296 0.37797,0.252 0.24782,0.158 0.47246,0.676 0.0499,0.07 0.0232,0.08 -0.22465,0.385 -0.25673,0.362 -0.11232,0.09 -0.28169,0.36 -0.009,0.02 -0.0232,0.08 0.1034,0.201 0.0161,0 0.6133,0.498 0.1355,0.03 0.21751,0.06 0.016,0 0.21751,-0.03 0.11054,1.551 -1.91302,0.04 -3.98293,0.225 -4.02751,0.304 -0.42789,-5.906 -0.20681,-0.763\"},\"55075\":{\"name\":\"Marinette, WI\",\"path\":\"m 650.93469,127.11214 3.79929,1.021 0.30488,0.248 0.025,0.02 0.041,0.04 0.48138,0.594 0.16045,4.147 -1.57876,3.41468 2.29013,0.005 0.8147,-0.84765 0.93194,0.82209 -1.03528,3.44506 0.001,0.002 10e-4,0.002 10e-4,0.002 10e-4,0.002 0.001,0.002 10e-4,0.002 10e-4,0.002 10e-4,0.003 0.14263,0.472 0.0731,0.122 1.2694,1.342 0.0161,0 0.41719,0.07 0.73097,0.115 -0.37728,0.80767 -0.13486,0.41462 0.0939,1.65545 -0.71366,0.13723 -1.36593,0.30349 -0.0337,-0.53413 -3.016,0.21145 -0.0225,-0.66944 -2.87349,0.1327 -0.14458,-1.9663 -1.10013,0.08 -0.19146,-1.94151 -1.9262,0.15121 -0.3016,-4.1719 -1.9772,0.1 -0.59369,-7.94354 3.98293,-0.224 1.91302,-0.04 -0.11054,-1.551\"},\"54003\":{\"name\":\"Berkeley, WV\",\"path\":\"m 837.63683,244.94514 0.49145,0.54089 0.83697,-0.31276 0.67437,-0.0282 0.8573,-0.31277 0.63373,-0.0892 0.0831,0.60581 -0.77054,0.32126 0.776,1.21163 0.51177,0.27666 -0.31449,1.06568 -0.15154,0.321 -0.94136,1.43 -0.33518,0.224 -0.10697,0.245 -0.82012,2.118 -0.0321,0.137 -0.0414,0.48259 -3.95262,-2.14072 0.66715,-5.02787 0.041,-0.103 1.89341,-0.965\"},\"54037\":{\"name\":\"Jefferson, WV\",\"path\":\"m 841.73101,247.15846 0.49876,0.0152 0.21889,1.24743 1.15384,0.14987 -0.0704,1.78348 0.68169,0.36071 -1.06259,4.66 -4.16336,-2.19341 0.0414,-0.48259 0.0321,-0.137 0.82012,-2.118 0.10697,-0.245 0.33518,-0.224 0.94136,-1.43 0.15154,-0.321 0.3145,-1.06568\"},\"54011\":{\"name\":\"Cabell, WV\",\"path\":\"m 768.34511,281.00578 2.9661,2.09737 0.20977,1.20591 0.27338,1.05749 -0.34975,-0.004 -0.12033,0.24825 -0.40124,0.0721 -0.0801,0.14089 -0.19477,0.33589 -1.06586,0.36855 -0.32025,0.38002 9.4e-4,0.32266 -0.26289,-0.01 0.0927,0.64385 -0.50378,0.56356 -0.1826,0.80444 -0.27653,0.0614 -0.62067,-0.45478 -0.10446,-0.69568 0.10203,-0.27123 0.45764,-0.29418 -0.32241,-0.21388 -0.41901,-0.35173 -0.31577,0.21037 -0.0404,0.29067 -0.13223,0.17596 -3.00672,-1.92312 1.491,-0.81495 0.61454,0.032 0.82453,-0.31568 0.30947,-0.47668 0.0321,-0.153 0.0321,-0.167 0.0802,-1.648 0.007,-0.05 0.007,-1.005 0.25965,-0.24121 0.95936,0.0768\"},\"54059\":{\"name\":\"Mingo, WV\",\"path\":\"m 768.70648,295.75151 1.88529,-0.86662 -0.0749,0.298 0.74412,1.07352 0.71495,0.24858 0.13627,0.3218 -0.0781,0.1263 0.21239,0.43293 -0.48156,0.44908 0.27695,0.23927 0.0349,0.41679 0.30923,-0.0189 0.27695,0.27154 0.14784,0.6266 -0.17926,0.12033 0.0317,0.36599 0.16075,-0.0455 0.33022,0.33371 0.2576,0.69684 0.68527,-0.15045 0.0478,0.17233 0.38919,0.3134 0.0261,0.25692 0.41339,0.18429 0.13338,0.30849 0.11724,-0.0546 -0.028,-0.23215 0.13337,-0.27251 0.35125,-0.0223 0.11724,-0.24829 0.206,0.01 0.0772,-0.16822 0.43224,-0.0633 -0.0438,0.20297 0.33541,0.20298 0.18209,-0.18436 0.15789,-0.023 0.0772,-0.28926 0.10947,-0.031 0.16325,0.27912 0.23897,0.002 0.2067,-0.20742 0.0745,0.20648 0.2278,0.0935 0.27939,-0.0814 0.20833,1.00396 -0.25398,0.10303 0.007,0.26899 -0.20871,0.32804 -0.0665,0.50586 -0.29169,0.13837 0.0639,0.3399 -1.0516,0.79991 -0.61561,-0.23406 -0.47543,-0.21776 -1.06878,0.37538 -1.17466,-0.26062 -10e-4,0 -0.001,0 -10e-4,0 -10e-4,0 -1.16569,-1.00328 -0.54941,-1.04892 -0.61789,0.36623 -1.32546,-0.77503 -0.67214,-1.035 -0.0339,-0.113 0.007,-0.02 -2.09154,-2.56421 1.56635,-2.25142\"},\"54099\":{\"name\":\"Wayne, WV\",\"path\":\"m 763.72788,285.76644 3.00673,1.92312 0.13222,-0.17596 0.0404,-0.29067 0.31577,-0.21037 0.41901,0.35173 0.32242,0.21388 -0.45765,0.29418 -0.10202,0.27123 0.10445,0.69568 0.62068,0.45478 0.27652,-0.0614 -0.12728,0.71035 0.0522,1.35683 0.47171,0.23463 -0.10433,0.36353 0.24036,0.23708 0.3743,0.031 0.0215,0.45077 0.24811,0.152 0.41254,0.0554 -0.0408,0.32326 0.26872,0.0387 0.0137,0.40192 -1.53073,2.16345 -1.56635,2.25142 -1.63644,-1.67679 0.46533,-0.804 0,-0.129 -0.007,-0.02 -0.025,-0.03 -1.21519,-0.44384 -0.90506,-1.44203 -0.53578,-0.22658 -0.33398,-0.62528 0,-0.02 -0.80496,-0.43682 0.0189,-0.50545 0,0 0.44929,-1.967 0.24776,-0.7956 -0.0405,-0.9397 -0.60486,-0.69952 -0.14853,-1.22791 0.63191,0.19913 1.03196,-0.4411\"},\"54109\":{\"name\":\"Wyoming, WV\",\"path\":\"m 781.56735,297.57714 0.51891,0.17931 0.0861,0.26587 0.25125,-0.0501 0.25125,-0.28977 0.28454,-0.32306 0.21796,-0.0168 0.0128,-0.11367 0.44103,0.0457 0.16645,0.12132 0.27494,-0.0236 0.21211,-0.11705 0.52663,0.6808 0.29311,0.0817 2.19949,2.96985 0.0548,0.17703 0.27406,0.22468 0.23532,0.864 0.69285,0.29209 0.48971,0.0123 0.49328,0.34859 -0.27867,0.11295 -0.0975,0.13417 -0.22556,0.0701 -0.16304,0.36436 -0.003,0.30033 -0.29108,0.24699 -0.0653,0.1663 -0.23598,0.17698 0.26553,0.0916 0.24418,0.49709 -0.0973,0.20899 -0.25732,-0.10045 -0.45069,-0.2122 -0.87878,-0.16102 -0.18697,-0.25516 -0.25307,-0.12758 -0.58746,0.35879 -0.39975,-0.14877 -0.11097,-0.42235 -0.33748,-0.1086 -0.44389,0.37768 -0.48948,0.013 -0.19481,-0.22181 -0.514,-0.009 -0.69639,0.14298 -0.13402,-0.23701 -0.14921,-0.26741 -0.0732,-0.2218 -0.14501,0.004 -0.14501,0.12543 -0.0994,0.15583 -0.26661,-0.0722 -0.0842,-0.10256 -0.17541,0.019 -0.12982,0.15583 -0.2514,0.0494 0.0222,0.27742 -0.25141,0.0646 -0.0842,0.20143 -0.373,0.019 -0.12981,0.12543 -0.4794,-0.28495 -0.11461,0.12543 -0.20751,-0.045 -0.13151,0.16777 -0.16191,-0.0146 -0.13151,-0.18181 -0.2683,0.10698 -0.2987,-0.12101 0.0133,-0.44918 -0.22127,-0.0352 -0.0553,-0.26279 -0.28854,0.0255 -0.0639,-0.3399 0.29169,-0.13837 0.0665,-0.50586 0.20872,-0.32804 -0.007,-0.26899 0.25398,-0.10303 -0.20833,-1.00396 0.31834,-0.414 0.58201,-0.188 0.43715,-0.43683 0.32414,-0.17317 -1.28727,-0.984 0.1725,-0.163 0.15367,-0.12533 0.34131,0.0188 0.83099,-0.50859 0.69915,-0.16958 0.47315,-0.32025\"},\"54045\":{\"name\":\"Logan, WV\",\"path\":\"m 774.89352,293.07902 -0.4582,0.499 -0.18602,0.38962 0.10495,0.14998 0.43901,0.17996 0.33039,-0.16521 0.53712,0.0849 -0.11574,0.32496 0.36157,0.14905 0.46652,-0.13582 0.24163,0.0591 0.78136,-0.0458 0.18166,0.16403 0.34657,-8.8e-4 0.54148,0.46389 0.0917,0.56884 -0.26654,0.43757 0.13825,0.28765 0.51307,0.22767 0.0483,0.31763 0.21322,0.0328 0.0183,0.1827 0.27319,0.13772 0.73172,-0.58026 0.49183,-0.0555 0.40188,0.55917 0.22197,0.0344 0.22464,0.232 -0.47315,0.32025 -0.69915,0.16958 -0.83099,0.50859 -0.34131,-0.0188 -0.15367,0.12533 -0.1725,0.163 1.28727,0.984 -0.32414,0.17317 -0.43715,0.43683 -0.58201,0.188 -0.31834,0.414 -0.27939,0.0814 -0.2278,-0.0935 -0.0745,-0.20648 -0.2067,0.20742 -0.23897,-0.002 -0.16325,-0.27911 -0.10947,0.031 -0.0772,0.28926 -0.15789,0.023 -0.18209,0.18435 -0.33541,-0.20297 0.0439,-0.20298 -0.43225,0.0633 -0.0772,0.16821 -0.206,-0.01 -0.11724,0.24829 -0.35124,0.0224 -0.13338,0.2725 0.028,0.23215 -0.11724,0.0546 -0.13338,-0.30849 -0.41339,-0.18429 -0.0261,-0.25692 -0.38919,-0.3134 -0.0478,-0.17233 -0.68527,0.15044 -0.2576,-0.69683 -0.33022,-0.33371 -0.16076,0.0455 -0.0317,-0.36599 0.17926,-0.12033 -0.14784,-0.6266 -0.27695,-0.27154 -0.30923,0.0189 -0.0349,-0.41679 -0.27695,-0.23927 0.48156,-0.44908 -0.21239,-0.43293 0.0781,-0.1263 -0.13627,-0.3218 -0.71495,-0.24858 -0.74412,-1.07352 0.0749,-0.298 2.38359,-1.29324 0.27917,0.004 0.7311,-0.35087 0.36709,0.0132 0.5408,-0.17846\"},\"54047\":{\"name\":\"McDowell, WV\",\"path\":\"m 777.98044,303.72929 0.28854,-0.0255 0.0553,0.26279 0.22127,0.0352 -0.0133,0.44918 0.2987,0.12101 0.2683,-0.10698 0.13151,0.18181 0.16191,0.0146 0.13151,-0.16777 0.20751,0.045 0.11461,-0.12543 0.4794,0.28495 0.12981,-0.12543 0.373,-0.019 0.0842,-0.20143 0.25141,-0.0646 -0.0222,-0.27742 0.2514,-0.0494 0.12982,-0.15583 0.17541,-0.019 0.0842,0.10256 0.26661,0.0722 0.0994,-0.15583 0.14501,-0.12543 0.14501,-0.004 0.0732,0.2218 0.14921,0.26741 0.13402,0.23701 0.69639,-0.14298 0.514,0.009 0.19481,0.22181 0.48948,-0.013 0.44389,-0.37768 0.33748,0.1086 0.11097,0.42235 0.39975,0.14877 0.58746,-0.35879 0.25307,0.12758 0.18697,0.25516 0.87878,0.16102 0.45069,0.2122 -0.65775,1.95828 -0.73081,1.47971 -1.31819,1.39732 -0.0143,0.02 -0.78803,0.724 -0.0571,0.03 -2.10557,0.417 -1.20344,-0.715 -2.04316,-0.738 -0.2086,-0.107 -0.007,0 -1.51188,-1.317 -0.25279,-1.45867 -1.2983,-0.74333 -0.12837,-0.344 0.0481,-0.153 0.8112,-0.731 0.0558,-0.36194 1.0516,-0.79991\"},\"54055\":{\"name\":\"Mercer, WV\",\"path\":\"m 791.53723,300.66169 5.00979,3.03845 0.0637,0.64462 -0.30226,0.53279 0.78543,0.69544 -0.91469,0.95821 -1.28846,0.64194 -2.09844,0.75374 -2.09844,1.27126 -3.01257,-2.06603 0.65775,-1.95828 0.25732,0.10045 0.0973,-0.20899 -0.24418,-0.49709 -0.26553,-0.0916 0.23598,-0.17698 0.0653,-0.16631 0.29108,-0.24698 0.003,-0.30033 0.16304,-0.36436 0.22556,-0.0701 0.0975,-0.13416 0.27867,-0.11296 0.24371,-0.12574 -0.0215,-0.35911 0.11397,-0.35763 -0.22549,-0.42128 0.15844,-0.36257 0.32817,-0.10797 0.19027,-0.2671 0.29635,-0.20344 0.48525,0.0773 0.42405,-0.11513\"},\"54063\":{\"name\":\"Monroe, WV\",\"path\":\"m 798.72753,296.19886 2.92634,0.45091 0.66879,-0.18868 0.22956,0.13341 0.31741,-0.0569 0.80055,-0.81823 0.0105,0.28476 0.21551,0.0359 0.0691,0.22619 0.36423,-0.0176 0.11534,-0.45681 0.12998,0.041 -0.002,0.27522 0.29102,0.0849 0.75953,-0.13472 1.58497,1.239 -1.03585,1.254 -0.61483,0.583 0.19841,0.51441 -0.32403,0.25313 0.48918,0.13554 0.27483,-0.33694 0.20625,0.12356 -0.17587,0.51549 -0.35996,0.37137 -0.71269,0.38118 -0.0758,0.28319 -0.77148,0.56734 -0.86531,0.79473 -0.86112,-1.237 -1.80783,1.429 -0.18542,0.147 -2.23394,1.677 -1.78465,-1.021 0.7202,-2.55879 0.41859,-0.99384 1.04735,-3.21271 -0.027,-0.76794\"},\"54089\":{\"name\":\"Summers, WV\",\"path\":\"m 796.59448,293.90705 0.68842,0.54544 0.21376,0.27423 1.05618,0.72477 0.17469,0.74737 0.027,0.76794 -1.04735,3.21271 -0.41859,0.99384 -0.7202,2.55879 -0.0214,-0.03 -5.00979,-3.03845 0.40718,-0.45039 0.0336,-0.83147 0.79694,-1.01657 0.48897,-0.42367 -0.13525,-0.23408 -0.027,-0.2127 0.29911,0.008 0.4058,-0.11163 0.31245,0.25517 0.29243,-0.0516 0.26676,0.27234 0.0474,0.29676 0.32025,-0.20568 0.014,-0.28926 -0.25273,-0.15588 -0.2794,-0.52268 -0.49282,-0.29593 0.40849,-0.47311 0.0319,-0.3349 -0.51928,-0.33399 -0.11913,-0.4407 -0.22464,-0.137 -0.14441,-0.03 2.23479,-1.46701 z\"},\"54081\":{\"name\":\"Raleigh, WV\",\"path\":\"m 783.674,292.65364 0.0561,0.20099 0.62698,0.15419 0.14029,-0.20148 0.59891,0.0138 0.5259,-0.23506 0.4262,0.17817 0.0541,0.28449 0.53251,0.12502 0.0143,0.36421 0.16044,0.4971 -0.0256,0.32435 0.93116,0.0187 3.26991,-0.32679 -0.029,0.28591 -0.48167,0.15342 0.1163,0.18001 0.63455,-0.20536 0.22261,0.087 -0.21591,0.27303 0.15617,0.15342 0.32891,-0.0592 0.17775,0.0568 1.01241,-0.244 0.56061,0.2078 0.14441,0.03 0.22464,0.137 0.11913,0.4407 0.51928,0.33399 -0.0319,0.3349 -0.40848,0.47311 0.49281,0.29593 0.27941,0.52268 0.25273,0.15588 -0.014,0.28926 -0.32025,0.20568 -0.0474,-0.29676 -0.26676,-0.27234 -0.29243,0.0516 -0.31245,-0.25513 -0.4058,0.11167 -0.29911,-0.008 0.027,0.2127 0.13525,0.23408 -0.48897,0.42367 -0.79694,1.01657 -0.0336,0.83147 -0.40718,0.45039 -0.42405,0.11513 -0.48525,-0.0773 -0.29635,0.20344 -0.19027,0.2671 -0.32817,0.10797 -0.15844,0.36257 0.22549,0.42128 -0.11397,0.35763 0.0215,0.35911 -0.24371,0.12574 -0.49328,-0.34859 -0.48971,-0.0123 -0.69285,-0.29209 -0.23532,-0.864 -0.27406,-0.22468 -0.0548,-0.17703 -2.19949,-2.96985 -0.29311,-0.0817 -0.52663,-0.6808 -0.21211,0.11705 -0.27494,0.0236 -0.16645,-0.12132 -0.44103,-0.0457 -0.18051,-0.23454 0.0725,-0.39118 -0.28896,-0.12609 -0.26485,0.0788 -0.4938,-0.94545 0.18097,-0.60807 -0.11444,-0.1227 -0.0301,-0.41188 -0.27108,-0.11065 0.31934,-1.0746 0.36753,-0.23114 0.24704,-0.38779 0.41573,0.20264 0.0784,-0.195 0.44605,-0.0177\"},\"54005\":{\"name\":\"Boone, WV\",\"path\":\"m 783.674,292.65364 -0.44605,0.0177 -0.0784,0.195 -0.41573,-0.20264 -0.24704,0.38779 -0.36753,0.23114 -0.31934,1.0746 0.27108,0.11065 0.0301,0.41188 0.11444,0.1227 -0.18097,0.60807 0.4938,0.94545 0.26485,-0.0788 0.28896,0.12609 -0.0725,0.39118 0.18051,0.23454 -0.0129,0.11367 -0.21796,0.0168 -0.28454,0.32306 -0.25125,0.28977 -0.25125,0.0501 -0.0861,-0.26587 -0.51891,-0.17931 -0.22464,-0.232 -0.22197,-0.0344 -0.40188,-0.55917 -0.49183,0.0555 -0.73172,0.58026 -0.27319,-0.13772 -0.0183,-0.1827 -0.21322,-0.0328 -0.0483,-0.31763 -0.51307,-0.22767 -0.13825,-0.28765 0.26654,-0.43757 -0.0917,-0.56884 -0.54148,-0.46389 -0.34657,8.8e-4 -0.18166,-0.16403 -0.78136,0.0459 -0.24163,-0.0591 -0.46652,0.13582 -0.36157,-0.14905 0.11574,-0.32496 -0.53712,-0.0849 -0.33039,0.16521 -0.43901,-0.17996 -0.10495,-0.14998 0.18602,-0.38962 0.4582,-0.499 0.26505,-0.13812 0.24297,-0.0507 -0.24788,-0.12428 -0.4344,-0.003 -0.42212,-0.11358 -0.18898,-0.70259 0.40004,-0.71486 -0.18223,-0.31063 0.30862,-0.7892 0.63993,0.10658 -0.12838,-0.25865 0.15385,-0.24639 -0.018,-0.36909 0.60788,-0.11141 0.24051,-0.71486 0.21419,0.20394 0.0607,0.25691 0.40799,0.14517 -0.21456,-0.23874 -0.0589,-0.31137 0.40799,-0.19724 -0.0382,-0.47738 0.55326,0.15554 0.16934,0.39419 0.24985,0.11152 0.23948,-0.32427 -0.0724,-0.16926 0.39449,-0.3249 0.2596,0.17314 0.66427,-0.16926 0.29136,0.96234 0.21256,0.13427 0.1503,-0.1355 0.29557,0.0201 0.46159,0.60119 0.29556,0.072 0.24369,-0.094 0.25407,0.15502 0.0492,0.32653 0.485,0.16052 0.005,0.21919 -0.25424,0.23993 0.0259,0.40595 0.31644,0.0636 0.0259,0.16731 0.3372,0.0117 0.19192,-0.16472 0.0882,0.11543 0.20778,0.0531 0.0418,0.19841 0.14014,0.22599 0.20239,0.13261 -0.11926,0.309 0.33729,0.23636 0.021,0.46818\"},\"54043\":{\"name\":\"Lincoln, WV\",\"path\":\"m 771.79436,285.36655 0.25633,0.92807 -0.0234,1.02797 0.23364,0.0519 0.12036,0.13393 0.2727,-0.0419 0.0422,0.13772 0.15942,-0.0185 0.19458,0.0127 0.05,-0.15916 0.17505,-0.0615 1.06292,-1.25676 0.20426,-0.0155 0.23473,0.15716 0.68152,-0.0309 0.31582,-0.27474 0.40817,0.14127 0.0342,0.33334 0.12559,0.0997 0.0342,0.21144 0.14683,0.0839 0.0148,0.1753 -0.11728,0.12451 0.12652,0.14483 -0.097,0.1042 0.15699,0.1753 -0.24934,0.27689 0.12839,0.0819 0.15886,0.18344 -0.0646,0.092 -0.27795,-0.0908 0.0167,0.1936 -0.19668,-0.0705 -0.0748,0.0819 0.0824,0.23843 -0.24051,0.71486 -0.60788,0.11141 0.018,0.36909 -0.15385,0.24639 0.12838,0.25865 -0.63993,-0.10658 -0.30862,0.7892 0.18223,0.31063 -0.40004,0.71486 0.18898,0.70259 0.42212,0.11358 0.4344,0.003 0.24788,0.12428 -0.24297,0.0507 -0.26505,0.13812 -0.5408,0.17846 -0.36709,-0.0131 -0.7311,0.35086 -0.27917,-0.004 -2.38359,1.29324 -1.88529,0.86662 1.53073,-2.16345 -0.0137,-0.40192 -0.26872,-0.0387 0.0408,-0.32326 -0.41254,-0.0554 -0.24811,-0.152 -0.0215,-0.45077 -0.3743,-0.031 -0.24036,-0.23708 0.10433,-0.36353 -0.47171,-0.23463 -0.0522,-1.35683 0.12728,-0.71035 0.1826,-0.80444 0.50378,-0.56356 -0.0927,-0.64385 0.26289,0.01 -9.4e-4,-0.32266 0.32025,-0.38002 1.06586,-0.36855 0.19477,-0.33589 0.0801,-0.14089 0.40124,-0.0721 0.12033,-0.24825 0.34975,0.004\"},\"54079\":{\"name\":\"Putnam, WV\",\"path\":\"m 777.18035,278.67538 -0.39632,0.67612 -0.30135,0.0657 -0.15823,0.41179 0.18233,0.70966 -0.0236,0.55889 0.20595,0.15078 0.0841,0.297 0.19887,0.0292 0.24706,0.8054 -2.86484,2.02976 -0.016,1.712 -1.06293,1.25677 -0.17504,0.0615 -0.05,0.15915 -0.19458,-0.0127 -0.15942,0.0185 -0.0422,-0.13771 -0.27271,0.0418 -0.12035,-0.13393 -0.23364,-0.0519 0.0234,-1.02797 -0.25633,-0.92807 -0.27338,-1.05749 -0.20977,-1.20591 -0.59746,-3.0274 1.83559,-1.45541 3.07186,-1.0653 0.38198,-0.12055 1.17717,1.24089\"},\"54053\":{\"name\":\"Mason, WV\",\"path\":\"m 772.6112,273.61585 -0.025,0.05 0.1765,0.273 2.3666,2.51238 -0.36251,0.48314 0.85437,0.61567 -3.07186,1.0653 -1.83559,1.45541 0.59746,3.0274 -2.9661,-2.09737 0.48075,-0.29264 0.15439,-0.65961 -0.58401,-1.27002 0.1326,-0.76881 -0.3162,-0.42721 -0.18931,-0.57821 -0.436,-0.441 0.0418,-0.46301 0.51741,-0.3752 0.54204,-0.58761 0.0866,-0.63721 -0.20486,-0.71432 -0.005,0 0.25498,-0.35095 0.35654,-1.34384 0.0553,-0.32 0.50086,-0.50071 0.31926,-0.88829 0.34364,0.0586 0.53115,0.74639 0.009,0 0.65553,-0.11682 0.79983,1.16839 -0.43812,0.81403 0.0642,0.178 0.59427,0.3921\"},\"54035\":{\"name\":\"Jackson, WV\",\"path\":\"m 777.90148,269.25231 0.92566,0.33025 -0.0274,0.36238 0.1439,0.23388 -0.37013,0.36238 0.32596,0.33025 0.22958,0.0947 0.13319,0.3838 0.30454,0.11608 -0.0142,0.3353 -0.35702,0.11495 0.40044,2.02423 0.15559,2.36701 -0.12954,0.86547 0.67134,1.31468 -0.23607,0.27586 -0.56137,0.64935 -0.97102,0.73369 -1.34451,-1.47114 -1.17717,-1.2409 -0.38198,0.12056 -0.85437,-0.61567 0.36251,-0.48314 -2.3666,-2.51238 -0.1765,-0.273 0.025,-0.05 0.89662,-0.36071 0.20808,-1.07641 0.15641,-0.35294 0.71903,0.39442 0.58984,-0.19985 -0.0589,-0.53743 -0.42066,-0.30488 0.29838,-1.00015 -0.32542,-0.52738 -0.61309,-0.40438 -0.19255,-0.252 -0.0874,-0.313 0.63156,-0.0762 0.46937,-0.40138 3.01899,1.04872\"},\"54039\":{\"name\":\"Kanawha, WV\",\"path\":\"m 777.18035,278.67538 1.34451,1.47114 0.97102,-0.73369 0.56137,-0.64935 0.23607,-0.27586 0.42491,0.73978 0.64443,0.63215 0.22102,-0.1117 2.76153,-0.11169 0.76852,0.2703 0.83719,-0.34766 0.48138,0.02 -1.32634,1.47986 0.86647,2.55122 0.69256,2.03782 -0.002,0 -0.002,0 -0.002,0 -0.002,0 -1.09965,2.00214 -0.3033,0.0611 -0.15867,5.09925 -0.59891,-0.0138 -0.14029,0.20148 -0.62698,-0.15419 -0.0561,-0.20099 -0.021,-0.46818 -0.33728,-0.23637 0.11926,-0.30899 -0.2024,-0.13261 -0.14014,-0.22599 -0.0418,-0.19841 -0.20778,-0.0531 -0.0882,-0.11543 -0.19194,0.16473 -0.33719,-0.0117 -0.0259,-0.1673 -0.31644,-0.0636 -0.0259,-0.40595 0.25424,-0.23993 -0.005,-0.21919 -0.485,-0.16052 -0.0492,-0.32653 -0.25407,-0.15502 -0.24369,0.094 -0.29556,-0.072 -0.46159,-0.60119 -0.29557,-0.0201 -0.1503,0.1355 -0.21256,-0.13427 -0.29136,-0.96234 -0.66426,0.16926 -0.25961,-0.17315 -0.39449,0.32486 0.0724,0.16926 -0.23947,0.32427 -0.24986,-0.11151 -0.16935,-0.3942 -0.55324,-0.15554 0.0382,0.47738 -0.40798,0.19724 0.0589,0.31137 0.21457,0.23873 -0.408,-0.14516 -0.0607,-0.25691 -0.21419,-0.20394 -0.0824,-0.23843 0.0748,-0.0819 0.19668,0.0705 -0.0166,-0.1936 0.27795,0.0908 0.0646,-0.092 -0.15886,-0.18344 -0.12839,-0.0819 0.24934,-0.27689 -0.15699,-0.1753 0.097,-0.1042 -0.12652,-0.14483 0.11728,-0.12451 -0.0148,-0.1753 -0.14683,-0.0839 -0.0342,-0.21144 -0.12559,-0.0997 -0.0342,-0.33334 -0.40817,-0.14127 -0.31582,0.27474 -0.68152,0.0309 -0.23473,-0.15716 -0.20426,0.0155 0.016,-1.712 2.86484,-2.02976 -0.24706,-0.8054 -0.19887,-0.0292 -0.0841,-0.297 -0.20595,-0.15078 0.0236,-0.55889 -0.18233,-0.70966 0.15823,-0.41179 0.30135,-0.0657 0.39632,-0.67612\"},\"54019\":{\"name\":\"Fayette, WV\",\"path\":\"m 793.52999,288.31948 -0.0875,0.61677 0.3959,0.35433 0.67213,0.0367 0.0368,-0.28102 0.50639,-0.0738 -0.0185,0.16097 -0.17257,0.10316 0.0423,0.22036 -0.25071,0.13247 0.11066,0.23013 0.55017,0.0446 0.0496,0.23334 0.27427,0.14543 -0.0187,0.40913 0.28404,0.10637 -0.55347,0.98217 1.35103,1.65607 -0.99914,0.0781 -2.23479,1.46351 -0.5606,-0.20779 -1.01242,0.24401 -0.17775,-0.0568 -0.32891,0.0592 -0.15617,-0.15342 0.21591,-0.27303 -0.22261,-0.087 -0.63455,0.20536 -0.1163,-0.18001 0.48167,-0.15342 0.029,-0.28591 -3.26991,0.32679 -0.93116,-0.0187 0.0256,-0.32435 -0.16044,-0.4971 -0.0143,-0.36421 -0.53251,-0.12502 -0.0541,-0.28449 -0.4262,-0.17817 -0.5259,0.23506 0.15867,-5.09925 0.3033,-0.061 1.09965,-2.00214 0.80047,0.29063 0.0806,0.2806 0.6397,0.0626 0.29045,-0.28958 0.82567,0.54171 0.18349,0.007 0.17396,0.1799 0.19196,-0.0213 -0.12533,-0.35034 0.24486,-0.017 -0.14831,-0.24351 0.29151,-0.0569 0.0849,-0.34347 0.11825,-0.0769 0.0516,0.10301 -0.0417,0.33624 0.27152,0.16298 0.0449,0.16298 0.0983,0.0564 0.0982,-0.0903 -0.035,-0.31682 0.39146,-0.0703 0.3315,0.12966 0.0516,0.26295 0.22469,-0.0471 0.18471,0.15281 0.0314,0.57264 0.24468,0.27943 0.34465,0.22612 0.26467,0.0195 -0.007,0.23146 0.2261,0.12482 0.0928,-0.25501 0.14971,-0.0742 -0.0102,0.47225 0.21136,0.2661\"},\"54015\":{\"name\":\"Clay, WV\",\"path\":\"m 788.11088,277.21881 0.71666,-1.34064 1.05121,0.78604 0.0113,0.3203 0.19836,0.071 0.0746,0.29776 0.67721,0.19387 0.38632,0.33931 0.11621,0.46398 0.45904,0.23543 0.28243,0.58865 0.98391,0.11764 0.19255,0.339 -1.25473,1.67406 -5.34106,4.34556 -0.69256,-2.03782 -0.86647,-2.55122 1.32634,-1.47986 0.97662,-1.0785 0.70196,-1.28449\"},\"54087\":{\"name\":\"Roane, WV\",\"path\":\"m 779.56674,271.46598 0.13612,-0.19455 0.3572,-0.0437 0.31437,-0.38642 0.76795,0.33019 1.34623,0.37303 0.55896,-0.40576 0.50691,-0.19766 0.30985,0.0718 0.17751,0.42904 0.30657,0.22356 -8e-5,0.58353 0.17324,0.13023 0.11991,-0.0964 0.31989,0.35688 -0.0134,0.99684 0.30656,0.0636 0.8166,1.00915 0.003,0.35587 0.19082,0.47894 -0.0758,0.47895 0.2554,0.15281 0.14874,0.57944 0.67078,0.22563 0.34996,-0.2041 0.49659,0.44201 -0.70196,1.28449 -0.97662,1.0785 -0.48138,-0.02 -0.83718,0.34766 -0.76853,-0.2703 -2.76153,0.1117 -0.22102,0.11169 -0.64443,-0.63215 -0.42491,-0.73978 -0.67134,-1.31468 0.12954,-0.86547 -0.15559,-2.36701 -0.40044,-2.02423 0.35702,-0.11495 0.0142,-0.3353\"},\"54013\":{\"name\":\"Calhoun, WV\",\"path\":\"m 787.59398,268.21922 -0.003,0.35003 0.54051,0.34022 0.21699,0.83694 -0.0899,0.30912 0.38313,1.59311 -0.10344,0.7146 -0.31968,0.13342 0.0588,0.21452 -0.37375,0.41725 0.11606,0.25975 0.1566,0.03 0.0485,0.23271 0.21147,0.0616 0.1439,-0.12766 0.0956,0.20986 0.14966,-0.0199 0.24527,0.12238 0.39664,0.70108 -0.64005,1.28 -0.71666,1.34064 -0.49659,-0.44201 -0.34996,0.2041 -0.67078,-0.22563 -0.14874,-0.57945 -0.2554,-0.15281 0.0758,-0.47894 -0.19082,-0.47894 -0.003,-0.35587 -0.81659,-1.00916 -0.30657,-0.0636 0.0134,-0.99684 -0.31989,-0.35687 -0.11991,0.0964 -0.17324,-0.13023 8e-5,-0.58353 -0.30657,-0.22356 -0.17751,-0.42904 -0.30985,-0.0718 -0.009,-0.25146 0.15592,-0.0573 -0.10613,-0.22234 1.63116,-2.41579 0.17837,-0.24896 0.5919,-0.18004 0.15319,0.32352 0.35995,0.22506 0.64057,0.0971 0.33013,-0.12869 0.11351,0.13715\"},\"54105\":{\"name\":\"Wirt, WV\",\"path\":\"m 785.22636,267.99415 -1.63116,2.41579 0.10613,0.22234 -0.15592,0.0573 0.009,0.25146 -0.50691,0.19766 -0.55896,0.40576 -1.34623,-0.37303 -0.76795,-0.33019 -0.31437,0.38642 -0.3572,0.0437 -0.13612,0.19455 -0.30454,-0.11608 -0.13319,-0.3838 -0.22958,-0.0947 -0.32596,-0.33025 0.37013,-0.36238 -0.1439,-0.23388 0.0274,-0.36238 -0.92566,-0.33025 0.39574,-0.68266 1.95822,-2.33196 0.36102,-0.006 1.57628,-1.3771 -0.28117,1.00766 0.699,0.19084 0.67622,0.74887 0.0349,0.54012 -0.16465,0.2461 0.3919,0.10959 0.0874,0.2986 0.40802,0.13596 0.198,-0.28408 0.60753,-0.0111 z\"},\"54107\":{\"name\":\"Wood, WV\",\"path\":\"m 780.58321,261.64125 0.29676,0.13303 0.18791,0.0885 0.22303,-0.0872 -0.002,0.26477 0.1826,0.25598 0.4285,-0.0426 0.63928,-0.0514 0.12111,0.37016 0.29677,0.13303 -0.39667,0.34898 -0.0969,0.63158 -0.2254,0.41749 -0.0456,0.75147 -1.57628,1.3771 -0.36102,0.006 -1.95822,2.33196 -0.39574,0.68266 -3.01899,-1.04872 -0.0805,-1.17027 -0.25733,-0.95418 0.35419,-0.78091 0.37399,-0.15526 0.01,-0.40555 0.11075,-0.64801 0.36444,-0.23575 1.60119,-0.10891 -0.0478,-1.7262 0.93392,-0.84213 0.46015,-0.84476 0.33743,-0.0942 0.20147,0.02 0.31833,0.31636 0.50444,0.93337 0.51657,0.1381\"},\"54073\":{\"name\":\"Pleasants, WV\",\"path\":\"m 786.76043,260.26987 -0.38097,0.059 -0.15871,0.42412 -0.24603,0.2495 -0.42066,-0.0839 -0.29804,0.22062 -0.21865,0.0619 -0.32185,0.27619 -0.21866,-0.0255 -0.40916,0.29207 -0.39329,-0.14452 -0.0281,0.18093 -0.43298,0.0142 -0.14488,0.47158 0.0319,0.40025 -0.16299,0.0391 -0.29677,-0.13303 -0.12111,-0.37016 -0.63928,0.0514 -0.4285,0.0426 -0.1826,-0.25598 0.002,-0.26477 -0.22303,0.0872 -0.18791,-0.0885 -0.29676,-0.13303 1.72165,-1.51403 0.75571,0.0273 0.16549,-0.72393 0.41144,-0.61617 0.70217,-0.33358 0.23267,-0.42748 0.41959,0.0142 0.23178,-0.28091 0.38418,-0.17397 0.51832,0.14797 0.63422,2.50927\"},\"54085\":{\"name\":\"Ritchie, WV\",\"path\":\"m 786.76043,260.26987 0.23818,0.16935 0.15276,-0.17234 0.51581,0.0732 0.22749,-0.65285 -0.0288,-0.22574 0.0566,-0.32184 0.56675,0.13844 0.48133,0.38404 0.0435,0.36268 -0.10597,0.48013 0.20885,0.61942 -0.40951,0.54387 2.42024,3.56746 0.008,0.22064 -0.10354,0.15009 -0.20097,0.086 -0.0407,0.17042 -0.35285,-0.0237 -0.0406,0.24636 -0.0782,0.15009 -0.1373,-0.0777 -0.1779,0.27127 -0.20321,0.0519 -0.0214,0.19388 -0.36738,0.2867 -0.25768,0.0589 -0.18175,0.22763 -0.24591,0.0325 -0.11934,0.28558 -0.22904,0.007 -0.0265,0.14215 -0.12601,0.0373 -0.15133,0.26514 -0.17664,0.0289 -0.30321,0.17233 -0.11351,-0.13714 -0.33013,0.1287 -0.64057,-0.0971 -0.35995,-0.22506 -0.15319,-0.32352 -0.5919,0.18004 -0.17837,0.24896 -0.37652,-0.15701 -0.60753,0.011 -0.198,0.28402 -0.40802,-0.13601 -0.0874,-0.29859 -0.3919,-0.10957 0.16465,-0.24609 -0.0349,-0.54011 -0.67622,-0.74882 -0.699,-0.19074 0.28117,-1.00755 0.0456,-0.75147 0.2254,-0.41749 0.0969,-0.63158 0.39667,-0.34898 0.16299,-0.0391 -0.0319,-0.40025 0.14488,-0.47158 0.43298,-0.0142 0.0281,-0.18093 0.39329,0.14452 0.40916,-0.29207 0.21866,0.0255 0.32185,-0.27619 0.21865,-0.0619 0.29804,-0.22062 0.42066,0.0839 0.24603,-0.2495 0.15871,-0.42412 0.38097,-0.059\"},\"54021\":{\"name\":\"Gilmer, WV\",\"path\":\"m 791.12778,265.23574 1.49859,0.0162 0.53089,1.99508 2.41632,1.99507 -0.35257,0.14689 -0.18185,0.20232 -0.082,0.21771 -0.24086,-0.0196 -0.1199,0.17047 -0.15446,-0.11466 -0.17174,-0.11465 -2.95587,3.14553 -1.84671,1.73703 -0.39664,-0.70108 -0.24527,-0.12238 -0.14966,0.0199 -0.0956,-0.20988 -0.1439,0.12766 -0.21147,-0.0616 -0.0485,-0.23271 -0.1566,-0.03 -0.11606,-0.25975 0.37375,-0.41725 -0.0588,-0.21452 0.31968,-0.13342 0.10344,-0.7146 -0.38313,-1.59311 0.0899,-0.30912 -0.21699,-0.83694 -0.54051,-0.34022 0.003,-0.35003 0.30321,-0.17233 0.17664,-0.0289 0.15133,-0.26514 0.12601,-0.0373 0.0265,-0.14215 0.22904,-0.007 0.11934,-0.28558 0.24591,-0.0325 0.18175,-0.22763 0.25768,-0.0589 0.36738,-0.2867 0.0214,-0.19388 0.20321,-0.0519 0.1779,-0.27127 0.1373,0.0777 0.0782,-0.15009 0.0406,-0.24636 0.35285,0.0237 0.0406,-0.17042 0.20097,-0.086 0.10354,-0.15009 -0.008,-0.22064\"},\"54007\":{\"name\":\"Braxton, WV\",\"path\":\"m 795.57358,269.23714 0.42037,0.97049 0.50736,-0.21635 0.19696,0.24305 0.1597,-0.0239 0.16591,-0.20393 0.35216,0.11889 0.13487,0.17475 0.22179,0.0196 0.18453,0.21201 0.16592,0.063 -0.10104,0.39205 0.0169,0.31134 0.11625,0.1313 0.17832,-0.0984 0.18454,0.13751 -0.0265,0.18717 0.12246,0.13131 0.21156,-0.0582 0.0755,0.12634 -0.14648,0.27233 0.0961,0.26738 -0.0731,0.266 -0.61171,2.23689 -2.0708,3.1054 -1.20046,0.0227 -0.44207,0.30322 -0.83686,-0.65256 -1.49135,1.49795 -0.28243,-0.58865 -0.45904,-0.23542 -0.11621,-0.46398 -0.38632,-0.33932 -0.67721,-0.19387 -0.0746,-0.29776 -0.19836,-0.071 -0.0113,-0.3203 -1.05121,-0.78604 0.64005,-1.28 1.84671,-1.73703 2.95587,-3.14553 0.17174,0.11465 0.15446,0.11466 0.1199,-0.17047 0.24086,0.0196 0.082,-0.21771 0.18185,-0.20232 0.35257,-0.14689\"},\"54067\":{\"name\":\"Nicholas, WV\",\"path\":\"m 796.05506,278.00314 -0.34766,0.676 0.90909,1.6429 -0.34537,0.39996 0.87775,1.11737 0.11059,-0.19361 3.68947,1.6684 -1.44591,1.849 -2.39617,2.908 -0.33697,0.348 -3.23989,-0.0967 -0.21136,-0.26611 0.0102,-0.47225 -0.14971,0.0742 -0.0928,0.255 -0.2261,-0.12482 0.007,-0.23146 -0.26467,-0.0195 -0.34465,-0.22613 -0.24468,-0.27944 -0.0314,-0.57265 -0.18471,-0.15283 -0.22469,0.0471 -0.0516,-0.26301 -0.3315,-0.12972 -0.39146,0.0702 0.035,0.31676 -0.0983,0.0902 -0.0983,-0.0564 -0.0449,-0.16304 -0.27152,-0.16304 0.0417,-0.33631 -0.0516,-0.10307 -0.11825,0.0769 -0.0849,0.34341 -0.29151,0.0569 0.14831,0.24345 -0.24486,0.0169 0.12533,0.35134 -0.19196,0.0213 -0.17396,-0.1799 -0.18349,-0.007 -0.82567,-0.54171 -0.29045,0.28958 -0.6397,-0.0626 -0.0806,-0.2806 -0.80047,-0.29063 0.007,0 5.34106,-4.34556 1.25473,-1.67406 -0.19255,-0.339 -0.98391,-0.11764 1.49135,-1.49795 0.83686,0.65256 0.44207,-0.30322 1.20046,-0.0227\"},\"54025\":{\"name\":\"Greenbrier, WV\",\"path\":\"m 802.45902,284.03814 0.36371,2.564 2.00929,1.253 0.98593,0.06 0.74702,-0.102 1.02158,-0.637 2.57803,-0.618 -1.24444,2.836 -2.00185,3.13195 -1.29467,3.53605 -0.75953,0.13472 -0.29102,-0.0849 0.002,-0.27522 -0.12998,-0.041 -0.11534,0.45681 -0.36423,0.0176 -0.0691,-0.22619 -0.21551,-0.0359 -0.0105,-0.28476 -0.80055,0.81823 -0.31741,0.0569 -0.22956,-0.13341 -0.66878,0.18868 -2.92635,-0.45091 -0.17468,-0.74737 -1.05619,-0.72477 -0.21376,-0.27422 -0.68842,-0.54545 -0.89183,-0.43244 0.99914,-0.0781 -1.35103,-1.65607 0.55348,-0.98217 -0.28405,-0.10637 0.0187,-0.40913 -0.27427,-0.14543 -0.0496,-0.23334 -0.55017,-0.0446 -0.11066,-0.23013 0.25071,-0.13247 -0.0423,-0.22036 0.17257,-0.10317 0.0185,-0.16096 -0.50639,0.0738 -0.0368,0.28102 -0.67213,-0.0367 -0.3959,-0.35433 0.0875,-0.61677 3.23989,0.0967 0.33697,-0.348 2.39617,-2.908 1.44591,-1.849 1.51009,0.724\"},\"54101\":{\"name\":\"Webster, WV\",\"path\":\"m 798.73757,272.66085 1.23791,0.009 0.37947,-0.19095 0.67243,0.26475 0.41202,0.65535 0.63987,-0.32115 2.34091,3.593 -0.56339,3.309 -1.29258,1.456 -0.42789,-0.151 0.3227,2.754 -1.51009,-0.724 -3.68948,-1.6684 -0.11058,0.19361 -0.87775,-1.11737 0.34537,-0.39996 -0.90909,-1.6429 0.34766,-0.676 2.0708,-3.1054 0.61171,-2.23689\"},\"54097\":{\"name\":\"Upshur, WV\",\"path\":\"m 800.16982,263.78814 0.85882,-0.005 0.13272,-0.41022 0.24398,-0.002 0.27726,0.36902 0.84689,0.011 0.84689,1.15022 1.15161,-0.16001 0.3704,0.53982 -0.13412,0.9467 -0.23177,0.50727 -0.18753,1.3697 0.36582,1.1093 -0.12302,2.248 -1.9362,0.371 -0.5723,1.244 -0.63987,0.32115 -0.41203,-0.65535 -0.67242,-0.26475 -0.37947,0.19095 -0.45106,-0.885 -0.005,-2.506 0.016,-0.241 0.53438,-1.06278 -0.0903,-0.36177 0.36238,-0.40078 -0.45982,-0.8448 0.27982,-0.49944 0.008,-2.07343\"},\"54041\":{\"name\":\"Lewis, WV\",\"path\":\"m 794.76237,263.19514 0.81435,0.12265 0.21283,0.18665 1.14306,-0.20743 0.34958,0.17651 2.88763,0.31462 -0.008,2.07343 -0.27982,0.49944 0.45982,0.8448 -0.36238,0.40078 0.0903,0.36177 -0.53438,1.06278 -0.016,0.241 0.005,2.506 0.45106,0.885 -1.23791,-0.009 0.0731,-0.266 -0.0961,-0.26738 0.14648,-0.27233 -0.0755,-0.12634 -0.21156,0.0582 -0.12246,-0.13131 0.0265,-0.18717 -0.18454,-0.13751 -0.17832,0.0984 -0.11625,-0.1313 -0.0169,-0.31134 0.10104,-0.39205 -0.16592,-0.063 -0.18453,-0.21201 -0.22179,-0.0196 -0.13487,-0.17475 -0.35216,-0.11889 -0.16591,0.20393 -0.1597,0.0239 -0.19696,-0.24305 -0.50736,0.21635 -0.42037,-0.97049 -2.41632,-1.99507 -0.53089,-1.99508 0.4308,0.0194 0.24114,-0.39442 0.12906,-0.39442 0.19803,-0.20476 0.0687,-0.25648 0.52564,-0.041 0.16354,-0.37718 0.25851,-0.0981 0.12057,-0.30498\"},\"54017\":{\"name\":\"Doddridge, WV\",\"path\":\"m 793.30577,256.78214 0.34187,0.21057 0.0296,-0.16961 0.23325,-0.0474 0.17712,0.28685 0.0821,-0.12726 0.16662,-0.0229 0.058,0.16719 0.27895,-0.0254 -0.0195,0.65923 0.36626,0.92626 -0.36532,1.08108 -0.24664,0.0426 -0.24663,0.78437 0.37645,-0.002 -0.0686,0.53217 0.77702,0.41348 0.006,0.20579 -0.29114,-0.0316 0.0946,0.27997 0.65833,0.0871 0.0204,0.39865 -0.42467,0.19095 -0.0686,0.25029 -0.49884,0.0871 0.0204,0.23546 -0.12057,0.30498 -0.25851,0.0981 -0.16354,0.37718 -0.52564,0.041 -0.0687,0.25648 -0.19803,0.20476 -0.12906,0.39442 -0.24114,0.39442 -0.4308,-0.0194 -1.49859,-0.0163 -2.42024,-3.56746 0.40951,-0.54387 0.814,-1.19602 1.55037,-1.5274 0.21676,-0.74529 0.85496,-0.25437 0.75263,-0.61919\"},\"54095\":{\"name\":\"Tyler, WV\",\"path\":\"m 787.07107,254.11314 1.05404,0.50084 0.5763,-0.56215 0.0269,0.29779 0.42104,0.21419 0.15827,0.42917 0.24187,-0.15606 0.25474,0.0858 0.18307,0.20523 0.0517,0.27689 0.33835,0.15746 0.57702,0.2118 0.49343,0.82092 0.35113,-0.0366 0.3715,-0.1724 0.0864,0.27566 0.45976,-0.13846 0.58925,0.25895 -0.75263,0.61919 -0.85496,0.25437 -0.21676,0.74529 -1.55038,1.5274 -0.81399,1.19602 -0.20884,-0.61942 0.10596,-0.48014 -0.0435,-0.36268 -0.48133,-0.38403 -0.56675,-0.13844 -0.0566,0.32184 0.0288,0.22573 -0.2275,0.65286 -0.51581,-0.0732 -0.15276,0.17234 -0.23818,-0.16935 -0.63422,-2.50927 -0.51832,-0.14797 -0.38418,0.17397 -0.23178,0.28091 -0.41959,-0.0142 1.09205,-2.15619 1.40668,-1.784\"},\"54033\":{\"name\":\"Harrison, WV\",\"path\":\"m 795.4042,255.98514 4.05641,0.31669 1.3083,0.61326 0.48034,2.80489 0.7284,0.51716 -0.80985,1.84263 0.23754,1.29137 -0.24398,0.002 -0.13272,0.41022 -0.85882,0.005 -2.88763,-0.31462 -0.34958,-0.17651 -1.14306,0.20743 -0.21283,-0.18665 -0.81435,-0.12265 -0.0204,-0.23546 0.49884,-0.0871 0.0686,-0.25029 0.42467,-0.19095 -0.0204,-0.39865 -0.65833,-0.0871 -0.0946,-0.27997 0.29114,0.0316 -0.006,-0.20579 -0.77702,-0.41348 0.0686,-0.53217 -0.37645,0.002 0.24663,-0.78437 0.24664,-0.0426 0.36532,-1.08108 -0.36626,-0.92626 0.0195,-0.65923 0.37716,-0.18171 -0.004,-0.50054 0.28384,-0.1195 0.0739,-0.26725\"},\"54029\":{\"name\":\"Hancock, WV\",\"path\":\"m 790.57619,229.32414 0.60974,3.688 0.30488,1.792 -1.88046,0.4556 0.21234,-0.35525 -0.10813,-0.50727 0.16628,-0.65819 -0.0944,-0.56215 -0.44508,-0.50746 -0.22254,-0.55556 -0.3323,-0.39093 -0.51482,-0.42386 -0.0346,-0.27293 0.44758,-0.64502 0.61222,-0.38434 0.37471,0.0685 0.31983,-0.31565 0.58478,-0.4255\"},\"54009\":{\"name\":\"Brooke, WV\",\"path\":\"m 791.49081,234.80414 0.88786,5.474 -2.81802,-0.154 0.11983,-0.7105 0.15399,-0.6422 0.64346,-0.61943 -0.11922,-0.39177 0.2109,-0.81295 -0.39241,-0.72188 0.006,-0.55114 -0.57455,-0.41453 1.88046,-0.4556\"},\"54069\":{\"name\":\"Ohio, WV\",\"path\":\"m 789.56065,240.12414 2.81802,0.154 0.53487,3.277 -3.74403,0.217 0.0251,-0.5696 -0.21775,-0.31327 0.4838,-0.77197 -0.24474,-1.27116 0.34479,-0.722\"},\"54051\":{\"name\":\"Marshall, WV\",\"path\":\"m 792.91354,243.55514 1.10181,6.742 -5.36109,0.892 -0.7387,-0.78355 0.62791,-1.1185 -0.16258,-0.75676 0.15898,-0.3682 0.34666,-0.42593 -0.42372,-0.8837 0.61463,0.0765 0.31317,-0.25845 -0.32324,-0.78322 0.32434,-0.61574 -0.30091,-0.95069 0.0787,-0.54875 3.74403,-0.217\"},\"54103\":{\"name\":\"Wetzel, WV\",\"path\":\"m 795.71799,250.02314 0.51906,0.9103 0.23509,0.9387 -0.16189,0.21595 -0.19029,-0.15323 -0.41747,0.35794 0.12209,0.15915 -0.19029,0.17335 -7.1e-4,0.37132 -0.2279,0.0305 -0.29889,0.14414 0.0987,0.21512 -0.24209,0.51331 0.085,0.37326 0.22701,0.23127 0.028,0.34895 0.32587,0.37131 -7.1e-4,0.37132 -0.23289,0.13076 0.008,0.25854 -0.0739,0.26725 -0.28384,0.1195 0.004,0.50054 -0.37716,0.18171 -0.27895,0.0254 -0.058,-0.16719 -0.16663,0.0229 -0.0821,0.12726 -0.17712,-0.28685 -0.23324,0.0474 -0.0296,0.16961 -0.34186,-0.21057 -0.58925,-0.25894 -0.45976,0.13846 -0.0864,-0.27567 -0.3715,0.17241 -0.35113,0.0366 -0.49343,-0.82092 -0.57702,-0.2118 -0.33835,-0.15746 -0.0517,-0.27689 -0.18307,-0.20523 -0.25474,-0.0858 -0.24187,0.15607 -0.15827,-0.42918 -0.42103,-0.21419 -0.0269,-0.29779 -0.5763,0.56215 -1.05404,-0.50084 0.90124,-0.14132 0.35969,-0.74303 -0.0735,-1.30865 0.45062,-0.20905 -0.0548,-0.52195 5.36109,-0.892 1.70264,-0.274\"},\"54049\":{\"name\":\"Marion, WV\",\"path\":\"m 796.47214,251.87214 0.52748,0.0374 0.41388,0.40659 3.36784,-0.534 1.37281,1.054 0.87539,0.772 2.08952,1.15 -1.08754,0.98065 -0.19173,0.50029 -1.03561,0.5652 -0.19723,-0.25792 -0.32706,-0.2709 -0.19724,0.28736 -1.31374,0.35227 -1.3083,-0.61326 -4.05641,-0.31669 -0.008,-0.25854 0.23289,-0.13076 7.1e-4,-0.37132 -0.32587,-0.37131 -0.028,-0.34895 -0.22701,-0.23127 -0.085,-0.37326 0.24209,-0.51331 -0.0987,-0.21513 0.29889,-0.14412 0.2279,-0.0306 7.1e-4,-0.37132 0.19029,-0.17335 -0.12209,-0.15915 0.41747,-0.35794 0.19029,0.15323 0.16189,-0.21595\"},\"54001\":{\"name\":\"Barbour, WV\",\"path\":\"m 808.23552,259.44014 -0.0499,2.36115 0.23711,0.30785 -0.34766,0.554 -0.0642,0.161 -0.21573,1.904 -0.0161,0.668 -0.0481,0.184 -3.19847,1.155 0.23177,-0.50727 0.13412,-0.9467 -0.3704,-0.53982 -1.15161,0.16001 -0.84689,-1.15022 -0.84689,-0.011 -0.27726,-0.36902 -0.23754,-1.29137 0.80985,-1.84263 0.30257,0.17618 2.18239,-0.65929 1.03361,-0.76373 0.19313,-0.49118 0.10175,-0.13871 0.48032,0.0832 0.20619,-0.32147 0.75325,0.3295 0.20041,0.70303 0.72336,0.0755 0.0809,0.20997\"},\"54091\":{\"name\":\"Taylor, WV\",\"path\":\"m 805.11906,254.75814 0.83617,0.255 0.52238,3.109 -0.20619,0.32147 -0.48032,-0.0832 -0.10175,0.13871 -0.19313,0.49118 -1.03361,0.76373 -2.18239,0.65929 -0.30257,-0.17618 -0.7284,-0.51716 -0.48034,-2.80489 1.31374,-0.35227 0.19724,-0.28735 0.32706,0.27089 0.19723,0.25792 1.03561,-0.5652 0.19173,-0.50029 1.08754,-0.98065\"},\"54061\":{\"name\":\"Monongalia, WV\",\"path\":\"m 807.10161,248.11214 0.0981,0.545 -0.15154,1.742 -1.36033,3.569 0.26743,1.045 -0.83617,-0.255 -2.08952,-1.15 -0.87539,-0.772 -1.37281,-1.054 -3.36784,0.534 -0.41388,-0.40659 -0.52748,-0.0374 -0.23509,-0.9387 -0.51906,-0.9103 8.75033,-1.462 2.63329,-0.449\"},\"54075\":{\"name\":\"Pocahontas, WV\",\"path\":\"m 813.61206,271.85842 0.18994,0.16359 -0.127,0.516 0.306,0.324 -0.40934,0.68913 -0.0303,1.904 -0.0891,1.625 -0.47425,1.688 -1.10003,1.71 -0.009,0.08 0,0.03 0.43324,0.875 -0.64439,0.94408 -1.32624,1.60392 0.32339,1.60392 -0.49043,0.94408 -2.57803,0.618 -1.02158,0.637 -0.74702,0.102 -0.98593,-0.06 -2.00929,-1.253 -0.36371,-2.564 -0.3227,-2.754 0.42789,0.151 1.29258,-1.456 1.87177,-2.26341 1.68862,0.005 2.54772,-2.587 0.11946,-1.85 0.0571,-0.399 0.52951,-2.267 0.0963,-0.07 0.38689,0.07 0.51526,0.34254 -0.13366,0.74188 0.22979,0.062 0.31298,-0.15434 0.22979,0.0453 0.1466,0.29491 0.28688,-0.0184 -0.0126,-0.31785 0.22033,-0.31786 0.59845,0.22607 0.0642,0.336\"},\"54077\":{\"name\":\"Preston, WV\",\"path\":\"m 812.0776,247.23414 1.88806,11.789 0.0339,0.258 -0.44215,-0.426 -3.34288,-0.715 -1.97899,1.3 -0.0809,-0.20997 -0.72336,-0.0755 -0.20041,-0.70303 -0.75325,-0.3295 -0.52238,-3.109 -0.26743,-1.045 1.36033,-3.569 0.15154,-1.742 -0.0981,-0.545 4.97599,-0.878\"},\"54083\":{\"name\":\"Randolph, WV\",\"path\":\"m 817.18909,264.14114 0.16759,0.139 -0.27259,0.88544 -0.69427,0.0812 -0.32378,-0.1933 0,0.03 -0.39392,0.13991 0.29563,0.63461 -0.54787,0.39202 -0.65073,-0.003 0.1842,0.62914 -0.29549,0.62072 0.23694,0.10492 -0.0792,0.43769 0.53644,0.47098 -1.2569,2.88244 0.0912,0.27974 -0.57436,0.1799 -0.0642,-0.336 -0.59845,-0.22607 -0.22033,0.31786 0.0126,0.31785 -0.28688,0.0184 -0.1466,-0.29491 -0.22979,-0.0453 -0.31298,0.15434 -0.22979,-0.062 0.13366,-0.74188 -0.51526,-0.34254 -0.38689,-0.07 -0.0963,0.07 -0.52951,2.267 -0.0571,0.399 -0.11946,1.85 -2.54772,2.587 -1.68862,-0.005 -1.87177,2.26341 0.56339,-3.309 -2.34091,-3.593 0.5723,-1.244 1.9362,-0.371 0.12302,-2.248 -0.36582,-1.1093 0.18753,-1.3697 3.19847,-1.155 0.0481,-0.184 0.0161,-0.668 0.21573,-1.904 0.0642,-0.161 0.34766,-0.554 0.41574,0.10394 0.36054,0.23641 0.27223,0.402 -0.004,0.86565 5.26838,0.554 2.45323,-0.13\"},\"54071\":{\"name\":\"Pendleton, WV\",\"path\":\"m 817.35668,264.28014 4.35734,2.611 1.55822,0.948 -1.80783,6.976 -1.24622,1.799 -3.07902,-0.522 -1.09111,-1.617 -0.33697,-0.337 -0.36192,-0.161 -1.77752,-0.426 0.40935,-0.6894 -0.306,-0.32373 0.127,-0.50599 -0.18995,-0.1736 0.57435,-0.1799 -0.0912,-0.27974 1.2569,-2.88244 -0.53644,-0.47098 0.0792,-0.43769 -0.23694,-0.10492 0.29549,-0.62072 -0.1842,-0.62914 0.65073,0.003 0.54787,-0.39202 -0.29563,-0.63461 0.39392,-0.13991 0,-0.03 0.32378,0.1933 0.69427,-0.0812 0.27259,-0.88544\"},\"54093\":{\"name\":\"Tucker, WV\",\"path\":\"m 808.23552,259.44014 1.97899,-1.3 3.34288,0.715 0.44215,0.426 0.43603,0.30252 0.72042,-0.49377 0.36107,0.0972 0.41794,-0.55115 0.3042,0.13137 -0.0143,-0.23264 0.49161,-0.20134 0.41198,0.0717 0.42337,0.32192 -0.27054,0.20818 -0.0885,0.24229 0.048,0.20817 -0.15679,0.0831 -0.0961,0.41037 0.12006,0.27386 -0.24395,1.17252 0.92771,0.14873 0.007,0.621 -0.0392,0.656 -0.17829,0.781 -0.39223,0.609 -2.45323,0.13 -5.26838,-0.554 0.004,-0.86565 -0.27223,-0.402 -0.36054,-0.23641 -0.41574,-0.10394 -0.23711,-0.30785 0.0499,-2.36115\"},\"54023\":{\"name\":\"Grant, WV\",\"path\":\"m 816.84322,255.56914 2.86786,-0.21543 2.94964,1.37943 -0.0981,0.241 -0.47246,1.874 0.0697,0.94018 -0.59381,1.83782 0.31379,0.30093 -0.0374,0.49607 1.03283,1.57227 -0.52827,0.79173 0.11284,0.52513 -0.74576,1.57887 -4.35734,-2.611 -0.16759,-0.139 0.39223,-0.609 0.17829,-0.781 0.0392,-0.656 -0.007,-0.621 -0.92771,-0.14873 0.24395,-1.17252 -0.12006,-0.27386 0.0961,-0.41037 0.15679,-0.0831 -0.048,-0.20817 0.0885,-0.24229 0.27054,-0.20818 -0.42337,-0.32192 -0.41198,-0.0717 -0.49161,0.20134 0.0143,0.23264 -0.3042,-0.13137 -0.41794,0.55115 -0.36107,-0.0972 -0.72042,0.49377 -0.43603,-0.30252 -0.0339,-0.258 0.5375,-0.20301 1.41583,-1.54356 0.92423,-1.70743\"},\"54031\":{\"name\":\"Hardy, WV\",\"path\":\"m 822.66072,256.73314 1.57427,0.628 3.10576,0.59829 0.82506,-0.17642 0.33943,0.083 0.23577,0.30065 0.44308,-0.1347 0.33943,0.083 0.22054,-0.36177 0.64718,0.06 0.47425,0.291 0.6347,0.514 -0.50308,0.97514 -0.33335,0.75587 0.29825,0.14899 -0.57439,1.39015 -0.42026,-0.25996 -0.43149,0.61665 -0.21626,0.77995 -0.67694,0.69487 -0.0905,-0.55151 -0.47482,0.19207 -0.16213,0.57755 -0.38773,0.38263 -0.96914,2.8846 -2.46313,-1.27467 -0.8227,1.90967 -1.55822,-0.948 0.74576,-1.57887 -0.11284,-0.52513 0.52827,-0.79173 -1.03283,-1.57227 0.0374,-0.49607 -0.31379,-0.30093 0.59381,-1.83782 -0.0697,-0.94018 0.47246,-1.874 0.0981,-0.24\"},\"54057\":{\"name\":\"Mineral, WV\",\"path\":\"m 827.01627,248.92314 -0.41602,0.90287 -0.3243,0.82948 -0.61783,0.64603 -0.26926,0.62768 -0.50775,1.58166 -0.2876,0.59099 -0.48941,0.13235 -0.52596,0.84488 0.006,0.53301 -0.56265,0.49631 -0.36084,0.62474 -2.94964,-1.37943 -2.86786,0.21543 3.26978,-3.945 1.89697,0.426 2.88469,-3.971 2.12161,0.844\"},\"54027\":{\"name\":\"Hampshire, WV\",\"path\":\"m 827.01627,248.92314 3.35001,-0.184 2.32308,0.763 -0.0346,1.75706 0.33981,0.3889 -0.16539,0.7579 0.42405,0.0357 -0.18668,0.86704 -0.48961,0.85345 -0.13458,0.55749 -0.15146,0.16959 0.40511,0.10213 -0.42129,1.14778 0.21959,0.13585 0.0341,0.20332 0.40512,0.28765 -0.46564,0.65485 -0.0602,0.4521 -0.37023,0.40441 -0.53719,0.34477 -0.6347,-0.514 -0.47425,-0.291 -0.64718,-0.06 -0.22054,0.36177 -0.33943,-0.083 -0.44308,0.1347 -0.23577,-0.30065 -0.33943,-0.083 -0.82506,0.17642 -3.10576,-0.59829 -1.57427,-0.628 0.36085,-0.62474 0.56264,-0.49631 -0.006,-0.53301 0.52595,-0.84488 0.48941,-0.13235 0.2876,-0.59099 0.50775,-1.58166 0.26926,-0.62768 0.61783,-0.64603 0.3243,-0.82948 0.41602,-0.90287\"},\"54065\":{\"name\":\"Morgan, WV\",\"path\":\"m 832.20621,245.58914 0.93244,0.185 0.20859,-0.03 0.62044,-1.143 0.45642,-0.722 0.12123,-0.137 0.10519,-0.04 0.59548,0.02 0.64896,0.07 0.64362,0.241 0.80229,0.581 0.29596,0.328 -1.89341,0.965 -0.041,0.103 -0.66715,5.02787 -2.29526,-1.18441 -2.37372,-1.11746 1.83993,-3.15\"},\"56021\":{\"name\":\"Laramie, WY\",\"path\":\"m 364.82368,219.96002 10.69861,0.97312 -0.18363,2.028 10.23545,0.921 -0.32805,3.948 -0.77911,9.033 -15.30772,-1.296 -5.73015,-0.554 1.3946,-15.05312\"},\"56015\":{\"name\":\"Goshen, WY\",\"path\":\"m 387.62441,199.74414 -1.18917,14.054 -0.60261,7.002 -0.25852,3.082 -10.23545,-0.921 0.18363,-2.028 1.97007,-22.03 2.88469,0.253 4.07207,0.308 3.17529,0.28\"},\"56039\":{\"name\":\"Teton, WY\",\"path\":\"m 278.08109,138.27998 6.25787,0.981 -0.28882,1.904 4.73352,0.722 -0.20752,0.52107 0.64528,0.40262 0.31686,-0.13803 0.44524,0.35842 -0.11868,0.29831 0.26671,0.35245 -0.56984,1.99706 0.14083,0.33883 0.38699,0.1956 -0.0394,0.47986 0.37032,0.23058 -0.0929,1.04154 0.28614,0.21241 -0.0455,0.473 0.26245,0.11765 0.52304,0.30717 0.1677,0.49669 -0.18764,0.094 0.13076,1.20796 0.20183,0.28407 -0.34303,1.04212 0.0535,0.67505 0.95372,0.1065 -2.22654,15.33162 -0.38527,1.97648 -4.73352,-0.717 -0.29596,1.977 -3.86704,-0.602 -0.2086,1.285 -3.82155,-0.64184 0.15305,-1.3629 -1.81878,-0.32719 0.0754,-0.40807 -1.95999,-0.36476 2.30969,-14.96107 1.7686,-11.168 0.76106,-4.71916\"},\"56023\":{\"name\":\"Lincoln, WY\",\"path\":\"m 273.24174,169.12821 1.95999,0.36476 -0.0754,0.40807 1.81878,0.32719 -0.15305,1.3629 3.82155,0.64184 -0.41602,2.69017 -1.34078,7.63314 -0.61465,-0.093 -0.24273,1.62907 0.55184,0.0741 -0.90935,5.97935 0.80522,0.19258 -0.63706,3.83953 5.73078,1.04344 2.4261,0.58078 -0.4992,3.332 -0.37797,3.393 -1.38886,9.152 -16.88377,-2.662 1.53505,-9.644 1.87379,-11.679 1.88628,-11.557 1.12947,-7.00893\"},\"56041\":{\"name\":\"Uinta, WY\",\"path\":\"m 266.81715,209.01714 16.88377,2.662 -1.98611,13.282 -7.73053,-1.109 -9.29588,-1.535 0.93244,-5.801 1.19631,-7.499\"},\"56035\":{\"name\":\"Sublette, WY\",\"path\":\"m 290.10382,168.31297 4.9213,0.79957 -0.33858,2.21741 0.28638,0.0771 0.23037,-0.12974 0.36617,0.0324 0.0977,0.1429 -0.0249,0.44454 -0.0926,0.41073 0.21174,0.58823 -0.25136,0.60771 0.0614,0.38795 -0.0569,0.1851 0.10254,0.33766 -0.13468,0.36324 -0.0502,0.34634 0.21751,0.901 0.35823,0.39381 0.0202,0.52525 0.5554,0.89141 0.17045,-5.2e-4 0.29251,1.02285 -0.32715,0.11215 0.11412,0.29053 -0.0455,0.59097 0.56943,0.11683 0.54198,0.60196 0.31859,0.25091 0.0314,0.31474 0.30263,0.13922 0.54239,0.56536 0.0637,0.19836 0.38282,-0.0889 0.55835,1.31532 -0.0838,0.4582 0.21933,0.39438 0.26721,0.0912 0.52251,0.98477 0.60229,0.36247 0.15551,0.18694 -0.54658,0.17098 -0.13171,0.39438 0.27072,0.13921 0.33495,-0.0809 0.78174,0.79673 0.22326,0.50952 0.12751,0.55738 0.91426,0.15369 -0.80674,5.97743 0.46978,0.0894 -0.53843,3.93587 -7.66634,-1.069 -4.18618,-0.658 -5.06157,-0.858 -2.4261,-0.58078 -5.73078,-1.04344 0.63706,-3.83953 -0.80522,-0.19258 0.90935,-5.97935 -0.55184,-0.0741 0.24274,-1.62907 0.61464,0.093 1.34078,-7.63314 0.41602,-2.69017 0.2086,-1.285 3.86704,0.602 0.29596,-1.977 4.73352,0.717 0.38532,-1.977\"},\"56029\":{\"name\":\"Park, WY\",\"path\":\"m 299.36165,134.06314 8.54173,1.157 2.98988,0.548 0.32804,0.05 2.13053,0.289 4.99026,0.659 -0.39367,3.00481 0.44756,0.0779 -1.05697,7.76131 0.28883,0.0637 -1.04545,8.19233 0.37619,0.05 -0.33428,1.94641 -3.94663,-0.60449 -0.21301,2.06221 -2.05645,-0.26446 -0.19961,1.97695 -2.93992,-0.28662 -0.13515,1.91478 -3.09541,-0.35839 -0.6241,-0.0816 -0.14611,-0.49843 -0.31007,-0.38121 -0.40914,-0.096 0.021,-0.66376 -0.49516,-0.52613 0.021,-0.28527 -0.42635,-0.31968 -0.0307,-0.31969 -0.31996,-0.11953 -0.008,-0.24934 -0.17118,-0.20634 -0.45504,0.14635 -0.10236,0.23237 -0.283,-0.16333 -0.283,-0.46439 -0.23056,0.0519 -0.23916,0.22393 -0.21392,0.0919 -0.18473,-0.29459 -0.11591,-0.0279 -0.16752,0.49679 -0.63569,0.16356 -0.0963,0.15573 -0.0447,0.4482 -0.35437,0.41378 -0.0275,0.4482 0.0929,0.19015 -0.23393,0.12132 -0.77043,-0.0788 -0.58931,0.10917 -0.22803,0.35003 -0.65813,0.0576 -0.69378,-0.79603 -0.04,-0.34871 0.25244,0.0126 0.35566,-0.2799 -0.0887,-0.39406 0.20372,-0.34246 -0.22638,-0.0328 -0.26079,-0.30804 0.0606,-0.46666 -0.18031,-0.071 0.009,-0.2086 0.31861,-0.29462 -0.008,-0.2258 -0.35235,0.11828 -0.30074,0.0839 -0.54159,-0.10538 -0.43052,-0.32963 -0.72125,0.12256 -0.21965,-0.11943 -0.001,-0.36375 -0.22407,-0.82109 -0.32416,-0.0825 0.42547,-2.97543 -0.95372,-0.1065 -0.0535,-0.67505 0.34303,-1.04212 -0.20183,-0.28407 -0.13076,-1.20796 0.18764,-0.094 -0.1677,-0.49669 -0.52303,-0.30717 -0.26245,-0.11765 0.0455,-0.473 -0.28614,-0.21241 0.0929,-1.04154 -0.37033,-0.23058 0.0394,-0.47986 -0.38699,-0.1956 -0.14084,-0.33883 0.56985,-1.99706 -0.26671,-0.35245 0.11868,-0.29831 -0.44524,-0.35842 -0.31686,0.13803 -0.64528,-0.40262 0.20752,-0.52107 -4.73352,-0.722 0.28882,-1.904 -6.25787,-0.981 1.23219,-7.26384 2.70818,0.419 2.00038,0.408 0.70602,0.243 2.41935,0.378 0.041,0 5.34326,0.724 1.81496,0.09 1.35142,0.21 3.66379,0.571\"},\"56037\":{\"name\":\"Sweetwater, WY\",\"path\":\"m 285.96695,195.80214 5.06157,0.858 4.18618,0.658 7.66634,1.069 25.56101,3.366 -0.56756,3.9303 0.39994,0.1027 -0.99663,7.975 -0.30487,1.904 -7.12078,-0.932 -0.78328,5.95438 0.24485,0.0626 -1.17313,9.105 -5.68914,-0.685 -13.66748,-1.84 -2.69391,-0.392 -8.01757,-1.07 -0.66857,-0.1 -2.3944,-0.337 -2.46571,-0.353 -0.0178,0 -0.8112,-0.121 1.98611,-13.282 1.38886,-9.152 0.37797,-3.393 0.4992,-3.332\"},\"56013\":{\"name\":\"Fremont, WY\",\"path\":\"m 330.56902,173.14955 1.03703,0.16145 -0.0688,0.62028 0.38496,0.0679 -0.4582,3.955 -0.57211,3.92417 0.28807,0.0639 -1.01163,7.95678 -0.71841,-0.0911 -0.90635,7.94531 0.37984,0.04 -0.48137,3.959 -25.56101,-3.366 0.53843,-3.93587 -0.46978,-0.0894 0.80674,-5.97743 -0.91426,-0.15369 -0.12751,-0.55738 -0.22326,-0.50952 -0.78174,-0.79673 -0.33495,0.0809 -0.27072,-0.13921 0.13171,-0.39438 0.54658,-0.17098 -0.15551,-0.18694 -0.60229,-0.36247 -0.52251,-0.98477 -0.26721,-0.0912 -0.21933,-0.39438 0.0838,-0.4582 -0.55835,-1.31532 -0.38282,0.0889 -0.0637,-0.19836 -0.54239,-0.56536 -0.30263,-0.13922 -0.0314,-0.31474 -0.31859,-0.25091 -0.54198,-0.60196 -0.56943,-0.11683 0.0455,-0.59097 -0.11412,-0.29053 0.32715,-0.11215 -0.29251,-1.02285 -0.17045,5.2e-4 -0.5554,-0.89141 -0.0202,-0.52525 -0.35823,-0.39381 -0.21751,-0.901 0.0502,-0.34634 0.13468,-0.36324 -0.10254,-0.33766 0.057,-0.1851 -0.0614,-0.38795 0.25136,-0.60771 -0.21174,-0.58823 0.0926,-0.41073 0.0249,-0.44454 -0.0977,-0.1429 -0.36617,-0.0324 -0.23037,0.12974 -0.28638,-0.0771 0.33858,-2.21741 -4.92114,-0.79905 1.80108,-12.35619 0.32416,0.0835 0.22407,0.82009 0.001,0.36375 0.21965,0.12043 0.72125,-0.12356 0.43052,0.32963 0.54159,0.10538 0.30074,-0.0839 0.35235,-0.11828 0.008,0.2258 -0.31861,0.29462 -0.009,0.2086 0.18031,0.071 -0.0605,0.46666 0.26079,0.30804 0.22638,0.0328 -0.20372,0.34246 0.0887,0.39406 -0.35566,0.2799 -0.25244,-0.0126 0.04,0.34871 0.69378,0.79603 0.65813,-0.0576 0.22803,-0.35003 0.58931,-0.10917 0.77043,0.0788 0.23393,-0.12133 -0.0929,-0.19015 0.0275,-0.4482 0.35437,-0.41378 0.0447,-0.4482 0.0963,-0.15573 0.63569,-0.16356 0.16752,-0.49679 0.11591,0.0279 0.18473,0.29459 0.21392,-0.0919 0.23916,-0.22393 0.23056,-0.0519 0.283,0.46439 0.283,0.16333 0.10236,-0.23237 0.45504,-0.14635 0.17118,0.20634 0.008,0.24934 0.31996,0.11953 0.0306,0.31969 0.42635,0.31968 -0.021,0.28527 0.49516,0.52613 -0.021,0.66376 0.40914,0.096 0.31007,0.38121 0.14611,0.49843 0.0455,0.12089 0.27762,0.12089 0.0344,0.0767 0.16706,0.0656 -0.0213,0.37283 0.35455,0.20701 -0.0413,0.26733 0.32357,0.0352 0.27934,0.96382 0.21301,0.43317 0.29927,0.3065 -0.25567,1.72133 2.01821,0.31833 1.83881,0.27524 -0.007,0.44664 1.88757,0.25235 -0.031,0.59235 1.93614,0.30092 -0.1105,0.96613 1.90518,0.23757 -0.0819,0.76171 1.96412,0.25145 -0.0726,0.65886 1.90683,0.27146 -0.0355,0.28914 3.01365,0.41428 0.0356,-0.27 9.22187,1.14398 0.0892,-0.667\"},\"56017\":{\"name\":\"Hot Springs, WY\",\"path\":\"m 316.6243,157.85655 0.93158,0.119 -0.23226,1.98469 0.98266,0.18762 -0.23471,1.95018 1.9684,0.28634 -0.20322,1.3656 1.96008,0.26849 -0.0523,0.60389 3.83879,0.58361 -0.21221,1.98033 3.86596,0.49493 -0.19798,1.93054 1.93106,0.21978 -0.40114,3.318 -0.0892,0.667 -9.22187,-1.14398 -0.0356,0.27 -3.01365,-0.41428 0.0355,-0.28914 -1.90683,-0.27146 0.0726,-0.65886 -1.96412,-0.25145 0.0819,-0.76171 -1.90518,-0.23757 0.1105,-0.96613 -1.93614,-0.30092 0.031,-0.59235 -1.88757,-0.25235 0.007,-0.44664 -1.83881,-0.27524 -2.01821,-0.31833 0.25567,-1.72133 -0.29927,-0.3065 -0.21301,-0.43317 -0.27934,-0.96382 -0.32357,-0.0352 0.0413,-0.26733 -0.35455,-0.20701 0.0213,-0.37283 -0.16706,-0.0656 -0.0344,-0.0767 -0.27762,-0.12089 -0.0454,-0.12089 0.6241,0.0816 3.09541,0.35839 0.13515,-1.91478 2.93992,0.28662 0.19961,-1.97695 2.05645,0.26446 0.21301,-2.06221 3.94663,0.60449\"},\"56043\":{\"name\":\"Washakie, WY\",\"path\":\"m 316.6243,157.85655 0.33428,-1.94641 19.21399,2.443 3.58057,0.46928 0.29774,0.03 -0.83437,8.011 0.20992,0.0237 -0.72626,5.95277 0.0855,0.0307 -0.14855,1.31144 -7.03103,-0.873 -1.03703,-0.16145 0.40114,-3.318 -1.93106,-0.21978 0.19798,-1.93054 -3.86596,-0.49493 0.21221,-1.98033 -3.83879,-0.58361 0.0523,-0.60389 -1.96008,-0.26849 0.20322,-1.3656 -1.9684,-0.28634 0.23471,-1.95018 -0.98266,-0.18762 0.23226,-1.98469 -0.93158,-0.119\"},\"56003\":{\"name\":\"Big Horn, WY\",\"path\":\"m 318.34209,136.76214 6.00292,0.813 5.7603,0.71258 0.0474,0.78957 -0.1531,0.65157 0.431,0.50964 -0.074,0.26845 -0.25473,0.62534 0.27688,0.37572 0.20534,0.55225 -0.0589,0.22845 0.19992,0.1127 -0.005,0.38788 -0.26018,0.031 0.0176,0.30409 0.6405,0.45602 0.4126,0.0306 0.19989,0.79028 -0.19514,0.41044 0.0935,0.24331 0.1847,-0.0757 0.71647,0.38006 -0.0736,0.2585 0.23028,0.31929 0.26066,-0.12133 0.0935,-0.13652 0.56453,0.0458 0.12393,-0.0606 0.15431,0.13697 0.1847,0.0458 0.39154,0.43081 0.35238,0.33941 -0.14901,0.5673 0.35238,0.17227 0.30679,-0.0252 0.0421,0.55236 0.77137,0.26369 0.22442,-0.11615 0.0573,0.2333 0.61944,0.2485 0.16365,0.78026 -0.0536,0.27343 0.13368,0.18493 0.45315,0.0164 0.13282,0.27267 -0.0978,0.24705 0.49159,0.54176 -0.0978,0.31111 -0.12344,0.0805 0.0559,0.17017 -0.085,0.36236 0.38908,0.0805 0.005,0.18298 0.28658,0.0933 0.0303,0.17017 0.29938,0.0933 0.31221,-0.0989 0.0246,-0.18534 0.25525,0.13499 -0.11634,0.25031 0.0887,0.46813 -0.10352,0.34 0.21681,0.12218 0.12712,-0.0957 0.15274,0.21187 -0.14638,0.38213 0.19737,0.0814 0.0216,0.15557 -0.16591,0.15168 -0.22841,0.0345 -0.0487,0.25713 0.14603,0.0438 0.0132,0.23128 0.24367,0.0867 -0.006,0.1883 0.20909,0.0696 -0.46024,3.61535 -3.58057,-0.46928 -19.21399,-2.443 -0.37619,-0.05 1.04545,-8.19233 -0.28883,-0.0637 1.05697,-7.76131 -0.44756,-0.0779 0.39367,-3.00481\"},\"56033\":{\"name\":\"Sheridan, WY\",\"path\":\"m 356.43845,141.52814 3.66266,0.39692 -0.23085,2.68126 0.1479,0.0802 -0.83316,7.03928 -2.4417,-0.20967 -4.07386,-0.377 -0.009,0.1 -15.45965,-1.93935 -0.16364,-0.78026 -0.61945,-0.24849 -0.0573,-0.2333 -0.22441,0.11614 -0.77138,-0.26369 -0.0421,-0.55236 -0.30679,0.0252 -0.35238,-0.17228 0.14901,-0.56729 -0.35238,-0.33941 -0.39154,-0.43081 -0.1847,-0.0458 -0.15431,-0.13697 -0.12393,0.0606 -0.56453,-0.0458 -0.0935,0.13652 -0.26066,0.12133 -0.23028,-0.31929 0.0736,-0.2585 -0.71647,-0.38006 -0.1847,0.0757 -0.0935,-0.24331 0.19514,-0.41044 -0.19989,-0.79028 -0.4126,-0.0306 -0.6405,-0.45602 -0.0176,-0.30409 0.26018,-0.031 0.005,-0.38788 -0.19992,-0.1127 0.0589,-0.22845 -0.20534,-0.55225 -0.27688,-0.37572 0.25473,-0.62534 0.074,-0.26845 -0.43099,-0.50963 0.15309,-0.65158 -0.0474,-0.78957 4.60352,0.56442 7.65921,0.94 0.85935,0.176 3.10219,0.378 10.10887,1.182\"},\"56019\":{\"name\":\"Johnson, WY\",\"path\":\"m 339.75314,158.82242 0.46024,-3.61535 -0.20911,-0.0696 0.006,-0.18831 -0.24368,-0.0867 -0.0132,-0.23128 -0.14603,-0.0438 0.0487,-0.25714 0.2284,-0.0345 0.16589,-0.15168 -0.0216,-0.15558 -0.19738,-0.0814 0.14636,-0.38214 -0.15274,-0.21187 -0.12712,0.0956 -0.21681,-0.12217 0.10352,-0.34 -0.0887,-0.46814 0.11633,-0.2503 -0.25525,-0.13499 -0.0246,0.18534 -0.3122,0.0989 -0.29939,-0.0933 -0.0303,-0.17017 -0.28658,-0.0933 -0.005,-0.18298 -0.38909,-0.0805 0.085,-0.36236 -0.0559,-0.17017 0.12344,-0.0805 0.0978,-0.31111 -0.49159,-0.54176 0.0978,-0.24705 -0.13282,-0.27267 -0.45315,-0.0164 -0.13368,-0.18493 0.0535,-0.27343 15.45965,1.93935 0.009,-0.1 4.07386,0.377 2.44159,0.21287 -0.0857,0.97996 -0.18307,-0.0148 -0.81788,8.09021 0.18773,0.0332 -0.73537,7.98528 -0.24962,0.003 -0.77078,7.47932 -0.7427,-0.0699 -8.43832,-0.852 -8.73548,-0.99814 0.0232,-0.176 0.14855,-1.31144 -0.0855,-0.0307 0.72626,-5.95277 -0.20992,-0.0237 0.83437,-8.011 -0.29774,-0.03\"},\"56025\":{\"name\":\"Natrona, WY\",\"path\":\"m 331.60605,173.311 7.03103,0.873 -0.0232,0.176 8.73548,0.99814 8.43832,0.852 -0.0321,0.947 -0.5905,4.676 -1.12487,10.92903 -0.17269,-0.0168 -0.76888,7.90647 -9.60564,-1.07667 -5.05443,-0.624 -9.51518,-1.157 -0.37984,-0.04 0.90635,-7.94531 0.71841,0.0911 1.01163,-7.95778 -0.28807,-0.0629 0.57211,-3.92417 0.4582,-3.955 -0.38496,-0.0679 0.0688,-0.62028\"},\"56007\":{\"name\":\"Carbon, WY\",\"path\":\"m 328.92342,197.79414 9.51518,1.157 5.05443,0.624 9.60564,1.07667 0.0392,0 -1.37769,14.20933 -0.77911,7.632 -0.16759,2.003 -2.38727,-0.227 -1.95224,-0.249 -0.69175,6.259 -0.27278,2.862 -9.18356,-1.115 -7.89277,-0.928 -10.29251,-1.243 1.17313,-9.105 -0.24485,-0.0626 0.78328,-5.95438 7.12078,0.932 0.30487,-1.904 0.99663,-7.975 -0.39994,-0.1027 0.56756,-3.9303 0.48137,-3.959\"},\"56001\":{\"name\":\"Albany, WY\",\"path\":\"m 353.13789,200.65181 8.69452,0.99553 -0.066,0.561 -0.30558,-0.0614 -0.10349,0.67957 -0.6242,-0.0532 -0.187,1.62648 0.32568,0.0513 -0.0127,0.36084 3.58754,0.2852 0.0865,-0.71429 0.27172,0.0435 0.12015,-1.23634 0.3054,0.0267 0.097,-0.66803 0.28407,-0.002 0.058,-0.51948 0.74305,-0.0142 -0.73074,7.92787 0.14497,0.0465 -0.25039,3.19438 -0.49663,4.8243 -0.11965,-0.008 -0.13648,1.96217 -1.3946,15.05312 -15.68569,-1.607 -2.23393,-0.265 0.27278,-2.862 0.69175,-6.259 1.95224,0.249 2.38727,0.227 0.16759,-2.003 0.77911,-7.632 1.37769,-14.20933\"},\"56045\":{\"name\":\"Weston, WY\",\"path\":\"m 384.98042,163.14414 5.68022,0.515 -0.0784,0.898 -0.57051,6.606 -0.67571,8.06 -14.30806,-1.175 -2.98096,-0.256 0.71869,-7.5556 -0.12722,-0.0132 0.40291,-4.05476 0.11149,0.008 0.36863,-4.05475 z\"},\"56011\":{\"name\":\"Crook, WY\",\"path\":\"m 375.15572,143.29119 1.14569,0.10895 15.9032,1.503 -1.54397,18.756 -5.68022,-0.516 -11.483,-1.02149 1.10229,-13.92984 0.22653,-0.0313 0.2086,-2.20713 -0.20009,-0.0818 0.32099,-2.57136\"},\"56005\":{\"name\":\"Campbell, WY\",\"path\":\"m 360.10111,141.92506 1.9302,0.10008 1.15709,0.06 11.96732,1.20105 -0.32099,2.57136 0.20009,0.0818 -0.2086,2.20713 -0.22653,0.0313 -1.10229,13.92984 -0.36259,4.05822 -0.10546,-0.004 -0.39687,4.05822 0.13024,0.0149 -0.71567,7.55734 -15.51667,-1.52095 0.77078,-7.47932 0.24962,-0.002 0.73537,-7.98578 -0.18773,-0.0322 0.81788,-8.09121 0.18307,0.0158 0.0862,-0.98416 0.83272,-7.03928 -0.1479,-0.0802 0.23083,-2.68126\"},\"56009\":{\"name\":\"Converse, WY\",\"path\":\"m 356.5304,176.28506 15.51655,1.50708 2.98096,0.256 -0.2817,3.334 -0.99662,10.576 -0.16046,2.58 -0.36014,4.01 -3.11414,-0.314 -3.22165,-0.248 -0.4806,4.02684 -0.74305,0.0142 -0.058,0.51948 -0.28407,0.002 -0.097,0.66803 -0.3054,-0.0267 -0.12015,1.23634 -0.27172,-0.0435 -0.0865,0.71429 -3.58754,-0.2852 0.0127,-0.36084 -0.32568,-0.0513 0.187,-1.62648 0.6242,0.0532 0.10349,-0.67957 0.30558,0.0614 0.066,-0.561 -8.69452,-0.99553 -0.0392,0 0.76888,-7.90647 0.17269,0.0168 1.12487,-10.92903 0.5905,-4.676 0.0321,-0.947 0.7427,0.0699\"},\"56027\":{\"name\":\"Niobrara, WY\",\"path\":\"m 389.33597,179.22314 -0.95562,11.562 -0.75594,8.959 -3.17529,-0.28 -4.07207,-0.308 -2.88469,-0.253 -4.26337,-0.355 0.36014,-4.01 0.16046,-2.58 0.99662,-10.576 0.2817,-3.334 14.30806,1.175\"},\"56031\":{\"name\":\"Platte, WY\",\"path\":\"m 373.22899,198.54814 4.26337,0.355 -1.97007,22.03 -10.69861,-0.97312 0.13648,-1.96217 0.11965,0.008 0.49663,-4.8243 0.25039,-3.19438 -0.14497,-0.0465 0.73074,-7.92787 0.4806,-4.02684 3.22165,0.248 3.11414,0.314\"},\"11001\":{\"name\":\"Washington, DC\",\"path\":\"m 856.36053,257.44814 0.98236,-1.599 0.91461,0.474 2.00166,1.20251 -1.82515,2.88049 -0.12837,-1.141 -0.47246,-0.918 -0.80408,-0.353 -0.66857,-0.546\"}}})"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.usa.districts.js",
    "content": "/** Add USA District Map Data Points */\njQuery.fn.vectorMap('addMap', 'usa_districts_en', {\"width\":\"2583.2649\",\"height\":\"1556.9987\",\"paths\":{\"nv2\":{\"name\":\"NV-2\",\"path\":\"M 245.89352,459.40969 L 206.53125,641.72388 C 270.05694,728.77235 333.62764,815.78798 397.15738,902.83344 C 397.64674,902.51273 398.13843,902.19577 398.62837,901.87642 L 402.10203,900.26367 L 405.66431,900.26367 L 404.76045,898.86354 C 404.25672,898.09469 403.78601,896.39704 403.78612,895.90931 L 407.22391,888.99199 L 404.91995,888.26533 L 406.19599,883.35615 L 408.94302,882.66493 L 408.94302,881.01674 L 412.34579,879.26216 L 411.63688,871.99582 L 408.67718,873.11238 L 403.30718,872.38572 L 402.59827,870.13496 L 400.71966,871.73001 L 389.60748,871.60592 L 388.77451,870.27674 L 383.61718,871.34011 C 382.40404,870.75993 380.42708,869.28427 380.42708,869.28427 L 382.28797,866.44862 L 374.96847,860.51147 L 370.83906,859.838 L 371.60114,853.75912 L 370.41372,853.75912 C 369.76747,853.75912 369.2439,853.59181 369.24401,853.38691 C 369.24401,853.18206 370.16461,847.75867 371.28213,841.33543 C 372.39965,834.91218 373.38763,829.57125 373.49748,829.46117 L 387.10857,831.10942 L 395.89906,839.84671 L 395.89906,842.04434 L 399.30183,847.34347 L 401.44629,847.98149 C 402.62182,848.33368 405.4374,848.79708 407.72015,849.00942 L 411.885,849.39932 L 412.98381,851.80961 L 410.67985,857.16189 L 418.22976,857.16189 L 420.71094,854.84018 L 420.16154,849.94869 L 422.04015,847.05991 L 432.63837,838.96058 L 435.01322,833.25384 C 434.37919,832.09792 433.78768,830.92408 433.32956,829.69159 C 433.32955,829.52009 433.58995,829.37258 433.91441,829.37258 L 437.76025,831.78288 L 440.05702,831.01992 L 440.77481,833.50071 L 444.39533,832.26052 L 446.29417,831.07522 L 449.56785,829.68904 L 451.77896,829.37258 C 452.70638,829.37258 454.30765,829.13728 455.34124,828.8409 L 457.21985,828.30922 L 460.9948,830.09919 L 465.47866,828.62823 L 513.66688,508.00553 C 430.50121,496.27262 313.56875,474.90448 245.89352,459.40969 z \"},\"il15\":{\"name\":\"IL-15\",\"path\":\"M 1697.938,577.56744 L 1670.7158,581.00566 L 1673.0729,602.34388 L 1679.9848,601.12098 L 1679.8784,607.60751 L 1674.8984,608.86586 L 1671.4778,613.61556 L 1673.0374,616.41576 L 1673.0729,622.22883 L 1671.3184,623.68209 L 1672.1159,624.90494 L 1687.5701,623.6289 C 1688.0948,625.95089 1688.194,628.34332 1688.5094,630.70031 L 1666.4623,633.16375 L 1668.3764,647.32427 L 1686.7726,644.86078 L 1688.4563,657.81615 L 1680.7291,659.03899 L 1684.3978,660.81127 L 1682.6964,663.771 L 1677.4504,662.06962 L 1675.8908,664.05457 L 1676.5643,671.05503 L 1687.2511,669.84989 L 1687.2511,674.65279 L 1691.6287,673.90843 L 1692.3198,677.38209 L 1695.0491,677.38209 C 1696.6112,678.76475 1698.2468,680.30842 1698.9836,680.04051 L 1699.0368,681.45833 L 1704.4954,681.06843 L 1706.5335,697.90506 L 1731.3631,694.96308 L 1733.9683,714.7417 L 1743.2201,713.53462 L 1743.183,719.13649 L 1746.9953,721.12399 L 1747.7552,723.10752 L 1744.3177,724.98404 L 1745.6654,735.72546 L 1744.2284,738.97011 L 1741.5887,739.67642 L 1741.6955,742.65503 L 1739.9055,746.111 L 1736.8914,745.41979 L 1736.8914,747.8459 L 1733.2594,748.27318 L 1732.905,752.52664 L 1729.2364,753.60771 L 1730.0693,767.21879 L 1724.9982,768.56601 L 1725.8527,775.83235 C 1722.5927,776.04201 1719.0294,776.10428 1715.6075,777.28533 L 1716.3342,784.00229 L 1721.2788,784.00229 L 1721.3143,779.1285 C 1722.5207,778.64031 1727.5083,778.14566 1731.3454,777.65754 L 1732.1252,782.86803 L 1736.2014,782.92117 L 1736.8217,784.2681 L 1737.318,783.63008 L 1736.3964,779.46526 C 1736.3059,778.99738 1736.0213,778.16789 1735.7761,777.62209 L 1735.333,776.62961 L 1735.7584,775.63714 C 1735.9908,775.09128 1736.124,773.8369 1736.0596,772.85464 L 1735.9533,771.08236 L 1737.0875,770.37345 L 1735.4748,766.49219 L 1735.8115,765.60605 C 1735.9977,765.1207 1736.3575,764.71991 1736.6267,764.71991 L 1737.123,764.71991 L 1736.8749,760.48414 L 1738.1332,759.91701 C 1738.8291,759.60838 1739.5239,759.03501 1739.6751,758.64097 L 1739.9586,757.93206 L 1736.5913,756.17754 L 1736.5913,752.81021 L 1737.7256,752.81021 L 1737.7256,749.28335 L 1740.5612,749.81503 L 1740.5612,748.14909 L 1742.8297,748.73397 L 1742.8297,744.9413 L 1745.1869,743.27536 L 1746.6933,738.91556 L 1745.6477,736.98375 L 1746.9237,736.29259 C 1747.623,735.91828 1748.5121,735.28899 1748.9087,734.89246 L 1749.6353,734.18355 L 1749.5112,733.13793 C 1749.4456,732.57001 1749.5899,730.83397 1749.8302,729.27437 C 1750.0704,727.71476 1750.5077,725.88487 1750.7873,725.19813 L 1751.2835,723.93979 L 1754.6331,722.20295 L 1755.4129,717.61278 L 1754.5091,716.23041 C 1754.012,715.47176 1753.6052,714.45053 1753.6052,713.96189 L 1753.6052,713.07575 L 1751.9038,712.41998 L 1751.9038,709.69068 L 1753.2153,707.59939 L 1752.5063,705.72078 L 1749.7948,704.69286 L 1749.0681,700.13813 L 1748.058,699.39377 C 1747.5077,698.98686 1746.6134,697.95435 1746.073,697.10751 L 1745.0982,695.56566 L 1745.0982,693.40348 L 1745.9844,692.67682 C 1746.4693,692.27438 1747.0963,691.49588 1747.3845,690.95774 L 1747.9162,689.98295 L 1745.6299,687.09417 L 1746.0907,682.87615 L 1748.6605,680.94434 L 1735.5811,579.0384 L 1704.8853,583.80586 L 1698.7178,583.80586 L 1697.938,577.56744 z \"},\"mn6\":{\"name\":\"MN-6\",\"path\":\"M 1426.9213,308.55346 L 1402.2689,309.90039 L 1405.3704,312.43475 L 1383.7132,313.85257 L 1384.5462,329.2891 L 1388.4452,332.8691 L 1385.7336,336.85673 L 1386.2299,341.12791 L 1402.5525,339.88732 L 1402.5525,342.77613 L 1408.0998,342.77613 C 1408.6296,349.28543 1409.0149,355.36118 1409.3606,361.31805 L 1430.2722,359.92787 L 1430.3418,353.55158 L 1431.352,353.55158 L 1432.0609,350.73366 L 1435.4283,348.0437 L 1433.7865,346.48409 C 1434.54,345.43124 1437.7262,344.37839 1440.621,343.32554 L 1444.9986,344.49524 L 1445.4239,345.77128 L 1448.7203,344.03445 L 1451.3433,345.2396 L 1452.6194,349.51078 L 1464.7175,348.67521 L 1465.7873,363.33455 C 1469.0123,362.89988 1471.5414,363.9962 1474.4184,364.32702 L 1473.7271,354.08326 C 1472.6345,353.59861 1471.9428,352.71291 1471.7776,351.30078 L 1474.4361,348.64237 L 1473.2664,346.51564 L 1472.8765,337.92009 L 1461.5339,338.38088 L 1461.5339,331.52217 L 1439.5754,332.95772 L 1439.4159,324.52168 L 1428.2505,324.57484 L 1426.9213,308.55346 z \"},\"pa12\":{\"name\":\"PA-12\",\"path\":\"M 2074.6765,602.15928 L 2071.6284,588.33875 L 2073.254,588.29633 C 2078.1767,583.70627 2077.7965,585.68827 2080.2717,582.95652 L 2086.0952,582.71067 L 2088.3053,580.71052 L 2085.5331,578.32586 L 2086.7578,572.34725 L 2084.5248,570.69997 L 2080.2602,571.5109 C 2079.6866,572.76976 2078.7493,574.16733 2077.4925,574.41534 C 2077.538,572.43226 2077.1529,571.46905 2076.3372,570.0299 L 2076.9354,569.06187 L 2079.4773,569.06187 L 2080.7251,567.70076 L 2081.9489,570.0742 L 2085.8087,568.32523 L 2087.725,570.19613 L 2090.6167,570.09682 L 2091.5485,567.80727 L 2089.2529,563.88971 L 2095.1869,564.76127 L 2092.7481,565.71153 L 2092.7481,566.62756 L 2095.0166,567.4928 L 2094.7387,571.43145 L 2097.3622,571.8522 L 2097.6886,567.81719 L 2100.6372,565.37552 L 2100.7176,561.34323 L 2103.4874,559.87346 C 2104.2258,562.21953 2105.78,562.93392 2106.9263,564.46415 C 2106.9263,564.7427 2106.5259,565.12425 2106.0365,565.31205 L 2105.668,565.4722 C 2105.6236,567.64008 2105.3752,569.2188 2104.991,570.68414 L 2107.7696,570.88037 L 2109.6173,572.47865 L 2110.5746,571.09673 L 2112.1107,571.55338 L 2112.2227,570.24292 L 2111.2742,569.16044 L 2113.1166,566.49877 L 2112.0479,564.80839 L 2112.0305,560.69381 L 2113.4521,559.28778 L 2115.3446,560.07514 L 2117.6338,558.22441 L 2118.019,559.27452 C 2117.267,560.42392 2116.3563,561.6413 2116.6013,562.85868 L 2117.4519,567.41828 L 2123.5648,570.465 L 2124.3524,571.83184 L 2126.8044,571.19065 L 2129.191,565.64302 L 2130.9882,566.16927 C 2130.7102,563.2365 2131.2708,565.0628 2133.4857,556.48714 L 2124.4239,552.58362 L 2122.8059,556.01789 L 2117.163,556.01789 L 2117.9067,552.25412 L 2116.2006,551.99567 C 2114.8297,553.36701 2114.5919,554.37576 2114.1728,557.15215 L 2113.5727,557.56007 L 2111.9906,555.45077 C 2112.9751,553.33335 2113.2343,550.80801 2113.7203,548.46396 L 2109.0589,547.16643 L 2108.4179,546.2916 C 2108.0654,545.81043 2106.9552,544.9921 2105.9508,544.47308 L 2104.1245,543.52941 L 2102.2864,546.33461 L 2099.0943,543.97461 L 2097.8523,544.74226 L 2097.8523,542.47374 C 2099.0076,541.76801 2099.9364,540.33709 2100.6385,538.58889 L 2099.4937,534.44279 L 2101.8994,531.06423 L 2104.2267,531.04421 L 2102.9125,527.472 C 2104.1654,526.4772 2105.1011,526.57019 2108.167,526.5272 L 2107.387,532.19849 L 2110.8638,532.19849 L 2111.86,528.24021 L 2118.9381,528.17182 L 2112.5165,542.95644 L 2112.9081,545.52601 C 2114.2507,545.26394 2115.4974,546.43958 2116.7921,546.89637 L 2118.1679,545.7545 L 2118.937,546.99891 L 2120.4049,545.78063 L 2121.8022,547.86501 L 2121.8807,546.92389 L 2125.5881,550.5173 L 2126.9653,547.49467 C 2128.2876,547.36673 2129.3703,548.32906 2130.6447,549.26743 C 2131.2367,548.4602 2132.1187,548.0132 2132.9949,548.33438 L 2134.3546,545.40252 L 2136.6365,545.75686 L 2138.1674,538.00629 L 2133.0959,535.03413 L 2128.653,535.03413 C 2127.9209,535.93663 2127.128,536.92548 2126.1408,537.50597 L 2124.4983,535.0917 L 2126.4067,531.08964 L 2127.9101,532.33737 L 2129.6115,530.92535 C 2129.3602,529.48084 2129.9222,528.51076 2130.6876,527.40512 C 2133.0369,529.35315 2134.7084,530.11511 2136.9222,531.01262 L 2139.0369,529.68926 L 2139.7074,524.91501 L 2140.9059,523.99004 L 2143.2226,524.18335 L 2143.2226,526.5272 L 2140.5103,527.16001 L 2141.7985,529.4603 L 2145.7604,528.65164 L 2147.9291,529.28087 L 2147.7596,536.6454 L 2154.4498,537.93456 C 2155.2899,540.11322 2155.1989,541.7037 2155.1323,543.73532 L 2153.2392,545.82715 L 2152.7368,551.88488 L 2147.4955,553.46582 L 2146.5586,558.28641 L 2143.7974,558.72754 L 2142.0924,562.33848 L 2143.2005,564.40888 L 2140.2953,566.31241 L 2138.5577,565.64561 L 2132.3701,569.68316 L 2132.0026,572.2032 L 2130.2024,573.718 L 2131.4002,576.15529 L 2130.4967,578.11098 L 2125.0928,576.15098 L 2125.076,573.78968 C 2122.7374,573.09472 2120.2027,572.59588 2117.7661,572.46464 L 2116.1555,574.76407 L 2111.7227,573.16896 L 2112.4091,576.15098 L 2110.2366,579.83737 L 2112.4471,580.59931 L 2112.4226,582.46006 L 2111.2288,582.34533 L 2110.0841,585.2167 L 2108.3275,585.22958 L 2105.7471,590.85856 L 2103.24,587.76181 L 2099.8372,590.6008 L 2103.5236,593.99954 L 2103.5236,596.06877 L 2074.6765,602.15928 z \"},\"wa3\":{\"name\":\"WA-3\",\"path\":\"M 191.0061,115.69425 L 186.94758,117.34247 L 186.91214,118.72485 L 183.93471,118.61851 L 183.26125,120.44396 L 179.39768,119.04386 L 178.0862,119.62871 L 177.48362,123.38594 L 178.81283,124.98099 L 175.87085,136.96158 L 137.14659,127.26722 L 136.73897,128.54326 L 136.75669,129.8193 L 139.59234,133.22208 L 140.77976,131.18396 L 142.39253,132.51317 L 144.20026,131.00673 L 146.32699,133.7892 L 145.99026,134.90574 L 142.39253,135.93366 L 142.39253,137.40465 L 140.03541,138.14901 L 140.31897,139.37188 C 140.48003,140.04429 140.78289,141.54688 140.99243,142.70376 L 141.38234,144.79505 L 138.13907,147.68386 L 136.20729,147.24079 L 135.79966,148.44594 L 134.45273,147.61297 L 134.45273,146.53188 C 134.45273,145.93276 134.85131,144.43622 135.33887,143.21772 L 136.22501,141.00237 L 135.87055,136.05772 L 134.55907,142.49109 L 133.26531,148.90673 L 130.07521,157.89217 L 130.50055,157.89217 C 130.73438,157.89217 131.08308,157.50937 131.26263,157.04148 L 131.58164,156.19079 L 133.83243,156.19079 L 134.93125,158.67198 C 135.53433,160.03537 136.30656,161.33058 136.65036,161.54307 L 137.27065,161.91524 L 141.32917,160.00118 L 142.53432,161.20633 L 145.42313,160.10752 L 147.05362,160.74554 L 146.38016,162.5001 L 150.29689,164.13059 L 154.85164,164.13059 L 156.69481,166.96623 L 156.03907,170.65257 L 156.78342,171.62732 C 157.18835,172.16092 158.238,172.86825 159.12283,173.20465 L 160.7356,173.82495 L 164.12065,172.63752 L 168.35639,172.63752 L 176.88105,183.00534 L 178.0862,190.50207 L 177.20006,204.68029 L 175.62273,208.34891 L 178.97233,211.85801 L 181.80798,213.27584 C 183.36758,214.05833 185.52934,215.37735 186.61085,216.20009 L 188.57808,217.68881 L 191.73273,217.35207 L 192.12263,218.39772 C 192.33309,218.96716 192.78039,219.62515 193.11511,219.86871 L 193.71768,220.31178 L 195.70263,219.99277 C 196.79435,219.81805 198.70841,219.60548 199.9561,219.51425 C 201.20378,219.42303 203.24544,219.15479 204.49313,218.9294 C 205.74081,218.70401 207.78247,218.21641 209.03016,217.84831 L 211.29867,217.19257 L 213.49629,215.17217 L 216.11926,215.17217 L 216.11926,211.43267 L 222.46402,210.93643 L 227.21372,206.16901 L 229.44679,197.02405 L 233.07996,197.66207 L 237.91827,177.15683 L 243.00471,178.29109 L 243.74907,177.08594 L 242.36669,170.45762 C 243.8777,168.97385 245.25093,167.03082 246.76194,164.07742 L 246.08847,161.45445 L 249.20768,158.99099 L 246.74421,157.25415 L 246.60243,154.3299 L 233.1154,151.45881 L 230.82917,153.92227 L 229.85441,153.92227 C 229.32074,153.92111 228.08685,153.44538 227.12511,152.85891 C 226.16337,152.27243 224.50452,151.61092 223.43877,151.38792 L 215.8357,149.22574 C 214.07981,147.62231 212.55355,146.52407 210.43025,145.3799 L 210.99738,144.31653 L 211.56451,143.25317 C 208.06208,141.39018 204.55964,139.57311 201.7461,136.83752 L 197.35085,137.15653 L 194.67471,133.80693 L 196.44699,129.99653 L 192.90243,128.27742 L 192.19352,126.04435 L 193.15055,125.38861 L 190.59847,123.79356 C 190.81744,121.69443 191.21532,120.01027 192.06946,118.08683 L 191.1656,117.62604 L 191.0061,115.69425 z \"},\"wa2\":{\"name\":\"WA-2\",\"path\":\"M 224.64392,9.2158414 L 222.92481,9.9601978 C 221.98445,10.376454 221.22331,10.921849 221.22342,11.165346 C 221.22342,11.408844 221.86133,11.843619 222.64124,12.140099 L 224.05907,12.689505 L 224.05907,13.238911 C 224.05906,13.540864 223.54871,14.148768 222.92481,14.585841 L 221.79055,15.365643 L 224.05907,17.421485 L 224.05907,20.133069 L 225.91996,22.968712 L 225.31738,24.227029 C 224.98862,24.914709 224.57637,25.933482 224.3958,26.495544 L 224.07679,27.523465 L 225.19332,26.832277 L 225.19332,28.019702 L 226.36303,28.019702 L 225.19332,25.839801 L 226.68204,24.670098 C 227.50312,24.024249 228.37894,23.482673 228.63154,23.482673 C 228.88402,23.482672 229.81525,24.097043 230.68738,24.847326 L 232.26471,26.21198 L 230.29748,28.391881 L 230.29748,32.663069 L 232.53055,35.516435 L 231.3254,37.78495 L 228.86194,37.306435 L 228.68471,42.268811 L 227.33778,43.881583 L 225.19332,42.729603 L 225.19332,40.212969 L 223.20837,39.007821 L 221.75511,39.078712 C 220.95959,39.121167 220.00257,39.343713 219.62837,39.57495 C 219.25423,39.806188 218.95479,40.230534 218.95491,40.514257 L 218.95491,41.028217 L 220.53223,40.425643 L 221.34748,41.737128 L 220.72719,42.375148 C 220.3801,42.722276 220.08905,43.334305 220.08917,43.739801 L 220.08917,44.466435 L 223.26154,44.466435 L 223.93501,43.792969 C 224.30932,43.418666 224.64582,43.227257 224.66164,43.367623 C 224.67729,43.507989 224.77923,44.690207 224.89204,45.990593 L 225.08699,48.347722 L 229.09233,52.122672 L 230.22659,55.135543 L 228.02897,57.120494 L 225.86679,55.170989 L 225.19332,56.269801 L 223.01342,55.702672 L 221.91461,59.637127 L 222.53491,62.827226 L 226.32758,66.619899 L 226.32758,66.070494 C 226.32758,65.766586 226.05091,65.343633 225.70728,65.131187 C 225.36355,64.91874 224.71382,63.885324 224.27174,62.827226 L 223.47422,60.895444 L 225.97313,57.510395 L 227.9758,57.510395 L 229.07461,61.515741 L 228.06441,65.02485 L 229.25184,67.364256 C 229.90036,68.654644 230.82256,70.162202 231.30768,70.71386 L 232.19382,71.724058 L 231.14818,75.942077 L 227.46184,76.296533 L 227.46184,76.739602 C 227.46183,76.977388 228.12782,77.791127 228.95055,78.547325 L 230.45699,79.911978 L 231.40059,78.24977 L 235.64976,83.83356 L 238.80441,83.226137 L 240.77164,85.406038 L 238.23728,87.479602 L 238.18841,89.367914 C 244.76225,90.524873 249.38099,91.535196 254.68402,93.132049 C 254.12835,98.973855 252.69274,103.03549 251.18349,107.39253 L 253.5852,106.76198 L 256.95253,110.37742 L 256.95253,111.95475 L 259.25649,111.95475 L 263.47451,109.84574 L 268.82679,109.06594 L 271.69788,107.98485 L 271.69788,103.35921 L 274.9057,102.13633 L 274.05501,97.492968 L 275.84501,95.508018 L 273.47015,92.955938 L 273.39926,87.65683 L 276.50075,83.970493 L 276.14629,81.347523 L 277.65273,80.762671 C 278.47506,80.450019 279.87105,80.195543 280.77194,80.195543 L 282.42015,80.195543 L 285.30897,78.884058 L 284.82989,76.942578 C 284.82989,76.942578 287.5916,75.796376 287.71982,75.720262 C 286.10805,72.396962 284.83841,68.975911 284.74184,66.141385 L 282.88095,65.432474 L 284.75956,63.358909 L 284.03293,61.44485 L 285.98243,59.300395 L 285.90073,55.681776 L 289.9958,55.24188 L 291.13173,53.872936 L 296.36798,53.824058 L 296.72243,56.376137 L 300.44421,56.376137 L 301.60907,52.945943 L 299.35995,52.924488 L 298.24659,49.694652 L 305.14075,44.998118 L 302.65956,39.876237 L 304.00649,36.296237 L 302.88996,35.179702 L 302.88996,32.060494 L 304.36636,30.913364 L 303.73095,30.017525 L 301.11712,30.659837 L 299.93137,28.126039 L 300.35672,27.036368 L 224.64392,9.2158414 z M 209.13649,22.295247 L 208.00224,23.429504 L 209.49095,25.237227 L 210.62521,24.10297 L 209.13649,22.295247 z M 200.80679,22.348415 L 200.80679,23.021881 C 200.80679,23.394714 201.48573,24.408914 202.31323,25.272673 L 203.81966,26.849999 L 204.29818,26.548712 C 204.56239,26.385435 204.77669,26.00571 204.77669,25.698019 C 204.77669,25.39033 204.14222,24.514138 203.37659,23.748514 C 202.61097,22.982892 201.71774,22.348415 201.39164,22.348415 L 200.80679,22.348415 z M 223.49194,23.961188 L 222.07412,24.42198 L 221.70194,26.318316 L 223.49194,26.318316 L 223.49194,23.961188 z M 213.00006,24.049801 L 207.41738,28.303267 L 207.22243,30.908514 L 209.03016,32.025049 L 206.8857,31.706039 L 205.84006,29.756534 C 205.26363,28.680441 204.42828,27.579868 203.97917,27.328514 L 203.16392,26.885445 L 201.99422,27.062673 C 201.35387,27.16039 200.68304,27.399123 200.48778,27.594356 L 200.13332,27.948811 L 201.05491,29.437524 L 201.16125,34.222672 L 205.57422,38.511583 L 209.79224,40.40792 L 211.086,42.83594 L 214.70144,42.481484 L 214.75461,39.344554 L 217.20035,37.625445 L 216.6155,36.083564 L 217.82065,35.321484 L 217.11174,30.855346 L 217.64342,30.855346 C 217.93556,30.855346 218.66845,30.48793 219.27392,30.040098 L 220.37273,29.224851 L 215.32174,24.049801 L 213.00006,24.049801 z M 223.72233,28.19693 C 223.69723,28.201339 223.66808,28.215735 223.65144,28.232376 C 223.51834,28.365499 223.75492,29.010626 224.1654,29.66792 L 224.90976,30.873069 L 225.29966,29.685643 L 224.59075,28.83495 C 224.25316,28.428135 223.89806,28.166067 223.72233,28.19693 z M 220.51451,31.97188 L 218.95491,33.265643 L 218.95491,37.093762 L 221.09936,37.093762 L 221.54243,36.101286 C 221.78097,35.555426 221.90483,34.725999 221.826,34.258118 C 221.74716,33.790237 221.42302,33.092261 221.09936,32.698514 L 220.51451,31.97188 z M 223.26154,35.410098 L 222.81847,36.119009 C 222.575,36.502297 222.36245,36.987854 222.35768,37.200098 C 222.35292,37.412344 222.9319,37.672856 223.63372,37.78495 C 224.33554,37.897043 224.98667,37.93431 225.08699,37.873563 C 225.18731,37.812816 224.82566,37.244405 224.27174,36.597524 L 223.26154,35.410098 z M 219.59293,45.529801 L 218.90174,46.841286 C 218.51875,47.561803 217.11146,49.28167 215.76481,50.651682 C 214.41822,52.021695 213.15341,53.619194 212.96461,54.213959 L 212.62788,55.295048 L 213.6558,56.836929 C 214.22752,57.679439 214.85131,58.745414 215.03818,59.211781 L 215.37491,60.062474 L 217.53709,60.062474 L 217.43075,62.047424 C 217.37585,63.139147 217.22369,65.18081 217.07629,66.584454 L 216.81045,69.136533 L 218.44095,70.979701 L 218.10422,72.539305 L 221.50699,72.539305 L 221.57788,76.367424 L 223.70461,77.927028 L 226.32758,75.463563 L 226.32758,70.731583 L 225.12243,69.650493 C 224.45555,69.056284 223.54874,67.739979 223.11976,66.726236 L 222.33996,64.883068 L 221.11709,64.883068 L 220.8158,66.017325 C 220.65264,66.641167 220.33303,67.151583 220.08917,67.151583 L 219.6461,67.151583 L 219.8056,57.421781 L 217.44847,55.507722 L 217.90926,54.107623 L 219.46887,54.107623 L 220.65629,52.122672 L 222.30451,54.249405 L 225.19332,53.522771 L 225.19332,52.760692 C 225.19332,52.340817 224.61911,51.262133 223.91728,50.368118 L 222.64124,48.737623 L 222.64124,45.884256 L 219.59293,45.529801 z \"},\"fl18\":{\"name\":\"FL-18\",\"path\":\"M 2270.6671,1438.4156 L 2270.4012,1438.4511 L 2270.5962,1439.798 C 2270.5961,1439.7979 2270.3389,1439.8111 2270.2772,1440.0993 C 2270.2154,1440.3873 2270.1365,1440.5933 2270.3835,1440.7373 C 2270.6304,1440.8813 2270.7734,1440.8614 2270.7734,1440.8614 L 2270.7911,1441.269 L 2268.7709,1442.6903 L 2269.4514,1443.9771 L 2268.8345,1444.3211 L 2268.1326,1443.1123 L 2267.5479,1443.4489 L 2266.13,1440.8614 L 2265.8465,1441.0031 L 2267.282,1443.6261 L 2266.9098,1443.8565 L 2266.8566,1446.834 L 2262.9931,1449.4924 L 2266.0059,1453.7104 L 2266.3604,1450.9279 L 2269.1251,1449.1202 L 2270.8265,1449.7759 L 2270.8265,1453.1433 L 2271.695,1453.6749 C 2271.5206,1449.6144 2271.6832,1445.5188 2271.181,1441.4817 L 2270.6671,1438.4156 z M 2263.1703,1461.7565 L 2262.7981,1463.9896 L 2260.6182,1463.9896 L 2260.6182,1466.0809 L 2263.4539,1467.3746 L 2263.4539,1470.9369 L 2260.2283,1470.2989 L 2263.1703,1479.2843 L 2263.9855,1477.6007 C 2264.432,1476.6695 2264.9986,1475.8992 2265.2616,1475.8993 C 2265.5246,1475.8992 2265.9737,1475.3076 2266.2541,1474.5701 L 2266.768,1473.2231 L 2263.2589,1466.0986 L 2264.5704,1462.6427 L 2263.1703,1461.7565 z M 2272.971,1462.3059 L 2271.9608,1462.9262 L 2271.9608,1465.691 L 2272.4925,1465.691 C 2272.7859,1465.6908 2273.1484,1465.488 2273.3077,1465.2302 L 2273.609,1464.7516 L 2272.971,1462.3059 z M 2272.1026,1470.1217 L 2269.9758,1470.5293 L 2269.4087,1474.4815 L 2267.4415,1478.0969 L 2264.9603,1478.4514 L 2264.4995,1479.8692 L 2266.8566,1479.8692 L 2266.8566,1482.8112 L 2268.1504,1482.3681 L 2269.7632,1478.1678 C 2270.6532,1475.8507 2271.5508,1473.0875 2271.7481,1472.0357 L 2272.1026,1470.1217 z M 2265.7933,1483.272 L 2265.3325,1483.9809 C 2265.0801,1484.3706 2264.8717,1485.3278 2264.8717,1486.1076 L 2264.8717,1487.5254 L 2263.5956,1487.7204 C 2262.8938,1487.82 2262.3196,1487.9907 2262.3196,1488.1103 C 2262.3196,1488.2299 2262.6133,1488.9818 2262.9754,1489.7762 C 2263.3373,1490.5707 2263.7958,1491.2118 2264.0033,1491.2118 C 2264.2107,1491.2116 2264.9203,1490.6375 2265.5629,1489.9357 C 2266.2052,1489.2337 2266.9319,1488.0217 2267.1756,1487.2419 C 2267.4193,1486.4619 2267.6356,1485.2498 2267.6719,1484.548 L 2267.7428,1483.272 L 2265.7933,1483.272 z M 2246.6172,1509.8738 L 2245.1994,1511.5752 L 2245.5716,1512.1778 C 2245.7728,1512.5033 2246.1899,1512.7627 2246.4932,1512.7627 C 2246.7965,1512.7627 2247.1917,1512.3654 2247.3793,1511.8765 L 2247.716,1510.9904 L 2246.6172,1509.8738 z M 2237.3659,1517.0693 L 2235.5228,1518.8947 L 2236.338,1520.2062 L 2238.5356,1518.239 L 2237.3659,1517.0693 z M 2231.6415,1521.181 L 2230.011,1522.5279 L 2230.3123,1523.0419 C 2230.4832,1523.3185 2230.8368,1523.5381 2231.0921,1523.5381 C 2231.3475,1523.5381 2231.8611,1523.1807 2232.2263,1522.7406 L 2232.8821,1521.9431 L 2231.6415,1521.181 z M 2219.7141,1521.1987 L 2216.6657,1521.5532 L 2216.6657,1522.652 C 2217.6917,1523.2119 2218.7397,1523.7164 2219.8381,1524.1052 C 2220.0201,1524.1098 2220.3323,1523.9476 2220.5293,1523.7508 L 2220.8838,1523.3963 L 2219.7141,1521.1987 z M 2213.0503,1522.2975 L 2211.8275,1523.0596 L 2212.4123,1523.9812 L 2210.64,1524.6724 L 2211.3489,1525.8066 L 2209.0273,1525.8066 L 2207.6094,1528.0751 L 2205.0042,1528.0751 L 2204.632,1529.0322 C 2204.4317,1529.5542 2203.7983,1530.5112 2203.2142,1531.1589 C 2202.6299,1531.8066 2201.7292,1532.7837 2201.2115,1533.3388 C 2200.6939,1533.8939 2199.5632,1534.6956 2198.6949,1535.1288 C 2197.8265,1535.5619 2196.3689,1536.097 2195.4516,1536.2985 L 2193.7679,1536.653 L 2192.4387,1538.2657 L 2193.1477,1540.1089 L 2194.1224,1539.6835 C 2194.6657,1539.4506 2196.2633,1538.878 2197.6669,1538.4075 C 2199.0706,1537.9371 2200.6018,1537.2387 2201.0697,1536.8656 C 2201.5376,1536.4925 2202.3445,1536.0372 2202.8597,1535.8554 C 2203.3747,1535.6737 2205.0974,1534.5877 2206.6879,1533.4451 L 2209.5766,1531.3716 L 2209.5766,1529.174 L 2211.9869,1530.4677 L 2214.5922,1529.2803 L 2215.2302,1530.9462 L 2217.0734,1530.0069 C 2218.0928,1529.4905 2219.3608,1528.6993 2219.8913,1528.2346 L 2220.8661,1527.3839 L 2219.1824,1524.8142 L 2215.1061,1524.1584 L 2213.0503,1522.2975 z M 2174.4501,1539.5417 L 2173.9362,1540.1798 C 2173.6509,1540.5375 2173.2474,1541.4097 2173.0323,1542.1116 L 2172.6424,1543.3876 L 2173.564,1543.3876 C 2174.0734,1543.3876 2174.981,1543.1257 2175.5844,1542.8027 L 2176.6832,1542.2179 L 2176.6832,1540.1266 L 2174.4501,1539.5417 z \"},\"fl17\":{\"name\":\"FL-17\",\"path\":\"M 2267.6187,1432.1949 L 2262.2487,1434.4989 L 2265.7719,1440.8044 L 2266.13,1440.7123 L 2267.4947,1443.0058 C 2267.615,1443.0058 2267.8447,1442.8834 2268.115,1442.7045 L 2268.8593,1444.1223 L 2269.3024,1443.9274 L 2268.4694,1442.4564 C 2268.797,1442.206 2269.1535,1441.8963 2269.4974,1441.5526 L 2269.4087,1440.0284 L 2269.4087,1436.218 C 2269.3962,1436.2033 2269.3857,1436.1785 2269.3733,1436.1648 C 2268.9297,1435.6724 2268.5628,1434.9067 2268.558,1434.4635 C 2268.5533,1434.0201 2268.3341,1433.3229 2268.0795,1432.9216 L 2267.6187,1432.1949 z \"},\"ca20\":{\"name\":\"CA-20\",\"path\":\"M 153.34521,756.8687 L 132.75135,770.74565 L 144.4661,789.15959 L 142.29092,799.43176 L 139.27333,799.29701 L 138.03273,800.16546 L 137.34154,803.74546 L 138.15679,804.43662 C 138.61146,804.81393 138.98976,805.43034 138.98976,805.8013 C 138.98976,806.17214 138.46712,807.02216 137.83778,807.69761 L 136.70352,808.9382 L 136.96937,812.35872 L 137.55422,812.42961 C 137.87776,812.46659 138.33047,812.46659 138.56441,812.42961 C 138.79836,812.39269 139.02464,812.67773 139.06065,813.06763 C 139.09661,813.45753 139.11197,814.35848 139.15399,814.70522 C 141.24528,817.39318 144.11165,819.79043 145.4763,822.4784 L 148.89679,823.45318 L 150.04877,827.38763 L 151.9652,827.43607 L 153.84144,830.34731 L 152.35273,832.73991 L 153.73511,834.13998 L 153.68666,835.74212 L 155.57828,836.17813 L 154.74531,841.22909 C 157.64476,843.32418 160.01746,846.04333 162.5256,848.58407 L 168.33867,849.77147 L 169.02986,852.3413 L 167.16897,857.21503 L 168.35639,858.40248 L 170.81986,857.091 L 171.49333,857.64038 C 171.86332,857.94345 173.31523,858.49175 174.71887,858.86328 L 177.27095,859.53674 L 179.2559,861.30902 L 179.2559,863.68387 L 184.25372,866.83852 L 185.60065,868.66394 C 186.34404,869.66765 187.43727,871.5863 188.02867,872.93516 L 189.10976,875.39859 C 193.22026,877.46033 197.08855,878.6986 201.58659,880.1306 L 203.23481,883.00169 L 208.09085,885.16387 L 209.296,887.78684 L 210.11125,887.78684 C 210.56353,887.78684 211.34019,887.39087 211.83035,886.9007 L 212.71649,886.01456 L 212.71649,885.14612 L 212.71649,884.29543 L 209.42006,883.03714 L 209.03016,881.01674 C 208.81822,879.90506 208.60098,877.64198 208.55164,875.98347 L 208.46303,872.9706 L 206.76164,872.01357 L 205.00709,873.32506 L 205.06026,880.1306 L 202.72085,880.46731 L 201.44481,877.68486 L 193.43412,875.69991 L 193.43412,871.83635 L 192.26441,869.63872 L 190.59729,869.63872 L 191.76818,866.23595 L 196.03936,866.23595 L 197.20907,867.40565 L 199.06996,866.69674 L 199.42441,864.62315 C 199.61582,863.48362 199.79124,862.2944 199.81431,861.98248 C 199.83734,861.67056 199.55596,860.69833 199.19402,859.82031 L 198.53828,858.22526 L 198.53828,853.26288 L 200.24675,846.33682 L 186.62857,843.37357 L 192.97332,813.40434 L 195.61402,814.06011 L 197.27996,806.12031 L 194.47976,806.12031 L 195.77352,800.44902 L 193.04422,800.44902 L 188.4363,803.7809 L 188.04639,803.391 C 187.83145,803.17776 186.98016,803.0011 186.15006,803.0011 C 185.32001,803.0011 184.51602,803.16245 184.36006,803.35555 L 184.07649,803.71001 L 175.46323,801.93773 L 178.65332,791.37496 L 184.236,791.37496 L 184.94491,788.57476 L 187.26659,787.33417 L 188.89709,788.6811 L 188.89709,790.80783 L 191.27194,790.80783 L 192.54798,794.2106 L 195.41907,794.15741 L 198.05386,789.31912 C 197.24215,787.52126 196.57578,786.45002 195.32809,784.94276 L 192.34593,786.31924 L 188.47529,784.7171 L 187.74511,782.77939 L 187.16026,780.61721 C 185.783,779.76493 185.56836,779.59088 183.17381,779.36839 L 181.54804,784.52807 L 183.79293,786.2708 L 183.79293,788.53932 L 178.68877,788.53932 L 178.68877,786.69728 L 164.56963,783.51195 L 163.30424,784.04363 L 161.64419,782.99206 L 156.57075,781.27298 L 158.18352,774.85734 L 156.09224,771.24189 L 155.596,759.70434 L 153.34521,756.8687 z \"},\"pa10\":{\"name\":\"PA-10\",\"path\":\"M 2275.3459,409.67959 L 2206.617,427.27831 L 2211.278,441.15524 C 2209.893,442.25895 2208.3398,443.12544 2206.8296,444.06177 C 2206.8337,445.31137 2207.1213,446.55685 2207.4145,447.78355 L 2212.9794,446.43662 L 2214.5745,450.2293 L 2217.162,450.24702 L 2220.8838,456.44999 L 2220.4939,458.04504 L 2218.2608,455.65246 L 2216.0455,456.16643 L 2215.2479,453.93336 L 2209.0627,455.19167 L 2207.5031,459.87048 L 2202.8243,460.79207 L 2202.5407,462.40484 L 2201.0697,463.00742 L 2201.0697,465.8785 L 2199.3683,466.53425 L 2199.3683,468.05841 L 2206.9714,469.84841 L 2207.7335,472.18781 L 2210.2501,471.83336 L 2211.916,473.87147 L 2210.5514,474.73989 L 2210.6578,476.21088 L 2212.1465,475.04118 L 2215.0884,473.18029 L 2216.9493,472.55999 L 2216.9493,472.04603 C 2216.9493,471.7583 2217.4597,471.00392 2218.0836,470.38009 L 2219.2178,469.24583 L 2220.9192,469.24583 L 2220.9192,471.39029 L 2223.7549,473.25118 L 2223.7549,476.01593 L 2220.3521,477.78821 L 2220.3521,478.88702 L 2217.5873,478.88702 L 2217.2329,483.05187 L 2215.2479,483.65444 C 2214.1562,483.99268 2212.6888,484.6605 2211.9869,485.12543 L 2210.7109,485.9584 L 2210.7109,486.61415 C 2209.183,491.82085 2206.353,496.57201 2203.9585,501.41266 L 2206.2093,510.06137 L 2214.9644,509.37019 L 2217.2329,508.04098 L 2220.9192,508.20048 L 2222.9219,510.02593 L 2226.0234,508.94484 L 2226.0234,510.64623 L 2228.3273,510.64623 L 2228.9831,508.94484 L 2229.7451,508.94484 C 2230.1641,508.94484 2230.7009,508.62582 2230.9503,508.23593 C 2231.1997,507.84603 2232.5943,506.98158 2234.0341,506.30415 L 2236.6393,505.06355 L 2248.6199,495.01474 C 2248.2573,493.92763 2247.5702,492.96548 2246.9185,492.00187 L 2242.6296,493.3488 C 2241.6931,491.2571 2241.2182,490.51199 2240.0952,489.16623 L 2239.9889,485.23177 L 2236.8697,483.40633 L 2236.5152,480.87197 L 2233.6442,480.53524 L 2231.5883,474.75761 L 2233.4138,473.80058 C 2235.7495,470.24587 2237.3535,466.24292 2239.3509,462.49345 L 2244.5259,461.83771 L 2245.3589,468.20019 L 2249.1339,465.3291 L 2249.701,465.89623 L 2253.3696,461.27058 L 2255.7267,462.01494 L 2259.7675,457.42474 L 2263.4539,458.02732 L 2263.4539,460.7389 L 2264.5881,460.7389 L 2264.5881,456.9994 L 2265.7756,455.81197 L 2264.0033,454.3587 L 2267.4592,450.81415 L 2270.6316,444.57573 L 2273.3786,445.14286 L 2273.6622,444.50484 C 2273.6622,444.28366 2273.2752,443.67208 2272.7938,443.14019 L 2271.9077,442.16544 L 2273.5736,441.52742 L 2277.5966,446.43662 L 2273.095,449.8394 C 2273.7136,450.66199 2274.5314,451.23076 2275.4522,451.73573 L 2274.0875,453.36623 L 2271.9608,453.36623 L 2271.9785,454.07514 C 2271.9884,454.46504 2272.3439,455.23065 2272.7583,455.77652 C 2273.1727,456.32239 2273.7691,456.76899 2274.0875,456.769 L 2274.6547,456.769 L 2275.9484,461.87316 L 2278.1815,461.87316 L 2278.9613,460.02999 C 2279.385,459.01625 2280.2694,457.6087 2280.769,457.19435 L 2298.6158,450.76098 L 2298.6158,457.33613 L 2302.4085,457.33613 L 2303.4364,458.47039 C 2304.001,459.09423 2304.743,459.59577 2305.0847,459.58692 L 2305.7049,459.5692 L 2309.5685,453.189 L 2309.8521,446.47207 L 2310.5787,444.66435 C 2310.9776,443.67592 2311.6414,442.66298 2312.0497,442.41355 L 2312.7941,441.97049 L 2312.7941,440.46405 L 2315.1867,439.82603 L 2313.6448,438.17781 L 2312.1738,437.11445 L 2305.2796,437.41573 L 2303.6314,435.78524 L 2301.0439,436.44098 L 2297.4816,432.4888 C 2297.4807,432.27885 2296.7022,431.58847 2295.7625,430.96464 L 2294.0611,429.83039 L 2294.7523,426.65801 L 2293.4762,425.13385 L 2292.6078,420.1892 L 2290.1089,419.00177 L 2290.1089,417.56623 L 2288.6379,416.09524 L 2284.4376,415.599 L 2283.0552,416.50286 L 2280.6804,414.23435 L 2279.6879,411.96583 L 2277.6321,411.54049 C 2277.6321,411.3036 2277.1249,410.78018 2276.4978,410.38851 L 2275.3459,409.67959 z \"},\"ny14\":{\"name\":\"NY-14\",\"path\":\"M 2358.1904,464.84616 L 2358.8492,465.17559 L 2358.5528,465.86738 L 2359.1787,465.96622 L 2360.3646,466.59213 L 2360.8588,465.86738 L 2361.6494,466.39447 L 2360.5623,467.54747 L 2359.4752,467.44864 L 2358.4539,469.82053 L 2357.8609,466.36153 L 2358.1904,464.84616 z \"},\"ny8\":{\"name\":\"NY-8\",\"path\":\"M 2357.615,461.41237 L 2357.0478,466.25068 L 2357.0301,468.96227 L 2356.9947,472.15237 C 2356.9946,472.15235 2356.8938,472.60831 2356.9238,472.96761 C 2356.9536,473.32692 2357.0833,473.80058 2357.0833,473.80058 L 2357.3137,474.10187 L 2358.4834,474.8285 L 2358.8201,475.14751 L 2358.8378,476.17543 L 2358.9974,476.19316 L 2359.1746,475.99821 L 2359.4758,476.40583 C 2359.476,476.40584 2359.826,477.61098 2359.7063,477.61098 C 2359.5866,477.61097 2358.3416,477.69959 2358.3416,477.69959 L 2358.0935,477.43375 L 2357.9694,477.96543 L 2358.1644,478.4085 L 2361.6026,478.23128 L 2361.3368,477.59326 C 2361.4815,477.46261 2361.5671,477.32354 2361.5671,477.20336 C 2361.5671,476.96624 2361.1833,476.44427 2360.7164,476.05138 C 2360.71,476.046 2360.7051,476.03898 2360.6987,476.03365 L 2360.2734,474.97029 L 2357.4023,473.97781 L 2357.5795,472.04603 L 2357.7568,471.53207 L 2357.7745,471.51435 L 2357.7745,471.49662 L 2358.253,470.14969 L 2357.7745,466.67603 L 2358.1821,461.67821 L 2357.615,461.41237 z \"},\"ca49\":{\"name\":\"CA-49\",\"path\":\"M 301.26539,1042.2656 L 297.45408,1037.3657 L 289.97831,1038.6444 L 289.4105,1036.4732 L 287.05737,1034.9878 L 284.70424,1033.5023 L 282.22095,1035.2417 L 280.01057,1035.2417 L 277.93629,1037.1189 L 277.93629,1034.6745 L 278.43877,1034.6745 L 283.47723,1029.4998 L 278.701,1024.1751 L 271.66073,1027.3527 L 267.43779,1025.0614 L 264.1832,1025.3893 L 258.11169,1012.4677 L 254.69905,1009.2799 L 255.92926,1005.751 L 258.47811,1005.751 L 260.3553,1003.6767 L 260.3553,1001.4072 L 266.71168,994.38322 L 265.30293,992.68574 L 267.39479,990.37424 L 269.80871,990.9801 L 272.89333,987.76051 L 272.10377,984.61482 L 275.95134,985.20611 L 278.29012,983.15441 L 280.04634,985.13425 L 281.77065,985.6179 L 281.19224,989.29465 L 282.50962,990.88199 L 279.07055,992.0809 C 279.33522,993.55538 279.59989,994.37465 280.30133,995.41233 L 278.53439,998.82928 C 276.64311,999.74428 274.27704,1000.5874 272.43415,1001.5978 L 276.92349,1005.9694 L 278.62229,1004.0561 L 281.62263,1004.9003 L 281.95877,1012.0752 L 303.45708,1016.1049 L 303.45708,1019.3633 L 308.25312,1024.0177 L 307.94449,1027.5854 L 305.54877,1032.4032 C 307.03532,1033.4515 308.37629,1034.3542 309.79004,1034.6745 L 309.78561,1035.9253 L 303.45708,1038.5865 L 303.45708,1041.3587 C 302.72705,1041.6845 302.0458,1042.1181 301.26539,1042.2656 z \"},\"nc3\":{\"name\":\"NC-3\",\"path\":\"M 2338.6162,745.18942 L 2308.0267,753.14691 C 2308.0266,753.35386 2308.9185,754.24697 2309.728,754.77741 C 2310.5376,755.30784 2312.7264,756.25313 2314.6018,756.8687 C 2318.1522,757.40123 2319.9607,758.35418 2320.8579,759.52711 L 2322.7897,758.94229 L 2322.9138,760.4487 L 2324.4379,760.46645 L 2324.3848,761.42348 L 2328.0534,762.3982 L 2326.2988,764.11734 L 2330.889,764.86169 L 2331.8461,765.92506 C 2332.3766,766.5113 2333.1304,766.98843 2333.512,766.98843 C 2333.8933,766.98843 2334.4929,767.33086 2334.8412,767.75048 L 2335.4792,768.51259 L 2344.2697,768.33536 L 2348.3459,772.65971 L 2349.6929,772.65971 L 2348.8776,771.10011 C 2348.4282,770.24233 2347.589,769.02998 2347.0168,768.40625 C 2346.4444,767.78241 2345.2693,766.23239 2344.4115,764.96803 C 2343.5537,763.70356 2342.8519,762.49127 2342.8519,762.27417 C 2342.8519,762.05696 2342.4628,761.43754 2341.9835,760.89179 C 2341.5042,760.34593 2340.4834,759.09008 2339.715,758.10929 L 2338.3149,756.33701 L 2338.3149,754.08625 L 2333.8133,753.37734 L 2331.4739,750.8607 L 2331.8106,749.12387 L 2338.5984,749.12387 L 2339.715,751.67595 L 2341.0265,751.67595 L 2341.9835,753.71404 C 2342.5136,754.83112 2343.0752,755.61761 2343.2241,755.46863 C 2343.3731,755.31958 2342.4188,753.05867 2341.115,750.45305 C 2340.2966,748.79318 2339.5594,746.73297 2338.6162,745.18942 z M 2344.2697,756.69147 L 2343.8976,759.15496 L 2346.2547,760.8209 L 2346.2547,761.51206 C 2346.2547,761.89986 2346.5591,762.52535 2346.9281,762.89444 C 2347.2973,763.26358 2347.7076,763.44416 2347.8497,763.30209 C 2347.9918,763.15997 2347.2409,761.61488 2346.1838,759.86387 L 2344.2697,756.69147 z M 2350.8803,767.55556 L 2351.855,770.24942 C 2352.3891,771.73104 2353.1915,773.51744 2353.6451,774.21932 L 2354.4603,775.49536 L 2355.2401,775.49536 C 2355.6617,775.49536 2356.6567,776.0191 2357.4554,776.64731 C 2358.2541,777.27552 2359.0219,777.65073 2359.1746,777.498 C 2359.3273,777.34527 2358.2195,775.80909 2356.6934,774.07754 C 2355.1673,772.34586 2353.4005,770.17212 2352.7766,769.25694 C 2352.1528,768.34165 2351.463,767.58533 2351.2525,767.57325 L 2350.8803,767.55556 z M 2348.984,779.37662 L 2347.4776,779.74882 C 2346.6523,779.95594 2345.6577,780.39529 2345.2622,780.72355 L 2344.5356,781.32612 L 2345.723,782.74394 L 2344.376,785.70367 L 2341.6645,785.70367 L 2340.0517,781.87556 L 2338.2263,781.16664 L 2335.5855,781.82236 C 2334.1264,782.1792 2332.0339,782.92247 2330.9422,783.4706 C 2329.8505,784.01879 2327.8221,785.50376 2326.4406,786.78473 L 2324.3139,789.15959 L 2326.3166,792.34968 L 2325.0937,797.20572 L 2326.7419,803.0011 L 2304.7125,808.1584 L 2298.3323,812.71318 L 2288.5316,809.89523 L 2287.5568,812.34097 L 2289.2582,812.89041 L 2289.4,815.42473 L 2290.0558,815.65516 C 2290.4127,815.77414 2291.0118,816.18588 2291.4027,816.57674 C 2291.7934,816.96755 2292.6519,817.57716 2293.299,817.92367 L 2294.4687,818.54394 L 2296.8436,816.878 L 2299.3248,820.95424 L 2296.8968,823.50632 L 2301.1679,826.55463 L 2302.7984,823.13417 L 2307.7608,823.13417 L 2319.1743,826.02295 L 2320.3794,824.92414 C 2321.0402,824.32032 2322.2253,823.63664 2323.0024,823.39998 C 2323.7794,823.16326 2325.5586,822.8907 2326.9546,822.79741 L 2329.4889,822.63793 L 2330.6941,823.63041 L 2332.9449,823.06328 C 2334.1819,822.74795 2336.0889,822.37904 2337.1806,822.24803 C 2338.2723,822.11708 2340.0838,822.01188 2341.2037,822.01761 L 2343.2418,822.03536 L 2347.3535,818.27813 L 2346.68,815.6906 L 2349.0903,815.07028 L 2349.0903,810.72823 L 2350.2246,810.01932 L 2350.2246,807.21912 L 2351.9259,806.56335 L 2351.9259,804.98605 L 2354.2299,802.68209 L 2355.3465,803.35555 L 2357.5795,802.64664 L 2359.3873,798.83622 L 2358.0935,796.40823 L 2359.3695,794.86632 L 2357.0301,790.02803 L 2357.0301,787.54684 L 2351.855,780.88308 L 2348.984,779.37662 z M 2361.0709,779.78427 C 2360.9543,779.89248 2361.0576,780.44781 2361.3013,781.00711 C 2361.545,781.56641 2361.7135,782.40015 2361.6735,782.86803 L 2361.6026,783.71872 L 2361.9216,782.97437 L 2362.2583,782.23001 L 2363.0736,783.39971 C 2363.5258,784.04539 2364.1519,784.56942 2364.456,784.56942 L 2365.0053,784.56942 L 2363.1445,782.08823 C 2362.1209,780.71884 2361.1874,779.676 2361.0709,779.78427 z M 2357.6327,780.03239 L 2355.0451,780.12097 L 2355.7541,780.40454 C 2356.14,780.5605 2357.2247,781.3699 2358.1644,782.19457 L 2359.8657,783.68328 L 2359.8657,785.61503 C 2360.5752,785.83718 2361.3014,785.91538 2362.0279,785.95179 C 2362.1242,785.88697 2361.8336,784.95756 2361.3899,783.89595 L 2360.5924,781.96414 L 2357.6327,780.03239 z M 2368.9576,789.39001 L 2368.9576,790.2584 C 2368.9523,790.73484 2369.3439,791.70713 2369.8437,792.42058 L 2370.7653,793.71437 L 2371.3501,793.12949 L 2370.1627,791.25087 L 2368.9576,789.39001 z M 2373.6895,800.6085 C 2373.5414,800.75663 2373.6085,802.24863 2373.8313,803.92268 L 2374.2389,806.971 L 2374.4871,806.22664 C 2374.6243,805.81723 2374.557,804.32523 2374.3453,802.91246 C 2374.1334,801.49974 2373.8377,800.46036 2373.6895,800.6085 z M 2374.7352,808.10526 L 2374.7706,812.64229 L 2375.0187,811.36625 C 2375.1544,810.6608 2375.143,809.63991 2375.001,809.09773 L 2374.7352,808.10526 z M 2250.3213,812.78407 C 2246.8641,816.00632 2243.0707,819.01857 2239.0673,821.94671 C 2240.9342,822.41584 2242.1708,826.16207 2243.5335,828.52189 L 2247.3793,829.86882 L 2245.3235,839.86446 L 2245.5184,841.90256 C 2245.6217,843.02553 2245.8812,844.23725 2246.1033,844.59642 L 2246.5109,845.25219 L 2245.1817,845.76612 C 2244.4482,846.04498 2243.5056,846.68362 2243.0904,847.18394 C 2242.6751,847.68432 2242.0109,848.08783 2241.6194,848.08783 C 2241.2279,848.08783 2240.5693,848.48811 2240.1661,848.97397 L 2239.4395,849.86011 L 2242.3283,852.74889 L 2245.0399,853.24513 L 2247.7515,853.75912 L 2251.296,857.72902 L 2255.4077,857.69357 L 2256.5597,859.51899 L 2264.9249,860.63555 L 2269.5505,856.43523 L 2271.9608,861.02545 L 2271.2519,864.53456 L 2269.6923,864.53456 L 2269.6923,865.13714 C 2269.6923,865.46959 2269.9541,866.2351 2270.2772,866.83852 L 2270.862,867.93734 L 2272.5279,867.93734 L 2272.5279,870.1881 L 2269.6923,872.03127 L 2269.6923,874.24664 L 2270.9683,873.85674 C 2271.6701,873.63891 2272.4557,873.11403 2272.7051,872.68704 L 2273.1482,871.90724 L 2277.508,871.90724 L 2278.3055,877.29496 L 2287.2556,890.95919 L 2290.3925,892.18209 L 2295.4966,887.00704 C 2298.3039,884.16317 2301.494,880.8031 2302.5857,879.54572 L 2304.5707,877.25951 L 2307.7431,875.20367 C 2309.4894,874.07168 2312.6794,872.32935 2314.8322,871.32236 C 2316.9849,870.31536 2320.1526,868.98533 2321.8681,868.38038 L 2324.9873,867.28156 L 2332.3954,867.29932 L 2335.4792,868.46902 L 2335.4792,870.70209 L 2336.4717,871.32236 L 2337.0566,866.98031 L 2340.991,857.16189 L 2339.0061,857.16189 L 2338.3149,855.35417 L 2340.2644,852.05773 L 2341.6467,852.05773 L 2342.0012,850.78169 C 2342.1978,850.07987 2342.6326,848.92832 2342.976,848.22961 L 2343.5962,846.97127 L 2341.6113,844.75595 L 2342.2848,843.67483 L 2341.3809,843.32038 C 2340.8893,843.13175 2340.0582,842.99099 2339.5377,843.00137 L 2338.5984,843.01912 L 2339.8745,844.08248 C 2340.5763,844.66793 2341.1505,845.39431 2341.1505,845.69523 L 2341.1505,846.24466 L 2337.6946,846.93582 L 2335.4792,845.55345 L 2333.7247,841.84942 L 2332.6436,841.84942 L 2332.6436,845.89021 L 2326.5469,848.67265 L 2324.6861,847.96374 L 2323.9949,845.19899 L 2324.8278,844.24196 C 2325.2804,843.70869 2326.0798,842.3325 2326.6001,841.19364 L 2327.5394,839.12011 L 2327.5394,837.50731 C 2327.5441,836.61867 2327.9229,834.87362 2328.3724,833.62605 C 2328.8219,832.37837 2329.2094,830.7963 2329.2231,830.11694 L 2329.2408,828.89404 L 2327.3799,827.01543 L 2325.0405,827.31674 C 2323.7609,827.48064 2322.5456,827.61982 2322.3289,827.63575 L 2321.939,827.6712 L 2322.1517,834.03364 L 2312.1738,837.86176 C 2304.7212,834.15813 2300.4773,832.38563 2291.4204,829.60295 L 2291.5799,824.58744 L 2288.2657,823.09872 L 2288.8861,819.25285 L 2287.1315,818.57939 L 2285.0402,820.54664 L 2283.6047,819.21741 L 2281.7615,820.13899 L 2280.8754,823.7013 L 2277.7562,823.7013 L 2276.9941,818.8807 L 2274.4774,817.01978 C 2273.0918,815.99634 2271.6089,815.02179 2271.181,814.85761 L 2270.4012,814.55635 L 2269.7632,816.02731 L 2270.4189,816.82486 L 2267.1934,821.02513 L 2266.1832,821.291 C 2265.6215,821.43789 2265.1552,821.74209 2265.1552,821.94671 C 2265.1552,822.15133 2266.06,822.79106 2267.1579,823.38229 L 2269.1429,824.46335 L 2272.3507,821.39734 L 2273.8749,823.61265 C 2274.7182,824.8296 2275.3788,826.04893 2275.3281,826.32427 C 2275.2774,826.59955 2275.2557,827.12783 2275.2927,827.49397 C 2275.3296,827.85988 2276.027,828.9444 2276.8346,829.90427 L 2278.3055,831.6411 L 2280.5032,831.6411 L 2280.1842,828.57503 L 2283.3743,827.42308 L 2283.8882,828.25602 C 2284.177,828.71256 2284.4329,829.68927 2284.4376,830.4182 L 2284.4376,831.74744 L 2287.7518,832.98803 L 2286.1745,836.03635 L 2294.3624,840.13028 L 2297.8183,840.14803 L 2300.0337,842.18612 C 2301.2519,843.30189 2302.7337,844.46394 2303.3124,844.77364 L 2304.358,845.34077 L 2301.4515,849.1512 L 2301.4515,850.00189 C 2301.4515,850.47215 2301.6706,850.99346 2301.93,851.15384 L 2302.3908,851.43741 L 2303.8263,859.41265 L 2306.0949,858.20751 L 2305.3505,855.30097 L 2311.6421,855.93899 L 2313.0776,852.90842 L 2316.764,852.55397 C 2316.7626,855.19186 2316.9692,856.52245 2317.4729,858.86328 L 2314.0701,858.86328 L 2312.6523,860.56466 L 2313.4853,861.8584 L 2312.7764,863.68387 L 2302.6744,867.47654 L 2300.0691,866.98031 L 2300.6008,865.40295 L 2295.4966,860.56466 L 2292.3243,860.72414 L 2290.3216,862.47872 L 2286.139,861.50394 L 2286.139,857.091 L 2284.9516,854.85793 L 2286.3694,850.92347 L 2287.8404,850.92347 L 2287.8404,849.89555 C 2287.8404,849.3341 2288.1102,848.61554 2288.443,848.28275 L 2289.0455,847.68018 L 2281.5843,844.68506 L 2274.7787,844.64961 L 2274.0521,841.84942 L 2271.4646,841.84942 L 2270.7556,839.5809 L 2268.6289,839.5809 L 2268.2745,839.01377 C 2268.0817,838.70185 2267.7119,838.44664 2267.4592,838.44664 L 2266.9984,838.44664 L 2266.325,842.66466 L 2269.2315,845.71298 L 2268.5226,847.94605 L 2263.0463,848.65496 L 2261.6639,840.16572 L 2258.3497,841.88486 L 2258.3497,844.52553 L 2254.9647,845.67753 C 2254.9131,847.97594 2254.7426,850.15547 2254.0077,852.39444 L 2249.8428,848.44229 L 2249.8428,845.9611 L 2251.9873,845.39397 L 2250.7112,840.59107 L 2254.0962,837.87951 L 2254.9469,838.21622 C 2255.4148,838.40246 2256.0528,838.66062 2256.3648,838.78335 C 2256.6767,838.90613 2257.2747,838.78477 2257.694,838.51753 L 2258.456,838.03899 L 2256.6129,834.47674 C 2258.0412,834.39145 2259.0075,834.22204 2260.0156,833.5906 L 2258.2788,826.99773 L 2260.2106,825.57991 L 2257.0914,821.6277 C 2256.0193,821.98063 2255.4482,822.76814 2254.3267,822.93919 L 2250.4099,822.8683 C 2250.4099,822.66011 2251.0654,821.64568 2251.8632,820.59978 L 2253.3164,818.68572 L 2251.81,815.74374 L 2250.3213,812.78407 z M 2375.5504,813.20942 L 2375.1073,818.03001 L 2371.7754,819.76684 L 2371.7754,820.88335 L 2369.8082,821.82268 L 2367.8587,822.76196 L 2367.5574,823.50632 C 2367.3976,823.92299 2367.3718,824.26843 2367.4865,824.26843 C 2367.6014,824.26843 2369.0189,823.3752 2370.6412,822.28348 L 2373.5832,820.29852 L 2375.7453,820.29852 L 2375.5504,813.20942 z M 2365.1117,824.83555 L 2363.6939,826.53694 L 2364.2255,826.53694 C 2364.516,826.53694 2365.2504,826.16184 2365.856,825.70394 L 2366.9548,824.871 L 2365.1117,824.83555 z M 2362.3469,827.72434 C 2362.0664,827.71952 2360.7974,828.74545 2359.4049,830.11694 L 2356.7111,832.77536 L 2356.0199,832.77536 C 2355.6406,832.77536 2355.3287,832.99398 2355.3287,833.25384 C 2355.3287,833.51381 2355.5022,833.90581 2355.7186,834.12229 L 2356.1085,834.51219 L 2359.3873,831.26889 C 2361.1902,829.48476 2362.5374,827.89697 2362.3824,827.74209 C 2362.3727,827.73239 2362.3656,827.72468 2362.3469,827.72434 z M 2352.6348,836.74526 C 2352.4009,836.7465 2351.2138,838.6938 2349.9942,841.06961 C 2348.7745,843.44537 2346.9241,846.62657 2345.8825,848.14097 C 2344.8408,849.65537 2343.9925,851.08959 2344.0039,851.33107 C 2344.015,851.57255 2344.6632,851.00849 2345.4394,850.07278 C 2346.2155,849.13702 2347.7815,846.71249 2348.9131,844.68506 C 2350.0448,842.65757 2351.438,840.32021 2352.0146,839.49226 C 2352.5909,838.66431 2353.0602,837.70728 2353.0602,837.36553 C 2353.0602,837.02377 2352.8688,836.74384 2352.6348,836.74526 z \"},\"ca52\":{\"name\":\"CA-52\",\"path\":\"M 283.95344,1065.9706 L 282.33443,1064.7324 L 280.6774,1064.7324 L 282.66513,1059.0202 L 278.93104,1055.9029 L 277.0856,1052.019 L 270.20312,1049.902 L 270.48303,1048.8946 L 274.14271,1047.2413 L 274.65801,1041.6316 L 278.42376,1038.7307 L 278.22705,1037.2919 L 280.26254,1035.8088 L 282.95941,1035.8088 L 284.84477,1033.9234 C 285.99417,1034.9765 286.92635,1035.5317 288.68004,1036.3358 L 289.04096,1037.7737 L 289.40182,1039.2116 C 291.97516,1039.1522 294.36177,1038.7817 296.9351,1038.0999 C 298.33472,1040.0879 299.23639,1041.4537 301.13396,1042.9438 C 302.28033,1042.3857 303.2522,1042.1535 304.16004,1041.2534 L 303.90492,1039.1077 L 310.26263,1036.237 L 310.26263,1034.1074 L 309.64315,1034.1074 C 309.30248,1034.1074 308.42587,1033.6371 307.69518,1033.0624 L 306.36668,1032.0174 L 308.37437,1028.716 L 309.04489,1023.7168 L 304.02421,1018.8372 L 304.02421,1016.1835 L 331.02549,1021.0296 L 327.81725,1041.7333 L 326.32123,1042.5971 L 324.89154,1051.6884 L 318.07012,1051.6884 L 318.66861,1053.9769 L 316.82624,1055.8192 L 316.93495,1065.8666 L 316.18436,1065.8666 C 315.77149,1065.8666 315.27905,1065.6163 315.08991,1065.3104 L 314.74618,1064.7541 L 312.64616,1064.8993 C 311.4912,1064.9792 310.29099,1065.1953 309.97906,1065.3795 L 304.02421,1065.7641 L 304.02421,1064.7656 C 301.65692,1063.6789 299.32248,1062.4924 296.77654,1061.9054 C 296.23992,1061.9102 294.98456,1062.365 294.63072,1062.5942 L 294.05602,1065.0159 L 286.39167,1064.016 L 283.95344,1065.9706 z \"},\"nd\":{\"name\":\"ND At-Large\",\"path\":\"M 982.15351,305.34701 C 986.02951,237.61191 986.50321,182.94335 990.01381,118.2581 C 1086.4729,122.07516 1175.094,121.85443 1270.1279,119.73357 L 1271.4229,123.64287 C 1272.1351,125.79298 1272.9243,128.44539 1273.1768,129.53711 C 1273.4293,130.62883 1274.314,133.20094 1275.1429,135.2529 C 1275.9718,137.30485 1276.6499,139.24351 1276.6499,139.56101 L 1274.831,143.78439 L 1274.8297,145.87659 C 1274.8289,147.0273 1275.1268,151.2865 1275.4916,155.34147 C 1275.8564,159.39644 1276.1077,163.99018 1276.05,165.54978 C 1275.9923,167.10939 1275.9315,169.02345 1275.915,169.80325 L 1275.8849,171.22107 C 1276.6987,173.10389 1277.5339,174.97652 1278.4439,176.81484 C 1278.7544,177.39605 1279.1245,178.41688 1279.2666,179.08335 C 1279.4087,179.74983 1279.6475,181.16685 1279.7974,182.23228 L 1280.7702,185.01331 C 1281.1554,185.47744 1281.4874,186.26457 1281.5079,186.76249 C 1281.5285,187.26041 1282.0097,188.68864 1282.5773,189.93632 C 1283.145,191.184 1284.24,193.60848 1285.0109,195.32404 C 1285.7817,197.03961 1286.6456,198.95366 1286.9307,199.57751 C 1287.2158,200.20135 1287.5653,201.33105 1287.7075,202.08795 L 1289.1268,204.62495 L 1290.0118,217.95359 L 1291.8542,243.3029 L 1294.3692,247.21632 L 1293.1171,253.45473 L 1294.1633,258.4856 L 1293.6763,263.44575 L 1295.7783,267.86442 L 1297.0231,275.35861 L 1298.7837,278.43592 L 1302.4631,282.86607 L 1302.8269,286.43499 L 1304.5605,295.98939 L 1304.6416,301.51894 L 1304.7228,307.04849 C 1196.4871,309.80656 1087.3014,309.71443 982.15351,305.34701 z \"},\"nm3\":{\"name\":\"NM-3\",\"path\":\"M 713.06579,847.18394 C 709.88159,884.54179 706.31361,920.13575 702.11312,957.54367 L 705.48044,957.54367 L 707.58948,960.94644 C 710.00624,960.82649 710.31828,960.28137 711.27582,959.61721 L 713.68611,962.0275 L 713.7747,966.0506 C 715.28485,965.49754 716.79857,964.94719 718.31173,964.40235 L 723.41589,964.38466 L 725.50717,965.97971 L 728.23648,964.73912 L 728.23648,962.98453 C 728.23648,962.01877 727.98547,960.33474 727.66935,959.24506 L 727.08453,957.26011 L 727.75799,954.1409 C 738.18137,954.42072 767.93549,957.47278 767.93549,957.47278 L 767.93549,954.65483 L 773.27007,954.99159 L 773.94354,957.82723 L 793.08413,959.38684 L 794.71463,964.91634 L 818.28591,966.93674 L 818.87074,968.88624 L 820.00499,968.88624 L 819.45562,966.77721 L 825.21549,966.01515 L 825.21549,965.57206 C 825.21549,965.33324 824.9731,964.88657 824.66611,964.57958 L 824.09898,964.0302 L 827.07641,959.82988 L 829.75252,960.50334 L 829.75252,959.38684 L 837.63918,958.62473 L 838.40123,953.46743 L 843.38136,954.31813 L 842.637,967.50387 L 847.33351,969.6306 L 847.33351,973.9904 L 845.06499,973.9904 L 845.06499,979.50216 L 889.54915,982.14288 L 889.99225,971.01298 L 949.52301,974.22077 L 947.30769,1012.5552 L 956.71846,1012.5552 L 955.37153,1045.4486 L 960.75925,1045.4486 L 960.01489,1061.8245 L 966.14701,1062.1789 L 965.91661,1071.9796 L 976.63881,1072.6708 L 976.63881,1078.3066 L 999.14681,1078.9092 L 1005.5624,895.72664 L 1007.8309,895.72664 L 1008.5753,865.79285 C 908.9196,862.19102 811.56555,854.8315 713.06579,847.18394 z \"},\"co4\":{\"name\":\"CO-4\",\"path\":\"M 868.8844,608.72407 L 868.8844,611.94962 L 871.15291,614.37761 L 871.15291,616.13219 L 872.28717,616.13219 L 872.28717,617.6918 L 874.16578,619.2514 L 875.84948,622.93774 C 876.77889,624.96522 877.90957,628.02766 878.36611,629.74328 C 878.82242,631.45885 879.48046,634.06066 879.81938,635.52091 L 880.43965,638.17932 L 882.49549,638.711 L 882.49549,641.01496 L 884.88809,641.77702 L 884.25007,644.96711 L 886.05779,648.74209 L 889.40737,651.89675 L 890.22262,654.98051 L 913.08499,656.39833 L 910.81648,661.69741 L 911.54314,662.1582 C 911.94444,662.41284 912.42497,662.63187 912.6242,662.63675 C 912.82343,662.64151 913.1531,663.49646 913.35086,664.55081 L 913.70532,666.46486 L 922.88571,662.49496 L 925.57957,665.75595 L 924.39212,673.30585 L 981.99111,676.05286 L 978.69471,747.58196 L 962.67331,746.76672 L 960.59977,791.44585 L 962.15941,791.58763 L 963.34681,791.46355 L 964.55191,792.70414 L 967.86611,792.84592 C 969.22921,792.97937 971.00211,793.3332 971.81821,793.64348 C 973.42281,794.01636 974.84351,794.21945 976.67431,794.2106 L 980.04161,794.2106 L 980.04161,797.04625 L 983.21401,797.0285 L 982.22151,799.84645 L 983.21401,801.65417 L 985.64201,801.01615 L 986.40411,802.23899 L 983.40891,805.37595 L 984.15331,810.37377 L 986.49271,814.62724 L 988.37131,814.62724 L 989.39921,813.49298 C 989.96381,812.86914 990.68591,812.35872 990.99431,812.35872 L 991.54371,812.35872 L 990.94111,824.26843 L 1006.9802,824.28612 L 1005.1371,864.42823 L 1055.3811,866.23595 L 1060.5658,617.06024 C 992.94311,616.2121 933.53372,612.13513 868.8844,608.72407 z \"},\"az1\":{\"name\":\"AZ-1\",\"path\":\"M 542.20054,827.51166 L 541.88153,827.81298 L 539.65044,834.63327 L 541.73975,835.38058 L 541.36757,839.86446 L 536.38748,839.95305 L 533.02015,846.58137 L 533.92559,852.97654 L 533.51639,855.17694 L 531.53144,856.59476 L 532.11629,858.43793 C 532.43995,859.44963 532.72813,861.30652 532.77203,862.54961 L 532.86064,864.80038 L 539.53858,867.79102 L 539.84342,870.86156 C 539.43463,871.58318 538.36176,872.851 537.45084,873.67951 L 535.7849,875.18592 L 539.38262,877.04684 L 539.43579,878.99635 L 540.09291,878.98926 L 542.12945,876.268 L 544.70142,879.2393 L 545.05391,879.84704 C 545.33826,879.99738 545.59877,880.20155 545.86916,880.41417 L 546.41856,880.87496 C 547.09133,881.49319 547.73362,882.22461 548.36807,882.8776 C 549.05775,883.58742 549.73213,884.19102 550.35302,884.4904 C 550.35637,884.49199 550.3674,884.48853 550.37074,884.4904 C 552.23489,884.88989 553.97204,885.76094 555.68757,886.63483 L 558.48777,887.98176 C 560.3424,888.75952 562.2195,889.22735 564.2654,888.83246 L 571.30057,880.98249 L 568.90859,878.30768 L 568.87332,875.46949 L 566.6048,872.5807 L 567.24282,870.93246 L 570.1848,869.58552 L 570.64559,870.31219 C 570.89252,870.71167 571.23507,872.05327 571.4254,873.30731 C 571.61567,874.5614 572.05168,876.29539 572.38242,877.15318 L 572.985,878.71278 L 577.94738,878.62414 L 577.94738,880.9813 L 581.88183,880.9813 L 585.88718,882.89535 L 585.97582,884.91575 C 586.02431,886.02761 586.01229,887.57785 585.94037,888.35397 C 585.86846,889.13008 585.51406,890.10776 585.16057,890.53384 C 584.80697,890.95992 583.92724,891.53749 583.21107,891.80988 L 581.91728,892.30612 L 580.00322,896.29377 L 577.87648,896.29377 L 578.67404,897.56981 L 584.09721,896.93179 L 585.46183,898.56229 L 589.28995,898.56229 L 589.28995,896.40011 C 591.1228,895.284 592.95077,894.15921 594.81945,893.10367 C 595.5168,892.71774 596.64221,891.99459 597.33609,891.50862 C 597.7079,891.2482 598.12564,890.85098 598.50579,890.4275 L 602.95423,891.22506 L 605.41767,889.48823 L 609.58255,889.48823 L 610.36235,882.08011 L 613.96005,880.57364 L 615.12975,881.61932 C 615.77367,882.20187 616.59929,882.68268 616.95522,882.68268 L 617.59324,882.68268 L 617.9477,880.76862 C 618.14557,879.71371 618.79176,878.0548 619.38322,877.08229 L 620.46433,875.31001 L 623.37087,875.31001 L 626.47232,877.61397 L 630.45998,878.25199 L 634.87292,876.40882 L 635.88314,878.21654 L 636.55661,877.66711 C 636.92133,877.3671 638.42071,876.93126 639.90619,876.71008 L 642.6178,876.32018 L 643.23807,875.31001 L 645.43569,875.31001 L 645.43569,878.50011 L 639.05549,887.46783 L 638.48836,891.70354 L 636.52116,893.49357 L 633.36651,892.28842 L 629.60928,894.8582 L 628.95351,897.48117 L 629.62698,898.56229 L 631.70057,898.56229 L 632.39173,900.33456 L 633.52599,899.62565 L 633.52599,897.55206 L 634.92612,896.64823 C 635.69497,896.1445 636.65172,895.73725 637.05285,895.74434 L 637.77945,895.76209 L 639.56948,899.41298 L 644.35463,899.76743 L 645.01034,901.45107 L 642.97225,902.93978 L 649.01569,904.33991 L 651.24876,904.32216 C 651.60571,903.96521 652.11011,903.66644 652.36532,903.66644 L 652.82611,903.66644 L 652.5248,908.3984 L 656.47701,908.48704 L 656.81371,910.24156 L 655.13008,914.28236 L 647.65107,918.00414 L 646.83582,919.59919 C 646.38234,920.47602 646.00282,921.43555 646.00282,921.74367 L 646.00282,922.3108 L 652.80836,921.22968 L 652.80836,917.22434 L 655.59087,914.44189 L 658.63918,914.44189 L 657.91252,925.60724 L 653.90718,925.69582 C 651.70416,925.73654 649.66335,925.90452 649.37015,926.08572 L 648.83846,926.42248 L 649.40559,927.48585 C 649.71836,928.07022 649.97272,928.84889 649.97272,929.22268 L 649.97272,929.91384 L 643.18493,928.49602 L 642.42282,930.48097 L 644.49641,932.00513 L 643.87609,932.64315 L 621.5277,930.33919 L 619.73767,932.11146 L 612.82579,931.34941 L 611.78018,930.35694 L 612.71945,929.29357 C 613.24235,928.71578 613.67648,927.68803 613.67648,927.50354 L 606.19747,926.77694 L 609.47621,891.79219 L 605.73668,891.79219 L 605.73668,896.25832 L 602.42255,897.97741 L 602.05035,900.54724 L 597.51332,901.13206 L 598.08044,904.76526 L 595.93602,905.50961 L 594.69542,903.87912 C 594.14071,903.03262 593.49186,901.69074 593.25985,900.88394 L 592.8345,899.41298 L 591.38124,902.33721 L 589.09503,904.05634 L 588.15569,902.49674 L 585.07193,903.20565 L 576.37008,898.8813 L 575.18262,897.00268 L 575.96242,891.47318 L 579.02849,891.11872 L 579.71965,888.9211 L 581.10203,888.9211 C 581.86079,888.9211 582.4844,888.76826 582.4844,888.58434 L 579.93233,886.17404 L 581.13747,884.93345 L 577.36255,882.00922 C 576.82945,882.12599 576.36259,882.24979 576.10421,882.36367 L 575.12948,882.80671 L 574.75728,881.83199 C 574.52016,881.8929 574.29042,881.97587 574.06612,882.08011 C 572.58132,882.76957 571.39443,884.62725 571.03549,885.96137 C 570.24446,889.2599 568.01304,891.36712 565.32876,892.12889 C 562.59648,893.08042 559.4669,891.94911 557.01678,890.39206 C 553.72116,890.17218 551.18077,888.46371 548.77569,886.56394 C 546.72283,884.94241 544.74861,883.18879 542.48411,882.02691 L 541.19035,882.94849 L 540.42827,890.05535 L 533.78223,890.05535 L 533.07332,887.78684 L 529.74144,887.78684 L 529.74144,883.90552 L 522.36876,883.12572 L 522.36876,880.41417 C 520.85382,880.40804 519.32938,880.37214 517.83173,880.55595 C 517.13028,886.78245 516.13495,893.58743 515.49233,899.82057 L 490.21965,916.51542 L 477.44154,1007.4864 L 506.77272,1011.474 L 529.20975,1021.6469 L 531.30104,1020.2114 L 531.93906,1018.6695 L 537.89391,1012.626 L 558.38144,1018.1378 L 562.81213,1018.7581 C 565.25209,1019.0926 568.36523,1019.3607 569.72401,1019.3607 L 572.1875,1019.3607 L 574.01292,1021.1861 L 573.51668,1021.8241 C 573.23907,1022.181 572.87322,1023.0538 572.70143,1023.7559 L 572.38242,1025.032 L 574.2079,1025.032 L 574.42057,1030.8982 L 575.67886,1030.8982 L 575.35985,1032.316 C 575.06801,1032.5262 574.76919,1033.303 574.68639,1034.0528 L 574.52691,1035.4175 L 575.3953,1036.3923 C 575.8777,1036.9253 576.38794,1037.8756 576.51186,1038.519 C 576.63549,1039.1623 577.18686,1040.4206 577.7347,1041.3015 C 578.28255,1042.1825 579.22313,1043.4705 579.84374,1044.1726 C 580.46412,1044.8744 581.19895,1045.4486 581.45648,1045.4486 C 581.71402,1045.4486 581.91728,1045.1682 581.91728,1044.8283 C 581.91728,1044.4884 582.49149,1043.7299 583.19332,1043.1447 C 583.89514,1042.5591 584.75071,1042.0739 585.08968,1042.0635 L 585.70995,1042.0458 C 587.03176,1046.6688 588.79564,1051.1923 589.76849,1055.9051 L 578.05371,1054.7708 L 577.27391,1064.4474 L 572.34698,1069.0199 L 572.985,1073.7873 L 571.10639,1076.6761 L 563.76916,1075.914 L 563.76916,1078.8383 L 562.6349,1079.5472 L 562.6349,1081.6562 L 559.03718,1082.4538 L 556.11292,1085.1831 L 553.84441,1084.8641 L 552.76332,1082.4006 L 543.3348,1081.6031 L 543.03351,1081.1068 C 542.86377,1080.8322 542.37126,1080.6106 541.95243,1080.6106 L 541.19035,1080.6106 L 540.41054,1087.3275 L 537.68124,1088.001 L 537.68124,1090.234 C 542.03079,1091.1982 546.45356,1091.7499 550.79609,1092.7507 L 550.05173,1097.6422 L 547.88955,1098.7942 L 547.88955,1099.8043 C 547.88955,1100.3548 547.65979,1101.0499 547.37559,1101.3462 L 546.86163,1101.8779 L 546.08183,1110.4557 C 572.36382,1114.2458 579.27548,1114.769 590.99134,1115.3649 L 590.99134,1112.4407 L 593.50797,1110.6684 L 596.13094,1110.6684 L 597.21206,1113.5395 L 598.93114,1114.1952 L 598.93114,1116.3397 L 613.49926,1117.8639 L 613.00302,1123.0389 L 684.56757,1130.5179 C 697.00918,996.02182 702.32148,945.63414 711.52394,847.0776 C 652.03055,840.80998 608.30152,835.86938 542.20054,827.51166 z \"},\"de\":{\"name\":\"DE At-Large\",\"path\":\"M 2304.9429,542.38771 C 2298.6078,542.32568 2292.0756,548.15692 2293.937,554.56325 L 2317.402,626.34051 L 2346.8041,619.14506 C 2344.9492,614.13743 2342.5439,607.80442 2340.7606,602.80467 L 2339.9808,600.53615 L 2335.1956,600.5184 L 2327.0609,594.54586 L 2326.3697,591.4089 L 2325.0405,589.97338 C 2324.3082,589.18348 2322.9751,588.23734 2322.0808,587.86434 L 2320.4503,587.17318 L 2318.3413,580.42078 L 2318.9616,578.80804 L 2318.1641,577.76236 C 2317.7276,577.18616 2317.3587,576.27013 2317.3488,575.72427 L 2317.3311,574.7318 L 2315.5234,574.7318 L 2314.9385,572.46328 L 2314.3182,572.46328 C 2313.984,572.46323 2312.8706,571.88906 2311.837,571.18724 L 2309.9584,569.9112 L 2309.3381,568.01484 L 2305.4568,565.71088 L 2304.7125,562.73345 L 2305.8467,561.5992 L 2304.234,558.33821 L 2302.0186,557.64702 L 2302.0186,554.47464 L 2303.1529,553.02137 C 2303.7767,552.22829 2304.2978,551.37005 2304.3049,551.10731 C 2304.3119,550.84459 2304.775,550.01266 2305.3505,549.26415 L 2306.4139,547.89949 L 2305.829,545.73731 L 2307.2291,543.13207 L 2307.619,542.79533 C 2306.747,542.53066 2305.8479,542.39657 2304.9429,542.38771 z \"},\"nv3\":{\"name\":\"NV-3\",\"path\":\"M 465.40953,829.11953 L 461.04973,830.62594 L 457.80649,829.27901 L 453.92518,829.65121 C 451.79476,829.85606 449.29587,830.3101 448.36023,830.66138 C 447.42446,831.01261 446.02071,831.73553 445.24102,832.27418 C 444.46122,832.81267 443.01997,833.4216 442.03322,833.62112 L 440.2255,833.97557 L 439.48115,831.60072 L 437.47844,832.22099 C 436.44503,831.37279 435.0209,830.5652 433.85029,829.93478 L 435.59983,833.30211 L 432.94141,839.2924 L 422.16597,847.53346 L 420.69501,850.29821 L 421.29758,854.7998 L 418.23151,857.72408 L 410.64617,857.72408 L 410.64617,858.04309 C 410.64617,858.21959 410.91192,858.88477 411.24874,859.51406 L 411.86907,860.66606 L 410.82339,861.81802 C 410.25269,862.45899 408.9445,863.3504 407.91686,863.78527 L 405.38286,864.74865 L 403.2558,859.9926 L 397.10597,859.9926 L 396.41481,858.89379 L 397.61996,856.64297 L 402.06835,855.43782 L 402.79501,853.1693 L 395.33369,842.12805 L 395.33369,839.84178 L 387.11033,831.67161 C 382.7435,831.16114 378.39619,830.2205 373.99547,830.11201 C 372.40793,837.71431 371.08435,845.38161 369.8129,853.04527 L 372.2055,853.18706 L 371.4434,859.28369 L 375.07659,860.01029 L 382.89231,866.39049 L 380.996,869.26158 C 381.82389,869.90397 382.64892,870.51057 383.67211,870.76804 L 388.81171,869.66923 L 389.94597,871.0693 L 400.82775,871.05161 L 402.61778,869.5629 L 403.84062,871.83141 L 408.66122,872.55802 C 409.7856,872.10879 410.91597,871.65968 412.09943,871.4592 L 413.03877,879.66488 L 409.51191,881.11814 L 409.51191,883.24488 C 408.73704,883.191 407.36681,883.73924 406.67515,884.06954 L 405.57745,887.90594 C 406.39148,888.03207 407.12557,888.33888 407.81052,888.72118 L 404.40775,895.70396 L 404.4255,896.69643 L 406.07369,899.86884 L 405.47112,900.82587 L 401.80253,900.82587 L 397.38953,903.14752 L 419.80887,933.63069 L 422.07738,931.36217 L 420.09243,929.92666 L 420.81904,928.04804 L 423.70788,928.04804 L 424.6826,925.49596 L 424.39904,911.83168 L 422.55587,908.26943 L 422.55587,903.32475 L 423.5661,902.24369 L 424.3459,896.41287 L 423.21164,895.72171 L 423.76102,884.87537 L 425.99409,880.87002 L 425.49785,880.21425 C 425.21939,879.85566 424.74096,878.54508 424.43448,877.29002 L 424.08003,873.32012 C 424.18909,872.39185 424.32503,870.47019 424.39904,869.06666 L 424.54082,866.51458 L 429.25508,865.89425 L 430.77924,864.68911 L 436.8416,864.52963 L 438.68545,866.53641 L 444.04947,866.81703 L 446.19508,869.05951 C 446.99064,870.10422 446.96639,871.76693 447.20827,872.54673 L 449.68946,875.65953 L 454.14596,875.49177 L 456.00036,871.34839 C 456.18088,870.7795 458.27233,867.55095 458.94075,866.83359 L 460.16359,865.5221 C 461.90885,853.38742 463.64829,841.25189 465.40953,829.11953 z \"},\"pa11\":{\"name\":\"PA-11\",\"path\":\"M 2249.077,494.20087 L 2247.3577,491.28956 L 2242.8807,492.59958 L 2241.8262,490.27917 L 2240.6543,489.02134 L 2240.5419,485.05698 L 2237.4713,483.24308 L 2236.8272,480.02265 L 2234.2467,480.01111 L 2232.2355,475.22678 L 2234.3733,473.50067 L 2239.7867,463.10127 L 2244.0408,462.44166 C 2244.4195,464.49641 2244.2903,466.75882 2245.1513,468.68007 L 2249.1357,465.89348 L 2249.7289,466.48674 L 2253.418,461.89619 L 2255.9188,462.52387 L 2259.7675,457.97287 L 2262.8867,458.60398 L 2262.8867,461.3074 L 2265.1552,461.3074 L 2265.1552,456.99722 L 2266.3376,455.8149 L 2264.664,454.42596 L 2267.9909,451.494 L 2270.9263,444.86409 L 2273.5384,445.5197 L 2274.327,444.24385 L 2273.6415,443.41801 L 2272.9562,442.59215 L 2273.4861,442.59215 C 2273.7775,442.59215 2274.5957,443.37618 2275.3041,444.33442 L 2276.5922,446.07668 L 2272.2444,449.93759 L 2274.3543,452.16991 L 2271.3937,453.332 L 2271.3937,455.12054 L 2274.298,458.02485 L 2275.6521,462.15809 L 2278.4739,462.15809 C 2279.2172,460.51344 2279.941,458.86555 2281.1607,457.5226 L 2297.8557,451.65413 L 2298.0487,457.90463 L 2302.3022,457.92422 L 2304.9693,460.73611 L 2306.11,460.0311 L 2305.2981,462.72522 L 2301.4515,466.74295 L 2301.4515,468.68007 L 2302.8693,468.69265 L 2299.1546,471.62017 L 2297.4459,475.76918 L 2292.661,480.01443 L 2288.6911,482.02982 C 2286.5076,483.13829 2283.78,484.61696 2282.6298,485.31575 C 2281.4795,486.01455 2279.8904,487.28543 2279.0986,488.13994 L 2277.6587,489.69359 C 2272.7485,487.16652 2268.9323,485.34731 2264.0866,481.72629 L 2263.386,482.8597 L 2253.917,482.13185 L 2251.5442,486.783 L 2251.5442,492.32368 C 2250.7965,493.06789 2250.0032,493.72036 2249.077,494.20087 z \"},\"hi2\":{\"name\":\"HI-2\",\"path\":\"M 694.18097,1347.0439 C 690.82119,1348.3348 688.068,1350.9419 684.48658,1351.7405 C 683.54549,1353.7499 682.70728,1355.9714 680.80025,1357.27 C 680.89723,1358.5008 680.61003,1359.9024 680.94033,1361.0296 C 682.62374,1362.816 684.88199,1363.8519 687.21589,1364.5009 C 688.49221,1365.6897 689.6132,1367.2158 690.98418,1368.1991 C 694.13152,1368.2448 697.196,1368.9315 700.25985,1369.5518 C 701.72151,1369.9554 702.48509,1368.3137 703.57835,1367.638 C 704.90344,1366.5015 706.22202,1365.3575 707.54394,1364.2173 C 707.38531,1362.763 706.9252,1361.2586 706.97103,1359.8297 C 707.97138,1357.7832 708.97169,1355.7366 709.97193,1353.69 C 708.74858,1352.5356 709.04677,1350.5035 708.11583,1349.481 C 706.87717,1348.7339 705.77841,1347.5979 704.21813,1347.7448 C 702.17799,1347.5171 700.13781,1347.2894 698.09767,1347.0617 C 697.43396,1348.222 696.66034,1348.8398 695.54559,1347.7706 C 695.0907,1347.5284 694.63586,1347.2861 694.18097,1347.0439 z M 664.42441,1360.4601 C 662.72966,1361.0942 661.64111,1362.5738 660.74748,1364.0024 C 659.08205,1364.955 657.07981,1365.4714 656.04627,1367.2181 C 655.22331,1368.0831 654.45587,1368.9748 654.45451,1370.2352 C 654.22012,1371.3625 653.76624,1372.521 654.65692,1373.484 C 655.41965,1375.5346 657.0092,1374.6177 657.42167,1373.092 C 658.19983,1371.9527 658.7728,1370.544 659.69495,1369.5829 C 661.15241,1369.1149 662.61084,1368.6501 664.06995,1368.1872 C 664.35556,1366.5813 664.38545,1364.865 664.82661,1363.3262 C 665.72761,1362.4193 666.49324,1361.5631 664.94866,1360.8931 C 664.77393,1360.7488 664.59914,1360.6044 664.42441,1360.4601 z M 786.1444,1380.2741 C 784.62705,1380.7336 782.71685,1380.4501 781.69307,1381.8727 C 779.96741,1382.811 780.53516,1384.9135 778.91726,1385.7939 C 777.884,1386.5962 776.97223,1387.7361 775.85368,1388.3203 C 773.4059,1388.3203 770.95812,1388.3203 768.51027,1388.3203 C 769.3021,1389.3088 770.50101,1390.1661 771.03836,1391.2367 C 771.07801,1392.3468 770.20049,1393.7254 771.31739,1394.5168 C 772.47348,1395.8354 773.77924,1397.3079 773.947,1399.0298 C 774.79213,1399.9593 776.03029,1400.7186 776.645,1401.7478 C 776.69576,1402.9486 777.097,1405.6271 778.58798,1405.2458 C 780.53647,1405.0549 783.07113,1404.3764 780.81873,1402.199 C 780.33014,1400.5848 783.24275,1400.0387 782.55771,1398.2005 C 782.0562,1395.2846 783.45344,1393.0535 786.65839,1393.1231 C 789.49971,1391.5695 791.60324,1392.722 792.19958,1395.8027 C 792.67546,1397.0718 793.17158,1398.3266 794.35745,1399.0957 C 796.70411,1401.181 799.13375,1403.6947 802.34302,1404.1999 C 801.59373,1403.1708 800.08358,1402.4248 800.4644,1400.9566 C 800.87716,1399.6811 799.63265,1399.1722 798.84865,1398.462 C 798.43964,1397.7545 799.62942,1396.2104 799.15921,1395.693 C 798.19096,1395.7902 796.53182,1395.1965 797.06163,1396.7918 C 797.06594,1399.271 795.33308,1398.1207 794.56065,1396.8366 C 793.84352,1395.77 791.18385,1393.6753 792.54235,1392.556 C 794.04797,1391.2122 792.30631,1390.0011 791.43929,1389.0061 C 789.76972,1387.1908 787.96131,1385.3672 787.42339,1382.8823 C 787.02697,1381.9987 786.57111,1381.1432 786.1444,1380.2741 z M 843.8143,1409.0205 C 841.98815,1409.7805 843.00115,1413.162 840.16131,1411.8556 C 837.18117,1411.535 834.14998,1411.3248 831.20312,1410.8521 C 830.07964,1410.3995 829.02937,1409.3934 827.76706,1409.9949 C 826.31657,1409.8738 827.04198,1411.6917 826.7473,1412.6005 C 825.71473,1413.8194 824.68692,1415.0424 823.66354,1416.2691 C 823.66972,1417.702 824.23861,1418.4784 825.73401,1418.0945 C 830.31738,1418.1324 834.92377,1418.0191 839.49284,1418.1508 C 842.6446,1419.1246 845.78054,1420.1519 848.95391,1421.0542 C 850.35846,1419.7046 852.59141,1420.0655 854.13633,1419.1456 C 855.81628,1417.5477 857.49067,1415.944 859.16222,1414.3373 C 858.14604,1413.6556 857.22815,1412.5793 856.14005,1412.1505 C 852.40812,1412.6353 848.5614,1413.6591 844.84222,1412.6182 C 844.49718,1411.4196 844.15458,1410.2204 843.8143,1409.0205 z M 864.97529,1421.2314 C 863.69307,1421.9372 862.17612,1422.3895 861.02224,1423.223 C 860.03248,1424.8744 859.46609,1426.7216 858.9673,1428.5687 C 860.58146,1428.886 859.43218,1430.1518 860.08613,1431.0247 C 861.34062,1432.403 862.00768,1434.4605 863.9138,1435.0597 C 865.6778,1435.9421 867.43482,1436.8381 869.19331,1437.7314 C 870.07911,1437.2258 870.93151,1435.2752 871.88678,1436.5571 C 873.11433,1437.0598 873.07712,1438.3043 873.24596,1439.4261 C 873.69155,1442.0957 874.10238,1444.7837 874.0848,1447.4966 C 875.04092,1448.1429 875.90143,1449.1416 876.93082,1449.5499 C 879.10808,1449.2122 881.39826,1449.2797 883.49896,1448.6491 C 885.16797,1448.0327 886.74549,1446.9542 888.46276,1446.6111 C 889.83748,1446.6076 891.29681,1446.8912 892.62134,1446.6845 C 893.94536,1445.5194 895.77997,1445.211 897.26409,1444.7631 C 898.65213,1443.3456 900.03411,1441.9222 901.41331,1440.4961 C 901.31407,1439.4566 901.59973,1438.2639 901.28361,1437.3107 C 900.41432,1436.5395 899.72117,1435.3742 898.76119,1434.8248 C 897.69232,1434.7108 896.30813,1435.2662 895.77747,1434.0096 C 895.34169,1432.278 893.73711,1434.4661 893.29112,1433.2822 C 892.72218,1432.5149 892.62758,1431.0041 891.35307,1431.4221 C 890.11866,1431.3689 889.40306,1429.9429 888.39147,1429.3002 C 887.33769,1428.5518 886.52511,1427.2888 885.3203,1426.8626 C 883.87361,1426.7226 882.38524,1426.2481 880.96781,1426.2744 C 878.14794,1427.661 875.21061,1428.8026 872.20618,1429.7206 C 871.3746,1427.2503 869.2532,1425.7313 868.51883,1423.2355 C 867.72853,1422.2927 866.22303,1422.014 865.15763,1421.3226 L 864.98885,1421.2382 L 864.97529,1421.2314 z M 840.11027,1427.8243 C 839.2821,1428.668 838.44904,1429.5068 837.61133,1430.3409 C 839.21098,1431.6646 840.80603,1432.9939 842.39648,1434.3286 C 842.49085,1435.9709 841.78387,1437.7981 842.91047,1439.2023 C 843.18031,1440.764 844.44824,1440.3554 845.6214,1440.1341 C 847.56013,1439.8032 849.61802,1439.3817 851.34214,1438.4716 C 852.02565,1437.3709 853.55122,1436.5845 853.18968,1435.1104 C 853.58066,1433.8066 852.58081,1433.0804 851.7211,1432.2946 C 850.05442,1430.7496 848.42245,1428.9184 846.35498,1427.9786 C 844.27362,1427.9173 842.19209,1427.8671 840.11027,1427.8243 z M 865.7374,1447.8688 C 863.39919,1449.3738 861.07056,1450.8951 858.80777,1452.5122 C 859.65307,1453.0999 860.19735,1454.8935 861.31374,1454.518 C 863.70969,1453.5341 866.52174,1454.2434 868.82116,1453.0615 C 868.66577,1451.3194 868.94911,1449.3691 867.88183,1447.8688 C 867.16702,1447.8688 866.45221,1447.8688 865.7374,1447.8688 z M 908.28975,1467.6474 C 907.55634,1468.5093 906.46138,1469.2215 905.95034,1470.1755 C 906.08345,1471.9878 905.67687,1473.9085 906.16903,1475.6486 C 907.15277,1478.3303 908.6974,1480.7479 910.48737,1482.9599 C 910.29375,1484.0905 911.01208,1485.6064 909.81084,1486.3114 C 908.40856,1487.8472 906.44669,1488.9835 905.86374,1491.0948 C 905.26508,1491.8142 905.19561,1493.8046 904.26875,1493.7244 C 903.05804,1492.7605 902.31113,1493.805 901.53853,1494.7384 C 900.13359,1496.3903 898.23824,1497.7211 897.63607,1499.8995 C 896.5098,1501.3725 897.43598,1503.0576 898.55827,1504.2645 C 900.20436,1504.9936 897.50409,1506.4139 899.36944,1506.6652 C 900.31989,1507.1395 901.57296,1507.3289 901.76006,1508.5711 C 902.80958,1511.1489 903.25087,1513.9185 903.8945,1516.6154 C 905.11156,1516.8137 905.70211,1517.4437 905.38321,1518.7004 C 905.5571,1520.4988 906.919,1521.8753 907.1974,1523.9275 C 908.24784,1525.4872 907.33601,1527.3097 907.25933,1529.0204 C 906.66663,1533.1536 906.17566,1537.3162 906.25166,1541.4982 C 907.90977,1542.0489 907.92769,1544.4 909.35056,1544.959 C 911.12641,1545.5566 913.19462,1545.5666 914.52816,1547.0454 C 915.67756,1548.4062 917.94114,1548.1219 918.87572,1549.538 C 919.60068,1550.2865 919.80847,1551.9798 921.11485,1551.6533 C 922.24735,1551.571 922.78647,1550.1125 923.67221,1549.4578 C 925.53301,1547.8387 926.14614,1545.3882 927.92165,1543.7059 C 928.43303,1542.7196 927.49312,1541.1729 928.7154,1540.4747 C 929.74275,1539.5316 930.59242,1538.1932 931.71307,1537.4751 C 932.95633,1537.778 933.79285,1537.0698 934.55161,1536.1683 C 935.36079,1535.5157 936.0237,1534.4995 936.92357,1534.0724 C 938.24418,1534.4382 938.97169,1533.3 939.84314,1532.5268 C 940.97848,1531.5879 941.9764,1530.2894 943.19737,1529.5748 C 945.9176,1529.5614 948.7212,1529.8373 951.38966,1529.6442 C 954.66369,1527.2812 958.37753,1525.6288 961.94921,1523.8226 C 965.02291,1520.9003 968.09651,1517.9781 971.17011,1515.0558 C 970.97031,1514.0442 971.76621,1512.3848 970.30751,1512.1925 C 968.18181,1511.163 965.79931,1510.5532 964.12531,1508.793 C 963.12501,1507.8382 961.72521,1507.0863 960.96021,1506.0234 C 960.86481,1504.6581 961.09641,1503.1801 960.81151,1501.8798 C 960.04262,1501.2721 959.75617,1499.5213 958.54847,1499.9905 C 957.03282,1500.2092 955.51484,1500.4104 953.99681,1500.6118 C 954.20948,1498.0597 954.42215,1495.5076 954.63482,1492.9555 C 950.76049,1488.5869 946.37624,1484.583 941.02045,1482.1141 C 935.77184,1479.5383 930.39019,1476.4377 924.36433,1476.491 C 921.82076,1474.5759 919.00831,1473.0738 916.15866,1471.6704 C 916.61457,1470.2077 914.86617,1470.1215 913.95434,1469.5128 C 912.16057,1468.6208 910.25768,1468.0039 908.28975,1467.6474 z \"},\"ak\":{\"name\":\"AK At-Large\",\"path\":\"M 367.87794,1192.7957 C 365.21207,1196.1501 362.22304,1200.2146 357.85597,1201.094 C 356.02087,1200.8228 353.20897,1201.5157 351.95722,1200.6687 C 351.81292,1196.6151 345.58491,1203.1323 343.77759,1204.0512 C 341.51322,1206.0272 339.15344,1207.8362 336.15406,1208.4767 C 334.27329,1209.7948 333.41655,1205.0241 331.78965,1207.914 C 328.49467,1210.2843 326.60247,1214.0172 322.94027,1215.9269 C 323.75064,1218.7385 320.82949,1222.8879 318.66331,1225.0898 C 316.01205,1227.2568 312.95961,1229.6772 309.33086,1229.0001 C 306.48787,1229.2305 303.77877,1228.7483 301.18321,1227.5686 C 296.22759,1224.6255 298.33844,1231.0395 296.09154,1233.4837 C 295.7298,1235.7349 289.60037,1234.7227 293.63476,1237.3936 C 296.03976,1238.9619 296.07533,1243.1615 299.2609,1243.4815 C 302.07288,1245.8921 303.11826,1250.1595 305.75672,1252.8893 C 307.57365,1254.437 308.00698,1256.4877 307.77033,1258.7822 C 308.1343,1260.6856 307.15787,1263.369 308.48425,1264.7001 C 312.36462,1267.6755 317.1905,1268.0395 321.72086,1269.2108 C 322.08673,1270.0681 319.52598,1274.654 319.13608,1272.5618 C 318.51882,1270.349 317.646,1268.4833 315.01693,1269.2759 C 313.72877,1269.9811 315.31999,1274.9583 318.12026,1274.1346 C 320.31535,1273.4864 322.69475,1280.0868 321.59413,1279.4396 C 319.1433,1275.0456 317.3296,1279.9245 319.33601,1281.0755 C 321.32282,1280.5218 323.66618,1281.8329 324.02812,1283.5591 C 323.1973,1286.386 322.30082,1281.0356 320.20412,1283.6842 C 318.86531,1284.652 317.75054,1288.2987 316.13643,1285.8673 C 314.73792,1285.6268 312.72057,1285.6421 310.82573,1284.4303 C 308.54038,1284.1857 307.50858,1284.291 305.71176,1283.1578 C 302.82709,1283.9571 303.17836,1282.0285 303.79506,1279.8647 C 303.32819,1277.5691 305.87692,1275.9319 306.19607,1274.4879 C 304.59923,1272.6667 302.53286,1272.3752 300.24878,1272.833 C 296.33711,1273.136 292.31276,1272.9062 288.71922,1274.7388 C 286.90872,1275.9407 288.8298,1278.1763 290.42774,1278.873 C 288.31436,1279.9196 286.52051,1276.9677 284.50021,1276.2169 C 279.36435,1277.9932 274.43083,1280.4214 269.07837,1281.5527 C 266.92333,1283.3953 268.52383,1284.9601 270.09782,1286.5197 C 272.50009,1289.7443 276.53298,1290.7958 279.75003,1293.0052 C 278.803,1295.1891 276.18431,1294.7247 274.91308,1295.3048 C 275.43751,1297.7926 277.8026,1299.8002 276.62662,1302.4838 C 274.80939,1306.7108 280.65065,1307.8198 283.15993,1309.749 C 285.47811,1311.9797 287.29507,1313.0619 290.26677,1311.4927 C 293.07301,1310.1089 295.96315,1311.8666 298.81585,1312.2228 C 300.36851,1314.4737 300.97074,1317.5191 303.29098,1314.2846 C 302.86127,1316.8656 303.90846,1319.7533 306.29149,1315.7096 C 308.50904,1313.6965 311.06551,1311.5984 314.23779,1312.0102 C 316.539,1313.1433 318.10893,1309.1978 319.4014,1310.1867 C 320.70134,1311.9549 321.98406,1315.7381 318.7282,1315.8822 C 317.36588,1317.5291 313.87133,1314.028 314.47628,1317.0185 C 314.0104,1319.2128 316.9033,1318.5325 317.08635,1321.0869 C 318.4594,1323.8037 317.52304,1327.0948 317.91275,1330.0563 C 318.40898,1332.389 315.47934,1333.3089 314.33656,1334.9729 C 313.011,1337.0606 310.46894,1335.1858 308.51036,1335.2562 C 306.37429,1335.7734 305.82612,1330.9723 304.29588,1334.0819 C 301.7762,1336.5565 297.62874,1341.0887 294.34764,1340.4197 C 293.15422,1337.9085 289.66419,1333.2392 286.51029,1335.2032 C 284.3769,1335.9041 282.73402,1337.0824 282.07414,1339.3094 C 279.75641,1344.3102 276.10566,1347.9791 271.86144,1351.4155 C 270.7012,1352.993 267.63562,1353.9543 268.8217,1356.2906 C 270.28277,1359.3136 267.02568,1357.5143 265.38508,1357.3578 C 264.2518,1357.7819 267.23501,1362.0028 264.06736,1360.896 C 261.83046,1361.218 263.26256,1365.0539 265.80313,1363.6724 C 268.2459,1366.1691 263.16906,1363.8226 264.50171,1366.7958 C 264.35627,1368.9912 266.72437,1368.8691 266.11984,1371.8247 C 265.64501,1374.7044 270.14489,1371.2364 270.3145,1373.7794 C 271.45224,1375.7709 266.88704,1373.7543 268.82164,1376.8405 C 269.07242,1378.9181 270.29173,1381.522 267.29976,1381.8272 C 264.88903,1381.8457 264.18274,1385.3595 267.10455,1384.5601 C 271.37523,1384.1339 264.46956,1385.6072 268.2608,1388.0309 C 270.2581,1390.742 273.36133,1393.5606 273.52489,1397.0777 C 272.68443,1399.6748 274.92087,1400.2791 276.88431,1401.0729 C 281.31945,1401.4975 285.78788,1400.5311 290.09633,1399.4614 C 290.668,1393.9555 292.67853,1400.0451 293.02096,1402.6405 C 293.62899,1405.1057 294.20832,1407.5779 294.80313,1410.0464 C 292.54559,1410.7041 292.6461,1412.9436 291.39774,1413.8204 C 289.70293,1415.4547 293.30792,1419.6786 292.26536,1422.5204 C 292.69558,1424.4539 287.70126,1424.6249 290.11239,1426.4891 C 292.77883,1430.7062 296.36503,1424.118 299.68997,1424.1183 C 302.51876,1425.907 301.32696,1422.989 303.83197,1422.4436 C 306.58677,1420.664 307.1106,1421.1748 306.47824,1423.503 C 308.11918,1424.7726 309.20133,1427.4581 311.63485,1426.8347 C 313.02865,1424.0221 312.89846,1424.7103 313.43569,1426.8347 C 315.54861,1426.8613 315.04626,1430.4063 315.98152,1432.0006 C 316.19018,1434.1166 317.33925,1436.3415 319.66956,1435.7469 C 322.09966,1434.8014 320.73295,1432.547 320.41761,1430.6622 C 320.36152,1429.5143 322.32635,1424.6864 323.13073,1428.2228 C 324.31144,1435.0533 329.82807,1432.1338 334.25361,1430.386 C 335.46445,1429.3215 339.53829,1429.0835 337.64593,1431.1312 C 335.49152,1433.4135 332.18866,1434.8976 331.58447,1438.2439 C 330.67933,1440.383 333.81894,1441.4167 330.57536,1442.3123 C 329.62716,1445.6375 329.16644,1449.2495 327.92918,1452.4047 C 324.41548,1455.7822 319.79104,1457.8267 316.90528,1461.8853 C 316.24128,1463.4363 317.17281,1467.1643 314.47774,1465.3731 C 313.87418,1462.7399 310.61598,1467.0687 308.87122,1466.9745 C 305.11492,1467.8413 302.29017,1469.3594 299.23549,1471.5471 C 296.3984,1473.1615 295.49627,1476.3151 294.00059,1478.9999 C 294.69986,1479.9251 298.98496,1482.1191 295.82203,1481.6679 C 295.35138,1480.7893 292.51759,1479.094 291.57127,1480.9748 C 291.05496,1483.075 288.88856,1478.0183 292.26536,1479.5856 C 293.14123,1476.7663 289.81985,1477.6777 288.05926,1477.2025 C 285.1241,1476.3673 282.31803,1477.3051 279.504,1478.1338 C 274.6478,1480.958 270.84925,1485.4703 265.73806,1487.9147 C 264.07114,1487.3911 260.30064,1488.3338 262.28675,1490.2103 C 264.05512,1491.307 265.44308,1493.6453 267.47077,1493.8957 C 269.39423,1493.516 271.68746,1493.8193 273.3957,1493.0447 C 274.96052,1489.477 275.22457,1494.7982 276.73879,1491.6154 C 278.35411,1489.08 277.28212,1495.367 280.14084,1493.3358 C 278.67849,1490.9089 277.7396,1489.2821 280.67732,1486.926 C 279.94675,1484.289 284.3857,1482.8244 284.39926,1484.2069 C 281.60875,1486.5306 281.8788,1490.0221 285.88313,1489.0447 C 288.57781,1487.3675 292.67198,1487.5501 295.04172,1486.8513 C 295.07141,1484.9333 298.64959,1486.5494 299.28181,1483.9717 C 300.5629,1482.6661 302.52741,1484.4679 302.24734,1482.4137 C 304.4319,1485.5421 307.76152,1481.5509 310.76778,1482.362 C 312.90035,1482.3821 312.64413,1480.2511 315.51235,1481.4348 C 318.28258,1482.2279 317.12442,1478.4765 319.66088,1477.2364 C 321.53878,1475.1366 314.11589,1473.4519 320.39733,1473.2726 C 322.78059,1473.0943 326.26685,1473.8181 324.31265,1470.4393 C 325.40056,1468.5084 325.71475,1472.6294 328.35811,1471.2565 C 327.61566,1469.5902 329.66558,1467.2238 330.44038,1467.3527 C 330.53531,1470.5809 334.67462,1466.2165 336.21056,1465.7038 C 338.61305,1466.2752 340.03095,1465.1582 340.78668,1462.9057 C 342.3123,1461.3831 342.1738,1459.3559 341.89898,1457.9327 C 343.19366,1455.9426 346.33896,1458.6702 345.71039,1455.9865 C 347.97547,1456.5159 349.2843,1455.5838 349.68585,1453.3055 C 350.15388,1450.3618 353.80777,1454.9855 353.67716,1451.1109 C 356.71357,1451.462 355.5746,1448.325 356.81694,1447.6574 C 358.50776,1447.1504 362.33861,1448.7835 362.36858,1446.6157 C 365.50539,1447.1552 365.3821,1443.6657 367.27257,1441.7005 C 368.61529,1440.6845 364.74225,1438.5831 368.61541,1439.3283 C 367.56518,1436.0725 370.94418,1438.1462 372.21915,1436.5345 C 374.20624,1435.3776 374.52522,1433.2378 374.97068,1431.1728 C 372.84306,1429.8399 371.04364,1427.5939 368.29041,1428.0026 C 364.4384,1428.5217 368.12014,1423.8796 368.55034,1421.976 C 370.90672,1422.4472 371.67848,1421.7272 371.63755,1419.5611 C 372.82137,1417.6407 374.63594,1417.331 376.72872,1417.6918 C 378.98491,1418.2414 378.15097,1414.1882 379.67803,1413.6469 C 381.77799,1414.1037 382.0714,1411.2334 383.29978,1410.068 C 381.7067,1408.1139 383.59055,1406.8816 384.9698,1405.5565 C 387.2609,1404.6318 384.6035,1401.1395 387.00883,1400.7195 C 388.67578,1399.8499 387.85434,1397.3046 390.76156,1397.3166 C 392.49732,1396.5966 390.36775,1393.2296 393.43593,1393.3442 C 394.99736,1392.2502 398.44805,1392.3997 397.76724,1389.8298 C 399.22444,1388.5989 401.60646,1387.6366 403.73587,1387.9655 C 407.32029,1386.8267 406.92697,1390.2267 409.15319,1392.1231 C 409.66878,1392.9331 405.64512,1395.2327 405.15578,1392.8627 C 403.76333,1391.1292 401.25985,1392.4125 400.13149,1393.9304 C 398.35188,1396.5564 392.54117,1395.7982 394.50537,1399.9411 C 394.85022,1401.9597 395.46201,1404.0389 393.6027,1405.058 C 394.25513,1407.4296 392.3627,1408.8006 390.92049,1410.3485 C 389.49925,1411.7523 389.58765,1414.2177 389.41198,1416.0533 C 390.58899,1420.1777 393.97599,1417.9707 396.37906,1416.8571 C 396.16861,1420.3124 392.89088,1419.5785 392.21343,1421.2819 C 389.65735,1420.5091 386.73769,1424.3199 387.67147,1426.3079 C 390.16745,1428.335 392.65702,1427.0254 395.46807,1426.531 C 398.84396,1427.157 399.68363,1422.8442 402.56081,1421.976 C 403.79386,1421.2711 403.20888,1419.1211 405.92282,1420.718 C 406.97096,1419.2284 406.88477,1415.825 409.43469,1416.8325 C 412.29242,1417.6901 412.80806,1416.5266 411.77104,1413.9952 C 412.94767,1410.955 421.18442,1413.2978 424.66563,1412.2808 C 426.76379,1412.8475 429.89867,1412.111 427.73259,1409.8286 C 426.85147,1408.9087 422.58072,1406.9658 423.81844,1406.706 C 426.10376,1407.5655 427.08798,1404.7395 427.18951,1403.1514 C 427.06772,1399.3157 421.08693,1404.2886 423.50979,1401.5918 C 425.6995,1400.046 429.97627,1397.4367 425.13963,1396.7108 C 421.50284,1398.1765 423.39627,1394.2794 425.14101,1392.8242 C 425.07571,1394.8499 425.01806,1396.8175 427.93961,1395.9476 C 430.17275,1397.4455 429.91311,1390.7385 430.31518,1393.5184 C 430.59289,1396.838 432.93381,1393.6988 433.16698,1392.8242 C 436.87715,1393.303 439.06595,1395.4068 437.74257,1397.813 C 438.24314,1399.8547 442.92117,1396.1687 441.73359,1398.7456 C 440.66011,1401.1072 444.54377,1399.1342 444.66707,1398.5361 C 448.32158,1399.5813 442.74689,1402.3425 446.98266,1402.5632 C 448.93102,1401.835 452.21764,1407.4118 452.60046,1404.275 C 452.04608,1401.0674 456.02773,1402.6383 454.68273,1405.3178 C 457.33914,1404.8309 456.65572,1407.684 459.80327,1406.706 C 461.76957,1406.7072 462.71582,1409.171 464.24818,1410.2198 C 469.42386,1409.0472 474.48348,1406.4473 479.91363,1407.6342 C 482.46251,1408.3953 485.98059,1407.9491 488.04195,1409.6024 C 491.07244,1411.9744 494.91436,1412.5477 498.65178,1412.2587 C 501.42837,1412.1365 503.67011,1409.0565 504.99362,1406.8381 C 505.58403,1406.5501 505.81006,1410.4941 506.25721,1411.8202 C 504.14776,1411.6576 503.90849,1415.116 505.8979,1415.4459 C 510.44341,1417.8304 515.2651,1419.6785 520.10084,1421.2819 C 523.64496,1421.292 524.34993,1426.2205 527.35171,1427.595 C 529.62406,1429.2523 531.66184,1431.4501 534.66279,1431.5118 C 536.97489,1431.1334 537.99077,1434.8679 539.8466,1434.259 C 541.89897,1433.3239 537.52513,1431.09 541.48807,1431.8668 C 543.09994,1432.2881 546.04733,1429.9585 544.3876,1428.5232 C 544.43532,1426.2825 536.83774,1422.5762 540.8829,1422.9087 C 544.25448,1421.8269 544.66525,1425.748 545.70345,1428.0514 C 546.07526,1431.5991 550.09069,1426.0544 551.57354,1430.175 C 552.58985,1432.273 555.61144,1430.1867 554.63189,1428.1561 C 556.64699,1430.5008 558.51519,1434.398 559.60394,1437.6952 C 560.36991,1440.6026 563.02362,1443.0331 563.40292,1445.9159 C 563.16116,1447.7669 562.31043,1449.7589 564.17273,1451.0547 C 565.43172,1453.6622 566.80115,1449.267 568.11359,1448.4845 C 568.11024,1446.4889 569.64796,1445.312 570.69845,1444.0756 C 569.81883,1441.9707 569.69157,1439.3218 567.34774,1438.2719 C 564.15361,1437.2995 569.47447,1434.861 566.70933,1433.6805 C 563.59956,1430.4181 565.71434,1430.6646 567.65671,1433.2587 C 568.75297,1436.0945 571.14172,1433.7099 571.63223,1435.7482 C 570.69318,1437.4779 570.56376,1438.8547 572.54814,1440.6514 C 574.02982,1442.296 575.20985,1443.9973 573.9363,1446.1607 C 576.01273,1448.6221 580.64821,1446.3228 581.80969,1448.6671 C 581.47389,1451.8242 586.14828,1450.617 586.56008,1453.2101 C 590.20666,1452.2839 588.20532,1454.7173 589.00837,1456.7735 C 591.33433,1458.1162 587.72002,1460.6768 587.22492,1459.4147 C 587.37118,1455.0475 580.67362,1459.7859 584.80612,1461.9999 C 586.15089,1462.9594 589.19575,1459.0179 587.3933,1462.8967 C 586.88045,1464.7706 589.24583,1466.2955 590.81139,1464.8362 C 590.44933,1466.8246 593.13667,1469.4628 593.50099,1466.7444 C 596.06748,1465.064 594.30938,1470.4289 594.86482,1472.1466 C 596.25571,1474.5154 599.81518,1473.8546 598.99261,1470.2065 C 599.03708,1466.0744 599.40361,1467.0849 600.07039,1470.4615 C 599.58231,1473.0126 600.32418,1475.2723 600.39853,1477.9805 C 601.81408,1480.3091 603.46828,1479.1965 603.89465,1478.1979 C 602.94947,1481.8326 605.70719,1482.7384 608.81494,1483.7502 C 610.16709,1483.3742 608.63216,1478.4925 611.47982,1480.6169 C 611.68478,1482.919 612.43855,1484.5182 615.0406,1483.7502 C 617.62965,1484.204 615.90547,1480.3662 616.38084,1478.7169 C 616.40965,1471.7337 614.74478,1464.8554 613.80159,1457.9622 C 612.10684,1455.8032 608.26732,1454.1873 605.69987,1453.3076 C 604.03342,1454.7887 601.9701,1452.6473 600.11428,1452.4 C 598.33758,1451.5189 596.01071,1450.9661 594.74624,1451.5919 C 594.01441,1449.614 593.32859,1447.565 590.81139,1448.3515 C 590.57478,1446.3204 590.95158,1443.5229 588.08134,1444.7822 C 586.04983,1444.9739 589.52071,1441.2998 586.59019,1440.6007 C 580.84404,1434.4512 574.5682,1428.6645 569.66021,1421.8548 C 567.19019,1418.5489 562.85005,1417.6914 559.84391,1415.6971 C 558.9234,1413.8361 558.20694,1411.7673 555.93331,1411.2826 C 552.17987,1411.1406 549.92242,1408.536 550.46734,1404.7105 C 548.51099,1403.5341 546.55158,1402.363 544.58925,1401.1967 C 542.54861,1403.3716 538.20563,1404.4262 537.34486,1406.8802 C 539.36959,1409.6321 534.52931,1408.7611 536.09851,1411.3825 C 536.6423,1412.8566 536.76959,1416.1713 534.50269,1415.7292 C 532.63634,1416.4179 531.54703,1418.8355 529.96005,1420.1758 C 528.49497,1422.111 528.13579,1417.3053 527.18353,1416.2811 C 525.90083,1414.0041 522.99267,1413.0375 521.02713,1411.3109 C 518.42914,1409.6844 516.04177,1407.8357 514.49161,1405.1345 C 512.94,1404.4338 510.86807,1404.6349 509.90152,1402.5051 C 508.34765,1401.2531 511.37439,1398.4689 509.6976,1397.4605 C 508.0415,1396.3133 505.88108,1397.8377 504.0066,1397.8346 C 502.32155,1398.8836 501.07241,1402.0415 498.85391,1400.5098 C 496.09184,1398.3172 496.22594,1401.5597 493.87891,1400.9831 C 490.17434,1399.0532 492.10845,1393.2055 490.76993,1389.6555 C 483.33274,1334.0052 477.3169,1278.1564 469.45471,1222.5714 C 468.50721,1222.0914 466.59218,1225.6092 465.17703,1222.2202 C 461.55698,1220.5727 458.10739,1218.4921 454.72611,1216.3515 C 451.94163,1218.0126 452.36524,1215.4231 450.34466,1216.2213 C 447.2238,1218.1662 442.71247,1220.6148 439.11533,1218.7136 C 437.46053,1217.3675 435.73199,1216.2838 433.50881,1216.7317 C 430.60133,1216.5367 427.41351,1216.9816 424.67779,1216.3659 C 423.23836,1215.1394 422.13246,1212.7085 419.97682,1214.1367 C 419.14255,1212.7161 417.28663,1212.3312 415.53194,1211.7709 C 414.46905,1210.0547 411.71054,1211.3977 409.93229,1210.9723 C 407.92912,1212.6403 408.31335,1212.0009 406.18333,1210.8459 C 403.59562,1211.2334 400.93746,1213.1652 398.46133,1211.5145 C 399.18091,1209.0081 395.85672,1209.284 394.33637,1208.3398 C 395.50423,1205.7098 395.91122,1202.572 391.75003,1202.9044 C 388.84696,1202.4898 385.39406,1202.1168 383.13666,1203.8797 C 380.42786,1203.8718 380.17654,1202.4002 381.17412,1200.1705 C 379.56166,1199.0176 377.67401,1195.3607 376.46315,1198.8608 C 376.63956,1202.2809 369.43709,1203.8426 373.00435,1200.3057 C 375.01389,1200.0163 376.77975,1197.3565 374.88191,1196.2494 C 372.20657,1195.7645 370.5205,1193.5579 367.87794,1192.7957 z M 264.45833,1293.5691 C 262.5408,1295.1535 265.14516,1298.2254 266.41619,1295.9671 C 267.0476,1293.7733 266.55223,1293.2885 264.45833,1293.5691 z M 230.49123,1308.0366 C 228.69859,1309.0939 225.16737,1312.5056 226.81282,1314.6831 C 227.69941,1316.8967 229.16142,1317.7683 231.44141,1316.7857 C 233.79737,1315.5716 235.03757,1317.8391 236.54989,1319.2575 C 238.65225,1320.2192 235.99665,1323.7667 238.82033,1323.7621 C 241.6379,1323.7429 239.43027,1332.3017 243.1265,1327.3161 C 243.78923,1325.7097 246.50155,1324.8825 247.77844,1326.3215 C 248.99216,1328.3571 252.57877,1324.9951 250.70664,1323.8705 C 248.59953,1321.7939 245.18195,1321.7428 243.64507,1319.0107 C 241.65409,1317.1876 242.13917,1314.089 240.03499,1312.1577 C 237.60534,1312.2148 234.77863,1313.988 232.86221,1311.8269 C 231.27695,1310.8427 229.95858,1310.1249 230.49123,1308.0366 z M 301.28855,1331.05 C 300.98059,1335.2637 307.60762,1332.1469 303.71625,1331.05 C 302.90702,1331.05 302.09778,1331.05 301.28855,1331.05 z M 252.02975,1383.6057 C 250.5022,1386.1705 248.64364,1384.3462 246.71825,1383.8216 C 244.43958,1383.8455 244.72772,1386.8317 245.58919,1388.1011 C 247.99471,1390.6752 250.85716,1392.7941 253.54808,1394.9065 C 255.10107,1398.1108 255.99949,1394.8494 257.56295,1394.9065 C 259.70644,1394.9167 262.50232,1395.5895 261.56794,1392.4736 C 261.60355,1390.4867 261.61626,1388.4994 261.63858,1386.5123 C 259.39065,1386.3264 258.28502,1384.5337 257.1476,1383.6057 C 255.44165,1383.6057 253.7357,1383.6057 252.02975,1383.6057 z M 0.052913,1422.6701 C 0.134557,1424.7361 -0.671268,1427.3279 2.009148,1427.8378 C 3.815132,1428.1744 5.156646,1427.1588 5.503699,1428.5927 C 6.436405,1425.7752 1.912798,1423.4545 0.052913,1422.6701 z M 546.73659,1430.7606 C 546.76512,1433.6717 543.26621,1431.6184 541.97194,1432.7125 C 541.1011,1435.075 539.53334,1438.445 542.21076,1440.1227 C 544.78052,1442.9811 547.92129,1445.4596 550.12951,1448.5585 C 550.75492,1450.5139 552.5586,1452.4734 551.07467,1454.4682 C 552.55433,1456.4433 555.53603,1453.8966 554.3239,1451.9898 C 553.03683,1448.1542 556.34799,1450.0284 556.08514,1452.9933 C 558.14128,1454.4487 555.57693,1458.2118 558.24214,1459.1279 C 560.91319,1460.2303 562.2171,1462.2791 563.39775,1464.8001 C 564.12289,1466.8582 567.6807,1469.1155 567.1222,1465.5367 C 566.6875,1462.0305 566.7421,1458.3895 564.77744,1455.3069 C 561.7489,1449.6642 560.68798,1443.114 557.52441,1437.6035 C 558.17761,1436.3205 557.90346,1434.0014 556.32319,1433.0815 C 553.00106,1433.1469 549.87631,1431.6719 546.73659,1430.7606 z M 2.200258,1435.4891 C -1.704244,1436.315 6.662973,1442.3323 5.605643,1436.0314 C 4.473883,1435.8344 3.353747,1435.5287 2.200258,1435.4891 z M 383.88542,1437.0941 C 379.7073,1437.0569 380.03684,1440.7799 377.40011,1443.3687 C 376.48186,1445.0855 369.52904,1447.4542 373.30052,1448.3515 C 375.65232,1446.4409 377.7588,1447.877 379.94706,1448.3273 C 380.90506,1445.7797 384.19387,1448.6574 384.57951,1447.1357 C 384.70056,1445.6632 387.56371,1448.1415 387.21674,1444.9335 C 387.56749,1443.5829 384.84527,1441.5131 383.57631,1441.6836 C 380.56446,1441.8717 384.25773,1439.8189 383.88542,1438.5691 C 383.88542,1438.0775 383.88542,1437.5858 383.88542,1437.0941 z M 580.33493,1448.5033 C 577.37027,1448.6653 574.20608,1448.2459 571.36159,1448.7586 C 568.72393,1449.7274 571.32745,1451.6335 572.01595,1453.1872 C 571.5682,1452.3485 569.21717,1451.6076 567.90205,1453.6538 C 565.7215,1454.3366 566.93104,1457.2984 568.30874,1458.2853 C 569.42275,1459.5151 572.23809,1461.3978 572.33065,1462.2333 C 570.44596,1461.4255 569.03693,1464.7198 571.29008,1465.0965 C 569.75231,1468.1818 575.4283,1471.2999 573.70015,1467.1018 C 572.50328,1464.6121 577.4559,1466.6159 575.24387,1462.8639 C 573.7276,1460.7363 574.19956,1456.5308 576.2824,1460.3395 C 577.47927,1461.3065 581.86527,1459.6495 582.04142,1458.1048 C 584.0579,1457.695 586.2739,1457.6077 587.25452,1455.4934 C 586.71609,1452.3472 581.79376,1451.6008 580.33493,1448.5033 z M 372.62812,1449.436 C 371.63723,1453.0082 369.64511,1449.7096 367.92541,1450.8441 C 365.33311,1451.3359 367.86346,1455.2764 365.14279,1454.5983 C 362.32908,1454.1659 359.53635,1456.493 358.36132,1458.7651 C 356.84499,1462.391 360.28158,1461.6109 359.59222,1464.6664 C 359.13099,1466.9854 359.85477,1468.5423 362.25463,1469.021 C 364.14996,1469.3342 366.62223,1466.0404 364.10381,1470.3238 C 360.73405,1473.45 366.61958,1473.3336 367.45976,1470.9329 C 369.37654,1469.7943 369.82474,1467.683 370.63724,1466.3288 C 372.69485,1464.5723 376.58763,1466.2756 376.87683,1462.9922 C 378.87212,1463.1786 380.55806,1462.992 380.48359,1460.5087 C 381.95526,1460.2347 383.68969,1461.4583 383.51678,1458.7927 C 385.76719,1458.7762 385.93864,1455.9998 383.56006,1455.9865 C 380.31645,1455.9238 383.18073,1452.6 382.3335,1451.1157 C 380.77447,1449.0105 377.55475,1454.1621 378.33269,1449.7397 C 375.82892,1448.4915 375.04926,1452.3841 373.42437,1450.1022 C 373.15895,1449.8802 372.89354,1449.658 372.62812,1449.436 z M 578.03579,1461.4525 C 575.52557,1463.1652 579.11231,1464.9602 577.94584,1466.8241 C 575.34528,1469.254 577.99195,1472.3725 579.7927,1469.6948 C 580.08687,1467.8251 584.19844,1472.4368 580.48953,1471.4344 C 577.6595,1471.8523 579.88764,1474.7998 582.15853,1473.6021 C 582.26368,1474.7628 583.90495,1479.975 581.20258,1477.4166 C 577.64396,1475.6932 580.00112,1479.689 581.55284,1481.384 C 582.83597,1482.4778 585.92863,1481.4564 586.70118,1483.1489 C 587.32519,1485.2784 587.9927,1487.3831 590.03232,1488.5627 C 591.88292,1490.3707 593.90354,1492.4807 596.72983,1490.914 C 598.59415,1489.767 603.4642,1490.5985 602.46129,1487.3261 C 601.78759,1483.174 599.24771,1479.3067 597.00925,1476.0088 C 593.88783,1476.1575 595.73713,1473.1739 593.95396,1471.8545 C 591.77482,1469.7363 590.23717,1466.7177 587.04162,1466.0477 C 584.76931,1465.7954 584.32219,1463.5953 583.41501,1461.8863 C 581.62192,1461.7416 579.82882,1461.5971 578.03579,1461.4525 z M 41.698393,1465.5953 C 39.850866,1465.0081 37.388299,1468.2325 40.245139,1467.7861 C 42.316863,1468.3315 41.569145,1466.984 41.698393,1465.5953 z M 359.6356,1473.8376 C 358.40238,1475.0526 355.53756,1475.4113 356.12176,1477.6117 C 358.23751,1477.6345 359.8529,1476.8807 360.58358,1474.8024 C 360.29348,1474.4787 359.94938,1474.1588 359.6356,1473.8376 z M 360.9804,1474.727 C 359.75223,1478.0928 366.33442,1478.5596 365.71932,1475.7766 C 364.36414,1474.7096 362.61573,1474.7177 360.9804,1474.727 z M 61.436614,1478.2408 C 59.571172,1478.162 56.732931,1479.9445 59.224197,1481.2123 C 61.771914,1482.3857 63.291214,1480.1734 61.436614,1478.2408 z M 346.75153,1486.0493 C 345.26287,1487.0087 342.40959,1488.2161 343.95053,1490.1701 C 347.25258,1494.0152 350.84067,1486.8779 346.963,1486.1233 L 346.75153,1486.0493 z M 289.64083,1488.6088 C 288.13357,1491.1897 288.3645,1494.0263 291.62052,1494.4588 C 294.00884,1494.3156 292.43173,1491.3385 292.33165,1489.7588 C 292.50018,1487.8171 290.83532,1488.8766 289.64083,1488.6088 z M 257.01853,1489.086 C 254.08546,1489.8445 249.76457,1488.089 247.71358,1490.6016 C 246.30563,1491.9338 245.67963,1494.8216 243.288,1494.1615 C 241.43071,1494.0911 242.00419,1498.1354 243.6235,1498.873 C 245.46422,1500.7252 248.73144,1498.374 250.38128,1496.9379 C 252.27385,1497.1608 254.65271,1496.5153 256.26749,1497.2342 C 257.26015,1499.6384 261.97252,1496.2357 261.02312,1494.1062 C 260.62417,1491.4449 260.88703,1488.2388 257.01853,1489.086 z M 82.497954,1492.0793 C 83.682664,1493.928 83.282214,1499.1434 86.287354,1497.3072 C 87.300844,1495.7374 86.200614,1492.5999 84.774354,1492.0793 C 84.015554,1492.0793 83.256754,1492.0793 82.497954,1492.0793 z M 298.68571,1494.0964 C 297.03061,1494.467 293.72291,1494.7952 295.36445,1496.9585 C 297.06992,1498.6038 300.74108,1495.36 298.68571,1494.0964 z M 94.362574,1495.8968 C 94.150684,1498.7617 90.671574,1497.4785 90.978874,1499.7142 C 90.416934,1502.22 94.372394,1501.1864 94.709614,1499.2804 C 96.298494,1497.6272 96.032274,1497.2755 94.362574,1495.8968 z M 99.177834,1497.632 C 97.865964,1499.5829 97.693374,1500.5409 95.837514,1499.91 C 95.996254,1501.7538 94.940774,1504.7094 97.914954,1503.9753 C 100.27061,1505.1073 105.26088,1504.1385 102.93149,1501.5286 C 99.462494,1501.9456 102.51527,1498.7473 100.52927,1498.1372 C 100.08201,1497.9604 99.627754,1497.8018 99.177834,1497.632 z M 230.44785,1498.0007 C 228.93492,1498.6026 226.97007,1500.3382 227.96462,1501.7751 C 232.30476,1504.1049 233.99218,1501.3862 230.65478,1498.2766 L 230.44785,1498.0007 z M 105.55479,1498.2176 C 104.53,1501.9425 109.22918,1502.6731 107.98411,1498.6948 C 107.17433,1498.5357 106.36457,1498.3767 105.55479,1498.2176 z M 219.27732,1499.5841 C 217.77177,1500.6001 214.33639,1500.4402 215.34504,1503.0095 C 216.67491,1505.8607 213.40408,1505.3568 213.68012,1507.7655 C 211.54839,1508.2334 206.81564,1509.0555 205.42479,1508.6239 C 207.79671,1507.0326 206.56958,1505.5841 204.71604,1504.1754 C 203.37425,1503.7018 200.12527,1504.0402 199.43295,1505.6523 C 199.07026,1509.0897 195.62807,1507.6511 193.43461,1509.2491 C 192.50931,1511.3498 188.88321,1515.8222 193.75591,1513.6204 C 197.76637,1513.1308 198.85525,1509.3725 202.799,1509.5261 C 205.13214,1508.4878 206.90957,1513.0747 209.25637,1511.6873 C 212.50938,1510.1179 216.65104,1511.0467 219.87185,1509.9744 C 220.92921,1506.8898 224.45604,1508.6946 226.59646,1506.8376 C 228.66365,1504.4736 224.38957,1504.9835 226.11822,1503.3994 C 225.37407,1500.4926 223.98255,1501.238 222.40073,1503.1847 C 221.30724,1501.5166 222.73448,1499.7503 219.44931,1499.639 L 219.27732,1499.5841 z M 264.50171,1501.1024 C 264.00431,1503.7985 264.69275,1505.3087 267.62728,1504.5729 C 269.11211,1503.6482 265.86346,1500.8824 264.50171,1501.1024 z M 127.76571,1501.7098 C 128.69564,1504.8905 126.32985,1504.991 123.71287,1504.6676 C 119.72217,1502.3907 117.86512,1504.9895 121.64758,1507.2779 C 124.83604,1507.5871 128.65731,1508.1996 130.60715,1505.7442 C 132.94069,1506.1357 132.17817,1501.3884 130.20177,1501.9866 C 129.38975,1501.8943 128.57773,1501.802 127.76571,1501.7098 z M 238.12623,1502.4906 C 238.11417,1507.0643 243.64063,1502.7172 239.51442,1502.4906 C 239.05169,1502.4906 238.58897,1502.4905 238.12623,1502.4906 z M 131.93026,1508.7374 C 132.3142,1511.6049 134.92005,1512.7297 137.48299,1512.2079 C 137.03052,1509.712 134.37633,1508.1768 131.93026,1508.7374 z M 148.39324,1509.2147 C 145.163,1510.7393 145.27934,1513.1016 148.87151,1512.2079 C 151.25344,1513.3211 151.43124,1509.4523 149.21763,1509.5257 C 148.94283,1509.4219 148.66804,1509.3183 148.39324,1509.2147 z M 171.62361,1510.7112 C 169.48019,1510.3207 167.10906,1511.958 168.23741,1513.6586 C 170.52965,1513.6345 171.67377,1513.2284 171.62361,1510.7112 z M 179.82256,1510.8197 C 179.81049,1515.3934 185.33696,1511.0464 181.21075,1510.8197 C 180.74801,1510.8197 180.28529,1510.8197 179.82256,1510.8197 z \"},\"ca46\":{\"name\":\"CA-46\",\"path\":\"M 218.67134,976.43614 L 217.25352,976.91463 L 217.27124,979.37812 L 219.11441,980.29971 C 220.12141,980.80332 221.13126,981.24982 221.36521,981.29218 L 221.79055,981.36308 L 224.69709,982.01879 L 225.51233,981.9479 L 227.9758,981.62889 L 227.6768,980.25173 L 230.04936,981.34532 L 231.96342,982.28466 L 232.58372,982.85179 C 233.55328,983.74836 234.71817,985.18819 235.17124,986.04189 C 235.62432,986.89547 236.77879,988.49041 237.74105,989.58644 L 239.4956,991.57139 L 240.59441,991.57139 C 241.20646,991.57139 242.20645,991.30944 242.80976,990.98651 L 243.90857,990.40169 L 244.18045,988.49035 L 238.9415,982.34529 L 235.57887,983.1176 C 234.13518,979.69509 233.80783,979.86081 234.41495,979.02401 L 233.59452,978.1381 L 230.91151,981.12125 L 230.19115,980.86684 L 227.56818,979.69713 L 225.0161,979.11226 L 225.51233,981.7135 L 224.80342,981.80612 L 221.79055,981.02631 L 221.79055,978.74011 L 218.67134,976.43614 z M 204.20956,993.71582 L 204.20956,994.03483 C 204.20956,994.20996 204.50331,995.01267 204.8653,995.80711 L 205.52105,997.24268 L 206.14134,997.26037 C 206.48117,997.26735 207.40193,997.76177 208.17946,998.35919 L 209.59728,999.4403 L 208.37441,1002.6835 L 209.49095,1005.2002 L 210.96194,1005.5015 C 211.76901,1005.662 213.31615,1006.2549 214.40016,1006.8307 L 216.36738,1007.894 L 217.82065,1007.3269 L 217.82065,1006.5649 C 217.82065,1006.1468 217.17393,1004.5923 216.38511,1003.1089 C 215.59635,1001.6254 214.53527,999.96541 214.02798,999.40486 C 213.52074,998.84436 212.84869,998.37694 212.53926,998.37694 C 212.22984,998.37694 210.90786,997.50129 209.59728,996.42743 L 207.22243,994.47793 L 204.20956,993.71582 z M 200.18649,1020.9912 L 198.82184,1021.4342 L 199.19402,1025.3155 L 199.7257,1025.8472 C 200.01131,1026.1436 200.23966,1026.9578 200.23966,1027.6372 C 200.23966,1028.3165 200.63455,1029.8288 201.1258,1031.0045 C 201.6171,1032.1804 202.7012,1033.9858 203.51837,1035.0099 L 204.98936,1036.8708 L 207.00976,1036.729 C 208.11873,1036.658 209.03016,1036.4579 209.03016,1036.2682 C 209.03016,1036.0786 207.76625,1034.1676 206.22996,1032.0325 L 203.44748,1028.1512 L 200.18649,1020.9912 z \"},\"ca24\":{\"name\":\"CA-24\",\"path\":\"M 148.72119,878.99822 C 146.46963,880.43697 145.47859,881.3505 144.32998,883.15691 L 137.60526,882.41318 L 137.29013,883.44434 L 138.49528,886.64816 L 137.30048,889.26285 L 136.15588,888.11861 C 136.15588,887.62787 135.7546,887.21478 135.59201,887.21478 L 131.14036,890.13901 L 127.7231,888.38578 L 124.05342,892.23131 L 120.27627,897.28131 L 120.27627,898.07881 L 119.70914,899.7625 C 117.80977,902.59814 118.496,903.28267 119.53192,904.83121 L 120.63073,906.39082 L 123.67904,909.97082 L 123.67904,911.47722 L 139.27508,912.27478 L 152.53172,919.59425 L 168.05687,922.37676 L 177.13092,930.08613 L 175.28776,933.66613 L 176.70558,935.08396 C 177.48583,935.86415 178.12329,936.76379 178.1234,937.06891 L 178.1234,937.61834 L 180.23244,938.29181 L 181.47303,945.82396 L 186.29363,950.73319 L 186.94934,950.73319 C 187.30425,950.73319 188.96775,951.73117 190.65343,952.94851 L 194.19213,955.47904 L 194.17703,954.05447 L 203.2366,949.51029 L 209.29778,950.80408 L 210.07691,946.65111 L 212.32835,946.48489 L 211.81633,941.94372 L 206.47983,911.08732 L 201.3335,910.02781 L 201.24709,908.5543 L 189.18241,906.16039 L 189.05512,903.16788 L 187.23229,902.98158 L 187.53355,901.59245 L 182.66043,900.70178 L 182.66043,899.21307 L 175.57132,897.95478 C 173.06578,895.21634 171.24302,893.26576 168.21226,891.15763 L 165.58318,891.01261 L 161.05381,886.66795 C 159.10231,885.28319 158.01435,884.84957 157.85372,884.03046 L 155.5063,883.69121 L 153.31644,880.77826 L 151.55606,880.50814 L 150.72338,879.01239 L 148.72119,878.99822 z M 152.19501,996.10349 L 152.6735,998.65557 L 156.27125,1001.2076 L 159.95759,1001.2076 L 158.77013,998.63782 L 155.0838,996.10349 L 152.19501,996.10349 z \"},\"ca23\":{\"name\":\"CA-23\",\"path\":\"M 98.96875,823.875 L 99.75,831.34375 L 101.625,832.90625 C 102.65978,833.77016 103.80191,834.46876 104.15625,834.46875 L 104.78125,834.46875 L 105.6875,836.59375 C 106.1847,837.76345 106.75982,839.37643 106.96875,840.15625 C 107.17762,840.93605 108.10746,842.89368 109.03125,844.53125 L 110.71875,847.53125 L 111.25,847.53125 C 111.54519,847.53125 112.821,848.1538 114.0625,848.9375 L 116.3125,850.375 L 116.3125,856.375 L 113.09375,861.4375 L 113.6875,862.84375 C 114.02693,863.61045 115.26779,865.17534 116.4375,866.3125 L 118.5625,868.375 L 118.5625,867.375 L 120.15625,867.375 L 124.25,870.96875 L 124.25,872.46875 C 124.25,873.29052 123.85065,875.27329 123.375,876.875 L 122.5,879.78125 L 120.75,881.5625 L 120.9375,882.3125 L 119.65625,885.15625 L 120.09375,885.46875 C 120.34414,885.65294 120.95022,886.52249 121.40625,887.40625 L 122.21875,889.03125 L 120.625,892.0625 L 119.03125,895.09375 C 118.1087,897.11063 117.1825,899.208 116.84375,901.4375 C 116.82215,902.74187 116.8594,903.53411 116.90625,904.0625 C 116.81012,904.19755 116.72294,904.32618 116.65625,904.5 L 116.34375,905.375 L 117,907.0625 L 119.21875,907.0625 L 122.5,910.375 L 123.25,914.90625 L 127.28125,915.28125 C 129.50734,915.48025 133.25423,915.91431 135.59375,916.25 L 139.84375,916.84375 L 142.34375,918.40625 L 145.3125,918.40625 L 148.59375,921.6875 L 149.1875,921.0625 L 151.96875,923.65625 L 156.65625,924.0625 L 160,926.4375 L 161.625,925.125 L 167.625,926.375 L 169.71875,928.34375 C 170.86764,929.42884 172.02246,930.3125 172.28125,930.3125 C 172.53997,930.31247 173.24316,930.98131 173.84375,931.78125 L 174.9375,933.21875 L 176.5625,930.125 L 168.0625,922.9375 L 152.53125,920.15625 L 139.28125,912.84375 L 123.59375,912.03125 L 123.0625,910.65625 C 122.7719,909.89187 121.48288,908.00487 120.1875,906.46875 C 119.49362,905.64577 118.82989,904.91848 118.3125,904.40625 C 117.64131,903.00997 119.65418,897.02997 120.21875,896.28125 C 120.47112,896.21401 121.12321,895.42386 121.6875,894.46875 C 122.2776,893.46978 123.86882,891.56851 125.21875,890.21875 L 127.65625,887.75 L 130.78125,889.40625 C 132.20064,888.53503 133.84506,887.90802 135,886.6875 C 134.99014,886.51088 135.05818,886.44897 134.3335,885.62646 C 135.0708,885.2526 133.43506,883.48128 132.65625,882.84375 C 132.54366,882.71221 132.44097,882.58156 132.34375,882.4375 C 132.32024,882.41912 132.30481,882.39343 132.28125,882.375 C 131.81585,882.011 131.3513,881.63959 131.03125,881.15625 C 130.695,880.64844 130.54133,880.01541 130.78125,879.25 C 130.87887,878.81674 130.90472,878.2365 130.78125,877.90625 C 130.71951,877.74112 130.64591,877.63509 130.53125,877.59375 C 130.41659,877.55241 130.21981,877.5809 129.90625,877.71875 L 129.84375,877.71875 L 129.78125,877.71875 C 129.34067,877.6951 128.70964,877.83461 128.09375,877.875 C 127.47786,877.91539 126.82374,877.84791 126.40625,877.3125 L 126.25,877.09375 L 126.46875,876.9375 C 126.68732,876.80087 126.77912,876.68709 126.8125,876.59375 C 126.84588,876.50041 126.83748,876.41026 126.78125,876.28125 C 126.66878,876.02324 126.35355,875.68433 126.03125,875.34375 L 126,875.34375 L 126,875.3125 C 125.32909,874.30727 125.41843,872.83213 126.09375,871.8125 C 126.09189,871.80408 126.09573,871.78969 126.09375,871.78125 C 126.00549,871.40506 125.79355,871.0098 125.59375,870.59375 C 125.38946,870.16837 125.18261,869.72439 125.1875,869.21875 L 125.1875,869.09375 L 125.28125,869.03125 C 125.48608,868.85071 125.55625,868.66904 125.5625,868.5 C 125.56875,868.33096 125.49463,868.15057 125.375,867.9375 C 125.13575,867.51135 124.68919,867.07567 124.40625,866.6875 C 124.09241,866.30288 123.80026,865.64996 123.75,865.03125 C 123.72487,864.7219 123.77339,864.40121 123.96875,864.15625 C 124.16411,863.91129 124.48859,863.80749 124.90625,863.84375 L 124.96875,863.84375 L 125.03125,863.875 C 125.37864,864.07174 125.5813,864.03619 125.71875,863.96875 C 125.8562,863.90131 125.96208,863.74683 126,863.53125 C 126.03792,863.31567 125.98761,863.05409 125.875,862.84375 C 125.76239,862.63341 125.58279,862.47162 125.3125,862.40625 L 125.28125,862.40625 L 125.25,862.40625 C 124.36054,861.91548 123.34343,862.03927 122.25,862.03125 C 122.23976,862.03163 122.22899,862.03095 122.21875,862.03125 C 120.93151,862.06853 119.66046,861.44184 118.75,860.625 L 118.71875,860.59375 L 118.6875,860.5625 C 118.07383,859.49148 118.32026,858.00142 118.8125,856.9375 C 118.86572,856.71304 118.84811,856.52089 118.75,856.3125 C 118.65189,856.10411 118.46501,855.88669 118.28125,855.65625 C 117.91373,855.19538 117.4499,854.68496 117.46875,853.96875 C 117.36327,852.61284 117.55149,851.39744 116.75,850.375 L 116.6875,850.3125 L 116.6875,850.21875 C 116.72548,849.64975 116.58684,849.18021 116.3125,848.90625 C 116.03816,848.63229 115.64729,848.51924 115.0625,848.6875 L 115,848.6875 L 114.96875,848.6875 C 113.83894,848.58467 112.50903,848.18299 111.84375,847.09375 C 111.83558,847.08038 111.82047,847.07609 111.8125,847.0625 C 111.10531,846.19235 110.36071,845.32699 110.125,844.125 C 110.11535,844.107 110.10375,844.08067 110.09375,844.0625 C 109.81609,843.55799 109.42027,843.00348 109.09375,842.40625 C 108.75547,841.78751 108.48577,841.12462 108.59375,840.4375 L 108.59375,840.375 L 108.65625,840.3125 C 108.8932,840.08138 109.20534,839.99593 109.5,839.96875 C 109.79466,839.94157 110.0863,839.97161 110.34375,839.96875 C 110.6012,839.96589 110.81706,839.91322 110.9375,839.84375 C 111.04074,839.78421 111.09448,839.67042 111.125,839.46875 C 110.93002,839.13731 110.62318,838.84049 110.375,838.46875 C 110.11407,838.07791 109.98744,837.55793 110.25,836.9375 C 110.25509,836.92222 110.27575,836.92128 110.28125,836.90625 C 110.48824,836.34091 110.96339,835.91569 111.21875,835.5625 C 111.34982,835.38121 111.41112,835.23974 111.40625,835.09375 C 111.40138,834.94776 111.31997,834.7808 111.0625,834.53125 L 111.0625,834.5 C 110.25029,833.46316 108.82188,832.72592 108.34375,831.21875 C 108.34089,831.20975 108.34654,831.19656 108.34375,831.1875 C 107.78782,829.99519 107.41314,828.69965 107.34375,827.375 L 107.34375,827.28125 L 107.375,827.21875 C 107.50883,827.00841 107.50578,826.89009 107.46875,826.75 C 107.43172,826.60991 107.34022,826.45198 107.1875,826.28125 C 107.01336,826.08657 106.78817,825.86983 106.59375,825.625 L 98.96875,823.875 z M 123.15625,938.8125 C 122.86288,938.8125 122.44787,939.08605 122.25,939.40625 C 122.05213,939.72649 121.58511,939.95151 121.21875,939.90625 C 120.85244,939.86106 119.83345,939.86933 118.9375,939.90625 L 117.3125,939.96875 L 118.71875,941.65625 L 121.28125,941.65625 L 122.46875,943.0625 L 125.9375,943.3125 L 125.9375,941.6875 L 123.6875,940.25 L 123.6875,938.8125 L 123.15625,938.8125 z M 145.21875,943.28125 L 145.21875,944.0625 C 145.21864,944.48895 145.5476,945.16897 145.9375,945.5625 L 146.65625,946.28125 L 146.65625,950.4375 L 151.75,952.9375 L 163.09375,952.71875 L 164.09375,951.71875 C 164.64052,951.17291 165.09375,950.57457 165.09375,950.375 C 165.09364,950.1755 164.63962,949.6644 164.09375,949.25 C 163.54778,948.83568 162.64942,948.47868 162.09375,948.46875 L 161.0625,948.46875 L 160.40625,950.15625 L 157.90625,950.15625 L 153.59375,946.1875 L 150.84375,946.1875 L 149.3125,945.125 C 148.46727,944.52747 147.20183,943.85956 146.5,943.65625 L 145.21875,943.28125 z M 127.59375,944.625 L 128.46875,945.59375 C 128.94548,946.12057 129.64107,947.42853 130,948.5 C 130.35898,949.57148 131.14357,951.04529 131.78125,951.75 L 132.96875,953.03125 L 133.84375,952.78125 C 134.33268,952.6496 135.75232,952.35758 137,952.125 C 138.24756,951.89239 139.81893,951.74762 140.46875,951.8125 L 141.625,951.9375 L 141.625,948.46875 L 139.6875,948.46875 L 138.46875,947 L 139.03125,944.78125 L 127.59375,944.625 z \"},\"mi4\":{\"name\":\"MI-4\",\"path\":\"M 1788.1469,306.76346 L 1786.3568,309.31554 L 1784.7441,309.31554 L 1783.9111,311.28277 C 1783.4591,312.36447 1783.0959,313.74875 1783.0959,314.36653 L 1783.0959,315.50078 L 1780.278,318.53138 L 1779.9766,320.58722 C 1779.8019,321.71894 1779.3367,323.28107 1778.9487,324.06088 L 1778.2398,325.47871 L 1775.1561,325.83316 L 1775.1561,324.62801 L 1772.9762,324.62801 L 1772.2495,327.95989 L 1770.6368,329.2891 L 1768.7227,328.56247 L 1767.9075,329.89168 L 1768.4037,331.64623 C 1768.6818,332.61614 1768.9176,334.12894 1768.9176,335.01356 L 1768.9176,336.62633 C 1772.596,335.88245 1776.3469,335.2403 1780.1007,335.08445 L 1782.5287,350.94633 L 1804.0796,347.77395 L 1806.9153,369.87425 L 1797.15,371.32752 L 1805.4797,424.49583 L 1816.1134,422.70583 L 1818.0275,433.23316 L 1860.2608,427.03019 L 1862.1394,437.59296 L 1876.3531,435.14722 L 1877.5405,436.77771 L 1881.475,436.58276 L 1877.7178,417.1586 L 1884.0802,416.36108 L 1881.3687,408.84662 L 1876.8316,407.37563 L 1875.5378,404.52227 L 1876.2113,401.84613 L 1875.4138,399.34722 L 1869.2994,400.07385 L 1869.2994,397.20276 L 1863.9117,398.03573 L 1861.271,382.35108 L 1853.2249,383.69801 L 1852.5869,384.3892 L 1842.2013,386.1792 L 1838.6745,364.45108 L 1849.0778,362.71425 L 1845.3914,342.12039 L 1824.8685,345.31049 L 1821.2176,323.70643 L 1801.1199,326.89653 L 1801.8111,329.66128 L 1800.5528,330.44108 L 1799.5603,328.88148 L 1799.5249,330.01574 L 1797.5045,327.41049 L 1795.6081,328.13712 L 1795.236,329.34227 C 1795.027,330.00073 1794.4958,330.87991 1794.0663,331.3095 L 1793.2865,332.0893 L 1793.9422,333.15267 L 1793.2333,335.40346 L 1790.3267,335.40346 L 1790.8939,330.24613 L 1792.7016,328.26118 L 1792.4535,320.1796 L 1791.7269,320.78217 C 1791.3285,321.11283 1791.1035,321.488 1791.2306,321.61514 C 1791.3578,321.74227 1791.2587,322.79062 1791.0002,323.93682 L 1790.5217,326.01039 L 1791.7623,326.79019 L 1789.9014,331.45128 L 1789.9014,334.92494 L 1787.4734,334.55276 L 1785.9138,329.44861 L 1786.6404,324.91158 L 1787.5974,324.29128 L 1786.9594,322.05821 C 1786.6,320.82434 1786.376,319.29699 1786.4632,318.67316 C 1786.5503,318.04932 1786.8826,317.36894 1787.2075,317.16673 L 1787.7924,316.81227 L 1785.3644,312.87781 L 1785.3644,310.62702 L 1788.2,309.33326 L 1788.1469,306.76346 z M 1768.7227,312.66514 L 1765.7984,313.00187 L 1765.9757,316.84772 L 1769.2012,319.48841 L 1770.3355,319.13395 L 1769.9456,314.13613 L 1768.7227,312.66514 z M 1763.8844,320.02009 L 1762.5906,322.44811 C 1762.7564,323.12445 1763.1044,323.60065 1763.5477,324.06088 L 1765.9225,322.96207 L 1765.7984,320.39227 L 1763.8844,320.02009 z \"},\"wi8\":{\"name\":\"WI-8\",\"path\":\"M 1590.6089,265.15039 L 1592.4697,283.83019 L 1587.72,284.64544 L 1589.4923,299.12494 L 1607.2505,296.82098 C 1608.9784,298.65225 1611.37,301.38152 1611.7313,302.54903 L 1614.6586,302.50999 L 1614.6586,300.56049 L 1611.0621,297.14101 L 1620.5177,296.24279 L 1622.1731,301.48207 L 1633.1435,300.61366 L 1635.6778,332.7096 L 1633.9942,333.98564 L 1633.6574,339.08979 L 1629.3685,339.44425 L 1635.0797,387.38015 L 1693.4718,380.77375 L 1692.692,375.15564 L 1707.3842,373.33019 L 1708.3235,372.40861 L 1709.4578,358.42534 C 1710.443,356.18651 1711.3639,353.92107 1712.2402,351.63752 C 1712.814,350.1198 1713.4545,347.6953 1713.658,346.24979 L 1714.0302,343.62682 L 1714.81,342.36851 C 1715.2441,341.67766 1715.6075,340.78739 1715.6075,340.38356 L 1715.6075,339.6392 L 1717.9824,338.16821 L 1717.3267,335.52752 L 1718.8154,334.28692 L 1718.3191,330.86643 L 1720.1446,328.06623 L 1720.1446,325.76227 L 1721.651,325.76227 L 1722.9802,323.21019 L 1722.6966,315.27039 L 1725.3374,314.89821 L 1725.0006,314.04752 C 1724.8208,313.57894 1724.6816,312.69633 1724.6816,312.09801 L 1724.6816,311.01692 L 1723.9727,311.01692 L 1719.5774,314.17158 L 1719.5774,318.26554 L 1715.0759,320.3391 L 1714.3138,325.47871 L 1711.2123,331.14999 L 1709.9186,336.57316 L 1710.4857,337.65425 C 1710.8041,338.24935 1711.0705,339.00547 1711.0705,339.33791 L 1711.0705,339.94049 L 1709.4223,339.94049 L 1708.3944,338.09732 L 1706.817,340.22405 L 1701.7129,342.01405 L 1697.8316,349.29811 L 1697.3708,351.85019 L 1696.8923,354.40227 L 1691.2388,358.72663 L 1690.0513,363.17504 L 1687.3574,363.86623 L 1683.6357,361.57999 L 1685.0889,359.82544 L 1685.5675,351.24762 C 1686.4174,349.65925 1687.3467,348.1018 1687.8182,346.35613 C 1687.8182,345.97546 1688.4624,344.70425 1689.2538,343.53821 L 1690.6893,341.4292 L 1690.0159,338.30999 L 1691.2033,336.07692 L 1693.6313,335.19078 C 1694.9605,334.70965 1696.552,334.24002 1697.1759,334.14514 L 1698.3101,333.96791 L 1698.8772,326.89653 L 1697.0518,326.89653 L 1691.9122,321.89871 L 1693.525,314.15385 L 1694.6238,313.05504 L 1694.6238,310.59158 L 1693.0642,309.29781 L 1691.2033,312.15118 L 1688.0487,312.15118 L 1686.9498,313.24999 L 1684.3269,312.5588 L 1684.7168,311.37138 C 1684.9347,310.71251 1685.0922,309.31001 1685.0535,308.26989 L 1684.9826,306.39128 L 1687.2334,303.50247 L 1686.4891,300.52504 L 1684.8054,299.28445 L 1685.6561,297.90207 L 1687.2511,298.50465 L 1687.2511,296.44881 L 1684.894,294.32207 L 1685.1598,292.92197 C 1685.3068,292.15323 1685.2992,291.18719 1685.1421,290.77752 L 1684.8586,290.03316 L 1683.3344,290.03316 L 1682.271,288.13683 L 1678.2302,288.29633 L 1676.458,286.54178 L 1673.3564,287.62286 L 1670.2372,285.81514 L 1670.2372,285.07079 C 1670.2372,284.65918 1670.6387,283.71944 1671.1234,282.9795 L 1671.9918,281.63257 L 1670.8044,280.88821 L 1670.8044,278.49564 L 1666.9054,277.44999 L 1661.7126,277.96395 L 1660.2239,276.95376 L 1653.6133,276.47524 L 1652.5145,275.37643 L 1651.1321,275.90811 C 1650.3684,276.19847 1649.3479,276.8061 1648.8813,277.27277 C 1648.4146,277.73944 1647.8194,278.12346 1647.5521,278.12346 C 1647.2847,278.12346 1646.6748,277.74245 1646.2052,277.27277 L 1645.3545,276.42207 L 1639.7541,276.4398 L 1626.8519,270.8394 L 1590.6089,265.15039 z M 1730.3529,302.36821 L 1727.9958,302.74039 C 1726.6998,302.94763 1725.4156,303.26269 1725.1424,303.43158 L 1724.6462,303.73286 L 1725.426,307.86227 L 1726.6134,308.85475 C 1727.268,309.40206 1727.9577,309.85457 1728.1553,309.86494 C 1728.3528,309.8753 1728.7099,309.30845 1728.9351,308.60663 C 1729.1844,307.88763 1729.2534,307.14477 1729.2541,306.39128 L 1729.1655,305.45197 L 1730.3529,304.70762 L 1730.3529,302.36821 z \"},\"mi1\":{\"name\":\"MI-1\",\"path\":\"M 1640.7465,140.80742 L 1639.4705,141.19732 C 1638.7687,141.40937 1637.9591,141.8066 1637.6628,142.08346 C 1637.3665,142.36033 1636.6532,142.5797 1636.0855,142.5797 L 1635.0576,142.5797 L 1632.9308,143.96208 C 1631.7674,144.72591 1630.0834,146.12955 1629.1736,147.08128 C 1628.2639,148.03301 1627.3068,148.81812 1627.0469,148.81812 L 1626.5683,148.81812 L 1626.5683,150.44861 L 1625.2923,150.83851 C 1624.5905,151.05741 1622.9954,151.94163 1621.7477,152.78802 C 1620.5001,153.6344 1617.6117,155.54075 1615.3321,157.04148 L 1611.185,159.77079 L 1609.519,161.79118 C 1608.6014,162.90434 1607.8531,164.15141 1607.8531,164.55594 L 1607.8531,165.30029 L 1609.2178,165.81425 C 1609.9672,166.09922 1610.7499,166.59962 1610.9546,166.93079 C 1611.1592,167.26195 1611.6287,167.52589 1612.0002,167.51564 C 1612.3717,167.50539 1614.5602,166.42075 1616.874,165.10534 L 1621.092,162.71277 L 1621.5351,161.38356 L 1619.5147,161.01138 L 1622.3149,158.38841 L 1630.5382,154.3299 L 1635.0753,150.43089 L 1635.0753,147.84336 L 1640.7465,142.54425 L 1640.7465,140.80742 z M 1673.9945,182.15465 L 1663.1481,182.66861 L 1655.2083,185.29158 L 1654.6412,185.98277 C 1654.3293,186.35455 1652.3668,187.74307 1650.2814,189.06653 L 1646.4887,191.4591 L 1645.3368,193.92257 C 1644.7004,195.27629 1643.4109,197.27673 1642.4657,198.35326 L 1640.7465,200.30277 L 1636.8121,202.16366 L 1635.2348,204.27267 C 1634.3696,205.43124 1633.4871,206.46563 1633.2853,206.55891 C 1633.0834,206.65218 1632.0137,207.61471 1630.8927,208.70336 L 1628.8546,210.68831 L 1628.4824,212.21247 C 1628.2798,213.05803 1627.7772,214.42534 1627.3659,215.24306 L 1626.6215,216.73178 L 1620.7553,218.64584 L 1619.3729,218.11415 L 1616.2182,223.5196 L 1607.5695,229.35039 L 1604.4681,229.35039 L 1599.9133,231.17584 L 1597.1131,230.46693 L 1591.3178,232.68227 L 1590.2366,233.94059 C 1589.6358,234.6334 1589.125,235.34943 1589.1201,235.53564 C 1589.1152,235.72185 1587.7754,237.32926 1586.1427,239.11564 L 1583.183,242.37663 L 1579.5675,243.79445 C 1577.5795,244.57333 1575.0737,245.71461 1574.0026,246.34653 C 1572.9316,246.97845 1571.767,247.49851 1571.4151,247.49851 C 1571.0631,247.49851 1570.2004,248.02889 1569.501,248.68593 L 1568.2427,249.89108 L 1568.863,251.52158 L 1571.0961,249.50118 L 1572.9924,251.84059 L 1574.3925,251.3798 L 1574.3925,252.72673 L 1576.0939,252.07098 L 1577.0864,253.15207 C 1579.1023,255.72045 1580.2854,258.81244 1582.2083,261.44633 L 1583.183,262.63376 L 1627.419,269.81148 L 1638.7616,274.8093 L 1645.8862,275.11059 L 1647.4103,277.20187 L 1648.6509,274.88019 L 1653.4184,274.11811 L 1654.2336,275.4296 L 1660.5252,275.65999 L 1662.0139,276.86514 L 1667.118,276.51069 L 1671.9386,278.40702 L 1671.9386,280.26791 L 1673.7464,280.9591 L 1671.4247,284.91128 L 1673.7287,286.52405 L 1676.7238,284.96445 L 1679.0986,287.19752 L 1682.7141,287.19752 L 1683.7065,288.08366 C 1684.2524,288.57425 1685.4294,289.57109 1686.3118,290.28128 L 1687.9069,291.55732 L 1685.9751,293.4891 L 1688.3854,296.0589 L 1688.3854,297.90207 L 1686.5954,299.67435 L 1687.9423,299.67435 L 1687.3043,301.34029 L 1688.4917,302.08465 L 1687.8005,305.57603 L 1686.6308,306.30267 L 1686.1877,311.69039 L 1690.3703,310.92831 L 1692.6388,308.26989 L 1695.4534,310.47163 L 1695.6857,313.4784 L 1694.1343,315.20162 L 1693.086,321.45025 L 1697.7784,325.76227 L 1698.5937,325.76227 L 1698.5937,323.31653 L 1701.7129,318.08831 C 1703.4284,315.21332 1704.8321,312.58023 1704.8321,312.23979 C 1704.8321,311.89936 1705.5058,310.14322 1706.3386,308.34079 C 1707.1713,306.53835 1707.9191,304.55165 1707.9867,303.92781 C 1708.0543,303.30397 1708.3778,302.02792 1708.7134,301.09217 C 1709.0489,300.15641 1710.0203,297.25931 1710.8756,294.65881 L 1712.4352,289.94455 L 1717.2203,284.929 L 1716.6355,278.97415 L 1718.3191,276.74108 L 1720.1269,278.24752 L 1720.694,280.32108 C 1721.0095,281.45702 1721.2771,283.20636 1721.2788,284.22009 L 1721.2788,286.06326 L 1721.7396,286.06326 C 1721.9919,286.06326 1722.6938,285.68826 1723.2992,285.23029 C 1723.9047,284.77233 1724.8525,284.38953 1725.4083,284.3796 L 1726.4184,284.36187 L 1726.6843,283.65296 C 1726.8269,283.26306 1727.0025,282.43657 1727.0919,281.8098 C 1727.1813,281.18302 1727.6923,280.06533 1728.2085,279.32861 L 1729.13,277.98168 L 1728.0312,275.09287 L 1729.6794,273.44465 L 1732.3024,275.28782 L 1734.8899,275.28782 L 1734.9077,273.30287 L 1736.9812,270.62673 L 1739.4269,271.38881 L 1739.4269,272.52306 C 1739.4269,273.14372 1739.1379,274.78815 1738.7889,276.17395 L 1738.1509,278.69059 L 1737.5129,278.76148 C 1737.16,278.79842 1736.6835,278.79841 1736.4495,278.76148 L 1736.0242,278.69059 L 1736.0242,281.45534 L 1734.8899,282.16425 L 1734.8899,284.929 L 1733.1885,284.929 L 1733.1885,286.38227 L 1734.3228,287.35702 C 1734.9502,287.89422 1735.8552,288.33178 1736.3255,288.33178 L 1737.1762,288.33178 L 1736.4673,285.51385 L 1738.3459,284.78722 L 1738.0091,282.37692 L 1740.5612,282.02247 L 1740.5612,279.34633 L 1743.964,278.60197 L 1743.964,276.42207 L 1744.6729,276.35118 C 1745.0628,276.31422 1745.6852,276.32281 1746.0553,276.3689 L 1746.7287,276.45752 L 1747.4908,268.74811 L 1748.4124,267.61386 C 1748.925,266.997 1750.0739,266.03219 1750.9467,265.4694 L 1752.5241,264.4592 L 1753.4988,264.56554 C 1754.0296,264.63135 1755.1583,264.4043 1756.0155,264.05158 L 1757.5751,263.41356 L 1760.4462,263.96296 C 1762.0305,264.26343 1763.5434,264.62226 1763.7958,264.77821 L 1764.2566,265.06178 L 1764.8414,262.81098 L 1765.8871,262.49197 C 1766.4625,262.31167 1767.4012,261.89941 1767.9784,261.58811 L 1769.024,261.03871 L 1773.3661,261.76534 L 1775.5814,260.57791 L 1776.5916,258.43346 C 1777.1488,257.25297 1778.1959,255.33198 1778.931,254.16227 L 1780.278,252.03554 L 1783.5921,252.03554 L 1784.2479,250.9899 L 1786.6404,251.18485 C 1787.9616,251.2935 1790.4543,251.6238 1792.1699,251.9292 C 1793.8855,252.23459 1797.1421,252.79875 1799.4008,253.1698 L 1803.4948,253.84326 L 1806.2772,256.34217 C 1807.8075,257.71799 1809.3536,258.84109 1809.6978,258.84108 C 1810.0418,258.84108 1810.8096,259.33264 1811.4168,259.9399 C 1812.0241,260.54715 1813.3472,261.46413 1814.3411,261.97801 L 1816.1311,262.91732 L 1817.035,261.46405 L 1816.2552,259.9399 L 1815.4754,258.41574 L 1816.1489,257.74227 L 1814.8374,256.14722 L 1815.5463,254.30405 L 1817.0881,254.30405 L 1816.0248,251.48613 C 1816.3007,250.57937 1816.6738,249.77394 1817.3362,249.09356 L 1817.9034,248.72138 L 1820.1364,250.28098 L 1822.1568,249.1999 L 1823.9291,250.9899 L 1824.0532,253.45336 L 1824.5849,251.46841 L 1826.1976,251.46841 L 1826.1976,252.67356 L 1828.4661,251.96465 L 1828.4661,252.47861 C 1828.4661,252.76148 1829.0809,253.2712 1829.8308,253.61287 L 1831.1955,254.23316 L 1833.1804,252.03554 L 1835.7679,252.03554 L 1836.0692,251.57475 C 1836.229,251.31614 1837.7135,250.81177 1839.3657,250.45821 C 1841.0178,250.10467 1844.0197,249.64317 1846.0471,249.43029 C 1848.0746,249.21742 1850.4991,249.05852 1851.4349,249.09356 C 1852.3706,249.1286 1854.5621,249.20104 1856.3087,249.25306 L 1859.481,249.3594 L 1861.5368,248.20742 L 1865.3473,249.80247 L 1867.5803,248.61504 L 1868.0766,246.77188 C 1868.3498,245.76533 1868.4532,244.75503 1868.3247,244.52108 C 1868.1961,244.28714 1867.5907,244.09574 1866.9778,244.09574 L 1865.8612,244.09574 L 1864.7978,241.26009 L 1863.6281,241.26009 L 1863.6281,239.55871 L 1862.3521,239.47009 C 1861.6503,239.42306 1860.3104,239.44596 1859.3747,239.52326 L 1857.6733,239.66504 L 1856.9289,240.85247 L 1855.1744,240.51574 C 1854.207,240.32227 1853.4198,240.25131 1853.4198,240.37395 C 1853.4198,240.49661 1853.5671,240.9971 1853.7566,241.49049 L 1854.111,242.39435 L 1855.5643,242.39435 L 1855.9188,243.29821 C 1856.1081,243.7916 1856.2555,244.6678 1856.2555,245.24772 L 1856.2555,246.29336 L 1855.0503,247.03772 L 1852.959,245.14138 L 1852.2147,247.49851 L 1850.017,247.49851 L 1850.017,246.50603 L 1845.1079,245.26544 L 1842.0772,242.87287 L 1842.0772,240.92336 L 1843.4419,239.55871 L 1840.5176,239.55871 L 1839.0998,237.85732 L 1837.3453,237.85732 L 1835.3071,239.70049 L 1833.5703,239.02702 L 1833.5703,235.8192 L 1834.935,234.45455 L 1838.0364,234.45455 L 1838.5859,233.58613 L 1837.7883,230.55554 C 1837.3555,228.88684 1836.68,227.11878 1836.2819,226.63881 L 1835.5553,225.77039 L 1835.5553,216.59 L 1834.8463,216.64316 C 1834.4564,216.67436 1833.3912,216.73816 1832.4892,216.78495 L 1830.8588,216.87356 L 1830.1498,219.7092 L 1823.9646,219.7092 L 1823.0962,221.37514 C 1822.6202,222.29542 1822.2277,223.44385 1822.2277,223.92722 L 1822.2277,224.81336 L 1820.3314,224.81336 L 1818.3819,226.58564 L 1814.4297,223.11198 L 1812.5689,223.11198 L 1807.8723,226.51475 L 1806.8621,226.51475 C 1806.3034,226.51475 1805.7153,226.30262 1805.5506,226.03623 L 1805.2493,225.53999 L 1797.7703,225.96534 L 1797.0614,225.25643 C 1796.6719,224.86215 1796.1719,224.04761 1795.9449,223.44871 L 1795.5372,222.3499 L 1796.7601,221.60554 L 1796.1753,219.08891 C 1795.8578,217.71179 1795.598,215.3578 1795.5904,213.86069 L 1795.5727,211.1491 L 1797.3095,207.7995 L 1796.4766,207.7995 C 1796.019,207.7995 1795.4993,208.03075 1795.3246,208.31346 L 1795.0056,208.82742 L 1792.0281,209.1996 C 1790.3909,209.40637 1788.1575,209.84542 1787.0658,210.17435 L 1785.0808,210.77693 L 1783.1136,212.26564 C 1782.0269,213.08481 1779.98,214.4878 1778.5766,215.38485 L 1776.0245,217.01534 L 1772.3382,217.5293 C 1770.3055,217.81483 1766.2096,218.26954 1763.2463,218.52178 L 1757.8586,218.96485 L 1751.0531,222.04861 L 1748.2529,221.51693 L 1738.1332,230.48465 L 1735.9887,230.48465 L 1735.6166,231.47712 C 1735.4095,232.02298 1734.5227,233.23523 1733.6493,234.17098 C 1732.7759,235.10675 1732.0557,236.06378 1732.0543,236.29772 C 1732.0529,236.53166 1731.6715,236.72307 1731.2036,236.72306 L 1730.3529,236.72306 L 1730.3529,235.58881 L 1728.9351,235.87237 L 1728.9351,231.92019 L 1726.8261,231.51257 L 1725.8513,232.50504 L 1727.5172,235.71287 L 1727.5172,238.99158 L 1727.1273,238.99158 C 1726.9135,238.99158 1726.1603,238.46068 1725.4614,237.80415 L 1724.2031,236.599 L 1723.5473,237.00663 C 1723.1931,237.22557 1722.6803,238.01169 1722.3954,238.76118 L 1721.8814,240.12584 L 1719.1344,240.12584 L 1718.4609,238.37128 L 1717.7343,238.4599 C 1717.3402,238.51149 1716.7257,238.5323 1716.3696,238.49534 L 1715.7316,238.42445 L 1715.0404,235.6597 L 1712.7188,234.93306 L 1708.5184,238.14089 L 1701.7129,239.55871 L 1699.7279,239.20425 C 1698.6362,239.0097 1697.4176,238.58395 1697.0164,238.26495 L 1696.2897,237.68009 L 1696.3784,236.77623 C 1696.4258,236.27812 1696.432,235.29816 1696.3961,234.59633 L 1696.3252,233.32029 L 1693.5073,233.32029 L 1692.7984,232.18603 C 1692.4088,231.56219 1691.8124,231.05178 1691.4869,231.05178 L 1690.902,231.05178 L 1689.8918,229.35039 C 1689.3403,228.41688 1688.4253,227.40554 1687.8537,227.0996 L 1686.8081,226.55019 L 1686.4359,225.06148 C 1686.2314,224.24687 1685.6063,223.08632 1685.0358,222.47396 L 1683.9901,221.35742 L 1679.5949,221.07386 L 1679.2759,219.42564 L 1677.7694,218.71673 C 1676.9365,218.32683 1675.5855,218.00782 1674.7743,218.00782 L 1673.3033,218.00782 L 1672.0804,216.78495 L 1667.437,218.04326 L 1664.5483,217.31663 L 1661.1809,218.699 L 1659.3023,217.99009 L 1660.2416,216.96217 C 1660.7519,216.39825 1661.1632,215.75365 1661.1632,215.52663 L 1661.1632,215.10128 L 1657.8845,217.05079 L 1655.7046,219.79782 C 1654.5062,221.31077 1653.3393,222.54485 1653.0993,222.54485 C 1652.8593,222.54485 1652.6563,222.78624 1652.6563,223.07653 C 1652.6563,223.36682 1652.082,224.51074 1651.3802,225.61089 L 1650.1042,227.59584 L 1648.9699,227.649 L 1647.4635,224.24623 L 1648.261,215.65069 L 1649.8561,215.03039 L 1651.522,211.82257 L 1651.522,208.63247 L 1653.7905,207.23237 L 1653.7905,204.36128 L 1655.4919,203.70554 L 1655.4919,202.50039 C 1655.4967,201.83195 1655.688,200.98735 1655.9172,200.6395 C 1656.1464,200.29164 1656.853,199.84963 1657.4768,199.64703 L 1658.6111,199.27485 L 1662.0139,194.15297 L 1666.8877,190.32485 L 1665.7002,189.58049 L 1665.7002,187.43604 L 1670.255,186.19544 L 1671.4778,186.95752 L 1673.6932,185.89415 C 1674.9085,185.3121 1675.905,184.65255 1675.9085,184.44089 C 1675.9121,184.22922 1675.4756,183.63586 1674.9515,183.11168 L 1673.9945,182.15465 z M 1819.3921,258.84108 L 1819.3921,260.96782 L 1820.6681,261.85395 C 1821.37,262.34352 1822.1356,262.75918 1822.3695,262.77554 C 1822.6035,262.79189 1822.7949,262.46906 1822.7949,262.0489 C 1822.7949,261.62875 1822.3139,260.73553 1821.7315,260.06395 C 1821.149,259.39238 1820.3834,258.84108 1820.0301,258.84108 L 1819.3921,258.84108 z M 1823.7696,263.21861 L 1825.9673,265.27445 L 1828.1826,267.31257 L 1829.9372,267.33029 L 1831.6917,267.34801 L 1832.3297,265.94791 L 1832.9677,264.54782 L 1832.5424,264.2997 C 1832.314,264.15856 1830.2516,263.85281 1827.9522,263.62623 L 1823.7696,263.21861 z M 1816.4147,266.39098 L 1815.4222,266.40871 L 1815.4222,268.96079 L 1813.7208,269.33296 C 1812.7879,269.53786 1811.1929,269.65455 1810.1762,269.59881 C 1809.1596,269.54306 1808.095,269.53177 1807.8014,269.56336 L 1807.2697,269.61653 L 1809.3256,271.12296 L 1808.5103,273.69277 L 1806.419,275.78405 L 1804.3455,277.85762 L 1802.8745,282.37692 L 1804.6467,286.57722 L 1807.7483,289.46603 L 1813.0296,289.46603 L 1813.6499,291.06108 L 1812.6929,291.87633 C 1812.1681,292.32786 1810.8657,293.11736 1809.8041,293.63088 L 1807.8723,294.57019 L 1803.4416,294.57019 L 1802.201,295.20821 C 1800.0223,296.52812 1798.2942,298.44667 1796.4766,300.20603 L 1795.041,301.58841 L 1794.403,304.54811 L 1795.5904,308.39395 L 1796.7778,312.25752 L 1796.8842,318.01742 L 1796.9905,323.77732 L 1795.8086,327.64244 L 1797.8816,327.06229 L 1799.2945,329.04098 L 1799.2413,328.19029 L 1800.7047,329.89115 L 1801.5224,329.61358 L 1800.5875,326.6544 L 1821.5897,323.19247 L 1825.5065,344.58385 L 1845.84,341.60043 L 1849.574,363.02804 L 1839.2176,364.85219 L 1842.6798,385.70068 L 1852.5691,384.03474 L 1852.8704,383.55623 L 1861.6432,381.99662 L 1864.3902,397.55722 C 1867.3018,397.07345 1870.2158,396.60425 1873.1275,396.12167 L 1873.2693,391.10613 L 1875.0416,390.43266 L 1872.0465,386.49821 L 1871.692,373.96821 L 1872.7731,373.96821 L 1872.1174,372.92257 L 1873.4288,370.05148 L 1880.3584,367.97791 L 1880.4825,365.479 L 1881.918,363.75989 L 1883.903,363.75989 L 1884.541,359.82544 L 1883.903,353.71108 L 1885.2677,349.58168 L 1887.3589,348.44742 L 1889.1489,349.13861 L 1889.1489,347.43722 L 1892.3036,344.06989 L 1891.8428,338.45177 C 1891.5932,335.36797 1891.1502,331.77482 1890.8503,330.4588 L 1890.3009,328.06623 L 1891.0098,321.24296 L 1890.4073,320.53405 C 1890.0795,320.13747 1889.6336,318.78658 1889.4148,317.5389 C 1889.1959,316.29122 1888.6602,314.70292 1888.2273,314.01207 C 1887.7944,313.32122 1887.4475,312.36419 1887.4475,311.88534 L 1887.4475,311.01692 L 1884.7005,311.01692 L 1883.8498,310.16623 C 1883.382,309.69835 1882.7197,309.31553 1882.3966,309.31554 L 1881.8117,309.31554 L 1881.2269,308.199 C 1880.8992,307.58682 1880.5242,306.37459 1880.4116,305.50514 C 1880.2989,304.6357 1880.1503,303.6726 1880.0749,303.36069 C 1879.9994,303.04877 1879.967,302.41369 1880.004,301.94286 L 1880.0749,301.07445 L 1882.432,299.60346 L 1885.1436,301.37574 L 1887.3235,301.37574 L 1884.4524,295.24366 L 1881.7762,294.02079 L 1881.7762,292.30168 L 1881.3332,292.30168 C 1881.0885,292.30168 1880.4523,291.56261 1879.9154,290.65346 L 1878.9406,289.00524 L 1880.3584,288.45584 L 1875.272,283.90108 L 1874.1023,284.02514 C 1873.4601,284.09361 1872.6623,284.31601 1872.33,284.52138 L 1871.7275,284.89356 L 1870.0261,284.41504 C 1869.0893,284.1464 1867.7053,283.581 1866.96,283.17445 L 1865.6131,282.44782 L 1858.9848,281.63257 L 1855.8479,278.63742 L 1850.3006,278.88554 L 1848.422,280.03752 L 1845.48,278.10574 L 1845.48,276.08534 L 1841.2265,272.07999 L 1838.958,271.63692 C 1837.7103,271.39914 1836.1791,271.24576 1835.5553,271.28247 L 1831.3018,271.37108 L 1831.3018,272.45217 L 1830.5929,272.45217 C 1830.2019,272.45217 1828.0403,271.55895 1825.79,270.46722 C 1823.5396,269.3755 1821.4372,268.48228 1821.1112,268.48227 C 1820.7851,268.48227 1819.948,268.16327 1819.2503,267.77336 C 1818.5527,267.38346 1817.8467,266.91448 1817.6907,266.72772 C 1817.5347,266.54096 1816.9605,266.38617 1816.4147,266.39098 z M 1781.5008,273.10791 C 1780.8274,276.8664 1780.3384,280.66782 1780.6147,284.48593 L 1780.8982,284.929 L 1784.3364,284.929 L 1786.4632,282.37692 L 1786.4986,279.32861 L 1785.3644,278.6197 L 1785.3289,275.00425 L 1783.9465,273.26742 L 1781.5008,273.10791 z \"},\"ma10\":{\"name\":\"MA-10\",\"path\":\"M 2467.4962,334.16286 L 2466.2024,336.71494 L 2465.0681,336.96306 C 2464.4443,337.09135 2463.4872,337.17884 2462.9414,337.17573 L 2461.9489,337.17573 C 2461.6852,338.76541 2461.3963,340.15316 2460.7792,341.64187 L 2462.5692,341.64187 L 2463.4317,338.91583 L 2465.3517,338.93029 L 2466.422,342.13488 L 2466.6648,346.49363 L 2467.9661,347.24332 C 2468.7944,346.74567 2470.7082,346.52566 2473.0257,346.35613 L 2474.8688,349.86524 L 2476.1626,349.56395 L 2476.836,351.35395 L 2476.1271,352.70088 L 2475.4182,354.03009 L 2478.6792,357.73415 C 2480.4744,359.76626 2482.272,361.56341 2482.6845,361.72177 L 2483.4467,362.00534 L 2487.0798,360.19762 L 2488.8875,361.33187 L 2489.2774,364.61059 L 2490.5712,365.40811 L 2489.2065,366.79049 L 2489.7914,367.51712 C 2490.1205,367.9137 2490.5346,369.07456 2490.6952,370.10465 C 2490.8559,371.13473 2491.1999,372.25078 2491.475,372.58583 L 2491.9713,373.20613 L 2491.7232,374.51762 C 2491.5842,375.23904 2491.0874,376.35743 2490.6067,377.01653 C 2490.1257,377.67563 2489.0969,379.16719 2488.3204,380.33068 C 2487.5439,381.49419 2486.9026,382.63316 2486.9026,382.84732 C 2486.9026,383.06147 2486.9939,383.11907 2487.1152,382.9891 C 2487.2367,382.85913 2488.2362,381.57828 2489.3306,380.13573 C 2490.4249,378.69319 2491.6106,376.96375 2491.9713,376.28989 L 2492.6271,375.06702 L 2499.0604,371.98326 L 2499.9288,368.49187 L 2502.7822,367.18039 L 2502.7822,365.60306 C 2504.1669,365.28872 2505.5422,364.89819 2506.9647,364.84098 C 2507.2414,364.89695 2508.0069,364.47883 2508.6661,363.90167 C 2509.3252,363.32453 2510.8921,362.19565 2512.1398,361.40276 C 2513.3875,360.60988 2515.3897,359.60253 2516.5882,359.16969 L 2518.7681,358.38989 L 2520.4873,360.64068 L 2520.0087,354.40227 L 2515.897,345.89534 L 2510.4207,339.08979 L 2506.4685,337.10484 L 2501.2226,337.10484 L 2499.9997,338.57583 L 2502.091,339.88732 L 2502.6758,337.67197 L 2506.1849,337.67197 L 2508.3471,339.83415 L 2509.0915,341.88999 L 2509.8181,343.94583 L 2511.5904,343.64455 L 2513.8412,345.91306 L 2514.5501,347.93346 C 2514.94,349.04063 2515.259,350.48782 2515.259,351.14128 L 2515.259,352.3287 L 2513.1323,353.94148 C 2511.9626,354.83501 2510.2748,355.94934 2509.375,356.40494 L 2507.7269,357.23791 C 2507.0881,358.26324 2506.4484,359.28795 2505.795,360.30395 L 2504.1114,359.24059 L 2500.2301,360.35712 L 2495.0019,360.35712 L 2491.156,357.7696 L 2490.7839,354.49088 L 2487.895,350.71593 L 2487.1684,350.71593 C 2486.7636,350.71593 2486.3508,350.97442 2486.2469,351.28306 L 2486.0519,351.83247 L 2484.0669,351.26534 C 2482.9752,350.95036 2481.5716,350.29292 2480.9477,349.81207 L 2479.8135,348.94366 L 2481.5148,347.59672 L 2481.9047,342.77613 L 2481.4263,342.77613 L 2476.1271,338.36316 L 2476.1271,337.10484 L 2474.5675,337.10484 L 2473.1497,335.40346 L 2468.2582,335.40346 L 2467.4962,334.16286 z M 2522.1,376.23672 L 2522.738,379.49771 L 2521.5329,381.76623 L 2518.396,383.04227 C 2516.6695,383.74294 2515.259,384.4845 2515.259,384.70821 C 2515.259,384.93191 2515.4504,385.31829 2515.6844,385.5589 L 2516.1097,386.00197 L 2524.0673,385.50573 L 2527.4346,383.89296 L 2527.8245,381.87257 C 2526.4456,380.24206 2525.0792,378.60119 2523.7305,376.94564 C 2523.4171,376.55572 2522.9235,376.23672 2522.6317,376.23672 L 2522.1,376.23672 z M 2495.0196,378.07989 L 2491.9713,381.90801 L 2489.9863,388.39455 L 2487.2748,389.03257 L 2486.8849,390.20227 L 2488.728,391.12385 C 2489.7478,391.6313 2490.7803,392.06093 2491.0143,392.08088 L 2491.4396,392.11633 L 2491.4396,389.83009 L 2495.1259,387.56158 L 2504.6076,384.63732 L 2503.8987,381.07504 L 2502.215,379.39138 L 2502.215,382.38653 L 2499.0958,381.55356 L 2497.7312,378.80653 L 2495.0196,378.07989 z M 2486.0519,383.04227 C 2485.8959,383.04227 2485.7683,383.16986 2485.7683,383.32583 C 2485.7683,383.48179 2485.8959,383.60939 2486.0519,383.6094 C 2486.2078,383.6094 2486.3354,383.48178 2486.3354,383.32583 C 2486.3354,383.16987 2486.2078,383.04226 2486.0519,383.04227 z M 2485.4847,383.89296 L 2484.4923,384.67276 C 2483.9464,385.10086 2483.4998,385.54746 2483.4998,385.66524 C 2483.4998,385.78301 2483.5948,385.8779 2483.7125,385.87791 C 2483.8302,385.87791 2484.2769,385.43129 2484.7049,384.88544 L 2485.4847,383.89296 z \"},\"ri1\":{\"name\":\"RI-1\",\"path\":\"M 2450.3405,358.23039 C 2444.7047,359.84682 2439.2047,361.95571 2433.7166,364.00801 C 2433.8811,365.60998 2434.3771,367.17617 2434.8685,368.72227 L 2443.5704,365.60306 C 2444.0471,366.5622 2444.4195,367.56789 2444.7756,368.58049 L 2446.9909,368.65138 C 2448.2024,368.68804 2450.3971,369.06943 2451.8824,369.50207 L 2454.594,370.28187 L 2456.8271,373.96821 L 2459.5918,373.96821 L 2460.1057,372.55039 L 2461.6122,373.96821 L 2460.4425,373.96821 L 2460.9919,377.65455 L 2461.4881,376.18356 L 2463.1895,377.60138 L 2462.8528,374.25177 L 2461.2046,372.26682 L 2456.8625,371.09712 L 2456.3131,370.0692 C 2456.0107,369.5042 2455.6471,368.37546 2455.4978,367.55257 C 2455.3486,366.72965 2455.0609,365.78663 2454.8598,365.46128 L 2454.4876,364.8587 L 2452.7154,365.17771 L 2450.3405,358.23039 z M 2465.3517,375.6696 L 2465.3517,377.67227 L 2462.9946,379.14326 L 2463.668,380.93326 L 2462.4451,387.66791 L 2463.6148,389.08573 L 2462.2857,390.41494 L 2463.6857,390.41494 L 2464.2174,388.9794 L 2464.7669,387.54385 L 2466.4859,386.88811 L 2466.4859,385.80702 C 2466.4859,385.21315 2465.9478,383.57543 2465.2808,382.15613 L 2464.0579,379.56861 L 2465.2276,378.41663 L 2466.1315,379.72811 C 2466.6354,380.44764 2467.0531,381.45394 2467.0531,381.9789 C 2467.0531,382.50386 2467.6156,383.96956 2468.2937,385.23989 L 2469.5166,387.56158 L 2471.023,386.30326 L 2471.023,383.57395 L 2468.1873,377.97356 L 2468.1873,375.6696 L 2465.3517,375.6696 z M 2457.979,377.93811 L 2457.979,379.67494 L 2459.769,380.36613 L 2460.7792,383.04227 L 2461.9489,383.04227 L 2461.9489,379.53316 L 2459.6804,378.94831 L 2459.6804,377.93811 L 2457.979,377.93811 z M 2458.936,383.44989 C 2459.2017,385.61964 2459.3464,387.82616 2459.9994,389.9187 L 2460.3893,390.52128 L 2461.9135,388.99712 L 2460.4247,383.94613 L 2458.936,383.44989 z \"},\"fl16\":{\"name\":\"FL-16\",\"path\":\"M 2212.944,1342.4114 L 2171.0296,1350.6348 L 2177.7997,1387.4095 L 2145.5265,1393.9492 L 2147.9014,1397.7064 L 2151.1624,1396.9798 L 2151.9245,1399.0002 L 2150.5953,1399.4433 L 2150.5953,1401.6054 L 2152.7574,1401.6054 C 2153.1104,1403.4611 2153.4983,1405.3131 2153.5018,1407.2058 L 2153.3423,1407.9856 L 2180.9544,1402.9878 C 2182.0129,1408.1591 2182.9089,1413.3692 2184.3217,1418.4598 L 2200.3785,1415.1102 L 2201.371,1420.8878 C 2203.9364,1420.6834 2206.3366,1419.9974 2208.7437,1419.0801 L 2206.6879,1408.8009 L 2209.3463,1407.2235 L 2208.3538,1403.874 L 2205.7308,1404.5474 C 2205.156,1402.5544 2204.2042,1400.6125 2203.994,1398.5394 L 2214.5568,1396.3949 L 2215.3543,1384.5738 L 2224.8714,1372.416 L 2220.3344,1351.893 L 2234.4949,1348.7561 L 2235.2038,1344.9989 L 2238.8547,1344.3254 L 2241.3181,1349.1106 L 2238.4648,1351.2905 L 2239.0673,1353.1514 C 2237.5374,1355.0776 2235.7769,1356.8606 2234.548,1358.9999 C 2234.5538,1359.1998 2235.2872,1362.9159 2236.1785,1367.2587 L 2237.7913,1375.1453 L 2238.8192,1375.9074 C 2239.3854,1376.3215 2240.2782,1376.6518 2240.8042,1376.6518 L 2241.7612,1376.6518 L 2243.2322,1378.4241 L 2247.2907,1377.786 L 2250.4099,1382.7484 L 2250.3036,1386.2398 L 2248.7085,1388.0829 L 2248.7085,1393.7188 L 2250.4453,1397.0684 L 2251.5442,1397.0684 L 2251.5442,1393.9847 C 2252.7645,1395.2698 2253.8453,1396.7636 2255.4077,1397.6355 L 2255.709,1397.6355 L 2256.4179,1394.6049 L 2255.3546,1392.6554 L 2257.2775,1391.3558 L 2256.5508,1390.3988 L 2259.165,1388.5083 L 2258.0484,1388.1007 L 2255.7149,1389.5874 L 2254.4211,1387.9037 L 2262.8336,1381.5787 L 2260.4764,1376.9885 C 2259.1868,1374.4636 2256.9433,1370.6117 2255.4786,1368.4284 C 2254.0141,1366.245 2252.6555,1363.948 2252.4657,1363.3243 C 2252.276,1362.7004 2251.5459,1361.552 2250.8352,1360.7722 C 2250.1246,1359.9924 2248.1002,1357.1165 2246.3337,1354.3742 C 2244.5672,1351.632 2243.0151,1349.0974 2242.8954,1348.7384 L 2242.6828,1348.0827 L 2239.7053,1343.1912 L 2238.4825,1342.4114 L 2213.8124,1347.4801 L 2212.944,1342.4114 z \"},\"fl25\":{\"name\":\"FL-25\",\"path\":\"M 2199.7954,1415.7787 L 2184.4829,1418.8447 L 2185.759,1423.3528 L 2180.5662,1426.0225 L 2181.3106,1430.4532 L 2179.9438,1432.6118 L 2181.2021,1433.2627 L 2180.9384,1440.1653 L 2182.9942,1442.5224 L 2181.0625,1445.4643 L 2184.1108,1447.6797 L 2183.4905,1450.6571 L 2189.6403,1456.0449 L 2190.5087,1456.0449 C 2190.9803,1456.0449 2191.5248,1455.8014 2191.7138,1455.4954 L 2192.0506,1454.9461 L 2194.2659,1455.0878 C 2195.4824,1455.1692 2196.6644,1455.4127 2196.8889,1455.6372 C 2197.1135,1455.8617 2197.8731,1456.0448 2198.5903,1456.0449 L 2199.9018,1456.0449 L 2202.0462,1457.0196 C 2203.2265,1457.5562 2204.3183,1458.0937 2204.4742,1458.207 C 2204.6303,1458.3202 2204.7868,1459.0944 2204.8287,1459.9261 C 2204.8707,1460.7579 2205.0858,1461.9977 2205.3072,1462.6732 L 2205.7148,1463.896 L 2208.2669,1464.534 L 2210.9076,1467.352 L 2213.5483,1470.1876 L 2213.5483,1471.889 L 2215.8168,1473.1119 L 2215.8168,1474.8841 L 2220.3538,1480.0237 L 2220.3538,1481.5657 L 2221.9312,1481.5657 L 2222.2679,1482.4695 C 2222.4573,1482.9629 2222.6224,1483.7456 2222.6224,1484.2063 L 2222.6224,1485.0393 L 2221.5767,1484.3835 L 2220.7969,1490.6397 L 2221.6831,1491.9158 C 2222.1763,1492.6176 2222.9131,1493.5899 2223.3136,1494.0602 C 2223.7141,1494.5305 2224.6783,1495.3402 2225.458,1495.8679 L 2226.8758,1496.8249 L 2227.7265,1496.4882 C 2228.1944,1496.3005 2229.4038,1496.0285 2230.4204,1495.8857 L 2232.2635,1495.6198 L 2232.9016,1494.6096 L 2235.1701,1494.6096 L 2238.4488,1491.0119 L 2245.2189,1490.622 L 2245.8746,1491.6676 L 2248.1431,1491.0828 L 2248.1431,1489.789 L 2249.6851,1489.0801 C 2250.5246,1488.6902 2251.5245,1488.3711 2251.9181,1488.3712 L 2252.627,1488.3712 L 2253.8499,1483.8342 L 2254.8247,1483.8519 C 2255.3585,1483.8537 2256.5013,1484.2196 2257.359,1484.6671 L 2258.9186,1485.4824 L 2258.9186,1484.9507 C 2258.9186,1484.6582 2259.8117,1483.4299 2260.9035,1482.2214 L 2262.8885,1480.0237 L 2259.3085,1469.5319 L 2262.8885,1470.3117 L 2262.8885,1467.5824 L 2260.0528,1466.2886 L 2260.0528,1463.4175 L 2262.3214,1463.4175 L 2262.3214,1461.0427 L 2264.0227,1461.6807 L 2264.1312,1458.6635 L 2262.6162,1458.6635 L 2261.1871,1457.1082 L 2262.3214,1454.9992 L 2261.0094,1454.742 C 2259.9508,1452.7371 2259.3986,1450.9855 2258.9186,1448.619 L 2259.787,1446.9531 C 2260.263,1446.0327 2260.8634,1445.2694 2261.134,1445.2694 C 2261.4045,1445.2694 2261.7777,1444.8765 2261.9669,1444.3833 L 2262.3214,1443.4794 C 2261.2067,1442.145 2260.6344,1440.2683 2260.2068,1438.2831 L 2239.5122,1442.5933 L 2238.7678,1441.4059 C 2235.2933,1441.9979 2231.8559,1443.0517 2228.3291,1443.2313 L 2224.237,1427.0787 L 2203.2514,1431.4988 L 2199.7954,1415.7787 z \"},\"fl20\":{\"name\":\"FL-20\",\"path\":\"M 2267.4894,1419.3063 L 2266.3781,1419.7181 L 2266.0591,1421.1359 L 2266.2364,1422.6955 L 2267.4238,1423.7412 L 2266.9275,1425.9565 L 2265.1907,1426.6477 L 2261.9651,1424.6273 L 2263.7729,1422.412 L 2263.1172,1421.2245 L 2261.8588,1421.8271 L 2262.6209,1422.9791 L 2261.2031,1423.4576 L 2260.7954,1422.412 L 2258.7139,1423.3525 L 2255.9749,1429.0403 L 2252.8734,1428.4377 C 2252.724,1428.587 2252.762,1429.5872 2252.962,1430.653 C 2253.1619,1431.7188 2253.5179,1432.8783 2253.7418,1433.2406 L 2254.1494,1433.914 L 2258.3851,1432.7443 L 2262.1069,1434.3039 L 2267.6187,1431.9114 L 2268.2745,1432.7089 C 2268.6737,1433.2548 2268.877,1434.2349 2268.877,1434.747 C 2268.8771,1435.2593 2269.2893,1435.6202 2269.4974,1435.8281 C 2269.4908,1436.192 2269.4645,1438.219 2269.5328,1439.993 C 2269.6073,1441.9302 2269.6745,1441.9602 2269.6746,1441.9602 L 2270.7025,1441.1804 L 2270.7025,1440.9677 C 2270.7025,1440.9677 2270.2737,1440.9431 2270.0999,1440.7196 C 2269.926,1440.496 2270.004,1440.3655 2270.1531,1439.993 C 2270.3021,1439.6204 2270.472,1439.6384 2270.4721,1439.6385 L 2270.2594,1438.2738 L 2270.5784,1438.1852 L 2269.9581,1435.8635 C 2269.7504,1433.3344 2269.2695,1430.8388 2268.8948,1428.3314 L 2268.2922,1428.1718 L 2260.8841,1431.2911 L 2260.317,1430.0859 L 2263.1172,1428.8453 L 2259.9271,1427.8351 L 2262.7804,1426.63 L 2263.3298,1427.4984 L 2264.34,1426.9313 L 2264.6768,1427.9592 L 2268.0086,1426.5946 L 2267.4894,1419.3063 z \"},\"fl22\":{\"name\":\"FL-22\",\"path\":\"M 2263,1382.0164 L 2254.7875,1387.9766 L 2255.8508,1389.2526 L 2258.0307,1387.8703 L 2259.7144,1388.3665 L 2256.9496,1390.5819 L 2257.4636,1391.3439 L 2255.6027,1392.6909 L 2256.6483,1394.2682 L 2258.013,1393.2757 L 2257.2332,1392.4073 L 2262.1956,1387.7462 L 2264.0564,1390.511 L 2264.7122,1395.0835 L 2265.0135,1403.0587 L 2265.1552,1407.2767 L 2264.34,1407.4008 L 2264.2869,1405.9298 L 2264.5704,1405.9298 L 2264.34,1402.3498 L 2264.021,1402.332 L 2263.6311,1395.4734 L 2263.4921,1395.4902 L 2263.7729,1402.3144 L 2264.2514,1411.7074 L 2260.0511,1414.3658 L 2260.0688,1416.6344 L 2260.4233,1418.4066 L 2261.8943,1416.0849 L 2266.0059,1414.2595 L 2267.4238,1414.7734 L 2267.477,1416.2976 L 2266.449,1419.5586 L 2267.6542,1419.1332 L 2268.115,1426.7009 L 2264.5881,1428.1718 L 2264.3046,1427.1794 L 2263.188,1427.7465 L 2262.6918,1426.8249 L 2260.3701,1427.8883 L 2263.7552,1428.7922 L 2260.5119,1430.1214 L 2260.9372,1431.0429 L 2268.5935,1427.8883 L 2269.2138,1427.6934 L 2268.8948,1426.1338 C 2268.7181,1425.276 2268.2907,1420.8735 2267.9554,1416.3508 C 2267.6202,1411.8279 2267.139,1405.3201 2266.8744,1401.889 C 2266.6097,1398.4579 2266.0993,1394.3746 2265.7401,1392.8149 C 2265.3809,1391.2553 2264.8633,1388.9584 2264.5881,1387.7108 C 2264.3131,1386.4631 2263.924,1384.7156 2263.7374,1383.8295 L 2263,1382.0164 z \"},\"fl19\":{\"name\":\"FL-19\",\"path\":\"M 2262.2842,1390.9009 L 2259.5017,1392.4959 L 2257.8889,1396.519 L 2260.0865,1399.9218 L 2258.775,1402.3675 L 2259.5194,1410.4845 L 2256.8458,1413.5694 L 2258.9371,1421.6043 L 2262.0538,1420.427 L 2261.8943,1420.0371 L 2263.8261,1418.956 L 2264.7122,1420.4979 L 2265.297,1420.1789 L 2265.2084,1419.9308 L 2264.8008,1420.0194 L 2264.6413,1419.4168 L 2265.2439,1417.8041 L 2266.13,1417.3433 L 2266.0059,1416.8116 L 2266.6617,1416.3685 L 2267.0871,1417.1837 L 2267.3529,1416.2621 L 2267.2288,1414.8798 L 2265.9882,1414.4722 L 2262.0183,1416.2445 L 2260.3701,1418.8674 L 2259.7783,1416.5732 L 2259.7499,1414.0822 L 2264.0742,1411.2821 L 2263.4007,1395.4911 L 2261.0613,1394.4454 L 2261.6816,1393.3112 C 2262.0168,1392.6847 2262.2842,1391.8889 2262.2842,1391.5389 L 2262.2842,1390.9009 z \"},\"fl12\":{\"name\":\"FL-12\",\"path\":\"M 2166.209,1313.049 L 2164.5198,1313.5893 L 2163.1197,1318.7045 L 2160.5939,1319.3718 L 2159.7988,1316.1511 L 2158.8099,1316.2834 L 2155.6133,1319.4977 L 2153.1651,1315.969 L 2149.4128,1315.9452 L 2150.4712,1317.6349 L 2150.1943,1319.8211 L 2147.7822,1323.082 L 2140.4415,1326.5146 L 2138.8934,1330.2016 L 2139.2362,1331.8529 L 2136.3993,1334.4007 L 2137.569,1338.5301 L 2140.8477,1339.8948 L 2141.4149,1342.9076 L 2137.4982,1344.9457 L 2138.2248,1349.8372 L 2132.0572,1351.2196 L 2130.8698,1347.9054 C 2130.2172,1346.0897 2129.5205,1343.8064 2129.3279,1342.819 L 2128.9735,1341.0113 L 2130.3558,1338.8136 L 2125.4289,1332.5043 L 2122.7174,1333.869 C 2123.0201,1334.4703 2123.7094,1336.0118 2125.2517,1340.3555 C 2127.5415,1346.8044 2125.8994,1345.0194 2125.7125,1347.356 C 2125.5255,1349.6926 2124.9603,1351.6218 2123.7453,1355.3136 C 2123.0025,1357.5706 2121.9121,1358.8689 2121.1754,1359.5493 C 2144.0498,1355.1954 2168.2831,1350.5714 2193.7913,1345.5792 C 2192.6094,1344.6914 2192.5769,1343.4005 2192.1111,1342.1478 C 2191.1291,1341.8956 2191.1323,1341.7625 2190.8928,1340.3944 L 2186.2003,1335.2514 L 2181.7428,1334.8472 L 2180.4227,1331.2815 L 2179.1981,1331.1083 L 2179.0307,1329.3704 L 2175.5667,1327.2584 L 2173.583,1327.6312 L 2173.5486,1326.4425 L 2171.2979,1325.4385 L 2171.3455,1324.3616 L 2174.7812,1325.5197 L 2176.5212,1325.0192 L 2176.5035,1321.3329 L 2166.209,1313.049 z \"},\"fl11\":{\"name\":\"FL-11\",\"path\":\"M 2122.097,1334.1703 L 2109.9684,1340.2527 L 2109.1772,1341.4189 L 2112.8989,1340.8163 L 2114.9725,1343.1203 L 2115.2738,1348.5789 L 2118.836,1348.9334 L 2118.836,1348.5257 C 2118.836,1348.2966 2118.4822,1347.7067 2118.0562,1347.2142 C 2117.6303,1346.7218 2117.1276,1345.5977 2116.922,1344.733 L 2116.5321,1343.1734 L 2118.4816,1342.4291 L 2118.9247,1343.7583 L 2121.5299,1343.7583 L 2122.097,1344.4672 C 2122.409,1344.8571 2122.8602,1345.7943 2123.0895,1346.5408 L 2123.4972,1347.8877 L 2121.9907,1352.5488 L 2119.9703,1354.0375 L 2119.9703,1355.5439 L 2118.4993,1356.1111 L 2117.1436,1360.3674 L 2120.502,1359.6734 C 2121.2384,1358.9884 2122.3172,1357.6943 2123.0541,1355.4553 C 2124.269,1351.7636 2124.8166,1349.8344 2125.0036,1347.4978 C 2125.1905,1345.1612 2126.8326,1346.9463 2124.5428,1340.4973 C 2123.1046,1336.4469 2122.4331,1334.8677 2122.097,1334.1703 z \"},\"tx25\":{\"name\":\"TX-25\",\"path\":\"M 1323.3732,1358.4218 L 1309.2261,1343.2197 L 1292.8396,1357.35 C 1286.9121,1351.3716 1283.5141,1346.805 1278.2337,1340.2972 L 1282.3835,1335.8489 C 1283.4194,1332.3444 1284.6879,1328.8991 1285.5549,1325.348 C 1281.1043,1323.1237 1278.183,1321.076 1274.85,1317.793 L 1273.5415,1314.8854 L 1272.1411,1312.1416 C 1269.1643,1313.3975 1267.8933,1314.4182 1266.5635,1315.5565 L 1264.6113,1309.555 L 1255.099,1299.0229 L 1255.099,1280.8882 L 1259.961,1283.6056 L 1266.8186,1284.3494 L 1265.9113,1281.5771 C 1265.2672,1280.7583 1264.7402,1279.7672 1264.7402,1279.3747 L 1264.7402,1278.6612 L 1266.23,1278.0896 L 1269.2773,1278.6721 L 1269.2773,1283.4682 L 1271.4238,1285.4109 L 1276.2685,1284.8543 L 1279.2468,1282.6524 L 1282.4522,1281.9425 L 1286.4204,1286.5226 L 1291.2847,1288.9247 L 1294.8251,1281.9052 L 1296.0716,1283.7923 L 1294.5731,1287.0222 L 1296.7621,1287.924 L 1299.2452,1288.2964 L 1300.5865,1291.5346 L 1304.7228,1292.8785 L 1305.6561,1294.4664 L 1315.0536,1292.8074 L 1316.9508,1299.6313 C 1320.4541,1297.1631 1324.4924,1295.4437 1327.6419,1292.4936 L 1329.0102,1291.0309 L 1330.2962,1292.0982 C 1331.4642,1292.0292 1332.5915,1291.8515 1333.6801,1291.4556 L 1333.9956,1291.1401 L 1336.0579,1291.6794 C 1336.932,1293.6082 1337.512,1294.9487 1337.9743,1297.4658 L 1342.6277,1305.4785 C 1347.6159,1309.8686 1348.5452,1309.0234 1350.3568,1311.4135 L 1353.9014,1311.0008 L 1358.7773,1320.4577 L 1361.2946,1320.7695 L 1362.9573,1322.1484 L 1356.1739,1329.7973 L 1354.3543,1336.3419 L 1339.3661,1346.6265 L 1337.7768,1346.0166 L 1323.3732,1358.4218 z \"},\"tx20\":{\"name\":\"TX-20\",\"path\":\"M 1230.0722,1344.457 L 1225.0503,1342.5339 L 1226.2242,1340.3404 L 1225.0907,1336.235 C 1225.8492,1334.9673 1226.167,1333.2383 1227.6371,1332.6431 L 1227.7291,1331.1262 L 1229.6328,1333.2442 L 1231.4301,1331.2688 L 1233.0444,1332.4415 L 1234.5368,1331.0604 L 1237.1456,1331.0048 L 1237.1644,1332.6483 L 1238.9378,1333.3332 L 1238.2617,1335.5258 L 1241.273,1336.3546 L 1241.7291,1335.855 L 1241.7639,1331.6875 L 1242.981,1331.6713 L 1245.4465,1334.3046 L 1242.9058,1338.6468 L 1238.9549,1339.4516 L 1239.1472,1339.9274 L 1240.5765,1340.2107 L 1236.1002,1340.3598 C 1233.0225,1342.1492 1231.4959,1342.9887 1230.0722,1344.457 z \"},\"tx22\":{\"name\":\"TX-22\",\"path\":\"M 1426.9036,1313.5233 L 1425.2376,1316.093 L 1424.7237,1319.9389 C 1424.4425,1319.9389 1422.6961,1317.5112 1422.0475,1316.412 L 1420.3107,1315.0829 L 1411.4848,1319.3895 L 1409.8366,1318.0248 L 1408.9327,1319.4958 L 1409.4112,1321.3567 L 1407.9402,1323.2885 L 1397.9978,1324.0683 L 1393.5316,1319.3718 L 1387.3287,1319.3718 L 1386.9565,1317.44 L 1383.8372,1317.5818 C 1382.1232,1317.6615 1380.271,1317.8641 1379.7256,1318.0248 L 1378.7331,1318.3084 L 1378.0065,1322.8454 L 1377.2444,1323.6252 C 1376.8197,1324.0499 1376.4646,1324.6667 1376.4646,1324.9899 L 1376.4646,1325.5748 L 1378.999,1326.9217 L 1377.7229,1327.4888 C 1377.0275,1327.7991 1376.4646,1328.2385 1376.4646,1328.4635 C 1376.8805,1330.2515 1377.5723,1331.9569 1378.166,1333.6918 L 1378.166,1337.9629 L 1376.4646,1338.6187 L 1376.4646,1340.4796 L 1381.6928,1344.1482 L 1384.3512,1341.7025 L 1388.5515,1340.4087 L 1390.2706,1341.3303 L 1393.4607,1341.3303 L 1397.1471,1333.2664 L 1398.8662,1331.8841 L 1401.9854,1331.8486 L 1401.9854,1329.3851 L 1403.864,1327.3116 L 1407.9402,1327.347 L 1410.7759,1328.9775 L 1412.5659,1328.9952 L 1423.2527,1345.7964 L 1431.033,1340.6922 L 1426.1592,1333.0892 L 1414.6572,1326.1419 L 1415.7382,1323.6961 L 1418.5324,1327.4603 L 1420.3285,1327.347 L 1423.1818,1323.9088 L 1425.7339,1323.9088 L 1427.4885,1321.4276 L 1426.6378,1320.4883 C 1426.1761,1319.9783 1425.8127,1319.2125 1425.8225,1318.7692 L 1425.8402,1317.954 L 1428.6759,1314.7284 L 1430.8735,1315.4373 L 1431.2279,1314.5157 L 1429.6506,1313.5233 L 1426.9036,1313.5233 z \"},\"tx18\":{\"name\":\"TX-18\",\"path\":\"M 1407.1179,1318.7973 C 1406.3225,1318.7926 1405.3772,1318.6012 1405.0173,1318.372 L 1404.363,1317.9553 L 1403.2911,1314.8361 C 1402.7016,1313.1205 1401.8477,1311.1362 1401.3934,1310.4263 L 1400.5675,1309.1358 L 1396.3997,1308.0099 L 1395.6352,1304.5293 L 1398.0874,1302.8117 L 1395.2613,1298.6162 L 1399.1314,1298.6162 L 1402.2994,1296.274 C 1404.8671,1296.6551 1407.4761,1296.8631 1409.9783,1297.5715 C 1410.261,1297.7463 1410.4923,1298.2222 1410.4923,1298.6294 L 1410.4923,1299.3695 L 1405.5022,1301.2753 L 1402.5525,1300.5349 L 1402.5525,1305.2695 L 1403.7267,1307.4634 L 1408.2571,1307.0013 L 1408.7909,1303.6324 L 1410.3721,1302.3201 L 1411.2829,1303.2309 C 1411.7838,1303.7318 1412.1937,1304.499 1412.1937,1304.9357 C 1412.1937,1305.3724 1411.5697,1307.1406 1410.8071,1308.8651 L 1409.4205,1312.0005 L 1405.1759,1312.4642 L 1405.9352,1314.4429 L 1408.1404,1314.2683 L 1409.7917,1317.5784 L 1408.5641,1318.806 L 1407.1179,1318.7973 z \"},\"tx17\":{\"name\":\"TX-17\",\"path\":\"M 1308.2319,1143.5619 C 1290.8387,1143.5403 1275.3279,1143.7003 1257.9347,1144.3062 L 1257.9347,1146.8583 L 1268.7101,1172.7336 C 1266.6972,1174.5426 1264.2111,1175.7562 1262.0109,1177.3237 C 1265.4099,1184.6215 1270.6964,1190.9679 1274.5055,1198.0417 L 1278.6349,1195.8618 C 1284.7619,1205.3696 1290.2534,1215.4088 1297.421,1224.1827 L 1325.6889,1206.1233 L 1337.2441,1224.9094 C 1333.3366,1227.4419 1329.3526,1229.8534 1325.4584,1232.4061 C 1326.3481,1233.8493 1327.655,1235.0248 1328.8967,1236.2165 L 1328.365,1238.2724 L 1329.4815,1238.2724 L 1328.7903,1241.108 C 1329.4581,1243.4978 1330.0242,1244.183 1331.0943,1244.5108 L 1332.6539,1244.5108 L 1333.3097,1247.7718 L 1335.1528,1248.4807 L 1337.3327,1247.311 L 1337.3327,1242.8094 L 1343.1103,1242.8094 L 1346.5131,1240.3991 L 1350.9438,1242.2954 C 1349.6467,1246.2654 1347.567,1250.3471 1345.7865,1254.1165 L 1340.1329,1257.2712 L 1339.4772,1259.8233 L 1338.467,1259.8233 L 1338.467,1261.5247 L 1336.2693,1261.5247 L 1335.4718,1264.0413 L 1339.6012,1267.1959 L 1339.6012,1268.6492 C 1339.6012,1269.4495 1339.3448,1270.585 1339.0341,1271.1658 L 1338.467,1272.2115 L 1339.1759,1274.0546 L 1343.518,1276.27 L 1344.7231,1276.27 C 1345.3799,1276.27 1346.4163,1276.012 1347.0271,1275.6851 L 1348.1436,1275.0825 L 1351.2273,1276.7485 L 1354.9314,1275.5079 L 1356.3315,1277.2625 L 1360.0178,1275.7029 L 1360.9749,1274.2142 L 1364.0586,1279.7968 L 1366.2563,1280.3817 L 1366.2563,1281.445 C 1366.2563,1282.0367 1366.5782,1283.0407 1366.9652,1283.6604 C 1367.3521,1284.28 1367.7987,1284.7795 1367.9576,1284.7769 C 1372.5259,1284.3332 1377.1227,1283.8957 1381.6219,1282.9692 L 1381.2675,1279.4778 C 1381.0804,1277.5558 1380.6724,1273.562 1380.3636,1270.5987 C 1380.0548,1267.6355 1379.1622,1261.1277 1378.3786,1256.1369 C 1377.595,1251.1462 1376.8465,1246.6829 1376.7127,1246.2122 L 1376.4823,1245.3437 L 1378.804,1244.6348 C 1380.0835,1244.2355 1381.5031,1243.5308 1381.9586,1243.0752 L 1382.7916,1242.2423 L 1389.3313,1242.0296 L 1386.1235,1237.7761 L 1386.478,1235.8975 C 1386.6787,1234.8661 1387.0729,1233.8807 1387.3464,1233.6999 L 1387.8426,1233.3631 L 1387.2223,1231.7504 L 1370.3148,1231.4668 L 1366.7879,1233.1682 L 1363.8814,1235.4722 C 1362.2828,1236.7357 1360.0836,1238.1345 1358.9899,1238.5914 L 1357.005,1239.4243 L 1354.9137,1237.1913 L 1356.0479,1234.2138 L 1353.9567,1232.3175 L 1350.9615,1222.1092 L 1351.3869,1216.2784 L 1350.3767,1214.7365 C 1349.8213,1213.8899 1348.7494,1212.785 1348.0018,1212.273 C 1347.2543,1211.7611 1344.9682,1209.5339 1342.9154,1207.3284 C 1340.8625,1205.1229 1338.8838,1202.7621 1338.5201,1202.0825 L 1337.8644,1200.8419 L 1336.7124,1200.8419 C 1336.084,1200.8419 1334.8571,1200.4786 1333.9831,1200.0266 L 1332.4058,1199.1936 L 1330.5449,1196.3934 L 1332.2994,1192.1932 C 1327.9344,1186.1081 1325.7333,1182.6208 1319.4859,1172.5918 L 1317.2883,1173.6197 L 1308.9763,1160.558 L 1308.2319,1143.5619 z \"},\"la6\":{\"name\":\"LA-6\",\"path\":\"M 1656.9806,1217.4835 C 1635.6909,1219.4761 1609.2337,1222.2955 1599.7893,1222.3928 L 1600.1437,1224.2359 C 1600.3403,1225.2496 1600.4836,1227.3049 1600.4627,1228.7907 L 1600.4273,1231.4845 L 1605.496,1231.3605 C 1605.1673,1230.5416 1604.8438,1229.4046 1604.4149,1228.6312 L 1602.1818,1228.6312 L 1602.1818,1227.0184 L 1605.6555,1226.2563 L 1607.9772,1228.3476 L 1607.4632,1234.4974 L 1604.2908,1237.014 L 1606.7188,1238.3078 L 1608.9165,1237.1381 L 1612.3015,1237.1381 L 1615.7397,1235.1532 L 1617.4766,1237.7938 C 1616.3822,1239.0647 1614.7227,1239.7089 1613.3294,1240.6118 L 1610.7065,1239.956 L 1607.7999,1244.369 L 1608.4202,1249.0478 L 1610.3697,1249.0478 C 1611.4411,1249.0478 1613.0002,1249.3012 1613.8257,1249.615 L 1615.3144,1250.1821 L 1614.8536,1251.5999 L 1611.823,1251.9544 L 1611.823,1252.3797 C 1611.823,1252.611 1612.8313,1253.5534 1614.0738,1254.471 L 1616.3423,1256.1369 L 1616.679,1257.1294 C 1616.8612,1257.6753 1617.2207,1258.1219 1617.4943,1258.1219 C 1617.7679,1258.1219 1618.9656,1259.0191 1620.1527,1260.1245 L 1622.3149,1262.1449 L 1627.0114,1261.4715 L 1629.6344,1261.7196 L 1627.1355,1263.8286 L 1627.1355,1265.2819 L 1623.7859,1267.7631 L 1622.2617,1267.2136 L 1621.6237,1269.3581 L 1613.6485,1269.0568 L 1612.9218,1270.4924 L 1614.8359,1273.2571 L 1614.6764,1276.2877 L 1619.6919,1276.27 L 1620.454,1278.6803 L 1625.9126,1278.0423 L 1626.462,1279.4955 L 1629.6875,1279.2651 L 1634.0296,1277.1561 L 1633.622,1274.1433 L 1634.579,1274.1078 L 1635.1462,1268.8264 L 1636.0677,1268.4897 C 1636.5679,1268.2978 1637.4476,1267.677 1638.0172,1267.1073 L 1639.0452,1266.0617 L 1640.463,1266.0617 L 1641.8808,1266.0617 L 1641.8808,1265.0869 L 1647.8357,1263.935 L 1652.5677,1264.6439 L 1653.7905,1266.2035 C 1654.4622,1267.0612 1655.2244,1267.7631 1655.4919,1267.7631 L 1655.9881,1267.7631 L 1656.3426,1265.335 L 1658.1503,1264.2008 L 1660.0289,1265.1223 C 1661.06,1265.6367 1662.2383,1266.0617 1662.6519,1266.0617 L 1663.414,1266.0617 L 1665.6825,1261.6132 L 1669.5461,1260.2132 L 1665.0976,1255.9243 C 1664.5435,1255.3783 1663.9456,1254.6133 1663.9457,1254.3469 C 1663.9457,1254.0805 1663.7684,1253.5932 1662.9887,1252.7519 L 1661.1632,1251.2631 L 1661.1632,1250.2707 C 1661.1632,1249.7253 1660.9317,1249.0251 1660.6493,1248.7288 L 1660.1353,1248.1971 L 1656.9806,1217.4835 z M 1599.2753,1219.5571 L 1597.7511,1219.9116 C 1596.9124,1220.1118 1596.0229,1220.3974 1595.7839,1220.5319 L 1595.3586,1220.78 L 1596.0497,1221.8788 L 1597.6448,1220.5496 L 1599.2398,1221.8788 L 1599.9842,1220.6914 L 1599.2753,1219.5571 z \"},\"tx16\":{\"name\":\"TX-16\",\"path\":\"M 832.09079,1203.1118 L 828.66414,1200.3728 L 828.2832,1198.7648 C 828.0737,1197.8805 827.45468,1196.6465 826.90763,1196.0226 C 826.36058,1195.3988 825.74814,1194.2504 825.54669,1193.4706 C 825.34525,1192.6908 824.3589,1190.344 823.3548,1188.2557 L 821.52915,1184.4586 L 817.39195,1182.1208 L 814.77539,1182.4116 L 813.17682,1179.1524 L 811.09007,1178.6068 L 810.0761,1177.1064 C 809.51844,1176.2812 809.03071,1175.1531 808.9922,1174.5996 L 808.92228,1173.5931 L 809.90301,1172.987 L 809.90301,1167.8978 L 837.82111,1169.6512 L 836.4367,1176.4567 L 832.16945,1176.4567 L 830.91099,1191.4447 L 827.45378,1193.7818 L 828.72925,1197.4405 L 832.97324,1197.4405 L 834.32874,1200.4155 C 833.72004,1201.464 833.04498,1202.4007 832.09079,1203.1118 z \"},\"tx19\":{\"name\":\"TX-19\",\"path\":\"M 1004.0206,978.91733 L 997.62261,1143.9695 L 1041.8586,1145.4227 L 1041.8586,1118.0942 L 1069.2759,1118.7387 L 1067.8402,1172.9108 C 1076.6951,1172.9726 1085.5508,1173.439 1094.4067,1173.3893 C 1095.2688,1155.1986 1094.9151,1136.9495 1095.9663,1118.7677 L 1123.1176,1119.3703 L 1122.5327,1146.3975 L 1136.5514,1146.3975 L 1138.3592,1149.1623 L 1137.1186,1151.4662 L 1128.7889,1155.4716 L 1125.1911,1155.4716 L 1122.3909,1157.297 L 1122.3909,1173.5488 L 1212.8614,1174.1192 C 1216.475,1172.0539 1228.258,1165.1433 1231.1556,1163.2696 L 1236.437,1159.8668 L 1235.8167,1147.195 C 1234.1868,1147.1096 1232.5548,1147.0269 1230.9429,1146.7874 L 1230.2163,1119.1753 L 1238.0852,1119.1753 L 1237.3408,1078.9978 L 1233.8317,1078.3243 L 1231.1556,1075.5064 L 1228.6049,1075.3238 L 1228.1508,1074.0558 L 1228.1291,1070.5113 C 1225.7993,1069.3966 1225.9353,1069.0127 1222.4182,1069.268 L 1220.5219,1065.2981 L 1210.6858,1065.2981 L 1211.4833,1119.5653 L 1177.4024,1120.3096 L 1177.4024,1147.5318 L 1149.0637,1147.5318 L 1148.7624,1120.026 L 1129.7636,1119.7247 L 1129.7636,1092.5203 L 1076.4535,1092.5203 L 1076.4535,1064.731 L 1103.1085,1064.731 L 1103.1085,1035.2403 L 1054.619,1034.4959 L 1054.9558,1007.451 L 1046.6615,1007.451 L 1047.0869,980.40605 L 1004.0206,978.91733 z \"},\"tx12\":{\"name\":\"TX-12\",\"path\":\"M 1291.3953,1088.9934 L 1264.2794,1089.1175 L 1264.9174,1116.3397 L 1257.9347,1116.3397 L 1257.9347,1143.7391 C 1268.236,1143.3434 1278.3862,1143.1548 1288.5242,1143.0656 L 1295.826,1138.3868 L 1294.798,1136.1183 L 1296.5349,1130.0748 L 1298.2008,1128.6748 L 1298.2008,1121.8869 L 1296.2336,1116.3397 L 1291.3953,1116.3397 L 1291.3953,1088.9934 z \"},\"tx6\":{\"name\":\"TX-6\",\"path\":\"M 1308.1079,1126.5126 L 1306.3356,1127.7709 L 1305.0064,1130.2698 L 1301.7454,1131.6344 C 1301.0464,1132.7673 1300.8922,1133.4846 1300.4693,1134.8245 L 1300.4693,1136.8272 L 1299.2996,1139.0249 L 1296.2513,1139.0249 L 1289.8534,1143.0833 L 1308.8877,1142.9593 L 1309.5079,1160.6643 L 1317.3946,1173.1412 L 1319.6277,1171.936 L 1332.8666,1192.1932 L 1331.112,1196.3934 L 1332.8134,1198.9633 L 1334.2489,1199.619 C 1335.039,1199.9789 1336.1676,1200.2748 1336.7656,1200.2748 L 1337.8644,1200.2748 L 1339.2468,1202.3306 C 1340.0148,1203.4608 1342.3681,1206.1405 1344.4572,1208.2854 C 1346.5463,1210.4303 1348.4586,1212.1845 1348.7107,1212.1845 C 1350.1051,1213.1251 1350.9066,1214.7393 1352.1135,1215.9062 L 1351.6704,1222.4637 L 1354.5061,1231.7858 L 1356.9518,1234.0898 L 1355.4986,1237.1381 L 1357.0227,1238.9458 L 1360.3014,1237.5635 L 1363.5093,1235.0823 C 1365.2764,1233.719 1367.0058,1232.6011 1367.3551,1232.6011 C 1368.5395,1231.9811 1369.5424,1231.6253 1370.5452,1230.9351 L 1387.7363,1231.0946 L 1388.4452,1233.9126 L 1387.3641,1234.586 L 1386.9742,1237.5103 L 1389.2782,1240.5409 C 1392.7815,1237.9112 1395.8073,1234.6949 1399.1497,1231.8744 L 1405.2641,1236.571 L 1407.5149,1236.571 L 1409.1454,1234.1252 L 1411.6089,1238.0597 L 1417.2093,1236.1102 L 1418.9461,1238.3787 L 1429.881,1225.2107 C 1429.561,1223.3804 1428.8151,1221.2962 1428.4809,1219.4685 L 1427.0631,1218.9191 L 1426.3188,1213.9922 L 1423.554,1213.301 L 1422.5615,1210.9793 L 1421.3564,1209.207 C 1420.5238,1208.4378 1418.7749,1207.3341 1417.4574,1206.7435 L 1415.0648,1205.6625 L 1415.0293,1202.6142 L 1413.0267,1201.9938 L 1411.9101,1199.6013 L 1404.5374,1199.2645 L 1387.5236,1202.6319 L 1386.6729,1203.394 C 1386.2044,1203.8161 1385.0748,1204.4516 1384.174,1204.794 L 1382.5435,1205.4144 L 1380.4345,1203.5003 L 1380.4345,1201.9761 L 1382.4194,1201.9761 L 1382.3308,1197.4037 L 1381.0016,1196.0744 L 1381.0016,1199.0696 L 1379.6901,1199.8849 L 1378.166,1197.7936 L 1378.166,1195.5782 L 1376.181,1194.0718 L 1373.6289,1194.0363 L 1373.6289,1190.3323 L 1368.0994,1188.3651 L 1367.3551,1183.7217 L 1365.122,1183.1368 L 1365.122,1182.4633 C 1365.122,1182.0942 1365.3697,1181.5421 1365.6714,1181.2405 L 1366.2208,1180.6911 L 1365.5651,1178.1567 L 1363.5447,1178.1567 L 1362.7649,1170.7841 L 1359.8938,1170.0574 L 1360.4609,1165.8217 L 1358.6178,1166.0698 L 1356.5974,1164.9532 L 1357.3063,1162.7025 L 1355.9948,1163.5 L 1353.7972,1160.6998 L 1350.9083,1159.9732 L 1350.3767,1158.573 L 1349.845,1157.173 L 1348.9234,1157.173 C 1348.418,1157.173 1347.3233,1156.8051 1346.4954,1156.3577 C 1345.6674,1155.9104 1344.266,1155.3962 1343.3762,1155.2057 L 1341.7457,1154.8513 L 1342.5077,1150.8105 L 1340.6114,1149.7294 L 1339.1404,1147.8153 L 1338.3429,1143.5973 L 1337.0491,1142.5694 L 1309.4725,1143.4732 L 1308.9054,1128.533 L 1308.1079,1126.5126 z \"},\"tx32\":{\"name\":\"TX-32\",\"path\":\"M 1315.0011,1131.6587 L 1313.3878,1126.8329 L 1314.364,1122.8906 L 1320.0142,1120.3868 L 1319.8723,1118.0425 L 1328.2586,1118.0425 L 1328.2586,1120.311 L 1325.9901,1120.311 L 1325.9901,1125.7734 L 1322.996,1125.4151 L 1321.6136,1123.5247 L 1318.065,1123.5247 L 1315.7818,1125.5909 L 1315.7818,1128.2508 L 1319.1846,1128.2508 L 1319.1846,1129.8412 L 1315.0011,1131.6587 z \"},\"ga12\":{\"name\":\"GA-12\",\"path\":\"M 2091.6467,1102.3028 C 2090.6951,1101.308 2089.5036,1100.285 2089.9125,1099.4503 C 2080.8227,1097.1796 2080.3424,1097.565 2078.8097,1097.6258 L 2074.3602,1095.3573 L 2071.5879,1095.3573 L 2068.0232,1093.0684 L 2065.8995,1083.9677 C 2064.2258,1084.8989 2062.6369,1084.633 2060.8339,1084.3775 C 2057.9447,1083.6954 2056.2005,1082.918 2055.3176,1082.0688 L 2055.3176,1080.7764 C 2057.4615,1080.0339 2058.9429,1078.894 2060.2575,1077.654 L 2061.9981,1073.5229 L 2061.4252,1069.2114 L 2055.0341,1063.2044 L 2048.7967,1062.3873 C 2042.6537,1058.3252 2035.5961,1056.8383 2027.2031,1052.1882 C 2025.5118,1046.4134 2024.6107,1040.6385 2024.0868,1034.8637 L 2026.8462,1035.7276 L 2030.5465,1035.0862 C 2031.43,1034.3187 2032.1945,1033.4305 2033.2816,1032.9731 C 2033.6144,1032.9731 2034.689,1032.3327 2035.6698,1031.5499 C 2036.6506,1030.7671 2037.6369,1029.9377 2037.8615,1029.7068 L 2041.8749,1024.9754 L 2044.9764,1023.3715 L 2045.259,1021.3745 L 2046.2544,1020.4963 L 2046.748,1019.869 L 2044.6719,1016.2429 L 2044.2586,1009.4393 L 2041.5248,1007.071 L 2041.6496,1005.9853 L 2042.8094,1005.3699 L 2044.1366,1006.8539 C 2047.9059,1006.7121 2052.2801,1007.5787 2056.5232,1008.2267 L 2058.2973,1012.0362 L 2067.2857,1021.117 L 2075.2208,1024.4147 L 2082.0917,1024.4006 C 2083.0671,1023.3512 2084.2469,1023.0173 2085.5564,1023.1374 L 2089.2945,1019.8991 L 2096.4345,1019.0098 L 2103.2587,1020.6731 L 2104.6467,1022.1977 L 2105.5311,1022.1977 C 2106.0176,1022.1977 2107.1871,1022.5967 2108.1302,1023.0844 L 2109.8448,1023.9711 L 2109.3292,1027.7975 L 2111.9956,1030.3024 L 2113.0707,1032.0857 L 2113.1648,1033.5403 L 2115.3092,1033.5403 L 2116.6783,1041.7636 L 2118.4064,1043.1235 L 2117.8725,1046.8156 L 2123.0094,1049.6457 L 2126.2087,1049.4018 L 2127.2012,1051.3815 C 2127.7471,1051.5666 2128.9195,1052.3579 2129.8068,1053.1399 L 2131.4198,1054.5616 L 2130.7693,1056.2567 L 2131.8918,1057.2178 C 2132.5092,1057.7464 2133.0143,1058.3956 2133.0143,1058.6605 C 2133.0143,1058.9254 2133.3789,1059.5067 2133.8245,1059.9523 C 2134.2701,1060.3978 2134.8671,1060.7625 2135.1513,1060.7625 L 2135.6679,1060.7625 L 2137.0447,1063.7842 L 2135.6898,1067.0553 L 2138.7403,1070.2393 L 2138.5895,1070.7468 C 2138.5066,1071.026 2138.7362,1072.0838 2139.0997,1073.0975 L 2139.7608,1074.9407 L 2141.0028,1075.5464 L 2135.9467,1081.4585 L 2128.3572,1081.2476 L 2123.3854,1078.9106 C 2120.0838,1079.0512 2119.1091,1078.4162 2118.2689,1077.7364 L 2118.2689,1076.0749 L 2114.0154,1076.1247 C 2110.8314,1077.713 2109.5605,1076.9489 2103.24,1079.8544 L 2108.588,1083.6379 L 2105.8591,1086.5028 L 2102.6677,1086.5028 L 2099.8187,1088.8132 L 2097.4658,1095.5244 C 2093.0054,1100.2082 2093.8263,1100.2445 2093.2721,1101.4909 L 2091.6467,1102.3028 z \"},\"ca50\":{\"name\":\"CA-50\",\"path\":\"M 269.71293,1049.7704 L 266.87728,1049.0898 L 266.51483,1046.5842 L 269.92957,1046.5842 L 270.66054,1045.4015 L 266.79783,1040.6294 C 266.21836,1036.3323 265.78121,1032.0124 265.05629,1027.7359 L 264.5129,1025.8836 L 266.61408,1025.4713 L 268.35358,1026.1918 C 269.31032,1026.5881 270.39609,1027.2154 270.76643,1027.5857 L 271.43972,1028.259 L 278.61611,1024.839 C 279.94244,1026.316 281.74173,1027.8866 282.71177,1029.6319 L 278.56127,1034.1074 L 277.22075,1034.1074 L 277.92875,1038.3609 L 274.31722,1041.3439 L 273.68283,1046.8678 L 270.04419,1048.4698 L 269.71293,1049.7704 z \"},\"ca45\":{\"name\":\"CA-45\",\"path\":\"M 282.52669,1011.3929 L 282.18976,1004.4104 L 278.83695,1003.5181 L 277.0856,1005.0969 L 273.35888,1001.761 L 279.20984,999.25893 L 281.00917,995.48566 C 280.47037,994.68544 279.99141,993.39619 279.63768,992.5046 L 283.04045,991.46177 L 283.04045,990.70006 C 283.04045,990.28112 282.76727,989.76945 282.43328,989.56308 L 281.82617,989.18781 L 282.45451,985.27093 L 280.38062,984.76721 L 276.62623,979.66305 L 278.3554,977.6781 L 278.16768,976.05288 C 283.36454,978.54949 285.62811,981.4313 287.00281,983.80939 L 285.72927,985.34392 L 286.89843,990.57086 L 291.96219,992.4374 L 291.54738,995.30633 L 295.81474,996.35212 L 296.36798,986.18503 L 301.24381,986.55134 L 303.52803,983.64736 L 307.89847,985.28778 L 309.68795,984.17728 L 316.18785,986.08913 L 317.08392,980.21475 L 377.18382,989.87137 L 377.2763,987.51035 L 421.41127,994.07578 C 420.95836,996.86537 420.08732,997.92267 417.54368,1000.8318 L 415.66942,1000.8535 L 414.92937,1002.3256 L 416.23314,1003.9338 L 415.86655,1006.6836 C 414.15547,1006.8894 415.01301,1008.708 415.21346,1016.4404 L 412.97851,1017.6726 L 411.80889,1025.1746 L 405.54025,1031.8389 C 357.94642,1025.0235 332.99278,1021.4184 282.52669,1011.3929 z \"},\"ca44\":{\"name\":\"CA-44\",\"path\":\"M 254.40045,1008.3962 L 251.90406,1004.6219 L 253.61623,1000.5242 C 252.21889,999.44881 255.15536,997.17587 256.43815,997.81117 L 258.4844,994.2445 L 259.9031,994.1803 C 261.17323,991.49568 261.53098,989.49536 261.48956,986.46859 L 259.60004,986.12645 L 255.81342,979.55348 L 257.05828,978.0329 L 257.23454,976.16812 L 260.07174,975.97671 L 260.2061,973.42463 L 263.16934,973.42463 L 264.10912,970.41795 C 269.47858,971.01621 272.19324,972.11553 274.99663,973.51214 L 275.30476,972.85654 L 277.69696,973.77325 C 278.58815,976.14339 276.84898,975.53571 278.01313,977.55849 L 276.07838,979.68432 L 278.19372,982.51877 L 275.87158,984.79591 L 271.73164,984.23382 L 272.22905,987.85159 L 269.82006,990.41581 L 267.4143,989.81205 L 264.72588,992.67378 L 266.14455,994.38322 L 259.78817,1001.4072 L 259.78817,1003.8227 L 258.42707,1005.1838 L 255.76355,1005.1838 L 254.40045,1008.3962 z \"},\"ca42\":{\"name\":\"CA-42\",\"path\":\"M 253.54976,998.29136 L 253.54976,995.6258 L 251.56481,995.18315 L 255.84759,992.57771 L 256.98628,990.45007 L 255.99998,988.88468 C 255.45752,988.02372 254.15817,986.53319 253.1125,985.57236 L 251.21132,983.82549 L 251.931,980.95809 L 247.87847,978.56707 L 247.31472,974.48845 L 241.56489,973.6415 L 241.64006,972.60116 C 241.64006,972.21501 241.12964,971.43713 240.5058,970.87256 C 239.88196,970.30798 239.37154,969.63043 239.37154,969.36683 C 239.37154,969.10328 239.15755,968.62451 239.44718,968.62451 L 243.7876,970.4011 C 245.16466,970.51782 245.37663,969.95812 245.96444,969.32316 C 248.04954,969.28272 249.5333,968.75365 251.24257,968.14949 L 254.1353,969.24507 L 256.32442,968.48182 L 257.98592,968.70482 L 258.84184,969.89766 L 258.95459,972.56509 L 259.78817,973.49156 L 259.78817,975.69315 L 256.95253,975.69315 L 256.91495,977.77377 L 255.34886,979.65868 L 259.26715,986.5219 L 260.92243,987.15709 C 261.03354,990.17438 260.61847,991.61319 259.67724,993.84127 L 258.06246,993.84127 L 256.51298,997.24206 C 255.07662,997.24206 254.49691,997.25697 253.54976,998.29136 z \"},\"ca41\":{\"name\":\"CA-41\",\"path\":\"M 295.45904,995.75952 L 292.04861,994.85904 L 292.39807,991.95528 L 287.74138,990.39863 L 287.0923,988.97406 C 286.73529,988.19051 286.44322,987.10213 286.44322,986.55531 C 286.44322,986.00854 286.72378,985.28063 287.06667,984.93774 L 287.69017,984.31424 L 287.35159,983.26471 C 287.16541,982.68743 286.15546,981.3219 285.10724,980.23018 C 284.05907,979.13846 282.14552,977.62042 280.85496,976.85678 L 278.50853,975.46834 L 277.87828,973.48265 L 275.66778,972.78106 L 275.66778,971.72325 L 277.13301,971.72325 L 282.05983,966.7032 L 281.37468,964.9177 L 279.27823,964.9177 L 271.61417,957.29124 L 272.15963,954.4379 L 271.15786,952.56609 L 273.39926,951.97991 L 273.39926,951.10959 C 273.39926,950.63094 273.14502,950.08213 272.83423,949.8901 L 272.41106,949.20971 L 274.04817,946.10066 L 276.14264,947.99612 L 278.62155,945.5172 L 281.78018,946.14892 L 281.78018,937.82018 L 278.98689,935.81748 C 278.9929,935.26493 279.42166,933.30028 279.82409,931.74068 L 280.55575,928.90503 C 282.83604,927.57511 284.45406,926.62364 287.39662,925.76677 L 289.49097,930.41116 L 291.26382,928.25992 L 298.77566,924.65157 L 303.53166,924.65157 L 304.65951,924.04797 C 305.27984,923.71597 307.35961,923.19115 309.28121,922.88167 L 312.77501,922.31902 L 320.75451,918.56565 L 326.99293,917.13462 L 328.6997,915.6535 L 331.81619,915.25481 L 334.93273,914.85612 L 336.63411,914.01796 C 337.56988,913.557 338.97352,912.56577 339.75332,911.81529 C 340.53312,911.06475 342.58057,909.23474 344.30317,907.74858 L 347.43519,905.04649 L 349.40733,904.2562 C 350.49202,903.8215 352.47067,902.69773 353.80433,901.75885 L 356.2292,900.05179 L 358.39632,900.01663 L 360.56343,899.98147 L 361.35917,899.34867 C 361.79682,899.00062 362.92053,898.54028 363.85629,898.32574 C 364.79205,898.11113 366.57851,897.74108 367.82619,897.50346 C 369.07388,897.26577 370.73273,896.72779 371.51253,896.30789 C 376.06753,893.78525 379.88147,889.70697 384.82758,887.90418 L 419.65478,935.78283 L 418.52171,943.95918 L 420.85273,946.92254 L 420.85273,950.0194 L 425.27712,955.02834 L 425.72419,958.41342 C 425.97004,960.27519 426.20188,962.0537 426.23937,962.36563 C 426.27691,962.67755 426.70447,963.79541 427.18959,964.84976 L 428.07165,966.76683 L 427.06908,971.22877 L 427.72519,972.29038 L 429.92678,972.29038 L 429.92678,972.77533 C 429.92678,973.04205 431.45735,974.84399 433.32803,976.77971 C 435.19876,978.71538 436.98521,980.77723 437.29793,981.3616 C 437.6107,981.94603 437.86659,982.95132 437.86659,983.59569 L 437.86659,984.76721 L 436.38683,984.76721 L 434.20912,986.76191 L 432.0314,988.75662 L 430.55375,989.10659 C 429.74105,989.29908 428.69328,989.77671 428.2254,990.16798 C 427.75752,990.55924 426.48148,991.06489 425.38976,991.29157 C 424.29803,991.51825 422.7378,992.09151 421.92261,992.56551 L 420.44037,993.42726 L 376.61669,987.03572 C 376.69707,987.83106 376.58264,988.59504 376.3621,989.30424 L 316.64719,979.66305 L 315.89484,985.33434 L 309.68285,983.58367 L 307.78791,984.64414 L 303.17352,983.01013 L 300.72613,985.84305 L 295.80085,985.6179 L 295.45904,995.75952 z \"},\"ca37\":{\"name\":\"CA-37\",\"path\":\"M 226.66193,969.98035 L 223.86769,975.70478 L 225.88451,977.80077 C 226.90914,978.85398 227.08688,979.33003 227.86385,979.65001 L 230.56332,980.86684 L 233.32808,977.81852 L 232.83661,977.15804 L 230.69335,977.77956 C 230.35713,975.49749 231.5022,976.02208 231.32191,973.66209 L 226.66193,969.98035 z \"},\"ca47\":{\"name\":\"CA-47\",\"path\":\"M 244.68639,988.60741 L 239.22151,982.2749 L 240.97552,977.15974 L 244.57684,977.12265 L 245.77507,978.1922 C 244.97578,980.34723 243.94167,982.15626 243.90857,984.20008 L 245.06716,984.20008 L 246.32755,986.96631 L 244.68639,988.60741 z \"},\"ca43\":{\"name\":\"CA-43\",\"path\":\"M 261.31454,972.85751 C 260.57904,972.85751 259.80706,972.68737 259.59915,972.4794 C 259.39118,972.27149 259.22105,971.55691 259.22105,970.89144 L 259.22105,969.68159 L 257.87436,968.24732 L 258.96884,966.41946 L 261.3674,965.8136 L 265.004,967.84023 L 271.10971,961.2667 L 274.99515,961.22292 L 279.11195,965.20739 L 281.16385,965.17819 L 281.7041,966.6348 L 279.1884,969.0561 C 278.0056,970.21111 276.7422,971.15612 276.38094,971.15612 L 275.47592,971.14154 L 274.87561,973.08458 L 273.05003,972.1106 C 272.15039,971.6151 270.06194,970.94243 268.40898,970.61576 C 266.75603,970.28909 265.02708,970.02186 264.5668,970.02186 L 263.73,970.02186 L 262.65189,972.85751 L 261.31454,972.85751 z \"},\"ca25\":{\"name\":\"CA-25\",\"path\":\"M 230.86835,948.97827 L 229.44679,948.91844 L 226.82331,946.30142 L 228.24431,944.02604 L 226.74419,942.21855 L 225.34384,943.38082 L 223.92018,941.66543 L 218.61463,941.66543 L 217.53709,942.68705 L 212.41098,941.46824 L 208.93193,922.58075 C 222.21514,925.24059 220.12859,925.70075 229.06817,928.05434 L 230.54339,924.72161 C 232.09086,924.09743 232.99792,923.4454 235.26933,923.51731 L 235.8626,925.78582 L 238.6286,925.78582 L 240.5058,923.71155 C 240.46198,921.18165 240.34727,920.28218 241.22503,916.12178 L 268.94146,921.10701 C 272.41189,903.64416 275.45698,888.16631 278.28939,870.20721 L 279.63768,870.20721 L 279.63768,867.9387 L 277.76048,867.9387 L 279.32423,866.09553 L 280.08469,860.94929 L 261.9875,857.82821 L 262.62166,853.79592 L 264.36133,853.11679 L 264.17174,846.03335 C 263.28738,843.87316 262.93469,841.50029 262.33389,836.39812 L 263.92544,834.64705 L 261.9063,830.92612 L 261.80605,825.25364 L 263.1145,825.40404 L 263.83475,823.13474 L 261.41232,819.73276 L 262.70271,819.73276 L 262.34025,817.18068 L 259.78817,816.81823 C 259.8976,815.85978 259.93183,814.67573 258.83819,814.01803 L 258.59661,809.28511 L 256.76039,807.84109 L 258.6631,805.73863 L 256.63709,803.90516 L 256.38415,800.84862 L 255.11226,799.31612 L 257.08479,799.31612 L 255.45452,790.80919 L 256.84608,790.80919 L 257.61891,785.1902 C 256.77532,784.20623 256.18237,780.74096 255.91525,775.24548 L 248.74011,769.2583 L 246.64396,769.2583 L 246.05437,762.87964 L 247.38161,761.40113 L 245.99753,756.78147 L 244.04746,756.78147 L 242.63542,755.08009 L 243.99869,755.08009 L 243.29102,751.85806 L 245.04283,750.40417 L 245.04283,749.30206 C 245.04283,748.69592 244.77866,747.70633 244.45574,747.10302 L 243.86865,746.00603 L 241.07293,746.00603 L 241.07293,745.2404 C 241.07293,744.81937 240.29364,743.39899 239.34109,742.0841 L 237.60925,739.69337 L 236.26385,740.14186 L 234.38592,738.00821 L 233.52298,732.50422 L 231.33986,727.89205 L 229.54263,727.593 C 228.55419,727.42848 227.24474,727.35702 226.63287,727.43415 L 225.52033,727.57434 L 225.10928,725.58486 L 228.46554,723.65866 L 228.4952,721.50822 C 228.51154,720.32553 228.68502,719.09883 228.88068,718.7822 L 229.3367,717.57995 L 226.28333,715.5752 L 225.09686,711.51683 L 226.43142,709.02322 L 225.70975,705.1765 L 223.07833,702.33712 L 220.35815,702.33712 L 219.23847,699.87782 L 218.12815,699.2643 C 217.51752,698.92686 216.68809,698.34997 216.28498,697.98236 C 215.88192,697.61475 215.55214,697.04949 215.55214,696.72629 L 215.50201,695.86294 L 213.26922,694.9168 L 214.48089,692.65271 L 213.73092,687.65155 C 214.96203,686.58665 215.62241,685.91318 216.11926,684.42799 L 216.11926,683.05474 L 218.22806,683.05474 L 220.88495,677.67581 C 220.06241,674.17566 219.29,671.77824 219.3447,667.40085 L 221.70411,664.83284 L 384.23873,887.40255 L 383.16895,888.02072 C 382.58056,888.36072 380.16379,889.97533 377.7983,891.60878 C 375.43286,893.24228 372.73186,895.0103 371.79609,895.53784 C 370.86033,896.06533 369.07388,896.69303 367.82619,896.9327 C 366.57851,897.17237 364.79205,897.54401 363.85629,897.75861 C 362.92053,897.97315 361.79682,898.43349 361.35917,898.78154 L 360.56343,899.41434 L 356.2292,899.48466 C 353.24218,901.76214 350.42222,903.53839 347.43519,904.47937 C 340.20489,910.09139 338.2649,913.25313 334.93273,914.29875 L 328.41007,915.0921 L 326.9648,916.53737 L 320.75451,917.96994 L 312.74178,921.75723 C 308.11249,922.47725 306.1562,922.80749 303.53166,924.08444 L 298.77566,924.08444 L 290.81949,927.93587 L 289.48417,929.17861 L 287.56177,925.14724 C 284.98377,925.91184 282.15171,926.85429 280.09333,928.61041 L 278.28689,936.15509 L 281.19048,938.54622 L 281.21855,945.45498 L 278.43888,944.92364 L 276.03789,947.50073 L 273.99254,944.97485 L 272.05494,949.0381 L 270.69406,949.0381 L 268.96245,946.39534 L 262.89028,943.64403 L 262.45675,948.9642 L 257.93752,946.57727 L 254.48739,947.87951 L 252.87748,946.54347 L 245.44782,946.30131 L 242.91252,943.12176 L 241.49544,943.76743 C 240.71598,944.12257 239.16823,945.21219 238.05592,946.18879 L 236.03359,947.96441 L 234.16178,948.50126 C 233.13228,948.7965 231.6502,949.01116 230.86835,948.97827 z \"},\"ca22\":{\"name\":\"CA-22\",\"path\":\"M 107.46875,825.84375 C 107.49909,825.87617 107.53277,825.90426 107.5625,825.9375 C 107.73608,826.13156 107.89806,826.35757 107.96875,826.625 C 108.02677,826.8445 107.95856,827.09577 107.84375,827.34375 C 107.90968,828.60231 108.27228,829.84879 108.8125,831 L 108.8125,831.03125 C 109.20446,832.30433 110.49694,833.01526 111.40625,834.15625 C 111.41572,834.16813 111.42812,834.17552 111.4375,834.1875 C 111.72689,834.47999 111.89651,834.77027 111.90625,835.0625 C 111.91641,835.36723 111.787,835.65094 111.625,835.875 C 111.301,836.32313 110.84816,836.70549 110.71875,837.09375 C 110.49623,837.59451 110.59787,837.86601 110.8125,838.1875 C 111.02713,838.50899 111.38039,838.84638 111.625,839.3125 L 111.65625,839.375 L 111.65625,839.4375 C 111.62892,839.83608 111.44601,840.13215 111.1875,840.28125 C 110.92899,840.43035 110.62753,840.4656 110.34375,840.46875 C 110.05997,840.4719 109.80179,840.44668 109.5625,840.46875 C 109.37505,840.48604 109.239,840.55271 109.125,840.625 C 109.07927,841.11225 109.23258,841.64122 109.53125,842.1875 C 109.84816,842.76715 110.25985,843.34186 110.5625,843.90625 L 110.59375,843.9375 L 110.59375,843.96875 C 110.78772,845.06576 111.48212,845.87314 112.21875,846.78125 L 112.21875,846.8125 L 112.25,846.8125 C 112.77299,847.70462 113.9112,848.08641 114.96875,848.1875 C 114.97867,848.18845 114.9901,848.1866 115,848.1875 C 115.67289,848.02334 116.27039,848.14592 116.65625,848.53125 C 117.01655,848.89106 117.12155,849.47349 117.125,850.0625 L 117.15625,850.0625 C 118.09642,851.26186 117.86887,852.65364 117.96875,853.9375 L 117.96875,853.96875 C 117.95591,854.45652 118.31357,854.87485 118.6875,855.34375 C 118.87446,855.5782 119.05627,855.815 119.1875,856.09375 C 119.31873,856.3725 119.39442,856.71702 119.3125,857.0625 L 119.28125,857.09375 C 118.83406,858.02903 118.67139,859.39297 119.125,860.25 C 119.96476,860.99614 121.10991,861.57264 122.21875,861.53125 C 123.24887,861.54164 124.38326,861.38737 125.4375,861.9375 C 125.45898,861.94871 125.47858,861.95693 125.5,861.96875 C 125.87392,862.08161 126.15333,862.32771 126.3125,862.625 C 126.4821,862.94178 126.55813,863.29452 126.5,863.625 C 126.44187,863.95548 126.25229,864.28304 125.9375,864.4375 C 125.64778,864.57966 125.27456,864.47922 124.875,864.28125 L 124.875,864.3125 C 124.56222,864.28535 124.42277,864.36967 124.34375,864.46875 C 124.26473,864.56783 124.23082,864.76386 124.25,865 C 124.28837,865.47228 124.58716,866.09883 124.8125,866.375 C 125.05175,866.70323 125.52122,867.16869 125.8125,867.6875 C 125.95814,867.94691 126.07368,868.22875 126.0625,868.53125 C 126.05368,868.76989 125.866,869.00408 125.6875,869.21875 C 125.68394,869.5872 125.83411,869.96451 126.03125,870.375 C 126.22839,870.78549 126.48792,871.20761 126.59375,871.6875 L 126.59375,871.8125 L 126.53125,871.90625 C 125.89265,872.71225 125.84065,874.18381 126.40625,875.03125 C 126.71226,875.352 127.07604,875.69466 127.25,876.09375 C 127.3398,876.29975 127.3644,876.54876 127.28125,876.78125 C 127.24198,876.89106 127.11548,876.96664 127.03125,877.0625 C 127.30333,877.27399 127.60135,877.40524 128.0625,877.375 C 128.62101,877.33838 129.25469,877.18881 129.8125,877.21875 C 130.13622,877.10005 130.44518,877.03762 130.6875,877.125 C 130.96504,877.22508 131.15497,877.46457 131.25,877.71875 C 131.44006,878.2271 131.36175,878.87903 131.25,879.375 C 131.04827,880.01858 131.16548,880.4642 131.4375,880.875 C 131.70952,881.2858 132.16908,881.65035 132.65625,882.03125 L 132.6875,882.0625 L 132.71875,882.09375 C 133.0459,882.6083 133.59995,883.04654 134.09375,883.5625 C 134.58755,884.07846 135.03184,884.69381 135.03125,885.53125 C 135.24003,885.79509 135.47379,886.06315 135.65625,886.3125 L 137.28125,888.5 L 138.03125,886.5 L 136.75,883.09375 L 137.4375,881.96875 L 144.09375,882.5625 L 145.09375,881.34375 C 145.65056,880.67147 146.689,879.82742 147.375,879.4375 L 148.625,878.71875 L 151.34375,878.71875 L 152,880.40625 L 153.625,880.40625 L 155.75,883.3125 L 158.28125,883.5 L 158.28125,883.96875 C 158.28125,884.22407 158.70415,884.60311 159.25,884.8125 C 159.79586,885.02188 161.47227,886.4099 162.96875,887.90625 L 165.6875,890.625 L 168.3125,890.625 L 170.53125,892.375 C 171.74382,893.33838 173.37646,894.8677 174.15625,895.78125 L 175.5625,897.4375 L 177.28125,897.65625 C 178.21701,897.76729 179.92403,898.05104 181.09375,898.28125 L 183.21875,898.6875 L 183.21875,900.09375 L 188.03125,901.1875 L 187.75,902.53125 L 189.46875,902.53125 L 189.46875,905.71875 L 201.9375,908.3125 L 201.9375,909.6875 L 206.71875,910.75 L 208.78125,921.78125 L 214.90625,923.21875 C 217.59529,923.74862 220.56423,924.53441 221.5,924.96875 C 222.43576,925.40305 224.22108,926.14157 225.46875,926.59375 C 226.71643,927.04592 228.32346,927.44681 228.53125,927.46875 C 229.04743,926.49119 229.39622,925.33902 229.90625,924.3125 L 231.34375,923.625 C 232.13727,923.25052 233.35166,922.93748 234.03125,922.9375 L 235.59375,923 L 236.1875,925.53125 L 238.5625,925.46875 L 239.9375,923.90625 C 239.78428,920.62983 240.04639,918.55028 240.65625,915.5 L 268.65625,920.5 C 272.08538,903.70511 275.22128,886.84519 278.03125,869.9375 L 279.4375,869.9375 L 279.3125,868.34375 L 276.96875,868.3125 L 278.9375,865.875 L 279.71875,861.28125 C 252.57187,856.86026 249.67003,855.97834 201.09375,846.5 C 200.26738,848.90496 199.75617,851.39026 199.09375,853.84375 L 199.125,858 L 200.75,861.1875 L 199.90625,866.8125 L 196.9375,868.375 L 195.625,866.8125 L 191.875,866.8125 L 191.28125,869.0625 L 192.8125,869.0625 L 194,871.28125 L 194,875.21875 L 202.09375,877.28125 L 203.28125,879.875 L 204.53125,879.75 L 204.375,872.875 C 205.13944,872.28751 206.43808,871.37722 206.75,871.375 C 207.57656,871.59805 208.3367,871.91294 209.03125,872.4375 C 209.13283,877.92612 209.34692,879.23213 210,882.625 L 213.28125,883.75 L 213.28125,886.5625 L 211.5,888.34375 L 208.71875,888.34375 L 207.5625,885.8125 L 203,883.59375 L 200.78125,880.46875 C 196.54155,879.37023 192.7967,878.13165 188.59375,876.1875 C 187.10708,872.65525 185.9996,870.25102 183.59375,867.34375 L 178.84375,864.09375 L 178.6875,861.375 C 177.12516,859.34735 174.0367,859.79788 170.5625,857.84375 L 168.25,859.09375 L 166.40625,857.34375 L 168.5,852.46875 L 167.84375,850.375 L 162.5,849.28125 L 154.1875,841.375 L 154.96875,836.8125 L 107.46875,825.84375 z \"},\"nc13\":{\"name\":\"NC-13\",\"path\":\"M 2213.8301,776.54097 C 2189.4216,782.08823 2165.0689,787.63543 2138.9514,793.18268 L 2140.9541,804.34803 L 2146.6606,799.65873 L 2147.9216,802.34658 L 2151.3501,798.95305 L 2153.5372,802.87701 L 2152.4536,805.25946 L 2154.1185,807.76963 L 2158.4206,806.8527 L 2158.5351,809.94843 L 2152.7184,814.07536 L 2155.3095,816.86031 L 2154.636,817.6578 L 2157.259,817.99456 L 2157.3299,819.6782 L 2158.4642,819.58961 L 2160.3605,816.86031 L 2160.5378,818.86295 L 2162.0442,819.16427 L 2162.7176,819.16427 C 2163.0856,819.16427 2163.9537,819.56302 2164.6494,820.05041 L 2165.9077,820.93654 L 2166.5989,819.16427 L 2169.0269,819.09338 L 2166.7584,818.20724 L 2164.8621,819.37694 L 2162.6645,817.85278 C 2161.4533,817.01337 2160.1874,816.32862 2159.8643,816.32862 L 2159.2794,816.32862 C 2158.8019,815.31681 2158.3423,814.29762 2157.9679,813.24486 L 2160.2364,812.46506 L 2160.2364,810.79912 L 2163.7633,810.09021 L 2162.6863,806.34194 L 2175.4697,803.56721 C 2176.1425,806.22046 2176.6574,808.5348 2176.6832,811.25991 C 2175.3053,811.58936 2175.1144,811.923 2172.2348,810.72823 L 2171.5613,812.5005 L 2172.8551,814.06011 L 2176.9667,814.04236 L 2180.6354,808.42427 L 2179.572,802.52256 L 2202.0432,797.99018 L 2204.0117,806.79377 L 2207.3081,808.67239 L 2207.3081,810.25575 L 2211.6148,809.67087 L 2215.2327,812.52183 L 2217.6795,812.6306 L 2216.2581,817.49833 L 2212.9794,819.19971 L 2212.9794,820.42256 L 2209.4526,818.98704 L 2210.7109,821.36189 L 2214.0125,822.69674 L 2209.6475,824.49879 L 2208.6019,826.8205 L 2212.0578,829.37258 L 2216.2626,829.30328 C 2216.5773,827.23837 2217.3066,825.55354 2218.4912,824.28612 L 2225.1727,825.50902 L 2225.8284,826.55463 L 2234.0164,817.30335 L 2230.9149,814.06011 L 2228.9477,814.06011 L 2227.1454,812.33938 C 2226.2827,812.47776 2224.9812,811.46447 2223.5422,810.09021 L 2217.0202,808.74328 L 2216.2936,804.50751 L 2216.9671,799.59833 L 2214.8758,791.65853 L 2207.9993,792.58011 L 2206.741,784.68307 L 2212.8908,783.9314 L 2212.2351,777.65754 L 2213.8301,776.54097 z \"},\"nc12\":{\"name\":\"NC-12\",\"path\":\"M 2132.9722,813.67015 L 2129.1153,817.12612 L 2133.5814,821.98216 C 2133.4164,823.39045 2133.2046,824.7675 2135.336,827.70664 L 2134.6448,828.80546 C 2133.2619,828.32663 2131.4372,828.82984 2129.0444,830.59543 L 2130.4578,836.73204 L 2128.4772,836.10724 L 2128.1579,836.70743 L 2130.1786,838.55519 L 2130.1786,839.29059 L 2128.8317,839.22644 L 2126.7758,841.28229 C 2126.3431,842.48097 2126.9489,844.21814 2128.3111,845.19241 C 2121.424,843.60542 2122.8722,842.77616 2114.3432,841.23124 L 2113.7243,855.99979 L 2114.9171,856.55467 L 2117.3873,863.38255 L 2111.1103,864.53042 C 2113.2227,865.75593 2114.939,866.46887 2115.9295,866.23595 L 2117.0792,868.11893 L 2117.1347,874.17575 L 2114.8661,874.17575 L 2114.8661,872.47436 C 2114.2781,871.97972 2112.8814,873.4057 2111.4102,875.00869 L 2113.1648,876.28473 L 2113.1648,878.71278 L 2109.1949,878.71278 L 2109.1949,882.22189 L 2106.9972,882.80671 L 2108.3265,884.9512 L 2111.4811,884.9512 L 2110.7722,887.78684 L 2114.2813,887.78684 L 2115.3092,885.23476 L 2114.0154,882.34592 L 2114.9725,880.67998 L 2120.3071,879.47483 L 2118.8892,877.96842 C 2119.5275,875.93731 2120.3658,874.17666 2120.0412,870.86156 L 2121.2286,867.68922 C 2120.1958,867.34401 2120.4659,864.65916 2120.502,862.39008 C 2120.7964,858.09062 2121.8499,855.84961 2122.9123,853.63503 L 2121.7958,852.51852 L 2119.35,853.83001 L 2117.1524,850.88803 L 2120.2716,847.62704 L 2126.4214,850.67536 L 2127.6974,852.11087 L 2129.5052,851.41971 L 2130.5331,846.40414 C 2131.7878,846.58392 2133.0057,846.54167 2134.1485,846.04968 L 2134.1485,842.52288 L 2139.4299,839.10236 L 2137.7108,836.85159 L 2134.7156,838.16308 L 2133.4042,836.99338 L 2133.4751,831.37523 L 2136.9775,830.17456 L 2137.6754,828.23833 L 2140.3338,828.23833 L 2143.5061,832.20823 C 2145.1232,832.64356 2148.2982,829.18401 2151.1978,826.41285 L 2150.4712,824.10889 L 2154.7956,824.80011 L 2156.8337,822.95694 L 2156.9578,825.68625 L 2158.1806,822.56704 L 2160.8568,822.56704 L 2161.9378,819.46553 L 2160.2364,819.16427 L 2160.201,817.39199 L 2158.5528,819.97951 L 2157.0286,820.03265 L 2157.0286,818.33127 L 2154.2816,818.1009 L 2153.874,818.57939 L 2151.3219,817.94137 L 2150.613,819.78454 L 2148.5572,818.68572 L 2146.9444,819.6782 C 2148.0241,820.0318 2148.9777,820.57438 2149.3901,821.92902 L 2147.1748,826.24226 L 2145.3782,826.33555 L 2144.9794,825.31846 L 2140.8389,825.26527 L 2137.8039,818.75662 L 2137.8039,816.34632 L 2133.2669,815.36711 L 2132.9722,813.67015 z \"},\"il12\":{\"name\":\"IL-12\",\"path\":\"M 1688.7567,838.26573 C 1688.603,838.41942 1688.1626,837.9491 1687.7781,837.22051 C 1687.3935,836.49198 1686.4158,835.21514 1685.6054,834.38311 L 1684.1319,832.87024 L 1681.0127,833.4761 L 1681.0127,835.53591 L 1683.2812,836.25594 L 1683.2812,838.05669 L 1682.2887,837.22771 C 1681.7429,836.77186 1680.5779,836.09221 1679.6999,835.71745 L 1678.1035,835.03604 L 1678.8007,832.83933 L 1676.8047,830.72314 C 1675.7069,829.55928 1674.4181,827.78394 1673.9408,826.77803 C 1673.4635,825.77211 1673.0729,824.41338 1673.0729,823.75875 L 1673.0729,822.5684 L 1671.5104,822.5684 L 1670.0705,820.83344 L 1671.3472,818.03137 L 1673.5636,818.03137 L 1674.3149,815.66423 L 1673.6178,811.94869 L 1672.5012,810.93807 C 1671.887,810.38228 1670.6159,808.72984 1669.6766,807.26602 C 1668.7372,805.8022 1667.9687,804.30788 1667.9687,803.94531 L 1667.9687,803.28602 L 1668.786,803.28602 C 1669.2354,803.28602 1669.7726,803.01193 1669.9797,802.67693 L 1670.3561,802.06778 L 1667.9373,799.49307 L 1667.4615,795.73374 L 1666.7226,795.26507 C 1666.3162,795.00736 1665.5767,794.79254 1665.0792,794.78777 L 1664.1746,794.77909 L 1662.0891,792.47457 L 1659.7578,792.79414 L 1659.4618,789.64686 L 1658.099,789.12873 C 1657.3496,788.84381 1656.581,788.35931 1656.3912,788.05215 C 1656.2013,787.745 1655.2833,787.32617 1654.3511,787.12144 L 1652.6563,786.74918 L 1650.8731,784.53692 L 1649.0899,783.79829 L 1647.0867,786.27216 L 1644.7929,786.27216 L 1644.0471,783.92238 L 1645.9618,781.80659 L 1645.1506,780.49409 L 1642.2226,781.05379 L 1640.4921,779.76754 C 1639.5403,779.0601 1638.0903,778.32295 1637.2698,778.12944 L 1635.7779,777.77765 L 1635.2018,775.57453 L 1630.7558,774.37732 L 1628.4756,771.95959 C 1627.2216,770.62985 1625.5221,769.08964 1624.699,768.53686 L 1623.2025,767.53185 L 1621.9144,762.74806 L 1622.5626,758.01889 L 1625.4341,753.78754 L 1625.4373,752.02355 C 1625.439,751.0533 1625.6915,749.35571 1625.9984,748.25112 L 1626.5563,746.24269 L 1629.404,742.38287 L 1629.404,740.03439 L 1627.1277,735.78739 L 1631.1054,730.62663 L 1631.1054,726.75201 L 1625.7176,724.27621 L 1629.1204,722.8049 L 1633.2838,722.75375 L 1635.7998,738.63335 L 1650.7076,737.62988 L 1654.0255,764.72314 L 1681.0127,761.81616 L 1681.0127,767.55692 L 1702.4711,765.02089 L 1706.4774,796.90895 L 1697.5371,798.30811 L 1696.5379,794.02963 L 1689.9314,793.64484 L 1692.3708,817.84031 L 1697.9718,817.76561 L 1698.3659,821.43414 L 1694.7121,821.43414 L 1690.6539,826.17534 L 1690.6539,828.06949 L 1687.2511,832.76691 L 1687.2511,833.65066 C 1687.2511,834.13675 1687.6527,835.3111 1688.1436,836.26036 C 1688.6345,837.20962 1688.9104,838.11204 1688.7567,838.26573 z \"},\"ca17\":{\"name\":\"CA-17\",\"path\":\"M 90.9375,738.34375 C 90.885403,738.35406 90.799072,738.36459 90.71875,738.46875 L 90.71875,738.5 L 90.6875,738.53125 C 90.531048,738.63951 90.414955,738.83095 90.3125,739.0625 C 90.210045,739.29405 90.100941,739.57255 89.84375,739.78125 L 89.8125,739.8125 L 89.78125,739.8125 C 89.568791,739.89147 89.506962,740.04257 89.4375,740.28125 C 89.368038,740.51993 89.344384,740.82069 89.125,741.09375 C 88.808428,741.46394 88.613602,742.07068 88.125,742.53125 C 88.112856,742.5427 88.106317,742.55125 88.09375,742.5625 C 88.08313,742.59648 88.045036,742.59406 88.03125,742.625 L 88.03125,742.65625 C 87.90425,742.92044 87.680835,743.12739 87.46875,743.1875 C 87.214248,743.25963 87.001415,743.27408 86.84375,743.34375 L 86.8125,743.34375 L 86.78125,743.34375 C 86.591188,743.37712 86.38904,743.34968 86.25,743.25 C 86.11096,743.15032 86.029559,742.99162 86,742.84375 C 85.940881,742.548 86.041499,742.23902 86.25,742 C 86.318731,741.91711 86.342933,741.8704 86.34375,741.8125 C 86.344567,741.7546 86.326857,741.68197 86.28125,741.59375 C 86.240847,741.51559 86.159673,741.40344 86.09375,741.3125 C 86.020751,741.48388 86.019734,741.64213 85.84375,741.78125 L 85.78125,741.84375 L 85.71875,741.84375 C 85.524416,741.8731 85.362808,741.89492 85.28125,741.9375 C 85.199692,741.98008 85.164741,741.98015 85.15625,742.15625 L 85.15625,742.1875 L 85.15625,742.21875 C 85.126584,742.34114 85.088916,742.44365 85.03125,742.53125 C 84.973584,742.61885 84.848857,742.68936 84.71875,742.6875 C 84.588643,742.68564 84.526938,742.64496 84.46875,742.59375 C 84.410562,742.54254 84.355257,742.49197 84.3125,742.4375 C 84.226986,742.32855 84.146473,742.20774 84.09375,742.15625 C 84.023313,742.22617 83.955129,742.31803 83.875,742.34375 C 83.739225,742.38733 83.649807,742.37646 83.5625,742.375 C 83.475193,742.37354 83.416215,742.37123 83.40625,742.375 C 83.396285,742.37877 83.394438,742.34615 83.375,742.40625 C 83.336374,742.55572 83.311867,742.68425 83.1875,742.78125 C 83.125317,742.82975 83.021355,742.85286 82.9375,742.84375 C 82.853645,742.83464 82.795264,742.7859 82.75,742.75 C 82.568943,742.60638 82.52517,742.44488 82.46875,742.28125 L 82.4375,742.25 C 82.376997,742.05027 82.30522,741.78462 82.1875,741.625 C 82.12864,741.54519 82.045926,741.5182 82,741.5 C 81.954074,741.4818 81.934149,741.46048 81.84375,741.5 L 81.84375,741.46875 C 81.666641,741.58633 81.485966,741.67951 81.3125,741.625 C 81.129601,741.56753 81.037569,741.4248 80.96875,741.3125 C 80.899931,741.2002 80.857865,741.09999 80.8125,741.03125 C 80.992689,741.50562 81.055024,742.02581 80.96875,742.53125 C 80.968648,742.54122 80.969015,742.55256 80.96875,742.5625 C 80.954247,743.10714 80.659878,743.5753 80.28125,743.9375 C 80.187488,744.21941 80.201841,744.57154 80.21875,744.9375 L 82.46875,744.375 L 84.625,745.53125 L 86.28125,744.125 L 89.125,746.8125 L 90.875,752.8125 L 91.09375,753.25 L 91.4375,757.3125 L 90.625,758.90625 C 90.17113,759.77328 89.197338,761.83187 88.46875,763.5 L 87.125,766.53125 L 85.75,767.625 C 84.99577,768.21827 84.037979,768.68751 83.59375,768.6875 L 82.78125,768.6875 L 83.40625,767.6875 L 81.65625,766.21875 L 79.15625,768.75 L 81.15625,769.875 L 81.15625,770.875 C 81.15625,771.42097 80.850322,772.14969 80.5,772.5 L 79.875,773.15625 L 79.59375,786.53125 L 81.9375,791 L 86.34375,795 L 89.5,801.3125 L 90.3125,806.1875 L 91.15625,806.84375 C 91.61642,807.21783 92.492252,807.98537 93.09375,808.53125 L 94.1875,809.53125 L 94.1875,816.75 L 95.3125,818.1875 C 95.93634,818.98057 96.458383,819.83104 96.46875,820.09375 C 96.47913,820.3565 96.978011,821.14316 97.5625,821.84375 L 98.625,823.125 L 153.15625,835.625 L 153.15625,835 C 153.15625,834.66579 152.80471,834.02346 152.34375,833.5625 L 151.5,832.71875 L 152.875,830.5 L 151.6875,828.09375 L 149.5625,827.90625 L 148.46875,823.59375 L 144.84375,822.59375 C 143.06944,819.26895 140.70403,817.78675 138.65625,814.71875 L 138.46875,813.125 L 136.5625,812.53125 L 136.34375,808.40625 L 138.71875,805.96875 L 136.625,803.625 L 137.25,799.6875 C 139.33445,798.35475 139.84788,799.07711 141.8125,799.0625 L 143.65625,789.3125 L 131.40625,769.84375 L 122.53125,762.34375 L 121.28125,757.34375 L 119.84375,757.34375 L 119.09375,755.40625 L 120.875,754.0625 L 111.09375,751.875 L 109.78125,749.96875 L 107.9375,749.96875 L 103.53125,754 L 101.6875,753.03125 L 102.0625,752.46875 L 101.59375,751.8125 C 101.14447,751.65342 100.04403,750.71789 99.15625,749.75 L 97.5625,748 L 97.21875,746.5625 C 97.214941,746.54641 97.22298,746.51672 97.21875,746.5 C 97.149802,746.52523 97.124431,746.55722 97.09375,746.625 L 97.0625,746.65625 L 97.0625,746.6875 C 96.661807,747.17748 96.154154,747.51794 95.8125,747.9375 C 95.667851,748.09968 95.531253,748.20254 95.34375,748.21875 C 95.156247,748.23496 94.987838,748.11337 94.90625,748 C 94.743074,747.77327 94.666047,747.50782 94.59375,747.34375 L 94.59375,747.3125 L 94.59375,747.25 C 94.591537,747.22709 94.596699,747.22984 94.59375,747.21875 C 94.597837,747.21978 94.518075,747.22525 94.40625,747.25 C 94.294425,747.27475 94.157364,747.32397 93.96875,747.25 C 93.874443,747.21301 93.794113,747.12997 93.75,747.03125 C 93.710128,746.94202 93.687191,746.85329 93.6875,746.75 C 93.687533,746.73901 93.68719,746.72998 93.6875,746.71875 C 93.648471,746.39788 93.727578,746.11349 93.9375,745.9375 C 94.088958,745.81052 94.296112,745.80932 94.5,745.8125 C 94.615679,745.64465 94.60239,745.46734 94.65625,745.28125 C 94.510662,745.32623 94.311718,745.42402 94.09375,745.5625 C 93.878741,745.6991 93.582976,745.81799 93.28125,745.75 C 93.278507,745.74938 93.283998,745.7819 93.28125,745.78125 C 93.253774,745.77851 93.244295,745.75681 93.21875,745.75 C 93.053054,745.70585 92.914335,745.6146 92.84375,745.5 C 92.762283,745.36773 92.725274,745.23019 92.6875,745.125 C 92.656239,745.03795 92.627426,745.01038 92.625,745 C 92.485813,745.10127 92.336671,745.19648 92.1875,745.15625 C 91.997069,745.1049 91.879681,745.00309 91.78125,744.875 C 91.584388,744.61883 91.410342,744.26089 91.34375,744.1875 C 91.200269,744.04811 91.117754,743.89363 91.125,743.71875 C 91.132647,743.53418 91.216863,743.37639 91.34375,743.28125 C 91.597524,743.09096 91.988442,743.048 92.28125,743.28125 L 92.3125,743.28125 L 92.3125,743.3125 C 92.400695,743.42001 92.450466,743.43574 92.46875,743.4375 C 92.487034,743.43926 92.528365,743.44256 92.5625,743.40625 C 92.630769,743.33362 92.676875,743.10011 92.625,742.9375 L 92.625,742.90625 C 92.582101,742.56524 92.266,742.21399 92.09375,741.71875 L 92.0625,741.71875 C 91.942341,741.51036 91.745969,741.25163 91.59375,740.96875 C 91.441531,740.68587 91.345085,740.31531 91.5,739.9375 L 91.53125,739.90625 L 91.5625,739.875 C 91.715761,739.72471 91.714954,739.6154 91.6875,739.46875 C 91.660046,739.3221 91.587472,739.1454 91.46875,738.9375 L 91.4375,738.90625 L 91.4375,738.84375 C 91.399754,738.64903 91.229669,738.45164 91.09375,738.375 C 91.02579,738.33668 90.989597,738.33344 90.9375,738.34375 z \"},\"ca19\":{\"name\":\"CA-19\",\"path\":\"M 179.2559,787.97355 L 179.2559,786.37589 L 164.40439,782.86809 L 163.32662,783.53418 L 162.64254,782.97369 C 162.26631,782.6654 160.86085,782.11965 159.51937,781.76094 L 157.08026,781.10874 L 158.92677,774.19992 L 158.40076,773.85584 C 158.11147,773.66659 157.58137,772.95434 157.22278,772.27299 C 156.86418,771.5917 156.57075,770.71764 156.57075,770.33063 L 156.57075,769.62699 L 163.03857,775.37507 L 168.19156,775.95587 L 172.73392,773.75371 L 174.71887,776.18952 L 174.71887,778.6474 L 176.98738,780.58976 L 177.77293,783.23037 L 180.3301,776.78115 L 179.03863,772.57328 L 174.76407,770.39256 L 169.30035,770.39256 L 161.80535,763.20188 L 160.99475,758.40386 L 159.41297,757.79692 L 162.19996,753.12332 C 166.41347,752.76989 168.41941,752.17054 172.62995,752.71975 L 177.52803,753.40694 L 180.58768,752.42002 L 174.74229,745.77407 L 175.26762,744.25978 L 174.78959,743.28976 C 174.52673,742.75621 173.89285,741.0094 173.38096,739.40794 C 172.86912,737.80648 172.55378,735.45539 172.55417,734.56148 L 169.91864,721.05945 L 141.24983,728.39685 L 139.86745,727.767 C 139.1071,727.42059 138.37034,726.83827 138.23015,726.47298 L 137.97534,725.80887 L 139.10092,720.1162 C 142.09893,719.04643 143.96244,717.1516 145.92909,714.89578 L 141.07368,710.27692 L 139.0353,710.27692 L 137.67595,714.81395 L 136.40388,714.7624 L 130.99852,711.53419 L 130.07028,709.81295 L 133.22381,709.70979 L 134.19225,708.50623 L 142.47397,708.03563 L 145.43906,709.84261 L 150.13384,689.60508 L 159.50853,706.95751 L 160.44991,706.18248 C 160.9677,705.75616 162.09901,705.05315 162.96394,704.62021 C 163.82886,704.1872 165.27039,703.17737 166.16731,702.37613 L 167.79814,700.91929 L 168.19689,698.08365 L 171.03253,697.6849 L 172.60376,695.8993 C 173.4679,694.91726 176.70212,691.56167 179.79081,688.44246 C 182.87957,685.32326 186.60645,681.68654 188.07282,680.36088 L 190.73889,677.95058 L 197.54699,676.65554 L 202.73297,682.55839 C 206.42165,681.42612 207.91081,680.2939 212.46691,680.52472 L 211.74914,684.08045 L 213.83016,686.46489 L 213.22127,687.56438 L 213.72763,692.41236 L 212.44161,695.10055 L 215.18464,696.27718 C 214.96425,699.10993 217.90556,698.99747 219.05813,701.02172 L 219.70409,702.90424 L 222.72711,702.90424 L 225.30079,705.64382 C 227.12165,710.37123 224.0168,709.0577 224.75339,712.66986 L 226.04422,715.81879 L 228.66716,717.66655 L 228.31015,718.79133 C 228.11381,719.40996 227.93114,720.69088 227.9042,721.63775 L 227.85526,723.35939 L 224.6262,725.26681 L 225.18382,728.12225 C 227.7812,727.3214 229.17039,728.16246 231.14818,728.10512 L 233.1274,732.43038 L 234.0249,738.10184 L 216.56616,749.69236 L 216.01815,751.11018 C 215.71677,751.88999 215.44954,753.2389 215.42425,754.10786 L 215.37837,755.68765 L 214.89812,755.98449 C 214.63401,756.1477 214.41788,756.71994 214.41788,757.25604 L 214.41788,758.23077 L 210.96543,760.84903 L 209.12929,759.33355 L 208.65205,760.75137 L 207.04521,760.75137 L 206.96842,762.16919 L 206.35302,760.89315 C 206.01456,760.19133 205.52039,759.63475 205.25716,759.61711 C 204.87497,759.59154 204.80698,760.21748 204.82826,760.72041 C 203.17888,759.4928 202.72461,759.83455 202.23785,760.22218 C 201.80583,760.56626 202.52692,761.8972 203.35337,762.40796 L 201.09035,764.10804 L 199.1054,763.51057 C 199.00613,764.41701 199.34004,765.26833 198.80641,765.85553 C 198.55687,765.85553 197.88341,765.54094 197.4989,765.15637 L 196.79974,764.45727 L 196.12917,767.0216 L 194.22016,766.41568 L 191.09129,769.48714 L 191.22356,770.21221 C 191.48563,770.21221 191.31776,770.33585 190.59847,770.95969 C 189.87918,771.58353 189.07448,772.09395 188.81032,772.09395 L 188.32996,772.09395 C 188.23755,774.94275 187.7326,777.14695 186.8151,779.17069 L 182.81333,778.82593 L 180.8915,784.70144 L 183.2258,786.33648 L 183.2258,787.97355 L 179.2559,787.97355 z \"},\"ca21\":{\"name\":\"CA-21\",\"path\":\"M 194.31441,766.8471 L 196.35767,767.39801 L 196.96585,765.30116 L 197.98963,765.93391 C 198.74636,766.3415 198.85106,766.27175 199.43332,765.40137 L 199.37172,763.91686 L 201.05646,764.5517 L 204.01233,762.50199 L 203.21351,761.89618 C 202.22274,761.14479 201.99174,758.80175 204.97479,761.13112 C 205.12511,759.75788 205.31357,759.75788 205.95978,760.9404 L 207.00891,762.60696 L 207.43983,761.3185 L 208.81782,761.16594 L 209.31372,760.00843 L 210.84463,761.30858 L 214.79428,758.46511 L 214.79428,757.52328 C 214.79428,757.00526 215.02396,756.43944 215.30469,756.26595 L 215.81511,755.95051 L 215.85325,753.62364 L 216.8069,749.99986 L 234.30066,738.41132 L 236.01645,740.59947 L 237.44786,740.17895 C 239.30554,742.64392 240.59103,744.76555 240.6177,746.29594 L 243.61396,746.38243 L 244.56172,748.08886 L 244.76558,750.21486 L 242.87145,751.76958 L 243.52137,754.74185 L 241.95832,754.74185 L 243.55143,756.9008 C 243.99703,757.34639 243.70161,757.23415 244.17715,757.23415 L 245.70923,757.19604 L 246.86289,761.37419 L 245.64754,762.60639 L 246.21776,769.62399 L 248.51439,769.63692 L 255.59547,775.59421 C 256.03421,781.4451 256.35851,784.53051 257.17871,785.28893 L 256.60994,790.52818 L 255.04126,790.62352 L 256.72257,799.01878 L 254.46823,799.00528 L 256.03268,800.86189 L 256.17987,803.90754 L 258.23751,805.83844 L 256.18883,807.87438 L 258.22931,809.47017 L 258.46036,814.34503 C 259.45555,814.95322 259.43924,815.49392 259.30156,817.01916 L 262.10184,817.50468 L 262.3256,819.28155 L 260.62306,819.25393 L 263.4753,823.15685 L 262.86632,824.95839 L 261.48956,824.78803 L 261.48956,831.03682 L 263.433,834.6796 L 261.97185,836.01531 C 263.37708,849.78207 263.91702,841.54549 263.77707,852.65452 L 262.19048,853.26339 L 261.47618,857.73038 C 236.3785,852.90797 213.93854,848.33283 187.29569,842.70691 L 193.48051,814.05149 L 196.09718,814.70822 L 197.80951,805.79818 L 194.95387,805.7764 L 196.46384,799.98692 L 193.1356,799.91484 L 188.72379,802.91887 L 185.22319,802.35781 L 183.81646,803.13959 C 181.26832,802.46153 178.67402,802.02825 176.07935,801.58906 L 179.24853,791.86989 L 184.54647,791.94345 L 185.15562,789.16662 L 187.04732,787.9385 L 188.53651,788.87908 L 188.54133,791.16892 L 190.84689,791.31553 L 192.12825,794.60816 L 195.60565,794.77909 L 198.59794,789.42529 C 197.90183,787.53249 196.89484,785.92139 195.47971,784.49149 L 192.29317,785.8399 L 188.88268,784.42718 L 188.53015,782.93938 C 188.33625,782.12107 187.81245,781.03031 187.36618,780.51541 L 186.55468,779.57925 C 187.86282,779.68876 188.56181,775.68648 188.76587,772.59795 C 189.89451,772.40071 191.13084,771.16703 191.82875,769.9468 L 191.58646,769.48487 L 194.31441,766.8471 z \"},\"ca18\":{\"name\":\"CA-18\",\"path\":\"M 177.79265,782.25315 L 177.55451,780.60088 L 175.22898,778.48776 L 175.34977,776.11801 L 172.64783,773.29399 L 167.85848,775.36254 L 163.28889,774.84361 L 156.66205,768.91842 L 156.3758,759.70394 L 153.4975,756.04443 L 132.42598,769.82543 L 123.06993,762.13244 L 121.86276,756.78147 L 120.04373,756.81981 L 119.59379,755.57173 L 121.67731,754.04825 L 119.53158,751.67731 L 120.84164,751.67731 L 120.84164,749.92851 L 122.57995,747.0906 L 121.48597,745.71254 L 122.9689,744.08471 L 122.35581,741.1577 L 121.41024,741.09101 L 120.94849,739.48405 L 118.74678,739.80946 L 117.27877,738.04065 L 114.75788,739.69241 L 114.75788,735.24958 L 113.51644,733.75372 L 114.15174,731.32443 L 116.57803,730.97712 L 117.38108,725.33628 L 115.38042,723.47241 L 115.85046,719.44608 L 125.37867,713.15674 L 126.56357,703.34955 L 124.81154,700.39782 L 128.64204,699.40137 L 131.24698,688.58691 L 132.61019,690.45112 L 133.33169,694.96331 L 128.78144,704.01332 L 128.78144,705.82881 C 128.78144,706.82736 129.09904,708.55568 129.48724,709.66952 C 129.87544,710.78342 130.44965,711.88711 130.76328,712.12218 C 131.0769,712.35726 132.42502,713.18669 133.75902,713.96535 L 136.18457,715.38108 L 138.24308,715.38108 L 139.60243,710.84405 L 140.8251,710.84405 L 145.35703,714.95766 L 144.37816,715.9241 C 143.75472,716.62587 142.19251,717.81661 140.90654,718.57021 L 138.56856,719.94039 L 137.40821,725.80887 L 137.67947,726.5158 C 137.82868,726.90462 138.55188,727.61659 139.2866,728.09803 L 140.62241,728.97328 L 169.50945,721.74239 C 170.14735,725.77564 171.24009,729.73715 171.57635,733.81276 L 171.73679,736.08127 C 172.64634,739.14632 174.05229,741.57942 174.46865,744.75823 L 174.08125,746.0966 L 179.5001,751.88982 L 176.64575,752.65317 L 171.11141,751.73215 L 162.30471,752.14712 L 158.73972,758.26939 L 160.73511,759.06382 L 161.43538,763.35784 L 169.18647,770.95969 L 174.68042,770.95969 L 178.44133,772.75318 L 179.76291,776.98759 C 179.12629,778.74914 178.61989,780.56951 177.79265,782.25315 z \"},\"ca16\":{\"name\":\"CA-16\",\"path\":\"M 105.93994,745.42364 L 102.61292,743.39253 L 99.192294,736.724 L 95.226974,734.68489 C 94.744124,732.24317 94.586374,730.51672 94.753724,727.94496 L 97.739884,724.3961 C 96.819994,723.54586 96.211274,723.24052 95.158304,721.94423 L 95.320854,721.03076 L 98.656194,721.07907 L 98.974294,719.13564 L 100.69749,719.14602 L 103.25859,722.41965 L 103.94762,728.36526 L 101.55927,731.72658 L 101.55927,733.48927 L 102.65626,734.07636 C 103.25958,734.39928 104.28041,734.66345 104.92478,734.66345 L 106.0963,734.66345 L 106.0963,736.1926 L 101.46174,738.49855 L 103.37551,740.83687 L 106.76167,740.86937 L 107.73955,742.20485 C 107.1814,743.30247 106.63285,744.4112 105.93994,745.42364 z \"},\"il16\":{\"name\":\"IL-16\",\"path\":\"M 1680.8178,492.71078 C 1648.276,497.10563 1615.4663,498.26063 1582.9703,503.02543 L 1582.6159,503.36217 L 1583.7501,504.19514 L 1587.4365,507.11939 L 1590.3075,507.84603 L 1594.9155,512.01088 L 1594.3306,515.67949 L 1596.7941,518.53286 L 1604.7339,521.49256 L 1605.3719,522.30781 C 1605.7182,522.75824 1606.2925,523.12305 1606.6479,523.12306 C 1607.0035,523.12306 1607.3019,523.18685 1607.3214,523.26484 L 1607.9417,528.49306 L 1609.0405,529.82227 L 1608.4734,543.75236 L 1607.5319,544.78028 L 1607.3392,552.04662 L 1612.3901,552.04662 L 1612.3901,546.49939 L 1622.1199,545.13474 L 1621.3933,540.91672 L 1624.353,539.56979 L 1628.6242,539.56979 C 1629.8225,540.77597 1630.8958,542.17743 1632.4168,542.97256 L 1632.9485,542.97256 L 1632.4168,534.69603 L 1641.0301,533.40227 C 1647.5854,534.16442 1648.2216,533.89072 1668.465,531.02741 L 1669.2093,526.06504 L 1673.3564,525.28524 L 1674.9116,523.82578 L 1675.9817,525.32068 L 1678.6733,524.71811 L 1678.1948,513.62365 L 1695.3004,511.62098 L 1695.0669,506.78266 C 1691.0065,506.78692 1690.6366,506.44097 1688.7044,505.82563 L 1688.3145,508.25365 C 1686.5392,508.45991 1684.7525,508.9643 1682.9622,508.82078 C 1682.0019,503.48956 1681.6107,498.06918 1680.8178,492.71078 z \"},\"il17\":{\"name\":\"IL-17\",\"path\":\"M 1624.2289,540.13692 L 1622.0313,541.32434 L 1622.7225,545.66642 L 1612.9572,547.0488 L 1612.9572,552.61375 L 1606.7188,552.61375 L 1606.9138,544.97524 L 1602.7312,548.66157 L 1603.4401,551.49722 L 1602.0932,553.10999 L 1602.873,558.19642 L 1599.6297,559.91553 L 1596.9536,563.3892 L 1592.5938,563.3892 L 1591.8494,564.27533 C 1591.4472,564.76485 1590.5342,565.72189 1589.8113,566.40207 C 1589.0884,567.08228 1587.6847,567.95002 1586.6921,568.31615 L 1584.8844,568.97187 L 1579.9574,569.06051 L 1576.7319,571.34672 L 1573.5418,570.73575 L 1571.0606,572.46328 L 1569.3947,582.29939 L 1572.8861,586.6415 L 1574.9419,586.6415 L 1577.9548,591.42665 L 1578.4156,601.67041 L 1574.3925,606.06566 L 1574.3925,606.77457 C 1574.3925,607.16509 1574.0307,607.77759 1573.595,608.13919 L 1572.8152,608.79497 L 1572.0176,618.87919 L 1569.5719,621.09457 L 1567.3211,621.50216 C 1566.0842,621.7234 1564.395,622.25973 1563.5639,622.68962 L 1562.0574,623.46942 L 1559.7358,627.38612 L 1561.7916,629.22929 L 1561.7384,638.2493 L 1558.6015,638.51693 L 1557.9812,641.45801 C 1557.6434,642.65493 1557.2045,645.48649 1557.0065,647.74962 L 1556.652,651.8613 L 1557.6622,655.68942 C 1558.2214,657.79341 1559.15,660.45392 1559.718,661.59107 C 1560.2861,662.72822 1561.1729,664.0916 1561.703,664.6217 L 1562.6778,665.57873 L 1561.3308,669.30051 L 1561.6321,670.08031 C 1561.8005,670.51042 1562.8334,671.43144 1563.9184,672.13615 L 1565.8856,673.42989 L 1565.8856,677.91378 C 1568.1104,679.57586 1570.4381,681.12395 1572.4253,683.07107 C 1572.6342,683.40914 1573.4025,683.91235 1574.1267,684.18764 L 1575.4382,684.70157 L 1576.9623,687.87397 L 1579.479,688.22843 L 1580.5246,689.75259 C 1581.1041,690.5895 1581.7347,691.70595 1581.9247,692.23378 L 1582.2792,693.1908 L 1583.5729,694.00605 L 1594.118,700.15583 L 1599.293,704.97642 L 1599.8778,707.59939 C 1600.2009,709.0408 1600.9038,711.14145 1601.4374,712.26051 L 1602.4122,714.2986 L 1601.1716,717.59503 L 1601.9514,718.62295 C 1602.3815,719.18367 1603.0074,720.65401 1603.3515,721.9017 L 1603.9895,724.17021 L 1606.9315,727.28942 L 1609.2709,727.25397 L 1610.3166,725.8007 C 1610.8962,725.00525 1611.5667,723.67324 1611.7875,722.84097 L 1612.1774,721.33457 L 1616.3069,720.98011 C 1616.5758,715.98847 1616.5594,713.75608 1615.6865,708.57417 L 1611.7736,708.3839 L 1611.7036,704.18635 L 1609.6608,702.01675 L 1608.8633,696.66447 L 1612.3901,696.66447 L 1613.5776,694.53774 L 1615.5093,696.69991 L 1625.7531,695.28209 L 1628.3938,717.61278 L 1644.8582,715.94684 L 1644.1671,720.34209 L 1648.6155,721.051 L 1648.9699,715.66328 L 1654.3576,714.6885 L 1654.8362,712.56177 L 1669.6701,711.26803 L 1669.6701,707.63484 L 1675.0578,706.48288 L 1680.5519,706.99682 L 1679.7544,698.45444 L 1684.9826,697.67464 L 1684.256,690.99318 L 1678.177,690.99318 L 1677.4681,684.18764 L 1672.9489,684.18764 L 1674.3489,699.50011 L 1668.465,700.22672 L 1667.8447,697.79873 L 1664.566,697.79873 L 1664.566,703.85991 L 1647.6939,704.60427 L 1645.1772,683.6914 L 1641.0301,683.33694 L 1640.6934,679.26071 L 1644.1493,675.55662 L 1644.1493,672.27793 L 1646.5596,670.38157 L 1647.3572,667.03199 L 1652.7626,664.26724 L 1663.7153,663.09754 L 1664.7964,662.06962 L 1666.799,662.08731 C 1667.9063,662.09208 1669.1285,662.28751 1669.5106,662.53041 L 1670.2018,662.97345 L 1671.3715,671.85259 L 1676.0326,671.14368 L 1675.2528,663.82414 L 1677.4327,661.48474 L 1682.4837,663.20387 C 1683.0741,662.51963 1683.4884,661.71335 1683.9015,660.89991 L 1679.9139,658.87952 L 1681.633,658.52506 L 1678.691,657.55028 L 1677.734,658.04652 C 1668.8151,660.34617 1661.1489,660.3511 1651.3093,663.31021 L 1649.413,664.74573 L 1646.2406,667.7586 L 1646.0457,670.04486 L 1643.3873,672.27793 L 1641.9163,672.27793 L 1640.1794,675.62751 L 1640.1794,684.01041 L 1604.539,687.78533 L 1603.3338,690.42605 L 1587.5605,690.42605 L 1586.7984,685.28645 L 1581.198,686.0308 L 1581.198,680.78486 L 1574.9596,680.78486 L 1574.9596,675.82249 L 1569.5896,676.15919 L 1567.6756,647.8914 L 1583.9628,646.6685 L 1583.3425,641.33397 L 1605.5137,639.9516 L 1606.2758,645.02031 L 1617.2107,644.34685 L 1618.8944,642.57457 C 1619.822,641.60166 1621.044,639.96856 1621.606,638.94137 L 1622.6339,637.06276 L 1623.3251,631.97635 L 1629.2799,626.60632 L 1630.6269,621.64395 L 1629.8648,616.13219 L 1624.3707,616.13219 L 1624.0163,611.3116 L 1613.3294,611.79009 L 1612.9041,606.63279 L 1623.2188,605.21497 L 1622.882,600.53615 L 1611.9471,600.89061 L 1610.5824,590.6114 L 1605.5846,590.6114 L 1605.5846,584.37299 L 1626.462,582.54751 C 1626.2277,579.23764 1626.3282,575.87802 1625.7531,572.60506 L 1620.897,573.13675 L 1620.897,578.54217 L 1610.2634,579.26883 L 1609.4481,574.97992 L 1599.5057,575.4584 L 1598.7081,569.43266 L 1603.2806,568.45794 L 1602.554,562.69801 L 1609.0405,559.82692 L 1609.714,556.53048 L 1612.78,554.93543 L 1614.6055,552.17068 L 1618.1677,550.20345 C 1620.1336,549.11789 1622.4496,548.06813 1623.3073,547.86405 L 1624.8669,547.49187 L 1624.8669,546.09177 L 1631.0877,542.74217 L 1628.6419,540.13692 L 1624.2289,540.13692 z \"},\"il18\":{\"name\":\"IL-18\",\"path\":\"M 1657.6186,566.13622 C 1657.1568,566.90884 1656.0748,567.31846 1654.3931,567.35912 L 1650.3877,571.36447 L 1650.2992,575.08625 L 1626.9582,577.67378 L 1627.2418,583.23873 L 1606.1517,585.04645 L 1606.1517,590.04427 L 1610.9208,590.09004 L 1612.2677,600.3515 L 1623.2204,600.01479 L 1623.7401,605.41613 L 1613.2499,606.90767 L 1613.6158,611.41623 L 1624.3868,610.63643 L 1624.8669,615.56506 L 1630.3307,615.5193 L 1631.1586,621.62625 L 1629.7762,626.64222 L 1623.839,632.31351 L 1623.077,637.57675 C 1621.7986,639.93385 1619.826,642.291 1617.831,644.6481 L 1605.7087,645.35702 L 1605.0352,640.32375 L 1583.9628,641.86566 L 1584.6895,647.18249 L 1568.3136,648.35219 L 1569.8555,675.78704 L 1575.2432,675.39714 L 1575.5976,680.21774 L 1581.7652,680.21774 L 1581.7652,685.42823 L 1587.2947,684.66612 L 1588.0745,689.85892 L 1603.1388,689.85892 L 1604.3263,687.23595 L 1639.6123,683.42553 L 1639.6123,675.71615 L 1641.4378,672.02982 L 1643.3695,672.02982 L 1645.8507,669.83219 L 1645.8507,667.7409 L 1650.4409,663.16843 C 1660.5986,660.18851 1670.6938,659.42124 1677.2909,657.83385 L 1678.6733,657.0009 L 1682.2178,658.38328 L 1687.96,657.47939 L 1686.4004,645.26843 L 1668.0042,647.78506 L 1666.037,633.16375 L 1660.986,633.81952 L 1658.558,614.28902 L 1664.7255,613.33199 L 1666.5687,611.20526 L 1668.7131,611.2584 L 1668.2523,608.47596 L 1671.1411,608.36962 L 1670.5031,603.03504 L 1668.2168,602.71603 L 1664.9736,582.10447 L 1659.9935,582.10447 L 1657.6186,566.13622 z \"},\"oh12\":{\"name\":\"OH-12\",\"path\":\"M 1958.242,611.97803 L 1956.0196,609.77309 L 1957.8016,606.774 C 1957.1021,604.45751 1956.1315,602.47987 1954.2522,601.63808 L 1952.5918,602.06893 L 1951.0996,600.02801 L 1947.8884,606.07371 L 1945.0635,605.42163 L 1945.0374,603.56814 L 1946.5706,602.04874 L 1945.0672,594.48512 L 1941.4,594.91324 L 1939.4978,583.361 C 1944.1262,582.51139 1949.2597,582.46999 1954.3688,582.3894 L 1954.7771,585.59747 L 1963.4428,584.70606 L 1963.4428,589.52989 L 1976.4822,587.60188 L 1977.0041,588.56316 L 1982.158,588.43822 L 1983.1743,597.42466 L 1980.056,600.76283 L 1974.6923,602.11339 L 1975.4639,608.93726 L 1965.1472,610.08161 C 1963.9661,609.21084 1962.6224,608.12229 1961.2307,607.62662 C 1960.4304,607.43425 1959.8158,608.05866 1960.1663,608.90584 L 1962.2683,612.38642 L 1958.242,611.97803 z \"},\"pa18\":{\"name\":\"PA-18\",\"path\":\"M 2071.4808,587.77383 L 2065.1368,556.58502 L 2066.0403,556.57634 C 2066.5372,556.57157 2067.3172,556.33144 2067.7737,556.04273 L 2068.6036,555.5178 L 2066.7466,551.62357 L 2069.4627,550.38601 L 2070.0618,552.61088 C 2070.3913,553.83456 2070.8953,554.98059 2071.1817,555.15763 L 2071.7025,555.47952 L 2076.7479,548.65707 L 2087.9275,557.71205 L 2091.2121,557.02571 L 2090.6035,559.3529 L 2094.0284,560.54681 L 2095.3461,561.96869 C 2096.0709,562.75072 2096.8993,563.39057 2097.1872,563.39057 L 2097.7105,563.39057 L 2098.4233,559.82641 L 2100.3328,558.43014 L 2097.7537,557.61155 L 2100.1208,555.95358 L 2100.1208,553.30848 L 2096.1907,552.57119 L 2095.4702,551.4054 L 2096.0537,550.82184 L 2098.6132,552.1916 L 2099.9225,550.40095 L 2102.4211,551.05434 L 2101.694,553.34539 L 2104.7029,552.94623 C 2106.3579,552.7267 2107.918,552.41972 2108.1698,552.26407 L 2108.6277,551.98106 L 2108.6277,549.40623 C 2106.7476,548.44178 2104.6853,547.75151 2102.9564,546.52604 L 2104.1341,544.10154 L 2107.5518,545.86888 L 2108.188,547.52671 L 2113.1569,548.77791 L 2112.7995,551.12186 C 2112.603,552.41104 2112.2427,553.85684 2111.9989,554.33475 L 2111.5557,555.2037 L 2113.5763,557.88241 L 2114.2212,557.48381 C 2114.5759,557.26458 2114.8661,556.72947 2114.8661,556.29468 C 2114.8661,555.85988 2115.1623,554.85411 2115.5243,554.05963 L 2116.1824,552.61512 L 2117.2609,552.61512 L 2116.5161,556.58502 L 2123.0962,556.58502 L 2124.5381,553.32743 L 2132.8179,556.73561 L 2132.2068,559.44908 C 2131.8707,560.94149 2131.4045,562.35379 2131.1707,562.58752 C 2130.937,562.82125 2130.7457,563.59996 2130.7457,564.31798 L 2130.7457,565.62348 L 2129.0295,564.96489 L 2126.4923,570.68579 L 2124.5047,571.2249 L 2124.0806,570.53539 C 2123.8474,570.1562 2122.3806,569.22288 2120.821,568.46145 L 2117.9854,567.0769 L 2117.6411,565.09195 C 2117.4517,564.00023 2117.2061,562.8518 2117.0952,562.53987 C 2116.9844,562.22795 2117.2228,561.37859 2117.625,560.65239 L 2118.3563,559.33204 L 2117.705,557.63501 L 2115.3472,559.50271 L 2113.2468,558.85252 L 2111.4634,560.63594 L 2111.4807,564.80839 L 2112.5495,566.49877 L 2110.7906,569.18312 L 2111.4106,569.80305 C 2111.7515,570.14401 2112.0305,570.61915 2112.0305,570.85888 L 2112.0305,571.29477 L 2110.4438,570.68596 L 2109.661,571.95258 L 2107.9304,570.51633 L 2105.5085,570.47969 L 2105.7473,569.629 C 2105.8786,569.16112 2105.9997,568.14029 2106.0163,567.36049 L 2106.0466,565.94265 L 2107.7663,564.62414 L 2106.212,563.18374 C 2105.3572,562.39152 2104.6539,561.53975 2104.6491,561.29092 C 2104.6444,561.04208 2104.423,560.49541 2104.1573,560.0761 L 2103.6741,559.31371 L 2100.3071,561.05484 L 2100.1471,565.31197 L 2097.2507,567.64405 L 2097.0016,571.35642 L 2095.3002,571.00281 L 2095.6019,567.25903 L 2094.4585,566.96002 C 2093.8298,566.79561 2093.3153,566.46537 2093.3153,566.22621 C 2093.3153,565.98705 2093.5567,565.65118 2094.2119,565.47984 L 2095.4712,564.94168 L 2095.1212,564.47383 L 2089.4399,563.63884 L 2088.7412,564.04751 L 2091.157,567.95642 L 2090.5152,569.629 L 2087.7829,569.629 L 2087.0768,568.77831 C 2086.6885,568.31043 2086.0831,567.9292 2085.7314,567.93113 C 2085.3796,567.933 2084.3907,568.30033 2083.5338,568.7474 L 2081.9757,569.56015 L 2080.7333,567.23872 L 2079.4773,568.49474 L 2076.4228,568.49474 L 2075.7383,570.27831 L 2076.3034,571.33419 C 2076.6142,571.91493 2076.8685,572.91727 2076.8685,573.56164 L 2076.8685,574.73316 L 2077.6787,574.73316 C 2078.1243,574.73316 2078.8671,574.35488 2079.3295,573.89262 C 2079.7918,573.43029 2080.2566,572.8136 2080.3624,572.52215 L 2080.5549,571.99228 L 2084.5248,571.30634 L 2086.1808,572.39523 L 2084.9223,578.4195 L 2087.7636,580.73338 L 2086.1043,582.11054 L 2080.3176,582.45524 L 2079.2573,583.41476 C 2078.6741,583.94253 2077.9619,584.38472 2077.6746,584.39737 C 2077.3872,584.41008 2076.2685,585.1757 2075.1886,586.09876 L 2073.225,587.77712 L 2071.4808,587.77383 z \"},\"pa19\":{\"name\":\"PA-19\",\"path\":\"M 2231.2339,528.74118 C 2231.1375,528.74248 2230.1631,529.43368 2228.6286,530.21217 C 2227.0942,530.99066 2225.4991,531.62998 2225.0841,531.62999 L 2224.322,531.62999 L 2224.3752,535.44038 L 2219.7141,539.07355 L 2214.0251,539.46345 L 2215.6556,543.18524 L 2218.6684,540.52682 C 2219.883,542.19923 2220.7896,543.9787 2221.5395,546.32217 L 2219.2001,548.67929 L 2220.3521,550.84147 L 2212.6427,554.58098 L 2210.6932,551.31999 L 2208.1057,550.66424 L 2207.7689,551.53266 L 2209.2222,554.10246 L 2211.7388,554.77593 L 2215.6733,570.54922 L 2271.057,556.74316 C 2267.9709,553.67657 2263.0333,550.61161 2261.8057,547.54504 L 2256.9319,546.269 L 2252.962,540.75722 L 2251.8809,541.8383 L 2246.9362,541.89147 L 2243.9411,538.13425 L 2243.0904,539.51662 L 2241.2295,535.59989 L 2236.7988,534.89098 L 2232.2086,531.48821 L 2231.2339,528.74118 z \"},\"oh16\":{\"name\":\"OH-16\",\"path\":\"M 1980.0424,567.99028 L 1978.0474,557.71928 L 1975.9196,557.71928 L 1975.9196,554.88364 L 1973.4956,552.45962 C 1973.1234,550.90284 1972.7527,549.34088 1972.654,547.75187 C 1976.8895,547.00046 1981.2193,546.88433 1985.4507,546.1087 L 1984.8708,539.63395 L 1982.4633,539.2876 L 1981.1949,531.53007 L 1985.4889,530.49354 L 1984.8722,526.69327 L 1988.5812,525.95148 L 1990.7518,527.91582 L 1992.6936,525.34156 C 1995.7008,524.53647 1998.7521,523.87244 2001.7064,522.88907 L 2004.37,536.16839 L 2006.4727,536.16839 L 2006.8281,539.85473 C 2010.8421,539.91478 2014.4579,539.44395 2018.0289,538.91328 L 2017.3438,533.9155 L 2031.7506,531.16473 L 2034.9961,546.2657 L 2028.024,547.90789 L 2028.7334,552.44431 L 2020.458,553.74938 L 2010.5145,557.07777 L 2010.5145,554.8072 L 1983.7742,560.21283 L 1984.5209,566.64668 L 1980.0424,567.99028 z \"},\"pa16\":{\"name\":\"PA-16\",\"path\":\"M 2271.5302,556.65397 L 2270.4695,555.3406 C 2269.8861,554.61824 2268.6431,553.54757 2267.7073,552.96132 C 2266.7716,552.37508 2265.2091,551.07048 2264.2352,550.06222 C 2263.2613,549.05395 2262.368,547.97966 2262.2502,547.6749 L 2262.036,547.1208 L 2257.0359,545.52601 L 2253.0219,539.85069 L 2251.6824,541.27255 L 2247.2193,541.27255 C 2246.1028,540.08958 2244.8415,538.9933 2244.1715,537.49337 C 2245.67,535.49972 2250.788,531.6446 2254.0962,528.72022 L 2260.9018,525.54307 L 2269.6923,517.11898 L 2269.6923,515.18463 L 2273.7021,515.18463 C 2272.1409,517.44969 2270.9933,519.3011 2270.2594,521.97983 L 2281.8855,527.8179 L 2278.881,530.06584 L 2280.5787,534.12891 L 2279.9561,536.20692 C 2279.6136,537.34983 2279.3335,538.81448 2279.3335,539.46171 L 2279.3335,540.63848 L 2280.4518,541.32967 L 2286.5981,538.13055 L 2293.2298,538.73952 L 2294.5442,540.70542 L 2296.3754,540.70542 L 2297.4886,537.77758 L 2298.822,538.22208 L 2299.0049,542.59026 C 2294.5478,544.85602 2292.4174,547.48373 2292.0451,551.45584 L 2271.5302,556.65397 z \"},\"oh17\":{\"name\":\"OH-17\",\"path\":\"M 2043.532,500.63286 L 2030.6653,503.0786 L 2032.4907,512.68434 L 2015.2465,515.94533 L 2016.3807,523.69019 L 2013.8818,526.36632 L 2010.8158,525.78147 L 2009.2207,524.1687 L 2008.2991,525.65741 L 2010.0537,527.5892 L 2011.5069,527.02207 L 2014.4667,532.1085 L 2013.7755,535.58217 L 2015.7774,538.71746 L 2017.4441,538.43553 L 2016.6997,533.41999 L 2035.4681,529.69821 L 2033.7667,520.51781 L 2043.8687,518.49741 L 2044.3118,519.82662 C 2044.557,520.551 2044.6969,521.4892 2044.6131,521.91791 L 2044.4536,522.69771 L 2052.4465,521.31533 L 2054.396,525.39157 L 2057.2787,524.86279 C 2055.6159,517.92057 2054.4694,510.32794 2052.7655,503.39761 L 2044.5954,504.97494 L 2043.532,500.63286 z \"},\"pa17\":{\"name\":\"PA-17\",\"path\":\"M 2243.2001,538.69552 L 2241.3556,535.12859 L 2239.5409,534.73002 C 2238.5428,534.51081 2236.8157,533.82893 2235.7029,533.21474 C 2234.5901,532.60055 2233.3555,531.78741 2232.9594,531.40775 C 2232.5632,531.02809 2232.1217,530.10789 2231.9782,529.36285 C 2231.8347,528.6178 2231.3627,527.65358 2230.9293,527.22012 L 2230.1411,526.43202 L 2221.701,528.83869 L 2219.6597,526.5831 L 2216.9493,528.35904 L 2216.9493,534.467 L 2215.8342,534.467 L 2212.9872,528.84891 L 2214.1925,525.67891 L 2210.0477,522.78583 L 2216.475,516.98668 L 2218.8151,519.31452 L 2218.0071,521.99017 L 2220.7071,521.91985 L 2220.9203,520.9624 L 2223.1877,521.55533 L 2223.1877,520.88478 C 2223.1877,520.51597 2222.9424,519.7558 2222.6425,519.1955 L 2222.0973,518.17679 L 2223.4932,516.86542 C 2224.261,516.14416 2224.8891,515.2666 2224.8891,514.91527 C 2224.8891,514.56395 2225.1378,513.94119 2225.5277,513.10164 L 2226.3069,511.22357 L 2228.2108,511.21473 L 2229.0615,510.36403 C 2229.5294,509.89615 2230.1937,509.51334 2230.5377,509.51334 L 2231.7767,507.91432 L 2236.9327,505.26902 L 2252.0658,492.78304 L 2252.1113,486.86667 L 2254.0923,482.71245 L 2263.386,483.42683 L 2264.0829,482.29925 C 2268.2387,485.15584 2273.0273,487.66084 2277.3237,490.16584 L 2268.2064,499.33661 L 2268.558,499.84303 L 2271.9046,501.57361 L 2280.4376,499.3717 L 2278.5415,504.54356 L 2280.7292,506.14326 L 2283.5869,505.54545 L 2284.2302,505.96979 C 2284.5841,506.20318 2284.9695,506.90455 2285.0867,507.52839 L 2285.2999,508.66265 L 2287.7337,509.01112 L 2288.435,511.80513 L 2287.7692,513.06953 C 2287.403,513.76495 2286.8227,514.52143 2286.4795,514.7506 C 2286.1362,514.97976 2285.3104,515.17117 2284.6442,515.17595 C 2283.9781,515.18072 2282.702,514.80339 2281.8086,514.33743 L 2280.1842,513.49023 L 2276.9904,513.48324 L 2274.5129,514.84983 L 2269.4341,514.90106 L 2268.9991,517.10841 L 2260.9018,524.98118 L 2257.7826,526.41239 C 2256.067,527.19956 2253.4282,528.75966 2251.9184,529.87927 C 2250.4087,530.99888 2248.0173,532.93278 2246.6042,534.17682 L 2244.0349,536.43872 L 2243.2001,538.69552 z \"},\"nj12\":{\"name\":\"NJ-12\",\"path\":\"M 2328.1124,508.04012 L 2324.4202,504.55311 L 2321.301,503.82045 L 2321.301,502.22299 L 2318.3721,499.91915 L 2315.1672,500.56015 L 2314.6136,499.50724 C 2314.3091,498.92814 2313.8861,497.40342 2313.6734,496.11898 L 2313.3381,494.60354 L 2314.924,493.15539 L 2318.6803,487.35829 L 2320.9124,489.59037 L 2318.9725,492.55119 L 2319.6666,494.73841 L 2321.1274,495.88746 C 2321.9308,496.51944 2322.9421,497.03651 2323.3746,497.03651 L 2324.161,497.03651 L 2325.4529,494.20087 L 2326.7277,494.20087 L 2327.658,495.77574 C 2328.1697,496.64192 2329.0682,497.78493 2329.6548,498.31576 L 2330.7213,499.28091 L 2334.6285,497.18563 L 2334.7057,495.83503 C 2334.7482,495.0922 2335.1251,493.64958 2335.5435,492.6292 L 2336.3041,490.77397 L 2334.9903,488.67026 L 2336.7282,486.1891 L 2338.925,488.17713 L 2338.2484,491.25724 L 2339.3108,491.91385 L 2344.0419,489.38027 L 2346.6802,492.39807 L 2348.2912,490.787 L 2350.2863,492.24584 L 2349.5754,494.09851 L 2346.8937,494.77156 L 2347.2151,496.89651 L 2347.5366,499.02146 L 2348.0495,499.9473 L 2348.9288,499.43487 C 2349.074,499.03841 2349.9483,498.32332 2350.8718,497.84579 L 2352.5508,496.97753 L 2351.8066,494.63284 L 2353.3037,491.83558 L 2354.8552,491.03328 C 2355.7085,490.59201 2356.7849,490.23097 2357.2473,490.23097 L 2358.0879,490.23097 L 2358.4191,491.22344 C 2358.6012,491.7693 2359.2147,492.81802 2359.7825,493.55394 L 2360.8148,494.89196 L 2363.2302,490.79809 L 2364.3969,492.78986 L 2363.0502,497.03651 L 2361.7121,497.03651 L 2360.7773,501.44507 L 2359.5822,495.61869 C 2357.7582,495.40168 2355.9286,494.97472 2354.09,495.13376 L 2353.702,495.35591 L 2354.3534,499.36966 L 2351.8795,500.01657 L 2352.3329,501.28997 L 2356.1633,500.96583 L 2355.6042,501.47786 C 2355.2967,501.75949 2353.8017,502.40179 2352.2819,502.9052 L 2349.5186,503.82049 L 2346.4041,501.6027 L 2344.3692,503.85124 L 2342.2802,501.9607 L 2339.4491,503.25061 L 2339.4491,504.89529 L 2338.2509,506.65725 L 2333.8563,506.56793 L 2332.6436,509.51334 L 2328.1124,508.04012 z \"},\"ny16\":{\"name\":\"NY-16\",\"path\":\"M 2359.8372,464.39949 L 2359.3202,463.57592 L 2359.062,461.50925 L 2359.6857,458.87836 L 2360.9341,458.94006 L 2361,461.16852 L 2362.9525,462.80078 L 2361.0461,464.59715 L 2359.8372,464.39949 z \"},\"mi12\":{\"name\":\"MI-12\",\"path\":\"M 1914.1449,460.46932 L 1914.0948,459.46423 C 1914.0906,459.07433 1913.9467,458.23291 1913.7752,457.5944 L 1913.4634,456.43349 L 1916.4449,454.83784 L 1917.3933,456.37256 L 1922.1396,453.9471 L 1921.3267,451.24458 L 1928.8981,449.21578 L 1927.7434,444.72448 L 1933.0636,443.20639 L 1933.4991,443.89175 C 1933.7387,444.26869 1933.9386,444.88714 1933.9434,445.26606 L 1933.9521,445.95502 L 1935.0863,446.56206 C 1935.7102,446.89592 1936.2206,447.38555 1936.2206,447.65012 L 1936.2206,448.13115 L 1933.9658,448.72081 L 1932.7315,451.94978 L 1933.1279,456.16696 C 1924.7693,458.34153 1921.9323,459.33138 1914.1449,460.46932 z \"},\"ny17\":{\"name\":\"NY-17\",\"path\":\"M 2346.8041,442.02365 C 2346.2692,442.02365 2345.0865,442.17929 2344.1811,442.36039 L 2342.5329,442.6794 C 2341.8183,443.86596 2341.1508,445.41839 2340.6188,446.61385 L 2358.1821,451.57623 L 2358.1821,456.21959 L 2358.1644,458.47039 L 2360.6278,458.47039 L 2362.7014,456.59177 L 2362.7014,455.06761 L 2361.5317,455.06761 C 2360.8873,455.06761 2359.8666,455.32957 2359.2632,455.65246 L 2359.0859,455.74108 L 2359.2632,451.87751 L 2359.4936,448.95326 L 2357.7745,448.58108 C 2356.8774,447.3226 2355.8135,445.68449 2354.9566,444.3985 L 2351.6424,445.85177 L 2349.0726,444.89474 L 2347.7788,442.02365 L 2346.8041,442.02365 z \"},\"ny19\":{\"name\":\"NY-19\",\"path\":\"M 2361.3368,401.72207 L 2357.1364,402.89177 C 2357.69,405.01277 2358.3229,407.11714 2358.7315,409.27197 L 2358.7315,409.69732 L 2355.5002,409.69732 L 2350.7208,412.60385 L 2346.8218,411.31009 L 2346.8218,407.4288 L 2342.9428,407.4288 L 2345.0849,416.2193 L 2344.4115,422.67039 L 2336.5071,424.01732 L 2335.3552,427.3492 L 2332.3246,426.67573 L 2326.1925,431.24821 L 2322.4352,431.24821 L 2322.4352,428.97969 L 2322.0099,428.97969 L 2311.0572,432.4888 L 2311.4294,433.71167 C 2311.6379,434.3839 2312.1655,435.14222 2312.5991,435.39534 L 2313.3789,435.85613 L 2312.7232,436.93722 L 2313.7511,437.29167 C 2314.3167,437.49191 2315.2894,438.10106 2315.9133,438.6386 L 2317.0475,439.61336 L 2339.8922,446.4189 L 2342.3202,442.09454 C 2344.2038,441.75386 2346.179,441.68158 2347.956,440.94256 L 2351.4651,438.53227 L 2354.1059,441.01346 L 2355.3287,440.25138 L 2355.3287,438.17781 L 2359.9012,436.35237 L 2361.5671,437.20306 C 2362.4759,437.67301 2363.5257,438.05374 2363.9065,438.05375 C 2364.2874,438.05375 2365.0331,437.65583 2365.5725,437.16761 L 2366.5649,436.28148 L 2367.6815,437.45118 L 2371.4033,433.56989 L 2366.9548,428.69613 L 2361.3368,401.72207 z \"},\"ny18\":{\"name\":\"NY-18\",\"path\":\"M 2359.8835,436.90177 L 2355.8958,438.56771 L 2355.8958,440.18049 L 2354.159,441.61603 L 2351.4651,439.0994 L 2348.5232,441.01346 L 2348.5232,441.98821 C 2348.5232,442.51656 2348.8422,443.33974 2349.2321,443.83138 C 2349.622,444.32299 2350.3238,444.85204 2350.7917,445.00108 L 2351.6424,445.26692 L 2353.2552,444.45167 C 2354.1419,444.00359 2354.9538,443.73998 2355.0629,443.8491 L 2358.1644,448.31524 L 2359.7786,448.48865 L 2359.2632,455.08534 C 2359.8665,454.76244 2360.9113,454.50047 2361.5849,454.50048 L 2362.8077,454.50048 L 2363.0632,455.78072 L 2364.0733,456.0772 L 2364.4028,455.15623 L 2367.1675,451.87751 L 2367.9119,448.90009 L 2362.5419,443.14019 C 2364.0734,441.23459 2365.7702,439.47181 2367.4511,437.6993 L 2366.5344,436.56831 L 2365.537,437.77019 L 2364.0129,438.62088 C 2363.5677,438.62088 2362.4656,438.22624 2361.5494,437.75247 L 2359.8835,436.90177 z \"},\"ny22\":{\"name\":\"NY-22\",\"path\":\"M 2305.8875,436.17163 L 2304.2365,434.5207 L 2300.8844,435.19112 L 2300.8844,433.59453 L 2298.6158,432.87453 L 2298.6158,431.38003 L 2295.8167,429.54594 L 2296.3304,428.13037 L 2293.7089,419.62344 L 2291.5012,418.48918 L 2291.8934,416.50423 L 2290.0733,416.50423 L 2289.4204,414.80285 L 2286.7731,414.80285 L 2286.1027,413.71813 C 2285.2213,413.98571 2284.4407,414.35106 2283.7802,414.99524 L 2283.4063,415.55393 C 2282.4119,414.59302 2281.6741,413.43598 2281.0112,412.23053 L 2280.1369,410.54938 L 2278.1018,410.54124 L 2276.6563,408.56443 L 2275.8114,408.56443 L 2222.6206,422.25196 L 2222.6203,420.9377 L 2220.3721,413.70915 L 2220.9543,412.19203 L 2217.6368,398.21386 L 2216.9991,397.81977 C 2216.6484,397.60301 2216.1385,396.6483 2215.866,395.69818 L 2215.3706,393.97067 L 2219.2475,392.1219 L 2219.7998,393.57454 C 2220.1036,394.37349 2220.3521,395.24755 2220.3521,395.51688 L 2222.337,397.97001 L 2225.8801,410.54938 L 2224.4285,412.10368 C 2224.6623,414.13573 2226.3114,415.54295 2226.824,417.4117 L 2226.9822,418.48918 L 2227.9206,418.44193 L 2231.1275,418.20562 L 2231.1275,414.80285 L 2232.5802,414.80285 L 2233.8806,411.35775 L 2236.6751,412.05911 L 2237.4329,410.83295 C 2238.5591,410.84933 2239.7065,410.89495 2240.7687,410.5863 C 2240.7687,410.45065 2240.5133,409.66775 2240.201,408.84652 L 2239.6333,407.35339 L 2241.7428,408.02292 L 2243.1761,406.29592 L 2246.3475,406.29592 L 2248.8955,410.4187 C 2249.7569,409.40011 2250.3366,408.25374 2250.7796,407.00483 L 2251.1,405.72879 L 2260.4028,405.821 L 2261.881,404.03989 L 2262.8017,404.60894 L 2265.787,403.24879 L 2265.4388,399.29134 L 2269.3762,398.25863 L 2269.5815,398.8745 C 2269.6944,399.21323 2270.0941,399.49037 2270.4698,399.49037 L 2271.1527,399.49037 C 2273.1113,397.60169 2274.8744,395.4711 2277.0436,393.8201 L 2280.4677,398.75861 L 2280.4677,401.88024 L 2282.3422,401.16093 L 2286.0527,402.3855 L 2292.5815,409.94647 C 2298.1269,403.8508 2305.2663,398.08466 2309.9795,391.26701 L 2313.2675,388.13911 L 2319.9332,389.69413 L 2330.6586,387.95775 L 2331.0753,387.34387 L 2331.5093,383.65068 L 2333.6261,382.51778 L 2337.046,383.80865 L 2338.84,397.90574 L 2340.2998,399.66394 L 2340.9792,402.55458 L 2344.5724,416.18069 L 2343.7026,422.45909 L 2336.0972,423.48217 L 2334.9594,426.74604 L 2332.353,426.09189 L 2326.2003,430.68245 L 2323.0024,430.68245 L 2323.0024,428.41394 L 2322.3226,428.41394 L 2310.5198,432.05981 L 2311.2368,435.88234 C 2310.4323,435.76665 2309.6308,435.71483 2308.8242,435.76856 L 2305.8875,436.17163 z \"},\"ny20\":{\"name\":\"NY-20\",\"path\":\"M 2350.5708,411.93125 L 2347.3889,410.8695 L 2347.3889,406.86305 L 2342.6634,406.81738 L 2340.8881,399.57218 L 2339.3331,397.88034 L 2337.56,383.26243 L 2333.4943,381.97895 L 2331.0157,383.58875 L 2330.6586,387.29711 L 2320.1317,389.12212 L 2313.1992,387.68923 C 2309.4213,390.28205 2305.1411,397.25928 2292.5944,409.16896 L 2286.3867,401.99802 L 2282.4653,400.70384 L 2280.9435,401.32721 L 2281.0349,398.73898 L 2277.1263,393.25196 C 2274.8759,394.76368 2272.9089,396.91319 2270.8901,398.94608 L 2270.3534,398.92324 L 2268.3485,390.45771 L 2272.9594,389.27715 L 2274.3669,385.87928 L 2275.8093,385.87928 L 2276.4549,384.19702 L 2278.2002,384.86516 C 2280.0064,381.17982 2282.5419,378.83198 2285.8075,377.39647 L 2281.0349,373.30162 L 2281.0349,369.00303 L 2284.4376,367.59356 C 2284.5927,366.16062 2284.4071,364.80338 2283.4335,363.62125 L 2285.005,356.09416 L 2287.3621,354.62209 L 2288.9464,355.93689 C 2289.7974,353.83686 2290.8224,351.82377 2292.87,350.71731 L 2293.4713,354.87769 L 2297.4296,362.41042 L 2295.6858,370.25098 L 2301.735,374.94807 L 2311.126,376.97649 L 2312.6244,374.9272 L 2315.0618,375.56459 L 2317.8894,374.25315 L 2318.0395,371.22543 L 2337.8488,362.00719 L 2337.2162,360.35849 L 2337.8691,358.65711 L 2339.8773,358.65711 L 2341.4219,356.80148 L 2343.6827,357.58161 L 2344.5533,351.85156 L 2342.4668,351.85156 L 2341.1452,348.95092 L 2341.8406,346.18028 L 2340.0275,346.18028 L 2336.6469,338.72434 L 2334.1772,339.09117 C 2333.8015,340.24257 2333.5687,341.53034 2330.9671,343.46448 L 2325.9174,339.20084 L 2325.2493,336.53909 C 2324.4724,336.52113 2323.7565,336.2854 2322.5565,337.77894 L 2319.6286,335.86052 L 2315.7373,335.75021 L 2298.0487,291.5178 L 2312.5105,284.99376 L 2312.8494,282.84181 L 2308.9349,281.51428 L 2306.4868,274.15186 L 2304.1854,275.51798 L 2302.8084,274.98136 L 2305.4343,272.6408 L 2301.6232,263.92927 L 2297.0254,266.18155 C 2294.8211,262.59408 2293.1158,258.4051 2291.9257,254.56811 L 2301.165,250.89382 L 2302.7122,253.86271 L 2308.7847,250.90353 L 2314.035,262.74731 L 2316.9051,263.09592 L 2319.0857,268.66738 L 2317.8941,269.40381 L 2319.7062,274.72206 L 2329.2192,274.72206 L 2329.943,277.60611 L 2333.2958,277.5577 L 2332.5903,287.48246 L 2333.5759,290.88523 L 2335.4903,291.0144 L 2335.9676,287.78019 L 2338.0811,286.87595 L 2339.489,289.46741 L 2341.8211,289.98411 L 2354.5665,339.75093 L 2355.8107,381.97851 L 2357.4978,384.55333 L 2361.1946,401.21668 L 2356.5021,402.65233 C 2357.0717,404.82496 2357.6785,406.98845 2358.2033,409.17246 L 2355.3791,409.13156 L 2350.5708,411.93125 z \"},\"ny25\":{\"name\":\"NY-25\",\"path\":\"M 2198.1277,337.33524 L 2196.4795,342.8293 L 2195.5048,343.20148 C 2194.9752,343.40277 2194.0712,344.1789 2193.4844,344.92059 C 2192.8975,345.66228 2191.8767,346.51489 2191.2158,346.81692 C 2190.555,347.11894 2189.4344,347.68875 2188.7347,348.09296 C 2188.035,348.49716 2186.9707,349.27693 2186.3598,349.82979 L 2185.2433,350.83999 L 2181.3974,351.10583 C 2179.2769,351.24974 2177.0234,351.56871 2176.3996,351.81474 C 2175.7758,352.06079 2174.3589,352.55843 2173.245,352.91356 C 2172.1311,353.2687 2170.7546,353.55156 2170.1966,353.55158 L 2169.1865,353.55158 L 2162.5227,357.09613 L 2158.5882,360.92425 L 2156.8514,360.46346 L 2155.5045,362.35979 C 2155.8901,363.21235 2156.6178,364.7197 2157.2236,365.44356 L 2164.6317,363.38771 L 2166.1913,362.14712 C 2167.0509,361.47091 2168.0854,360.92424 2168.4776,360.92425 L 2169.1865,360.92425 L 2171.0828,368.38554 L 2175.2299,367.69435 C 2176.9268,366.95128 2179.9646,366.16708 2181.7873,365.88663 L 2181.7873,367.30445 C 2189.3449,365.80688 2193.4621,363.99619 2199.2974,362.34207 L 2198.1277,354.84534 L 2203.7281,353.64019 L 2203.9053,356.06821 L 2209.1513,357.75187 L 2210.2501,360.92425 L 2211.5616,360.92425 L 2214.2909,370.05148 L 2218.3671,368.82861 L 2223.7549,372.23138 L 2239.156,367.35762 L 2233.8214,350.1488 L 2231.1275,350.1488 L 2231.1275,347.40177 L 2229.373,345.54088 L 2224.4461,344.88514 L 2224.4638,343.66227 L 2218.4912,342.35078 L 2218.438,343.98128 L 2219.4305,343.94583 L 2219.909,344.95603 L 2219.0938,346.28524 L 2216.9493,345.71811 L 2216.9493,346.76375 L 2212.6958,346.09029 L 2207.2018,347.9689 L 2205.8726,346.14346 L 2201.0343,347.79168 L 2198.1277,337.33524 z \"},\"az8\":{\"name\":\"AZ-8\",\"path\":\"M 593.17132,1188.335 L 593.89322,1182.0404 L 592.55383,1180.4266 C 591.78526,1180.5157 590.88891,1180.6743 590.2311,1180.425 C 590.2311,1180.2648 591.21524,1178.916 591.59198,1178.3127 L 589.20029,1174.2992 L 584.60632,1171.1457 L 581.48399,1173.6815 L 577.87938,1169.576 L 574.01678,1170.243 L 573.41244,1168.8005 L 574.08222,1164.14 L 571.68747,1159.446 C 572.15336,1155.1569 572.36677,1150.8305 573.05107,1146.5691 L 586.5569,1148.154 L 588.15569,1146.8271 L 588.15569,1144.3062 L 590.42421,1142.2532 L 590.42421,1140.7276 L 591.42615,1140.7276 L 592.0826,1138.2174 L 590.5192,1136.4741 L 591.07839,1133.5913 L 587.58856,1130.9168 L 587.58856,1129.5344 L 582.77846,1128.8892 L 580.82527,1130.6569 L 578.97881,1129.5436 L 579.62029,1124.8973 L 578.14542,1122.5434 L 575.53504,1123.2635 L 572.99833,1120.7094 L 574.10037,1114.7342 L 591.55846,1116.3127 L 591.55846,1113.1141 L 593.63274,1111.2369 L 595.55644,1111.2369 L 596.57574,1113.9178 L 598.36401,1114.6041 L 598.36401,1116.8179 L 612.82579,1118.3361 L 612.46271,1123.5726 L 684.40106,1131.0864 L 677.96222,1197.5873 L 593.17132,1188.335 z \"},\"ga8\":{\"name\":\"GA-8\",\"path\":\"M 2004.8255,1013.8666 L 1996.3185,1015.8516 L 1987.6521,1014.5578 L 1986.1279,1016.6136 L 1986.1279,1020.938 L 1987.2482,1021.827 L 1992.459,1021.8162 L 1995.202,1025.6404 C 1994.2634,1025.4953 1993.195,1027.9795 1991.7618,1031.2963 L 1991.5749,1041.0966 L 1993.3413,1044.0799 L 1997.636,1043.371 L 2001.9327,1051.3698 C 2001.9429,1054.3482 2003.857,1056.6002 2004.7191,1059.3964 L 2000.9442,1059.4851 L 2002.2025,1064.1461 L 2016.558,1064.1993 L 2017.6922,1067.5666 L 2021.1304,1070.5086 L 2026.1283,1072.2277 L 2021.0418,1075.2051 L 2020.1556,1094.2217 L 2029.7968,1094.2217 C 2029.5547,1096.498 2030.2072,1096.7136 2026.9612,1105.9364 L 2026.9612,1117.474 L 2016.1857,1117.474 L 2015.1401,1130.2344 L 2017.5327,1132.8041 L 2018.0289,1139.592 L 2005.0027,1139.592 C 2004.1076,1142.5729 2004.3311,1151.4179 2004.276,1158.7857 C 2007.4437,1159.5025 2014.0904,1159.5745 2025.8269,1158.6971 L 2025.8269,1156.6767 L 2027.2093,1155.8792 L 2027.2093,1151.094 L 2028.6449,1147.0001 L 2031.9413,1146.9647 L 2032.8275,1144.9797 L 2033.4832,1133.07 L 2045.322,1132.5029 C 2046.3451,1127.202 2047.4022,1128.2177 2048.0513,1123.2161 C 2051.1986,1121.7337 2049.1994,1119.9501 2053.2441,1117.0841 L 2053.1909,1112.4761 L 2048.4412,1111.0938 L 2041.742,1106.734 L 2045.7828,1099.6094 L 2059.837,1084.8995 C 2058.3404,1084.2318 2057.2816,1084.3188 2054.8214,1082.1525 L 2054.8214,1080.4334 C 2058.596,1078.9478 2060.7881,1076.403 2061.2725,1073.5215 L 2060.9003,1069.6756 L 2054.6796,1063.7385 L 2048.2994,1062.9942 C 2044.4447,1059.992 2039.0977,1058.744 2026.6422,1052.7504 C 2024.7511,1046.9308 2023.8949,1040.7983 2023.4698,1034.7086 C 2021.5091,1034.2956 2018.8801,1033.9891 2016.0794,1033.7161 L 2015.6718,1028.9487 C 2014.4075,1027.8822 2013.3231,1025.8382 2012.3399,1023.366 L 2012.269,1016.9858 L 2004.8255,1013.8666 z \"},\"tx30\":{\"name\":\"TX-30\",\"path\":\"M 1316.4254,1142.429 L 1315.7469,1140.2911 L 1318.1196,1134.2715 L 1319.5028,1132.9896 C 1320.2635,1132.2846 1320.886,1131.4554 1320.886,1131.147 C 1320.886,1130.8386 1320.6308,1130.4285 1320.3188,1130.2357 L 1319.7517,1129.8852 L 1319.7517,1127.6836 L 1316.3489,1127.6836 L 1316.3489,1125.554 L 1318.1108,1124.0918 L 1321.4734,1124.0918 L 1322.8709,1125.9052 L 1327.0684,1126.2325 L 1329.8404,1123.6284 L 1330.21,1124.2265 C 1330.2028,1126.1216 1329.5658,1127.2874 1329.0945,1128.8179 L 1331.7156,1128.8179 L 1333.1063,1130.3185 C 1333.8712,1131.1439 1334.4971,1132.0098 1334.4971,1132.2428 C 1334.4971,1132.4758 1334.1505,1132.7994 1333.727,1132.962 L 1332.957,1133.2574 L 1332.2382,1136.851 L 1335.5812,1141.7098 C 1329.1296,1142.1484 1324.8661,1142.355 1316.4254,1142.429 z \"},\"ca33\":{\"name\":\"CA-33\",\"path\":\"M 224.85893,966.52013 L 219.6698,965.36727 C 220.44102,962.79778 220.17017,962.04554 220.72536,961.4331 C 222.38142,961.04841 223.98666,960.7146 224.95648,959.22436 L 226.73166,965.31384 L 224.85893,966.52013 z \"},\"nc8\":{\"name\":\"NC-8\",\"path\":\"M 2191.0997,902.4457 L 2178.7605,894.45247 L 2138.9691,902.04071 L 2135.7828,895.10728 L 2133.169,894.1135 L 2132.4966,892.36158 L 2133.6357,891.65761 L 2135.3028,892.29733 L 2139.2412,890.41922 L 2139.9139,888.29981 L 2136.8845,884.90929 L 2137.644,881.02428 L 2136.8832,879.79333 L 2135.3365,881.07691 L 2123.4813,876.90874 L 2120.6951,870.77859 L 2121.7884,867.79521 C 2120.9169,865.69945 2121.0491,864.17727 2121.3083,862.72763 L 2164.085,853.15541 C 2167.3728,859.78475 2169.927,865.31374 2170.6043,868.02745 L 2173.2804,869.04488 L 2173.2804,870.66795 L 2178.8705,874.68407 L 2179.2352,877.86345 L 2186.427,877.86345 C 2188.3366,873.65632 2191.1524,869.65057 2194.5352,865.77079 C 2196.6688,866.81697 2199.0118,867.30459 2201.6368,867.04031 L 2201.6368,868.77419 L 2204.4593,874.5361 L 2208.3498,870.1657 L 2209.1101,871.39591 L 2214.1137,870.64555 L 2213.0798,872.4806 L 2214.3969,875.97015 L 2212.1287,877.63422 L 2208.8817,876.72919 L 2201.9204,887.75786 L 2193.697,889.14364 L 2195.5741,893.52839 L 2191.0997,902.4457 z \"},\"in8\":{\"name\":\"IN-8\",\"path\":\"M 1741.012,611.55739 L 1749.6353,681.84823 L 1747.2782,683.51417 L 1746.9237,686.72196 L 1748.0048,688.08665 C 1748.5937,688.83537 1749.0681,689.77607 1749.0681,690.17793 C 1749.0681,690.57986 1748.4015,691.69988 1747.5794,692.67682 L 1746.073,694.46684 L 1747.3136,697.1784 L 1750.1492,699.02157 L 1750.8582,703.82447 L 1754.1723,705.08276 L 1754.1723,708.76909 L 1752.4178,710.7009 L 1753.1798,711.48071 C 1753.5967,711.9077 1754.524,713.38178 1755.2357,714.75939 L 1756.5294,717.27602 L 1755.7496,722.85872 L 1751.957,725.10949 L 1751.2658,727.28942 L 1751.9747,729.55793 L 1750.7695,729.55793 L 1750.7695,735.19377 L 1747.4199,737.67496 L 1747.9871,738.61424 L 1746.7465,743.22216 L 1743.964,745.65021 L 1743.964,749.35424 L 1740.0473,751.21516 L 1738.8598,750.4708 L 1738.8598,753.30645 L 1738.2927,753.6609 C 1737.9808,753.85361 1737.7256,754.36675 1737.7256,754.79516 L 1737.7256,755.57496 L 1739.9941,756.28387 L 1741.1461,758.46375 L 1739.7637,760.67912 L 1737.7256,761.2108 L 1738.4168,764.66672 L 1736.6622,766.43899 L 1738.3459,770.49754 L 1737.0344,772.07483 L 1737.7788,775.03457 L 1736.4495,776.62961 L 1737.8496,778.31325 L 1737.1939,780.03239 L 1738.4522,780.05008 C 1739.1442,780.05485 1740.0836,780.29094 1740.5435,780.58176 L 1741.3764,781.11345 L 1743.5386,778.79179 L 1742.3335,777.17899 C 1741.6715,776.28367 1741.1283,775.1975 1741.1283,774.78645 C 1741.1283,774.37528 1741.5289,773.477 1742.0145,772.78374 L 1742.9006,771.52546 L 1745.0096,771.52546 L 1747.3845,774.53833 L 1749.2099,773.65219 C 1750.2197,773.17007 1751.7315,772.47415 1752.5595,772.09259 L 1754.066,771.40137 L 1755.3774,772.19892 L 1755.023,775.77892 L 1757.1675,775.77892 L 1758.3903,773.84711 L 1755.8028,771.08236 L 1756.5649,766.98843 L 1758.7448,766.70486 L 1760.1626,769.54051 L 1762.4665,769.87721 L 1764.5578,767.55556 L 1767.8366,767.55556 L 1769.3784,768.33536 C 1770.2207,768.76371 1771.4768,769.28859 1772.1786,769.50506 L 1773.4547,769.89496 L 1773.4547,767.73278 C 1775.6572,764.54847 1777.7631,761.41786 1778.5943,758.99543 L 1780.6856,759.6512 L 1781.4654,754.5116 L 1783.663,754.5116 C 1783.7717,752.0667 1783.4824,750.71631 1782.9718,749.97457 L 1780.4197,749.97457 L 1777.9208,731.08209 L 1779.4095,730.10731 L 1784.1947,730.35543 L 1784.9036,729.62882 L 1786.4632,730.2314 L 1789.866,727.80335 L 1796.4057,727.0413 L 1789.4202,677.77659 L 1792.0505,675.5235 L 1790.6708,668.25257 L 1787.4911,669.03464 L 1788.8277,658.49234 L 1786.9136,658.43415 L 1784.6023,644.38229 L 1765.6748,647.01025 L 1764.806,641.67068 L 1759.6536,642.16924 L 1758.9116,635.9817 L 1754.6631,635.86538 L 1753.7847,629.05983 L 1750.3041,629.05983 L 1753.7469,623.50487 L 1758.6739,623.50487 L 1758.0359,626.76586 C 1759.6655,626.98006 1761.2612,627.53086 1762.8915,627.64655 L 1760.198,609.19524 L 1741.012,611.55739 z \"},\"ca8\":{\"name\":\"CA-8\",\"path\":\"M 75.967584,688.72467 L 74.726994,688.74236 C 74.046214,688.74661 72.931894,688.88204 72.263534,689.06137 L 71.058384,689.39813 L 70.827984,690.99318 L 73.415514,691.36533 L 73.238284,693.17305 L 72.423034,693.03127 L 72.352144,693.81107 L 75.914424,693.82882 L 76.658774,690.90454 L 75.967584,688.72467 z \"},\"ca12\":{\"name\":\"CA-12\",\"path\":\"M 70.898874,691.578 L 70.562144,693.79338 L 69.179764,700.7584 L 67.496104,701.27239 L 67.531554,704.03714 L 70.615314,702.26486 L 71.820464,701.80407 L 72.529374,701.80407 C 73.980934,703.32693 74.886504,703.96625 74.886504,703.96625 L 75.967584,704.07259 L 79.051354,708.13107 L 81.248974,707.70573 C 81.248974,707.70573 82.132084,707.22639 78.324714,704.79919 C 74.517354,702.37199 74.324444,702.0658 74.443434,698.4013 L 75.435904,698.3481 L 74.780164,696.11503 L 76.180264,694.39595 C 76.180264,694.3959 74.113164,694.38427 73.185114,694.36051 C 72.788544,694.3503 72.250714,694.23018 71.767294,694.11239 L 71.891354,692.37556 L 72.742044,692.51734 L 72.812934,691.84387 L 70.898874,691.578 z \"},\"oh8\":{\"name\":\"OH-8\",\"path\":\"M 1887.507,663.27811 L 1888.1631,659.23533 L 1886.3133,659.23533 C 1886.3238,658.19142 1886.7042,657.05507 1887.4964,655.81572 L 1885.8178,655.17157 L 1886.5079,653.4175 L 1876.868,655.08327 L 1867.6905,593.49979 L 1871.5679,592.75503 L 1871.5679,590.05902 L 1876.1882,589.32022 L 1875.5356,586.59046 L 1881.8567,585.24296 L 1883.7897,597.23115 L 1885.1966,598.86346 L 1886.6123,607.75479 C 1901.8901,604.96463 1899.2383,606.63097 1905.5512,605.39537 C 1906.7933,612.30254 1906.9988,619.62434 1907.297,626.909 L 1906.1506,627.56857 L 1906.648,633.14741 C 1904.6006,633.1481 1902.9927,632.56288 1901.5281,631.78659 L 1902.7225,623.3501 L 1900.9865,622.46611 L 1886.7787,624.84096 L 1890.5443,645.69474 L 1895.9545,644.95067 C 1895.9045,646.02589 1896.7446,647.10111 1898.0596,648.17633 L 1899.2794,662.61361 L 1887.507,663.27811 z \"},\"va8\":{\"name\":\"VA-8\",\"path\":\"M 2243.0372,628.61039 C 2242.8403,626.53277 2242.7809,624.82066 2241.8126,622.84473 L 2243.7066,620.75185 L 2242.663,618.20006 L 2239.9558,620.18427 L 2239.3509,617.55138 L 2234.5736,617.20469 L 2232.1176,618.51918 L 2231.6312,617.75169 C 2231.3637,617.32963 2231.1449,616.72904 2231.1449,616.41712 C 2231.1449,616.1052 2231.3566,615.51623 2231.6153,615.10824 L 2232.0857,614.36655 L 2236.2181,616.80469 L 2243.3208,616.47247 L 2247.2974,618.39997 L 2248.003,620.6606 C 2248.391,621.90392 2248.7085,623.44753 2248.7085,624.09082 L 2248.7085,625.26036 L 2244.8209,628.6912 L 2243.0372,628.61039 z \"},\"md8\":{\"name\":\"MD-8\",\"path\":\"M 2243.1644,614.8494 L 2241.6682,613.29791 L 2236.7707,613.29791 L 2235.7143,610.51938 L 2231.1391,609.2874 L 2225.5853,610.02416 L 2223.1877,607.62662 L 2221.4863,607.62662 L 2221.4863,604.91235 L 2223.3214,603.43532 L 2223.1877,601.92999 L 2225.5285,599.39061 C 2226.8159,597.99389 2228.0616,596.85118 2228.2968,596.85118 L 2228.7244,596.85118 L 2230.0005,601.91932 L 2232.4556,603.23319 L 2233.8543,601.32032 L 2234.6313,602.57753 L 2236.1159,601.34539 L 2238.7838,604.66037 L 2242.4843,606.52883 L 2243.0093,605.14787 C 2243.2981,604.38832 2243.7936,603.6067 2244.1104,603.41087 L 2244.6864,603.05489 L 2247.6013,603.78648 L 2247.2303,605.84833 C 2247.0262,606.98236 2246.6249,608.20646 2246.3385,608.56862 L 2245.8178,609.227 L 2246.955,609.92985 L 2248.3082,609.59019 L 2250.4379,610.98703 C 2250.9753,611.80716 2251.5349,612.47501 2251.4362,612.77099 L 2251.2569,613.30914 L 2247.1119,610.81865 L 2246.1199,610.59594 L 2243.1644,614.8494 z \"},\"il8\":{\"name\":\"IL-8\",\"path\":\"M 1693.4895,518.15916 L 1695.3829,517.23402 L 1694.5144,512.3437 L 1696.0182,512.07232 L 1695.6292,506.11057 L 1690.9374,506.0932 L 1688.2772,504.87208 L 1687.8182,507.68572 C 1686.3585,507.93934 1684.8807,508.3828 1683.4026,508.12241 L 1681.6474,492.64314 L 1711.2621,489.09671 C 1711.6794,490.70417 1711.5959,491.81099 1711.6376,493.54362 C 1710.4775,493.78254 1709.3034,494.00909 1708.2349,494.49257 L 1709.436,497.85349 L 1707.5232,499.25219 L 1705.5074,496.7628 L 1703.1307,498.91369 C 1703.0661,500.90133 1703.7941,502.80552 1704.5638,504.12562 L 1704.5068,515.15177 L 1702.908,514.22997 L 1701.7478,511.21473 L 1699.1608,511.21473 C 1699.1286,512.96554 1699.3468,514.59118 1700.3159,515.71617 L 1705.4902,518.74849 L 1703.9567,520.79799 L 1699.6298,521.13061 L 1699.5695,517.5281 C 1697.0652,517.84475 1695.8542,518.32828 1694.6849,519.85485 L 1696.8759,523.06034 C 1693.9948,522.26104 1693.909,521.04453 1693.4895,518.15916 z \"},\"mi8\":{\"name\":\"MI-8\",\"path\":\"M 1859.6582,427.5087 L 1839.5075,430.80514 L 1842.8039,451.41672 L 1853.2071,449.96346 L 1856.9112,471.35484 C 1871.3946,469.01698 1883.9127,466.95295 1897.904,463.52138 L 1894.8202,447.28732 L 1903.5576,446.48979 C 1905.2299,445.46556 1906.7306,444.77106 1910.6998,444.239 L 1910.9657,439.06395 L 1914.1026,439.2589 L 1914.1026,437.59296 L 1919.6321,436.28148 L 1918.4978,431.83306 L 1893.4024,437.25623 L 1893.7746,442.99841 L 1883.2118,444.57573 L 1881.4927,437.04355 L 1877.257,437.43346 L 1876.3176,435.73207 L 1861.6077,438.23098 L 1859.6582,427.5087 z \"},\"nj8\":{\"name\":\"NJ-8\",\"path\":\"M 2344.9507,471.51732 L 2342.9631,470.53541 L 2342.5978,471.2043 L 2342.0855,469.22085 L 2344.4201,467.25189 L 2344.7707,465.76677 L 2343.4832,463.36737 C 2342.7281,462.24124 2342.2615,461.62275 2341.4454,460.00026 C 2340.7338,458.34947 2339.3616,456.48997 2339.3616,456.48997 L 2340.4959,455.18072 L 2342.2036,456.6048 C 2345.2174,456.08909 2346.0925,456.13712 2347.0313,456.42704 L 2347.0726,458.23903 L 2348.1505,458.39134 C 2348.122,459.27366 2348.2576,460.55508 2349.0545,461.35202 L 2350.1128,462.42532 L 2349.6574,468.98776 L 2348.6515,468.05362 L 2347.6739,469.08335 L 2347.0578,468.03102 C 2346.7317,467.7454 2346.4238,467.34869 2346.0257,467.121 L 2345.3252,467.03561 L 2346.0171,470.39177 L 2344.9507,471.51732 z \"},\"ma8\":{\"name\":\"MA-8\",\"path\":\"M 2458.9715,338.78873 C 2458.7375,338.79911 2458.5461,338.45209 2458.5461,338.01759 L 2458.5461,337.22757 L 2456.6397,336.13897 C 2456.9644,335.61149 2456.9302,335.05838 2456.8447,334.24897 L 2453.9066,334.98638 C 2454.77,333.51616 2455.3515,332.37914 2455.728,330.72951 L 2459.0909,331.4021 L 2460.3378,329.07231 L 2462.5589,331.08233 L 2460.8146,332.05842 L 2460.8146,334.8377 L 2461.9489,334.8377 L 2461.9489,336.64084 L 2460.6729,337.70535 C 2459.971,338.29083 2459.2054,338.77836 2458.9715,338.78873 z \"},\"mn8\":{\"name\":\"MN-8\",\"path\":\"M 1394.8963,132.65495 L 1388.5161,133.55881 L 1392.3087,190.64386 L 1376.4646,191.4591 L 1376.4646,202.69534 L 1370.7933,202.69534 L 1370.7933,205.28287 L 1374.0897,207.23237 L 1377.5988,207.23237 L 1377.5988,212.72643 C 1372.3467,213.12796 1367.0318,213.48762 1361.1521,213.47079 L 1361.1521,218.50405 L 1362.2864,218.57495 L 1365.76,277.2196 L 1383.5537,276.4398 L 1383.9259,277.55633 L 1387.1337,277.55633 L 1389.6858,312.71831 L 1404.2716,311.99168 L 1400.6562,309.42187 L 1427.4707,307.96861 L 1428.7999,323.9191 L 1439.6994,323.77732 L 1440.0716,332.26653 L 1462.0656,330.72465 L 1462.101,337.81375 L 1472.8056,337.33524 L 1475.145,335.22623 L 1475.1804,332.85138 L 1476.8464,330.65375 L 1476.8464,328.17257 L 1472.9119,323.88366 L 1473.4259,323.05069 L 1471.6536,321.5797 L 1469.1192,321.47336 C 1467.7268,321.41468 1466.4134,321.19549 1466.195,320.97712 L 1465.8051,320.5695 L 1465.9291,311.63722 L 1469.4737,308.64207 L 1469.4737,306.55079 L 1470.6257,305.84187 L 1469.9345,304.72534 L 1470.9093,302.61633 C 1471.4425,301.46231 1472.6611,299.69561 1473.6208,298.68187 L 1475.3754,296.83871 L 1476.9172,296.83871 L 1480.1251,293.3296 L 1482.3936,294.03851 L 1483.6342,290.45851 L 1487.0547,291.13197 L 1487.0547,288.88118 L 1489.0396,287.1798 L 1486.4875,250.7595 L 1489.6599,251.39752 L 1490.9891,249.28851 L 1489.6068,248.79227 L 1493.0095,245.26544 L 1495.5794,245.22999 L 1494.1438,242.87287 L 1497.8301,239.48782 C 1499.8576,237.62015 1502.4097,235.39944 1503.5014,234.56089 C 1504.5931,233.72235 1507.0814,231.43322 1509.0309,229.47445 C 1510.9804,227.51568 1512.5749,225.72923 1512.5755,225.50455 C 1512.576,225.27988 1513.5477,224.2037 1514.7376,223.11198 C 1515.9275,222.02025 1517.5232,220.58967 1518.2822,219.9396 C 1519.0413,219.28953 1520.4751,217.75829 1521.4723,216.53683 C 1522.4694,215.31537 1524.1283,213.18546 1525.1586,211.80485 C 1526.1889,210.42423 1527.7391,208.3121 1528.5968,207.10831 C 1529.4546,205.90453 1530.1565,204.71823 1530.1565,204.46762 C 1530.1565,204.217 1530.9752,203.01144 1531.9819,201.79148 C 1532.9887,200.57152 1536.6253,196.75403 1540.0635,193.30227 L 1546.3196,187.02841 L 1551.3352,183.48386 C 1554.0913,181.53846 1557.6641,179.34934 1559.275,178.61009 C 1560.8858,177.87085 1563.7305,176.5863 1565.602,175.75673 C 1567.4735,174.92716 1569.5152,174.03976 1570.139,173.7895 C 1570.7629,173.53923 1572.9845,172.52684 1575.0837,171.53871 L 1578.9118,169.74871 L 1579.7802,168.20683 L 1586.0186,165.38891 L 1592.0089,159.52267 L 1594.1002,160.19613 L 1594.6673,158.74287 L 1584.654,158.79604 L 1582.5273,160.72782 L 1581.198,160.72782 C 1580.4696,160.72782 1578.9153,160.3061 1577.7421,159.78851 L 1575.6154,158.8492 L 1575.1014,156.88198 L 1572.3012,155.03881 L 1567.8705,154.84386 L 1564.1842,155.57049 C 1562.1567,155.96937 1559.3494,156.36576 1557.9458,156.43891 C 1556.5421,156.51206 1554.5324,156.76375 1553.4796,157.00604 L 1551.5656,157.44911 L 1550.7681,156.17307 L 1548.8363,156.97059 C 1547.7673,157.41007 1546.1026,157.9374 1545.1499,158.14029 L 1543.4308,158.49475 L 1540.861,153.35515 L 1539.2305,153.35515 L 1539.2305,149.40297 L 1536.8202,150.32455 C 1535.4946,150.8346 1534.1547,151.56207 1533.8428,151.93732 C 1533.5309,152.31258 1532.51,153.02473 1531.5743,153.51465 L 1529.8729,154.40079 L 1526.4347,157.80356 L 1522.9965,161.22406 L 1521.3305,161.57851 C 1520.413,161.77593 1518.9861,162.30085 1518.1582,162.74821 C 1517.3302,163.19558 1516.2727,163.56347 1515.801,163.56346 L 1514.9326,163.56346 L 1514.5073,162.28742 L 1509.7221,164.73316 L 1509.0487,161.38356 L 1503.4483,160.62148 L 1503.785,158.63653 L 1502.1722,155.62366 L 1500.4354,155.53505 C 1499.4743,155.48886 1498.2723,155.42506 1497.777,155.39326 C 1497.2815,155.36146 1496.4724,154.99369 1495.9693,154.57802 L 1495.0477,153.83366 L 1492.726,154.56029 L 1492.726,154.0995 C 1492.726,153.84052 1492.1517,153.37948 1491.4499,153.07158 L 1490.1739,152.50445 L 1489.8017,149.29663 L 1487.5155,147.01039 L 1485.1584,147.36485 C 1483.8625,147.56037 1482.0356,147.80006 1481.0998,147.89653 L 1479.3984,148.07376 L 1479.044,151.72465 L 1480.3732,153.33742 L 1479.7174,155.05653 L 1478.8491,155.05653 C 1478.3671,155.05653 1477.428,155.37555 1476.7755,155.76544 L 1475.5881,156.47435 L 1474.95,155.41099 C 1474.593,154.82566 1473.3325,152.91159 1472.1498,151.15752 L 1469.9877,147.96742 L 1470.5548,144.97227 L 1468.499,143.12911 L 1462.6327,144.38742 L 1459.8325,142.56198 L 1459.8325,141.85307 C 1459.8373,141.47036 1460.0286,140.87171 1460.2578,140.52386 C 1460.487,140.176 1461.2758,139.72041 1461.9947,139.49594 L 1463.3062,139.08831 L 1462.8277,137.75911 L 1459.1059,138.07812 C 1455.8159,136.73684 1452.3599,135.73835 1449.1988,134.10821 L 1449.057,133.7892 L 1435.0029,133.7892 L 1433.9041,134.78168 C 1433.3052,135.32364 1431.9817,136.05677 1430.9621,136.41218 L 1429.119,137.05019 L 1429.6506,139.14148 L 1428.9949,139.69089 C 1428.6262,139.99684 1426.3445,140.78684 1423.9439,141.44544 L 1419.5841,142.65059 L 1414.1786,142.29614 L 1414.0192,140.59475 C 1413.9285,139.65899 1413.5765,138.19154 1413.2394,137.33376 L 1412.619,135.77416 L 1396.5976,135.75643 L 1394.914,134.69307 L 1394.8963,132.65495 z \"},\"wa8\":{\"name\":\"WA-8\",\"path\":\"M 246.09695,153.1863 L 245.89352,153.66945 L 233.13488,150.88861 L 230.50794,153.35652 L 229.69383,153.3544 C 229.24603,153.35323 228.09277,152.87244 227.13103,152.28597 C 226.1693,151.69949 224.51044,151.03718 223.4447,150.81417 C 222.37895,150.59116 220.23095,150.01376 218.67134,149.53106 L 215.8357,148.65344 L 214.70144,147.67308 C 214.0776,147.13387 212.98974,146.3949 212.28394,146.0309 L 211.0007,145.36909 L 212.15333,143.21531 L 209.79754,141.56524 L 211.00944,140.81625 L 210.96344,139.0048 C 210.93815,138.0085 211.15161,136.15656 211.43779,134.88939 L 211.95818,132.58543 L 214.57134,129.05093 L 213.90899,126.51809 L 215.02493,124.43295 L 217.43001,124.43295 L 221.10671,121.6286 L 221.63453,116.77672 L 225.25707,108.27921 L 226.89471,107.36273 L 226.89471,105.89351 L 224.6262,103.84052 L 224.6262,95.576328 C 226.04402,94.686475 227.46184,94.514187 228.87966,94.581091 L 230.92552,95.792954 L 233.98382,92.096393 L 234.60482,92.101508 L 237.3803,89.725948 C 242.93074,90.654139 248.50255,91.759546 253.89151,93.393569 C 254.00562,93.507704 253.70992,95.4979 253.23438,97.816226 C 252.75884,100.13456 251.97002,103.09639 251.4815,104.39808 L 250.32067,108.21018 L 253.304,107.2637 L 256.13978,110.029 L 256.28816,112.52325 L 259.26625,112.52325 L 263.8436,110.18804 L 265.98222,109.92577 L 264.3019,111.24065 C 263.50928,111.56917 262.521,112.24736 262.10575,112.74773 L 261.35067,113.65751 L 259.4572,113.65751 L 254.54569,118.66196 L 254.18942,123.99172 L 257.51966,125.24876 L 257.51966,126.14525 C 257.51966,126.63832 257.20065,127.36517 256.81075,127.76048 L 256.10184,128.47921 L 258.04601,129.91592 L 257.39801,133.90916 L 253.26619,133.79058 L 253.55923,138.51218 L 248.4456,143.62579 L 248.4456,145.34028 L 247.36255,145.68403 C 246.7669,145.87308 245.96855,146.40243 245.58852,146.86034 L 244.89759,147.69291 L 245.59895,150.19804 C 245.98472,151.57585 246.20885,152.92057 246.09695,153.1863 z \"},\"tx15\":{\"name\":\"TX-15\",\"path\":\"M 1309.3839,1343.7583 L 1292.8485,1357.9365 L 1287.0887,1352.2475 L 1261.4261,1379.1684 L 1265.8745,1384.4675 L 1251.6963,1397.7773 L 1251.6963,1429.3947 L 1230.7125,1429.3947 L 1230.7125,1468.5266 L 1237.8371,1468.5266 C 1238.0103,1473.6785 1239.9546,1474.6358 1240.0347,1497.9641 L 1244.4719,1498.0212 L 1244.3269,1500.1848 L 1243.3843,1501.3315 C 1242.501,1502.2243 1240.9421,1504.0098 1239.9283,1505.2837 C 1238.9146,1506.5573 1238.0852,1507.8471 1238.0852,1508.1547 C 1238.0852,1508.4623 1237.3943,1509.2576 1236.5433,1509.927 C 1235.6924,1510.5964 1234.5495,1511.8147 1234.0089,1512.6386 L 1233.0165,1514.145 L 1234.3988,1515.0134 L 1241.4171,1515.0312 L 1242.1969,1517.4946 L 1242.1083,1525.3281 L 1242.6931,1526.8345 C 1243.0085,1527.664 1243.7593,1528.8101 1244.359,1529.3689 L 1245.4402,1530.3791 L 1245.7769,1531.921 C 1245.9626,1532.7701 1246.2284,1533.718 1246.3617,1534.03 C 1246.4951,1534.3419 1247.0588,1535.3627 1247.62,1536.2985 L 1248.6479,1537.9999 L 1251.076,1539.0987 L 1251.4127,1541.4027 L 1255.1345,1541.7571 L 1254.8155,1543.5648 L 1258.2182,1544.575 L 1265.8745,1544.5928 L 1265.8745,1545.1244 C 1265.8745,1545.4192 1266.1297,1545.6561 1266.4416,1545.6561 L 1267.0087,1545.6561 L 1267.0087,1544.4155 L 1270.5178,1544.6814 C 1272.4499,1544.8358 1274.3639,1544.8377 1274.7713,1544.6814 L 1275.5157,1544.3978 L 1275.5157,1540.7292 L 1277.7665,1538.6911 L 1284.3948,1539.3823 L 1288.5596,1538.2303 L 1291.5725,1535.6427 L 1290.7573,1534.3136 L 1288.0634,1534.3136 L 1287.447,1533.5777 C 1285.7424,1532.6336 1284.1775,1532.2021 1281.9136,1531.5843 L 1276.7208,1527.7916 L 1276.6499,1522.4039 C 1273.7755,1522.3947 1272.113,1522.4787 1268.5861,1521.6772 L 1269.3481,1515.8996 L 1269.7912,1515.616 C 1270.0337,1515.4541 1270.3914,1514.4853 1270.5887,1513.4716 L 1270.9432,1511.6284 L 1269.4545,1511.6284 C 1269.0948,1496.9449 1268.9582,1486.1666 1268.7101,1471.9294 L 1264.1731,1471.9294 L 1264.1731,1448.11 L 1270.4115,1448.11 L 1270.4115,1433.1165 L 1275.7638,1427.6934 L 1277.7842,1427.6934 L 1277.7842,1429.5897 L 1278.4931,1428.8808 C 1280.6114,1430.2108 1281.8238,1430.0078 1283.3846,1429.9441 L 1284.9087,1431.0429 C 1285.5511,1431.7325 1285.724,1432.6506 1285.724,1432.9039 L 1285.724,1433.3646 L 1287.2659,1433.3646 L 1286.8937,1431.6633 L 1288.5242,1431.6633 L 1289.6584,1433.8077 L 1293.3802,1434.3394 L 1294.9044,1432.1772 L 1296.2691,1433.3115 L 1298.8388,1432.6557 L 1298.2008,1431.0252 L 1299.9731,1427.6047 L 1298.6262,1425.992 L 1294.7803,1425.992 L 1297.3501,1422.0752 L 1299.8491,1420.941 C 1300.559,1419.647 1301.1954,1418.0909 1302.153,1417.0774 L 1304.3861,1416.3508 L 1304.9532,1417.3433 C 1305.5471,1418.2 1306.4834,1418.0257 1307.1685,1419.1687 L 1308.7813,1420.9233 C 1313.1795,1418.4145 1316.3871,1416.4678 1320.0885,1412.9835 L 1315.2856,1410.6618 L 1314.6121,1407.9856 L 1332.583,1404.3524 L 1332.1045,1401.0383 L 1333.8945,1398.309 L 1332.3349,1397.0152 L 1331.7855,1398.4862 L 1326.5572,1393.6656 L 1325.9901,1393.6656 L 1325.9901,1394.9239 L 1324.9976,1394.5163 C 1324.4518,1394.2883 1323.3013,1394.034 1322.4456,1393.9669 L 1320.886,1393.8429 L 1318.8301,1391.9819 L 1311.936,1390.7946 L 1310.6245,1387.6221 L 1311.2271,1377.0948 L 1310.3764,1375.8897 C 1309.9156,1375.2318 1309.5434,1374.2662 1309.5434,1373.7452 L 1309.5434,1372.8059 L 1308.0192,1372.2211 L 1307.2217,1372.735 C 1306.7822,1373.0133 1305.85,1373.2442 1305.1481,1373.249 L 1303.8721,1373.249 L 1303.8899,1371.2641 L 1321.0277,1356.2706 L 1309.3839,1343.7583 z \"},\"fl14\":{\"name\":\"FL-14\",\"path\":\"M 2140.2983,1394.9239 L 2141.0604,1400.4712 L 2139.8198,1400.4712 L 2139.8198,1402.1726 L 2143.0453,1402.1726 L 2144.41,1405.1854 L 2141.3972,1408.3223 L 2142.939,1411.8315 L 2143.8252,1409.173 L 2146.9798,1409.6516 L 2148.4331,1407.897 C 2147.373,1405.524 2146.1554,1403.2032 2145.4911,1400.6839 L 2145.4911,1399.9041 L 2147.2279,1399.9041 L 2147.8659,1398.2381 L 2146.5722,1396.3772 C 2145.8643,1395.3524 2145.1566,1394.1191 2145.0766,1394.0101 L 2140.2983,1394.9239 z M 2180.0328,1403.9625 L 2154.4411,1408.6768 L 2153.9271,1410.006 L 2153.4309,1415.7837 L 2151.9954,1415.7837 L 2150.5776,1413.5151 L 2149.78,1413.5151 C 2149.3332,1413.5151 2148.7906,1413.7795 2148.5926,1414.1 L 2148.2382,1414.6848 L 2151.5346,1417.7686 L 2154.7247,1425.9565 L 2155.2209,1425.6552 L 2155.6994,1423.7944 L 2157.8084,1423.1386 C 2158.6137,1423.3721 2159.2028,1423.6858 2159.6693,1424.3437 L 2159.6693,1424.8577 L 2162.505,1424.8577 L 2162.505,1425.9742 L 2164.3481,1426.8072 C 2165.3619,1427.2612 2166.8732,1428.2505 2167.6978,1429.0048 C 2168.5222,1429.7591 2169.8334,1431.3715 2170.622,1432.5848 L 2172.0576,1434.7825 L 2176.311,1447.2593 C 2177.3375,1448.6975 2178.1259,1450.3992 2179.5188,1451.5128 L 2179.9442,1451.5128 L 2180.5822,1454.632 L 2184.9065,1459.5766 L 2185.2787,1457.0954 L 2188.717,1455.6421 L 2182.8507,1450.7152 L 2183.5596,1447.9328 L 2180.4581,1445.4516 C 2181.2086,1444.4806 2181.867,1443.467 2182.3545,1442.3501 L 2180.4581,1440.0639 L 2180.724,1433.471 L 2179.5188,1432.7266 L 2180.724,1430.4936 L 2179.9974,1425.6907 L 2185.2079,1423.1563 C 2183.223,1416.8527 2181.8237,1410.4013 2180.3341,1403.9625 C 2180.3211,1403.9485 2180.217,1403.9429 2180.0328,1403.9625 z M 2144.2328,1414.6671 L 2143.2226,1415.2874 C 2143.5628,1416.1011 2144.0772,1416.8182 2144.6582,1417.361 L 2144.2328,1414.6671 z M 2145.4911,1417.8218 C 2145.4162,1418.42 2145.5859,1418.8725 2145.8633,1419.3814 L 2146.2532,1419.7536 L 2146.838,1419.1687 L 2145.4911,1417.8218 z M 2150.1699,1426.7718 C 2150.0763,1426.7846 2150.0281,1426.8075 2150.0281,1426.8427 C 2150.0281,1426.9834 2150.9852,1427.6076 2152.1549,1428.225 L 2154.2816,1429.3416 L 2157.259,1429.3947 L 2158.6591,1427.7111 L 2156.7628,1426.9845 L 2155.5222,1428.2073 L 2154.6183,1427.7465 C 2154.1203,1427.4932 2152.885,1427.1233 2151.8713,1426.9313 C 2151.111,1426.7871 2150.4507,1426.7332 2150.1699,1426.7718 z \"},\"fl21\":{\"name\":\"FL-21\",\"path\":\"M 2263.283,1458.3197 C 2262.79,1458.3197 2262.2321,1458.0697 2262.0433,1457.7643 L 2261.7,1457.2088 L 2262.2934,1456.1002 C 2262.6197,1455.4904 2262.8867,1454.8471 2262.8867,1454.6706 C 2262.8867,1454.4942 2262.5129,1454.3498 2262.056,1454.3498 L 2261.2253,1454.3498 L 2260.718,1453.3573 C 2260.4391,1452.8114 2260.0534,1451.534 2259.861,1450.5186 L 2259.5111,1448.6723 L 2260.1557,1447.2576 C 2260.5102,1446.4795 2261.0056,1445.8428 2261.2564,1445.8428 C 2261.5073,1445.8428 2261.9843,1445.335 2262.3165,1444.7144 L 2262.9205,1443.5859 C 2261.7615,1441.9337 2261.2893,1441.1242 2260.5673,1437.7864 L 2253.8127,1439.1603 L 2253.8127,1434.544 L 2258.4871,1433.2853 L 2262.1205,1434.5863 L 2266.7614,1443.3103 L 2266.6294,1446.619 L 2262.6239,1449.3876 L 2265.9211,1453.9813 L 2265.6863,1456.3347 L 2264.1795,1458.3197 L 2263.283,1458.3197 z \"},\"tx14\":{\"name\":\"TX-14\",\"path\":\"M 1460.2224,1301.7376 C 1438.3038,1303.3609 1437.7859,1302.8337 1427.2935,1304.396 L 1431.4229,1306.9658 L 1430.1646,1313.5233 L 1431.5647,1314.1967 L 1430.838,1317.1033 L 1433.7446,1316.412 L 1433.7446,1314.1613 L 1436.1017,1310.8471 L 1440.7982,1308.5963 C 1442.0103,1309.9614 1442.618,1311.7657 1443.5098,1313.346 L 1442.8895,1318.7338 L 1440.5501,1323.2885 L 1438.5652,1324.405 L 1440.4083,1325.114 L 1444.8745,1323.6429 C 1447.3325,1322.8414 1449.7112,1321.9578 1450.1559,1321.6757 L 1450.9534,1321.1618 L 1454.7106,1324.0328 L 1454.0549,1325.114 L 1449.9077,1324.7595 L 1449.571,1327.152 L 1446.8063,1328.4104 L 1445.158,1327.7901 L 1443.4567,1330.9979 L 1439.983,1333.674 L 1439.983,1335.145 L 1442.2161,1334.5602 L 1442.8718,1332.4689 L 1444.9986,1330.7852 C 1450.4149,1327.2977 1456.3039,1324.5746 1461.7111,1321.1263 L 1460.2224,1301.7376 z M 1381.7992,1312.2118 C 1378.8297,1313.385 1375.0224,1315.5554 1372.8846,1315.7386 L 1372.2111,1318.2021 L 1370.3325,1319.1237 L 1371.9275,1321.2858 L 1371.9275,1323.7847 L 1367.5677,1324.5114 L 1367.231,1323.4835 L 1363.0307,1322.7568 L 1356.8986,1329.7928 L 1354.6301,1336.6692 L 1339.424,1347.1788 L 1337.6163,1346.6471 L 1323.438,1358.9999 L 1321.0986,1356.8023 L 1304.7228,1371.14 L 1304.3506,1372.6819 C 1305.5834,1372.5492 1306.708,1372.7135 1308.0547,1371.7071 L 1310.146,1372.6287 L 1310.3764,1374.5427 L 1311.9537,1376.3682 L 1311.1916,1387.4627 L 1312.5917,1390.3692 L 1319.1314,1391.4326 L 1320.7442,1392.8504 C 1321.29,1393.0889 1322.0591,1393.2314 1322.4456,1393.1694 C 1322.832,1393.1074 1323.6613,1393.3298 1324.2887,1393.6656 L 1325.423,1394.2682 L 1325.423,1393.0985 L 1326.9472,1393.0985 L 1331.6614,1397.8837 L 1332.2108,1396.4304 L 1334.8161,1398.6635 L 1337.6163,1399.0534 L 1337.8112,1400.4712 C 1337.9191,1401.251 1338.2674,1402.2042 1338.591,1402.5979 L 1339.1759,1403.3245 L 1339.8139,1402.8106 C 1340.1624,1402.5308 1341.2849,1402.1227 1342.2951,1401.9067 C 1343.3052,1401.6907 1344.2776,1401.2757 1344.4572,1400.9851 C 1344.6369,1400.6944 1346.675,1399.5265 1348.9943,1398.3799 L 1353.2123,1396.2886 L 1353.2123,1395.0835 L 1351.0856,1393.6656 C 1349.9233,1392.8858 1348.2629,1391.6098 1347.3992,1390.83 C 1346.5356,1390.0502 1345.4608,1389.0932 1345.0067,1388.7033 L 1344.1914,1387.9944 L 1341.9406,1387.9944 L 1341.1963,1385.6372 L 1341.8166,1385.0169 L 1338.8923,1381.1888 L 1339.5481,1380.3913 C 1339.9104,1379.9547 1340.8416,1379.4482 1341.6039,1379.257 L 1342.9863,1378.9025 L 1345.3434,1381.2597 L 1344.0673,1382.8193 L 1345.2016,1383.4219 C 1345.825,1383.7555 1346.7998,1384.0245 1347.3815,1384.0245 L 1348.4449,1384.0245 L 1349.8627,1387.9412 L 1352.5211,1386.2575 C 1353.9888,1385.3409 1355.8464,1384.3437 1356.6328,1384.0245 L 1358.0506,1383.4396 L 1359.1671,1381.0116 L 1364.5726,1379.3102 L 1365.3524,1380.09 L 1363.4206,1383.351 L 1364.1118,1385.1764 L 1362.7117,1386.8601 L 1363.4206,1386.8601 C 1363.8063,1386.8601 1365.0512,1386.3755 1366.1854,1385.779 C 1367.3196,1385.1824 1369.425,1384.1419 1370.8819,1383.475 L 1373.5403,1382.2699 L 1376.7304,1382.0395 L 1376.376,1385.7967 L 1379.956,1383.989 C 1381.9308,1382.9966 1386.999,1379.9918 1391.2099,1377.3252 C 1395.4209,1374.6585 1399.8314,1371.736 1401.0106,1370.821 L 1403.1551,1369.155 L 1408.2415,1367.2233 L 1417.2093,1358.3973 L 1426.1592,1349.5891 L 1430.9444,1346.0445 C 1433.5759,1344.0941 1436.9418,1341.4711 1438.4234,1340.2315 C 1439.905,1338.9918 1441.1172,1337.7224 1441.1172,1337.4136 L 1441.1172,1336.8641 L 1439.6994,1337.3604 L 1437.7145,1336.3502 L 1437.7145,1339.0441 L 1434.7548,1340.391 L 1433.1066,1339.0263 L 1433.1774,1331.1751 L 1430.8558,1330.5726 L 1431.5647,1327.3116 L 1428.1265,1327.3116 L 1425.2908,1324.4759 L 1423.5186,1324.4759 L 1420.417,1327.7901 L 1418.4349,1327.7264 L 1415.9332,1324.5291 L 1415.242,1326.2305 L 1426.2479,1332.6816 L 1431.6887,1340.6037 L 1423.1641,1346.3635 L 1412.6899,1329.7219 L 1410.7759,1329.5447 L 1407.9402,1327.9142 L 1403.9172,1327.8787 L 1402.5525,1329.2433 L 1402.517,1332.1676 L 1398.8662,1332.3803 L 1397.7142,1333.5146 L 1393.7798,1341.7025 C 1391.2562,1341.9361 1389.9663,1341.9698 1388.5515,1340.9758 L 1384.3158,1342.2696 L 1381.8877,1344.8039 C 1379.7326,1343.5345 1377.8546,1342.3442 1375.8974,1340.6391 L 1375.8974,1338.3174 L 1377.5988,1337.3781 L 1377.5988,1333.7449 L 1375.738,1328.2686 L 1377.6166,1326.9039 L 1376.4646,1326.3014 C 1375.9932,1325.9103 1375.8974,1325.1509 1375.8974,1324.7595 C 1375.8974,1324.368 1376.261,1323.7551 1376.695,1323.3948 L 1377.4748,1322.7391 L 1378.2192,1317.7944 C 1380.1595,1317.4789 1382.4166,1317.0842 1385.8222,1317.0855 L 1387.6122,1315.8981 L 1381.7992,1312.2118 z M 1373.3099,1386.8778 C 1372.9797,1386.8679 1372.214,1387.235 1371.6085,1387.693 L 1370.5097,1388.526 L 1371.1123,1388.5437 C 1371.4425,1388.5537 1372.2082,1388.1865 1372.8137,1387.7285 L 1373.9125,1386.8955 L 1373.3099,1386.8778 z M 1369.1982,1389.0577 L 1366.8766,1390.2274 C 1365.5987,1390.8793 1364.5549,1391.5488 1364.5549,1391.6984 C 1364.5549,1391.848 1364.6878,1391.9643 1364.8562,1391.9643 C 1365.0245,1391.9643 1366.196,1391.4401 1367.4614,1390.7946 C 1368.7269,1390.1489 1369.6378,1389.497 1369.4818,1389.3413 L 1369.1982,1389.0577 z M 1360.1951,1394.7999 C 1359.8831,1394.7999 1359.1646,1395.3103 1358.6,1395.9342 L 1357.5721,1397.0684 L 1358.1392,1397.0684 C 1358.4511,1397.0684 1359.1697,1396.5579 1359.7343,1395.9342 L 1360.7622,1394.7999 L 1360.1951,1394.7999 z M 1353.7794,1401.5877 L 1352.5034,1402.4029 C 1351.8016,1402.8527 1350.1427,1403.507 1348.8171,1403.8562 L 1346.4068,1404.4942 L 1346.4068,1405.5753 L 1344.3509,1405.5753 L 1340.7355,1408.8009 L 1340.7355,1410.1478 L 1339.7784,1410.52 C 1339.2564,1410.7203 1338.3632,1411.3504 1337.7935,1411.9201 L 1336.7656,1412.948 L 1335.1174,1412.948 C 1334.2071,1412.948 1333.1013,1413.0843 1332.6716,1413.2493 L 1331.8918,1413.5506 L 1332.3526,1417.4673 L 1330.4563,1418.2117 L 1329.8005,1417.5559 C 1329.4472,1417.2026 1328.969,1416.9179 1328.7194,1416.9179 L 1328.2586,1416.9179 L 1328.2586,1419.4877 L 1325.9901,1420.9055 L 1325.9901,1422.3942 L 1323.1899,1425.0172 L 1323.7925,1426.0097 L 1322.6228,1427.6402 C 1321.9793,1428.5439 1321.4531,1429.4394 1321.4531,1429.6251 C 1321.4531,1429.8109 1321.538,1429.9619 1321.6481,1429.9619 C 1321.758,1429.9619 1323.0162,1428.4943 1324.4305,1426.7009 C 1325.845,1424.9073 1329.1646,1421.3018 1331.8209,1418.6902 L 1336.6592,1413.9405 L 1346.7435,1406.426 L 1353.7263,1403.0233 L 1353.7794,1401.5877 z M 1332.1222,1405.0082 L 1315.0906,1408.411 L 1315.6046,1410.1301 C 1317.1536,1411.2544 1319.0954,1412.0132 1321.1695,1412.6999 L 1317.5364,1415.8722 C 1315.7379,1417.3213 1313.2138,1419.0308 1311.936,1419.6827 C 1310.658,1420.3346 1309.455,1421.1391 1309.2598,1421.4549 L 1308.9054,1422.0221 L 1314.364,1429.8378 L 1314.7716,1429.5897 C 1316.6271,1427.4101 1318.0275,1424.8844 1319.734,1422.5892 C 1319.9035,1422.4332 1320.0275,1421.0815 1319.9998,1419.594 L 1319.9467,1416.9002 L 1321.3113,1415.7659 L 1324.0052,1416.7584 L 1324.8913,1416.4217 C 1325.383,1416.2296 1327.3609,1414.6855 1329.2866,1413.0012 L 1332.7957,1409.9351 L 1332.7957,1407.9147 L 1331.5551,1407.1526 L 1332.1222,1405.0082 z \"},\"fl13\":{\"name\":\"FL-13\",\"path\":\"M 2141.0657,1407.9913 L 2137.7489,1404.6528 C 2135.9247,1402.8167 2133.3667,1399.9127 2132.0647,1398.1996 C 2130.7626,1396.4865 2128.4463,1393.1708 2126.9175,1390.8314 C 2125.3886,1388.492 2123.0593,1385.4295 2121.7413,1384.0258 C 2120.4232,1382.6222 2118.1456,1380.2427 2116.6801,1378.7382 C 2115.2145,1377.2337 2113.5715,1375.7586 2113.0289,1375.4604 L 2112.0422,1374.9181 L 2110.3,1371.549 L 2111.4634,1371.549 L 2111.4634,1369.904 L 2112.1842,1369.4504 C 2112.5807,1369.201 2113.1842,1368.3589 2113.5253,1367.5791 C 2113.8664,1366.7993 2114.2143,1365.9061 2114.2985,1365.5941 C 2114.3826,1365.2822 2114.9276,1364.6935 2115.5095,1364.2859 L 2116.5675,1363.5449 L 2116.5675,1362.4762 C 2116.5675,1361.8885 2116.7631,1361.2867 2117.0022,1361.1389 L 2170.2486,1350.7343 L 2177.1831,1387.0742 L 2139.7107,1394.5133 L 2140.426,1399.9054 L 2139.2527,1399.9054 L 2139.2527,1402.7411 L 2142.6155,1402.7411 L 2143.9056,1405.1515 L 2141.0657,1407.9913 z \"},\"fl9\":{\"name\":\"FL-9\",\"path\":\"M 2106.9263,1313.5764 L 2104.2325,1313.9663 C 2102.7509,1314.1833 2101.3195,1314.5854 2101.0424,1314.8524 L 2100.5284,1315.331 L 2100.298,1318.0603 C 2100.17,1319.561 2099.9535,1321.6828 2099.8195,1322.7746 C 2099.6855,1323.8663 2099.4047,1325.6527 2099.1992,1326.7445 C 2098.9937,1327.8362 2098.49,1329.2307 2098.065,1329.8459 C 2097.6399,1330.4612 2097.2852,1331.2907 2097.2852,1331.6891 L 2097.2852,1332.4157 L 2098.9865,1332.4157 L 2098.9865,1333.9399 L 2103.1691,1339.3099 L 2101.1842,1343.8115 C 2102.1057,1344.7577 2102.892,1344.771 2104.0907,1344.8394 L 2103.0451,1343.8292 L 2108.3442,1341.8797 L 2109.8506,1339.753 L 2125.5176,1331.9018 L 2130.9584,1338.8136 L 2129.5406,1340.9936 C 2130.2944,1345.0802 2130.9894,1346.8715 2132.4826,1350.6348 L 2137.6045,1349.2878 L 2136.8778,1344.5027 L 2138.6501,1343.776 C 2139.6206,1343.374 2140.538,1342.8495 2140.6882,1342.6063 C 2140.8385,1342.3632 2140.7944,1341.7492 2140.5996,1341.2417 L 2140.2452,1340.3201 L 2137.0374,1338.6542 L 2135.8677,1334.4361 L 2138.7387,1331.441 L 2137.4627,1324.086 L 2106.7491,1329.5801 L 2104.8528,1325.6456 L 2103.559,1325.4684 L 2103.6477,1318.3439 L 2106.9263,1315.1892 L 2106.9263,1313.5764 z \"},\"fl15\":{\"name\":\"FL-15\",\"path\":\"M 2214.35,1346.8696 L 2213.3503,1341.8754 L 2194.4225,1345.4641 L 2193.4788,1344.6931 C 2192.9143,1343.9959 2192.48,1342.5193 2192.48,1342.0859 L 2191.5941,1341.6567 L 2191.4285,1340.9191 C 2191.4285,1340.6045 2190.7267,1339.5384 2189.8689,1338.5501 C 2189.0111,1337.5618 2187.8627,1336.2879 2187.3168,1335.7193 L 2186.3244,1334.6856 L 2182.0709,1334.4021 L 2180.8201,1330.964 L 2179.5188,1330.7157 L 2179.4708,1329.2979 L 2175.7143,1326.9639 L 2173.8475,1327.2773 L 2173.8475,1326.2551 L 2172.7133,1325.8951 C 2172.0894,1325.6971 2171.579,1325.3193 2171.579,1325.0555 L 2171.579,1324.5758 L 2174.8145,1325.7971 L 2176.7659,1325.1904 L 2176.7384,1321.0859 L 2166.2819,1312.7242 L 2164.2372,1313.2589 L 2162.753,1318.5138 L 2160.8441,1318.8814 L 2160.1135,1315.9704 L 2158.7328,1315.9704 L 2155.6703,1318.9439 L 2153.4017,1315.4032 L 2149.0152,1315.4032 L 2148.2309,1314.4928 L 2148.1336,1309.8147 L 2149.5004,1309.4346 L 2149.7446,1310.7925 L 2175.8325,1304.062 L 2204.1861,1298.3979 C 2204.7662,1296.8512 2205.3142,1296.0157 2206.848,1294.3882 L 2210.8348,1295.1361 L 2210.1332,1292.9257 L 2212.9794,1290.2519 L 2212.9843,1285.0619 L 2216.3509,1290.1366 L 2213.3934,1293.2236 L 2213.9565,1301.5086 L 2218.0949,1311.7169 L 2220.7749,1315.6868 C 2222.2488,1317.8703 2223.796,1320.0124 2224.213,1320.4472 C 2224.63,1320.8819 2226.8175,1323.6892 2229.0742,1326.6856 L 2233.1772,1332.1335 L 2238.4082,1341.8773 L 2214.35,1346.8696 z \"},\"tx9\":{\"name\":\"TX-9\",\"path\":\"M 1397.9687,1323.4811 L 1393.6527,1318.806 L 1390.7299,1318.806 C 1389.1224,1318.806 1387.8071,1318.6993 1387.8071,1318.5688 L 1387.1365,1316.5838 L 1391.1164,1314.0153 L 1395.4126,1313.9974 L 1398.8955,1315.7606 L 1398.7709,1317.7446 L 1400.6895,1319.6366 L 1402.1624,1320.0063 L 1403.7917,1318.377 L 1408.7909,1319.9047 L 1408.7822,1320.6314 C 1408.7775,1321.0311 1408.5861,1321.6497 1408.3569,1322.0062 L 1407.9402,1322.6542 L 1397.9687,1323.4811 z \"},\"fl24\":{\"name\":\"FL-24\",\"path\":\"M 2174.84,1249.0833 L 2172.7133,1250.2175 L 2172.7133,1253.0177 L 2169.8776,1253.0177 L 2169.8776,1256.1724 L 2175.5489,1261.7728 L 2175.5489,1270.581 L 2178.3314,1271.2722 L 2179.2352,1279.9563 L 2173.564,1281.8349 L 2173.2509,1288.1215 L 2171.8336,1287.8502 L 2167.8927,1284.8833 L 2165.8368,1285.9998 L 2164.2063,1284.6528 L 2164.9507,1280.0804 L 2156.9752,1281.533 L 2159.3897,1286.2033 C 2161.9414,1288.1093 2163.5087,1288.3583 2165.6242,1288.4455 L 2170.781,1287.6951 L 2172.0044,1289.314 L 2177.7997,1287.7012 L 2180.1923,1296.9348 L 2176.7775,1299.5218 L 2176.9822,1303.3677 L 2203.8569,1297.8681 C 2204.5826,1296.2991 2205.5441,1295.1546 2207.0246,1293.8687 L 2210.1438,1294.5067 L 2209.5412,1292.9471 L 2212.4123,1290.2532 L 2212.4123,1283.235 L 2207.1663,1278.1663 C 2204.2811,1275.38 2199.8787,1270.8383 2197.3834,1268.0643 C 2194.888,1265.2903 2192.1575,1262.2329 2191.3222,1261.2765 C 2190.4869,1260.3201 2188.5729,1258.1723 2187.0687,1256.4914 C 2185.5646,1254.8104 2184.0034,1252.9612 2183.5951,1252.3797 L 2182.8507,1251.3163 L 2180.4404,1252.6101 L 2178.4378,1250.1112 L 2174.84,1249.0833 z \"},\"tx31\":{\"name\":\"TX-31\",\"path\":\"M 1236.2774,1146.9469 L 1237.0396,1160.3453 L 1233.1228,1162.8797 L 1244.6958,1182.0557 L 1248.3998,1179.8581 L 1253.8939,1188.5954 L 1238.1561,1198.662 L 1248.0986,1214.3998 L 1253.0964,1211.7237 L 1268.143,1235.9861 L 1268.143,1238.5559 L 1272.6446,1246.0881 L 1265.6441,1253.7266 L 1261.0362,1264.1299 L 1261.8691,1264.2008 L 1263.2693,1264.059 C 1264.0389,1263.9745 1264.9372,1263.7409 1265.2542,1263.545 L 1265.8213,1263.1906 L 1268.143,1265.4059 L 1268.143,1266.1857 L 1270.8369,1268.2948 L 1271.4926,1271.6089 L 1274.0978,1274.5154 L 1276.467,1274.5092 C 1279.9026,1273.6505 1277.2526,1274.6025 1286.4219,1270.6255 L 1288.9673,1272.2647 L 1290.9302,1272.1698 L 1299.4769,1276.2522 L 1308.8895,1272.5429 L 1337.3504,1254.5596 L 1339.7483,1256.9234 L 1345.3429,1253.639 C 1346.5978,1251.2453 1349.462,1246.1357 1350.4653,1242.3841 L 1346.7967,1241.108 L 1343.436,1243.3765 L 1337.8998,1243.3765 L 1337.8998,1247.7718 L 1335.1423,1249.009 C 1332.7733,1248.095 1332.5713,1247.2971 1332.2285,1245.3605 C 1330.9402,1245.1517 1330.356,1245.1943 1329.2689,1243.6778 L 1328.2232,1240.9662 L 1328.879,1238.9281 L 1327.7978,1238.2724 C 1329.0133,1235.4999 1326.1636,1234.7302 1324.8559,1232.5479 C 1328.466,1229.5869 1332.6708,1227.4198 1336.4643,1224.6967 L 1325.4053,1206.8144 C 1316.1036,1212.8457 1306.7218,1218.7509 1297.4565,1224.8385 C 1289.459,1214.51 1284.6831,1206.7591 1278.2982,1196.2694 L 1274.5764,1198.5556 L 1261.3374,1177.2883 L 1268.143,1172.769 L 1257.4739,1147.2482 L 1236.2774,1146.9469 z \"},\"tx13\":{\"name\":\"TX-13\",\"path\":\"M 1149.6131,1146.966 L 1149.629,1119.4193 L 1130.3307,1119.1767 L 1130.3307,1091.9545 L 1076.7371,1091.9554 L 1077.0606,1065.2995 L 1103.6757,1065.2995 L 1103.6757,1034.6745 L 1055.1862,1033.9342 L 1055.509,1006.8852 L 1047.2464,1006.8854 L 1047.6454,979.83926 L 1003.8371,978.34521 L 1006.6967,896.68639 C 1058.4305,898.65297 1103.5417,898.60391 1155.8515,899.13077 L 1155.8515,1020.4963 L 1158.4603,1020.4963 L 1159.8833,1019.0785 C 1163.6187,1021.9674 1165.7384,1027.1128 1169.7484,1029.5704 L 1171.7407,1031.8389 L 1178.0757,1031.8389 L 1178.669,1029.5704 L 1181.3378,1029.5704 L 1185.3767,1031.8389 L 1188.1778,1031.8389 L 1188.1778,1027.3019 L 1188.7402,1027.3019 L 1190.7192,1029.5704 L 1193.282,1029.5704 L 1193.282,1030.2951 C 1193.6703,1031.6736 1194.9326,1032.5757 1195.8341,1033.6421 C 1197.0185,1036.2067 1196.8489,1039.1881 1197.9638,1041.8139 L 1207.1313,1042.5377 L 1208.5771,1041.1965 L 1210.7241,1042.6143 L 1214.9224,1045.0356 L 1217.039,1044.6631 L 1220.2605,1047.1196 L 1224.4559,1046.4388 L 1225.7472,1044.8829 L 1228.3764,1044.8829 L 1234.2809,1051.2689 C 1235.4523,1049.9283 1237.3443,1048.6609 1238.8163,1048.6393 L 1238.9568,1045.8061 L 1240.9218,1044.6389 L 1244.04,1046.4575 L 1251.2205,1047.2734 L 1252.9758,1044.7673 L 1253.9166,1046.2897 L 1252.2068,1048.8993 L 1254.6708,1054.524 L 1261.4588,1054.524 C 1260.8149,1056.8856 1260.6749,1058.8873 1260.8228,1061.3929 C 1262.8521,1061.4862 1264.4493,1062.4434 1265.8307,1063.8324 L 1270.1797,1061.1496 C 1270.6787,1059.3697 1271.0336,1058.5256 1272.9004,1057.3935 L 1274.3677,1057.4694 C 1274.7297,1056.4107 1275.119,1055.3761 1275.8134,1054.524 L 1279.4856,1056.2546 L 1279.4856,1059.6638 L 1281.3299,1060.3715 L 1285.0106,1059.0405 L 1286.7978,1059.7264 L 1287.1418,1064.4488 L 1292.323,1064.7861 L 1293.7114,1061.6088 L 1297.5529,1061.9822 L 1298.2008,1059.128 L 1299.3848,1058.3963 L 1300.9108,1059.6628 L 1301.4405,1062.4337 L 1299.1586,1063.9489 L 1302.2387,1070.4867 L 1300.1094,1076.2656 L 1306.0729,1079.4255 L 1307.2749,1088.7056 L 1263.6592,1088.5518 L 1264.3525,1115.7739 L 1257.3675,1115.7739 L 1257.3675,1146.3989 L 1231.4976,1146.2029 L 1230.8047,1119.7438 L 1238.6523,1119.7438 L 1237.8016,1078.6947 L 1234.0045,1077.7152 L 1231.5376,1075.0534 L 1228.7275,1074.6571 L 1228.7275,1070.1681 C 1226.9045,1069.0076 1225.4173,1068.351 1222.7543,1068.7023 L 1220.8612,1064.7324 L 1210.114,1064.7324 L 1210.9014,1119.0012 L 1176.8353,1119.7438 L 1176.8353,1146.966 L 1149.6131,1146.966 z \"},\"tx24\":{\"name\":\"TX-24\",\"path\":\"M 1309.8377,1142.8304 L 1309.5434,1128.8917 L 1308.2439,1125.6814 L 1306.699,1126.6741 L 1304.0417,1124.933 L 1302.0832,1120.8058 L 1302.8292,1116.3908 L 1310.3941,1116.0575 L 1311.0514,1114.154 C 1312.7689,1113.2469 1314.97,1111.4934 1316.4053,1110.1027 L 1318.4599,1110.1027 L 1319.4681,1120.0274 L 1313.5816,1122.7655 L 1312.8681,1126.9888 L 1314.8548,1132.3356 C 1316.1996,1131.6259 1317.5217,1130.8687 1319.0093,1130.5228 C 1319.3808,1130.5209 1319.833,1130.7591 1320.0141,1131.0521 L 1320.3433,1131.5849 L 1317.557,1134.2056 L 1315.1797,1140.2911 L 1315.8583,1142.429 L 1309.8377,1142.8304 z \"},\"tx26\":{\"name\":\"TX-26\",\"path\":\"M 1296.5394,1138.4591 L 1295.3252,1136.1906 L 1297.0966,1130.0661 L 1298.7679,1128.679 L 1298.7888,1122.2959 L 1296.783,1115.7836 L 1291.9624,1115.7739 L 1291.9624,1089.1189 L 1307.9944,1089.1189 L 1306.9197,1079.0766 L 1301.0365,1075.8661 L 1302.767,1070.9708 L 1305.3466,1070.9708 L 1306.7077,1069.6097 L 1306.7077,1065.3523 L 1311.9404,1060.1937 L 1311.4412,1056.7926 L 1312.8186,1056.7926 L 1314.2147,1089.0622 L 1319.4681,1089.4025 L 1319.7784,1108.9401 C 1315.7265,1108.8868 1316.0533,1110.4628 1310.6776,1113.668 L 1310.0667,1115.391 L 1302.2995,1115.7739 L 1301.538,1120.852 L 1303.4489,1124.8788 L 1306.2787,1127.1048 L 1304.3187,1130.0961 L 1301.1195,1131.3037 L 1300.5108,1132.6396 C 1300.1761,1133.3743 1299.9022,1134.5805 1299.9022,1135.3202 C 1299.9022,1136.0598 1299.7473,1137.0686 1299.558,1137.562 L 1299.2137,1138.4591 L 1296.5394,1138.4591 z \"},\"ga13\":{\"name\":\"GA-13\",\"path\":\"M 1967.8104,1029.779 L 1967.4127,1025.8617 L 1961.7414,1021.3694 L 1961.7414,1020.7507 C 1961.7414,1020.4105 1960.5973,1018.938 1959.1988,1017.4786 L 1956.4361,1014.6049 L 1949.9886,1015.4855 L 1949.5481,1016.4903 L 1945.0111,1016.521 L 1936.6082,1019.5795 L 1933.385,1015.7185 L 1933.385,1013.8666 L 1936.5499,1010.0558 L 1934.0079,1005.0602 L 1934.1535,1001.2694 L 1938.6156,1000.6132 L 1937.8404,994.4084 L 1942.7816,994.4084 L 1944.7917,991.00562 L 1946.0356,990.99695 C 1946.7198,990.99218 1947.5627,990.80078 1947.9086,990.5716 C 1948.2546,990.34242 1948.88,989.1979 1949.2986,988.0282 L 1950.0596,985.90147 L 1951.4117,985.90147 L 1952.0646,987.60285 L 1954.3687,987.60285 L 1954.3687,990.94925 L 1956.1058,991.92137 L 1951.6893,995.47057 L 1951.0198,998.81822 L 1945.9728,1001.2614 L 1945.2529,1004.1297 L 1948.4139,1007.8907 L 1953.1696,1009.1537 L 1960.3236,1009.1522 L 1969.9648,1007.428 C 1973.5948,1007.8272 1976.9921,1009.0516 1980.0445,1011.0432 L 1981.05,1011.8501 L 1980.3005,1018.2278 L 1979.3577,1018.2278 C 1978.8392,1018.2278 1978.1087,1018.5341 1977.7344,1018.9084 L 1977.0539,1019.5889 L 1977.0539,1021.6501 L 1970.5319,1024.7704 L 1969.9648,1029.8438 L 1967.8104,1029.779 z \"},\"ca40\":{\"name\":\"CA-40\",\"path\":\"M 244.13219,983.99064 C 244.32042,981.81037 245.25013,980.17381 246.10568,978.11711 L 244.81598,976.82741 L 240.62716,976.82741 L 239.14977,981.98675 L 235.69095,982.77908 L 234.35474,979.76162 C 235.78447,977.70697 238.28934,975.86238 241.28853,973.8324 L 247.02778,974.85193 L 247.6036,978.82274 L 251.43176,981.13106 L 250.7951,983.64991 L 244.13219,983.99064 z \"},\"ca39\":{\"name\":\"CA-39\",\"path\":\"M 228.18379,967.04784 L 227.02005,969.75355 C 228.34418,970.90976 229.98946,972.60156 231.5558,973.42327 L 231.51448,975.44129 L 231.30768,975.86902 C 231.07175,976.24009 230.86938,976.74824 230.86461,977.00327 L 230.86461,977.46407 L 232.97362,976.80829 L 233.68253,977.65899 C 234.07669,978.1339 234.61912,978.52743 234.86996,978.52743 C 236.56663,976.52053 238.6791,975.29332 241.12941,973.59829 L 241.32105,972.34216 L 240.06273,970.99523 C 239.37134,970.25926 238.80441,969.36229 238.80441,968.99258 L 238.80441,968.31912 L 236.92111,968.13718 L 236.89513,968.83186 L 238.02231,969.87413 L 237.95372,974.8411 L 231.87481,974.90966 L 232.36269,970.7707 L 228.18379,967.04784 z \"},\"ga9\":{\"name\":\"GA-9\",\"path\":\"M 1966.4701,975.69315 L 1965.7113,974.27533 C 1965.2939,973.49553 1964.7404,972.85751 1964.4812,972.85751 L 1964.0099,972.08332 C 1964.0099,971.65746 1963.5038,970.66567 1962.8852,969.87934 L 1961.7606,968.44955 L 1960.04,961.84375 L 1960.04,956.9779 L 1957.9983,956.9779 L 1956.5841,958.39572 L 1951.6483,958.7575 C 1948.9336,958.95644 1944.288,959.52845 1941.3248,960.0286 C 1938.3615,960.5287 1933.3105,961.22269 1930.1003,961.57074 L 1924.2635,962.20348 L 1921.952,960.60163 C 1920.6807,959.72059 1918.1002,957.62528 1916.2175,955.94544 L 1912.7944,952.89112 L 1900.2079,953.49902 C 1896.0069,954.28852 1891.8954,955.6447 1887.6597,956.22714 C 1885.8151,950.46761 1883.9284,944.72083 1882.0579,938.96981 C 1911.4505,934.58885 1937.7975,930.20784 1965.6673,925.25584 L 1965.9729,925.75026 C 1966.141,926.0222 1967.7459,927.09629 1969.5394,928.13708 C 1971.333,929.17788 1973.2834,930.22831 1973.8738,930.47138 C 1974.4642,930.71446 1976.4255,931.99271 1978.2324,933.31196 L 1981.5175,935.71058 L 1984.7101,940.70636 L 1985.3694,943.31265 C 1985.7321,944.74607 1986.3859,946.86895 1986.8223,948.03009 L 1987.6157,950.14134 L 1989.9497,952.63154 C 1991.2334,954.0011 1992.9501,955.60715 1993.7646,956.20043 L 1995.2455,957.27922 L 1994.385,959.7181 C 1993.9117,961.05947 1992.9847,962.91495 1992.3251,963.84135 C 1991.6654,964.76776 1991.2438,965.93286 1991.1661,966.4675 L 1990.934,967.68178 L 1981.0514,967.79713 L 1981.745,972.85751 L 1976.9003,972.85751 L 1974.2724,975.69315 L 1966.4701,975.69315 z \"},\"ca34\":{\"name\":\"CA-34\",\"path\":\"M 232.23231,974.63999 L 232.70948,970.61922 L 228.43394,966.73427 L 228.31233,963.80982 C 227.10377,962.74322 227.72259,962.25447 228.20578,961.69278 L 231.1506,962.69014 L 234.98735,969.9018 L 233.71387,973.5549 L 234.3343,974.55889 L 232.23231,974.63999 z \"},\"ca38\":{\"name\":\"CA-38\",\"path\":\"M 234.68166,974.57352 L 234.15493,973.5532 L 235.41863,969.86437 L 232.74364,964.75188 C 234.20453,965.61244 235.9445,965.5796 237.45703,966.21694 L 237.81398,966.57383 C 240.53807,964.93761 241.67981,964.51742 243.15853,964.71257 L 246.3694,968.29972 L 247.69926,967.19609 C 250.25532,967.22841 252.66487,965.22424 254.31254,963.71817 L 256.69875,965.20711 L 256.09181,968.19537 L 254.13275,968.93042 L 251.13473,967.74711 C 249.3887,968.56684 247.59872,969.04952 245.67688,968.88761 C 245.33578,969.80777 244.77491,970.01007 244.03821,970.15372 L 238.8982,968.00243 L 236.60915,967.81193 C 236.41584,968.97137 237.1016,969.55937 237.74341,970.14737 L 237.67016,974.55889 L 234.68166,974.57352 z \"},\"tn9\":{\"name\":\"TN-9\",\"path\":\"M 1645.9384,967.25688 L 1646.5189,965.03703 L 1651.089,965.57262 L 1652.186,959.12403 L 1656.4298,959.13169 L 1657.1933,956.48722 L 1656.059,956.12721 C 1655.4352,955.92922 1654.9287,955.59297 1654.9334,955.38007 C 1654.9382,955.16717 1655.1296,954.71217 1655.3588,954.36894 C 1655.588,954.02571 1656.3709,953.43119 1657.0987,953.0477 L 1658.4219,952.35047 L 1660.3847,954.12678 L 1662.0053,952.98339 L 1661.0907,951.73831 C 1660.7681,951.13551 1660.617,950.52948 1660.755,950.3915 C 1660.893,950.25351 1661.7431,950.41736 1662.6441,950.75554 L 1664.2824,951.37047 L 1665.5814,952.75637 C 1666.2958,953.51859 1667.098,954.14226 1667.3639,954.14226 C 1667.6298,954.14226 1667.9942,953.75945 1668.1738,953.29157 L 1668.5002,952.44087 L 1671.3715,952.44087 L 1671.3694,952.86622 C 1671.3682,953.10016 1670.8615,954.12099 1670.2435,955.13473 L 1669.1197,956.9779 L 1667.7898,957.76581 L 1673.0849,961.00264 L 1678.7442,961.67293 L 1678.7442,963.78345 L 1645.9384,967.25688 z \"},\"nc9\":{\"name\":\"NC-9\",\"path\":\"M 2110.7545,864.5877 L 2109.0422,864.92991 L 2107.5289,866.05872 L 2107.4935,871.97813 L 2091.029,874.77833 L 2091.8088,876.65694 L 2093.8824,877.01139 L 2093.8824,878.67734 L 2089.3454,881.26486 L 2089.3454,882.96625 L 2090.8873,883.67516 C 2091.866,884.08786 2092.8764,884.45241 2093.9533,884.38407 L 2096.1863,882.36367 L 2097.2852,884.59674 C 2096.9015,886.1843 2095.945,887.5263 2095.4243,889.04513 L 2106.1465,887.53872 L 2108.0783,890.0908 L 2107.4758,891.20731 L 2106.8732,892.34156 L 2107.6176,893.56446 L 2112.4913,888.77932 L 2122.8059,898.72176 C 2122.699,902.77463 2123.0371,903.40942 2123.4263,905.08427 L 2138.278,902.08909 L 2135.1764,895.15951 L 2132.9966,894.69872 L 2132.0218,892.30612 L 2133.5991,891.01238 L 2135.336,891.82763 L 2138.9691,889.71859 L 2139.4299,888.37166 L 2136.3461,885.03978 L 2137.0905,880.75087 L 2135.3714,881.77879 L 2123.2667,877.29496 L 2120.5906,872.1908 C 2120.4684,874.27608 2120.3924,876.01342 2119.4564,877.84434 L 2121.1932,879.7407 L 2115.1497,881.12308 L 2114.4408,882.23958 L 2115.6459,885.44743 L 2114.3168,888.35397 L 2110.2051,888.35397 L 2110.7368,885.51833 L 2107.9011,885.51833 L 2107.1568,884.52585 C 2106.7424,883.97999 2106.3869,883.21436 2106.377,882.82446 L 2106.3061,882.47001 L 2108.8227,881.81424 L 2108.6277,878.14565 L 2112.5976,878.14565 L 2112.5976,877.48988 C 2112.5976,877.12454 2112.626,876.8412 2112.1546,876.32018 L 2110.8785,874.92011 L 2113.6787,871.90724 L 2115.4333,871.90724 L 2115.4333,873.60862 L 2116.5675,873.60862 L 2116.6384,872.04902 C 2116.6744,871.19124 2116.7479,870.1066 2116.798,869.63872 C 2116.8478,869.17084 2116.6786,868.34141 2116.4257,867.79555 L 2115.965,866.80308 L 2115.0611,866.80308 C 2114.5686,866.80308 2113.1699,866.23499 2111.9419,865.54473 L 2110.7545,864.5877 z \"},\"ca15\":{\"name\":\"CA-15\",\"path\":\"M 103.31778,753.59693 L 102.21333,752.99804 C 102.93362,752.21002 101.66912,751.08659 100.41707,749.83454 L 98.140624,747.55809 L 97.771414,746.07317 C 97.568334,745.25645 96.905244,743.69498 96.297844,742.60325 C 95.690454,741.51153 93.785584,739.01032 92.064804,737.045 L 88.936064,733.47174 L 90.822694,729.80571 L 90.090454,725.02226 L 89.626944,725.02226 C 89.372014,725.02226 88.762414,724.62125 88.272244,724.13108 C 87.782074,723.64091 87.381054,723.04599 87.381054,722.8091 C 87.381054,722.57215 88.019074,722.03684 88.798874,721.61949 L 90.216694,720.86067 L 90.312734,714.55698 C 91.337644,715.01227 92.293284,716.0863 93.755074,715.90794 L 98.792474,715.21746 L 98.440064,720.7688 L 95.141244,720.7688 L 94.716464,722.01489 L 96.820964,724.61387 L 94.186594,727.45638 C 94.109154,730.20196 94.223784,732.1792 94.818604,734.97276 L 98.917244,737.21553 L 102.44796,743.79405 L 105.1345,745.15533 L 107.66225,749.16873 L 103.31778,753.59693 z \"},\"ca14\":{\"name\":\"CA-14\",\"path\":\"M 71.96875,702.34375 C 70.49866,702.85286 69.238643,703.74017 67.90625,704.53125 L 66.96875,703.96875 L 66.96875,706.40625 L 69.0625,706.96875 L 69.78125,717.71875 L 67.53125,723.59375 L 67.53125,726.59375 L 69.15625,727.9375 L 69.9375,731.53125 L 71.84375,733.25 L 72.84375,735.90625 C 73.39069,737.36422 74.587206,739.58361 75.5,740.84375 C 76.4128,742.10385 77.807202,743.54712 78.59375,744.0625 L 79.6875,744.78125 C 79.677715,744.45647 79.701178,744.11597 79.8125,743.78125 L 79.84375,743.71875 L 79.875,743.6875 C 80.219332,743.39728 80.464306,742.96762 80.46875,742.53125 L 80.46875,742.5 L 80.46875,742.46875 C 80.54607,742.04493 80.497509,741.62354 80.34375,741.21875 L 80.375,741.21875 C 80.299074,741.06732 80.194979,740.89809 80.21875,740.6875 C 80.225016,740.63199 80.235925,740.56512 80.28125,740.5 C 80.326575,740.43488 80.418026,740.39101 80.5,740.375 C 80.640001,740.34766 80.736813,740.40549 80.84375,740.46875 C 80.862042,740.47957 80.887563,740.45692 80.90625,740.46875 C 81.053105,740.52528 81.153504,740.65114 81.21875,740.75 C 81.294559,740.86487 81.328623,740.95557 81.375,741.03125 C 81.421377,741.10693 81.475859,741.12723 81.46875,741.125 C 81.461641,741.12277 81.475862,741.14602 81.59375,741.0625 L 81.625,741.0625 L 81.625,741.03125 C 81.814364,740.94846 82.02147,740.96546 82.1875,741.03125 C 82.35353,741.09704 82.468157,741.21583 82.5625,741.34375 C 82.751187,741.59959 82.872273,741.87843 82.9375,742.09375 C 82.950646,742.13188 82.948756,742.14944 82.96875,742.1875 C 83.034121,742.07227 83.114306,741.94572 83.21875,741.90625 C 83.354305,741.85502 83.474157,741.87353 83.5625,741.875 C 83.650843,741.87647 83.722205,741.88392 83.75,741.875 C 83.777795,741.86608 83.782891,741.84121 83.8125,741.78125 L 83.8125,741.75 L 83.875,741.6875 C 83.971868,741.62006 84.118474,741.62361 84.21875,741.65625 C 84.319026,741.68889 84.381797,741.72685 84.4375,741.78125 C 84.537875,741.87928 84.622078,742.0074 84.6875,742.09375 C 84.725173,741.82776 84.876097,741.59731 85.0625,741.5 C 85.234468,741.41023 85.402211,741.39732 85.5625,741.375 C 85.709112,741.23243 85.801559,740.9274 85.8125,740.8125 L 85.875,740.03125 L 86.28125,740.71875 C 86.378475,740.88663 86.581979,741.11043 86.71875,741.375 C 86.787136,741.50729 86.846164,741.64149 86.84375,741.8125 C 86.841336,741.98351 86.753337,742.15772 86.625,742.3125 L 86.625,742.34375 C 86.528514,742.45436 86.478109,742.64049 86.5,742.75 C 86.510945,742.80475 86.546016,742.83193 86.5625,742.84375 C 86.578984,742.85557 86.594673,742.86005 86.6875,742.84375 C 86.934783,742.75122 87.189153,742.73131 87.34375,742.6875 C 87.514018,742.63924 87.570022,742.62599 87.625,742.40625 L 87.65625,742.3125 L 87.71875,742.28125 C 88.147417,741.94737 88.293467,741.31511 88.75,740.78125 C 88.849511,740.65739 88.885514,740.411 88.96875,740.125 C 89.044803,739.86368 89.237919,739.5698 89.5625,739.40625 L 89.53125,739.375 C 89.66139,739.2694 89.768948,739.08343 89.875,738.84375 C 89.97068,738.62751 90.110623,738.38202 90.34375,738.1875 C 90.35352,738.17483 90.36486,738.1683 90.375,738.15625 C 90.388343,738.14609 90.392168,738.13474 90.40625,738.125 C 90.531772,737.9885 90.684673,737.87524 90.84375,737.84375 C 91.029422,737.807 91.194378,737.85327 91.34375,737.9375 C 91.621583,738.09416 91.795658,738.37372 91.875,738.6875 C 91.880972,738.71112 91.901604,738.72603 91.90625,738.75 C 92.016442,738.94255 92.14188,739.13132 92.1875,739.375 C 92.232182,739.61367 92.126842,739.89238 91.9375,740.125 L 91.96875,740.125 C 91.878169,740.34591 91.914995,740.53395 92.03125,740.75 C 92.147505,740.96605 92.346069,741.20179 92.5,741.46875 L 92.53125,741.46875 L 92.53125,741.5 C 92.640849,741.86212 93.005305,742.25524 93.09375,742.8125 C 93.095521,742.82366 93.092213,742.83244 93.09375,742.84375 C 93.18911,743.17958 93.125162,743.51711 92.90625,743.75 C 92.79317,743.8703 92.626425,743.9557 92.4375,743.9375 C 92.262373,743.92063 92.104923,743.80932 91.96875,743.65625 C 91.88305,743.58798 91.72875,743.63314 91.65625,743.6875 C 91.62,743.71468 91.625336,743.71064 91.625,743.71875 C 91.624664,743.72686 91.603741,743.76796 91.6875,743.84375 L 91.71875,743.84375 L 91.71875,743.875 C 91.909672,744.08541 92.017746,744.38227 92.15625,744.5625 C 92.225502,744.65262 92.308033,744.6863 92.3125,744.6875 C 92.316967,744.6887 92.298574,744.70871 92.375,744.625 L 92.375,744.59375 L 92.40625,744.59375 C 92.484645,744.53898 92.581399,744.50439 92.6875,744.5 C 92.793601,744.49561 92.904192,744.53372 92.96875,744.59375 C 93.097866,744.71381 93.115591,744.85553 93.15625,744.96875 C 93.196909,745.08197 93.244811,745.15959 93.28125,745.21875 C 93.317689,745.27791 93.319316,745.27881 93.34375,745.28125 L 93.375,745.28125 L 93.40625,745.3125 C 93.493028,745.34242 93.605755,745.2876 93.8125,745.15625 C 94.019245,745.0249 94.254345,744.82128 94.5625,744.75 L 94.625,744.75 C 94.648171,744.7071 94.67118,744.61749 94.6875,744.53125 C 94.69566,744.48813 94.711494,744.44495 94.71875,744.40625 C 94.722378,744.3869 94.712347,744.36706 94.71875,744.34375 C 94.725153,744.32044 94.714465,744.29405 94.78125,744.21875 C 94.789598,744.20934 94.812098,744.18782 94.8125,744.1875 C 94.812902,744.18718 94.87459,744.15645 94.875,744.15625 C 94.875819,744.15586 95.030396,744.12487 95.03125,744.125 C 95.032104,744.12513 95.124105,744.18683 95.125,744.1875 C 95.125895,744.18817 95.176422,744.20432 95.1875,744.21875 C 95.23181,744.27649 95.241766,744.31818 95.25,744.34375 C 95.263797,744.3866 95.268716,744.43966 95.28125,744.5 C 95.283676,744.51168 95.278601,744.51823 95.28125,744.53125 C 95.478803,745.14094 95.231268,745.7437 94.90625,746.1875 L 94.8125,746.3125 L 94.65625,746.28125 C 94.458399,746.23436 94.311352,746.26106 94.25,746.3125 C 94.188648,746.36394 94.154373,746.46514 94.1875,746.6875 L 94.1875,746.71875 C 94.1862,746.76592 94.184576,746.76707 94.1875,746.78125 C 94.192467,746.77624 94.225491,746.76926 94.3125,746.75 C 94.420226,746.72615 94.536306,746.67269 94.71875,746.71875 C 94.809972,746.74178 94.905213,746.81623 94.96875,746.90625 C 95.019141,746.97765 95.04741,747.06918 95.0625,747.15625 C 95.066436,747.17896 95.091474,747.19519 95.09375,747.21875 C 95.17502,747.41633 95.262201,747.60604 95.3125,747.6875 C 95.319274,747.68304 95.359635,747.66693 95.40625,747.625 C 95.416309,747.61265 95.427328,747.60591 95.4375,747.59375 C 95.824052,747.13152 96.294871,746.7976 96.625,746.40625 C 96.631965,746.39086 96.648319,746.38952 96.65625,746.375 C 96.747613,746.20774 96.886841,746.08409 97.03125,746.03125 C 96.742054,745.20407 96.212119,744.03494 95.6875,743.15625 C 95.0357,742.06453 93.727899,740.15489 92.78125,738.90625 C 91.8346,737.65766 90.482156,736.07591 89.78125,735.375 L 88.5,734.09375 L 88.5,733.21875 C 88.79554,731.88248 89.486231,730.76455 90.28125,729.65625 L 89.53125,725.65625 L 86.8125,723.875 L 86.8125,721.8125 L 89.53125,720.5625 L 89.9375,714.25 L 87.59375,714.25 L 84.3125,710.34375 L 83.3125,710.96875 L 81.65625,708.5625 L 79.03125,708.5625 L 71.96875,702.34375 z \"},\"ca9\":{\"name\":\"CA-9\",\"path\":\"M 82.349544,684.87386 C 81.826364,686.02122 81.585464,687.36617 81.711524,689.16277 L 79.691124,689.69446 L 79.513904,692.15795 L 80.435484,691.57307 L 83.501554,693.98337 L 82.908764,694.68201 L 84.308834,696.66696 L 88.446174,696.65953 C 89.447884,698.23819 89.969714,699.61921 90.519774,701.48013 L 93.249074,701.39149 C 94.750724,701.33869 96.129524,701.15176 96.297394,700.98389 L 96.598654,700.68257 L 93.339414,696.6107 L 94.742444,696.21978 L 92.965514,694.33782 C 92.289324,693.75141 91.505894,693.25676 91.210934,693.25676 C 90.915964,693.25676 89.814714,692.85087 88.765184,692.35287 L 86.851124,691.44904 L 86.496674,690.22614 C 86.294604,689.55443 85.745564,688.21385 85.291524,687.23102 L 84.476274,685.44099 L 83.412914,685.15743 L 82.349544,684.87386 z \"},\"ca13\":{\"name\":\"CA-13\",\"path\":\"M 80.416004,691.79068 L 79.547584,692.35781 C 79.547594,692.35781 80.938684,693.25194 81.426204,694.07694 C 81.913724,694.90195 82.968084,696.45179 82.968084,696.45179 L 83.960554,697.49741 L 85.591054,699.78368 L 86.105014,711.19714 L 87.646894,713.67833 L 90.553434,713.67833 L 91.085114,714.19226 C 91.381444,714.4739 92.144824,714.83306 92.768774,714.98981 C 93.392614,715.14651 94.413334,715.18281 95.037294,715.06071 C 95.661134,714.93855 96.684434,714.83448 97.323524,714.83028 L 98.493234,714.81259 L 99.166694,712.93397 C 99.541294,711.89811 99.857774,710.53292 99.857884,709.90335 L 99.857884,708.76909 L 97.039964,707.05001 L 97.022244,706.3411 L 98.776794,704.42704 L 98.776794,701.99899 L 96.827294,701.44962 L 90.269864,701.85721 C 89.761554,699.94202 89.515744,698.85188 88.407414,696.8992 L 84.294454,696.94106 L 82.666794,694.67952 L 83.216204,694.00605 L 80.416004,691.79068 z \"},\"oh15\":{\"name\":\"OH-15\",\"path\":\"M 1928.2808,630.80761 L 1928.2808,627.47613 L 1930.9573,627.47613 L 1931.7595,611.67309 L 1930.3787,597.88579 L 1927.7137,598.3953 L 1926.2145,581.74003 L 1938.2159,579.0958 L 1940.9318,595.61733 L 1944.5562,595.02916 L 1945.9468,602.09718 L 1944.7275,603.31645 L 1944.7275,605.80228 L 1947.9514,606.58424 L 1951.1677,600.75558 L 1952.1844,602.5722 L 1954.0852,602.00144 C 1956.0261,603.41938 1956.7992,604.96707 1957.2005,606.55611 L 1955.6137,609.62462 L 1957.7554,612.26942 L 1962.3085,612.88011 L 1962.2912,616.41712 L 1961.429,618.10818 L 1960.4697,616.09159 L 1957.0825,614.39718 L 1955.503,616.14699 L 1956.7017,617.88133 L 1956.0294,619.99071 C 1952.6561,621.06162 1949.1106,620.97042 1945.6513,621.46031 L 1946.9313,628.5345 C 1940.4578,629.54881 1935.0751,629.92159 1928.2808,630.80761 z \"},\"pa9\":{\"name\":\"PA-9\",\"path\":\"M 2152.5802,508.43088 C 2146.1779,514.09728 2151.1115,510.80788 2146.6253,514.5984 L 2146.6253,516.76058 L 2144.6758,517.52266 L 2143.3998,515.78583 C 2141.186,516.42555 2139.5119,516.92222 2137.569,516.88464 L 2136.7183,513.85405 L 2118.712,517.36316 L 2120.5374,525.46246 L 2112.9344,542.93712 L 2113.1648,545.24108 C 2114.3232,545.23901 2115.5139,545.72095 2116.6384,546.46395 L 2118.1626,545.18791 L 2118.9424,546.4285 L 2120.4488,545.18791 L 2121.6362,547.22603 L 2121.6717,546.16266 L 2125.4467,549.81355 L 2126.7582,546.94246 C 2128.5479,547.12372 2129.3222,547.54664 2130.604,548.6084 C 2130.9316,547.83021 2131.8596,547.65698 2132.6953,547.79316 L 2134.1131,544.95751 L 2136.3107,545.29425 L 2137.6045,538.15197 L 2133.0675,535.59989 L 2128.6545,535.59989 L 2126.1378,537.8684 L 2123.8693,535.12137 L 2126.2796,530.40712 L 2127.857,531.73632 L 2129.0444,530.99197 C 2128.9033,529.22451 2129.3758,528.23821 2130.6572,526.80939 C 2133.0992,528.81264 2134.5148,529.36823 2136.7538,530.38939 L 2138.6855,529.3083 L 2139.3945,524.84217 L 2140.8832,523.60157 L 2143.5061,523.97375 L 2143.5061,526.75623 L 2140.9895,527.37652 L 2141.982,528.95385 L 2145.5974,528.22722 L 2148.3267,528.9184 L 2148.3267,536.09613 L 2154.6183,537.37217 C 2155.6227,539.52991 2155.8126,541.30599 2155.6994,543.73464 L 2153.8562,545.77276 L 2153.1473,552.29474 L 2147.9723,553.74801 L 2146.9089,558.53316 L 2144.0733,559.1889 L 2142.6023,562.23721 L 2143.7897,564.45256 L 2140.3869,566.86286 L 2138.3843,566.22484 L 2132.7307,569.9289 L 2132.3762,572.37464 L 2130.8166,573.68613 L 2132.0041,576.2914 L 2130.7281,578.68395 L 2124.7732,576.43318 L 2124.5073,574.21781 C 2122.4892,573.44941 2120.4083,573.02809 2117.9499,572.83543 L 2116.4789,575.38751 L 2112.4913,574.05833 L 2112.9698,576.14962 L 2110.8785,579.71187 L 2112.5976,580.36764 L 2112.5976,582.6716 L 2111.4457,582.6716 L 2110.1519,585.50724 L 2108.6455,585.50724 L 2105.7566,591.53299 L 2103.24,588.39603 L 2100.4044,590.64685 L 2104.0907,593.81919 L 2104.0907,595.91048 C 2140.2229,588.20445 2177.0225,579.9187 2214.9112,570.72645 L 2211.278,554.95316 L 2209.0755,554.56208 L 2207.2825,551.75885 L 2207.9504,550.12277 L 2211.0831,550.89464 L 2212.7173,554.19176 L 2219.6786,550.59335 L 2218.6684,548.76791 L 2220.9192,545.91454 C 2220.2806,544.17109 2219.8244,542.60891 2218.4912,541.21801 L 2215.4251,544.14226 L 2213.5526,539.04604 L 2219.6609,538.57731 L 2223.7549,535.31632 L 2223.7549,531.12024 C 2226.1044,531.25895 2228.6154,529.3806 2231.0457,528.30908 L 2230.1155,526.97311 L 2221.6293,529.43236 L 2219.5014,527.18157 L 2217.3453,528.58167 L 2217.2732,534.89284 L 2215.6171,534.8665 L 2212.43,528.81207 L 2213.4225,525.69286 L 2209.2943,522.83274 L 2216.6657,516.28207 L 2219.3065,519.31266 L 2218.757,521.42167 L 2220.3521,521.42167 L 2220.3521,520.21652 L 2222.6206,520.92543 C 2222.6174,520.00976 2222.3721,519.13442 2221.5218,518.1784 L 2224.322,515.55543 L 2225.6983,512.03702 L 2225.5406,509.39094 L 2222.8701,510.46244 L 2220.9192,508.66128 L 2217.2671,508.55797 C 2216.3353,508.93054 2215.4036,509.82755 2214.2298,509.91773 L 2214.2096,511.90826 L 2208.7259,516.29979 L 2205.784,512.73751 L 2201.5128,516.65425 L 2201.176,519.68484 L 2196.6036,524.82444 L 2191.978,521.13811 L 2196.515,514.35029 L 2191.3399,511.70959 C 2189.6232,513.24002 2188.8344,513.68123 2183.6482,513.51732 L 2178.934,517.55811 L 2169.665,516.51246 L 2159.9529,519.47765 L 2158.7949,518.76453 L 2159.4885,515.42765 C 2158.454,515.41421 2157.7019,515.52179 2156.8691,515.75038 L 2155.6921,516.48779 L 2155.7812,521.08494 L 2153.2043,521.95942 L 2152.4422,521.17962 L 2152.0174,514.55072 L 2154.2548,511.89001 L 2154.2414,510.33878 L 2152.5802,508.43088 z \"},\"il14\":{\"name\":\"IL-14\",\"path\":\"M 1610.8888,578.70306 L 1609.832,574.44959 L 1600.0742,574.82895 L 1599.3462,569.7287 L 1603.9509,568.95071 L 1603.2166,563.07338 L 1609.5208,560.46043 L 1610.2223,556.72121 L 1612.8972,555.50241 L 1614.7635,552.65406 L 1621.9321,548.64522 L 1625.4391,547.73651 C 1625.2346,546.25139 1626.9759,545.66305 1628.3366,544.78437 L 1630.3886,543.54106 L 1633.4979,543.54106 L 1633.0788,535.24234 L 1640.472,534.07819 L 1647.2685,534.45316 L 1668.99,531.52633 L 1669.728,526.60461 L 1671.5422,526.21685 C 1672.5401,526.00359 1673.6949,525.55597 1674.1086,525.22214 L 1674.8607,524.61518 L 1675.7002,525.9734 L 1679.2894,525.25554 L 1678.8094,514.05037 C 1683.8044,513.65475 1688.7586,512.70896 1693.7668,512.46521 L 1694.6779,516.90082 L 1692.9224,517.5745 L 1692.9224,518.62139 C 1692.9224,519.19718 1693.2128,520.30561 1693.5677,521.08456 L 1694.213,522.50084 L 1697.3142,523.58193 L 1698.1244,528.98502 C 1698.7537,529.89603 1699.3892,530.81078 1699.663,531.8605 L 1695.758,533.929 C 1696.29,540.84095 1697.8595,547.65396 1698.4914,554.56211 L 1683.4245,556.58502 L 1681.9542,545.87648 L 1655.4919,549.21235 L 1655.4919,552.04799 L 1634.4077,554.41067 L 1635.1866,561.12205 L 1629.9711,561.12205 L 1629.9711,566.22621 L 1625.2897,566.22621 L 1625.8268,571.81505 L 1620.3299,572.57109 L 1620.3299,577.97436 L 1610.8888,578.70306 z \"},\"pa14\":{\"name\":\"PA-14\",\"path\":\"M 2097.5525,561.20238 L 2096.9692,562.90269 L 2094.4387,560.24591 L 2091.0765,559.09441 L 2091.8058,556.44324 L 2088.0568,557.15465 L 2079.9124,550.39272 L 2093.1278,548.95503 C 2093.8705,548.31411 2094.6089,547.76005 2095.5634,547.51096 L 2096.3044,547.51096 L 2097.6454,548.958 C 2098.3831,549.75388 2098.9865,550.64711 2098.9865,550.94295 C 2098.9865,551.2388 2098.8421,551.48086 2098.6657,551.48086 C 2098.4892,551.48086 2097.8697,551.22657 2097.289,550.91577 L 2096.2331,550.35067 L 2095.0531,551.36095 L 2095.9615,553.15634 L 2099.6112,553.64759 L 2099.699,555.75691 L 2096.9656,557.62772 L 2099.3143,558.56697 C 2098.2654,559.11468 2097.944,560.13971 2097.5525,561.20238 z \"},\"il13\":{\"name\":\"IL-13\",\"path\":\"M 1703.1307,548.11716 L 1703.1307,546.37671 L 1698.0779,546.37671 L 1696.3007,534.35527 L 1698.1683,533.27069 C 1699.1821,532.84895 1700.7771,532.4689 1701.7129,532.42612 C 1702.6486,532.38335 1704.3973,532.14942 1705.5988,531.90627 L 1707.7834,531.46419 L 1710.7808,528.51215 L 1712.3238,538.92444 L 1716.7295,539.66878 L 1716.1685,540.71694 C 1715.86,541.29344 1715.6075,542.38878 1715.6075,543.15104 L 1715.7298,544.95254 L 1718.2085,546.1461 L 1703.1307,548.11716 z \"},\"oh13\":{\"name\":\"OH-13\",\"path\":\"M 2007.5221,539.40698 L 2007.0706,535.44654 L 2004.8308,535.46573 L 2002.2106,522.27374 L 1991.8339,524.95741 L 1991.4948,526.02587 C 1991.3083,526.61352 1990.9489,527.09433 1990.6962,527.09433 C 1990.4435,527.09433 1989.9754,526.77532 1989.656,526.38542 L 1989.0754,525.67651 L 1988.9673,522.41184 L 1986.1527,519.7664 L 1984.143,520.24964 L 1981.7712,516.23306 L 1978.1881,516.89033 L 1978.1881,514.05037 L 1973.3675,514.04512 C 1974.652,512.90397 1975.8113,511.58543 1977.2572,510.6476 C 1977.4028,510.6476 1978.8841,509.74903 1980.5489,508.65079 L 1983.5758,506.65397 L 1985.4414,507.3391 L 1987.1024,516.24054 L 1991.2829,515.67195 L 1991.3087,516.61884 L 1993.475,516.69779 L 1993.9261,516.16455 L 1995.0582,517.47271 L 1996.4519,517.13405 L 1996.9034,515.18463 L 1998.1953,515.02045 L 2002.6617,512.86729 L 2004.8633,513.07746 C 2004.8273,514.93536 2005.1304,515.57453 2006.1827,516.83967 L 2005.9774,522.13514 L 2010.5949,521.39677 L 2011.6701,522.68595 C 2012.2614,523.395 2012.7537,524.29413 2012.7641,524.68403 L 2012.783,525.39294 C 2011.3344,525.58223 2010.6467,524.89915 2009.0171,523.48634 L 2007.6754,525.464 L 2009.8477,528.23122 L 2011.3652,527.66144 L 2013.9049,532.11825 L 2013.1931,535.6774 L 2015.5425,538.85507 C 2012.4586,539.36739 2010.565,539.38719 2007.5221,539.40698 z \"},\"oh9\":{\"name\":\"OH-9\",\"path\":\"M 1974.3499,536.77016 L 1971.3368,523.45175 L 1948.7278,527.13168 L 1946.7353,518.54373 L 1941.8919,519.60221 L 1941.8919,518.02027 L 1924.659,520.97032 L 1923.7438,520.29368 L 1923.7438,518.5874 L 1919.9996,518.24419 L 1919.0954,511.78186 L 1910.6573,513.20615 L 1910.1847,516.20367 L 1905.8792,519.69096 L 1902.1339,519.72166 L 1900.9641,516.36614 L 1897.8148,516.99601 C 1897.6197,514.61502 1897.1094,512.23085 1897.1956,509.83873 C 1903.1512,508.60984 1909.0584,506.90535 1915.0951,506.09573 L 1915.804,506.11057 L 1915.804,507.19343 L 1919.9544,507.97206 L 1922.0065,506.69051 L 1927.3395,509.52611 L 1933.4995,510.2501 L 1935.0018,511.50332 C 1935.8281,512.19258 1937.3209,513.17525 1938.3191,513.68702 L 1940.1342,514.6175 L 1942.9451,514.6175 L 1943.8363,513.7263 C 1944.3265,513.23614 1944.7569,512.53432 1944.7929,512.16669 C 1944.8288,511.79907 1944.8127,511.05168 1944.7572,510.50582 C 1944.7017,509.95995 1944.8106,509.51334 1944.9992,509.51334 C 1945.1878,509.51334 1945.8984,510.03161 1946.5783,510.66505 L 1947.8145,511.81677 L 1950.9659,511.1246 L 1950.9659,513.51884 L 1951.9584,513.8859 C 1952.5043,514.08779 1954.0059,515.05 1955.2955,516.02415 L 1957.64,517.79533 L 1962.2077,519.3028 L 1964.8937,518.62866 L 1968.6165,515.30495 L 1972.8004,514.33394 L 1977.621,514.68272 L 1977.621,517.57937 L 1981.598,516.83328 L 1983.9918,520.89035 L 1986.0699,520.23077 L 1988.3964,522.5573 L 1988.3964,525.27159 L 1984.0537,526.24609 L 1984.6983,530.12296 L 1980.5639,531.05893 L 1981.1567,535.4791 L 1974.3499,536.77016 z \"},\"oh14\":{\"name\":\"OH-14\",\"path\":\"M 2044.8435,465.3291 L 2043.9928,466.09118 C 2040.9955,468.33861 2037.5937,469.998 2034.4225,471.97514 L 2033.7667,471.3194 L 2033.7667,472.45365 L 2031.0729,474.19048 C 2029.5913,475.14067 2027.7886,476.09597 2027.0675,476.31722 C 2026.3463,476.53846 2024.1113,477.95346 2022.1052,479.47187 C 2020.0991,480.99028 2017.882,482.78332 2017.1782,483.44177 C 2016.4744,484.10022 2015.0945,485.01196 2014.1122,485.47989 L 2012.3222,486.33058 L 2010.0891,488.989 C 2008.8593,490.45 2007.4819,492.36379 2007.0231,493.24246 L 2006.1901,494.83751 L 2007.3421,500.43791 L 2009.3093,499.81761 L 2009.9119,501.97979 C 2010.2409,503.16454 2010.5128,504.46656 2010.5145,504.88633 C 2010.5162,505.30608 2010.0806,506.37574 2009.5574,507.26118 L 2008.6182,508.87395 L 2010.0891,510.64623 L 2011.7374,510.64623 L 2011.2766,512.06405 L 2005.4103,513.07425 L 2005.4103,514.01355 C 2005.4103,514.53114 2005.7134,515.25592 2006.0838,515.62632 L 2006.7572,516.29979 L 2006.4914,521.56345 L 2010.6031,520.78365 L 2013.3501,523.74335 L 2013.4037,525.8853 L 2015.8136,523.74335 L 2014.5553,515.50227 L 2031.7995,512.22355 L 2030.1158,502.56464 L 2043.8156,499.87078 L 2045.1625,504.42553 L 2052.6061,502.63553 L 2044.8435,465.3291 z \"},\"pa13\":{\"name\":\"PA-13\",\"path\":\"M 2293.7952,508.12959 L 2291.8103,515.46682 C 2292.4249,516.04509 2293.1607,516.46908 2293.9193,516.86692 L 2294.8941,515.34276 L 2303.915,515.87444 L 2308.2748,517.73533 L 2307.5836,519.22405 L 2309.409,522.55593 C 2311.3054,520.99415 2312.5391,518.76624 2314.0524,516.8492 L 2315.7006,518.00118 L 2320.6807,520.28741 L 2321.9213,522.3787 L 2322.0985,521.47484 L 2323.2328,522.41415 L 2323.1442,523.37118 L 2324.1012,522.04197 L 2323.8176,521.72296 L 2323.7822,520.87227 L 2324.6683,518.86959 L 2321.5491,517.57583 L 2321.2124,518.37335 L 2322.2049,518.76326 L 2321.2833,519.61395 L 2320.0427,519.15316 L 2320.4503,518.08979 C 2320.6318,518.16494 2320.8225,518.2493 2320.8225,518.2493 L 2321.2301,517.41632 L 2304.996,510.57533 L 2304.7302,512.70207 L 2302.444,513.6591 L 2298.3323,512.18811 L 2293.7952,508.12959 z \"},\"il9\":{\"name\":\"IL-9\",\"path\":\"M 1714.3697,521.95179 C 1713.9588,521.93068 1713.0484,521.63647 1712.3465,521.298 L 1711.2721,520.75683 L 1710.9326,519.04851 L 1708.5288,518.29815 L 1709.2567,516.93295 L 1715.8911,515.74669 L 1719.2907,513.7166 C 1720.4675,515.30041 1721.1964,517.18318 1722.0454,518.94521 L 1716.1345,518.48184 L 1714.4476,519.8818 L 1715.1169,521.99017 L 1714.3697,521.95179 z \"},\"pa15\":{\"name\":\"PA-15\",\"path\":\"M 2293.2281,518.37523 C 2292.0632,517.76443 2290.8984,517.15291 2289.7127,516.58432 L 2291.9782,508.41399 L 2290.4195,506.53589 L 2290.7366,503.51243 L 2283.9276,500.25802 L 2285.1098,498.04899 L 2283.7942,496.75295 L 2282.1945,498.91999 L 2280.6222,499.05716 C 2279.7575,499.13259 2277.5187,499.59988 2275.6471,500.09556 L 2272.2444,500.9968 L 2269.0727,499.71281 L 2269.2407,499.01263 C 2269.3331,498.62753 2270.7188,497.19594 2272.3199,495.83132 C 2273.9211,494.46669 2276.4484,491.99318 2277.9362,490.33464 L 2280.6414,487.3191 L 2283.532,485.4771 C 2285.1218,484.464 2287.8796,482.92502 2289.6605,482.05715 C 2291.4414,481.18928 2293.483,479.96748 2294.1976,479.34203 C 2294.912,478.71657 2295.8839,477.91202 2296.3572,477.55414 C 2296.8305,477.19626 2297.6599,476.2106 2298.2004,475.36379 C 2298.7408,474.51698 2299.183,473.50428 2299.183,473.11333 L 2299.183,472.40252 C 2300.2796,471.49542 2301.2902,470.43765 2302.5794,469.81433 C 2302.7909,469.81433 2303.9067,470.75722 2305.0592,471.90965 L 2307.1545,474.00497 L 2305.326,475.02825 L 2306.016,477.77741 L 2304.8749,479.5988 L 2302.6111,481.44797 L 2303.307,486.82819 L 2304.5637,487.30923 L 2304.7533,489.66834 L 2304.6441,490.41189 C 2304.5841,490.82084 2303.6259,492.28727 2302.5149,493.67062 C 2301.4038,495.05398 2299.7236,497.33425 2298.7811,498.7379 C 2297.8386,500.14154 2296.5437,502.37895 2295.9035,503.70991 L 2294.7396,506.12985 L 2304.2871,510.21221 L 2304.2871,512.38458 L 2302.4428,513.0923 L 2298.3323,511.62576 L 2293.609,507.41011 L 2291.1587,515.44605 L 2293.6128,517.43329 L 2293.2281,518.37523 z \"},\"mi15\":{\"name\":\"MI-15\",\"path\":\"M 1901.8033,507.62376 L 1897.6622,487.11176 L 1897.6559,478.27607 L 1894.8212,471.75969 L 1897.9394,469.96067 L 1904.8936,469.20615 C 1905.4279,473.29237 1906.2251,477.37225 1907.6798,481.23822 L 1913.0257,479.87355 C 1912.0316,475.29688 1911.6301,474.07858 1912.1176,472.36641 L 1915.804,471.28116 L 1915.804,468.25183 L 1917.5386,466.81221 L 1920.2972,469.40372 L 1919.2114,471.43249 L 1921.4753,476.71391 L 1921.4753,481.72403 L 1923.2047,481.72403 L 1923.7578,483.17878 C 1924.062,483.97888 1924.3109,484.96067 1924.3109,485.36052 C 1924.3109,485.76036 1923.8005,486.67603 1923.1766,487.39532 C 1922.5528,488.11462 1922.0424,489.05321 1922.0424,489.48109 L 1922.0424,490.25904 L 1919.2067,491.33715 L 1919.1204,492.34366 C 1919.0728,492.89724 1918.9747,493.60538 1918.9022,493.9173 C 1918.8298,494.22922 1918.741,494.80344 1918.705,495.19334 L 1918.6396,495.90225 L 1917.1565,495.90225 L 1916.1966,498.07777 C 1915.6688,499.2743 1915.2368,500.79049 1915.2368,501.44707 L 1915.2368,502.64086 L 1915.804,502.99136 C 1916.1159,503.18414 1916.3711,503.56481 1916.3711,503.83731 L 1916.3711,504.33275 L 1901.8033,507.62376 z \"},\"nj13\":{\"name\":\"NJ-13\",\"path\":\"M 2354.9034,463.59227 L 2354.2653,466.81781 L 2354.8679,469.15722 L 2353.5387,469.86613 C 2352.8075,470.26359 2351.7455,470.63506 2351.1816,470.68138 L 2350.1537,470.76999 L 2348.7004,468.6787 L 2348.0092,469.36989 L 2349.7815,472.08147 L 2353.6451,472.08147 L 2352.9539,474.81078 L 2350.1537,475.75009 L 2350.5081,475.30702 L 2348.8599,475.8387 L 2348.47,477.50464 C 2348.2517,478.41919 2347.9408,481.02083 2347.7966,483.28227 L 2347.5484,487.39395 L 2347.9738,487.39395 C 2348.2103,487.39395 2348.5396,486.8114 2348.7181,486.10019 L 2349.0548,484.80642 L 2348.7181,483.56583 L 2348.3991,482.30751 L 2350.0828,481.65177 L 2349.0548,477.06157 L 2349.6574,476.44128 C 2349.7811,476.37944 2353.0586,474.98533 2353.2197,474.91712 C 2353.2236,474.91544 2353.3083,474.88167 2353.3083,474.88167 C 2353.5279,474.73401 2354.0254,473.98281 2354.4958,473.07395 L 2355.4528,471.23078 C 2355.716,468.97301 2355.9642,466.71344 2356.268,464.46068 L 2354.9034,463.59227 z \"},\"ny13\":{\"name\":\"NY-13\",\"path\":\"M 2356.0376,473.57019 C 2356.0376,473.57019 2355.7229,473.85935 2355.8427,474.75761 C 2355.9624,475.65589 2356.3054,475.38956 2357.4732,475.8387 C 2358.6409,476.28783 2357.739,476.65396 2357.739,476.65395 L 2357.3846,477.36286 L 2357.9517,477.78821 L 2358.0935,477.00841 L 2358.3948,477.54009 L 2359.5645,477.48692 L 2359.3518,476.44128 L 2359.1214,476.2286 L 2358.9619,476.49444 L 2358.7492,476.26405 L 2358.6429,475.14751 L 2356.6225,473.71197 L 2356.0376,473.57019 z M 2355.0451,475.50197 L 2350.5613,477.06157 L 2350.8803,482.85692 L 2349.7638,482.85692 L 2350.3486,485.12543 L 2351.3588,485.12543 L 2351.3588,483.68989 L 2353.8754,482.57336 L 2355.1692,480.64157 C 2355.8787,479.5817 2356.463,478.41619 2356.463,478.05405 C 2356.463,477.69191 2356.144,476.98094 2355.7541,476.459 L 2355.0451,475.50197 z \"},\"mi14\":{\"name\":\"MI-14\",\"path\":\"M 1924.0273,482.25589 L 1923.5153,481.1818 L 1922.0424,480.7483 L 1922.0424,476.71391 L 1919.7785,471.43249 L 1920.8643,469.40372 L 1919.4706,468.09445 C 1918.7041,467.37435 1918.1921,466.67003 1918.3329,466.5293 C 1918.4736,466.38856 1917.9723,465.05694 1917.2188,463.57014 L 1915.849,460.86686 L 1925.0315,458.7186 L 1926.9187,461.47827 L 1924.0273,462.31754 L 1921.4753,465.7985 L 1921.4753,468.3072 L 1923.3056,470.32974 L 1922.137,473.68197 L 1923.3054,478.28507 L 1925.6822,478.0377 L 1926.0599,479.83816 L 1924.0273,482.25589 z \"},\"mi13\":{\"name\":\"MI-13\",\"path\":\"M 1923.8051,477.78317 L 1922.6866,473.73233 L 1923.8727,470.32974 L 1922.0424,468.3072 L 1922.0424,465.7985 L 1924.486,462.49332 L 1927.725,461.78192 L 1925.4882,458.64065 L 1933.9709,456.37709 L 1933.2327,460.45671 L 1931.35,463.09648 L 1925.7704,466.128 L 1924.2426,471.23215 L 1924.88,477.11889 L 1923.8051,477.78317 z \"},\"nj9\":{\"name\":\"NJ-9\",\"path\":\"M 2348.5232,458.47039 L 2348.5232,459.23246 C 2348.5232,459.65262 2348.9827,460.54423 2349.5511,461.19969 L 2350.5968,462.38712 L 2350.1714,465.9494 C 2349.9405,467.90823 2349.8417,469.65887 2349.9587,469.84841 C 2350.0759,470.03796 2350.6403,470.14032 2351.1993,470.0788 C 2351.7584,470.01731 2352.6194,469.79527 2353.1134,469.58256 L 2353.9995,469.19266 L 2353.9995,466.65831 L 2354.3103,464.26161 L 2354.7316,463.01161 L 2355.3996,463.22009 L 2356.3921,463.62771 L 2357.1719,459.03751 L 2352.8653,459.03751 L 2350.8803,460.82751 L 2350.2423,459.65781 C 2349.8946,459.00809 2349.3735,458.47037 2349.0726,458.47039 L 2348.5232,458.47039 z \"},\"mi9\":{\"name\":\"MI-9\",\"path\":\"M 1910.2109,461.09947 C 1908.8725,455.62807 1907.6842,451.47785 1906.9163,445.496 L 1911.2669,444.76097 L 1911.2669,442.35326 C 1911.2669,441.02902 1911.4281,439.7844 1911.6251,439.58742 L 1914.4768,439.7823 L 1914.7381,438.08042 L 1919.6162,436.93111 L 1922.4794,450.45858 L 1920.8716,450.9189 L 1921.5532,453.75531 L 1917.7889,455.60202 L 1916.5921,454.02021 L 1912.9724,456.31209 L 1913.657,460.5937 L 1910.2109,461.09947 z \"},\"ny24\":{\"name\":\"NY-24\",\"path\":\"M 2264.0033,278.76148 L 2255.7976,282.14653 C 2254.2586,281.7372 2252.7149,281.32577 2251.1366,281.1895 L 2265.5983,321.5088 C 2260.3642,323.21019 2252.3711,324.08389 2249.896,326.61296 L 2251.0479,331.92979 L 2249.8073,334.2692 L 2246.3337,334.2692 C 2245.6487,337.14713 2242.6186,337.08218 2243.0372,339.17841 C 2241.9318,340.09669 2240.8118,341.00072 2240.1556,342.29713 C 2245.4506,345.41825 2245.9636,345.73442 2248.6376,349.08544 L 2250.6758,348.39425 L 2252.8379,354.54405 L 2257.2154,353.35663 L 2258.4206,357.43286 L 2266.6263,354.77445 L 2268.115,358.77979 L 2266.963,363.54722 C 2258.1248,366.22039 2263.5884,363.56849 2240.4497,371.57564 L 2239.3509,367.76524 L 2223.4004,372.83395 L 2218.0481,369.34257 L 2214.1669,370.54771 L 2211.0831,361.49138 L 2209.6653,361.49138 L 2208.9741,358.33672 L 2203.3382,356.33405 L 2203.2319,354.24276 L 2198.6949,355.18207 L 2199.9886,362.69653 L 2189.3727,366.17019 L 2190.9146,372.12504 L 2188.6283,372.72762 L 2191.2513,380.49019 L 2194.1047,380.95098 C 2194.3957,382.85844 2196.0812,384.52993 2197.6138,386.16148 L 2199.5633,393.07336 L 2208.1588,390.98207 L 2212.1996,406.52494 L 2218.8988,405.37296 L 2217.3215,398.72692 L 2216.3467,398.19524 L 2214.8403,393.55187 L 2219.4837,391.5492 C 2220.1022,392.7379 2220.5277,394.01339 2220.7952,395.34187 L 2222.7269,397.64583 L 2226.4487,410.54801 L 2224.8891,412.35573 C 2226.0033,414.9932 2227.3702,416.69671 2227.3349,418.11563 L 2230.7376,417.76118 L 2230.5604,414.23435 L 2232.1909,414.23435 L 2233.578,410.84274 L 2236.3561,411.53284 L 2237.1182,410.30997 L 2240.1661,410.26445 L 2238.8852,406.73761 L 2241.7789,407.41108 L 2243.179,405.72742 L 2246.7413,405.72742 L 2248.9212,409.75049 C 2249.7361,408.40252 2250.3234,407.32769 2250.4099,405.16029 L 2260.4055,405.2489 L 2261.8766,403.47662 L 2262.869,404.0792 L 2265.2616,402.80316 L 2264.8992,398.95732 L 2269.5505,397.68128 L 2267.8669,390.00732 L 2272.6058,388.77228 L 2273.8844,385.50385 L 2275.4887,385.49858 L 2276.2013,383.48975 L 2277.989,384.28003 C 2280.6462,379.27754 2281.6191,379.32822 2285.0048,377.19375 L 2280.4677,373.31247 L 2280.4677,368.54504 L 2283.8705,367.269 C 2284.0143,366.0671 2284.1125,365.32043 2282.9361,363.79986 L 2284.4731,355.92643 L 2287.3442,354.04781 L 2288.8506,355.28841 C 2289.3598,353.24495 2290.2332,352.02093 2291.8805,350.66033 L 2287.61,349.81207 L 2286.1568,339.19925 C 2285.0632,338.93378 2284.0606,337.98544 2283.2857,335.26168 C 2284.6437,334.18164 2284.4085,331.73588 2285.4478,330.24613 L 2283.0376,324.11405 L 2275.3636,322.7494 L 2276.9409,312.43475 L 2264.0033,278.76148 z \"},\"ny21\":{\"name\":\"NY-21\",\"path\":\"M 2301.6401,374.25315 L 2296.1504,370.10929 L 2298.0007,362.39362 L 2294.0363,354.97077 L 2293.3802,350.31572 L 2288.1314,349.29948 L 2286.6839,339.31933 L 2298.171,339.94822 L 2296.9384,333.98701 L 2303.7872,329.5016 L 2306.7345,336.55593 L 2314.9061,334.95499 L 2315.4247,336.2076 L 2319.4338,336.26839 L 2322.4409,338.37464 C 2323.2963,337.84232 2323.6631,336.73722 2325.0071,336.77766 L 2325.5991,339.52525 L 2331.0052,344.0034 C 2332.6284,342.57648 2333.9038,341.84539 2334.5992,339.60668 L 2336.4738,339.37473 L 2339.6938,346.79967 L 2341.2325,346.84987 L 2340.5628,348.59505 L 2341.9455,352.41869 L 2343.9861,352.41869 L 2343.2713,356.98528 L 2341.3107,356.36298 L 2339.8773,358.08998 L 2337.6661,358.14796 L 2336.6078,360.28803 L 2337.1671,361.66831 L 2317.3636,370.85037 L 2317.3906,374.12015 L 2314.9995,375.08381 L 2312.4129,374.47991 L 2310.9538,376.47004 L 2301.6401,374.25315 z \"},\"ma9\":{\"name\":\"MA-9\",\"path\":\"M 2468.7175,356.95572 C 2468.4259,356.95572 2467.6769,356.4453 2467.0531,355.82146 L 2465.9188,354.68721 L 2461.4382,354.68721 L 2460.3807,352.79765 L 2460.9139,348.73235 L 2457.48,345.46625 L 2454.0952,350.80361 L 2452.8349,348.44879 L 2450.5394,348.44879 L 2451.2846,347.24306 L 2449.2963,345.04602 L 2454.0091,345.04602 L 2454.0091,341.07612 L 2451.1978,341.07612 L 2452.4931,338.23331 L 2453.1093,338.29842 C 2453.4482,338.33423 2454.2998,338.17847 2455.0016,337.95229 L 2456.2776,337.54106 L 2456.2776,336.4002 L 2458.0134,337.42252 L 2458.4676,339.49122 L 2461.5559,337.45403 L 2461.2582,338.83973 C 2461.0945,339.60186 2460.7728,340.67204 2460.5433,341.2179 L 2460.1262,342.21037 L 2463.0616,342.21037 L 2463.7732,339.37473 L 2464.8126,339.37473 L 2465.4169,340.93434 C 2465.7492,341.79212 2466.0757,343.4688 2466.1424,344.66029 L 2466.2636,346.82664 L 2467.8496,347.80682 L 2468.3454,347.50038 C 2468.6181,347.33184 2469.6955,347.15376 2470.7397,347.10466 L 2472.6381,347.01537 L 2474.4136,350.02106 L 2472.1572,350.61112 L 2472.1572,355.84954 C 2471.0311,356.28902 2469.9096,356.74092 2468.7175,356.95572 z \"},\"wa9\":{\"name\":\"WA-9\",\"path\":\"M 209.03016,141.43543 L 206.47808,139.94108 C 205.07443,139.11919 203.37611,137.95167 202.70401,137.34659 L 201.48196,136.24644 L 197.47928,136.5913 L 195.24717,133.75363 L 196.02192,132.35428 C 196.44807,131.58464 196.80575,130.66113 196.81681,130.30204 L 196.83689,129.64915 L 193.29172,127.83284 L 192.69687,126.438 L 193.89377,125.40671 L 191.1656,123.82592 L 191.16878,123.13696 C 191.17048,122.75804 191.43045,121.51721 191.74646,120.37958 L 192.32096,118.31115 L 195.30882,116.35345 L 196.28382,117.64608 L 197.39938,118.6109 L 199.0716,118.24311 L 199.86042,115.07533 L 201.64495,113.75809 L 202.09956,114.03904 C 202.34955,114.19356 203.19049,115.32804 203.96825,116.56012 C 204.74607,117.79219 206.39454,119.8124 207.63162,121.04948 L 209.88085,123.2987 L 212.12634,123.2987 L 214.48798,118.66951 L 212.75852,116.03004 L 214.43189,114.64127 L 213.15585,113.1038 L 218.67134,112.23969 L 218.95491,103.87744 L 220.41152,105.08633 L 224.56999,104.14845 L 225.44876,105.11952 C 225.93212,105.6536 226.32758,106.29756 226.32758,106.55054 C 226.32758,106.80351 225.95424,107.29383 225.49793,107.64014 L 224.66822,108.26979 L 221.06741,116.77672 L 220.54173,121.60165 L 217.36201,123.86583 L 215.04932,123.86583 L 213.31436,126.34286 L 213.99662,129.06121 L 211.39106,132.58543 L 210.88291,134.88939 C 210.60343,136.15656 210.32746,138.0647 210.26962,139.12967 L 210.16441,141.066 L 209.03016,141.43543 z \"},\"tx23\":{\"name\":\"TX-23\",\"path\":\"M 838.25945,1169.5612 L 837.03661,1177.0225 L 832.72994,1177.0225 L 831.27668,1191.821 L 828.01569,1193.8414 L 829.14994,1196.872 L 833.11984,1196.872 L 834.96301,1200.4165 L 832.58816,1203.9433 C 832.58816,1204.1119 832.86776,1204.2447 833.20849,1204.2447 C 833.54916,1204.2447 834.47126,1204.7551 835.26433,1205.3789 L 836.7176,1206.5132 L 839.67727,1206.5486 L 842.79648,1209.2956 L 842.79648,1211.6528 L 843.78895,1212.0249 C 844.33481,1212.233 845.30324,1212.9269 845.95113,1213.5668 C 846.59896,1214.2067 848.06641,1216.0757 849.21212,1217.714 C 850.35778,1219.3522 851.30341,1220.9474 851.30341,1221.2585 C 851.30341,1221.5696 851.54478,1221.8256 851.83509,1221.8256 C 852.12535,1221.8256 853.27951,1222.3999 854.40492,1223.1017 C 855.53039,1223.8035 857.45829,1225.3237 858.69383,1226.469 L 860.9446,1228.5425 L 860.9446,1231.4136 L 863.92202,1234.4797 C 865.55961,1236.1645 867.60127,1237.9895 868.45905,1238.5382 L 870.01866,1239.5307 L 870.01866,1241.0726 L 871.17066,1242.1359 C 871.79972,1242.7221 873.01202,1243.5223 873.86453,1243.9259 C 874.71698,1244.3295 876.0444,1244.9255 876.8242,1245.2374 C 877.604,1245.5493 878.80376,1246.0516 879.50037,1246.3717 C 880.19691,1246.6917 881.27684,1247.4282 881.89291,1248.0021 C 882.50898,1248.5761 883.19997,1249.0478 883.41707,1249.0478 C 883.63411,1249.0478 884.67077,1250.0687 885.73878,1251.3163 L 887.68829,1253.5849 L 890.3644,1253.5849 L 891.88856,1258.9726 L 893.00512,1259.1675 C 893.61915,1259.2814 894.41795,1259.6205 894.7774,1259.9119 L 895.43311,1260.4435 L 896.35469,1264.2362 C 896.86698,1266.3287 897.32925,1269.1593 897.38262,1270.5101 L 897.48895,1272.9558 L 899.50935,1274.0369 L 899.50935,1275.8269 L 900.92717,1276.9435 L 902.34499,1278.06 L 902.34499,1280.5412 L 904.40083,1281.8172 L 905.67687,1286.1948 L 905.39331,1289.8811 C 905.23508,1291.9086 905.11207,1294.2692 905.10974,1295.127 C 905.10748,1295.9848 905.15148,1297.7735 905.21608,1299.0969 L 905.34017,1301.5072 L 907.16559,1304.9454 C 908.1732,1306.8447 909.3872,1309.0294 909.85945,1309.7837 C 910.3317,1310.5381 911.24749,1312.9403 911.89759,1315.136 L 913.08499,1319.1414 L 919.92598,1324.6177 L 919.92598,1326.0001 L 921.37925,1326.6558 C 922.17368,1327.0178 923.25832,1327.3104 923.78955,1327.3116 C 924.32072,1327.3127 925.56664,1327.8151 926.57205,1328.4281 L 928.39747,1329.5447 L 929.12413,1332.4157 L 930.16974,1332.4157 L 931.21542,1335.1982 L 932.81046,1336.1907 C 933.68214,1336.7379 935.45538,1338.1359 936.76261,1339.3099 L 939.13747,1341.4544 L 940.73252,1341.8088 C 941.60873,1342.0011 943.07152,1342.391 943.97581,1342.6772 C 944.8801,1342.9633 946.2838,1343.1901 947.09502,1343.1912 L 948.56598,1343.1912 L 952.25232,1345.4419 L 952.25232,1346.0623 C 952.25232,1346.3989 953.06864,1347.3513 954.06004,1348.189 C 955.05138,1349.0266 956.56221,1350.0182 957.42737,1350.3866 C 958.29252,1350.7552 960.16422,1351.2358 961.59221,1351.45 L 964.19751,1351.8399 L 966.02291,1353.8248 C 967.02731,1354.9197 968.50611,1356.5262 969.31941,1357.3871 C 970.13261,1358.248 971.36031,1359.2518 972.04871,1359.6202 L 973.30701,1360.2936 L 974.90201,1358.9645 L 976.67431,1360.719 C 977.64181,1361.6865 978.71871,1362.4891 979.08461,1362.509 C 979.45051,1362.5289 980.52741,1362.627 981.47721,1362.7217 C 982.42711,1362.8163 983.75801,1363.0612 984.41921,1363.2711 L 985.62431,1363.661 L 986.51051,1362.3672 C 987.00481,1361.6614 987.41431,1360.6547 987.41431,1360.1164 L 987.41431,1359.1239 L 988.76121,1357.6884 C 989.49881,1356.8926 990.32821,1356.239 990.60441,1356.2351 C 990.88051,1356.2313 991.67481,1355.3336 992.37671,1354.2502 C 993.07851,1353.1667 993.65271,1352.0632 993.65271,1351.7867 L 993.65271,1351.2728 L 998.18971,1350.5461 L 998.18971,1348.7916 L 1000.4582,1349.5005 L 1000.4582,1348.2953 L 998.75691,1348.2953 L 998.75691,1347.4978 C 998.75691,1347.0537 999.04711,1345.3948 999.41261,1343.8115 L 1000.0861,1340.9227 L 1001.8761,1340.9227 L 1003.223,1337.9984 L 1002.6027,1336.4033 L 1003.6307,1333.4082 C 1004.1935,1331.7679 1004.9501,1330.1801 1005.3143,1329.8637 L 1005.9878,1329.2788 L 1006.803,1325.5393 L 1008.5221,1326.195 L 1007.7955,1324.2987 L 1010.383,1321.5517 L 1011.5705,1317.3868 L 1013.2364,1317.3691 C 1014.1595,1317.3571 1015.6515,1317.0283 1016.5505,1316.6425 L 1018.181,1315.9336 L 1020.2192,1316.5893 L 1021.3002,1314.6752 L 1023.4979,1314.9765 C 1024.7071,1315.1481 1026.1361,1315.4699 1026.6703,1315.6854 L 1027.645,1316.0753 L 1028.9742,1310.794 L 1031.5972,1309.0571 L 1034.9822,1309.8015 L 1036.3291,1311.432 L 1039.5015,1311.432 L 1041.6105,1314.3385 L 1045.74,1315.2601 L 1046.2184,1314.8348 C 1046.4765,1314.6017 1047.6243,1314.2664 1048.7883,1314.0904 L 1050.915,1313.7714 L 1051.6062,1314.8879 L 1054.5305,1314.7993 C 1056.1395,1314.75 1058.4755,1314.9038 1059.7232,1315.136 C 1060.9709,1315.3682 1062.2821,1315.7858 1062.6297,1316.0576 L 1063.2501,1316.5538 L 1070.8354,1316.6602 L 1073.1394,1314.5866 L 1075.2129,1317.3336 L 1076.8788,1315.9513 L 1077.8004,1316.3057 C 1078.3078,1316.5005 1078.722,1316.8779 1078.722,1317.1564 L 1078.722,1317.6704 L 1080.7778,1317.6704 L 1082.0184,1319.992 C 1082.7001,1321.2692 1083.259,1322.6581 1083.259,1323.0758 L 1083.259,1323.8379 L 1086.3782,1324.1924 L 1086.715,1327.7192 L 1089.4798,1327.1875 L 1090.2418,1329.1902 L 1089.0367,1332.4157 L 1093.4851,1332.4157 L 1094.7611,1335.2159 L 1099.2982,1336.1198 L 1102.2578,1341.6847 L 1109.347,1346.1509 L 1109.347,1347.5155 L 1113.3701,1349.0928 L 1114.4689,1350.8829 C 1115.0788,1351.8697 1115.5854,1353.0838 1115.5854,1353.5767 L 1115.5854,1354.4806 L 1116.9323,1355.9161 C 1117.6699,1356.7119 1118.5304,1357.3694 1118.8464,1357.3694 C 1119.1623,1357.3694 1119.736,1357.7544 1120.1224,1358.2201 L 1120.8136,1359.0708 L 1120.9377,1360.6304 C 1121.0018,1361.4904 1121.3653,1363.239 1121.7352,1364.5294 C 1122.1051,1365.8199 1122.3543,1367.3512 1122.3023,1367.9322 C 1122.2504,1368.5132 1122.2529,1369.4422 1122.3023,1369.988 L 1122.3909,1370.9805 L 1124.6594,1370.9805 L 1124.6594,1371.7248 C 1124.6594,1372.1306 1124.9784,1373.1361 1125.3683,1373.9756 L 1126.0773,1375.5175 L 1127.4774,1375.5175 L 1127.8141,1377.0771 C 1128.0003,1377.9349 1128.4488,1379.2316 1128.8066,1379.9659 C 1129.1643,1380.7002 1129.4776,1381.9763 1129.5155,1382.8016 C 1129.5534,1383.6268 1129.627,1384.732 1129.675,1385.2473 L 1129.7636,1386.1866 L 1133.2905,1387.4095 L 1132.6347,1389.1286 L 1135.5235,1391.0249 L 1134.9209,1393.2757 L 1136.0375,1395.367 L 1138.306,1395.367 L 1138.9972,1397.1924 L 1137.4907,1398.114 L 1138.9617,1399.8863 L 1138.2705,1402.6688 L 1141.7442,1407.8261 L 1141.3897,1409.9883 L 1143.5519,1412.3809 L 1145.1115,1412.3809 L 1145.8027,1414.1886 L 1187.1677,1412.8239 L 1185.7675,1364.7421 L 1212.5289,1364.7421 L 1212.8479,1347.2142 L 1243.4552,1363.2888 L 1249.9594,1352.1589 L 1247.7264,1351.574 L 1247.7264,1350.2803 L 1244.3236,1348.7738 L 1244.359,1346.3104 L 1245.0502,1345.4243 C 1245.4302,1344.937 1246.2518,1344.3113 1246.8757,1344.0419 L 1248.0099,1343.5633 L 1245.4578,1343.1203 L 1245.4578,1340.196 L 1236.242,1340.9049 C 1232.9111,1342.7218 1232.168,1343.3667 1230.3403,1344.9103 L 1224.4741,1342.5532 L 1225.6615,1340.3378 L 1224.545,1336.297 L 1225.4666,1334.3475 C 1225.9744,1333.2825 1226.5947,1332.4157 1226.8489,1332.4157 L 1227.3097,1332.4157 L 1227.3097,1331.565 C 1227.3097,1331.0972 1227.4646,1330.7144 1227.6642,1330.7144 C 1228.4491,1331.2322 1229.0577,1331.9226 1229.6137,1332.6993 L 1230.3049,1331.5827 C 1231.9034,1329.3721 1234.0093,1327.6052 1235.923,1325.6811 L 1239.4853,1325.3266 L 1240.46,1322.491 L 1239.2549,1319.3718 L 1229.6137,1319.3718 L 1226.6186,1320.5592 C 1224.9695,1321.2076 1222.8086,1322.3561 1221.8157,1323.1113 C 1220.8227,1323.8664 1219.6767,1324.4759 1219.2636,1324.4759 C 1218.8504,1324.4759 1217.308,1325.114 1215.8431,1325.8938 L 1213.1847,1327.3116 L 1209.7819,1327.3116 L 1206.7513,1323.3417 L 1165.2091,1323.3417 L 1162.5153,1318.6274 L 1161.9304,1309.2344 L 1162.8697,1306.3987 C 1163.3803,1304.8377 1163.7913,1303.0366 1163.7913,1302.3934 L 1163.7913,1301.2237 L 1173.4325,1301.2237 L 1173.4325,1285.9112 L 1135.559,1285.9112 L 1134.8855,1283.5363 L 1127.0875,1277.9536 L 1124.0392,1270.7759 C 1119.8267,1267.9829 1117.2574,1266.1085 1111.6155,1265.3882 L 1111.6155,1259.8233 L 1105.3771,1259.8233 L 1105.3771,1236.7659 C 1079.1309,1236.3895 1055.4128,1236.1494 1029.0982,1234.8164 L 1027.6804,1232.9555 L 1027.6804,1228.0463 L 1022.9662,1223.9169 L 1019.333,1223.6865 L 1015.1327,1219.5571 L 1013.8921,1220.2128 C 1013.2092,1220.5723 1012.4663,1221.1457 1012.2439,1221.4889 L 1011.8363,1222.1092 L 1010.5425,1222.1978 C 1009.8292,1222.2467 1008.7061,1222.4651 1008.0436,1222.6763 L 1006.8384,1223.0485 L 1002.2305,1218.5292 L 1000.0683,1217.8203 C 998.88041,1217.4308 997.30541,1216.7346 996.57701,1216.2607 L 995.26551,1215.3922 L 994.32621,1216.8987 L 991.17151,1216.5265 C 989.43691,1216.3226 987.30901,1215.8302 986.43961,1215.4454 C 985.57001,1215.0606 984.57131,1214.3865 984.22421,1213.939 L 983.60391,1213.1237 L 980.96321,1212.9643 C 979.51411,1212.8789 978.01401,1212.6158 977.63131,1212.3794 L 976.94021,1211.954 L 973.51961,1212.2376 L 972.03091,1209.8273 L 971.72971,1206.6195 C 971.56361,1204.8498 971.35691,1202.7559 971.26891,1201.9761 C 971.18061,1201.1963 971.07871,1200.2393 971.03841,1199.8494 L 970.96761,1199.1405 L 967.72431,1199.1405 L 964.72911,1196.1453 L 964.72911,1194.0363 L 963.09861,1194.0363 L 962.38971,1191.7678 L 959.90855,1192.3881 L 956.22222,1189.3398 L 956.22222,1188.2055 C 956.22222,1187.5851 955.9238,1186.1016 955.5665,1184.9091 L 954.92848,1182.7469 L 953.47522,1183.314 L 950.55093,1180.8506 L 950.74591,1178.653 L 949.39898,1178.4757 L 949.48756,1176.8629 L 944.02895,1175.392 C 907.97539,1173.6481 875.3094,1171.9028 838.25945,1169.5612 z \"},\"tx21\":{\"name\":\"TX-21\",\"path\":\"M 1239.503,1339.6404 L 1243.2237,1338.9391 L 1245.9229,1334.3975 L 1243.2437,1331.2828 L 1241.4879,1331.2828 L 1241.4879,1335.8199 L 1238.7776,1335.1795 L 1239.3481,1332.998 L 1237.518,1332.2957 L 1237.518,1330.7157 L 1234.3421,1330.7157 L 1232.981,1332.0768 L 1231.5722,1330.668 L 1236.2774,1326.4177 L 1239.4528,1325.9893 L 1241.2425,1322.6027 L 1239.5026,1318.8058 L 1229.153,1318.7667 C 1225.1667,1320.3137 1222.0317,1322.0498 1219.7481,1323.6914 L 1215.9672,1324.9756 C 1215.9672,1325.2 1215.1196,1325.6902 1214.0837,1326.0647 C 1213.0479,1326.4393 1211.7848,1326.7458 1211.2769,1326.7458 L 1210.3536,1326.7458 L 1207.3256,1322.7759 L 1165.7763,1322.7672 L 1163.1286,1318.1316 L 1162.5037,1309.8691 C 1163.3111,1307.0822 1164.1185,1304.7682 1164.3584,1301.7922 L 1173.9996,1301.7922 L 1173.9996,1285.9125 L 1193.8491,1285.9125 L 1193.8491,1295.7288 L 1233.1126,1294.9866 L 1232.2823,1272.3015 L 1242.2554,1272.3015 L 1256.9169,1276.5348 L 1259.0689,1273.8772 L 1259.0689,1271.8289 L 1257.902,1271.4399 L 1260.8559,1264.5937 C 1262.9071,1264.5618 1264.2016,1264.5298 1266.1582,1263.9304 L 1266.867,1264.6892 C 1267.2569,1265.1066 1267.5759,1265.7411 1267.5759,1266.0993 L 1267.5759,1266.7505 L 1270.3244,1268.9125 L 1271.0571,1272.2482 L 1273.3295,1275.1371 L 1275.3634,1275.1371 L 1274.531,1279.689 L 1271.4235,1282.5689 L 1273.423,1284.7783 L 1271.7216,1284.7783 L 1269.8444,1282.704 L 1269.8444,1278.099 L 1266.0268,1277.3828 L 1264.1731,1278.0941 L 1264.1731,1280.5916 C 1264.8776,1281.4193 1265.4437,1282.3031 1265.8564,1283.2958 L 1265.8745,1283.7982 L 1260.7774,1283.0996 L 1254.6451,1280.0521 L 1254.5319,1299.6168 C 1257.6065,1303.3852 1261.8337,1306.458 1264.1731,1310.7634 L 1265.9295,1316.5672 L 1262.7553,1321.2304 C 1252.8273,1326.2397 1250.6556,1327.5601 1246.5921,1330.2993 L 1246.5921,1332.9224 L 1249.7113,1334.4104 L 1250.0648,1337.4652 L 1248.8207,1339.7898 L 1239.503,1339.6404 z \"},\"fl5\":{\"name\":\"FL-5\",\"path\":\"M 2138.8484,1329.7075 L 2137.7459,1323.5516 L 2107.0411,1329.1441 L 2105.0957,1325.0444 L 2104.0732,1325.0444 L 2104.0774,1318.5354 L 2107.4935,1315.2527 L 2107.4935,1313.0041 L 2101.2551,1313.7835 L 2101.1901,1311.8995 C 2101.1543,1310.8633 2101.0446,1308.8671 2100.9464,1307.4634 C 2100.8481,1306.0598 2100.4859,1302.9973 2100.1413,1300.6579 C 2099.7969,1298.3185 2099.5262,1295.5405 2099.54,1294.4845 L 2099.5651,1292.5645 L 2098.5265,1291.3003 L 2098.5328,1287.0161 L 2097.1463,1285.3454 L 2095.3002,1285.3139 L 2093.8309,1283.77 C 2093.0229,1282.9209 2092.1952,1281.7634 2091.9918,1281.1978 L 2091.6219,1280.1693 L 2090.4796,1280.8753 L 2090.4796,1277.3813 L 2089.2036,1276.8725 C 2088.5017,1276.5926 2087.4243,1276.2015 2086.8092,1276.0034 L 2085.6908,1275.6432 L 2087.1426,1274.746 L 2086.4073,1271.8164 L 2085.7496,1271.5758 C 2085.3879,1271.4434 2082.9036,1271.4546 2080.229,1271.6006 L 2075.3661,1271.8661 L 2074.068,1275.3051 L 2072.344,1273.8743 L 2072.8719,1273.0202 L 2070.5658,1270.9333 L 2071.1863,1268.4613 L 2070.4828,1267.8948 C 2070.096,1267.5832 2068.9646,1267.1541 2067.9686,1266.9413 L 2065.4135,1266.3792 L 2066.7816,1264.9288 C 2071.1282,1262.5895 2071.5787,1259.6185 2071.6776,1256.5903 L 2073.1065,1254.513 L 2072.5215,1250.1589 L 2074.8977,1246.4971 L 2079.1195,1246.0755 L 2083.3413,1245.6539 L 2084.3288,1246.6414 L 2089.3454,1245.6464 L 2089.3454,1247.4379 L 2095.0166,1246.1371 C 2095.1062,1248.8373 2093.5321,1250.0051 2093.3153,1252.3989 L 2098.5255,1254.7036 L 2100.4532,1253.6719 L 2105.2424,1257.2725 L 2106.3167,1260.3918 L 2107.8679,1259.2233 L 2110.8138,1266.9137 L 2111.5707,1272.8755 L 2108.0606,1273.5775 L 2108.0606,1276.8385 C 2111.1724,1276.8865 2113.7722,1277.4465 2115.7168,1278.6616 L 2133.6789,1275.2986 L 2135.3426,1282.9777 C 2136.9227,1283.5868 2138.4712,1284.294 2140.0953,1284.7783 L 2141.6701,1277.8031 L 2145.6649,1279.5887 L 2147.7559,1287.8975 L 2146.6497,1290.4496 L 2147.9732,1293.3546 L 2150.4834,1292.7246 C 2155.5784,1297.7121 2156.023,1302.6098 2156.9756,1308.5483 L 2150.0735,1310.2832 L 2149.6766,1308.9608 L 2147.7596,1309.6963 L 2147.7848,1314.5525 C 2148.7054,1315.6677 2149.5951,1316.7778 2150.0155,1318.172 C 2150.1784,1319.3291 2149.0354,1320.9885 2147.7006,1322.7217 L 2140.3193,1326.2092 L 2138.8484,1329.7075 z \"},\"tx2\":{\"name\":\"TX-2\",\"path\":\"M 1462.4246,1321.0745 L 1460.8069,1301.1378 C 1445.6239,1302.0118 1437.4064,1302.5803 1425.7061,1303.9432 L 1430.7569,1307.462 L 1429.7747,1313.1347 L 1426.9524,1313.1347 L 1425.9174,1308.0838 L 1423.8765,1309.1648 L 1418.9992,1309.1648 L 1418.9992,1306.3292 L 1414.2006,1305.9493 L 1413.8864,1303.6154 C 1413.8816,1302.7686 1413.6902,1301.8019 1413.461,1301.4672 C 1413.2319,1301.1325 1412.5978,1300.694 1412.0519,1300.4925 L 1410.9372,1299.8819 L 1411.0594,1297.2988 L 1402.0297,1295.6676 L 1398.7365,1298.2867 L 1395.4499,1298.1883 L 1396.8854,1295.5455 C 1397.5069,1294.3272 1398.0155,1292.973 1398.0155,1292.5363 C 1398.0155,1292.0995 1397.3852,1290.8133 1396.6147,1289.678 C 1395.8443,1288.5428 1395.3977,1287.622 1395.6222,1287.632 C 1395.8468,1287.6419 1396.44,1287.9619 1396.9405,1288.343 C 1397.4409,1288.7243 1398.0416,1289.6385 1398.2753,1290.3747 L 1398.7001,1291.7132 L 1402.4822,1291.0994 L 1403.2459,1292.1778 L 1406.9719,1293.3495 L 1408.9667,1295.5537 L 1411.3696,1295.5537 L 1420.2876,1286.5831 L 1416.062,1276.1461 L 1416.5381,1275.717 C 1416.8,1275.481 1418.2738,1274.564 1419.8131,1273.6793 L 1422.6119,1272.0706 L 1422.137,1273.1785 C 1421.8758,1273.7878 1421.541,1275.1531 1421.3932,1276.2124 L 1421.1243,1278.1383 L 1422.4256,1283.9531 L 1423.6898,1284.7468 C 1424.3852,1285.1833 1425.7006,1285.6945 1426.613,1285.8828 L 1428.2721,1286.2253 L 1428.812,1287.9121 C 1429.1089,1288.8398 1429.8743,1290.1731 1430.5128,1290.8749 L 1431.6738,1292.151 L 1434.1534,1292.151 C 1435.6425,1291.1834 1437.0487,1290.0525 1438.6696,1289.3153 C 1438.8553,1289.3153 1439.3374,1289.7619 1439.7409,1290.3078 L 1440.4745,1291.3003 L 1444.3894,1287.0468 L 1446.1,1287.0468 L 1446.745,1288.7275 L 1460.6832,1288.4094 L 1464.086,1286.748 L 1464.086,1284.4947 L 1468.0559,1283.0952 L 1471.7729,1283.776 L 1474.4966,1286.5346 L 1474.0776,1289.3153 L 1476.3854,1289.3153 L 1476.9735,1291.5642 L 1480.3869,1293.267 L 1481.9565,1293.7537 L 1486.5121,1294.5233 L 1488.2104,1297.8074 L 1486.6423,1301.5603 L 1483.6519,1303.5197 L 1483.6519,1306.9319 L 1484.5026,1307.2584 C 1484.9705,1307.4379 1485.3533,1307.8323 1485.3533,1308.1349 C 1485.3533,1308.4374 1486.1304,1309.462 1487.0801,1310.4118 L 1488.8069,1312.1386 L 1488.4872,1312.4583 C 1488.3114,1312.6342 1486.1353,1312.8123 1483.6514,1312.8541 L 1479.1352,1312.93 C 1473.5614,1315.6365 1468.0468,1318.4693 1462.4246,1321.0745 z \"},\"tx29\":{\"name\":\"TX-29\",\"path\":\"M 1424.7073,1317.4494 L 1424.387,1319.212 L 1423.2527,1317.4982 C 1422.6289,1316.5556 1421.7027,1315.5281 1421.1946,1315.2147 L 1420.2708,1314.645 L 1411.6436,1318.742 L 1410.8732,1317.9717 C 1410.4495,1317.5479 1409.7748,1316.4094 1409.3739,1315.4415 L 1408.645,1313.6818 L 1406.2388,1313.9854 L 1405.6717,1312.8512 L 1409.6416,1312.284 L 1411.183,1309.1648 C 1412.0308,1307.4493 1412.7326,1305.599 1412.7426,1305.0531 L 1412.7608,1304.0607 L 1410.4,1301.6999 L 1408.2878,1303.6114 L 1407.9402,1306.6127 L 1404.0892,1306.9805 L 1403.137,1305.4785 L 1403.1196,1301.2034 L 1405.9639,1301.9173 L 1410.1189,1299.9456 L 1413.0444,1301.7146 L 1413.9141,1306.3188 L 1418.3709,1307.0315 L 1418.7157,1309.4484 L 1423.4929,1309.7951 L 1425.6654,1308.6324 L 1426.3914,1313.1728 L 1425.7095,1314.4298 C 1425.3345,1315.1212 1424.8835,1316.48 1424.7073,1317.4494 z \"},\"la2\":{\"name\":\"LA-2\",\"path\":\"M 1688.9544,1289.2215 L 1689.5926,1286.6791 L 1687.1102,1284.9426 L 1685.6571,1286.7926 L 1682.4098,1285.2831 L 1679.7404,1281.3875 L 1679.5437,1276.6623 L 1679.9506,1277.6892 C 1680.3042,1278.6249 1680.9826,1279.8372 1681.4582,1280.383 L 1682.3228,1281.3755 L 1683.8105,1281.3755 L 1685.7151,1279.4709 C 1686.7627,1278.4234 1687.8801,1277.4664 1688.1984,1277.3442 L 1688.777,1277.1221 L 1689.5412,1274.0028 L 1687.2511,1274.0028 L 1687.2511,1265.0001 L 1689.3778,1265.3267 C 1690.5475,1265.5064 1691.7913,1265.8775 1692.1417,1266.1516 L 1692.779,1266.65 L 1698.4476,1262.8353 L 1701.9964,1263.3561 L 1701.9964,1264.8074 L 1703.6255,1265.4325 L 1706.3604,1263.2812 L 1708.1255,1264.4055 L 1709.2713,1263.1697 L 1712.7816,1264.0792 L 1709.9363,1267.1478 L 1709.9363,1268.8222 L 1707.5716,1269.5728 L 1708.3151,1272.585 L 1706.8738,1271.1672 L 1703.078,1271.1672 L 1701.1458,1274.5628 L 1698.0935,1274.57 L 1697.3314,1275.803 L 1694.9664,1275.1846 L 1693.4895,1276.4103 L 1693.4895,1277.7387 L 1693.4895,1279.0671 L 1694.5865,1279.6542 C 1695.1898,1279.9771 1696.3293,1280.2413 1697.1186,1280.2413 L 1698.5538,1280.2413 L 1699.7679,1282.5098 L 1699.2502,1282.5098 C 1698.9655,1282.5098 1698.4041,1282.114 1698.0027,1281.6304 L 1697.2729,1280.7511 L 1694.4662,1281.092 L 1693.4212,1283.0485 C 1692.8465,1284.1246 1692.0082,1285.211 1691.5583,1285.4628 L 1690.7404,1285.9205 L 1691.2318,1289.8824 L 1688.9544,1289.2215 z \"},\"fl3\":{\"name\":\"FL-3\",\"path\":\"M 2132.4294,1178.2276 L 2128.7962,1178.653 L 2128.8671,1180.1062 L 2126.1733,1181.1342 L 2128.8671,1186.2915 L 2128.495,1192.0336 L 2134.0954,1197.6872 L 2133.9536,1200.452 L 2135.0347,1201.3913 L 2135.1055,1205.9815 L 2136.7715,1209.6324 L 2136.9842,1210.4122 L 2131.8446,1214.6302 L 2132.5889,1219.6457 L 2128.9026,1223.4384 L 2126.2796,1224.0942 L 2125.9252,1227.1425 L 2122.6642,1228.0109 L 2120.4843,1230.3326 L 2116.3726,1232.0694 L 2115.1497,1231.6263 L 2110.8785,1233.7708 L 2108.7873,1232.6542 L 2105.863,1235.7203 L 2108.9467,1239.8497 L 2111.9419,1238.2901 L 2112.7217,1241.9587 L 2115.4156,1245.5564 L 2114.6889,1249.2073 L 2121.016,1247.8072 L 2122.7705,1251.1746 L 2133.5814,1249.0478 L 2133.5814,1254.152 L 2134.7156,1254.152 L 2134.7156,1256.4205 L 2137.5513,1256.4205 L 2137.5513,1259.2561 L 2142.6554,1259.2561 L 2143.2403,1261.3297 L 2144.4455,1261.7196 L 2145.1898,1259.0612 L 2149.461,1260.5322 L 2149.461,1261.6132 C 2149.461,1262.2116 2149.9427,1263.6461 2150.5421,1264.8033 C 2151.1416,1265.9606 2152.928,1268.5058 2154.512,1270.4569 C 2156.0961,1272.408 2157.4008,1274.2582 2157.4008,1274.5686 C 2157.06,1275.0385 2156.9436,1275.2162 2156.2665,1275.1357 L 2156.2665,1276.8371 L 2154.1221,1278.1663 L 2155.2564,1281.445 L 2158.0211,1286.5847 L 2161.3707,1289.0481 L 2164.0646,1290.0583 L 2165.3229,1295.8182 L 2167.0065,1295.446 L 2165.571,1288.8 L 2161.9733,1288.1443 L 2158.9073,1286.2302 L 2156.5324,1281.1969 L 2164.7735,1279.6019 L 2164.7735,1278.1841 C 2164.7735,1277.4058 2165.0605,1276.2069 2165.4115,1275.5256 C 2165.7624,1274.8443 2166.5608,1273.7289 2167.1838,1273.0445 L 2168.318,1271.8039 L 2167.5028,1265.2287 L 2164.3481,1261.2411 L 2163.5683,1256.6154 L 2158.6414,1254.2229 L 2154.3348,1246.354 L 2146.4481,1245.7868 L 2145.4202,1244.4399 C 2144.851,1243.6997 2143.9512,1241.8169 2143.4353,1240.2573 C 2142.9192,1238.6977 2142.2555,1237.1027 2141.9465,1236.7128 L 2141.3794,1236.0039 L 2138.2425,1236.0039 L 2137.6222,1233.5936 L 2139.4122,1230.8465 L 2143.3644,1229.1983 L 2148.3267,1229.1983 L 2147.033,1222.1092 L 2146.0405,1221.418 C 2145.4939,1221.0347 2144.1364,1219.3225 2143.0099,1217.6253 L 2140.9541,1214.5416 L 2140.9541,1210.6957 L 2137.2855,1208.693 L 2135.5486,1205.6093 L 2135.4778,1197.4746 L 2129.5229,1191.3779 L 2130.09,1186.5041 L 2132.0572,1186.4332 L 2135.4778,1186.575 L 2134.9638,1179.61 L 2132.6421,1180.1062 L 2132.4294,1178.2276 z \"},\"la4\":{\"name\":\"LA-4\",\"path\":\"M 1533.0807,1102.4627 L 1466.0709,1106.8757 L 1469.7927,1168.8346 L 1475.466,1174.9484 L 1477.3071,1175.3211 L 1479.682,1180.1417 L 1482.5708,1182.871 L 1481.9328,1184.5546 L 1483.581,1187.0713 L 1483.3683,1188.1524 C 1483.2575,1188.7416 1483.124,1189.3433 1483.0671,1189.4993 C 1483.0101,1189.6553 1483.0061,1190.5133 1483.0671,1191.4134 L 1483.1911,1193.0616 L 1481.986,1193.8059 L 1484.2013,1197.4391 L 1486.9129,1197.4391 L 1488.3307,1199.1405 L 1487.7281,1201.4267 L 1488.7738,1202.1534 C 1489.3479,1202.5554 1489.8976,1203.2324 1489.9967,1203.6598 C 1490.0958,1204.0871 1490.6551,1204.9304 1491.2372,1205.5384 L 1492.2829,1206.655 L 1491.6803,1211.2097 L 1492.4424,1211.9895 C 1492.8645,1212.4115 1493.5955,1212.7516 1494.0552,1212.7516 L 1494.8881,1212.7516 L 1495.5085,1214.5416 C 1495.8508,1215.5239 1496.1287,1216.9275 1496.1287,1217.6608 L 1496.1287,1218.99 L 1496.6604,1218.99 C 1496.9539,1218.99 1497.3538,1218.7348 1497.5466,1218.4229 L 1497.901,1217.8557 L 1500.0986,1217.8557 L 1500.0986,1220.6914 L 1499.5209,1220.7379 L 1499.6267,1224.1442 L 1501.3372,1228.8368 L 1498.7163,1230.8997 L 1501.2329,1232.672 L 1501.2152,1233.629 C 1501.2053,1234.1571 1500.8543,1235.0441 1500.4354,1235.5962 L 1499.6733,1236.5887 L 1500.2404,1241.7106 L 1498.5213,1243.6601 L 1497.2098,1250.0225 L 1494.4273,1252.4506 L 1494.4273,1256.2964 L 1492.1588,1256.8813 L 1492.1588,1259.8233 L 1493.2931,1259.8233 L 1493.2931,1261.2233 C 1493.2931,1261.9885 1493.6067,1263.2835 1493.9843,1264.1122 L 1494.6578,1265.6186 L 1492.4424,1267.3377 L 1504.9192,1266.6288 L 1504.5293,1261.2304 L 1510.5905,1261.2411 L 1510.945,1266.2035 C 1515.2125,1265.5462 1519.0465,1265.4092 1522.6952,1265.4946 L 1524.3966,1263.7932 L 1527.2322,1263.7932 L 1527.6044,1262.7298 L 1542.6333,1261.436 L 1542.6333,1258.6536 L 1544.5013,1258.0687 C 1543.3158,1256.8171 1544.033,1255.6925 1544.6567,1254.5616 L 1542.6105,1254.3535 L 1543.6612,1251.5999 L 1544.441,1245.645 L 1541.8712,1245.645 L 1538.9115,1249.1896 C 1535.9925,1247.8048 1534.405,1245.5586 1533.5947,1242.8094 L 1530.6613,1242.2969 L 1530.1565,1234.8696 L 1538.2558,1234.8696 L 1536.3594,1214.7365 L 1535.3469,1210.2702 L 1533.3138,1209.617 L 1533.3549,1207.9439 C 1531.6118,1207.4117 1529.8687,1207.4807 1528.1256,1207.5486 C 1529.9474,1204.7943 1530.4901,1205.4123 1531.42,1205.0094 L 1530.7642,1203.308 L 1531.9598,1203.2751 C 1534.3506,1201.3191 1537.6638,1197.5182 1538.8686,1197.3411 L 1539.4855,1195.229 L 1541.3775,1195.7811 L 1541.8633,1198.7735 L 1542.6612,1198.957 L 1542.651,1201.7989 L 1546.6032,1201.9407 L 1567.6528,1195.0113 L 1567.5869,1194.4794 L 1564.9433,1194.783 L 1564.4405,1192.1341 L 1562.8385,1192.1044 L 1562.0981,1188.9219 C 1558.4182,1188.0567 1558.5418,1187.3921 1558.123,1186.6105 L 1559.3104,1182.2861 L 1557.7331,1181.4709 L 1559.4877,1177.7668 L 1557.3609,1176.4376 L 1544.9727,1177.182 L 1545.6285,1182.6938 L 1526.1334,1184.4306 L 1526.9841,1175.2502 L 1529.3058,1174.754 C 1529.902,1167.7448 1529.2298,1159.944 1526.86,1158.6439 L 1526.1866,1156.0387 L 1532.425,1156.0387 C 1532.6921,1153.6226 1533.0591,1151.5996 1534.339,1150.775 C 1533.9815,1145.696 1533.6479,1139.7282 1532.8681,1137.3235 L 1527.9588,1137.3235 L 1527.2854,1132.5029 L 1527.693,1122.8617 C 1528.6887,1121.4007 1529.3482,1119.8666 1529.0222,1118.112 L 1534.0555,1117.3499 L 1533.4529,1103.5793 L 1533.0807,1102.4627 z \"},\"fl2\":{\"name\":\"FL-2\",\"path\":\"M 2064.9949,1266.3466 L 2064.9588,1263.9703 L 2063.8246,1262.9438 C 2063.2007,1262.3793 2062.6903,1261.6136 2062.6903,1261.2424 C 2062.6903,1260.8713 2062.2236,1260.1452 2061.6532,1259.629 L 2060.616,1258.6904 L 2056.9834,1258.6904 L 2056.3305,1256.989 L 2055.7311,1256.989 C 2055.4014,1256.989 2054.1748,1256.5668 2053.0053,1256.0508 L 2050.8791,1255.1128 L 2050.2947,1252.7899 C 2049.9733,1251.5123 2049.5478,1249.7028 2049.3492,1248.7688 C 2049.1506,1247.8348 2048.7221,1246.7502 2048.3971,1246.3585 L 2047.8061,1245.6464 L 2044.5422,1245.6464 L 2044.5422,1244.5655 L 2040.6986,1243.5042 L 2039.5572,1242.3628 C 2038.9294,1241.735 2038.2465,1240.6881 2038.0396,1240.0363 L 2037.6635,1238.8512 L 2032.3069,1233.4531 L 2028.358,1231.9753 C 2026.1861,1231.1625 2023.2607,1230.1819 2021.857,1229.7962 C 2020.4534,1229.4104 2017.6544,1228.2252 2015.6372,1227.1623 L 2011.9694,1225.2298 L 2008.8131,1225.2298 L 2008.8131,1226.364 L 2007.805,1226.364 C 2007.2506,1226.364 2006.2842,1226.7231 2005.6576,1227.162 L 2004.5183,1227.96 L 2000.0226,1227.8596 L 1999.2987,1226.7859 L 1998.0376,1227.5652 L 1998.0376,1230.4104 L 1995.8119,1229.704 L 1993.3662,1231.0128 L 1993.9717,1235.5263 L 1995.707,1236.8559 L 1996.4358,1239.8819 L 1994.3513,1240.9736 L 1992.5012,1240.6925 C 1991.4836,1240.5379 1990.5148,1240.1909 1990.3482,1239.9214 L 1990.0453,1239.4312 L 1989.079,1239.9009 C 1988.5476,1240.1593 1987.4269,1240.7283 1986.5885,1241.1654 C 1985.7502,1241.6024 1983.6238,1243.2361 1981.8633,1244.7957 C 1980.1028,1246.3553 1977.8941,1248.3372 1976.955,1249.1999 C 1976.0159,1250.0625 1974.0589,1251.5655 1972.6061,1252.5397 C 1971.1533,1253.5141 1969.6457,1254.7073 1969.2558,1255.1914 L 1968.5469,1256.0715 L 1968.5469,1255.3587 C 1968.5469,1254.9667 1968.7975,1254.1778 1969.1037,1253.6056 L 1969.6604,1252.5653 L 1967.836,1251.8653 L 1967.0573,1252.5116 C 1966.6289,1252.8671 1966.2784,1253.4527 1966.2784,1253.813 L 1966.2784,1254.4679 L 1962.759,1257.5561 L 1958.2388,1257.5561 L 1949.2096,1261.526 L 1946.996,1261.526 L 1946.9822,1259.6828 C 1946.9746,1258.6691 1946.7302,1256.8093 1946.4393,1255.55 L 1945.9103,1253.2603 L 1943.5995,1250.7573 C 1942.3285,1249.3806 1940.5949,1247.7967 1939.7471,1247.2376 L 1938.2056,1246.221 L 1934.2154,1246.2135 L 1932.1129,1244.7849 C 1930.9566,1243.9991 1929.7634,1242.8945 1929.4614,1242.3303 L 1928.9124,1241.3043 L 1922.8931,1239.9571 L 1921.1917,1238.8018 C 1920.2559,1238.1664 1917.8315,1236.8 1915.804,1235.7653 C 1913.7765,1234.7306 1910.5226,1233.3063 1908.5731,1232.6001 L 1905.0285,1231.3162 L 1904.206,1224.638 L 1905.6943,1222.6556 L 1909.6248,1222.0902 L 1911.1806,1220.1624 L 1930.2778,1217.4136 L 1929.3386,1209.3502 L 1932.3308,1208.9803 L 1930.3439,1195.1006 L 1927.7391,1195.7543 L 1927.0251,1192.9095 L 1920.9081,1194.0021 C 1920.8174,1191.2373 1921.9447,1188.8047 1923.657,1186.5317 L 1923.125,1185.1453 L 1924.8847,1183.6849 L 1949.8317,1179.5097 L 1949.8317,1180.9937 L 1951.5611,1180.9937 C 1956.943,1189.5851 1956.3819,1193.4765 1960.7149,1195.9307 L 2027.1456,1188.65 L 2027.9398,1191.5541 C 2026.4865,1193.6317 2024.562,1195.0812 2022.4913,1196.3357 L 2021.7806,1198.5747 L 2018.8109,1198.5747 L 2016.4693,1196.3971 L 2013.3858,1196.9987 C 2014.0073,1198.1478 2014.5944,1199.3114 2015.0515,1200.5315 L 2007.1426,1201.5537 L 2006.4464,1203.7475 L 2003.2949,1203.0553 L 2002.603,1206.5145 L 1995.5643,1207.0584 L 1994.9329,1205.1574 L 2003.1631,1210.6021 L 2005.9018,1209.9147 L 2006.596,1207.7276 L 2013.9558,1206.4559 L 2015.1119,1209.7723 L 2019.7851,1211.8796 L 2020.21,1210.6048 L 2022.2409,1211.1359 L 2038.3038,1208.1943 L 2038.3038,1211.1745 L 2050.8847,1208.7476 L 2052.2124,1201.657 C 2053.356,1200.6316 2054.0238,1199.015 2054.1834,1198.0475 L 2056.6672,1196.7182 L 2062.4067,1196.4733 L 2070.9137,1199.9444 L 2073.3435,1199.8702 L 2077.5381,1221.3419 L 2079.137,1220.7284 C 2078.9434,1222.5286 2076.2579,1224.9039 2074.0329,1227.1729 L 2074.0775,1231.3782 L 2071.8499,1232.0846 L 2072.1712,1246.0415 L 2073.9744,1247.108 L 2072.2015,1250.2772 L 2072.8429,1254.4369 L 2071.1972,1256.6387 C 2070.6709,1262.3404 2070.2062,1261.1996 2064.9949,1266.3466 z \"},\"ms4\":{\"name\":\"MS-4\",\"path\":\"M 1760.4107,1128.7988 L 1726.6665,1133.1231 L 1726.3298,1139.0071 L 1722.6966,1139.9641 L 1722.8916,1144.5366 L 1721.5801,1144.5898 L 1722.9448,1148.0989 L 1724.912,1148.0989 L 1727.216,1145.1569 L 1730.3883,1145.9544 L 1731.434,1147.9394 L 1730.7428,1151.7675 L 1728.5452,1152.3346 L 1728.3679,1154.6209 C 1726.3602,1154.3118 1724.5289,1153.9439 1722.8739,1152.5473 L 1720.6045,1154.5219 L 1717.5925,1155.5247 L 1717.9824,1160.4517 L 1716.6709,1162.8797 L 1717.4153,1165.1837 L 1720.8526,1164.8275 L 1721.4029,1167.3813 L 1720.6763,1170.2524 L 1717.8584,1171.5461 L 1714.4434,1168.5259 L 1716.1328,1183.8034 L 1703.1307,1185.1395 L 1703.1307,1188.9322 L 1699.7457,1188.9322 L 1696.3075,1195.7377 L 1694.2157,1195.385 L 1693.0595,1197.0847 L 1694.6238,1197.5277 L 1694.6532,1203.6157 L 1693.4031,1203.5591 L 1691.1328,1208.2482 L 1695.758,1208.2146 C 1695.6003,1209.7666 1695.7952,1210.6721 1696.3429,1211.9009 L 1701.837,1211.5287 L 1702.5104,1214.1162 L 1702.0142,1214.7011 C 1701.7429,1215.0292 1701.5289,1215.9417 1701.5357,1216.7215 C 1701.5425,1217.5013 1701.1842,1219.543 1700.7382,1221.2585 C 1700.2921,1222.9741 1699.6709,1224.8881 1699.3558,1225.512 L 1698.7887,1226.6462 L 1698.576,1233.31 L 1699.0722,1233.948 C 1699.3475,1234.2996 1699.7313,1235.2525 1699.9229,1236.057 L 1700.2596,1237.5103 L 1704.0168,1242.26 L 1708.1817,1245.0779 L 1708.9615,1249.1896 L 1712.3289,1253.0177 L 1711.6376,1254.8254 L 1712.6124,1256.899 C 1713.1529,1258.0403 1713.9325,1259.3554 1714.3315,1259.8233 L 1715.0582,1260.674 L 1721.7574,1260.7271 L 1722.5017,1256.7395 L 1725.0184,1254.4887 C 1726.3953,1253.2513 1727.5172,1252.0407 1727.5172,1251.7948 C 1727.5172,1251.549 1726.8569,1251.0145 1726.0463,1250.5897 L 1724.5753,1249.8099 L 1726.4716,1247.9136 L 1728.4743,1247.9136 L 1730.3883,1250.0225 L 1729.6617,1251.8835 L 1730.3352,1251.8835 C 1730.7063,1251.8835 1733.4542,1250.6104 1736.4318,1249.0478 L 1741.8372,1246.1944 L 1748.0402,1244.4045 L 1751.8329,1244.8475 L 1752.3646,1242.8094 L 1753.4102,1243.1993 C 1753.985,1243.4118 1754.5835,1243.7223 1754.7394,1243.9082 C 1754.8954,1244.0941 1755.7181,1244.6987 1756.5649,1245.2374 L 1758.1067,1246.2122 L 1760.8361,1246.2122 L 1762.3071,1244.4576 L 1770.3355,1245.1665 L 1770.8671,1245.6982 C 1771.1635,1245.9844 1771.8892,1246.2122 1772.4799,1246.2122 L 1773.561,1246.2122 L 1774.1459,1243.9437 L 1775.2269,1243.9437 C 1775.8144,1243.9437 1776.2903,1243.7792 1776.2903,1243.5715 C 1771.3651,1211.9742 1765.6714,1180.4918 1760.4107,1148.9496 L 1760.4107,1128.7988 z \"},\"fl4\":{\"name\":\"FL-4\",\"path\":\"M 2112.9344,1161.9936 L 2112.2432,1164.8292 L 2109.7443,1164.7406 L 2110.3312,1167.186 L 2109.3366,1167.3635 L 2109.9038,1172.769 L 2112.8281,1176.6857 L 2113.5724,1190.6867 L 2105.3667,1192.4058 L 2103.4121,1189.57 L 2103.0501,1185.0299 L 2100.3867,1181.9494 L 2100.8222,1180.0733 L 2027.5955,1188.6209 L 2028.4394,1191.9816 C 2026.6423,1193.8788 2024.8452,1195.4995 2023.0481,1196.4455 L 2021.9579,1199.0373 L 2018.8087,1199.1405 L 2016.363,1196.8365 L 2014.2088,1197.5297 L 2015.9631,1200.9936 L 2007.6928,1201.8698 L 2006.5129,1204.3864 L 2003.8153,1203.6421 L 2003.0709,1207.0094 L 1998.8883,1207.3639 L 2003.1241,1210.0045 L 2005.3826,1209.4789 L 2006.2079,1207.1689 L 2014.3426,1205.8751 L 2015.53,1209.2779 L 2019.3679,1211.2077 L 2019.7069,1209.7407 L 2022.176,1210.4831 L 2038.6051,1207.6474 L 2038.8709,1210.3413 L 2050.4793,1208.1082 L 2051.844,1201.5685 L 2053.439,1199.3549 C 2053.3104,1198.0602 2054.3956,1196.87 2056.4668,1196.2025 L 2062.6372,1195.8086 L 2070.6301,1199.1051 L 2073.8025,1199.0519 L 2077.737,1220.4078 L 2079.7042,1220.0711 L 2079.7042,1221.5635 L 2078.5522,1223.4913 L 2082.388,1228.3178 L 2086.7933,1228.6134 L 2089.2745,1225.9905 L 2089.6821,1222.9776 L 2092.1279,1220.6914 L 2098.3663,1220.6914 L 2101.2551,1219.3799 L 2101.2551,1217.8557 L 2103.3463,1217.8557 C 2104.8279,1215.7827 2105.1508,1214.2444 2104.8625,1212.9882 L 2106.6322,1212.9883 C 2108.1984,1210.7835 2109.1023,1209.0645 2108.6277,1208.3563 L 2110.2582,1206.9917 L 2110.6127,1204.5637 L 2114.9231,1203.8959 L 2113.4206,1196.1096 L 2124.6137,1179.3087 L 2125.9247,1180.8501 L 2128.5831,1179.8222 L 2128.5832,1178.4044 L 2132.6425,1177.9791 L 2132.8907,1179.7867 L 2135.0348,1179.2549 L 2135.9393,1186.7525 L 2130.3741,1186.7882 L 2130.02,1191.0938 L 2135.9748,1197.2615 L 2135.8683,1200.9656 L 2138.1716,1199.7431 L 2143.6479,1200.7887 L 2147.7596,1199.6544 L 2146.0071,1190.9918 L 2148.3267,1190.3146 C 2148.3267,1190.1392 2147.9593,1188.7993 2147.5115,1187.3371 C 2147.0636,1185.8749 2146.1431,1182.8285 2145.4734,1180.567 L 2144.2682,1176.4553 L 2142.3719,1176.4553 L 2142.2655,1174.8957 C 2142.2031,1174.038 2141.8363,1171.2544 2141.4681,1168.7105 L 2140.8123,1164.0849 L 2137.2677,1163.5532 L 2135.2119,1164.6165 L 2123.0718,1163.8722 C 2122.5138,1162.8351 2119.796,1162.77 2116.5321,1162.9506 C 2115.9622,1162.282 2114.7322,1161.98 2112.9344,1161.9936 z \"},\"nm2\":{\"name\":\"NM-2\",\"path\":\"M 728.30737,954.70803 L 727.59846,956.9411 L 728.20104,959.08552 C 728.52884,960.26589 728.80191,962.04962 728.80361,963.05542 L 728.80361,964.8809 L 725.54262,966.56453 L 723.41589,964.95179 L 718.63074,964.91634 L 713.47344,966.67087 L 713.33421,962.11762 L 711.27582,960.29067 L 710.56691,960.71602 C 710.17655,960.95727 709.25117,961.2219 708.51106,961.3009 L 707.16413,961.44268 L 705.26777,958.1108 L 702.14856,958.1108 C 694.69638,1038.0385 686.78487,1117.9327 679.1444,1197.8467 L 722.31707,1201.409 L 724.92235,1173.9033 L 812.45509,1180.4429 L 811.32084,1179.929 C 810.69699,1179.6491 809.64764,1178.6952 808.99918,1177.8023 C 808.35061,1176.9092 807.66535,1175.5663 807.47502,1174.8249 L 807.13826,1173.4779 L 809.17641,1172.0955 L 809.38908,1166.8673 C 872.15826,1170.8323 901.51284,1172.632 995.17691,1176.2427 L 999.04041,1079.6358 L 976.07171,1078.732 L 976.07171,1073.2379 L 965.26081,1072.5113 L 966.02291,1062.4625 L 959.44776,1062.4625 L 960.12123,1046.0157 L 954.50314,1046.0157 L 956.34631,1013.1223 L 946.61648,1013.1223 L 948.93819,974.75245 L 890.66571,971.89912 L 888.53898,1009.4359 L 887.2275,1010.3221 L 886.30591,1031.4831 L 829.39806,1027.7967 L 830.16017,1016.5251 L 828.93727,1016.5251 C 828.26148,1016.5251 827.46132,1016.3045 827.16499,1016.0288 C 826.86867,1015.7531 823.75757,1014.3235 820.25311,1012.8564 L 813.89067,1010.1803 L 814.52869,998.09337 C 815.36469,994.77595 817.77346,994.15472 820.18222,992.63476 L 829.02591,993.41456 L 829.80571,989.30288 L 832.53502,989.30288 L 835.42381,985.5102 L 835.42381,983.31258 L 832.3046,981.52255 L 830.99311,981.98334 L 824.06354,980.19337 L 821.72413,981.45166 L 820.57212,984.76585 L 818.21502,984.76585 L 816.42499,983.15305 L 806.91544,981.59452 L 806.78381,966.35186 L 794.0943,965.37714 L 792.67648,959.81218 L 773.55511,958.33362 L 773.03965,955.27516 L 768.33293,955.10332 L 768.21905,957.82723 C 754.55551,956.94178 736.55501,954.63929 728.30737,954.70803 z \"},\"ms2\":{\"name\":\"MS-2\",\"path\":\"M 1623.4643,1181.8634 L 1622.4608,1180.3123 L 1619.3643,1180.9316 L 1616.9271,1180.2943 L 1616.9271,1178.7252 L 1615.3487,1178.7252 L 1614.6173,1175.8109 L 1613.7251,1174.1936 L 1611.157,1172.4284 L 1612.1473,1168.2411 L 1614.0875,1167.8674 L 1613.4728,1169.4695 L 1615.2113,1170.9123 L 1617.0654,1170.2008 L 1616.421,1166.9789 L 1620.2778,1163.2408 L 1619.0906,1161.0225 L 1619.7352,1160.3744 C 1620.0898,1160.018 1621.181,1159.4542 1622.1602,1159.1215 L 1623.9404,1158.5165 L 1625.0475,1156.7614 L 1624.3354,1154.9058 L 1623.0416,1154.8971 C 1622.33,1154.8924 1621.3649,1154.6335 1620.897,1154.322 L 1620.0464,1153.7555 L 1624.918,1154.4918 L 1624.5874,1153.488 L 1626.145,1151.4495 L 1627.7026,1149.411 L 1627.7026,1147.1481 L 1624.7819,1145.8174 L 1623.6865,1146.4943 L 1624.3316,1148.5268 L 1623.0397,1148.8729 C 1622.3291,1149.0633 1621.1735,1149.2225 1620.4717,1149.2268 L 1619.1957,1149.2345 L 1619.1957,1145.7961 L 1620.1881,1145.489 C 1620.734,1145.32 1621.6238,1144.9453 1622.1654,1144.6561 C 1622.707,1144.367 1623.5152,1144.1304 1623.9613,1144.1304 L 1624.7724,1144.1304 L 1625.2923,1142.7126 L 1626.0437,1143.4215 C 1626.4571,1143.8114 1627.071,1144.1304 1627.4081,1144.1304 L 1628.021,1144.1304 L 1629.2703,1140.8208 L 1628.0429,1139.5933 L 1630.3624,1139.5933 L 1632.339,1137.4092 L 1631.9459,1135.3399 L 1626.954,1134.7727 L 1626.676,1132.8374 L 1628.2697,1131.5147 L 1628.2697,1129.3494 L 1626.496,1128.6688 L 1623.6777,1129.9529 L 1620.3299,1128.2216 L 1620.3299,1126.9129 C 1620.3299,1126.1931 1620.4914,1125.4427 1620.6888,1125.2453 L 1621.0476,1124.8864 L 1623.2479,1127.6836 L 1626.5683,1127.6836 L 1626.5683,1125.3572 L 1621.9751,1123.0207 L 1625.4341,1119.8311 L 1625.4341,1118.1813 L 1623.7471,1116.7813 L 1622.0313,1117.4397 L 1622.0313,1119.1476 L 1618.5289,1120.9587 L 1617.0423,1118.9256 L 1618.0853,1117.5997 C 1618.659,1116.8704 1619.7815,1115.7599 1620.5798,1115.1319 L 1622.0313,1113.9902 L 1622.0313,1112.3431 L 1620.5766,1111.79 C 1619.7765,1111.4858 1618.4298,1111.2369 1617.584,1111.2369 L 1616.0462,1111.2369 L 1616.1063,1106.7293 L 1620.7242,1102.4909 L 1618.2527,1096.208 L 1615.5093,1096.208 L 1615.5093,1101.2957 L 1613.4039,1101.7021 L 1612.2621,1100.5603 L 1613.5841,1098.1006 C 1614.3113,1096.7477 1615.2538,1095.2153 1615.6787,1094.6952 L 1616.4512,1093.7494 L 1616.0765,1091.1895 L 1612.7519,1089.3535 L 1612.2444,1087.8311 L 1616.2485,1088.5822 L 1618.1113,1086.7195 L 1617.3983,1081.9648 L 1619.1957,1080.4731 L 1619.1957,1077.2092 L 1616.4365,1077.2092 L 1615.6836,1079.5812 L 1614.8876,1078.0468 C 1614.4497,1077.2029 1614.0915,1076.0041 1614.0915,1075.3828 L 1614.0915,1074.2532 L 1617.4943,1069.9569 L 1617.4943,1066.922 L 1614.9422,1067.2844 L 1614.5982,1069.6956 L 1612.089,1072.0528 L 1610.5236,1071.0853 L 1614.0915,1069.2402 L 1614.0915,1066.2752 L 1613.099,1065.5218 C 1612.5532,1065.1075 1611.8037,1064.7603 1611.4336,1064.7504 L 1610.7606,1064.7324 L 1610.4052,1068.4094 L 1608.1366,1068.8341 L 1610.1216,1066.628 L 1610.1216,1063.638 L 1608.9873,1063.031 C 1608.3635,1062.6971 1607.8531,1062.2186 1607.8531,1061.9675 L 1607.8531,1061.5111 L 1610.15,1060.7531 C 1611.4133,1060.3361 1612.5858,1059.7704 1612.7555,1059.4958 L 1613.064,1058.9966 L 1612.4057,1056.3734 L 1607.0024,1054.1525 L 1609.5866,1052.7655 L 1612.5431,1055.0912 L 1615.5761,1055.0912 L 1617.6333,1053.5869 L 1616.8691,1051.1793 L 1614.7014,1050.4913 L 1612.5639,1051.6353 L 1611.2559,1050.3273 L 1611.2559,1047.9396 L 1614.2333,1048.0541 C 1615.8709,1048.1171 1617.6573,1048.0502 1618.2032,1047.9054 L 1619.1957,1047.642 L 1619.1957,1045.6547 L 1615.5948,1044.0322 L 1614.4106,1042.0943 L 1617.0001,1038.5916 L 1616.6436,1036.7599 L 1612.8364,1035.4788 L 1615.8311,1034.1143 L 1616.4814,1035.8088 L 1619.1957,1035.8088 L 1619.1957,1033.6072 L 1618.6285,1033.2567 C 1618.3166,1033.0639 1618.062,1032.7298 1618.0627,1032.5143 L 1618.064,1032.1225 L 1621.5317,1031.9983 L 1622.036,1031.4932 C 1622.3134,1031.2154 1622.7137,1029.9036 1622.9254,1028.5779 L 1623.3105,1026.1676 L 1619.9896,1026.1676 L 1618.644,1024.822 L 1620.4142,1022.866 L 1623.711,1024.7498 L 1625.7176,1023.5011 L 1626.0765,1020.4963 L 1620.5568,1020.4963 L 1619.8762,1019.8158 C 1619.5019,1019.4415 1619.1957,1018.8034 1619.1957,1018.3979 L 1619.1957,1017.6607 L 1621.4642,1019.9292 L 1623.6113,1019.9292 L 1623.9556,1019.0321 C 1624.1449,1018.5387 1624.2998,1017.5179 1624.2998,1016.7636 L 1624.2998,1015.3922 L 1627.1093,1015.3922 L 1628.9673,1012.5565 L 1627.1093,1009.7209 L 1629.8922,1009.7209 L 1630.2547,1012.273 L 1633.0903,1012.273 L 1632.7996,1008.303 L 1636.2161,1006.0345 L 1636.8707,1003.9941 L 1635.973,1002.6239 C 1635.4792,1001.8704 1635.0753,1000.9016 1635.0753,1000.4711 L 1635.0753,999.68836 L 1636.2095,998.66186 C 1636.8334,998.09729 1637.3438,997.3117 1637.3438,996.91607 C 1637.3438,996.5205 1636.7413,995.47539 1636.005,994.59368 L 1634.6663,992.99057 L 1634.1301,989.25427 L 1635.0506,989.28632 L 1635.0753,992.13988 L 1637.8286,992.13988 L 1640.2298,989.08714 L 1639.8959,986.75216 L 1635.3588,986.75216 L 1635.4155,986.04325 C 1635.4467,985.65335 1635.5105,984.39858 1635.5573,983.25485 L 1635.6424,981.17541 L 1636.4386,981.97166 L 1636.174,985.90147 L 1639.4734,985.90147 L 1640.8442,984.24976 L 1640.4239,983.56977 C 1640.1927,983.19575 1639.9028,981.97234 1639.7795,980.85107 L 1639.5554,978.81236 L 1637.9699,976.39026 L 1638.3185,976.04171 C 1638.5102,975.85002 1638.8797,975.69315 1639.1397,975.69315 L 1639.6123,975.69315 L 1639.6123,977.82277 L 1641.3881,979.29652 L 1644.6155,977.39 L 1647.2685,977.6781 L 1646.985,976.26028 L 1651.4319,976.26028 L 1651.7389,977.81988 C 1651.9078,978.67766 1652.1038,980.27271 1652.1744,981.36444 L 1652.3027,983.34939 L 1650.9925,985.75656 L 1651.9771,989.18945 L 1650.7078,990.45869 L 1653.5653,994.94065 L 1655.562,1010.5911 L 1658.7468,1012.4189 L 1659.5629,1018.951 L 1669.5237,1017.5955 C 1671.1985,1024.3951 1671.6365,1031.1946 1671.9386,1037.9942 L 1668.3616,1039.7787 L 1663.1481,1039.796 L 1661.6455,1040.7488 L 1662.4559,1048.9737 L 1694.544,1045.7787 L 1696.3006,1058.9725 L 1702.1415,1058.3675 L 1701.3624,1059.6282 L 1699.0028,1059.6282 L 1699.8673,1069.4247 L 1707.0741,1068.835 L 1709.6649,1090.1418 L 1702.4448,1090.9454 L 1703.2371,1098.4765 L 1704.9343,1100.3802 L 1704.5338,1101.6968 C 1704.3136,1102.4211 1703.5517,1103.7908 1702.8409,1104.7407 L 1701.5485,1106.468 L 1703.1903,1108.6699 C 1704.0933,1109.881 1704.8321,1111.2092 1704.8321,1111.6215 L 1704.8321,1112.3712 L 1704.3465,1112.3712 C 1704.0795,1112.3712 1702.6911,1111.4779 1701.2613,1110.3862 L 1698.6617,1108.4013 L 1695.0863,1108.4013 L 1692.0793,1110.7665 L 1690.9167,1107.9224 L 1685.8699,1111.7038 L 1684.288,1109.4454 L 1681.0127,1112.5834 L 1681.0127,1115.7739 L 1675.3892,1115.7739 L 1673.8516,1118.4678 C 1673.0058,1119.9494 1671.9347,1121.6083 1671.4712,1122.1541 C 1671.0077,1122.7 1670.4338,1123.1466 1670.1956,1123.1466 L 1667.2285,1119.0463 L 1662.0726,1119.753 L 1657.7081,1116.2456 L 1655.8757,1117.7589 L 1653.5069,1117.7589 L 1653.818,1124.3199 L 1664.847,1123.4078 L 1665.4781,1128.7304 L 1673.9236,1128.0862 L 1672.8432,1129.3027 C 1672.0449,1130.2525 1672.1801,1130.9789 1671.4127,1132.0136 C 1670.7662,1132.8354 1670.2372,1133.8563 1670.2372,1134.2821 C 1670.2372,1134.7079 1670.0444,1135.0563 1669.8085,1135.0563 C 1669.5728,1135.0563 1669.042,1135.8197 1668.6289,1136.7528 L 1667.878,1138.4493 L 1669.7092,1140.2806 L 1669.0531,1141.0712 C 1668.6922,1141.5061 1668.0454,1141.8619 1667.6157,1141.8619 L 1666.8345,1141.8619 L 1666.8345,1146.8991 L 1668.0529,1147.6521 L 1667.4461,1151.9905 L 1667.8581,1152.1721 C 1668.0847,1152.272 1669.0956,1153.4887 1670.1044,1154.8758 C 1671.1132,1156.2629 1671.9386,1157.7213 1671.9386,1158.1168 L 1671.9386,1158.8358 L 1674.3202,1160.1104 L 1673.7921,1162.8727 L 1674.8293,1163.5138 L 1673.7888,1164.8673 L 1673.859,1166.2946 L 1676.4757,1165.6048 L 1676.4757,1166.1408 C 1676.4757,1166.4355 1676.1566,1166.9308 1675.7667,1167.2415 L 1667.3731,1171.9197 L 1663.4986,1171.9197 L 1662.7408,1173.1459 L 1659.9452,1172.4442 L 1643.7556,1174.2599 L 1644.2734,1179.6482 L 1623.4643,1181.8634 z \"},\"tx4\":{\"name\":\"TX-4\",\"path\":\"M 1382.4888,1129.385 C 1382.0592,1129.385 1381.4035,1129.0186 1381.0318,1128.5708 L 1380.3561,1127.7566 L 1377.0317,1127.0264 L 1377.0317,1125.8826 L 1372.6728,1126.619 L 1367.2843,1122.5059 L 1348.6753,1123.3093 L 1348.6753,1124.848 L 1337.8998,1125.2098 L 1337.8998,1122.0888 L 1335.549,1121.3426 L 1336.2948,1116.9278 L 1333.3628,1115.5919 L 1333.3628,1110.7093 L 1329.9744,1106.8501 L 1334.6029,1102.2683 L 1331.3473,1099.9982 L 1328.8657,1101.5957 L 1325.5131,1101.5957 L 1324.7866,1104.9037 L 1322.9947,1105.5914 L 1320.3517,1103.8596 L 1320.0353,1088.8353 L 1314.7813,1088.4951 L 1313.3692,1055.5157 L 1314.927,1056.035 L 1315.6379,1060.4087 L 1318.2847,1062.5519 L 1319.5932,1060.7625 L 1321.3742,1060.7625 L 1321.7367,1063.3145 L 1324.3543,1063.6856 L 1327.1244,1061.8706 L 1327.1244,1060.2768 C 1327.1244,1059.4002 1327.2923,1058.515 1327.4975,1058.3098 L 1327.8707,1057.9367 L 1329.3929,1059.2 L 1329.3929,1058.427 L 1330.601,1059.1737 L 1328.8832,1061.0719 L 1329.2798,1061.6261 C 1329.498,1061.9309 1330.2472,1062.4993 1330.9448,1062.8892 C 1331.6424,1063.2791 1332.7325,1063.5981 1333.3673,1063.5981 L 1334.5214,1063.5981 L 1335.852,1066.5186 L 1339.5756,1065.8201 L 1341.2732,1067.6865 C 1342.2068,1068.713 1342.9782,1069.88 1342.9874,1070.2797 L 1343.004,1071.0064 L 1344.7476,1071.6755 L 1346.9739,1069.6607 L 1346.9739,1066.4337 L 1347.8618,1066.4337 C 1348.3502,1066.4337 1349.2289,1066.6901 1349.8144,1067.0035 L 1350.879,1067.5732 L 1353.8066,1066.2393 L 1355.0052,1061.2822 L 1357.1822,1061.9732 L 1357.1822,1060.8943 L 1360.6652,1061.1683 L 1362.6283,1060.4935 C 1363.7079,1060.1223 1364.8814,1059.5285 1365.2361,1059.1739 L 1365.8808,1058.5291 L 1370.1336,1060.9193 L 1371.1724,1060.473 C 1371.7437,1060.2275 1372.8194,1060.0873 1373.5629,1060.1615 L 1374.9147,1060.2963 L 1374.3423,1057.3017 L 1377.4181,1057.9772 L 1378.872,1056.2254 L 1380.6287,1056.2254 L 1382.6607,1054.3865 L 1384.4044,1055.0556 L 1384.4044,1057.2179 L 1385.964,1057.5056 C 1386.8218,1057.6638 1389.3509,1057.8361 1391.5842,1057.8885 L 1395.6448,1057.9838 L 1396.3504,1056.8421 L 1398.079,1057.5054 L 1400.284,1055.1386 L 1400.284,1052.9615 L 1401.7399,1051.7533 L 1402.5715,1052.2793 C 1403.0289,1052.5686 1404.1201,1052.8092 1404.9963,1052.814 L 1406.5893,1052.8227 L 1406.0134,1053.7546 L 1407.1251,1054.7064 C 1407.7365,1055.2299 1408.4764,1055.6583 1408.7692,1055.6583 C 1409.0621,1055.6583 1409.5058,1056.0017 1409.7552,1056.4215 L 1410.2087,1057.1846 L 1413.7952,1057.8785 L 1415.2629,1059.3462 C 1416.0702,1060.1535 1416.7448,1060.9938 1416.7621,1061.2136 C 1416.7794,1061.4334 1417.5729,1062.2299 1418.5255,1062.9837 L 1420.2576,1064.3543 L 1422.0387,1064.2959 C 1423.0183,1064.2638 1424.394,1064.3537 1425.0959,1064.4957 L 1426.3719,1064.754 L 1426.3719,1066.4337 L 1428.0733,1066.4337 L 1428.0733,1067.7003 L 1430.9089,1067.1581 L 1430.9089,1068.2163 L 1432.185,1068.113 C 1432.8868,1068.0561 1433.7403,1068.0378 1434.0817,1068.0723 C 1434.4231,1068.1069 1435.4439,1068.7848 1436.3502,1069.5789 L 1437.998,1071.0225 L 1441.1172,1070.432 L 1441.1172,1071.9543 L 1445.4637,1074.8306 L 1450.7525,1074.5174 L 1452.4454,1073.1124 L 1454.305,1073.826 L 1455.7867,1072.5963 L 1458.7447,1074.5344 L 1461.3548,1073.3452 L 1462.5746,1074.0991 L 1464.8773,1114.6856 L 1431.7776,1116.7618 L 1430.6254,1115.264 L 1408.579,1116.3411 L 1408.2633,1112.526 L 1381.2076,1114.2933 L 1383.4675,1129.5034 L 1382.4888,1129.385 z \"},\"tx3\":{\"name\":\"TX-3\",\"path\":\"M 1326.6056,1125.8816 L 1326.5572,1120.8781 L 1328.8258,1120.8781 L 1328.8258,1117.4753 L 1319.8935,1117.4753 L 1319.1846,1109.5355 L 1320.3188,1109.5355 L 1320.3188,1104.4052 L 1323.0784,1106.2133 L 1325.2925,1105.0284 L 1326.0117,1102.1628 L 1329.1761,1102.1628 L 1331.3311,1100.5871 L 1333.7839,1102.4373 L 1329.3289,1106.7608 L 1332.7957,1110.7093 L 1332.7957,1115.7983 L 1335.6313,1117.0902 C 1335.5719,1118.5114 1335.4484,1119.8045 1335.0688,1121.1617 L 1333.6761,1120.951 L 1330.9261,1121.3472 L 1326.6056,1125.8816 z \"},\"ar4\":{\"name\":\"AR-4\",\"path\":\"M 1485.052,954.70803 L 1483.5988,957.04743 L 1481.4188,956.33852 L 1477.2895,958.30572 L 1475.0386,956.90565 C 1474.1718,957.85088 1473.2307,958.79606 1470.7143,959.74129 L 1468.623,957.41958 L 1468.0559,962.93139 L 1463.2885,963.28585 L 1462.9517,968.60268 L 1457.2766,968.66586 L 1458.1666,974.55753 L 1452.4598,974.55753 L 1452.4598,977.42624 L 1448.4899,979.27179 L 1448.4899,985.75832 C 1444.5531,987.66144 1442.0727,987.03998 1438.2816,988.7003 L 1440.7097,1068.5414 L 1442.5351,1068.4173 L 1442.2515,1071.0225 L 1445.672,1072.4581 L 1445.0695,1073.0607 L 1449.6242,1073.0607 L 1449.6242,1072.0328 L 1450.8116,1072.7771 L 1452.4421,1071.4125 L 1454.303,1072.1214 L 1455.898,1070.8099 L 1458.6273,1072.0505 L 1462.4378,1071.4302 L 1463.7493,1072.9898 L 1465.9205,1105.5643 C 1518.8454,1102.4524 1566.0142,1098.8511 1613.0636,1095.2496 L 1614.1801,1094.133 L 1615.3144,1092.9988 L 1614.9954,1092.2013 L 1614.6941,1091.386 L 1613.932,1091.386 C 1613.5132,1091.386 1612.615,1090.8728 1611.9293,1090.234 L 1610.671,1089.0643 L 1611.9293,1086.7249 L 1613.7194,1086.9908 C 1614.7029,1087.1409 1615.8391,1087.1511 1616.236,1087.0085 L 1616.9449,1086.7427 L 1616.2537,1081.4081 L 1618.0614,1079.9017 L 1618.026,1078.0585 L 1615.6865,1081.1777 L 1615.2081,1080.8942 C 1614.943,1080.7304 1614.3311,1079.798 1613.8434,1078.8206 L 1612.9572,1077.0306 L 1612.9572,1073.4506 L 1616.36,1070.1896 L 1616.2714,1067.8502 L 1615.9524,1068.7009 C 1615.7821,1069.1688 1614.9971,1070.2534 1614.1978,1071.1112 L 1612.7446,1072.6708 L 1611.7698,1072.6708 C 1611.2299,1072.6708 1610.3846,1072.5233 1609.8912,1072.334 L 1608.9873,1071.9796 L 1608.9873,1071.1998 C 1608.9873,1070.7653 1609.1787,1070.4034 1609.4127,1070.4023 C 1609.6466,1070.4011 1610.6563,1069.8998 1611.6635,1069.2857 L 1613.5067,1068.1692 L 1613.1877,1067.3362 C 1613.0141,1066.8839 1612.5009,1066.3737 1612.0534,1066.202 L 1611.2382,1065.9007 L 1611.9116,1068.5237 L 1608.4911,1069.9415 L 1607.3923,1069.268 L 1607.6936,1068.1338 C 1607.8566,1067.5102 1608.1781,1066.9995 1608.4202,1066.9995 C 1608.6624,1066.9995 1609.0308,1066.5578 1609.2355,1066.0247 L 1609.6077,1065.0677 L 1607.2683,1063.2954 L 1606.7897,1060.832 L 1611.8584,1058.9002 L 1611.4863,1057.6419 L 1605.4251,1054.3809 L 1609.0582,1051.5098 L 1613.5953,1054.0619 L 1616.3246,1053.3707 L 1615.722,1051.8111 L 1611.4863,1052.3782 L 1610.0507,1050.6237 L 1610.4052,1046.8664 L 1618.0614,1046.9728 L 1618.0614,1046.0157 L 1617.2816,1046.0157 C 1616.8557,1046.0157 1615.8349,1045.4925 1615.0131,1044.846 L 1613.5244,1043.6586 L 1613.5244,1041.0711 L 1615.7929,1037.8633 C 1614.68,1037.1954 1613.3907,1036.8875 1612.1065,1036.5872 L 1611.7344,1034.6732 L 1613.1522,1034.1415 C 1613.9244,1033.8478 1614.7198,1033.3383 1614.9245,1033.0072 C 1615.1292,1032.6761 1615.5204,1032.4047 1615.7929,1032.4047 C 1616.0654,1032.4047 1616.4456,1032.9151 1616.6436,1033.5389 L 1616.998,1034.6732 L 1618.0968,1034.6732 L 1617.4766,1033.5035 L 1616.8563,1032.3515 L 1617.2994,1031.0223 L 1619.1248,1030.9336 C 1620.1316,1030.883 1621.0316,1030.746 1621.1275,1030.6324 C 1621.5216,1029.5506 1621.7997,1028.4273 1622.0491,1027.3005 L 1619.2489,1027.3005 L 1617.9196,1025.8827 L 1610.5115,1026.2726 L 1609.7494,1027.0346 C 1609.3327,1027.4514 1608.9873,1028.0651 1608.9873,1028.3993 L 1608.9873,1029.0019 L 1607.41,1029.0019 L 1607.0556,1029.9057 C 1606.8662,1030.3991 1606.7188,1031.0062 1606.7188,1031.2704 C 1606.7188,1031.5345 1607.0378,1032.1081 1607.4277,1032.5287 C 1607.8176,1032.9493 1608.7049,1034.0863 1609.395,1035.0631 L 1610.6533,1036.8354 L 1609.0937,1038.1291 L 1608.3316,1036.8885 L 1606.1517,1037.5797 L 1605.4605,1035.772 L 1603.9364,1037.048 L 1602.7844,1036.3214 C 1601.1467,1037.459 1599.783,1038.0941 1598.9208,1037.8101 L 1597.9283,1037.4025 L 1599.2044,1036.534 C 1599.9062,1036.057 1600.4804,1035.4432 1600.4804,1035.1694 L 1600.4804,1034.6732 L 1598.8322,1034.6732 L 1597.1663,1036.4809 L 1594.6673,1033.9643 L 1593.1609,1027.4068 L 1590.219,1027.4423 C 1589.0423,1026.0788 1588.3157,1024.0689 1587.9327,1022.1046 L 1579.1245,1022.0191 L 1578.1852,1006.813 L 1543.2004,1008.5853 L 1543.2004,1011.2791 C 1540.5104,1011.7562 1537.6371,1012.1498 1533.5415,1011.988 L 1532.2477,1014.8237 L 1528.4551,1014.8237 L 1528.4551,1011.4209 L 1525.6194,1011.4209 L 1525.6194,1009.7195 L 1523.3155,1009.7195 L 1521.7543,1004.6154 L 1517.6796,1004.6154 L 1517.6311,1001.9585 L 1512.5755,1002.3468 L 1512.9638,993.45539 L 1492.017,995.15139 L 1491.4854,997.13634 L 1475.2868,998.37694 L 1473.8689,974.48664 L 1476.6145,972.33756 L 1482.3227,972.28902 L 1485.9913,967.18486 L 1494.8273,967.2334 L 1494.4273,960.98189 L 1492.1588,959.77674 L 1485.7191,961.30861 L 1485.0503,962.59951 L 1488.1003,958.96149 L 1487.2851,957.86268 C 1486.843,957.25812 1486.4875,956.30007 1486.4875,955.73595 L 1486.4875,954.70803 L 1485.052,954.70803 z \"},\"ga3\":{\"name\":\"GA-3\",\"path\":\"M 1946.8864,1093.2794 L 1944.3296,1090.5015 L 1939.096,1090.5581 L 1936.7877,1089.079 L 1936.7877,1086.0888 L 1934.2871,1083.6928 C 1932.9117,1082.3749 1931.46,1080.6961 1931.0609,1079.9619 C 1930.6619,1079.2277 1930.2963,1078.1493 1930.2485,1077.5655 L 1930.1616,1076.504 L 1928.2808,1075.4514 L 1928.2808,1074.4325 C 1928.2808,1073.8721 1927.8927,1072.6356 1927.4184,1071.6847 C 1926.944,1070.7338 1926.1783,1069.6426 1925.717,1069.2596 L 1924.878,1068.5634 L 1924.878,1066.2752 L 1923.2486,1065.0159 L 1905.7994,1011.1805 L 1907.4563,1010.1453 C 1909.8353,1009.8023 1911.744,1009.204 1914.9751,1007.0859 L 1925.2214,1007.5268 L 1925.9724,1002.3353 C 1930.016,1002.0515 1932.7903,1001.5116 1933.8162,1001.0123 L 1933.6815,1005.2581 L 1936.2127,1010.153 L 1932.9796,1013.8856 L 1933.0065,1015.9213 L 1936.5937,1019.9022 L 1945.0838,1016.824 L 1949.7113,1016.6354 L 1950.2075,1015.6321 L 1956.364,1014.8797 L 1961.4438,1020.6441 L 1961.4977,1021.613 L 1967.1404,1026.0883 L 1967.5334,1030.0437 L 1970.2354,1030.0976 L 1970.8565,1024.937 L 1977.3245,1021.9619 L 1977.3313,1019.6372 C 1977.8355,1019.0425 1978.4959,1018.6351 1979.3595,1018.4715 L 1980.5241,1018.4984 L 1981.1186,1013.7936 L 1984.1012,1014.4414 C 1984.3751,1015.4675 1984.7646,1016.378 1985.7495,1016.6932 L 1985.8304,1021.0253 L 1987.2993,1022.1708 L 1992.3687,1022.1438 L 1994.8217,1025.4616 C 1993.8007,1026.2067 1992.9374,1027.4261 1991.4927,1031.349 L 1991.3767,1041.2612 L 1993.3051,1044.383 L 1997.5,1043.7053 L 2001.6291,1051.4629 C 2001.8627,1052.8892 2001.4672,1053.1933 2004.221,1059.115 L 2000.4273,1059.2767 L 2001.8601,1064.1263 L 1998.2811,1065.7699 C 1998.2273,1067.0604 1996.2774,1068.9127 1993.4887,1071.0135 L 1992.3627,1068.5429 C 1985.8464,1066.2652 1980.3662,1062.8996 1975.8829,1058.4873 L 1969.1982,1058.007 L 1966.1255,1060.3097 L 1957.4331,1060.5003 L 1957.4331,1063.0134 L 1962.6976,1070.611 L 1963.4857,1085.9997 C 1961.4659,1086.9524 1958.6457,1090.4208 1953.7671,1093.3175 L 1946.8864,1093.2794 z \"},\"sc2\":{\"name\":\"SC-2\",\"path\":\"M 2151.7295,1074.9343 L 2150.8788,1076.0089 L 2145.924,1073.6174 L 2143.8976,1074.8829 C 2142.3521,1074.8558 2141.0982,1074.4955 2140.3589,1073.5472 L 2139.6864,1069.3418 L 2137.112,1066.9232 L 2138.35,1063.6433 L 2136.4354,1059.6282 L 2134.9992,1059.5802 C 2132.949,1057.2685 2132.4323,1055.4681 2132.4471,1053.8448 L 2127.9602,1050.6853 L 2126.6755,1048.1726 L 2123.7449,1048.7328 L 2119.3131,1046.4228 L 2120.0237,1042.4711 L 2117.7018,1041.4801 L 2116.2816,1032.5791 L 2114.2221,1032.5204 C 2113.8793,1030.2577 2112.4259,1028.9946 2110.9555,1027.7468 L 2111.651,1023.5658 C 2108.5049,1021.5709 2105.532,1021.8257 2103.7704,1019.5279 L 2097.1876,1018.1756 L 2094.368,1015.5803 L 2105.2082,1000.1106 L 2102.2746,999.05789 L 2098.7107,999.7292 L 2094.5799,997.69769 L 2093.3153,994.92216 C 2093.1984,991.96158 2093.5667,988.71 2094.6029,985.05764 L 2097.1781,981.648 L 2098.9282,974.43095 L 2097.3477,971.87303 L 2095.7672,970.87256 L 2098.6008,957.41374 L 2103.168,958.02834 L 2099.5314,954.27468 L 2100.6599,951.30662 L 2102.1976,951.30662 L 2104.0551,946.76959 L 2105.6532,946.76959 C 2107.3479,949.47252 2109.8214,947.07062 2109.8289,949.0381 L 2112.0305,949.0381 L 2112.0305,946.84603 C 2117.4639,944.88139 2122.0754,942.18129 2127.8116,940.43294 L 2126.7133,945.32125 L 2136.1993,951.30089 L 2137.0034,953.64199 L 2128.1561,956.9779 C 2127.8056,956.9779 2127.0569,957.48832 2126.4923,958.11216 L 2125.4658,959.24642 L 2123.6726,959.28969 L 2121.9002,957.60265 L 2121.9676,955.71116 C 2122.6821,955.80502 2123.5286,954.19336 2124.4723,952.33896 L 2122.3763,950.20015 L 2117.9242,951.13943 L 2116.6055,954.44528 L 2118.5004,958.59274 L 2120.0599,958.63602 C 2123.9319,963.82763 2120.403,961.27419 2124.9984,966.79689 L 2130.4035,968.86339 C 2131.4797,967.95247 2132.5355,968.68157 2134.4321,969.69055 L 2137.3495,969.98324 L 2133.2022,979.2246 L 2135.3009,983.38954 L 2134.241,986.13439 L 2132.4847,986.02391 L 2131.8582,987.99786 L 2128.8278,989.37859 L 2119.6867,990.42023 L 2118.1947,992.42345 C 2120.3327,1006.7324 2121.1729,1007.5436 2120.9315,1011.5129 L 2126.6425,1016.4493 L 2130.2525,1018.0068 L 2138.9627,1026.6214 L 2141.3084,1027.3942 C 2143.6703,1030.502 2145.9458,1033.6098 2146.7936,1035.5496 L 2151.9891,1036.7938 L 2153.4252,1035.6746 C 2155.9616,1037.2895 2157.0704,1038.7746 2158.5686,1040.6492 L 2161.1489,1040.9025 C 2165.1961,1042.3671 2163.2299,1042.6636 2167.5798,1045.1664 L 2167.6091,1046.9756 L 2168.6016,1047.828 C 2169.1474,1048.2968 2170.0407,1048.8387 2170.5865,1049.0323 L 2171.579,1049.3843 L 2171.579,1050.7353 C 2171.579,1051.4783 2171.2989,1052.89 2170.9564,1053.8723 C 2170.614,1054.8546 2170.1674,1055.6624 2169.9639,1055.6674 C 2169.7605,1055.6724 2168.73,1056.438 2167.674,1057.3688 C 2166.6181,1058.2995 2165.523,1059.0611 2165.2408,1059.0611 C 2164.9585,1059.0611 2163.9722,1059.6195 2163.0491,1060.302 L 2161.3707,1061.5429 L 2161.3707,1062.5405 C 2161.3707,1063.0892 2160.7427,1064.7193 2159.9751,1066.1629 L 2158.5795,1068.7876 L 2157.0086,1070.021 C 2156.1447,1070.6993 2155.251,1071.1937 2155.0227,1071.1196 C 2154.7943,1071.0455 2154.1513,1071.6317 2153.5938,1072.4222 C 2153.0363,1073.2128 2152.1974,1074.3432 2151.7295,1074.9343 z \"},\"ok2\":{\"name\":\"OK-2\",\"path\":\"M 1344.1382,1070.5425 L 1344.091,1068.9858 L 1340.2401,1064.6265 L 1336.7808,1065.3863 L 1335.4493,1062.4638 C 1333.553,1063.0271 1331.8955,1062.5559 1330.4331,1061.2393 L 1332.0903,1059.3446 L 1331.8232,1053.9414 L 1329.96,1051.1213 L 1332.2285,1051.1213 L 1332.2285,1049.0796 L 1333.5066,1047.8015 C 1331.2449,1043.841 1329.5938,1042.4759 1327.8912,1040.8921 L 1313.5133,1041.3833 L 1313.5133,1031.8389 L 1315.7818,1031.8389 L 1315.7818,1021.2315 C 1322.2329,1020.8187 1328.4684,1020.6215 1334.6319,1020.4963 L 1333.8304,1009.8053 L 1339.0341,1009.0249 L 1339.0341,993.90819 L 1337.3495,995.02441 L 1335.2133,993.88119 L 1334.4971,994.59742 L 1333.7906,982.65664 L 1336.482,981.98244 L 1335.5295,960.38067 L 1333.7714,960.38067 L 1332.331,962.35054 L 1330.1227,960.35203 L 1328.6692,961.72364 L 1330.6033,964.2405 L 1326.5572,964.12577 L 1326.5572,949.60523 C 1333.5518,949.63098 1340.5464,949.41944 1347.541,948.86705 L 1347.541,935.54123 L 1373.9125,934.57632 L 1374.4796,938.51628 L 1377.2845,939.91107 C 1378.4684,938.55836 1380.6891,937.60439 1383.7529,936.97471 L 1385.3122,937.57303 L 1388.0907,936.03435 L 1392.7136,935.99414 C 1393.4467,935.10658 1394.3946,934.35349 1395.1256,933.52118 L 1395.234,931.82926 C 1393.8577,931.76915 1393.0729,931.1174 1392.4125,930.34146 L 1392.8934,925.87316 C 1395.0363,923.98338 1395.4499,921.56145 1395.747,919.10369 L 1378.4796,919.26384 L 1376.9698,916.14464 C 1375.7932,916.3648 1374.7925,915.88086 1374.0493,914.3668 L 1369.8381,914.96416 L 1367.155,911.33504 L 1367.1991,901.68285 L 1368.8083,893.99786 L 1373.7374,890.92193 L 1371.0769,887.80782 L 1364.5765,887.7882 L 1363.3325,866.80444 L 1364.5549,866.80444 L 1364.5549,863.40167 C 1383.1595,862.37743 1401.7563,861.35059 1420.7836,860.46729 L 1422.762,892.06963 L 1435.9887,960.09711 L 1439.6139,1069.2604 L 1438.9167,1069.9575 L 1435.2006,1066.4844 L 1432.0432,1066.8521 L 1427.1392,1064.0989 L 1420.8417,1063.4328 L 1417.3858,1060.0916 L 1415.0546,1056.9305 L 1411.0994,1056.2254 L 1410.1669,1054.8742 L 1406.6309,1052.1671 L 1401.0863,1050.8005 C 1400.0337,1051.7783 1398.9186,1052.4051 1399.1497,1054.524 L 1398.0155,1056.0682 L 1395.1798,1055.526 L 1395.1798,1056.8641 L 1385.6426,1056.1499 L 1384.9499,1053.3898 L 1381.7076,1053.3898 L 1380.2956,1055.0912 L 1378.3049,1055.0912 L 1377.0533,1056.5993 L 1373.6289,1056.0967 L 1374.1177,1059.5073 L 1369.9426,1059.9382 L 1365.7408,1057.6604 C 1363.255,1059.6552 1360.4476,1060.8866 1356.81,1060.146 L 1356.694,1061.2498 L 1354.4614,1060.5209 L 1353.3748,1065.3353 L 1350.7375,1066.4014 C 1349.1994,1065.5759 1347.6613,1065.5574 1346.1232,1065.583 L 1345.7741,1069.1849 L 1344.1382,1070.5425 z \"},\"ok4\":{\"name\":\"OK-4\",\"path\":\"M 1293.0612,960.30842 L 1291.8029,960.75146 C 1291.1115,960.99505 1289.5237,961.2042 1288.2761,961.21226 L 1286.0075,961.23001 L 1286.2014,967.48498 L 1273.2472,967.75199 L 1273.2472,961.93892 L 1271.4749,962.29337 C 1270.5001,962.48835 1268.9688,962.64783 1268.0721,962.64783 L 1266.4416,962.64783 L 1266.4416,970.58763 L 1264.7934,970.58763 L 1263.6414,968.60268 L 1263.606,970.0205 L 1262.7907,970.0205 C 1262.3451,970.0205 1261.5796,969.62453 1261.0893,969.13436 L 1260.2032,968.24822 L 1260.2032,969.13436 C 1260.2032,969.62453 1260.0677,970.0205 1259.9019,970.0205 C 1259.7359,970.0205 1258.6823,969.63763 1257.5625,969.16981 C 1256.4427,968.70193 1254.9301,968.31912 1254.1952,968.31912 L 1252.8483,968.31912 L 1253.5926,1001.1948 L 1216.5343,1001.2126 L 1216.5343,1017.9429 L 1207.5666,1017.5707 L 1206.9994,1015.3908 L 1202.8523,1015.3908 L 1203.5967,1016.5959 L 1201.6295,1018.7758 L 1198.9533,1018.1024 L 1198.9533,1021.0621 L 1197.9077,1021.0621 L 1195.5511,1028.2 L 1196.3481,1029.2855 C 1196.8591,1030.0653 1197.1183,1030.7033 1196.9329,1030.7033 L 1198.4216,1032.5287 L 1198.014,1033.7338 C 1197.7907,1034.4028 1197.6485,1035.3395 1197.695,1035.8074 C 1197.7415,1036.2753 1197.8914,1037.2961 1198.0317,1038.0759 C 1198.1721,1038.8557 1198.3069,1039.8447 1198.333,1040.2736 L 1198.3862,1041.0534 L 1206.111,1041.5691 L 1208.0451,1040.2736 L 1209.3034,1040.6635 C 1210.0024,1040.8753 1211.0898,1041.4649 1211.7137,1041.975 C 1212.3375,1042.485 1213.4168,1043.2205 1214.1063,1043.6055 L 1215.3469,1044.2966 L 1217.0128,1043.6586 L 1220.0966,1045.679 L 1223.5703,1045.4132 L 1225.4134,1043.7472 L 1228.9225,1043.7472 L 1234.4875,1050.092 L 1235.3027,1049.2944 C 1235.7459,1048.856 1236.5468,1048.3314 1237.0927,1048.1247 L 1238.0852,1047.7526 L 1238.0852,1045.6258 L 1240.2119,1043.694 L 1241.7184,1044.0662 C 1242.5377,1044.2719 1243.3368,1044.6749 1243.5083,1044.9524 L 1244.6583,1045.6979 L 1250.4658,1046.5646 L 1252.9412,1043.6641 L 1253.9293,1043.7472 L 1255.1699,1046.0512 L 1253.4863,1049.4185 L 1255.0305,1053.3137 L 1262.4717,1053.5151 L 1261.3198,1060.7611 L 1262.135,1060.7611 C 1262.5835,1060.7611 1263.6941,1061.1888 1264.6162,1061.7181 L 1266.2998,1062.6928 L 1269.3304,1060.6902 L 1269.7026,1059.7332 C 1269.9023,1059.2055 1270.3302,1058.503 1270.6596,1058.1736 C 1270.989,1057.8442 1271.6822,1057.4129 1272.2015,1057.2165 L 1273.1586,1056.8621 L 1274.6827,1053.672 L 1276.9335,1053.3707 L 1280.6198,1055.6392 L 1280.6198,1059.0597 L 1281.0097,1059.0597 C 1281.2215,1059.0597 1282.2223,1058.7552 1283.2428,1058.3862 L 1285.1037,1057.7128 L 1287.9925,1059.042 L 1287.9925,1063.5967 L 1291.8561,1063.5967 L 1293.0967,1060.0522 L 1296.9602,1060.6725 L 1297.6337,1057.9963 L 1300.044,1057.2342 L 1302.0644,1059.3433 L 1302.8087,1062.9587 L 1300.5225,1064.1639 L 1301.4087,1066.2906 C 1301.8923,1067.4583 1302.5509,1068.7406 1302.8796,1069.1439 L 1303.4822,1069.8883 L 1305.2899,1069.5516 L 1305.6444,1064.1107 L 1307.2749,1063.4726 L 1307.2749,1061.8954 L 1308.9586,1061.8954 L 1310.7485,1059.1483 L 1310.0042,1055.2138 L 1311.4574,1054.3277 L 1311.8828,1055.6037 L 1314.7716,1054.2923 L 1316.3489,1056.4367 L 1316.3489,1057.5001 C 1316.3489,1058.0848 1316.6125,1059.062 1316.9338,1059.6623 L 1317.5186,1060.7433 L 1319.5745,1059.4673 L 1322.5873,1060.2117 L 1322.5873,1062.4625 L 1323.1899,1062.4625 C 1323.5224,1062.4625 1324.2588,1062.2137 1324.8204,1061.913 L 1325.8306,1061.3637 L 1326.575,1056.7912 L 1328.7549,1056.7912 L 1329.1093,1057.3583 C 1329.3021,1057.6702 1329.8427,1057.9254 1330.3145,1057.9254 L 1331.6815,1058.9226 L 1331.5545,1054.3173 L 1329.4588,1051.411 L 1329.9246,1050.5528 L 1331.7855,1050.5528 L 1331.6876,1048.9284 L 1332.9198,1047.8944 L 1331.5196,1045.679 C 1330.7468,1044.4624 1329.6034,1043.0059 1328.9853,1042.4534 L 1327.851,1041.461 L 1312.9462,1041.975 L 1312.9462,1031.2704 L 1315.2147,1031.2704 L 1315.2147,1020.6722 C 1321.7378,1020.2579 1326.8068,1019.9682 1334.0363,1019.9278 L 1333.2388,1009.2942 L 1338.467,1008.5144 L 1338.467,994.90327 L 1337.3504,995.59443 L 1335.0465,994.35384 L 1333.0792,997.80981 L 1331.6437,997.80981 L 1330.6646,994.77255 L 1326.9434,996.06016 L 1324.5712,993.76839 L 1322.8521,994.38265 L 1323.9875,995.52354 C 1324.4689,996.0554 1324.8559,996.63012 1324.8559,996.81733 C 1324.8559,997.00443 1324.4598,997.5677 1323.9697,998.05793 C 1323.4796,998.5481 1322.8305,998.94407 1322.5342,998.94407 L 1322.0025,998.94407 L 1320.7265,996.16156 L 1318.3339,995.82486 L 1318.6529,993.92849 L 1317.5186,993.21958 L 1314.4703,995.22228 L 1312.8044,992.70565 L 1310.6776,992.70565 L 1310.6776,994.38928 L 1307.5335,996.12555 L 1301.2137,994.61795 C 1300.8183,984.74345 1300.8383,976.94628 1299.7782,967.238 L 1294.6269,967.15055 L 1293.0612,960.30842 z \"},\"ca53\":{\"name\":\"CA-53\",\"path\":\"M 269.37254,1064.7373 L 268.79611,1065.583 L 269.46464,1059.9118 L 267.44441,1055.9419 L 264.46523,1055.9757 L 264.60877,1045.5453 L 265.65501,1045.7335 L 266.934,1041.3592 L 268.46524,1043.3667 C 270.69683,1045.5582 269.78506,1045.9256 269.78506,1046.0826 L 266.06852,1046.3007 L 266.68352,1049.556 L 276.51847,1052.5195 L 276.93514,1053.0964 C 277.16432,1053.4137 277.35572,1053.812 277.36049,1053.9814 C 277.36525,1054.1509 276.53974,1054.5337 275.526,1054.8321 L 273.68283,1055.3747 L 273.33552,1057.8112 L 271.27866,1058.3491 L 270.61381,1061.1203 C 270.24818,1062.6445 269.68962,1064.2721 269.37254,1064.7373 z \"},\"az2\":{\"name\":\"AZ-2\",\"path\":\"M 468.20797,817.16157 L 461.18975,866.14731 C 460.17306,867.43923 459.11474,868.69632 457.99966,869.90453 C 457.37581,870.56598 456.85964,871.36126 456.84768,871.65912 L 454.66777,876.44427 L 448.89015,876.44427 L 446.30263,873.21872 L 445.80639,869.70961 L 443.44926,867.67147 L 438.27421,867.19298 L 436.67916,865.66882 C 435.00092,865.68572 433.32403,865.62986 431.64589,865.65107 C 431.31522,865.65941 430.49641,866.57061 429.82045,866.62585 L 425.51381,867.51199 L 425.95688,872.08446 L 424.75174,873.51998 L 425.37203,875.98347 C 425.71543,877.33296 426.28785,878.98472 426.63035,879.66981 L 427.25065,880.9281 L 426.27589,882.98394 C 425.73775,884.11803 425.17041,885.98672 425.01758,887.13107 C 424.86479,888.27542 424.71779,890.4807 424.69857,892.04031 L 424.66312,894.87595 L 425.95688,898.06605 L 424.59223,900.54724 L 424.91124,902.60308 L 423.74154,904.00315 L 423.4757,907.91991 L 425.54926,911.09226 L 425.70876,926.49337 L 424.50362,928.90367 L 421.33124,929.18723 L 422.2351,930.07337 C 422.72527,930.56354 423.12124,931.27438 423.12124,931.65067 C 423.12124,932.02696 422.64107,932.74648 422.05787,933.24572 L 420.99451,934.14961 L 419.4349,943.70216 L 421.98698,946.28968 L 421.98698,949.44433 L 423.2453,951.09258 C 423.94049,951.99244 424.82033,953.04163 425.1948,953.43199 L 425.86827,954.1409 L 426.57718,957.40189 C 426.95943,959.19521 427.31112,961.04569 427.37471,961.51357 C 427.43828,961.98145 427.80549,963.12977 428.18995,964.06565 L 428.89886,965.76704 L 428.27857,971.15476 L 429.92678,971.15476 L 431.06104,972.28902 C 431.68488,972.91286 432.1953,973.56574 432.1953,973.74228 C 432.1953,973.91855 433.53514,975.41412 435.17273,977.05641 L 438.15015,980.03384 L 439.14263,981.87701 L 439.23124,983.04671 L 442.7049,984.44684 L 444.38857,986.71535 L 452.64738,987.88506 L 453.62213,989.46235 L 459.0453,989.92315 L 460.37451,991.74862 L 464.50391,991.07515 L 465.15966,992.13852 L 467.25094,992.13852 C 468.31222,993.43464 469.52993,994.645 470.19292,996.19701 C 470.19292,996.50496 469.5549,998.14311 468.7751,999.8479 L 467.35728,1002.9494 L 467.35728,1004.1014 C 467.35728,1004.7314 466.97338,1005.9809 466.50659,1006.8839 L 465.65589,1008.5144 L 466.68381,1011.2259 C 469.82121,1012.5588 473.27306,1013.4606 476.43134,1014.4869 L 473.59569,1036.2505 L 504.11431,1046.5829 L 504.22064,1052.7858 L 506.56005,1054.948 L 511.30975,1053.8847 L 517.93807,1054.6467 L 517.58361,1056.4367 C 517.2766,1058.0848 516.93019,1057.1986 516.75064,1058.8647 L 516.57342,1064.6424 L 521.14589,1065.2981 L 521.53579,1063.455 C 521.75255,1062.4412 522.16068,1061.3211 522.43965,1060.9738 L 522.95361,1060.3534 L 523.02451,1052.5377 L 524.8854,1047.2031 L 530.82252,1046.4588 L 532.5948,1043.7472 L 534.7747,1043.7472 L 535.04054,1042.7548 C 535.18754,1042.2089 535.23348,1040.7412 535.14688,1039.4938 L 534.98738,1037.2253 L 533.02015,1032.6882 L 533.00243,1029.2855 L 531.26559,1027.3005 L 531.92134,1025.0851 C 532.63835,1023.4139 532.69572,1022.4513 531.6555,1021.0621 L 529.44015,1022.3027 L 506.77272,1012.0412 L 476.90985,1007.77 L 489.75886,915.9306 C 498.09551,910.40841 506.51292,905.00787 514.83658,899.46612 L 517.2646,879.84704 L 522.93589,879.84704 L 522.93589,882.59404 L 530.30856,883.39159 L 530.30856,887.21971 L 533.64045,887.21971 L 534.34936,889.48823 L 539.89658,889.48823 L 540.65866,882.73582 L 542.28916,881.61932 C 547.48942,884.12546 550.97953,889.75183 557.08767,890.12625 C 562.15249,893.97478 569.23095,892.30674 570.76968,885.89047 C 571.15056,884.47367 572.3391,882.5764 573.94203,881.83199 C 574.31974,881.65652 574.72518,881.54842 575.11173,881.47753 L 575.3776,882.29278 L 577.38025,881.54842 L 581.66916,885.02209 L 581.52738,886.36902 L 582.28948,887.27285 C 582.70933,887.76529 583.05153,888.46711 583.05153,888.83246 L 583.05153,889.48823 L 580.28678,889.48823 L 579.57787,891.75674 L 576.52955,892.04031 L 576.05107,896.32922 C 576.00882,896.78644 576.22501,897.13942 576.44097,897.49892 L 577.11443,898.4205 L 585.46183,902.62077 L 588.33292,901.89417 L 589.21906,903.34743 L 590.37107,902.30176 C 591.00602,901.72715 591.68692,900.75758 591.87747,900.15733 L 592.21424,899.05852 L 594.11054,899.43067 L 594.23463,901.92961 L 596.16638,904.87159 L 597.51332,904.37535 L 597.28295,903.59555 L 596.94619,900.54724 L 601.48322,899.98011 L 601.85542,897.41028 L 605.16955,895.6912 L 605.16955,891.47318 L 610.09648,891.47318 L 606.80005,926.2807 L 614.81074,927.0605 L 614.79305,927.41496 C 614.78312,927.60858 614.4002,928.26265 613.94235,928.86823 C 613.48434,929.47375 613.10935,930.14744 613.10935,930.35694 L 613.10935,930.72909 L 619.61364,931.4912 L 620.90737,929.73661 L 642.74183,932.02288 L 641.4481,930.46327 L 642.15701,928.62011 L 643.22037,927.87575 L 649.3879,929.18723 L 648.07641,926.31615 L 649.15747,925.25278 L 657.34539,924.93377 L 658.07206,915.00902 L 655.73265,915.00902 L 653.37549,918.00414 L 653.37549,921.72592 L 645.43569,923.05516 L 645.43569,920.57397 L 647.40295,917.22434 L 654.49206,913.89245 C 655.11459,912.3438 655.83417,910.82548 656.21114,909.19595 L 653.03879,909.26684 L 651.51463,908.3275 L 652.15265,905.08427 C 649.93002,905.05988 647.74385,904.68886 645.57747,904.21582 L 642.60005,903.52466 L 642.60005,902.08909 L 643.45074,901.77008 C 643.91862,901.59053 644.30143,901.17017 644.30143,900.84849 L 644.30143,900.26367 L 639.23272,900.26367 C 638.57922,898.96171 637.91721,897.66424 637.19463,896.40011 L 634.09312,898.11919 L 634.09312,900.29912 L 632.23225,901.00803 L 631.59423,900.15733 C 631.24823,899.68418 630.3985,899.12136 629.69787,898.89899 L 628.42183,898.49139 C 628.30455,897.14237 628.82421,895.49055 629.53839,894.13159 L 633.4374,891.7213 L 636.37938,892.4479 L 638.06302,891.04783 L 638.06302,888.21219 C 638.41492,887.21506 642.21298,881.20837 644.86856,878.11021 L 644.86856,875.87714 L 644.05331,875.87714 C 643.60386,875.87714 643.0829,876.11476 642.90136,876.40882 L 642.58235,876.9405 L 637.21232,877.72031 L 635.7945,878.85456 L 634.25265,877.57852 L 630.6549,878.83681 L 625.4976,878.05701 L 623.31767,875.87714 L 621.22638,875.87714 L 619.45411,877.86209 L 618.21351,882.55859 L 616.3881,884.06506 L 614.3145,881.51298 C 613.17214,881.78753 612.0224,882.01823 611.08896,882.75357 C 610.98903,882.9152 610.62856,886.04575 610.18513,890.4984 L 605.15186,890.4984 L 603.50361,891.86308 L 598.98433,891.10097 L 589.85708,897.05582 L 589.85708,899.00533 L 585.40869,899.18255 L 583.56552,897.44572 L 578.42592,898.08374 L 577.09668,895.88612 L 579.43609,895.72664 L 581.27926,891.84533 L 584.43391,890.33892 C 585.12893,889.88147 585.34784,888.83625 585.51503,887.73364 L 585.23146,883.49793 L 582.02361,881.67246 L 577.38025,881.30031 L 577.38025,879.27991 L 572.87866,879.2976 L 571.97483,877.93298 L 571.37226,876.19615 C 571.0964,874.62072 570.76616,873.37774 570.73424,871.78315 L 569.98988,870.08176 L 567.56183,871.10968 L 567.18968,872.03127 L 569.44044,875.20367 L 569.44044,877.98612 L 571.76216,880.94585 L 564.40718,889.11602 C 559.21633,890.18007 555.0891,885.79633 550.28213,884.77397 C 548.40995,883.91641 546.51601,880.68497 544.48678,879.91793 L 544.48678,879.51028 L 542.07649,876.72783 L 540.3751,879.27991 L 538.81549,879.27991 L 538.81549,877.61397 L 535.41272,875.84169 L 535.41272,874.5479 L 539.47124,870.82612 L 539.09906,868.2209 L 532.00995,865.15483 L 532.00995,863.0104 C 532.00825,861.82443 531.73586,859.8866 531.40738,858.70374 L 530.8048,856.54156 L 533.07332,854.60981 L 533.2151,853.47555 L 532.50619,846.63456 L 535.5545,839.5809 L 536.19252,839.51001 L 540.80045,839.29734 L 541.1549,835.52236 L 538.7446,834.90209 L 539.15223,833.9805 C 539.3708,833.47565 539.84207,831.99459 540.19787,830.68407 C 540.55369,829.37349 541.03829,828.08894 541.27896,827.84843 L 541.72203,827.42308 L 468.20797,817.16157 z \"},\"az5\":{\"name\":\"AZ-5\",\"path\":\"M 552.85193,1017.1631 L 553.41906,1023.6683 L 551.77199,1024.3386 L 550.57679,1027.1375 L 551.39866,1028.5233 L 548.62295,1030.8162 L 547.06883,1030.4208 L 547.56994,1043.0277 L 545.80273,1043.8792 C 546.24967,1044.9345 547.01318,1046.2178 547.37891,1047.2795 L 543.9551,1050.8363 L 543.8534,1054.9044 L 541.73542,1059.0586 L 535.78169,1061.4276 L 546.18817,1062.4625 L 546.18817,1059.1306 L 548.40351,1058.4394 L 548.74025,1052.5554 L 552.00124,1050.9958 L 560.38411,1050.9958 L 561.78421,1052.1655 L 589.32539,1055.5152 L 585.26691,1042.613 L 584.23899,1043.1624 C 583.67481,1043.4643 582.79338,1044.3511 582.27173,1045.1473 L 581.3147,1046.6006 L 575.57252,1039.2811 L 575.07629,1037.1898 L 573.92433,1036.1441 L 574.06612,1034.4251 C 574.14466,1033.4749 574.43345,1032.3692 574.72183,1031.9793 L 575.25351,1031.2704 L 573.99523,1031.2704 L 573.69391,1025.5991 L 571.74441,1025.5991 L 572.45332,1021.9128 L 573.64077,1021.133 L 571.87496,1019.9389 L 558.23965,1018.7936 L 552.85193,1017.1631 z \"},\"az4\":{\"name\":\"AZ-4\",\"path\":\"M 535.74946,1060.6902 L 541.36757,1058.7761 L 542.98035,1055.3734 L 543.06896,1049.7907 L 542.28916,1049.5426 C 541.8603,1049.3993 541.03087,1048.7983 540.44599,1048.2134 C 539.86117,1047.6285 539.04289,1047.15 538.62054,1047.15 L 537.84074,1047.15 L 534.72153,1044.2612 L 532.9847,1044.5979 L 530.8048,1047.5222 L 530.82252,1055.7633 L 535.74946,1060.6902 z \"},\"az3\":{\"name\":\"AZ-3\",\"path\":\"M 543.35252,1050.6414 L 543.34538,1049.1363 C 541.66141,1048.101 539.95777,1047.0984 538.1747,1046.242 C 537.35434,1045.868 536.49639,1045.2598 536.26807,1044.8904 L 535.85304,1044.2188 C 535.77797,1041.493 535.72117,1038.767 535.1688,1036.0924 L 533.45766,1031.5586 L 533.80446,1028.9119 L 532.03893,1026.961 L 533.22599,1022.6617 L 532.81437,1021.7208 C 532.58797,1021.2033 532.45146,1020.3721 532.51095,1019.8738 L 532.6191,1018.9677 L 538.06229,1013.3204 C 542.74473,1014.6218 547.49761,1015.6976 552.12283,1017.1935 L 552.83645,1023.4279 L 551.39617,1023.9806 L 550.04884,1027.2334 L 550.69843,1028.2845 L 548.53795,1030.2398 L 546.20212,1029.4984 L 546.7553,1034.7691 L 546.7553,1042.558 L 544.89597,1043.5985 L 546.72632,1047.2676 L 543.35252,1050.6414 z \"},\"ok3\":{\"name\":\"OK-3\",\"path\":\"M 1353.0174,864.16236 C 1226.6314,868.53906 1124.3637,869.22415 1009.7095,865.56248 L 1008.9652,895.62031 C 1060.6952,896.90661 1103.3005,897.75509 1156.9858,898.17238 L 1156.9858,1019.3607 L 1157.5175,1019.3607 C 1157.8109,1019.3607 1158.2108,1019.1055 1158.4036,1018.7936 L 1158.758,1018.2264 L 1160.6721,1018.2619 L 1172.5464,1030.7033 L 1177.4024,1030.7033 L 1177.4024,1028.4348 L 1181.904,1028.4348 L 1186.4588,1030.7033 L 1186.9727,1030.7033 L 1187.3272,1026.5738 L 1189.3121,1026.5561 L 1191.6693,1028.4348 L 1193.796,1028.4348 L 1196.7911,1033.5389 L 1197.8899,1032.8655 L 1196.3481,1030.7033 L 1196.6848,1030.3665 L 1195.072,1028.3107 L 1197.3937,1020.495 L 1198.3153,1020.495 L 1198.5279,1017.4466 L 1201.6117,1018.1201 C 1201.8188,1017.9147 1202.6955,1017.2341 1203.1004,1016.6136 L 1202.0903,1014.9655 L 1207.3716,1014.7705 L 1208.0982,1017.0922 L 1215.9672,1017.0922 L 1215.9672,1000.6455 L 1253.0432,1000.6277 L 1252.2323,967.69289 L 1254.5142,967.66334 L 1259.6361,969.43562 L 1259.6361,967.75199 L 1260.1677,967.75199 C 1260.4612,967.75199 1260.8785,968.03096 1261.0893,968.37226 L 1263.228,969.4988 L 1263.2953,967.81658 L 1264.563,969.2407 C 1264.7277,969.66996 1265.082,970.0205 1265.3605,970.0205 L 1265.8745,970.0205 L 1265.8745,962.0807 C 1269.4437,962.20076 1270.8959,961.8606 1273.4067,961.33634 L 1272.7509,945.79344 C 1282.1164,945.32114 1290.5154,945.26301 1299.7427,945.06684 C 1300.3531,950.45207 1300.3652,955.33107 1300.4693,960.94644 L 1325.9901,960.20209 L 1325.9901,949.03674 C 1333.9972,949.11075 1339.9793,948.72459 1346.9739,948.29238 L 1346.9739,933.74054 L 1350.359,930.53417 L 1351.0679,926.98961 L 1354.3466,926.26295 L 1354.3466,921.81456 L 1340.7355,921.81456 L 1340.7355,916.30275 C 1345.7426,915.7384 1350.4736,915.63428 1355.4808,915.57615 C 1354.2202,898.46962 1354.4972,881.25057 1353.0174,864.16236 z \"},\"ga4\":{\"name\":\"GA-4\",\"path\":\"M 1985.485,1015.9593 C 1985.2815,1015.9593 1984.971,1015.5841 1984.7951,1015.1255 L 1984.4751,1014.2917 L 1981.5909,1013.5678 L 1981.5909,1011.128 L 1980.3149,1010.2983 C 1979.613,1009.842 1978.0701,1009.0223 1976.8861,1008.4766 L 1974.7333,1007.4845 L 1969.3976,1006.8213 L 1964.2935,1007.8208 L 1964.5283,999.71451 L 1965.6791,996.6878 L 1963.9281,988.45355 L 1970.1879,986.37042 L 1974.4414,990.62383 L 1971.3225,992.72091 L 1979.2664,1001.5091 L 1983.3478,1000.01 L 1987.208,1001.284 L 1987.9409,1003.5934 L 1987.1229,1013.9292 L 1986.489,1014.9442 C 1986.1403,1015.5025 1985.6886,1015.9593 1985.485,1015.9593 z \"},\"ar2\":{\"name\":\"AR-2\",\"path\":\"M 1535.2606,928.62011 C 1531.366,928.69587 1528.8425,928.62629 1525.1764,929.31127 L 1525.7612,933.72426 L 1516.5454,934.1812 L 1517.2897,945.06684 L 1515.4111,945.06684 L 1517.1283,968.41632 L 1511.0859,968.57251 L 1507.9853,969.61285 L 1508.322,971.86367 L 1506.8826,972.84032 L 1504.5648,971.52691 L 1505.2028,968.99258 L 1502.9697,969.5774 L 1502.2786,967.96466 C 1501.8982,967.07285 1501.0718,965.75995 1500.4531,965.05813 L 1499.3366,963.78209 L 1496.8376,963.78209 L 1494.9768,961.23001 L 1495.278,967.46842 L 1485.9736,967.80513 L 1482.8012,972.8207 L 1476.5628,972.89159 L 1474.4361,974.50433 L 1475.8184,997.68572 L 1491.0246,996.56921 L 1491.4815,994.68725 L 1513.5995,992.82639 L 1513.1426,1001.9215 L 1518.2467,1001.3544 L 1518.2467,1004.0482 L 1522.0926,1004.0482 L 1523.599,1009.1524 L 1526.1866,1009.1524 L 1526.1866,1010.8538 L 1529.0222,1010.8538 L 1529.0222,1014.2565 L 1531.8114,1014.1804 L 1533.4352,1011.4209 L 1536.2708,1011.4209 C 1537.8245,1011.4209 1539.8863,1011.2614 1540.861,1011.0664 L 1542.6333,1010.712 L 1542.6333,1008.1954 L 1561.4726,1006.9902 L 1560.6396,999.51119 L 1556.4748,999.51119 L 1557.5027,990.25991 L 1556.7052,975.30189 L 1553.9759,975.83357 L 1553.9759,971.88136 L 1558.7965,970.74711 L 1562.7487,972.41305 L 1567.2857,972.69661 C 1568.2315,972.55313 1570.3799,971.89838 1572.0708,971.24334 L 1575.1546,970.05595 L 1576.6079,970.4104 C 1577.4093,970.61145 1578.4035,971.10712 1578.8055,971.50921 L 1579.5321,972.23582 L 1580.9677,971.68644 L 1580.5246,967.89377 L 1587.1529,966.90129 L 1587.2592,963.78209 L 1586.3022,963.78209 L 1586.3022,962.0807 L 1586.8162,962.0807 C 1588.1628,961.09356 1588.8263,959.44769 1589.705,958.0576 L 1588.7834,956.67523 C 1588.2818,955.90966 1587.6249,955.27516 1587.3124,955.27516 L 1586.7453,955.27516 L 1587.277,952.43951 L 1586.444,952.43951 L 1586.444,949.56842 L 1589.3683,947.28216 L 1589.5986,945.72255 L 1584.4945,946.04156 L 1578.3978,945.77575 L 1578.3624,941.09694 C 1573.8608,940.87355 1571.3793,941.10924 1568.1009,941.82354 L 1568.8453,946.30743 L 1565.9565,947.72525 L 1566.559,952.79397 L 1545.7525,954.05226 L 1544.2815,932.46592 L 1535.6151,932.82037 L 1535.2606,928.62011 z \"},\"sc3\":{\"name\":\"SC-3\",\"path\":\"M 2094.4771,1013.625 C 2094.306,1013.5888 2093.6555,1013.4513 2093.0317,1013.3194 C 2092.4078,1013.1874 2091.3,1012.9511 2090.5698,1012.7943 L 2089.2422,1012.509 L 2089.8807,1010.8453 L 2088.7791,1007.948 L 2086.7933,1008.2108 L 2083.8809,1006.7974 L 2084.2226,1001.1954 L 2081.9727,998.94543 L 2080.43,998.94543 L 2078.4223,997.05195 C 2077.3181,996.01059 2075.4717,994.71107 2074.3193,994.16425 L 2072.2241,993.16996 L 2070.063,993.7351 L 2067.9065,992.70701 L 2066.5745,990.61652 C 2065.8418,989.46672 2064.7938,987.68027 2064.2454,986.64662 C 2063.6971,985.61291 2063.0591,984.76658 2062.8276,984.7659 C 2062.5962,984.76517 2061.5319,984.01684 2060.4627,983.10303 L 2058.5186,981.44145 L 2055.9256,980.5113 C 2054.4995,979.99975 2052.3636,979.1726 2051.1792,978.67324 L 2049.0257,977.76527 L 2049.0995,976.40456 L 2045.3929,975.88183 L 2044.2586,974.00577 C 2043.6348,972.97394 2042.4225,971.38065 2041.5648,970.46502 C 2040.707,969.54944 2040.0052,968.68015 2040.0052,968.53321 C 2040.0052,968.38626 2039.3033,967.64837 2038.4455,966.89335 C 2037.5878,966.13839 2036.5921,965.51262 2036.2331,965.50275 L 2035.5802,965.48483 L 2034.4827,963.62482 C 2033.8791,962.60178 2033.1976,961.01682 2032.9681,960.10267 L 2032.551,958.44058 L 2031.4795,957.28393 C 2030.8902,956.64772 2029.667,955.35523 2028.7613,954.41165 C 2027.8555,953.46811 2026.54,951.57005 2025.8378,950.19374 C 2025.1357,948.81743 2024.2056,947.33575 2023.7709,946.90105 L 2022.9805,946.1107 L 2020.4414,946.45506 C 2019.0449,946.64442 2017.5114,946.94937 2017.0338,947.13266 L 2016.1654,947.46591 L 2014.4742,946.76539 C 2013.544,946.38008 2012.7774,945.90443 2012.7705,945.70832 C 2012.7636,945.5122 2011.6158,944.58614 2010.2197,943.65038 C 2008.8236,942.71462 2007.6807,941.75759 2007.6801,941.52365 L 2007.6788,941.0983 L 2003.9925,941.01538 L 2002.2911,939.93103 C 2001.3553,939.33459 2000.031,938.59987 1999.3482,938.29821 L 1998.1066,937.7498 L 1996.9565,935.60078 L 1998.1422,934.41508 L 1998.3946,930.76913 L 2000.2605,929.72487 L 2000.9995,925.78582 L 2002.5347,925.78582 L 2003.2118,924.50978 C 2003.5843,923.80796 2004.3289,922.92126 2004.8666,922.5393 L 2005.8443,921.84485 L 2006.5824,916.99533 L 2020.5746,909.57417 L 2022.82,910.82928 C 2024.0839,910.2174 2025.2456,909.41582 2025.5163,909.15863 L 2026.6438,909.11927 L 2030.5732,907.86036 L 2031.5057,911.47433 L 2034.0645,910.84584 L 2034.1574,912.93911 L 2040.7248,925.47521 L 2041.3778,930.60852 L 2044.8949,938.01363 L 2051.2458,941.33473 L 2054.5847,937.25305 L 2053.8833,933.74627 C 2054.7569,930.02976 2055.2948,926.24197 2056.1438,922.5224 L 2059.8609,923.8332 L 2061.1749,926.15054 L 2067.6697,927.89526 L 2070.2743,930.24346 L 2082.7966,931.34851 L 2084.2696,932.00745 C 2082.7721,934.98108 2081.2315,938.27831 2080.0214,939.09639 L 2079.1117,942.73146 L 2074.0329,948.18497 C 2074.2883,949.58958 2074.13,951.48294 2072.7483,954.82225 L 2076.216,957.54503 L 2077.1755,955.84364 L 2081.5313,955.67526 L 2083.6653,954.11492 C 2085.9258,954.61644 2090.394,956.73704 2094.8443,958.84444 L 2097.8523,958.26942 L 2095.2561,970.93035 L 2097.0123,972.29038 L 2098.4056,974.52135 L 2096.6026,981.648 L 2094.0357,985.05764 C 2093.0134,988.14809 2092.8972,991.5406 2092.7481,994.92216 L 2094.1059,997.90214 L 2098.5673,1000.1782 L 2102.4389,999.45187 L 2104.6091,1000.1406 C 2101.2097,1004.6101 2098.2159,1009.4287 2094.4771,1013.625 z \"},\"ga5\":{\"name\":\"GA-5\",\"path\":\"M 1952.9509,1008.5487 L 1949.206,1007.4048 L 1946.0223,1003.8416 L 1946.5863,1001.6851 L 1951.7784,998.96408 L 1952.1002,996.18572 L 1957.2082,992.00014 L 1957.9639,988.43199 C 1959.6774,987.91857 1961.5245,987.53746 1963.2439,987.04434 L 1965.0588,996.26064 L 1963.8841,999.22899 L 1963.7303,1007.8365 C 1960.6466,1008.3689 1959.0377,1008.6063 1952.9509,1008.5487 z \"},\"ok5\":{\"name\":\"OK-5\",\"path\":\"M 1322.609,998.3783 L 1320.9103,995.54265 L 1318.6531,995.54265 L 1319.2362,994.02298 L 1317.5591,992.63113 L 1314.589,994.57723 L 1312.8818,992.13988 L 1310.2577,992.13988 L 1310.1624,994.2285 L 1307.464,995.55904 L 1301.7747,994.3696 C 1301.2923,985.11945 1301.3374,975.86924 1300.3275,966.61909 L 1294.8675,966.61909 L 1293.1975,959.57978 L 1290.9202,960.43359 L 1285.3892,960.57208 L 1285.4404,966.90265 L 1273.9415,967.2245 L 1273.663,946.22106 L 1299.1628,945.50302 L 1299.9022,961.66913 L 1325.9901,960.84237 L 1325.9901,964.82316 L 1331.0943,964.82316 C 1331.1467,964.04937 1330.6328,963.43659 1330.2375,962.81264 L 1329.3808,961.5894 L 1330.0875,960.94519 L 1331.0994,961.80473 C 1331.4849,962.26921 1332.1245,962.64919 1332.5209,962.64919 L 1333.2414,962.64919 L 1333.5679,961.7985 C 1333.7474,961.33062 1334.1246,960.9478 1334.406,960.9478 L 1334.9176,960.9478 L 1335.7788,981.648 L 1333.3476,982.01244 L 1334.0488,994.12483 L 1332.9513,997.13061 L 1332.0516,997.23548 L 1331.0943,994.4084 L 1327.1036,995.73417 L 1324.7317,993.3401 L 1322.2769,994.21864 L 1324.3279,996.79709 C 1323.8509,997.46562 1323.3154,997.99446 1322.609,998.3783 z \"},\"ar3\":{\"name\":\"AR-3\",\"path\":\"M 1526.1334,884.9512 L 1423.873,891.86308 L 1437.1297,959.97166 L 1438.2639,987.95595 C 1442.5157,986.40179 1444.8921,987.05109 1447.9228,985.26209 L 1447.9228,979.23634 L 1452.0168,977.1805 L 1451.9813,974.13218 L 1457.5108,973.93721 L 1456.8374,968.31912 L 1462.5972,968.31912 L 1462.9517,962.93139 L 1467.7723,962.57694 L 1468.3394,956.56889 L 1470.8915,959.12097 C 1473.4788,958.17313 1474.0299,957.21547 1474.95,956.26763 L 1477.2895,957.73859 L 1481.4543,955.75364 L 1483.3152,956.46255 L 1484.9279,954.33582 L 1486.9129,954.35357 C 1486.6079,955.96569 1487.4811,957.47357 1488.6675,958.96149 L 1487.3382,960.53879 L 1492.1057,959.19186 L 1495.5794,960.98189 L 1496.9617,963.21496 L 1499.3188,963.21496 C 1501.2698,964.82175 1502.1973,966.89341 1503.0406,968.99258 L 1505.8763,968.26592 L 1505.1496,971.58011 L 1507.0105,972.28902 L 1507.9321,971.72189 L 1507.6308,969.47107 L 1511.1045,968.14189 L 1516.2618,968.03555 L 1514.7022,944.49971 L 1516.7403,944.49971 L 1515.9782,934.25595 L 1509.1196,934.57496 L 1507.365,909.33773 L 1513.3376,909.76308 L 1513.6566,911.83661 L 1534.1264,910.86189 L 1534.1264,907.06922 L 1532.9921,907.06922 L 1532.8326,906.07674 L 1534.1972,905.36783 L 1533.5592,904.33991 L 1531.5034,904.88929 L 1530.0147,903.09931 L 1531.2553,901.59285 L 1530.4755,900.22823 C 1529.642,899.70227 1528.1922,899.07764 1527.0372,898.73951 L 1527.5867,896.66592 L 1525.6194,895.10632 L 1526.9487,894.62783 L 1526.7537,893.42268 L 1524.2725,894.64552 L 1524.0953,893.59991 C 1524.4237,892.6747 1525.3715,891.91786 1526.7005,891.24275 L 1526.1334,884.9512 z \"},\"ca30\":{\"name\":\"CA-30\",\"path\":\"M 216.69178,962.63138 C 216.53287,962.62157 215.9603,962.0047 215.41937,961.26057 L 214.43591,959.90763 L 212.86729,959.5677 C 212.00458,959.38071 209.61957,959.02762 207.5673,958.78296 L 203.83588,958.33822 L 200.56168,959.21386 L 199.38381,958.10728 C 198.73598,957.4987 197.38746,956.71544 196.38716,956.36671 L 194.56837,955.73266 L 194.56837,954.36934 L 203.45284,950.03772 C 205.49324,950.46182 207.52296,950.94343 209.57534,951.30662 L 210.50174,947.05315 C 213.50522,946.7908 213.35391,946.7059 214.62224,947.40965 L 214.20876,948.10103 L 211.33395,948.43309 L 215.6604,953.90412 L 214.97733,954.76463 C 218.38991,956.04498 220.93491,957.32527 224.64324,959.09851 C 223.87235,960.31994 221.83955,960.87096 220.49685,961.10654 L 220.14783,961.80819 L 218.45124,960.29447 L 217.71596,961.47183 C 217.31154,962.11938 216.85069,962.64119 216.69178,962.63138 z \"},\"ca29\":{\"name\":\"CA-29\",\"path\":\"M 234.12329,962.48654 L 233.63775,961.67866 L 233.41669,957.26147 L 226.65125,957.40211 L 226.44001,951.84193 L 229.42496,951.50035 L 229.52041,949.49634 L 231.06685,949.62077 L 231.14464,952.45902 L 233.46422,955.33567 C 234.2007,954.56148 234.65045,953.92136 235.6172,953.51292 C 236.90037,954.12167 238.03899,955.3237 239.14667,956.22028 L 239.06888,957.36032 L 235.32139,959.31702 L 236.7505,961.039 L 239.66306,960.53278 L 240.4451,961.7436 L 234.12329,962.48654 z \"},\"ca28\":{\"name\":\"CA-28\",\"path\":\"M 224.05907,958.58509 L 215.42932,954.57231 L 217.06983,952.94862 L 220.11996,954.33832 L 221.37405,953.08422 L 220.8204,952.05364 C 220.57154,951.48679 220.32252,950.40187 220.3494,949.62207 C 220.37629,948.84227 220.73476,947.51927 221.06353,946.66149 L 221.76248,945.0682 L 222.85738,944.7142 C 223.27248,946.70635 224.32813,948.09168 225.4175,949.54438 L 223.58279,953.75043 L 224.35734,955.55265 L 226.42872,955.62451 L 226.32758,956.49006 C 226.32758,956.84553 225.88097,957.47544 225.33511,957.88985 C 224.78924,958.30419 224.21503,958.61707 224.05907,958.58509 z \"},\"sc5\":{\"name\":\"SC-5\",\"path\":\"M 2083.4967,953.55987 L 2081.5998,955.27652 L 2076.9899,955.27652 L 2076.3046,957.06218 L 2073.395,954.96936 C 2074.3232,952.76164 2074.9964,950.57944 2074.6,948.50421 L 2079.5982,943.13786 C 2080.7459,936.89576 2080.7992,940.92345 2084.5536,932.17498 L 2088.7365,934.40221 L 2089.9187,937.06255 L 2092.4064,933.19088 L 2095.6873,932.04715 L 2094.5528,923.41432 L 2092.1353,921.16202 L 2091.4597,917.78386 L 2089.9125,918.37754 L 2089.9125,916.71176 L 2091.0467,916.71176 C 2090.4825,913.29635 2089.4671,913.54021 2088.7525,909.3227 L 2082.2562,909.53532 L 2080.752,910.68398 L 2079.9877,909.48155 L 2074.3164,908.28429 L 2065.6375,894.70116 L 2105.1606,888.7771 L 2106.935,890.55154 L 2106.0022,892.85306 L 2107.6536,895.23993 L 2112.5417,890.44259 L 2121.6717,899.32746 C 2121.1723,901.68541 2121.8072,904.1379 2122.3972,906.58665 L 2178.2914,895.68541 L 2214.3633,919.78044 L 2213.4045,922.26424 L 2210.1654,920.71581 L 2207.444,923.42957 L 2198.9337,922.29237 L 2196.2019,923.23726 L 2190.7752,929.45401 L 2181.3761,929.95626 C 2180.7732,932.52433 2179.0347,933.53093 2176.2933,933.1585 C 2173.674,936.33005 2171.0109,939.46599 2168.429,942.66805 C 2166.8092,942.30804 2166.3659,941.1224 2164.0093,940.84768 L 2158.8307,947.33671 L 2156.9683,947.33671 C 2155.826,949.89736 2155.6496,952.45794 2155.6994,955.01859 L 2152.101,957.14929 L 2149.3306,955.36703 L 2147.3493,955.98622 C 2146.3086,955.04076 2145.4801,953.48898 2145.3686,949.88879 L 2143.0249,947.33671 C 2141.4539,947.15393 2138.5959,948.57997 2135.4354,950.38395 L 2127.2844,945.09049 L 2128.6069,939.79634 C 2124.5466,940.25742 2117.1779,944.3277 2111.4634,946.49311 L 2111.4634,948.59234 L 2110.2231,948.53319 C 2109.4877,945.80309 2107.8497,949.54426 2106.1324,946.20246 L 2103.7419,946.20246 L 2101.7401,950.73949 L 2100.2318,950.73949 L 2098.9732,954.34983 L 2102.0074,957.51684 L 2097.9104,956.99231 L 2097.2182,958.11216 L 2094.8467,958.40894 C 2091.274,956.58199 2087.7199,954.73638 2083.4967,953.55987 z \"},\"ca27\":{\"name\":\"CA-27\",\"path\":\"M 224.59058,955.27652 L 224.02351,953.79875 L 225.79862,949.55033 C 224.61279,947.83579 223.67093,946.77185 222.92424,944.40676 L 221.50699,944.8684 L 220.75719,946.40685 C 220.34477,947.25301 219.98368,948.63782 219.95464,949.4842 C 219.92566,950.33059 220.10317,951.48067 220.34919,952.03997 L 220.79643,953.05694 L 220.09399,953.75939 L 217.1266,952.40736 L 215.83058,953.62901 L 212.11683,948.75522 L 214.35096,948.47097 L 215.02902,947.3738 C 214.38287,946.84904 213.85057,946.38933 212.74902,946.43379 L 212.27735,941.77715 L 217.6822,943.09992 L 218.72848,942.11873 L 223.82385,942.15123 L 225.24764,943.93394 L 226.65287,942.58911 L 227.71699,943.96224 L 226.23803,946.33046 L 229.16322,949.38371 L 229.16322,951.2313 L 226.04402,951.59018 L 226.41305,955.27652 L 224.59058,955.27652 z \"},\"sc4\":{\"name\":\"SC-4\",\"path\":\"M 2064.7816,894.61008 C 2052.64,897.07737 2047.7707,896.28799 2039.5267,899.39523 L 2038.8532,897.80018 C 2037.672,898.92003 2037.625,901.96551 2035.6099,900.75991 L 2025.8269,905.93496 L 2022.6368,909.19595 L 2021.3254,909.47951 L 2022.8318,910.45424 C 2023.8011,910.0311 2024.6549,909.45734 2025.4725,908.7706 L 2026.4827,908.7706 C 2026.9271,908.7706 2029.2244,908.01348 2030.7007,907.44137 L 2031.6223,911.02137 L 2034.3339,910.3479 L 2034.458,912.70506 L 2041.0863,925.32367 L 2041.7774,930.60506 L 2045.2688,937.69417 L 2051.2414,940.97285 L 2054.1479,937.4106 L 2053.4922,933.74196 L 2055.743,921.9209 L 2060.0673,923.46275 L 2061.4143,925.90849 L 2067.7768,927.50354 L 2070.4529,929.78981 L 2082.8234,930.94176 L 2089.2745,933.99008 L 2089.9302,936.27634 L 2092.3051,932.59001 L 2095.0521,931.89879 L 2094.1659,923.63998 L 2091.8443,921.77912 L 2091.0467,918.3409 L 2089.5049,919.10295 L 2089.4517,916.03694 L 2090.6214,916.16097 C 2089.8264,914.32086 2088.6748,912.31164 2088.2288,910.06434 L 2082.4335,910.09978 L 2080.7853,911.32268 L 2079.7042,910.08209 L 2073.7493,908.73516 L 2064.7816,894.61008 z \"},\"nc2\":{\"name\":\"NC-2\",\"path\":\"M 2252.3949,893.23456 L 2248.298,891.03172 L 2247.7894,889.62757 C 2244.322,886.28128 2241.3686,882.60788 2236.9791,879.8484 L 2233.9632,874.30715 L 2233.9632,870.3461 C 2235.2123,869.32357 2236.5975,868.77742 2238.0304,868.39847 L 2236.7988,870.91397 L 2240.2684,873.69335 L 2241.873,872.36173 L 2242.3907,868.49329 L 2243.9368,868.28833 L 2242.3914,866.30979 C 2243.3157,864.89061 2243.6507,863.74875 2243.6044,861.42829 L 2240.5974,864.67113 L 2239.093,861.98385 L 2239.7408,857.31292 L 2236.8704,856.59249 L 2236.5499,852.56316 L 2230.6815,853.78918 L 2227.1359,850.9169 L 2224.6501,856.10198 L 2220.3937,856.68879 C 2218.8212,856.68142 2219.0385,855.51597 2213.0992,858.3342 L 2208.9055,862.36456 L 2210.2853,866.71551 C 2211.5791,866.04063 2213.0043,865.57627 2215.2112,866.36253 L 2216.1712,868.47344 L 2215.1843,870.05675 L 2209.3873,870.95537 L 2208.2441,869.55575 L 2204.6604,873.7892 L 2202.204,868.71487 L 2202.204,864.53592 L 2200.0884,864.53592 C 2198.5486,863.26079 2196.8106,862.21688 2194.7171,861.58759 C 2195.6615,861.10757 2195.9413,860.09593 2195.9655,858.87984 L 2192.188,857.30146 L 2185.6751,850.94287 L 2186.0388,849.79682 L 2186.4026,848.65071 C 2182.8476,847.19659 2178.9509,849.45087 2175.2033,849.63405 L 2171.5853,830.27024 L 2182.638,827.852 L 2183.6822,831.61552 L 2190.9036,829.49208 L 2197.9103,835.27129 L 2199.2014,833.98028 L 2201.0697,833.91097 L 2201.0697,838.76781 L 2216.6657,841.2347 L 2221.6858,833.17569 L 2216.8199,829.24889 C 2216.7201,828.11827 2217.5488,826.55906 2218.6418,824.87781 L 2224.8891,826.02255 L 2225.8462,827.40147 C 2228.5763,823.93977 2231.7913,820.88908 2234.5297,817.4428 L 2230.9699,813.55729 L 2228.9714,813.52672 L 2227.0946,811.94001 C 2226.1856,812.02151 2224.7206,810.71269 2223.3067,809.53193 L 2217.5663,808.20689 L 2216.8646,805.01208 L 2217.6044,799.03256 L 2216.3721,795.81303 L 2219.8584,788.50818 L 2224.4491,785.47019 L 2226.1179,787.82468 L 2225.3476,790.8933 L 2233.6796,790.56482 L 2235.381,791.62699 L 2244.9339,791.90903 C 2245.2058,792.63875 2245.8853,793.28273 2247.9017,793.64518 L 2256.2003,791.94345 L 2253.7432,811.22583 L 2251.7892,811.22583 L 2238.5002,822.09445 L 2239.9768,823.17063 L 2243.1821,829.058 L 2246.5379,830.35207 L 2244.6899,840.21427 L 2245.2807,845.23824 C 2242.0093,847.79973 2240.263,847.48401 2238.8981,850.01079 L 2242.1644,853.24195 L 2247.5686,854.33611 L 2248.7217,861.13315 L 2252.2169,871.31306 L 2252.1113,883.25117 L 2255.4471,883.25117 L 2256.1788,884.43511 C 2254.8721,886.32427 2253.6091,889.21941 2252.3949,893.23456 z \"},\"tn5\":{\"name\":\"TN-5\",\"path\":\"M 1801.4586,886.11239 L 1801.0677,885.72153 C 1800.8527,885.50653 1800.6768,884.86278 1800.6768,884.29089 L 1800.6768,883.25117 L 1797.1527,883.25117 L 1798.53,877.15851 L 1796.7797,874.46068 L 1798.4083,872.25891 L 1798.4083,869.77767 L 1794.9255,868.33506 L 1795.5239,865.95085 L 1791.9825,859.514 L 1793.658,858.42103 L 1795.1529,859.69633 C 1796.1636,860.28467 1797.5009,861.04009 1798.1248,861.37498 C 1798.7486,861.70987 1799.7056,862.34238 1800.2515,862.78066 L 1801.216,863.47965 L 1804.6467,860.99426 L 1805.8872,862.09092 L 1807.3635,861.7068 L 1808.0113,863.39475 L 1810.8496,862.10152 L 1810.3544,861.30023 L 1811.6713,859.45666 L 1813.6292,863.1181 L 1817.7175,865.2961 L 1818.3808,867.9387 L 1822.0133,867.6988 L 1822.4025,863.46082 L 1823.3255,865.67018 L 1827.9768,860.84959 L 1829.8779,863.143 L 1830.7347,861.45018 L 1830.7347,860.06582 L 1831.5536,859.50311 L 1832.2818,861.71474 L 1834.85,861.55022 L 1835.4912,859.1482 L 1836.4651,862.55545 L 1837.6191,859.43177 L 1838.3358,859.43177 C 1838.73,859.43177 1839.2168,859.59601 1839.4176,859.79677 L 1839.7826,860.16177 L 1836.6895,865.66905 L 1834.7046,865.67018 L 1834.7046,866.40745 C 1834.7046,866.81295 1834.9834,867.42357 1835.3242,867.76436 L 1835.9439,868.38406 L 1834.7144,870.6815 L 1835.582,873.306 L 1834.8783,875.24343 C 1834.1195,875.55671 1833.1642,875.8785 1832.767,875.8785 L 1831.1529,876.6042 L 1830.2953,878.25528 C 1828.8274,877.45461 1827.3926,876.58826 1825.8816,875.8785 L 1825.7221,878.55217 L 1824.2663,878.19034 L 1824.0429,880.54262 L 1822.0758,882.46853 L 1822.1545,885.09927 L 1814.0044,881.92301 L 1806.2079,881.45122 L 1801.4586,886.11239 z \"},\"ks4\":{\"name\":\"KS-4\",\"path\":\"M 1294.2309,792.34968 C 1285.698,792.92753 1277.0211,792.1403 1268.5152,793.14724 C 1268.1326,802.16719 1269.5496,811.25259 1268.9405,820.26308 L 1231.8468,821.43278 L 1232.5557,842.41654 L 1238.0852,842.41654 L 1238.0852,866.23595 C 1286.2051,864.87592 1328.0612,864.26019 1376.6418,861.61028 L 1375.7734,838.76565 L 1353.9567,839.38592 L 1352.6806,806.61654 L 1334.5502,807.41404 C 1334.3421,808.5762 1334.1091,809.71159 1333.4514,810.65734 L 1331.8209,809.80664 L 1331.0588,804.61384 L 1326.1142,805.3582 L 1325.3344,796.37278 L 1294.2309,797.7906 L 1294.2309,792.34968 z \"},\"co3\":{\"name\":\"CO-3\",\"path\":\"M 736.45985,597.55873 L 712.88856,845.71298 C 820.71481,853.9347 893.64768,860.15724 1004.4636,864.39278 L 1006.3068,824.83555 L 990.32081,824.83555 L 990.97661,812.64229 L 988.19411,815.19437 L 986.33321,815.19437 L 983.56851,810.37377 L 982.80641,804.93285 L 984.25961,803.7809 C 985.06091,803.15059 985.71291,802.3924 985.71291,802.09721 L 985.71291,801.56553 L 982.96591,802.25674 L 981.67211,799.84645 L 982.38101,797.61338 L 979.47451,797.61338 L 979.47451,794.90176 C 970.03051,794.98825 974.87541,793.6458 964.00251,793.18268 L 963.18731,791.85345 L 962.40751,791.95978 C 961.97281,792.02069 961.26941,792.04984 960.84791,792.01298 L 960.06809,791.94209 L 961.13141,768.33536 C 947.25382,767.88063 932.4589,767.14331 918.93351,766.29721 L 918.10056,782.86803 C 904.16383,782.24339 891.35132,781.08447 876.29252,780.03239 L 874.28987,778.2778 C 873.18732,777.30972 872.28717,776.2548 872.28717,775.9384 C 872.28717,775.622 871.58535,774.53288 870.72757,773.51041 C 869.86978,772.48782 868.35453,770.67737 867.36024,769.48731 L 865.55252,767.32513 L 863.23086,769.41642 L 855.80499,768.81384 L 850.5768,763.05397 L 850.36413,756.76236 L 848.94631,755.20276 C 848.17246,754.3507 847.25025,752.96742 846.89047,752.11899 L 846.34103,750.0986 L 848.02472,749.97457 L 848.21965,748.20229 C 848.30029,747.46253 848.38854,745.93542 848.41463,744.79952 L 848.46777,742.72592 L 851.01984,741.99932 L 852.36678,740.29793 C 853.10512,739.35519 853.60351,738.4863 853.48334,738.36612 C 853.36322,738.246 852.58682,738.05329 851.74651,737.94078 C 850.90614,737.8282 850.03701,737.56052 849.83245,737.35595 L 849.46024,736.98375 L 846.35878,737.60407 L 843.93074,734.2013 L 843.93074,732.39358 L 841.21918,732.39358 L 840.72294,728.97305 L 842.28255,727.67932 L 841.71542,726.19061 L 842.53066,724.61325 C 842.98312,723.74583 843.36174,722.71694 843.36361,722.32704 L 843.36361,721.61813 L 845.49034,721.61813 L 846.89047,718.23305 L 846.28789,716.65575 L 847.51074,715.43286 L 846.05747,713.67833 L 847.47529,711.97694 L 850.16915,711.97694 L 850.16915,709.79701 L 817.54156,706.7487 L 820.324,672.27793 L 843.15093,673.25266 C 843.46819,663.65639 844.20211,657.63206 844.83463,648.17496 L 843.89529,647.51919 L 844.6574,641.08586 L 846.19925,642.36189 L 846.19925,644.48863 L 849.88559,645.99503 L 851.95918,643.33662 L 853.00479,643.99239 L 853.00479,646.04823 L 854.74163,647.5015 L 858.37482,647.39516 L 860.23569,649.0788 L 860.90915,647.32427 L 862.61054,647.32427 L 863.81569,649.59279 L 865.81839,649.59279 L 867.32479,648.17496 L 867.83878,649.55734 L 874.04175,647.23563 L 876.75331,649.00791 L 877.46222,646.75714 L 879.65984,645.58744 L 879.65984,640.89088 L 881.92836,640.96177 L 881.92836,638.81734 L 879.89027,638.81734 L 879.25225,636.12348 C 878.90607,634.64186 878.33877,632.28118 877.9939,630.87754 C 877.64909,629.4739 877.15716,627.81504 876.89509,627.1912 C 876.63302,626.56736 875.87959,624.94861 875.21146,623.59345 C 874.54327,622.2383 873.98856,620.83766 873.98856,620.47424 L 873.98856,619.80078 L 871.72004,618.40071 L 871.72004,616.69932 L 870.58578,616.69932 L 870.58578,614.60803 L 868.31727,612.55219 L 868.33502,608.63543 L 736.45985,597.55873 z \"},\"ks2\":{\"name\":\"KS-2\",\"path\":\"M 1377.8824,674.83001 L 1366.9652,675.34395 L 1356.0479,675.84018 L 1356.1188,680.39496 L 1350.5716,680.28863 L 1351.0856,685.74724 L 1334.9666,686.52194 L 1335.7376,703.32823 L 1301.6036,704.7815 L 1302.3479,726.15516 L 1307.2749,726.15516 L 1307.2749,730.41997 L 1308.442,731.07336 L 1307.842,734.25444 L 1314.6475,733.63417 L 1314.6475,734.66209 L 1324.2887,734.66209 L 1324.2887,736.36348 L 1329.1448,736.36348 L 1328.7017,728.42368 L 1331.2006,728.42368 L 1333.2388,725.90704 L 1335.0465,727.41345 L 1335.7554,725.57028 L 1338.2011,725.8007 C 1339.5463,725.92638 1340.9048,726.19441 1341.214,726.38553 L 1341.7811,726.72229 L 1342.2065,725.4285 L 1344.7054,726.75773 L 1344.7054,728.33503 L 1343.2875,728.90216 C 1344.2694,729.12669 1345.0763,729.37435 1345.9637,729.75285 C 1346.3845,730.17361 1347.6737,730.84061 1348.8348,731.22387 L 1350.9438,731.91503 L 1354.9137,838.58843 L 1376.3405,838.14533 L 1377.3174,861.53298 L 1420.7141,859.51684 L 1415.1779,751.65746 L 1394.0456,752.81021 L 1394.0456,748.39721 L 1384.8829,746.99714 L 1383.66,744.30328 L 1380.2927,744.30328 C 1380.5542,742.98425 1380.8475,741.66993 1381.0016,740.33338 C 1381.0016,740.09677 1381.5333,739.76046 1382.1891,739.58902 L 1383.3942,739.27001 L 1380.2041,735.10513 L 1382.4194,733.47464 L 1386.9565,733.8114 L 1387.2932,737.28506 L 1391.777,738.47246 L 1391.777,736.80652 L 1394.6127,737.3382 L 1394.6127,735.79635 L 1396.6508,735.79635 L 1397.98,737.12553 L 1400.1068,735.21147 L 1399.8055,722.75239 L 1402.8893,722.75239 L 1402.8361,719.89899 L 1399.2915,717.75457 L 1398.5117,713.57199 L 1400.5675,711.90605 L 1397.4838,712.38454 L 1395.0026,708.7514 L 1391.777,707.54625 L 1391.777,705.72078 L 1388.197,702.53068 L 1388.9592,699.50011 L 1391.2099,699.50011 L 1391.2099,695.77833 L 1392.9822,693.2617 L 1394.6127,693.2617 L 1394.6127,691.70209 C 1394.6175,690.84431 1394.8576,689.78066 1395.1444,689.32724 L 1395.6761,688.49424 L 1398.4763,690.00071 L 1399.0966,689.6108 C 1399.4383,689.39966 1399.7169,688.9657 1399.7169,688.65378 L 1399.7169,688.08665 L 1398.5649,688.79556 L 1396.3141,688.08665 L 1396.3141,685.88902 L 1398.5826,685.88902 L 1398.5826,684.27622 L 1396.0305,683.90407 L 1395.6761,680.21774 L 1392.3442,680.92665 L 1392.3442,682.41536 L 1390.058,683.14196 L 1386.602,682.37991 L 1385.8222,680.5013 L 1382.9866,680.5013 L 1382.9866,678.25048 L 1380.8598,677.84288 L 1377.8824,674.83001 z \"},\"ut2\":{\"name\":\"UT-2\",\"path\":\"M 613.00302,592.9685 L 601.81998,594.17365 L 603.48592,597.41695 L 602.67067,600.69563 L 600.63252,600.25259 L 600.63252,602.87556 L 601.87312,604.0984 L 601.25285,605.26811 C 600.912,605.90493 600.7282,607.09466 600.63252,607.90883 C 600.19277,612.14142 597.31839,620.24388 597.31839,620.24388 L 597.95641,621.90982 L 600.18948,621.32494 L 601.46552,622.68962 C 602.16933,623.449 603.04327,624.07199 603.39728,624.07199 L 604.0353,624.07199 L 604.0353,620.24388 L 607.89886,618.40071 L 610.11423,618.34751 L 614.27906,619.78308 L 615.76777,624.69226 L 618.76295,624.72771 L 620.42889,627.08487 L 619.63133,629.10526 L 620.87193,629.17615 C 621.74395,629.16078 623.25846,629.30171 624.22156,629.49516 L 625.95839,629.84962 L 627.92559,633.14605 L 627.23443,634.24487 L 628.98896,637.62989 L 628.98896,640.96177 C 628.39914,642.40556 627.71933,643.82072 627.28757,645.32157 L 629.36116,645.62288 L 630.14097,647.18249 C 630.56932,648.04027 631.40901,649.30378 632.00183,649.98269 L 633.08295,651.22328 L 632.32084,652.42843 L 634.09312,652.42843 L 634.09312,655.13999 L 644.30143,656.54011 L 644.30143,662.72533 L 625.67483,660.27959 L 623.03411,681.63556 L 620.48203,681.36969 L 613.05621,740.90051 L 555.26223,733.51008 L 555.26223,736.23939 L 556.0952,736.93061 C 556.5283,737.29005 557.22554,738.24629 557.69025,739.12823 L 559.79926,739.19912 L 559.74609,742.03476 L 560.8449,742.03476 L 562.56401,745.47298 C 561.9451,746.95115 561.40613,748.47581 560.36639,749.7087 L 559.76381,750.06315 L 560.08282,753.07602 L 558.55866,753.09377 L 555.93569,756.39021 C 522.69048,751.93683 511.26918,750.21826 479.23154,745.82744 L 468.49154,815.81463 C 559.55109,828.98694 617.36821,835.66737 711.71886,845.80156 C 723.47487,713.27039 726.01872,687.53835 735.21925,597.43464 C 721.62609,596.32528 707.92278,595.1566 692.17067,593.60652 L 690.91232,603.21226 L 689.8844,604.24018 L 684.28401,604.31108 L 678.52413,602.1312 L 674.64282,602.69833 L 673.50856,604.11615 C 670.65551,604.53441 667.79468,604.95352 664.91305,605.10863 C 663.19742,605.16835 662.19973,604.79739 661.22671,604.27563 L 658.8873,606.1188 L 656.72512,604.78962 L 651.78044,606.5087 L 648.80302,605.37444 L 648.12955,608.75952 L 646.26869,608.75952 L 644.35463,613.17246 L 640.18975,613.95226 L 638.96691,612.72942 L 636.82242,612.72942 L 636.21985,614.99794 C 632.17764,614.08673 629.00013,610.85653 625.55074,608.65318 L 624.91272,608.44051 L 624.73549,605.35675 L 624.29245,605.35675 C 624.04796,605.35646 623.11005,606.11086 622.21886,607.02269 C 621.32762,607.9344 620.5033,608.99703 620.37569,609.37979 L 620.14532,610.071 L 616.84889,608.97219 L 614.84619,605.39219 L 614.79305,599.11833 L 613.5879,599.11833 L 613.71193,597.27516 C 613.77885,596.26136 613.64002,594.87264 613.41067,594.1914 L 613.00302,592.9685 z \"},\"nc4\":{\"name\":\"NC-4\",\"path\":\"M 2215.8902,840.65073 L 2201.6368,838.26471 L 2201.6368,833.34385 L 2199.0636,833.39636 L 2197.8501,834.76167 C 2195.5158,832.82963 2193.2603,830.79942 2190.8734,828.93317 L 2184.143,830.93258 L 2183.2072,827.77867 L 2185.1901,827.31158 L 2180.228,802.97314 L 2201.4232,798.49316 L 2203.4056,806.98467 L 2206.741,808.89833 L 2206.741,810.78749 L 2211.7012,810.04365 L 2215.1281,812.92721 L 2217.2118,813.03219 L 2216.0167,817.10361 L 2212.484,818.81622 L 2212.4326,819.7724 L 2208.5895,818.00222 L 2210.5916,821.88983 L 2212.5936,822.77977 L 2209.537,823.83554 L 2207.9125,826.97703 L 2211.7171,829.78358 L 2216.6485,829.67855 L 2221.0549,833.34005 C 2219.3341,835.76072 2218.0009,838.54464 2215.8902,840.65073 z \"},\"mo3\":{\"name\":\"MO-3\",\"path\":\"M 1633.8415,800.45038 L 1620.3525,789.17995 C 1622.2303,786.84372 1624.3078,784.64978 1626.0012,782.17358 L 1621.1224,778.42373 L 1617.198,780.07946 C 1615.0395,780.9901 1612.9471,781.73513 1612.5482,781.73513 L 1611.823,781.73513 L 1611.823,777.88819 C 1610.66,777.51768 1609.4861,777.23378 1608.2784,777.1051 C 1608.0445,777.15625 1607.8531,776.93195 1607.8531,776.6067 C 1607.8531,776.2814 1606.7022,774.78486 1605.2955,773.281 L 1602.7379,770.54671 L 1603.4922,753.94583 L 1605.0174,753.94583 L 1605.0174,755.08009 L 1607.4183,755.08009 L 1606.8016,752.72196 L 1608.6572,753.43405 L 1610.4052,751.24783 L 1618.1537,750.502 L 1617.4906,751.57495 L 1618.2293,753.49989 L 1621.849,752.91246 L 1621.5576,755.83947 C 1621.3973,757.44927 1621.2742,760.50683 1621.2839,762.63401 L 1621.3017,766.50166 L 1623.5512,769.54187 L 1626.5299,771.00313 L 1628.4511,774.25556 L 1632.5232,776.48874 L 1633.934,775.97163 L 1635.0352,778.86779 L 1638.1945,779.61555 L 1641.8981,782.37321 L 1644.1493,781.65869 L 1644.1493,782.05976 C 1644.1493,782.28031 1643.7342,782.7643 1643.2268,783.13532 L 1642.3043,783.80986 C 1642.8569,784.90215 1643.4062,785.99064 1644.2511,786.88319 L 1644.7501,787.21065 L 1643.6238,788.64253 C 1643.0043,789.43005 1641.5614,792.2176 1640.4173,794.83705 C 1639.2732,797.45651 1638.2474,799.69984 1638.1377,799.82229 L 1636.1883,798.59247 C 1635.4627,799.29435 1634.7083,799.9483 1633.8415,800.45038 z \"},\"co5\":{\"name\":\"CO-5\",\"path\":\"M 881.02821,698.74963 L 880.33331,701.2015 L 878.52559,701.2015 L 878.52559,701.75088 C 878.52559,702.04862 877.91689,702.87804 877.17866,703.59404 L 873.70499,706.18157 L 873.97086,707.74117 L 870.58578,709.22988 L 870.58578,710.7186 C 868.6424,710.6819 864.03641,709.02821 864.03641,709.02821 L 861.51173,709.01721 L 857.7368,710.80724 L 853.58967,710.13377 L 852.29588,708.55642 L 850.73628,709.85021 L 850.73628,712.54407 L 847.4044,712.54407 L 846.66004,713.73147 L 848.06992,715.35283 L 846.78226,716.61787 L 847.2912,718.46297 L 846.217,721.29912 C 845.81485,721.78362 845.19589,722.18526 844.83463,722.18526 L 844.17885,722.18526 L 842.30824,726.27494 L 842.88756,727.82292 L 841.20018,729.26881 L 841.804,731.89734 L 843.85984,731.98592 C 844.20982,732.3359 844.49786,733.03846 844.49786,733.54553 L 844.53456,734.1371 L 846.8037,736.92573 L 849.14123,736.36348 L 849.797,736.77107 C 850.15872,736.99702 850.96313,737.26533 851.58697,737.35595 C 852.21081,737.44658 853.04024,737.62097 853.43014,737.76355 C 853.82004,737.90607 854.13905,738.28565 854.13905,738.59655 L 850.61225,743.16902 L 849.03489,743.16902 C 848.96156,745.40572 849.15138,748.13956 848.34373,750.54169 L 846.87272,750.54169 L 848.19004,753.3859 L 850.93001,756.29363 L 851.19339,762.74233 L 856.02873,768.30541 L 863.08233,768.79984 L 864.47146,766.98843 L 866.33232,767.00612 L 876.4343,779.46526 L 917.48024,782.3009 L 918.2246,765.71239 L 960.97191,767.52011 L 962.86831,730.74533 L 898.39284,727.28942 L 899.49165,710.45278 L 896.54967,709.10585 L 897.27628,706.2879 L 896.07113,704.03714 L 893.21779,704.03714 L 889.86816,702.30031 L 889.90485,699.36746 L 881.02821,698.74963 z \"},\"va4\":{\"name\":\"VA-4\",\"path\":\"M 2223.7549,699.99635 L 2222.5675,700.74071 L 2222.9042,704.32071 C 2220.5439,704.35485 2218.6231,704.15595 2216.9848,703.78902 L 2216.9493,716.01773 L 2214.0073,719.8813 L 2213.7592,724.2411 C 2214.8778,729.28134 2215.793,734.38998 2217.3924,739.27001 C 2218.7913,739.9078 2220.8449,740.09036 2221.5927,741.18407 L 2226.6259,742.61959 L 2229.5679,741.14863 L 2232.4036,759.89932 L 2233.2543,760.8386 L 2235.7532,759.33219 L 2235.0797,754.0685 C 2238.1092,749.87226 2241.0005,745.80532 2243.0018,742.63734 C 2244.6101,743.92948 2245.8479,744.76509 2247.6275,745.02988 L 2250.6226,755.98256 L 2247.9819,766.91754 L 2326.3343,747.2984 L 2324.4911,740.74097 L 2327.1495,739.03959 L 2321.9922,735.72546 L 2319.1034,735.72546 L 2317.0298,731.70236 L 2316.25,732.11001 L 2316.0374,733.52783 L 2314.4954,733.52783 L 2314.3891,735.19377 L 2310.4547,736.73563 L 2308.7887,735.61912 L 2309.2849,733.63417 L 2306.6797,730.69219 L 2305.4214,730.69219 L 2305.4214,731.82645 L 2303.8086,731.82645 L 2302.5326,727.98058 L 2301.5756,727.64387 C 2301.043,727.45995 2299.58,726.68792 2298.3323,725.92474 L 2296.0638,724.52467 L 2293.494,725.14493 L 2291.7572,723.70942 L 2292.3774,720.76744 L 2291.2609,719.06605 L 2291.2432,723.62078 L 2280.5032,734.30764 L 2278.1992,728.10467 L 2273.0774,728.01602 L 2270.4366,726.73998 L 2264.3046,726.54506 L 2261.8588,725.05635 L 2261.1322,721.75991 L 2258.3497,719.15464 L 2260.8663,716.46078 L 2259.4663,714.22771 L 2260.1752,711.12625 L 2258.1725,713.83781 L 2256.9319,712.26051 L 2253.0152,712.06553 L 2251.8455,710.20467 L 2250.9061,710.68315 L 2250.2859,708.57417 L 2247.3261,709.05266 L 2249.2756,711.44526 L 2244.6677,711.40981 L 2240.4851,714.63536 L 2234.9556,716.65575 L 2232.6162,719.34962 L 2230.525,719.34962 L 2229.3552,716.26585 C 2230.1673,715.57435 2231.0065,714.90832 2232.2441,714.81259 L 2232.9884,711.69338 L 2237.8622,704.63972 C 2235.2794,704.1703 2231.9854,703.80638 2231.9428,703.00922 L 2229.816,704.19662 L 2228.7704,702.74335 C 2227.3901,702.38356 2225.2085,701.88511 2223.7549,699.99635 z \"},\"mo2\":{\"name\":\"MO-2\",\"path\":\"M 1622.0017,757.52242 L 1622.7042,752.17321 L 1618.4662,752.96827 L 1618.1971,751.63126 L 1619.2588,749.81044 L 1609.9322,750.66402 L 1608.3649,752.95647 L 1606.8517,752.06358 L 1606.1055,752.33989 L 1606.8213,754.59508 L 1605.4746,754.50564 L 1605.3541,753.32165 L 1603.5076,753.24236 L 1602.4654,743.54072 L 1605.4725,740.33474 L 1609.9048,740.33474 L 1611.854,738.10649 L 1611.3378,737.05271 L 1605.8681,736.59555 L 1602.8058,737.72634 L 1600.4987,735.63852 L 1601.1705,732.96207 C 1599.9697,732.93779 1598.7487,732.88817 1597.6448,733.28289 L 1598.7937,735.75058 L 1591.1228,735.51415 L 1590.2894,734.37989 L 1590.2721,729.40265 L 1582.9771,730.15007 L 1582.8578,726.76528 L 1579.0051,726.65741 L 1578.2723,723.32088 L 1575.1014,723.32088 C 1574.5022,720.03136 1574.3264,718.0121 1574.3925,714.90406 L 1577.9281,714.12749 L 1577.4104,708.73926 L 1598.7015,707.13378 L 1599.0759,709.13069 C 1599.2818,710.229 1599.8505,711.8055 1600.3397,712.63402 L 1601.2292,714.14043 L 1599.7938,717.60592 L 1600.9266,719.47092 C 1601.5497,720.49669 1602.2325,722.15463 1602.444,723.15533 L 1602.8286,724.97474 L 1606.7583,728.42504 L 1609.9673,728.42504 L 1612.9572,724.1106 L 1612.9572,722.18662 L 1616.6436,722.22683 L 1622.882,723.85596 C 1625.2342,725.20749 1627.8672,726.19344 1629.9663,727.9288 L 1626.4514,728.98717 C 1625.2634,728.33327 1624.1065,727.64637 1623.1656,726.6924 L 1620.2449,725.00786 L 1619.1957,725.65631 L 1618.5072,729.55929 L 1614.6039,729.55929 L 1612.9989,733.24563 L 1615.9479,735.8766 L 1613.4514,739.25328 L 1613.8203,741.18543 L 1618.5889,742.83822 L 1621.4014,740.19602 L 1624.2998,740.92348 L 1624.2998,741.97567 L 1627.7656,742.55284 L 1626.9411,743.69146 C 1626.5209,744.18469 1625.7547,745.678 1625.2385,747.00996 L 1624.2998,749.43177 L 1624.2998,751.09499 L 1624.2998,752.7582 L 1623.6417,754.20268 L 1622.9835,755.64721 L 1622.0017,757.52242 z \"},\"mo5\":{\"name\":\"MO-5\",\"path\":\"M 1420.7006,755.14531 L 1420.7006,754.44842 C 1420.7006,754.06515 1421.0896,753.32176 1421.565,752.79648 L 1422.4293,751.84133 L 1421.7499,750.07069 L 1416.0856,749.15104 L 1414.9995,728.74932 L 1416.8576,727.16425 C 1417.8795,726.31486 1419.0427,725.61304 1419.4424,725.60465 L 1420.1691,725.58939 L 1420.4955,726.44009 C 1420.6751,726.90797 1421.0395,727.29078 1421.3055,727.29078 C 1421.5714,727.29078 1422.415,726.61561 1423.1803,725.79033 L 1424.5715,724.28993 L 1424.0108,722.47018 L 1425.7293,724.56873 L 1427.0154,723.7739 L 1427.6385,726.15652 L 1429.2075,726.15652 L 1429.2075,727.02979 C 1429.2075,727.51009 1428.6674,728.97753 1428.0072,730.29078 C 1427.347,731.60402 1426.4326,733.10481 1425.9752,733.62583 L 1424.6954,734.61388 C 1429.0672,735.8158 1433.6834,736.28436 1438.1774,737.11957 C 1438.8901,739.60479 1438.9509,740.82695 1438.8487,743.59737 L 1424.9101,744.5882 L 1425.5212,754.79652 L 1420.7006,755.14531 z \"},\"ky3\":{\"name\":\"KY-3\",\"path\":\"M 1838.2491,754.13996 L 1837.8238,754.40101 L 1837.8238,742.46805 L 1839.2824,740.27916 C 1839.6549,738.97119 1838.8813,737.01273 1840.3998,736.35525 L 1844.6982,737.04261 L 1848.3157,732.92259 L 1848.3157,729.55929 L 1848.8423,729.55929 C 1849.1319,729.55929 1849.7517,729.94211 1850.2196,730.40999 L 1856.6444,733.46959 L 1857.9786,732.65916 L 1862.1944,731.53177 L 1865.4951,731.64565 L 1867.9362,735.30453 L 1872.2768,734.37989 L 1873.1728,735.84195 L 1867.7393,736.62424 L 1865.4006,734.55201 L 1861.3596,735.88567 C 1861.1333,738.79147 1860.876,740.76797 1860.123,743.20912 L 1854.2856,747.14028 L 1847.0375,747.14028 L 1838.6745,751.75677 L 1838.6745,752.81781 C 1838.6745,753.40138 1838.4831,753.99636 1838.2491,754.13996 z \"},\"ks3\":{\"name\":\"KS-3\",\"path\":\"M 1394.6127,752.35361 L 1394.6127,747.85356 L 1385.1077,746.47249 L 1383.8616,743.73751 L 1380.8787,743.73751 L 1381.6587,740.62965 L 1382.3226,740.20731 C 1382.6878,739.97501 1383.3176,739.78105 1383.7222,739.77629 L 1384.4578,739.76761 L 1380.7585,735.16423 L 1382.528,733.86028 L 1386.601,734.09632 L 1386.9565,737.61229 L 1392.3442,739.20048 L 1392.3442,737.42265 L 1394.9991,738.07978 L 1395.1063,736.04878 L 1396.1546,736.00885 L 1398.0469,737.52836 L 1400.7111,735.51868 L 1400.4236,723.32088 L 1405.9553,723.32088 L 1408.2238,725.62932 L 1410.6586,724.32623 L 1411.627,726.05659 L 1414.1786,725.77586 L 1415.1453,751.00254 L 1394.6127,752.35361 z \"},\"va2\":{\"name\":\"VA-2\",\"path\":\"M 2344.0925,648.54711 L 2328.3901,654.59061 L 2327.309,658.09972 L 2326.2811,658.41873 C 2325.7216,658.59624 2325.2709,658.96396 2325.2709,659.23397 C 2325.2709,659.50387 2324.7605,659.88657 2324.1366,660.08467 C 2323.5128,660.28265 2323.0024,660.65208 2323.0024,660.89991 L 2323.0024,661.34296 L 2325.6253,660.84672 L 2326.9191,662.40632 L 2325.395,666.89021 L 2324.0657,667.59912 C 2323.3294,667.98409 2322.4636,668.37501 2322.1517,668.48526 L 2321.5846,668.69793 L 2323.0733,670.50566 L 2321.9036,672.70328 L 2322.5061,673.30585 L 2321.9745,674.35147 C 2321.6778,674.92773 2321.0831,676.67318 2320.663,678.23279 L 2319.9009,681.06843 L 2320.0604,703.18645 L 2320.8225,704.60427 C 2321.2434,705.38804 2322.3434,707.08115 2323.2682,708.3615 L 2324.9519,710.7009 L 2328.2129,710.43503 L 2331.0485,705.66764 L 2331.403,702.61932 L 2330.9599,702.05219 C 2330.7213,701.74027 2330.407,700.77337 2330.251,699.90771 L 2329.9675,698.33041 L 2330.6586,697.92276 C 2331.0392,697.6967 2331.6513,696.92971 2332.0233,696.22137 L 2332.6968,694.94533 L 2332.0587,693.91741 L 2332.8562,691.45397 C 2333.2951,690.10517 2333.8265,687.34927 2334.0437,685.32189 C 2334.2607,683.29441 2334.4245,680.99754 2334.3981,680.21774 C 2334.3715,679.43793 2334.354,677.01335 2334.3627,674.83001 C 2334.3714,672.64657 2334.6454,669.19808 2334.9653,667.17378 L 2335.5501,663.50513 L 2338.0667,658.95041 L 2341.7354,658.9681 L 2341.9657,658.09972 C 2342.1016,657.62866 2342.4777,655.84527 2342.7987,654.12982 C 2343.1196,652.41425 2343.544,650.46407 2343.738,649.78771 L 2344.0925,648.54711 z M 2309.1255,715.36196 L 2306.981,718.23305 L 2307.1937,720.46612 L 2307.6462,721.39723 L 2308.2001,720.97824 L 2308.7547,721.61433 L 2307.3051,722.67877 L 2306.9467,723.26297 L 2307.6722,723.67397 L 2308.8774,722.16751 L 2310.561,722.22071 L 2310.561,716.79754 L 2309.1255,715.36196 z M 2325.1823,723.76256 L 2322.7011,726.10196 L 2319.0148,725.90704 C 2316.9931,725.79373 2314.5625,725.5164 2313.6093,725.30447 L 2311.8725,724.93226 L 2310.5964,726.47417 L 2311.518,727.98058 L 2315.5943,726.50962 L 2317.9869,728.68949 L 2317.4552,732.11001 L 2319.2806,735.22922 L 2321.9568,735.22922 L 2324.4556,736.70018 C 2325.8367,737.50953 2327.1114,738.41172 2327.2913,738.70288 L 2327.628,739.23457 L 2325.1114,741.27266 L 2326.8128,747.13892 C 2330.6393,746.2474 2334.4348,745.18567 2338.1908,744.03741 C 2338.2766,743.96005 2336.8504,741.63585 2335.0184,738.86236 C 2333.1865,736.08882 2330.5081,731.65183 2329.0813,729.0085 L 2326.4938,724.20566 L 2325.1823,723.76256 z \"},\"va3\":{\"name\":\"VA-3\",\"path\":\"M 2262.3196,694.36051 L 2262.3196,696.25682 L 2257.499,701.67998 L 2251.2606,700.01404 L 2248.7085,700.65206 L 2248.7085,701.50276 C 2248.7085,701.96582 2248.1981,703.29851 2247.5743,704.46249 C 2246.9504,705.62646 2246.44,707.04962 2246.44,707.63484 L 2246.44,708.6982 L 2250.4985,707.93615 L 2251.1011,710.25781 L 2252.0404,709.69068 L 2253.1038,711.56929 L 2257.3395,711.83516 L 2258.2257,713.27068 L 2260.7246,709.9388 L 2260.0334,714.22771 L 2261.4335,716.46078 L 2258.9168,719.15464 L 2261.6993,721.75991 L 2262.4082,725.0386 L 2264.3046,725.96018 L 2270.1708,726.15516 L 2273.3786,727.48434 L 2278.341,727.60843 L 2280.5918,733.66962 L 2290.676,723.62078 L 2290.676,716.58486 L 2289.5418,715.87595 L 2289.5418,718.81793 L 2287.9467,719.4382 L 2284.5794,717.68368 L 2284.2073,716.74434 L 2283.073,716.19496 L 2279.3335,716.53167 L 2279.2449,715.80506 C 2279.1974,715.41147 2279.1164,714.84094 2279.0677,714.52902 C 2279.0189,714.2171 2278.7921,712.73877 2278.5537,711.23259 L 2278.217,708.98177 L 2276.4624,709.12355 L 2275.4345,706.42969 L 2275.7712,705.10051 C 2275.9507,704.36517 2276.4687,703.30685 2276.9409,702.7611 L 2277.8093,701.76863 L 2281.1944,701.76863 L 2282.6477,699.78368 L 2282.0451,699.07476 C 2281.7207,698.68401 2281.1503,698.36585 2280.769,698.36585 C 2280.3877,698.36585 2279.6135,697.8543 2279.0499,697.2316 L 2278.022,696.09734 L 2276.675,697.2316 L 2276.3029,696.8417 C 2275.9736,696.04539 2275.853,695.27455 2275.9307,694.39595 L 2274.7255,694.39595 L 2275.4168,696.57583 L 2274.8496,697.30249 L 2273.9457,696.68216 C 2273.7498,696.36514 2273.3876,696.09734 2273.1305,696.09734 C 2272.8734,696.09734 2272.5221,696.62953 2272.3507,697.28474 L 2272.0317,698.48989 L 2270.8265,697.72783 L 2270.8265,695.53021 L 2269.7277,695.53021 L 2270.3835,697.2316 L 2269.4442,697.2316 C 2268.9319,697.2316 2267.9258,696.84311 2267.1934,696.36315 C 2266.4608,695.88319 2265.6382,695.55806 2265.3679,695.63655 C 2265.0977,695.71481 2264.2975,695.45841 2263.5956,695.06942 L 2262.3196,694.36051 z M 2294.0079,713.1112 L 2294.7523,714.2986 L 2293.6358,715.66328 L 2294.1675,719.11919 L 2297.517,720.99781 C 2298.1791,720.70159 2298.6929,720.24052 2299.183,719.68632 L 2299.183,716.85068 L 2295.5498,713.1112 L 2294.0079,713.1112 z M 2306.4493,719.91674 C 2305.2298,720.78309 2304.5106,722.17721 2303.6137,723.35496 L 2305.5809,726.35008 L 2306.3253,725.26902 C 2306.7215,724.69571 2307.2669,724.21337 2307.5836,723.83345 L 2306.7861,723.30177 L 2307.3178,722.52196 L 2308.6115,721.63583 L 2308.2216,721.15734 C 2308.2216,721.15728 2307.8888,721.46359 2307.5481,721.77761 C 2307.1886,720.98845 2307.0526,720.43879 2306.4493,719.91674 z M 2315.5943,727.12988 L 2313.4853,727.7679 C 2312.3257,728.12134 2310.7382,728.47477 2309.9584,728.56546 L 2308.5406,728.74269 L 2308.8242,730.12506 L 2307.6013,730.12506 L 2309.6749,733.59872 L 2309.3204,735.26467 L 2310.5964,736.27483 L 2313.9283,735.12288 L 2313.9815,733.24427 L 2315.6829,733.20882 C 2315.6906,731.86717 2316.1894,731.56755 2317.3311,731.22387 L 2317.3311,728.56546 L 2315.5943,727.12988 z \"},\"in4\":{\"name\":\"IN-4\",\"path\":\"M 1771.5938,580.279 L 1761.9703,581.43101 L 1762.7501,585.93259 C 1760.9811,586.4438 1759.22,586.55371 1757.451,586.6415 L 1763.5122,628.23682 L 1757.4687,627.33298 L 1758.1954,623.82388 L 1754.066,623.82388 L 1750.9291,628.69761 L 1754.066,628.60902 L 1754.8458,635.41457 L 1759.1879,635.41457 L 1759.9854,641.74157 L 1765.2667,641.29853 L 1766.0289,646.40269 L 1784.8859,643.95694 L 1787.1366,658.09972 L 1789.2811,658.09972 L 1788.0228,668.48526 L 1791.0357,667.72315 L 1792.2054,675.78704 L 1789.9014,677.78969 L 1795.1978,716.89276 L 1812.2498,714.15682 L 1813.5613,708.60962 L 1811.2396,696.27457 L 1797.4159,697.88731 L 1794.6157,675.98196 L 1809.4673,673.37675 L 1809.0774,668.41437 L 1822.9721,665.56097 L 1822.405,662.88486 L 1818.1161,663.75325 L 1816.3615,654.32474 L 1807.8546,655.79576 L 1805.8342,652.42843 L 1802.9099,653.84625 L 1802.9454,652.41068 C 1803.1079,650.8999 1804.021,649.49547 1804.9835,648.299 L 1804.0087,645.14434 C 1803.744,644.19644 1802.3086,643.88384 1801.244,641.35167 L 1801.244,639.88071 L 1803.3885,640.55417 L 1805.2139,638.7287 L 1800.6414,609.98236 L 1797.2741,609.23801 L 1797.2741,607.05813 L 1779.2323,609.32665 L 1777.8854,601.31596 L 1774.4471,601.68811 L 1773.5433,595.60922 L 1774.6421,594.47497 L 1773.5256,593.12803 L 1774.0218,590.04427 L 1776.2903,590.04427 L 1776.2903,587.20863 L 1771.6292,587.20863 L 1772.3559,583.30962 L 1771.5938,580.279 z \"},\"co2\":{\"name\":\"CO-2\",\"path\":\"M 858.25958,709.79327 C 857.70884,709.91452 856.5751,709.93018 855.74017,709.82809 L 854.22208,709.64247 L 853.54396,708.82541 C 853.17102,708.37607 852.53561,708.0084 852.13193,708.0084 C 851.72824,708.0084 851.31288,708.26361 851.20887,708.57548 L 850.41687,709.23777 L 818.41647,706.2608 L 821.0155,672.91743 L 843.72118,673.81213 L 845.47355,647.6092 L 844.45414,646.94809 L 844.83179,641.68401 L 845.71436,642.65754 L 845.96219,644.77355 L 849.88559,646.6592 L 851.99808,644.07026 L 852.54417,644.57353 L 852.53289,646.26947 L 854.71463,648.07623 L 858.25181,647.93133 L 860.44688,649.59415 L 861.2302,647.76584 L 862.3517,647.8441 L 863.84455,650.16128 L 865.98183,650.16128 L 867.02949,648.89641 L 867.89572,650.08001 L 874.04465,647.79907 L 876.78427,649.59415 C 877.27643,648.79665 877.35668,647.82964 877.8498,647.09441 L 880.22697,645.55993 L 880.22697,641.58249 L 884.23067,641.90615 L 883.63411,645.56005 L 885.33527,648.96934 L 888.72976,652.1701 L 889.55488,655.63327 L 911.80305,657.1618 L 910.24027,661.74896 L 912.53096,663.4888 C 912.76938,664.73064 912.98966,665.98388 913.39646,667.17514 L 923.08477,663.20626 L 924.99736,666.44399 L 923.95186,672.86786 L 924.51445,678.23415 L 921.91093,682.70068 L 917.83464,683.49205 L 916.79055,682.06935 L 913.19932,681.28053 L 912.1101,683.14871 L 908.20462,683.00529 L 906.49286,680.78623 L 903.99222,680.78623 L 901.26404,683.73002 L 899.96572,699.56726 L 880.59022,698.27676 L 880.19136,700.0686 L 879.50025,700.13575 C 879.12016,700.17273 878.61774,700.17273 878.3838,700.13575 C 878.14986,700.09883 877.92653,700.32381 877.88757,700.63573 C 877.8486,700.94765 877.78049,701.39426 877.73631,701.62821 C 877.69208,701.86215 877.15688,702.62777 876.54687,703.32959 C 875.93693,704.03141 875.22115,704.60563 874.95625,704.60563 C 874.6914,704.60563 874.11009,704.97024 873.6645,705.41583 C 873.21891,705.86142 872.8543,706.45629 872.8543,706.73781 C 872.8543,707.01927 872.21628,707.59105 871.43648,708.0084 L 870.01866,708.76722 L 870.01866,710.27692 L 869.30974,710.26835 C 868.91984,710.2637 867.58,709.89206 866.33232,709.44256 L 864.0638,708.62533 L 859.87726,708.57553 L 859.56908,709.07421 C 859.39957,709.34847 858.81032,709.67208 858.25958,709.79327 z \"},\"ca4\":{\"name\":\"CA-4\",\"path\":\"M 180.50642,445.10681 L 169.17343,493.64514 L 174.37865,494.85029 L 164.35283,540.25603 L 157.03823,538.63279 L 156.00538,543.94236 L 159.7996,545.53251 L 161.14971,548.41661 L 160.00904,548.58471 L 160.53669,551.85094 L 159.40815,552.18345 L 159.40815,554.18613 C 157.94841,554.7777 156.84022,554.76781 155.43825,554.52286 L 154.74709,556.10896 L 156.82471,557.43277 L 156.16491,559.41434 L 157.35316,561.66496 L 156.29674,563.65642 L 153.73687,565.86543 L 152.49627,573.68119 L 153.32927,574.63822 L 163.96194,593.99665 L 167.34795,592.2901 L 167.34795,593.1231 C 167.34795,593.58429 167.02418,594.67873 166.63904,595.55109 C 166.25396,596.42356 165.48562,597.47252 164.91996,597.8905 L 163.89204,598.65261 C 164.65435,600.39074 164.68565,599.70678 163.64392,607.54944 L 161.25132,607.37221 C 160.86142,607.43034 160.1727,607.51048 159.72716,607.54944 C 159.28157,607.5884 158.52218,608.02775 158.02578,608.52416 C 157.52948,609.02057 156.66898,609.51942 156.12947,609.62297 C 155.58985,609.72653 154.96317,609.82946 154.72934,609.8534 C 154.4954,609.87727 154.30388,610.28158 154.30399,610.75723 L 154.30399,611.62567 L 150.90122,612.29914 L 149.92069,614.76002 L 147.01677,625.66426 C 143.8047,625.86095 142.30117,626.29066 140.40934,627.18627 L 138.84974,632.09545 L 136.29766,631.45743 L 133.76173,642.80261 L 150.05053,647.72693 C 150.56532,652.04051 150.68751,656.42827 151.59244,660.68231 L 158.2739,661.32033 L 158.2739,660.59366 L 162.20835,660.34555 L 164.06927,661.16079 C 166.66554,662.36974 168.48205,664.64846 170.89091,666.12833 L 187.10887,665.98139 L 187.78234,665.14845 C 188.15562,664.69866 188.78928,664.3332 189.18241,664.3332 L 189.89132,664.3332 L 190.4762,662.15327 L 193.71944,662.52548 L 194.48155,661.88746 C 194.90394,661.54179 195.46818,660.68804 195.73984,659.9734 L 196.23607,658.66191 L 199.14261,658.66191 L 205.11521,655.57815 L 208.44709,651.48416 L 208.46479,651.46647 L 208.50023,651.44871 L 210.89283,649.81822 L 205.32788,642.16198 L 244.45976,459.19207 C 221.13962,454.83071 204.16029,450.80308 180.50642,445.10681 z \"},\"ca3\":{\"name\":\"CA-3\",\"path\":\"M 127.56036,641.73664 L 125.2564,644.0406 L 126.70967,646.75221 L 127.43627,646.75221 C 127.83684,646.75221 128.8132,646.46229 129.6162,646.09644 L 131.08716,645.42297 L 132.4164,646.75221 L 134.79125,646.75221 L 135.97865,647.93961 L 135.46472,653.32733 L 136.36855,654.08944 C 136.86983,654.50542 137.29002,655.16403 137.29013,655.5604 L 137.29013,656.28706 L 135.58875,656.92508 L 135.58875,660.80634 L 134.17093,661.95835 L 128.94274,662.73815 L 128.25152,660.93043 L 126.62102,660.93043 L 127.18815,663.0926 L 125.36274,665.85736 L 120.94974,667.32832 L 116.73172,666.53082 L 119.63825,653.34508 L 119.07112,652.4235 L 115.45568,652.4235 L 112.28333,650.77525 L 108.08301,650.54488 L 104.68023,652.28171 L 103.26241,651.76772 L 103.26241,650.29676 C 102.43394,650.02749 101.57712,649.86081 100.72808,649.76508 L 98.654494,653.9299 L 99.363404,656.76555 L 105.03469,658.21881 L 107.63996,655.77307 L 114.87086,656.10983 L 115.2962,658.30746 L 112.70868,666.01683 L 115.59746,674.36429 L 119.23066,673.8326 L 120.24083,671.13874 L 122.29667,671.13874 L 124.90194,672.98191 L 125.53996,672.34389 C 125.88795,671.99584 126.4738,671.70587 126.8337,671.70587 C 127.19371,671.70587 128.1943,672.36833 129.06677,673.17683 L 130.66182,674.64785 L 137.36102,675.10864 L 139.16875,675.10864 C 140.16417,675.10518 142.16092,674.73536 143.61719,674.2934 L 146.27561,673.49584 L 148.63271,674.11617 L 148.63271,674.75419 L 149.89105,687.86904 L 159.63858,706.38931 L 160.24115,705.64495 C 160.56657,705.23089 161.57192,704.50009 162.49192,704.03221 C 163.41191,703.56433 164.87045,702.51417 165.71746,701.6928 L 167.24162,700.20409 L 167.63152,697.51023 L 170.20135,697.15577 C 176.07207,692.09409 180.63594,685.27097 187.00254,680.77993 L 190.56257,677.20101 L 197.68934,676.1897 L 202.7935,682.00277 L 205.34558,681.15208 C 206.74769,680.68125 208.53556,680.22738 209.31548,680.1596 C 210.09528,680.09178 211.2102,680.07567 211.79667,680.12416 L 212.86003,680.2128 L 212.25746,683.91683 L 214.19406,686.29957 L 215.55389,684.74983 L 215.55389,682.48132 L 218.10597,682.46357 L 220.40993,677.64297 L 219.63013,674.2402 C 219.19554,672.37701 218.83626,670.00959 218.85033,668.95881 L 218.88578,667.04475 L 221.34927,664.42178 L 211.19409,650.24357 L 210.68016,650.61577 L 208.46479,652.84884 C 207.05763,654.27613 205.91259,655.67207 205.91271,655.9326 L 205.91271,656.3934 L 205.11521,656.3934 C 204.67914,656.3934 203.21159,657.03516 201.85422,657.81122 L 199.39073,659.22904 L 196.27152,659.22904 L 196.27152,661.32033 L 194.10934,663.28753 L 190.84207,662.87647 L 190.60023,664.90033 L 188.62218,665.16898 L 187.65825,666.54852 L 170.48491,666.54852 C 169.22422,665.69397 167.72417,665.05481 166.78083,663.83696 C 166.78083,663.6079 165.79533,662.85231 164.5832,662.17102 L 162.36788,660.93043 L 159.40815,660.93043 L 159.40815,662.17102 C 156.61604,661.87849 153.76987,661.86517 151.02531,661.24944 L 149.57204,648.47129 L 127.56036,641.73664 z \"},\"oh2\":{\"name\":\"OH-2\",\"path\":\"M 1909.9909,651.29417 L 1910.7885,655.4413 L 1905.5957,654.64375 L 1905.5957,652.42843 C 1904.4283,652.75946 1903.4593,653.89366 1902.6005,655.459 L 1903.9475,659.19853 L 1902.6714,661.60883 L 1899.6408,660.91761 L 1899.8712,662.92031 L 1895.3873,663.20387 L 1895.3873,665.45464 L 1898.0812,666.1281 L 1898.7192,670.02711 L 1896.8052,673.42989 L 1898.2762,674.36922 L 1899.1446,677.66566 L 1903.6107,678.03781 L 1906.1628,680.41266 L 1906.1628,681.91912 L 1910.0263,686.20803 L 1910.8239,690.39061 L 1912.1176,691.41853 L 1919.1713,692.18058 L 1922.6982,690.35516 L 1928.8657,691.13496 L 1930.8683,693.66929 L 1933.4558,694.50229 L 1934.4661,697.16071 L 1936.6105,697.39107 C 1937.7954,697.51437 1938.9641,697.65762 1939.198,697.71008 L 1939.6234,697.79873 L 1939.6234,694.41365 L 1944.1073,692.12744 L 1947.4923,692.12744 L 1948.2012,693.2617 L 1953.1813,693.2617 L 1955.9815,694.53774 L 1956.6018,696.94803 L 1958.4095,694.39595 L 1961.8123,694.39595 L 1963.8681,693.29714 L 1964.5239,689.94751 L 1966.8456,689.2209 L 1967.5368,686.45615 L 1969.0432,686.08394 C 1969.8665,685.88312 1971.1349,685.24238 1971.8788,684.66612 L 1973.2435,683.62051 L 1975.636,683.51417 L 1972.8004,682.71662 L 1972.4459,680.21774 C 1970.7721,680.2863 1969.1107,680.15081 1967.5899,678.99484 L 1965.3037,673.05774 L 1976.15,671.3386 L 1974.7854,657.74526 L 1948.2721,660.88216 L 1948.1303,669.72585 L 1937.6384,673.90843 L 1925.0553,675.68071 L 1923.0172,661.92784 L 1916.3888,662.61899 L 1915.1483,651.29417 L 1909.9909,651.29417 z \"},\"ne3\":{\"name\":\"NE-3\",\"path\":\"M 973.80321,488.93583 C 972.04701,531.94628 970.29571,571.35562 968.53961,612.56989 C 1003.5264,614.57531 1027.3688,614.97406 1061.6373,615.90177 C 1061.4653,636.67581 1061.1706,656.91345 1060.7511,678.21503 C 1148.7496,679.14807 1208.0121,679.36784 1302.1176,676.70863 L 1300.9124,634.12078 L 1279.6273,634.72335 L 1278.2095,590.77088 L 1283.4555,590.68229 L 1282.7111,569.46811 L 1256.2333,570.07068 C 1256.1286,558.39298 1256.0166,555.94486 1255.4889,547.50959 L 1277.3234,547.50959 L 1276.4904,531.06286 L 1282.3212,530.37167 L 1282.3035,513.8186 L 1286.8582,513.48187 L 1286.8582,511.07157 L 1290.6155,511.67415 L 1292.1751,509.72464 L 1292.0865,505.52434 L 1290.1724,504.97494 L 1287.5849,505.63068 C 1286.4299,503.71484 1284.7311,503.10702 1282.6048,502.36969 L 1282.7643,500.43791 C 1278.0433,499.94989 1274.0549,500.78055 1256.6232,500.95187 L 1254.7623,499.95939 C 1253.0869,500.28896 1253.4626,502.52329 1252.8128,503.80524 L 1249.9641,506.42115 L 1245.2877,506.51919 L 1240.6373,502.17474 L 1238.2447,502.1393 C 1236.402,500.34589 1234.2885,499.79422 1233.1582,499.87078 C 1232.3195,498.4695 1230.6383,497.10484 1225.697,495.77682 L 1224.4564,492.78167 C 1138.7507,493.29459 1059.8681,492.37447 973.80321,488.93583 z \"},\"oh3\":{\"name\":\"OH-3\",\"path\":\"M 1925.5783,675.11494 L 1923.5436,661.36445 L 1916.8639,661.97014 L 1915.7022,650.7284 L 1909.4171,650.7284 L 1910.0614,654.69831 L 1906.1628,654.00981 L 1906.1628,651.98403 L 1905.3492,651.67182 L 1903.3009,653.45232 L 1902.0661,655.54509 L 1903.3477,659.08907 L 1902.6386,660.93672 L 1899.6868,660.54994 L 1898.608,647.72574 C 1896.5629,646.35306 1896.7515,645.38651 1896.5216,644.34384 L 1891.0707,645.06693 L 1887.435,625.40889 L 1901.0675,622.87762 L 1902.2993,623.63899 L 1900.9448,631.9252 C 1902.8243,633.12757 1904.7037,633.54792 1906.5832,633.71454 L 1907.9813,643.42044 L 1933.3229,641.3507 L 1934.6736,651.44378 L 1944.7275,650.01632 L 1944.8651,655.77954 C 1945.7645,658.06779 1946.6638,657.99871 1947.5632,658.10108 L 1947.5632,669.28213 L 1937.6384,673.34708 L 1925.5783,675.11494 z \"},\"in5\":{\"name\":\"IN-5\",\"path\":\"M 1829.1609,670.10169 L 1828.3457,659.80246 L 1826.2671,659.80246 L 1825.5017,654.69831 C 1823.8892,655.13641 1822.3474,655.46852 1821.0639,655.41311 L 1822.2746,662.48697 L 1818.4594,663.02875 L 1816.8738,653.69409 L 1808.0495,655.28704 L 1807.0782,653.89763 L 1816.4582,651.76438 L 1817.1167,649.14039 L 1820.6587,647.90563 C 1820.0961,644.42534 1819.6965,640.99937 1819.6299,637.68444 L 1813.0362,639.55478 L 1807.766,636.8663 L 1805.2139,637.16025 L 1801.0314,609.56342 L 1797.8412,608.76088 L 1797.8412,606.49237 L 1794.4639,606.71218 L 1793.2666,599.24219 L 1802.9454,597.86827 L 1798.9302,570.96765 L 1809.1838,569.36188 L 1809.1838,566.42244 L 1820.5263,564.44839 L 1820.5263,567.41527 L 1836.7656,564.71257 L 1840.1645,585.79217 C 1837.992,585.70307 1836.2215,586.09638 1835.0655,587.22712 L 1837.6515,603.53819 C 1831.2519,604.58851 1824.8092,605.42401 1818.4462,606.68201 L 1822.3807,633.71454 C 1827.1589,633.58773 1830.9739,632.22254 1835.9723,631.84801 L 1836.6802,635.8833 L 1835.7721,636.07595 L 1836.3134,640.82872 L 1834.5876,642.53498 L 1836.059,649.7006 L 1831.8689,648.90078 L 1831.8689,653.0103 L 1836.2523,652.30939 L 1838.7712,668.71909 L 1829.1609,670.10169 z \"},\"ca2\":{\"name\":\"CA-2\",\"path\":\"M 173.74509,495.3505 L 168.40956,494.18177 L 180.03319,445.00347 L 87.391504,422.2699 L 84.988484,427.27831 L 82.914914,427.27831 L 82.188284,428.46573 L 80.203334,427.82771 L 78.732344,430.59247 L 77.420854,430.09623 L 77.190464,437.59296 L 72.919274,443.72504 L 74.148994,444.77668 L 73.646474,446.57127 L 74.744714,447.9785 L 75.365014,454.23464 L 73.202834,457.53736 L 79.724254,459.31479 L 79.919764,470.66365 L 80.799334,473.90177 L 79.080794,473.39953 L 78.360164,477.04385 L 76.192554,478.75753 L 78.324434,481.92418 L 75.034284,486.18299 L 72.188054,487.96821 L 69.906404,486.25969 L 67.088484,486.02386 L 68.098674,490.81444 L 67.549274,498.22256 L 56.188975,544.00048 L 83.978284,550.34524 L 83.978284,554.74048 L 81.497094,556.12189 L 80.697924,558.65593 L 80.646404,564.23989 L 81.762934,568.51108 L 80.308694,575.57733 L 86.813924,577.17754 C 86.626804,580.89824 85.388824,584.53246 84.261844,588.05932 C 83.726594,589.61893 82.878864,591.37884 82.365514,591.95833 L 81.426204,593.00395 L 81.621154,594.17365 C 81.727264,594.81428 82.184344,595.6939 82.631354,596.14091 C 83.078364,596.58792 83.828674,597.69813 84.297294,598.60434 L 85.147984,600.25259 L 86.122734,600.27028 C 86.660604,600.28021 87.590834,600.66296 88.196304,601.12098 L 89.295114,601.95398 L 91.669964,601.95398 L 92.981454,605.44533 L 92.626994,606.38467 C 92.434344,606.90773 92.091204,607.4693 91.864914,607.62526 C 91.638684,607.78122 91.379484,608.86206 91.280064,610.01781 L 90.702614,612.30918 L 93.584024,615.45873 L 93.074244,618.39458 L 95.754574,622.06833 L 92.875114,621.20091 L 91.740854,622.31741 L 92.786504,625.98605 C 94.127054,626.35083 95.531864,626.58772 96.685514,627.38612 C 96.838974,627.63447 97.358234,630.35879 97.855214,633.44731 L 98.759074,639.06546 L 99.219864,639.36672 C 99.469974,639.53413 99.973944,640.86269 100.3364,642.32645 C 100.6989,643.79027 100.99214,645.90566 100.99214,647.02296 L 100.99214,649.0611 L 103.82778,650.12447 L 103.82778,651.29417 L 104.82026,651.27642 C 105.36612,651.2665 106.28563,650.91289 106.85838,650.47892 L 107.90402,649.68137 C 111.41357,649.94112 112.85533,650.00072 115.63115,651.8613 L 119.58333,651.8613 L 120.20362,653.47404 C 119.28616,657.59837 118.3213,661.7125 117.43887,665.84454 C 118.28188,666.28293 119.99952,666.47774 120.93736,666.60245 L 125.14828,665.36605 L 126.53065,662.22909 L 125.82174,660.36823 L 127.64719,660.36823 L 127.64719,658.71999 L 126.90283,658.27694 C 126.48939,658.02752 125.9737,657.36364 125.76857,656.80593 L 125.3964,655.79576 L 126.38887,655.42355 C 126.92946,655.21887 127.69817,654.71203 128.10798,654.30704 L 128.85234,653.58038 L 129.34857,651.32962 L 126.93828,650.23081 L 127.48768,647.32427 L 126.22937,647.32427 L 124.70521,643.88605 L 127.41679,641.15675 L 133.17669,642.52137 L 136.13737,630.69419 L 138.65303,631.1611 L 139.6455,627.01397 C 142.03389,625.92503 143.48843,625.10292 146.61055,625.34803 L 150.21568,611.56391 L 153.7348,611.32833 L 153.88138,609.15974 L 157.08471,608.75952 L 160.17072,606.77457 L 163.34085,606.77457 C 163.60493,604.88626 163.87311,602.99823 164.08521,601.10328 C 164.1084,600.79136 163.91371,600.05857 163.65986,599.47279 L 163.19907,598.40942 L 164.35105,597.48784 C 164.98708,596.9819 165.82054,595.96555 166.19422,595.23702 C 166.5679,594.50843 166.73861,593.52973 166.58412,593.37513 L 163.54321,594.81683 L 153.27432,575.97239 L 151.65638,574.51975 L 153.06067,565.53559 L 155.91501,563.40692 L 156.84175,561.75645 L 155.596,559.13573 L 156.12768,557.64702 L 154.16045,556.21147 L 154.94026,553.78345 C 156.44003,554.03845 157.40619,554.22674 158.83927,553.74801 L 158.83927,551.47949 L 160.06214,551.47949 L 159.31778,548.07672 L 160.5761,548.07672 L 159.40639,545.8791 L 155.40105,544.44355 L 156.6062,537.99246 L 163.78392,539.67613 L 173.74509,495.3505 z \"},\"ca5\":{\"name\":\"CA-5\",\"path\":\"M 131.59248,661.7172 L 129.38532,662.21667 L 128.74059,660.50531 L 128.1353,660.35434 L 128.1353,658.57798 L 126.51293,657.56956 L 125.9796,655.9313 L 127.65458,655.22023 L 129.09246,653.97578 L 129.89595,650.71179 L 127.48916,649.89302 L 127.86447,647.42811 L 130.90614,646.23663 C 131.94731,647.13417 133.40329,647.10332 134.54323,647.0922 L 135.46069,647.88454 L 134.91061,653.63227 L 136.6786,655.72759 L 135.01986,656.36408 L 135.01986,660.2307 L 134.31095,660.79335 C 133.92105,661.10278 132.69775,661.51848 131.59248,661.7172 z \"},\"md5\":{\"name\":\"MD-5\",\"path\":\"M 2272.209,604.2978 L 2270.2594,604.91365 C 2269.1677,605.2664 2267.2962,606.24935 2266.0946,607.11127 L 2263.897,608.68863 L 2259.3776,606.33147 L 2258.8282,604.8782 L 2254.0574,604.06023 L 2253.4494,601.47821 L 2251.5271,601.83675 L 2250.7957,600.86605 L 2250.2981,600.92946 L 2250.4099,602.02487 C 2250.4052,602.76486 2250.0564,604.48677 2249.6479,605.85298 L 2248.9035,608.33417 L 2250.2504,608.92648 C 2250.9897,609.66585 2251.7226,611.02803 2251.8809,611.02803 L 2256.3293,608.21009 L 2257.3927,609.27345 L 2259.4308,608.19239 C 2260.8716,610.8436 2262.5326,613.40742 2263.4539,616.29167 L 2263.4539,617.19556 L 2255.2305,621.73259 L 2253.281,623.75298 C 2252.2061,624.86433 2251.107,625.77338 2250.853,625.77338 C 2250.6766,625.87654 2250.4515,625.98651 2250.1972,626.11008 L 2250.4277,627.82922 L 2246.9185,630.399 L 2247.6451,634.72335 L 2245.5362,636.26526 L 2243.0372,641.1213 L 2243.0372,642.55682 C 2243.0372,643.34637 2243.4518,645.26009 2243.9588,646.81028 L 2244.8804,649.62823 L 2247.078,650.81563 L 2249.7542,649.0611 L 2250.4808,646.75714 L 2252.1113,646.75714 L 2252.1113,646.11912 C 2252.1113,645.7658 2252.6625,645.00006 2253.3342,644.41774 C 2254.0058,643.8353 2254.7571,643.35437 2255.0001,643.35437 C 2255.2431,643.35437 2255.9378,644.05619 2256.542,644.91397 C 2257.1461,645.77176 2257.8001,647.02823 2258.013,647.71417 L 2258.4029,648.97246 L 2259.6612,649.34467 C 2260.347,649.54985 2261.2846,650.1577 2261.7525,650.70929 L 2262.6032,651.71952 L 2265.5983,652.41068 L 2266.2186,650.03583 L 2267.7073,650.53206 L 2268.0795,653.06645 L 2269.6391,653.66902 L 2273.9457,652.23345 L 2279.0499,652.49932 L 2281.5134,654.09437 L 2282.2754,656.48692 L 2284.0123,655.81345 L 2285.5719,657.10724 L 2285.5719,655.26407 L 2287.3087,655.26407 L 2287.9645,656.96546 L 2289.9317,656.96546 L 2290.9596,658.09972 C 2291.5242,658.72356 2292.2371,659.23397 2292.537,659.23397 L 2293.0686,659.23397 L 2291.6863,653.58038 L 2286.7061,648.61801 L 2286.7061,645.55199 L 2284.9516,643.77972 L 2285.6428,640.58962 L 2284.5972,639.5617 C 2284.0205,638.99553 2282.4563,637.78023 2281.1235,636.86784 C 2279.7906,635.95527 2278.2463,634.55163 2277.6853,633.74863 L 2276.6574,632.29536 L 2275.913,627.47477 L 2273.6622,623.78843 L 2273.6622,621.23635 L 2273.1128,621.23635 C 2272.8118,621.23635 2272.3095,620.7582 2271.9962,620.17298 L 2271.4291,619.10962 L 2272.5457,616.80566 C 2273.1599,615.53438 2273.6622,614.22602 2273.6622,613.89912 L 2273.6622,613.29655 L 2271.8722,613.29655 L 2272.2621,611.45338 C 2272.4789,610.43964 2272.9316,609.28411 2273.2546,608.88355 L 2273.8394,608.15695 L 2272.209,604.2978 z \"},\"md4\":{\"name\":\"MD-4\",\"path\":\"M 2236.3912,593.96098 L 2236.6748,596.53081 C 2235.7521,597.93059 2235.5753,598.41243 2234.4949,599.11833 L 2233.9277,599.11833 L 2232.8112,596.1586 L 2229.3376,596.77893 C 2229.5401,598.49982 2230.1799,600.14308 2230.5781,601.82989 L 2232.4745,602.57424 L 2233.8746,600.53615 L 2234.7784,601.97167 L 2236.1785,600.85516 L 2238.9787,604.16929 L 2242.4701,605.90612 L 2243.1081,603.74395 L 2244.5614,602.5211 L 2248.1946,603.24771 L 2247.0958,608.26328 L 2246.5286,609.34434 L 2248.2105,609.10586 L 2250.7085,610.59361 L 2251.922,612.25479 L 2251.7959,613.61528 L 2253.8127,614.55484 L 2253.8127,615.21061 C 2253.8119,615.56711 2252.8968,617.37262 2251.7746,619.23365 L 2249.7364,622.61873 L 2250.1441,625.77338 C 2250.4309,625.67805 2250.7598,625.55277 2251.1011,625.33028 C 2252.8734,623.68209 2254.5059,621.36305 2256.4179,620.38566 L 2262.8867,616.98289 L 2262.869,616.13219 C 2262.8661,615.66431 2262.0397,613.81791 2261.0259,612.0382 L 2259.1827,608.81266 L 2257.5345,609.82289 L 2256.2939,608.79497 L 2252.0482,611.59908 L 2250.1816,609.26358 L 2248.3718,608.26328 L 2249.9137,602.9819 L 2249.5238,601.10328 L 2247.1844,601.42229 C 2245.1038,599.0923 2243.1586,597.08336 2240.8574,595.85734 C 2240.1805,595.12053 2240.2344,595.08111 2238.3584,595.11299 C 2237.4756,595.12847 2236.9441,594.68475 2236.3912,593.96098 z \"},\"ia5\":{\"name\":\"IA-5\",\"path\":\"M 1384.6348,455.67019 L 1310.784,459.1793 L 1310.2523,461.9086 L 1314.0982,465.08098 L 1313.6374,471.12444 L 1311.741,472.17009 L 1313.0525,473.72969 L 1312.3613,474.84623 L 1315.9945,475.20068 L 1316.473,477.18563 C 1316.7299,478.27736 1317.2073,479.63913 1317.5364,480.21623 L 1318.139,481.26187 L 1317.3769,485.71029 L 1315.3742,486.79138 L 1315.8172,492.9589 L 1314.0804,494.67801 L 1314.7539,496.41484 L 1314.2931,497.14147 C 1314.0463,497.54083 1313.8218,498.33375 1313.7792,498.91375 C 1313.7364,499.49375 1313.4277,500.14402 1313.1057,500.3493 C 1312.7837,500.55458 1311.974,501.94154 1311.298,503.43306 L 1310.0574,506.14464 L 1310.4473,506.76494 L 1315.3033,511.42603 C 1315.9439,513.0806 1316.7817,514.69407 1317.0401,516.4593 C 1316.9684,516.69324 1317.1505,516.88463 1317.4477,516.88464 L 1317.9972,516.88464 L 1318.0503,520.85454 L 1321.4708,520.85454 L 1322.7469,523.63702 L 1321.0101,526.29543 L 1321.1873,529.73365 L 1322.162,530.72613 C 1322.7049,531.26906 1323.1545,532.03024 1323.1545,532.42751 L 1323.1545,533.15415 L 1325.423,535.20999 L 1325.423,537.79751 L 1324.2887,538.50642 L 1324.3242,540.42048 L 1325.299,541.59019 C 1325.8344,542.2292 1326.7203,542.92309 1327.2662,543.13207 L 1328.2586,543.50425 L 1328.2586,548.00583 L 1330.5272,548.71474 L 1330.5272,550.34524 L 1332.2285,550.34524 L 1332.2285,551.97573 L 1334.7806,552.33019 L 1334.8693,556.30009 L 1333.9299,557.5584 L 1335.0642,559.01167 C 1335.6896,559.80678 1336.1984,560.8199 1336.1984,561.28019 L 1336.1984,562.13088 L 1338.467,562.71573 L 1338.467,563.76137 C 1338.4624,564.33644 1338.1237,565.44503 1337.7226,566.22484 L 1336.996,567.64269 L 1338.6442,568.90098 L 1337.8821,570.88593 L 1336.1984,570.23021 L 1336.1984,570.74415 C 1336.1984,571.02782 1336.4902,571.43394 1336.8365,571.64804 L 1337.4568,572.03794 L 1336.8542,575.79516 L 1338.4493,577.12434 L 1337.8289,579.64098 C 1338.3729,580.20527 1339.0428,580.59392 1339.6721,580.75754 L 1339.8848,578.98526 L 1342.1533,578.98526 L 1342.5255,581.60823 L 1341.2671,583.11464 L 1342.1887,583.4514 C 1342.6901,583.64377 1343.7224,583.80586 1344.4927,583.80586 L 1345.8928,583.80586 L 1345.5561,592.54315 L 1348.3917,593.21662 L 1348.7462,595.60922 L 1346.6903,597.13338 L 1346.6903,600.53615 L 1350.0754,601.10328 L 1350.4653,603.08823 L 1348.5512,603.08823 L 1348.9588,604.08071 C 1349.1837,604.62657 1349.4643,606.82714 1349.5792,608.97219 L 1349.7918,612.8712 L 1351.6704,614.25358 L 1351.1033,617.26645 L 1352.6452,618.54249 L 1352.6452,621.11226 L 1350.9615,621.76803 L 1351.2097,622.49464 C 1351.3429,622.89639 1351.5659,624.18916 1351.7059,625.36573 L 1351.954,627.49246 L 1349.8095,628.64447 L 1349.8273,629.33563 C 1349.8384,629.71453 1350.4127,630.68347 1351.1033,631.48011 C 1351.7939,632.2767 1353.0654,633.35544 1353.9212,633.89041 C 1354.777,634.42527 1355.421,635.06244 1355.3568,635.29048 C 1355.2926,635.51852 1355.6097,636.29044 1356.0657,637.00962 L 1356.8986,638.3211 C 1391.536,637.22484 1424.3371,635.87457 1458.2197,632.77385 L 1455.5259,597.47009 L 1424.1388,599.96902 L 1422.2425,571.98474 L 1420.1335,571.43536 L 1419.3891,555.85702 L 1403.1374,556.28236 L 1402.393,534.97959 L 1391.9543,535.74167 L 1391.2099,519.15316 L 1388.4806,519.15316 L 1384.6348,455.67019 z \"},\"ia2\":{\"name\":\"IA-2\",\"path\":\"M 1550.9453,518.49741 L 1530.1565,520.50009 L 1534.1264,569.62764 L 1529.0222,569.62764 L 1530.7236,591.58613 L 1498.8226,594.22685 L 1500.2227,610.30137 L 1457.4222,613.93457 L 1458.84,632.7384 C 1491.2135,630.24014 1515.4522,627.29816 1543.9802,623.91246 L 1547.4539,627.95325 L 1549.6161,628.32546 L 1549.7401,629.2116 C 1549.8119,629.70302 1550.5088,630.78759 1551.282,631.6219 L 1552.6821,633.14605 L 1554.543,633.14605 L 1554.543,634.81199 L 1557.0242,637.11595 L 1560.6042,637.11595 L 1560.4978,629.86731 L 1558.3002,627.43932 L 1560.6751,623.2213 L 1564.3437,620.66922 L 1568.0832,620.66922 L 1571.0961,618.0817 L 1571.61,608.5114 L 1572.4253,607.60751 C 1572.8802,607.10481 1573.2582,606.41858 1573.2582,606.1011 C 1573.2582,605.78357 1574.1409,604.61256 1575.2255,603.49583 L 1577.2104,601.47543 L 1576.8382,592.02922 L 1574.2862,587.77576 L 1572.5139,587.77576 L 1568.1186,583.16784 L 1570.7062,571.20494 L 1573.6481,569.69853 L 1576.0407,570.3188 L 1579.3903,567.92625 L 1582.4564,567.92625 C 1581.8689,564.92261 1581.5493,562.90081 1581.7652,559.98642 L 1576.218,559.98642 L 1574.2559,538.43489 L 1553.1252,540.0483 L 1550.9453,518.49741 z \"},\"oh4\":{\"name\":\"OH-4\",\"path\":\"M 1922.964,540.10147 L 1902.8663,543.82325 L 1905.0994,558.46226 L 1901.2713,559.41929 L 1899.0737,561.08523 C 1897.1452,560.95855 1895.6433,561.25848 1894.6962,562.11316 L 1895.4228,564.39939 L 1884.6119,566.31345 L 1884.6119,569.06051 L 1882.2193,569.06051 L 1883.6372,577.56744 L 1881.2091,577.56744 L 1884.2397,597.13338 L 1885.6221,598.83477 L 1886.9867,607.05813 C 1893.8778,605.63407 1899.6644,605.49853 1906.0033,604.71873 L 1907.297,613.91682 C 1915.1664,612.85022 1923.121,612.51533 1930.9747,611.34704 L 1929.7873,598.48031 L 1927.1465,599.13603 C 1926.6857,593.14766 1926.0475,587.17483 1925.6224,581.18289 L 1938.5955,578.61306 L 1939.3576,582.72474 C 1943.2385,582.04135 1948.7446,581.84053 1954.8295,581.8918 L 1955.184,584.94011 L 1967.7849,583.68177 L 1965.6227,571.04546 C 1970.125,570.11747 1975.253,569.40328 1979.6946,568.20982 L 1977.621,558.51543 L 1975.3525,558.28504 L 1975.3525,555.39623 L 1972.6941,552.89731 L 1970.9927,542.38771 L 1957.4525,544.83345 L 1960.2527,562.44989 L 1933.3141,567.9617 L 1932.1976,563.40692 L 1933.4736,561.01434 L 1931.1873,558.5686 L 1929.3619,550.20345 L 1925.0021,550.91236 L 1922.964,540.10147 z \"},\"ia3\":{\"name\":\"IA-3\",\"path\":\"M 1495.5616,507.08395 L 1474.5778,508.53722 L 1474.5778,513.39326 L 1475.9425,513.83632 L 1477.0236,529.09563 L 1487.9054,529.07791 L 1489.5182,550.69969 L 1441.5426,554.31514 L 1442.3756,569.84031 L 1443.9529,571.41761 L 1443.9529,575.60018 L 1458.397,574.60771 L 1465.3443,575.86605 L 1466.7976,596.84982 L 1456.3411,597.57642 L 1457.3868,613.2611 L 1499.6556,609.76969 L 1498.2378,593.67741 L 1530.1033,590.82407 C 1530.021,583.51656 1528.7093,576.35503 1528.4551,569.06051 L 1533.5592,569.06051 L 1529.4475,520.50009 L 1497.4225,523.12306 L 1496.7491,512.6489 L 1495.5616,512.259 L 1495.5616,507.08395 z \"},\"ne2\":{\"name\":\"NE-2\",\"path\":\"M 1346.4516,610.11547 L 1346.2744,608.19375 L 1342.9684,608.19375 L 1342.3583,606.60386 L 1338.5773,605.89456 L 1336.8199,603.21243 L 1327.6802,602.40342 L 1325.4172,599.52649 L 1327.0521,597.29496 L 1323.7945,594.50429 L 1323.6305,592.06365 L 1321.0559,590.25383 L 1344.7564,588.94467 L 1344.5292,593.13904 L 1347.1733,593.76328 L 1347.6828,595.43336 L 1345.8023,596.44307 L 1345.6103,601.67177 L 1347.9855,602.01817 L 1348.7237,606.50825 L 1348.6061,609.69931 L 1347.5162,610.44162 L 1346.4516,610.11547 z \"},\"in2\":{\"name\":\"IN-2\",\"path\":\"M 1779.8092,608.87941 L 1778.4494,600.76317 L 1774.8877,601.10464 L 1774.1659,596.00048 L 1775.3682,594.5361 L 1774.153,592.7856 L 1774.7212,590.61276 L 1776.8574,590.61276 L 1776.8574,586.64286 L 1772.269,586.64286 L 1772.9628,582.94473 L 1771.732,579.70744 L 1764.5641,580.47505 C 1762.4303,566.37432 1761.474,559.01791 1760.4107,546.84413 L 1755.9817,547.59242 C 1755.1472,542.5188 1754.741,539.6933 1754.4418,533.97737 L 1761.1901,528.51215 L 1798.6329,523.02291 L 1799.2295,523.78258 C 1799.5577,524.2004 1801.0384,525.11315 1802.52,525.81092 L 1805.2139,527.07959 C 1805.3578,528.91801 1804.9663,529.9 1804.0397,531.63136 L 1799.0656,531.63136 L 1798.3462,534.90645 C 1799.6375,543.73132 1800.6075,550.09397 1802.2199,558.8118 L 1801.0151,559.21338 L 1802.0947,564.80839 L 1804.5022,564.47801 L 1805.1077,566.79334 L 1808.6166,566.79334 L 1808.6166,568.84171 L 1798.3372,570.36479 L 1802.4851,597.27204 L 1792.6807,598.7062 L 1793.9688,606.85068 L 1779.8092,608.87941 z \"},\"md2\":{\"name\":\"MD-2\",\"path\":\"M 2279.9538,564.43484 L 2278.6954,565.05514 L 2278.7663,566.56157 L 2273.3786,572.37464 L 2271.819,572.76454 C 2270.9583,572.97886 2270.1253,573.35549 2269.9758,573.59754 L 2269.71,574.04058 L 2271.3582,575.40526 L 2266.5199,579.94229 L 2264.1451,577.88645 L 2261.2562,579.4283 L 2259.4131,578.7017 L 2259.6257,577.0712 L 2260.5828,577.19523 L 2259.2358,575.75972 L 2256.9851,576.92942 C 2257.8746,577.86433 2258.4542,578.67748 2259.0764,579.37516 L 2256.8787,579.12704 L 2255.4786,578.55992 L 2254.9469,578.15226 C 2254.1671,577.54941 2252.9396,576.7341 2252.2176,576.34454 L 2250.9061,575.63563 L 2249.9137,577.23068 L 2248.8149,578.61306 L 2246.316,578.63081 L 2245.7311,580.2613 L 2246.2451,580.54487 C 2246.4827,580.92904 2246.743,581.63092 2246.8299,582.10447 C 2246.9169,582.5778 2246.7791,583.93896 2247.1489,584.6388 L 2247.8578,585.98573 L 2249.3465,584.72744 L 2250.5694,586.35794 L 2252.7316,585.24137 L 2252.6784,584.692 C 2252.6784,584.30941 2252.521,583.84329 2252.324,583.64632 L 2251.9695,583.27417 L 2249.701,584.49702 L 2248.7085,582.95516 L 2249.1693,578.94982 C 2249.6094,578.27335 2249.9166,577.78301 2250.5694,577.4788 L 2252.5721,578.20546 C 2254.0323,578.74015 2255.4857,579.19544 2255.7976,579.21563 L 2257.7826,579.60553 L 2259.4308,579.74731 C 2259.8268,580.14549 2260.258,580.50437 2260.8132,580.81068 L 2260.4764,583.4514 C 2261.1591,583.045 2261.6476,582.88484 2262.3196,582.99061 L 2262.6209,582.12217 C 2262.4909,581.99388 2262.3699,581.83809 2262.2133,581.64368 L 2261.7525,580.97021 L 2262.5677,579.78276 L 2265.8287,580.86388 C 2265.0149,581.71735 2264.7481,582.34136 2263.4539,582.52982 L 2263.064,583.18553 L 2262.7273,583.859 L 2262.6386,585.50724 C 2262.6813,586.59897 2262.5953,587.27833 2262.0892,587.33266 L 2262.1424,593.46474 L 2258.5978,593.57108 L 2257.2686,594.68764 L 2258.5624,596.76117 L 2257.1978,599.77405 L 2257.818,600.76652 L 2259.608,600.07536 L 2259.0409,595.85734 L 2263.1172,593.92553 L 2264.4286,595.71556 L 2268.558,595.71556 L 2268.558,595.32566 C 2268.558,595.10873 2267.9008,594.22543 2267.0871,593.37615 L 2265.5983,591.83424 L 2266.2895,590.71774 L 2270.543,591.12533 L 2271.8545,588.34289 L 2271.2342,583.73497 L 2273.5913,583.13239 L 2272.5634,580.43853 L 2273.7154,579.72962 L 2275.3636,580.36764 L 2275.3636,582.17536 L 2276.551,581.43101 L 2276.2143,578.98526 L 2278.1638,578.96751 L 2279.0145,577.85101 C 2279.4832,577.23051 2279.8729,576.37817 2279.8829,575.97239 L 2279.9006,575.24573 L 2284.03,571.47081 L 2283.197,570.12388 L 2281.6906,570.69101 L 2280.4855,569.25543 L 2281.5134,565.71088 L 2279.9538,564.43484 z \"},\"ia4\":{\"name\":\"IA-4\",\"path\":\"M 1385.4323,455.42207 L 1389.03,518.51514 L 1391.5821,518.39108 L 1392.3442,535.17454 L 1402.9601,534.37702 C 1403.5802,541.31639 1403.0843,549.07772 1404.1121,555.9988 L 1419.9563,555.28989 L 1420.7006,570.86823 L 1422.9691,571.47081 L 1424.7592,599.13603 C 1443.169,597.59253 1451.7862,596.88878 1466.2127,596.1586 L 1464.7949,576.53952 L 1458.84,575.54704 L 1443.3858,576.45088 L 1443.3858,571.98474 L 1441.8085,570.40744 L 1440.9932,553.87207 L 1488.9156,550.13256 L 1487.4269,529.45009 L 1476.5628,529.64504 L 1475.3901,514.07021 L 1474.1879,513.76543 C 1473.8462,504.66022 1472.5839,495.57053 1472.5043,486.45464 L 1514.9149,482.82147 L 1514.1351,472.20553 L 1554.4544,468.53692 L 1554.419,465.55949 C 1555.0777,464.29436 1555.8322,463.06619 1556.2444,461.69593 C 1556.2463,461.44118 1556.9163,460.35653 1557.7331,459.28563 L 1558.7256,457.33613 L 1556.3685,454.07514 L 1551.4238,452.39147 L 1551.7428,448.42157 L 1550.0946,447.05692 L 1550.7149,443.15791 C 1495.7303,448.60829 1440.5887,452.23443 1385.4323,455.42207 z \"},\"oh5\":{\"name\":\"OH-5\",\"path\":\"M 1855.2984,518.28474 L 1867.5803,592.87992 L 1871.0008,592.1887 L 1871.0008,589.58348 L 1875.5378,588.80368 L 1874.8821,586.18071 L 1881.8649,584.83378 L 1880.518,577.00031 L 1883.0346,577.00031 L 1881.6699,568.56427 L 1884.0448,568.36929 L 1884.0448,565.78177 L 1894.6607,563.90316 L 1893.7568,561.63464 L 1895.476,560.92573 C 1896.2058,560.73033 1897.265,560.57554 1897.8331,560.57127 L 1898.8787,560.55355 L 1900.5801,558.85217 L 1904.4437,557.85969 L 1901.8207,543.14979 L 1923.7083,539.17989 L 1925.516,550.22118 L 1929.9822,549.63632 L 1931.719,558.53316 L 1934.0407,561.01434 L 1932.7647,563.40692 L 1933.509,567.39457 L 1959.4729,562.25494 L 1956.7081,544.44355 L 1971.3471,541.73197 L 1972.4459,547.15514 L 1984.8519,545.57781 L 1984.3025,540.13692 L 1982.1226,539.97741 L 1981.5909,536.02524 L 1973.8815,537.38989 L 1971.2762,524.75355 L 1971.1168,523.99147 L 1948.2012,527.66009 L 1946.3403,519.15316 L 1941.3248,520.35831 L 1941.3248,518.58603 L 1924.7362,521.49256 L 1923.1443,520.53459 L 1923.1766,519.22405 L 1919.4903,518.86959 L 1918.5176,512.32471 L 1911.391,513.60593 L 1910.7176,516.60108 L 1905.5602,520.35831 L 1901.9594,520.23001 L 1900.5269,517.18593 L 1897.2305,517.52266 L 1896.4976,509.94986 L 1855.2984,518.28474 z \"},\"nj2\":{\"name\":\"NJ-2\",\"path\":\"M 2342.6834,588.91138 L 2343.1268,583.949 C 2343.3706,581.21969 2343.5531,578.13996 2343.5323,577.10512 L 2343.4943,575.22367 L 2342.0458,573.47827 L 2336.0766,573.97326 L 2335.6881,572.80764 L 2333.7404,573.59533 C 2332.6693,574.02856 2331.5888,574.717 2331.3393,575.12521 C 2331.0899,575.53343 2330.6605,575.86742 2330.3851,575.86742 L 2329.8844,575.86742 L 2329.1515,573.55852 L 2323.3459,570.75781 L 2321.3641,571.38682 L 2319.4754,568.50433 L 2316.7745,569.18216 L 2316.0755,567.36049 L 2313.9926,567.36049 L 2312.4581,565.1697 L 2307.9195,563.75318 L 2308.2451,557.18566 L 2306.975,556.51688 C 2306.2765,556.14904 2305.5358,555.58819 2305.329,555.27053 L 2304.9531,554.69297 L 2306.481,552.33156 L 2307.2671,545.26188 L 2308.768,543.2575 L 2310.5899,545.80958 L 2312.187,545.80958 L 2312.7645,544.8171 C 2313.0822,544.27124 2313.7251,543.33479 2314.1933,542.73609 L 2315.0445,541.64756 L 2317.2024,543.60042 L 2319.9649,540.07064 L 2323.092,541.49545 L 2322.1517,545.49332 L 2326.6755,545.8624 L 2334.39,549.81856 L 2334.9473,549.47414 C 2335.2538,549.28471 2336.2665,547.62036 2337.1978,545.77558 L 2338.8909,542.42144 L 2336.0668,540.57095 C 2334.5134,539.55319 2333.124,538.42285 2332.9791,538.05908 L 2332.7156,537.39769 L 2336.4783,535.61217 L 2336.569,533.58927 L 2337.988,533.15354 L 2342.5683,534.03506 L 2345.0248,536.27635 L 2347.1994,535.58721 C 2348.3953,535.20817 2350.2349,534.53492 2351.2872,534.09109 L 2353.2006,533.28413 L 2353.781,533.86448 L 2352.939,535.15821 C 2352.4759,535.86977 2351.9179,537.41697 2351.6989,538.59644 L 2351.3007,540.74093 L 2354.9526,546.37671 L 2355.8779,546.37671 C 2356.3869,546.37671 2357.0619,546.11812 2357.3779,545.80207 L 2357.9525,545.22743 L 2360.5894,548.03424 L 2362.7739,546.86512 L 2364.3918,548.20787 L 2364.039,549.70259 C 2363.845,550.52468 2363.0181,552.47138 2362.2013,554.0286 L 2360.7164,556.8599 L 2359.6798,557.63624 C 2359.1096,558.06323 2357.537,560.13829 2356.1851,562.24749 L 2353.727,566.08239 L 2352.568,570.266 C 2351.9306,572.56695 2351.4521,574.83241 2351.5047,575.30029 C 2351.5573,575.76817 2351.146,577.68223 2350.5906,579.55375 C 2350.0352,581.42528 2349.1514,583.81204 2348.6266,584.85765 L 2347.6725,586.75873 L 2346.3199,587.83508 L 2344.9674,588.91138 L 2342.6834,588.91138 z \"},\"md3\":{\"name\":\"MD-3\",\"path\":\"M 2250.3568,578.01048 L 2250.0554,578.29405 C 2249.8969,578.45262 2249.6481,579.52386 2249.5061,580.6689 L 2249.2579,582.74249 L 2249.9137,583.80586 L 2252.2708,582.54751 L 2253.2987,584.35523 L 2258.332,583.87675 L 2258.651,584.40843 C 2258.8311,584.69988 2259.2259,584.94011 2259.5194,584.94011 C 2259.813,584.94011 2260.0818,584.74871 2260.122,584.51477 C 2260.2405,583.30797 2260.3261,582.09296 2260.3879,580.88157 L 2259.4131,580.36764 C 2258.8729,580.07852 2257.8184,579.83596 2257.0737,579.83596 C 2256.3289,579.83596 2254.5091,579.4173 2253.0329,578.91437 L 2250.3568,578.01048 z M 2262.7981,580.29675 L 2262.2133,580.89932 L 2262.5855,581.5019 C 2262.6664,581.6329 2262.8035,581.7393 2262.9576,581.8386 C 2262.7964,582.26531 2262.5146,583.18553 2262.5146,583.18553 L 2262.5146,583.69952 L 2263.383,582.05127 C 2263.501,582.08485 2263.6245,582.10447 2263.7374,582.10447 C 2264.1685,582.10447 2264.6751,581.86219 2264.854,581.57279 L 2265.173,581.0588 L 2262.7981,580.29675 z M 2261.1677,587.20863 C 2260.987,587.20863 2260.1877,587.91045 2259.3954,588.76823 C 2258.6029,589.62601 2257.9348,590.26041 2257.7294,590.84177 L 2257.5522,592.36593 L 2254.752,591.71021 L 2253.8304,593.94328 L 2251.4201,594.82942 L 2251.3492,596.37127 L 2249.0275,597.98407 L 2252.8734,597.98407 L 2254.876,596.17635 L 2256.1698,596.97385 L 2254.0431,601.56407 L 2254.4861,603.58447 L 2258.9168,604.32883 L 2259.6257,605.53398 C 2259.8749,606.03191 2260.1279,606.33538 2263.8261,608.17464 L 2266.0591,606.54414 C 2267.4592,605.7348 2268.4871,605.04953 2270.2594,604.59464 L 2272.1558,604.0984 L 2272.014,603.72625 L 2270.6671,602.84011 L 2269.3201,601.95398 L 2263.9324,603.79714 L 2260.6891,599.96902 C 2260.9214,598.96248 2261.1508,597.95481 2261.4689,596.97385 L 2266.5731,597.93088 L 2268.239,596.28269 L 2263.4539,596.28269 L 2263.4539,595.432 C 2263.4539,594.96411 2263.3064,594.5813 2263.1349,594.5813 L 2259.6789,596.2118 L 2260.2106,599.88038 C 2259.4346,600.48437 2258.6281,601.00937 2257.7294,601.38685 C 2257.5104,601.38685 2257.1837,601.00772 2257.0028,600.53615 L 2256.6838,599.66771 L 2257.9952,596.76117 L 2256.7015,594.68764 L 2258.456,593.21662 L 2261.4512,593.16348 L 2261.4867,587.20863 L 2261.1677,587.20863 z \"},\"in3\":{\"name\":\"IN-3\",\"path\":\"M 1838.1546,569.69048 L 1837.3866,563.90131 L 1821.0935,566.81495 C 1821.1005,565.85926 1821.1337,564.89027 1820.9517,563.96146 L 1805.5557,566.43134 L 1805.2139,563.82547 L 1802.4491,564.35399 L 1801.6877,559.84744 L 1802.8455,559.13185 L 1798.9031,534.8326 L 1799.5642,532.19849 L 1804.4647,532.19849 C 1805.2453,530.38682 1805.8209,528.91704 1805.781,526.76349 L 1799.3561,523.03593 L 1853.296,514.87172 L 1860.0379,554.60007 L 1856.2824,555.64422 L 1856.9694,560.49661 L 1849.3413,561.24889 L 1844.9129,564.02182 L 1844.9129,568.39504 L 1838.1546,569.69048 z \"},\"pa4\":{\"name\":\"PA-4\",\"path\":\"M 2064.9804,556.01789 L 2055.5036,510.49027 L 2057.2119,510.04205 L 2057.5465,510.58343 C 2057.7305,510.88118 2058.5802,511.30027 2059.4347,511.51473 L 2060.9883,511.90467 L 2061.9315,515.46819 L 2073.7493,514.64802 L 2075.9579,516.32386 L 2073.6488,521.13948 L 2075.5146,527.66146 L 2079.0606,527.66146 L 2081.1455,536.16839 L 2098.5707,532.14116 L 2099.8629,538.54849 C 2099.2651,540.3011 2098.6099,541.53777 2097.2094,542.43048 L 2097.5114,545.21397 L 2099.1231,544.4449 C 2101.0638,545.83894 2102.9719,547.20553 2105.0832,548.36925 L 2108.0606,549.95975 L 2108.0606,552.04799 L 2102.4934,552.74663 L 2102.9595,550.77151 L 2099.2155,549.84053 L 2096.711,547.17314 L 2095.0517,547.11582 L 2092.6301,548.61654 L 2079.0607,549.8862 L 2076.6408,547.90611 L 2071.5638,555.09601 C 2070.5908,553.31258 2070.2484,552.21707 2069.5048,549.74573 L 2066.082,551.51573 L 2068.0776,555.44463 C 2066.8733,555.92235 2066.2995,556.05611 2064.9804,556.01789 z \"},\"il2\":{\"name\":\"IL-2\",\"path\":\"M 1723.0567,553.74938 L 1722.3366,551.48086 L 1720.1446,551.48086 L 1720.1446,548.12368 L 1724.6108,541.06012 L 1723.9857,537.93494 L 1726.9472,535.1903 L 1727.6442,531.70546 L 1729.6392,533.61631 L 1731.6476,549.24088 L 1731.26,549.62854 C 1731.0468,549.84175 1729.6709,550.15434 1728.2023,550.32319 L 1725.1475,550.43777 L 1725.1734,553.74938 L 1723.0567,553.74938 z \"},\"nj3\":{\"name\":\"NJ-3\",\"path\":\"M 2360.5358,547.41008 L 2357.9525,544.6603 L 2357.3779,545.23494 C 2357.0619,545.55099 2356.4077,545.80026 2355.9242,545.78887 L 2355.0451,545.76817 L 2351.8662,540.75009 L 2352.2652,538.60102 C 2352.4846,537.41903 2353.0464,535.86463 2353.5136,535.14679 L 2354.3631,533.84164 L 2353.2263,532.70479 L 2345.0248,535.70923 L 2342.5683,533.48016 L 2337.8378,532.76663 L 2336.0463,533.4541 L 2336.0375,535.3177 C 2334.8939,535.84696 2333.7691,536.43286 2332.542,536.73552 C 2332.2986,536.73552 2331.5787,535.71469 2330.9422,534.467 C 2330.3056,533.21932 2329.5986,532.20753 2329.3711,532.21859 L 2326.1597,533.78757 C 2325.2359,532.50065 2324.1703,531.28423 2323.5695,529.80899 L 2323.5695,529.34124 L 2326.2814,530.02188 L 2327.1344,529.71453 L 2326.916,528.99516 L 2322.5119,525.61029 L 2326.9488,520.41948 L 2331.665,522.7529 L 2333.1075,520.78023 C 2334.8025,521.63018 2336.4551,522.59739 2338.2827,523.12443 L 2338.8629,523.12443 L 2341.7139,517.49826 L 2340.3873,514.58673 L 2341.5823,513.3917 C 2345.2067,517.86585 2348.2817,522.82687 2352.1849,527.07391 L 2352.9195,527.68356 L 2359.2286,516.67922 C 2358.4949,515.64211 2357.6933,514.62106 2357.1333,513.4944 C 2360.2597,514.07769 2363.4681,514.40327 2366.498,515.38948 L 2368.8813,528.22254 L 2368.3733,531.34379 C 2367.426,536.13829 2366.2853,540.91466 2364.8122,545.57688 L 2360.5358,547.41008 z \"},\"il3\":{\"name\":\"IL-3\",\"path\":\"M 1717.8622,539.24612 C 1716.0249,539.35851 1714.3372,538.81231 1713.8243,538.65778 L 1712.8917,538.3768 L 1711.5457,529.5458 L 1714.9283,530.04226 L 1715.669,527.70855 C 1717.5213,529.00658 1718.4883,530.028 1720.9214,532.63992 C 1720.3665,534.03157 1720.6275,534.74552 1720.446,535.80524 L 1721.7684,535.83167 C 1722.4349,536.00595 1722.6028,536.35168 1722.598,536.54924 L 1722.005,538.50238 L 1717.8622,539.24612 z \"},\"pa3\":{\"name\":\"PA-3\",\"path\":\"M 2074.9899,440.51722 C 2074.916,440.44332 2072.3742,442.6728 2069.3364,445.46187 C 2066.2985,448.25094 2063.5651,450.53057 2063.2574,450.53058 C 2062.9498,450.53058 2062.6903,450.27536 2062.6903,449.96346 L 2062.6903,449.39633 L 2061.113,449.39633 L 2060.7585,450.30019 C 2060.5691,450.79358 2060.4218,451.6586 2060.4218,452.23197 L 2060.4218,453.27761 L 2057.1608,456.21959 C 2055.3673,457.83776 2052.1772,460.31557 2050.0717,461.73138 L 2046.2436,464.30118 L 2046.2436,465.25821 C 2046.2436,465.7832 2048.2852,475.98585 2050.7806,487.92563 C 2053.276,499.86539 2055.3176,509.75858 2055.3176,509.90187 C 2055.3176,510.04517 2055.86,509.98815 2056.5228,509.77781 L 2057.7279,509.38791 L 2058.0824,509.93732 C 2058.2774,510.23446 2059.2025,510.82618 2060.1382,511.26652 L 2061.8396,512.08177 L 2062.389,514.95286 L 2073.7493,514.06672 L 2076.5318,516.21118 L 2074.3164,521.10266 L 2076.0001,527.09296 L 2079.6156,527.09296 L 2081.4942,535.65306 L 2099.0574,531.36415 L 2099.5005,533.65038 L 2101.45,530.49573 L 2103.4881,530.49573 L 2102.3184,527.41197 L 2104.1084,526.13593 L 2108.7341,526.15365 L 2108.0606,531.7186 L 2110.595,531.61227 L 2111.4279,527.62464 L 2119.2791,527.66009 L 2119.9172,525.39157 C 2118.4713,519.3885 2116.9828,510.58501 2116.4966,508.94484 L 2113.7496,512.20583 L 2108.929,514.72246 L 2108.3087,514.24395 C 2107.8314,514.64009 2106.2538,515.72125 2105.9871,515.64405 C 2105.7202,515.56684 2104.9981,515.76624 2104.3743,516.08712 C 2103.7504,516.40798 2102.8572,516.6415 2102.3893,516.60108 L 2101.3259,516.53019 L 2098.9334,518.62147 L 2099.5537,515.85672 L 2098.8625,514.049 L 2097.1257,514.049 L 2092.3051,505.66613 L 2093.9533,504.01791 L 2094.3432,499.83534 L 2095.6192,498.29345 L 2095.123,496.87563 L 2093.5457,496.43256 L 2091.2063,498.73652 L 2089.0972,496.91108 C 2086.6484,497.26408 2085.4684,497.27649 2084.2412,498.24029 L 2085.4818,500.68603 C 2083.2906,501.51351 2080.5598,502.15383 2077.9142,502.54692 C 2076.7858,497.98035 2075.6575,494.1991 2074.5291,488.84722 L 2075.2912,488.26237 C 2075.7136,487.94036 2076.6192,486.78055 2077.2939,485.67484 C 2077.9686,484.56914 2079.0486,483.06079 2079.6865,482.32524 C 2080.3244,481.58966 2080.8384,480.63637 2080.8384,480.21623 L 2080.8384,479.45415 L 2084.4784,479.14874 L 2083.9399,477.04385 C 2083.7203,475.71819 2083.2708,474.12313 2082.9297,473.4993 C 2082.5885,472.87545 2082.2412,471.74061 2082.7566,471.26347 L 2081.9904,470.94722 L 2081.4055,470.16742 L 2081.4055,469.38761 L 2089.04,468.36376 L 2089.9657,472.18781 L 2094.9812,470.87633 L 2096.429,475.83323 L 2099.4828,475.37791 L 2096.4877,469.24583 L 2094.1441,469.88385 L 2092.8613,463.09472 L 2094.1019,461.78585 L 2093.637,458.96933 L 2097.7814,457.85009 C 2098.4781,460.1102 2099.3633,462.30883 2099.69,464.66382 L 2102.3184,464.0885 L 2103.0628,460.68573 L 2101.1678,457.16297 L 2107.1922,454.44732 C 2108.1943,455.86649 2108.7164,457.11116 2108.6277,458.96662 L 2110.9849,459.71098 L 2112.3141,457.99187 L 2115.0257,457.61969 L 2115.965,455.06761 L 2111.4634,455.77652 L 2110.3509,450.01662 L 2078.818,456.64494 C 2077.3032,451.3317 2076.3713,445.86678 2074.9899,440.51722 z \"},\"il4\":{\"name\":\"IL-4\",\"path\":\"M 1719.4889,522.46731 L 1718.9926,523.12306 L 1717.4862,524.54088 L 1714.0125,526.1891 L 1710.6984,526.20682 C 1710.7082,528.14412 1710.894,528.31196 1711.5491,529.3792 L 1714.7006,529.77522 L 1715.5728,527.31421 L 1717.6102,528.77662 L 1720.9953,532.1085 L 1722.0514,530.46154 L 1724.0081,531.11603 L 1724.7702,529.80454 L 1717.7875,527.99682 L 1717.4685,528.31583 L 1715.4835,526.98662 L 1714.5796,529.5387 C 1713.878,529.45481 1713.1741,529.3916 1712.4706,529.32603 C 1712.3142,529.31625 1711.8667,529.05343 1711.6908,528.93613 C 1711.5149,528.81881 1711.1664,528.26261 1711.0883,527.9791 C 1711.01,527.69559 1711.0706,526.45495 1711.0705,526.45494 L 1713.977,526.45494 L 1717.3089,524.91306 L 1717.8584,524.50543 L 1720.2332,525.39157 C 1721.0201,525.02483 1721.7282,524.55986 1722.3954,524.0092 L 1719.4889,522.46731 z \"},\"pa2\":{\"name\":\"PA-2\",\"path\":\"M 2314.141,517.48722 L 2310.1002,522.91038 L 2310.9509,525.19662 L 2314.3005,527.28791 L 2313.9283,527.85504 L 2315.9133,529.94632 L 2317.5261,527.5892 L 2317.4552,522.18375 L 2316.0196,520.44692 L 2316.3564,519.56078 C 2317.0623,520.41732 2318.8907,522.05969 2318.8907,522.05969 L 2318.8552,523.35345 L 2319.3692,523.40662 L 2319.316,521.9888 L 2320.5212,520.46464 L 2315.1158,518.08979 L 2314.141,517.48722 z \"},\"nj4\":{\"name\":\"NJ-4\",\"path\":\"M 2352.6195,527.18767 L 2341.5518,512.83888 L 2339.8151,514.5756 L 2341.1308,517.46331 L 2338.656,522.5573 L 2338.1792,522.5573 C 2337.9171,522.5573 2336.6457,522.01813 2335.3539,521.35914 L 2333.0053,520.16098 L 2331.67,521.98719 C 2330.4425,521.58023 2329.2054,521.17633 2328.1065,520.51687 L 2329.551,518.06147 L 2329.9218,515.83416 L 2331.3675,515.73372 C 2331.9134,515.7238 2332.7586,515.40479 2333.2459,515.02481 C 2333.7331,514.64483 2334.3197,513.83401 2334.5496,513.22299 L 2334.9674,512.11203 L 2332.5,510.25087 L 2334.0785,506.96126 L 2338.4057,506.96126 C 2339.114,506.0695 2339.7406,505.16645 2340.0162,504.05544 L 2340.0162,503.35136 L 2342.4819,502.56879 L 2344.0011,504.64634 L 2346.447,502.20039 L 2349.513,504.38358 L 2356.5167,502.01838 L 2356.056,500.72285 L 2352.7318,501.04344 L 2352.515,500.25767 L 2354.8806,499.64573 L 2354.2911,495.25085 L 2359.2121,495.90225 L 2360.1493,501.73962 L 2365.4648,503.28819 L 2365.7439,504.27403 C 2365.8974,504.81625 2366.1919,507.32626 2366.3984,509.85184 L 2366.774,514.44381 L 2363.1781,513.9543 C 2361.2003,513.68507 2359.1378,513.32487 2358.5947,513.15385 L 2357.6074,512.8429 L 2356.4424,513.56287 L 2358.6664,516.68612 L 2352.6195,527.18767 z \"},\"il5\":{\"name\":\"IL-5\",\"path\":\"M 1722.2376,519.34316 L 1716.2583,518.82561 L 1714.873,520.04944 L 1715.6093,522.03702 L 1714.794,522.3383 C 1713.7032,522.14815 1712.1461,521.48007 1711.2768,521.05678 L 1711.478,522.12943 L 1710.6357,523.46412 L 1710.7184,525.9654 L 1713.9611,525.95375 L 1716.4799,524.78178 C 1717.4781,524.28022 1718.06,523.73671 1718.5564,523.11061 L 1719.4603,522.05796 L 1722.6453,523.77385 L 1723.5314,522.74593 L 1722.2376,519.34316 z \"},\"pa5\":{\"name\":\"PA-5\",\"path\":\"M 2196.5795,524.24343 L 2192.5409,521.13948 L 2197.1883,514.11434 L 2191.3389,511.15021 C 2190.5574,511.895 2189.5721,512.5742 2188.5709,512.96325 L 2183.6486,512.954 L 2178.8924,517.02516 L 2169.9098,515.87842 L 2160.0079,519.02562 L 2159.1393,518.54342 L 2159.8111,515.18463 L 2158.4642,515.19331 C 2157.7233,515.19809 2156.7402,515.4404 2156.2794,515.73179 L 2155.4416,516.26158 L 2155.4416,520.8613 L 2153.3454,521.52661 L 2152.8356,521.05229 L 2152.4209,514.6478 L 2154.5652,512.17543 L 2154.5652,510.20613 L 2152.5802,507.7909 L 2148.8013,511.56349 L 2148.3267,512.66748 L 2146.3958,514.33687 L 2146.3332,516.54618 L 2144.8485,516.9996 L 2143.5061,515.18851 L 2139.1496,516.40067 L 2137.8354,516.4267 L 2137.212,513.30565 L 2118.5551,516.88601 L 2116.737,507.90643 L 2113.4483,511.72359 L 2109.0614,514.10595 L 2108.4277,513.6815 C 2107.8956,514.16308 2106.2778,515.16708 2106.0049,515.0878 C 2105.7319,515.00852 2104.9981,515.21994 2104.3743,515.55762 L 2103.24,516.17159 L 2101.0456,515.82138 L 2099.4611,517.73671 L 2100.1167,515.66959 L 2098.9466,513.48324 L 2097.2941,513.48324 L 2092.8251,505.84658 L 2094.4657,504.16084 L 2094.8929,499.76907 L 2096.0197,498.64224 L 2095.4789,496.57425 L 2093.2311,495.98643 L 2091.0872,498.13026 L 2089.3073,496.35029 L 2087.1996,496.74415 C 2086.0404,496.96078 2084.7783,497.39718 2084.3949,497.71394 L 2083.6979,498.28987 L 2084.8572,500.45611 C 2082.6975,501.12049 2080.7861,501.5808 2078.1605,501.92031 L 2075.2999,489.4997 L 2081.4055,480.82516 L 2081.4055,480.02265 L 2085.2946,479.69024 L 2083.0803,471.81573 L 2083.7419,471.40683 L 2081.8803,470.04555 L 2088.6967,468.91824 L 2089.4179,472.7626 L 2094.5854,471.65721 L 2095.9328,476.33631 L 2100.1283,475.70269 L 2096.6707,468.61866 L 2094.4495,469.32364 L 2093.4142,463.29235 L 2094.463,462.02571 L 2094.1659,459.43392 L 2097.3445,458.55399 L 2097.9317,460.07247 C 2098.2547,460.90764 2098.6575,462.42039 2098.8269,463.43413 L 2099.135,465.2773 L 2102.8498,464.60577 L 2103.5926,460.64648 L 2101.8222,457.44327 L 2107.1173,455.02744 L 2107.5802,455.75713 C 2107.8349,456.15845 2108.0472,457.16096 2108.0519,457.98493 L 2108.0606,459.48305 L 2111.1353,460.25477 L 2112.4391,458.47176 L 2115.6064,458.04553 L 2116.5675,454.65094 L 2112.1636,455.14619 L 2111.1798,449.82902 C 2144.2089,442.36778 2173.9789,435.38934 2205.9217,427.44528 L 2210.7526,441.08163 L 2206.0638,443.81247 C 2206.3192,445.27182 2206.588,446.72914 2207.0061,448.1472 L 2212.6325,446.93908 L 2214.4196,450.79326 L 2217.002,450.81552 L 2220.4457,456.77037 L 2219.8924,456.77037 C 2219.5882,456.77037 2219.1999,456.40737 2219.0296,455.9637 L 2218.7201,455.15703 L 2216.3151,455.78593 L 2215.6827,453.3676 L 2208.5417,454.67375 L 2207.1607,459.60602 L 2202.204,460.30543 L 2202.204,461.91013 L 2200.5026,462.56301 L 2200.5026,465.72308 L 2198.8012,466.37596 L 2198.8012,468.56694 L 2206.683,470.43948 L 2207.4151,472.7461 L 2210.014,472.09381 L 2211.3331,473.68325 L 2210.1438,474.4183 L 2210.1438,476.61988 L 2210.7109,476.61988 C 2211.0228,476.61988 2211.7825,476.11534 2212.3992,475.49869 C 2213.0159,474.88204 2214.4195,474.00183 2215.5184,473.54268 L 2217.5164,472.70785 L 2217.5164,472.1523 C 2217.5164,471.84674 2217.9175,471.19569 2218.4076,470.70554 C 2218.8978,470.21537 2219.5358,469.81433 2219.8254,469.81433 L 2220.3521,469.81433 L 2220.3521,471.48957 L 2223.1877,473.34756 L 2223.1877,475.91514 L 2219.785,477.32461 L 2219.785,478.32126 L 2216.9493,478.32126 L 2216.9493,482.73206 L 2212.3998,484.29112 C 2212.0184,484.75075 2211.3547,485.12681 2210.925,485.12681 L 2210.1438,485.12681 L 2210.1438,486.02423 C 2210.1438,486.5178 2209.3764,488.75087 2208.4386,490.9866 C 2207.5008,493.22233 2205.9866,496.47024 2205.0737,498.20419 L 2203.4138,501.35683 L 2205.7457,510.64249 L 2213.8301,509.96062 L 2213.8301,511.68378 L 2208.7612,515.69498 L 2205.7905,512.13661 L 2200.9382,516.66274 L 2200.6098,519.65474 L 2196.5795,524.24343 z \"},\"wi2\":{\"name\":\"WI-2\",\"path\":\"M 1648.5269,425.06296 C 1636.339,425.17041 1624.2301,427.07154 1612.1065,428.19989 L 1613.099,440.60583 L 1614.2156,442.00593 L 1613.4712,447.05692 L 1618.7172,447.83672 L 1619.9932,450.65464 L 1614.6941,454.78405 L 1619.3906,498.06306 L 1660.2593,494.19949 L 1656.1299,490.42454 L 1655.3501,487.11038 L 1652.479,484.02662 L 1654.3931,479.73771 L 1654.0741,472.94989 L 1669.103,471.42573 L 1669.103,463.73405 L 1663.1481,462.72385 L 1662.7937,457.61969 L 1661.7835,456.60949 L 1662.4215,453.45484 L 1659.7454,453.08266 L 1659.4087,450.72553 L 1651.3093,451.82435 L 1648.5269,425.06296 z \"},\"nj5\":{\"name\":\"NJ-5\",\"path\":\"M 2307.5658,488.81833 L 2306.0238,490.93538 L 2305.2764,486.26106 L 2304.2871,486.26106 L 2303.7929,481.72455 L 2307.1282,479.17196 L 2307.3168,477.32655 C 2307.4205,476.31158 2307.6745,475.31202 2307.8812,475.1053 C 2308.0879,474.89858 2308.257,474.38131 2308.257,473.95581 L 2308.257,473.18216 L 2302.3965,467.5038 L 2306.5556,463.24453 L 2306.5556,461.44629 L 2307.7964,457.90576 L 2308.3681,457.5524 C 2308.6826,457.35805 2309.3246,456.27823 2309.7949,455.15281 L 2310.6498,453.10659 L 2311.1346,445.62992 C 2311.4123,444.36915 2311.7449,443.38296 2313.2857,443.16564 L 2314.0292,441.1571 L 2316.1974,440.43009 L 2356.7465,452.05197 L 2357.0867,458.47176 L 2352.632,458.47176 L 2351.1994,460.19791 L 2349.5931,457.90463 L 2347.3889,457.90463 L 2347.3889,456.29777 L 2346.68,456.04282 C 2346.2901,455.9026 2345.1438,455.91438 2344.1327,456.06899 L 2342.2943,456.3501 L 2340.5353,454.8902 L 2339.2223,456.20324 L 2333.3496,456.20324 L 2331.9138,454.47324 L 2329.8079,456.37904 L 2329.8079,454.00167 L 2328.7305,453.33583 L 2327.4995,455.63611 L 2324.7329,455.63611 L 2322.9775,459.03061 L 2321.6208,458.75532 L 2321.3191,460.45671 C 2321.1532,461.39247 2320.4542,463.21113 2319.7657,464.49817 L 2318.5139,466.83824 L 2319.1726,467.4969 L 2318.7613,468.51383 C 2318.535,469.07315 2318.2528,470.65797 2318.1341,472.03566 L 2317.9182,474.54056 L 2316.8283,475.722 C 2316.2289,476.37179 2315.3265,477.90278 2314.823,479.12421 L 2313.9076,481.34498 L 2311.5076,484.02313 C 2310.1877,485.49612 2308.4138,487.65396 2307.5658,488.81833 z \"},\"or2\":{\"name\":\"OR-2\",\"path\":\"M 398.50635,345.89534 L 395.19015,342.74069 L 397.42867,340.93159 L 395.84408,338.06414 L 397.72814,333.16401 L 397.14103,331.14999 L 400.1589,329.7526 L 407.86193,316.17425 L 412.70025,314.70326 L 419.15134,307.63187 L 419.21997,301.68337 L 423.50614,298.30425 L 423.61611,296.9096 L 426.05595,295.55629 L 430.58843,286.26277 L 430.49529,283.65159 C 433.20961,280.34539 436.01633,277.08173 438.15015,273.35603 L 439.26669,271.15841 L 442.40362,268.83673 L 442.36817,265.93019 L 440.70223,263.73257 L 440.70223,259.19554 L 438.23876,256.57257 L 436.20065,256.57257 L 434.44609,253.20524 L 431.91174,253.1698 L 431.04332,250.05059 L 428.81025,247.21494 L 427.62282,241.49049 C 397.69726,235.79977 370.47298,230.8654 340.76352,224.74247 L 332.94778,227.73762 C 330.89099,227.37478 329.59055,227.01193 328.07401,226.00079 L 317.03273,225.77039 L 314.85334,224.27142 L 312.72609,224.24623 L 310.04996,227.0996 L 296.01352,226.65653 C 293.08722,227.65228 290.33672,228.12632 287.38253,228.21613 L 285.20263,230.18336 L 272.14493,229.70311 L 268.77362,225.27415 C 263.88213,226.50884 256.11855,227.61756 254.09916,228.97821 C 252.55449,227.21585 249.8761,226.83915 246.74421,226.63881 L 242.42177,229.33579 L 240.76417,226.58704 L 241.39402,224.51121 L 236.28882,220.56633 L 232.08748,220.61672 L 228.72016,218.00782 L 219.8056,217.97237 L 216.96996,216.34188 L 214.13431,216.34188 L 211.21006,218.91168 L 209.86313,225.66405 L 210.58976,226.23118 C 210.99095,226.5431 211.73842,227.81915 212.2557,229.06683 C 212.77304,230.31451 213.34725,232.03717 213.53174,232.89495 L 213.86847,234.45455 L 216.49144,236.03188 L 216.29649,242.41207 L 215.49644,243.57524 L 215.55214,246.27564 L 212.06075,247.03772 L 213.4254,252.03554 L 214.76858,252.7055 L 214.48094,255.98465 C 210.67149,255.63491 210.5421,258.00884 207.16926,257.74227 L 206.7262,262.24386 L 208.17946,262.24386 C 208.2601,263.56047 208.81895,264.64839 209.5857,265.34127 C 208.02902,266.85837 207.32478,268.33389 206.4958,270.18366 L 203.64243,270.18366 L 203.60085,271.30908 L 205.34382,272.0091 L 205.34382,273.62187 L 203.73105,274.24217 L 199.9561,288.33178 L 198.11293,288.7394 L 195.56085,302.63405 L 197.03184,303.55564 L 196.89006,309.58138 L 195.86214,309.91811 L 196.30521,312.43475 L 194.01897,316.12108 L 192.29986,316.41512 L 192.29986,318.67316 C 189.81578,321.07349 189.35452,322.63884 188.79075,324.16722 L 186.50451,323.56465 L 183.16699,326.39867 L 182.81818,331.50445 L 181.52441,332.79821 C 181.75749,336.43781 180.04994,336.72543 180.10659,340.18861 C 176.27339,341.03849 174.91007,342.35883 173.01748,342.209 L 170.64263,344.58385 L 171.79461,345.75356 C 171.54488,347.14532 170.70707,347.83141 169.98689,348.34108 L 173.01748,351.9388 L 173.20798,354.09391 L 174.25808,355.14663 L 174.57709,362.66108 L 172.33274,364.26579 L 166.81451,372.81623 L 158.3962,371.13257 L 157.65184,375.10247 L 153.05922,373.89732 L 148.80818,376.73296 L 144.82055,375.8291 L 142.10897,377.90266 L 138.76318,377.74693 C 135.44624,380.74933 134.75837,380.63966 133.53733,380.56367 L 131.33352,382.93593 L 127.69492,381.91139 L 123.39372,381.92573 L 121.69234,382.24474 L 116.09194,380.82692 L 111.43085,382.88276 L 109.26867,391.56692 L 106.62798,394.04811 L 98.333724,394.42029 L 96.986794,397.34455 L 97.713434,401.19039 L 99.255314,401.19039 L 100.4959,403.51207 L 98.085604,407.41108 L 98.688184,408.40356 L 105.6816,407.50605 L 100.97985,424.575 C 196.98885,449.10237 264.67057,463.6496 378.32108,484.65863 L 398.85877,371.98326 C 401.18543,369.92604 402.96225,368.08877 402.70461,364.32702 L 405.19396,363.88714 L 405.77836,361.20418 C 404.58201,360.11748 403.93551,358.70087 403.83886,356.95435 L 406.20189,356.95435 L 408.98073,352.49685 L 405.98013,350.71367 L 406.03512,347.68352 L 401.15183,346.37886 L 401.19498,344.78563 L 400.44881,344.65567 L 398.50635,345.89534 z \"},\"mi3\":{\"name\":\"MI-3\",\"path\":\"M 1805.781,425.02752 L 1805.781,427.63276 L 1801.8111,429.5291 L 1801.8111,430.34435 C 1801.8111,430.79128 1802.0242,431.23286 1802.2896,431.33682 L 1802.7681,431.53177 L 1803.4416,442.02365 L 1797.7172,442.02365 L 1800.3224,458.43494 L 1810.6396,456.69079 L 1814.2879,478.16039 C 1821.1153,477.10549 1827.9234,475.9263 1834.7578,474.91712 L 1831.2945,453.52313 L 1842.0366,451.60647 L 1838.7224,430.9023 L 1817.405,433.97231 L 1815.7058,423.41474 L 1805.781,425.02752 z \"},\"wi5\":{\"name\":\"WI-5\",\"path\":\"M 1669.7142,471.23682 L 1669.3865,463.29235 L 1663.4317,462.28213 L 1663.4317,457.40444 L 1662.8646,457.05394 C 1662.5526,456.86116 1662.2974,456.49797 1662.2974,456.24686 L 1662.2974,455.79029 L 1667.6202,455.06072 L 1668.7627,456.20324 L 1671.0879,456.18365 L 1673.7842,453.3415 L 1673.1945,449.48618 L 1678.4596,448.46668 L 1676.6584,426.87173 L 1702.57,423.69431 L 1702.9277,424.05199 C 1703.1244,424.24871 1703.2854,425.38018 1703.2854,426.56637 L 1703.2854,428.72307 L 1701.0157,433.23453 L 1700.24,443.10907 L 1701.9427,446.40186 L 1701.7554,451.09908 L 1701.3088,451.09908 C 1701.0632,451.09908 1700.3294,450.5663 1699.6783,449.91512 C 1699.027,449.26394 1698.1304,447.86029 1697.6856,446.79591 C 1697.241,445.73153 1696.7361,444.86067 1696.5638,444.86067 L 1694.0566,446.03484 L 1694.0566,448.94271 L 1695.9059,452.83969 L 1698.0265,453.97464 L 1698.0265,456.04596 L 1695.3879,457.65284 L 1694.5008,461.3074 L 1691.2774,461.3074 L 1690.3484,462.96734 L 1674.3704,465.06551 L 1674.9066,470.82386 L 1669.7142,471.23682 z \"},\"mi2\":{\"name\":\"MI-2\",\"path\":\"M 1779.6399,335.61613 C 1774.4918,336.09561 1771.145,336.62807 1768.9176,337.19346 L 1768.9176,339.23158 L 1768.2087,339.79871 C 1767.8188,340.10581 1766.8359,340.51039 1766.0289,340.70257 C 1765.2217,340.89476 1763.9031,341.58464 1763.0869,342.22672 L 1761.5982,343.37871 L 1761.9172,344.35346 C 1762.0964,344.88784 1762.7152,346.34903 1763.2818,347.59672 L 1764.3097,349.86524 L 1764.3097,364.43336 L 1759.3473,379.69266 L 1757.6105,381.67762 C 1756.655,382.76583 1755.8737,383.84829 1755.8737,384.08791 C 1755.8737,384.32753 1756.6678,385.61116 1757.646,386.94128 L 1759.436,389.35158 L 1762.1121,398.60286 L 1761.3855,402.60821 L 1758.7093,407.25157 L 1758.7093,411.18603 L 1760.9601,414.92554 C 1762.2015,416.98378 1763.7551,420.01052 1764.3984,421.64247 C 1765.0417,423.27441 1766.2399,425.78832 1767.0745,427.22514 C 1767.9089,428.66196 1770.2299,432.36905 1772.2318,435.46623 L 1775.8827,441.10207 L 1779.0905,449.91029 L 1780.5615,458.02732 L 1782.0325,466.12662 L 1781.3768,469.65345 L 1781.7312,470.59276 C 1781.9268,471.10251 1782.3326,471.51433 1782.6351,471.51435 L 1800.6237,468.62553 L 1801.4744,463.6986 L 1803.7252,462.95425 L 1802.9454,458.73623 L 1799.7907,459.23246 L 1797.0614,441.42108 L 1802.839,441.45652 L 1802.2364,432.0989 C 1801.2424,431.8378 1801.3136,430.61283 1801.244,429.51138 L 1805.338,427.33148 L 1796.7069,370.74266 L 1806.2063,369.20078 L 1803.5125,348.4297 L 1782.1211,351.92108 L 1779.6399,335.61613 z \"},\"wi4\":{\"name\":\"WI-4\",\"path\":\"M 1705.7769,463.57592 C 1705.5911,463.57592 1705.1594,463.05323 1704.8175,462.4144 L 1704.1959,461.25289 L 1702.3536,461.90832 L 1699.5992,459.03889 L 1698.6701,459.03889 L 1697.9807,456.86683 L 1698.475,456.36546 L 1698.4265,453.82848 L 1696.3252,452.52763 L 1694.5308,449.04242 L 1694.4569,446.44854 L 1695.2493,445.94685 C 1695.685,445.67093 1696.2053,445.44126 1696.4055,445.43648 C 1696.6056,445.43171 1696.922,446.03603 1697.1085,446.77942 L 1697.4478,448.13105 L 1700.8308,451.7526 L 1702.9901,451.06727 L 1703.5588,453.24204 L 1703.0699,454.01373 C 1702.801,454.43816 1702.577,455.24422 1702.5723,455.80498 L 1702.5636,456.82453 L 1705.4538,459.50313 L 1706.1148,463.57592 L 1705.7769,463.57592 z \"},\"ny27\":{\"name\":\"NY-27\",\"path\":\"M 2112.875,386.84375 L 2110.3438,387.4375 L 2110.3438,390.28125 L 2108.7813,391.5625 L 2106.8438,390.84375 L 2107.5,388.28125 L 2105.6875,387.59375 L 2103.4375,389.15625 L 2104.0313,389.53125 C 2104.3571,389.7327 2105.135,391.04676 2105.75,392.4375 L 2106.875,394.96875 L 2107.8125,394.96875 L 2109.3438,400.09375 L 2108.2813,401.34375 C 2107.6975,402.02517 2106.5637,403.24716 2105.7813,404.0625 C 2104.9987,404.87786 2103.7928,405.84461 2103.0938,406.21875 L 2101.8125,406.90625 L 2101.8125,409.75 L 2101.0313,411 C 2100.6004,411.69085 2100.103,412.93178 2099.9063,413.78125 L 2099.2813,416.40625 L 2097.6563,417.5 C 2096.1523,418.50758 2093.7199,420.54345 2092.2188,422.03125 L 2089.4688,424.71875 L 2088.7188,427.1875 L 2082.5,433.59375 L 2076.0938,439.6875 L 2079.6563,455.5 L 2110.1563,448.90625 L 2102.8125,416.21875 L 2106.1875,415.875 L 2108.9688,419.1875 L 2112.5313,420.4375 C 2115.2312,419.04706 2117.609,417.09354 2120.25,415.59375 C 2123.1659,413.98273 2126.1238,412.44414 2129.0625,410.875 L 2125.75,396.21875 L 2124.7813,396.40625 L 2124.5313,396.46875 L 2124.4688,396.21875 L 2123.625,391.09375 L 2123.5938,390.875 L 2123.8125,390.8125 L 2124.625,390.5625 L 2123.8125,387.71875 L 2119.375,388.84375 L 2120.2188,391.875 L 2120.2813,392.09375 L 2120.0313,392.1875 L 2115,393.75 L 2114.7813,393.84375 L 2114.6875,393.59375 L 2112.875,386.84375 z \"},\"ny29\":{\"name\":\"NY-29\",\"path\":\"M 2110.8236,448.7342 L 2103.5474,416.77931 L 2105.5659,416.46464 L 2108.4252,419.70687 L 2112.7705,421.11224 C 2119.803,416.18859 2123.6146,414.58965 2129.0366,411.32835 L 2130.5161,411.91407 C 2140.1423,409.32442 2147.5347,407.72179 2156.9012,405.70357 L 2157.4345,406.03322 C 2157.7279,406.21452 2157.9679,406.764 2157.9679,407.25429 L 2157.9679,408.14571 L 2164.0439,406.96264 L 2163.1106,403.15289 L 2165.5484,402.42561 L 2165.3406,399.61881 L 2172.7805,398.215 L 2171.4309,392.09828 L 2166.1337,392.80098 L 2165.0874,389.70199 L 2164.8661,384.53491 L 2164.2978,382.47651 L 2165.3406,382.47651 L 2165.3406,379.58454 C 2164.7614,378.43666 2164.1864,377.28064 2163.444,376.2381 C 2161.3047,376.701 2159.2411,377.68777 2157.0437,377.77141 L 2156.1085,371.70107 L 2151.2525,371.70107 L 2150.4527,367.74778 L 2152.9569,366.94733 L 2152.8638,363.88262 L 2154.3246,363.73703 L 2155.206,362.75973 L 2156.8449,366.18153 L 2164.6361,363.95168 C 2165.7799,363.07909 2166.8514,362.06892 2168.179,361.49275 L 2168.596,361.49275 L 2170.5649,369.00313 L 2173.1415,368.64997 C 2174.5586,368.45574 2175.999,368.07521 2176.3424,367.80437 C 2176.6858,367.53353 2177.9001,367.14393 2179.041,366.93858 L 2181.1151,366.56522 L 2181.3321,367.99531 L 2188.9497,366.23482 L 2190.3735,371.67725 L 2188.0299,372.35634 L 2190.9639,381.03057 L 2193.697,381.34225 L 2193.697,382.02416 C 2193.697,382.39922 2194.4591,383.49236 2195.3906,384.45339 L 2197.0842,386.20069 C 2197.8354,388.71908 2198.0855,391.47863 2199.3098,393.81909 L 2207.6134,391.70246 L 2211.9363,407.00028 L 2218.9941,405.92039 L 2220.3554,411.68364 L 2219.5265,413.41734 L 2222.0535,420.7665 L 2222.0535,422.09908 C 2170.2836,435.53236 2157.3039,438.23957 2110.8236,448.7342 z \"},\"ct4\":{\"name\":\"CT-4\",\"path\":\"M 2369.195,447.03267 L 2368.6562,447.50328 L 2364.155,443.23884 L 2373.0742,433.44502 L 2368.2881,428.56834 L 2367.3579,424.44404 C 2367.9404,424.32747 2368.0383,424.59091 2368.3727,424.87474 C 2368.3727,425.11163 2368.8858,425.62588 2369.5128,426.01751 L 2370.653,426.72956 L 2374.9571,424.5338 L 2376.1331,426.39821 L 2378.8646,421.61713 L 2381.566,421.60839 L 2380.9575,417.07158 L 2381.427,416.7814 C 2381.6852,416.62181 2382.0643,415.72734 2382.2693,414.79371 L 2382.6422,413.09618 L 2384.4021,414.08106 L 2385.8056,418.16379 C 2384.9475,418.85294 2384.2188,419.60497 2383.6851,420.54747 L 2387.2112,422.83549 L 2386.7919,424.63224 C 2386.5614,425.62045 2385.7477,427.8923 2385.6542,429.51323 L 2386.0324,432.32325 L 2383.4718,435.78661 L 2381.4166,435.78661 L 2381.4166,436.94519 L 2378.6577,438.20226 L 2377.3133,441.44786 L 2375.4043,442.62765 C 2374.3545,443.27653 2373.0079,444.42722 2372.412,445.18474 L 2371.3287,446.56206 L 2370.5312,446.56206 C 2370.0926,446.56206 2369.4913,446.77383 2369.195,447.03267 z \"},\"mi5\":{\"name\":\"MI-5\",\"path\":\"M 1883.593,444.13977 L 1878.4721,417.66448 L 1887.6746,416.39322 L 1885.6311,418.96069 L 1881.7744,408.45083 L 1877.2661,407.13893 L 1875.9441,404.54807 L 1876.6503,401.9402 L 1875.6636,398.76153 L 1869.7476,399.57286 L 1869.7816,397.1272 L 1873.4627,396.62032 L 1873.5646,391.46857 L 1875.3435,390.43876 L 1882.6269,391.6142 L 1885.9221,393.42 L 1886.7492,392.3435 C 1887.2041,391.75143 1888.337,389.67196 1889.2668,387.72245 L 1890.9572,384.1779 L 1893.6859,384.1779 L 1894.0704,386.49447 L 1909.2851,383.76573 L 1913.5748,404.36339 L 1902.6823,406.50508 L 1903.424,411.89764 L 1898.7441,412.8842 L 1903.0304,434.57032 L 1892.6119,436.97819 L 1893.2768,442.59215 L 1883.593,444.13977 z \"},\"ct3\":{\"name\":\"CT-3\",\"path\":\"M 2387.1095,432.38384 L 2386.3674,429.42702 L 2387.7864,423.08631 L 2383.9687,420.62973 L 2386.4686,417.90453 L 2385.9363,417.0626 C 2385.6434,416.59953 2385.4,415.66772 2385.3952,414.99189 L 2385.3865,413.76311 L 2384.1421,413.3483 L 2385.447,408.50217 L 2390.1411,408.848 L 2391.0903,412.53433 L 2394.3343,412.53433 L 2395.0615,408.65843 L 2400.7997,407.90043 L 2398.5244,401.28696 L 2399.2377,400.57353 L 2401.1105,403.05627 L 2402.6377,402.1124 L 2407.7848,402.42892 L 2408.5991,403.74384 L 2402.3853,406.88888 L 2406.3534,416.43842 L 2408.2325,417.49001 L 2406.77,420.79396 L 2402.9169,420.34413 L 2398.2577,423.42726 L 2397.2399,421.60839 L 2395.4058,421.60839 L 2396.1303,422.33294 L 2393.3263,425.66532 L 2393.3263,427.27968 L 2391.8008,427.27968 L 2390.9063,428.27215 C 2390.4144,428.81802 2389.8368,429.96645 2389.6227,430.82423 L 2389.2335,432.38384 L 2387.1095,432.38384 z \"},\"ct5\":{\"name\":\"CT-5\",\"path\":\"M 2370.522,426.1275 L 2367.2351,423.36129 L 2358.7315,383.22208 C 2363.5868,382.10946 2368.3988,380.78154 2373.2902,379.83581 L 2374.2039,394.95334 L 2375.7969,394.95334 L 2378.4048,392.3454 L 2380.2174,393.48877 L 2385.6701,391.23581 L 2386.029,388.1478 L 2384.8194,388.1478 L 2384.8194,385.31216 L 2385.9537,385.31216 L 2385.9537,383.65449 L 2392.0963,381.98174 L 2392.8896,391.84834 L 2395.4373,393.17488 L 2396.5995,397.75368 L 2391.2181,398.97815 L 2390.497,397.23714 C 2390.1004,396.27959 2389.5614,395.36358 2389.2993,395.20156 L 2388.8226,394.90699 C 2387.5162,395.56387 2386.2125,396.22631 2384.9369,396.94021 L 2386.7309,401.19176 L 2389.1564,401.19176 L 2390.2071,405.40354 L 2394.4245,405.54495 C 2395.5456,404.43047 2396.5374,403.12321 2397.9162,402.32602 L 2400.0315,407.33755 L 2394.5697,408.08874 L 2393.8289,412.03763 L 2391.4084,411.68364 L 2390.4583,407.9973 L 2384.8708,407.9973 L 2383.4816,412.86767 L 2382.0523,412.18675 L 2381.9802,413.59295 C 2381.9784,414.10243 2381.6333,415.17744 2381.2135,415.98185 L 2380.4504,417.4444 L 2380.9782,421.04126 L 2378.6536,421.04126 L 2376.0888,425.60469 L 2375.1243,423.88134 C 2373.6068,424.66535 2372.0888,425.45143 2370.522,426.1275 z \"},\"or4\":{\"name\":\"OR-4\",\"path\":\"M 126.44204,256.98019 L 121.7455,274.24217 L 116.34006,272.91296 L 115.48937,278.17663 L 110.49154,277.46772 L 112.61828,279.75395 L 111.2359,281.15405 L 97.252634,278.30069 C 97.208794,278.36113 96.090734,281.72473 94.753724,285.7797 C 93.416774,289.83467 90.919984,296.59767 89.224224,300.80861 C 87.528394,305.01954 84.657994,311.54616 82.844024,315.30583 L 79.547584,322.1291 L 73.238284,330.58286 L 70.083624,332.37286 L 69.427884,336.25415 L 65.918774,343.16603 C 63.995644,346.96207 62.427394,350.22345 62.427394,350.43237 L 55.621847,359.20514 L 55.621847,365.46128 L 56.702936,365.46128 L 57.854916,369.60841 L 57.30551,370.49455 L 58.45749,371.20346 L 58.45749,377.65455 L 57.287787,379.35593 C 56.652716,380.29169 55.799983,381.86306 55.373728,382.84732 C 54.947417,383.83158 54.261616,386.12845 53.867292,387.95148 C 53.472911,389.77451 53.096279,392.15885 53.016599,393.25059 C 52.936861,394.34231 52.866649,395.74594 52.874817,396.36979 C 52.882984,396.99363 52.955095,399.5457 53.034322,402.04108 C 53.113606,404.53645 53.218272,406.99805 53.264718,407.51742 C 53.311166,408.03678 53.852378,409.05761 54.469866,409.78593 C 55.087356,410.51425 56.044387,411.69397 56.596599,412.39118 L 57.606797,413.6495 L 100.53293,424.48515 L 104.6671,408.08865 L 98.705904,408.95296 L 97.483034,407.46425 L 99.875604,403.58296 L 99.166694,401.75752 L 97.164024,401.75752 L 96.437394,397.20276 L 98.174224,393.83544 L 106.68115,393.48098 L 108.75471,391.26563 L 110.8499,382.39308 L 116.3755,380.13573 L 121.5864,381.69646 L 122.93293,381.28771 C 124.43616,381.22662 126.76845,381.35247 128.1257,381.55356 L 131.07383,382.43969 L 133.475,380.0462 L 135.08441,379.96485 L 138.56144,377.08629 L 141.94742,377.28759 L 144.37748,375.15564 L 148.63095,376.11266 L 152.88441,373.38336 L 157.24422,374.55306 L 158.11263,370.33504 L 166.4955,372.10732 L 171.84778,363.83078 L 174.16946,362.1294 L 173.99224,355.60742 L 172.76936,354.29593 L 172.45035,352.00969 L 169.31342,348.27019 C 170.65813,347.64655 171.03403,346.81935 171.28065,345.789 L 170.00461,344.53069 L 172.99976,341.64187 C 174.32791,342.18179 174.39245,341.14416 179.78758,339.97593 C 179.49955,336.6691 181.3738,336.51733 181.06362,332.56781 L 182.35738,331.27405 L 182.55233,326.22306 L 186.50451,323.05069 L 188.45402,323.56465 C 189.01026,321.2795 190.22019,319.7716 191.87451,318.58455 L 192.06946,315.90841 L 193.9658,315.62484 L 195.73808,312.84237 L 195.45451,309.47504 L 196.41154,309.19148 L 196.41154,303.64425 L 194.88738,302.75811 L 197.47491,288.38494 L 199.42441,287.76465 L 201.88788,277.94623 L 192.01629,275.23465 C 190.14943,274.28597 189.067,273.17326 188.3654,271.90277 L 184.37778,273.0193 L 182.03837,268.4291 L 172.99976,266.26692 L 168.87035,263.37811 L 165.89293,263.37811 L 161.69263,261.00326 C 157.48827,261.99877 154.85663,263.11313 151.05897,265.04405 L 150.6159,262.97049 L 146.89412,259.9399 L 145.22818,261.60584 L 145.88392,263.0591 C 146.2483,263.85881 146.75634,264.51238 147.01818,264.51237 L 147.49669,264.51237 L 147.49669,266.78089 L 142.39253,267.06445 L 142.39253,266.26692 L 136.43768,266.95811 L 135.64016,268.16326 L 137.00481,269.06712 L 134.77174,270.78623 C 133.36628,268.87559 132.44047,267.46046 132.25511,265.06178 C 134.04144,263.85024 135.10506,261.90757 136.11867,259.63861 L 126.44204,256.98019 z \"},\"ct2\":{\"name\":\"CT-2\",\"path\":\"M 2408.6388,418.74468 L 2408.6388,417.92797 L 2408.6388,417.11127 L 2407.5947,416.55248 L 2406.5506,415.99369 L 2405.1013,412.7044 C 2404.3041,410.8953 2403.4977,408.89421 2403.3091,408.25754 L 2402.9663,407.09994 L 2406.1045,405.56081 L 2409.2427,404.02166 L 2408.6572,402.92756 L 2408.0717,401.83345 L 2408.0717,399.27756 L 2408.0717,396.72167 L 2407.547,396.39743 L 2407.0224,396.07319 L 2405.5215,396.75706 L 2404.0206,397.44093 L 2403.5032,396.62248 C 2403.2188,396.17234 2403.0775,395.54883 2403.1894,395.23691 L 2403.3929,394.66978 L 2404.0539,394.81922 C 2404.4174,394.90141 2405.2149,394.70103 2405.8261,394.37392 L 2406.9374,393.77918 L 2406.9374,391.53062 L 2406.9374,389.28206 L 2407.7881,389.28206 L 2408.6388,389.28206 L 2408.6388,388.73417 C 2408.6388,388.43283 2408.2088,387.2844 2407.6831,386.18209 L 2406.7274,384.1779 L 2405.9817,384.1779 L 2405.236,384.1779 L 2405.236,383.23008 L 2405.236,382.28226 L 2404.2564,381.19983 L 2403.2769,380.1174 L 2403.2769,375.88009 L 2399.3653,378.5345 L 2398.5874,377.27572 L 2394.5386,378.39365 L 2393.9291,376.80523 L 2391.0578,376.80523 L 2391.0578,374.58811 L 2432.1746,363.76889 L 2442.7048,397.94099 L 2440.8522,399.98806 L 2441.7594,401.28323 C 2442.2583,401.99557 2442.6665,403.00012 2442.6665,403.51557 L 2442.6665,404.45275 L 2440.8943,404.8072 C 2439.9195,405.00216 2438.5432,405.16166 2437.8357,405.16166 L 2436.5495,405.16166 L 2435.8928,406.87286 L 2434.3173,407.5443 C 2433.4507,407.9136 2432.3476,408.69063 2431.8658,409.27104 L 2430.9899,410.32634 L 2427.8179,409.12037 L 2427.2217,411.40008 L 2426.4654,411.40008 C 2426.0494,411.40008 2425.5049,411.72521 2425.2555,412.1226 C 2425.0061,412.51999 2424.1002,413.2915 2423.2424,413.83706 L 2421.6828,414.829 L 2421.6828,414.42396 L 2420.0175,416.22067 L 2419.9814,414.78124 L 2416.9002,415.55457 L 2414.7054,417.59927 L 2413.8213,417.05286 L 2413.0611,418.28295 L 2411.4646,417.67031 L 2408.6388,418.74468 z \"},\"mn2\":{\"name\":\"MN-2\",\"path\":\"M 1433.7446,408.71094 L 1433.7446,405.81969 L 1422.9691,406.46257 L 1422.9691,404.79659 L 1426.2786,400.35807 L 1424.4325,397.23299 L 1425.8048,395.86075 L 1425.8408,392.40126 L 1427.4629,390.25874 L 1426.7793,385.27171 L 1429.3151,382.57248 L 1432.1168,381.86929 L 1431.7596,379.3573 L 1426.939,379.00852 L 1426.939,376.80523 L 1421.4322,376.80523 C 1421.0522,371.61147 1420.3086,366.42809 1420.2298,361.21852 L 1430.342,360.64206 L 1431.0447,366.04313 L 1441.6112,365.30038 L 1441.9679,370.28325 L 1451.9267,370.76386 L 1456.194,366.59691 L 1457.1907,366.59691 C 1457.7389,366.59691 1458.9306,366.2126 1459.8389,365.74289 L 1461.4904,364.88887 L 1462.6382,367.03356 L 1466.2823,367.87272 L 1467.3194,364.60743 L 1466.058,363.65819 C 1470.8681,363.87265 1471.3028,364.80636 1474.5546,365.02082 L 1474.3749,366.66179 C 1474.2761,367.56433 1474.0261,368.4719 1473.8194,368.67862 C 1473.6127,368.88534 1473.4436,369.79058 1473.4436,370.69027 L 1473.4436,372.32607 L 1477.1299,373.87668 L 1480.4613,377.37235 L 1481.9505,377.37235 L 1481.9505,379.61926 L 1484.8161,380.33847 L 1486.6589,382.42738 L 1495.5859,382.47651 L 1496.2505,384.03612 C 1496.6161,384.8939 1497.2639,386.0155 1497.6901,386.52857 L 1498.4651,387.46142 L 1491.4596,388.27451 L 1491.9923,393.81909 L 1486.5695,393.81909 L 1487.5098,404.56414 L 1433.7446,408.71094 z \"},\"ri2\":{\"name\":\"RI-2\",\"path\":\"M 2446.317,403.61058 L 2444.0127,404.96339 L 2442.8011,399.77394 L 2444.0405,398.99169 L 2442.6994,393.42797 C 2440.7836,385.18307 2437.5015,377.32413 2435.398,369.1402 L 2443.3015,366.05508 L 2444.4583,369.37358 L 2449.1885,369.28271 L 2454.2927,370.71219 L 2455.5143,372.5818 C 2456.1861,373.61008 2456.8989,375.19363 2457.0981,376.10079 L 2457.4604,377.75016 L 2454.0091,377.24362 L 2454.0091,379.71731 L 2456.0484,379.07005 L 2457.5153,383.12656 L 2455.6459,384.49346 L 2458.5448,387.86423 L 2458.6126,388.99849 C 2458.6499,389.62233 2458.6271,390.38796 2458.5617,390.69988 C 2458.4965,391.0118 2458.3716,392.28784 2458.2842,393.53552 L 2457.979,397.22186 L 2455.9242,397.22186 L 2452.2728,399.73982 C 2450.2645,401.1247 2447.5844,402.86654 2446.317,403.61058 z \"},\"ny28\":{\"name\":\"NY-28\",\"path\":\"M 2108.8758,390.80906 C 2108.5444,390.91796 2108.1025,390.83627 2107.8937,390.6275 L 2107.5141,390.24792 L 2108.1448,387.73499 L 2105.6614,387.08555 L 2104.4507,387.75846 C 2103.7848,388.12856 2103.0796,388.65153 2102.8835,388.92063 L 2102.5269,389.4099 L 2099.2701,387.83377 L 2099.6424,383.61077 L 2096.1509,383.61077 L 2096.1913,378.79018 L 2093.9428,372.2661 L 2095.5846,371.41705 C 2096.4877,370.95007 2098.3244,369.83341 2099.6661,368.93558 C 2101.0079,368.03776 2104.913,365.88077 2108.3442,364.14226 L 2114.5826,360.98135 L 2119.1196,359.87707 C 2121.615,359.26971 2125.4431,358.33376 2127.6265,357.79719 C 2129.81,357.26061 2133.6201,356.47584 2136.0935,356.05327 L 2140.5905,355.28495 L 2151.0932,355.12785 L 2152.775,356.32535 C 2153.6999,356.98398 2154.8346,357.52285 2155.2965,357.52285 C 2155.7584,357.52285 2156.9295,357.85636 2157.899,358.26398 L 2159.6616,359.00511 L 2158.9849,359.6818 C 2158.6127,360.05398 2158.1263,360.35849 2157.904,360.35849 L 2151.4718,356.38859 L 2148.1322,356.38859 L 2140.6705,359.47132 L 2132.7307,359.64055 C 2126.5941,360.74463 2123.6206,361.62596 2118.9987,363.08644 L 2111.3336,363.9073 C 2111.5074,366.19591 2111.993,367.99447 2112.6568,369.83757 L 2109.2598,371.24462 L 2104.9414,370.57886 L 2103.1184,371.62822 L 2102.5578,377.03776 L 2100.7801,378.1591 L 2103.4937,383.51408 L 2106.6696,384.21163 L 2108.164,386.64165 L 2109.8811,387.46786 L 2109.8794,390.12098 L 2108.8758,390.80906 z \"},\"ma5\":{\"name\":\"MA-5\",\"path\":\"M 2450.8917,303.12534 L 2450.5372,306.47494 L 2447.3825,306.47494 L 2445.6457,308.45989 L 2446.0888,309.59415 C 2446.3415,310.21799 2446.5809,311.03367 2446.6027,311.40187 L 2446.7717,312.47606 L 2443.8635,312.49658 C 2443.2244,313.75181 2442.9986,315.05934 2442.1465,316.18248 L 2431.3966,319.14672 L 2432.9208,321.32663 L 2431.0422,324.62306 L 2428.561,324.62306 L 2427.8521,326.85613 L 2429.0886,331.74202 L 2427.8561,332.2298 L 2429.3762,337.24167 L 2431.0279,335.44303 L 2431.7865,335.39851 L 2432.5663,339.93554 L 2434.7285,339.93554 L 2435.2333,338.74175 L 2440.9669,336.42643 L 2441.1505,338.49181 C 2444.0508,337.82135 2444.7941,337.77829 2446.5759,338.82037 L 2447.3349,338.10464 L 2446.7445,334.76049 L 2444.795,333.34267 L 2446.585,329.90445 L 2445.9688,329.43638 C 2445.7079,329.15604 2445.4698,328.34119 2445.2736,327.6891 L 2444.9191,326.5194 L 2449.5447,324.42811 L 2448.9776,322.23049 L 2449.4738,321.3089 C 2449.7432,320.79899 2450.0031,321.14656 2450.1796,320.58092 L 2450.1314,318.31375 L 2452.1868,319.19899 L 2453.4437,318.26059 L 2449.4738,312.85514 L 2449.4738,310.58663 L 2452.7703,309.93088 L 2453.5678,305.16346 L 2450.8917,303.12534 z \"},\"ma3\":{\"name\":\"MA-3\",\"path\":\"M 2422.3384,334.58509 L 2421.1706,334.7079 C 2420.5186,335.29797 2419.4161,336.98058 2419.416,337.29484 L 2415.9423,343.26742 L 2418.7792,347.97312 L 2420.4794,347.87534 L 2421.2415,349.11593 L 2423.3859,348.5488 L 2426.2039,349.86029 L 2425.5658,353.33395 L 2427.7219,355.05368 L 2429.6775,349.66534 C 2431.0779,348.64058 2432.3878,347.44316 2433.9841,346.74108 L 2438.9111,349.13365 L 2442.6506,348.53108 L 2444.671,351.08316 L 2446.288,350.87661 L 2448.0034,357.69987 L 2451.4588,356.86078 L 2453.4615,363.80811 L 2455.3755,363.47138 L 2457.6972,370.24148 L 2461.2772,370.96811 L 2465.2825,374.24682 C 2465.9198,371.9628 2466.3592,369.82722 2466.4522,367.24633 L 2462.7837,367.83118 L 2460.7987,363.68405 L 2461.3304,362.81563 L 2455.5705,357.23296 L 2453.4083,352.44781 L 2450.2182,353.08583 C 2449.0981,351.18078 2447.8604,349.32252 2447.2053,347.20187 L 2447.2053,346.45752 L 2444.9368,345.03969 L 2444.9368,343.48009 L 2441.7467,342.84207 C 2440.8524,341.16137 2440.5024,339.77753 2440.3998,337.20623 L 2435.7387,339.03167 L 2435.1716,340.50267 L 2432.0346,340.50267 L 2431.2903,335.8593 C 2430.6042,336.3522 2430.1697,337.09755 2429.5626,337.67619 L 2429.8144,338.87402 L 2428.9826,339.69412 L 2424.6736,341.26352 L 2422.3384,334.58509 z \"},\"ma4\":{\"name\":\"MA-4\",\"path\":\"M 2454.2218,333.91474 L 2452.5736,334.02108 C 2449.7703,336.67452 2452.522,334.77572 2448.5682,338.87712 C 2448.5325,340.54089 2449.4544,341.07829 2450.2519,341.73049 C 2450.7921,342.17821 2450.3604,342.64576 2449.9683,342.77613 L 2445.3249,342.88247 L 2445.5022,345.0092 L 2447.7707,346.23207 L 2447.7707,347.08276 C 2447.7708,347.55585 2448.345,348.96533 2449.0467,350.20197 L 2450.4646,352.61227 L 2453.6901,352.13375 L 2455.8168,356.67078 L 2461.9489,362.69653 L 2461.2932,363.65356 L 2463.1718,367.28672 L 2467.0708,366.54237 C 2466.6802,369.87192 2466.3491,372.90396 2465.542,375.16243 L 2469.3216,375.10247 L 2469.3216,378.50524 L 2470.2077,378.50524 L 2472.3876,384.12336 L 2472.9725,383.66257 C 2473.2993,383.40787 2474.2195,383.05324 2475.0106,382.86504 L 2476.4461,382.52831 L 2479.0514,379.0192 L 2477.9703,377.65455 L 2478.0944,376.52029 C 2478.1682,375.89645 2478.4075,374.97352 2478.6261,374.46445 L 2479.0337,373.54286 L 2483.7834,372.72762 L 2482.3655,372.17821 L 2482.3655,370.56544 L 2484.3859,370.56544 L 2484.3505,367.44623 L 2485.7683,367.72979 L 2485.7683,367.19811 C 2485.7684,366.9046 2485.5132,366.50474 2485.2012,366.31197 C 2484.8894,366.11919 2484.6341,365.71933 2484.6341,365.42583 L 2484.6341,364.89415 L 2488.604,364.89415 L 2488.604,361.45593 L 2487.0502,360.76181 L 2483.4467,362.57247 C 2481.3153,361.73331 2479.8424,359.63162 2478.3425,357.98227 L 2474.7979,353.99465 L 2475.4537,352.93128 C 2475.8195,352.34566 2476.1272,351.52391 2476.1271,351.10583 L 2476.1271,350.34375 L 2472.7244,350.85771 L 2472.6121,356.14485 L 2468.3145,357.40915 L 2465.8657,355.25296 L 2460.9919,355.25296 L 2459.8576,352.70088 L 2460.3362,348.73098 L 2457.5182,346.09029 C 2456.3999,347.84451 2455.581,349.90741 2453.9914,351.28306 L 2452.5795,349.07065 L 2449.6878,348.90235 L 2450.6802,347.29824 L 2448.9227,345.48771 L 2449.0381,344.47752 L 2453.442,344.47752 L 2453.442,341.4292 L 2450.6772,341.39375 L 2452.3786,337.58336 L 2453.3711,338.09732 L 2456.0473,337.38841 C 2455.8902,335.92666 2456.5808,336.29577 2456.508,334.62366 L 2453.5129,335.33257 L 2454.2218,333.91474 z \"},\"ma2\":{\"name\":\"MA-2\",\"path\":\"M 2391.7353,373.35204 L 2391.0026,370.43297 L 2391.3104,370.12515 C 2391.4798,369.95584 2392.5084,369.78641 2393.5963,369.74864 L 2396.083,369.64081 L 2396.178,368.17617 L 2394.6171,367.73299 L 2393.2356,364.40608 L 2393.8563,362.10386 L 2392.5831,360.91993 L 2393.0428,357.84732 L 2388.1097,357.41506 C 2387.976,358.23453 2387.5302,358.37567 2386.8628,358.59614 L 2384.854,354.81048 L 2388.5057,352.99646 L 2392.1824,353.50418 L 2391.4584,348.82026 L 2392.1341,349.01592 C 2392.441,349.01592 2392.8773,349.31526 2393.1034,349.68113 C 2393.3295,350.04699 2393.7441,351.38683 2394.0246,352.65855 C 2394.3052,353.93027 2394.5474,355.48119 2394.5629,356.10503 C 2394.5784,356.72887 2394.7976,358.46003 2395.0978,359.47377 L 2396.3478,360.91317 L 2402.0298,358.62458 L 2402.4899,359.34975 C 2402.7431,359.7486 2403.3063,360.24592 2403.311,360.50273 L 2404.9525,360.62652 L 2404.9673,360.06716 C 2404.9754,359.75951 2405.2306,359.09832 2405.5344,358.59785 C 2405.8382,358.09738 2407.1994,356.99185 2408.5593,356.14113 L 2411.0319,354.59434 L 2414.8636,357.82035 L 2413.9874,350.74059 L 2419.0151,348.2612 L 2420.0306,348.18681 L 2421.3591,349.63857 L 2423.338,348.9775 L 2425.6963,350.22045 L 2425.02,353.60207 L 2427.8885,355.72392 L 2430.2166,349.77646 C 2431.4365,348.90084 2432.5862,347.87936 2433.9948,347.33227 L 2439.1663,349.69368 L 2442.5699,349.01191 L 2444.4758,351.568 L 2445.9833,351.25445 L 2447.2697,357.89132 L 2433.3093,363.04614 L 2433.1262,361.92561 L 2391.7353,373.35204 z \"},\"mn3\":{\"name\":\"MN-3\",\"path\":\"M 1440.819,343.73416 L 1436.531,345.46142 L 1434.7082,346.73688 L 1436.1017,348.00435 L 1432.3075,351.02122 L 1431.6613,354.1187 L 1430.9089,354.1187 L 1430.9089,358.88613 C 1430.9089,361.51195 1431.0603,364.0566 1431.2457,364.53969 L 1431.5824,365.42583 L 1442.2515,364.71692 L 1442.2809,369.89347 L 1451.7624,370.33839 L 1453.7713,368.4387 C 1454.3769,367.86552 1454.7375,367.49565 1455.1776,366.8233 L 1451.9104,366.59554 L 1448.9862,361.95217 L 1446.307,364.39642 L 1446.9303,354.04781 L 1451.3256,354.79217 L 1451.5914,348.12841 L 1451.0598,345.66494 L 1448.8976,344.45979 L 1445.3176,346.35613 L 1444.3428,344.74336 L 1440.819,343.73416 z \"},\"mn5\":{\"name\":\"MN-5\",\"path\":\"M 1455.455,366.40059 L 1456.4475,364.18524 L 1455.26,362.74969 L 1454.5689,355.25296 L 1453.5941,355.25296 L 1453.5941,350.1488 L 1451.8927,350.1488 L 1451.8927,355.39474 L 1447.5152,354.70356 L 1446.7885,363.36999 L 1449.0854,361.31515 L 1452.1277,366.10437 L 1455.455,366.40059 z \"},\"mn4\":{\"name\":\"MN-4\",\"path\":\"M 1465.3238,367.11926 C 1464.9549,367.09464 1464.2703,366.92671 1463.8024,366.74607 C 1463.3345,366.56544 1462.6187,365.94826 1462.2117,365.37454 L 1461.4717,364.33143 L 1459.8295,365.1806 C 1458.9264,365.64765 1457.8158,366.02978 1457.3617,366.02978 L 1456.5359,366.02978 L 1457.1307,363.75523 L 1455.8321,362.1905 L 1455.1315,354.68721 L 1454.1612,354.68721 L 1454.1612,350.21711 L 1454.5866,349.95528 C 1454.8205,349.81128 1457.0536,349.60783 1459.5489,349.50319 L 1464.086,349.31292 L 1465.0459,363.43256 L 1466.777,364.69838 L 1465.9945,367.16404 L 1465.3238,367.11926 z \"},\"nh2\":{\"name\":\"NH-2\",\"path\":\"M 2389.9388,328.94111 L 2390.1367,327.02805 L 2388.1411,327.53754 L 2386.0661,325.12063 L 2385.6509,323.88253 C 2385.4225,323.20158 2385.1778,321.24079 2385.1072,319.52523 L 2384.9788,316.40602 L 2385.6827,315.55533 C 2386.0699,315.08744 2386.5717,314.09855 2386.7979,313.35779 L 2387.2093,312.01095 L 2385.7661,311.119 L 2385.9292,306.78165 L 2383.709,302.52218 L 2383.3316,291.04984 L 2381.3928,289.96482 L 2381.983,289.00991 L 2381.4601,285.69411 C 2381.1725,283.87041 2380.6759,281.36251 2380.3565,280.12098 L 2379.7758,277.86367 L 2381.2799,276.13988 L 2381.1899,267.5329 L 2383.6413,264.41652 L 2383.4663,255.53596 L 2384.9463,253.75274 L 2384.3572,252.21762 L 2385.3048,250.68438 L 2383.743,249.48483 L 2385.6507,241.63308 L 2384.2523,241.16694 L 2384.2523,239.14592 L 2381.9838,236.26197 L 2381.9838,233.3886 L 2380.7831,232.64655 L 2381.5534,229.13924 L 2382.7611,228.13011 C 2383.4253,227.57509 2384.2877,227.1125 2384.6776,227.10212 L 2385.3865,227.08325 L 2385.3865,225.94899 L 2388.0464,225.94899 L 2390.1057,223.67352 L 2389.3964,222.96421 L 2389.9635,221.90452 C 2390.2754,221.32169 2390.7875,220.84483 2391.1015,220.84483 C 2391.4155,220.84483 2392.1375,220.39822 2392.706,219.85236 C 2393.2745,219.3065 2394.0295,218.30244 2394.3837,217.62113 C 2394.7379,216.93981 2395.0277,215.98278 2395.0277,215.49439 L 2395.0277,214.60642 L 2397.2188,212.4153 L 2396.3411,209.21869 L 2397.5665,206.47313 L 2396.162,206.00496 L 2396.162,205.20153 C 2396.162,204.75965 2395.7154,203.93497 2395.1695,203.36893 C 2394.6236,202.80288 2393.3837,201.33144 2392.4139,200.09907 L 2390.6509,197.8584 L 2391.2243,196.44944 C 2391.5397,195.67451 2391.855,193.89204 2391.925,192.4884 L 2392.0523,189.93632 L 2393.3933,186.56726 L 2391.6249,185.27424 L 2391.6249,183.53569 L 2389.7958,182.83379 L 2391.1864,181.15826 L 2390.4656,177.31588 L 2391.7971,174.05672 L 2391.5415,167.26651 L 2390.2071,166.41785 L 2392.1921,166.40048 L 2392.1921,165.83335 C 2392.1921,165.52143 2392.2201,165.07481 2392.2544,164.84087 C 2392.2887,164.60693 2392.8093,163.72386 2393.4112,162.87848 L 2394.5057,161.34143 L 2396.7673,163.60305 L 2399.1099,163.3207 C 2400.3982,163.16541 2401.6441,162.8378 2401.8784,162.59268 C 2402.1126,162.34756 2402.3898,161.5955 2402.4941,160.92142 L 2402.684,159.69582 L 2423.9664,216.95881 L 2423.1356,218.29275 L 2423.2547,220.61959 L 2414.9458,222.97185 L 2414.746,233.60523 L 2412.3853,228.78463 L 2410.9472,228.78463 L 2409.7162,226.48435 L 2409.1775,226.81727 C 2408.8812,227.00037 2408.6388,227.48009 2408.6388,227.8833 L 2408.6388,228.61641 L 2412.0416,232.17709 L 2412.0416,233.74991 L 2413.7678,235.18251 L 2413.5502,238.70939 L 2416.0544,243.56888 C 2413.9292,245.55455 2410.8337,246.6134 2408.1785,247.84843 C 2410.1276,252.23751 2412.4814,256.78849 2413.1758,259.31577 L 2408.0873,261.25912 C 2408.6758,263.24512 2408.6169,264.94779 2408.6388,267.2171 L 2406.3703,267.81033 L 2406.3703,270.8294 L 2409.6646,268.48364 L 2415.312,268.48364 L 2416.0115,273.97195 L 2433.3089,279.91108 L 2431.6232,292.30305 L 2426.3574,292.30305 L 2425.7114,293.86265 C 2425.3561,294.72044 2425.0591,295.67746 2425.0515,295.98939 L 2425.0375,296.55651 L 2419.3752,299.06352 L 2422.882,306.01055 L 2424.258,305.52631 L 2427.4937,313.28681 C 2429.2513,313.32316 2430.8066,312.99525 2431.4309,312.30307 L 2429.5804,308.72449 L 2430.6632,306.78955 L 2432.0731,309.88404 L 2436.4281,309.88404 L 2437.0352,308.64262 L 2444.228,304.83609 L 2446.2719,306.24282 L 2444.3391,308.59997 L 2445.4741,311.58542 L 2442.7545,311.58542 L 2441.5375,315.27176 L 2389.9388,328.94111 z \"},\"or5\":{\"name\":\"OR-5\",\"path\":\"M 97.489044,277.84769 L 99.083244,273.27724 C 99.960024,271.2646 100.83448,269.6179 101.02645,269.6179 L 101.37546,269.6179 L 101.52388,265.93156 L 103.30018,261.11097 C 104.27712,258.45964 105.43349,254.93808 105.86996,253.28528 C 106.30636,251.63248 106.66343,249.56263 106.66343,248.68561 L 106.66343,247.09103 L 108.17874,244.88516 C 109.01219,243.67193 110.54344,240.68122 111.58151,238.23914 L 113.46897,233.79898 L 113.46897,231.22895 L 115.64204,229.26234 L 116.75644,226.32963 C 117.36934,224.71663 118.2637,221.99327 118.74395,220.2777 C 119.22419,218.56214 119.91342,216.01006 120.27559,214.60642 C 120.63782,213.20277 121.24669,210.7783 121.62865,209.21869 C 122.01061,207.65909 122.73665,205.48982 123.24202,204.3981 C 123.74738,203.30638 124.85663,200.17563 125.70704,197.44089 L 127.25315,192.46864 L 125.90332,189.50618 L 126.47312,188.93637 C 137.46535,192.11608 139.69004,193.8392 151.46659,195.45027 L 150.89048,199.44213 L 145.22818,198.03345 L 145.22818,198.92802 C 145.22818,199.42003 145.65829,200.72447 146.1839,201.82678 L 147.40344,203.74694 C 148.89338,204.45785 150.19201,205.7147 151.20759,207.00844 L 148.63095,207.23374 L 148.63095,209.01157 L 146.36243,208.29156 L 146.36243,209.6913 L 145.67502,209.00387 L 144.38531,210.29357 C 143.67595,211.0029 143.27677,211.62089 143.0624,212.2963 L 139.23981,227.82301 L 125.36257,224.46987 L 123.42259,233.256 L 153.80469,241.17451 L 157.70501,239.23162 L 156.53083,236.72444 L 158.39285,236.72444 L 157.27311,232.47456 L 159.40639,233.3981 L 159.40639,230.48602 L 161.4581,230.48602 L 165.6052,232.34586 L 165.64481,229.99991 L 166.4955,229.14922 C 166.96338,228.68134 167.35431,227.96128 167.36423,227.54911 L 167.38227,226.79968 L 168.88907,228.78463 L 171.77008,228.78463 L 173.10233,223.23138 L 175.74242,220.75112 L 176.52722,224.32425 L 178.09079,224.92425 L 178.81802,228.80059 L 180.53682,229.76249 L 179.9647,231.33671 L 182.06545,234.83115 L 180.73009,238.369 L 182.83448,240.69434 L 185.26746,240.69434 L 186.37189,239.58989 L 189.6732,241.30262 L 191.02739,240.78297 L 192.01629,241.68109 L 195.70263,240.12395 L 195.70263,237.85869 L 198.56315,238.65097 L 200.975,241.26147 L 203.64368,241.26147 L 207.95233,245.70124 L 211.21201,246.08206 L 212.93308,252.32048 L 214.21122,252.89962 L 214.05551,255.55009 C 210.31413,255.65093 209.66265,257.57401 206.63432,257.5164 L 206.01887,262.81236 L 207.61233,262.81236 C 207.58127,263.89363 207.90672,264.69762 208.70754,265.46198 C 207.40972,266.62281 206.7061,267.90248 206.12132,269.65751 L 203.0753,269.6179 L 203.0753,271.65956 L 204.84534,272.36005 L 204.92463,273.27269 L 203.29507,273.92066 L 202.38933,277.37323 C 196.06995,275.64511 193.11657,275.12364 191.32752,273.8506 C 190.45868,273.28505 189.48497,272.4691 189.16381,272.03735 L 188.57984,271.25237 C 187.41646,271.72512 186.23809,272.14441 185.02405,272.45354 L 182.70098,268.00638 L 173.01748,265.66685 L 169.15607,262.81236 L 165.9121,262.89158 L 161.69754,260.43116 L 158.42521,261.44545 C 156.62548,262.0033 154.31573,262.92189 153.29252,263.48673 C 152.26931,264.05159 151.34415,264.51374 151.23668,264.51374 L 151.01612,262.7243 L 146.9486,259.4492 L 144.74028,261.37573 L 146.34466,264.73365 L 147.3265,264.94405 L 147.17916,266.5552 L 142.83063,266.66617 L 142.72082,265.86602 L 136.19963,266.6644 L 135.12637,268.48251 L 136.2752,269.19255 L 134.7735,270.12068 L 133.76617,268.59325 C 133.21214,267.75316 132.75713,266.65046 132.75509,266.14279 L 132.75135,265.21976 C 134.64748,263.82929 135.87017,262.12191 136.6571,259.14688 L 125.81854,256.33626 L 121.24311,273.64558 L 115.89849,272.35751 L 114.86655,277.53005 L 110.76762,276.88155 L 110.01178,277.62347 C 110.39949,278.59323 111.37515,279.16908 111.92604,279.99091 L 111.2526,280.71026 L 97.489044,277.84769 z \"},\"or3\":{\"name\":\"OR-3\",\"path\":\"M 212.20797,246.5695 C 211.95174,246.56472 212.05012,246.10087 211.58224,245.7985 C 211.11435,245.49613 210.15704,245.24482 209.45488,245.24005 L 208.17822,245.23137 L 205.97668,242.96285 L 203.77514,240.69434 L 200.8711,240.69434 L 200.13004,239.65008 C 199.72244,239.07574 198.83154,238.31012 198.15019,237.9487 C 197.4689,237.58727 196.51187,237.29157 196.02346,237.29157 L 195.1355,237.29157 L 195.1355,239.87853 L 192.26905,241.16109 L 191.12931,240.17675 L 189.6732,240.73549 L 186.37189,239.02277 L 185.26746,240.12721 L 182.79756,240.12721 L 181.31004,238.33489 L 182.63258,234.83115 L 180.47137,231.3342 L 181.53593,229.43186 L 179.37488,228.74596 L 178.64317,224.84557 L 176.95739,224.01718 L 175.9209,220.30278 L 176.98738,219.64364 L 176.98738,216.92633 L 173.1435,216.20521 L 171.14386,211.77077 L 170.15111,211.77077 C 169.74014,210.76273 169.67151,210.05995 169.17167,209.26455 L 168.54658,207.89259 L 169.6932,203.73974 L 175.31277,205.09649 L 174.57703,209.01835 L 178.40521,212.97148 L 185.43142,216.43254 L 187.37151,218.57632 L 191.08915,218.57632 L 191.79665,220.80543 L 195.80948,221.55824 L 197.88279,220.93607 C 199.02311,220.59387 200.72172,220.32998 201.65748,220.34965 C 202.59325,220.36931 204.57695,220.19971 206.06577,219.97276 L 208.77262,219.56013 L 209.07666,219.06822 C 209.24385,218.79767 209.63613,218.57632 209.94839,218.57632 L 210.51609,218.57632 L 209.15345,226.13056 L 209.9425,226.76291 C 210.37646,227.1107 211.17816,228.23896 211.72402,229.27016 L 212.71649,231.14507 L 212.72517,232.37515 C 212.72993,233.05169 212.92134,233.88603 213.15052,234.22924 C 213.37969,234.57244 214.10857,235.13805 214.77024,235.48616 L 215.97323,236.11906 L 215.87069,241.91488 L 215.09003,242.94 L 214.99803,246.0607 L 212.20797,246.5695 z \"},\"me2\":{\"name\":\"ME-2\",\"path\":\"M 2436.4836,245.76882 L 2435.4679,246.31238 C 2426.1569,216.42719 2413.2101,187.76367 2403.5418,158.03533 L 2403.5347,157.32642 L 2404.9839,157.32642 L 2406.8541,155.14229 L 2409.2059,155.75732 L 2409.2059,157.26798 L 2411.9768,160.25772 L 2413.9981,159.86844 L 2414.2534,152.82133 L 2413.2253,152.18594 L 2413.9273,150.35685 L 2412.0219,148.9636 L 2412.7301,147.1181 L 2413.4866,147.1181 C 2413.9027,147.1181 2414.4009,147.37331 2414.5937,147.68523 L 2414.9441,148.25236 C 2416.6589,148.21014 2418.423,148.40812 2420.0893,147.95547 L 2420.3861,147.65858 L 2419.8293,144.7455 L 2414.272,141.32607 L 2415.4977,135.19792 C 2416.7852,133.29378 2417.7563,131.06494 2419.499,129.53711 L 2419.9814,129.53711 L 2419.9814,127.97035 L 2423.9513,124.94236 L 2423.9513,122.12884 L 2422.2499,121.47596 L 2422.2499,120.08153 C 2422.2499,119.31459 2422.5111,118.1991 2422.8303,117.60265 C 2423.1495,117.00622 2424.0462,115.88263 2424.8231,115.10581 L 2426.2355,113.6934 L 2426.0616,110.98159 L 2425.8877,108.26979 L 2422.8792,107.91688 L 2423.4493,106.4312 L 2421.7025,105.76087 L 2422.3917,102.31493 L 2421.1156,102.31493 L 2421.1156,100.7349 L 2422.691,100.1304 L 2421.9331,96.360083 L 2419.572,95.308354 L 2420.4411,84.486178 L 2421.711,84.062895 L 2422.5695,82.007995 C 2423.0418,80.877804 2423.7024,79.78362 2424.0375,79.576482 L 2424.6469,79.199858 L 2421.7206,61.765232 L 2437.683,7.8880076 L 2439.4501,6.4924292 L 2445.3863,6.7537502 L 2445.9058,11.29078 L 2448.6214,16.878604 L 2456.2313,18.956993 L 2462.2325,13.124634 L 2467.0531,11.047524 L 2467.0531,8.171572 L 2468.7901,8.171572 L 2469.4429,6.4701859 L 2473.6418,6.4701859 L 2475.6439,5.0062515 L 2474.9342,3.4487544 L 2474.2246,1.8912568 L 2476.1158,0 L 2482.3933,0.11593585 L 2483.0883,0.64332471 C 2483.4706,0.93338835 2485.0594,1.6188122 2486.619,2.1664883 C 2488.1786,2.7141645 2490.3479,3.5875359 2491.4396,4.1073133 C 2492.5313,4.6270913 2494.573,5.9730772 2495.9766,7.0983932 L 2498.5287,9.1444223 L 2502.5169,9.874592 L 2526.0568,75.323204 L 2527.3878,76.145784 L 2526.0342,79.11658 L 2528.7927,81.673055 L 2527.783,83.306697 C 2528.8075,85.662272 2528.9942,88.511357 2530.1874,90.777319 L 2530.6024,91.192293 L 2535.0808,90.928045 L 2537.8935,92.770986 L 2545.5383,92.292738 L 2545.9785,90.97236 L 2548.0311,90.97236 L 2548.3754,91.869439 C 2548.5647,92.36283 2548.7196,93.274285 2548.7196,93.894899 L 2548.7196,95.023281 L 2547.8689,95.873974 C 2547.401,96.341856 2547.0182,97.071075 2547.0182,97.494471 L 2547.0182,98.264274 C 2548.4066,99.727671 2549.7339,101.26622 2551.4285,102.37529 L 2552.1525,102.60854 L 2552.297,107.13553 L 2551.409,109.18518 L 2558.0772,115.65114 L 2561.2132,117.04357 L 2563.4822,114.77449 L 2562.7749,111.95612 L 2568.0057,111.95612 L 2578.7285,123.2987 L 2579.3993,123.2987 C 2579.7683,123.2987 2580.4225,123.74531 2580.8531,124.29117 L 2583.265,128.25087 L 2582.1269,132.37276 L 2580.4788,132.37276 L 2580.4788,134.64127 L 2579.4907,134.64127 L 2578.7313,140.36586 L 2577.076,141.00104 L 2577.076,142.45062 L 2574.4747,144.15505 L 2572.539,142.73959 L 2572.539,139.74543 L 2572.0788,139.74543 C 2571.8257,139.74543 2571.0601,140.26579 2570.3774,140.90178 L 2569.1362,142.05813 L 2569.1362,143.79635 L 2570.9896,145.64964 L 2569.7034,146.07837 L 2569.7034,147.68523 L 2568.002,147.68523 L 2568.002,148.94994 L 2565.0298,147.00253 L 2562.8469,149.18547 L 2563.996,154.20721 L 2562.0797,155.65006 L 2560.6293,155.0935 L 2558.9279,155.74639 L 2558.9279,157.10353 C 2558.9279,157.84996 2558.7774,158.46068 2558.5935,158.46068 C 2558.4096,158.46068 2557.8353,157.97783 2557.3174,157.38769 L 2556.3758,156.31469 L 2552.0866,156.88756 L 2552.3729,157.8159 C 2552.5303,158.32649 2552.7764,159.71828 2552.9198,160.90877 L 2553.1805,163.07329 L 2554.5298,164.69909 L 2552.7251,164.69909 L 2553.469,166.68404 L 2551.7551,165.29321 L 2550.421,166.62733 L 2550.421,168.66899 L 2549.9673,168.66899 C 2549.7177,168.66899 2549.1726,168.34998 2548.7559,167.96008 L 2547.9982,167.25117 L 2548.5926,169.72371 L 2547.6895,173.48959 L 2546.8859,170.93751 L 2545.3359,170.93751 L 2542.4803,165.30216 L 2541.4883,165.66817 C 2540.9426,165.86947 2540.3087,166.308 2540.0796,166.64268 L 2539.6629,167.25117 L 2539.6455,165.83335 L 2537.9442,165.83335 L 2537.9442,167.49914 L 2536.2428,166.84625 L 2536.2428,169.48358 L 2537.7674,170.79368 C 2538.606,171.51424 2539.8493,172.24364 2540.5304,172.41458 L 2541.7686,172.72536 L 2543.1676,175.33938 L 2542.4008,177.75549 L 2539.0781,179.47374 L 2539.362,183.13077 L 2535.3921,182.8052 L 2533.8323,181.24694 L 2533.394,176.32523 L 2534.7124,173.81182 C 2534.1816,173.05864 2533.5808,172.48606 2532.7814,172.07176 L 2532.2945,172.07176 L 2531.5138,175.18226 L 2530.4769,172.07176 L 2529.9166,172.07176 C 2529.6084,172.07176 2528.9916,172.43635 2528.546,172.88195 C 2528.1004,173.32755 2527.7358,173.96341 2527.7358,174.29497 C 2527.7358,174.62652 2527.2254,175.21656 2526.6016,175.60615 L 2525.4673,176.31451 L 2525.4673,176.95934 C 2525.4673,177.314 2525.8238,177.90001 2526.2595,178.26159 L 2527.0516,178.91902 L 2526.4677,181.15186 L 2527.8643,182.83472 L 2528.6992,182.31879 L 2530.1951,185.11402 L 2529.6142,185.69496 L 2527.1859,184.83822 C 2525.8503,184.367 2524.1349,183.98147 2523.3738,183.98147 C 2522.6127,183.98147 2521.5148,183.72717 2520.9341,183.41637 L 2519.8782,182.85128 L 2518.0946,183.53569 L 2518.0946,185.11572 L 2516.6768,185.10751 L 2515.7325,182.13419 L 2514.7882,179.16087 L 2515.4051,175.35645 L 2513.0118,176.63731 L 2511.3345,179.728 L 2511.2891,178.31018 L 2510.6452,178.31018 C 2510.2911,178.31018 2509.3787,178.98204 2508.6176,179.8032 L 2507.234,181.29621 L 2507.8739,183.84593 L 2510.1548,184.44241 L 2510.1548,188.5185 L 2509.0206,188.5185 L 2509.0206,191.73223 L 2508.3117,191.80395 C 2507.9218,191.84339 2506.9392,192.03598 2506.1281,192.23192 L 2504.6534,192.58817 L 2496.5345,188.49955 L 2494.6763,192.39619 L 2492.1637,192.04444 C 2491.6471,191.89363 2491.3299,192.62278 2490.8179,193.19098 L 2487.4697,193.18426 L 2487.4697,185.68285 L 2489.8866,185.68285 L 2489.5351,183.55612 C 2489.3417,182.38642 2489.1808,180.98277 2489.1773,180.43691 L 2489.1711,179.44444 L 2487.0314,179.44444 L 2486.266,174.34028 L 2482.2587,174.52939 L 2483.7474,175.82278 L 2484.6341,176.16302 L 2484.6341,178.81037 L 2483.3702,179.59149 L 2483.9496,183.91181 L 2482.082,185.57331 L 2472.1572,186.38414 L 2471.8793,183.02853 L 2469.4404,183.40782 L 2468.7901,181.71295 L 2467.8934,181.71295 C 2467.4003,181.71295 2466.2438,182.10232 2465.3235,182.57821 L 2463.6503,183.44347 L 2463.6503,185.68285 L 2462.5624,185.68285 C 2461.9641,185.68285 2461.0709,185.83776 2460.5775,186.02709 L 2459.6804,186.37134 L 2459.3292,190.54045 C 2460.8844,190.49029 2461.7741,191.51177 2463.3292,194.47158 L 2464.4408,197.00569 C 2464.9418,198.53741 2465.3517,200.46127 2465.3517,201.28096 C 2465.3517,202.10063 2465.0716,203.29459 2464.7293,203.93419 L 2464.1069,205.0971 L 2465.5146,210.12488 L 2471.1408,209.93632 L 2470.6827,206.71384 L 2471.9473,205.99132 L 2475.0038,208.99755 L 2474.754,210.37481 C 2474.6166,211.1323 2474.3439,212.01148 2474.148,212.32854 L 2473.7917,212.90503 L 2469.8192,212.90503 L 2470.2284,215.59889 C 2470.4534,217.08052 2470.6605,219.10117 2470.6885,220.08923 C 2470.7165,221.07729 2470.9262,222.07221 2471.1544,222.30016 L 2471.5695,222.71461 L 2471.2005,224.1844 C 2470.9977,224.99279 2470.4902,225.99564 2470.0729,226.41296 L 2469.3141,227.17173 L 2465.8995,226.42177 C 2463.6148,225.10215 2461.0305,223.46141 2458.5893,222.44589 L 2457.8191,226.03947 L 2455.7105,226.35883 L 2454.2843,226.0862 C 2453.4999,225.93624 2452.7192,225.58882 2452.5494,225.31415 C 2452.3797,225.03947 2451.7752,224.81473 2451.2061,224.81473 L 2450.1715,224.81473 L 2449.6448,226.82886 L 2447.3515,227.00161 L 2445.8803,224.2525 L 2445.8803,220.74712 L 2443.1831,218.97985 L 2436.4188,226.97463 L 2434.1596,226.38383 L 2434.1683,227.15889 C 2434.173,227.58517 2434.3693,228.23632 2434.6042,228.60589 L 2435.0316,229.27783 C 2436.4072,229.49983 2437.6092,229.6763 2438.9213,229.74498 L 2442.4994,232.20836 L 2442.3682,234.89174 C 2442.296,236.3676 2442.0448,238.03802 2441.81,238.60377 L 2441.3832,239.63241 L 2442.5985,242.29979 L 2440.4123,243.17456 C 2439.2098,243.65568 2438.0625,244.31391 2437.8626,244.63729 C 2437.6627,244.96068 2437.0421,245.46987 2436.4836,245.76882 z \"},\"wa5\":{\"name\":\"WA-5\",\"path\":\"M 300.67012,27.176996 L 300.2031,28.103065 L 301.22577,30.461944 L 303.78708,29.820931 L 304.58348,30.961682 L 303.13671,32.182308 L 303.13671,35.142011 L 304.36632,36.390465 L 303.01939,39.970465 L 305.53602,45.183206 L 298.55212,49.77316 L 299.6523,52.65123 L 302.11152,52.707767 L 300.74638,56.323212 L 303.45708,56.269801 C 302.484,59.0695 302.81685,59.976928 301.89707,62.19029 C 302.53442,65.069903 303.62484,65.97728 304.76857,67.311088 L 303.45708,69.402375 C 306.71654,72.424042 309.06984,75.179187 311.55639,78.547325 L 310.22718,81.471582 L 317.68283,89.816325 L 318.08101,90.963967 L 319.83293,92.796434 L 320.18738,95.738414 L 327.04623,97.422616 L 328.46432,94.40041 L 327.91505,92.025292 L 331.69771,90.617207 L 332.55788,90.970988 L 334.20609,89.606335 C 335.33156,92.017261 336.48367,90.936802 337.44922,92.681437 L 336.1556,95.561186 L 338.06966,97.475245 L 344.50424,93.577183 L 347.69312,94.49782 L 347.53321,96.315013 L 351.0959,96.766334 L 351.0959,94.515542 L 352.8859,93.02683 L 354.72906,94.196533 L 360.22312,92.58376 C 360.54502,93.43671 363.47879,92.024254 364.54694,96.022114 L 363.93571,98.653744 C 366.5456,101.11657 366.73018,102.06026 366.40837,103.32376 L 364.70698,104.72386 L 351.71619,168.91574 L 344.29035,167.60425 L 344.29035,172.08811 L 342.9257,174.28574 L 344.75114,178.1493 L 380.17851,185.4214 L 381.04738,188.80069 L 379.96629,190.80336 L 381.04738,192.75287 L 379.94857,194.80871 L 374.9153,192.87693 L 371.93788,194.24158 L 369.29718,192.50475 L 362.06122,196.37959 L 360.05855,200.93434 L 356.73174,204.85752 L 354.55184,204.29039 L 352.85045,208.36663 L 350.10342,208.36663 L 348.79193,209.94396 L 341.45471,210.40475 L 340.26728,211.6099 L 342.44718,215.45574 L 343.15609,220.18772 L 340.40906,223.44871 L 427.55193,240.37395 L 426.96708,236.15594 L 425.95688,236.15594 L 425.95688,234.52544 L 428.79253,231.4594 L 428.79253,230.6796 C 428.79252,230.25303 428.48341,229.4128 428.10134,228.80098 L 427.39243,227.68445 L 428.68619,226.39069 L 425.21253,218.00782 L 427.03797,214.32148 L 455.47958,58.649847 C 396.2571,48.144418 364.40154,41.395664 300.67012,27.176996 z \"},\"wa4\":{\"name\":\"WA-4\",\"path\":\"M 273.1157,228.70571 L 268.87811,224.12165 C 263.52394,225.19138 257.56715,226.40016 254.06721,227.74803 L 252.62438,226.55058 L 246.30701,225.8081 L 242.72633,227.92327 L 241.66597,226.23256 L 242.33534,224.26734 L 236.61155,219.71058 L 232.65305,219.71058 L 229.28306,216.87493 L 220.03285,216.87493 L 216.68639,215.14442 L 216.73275,211.98764 L 222.64124,211.53527 L 227.77019,206.38305 L 229.81633,197.63811 L 233.5212,198.43575 L 238.471,177.88744 L 243.05788,178.87343 L 244.33114,177.15686 L 242.93419,170.46259 C 244.93164,168.44717 246.07686,166.62841 247.3532,164.02297 L 246.59869,161.64584 L 249.86342,159.002 L 247.33902,157.04285 L 245.50016,147.20402 L 249.01273,145.38759 L 249.01273,143.75887 L 254.18681,138.4351 L 253.7606,134.10321 L 257.74005,134.35771 L 258.69243,129.83361 L 256.72993,128.39861 L 258.08679,127.04175 L 258.08679,124.94108 L 254.77033,123.78496 L 255.11243,118.66798 L 259.45124,114.22464 L 261.51516,114.22464 C 262.49454,112.18778 264.40545,112.0014 266.66882,109.85125 C 268.71045,109.70721 270.38702,108.92116 272.26501,108.02182 L 272.26501,103.56015 L 275.53473,102.42031 L 274.62687,97.494341 L 276.42144,95.497503 L 273.90479,92.957311 L 273.82397,87.656614 L 277.06688,83.97186 L 276.74033,81.479602 C 278.56329,80.56459 280.67108,80.575303 282.52964,80.764044 L 285.96803,78.985988 L 285.33063,77.324958 L 288.25142,75.970247 C 286.91456,72.439434 285.61329,70.261614 285.30897,65.983099 L 283.55864,65.311426 L 285.3363,63.34709 L 284.60425,61.439423 L 286.40551,59.449084 L 286.15966,56.093947 L 290.12956,55.7469 L 291.26382,54.392561 L 296.03036,54.298657 L 296.36798,56.661076 L 302.91142,56.559923 L 302.52767,58.258199 C 302.4151,59.251304 302.15609,60.446658 301.95215,60.914539 C 301.74821,61.382421 301.64709,62.273431 301.7274,62.894567 C 301.80765,63.515704 302.35731,64.703532 302.94877,65.534194 L 304.41792,67.392425 L 302.99733,69.387408 C 306.4486,72.651052 308.68297,75.306235 311.20366,78.56988 L 309.8465,81.53349 L 317.3903,89.948557 L 317.71242,90.998913 L 319.55144,92.921128 L 319.90935,95.94317 L 327.19341,97.777905 L 328.87829,94.400455 L 328.31609,92.250572 C 330.82964,91.032312 332.01987,90.583571 332.49343,91.284242 L 334.19183,89.996292 C 335.23635,92.250703 336.81773,91.391247 337.11063,92.679282 L 335.71361,95.837553 L 338.07451,97.974097 L 344.57392,93.956013 L 347.42893,94.627579 L 347.26086,96.578184 L 351.37946,97.141961 L 351.39307,94.663688 L 353.01113,93.37106 L 354.69802,94.628429 L 360.21208,92.984204 C 360.91384,93.552291 361.72824,93.512796 362.5844,93.597282 L 364.17275,96.031631 L 363.50864,98.677689 C 365.49237,101.08616 366.29497,101.84823 366.1312,103.21874 L 364.48836,104.57523 L 351.40715,168.26065 L 343.8804,167.09319 L 343.94554,171.94619 L 342.42779,174.28334 L 344.48117,178.7308 L 379.88494,185.67069 L 380.73398,188.632 L 379.4124,190.78701 L 380.50747,192.83308 L 379.74,194.35459 L 374.925,192.30191 L 372.0931,193.59221 L 369.24401,191.92127 L 361.84135,196.09631 L 359.96352,200.30601 L 356.63697,204.35604 L 354.26146,203.92911 L 352.5926,207.80087 L 349.8224,207.80087 L 348.5184,209.37209 L 341.44059,209.84048 L 339.68719,211.59385 L 341.88987,215.45711 L 342.59991,220.26232 L 338.5387,224.75762 L 332.80328,226.80946 L 328.54011,225.13922 L 317.28499,224.81473 L 315.08322,223.14942 L 312.16172,223.11335 L 309.53404,225.9104 L 295.86488,225.50219 C 292.84862,226.49277 290.48134,227.34428 286.81611,227.08325 L 284.7483,229.10686 L 273.1157,228.70571 z \"},\"fl23\":{\"name\":\"FL-23\",\"path\":\"M 2238.6065,1344.7508 L 2235.6823,1345.6546 L 2234.9911,1349.341 L 2221.1319,1352.3184 L 2225.3499,1372.3983 L 2215.9214,1384.5384 L 2215.1061,1396.8912 L 2204.437,1398.8938 L 2205.922,1403.9094 L 2208.8677,1403.2182 L 2209.6653,1407.4894 L 2207.3613,1409.2617 C 2208.084,1412.6014 2208.9096,1415.9201 2209.5589,1419.275 C 2206.6486,1420.4236 2204.1598,1420.8697 2201.39,1421.3626 L 2203.3914,1430.8835 L 2224.5853,1426.4401 L 2228.7704,1442.8817 L 2239.1167,1440.8437 L 2239.9231,1442.0476 L 2253.3835,1439.2309 C 2253.3278,1434.2373 2252.9443,1433.2718 2251.9518,1427.6225 L 2255.9394,1428.3668 L 2258.456,1423.2272 L 2260.8663,1422.0752 L 2261.3626,1423.3158 L 2262.4082,1422.9259 L 2261.6993,1421.774 L 2263.188,1421.0473 L 2263.897,1422.5715 L 2262.1601,1424.6627 L 2265.2261,1426.4882 L 2266.8566,1425.8502 L 2267.2643,1423.812 L 2266.0768,1422.7664 L 2265.9174,1421.1891 L 2266.1655,1419.8421 L 2267.0162,1417.2724 L 2266.6617,1416.4748 L 2266.1123,1416.8647 L 2266.2718,1417.4142 L 2265.3679,1417.9104 L 2264.7831,1419.4522 L 2264.8894,1419.9485 L 2265.2793,1419.8421 L 2265.4211,1420.3029 L 2264.6413,1420.6397 L 2263.7906,1419.0978 L 2262.0538,1420.0903 L 2262.1956,1420.4979 L 2258.7874,1421.8448 L 2256.5597,1413.5151 L 2258.9523,1410.4845 L 2258.2079,1402.3675 L 2259.5194,1399.9218 L 2257.5699,1396.2532 C 2257.9441,1395.3405 2259.3954,1392.301 2259.3954,1392.301 L 2262.4437,1390.6173 L 2262.4791,1391.4148 C 2262.4063,1392.9449 2261.4335,1394.3391 2261.4335,1394.3391 L 2263.7197,1395.2429 L 2264.0564,1402.208 L 2264.4818,1402.208 L 2264.6413,1406.107 L 2264.418,1406.1056 L 2264.4534,1407.2576 L 2264.9958,1407.1172 L 2264.4818,1395.3493 L 2263.8792,1390.5464 L 2262.1601,1388.0298 L 2257.499,1392.3718 L 2258.1902,1393.2403 L 2256.6483,1394.5872 L 2255.8508,1398.2027 L 2254.8938,1398.2027 L 2252.1113,1395.4202 L 2252.1113,1397.6355 L 2250.0554,1397.6355 L 2248.1414,1393.6302 L 2248.1882,1387.9437 L 2249.9833,1385.9639 L 2249.9365,1382.8181 L 2247.0932,1378.2531 L 2243.0651,1378.7925 L 2241.7131,1377.1556 L 2239.8294,1376.9708 L 2237.571,1375.5973 L 2233.9822,1358.9379 L 2238.5002,1353.1336 L 2237.9179,1351.3044 L 2240.6447,1348.9688 L 2238.6065,1344.7508 z \"},\"fl10\":{\"name\":\"FL-10\",\"path\":\"M 2099.7841,1335.6767 L 2099.6423,1344.0419 L 2097.9055,1348.1181 L 2098.5789,1350.8474 L 2106.2529,1358.2201 L 2107.015,1364.1041 L 2107.8302,1363.8027 C 2108.2716,1363.6334 2108.6277,1363.2755 2108.6277,1363.0229 C 2108.6277,1362.7704 2108.3638,1362.4741 2108.0429,1362.3672 L 2107.458,1362.1722 L 2107.2099,1358.8049 L 2111.5343,1357.7239 L 2110.7899,1353.3641 L 2112.6331,1350.5461 L 2111.4102,1348.2599 L 2113.1072,1347.4513 L 2112.7439,1346.9048 L 2110.4532,1347.7637 L 2108.8758,1346.2041 L 2106.6251,1345.7255 C 2105.3852,1345.4655 2103.7989,1345.2302 2103.0982,1345.1938 L 2101.8222,1345.1229 L 2100.5993,1343.8823 L 2101.4855,1342.1455 C 2101.9798,1341.1894 2102.3908,1340.0874 2102.3893,1339.6821 C 2102.3878,1339.2766 2101.794,1338.2022 2101.0778,1337.3072 L 2099.7841,1335.6767 z \"},\"tx10\":{\"name\":\"TX-10\",\"path\":\"M 1294.6386,1281.3742 L 1296.6235,1284.068 L 1295.2411,1286.6201 L 1296.0209,1287.1163 C 1296.443,1287.3838 1297.3349,1287.6078 1298.0059,1287.6126 L 1299.2287,1287.6126 L 1301.4972,1291.4761 L 1305.0064,1292.2382 L 1305.9457,1293.9396 L 1315.4628,1292.3623 L 1317.306,1298.388 L 1326.2737,1293.2839 L 1328.8081,1290.395 L 1329.836,1290.9445 C 1330.3986,1291.2455 1331.3518,1291.4594 1331.9627,1291.4052 C 1332.5736,1291.3511 1333.2304,1291.0902 1333.416,1290.8381 L 1333.7527,1290.3773 L 1336.5174,1291.0685 L 1337.1555,1292.6104 C 1337.504,1293.4517 1337.9436,1294.8666 1338.1479,1295.765 L 1338.5201,1297.3955 L 1343.4648,1305.8493 L 1345.3257,1307.2317 C 1346.3496,1307.9871 1347.4204,1308.5963 1347.7005,1308.5963 C 1347.9806,1308.5963 1348.8345,1309.0955 1349.5969,1309.6951 L 1350.9792,1310.7762 L 1354.3466,1310.3509 L 1359.2912,1320.1338 L 1361.7015,1320.3111 L 1363.846,1322.2606 L 1367.9576,1322.9163 L 1367.9576,1323.7138 L 1371.3604,1323.2176 L 1371.3604,1322.2783 C 1371.3604,1321.7593 1370.9615,1320.7586 1370.4743,1320.0629 L 1369.5881,1318.8047 L 1371.4491,1318.078 L 1372.4592,1315.4373 L 1374.0366,1315.0474 C 1374.9054,1314.8308 1377.0061,1313.9383 1378.6976,1313.0625 L 1381.7637,1311.4674 L 1388.0198,1315.2778 L 1390.6428,1314.0904 L 1390.6428,1313.5055 L 1387.7186,1308.6849 L 1388.9769,1306.3278 L 1387.7717,1306.3278 L 1386.6374,1303.3326 L 1388.5161,1301.2591 L 1392.2378,1300.0362 L 1392.9291,1297.2538 L 1395.5343,1297.2538 L 1396.4913,1295.2511 C 1397.017,1294.1487 1397.4495,1292.9365 1397.4483,1292.5572 C 1397.4471,1292.1778 1396.9215,1291.0064 1396.2786,1289.952 L 1395.1089,1288.0379 L 1394.2582,1289.2431 L 1391.2631,1290.4482 L 1390.3592,1291.9901 L 1382.1713,1293.5142 L 1381.4447,1283.554 L 1367.2842,1285.4149 L 1365.7246,1283.3591 L 1365.6891,1281.0728 L 1364.4663,1280.5235 C 1363.7899,1280.2156 1363.0413,1279.5735 1362.818,1279.1056 C 1362.5947,1278.6378 1362.0877,1277.5413 1361.6838,1276.6776 L 1360.9572,1275.118 L 1360.5495,1275.7738 C 1359.2382,1276.8524 1357.6106,1277.3178 1356.0125,1277.8473 L 1354.5238,1276.3763 L 1353.7263,1276.8726 C 1353.2857,1277.1514 1352.2816,1277.3995 1351.4932,1277.4043 L 1350.0576,1277.4043 L 1347.7537,1275.7915 L 1346.9384,1276.3054 C 1346.4899,1276.5892 1345.5436,1276.8324 1344.8295,1276.8371 L 1343.518,1276.8371 L 1339.0695,1274.5686 L 1337.8644,1272.3001 L 1338.4493,1271.2013 C 1338.7721,1270.598 1339.0341,1269.4725 1339.0341,1268.7023 L 1339.0341,1267.3023 L 1334.8161,1263.935 L 1336.1807,1260.9575 L 1337.9885,1260.9575 L 1338.0948,1259.4156 L 1339.1582,1259.1321 L 1339.5303,1257.2889 L 1337.2796,1255.1976 L 1309.2598,1273.0799 L 1299.4414,1276.9966 L 1290.6332,1272.6368 L 1288.3115,1272.814 L 1286.4683,1271.1481 L 1283.6859,1272.1583 C 1282.1546,1272.7076 1280.7758,1273.3016 1280.6198,1273.4875 C 1280.4639,1273.6734 1279.6344,1274.0043 1278.7767,1274.2142 L 1277.2171,1274.5863 L 1275.5157,1275.7029 L 1275.5157,1279.1233 L 1272.1306,1282.6502 C 1272.5846,1283.537 1273.3569,1284.0898 1274.1801,1284.6016 L 1276.5081,1284.0503 L 1278.895,1282.3907 L 1282.5871,1281.2678 L 1287.1418,1286.3365 C 1288.4203,1287.0129 1289.7113,1287.6609 1291.0586,1288.1797 L 1294.6386,1281.3742 z \"},\"tx11\":{\"name\":\"TX-11\",\"path\":\"M 1194.4163,1295.1609 L 1194.4163,1285.3454 L 1136.0785,1285.3454 L 1135.3581,1283.0757 L 1127.5936,1277.8042 L 1124.5553,1270.6553 C 1118.9301,1266.5851 1117.093,1265.5168 1112.1826,1264.8774 L 1112.1826,1259.2575 L 1105.9442,1259.2575 L 1105.9442,1236.1901 C 1080.5179,1235.8447 1055.0916,1235.5861 1029.6654,1234.2549 L 1028.2476,1232.3856 L 1028.2476,1227.4983 C 1023.7748,1223.3262 1022.9472,1222.6563 1020.4042,1222.4867 L 1019.7554,1223.1355 C 1018.3582,1221.7388 1017.1331,1220.114 1015.4971,1218.9914 C 1013.7409,1219.3873 1012.8423,1220.212 1011.5149,1221.4656 L 1007.4614,1222.3952 L 1001.9047,1217.2935 L 997.72981,1216.1039 L 996.91661,1215.0215 L 994.21981,1215.0215 L 993.43361,1215.9413 C 990.33741,1215.7456 988.09901,1215.4784 985.14581,1214.282 L 983.98571,1212.0913 C 980.96851,1212.8089 978.32471,1211.3545 975.39401,1211.3358 C 974.55341,1211.3178 973.66021,1211.0977 973.40901,1210.8467 C 973.15801,1210.5956 972.88341,1209.8373 972.79891,1209.1613 L 971.81821,1198.8583 L 968.13191,1198.5029 L 965.36341,1195.9996 L 965.09751,1193.5838 L 963.63241,1193.3481 L 962.91361,1191.0831 L 959.90855,1191.6792 L 956.83608,1189.0281 C 956.76417,1186.6169 956.2901,1184.5074 955.5145,1182.0962 L 953.46115,1182.7479 L 951.11806,1180.7417 L 951.11806,1178.1581 L 949.9838,1178.1581 L 950.01732,1176.3991 L 947.37013,1175.5785 L 996.48831,1177.2059 L 997.80561,1144.8926 L 1042.4258,1146.134 L 1042.4258,1118.4415 L 1068.6974,1119.1767 L 1067.2559,1173.4679 C 1076.4926,1173.5278 1085.7308,1174.0341 1094.9685,1173.9671 C 1095.8277,1155.774 1095.4592,1137.5213 1096.5202,1119.3376 L 1122.5586,1119.9296 L 1121.9304,1146.966 L 1135.921,1146.966 C 1136.6772,1147.6244 1137.2752,1148.3473 1137.7034,1149.2345 C 1137.7034,1149.5019 1137.2609,1150.4653 1136.7201,1151.0061 L 1128.7804,1154.9102 L 1124.943,1155.0679 L 1121.8238,1157.2516 L 1121.8238,1174.0242 L 1213.0561,1174.7553 C 1219.5571,1171.0581 1225.743,1166.7607 1232.434,1163.4127 L 1244.3819,1182.7516 L 1248.5432,1180.5037 L 1253.1119,1188.37 L 1237.3928,1198.4355 L 1247.9994,1214.9748 L 1252.8996,1212.3366 L 1267.5759,1235.9815 L 1267.5834,1238.5573 L 1272.0608,1246.0663 L 1265.0238,1253.5531 L 1257.198,1271.8462 L 1258.6494,1272.5015 L 1258.6431,1273.7001 L 1256.6208,1275.7042 L 1242.3583,1271.7343 L 1231.7021,1271.7343 L 1232.5305,1294.4195 L 1194.4163,1295.1609 z \"},\"ga11\":{\"name\":\"GA-11\",\"path\":\"M 1912.5075,953.44968 L 1900.5092,954.07001 L 1888.2805,957.08288 L 1905.6488,1010.7651 L 1907.4743,1009.6663 C 1910.5491,1009.3001 1912.4139,1008.44 1914.8824,1006.7598 L 1924.9489,1007.256 L 1925.7287,1002.0633 L 1931.0633,1001.5493 L 1933.9166,1000.6455 C 1935.2746,1000.5582 1936.623,1000.3796 1937.922,999.95423 L 1937.1954,993.83991 L 1942.2109,993.83991 L 1944.2313,990.43713 L 1947.3328,990.01179 C 1948.4118,988.64291 1948.9246,986.96665 1949.495,985.33298 L 1951.9762,985.33298 L 1952.6319,987.03436 L 1954.3687,987.03436 L 1954.3687,985.82921 L 1955.6271,986.60902 L 1955.2194,985.26209 C 1954.9997,984.52124 1954.2542,983.02193 1953.5535,981.9302 C 1952.8527,980.83848 1951.9622,978.9618 1951.5685,977.76532 L 1950.8419,975.60315 L 1944.1604,976.36525 L 1944.1604,973.13971 L 1940.1728,966.54684 L 1939.0562,961.15912 L 1923.4602,962.75416 C 1919.4212,959.7409 1916.1231,957.0805 1912.5075,953.44968 z \"},\"ca48\":{\"name\":\"CA-48\",\"path\":\"M 249.52434,1003.804 L 247.25537,998.66186 C 245.42164,996.70147 243.56916,994.74816 241.35649,993.20864 L 239.70468,992.09457 C 244.02754,991.46307 244.21101,991.69917 244.34491,989.23352 L 246.86122,986.97226 L 245.56645,984.22486 L 250.78352,983.92032 C 253.35247,986.05107 255.15303,988.10743 256.63137,990.38689 C 255.71553,992.18735 254.82448,992.9219 250.83508,995.29249 L 253.17729,995.88667 L 253.35155,998.91667 C 252.44108,999.89531 252.52835,1000.0782 253.31425,1000.6422 L 251.68985,1004.4685 L 249.52434,1003.804 z \"},\"ca36\":{\"name\":\"CA-36\",\"path\":\"M 218.49412,960.82235 L 217.18263,963.2504 L 219.62837,972.99793 L 219.14986,976.31206 L 222.09193,978.42705 L 222.10956,981.02631 C 222.67624,981.1529 224.76798,981.66433 224.76798,981.66433 L 225.24649,981.61119 L 224.59075,978.811 L 226.38075,979.2009 L 223.35962,975.92346 L 224.28588,974.12033 L 220.65024,972.29939 L 220.5641,968.9619 L 219.29623,968.43952 C 219.04315,964.41341 219.7776,965.24692 220.01827,962.36426 L 218.49412,960.82235 z \"},\"ca35\":{\"name\":\"CA-35\",\"path\":\"M 224.37092,973.67445 L 220.93986,971.96694 L 220.89619,968.68401 L 219.52204,968.22594 L 219.54802,965.62684 L 224.91044,966.86086 L 226.58904,965.78842 C 226.7972,966.22114 227.42118,966.41997 228.14909,966.4109 L 224.37092,973.67445 z \"},\"ca11\":{\"name\":\"CA-11\",\"path\":\"M 120.57639,753.54254 L 111.48402,751.47576 L 110.74295,750.44228 C 110.33536,749.87384 109.69734,749.40545 109.32513,749.40137 L 108.64838,749.39394 L 106.28572,745.7498 L 108.48799,742.01724 L 107.09166,740.33474 L 103.39954,740.33474 L 102.01643,738.66817 L 106.66343,736.55301 L 106.66343,734.09632 L 105.29199,734.09632 C 104.53771,734.09632 103.51688,733.94144 103.02348,733.75208 L 102.1264,733.40783 L 102.1264,731.47454 L 104.49887,728.41642 L 103.71033,722.13405 L 100.8913,718.78385 L 99.181304,718.78385 L 100.52545,708.77176 L 97.493864,706.78545 L 99.290754,704.79987 L 99.290754,701.66382 L 97.022244,701.07055 L 97.022244,700.5438 C 97.022244,700.25411 96.348044,699.34285 95.524054,698.51887 L 94.025814,697.02062 L 96.171544,696.26476 L 96.171544,692.41236 L 101.00252,692.06307 L 101.74358,693.9942 L 99.857884,695.37306 L 99.857884,698.28016 L 101.17759,699.88332 C 101.90346,700.76504 103.05076,702.64938 103.72723,704.07072 C 104.4037,705.49205 105.47858,707.21471 106.11592,707.89883 L 107.88318,709.34547 L 112.24528,707.4584 L 114.68988,704.02529 L 112.80016,692.31153 L 113.58387,691.51125 C 114.01489,691.0711 114.70679,689.88155 115.12136,688.86781 L 115.87507,687.02464 L 119.2669,685.74361 L 118.57506,682.58147 L 119.75627,682.18777 L 120.11078,678.86252 L 121.32694,678.3199 C 121.99581,678.02142 122.54303,677.59329 122.54303,677.36848 C 122.54303,677.14361 123.57577,675.84279 124.83797,674.47771 L 127.13297,671.99573 L 128.09896,673.15755 C 128.63031,673.79659 129.47152,674.91956 130.09236,675.1573 L 140.52362,675.76504 C 140.77174,675.82016 141.69315,675.56881 142.57124,675.20653 C 143.44932,674.84425 144.72536,674.55172 145.40688,674.55649 C 146.0884,674.56125 146.95628,674.76235 147.33557,675.00333 L 148.02514,675.44155 L 149.59932,689.00959 L 145.1815,709.24253 L 142.66016,707.59049 C 133.93144,707.94324 133.62924,707.64249 132.92386,709.18123 L 129.75054,709.34201 C 129.36076,707.41961 129.22677,706.00882 129.34857,704.01332 L 133.92649,694.90835 C 133.41279,692.51836 133.05591,689.35809 131.08537,687.75176 L 128.20519,698.88466 L 123.91553,699.88349 L 125.99344,703.34496 C 125.5272,706.6934 125.47942,709.74813 124.85737,713.07224 L 115.24344,719.19428 L 114.76193,723.9361 L 116.71045,725.87296 L 116.17134,730.5706 L 113.78526,730.86681 L 112.84687,733.93118 L 114.42698,735.68105 L 114.34241,740.29822 C 115.12968,740.42849 115.31859,740.05407 115.94789,739.60513 L 116.82365,739.02172 L 118.56712,740.46858 L 120.84164,739.87378 L 120.84164,741.469 L 121.84359,741.469 L 122.50004,743.97922 L 120.85713,745.79466 L 122.0131,746.95064 L 121.65026,747.89615 C 121.45068,748.41621 121.05953,748.84167 120.78096,748.84167 L 120.27451,748.84167 L 120.56685,751.18941 L 118.71477,751.34826 L 120.57639,753.54254 z \"},\"ca10\":{\"name\":\"CA-10\",\"path\":\"M 108.22303,708.57343 C 107.98909,708.57457 107.32243,708.10028 106.74158,707.51942 C 106.16072,706.93857 105.03197,705.08185 104.23317,703.39339 L 102.78086,700.32341 L 100.42501,698.19141 L 100.42501,696.01766 L 102.18674,694.25593 L 101.84283,691.84524 L 95.604424,691.84524 C 95.614634,693.26935 95.661444,694.71139 95.402464,696.0991 L 93.034594,693.34518 L 90.932414,692.65141 C 89.776204,692.26979 88.493534,691.62094 88.082024,691.20943 C 87.670514,690.79792 87.052234,689.62419 86.708044,688.60115 C 86.363854,687.5781 85.820544,686.40732 85.500734,685.99939 C 85.180934,685.59145 84.005734,684.86116 82.889164,684.37649 L 80.859074,683.49529 L 81.709764,683.22726 C 82.177644,683.07981 84.166964,682.21511 86.130474,681.3056 C 88.093994,680.3961 89.833654,679.65197 89.996484,679.65197 L 94.470164,683.59436 L 99.254234,684.31229 L 99.909044,685.10134 C 100.26922,685.5353 100.80567,685.89038 101.1012,685.89038 L 106.66343,682.43311 L 106.66343,680.30615 L 105.23426,678.60766 C 104.44822,677.67348 103.28929,675.7432 102.65899,674.31818 L 101.25266,671.27185 L 97.445604,671.1646 L 95.887984,669.87189 L 95.887984,666.60801 L 96.409064,666.60801 C 96.695634,666.60801 97.772614,665.71478 98.802344,664.62306 L 100.6746,662.63811 L 105.44813,662.63811 L 107.23055,660.85568 L 107.23055,659.5248 C 107.23055,658.79275 107.38544,657.79018 107.5748,657.29678 L 107.91905,656.39969 L 114.60323,656.39969 L 114.60323,657.35196 C 114.60323,657.87564 114.04931,660.0241 113.37227,662.12622 L 112.14127,665.94827 L 113.14208,669.64555 C 113.69253,671.67905 114.43791,673.73863 114.79843,674.22233 L 115.45392,675.10178 L 119.72372,674.39678 L 120.39747,671.71217 L 121.32847,671.7302 C 121.84053,671.74013 122.70608,672.08727 123.25194,672.50161 C 123.7978,672.91601 124.24442,673.54592 124.24442,673.9014 L 124.24442,674.54781 L 123.18661,674.54781 L 122.47401,676.79296 L 119.14026,678.76226 L 119.14026,681.85356 L 117.93902,682.59593 L 118.28956,685.58504 L 115.10723,687.1168 L 114.53222,688.62928 C 114.21594,689.46114 113.56527,690.57475 113.08633,691.104 L 112.2155,692.06625 L 113.97842,703.75494 L 113.12574,705.05803 C 112.65678,705.77477 111.45753,706.85844 110.46075,707.46623 C 109.46396,708.07402 108.45697,708.57224 108.22303,708.57343 z \"},\"va11\":{\"name\":\"VA-11\",\"path\":\"M 2226.247,638.8187 L 2217.3265,628.48295 L 2217.2528,625.04598 L 2222.9042,627.33474 L 2226.7218,630.95518 L 2226.8467,633.0666 L 2227.6772,633.14741 C 2227.9785,633.14741 2228.3827,632.89221 2228.5754,632.58029 L 2228.9259,632.01316 L 2233.0322,632.01316 L 2234.0099,630.09728 L 2229.4261,626.03069 L 2229.4261,624.16376 L 2232.3341,621.79197 L 2231.9317,619.0267 L 2234.5792,617.71374 L 2239.0673,617.83494 L 2239.869,620.8625 L 2242.4465,618.81482 L 2243.1474,620.64143 L 2241.2706,622.51823 L 2241.6689,623.43755 C 2241.888,623.9432 2242.2216,625.37441 2242.4104,626.61801 L 2242.7537,628.87909 L 2244.742,629.26134 L 2248.6811,625.64549 L 2248.7562,626.08774 C 2249.0419,626.26434 2249.2756,626.64897 2249.2756,626.94246 L 2249.2756,627.47613 L 2248.6576,627.47613 C 2248.3178,627.47613 2247.5606,628.05035 2246.9751,628.75217 L 2245.9106,630.02821 L 2245.8729,632.92056 L 2244.5732,634.22025 L 2241.3358,633.57276 L 2241.3358,635.34901 L 2239.9857,636.18342 L 2230.4009,636.5076 L 2228.3285,638.8187 L 2226.247,638.8187 z \"},\"va10\":{\"name\":\"VA-10\",\"path\":\"M 2178.8631,597.39919 C 2179.5725,599.2258 2180.5983,601.07215 2179.8024,602.80467 L 2180.8657,603.56672 L 2178.6765,609.40185 L 2180.348,610.84445 L 2179.0935,613.50922 L 2180.5645,614.98018 L 2175.5135,623.50487 L 2178.9871,623.50487 C 2179.5743,622.5606 2179.8168,621.8915 2179.6439,620.90997 C 2179.884,620.44209 2181.1726,619.4888 2182.0178,619.07417 L 2184.8711,618.77286 L 2184.5166,620.74011 L 2186.4661,622.90229 L 2185.8104,624.60368 L 2186.9092,625.29484 L 2186.3421,626.21642 L 2188.0257,627.61655 L 2187.2991,632.29536 L 2185.899,635.23734 C 2187.7478,636.73655 2189.3568,637.14079 2190.8614,637.11595 L 2190.8614,638.25021 L 2192.616,638.25021 L 2194.7073,636.26526 L 2196.1782,630.15088 L 2203.5686,634.7588 L 2205.0219,632.0118 L 2207.8221,632.0118 L 2210.6578,635.06011 L 2212.7845,633.14605 C 2213.3262,633.57633 2213.8058,634.11012 2213.5465,635.87536 L 2220.228,632.61437 L 2216.7721,628.64447 L 2216.7012,624.23147 L 2223.0459,626.8013 L 2227.1576,630.91298 L 2227.1576,632.57892 L 2227.6893,632.57892 C 2227.9828,632.57892 2228.3827,632.32372 2228.5754,632.0118 L 2228.9299,631.44467 L 2232.758,631.44467 L 2233.4315,630.34586 L 2228.859,626.21642 L 2228.9653,624.07199 L 2231.6061,621.82117 C 2231.5697,619.58294 2231.0808,617.68391 2230.5073,615.84863 L 2232.1023,613.6687 L 2236.0899,616.13219 L 2242.4701,616.13219 C 2242.4841,615.40814 2241.8646,614.78963 2241.07,614.20038 L 2235.9836,614.14724 L 2234.5835,611.32929 L 2231.4111,610.46091 L 2224.836,611.18751 L 2222.5851,608.75952 L 2220.5825,608.70632 L 2220.3521,604.8782 L 2222.1421,603.08823 L 2221.7699,601.19187 C 2219.1392,600.8196 2217.8086,599.66726 2216.5063,598.49801 L 2209.7184,598.78157 L 2207.574,611.86098 L 2178.8631,597.39919 z \"},\"il11\":{\"name\":\"IL-11\",\"path\":\"M 1718.904,546.4285 L 1702.5636,548.75019 L 1702.5636,546.94246 L 1697.9025,546.94246 L 1699.2671,555.20127 L 1683.104,557.11533 C 1682.2814,553.65105 1681.8977,550.09541 1681.2963,546.58801 L 1656.059,549.86672 L 1656.059,552.61375 C 1649.0872,553.19335 1642.136,554.10211 1635.1816,554.88226 L 1635.7842,561.68781 L 1630.5382,561.68781 L 1630.5382,566.79197 L 1625.8949,566.79197 L 1627.2241,577.00031 L 1649.8206,574.64316 L 1649.8206,571.20494 L 1654.3576,566.79197 L 1656.3038,566.69139 L 1657.9492,565.35596 L 1660.2359,581.68531 L 1665.399,581.82091 C 1666.1055,588.7253 1667.3524,595.54718 1668.5359,602.37932 L 1670.8044,602.5211 L 1671.5133,608.75952 L 1668.7362,608.97577 L 1669.1207,611.59516 L 1666.6927,611.59516 L 1664.8495,613.68645 L 1659.0364,614.66117 L 1661.2518,633.14605 L 1687.9423,630.18632 C 1687.6539,628.20052 1687.5249,626.17723 1687.0207,624.23147 L 1671.7792,625.29484 L 1670.8576,623.82388 L 1672.5058,621.9984 L 1672.5058,616.64612 L 1670.9107,613.54467 L 1674.6857,608.47596 L 1679.0277,607.25306 L 1679.3822,601.88308 L 1672.7184,603.05279 L 1670.1132,580.54487 L 1698.4519,576.78764 L 1699.2671,583.23873 L 1704.8144,583.23873 L 1735.5457,578.47127 L 1731.7885,550.29207 C 1729.6907,551.1505 1728.0218,551.13524 1725.8159,550.91236 L 1725.8159,554.31514 L 1722.5372,554.31514 L 1721.9523,552.04662 L 1719.5774,552.04662 L 1719.5774,550.11484 C 1719.5774,549.04863 1719.4249,547.77686 1719.2407,547.29692 L 1718.904,546.4285 z \"},\"il10\":{\"name\":\"IL-10\",\"path\":\"M 1705.6828,518.42026 L 1703.2108,516.87788 C 1701.8512,516.02957 1700.5153,514.98254 1700.242,514.55115 C 1699.9689,514.11976 1699.7414,513.32019 1699.7366,512.77433 L 1699.7279,511.78186 L 1701.2473,511.78186 L 1702.5074,514.54751 L 1704.8946,515.62352 L 1704.9861,503.48809 L 1704.342,502.28453 C 1703.9877,501.62258 1703.6978,500.58503 1703.6978,499.97888 L 1703.6978,498.87678 L 1705.5062,497.37598 L 1707.4471,499.94908 L 1710.0107,497.87321 L 1708.8668,494.8645 L 1711.6221,493.92908 L 1711.3541,501.8571 L 1712.4276,504.12562 C 1713.0181,505.3733 1714.7654,507.99261 1716.3106,509.9463 L 1719.1201,513.49846 L 1715.7633,515.39572 L 1709.8051,516.51462 L 1707.0479,516.48598 L 1705.6828,518.42026 z \"},\"oh10\":{\"name\":\"OH-10\",\"path\":\"M 1995.3158,516.88601 C 1995.008,516.88601 1994.5716,516.4394 1994.346,515.89354 L 1993.9356,514.90106 L 1993.4061,516.31889 L 1991.7992,516.31889 L 1991.7992,515.17122 L 1987.4261,515.87051 L 1986.0426,507.46262 L 1989.948,507.91856 L 1993.4443,506.11057 L 1996.6765,506.11057 L 1998.0068,507.44091 L 2000.8517,506.14474 L 2002.0475,508.37908 L 2003.8464,508.29847 L 2004.7236,509.79549 L 2007.3132,510.70134 L 2007.2864,512.2415 L 2005.8356,512.43884 C 2005.1338,512.48827 2004.1011,512.48916 2003.5407,512.44084 L 2002.5217,512.35297 L 2000.3022,513.48523 C 1999.0815,514.10798 1997.7196,514.6175 1997.2757,514.6175 L 1996.4686,514.6175 L 1995.8753,516.88601 L 1995.3158,516.88601 z \"},\"oh11\":{\"name\":\"OH-11\",\"path\":\"M 2010.939,511.74038 L 2007.6788,512.15254 L 2007.6788,510.61953 L 2004.8141,509.53037 L 2004.1547,507.81195 L 2002.2804,507.81195 L 2000.8776,505.56578 L 1997.9564,506.89677 L 1996.7299,505.62213 L 1999.5684,502.74709 C 2000.9847,501.32184 2002.7541,499.19869 2003.5004,498.02898 L 2005.8472,495.21334 L 2007.1061,501.0344 L 2009.0585,500.49996 C 2009.406,502.16931 2010.3614,503.77786 2010.101,505.50799 L 2008.1251,508.83603 L 2009.8774,510.9676 L 2011.3017,511.04454 L 2010.939,511.74038 z \"},\"nj11\":{\"name\":\"NJ-11\",\"path\":\"M 2331.7254,486.82819 C 2330.7748,486.82819 2329.8268,486.65805 2329.6189,486.45011 C 2329.4109,486.24216 2329.2408,485.62482 2329.2408,485.07824 C 2329.2408,484.53167 2329.587,483.36196 2330.0101,482.47891 C 2330.4332,481.59585 2331.1989,480.02323 2331.7115,478.98421 C 2332.2241,477.94519 2332.6436,476.76421 2332.6436,476.3598 C 2332.6436,475.95538 2332.2767,475.32002 2331.8283,474.94786 L 2331.013,474.27123 L 2324.825,478.2296 L 2322.3541,477.94642 C 2320.9951,477.79067 2319.173,477.39405 2318.3049,477.06503 L 2316.7267,476.46683 L 2318.4868,474.52191 L 2318.702,472.02634 C 2318.8203,470.65378 2319.0933,469.09638 2319.3086,468.56545 L 2319.7001,467.60013 L 2319.1009,466.63056 L 2321.4288,461.92351 L 2321.8681,459.30146 L 2323.013,459.6795 L 2324.9873,456.21042 L 2327.9332,456.20324 L 2329.1091,453.92576 L 2329.2408,456.77037 L 2330.0059,456.77037 L 2332.0528,454.91459 L 2332.7649,456.77037 L 2339.0405,456.77037 L 2339.7939,457.76285 C 2340.2083,458.30871 2340.5554,459.07654 2340.5653,459.46914 C 2340.5753,459.86175 2341.349,461.23988 2342.2848,462.53166 L 2343.9861,464.88036 L 2343.9861,466.9345 L 2341.6595,469.10202 L 2342.0219,470.54584 L 2342.0477,471.80837 L 2341.3594,473.1134 L 2340.0236,473.25306 L 2335.7493,479.71229 L 2333.04,481.06302 L 2331.6709,485.0454 L 2333.4538,486.82819 L 2331.7254,486.82819 z \"},\"nj10\":{\"name\":\"NJ-10\",\"path\":\"M 2345.6344,467.45583 L 2346.3787,470.39781 L 2344.9964,472.06375 L 2343.0823,471.03583 L 2341.6999,473.23345 L 2343.1532,473.80058 C 2343.9593,474.10708 2344.8005,474.36295 2345.0141,474.36771 C 2345.6815,474.58248 2346.2846,474.87056 2346.8572,475.2893 L 2345.6166,478.56801 L 2346.2724,481.15553 L 2347.2471,481.15553 L 2347.6193,478.78068 C 2347.8288,477.4705 2348.2687,476.07133 2348.5941,475.6792 L 2350.8799,475.0338 L 2350.675,475.3935 L 2352.5426,474.64783 L 2353.1972,472.43688 L 2349.7044,472.42629 L 2348.3637,470.89405 C 2347.5144,469.92622 2346.8218,468.92241 2346.8218,468.66098 C 2346.8218,468.39954 2346.5614,468.01078 2346.237,467.81029 L 2345.6344,467.45583 z \"},\"mi10\":{\"name\":\"MI-10\",\"path\":\"M 1913.9431,357.6987 L 1912.6139,358.319 C 1911.8804,358.65884 1911.2694,359.13069 1911.2669,359.36465 C 1911.2645,359.59859 1910.9398,359.78998 1910.5403,359.78999 L 1909.8137,359.78999 L 1908.5376,363.19276 L 1906.3046,363.19276 L 1904.9931,364.77009 L 1899.9244,366.04613 L 1899.9244,368.13742 L 1897.6559,371.02623 L 1898.223,372.55039 L 1895.3873,375.84682 L 1895.3873,378.50524 L 1894.3772,378.50524 C 1894.2566,380.06266 1894.1884,381.62328 1894.129,383.18405 L 1894.311,386.13625 L 1909.8137,383.16633 L 1914.1735,404.80481 L 1903.3094,407.0389 L 1903.9421,412.21583 L 1899.375,413.24187 L 1903.4158,434.45603 L 1918.69,431.02497 C 1919.7413,434.58234 1921.3484,442.7253 1922.8801,450.24514 L 1928.334,448.75831 L 1927.0934,444.3985 L 1933.1014,442.6085 L 1934.5192,444.50484 L 1934.5192,443.15791 L 1935.0332,443.15791 C 1935.3122,443.15791 1936.3551,442.39046 1937.3549,441.45652 L 1939.1626,439.75514 L 1940.669,440.12732 C 1941.4958,440.32456 1942.3669,440.58092 1942.6008,440.71217 C 1942.8347,440.84341 1943.0261,441.47762 1943.0261,442.11227 L 1943.0261,443.26425 L 1941.0412,443.77821 L 1939.7297,446.56068 L 1941.2007,446.56068 L 1941.7856,448.08484 L 1945.2947,447.57088 L 1945.2947,447.00375 C 1945.2947,446.69741 1945.765,445.77586 1946.3403,444.94791 L 1947.3859,443.44148 C 1947.4877,440.32277 1947.6147,437.20435 1947.6341,434.08385 L 1946.2871,424.3186 L 1948.0063,420.68544 L 1947.2796,418.9486 C 1946.8762,417.98927 1945.6195,415.86591 1944.4972,414.23435 C 1943.3748,412.60277 1942.459,411.037 1942.459,410.74296 C 1942.459,410.44893 1941.9671,409.11565 1941.3602,407.78326 C 1940.7532,406.45085 1939.5916,402.70895 1938.7904,399.47128 L 1937.3372,393.58732 L 1932.9596,384.46009 L 1932.2685,381.34088 C 1931.8872,379.62532 1931.0343,376.56281 1930.3721,374.53534 L 1929.1669,370.849 L 1922.2551,361.26098 L 1918.9232,359.31148 L 1916.0166,359.22286 L 1913.9431,357.6987 z \"},\"mi11\":{\"name\":\"MI-11\",\"path\":\"M 1907.9326,480.64449 C 1905.9097,474.09767 1905.511,470.22847 1904.366,464.42786 L 1903.0983,462.90041 L 1898.8141,463.58548 C 1897.6508,458.42213 1896.3419,453.84125 1895.3873,447.84287 L 1903.6107,447.04965 L 1906.5865,445.5282 C 1907.2467,451.32141 1908.3019,455.3149 1909.8839,461.59097 L 1915.1956,460.69661 L 1918.0916,466.41156 L 1917.5554,466.41156 C 1917.2605,466.41156 1916.6182,466.8126 1916.128,467.30276 L 1915.2368,468.19397 L 1915.2368,470.85847 L 1911.5257,471.86945 L 1911.144,474.35136 L 1912.4486,479.36404 L 1907.9326,480.64449 z \"},\"ny23\":{\"name\":\"NY-23\",\"path\":\"M 2311.9611,205.20892 L 2252.1999,222.15495 L 2250.1263,221.87138 L 2248.6908,223.20059 C 2247.8993,223.93283 2246.5593,224.83776 2245.7134,225.22098 L 2244.1715,225.9299 L 2244.1715,226.55019 C 2244.1715,226.88975 2243.251,228.03149 2242.1156,229.10227 C 2240.9803,230.17305 2239.8319,231.05178 2239.5636,231.05178 C 2239.2953,231.05178 2239.0673,231.30177 2239.0673,231.60118 C 2239.0673,231.9006 2237.7913,233.33246 2236.2317,234.79128 C 2234.6721,236.25011 2233.396,237.69677 2233.396,237.9991 C 2233.396,238.30143 2232.5666,239.58228 2231.5529,240.85247 C 2230.5391,242.12265 2229.1993,244.00213 2228.5754,245.03504 C 2227.9516,246.06796 2225.3188,250.63032 2222.7269,255.15475 L 2218.0127,263.37811 L 2217.1443,268.94306 L 2213.2098,274.4194 L 2209.1336,276.56386 L 2207.698,279.23999 L 2205.6067,279.89574 L 2205.6067,283.84791 L 2202.8774,286.57722 L 2199.9354,287.32158 L 2199.9178,288.26088 C 2199.904,288.77293 2199.5585,290.11085 2199.1556,291.23831 L 2198.429,293.27643 L 2199.7051,295.03098 L 2202.4698,295.42088 L 2202.8952,297.60079 L 2205.1991,299.4794 L 2210.7463,299.14267 L 2212.5895,302.98851 L 2209.0273,306.55079 L 2207.9816,305.91277 L 2206.1739,306.60395 L 2206.1739,308.00405 L 2209.0804,309.33326 L 2213.0149,317.84019 L 2214.2554,323.98999 L 2213.5465,326.61296 L 2210.5691,328.75742 L 2206.1384,329.00554 L 2204.7383,330.31702 C 2203.97,331.03884 2203.3382,331.84867 2203.3382,332.10702 C 2203.3382,332.36538 2202.3174,333.49644 2201.0697,334.62366 L 2198.4183,336.99859 L 2201.3146,347.38909 L 2206.1496,345.78912 L 2207.3725,347.60492 L 2212.662,345.73911 L 2216.6981,346.42234 L 2216.6981,345.44758 L 2218.9682,346.02595 L 2219.6047,344.97212 L 2219.2887,344.31957 L 2218.1513,344.30829 L 2218.1061,342.00292 L 2224.8891,343.43187 L 2224.8102,344.60649 L 2229.4535,345.22679 L 2231.4578,347.21487 L 2231.4803,349.83795 L 2234.1581,349.86524 L 2240.9459,371.02623 C 2249.8263,367.61914 2258.2729,365.29629 2266.6609,363.11984 L 2267.5663,358.7833 L 2266.4178,355.34933 L 2258.2788,357.99999 L 2257.0594,353.83865 L 2252.6417,355.16785 L 2250.2681,348.94366 L 2248.5136,349.61712 C 2246.7395,347.047 2243.6217,344.72572 2239.6033,342.57121 C 2240.3624,340.78211 2241.2829,340.09282 2242.4563,339.12284 C 2242.2954,337.09213 2245.9982,335.80117 2245.7822,333.98287 L 2249.6159,333.95167 L 2250.6326,331.73134 L 2249.2048,326.06356 C 2252.088,323.99205 2259.2768,322.60694 2264.9681,321.09703 L 2249.7719,279.96663 L 2255.7976,281.61485 L 2264.3808,278.29144 L 2277.508,312.48791 L 2275.9307,322.25316 L 2283.439,323.81586 L 2286.0504,330.19296 C 2284.5027,332.2901 2284.969,334.24339 2283.7809,335.51341 C 2284.2077,337.3216 2285.0301,338.30267 2286.356,338.78027 L 2297.6411,339.53286 L 2296.2942,333.96791 L 2304.0779,328.48515 L 2307.1393,336.11237 L 2314.7436,334.64138 L 2297.3502,291.21235 L 2312.2269,284.66316 L 2312.3583,283.1775 L 2308.576,281.8098 L 2306.5025,274.70296 L 2304.1946,275.98634 L 2301.9945,275.09072 L 2304.8188,272.48762 L 2301.4869,264.47692 L 2296.8081,266.85178 C 2294.5336,262.68132 2292.9818,259.49633 2291.1671,254.34041 L 2301.1679,250.31643 L 2302.9225,253.31158 C 2304.9896,252.3729 2306.9385,250.99391 2309.1609,250.47593 L 2314.2828,261.96029 L 2317.1893,262.31475 L 2319.6174,268.62405 L 2318.6071,269.90009 L 2319.9895,273.86999 L 2329.7016,274.189 L 2330.3928,276.9892 L 2331.3853,276.9892 L 2330.3042,272.16861 L 2328.3015,269.90009 L 2326.5803,263.87616 L 2324.5318,263.72862 L 2325.0051,251.75197 L 2326.7065,248.3492 L 2323.7113,242.44752 L 2324.2607,237.48514 L 2323.3568,235.8192 C 2322.8606,234.90973 2321.9741,233.59677 2321.3719,232.89495 C 2320.7696,232.19312 2319.9748,231.61891 2319.6174,231.61891 L 2318.9616,231.61891 L 2316.7817,226.69198 L 2316.2323,216.60772 L 2313.3966,214.53415 L 2314.017,208.4198 L 2311.9611,205.20892 z \"},\"tx28\":{\"name\":\"TX-28\",\"path\":\"M 1248.4326,1539.4191 C 1248.1828,1539.4191 1247.5478,1538.9725 1247.0215,1538.4266 C 1246.4952,1537.8807 1245.5686,1536.9675 1244.9625,1536.3972 L 1243.8605,1535.3603 L 1242.816,1535.4972 C 1242.2415,1535.5726 1240.7507,1535.4251 1239.503,1535.1695 L 1237.2345,1534.7049 L 1235.9243,1532.9193 L 1232.0309,1534.7759 L 1227.0302,1529.2108 L 1225.0412,1529.2108 L 1225.0412,1527.5493 L 1222.9822,1526.4473 L 1218.8363,1527.3824 L 1217.4868,1525.7564 L 1215.9672,1526.3395 L 1215.9672,1525.2409 L 1213.1161,1525.2409 L 1210.863,1523.8338 L 1208.7401,1525.1596 L 1207.5532,1523.9728 L 1208.1722,1520.1586 L 1206.3562,1517.3871 L 1204.1492,1516.6866 L 1203.7527,1514.3 C 1203.5346,1512.9873 1203.0036,1511.2242 1202.5726,1510.3819 L 1201.7889,1508.8504 L 1201.7889,1505.5672 L 1199.5204,1503.5142 L 1199.5204,1502.6285 C 1199.5204,1502.1415 1199.103,1500.6498 1198.5927,1499.3137 L 1197.6649,1496.8844 L 1197.1748,1496.8135 C 1196.9053,1496.7746 1196.3658,1496.7107 1195.9759,1496.6718 L 1195.267,1496.6009 L 1194.8953,1493.3499 L 1191.5194,1492.0756 L 1192.053,1490.0351 L 1189.4656,1487.2432 L 1188.0491,1487.2432 L 1188.3908,1485.4001 C 1188.5787,1484.3863 1188.767,1481.898 1188.8092,1479.8706 L 1188.8858,1476.1842 L 1187.8564,1472.2565 L 1185.6258,1471.6472 L 1185.6258,1469.997 L 1182.7901,1469.3265 L 1184.5271,1468.6587 L 1186.0222,1462.8253 L 1184.72,1461.2563 L 1185.9093,1460.5213 L 1185.9093,1458.2135 L 1183.5191,1457.5884 L 1184.1642,1453.6127 L 1181.8622,1450.3799 L 1180.2944,1450.3799 L 1179.2126,1448.4468 L 1176.3807,1449.7371 L 1175.7987,1447.5117 L 1175.3245,1447.5951 C 1175.0637,1447.641 1174.4073,1447.6484 1173.8659,1447.6114 L 1172.8815,1447.5442 L 1169.879,1443.0072 L 1168.4048,1443.0072 L 1167.7444,1441.0222 L 1164.0917,1439.2261 L 1163.8387,1435.9339 L 1162.659,1435.5407 L 1163.2884,1433.0328 L 1160.9557,1430.9217 L 1160.9557,1427.6947 L 1158.1492,1427.6947 L 1157.2839,1426.0215 C 1156.808,1425.1012 1156.4186,1423.9801 1156.4186,1423.5301 L 1156.4186,1422.7119 L 1154.7685,1422.0787 L 1152.4257,1417.4864 L 1151.7283,1417.4537 C 1151.3448,1417.4358 1149.7748,1416.8269 1148.2396,1416.1009 L 1145.4483,1414.7808 L 1187.7449,1413.3875 L 1186.3444,1365.3106 L 1213.1315,1365.3106 L 1213.1315,1348.2967 L 1243.7727,1364.045 L 1251.0793,1351.7601 L 1248.4608,1351.3902 L 1248.1617,1350.177 L 1244.645,1348.5144 L 1244.9688,1346.2717 L 1249.4902,1343.4072 L 1246.025,1342.6254 L 1246.025,1340.3569 L 1249.3878,1340.3569 L 1250.6276,1338.0404 L 1250.2784,1333.843 L 1247.1592,1332.3552 L 1247.1592,1330.8665 C 1252.3842,1327.3551 1254.9592,1325.8098 1263.8598,1321.3581 L 1267.5345,1315.1702 C 1268.8922,1314.4633 1270.2114,1313.6607 1271.661,1313.1585 L 1274.3788,1318.3772 L 1277.008,1320.7183 C 1278.454,1322.006 1280.6465,1323.6138 1281.8801,1324.2913 C 1283.1138,1324.9687 1284.2555,1325.6554 1284.4173,1325.8172 L 1284.7114,1326.1114 L 1281.7332,1335.6674 C 1280.3796,1337.1346 1278.789,1338.4468 1277.7872,1340.187 L 1286.8338,1351.9721 L 1260.8485,1379.1411 L 1265.3008,1384.4589 L 1251.1291,1397.7547 L 1251.1291,1428.829 L 1230.1454,1428.829 L 1230.1454,1469.0951 L 1237.5361,1469.0951 C 1239.477,1480.8059 1239.2809,1486.2766 1239.2558,1498.5858 L 1243.7565,1498.5858 L 1243.7565,1500.0376 L 1239.7866,1503.7821 L 1237.518,1508.193 L 1234.2212,1510.6305 L 1232.1328,1514.5083 L 1233.8317,1515.5823 L 1240.8992,1515.5997 C 1242.3012,1517.7498 1241.4807,1523.49 1241.7715,1527.4352 L 1244.8706,1530.6696 L 1245.2421,1532.6341 C 1245.4464,1533.7145 1245.9135,1534.9813 1246.2801,1535.4492 C 1246.6467,1535.9171 1247.3831,1537.0017 1247.9167,1537.8595 L 1248.8868,1539.4191 L 1248.4326,1539.4191 z \"},\"tx7\":{\"name\":\"TX-7\",\"path\":\"M 1401.6729,1319.3731 C 1401.2655,1319.3731 1400.5311,1318.9721 1400.0409,1318.482 L 1399.1497,1317.5907 L 1399.1426,1315.6868 L 1395.655,1313.7019 L 1391.2315,1313.7019 L 1388.3344,1308.5977 L 1389.6773,1305.9329 L 1388.0273,1305.9887 L 1387.0668,1303.3415 L 1388.6955,1301.5226 L 1392.551,1300.2304 L 1393.4419,1297.8223 L 1394.0273,1297.8223 C 1394.3493,1297.8223 1394.6127,1298.0418 1394.6127,1298.3103 L 1397.36,1302.8467 L 1395.0785,1304.3616 L 1395.9753,1308.3002 L 1400.1533,1309.2772 L 1401.5944,1311.4338 L 1402.6655,1314.6064 L 1403.7366,1317.7791 L 1403.0751,1318.5761 C 1402.7113,1319.0145 1402.0803,1319.3731 1401.6729,1319.3731 z \"},\"fl7\":{\"name\":\"FL-7\",\"path\":\"M 2149.0711,1190.9171 L 2146.714,1191.502 C 2146.9058,1194.3466 2147.8657,1197.093 2148.3267,1199.9025 C 2146.7151,1200.6151 2144.965,1201.0103 2143.2403,1201.4267 L 2138.278,1200.3102 L 2135.9393,1201.5862 L 2136.0102,1205.6448 L 2137.2508,1207.8424 C 2138.6177,1208.8223 2139.7012,1209.4827 2141.2376,1210.1995 L 2141.8756,1214.9138 C 2143.9251,1217.7937 2144.7617,1219.7105 2147.6533,1222.1092 L 2149.3015,1229.7654 L 2143.3644,1229.7654 L 2139.5362,1231.3782 L 2138.1362,1233.6999 L 2138.8096,1235.4367 L 2139.8376,1235.4367 C 2140.4025,1235.4367 2141.2569,1235.5904 2141.7339,1235.7734 L 2142.6023,1236.1102 L 2143.772,1239.6016 C 2144.4226,1241.524 2145.331,1243.5698 2145.7747,1244.1563 L 2146.5722,1245.2197 L 2154.5652,1245.8045 L 2159.049,1253.9039 L 2164.1,1256.3496 L 2164.9153,1261.2411 L 2168.0699,1265.2287 L 2168.8675,1271.6975 L 2167.3964,1273.4698 L 2165.9077,1275.2243 L 2165.6596,1276.4649 C 2165.5226,1277.1427 2165.291,1279.283 2165.1457,1281.2324 L 2164.8798,1284.7769 L 2165.89,1285.4149 L 2167.8395,1284.3161 L 2171.579,1287.1872 L 2172.7133,1287.3999 L 2172.7133,1281.4627 L 2178.8099,1279.3715 L 2178.0833,1271.857 L 2174.9818,1271.0418 L 2174.9818,1261.7728 L 2169.3105,1256.1724 L 2169.3105,1252.4506 L 2172.1461,1252.4506 L 2172.1461,1249.7922 L 2174.9109,1248.5338 L 2178.6681,1249.615 L 2180.4936,1252.0429 L 2182.4077,1250.9619 L 2180.529,1248.1617 C 2179.4909,1246.6238 2178.1155,1244.5959 2177.463,1243.6601 C 2176.8106,1242.7243 2173.5873,1237.8754 2170.3207,1232.8847 C 2167.0541,1227.8939 2163.6129,1222.407 2162.6645,1220.6914 C 2161.716,1218.9758 2160.4935,1216.1685 2159.9529,1214.453 L 2158.9781,1211.3338 L 2157.3299,1210.0223 L 2153.2005,1200.4697 L 2149.0711,1190.9171 z \"},\"fl6\":{\"name\":\"FL-6\",\"path\":\"M 2139.8259,1284.1761 L 2136.0196,1282.6359 L 2133.865,1274.6896 L 2116.284,1278.0639 C 2113.9439,1277.2119 2111.7101,1276.2326 2108.6277,1276.2714 L 2108.6277,1274.093 L 2112.1289,1273.324 L 2111.3314,1266.4529 L 2108.0346,1258.4896 L 2106.4678,1259.9984 L 2105.5085,1257.0538 L 2100.4669,1253.0975 L 2098.5484,1254.1242 L 2093.8939,1252.1684 C 2093.9937,1249.8944 2095.8896,1248.9531 2095.5838,1245.5202 L 2089.9125,1246.902 L 2089.9125,1245.0793 L 2084.5888,1246.1521 L 2083.3721,1245.0899 L 2074.5816,1245.9704 L 2074.2784,1246.7158 L 2072.7134,1245.7486 L 2072.5707,1232.603 L 2074.63,1231.9493 L 2074.6,1227.4344 L 2078.1874,1224.1577 L 2082.3142,1228.9467 L 2086.7933,1229.2271 L 2090.0099,1225.9823 L 2090.1815,1223.2257 L 2092.4646,1221.2959 L 2098.7604,1221.2599 L 2101.7598,1219.7705 L 2101.8222,1218.4242 L 2103.9086,1218.4242 C 2105.9298,1215.457 2105.4348,1214.5026 2105.225,1213.3201 L 2106.713,1213.3201 C 2108.6878,1212.0475 2109.0483,1210.2368 2109.1949,1208.3548 L 2110.8962,1206.9428 L 2110.8962,1204.9581 L 2115.4333,1204.2326 L 2113.8271,1196.0887 L 2124.6697,1179.7217 L 2128.5168,1186.3815 L 2127.8649,1192.0527 L 2133.5814,1197.6814 L 2133.5814,1200.7763 L 2134.7156,1201.4773 L 2134.7156,1206.0595 L 2136.6129,1210.0576 L 2131.2431,1214.7379 L 2131.9992,1219.3974 C 2130.0457,1222.1151 2127.9038,1223.5143 2125.6416,1224.0712 L 2125.4678,1226.8947 L 2121.9158,1227.9568 L 2120.2144,1229.9646 L 2116.6014,1231.6788 L 2114.9452,1231.1815 L 2110.8801,1233.2009 L 2108.6411,1232.0025 L 2105.3403,1235.6968 L 2108.7873,1240.4968 L 2111.4991,1239.0079 L 2112.4997,1242.5395 L 2114.7257,1245.3216 L 2113.9759,1249.8481 L 2120.7369,1248.3638 L 2122.3676,1251.0341 L 2118.836,1252.0489 C 2118.456,1255.0706 2119.4402,1258.2287 2120.5821,1261.4026 L 2125.6749,1262.685 L 2126.3335,1265.9779 L 2134.4464,1268.8987 L 2136.1728,1266.0484 L 2140.6705,1271.9467 L 2141.3022,1277.672 L 2139.8259,1284.1761 z \"},\"az7\":{\"name\":\"AZ-7\",\"path\":\"M 439.00084,983.61384 L 439.00084,985.36842 L 436.99817,985.81146 C 436.29635,986.08108 435.73926,987.00521 434.87144,987.81416 L 430.97243,990.52572 L 430.33441,989.90545 L 427.55193,992.10308 L 425.47837,992.47523 C 424.34031,992.68007 423.10118,993.08631 422.73134,993.37911 L 422.05787,993.92849 L 421.29579,997.52624 L 417.78669,1001.2126 L 417.0955,1001.2126 C 416.70718,1001.2126 416.20622,1001.4938 415.99669,1001.8328 L 415.62451,1002.4532 L 416.82966,1003.6406 L 416.4752,1005.4128 C 416.28708,1006.3811 415.92612,1007.3032 415.67768,1007.4687 L 415.23461,1007.77 L 415.65995,1017.0744 L 413.85223,1018.1024 L 412.34579,1025.6523 L 409.36837,1028.5942 C 407.73079,1030.2182 406.11837,1032.0364 405.78837,1032.635 L 405.1858,1033.7338 L 401.26906,1033.5921 L 401.67669,1037.8987 L 399.70946,1039.8482 L 402.20837,1041.5851 L 400.9855,1049.0286 L 398.64609,1052.8213 L 399.49679,1053.4239 L 400.11708,1056.7026 L 408.37589,1057.9609 L 409.06708,1069.5338 L 404.97312,1072.9544 L 404.97312,1074.9748 L 401.85391,1076.1799 L 399.30183,1075.914 C 397.89819,1075.7685 396.36694,1075.4893 395.89906,1075.2938 L 395.04837,1074.9393 L 391.89372,1079.9371 L 389.21758,1081.6917 L 388.04787,1088.3909 L 570.34433,1186.1142 L 592.53324,1188.3651 L 593.2244,1182.4988 L 591.98381,1180.9924 L 589.85708,1180.9924 L 589.85708,1180.248 C 589.85708,1179.8425 590.13151,1179.2469 590.45965,1178.9188 L 591.04453,1178.334 L 588.43926,1174.3286 L 584.82381,1171.8297 L 581.49193,1174.2932 L 577.46889,1170.2524 L 573.51668,1170.855 L 572.73688,1168.4269 L 573.48124,1164.457 L 571.08869,1159.8845 C 571.58589,1155.2446 571.80855,1150.5648 572.54196,1145.9544 L 586.48975,1147.5672 L 587.58856,1146.8938 L 587.58856,1144.129 L 589.85708,1141.8605 L 589.85708,1140.2477 L 591.2749,1139.7869 L 591.48746,1138.5776 L 589.88209,1136.6177 L 590.51285,1134.027 L 587.02143,1131.4395 L 587.02143,1130.0748 L 582.99839,1129.614 L 580.9248,1131.2268 L 578.37272,1129.7074 L 578.93985,1125.077 L 577.57523,1123.1984 L 575.25351,1123.801 L 572.40018,1120.9476 L 573.41035,1114.6383 L 545.3985,1110.8783 L 546.25906,1101.3108 L 546.79074,1100.7791 C 547.08264,1100.4828 547.32243,1099.8136 547.32243,1099.2904 L 547.32243,1098.3334 L 549.50233,1096.7738 L 550.24668,1093.1229 L 537.11411,1090.7303 L 537.11411,1087.5402 L 539.89658,1086.849 L 540.65866,1080.0257 L 542.77156,1080.1135 L 544.30955,1081.0891 L 553.56084,1081.8866 L 553.56084,1082.5955 C 553.56084,1082.9849 553.94438,1083.6256 554.41153,1084.0134 L 555.26223,1084.7223 L 557.17629,1083.269 C 558.2261,1082.4682 559.70574,1081.6535 560.47272,1081.4613 L 561.87282,1081.1068 L 562.52856,1079.2637 C 562.89595,1078.2477 563.20203,1076.987 563.20203,1076.4635 L 563.16658,1075.8431 L 554.58876,1074.7798 L 555.35084,1068.8249 L 543.86648,1068.0097 L 544.61084,1063.0827 L 535.12916,1061.8599 L 535.05827,1060.7788 L 530.30856,1056.1886 L 530.4149,1046.9905 L 525.20441,1047.7171 L 525.20441,1048.426 C 525.20253,1048.8159 524.85742,1049.7927 524.44233,1050.5882 L 523.68025,1052.0237 L 523.66253,1055.5683 L 523.62708,1059.1128 L 522.56371,1062.5156 L 521.51807,1065.9361 C 519.77653,1065.6487 518.00208,1065.5042 516.28985,1065.0677 C 516.2197,1065.0007 516.13604,1063.6848 516.11262,1062.1435 C 516.08915,1060.602 516.1616,1058.9053 516.27213,1058.3685 C 516.38266,1057.8317 516.65773,1057.2207 516.8747,1057.0039 C 517.09169,1056.7869 517.2646,1056.2914 517.2646,1055.9051 L 517.2646,1055.1961 L 511.87688,1054.4518 L 506.27649,1055.7101 L 503.47629,1052.8922 C 503.36114,1050.9234 503.55301,1048.8972 503.08639,1046.9728 L 472.70956,1036.5163 L 475.95282,1014.8237 C 474.20253,1014.3541 469.05692,1012.6344 465.72678,1011.35 L 465.01787,1008.089 L 465.65589,1006.8839 C 466.01143,1006.2195 466.6519,1004.3519 467.07371,1002.7367 C 467.49554,1001.1213 468.22873,999.0428 468.70421,998.12882 L 469.57263,996.48057 L 467.69401,993.30822 C 466.46708,992.79458 465.22393,992.33503 463.93678,992.01443 L 460.65807,992.81199 L 458.24777,990.40169 L 453.21451,990.29535 L 452.57649,988.29265 L 451.31817,988.29265 C 450.62673,988.29458 448.69249,988.05077 447.01154,987.74327 L 443.9455,987.17614 L 441.57065,984.55317 L 439.00084,983.61384 z \"},\"az6\":{\"name\":\"AZ-6\",\"path\":\"M 569.76995,1076.003 C 569.12087,1075.9635 566.9309,1075.7232 564.90342,1075.4691 C 562.87593,1075.215 559.86141,1074.8442 558.20449,1074.6451 L 555.1919,1074.2831 L 555.56638,1071.2862 L 555.9408,1068.2892 L 550.17928,1067.8807 L 544.41771,1067.4722 L 544.80483,1065.6769 L 545.19195,1063.8817 L 545.97362,1063.4281 L 546.7553,1062.9746 L 546.7553,1061.3396 L 546.7553,1059.7046 L 547.86091,1059.3537 L 548.96653,1059.0028 L 549.13695,1056.0593 L 549.30738,1053.1157 L 550.87639,1052.3666 L 552.44536,1051.6175 L 556.16328,1051.6175 L 559.88121,1051.6175 L 560.54911,1052.1629 L 561.21708,1052.7083 L 568.70794,1053.6162 C 572.8279,1054.1155 576.49757,1054.524 576.86274,1054.524 L 577.52674,1054.524 L 577.13666,1059.2029 L 576.74665,1063.8817 L 574.17569,1066.2783 L 571.60466,1068.675 L 572.00126,1071.0225 L 572.39785,1073.3699 L 571.67402,1074.7224 L 570.95014,1076.0749 L 569.76995,1076.003 z \"},\"ga7\":{\"name\":\"GA-7\",\"path\":\"M 1981.8745,968.31912 L 1982.6757,973.48203 C 1981.0415,973.57793 1978.9931,973.5443 1977.358,973.61264 L 1974.7854,976.25892 L 1967.9798,976.25892 L 1967.9798,976.71971 C 1967.9798,976.97299 1968.7454,977.74695 1969.6812,978.43879 C 1970.617,979.13063 1971.3826,979.95501 1971.3826,980.26426 L 1971.3826,980.81364 L 1968.5469,982.10743 L 1968.5469,983.66704 L 1965.7113,984.7304 L 1965.7113,987.17614 L 1970.7446,985.77602 L 1975.7424,990.79159 L 1972.3396,993.0601 L 1979.4287,1000.7872 L 1983.7176,999.36941 L 1987.7762,1000.7163 L 1988.5382,1003.0912 L 1987.7407,1014.1148 L 1996.0172,1015.3199 C 1996.307,1015.3623 1997.3279,1015.144 1998.2857,1014.8414 C 1999.2437,1014.5387 2000.9921,1014.1389 2002.1848,1013.9552 L 2004.3647,1013.6185 L 2003.6735,1012.8033 C 2003.3004,1012.3538 2002.6618,1011.988 2002.238,1011.988 L 2001.4582,1011.988 L 1999.934,1005.466 L 2002.3265,1000.7163 L 2006.7927,995.89575 L 2007.4839,989.58644 L 2005.2863,987.65463 C 2004.073,986.58826 2002.8354,985.26606 2002.5392,984.71265 L 2002.0075,983.70248 L 2003.319,980.79595 L 2003.9039,980.79595 C 2005.4998,980.23789 2006.8513,979.18281 2008.2459,978.24387 L 2008.2459,974.61067 L 2003.319,971.29654 L 1996.4071,971.13701 L 1993.7842,968.33681 L 1981.8745,968.31912 z \"},\"ga6\":{\"name\":\"GA-6\",\"path\":\"M 1956.5676,991.45536 C 1956.2362,991.56391 1955.2077,990.8538 1954.9932,990.63937 C 1954.7788,990.42488 1954.9358,989.66902 1954.9358,988.95965 L 1954.6865,986.58911 L 1956.0597,987.31379 L 1955.4783,983.36793 L 1954.1211,981.31702 C 1953.3746,980.18901 1952.4453,978.20298 1952.056,976.90363 L 1951.4313,974.99836 L 1944.7275,975.79285 L 1944.7275,972.76478 L 1940.7448,965.96922 C 1940.3726,964.36901 1939.9899,962.76624 1939.8114,961.13785 C 1946.007,959.83096 1950.9141,959.31379 1957.1512,958.96285 C 1957.6855,958.33357 1957.8229,957.87277 1958.562,957.54503 L 1959.4729,957.54503 L 1959.4867,959.95533 C 1959.4944,961.28099 1959.7622,963.51406 1960.082,964.9177 L 1960.6633,967.46978 L 1965.2407,975.20321 L 1970.4852,980.30039 C 1969.6597,980.84194 1968.8201,981.35894 1967.9064,981.72984 L 1967.9798,983.0939 L 1965.1442,984.17201 L 1965.1442,987.60285 C 1964.697,987.61232 1964.1679,987.85381 1963.8546,987.89248 L 1963.6879,986.35341 L 1957.4638,988.01498 L 1957.087,990.46838 L 1956.5676,991.45536 z \"},\"ca32\":{\"name\":\"CA-32\",\"path\":\"M 246.52048,967.75335 L 243.12922,964.35058 L 242.07295,964.35058 C 241.49192,964.35058 240.29602,964.72324 239.41527,965.17864 L 237.81398,966.0067 L 237.41846,965.61125 C 237.20091,965.3937 236.72197,965.20524 236.35408,965.19236 C 235.98618,965.17949 234.85578,964.96455 233.84204,964.71473 L 232.52319,964.05073 L 231.99887,962.88767 L 231.99887,961.51493 L 232.45257,961.51493 C 232.70211,961.51493 233.17804,961.7867 233.51021,962.11887 L 234.1142,962.72286 L 241.28299,961.91181 L 245.90895,957.64774 L 247.87847,959.0879 L 247.87847,960.3091 C 247.87847,960.98075 248.17468,962.00465 248.53668,962.58431 L 249.19495,963.63832 C 248.34087,965.03521 247.49551,966.44169 246.52048,967.75335 z \"},\"ca31\":{\"name\":\"CA-31\",\"path\":\"M 227.55638,966.05196 C 227.29641,966.05196 227.04086,965.73295 226.98846,965.34305 L 225.25936,958.97062 L 224.42613,958.714 L 226.18005,957.57934 L 233.13313,957.44465 L 233.45186,961.5797 L 231.75187,961.1404 L 231.7351,962.61346 L 228.02313,961.29392 C 227.20547,962.21454 226.82798,962.9986 228.02897,964.0103 L 228.22628,966.06716 L 227.55638,966.05196 z \"},\"tn7\":{\"name\":\"TN-7\",\"path\":\"M 1679.1529,963.77744 L 1679.1313,961.42436 L 1673.055,960.55376 L 1668.4165,957.66821 L 1669.25,957.18127 C 1670.6083,955.34281 1671.9058,953.79438 1671.9127,952.15861 L 1668.0642,952.15861 C 1668.0345,952.78047 1667.7895,953.33053 1667.3455,953.81423 L 1664.2819,950.85603 C 1663.4774,949.4377 1663.4214,948.64321 1663.4317,947.90384 C 1662.1343,948.31064 1661.4059,947.17304 1660.5671,946.33494 L 1662.4412,945.61576 L 1663.9444,946.86328 L 1666.3203,945.97027 L 1667.2692,944.24705 C 1665.9862,943.17206 1664.3581,941.71953 1664.566,941.0983 L 1669.6701,941.0983 L 1669.4889,940.19985 L 1672.7864,939.50053 L 1673.391,940.47888 L 1677.6804,940.76772 C 1677.9783,939.53314 1680.2221,938.81062 1683.1292,938.26266 C 1688.0647,938.51741 1694.0259,937.57547 1699.7392,936.92287 L 1699.0907,934.85659 L 1717.4975,933.01983 L 1724.0436,928.3379 L 1726.3453,924.28055 C 1726.4966,919.33922 1726.296,914.44807 1725.421,909.65334 L 1725.9355,907.6862 L 1729.5022,906.57474 L 1746.1223,904.72561 L 1746.1223,903.10068 L 1751.1098,903.10068 L 1752.3658,901.84466 L 1753.6451,904.23493 L 1755.8641,904.23493 L 1757.2808,901.96642 C 1758.5514,901.84806 1760.3108,902.77696 1762.0849,903.73733 L 1764.3734,901.47693 L 1768.9176,900.73246 L 1768.9176,896.8765 L 1773.3995,894.20526 L 1773.4547,892.89236 L 1775.8042,892.89236 C 1776.7584,892.03588 1777.4912,891.13194 1777.4246,890.05672 L 1792.5982,890.05672 L 1793.9458,888.43291 L 1793.45,876.58072 L 1794.722,876.03412 L 1792.1779,873.26177 L 1793.531,871.9086 L 1791.3192,871.87253 L 1793.4178,870.2827 L 1792.6701,869.07295 L 1794.1144,869.07295 L 1792.3528,867.31145 L 1786.4986,867.17806 L 1786.4986,865.67018 L 1791.1544,861.01445 L 1789.1114,856.48389 L 1785.416,857.08357 L 1782.6334,854.89474 L 1780.7388,854.89474 L 1779.7644,861.70028 L 1780.2959,861.70028 C 1780.5882,861.70028 1780.8273,861.96349 1780.8273,862.28522 C 1780.8273,862.60689 1780.4727,863.00626 1780.0391,863.1726 L 1779.0029,863.61281 L 1776.543,860.76707 L 1773.0932,860.99937 L 1770.1714,863.48708 L 1766.6407,851.11845 L 1791.2177,847.3395 L 1793.3042,849.91625 L 1793.5522,858.10338 L 1791.3831,859.31619 L 1795.1491,866.04749 L 1794.5215,868.44747 L 1798.1167,870.04348 C 1798.1404,871.93968 1797.8303,872.81305 1796.4055,874.40555 L 1798.1557,877.15851 L 1796.7951,883.59786 L 1800.2072,883.65298 C 1800.1006,884.76484 1800.5271,885.76253 1801.4492,886.65394 L 1806.161,881.89647 L 1813.801,882.25467 L 1822.1921,885.47261 L 1822.2083,888.92246 L 1824.0594,892.4069 L 1823.3489,895.608 L 1820.1797,899.14064 L 1819.9592,901.96642 C 1817.0926,902.18896 1813.602,901.86553 1808.3962,900.04136 L 1808.3962,898.86672 L 1806.0924,898.72919 L 1805.7952,897.82173 C 1807.6329,896.42863 1809.5998,895.20057 1811.3765,893.73358 L 1811.4523,889.48959 C 1809.5402,889.8213 1807.4932,889.34429 1805.4368,888.81022 L 1803.1052,893.68464 L 1801.7916,892.78551 L 1801.7392,889.48959 L 1800.807,889.48959 L 1797.8981,891.79366 L 1798.5346,887.7882 L 1797.4282,887.7882 C 1796.7291,887.97649 1795.9861,888.52967 1795.0685,890.53917 L 1790.0378,893.58806 L 1784.9051,891.94378 L 1782.2968,893.39988 L 1784.5056,894.1046 L 1784.4506,896.5749 L 1783.117,897.80091 L 1776.4975,896.54875 L 1777.084,899.05586 C 1778.9881,901.18503 1781.5578,903.45627 1780.8648,904.35709 L 1779.5542,905.93632 L 1776.2264,905.93632 L 1773.0062,909.46187 L 1771.025,908.35314 L 1768.9176,908.90427 L 1768.8754,911.75631 C 1771.5155,913.32884 1774.6427,914.83173 1774.2605,916.83602 L 1772.3204,918.25464 L 1772.3204,920.54278 L 1770.6315,921.94443 L 1771.2531,922.95018 L 1775.1561,922.95018 L 1775.1561,924.39364 L 1779.106,926.52082 C 1780.2871,934.51802 1781.469,942.51731 1780.7819,946.00895 L 1781.9335,949.0381 L 1780.8273,949.0381 L 1780.8273,951.09848 L 1752.1873,954.19892 L 1750.1653,955.3093 C 1726.8413,958.07853 1703.7886,960.78957 1679.1529,963.77744 z \"},\"nc7\":{\"name\":\"NC-7\",\"path\":\"M 2247.8342,939.75999 L 2191.7154,902.71083 L 2195.9475,893.30273 L 2194.2642,889.67124 L 2202.0886,888.27293 L 2209.2025,877.25089 L 2212.3074,878.21541 L 2215.0507,876.32698 L 2213.6508,872.86103 L 2216.5515,868.47775 L 2215.2723,865.67018 C 2213.0946,865.38735 2212.1192,865.19708 2210.404,866.0704 L 2209.4328,862.75111 L 2214.0784,858.4191 C 2221.6224,854.96585 2216.634,858.40316 2224.918,856.52228 L 2227.2811,851.49503 L 2230.7144,854.38392 L 2236.2317,853.1169 L 2236.2317,857.0403 L 2239.184,857.78125 L 2238.4547,861.66869 L 2240.2405,865.12211 L 2241.3059,864.55197 C 2241.8919,864.23835 2242.501,863.65988 2242.6595,863.26641 L 2242.9477,862.55097 L 2242.9925,863.29715 C 2243.0171,863.70758 2242.7643,864.55334 2242.4307,865.17661 L 2241.8243,866.30979 L 2243.1761,867.9387 L 2242.0479,867.9387 L 2241.3328,872.41062 L 2240.2118,873.10348 L 2237.3965,871.0579 L 2238.6867,867.7689 L 2237.0338,868.18154 C 2236.1248,868.40851 2234.9344,868.99668 2234.3885,869.4886 L 2233.396,870.38302 L 2233.396,874.15199 L 2236.3955,880.26773 L 2237.9034,881.15841 C 2238.7327,881.6483 2240.8013,883.4622 2242.5002,885.18922 L 2245.5893,888.3293 L 2247.3508,889.81081 L 2247.7162,891.26629 L 2252.2416,894.12314 L 2252.6739,893.64953 C 2252.9116,893.38905 2253.5492,891.77228 2254.0908,890.05672 C 2254.6323,888.34115 2255.4464,886.34622 2255.8998,885.62353 L 2256.7242,884.30955 L 2255.3752,882.68404 L 2252.6784,882.68404 L 2252.6784,871.46834 C 2251.605,867.92123 2250.7522,864.29002 2249.3188,860.8674 C 2249.0674,860.54566 2248.7239,859.19783 2248.5555,857.87216 L 2248.2493,855.46187 L 2248.7625,855.46187 C 2249.0447,855.46187 2249.2756,855.69887 2249.2756,855.9885 C 2249.2756,856.27813 2249.6767,856.91615 2250.1668,857.40632 L 2251.0581,858.29751 L 2254.8906,858.29751 L 2255.838,859.99044 L 2265.1041,861.23745 L 2269.2645,857.19683 L 2271.3678,861.32229 L 2270.7036,863.9688 L 2269.1251,863.9688 L 2269.1329,864.67771 C 2269.1372,865.06761 2269.2923,865.95238 2269.4777,866.64388 L 2269.8147,867.90115 L 2271.9608,868.58227 L 2271.9608,870.07677 L 2269.1251,871.93474 L 2269.1251,874.86719 L 2272.2444,874.11501 L 2273.5037,872.47573 L 2276.9652,872.47573 L 2277.7396,877.29632 L 2286.9897,891.65432 L 2289.1693,892.04167 L 2289.5547,893.21477 L 2286.9851,896.74617 C 2285.5718,898.68841 2283.5631,901.86978 2282.5212,903.81588 C 2281.4793,905.76193 2280.0904,909.01299 2279.4348,911.04048 L 2278.2428,914.72681 L 2277.371,922.38305 C 2276.8915,926.59398 2276.4989,930.86871 2276.4985,931.88246 L 2276.4978,933.72563 L 2274.3507,933.72563 L 2273.7493,932.15848 L 2269.4087,931.60904 L 2266.0059,932.13279 C 2264.1344,932.42083 2260.87,933.25797 2258.7517,933.99308 L 2254.9003,935.32958 L 2247.8342,939.75999 z \"},\"tn6\":{\"name\":\"TN-6\",\"path\":\"M 1818.1989,929.75572 L 1816.9973,926.30889 L 1815.5653,928.26724 L 1812.657,925.12909 L 1811.9125,921.7393 L 1810.1299,921.31555 L 1810.1299,919.10147 L 1812.6862,917.50036 L 1814.6851,913.67592 L 1815.4478,902.18856 C 1817.0174,902.43929 1818.6198,902.42681 1820.2428,902.24998 L 1820.483,899.30108 L 1823.6451,895.81704 L 1824.3307,892.38898 L 1822.5401,888.85951 L 1822.3909,882.50199 L 1824.3959,880.58612 L 1824.4561,878.48888 L 1825.9769,878.82071 L 1826.0973,876.22966 L 1830.4398,878.64762 L 1831.2944,876.72709 L 1832.7461,876.07801 C 1833.3546,876.06049 1834.1818,875.7514 1835.0087,875.44289 L 1835.7755,873.35041 L 1834.9572,870.66341 L 1836.1476,868.30018 C 1835.1223,867.46458 1834.8173,866.67701 1834.9082,865.91581 L 1836.7081,865.91581 L 1839.9687,860.14913 C 1839.8458,859.61217 1839.2442,859.39434 1838.5694,859.22533 L 1837.4939,859.22834 L 1836.5083,861.98385 L 1835.4889,858.54086 L 1834.7121,861.35683 L 1832.4146,861.51058 L 1831.6467,859.18138 L 1830.503,859.97003 C 1830.5801,860.87329 1830.4337,861.7883 1829.8047,862.72871 L 1828.0244,860.49213 L 1823.4004,865.16765 L 1822.2728,862.65442 L 1821.7405,867.54931 L 1818.517,867.7592 L 1817.8979,865.16056 L 1813.7807,862.88155 L 1811.6717,859.01436 L 1810.1201,861.31475 L 1810.5418,862.06012 L 1808.1573,863.09842 L 1807.4868,861.35099 L 1805.8773,861.87722 L 1804.7266,860.72652 L 1801.2759,863.19018 C 1800.3751,862.24166 1798.2814,860.97362 1795.2939,859.46619 L 1793.9291,858.30522 L 1793.5877,849.39143 C 1792.9719,848.78665 1792.233,847.99613 1791.9299,847.25738 L 1817.4071,843.11434 L 1819.1197,843.96486 L 1822.0846,842.46276 L 1869.5245,837.89437 L 1881.7937,835.0914 L 1882.3434,840.83788 L 1884.0448,840.18501 L 1884.0448,841.28365 L 1886.1603,841.28365 L 1889.1497,843.63513 L 1891.8496,848.37276 L 1892.529,853.75345 L 1895.4608,859.53912 L 1894.248,863.01846 L 1894.8227,863.59319 L 1892.9275,865.68737 L 1888.495,866.39616 L 1888.8654,874.17966 L 1887.5421,874.17711 L 1885.3413,871.15579 L 1874.9221,869.64008 L 1869.2785,874.91903 L 1869.9127,876.91731 L 1868.793,877.60932 L 1870.4551,882.32029 L 1869.4867,882.96761 L 1869.583,886.12748 L 1860.7955,886.47541 L 1858.3999,888.63889 L 1855.0072,895.35438 L 1855.6877,899.61017 L 1851.8326,900.88241 C 1849.7076,900.31103 1847.581,899.72921 1845.3579,898.47132 L 1842.7163,899.13435 C 1844.2164,909.53838 1845.2632,910.79451 1844.9129,916.09881 C 1842.4845,918.56469 1840.0655,921.18953 1837.5402,922.00761 L 1837.5402,923.51731 L 1835.8277,923.51731 L 1834.0907,921.48858 L 1827.7668,921.81592 L 1828.2936,924.57188 L 1825.7759,925.20378 L 1821.6636,929.75572 L 1818.1989,929.75572 z \"},\"mo7\":{\"name\":\"MO-7\",\"path\":\"M 1477.4135,811.22447 L 1477.4135,812.39417 C 1477.4135,813.03848 1477.1515,814.05937 1476.8287,814.66268 L 1476.2438,815.76149 L 1474.6665,815.76149 L 1473.4613,824.37476 L 1473.5499,829.28394 L 1468.942,829.15991 L 1469.1724,839.29734 L 1446.2214,840.59107 L 1446.2214,836.99338 L 1420.8424,837.5605 C 1420.8216,855.28781 1423.429,873.00219 1423.7489,890.72882 L 1501.162,885.48288 L 1499.6378,881.83199 L 1497.7415,881.44209 L 1498.3618,879.86473 L 1495.6325,877.13543 L 1496.2528,874.76057 L 1494.4273,874.05166 L 1494.4273,866.94486 C 1498.2082,866.21604 1501.3943,866.27083 1505.7699,866.23595 L 1505.0433,849.34612 L 1496.6959,849.5411 L 1496.6959,838.44664 L 1495.5616,838.44664 L 1494.8172,829.2485 L 1490.0498,829.90427 L 1489.3232,814.06011 L 1483.0316,814.06011 L 1478.1401,811.22447 L 1477.4135,811.22447 z \"},\"nc6\":{\"name\":\"NC-6\",\"path\":\"M 2163.347,806.64309 L 2164.2418,810.56869 L 2160.8568,811.31305 L 2160.6085,813.00576 L 2158.4996,813.49298 L 2159.7048,815.74374 L 2164.9863,818.80981 L 2166.8114,817.56031 L 2170.2406,819.42135 L 2167.0952,819.7314 L 2166.0495,821.59226 L 2164.7203,820.67067 C 2163.9871,820.15708 2163.1713,819.7314 2162.9126,819.7314 L 2162.4518,819.7314 L 2161.2644,823.13417 L 2158.5528,823.13417 L 2156.8866,826.6785 L 2156.2665,824.12664 L 2154.7247,825.40268 L 2150.9852,824.65833 L 2151.6232,826.6342 C 2146.7,831.38306 2144.9658,832.72142 2143.3644,832.77536 L 2140.3338,828.80546 L 2138.083,828.80546 L 2137.445,830.45364 L 2133.865,831.6411 L 2133.865,837.02882 L 2134.8929,837.77318 L 2137.6931,836.49714 L 2139.9261,839.26189 L 2134.7156,842.48743 L 2134.7156,846.26236 C 2133.4278,846.49278 2132.45,847.12178 2130.8521,846.95357 L 2130.0723,851.5083 L 2127.7152,852.76664 C 2125.2694,851.17159 2128.3601,851.70254 2120.378,847.98149 L 2117.4891,850.88803 L 2119.545,853.15654 L 2121.9817,851.96915 L 2123.3731,853.31602 C 2121.9939,857.1261 2121.4119,859.12024 2121.2286,862.08882 L 2164.4722,852.74889 C 2167.2308,857.8028 2169.3251,861.79369 2171.1537,867.51199 L 2173.9005,868.57519 L 2173.8744,870.41881 L 2179.5188,874.38842 C 2179.469,875.31528 2179.5182,876.42771 2179.7847,877.30375 L 2186.2712,877.29496 C 2188.0438,872.83194 2190.6578,869.12184 2193.9806,865.10169 C 2195.9124,865.65702 2195.8953,866.47806 2201.5476,866.76763 L 2201.9204,865.13714 L 2200.1479,865.0574 C 2198.0094,863.42413 2197.0226,862.85382 2193.9983,861.75206 C 2195.1294,860.92201 2195.5075,860.4906 2195.5313,859.12903 L 2191.7827,857.66692 L 2184.8798,851.0741 L 2185.7927,848.92072 C 2182.1224,848.24895 2178.4408,850.12649 2174.7514,850.30315 L 2170.9764,829.91323 L 2184.623,826.92684 L 2180.8214,808.92062 L 2177.1085,814.62724 L 2172.412,814.62724 L 2171.0828,812.48275 L 2171.7208,810.01932 C 2173.8798,810.99977 2174.7986,811.44876 2176.2046,811.10049 C 2176.2465,808.63853 2175.7171,806.46779 2174.8932,804.15305 L 2163.347,806.64309 z M 2157.9502,807.55582 L 2142.2301,810.33833 C 2143.357,817.21079 2143.9581,820.82896 2145.6861,825.96981 L 2146.9621,825.96981 L 2148.8584,821.75179 C 2148.6349,821.05921 2148.175,820.37072 2146.3418,819.6782 L 2148.5749,818.13635 L 2150.5244,819.16427 L 2151.0206,817.40968 L 2153.7322,818.20724 L 2154.6538,817.03753 L 2151.7118,813.88288 L 2157.9679,809.84209 L 2157.9502,807.55582 z \"},\"mo6\":{\"name\":\"MO-6\",\"path\":\"M 1514.4527,628.66216 C 1461.9547,634.11244 1409.044,637.91158 1355.4808,639.1009 L 1355.4808,641.58209 L 1356.5796,642.27325 L 1358.5646,639.9516 L 1360.6204,639.9516 L 1361.2762,641.67068 L 1359.5394,645.28612 L 1359.8052,645.74692 C 1359.9576,645.9935 1360.4664,646.19001 1360.9394,646.19001 L 1361.8079,646.19001 L 1361.4889,649.30922 L 1363.1016,654.71464 L 1364.679,655.40586 C 1365.5452,655.78923 1366.2882,656.3043 1366.3271,656.54011 C 1366.3661,656.77592 1366.43,657.25912 1366.4689,657.62117 L 1366.5398,658.27694 L 1370.5097,659.62387 L 1370.2262,663.16843 L 1372.4947,664.37358 L 1372.4947,666.03952 L 1374.072,666.03952 L 1374.6214,669.72585 L 1373.6644,671.56902 L 1374.0188,671.92348 C 1374.2158,672.12039 1374.9743,672.27793 1375.7025,672.27793 L 1377.0317,672.27793 L 1381.4093,676.77952 L 1384.5285,677.96692 L 1383.9081,679.57972 L 1386.921,679.36704 L 1386.9565,680.96209 L 1388.0907,681.40513 C 1388.7146,681.6486 1389.6371,681.86179 1390.1466,681.88368 L 1391.0859,681.91912 L 1391.6353,679.81008 L 1395.9774,678.99484 L 1397.3774,680.8912 L 1396.7572,682.4685 L 1399.7169,683.58506 L 1399.7169,686.27892 L 1397.1648,687.55496 L 1400.5675,687.30684 L 1400.9043,689.6817 L 1399.0611,691.20585 L 1395.747,689.96526 L 1395.747,693.86427 L 1392.9468,694.92764 L 1392.6632,696.22137 C 1392.5079,696.93425 1392.3074,698.15318 1392.2201,698.93298 L 1392.0606,700.3508 L 1389.5085,700.72295 L 1389.5085,702.30031 L 1392.9113,704.81694 L 1392.9113,706.85503 L 1395.6761,707.54625 L 1398.1927,711.21484 L 1400.6916,710.73635 L 1401.3651,712.50863 L 1399.6814,714.19226 L 1400.3903,717.0279 L 1404.2539,719.31417 L 1404.2539,722.18526 L 1406.2743,722.18526 L 1408.2415,724.48922 L 1409.3226,723.90434 C 1409.9216,723.5838 1410.8191,723.31952 1411.3075,723.31952 L 1412.1937,723.31952 L 1412.1937,724.98546 L 1415.7737,724.27655 L 1414.9815,728.44114 C 1416.5187,727.13573 1418.0876,725.65087 1419.4415,725.38421 L 1420.2909,725.35602 C 1420.5869,726.04383 1420.8311,726.88687 1421.3076,727.03302 C 1422.1434,726.67771 1423.2849,725.36691 1424.3621,724.25721 L 1423.7876,721.97951 L 1425.7817,724.29957 L 1427.1425,723.47139 L 1427.7598,726.03085 L 1429.4037,725.99495 L 1429.4037,727.11979 C 1427.9391,732.20433 1426.5319,733.55727 1425.1302,734.56103 L 1432.6281,735.88493 L 1432.6103,734.21899 L 1430.9089,733.56328 L 1430.9089,731.13523 C 1432.9534,732.04445 1435.6133,732.27692 1438.2816,732.49991 L 1438.2816,724.52467 L 1435.765,722.75239 L 1433.5142,722.75239 C 1434.5043,722.03168 1435.2544,721.09546 1434.9746,720.37476 L 1432.8301,720.94189 L 1431.7226,701.01457 L 1453.1783,699.7273 C 1453.7163,705.09676 1454.2759,709.27718 1454.7283,719.34962 L 1456.8374,719.34962 L 1458.9641,716.51397 L 1463.0935,716.51397 L 1464.5468,718.2685 L 1466.9216,717.93179 L 1466.5495,713.67833 L 1468.4458,712.95167 C 1468.9711,713.81444 1469.6021,714.60678 1471.4586,714.58216 L 1471.1751,717.15199 C 1472.7901,716.72313 1474.0608,716.13536 1474.5069,715.16704 L 1473.4436,713.19979 L 1474.2025,711.64676 L 1476.8479,711.57905 L 1477.5714,709.87766 L 1479.2744,709.70843 L 1480.7615,707.48653 L 1480.1073,704.60427 L 1481.6847,704.60427 L 1482.9671,706.89048 L 1485.9027,706.18157 L 1487.4462,710.02585 L 1492.4424,709.99199 L 1492.7291,712.7133 L 1494.9976,713.93615 L 1493.1366,715.65852 L 1497.8301,714.75939 L 1497.6987,716.79011 C 1496.324,718.3395 1495.0743,720.02064 1495.5616,721.49404 C 1494.1771,721.84442 1493.7683,722.50291 1493.8602,723.31952 L 1496.1287,723.31952 L 1496.1287,724.79048 L 1489.569,732.10701 L 1490.6347,748.78711 C 1496.5479,749.5689 1504.0547,748.62741 1511.1576,748.1314 L 1515.801,732.99615 C 1514.4463,731.81306 1513.1772,731.08737 1511.9552,730.5681 C 1513.2085,724.54054 1515.8507,718.49512 1517.1239,712.47772 L 1503.6191,708.49007 L 1502.757,685.88902 L 1495.154,685.88902 L 1492.0525,645.71147 L 1515.2693,643.10625 L 1514.4527,628.66216 z \"},\"co7\":{\"name\":\"CO-7\",\"path\":\"M 924.642,673.8326 L 925.08407,678.20029 L 922.56846,683.04845 L 917.57461,684.04829 L 916.34479,682.46158 L 913.51748,681.88708 L 912.17849,683.97099 L 909.62982,685.40997 L 909.71942,690.10211 L 915.4692,695.61675 L 916.04325,695.43743 L 915.68346,693.98337 L 917.0921,693.29221 L 917.0921,686.36258 L 924.44707,686.73478 L 924.99645,685.31696 L 926.73328,685.31696 L 926.73328,686.45122 L 929.56893,686.45122 L 929.56893,683.61557 L 932.42232,683.61557 L 933.11348,680.24825 L 934.95665,679.68112 L 940.19771,681.12231 L 938.64299,682.71168 L 938.64299,685.24607 L 936.32133,685.99043 L 931.94378,685.24607 L 931.19942,686.45122 L 932.9717,686.45122 L 932.9717,688.71973 L 930.27784,688.77287 C 928.79621,688.79476 927.07362,689.00749 926.44972,689.25142 L 925.31546,689.69446 C 944.62892,691.04388 958.61096,691.58691 980.43331,692.26429 L 981.17761,676.84548 L 924.642,673.8326 z \"},\"co6\":{\"name\":\"CO-6\",\"path\":\"M 904.08358,681.34706 L 901.85051,683.75736 L 900.53903,699.92052 L 890.43705,699.33564 L 890.43705,702.15359 L 891.87262,702.80931 C 892.66705,703.17131 893.95041,703.46508 894.70826,703.46508 L 896.07289,703.46508 L 897.86292,706.19439 L 897.1717,708.92369 L 900.04279,710.23518 L 899.01487,726.55782 C 925.52541,727.98818 938.58338,728.69074 963.63381,730.18098 L 962.76371,745.92884 L 978.05841,746.76178 L 980.77001,692.84911 L 925.66992,690.27934 L 926.32569,692.81366 L 924.74833,693.80614 L 926.04212,693.82389 L 926.69784,695.56072 L 925.58133,696.67723 C 924.96458,697.29398 924.20962,697.79379 923.89764,697.79379 L 923.33051,697.79379 L 923.33051,696.23419 L 919.94549,694.83406 L 918.2441,695.48983 L 918.88212,697.15577 L 914.89447,697.91782 L 914.2919,697.54567 C 913.95979,697.34032 913.68938,696.94968 913.68932,696.67723 C 913.89587,696.24859 914.02285,695.97915 914.92992,695.7734 L 909.15229,690.19069 L 909.15229,684.92706 L 911.70437,683.70416 L 907.71678,683.61557 L 906.29896,681.34706 L 904.08358,681.34706 z \"},\"va7\":{\"name\":\"VA-7\",\"path\":\"M 2196.5504,631.00157 L 2195.1576,636.56601 L 2192.935,638.81734 L 2190.2943,638.81734 L 2190.2943,637.68308 C 2188.4703,637.93438 2187.1005,636.43829 2185.456,636.10573 L 2181.7999,642.92522 L 2179.4761,643.43439 C 2177.885,646.44636 2177.7694,648.56935 2177.8051,650.5167 L 2176.4472,652.16732 L 2176.116,658.08197 C 2179.5439,658.73575 2179.7487,659.55922 2180.2277,660.36823 L 2183.5131,660.39835 L 2183.5596,661.50249 L 2186.1826,661.50249 L 2187.1625,658.82405 L 2188.2013,658.0202 L 2189.8689,663.41655 C 2192.4788,666.13826 2195.0924,668.38976 2197.7024,669.35365 L 2195.8238,674.15655 L 2204.2421,675.92882 L 2201.2647,684.79021 L 2214.1314,688.31701 L 2211.7566,698.68486 L 2215.8859,700.65206 L 2215.2125,702.7788 L 2217.0025,703.43457 C 2219.0361,703.96319 2220.3488,703.88782 2222.4434,704.01939 L 2222.1421,700.58117 L 2223.7194,699.39377 C 2225.8307,701.16651 2227.4892,702.02814 2228.7172,702.03444 L 2229.8338,703.59404 L 2232.0314,702.42434 C 2232.5658,703.40922 2235.7155,703.83366 2238.6774,704.42704 L 2233.5733,711.69338 L 2232.6694,715.32652 C 2231.6015,715.22733 2230.7609,715.61712 2229.8515,716.38988 L 2230.8617,718.74704 L 2232.4213,718.78249 L 2234.8848,716.12407 L 2240.4851,714.06823 L 2244.6677,710.84269 L 2248.3364,710.84269 L 2246.8477,709.17674 L 2245.8552,709.21219 C 2245.4538,706.32414 2248.1161,703.79322 2248.4073,700.33305 L 2251.5087,699.53556 L 2257.499,701.11286 L 2261.6461,696.15048 L 2262.3728,692.83635 L 2260.7069,692.19833 L 2259.2181,693.82882 L 2258.013,691.91477 L 2255.7976,692.411 L 2255.0887,689.85892 L 2252.6253,691.77298 L 2251.9873,689.30949 L 2251.2606,690.00071 L 2249.701,688.15754 L 2250.5517,688.15754 L 2249.2225,686.56249 L 2252.8734,680.62533 L 2250.7644,679.08348 L 2243.1081,679.08348 L 2242.3992,680.21774 L 2237.3659,680.02276 L 2239.6877,677.77199 L 2238.9787,674.26288 L 2235.5228,671.3386 L 2236.852,668.85741 L 2233.9632,667.77635 L 2230.5781,668.44982 L 2229.7983,666.42942 L 2232.315,664.40902 L 2230.9326,662.2114 L 2227.069,663.82414 L 2224.8714,663.13298 C 2223.9831,662.02963 2223.6106,660.06726 2223.1877,658.1883 L 2226.1475,654.6615 L 2227.7248,655.97298 C 2227.9833,654.66961 2226.9533,653.47325 2224.1625,652.41068 L 2221.6104,654.07662 L 2216.6835,648.13952 L 2212.3591,644.91397 C 2212.8784,642.06999 2211.2376,640.40604 2209.2931,638.90593 L 2206.1916,639.52625 L 2202.8952,635.96395 L 2203.4446,635.09556 L 2196.5504,631.00157 z \"},\"ca6\":{\"name\":\"CA-6\",\"path\":\"M 71.916024,686.41277 C 71.532014,686.3881 70.898874,686.23922 70.508974,686.0819 C 70.119074,685.92458 69.800064,685.5467 69.800064,685.24221 C 69.800064,684.93772 68.852794,683.55534 67.694994,682.1703 L 65.589984,679.65197 L 62.427394,679.65197 L 62.427394,677.52234 L 60.726005,676.11031 L 60.726005,674.02843 L 56.446679,669.52997 L 53.307621,668.74211 L 52.293368,669.66001 C 51.735484,670.16487 51.098258,670.57791 50.877248,670.57791 C 50.656238,670.57791 51.508008,669.05732 52.770097,667.1989 C 54.032128,665.34042 55.322006,663.14325 55.636422,662.31626 L 56.208031,660.81269 L 55.09436,656.77933 L 56.723608,655.549 L 54.543054,650.7284 L 52.696086,650.7284 L 53.468629,647.21096 L 52.051091,641.93791 L 50.735863,640.15696 C 50.01249,639.17747 48.710419,637.61083 47.842429,636.67564 C 46.974438,635.74044 45.959562,634.59013 45.587185,634.11936 C 45.214808,633.64864 44.492456,632.28033 43.981984,631.07876 C 43.471511,629.87712 42.581913,627.39826 42.005143,625.57023 L 40.956409,622.24658 L 38.410285,619.53633 L 39.680653,619.53633 C 40.379412,619.53633 41.408297,619.29161 41.967089,618.99256 L 42.983157,618.4488 L 47.331049,619.6493 L 48.812673,617.62312 L 52.689281,619.47173 L 53.40477,621.72601 L 57.039668,622.48477 L 62.301094,627.59267 L 64.535744,626.88336 L 65.827104,628.43934 C 66.679304,633.40234 68.046484,637.24957 69.928634,642.29843 L 72.460634,639.91973 L 76.495364,644.14903 L 81.122954,651.69508 L 82.160104,660.38559 L 83.623614,661.35322 C 84.098074,662.26306 83.972894,663.35626 83.974764,663.88743 C 83.976694,664.41866 83.685754,665.4953 83.328234,666.27998 L 82.678144,667.70671 L 81.622884,667.05451 L 79.389134,669.45216 L 76.602034,668.75266 L 76.247014,670.52777 C 76.051754,671.50409 75.669734,672.44025 75.398074,672.60812 L 74.904224,672.91334 L 74.904224,676.15466 L 76.322044,676.75048 L 74.337094,678.00695 L 74.337094,679.55743 L 72.919274,680.03348 L 73.769054,681.68592 C 74.236424,682.59474 74.874444,683.55183 75.186884,683.81282 L 75.754914,684.28739 L 73.293234,683.75168 L 72.614104,686.45751 L 71.916024,686.41277 z \"},\"ca7\":{\"name\":\"CA-7\",\"path\":\"M 100.74612,685.32326 L 99.955094,683.78237 L 95.093384,683.00495 L 90.216244,679.00856 L 88.991364,679.39733 C 88.317614,679.61113 86.212254,680.52132 84.312774,681.41999 C 82.413234,682.31861 80.412464,683.05406 79.866594,683.05429 L 78.874124,683.05474 L 78.874124,681.35335 L 78.306994,681.35335 C 77.995074,681.35335 77.739864,681.15412 77.739864,680.91054 C 77.739864,680.66702 78.505494,680.17877 79.441254,679.82557 L 81.142634,679.18335 L 81.142634,677.61121 L 84.892044,678.04892 L 85.686364,677.09184 C 86.123224,676.56548 86.539494,675.73385 86.611404,675.24379 L 86.742184,674.35277 L 85.858994,672.6071 C 85.373194,671.647 84.584144,670.41486 84.105544,669.869 L 83.235344,668.87652 L 84.089324,668.87652 C 84.559024,668.87652 85.683184,669.11063 86.587524,669.39675 C 87.491874,669.68292 88.966804,670.07889 89.865194,670.27676 L 91.498574,670.63655 L 90.884774,668.28943 L 92.616844,666.55736 L 91.876434,663.41524 L 93.052344,662.82021 L 93.052344,660.7883 L 99.574324,661.78741 L 99.933084,657.42132 L 105.65484,658.81538 L 106.64607,657.25038 L 106.66343,660.28855 L 104.881,662.07098 L 100.91909,662.07098 L 95.321424,666.89157 L 95.320854,670.43902 L 96.871044,671.72561 L 100.78344,671.71217 L 103.30404,677.79366 L 106.0963,680.4168 L 106.0963,682.21233 C 104.31449,683.24944 102.59988,684.41755 100.74612,685.32326 z \"},\"in6\":{\"name\":\"IN-6\",\"path\":\"M 1860.0659,555.00632 L 1856.6277,555.82157 L 1857.372,560.92573 L 1849.4322,561.68781 L 1845.4978,564.23989 L 1845.3028,568.81239 L 1838.1782,570.19477 L 1840.6772,586.35794 C 1838.8567,585.93917 1837.0982,586.1173 1835.4312,587.38586 L 1838.0188,603.92117 L 1819.144,607.16447 L 1822.9012,633.14605 C 1826.0302,633.38578 1829.5619,632.06942 1836.2642,631.44467 L 1836.9022,636.03484 L 1835.9806,636.35385 L 1836.53,640.99721 L 1834.8463,642.64546 L 1836.2819,650.00038 L 1832.2057,649.30922 L 1832.1525,652.67655 L 1836.53,652.03853 L 1839.0998,668.94605 L 1828.8738,670.32843 L 1828.0586,659.96058 L 1825.9673,659.99602 L 1825.3115,654.94506 C 1823.5866,655.50953 1822.2206,655.82513 1821.3948,655.76031 L 1823.2025,665.86229 L 1809.4142,668.68018 L 1809.7155,673.3413 L 1817.7793,672.20704 L 1819.8706,684.36486 L 1828.1117,682.61028 L 1825.8077,679.24295 L 1828.2535,676.9213 L 1831.16,680.55444 L 1837.877,678.81761 L 1838.4263,682.69892 L 1843.8495,681.72414 L 1859.3392,668.04216 L 1872.4718,666.26989 L 1873.0744,672.33107 L 1874.7403,674.31602 L 1874.3327,675.7516 L 1877.3101,675.94652 L 1878.8343,674.511 L 1860.0659,555.00632 z \"},\"in7\":{\"name\":\"IN-7\",\"path\":\"M 1806.9488,653.52321 L 1805.9473,651.73375 L 1803.5125,653.03685 L 1803.5125,652.14623 C 1803.5125,651.6564 1803.9234,650.62842 1804.4257,649.86189 L 1805.3389,648.46817 L 1804.9487,646.90443 C 1804.734,646.04438 1804.2222,644.50814 1803.1847,643.53534 C 1802.2746,642.68193 1801.8111,641.44275 1801.8111,641.09158 L 1801.8111,640.45317 L 1803.4052,640.99869 L 1805.5747,638.94721 L 1805.3053,637.59626 L 1807.766,637.37224 L 1812.637,640.07812 L 1819.1085,638.19344 C 1819.2001,641.57274 1819.6139,644.46872 1820.1082,647.60636 L 1816.7029,648.70795 L 1815.9666,651.40119 C 1812.9539,652.16897 1809.8003,652.57418 1806.9488,653.52321 z \"},\"oh7\":{\"name\":\"OH-7\",\"path\":\"M 1935.1628,650.7284 L 1933.834,640.49082 L 1908.5077,642.7886 L 1906.6798,627.85764 L 1908.0412,627.01619 L 1907.2813,614.50402 C 1915.9612,613.35218 1922.977,613.18636 1930.9174,612.03457 L 1930.3765,626.909 L 1927.7137,626.909 L 1927.7137,631.5155 L 1947.5535,629.05309 L 1946.4404,621.96029 C 1949.8686,621.73276 1953.0503,621.50528 1956.3553,620.53822 L 1957.2981,617.7805 L 1955.8913,616.08546 L 1957.0318,614.94502 L 1960.0182,616.30568 L 1961.3615,618.89507 L 1962.5182,617.12603 L 1962.814,611.90465 C 1960.0981,608.42928 1959.7603,606.76918 1964.9016,610.49624 L 1995.3256,606.88329 L 1996.1789,612.45209 L 2000.5911,611.8523 L 2000.8733,617.40007 L 2003.6292,616.8732 C 2004.2024,619.31225 2004.7287,622.15011 2004.9772,627.34926 L 1995.1774,628.57738 L 1995.2229,626.60842 L 1988.9636,627.45441 L 1988.9636,623.61415 L 1982.5869,624.28818 L 1983.2571,628.00889 L 1977.621,628.75653 L 1977.621,631.32466 C 1976.3835,631.90858 1974.6375,632.08575 1972.5793,632.01316 L 1972.8004,638.51642 L 1961.9642,640.0065 L 1961.7257,644.23954 L 1963.2454,644.55691 L 1963.0605,646.94152 C 1961.2769,647.9531 1959.4182,648.66474 1957.4702,649.01908 L 1951.4312,644.06527 C 1949.6874,644.71338 1947.9603,645.30319 1946.5389,644.82306 L 1944.8336,649.4104 L 1935.1628,650.7284 z \"},\"md6\":{\"name\":\"MD-6\",\"path\":\"M 2129.7361,623.14565 L 2129.2774,623.42915 L 2123.4592,593.17323 C 2173.9353,581.37701 2221.6598,570.49795 2271.6772,557.78456 L 2276.5094,561.49749 L 2272.2261,564.07559 L 2271.0266,564.05839 L 2270.0109,563.48996 L 2266.8376,565.13093 L 2267.4039,566.18901 C 2267.7635,567.01593 2266.746,567.29113 2259.3607,569.64777 L 2260.7957,571.37689 L 2256.993,575.30029 L 2255.0139,575.30029 L 2254.3129,574.16603 L 2251.9578,574.16603 L 2250.6167,575.61306 C 2249.8791,576.40897 2249.2756,577.30219 2249.2756,577.59801 L 2248.8236,578.08273 L 2245.9493,578.13593 L 2245.1844,580.54606 L 2245.6704,580.90057 C 2245.9377,581.09561 2246.2354,581.76555 2246.3319,582.3894 C 2246.4284,583.01324 2246.5721,583.96505 2246.6512,584.50456 C 2246.7303,585.04407 2246.9634,585.6539 2247.1692,585.85971 L 2247.5434,586.23396 L 2246.9402,587.20999 L 2242.537,587.20999 L 2241.836,588.34425 L 2236.1961,588.34425 L 2235.5432,590.04563 L 2234.7866,590.04563 C 2234.3705,590.04563 2233.8469,590.34219 2233.6228,590.70464 L 2233.2156,591.36358 L 2235.8578,593.50313 L 2236.1738,596.46678 L 2235.6157,597.50967 C 2235.3087,598.08327 2234.8718,598.55256 2234.6448,598.55256 C 2234.4178,598.55256 2233.9796,597.97835 2233.671,597.27652 L 2233.1098,596.00048 L 2228.0083,596.3698 L 2223.4713,600.62774 L 2218.9343,599.09287 L 2217.2114,597.54744 L 2213.8301,597.73261 L 2211.4955,597.65571 C 2210.2114,597.6134 2208.9274,597.43447 2208.642,597.25809 L 2208.1231,596.93738 L 2207.8414,593.24021 L 2207.2217,592.49364 C 2206.881,592.08299 2206.2505,591.74702 2205.8209,591.74702 L 2205.0396,591.74702 L 2205.0396,587.65417 L 2202.3334,588.33336 L 2201.7045,585.92839 L 2199.9718,586.59335 L 2199.3014,585.5086 L 2201.0697,585.5086 L 2201.0697,582.10583 L 2197.0998,581.49991 L 2197.0998,583.37898 L 2195.312,581.8952 L 2194.9299,582.46721 C 2194.7197,582.78185 2194.0986,583.20498 2193.5496,583.40762 L 2192.5515,583.77591 L 2187.5921,580.28013 L 2183.0177,579.69208 L 2181.666,581.5387 L 2180.0859,581.5387 L 2180.0859,582.62657 C 2180.0859,583.22489 2179.9311,584.11812 2179.7417,584.61152 L 2179.3974,585.5086 L 2175.0628,585.5086 L 2173.3614,587.20999 L 2172.2596,588.79795 L 2173.5832,589.4785 L 2171.0119,590.30101 L 2172.6247,592.03058 L 2171.1221,594.08166 L 2161.4906,594.64919 L 2157.5163,592.51905 L 2155.299,592.41549 L 2154.0292,594.2991 L 2152.4917,597.41831 C 2151.646,599.13387 2150.7801,600.66512 2150.5676,600.82108 C 2149.901,601.71777 2149.7381,602.84204 2148.9974,603.65321 L 2145.2956,601.9212 L 2142.6554,603.62111 L 2142.6554,605.6453 L 2136.9285,612.86752 L 2136.2753,616.13355 L 2134.0424,616.13355 L 2133.4491,618.40207 L 2132.9596,618.40207 C 2132.6904,618.40207 2131.9582,619.4056 2131.3325,620.63213 C 2130.7068,621.8586 2129.9884,622.98974 2129.7361,623.14565 z \"},\"md7\":{\"name\":\"MD-7\",\"path\":\"M 2251.5665,601.31601 L 2250.9623,600.3384 L 2247.3297,600.79817 L 2245.4515,598.80686 C 2244.4185,597.71168 2242.7509,596.31416 2241.7456,595.70127 L 2239.918,594.58692 L 2237.8724,594.58266 L 2235.9178,593.02306 C 2234.8428,592.16528 2233.9632,591.27205 2233.9632,591.03811 C 2233.9632,590.80417 2234.3147,590.61276 2234.7444,590.61276 L 2235.7736,590.63528 L 2236.4644,588.93389 L 2241.836,588.91138 L 2242.537,587.77712 L 2246.963,587.77712 C 2247.7958,586.66101 2248.178,585.92811 2249.3264,585.24024 L 2250.367,586.92393 C 2252.744,585.86408 2253.1827,584.80429 2254.3876,584.75869 L 2258.0661,584.51409 L 2259.6395,585.77657 L 2260.6619,584.71122 C 2260.4489,583.56284 2261.5478,583.24009 2261.8217,583.24009 L 2262.3196,583.24009 L 2262.3196,586.64286 L 2260.8407,586.64286 C 2258.9786,588.70074 2257.2744,589.54163 2257.2154,591.86997 L 2254.4569,591.17762 L 2253.7156,593.5134 L 2250.977,594.55459 L 2250.977,596.24412 L 2249.8428,596.85118 C 2249.2189,597.18505 2248.7085,597.70442 2248.7085,598.0054 L 2248.7085,598.55256 L 2252.8727,598.55256 L 2254.9539,596.66907 L 2255.611,597.3262 L 2253.7974,601.14797 L 2251.5665,601.31601 z \"},\"pa7\":{\"name\":\"PA-7\",\"path\":\"M 2299.689,542.31124 L 2299.3489,537.79198 L 2297.3731,536.83634 L 2298.1424,534.41257 L 2296.6769,532.64672 L 2300.6008,529.39336 L 2302.6214,529.36285 L 2303.2742,527.66146 L 2304.0308,527.66146 C 2304.4469,527.66146 2304.955,527.39017 2305.1599,527.0586 L 2305.5325,526.45573 L 2303.5773,524.29519 L 2301.4991,525.40737 L 2300.2773,523.12443 L 2298.7917,523.12443 L 2296.7579,520.87719 L 2298.2114,519.12591 L 2300.2046,520.92981 L 2300.9487,519.72581 L 2304.5707,521.56663 L 2308.257,525.53551 L 2308.257,527.53945 L 2313.9283,531.86443 L 2313.9283,534.83518 L 2307.1635,538.9658 C 2307.742,539.70579 2308.3602,540.50087 2308.7518,541.29881 C 2305.3673,540.71335 2302.4583,540.96692 2299.689,542.31124 z \"},\"pa6\":{\"name\":\"PA-6\",\"path\":\"M 2280.1927,540.70542 C 2280.0321,540.70542 2279.9006,540.16081 2279.9006,539.49518 C 2279.9006,538.82954 2280.1808,537.34983 2280.5232,536.20692 L 2281.1458,534.12891 L 2279.4996,530.18921 L 2282.8216,527.6995 L 2270.8265,521.75684 L 2270.8265,521.23817 C 2270.8265,520.95291 2271.5284,519.62576 2272.3861,518.28897 L 2273.9457,515.85843 L 2276.9564,514.05037 L 2280.1842,514.05736 L 2283.433,515.75176 L 2286.1932,515.75176 C 2287.2754,514.60785 2288.4182,513.5105 2288.9747,512.01953 L 2287.8685,508.37908 L 2285.5719,508.37908 L 2284.9894,505.76571 L 2283.3266,504.94886 L 2280.7513,505.55473 L 2279.1419,504.50739 L 2281.1314,499.29778 L 2282.0915,499.89113 L 2283.8444,497.3885 L 2284.5295,498.07362 L 2283.2817,500.40518 L 2290.1909,503.83583 L 2289.8391,506.52001 L 2291.4087,508.41117 C 2290.5934,511.31262 2289.6615,514.18527 2288.9747,517.12062 L 2293.4394,519.16825 L 2295.3005,516.01769 L 2304.0036,516.44105 L 2307.6784,517.95758 L 2307.0407,519.61929 L 2308.8533,523.12443 L 2309.882,523.12443 L 2310.6268,525.4712 L 2313.894,527.45809 L 2312.1689,529.92102 L 2308.8242,527.44815 L 2308.8242,525.34912 L 2304.5707,520.99039 L 2300.9487,519.15869 L 2300.2046,520.36268 L 2298.2328,518.57822 L 2295.8367,520.81379 L 2298.4568,523.63755 L 2300.0444,523.69156 L 2301.3693,526.14816 L 2303.5462,524.8789 L 2305.0163,526.66224 C 2304.4913,527.13034 2303.9123,527.27437 2303.1173,527.09433 L 2302.4644,528.79572 L 2300.6008,528.81259 L 2296.0927,532.62614 L 2297.4962,534.31724 L 2296.1525,540.13829 L 2294.7023,540.13829 L 2293.6207,538.20553 L 2286.4226,537.44669 C 2284.3511,538.53944 2282.3524,539.79348 2280.1927,540.70542 z \"},\"il6\":{\"name\":\"IL-6\",\"path\":\"M 1700.863,532.10302 L 1698.732,529.07928 L 1697.9251,523.97512 L 1695.2951,519.9035 L 1695.674,519.29041 C 1695.8825,518.95322 1696.7522,518.50183 1697.6069,518.28732 L 1699.1608,517.89731 L 1699.2372,521.54704 L 1704.1907,521.30762 L 1707.2549,516.88601 L 1708.7664,516.88601 L 1708.1529,518.48493 L 1710.3906,519.19518 L 1711.1052,522.04234 L 1710.2983,523.3479 L 1710.5875,528.08928 L 1710.0188,528.79572 C 1709.7061,528.79572 1709.0042,529.2417 1708.4591,529.78679 L 1707.468,530.77787 C 1705.2472,531.48688 1703.122,531.9477 1700.863,532.10302 z \"},\"il7\":{\"name\":\"IL-7\",\"path\":\"M 1723.6891,523.56613 L 1720.3572,526.01187 L 1717.4153,525.07256 L 1714.1011,526.70306 L 1711.2477,526.66761 L 1711.2477,527.46514 C 1711.2477,527.87063 1711.3697,528.3137 1711.744,528.68801 L 1712.4352,529.11335 L 1714.4378,529.36147 L 1715.3772,526.66761 L 1717.3089,527.9791 L 1717.7697,527.57147 L 1725.0361,529.41464 L 1725.2487,529.7691 L 1724.4335,531.48821 L 1725.2487,531.87811 L 1725.8513,529.32603 L 1725.1069,528.19177 C 1725.0848,527.80366 1725.042,527.37806 1724.9652,526.9689 C 1724.7652,525.90305 1724.3833,524.69905 1724.1322,524.29276 L 1723.6891,523.56613 z \"},\"mi6\":{\"name\":\"MI-6\",\"path\":\"M 1810.2117,457.26524 L 1803.4593,458.57672 L 1804.186,463.46821 L 1801.8643,464.19484 L 1801.1199,469.17494 L 1781.9616,472.08147 L 1781.9439,480.87197 L 1781.0932,485.69256 C 1780.6272,488.34389 1779.8266,491.78919 1779.3209,493.3488 C 1778.8152,494.9084 1777.4347,498.09849 1776.2549,500.43791 L 1774.1104,504.69137 L 1772.6926,510.36266 C 1771.9133,513.48187 1771.0208,516.69407 1770.7077,517.50494 C 1770.3944,518.31583 1768.7919,520.61271 1767.1454,522.6091 C 1765.4988,524.6055 1763.8938,526.43844 1763.5654,526.66761 C 1763.2369,526.89678 1763.1164,527.08818 1763.2995,527.09296 C 1786.0148,523.75802 1808.7369,520.45175 1831.4259,516.93781 L 1827.7572,493.15385 L 1834.1729,491.38157 L 1831.8689,486.89771 L 1826.4812,486.54326 L 1824.7976,477.20537 L 1813.9158,478.69207 C 1812.6493,471.5604 1811.8479,464.31942 1810.2117,457.26524 z \"},\"mi7\":{\"name\":\"MI-7\",\"path\":\"M 1852.64,450.69009 L 1832.1348,454.03969 L 1835.9097,475.36019 L 1825.4356,477.06157 L 1826.9774,486.25969 L 1832.2057,486.25969 L 1834.7755,491.54108 L 1828.1649,493.38425 L 1831.9576,516.83147 L 1854.5541,513.48187 L 1855.2984,517.11504 L 1900.8991,507.59791 L 1897.0887,486.4192 L 1897.0887,478.46167 L 1894.0936,471.92197 C 1895.2549,470.91291 1896.5006,470.10391 1897.9394,469.56484 L 1904.4968,468.60781 C 1904.0999,465.21591 1904.0667,465.0987 1902.76,463.34415 C 1887.4013,466.59919 1871.9813,469.67263 1856.4327,471.8688 C 1854.9169,464.86051 1854.1992,457.68853 1852.64,450.69009 z \"},\"nj6\":{\"name\":\"NJ-6\",\"path\":\"M 2340.672,480.5884 C 2340.413,480.5884 2339.4159,481.7093 2338.4389,483.06959 L 2336.6489,485.53306 L 2339.4846,488.19147 L 2338.7934,491.3993 L 2343.9684,488.88266 L 2346.8395,491.57652 L 2348.0978,490.31821 L 2349.4448,490.9385 C 2350.1863,491.27637 2350.7917,491.74779 2350.7917,491.98415 C 2350.7917,492.22049 2350.6356,492.83151 2350.4372,493.3488 L 2350.0651,494.28811 L 2347.6016,495.22741 L 2348.0978,499.51633 L 2348.7358,498.64791 C 2349.0862,498.16877 2349.9486,497.59445 2350.6499,497.37187 L 2351.9259,496.96425 L 2351.2702,494.30583 L 2353.2374,491.31068 L 2354.8148,490.47771 C 2355.6888,490.02577 2356.7794,489.66245 2357.2428,489.66246 L 2358.0935,489.66246 L 2360.6278,494.18177 L 2361.6735,492.46266 C 2362.1822,491.62603 2362.8926,490.80245 2363.3572,490.51316 L 2364.6154,492.79939 L 2364.5091,494.19949 L 2364.4914,494.19949 L 2363.7471,497.60227 L 2362.1343,497.60227 L 2362.1343,498.31118 C 2362.13,498.70108 2361.9765,499.55847 2361.7976,500.22524 L 2361.4608,501.44811 C 2362.6692,501.88231 2363.8658,502.35623 2365.1117,502.67098 L 2365.537,502.70642 L 2365.537,498.45296 L 2365.537,494.19949 L 2364.3319,490.14098 L 2363.7116,488.52821 L 2361.6558,488.45732 C 2360.5195,488.42041 2358.8166,488.22568 2357.8808,488.01425 L 2356.1794,487.62435 L 2352.4931,489.64474 L 2352.4931,488.52821 L 2349.7283,488.52821 L 2349.0194,487.37623 L 2347.7611,488.15603 L 2344.0925,483.79623 L 2342.5861,484.7887 L 2341.0619,485.51099 L 2339.4491,485.30637 L 2339.4491,482.82147 L 2341.1505,482.16573 L 2341.1505,480.5884 L 2340.672,480.5884 z \"},\"nj7\":{\"name\":\"NJ-7\",\"path\":\"M 2330.4572,498.75409 L 2326.78,493.63374 L 2324.8267,493.63374 L 2324.115,496.46938 L 2322.4868,496.46938 L 2321.0432,495.02578 C 2320.2492,494.2318 2319.5996,493.32959 2319.5996,493.02088 C 2319.5996,492.71216 2320.0192,491.81913 2320.5321,491.03637 L 2321.4647,489.61316 L 2318.2739,486.28272 L 2317.3122,488.39862 C 2316.7833,489.56237 2315.6772,491.2303 2314.8542,492.10513 L 2313.3579,493.69574 L 2310.8403,491.93235 L 2307.9168,491.93235 L 2306.5556,493.29346 L 2306.5556,490.98074 L 2308.1152,488.85696 C 2308.973,487.68888 2310.8574,485.38105 2312.3026,483.72845 L 2314.9304,480.72371 L 2316.3019,477.08611 L 2317.9955,477.97378 L 2324.8484,478.7818 L 2330.9677,474.86732 L 2331.5221,475.20994 C 2331.827,475.39838 2332.0764,475.89963 2332.0764,476.32382 C 2332.0764,476.74802 2331.7303,477.81759 2331.3071,478.70065 C 2330.884,479.58371 2330.1184,481.15632 2329.6057,482.19534 C 2329.0931,483.23436 2328.6737,484.52316 2328.6737,485.05934 L 2328.6737,486.03421 L 2330.0348,487.39532 L 2333.1438,487.39532 L 2333.7653,486.38958 L 2332.2453,485.12805 L 2333.4882,481.15691 L 2334.0941,481.15691 C 2334.4272,481.15691 2335.3364,480.45508 2336.1143,479.5973 C 2336.8923,478.73952 2338.206,476.97388 2339.0336,475.67365 L 2340.5382,473.3096 L 2345.9711,475.41266 C 2345.7142,476.38957 2345.4619,477.12069 2344.9469,478.00596 L 2345.0023,479.9045 L 2346.0402,481.46039 L 2347.4407,481.72142 L 2347.3889,483.95908 L 2347.3889,485.627 L 2346.3363,486.27753 L 2344.9192,484.09733 L 2343.8263,483.39969 L 2342.5084,484.26325 C 2341.7835,484.7382 2340.9262,485.12681 2340.6033,485.12681 L 2340.0162,485.12681 L 2340.0162,482.97965 L 2341.7176,482.32676 L 2341.7176,480.02265 L 2340.1509,480.02265 L 2338.7027,481.92138 C 2337.9061,482.96568 2336.6313,484.94354 2335.8698,486.31663 L 2334.4853,488.81314 L 2335.7388,490.76924 L 2334.9657,492.62683 C 2334.5404,493.64851 2334.1981,495.0309 2334.2049,495.6988 L 2334.2173,496.91317 L 2330.4572,498.75409 z \"},\"wi6\":{\"name\":\"WI-6\",\"path\":\"M 1707.6323,373.96821 L 1693.33,375.6696 L 1694.2339,381.23455 C 1664.2654,384.91852 1636.0878,387.98905 1604.8689,390.93078 L 1605.2833,395.07603 C 1602.7206,397.39212 1601.8358,399.01229 1600.3032,401.75752 L 1602.873,406.29455 C 1603.8537,407.31221 1604.5098,408.56099 1605.1238,409.85682 L 1603.8832,412.58613 L 1604.6807,414.12801 C 1606.3877,416.85607 1608.9285,418.88752 1611.2559,421.05761 L 1611.2736,422.81217 L 1614.6409,427.40237 C 1626.7106,426.03052 1635.6584,424.82745 1649.0586,424.44266 L 1651.841,451.20405 L 1659.6568,450.15841 L 1660.0289,452.7991 L 1663.095,453.06494 L 1662.5988,455.26256 L 1667.8624,454.44732 L 1669.0321,455.7588 L 1670.8044,455.63474 L 1673.197,453.24217 L 1672.5058,448.95326 L 1677.9998,448.01395 L 1676.1921,426.48078 L 1702.8471,423.13118 L 1705.6119,415.65217 L 1705.3815,408.89979 L 1703.7333,406.40088 L 1703.0421,399.20544 L 1703.9814,395.23554 C 1704.4985,393.05209 1704.8883,390.45217 1704.8675,389.45791 L 1704.8321,387.65019 L 1709.8654,383.53851 L 1710.592,380.22435 L 1709.121,377.08742 L 1707.6323,373.96821 z \"},\"mn7\":{\"name\":\"MN-7\",\"path\":\"M 1314.9361,414.4799 L 1312.2958,346.11956 L 1310.651,342.18309 L 1304.7228,339.43169 L 1301.4256,339.09117 L 1299.3879,335.29237 C 1298.2671,333.20304 1296.6435,330.62057 1295.7799,329.55354 L 1294.2095,327.6135 L 1294.903,325.80651 L 1302.706,319.42263 L 1306.1441,312.87913 L 1305.6581,294.85513 L 1304.0272,286.16365 L 1303.8721,282.79645 L 1299.8935,277.8722 L 1297.6976,273.30424 L 1296.9069,267.71078 L 1294.6582,263.89958 L 1295.2124,258.13213 L 1294.2372,253.79161 L 1295.791,246.37882 L 1294.4439,244.92518 C 1293.7029,244.12568 1293.0741,243.16568 1293.0466,242.79185 C 1293.019,242.41802 1292.9043,240.83612 1292.7916,239.27652 C 1292.6789,237.71691 1292.4187,234.39921 1292.2134,231.90384 C 1292.008,229.40848 1291.7434,226.21838 1291.6254,224.81473 C 1291.5073,223.41109 1291.247,220.98661 1291.0468,219.42701 C 1290.8466,217.86741 1290.5709,213.78977 1290.4342,210.36559 L 1290.1855,204.13982 L 1289.7027,203.55799 C 1289.4371,203.23798 1288.5255,200.93542 1287.6771,198.44119 C 1286.8286,195.94696 1285.7868,193.50331 1285.362,193.01087 C 1284.9373,192.51843 1284.5897,191.84578 1284.5897,191.5161 C 1284.5897,191.18641 1284.2085,190.18567 1283.7425,189.29224 C 1283.2765,188.3988 1282.8937,187.21221 1282.8919,186.65538 C 1282.8899,186.09854 1282.53,185.07771 1282.0921,184.38686 L 1281.296,183.13077 L 1280.4957,178.16541 L 1276.9859,171.308 L 1277.1906,167.86176 C 1277.3031,165.96633 1277.3803,163.77751 1277.3621,162.99771 C 1277.3438,162.2179 1277.0313,158.38978 1276.6676,154.49077 C 1276.3039,150.59177 1276.0126,146.70832 1276.0202,145.86091 L 1276.0342,144.32015 L 1277.7842,140.93601 L 1277.7842,137.72929 L 1277.0262,136.61063 C 1276.6093,135.99536 1275.8436,134.16797 1275.3248,132.54976 C 1274.8059,130.93155 1274.3821,129.27269 1274.3831,128.86342 C 1274.384,128.45415 1273.7134,126.53782 1272.893,124.60491 L 1271.3736,119.72216 C 1301.5675,118.83508 1331.1935,117.84476 1357.8516,116.31482 L 1356.4877,93.774231 L 1361.2193,94.530844 L 1363.896,93.09831 L 1365.5413,94.269862 C 1366.4462,94.914211 1367.5415,95.520511 1367.9753,95.617184 L 1368.7639,95.792954 C 1369.9771,100.14048 1370.8236,104.62393 1372.536,108.80856 L 1373.0618,109.34733 L 1373.0618,115.35889 L 1374.65,115.35889 L 1376.0214,121.07536 L 1376.2522,128.35954 L 1377.6932,129.69501 C 1378.4858,130.42952 1380.001,131.43369 1381.0604,131.9265 C 1382.1198,132.41931 1384.0512,132.99558 1385.3524,133.20711 L 1387.7183,133.5917 L 1391.6171,190.10063 L 1375.8974,190.91454 L 1375.8974,202.12959 L 1370.2262,202.12959 L 1370.2262,205.43985 L 1374.0464,207.80087 L 1377.0317,207.80087 L 1377.0317,212.16979 C 1371.7998,212.51501 1366.5742,212.86277 1360.585,212.90503 L 1360.585,219.14345 L 1361.894,219.14345 L 1365.2252,277.83853 L 1383.103,276.90008 L 1383.4811,277.95009 L 1386.5408,278.12483 L 1389.108,312.86927 L 1383.1426,313.28681 L 1383.9631,329.44998 L 1387.7976,332.87691 L 1385.1272,336.7215 L 1385.6928,341.70256 L 1401.9854,340.48738 L 1401.9854,343.34463 L 1407.5279,343.34463 L 1408.9225,361.82298 L 1419.5664,361.35746 L 1420.871,377.37235 L 1426.3719,377.37235 L 1426.3719,379.64087 L 1431.4761,379.64087 L 1431.4761,381.37033 C 1429.7495,381.68854 1428.0061,382.59512 1426.2122,385.27171 L 1426.9057,390.33177 L 1424.8211,392.90612 L 1387.7598,395.08628 L 1385.5809,393.11439 L 1383.6774,393.84481 L 1384.4653,406.29592 C 1380.3595,406.23286 1376.7763,406.48333 1373.6289,406.99533 L 1373.6289,411.88559 L 1314.9361,414.4799 z \"},\"ma6\":{\"name\":\"MA-6\",\"path\":\"M 2454.578,299.65168 L 2454.3572,300.62354 L 2450.9625,302.64682 L 2454.1895,304.8743 L 2453.3374,310.37395 L 2450.041,311.10059 L 2450.041,312.85514 L 2454.0109,318.26059 L 2452.3272,319.66069 L 2450.6081,318.98722 L 2450.6449,320.87278 L 2449.8938,321.28309 L 2449.437,322.22625 L 2450.1473,324.55217 L 2445.5926,326.87385 L 2446.1951,329.16009 L 2446.9122,329.34406 C 2447.1767,329.34406 2447.4251,328.69714 2447.737,328.11445 L 2448.3041,327.05108 L 2451.1752,327.60049 L 2451.5297,325.81049 C 2451.7254,324.83177 2452.1036,323.91475 2452.3627,323.75465 L 2452.8235,323.45336 C 2455.4118,324.75903 2457.9707,326.1206 2460.5328,327.47643 C 2460.9012,326.67594 2461.2914,325.77362 2461.5076,325.33197 L 2462.1456,324.05593 L 2463.5812,324.05593 L 2464.2901,321.78742 L 2464.8218,321.78742 C 2465.1126,321.78742 2465.3535,321.5322 2465.3534,321.22029 L 2465.3534,320.65316 L 2463.7761,320.65316 L 2463.0849,318.86316 L 2463.4039,318.33148 C 2463.5793,318.0477 2464.0616,317.81751 2464.485,317.81752 C 2464.9085,317.81752 2465.3381,317.62114 2465.4421,317.37445 C 2465.546,317.12776 2466.8691,316.10693 2468.3663,315.10593 C 2469.8636,314.10494 2471.3311,313.28048 2471.6273,313.28049 L 2472.159,313.28049 L 2472.159,310.51573 L 2472.7261,310.16128 C 2473.038,309.9685 2473.2933,309.56933 2473.2932,309.25742 L 2473.2932,308.69029 L 2472.2831,309.31059 L 2470.9007,307.62692 L 2469.8905,308.24722 L 2469.8905,310.44484 L 2467.1257,310.44484 L 2466.4168,309.31059 L 2464.2192,309.31059 L 2464.2192,308.69029 C 2464.2192,308.34854 2463.6783,307.31911 2463.014,306.38633 C 2462.3499,305.45356 2461.2526,303.62664 2460.586,302.32781 L 2459.3809,299.95296 L 2454.578,299.65168 z \"},\"ma7\":{\"name\":\"MA-7\",\"path\":\"M 2452.6462,324.05593 L 2451.6715,328.14989 L 2448.4105,327.67138 L 2445.3976,333.21861 L 2447.1876,334.54781 L 2447.8079,337.95059 L 2446.592,339.21058 L 2444.4583,338.25187 L 2440.9669,338.94306 C 2440.9705,340.18998 2441.3501,341.202 2442.2463,342.68382 L 2444.7015,343.12228 L 2444.7584,342.52715 L 2449.7866,342.53331 L 2450.1119,342.20405 L 2449.2257,341.31791 C 2448.7355,340.82775 2448.3396,340.06214 2448.3396,339.61653 L 2448.3396,338.80128 L 2449.4738,337.66702 C 2450.0977,337.04318 2450.6081,336.36996 2450.6081,336.16059 C 2450.6081,335.95121 2451.0312,335.31318 2451.5474,334.74276 L 2452.4867,333.69712 L 2454.3654,333.65745 C 2455.1419,332.21318 2455.2373,331.47362 2455.5675,330.17029 L 2458.8125,331.00032 C 2459.3643,329.93205 2459.8918,328.85339 2460.3911,327.75999 C 2457.7767,326.59341 2455.2549,325.23352 2452.6462,324.05593 z \"},\"wa6\":{\"name\":\"WA-6\",\"path\":\"M 136.63263,25.095445 L 136.04778,25.680296 L 138.06818,29.100791 C 137.2441,30.644068 136.71575,32.458829 135.44521,33.690989 L 135.01986,33.690989 L 135.01986,35.959504 L 132.91085,38.068514 L 132.91085,40.850989 C 132.91442,42.376954 132.73325,45.146987 132.50323,47.018514 C 132.27326,48.890038 132.08866,50.548888 132.07788,50.70485 C 132.06711,50.860811 132.0764,51.945443 132.11333,53.115147 L 132.18422,55.24188 L 133.44253,56.500197 C 134.1363,57.193994 134.76247,58.113031 134.82491,58.538316 C 134.88729,58.9636 135.34364,59.749804 135.83511,60.29287 L 136.72125,61.285345 L 136.72125,63.784256 L 138.42263,66.389503 L 138.22768,72.574751 C 138.11675,75.983183 137.80066,80.436567 137.53649,82.464058 C 137.27233,84.491543 137.05429,87.583455 137.05798,89.340493 L 137.0757,92.548315 L 139.14927,95.702968 L 138.4758,108.83554 C 137.81891,111.4428 137.21122,114.06331 136.41996,116.63356 L 136.03006,117.64376 L 137.8555,116.93485 L 137.60739,116.54495 L 138.56441,111.38762 L 141.13422,111.38762 L 143.63313,113.40802 L 143.81036,116.49178 L 145.79531,116.49178 L 145.79531,117.62604 L 148.02838,117.62604 C 148.50548,118.46365 148.95075,119.29636 149.0563,120.23128 C 148.92614,120.36143 147.50474,120.54342 145.90164,120.63891 C 144.29854,120.7344 142.80305,120.99051 142.58748,121.20604 C 142.37198,121.42157 141.76131,121.59593 141.22283,121.59594 L 140.24808,121.59594 L 139.91135,122.44663 C 139.73179,122.91451 139.32922,123.29732 139.00748,123.29732 L 138.42263,123.29732 L 138.42263,120.53257 L 137.28838,119.82366 L 137.28838,126.55831 L 175.00243,136.16406 C 176.12429,135.14186 176.673,131.46173 178.2457,124.98099 L 176.91649,123.38594 L 177.6963,119.23881 L 179.36224,118.60079 L 183.15491,119.77049 L 183.75748,118.19317 L 186.62857,118.19317 L 186.62857,117.07663 L 191.38544,115.09794 L 191.66931,117.15952 L 192.60115,117.64376 L 195.31273,115.7297 L 196.30521,116.97029 C 196.85231,117.64596 197.58799,118.19316 197.9357,118.19317 L 198.57372,118.19317 L 199.24719,114.84356 L 201.87016,113.12445 L 203.32342,114.84356 C 204.125,115.79618 204.77669,116.77356 204.77669,117.00574 C 204.77669,117.23793 205.91263,118.61233 207.31105,120.07178 L 209.86313,122.7302 L 211.93669,122.7302 L 213.86847,118.6894 L 209.17194,112.23831 L 206.97431,111.40534 L 208.00224,109.98752 C 208.56539,109.21387 209.22156,108.57951 209.4555,108.5697 C 209.68944,108.5599 209.88085,108.21691 209.88085,107.80762 C 209.88085,107.39833 210.37448,106.04735 210.97966,104.79475 C 211.58484,103.54215 212.54188,102.14919 213.10639,101.71099 L 213.97481,101.03752 L 211.44045,98.839899 L 212.75194,95.951087 L 210.67837,92.38881 L 208.09085,92.016632 L 206.76164,93.806632 L 202.40184,92.441978 L 201.46253,93.629404 C 200.94684,94.278335 199.96058,95.090503 199.28263,95.437127 L 198.05976,96.075146 L 190.75798,94.409206 L 194.44431,91.343166 C 195.89452,90.14475 198.04073,88.679573 199.21174,88.082176 L 201.33847,87.001087 L 204.97164,87.284651 L 207.15154,80.284157 L 210.44798,78.919503 L 210.44798,76.668711 L 213.2659,77.377622 L 212.91144,75.534454 C 212.71856,74.516514 212.32619,73.379949 212.04303,73.01782 L 211.52907,72.362078 L 212.71649,71.617721 L 210.96194,69.845444 L 211.35184,68.002276 L 213.56719,68.214949 L 213.67352,63.128513 C 213.07832,63.397627 212.45683,63.580748 211.83035,63.74881 L 212.27342,65.450197 C 211.59953,65.796202 210.9106,65.912015 210.19986,65.946434 L 209.24283,62.153761 L 211.58224,61.409405 L 211.58224,59.77891 C 209.59382,59.632987 208.03456,60.08787 206.38946,61.143563 L 207.09837,64.883068 L 205.41471,64.883068 L 203.73105,62.490494 L 204.33362,60.913167 L 199.69026,60.913167 L 198.98134,58.077523 L 197.97115,58.077523 L 197.97115,57.421781 C 197.97115,57.058047 197.52277,56.325554 196.97867,55.809009 L 195.9862,54.869702 L 192.37075,57.014157 L 185.31709,55.631781 L 183.2258,53.540494 L 180.92184,53.540494 L 180.30154,51.927722 L 176.8456,52.016335 L 175.00243,49.730098 L 171.3161,49.056633 C 169.28861,48.691333 167.11935,48.172499 166.4955,47.904652 C 165.87166,47.636805 164.42463,47.011755 163.26996,46.504553 C 162.11523,45.997351 160.3757,44.912697 159.42412,44.111979 L 157.70501,42.658712 L 158.27214,41.719405 L 153.50471,37.625445 L 152.016,38.192573 L 149.00313,34.825247 L 148.25877,34.825247 C 147.84244,34.825247 147.49669,34.626158 147.49669,34.382177 C 145.63156,31.413 143.60901,29.175589 140.70887,27.027227 L 136.63263,25.095445 z \"},\"wa7\":{\"name\":\"WA-7\",\"path\":\"M 224.64392,87.001087 C 222.50093,88.550573 220.34453,90.434796 218.95491,92.70782 C 218.95491,93.030136 219.64916,93.892767 220.49679,94.621879 L 222.03867,95.951087 L 220.49679,97.811978 L 218.38778,97.138513 L 218.38778,102.06544 L 220.21323,104.65297 L 224.05907,104.01495 L 224.05907,95.862473 L 226.9656,92.814156 L 225.06926,87.001087 L 224.64392,87.001087 z M 214.24065,101.23247 L 213.23045,102.04772 C 211.50106,104.18295 211.07847,105.51629 210.44798,107.02782 L 210.44798,108.92416 C 210.44798,109.96796 210.5939,110.82049 210.76699,110.82049 L 216.40283,108.3393 L 214.48877,107.91396 L 214.70144,101.65782 L 214.24065,101.23247 z \"},\"tx27\":{\"name\":\"TX-27\",\"path\":\"M 1301.7808,1417.9635 L 1300.4516,1421.1714 L 1297.5425,1422.5572 L 1295.8969,1425.4248 L 1298.5907,1425.4248 L 1300.558,1427.587 L 1298.8211,1430.9189 L 1299.4414,1433.2583 L 1295.7905,1434.0558 L 1294.9213,1432.822 L 1293.7634,1434.9698 L 1289.1529,1434.1909 L 1288.0634,1431.9468 L 1287.9925,1433.9318 L 1285.3814,1433.9318 C 1285.837,1432.35 1284.7546,1431.4824 1283.3753,1430.4278 C 1282.9854,1430.4899 1281.7084,1430.8756 1280.6198,1430.3872 L 1278.6526,1429.5011 L 1277.5994,1430.3408 L 1277.3394,1428.1989 L 1275.7461,1428.2605 L 1270.9786,1433.1342 L 1270.9786,1448.6771 L 1264.4567,1448.6771 L 1264.7934,1471.2914 L 1268.9937,1471.6458 L 1269.8444,1511.0613 L 1271.6699,1511.0613 C 1270.7066,1516.7477 1269.4474,1514.9845 1269.138,1521.1278 C 1272.0674,1521.8899 1274.5974,1521.8535 1277.2171,1521.9962 L 1277.2171,1527.313 L 1281.7718,1530.9817 C 1283.7943,1531.618 1285.9361,1532.0329 1287.7267,1533.197 L 1288.0634,1533.7464 L 1291.2712,1533.7464 L 1292.0333,1535.7314 L 1288.6128,1538.7797 L 1284.3948,1539.9494 L 1277.8019,1539.2582 L 1276.0828,1540.6938 L 1276.0828,1544.3978 L 1277.8728,1545.089 L 1280.5135,1544.4332 L 1283.1719,1546.1169 L 1290.261,1546.8967 L 1290.2788,1547.2689 C 1290.286,1547.4722 1291.1567,1548.5981 1292.2105,1549.7678 L 1294.1246,1551.8945 L 1295.6842,1551.8945 L 1297.7046,1555.2973 L 1300.3984,1554.6239 L 1301.8695,1556.9987 L 1305.1481,1556.9987 L 1304.4924,1552.9756 L 1305.4672,1552.6566 C 1305.9961,1552.488 1307.445,1551.8683 1308.6927,1551.2742 L 1310.9612,1550.1932 L 1317.1819,1549.3247 L 1317.5895,1547.2689 L 1316.4376,1547.8715 C 1315.8064,1548.2093 1314.8798,1548.4918 1314.3817,1548.4918 L 1313.4778,1548.4918 L 1312.7689,1546.6309 L 1314.7716,1545.1599 L 1314.2931,1543.7598 L 1309.2598,1542.5369 L 1309.2421,1541.4027 C 1309.2305,1540.7784 1309.0008,1539.9366 1308.7459,1539.5241 C 1308.4908,1539.1115 1308.1793,1537.9625 1308.037,1536.972 C 1307.8946,1535.9813 1307.7767,1534.37 1307.7711,1533.392 L 1307.7534,1531.6019 L 1305.7153,1532.1336 L 1305.1481,1528.3587 L 1305.6444,1528.1637 C 1305.9177,1528.0597 1306.1406,1527.6131 1306.1406,1527.1713 L 1306.1406,1526.3738 L 1305.5558,1526.3738 C 1305.2341,1526.3738 1304.8315,1526.7565 1304.6519,1527.2244 L 1304.3152,1528.0751 L 1302.6138,1528.0751 L 1303.0037,1526.7991 C 1303.2212,1526.0973 1303.5196,1524.9871 1303.6772,1524.3356 L 1303.9607,1523.1482 L 1301.32,1523.2545 L 1301.6922,1521.6063 L 1300.0263,1520.3835 L 1301.1605,1513.8792 L 1299.7073,1512.1423 L 1299.2819,1509.7498 C 1299.0491,1508.4407 1298.6795,1506.3541 1298.4489,1505.1064 L 1298.0236,1502.8379 L 1294.7449,1498.0173 L 1293.1675,1498.0173 L 1292.4941,1495.9083 L 1293.6106,1492.9841 L 1292.7068,1487.295 L 1293.522,1486.9938 C 1293.9665,1486.8232 1294.967,1486.6747 1295.7551,1486.6747 L 1297.1906,1486.6747 L 1296.8184,1485.186 C 1296.6136,1484.3698 1296.2894,1482.9662 1296.1095,1482.0668 L 1295.7905,1480.4363 C 1296.6148,1480.4838 1297.4385,1480.4195 1298.2363,1480.2945 L 1299.6718,1470.7951 L 1299.1578,1470.7951 C 1298.8738,1470.7951 1297.7037,1471.3178 1296.5526,1471.9648 L 1294.4613,1473.1522 L 1287.7089,1472.213 L 1287.7089,1469.395 L 1288.7014,1469.2001 C 1289.2462,1469.0951 1290.3582,1468.4614 1291.1649,1467.7823 C 1291.9715,1467.1031 1293.2781,1465.9793 1294.0714,1465.2833 L 1295.507,1464.0073 L 1296.0032,1464.3263 C 1296.2759,1464.4948 1296.4994,1465.092 1296.4994,1465.6555 L 1296.4994,1466.6657 L 1295.3297,1468.1722 L 1294.1423,1469.6609 L 1294.6208,1469.6431 C 1294.8774,1469.6362 1295.7196,1469.1365 1296.4994,1468.5266 L 1297.9172,1467.4101 L 1299.8668,1467.3924 L 1300.7529,1465.691 C 1301.239,1464.751 1301.8629,1462.9006 1302.1353,1461.5793 C 1302.4075,1460.2579 1303.0489,1457.6721 1303.5531,1455.8371 C 1304.0572,1454.0022 1304.8012,1451.8329 1305.219,1451.0165 C 1305.6368,1450.2001 1306.2905,1448.6345 1306.6723,1447.5429 C 1307.0543,1446.4511 1307.5005,1445.1799 1307.6471,1444.7072 L 1307.9129,1443.8388 L 1302.7201,1442.3146 L 1300.4693,1439.4435 L 1300.4693,1436.413 L 1301.1782,1435.5091 C 1301.5681,1435.0087 1302.7804,1434.0676 1303.8721,1433.4178 L 1305.8571,1432.2304 L 1308.8345,1432.2304 L 1310.2523,1435.6332 L 1311.8297,1435.6332 L 1314.2931,1430.5645 C 1311.6019,1426.9303 1308.9149,1422.2063 1306.0107,1418.7307 C 1305.0323,1418.7074 1305.1561,1417.4557 1304.1388,1417.226 L 1301.7808,1417.9635 z M 1319.6631,1433.6482 L 1319.096,1435.066 L 1317.1996,1435.066 L 1317.0224,1438.0612 L 1318.3693,1436.4307 C 1319.1077,1435.5276 1319.6943,1434.5272 1319.6808,1434.2153 L 1319.6631,1433.6482 z M 1314.9311,1440.8968 C 1314.6796,1440.9646 1313.9927,1441.6675 1313.2829,1442.5982 L 1311.8119,1444.53 L 1311.8119,1446.9048 L 1309.8801,1448.8366 L 1309.6852,1450.0063 C 1309.5865,1450.6531 1309.0069,1452.0465 1308.3914,1453.0901 C 1307.7756,1454.1337 1307.2749,1455.3188 1307.2749,1455.7308 C 1307.2749,1456.1426 1306.9013,1456.7849 1306.4419,1457.1663 L 1305.6089,1457.8752 L 1305.2368,1459.9311 C 1305.0319,1461.0694 1304.5937,1462.3501 1304.262,1462.7667 L 1303.6594,1463.5288 L 1303.5354,1466.1695 C 1303.4741,1467.6243 1303.1838,1470.0145 1302.8796,1471.4863 L 1302.3302,1474.1625 L 1302.9505,1474.8005 L 1303.9253,1469.9799 C 1304.4619,1467.3295 1305.4732,1463.427 1306.1761,1461.3134 C 1306.8788,1459.1999 1308.7084,1454.6603 1310.2346,1451.2292 C 1311.7608,1447.7981 1313.5144,1444.1297 1314.1336,1443.0767 C 1314.7527,1442.0237 1315.1568,1441.0516 1315.0198,1440.9146 C 1315.0026,1440.8974 1314.967,1440.8871 1314.9311,1440.8968 z M 1302.3302,1476.1829 L 1302.3302,1481.287 L 1302.5784,1480.011 C 1302.7136,1479.3092 1302.7134,1478.1607 1302.5784,1477.4589 L 1302.3302,1476.1829 z M 1302.8265,1490.3611 L 1302.8619,1493.7639 L 1303.1277,1492.7536 C 1303.2715,1492.2018 1303.2653,1491.4362 1303.1101,1491.0522 L 1302.8265,1490.3611 z M 1303.6772,1494.8981 L 1302.9505,1497.7338 L 1303.8721,1498.3718 L 1304.3861,1504.3975 L 1306.1406,1506.3293 L 1306.1406,1507.3041 C 1306.1406,1507.8352 1306.6746,1509.8484 1307.3281,1511.7879 L 1308.5155,1515.3147 L 1309.1535,1515.7046 C 1309.5048,1515.9218 1309.8702,1516.0334 1309.9687,1515.935 L 1309.9687,1515.9173 C 1310.0672,1515.8189 1309.604,1514.3697 1308.9408,1512.6918 C 1308.2776,1511.0136 1307.1282,1507.7294 1306.3887,1505.39 C 1305.6492,1503.0506 1304.7457,1499.7329 1304.3683,1498.0173 L 1303.6772,1494.8981 z M 1310.1105,1516.5376 L 1310.1105,1518.0617 L 1310.8726,1517.2997 L 1310.1105,1516.5376 z M 1310.9612,1518.434 C 1310.8052,1518.434 1310.6776,1518.5615 1310.6776,1518.7175 C 1310.6776,1518.8735 1310.8052,1519.0011 1310.9612,1519.0011 C 1311.1172,1519.0011 1311.2448,1518.8735 1311.2448,1518.7175 C 1311.2448,1518.5615 1311.1172,1518.434 1310.9612,1518.434 z M 1311.5283,1520.1353 C 1311.3724,1520.1353 1311.2448,1520.2629 1311.2448,1520.4189 C 1311.2448,1520.5749 1311.3724,1520.7025 1311.5283,1520.7025 C 1311.6843,1520.7025 1311.8119,1520.5749 1311.8119,1520.4189 C 1311.8119,1520.2629 1311.6843,1520.1353 1311.5283,1520.1353 z M 1311.8119,1521.6417 L 1311.8119,1523.1659 L 1312.574,1522.4039 L 1311.8119,1521.6417 z M 1316.3489,1543.7598 L 1316.4376,1545.9397 L 1317.0401,1544.451 L 1316.3489,1543.7598 z \"},\"hi1\":{\"name\":\"HI-1\",\"path\":\"M 794.73924,1407.5957 C 794.46946,1407.5303 794.26671,1407.3151 794.05574,1407.1456 C 793.55542,1406.7181 793.16767,1406.1706 792.62396,1405.7922 C 792.30291,1405.5659 791.95027,1405.3273 791.54234,1405.3259 C 791.02432,1405.2114 790.57833,1404.8707 790.2431,1404.4691 C 790.02617,1404.2077 789.80919,1403.9463 789.59221,1403.6849 C 788.89901,1404.1178 788.2058,1404.5508 787.5126,1404.9837 C 786.9867,1404.5473 786.46086,1404.1108 785.93502,1403.6744 C 784.82793,1403.9704 783.72084,1404.2665 782.61374,1404.5626 C 782.12743,1403.6254 781.64118,1402.6882 781.15503,1401.7509 C 781.88986,1400.9608 782.62475,1400.1707 783.35969,1399.3807 C 783.16494,1398.3833 782.97019,1397.3859 782.77549,1396.3885 C 783.17583,1395.6405 783.57616,1394.8925 783.97644,1394.1444 C 785.10514,1393.9578 786.23889,1393.7998 787.3618,1393.5797 C 788.15476,1393.414 788.95748,1393.2588 789.70881,1392.9473 C 789.89409,1392.8761 790.07943,1392.805 790.26471,1392.7339 C 791.0592,1394.5301 791.85375,1396.3263 792.64835,1398.1225 C 793.54787,1398.9672 794.43826,1399.8216 795.34454,1400.6589 C 796.48152,1401.6635 797.68752,1402.596 798.97875,1403.3946 C 799.81334,1403.8882 800.70509,1404.2859 801.6243,1404.5934 C 801.95368,1404.7034 802.29521,1404.7836 802.64439,1404.7773 C 802.86449,1404.8059 803.12169,1404.8234 803.28224,1404.9949 C 803.31542,1405.2233 803.08323,1405.4029 802.96686,1405.5853 C 802.39877,1406.2721 801.76642,1406.9149 801.04339,1407.4392 C 800.90869,1407.5387 800.7537,1407.6269 800.58112,1407.604 C 800.52265,1407.5901 800.34151,1407.6446 800.43259,1407.5473 C 800.63834,1407.2142 800.84415,1406.8812 801.05002,1406.5481 C 800.69092,1406.3261 800.33181,1406.1042 799.97265,1405.8823 C 798.47412,1406.3967 796.98694,1406.9459 795.47106,1407.4081 C 795.22901,1407.4761 794.98861,1407.5595 794.73924,1407.5957 z \"},\"la1\":{\"name\":\"LA-1\",\"path\":\"M 1682.9504,1280.8084 C 1682.5849,1280.8084 1682.0336,1280.4894 1681.7254,1280.0995 C 1681.4172,1279.7096 1680.9393,1278.6887 1680.6635,1277.831 L 1680.162,1276.2714 L 1679.0277,1275.9878 L 1678.8574,1279.4032 C 1675.9155,1279.4984 1675.0739,1279.6205 1673.3977,1280.3889 L 1673.4584,1279.2278 L 1675.367,1277.8126 L 1673.5929,1275.1051 L 1674.1054,1274.0476 L 1678.7442,1273.336 L 1677.6486,1262.5643 L 1676.2478,1258.6904 L 1672.8705,1258.7173 L 1672.1696,1259.8516 L 1669.9241,1260.04 C 1667.84,1257.8985 1667.1612,1257.6465 1664.6216,1254.6436 C 1664.6198,1254.3288 1663.4884,1252.406 1662.8646,1252.0165 L 1661.7303,1251.3081 L 1661.7303,1250.292 C 1661.7303,1249.7333 1661.5041,1249.0336 1661.2277,1248.7373 L 1660.725,1248.1985 L 1657.8546,1217.5739 L 1700.6655,1212.9343 C 1700.7953,1213.0642 1700.6177,1214.2887 1700.2708,1215.6555 C 1699.9238,1217.0223 1699.4214,1219.5188 1699.1542,1221.2033 L 1698.6684,1224.266 L 1697.5618,1224.9499 L 1696.7608,1234.1321 L 1698.5937,1235.7265 C 1698.5937,1236.2165 1699.1093,1237.6282 1699.7394,1238.8634 L 1700.8852,1241.1094 L 1701.9964,1241.1094 L 1701.9964,1242.5662 L 1703.8396,1243.6492 C 1704.8534,1244.2448 1705.9783,1245.0236 1706.3394,1245.38 C 1706.7006,1245.7364 1707.2642,1246.999 1707.5919,1248.1858 L 1708.1877,1250.3437 L 1710.6335,1252.9472 L 1710.9966,1257.8151 L 1711.6007,1258.0164 C 1711.9329,1258.1272 1712.2048,1258.5226 1712.2048,1258.8952 C 1712.2048,1259.2677 1712.7181,1260.0121 1713.3455,1260.5493 L 1714.4863,1261.526 L 1717.5925,1261.6156 L 1716.7418,1261.9283 C 1716.2739,1262.1004 1715.4688,1262.6082 1714.9527,1263.0568 L 1714.0143,1263.8725 L 1709.3327,1262.4698 L 1708.0893,1263.7133 L 1706.1133,1262.4792 L 1703.5261,1264.8895 L 1702.4289,1264.5211 L 1702.5636,1262.8087 L 1698.365,1262.401 L 1692.8382,1266.1167 C 1690.6432,1265.1305 1689.633,1264.8443 1686.684,1264.612 L 1686.684,1274.57 L 1688.9169,1274.57 L 1688.5397,1275.5624 C 1688.3323,1276.1083 1687.1393,1277.512 1685.8887,1278.6817 C 1684.6382,1279.8514 1683.3159,1280.8084 1682.9504,1280.8084 z \"},\"al1\":{\"name\":\"AL-1\",\"path\":\"M 1802.3782,1138.3336 L 1787.1898,1140.3718 L 1787.757,1141.8605 L 1792.1699,1141.1516 L 1791.9975,1143.5065 C 1789.8569,1144.0922 1789.48,1144.7125 1787.6506,1145.9899 L 1786.0733,1144.6784 L 1784.7441,1147.8862 L 1785.4438,1150.0199 L 1788.1227,1152.7386 L 1795.0056,1157.3856 L 1795.0056,1160.434 L 1791.656,1161.834 L 1789.3881,1164.9965 L 1785.1871,1159.4946 L 1783.0746,1160.677 L 1782.2791,1159.3331 L 1764.0793,1161.834 L 1777.0524,1241.5688 L 1780.8273,1240.9662 L 1780.8273,1242.1536 L 1784.1061,1240.913 L 1787.9164,1242.0296 L 1787.7747,1243.8728 L 1790.9825,1243.7664 L 1791.2661,1242.2954 C 1791.4218,1241.4847 1791.5201,1237.942 1791.4788,1234.4265 L 1791.4079,1228.0463 L 1792.6839,1226.7703 L 1792.0281,1223.5447 L 1793.8713,1222.8358 L 1793.8713,1222.0915 C 1793.8713,1221.6754 1794.1092,1221.1742 1794.403,1220.9926 L 1794.9347,1220.6736 L 1799.4894,1222.0915 L 1800.0211,1223.2257 C 1800.312,1223.8561 1800.8557,1225.3985 1801.2263,1226.6462 L 1801.8997,1228.9148 L 1800.7655,1231.8744 L 1802.6441,1237.1204 L 1804.3455,1237.8116 C 1805.2865,1238.1943 1806.754,1239.1615 1807.6065,1239.956 C 1808.4587,1240.7506 1809.8026,1241.9632 1810.5839,1242.6499 L 1812.0017,1243.8905 L 1811.3283,1245.6273 L 1809.1306,1246.2299 C 1807.915,1246.5572 1806.9153,1246.9366 1806.9153,1247.0806 C 1806.9153,1247.2245 1807.3669,1247.3464 1807.9255,1247.3464 C 1808.4839,1247.3464 1811.2768,1246.5871 1814.1285,1245.6627 C 1816.9801,1244.7384 1820.4412,1243.4574 1821.8201,1242.8094 L 1824.3368,1241.622 L 1823.8228,1238.9458 L 1825.9673,1238.2724 L 1826.6407,1235.7203 L 1827.3319,1233.1682 L 1828.1117,1233.1682 C 1828.5426,1233.1682 1829.1921,1232.8163 1829.5473,1232.3884 L 1830.1853,1231.6086 L 1826.9597,1230.9706 L 1825.1875,1226.4513 L 1825.985,1224.9094 C 1826.422,1224.067 1826.9067,1222.6409 1827.0661,1221.737 L 1827.3496,1220.0888 L 1826.1622,1217.8734 L 1820.9871,1215.9239 L 1812.1435,1207.3284 L 1814.1993,1201.8521 L 1813.8271,1198.3252 L 1860.8634,1191.9627 L 1859.3747,1181.2759 L 1855.7592,1181.7013 L 1855.0149,1177.306 L 1819.3921,1181.9671 L 1823.5215,1177.5364 C 1823.5215,1177.1792 1824.4778,1174.9844 1825.152,1173.7969 C 1825.8262,1172.6093 1827.323,1170.6139 1828.4839,1169.3662 C 1829.6449,1168.1186 1830.9202,1166.4941 1831.3018,1165.7508 C 1831.6834,1165.0073 1832.0963,1163.3484 1832.2234,1162.0645 C 1832.3505,1160.7803 1832.5181,1158.8842 1832.5956,1157.8464 L 1832.7374,1155.9501 L 1836.1578,1153.593 L 1836.1224,1150.7041 L 1839.0112,1150.3851 L 1843.9204,1147.4254 L 1842.9811,1142.9948 L 1812.5689,1147.1419 L 1811.984,1149.5167 L 1813.1005,1155.0817 L 1810.194,1155.4716 L 1811.4523,1164.3507 L 1808.8825,1166.8142 L 1809.2724,1168.0548 L 1812.1966,1168.3029 L 1812.5334,1169.8093 L 1810.318,1174.3818 L 1807.3406,1172.8576 C 1806.95,1173.9445 1806.0812,1174.5224 1805.2139,1175.2148 C 1804.6237,1176.4154 1804.5937,1177.3403 1805.2139,1179.0251 L 1803.7075,1179.1669 L 1802.3073,1177.6427 L 1802.1301,1179.5391 L 1800.5705,1181.1696 L 1803.4948,1184.3243 L 1800.3401,1183.3849 L 1798.5324,1186.5573 L 1799.9602,1187.9851 L 1793.2765,1189.6999 L 1794.1549,1186.3801 L 1791.0357,1186.0256 C 1790.651,1184.5327 1791.3766,1184.9909 1792.9329,1184.5051 C 1793.0221,1184.0605 1792.7539,1182.9718 1793.0175,1182.348 L 1795.5195,1178.6884 L 1794.8461,1176.9338 L 1791.9878,1179.2357 L 1793.905,1174.7056 L 1792.7725,1173.3222 L 1794.1095,1168.6219 L 1796.3334,1169.1047 L 1795.679,1167.6649 L 1797.4336,1163.3051 L 1800.2618,1163.9085 L 1800.9535,1162.8443 L 1803.9556,1162.8443 L 1804.6956,1160.7041 L 1799.4111,1159.6727 L 1801.2872,1150.236 L 1803.1183,1150.9977 L 1801.9646,1147.3174 L 1800.9959,1147.3592 L 1800.874,1148.9396 L 1798.3391,1146.9942 L 1798.4083,1144.2176 L 1799.8261,1143.6505 L 1797.1349,1142.5301 L 1798.2397,1140.7288 L 1799.6947,1141.4174 L 1800.5247,1140.1591 L 1802.3782,1140.1591 L 1802.3782,1138.3336 z \"},\"fl1\":{\"name\":\"FL-1\",\"path\":\"M 1828.7497,1240.2459 C 1828.1259,1240.3436 1827.0055,1240.3003 1826.26,1240.1495 L 1824.9044,1239.8754 L 1827.5931,1238.535 L 1827.8429,1235.2839 L 1831.4986,1232.2321 L 1830.7703,1230.3339 L 1827.9446,1230.3339 L 1826.596,1225.8329 L 1827.1735,1225.106 C 1827.4912,1224.7062 1827.9296,1223.3898 1828.1478,1222.1807 L 1828.5444,1219.9824 L 1827.1932,1216.7202 L 1821.5254,1214.7379 L 1820.317,1213.385 C 1819.6523,1212.6409 1818.5014,1211.4924 1817.7593,1210.8329 C 1817.0172,1210.1734 1815.8129,1209.0791 1815.0831,1208.4011 L 1813.7561,1207.1685 L 1815.4819,1201.3575 L 1814.8441,1199.348 C 1854.0977,1194.0477 1886.9123,1189.6356 1923.7235,1183.8912 L 1922.6944,1185.1482 L 1923.1242,1186.7141 C 1921.0978,1188.9618 1920.4776,1190.9134 1920.3755,1194.5673 L 1926.5847,1193.5778 L 1927.2913,1196.3929 L 1929.8236,1195.7573 L 1931.8065,1208.783 L 1928.9321,1209.0604 L 1929.8869,1216.987 L 1910.9834,1219.7761 L 1909.23,1221.8894 L 1905.3602,1222.4993 L 1903.929,1224.3791 L 1904.6011,1231.3031 L 1892.8353,1228.405 L 1850.1882,1234.0596 L 1837.599,1238.2659 L 1834.9881,1238.1123 L 1832.436,1239.0902 C 1831.0324,1239.628 1829.3736,1240.1481 1828.7497,1240.2459 z \"},\"tx1\":{\"name\":\"TX-1\",\"path\":\"M 1465.3266,1115.1877 L 1431.2634,1117.4031 L 1430.0582,1115.9321 L 1408.6846,1117.1195 L 1409.4998,1138.8476 L 1406.5986,1139.4168 C 1406.5236,1138.1733 1405.4312,1138.4538 1404.2539,1138.1742 C 1403.1622,1137.9462 1401.9216,1137.4809 1401.5069,1137.1462 L 1400.7625,1136.5437 L 1391.2454,1136.1892 L 1390.2352,1135.1258 C 1389.6771,1134.5443 1388.6657,1133.7786 1387.9844,1133.4245 C 1387.3031,1133.0702 1386.6651,1132.7867 1386.5666,1132.7864 L 1386.7792,1143.8454 L 1394.6127,1151.6435 L 1394.6127,1156.4463 L 1393.3367,1160.0972 L 1394.5596,1161.3023 L 1393.9392,1164.4039 L 1395.0558,1165.1128 L 1419.7081,1163.7835 L 1420.7006,1181.5595 L 1422.9691,1181.5595 L 1422.9691,1184.2534 L 1421.1614,1185.7598 L 1423.5363,1186.6282 L 1423.5363,1187.2308 C 1423.5363,1187.5625 1423.182,1187.9713 1422.7565,1188.1346 L 1421.9944,1188.4359 L 1423.4122,1195.2769 L 1424.6705,1197.5454 L 1426.1238,1198.5734 L 1427.5416,1202.2597 L 1421.0019,1208.1259 L 1422.083,1209.3134 C 1422.6733,1209.9657 1423.437,1211.0594 1423.7844,1211.7591 L 1424.4224,1213.0351 L 1426.8859,1213.3896 L 1427.6302,1218.3874 L 1428.924,1218.7773 L 1430.4304,1225.1752 L 1450.1559,1230.8643 L 1472.3093,1224.4663 L 1472.3093,1223.1371 C 1479.7601,1220.9313 1478.6322,1220.9879 1495.1008,1218.8305 L 1494.3565,1214.3998 L 1493.3994,1214.0453 C 1492.8708,1213.8558 1491.9677,1213.233 1491.3968,1212.6452 L 1490.3689,1211.5641 L 1491.1309,1207.0094 L 1486.4521,1201.8875 L 1486.7711,1198.8569 L 1483.9355,1198.467 L 1482.9962,1197.634 C 1482.4788,1197.172 1481.744,1196.0486 1481.3657,1195.1351 L 1480.6745,1193.4692 L 1482.0392,1191.821 L 1481.2948,1189.4461 L 1482.4645,1188.0283 L 1481.6493,1186.4332 C 1481.1942,1185.5562 1480.8163,1184.3483 1480.8163,1183.7571 L 1480.8163,1182.676 L 1478.4592,1180.7088 L 1476.8287,1176.7389 L 1472.522,1174.6831 L 1470.4307,1170.7841 L 1468.9774,1170.7841 L 1465.3266,1115.1877 z \"},\"ga1\":{\"name\":\"GA-1\",\"path\":\"M 2105.8453,1191.2435 L 2104.1345,1188.6323 L 2103.5923,1184.2613 L 2101.1644,1181.9993 L 2101.8438,1179.2924 L 2049.7754,1184.9636 L 2049.6042,1179.7727 C 2042.7824,1173.0277 2041.1867,1169.0645 2034.8706,1162.3616 L 2027.5295,1157.4579 L 2027.5283,1151.3 L 2028.8905,1147.5331 L 2032.5111,1147.5331 L 2033.3617,1145.5482 L 2034.0503,1133.6385 L 2045.7651,1132.9028 C 2046.1453,1131.3477 2046.3582,1129.6887 2047.2518,1128.3657 C 2047.6577,1127.7649 2048.2798,1125.3008 2048.4137,1123.6193 C 2049.3142,1122.9089 2050.6528,1122.2236 2050.7806,1121.2974 C 2051.0569,1119.2945 2052.5868,1118.6117 2053.6162,1117.3883 L 2053.6162,1112.0516 L 2048.6029,1110.5714 L 2042.3752,1106.676 L 2046.1708,1100.0766 L 2060.4447,1084.9405 C 2062.869,1085.435 2064.6434,1085.4295 2065.607,1084.8004 L 2067.5817,1093.3724 L 2071.365,1095.9244 L 2074.0781,1095.9244 L 2078.5247,1098.1929 C 2081.5256,1097.6089 2085.4551,1098.8821 2089.2021,1099.7902 C 2089.2101,1100.1903 2089.621,1100.8813 2091.6348,1102.73 L 2093.6645,1101.7184 C 2093.7736,1099.9649 2095.8873,1097.8576 2097.8448,1095.7779 L 2100.2918,1089.0667 L 2103.1094,1086.8504 L 2105.9991,1086.8504 L 2109.0877,1083.425 L 2104.087,1079.8604 C 2108.4377,1077.6935 2111.1798,1077.8933 2114.0805,1076.6351 L 2117.7018,1076.6421 L 2117.7439,1077.7978 L 2118.7988,1078.8906 C 2119.4021,1079.2135 2120.5112,1079.3934 2121.3149,1079.3934 L 2123.2397,1079.4356 L 2128.2587,1081.7231 L 2135.8769,1082.0184 L 2141.5077,1075.7914 C 2143.6023,1075.8216 2144.9296,1075.4257 2146.0193,1074.8978 L 2150.5501,1077.2092 L 2155.1323,1077.2092 L 2155.1323,1079.5176 L 2153.2497,1082.3908 L 2150.725,1081.7572 L 2149.3341,1083.4331 L 2149.9925,1085.149 L 2151.8119,1085.149 L 2149.3857,1088.2333 L 2145.62,1087.9088 L 2145.8331,1091.671 L 2147.7138,1091.3482 L 2147.0278,1093.2478 C 2146.6505,1094.2925 2145.789,1095.8398 2145.1134,1096.686 C 2144.4378,1097.5323 2143.6722,1098.1873 2143.412,1098.1417 C 2143.1519,1098.096 2142.3648,1098.0888 2141.663,1098.1258 L 2140.3869,1098.1929 L 2140.3869,1099.9309 L 2142.939,1100.898 L 2144.2251,1099.8648 L 2145.0008,1103.9997 L 2144.2571,1108.4013 L 2143.5434,1108.4013 C 2143.1509,1108.4013 2142.0249,1108.8028 2141.0412,1109.2935 L 2139.2527,1110.1857 L 2139.2527,1111.9363 L 2140.5287,1111.6595 C 2141.2305,1111.5073 2142.2514,1111.1951 2142.7972,1110.9656 L 2143.7897,1110.5484 L 2143.7897,1111.4211 C 2143.7897,1111.9011 2143.0496,1114.3011 2142.145,1116.7545 L 2140.5002,1121.2153 L 2141.0863,1124.2809 L 2142.1478,1124.2809 L 2141.9,1131.1473 L 2139.9391,1132.1967 L 2138.7782,1135.527 L 2139.4867,1136.2355 L 2137.0146,1136.8821 L 2137.6854,1143.2998 L 2135.9169,1145.1929 C 2134.9443,1146.2341 2134.1485,1147.2852 2134.1485,1147.5288 L 2134.1485,1147.9715 L 2137.8349,1148.5346 L 2139.1197,1147.5046 L 2139.688,1151.2195 L 2139.0841,1154.6223 C 2138.752,1156.4938 2138.5095,1158.8717 2138.5452,1159.9065 L 2138.6102,1161.788 L 2139.9587,1163.4127 L 2139.4355,1163.4127 C 2139.1478,1163.4127 2138.6296,1163.13 2138.2841,1162.7844 L 2137.6557,1162.156 L 2133.8162,1163.4232 L 2124.7909,1162.9274 L 2120.967,1161.7511 L 2117.1864,1161.8932 L 2115.7168,1160.6874 L 2111.7522,1160.895 L 2111.1798,1163.6963 L 2108.9113,1163.6963 L 2109.0014,1166.2484 L 2108.0417,1166.2484 L 2108.6293,1173.2715 L 2111.6253,1177.2312 L 2112.5665,1190.054 L 2105.8453,1191.2435 z \"},\"ms1\":{\"name\":\"MS-1\",\"path\":\"M 1708.8915,1078.9737 L 1707.5767,1068.1863 L 1700.2951,1068.8663 L 1699.5738,1060.1953 L 1701.2535,1060.1953 L 1703.4143,1057.7594 L 1696.9444,1058.4977 C 1696.0824,1054.077 1695.9099,1049.5453 1695.0538,1045.128 L 1662.8799,1048.5517 L 1662.0996,1041.025 L 1662.9315,1040.3458 L 1668.4973,1040.3458 L 1672.5058,1038.4344 C 1672.5553,1030.9196 1671.2582,1023.9819 1670.0883,1016.9898 C 1668.5212,1017.4516 1664.5516,1017.9133 1660.129,1018.3751 L 1659.326,1011.9483 L 1656.0607,1010.1865 L 1653.996,994.80357 L 1651.2402,990.66245 L 1652.3515,989.63402 L 1651.3579,985.78951 L 1653.0509,983.20863 L 1652.0196,975.69315 L 1646.832,975.69315 L 1649.8206,973.34229 L 1649.8206,970.0581 L 1646.7654,968.45727 L 1751.2836,956.34924 L 1754.2138,960.99102 L 1756.8258,962.18114 L 1758.4987,1062.1353 L 1741.1414,1064.292 L 1738.7289,1047.191 L 1722.2245,1049.0034 L 1720.8046,1047.0617 L 1718.4004,1048.3485 L 1716.2437,1047.664 L 1715.1199,1049.7638 L 1717.1303,1051.0193 L 1718.5103,1065.0159 L 1719.7452,1067.5233 L 1724.8137,1066.8286 L 1723.6435,1069.0151 L 1724.6537,1070.8202 L 1722.5075,1072.7626 L 1720.0721,1071.4592 L 1718.7045,1072.5942 L 1713.6226,1072.9557 L 1713.0555,1078.627 L 1708.8915,1078.9737 z \"},\"ca51\":{\"name\":\"CA-51\",\"path\":\"M 331.8917,1021.2307 L 328.22425,1041.9477 L 326.79223,1042.9204 L 325.45283,1052.2492 L 318.87765,1052.2492 L 319.42709,1054.3582 L 317.55511,1056.1038 L 317.69026,1066.2857 L 315.608,1066.4533 L 313.95072,1065.4704 L 312.49746,1065.5768 C 311.70194,1065.6265 310.80322,1065.8115 310.49481,1066.0021 L 303.45884,1066.3566 L 303.53093,1064.9997 L 297.0964,1062.4221 C 296.19735,1062.3161 295.68276,1062.5224 295.04803,1062.9691 L 294.53343,1065.462 L 286.5769,1064.4101 L 284.66195,1066.1931 C 282.36689,1066.3868 283.3419,1066.1831 281.85921,1065.2233 L 280.20657,1065.2932 L 281.96115,1059.5156 L 277.1228,1055.0317 L 274.25611,1055.9312 L 273.78436,1058.3049 L 271.78271,1058.7923 L 269.67924,1065.8249 L 393.40194,1074.9344 L 394.58934,1073.7647 L 399.6226,1075.1116 L 403.84062,1074.3141 L 403.84062,1072.2228 L 408.09409,1068.8023 C 407.80463,1065.37 408.12847,1061.8905 407.839,1058.4582 L 399.37448,1057.3002 L 398.59468,1053.6671 L 397.33639,1052.8695 L 400.11338,1048.5127 L 400.68597,1041.9523 L 398.50058,1039.8178 L 400.54419,1037.2735 L 399.85303,1032.9669 L 404.69132,1032.9845 L 405.16927,1032.2313 C 380.72346,1029.1441 364.3213,1026.661 331.8917,1021.2307 z \"},\"ar1\":{\"name\":\"AR-1\",\"path\":\"M 1643.0151,874.158 C 1610.5581,877.78524 1570.3273,881.41254 1526.6296,885.03978 L 1527.1081,891.68585 L 1525.7967,892.37701 C 1525.0764,892.76249 1524.4852,893.31198 1524.4852,893.58216 L 1524.4852,894.0607 C 1525.2938,893.59611 1526.1224,893.188 1527.0018,892.891 L 1527.3208,895.15951 L 1525.9739,895.15951 L 1528.0475,896.68367 L 1527.498,898.27872 L 1530.4989,899.51931 L 1531.8401,901.57516 L 1530.6172,903.04612 L 1531.4148,904.33991 L 1533.5238,903.79047 L 1534.9062,905.45642 L 1533.2757,906.48434 L 1534.6935,906.50209 L 1534.6935,911.44671 L 1513.178,912.45694 L 1512.859,910.18842 L 1507.879,909.83397 L 1509.5095,933.7774 L 1525.1764,932.9976 L 1524.5029,928.76189 C 1528.1321,928.03704 1531.9682,928.13992 1535.7568,928.05298 L 1536.1113,932.2178 L 1544.8309,931.95199 L 1546.2842,953.44968 L 1565.8501,952.26228 L 1565.5385,947.45065 L 1568.1009,945.95298 L 1567.4629,941.27417 C 1571.1645,940.44383 1574.9885,940.34867 1578.8586,940.52981 L 1579.2131,945.3504 L 1585.1325,945.68711 L 1590.4197,945.08618 C 1590.1605,946.32286 1590.3692,947.04833 1589.5277,948.00882 L 1586.7874,949.82278 L 1586.7089,951.7961 L 1587.72,952.42176 L 1587.4409,954.6537 L 1588.8543,956.12585 L 1590.108,957.79383 L 1589.2265,959.72354 L 1587.9649,961.85606 L 1586.6744,963.21496 L 1587.9325,963.34199 L 1587.8618,967.3073 L 1581.074,968.47859 L 1581.6943,972.28902 L 1578.7523,973.03337 L 1577.5117,971.34968 L 1574.8356,970.65852 L 1568.4376,973.52961 L 1561.898,972.87384 L 1558.6043,971.26404 L 1554.543,972.30671 L 1554.543,975.24869 L 1557.2368,974.57523 L 1558.0521,989.30288 L 1557.2368,998.94407 L 1561.2067,998.94407 L 1561.9866,1006.9902 L 1578.646,1006.1927 L 1579.5853,1021.5938 L 1588.3758,1021.5229 L 1589.7582,1026.2017 L 1590.8392,1027.1055 L 1593.3913,1027.0169 L 1595.0927,1033.8225 L 1597.1663,1035.896 L 1599.3107,1033.9643 L 1600.1792,1034.301 C 1600.6586,1034.485 1601.0475,1034.8831 1601.0475,1035.1871 C 1601.0475,1035.4911 1600.4824,1036.137 1599.7893,1036.6227 L 1598.5309,1037.5088 L 1599.3816,1037.5088 C 1599.8495,1037.5088 1600.7968,1037.1085 1601.4906,1036.6227 L 1602.7489,1035.7365 L 1603.9364,1036.4809 L 1605.5669,1035.1162 L 1606.2935,1036.9771 L 1608.3316,1036.3214 L 1609.0582,1037.5265 L 1610.1748,1036.8354 L 1606.1517,1031.9261 L 1606.1517,1029.5867 L 1607.286,1028.8778 C 1607.9098,1028.4882 1608.4202,1027.9495 1608.4202,1027.6904 C 1608.4202,1027.4312 1608.7898,1026.8599 1609.2355,1026.4144 L 1610.033,1025.5991 L 1617.4943,1024.9433 L 1619.3729,1022.1963 L 1621.8009,1022.1963 L 1623.0947,1023.4901 L 1624.8669,1022.7989 L 1624.8669,1021.6292 L 1620.578,1021.6292 L 1618.0614,1019.8569 L 1618.0614,1017.0922 L 1620.4186,1017.0922 L 1621.2693,1017.9429 C 1621.7371,1018.4108 1622.3276,1018.7936 1622.5984,1018.7936 L 1623.0947,1018.7936 L 1623.4491,1014.5401 L 1626.4797,1014.1856 L 1627.738,1012.6792 L 1626.0012,1010.9424 L 1626.0012,1008.5144 L 1630.8218,1008.8688 L 1631.1763,1011.4209 L 1632.0447,1011.4209 L 1631.5662,1008.1954 L 1635.8905,1004.1191 L 1633.941,1001.9746 L 1633.941,999.67067 L 1636.3513,996.60466 L 1633.4802,993.55634 L 1633.0903,988.45218 L 1635.926,988.45218 L 1635.8374,991.00426 L 1637.2729,991.00426 L 1638.159,989.74592 C 1638.6446,989.05266 1639.0452,988.30938 1639.0452,988.09773 L 1639.0452,987.70783 L 1635.0753,987.83186 L 1633.9588,986.71535 L 1634.6854,980.68961 L 1636.2804,980.08704 L 1637.4679,981.25674 C 1637.5764,982.59346 1637.6855,983.93024 1637.84,985.26209 L 1639.5768,984.09238 L 1638.035,981.64664 L 1638.4958,978.91733 L 1636.6349,976.86149 L 1638.2122,975.14235 L 1640.7465,975.12466 L 1640.7465,976.17027 C 1640.7465,976.74217 1640.8978,977.34939 1641.0833,977.53496 L 1641.42,977.87166 L 1644.9469,975.74493 L 1646.5774,977.10961 L 1645.8153,974.71701 L 1648.6864,972.83839 L 1648.6864,970.65852 L 1647.623,970.32176 C 1647.0403,970.13682 1646.1494,969.52205 1645.638,968.95714 L 1644.7165,967.94691 L 1645.4431,964.24288 L 1650.246,964.96948 L 1651.3093,958.14624 L 1655.6514,958.39436 L 1656.1477,956.97654 L 1654.3931,956.97654 L 1653.1348,954.61938 L 1655.0311,952.5104 L 1654.2867,951.30525 L 1650.9726,951.30525 L 1650.2814,948.5405 L 1651.0258,947.33535 L 1653.2057,947.33535 L 1653.8792,942.39067 L 1652.036,941.68176 L 1651.2207,943.64902 L 1649.2535,944.00347 L 1649.2535,939.92723 L 1651.6283,938.84612 L 1651.5929,937.12704 L 1653.8614,935.92189 L 1655.5096,937.28651 L 1654.8539,939.39555 L 1655.935,939.39555 L 1656.5021,937.16248 L 1654.8716,935.81555 L 1655.2083,931.17219 L 1659.3555,930.83542 L 1661.1455,933.36981 L 1662.0139,932.50136 L 1658.8061,929.73661 L 1659.1782,927.82255 C 1660.6046,926.99619 1662.2726,926.42906 1663.4317,925.23503 L 1663.4317,924.88057 L 1659.639,925.32367 L 1658.6997,923.33872 C 1658.1828,922.24938 1657.7604,920.95905 1657.7604,920.46763 L 1657.7604,919.58149 L 1660.5429,917.75602 L 1662.581,918.39404 C 1663.5227,917.93081 1664.5205,917.49934 1665.1508,916.7104 L 1666.2673,913.94565 L 1669.3865,913.5912 L 1669.3865,912.51008 L 1666.5509,911.83661 L 1666.5509,908.52248 L 1669.7233,907.40592 L 1671.9386,908.7883 L 1671.9386,907.03377 L 1667.9687,904.69436 L 1667.9687,902.93978 L 1635.3057,906.3603 L 1637.5565,899.53701 L 1641.3137,895.90387 L 1641.3137,893.84803 L 1643.724,891.41998 C 1645.0496,890.079 1646.5632,888.47953 1647.0913,887.85773 C 1647.6194,887.23576 1648.1,886.38671 1648.1547,885.97912 L 1648.1192,879.97107 L 1644.1493,879.22671 L 1644.1493,875.87714 L 1643.0151,875.87714 L 1643.0151,874.158 z \"},\"sc1\":{\"name\":\"SC-1\",\"path\":\"M 2184.3367,1035.2762 L 2183.1998,1036.3123 L 2177.5339,1033.2447 L 2177.923,1027.8288 L 2176.5164,1026.134 L 2177.352,1023.5525 C 2179.8084,1023.221 2180.4453,1022.7792 2181.413,1021.5656 L 2178.2656,1018.3631 L 2176.289,1018.5869 L 2173.0993,1015.5025 C 2173.5617,1014.1724 2173.1831,1012.8889 2169.7887,1009.4549 L 2170.4999,1004.7123 L 2168.2613,1002.6267 L 2170.1362,998.83484 C 2171.1674,996.74928 2172.65,994.22669 2173.4308,993.22894 L 2174.8505,991.41492 L 2179.652,989.7842 L 2184.0558,995.76968 L 2184.0558,998.2448 L 2189.7046,1005.4674 L 2189.7271,1012.4686 L 2185.7572,1013.7787 L 2185.7572,1016.4623 C 2188.5496,1017.4951 2190.0159,1019.65 2191.3595,1021.9086 L 2192.4896,1019.3843 C 2193.1335,1018.2065 2193.171,1017.3043 2193.0981,1016.0162 L 2195.3984,1014.7851 L 2195.3984,1012.507 L 2198.2341,1009.4489 L 2198.1789,1007.459 C 2198.1789,1006.8801 2199.5758,1005.8945 2200.0026,1005.0666 C 2200.4294,1004.2386 2200.6469,1002.4577 2201.6989,1000.1653 L 2203.6117,995.99749 L 2206.2369,994.38815 L 2208.3795,995.04659 L 2209.5854,990.56848 L 2213.1786,989.08998 L 2214.631,982.79944 L 2212.9794,981.87519 L 2211.5616,979.66305 L 2210.1438,978.90423 L 2210.1438,976.72929 L 2213.6926,971.78762 L 2212.9632,969.88694 L 2215.4426,957.54503 L 2217.5973,956.77793 L 2217.6583,955.79028 L 2213.0523,951.84777 L 2211.8889,946.20053 L 2208.4424,945.04659 L 2207.6051,943.14626 L 2206.5947,942.37825 L 2206.5768,940.50758 L 2207.9192,940.13339 C 2208.3239,939.41206 2207.6459,938.70105 2208.2321,938.0142 L 2210.2903,936.04864 L 2209.6831,933.72676 L 2210.7109,931.65113 L 2211.537,928.4236 C 2211.9913,927.44071 2212.9095,925.15132 2213.5774,923.33617 L 2214.7918,920.03576 L 2246.4363,940.56854 C 2246.4384,940.74503 2245.3592,941.49693 2244.0381,942.23936 L 2241.6363,943.5893 L 2238.7183,946.57801 C 2237.1135,948.22178 2234.8667,950.97337 2233.7255,952.69268 C 2232.5843,954.41193 2230.7525,957.80211 2229.6547,960.22642 C 2228.557,962.65066 2227.1271,965.64085 2226.4771,966.87124 C 2225.8271,968.10162 2224.9518,970.39849 2224.5318,971.97539 L 2223.7683,974.84246 L 2223.7616,979.84209 L 2223.7549,984.84179 L 2224.7837,986.76424 L 2224.1876,989.88243 L 2217.9617,996.10836 L 2218.6198,997.82359 L 2217.9418,1001.2139 L 2214.6062,1001.2139 L 2212.3179,1002.4386 L 2210.1242,1000.4533 L 2206.9722,1003.4732 L 2205.5134,1007.5073 L 2206.8915,1009.1678 L 2208.4424,1007.8806 L 2208.4424,1008.7808 L 2208.4424,1009.6809 L 2207.2586,1010.3145 C 2206.6075,1010.6629 2205.3432,1011.7565 2204.4489,1012.7447 L 2202.8229,1014.5415 L 2202.1388,1017.3771 L 2199.8144,1019.0785 C 2198.536,1020.0143 2197.0509,1021.0183 2196.5141,1021.3096 L 2195.5381,1021.8394 L 2195.4411,1027.0183 L 2190.8438,1030.9882 L 2190.8614,1032.406 L 2189.9825,1032.406 C 2189.4991,1032.406 2188.2869,1032.8187 2187.2886,1033.3231 C 2186.2904,1033.8274 2184.9621,1034.7064 2184.3367,1035.2762 z \"},\"nm1\":{\"name\":\"NM-1\",\"path\":\"M 830.17406,1027.1754 L 830.7142,1015.9593 L 829.19361,1015.9593 C 828.35732,1015.9593 827.48548,1015.7679 827.25619,1015.5339 C 827.0269,1015.3 824.11327,1013.9519 820.78145,1012.5381 L 814.72361,1009.9675 L 814.9322,1003.7476 L 815.14079,997.5276 L 815.63396,996.58583 C 815.90516,996.06782 817.01282,995.09661 818.09536,994.42757 L 820.06363,993.21107 L 829.75252,993.99723 L 830.44101,989.87137 L 832.87173,989.84715 L 835.99093,985.43665 L 835.99093,983.19626 L 832.38071,980.90223 L 831.0623,981.23315 C 830.43846,981.2801 829.15318,980.94357 827.38096,980.48533 L 824.1587,979.65205 L 821.30207,980.95367 L 820.17031,984.20008 L 818.40643,984.24256 L 816.6515,982.59726 L 807.50775,981.26706 L 807.42307,966.44907 L 817.84282,967.34036 L 818.56488,969.23344 L 820.69825,969.22822 L 820.06273,967.2739 L 826.39115,966.48321 L 824.72594,963.94179 L 827.20044,960.41164 L 830.26787,961.13354 L 830.23497,959.87911 L 838.14869,959.12613 L 838.91255,954.03246 L 842.74056,954.70939 L 842.10328,968.03691 L 846.76638,969.93764 L 846.76638,973.42463 L 844.49786,973.42463 L 844.49786,980.23018 L 889.20984,982.80874 L 888.01677,1008.8702 L 886.74918,1009.6794 L 885.70748,1030.7046 L 830.17406,1027.1754 z \"},\"ca26\":{\"name\":\"CA-26\",\"path\":\"M 256.94675,968.32048 L 256.41376,968.32048 L 257.05484,965.11518 L 254.2209,963.25834 L 253.49792,964.12945 C 253.10031,964.60862 251.77612,965.51018 250.55532,966.13295 C 249.33452,966.75577 248.2124,967.1421 248.06177,966.99141 C 247.91108,966.84078 248.23678,966.03228 248.78554,965.19486 L 249.78323,963.67218 L 248.4456,961.5303 L 248.4456,958.81761 L 245.89352,957.11072 L 240.71344,961.76855 L 239.73213,960.26833 L 237.01924,960.73309 L 235.84092,959.45801 L 239.37154,957.5617 L 239.37154,956.05586 L 237.78092,954.53193 C 236.90606,953.69377 235.91648,953.008 235.58182,953.008 C 235.24721,953.008 234.63398,953.41701 234.21906,953.91694 L 233.46473,954.82582 L 231.43174,952.3152 L 231.43174,949.65661 L 235.45807,948.90125 L 237.84018,946.90927 C 239.1503,945.81369 240.81228,944.64784 241.53338,944.31857 L 242.84458,943.71985 L 245.35271,946.86537 L 252.87748,947.1106 L 254.48739,948.44664 L 257.93752,947.1444 L 262.81827,949.58986 L 263.19095,944.56391 L 268.91498,946.94273 L 270.31084,949.39913 L 271.84756,949.34225 L 272.83213,950.14429 L 272.83213,951.74143 L 270.47878,952.35688 L 271.5925,954.4379 L 271.05067,957.27213 L 274.67597,960.9478 L 270.88921,960.9478 L 264.9394,967.2397 L 261.3674,965.3925 L 258.68664,966.06535 L 258.08322,967.19291 C 257.75133,967.81307 257.2399,968.32048 256.94675,968.32048 z \"},\"ok1\":{\"name\":\"OK-1\",\"path\":\"M 1363.9877,863.45345 L 1353.6376,863.96743 L 1356.1188,916.14327 L 1352.2021,916.14327 C 1350.0456,916.14327 1346.7112,916.31506 1344.794,916.51542 L 1341.3026,916.86988 L 1341.3026,921.24743 L 1354.9137,921.24743 L 1354.9137,926.77694 L 1351.6172,927.43265 L 1350.8552,930.85318 L 1349.207,932.25325 C 1348.2941,933.02137 1347.541,933.92384 1347.541,934.25595 L 1347.541,934.85852 L 1374.267,933.74196 C 1374.4901,933.9763 1374.7477,935.34058 1374.8518,936.27634 L 1375.0468,937.97773 L 1377.3153,939.30691 L 1377.5988,938.82842 C 1377.7623,938.5638 1379.1487,937.92533 1380.6649,937.4106 L 1383.4119,936.47127 L 1385.3614,936.98525 L 1388.0907,935.4611 L 1392.5392,935.42565 L 1394.6127,933.54704 L 1394.6127,932.02288 L 1394.0101,932.02288 C 1393.6759,932.02288 1393.0499,931.68288 1392.6277,931.26077 L 1391.8657,930.48097 L 1392.486,925.5009 L 1393.1594,924.93377 C 1393.5361,924.62185 1394.1397,923.49508 1394.5064,922.43483 C 1394.873,921.37453 1395.1798,920.32256 1395.1798,920.09542 L 1395.1798,919.68783 L 1378.1128,920.09542 L 1376.9077,916.7104 L 1376.1633,916.7104 C 1375.7541,916.7104 1374.998,916.30718 1374.4974,915.80651 L 1373.5935,914.88493 L 1369.8186,915.59384 L 1366.593,911.37582 L 1366.6639,901.68149 L 1368.1526,893.51127 L 1373.1504,890.71107 L 1370.7933,888.35397 L 1363.9877,888.35397 L 1362.7649,866.23595 L 1363.9877,866.23595 L 1363.9877,863.45345 z \"},\"ky1\":{\"name\":\"KY-1\",\"path\":\"M 1757.9295,767.28969 L 1757.0434,770.63932 L 1759.2764,773.01417 L 1759.2764,775.42447 L 1757.4865,777.19674 L 1754.2964,777.19674 L 1753.6052,775.40672 L 1753.9596,773.98889 L 1754.3141,772.55338 L 1753.2507,773.08506 C 1752.664,773.37231 1751.33,774.03534 1750.291,774.55602 C 1749.2519,775.0767 1748.0104,775.49536 1747.5263,775.49536 L 1746.6401,775.49536 L 1743.9108,772.37615 L 1743.0956,773.47496 C 1742.6405,774.08048 1742.2626,774.86959 1742.2626,775.22949 C 1742.2626,775.58944 1742.773,776.3486 1743.3968,776.91318 L 1744.5311,777.9411 L 1744.4957,779.74882 L 1742.2626,782.42493 L 1738.4345,781.09575 L 1737.6901,785.03021 L 1734.9431,786.82018 L 1733.1176,790.68374 L 1735.333,794.81318 L 1739.4269,798.67674 L 1739.4269,800.78572 L 1738.7535,801.47694 L 1727.7036,804.68768 L 1725.4289,807.37882 L 1722.6435,806.70513 L 1720.1446,808.45971 L 1719.3291,815.72877 L 1719.8964,816.77166 C 1720.4471,817.62412 1721.4837,818.86114 1722.2004,819.53642 L 1723.4942,820.77701 L 1724.2386,823.71899 L 1723.4764,828.8586 L 1718.4255,829.93971 L 1714.172,827.12176 L 1708.483,826.0407 L 1702.4041,822.90374 L 1695.3859,822.44295 L 1691.859,826.8914 L 1691.1501,829.74473 L 1688.3854,832.95258 L 1688.3854,834.13998 C 1688.3901,834.79331 1688.5929,835.63051 1688.8285,836.0009 C 1689.0639,836.37129 1689.954,836.95022 1690.8134,837.27694 L 1692.3907,837.86176 L 1693.0465,839.59859 L 1692.2667,845.85476 L 1689.945,848.01694 L 1690.6184,849.78922 L 1693.4895,850.81714 L 1692.7984,852.62486 L 1690.0513,852.62486 L 1689.431,854.25536 L 1691.9831,857.71127 L 1691.3628,859.00506 C 1691.0199,859.71153 1690.5757,861.04848 1690.3703,861.98248 C 1690.165,862.91649 1689.7384,864.00112 1689.4133,864.39278 L 1688.8107,865.10169 L 1686.2055,865.10169 L 1683.4053,861.53939 L 1681.7393,862.17741 L 1681.0127,868.84117 L 1746.4452,861.14949 L 1747.5972,859.99753 L 1744.4071,849.78922 L 1756.4408,849.78922 L 1756.4408,851.56149 L 1817.7793,841.92031 L 1819.3035,842.50513 L 1821.4479,841.35318 L 1827.3673,840.7683 L 1869.0159,836.70981 L 1885.5158,833.34248 L 1889.9465,832.97028 L 1894.0642,832.4505 L 1894.9443,831.07397 L 1893.4702,826.7613 L 1893.8484,824.57297 L 1892.8676,822.72016 L 1889.2732,819.12859 L 1894.2531,813.82968 L 1894.2531,811.22447 L 1897.077,811.70573 L 1899.2155,808.65464 L 1895.4228,805.83674 L 1895.3873,801.19338 L 1905.3121,789.00011 L 1905.0817,788.34434 C 1904.9535,787.9854 1904.6982,786.54019 1904.5146,785.13655 L 1904.1778,782.58447 L 1899.8889,782.01734 L 1897.6559,778.61457 L 1897.6559,776.18652 L 1896.0431,775.56625 L 1895.6709,773.20909 L 1891.382,776.13338 L 1885.0727,776.34605 L 1885.8348,784.56942 L 1884.222,784.56942 L 1883.1409,785.75681 C 1882.5509,786.40879 1882.0728,787.23821 1882.0598,787.59998 C 1882.0468,787.96181 1881.8311,789.08518 1881.5813,790.09892 L 1880.53,791.79447 L 1879.7913,794.49417 L 1875.8214,795.77021 L 1875.1479,797.06394 C 1874.7824,797.77875 1873.5772,799.45983 1872.4541,800.80348 L 1870.416,803.24922 L 1865.4004,806.68744 L 1859.6051,806.68744 L 1856.6631,803.74546 L 1854.0933,804.91516 L 1853.2958,807.39635 L 1854.4123,808.10526 L 1857.6201,824.44565 L 1856.2378,825.33179 C 1855.4721,825.81266 1853.0623,827.9251 1850.9032,830.04605 L 1846.9865,833.90961 L 1845.1079,832.20823 L 1843.2469,832.20823 L 1842.7153,831.21575 C 1842.4231,830.66989 1842.1221,829.96807 1842.0418,829.65615 C 1841.9614,829.34423 1841.7769,828.64241 1841.6342,828.09654 L 1841.3861,827.10407 L 1840.2518,827.10407 L 1840.4999,825.40268 C 1840.6373,824.46692 1840.6198,823.7013 1840.4645,823.7013 C 1840.3092,823.7013 1839.7234,824.56719 1839.153,825.08345 L 1835.9806,824.26843 L 1834.6691,822.69107 L 1831.5322,825.68625 L 1831.9398,826.53694 L 1828.9447,829.93971 C 1827.2973,831.81124 1825.749,833.34248 1825.5065,833.34248 L 1825.0634,833.34248 L 1825.0634,831.6411 L 1815.9716,831.6411 L 1810.1408,821.71635 L 1811.5409,811.82704 L 1810.8143,809.52308 L 1811.8422,809.45219 C 1812.4091,809.41192 1813.5081,809.31131 1814.2879,809.23951 C 1815.0677,809.16766 1816.0953,808.95079 1816.5742,808.74328 L 1817.4426,808.37107 L 1819.7465,810.51555 L 1821.9442,809.27184 L 1816.3615,798.21595 L 1810.6016,797.09939 L 1800.3933,798.00328 L 1796.6715,794.52961 L 1792.8788,794.84862 L 1785.6687,792.70119 L 1787.562,789.30137 L 1782.8123,789.26592 C 1778.386,787.76621 1773.7638,786.63025 1769.6265,784.40988 L 1768.9176,783.86051 L 1768.9176,781.39701 L 1769.5911,780.70585 C 1769.9654,780.33149 1770.6908,780.03239 1771.2039,780.03239 L 1772.1432,780.03239 L 1774.2877,777.67523 L 1772.3027,776.55872 L 1771.7533,775.49536 L 1771.7178,770.67476 L 1769.5734,769.68229 C 1768.3875,769.13643 1766.9304,768.68981 1766.3479,768.68981 L 1765.3022,768.68981 L 1762.2362,771.61404 L 1758.5853,769.73543 L 1757.9295,767.28969 z M 1673.516,865.58018 L 1672.3285,866.74988 L 1674.2249,869.63872 L 1676.5465,869.63872 L 1676.1921,865.95238 L 1673.516,865.58018 z \"},\"ks1\":{\"name\":\"KS-1\",\"path\":\"M 1355.4808,675.53892 C 1255.0691,680.62681 1160.3765,680.46194 1060.6802,679.34929 C 1059.5666,741.6321 1058.4885,799.92579 1056.5685,866.2005 C 1117.8383,866.87147 1175.5329,867.53405 1237.518,866.05872 L 1237.518,842.98367 L 1232.0063,842.98367 L 1231.2796,820.86565 L 1268.338,819.71364 C 1268.9967,810.70668 1267.5329,801.59785 1267.9303,792.58011 C 1276.8273,791.60408 1285.8771,792.3646 1294.798,791.78256 L 1294.798,797.20572 L 1325.8483,795.80565 L 1326.6459,804.41892 L 1331.5196,803.63912 L 1332.2994,809.50533 L 1333.3805,810.1611 L 1334.0717,806.68744 L 1352.7338,805.94308 L 1350.1994,732.41127 L 1349.012,732.05682 C 1348.3565,731.85475 1346.7313,731.04182 1345.3966,730.26684 L 1342.5964,728.79583 L 1344.2978,727.8211 L 1344.1914,726.77543 L 1342.5077,726.13741 L 1342.1356,727.16533 C 1339.527,726.44513 1338.1267,726.32621 1336.1275,726.36783 L 1335.2237,727.98058 L 1333.2565,726.6514 L 1331.307,728.9908 L 1329.2334,728.9908 L 1329.8005,736.93061 L 1323.7216,736.93061 L 1323.7216,735.22922 L 1314.0804,735.22922 L 1314.0804,734.37853 L 1307.1154,734.76843 L 1307.8066,731.31246 L 1306.7077,730.6213 L 1306.7077,726.72229 L 1304.2089,726.72229 L 1301.7277,726.72229 L 1301.32,704.32071 L 1335.206,702.83199 L 1334.3376,686.1017 L 1350.4653,685.19781 L 1350.0931,679.93417 L 1355.4808,680.00506 L 1355.4808,675.53892 z \"},\"nc1\":{\"name\":\"NC-1\",\"path\":\"M 2306.8392,753.43048 L 2215.0884,776.25741 L 2212.8554,778.04744 L 2213.5111,784.44533 L 2207.2372,785.22513 L 2208.531,791.97754 L 2215.5138,790.98506 L 2216.2581,794.97266 L 2219.3419,788.45068 L 2224.5879,784.92387 L 2226.6614,787.58229 L 2225.8993,790.38249 L 2234.1581,790.02803 L 2235.7886,791.10909 L 2245.3766,791.35721 C 2245.5667,792.05569 2246.1182,792.69665 2247.5743,793.16493 L 2255.4255,791.37496 L 2256.7547,791.37496 L 2254.3976,811.64981 L 2251.8277,811.57892 L 2250.7644,812.71318 L 2253.8836,818.68572 L 2250.9239,822.56704 L 2254.6988,822.56704 L 2257.3041,821.07833 L 2260.8841,825.63305 L 2258.775,827.35219 L 2260.6182,833.9982 C 2259.4252,834.54894 2258.2515,835.06049 2257.4636,835.02612 L 2259.0055,838.358 L 2257.0028,839.42137 L 2254.1317,838.46434 L 2251.296,840.71516 L 2252.5012,845.74843 L 2250.2327,846.2978 L 2250.2681,848.22961 L 2253.7595,851.65008 C 2254.2483,849.81831 2254.4804,847.70133 2254.557,845.41166 L 2257.9067,844.18882 L 2257.7826,841.49496 L 2261.9829,839.5809 L 2263.5602,848.19417 L 2268.1859,847.39661 L 2268.7884,845.85476 L 2265.7933,842.70011 L 2266.4313,837.87951 C 2267.3613,837.97371 2268.5265,838.12088 2268.753,839.22644 L 2270.9152,839.22644 L 2271.7481,841.49496 L 2274.4243,841.49496 L 2275.1863,844.25971 L 2281.3893,844.25971 L 2289.7899,847.5207 C 2288.4823,848.53649 2287.8947,849.6404 2288.3012,851.34882 L 2286.7416,851.34882 L 2285.4833,854.78704 L 2286.7061,857.091 L 2286.7061,861.04315 L 2290.1798,861.80526 L 2292.1825,859.99753 L 2295.4966,860.01523 L 2301.5224,865.22572 L 2300.9198,866.80308 L 2302.6921,867.0512 L 2312.4042,863.31166 L 2312.7764,861.98248 L 2312.2447,860.52922 L 2313.9638,858.33159 L 2316.9057,858.29615 C 2316.3428,856.47226 2316.1343,854.5996 2316.3032,853.05021 L 2313.308,853.19199 L 2311.713,856.52387 L 2306.0594,855.88585 L 2306.662,858.22526 L 2303.6137,859.78486 L 2302.0186,851.8805 C 2301.1665,851.54272 2300.9089,850.46438 2300.973,849.02711 L 2303.7909,845.32308 C 2302.529,844.77835 2301.5624,844.45123 2297.8183,840.71516 L 2294.3624,840.69741 L 2285.4124,836.12493 L 2286.9543,833.30704 L 2283.8705,832.031 C 2284.257,830.27908 2283.8462,828.96612 2283.2325,827.75978 L 2280.5386,828.8586 L 2280.7513,831.92466 L 2277.9511,832.06645 L 2274.8142,827.91932 L 2274.8319,825.75714 L 2272.2621,822.03536 L 2269.0366,825.2609 L 2264.4286,821.87582 L 2265.297,821.07833 L 2266.8035,820.86565 L 2269.7809,816.94889 L 2269.2315,816.02731 L 2270.2594,814.09555 C 2272.1043,814.67737 2274.9341,816.88878 2277.5612,818.77437 L 2278.3055,823.13417 L 2280.5032,823.13417 L 2281.1589,819.85543 L 2283.7287,818.68572 L 2284.9693,819.92632 L 2287.1847,817.94137 L 2289.4709,819.16427 L 2288.8506,822.95694 L 2292.2356,824.35701 L 2292.1471,829.08902 C 2300.2575,831.48451 2306.3856,834.33734 2312.1383,837.27694 L 2321.6554,833.67919 L 2321.6554,830.50684 L 2320.344,826.8205 L 2307.4063,823.68355 L 2303.1883,823.7013 L 2301.3983,827.13951 L 2296.3119,823.54176 L 2298.7399,820.95424 L 2296.7372,817.56922 L 2294.5822,819.11634 C 2292.5526,818.04878 2290.6948,816.3622 2288.9747,815.67285 L 2288.9215,813.21282 L 2286.9638,812.59544 L 2288.2835,809.36355 L 2298.1558,811.94897 L 2304.3758,807.57357 L 2326.1518,802.51513 L 2324.3316,797.32981 L 2325.8203,792.29655 L 2323.9772,790.2584 L 2323.8354,788.87602 C 2323.751,788.10717 2323.5076,787.20305 2323.3037,786.87338 L 2322.9315,786.2708 L 2320.8934,786.2708 L 2318.4122,788.25575 C 2317.0426,789.34447 2315.6214,790.23764 2315.2576,790.2407 C 2314.8935,790.24371 2313.4595,790.73263 2312.0851,791.32176 L 2309.5863,792.38513 L 2307.6899,791.32176 L 2307.6899,789.49635 C 2307.6942,788.49809 2307.8454,787.14112 2308.0267,786.46572 L 2308.3634,785.22513 L 2311.1459,784.53397 L 2312.7764,786.16447 L 2314.0524,785.84546 C 2314.7597,785.66982 2316.0294,785.04858 2316.8703,784.46308 L 2318.4122,783.39971 L 2319.7414,779.71338 L 2321.1947,779.02216 C 2321.9983,778.64292 2322.954,778.331 2323.3214,778.331 C 2323.6889,778.331 2324.3154,777.94813 2324.7038,777.48031 L 2325.4127,776.62961 L 2328.0711,776.62961 L 2331.4562,773.31543 L 2335.3374,771.91536 L 2335.2488,770.44434 C 2335.204,769.6351 2334.9816,768.65437 2334.7349,768.26447 L 2334.2741,767.55556 L 2332.6436,767.55556 L 2330.4637,765.37563 L 2325.2178,764.57813 L 2327.0964,762.50454 L 2324.1366,761.76018 L 2324.1366,760.75001 L 2322.4352,760.75001 L 2322.4352,759.52711 L 2321.0174,760.0411 C 2319.0174,758.2327 2317.919,758.17286 2310.8091,756.15978 L 2306.8392,753.43048 z \"},\"nv1\":{\"name\":\"NV-1\",\"path\":\"M 406.83586,863.67049 L 405.57933,864.03282 L 403.55167,859.71533 L 396.93481,859.37222 C 397.18101,858.59485 397.58089,857.88816 397.96761,857.17754 L 402.1879,855.97171 L 403.45775,853.18467 L 399.65136,847.88435 L 400.75266,848.34548 C 401.35836,848.5991 404.0867,849.08116 406.81561,849.41678 L 411.77725,850.02701 L 412.37256,851.90262 L 411.31334,854.39113 L 410.25411,856.87969 L 410.04841,858.25872 L 411.35633,860.76769 L 409.51015,862.28272 C 408.73035,862.84673 407.5269,863.47125 406.83586,863.67049 z \"},\"mo1\":{\"name\":\"MO-1\",\"path\":\"M 1614.0915,740.80733 L 1613.9482,739.46936 L 1616.6416,735.70532 L 1613.5977,733.2834 L 1614.7918,730.06268 L 1619.1443,730.12642 L 1619.5178,728.13523 C 1619.7233,727.04005 1620.0726,726.03198 1620.2941,725.89508 L 1620.6969,725.64616 L 1626.2164,729.5703 L 1629.9711,728.86592 L 1629.9711,729.40827 C 1629.9711,729.70658 1629.5245,730.35696 1628.9786,730.85365 C 1628.4328,731.35029 1627.496,732.67204 1626.897,733.79092 L 1625.8078,735.82522 L 1627.0388,738.01541 C 1627.7158,739.21999 1628.2697,740.62233 1628.2697,741.13167 L 1628.2697,742.05773 L 1624.7456,741.6583 L 1624.7071,740.636 L 1620.8859,739.76761 L 1618.5752,742.30217 L 1614.0915,740.80733 z \"},\"va1\":{\"name\":\"VA-1\",\"path\":\"M 2205.3232,632.57892 L 2203.4269,635.91081 L 2206.2448,638.94137 L 2209.2931,638.3388 C 2212.3697,640.09735 2213.434,642.11134 2213.0503,644.96711 L 2217.0202,647.82051 L 2221.6281,653.4918 L 2224.0562,651.89675 C 2225.6136,652.66453 2227.4168,652.80132 2228.3451,655.29952 L 2227.902,656.45147 L 2226.1475,655.22863 L 2223.6663,658.56051 C 2223.9007,659.95871 2224.3489,661.27257 2225.0663,662.61899 L 2227.069,663.25701 L 2231.0566,661.59107 L 2233.0061,664.5685 L 2230.3655,666.5889 L 2230.844,668.00672 L 2233.9809,667.33325 L 2237.4723,668.71563 L 2236.1077,671.30315 L 2239.4927,673.94387 L 2240.237,678.07325 L 2238.5711,679.49107 L 2242.1865,679.65061 L 2242.8778,678.51635 L 2250.853,678.51635 L 2253.4405,680.62533 L 2249.7896,686.56249 L 2251.3669,688.4588 L 2250.3036,688.4411 L 2251.296,689.48672 L 2252.2176,688.68922 L 2252.8202,691.04632 L 2255.0001,689.30949 L 2255.709,689.73484 L 2256.0812,692.09199 L 2257.9421,691.38308 L 2259.3422,693.27939 L 2260.7423,691.578 L 2262.8867,692.73001 L 2262.8867,694.27187 C 2265.738,696.20793 2264.9749,694.25854 2268.9657,696.85939 L 2269.9404,696.89484 L 2269.4087,695.24665 L 2271.057,695.24665 L 2271.1987,697.55061 L 2271.8545,698.08229 C 2272.0351,696.94741 2272.3793,695.98828 2273.1482,695.44157 L 2274.8142,696.82394 L 2274.5129,694.11239 L 2276.2143,694.11239 L 2276.5865,696.73536 L 2278.022,695.53021 C 2281.0598,699.29935 2280.5922,696.42469 2283.2502,699.62414 L 2281.4779,702.33575 L 2277.7739,702.33575 C 2276.8329,703.33929 2276.2247,704.78791 2275.7889,706.46513 L 2276.7814,708.6982 L 2278.6778,708.48553 L 2279.9538,715.8582 L 2283.2325,715.75186 L 2284.7389,715.87595 L 2286.7061,716.42533 L 2286.7061,715.00751 C 2288.1426,714.24432 2289.5767,713.49696 2291.2609,713.14665 L 2293.4762,715.34427 L 2294.0788,714.35179 L 2293.3877,712.82764 L 2296.0461,712.86308 L 2299.7501,716.74434 L 2299.7501,719.68632 L 2298.4209,721.01556 C 2300.1517,721.72095 2301.8003,722.89065 2303.6846,722.75239 C 2304.7567,720.69558 2305.6466,719.82918 2306.4671,719.36731 C 2306.7187,719.61878 2306.7288,719.77088 2306.9482,720.06255 L 2306.801,718.20305 L 2308.8677,715.2474 C 2308.4602,714.98443 2308.2147,714.85796 2307.7253,714.61761 L 2305.7758,713.66058 L 2305.2087,714.24546 C 2304.892,714.5622 2304.4303,714.81259 2304.1808,714.81259 L 2303.72,714.81259 L 2303.72,713.53655 C 2303.7152,712.83473 2303.4667,711.90265 2303.1883,711.46295 L 2302.6921,710.66546 L 2299.2007,712.10097 L 2297.4816,711.44526 L 2297.4816,709.67298 L 2298.4741,709.35397 C 2299.0199,709.17765 2300.2817,708.62833 2301.2743,708.13107 L 2303.082,707.22724 L 2300.7426,703.9485 L 2298.0487,702.72566 L 2298.0487,701.2015 L 2299.183,701.2015 L 2299.183,699.50011 L 2299.9982,699.50011 C 2300.4477,699.50011 2300.9752,699.75532 2301.1679,700.06724 L 2301.5224,700.63437 L 2303.5428,700.63437 L 2304.5707,701.76863 C 2305.1353,702.39247 2305.8931,702.90288 2306.2544,702.90288 L 2306.9101,702.90288 L 2307.1582,698.02909 L 2306.2366,695.79602 C 2305.7251,694.56184 2305.0332,693.23011 2304.7125,692.83635 L 2304.1453,692.10969 L 2302.6566,693.35028 L 2300.1223,692.97813 L 2299.7324,691.77298 L 2300.8667,690.44375 C 2301.4978,689.71606 2302.0186,689.01146 2302.0186,688.88414 C 2302.0186,688.75682 2300.8322,688.84325 2299.3779,689.06137 L 2296.7372,689.45127 L 2295.2663,687.46632 L 2293.4585,688.08665 C 2292.4593,688.43503 2291.1647,688.72467 2290.5875,688.72467 L 2289.5418,688.72467 L 2288.4075,687.59041 C 2287.7837,686.96657 2287.2733,686.25544 2287.2733,686.01305 C 2287.2733,685.77061 2286.5255,684.74977 2285.6073,683.74454 L 2283.9414,681.91912 L 2281.1589,681.91912 L 2280.5032,680.21774 L 2278.4296,680.21774 L 2274.1762,675.85793 L 2275.9661,674.36922 L 2279.1208,677.38209 L 2281.5311,677.38209 L 2281.8501,677.91378 C 2282.028,678.20165 2282.9705,678.60437 2283.9414,678.81761 L 2285.7137,679.20751 L 2287.4859,681.21021 C 2288.4609,682.31305 2289.395,683.73053 2289.5595,684.36486 L 2289.8608,685.51682 L 2290.552,685.74724 L 2291.2432,685.97761 L 2291.2432,684.18764 L 2292.0584,684.18764 C 2292.506,684.18764 2293.5907,684.47965 2294.4687,684.82566 C 2295.3468,685.17155 2296.8294,685.55776 2297.7651,685.69404 L 2299.4665,685.94216 L 2301.735,684.22308 L 2299.2539,684.18764 L 2298.5095,683.00018 L 2299.8742,681.36969 L 2297.9069,674.05021 L 2298.6158,672.20704 L 2299.6792,672.86276 L 2300.3172,671.83484 L 2299.6261,668.37892 L 2297.3576,667.47503 C 2296.1125,666.97693 2293.9154,666.42936 2292.4661,666.25219 L 2289.8253,665.93318 L 2286.7593,663.771 L 2284.4731,663.771 L 2283.2679,661.50249 L 2278.9081,659.28711 L 2278.2879,657.67437 L 2276.6928,657.95793 C 2275.8105,658.11718 2274.754,658.50924 2274.3534,658.82632 L 2273.6267,659.4112 L 2270.8797,657.94018 L 2267.3706,659.39345 L 2264.978,658.68454 C 2263.6686,658.2956 2262.029,657.75212 2261.3271,657.47939 L 2260.0511,656.98315 L 2260.0511,654.6615 L 2259.0586,654.30704 C 2258.5128,654.11348 2257.6195,653.57074 2257.0737,653.10189 L 2256.0812,652.2512 L 2256.0812,648.01543 L 2254.3798,647.35972 L 2254.3798,649.00791 L 2250.4099,650.67385 L 2250.4099,651.64863 L 2248.4073,652.60566 C 2247.3049,653.13127 2245.8453,653.56269 2245.164,653.56269 L 2243.9234,653.56269 L 2241.3181,650.53206 L 2240.0067,646.15457 L 2240.6801,641.77702 C 2241.0464,639.36978 2241.3379,637.06338 2241.3358,636.65516 L 2241.3358,635.91081 L 2239.9889,636.74375 L 2230.6136,637.06276 L 2228.2919,639.38447 L 2226.3069,639.41991 L 2220.5293,632.96883 L 2213.1389,636.7083 C 2213.1418,635.37067 2213.1881,633.895 2212.7845,633.69543 L 2210.6932,635.60949 L 2207.5208,632.57892 L 2205.3232,632.57892 z \"},\"co1\":{\"name\":\"CO-1\",\"path\":\"M 915.16029,697.66052 L 914.17365,696.87283 L 914.45727,696.21825 C 915.08111,695.74691 916.52219,695.66995 916.40167,695.41401 C 915.75356,694.03736 916.55865,694.13502 916.94856,693.74512 L 917.65747,693.03621 L 917.65747,686.94439 L 924.55523,687.22592 L 925.22727,685.67975 L 926.3735,685.6261 L 926.34503,686.94967 L 930.01276,686.9436 L 930.09165,684.06746 L 932.62275,683.94593 L 933.42098,680.72322 L 935.06991,680.05253 C 936.59497,680.36995 937.2263,680.64898 938.73089,681.04903 L 939.54971,681.36543 L 938.42793,682.37214 C 938.14516,682.90354 938.45186,684.30327 938.26777,684.88866 L 936.47474,685.54784 L 931.99,684.73752 L 930.57371,686.44407 L 931.48826,686.79507 C 931.99125,686.98806 932.40281,687.37388 932.40281,687.65245 L 932.40281,688.1589 L 927.93962,688.1589 L 924.91144,689.31023 L 925.84862,692.52086 L 923.96292,694.08477 L 925.92864,694.16031 L 926.15254,695.32962 L 925.52496,696.17436 L 923.88465,697.46474 L 923.66166,695.74294 L 920.07326,694.39221 L 917.91301,695.21449 L 918.42059,696.83052 L 915.16029,697.66052 z \"},\"oh1\":{\"name\":\"OH-1\",\"path\":\"M 1891.6786,676.97523 L 1889.6469,678.28706 L 1886.4891,676.81632 L 1883.8281,674.51781 L 1882.4404,674.51781 L 1880.1527,676.95748 L 1877.005,655.6415 L 1885.9153,653.96575 L 1885.1071,655.27343 L 1886.8596,655.94593 L 1886.3029,656.98622 C 1885.9967,657.55839 1885.7461,658.4261 1885.7461,658.91451 L 1885.7461,659.80246 L 1887.4989,659.80246 L 1886.9005,663.80378 L 1894.9941,663.25554 L 1894.8202,665.91793 L 1897.5111,666.59332 L 1898.3083,669.97936 L 1896.661,672.42749 C 1895.8046,673.69145 1895.5895,674.15717 1895.1228,675.31287 C 1894.9428,675.75846 1894.819,676.25243 1893.9612,676.27659 C 1893.4622,676.29009 1892.3507,676.48461 1891.6786,676.97523 z \"},\"ne1\":{\"name\":\"NE-1\",\"path\":\"M 1292.5295,505.54207 L 1292.5295,510.06137 L 1290.6332,512.27672 L 1287.4254,511.6387 L 1287.4254,513.97811 L 1283.1719,514.33256 L 1282.8529,531.02741 L 1277.093,531.78949 L 1277.9614,548.059 L 1256.0738,548.07672 L 1256.8004,569.43266 L 1283.2782,568.91873 L 1284.0226,591.019 C 1282.4038,591.0575 1280.7391,590.87324 1279.1666,591.30256 L 1280.0527,634.12078 L 1301.4264,633.55365 L 1302.9151,676.93899 L 1376.4291,673.80209 L 1375.8266,672.82731 L 1374.7455,673.48308 L 1372.4947,672.77417 L 1372.4947,670.00942 L 1373.3454,670.00942 L 1373.3454,667.17378 L 1371.8921,667.17378 L 1371.5199,666.1813 C 1371.3163,665.63544 1370.671,664.84849 1370.0844,664.42672 L 1369.021,663.66467 L 1369.3755,660.22645 L 1365.4588,658.95041 C 1365.2692,657.97722 1365.0581,657.07026 1364.4131,656.36288 C 1364.1791,656.38126 1363.7963,656.37967 1363.5624,656.34513 C 1363.3285,656.3106 1362.5628,656.3237 1361.861,656.38058 L 1360.585,656.48692 L 1360.585,654.2184 L 1361.7724,653.8285 L 1359.9293,649.41556 L 1360.5141,647.20018 L 1358.3873,646.65081 L 1358.0329,643.63793 L 1360.1951,641.83021 L 1359.2558,640.32375 L 1358.3519,642.78724 L 1354.9137,642.78724 L 1354.5061,635.99939 L 1353.7794,635.1487 C 1353.3866,634.67537 1352.7751,634.28031 1352.4148,634.28031 L 1351.759,634.28031 L 1348.6753,630.75345 L 1348.6753,628.07734 L 1350.7843,626.96078 L 1349.893,621.44296 L 1352.0192,620.69338 L 1351.7465,618.79237 L 1350.3287,617.53584 L 1351.0963,614.68324 L 1349.0591,613.40374 L 1348.6753,610.39001 L 1347.6473,611.02803 L 1345.8396,610.33682 L 1345.8396,608.75952 L 1342.5609,608.75952 L 1341.9406,607.16447 L 1338.4315,606.40236 L 1336.7124,603.7617 L 1327.4788,602.94645 L 1324.6566,599.60635 L 1326.0433,597.41695 L 1323.1545,594.74078 L 1323.1545,592.82672 C 1322.1154,591.89657 1320.6889,591.07389 1320.0893,589.85667 L 1344.7555,588.17728 L 1344.9954,585.04645 L 1340.7709,584.33754 L 1340.0443,583.15009 L 1341.3026,581.87405 L 1341.2317,579.55239 L 1340.2038,582.10447 L 1339.4772,582.08672 C 1339.0772,582.07679 1338.3039,581.73896 1337.758,581.32467 L 1336.6648,579.95817 L 1337.37,577.67559 L 1335.525,576.2914 L 1336.1984,572.87088 L 1334.9401,571.34672 L 1335.5959,569.62764 L 1337.5454,569.62764 L 1335.4364,568.08573 C 1336.0756,566.66012 1336.8329,565.27903 1337.3327,563.79682 L 1335.0642,562.9284 L 1335.0642,561.01434 L 1333.8945,559.54335 L 1332.7248,558.05464 L 1333.0792,556.60137 C 1333.2676,555.80807 1333.555,554.7192 1333.7172,554.17335 L 1334.0008,553.18088 L 1331.6987,552.97942 L 1331.4972,551.47681 L 1329.9863,551.28365 L 1329.2334,549.21098 L 1327.2485,549.21098 L 1326.6104,546.76524 L 1327.7447,544.65623 L 1326.7699,544.28405 C 1326.2344,544.07856 1325.2826,543.39928 1324.6609,542.77761 L 1323.5267,541.64335 L 1323.1013,537.30127 L 1324.2887,537.30127 L 1324.2887,535.77712 L 1322.0202,533.72128 L 1322.6051,533.13642 L 1320.0707,530.44256 L 1319.7872,525.7283 L 1321.6835,523.6193 L 1320.4429,521.70524 L 1315.835,522.57365 L 1314.6121,520.28741 L 1310.2346,520.9786 L 1309.4194,518.30246 L 1305.9988,515.13009 L 1306.6369,511.21335 L 1301.6036,511.21335 L 1301.6036,509.0689 L 1296.8893,507.19029 C 1296.4259,507.75054 1295.8989,508.11438 1295.2411,508.37771 L 1293.6992,505.54207 L 1292.5295,505.54207 z \"},\"ca1\":{\"name\":\"CA-1\",\"path\":\"M 57.394124,414.74831 L 55.480064,421.55385 L 51.829173,427.10108 L 52.821649,428.32395 C 53.366943,428.99735 54.07472,429.54681 54.381253,429.54682 C 54.687786,429.54682 55.059679,429.87083 55.214223,430.27346 C 55.368709,430.67609 55.527505,434.75943 55.568678,439.34751 L 55.639569,447.69494 L 54.593926,447.69494 L 55.143332,449.7685 L 52.591253,455.56385 C 51.190785,458.746 49.225514,462.61022 48.231451,464.1594 C 47.237331,465.70858 46.246842,466.9773 46.033827,466.97732 L 45.661649,466.97732 L 45.519867,468.71415 C 45.447104,469.66918 45.349304,470.6262 45.289471,470.84088 C 45.229582,471.05556 45.49823,471.81406 45.892045,472.52454 L 46.600956,473.81831 L 44.810956,477.34514 C 43.824946,479.28598 42.485331,481.63758 41.83353,482.57336 C 41.181786,483.50912 38.489541,486.69921 35.860956,489.66246 C 33.232371,492.62571 30.023869,496.45382 28.718679,498.16939 C 27.413546,499.88496 25.804829,502.35951 25.138679,503.66345 L 23.915808,506.03831 L 24.57155,513.8186 L 22.78155,517.29227 L 28.842738,526.80939 L 32.617689,530.44256 L 32.422738,535.03276 L 33.344322,535.03276 L 34.868481,538.57731 C 35.70681,540.52682 36.646059,542.57272 36.942045,543.11434 C 37.23803,543.65597 37.473728,544.74062 37.473728,545.52464 L 37.473728,546.94246 L 39.901748,549.37048 L 38.732045,555.73296 L 39.884025,557.91286 L 39.0865,567.64269 L 37.792738,569.34407 C 37.080481,570.27984 35.895891,572.1939 35.152045,573.59754 L 33.805114,576.14962 L 33.805114,582.6716 C 33.809311,586.25869 34.044924,591.69365 34.319075,594.74078 L 34.815312,600.27028 L 33.025312,602.50335 C 32.042081,603.72682 31.235313,604.98085 31.235313,605.30355 C 31.235313,605.62619 31.746863,606.72801 32.36957,607.74929 C 32.99222,608.77058 33.502636,609.92996 33.503827,610.31912 C 33.504962,610.70823 34.368586,612.23953 35.417887,613.7219 L 37.314223,616.41576 L 38.040857,619.41088 L 39.954916,618.98553 C 41.011987,618.74711 42.118371,618.39112 42.418382,618.20573 L 42.967787,617.86902 L 47.221253,619.05642 L 48.692243,617.03603 L 53.246995,619.09187 L 53.796401,621.18315 L 57.039668,621.94526 L 62.303334,627.03167 L 64.500954,626.32276 L 66.379574,628.41405 C 67.337204,633.4307 68.369144,636.58943 70.144244,641.45744 L 72.245804,639.33127 L 76.676504,643.63793 L 81.674324,651.63088 L 82.879474,660.03147 L 83.978284,660.72269 L 84.704914,666.02177 C 84.115274,666.58572 83.730144,667.25397 83.464324,667.95358 C 85.822184,668.76605 88.269134,669.30794 90.677494,669.95622 L 90.181254,667.86494 L 91.953524,666.09266 L 91.336654,663.10497 L 92.485214,662.56585 L 92.485214,660.2087 L 99.142124,661.18064 L 99.290754,659.76566 C 99.290754,658.74063 98.996894,657.08013 98.635014,656.07932 L 97.979274,654.25385 L 100.30095,649.57503 L 99.911054,643.17714 L 99.326204,640.32375 L 98.191944,639.63259 L 97.305804,633.979 L 96.401944,628.32546 L 95.639864,627.33298 L 92.396594,626.37595 L 90.890164,622.01615 L 92.999174,620.68692 L 95.037294,621.41358 L 92.343434,618.4716 L 93.052344,615.63595 L 90.181254,612.51675 L 91.475014,606.65048 L 92.024424,605.97702 L 91.262344,602.5211 L 88.798874,602.48566 L 86.601254,600.81972 L 84.509964,600.81972 L 83.925114,599.26011 C 83.600144,598.40233 82.879584,597.19009 82.312344,596.56625 C 81.745154,595.94241 81.109544,594.89736 80.912244,594.24454 L 80.557784,593.05714 L 82.932634,589.0518 C 83.393434,588.50594 84.087484,587.03849 84.456794,585.79081 C 84.826114,584.54312 85.359604,582.37386 85.661944,580.97021 C 85.964224,579.56657 86.292304,577.87658 86.299964,577.67378 L 79.494424,576.06098 L 81.142634,568.20982 L 79.813434,564.22217 L 80.167884,558.5686 L 81.302144,555.41395 C 81.709044,555.07043 82.680594,554.56217 83.411154,554.35058 L 83.411154,551.05415 L 55.178777,544.35494 L 66.928974,498.38207 C 67.217304,493.19072 67.435774,490.22816 66.237784,485.03682 L 70.438084,485.409 L 72.192634,487.30534 L 74.833334,485.55078 L 77.704424,481.9885 L 75.595414,478.78068 L 78.306994,476.05138 L 78.909564,472.84355 L 80.132444,473.21573 L 79.299474,470.66365 L 79.069074,459.74643 L 72.936994,458.11593 L 72.812934,456.59177 L 74.780164,454.18147 L 74.230754,448.54563 L 72.919274,446.95058 L 73.256004,444.96563 L 72.068574,444.22128 L 76.304324,437.84108 L 76.605604,429.54682 L 78.572834,429.77722 L 80.221054,426.83524 L 82.046504,427.79227 L 82.276894,426.71118 L 84.261844,426.67573 L 86.317684,423.84009 L 85.963234,421.92603 L 57.394124,414.74831 z \"},\"ut1\":{\"name\":\"UT-1\",\"path\":\"M 514.62391,508.32454 C 508.67395,557.9951 498.61184,609.18248 492.0451,658.75543 C 518.91589,662.54357 543.23912,665.78096 570.98235,669.35365 L 573.32176,665.11793 L 575.50163,663.59378 C 576.69504,662.75244 578.91949,660.66779 580.44631,658.9681 L 583.21107,655.88434 L 585.26691,656.98315 L 586.45431,654.76784 L 586.45431,651.29417 L 587.58856,651.29417 L 587.58856,650.6916 C 587.58856,650.35739 587.20575,649.70615 586.73787,649.23833 L 585.88718,648.38764 L 585.88718,645.05576 L 584.84156,645.05576 L 583.93767,643.26573 C 583.44699,642.28204 583.05153,640.92513 583.05153,640.25286 L 583.05153,639.03001 L 584.66433,636.83239 L 584.04401,633.71318 L 585.42639,632.04724 L 584.32757,622.91999 L 585.16057,622.40605 L 584.77067,613.86368 L 586.36572,613.86368 C 587.31487,608.16863 587.305,605.16568 587.305,599.54368 C 587.81479,598.60389 588.12172,598.50436 589.28995,598.28533 L 591.57622,599.72091 L 593.95107,598.44487 L 602.22757,599.7918 L 602.98968,597.36375 C 602.31162,596.32318 601.57101,595.31278 601.19965,594.12051 L 601.19965,593.60652 L 612.82579,592.27734 L 614.16926,594.0085 L 614.20817,598.44487 L 615.41332,598.85246 L 615.76777,605.07318 L 617.06156,608.22784 L 619.63133,609.18487 L 620.32255,607.90883 C 620.70298,607.2032 621.40475,606.47915 621.88216,606.29603 L 622.75054,605.95932 L 622.75054,604.41741 L 625.30262,604.61239 L 625.58619,608.22784 C 629.81804,610.71504 631.92691,612.65609 635.33371,614.41306 C 635.54661,614.41997 635.88008,613.92033 636.07807,613.29655 L 636.43252,612.16229 L 638.96691,612.16229 L 640.11886,613.31424 L 643.89384,612.55219 L 645.71925,608.21009 L 647.70421,608.19239 L 648.62579,604.77187 L 652.15265,606.01246 L 656.86691,604.27563 L 658.97589,605.58711 L 661.15582,603.61992 L 664.11549,604.75417 L 672.94143,603.65536 L 674.11114,602.07801 L 678.45324,601.49318 L 684.53785,603.627 L 690.16797,603.54902 L 691.47945,593.53563 L 642.88361,588.05932 L 649.68916,525.71058 C 604.85162,520.49239 559.2975,514.81798 514.62391,508.32454 z \"},\"wv1\":{\"name\":\"WV-1\",\"path\":\"M 2061.969,547.89421 C 2061.4316,548.15076 2060.8199,548.71572 2060.5281,549.37048 L 2058.7204,548.67929 L 2056.8595,551.53266 L 2058.2596,553.07454 C 2059.0276,553.91839 2060.0743,555.29378 2060.599,556.14058 L 2061.556,557.68246 L 2061.556,562.85751 L 2063.2574,566.93375 L 2063.2574,571.18724 L 2061.6624,572.51642 L 2061.2902,574.89127 C 2060.6467,581.23841 2060.9965,587.6473 2060.8649,594.01417 L 2058.6495,594.01417 L 2060.3863,596.49536 L 2059.0394,598.10811 L 2059.3584,601.759 L 2057.5507,603.26546 L 2061.2016,606.77457 L 2059.2875,607.85563 L 2059.2875,612.76487 L 2056.4342,613.93457 L 2050.7452,622.06929 L 2049.4869,626.25187 L 2047.3601,626.8013 L 2045.6587,630.87754 L 2043.7447,630.87754 L 2039.5621,634.97147 L 2037.3467,634.26256 L 2036.053,631.44467 L 2034.3693,631.44467 L 2030.8248,636.12348 L 2031.4805,640.51873 L 2025.8269,641.77702 L 2025.8269,644.59496 L 2023.6293,647.37741 L 2024.3914,649.20288 C 2024.809,650.20234 2025.1783,651.20201 2025.2067,651.43595 C 2025.235,651.66989 2025.2598,652.06711 2025.2598,652.32209 L 2025.2598,652.78288 L 2032.9338,655.28177 L 2037.7544,648.6712 L 2044.7686,642.67518 L 2043.851,646.19001 L 2045.4815,646.19001 L 2047.8032,648.74209 L 2048.5653,651.96764 C 2049.81,651.02377 2052.5225,650.56921 2055.2113,650.10672 L 2055.9556,651.29417 L 2058.3659,651.29417 L 2061.556,654.34249 L 2061.556,655.65397 C 2061.556,656.37094 2061.8612,658.06977 2062.2295,659.44665 L 2062.903,661.96328 L 2060.7419,665.70162 L 2065.2778,668.29028 L 2076.7622,655.42355 L 2078.6231,654.78553 L 2079.8459,653.56269 L 2073.1822,648.65345 L 2072.2252,643.49615 C 2074.244,640.72074 2075.6132,639.23702 2078.2863,637.11595 L 2079.9877,637.38177 C 2084.6241,637.91617 2089.2999,638.02353 2093.9533,638.3388 L 2095.3711,637.1514 L 2099.536,638.30335 L 2100.7943,640.64276 L 2104.2502,639.9516 L 2105.7921,641.22764 L 2105.7921,643.69107 L 2104.4275,645.05576 L 2105.3313,645.05576 C 2107.8234,644.46713 2110.1189,643.32108 2112.4558,642.291 L 2112.9521,635.37912 L 2115.5042,632.86249 L 2116.603,634.20942 C 2117.2078,634.94572 2117.7018,635.88642 2117.7018,636.30071 L 2117.7018,637.04506 L 2120.1121,637.36407 C 2121.4377,637.54255 2124.6916,637.74734 2127.343,637.80711 C 2129.9943,637.86683 2133.5482,637.74751 2135.2473,637.5413 L 2138.3488,637.16909 L 2138.9337,637.64764 C 2142.5869,639.88541 2146.4172,641.83957 2150.1699,643.90375 L 2150.613,643.62018 C 2150.86,643.46751 2151.2444,642.26809 2151.4637,640.94407 C 2151.683,639.62 2152.1026,638.05943 2152.403,637.4881 L 2152.9524,636.46018 L 2151.57,634.3689 C 2150.8101,633.22052 2150.0209,631.75517 2149.8154,631.10791 L 2149.4433,629.92051 L 2151.6409,616.98289 L 2153.1828,614.14724 C 2154.0378,612.58764 2155.1798,610.80118 2155.7172,610.17734 L 2156.6919,609.04308 L 2157.3831,606.77457 C 2157.7587,605.52689 2159.0574,602.52819 2160.2719,600.11081 L 2162.4873,595.71556 L 2155.7172,593.51794 C 2154.8555,597.18539 2151.8075,600.05852 2151.0383,603.81484 C 2150.6651,604.36456 2150.3203,604.71033 2149.5673,604.8782 L 2147.671,604.34652 L 2145.7747,603.83259 L 2144.3214,604.32883 L 2143.4707,606.38467 C 2142.9984,607.51484 2142.4268,608.57486 2142.1947,608.74177 C 2140.4961,610.66167 2139.0733,612.81404 2137.5513,614.87385 L 2137.5513,616.68157 L 2134.7156,617.39048 L 2134.7156,617.90447 C 2134.7156,618.18253 2134.3178,618.84732 2133.8295,619.39318 C 2133.3412,619.93904 2132.3789,621.27889 2131.6851,622.37061 L 2130.409,624.35556 L 2128.8671,625.29484 L 2122.0616,593.34071 L 2073.6075,603.67306 L 2061.969,547.89421 z \"},\"md1\":{\"name\":\"MD-1\",\"path\":\"M 2291.8103,552.63147 C 2285.2483,554.08872 2278.7822,555.96485 2272.2444,557.52296 L 2274.9382,559.43702 C 2276.4198,560.48717 2277.6321,561.54226 2277.6321,561.79415 L 2277.6321,562.25494 L 2276.8523,562.25494 C 2276.428,562.25494 2275.1365,562.90643 2273.9812,563.69048 L 2271.8899,565.1083 L 2270.0467,564.08038 L 2267.477,565.25009 L 2268.4871,567.16415 L 2264.021,568.59972 L 2260.0688,569.82256 L 2261.3626,571.38217 L 2256.9851,575.86605 L 2255.0178,575.86605 L 2254.3089,574.7318 L 2252.1113,574.7318 L 2251.243,575.49907 C 2254.0282,576.77374 2254.8065,578.06561 2256.9176,578.84541 L 2258.1015,578.86991 L 2257.499,578.13457 C 2256.9327,577.5088 2256.5734,576.89942 2256.7015,576.78764 C 2256.8296,576.67586 2257.4746,576.29877 2258.137,575.95464 L 2259.3422,575.33437 L 2261.3626,577.56744 L 2260.0511,577.56744 L 2260.0511,578.7017 L 2260.9018,578.7017 C 2261.3739,578.7017 2262.2669,578.38654 2262.869,578.01048 L 2263.9501,577.33702 L 2265.0312,578.29405 C 2265.619,578.82607 2266.2896,579.26883 2266.5199,579.26883 C 2266.7502,579.26883 2267.7786,578.37327 2268.8061,577.28388 L 2270.6671,575.31662 L 2269.196,574.07603 L 2269.9936,572.85318 L 2273.2723,571.91385 L 2278.1992,566.7388 L 2278.1992,564.64751 L 2280.0424,563.9386 L 2281.7792,565.37415 L 2282.9667,565.1792 C 2283.6205,565.07225 2284.5849,564.60299 2285.1111,564.13355 L 2286.0681,563.28286 L 2286.6884,563.65504 L 2287.3087,564.04494 L 2286.5467,569.68078 L 2288.6025,571.16949 L 2286.1568,574.60771 L 2288.5139,575.22804 L 2287.7695,576.43318 L 2286.3517,576.43318 C 2285.5698,576.43318 2284.4384,576.69508 2283.835,577.01801 L 2282.7362,577.60289 L 2282.7362,579.83596 L 2280.9108,579.83596 L 2281.5665,582.45893 L 2280.0601,584.65655 L 2279.2449,592.31279 L 2280.4855,592.31279 L 2282.3641,596.24724 L 2283.9414,594.01417 L 2286.139,594.01417 L 2286.139,596.28269 L 2285.0048,596.28269 L 2285.0048,596.86751 C 2285.0048,597.19248 2285.4973,598.00687 2286.1036,598.65754 L 2287.2024,599.82724 L 2286.3871,600.64249 C 2285.9369,601.09273 2285.5719,601.69973 2285.5719,601.98942 L 2285.5719,602.5211 L 2281.1057,602.5211 L 2279.4221,600.14625 L 2278.6423,606.47325 L 2279.3867,610.46091 L 2280.4323,610.46091 L 2279.3689,607.66071 L 2280.4677,606.98724 L 2281.602,607.69615 L 2281.3184,605.07318 L 2283.3034,605.23266 L 2283.3034,604.22249 L 2285.8554,604.24018 L 2287.9467,610.95714 L 2287.2024,612.16229 L 2285.0756,612.16229 L 2284.3667,611.02803 L 2283.6578,611.73695 C 2283.273,612.12917 2282.9196,612.95627 2282.8603,613.58011 C 2282.8009,614.20396 2282.6762,615.47228 2282.5945,616.39801 L 2282.4527,618.0817 L 2285.2883,618.11714 L 2286.6707,616.41576 L 2289.6304,620.11979 L 2290.6583,619.48177 L 2292.9446,620.70467 L 2292.9446,622.93774 L 2291.2077,622.93774 L 2290.5343,624.69226 L 2287.5037,624.63912 L 2287.5746,625.91516 C 2287.6135,626.61698 2287.8355,627.62205 2288.0708,628.14823 L 2288.4962,629.10526 L 2290.1089,628.48494 L 2290.1089,631.33833 L 2286.7061,632.52573 L 2286.7061,633.00427 C 2286.7061,633.27122 2287.5994,634.35642 2288.6911,635.41457 L 2290.676,637.34632 L 2290.676,638.85279 L 2293.6889,639.98704 L 2293.0332,640.66051 C 2292.6705,641.02319 2292.3774,641.50978 2292.3774,641.75932 L 2292.3774,642.22011 L 2295.0713,642.22011 L 2296.5246,643.97464 L 2296.8613,643.4784 C 2297.0448,643.19977 2297.9107,642.78622 2298.7754,642.57457 L 2300.335,642.20236 L 2301.0084,643.9215 L 2301.611,643.9215 C 2301.943,643.9215 2302.6864,644.34248 2303.2592,644.86078 L 2304.2871,645.80011 L 2303.5782,641.93655 L 2302.7984,641.31622 C 2302.3691,640.96988 2302.0186,640.39566 2302.0186,640.04018 L 2302.0186,639.38447 L 2303.1529,639.38447 L 2303.1529,635.41457 L 2303.8086,635.41457 C 2304.174,635.41457 2304.9396,635.83759 2305.51,636.35385 L 2306.5556,637.29318 L 2306.5556,638.97682 L 2304.8011,640.27061 L 2307.6899,642.98216 L 2307.6899,641.08586 L 2309.9939,641.08586 L 2310.5964,642.66315 L 2312.5814,642.14922 L 2314.0701,643.9215 L 2312.6523,645.62288 L 2311.6952,645.62288 C 2311.172,645.62288 2310.5005,645.87832 2310.1888,646.19001 L 2309.6217,646.75714 L 2310.0825,650.70929 L 2311.9434,648.51167 L 2316.1968,647.76731 L 2316.1968,648.2813 C 2316.1968,648.56832 2315.8218,649.30622 2315.3639,649.9118 C 2314.9059,650.51726 2314.5231,651.4545 2314.5132,652.00308 L 2314.4954,653.01325 L 2316.7285,651.61318 L 2318.0046,652.88922 L 2315.8069,655.08685 L 2315.098,658.66685 L 2316.3741,661.50249 L 2318.4653,661.50249 L 2318.4653,659.34031 L 2322.2935,655.3881 L 2324.1898,654.96276 C 2325.2309,654.73409 2326.4764,654.31918 2326.9546,654.04117 C 2332.7647,651.33671 2338.8936,649.35306 2344.8014,646.88117 L 2345.1736,645.44566 C 2345.3851,644.65474 2345.7458,640.47114 2345.9711,636.15892 L 2346.3787,628.32546 L 2347.4952,626.94308 L 2346.7332,620.27932 L 2316.3386,627.54566 L 2291.8103,552.63147 z M 2268.558,593.92553 L 2269.196,595.57378 L 2266.5731,598.53345 L 2261.9829,597.59417 C 2261.6932,598.37341 2261.4643,599.16801 2261.2385,599.96902 L 2264.0564,603.19457 L 2269.2492,601.42229 L 2270.224,601.93622 C 2270.7613,602.22381 2271.5319,602.85872 2271.9431,603.35405 L 2272.7051,604.25794 L 2273.2723,604.06296 C 2273.5887,603.95747 2274.2231,603.32166 2274.6724,602.64513 L 2275.4877,601.42229 L 2272.4925,600.05761 L 2273.0242,598.63979 L 2271.7481,595.21932 L 2270.862,594.90031 C 2270.3767,594.72359 2269.6571,594.42636 2269.2669,594.24454 L 2268.558,593.92553 z M 2282.8071,596.56625 L 2282.7717,597.75365 C 2282.7519,598.40352 2282.9004,599.1054 2283.1084,599.31325 C 2283.3163,599.52122 2283.5827,599.60107 2283.6933,599.49048 C 2283.804,599.37978 2283.6553,598.6779 2283.3566,597.93088 L 2282.8071,596.56625 z M 2303.1529,647.60784 L 2303.1174,648.17496 C 2303.0941,648.48688 2303.1915,649.38011 2303.3478,650.15991 L 2303.6314,651.57774 L 2306.3784,651.73721 L 2304.9606,647.60784 L 2303.1529,647.60784 z M 2306.4848,652.32209 L 2305.8822,652.92467 L 2306.2544,653.52724 C 2306.4599,653.85986 2306.8647,654.12982 2307.1582,654.12982 C 2307.4518,654.12982 2307.6899,653.89162 2307.6899,653.59813 C 2307.6899,653.30464 2307.4199,652.89983 2307.0873,652.69424 L 2306.4848,652.32209 z M 2308.5583,656.50467 L 2307.6899,657.03635 L 2307.6899,658.38328 C 2307.6899,659.1244 2307.9352,660.38326 2308.2393,661.18348 L 2308.7887,662.63675 L 2309.9584,662.63675 L 2310.242,657.81615 L 2308.5583,656.50467 z \"},\"districtofcolumbia\":{\"name\":\"District-of-Columbia\",\"path\":\"M 2249.2048,621.02249 L 2247.9999,617.47583 L 2243.5169,615.46287 L 2246.2857,611.4316 L 2252.5698,615.28286 C 2251.4688,617.07828 2250.6715,619.49317 2249.2048,621.02249 z \"},\"wy\":{\"name\":\"WY At-Large\",\"path\":\"M 643.94925,587.01115 C 654.33076,505.04416 662.63931,422.82879 672.40924,340.79256 C 779.40952,352.72127 870.42291,360.08969 977.77311,364.99228 C 974.70261,447.58428 971.13141,530.16504 967.38221,612.73078 C 859.26419,608.72356 751.53492,598.03421 643.94925,587.01115 z \"},\"in1\":{\"name\":\"IN-1\",\"path\":\"M 1741.0927,611.0294 C 1735.8861,573.88978 1735.4527,571.69017 1731.3917,536.55531 L 1732.7632,537.17059 C 1733.465,537.35148 1734.3171,537.87369 1734.6567,538.33107 L 1735.2743,539.16265 L 1743.6804,539.68396 C 1747.1139,537.95117 1750.4815,536.07899 1753.974,534.467 C 1754.2732,539.71326 1754.6679,543.52755 1755.4444,548.20102 L 1759.8436,547.49756 C 1760.5941,559.22835 1760.6763,557.95361 1763.8135,580.66277 L 1761.4,580.97157 L 1762.1064,585.38939 C 1760.4069,586.19097 1758.7074,585.84695 1757.0079,586.07573 L 1759.994,608.68126 L 1741.0927,611.0294 z \"},\"ia1\":{\"name\":\"IA-1\",\"path\":\"M 1554.2594,469.15722 L 1514.7199,472.79039 L 1515.5174,483.35316 L 1473.1069,486.98633 C 1473.2251,493.98425 1473.6222,501.05096 1474.6487,507.97009 L 1496.1287,506.51682 L 1496.1287,511.69187 L 1497.263,512.06405 L 1498.0073,522.55593 L 1551.5301,517.93029 L 1553.4974,539.74702 L 1574.6761,537.95702 L 1576.7851,559.50791 L 1582.2351,559.48174 C 1582.2315,563.53966 1582.3579,565.27106 1582.9703,567.92625 L 1583.3602,567.92625 C 1583.575,567.92449 1584.6691,567.66997 1585.7883,567.35912 L 1587.8264,566.79197 L 1591.8849,562.25494 L 1596.3687,562.25494 L 1599.3462,558.35593 L 1601.4729,557.68246 L 1601.4374,555.28989 C 1601.4207,553.97265 1601.5752,551.62126 1601.7742,550.06167 L 1602.1287,547.22603 L 1607.3746,543.20296 L 1607.8531,530.3185 L 1606.6834,528.9184 L 1606.3289,525.00167 L 1603.7946,522.46731 L 1596.2269,519.68484 L 1593.0014,516.17573 L 1593.6926,512.70207 C 1592.3389,511.15846 1591.4108,509.72758 1589.4849,508.37771 C 1589.1457,508.37771 1587.365,507.97059 1586.8162,507.47385 C 1586.2673,506.97711 1584.9626,506.14769 1583.9273,505.63068 L 1581.3034,503.01431 L 1582.2617,501.05871 C 1580.8333,498.98284 1579.5839,496.77527 1578.0611,494.76662 L 1567.8705,493.01207 L 1561.9334,489.9992 L 1559.08,480.6593 L 1556.8115,479.95039 L 1556.8293,477.03273 L 1554.2594,469.15722 z \"},\"nj1\":{\"name\":\"NJ-1\",\"path\":\"M 2334.4786,549.18483 L 2326.6887,545.29748 L 2322.8093,545.24245 L 2322.9824,544.14547 C 2323.3053,543.54214 2323.5695,542.65547 2323.5695,542.17509 L 2323.5695,541.30168 L 2319.9635,539.43694 L 2316.9905,543.07958 C 2316.451,542.33319 2315.8509,541.72009 2315.0663,541.27255 L 2311.9434,545.2347 L 2310.5012,545.24245 L 2309.2304,542.45327 L 2311.1427,539.53474 L 2317.3311,536.79794 L 2317.3311,535.57319 L 2320.2926,534.44724 L 2319.6189,529.64641 C 2320.623,528.57198 2321.4925,527.30952 2322.7515,526.5272 L 2326.6887,529.54595 L 2323.639,528.79155 L 2322.8943,529.99658 L 2325.9664,534.42972 C 2327.1073,533.81946 2328.2518,533.18767 2329.4902,532.86558 L 2332.8217,539.00009 L 2338.2821,542.50403 C 2337.033,544.72185 2336.1993,547.28609 2334.4786,549.18483 z \"},\"il1\":{\"name\":\"IL-1\",\"path\":\"M 1719.8436,547.79504 C 1719.7102,547.79504 1719.5774,547.19045 1719.5774,546.79871 L 1719.0566,546.2285 L 1716.1747,544.58025 L 1716.1747,543.17268 C 1716.1747,542.39851 1716.4306,541.28701 1716.7433,540.70266 L 1717.3119,539.64022 L 1722.3104,538.89064 L 1722.9255,536.53868 L 1722.6358,536.06997 C 1722.4765,535.81218 1721.9784,535.60126 1721.5289,535.60126 L 1720.7117,535.60126 L 1720.7117,534.5932 C 1720.7117,534.03875 1721.0926,533.04132 1721.5581,532.37666 L 1722.4046,531.1682 L 1725.4118,532.18039 L 1726.0818,529.4163 L 1727.374,531.25187 L 1726.329,535.03656 L 1723.4281,537.9375 L 1724.017,540.98898 L 1719.8436,547.79504 z \"},\"pa1\":{\"name\":\"PA-1\",\"path\":\"M 2316.4102,519.91545 L 2316.3032,520.39375 L 2317.8982,522.05969 L 2317.8982,527.69553 L 2316.0374,530.53118 L 2313.7688,528.20949 L 2312.4928,530.14128 L 2314.4954,531.70088 L 2314.4954,534.94415 L 2308.257,538.94949 L 2308.257,539.55207 C 2308.257,539.87849 2308.4923,540.13691 2308.7887,540.13692 C 2309.0852,540.13692 2309.5318,539.79962 2309.7812,539.37484 L 2310.242,538.59504 L 2315.8247,536.14929 L 2317.402,533.8985 L 2319.1566,533.8985 L 2318.7312,532.3389 C 2318.4979,531.48112 2318.3198,530.36729 2318.3413,529.85771 L 2318.3768,528.93613 L 2319.7059,527.5183 C 2320.4299,526.74014 2321.5278,525.36571 2322.1517,524.46999 L 2323.0024,523.45979 L 2323.1265,522.46731 L 2322.1517,521.72296 C 2322.1517,521.72296 2322.0434,522.39021 2321.9745,522.87494 L 2320.6098,520.85454 L 2319.5287,522.09514 L 2319.5287,523.60157 L 2318.6958,523.60157 L 2318.6958,522.1483 L 2316.4102,519.91545 z \"},\"sd\":{\"name\":\"SD At-Large\",\"path\":\"M 1316.539,521.42304 L 1315.1049,519.02394 L 1311.1928,519.65878 L 1310.7122,518.41418 C 1310.4478,517.72965 1309.5489,516.58198 1308.7147,515.86379 L 1307.1978,514.558 L 1307.9633,511.07304 L 1306.4242,510.09784 L 1302.7378,510.08047 L 1302.7378,508.40743 L 1297.5229,506.03174 L 1295.7882,506.6974 L 1294.5145,505.1623 L 1289.8126,503.8321 L 1288.0802,504.49688 L 1286.9021,503.31878 L 1283.9945,502.14067 L 1283.8268,499.63605 L 1277.4885,499.19963 L 1272.3965,499.52543 L 1257.3499,499.90259 L 1255.0562,498.67506 L 1252.8331,499.38062 L 1252.1173,502.42423 L 1249.2155,505.54344 L 1245.711,505.54344 L 1241.2044,501.04372 L 1240.2099,501.02506 C 1239.6629,501.0148 1238.263,500.49599 1237.099,499.87215 C 1235.9351,499.24831 1234.5324,498.7379 1233.9819,498.7379 L 1232.981,498.7379 L 1232.981,497.63687 L 1226.7248,494.67719 L 1225.1016,491.53832 C 1134.1392,491.9561 1059.274,490.76414 973.94561,487.96245 C 978.98701,366.17459 979.98561,366.54126 982.39611,306.25514 C 1089.0576,309.71988 1198.3449,311.4341 1305.0064,307.45908 L 1305.0064,313.02351 L 1303.5885,315.11002 C 1302.8087,316.25761 1302.1707,317.4523 1302.1707,317.76489 C 1302.1707,318.07748 1301.2148,319.04806 1300.0464,319.92171 C 1298.878,320.79537 1296.8363,322.56668 1295.5093,323.85797 L 1293.0967,326.20575 L 1293.0967,328.33651 L 1297.4604,333.61718 L 1298.2132,335.50348 C 1298.6272,336.54095 1299.4492,338.0916 1300.0398,338.94938 L 1301.1137,340.50899 L 1304.4769,340.50899 L 1309.8851,343.24952 L 1311.3792,346.46384 C 1312.8369,383.5922 1314.2947,420.72055 1315.7525,457.8489 L 1309.4077,458.18819 L 1309.0363,462.37688 L 1312.931,465.7965 L 1312.2452,470.80025 L 1310.5272,470.66503 C 1310.3171,471.62643 1310.2436,472.5299 1310.555,473.46826 C 1310.7619,473.79801 1310.938,474.43157 1310.9462,474.87617 L 1310.9612,475.68455 L 1314.2668,476.57163 L 1315.2147,475.98581 L 1315.2613,476.44462 C 1315.287,476.69697 1315.431,477.6627 1315.5814,478.59069 C 1315.7317,479.51868 1316.0945,480.56678 1316.3875,480.9198 L 1316.9202,481.56165 L 1316.233,484.99756 L 1313.4021,486.28743 L 1313.7917,487.26672 C 1314.0061,487.80533 1314.2225,489.2249 1314.2727,490.42131 L 1314.364,492.59659 L 1312.9462,493.77262 L 1312.9462,498.77349 L 1311.3471,499.3871 L 1310.9844,500.83239 C 1310.7849,501.6273 1310.2514,502.6479 1309.7989,503.10038 L 1308.9763,503.92307 C 1308.9163,505.19096 1309.08,506.43188 1309.3337,507.67017 L 1314.6724,512.41698 L 1315.7818,515.26565 L 1315.7818,517.45314 L 1316.6892,517.45314 L 1316.6892,519.43809 C 1316.6892,520.52982 1316.6216,521.42304 1316.539,521.42304 z \"},\"wi1\":{\"name\":\"WI-1\",\"path\":\"M 1660.7851,494.09888 L 1656.7189,490.37376 L 1655.5734,486.22537 L 1653.034,483.85727 L 1655.0261,479.61293 L 1654.5614,473.37444 L 1675.5614,471.2033 L 1674.9051,465.4553 L 1690.645,463.41088 L 1691.5583,461.97205 L 1694.7796,461.81989 L 1695.9033,457.97024 L 1697.4421,457.05925 L 1698.6336,459.60602 L 1699.2409,459.60602 C 1699.575,459.60602 1700.3623,460.25955 1700.9906,461.05831 L 1702.133,462.51061 L 1703.7618,461.8856 L 1710.2198,470.21362 L 1709.2662,480.87334 L 1710.9022,487.89119 L 1660.7851,494.09888 z \"},\"ny1\":{\"name\":\"NY-1\",\"path\":\"M 2401.7316,459.53252 L 2400.7793,460.24536 L 2397.5643,456.5351 L 2399.877,453.61727 L 2396.6745,451.59712 L 2390.3855,452.90272 L 2388.725,450.53196 L 2386.7476,450.53196 L 2386.0671,449.8514 C 2385.6928,449.4771 2385.3865,448.97306 2385.3865,448.73132 L 2385.3865,448.2918 L 2388.6745,448.94939 L 2392.1921,446.34875 L 2392.1921,443.79335 L 2392.8668,443.37636 C 2393.2379,443.14701 2394.3225,442.89592 2395.2771,442.81838 C 2396.2317,442.74083 2398.2887,442.28432 2399.8483,441.80391 C 2401.4079,441.32349 2403.96,440.49386 2405.5196,439.96027 C 2407.0792,439.42668 2409.1209,438.43043 2410.0566,437.74639 C 2410.9924,437.06234 2412.4818,436.33117 2413.3665,436.12157 L 2414.9749,435.74049 L 2416.3491,434.20394 C 2417.1048,433.35885 2418.3589,432.01978 2419.1359,431.22823 C 2419.9128,430.43668 2420.5485,429.47796 2420.5485,429.09774 L 2420.5485,428.40643 L 2421.9663,427.17365 C 2422.7461,426.49562 2423.3842,425.65287 2423.3842,425.30085 C 2423.3842,424.94884 2423.7878,424.16543 2424.2811,423.55996 L 2425.1782,422.45909 L 2424.5949,424.33747 L 2425.5938,425.24144 C 2426.1432,425.73863 2426.8603,426.14542 2427.1875,426.14542 C 2427.5146,426.14542 2428.0674,426.48899 2428.4159,426.90892 L 2429.0496,427.67242 L 2433.2633,427.4166 L 2433.4751,426.78101 C 2433.5917,426.43144 2433.9871,426.14542 2434.354,426.14542 L 2435.021,426.14542 L 2436.4377,428.41394 L 2437.8933,428.41394 L 2440.3399,425.92108 C 2441.6855,424.55 2443.0785,422.8475 2443.4354,422.13773 L 2444.0844,420.84724 L 2446.6364,420.66369 L 2446.6364,421.13979 C 2446.6364,421.40165 2445.9538,422.18842 2445.1194,422.88818 C 2444.2851,423.58794 2442.1796,425.41861 2440.4406,426.95633 C 2438.7016,428.49406 2434.4554,432.3813 2431.0046,435.59466 L 2424.7303,441.43712 L 2416.2593,447.74709 C 2411.6001,451.21757 2406.6397,455.12864 2405.236,456.43836 C 2403.8324,457.74808 2402.2554,459.14045 2401.7316,459.53252 z \"},\"mn1\":{\"name\":\"MN-1\",\"path\":\"M 1492.017,388.89078 L 1492.6728,394.38484 L 1487.161,394.38484 L 1488.1003,405.10712 L 1433.1774,409.13019 L 1433.1774,406.45405 L 1422.402,407.02118 L 1422.402,404.78811 L 1425.7162,400.35742 L 1423.873,397.23821 L 1425.2376,395.85583 L 1425.0238,393.48251 L 1387.5794,395.69633 L 1385.5556,393.74644 L 1384.2449,394.24535 L 1385.0601,406.86167 C 1381.4388,407.09207 1376.8196,406.75229 1374.1961,407.55286 L 1374.1961,412.44435 C 1354.4057,413.52067 1334.9716,414.24064 1314.8248,415.03187 L 1316.9693,457.90326 C 1397.7558,454.27231 1468.2237,449.90473 1550.0414,442.59078 L 1548.7831,440.23365 L 1549.4743,438.44365 L 1547.0108,435.82068 L 1546.8691,425.29336 L 1546.0006,423.73375 C 1545.5296,422.87496 1543.4995,420.15691 1541.4813,417.69029 L 1537.8127,413.20643 C 1535.8119,412.91227 1533.8139,412.60095 1531.8224,412.2494 C 1531.2343,412.13615 1530.3353,411.70164 1529.8374,411.29237 C 1529.3396,410.8831 1528.4885,410.15358 1527.9411,409.66187 C 1527.3938,409.17016 1526.5314,408.60389 1526.0093,408.40356 L 1525.0523,408.03138 L 1525.0523,406.82623 L 1517.1479,402.60821 L 1515.996,398.12435 L 1514.2237,397.13187 L 1514.8617,395.16464 L 1513.5679,394.01266 C 1512.8632,393.38477 1510.751,392.23647 1508.8714,391.44286 C 1506.9918,390.64925 1504.3743,389.80431 1503.0584,389.58197 L 1500.6658,389.19207 L 1500.0277,388.14643 L 1492.017,388.89078 z \"},\"ny26\":{\"name\":\"NY-26\",\"path\":\"M 2148.125,356.96875 L 2140.6563,360.03125 L 2132.7188,360.21875 L 2128.1875,361.09375 C 2125.6921,361.5818 2122.6298,362.36216 2121.375,362.8125 C 2120.1202,363.26282 2117.4775,363.80172 2115.5,364.03125 L 2111.9063,364.46875 C 2112.1993,366.68727 2112.5613,367.87727 2113.25,369.9375 L 2109.625,371.8125 L 2104.9375,371.125 L 2103.6875,372 L 2102.9375,377.59375 L 2101.625,378.40625 L 2103.6875,383.03125 L 2107.3438,383.71875 L 2108.625,386.46875 L 2110.0625,387.03125 L 2113,386.28125 L 2113.25,386.21875 L 2113.3125,386.46875 L 2115.125,393.1875 L 2119.6563,391.78125 L 2118.8438,388.75 L 2118.7813,388.5 L 2119.0313,388.4375 L 2123.9375,387.15625 L 2124.1875,387.09375 L 2124.25,387.34375 L 2125.1563,390.6875 L 2125.2188,390.90625 L 2125,391 L 2124.1563,391.25 L 2124.9375,395.875 L 2125.875,395.6875 L 2126.125,395.65625 L 2126.1563,395.875 L 2129.5938,410.90625 L 2130.625,411.3125 L 2157.5313,405.03125 L 2158.8438,407.53125 L 2163.1563,406.71875 L 2162.4375,402.8125 L 2164.7813,402.1875 L 2164.7813,398.9375 L 2171.9688,397.71875 L 2170.8438,392.71875 L 2165.9375,393.40625 L 2164.6563,390.125 L 2164.5313,387.3125 C 2164.461,385.75289 2164.1968,383.88932 2163.9688,383.1875 L 2163.5625,381.90625 L 2164.7813,381.90625 L 2164.7813,379.59375 L 2163.0313,376.96875 L 2156.4375,378.6875 L 2155.5313,372.28125 L 2150.75,372.28125 L 2150.0313,367.25 L 2152.2813,366.53125 L 2152.2813,363.1875 L 2154,363.1875 L 2155.125,362.0625 C 2155.7488,361.43866 2156.2811,360.68853 2156.2813,360.40625 L 2156.2813,359.90625 L 2151.25,356.96875 L 2148.125,356.96875 z \"},\"ct1\":{\"name\":\"CT-1\",\"path\":\"M 2390.5737,405.03631 L 2389.6019,400.9082 L 2387.0754,400.5441 L 2385.3754,397.25673 C 2386.5663,396.61875 2387.7612,395.96301 2389.0535,395.62043 L 2391.1086,399.53224 L 2397.2912,398.11431 L 2395.6511,392.50299 L 2393.4467,391.55057 L 2392.6359,381.30497 L 2385.5777,383.18303 L 2385.5076,384.85804 L 2384.2523,384.87963 L 2384.2523,388.71493 L 2385.3865,388.71493 L 2385.3865,390.88963 L 2380.1603,392.88556 L 2378.2974,391.70282 L 2377.0484,393.04452 C 2376.3615,393.78245 2375.5667,394.38621 2375.2821,394.38621 L 2374.7647,394.38621 L 2373.9261,379.6657 L 2386.7184,376.16512 L 2387.6798,377.8831 L 2393.467,377.1977 L 2394.471,378.99159 L 2398.0889,377.95397 L 2398.8471,379.1807 L 2400.5804,378.28438 L 2402.9307,376.63396 L 2402.7787,380.20199 L 2404.6689,382.04827 L 2404.6689,384.60141 L 2406.5093,384.54227 L 2408.4027,388.72515 L 2406.3703,388.78999 L 2406.3703,393.69773 L 2404.5665,394.3899 L 2403.6632,393.83157 L 2402.3217,395.44797 L 2403.6317,397.89588 L 2407.5046,396.53338 L 2407.5046,399.18897 L 2407.5046,401.84456 L 2402.4373,401.53294 C 2402.123,401.95704 2401.7182,402.13078 2401.2626,402.32602 L 2399.5197,399.33802 L 2394.177,404.8781 L 2390.5737,405.03631 z \"},\"ma1\":{\"name\":\"MA-1\",\"path\":\"M 2357.5996,382.372 L 2356.9131,381.26129 L 2355.8958,338.9949 L 2430.9105,319.32679 L 2432.3971,321.35981 L 2430.6264,324.06226 L 2428.0441,324.06226 L 2427.3408,326.86448 L 2428.3564,331.38438 L 2427.2276,331.76064 L 2429.2218,338.86803 L 2428.7133,339.36481 L 2425.0961,340.6293 L 2424.7592,339.57667 L 2422.6448,334.27057 L 2421.8293,334.27057 L 2421.0139,334.27057 L 2419.9494,335.54661 C 2419.3639,336.24843 2418.8764,337.05551 2418.866,337.34013 L 2415.3541,343.30105 L 2418.2596,348.16523 L 2413.4594,350.47238 L 2413.5938,351.58731 C 2413.6677,352.20053 2413.8922,353.70403 2414.0928,354.92842 L 2414.4574,357.15459 L 2412.9401,355.63733 C 2412.1057,354.80284 2411.2229,354.12008 2410.9784,354.12008 L 2404.3853,358.45423 L 2404.5429,360.35849 L 2404.108,360.35849 C 2403.8687,360.35849 2403.3229,359.83339 2402.8949,359.19159 L 2402.1168,358.0247 L 2396.6086,360.46486 L 2395.4492,359.30544 L 2395.2586,357.1381 C 2395.1538,355.94607 2394.8389,353.8908 2394.5588,352.57084 L 2394.0495,350.17091 L 2392.6203,348.44879 L 2390.9129,348.44879 L 2391.6606,353.12486 L 2388.5322,352.52683 L 2384.2433,354.71483 L 2386.5438,359.22424 L 2387.066,359.22424 C 2387.3532,359.22424 2387.7444,358.9714 2387.9354,358.66238 L 2388.2826,358.10051 L 2392.7344,358.27495 L 2392.0654,360.94035 L 2393.3459,362.48324 L 2392.6343,364.33758 L 2394.5138,368.29829 L 2395.0543,368.29829 C 2395.3516,368.29829 2395.5948,368.5197 2395.5948,368.79031 L 2395.5948,369.28232 L 2391.1162,369.02961 L 2390.4917,370.65694 L 2391.2113,373.5242 L 2389.6499,374.48921 L 2389.64,376.42401 L 2388.2222,376.89975 C 2387.8264,375.56932 2387.2738,374.78937 2385.8386,375.05344 L 2357.5996,382.372 z \"},\"vt\":{\"name\":\"VT At-Large\",\"path\":\"M 2354.8405,337.78477 L 2343.1354,290.32349 C 2342.5532,288.50185 2340.9561,288.86184 2339.9549,288.5741 L 2338.5162,285.36426 L 2334.9121,287.22802 L 2334.796,290.3181 L 2333.7841,286.3482 L 2334.4841,278.06244 L 2332.1989,275.57275 L 2331.3869,271.60285 L 2329.4205,269.33434 L 2327.4339,262.81236 L 2325.838,262.81236 L 2325.838,253.86855 L 2327.7205,248.03973 L 2325.0466,242.33095 L 2325.3475,237.43854 L 2324.5146,235.52189 C 2324.0566,234.46772 2323.0082,232.90341 2322.1849,232.04562 C 2321.3616,231.18784 2320.4741,230.48602 2320.2126,230.48602 C 2319.9511,230.48602 2319.4432,229.77626 2319.0839,228.90878 C 2318.7246,228.04129 2318.2944,226.31864 2318.128,225.08066 C 2317.9616,223.84268 2317.7684,221.34047 2317.6986,219.52021 L 2317.5717,216.21064 L 2314.779,214.10195 L 2315.1697,207.76527 C 2314.5071,206.79339 2313.8696,205.8076 2313.3612,204.75109 L 2389.9882,181.47666 L 2388.8198,183.04001 L 2390.4907,183.98147 L 2390.4907,184.83986 C 2390.4907,185.31197 2390.7975,186.18945 2391.1724,186.78981 L 2391.8541,187.88137 L 2390.4875,190.50345 L 2390.8569,194.82994 L 2390.1067,196.27607 C 2389.694,197.07145 2389.3564,197.91098 2389.3564,198.1417 L 2395.5948,205.78487 L 2395.5948,207.80087 L 2395.364,210.06939 L 2395.3113,212.94664 L 2393.8353,213.85858 L 2393.6558,215.22497 C 2393.5571,215.97649 2393.3,217.00586 2393.0845,217.51246 L 2392.6926,218.43355 L 2388.7927,220.53384 L 2388.079,224.33816 L 2387.1581,224.62961 C 2386.6516,224.7899 2385.5424,225.18041 2384.6931,225.4974 C 2383.8439,225.8144 2382.5678,226.62189 2381.8575,227.29184 L 2380.5659,228.50993 L 2379.3148,232.00678 L 2380.8495,234.10558 L 2380.8495,236.91869 L 2382.7041,238.96803 L 2382.8576,240.36591 C 2382.942,241.13474 2383.1801,242.03725 2383.3866,242.37148 L 2383.7622,242.97917 L 2382.5064,249.02846 L 2383.4708,253.45473 L 2381.978,256.29038 L 2382.6634,263.66305 L 2380.0082,267.0262 L 2379.9008,275.80016 L 2378.7758,277.27414 L 2378.9308,281.43317 L 2380.1301,282.94543 L 2380.9069,290.85377 L 2381.3035,291.15307 C 2381.5217,291.31767 2381.8089,291.83517 2381.9416,292.30305 L 2382.5208,302.6176 L 2384.3658,306.1977 L 2384.6836,311.82373 L 2385.8899,312.22584 L 2385.5537,313.18167 C 2385.3688,313.70738 2384.7368,314.67323 2384.1493,315.32799 L 2383.081,316.51849 L 2384.1382,319.29907 L 2383.5373,322.4427 L 2384.3122,323.96139 C 2384.7384,324.79667 2385.7287,326.1109 2386.5128,326.8819 L 2387.9386,328.28372 L 2389.3564,327.98244 C 2389.4262,328.39994 2389.3022,328.80161 2389.2147,329.1685 L 2354.8405,337.78477 z \"},\"nh1\":{\"name\":\"NH-1\",\"path\":\"M 2424.0222,217.72425 L 2423.6855,218.66356 L 2424.288,221.05613 L 2415.4798,223.2892 L 2415.1076,235.00396 L 2412.1834,229.17316 L 2410.7655,229.13772 L 2409.5427,226.90465 C 2408.9513,227.38808 2408.9453,227.87615 2409.2059,228.4997 L 2412.6087,231.72524 L 2412.5201,233.51524 L 2414.3455,234.73811 L 2414.3278,238.70801 L 2416.5786,244.04257 C 2414.2461,245.8853 2411.3202,246.84811 2408.7097,248.24287 C 2410.8067,252.54681 2412.4541,255.27087 2413.8847,259.40821 L 2408.7275,261.69445 C 2409.2457,263.44337 2409.2591,265.77011 2409.1528,267.56069 L 2406.9374,268.18098 L 2406.9374,269.74059 L 2409.7376,267.91514 L 2415.976,267.91514 L 2416.7204,273.55098 L 2434.1774,279.54128 L 2432.3342,292.79791 L 2426.7869,292.9397 L 2425.4932,295.95257 L 2425.6704,297.15772 L 2420.0877,299.31989 L 2423.0651,305.38108 L 2424.5539,304.79623 L 2427.8503,312.71831 L 2428.9314,312.71831 C 2429.5208,312.71831 2430.1537,312.55938 2430.3492,312.36385 L 2430.7037,312.0094 L 2429.02,308.74841 L 2430.615,305.70009 L 2432.4937,309.31554 L 2435.7724,309.31554 L 2435.9496,308.8193 C 2436.0536,308.54576 2437.9389,307.42002 2440.1322,306.32039 L 2444.1198,304.31772 L 2446.7605,305.73554 L 2450.0924,305.66465 L 2450.5709,302.06692 C 2452.5253,301.15669 2454.1774,300.67298 2454.0623,298.82366 L 2458.8297,298.82366 L 2459.1133,292.01811 L 2459.6804,290.36989 C 2459.9916,289.46556 2460.2475,288.12572 2460.2475,287.39247 L 2460.2475,286.06326 L 2457.6954,286.04554 L 2453.1584,283.47574 L 2452.2368,277.64494 C 2449.3313,276.48122 2448.2546,275.39099 2446.1402,273.46237 L 2443.8894,273.58643 L 2441.5677,269.81148 L 2442.0108,267.45435 L 2440.6461,260.95009 L 2439.636,260.02851 C 2439.2209,259.53684 2437.5636,255.55174 2435.9496,251.18485 C 2434.3356,246.81795 2430.999,237.50287 2428.5238,230.48465 L 2424.0222,217.72425 z \"},\"me1\":{\"name\":\"ME-1\",\"path\":\"M 2458.2626,284.92861 L 2454.2927,282.94543 L 2453.3518,276.96763 L 2451.1048,275.82131 C 2449.869,275.19084 2448.3581,274.17517 2447.7472,273.56427 L 2446.6364,272.45354 L 2444.4984,272.45354 L 2442.5645,269.50212 L 2443.1692,267.1896 L 2441.4153,260.26028 L 2440.6949,259.40958 C 2438.5772,255.05522 2437.1094,251.45887 2435.804,247.32107 L 2438.9769,244.78371 L 2442.5718,243.46067 L 2443.2355,241.73112 L 2442.216,239.90939 C 2442.9609,237.30515 2443.2185,235.02578 2443.1512,232.25912 L 2439.0725,229.14811 L 2435.2939,228.78463 L 2434.6539,227.02743 L 2436.811,227.70103 L 2443.3262,219.83425 L 2445.0832,220.9514 L 2445.4613,225.53098 L 2447.3794,227.65038 L 2449.9628,227.65038 L 2450.7088,225.29983 L 2455.7871,227.02604 L 2458.5461,225.97706 L 2458.5461,223.74741 L 2459.5185,223.14645 L 2462.5769,224.98149 C 2464.259,225.99076 2466.5809,227.10436 2467.7366,227.45615 L 2469.838,228.09578 L 2472.0835,225.50934 L 2472.0828,222.99173 C 2471.5426,219.86554 2470.9621,216.74598 2470.4566,213.61394 L 2473.7943,213.47216 L 2475.56,210.95127 L 2475.56,208.84788 L 2472.0404,205.32828 L 2470.1723,206.51156 L 2470.537,209.50226 L 2465.9643,209.50226 L 2464.6551,205.13249 L 2465.287,203.95189 L 2465.9188,202.77128 L 2465.9105,201.17439 C 2465.906,200.2961 2465.5219,198.48542 2465.0569,197.15064 C 2464.592,195.81587 2463.541,193.71041 2462.7213,192.47183 C 2461.9017,191.23326 2460.9936,190.21988 2460.7034,190.21988 L 2460.1757,190.21988 L 2460.5311,186.53355 L 2464.1473,186.18335 L 2464.501,183.73581 L 2467.6842,181.99652 L 2469.217,184.05521 L 2471.3065,183.6979 L 2471.6789,186.95647 L 2482.082,186.15611 L 2484.5147,183.89593 L 2483.9373,179.59149 L 2485.2012,178.81037 L 2485.2012,176.09803 L 2483.2162,174.9419 L 2485.636,174.90741 L 2485.978,176.18345 C 2486.1661,176.88527 2486.3234,178.03371 2486.3277,178.73553 L 2486.3354,180.01157 L 2488.604,180.01157 L 2488.604,180.79137 C 2488.604,181.22026 2488.7635,182.3687 2488.9584,183.34345 L 2489.3129,185.11572 L 2486.9026,185.11572 L 2486.9026,193.62266 L 2491.3727,193.62266 L 2492.0763,192.48424 L 2494.8064,193.16946 L 2496.7379,189.11902 L 2504.8922,193.3919 L 2507.9572,192.37025 L 2508.737,193.14988 L 2508.8263,202.16217 L 2510.1548,203.49069 L 2510.1548,202.12959 L 2511.8562,202.12959 L 2511.8562,202.69671 C 2511.8562,203.00864 2511.601,203.26384 2511.2891,203.26384 L 2510.722,203.26384 L 2510.722,205.46542 L 2510.2136,205.77962 C 2509.9339,205.95243 2509.1544,207.15063 2508.4811,208.44228 L 2507.257,210.79073 L 2507.8155,212.24604 L 2505.842,214.52148 L 2504.7671,213.03818 L 2501.1797,212.38605 L 2499.8636,213.97187 L 2498.1307,213.30688 L 2497.1282,214.88998 L 2497.0213,223.39691 L 2496.4492,221.97909 L 2494.8424,221.97909 L 2494.8424,222.54622 C 2494.8424,222.85814 2494.3377,223.61797 2493.721,224.23474 L 2492.5996,225.35614 L 2490.6926,224.62437 L 2491.4479,228.40082 L 2489.1947,226.36172 L 2488.9467,227.14783 L 2487.9532,231.30032 L 2484.6341,235.81363 L 2484.6341,233.88879 L 2483.6321,233.88879 L 2483.0167,231.53542 L 2480.6642,232.79444 L 2480.6642,232.40303 C 2480.6642,232.18775 2480.1537,232.47353 2479.5299,233.0381 C 2478.9061,233.60267 2478.3956,234.38054 2478.3956,234.76671 L 2478.3956,235.46882 C 2477.719,235.82485 2477.03,235.93372 2476.3137,235.96575 C 2476.1936,235.8457 2476.3728,235.01786 2476.7118,234.12609 L 2477.3283,232.50469 L 2476.5508,231.9207 C 2476.1232,231.59951 2475.5995,230.87393 2475.3871,230.30829 L 2475.0009,229.27987 L 2474.4298,229.63285 C 2474.1156,229.82699 2473.8586,230.37006 2473.8586,230.83967 L 2473.8586,231.69351 L 2470.4558,234.55675 L 2470.4558,236.03595 L 2468.7825,236.67808 L 2469.1711,241.26147 L 2468.1873,241.26147 L 2468.1873,243.53748 L 2471.023,246.00304 L 2471.023,247.94566 L 2472.9202,248.67371 L 2470.3825,250.45122 L 2469.8131,249.88182 L 2465.9188,253.77611 L 2465.9188,256.57394 L 2467.9168,258.57192 L 2467.7099,259.69966 C 2467.5961,260.31992 2467.1216,261.25794 2466.6554,261.78415 L 2465.8077,262.74088 L 2466.4896,263.84426 L 2465.7974,265.648 L 2465.1158,265.648 C 2464.7409,265.648 2463.9715,265.98631 2463.406,266.3998 L 2462.3779,267.15161 L 2461.4138,273.25034 L 2463.1572,275.17671 L 2462.5227,277.5329 C 2462.1738,278.8288 2461.9313,280.32155 2461.9839,280.85013 C 2462.0365,281.3787 2462.0501,282.51299 2462.0142,283.37077 L 2461.9489,284.93038 L 2458.2626,284.92861 z \"},\"or1\":{\"name\":\"OR-1\",\"path\":\"M 131.59937,161.01138 L 132.46778,164.98128 L 132.41461,175.1896 L 131.04996,177.67079 L 128.60422,178.02524 L 128.42699,184.38772 L 126.74333,188.42851 C 141.07495,192.22942 134.74054,192.07781 151.90956,195.2092 L 151.25392,199.8596 L 145.60769,198.5201 C 145.87238,200.06789 146.34435,202.0688 147.5467,203.13495 C 148.85109,203.51245 150.53804,205.86656 152.03372,207.23237 L 148.89679,207.51594 L 148.96768,209.55405 L 146.92956,208.9692 L 146.52194,210.31613 L 145.65352,209.50089 L 143.65085,211.78712 L 139.43283,228.21613 L 125.66224,224.99059 L 123.81907,232.84178 C 135.91787,236.3009 142.58561,237.84661 153.66422,240.60435 C 154.80596,240.11238 156.09548,239.40524 157.26194,238.97386 L 155.79095,236.49267 L 157.97085,236.47495 L 157.42144,234.17098 L 156.64164,232.18603 L 157.66956,232.18603 L 158.99877,232.82405 L 158.9456,229.91752 L 160.3457,229.91752 C 160.92077,229.91944 162.11754,230.32368 163.02184,230.76821 L 165.37897,231.93792 L 165.3258,230.00613 C 166.28214,229.13755 167.11956,227.95719 167.31075,226.51475 C 168.12138,226.89729 168.69033,227.48061 169.18936,228.25158 L 171.26293,228.21613 L 172.45035,223.39554 C 173.45204,221.73271 175.2222,220.69774 176.61521,219.37247 L 176.65065,217.38752 L 172.80481,216.55455 L 170.81986,212.33653 L 170.32362,212.33653 L 169.82738,212.33653 L 167.91333,208.31346 L 169.20709,203.15613 L 176.43798,204.55623 L 176.42026,201.20663 C 176.41175,199.37168 176.48471,196.72774 176.57976,195.32267 C 176.67481,193.9176 176.93895,192.46222 177.16461,192.09712 L 177.57224,191.44138 L 177.04055,190.11217 C 176.74627,189.38698 176.3106,188.03507 176.08352,187.0993 C 175.85639,186.16354 175.72873,184.94571 175.79996,184.38772 L 175.92402,183.37752 L 167.77154,173.77178 L 163.99659,173.77178 L 161.30273,174.99465 L 156.69481,173.75406 L 154.76303,170.81208 L 155.43649,167.19663 L 153.84144,164.99901 L 149.25125,166.22188 L 148.09927,165.0699 L 147.47897,166.68267 L 145.0864,166.48772 C 143.76402,166.37985 141.4815,166.20295 140.01768,166.09782 L 137.35927,165.90287 L 137.97956,167.53336 L 136.2959,167.53336 L 134.32867,165.12307 C 133.24778,163.7974 132.19667,162.32996 131.98927,161.86208 L 131.59937,161.01138 z \"},\"wa1\":{\"name\":\"WA-1\",\"path\":\"M 216.11926,74.843266 L 216.11926,78.458711 L 211.29867,80.674058 L 207.32877,84.697127 L 206.25427,84.560914 L 205.13128,87.673537 L 201.40936,87.461879 L 198.85728,88.879701 C 197.46033,89.66049 195.31363,91.151545 194.07214,92.193859 L 191.80362,94.090196 L 198.05976,95.508018 L 199.26491,94.852275 C 199.92992,94.496362 200.90703,93.686814 201.42709,93.044552 L 202.36639,91.874849 L 206.67303,93.186335 L 207.96679,91.43178 L 210.73154,91.821681 C 211.73407,93.278572 212.51334,94.994568 213.93936,96.075146 L 214.41788,96.075146 L 214.48877,95.082671 C 214.52898,94.53681 214.6325,93.45217 214.71917,92.672374 C 214.80582,91.892572 215.06482,90.680329 215.28629,89.978513 L 215.6762,88.702473 L 214.41788,88.702473 C 214.40141,87.554111 214.35547,86.384635 214.666,85.299701 L 217.96243,86.469404 L 217.30669,83.172968 L 218.03332,82.446335 L 217.74976,76.509206 L 216.11926,74.843266 z M 227.37322,77.643464 L 226.55798,78.742275 C 226.11522,79.347753 225.75767,80.113383 225.76045,80.443662 C 225.76329,80.773946 224.96248,81.719537 223.97045,82.534949 L 222.16273,84.005939 L 222.00322,86.079503 L 221.84372,88.135345 L 222.19818,88.135345 C 222.3944,88.135345 222.99431,87.729921 223.54511,87.231483 L 224.5553,86.327622 L 225.08699,86.646632 C 225.3811,86.828408 226.05501,88.280297 226.5757,89.872176 L 227.51501,92.778711 L 225.78653,94.568711 L 229.09233,93.806632 L 229.44679,94.37376 C 229.64029,94.686827 230.11935,94.940883 230.51016,94.940889 L 231.21907,94.940889 L 233.7357,91.538117 L 234.39144,91.538117 C 234.75191,91.538117 235.63671,90.975735 236.35867,90.297523 L 237.67016,89.074651 L 237.67016,87.142869 L 240.20451,85.459206 L 238.82214,83.793265 L 235.54342,84.27178 L 231.39249,78.82152 L 230.67516,80.482396 L 227.37322,77.643464 z \"},\"pa8\":{\"name\":\"PA-8\",\"path\":\"M 2304.2871,491.93098 C 2299.8714,497.91221 2298.5125,499.9537 2295.3194,506.00286 L 2321.5137,517.13276 L 2320.9288,518.42652 L 2320.6275,518.32019 L 2320.2731,519.01137 L 2321.3187,519.43672 L 2321.9922,518.78098 L 2321.0529,518.46197 L 2321.6023,517.16821 L 2325.0405,518.67464 L 2324.5088,519.70256 C 2324.0165,520.6893 2323.7918,521.41494 2324.0126,521.31533 C 2324.2334,521.21574 2325.3811,520.50008 2326.5647,519.72029 L 2328.7269,518.30246 L 2329.3826,515.18326 L 2331.3144,515.18326 L 2333.955,512.38306 L 2332.874,511.97543 C 2332.2814,511.7539 2331.4561,511.10628 2331.0485,510.53989 L 2330.3042,509.51197 L 2328.1065,509.51197 L 2323.7113,505.54207 L 2321.9745,505.54207 L 2318.5894,501.32405 L 2315.0803,501.58989 L 2312.9536,499.46316 L 2312.156,494.19949 L 2308.895,492.49811 L 2308.1861,493.63237 L 2305.4214,493.63237 L 2305.4214,491.93098 L 2304.2871,491.93098 z \"},\"ny12\":{\"name\":\"NY-12\",\"path\":\"M 2357.617,473.83418 L 2360.3418,474.88217 L 2360.5813,473.23533 L 2361.8389,472.12746 L 2359.8327,470.57046 L 2359.2938,469.76201 L 2359.1141,469.37277 L 2361.0903,467.6361 L 2364.1444,470.57046 L 2364.8331,468.59426 L 2363.3061,466.79772 L 2363.8151,466.4983 L 2363.0366,465.62997 L 2360.5214,467.66605 L 2359.5034,467.66605 L 2357.7667,471.94781 L 2357.617,473.83418 z \"},\"ny11\":{\"name\":\"NY-11\",\"path\":\"M 2362.0785,472.15741 L 2360.7909,473.3551 L 2360.4915,474.82228 L 2360.8208,475.87026 L 2361.2101,476.40923 L 2361.8389,475.72055 L 2361.779,474.88217 L 2362.7671,474.85222 L 2362.8869,473.71441 L 2363.9947,473.65452 L 2362.0785,472.15741 z \"},\"ny10\":{\"name\":\"NY-10\",\"path\":\"M 2361.1203,467.81576 L 2359.3237,469.40271 L 2359.8028,470.30098 L 2364.1744,473.68447 L 2363.0067,473.83418 L 2362.8869,474.97199 L 2361.9287,474.97199 L 2361.9587,476.49906 L 2362.7971,475.90021 L 2363.9947,476.97813 L 2367.0489,474.28332 C 2365.1625,471.34897 2363.9948,470.78006 2361.1203,467.81576 z \"},\"ny9\":{\"name\":\"NY-9\",\"path\":\"M 2362.7971,476.07986 L 2361.8988,476.67871 L 2361.809,476.04992 L 2361.3897,476.49906 C 2361.3897,476.49906 2361.779,476.94819 2361.6293,477.5171 C 2361.4796,478.086 2361.809,478.44531 2361.809,478.44531 L 2362.1084,480.60116 L 2371.8396,474.52286 L 2367.0788,468.59426 L 2366.4799,467.78582 L 2368.8155,465.5102 L 2367.5579,464.5221 L 2365.5218,465.89945 L 2365.7014,466.37852 L 2363.6953,466.79772 L 2365.0128,468.38467 L 2364.2642,470.51058 C 2364.2642,470.51058 2364.8032,470.98966 2366.3602,472.81614 C 2367.1098,473.6954 2367.2585,474.31326 2367.2585,474.31326 L 2363.9348,477.21767 L 2362.7971,476.07986 z \"},\"ny5\":{\"name\":\"NY-5\",\"path\":\"M 2369.0251,465.51019 L 2367.1986,467.21691 L 2369.1748,466.04916 C 2369.1748,466.04916 2369.7437,465.80962 2370.9114,463.89331 C 2372.0792,461.97699 2375.2531,459.94091 2375.2531,459.94091 L 2375.7321,459.61154 L 2370.7018,455.92863 L 2369.3245,455.56932 L 2368.2765,456.37777 L 2368.8454,457.06644 L 2365.8811,461.85723 L 2365.7314,462.48601 C 2365.7314,462.48601 2365.5218,463.23458 2365.3721,463.3244 C 2365.2224,463.41423 2363.2162,465.54014 2363.2162,465.54014 L 2363.9648,466.46835 L 2365.432,466.25876 L 2365.1625,465.89945 L 2367.468,464.22268 L 2369.0251,465.51019 z \"},\"ny6\":{\"name\":\"NY-6\",\"path\":\"M 2371.9295,474.46297 L 2374.6542,473.29522 L 2373.187,472.42689 L 2372.7679,469.67219 L 2371.5701,467.12709 L 2371.5103,463.71365 C 2370.6297,464.20551 2370.9841,464.55167 2369.564,466.0791 L 2367.2884,467.33668 L 2366.7494,467.78582 L 2371.9295,474.46297 z \"},\"ny4\":{\"name\":\"NY-4\",\"path\":\"M 2377.0197,472.42689 L 2374.8339,473.20539 L 2373.3367,472.36701 L 2372.9775,469.55242 L 2371.6899,467.0672 L 2371.6001,463.26452 C 2372.8377,461.89715 2374.225,460.91903 2375.8519,459.7912 L 2381.3613,465.95933 L 2380.3133,467.00732 L 2379.3252,466.25876 L 2378.427,467.21691 L 2380.3133,469.28294 C 2380.3133,469.28294 2378.0677,470.89983 2377.918,470.89983 C 2377.7682,470.89983 2376.4508,471.19925 2376.4508,471.19925 L 2377.0197,472.42689 z \"},\"ny3\":{\"name\":\"NY-3\",\"path\":\"M 2377.1465,472.39376 L 2379.655,471.34856 L 2381.2228,470.19884 L 2382.93,469.85044 L 2389.4451,465.53027 L 2390.1767,466.57547 L 2394.8105,464.27603 L 2393.6607,463.3005 L 2395.1937,462.22046 L 2394.8802,460.79202 L 2391.3613,463.23082 L 2389.898,461.3843 L 2387.6683,462.32498 L 2387.8076,463.1263 L 2387.076,463.68374 L 2386.0307,463.19599 L 2386.3095,465.32123 L 2385.1597,466.15739 L 2382.0938,460.19974 C 2382.0938,460.19974 2378.784,459.78166 2378.6447,459.74682 C 2378.5053,459.71198 2377.1117,458.98034 2377.1117,458.98034 L 2379.6898,455.46149 L 2377.1117,451.5594 L 2374.9865,452.53492 L 2373.3489,452.7788 L 2371.3283,453.71949 L 2371.3283,454.79953 L 2370.2482,455.42665 L 2375.9968,459.50293 L 2381.6061,465.94835 L 2380.317,467.27227 L 2379.4112,466.61031 C 2379.4112,466.61031 2378.5402,466.88903 2378.6447,467.13291 C 2378.7492,467.37679 2380.4215,469.18848 2380.4215,469.18848 L 2378.0872,470.93048 L 2376.6936,471.27888 L 2377.1465,472.39376 z \"},\"ny2\":{\"name\":\"NY-2\",\"path\":\"M 2394.8802,464.1715 L 2400.3849,460.37394 L 2397.1448,456.47185 L 2399.3048,453.78916 L 2396.5873,451.87296 L 2390.4206,453.26657 L 2388.6438,450.89744 L 2386.5882,450.89744 L 2384.7417,448.98123 L 2380.9441,448.56315 L 2380.526,449.74771 L 2379.446,450.33999 L 2376.6239,450.40968 L 2379.8989,455.28729 L 2377.5298,458.84098 L 2380.4563,459.81649 L 2382.1287,459.74682 L 2385.2294,465.80899 L 2386.1004,465.11219 L 2385.8217,462.84758 L 2387.0411,463.47471 L 2387.5637,462.98694 L 2387.2502,462.29014 L 2390.1767,461.2101 L 2391.3265,462.9521 L 2394.9847,460.54814 L 2395.3679,462.39466 L 2393.9395,463.3005 L 2394.8802,464.1715 z \"},\"ny15\":{\"name\":\"NY-15\",\"path\":\"M 2358.1821,458.68306 L 2357.6681,461.28831 L 2358.3593,461.64276 L 2358.1821,464.65293 L 2359.0862,465.10371 C 2358.7705,465.49613 2359.0247,465.55986 2359.0859,465.70128 L 2360.4329,466.46336 L 2361.195,464.81514 L 2359.5822,464.44296 L 2359.1746,463.75177 L 2358.7492,461.44781 L 2359.3518,458.75395 L 2358.1821,458.68306 z \"},\"ny7\":{\"name\":\"NY-7\",\"path\":\"M 2363.0907,462.93584 L 2361.3425,464.70369 L 2361.0086,465.82333 L 2361.7157,466.35368 L 2365.1533,463.30905 L 2365.5264,462.03227 L 2362.8354,460.20549 L 2363.3265,458.02514 C 2363.3265,458.02514 2364.1122,457.35728 2364.0925,457.27871 C 2364.0729,457.20014 2363.9943,456.25728 2363.9943,456.25728 L 2362.9729,455.88407 L 2362.8746,456.61086 L 2360.9889,458.41799 L 2361.0675,459.10549 L 2361.1461,461.10905 L 2363.1104,462.71977 L 2363.0907,462.93584 z \"},\"tx8\":{\"name\":\"TX-8\",\"path\":\"M 1498.8226,1218.9722 L 1497.263,1220.266 L 1495.0122,1219.6635 L 1479.3984,1221.8256 L 1473.2132,1223.6334 L 1473.0005,1224.7499 L 1450.7939,1231.6441 L 1430.4304,1225.7955 L 1418.9815,1239.1231 L 1417.0143,1236.6419 L 1411.4493,1238.5559 L 1408.9859,1234.9936 L 1407.639,1237.1381 L 1404.9628,1237.1381 L 1399.1675,1232.4593 L 1390.5365,1240.1687 L 1389.544,1242.8094 L 1382.7739,1242.8094 L 1382.4372,1243.3411 C 1382.2565,1243.6332 1381.3056,1244.2712 1380.3281,1244.7589 C 1379.3506,1245.2465 1378.2553,1245.645 1377.8824,1245.645 L 1377.2089,1245.645 C 1379.0904,1255.6888 1380.258,1264.7213 1381.6042,1275.4193 L 1382.5258,1292.7167 L 1389.7921,1291.352 L 1390.5365,1290.6254 C 1390.9486,1290.2207 1391.586,1289.8811 1391.9366,1289.8811 C 1392.2871,1289.8811 1393.2556,1289.2178 1394.0988,1288.4101 L 1395.6229,1286.9391 L 1398.0687,1288.2506 L 1399.1675,1291.1394 L 1403.1196,1290.395 L 1403.1196,1291.4584 L 1405.2818,1292.3268 C 1406.4692,1292.802 1407.7778,1293.5868 1408.1883,1294.0814 L 1408.9327,1294.9852 L 1411.2367,1294.9852 L 1419.5664,1286.372 L 1415.1534,1275.8269 L 1423.2704,1271.1658 C 1422.8324,1273.4944 1421.3247,1275.6513 1421.6576,1278.1309 L 1422.8628,1283.8021 L 1425.4858,1285.2023 L 1428.6759,1285.9821 L 1429.4557,1287.9847 C 1429.7884,1288.9305 1430.5028,1290.1571 1431.0507,1290.6963 L 1432.0432,1291.6711 L 1434.0459,1291.7597 L 1438.7956,1288.1265 L 1440.6742,1290.4482 C 1441.8398,1289.3023 1442.6319,1287.7597 1444.0238,1286.7619 L 1446.4873,1286.7619 L 1447.1607,1288.1443 L 1460.6477,1287.9493 L 1463.5366,1286.6732 L 1463.5188,1283.9439 L 1467.8255,1282.6324 L 1471.8308,1283.0755 L 1475.2159,1286.4783 L 1474.5424,1288.605 L 1477.0236,1288.9949 L 1477.9806,1291.6534 L 1481.9505,1293.213 L 1487.1079,1293.9928 L 1489.0396,1296.5803 L 1489.8372,1293.6915 L 1491.2196,1292.2027 C 1491.976,1291.3904 1492.8746,1290.1855 1493.2222,1289.5089 L 1493.8425,1288.2683 L 1492.5133,1287.8252 L 1492.9032,1287.01 C 1493.1133,1286.5608 1493.599,1285.7579 1493.9843,1285.22 L 1494.6932,1284.2452 L 1493.1513,1280.5235 L 1493.364,1274.5686 L 1491.8753,1274.5332 L 1490.0675,1272.0165 L 1490.5815,1267.7985 L 1493.2222,1265.1578 L 1492.6905,1264.3425 C 1492.4039,1263.8895 1492.1635,1262.9681 1492.1588,1262.3045 L 1492.1588,1261.0993 L 1491.0069,1259.9296 L 1491.1487,1256.7041 L 1493.2931,1254.8254 L 1493.2931,1251.8303 L 1496.2174,1249.1187 L 1496.5364,1245.3615 L 1499.0707,1240.8776 L 1498.3618,1236.4292 L 1500.2759,1233.5227 L 1497.8301,1231.8922 L 1497.8301,1229.1983 L 1498.6454,1229.1983 C 1499.0948,1229.1983 1499.6244,1228.9395 1499.8151,1228.6312 L 1500.1518,1228.0818 L 1498.2555,1224.0587 L 1498.8226,1218.9722 z \"},\"tx5\":{\"name\":\"TX-5\",\"path\":\"M 1407.5326,1113.1496 L 1381.7814,1114.7447 L 1384.0005,1129.9508 C 1379.5568,1129.7116 1381.398,1127.9215 1376.519,1127.383 L 1376.4646,1126.4948 L 1372.5479,1127.2392 L 1367.1881,1123.0826 L 1349.2424,1123.8896 L 1349.2424,1125.4138 L 1337.362,1125.7246 L 1337.3756,1122.4375 L 1333.6464,1121.4439 L 1330.5272,1122.0996 L 1330.598,1123.9073 C 1330.6329,1124.8967 1330.4728,1126.2715 1330.2436,1126.9734 L 1329.836,1128.2494 L 1331.9804,1128.2494 L 1333.5223,1130.0039 C 1334.3715,1130.9718 1335.0642,1132.0006 1335.0642,1132.2902 C 1335.0642,1132.5798 1334.7172,1132.957 1334.2844,1133.1231 L 1333.4869,1133.4245 L 1332.7957,1136.8804 L 1336.0781,1141.5811 L 1338.8049,1143.2161 L 1339.6073,1147.5617 L 1340.8418,1149.1268 L 1342.9199,1150.6545 L 1342.1763,1154.6031 C 1343.5564,1154.7706 1345.4207,1155.2683 1346.6359,1155.9278 C 1348.3352,1156.8501 1348.8316,1156.573 1350.1977,1156.8078 L 1351.1884,1159.5553 L 1354.1219,1160.3751 L 1356.0462,1162.8311 L 1357.9266,1162.1353 L 1357.1227,1164.7346 L 1358.5008,1165.6366 L 1360.8685,1165.3963 L 1360.5495,1169.5257 L 1363.332,1170.2169 L 1363.93,1177.8927 L 1365.8292,1177.8321 L 1366.5735,1180.774 L 1365.6828,1181.7459 L 1365.2946,1182.7001 L 1367.9399,1183.2609 L 1368.5882,1188.1587 L 1374.1354,1190.0019 L 1374.0889,1193.5978 L 1376.1042,1193.5335 L 1378.4376,1195.4347 L 1378.3536,1197.7476 L 1379.7388,1199.4834 L 1380.7345,1198.9691 L 1380.6981,1195.4741 L 1382.7499,1197.1612 L 1383.0929,1202.5433 L 1381.0016,1202.5433 L 1381.0016,1203.0395 C 1381.0016,1203.3131 1381.3419,1203.8237 1381.7637,1204.1738 L 1382.5435,1204.8118 C 1384.4514,1204.2842 1385.7267,1203.7039 1387.1602,1202.2801 L 1404.5374,1198.6974 L 1412.1987,1199.0727 L 1413.2752,1201.5122 L 1415.5965,1202.561 L 1415.5965,1205.3612 L 1420.7206,1207.8738 L 1426.9381,1202.1915 C 1425.8607,1197.6788 1424.1507,1199.4923 1422.8097,1195.4542 L 1421.3918,1188.2764 L 1422.1716,1187.9751 C 1422.6058,1187.8086 1423.0746,1187.2094 1423.0746,1186.9672 L 1420.3298,1185.8334 L 1422.402,1184.0229 L 1422.402,1182.1266 L 1420.1335,1182.1266 L 1419.017,1164.4216 L 1394.5418,1165.7153 L 1393.3544,1164.971 L 1394.0279,1161.4619 L 1392.7873,1159.7782 L 1394.081,1156.5526 L 1394.1519,1152.6536 L 1386.2475,1144.2885 L 1385.7868,1132.2193 L 1387.6477,1132.2193 L 1391.9366,1135.6221 L 1400.9398,1135.8524 C 1404.6984,1137.8617 1404.4922,1137.7801 1407.0895,1138.0146 L 1407.0895,1138.9894 L 1408.9504,1138.2805 L 1407.5326,1113.1496 z \"},\"fl8\":{\"name\":\"FL-8\",\"path\":\"M 2133.0143,1249.5441 L 2119.4032,1252.5215 C 2119.2398,1254.9592 2120.0008,1257.7821 2120.9273,1260.674 L 2126.0847,1262.2513 L 2127.0772,1265.6718 L 2134.3966,1268.4188 L 2136.2044,1265.3882 L 2140.8832,1271.4494 L 2141.6453,1277.2979 L 2146.0582,1279.2829 L 2148.3622,1288.1797 L 2147.157,1290.4482 L 2148.3976,1292.7699 L 2150.3649,1292.1496 C 2152.0569,1294.0009 2153.6779,1294.7516 2155.5399,1299.2387 L 2157.3959,1308.5343 L 2176.6596,1303.5414 L 2176.4528,1299.3627 L 2179.5543,1296.8993 L 2177.6392,1288.4022 L 2171.8626,1289.8456 L 2170.6752,1288.286 L 2166.1988,1289.1477 L 2167.5457,1295.7455 L 2165.0234,1296.2974 L 2163.5853,1290.3578 L 2161.0712,1289.4075 L 2157.6932,1286.8514 L 2154.748,1281.7929 L 2153.3935,1278.0718 L 2155.9406,1276.4748 L 2155.8717,1274.7261 L 2156.9912,1274.4052 C 2151.9133,1268.4192 2148.4764,1263.4069 2148.8939,1260.993 L 2145.562,1259.8233 L 2144.8186,1262.2986 L 2142.7106,1261.6093 L 2142.1947,1259.8233 L 2136.9842,1259.8233 L 2136.9842,1256.9876 L 2134.1485,1256.9876 L 2134.1485,1254.7191 L 2133.0143,1254.7191 L 2133.0143,1249.5441 z \"},\"sc6\":{\"name\":\"SC-6\",\"path\":\"M 2210.321,921.28288 L 2207.4145,923.8704 L 2199.4038,922.82473 L 2196.32,923.60453 L 2191.1273,929.70117 L 2181.7873,930.48097 C 2181.1204,932.61042 2179.7038,934.04685 2176.3996,933.74196 L 2168.5839,943.13503 C 2166.5569,942.5552 2166.0982,941.63304 2164.2241,941.16783 L 2158.925,947.90248 L 2157.454,947.90248 C 2156.4809,949.69744 2156.0177,952.05023 2156.2665,955.16882 L 2152.0485,957.65001 L 2149.2306,955.84228 L 2147.1393,956.55119 C 2145.5395,954.38652 2144.6392,952.18924 2144.8708,949.92288 L 2143.0453,947.90248 C 2142.0863,947.49869 2139.2496,948.96715 2136.3993,950.45456 L 2137.6222,953.89278 L 2128.1051,957.54367 C 2126.9927,957.99437 2126.2473,958.92463 2125.4644,959.81218 L 2123.7453,959.81218 L 2121.6717,957.93357 L 2121.6717,955.27516 C 2122.5997,955.63687 2123.2538,953.59662 2123.9934,952.26228 L 2122.3983,950.64948 L 2118.1803,951.44704 L 2117.0638,954.42446 L 2118.8183,958.1108 L 2120.2539,958.12849 C 2124.0865,963.07142 2121.3204,962.0304 2125.358,966.4405 L 2130.2495,968.33681 C 2131.6513,967.54073 2133.2793,968.55459 2134.8929,969.45337 L 2137.7152,969.65828 L 2133.7941,979.25404 L 2135.8853,983.48981 L 2134.3745,986.54918 L 2132.8149,986.46723 L 2132.3053,988.20407 L 2128.9912,989.92315 L 2119.7754,990.98651 L 2118.6366,992.50404 C 2120.3251,1002.8607 2121.8676,1008.892 2121.3529,1011.3033 L 2126.7406,1016.0884 L 2130.4976,1017.5707 L 2139.1109,1026.303 L 2141.4149,1027.0473 C 2144.4381,1030.4611 2145.8517,1032.8505 2147.2102,1035.2049 L 2151.8182,1036.4455 L 2153.36,1035.1694 C 2154.8523,1035.6196 2156.6537,1037.893 2158.7528,1040.3155 C 2162.605,1039.7406 2164.9212,1043.31 2167.875,1044.7928 L 2168.1762,1044.3498 C 2168.3367,1044.1023 2169.0217,1043.7285 2169.7004,1043.5168 L 2170.9233,1043.1269 L 2171.9512,1044.9524 L 2173.4222,1043.1801 L 2175.8325,1043.1801 L 2181.2911,1037.5088 L 2182.9216,1037.5088 L 2182.9216,1036.5518 L 2177.1243,1033.3823 L 2177.5547,1027.9723 L 2176.2078,1026.3595 L 2177.0858,1023.2484 C 2179.1459,1023.1441 2180.1359,1022.5292 2181.0411,1021.6551 L 2178.209,1018.6487 L 2176.0275,1018.7936 L 2172.7133,1015.4794 C 2173.5699,1014.024 2171.8486,1011.909 2169.407,1009.6098 L 2170.0965,1004.812 L 2167.8039,1002.7542 C 2171.6079,994.91206 2172.8714,993.43055 2174.8578,990.7207 L 2179.5543,989.28513 C 2180.0891,989.48022 2180.907,990.1471 2184.453,995.36083 L 2184.4955,997.96906 L 2190.2943,1005.8027 L 2190.2943,1012.6083 L 2186.1331,1014.0405 L 2186.1119,1016.3088 C 2188.4593,1017.3332 2190.2051,1019.2001 2191.2513,1021.2994 C 2192.3695,1019.3475 2192.9547,1017.3962 2192.6584,1015.8404 L 2195.1075,1014.6996 L 2195.0225,1012.381 L 2197.8582,1009.2054 L 2197.6882,1007.1597 C 2201.0492,1004.3151 2199.1411,1003.2553 2203.3733,995.82151 L 2206.2148,993.98969 L 2208.1002,994.54093 L 2209.0804,990.41938 L 2212.8445,988.89165 L 2214.1314,983.04671 C 2211.8772,982.37824 2212.6714,980.29126 2209.5766,978.93503 L 2209.5766,976.7374 L 2213.1212,971.79278 L 2212.3946,969.87872 L 2214.9112,957.38414 L 2217.2861,956.44486 L 2212.749,952.1382 L 2211.6325,946.62644 L 2208.1057,945.49219 C 2207.7551,943.84967 2207.1253,943.04531 2206.3688,942.6211 L 2206.2802,940.38803 L 2207.7689,939.99813 L 2207.574,938.06632 L 2209.8602,935.99278 L 2209.2222,933.60018 C 2211.3281,930.75223 2209.8853,930.04462 2213.4048,922.61206 L 2210.321,921.28288 z \"},\"la3\":{\"name\":\"LA-3\",\"path\":\"M 1598.3005,1252.6455 L 1596.7764,1253.5849 C 1598.3741,1256.2702 1600.0921,1257.3383 1601.4552,1259.965 C 1596.0316,1260.3465 1590.9576,1260.381 1585.5047,1260.7625 L 1585.5047,1262.7475 L 1587.5251,1262.6589 C 1586.5998,1265.5109 1587.3761,1266.5755 1588.1277,1267.6744 L 1586.6744,1269.234 L 1587.9327,1272.0874 L 1586.6035,1272.7786 L 1586.639,1274.3736 L 1590.3253,1273.8774 C 1590.0517,1280.0941 1588.4341,1282.8289 1587.2592,1286.5669 L 1589.5809,1297.4487 L 1591.8671,1295.7119 L 1593.7458,1294.808 L 1595.9966,1297.0588 L 1595.394,1298.6007 C 1595.0686,1299.4566 1594.8091,1300.7831 1594.8091,1301.5427 L 1594.8091,1302.925 L 1595.4117,1302.925 C 1595.7444,1302.925 1596.9105,1302.2489 1597.9992,1301.4186 L 1599.9842,1299.9122 L 1608.7038,1299.8058 L 1608.881,1304.91 L 1607.6227,1306.4342 L 1612.8687,1305.6544 L 1614.8713,1312.0346 L 1615.7574,1311.6623 C 1616.2431,1311.456 1617.2383,1311.1617 1617.9551,1311.0066 L 1619.2489,1310.7231 L 1620.7198,1312.7435 L 1624.2644,1312.0346 L 1625.2037,1313.7359 L 1629.1027,1314.2144 L 1629.3154,1314.8524 C 1629.4306,1315.1979 1630.1279,1315.7027 1630.875,1315.9867 L 1632.2396,1316.5007 L 1632.2396,1318.5742 L 1633.5157,1319.868 L 1632.8245,1321.6757 L 1630.0952,1320.9845 L 1628.8014,1324.8835 L 1626.3734,1325.9647 L 1629.6875,1328.3218 L 1631.9561,1328.9421 C 1633.2037,1329.2876 1635.2088,1329.5783 1636.4222,1329.5801 L 1638.6376,1329.5801 L 1639.8959,1331.2637 L 1646.2584,1331.4587 L 1647.5166,1330.6789 L 1649.3244,1332.2562 C 1650.321,1333.1258 1651.8594,1334.5281 1652.7449,1335.3754 L 1654.3576,1336.9173 L 1654.3576,1338.6542 L 1657.4768,1338.5655 L 1656.059,1337.9984 L 1656.059,1336.0134 L 1658.8415,1333.4082 L 1663.1481,1332.9297 L 1664.2824,1331.7777 L 1664.2824,1327.5951 L 1668.4473,1327.2584 L 1669.0675,1325.6102 L 1667.9865,1325.6102 C 1667.3909,1325.6102 1666.7949,1325.4187 1666.6572,1325.1848 C 1666.5195,1324.9509 1666.6322,1324.1714 1666.9054,1323.448 L 1667.4016,1322.1365 L 1669.8119,1322.8986 L 1670.698,1321.4631 L 1672.4526,1322.1897 C 1673.4172,1322.5892 1674.2071,1322.9958 1674.2071,1323.0936 C 1674.2071,1323.1914 1673.9463,1323.9605 1673.6223,1324.8126 L 1673.0374,1326.3722 L 1673.7641,1326.833 C 1674.1661,1327.0881 1675.0531,1327.3068 1675.7491,1327.3116 L 1677.0251,1327.3116 L 1677.2732,1326.0355 C 1677.4155,1325.3337 1677.6942,1324.0576 1677.8758,1323.1999 L 1678.1948,1321.6403 L 1680.6228,1321.6403 L 1682.5192,1323.5898 C 1683.5644,1324.666 1684.4155,1325.8018 1684.4155,1326.1064 L 1684.4155,1326.6558 L 1682.6786,1327.028 L 1684.4864,1329.5801 L 1686.7194,1329.5801 L 1687.4106,1331.4055 L 1685.8687,1332.3625 L 1686.4713,1332.9651 L 1690.9374,1330.608 L 1693.6313,1327.985 C 1695.1129,1326.5449 1696.3252,1325.1647 1696.3252,1324.919 C 1696.3252,1324.6733 1696.0446,1324.4759 1695.7049,1324.4759 C 1695.365,1324.4759 1694.6066,1323.9017 1694.0212,1323.1999 C 1693.4357,1322.4981 1692.9505,1321.7324 1692.9401,1321.4985 L 1692.9224,1321.0732 L 1695.1909,1321.0732 L 1694.9073,1319.6908 L 1697.5303,1319.2831 L 1696.3252,1317.8476 L 1695.6163,1310.9712 L 1696.3429,1308.0292 L 1697.1227,1308.0292 C 1697.5464,1308.0292 1698.2054,1308.412 1698.5937,1308.8799 C 1698.982,1309.3478 1699.6235,1309.7306 1700.0292,1309.7306 L 1700.7736,1309.7306 L 1704.265,1306.2392 L 1706.2499,1306.6468 L 1706.1081,1309.447 L 1707.6677,1310.3509 L 1707.6677,1312.9207 L 1706.0904,1315.0651 L 1706.6044,1316.4298 L 1711.0351,1316.4475 L 1714.5442,1316.3766 L 1719.861,1318.7515 L 1726.6665,1320.0807 L 1731.0441,1324.7595 L 1732.1606,1327.8787 L 1733.9506,1327.8787 L 1736.0242,1329.7573 L 1736.0951,1332.1322 L 1737.1584,1329.4738 L 1739.3206,1328.9066 L 1739.8877,1326.7445 L 1740.4903,1326.7445 C 1740.8191,1326.7445 1741.4173,1327.1476 1741.8195,1327.6306 C 1742.2218,1328.1134 1743.0402,1329.0066 1743.645,1329.6155 C 1744.2496,1330.2244 1744.8876,1330.7037 1745.0628,1330.6966 C 1745.2379,1330.6895 1745.7894,1329.8601 1746.2857,1328.8534 L 1747.1895,1327.028 L 1748.4301,1326.9571 C 1749.1136,1326.9212 1749.7499,1326.7936 1749.8479,1326.6736 C 1749.946,1326.5534 1750.3969,1325.676 1750.8582,1324.7241 L 1751.7089,1323.0049 L 1750.0075,1321.4099 L 1752.8786,1320.2225 L 1752.2937,1318.9464 C 1751.9793,1318.2446 1751.5254,1317.6704 1751.2835,1317.6704 C 1751.0415,1317.6704 1750.4449,1318.0659 1749.9543,1318.5565 L 1749.0681,1319.4604 L 1747.0832,1319.0705 L 1747.0655,1316.3412 L 1746.2148,1316.0753 C 1745.7536,1315.9262 1744.8197,1315.1871 1744.1235,1314.4449 C 1743.4272,1313.7025 1742.5646,1312.5564 1742.2094,1311.8928 L 1741.5537,1310.6876 L 1740.9689,1311.7687 C 1740.6433,1312.3644 1740.1022,1313.0341 1739.7637,1313.2574 L 1739.1434,1313.665 L 1737.8496,1312.2649 C 1737.1352,1311.4957 1736.3227,1310.8649 1736.0419,1310.8649 C 1735.761,1310.8649 1735.3662,1311.12 1735.1735,1311.432 L 1734.819,1311.9991 L 1732.4974,1311.9991 L 1733.0645,1309.8192 L 1725.9576,1309.447 L 1724.5044,1311.0066 L 1722.4308,1308.3128 L 1722.4308,1307.3557 C 1722.4239,1306.8283 1722.1709,1306.2409 1721.8814,1306.062 L 1721.3675,1305.7429 L 1720.6408,1308.0292 L 1720.0382,1308.0292 C 1719.7143,1308.0292 1718.9503,1307.3912 1718.3368,1306.6114 L 1717.2203,1305.1936 L 1714.7568,1305.1581 L 1713.7644,1304.4138 C 1713.2185,1303.9993 1712.7719,1303.3691 1712.7719,1303.0136 C 1712.7719,1302.6581 1712.9633,1302.3592 1713.1972,1302.3579 L 1713.6226,1302.3579 L 1713.8176,1298.388 L 1712.7719,1298.388 L 1712.7719,1296.1195 L 1715.1645,1296.1195 L 1714.4556,1293.3193 L 1716.0329,1293.5497 C 1716.8949,1293.6839 1718.7409,1293.9234 1720.1446,1294.0814 L 1722.6966,1294.3649 L 1721.2788,1293.7801 C 1720.499,1293.452 1718.9678,1292.8003 1717.8761,1292.3268 C 1716.7843,1291.8534 1715.5083,1291.2645 1715.0404,1291.033 L 1714.1897,1290.6254 L 1713.8176,1288.0911 L 1722.8207,1288.6405 L 1726.5425,1290.5722 L 1725.7627,1288.5164 L 1727.7477,1284.8478 L 1729.4667,1285.025 C 1730.4193,1285.12 1731.6502,1285.3776 1732.1961,1285.6099 L 1733.1885,1286.0352 L 1733.1885,1283.4122 L 1731.9657,1284.6528 L 1729.8566,1284.1035 L 1729.2541,1282.5084 L 1727.5172,1282.5084 L 1727.5172,1281.4627 L 1734.8899,1279.017 L 1734.8899,1278.4853 C 1734.8899,1278.1988 1734.7831,1277.9714 1734.6418,1277.9714 C 1734.5005,1277.9714 1733.7255,1278.2789 1732.9227,1278.6449 L 1731.4517,1279.3006 L 1730.1402,1277.9891 L 1732.8164,1275.1357 L 1735.457,1275.1357 L 1735.457,1272.8672 L 1733.8443,1272.8672 L 1733.419,1270.8823 L 1731.0263,1276.1814 L 1728.5806,1277.4928 L 1726.9501,1276.1282 L 1726.9501,1274.0015 L 1724.912,1274.0015 L 1724.2208,1273.328 C 1723.8465,1272.9537 1723.5473,1272.3382 1723.5473,1271.9633 L 1723.5473,1271.2722 L 1727.2337,1268.915 L 1722.0764,1268.8973 L 1720.7117,1267.5326 L 1720.7117,1270.4569 L 1716.9368,1273.0445 L 1716.7595,1279.9563 L 1714.3492,1281.9413 L 1710.5743,1281.9413 L 1707.3842,1279.1765 L 1708.8197,1276.8371 L 1708.3766,1276.8548 C 1708.14,1276.8647 1707.458,1277.2476 1706.8525,1277.7055 L 1705.7537,1278.5385 L 1703.0776,1278.5385 L 1701.1458,1275.1357 L 1700.1356,1275.1357 C 1699.5788,1275.1338 1698.5184,1275.5371 1697.7784,1276.0219 L 1696.4315,1276.908 L 1695.2441,1275.6497 L 1693.9326,1276.7308 L 1694.0566,1278.9816 C 1695.5454,1279.5892 1697.0341,1279.8392 1698.5228,1279.6728 L 1700.0292,1282.5084 L 1699.533,1282.8629 C 1698.669,1282.9482 1697.8768,1282.1744 1697.1227,1281.1615 L 1694.9605,1281.4982 C 1694.2354,1282.8924 1693.4985,1284.29 1692.1249,1285.4681 L 1691.1324,1286.1239 L 1691.5578,1290.1647 L 1688.598,1289.3317 L 1689.2538,1286.7619 L 1687.1802,1285.4504 L 1685.5904,1287.2811 C 1682.551,1286.8171 1680.72,1283.8281 1679.4286,1281.7253 L 1679.3124,1279.7905 C 1676.8583,1279.7429 1674.753,1280.094 1673.0729,1280.9311 L 1673.0729,1279.2474 L 1674.792,1277.8119 L 1673.0906,1275.1889 L 1673.7109,1273.5761 L 1678.177,1272.8495 L 1677.2502,1262.6664 L 1675.9802,1259.0903 L 1673.0608,1259.0903 L 1672.269,1260.3904 C 1670.4268,1260.5234 1668.2903,1261.1272 1665.8952,1262.1449 L 1663.9988,1266.0971 L 1663.2752,1266.7114 L 1658.0908,1264.5899 L 1656.6262,1265.4591 L 1656.2608,1268.0583 L 1655.0244,1268.0927 L 1652.2309,1265.0692 L 1647.8357,1264.5021 L 1642.2176,1265.4414 L 1642.2176,1266.487 L 1639.1693,1266.5047 C 1638.1832,1267.5338 1636.9855,1268.6214 1635.5361,1269.11 L 1634.9689,1274.4268 L 1634.0473,1274.48 L 1634.4727,1277.5992 L 1629.6344,1279.7614 L 1626.3025,1280.2045 L 1625.7531,1278.4853 L 1620.135,1279.1056 L 1619.5147,1276.713 L 1614.1978,1276.5181 L 1614.4814,1273.2039 L 1612.4079,1270.6519 L 1613.294,1269.0391 L 1607.0378,1268.2061 C 1607.3563,1267.1133 1605.9913,1265.4528 1604.7162,1263.8286 L 1604.7162,1261.8437 L 1603.1388,1260.9752 L 1604.8402,1260.6385 C 1605.0312,1259.632 1603.8322,1257.6542 1602.4831,1255.5698 L 1598.3005,1252.6455 z M 1593.0723,1308.0292 L 1592.4166,1309.7306 L 1588.8366,1309.7306 L 1587.4542,1311.9637 L 1588.4821,1312.513 C 1589.047,1312.8154 1591.1379,1313.6218 1593.1432,1314.3031 C 1595.1485,1314.9842 1597.0278,1315.7472 1597.3081,1316.0045 L 1597.8043,1316.4829 L 1600.9235,1316.2526 L 1602.235,1312.6194 L 1604.5921,1311.875 L 1603.8123,1311.3788 C 1603.3812,1311.1057 1602.4854,1310.8873 1601.8096,1310.8825 C 1601.1339,1310.8778 1600.4958,1310.6734 1600.3918,1310.4395 C 1600.2879,1310.2056 1599.3395,1309.5675 1598.3005,1309.0217 L 1596.4219,1308.0292 L 1593.0723,1308.0292 z \"},\"la7\":{\"name\":\"LA-7\",\"path\":\"M 1572.124,1315.3191 C 1571.0323,1315.282 1568.863,1315.0529 1567.3034,1314.81 C 1565.7438,1314.5671 1562.7859,1314.346 1560.7304,1314.3187 L 1556.9929,1314.269 L 1548.2137,1312.0236 L 1538.3798,1307.8593 L 1524.2016,1304.1121 L 1520.1284,1304.0607 L 1514.5604,1305.7498 L 1507.1625,1305.7621 L 1493.693,1308.5552 L 1489.7296,1311.1854 L 1488.1086,1309.5644 C 1487.217,1308.6728 1486.4875,1307.6997 1486.4875,1307.402 C 1486.4875,1307.1043 1486.1047,1306.7138 1485.6368,1306.5343 L 1484.7862,1306.2078 L 1484.7862,1304.858 L 1489.3313,1300.4198 L 1491.1074,1294.0899 L 1495.5616,1289.266 L 1495.5616,1287.6139 L 1493.6844,1287.6139 L 1495.7374,1285.3454 L 1494.8556,1285.3454 L 1496.1959,1283.7305 L 1493.9088,1279.2474 L 1494.6565,1278.4998 L 1494.3813,1274.4134 L 1491.5917,1272.2191 L 1491.5917,1268.3985 L 1492.2674,1267.7607 L 1505.5885,1267.0417 L 1505.3235,1264.2838 L 1505.0585,1261.526 L 1510.3069,1261.526 L 1510.3069,1266.6709 C 1514.5871,1266.2237 1518.8278,1265.8555 1522.8314,1265.9614 L 1524.4852,1264.3617 L 1527.7934,1264.3617 L 1528.1737,1263.2208 L 1543.0475,1261.7959 L 1542.9941,1258.9389 L 1544.7335,1258.3849 L 1550.8391,1258.9739 C 1550.8292,1256.9074 1551.7437,1255.6114 1552.8416,1254.4681 L 1552.2467,1252.0154 C 1554.424,1251.6778 1557.211,1252.2718 1560.2155,1252.4645 L 1563.2291,1250.607 L 1560.5673,1248.6857 L 1560.6305,1247.8305 L 1563.266,1246.9979 L 1562.4277,1245.7474 C 1563.7772,1244.7656 1566.1895,1244.6105 1568.3231,1244.2385 L 1568.5143,1243.1015 L 1572.0575,1244.0205 L 1574.1737,1242.888 L 1573.453,1238.4976 L 1571.4869,1237.9816 L 1571.5568,1234.4035 C 1579.1113,1233.4161 1585.546,1233.1286 1592.5406,1232.4911 L 1592.5406,1235.0863 L 1595.0963,1235.9772 C 1594.8922,1236.7623 1595.7546,1238.7394 1597.1324,1241.2925 C 1596.8476,1242.9241 1596.7423,1244.5793 1596.4819,1246.2135 C 1596.2703,1248.284 1596.6386,1250.3931 1597.8258,1252.5567 L 1596.3934,1253.442 C 1597.2988,1255.9188 1599.5719,1257.4822 1600.891,1259.6574 L 1585.1093,1260.4091 L 1585.1679,1263.2274 L 1587.0016,1263.2274 C 1586.0806,1265.0592 1586.667,1266.4603 1587.6916,1267.7361 L 1586.3899,1269.0378 L 1587.7067,1271.9278 L 1586.3022,1272.6409 L 1586.3022,1274.6554 L 1589.9885,1274.2885 C 1589.7225,1277.335 1589.134,1280.7919 1586.8379,1286.4222 C 1587.6019,1290.1436 1588.4182,1293.8547 1589.1378,1297.585 L 1585.2636,1299.0129 L 1580.0638,1303.5899 L 1580.0638,1304.3388 C 1580.0638,1304.7507 1580.6348,1306.1575 1581.3327,1307.465 L 1582.6016,1309.8424 L 1588.0036,1309.1257 L 1588.0036,1310.3272 L 1586.5488,1310.8803 C 1585.7487,1311.1844 1584.2073,1311.4333 1583.1235,1311.4333 L 1581.1528,1311.4333 L 1578.83,1312.7094 C 1577.5525,1313.4112 1575.9676,1314.3007 1575.3081,1314.686 L 1574.1089,1315.3865 L 1572.124,1315.3191 z \"},\"la5\":{\"name\":\"LA-5\",\"path\":\"M 1612.9041,1096.4902 C 1587.2385,1098.5503 1561.9357,1100.6507 1533.5592,1102.4096 L 1533.8073,1103.278 L 1534.8176,1118.0411 L 1529.5893,1118.75 C 1529.7698,1119.7356 1529.5364,1121.0892 1528.3133,1123.3225 L 1527.8702,1132.5029 L 1528.5614,1136.7563 L 1533.4352,1136.7563 C 1534.3188,1142.1223 1534.5566,1145.3747 1534.853,1150.9168 C 1534.0609,1151.5737 1533.3488,1152.9907 1532.8681,1156.6058 L 1526.7891,1156.6058 C 1526.7658,1160.2778 1530.5001,1156.0232 1529.7134,1175.0198 L 1527.6044,1175.6047 L 1526.6296,1183.9521 L 1544.9727,1181.9849 L 1544.6182,1176.7389 L 1557.8572,1175.8173 L 1560.0725,1177.7136 L 1558.3711,1181.1164 L 1559.8067,1182.0203 L 1558.442,1186.6637 C 1559.1561,1187.8238 1560.7349,1188.2429 1562.536,1188.4714 L 1563.1917,1191.7678 L 1564.6804,1191.7678 L 1565.0349,1194.3199 L 1568.1541,1193.9477 L 1568.1541,1195.4542 L 1545.7525,1202.6496 L 1542.3497,1202.2597 L 1542.4206,1199.1405 L 1541.5699,1199.1405 L 1541.2155,1196.1099 L 1539.7267,1195.6136 L 1539.1652,1197.6539 C 1537.0806,1198.2527 1533.6456,1203.6073 1531.3262,1203.6775 L 1531.9819,1205.3789 C 1530.441,1205.4212 1529.5381,1206.1015 1528.9336,1207.0803 C 1530.8709,1207.1412 1532.701,1207.2481 1533.5592,1207.7715 L 1533.5592,1209.2779 L 1535.6505,1209.9336 L 1536.9089,1214.1694 L 1538.8229,1235.4367 L 1530.6704,1235.4367 L 1531.0071,1241.9055 L 1533.8428,1242.579 C 1534.8577,1245.9103 1536.7412,1247.5044 1538.8428,1248.6623 L 1541.5699,1245.0779 L 1544.9195,1245.0425 C 1544.4563,1249.0866 1543.9976,1253.1614 1543.0764,1254.152 L 1544.9195,1254.152 C 1543.9956,1256.2841 1543.9199,1257.6892 1545.1854,1257.9447 L 1550.5731,1258.6713 C 1550.6034,1257.1649 1550.9682,1255.6584 1552.3986,1254.152 L 1551.8314,1251.9366 C 1552.8463,1251.4763 1555.7177,1251.5465 1560.0194,1252.0252 L 1562.5891,1250.6429 L 1560.2143,1248.9769 L 1560.2143,1247.4882 L 1562.5891,1246.8502 L 1561.9334,1245.7691 C 1563.0187,1244.8287 1565.5304,1244.3162 1568.1541,1243.8373 L 1568.1541,1242.6853 L 1571.9645,1243.3942 L 1573.595,1242.774 L 1573.1519,1238.9458 L 1570.9897,1238.3787 L 1570.9897,1233.8239 L 1593.1077,1231.9631 L 1593.1077,1234.7987 L 1595.3763,1235.5076 C 1595.7485,1237.9119 1596.635,1239.6734 1597.6271,1241.3029 C 1596.8306,1245.3951 1596.4581,1249.2792 1598.141,1252.1316 L 1602.7844,1255.3394 C 1603.7991,1257.1107 1605.1796,1258.7449 1605.0174,1260.9575 L 1603.5996,1261.0461 L 1605.0174,1261.6132 L 1605.0174,1263.6336 L 1606.1517,1265.0869 C 1606.7755,1265.88 1607.286,1266.808 1607.286,1267.1427 L 1607.286,1267.7453 C 1612.9814,1268.9542 1617.08,1268.7437 1621.4287,1268.7555 L 1622.0845,1266.682 L 1623.6795,1267.3023 L 1626.5329,1265.211 L 1626.5683,1263.6336 L 1628.8014,1261.9677 L 1622.1022,1262.7829 L 1618.7881,1259.3802 C 1615.514,1258.5917 1618.5225,1258.0891 1611.2559,1252.486 L 1611.2559,1251.7239 L 1614.6586,1251.3163 L 1614.6586,1250.3239 C 1612.8841,1249.4698 1610.5254,1249.4944 1608.1366,1249.5618 L 1607.2151,1244.4753 L 1610.4052,1239.4066 L 1613.3294,1240.2219 L 1617.0512,1237.9002 L 1615.6865,1235.5785 L 1612.4256,1237.7052 L 1609.0405,1237.7052 L 1606.8252,1238.7332 L 1603.706,1237.0849 L 1607.2683,1234.2493 L 1607.5873,1228.454 L 1605.3896,1226.6817 L 1602.5717,1227.426 L 1602.4122,1228.3299 L 1604.6984,1228.1881 L 1605.8504,1231.6618 L 1600.1968,1231.7504 C 1600.2765,1226.8632 1599.9252,1223.8717 1599.2221,1222.4282 L 1597.5562,1221.0458 L 1596.7055,1222.4282 C 1595.9508,1222.2044 1595.3081,1221.1092 1594.8091,1220.5319 L 1599.2398,1219.0431 L 1600.5867,1220.6382 L 1599.8424,1221.8256 L 1600.2146,1221.8256 L 1603.8832,1219.4862 L 1603.8832,1217.9443 L 1599.9133,1215.4986 L 1599.931,1214.5416 C 1599.9409,1214.0212 1600.3238,1213.1089 1600.7817,1212.5035 C 1601.2396,1211.8979 1601.6147,1211.0475 1601.6147,1210.6249 L 1601.6147,1209.8627 L 1599.931,1208.9057 C 1599.0001,1208.3744 1598.0946,1207.5806 1597.9283,1207.1512 L 1597.6271,1206.3714 L 1598.8677,1204.8649 L 1604.7339,1204.5282 L 1605.0883,1202.0825 L 1604.0604,1201.3204 C 1603.4968,1200.8956 1602.7154,1200.0431 1602.3236,1199.4241 C 1601.9317,1198.8049 1601.4461,1197.9423 1601.2425,1197.51 L 1600.8703,1196.7124 L 1601.4374,1195.8086 C 1601.7545,1195.3051 1602.4249,1194.8085 1602.9262,1194.7098 L 1603.8477,1194.5326 L 1604.2022,1195.9681 C 1604.3999,1196.7558 1604.9129,1197.6901 1605.3365,1198.0417 L 1606.0986,1198.6797 L 1607.3746,1197.8822 L 1604.2908,1194.6566 L 1603.3515,1188.755 L 1603.9541,1187.7979 L 1606.4707,1187.7979 L 1607.7291,1186.9118 C 1608.4223,1186.4262 1608.9873,1185.7846 1608.9873,1185.4762 L 1608.9873,1184.9091 L 1604.9997,1185.6534 L 1603.3161,1184.2534 L 1603.3161,1181.6304 L 1604.4503,1180.9215 L 1605.7087,1181.8076 C 1606.4024,1182.2935 1607.4227,1182.6938 1607.9772,1182.6938 L 1608.9873,1182.6938 L 1608.9873,1176.3845 L 1610.1925,1174.1336 L 1610.5824,1168.2851 L 1611.5926,1167.5585 C 1612.1482,1167.1523 1612.9488,1166.8142 1613.3649,1166.8142 L 1614.1269,1166.8142 L 1614.6941,1168.3206 C 1615.007,1169.1436 1615.3907,1169.6796 1615.5448,1169.5257 C 1615.6987,1169.3717 1615.5997,1168.654 1615.3321,1167.9307 L 1614.8359,1166.6192 L 1618.4336,1163.4645 L 1618.4336,1160.0618 L 1619.9046,1158.3072 L 1620.8616,1158.3072 C 1621.3876,1158.3072 1622.312,1157.9362 1622.9174,1157.4742 L 1624.0163,1156.6235 L 1623.1656,1156.0564 C 1622.6977,1155.7434 1621.7327,1155.494 1621.0211,1155.4893 L 1619.7273,1155.4716 L 1619.0362,1153.6816 L 1619.9578,1152.7777 L 1623.396,1153.3625 C 1623.2909,1152.1358 1624.0862,1151.8481 1624.8669,1151.0231 L 1626.5683,1149.3218 L 1626.5683,1147.5318 L 1625.505,1147.5318 L 1625.1505,1150.013 L 1618.345,1150.0839 L 1618.345,1145.1037 L 1619.1957,1144.7138 C 1619.6635,1144.4944 1620.6249,1144.0109 1621.3224,1143.6505 C 1622.02,1143.2901 1622.9771,1142.9948 1623.4491,1142.9948 L 1624.2998,1142.9948 L 1624.2998,1141.8605 L 1626.338,1141.8605 L 1627.8267,1143.2783 L 1627.0291,1138.4577 L 1627.7912,1138.3868 C 1628.2085,1138.3499 1628.765,1138.3566 1629.0318,1138.4045 C 1629.2985,1138.4524 1629.8728,1138.1985 1630.3079,1137.8374 C 1630.7429,1137.4764 1631.1054,1136.9591 1631.1054,1136.6854 L 1631.1054,1136.1892 L 1629.723,1136.1892 C 1628.9635,1136.1892 1627.6874,1135.9439 1626.8873,1135.6398 L 1625.4341,1135.0904 L 1625.4341,1134.3637 C 1625.4359,1133.9661 1625.831,1132.8931 1626.3025,1131.9889 C 1626.7741,1131.0847 1627.0617,1130.2491 1626.9405,1130.128 C 1626.8193,1130.0068 1626.0686,1130.2092 1625.2746,1130.5711 L 1623.8213,1131.2268 L 1619.4792,1129.1001 L 1619.2843,1128.0722 C 1619.1786,1127.5016 1619.2543,1126.417 1619.4438,1125.6619 L 1619.7805,1124.2795 L 1620.4894,1124.2972 C 1620.8734,1124.3042 1621.8186,1124.8038 1622.5984,1125.4138 C 1623.3782,1126.0237 1624.3869,1126.5233 1624.8493,1126.5303 L 1625.6999,1126.548 L 1623.6087,1125.1302 C 1622.4611,1124.3504 1621.1389,1123.7124 1620.6667,1123.7124 L 1619.7982,1123.7124 L 1624.3707,1119.193 L 1623.6087,1117.9348 L 1622.2972,1120.5577 L 1617.9196,1122.2237 L 1616.36,1120.0969 L 1616.36,1117.474 L 1620.897,1113.061 L 1620.0109,1112.7243 C 1619.5152,1112.534 1618.2699,1112.3698 1617.2462,1112.3698 L 1615.3853,1112.3698 L 1614.6764,1107.2656 L 1615.9347,1104.5363 L 1618.026,1103.9692 L 1619.3552,1101.0804 L 1617.4411,1097.0573 L 1616.3423,1097.0573 L 1616.6436,1101.7184 L 1614.8359,1102.9058 L 1611.9471,1102.1792 L 1611.2736,1100.4069 L 1612.9041,1096.4902 z \"},\"wv2\":{\"name\":\"WV-2\",\"path\":\"M 2052.1984,718.79786 L 2049.7949,713.98254 L 2047.4675,713.9201 L 2046.5966,712.55672 L 2047.0943,711.0274 L 2045.0385,709.33991 L 2044.1824,709.93267 L 2042.7434,708.29872 L 2040.7871,708.29872 L 2039.6603,705.57616 L 2036.2305,705.48587 C 2036.1012,706.30231 2036.5798,707.14835 2035.3574,707.64867 L 2033.7809,705.45632 L 2031.4271,708.29197 L 2032.1241,705.79564 L 2030.527,700.83598 L 2029.2909,700.95281 L 2028.1015,701.90383 L 2025.8362,701.60178 L 2022.166,705.75571 L 2020.0915,705.2132 L 2017.6595,693.73236 L 2009.2447,688.30964 L 2010.5145,687.52485 L 2010.4784,684.47256 L 2008.8131,682.2708 L 2008.8131,680.98807 C 2008.8131,680.28256 2008.5169,679.05529 2008.1549,678.26086 C 2007.7929,677.46637 2007.2825,676.81632 2007.0207,676.81632 L 2006.5446,676.81632 L 2006.5446,675.31264 L 2009.3395,672.68695 L 2008.9115,669.16009 L 2010.1705,664.05593 L 2012.3347,661.58784 L 2011.6302,660.44797 L 2012.955,659.62915 L 2014.3258,661.50385 L 2016.7267,661.50385 L 2018.4631,664.15382 L 2017.7682,667.6281 L 2020.2369,668.41165 L 2022.4242,666.4322 L 2022.4242,665.19682 C 2022.4242,664.51734 2022.578,663.80758 2022.766,663.61952 L 2023.1079,663.27766 L 2025.8674,664.32679 L 2026.521,662.62365 L 2025.0883,660.89742 L 2025.1833,657.55612 C 2024.167,656.80848 2023.1946,656.02516 2022.4242,655.04204 L 2024.1612,654.69831 L 2024.7771,653.09322 C 2027.5019,654.00306 2030.2066,654.97614 2032.9489,655.83256 L 2038.2849,648.74345 L 2044.1078,643.74563 L 2043.1734,646.59982 C 2045.3021,646.35363 2047.1958,648.25748 2048.1699,652.91565 C 2049.5479,651.58579 2052.2051,651.02342 2055.2171,650.67396 L 2055.9517,651.86266 L 2058.1447,651.86266 L 2060.9889,654.33574 L 2062.3307,661.59737 L 2060.1099,665.9329 L 2065.3924,668.85384 C 2069.1421,664.54451 2072.9373,660.2742 2076.6487,655.93181 C 2078.1287,655.51213 2079.429,654.99021 2080.2713,653.62893 L 2073.5106,648.35758 L 2072.7104,643.72947 L 2078.2863,637.85833 L 2093.9543,638.89787 L 2095.3885,637.70764 L 2099.1384,638.78309 L 2100.7787,641.12499 L 2104.9414,640.80365 L 2105.312,643.41817 L 2103.716,645.53765 C 2105.4794,645.85172 2109.119,644.42375 2113.1648,642.61846 L 2113.6755,635.53712 L 2115.5623,633.31891 C 2116.4485,634.6186 2117.5008,635.84717 2117.2806,637.62104 C 2124.3759,638.24312 2131.4712,638.855 2138.5665,637.70826 L 2150.2549,644.50627 L 2151.6277,643.07217 L 2153.3562,636.26662 L 2149.8772,630.12422 L 2152.0122,617.50107 C 2154.9975,612.19201 2156.1085,610.78803 2157.1597,609.50841 C 2157.4007,607.40085 2160.1127,601.91178 2163.4559,595.55909 L 2171.6521,595.2314 L 2174.5607,592.32277 L 2173.2515,590.74524 L 2175.0761,590.04501 L 2174.6219,588.68231 L 2176.3681,586.64286 L 2180.6531,586.64286 L 2183.2052,580.90057 L 2187.5809,581.44717 L 2192.0228,585.01673 L 2198.2341,583.6267 L 2198.2341,582.67296 L 2199.9354,582.67296 L 2199.9354,584.2979 L 2197.6669,585.01792 L 2200.9225,589.36695 L 2203.0547,589.77177 L 2203.4135,592.88128 L 2206.1069,592.88128 L 2206.9288,598.09313 L 2208.4359,598.67143 L 2206.5135,609.89514 L 2178.132,595.71692 L 2178.0053,600.30312 L 2178.9978,600.91653 L 2178.2632,603.23121 L 2179.7479,604.14876 L 2177.0212,609.97023 L 2178.5017,610.88517 L 2177.2503,613.50366 L 2178.8823,615.41597 L 2173.0742,625.42244 L 2174.3562,625.84977 L 2173.1392,628.52061 L 2171.7919,628.00361 L 2169.868,632.69797 L 2168.3569,632.11808 C 2166.4564,632.99854 2164.8698,637.43599 2163.4624,643.90494 L 2156.4486,640.52009 L 2154.7457,644.48999 L 2153.7463,650.59779 L 2154.6425,653.12957 L 2152.4375,653.3795 L 2150.7759,664.36774 L 2148.0678,670.14961 L 2140.1279,669.41167 L 2135.2515,663.83719 L 2130.1106,663.06623 L 2130.7494,661.40148 C 2130.104,660.58544 2129.8293,659.69533 2129.6824,658.68817 L 2127.3248,656.9172 L 2126.3955,659.42924 L 2125.6052,658.15059 L 2123.9402,658.78957 L 2123.9402,657.14263 L 2121.8343,655.23679 L 2120.7064,656.68326 C 2120.0981,660.57002 2119.1232,664.27348 2119.3803,668.59296 L 2113.0689,675.11494 L 2108.6982,675.11494 L 2104.8109,680.2191 L 2105.3206,672.56286 L 2098.3302,663.06759 L 2097.0964,664.30144 L 2094.5088,661.50941 L 2091.832,662.60164 L 2089.4147,662.22138 L 2088.1132,668.67043 L 2082.6415,677.24746 L 2078.2863,677.79666 L 2076.5147,676.26644 L 2071.9766,680.98886 L 2075.1671,681.35335 L 2075.4574,682.98164 L 2058.2547,699.78504 C 2057.2613,702.36468 2056.1436,704.44701 2054.7098,705.26486 L 2055.4841,718.21672 C 2054.2941,718.69481 2053.0684,719.27986 2052.1984,718.79786 z \"},\"ms3\":{\"name\":\"MS-3\",\"path\":\"M 1720.6586,1047.7171 L 1718.5353,1048.7437 L 1716.3022,1048.0348 L 1715.5368,1049.6518 L 1717.5125,1050.8363 L 1718.9402,1064.9948 L 1719.9837,1067.1129 L 1725.2232,1066.5457 L 1724.0068,1069.0078 L 1725.2133,1070.8099 L 1722.5194,1073.1912 L 1720.0205,1071.8443 L 1718.9841,1072.9062 L 1713.9062,1073.2379 L 1713.4469,1078.9637 L 1708.8155,1079.3488 L 1710.0426,1090.6594 L 1703.0244,1091.4569 L 1703.6433,1098.3476 L 1705.5056,1100.3715 C 1704.9283,1102.0221 1704.4176,1103.6267 1702.1205,1106.4681 L 1705.3992,1110.8633 L 1705.3992,1112.9369 L 1703.8574,1112.9369 L 1698.6646,1108.967 L 1695.12,1108.967 L 1692.054,1111.3064 L 1690.8311,1108.4885 L 1685.9042,1112.1926 L 1684.3269,1109.995 L 1681.3494,1112.5647 L 1681.3494,1116.3397 L 1675.5186,1116.3397 C 1673.7227,1120.0393 1671.9268,1122.402 1670.1309,1123.9959 L 1667.1003,1119.4589 L 1662.1202,1120.3096 L 1657.7959,1116.8005 L 1655.9527,1118.2538 L 1654.0741,1118.3247 L 1654.3576,1123.8542 L 1665.0976,1122.9857 L 1665.8243,1128.0544 L 1675.0578,1127.5405 C 1671.5964,1130.6007 1674.0886,1129.596 1670.6271,1133.7789 C 1670.601,1134.4319 1670.5602,1135.0931 1669.6701,1135.7461 L 1668.3586,1138.2982 L 1670.2904,1140.6022 L 1667.4016,1142.8707 L 1667.2421,1146.3621 L 1668.3586,1147.5318 L 1667.8978,1151.5017 L 1669.103,1152.2283 C 1669.103,1152.63 1669.8634,1153.8422 1670.7867,1154.9222 C 1671.7097,1156.0021 1672.3158,1157.8625 1672.3285,1158.1831 L 1674.8984,1160.0972 L 1674.3667,1162.8088 L 1675.625,1163.2696 L 1674.9161,1164.014 C 1674.5262,1164.4272 1674.2071,1165.0017 1674.2071,1165.2723 L 1674.2071,1165.7508 L 1676.3871,1165.0596 L 1676.7592,1165.6976 L 1676.5997,1167.0445 L 1667.3485,1172.4146 L 1663.8216,1172.255 L 1663.0418,1173.7615 L 1659.3023,1173.1057 L 1644.4329,1174.8071 L 1644.8051,1180.1948 L 1623.0415,1182.2684 L 1622.1554,1180.8328 L 1619.0184,1181.6304 L 1615.8106,1180.3012 L 1616.4309,1179.291 L 1614.6586,1179.291 L 1614.6586,1178.4757 C 1614.4399,1177.1615 1613.9392,1175.9455 1613.3471,1174.754 L 1612.6205,1174.754 C 1612.225,1174.754 1611.498,1175.15 1611.0077,1175.6401 L 1610.1216,1176.5439 L 1610.1216,1183.1368 L 1607.2683,1183.8635 L 1606.1694,1183.2786 C 1605.5725,1182.9591 1604.7854,1182.6938 1604.4149,1182.6938 L 1603.7414,1182.6938 L 1605.2479,1184.5192 L 1610.1216,1183.9698 L 1610.1216,1186.575 L 1607.1265,1188.9322 L 1604.7339,1188.9322 L 1605.1415,1194.054 L 1608.438,1197.2973 L 1607.7291,1199.1405 L 1604.4326,1199.1405 L 1603.7768,1197.7227 C 1603.4216,1196.9429 1602.9221,1196.3049 1602.6603,1196.3049 C 1602.3985,1196.3049 1602.1818,1196.4392 1602.1818,1196.6061 C 1602.1818,1196.773 1602.6161,1197.6025 1603.1566,1198.4493 C 1603.6971,1199.2961 1604.5902,1200.328 1605.1415,1200.7355 L 1606.1517,1201.4799 L 1606.1517,1204.7763 L 1603.9541,1205.946 L 1599.3462,1205.946 L 1599.3462,1206.4068 C 1600.1672,1207.6906 1601.5614,1208.4591 1602.7489,1209.3843 L 1602.7489,1211.9363 L 1601.1362,1214.6833 C 1602.426,1215.5886 1603.7216,1216.4626 1605.0174,1217.3595 L 1605.0174,1219.8938 L 1602.938,1221.4968 C 1637.9065,1218.3513 1670.5543,1215.2058 1695.8289,1212.0604 C 1695.2189,1210.9675 1694.9236,1209.8746 1695.1909,1208.7817 L 1690.4655,1208.7817 L 1692.9401,1203.1104 L 1694.0566,1203.1104 L 1694.0566,1197.9708 L 1692.3907,1197.3328 L 1694.1098,1194.7275 L 1696.077,1195.2415 L 1699.3735,1188.3651 L 1702.5636,1188.3651 L 1702.5636,1184.6078 L 1715.5539,1183.3013 L 1713.8911,1167.6244 L 1717.911,1171.1258 L 1720.1446,1170.146 C 1721.4052,1167.6991 1720.9857,1166.484 1720.3927,1165.3963 L 1717.3621,1165.7153 L 1716.2744,1162.9284 L 1717.5859,1160.3033 L 1717.0608,1155.2766 C 1719.533,1154.534 1721.4413,1153.439 1722.9093,1152.0688 C 1724.1995,1153.1119 1725.9153,1153.8511 1728.0844,1154.2664 L 1728.0844,1151.9625 L 1730.2289,1151.3953 L 1730.8846,1148.1166 L 1730.2643,1146.5039 L 1727.2514,1145.7418 L 1724.9297,1148.666 L 1722.7453,1148.666 L 1721.1548,1144.129 L 1722.4308,1144.129 L 1721.7042,1139.6629 L 1725.5323,1138.6704 C 1725.7027,1136.7015 1725.6646,1134.7016 1725.9931,1132.751 L 1760.1271,1128.1608 C 1759.673,1106.3502 1759.7414,1084.4833 1758.5498,1062.6928 L 1740.6627,1064.8373 L 1738.1687,1047.8057 L 1722.1379,1049.5192 L 1720.6586,1047.7171 z \"},\"il19\":{\"name\":\"IL-19\",\"path\":\"M 1664.9913,662.47721 L 1663.7153,663.66467 L 1652.9398,664.83437 L 1647.5698,667.26236 L 1646.8255,670.5588 L 1644.9114,672.15385 L 1644.7165,675.43259 L 1641.3669,679.36704 L 1641.4732,682.82295 L 1645.7089,683.05338 L 1648.2433,704.03714 L 1663.9988,703.29278 L 1663.9988,697.2316 L 1668.5359,697.2316 L 1668.9258,699.571 L 1673.7818,698.93298 L 1672.3817,683.62051 L 1678.0353,683.62051 C 1678.6677,686.28516 1678.7411,688.07944 1678.7442,690.42605 L 1684.8231,690.42605 L 1685.4257,698.13543 L 1680.481,698.91523 L 1681.0481,707.35127 C 1675.2419,707.27573 1675.5765,706.61463 1670.2372,708.09563 L 1670.2372,711.79972 L 1655.3856,713.1112 L 1654.8007,715.36196 L 1649.2535,716.08863 L 1649.2535,721.75991 L 1643.4759,721.051 L 1644.2557,716.47853 L 1628.0748,718.19761 L 1625.1683,696.20368 L 1615.1194,697.30249 L 1613.5244,695.24665 L 1612.337,697.2316 L 1609.4481,697.2316 L 1610.2279,702.05219 L 1612.0889,703.50546 L 1612.0889,708.00704 L 1616.2714,708.00704 C 1616.9558,711.92046 1617.44,716.15419 1617.2107,721.52949 L 1625.505,723.798 L 1629.3685,722.18526 L 1633.941,722.18526 L 1636.2095,738.22434 L 1651.3093,736.80652 L 1654.4994,763.88691 L 1681.5798,761.28169 L 1681.5798,767.04157 L 1702.9712,764.38315 L 1707.0829,797.45384 L 1697.0341,798.87167 L 1696.0062,794.49417 L 1690.6539,794.15741 L 1692.8692,817.17932 L 1698.3101,817.17932 L 1698.8772,821.04288 L 1705.9309,823.04553 L 1709.0856,825.24315 L 1714.7568,825.98751 L 1718.7091,828.80546 L 1719.6661,828.80546 C 1720.1901,828.80546 1721.0242,828.65483 1721.5092,828.46869 L 1722.3776,828.13199 L 1723.1043,824.26843 L 1722.4131,821.53912 L 1718.2305,817.23246 L 1718.2837,815.49563 C 1718.3115,814.54654 1718.5173,812.42116 1718.7445,810.76367 L 1719.1698,807.7508 L 1721.8637,805.97852 L 1725.0184,806.61654 L 1725.6918,805.53543 C 1726.0626,804.94164 1727.0813,804.10564 1727.9426,803.67456 C 1728.8039,803.24338 1731.3869,802.41526 1733.6848,801.8314 L 1737.8496,800.76803 L 1738.4522,799.22612 L 1734.3405,795.85879 L 1732.0366,790.6306 L 1733.4721,786.6607 L 1736.5382,784.39219 L 1735.9533,783.43516 L 1731.6112,783.43516 L 1730.8314,778.22466 L 1721.846,779.53615 L 1721.846,784.56942 L 1715.7316,784.56942 L 1715.1822,776.87773 C 1718.4352,775.75476 1721.9498,775.4725 1725.3728,775.49536 L 1724.593,768.15813 L 1729.7858,766.86434 L 1728.9351,753.18236 L 1732.5505,752.22533 L 1732.905,747.98962 L 1736.5913,747.63516 L 1736.5913,744.78177 L 1739.7991,745.49068 L 1741.1283,742.5487 L 1741.1283,739.32315 L 1743.9994,738.59655 L 1745.0982,735.70771 L 1743.964,724.59556 L 1747.3667,722.82328 C 1747.362,722.62717 1747.1706,722.1949 1746.9414,721.8485 C 1745.7452,720.74833 1744.2799,720.03244 1742.8297,719.31417 L 1742.8297,714.13912 L 1733.4544,715.4683 L 1730.6364,695.63655 L 1705.9663,698.50764 L 1703.9814,681.63556 L 1698.5937,682.02546 L 1698.5937,680.21774 C 1697.5157,680.14656 1696.273,679.10923 1695.0137,677.94922 L 1691.8768,677.94922 L 1691.1501,674.67048 L 1686.684,675.27305 L 1686.684,670.57655 L 1670.9462,672.29563 C 1669.8817,664.52217 1670.4078,663.13315 1669.0321,662.63675 L 1664.9913,662.47721 z \"},\"ga2\":{\"name\":\"GA-2\",\"path\":\"M 1969.3445,1058.3508 L 1966.2784,1060.7611 L 1957.7715,1060.7611 L 1957.7715,1062.8524 L 1962.9997,1070.4909 L 1963.7972,1086.2819 C 1962.2604,1086.3828 1959.4513,1090.7065 1953.837,1093.6546 L 1946.7125,1093.6191 L 1944.1604,1090.8189 L 1939.0562,1090.8189 C 1939.244,1093.3483 1939.4454,1095.8883 1937.8157,1097.0041 L 1941.0412,1097.7662 L 1944.7275,1100.5132 L 1944.0456,1102.3657 C 1941.3756,1104.9178 1938.6673,1107.4727 1937.4081,1109.9241 L 1938.4182,1116.96 C 1938.1048,1120.6404 1937.1025,1124.3209 1935.5471,1128.0013 C 1936.8958,1130.5584 1938.1016,1133.2203 1937.922,1136.8981 L 1942.4945,1141.4706 L 1942.0514,1142.7112 L 1943.4338,1145.5468 L 1943.2743,1162.2062 L 1942.5122,1162.986 L 1944.249,1166.3534 L 1943.6287,1167.9307 L 1948.4848,1172.4854 L 1950.9659,1177.4301 L 1950.9659,1179.8936 C 1951.7596,1180.1231 1952.2618,1180.4352 1952.6673,1181.1164 C 1956.4073,1187.7378 1959.0061,1194.5116 1961.2882,1194.8009 C 1991.7952,1191.4414 2022.8708,1188.0345 2049.0792,1185.0332 L 2049.0792,1179.7518 C 2044.3702,1175.2825 2040.4131,1168.6811 2034.5111,1162.4721 L 2027.2448,1157.6338 L 2027.2271,1156.3045 L 2026.2168,1156.8362 L 2026.1991,1159.0161 C 2018.0759,1159.478 2010.4078,1160.3278 2003.7089,1159.3883 C 2003.7369,1151.5643 2003.4176,1142.0227 2004.4356,1139.0249 L 2017.5327,1139.1312 L 2017.2137,1133.0523 L 2014.6616,1130.5534 L 2015.7073,1116.9068 L 2026.3941,1116.9068 L 2026.3941,1105.9896 C 2027.3393,1102.2546 2029.2336,1097.9614 2029.2297,1094.7888 L 2019.5708,1094.7888 L 2020.6873,1074.9748 L 2025.0471,1072.334 L 2021.0063,1070.9162 L 2017.3909,1067.8325 L 2016.2212,1064.731 L 2001.9366,1064.5538 L 1998.5693,1066.0247 C 1997.7101,1068.5019 1995.8893,1069.7365 1993.3411,1071.7138 L 1991.9764,1068.9136 C 1985.8009,1066.8829 1980.4899,1063.4374 1975.8133,1058.9711 L 1969.3445,1058.3508 z \"},\"ga10\":{\"name\":\"GA-10\",\"path\":\"M 2026.9419,1035.2081 C 2024.184,1034.2652 2020.4909,1033.7258 2016.4693,1033.2567 L 2016.1062,1028.7197 C 2014.4832,1027.0777 2013.4377,1025.2433 2012.783,1023.2786 L 2012.783,1016.6661 L 2004.8675,1013.4687 L 2002.7942,1011.4223 L 2002.084,1011.4223 L 2000.8597,1005.3853 C 2001.3552,1002.8669 2003.2569,999.80758 2007.2245,995.99715 L 2007.9691,989.1134 C 2004.0549,985.93816 2003.2794,984.82999 2002.6066,983.78937 L 2003.7115,981.44003 C 2004.9154,981.37181 2006.7628,979.7408 2008.7286,978.45354 L 2008.7073,974.27533 L 2003.187,970.58899 L 1996.8959,970.58899 L 1994.1466,967.84494 L 1991.6175,967.74002 C 1991.7991,964.12957 1993.2829,964.60743 1995.8872,957.27213 C 1993.3762,955.33601 1990.8309,952.88516 1988.2392,949.73833 C 1986.799,946.53865 1986.0018,943.33891 1985.2772,940.13923 L 1981.5547,934.85988 C 1974.8425,929.47284 1973.339,929.50659 1966.324,925.14922 C 1981.4951,922.71063 1993.085,920.08357 2005.3394,917.49145 L 2004.6962,920.70787 L 2002.2236,923.38863 C 2000.8637,924.86305 1999.7484,926.37019 1999.7451,926.73781 C 1999.7417,927.10542 1999.3965,927.74871 1998.9779,928.16731 C 1998.5593,928.58591 1997.9016,929.5173 1997.5164,930.2371 L 1996.816,931.54575 L 1997.3849,933.02828 L 1995.6335,935.52887 L 1996.8405,938.17798 L 1999.5658,939.75891 C 2001.0647,940.62838 2002.3762,941.54066 2002.4801,941.78617 L 2002.6692,942.23256 L 2006.3139,942.23256 L 2007.6178,943.22503 C 2008.335,943.77089 2009.5951,944.81259 2010.418,945.53988 C 2011.241,946.26717 2013.0223,947.367 2014.3766,947.98392 L 2016.8389,949.10565 L 2017.5329,948.52961 C 2017.9146,948.21281 2019.2453,947.79076 2020.4899,947.59175 L 2022.7529,947.22987 L 2024.3698,950.26072 C 2025.259,951.92768 2026.597,953.92959 2027.3431,954.70939 C 2028.0892,955.48919 2029.4568,956.96543 2030.3825,957.98994 L 2032.0654,959.85268 L 2032.0654,960.70638 C 2032.0654,961.17596 2032.5862,962.58108 2033.2228,963.82887 L 2034.3803,966.09767 L 2035.6331,966.62255 C 2036.3222,966.91122 2037.3326,967.5033 2037.8784,967.93829 C 2038.4243,968.37322 2038.8709,968.95339 2038.8709,969.22754 C 2038.8709,969.50175 2039.5151,970.36685 2040.3025,971.14999 C 2041.0898,971.93314 2042.3021,973.45123 2042.9964,974.52345 L 2044.2586,976.47301 L 2047.945,977.42698 L 2047.945,978.50577 L 2050.1909,979.65154 C 2051.4262,980.28173 2052.782,980.79731 2053.2039,980.79731 C 2053.6259,980.79731 2055.2949,981.43595 2056.9128,982.21649 C 2058.5309,982.99703 2059.8562,983.82646 2059.8582,984.05966 C 2059.8602,984.29286 2060.6258,984.91841 2061.5596,985.44975 L 2063.2574,986.41585 L 2063.2574,988.5613 L 2064.4568,989.64168 C 2065.1164,990.23592 2065.873,991.28908 2066.138,991.98211 L 2066.6199,993.2421 L 2070.7506,994.96798 L 2071.7145,994.37233 L 2075.4791,995.94526 L 2079.8628,1000.0797 L 2080.8043,1000.0797 C 2081.3221,1000.0797 2082.0102,1000.3441 2082.3334,1000.6672 L 2082.9209,1001.2548 L 2082.5091,1003.9282 C 2082.2827,1005.3986 2082.2142,1006.7967 2082.3571,1007.0351 C 2082.4999,1007.2735 2083.6563,1007.9988 2084.9267,1008.647 C 2086.1972,1009.2952 2087.5449,1010.1134 2087.9217,1010.4653 L 2088.6067,1011.1052 L 2088.1013,1013.0377 L 2089.8294,1013.9314 C 2090.7799,1014.4229 2091.953,1014.825 2092.4364,1014.825 L 2093.3153,1014.825 L 2093.3153,1016.5264 L 2095.4676,1018.6787 L 2089.081,1019.4767 L 2085.336,1022.7648 C 2084.0886,1022.6557 2082.9325,1022.8386 2082.0861,1024.0125 L 2075.3733,1024.0125 L 2067.7055,1020.7799 L 2058.9212,1012.0527 L 2056.9552,1007.6927 C 2052.2425,1007.0465 2046.8693,1006.1311 2044.2019,1006.3181 L 2042.917,1005.0332 L 2041.412,1005.8062 L 2041.2303,1007.0874 L 2043.9904,1009.5742 L 2044.3496,1016.5677 L 2046.23,1019.8016 C 2045.3353,1020.6136 2044.3436,1021.3771 2044.5422,1022.7357 L 2041.3078,1024.4083 L 2039.5053,1026.564 C 2038.514,1027.7496 2037.5191,1028.9087 2037.2944,1029.1396 C 2037.0698,1029.3706 2036.0835,1030.2 2035.1027,1030.9828 C 2034.1219,1031.7656 2033.1175,1032.406 2032.8707,1032.406 C 2032.6239,1032.406 2031.8952,1032.8975 2031.2512,1033.4983 L 2030.0804,1034.5904 L 2026.9419,1035.2081 z \"},\"nc5\":{\"name\":\"NC-5\",\"path\":\"M 2138.4339,793.27127 C 2111.0674,798.07326 2081.3023,803.83472 2058.809,806.68744 L 2057.7634,809.80664 L 2058.8267,812.89041 L 2057.7811,817.76414 L 2058.809,820.86565 L 2059.8547,820.86565 L 2059.8547,822.62018 L 2054.0948,822.35437 L 2050.2844,826.51919 L 2051.3832,827.19265 L 2050.4439,830.50684 L 2052.1453,832.3677 L 2053.5631,831.94236 C 2055.7041,833.91534 2056.5687,835.11714 2056.9304,836.49714 C 2058.7078,836.38479 2062.8594,834.33757 2069.8503,833.92731 C 2078.6173,835.24032 2080.0833,835.95377 2082.5576,839.49226 C 2082.5518,841.93891 2082.7008,844.72725 2084.2589,850.88803 L 2085.4286,850.92347 C 2086.4107,849.84746 2090.7846,848.33595 2093.3861,847.62704 L 2094.2191,850.07278 C 2095.7012,850.29839 2096.6808,848.15901 2097.5687,844.7205 L 2103.8603,847.94605 L 2104.4452,850.12592 L 2107.5112,851.31338 L 2109.6025,854.6807 C 2110.8893,855.09805 2112.1833,855.49805 2113.4483,855.97444 L 2114.0154,840.62652 C 2121.8839,842.01984 2122.8635,843.36478 2127.3075,844.68506 C 2125.9478,843.56867 2126.0738,842.48284 2126.278,841.17096 L 2128.6784,839.01371 L 2129.9656,839.09924 L 2130.0729,841.67731 L 2129.9477,838.66918 L 2127.7922,836.80378 L 2128.4039,835.80263 L 2130.1964,836.30216 L 2128.7393,830.47888 C 2131.1183,828.37069 2133.054,827.85903 2134.6877,828.43416 L 2135.0896,827.72904 C 2133.0173,825.8016 2133.0559,823.87416 2133.0143,821.94671 L 2128.5836,817.21476 L 2132.9788,813.04988 L 2133.6346,815.10572 L 2138.1184,815.86783 L 2138.1184,818.86295 L 2141.0418,824.94745 L 2144.7568,824.91949 C 2143.507,821.13719 2142.6603,815.7539 2141.671,810.0175 L 2153.666,807.89729 L 2151.889,805.26961 L 2152.9701,802.85932 L 2151.3042,799.66922 L 2147.8659,803.10744 L 2146.5899,800.34268 L 2140.5465,805.49998 L 2138.4339,793.27127 z \"},\"nc10\":{\"name\":\"NC-10\",\"path\":\"M 2050.1903,826.86003 L 2046.7044,838.16308 C 2045.2654,839.41796 2043.4696,840.31601 2041.1926,840.73285 L 2040.0406,838.58843 L 2036.6201,838.07444 L 2035.9644,840.14803 L 2035.1491,840.21892 C 2034.7023,840.25788 2034.0985,840.32174 2033.8022,840.3607 C 2033.5059,840.39966 2032.9337,840.7506 2032.5439,841.1405 C 2032.154,841.53041 2031.5615,841.84942 2031.2147,841.84942 L 2030.5766,841.84942 L 2028.1914,844.85378 L 2031.0135,843.58942 L 2031.8811,845.27555 L 2032.0654,846.38644 L 2034.947,846.40805 L 2036.512,848.40531 L 2038.8886,845.76612 L 2040.2639,850.1401 L 2042.9925,852.52726 L 2043.7175,857.14028 L 2044.7032,857.71325 L 2046.3134,855.74747 C 2046.8116,855.384 2047.1296,855.22106 2047.4848,855.31498 C 2048.1635,854.9358 2049.0613,853.67983 2049.9014,852.6548 L 2051.1816,853.05214 L 2051.1753,850.27604 L 2052.4077,849.62129 L 2051.7922,847.96482 L 2052.4523,847.97299 C 2053.3718,848.6718 2054.1749,849.95249 2054.9218,851.5138 L 2053.6418,855.57535 L 2052.0426,855.58998 L 2052.0184,857.08555 L 2058.8362,861.28015 L 2062.4426,869.51463 L 2061.5505,872.0924 L 2056.3379,874.0583 L 2054.0433,873.34621 C 2046.1123,876.66187 2045.5503,876.24118 2043.017,876.81988 L 2043.369,880.44337 L 2041.9227,880.17722 C 2042.0421,881.77233 2041.8602,883.60835 2042.7362,884.5981 L 2046.7134,884.16266 L 2047.8817,882.84879 L 2049.6801,883.51216 L 2052.5431,882.45679 L 2055.3917,883.70227 L 2058.4511,880.50411 C 2061.0039,881.15126 2062.7958,882.09621 2063.4746,883.47666 L 2062.8276,886.9594 L 2066.3884,892.20148 L 2066.3916,893.20195 L 2094.6295,889.14874 L 2096.7712,884.75622 L 2096.1332,883.09028 L 2094.0774,884.9512 C 2091.7142,884.78038 2090.2343,883.96178 2088.7782,883.12572 L 2088.7782,881.05219 L 2093.4543,878.32969 L 2093.4164,877.39727 L 2091.5185,876.99914 L 2090.5137,874.36931 L 2106.9727,871.53781 L 2106.9618,865.95238 L 2108.6687,864.49776 L 2116.8247,863.01698 L 2114.5471,856.89602 L 2109.4784,855.05285 L 2107.2099,851.56149 L 2104.197,850.2677 L 2103.6477,848.17642 L 2097.8346,845.23444 C 2097.119,847.06394 2096.8199,849.39937 2094.8572,850.25001 L 2093.971,850.42724 L 2093.2089,847.99919 C 2089.759,849.27636 2085.656,850.62726 2085.8717,851.4906 L 2083.8541,851.46741 C 2082.4603,847.13494 2082.1045,843.24512 2082.0654,839.71315 C 2080.414,836.191 2075.0134,834.93668 2070.063,834.3881 C 2063.4636,834.76439 2061.0825,836.06771 2056.5923,836.90751 C 2056.3313,835.26029 2055.0399,833.76023 2053.4922,832.29681 L 2052.1275,832.8108 L 2050.0717,830.55998 L 2050.8679,827.46261 L 2050.1903,826.86003 z \"},\"nc11\":{\"name\":\"NC-11\",\"path\":\"M 2030.8848,843.88977 L 2028.1841,845.09265 L 2026.9612,849.59424 L 2022.371,853.72367 L 2019.0037,853.05021 L 2018.2948,848.56632 L 2016.6465,847.9283 L 2011.5069,853.0679 L 2011.2411,857.26823 L 2009.7524,858.20751 L 2007.0585,856.43523 L 2005.8356,857.64038 L 2006.2787,859.25318 C 2006.5254,860.13381 2006.6608,861.10343 2006.58,861.41536 C 2006.4992,861.72728 2006.3564,862.3653 2006.261,862.83318 C 2006.1655,863.30106 2005.4913,864.83372 2004.7546,866.23595 L 2003.4077,868.78803 L 1999.3491,868.43357 L 1995.2906,871.05654 L 1994.1386,873.51998 L 1991.5334,873.89219 L 1991.3207,875.00869 C 1991.2042,875.61955 1990.7258,876.70424 1990.2574,877.41899 L 1989.4067,878.71278 L 1988.042,878.71278 L 1986.6951,880.1483 L 1985.1709,881.26486 C 1984.3306,881.88473 1983.3038,882.78193 1982.9024,883.24981 C 1982.501,883.71769 1981.8483,884.55443 1981.4491,885.11067 L 1980.7225,886.1209 L 1977.621,886.38671 C 1975.9088,886.52645 1973.0087,886.99326 1971.1877,887.43238 L 1967.8735,888.22988 L 1964.2403,891.75674 L 1962.3085,891.75674 L 1962.3085,892.27067 C 1962.3085,892.55634 1961.1426,894.02378 1959.721,895.53166 L 1957.1335,898.27872 L 1957.7538,902.35496 L 1957.3639,902.74486 C 1957.1518,902.9568 1956.9085,903.63548 1956.8145,904.25127 L 1956.6372,905.36783 L 1957.1846,907.76412 L 1954.6523,910.29476 L 1949.4302,912.23695 L 1947.6341,910.47199 L 1945.1706,913.94565 L 1945.9859,927.34407 C 1965.4358,923.78845 1984.4551,920.41738 2005.1267,916.3382 L 2019.8721,908.48704 L 2022.1584,908.43384 L 2023.4166,907.33503 C 2024.116,906.73625 2024.6927,905.94517 2024.6927,905.5805 L 2024.6927,904.92473 L 2026.2168,904.53483 C 2027.0556,904.32431 2028.5044,903.60775 2029.4424,902.93978 C 2030.3805,902.27182 2032.05,901.26573 2033.1465,900.70671 C 2034.2429,900.14769 2035.4388,899.69654 2035.8049,899.69654 L 2036.4784,899.69654 L 2038.3215,896.8609 L 2040.0052,896.8609 L 2040.0052,897.92427 C 2044.7831,896.18318 2056.4114,895.15968 2066.0931,893.29859 C 2066.6677,892.51051 2064.2316,889.40639 2062.6194,886.93615 L 2063.2397,883.53337 C 2062.2393,882.05952 2060.2026,881.2141 2058.5171,880.84575 L 2055.3708,884.02961 L 2052.482,882.71813 L 2049.6641,883.78149 L 2047.8386,883.09028 L 2046.7346,884.45343 L 2042.6281,884.96889 C 2041.5469,883.77758 2041.7621,881.72208 2041.7065,879.84704 L 2043.1244,880.1306 L 2042.8408,876.49741 C 2045.9551,876.07949 2049.7713,874.79761 2054.0593,872.93516 L 2056.4696,873.69721 L 2061.5206,871.76545 L 2062.2295,869.53238 L 2058.685,861.37991 L 2051.9149,857.16189 L 2051.9149,855.4605 L 2053.5277,855.4605 L 2054.8214,851.52605 C 2054.1407,850.26226 2053.4101,849.0532 2052.3756,848.08783 L 2051.9503,848.08783 L 2052.5529,849.68288 L 2051.3477,850.42724 L 2051.3477,853.28057 L 2049.9477,852.81978 C 2046.1208,857.6668 2048.1396,853.51667 2044.7194,857.90625 L 2043.5497,857.17958 L 2042.8231,852.60711 L 2040.0406,850.17912 L 2038.7114,846.17377 L 2036.496,848.92077 L 2034.8479,846.67001 L 2031.7818,846.67001 L 2031.6046,845.37622 L 2030.8848,843.88977 z \"},\"al5\":{\"name\":\"AL-5\",\"path\":\"M 1791.0838,993.94704 C 1790.1059,988.5389 1789.8665,983.29494 1788.15,977.72268 L 1758.1422,980.83638 L 1758.1422,961.07076 L 1755.3857,960.37892 L 1752.0866,955.49055 C 1794.7441,951.45293 1837.8639,945.10393 1880.9256,939.04563 L 1883.3136,946.78966 L 1881.7668,948.09638 L 1881.1534,952.82187 L 1878.8134,954.82718 L 1875.9003,961.5231 C 1871.0681,966.6044 1867.0958,970.92689 1867.2684,971.59219 L 1862.3403,974.23353 C 1861.035,972.80902 1861.1394,971.88204 1861.0457,970.88515 C 1857.4963,970.63623 1858.4387,968.7465 1857.7774,966.25063 L 1851.7168,967.08215 L 1849.4734,968.62508 L 1849.4254,972.85751 L 1846.4735,973.10846 L 1844.7362,975.75128 L 1844.2063,975.26599 L 1842.8164,976.23283 L 1839.4352,975.40193 C 1838.8202,971.99797 1837.9821,974.42227 1837.3392,970.7952 L 1834.7836,970.72232 L 1833.2405,973.10846 L 1832.0641,973.13636 L 1830.2671,970.3859 L 1827.0429,973.37036 C 1823.7857,974.04967 1819.7146,972.87804 1814.9715,970.58582 C 1815.9591,976.37376 1818.6087,979.67003 1820.7038,981.88506 L 1818.8823,984.08183 L 1817.6288,983.5214 L 1816.7006,979.13477 C 1815.0114,977.84104 1814.004,977.60091 1813.1237,977.55713 L 1813.1537,975.16595 L 1810.847,974.22134 L 1809.9282,974.33147 L 1811.3047,991.34227 L 1791.0838,993.94704 z \"},\"al2\":{\"name\":\"AL-2\",\"path\":\"M 1888.1742,1078.2712 L 1861.4305,1082.4006 L 1860.6153,1085.1476 L 1846.0649,1087.5579 L 1846.7029,1090.1277 L 1835.6439,1091.6696 C 1836.704,1094.6146 1838.5101,1097.873 1837.3984,1098.9359 L 1840.5708,1104.7136 L 1842.0063,1104.9262 L 1841.3152,1106.7162 L 1844.2926,1109.5696 L 1842.5026,1111.6431 C 1842.8502,1112.8242 1842.772,1114.0065 1842.0418,1115.1877 L 1844.7002,1117.7043 L 1840.2518,1118.6791 L 1841.4747,1128.8697 L 1844.0267,1128.8697 C 1844.31,1130.5322 1844.73,1132.1932 1844.8597,1134.0093 L 1842.3608,1134.7182 C 1842.9309,1139.2621 1843.3895,1144.0487 1844.3989,1147.5672 L 1838.958,1150.8459 L 1836.4768,1150.9346 L 1836.6895,1154.0006 L 1833.2159,1156.3045 C 1832.7188,1172.5608 1828.9947,1165.0255 1823.8405,1177.8554 L 1820.4732,1181.3468 L 1855.5111,1176.6503 L 1856.096,1181.1696 L 1859.7646,1180.6379 L 1861.4128,1191.8742 C 1910.7149,1184.702 1936.3599,1180.7776 1949.814,1178.0858 L 1947.4214,1173.3361 L 1942.3881,1168.2851 L 1942.973,1166.0698 L 1941.2539,1162.7556 L 1942.2641,1161.4264 L 1942.0691,1144.9797 L 1940.35,1140.9744 L 1936.7877,1137.4121 L 1936.2384,1133.1586 L 1935.1395,1132.4674 L 1935.1395,1131.3509 C 1935.141,1130.7366 1934.9617,1129.0221 1934.7496,1127.5405 L 1934.3774,1124.8466 L 1935.5294,1124.8466 L 1935.9548,1123.287 C 1936.1896,1122.4293 1936.4293,1121.3446 1936.4865,1120.8767 C 1936.5437,1120.4089 1936.7606,1119.1328 1936.965,1118.0411 L 1937.3372,1116.0561 L 1936.7523,1114.2839 L 1930.7443,1115.294 L 1925.8351,1110.5266 L 1917.2218,1112.1039 L 1916.4243,1107.1593 C 1915.4285,1106.8085 1903.6495,1108.5841 1894.4658,1109.8709 L 1892.7112,1109.1797 L 1893.2606,1107.3365 L 1891.9491,1105.8833 L 1891.701,1107.9037 L 1886.8627,1108.6657 L 1889.716,1127.6291 L 1873.3934,1129.9508 L 1872.649,1124.8998 L 1867.1904,1125.5555 L 1865.4004,1114.0003 L 1867.598,1110.3849 L 1867.598,1106.0251 L 1873.677,1109.4633 L 1876.8139,1108.01 L 1875.3784,1099.8752 L 1876.1936,1099.4853 L 1877.2215,1100.974 L 1878.6748,1099.5562 C 1879.7007,1100.6856 1880.8759,1100.6831 1882.0421,1100.7614 L 1885.5335,1098.9536 L 1884.9487,1097.2346 L 1887.8374,1097.9789 L 1887.8197,1096.7915 L 1890.8503,1096.9864 C 1890.5217,1092.4041 1889.2125,1089.4435 1888.6527,1084.4564 C 1887.5411,1084.1711 1886.9254,1083.3804 1886.7386,1082.1702 C 1888.077,1081.1909 1888.0112,1079.6913 1888.1742,1078.2712 z \"},\"al4\":{\"name\":\"AL-4\",\"path\":\"M 1775.2021,1074.9828 L 1772.9283,1073.4276 L 1773.5865,1069.3712 L 1771.2156,1067.3411 L 1772.8785,1065.5037 L 1770.3693,1063.1616 L 1770.3277,1060.2546 C 1771.0511,1060.4318 1772.5928,1058.2452 1774.3048,1055.5665 L 1772.3007,1054.101 L 1772.8245,1050.1491 L 1770.016,1050.1287 L 1768.9325,1052.1532 L 1766.7397,1051.5798 L 1768.0015,1055.6598 L 1766.9743,1057.4923 C 1765.4365,1057.884 1763.7908,1056.8195 1762.0311,1054.2148 C 1761.3383,1053.8643 1760.3958,1054.3935 1759.703,1054.8149 L 1758.1234,981.42268 L 1787.7236,978.32508 L 1790.6206,994.52426 L 1811.9336,991.84758 L 1810.4118,974.6941 L 1812.5865,975.24739 L 1812.5865,977.96166 C 1814.2198,978.18001 1815.492,978.68714 1816.4624,979.43575 L 1817.2668,983.72352 L 1818.9194,984.35769 L 1821.3305,981.94659 C 1818.2918,978.38474 1815.6752,974.80276 1815.389,971.10979 C 1818.9741,972.8511 1822.6719,974.29189 1827.0429,973.93749 L 1830.2839,970.87256 L 1832.0072,973.42463 L 1833.5304,973.42463 L 1834.8773,970.97906 L 1837.0792,971.15612 C 1837.6927,974.26279 1838.9036,972.52216 1839.1186,975.62884 L 1842.9279,976.6605 L 1844.1665,975.70302 L 1844.7592,976.29567 L 1846.5895,973.50239 L 1849.7335,973.14107 L 1849.7335,968.74463 L 1852.002,967.32 L 1857.3897,966.64081 C 1857.5346,969.72894 1858.5826,971.37208 1860.7925,971.15612 C 1860.6631,972.82229 1861.3345,973.81403 1862.3215,974.54001 L 1867.5267,971.79743 C 1867.5636,970.65427 1872.3212,965.86929 1876.3007,961.68467 L 1879.1321,954.99295 L 1881.2876,953.22748 L 1881.9234,948.48776 L 1883.4642,947.209 L 1890.0273,966.60928 L 1887.7131,968.67714 L 1887.4475,971.9535 C 1886.6661,976.2098 1886.2831,973.95887 1879.7913,984.19118 L 1877.9395,984.42143 L 1877.9063,985.90147 L 1875.982,985.90147 L 1877.651,994.58545 L 1880.216,992.82594 L 1879.5077,993.68775 L 1884.2661,1001.2916 L 1884.2661,1004.3366 L 1877.7945,1004.0916 L 1876.2378,1005.1336 L 1876.3263,1007.0066 L 1873.1891,1007.0509 L 1872.2704,1010.5091 C 1871.0943,1010.6561 1870.1327,1011.2677 1869.6624,1012.9437 L 1868.1063,1012.0295 L 1860.2701,1016.1614 L 1860.9011,1014.8675 L 1859.5413,1013.2205 L 1854.0308,1012.0994 L 1850.3145,1016.5635 L 1850.2536,1015.9578 C 1848.0997,1017.3907 1845.6863,1018.5669 1843.6481,1018.4947 L 1843.3437,1021.0634 L 1840.8221,1021.329 L 1834.1698,1017.6607 L 1828.052,1017.6607 L 1822.5445,1022.1977 L 1820.761,1022.1977 L 1820.6094,1029.0475 L 1819.2707,1029.0032 L 1819.9236,1030.7046 L 1818.2578,1030.7046 L 1818.2578,1032.9731 L 1815.4222,1032.9731 L 1815.4222,1034.1074 L 1813.4325,1034.6829 L 1813.3811,1037.6661 L 1814.2781,1038.4652 C 1813.5312,1039.299 1812.5525,1039.4378 1811.4523,1039.2116 L 1811.4523,1040.8773 L 1810.1935,1040.3573 L 1809.5296,1041.6571 L 1807.9167,1041.6571 L 1807.5087,1037.4662 C 1805.7837,1037.5334 1804.2386,1037.4533 1803.7961,1036.4711 L 1791.0357,1037.7388 L 1791.0357,1039.2472 L 1789.2252,1039.9419 L 1789.8703,1043.1677 L 1780.7571,1044.4061 L 1784.1915,1067.3279 C 1780.464,1069.0663 1778.0751,1072.1763 1775.2021,1074.9828 z \"},\"wv3\":{\"name\":\"WV-3\",\"path\":\"M 2119.9349,668.5916 L 2113.2002,675.68071 L 2108.8227,675.68071 L 2104.3468,681.69357 L 2105.0202,672.6984 L 2098.3131,663.71781 L 2096.913,664.88751 L 2094.4318,662.03417 C 2092.9146,662.96863 2091.3209,663.20178 2089.6821,662.92031 L 2088.3883,669.15873 L 2083.0892,677.66566 L 2078.2863,678.37457 L 2076.5141,676.83266 L 2072.7746,680.69622 L 2075.433,681.06843 L 2075.8406,683.17741 L 2058.5609,699.9609 C 2056.8301,703.82662 2055.9713,704.84116 2054.9632,705.45496 L 2055.7253,718.2685 C 2054.4516,719.00911 2053.4899,719.45039 2052.2162,719.34962 L 2049.6818,714.24546 L 2047.5196,714.24546 L 2046.2259,712.68585 L 2046.8639,711.01991 L 2045.1625,709.61979 L 2044.0991,710.25781 L 2042.699,708.57417 L 2040.5546,708.57417 L 2039.3849,706.02209 L 2036.6024,705.86256 C 2036.6875,706.86785 2036.3004,707.66535 2035.2909,708.18427 L 2033.749,706.07523 L 2030.7007,709.51345 L 2031.5514,705.79167 L 2030.3285,701.2015 C 2029.6606,701.32462 2028.9865,701.45211 2028.5562,702.40665 L 2025.8978,702.05219 L 2022.1406,706.23476 L 2019.8189,705.29543 L 2017.1428,693.91741 L 2008.8663,688.51199 L 2006.58,688.28157 L 2005.4457,689.64625 L 2005.6939,697.88731 L 2004.5951,698.70256 C 2003.9895,699.14532 2003.0366,699.50011 2002.4861,699.50011 L 2001.4936,699.50011 L 1995.716,702.90288 L 1992.9158,702.90288 L 1993.2879,704.46249 C 1993.4917,705.32027 1993.977,706.4049 1994.369,706.87278 L 1995.078,707.72348 L 1995.8578,712.43773 L 1993.9259,713.5188 L 1995.202,714.31635 L 1995.202,717.57734 L 1994.6349,717.93179 C 1994.3229,718.1245 1994.0677,718.53233 1994.0677,718.83563 L 1994.0677,719.38506 L 1995.0602,719.73952 C 1995.6061,719.93784 1997.1373,721.27649 1998.463,722.69919 C 1999.7886,724.12183 2000.8733,725.43825 2000.8733,725.64117 C 2000.8733,725.84403 2001.6283,726.33766 2002.557,726.72229 L 2004.2584,727.41345 L 2004.0988,728.35278 C 2004.0191,728.86371 2003.7667,729.5889 2003.5317,729.96553 L 2003.1063,730.63899 L 2004.6837,731.45424 C 2005.5524,731.90346 2006.7487,732.81887 2007.3421,733.47464 L 2008.4232,734.66209 L 2007.413,734.66209 L 2008.8663,736.02672 C 2009.6706,736.77249 2011.1512,737.80767 2012.1627,738.33068 L 2014.0059,739.27001 L 2013.3501,740.98909 L 2016.3275,744.87041 L 2018.9683,744.87041 L 2019.9784,746.69582 L 2020.3329,745.79199 C 2020.5255,745.28997 2020.8848,744.87041 2021.1304,744.87041 C 2021.376,744.87041 2021.9214,745.63603 2022.3356,746.57179 L 2023.0799,748.27318 L 2023.6825,748.27318 C 2024.0118,748.27318 2024.559,748.65038 2024.9054,749.10612 L 2025.5434,749.93912 L 2028.379,749.93912 C 2029.9386,749.94417 2031.7826,749.93022 2032.473,749.90367 L 2033.7313,749.85048 L 2035.539,751.6582 L 2032.6148,754.79516 L 2036.0176,756.21298 L 2036.3366,757.77259 C 2036.5175,758.63207 2036.8722,759.715 2037.1164,760.18288 C 2037.3605,760.65076 2038.2522,761.37913 2039.1013,761.79563 L 2040.6432,762.55773 L 2041.2635,764.15278 L 2045.96,764.18823 L 2049.9299,767.591 L 2054.4669,766.93523 L 2057.1608,765.1807 L 2057.7102,763.01853 L 2058.3659,763.01853 C 2058.7227,763.01853 2059.7089,762.3754 2060.5636,761.58295 L 2062.1232,760.12969 L 2062.1232,758.41061 L 2063.9486,756.58513 L 2064.8702,757.22315 C 2065.3829,757.57653 2067.1837,758.66031 2068.8578,759.63345 L 2071.9061,761.40573 L 2074.8836,758.55239 L 2082.6461,755.07872 L 2083.5855,755.66355 L 2087.9098,751.56962 L 2085.8717,750.0809 L 2086.6338,746.00466 L 2087.4136,746.00466 C 2087.8392,746.00466 2089.0152,746.51616 2090.0366,747.13892 C 2091.0579,747.76157 2092.0843,748.27193 2092.3051,748.27318 C 2092.5258,748.27431 2094.7482,746.35912 2097.2497,744.01971 L 2101.8045,739.76625 L 2104.197,739.76625 L 2104.4983,740.90051 C 2104.6614,741.52435 2104.9802,742.03476 2105.2073,742.03476 C 2105.4342,742.03476 2107.0427,740.65834 2108.7873,738.9687 L 2111.9596,735.88493 L 2110.3291,735.26467 L 2110.3291,732.73028 L 2114.3877,728.56546 L 2110.9317,727.36031 L 2110.2405,724.56011 L 2111.4279,722.32704 L 2110.7899,721.70672 L 2111.4811,719.52684 C 2111.8649,718.33372 2112.384,716.85425 2112.6331,716.23041 C 2112.8822,715.60657 2113.2644,714.45813 2113.4838,713.67833 C 2113.7031,712.89853 2114.379,711.62249 2114.9725,710.84269 C 2115.566,710.06288 2116.9572,708.04487 2118.074,706.3588 L 2120.1121,703.29278 L 2120.6438,701.37873 C 2120.9346,700.32545 2121.2651,698.13248 2121.3881,696.50493 C 2121.511,694.87745 2121.7055,692.754 2121.8135,691.79068 L 2122.0084,690.03615 L 2126.3328,684.16989 L 2124.9859,682.53939 L 2125.3226,681.47602 C 2125.5079,680.89217 2126.108,679.93241 2126.6518,679.3316 L 2127.6265,678.23279 L 2129.0798,672.72097 L 2127.7861,671.16137 L 2128.1937,669.58407 C 2128.4162,668.72215 2128.6712,666.94415 2128.7608,665.61417 L 2128.9203,663.18612 L 2130.285,661.55563 C 2129.8597,660.96184 2129.4651,660.26076 2129.2799,658.82661 L 2127.6265,657.58573 L 2126.8113,659.8011 L 2126.2265,659.8011 L 2125.6416,658.70229 L 2123.7271,659.32256 L 2123.6317,657.29916 L 2121.9115,655.65851 L 2121.2252,656.61667 C 2120.5369,660.71157 2119.4817,664.95324 2119.9349,668.5916 z \"},\"oh18\":{\"name\":\"OH-18\",\"path\":\"M 2042.8054,545.4183 C 2037.9303,546.17112 2033.1354,546.9155 2028.6499,548.16915 L 2029.2703,552.83023 L 2020.8089,554.14804 L 2009.9271,557.71791 L 2010.0309,555.39878 L 1984.4202,560.62951 L 1985.1355,567.09325 C 1980.6566,568.63579 1974.4729,570.12819 1966.2075,571.55939 L 1968.5051,584.09322 L 1963.9593,584.65655 L 1963.939,589.01635 L 1976.6285,587.10229 L 1977.3374,588.18335 L 1982.4416,588.05932 L 1983.7075,597.41819 L 1980.5275,601.22731 L 1975.2107,602.57424 L 1975.9196,608.83926 L 1995.6982,606.491 L 1996.4362,611.96981 L 2000.8923,611.31914 L 2001.1898,616.8829 L 2003.7798,616.22078 C 2004.6847,618.36169 2005.2021,622.59564 2005.5521,627.73304 L 1994.6349,629.07997 L 1994.7602,627.14816 L 1988.6053,628.01779 L 1988.48,624.10494 L 1983.1859,624.76315 L 1983.8531,628.29381 L 1978.1046,629.11541 L 1978.1046,631.72063 C 1976.3287,632.31504 1974.7259,632.76358 1973.1726,632.57892 L 1973.2878,638.87048 L 1962.2933,640.27696 L 1962.0984,643.9633 L 1963.5681,644.25571 L 1963.4428,647.28883 C 1961.7741,648.37896 1959.6552,649.01885 1957.4348,649.55734 L 1951.409,644.61266 C 1949.8317,645.56963 1948.3387,645.59975 1946.872,645.33932 L 1945.2238,649.87635 L 1945.4415,655.73882 C 1946.0517,656.62569 1946.4341,657.63683 1948.2138,657.88568 L 1948.1303,660.38593 L 1975.3525,657.0009 L 1976.6817,671.10823 L 1979.1097,670.41701 L 1979.5705,676.28328 L 1987.3863,675.68071 L 1988.3787,674.63503 L 1993.6601,674.54645 C 1993.2845,669.74276 1993.0378,664.14434 1992.2423,662.06962 L 1998.1085,662.06962 C 1997.4837,658.86347 1997.0523,655.04692 1996.7616,650.72704 L 1998.4807,650.6916 L 1998.0908,644.61266 L 2000.058,643.33662 L 2000.1467,644.47088 L 2001.5999,644.57721 L 2001.4404,639.52625 L 2005.9774,638.79959 L 2005.9774,632.72071 C 2010.4797,632.41491 2013.3098,631.89639 2016.1857,631.37378 L 2016.2212,628.8217 L 2021.5735,628.78625 L 2021.5026,626.14553 L 2020.1556,624.90494 L 2020.581,621.67939 L 2025.3307,621.23635 C 2025.7095,619.62434 2025.4017,618.11289 2025.0117,616.61068 L 2021.9811,616.69932 C 2022.0439,614.86738 2021.9786,613.40929 2021.2722,611.57741 L 2018.8265,612.25088 C 2018.344,610.0114 2017.8292,607.72394 2017.8871,606.34922 L 2023.2749,605.39219 L 2022.5483,601.67041 C 2024.4579,601.68011 2026.4352,601.60899 2027.7942,601.06784 L 2027.8119,599.18922 L 2030.9311,598.46256 L 2030.9311,596.95615 C 2033.0092,596.03032 2035.0296,595.47073 2036.8859,595.87504 L 2037.6481,594.84712 L 2035.4681,581.80316 C 2038.9457,580.97373 2042.2043,580.66946 2045.4638,580.38533 L 2045.4815,582.6716 L 2047.8209,582.6716 L 2048.583,587.8289 L 2053.2972,587.10229 L 2054.0593,589.47714 L 2056.0443,589.47714 C 2055.9952,587.59377 2055.7803,585.56639 2055.1758,583.23873 L 2052.9251,583.23873 C 2051.1915,576.47827 2049.5364,569.74486 2049.1147,563.53098 L 2045.4638,564.00949 L 2045.4283,555.25444 L 2047.4487,554.74048 L 2046.7398,550.22118 L 2043.7624,550.27434 L 2042.8054,545.4183 z \"},\"in9\":{\"name\":\"IN-9\",\"path\":\"M 1781.9706,775.4577 L 1780.2311,772.09395 L 1776.7489,772.09395 L 1773.5541,769.94107 L 1773.5958,767.76528 C 1775.5732,765.07153 1777.6907,762.4316 1778.7282,759.37637 L 1780.8753,759.98541 L 1781.7177,754.79771 L 1783.863,754.76947 C 1783.9577,752.29543 1783.8268,750.53755 1782.943,749.71941 L 1780.6812,749.71941 L 1778.1916,731.21145 L 1779.4391,730.30439 L 1784.24,730.50555 L 1784.9646,729.83747 L 1786.4584,730.40409 L 1789.995,727.90124 L 1796.7058,727.14928 L 1795.2576,717.14774 L 1812.5202,714.33285 L 1813.8609,708.6086 L 1811.4572,695.8985 L 1797.7581,697.42045 L 1795.0637,676.2763 C 1803.2477,674.79485 1811.6289,673.2496 1817.6171,672.47853 L 1819.6096,684.59563 L 1828.5203,682.69269 L 1826.2536,679.27194 L 1828.1805,677.34506 L 1831.0677,680.88269 L 1837.5105,679.20031 L 1838.2323,683.04816 L 1843.8627,681.97867 L 1859.4732,668.36429 L 1872.1699,666.62831 L 1872.6672,672.43486 L 1874.4509,674.40586 L 1874.12,675.96563 L 1877.3078,676.33115 L 1878.9406,674.97605 L 1878.9406,677.78498 L 1877.5228,679.31481 C 1876.743,680.1562 1876.105,681.13977 1876.105,681.50047 C 1876.105,681.8611 1877.0099,683.08293 1878.1159,684.2156 L 1880.1269,686.27501 L 1878.1788,689.66928 L 1878.905,691.56167 L 1880.9077,691.56167 C 1882.0093,691.56167 1882.9105,691.69824 1882.9105,691.8652 C 1882.9105,692.0321 1882.5095,692.78066 1882.0195,693.52853 L 1881.1285,694.88839 L 1882.3833,697.23296 L 1878.5124,697.23296 L 1877.1003,698.93434 L 1874.005,698.93434 L 1867.1358,705.73989 L 1865.5053,705.73989 L 1863.3677,703.37785 L 1861.0876,703.67548 C 1859.8336,703.8391 1857.6651,704.17915 1856.2687,704.43113 L 1853.7297,704.8892 L 1852.6242,708.03557 L 1854.5541,711.30263 L 1854.5541,713.58776 L 1856.5193,717.01202 L 1855.3183,718.32328 C 1854.6577,719.0445 1853.9484,720.1922 1853.742,720.87383 L 1853.3667,722.11306 L 1848.3277,724.0375 L 1847.7577,726.08949 C 1847.4442,727.21807 1847.1863,729.07894 1847.1846,730.22471 L 1847.1814,732.30788 L 1844.3099,735.72058 L 1840.5733,735.11421 L 1838.6745,737.01301 L 1838.6745,739.24041 L 1836.6895,742.27999 L 1836.6895,752.95823 L 1835.5553,753.57107 C 1834.9314,753.90817 1833.7425,754.6312 1832.9132,755.17786 L 1831.4054,756.17175 L 1830.0193,754.50167 L 1824.1497,754.74729 L 1820.5263,752.1672 L 1820.5263,748.76709 L 1819.3522,746.57315 L 1816.5564,746.57315 L 1816.5564,748.84167 L 1814.2523,748.84167 L 1813.6773,750.34025 L 1810.318,749.84719 L 1810.318,752.18807 L 1812.2494,753.2689 L 1810.8028,755.01197 L 1808.3331,755.36365 L 1808.4903,761.33359 L 1809.8255,762.94247 L 1806.0646,763.30345 L 1805.7177,767.4706 L 1803.9879,768.90617 L 1804.773,764.72127 L 1801.3109,764.72127 L 1800.9604,765.2884 C 1800.7676,765.60032 1800.382,765.85553 1800.1035,765.85553 C 1799.825,765.85553 1798.7778,764.64329 1797.7765,763.16167 C 1796.7752,761.68005 1795.8817,760.37338 1795.7907,760.25791 C 1795.6999,760.1425 1794.9967,760.20585 1794.2281,760.39873 L 1792.8307,760.74944 L 1790.3967,764.68781 L 1786.3644,765.80114 L 1784.2301,767.73273 L 1784.2223,770.05512 C 1784.2181,771.33241 1784.0654,772.93409 1783.8829,773.6143 L 1783.5512,774.85116 L 1781.9706,775.4577 z \"},\"oh6\":{\"name\":\"OH-6\",\"path\":\"M 1992.8745,701.76999 L 1991.7256,698.47435 L 1988.3512,697.07666 L 1987.665,696.11055 C 1987.2875,695.57921 1986.4403,694.85896 1985.7823,694.51006 L 1984.586,693.87561 L 1980.5843,694.52497 L 1978.1881,692.1288 L 1978.1881,691.22383 C 1978.1881,690.72612 1977.8316,689.64149 1977.3959,688.81354 C 1976.9602,687.98558 1976.386,686.28737 1976.1199,685.03969 L 1975.8363,683.2217 L 1973.084,682.40872 L 1972.6334,679.70205 C 1970.3261,679.79931 1968.8854,679.43033 1967.9085,678.19717 L 1965.7924,673.47089 C 1971.1688,672.66358 1975.8375,671.85633 1978.6892,671.04902 L 1979.0388,676.53276 L 1987.5457,676.15624 L 1988.6233,675.11494 L 1994.2351,675.11494 C 1993.7608,668.08521 1993.2865,663.01973 1992.8121,662.63811 L 1998.7277,662.63811 C 1998.1747,658.72299 1997.629,654.81876 1997.3372,651.29553 L 1998.9607,651.29553 L 1998.4789,644.63472 L 1999.739,643.85594 L 1999.739,645.05712 L 2002.0075,645.05712 L 2002.0075,640.05266 L 2006.5446,639.28613 L 2006.5446,633.27956 C 2009.6934,632.90105 2013.2109,632.39971 2016.7529,631.8902 L 2016.7529,629.17751 L 2021.857,629.17751 L 2021.857,626.00159 L 2020.4766,624.67122 L 2020.8562,621.98831 L 2025.5434,621.52128 C 2026.1432,619.72535 2025.8319,617.92948 2025.2382,616.13355 L 2022.4242,616.13355 C 2022.4495,614.31551 2022.4605,612.50217 2021.7027,610.94518 L 2019.1605,611.5832 C 2018.6529,609.31672 2018.428,607.68634 2018.4543,606.62116 L 2023.6685,605.8392 L 2022.9399,601.95534 C 2024.6584,601.94842 2026.3769,602.04421 2028.0955,601.26684 L 2028.0454,599.45821 L 2031.4481,598.77766 L 2031.4982,597.39023 C 2033.261,596.45186 2035.136,596.29896 2037.0306,596.28405 L 2038.2234,594.84683 L 2036.1267,582.24228 C 2039.0352,581.39023 2042.0701,581.17018 2045.1093,580.97157 L 2045.1093,583.24009 L 2047.3084,583.24009 L 2048.0898,588.45132 L 2053.1338,587.69494 L 2053.7486,590.04563 L 2056.4519,590.04563 C 2056.4844,587.58809 2056.232,585.1305 2055.7306,582.67296 L 2053.2562,582.67296 C 2051.4926,576.09313 2050.2372,569.51331 2049.4078,562.93346 L 2045.8838,563.50533 L 2045.7366,555.56733 L 2047.9382,554.9916 L 2046.8463,549.77948 L 2044.1038,549.77948 L 2043.3378,544.67131 L 2035.4664,546.1617 L 2032.2975,531.06185 L 2036.0353,530.42177 L 2034.4994,521.10756 L 2043.4906,519.26337 C 2044.3844,520.60691 2044.2286,521.95045 2043.7985,523.29399 L 2052.1736,521.79422 L 2054.1226,526.03826 L 2057.3359,525.39161 L 2061.71,546.4727 L 2060.6405,547.23233 C 2060.0524,547.67766 2059.1389,548.05013 2058.6108,548.06006 L 2057.6505,548.07809 L 2056.7676,549.33854 C 2056.282,550.03178 2055.8848,550.95513 2055.8848,551.3904 L 2055.8848,552.18182 L 2057.6059,554.24164 C 2058.5525,555.37454 2059.6065,556.64519 2059.9481,557.0653 L 2060.5691,557.82914 L 2059.9366,563.9577 L 2060.866,563.9577 L 2061.3248,565.5173 C 2061.5771,566.37508 2061.811,567.84254 2061.8445,568.77831 L 2061.9054,570.47969 L 2060.7762,571.2452 L 2060.6588,572.9412 C 2060.5943,573.87402 2060.235,575.56559 2059.8606,576.70024 L 2059.1797,578.76329 L 2059.8075,581.26455 L 2058.9284,582.68697 L 2060.265,589.19494 L 2059.1537,590.60669 L 2059.7485,592.88128 L 2058.1177,592.88128 L 2057.4592,594.59712 L 2058.8593,596.28405 L 2057.582,597.82307 L 2058.2675,601.25062 L 2057.019,602.02226 L 2057.019,604.61517 L 2059.3144,606.69245 L 2057.927,607.54983 L 2058.1826,611.88207 L 2055.6368,613.01435 L 2054.0372,615.28286 C 2053.1575,616.53054 2051.6869,618.69981 2050.7692,620.10345 L 2049.1008,622.65553 L 2049.0792,624.61434 L 2046.3583,626.39717 L 2044.9717,629.74464 L 2043.0633,629.74464 L 2041.1394,631.72959 C 2040.0813,632.82132 2039.0742,633.71296 2038.9014,633.71097 C 2038.7287,633.70899 2038.1526,632.94336 2037.6212,632.00958 L 2036.6551,630.31177 L 2033.7929,630.31177 L 2032.8244,631.87138 C 2032.2917,632.72916 2031.3615,633.99091 2030.7573,634.67532 L 2029.6587,635.91965 L 2030.3914,639.82524 L 2024.9762,640.80836 L 2024.6208,644.48999 L 2023.6694,644.48999 L 2022.4826,647.89424 L 2024.1961,651.99509 L 2023.594,653.56405 L 2021.2899,653.56405 L 2021.2899,656.26925 L 2024.2463,658.20634 L 2023.5782,661.54701 L 2024.419,661.86965 C 2024.8814,662.04716 2025.2598,662.41477 2025.2598,662.68665 L 2025.2598,663.18091 L 2022.343,661.8519 L 2021.8251,662.67038 C 2021.5403,663.12051 2021.3033,664.03177 2021.2986,664.69542 L 2021.2899,665.90199 L 2019.5885,667.31403 L 2019.5257,666.81921 C 2019.4912,666.5471 2019.5093,665.7513 2019.566,665.05073 L 2019.6691,663.77701 L 2017.2428,660.36959 L 2015.4244,660.36959 L 2013.4314,658.56595 L 2011.0816,659.31178 L 2011.0816,661.13096 L 2009.2795,663.12232 L 2008.0782,667.4587 L 2008.1837,672.14012 L 2005.4103,674.74551 L 2005.4103,677.13136 L 2007.6788,679.07372 L 2007.6788,682.22083 L 2009.8696,686.30836 L 2008.5862,687.59177 L 2005.5492,687.59177 L 2004.1196,689.31437 L 2004.7544,695.4651 L 2004.1405,697.81251 L 2002.6487,698.15517 C 2001.8281,698.34362 1999.8209,699.23401 1998.188,700.13388 L 1995.2192,701.76999 L 1992.8745,701.76999 z \"},\"wi3\":{\"name\":\"WI-3\",\"path\":\"M 1520.6394,339.32019 C 1505.273,340.53002 1490.5766,341.85938 1474.5424,342.93564 L 1474.5911,346.13184 L 1475.7653,348.85504 L 1472.8233,352.34643 L 1475.0918,353.5693 L 1475.4108,367.44623 L 1474.4893,371.52247 L 1477.8743,372.92257 L 1479.2035,374.35811 C 1479.9362,375.14593 1481.1069,376.0188 1481.8087,376.28989 L 1483.0848,376.76841 L 1483.0848,379.07237 L 1484.9811,379.07237 L 1487.1256,381.02187 L 1496.4123,381.62445 L 1498.6808,386.01969 L 1502.6153,388.71356 L 1505.2914,388.71356 L 1512.859,391.69098 L 1516.0314,394.65068 L 1515.5352,396.58247 L 1516.953,397.13187 L 1517.6619,400.6587 L 1520.7988,403.61841 L 1525.6903,405.81603 L 1526.3106,407.4288 L 1527.8348,407.4288 L 1528.2778,408.17316 C 1528.5273,408.57871 1529.5448,409.47193 1530.5287,410.15811 L 1532.3186,411.3987 L 1538.9469,412.56841 L 1545.1854,420.13603 L 1548.4251,425.49211 L 1548.2869,435.30672 L 1550.5022,438.12464 L 1549.8819,439.77286 L 1551.8137,443.83138 L 1551.1757,446.24167 L 1552.9834,448.22662 L 1552.4871,451.54078 L 1557.3479,453.37089 L 1560.0098,457.54939 L 1558.8142,459.79959 C 1558.0849,460.87414 1557.3027,462.36205 1557.0774,463.09603 C 1556.852,463.83002 1556.4048,464.76634 1556.0671,465.18732 L 1555.4469,465.9494 L 1555.7836,470.64593 L 1557.9458,476.33494 L 1557.9458,479.33009 L 1559.9307,479.84405 L 1563.1031,488.84722 L 1567.8705,491.75375 L 1578.965,493.7387 C 1580.6513,496.24661 1582.3953,498.99817 1583.7679,501.57217 L 1618.6285,498.06306 L 1614.1093,454.78405 L 1619.536,450.55891 L 1618.5754,448.21237 L 1613.0247,447.45385 L 1613.8648,442.18325 L 1612.766,440.80087 L 1611.7149,427.76742 L 1614.1379,427.49201 L 1610.8155,422.87002 L 1610.8345,421.12978 C 1608.1402,418.79307 1605.4671,416.39288 1603.2806,412.53296 L 1604.709,409.89093 C 1604.238,408.70395 1603.447,407.5703 1602.5914,406.4474 L 1599.7184,401.77524 C 1601.1017,398.49957 1602.9058,396.54628 1604.7339,394.66841 L 1604.4037,390.99521 L 1586.2491,393.03791 L 1586.0541,392.7189 C 1584.3985,380.27701 1584.2116,367.60495 1582.1819,355.20757 L 1561.9766,356.97207 C 1561.5861,355.28753 1559.8057,353.71883 1558.0245,352.15018 L 1555.7836,352.41732 L 1555.9608,357.7696 L 1523.8826,361.03059 C 1523.0107,353.17672 1522.5423,343.19405 1520.6394,339.32019 z \"},\"wi7\":{\"name\":\"WI-7\",\"path\":\"M 1565.8679,218.50405 L 1564.326,218.68128 L 1562.7664,218.85851 L 1562.5891,221.26881 L 1562.4119,223.6791 L 1563.5994,223.6791 L 1564.7867,223.6791 L 1564.9994,222.97019 C 1565.1186,222.5803 1565.3696,221.41677 1565.5489,220.38267 L 1565.8679,218.50405 z M 1560.3561,225.29188 L 1558.0521,226.46158 C 1556.7885,227.10624 1555.5806,227.90254 1555.376,228.23386 L 1555.0038,228.83643 L 1555.695,230.60871 L 1556.6697,230.18336 C 1557.213,229.95493 1558.2026,229.65503 1558.8673,229.5099 L 1560.0725,229.24405 L 1561.5612,226.49702 L 1560.3561,225.29188 z M 1546.0715,227.61356 L 1543.6967,229.98841 L 1541.8358,229.63396 L 1540.6129,230.85683 C 1539.9409,231.52879 1539.2447,232.48454 1539.0533,232.98356 L 1538.6988,233.88742 L 1537.0861,233.88742 L 1536.4303,235.58881 L 1535.3847,235.58881 C 1534.8134,235.58881 1534.0861,235.85941 1533.7542,236.19138 L 1533.1516,236.79396 L 1531.397,235.05712 L 1530.7413,236.77623 L 1526.8246,238.40673 L 1525.903,239.96633 L 1522.2167,241.75633 C 1520.1938,242.73661 1518.1148,243.52861 1517.591,243.52861 L 1516.634,243.52861 L 1506.6206,248.65049 L 1503.2178,248.7391 C 1501.3463,248.79297 1499.2127,248.67608 1498.4681,248.47326 C 1497.7236,248.27043 1496.6741,247.71024 1496.1465,247.23267 L 1495.1895,246.36425 L 1493.2931,246.36425 L 1493.2931,248.06564 L 1491.5208,248.06564 L 1492.2475,249.23534 L 1490.741,252.60267 L 1487.6218,252.60267 L 1490.298,287.48108 L 1488.6852,288.79257 L 1487.799,292.01811 L 1484.3254,291.75227 L 1483.1025,295.2791 L 1480.1073,294.69425 L 1479.5757,296.75009 L 1477.8566,297.459 C 1476.909,297.85147 1475.3949,298.80588 1474.4893,299.56801 L 1472.841,300.95039 L 1472.0612,302.77583 C 1471.64,303.78401 1471.1268,305.66995 1470.9093,306.95841 L 1470.5194,309.29781 L 1467.3824,311.92079 L 1467.152,320.48088 L 1472.0258,320.16187 L 1474.0107,321.63286 L 1474.0107,323.31653 L 1477.9806,327.41049 L 1477.9452,331.14999 L 1476.2792,333.34762 L 1476.2792,335.79336 L 1474.1525,337.72514 L 1474.5778,342.36851 L 1520.9761,338.73534 C 1522.2563,342.31449 1523.4582,346.73417 1524.5384,360.32167 L 1555.7481,357.36197 L 1555.3937,352.13375 L 1558.2293,351.81474 C 1559.8718,353.2536 1561.9023,354.58162 1562.1992,356.40494 L 1582.6867,354.80989 C 1584.4217,367.44 1585.0094,379.4583 1586.5149,392.47078 L 1634.4904,387.47296 L 1628.766,338.98346 L 1633.2853,338.54039 L 1633.7283,333.45395 L 1635.4297,332.28425 L 1632.7359,301.12762 L 1621.925,301.92514 L 1620.1881,296.71465 L 1612.3015,297.60079 L 1615.3498,300.57821 L 1614.9245,302.79356 L 1611.2913,302.93534 C 1610.3748,301.06112 1608.737,299.26045 1606.8252,297.47673 L 1588.9961,299.62118 L 1587.0111,284.25554 L 1592.0976,283.38712 L 1590.0063,265.06178 L 1581.198,263.59079 L 1581.1803,262.61603 C 1581.1733,262.25951 1580.6737,261.32228 1580.0638,260.54247 L 1578.9473,259.12465 L 1578.9295,257.1397 L 1578.5042,257.1397 C 1578.2702,257.13772 1577.6517,256.39219 1577.1395,255.49148 L 1576.218,253.86098 L 1571.5568,253.06346 L 1571.5568,251.50386 L 1568.5085,252.65584 L 1567.5869,250.9899 L 1565.4602,250.26326 C 1564.2929,249.86612 1562.8921,249.6168 1562.3588,249.69613 L 1561.4017,249.83792 L 1558.1053,247.74663 C 1556.2994,246.59707 1554.7354,245.4307 1554.6316,245.1591 C 1554.5276,244.88751 1554.1125,244.66287 1553.6923,244.66287 L 1552.9125,244.66287 L 1552.558,247.1795 L 1550.5731,248.49098 C 1549.4814,249.21403 1548.1452,250.17807 1547.5957,250.63544 C 1547.0462,251.09281 1546.2338,251.46842 1545.7879,251.46841 C 1545.342,251.46841 1544.8323,251.25035 1544.6714,250.9899 L 1544.3879,250.5291 L 1545.7348,246.08069 L 1548.021,244.18435 L 1545.9475,240.6398 L 1546.6209,239.82455 L 1547.3121,238.99158 L 1546.8867,238.99158 C 1546.65,238.99158 1547.092,238.3432 1547.8792,237.55603 L 1549.3148,236.13821 L 1550.6263,230.94544 L 1550.0768,230.2897 C 1549.7766,229.93095 1548.7571,229.1807 1547.8083,228.62376 L 1546.0715,227.61356 z M 1557.4318,231.42396 L 1554.5962,234.18871 C 1553.0321,235.70597 1551.3531,237.1641 1550.8744,237.43197 L 1550.006,237.91049 L 1550.006,240.69296 L 1551.6719,240.69296 L 1552.8062,238.54851 L 1555.7481,237.82188 L 1555.0924,235.78376 L 1556.3862,235.18118 C 1557.0916,234.84287 1558.158,234.40282 1558.761,234.20643 L 1559.8598,233.85197 L 1557.4318,231.42396 z \"},\"al7\":{\"name\":\"AL-7\",\"path\":\"M 1838.1605,1027.8676 L 1835.9984,1033.2554 L 1832.4715,1034.2301 L 1828.0231,1030.7033 L 1826.0204,1030.6324 L 1825.0279,1031.6249 L 1825.0279,1033.1667 L 1829.1042,1034.6554 L 1828.7497,1037.7924 L 1825.0811,1037.881 C 1825.3148,1038.5365 1825.8426,1039.1926 1827.4205,1039.8482 L 1824.7621,1042.6307 L 1826.1976,1044.9524 C 1825.1074,1046.6163 1824.0026,1048.2691 1820.5087,1048.8514 C 1817.7182,1051.8624 1816.5422,1052.4212 1815.8298,1052.2542 L 1813.6322,1055.5152 L 1813.579,1058.4039 L 1807.8014,1061.1155 L 1805.6924,1057.7837 C 1804.5467,1057.6689 1803.746,1058.5645 1802.9631,1059.5382 L 1799.9325,1060.1585 L 1796.7956,1062.4625 L 1794.5802,1059.3964 L 1793.0738,1059.3964 C 1793.1793,1060.3233 1793.4777,1061.4051 1794.4384,1063.0651 C 1793.8123,1062.3895 1790.4682,1065.5712 1787.2075,1068.4882 L 1784.4251,1068.6477 L 1784.1415,1067.992 C 1782.2424,1068.5565 1778.3612,1072.4006 1775.1738,1075.5419 L 1772.3204,1073.681 L 1772.9939,1069.5338 L 1770.6013,1067.3894 L 1772.3382,1065.4754 L 1770.0519,1063.4195 L 1770.0519,1059.6268 C 1770.984,1060.263 1772.3494,1057.5657 1773.6319,1055.5152 L 1771.8242,1054.5049 L 1772.4622,1050.5528 L 1770.3178,1050.5528 L 1768.9354,1052.7858 L 1767.2694,1052.1478 L 1768.3151,1055.7987 L 1767.1808,1057.9254 C 1764.7677,1058.0868 1762.9751,1057.0182 1761.7931,1054.7176 C 1760.9968,1054.7909 1760.3505,1055.0236 1759.7018,1055.5328 L 1761.7399,1148.5597 L 1763.9553,1161.1606 L 1782.3869,1158.7503 L 1783.1845,1160.0086 L 1785.3112,1158.8744 L 1789.3343,1163.9785 L 1791.0711,1161.7277 L 1794.4384,1159.9732 L 1794.4384,1157.7755 L 1787.8456,1152.9372 L 1785.0454,1150.0661 L 1784.2124,1147.5318 L 1786.0024,1144.0581 L 1787.6506,1145.4227 C 1789.0463,1144.1494 1790.3275,1143.5812 1791.6028,1143.0302 L 1791.6028,1141.7542 L 1787.2253,1142.4985 L 1786.5873,1140.0882 L 1802.9454,1137.802 L 1802.9454,1140.7262 L 1800.7477,1140.7262 L 1800.0034,1141.9314 L 1798.4438,1141.3465 L 1797.7349,1142.4985 L 1800.8009,1143.7746 L 1798.9755,1144.767 L 1798.9755,1146.8229 L 1800.6768,1148.2407 L 1800.6768,1146.9647 L 1802.2719,1146.9647 L 1803.7429,1151.7144 L 1801.5984,1150.9168 L 1799.8085,1159.2288 L 1805.2139,1160.3276 L 1804.2214,1163.181 L 1801.1731,1163.2342 L 1800.4642,1164.3684 L 1797.8412,1163.8544 L 1796.2285,1167.6649 L 1797.2209,1169.5435 L 1794.5625,1169.1713 L 1793.446,1173.5311 L 1794.5448,1174.6299 L 1793.1269,1177.7845 L 1794.9347,1176.3845 L 1796.0867,1178.5466 L 1793.1801,1183.1191 C 1793.2734,1183.6985 1793.3456,1184.2776 1793.3042,1184.8736 L 1791.3192,1185.4053 L 1794.6689,1185.7598 L 1793.7473,1189.0917 L 1799.2059,1187.7979 L 1797.9475,1186.5396 L 1800.1806,1182.7647 L 1802.0947,1183.4558 L 1799.9857,1181.0455 L 1801.8111,1179.2201 L 1801.8111,1177.0225 L 1802.396,1177.0225 C 1803.3123,1177.5506 1803.5182,1178.8705 1804.7708,1178.7239 C 1804.0918,1177.5762 1804.5502,1176.2356 1804.8417,1174.9666 C 1806.3036,1174.4105 1806.7467,1173.4186 1807.3584,1172.255 L 1810.194,1173.7615 L 1812.0549,1169.5966 L 1811.3814,1168.5155 L 1809.1483,1168.5155 L 1808.5103,1166.8673 L 1810.9384,1164.2798 L 1809.8572,1155.188 L 1812.4271,1154.8513 L 1811.3637,1149.0736 L 1811.984,1146.6102 L 1842.8216,1142.4276 L 1841.9,1134.5764 L 1844.4875,1133.7435 L 1843.6546,1129.3837 L 1841.1557,1129.3837 L 1839.8087,1118.1651 L 1843.8318,1117.4208 L 1841.3152,1115.3827 C 1842.5393,1114.0694 1842.2095,1112.8907 1842.0063,1111.6963 L 1843.8495,1109.6582 L 1840.9607,1106.7694 L 1841.7228,1105.1389 L 1840.3936,1104.9971 L 1836.9908,1099.0423 C 1838.2216,1098.0115 1836.6208,1094.8977 1835.0945,1091.8291 L 1830.5043,1092.414 L 1828.8738,1081.7449 L 1813.1537,1084.0134 L 1813.1537,1081.6031 L 1807.5887,1082.1348 L 1806.9507,1073.3797 C 1808.7176,1073.5022 1810.6214,1073.2849 1812.0194,1072.5467 L 1811.3105,1068.1515 L 1812.8347,1064.9791 L 1816.9109,1064.4474 L 1816.5919,1060.0876 L 1819.0731,1057.3051 L 1821.3593,1058.014 L 1822.0151,1056.3126 L 1825.0634,1056.2241 L 1825.0634,1054.3454 C 1827.5055,1051.0685 1829.2829,1048.0108 1829.0333,1045.5904 L 1832.9146,1042.6307 L 1834.6337,1037.5088 L 1836.849,1037.5088 C 1838.1057,1035.9086 1838.8903,1034.5079 1838.6745,1033.5212 L 1841.4924,1030.8273 L 1839.8087,1029.4272 L 1839.8087,1027.8676 L 1838.1605,1027.8676 z \"},\"al6\":{\"name\":\"AL-6\",\"path\":\"M 1830.8673,1091.9888 L 1829.4539,1081.1791 L 1813.7208,1083.4476 L 1813.7208,1081.0696 L 1808.0147,1081.6115 L 1807.3335,1073.9553 C 1808.5543,1074.2079 1810.4949,1073.7406 1812.6074,1073.1015 L 1811.7455,1068.1365 L 1813.1124,1065.451 L 1817.4396,1064.7591 L 1817.041,1060.4789 L 1819.3481,1058.0215 L 1821.6468,1058.6226 L 1822.3491,1056.7926 L 1825.3327,1056.6809 L 1825.4444,1054.4909 C 1827.9899,1051.5419 1829.6172,1048.627 1829.4887,1045.777 L 1833.2393,1043.0457 L 1835.0677,1037.9656 L 1836.777,1037.9656 C 1838.379,1036.4454 1838.9753,1035.0593 1839.0927,1033.737 L 1841.9885,1030.8502 L 1840.1525,1029.3651 L 1840.1525,1027.5997 L 1837.8882,1027.5252 L 1835.7814,1033.0086 L 1832.486,1033.7901 L 1828.1241,1030.3236 L 1825.8574,1030.1375 L 1824.4962,1031.4986 L 1824.5335,1033.3762 L 1828.7023,1034.8853 L 1828.4897,1037.4313 L 1824.4962,1037.582 C 1825.3524,1039.3978 1826.1257,1039.7644 1826.8837,1039.8626 L 1824.3651,1042.5321 L 1825.8541,1044.8752 C 1825.1224,1046.6044 1823.5686,1047.9943 1820.4692,1048.4904 C 1818.6975,1050.1843 1817.3738,1052.0979 1815.8125,1051.8931 L 1813.1537,1055.5086 L 1813.1537,1058.2679 L 1807.8861,1060.7147 L 1805.7411,1057.3597 C 1804.7116,1057.5307 1803.657,1057.5716 1802.867,1058.9881 L 1799.5958,1059.7066 L 1796.8286,1061.8833 L 1794.9794,1059.0611 L 1792.737,1059.0611 C 1792.9712,1060.8416 1793.4028,1062.0543 1794.034,1062.6932 C 1792.6633,1062.8993 1789.6609,1065.825 1787.0279,1068.1351 L 1784.906,1068.3027 L 1781.1193,1044.8645 L 1790.321,1043.5873 L 1789.6516,1040.1535 L 1791.4114,1039.6255 L 1791.4114,1038.0003 L 1803.6047,1036.8344 C 1803.9147,1037.4813 1805.1881,1037.9972 1807.1988,1037.7937 L 1807.5508,1042.0472 L 1809.684,1042.0472 L 1810.3544,1040.9625 L 1812.0194,1041.6014 L 1812.0194,1039.7787 C 1813.2867,1039.7513 1814.4019,1039.4706 1814.9101,1038.1783 L 1813.7208,1037.4433 L 1813.7208,1035.1355 L 1815.9893,1034.5422 L 1815.9893,1033.5403 L 1818.825,1033.5403 L 1818.825,1031.2718 L 1820.6477,1031.2718 L 1819.9948,1029.5704 L 1820.9138,1029.5704 L 1821.1471,1022.7967 L 1822.2695,1022.7648 L 1828.052,1018.2278 L 1834.2622,1018.2278 L 1840.8238,1021.7251 L 1843.4951,1021.347 L 1843.8575,1018.7949 C 1846.3299,1018.7498 1848.111,1017.5195 1850.017,1016.5034 L 1850.1296,1017.1316 L 1854.2705,1012.6085 L 1859.2292,1013.5637 L 1860.3437,1014.91 L 1859.792,1016.7497 L 1868.1391,1012.4735 L 1869.5051,1013.2191 L 1868.9937,1015.0407 L 1870.6216,1016.8538 L 1866.2794,1021.2855 L 1866.2636,1023.6913 L 1865.548,1023.46 L 1864.7029,1022.5627 L 1862.7102,1022.4793 L 1865.7441,1025.5686 L 1865.1166,1028.6694 L 1862.8377,1029.066 L 1865.1132,1031.5346 C 1864.2312,1032.752 1863.5072,1034.0881 1862.9653,1035.5606 L 1861.9351,1035.5606 L 1861.3318,1034.6629 L 1860.8114,1035.038 L 1858.8434,1040.8632 L 1856.8226,1042.3204 L 1859.2844,1044.446 L 1857.9408,1045.8025 L 1858.6128,1048.3651 L 1854.2902,1053.0193 L 1854.2638,1055.2791 L 1852.5961,1055.286 L 1852.529,1056.3707 L 1855.0609,1059.5076 L 1853.2809,1061.3296 L 1868.9202,1059.0221 L 1872.3635,1060.8746 L 1871.501,1061.8967 L 1868.9456,1061.8967 L 1865.3243,1067.5032 L 1866.5782,1070.2551 L 1863.6012,1074.7535 L 1864.3582,1081.4497 L 1861.1174,1082.0711 L 1860.4662,1084.8299 L 1845.4975,1087.2524 L 1846.0818,1089.6501 L 1830.8673,1091.9888 z \"},\"al3\":{\"name\":\"AL-3\",\"path\":\"M 1890.1946,967.09622 L 1888.1919,968.90394 C 1888.4215,971.94891 1887.4769,974.34293 1885.6044,976.7374 L 1879.9154,984.57087 L 1878.3735,984.76585 L 1878.0722,986.46723 L 1876.6012,986.46723 L 1877.9481,993.92849 L 1880.6243,992.40433 L 1879.9863,993.89305 L 1884.6119,1001.2835 L 1884.6119,1004.5976 L 1878.019,1004.4204 L 1876.6721,1005.2534 L 1876.6721,1007.451 L 1873.4111,1007.4332 L 1872.4364,1010.8006 C 1871.1568,1010.9953 1869.9784,1011.6969 1869.3349,1015.0718 L 1871.0894,1017.0035 L 1866.4638,1021.5051 L 1866.4638,1023.8977 C 1864.1586,1023.3536 1865.2624,1022.6988 1863.4332,1022.7635 L 1866.003,1025.5105 L 1865.2586,1028.931 L 1863.4332,1029.2855 L 1865.5245,1031.3944 C 1864.4404,1032.8655 1863.6807,1034.3364 1863.0964,1035.8074 L 1861.7673,1035.772 L 1861.2178,1035.0985 L 1859.0025,1041.142 L 1857.3188,1042.3649 L 1859.6582,1044.4916 L 1858.3822,1046.0157 L 1859.038,1048.4615 L 1854.5541,1053.1403 L 1854.5541,1055.6569 L 1852.8527,1055.6569 L 1852.8527,1056.3304 L 1855.4934,1059.5027 L 1854.2883,1060.8497 L 1869.1045,1058.5635 L 1872.8085,1060.8142 L 1871.3907,1062.2675 L 1869.1045,1062.2675 L 1865.7372,1067.5843 L 1867.0663,1070.3845 L 1864.1067,1074.8507 L 1864.7978,1081.3726 L 1888.6527,1077.6686 C 1888.5739,1079.6627 1888.2395,1081.7332 1887.1817,1082.2588 C 1887.4788,1083.2014 1887.7473,1083.9805 1888.954,1084.0134 C 1889.6783,1090.6786 1891.1296,1093.0236 1891.1339,1097.3409 L 1888.0147,1097.1282 L 1888.0147,1098.2093 L 1885.1613,1097.5004 L 1885.7639,1099.06 L 1882.0598,1100.9386 C 1880.5464,1101.1027 1879.5272,1100.6627 1878.7634,1099.9107 L 1877.1506,1101.2399 L 1875.8037,1099.8752 L 1877.1152,1108.1163 L 1873.4997,1109.7468 L 1867.8107,1106.3795 L 1867.8816,1110.4734 L 1865.7549,1114.0889 L 1867.5626,1125.2011 L 1872.9503,1124.5985 L 1873.6238,1129.5609 L 1889.4325,1127.2569 L 1886.5083,1108.4353 L 1891.3643,1107.691 L 1891.701,1105.3516 L 1893.6328,1107.3011 L 1892.9948,1108.967 L 1894.7139,1109.6051 L 1916.5306,1106.6453 L 1917.5408,1111.6431 L 1926.03,1110.1544 L 1930.8329,1114.7447 L 1936.7346,1113.7522 L 1935.8485,1109.8177 L 1936.7877,1108.2581 C 1937.3081,1107.3986 1938.7823,1105.7408 1940.0487,1104.5718 L 1942.3527,1102.4451 L 1942.7426,1100.336 L 1940.7576,1099.2726 C 1939.6708,1098.6831 1938.3309,1098.1916 1937.7802,1098.1916 L 1936.7877,1098.1916 L 1936.7877,1095.4268 L 1937.8688,1094.7534 L 1937.5144,1090.9075 L 1935.6535,1089.0466 L 1935.6535,1086.335 L 1930.6202,1082.1348 L 1929.9645,1079.4763 L 1928.8479,1079.4763 L 1928.8302,1078.4839 C 1928.8203,1077.938 1928.4374,1076.9979 1927.9795,1076.3926 L 1927.1465,1075.2938 L 1927.1465,1073.2379 L 1926.0123,1073.2379 L 1926.0123,1071.1466 L 1923.7438,1069.0908 L 1923.7438,1066.9995 L 1922.6804,1066.9995 L 1890.1946,967.09622 z \"},\"tn8\":{\"name\":\"TN-8\",\"path\":\"M 1745.5413,850.92347 L 1748.696,860.40513 L 1746.9237,862.30149 L 1680.9241,869.88684 L 1678.4606,873.11238 L 1676.4757,872.35028 L 1676.4757,870.77298 L 1675.0578,870.77298 L 1675.0578,875.02644 L 1677.0782,877.98612 L 1675.944,880.9813 L 1671.9386,880.9813 L 1671.9386,882.20414 L 1676.4757,883.99417 L 1676.4757,886.01456 L 1675.8022,886.43991 C 1675.4351,886.66676 1673.5848,886.98509 1671.6905,887.16651 L 1668.2523,887.50328 L 1674.2071,891.17186 L 1674.2071,894.62783 L 1670.3436,896.91404 L 1670.0778,899.28889 C 1669.9293,900.60168 1669.6416,902.19191 1669.4397,902.81575 L 1669.0675,903.95001 L 1673.0729,906.51978 L 1673.0729,909.37318 L 1671.3538,910.02889 L 1669.7233,908.68196 L 1667.4016,909.40862 L 1667.4016,910.95047 L 1670.8044,911.69483 L 1670.8044,913.64434 L 1669.4397,915.00902 L 1666.9586,915.00902 L 1666.2496,917.79146 L 1662.3152,919.67008 L 1660.7024,919.04981 L 1658.8238,920.43219 L 1659.4618,922.09813 C 1659.8116,923.01824 1660.3923,923.96489 1660.7556,924.18941 L 1661.4291,924.59701 L 1663.3608,922.84248 L 1664.566,923.58684 L 1664.566,926.33384 L 1660.0289,928.6378 L 1660.0289,929.18723 C 1660.0289,929.4856 1660.6867,930.15476 1661.4822,930.67595 L 1662.9178,931.63298 L 1662.581,933.99008 L 1660.8087,934.32684 L 1657.7427,931.4912 L 1656.1654,932.11146 L 1655.5982,934.27364 L 1657.8491,937.14473 L 1656.8211,940.24624 L 1654.0741,940.24624 L 1654.0564,937.49919 L 1652.6563,937.03839 L 1652.6563,938.84612 L 1650.3877,940.77793 L 1650.4586,943.08189 L 1650.9726,941.80585 C 1651.2547,941.10403 1651.6451,940.52981 1651.841,940.52981 C 1653.1241,941.06285 1654.3253,941.76105 1655.5096,942.49701 L 1655.1374,943.3477 C 1654.9332,943.82267 1654.6068,945.10937 1654.4108,946.2011 L 1654.0564,948.18605 L 1651.522,948.5582 L 1651.522,950.10011 L 1655.1906,950.45456 L 1656.3958,952.9003 L 1658.4516,951.84493 L 1660.3592,953.67517 L 1661.5062,952.91964 L 1660.6555,951.60816 C 1659.7221,949.37515 1661.6316,949.89622 1663.9519,950.8152 L 1663.1299,948.59251 L 1663.1074,948.14113 C 1662.1499,948.45288 1661.2475,947.51723 1660.1365,946.24306 L 1662.552,945.26482 L 1664.0248,946.51024 L 1666.1545,945.70781 L 1666.9763,944.28704 C 1665.4804,942.93597 1664.1212,941.65743 1664.2469,941.16783 L 1664.2117,940.81967 L 1669.2962,940.85829 L 1669.1609,939.9447 L 1672.9426,939.06826 L 1673.7497,940.18482 L 1677.2891,940.32513 C 1677.4304,939.11562 1680.3129,938.41459 1682.9976,937.69417 C 1687.9301,938.00467 1693.5525,937.0608 1699.019,936.40037 L 1698.5051,934.43318 L 1717.5925,932.46592 L 1723.7423,927.76941 L 1725.7804,924.10077 C 1725.922,919.23322 1725.9259,914.38529 1724.9098,909.68317 L 1725.5323,907.45787 L 1729.3312,906.2842 L 1745.8868,904.5291 L 1745.8838,902.84666 L 1750.9337,902.68945 L 1752.4178,901.38018 L 1753.9419,903.82592 L 1755.5901,903.91456 L 1756.9193,901.68149 C 1758.1532,901.56041 1759.8017,902.11177 1762.0412,903.16391 L 1764.1502,901.00803 L 1768.386,900.47634 L 1768.3505,896.70137 L 1773.0648,894.02526 L 1773.1002,892.58968 L 1775.6346,892.51879 C 1776.3058,891.69804 1777.3052,891.02248 1777.0701,889.55912 L 1792.613,889.48823 L 1793.5877,888.26533 L 1793.1624,876.40882 L 1794.1903,875.96572 L 1791.6914,873.16552 L 1792.8079,872.22625 L 1790.7521,872.08446 L 1793.0206,870.22354 L 1792.1699,868.71714 L 1793.3396,868.71714 L 1792.294,867.56513 L 1786.2505,867.47654 L 1786.2505,865.56248 L 1790.6635,861.09635 L 1788.8558,856.94922 L 1785.3289,857.51635 L 1782.5819,855.31872 L 1781.0755,855.28328 L 1780.2425,861.32671 C 1781.9036,862.09744 1781.7413,862.98069 1778.8778,864.00288 L 1776.503,861.25582 L 1773.2597,861.34446 L 1769.7152,864.46367 L 1765.9934,851.15384 L 1755.3774,852.85523 L 1755.3065,850.92347 L 1745.5413,850.92347 z \"},\"tn4\":{\"name\":\"TN-4\",\"path\":\"M 1781.1894,951.02209 L 1781.1638,949.32235 L 1782.2657,949.24697 L 1781.1311,946.00623 C 1782.1646,942.461 1780.3939,933.70368 1779.4341,926.04324 L 1775.5181,924.18505 L 1775.4412,922.61376 L 1771.7276,922.58813 L 1771.1463,921.93343 L 1772.7337,920.78732 L 1772.7337,918.3726 L 1774.5889,917.14 C 1775.0857,914.11692 1771.9762,912.93191 1769.3822,911.55282 L 1769.3822,909.25419 L 1770.9539,908.77145 L 1773.0089,910.01108 L 1776.3972,906.50345 L 1779.5173,906.50345 C 1783.683,903.54644 1779.8909,901.60198 1777.5221,898.9979 L 1776.9515,896.96945 L 1783.1818,898.06406 L 1784.7972,896.72337 L 1784.7972,893.991 L 1782.9717,893.29048 L 1784.8768,892.26529 L 1790.1706,894.06535 L 1795.3198,890.90888 C 1796.2336,888.63107 1797.2641,888.26357 1798.1108,888.20152 L 1797.4233,892.57159 L 1800.8486,889.92854 L 1801.449,889.92854 L 1801.449,892.89622 L 1803.1498,894.12915 L 1805.6046,889.1475 C 1807.4417,889.80758 1809.2788,890.19572 1811.1159,889.90291 L 1810.9877,893.48875 L 1805.2881,897.69946 L 1805.9024,898.97697 L 1808.0495,899.13077 L 1808.0495,900.2905 C 1810.4579,901.2967 1812.7418,901.74201 1815.0159,902.1437 L 1814.3564,913.59256 L 1812.4825,917.32092 L 1809.7509,919.11072 L 1809.7509,921.28441 L 1811.4523,921.93729 C 1811.8309,923.85787 1812.1475,925.79223 1813.7208,927.44728 L 1815.8155,928.56838 L 1816.9798,927.40418 L 1817.7123,930.32285 L 1821.6797,930.32285 L 1826.1601,925.52636 L 1828.8607,924.80849 L 1828.3395,922.21269 L 1833.9404,921.79182 L 1835.7445,923.97413 L 1837.9088,923.95213 L 1837.8868,922.10658 C 1839.5584,921.69064 1841.9193,919.80965 1845.3552,916.21802 C 1845.5981,909.97802 1843.8573,905.93377 1843.1396,899.47156 L 1845.372,898.95514 C 1847.0904,900.01964 1849.4119,900.74919 1851.872,901.40167 L 1856.2502,899.91682 L 1855.4424,895.41376 L 1858.848,888.72453 L 1860.9079,886.82357 L 1869.9318,886.50836 L 1869.8325,883.14591 L 1870.9068,882.3128 L 1869.1246,877.73817 L 1870.4248,877.03947 L 1869.6129,875.12422 L 1875.1024,869.96278 L 1885.1856,871.48285 L 1887.1859,874.39069 L 1889.1887,874.43516 L 1888.8653,866.67088 L 1893.1217,865.94961 L 1895.2728,863.52076 L 1894.6608,862.86573 L 1895.9373,859.42706 L 1893.164,853.8874 L 1892.1856,848.2468 L 1889.3981,843.46783 L 1886.4861,841.18315 L 1884.2996,841.04778 L 1884.2649,839.7934 L 1882.8204,840.25533 L 1882.1945,835.04189 C 1903.318,833.31458 1924.4415,830.42342 1944.9577,827.12743 C 1946.4823,830.90349 1948.6823,834.10062 1951.1473,837.07062 L 1950.9659,838.01319 L 1948.6873,837.4173 L 1948.8234,844.93176 L 1944.9213,846.97161 C 1945.4604,847.71954 1945.5067,848.55707 1944.5652,849.57416 L 1937.0207,849.30461 L 1937.6534,853.83171 C 1936.7352,853.78532 1935.6345,853.31335 1934.3115,852.32258 L 1929.5425,852.88875 L 1929.644,854.7639 L 1926.8935,857.79242 C 1930.3108,859.86953 1933.5148,862.33677 1934.657,865.08298 L 1930.0924,870.51652 C 1931.2596,871.80198 1931.9947,873.12668 1931.6836,874.54654 L 1928.8479,877.21046 L 1928.8479,879.89224 C 1926.9059,881.82739 1925.0504,883.77696 1923.9061,885.84505 L 1921.8295,885.2009 L 1921.374,886.83718 C 1919.5729,885.58235 1917.6807,884.16328 1916.528,884.07566 L 1916.5866,881.70161 C 1915.4381,881.88762 1914.2896,880.86804 1913.1411,879.87091 C 1911.3107,881.90861 1909.3368,884.37726 1908.2802,884.09358 C 1906.205,888.76253 1903.6275,893.54308 1900.3387,898.48175 L 1901.2417,900.53396 L 1899.1814,902.53355 L 1901.113,904.66788 L 1899.6122,906.53708 L 1898.6679,905.92673 C 1896.8364,912.96769 1893.6252,920.3153 1890.6335,927.61408 L 1890.2578,929.61683 L 1892.4212,930.18255 C 1892.6662,932.34058 1890.5868,933.16235 1890.1935,934.93412 L 1889.3581,936.62394 C 1853.3702,941.5714 1817.1773,946.61533 1781.1894,951.02209 z \"},\"tn3\":{\"name\":\"TN-3\",\"path\":\"M 1971.1699,822.15939 L 1960.9261,823.75444 L 1960.1463,825.01278 L 1945.9327,827.01543 C 1946.3727,830.77118 1949.7588,833.70465 1951.604,836.83384 L 1951.1609,838.44664 L 1949.1582,838.03899 L 1949.2646,845.30533 L 1945.6491,847.0776 C 1945.7398,847.95036 1945.7187,849.03533 1944.7807,850.05503 L 1937.4612,849.71833 L 1938.0638,854.32625 C 1936.5579,854.1835 1935.2994,853.6462 1934.2357,852.76664 L 1929.9822,853.31602 L 1929.9822,854.89338 L 1927.501,857.67582 C 1930.129,860.14022 1933.8536,861.54404 1935.1572,865.15483 L 1930.6557,870.52486 C 1931.5,871.82336 1932.4073,873.10643 1932.2507,874.5479 L 1929.1315,877.25951 L 1929.1315,880.18374 C 1927.1626,881.85258 1925.6608,883.7689 1924.1337,886.17404 L 1922.1133,885.64236 L 1921.4753,887.3083 C 1919.3609,885.92382 1917.5209,884.54077 1916.1407,884.33087 L 1916.1762,882.11555 C 1914.6199,881.64291 1913.9938,880.98941 1913.1279,880.37872 C 1911.6296,882.31841 1910.1245,884.30932 1908.6263,884.38407 C 1906.5616,889.08449 1903.8991,893.79092 1900.9523,898.49139 L 1901.6612,900.70671 L 1899.8003,902.58533 L 1901.5372,904.51714 L 1899.499,907.01602 L 1898.8964,906.41344 C 1896.1774,917.22553 1891.1903,927.31673 1890.9035,929.06315 L 1893.2606,929.68347 L 1892.4808,932.87357 L 1891.7542,933.4407 C 1891.3488,933.75381 1890.8246,934.58324 1890.6022,935.28387 L 1889.9287,936.50671 C 1908.2555,933.87053 1926.578,930.75898 1944.9048,927.53899 L 1944.0364,914.35325 L 1941.9273,914.88493 L 1940.669,913.36077 L 1934.4306,911.55305 C 1932.6069,912.72848 1930.5066,913.80325 1925.7819,913.96335 L 1924.4881,915.5407 L 1921.3689,914.03424 L 1922.0069,912.97087 C 1919.4915,912.45966 1917.0555,911.31157 1914.6875,909.62129 L 1923.5279,890.28311 C 1924.7493,890.28272 1926.4949,889.01547 1928.5555,886.98713 L 1928.5167,885.00263 L 1932.4345,880.47729 L 1934.241,879.66323 L 1934.241,876.73299 L 1935.932,876.0766 L 1935.9161,872.76269 L 1938.2484,872.04318 C 1938.7963,871.54734 1939.4749,868.36977 1940.3009,866.68143 L 1942.2012,864.84972 L 1944.4224,864.79714 L 1947.8272,861.23217 L 1945.3459,859.89522 L 1951.2785,851.08023 L 1953.745,852.30999 C 1954.2203,851.58276 1958.4564,851.1269 1961.9148,850.68982 L 1965.7822,854.32625 L 1964.2403,854.85793 L 1964.7366,856.18711 L 1974.1651,860.47602 L 1976.9298,862.90407 L 1981.7504,861.61028 L 1982.4416,862.54961 L 1986.1279,862.72684 L 1986.1279,856.93147 L 1987.2799,856.55932 C 1985.5252,855.55675 1982.5879,854.99648 1980.5984,854.09582 L 1980.1022,855.4605 L 1975.9196,855.4605 L 1975.9196,852.69575 L 1974.9626,852.48308 L 1975.0867,846.40414 L 1977.1957,844.41919 L 1976.3982,843.46216 L 1979.411,839.66949 L 1983.4873,840.07714 L 1983.8594,838.34031 C 1982.9303,837.19408 1982.9409,836.04831 1982.8669,834.90209 L 1980.882,832.73991 L 1976.5399,831.67654 C 1976.6668,829.10439 1975.4994,826.75194 1974.041,824.17978 L 1971.1699,822.15939 z \"},\"tn2\":{\"name\":\"TN-2\",\"path\":\"M 1921.6892,913.95648 L 1922.3942,912.80907 C 1919.4628,912.29973 1917.5004,910.82622 1915.1745,909.45201 L 1923.865,890.54172 C 1925.8877,889.82918 1927.4531,888.52864 1928.8479,887.00885 L 1928.8479,884.95256 L 1932.8178,880.53689 L 1934.5192,879.88401 L 1934.5192,876.97714 L 1936.2206,876.32426 L 1936.2206,872.93669 L 1938.4609,872.35084 L 1940.521,866.7572 L 1942.378,865.10305 L 1944.505,865.10305 L 1948.2631,861.22571 L 1945.9116,859.75713 L 1951.5102,851.43985 L 1953.825,852.67868 C 1954.3082,851.62677 1958.4895,851.27799 1961.8876,850.91196 L 1965.158,854.22847 L 1963.8059,854.67917 L 1964.5245,856.552 L 1974.0335,860.84335 L 1973.914,864.77973 L 1972.4446,865.34675 L 1970.2349,864.16411 L 1969.4338,864.57988 C 1968.4492,865.30246 1968.1922,866.1591 1967.8868,867.25219 L 1962.3129,868.80277 C 1964.7265,873.30044 1967.5338,877.17926 1970.8394,880.27516 L 1971.7682,886.16389 L 1966.9172,887.50736 L 1965.3218,889.00186 C 1964.4443,889.82385 1963.1734,890.66315 1962.4977,890.86686 L 1961.2691,891.23731 L 1960.1363,894.48673 L 1957.9734,895.17324 L 1955.4471,899.66813 L 1956.6403,901.89757 L 1955.3693,902.6831 L 1956.0256,907.47182 L 1953.2258,909.90622 L 1952.2377,909.9149 C 1951.6942,909.91966 1950.8814,910.15649 1950.4315,910.44119 L 1949.6134,910.95875 L 1948.1967,909.05553 L 1947.1711,909.67149 C 1946.6069,910.01023 1945.6349,911.07462 1945.0111,912.03681 L 1943.9485,914.00129 L 1942.0368,914.53303 L 1940.8869,913.17946 L 1934.42,911.22837 C 1932.0768,912.63144 1929.4244,913.69572 1925.7518,913.64275 L 1924.466,915.24937 L 1921.6892,913.95648 z \"},\"tn1\":{\"name\":\"TN-1\",\"path\":\"M 1972.7713,886.08681 L 1972.0804,886.08681 L 1971.3106,879.9257 C 1968.0686,876.73628 1965.2041,873.17783 1963.1195,869.12422 L 1968.0885,867.72659 C 1968.5499,865.89352 1969.3351,865.03142 1970.2249,864.48346 L 1972.4347,865.6661 L 1974.2182,864.98169 L 1974.2182,860.93545 L 1976.8398,863.2782 L 1981.5428,861.97057 L 1981.8745,862.79427 L 1986.3712,862.95658 L 1986.3712,857.16257 L 1987.77,856.62363 C 1985.7208,855.22951 1982.8715,854.74978 1980.4223,853.81282 L 1979.9474,855.29479 L 1976.1629,855.23762 L 1976.1629,852.63059 L 1975.2076,852.30676 L 1975.4588,846.47826 L 1977.6235,844.31081 L 1976.9127,843.60008 L 1979.6988,840.28896 L 1983.744,840.65192 L 1984.3718,838.25115 C 1983.4494,837.19386 1983.2191,836.02126 1983.2625,834.80301 L 1980.9277,832.3178 L 1977.0539,831.34857 C 1976.7689,828.76184 1976.3885,826.18311 1974.201,823.75495 L 1971.8555,822.11209 C 1996.6471,817.75416 2021.4798,813.40995 2045.3288,808.73783 L 2046.4883,806.85077 L 2058.5021,805.19078 L 2056.8493,807.93347 L 2056.5302,810.31247 L 2057.6646,812.43222 L 2056.4329,818.17582 L 2057.725,819.73276 L 2056.8801,819.73276 L 2058.2006,821.32384 L 2056.7355,821.84798 L 2054.7505,820.82709 L 2053.758,821.359 C 2053.2122,821.65152 2052.0378,822.70825 2051.1483,823.70725 L 2049.531,825.52365 L 2045.6918,836.9239 L 2044.7967,837.91297 C 2044.3044,838.45696 2043.4346,839.02421 2042.8638,839.17342 L 2041.826,839.44485 L 2040.6734,836.91523 L 2036.5406,837.16612 L 2034.3258,839.54353 L 2032.8142,838.96352 L 2032.0868,839.84002 C 2031.6867,840.32208 2031.0716,840.72503 2030.7199,840.7354 C 2030.3682,840.74578 2029.5267,841.21673 2028.8498,841.78193 L 2027.6193,842.80962 L 2026.9605,845.30765 C 2026.5982,846.68152 2025.95,848.35512 2025.5201,849.02671 C 2025.0902,849.69831 2023.9834,850.78555 2023.0604,851.44274 L 2021.3823,852.63762 L 2019.55,850.80534 L 2020.1959,848.77031 L 2017.2184,846.42824 L 2015.9573,847.25455 C 2015.2637,847.70905 2014.1744,848.657 2013.5367,849.36109 C 2012.899,850.06518 2011.8164,851.09753 2011.1309,851.65513 L 2009.8844,852.66893 L 2010.5402,854.73492 L 2009.8654,856.49342 L 2006.3068,855.47281 L 2005.1267,856.65238 L 2005.0508,862.80471 L 2004.4313,864.09566 C 2004.0905,864.80571 2003.669,865.83323 2003.4946,866.37909 L 2003.1774,867.37157 L 1998.5001,867.37157 L 1997.0581,868.50583 C 1996.265,869.12967 1995.2954,869.64008 1994.9034,869.64008 L 1994.1907,869.64008 L 1993.4987,872.39707 L 1991.0644,872.75929 L 1990.6468,873.60998 C 1990.4172,874.07786 1989.9014,875.1625 1989.5006,876.02028 L 1988.7719,877.57988 L 1986.6894,877.57988 L 1983.8473,880.48245 C 1982.2842,882.07886 1980.7864,883.77599 1980.519,884.25385 L 1980.0327,885.12275 L 1977.1272,885.22501 C 1975.5291,885.28121 1974.0508,885.49814 1973.8418,885.70701 C 1973.6329,885.91588 1973.1512,886.08681 1972.7713,886.08681 z \"},\"ky2\":{\"name\":\"KY-2\",\"path\":\"M 1878.5861,726.93496 C 1874.1123,726.9619 1869.5918,727.29084 1865.0637,727.69701 L 1863.5927,731.25932 L 1865.8258,731.38335 L 1868.0057,735.05199 L 1872.4009,733.95318 L 1873.4997,736.07991 L 1867.474,736.87741 L 1865.3295,734.96335 L 1861.7318,736.13305 C 1861.6329,738.56121 1861.1807,740.98898 1860.4558,743.41714 L 1854.1431,747.67667 L 1847.0751,747.70605 L 1839.0389,752.07028 C 1839.4859,754.08886 1838.392,754.70056 1837.0617,755.09642 C 1836.2344,755.10067 1834.981,755.24506 1834.2792,755.43318 L 1833.0032,755.78763 L 1833.0032,758.4815 L 1831.4259,758.4815 L 1829.6004,755.6813 L 1823.6101,755.84077 C 1822.3975,755.06931 1821.1717,754.3182 1819.977,753.51912 C 1819.8339,753.41165 1819.5787,752.14468 1819.4098,750.70117 L 1819.1085,748.0782 L 1817.8325,747.65285 L 1817.2299,749.97457 L 1815.2627,749.97457 L 1813.7917,751.95952 L 1811.4523,750.54169 L 1811.4523,751.07338 C 1811.4523,751.37242 1811.8562,751.85692 1812.3562,752.13674 L 1813.2778,752.63298 L 1812.8701,754.79516 L 1809.1306,756.49655 L 1809.8041,760.98038 L 1811.0092,762.43365 L 1810.3535,764.15278 L 1806.9153,764.15278 L 1806.9153,768.49483 L 1804.186,769.96585 L 1802.8213,769.11516 L 1803.4416,765.28704 L 1802.9808,765.28704 C 1802.7267,765.28704 1802.1994,765.66985 1801.8111,766.13773 L 1801.1022,766.98843 L 1798.9755,766.98843 L 1797.3095,764.68447 C 1796.3911,763.41648 1795.5519,762.12292 1795.4487,761.81338 L 1795.2714,761.24625 L 1793.3574,761.99061 L 1791.2129,765.62375 L 1786.6404,766.98843 L 1785.5061,768.40625 L 1784.9745,775.10546 L 1783.9289,775.86751 C 1783.3529,776.2886 1782.5649,776.62961 1782.1743,776.62961 L 1781.4654,776.62961 L 1779.445,773.22684 L 1776.1485,773.22684 L 1771.9997,770.83407 L 1772.0351,774.60905 C 1771.9052,775.62625 1772.7916,776.59508 1774.6572,777.51728 L 1772.1609,780.35009 C 1770.9976,780.32945 1769.9575,780.55505 1769.2668,781.47947 L 1769.2897,783.71912 C 1771.3947,785.45601 1777.6389,787.19295 1782.7945,788.92984 L 1788.076,789.03556 L 1786.1256,792.50939 L 1792.9143,794.60119 L 1796.707,794.28218 L 1800.411,797.68478 L 1810.6193,796.78089 L 1816.5744,797.9507 L 1822.281,809.45145 L 1819.6407,810.99381 L 1817.4601,808.81371 C 1815.9762,809.27071 1814.3206,809.69339 1811.2038,809.82377 L 1811.8949,811.84587 L 1810.4769,821.66304 L 1816.1841,831.34041 L 1825.4529,831.35816 L 1825.4529,833.12998 L 1831.6392,826.40202 L 1831.1792,825.70638 L 1834.8469,822.19529 C 1835.5244,823.32682 1836.473,824.35406 1838.976,824.78361 L 1840.3227,823.04553 C 1841.106,823.40622 1840.8634,824.99027 1840.429,826.80275 L 1841.581,826.74961 C 1842.0147,828.58507 1842.3675,830.49958 1843.371,831.76513 L 1845.1256,831.80058 L 1846.951,833.51971 C 1850.2158,830.19832 1853.4427,826.81228 1857.0353,824.39246 L 1854.0578,808.30018 L 1852.7818,807.48493 L 1853.6857,804.61384 L 1856.8758,803.17833 L 1859.6051,806.12031 L 1865.4004,806.12031 L 1870.3628,802.71753 C 1872.696,799.98658 1874.932,797.30894 1875.5201,795.57523 L 1879.6141,794.17516 L 1880.3939,791.12684 L 1881.28,789.77991 L 1881.794,787.21008 L 1883.9207,784.39219 L 1885.6753,784.39219 L 1884.6651,776.09793 L 1883.265,757.01048 L 1881.8826,754.68882 L 1878.5685,755.11417 L 1877.381,753.59001 L 1875.5733,755.00783 L 1874.2441,750.22268 C 1876.1692,748.61125 1874.6146,748.66427 1878.657,744.12605 L 1878.657,740.15615 L 1880.0394,740.1384 L 1879.8267,729.62882 L 1880.5002,726.93496 C 1879.863,726.92526 1879.2252,726.93111 1878.5861,726.93496 z \"},\"ky5\":{\"name\":\"KY-5\",\"path\":\"M 1894.7155,832.33657 L 1895.4167,830.92204 L 1893.7911,826.59496 L 1894.2798,824.60609 C 1894.0794,823.24266 1891.7533,820.9594 1889.8234,819.18423 L 1894.6906,814.27828 L 1894.8202,811.66064 L 1897.044,812.24218 L 1899.665,808.69553 L 1895.7276,805.5445 L 1895.7276,801.38853 L 1909.9573,784.11186 C 1910.643,784.64439 1911.3924,784.92501 1912.2186,785.12923 C 1912.8886,783.37709 1913.454,779.94891 1913.9513,775.43331 L 1917.562,775.08351 C 1917.4355,773.26836 1918.0695,772.04977 1918.6295,770.83532 L 1922.2009,771.81118 L 1925.904,770.49283 L 1926.617,768.24649 C 1928.2877,767.72955 1929.9556,767.199 1931.7948,767.52448 L 1936.0877,765.38243 L 1939.5958,766.95134 L 1940.7251,761.78797 L 1941.7668,760.58242 L 1942.9706,761.51643 L 1942.133,758.66116 L 1945.5664,754.85318 L 1946.9879,754.85159 L 1949.2646,748.21822 C 1947.4505,746.57877 1945.7311,744.87375 1942.8302,743.98676 L 1942.6907,742.38491 L 1941.229,741.80139 L 1941.3814,737.52331 C 1943.062,737.2284 1944.5022,736.72723 1945.5782,735.91414 C 1945.5106,733.50458 1944.6105,731.26159 1943.2487,729.11087 L 1945.1001,727.75707 L 1945.0678,726.05597 L 1950.1395,720.48053 L 1950.1313,714.87701 L 1951.8608,712.91344 L 1951.4359,712.07018 L 1953.7994,710.57614 L 1958.3349,715.10948 L 1960.5263,719.98338 C 1962.2791,721.56142 1964.0088,722.72386 1965.6757,722.75375 L 1965.4087,725.07535 L 1963.8498,726.05756 L 1964.5263,729.61725 L 1967.6962,732.08211 C 1969.0749,731.94078 1970.1803,731.95127 1970.7826,732.24125 L 1977.1179,731.00536 C 1977.3331,729.21607 1979.74,726.26864 1981.8396,723.57818 L 1979.5439,719.84222 L 1980.6566,718.53505 C 1981.7981,718.72288 1982.8893,718.06836 1984.3756,716.35988 L 1983.7363,715.62959 L 1984.7235,714.4587 L 1987.1809,714.52222 L 1989.9351,712.2313 L 1993.9583,712.1164 L 1992.8347,714.11882 L 1994.0677,714.88087 L 1994.0677,717.08246 L 1992.3663,717.08246 L 1992.3663,717.84638 C 1992.3663,718.26651 1992.8429,719.15974 1993.4253,719.83134 C 1994.0078,720.50287 1994.63,721.05236 1994.8082,721.05236 C 1994.9863,721.05236 1995.8794,721.75418 1996.7928,722.61197 C 1997.7062,723.46975 1998.8998,724.87339 1999.4451,725.73117 L 2000.4366,727.29078 L 2001.8862,727.29078 L 2002.4971,728.88277 L 2001.8593,731.32182 L 2002.9259,732.28372 C 2003.5125,732.81274 2004.3115,733.27115 2004.7014,733.30234 C 2005.0913,733.33354 2005.6767,733.39734 2006.0023,733.44413 L 2006.5943,733.52919 L 2006.262,734.97605 L 2008.6554,738.0187 L 2011.6269,739.37261 L 2011.9958,740.56261 C 2012.1987,741.21708 2012.8341,742.41939 2013.4078,743.23441 L 2014.4508,744.71626 L 2013.8593,745.30778 L 2017.4503,746.55954 L 2018.4623,745.93411 L 2019.1428,747.70741 L 2021.1164,747.70741 L 2022.2607,748.69989 C 2022.8901,749.24575 2023.4396,749.88377 2023.4817,750.11771 C 2023.5239,750.35165 2023.5584,750.80983 2023.5584,751.13588 L 2023.5584,751.72869 L 2027.3985,751.00833 L 2028.1909,752.29061 L 2030.364,751.60086 L 2030.364,751.98107 C 2030.364,752.19017 2027.6741,755.84406 2024.3865,760.10088 C 2021.099,764.35763 2017.8707,768.5423 2017.2126,769.40008 C 2016.5546,770.25787 2015.7868,770.95969 2015.5066,770.95969 C 2015.2263,770.95969 2013.6694,771.81889 2012.0468,772.86904 L 2009.0966,774.77839 L 2005.1958,778.54033 C 2003.0503,780.60938 2001.0694,782.30226 2000.7938,782.30226 L 2000.2928,782.30226 L 2001.001,786.73159 L 1998.9273,790.24206 L 1997.1869,790.27768 L 1995.0965,793.14735 L 1995.7907,795.91335 L 1995.0907,798.70266 L 1993.129,799.86006 C 1992.0501,800.49666 1990.0546,801.29767 1988.6948,801.6401 L 1986.2222,802.2627 L 1985.3244,805.00766 C 1984.8306,806.51735 1984.4265,808.09097 1984.4265,808.50452 L 1984.4265,809.25636 L 1975.636,813.37014 L 1971.2266,816.89711 L 1970.3121,816.9574 C 1969.8091,816.99058 1968.9726,817.05438 1968.4531,817.09918 C 1967.9336,817.14398 1966.111,818.07391 1964.4029,819.16563 L 1961.2973,821.15058 L 1959.5658,824.00386 C 1932.507,827.66286 1898.1678,832.50109 1894.7155,832.33657 z \"},\"va9\":{\"name\":\"VA-9\",\"path\":\"M 1961.4578,822.66362 L 1967.6962,818.43171 L 1972.7194,817.46067 L 1974.8463,815.17775 L 1979.3402,812.9182 C 1981.812,811.6755 1984.2227,810.6587 1984.6975,810.6587 L 1985.5608,810.6587 L 1985.6448,809.94979 C 1985.691,809.55989 1985.7664,808.85806 1985.8124,808.39018 C 1985.8584,807.9223 1986.2133,806.45486 1986.601,805.12919 L 1987.3059,802.7189 L 1990.1355,802.7189 L 1995.7284,799.88478 L 1997.0308,797.45123 L 1996.4738,793.29826 L 1997.1764,792.33726 C 1997.5629,791.80876 1998.1215,791.37632 1998.4178,791.37632 C 1998.7142,791.37632 1999.7456,790.60491 2000.7099,789.66206 L 2002.4633,787.94786 L 2001.8702,783.52618 L 2005.7048,779.93677 C 2007.8137,777.96265 2010.2053,775.76883 2011.0194,775.06162 C 2011.8334,774.35441 2013.591,773.24363 2014.9251,772.59325 L 2017.3509,771.41073 L 2018.895,769.35823 C 2019.7443,768.22942 2023.0842,763.85317 2026.3171,759.63333 C 2029.5499,755.4135 2032.421,751.87581 2032.6973,751.77185 L 2033.1996,751.58277 L 2033.1996,752.01073 C 2033.1996,752.24614 2032.7858,752.8959 2032.2801,753.45469 L 2031.3606,754.47071 L 2032.0297,756.21434 L 2034.1422,756.21434 L 2034.761,757.49038 C 2035.1014,758.1922 2035.5205,759.42146 2035.6923,760.22201 L 2036.0046,761.67761 L 2037.5795,762.49053 C 2038.4458,762.93765 2039.4879,763.75007 2039.8955,764.29593 L 2040.6366,765.2884 L 2045.6201,765.2884 L 2046.0736,766.00293 C 2046.323,766.39595 2047.4306,767.19078 2048.5349,767.76925 L 2050.5427,768.82099 L 2056.7416,767.53412 L 2057.812,765.94134 C 2058.4008,765.06529 2059.7307,763.76742 2060.7672,763.05715 L 2062.6519,761.76574 L 2063.0311,760.54964 C 2063.2397,759.88077 2063.6649,759.16999 2063.9762,758.97008 L 2064.542,758.60655 L 2067.8233,760.52968 C 2069.6279,761.58738 2071.4637,762.45276 2071.9027,762.45276 L 2072.7009,762.45276 L 2075.2985,759.68767 L 2078.4939,758.17167 C 2080.2512,757.33782 2082.2339,756.59466 2082.8998,756.52014 L 2084.1105,756.38465 L 2089.3917,751.50133 L 2087.2123,749.12523 L 2087.9434,747.13733 L 2092.0233,749.90963 L 2093.3781,748.99876 C 2094.1234,748.49782 2096.432,746.46999 2098.5086,744.49247 L 2102.284,740.89705 L 2104.0549,741.57658 L 2103.8071,742.7088 L 2105.6759,743.94196 L 2113.7319,735.78954 L 2113.7319,734.09632 L 2112.0305,734.09632 L 2112.0305,732.67482 L 2115.4333,729.46317 L 2115.4333,727.29078 L 2112.6376,727.29078 L 2111.4234,725.02226 L 2112.685,722.66511 L 2112.1084,721.16261 L 2112.941,717.87236 L 2114.3685,720.48937 C 2117.4766,719.81699 2120.5691,718.90051 2123.4103,717.45977 L 2123.5973,715.16778 L 2124.7479,715.08606 L 2124.9125,717.54252 L 2127.8026,714.15336 L 2127.1584,708.49472 L 2135.1079,707.90519 L 2137.3551,709.47914 L 2139.4626,707.26093 L 2140.7937,707.7017 C 2140.4664,709.88463 2140.0125,712.04228 2139.0571,714.09959 L 2131.7429,713.39613 C 2130.4547,716.68502 2129.5238,719.83309 2124.1919,724.71494 L 2124.1778,726.36233 L 2127.7523,730.14536 C 2126.4862,734.01965 2125.8485,736.36626 2125.9744,737.89955 C 2125.146,738.12747 2124.5261,738.62808 2124.5167,739.92697 L 2130.7457,741.58214 C 2131.4209,742.30784 2130.1638,743.72912 2129.3473,744.99183 L 2126.516,745.84048 L 2121.3837,751.26688 C 2121.7671,752.69446 2122.0101,754.2624 2122.7462,755.33728 L 2126.4402,754.29915 L 2127.1918,755.31187 L 2126.2985,756.74126 C 2127.5543,760.18583 2126.8617,762.77506 2128.2125,764.7228 L 2126.8186,766.27339 L 2127.5043,767.89838 L 2125.312,770.50236 L 2125.312,772.99494 L 2123.41,774.71578 L 2131.896,774.69202 L 2135.0293,778.21962 L 2137.9188,777.12103 L 2140.8672,782.51153 L 2144.5706,784.18876 C 2144.4734,786.10452 2143.872,788.01796 2140.9665,790.37058 L 2141.529,791.28065 C 2113.9239,796.34998 2085.8438,802.05258 2059.729,805.13469 L 2058.9271,803.8371 L 2045.7098,805.79982 L 2044.2586,807.77428 C 2021.3631,812.02145 2007.0141,814.96808 1961.4578,822.66362 z \"},\"va5\":{\"name\":\"VA-5\",\"path\":\"M 2142.0566,791.21673 L 2141.5337,790.37058 C 2143.8116,788.55962 2145.0604,786.46402 2144.924,783.98527 L 2141.1847,782.20216 L 2138.0775,776.67459 L 2135.1727,777.86845 L 2132.0809,774.36246 L 2124.0878,774.43953 L 2125.6416,773.00135 L 2125.6416,770.54551 L 2127.7407,767.84048 L 2127.1779,766.40383 L 2128.517,764.79024 C 2127.3139,763.33912 2127.9033,761.30977 2126.6423,756.77495 L 2127.5047,755.32089 L 2130.7742,754.11614 L 2133.4893,755.86255 L 2135.3412,754.10156 C 2136.181,752.34295 2136.2669,750.17096 2138.5593,749.20894 L 2137.2815,746.78265 L 2137.2815,742.87706 C 2138.7375,741.00786 2140.9678,740.46648 2142.9252,740.05117 L 2142.9714,737.62562 L 2145.1433,733.92284 C 2146.6294,733.85881 2148.0304,734.92836 2149.1966,735.7617 L 2149.3641,736.77175 C 2153.1063,735.4555 2156.3686,734.13925 2157.9558,732.82301 L 2160.9192,734.73026 L 2157.9281,738.56082 L 2158.9425,741.78404 L 2162.49,743.11809 L 2164.7748,735.38813 L 2167.4632,735.90206 C 2169.7631,733.85977 2172.5136,730.91609 2173.6683,731.16432 L 2173.5199,727.50192 L 2174.7663,727.94388 L 2177.7719,723.60444 L 2177.4953,722.79793 L 2179.2818,722.20097 L 2180.2354,719.68088 C 2177.5268,717.0836 2175.1956,714.31238 2172.8811,711.18971 L 2169.2064,710.79465 L 2167.0578,706.29426 L 2165.7658,706.92144 C 2164.7722,706.01001 2163.9151,705.78072 2163.0492,705.50737 L 2162.5024,701.2049 L 2166.0541,698.75292 C 2167.3352,699.83925 2168.7428,699.91355 2170.1526,699.96981 L 2170.2502,698.03544 L 2173.8237,693.70542 L 2172.6543,692.672 C 2173.7811,690.02861 2175.5607,687.53024 2177.8724,685.15017 L 2177.0811,683.3383 L 2177.3237,676.53276 L 2178.9884,674.80438 C 2179.904,673.85376 2180.6531,672.87586 2180.6531,672.63131 C 2180.6531,672.38671 2181.5463,671.09655 2182.638,669.76425 L 2184.623,667.34187 L 2184.623,666.44127 C 2184.623,665.94594 2184.8432,665.40462 2185.1123,665.23828 C 2185.3815,665.07194 2185.9295,663.71701 2186.3302,662.22739 C 2186.7309,660.73772 2187.2577,659.29505 2187.5009,659.02141 L 2187.9432,658.52393 L 2189.2649,663.4888 C 2191.827,665.8729 2194.3753,668.3952 2197.0645,669.50887 L 2195.3444,674.40041 L 2203.7169,676.25254 L 2200.7102,684.954 L 2213.4618,688.65792 L 2211.1453,698.88937 L 2215.2564,700.84988 L 2214.6026,702.90986 L 2216.6291,703.69153 L 2216.6291,715.87573 L 2213.435,719.88776 L 2213.3178,724.17157 C 2214.4045,729.54665 2215.6124,734.80064 2217.0929,739.78202 C 2220.4489,740.56806 2221.0875,741.05868 2221.4638,741.52083 L 2226.7092,743.06467 L 2229.2215,741.74031 L 2231.8316,759.90068 L 2233.265,761.43051 L 2236.3502,759.40898 L 2235.6442,754.08682 L 2243.1314,743.16216 C 2244.3461,744.32517 2245.7285,745.19486 2247.4683,745.4389 L 2250.082,756.2807 L 2247.2907,767.18295 C 2214.6432,775.30996 2178.8294,783.28617 2142.0566,791.21673 z \"},\"va6\":{\"name\":\"VA-6\",\"path\":\"M 2122.8213,754.99655 C 2122.4126,754.35626 2122.0565,752.92579 2121.7103,751.34991 L 2126.6336,746.06336 L 2129.5518,745.33092 C 2130.5125,743.95223 2131.6182,742.54938 2131.1166,741.41438 L 2124.7433,739.74912 C 2124.7849,738.79351 2125.4158,738.32892 2126.2087,737.9993 C 2125.9866,736.59969 2126.9466,733.48065 2128.0949,730.08757 L 2124.5073,726.3861 L 2124.5171,724.7387 C 2128.1751,721.67552 2130.8452,718.09479 2131.8574,713.64578 L 2139.2224,714.40034 C 2140.2175,712.3065 2140.7051,709.98428 2141.0753,707.60914 L 2139.3592,706.95065 L 2137.3668,709.15224 L 2134.96,707.57523 L 2126.7138,708.16527 L 2127.4426,713.99813 L 2125.1122,716.7989 L 2125.0745,714.81395 L 2123.3138,714.96758 L 2123.0622,717.20655 C 2120.6047,718.4848 2117.5673,719.34882 2114.4317,720.14269 L 2113.0842,717.57354 L 2113.9751,716.21368 C 2114.4652,715.46581 2114.8661,714.49585 2114.8661,714.05825 L 2114.8661,713.26262 L 2117.9848,708.57633 L 2121.1035,703.89003 L 2121.7043,701.55397 C 2122.0347,700.26914 2122.5373,698.47871 2122.8211,697.57522 L 2123.3373,695.93247 L 2122.5642,694.68156 L 2122.8927,691.54925 L 2124.3156,689.00341 C 2125.0982,687.60317 2125.931,686.45751 2126.1662,686.45751 C 2126.4014,686.45751 2126.8757,685.83889 2127.2201,685.08274 L 2127.8465,683.70802 L 2126.2386,682.37351 L 2127.0624,680.78044 C 2127.5155,679.90423 2128.1683,679.09329 2128.5131,678.97839 L 2129.1399,678.7694 L 2129.4113,676.80039 C 2129.5607,675.71746 2129.6838,674.00195 2129.6849,672.98821 C 2129.6861,671.97446 2129.687,670.69842 2129.6868,670.15256 C 2129.6867,669.6067 2129.6648,668.04205 2129.6383,666.67561 L 2129.59,664.19108 L 2134.4321,664.91105 L 2139.5362,670.54348 L 2148.6954,671.29158 L 2151.2591,666.94641 L 2151.8303,663.79981 C 2152.1445,662.06916 2152.618,659.50472 2152.8824,658.10108 C 2153.1469,656.69743 2153.3785,655.22999 2153.3971,654.84009 L 2153.4309,654.13118 L 2155.2816,654.13118 L 2154.6726,649.59012 L 2155.305,647.46543 C 2155.6529,646.2968 2156.1526,645.18971 2156.4155,645.00517 C 2156.6784,644.82062 2156.8498,644.43781 2156.7965,644.15448 C 2156.743,643.87114 2156.7295,643.1683 2156.7665,642.59266 L 2156.8337,641.54608 L 2163.1899,645.13328 L 2164.5362,644.61663 L 2166.5716,635.98306 L 2167.6091,634.31729 L 2169.3828,634.9979 L 2170.3392,633.65885 C 2170.8651,632.92238 2171.4335,631.80417 2171.6023,631.17398 L 2171.9091,630.02821 L 2174.2054,629.69315 L 2175.5694,625.921 L 2175.2149,624.99721 L 2175.3016,624.07336 L 2178.8719,624.03661 C 2179.8437,623.15812 2180.2418,622.08012 2180.0859,620.80947 C 2181.365,619.34968 2182.9426,619.1268 2184.56,619.0689 L 2184.2108,620.77579 L 2186.189,622.89685 L 2185.5338,624.60413 L 2186.5451,625.34117 L 2185.9719,626.26854 L 2187.6461,627.6884 L 2186.9599,632.15755 L 2181.6148,642.64381 L 2179.3083,643.1193 C 2177.9669,645.40256 2177.5703,647.88828 2177.6783,650.4821 L 2176.176,652.00382 L 2175.7332,658.37086 C 2178.3341,658.84611 2179.5995,659.63198 2179.9719,660.62548 L 2183.2328,660.68384 L 2183.2328,661.8181 L 2186.1644,661.8181 C 2185.5134,665.38414 2184.3566,664.53447 2184.3282,667.2057 C 2178.7243,674.24411 2180.7653,673.09307 2176.99,676.37714 L 2176.8641,683.37721 L 2177.4798,685.08291 C 2175.2031,687.18457 2173.6351,689.97915 2172.2745,692.69156 L 2173.3971,693.77858 L 2169.9749,697.97839 L 2169.8776,699.50147 C 2168.5862,699.70462 2167.3454,699.04766 2166.1046,698.39001 L 2162.133,701.11172 L 2162.7885,705.77057 C 2163.8448,706.08493 2164.8243,706.5067 2165.6223,707.18278 L 2167.0107,706.82656 L 2169.0286,711.12761 L 2172.7093,711.48275 C 2175.0675,714.54694 2177.4772,717.43096 2180.0417,719.77326 L 2179.2217,721.98994 L 2177.2398,722.72216 L 2177.5317,723.53293 L 2174.6982,727.67796 L 2173.2804,727.19624 L 2173.3885,730.86862 C 2172.2783,731.11759 2170.313,732.4804 2167.4395,735.5818 L 2164.675,735.02704 L 2162.2018,742.60325 L 2159.2459,741.55174 L 2158.3007,738.63863 L 2161.3707,734.63453 L 2157.8648,732.31248 C 2156.7733,733.63462 2153.0109,734.95683 2149.461,736.27897 L 2149.461,735.87705 C 2148.7546,734.71013 2147.1938,733.97042 2145.036,733.52919 L 2142.6554,737.56392 L 2142.6554,739.746 C 2140.5381,740.24077 2138.4413,740.78283 2136.9842,742.80095 L 2136.9842,746.64773 L 2138.2473,749.00801 C 2137.032,749.71692 2135.8779,750.69272 2135.2248,753.85509 L 2133.5233,755.4845 L 2130.8371,753.80302 L 2127.4675,754.97772 L 2126.4465,753.95677 L 2122.8213,754.99655 z \"},\"ky6\":{\"name\":\"KY-6\",\"path\":\"M 1905.5236,788.80887 C 1905.0212,787.6914 1904.7261,784.95705 1904.4045,782.42981 L 1899.9995,781.79162 L 1897.9265,778.48327 L 1897.9265,776.0706 L 1896.3099,775.43184 L 1895.7876,772.67463 L 1891.3058,775.889 L 1885.0649,776.09067 L 1883.6745,757.06504 L 1882.0598,754.44144 L 1878.6677,754.92367 L 1877.4167,753.28393 L 1875.7052,754.66194 L 1874.4383,750.31042 C 1875.8661,749.31942 1875.5424,747.81761 1878.9406,744.21759 L 1878.9406,740.33474 L 1880.1515,740.33474 L 1880.0222,729.84286 L 1880.7742,726.72365 L 1879.1368,726.70442 L 1882.8193,723.65838 L 1883.4056,724.70484 L 1890.949,724.44946 L 1893.7357,727.81299 L 1895.2433,725.77439 L 1898.7179,726.55005 L 1899.4915,724.69996 L 1901.3108,725.31218 L 1902.1912,724.00637 L 1905.9034,723.59951 L 1905.8264,725.84279 C 1908.0801,725.37712 1909.2377,724.84294 1909.8547,724.27496 L 1910.7042,725.09191 L 1917.1443,718.47862 L 1921.5935,723.49357 L 1924.2532,724.22437 L 1925.4071,726.53877 L 1928.4969,725.86315 L 1929.8714,726.62423 L 1929.1107,727.75191 L 1929.9986,729.76335 L 1934.4968,730.48258 L 1941.0346,737.51532 L 1940.7992,742.08768 L 1942.459,742.72462 L 1942.459,744.16705 C 1944.7241,744.619 1946.8098,746.56482 1948.9286,748.23575 L 1946.7889,754.51296 L 1945.4122,754.51296 L 1941.8449,758.57581 L 1942.5999,761.03494 L 1941.7569,760.23823 L 1940.3833,761.61176 L 1939.4484,766.58491 L 1936.1991,765.10312 L 1931.7191,767.23978 C 1930.351,767.00192 1928.7234,767.11008 1926.4363,768.0975 L 1925.7258,770.33619 L 1922.1913,771.52024 L 1918.6567,770.53933 C 1917.9315,771.63593 1917.2215,772.75051 1917.2987,774.79989 L 1913.6717,775.15088 C 1913.2189,778.72357 1912.7901,782.64696 1912.0497,784.78232 C 1911.3349,784.70882 1910.7727,784.3399 1909.9559,783.65509 L 1905.5236,788.80887 z \"},\"ky4\":{\"name\":\"KY-4\",\"path\":\"M 1941.1932,737.12831 L 1934.6836,730.16612 L 1930.0522,729.42551 L 1929.4114,727.75554 L 1930.1275,726.59684 L 1928.6178,725.6638 L 1925.5497,726.27738 L 1924.3408,724.0185 L 1921.7588,723.26927 L 1917.2218,717.86408 L 1910.6704,724.61478 L 1909.9535,723.89787 C 1909.0967,724.68057 1907.6577,725.09934 1906.1628,725.48323 L 1906.1628,723.28912 L 1902.0881,723.70709 L 1901.2515,725.06066 L 1899.3668,724.33746 L 1898.6267,726.22928 L 1895.1563,725.53523 L 1893.8176,727.32747 L 1891.1139,724.11423 L 1883.5008,724.3843 L 1882.8324,723.30273 L 1878.6822,726.72365 C 1874.2436,726.83929 1869.8242,726.94126 1864.8336,727.45122 L 1863.3629,731.10324 C 1860.9961,731.40672 1858.7454,731.94231 1856.7024,732.89327 C 1853.9201,731.37876 1850.8118,730.30841 1848.3157,728.33759 C 1848.3157,728.11436 1848.5643,727.27768 1848.8683,726.4782 L 1849.4209,725.0247 L 1854.1182,723.14518 L 1854.8705,721.34472 C 1855.2842,720.35445 1856.0203,719.2143 1856.5062,718.81101 L 1857.3897,718.07783 L 1857.3897,715.59789 L 1855.7244,713.39613 L 1855.7064,712.34756 C 1855.6964,711.77091 1855.2756,710.42936 1854.7713,709.36645 L 1853.8542,707.4339 L 1855.161,705.85933 L 1856.9842,705.54298 C 1857.9871,705.36893 1859.6527,705.05559 1860.6856,704.8466 L 1862.5636,704.46663 L 1864.8066,706.87415 L 1867.6397,706.87415 L 1874.6871,700.01966 L 1876.105,699.72628 C 1876.8848,699.56499 1877.9659,699.19318 1878.5075,698.90009 L 1879.4924,698.36722 L 1883.4517,698.36722 L 1883.4332,696.24048 C 1883.4231,695.07078 1883.4927,693.34813 1883.588,692.41236 L 1883.7612,690.71098 L 1879.5077,690.35896 L 1879.5077,689.93447 C 1879.5077,689.70098 1879.8824,689.01458 1880.3404,688.40906 C 1880.7983,687.80359 1881.1812,686.93617 1881.1911,686.48145 L 1881.2091,685.65463 L 1877.2254,681.57499 L 1883.291,675.05743 L 1884.0264,675.94351 C 1884.4308,676.43079 1885.9292,677.34597 1887.3561,677.97718 L 1889.9506,679.12477 L 1893.0729,676.81632 L 1895.3109,676.81632 L 1896.0309,674.54781 L 1897.0671,674.54781 L 1897.4397,676.10741 C 1897.6446,676.9652 1898.0635,677.98603 1898.3706,678.37593 L 1898.929,679.08484 L 1903.1513,679.08484 L 1904.0899,680.12195 C 1904.6062,680.69237 1905.0285,681.44251 1905.0285,681.78885 C 1905.0285,682.13525 1906.0494,683.59811 1907.297,685.03969 L 1909.5656,687.66073 L 1909.5656,690.9684 L 1912.1176,692.56424 L 1919.7699,693.29425 L 1923.0989,691.57273 L 1928.363,692.29423 L 1930.1126,694.96444 L 1932.2788,694.96444 L 1933.317,697.695 L 1934.9105,698 C 1935.787,698.1677 1937.3336,698.4668 1938.3473,698.66467 L 1940.1905,699.02446 L 1940.2558,698.27052 C 1940.2917,697.85584 1940.2764,697.07405 1940.2217,696.53323 L 1940.1223,695.54995 L 1945.2968,693.03598 L 1949.0615,694.39731 L 1953.7205,694.39731 L 1954.47,695.22833 C 1954.8822,695.68538 1955.5485,696.451 1955.9507,696.92971 C 1956.3529,697.40843 1956.9181,697.80009 1957.2067,697.80009 C 1957.4954,697.80009 1958.0048,697.28967 1958.3386,696.66583 L 1958.9457,695.53157 L 1962.6233,695.53157 L 1965.1442,693.76587 L 1965.1442,691.74916 L 1968.5469,688.71729 L 1968.5469,687.02464 L 1970.9353,687.02464 L 1974.3142,684.1814 L 1974.7707,684.46349 C 1975.0217,684.61865 1975.359,685.57739 1975.5201,686.59402 C 1975.6812,687.61066 1976.2559,689.67245 1976.7972,691.1758 L 1977.7814,693.90919 L 1980.4786,695.67642 L 1984.4082,695.03874 L 1989.0709,698.93434 L 1990.577,698.93434 L 1991.1476,700.77751 C 1991.4614,701.79125 1991.8924,703.51391 1992.1054,704.60563 C 1992.3183,705.69735 1992.8119,706.97339 1993.2023,707.44127 C 1993.5926,707.90916 1994.0539,709.05759 1994.2274,709.99335 L 1994.5428,711.69474 L 1989.6428,711.82966 L 1987.0483,714.24682 L 1984.5654,714.24682 L 1983.3022,715.76899 L 1983.9944,716.46134 C 1982.5772,718.06172 1981.4452,718.64348 1980.5955,718.21672 L 1979.2871,719.79334 L 1981.4727,723.60444 C 1978.8016,726.9805 1977.0012,729.59463 1976.9183,730.70597 L 1970.9969,731.95116 C 1970.1183,731.70485 1969.0039,731.69425 1967.8025,731.7707 L 1964.8606,729.46628 L 1964.1488,726.13514 L 1965.5996,725.30583 L 1965.9949,722.49814 C 1964.3333,722.3474 1962.6718,721.43829 1961.0103,719.90943 L 1958.6222,714.99758 L 1953.8315,710.12691 L 1951.2324,711.94728 L 1951.566,712.8586 L 1949.8752,714.7122 L 1949.8317,720.22118 L 1944.7275,726.05597 L 1944.8187,727.46704 L 1942.7426,728.91589 C 1944.0072,731.12899 1945.0547,733.36025 1945.3532,735.65389 C 1944.0372,736.53384 1942.6709,737.13727 1941.1932,737.12831 z \"},\"mo8\":{\"name\":\"MO-8\",\"path\":\"M 1636.815,905.34225 L 1637.3504,903.93407 C 1637.6448,903.15954 1638.3089,901.70764 1638.826,900.70756 C 1639.3431,899.70754 1640.3696,898.41472 1641.1071,897.83466 L 1642.4479,896.77991 L 1642.4479,894.50488 L 1644.9209,892.13899 C 1646.281,890.83777 1647.549,889.32654 1647.7387,888.78068 C 1647.9284,888.23481 1648.3192,887.7882 1648.6071,887.7882 L 1649.1305,887.7882 L 1649.6809,885.23612 L 1648.9699,879.06548 L 1645.2431,878.10408 L 1645.7707,877.25044 C 1645.1408,875.89659 1644.5105,874.54285 1643.8668,873.19547 C 1596.5297,877.51909 1549.4509,882.48867 1501.5719,885.45764 L 1500.4318,881.55194 L 1498.3808,880.90099 L 1499.0673,879.79027 L 1496.2028,877.13554 L 1496.8657,874.60081 L 1494.9945,873.55361 L 1494.9945,867.49293 C 1498.3101,866.63634 1502.4925,866.81981 1506.5091,866.80444 L 1505.7397,850.52246 C 1510.0963,849.9986 1513.7051,849.724 1516.2904,849.79058 L 1515.7996,837.26503 L 1514.7155,836.62922 L 1514.2269,823.87631 C 1521.4042,823.5053 1528.7385,823.22842 1535.2136,822.43603 L 1535.2119,814.34503 C 1536.8155,813.70185 1541.505,813.96631 1545.4689,814.01729 L 1543.7109,788.40434 L 1546.4074,787.97355 L 1546.4074,786.08314 C 1547.1,786.43697 1548.5187,785.90739 1549.8303,785.22961 L 1562.3983,783.88484 C 1562.6632,781.4531 1562.1797,779.66285 1561.7351,777.83919 C 1563.1972,777.62572 1564.9351,777.48207 1566.4019,777.55863 L 1568.3944,800.01074 L 1579.0254,799.21875 C 1579.6438,800.79883 1579.8897,802.50305 1579.4966,804.42028 L 1587.3598,804.07603 L 1587.8136,801.2075 L 1589.8161,800.63759 L 1587.3786,772.24095 L 1602.2578,770.81093 C 1604.711,773.35989 1607.7567,776.20518 1607.9742,777.63638 L 1611.2559,778.46467 L 1611.2559,782.30226 C 1614.1987,781.91452 1617.5505,780.7088 1621.1681,778.97163 C 1622.5702,780.01452 1623.9756,781.05299 1625.373,782.10224 C 1623.8603,784.7032 1621.5694,786.79772 1619.7096,789.15845 L 1633.9623,801.17404 L 1636.1883,799.1596 L 1638.3389,800.62914 C 1640.6572,795.48982 1643.0079,790.10731 1645,787.41419 L 1647.6538,787.40642 L 1649.6698,784.91678 L 1652.5027,787.97355 L 1654.3073,787.97355 L 1658.6111,790.9001 L 1658.6111,793.27416 L 1660.2316,793.71034 C 1661.1229,793.95018 1662.2714,794.52077 1662.7837,794.97821 L 1663.7153,795.80991 L 1666.5509,796.19692 L 1666.2001,798.25792 L 1668.4976,802.15177 L 1666.8345,802.15177 L 1666.8345,803.34211 C 1666.8345,803.99675 1667.2197,805.34419 1667.6905,806.33638 C 1668.1613,807.32857 1669.565,809.37279 1670.8097,810.87908 L 1673.0729,813.61786 L 1673.0729,816.64843 L 1669.7213,817.91352 L 1668.959,820.95067 L 1670.2129,823.70266 L 1671.9386,823.70266 L 1671.9386,824.6184 C 1671.9386,825.12201 1672.627,826.79884 1673.4683,828.34461 L 1674.998,831.15513 L 1677.0428,832.24951 L 1677.0428,835.04523 L 1679.3113,837.31375 L 1680.8738,837.31375 L 1681.5798,838.16444 C 1681.9681,838.63232 1682.6284,839.01513 1683.0471,839.01513 L 1683.8084,839.01513 L 1685.0286,836.73516 L 1681.9813,833.91097 L 1682.5729,833.91097 C 1682.8983,833.91097 1683.9564,834.60582 1684.9243,835.4551 L 1686.684,836.99922 L 1686.684,837.65414 C 1686.684,838.01438 1687.0875,838.644 1687.5807,839.05336 L 1688.4775,839.7976 L 1690.7876,838.35488 L 1691.9091,839.47638 L 1691.106,845.31576 L 1688.9525,846.66065 L 1688.9525,849.65169 L 1689.6614,850.22721 C 1690.0513,850.54378 1690.8807,850.92824 1691.5046,851.08159 L 1692.6388,851.36039 L 1689.7465,851.49196 L 1689.0659,852.17252 L 1688.3854,852.85307 L 1688.3854,855.1052 L 1690.8657,857.74541 L 1689.5196,859.09149 L 1689.5196,860.43315 C 1689.5196,861.17109 1689.2554,862.26849 1688.9325,862.8718 L 1688.3454,863.9688 L 1686.7612,863.9688 L 1684.3382,860.56602 L 1681.7187,860.56602 L 1680.5725,861.98385 L 1680.1626,865.10305 C 1679.9371,866.81862 1679.4111,869.05169 1678.9938,870.06543 L 1678.2349,871.9086 L 1677.1247,871.9086 L 1677.7526,865.82529 L 1677.2516,865.51564 C 1676.976,865.34539 1675.8024,865.02814 1674.6434,864.81075 L 1672.5363,864.41541 L 1671.2022,867.34349 L 1674.2788,871.99259 L 1673.5516,875.3036 L 1675.8451,878.21938 L 1675.2441,879.78573 L 1671.0973,880.13196 L 1670.6849,882.30548 L 1673.3564,884.36019 L 1675.3414,884.38543 L 1675.3414,885.4683 L 1673.4982,885.77387 C 1672.4845,885.94191 1670.6342,886.14489 1669.3865,886.22491 L 1667.118,886.37038 L 1667.118,888.07177 L 1673.0729,891.98807 L 1673.0729,893.91455 L 1669.103,896.25685 L 1669.0943,898.40275 C 1669.0895,899.58295 1668.8981,900.82082 1668.669,901.15355 L 1668.2523,901.75851 L 1636.815,905.34225 z \"},\"mo4\":{\"name\":\"MO-4\",\"path\":\"M 1452.9029,699.94315 L 1432.0432,701.36097 L 1433.1243,720.69655 L 1435.1624,720.20031 C 1435.4035,721.47414 1434.6545,722.02425 1433.9218,722.59285 L 1435.9422,722.59285 L 1438.4943,724.48922 L 1438.5469,732.70646 C 1433.4883,732.43214 1432.6049,731.97084 1431.0374,731.37065 L 1431.0923,733.44033 L 1432.8668,734.13262 L 1432.8668,735.87331 L 1438.3536,736.67415 C 1439.4249,739.17757 1439.2924,741.58843 1439.1234,743.99641 L 1425.4625,745.01219 L 1426.1182,755.2914 L 1420.1335,755.64585 C 1420.0861,754.20971 1420.2414,752.96481 1422.102,751.81484 L 1421.5683,750.56846 L 1416.0572,749.59572 L 1420.7006,836.88704 L 1446.7885,836.3908 L 1446.7885,840.07714 L 1468.6407,838.94288 L 1468.5395,828.81425 L 1473.1815,828.81425 C 1472.7018,825.07755 1473.188,820.37509 1474.1525,815.19437 L 1476.1552,815.19437 C 1476.8916,813.80853 1476.9972,812.26498 1476.8464,810.65734 L 1478.3896,810.65734 L 1482.943,813.43978 L 1489.6068,813.77654 L 1490.4574,829.2308 L 1495.3844,828.68137 L 1496.087,837.98324 L 1497.0846,838.07965 L 1497.5466,848.93852 L 1505.7699,848.77899 L 1505.7699,849.94869 C 1509.5864,849.45234 1512.6214,849.34663 1515.6947,849.22209 L 1515.3048,837.59595 L 1514.4364,837.02882 L 1513.8515,823.43543 C 1527.3506,822.55819 1529.7347,822.75306 1534.6935,821.87582 L 1534.6935,814.18414 C 1536.4799,813.71807 1538.0087,813.2156 1545.0613,813.49298 L 1543.1827,788.53932 L 1525.1055,789.28367 L 1525.7258,792.33199 L 1517.6619,793.09404 L 1513.1426,792.36744 L 1513.1426,788.6811 L 1511.3881,787.22783 L 1512.0261,785.56189 L 1510.8209,784.10862 L 1514.6136,781.5211 L 1514.5782,780.40454 L 1512.8236,780.2982 L 1512.859,778.13602 L 1510.431,778.11833 C 1509.7591,775.78459 1509.746,772.52502 1509.4031,769.34553 L 1512.0615,769.38097 L 1512.4337,764.04645 L 1523.3509,763.58565 L 1523.3509,768.74295 L 1529.3944,768.51259 L 1530.5996,769.25694 L 1533.6479,768.17582 L 1533.0984,766.24407 C 1534.6895,765.67547 1536.0582,764.93797 1537.157,763.97556 C 1534.6351,762.13023 1533.7368,760.70283 1533.6656,759.73978 L 1536.9266,760.46645 L 1541.2155,759.29674 L 1541.8712,757.38268 L 1540.542,755.82308 L 1540.8788,753.97991 L 1536.9266,754.28117 L 1532.1414,752.40256 L 1530.759,749.691 C 1528.7964,749.51434 1527.7138,748.93757 1526.8246,748.27318 L 1522.7661,748.1314 L 1524.8928,745.80969 C 1523.4595,744.80836 1521.8445,743.54537 1520.9938,743.61206 L 1522.518,740.35107 L 1521.3837,738.86236 L 1519.3988,738.86236 L 1518.619,736.66474 L 1517.4138,736.5584 C 1517.5997,734.29317 1516.9159,733.83612 1516.1555,733.56328 L 1511.4767,748.68078 C 1504.4637,749.06784 1497.2913,750.26408 1490.2802,749.40744 L 1489.1637,731.91503 L 1495.8275,724.56011 L 1495.7743,723.72711 L 1493.559,723.63853 C 1493.2919,722.04807 1494.1691,721.54854 1495.3135,721.29912 C 1494.9274,720.36903 1495.4605,718.93743 1497.4225,716.72665 L 1497.5111,715.0784 L 1492.5133,716.05318 L 1494.3742,713.9087 L 1492.5133,712.86308 L 1492.1588,710.34645 L 1487.2319,710.3287 L 1485.6546,706.50058 L 1482.8544,707.08546 L 1481.4897,704.83464 L 1480.4441,704.88783 L 1481.0644,707.47536 L 1479.2921,710.02744 L 1477.7679,710.09833 L 1477.0945,711.87061 L 1474.2766,711.9415 L 1473.674,713.12889 L 1474.9855,715.14929 C 1474.0867,716.65439 1472.5667,717.12999 1470.8915,717.36467 L 1471.1574,714.81259 C 1469.8308,714.76262 1468.7782,714.3683 1468.304,713.25298 L 1466.9216,713.82011 L 1467.2584,718.28625 L 1464.2632,718.62295 L 1462.8808,716.83298 L 1459.0881,716.86843 L 1456.8374,719.8813 L 1454.303,719.91674 C 1454.0663,713.21289 1453.8344,706.50806 1452.9029,699.94315 z \"},\"mo9\":{\"name\":\"MO-9\",\"path\":\"M 1580.0638,803.90726 C 1580.2991,802.147 1579.7422,800.38669 1579.3323,798.62644 L 1568.9419,799.40545 L 1566.8811,777.29259 C 1565.4929,777.03001 1563.648,777.02122 1561.0396,777.43658 C 1562.1182,780.18052 1562.1223,781.92637 1561.9157,783.38514 L 1549.7573,784.66396 C 1548.4887,785.64322 1547.2372,786.22855 1546.0361,785.6553 L 1546.087,787.59153 C 1545.5803,788.19643 1533.2136,788.52332 1524.7526,788.94181 L 1525.285,792.01037 L 1517.7641,792.70187 L 1513.4806,791.8936 L 1513.4806,788.50138 L 1511.9567,787.22471 L 1512.595,785.56127 L 1511.4649,784.19948 L 1514.844,781.70116 L 1514.844,780.03375 L 1513.1426,780.03375 L 1513.1426,777.76523 L 1510.8385,777.76523 C 1510.1058,775.59982 1509.9566,772.72142 1509.8218,769.82543 L 1512.3606,769.82543 L 1512.859,764.43771 L 1523.0384,763.98264 L 1522.962,769.11408 L 1529.3052,768.95143 L 1530.4555,769.66233 L 1534.0223,768.31602 L 1533.4831,766.42357 C 1535.2189,765.70314 1536.7777,764.89419 1537.5718,763.70294 C 1536.0345,762.74693 1534.7496,761.58431 1533.9572,760.01881 L 1537.0045,760.78364 L 1541.4306,759.59182 L 1542.1598,757.29416 L 1540.8629,755.73138 L 1541.2155,753.66226 L 1537.2456,753.99001 L 1532.4457,752.15852 L 1531.0392,749.50714 C 1529.3519,749.21558 1527.957,748.75337 1527.0828,747.98746 L 1523.3464,747.91107 L 1525.2991,745.87604 C 1523.6506,744.63976 1522.2173,743.65465 1521.3793,743.36389 L 1522.8173,740.20782 L 1521.5106,738.63335 L 1519.4575,738.63335 L 1518.7374,736.36484 L 1517.6796,736.36484 L 1517.6796,734.24077 C 1515.3523,731.8227 1513.7514,730.85751 1512.368,730.32724 L 1512.3853,729.50145 L 1517.6796,712.15213 L 1504.1496,708.35566 L 1503.3255,685.32326 L 1495.7157,685.32326 C 1494.8897,672.51227 1493.8695,659.50722 1492.6113,646.26425 L 1515.897,643.62597 C 1516.0023,638.66331 1515.3344,633.70785 1515.1471,628.74774 L 1543.1929,625.11914 L 1543.9373,625.87229 C 1544.3467,626.28652 1544.8369,627.03575 1545.0266,627.53726 L 1545.3714,628.44909 L 1548.9469,629.16419 L 1548.2879,630.23044 L 1552.138,634.43298 L 1553.2706,633.73298 L 1553.9475,637.11732 L 1554.5525,637.11732 C 1554.8853,637.11732 1555.6534,637.57924 1556.2594,638.14382 L 1557.3612,639.17038 L 1556.7939,641.12124 C 1556.4818,642.19425 1556.0765,645.24143 1555.8932,647.89276 L 1555.56,652.71335 L 1557.89,660.9961 L 1559.164,663.09317 C 1559.8646,664.24654 1560.6949,665.36498 1561.0088,665.57867 L 1561.5797,665.9671 L 1560.0531,668.81958 L 1561.3723,671.99573 L 1564.7513,673.92794 L 1564.7513,678.46933 L 1566.8195,680.05315 C 1567.9569,680.92421 1569.8382,682.46634 1570.9999,683.48009 C 1572.1616,684.49383 1573.3968,685.32326 1573.7447,685.32326 L 1574.3773,685.32326 L 1576.0008,689.20882 L 1579.0871,689.57672 L 1580.0679,691.41359 C 1580.6073,692.42388 1581.3924,693.6647 1581.8126,694.17092 C 1582.2328,694.67719 1583.6483,695.63706 1584.9583,696.304 C 1586.2682,696.97089 1588.9477,698.52527 1590.9127,699.75821 C 1592.8777,700.99115 1595.3248,702.86432 1596.3507,703.92071 L 1598.216,705.84152 L 1598.4821,706.62767 L 1576.9446,708.29197 L 1577.3227,713.68916 L 1573.8254,714.3886 C 1573.634,717.55505 1574.1027,720.72156 1574.5409,723.88801 L 1577.7051,723.88801 L 1578.4525,727.29078 L 1582.3323,727.29078 L 1582.3323,730.78384 L 1589.705,729.99428 L 1589.7223,734.37989 L 1590.751,736.00556 L 1599.3462,736.32871 L 1598.1019,733.5825 C 1599.1399,733.27189 1599.7101,733.30127 1600.7189,733.28612 L 1600.1458,735.63058 L 1602.6457,737.96187 L 1605.9897,737.01341 L 1611.4785,737.6647 L 1609.8612,739.97019 L 1605.4631,739.92964 L 1602.0739,743.41345 L 1603.0327,753.25716 L 1602.2215,770.33573 L 1586.8331,771.79938 L 1589.469,800.37983 L 1587.5325,800.88616 L 1587.1529,803.56959 L 1580.0638,803.90726 z \"},\"id2\":{\"name\":\"ID-2\",\"path\":\"M 550.81381,280.23247 L 549.04153,280.92366 L 549.67955,282.5896 L 546.32995,284.32643 L 545.69193,286.77217 L 543.91965,286.09871 L 543.91965,287.64059 L 542.11193,288.33178 L 541.08401,287.69376 L 541.08401,289.04069 L 538.44332,288.52673 L 537.04322,291.66366 L 533.16193,292.95742 L 532.5948,292.58524 C 532.27676,292.3887 532.00487,291.9288 531.99223,291.55732 C 531.97952,291.18583 531.21389,289.99657 530.29084,288.91663 L 528.60718,286.9494 L 528.60718,285.42524 L 527.52609,286.09871 L 524.31827,284.99989 C 523.18304,285.04689 520.95954,287.22279 518.94827,289.14702 L 518.62926,289.14702 L 518.62926,288.01277 L 516.44936,288.08366 L 515.12015,286.20504 L 513.54282,286.80762 L 513.54282,290.9193 L 514.94292,290.90158 L 514.23401,292.089 C 516.80516,294.50276 517.88336,297.27668 519.10777,300.01108 L 520.66738,300.08197 L 514.21629,306.55079 C 512.82462,312.54428 511.85601,318.54591 510.99074,324.5394 C 507.45379,327.65597 504.04964,330.87388 499.86084,333.52484 L 496.015,332.7096 C 496.14887,331.70356 495.48674,330.56096 494.40223,329.35999 L 491.37163,330.70692 L 490.21965,335.13762 L 487.72074,337.40613 L 484.51292,337.97326 L 483.00649,339.51514 L 482.91787,343.20148 L 484.63698,343.76861 L 485.34589,346.28524 L 483.94579,351.07039 L 480.75569,354.86306 C 482.56026,356.325 484.13165,357.67116 484.1053,358.26583 L 485.91302,358.23039 L 485.275,363.63583 C 487.71811,366.85489 487.00801,364.94969 491.21213,368.01336 L 489.79431,369.98059 L 490.36144,371.55791 L 492.02738,371.59336 L 488.74866,373.2593 L 488.44738,375.12019 L 489.67025,376.59118 L 490.57411,376.04177 L 491.19441,379.19643 C 490.42346,380.15874 488.3186,380.05932 486.37381,380.08257 L 486.37381,378.55841 L 483.99896,377.3887 L 484.1053,371.2389 L 482.58114,370.0692 L 481.695,370.95534 L 482.4748,371.00851 C 481.21071,374.54533 478.90228,377.0665 476.48451,379.49771 C 473.40395,379.81097 470.37502,380.08026 466.96738,380.72059 C 465.95437,381.91617 465.11185,383.96839 464.29124,386.12603 L 461.77461,385.62979 C 460.27138,387.96694 459.26168,389.89596 458.83263,391.35425 C 455.28029,393.26829 453.56473,393.55328 452.13342,393.58732 L 449.49272,395.96217 L 442.43906,395.34187 L 436.82094,386.87039 L 431.89401,388.02237 C 431.19977,390.30695 430.68339,392.57405 430.81292,394.81019 L 432.24847,395.37732 L 440.95035,408.95296 C 440.2526,414.29578 439.07861,419.55311 437.83114,424.79712 C 433.43304,424.07084 428.86775,423.36547 425.21253,422.54633 L 425.54926,423.5388 L 428.03045,424.549 L 427.35698,427.08336 L 429.52159,428.46334 L 429.68224,429.8138 C 432.5647,431.37736 433.68918,433.85654 437.01114,435.38347 L 437.12592,432.75575 L 439.26079,432.12963 L 439.18046,433.27922 L 441.47024,433.3714 L 441.39699,434.34258 L 444.55282,434.71491 C 444.55247,435.66501 444.66617,436.59756 445.91516,437.35545 L 452.5501,437.56643 C 452.98376,438.17602 453.76705,438.66907 455.94371,438.69767 L 457.455,440.04813 L 460.04253,440.08476 C 459.10796,447.07871 458.83264,442.24291 458.11782,449.96935 C 464.57641,450.96642 471.40793,451.93685 476.57787,453.02596 L 469.46629,500.04801 C 529.72814,509.92453 600.00749,518.23181 650.25628,523.97375 L 667.69549,372.51494 L 664.70037,371.15029 L 664.02691,367.78296 L 660.78361,364.61059 L 660.74817,360.97742 L 658.78097,359.87861 L 659.56077,359.08108 L 657.89483,355.85554 L 655.7149,354.68583 L 654.97054,355.87326 L 654.03126,355.78465 C 653.51302,355.7338 652.66919,355.71328 652.15265,355.7492 L 651.21331,355.82009 L 651.78044,358.01771 L 648.66124,362.11167 L 651.23107,365.56762 L 649.91958,366.8791 L 646.48136,364.89415 L 644.85087,364.89415 C 643.96065,364.89415 642.5849,364.64895 641.7848,364.34474 L 640.33153,363.79534 L 640.33153,364.20296 C 640.33153,364.43122 639.32352,364.93165 638.08077,365.3195 C 636.83802,365.70736 635.42632,366.0284 634.96156,366.02841 L 634.12856,366.02841 L 632.40948,362.73197 L 630.84988,363.01554 C 629.98625,363.17886 627.95049,363.40158 626.33054,363.49405 C 624.7106,363.58652 623.12587,363.80213 622.82143,363.99029 L 622.27206,364.34474 L 620.57067,362.62564 L 617.66414,362.62564 L 616.95522,361.49138 C 616.56561,360.86754 615.97438,360.35711 615.64374,360.35712 C 615.31305,360.35712 614.35619,360.67835 613.5347,361.06603 L 612.04599,361.77494 L 611.39027,365.30177 L 609.36988,367.12722 L 605.75443,364.9296 L 604.21252,365.51445 L 602.75926,363.75989 L 600.06539,363.75989 L 600.06539,362.74969 L 597.93866,362.39524 C 596.76896,362.20144 595.3208,362.03408 594.71312,362.02306 L 593.59661,362.00534 L 590.70777,364.18524 L 590.70777,368.11969 L 589.14817,369.99831 L 587.62401,369.99831 L 586.95054,368.72227 C 586.57675,368.02045 585.26884,366.55299 584.04401,365.46128 L 581.81094,363.47633 L 581.42104,357.75187 L 579.52473,352.96672 L 581.04889,351.12356 L 580.85391,349.65257 C 580.74837,348.83815 580.51607,347.90863 580.32223,347.59672 C 580.12844,347.2848 579.90641,346.69937 579.84374,346.28524 C 579.78096,345.87111 579.32788,344.66866 578.83351,343.62682 L 577.92968,341.73049 L 574.47371,338.82395 L 572.82552,339.65692 C 571.92594,340.1221 570.80995,340.5076 570.32658,340.50762 L 569.44044,340.50762 L 569.44044,337.95554 L 565.5946,334.8895 L 565.31104,333.02861 C 565.15168,331.9995 564.84471,330.57576 564.61985,329.87395 L 564.21223,328.59791 L 567.17193,328.59791 L 567.26057,327.03831 C 567.30906,326.18053 567.30538,324.90077 567.24282,324.18494 L 567.11876,322.87346 L 564.8148,320.5695 L 565.4351,318.95673 L 563.30837,318.95673 L 562.68807,317.16673 C 562.34564,316.18441 562.06777,315.04901 562.06777,314.63237 C 562.06777,314.21572 561.2676,312.57912 560.29549,310.9992 L 558.54094,308.12811 L 559.23213,307.4192 L 557.40668,304.63673 L 558.06243,300.59593 L 557.58391,299.99336 C 557.32405,299.66171 556.99406,298.68859 556.83955,297.83118 L 556.55599,296.27158 L 557.30035,295.2791 C 557.71497,294.73287 558.07022,293.84 558.08015,293.29415 L 558.09787,292.30168 L 555.26223,292.30168 L 555.26223,291.41554 C 555.26223,290.93217 555.63555,289.82325 556.0952,288.93435 L 556.92817,287.32158 L 556.23698,286.75445 C 555.8553,286.44472 555.0511,286.08667 554.44698,285.97465 L 553.34817,285.7797 L 552.85193,283.79475 C 552.5754,282.7035 551.99675,281.46254 551.57589,281.02999 L 550.81381,280.23247 z \"},\"id1\":{\"name\":\"ID-1\",\"path\":\"M 379.5567,484.73578 L 400.00144,372.55176 L 401.16446,371.53323 C 401.80412,370.97304 402.66757,369.85924 403.08317,369.05811 C 403.49881,368.25698 403.83886,367.01997 403.83886,366.30919 L 403.83886,365.01688 L 405.43329,364.40504 L 406.22211,360.81352 L 405.59764,360.18901 C 405.25413,359.84554 404.97312,359.10514 404.97312,358.54368 L 404.97312,357.52285 L 406.61677,357.52285 L 409.60367,353.60681 L 409.21995,351.568 L 406.67451,350.44834 L 406.67451,347.27893 L 405.9656,347.01977 C 405.5757,346.87723 404.74627,346.68645 404.12243,346.59582 C 403.49859,346.50518 402.66502,346.22937 402.27002,345.9829 L 401.55186,345.53477 L 402.20939,344.47088 L 400.42163,343.78487 L 398.60472,345.29279 L 396.40335,342.57421 L 398.16758,341.58688 L 398.16758,339.03445 L 396.84407,337.71097 L 398.87949,333.19731 L 398.20319,331.43493 L 398.69421,331.43493 C 398.96422,331.43493 399.97706,330.74008 400.94492,329.89082 C 401.91273,329.04156 402.70461,328.14326 402.70461,327.89459 C 402.70461,327.64594 403.39798,326.36293 404.24544,325.04346 C 405.0929,323.724 406.24831,321.87881 406.81306,320.94305 C 407.37775,320.00729 407.99359,318.78203 408.18154,318.22027 L 408.52329,317.19887 L 410.1628,316.87097 C 411.06448,316.69063 411.93962,316.32084 412.10749,316.0492 L 412.41272,315.55533 L 414.61431,314.08414 L 416.92774,311.84231 C 418.20009,310.6093 419.51311,309.10156 419.8455,308.49178 L 420.44989,307.38307 L 420.62655,301.81605 L 424.26571,298.82503 L 424.2555,297.44712 L 426.54131,296.22379 L 427.62118,293.83807 L 431.62817,286.45821 L 431.62817,284.43755 L 434.88916,280.27398 C 436.68271,277.98401 438.65399,275.1284 439.26978,273.92819 L 440.38934,271.74598 L 441.7031,270.88519 C 442.42562,270.41176 443.27223,269.54709 443.58449,268.96372 L 444.15213,267.90304 L 441.83649,262.66817 L 441.79877,258.55889 L 439.71764,256.06599 L 436.64964,255.29596 L 435.62614,252.60404 L 434.76139,252.53315 C 434.28579,252.49416 433.58817,252.43036 433.21103,252.39137 L 432.52537,252.32048 L 431.81322,248.83851 L 429.2261,245.3392 L 429.93489,244.19229 L 429.31718,242.5851 C 428.97741,241.70114 428.59851,239.99013 428.47516,238.78285 L 428.25086,236.5878 L 426.95225,235.02305 L 428.09309,235.02305 L 428.45191,234.03058 C 428.64921,233.48471 429.17596,232.41005 429.62246,231.64243 L 430.43425,230.24676 L 429.31077,228.89308 L 428.96476,221.92445 L 428.31149,221.27122 C 427.95221,220.91194 427.65827,220.17987 427.65827,219.64441 L 427.65827,218.67084 L 426.43168,218.26198 L 428.17441,214.88998 L 456.76479,58.841168 L 495.52208,65.664123 L 485.08895,126.67716 L 489.75886,136.34032 L 491.15508,136.34266 L 491.48452,137.65526 C 491.66572,138.37719 491.76797,139.20662 491.71171,139.49843 C 491.65551,139.79024 491.63974,140.60321 491.67666,141.30503 L 491.74381,142.58107 L 493.4452,142.58107 L 493.4452,144.23827 L 495.81149,146.44282 L 494.49887,148.89555 L 496.43051,151.84362 L 493.4452,154.01825 L 493.4452,154.79163 C 493.4452,155.21699 494.06303,156.72695 494.8181,158.1471 L 496.19101,160.72919 L 492.87807,160.72919 L 492.87807,162.91538 L 494.18428,163.94902 C 494.90266,164.51752 495.66029,165.42927 495.86786,165.97513 L 496.24523,166.96761 L 497.73014,166.96761 L 499.68361,169.24909 L 499.68361,170.26847 C 499.68361,170.82912 500.00262,171.69311 500.39253,172.18843 C 500.78243,172.68376 502.37543,173.75337 503.93254,174.56534 C 505.48971,175.37732 507.05708,176.04167 507.41562,176.04167 L 508.06759,176.04167 L 508.75665,178.78718 L 508.07287,180.56913 L 509.89193,181.26718 L 509.89193,182.8073 L 512.07906,183.97781 L 513.38136,186.6735 C 514.09764,188.15613 515.13679,189.97783 515.6906,190.72171 L 516.69748,192.07424 L 516.69748,195.32404 L 518.19736,195.32404 L 521.0241,199.64153 L 520.02278,202.64559 L 521.93088,206.66662 L 523.23017,206.66662 L 524.64692,208.93513 L 526.33866,208.93513 L 526.33866,209.95596 C 526.33866,210.51742 526.07512,211.24037 525.75293,211.56251 L 525.1672,212.14824 L 525.93475,214.14843 L 529.45787,213.44647 L 529.6469,212.89219 C 529.75091,212.58733 530.18028,212.3379 530.6012,212.3379 L 531.36637,212.3379 L 532.13132,214.74802 L 530.76873,215.59016 L 532.60623,219.14345 L 536.05443,219.14345 L 538.32442,220.35832 L 541.04408,218.57632 L 543.85273,218.57632 L 544.43268,219.51469 L 541.94247,227.65038 L 539.91414,227.65038 L 539.26126,229.35176 L 539.69494,230.34424 C 539.93348,230.8901 540.0642,231.71246 539.98537,232.1717 C 539.90659,232.63095 539.35591,233.34724 538.76167,233.76347 L 537.68124,234.52024 L 537.68124,238.35888 L 536.54698,239.05989 L 536.54698,241.26147 L 534.80998,241.26147 L 534.1516,242.9773 L 535.46155,244.55574 L 534.73869,247.43599 L 531.15926,247.78345 L 530.80974,250.80529 L 533.14421,251.54622 L 533.14421,253.59941 L 531.3924,255.05329 L 531.76665,256.80609 C 531.97252,257.77013 532.43048,258.91698 532.78436,259.35463 L 533.42777,260.15037 L 533.53434,262.19027 C 533.59292,263.31222 533.72052,264.74059 533.8179,265.36444 L 533.9949,266.49869 L 529.26493,266.84305 L 528.27966,268.37225 C 527.73777,269.21332 526.95173,270.10555 526.53296,270.35499 L 525.77153,270.80852 L 525.77153,271.55189 C 525.77153,271.96074 526.3664,273.17186 527.09351,274.24326 L 528.41543,276.19126 L 527.33953,278.60248 L 524.56145,279.29973 L 524.68673,280.55545 C 524.75569,281.2461 524.61748,282.51299 524.37963,283.37077 L 523.9472,284.93038 C 522.33319,285.45821 520.6447,287.25234 518.96599,288.88024 L 518.96599,287.76602 L 516.53896,287.76602 L 515.1601,285.88034 L 513.2947,286.59616 L 513.2947,291.16879 L 514.49588,291.16879 L 513.92643,292.09023 C 515.43098,293.31474 517.09194,295.65641 519.06717,300.24285 L 520.20222,300.24285 L 513.89371,306.34939 C 512.61633,312.30115 511.41419,318.25291 510.53755,324.20467 C 507.36194,327.43532 503.80276,330.42993 499.75105,333.12144 L 496.28084,332.4274 C 496.3887,331.2884 495.41644,330.1494 494.62392,329.0104 L 491.18417,330.43517 L 489.99995,334.83309 L 487.69536,336.98014 L 484.50787,337.61765 L 482.66975,339.45575 L 482.66975,343.38023 L 484.32798,344.01654 L 484.99702,346.12451 L 483.7393,350.79538 L 480.40124,355.02282 C 482.00457,356.2147 483.76329,357.40012 483.80401,358.65711 L 485.63419,358.65711 L 484.8621,363.80581 C 487.41549,366.90947 488.30033,366.01873 490.92956,368.16172 L 489.45573,369.85591 L 490.16379,371.70107 L 491.46025,371.71779 L 488.63464,373.14738 L 488.24741,375.15833 L 489.60381,376.79274 L 490.47985,376.25132 L 491.02458,379.10081 C 490.43356,379.73152 488.70323,379.89616 486.6396,379.92443 L 486.63965,378.54652 L 484.19417,377.2566 L 484.37114,371.27282 L 482.62166,369.8209 L 481.30864,371.13394 L 482.12571,371.13394 C 481.14307,373.80142 479.29987,376.50077 476.49712,379.23566 L 466.80994,380.3515 C 465.78198,382.12182 464.76643,383.8957 464.20025,385.79797 L 461.80021,385.26021 C 460.11162,387.73198 459.22556,389.57957 458.74744,391.10986 C 456.22939,392.38432 453.78516,393.50444 451.99739,393.25196 L 449.34104,395.75356 L 442.61981,395.10415 L 436.99706,386.56266 L 431.69832,387.69765 C 430.68268,390.04619 430.50966,392.50708 430.49391,394.98894 L 432.15089,395.6248 L 440.69724,408.95026 C 439.92668,414.11345 438.84123,419.33963 437.74022,424.56891 L 424.67478,422.21769 L 425.17958,423.59334 L 427.61687,424.69517 L 426.9869,427.20498 L 429.35966,428.68678 L 429.35966,430.11532 L 429.83332,430.11532 C 432.92878,432.01917 433.82478,434.2011 437.29946,435.75101 L 437.29946,432.9712 L 439.00084,432.41944 L 439.00084,433.5181 L 441.26936,433.5181 L 441.26936,434.57702 L 444.38857,434.93592 C 444.13628,435.86745 444.68588,436.75679 445.71259,437.62102 L 452.32837,437.77156 C 452.92265,438.61607 454.25234,438.97029 456.05883,439.00666 L 457.37581,440.32364 L 459.78815,440.32364 C 459.24086,446.21283 458.34847,442.4295 457.70963,450.28601 C 463.83423,451.3181 470.07285,451.84521 476.11182,453.31646 L 468.91161,499.87215 C 439.12664,495.69455 409.34167,490.0223 379.5567,484.73578 z \"},\"ut3\":{\"name\":\"UT-3\",\"path\":\"M 588.22658,599.11833 L 587.94302,600.11081 C 587.78632,600.65661 587.68061,603.01734 587.6949,605.35675 C 587.70919,607.69615 587.55442,610.44973 587.3582,611.47108 L 586.79107,614.59028 L 585.40869,614.32447 L 585.86948,622.88454 L 584.9479,623.45167 L 585.97582,632.41763 L 584.57569,633.92041 L 585.30235,637.18685 L 583.50064,639.64308 L 584.87701,644.48863 L 586.45431,644.48863 L 586.4952,648.31493 L 587.88149,649.55581 L 588.15569,651.8393 L 587.02143,651.93219 L 587.03584,654.89947 L 585.40869,657.63892 L 583.45919,656.55781 L 579.27661,660.74038 C 577.28474,662.72579 574.59054,664.88445 573.69391,665.43694 L 571.49629,669.99167 L 491.92104,659.44665 C 488.15505,691.71037 484.22819,709.44273 479.33787,745.11853 L 555.13817,755.87622 L 556.94589,754.0685 C 557.9417,753.07273 558.95579,752.24308 559.21441,752.24308 L 559.69292,752.24308 L 559.07262,749.86823 L 559.65747,749.49602 C 559.97914,749.29401 560.62485,748.21034 561.09302,747.08573 L 561.94371,745.04764 C 560.25293,741.25309 560.15863,743.25108 559.49797,742.19424 L 559.32074,739.60672 L 557.0345,739.44724 L 556.83955,738.34843 L 554.6951,736.32803 L 554.6951,732.87206 L 612.45364,740.04981 L 620.05668,680.71397 L 622.75054,680.96209 C 623.50947,673.85024 624.20659,667.85785 625.26718,659.92513 L 643.7343,662.1582 L 643.7343,657.10724 L 633.52599,655.70711 L 633.52599,653.13734 L 631.73602,652.67655 L 632.48037,651.22328 L 631.31067,649.87635 C 630.8767,649.35005 630.24532,648.34868 629.82196,647.5015 L 629.00671,646.01279 L 626.77364,645.80011 C 626.93896,644.43691 627.24407,643.76401 627.89015,642.32645 L 628.42183,641.44031 L 628.42183,637.82487 L 626.72044,634.56388 L 627.32302,633.02197 L 625.58619,630.23952 L 623.03411,629.76098 L 619.41866,629.74328 L 618.65661,628.52038 L 619.8972,627.26209 L 618.03629,625.20625 L 615.41332,625.20625 L 613.85371,620.17298 L 610.66361,618.96784 L 607.95206,618.96784 L 604.60242,620.70467 L 604.60242,624.63912 L 601.76678,624.63912 L 601.76678,624.12513 C 601.76678,623.8355 601.3703,623.19686 600.88064,622.70731 L 599.97681,621.80348 L 597.81463,622.47694 L 596.75126,620.26157 C 597.61438,617.63582 598.41375,614.99 599.19701,612.33952 C 599.67237,610.72133 600.06528,608.72833 600.06539,607.90883 C 600.06539,607.08904 600.34493,605.90493 600.68572,605.26811 L 601.30599,604.0984 L 600.06539,602.87556 L 600.06539,600.30573 L 593.75609,599.11833 L 591.43443,600.35893 L 590.81411,599.7386 C 590.47338,599.39781 589.75948,599.11833 589.21906,599.11833 L 588.22658,599.11833 z \"},\"mt\":{\"name\":\"MT At-Large\",\"path\":\"M 496.43964,65.833717 L 485.86765,126.40377 C 486.58853,128.79194 488.64768,130.78942 489.67025,133.13346 C 490.11056,135.26253 493.12192,136.03467 492.87807,138.27307 C 492.56925,140.24412 492.91587,141.83972 494.98708,142.49109 C 493.95672,144.24402 496.53697,144.66263 496.86569,146.05336 C 496.33707,147.78324 496.10943,149.46362 497.37965,150.92713 C 497.83178,153.34133 496.10214,153.95945 494.56173,154.96792 C 495.44172,156.84053 496.77298,158.69671 497.37965,160.58604 C 497.75249,162.98505 493.58008,161.09639 494.27817,162.25198 C 496.27373,163.61572 496.42046,166.14655 498.70886,166.20415 C 500.47769,167.44824 500.57718,169.54335 500.95965,171.48554 C 503.1458,172.6595 505.25249,174.0626 507.65886,174.74653 C 509.18319,175.01632 509.55205,177.40856 509.89193,178.62782 C 508.33371,180.83586 512.0467,179.16074 511.02619,181.71158 C 511.96974,182.87003 513.94418,183.46899 514.16312,185.39792 C 514.68642,188.07606 517.68891,189.52835 517.30005,192.22118 C 516.66719,195.53504 519.97706,193.88671 520.38381,196.45693 C 520.50244,198.69894 523.3907,197.49834 522.15609,199.71792 C 521.32067,202.04566 521.37317,204.49199 523.60936,205.86772 C 524.43623,207.52365 526.20631,207.53201 527.18936,208.4198 C 529.47352,209.94181 525.02813,213.70744 528.89074,212.28336 C 528.86941,210.80485 531.48788,210.71597 532.31124,212.1593 C 533.66791,212.98556 533.51925,216.24216 532.08084,215.88108 C 532.80517,218.74959 535.47719,217.74523 537.66351,218.55722 C 539.22876,220.12191 539.54347,216.64124 541.43847,217.56475 C 544.12359,216.62017 546.92244,218.97573 544.9653,221.80049 C 543.65818,223.78803 544.42059,228.15454 541.75748,228.67693 C 539.53093,228.57299 541.41946,231.55208 541.17262,232.93039 C 540.09251,234.44506 538.0229,235.47784 538.56738,237.91049 C 537.79972,239.63968 538.03816,242.75241 535.41272,242.48296 C 536.3079,243.75718 536.81162,245.08835 536.13936,246.59465 C 536.37541,248.37991 533.80627,249.23786 532.64797,248.04792 C 530.68898,249.66909 533.66805,250.31951 534.27847,251.59247 C 534.90113,253.5287 533.52295,254.67589 532.78975,255.88138 C 533.03361,258.31553 535.65519,259.6388 534.79243,262.22613 C 534.72143,264.09064 536.43766,267.52427 533.79995,268.11009 C 531.2702,267.88004 529.19286,267.3326 528.35906,270.28999 C 526.17603,271.36125 527.66399,272.87066 528.57173,274.31306 C 529.84657,275.86402 529.18813,279.67504 527.13619,279.82485 C 524.17586,279.05812 527.50993,282.01898 525.77153,282.94405 C 524.06045,284.43416 527.99959,283.88169 528.89074,284.43277 C 530.0813,286.19797 532.07761,291.02871 533.85312,291.45098 C 536.64867,291.29504 536.90945,288.28062 537.69896,287.28613 C 539.29934,286.9244 541.77995,288.05477 542.76767,286.64811 C 543.7898,284.99156 545.40483,285.69838 545.47926,283.51118 C 546.71344,282.57479 549.10982,282.30557 548.45668,280.26791 C 548.36393,278.67038 551.80842,278.37586 552.39114,280.07296 C 554.12027,281.09659 553.61853,283.42473 554.39381,284.84039 C 555.96551,285.1853 557.9996,285.01588 557.97381,287.14435 C 558.76074,288.44597 555.39825,290.79162 557.08767,291.18514 C 560.41108,290.78078 558.34444,294.99067 558.23965,296.9096 C 557.13888,298.5452 559.86044,299.83294 559.16124,301.34029 C 558.01061,302.86054 558.25194,304.30577 559.51569,305.68237 C 560.76967,307.77075 559.62755,309.40163 561.78421,311.35366 C 564.34901,312.64352 562.71069,316.28216 564.4249,317.5389 C 566.85066,317.78712 566.39913,319.006 566.48074,320.53405 C 568.30063,321.69293 568.53497,323.73274 568.80243,325.69138 C 568.01582,326.98445 568.60694,330.10564 566.55163,329.73217 C 564.53531,329.32306 566.73425,333.54275 567.18968,334.6591 C 568.28583,335.93462 570.93869,336.43582 570.5747,338.43405 C 570.49559,340.31748 573.43093,337.68614 574.65094,337.6188 C 576.43983,339.16819 579.22472,340.58068 580.07411,342.52801 C 580.14585,344.18783 581.8072,347.10227 582.07681,349.70573 C 583.31525,351.61428 580.8665,352.33295 581.13747,353.67564 C 582.26992,355.83803 582.82451,358.14133 582.73252,360.58752 C 582.30899,363.06597 584.63904,364.66961 586.5252,365.76257 C 588.3733,365.51842 587.48898,369.84897 589.20136,368.36781 C 591.21518,367.53441 587.21471,365.49001 589.36084,364.3093 C 590.37328,362.11638 592.67662,361.47811 594.67767,360.48118 C 597.13118,360.55147 599.77622,362.64618 602.58203,362.59019 C 603.94926,363.39289 605.0931,363.89041 606.83549,364.0789 C 608.3841,365.45832 609.78893,366.1081 610.66361,363.77762 C 610.81135,361.86415 610.66622,360.67543 612.7372,360.53435 C 613.48763,358.70667 615.60948,359.21883 617.09701,359.3292 C 617.61491,361.39863 619.10561,361.8314 621.06691,361.49138 C 622.25039,363.73337 624.34554,362.53498 627.14579,362.2889 C 630.56813,361.95489 634.07037,360.70855 635.12104,364.98276 C 637.43345,364.43086 639.61224,362.85933 642.05067,363.2991 C 644.38208,363.70203 647.19521,362.9278 648.83846,365.03593 C 647.38769,363.079 647.75349,360.89996 649.60057,358.83296 C 651.22965,357.81397 648.96142,354.43166 651.49688,354.86306 C 654.02253,355.19341 654.54996,354.10268 655.66176,352.34643 C 657.36899,354.01514 659.48035,355.38419 660.23423,357.7696 C 660.78837,359.38038 662.3697,360.9268 662.21918,362.57247 C 661.20266,364.31684 663.9153,365.36573 664.68262,366.77276 C 665.92815,368.29355 664.47658,371.10335 667.69549,371.11484 C 668.38875,371.34652 668.03583,370.85476 668.12084,370.4591 C 668.76629,359.94508 670.07823,349.45096 671.54136,339.0189 C 776.67999,350.32401 845.12607,357.79797 977.91641,363.6759 C 982.01571,280.38435 985.32071,204.41362 988.54851,117.76782 C 770.22397,107.9288 665.88584,91.520201 496.43964,65.833717 z \"}}})"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.usa.js",
    "content": "/** Add USA Map Data Points */\njQuery.fn.vectorMap('addMap', 'usa_en', {\"width\":959,\"height\":593,\"paths\":{\"hi\":{\"path\":\"m244.66,512.25c-2.48,3.8 2.23,4.04 4.74,5.38 3.06,0.16 3.51,-4.28 2.66,-6.56 -2.72,-0.77 -5.01,-0.19 -7.41,1.19z m-9.31,3.97c-4.02,5.11 3.64,0.48 0.63,-0.09l-0.5,0.07 -0.14,0.02z m39.69,7.97c-0.62,2.09 1.91,6.73 4.39,6.2 2.41,-1.46 3.73,1.73 6.48,0.56 1.23,-1.48 -3.77,-3.2 -3.7,-6.08 -0.95,-3.8 -3.28,-3.2 -5.96,-1.28 -0.41,0.2 -0.81,0.4 -1.22,0.6z m19.94,10.03c3.58,0.95 7.91,2.99 11.25,0.47 -1.05,-1.63 -5.06,-0.59 -7.1,-0.86 -1.44,0.01 -3.54,-1.63 -4.15,0.39z m12.13,4.38c2.33,2.45 3.64,6.83 7.24,7.4 2.36,-0.69 6.84,-0.66 7.32,-3.43 -2.09,-2.51 -5.77,-3.35 -8.88,-4.29 -2.53,-1.2 -4.11,-3.25 -5.68,0.33z m-7.06,1c-0.29,3.69 5.55,3.98 3.67,0.55 -0.27,-1.25 -3.83,-1.74 -3.67,-0.55z m23.66,14.69c0.27,2.45 3.18,3.93 0.47,6.15 -0.65,2.42 -5.54,2.87 -2.52,5.53 2.36,1.46 2.01,4.85 2.92,7.14 -0.72,2.69 -1.43,6.78 1.72,8.06 2.8,2.95 4.5,-1.93 6.19,-3.68 1.27,-1.69 3.85,-4.1 5.94,-2.59 3.04,-0.81 6.3,-2.42 7.78,-5.22 -2.79,-1.31 -4.88,-3.19 -5.57,-6.29 -2.4,-5.33 -8.95,-6.26 -13.58,-8.98 -1.29,-0.52 -2.26,-1.62 -3.34,-0.11z\",\"name\":\"Hawaii\"},\"ak\":{\"path\":\"m107.84,436.56c-2.27,0.55 -4.87,0.32 -6.84,-0.34 -2.41,1.22 -5.63,4.03 -8.25,1.88 -3.1,0.93 -3.51,3.84 -5.22,5.97 -1.82,2.52 -4.21,3.65 -7.31,3.14 -2.5,-0.94 -5.49,-1.15 -7.5,0.98 2.03,4.34 6.39,8.13 5.82,13.23 -1.85,2.94 6.31,2.99 2.68,5.02 0.15,2.8 3.07,5.68 2.91,7.88 -2.35,2.21 -5.24,-0.38 -7.71,-1.06 -3.24,-0.64 -2.73,-3.35 -0.82,-5.22 -1.57,-1.51 -7.35,-1.81 -6.51,1.12 -2.01,0.04 -3.81,-1.66 -6.27,-0.77 -3.72,-0.44 -5.97,0.65 -2.94,4.05 3.68,1.45 1.06,4.72 1.17,7.57 0.76,2.63 3.66,4.89 6.67,4.17 3.2,-0.06 5.87,3.59 9.21,1.65 2.16,-1.3 5.33,-0.99 4.79,1.89 -2.53,2.07 -1.36,6.13 -2.78,8.75 -1.96,1.88 -4.53,1.59 -6.59,0.16 -1.52,1.37 -4.7,3.68 -6.28,2.22 0.72,-3.71 -4.77,-3.63 -5.51,-0.61 -1.21,3.97 -6.27,4.46 -8.31,7.63 -0.7,2.42 -1.55,6.7 1.74,6.3 1.26,1.11 -1.2,4.8 -2.77,5.52 1.62,2.19 2.65,4.59 2.72,7.34 1.71,1.55 6.35,1.98 7.5,-0.16 2.45,-0.95 1.79,4.1 2.08,5.97 2.47,2.95 -4.02,1.28 -1.61,4.56 -0.85,2.93 -1.76,5.02 2,2.72 2.76,-0.47 5.11,-0.69 5.66,2.09 2.59,-3.91 2.26,2.78 3.25,4.66 0.59,-0.75 1.3,-5.69 3.94,-3.06 -0.17,4.52 5.33,-0.45 5.78,-0.04 0.54,2.92 -1.63,4.24 -2.86,6.41 -1.51,2.24 -2.07,5.63 -4.21,7.17 -3.87,-0.42 -3.37,4.1 -5.5,5.02 -2.65,-0.72 -5.73,0.71 -8.44,1.41 -1.35,2.41 -3.61,4.2 -5.78,1.81 -2.56,0.05 -5.63,0.68 -7.63,2.33 -2.48,2.43 -6.32,3.11 -9.66,2.29 -2.78,-1.91 -7.11,3.41 -3.11,2.31 2.5,-1.91 4.66,0.64 7.25,0.63 2.21,-1.15 4.17,-2.75 6.84,-2.06 2.32,-3.35 5.1,-0.32 7.92,-1.16 2.31,-0.39 7.01,-3.91 5.26,0.66 0.09,-2.91 3.42,-2.73 5.54,-2.04 4.21,0.96 0.29,-3.16 2.08,-3.43 3.47,-2.05 7.52,-2.41 11.2,-3.72 5.48,-3.19 11.62,-5.7 16.21,-10.1 4.27,-2.97 -2.78,-3.48 -1.21,-6.32 1.68,-2.43 4.58,-3.81 7.47,-4.5 1.5,-3.07 3.53,-6.11 5.88,-8.52 2.49,-1.32 4.83,-3.39 7.83,-2.32 2.67,0.71 3.74,5.32 -0.52,3.66 -1.27,-1.88 -5.56,-0.09 -5.25,2.41 -0.21,2.44 -2.56,4.22 -3.06,6.66 4.79,0.85 0.24,3.54 -1.38,3.8 1.67,1.91 5.66,0.6 7.57,-1.14 1.25,-1.85 3.43,-3.8 5.41,-4.22 1.81,2.8 5.1,-1.16 5.74,2.72 0.71,2.78 6.02,-4.86 3.34,-3.1 -3.03,3.11 -3.78,2.86 -1.94,-1.24 1.43,-4.85 -1.76,6.17 -1.45,0.81 -0.81,-3.19 -0.93,-6.03 3.05,-6.4 2.7,-0.86 5.37,-0.87 5.79,2.52 0.42,3.48 3.8,2.84 5.95,4.76 2.41,2.2 4.76,1.95 7.8,1.78 4.34,-0.47 8.01,4.04 12.28,3.17 2.49,-0.42 5.1,-5.2 4.29,-0.23 -2.26,2.83 -0.02,4.12 2.5,5.41 3.13,1.35 5.87,3.14 7.94,5.85 1.31,3.02 6.05,0.28 6.18,2.43 -3.83,1.25 -1.23,3.54 0.21,5.47 1.81,1.95 0.33,5.72 3.64,5.82 1.14,1.28 3.49,7.44 4.01,5.38 -0.35,-2.32 -0.7,-7.86 1.61,-3.76 0.37,1.42 1.04,8.7 2.07,4.74 1.07,-4.88 3.18,0.18 2.22,2.93 3.33,1.69 -1.23,3.33 0.69,4.88 0.69,-3.24 1.31,-0.36 2.16,1.56 1.05,1 1.54,3.94 3.13,3.72 -1.68,-1.72 -2.94,-6.23 0.4,-3 2.42,2.79 4.05,2.12 2.74,-1.66 -2.65,-2.66 0.28,-4.96 2.58,-2.29 3.12,-0.05 2.84,5.21 5.28,4.53 3.31,-3.17 1.5,-7.87 0.69,-11.7 -3.3,-1.55 -7.04,-2.54 -10.22,-4.06 -1.5,-5.33 -6.29,-8.69 -8.4,-13.77 -0.44,-3.33 -4.71,-2.62 -5.75,-5.23 -2.32,-1.72 -2.7,-4.4 -4.56,-6.35 -1.65,-1.53 -5.22,0.95 -5.51,2.94 0.59,3.09 -3.23,3.04 -5.06,4.72 0.05,-4.27 -4.3,-6.15 -6.7,-9.1 -1.33,-1.99 -1.32,-5.36 -4.45,-2.34 -2.37,0.24 -6.38,-0.31 -5.34,-3.62 0.1,-27.7 0.2,-55.4 0.31,-83.09 -2.75,-1.88 -5.88,-4.17 -9.15,-4.4 -2.52,1.72 -5.07,1.09 -7.39,-0.62 -2.72,0.23 -5.12,-0.65 -7.7,-2.89 -3.08,-2.74 -8.58,0.17 -10.98,-3.65 1.13,-3.56 -3.22,-4.83 -5,-2.09 -2.09,0.26 -0.65,-4.31 -3.64,-4.93 -2.57,-2.85 -4.01,-1.28 -5.86,1.21z M36.38,480.63c-0.67,3.11 4.27,1.31 4.72,4.66 0.24,3.82 5.37,3.9 2.34,-0.08 -0.1,-3.22 -3.92,-1.83 -5.06,-4.43 -0.76,-2.02 -0.9,-1.86 -2,-0.16z m-17.16,23.16c2.57,4.06 1.45,1.37 0.13,-1.28 -0.36,0.01 0,1 -0.13,1.28z m21.84,14.81c1.27,1.79 4.99,5.58 6.22,2.03 2.26,-3.3 -3.27,-2.89 -5.23,-3.68 -1.83,-0.9 -0.88,0.54 -0.99,1.65z m91.72,18.78c0.06,3.21 2.81,-1.98 0,0z m-31.47,14.69c-3.2,2.91 -7.24,4.67 -10.56,7.38 0.22,2.75 0.99,7.64 4.67,5.15 2.5,-1.44 4.98,-2.9 7.45,-4.37 -1.84,-3.31 -0.81,-3.15 -4.55,-3.48 -4.15,0.09 1.06,-3.73 2.64,-1.62 3.74,-1.04 3.95,-2.36 1.5,-3.66 0.7,-1.08 -1,0.61 -1.16,0.59z M55.75,570.75c1.42,2.83 3.53,-1.99 0,0z m-35.78,0.34c0.53,2.46 -4.04,4.84 1.05,3.59 4.2,0.47 3.46,-4.35 0.01,-3.84 -0.35,0.08 -0.7,0.16 -1.06,0.24z m62.19,0.69c1.57,2.91 1.31,-2.03 0,0z M58.63,573.13c3.23,0.49 0.99,-3.05 0,0z m-49,0.09c-4.84,2.56 -0.44,1.81 2.29,0.58 2.89,0.16 5.05,-0.48 0.84,-1.46 -1.04,0.29 -2.08,0.58 -3.13,0.88z m7.25,1.38c1.28,0.21 -2.23,-0.59 0,0z\",\"name\":\"Alaska\"},\"fl\":{\"path\":\"m748.38,439.94c1.69,2.92 1.5,6.12 1.16,9.34 -4.12,0.54 -2.15,-4.69 -5.56,-3.99 -6.18,-0.07 -12.34,1.13 -18.54,1.19 -10.09,0.29 -20.37,2.14 -30.33,0.64 -2.57,-1.57 -2.84,-6.15 -6.5,-5.33 -9.12,-0.12 -18.18,1.79 -27.26,2.55 -5.82,0.63 -11.62,1.37 -17.43,2.12 -1.42,3.25 2.6,4.37 4.06,6.34 0.8,2.28 -1.56,8.42 2.19,7.1 4.11,-1.2 8.08,-2.93 12.48,-2.72 3.34,-0.82 6.63,-0.73 9.89,0.45 4.09,0.8 7.77,3.09 11.41,4.98 1.77,1.94 5.5,1.87 5.97,5 -0.14,3.27 4.32,-0.94 6.5,0.53 3.19,-0.8 5.24,-3.68 7.69,-5.5 4.86,1.69 0.62,-2.9 3.27,-3.97 3.13,-0.83 6.62,-1.39 9.35,0.79 3.04,0.57 5.43,2 6.57,4.99 3.68,0.02 2.88,4.13 5.48,5.3 2.96,0.49 2.98,4.52 6.3,4.3 2.91,0.36 5.45,1.15 5.84,4.45 2.05,2.11 3.92,4.26 3.09,7.41 0.18,3.68 0.12,7.33 -1.44,10.75 0.39,3.68 1.37,7.94 3.28,10.78 2.25,-3.46 0.17,-3.87 -1.74,-6.03 2.19,-1.76 4.86,-0.22 7.3,0.16 0.82,3.15 -2.16,5.6 -3.48,8.19 -3.3,2.21 1.65,4.09 2.73,6.3 3.11,3.34 4.35,7.94 7.53,11.26 0.78,2.29 2.51,7.47 4.63,3.09 2.54,-0.24 3.88,3.44 5.28,5.41 -0.02,2.26 1.93,7.04 3.59,6.44 2.88,-0.8 6.04,0.65 8.28,2.59 2.56,3.3 4.58,6.98 4.56,11.27 1.37,2.73 4.55,0.44 5.81,-1.14 3.74,0.45 7.26,-1.25 9.22,-4.47 -1.01,-2.36 -0.57,-4.83 -0.32,-7.17 -0.04,-2.18 4.33,-3.19 2.25,-6.51 -0.98,-6.33 -0.19,-12.96 -1.87,-19.25 -2.46,-6.93 -7.54,-12.74 -10.4,-19.56 -1.51,-2.41 -4.24,-3.92 -4.62,-7.04 -0.94,-2.28 -2.67,-4.95 -0.07,-6.71 -0.39,-3.56 -4.86,-5.42 -6.84,-8.41 -5.38,-5.57 -8.29,-12.94 -12.35,-19.44 -2.15,-5.53 -4.29,-11.07 -5.91,-16.78 -3.43,0.07 -7.3,-1.03 -10.46,-0.35l-0.34,0.37 -0.26,0.29z m52.91,109.22c-1.9,4.58 0.72,0.38 0.66,-1.91 -0.22,0.64 -0.44,1.27 -0.66,1.91z m-4.69,9.91c2.56,-1.97 3.68,-6.84 1.04,-1.68 -0.35,0.56 -0.69,1.12 -1.04,1.68z m-2.25,2.22c1.46,-1.22 2.04,-2.07 0.18,-0.18l-0.18,0.18z m-5.72,4.16c-5.23,3.69 4.03,-2.14 0.33,-0.19l-0.33,0.19z m-10.72,3.22c-3.41,3.16 5.71,-0.32 4.1,-0.81 -1.8,-0.56 -2.56,-0.71 -4.1,0.81z m-4.59,3.16c0.08,0.16 0.4,-0.3 0,0z\",\"name\":\"Florida\"},\"nh\":{\"path\":\"m862.56,94c-1.4,-0.41 -3.87,-0.72 -3.05,3 0.22,3.63 -0.73,7.84 2.23,10.59 0.33,2.78 0.08,5.36 -2.17,7.29 -0.19,2.83 -5.98,2.58 -3.35,5.32 1.16,7.35 -0.56,15.03 -0.62,22.51 1.2,1.95 0.98,4.39 0.76,6.75 -1.07,3.79 4.84,-0.05 6.89,0.06 3.93,-1.29 8.46,-1.74 12.04,-3.54 0.77,-3.1 4.37,-2.75 5.94,-4.96 2.59,-3.52 -3.01,-2.73 -2,-6.59 -3.83,0.01 -4.27,-2.46 -4.66,-5.62 -3.84,-11.98 -7.32,-24.45 -11.49,-36.1 -0.18,0.43 -0.35,0.85 -0.53,1.28z\",\"name\":\"New Hampshire\"},\"mi\":{\"path\":\"M697.86,177.24L694.63,168.99L692.36,159.94L689.94,156.71L687.35,154.93L685.74,156.06L681.86,157.84L679.92,162.85L677.17,166.57L676.04,167.21L674.58,166.57C674.58,166.57 671.99,165.11 672.16,164.47C672.32,163.82 672.64,159.45 672.64,159.45L676.04,158.16L676.84,154.77L677.49,152.18L679.92,150.56L679.59,140.54L677.98,138.28L676.68,137.47L675.87,135.37L676.68,134.56L678.3,134.88L678.46,133.27L676.04,131L674.74,128.42L672.16,128.42L667.63,126.96L662.13,123.57L659.38,123.57L658.74,124.21L657.77,123.73L654.7,121.46L651.79,123.24L648.88,125.51L649.2,129.06L650.17,129.39L652.27,129.87L652.76,130.68L650.17,131.49L647.58,131.81L646.13,133.59L645.81,135.69L646.13,137.31L646.45,142.8L642.9,144.9L642.25,144.74L642.25,140.54L643.54,138.12L644.19,135.69L643.38,134.88L641.44,135.69L640.47,139.89L637.72,141.02L635.94,142.96L635.78,143.93L636.43,144.74L635.78,147.33L633.52,147.81L633.52,148.95L634.33,151.37L633.2,157.51L631.58,161.56L632.23,166.24L632.71,167.38L631.9,169.8L631.58,170.61L631.26,173.36L634.81,179.34L637.72,185.8L639.18,190.65L638.37,195.34L637.4,201.32L634.97,206.5L634.65,209.25L631.39,212.33L635.8,212.17L657.22,209.91L664.5,208.92L664.59,210.58L671.45,209.37L681.74,207.87L685.6,207.41L685.74,206.82L685.9,205.37L688,201.65L690,199.91L689.78,194.86L691.37,193.26L692.46,192.92L692.69,189.36L694.22,186.33L695.27,186.94L695.44,187.58L696.24,187.74L698.18,186.77L697.86,177.24z M581.62,82.06L583.45,80L585.62,79.2L590.99,75.31L593.28,74.74L593.74,75.2L588.59,80.34L585.28,82.29L583.22,83.2L581.62,82.06z M667.79,114.19L668.44,116.69L671.67,116.85L672.97,115.64C672.97,115.64 672.89,114.19 672.56,114.03C672.24,113.86 670.95,112.17 670.95,112.17L668.76,112.41L667.15,112.57L666.82,113.7L667.79,114.19z M567.49,111.21L568.21,110.63L570.96,109.82L574.51,107.56L574.51,106.59L575.16,105.94L581.14,104.97L583.57,103.03L587.93,100.93L588.09,99.64L590.03,96.73L591.81,95.92L593.1,94.14L595.37,91.88L599.73,89.46L604.42,88.97L605.55,90.1L605.23,91.07L601.51,92.04L600.06,95.11L597.79,95.92L597.31,98.35L594.88,101.58L594.56,104.17L595.37,104.65L596.34,103.52L599.89,100.61L601.19,101.9L603.45,101.9L606.68,102.87L608.14,104L609.59,107.08L612.34,109.82L616.22,109.66L617.68,108.69L619.29,109.99L620.91,110.47L622.2,109.66L623.33,109.66L624.95,108.69L628.99,105.14L632.39,104L639.02,103.68L643.54,101.74L646.13,100.45L647.58,100.61L647.58,106.27L648.07,106.59L650.98,107.4L652.92,106.91L659.06,105.3L660.19,104.17L661.65,104.65L661.65,111.6L664.88,114.67L666.17,115.32L667.47,116.29L666.17,116.61L665.37,116.29L661.65,115.81L659.55,116.45L657.28,116.29L654.05,117.75L652.27,117.75L646.45,116.45L641.28,116.61L639.34,119.2L632.39,119.85L629.96,120.66L628.83,123.73L627.54,124.86L627.05,124.7L625.6,123.08L621.07,125.51L620.42,125.51L619.29,123.89L618.48,124.05L616.54,128.42L615.57,132.46L612.39,139.46L611.22,138.42L609.85,137.39L607.9,127.1L604.36,125.73L602.31,123.45L590.19,120.7L587.33,119.67L579.1,117.5L571.21,116.36L567.49,111.21z\",\"name\":\"Michigan\"},\"vt\":{\"path\":\"m833.16,106.59c0.19,6 4.65,11.21 3.72,17.28 -2.48,4.23 4.52,7.29 2.22,11.58 0.9,1.59 4.66,1.96 4.06,5.25 1.08,4.21 2.86,8.34 1.84,12.76 3.35,-0.51 7.06,-1.17 10.13,-1.97 -0.21,-2.13 1.51,-5.75 -0.53,-7.81 0.2,-7.64 1.01,-15.26 1.13,-22.91 -3.25,-2.41 0.32,-3.79 2.12,-5.18 1.96,-2.28 3.9,-5.07 2.6,-8.1 -2.62,-1.63 -1.02,-5.94 -2.39,-7.22 -8.3,2.1 -16.59,4.21 -24.89,6.31z\",\"name\":\"Vermont\"},\"me\":{\"path\":\"m889.88,40.22c-2.16,1.31 -3.69,2.74 -4.84,4.69 -2.29,0.6 -4.99,-1.37 -4.88,-3.94 -2.97,-0.82 -3.33,3.68 -4.37,5.71 -1.09,4.29 -3.27,8.39 -3.97,12.69 -0.06,3.04 1,6.63 -1.35,9.09 0.08,2.92 -0.75,6.18 2,8.16 -1.37,5.7 -6.23,10.36 -5.41,16.56 -4.27,-2.21 -1.74,2.47 -1.09,4.73 3.51,11.08 7.19,22.16 10.25,33.35 0.21,3.01 5.81,1.35 4.53,5.7 2.9,2 2.06,-3.92 2.66,-5.87 -1.01,-3.29 2.7,-4.63 0.66,-7.62 0.94,-1.05 2.92,-5.9 4.61,-3.46 2.03,1.03 5.28,-1.89 6.74,-3.19 -0.98,-4.02 4.21,-1.75 4.73,-5.32 -1.11,-2.61 0.74,-5.45 -0.57,-7.44 -2.42,-1.59 3.53,-4.63 3.31,-0.78 2.27,0.48 2.15,2.8 3.66,3.93 1.94,-2.82 -2.15,-3.81 0.35,-6.03 2.43,-0.81 3.1,-3.96 6,-3.31 -0.17,1.46 1.03,3.34 2.26,1.38 2.94,-2.9 5.24,-7.08 9.37,-8.34 1.17,-2.61 3.34,-5.74 0.71,-8.24 -0.55,-1.64 -3.68,-4.84 -4.15,-2.58 -0.75,2.6 -4.66,-0.65 -4.92,-2.22 0.1,-2.8 0.29,-7.17 -3.8,-5.81 -3.96,1.36 -3.64,-3.04 -4.69,-5.61C905.22,58.3 902.75,50.15 900.28,42c-2.86,-1.25 -5.71,-2.92 -8.81,-3.38 -0.53,0.53 -1.06,1.06 -1.59,1.59z m20.47,61c-2.81,1.7 1.87,5.16 1.13,1.22 1.48,-0.9 0.13,-2.4 -1.13,-1.22z m-7.81,7.81c3.16,6.67 2.63,-3.59 0,0z\",\"name\":\"Maine\"},\"ri\":{\"path\":\"m871,164.28c1.15,4.66 2.29,9.31 3.44,13.97 2.56,-0.49 4.66,-2.29 5.84,-4.56 4.17,0.76 4,-2.64 1.51,-4.97 -1.79,-1.94 -3.16,-5.31 -5.74,-5.92 -1.68,0.49 -3.37,0.99 -5.05,1.48z\",\"name\":\"Rhode Island\"},\"ny\":{\"path\":\"m825.56,108.66c-2.7,1.12 -5.45,1.68 -8.33,1.43 -5.07,0.72 -10.17,2.73 -12.92,7.31 -2.84,3.43 -4.89,7.49 -7.18,11.2 -1.65,2.36 -5.82,3.73 -5.55,6.84 -0.17,3.56 5.77,0.73 4.43,4.38 -2.69,2.3 0.8,4.23 0.56,6.59 0.5,3.47 -4.26,1.99 -5.36,4 -1.62,2.71 -3.35,6.62 -7.22,6.05 -3.04,-0.43 -5.35,2.05 -7.98,2.63 -2.5,-0.75 -4.7,-2.05 -7.59,-1.31 -5.31,0.21 -10.62,1.98 -15.23,4.53 -0.29,1.77 0.61,6.25 3.17,6.14 1.55,2.48 2.09,4.96 -0.63,6.72 -1.51,1.76 -1.8,4.25 -4.16,5.3 -1.93,1.14 -2.68,3.51 -4.8,4.54 0.33,3.07 -0.22,7.29 4.08,5.12 22.14,-4.26 44.26,-8.68 66.23,-13.74 0.98,3.85 5.67,1.32 6.44,4 0.64,2.93 1.36,7.4 5.33,6.88 3.14,1.9 6.9,3.68 10.69,4.22 2.71,0.47 7.18,1.43 6.44,5.06 -0.33,1.97 -1.62,7.56 1.97,5.93 5.3,-1.65 10.96,-2.84 15.06,-6.85 3.23,-2.49 6.76,-4.64 9.35,-7.86 -2.99,-2.44 -4.65,0.46 -6.81,2.42 -2.91,1.56 -6.01,3.51 -9.16,4.32 -2.6,-0.63 -4.83,-0.86 -6.18,2.07 -1.03,2.04 -4.86,2.98 -3.98,-0.15 4.26,-1.87 -2.17,-3.97 -0.33,-6.21 1.19,-3.13 0.56,-6.87 0.42,-10.21 -1.43,-7.38 -3.69,-14.76 -2.54,-22.36 -0.08,-4.46 1.55,-8.97 -0.51,-13.21 -1.22,-2.56 -0.47,-6.83 -4.05,-7.34 -2.99,-0.66 0.75,-4.31 -1.57,-6.2 -1.7,-2.43 -3.17,-4.91 -1.54,-7.81 0.38,-5.77 -3.83,-10.57 -3.55,-16.35 -2.32,0.65 -4.65,1.29 -6.97,1.94z\",\"name\":\"New York\"},\"pa\":{\"path\":\"m798.88,181.63c-17.5,3.38 -34.87,7.42 -52.47,10.28 -0.61,-2 0.48,-8.42 -2.41,-4.31 -2.18,2.73 -5.48,3.74 -8.09,5.97 1.52,9.75 2.63,19.57 5.44,29.05 1.14,6.09 2.27,12.17 3.41,18.26 8.85,-1.42 17.79,-2.25 26.51,-4.41 16.39,-3.45 33.03,-6.46 49.33,-9.87 2.48,-3.07 8.03,-1.69 8.97,-6.19 0.64,-2.36 4.86,-3.99 4.33,-5.9 -2.3,-1.89 -5.94,-2.77 -6.39,-6.13 -3.14,1.09 -4.42,-3.94 -3.12,-5.32 3.86,-1.1 -0.49,-3.68 0.55,-5.96 2.52,-1.88 1.12,-5.15 2.81,-7.07 3.87,-2.7 -2.98,-1.1 -3.72,-3.99 -1.35,-2.18 -0.28,-7.24 -4.16,-5.92 -2.34,-1.13 -3.87,-3.75 -7.09,-1.7 -4.64,1.07 -9.28,2.15 -13.92,3.22z\",\"name\":\"Pennsylvania\"},\"nj\":{\"path\":\"m827.84,191.34c1.03,2.99 -1.82,4.8 -2.06,7.47 2.86,1.63 0.49,4.87 -0.92,5.73 -0.41,3.86 4.01,1.68 4.16,5.14 1.37,2.19 4.72,3.02 6.26,4.94 -0.15,2.61 -3.85,3.5 -4.69,6.06 -0.26,3.07 -4.09,3.19 -4.18,5.96 -0.99,2.38 -0.74,5.09 1.7,6.47 2.85,2.76 6.86,3.99 10.73,4.38 0.48,1.55 -1.84,7.18 1.1,3.59 1.5,-2.42 0.59,-5.95 3.11,-8.01 2.5,-4.08 5.03,-8.84 4.88,-13.61 -1.35,-4.07 0.8,-9.01 -1.81,-12.82 -1.1,1.32 -6.17,1.23 -4.13,-0.8 2.39,-1.39 3.37,-3.62 2.39,-6.31 0.21,-2.31 1.58,-5.42 -1.69,-6.19 -4.35,-1.15 -8.82,-2.13 -12.88,-4.26 -0.66,0.75 -1.31,1.5 -1.97,2.25z\",\"name\":\"New Jersey\"},\"de\":{\"path\":\"m824.88,225.34c-3.72,0.25 -3.47,3.52 -1.91,6.13 3.35,6.89 3.86,14.58 6.03,21.81 3.45,0.11 6.81,-0.49 10.16,-1.25 -1.2,-2.17 -0.68,-6.38 -3.32,-6.38 -2.9,-1.2 -4.17,-3.69 -4.9,-6.58 -0.91,-3.11 -3.62,-4.96 -5.48,-7.35 -1.85,-1.82 0.94,-5.5 -0.26,-6.47l-0.33,0.09z\",\"name\":\"Delaware\"},\"md\":{\"path\":\"m813.59,229.19c-17.31,3.18 -34.53,6.83 -51.78,10.28 0.74,3.02 1.31,6.08 1.78,9.16 2.14,-1.9 3.29,-5.35 6.59,-5.34 2.14,-1.85 2.67,-5.25 5.77,-3.55 3.46,0.18 5.43,-5.35 9.01,-3.85 2.63,1.63 5.66,2.79 7.34,5.59 4.19,0.11 3.68,3.73 5.74,4.96 2.73,1.11 5.02,1.18 6.38,-0.53 4.29,1.38 2.24,3.74 1.44,6.9 0.09,2.97 -3.7,4.92 -1.66,7.97 3.1,1.31 6.4,1.2 9.63,1.4 2.17,1.58 6.83,1.03 3.79,-2.1 0.41,-2.74 -3.08,-3.35 -3.32,-6.04 -1.7,-2.67 -1.42,-5.47 -0.36,-8.32 1.68,-2.42 -2.83,-3.82 -0.4,-5.41 1.25,-1.53 0.43,-4.16 2.98,-4.7 1.62,-3.02 5.1,-1.45 2.35,1.02 -2.54,2.98 -0.81,4.5 0.57,6.3 1.41,3.55 -0.68,5.07 -1.53,7.31 -0.22,-0.81 3.62,-1.01 3.22,1.79 -3.15,1.64 -1.45,6.12 1.09,7.31 2.98,0.99 5.58,-1.8 6.98,2.14 1.5,3.75 4.92,0.81 7.41,-0.02 2.74,-1.21 3.47,-4.93 2.78,-7.7 -1.13,-1.58 -4.82,0.92 -7.13,0.4 -3.86,1.26 -4.9,-1.25 -5.28,-4.64 -1.68,-5.97 -2.14,-12.33 -5.16,-17.9 -0.04,-4.32 -2.71,-4.2 -6.07,-2.91 -0.73,0.16 -1.45,0.31 -2.18,0.47z m10.94,32.59c1.32,0.99 0.59,4.97 2.06,4.63 -0.48,-1.31 -0.36,-4.99 -2.06,-4.63z\",\"name\":\"Maryland\"},\"va\":{\"path\":\"m792.88,242.88c-0.16,1.46 0.24,5.89 -2.4,4.29 -2.58,-0.67 -6.42,-3.2 -8.23,-2.73 0.7,3.72 -1.46,6.77 -2.99,9.94 -3.05,1.14 -2.29,5.83 -5.84,5.58 -1.62,1.74 -1.47,5.31 -2.45,7.73 -3.09,1.14 -5.37,-0.48 -7.28,-1.75 0.11,6.5 -3.72,11.95 -5.91,17.84 -1.69,1.73 1.19,3.8 -0.74,5.77 -1.35,3.56 -3.79,2.72 -6.19,4.19 -2.72,1.1 -4.9,0.5 -5.4,4.61 -2.07,1.14 -4.83,2.63 -6.91,0.47 -2.38,1.51 -5.02,3.21 -7.81,1.6 -2.69,-0.01 -3.9,-6.55 -6.07,-2.94 -3.27,4.09 -7.89,7.48 -10.21,12.09 0.43,3.25 -4.46,3.32 -6.42,5.15 -4.27,1.95 3.62,-0.11 5.16,-0.07 5.56,-0.79 11.14,-1.37 16.76,-1.36 1.95,-2.65 4.98,-1.81 7.77,-1.65 7.86,-0.32 15.65,-2.12 23.48,-2.99 12.85,-1.4 25.44,-4.27 38.04,-7.05 11.65,-2.52 23.3,-5.03 34.96,-7.55 -1.64,-2.66 -2.75,-6.67 -6.42,-4.14 -1.99,2.03 -6.61,-1.82 -2.7,-2.48 2.65,-1.62 -1.75,-4.07 -1.8,-5.97 -2.73,-0.62 -2.88,-5.12 0.54,-3.6 -0.17,-1.37 -1.24,-3.62 -1.62,-5.68 1.47,-3.51 -0.84,-4.97 -3.72,-5.16 0.31,-3.42 -2.9,-2.93 -5.22,-3.97 -3.33,0.21 -7.06,-0.25 -9.91,-1.66 -1.22,-2.41 -0.91,-5.12 1.25,-6.88 1.39,-2.83 -0.28,-5.7 -3.3,-6.27 -2.65,-0.83 -6.97,-0.29 -5.73,-4.3 -0.83,-0.3 -2.05,-1.06 -2.69,-1.06z m39.16,21.59c0.44,4.71 -3.15,8.7 -2.62,13.48 -0.34,4.11 2.64,5.72 3.48,0.92 1.71,-3.04 -0.23,-6.47 0.8,-9.73 0.4,-2.53 3.66,-3.88 3.52,-6.73 -1.73,0.69 -3.46,1.38 -5.19,2.06z\",\"name\":\"Virginia\"},\"wv\":{\"path\":\"m739.75,223.25c-1.6,2.23 1.3,5.02 0.25,7.75 -0.18,4.04 -0.63,8.11 -0.84,12.13 -1.94,3.58 -4.43,7.35 -8.16,9.13 -3.15,-1.33 -3.92,3.25 -5.76,4.98 -1.56,2.28 2.64,4.93 -0.3,6.69 -2.57,3.58 -2.6,-4.8 -4.46,-0.71 -1.32,2.59 0.02,6.02 -1.35,8.33 -1.82,1.54 -0.53,5.19 -4.16,4.81 -2.23,0.13 -1.45,6.19 1,6.81 2.24,1.47 2.49,4.74 5.5,5.92 1.92,1.96 2.28,5.18 5.39,6.05 1.64,2.19 3.07,4.96 6.25,4.88 2.63,0.5 4.77,-3.86 7.22,-1.35 1.49,0.81 3.93,-0.57 4.58,-1.83 0.43,-4.57 3.42,-2.71 6.03,-4.39 2.39,-0.94 4.82,-0.98 5.62,-4.44 -1.26,-2.59 0.3,-5 1.56,-7.64 2.23,-4.81 4.72,-9.61 4.67,-15.05 2.65,-2.31 3.72,3.56 7.05,1.41 1.64,-1.77 1.12,-5.67 2.6,-7.59 3.47,0.39 2.97,-3.96 5.76,-5.21 2.29,-3.11 3.52,-6.8 3.06,-10.7 1.06,-1.29 5.1,1.62 7.23,2.15 3.3,3.35 4.34,-1.98 2.85,-4.05 -2,-2.28 -5.12,-3.7 -7.62,-4.75 -3.31,0.98 -5.44,5.47 -9.38,3.97 -1.86,-0.23 -2.38,3.98 -4.86,3.88 -2.89,0.71 -3.79,4.38 -6.03,6.22 -1.1,-0.06 -0.99,-4.82 -1.62,-6.64 -0.01,-3.93 -1.77,-5.3 -5.48,-3.82 -4.21,0.6 -8.41,1.23 -12.61,1.91 -1.17,-6.45 -2.29,-12.92 -3.44,-19.38l-0.35,0.35 -0.18,0.18z\",\"name\":\"West Virginia\"},\"oh\":{\"path\":\"m729.5,197.78c-4.85,2.06 -7.38,6.9 -11.47,9.97 -4.08,0.86 -8.09,1.75 -11.72,3.88 -3.41,1.61 -4.39,-4.09 -7.67,-2.63 -3.13,1.35 -5.49,-1.1 -8.11,-2.41 -8.6,1.15 -17.15,2.64 -25.66,4.38 1.45,17.83 4.12,35.53 5.87,53.33 -0.69,3.82 4.06,2.26 6.23,1.48 2.74,0.41 4.83,2.16 5.48,4.94 1.26,2.48 5.82,-0.87 6.96,2.54 2.19,1.53 4.46,-2.33 7.03,-0.58 2.52,0.04 5.62,1.51 6.84,-1.56 1.49,-0.55 5.37,-3.85 5.41,-0.71 0.38,2.53 3.82,3.57 5.77,4.7 3.53,0.63 2.32,-3.91 4.21,-5.51 -0.11,-2.74 0.21,-5.73 1.39,-8.13 2.53,-2.81 3.8,4.53 4.98,0.39 -2.02,-2.27 -0.99,-5.41 0.93,-7.41 1.07,-4.06 4.05,-2.41 6.5,-4.39 2.93,-3.16 6.59,-6.57 5.97,-11.27 0.44,-4.71 1.18,-9.75 -0.53,-14.23 1.47,-2.48 2.58,-4.29 0.96,-7.33 -2.04,-7.53 -2.56,-15.37 -3.93,-23.04 -1.81,1.2 -3.63,2.4 -5.44,3.59z\",\"name\":\"Ohio\"},\"in\":{\"path\":\"m658.66,210.31c-9.12,0.93 -18.35,1.98 -27.41,2.68 -2.6,0.39 -4.21,5.08 -6.89,2.98 -3.83,-2.84 -2.64,1.83 -2.41,4.45 1.1,14.81 2.73,29.61 3.44,44.42 -0.76,3.69 -1.39,7.89 1.36,10.91 0.1,2.99 1.4,6.28 -1.14,8.65 -1.83,2.73 -2.55,6.09 -5.02,8.42 0.09,2.08 -2.02,8.2 1.63,5.16 3.49,-0.6 7.25,-1.53 10.69,-1.34 2.36,4.08 2.67,-0.62 5.26,-1.29 2.03,-2.62 4.78,2.05 5.34,1.04 -1.26,-3.41 3.05,-3.77 5.1,-5.22 1.09,0.63 6.05,3.38 5.3,-0.64 -0.46,-2.47 2.02,-4.71 3.65,-6.34 3.11,-1.39 4.33,-3.9 4.16,-7.23 1.83,-1 4.93,-1.01 6.97,-2.47 4.23,-1.03 0.26,-3.48 1.22,-5.92 -0.83,-12.56 -2.8,-25.13 -4.08,-37.69 -0.85,-6.99 -1.44,-14.01 -2.14,-21.02 -1.68,0.16 -3.35,0.31 -5.03,0.47z\",\"name\":\"Indiana\"},\"il\":{\"path\":\"m569.75,200.44c-0.29,2.58 4.2,1.83 3.73,5.07 2.07,2.09 5.71,4.21 4.38,7.77 -0.31,3.04 -2.61,5.44 -3.08,8.4 -2.38,2.71 -6.06,2.98 -9.31,3.94 -1.61,2.47 -1.05,4.91 1.28,6.47 0.63,3.25 -1.08,5.07 -2.74,7.38 1.41,3.63 -2.39,2.86 -3.56,5.02 1.08,3.12 -2.11,3.8 -2.53,6.64 0.19,3.95 1.33,8.21 3.28,11.58 3.68,3.96 7.38,7.9 12.21,10.47 -0.61,2.88 -0.64,6.7 3.43,5.71 2.05,0 6.18,0.38 6.26,2.68 -0.19,4.39 -3.6,8.24 -3.28,12.53 1.6,3.83 5.33,6.26 8.59,8.42 3.37,-0.29 5.36,1.27 5.9,4.6 1.01,2.64 3.84,4.73 1.73,7.67 0.55,1.74 2.58,7.7 4.31,4.05 1.21,-2.98 5.41,-4.78 8.07,-2.46 3.1,2.46 5.94,0.47 3.13,-2.8 -0.98,-3.39 2.61,-4.96 5.37,-5.33 1.01,-1.55 -1.6,-4.46 1.4,-5.97 1.8,-3.97 -0.56,-9.39 3.32,-12.49 1.43,-2.97 3.23,-5.97 4.4,-8.97 0.13,-3 -0.7,-5.7 -2.34,-8.16 -0.45,-4.59 1.31,-9.09 0.02,-13.65 -1.16,-15 -2.22,-30.05 -3.67,-45.01 -1.02,-3.1 -1.61,-6.46 -4.04,-8.77 -2.27,-1.83 -0.51,-5.93 -1.97,-7.32 -14.76,0.83 -29.52,1.67 -44.28,2.5z\",\"name\":\"Illinois\"},\"ct\":{\"path\":\"m865.78,165.41c-6.91,1.54 -13.81,3.08 -20.72,4.63 2.17,6.2 2.74,12.83 2.44,19.34 -2.62,4.3 2.61,2.38 3.97,-0.21 2.09,-1.89 4.19,-3.71 5.99,-5.88 2.06,1.35 4.78,-1.86 7.44,-1.46 2.98,-0.68 5.69,-2.24 8.56,-3.26 -1.15,-4.67 -2.29,-9.33 -3.44,-14 -1.42,0.28 -2.83,0.56 -4.25,0.84z\",\"name\":\"Connecticut\"},\"wi\":{\"path\":\"m559.53,104.97c-4.06,2.75 -8.71,4.92 -13.53,5.84 -2.88,-1.08 -5.54,-1.12 -5.57,2.68 -0.48,3.34 0.51,7.03 -0.47,10.17 -2.02,3.26 -6.91,4.03 -7.36,8.38 -2.63,2.78 2.21,3.06 2.23,5.53 1.79,2.9 -2.13,4.74 -1.33,7.65 0.29,2.93 -0.4,6.49 1.14,8.93 1.33,3.48 5.88,0.21 6.64,3.93 1.56,2.26 5.47,1.03 6.19,4.78 2.15,5.1 9.7,4.85 11.21,10.39 0.68,3.38 0.35,7.34 1.94,10.32 3.26,1.05 1.94,4.34 0.25,6.21 -0.79,3.96 2.53,8.34 6.75,8.25 2.28,1.6 4.86,1.65 7.83,1.19 13.03,-0.77 26.07,-1.53 39.1,-2.3 -0.02,-4.45 -1.98,-8.61 -1.86,-13.13 -1.7,-2.04 -0.86,-4.17 -0.04,-6.39 0.32,-2.84 3.07,-4.93 1.51,-7.87 -1.05,-2.94 -0.88,-6.21 1.73,-8.27 -0.2,-2.83 -0.5,-5.03 -0.16,-7.93 -1.14,-4.2 2.64,-7.5 3.69,-11.36 0.92,-1.13 3.15,-8.34 0.73,-4.93 -2.65,3.81 -4.99,8.01 -8.18,11.29 -0.86,2.06 -3.21,4.55 -5.21,4.5 -2.57,-1.26 0.28,-4.49 0.9,-6.41 0.47,-2.94 3.2,-4.25 4.09,-6.85 -3.31,-1.29 -2.77,-5.03 -3.54,-7.92 0.02,-3.09 -1.23,-5.08 -4.29,-5.57 -2.14,-3.67 -7.04,-2.78 -10.59,-4.12 -7.13,-1.87 -14.21,-4.39 -21.67,-4.99 -2.48,-0.54 -2.84,-5.51 -5.51,-4.73 -1.71,-1.54 -3.85,-0.7 -5.82,0.13 -2.8,-1.32 0.68,-4.59 1.5,-6.38 2.18,-1.34 -1.53,-2.14 -2.31,-1z\",\"name\":\"Wisconsin\"},\"nc\":{\"path\":\"m830.06,295.97c-18.3,3.8 -36.53,8 -54.86,11.65 -12.74,1.51 -25.38,4.07 -38.18,4.94 -3.32,-0.82 -1.17,3.72 -2.5,5.53 -2.62,1.34 -3.49,4.59 -5.03,6.38 -3.24,-1.36 -5.07,1.46 -6.34,3.97 -1.09,-0.57 -2.96,0.03 -3.41,-1.41 -2.02,1.96 -4.37,3.73 -4.31,6.81 -3.66,1.1 -6.31,3.82 -9.28,5.96 -2.64,0.94 -5.76,2.16 -7.4,4.35 0.73,4.06 -2.98,3.3 -5.1,5.29 -1.98,4.69 2.74,2.66 5.58,2.5 6.41,-1.19 13.32,-0.49 19.18,-3.73 5.04,-1.9 9.41,-5.9 15.06,-5.67 6.5,-0.64 13.15,-0.6 19.62,-0.69 2.99,0.53 3.36,4.79 5.58,5.01 5.37,-0.81 10.87,-1.67 16.25,-1.79 5.38,1.36 9.61,5.45 14.52,7.93 3.59,2.64 6.93,5.66 10.43,8.44 3.15,-0.86 6.32,-1.58 9.59,-1.72 1.06,-4.55 2.04,-9.29 5.39,-12.78 4.2,-4.27 9.23,-8.29 15.33,-9.29 2.91,1.95 3.69,-2.9 5.27,-4.53 2.72,-5 -2.44,3.91 -2.46,-1.22 -3.87,0.7 -5.43,-0.26 -3.29,-4 2.77,-4.25 -2.73,-2.51 -2.12,-6.02 -1.42,-3.76 2.84,2.19 5.06,0.81 2.81,0.12 5.1,-1.87 5.59,-4.6 0.45,-2.9 4.59,-2.7 3.28,-6.48 -4.02,-2.43 4.25,-0.66 0.4,-3.93 -3.52,-3.44 -5.24,-8.33 -7.23,-12.76 -1.54,0.35 -3.08,0.71 -4.63,1.06z m17.13,23.72c1.55,2.61 -4.64,4.26 -0.52,2.69 1.38,-1.92 0.21,-5.22 0.24,-7.62 -0.74,-2.05 0.37,4.57 0.28,4.94z\",\"name\":\"North Carolina\"},\"dc\":{\"path\":\"m803.44,248.16c2.67,3.43 3.85,-1.02 0.55,-0.75l-0.29,0.4 -0.25,0.35z\",\"name\":\"District of Columbia\"},\"ma\":{\"path\":\"m877.59,144.41c-1.04,3.1 -4.01,3.5 -6.79,4.13 -8.62,2.32 -17.17,4.6 -25.96,6.12 -0.11,4.77 -1.17,9.59 -0.03,14.31 10.66,-2.6 21.54,-4.29 32,-7.44 3.57,2.81 6.01,6.73 8.28,10.59 2.13,-0.78 0.01,-5.15 3.77,-5.38 2.93,-3.28 1.83,4.78 3.17,2.62 2.13,-3.09 6.1,-3.9 9.41,-5.21 -0.11,-3.41 -2.21,-8.55 -6.38,-7.53 1.64,-0.1 4.89,0.87 4.91,3.82 0.85,2.24 -2.55,3.71 -4.35,4.24 -3.37,0.51 -4.99,-1.76 -6.32,-4.47 -1.38,-2.05 -3.58,-6.56 -6.3,-3.6 -1.89,-1.72 -3.13,-4.04 -1.33,-6.3 2.3,-2.34 1.23,-6.2 -1.28,-7.16 -0.93,0.41 -1.86,0.82 -2.79,1.24z M902.25,172.69c-1.6,2.76 3.05,-2.44 0.08,-0.32l-0.08,0.32z m-11.28,1.28c1.59,0.78 6.09,-2.26 1.78,-2.03 -0.59,0.68 -1.19,1.35 -1.78,2.03z\",\"name\":\"Massachusetts\"},\"tn\":{\"path\":\"m730.41,314.34c-8.87,-0.11 -17.76,1.5 -26.57,2.73c-10.24,2.86 -20.99,2.66 -31.48,4.02c-16.34,1.45 -32.65,3.29 -48.96,4.95c-4.57,-1.71 -0.43,5.74 -5.06,4.14c-6.97,0.06 -13.87,1.23 -20.84,0.71c-0.95,4.26 -1.37,9.04 -3.6,12.76c1.03276,2.6246 -1.94104,7.30425 -2.59092,9.90471c-2.52529,1.78965 -2.61104,1.92035 -0.46104,4.90035c3.07759,1.94598 -1.38459,5.12506 1.90081,3.86506c33.91,-3.26 65.53115,-6.30012 99.44115,-9.56012c-0.23,-2.54 0.72,-5.31 3.53,-5.69c3.11,-0.4 0.99,-5.41 4.88,-5.81c2.77,-2.02 6.49,-2.19 8.62,-5.18c1.76,-2.26 6.31,-1.64 5.78,-5.38c1.19,-1.77 3.1,-3.84 5.03,-4.85c1.04,-0.39 0.28,1.78 1.72,1.19c2.38,0.56 2.2,-4.36 5.22,-3.86c3.3,1.27 2.68,-2.92 4.96,-4.18c2.05,-0.94 3.81,-6.68 0.92,-6.59c-0.81,0.64 -1.63,1.27 -2.44,1.91l0,0.02z\",\"name\":\"Tennessee\"},\"ar\":{\"path\":\"m509.47,335.31c1.73,4.9 1.5,10.02 1.53,15.12c2.15,12.21 1.13,24.64 1.47,36.97c0.02,3.71 0.04,7.42 0.06,11.13c2.06,3.2 5.05,-1.45 7.69,1.47c1.53,1.76 -0.88,7.54 2.97,6.49c17.61,-0.36 35.23,-0.72 52.84,-1.08c1.97,-2.6 0.41,-5.9 -1.28,-8.22c3.3,-1.61 -1.59,-3.96 0.84,-6.53c0.75,-2.77 0.62,-6.34 3.78,-7.69c-1.88,-3.07 2.08,-5.24 3.19,-7.88c3.77,-0.38 1.58,-3.3 2.64,-5.42c1.12,-2.67 2.56,-5.28 4.85,-6.58c1.2,-4.12 0.21,-2.67 -1.53,-5.61c-2.76,-3.32 1.95,-3.50023 2.36,-6.84c0.17988,-0.90552 3.08012,-6.46012 1.22,-6.75c-2.65,0.85 -5.34,-0.18 -8.02,-0.33c-0.09,-3.38 4.4,-3.88 4.22,-7.3c0.58,-3.87 -3.58,-3.68 -6.34,-3.26c-24.17,0.77 -48.34,1.54 -72.5,2.31l0.01,0z\",\"name\":\"Arkansas\"},\"mo\":{\"path\":\"m490.44,245.63c-2.39,-0.46 -0.19,4.05 0.07,5.6 2.45,3.32 4.51,7.86 8.55,9.22 2.81,-0.24 3.61,2.67 2.79,4.84 -3.22,1.64 -1.72,5.03 0.19,7.07 0.9,2.55 4.61,3.05 4.89,5.61 2.1,12.97 1.12,26.14 1.51,39.22 0,5.72 0.08,11.44 0.72,17.13 24.99,-0.94 49.98,-1.8 74.97,-2.51 3.02,-1.12 4.35,1.72 5.31,3.98 0.52,3.48 -2.86,4.46 -4.14,6.86 2.37,0.64 5.57,0.65 8.21,-0.08 1.46,-3.59 1.87,-7.45 2.38,-11.22 0.84,-2.83 5.27,-2.89 4.61,-6.03 1.37,-2.94 0.14,-4.6 -2.22,-4.28 -2.15,-1.81 -2.84,-5.03 -2.86,-7.6 1.45,-2.84 -2.08,-5.07 -2.44,-7.89 -0.66,-3.24 -5.34,-0.87 -6.89,-3.66 -2.64,-2.34 -6.24,-3.94 -6.91,-7.76 -0.94,-3.21 1.52,-6.47 2.17,-9.64 2.2,-3.53 -1.34,-4.7 -4.33,-4.5 -2.66,0.39 -5.34,-1.15 -4.81,-4.1 0.86,-4.07 -4.71,-4.05 -6.43,-6.93 -2.7,-3.4 -6.72,-6.05 -7.25,-10.67 -1.1,-3.16 -2.12,-6.86 -0.62,-10.06 -2.3,-1.34 -2.28,-5.77 -5.37,-4.89 -20.69,0.77 -41.38,1.53 -62.06,2.3z\",\"name\":\"Missouri\"},\"ga\":{\"path\":\"m672.78,356c-0.74,7.06 4.28,12.69 5.29,19.4 1.36,6.57 3.44,12.96 5.03,19.44 0.94,4.88 2.17,9.95 5.53,13.75 -0.85,3.5 3.37,3.17 2.59,6.44 -1.89,4.45 -3.57,9.65 -0.84,14.13 0.05,2.63 0.94,5.4 -0.38,7.88 2.95,0.94 1.45,4.01 3.07,6.01 1.35,2.67 3.68,4.75 6.83,4 12.35,-0.01 24.69,-1.31 37.03,-1.92 3.32,-0.58 6.67,-0.74 10.04,-0.59 -0.78,4.24 3.04,4.15 2.09,-0.09 -0.9,-2.14 -2.94,-6.23 0.59,-6.62 3.2,0.5 6.42,0.91 9.66,1.02 -0.84,-3.8 -0.8,-7.57 0.5,-11.27 0.2,-3.54 2.62,-6.73 2.21,-10.21 -0.72,-2.93 3.26,-5.26 2.85,-8.05 -2.19,1.37 -5.29,-0.71 -5.34,-3.19 -0.56,-3.12 -2.71,-5.83 -6.03,-6.06 -1.33,-3.9 -2.62,-8.17 -4.99,-11.43 -3.12,-1.07 -6.13,-2.99 -7.17,-6.29 -2.06,-2.33 -5.23,-3.21 -6.66,-6.16 -2.08,-2.2 -5.24,-2.83 -7.66,-4.19 -0.76,-2.53 -3.21,-4.09 -3.94,-6.67 -1.36,-2.63 -2.97,-4.65 -6.15,-3.77 -2.33,-1.57 -7.15,-3.38 -5.31,-6.97 2.02,-2.01 3.76,-4.11 -0.8,-3.11 -12.68,1.51 -25.37,3.01 -38.05,4.52z\",\"name\":\"Georgia\"},\"sc\":{\"path\":\"m737.03,343.19c-4.26,0.4 -8.64,0.43 -12.24,3.07 -3.2,1.75 -6.48,3.19 -9.88,4.49 2.21,3.31 -4.28,2.74 -2.34,6.44 2.27,2.24 5.2,4.13 8.5,3.28 2.53,3.15 3.83,6.94 6.53,9.88 0.91,2.76 5.13,2.06 6.85,4.46 2.18,1.38 2.96,4.25 5.62,5.01 2.99,1.95 3.36,6.38 7.26,7.24 3.61,0.62 3.77,4.77 5.34,7.38 0.38,3.35 2.02,4.84 4.79,5.96 3.36,1.79 1.76,7.23 5.67,8.16 3.63,-1.38 5.8,-4.63 8.38,-7.34 -2.35,-3.93 0.29,-3.32 3.01,-4.44 1.95,-2.4 5.02,-3.3 6.25,-6.28 2.17,-2 3.86,-4.52 5.4,-6.9 2.81,-0.17 3.42,-3.58 4.92,-5.03 -0.28,-4.13 1.3,-7.89 3.12,-11.47 1.03,-2.11 7.03,-4.5 3.47,-6.34 -5.97,-5.35 -12.78,-9.5 -19.71,-13.47 -4.45,-2.68 -9.74,-0.07 -14.57,-0.06 -2.57,-0.23 -6.63,2.48 -7.32,-1.28 -1.66,-4.5 -6.93,-2.82 -10.63,-2.96 -2.8,0.07 -5.61,0.14 -8.41,0.21z\",\"name\":\"South Carolina\"},\"ky\":{\"path\":\"m675,267.5c-2.76,-0.77 -6,1.11 -3.38,3.78 1.52,3.15 -3.12,4.12 -5.19,5.27 -2.94,0.53 -4.71,1.29 -4.3,4.82 -1.15,2.66 -5.3,3.24 -6.32,6.32 -2.16,1.4 0.74,6.22 -2.84,5.92 -3.06,0.61 -4.36,-2.79 -7.09,0.11 -2.26,0.51 -1.1,6.98 -3.85,3.1 -2.27,-2.54 -5.57,0.14 -6.16,2.81 -1.91,1.07 -3.4,-3.73 -6.02,-1.91 -3.32,0.61 -7.48,0.47 -9.92,2.91 0.08,2.65 -3.39,3.78 -1.7,6.05 2.34,2.66 -2.23,2.68 -3.86,3.3 -3.57,1.35 -0.68,4.35 -0.76,6.72 0.33,3.45 -3.76,1.44 -5.49,0.72 -2.5,-2.29 -6.26,-0.38 -7.13,2.53 2.86,2.28 -0.04,4.76 0.41,7.66 -3.47,2.04 -3.19,2.73 0.94,2.35 5.84,0.01 11.64,-0.95 17.5,-0.76 -0.7,-3.74 0.98,-4.99 4.56,-4.19 24.33,-3.01 48.82,-4.7 73.16,-7.43 4.3,-0.7 8.2,-2.38 11.75,-4.88 3.3,-0.8 4.04,-2.71 5.12,-5.35 3.46,-4.09 7.13,-8.06 10.79,-12 -3.27,-1.24 -3.03,-5.51 -6.21,-6.95 -2.6,-1.25 -2.07,-4.66 -5.16,-5.36 -2.38,-2.64 0.8,-7.28 -3.02,-8.87 -3.02,-0.01 -2.37,-4.65 -4.57,-3.51 -2.95,0.61 -3.67,4.78 -7.02,3.29 -2.69,-0.23 -5.51,-1.19 -7.82,0.71 -3,0.83 -3.99,-3.61 -7.44,-2.06 -3.51,0.82 -2.17,-5.19 -5.65,-5.26C677.17,266.43 676.21,267.17 675,267.5z\",\"name\":\"Kentucky\"},\"al\":{\"path\":\"m628.53,359.63c-0.2,14.37 0.12,28.75 -0.54,43.12 -0.04,9.01 -0.88,18.1 -0.07,27.07 1.55,10 2.94,20.01 3.85,30.09 3.07,1.09 3.69,-1.92 4.4,-4.18 -0.3,-3.89 4.27,-3.02 4.89,-0.04 0.72,2.06 4.08,5.27 0.77,6.65 -0.15,0.92 6.17,-0.9 5.88,-2.89 -0.44,-3.01 0.64,-6.86 -2.87,-8.19 -2.29,-0.88 -3.03,-5.59 -0.32,-5.67 14.08,-1.86 28.21,-3.59 42.35,-4.8 2.7,1.07 6.76,-0.25 2.97,-2.5 -1.8,-2 0.95,-5.03 -0.27,-7.65 -0.31,-3.1 -2.63,-5.9 -1.31,-9.15 0.01,-2.92 2.49,-5.36 1.93,-8.3 -3.52,-0.45 -1.34,-5.11 -4.26,-6.7 -3.48,-5.82 -3.36,-13.04 -5.96,-19.21 -2.02,-8.09 -3.34,-16.41 -7.25,-23.88 -0.51,-2.39 -1.08,-4.85 -0.72,-7.31 -14.49,1.18 -28.98,2.35 -43.47,3.53z\",\"name\":\"Alabama\"},\"la\":{\"path\":\"m521.09,407.28c0.1,7.53 -0.24,15.32 1.67,22.61 2.08,2.49 2.82,5.51 3.15,8.67 1.87,2.78 5.27,4.95 4.59,8.72 1.61,2.18 -0.21,5.69 0.08,8.38 0.42,2.64 -4.36,4.89 -2.01,7.12 1.07,2.26 -0.92,5.31 -0.53,7.95 0.38,3.22 -2.37,5.7 -1.55,8.93 5.18,-2.4 10.98,-0.86 16.47,-1.09 5.72,1.7 11.56,4.87 17.56,4.26 2.93,-2.25 5.94,0.36 8.98,0.93 1.08,-3.4 -4.22,-0.81 -5.8,-2.2 -1.91,-0.36 -2.89,-2.3 -1.17,-3.4 2.08,-1.1 4.08,-1.09 5.66,0.04 2.15,-1.39 5.6,-0.24 6.26,2.38 -0.33,3.62 3.42,1.7 5.28,3.15 3.83,1.5 -1.41,4.07 0.83,5.37 2.88,0.97 5.73,2.94 8.62,3.29 3.51,-0.05 2.81,-4.53 6.47,-4.17 1.83,-2.9 4.44,-0.25 4.39,2.31 1.53,1.64 4,-3.68 1.98,-3.66 0.22,-3.37 2.17,-3.21 4.31,-5.41 1.59,0.95 0.91,2.82 1.41,4.16 3.33,0.39 7.44,1.09 9.34,4.06 2.79,0.08 5.17,1.1 5.56,-2.56 -2.68,-0.27 -4.15,-3.88 -7.35,-3.19 -2.31,0.06 -6.3,-1.62 -6.15,-3.77 1.62,-3.62 2.23,-1.74 2.03,-4.38 2.88,1.09 5.69,-2.27 3.22,-4.47 0.46,-4.62 -3.73,-0.15 -3.34,2.19 -1.36,1.21 -6.35,-0.96 -4.6,-3.27 1.71,-1.84 4.2,-4.5 2.19,-6.95 -0.13,-3.26 -2.69,-5.21 -4.47,-7.38 0.52,-2.7 2.26,-7.35 -2.36,-5.46 -10.43,1.28 -20.97,0.69 -31.45,1.12 -1.61,-3.72 -0.02,-7.76 0.16,-11.59 2.66,-4.86 5.46,-9.65 8.25,-14.44 -2.04,-2.82 3.52,-4.45 -0.74,-6.48 -0.53,-2.15 -1.29,-4.65 -2.32,-6.83 -0.08,-3.1 0.9,-7.3 -3.62,-5.79 -17,0.28 -34,0.57 -51,0.85z\",\"name\":\"Louisiana\"},\"ms\":{\"path\":\"m591.03,363.5c-1.45,1.74 -4.03,3.15 -4.63,6.03 -1.4,2.22 1.43,5.74 -2.69,6.07 -1.48,1.97 -4.77,4.42 -3.4,7.17 -1.36,1.83 -3.59,3.95 -3.48,7.01 -2.16,2.66 1.55,5.28 -0.27,7.12 -0.45,1.84 2.25,4.42 1.35,7.03 -1.92,2.71 -1.63,6.55 -0.61,9.53 1.6,2.4 0.78,5.54 3.73,6.94 -0.95,2.53 -1.41,3.75 -1.87,6.31 -2.55,4.96 -6.07,9.62 -7.89,14.84 0.01,2.98 -1.44,6.14 -0.14,8.97 11.4,-0.36 22.87,0.25 34.19,-1.5 2.75,2.21 -2.19,6.39 1.33,8.15 2.82,1.62 2.28,5.18 3.89,7.63 2.07,-1.86 2.51,-6.19 5.82,-4.07 3.21,-0.67 6.85,-3.02 9.89,-0.64 3.62,0.73 6.01,-0.27 4.42,-4.26 -0.81,-10.1 -2.99,-20.07 -3.84,-30.15 0.14,-21.99 1.48,-43.98 0.64,-65.97 -12.15,1.26 -24.29,2.52 -36.44,3.78z\",\"name\":\"Mississippi\"},\"ia\":{\"path\":\"m476.25,181.16c-3.42,-0.05 -2.16,5.68 0.72,6.29 0.54,2.07 -0.75,5.06 -1.41,7.35 -2.13,2.82 -0.93,5.45 1.04,7.92 1.22,4.34 2.24,8.85 4.05,13.06 0.6,3.22 1.29,6.38 3.41,9 0.02,3.49 1.27,6.69 2.3,9.91 -0.04,3.54 0.03,7.05 2.08,10.09 22.2,-1.02 44.44,-1.75 66.66,-2.63 0.77,1.43 3.25,7.11 4.37,4.25 -0.96,-2.5 1.19,-4.52 3.57,-4.72 -0.88,-2.62 1.19,-4.59 2.5,-6.28 1.27,-2.92 -1.39,-4.02 -2.41,-6.31 0.69,-2.9 1.79,-5.3 5.13,-5.46 2.88,-0.83 6.57,-1.81 6.65,-5.41 1.76,-3.04 3.73,-8.01 -0.26,-10.18 -2.74,-1.06 -1.75,-5.27 -5.21,-5.14 -0.64,-1.97 -0.85,-4.76 -4.19,-4.21 -2.75,-0.8 -4.55,-3.47 -5.37,-6 -1.36,-2.89 2.01,-4.72 1.65,-7.28 -3.82,-0.4 -1.19,-6.5 -5.03,-5.47 -26.75,0.41 -53.5,0.81 -80.25,1.22z\",\"name\":\"Iowa\"},\"mn\":{\"path\":\"m497.03,53.84c-0.69,2.52 0.93,7.42 -1.31,8.34 -9.65,-0.01 -19.29,-0.02 -28.94,-0.03 1.16,2.87 2.18,5.76 0.97,8.81 0.05,5.74 -0.79,11.86 2.51,16.95 2.04,3.78 0.64,8.47 1.5,12.6 0.82,6.84 1.76,13.67 3.55,20.32 0.05,3.83 0.88,7.8 0.03,11.53 -1.57,1.74 -4.91,3.29 -2.22,5.78 1.89,1.83 5.05,2.94 4.58,6.1 0.28,11.9 0.25,23.83 0.42,35.75 26.72,-0.38 53.44,-0.75 80.16,-1.13 -0.15,-3.62 -0.46,-7.93 -4.36,-9.47 -3.02,-1.66 -6.24,-3.1 -7.63,-6.5 -0.72,-3.61 -5.32,-1.16 -6.05,-4.61 -1.56,-2.09 -5.29,-0.37 -6.57,-3.78 -1.66,-2.1 -0.52,-5.5 -1.1,-8.1 -1.34,-2.93 1.65,-4.99 1.47,-7.54 -0.2,-3.22 -5.36,-3.85 -2.24,-7.43 0.41,-4.47 5.39,-5.33 7.61,-8.59 0.24,-3.87 -0.73,-8.14 0.52,-11.77 1.76,-3.14 5.17,-5.1 8.28,-6.26 1.92,-2.08 3.66,-4.57 6.13,-5.81 2.54,-4.97 6.04,-9.99 11.81,-11.4 4.55,-1.98 9.12,-3.92 13.6,-6.04 0.73,-3.15 -3.7,-0.18 -5.06,0.03 -0.82,-3.87 -4.2,-3.09 -7.28,-2.87 -2.25,-0.87 -5.34,2.83 -6,-0.66 -1.13,-3.5 -4.51,0.72 -5.88,2.13 -2.33,1.63 -6.22,1.16 -8.06,-0.56 0.94,-3.05 -4.61,-0.39 -4.53,-3.96 -0.16,-2.3 -3.48,1.3 -5.77,-1.2 -3.04,-0.91 -5.5,-3.22 -8.29,-4.38 -2.49,0.4 -5.86,-2.38 -6.7,1.5 -1.17,0.79 -7.15,1.83 -5.93,-1.54 -2.99,0.03 -6.03,-0.05 -7.53,-1.75 -2.6,0.59 -5.72,-0.41 -5.9,-3.43 -0.88,-3.28 -1.44,-6.61 -1.88,-9.98 -1.23,-0.6 -2.54,-1.02 -3.91,-1.06z\",\"name\":\"Minnesota\"},\"ok\":{\"path\":\"m363.31,330.03c17.51,1.12 35.04,1.73 52.56,2.47 -1.37,13.62 -2.89,27.23 -2.83,40.93 -0.92,3.93 3.48,5.78 6.14,7.66 0.56,-5.56 2.96,1.46 4.25,-1.31 0.93,-1.5 5.57,1.68 3.39,4.42 1.59,0.66 4.76,0.51 6.73,1.82 2.79,-0.99 5.16,3.32 7.03,1.26 1.82,-1.93 5.59,-0.31 6.5,2.02 2.44,0.79 1.71,5.84 4.76,3.05 1.39,-1.65 6.25,-1.17 6.69,1.21 1.28,1.5 5.69,3.72 7.39,1.92 0.33,-2.75 3.38,-5.95 4.59,-1.83 3.59,0.38 6.96,2 10.46,3 2.28,-1.86 2.44,-4.68 6.53,-3.41 2.53,1.92 3.8,-1.41 6.31,-1.16 0.85,2.42 5.2,2.41 6.19,-0.5 3.2,-0.2 3.66,3.71 6.55,4.35 1.86,0.4 6.31,3.63 5.36,0.18 -0.32,-12.27 0.1,-24.59 -0.7,-36.82 -1.15,-6.03 -1.01,-12.18 -1.43,-18.25 -1.32,-5.29 -2.05,-10.73 -2.07,-16.18 -20.01,0.66 -40.04,-0.04 -60.06,-0.22 -27.85,-1.32 -55.73,-2.3 -83.53,-4.56 -0.27,3.31 -0.54,6.63 -0.81,9.94z\",\"name\":\"Oklahoma\"},\"tx\":{\"path\":\"m359.47,330.97c2.34,-0.11 -0.86,-1.81 0,0z m0.72,18.31c-1.64,20.84 -2.52,41.75 -4.68,62.55 -0.51,4.33 -0.99,8.66 -1.51,12.98 -17.84,-0.87 -35.67,-1.93 -53.42,-3.89 -4.16,-0.41 -8.32,-0.76 -12.48,-1.11 -0.67,3.74 2.27,3.68 4.04,6.12 2.26,1.83 1.13,6.03 4.65,6.5 3.52,0.48 2.9,4.6 5.45,6.34 3.38,3.15 5.5,7.91 10.27,9.06 1.91,1.27 4,3.22 4.53,5.46 0.69,3.96 4.53,7.02 3.47,11.33 -0.88,5.15 2.22,9.63 5.93,12.88 2.18,2.95 5.14,4.76 8.63,5.78 1.88,1.95 3.01,3.88 5.72,4.88 2.59,0.18 5.38,4.34 7.35,1.18 2.59,-3.14 5.48,-6.41 6.05,-10.55 1.26,-2.82 3.58,-4.32 6.5,-5.06 2.72,-1.59 5.32,-2.13 7.47,0.62 4.91,0.57 10.2,0.53 14.79,2.22 2.83,1.43 2.56,4.53 5.17,6.33 1.73,2.05 4.83,3.37 5.81,5.82 1.37,2.07 2.66,4.26 2.69,7.03 1.62,4.34 4.17,8.51 5.31,12.94 -0.24,2.77 4.65,2.49 4.95,5.51 2.24,4.08 4.37,9.17 9.21,10.49 3.28,2 0.03,5.04 0.91,7.5 3.28,0.87 -0.01,4.68 0.94,6.67 2.53,1.36 4.37,3.2 4.22,6.44 0.39,3.34 2.13,6.83 5.69,7.54 3.01,1.93 6.69,2.13 9.87,3.4 2.28,1.79 5.15,4.09 8.16,2.83 3.46,0.46 6.77,1.29 9.37,3.75 1.43,2.54 6.51,-0.91 4.31,-2.89 -2.04,-3.39 -1.3,-7.79 -2.83,-11.46 -0.63,-3.07 -2.39,-5.95 -0.99,-9.1 1.17,-4.9 2.87,-9.76 4.04,-14.71 -3.37,-1.01 -2.07,-5.47 1.21,-4.71 3.99,0.42 3.65,-6.43 7.81,-6.05 5.25,-1.56 9.07,-6 14.16,-8.05 6.91,-2.81 13.62,-6.46 18.72,-12.05 2.58,-2.98 7.09,-3.95 8.69,-7.75 5,-2.22 9.8,-4.93 15.22,-6 -0.97,-2.64 0.52,-4.86 1.32,-7.22 0.39,-2.99 0.19,-6.07 1.18,-8.94 -3.15,-2.27 0.38,-4.91 1.38,-7.41 -0.2,-2.8 1.42,-6.25 0.09,-8.66 0.3,-2.93 -1.49,-5.14 -3.35,-7.29 -2.46,-2.64 -1.11,-6.91 -3.87,-9.52 -2.53,-4.57 -1.59,-10.19 -2.25,-15.22 0.02,-5 0.19,-10 -0.5,-14.97 -2.63,-2.31 -5.52,2.33 -7.52,-1.37 -3.1,-2.07 -7.66,-2.1 -9.73,-5.68 -2.31,-2.48 -3.82,2.84 -7.18,0.96 -1.91,-2.73 -3.59,0.03 -5.98,0.18 -2.27,-1.15 -6.07,-1.48 -6.09,1.76 -2.76,2.37 -5.95,-0.93 -8.94,-1.28 -3,1.38 -5.23,-3.83 -6.3,-1.87 -0.15,2.66 -2.52,5.1 -5.13,3.34 -3.23,-0.15 -4.91,-2.49 -6.57,-3.89 -2.95,-1.74 -4.3,2.32 -6.94,0.88 -1.48,-1.39 -1.87,-3.6 -3.92,-5.65 -3.06,-2.83 -5.03,3.17 -7.13,0.23 -2.05,-2.11 -5.57,-0.83 -7.94,-2.69 -3.56,0.59 -5.54,-0.24 -4.13,-4.11 -1.89,-1.85 -2.28,1.21 -4.77,-0.14 -0.59,-0.41 -3.45,1.78 -5,-1.11 -1.9,-1.9 -5.13,-3.22 -4.18,-6.45 0.03,-10.58 0.25,-21.15 1.66,-31.65 0.3,-2.99 0.6,-5.98 0.89,-8.98 -17.65,-0.63 -35.3,-1.27 -52.94,-2.22 -0.52,6.07 -1.04,12.15 -1.56,18.22z M466.53,518.63c-5.2,7.17 2.93,-3.27 0,0z\",\"name\":\"Texas\"},\"nm\":{\"path\":\"m242.72,428.78c4.82,0.63 9.65,1.25 14.47,1.88 0.43,-3.33 0.85,-6.67 1.28,-10 9.7,0.89 19.4,1.86 29.09,2.78 -0.9,-3.14 -1.39,-5.98 2.84,-4.5 18.29,1.28 36.48,3.79 54.81,4.49 2.45,-0.6 7.66,2.13 7.99,-1.01 3.06,-22.93 3.75,-46.09 5.59,-69.14 0.54,-7.79 1.39,-15.56 2.02,-23.34 3.21,0.65 1.17,-4.81 2.07,-6.86 1.79,-4.38 -2.87,-3.37 -5.73,-3.85 -32.35,-3.3 -64.71,-6.59 -97.06,-9.89 -5.79,39.81 -11.58,79.63 -17.38,119.44z\",\"name\":\"New Mexico\"},\"ks\":{\"path\":\"m380.53,320.34c25.06,1.17 50.11,2.71 75.19,3.35 17.22,0.07 34.44,0.63 51.66,0.18 -0.25,-12.69 0.23,-25.42 -0.47,-38.08 -0.61,-2.83 -0.17,-6.27 -1.38,-8.74 -3.04,-2.03 -6.02,-5.19 -6.68,-8.77 -0.43,-2.51 4.3,-4.59 1.29,-6.64 -3.02,0.54 -4.05,-3.34 -7.17,-2.43 -36.21,-0.82 -72.43,-1.33 -108.63,-2.5 -1.27,21.21 -2.54,42.42 -3.81,63.63z\",\"name\":\"Kansas\"},\"ne\":{\"path\":\"m353.38,230.59c10.76,0.96 21.27,2.72 32.03,3.66 -0.37,7.11 -0.71,14.23 -1.06,21.34 36.49,1.29 73,1.84 109.5,2.56 -0.31,-1.17 -3.13,-4.05 -4.03,-6.15 -1.99,-2.11 -0.36,-5.13 -2.45,-7.34 -2.42,-3.19 -1.66,-7.14 -2.2,-10.79 -1.66,-2.86 -1.45,-6.25 -2.29,-9.26 -2.94,-2.85 -2.34,-7.01 -3.95,-10.49 -1.13,-3.1 -2.18,-6.19 -2.62,-9.47 -3.51,1.32 -2.89,-3.07 -4.85,-4.29 -2.4,-1.68 -5.57,-1.85 -7.72,-3.93 -3.79,0.07 -7.65,1.04 -11.13,1.94 -2.52,-2.2 -6.03,-3.13 -7.91,-6.06 -13.61,0.96 -27.23,-0.49 -40.83,-1.11 -15.5,-1.05 -31.02,-1.79 -46.51,-2.86 -1.67,14.08 -2.83,28.17 -4,42.25z\",\"name\":\"Nebraska\"},\"sd\":{\"path\":\"m357.44,187.41c25.68,1.58 51.37,3.15 77.06,4.26 3.58,-0.01 7.34,-0.51 10.81,-0.23 1.8,2.9 5.24,3.85 7.69,6 3.55,-1.45 7.52,-1.89 11.25,-1.91 2.45,2.67 7.26,2.29 9.15,5.33 1.32,4.76 3.27,1.86 0.18,-1.15 -1.53,-2.17 1.46,-4.6 1.56,-6.99 1.2,-2.87 1.38,-5.28 -1.58,-6.75 -0.5,-2.04 -0.73,-6.65 2.41,-5.84 2.62,-0.28 0.39,-5.28 1.06,-7.5 -0.32,-9.7 0.19,-19.47 -0.64,-29.13 -0.24,-3.58 -6.26,-4.19 -5.42,-8.4 1.09,-1.22 5.81,-4.38 2.75,-5.4 -27.23,-0.89 -54.5,-1.01 -81.67,-3.15 -9.79,-0.62 -19.57,-1.24 -29.36,-1.86 -1.75,20.91 -3.5,41.81 -5.25,62.72z\",\"name\":\"South Dakota\"},\"nd\":{\"path\":\"m362.88,123.72c26.46,1.49 52.89,3.7 79.4,3.91 10.84,0.26 21.67,0.52 32.51,0.78 0.01,-5.53 -1.38,-10.82 -2.5,-16.17 -1.27,-7.42 -2.05,-14.89 -2.13,-22.42 -2.61,-4.16 -4.11,-9 -3.48,-13.94 -0.44,-3.25 0.67,-6.57 0.3,-9.7 -0.15,-4.01 -2.83,-4.61 -6.31,-4.12 -25.15,-0.47 -50.33,-1.05 -75.41,-3.06 -5.17,-0.49 -10.33,-0.98 -15.5,-1.47 -2.29,22.06 -4.58,44.13 -6.88,66.19z\",\"name\":\"North Dakota\"},\"wy\":{\"path\":\"m240.16,217.84c37.4,4.49 74.29,8.23 111.69,12.72 2.5,-29.2 5.5,-57.65 8,-86.84 -35.26,-4.45 -70.52,-8.9 -105.78,-13.34 -4.64,29.16 -9.27,58.31 -13.91,87.47z\",\"name\":\"Wyoming\"},\"mt\":{\"path\":\"m192.59,52.19c0.84,2.76 3.25,5.4 3.2,8.23 -1.5,2.79 -1,5.49 0.52,8.15 3.4,0.39 4.18,3.44 5.26,6.16 1.43,3.34 2.55,6.88 5.37,9.34 0.88,2.21 5.27,1.18 4.34,4.72 -2.23,6.21 -5.45,12.23 -7.06,18.56 0.02,3.34 3.4,5.25 5.73,2.22 1.61,-2.43 5.63,-3.04 4.69,0.97 -0.5,5.3 1.81,10.35 2.59,15.53 1.9,2 5.27,3.44 5.68,6.31 -0.71,1.91 -0.39,8.78 2.32,5.14 1.85,-1.89 4.93,-0.29 6.85,0.86 3.28,-1.63 7.26,-1.21 10.34,0.69 3.69,0.41 1.52,-5 5.95,-4.08 2.71,-0.42 2.01,6.69 3.21,4.1 0.56,-3.26 1.09,-6.54 1.68,-9.8 35.57,4.49 71.15,8.96 106.72,13.44 2.9,-28.44 5.79,-56.88 8.69,-85.31 -28.84,-2.29 -57.55,-5.91 -86.19,-9.99 -26.71,-4.12 -53.36,-8.71 -79.73,-14.68 -3.05,-0.61 -6.99,-2.59 -6.53,2.19 -1.21,5.75 -2.42,11.51 -3.62,17.26z\",\"name\":\"Montana\"},\"co\":{\"path\":\"m260.17,308.53c39.89,4.09 79.51,8.26 119.39,11.91 1.61,-28.46 3.23,-56.92 4.84,-85.38 -37.47,-4.17 -74.94,-8.33 -112.41,-12.5 -4.03,28.98 -7.8,56.99 -11.83,85.97z\",\"name\":\"Colorado\"},\"id\":{\"path\":\"m169.84,91.72c0.52,3.07 2.27,5.25 4.94,6.78 0.4,3.02 -0.61,5.46 -3.03,7.31 -2.3,2.7 -4.38,5.97 -6.09,8.83 0.39,2.93 -2.57,3.54 -4.23,4.8 -1.77,2.31 -4.28,4.3 -3.93,7.5 -0.64,2.43 4.69,0.57 4.09,4.34 -5.19,11.17 -6.78,23.51 -10.13,35.32 -0.79,3.16 -1.22,4.91 -2.01,8.08 56.92,12.84 62.26,13.45 93.58,19.41 2.75,-17.6 5.5,-35.21 8.25,-52.81 -2.66,-0.84 -0.58,-6.52 -4.23,-4.97 -1.24,1.7 -1.62,4.95 -5.17,3.47 -3.11,-1.99 -6.81,-1.34 -10.13,-0.56 -2.53,-1.76 -5.91,-2.01 -7.69,0.88 -1.75,-0.05 -3.29,-3.39 -2.79,-5.36 1.91,-3.98 -2.85,-5.89 -5.05,-8.27 -0.98,-5.88 -3.48,-11.64 -2.5,-17.69 -1.86,-0.01 -4.25,2.69 -6.47,3.63 -2.21,0.18 -4.52,-3.09 -4.1,-5.31 1.19,-5.37 4.07,-10.37 5.88,-15.6 1.95,-2.64 1.12,-5.57 -2.41,-5.62 -1.55,-3.37 -4.92,-5.66 -5.61,-9.53 -1.31,-2.63 -1.42,-6.47 -5.06,-6.76 -0.99,-1.85 -3.18,-4.47 -1.91,-6.73 2.09,-2.98 -0.34,-5.7 -1.53,-8.5 -2.13,-3.05 0.55,-6.68 0.67,-10.01 0.9,-4.35 1.8,-8.69 2.69,-13.04 -4.18,-0.78 -8.35,-1.56 -12.53,-2.34 -4.5,20.92 -9,41.83 -13.5,62.75z\",\"name\":\"Idaho\"},\"ut\":{\"path\":\"m176.34,297.78c27.57,3.92 55.15,7.83 82.72,11.75 4.04,-29.08 8.08,-58.17 12.13,-87.25 -10.83,-1.14 -21.65,-2.33 -32.47,-3.59 1.43,-7.93 2.82,-15.85 3.84,-23.84 -15.27,-2.85 -30.54,-5.71 -45.81,-8.56 -6.8,37.17 -13.6,74.33 -20.41,111.5z\",\"name\":\"Utah\"},\"az\":{\"path\":\"m173.19,314.66c-2.49,-0.06 -3.05,4.43 -6.38,2.94 -0.74,-2.87 -3.59,-2.82 -5.59,-4.22 -3.74,0.74 -2.37,4.58 -2.68,7.41 -0.52,5.04 -0.42,10.21 -0.89,15.22 -2.19,2.33 -2.44,5.78 -0.24,8.19 2.32,2.62 0.58,7.52 4.09,9.09 0.98,3.59 -2.89,4.83 -5.41,6.09 -3.29,2.46 -3.28,6.86 -3.88,10.47 -1.25,2.44 -4.81,2.39 -4.92,4.97 0.47,2.18 6.18,0.38 3.42,4.54 -0.65,2.75 -3.14,3.45 -5.62,3.78 -3.6,1.45 -2.69,4.7 0.77,5.44 14.69,7.84 28.52,17.13 43.01,25.32 5.79,3.19 11.27,7.21 17.27,9.88 11.71,2.83 23.75,3.45 35.68,4.87 5.71,-39.38 11.42,-78.75 17.13,-118.13 -27.58,-3.93 -55.17,-7.85 -82.75,-11.78 -1,5.31 -2,10.63 -3,15.94z\",\"name\":\"Arizona\"},\"nv\":{\"path\":\"m84.84,232.41c22.96,34.61 45.92,69.23 68.88,103.84 3.66,2.65 3.19,-3.47 3.27,-5.71 0.37,-5.43 0.36,-11.24 1.08,-16.44 2.05,-2.03 4.26,-2 6.08,-0.39 2.62,-0.16 3.86,5.9 6.03,1.27 2.74,-0.82 2.66,-3.64 3.13,-6.41 7.5,-40.87 15,-81.75 22.51,-122.62 -30.72,-6.81 -61.44,-13.63 -92.16,-20.44 -6.27,22.3 -12.54,44.6 -18.81,66.91z\",\"name\":\"Nevada\"},\"or\":{\"path\":\"M67.16,62.81C64.24,70.42 62.73,78.57 58.5,85.63c-2.86,8.53 -5.96,16.93 -10.17,24.89 -3.06,6.61 -8,12.31 -11.32,18.7 -1.03,6.5 -0.64,13.05 -0.36,19.6 37.23,8.7 74.46,16.69 111.69,25.39 3.45,-13.15 6.51,-25.75 10.19,-38.81 1.2,-2.48 3.15,-6.06 -1.1,-5.42 -2.58,-1.78 -0.23,-4.45 -0.38,-6.91 2.3,-2.82 4.36,-5.82 7.47,-7.75 1.75,-5.08 5.43,-9.19 9.03,-13.06 1.66,-3.48 -2.46,-3.92 -3.39,-6.47 -0.25,-3.79 -3.56,-4.26 -6.62,-4.99 -7.63,-2.2 -15.38,-4.2 -23.21,-5.54 -4.9,0.03 -9.79,0.06 -14.69,0.09 -0.95,-2.84 -4.67,1.86 -7.11,0.5 -2.61,0.82 -4.42,-2.63 -6.57,-1.28 -2.61,-0.06 -5.23,0.11 -7.15,-1.87 -3.09,-1.53 -6.33,-1.81 -9.5,-3.1 -1.87,3.03 -5.69,1.22 -8.53,1.31 -1.65,-1.64 -5.79,-3.02 -6.03,-4.81 1.1,-2.44 0.78,-5.93 0.53,-8.59 -0.42,-3.92 -4.72,-2.63 -6.25,-4.49C74.59,58.67 69.45,62.45 67.16,62.81z\",\"name\":\"Oregon\"},\"wa\":{\"path\":\"m101.38,8.72c0.05,2.75 2.93,5.39 3.25,8.16 -1.92,2.33 -1.78,5.19 -1.32,7.71 -1.81,2.64 1.63,4.82 0.67,7.42 -3.6,1.52 -2.43,-3.7 -4.86,-4.99 -3.34,-2.24 1.47,-3.87 1.17,-5.42 -2.5,-1.11 -2.24,3.88 -3.69,4.17C92.33,26.39 88.86,23.04 84.76,22.57 79.82,20.66 75.28,17.69 72.25,13.25c-3.13,-0.98 -1.96,4.97 -3.25,6.95 -0.63,2.8 2.59,5.06 1.41,8.21 0.52,3.86 -1.29,7.55 0.18,11.29 -1.06,2.88 4.75,5.54 2.94,6.39 -3.45,-1.05 -6.2,3.2 -2.25,4.34 1.57,0.97 -0.61,6.32 -3.3,5.43 -1.83,2.15 1.28,6.86 4.14,4.17 3.77,-1.55 2.75,3.51 5.83,3.13 2.81,-0.24 4.26,3.31 4.54,5.61 0.04,2.48 -0.15,6.02 -0.26,7.78 2.63,1.76 5.01,4.26 8.46,3.62 3.2,0.66 4.7,-3.26 7.97,-0.5 3.01,0.48 6.37,1.55 8.79,3.66 3.03,0.92 6.02,-1.78 8.19,1.05 3.44,1.3 6.67,0.03 9.84,-1.4 0.99,1.78 4.42,1.32 7,1.3 5.35,-0.19 10.68,-0.16 15.82,1.55 6.99,1.44 13.78,3.45 20.65,5.4 4.47,-20.85 8.94,-41.71 13.41,-62.56 -19.81,-3.93 -39.37,-9.21 -58.73,-14.66 -7.27,-1.53 -14.4,-3.52 -21.46,-5.87L101.75,8.45 101.38,8.72z M95.5,15.16C94.05,13.72 92.15,14.26 94.72,17.63 94.39,13.84 99.19,18.11 98.98,14.18 98.24,12.75 96.05,14.08 95.5,15.16z m2.31,1.91c-3.13,3.04 1.36,2.18 0.16,-0.25l-0.16,0.25z\",\"name\":\"Washington\"},\"ca\":{\"path\":\"m35.06,153.94c-0.1,4.04 0.4,8.21 -1.99,11.75 -1.86,3.68 -2.55,8.24 -6.48,10.38 -1.19,2.11 -3.49,3.38 -3.59,6.45 -1.94,3.49 2.49,5.65 2.91,8.98 1.54,3.39 2.34,6.94 1.63,10.65 0,2.92 -2.79,5.01 -2.24,8.14 0.05,2.97 -2.24,5.87 0.04,8.54 2.58,5 6.38,9.93 6.71,15.69 -0.54,2.77 -0.99,5.37 1.81,7.17 1.6,1.95 4.49,3.66 2.79,6.46 -1.73,3.87 -1.14,8.04 -1.09,12.16 1.68,2.67 2.83,6.76 6.66,6.53 1.48,2.33 0.97,4.84 -0.22,7.13 -2.5,1.53 -4.36,2.73 -3.66,6.08 0.27,3.49 4.27,5.34 4.36,9.01 1.46,6.2 4.13,11.92 7.59,17.25 0.71,2.57 2.16,4.34 2.9,6.41 -0.24,3.33 -1.93,6.49 -2.41,9.87 -1.66,2.61 1.19,5.52 3.99,5.12 4.03,0.15 7.27,3.31 11.01,4.04 3,-0.55 4.74,2.9 6.07,5.11 1.54,2.71 2.37,6 5.76,6.88 2.51,1.14 6.19,0.05 7.17,3.45 2.41,2.72 -2.39,5.05 1.41,5.17 2.73,1.87 5.56,-1.74 7.56,-0.74 2.13,2.06 4.05,4.2 4.93,7.05 4.3,4.9 1.44,11.77 2.79,17.52 14.73,1.94 29.44,4.72 44.27,5.38 2.78,1.19 6.19,-4.43 2.84,-4.65 -3.13,0.64 -2.83,-4.02 -1.36,-4.66 3.15,-0.88 4.92,-3.83 4.65,-7.04 0.47,-3.98 3.27,-7.43 7.22,-8.4 3.43,-2.04 -0.33,-3.58 -0.79,-5.79 -0.23,-3.65 -1.95,-6.81 -3.62,-9.89 2.02,-3.66 -2.22,-3.32 -3.16,-6.24 -22.6,-34.1 -45.2,-68.19 -67.81,-102.29 6.27,-22.44 12.54,-44.88 18.81,-67.31 -22.04,-5.16 -44.08,-10.31 -66.13,-15.47 -0.45,1.38 -0.9,2.75 -1.34,4.13z m24.13,184.72c-0.27,3.05 7.99,3.06 4.7,2.07 -1.63,-0.35 -3.17,-2.46 -4.7,-2.07z m-5.16,0.38c0.33,3.71 5.81,0.51 1.31,-0.04 -0.44,0.01 -0.88,0.02 -1.31,0.04z M79.69,357.5c-0.2,1.58 4.42,6 3.16,2.37C82.22,358.91 80.8,357.6 79.69,357.5z M77.75,369.13c-0.14,1.55 3.2,3.89 1.32,1.26C78.6,369.72 77.39,366.55 77.75,369.13z\",\"name\":\"California\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jqvmap/maps/jquery.vmap.world.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'world_en', {\"width\":950,\"height\":550,\"paths\":{\"id\":{\"path\":\"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z\",\"name\":\"Indonesia\"},\"pg\":{\"path\":\"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z\",\"name\":\"Papua New Guinea\"},\"mx\":{\"path\":\"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z\",\"name\":\"Mexico\"},\"ee\":{\"path\":\"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z\",\"name\":\"Estonia\"},\"dz\":{\"path\":\"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z\",\"name\":\"Algeria\"},\"ma\":{\"path\":\"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z\",\"name\":\"Morocco\"},\"mr\":{\"path\":\"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z\",\"name\":\"Mauritania\"},\"sn\":{\"path\":\"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z\",\"name\":\"Senegal\"},\"gm\":{\"path\":\"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z\",\"name\":\"Gambia\"},\"gw\":{\"path\":\"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z\",\"name\":\"Guinea-Bissau\"},\"gn\":{\"path\":\"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z\",\"name\":\"Guinea\"},\"sl\":{\"path\":\"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z\",\"name\":\"Sierra Leone\"},\"lr\":{\"path\":\"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z\",\"name\":\"Liberia\"},\"ci\":{\"path\":\"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z\",\"name\":\"Cote d'Ivoire\"},\"ml\":{\"path\":\"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z\",\"name\":\"Mali\"},\"bf\":{\"path\":\"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z\",\"name\":\"Burkina Faso\"},\"ne\":{\"path\":\"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z\",\"name\":\"Niger\"},\"gh\":{\"path\":\"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z\",\"name\":\"Ghana\"},\"tg\":{\"path\":\"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z\",\"name\":\"Togo\"},\"bj\":{\"path\":\"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z\",\"name\":\"Benin\"},\"ng\":{\"path\":\"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z\",\"name\":\"Nigeria\"},\"tn\":{\"path\":\"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z\",\"name\":\"Tunisia\"},\"ly\":{\"path\":\"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z\",\"name\":\"Libya\"},\"eg\":{\"path\":\"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z\",\"name\":\"Egypt\"},\"td\":{\"path\":\"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z\",\"name\":\"Chad\"},\"sd\":{\"path\":\"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z\",\"name\":\"Sudan\"},\"cm\":{\"path\":\"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z\",\"name\":\"Cameroon\"},\"er\":{\"path\":\"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z\",\"name\":\"Eritrea\"},\"dj\":{\"path\":\"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z\",\"name\":\"Djibouti\"},\"et\":{\"path\":\"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z\",\"name\":\"Ethiopia\"},\"so\":{\"path\":\"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z\",\"name\":\"Somalia\"},\"ye\":{\"path\":\"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z\",\"name\":\"Yemen\"},\"cf\":{\"path\":\"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z\",\"name\":\"Central African Republic\"},\"st\":{\"path\":\"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z\",\"name\":\"Sao Tome and Principe\"},\"gq\":{\"path\":\"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z\",\"name\":\"Equatorial Guinea\"},\"ga\":{\"path\":\"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z\",\"name\":\"Gabon\"},\"cg\":{\"path\":\"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z\",\"name\":\"Congo\"},\"ao\":{\"path\":\"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z\",\"name\":\"Angola\"},\"cd\":{\"path\":\"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z\",\"name\":\"Congo\"},\"rw\":{\"path\":\"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z\",\"name\":\"Rwanda\"},\"bi\":{\"path\":\"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z\",\"name\":\"Burundi\"},\"ug\":{\"path\":\"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z\",\"name\":\"Uganda\"},\"ke\":{\"path\":\"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z\",\"name\":\"Kenya\"},\"tz\":{\"path\":\"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z\",\"name\":\"Tanzania\"},\"zm\":{\"path\":\"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z\",\"name\":\"Zambia\"},\"mw\":{\"path\":\"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z\",\"name\":\"Malawi\"},\"mz\":{\"path\":\"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z\",\"name\":\"Mozambique\"},\"zw\":{\"path\":\"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z\",\"name\":\"Zimbabwe\"},\"na\":{\"path\":\"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z\",\"name\":\"Namibia\"},\"bw\":{\"path\":\"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z\",\"name\":\"Botswana\"},\"sz\":{\"path\":\"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z\",\"name\":\"Swaziland\"},\"ls\":{\"path\":\"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z\",\"name\":\"Lesotho\"},\"za\":{\"path\":\"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z\",\"name\":\"South Africa\"},\"gl\":{\"path\":\"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z\",\"name\":\"Greenland\"},\"au\":{\"path\":\"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z\",\"name\":\"Australia\"},\"nz\":{\"path\":\"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z\",\"name\":\"New Zealand\"},\"nc\":{\"path\":\"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z\",\"name\":\"New Caledonia\"},\"my\":{\"path\":\"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z\",\"name\":\"Malaysia\"},\"bn\":{\"path\":\"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z\",\"name\":\"Brunei Darussalam\"},\"tl\":{\"path\":\"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z\",\"name\":\"Timor-Leste\"},\"sb\":{\"path\":\"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z\",\"name\":\"Solomon Islands\"},\"vu\":{\"path\":\"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z\",\"name\":\"Vanuatu\"},\"fj\":{\"path\":\"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z\",\"name\":\"Fiji\"},\"ph\":{\"path\":\"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z\",\"name\":\"Philippines\"},\"cn\":{\"path\":\"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z\",\"name\":\"China\"},\"tw\":{\"path\":\"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z\",\"name\":\"Taiwan\"},\"jp\":{\"path\":\"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z\",\"name\":\"Japan\"},\"ru\":{\"path\":\"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z\",\"name\":\"Russian Federation\"},\"us\":{\"path\":\"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z\",\"name\":\"United States of America\"},\"mu\":{\"path\":\"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z\",\"name\":\"Mauritius\"},\"re\":{\"path\":\"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z\",\"name\":\"Reunion\"},\"mg\":{\"path\":\"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z\",\"name\":\"Madagascar\"},\"km\":{\"path\":\"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z\",\"name\":\"Comoros\"},\"sc\":{\"path\":\"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z\",\"name\":\"Seychelles\"},\"mv\":{\"path\":\"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z\",\"name\":\"Maldives\"},\"pt\":{\"path\":\"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z\",\"name\":\"Portugal\"},\"es\":{\"path\":\"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z\",\"name\":\"Spain\"},\"cv\":{\"path\":\"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z\",\"name\":\"Cape Verde\"},\"pf\":{\"path\":\"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z\",\"name\":\"French Polynesia\"},\"kn\":{\"path\":\"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z\",\"name\":\"Saint Kitts and Nevis\"},\"ag\":{\"path\":\"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z\",\"name\":\"Antigua and Barbuda\"},\"dm\":{\"path\":\"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z\",\"name\":\"Dominica\"},\"lc\":{\"path\":\"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z\",\"name\":\"Saint Lucia\"},\"bb\":{\"path\":\"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z\",\"name\":\"Barbados\"},\"gd\":{\"path\":\"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z\",\"name\":\"Grenada\"},\"tt\":{\"path\":\"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z\",\"name\":\"Trinidad and Tobago\"},\"do\":{\"path\":\"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z\",\"name\":\"Dominican Republic\"},\"ht\":{\"path\":\"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z\",\"name\":\"Haiti\"},\"fk\":{\"path\":\"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z\",\"name\":\"Falkland Islands\"},\"is\":{\"path\":\"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z\",\"name\":\"Iceland\"},\"no\":{\"path\":\"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z\",\"name\":\"Norway\"},\"lk\":{\"path\":\"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z\",\"name\":\"Sri Lanka\"},\"cu\":{\"path\":\"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z\",\"name\":\"Cuba\"},\"bs\":{\"path\":\"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z\",\"name\":\"Bahamas\"},\"jm\":{\"path\":\"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z\",\"name\":\"Jamaica\"},\"ec\":{\"path\":\"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z\",\"name\":\"Ecuador\"},\"ca\":{\"path\":\"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z\",\"name\":\"Canada\"},\"gt\":{\"path\":\"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z\",\"name\":\"Guatemala\"},\"hn\":{\"path\":\"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z\",\"name\":\"Honduras\"},\"sv\":{\"path\":\"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z\",\"name\":\"El Salvador\"},\"ni\":{\"path\":\"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z\",\"name\":\"Nicaragua\"},\"cr\":{\"path\":\"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z\",\"name\":\"Costa Rica\"},\"pa\":{\"path\":\"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z\",\"name\":\"Panama\"},\"co\":{\"path\":\"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z\",\"name\":\"Colombia\"},\"ve\":{\"path\":\"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z\",\"name\":\"Venezuela\"},\"gy\":{\"path\":\"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z\",\"name\":\"Guyana\"},\"sr\":{\"path\":\"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z\",\"name\":\"Suriname\"},\"gf\":{\"path\":\"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z\",\"name\":\"French Guiana\"},\"pe\":{\"path\":\"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z\",\"name\":\"Peru\"},\"bo\":{\"path\":\"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z\",\"name\":\"Bolivia\"},\"py\":{\"path\":\"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z\",\"name\":\"Paraguay\"},\"uy\":{\"path\":\"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z\",\"name\":\"Uruguay\"},\"ar\":{\"path\":\"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z\",\"name\":\"Argentina\"},\"cl\":{\"path\":\"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z\",\"name\":\"Chile\"},\"br\":{\"path\":\"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z\",\"name\":\"Brazil\"},\"bz\":{\"path\":\"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z\",\"name\":\"Belize\"},\"mn\":{\"path\":\"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z\",\"name\":\"Mongolia\"},\"kp\":{\"path\":\"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z\",\"name\":\"North Korea\"},\"kr\":{\"path\":\"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z\",\"name\":\"South Korea\"},\"kz\":{\"path\":\"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z\",\"name\":\"Kazakhstan\"},\"tm\":{\"path\":\"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z\",\"name\":\"Turkmenistan\"},\"uz\":{\"path\":\"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z\",\"name\":\"Uzbekistan\"},\"tj\":{\"path\":\"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z\",\"name\":\"Tajikistan\"},\"kg\":{\"path\":\"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z\",\"name\":\"Kyrgyz Republic\"},\"af\":{\"path\":\"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z\",\"name\":\"Afghanistan\"},\"pk\":{\"path\":\"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z\",\"name\":\"Pakistan\"},\"in\":{\"path\":\"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z\",\"name\":\"India\"},\"np\":{\"path\":\"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z\",\"name\":\"Nepal\"},\"bt\":{\"path\":\"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z\",\"name\":\"Bhutan\"},\"bd\":{\"path\":\"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z\",\"name\":\"Bangladesh\"},\"mm\":{\"path\":\"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z\",\"name\":\"Myanmar\"},\"th\":{\"path\":\"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z\",\"name\":\"Thailand\"},\"kh\":{\"path\":\"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z\",\"name\":\"Cambodia\"},\"la\":{\"path\":\"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z\",\"name\":\"Lao People's Democratic Republic\"},\"vn\":{\"path\":\"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z\",\"name\":\"Vietnam\"},\"ge\":{\"path\":\"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z\",\"name\":\"Georgia\"},\"am\":{\"path\":\"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z\",\"name\":\"Armenia\"},\"az\":{\"path\":\"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z\",\"name\":\"Iran\"},\"tr\":{\"path\":\"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z\",\"name\":\"Turkey\"},\"om\":{\"path\":\"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z\",\"name\":\"Oman\"},\"ae\":{\"path\":\"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z\",\"name\":\"United Arab Emirates\"},\"qa\":{\"path\":\"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z\",\"name\":\"Qatar\"},\"kw\":{\"path\":\"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z\",\"name\":\"Kuwait\"},\"sa\":{\"path\":\"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z\",\"name\":\"Saudi Arabia\"},\"sy\":{\"path\":\"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z\",\"name\":\"Syrian Arab Republic\"},\"iq\":{\"path\":\"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z\",\"name\":\"Iraq\"},\"jo\":{\"path\":\"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z\",\"name\":\"Jordan\"},\"lb\":{\"path\":\"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z\",\"name\":\"Lebanon\"},\"il\":{\"path\":\"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z\",\"name\":\"Israel\"},\"cy\":{\"path\":\"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z\",\"name\":\"Cyprus\"},\"gb\":{\"path\":\"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z\",\"name\":\"United Kingdom\"},\"ie\":{\"path\":\"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z\",\"name\":\"Ireland\"},\"se\":{\"path\":\"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z\",\"name\":\"Sweden\"},\"fi\":{\"path\":\"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z\",\"name\":\"Finland\"},\"lv\":{\"path\":\"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z\",\"name\":\"Latvia\"},\"lt\":{\"path\":\"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z\",\"name\":\"Lithuania\"},\"by\":{\"path\":\"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z\",\"name\":\"Poland\"},\"it\":{\"path\":\"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z\",\"name\":\"Italy\"},\"fr\":{\"path\":\"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z\",\"name\":\"France\"},\"nl\":{\"path\":\"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z\",\"name\":\"Netherlands\"},\"be\":{\"path\":\"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z\",\"name\":\"Belgium\"},\"de\":{\"path\":\"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z\",\"name\":\"Germany\"},\"dk\":{\"path\":\"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z\",\"name\":\"Denmark\"},\"ch\":{\"path\":\"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z\",\"name\":\"Switzerland\"},\"cz\":{\"path\":\"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z\",\"name\":\"Slovakia\"},\"at\":{\"path\":\"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z\",\"name\":\"Austria\"},\"hu\":{\"path\":\"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z\",\"name\":\"Hungary\"},\"si\":{\"path\":\"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z\",\"name\":\"Slovenia\"},\"hr\":{\"path\":\"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z\",\"name\":\"Croatia\"},\"ba\":{\"path\":\"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z\",\"name\":\"Bosnia and Herzegovina\"},\"mt\":{\"path\":\"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z\",\"name\":\"Malta\"},\"ua\":{\"path\":\"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z\",\"name\":\"Ukraine\"},\"md\":{\"path\":\"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z\",\"name\":\"Romania\"},\"rs\":{\"path\":\"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z\",\"name\":\"Serbia\"},\"bg\":{\"path\":\"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z\",\"name\":\"Albania\"},\"mk\":{\"path\":\"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z\",\"name\":\"Macedonia\"},\"gr\":{\"path\":\"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z\",\"name\":\"Greece\"}}});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-de.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.de = {\n        grid: {\n            noDataContent: \"Die Daten konnten nicht gefunden werden\",\n            deleteConfirm: \"Möchten Sie die Daten unwiederruflich löschen?\",\n            pagerFormat: \"Seiten: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} von {pageCount}\",\n            pagePrevText: \"<\",\n            pageNextText: \">\",\n            pageFirstText: \"<<\",\n            pageLastText: \">>\",\n            loadMessage: \"Bitte warten...\",\n            invalidMessage: \"Ihre Eingabe ist nicht zulässig!\"\n        },\n\n        loadIndicator: {\n            message: \"Lädt...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Suche\",\n                insertModeButtonTooltip: \"Eintrag hinzufügen\",\n                editButtonTooltip: \"Bearbeiten\",\n                deleteButtonTooltip: \"Löschen\",\n                searchButtonTooltip: \"Eintrag finden\",\n                clearFilterButtonTooltip: \"Filter zurücksetzen\",\n                insertButtonTooltip: \"Hinzufügen\",\n                updateButtonTooltip: \"Speichern\",\n                cancelEditButtonTooltip: \"Abbrechen\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Dies ist ein Pflichtfeld\" },\n            rangeLength: { message: \"Die Länge der Eingabe liegt außerhalb des zulässigen Bereichs\" },\n            minLength: { message: \"Die Eingabe ist zu kurz\" },\n            maxLength: { message: \"Die Eingabe ist zu lang\" },\n            pattern: { message: \"Die Eingabe entspricht nicht dem gewünschten Muster\" },\n            range: { message: \"Der eingegebene Wert liegt außerhalb des zulässigen Bereichs\" },\n            min: { message: \"Der eingegebene Wert ist zu niedrig\" },\n            max: { message: \"Der eingegebene Wert ist zu hoch\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-es.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.es = {\n        grid: {\n            noDataContent: \"No encontrado\",\n            deleteConfirm: \"¿Está seguro?\",\n            pagerFormat: \"Paginas: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} de {pageCount}\",\n            pagePrevText: \"Anterior\",\n            pageNextText: \"Siguiente\",\n            pageFirstText: \"Primero\",\n            pageLastText: \"Ultimo\",\n            loadMessage: \"Por favor, espere...\",\n            invalidMessage: \"¡Datos no válidos!\"\n        },\n\n        loadIndicator: {\n            message: \"Cargando...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Cambiar a búsqueda\",\n                insertModeButtonTooltip: \"Cambiar a inserción\",\n                editButtonTooltip: \"Editar\",\n                deleteButtonTooltip: \"Suprimir\",\n                searchButtonTooltip: \"Buscar\",\n                clearFilterButtonTooltip: \"Borrar filtro\",\n                insertButtonTooltip: \"Insertar\",\n                updateButtonTooltip: \"Actualizar\",\n                cancelEditButtonTooltip: \"Cancelar edición\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Campo requerido\" },\n            rangeLength: { message: \"La longitud del valor está fuera del intervalo definido\" },\n            minLength: { message: \"La longitud del valor es demasiado corta\" },\n            maxLength: { message: \"La longitud del valor es demasiado larga\" },\n            pattern: { message: \"El valor no se ajusta al patrón definido\" },\n            range: { message: \"Valor fuera del rango definido\" },\n            min: { message: \"Valor demasiado bajo\" },\n            max: { message: \"Valor demasiado alto\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-fr.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.fr = {\n        grid: {\n            noDataContent: \"Pas de données\",\n            deleteConfirm: \"Êtes-vous sûr ?\",\n            pagerFormat: \"Pages: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} de {pageCount}\",\n            pagePrevText: \"<\",\n            pageNextText: \">\",\n            pageFirstText: \"<<\",\n            pageLastText: \">>\",\n            loadMessage: \"Chargement en cours...\",\n            invalidMessage: \"Des données incorrectes sont entrés !\"\n        },\n\n        loadIndicator: {\n            message: \"Chargement en cours...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Recherche\",\n                insertModeButtonTooltip: \"Ajouter une entrée\",\n                editButtonTooltip: \"Changer\",\n                deleteButtonTooltip: \"Effacer\",\n                searchButtonTooltip: \"Trouve\",\n                clearFilterButtonTooltip: \"Effacer\",\n                insertButtonTooltip: \"Ajouter\",\n                updateButtonTooltip: \"Sauvegarder\",\n                cancelEditButtonTooltip: \"Annuler\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Champ requis\" },\n            rangeLength: { message: \"Longueur de la valeur du champ est hors de la plage définie\" },\n            minLength: { message: \"La valeur du champ est trop court\" },\n            maxLength: { message: \"La valeur du champ est trop long\" },\n            pattern: { message: \"La valeur du champ ne correspond pas à la configuration définie\" },\n            range: { message: \"La valeur du champ est hors de la plage définie\" },\n            min: { message: \"La valeur du champ est trop petit\" },\n            max: { message: \"La valeur du champ est trop grande\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-he.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.he = {\n        grid: {\n            noDataContent: \"לא נמצא\",\n            deleteConfirm: \"האם אתה בטוח?\",\n            pagerFormat: \"עמודים: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} מתוך {pageCount}\",\n            pagePrevText: \"הקודם\",\n            pageNextText: \"הבא\",\n            pageFirstText: \"ראשון\",\n            pageLastText: \"אחרון\",\n            loadMessage: \"אנא המתן ...\",\n            invalidMessage: \"נתונים לא חוקיים!\"\n        },\n\n        loadIndicator: {\n            message: \"טוען...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"ביצוע חיפוש\",\n                insertModeButtonTooltip: \"ביצוע עריכת שורה\",\n                editButtonTooltip: \"עריכה\",\n                deleteButtonTooltip: \"מחיקה\",\n                searchButtonTooltip: \"חיפוש\",\n                clearFilterButtonTooltip: \"ניקוי מסנן\",\n                insertButtonTooltip: \"הכנסה\",\n                updateButtonTooltip: \"עדכון\",\n                cancelEditButtonTooltip: \"ביטול עריכה\"\n            }\n        },\n\n        validators: {\n            required: { message: \"שדה נדרש\" },\n            rangeLength: { message: \"אורכו של הערך הוא מחוץ לטווח המוגדר\" },\n            minLength: { message: \"אורכו של הערך קצר מדי\" },\n            maxLength: { message: \"אורכו של הערך ארוך מדי\" },\n            pattern: { message: \"אורכו של הערך ארוך מדי\" },\n            range: { message: \"ערך מחוץ לטווח\" },\n            min: { message: \"ערך נמוך מדי\" },\n            max: { message: \"גבוה מדי\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-ja.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.ja = {\n        grid: {\n            noDataContent: \"データが見つかりません。\",\n            deleteConfirm: \"削除しますよろしですか。\",\n            pagerFormat: \"頁: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; 【{pageIndex}／{pageCount}】\",\n            pagePrevText: \"前\",\n            pageNextText: \"次\",\n            pageFirstText: \"最初\",\n            pageLastText: \"最後\",\n            loadMessage: \"しばらくお待ちください…\",\n            invalidMessage: \"入力されたデータが不正です。\"\n        },\n\n        loadIndicator: {\n            message: \"処理中…\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"検索モードへ\",\n                insertModeButtonTooltip: \"登録モードへ\",\n                editButtonTooltip: \"編集\",\n                deleteButtonTooltip: \"削除\",\n                searchButtonTooltip: \"フィルター\",\n                clearFilterButtonTooltip: \"クリア\",\n                insertButtonTooltip: \"登録\",\n                updateButtonTooltip: \"更新\",\n                cancelEditButtonTooltip: \"編集戻す\"\n            }\n        },\n\n        validators: {\n            required: { message: \"項目が必要です。\" },\n            rangeLength: { message: \"項目の桁数が範囲外です。\" },\n            minLength: { message: \"項目の桁数が超過しています。\" },\n            maxLength: { message: \"項目の桁数が不足しています。\" },\n            pattern: { message: \"項目の値がパターンに一致しません。\" },\n            range: { message: \"項目の値が範囲外です。\" },\n            min: { message: \"項目の値が超過しています。\" },\n            max: { message: \"項目の値が不足しています。\" }\n        }\n    };\n\n}(jsGrid, jQuery));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-ka.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.ka = {\n        grid: {\n            noDataContent: \"მონაცემები ცარიელია.\",\n            deleteConfirm: \"ნამდვილად გსურთ ჩანაწერის წაშლა?\",\n            pagerFormat: \"გვერდები: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} - {pageCount} დან.\",\n            pagePrevText: \"<\",\n            pageNextText: \">\",\n            pageFirstText: \"<<\",\n            pageLastText: \">>\",\n            loadMessage: \"გთხოვთ დაიცადოთ...\",\n            invalidMessage: \"შეყვანილია არასწორი მონაცემები!\"\n        },\n\n        loadIndicator: {\n            message: \"მიმდინარეობს ჩატვირთვა...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"ძებნა\",\n                insertModeButtonTooltip: \"ჩანაწერის დამატება\",\n                editButtonTooltip: \"შესწორება\",\n                deleteButtonTooltip: \"წაშლა\",\n                searchButtonTooltip: \"ძებნა\",\n                clearFilterButtonTooltip: \"ფილტრის გასუფთავება\",\n                insertButtonTooltip: \"დამატება\",\n                updateButtonTooltip: \"შენახვა\",\n                cancelEditButtonTooltip: \"გაუქმება\"\n            }\n        },\n\n        validators: {\n            required: { message: \"ველი აუცილებელია შესავსებად.\" },\n            rangeLength: { message: \"შეყვანილი ჩანაწერის ზომა არ ექვემდებარება დიაპაზონს.\" },\n            minLength: { message: \"შეყვანილი ჩანაწერის ზომა საკმაოდ პატარა არის.\" },\n            maxLength: { message: \"შეყვანილი ჩანაწერის ზომა საკმაოდ დიდი არის.\" },\n            pattern: { message: \"შეყვანილი მნიშვნელობა არ ემთხვევა მითითებულ შაბლონს.\" },\n            range: { message: \"შეყვანილი ინფორმაცია არ ჯდება დიაპაზონში.\" },\n            min: { message: \"შეყვანილი ინფორმაციის ზომა საკმაოდ პატარა არის.\" },\n            max: { message: \"შეყვანილი ინფორმაციის ზომა საკმაოდ დიდი არის.\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-pl.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.pl = {\n        grid: {\n            noDataContent: \"Nie znaleziono\",\n            deleteConfirm: \"Czy jesteś pewien?\",\n            pagerFormat: \"Strony: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} z {pageCount}\",\n            pagePrevText: \"Poprzednia\",\n            pageNextText: \"Następna\",\n            pageFirstText: \"Pierwsza\",\n            pageLastText: \"Ostatnia\",\n            loadMessage: \"Proszę czekać...\",\n            invalidMessage: \"Wprowadzono nieprawidłowe dane!\"\n        },\n\n        loadIndicator: {\n            message: \"Ładowanie...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Wyszukiwanie\",\n                insertModeButtonTooltip: \"Dodawanie\",\n                editButtonTooltip: \"Edytuj\",\n                deleteButtonTooltip: \"Usuń\",\n                searchButtonTooltip: \"Szukaj\",\n                clearFilterButtonTooltip: \"Wyczyść filtr\",\n                insertButtonTooltip: \"Dodaj\",\n                updateButtonTooltip: \"Aktualizuj\",\n                cancelEditButtonTooltip: \"Anuluj edytowanie\"\n            }\n        },\n\n        validators: {\n            required: {\n                message: \"Pole jest wymagane\"\n            },\n            rangeLength: {\n                message: \"Długość wartości pola znajduje się poza zdefiniowanym zakresem\"\n            },\n            minLength: {\n                message: \"Wartość pola jest zbyt krótka\"\n            },\n            maxLength: {\n                message: \"Wartość pola jest zbyt długa\"\n            },\n            pattern: {\n                message: \"Wartość pola nie zgadza się ze zdefiniowanym wzorem\"\n            },\n            range: {\n                message: \"Wartość pola znajduje się poza zdefiniowanym zakresem\"\n            },\n            min: {\n                message: \"Wartość pola jest zbyt mała\"\n            },\n            max: {\n                message: \"Wartość pola jest zbyt duża\"\n            }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-pt-br.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales[\"pt-br\"] = {\n        grid: {\n            noDataContent: \"Não encontrado\",\n            deleteConfirm: \"Você tem certeza que deseja remover este item?\",\n            pagerFormat: \"Páginas: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} de {pageCount}\",\n            pagePrevText: \"Anterior\",\n            pageNextText: \"Seguinte\",\n            pageFirstText: \"Primeira\",\n            pageLastText: \"Última\",\n            loadMessage: \"Por favor, espere...\",\n            invalidMessage: \"Dados inválidos!\"\n        },\n\n        loadIndicator: {\n            message: \"Carregando...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Mudar para busca\",\n                insertModeButtonTooltip: \"Mudar para inserção\",\n                editButtonTooltip: \"Editar\",\n                deleteButtonTooltip: \"Remover\",\n                searchButtonTooltip: \"Buscar\",\n                clearFilterButtonTooltip: \"Remover filtro\",\n                insertButtonTooltip: \"Adicionar\",\n                updateButtonTooltip: \"Atualizar\",\n                cancelEditButtonTooltip: \"Cancelar Edição\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Campo obrigatório\" },\n            rangeLength: { message: \"O valor esta fora do intervaldo definido\" },\n            minLength: { message: \"O comprimento do valor é muito curto\" },\n            maxLength: { message: \"O comprimento valor é muito longo\" },\n            pattern: { message: \"O valor informado não é compatível com o padrão\" },\n            range: { message: \"O valor informado esta fora do limite definido\" },\n            min: { message: \"O valor é muito curto\" },\n            max: { message: \"O valor é muito longo\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-pt.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.pt = {\n        grid: {\n            noDataContent: \"Não encontrado\",\n            deleteConfirm: \"Você tem certeza que deseja remover este item?\",\n            pagerFormat: \"Páginas: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} de {pageCount}\",\n            pagePrevText: \"Anterior\",\n            pageNextText: \"Seguinte\",\n            pageFirstText: \"Primeira\",\n            pageLastText: \"Última\",\n            loadMessage: \"Por favor, espere...\",\n            invalidMessage: \"Dados inválidos!\"\n        },\n\n        loadIndicator: {\n            message: \"Carregando...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Mudar para busca\",\n                insertModeButtonTooltip: \"Mudar para inserção\",\n                editButtonTooltip: \"Editar\",\n                deleteButtonTooltip: \"Remover\",\n                searchButtonTooltip: \"Buscar\",\n                clearFilterButtonTooltip: \"Remover filtro\",\n                insertButtonTooltip: \"Adicionar\",\n                updateButtonTooltip: \"Atualizar\",\n                cancelEditButtonTooltip: \"Cancelar Edição\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Campo obrigatório\" },\n            rangeLength: { message: \"O valor esta fora do intervaldo definido\" },\n            minLength: { message: \"O comprimento do valor é muito curto\" },\n            maxLength: { message: \"O comprimento valor é muito longo\" },\n            pattern: { message: \"O valor informado não é compatível com o padrão\" },\n            range: { message: \"O valor informado esta fora do limite definido\" },\n            min: { message: \"O valor é muito curto\" },\n            max: { message: \"O valor é muito longo\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-ru.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.ru = {\n        grid: {\n            noDataContent: \"Данных не найдено\",\n            deleteConfirm: \"Вы действительно хотите удалить запись?\",\n            pagerFormat: \"Страницы: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} из {pageCount}\",\n            pagePrevText: \"<\",\n            pageNextText: \">\",\n            pageFirstText: \"<<\",\n            pageLastText: \">>\",\n            loadMessage: \"Пожалуйста, подождите...\",\n            invalidMessage: \"Введены неверные данные!\"\n        },\n\n        loadIndicator: {\n            message: \"Загрузка...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Поиск\",\n                insertModeButtonTooltip: \"Добавить запись\",\n                editButtonTooltip: \"Изменить\",\n                deleteButtonTooltip: \"Удалить\",\n                searchButtonTooltip: \"Найти\",\n                clearFilterButtonTooltip: \"Очистить фильтр\",\n                insertButtonTooltip: \"Добавить\",\n                updateButtonTooltip: \"Сохранить\",\n                cancelEditButtonTooltip: \"Отменить\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Поле обязательно для заполения\" },\n            rangeLength: { message: \"Длинна введенного значения вне допустимого диапазона\" },\n            minLength: { message: \"Введенное значение слишком короткое\" },\n            maxLength: { message: \"Введенное значение слишком длинное\" },\n            pattern: { message: \"Введенное значение не соответствует заданному шаблону\" },\n            range: { message: \"Введенное значение вне допустимого диапазона\" },\n            min: { message: \"Введенное значение слишком маленькое\" },\n            max: { message: \"Введенное значение слишком большое\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-tr.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales.tr = {\n        grid: {\n            noDataContent: \"Kayıt Bulunamadı\",\n            deleteConfirm: \"Emin misiniz ?\",\n            pagerFormat: \"Sayfalar: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} / {pageCount}\",\n            pagePrevText: \"<\",\n            pageNextText: \">\",\n            pageFirstText: \"<<\",\n            pageLastText: \">>\",\n            loadMessage: \"Lütfen bekleyiniz...\",\n            invalidMessage: \"Geçersiz veri girişi !\"\n        },\n\n        loadIndicator: {\n            message: \"Yükleniyor...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"Arama moduna geç\",\n                insertModeButtonTooltip: \"Yeni kayıt moduna geç\",\n                editButtonTooltip: \"Değiştir\",\n                deleteButtonTooltip: \"Sil\",\n                searchButtonTooltip: \"Bul\",\n                clearFilterButtonTooltip: \"Filtreyi temizle\",\n                insertButtonTooltip: \"Ekle\",\n                updateButtonTooltip: \"Güncelle\",\n                cancelEditButtonTooltip: \"Güncelleme iptali\"\n            }\n        },\n\n        validators: {\n            required: { message: \"Gerekli alandır\" },\n            rangeLength: { message: \"Alan değerinin uzunluğu tanımlanan aralık dışındadır\" },\n            minLength: { message: \"Alan değeri çok kısadır\" },\n            maxLength: { message: \"Alan değeri çok uzundur\" },\n            pattern: { message: \"Alan değeri tanımlanan şablon ile eşleşmiyor\" },\n            range: { message: \"Alan değeri tanımlı aralığın dışındadır\" },\n            min: { message: \"Alan değeri çok küçüktür\" },\n            max: { message: \"Alan değeri çok büyüktür\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-zh-cn.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales[\"zh-cn\"] = {\n        grid: {\n            noDataContent: \"暂无数据\",\n            deleteConfirm: \"确认删除？\",\n            pagerFormat: \"页码: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} / {pageCount}\",\n            pagePrevText: \"上一页\",\n            pageNextText: \"下一页\",\n            pageFirstText: \"第一页\",\n            pageLastText: \"最后页\",\n            loadMessage: \"请稍后...\",\n            invalidMessage: \"数据有误！\"\n        },\n\n        loadIndicator: {\n            message: \"载入中...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"切换为搜索\",\n                insertModeButtonTooltip: \"切换为新增\",\n                editButtonTooltip: \"编辑\",\n                deleteButtonTooltip: \"删除\",\n                searchButtonTooltip: \"搜索\",\n                clearFilterButtonTooltip: \"清空过滤\",\n                insertButtonTooltip: \"插入\",\n                updateButtonTooltip: \"更新\",\n                cancelEditButtonTooltip: \"取消编辑\"\n            }\n        },\n\n        validators: {\n            required: { message: \"字段必填\" },\n            rangeLength: { message: \"字段值长度超过定义范围\" },\n            minLength: { message: \"字段长度过短\" },\n            maxLength: { message: \"字段长度过长\" },\n            pattern: { message: \"字段值不符合定义规则\" },\n            range: { message: \"字段值超过定义范围\" },\n            min: { message: \"字段值太小\" },\n            max: { message: \"字段值太大\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/i18n/jsgrid-zh-tw.js",
    "content": "(function(jsGrid) {\n\n    jsGrid.locales[\"zh-tw\"] = {\n        grid: {\n            noDataContent: \"暫無資料\",\n            deleteConfirm: \"確認刪除？\",\n            pagerFormat: \"頁碼: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} / {pageCount}\",\n            pagePrevText: \"上一頁\",\n            pageNextText: \"下一頁\",\n            pageFirstText: \"第一頁\",\n            pageLastText: \"最後一頁\",\n            loadMessage: \"請稍候...\",\n            invalidMessage: \"輸入資料不正確\"\n        },\n\n        loadIndicator: {\n            message: \"載入中...\"\n        },\n\n        fields: {\n            control: {\n                searchModeButtonTooltip: \"切換為搜尋\",\n                insertModeButtonTooltip: \"切換為新增\",\n                editButtonTooltip: \"編輯\",\n                deleteButtonTooltip: \"刪除\",\n                searchButtonTooltip: \"搜尋\",\n                clearFilterButtonTooltip: \"清除搜尋條件\",\n                insertButtonTooltip: \"新增\",\n                updateButtonTooltip: \"修改\",\n                cancelEditButtonTooltip: \"取消編輯\"\n            }\n        },\n\n        validators: {\n            required: { message: \"欄位必填\" },\n            rangeLength: { message: \"欄位字串長度超出範圍\" },\n            minLength: { message: \"欄位字串長度太短\" },\n            maxLength: { message: \"欄位字串長度太長\" },\n            pattern: { message: \"欄位字串不符合規則\" },\n            range: { message: \"欄位數值超出範圍\" },\n            min: { message: \"欄位數值太小\" },\n            max: { message: \"欄位數值太大\" }\n        }\n    };\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/jsgrid-theme.css",
    "content": "/*\n * jsGrid v1.5.3 (http://js-grid.com)\n * (c) 2016 Artem Tabalin\n * Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)\n */\n\n.jsgrid-grid-header,\n.jsgrid-grid-body,\n.jsgrid-header-row > .jsgrid-header-cell,\n.jsgrid-filter-row > .jsgrid-cell,\n.jsgrid-insert-row > .jsgrid-cell,\n.jsgrid-edit-row > .jsgrid-cell {\n    border: 1px solid #e9e9e9;\n}\n\n.jsgrid-header-row > .jsgrid-header-cell {\n    border-top: 0;\n}\n\n.jsgrid-header-row > .jsgrid-header-cell,\n.jsgrid-filter-row > .jsgrid-cell,\n.jsgrid-insert-row > .jsgrid-cell {\n    border-bottom: 0;\n}\n\n.jsgrid-header-row > .jsgrid-header-cell:first-child,\n.jsgrid-filter-row > .jsgrid-cell:first-child,\n.jsgrid-insert-row > .jsgrid-cell:first-child {\n    border-left: none;\n}\n\n.jsgrid-header-row > .jsgrid-header-cell:last-child,\n.jsgrid-filter-row > .jsgrid-cell:last-child,\n.jsgrid-insert-row > .jsgrid-cell:last-child {\n    border-right: none;\n}\n\n.jsgrid-header-row .jsgrid-align-right,\n.jsgrid-header-row .jsgrid-align-left {\n    text-align: center;\n}\n\n.jsgrid-grid-header {\n    background: #f9f9f9;\n}\n\n.jsgrid-header-scrollbar {\n    scrollbar-arrow-color: #f1f1f1;\n    scrollbar-base-color: #f1f1f1;\n    scrollbar-3dlight-color: #f1f1f1;\n    scrollbar-highlight-color: #f1f1f1;\n    scrollbar-track-color: #f1f1f1;\n    scrollbar-shadow-color: #f1f1f1;\n    scrollbar-dark-shadow-color: #f1f1f1;\n}\n\n.jsgrid-header-scrollbar::-webkit-scrollbar {\n    visibility: hidden;\n}\n\n.jsgrid-header-scrollbar::-webkit-scrollbar-track {\n    background: #f1f1f1;\n}\n\n.jsgrid-header-sortable:hover {\n    cursor: pointer;\n    background: #fcfcfc;\n}\n\n.jsgrid-header-row .jsgrid-header-sort {\n    background: #c4e2ff;\n}\n\n.jsgrid-header-sort:before {\n    content: \" \";\n    display: block;\n    float: left;\n    width: 0;\n    height: 0;\n    border-style: solid;\n}\n\n.jsgrid-header-sort-asc:before {\n    border-width: 0 5px 5px 5px;\n    border-color: transparent transparent #009a67 transparent;\n}\n\n.jsgrid-header-sort-desc:before {\n    border-width: 5px 5px 0 5px;\n    border-color: #009a67 transparent transparent transparent;\n}\n\n.jsgrid-grid-body {\n    border-top: none;\n}\n\n.jsgrid-cell {\n    border: #f3f3f3 1px solid;\n}\n\n.jsgrid-grid-body .jsgrid-row:first-child .jsgrid-cell,\n.jsgrid-grid-body .jsgrid-alt-row:first-child .jsgrid-cell {\n    border-top: none;\n}\n\n.jsgrid-grid-body .jsgrid-cell:first-child {\n    border-left: none;\n}\n\n.jsgrid-grid-body .jsgrid-cell:last-child {\n    border-right: none;\n}\n\n.jsgrid-row > .jsgrid-cell {\n    background: #fff;\n}\n\n.jsgrid-alt-row > .jsgrid-cell {\n    background: #fcfcfc;\n}\n\n.jsgrid-header-row > .jsgrid-header-cell {\n    background: #f9f9f9;\n}\n\n.jsgrid-filter-row > .jsgrid-cell {\n    background: #fcfcfc;\n}\n\n.jsgrid-insert-row > .jsgrid-cell {\n    background: #e3ffe5;\n}\n\n.jsgrid-edit-row > .jsgrid-cell {\n    background: #fdffe3;\n}\n\n.jsgrid-selected-row > .jsgrid-cell {\n    background: #c4e2ff;\n    border-color: #c4e2ff;\n}\n\n.jsgrid-nodata-row > .jsgrid-cell {\n    background: #fff;\n}\n\n.jsgrid-invalid input,\n.jsgrid-invalid select,\n.jsgrid-invalid textarea {\n    background: #ffe3e5;\n    border: 1px solid #ff808a;\n}\n\n.jsgrid-pager-current-page {\n    font-weight: bold;\n}\n\n.jsgrid-pager-nav-inactive-button a {\n    color: #d3d3d3;\n}\n\n.jsgrid-button + .jsgrid-button {\n    margin-left: 5px;\n}\n\n.jsgrid-button:hover {\n    opacity: .5;\n    transition: opacity 200ms linear;\n}\n\n.jsgrid .jsgrid-button {\n    width: 16px;\n    height: 16px;\n    border: none;\n    cursor: pointer;\n    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAFgEAYAAADx4WWjAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAZjElEQVR42u2deVyU1f7HzzyzDzCA7MgihCsY7uYOiZIamebVFl/Wy8zSxLTQuld/lmIuCGIu9cruLa9lXlNTUQsVUgQRNBbZF5F9lWEbZpj9/P74doQZ87LMDHjvPe9/vj7MPOf5fp6zjc/3e86D0H8rNTVRUd988/rrxpZTV3f48PHjixb1m+N5eVOmvP76hQtXryKEEMYVFWFhERG7dvW2nIKC4OBVq/71L1JOWdk774SHb9tmcoc1mpaWtjYLi6Ki+fPff/+f/7x2DS6YlobQpEkYJyQgxOViXFGxYUNExN693ZVXWDh//urV339/8yZCQiGUM3EixqTcqqq//e3gwQ8+MJkAnU6tVqvZbKk0KSkj47nnfv/d2nrcOInk1i2EHBw6HSBCyss3btyz53Eh4PiJEwkJCAkEGKenIzRlCsaJiQhZW2OcmentHRhYUCCX5+Tcv+/nZ/KaIKjVlZUSibPz3bu2tv7+jY1JSQjZ22P8++8ITZiA8c2bCIlEGNfU7Njx9dcbN5aXv/fe55/v2kXueFfHrawwzsjw8po1Kz9fp5PJVCoOx9T+sp4spLq6qcnJKTPTzy8wMDtbpWpurqlxcBAIEPL2RkihQKi8HCEWCyEOByGBACEPD4RkMoSysxGyshoxYtKkvLxnn83IiI3192cYoZDL1WjMduefhEbT2Njebm2dnT1x4sKFt26lpCDk7Q01Mm5cp719GyEPD4zz8+fNe/PNixcx1moxZhhz+9ftBTgce3tLy9ZWodDT08enqEirRUguh89YrE6r1SLU3o6QWDx27HPP3bjBYrHZLJZO1+933JDCwnnzVq8+eZJ0xvR0hKZNwzg5GSF3d4xJjXRt+2IxxpWVYWFRUX/964A5npc3e/aKFT/+aNg5k5IQsrPDOC9v/PjXX09Nzcpyc3vhhbKy5GSEXFygSY0fD6MWj4dxRcWmTZGRW7b0m+P5+dOnr1jx00+Gw+HNmwhZWmKcmTliRFBQdjb5vlrd1NTSYm2dmsrnDx0qlycnI+TsrC9EIMC4ouKDDyIitm41ucNqtUTS3GxlVVQ0f/66dZ0TWUYGQjNmQJPo6rhOp1RqtWy2YTkKRUFBVdXQoampPN7QoR0dt26BkPR0hCZPxpjMyDCRbdxoMgE6nUqlVnO5UmlSUmbmtGl374rFY8c2NcXFwQXv3RsxIigoKwtjpVKr7X5UUSgKCiorfXxSU0Wi4cOl0vh4KCcz08srMPD+fbk8O7u4+NlnTV4ThI6OrKzS0qFDc3JCQpYuPX1ap+vo0Ggev+PdIZPduVNY6O+flRUUFBLyyy9arVSqUAiFZnPcEI2mrq611cbG2HJUqrKyhgZX135znEKhUCgUCoVCoVAoFAqFQvlP4FGIyd//wIGYGPL0eOFCsOSRooWF/jHG3RT7R7kkwNHeDpY8W7106d69DRteesn4p9UGQbdZs8BOmAD26FGwajVYS8veFd/RAZbExtatA6tUgjW5gFdfBXv4MFhnZ7hTpEZ6D9TsiRNwFBsL9u23jXWc8FiUEi5IwqFlZWBLSkAIqaGeOn7uHBzNnAl2yBAoRyo1lYDHnvfDBUiV+/qCfeYZcOjs2Z45/s03cBQQAHbUKFM7TmB19wVwyNMTjlJSwCYlgW1tBUtqjM8HGxwMdsYMcDw319SOE7qNuIAD5eVwtGwZ2CVLwFpbgyU1RvrQypXmdrzHAvQhTaCoCOzy5eDoqlVwnJEBtqnJ3I73UQAJEQkEYG1t9T8nf++/UJKRqQBsNvSR3sfQBkiASPTHaX+cV1sLTUirhWNWt4PCAAuorQU7aBDYpUv1P5fJwJo+rcZoAfqjyvvvgz18GJpQXh4cjxkD1vTjvdEC9IUcOwZHZDglwyyEtREqLu4vARQKhUKhUCgUCoVCoVAoFMp/JL1+GAuLe0isbM8esCScum/fhAkIpaWdP9/vAsCxyEg4mjsX7MOHYA2XEE6ZAtbKSv/vJBx786b+eVwuWEdHsHFxINT4xUAGT5G9vMA6O4NtbgZrbw+WPJVOTARLHrMTS+LC48aBbWsD29gI1sFB/zrGYyCAhIpIXJgE927fBktCSCtXgv31V/07v3gx2DVrwA4dCjYwEOzp02DPnDGTAJJSQCLq48eDhdVlCB05Apa0fdKESFxg506wOTlgSVDwtdfAkiaZkAC2vt5YAQaP10kA4949/b8/KcWARGQMAxrk76TJEFJTwVZWGuv4YwKgU5FQEYn/EkjwjrRxQwyTP8ioRM4j1NTAdQzLN4EAfVpa9I9JDSgUYEmb77ogtyvkcxL4Jpg+cvMEASTiQiBtndQQEWIogNQE+Zz0KYLp48dPEFBSon9MhlUS/yXDIhk+iQDSxFQqsGKxfjkkQG52AWT8N1yRTZYmks8N5wHSREjc2MlJ/3zTdd5uBJBF54Zt1s4OLJmgyJ0nAkjNkBwKMgOTpkfOM7sAMkoYdmYyqvzZqvquDhKhBJJy9qRRzIQCYJgjna2qSv9TMk+QpkCakkSi/33iMIFMWGQiMx3dRNQNL0gi825uYEeNAks6rYsL2Dfe0D+PjP9kxu43Afn5YOfNAxsSApYMk6SzkiZE/u7tDZb8GjWc2SkUCoVCoVAoFAqFQqFQKBTjMNuiHViaMmQIHJFNgqOjYQVIRcVTKwAcJ2swydJFEuEhi0sDAvRXCPYdk20pC46TQAiJIxgG/0iN/PILfN/DY8AF6C8WTU8Hu3YtWPIQ2HBNJXko/MMPxl6/z+u9wHGSOhATA5Y8nSZbnhcWgiXLch88AEtibl9/bayAXvcBcHzwYDgiKQfdpQ6Q9cW//AKWy4U+QCL3/SAAHCc5EyRyTxa+9RQfH3DcMIjYd7ptQvqdjaQIkM7YHSQ2tmSJqR3vVgA4TqKMpI331HHCokXg+MWLpnb8iQL0R5UbN/rm+MKF5nacYLAxBgkVVVeDJaNKT1m8GBwnuxmYH7b+cEi21ScB7qlT//3ppI2TO06aWv/xx0Tm7g72wgWwZCOLjz7689NITgS545cu9bfjBI6+Q6TTkt8wpEZIqtknn4B95ZWBuuOG/FEDZC8VAo8HliRnkJ8IU6eC46SmBp4/aoC0ebKnyq1bYElKQWEhOE5+GlAoFAqFQqFQKBQKhUKhUCgDi8nCrKdOFRffuTN+/LJlMTEREdevIyQUkuAqPPPu6JBKEbp6ddmy7dtDQubOdXPz9SUBk75jsk0dWSwWi8Xi8xFiGDbbygpsVwFwzGIhxGIZLpB7CgQAGg1CGMOjYmIJXY/JmhvjMfu7U80NFTDQUAEEnc6w0/6HCfDyEovt7auru442+oJ0Oq0WITc3CwtbW7Kk0Xg4P/10//6dO7D4n8Uiq097/mJkPp/N5nC02t9+q6rKzx89GiGBgIzyMP6zWGB5PKEQoZMni4tTUwMCLl4sLc3MFAg6OrRatbrn2z5DTTMMl8swDKNUshCKilqyBOPOiae3TYE4yGZDdpBAALkoGOvfBhYLFu12dMCaV6iR3l+PnMflCgQdHRyY8lUqEMDj9b5A8m0ixNDxzu/B36EmOq/T272qQQCbzeUKhUolB4oATX3b9rr3Z5Gm1Sm99+fDOVotB35kCYXGNyFyvlBImhD5BrnT0IRUKlhtbFwT0mi0Wo1m0CDWtWuVlbm5s2aBI2TRf8/fJ8/lMgybrVbn5zc319b6+a1Zc/36t98ePtzZJ4jjSqVcjlBExKxZK1Zs3jxpkqOjl9edO2q1TqfVksGjezDGGGMOh81msRhGJuPMmePuboqftZmZjY3l5QUFCKlUCsXhw11HI7jDarVKhVBIiKenv39MzMiRtrYuLsbHnU02D+TmNjXV1np6du2c+m2bYRgGoaoqmay5meRmGI/JBEBT+jPHzQv9LTTQUAEDjcn+Tww/srjczgmKWDJrwjHGCGFM8pGeIgHw61Au5/G4XIGgoYFhuFyBoPPXjk6n0ajVLBZMQP33hggKhUKhUCgUCoVCoVAoFAoFIYTQhx8mJHz//dq1CO3b9/LLLS0IRUQsXNjSsm3b7ds//fThh/3tT6+fzEFekK0t/Ivsbkw+M9ws2Pz04eEuxhgrlX+eF0S2rH2qBTxd9FrAk5I6GKZ/Q0uEXvcBFxdLSxuburquj9ExRsjBgc+3sGho6HcBH32UkHD8eGgoxHOFQmjThlkOGNvYCARCYXt7XFx1dUHBCy8gJBTC1vBQH2fPlpZmZISE7NiRknLmDIvV2qpSKRQWFlBeZ91AnJdhWCyGYRiZLCpq5szly8mbJXoPC6F9+xYuxBghFotE6v8810Gng78LBJBOKRLpj0FyOWx4rlBAJB7Cqo9DymcYCG+HhZ092/fGx3k8v+dJof/HR50/vyxxsOt9//flGANn27bp05cv37wZxnUSWyepBp0vRrCzEwgsLEgTCgq6eLGkJC1twQIiPDjY03PMmCtX5s718Bg16sqVtjalsqNDJAInSV3AkU7H4bBYLBab3d6+fTtCP/9svJAeExWVlnbx4vLlCO3Z8+KLGCO0e/eCBRgfOZKRERv77rv96ArUQG9PKC9va5NInJ07kzmgKdTXKxRSKdmfov/o9TzA4zFM/72F3gwCIEw60G530ut7CeO4QNB1tOkcVQzfO/MUCmCzGYbNbmyEcby1lQhgGIZhsfp/JqZQKBQKhUKhUCgUCoVCofxv0uPAQmNjW1tbm5NTfX1ra3Pzyy9LJFKpVDp9Oiy/cnXV6XQ6na69ncfj8bjcjAw7O0tLK6vz5729nZ1dXDIzzSWg2ydzKSlFRfn5lpbNzTKZVLpwYUtLe3t7+xtvqFQajUYzdqxWi5BOZ2mJMUTN1GqdTqcjb0cXiUpL6+vr6trbvbycnJyd79/vtxqorJRIHj4cOTI7u7y8rOz0aY1Gq9VqfX0h0I0Ql8tmczgPH8Kz0oICCIU4OkIUc/hwEIgQj8fhcDgajY+Pi4uLyzvvDBvm6urmduyYqQQ89nS6rq6lpalpzJi8vMrKioq4OHDI11ck4vEEghs3LCz4fIFgzhxwzNNz3rxx4yZMmDmTx+NyudyRIwUCHo/HGz5cLBaJRKIjR0AuhwM34rvvSkrq6mprN240Ww1cuZKenpaWmalUajQajb+/lZVQKBB8+WVg4OjR/v7vv9/bC1y/np19797LL0ON/PxzR4darVKxWFOnDh8+cuS0aY6O1tY2NsnJfa4BuVyhUCjc3cvLGxrq69evl8tVKqXS318k4vN5vOvX++o4Ac4/fx5q7IMPSHShpKS2trZ23z5ja4ApL29sbGgIDq6qamqSSF56ic2G8CjYnTuNvYC+kEOHBAIul8stK2tr6+iQy6dOLStraKir6+17DLoIaG6WyWSyoCCFQq1Wq6dO5XI5HA6npgbu0+3bphLw6IIMwzDMtWtk1WtDQ0tLS8vEiX0uD9anOzoyDEKdK7rJjt+mzz6BUaywkAReVSqtVqcj7+TogwCtVqfT6eRyksQBw6GDA3xsrnCevb3+XghqdZ8FQGdNT+dwGIZh8vNBkK8vCOnt+we6B2bsqVPBImRjIxKJRH2f4BgvLwcHJ6cLF5ydbW1tbGJjVSqtVqMhaTVhYaZyPD4+MzM9fc4cjQZjjGfOtLQUi8XikhJfXw+PIUN+/bXPAmxtraysrNLS7O3FYmvrL7+EO9/erlSq1Wp1aOj16zk5WVmQUtA3x+/dy8iwsdHptFqtNjqax3N0dHREaNiwIUO8vDZvNvbGPJqJ7eysrMTi+/dHjHBzc3ffvFmhUKlUKoRUKrVarT53Diakdevi47OyMjO73wsF7viMGRhrtVptQoKFxZgxY8b4+ra0XLp0+TJCpaV790ZEGN/Hnvhb6MGDurra2vXrc3MrKysqoqNJ0gaPx2az2ZWVMBxevgyjSlkZhFutraHpzZ4N6SKTJgkEDg4ODghJJBcvXryIUEXFRx9t2oSQTCaXy+UIBQVFRkZGrls3bVpYWFhY7/OGuv05XVvb1NTUNHFicXFtbU3NoUMKhVqtUk2eDD/iyLDY+X2MoXNaWg4aZGf34IG7u6urq2tYWE7O6tXvvhsQcPfusWPHjq1fb23t7e3tjZBUWl1dXY3QvHmHDh06tGHDhAmrV69e/cUXJhNgSFWVRNLY6OtbXS2RSCQTJqjVsEUI5GApldbWIpFIVFDg6enu7uGRlGRpyWKxWJ27msXFbdmyZcvBgykpUVFRUaGhYrG7u7s7Qm1tICQ4ODIyMnLTpokT165duzYyss9ty9xcv/7ZZ599duDAzp1CoVCIcVSUm5ubG8bkOCkpIiIiYseOgfazWxISwsPDw6Ojw8N5PB4P46iowYMHD8Z4506RSCTCODFx9+7du033m8xsgKO7du3cKRAIBBgfPOjj4+PTKeTKlbCwsLC9ewfaz25JSTl06NCh8PDwcD6fz8d49247Ozs7jD/5hM1mszHOyzt79uzZ0FC5vKGhoWHIkKcuc/e550JDQ0P/7/+Cg/fv379/yxadDuYjS0sLCwsLhLhcoVAolEoRYrPZbKVyoP19IgpFa2trq739jz+GhISEnDhx8uTixYsXHz/e0dHc3NxsazvQ/lEoFAqFQqFQKBQKhUKhUChG0U2ERiBob1cqFYp9+ySStjapdP58iGa2tdnbW1uLxTt3jhzp5ubhcfbsUyMgL6+qqqIiKKisrKGhvv7YMUg5GDwY4jFlZbDlu7W1VouxTicUWltbWFhYXL7s7m5nZ2+/dKmHh4ODo2PP319gLI8e7hYV1dRUVQUGlpc3NDQ0XLum1ep0GJeWwtLDCRMglDRsGJvNZjPM4MEcDofD4Xz4YX19S0tz8yuv1NQ0NUkksbH9XgUymULR0WFvD2k29fUxMXfupKQkJvb0/Bs3cnKysvz8zp9PTU1OxhjygvovIMEUF9fV1dZu3QrRRUdHCws+n8/v+crsgAA/v2efzcnhcjkcLvf0aYlEKm1tXbPm/v3a2urqnu9q32cBLS3t7TLZsmWwGrW8fPZsf/+xY/PyelsQZLlcuaLVarUYI1Rd3dTU3Gz+Fd4MQgixWCT3zdLyt9+yszMze79NAkTibW2hHB5PKOTxeDzymngzCvDxcXZ2cgoP1+lg7wKVSqPRalev7m1BGHO5XO6qVba2Hh7u7ikpkyYNHTpsWHOzuQU84s6d4uKCgpiY06eTkxMTMYbOOWpUd+fFxxcW5udv356QUF9fW4txeXlZWWlp3zOwesujplJd3dTU2CgQlJXV1zc0nD/f1NTeLpUGB8OmL6dPw7B57RpE4p2ctFoej8t99VWRaNAgOztf39zc5ctXrECIzy8vLy8/dWrSpC1btmxZvtzff+XKlSt7/kqM3vJoHhg8eNAge3uFYtq0kSNHjXrhBVdXW1s7ux07RCI+n8+fOBEmtM8/hy3KQ0OHDHnmGR+fqioXl4cPJZIXX9Tp0tLS0lJSiopKSkpKli0rKrp69erVc+dyck6dOnWq/9faP0ZiYl5ebq6bW2pqQUF+/uM7OV27tm5daKit7YkTISEhIUlJkEiD8fHjwcHBwcnJKSkHDx482PfUsn7jzp2vvvrqKzu7b78NCAgIyMjYtIkImT179uz4+Nu3o6Ojo21sBtrPbklOjoyMjLS0PH48KCgoKC5u/XoQcvTojBkzZmRkyGR1dXV1gwcbex2z7dExdWpYWFhYe3tVVWpqaurChTKZVCqVPniAsUaj0bi58flisVjc92Q/swsguLlNnjx5skx26dKqVatW/eMfarVGo9HodAzD5/P5Eom5r0+hUCgUCoVCoVAoFAqFQqH8b3PsWHFxauqLLx49mp+fmLho0UD702Nyc1ta6urc3RHas2fBAowR2rkzOBjjTz+9e/fCBeO3ZzDbKiaZTKNRqRgmIOD06e3bb95EiMuFMIdGo1Ih9N13hYXJyatWPbUCnn/+3Lndu2NjHz5sbKyoGDKEOO7q6uHh51dRkZPzl7989tnkyU+dgDfeiI//+9+/+CI1tbDw1q05cxDi80UihBiGz7ew0Gji4195ZevW558Xi/l8oRD2yX8q2LUrMzM29r33EAoPDwrCGKEvvnjtNYwR2rVrwQKMY2OrqwsKnn/ebA6MHn3y5JYtiYlTppw6tW1bz9e4x8RUVOTkzJpFNpFH6MABcBw6a3R0Ts5vv61dazbH58y5dGn//h9+QGjr1mnTOi88evQPP3z88Y0bdXUKhUz2eJQxL6+lpa7OzQ2h6OhXX1WpEIqOXroUY4R27JgzB+OVKxMSjh//6iuzOf4HzPTpzs5Dh2ZmImRt7eSEEEIikViMUHZ2dXVBwaxZfn7ffbd+fV7egwetrQ0NnUsAAwLOnAkPv3ULIY1GqeRyEZLL29oQmjnTzy8wMD7+229nzVqxYs0acwt4FOi+cqWqKi8vIGDRonPndu+OiZHLOzqkUisr8ioKe3t7e0/PsjIPDyurQYNKS9PTy8uzsgIDEVKrlUqEXF3t7T08KisfPHjrrQMHvLwEAjabwyFv6e4HAYQHD6RSicTNbc6cM2d27IiLKympqSksHD4cISsre3uEEMIY3IL9JxBiGDZbpyspefvtI0e8vJ55xsrKzq6iwtyOEx4bRr29razs7KqqcnLefHP//tGj584dOXLmzMuXEWptra8HAbDDgVqtUCD0669Llnz66dy5/e14r3nrrbi4o0ePHkXo44/HjcN4796srGvXNmwYaL96TVxcZWVu7owZA+3Hfw3/D73/bnBl1mLvAAAAAElFTkSuQmCC);\n    background-repeat: no-repeat;\n    background-color: transparent;\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n    .jsgrid .jsgrid-button {\n        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAALAEAYAAACFny30AAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAA6CUlEQVR42u2dZ2AUZRPH53rLpVdSKSGhgwoIqIgKiBRFBGwooQjoC9KbSEdFqoIiNhDBQhdEQBABIShNCCUhpEF6T+5yuX77fhgejhwc6dkE5/dl2LvN7uz8n/4cOwAEQVSCmJjOnZ97bunSK1eeeWbo0G7d+Pbn2rWBA8eMmTnz8uWuXQcPfughvv2pLMKKnpiY+Oqrs2Z16lRampwcGzt6tNlcWFhQMGwYX45nZCxe/O23kZEazb///vPPuHEWS3FxQcGrr/LlT62RlBQV9d574eGnT/v6tm6dkREdDRAUxHHR0WJxSAjHXb3ar9+wYcuX15U/WVkrV27e7Od35kzjxg8/fP36iRMA3t4cd+qUUNikCcfFxHTs+Pzzc+fyHbdqk5T02muzZnXu/M8/Xl6RkXl5p04BNGnCcefOAXTrxnFnzgC0a8dxJ08KBL6+HBcb26/fsGEffVRb/mRmLlu2aVNk5JkzjRq1b5+WdvIkQKNGHHf+vN2f9u05LjpaIAgO5rhLlzp1euGFOXP4jmN5CBw/SEgYMWLq1CefzM/fseOXX7Zv57jiYgAvL4kEwMsLgOMATCYAgQBAIgGw2QAMBgCTSSjMygLw9OzXr3fvFStatNizZ9OmqVOr62BW1sqVW7YEBNy8+ckny5YdP26x3LiRnd2smUwGEBZW1h+RyH5sNgsEGg2AQhEZ2bTpqlVisYuLu/tPP7VufebMtm2nT/MdeMZdfYBQqFZLpX376nTFxdeve3mJxQCurvgdx9nP4zgAiwVAKASQyQCkUpvN3x+goGDv3gMHpkyJje3b9/XXP/64qo5hiW/VKjV1+fJly86fN5tv3MjJadZMLi8b+Hv5o1IBWK0cp9EAGI0aTVrapElicWCgi8srr/Ad8HIF8PcfPjwqatas0NBRo2bM+PjjkhKACxewpBuNWNLE4rIPbrXig8vlAFIpx6EQ+/cfPjxtWmzsc8+9/vqqVRV1iJX41NS1a1eu3LPHbM7IyM7295fLAUJD0Y87A3/7QW7d32AASEkBkMmCgwMCCgsbNRo1auzYHj1cXTt16tp15ky+A+6IoLwTbt6cNu3DDxcsSE5etmzevLlzFQqA5s2xuqtUKIDZfOtiAntTwAQzmQSCzEwAT88+fXr1WrGiRYvfftu8+e6mCQPPSvzhwyZTRkZOjr+/QlF+4KVSDPzNmwAiUXCwWp2bGxIyefL06U8+GRAwadKIEVev8h1oZ5Q7DA0JWbZs1qx580JDp02bM2fx4tJSgLg4DIheb+8LGM5rxIEDhw9PmRIb27//G2+sWMHOz8xcuvTrr93dU1PXrFm5cu/eypR4mcweeLE4MFCtLiwMDn777cmTn3++vgeeUW4NcOTmzVmzli9fsCAp6cMPZ86cO1epBIiMvH+NEApRFKMRwGoVCktKANTqDh06dPjsM7M5MzM3t1s3vT4jIympfXu5HCA4uGIlPiUFS7yra05OcPC7706b1qNHo0ZTp44aVf8DX2UBGCkpU6cuWLBoUUrK8uWLFs2Zo1IBtGyJAVIo7J3i7Rvd0TSZzSiIRmOvQRIJgLu7/fvyAi+RhIZ6excUBAWNHz95ct++AQFTp0ZF/f033wGtMwEYWCPmzMEasWhReTWizM1vHd85unKEBV6vB0hKApBIGjf28cnODgubO3fBgu7dfX2jogYNunaN70BWlQovRTgjJOTDD6dOXbw4LGzmzPnz583T6wHi48v2EXeOmu6kIoE3GABu3ACQSkND/fwKCsLCZs6cN+/55xt64BnVrgGOpKUtWrR27ciRaWmLF69atXatSGQ0qlRyuUCAAQW4f+AZVitASQmARBIR4eV17lxQ0JQp7777yiu+vm+9NXTo9et8B66mqHYNcEShCAlp1mzrVrHY3d3VtbCQ1YTKIBBgDSotBVCpGjdu3/7IkQct8IwaEyAjY8mSb75p2zY5efbs9967csViyc4uKQkIEIsBPD3xnIqUfHaeWAzg7Q1QWPjXX4cOvftufPzAgW+/PXEi3wGraaotQE7OmjU//RQUlJb25Zdr1uzZYzKlp6enBwdLJBh4Ni+4F4L7NICsDxAIdDqxWCrNzd29e9euVavi44cMGT9+yhS+A1dTVLkPSE+fO/fzz9u1y8zcuHHDhoMHjcabN9PT/fzKm7my4ajVCqDV4rFcXrazttnufb5Oh4tseXkAvr6DBg0ZMmVKePj27WvWrFzJdyCrSqUFSEoaPXru3NDQ3Ny9e3fuPH7cZsvKKi4OCZFKAYKC7l4kuzOQYjHODQoLAQQCmQznBUaj0Yjfubvbz3OsOWy+wIQzmwWCggIAH5/Bg196aebM5s23bl2zZulSvgNaWUQVD/ybb86e3aFDbu7u3Tt2HDtms+Xm6nSNGkmlAI0alR3v38mdw8mkJACpNDw8ICA9PSho8uQJE558Uiz28XF1LS4uLLx8+dChbt3EYgAPD/w7xxphs9mXIJhQWu3Vq2fOPPPMrFlDhowcWVKyZs2VK//8c+oU34GtKOXWgKSkkSPfey80NC9vz56dO0+csFpzc43GoCCZDMDXt2Iz1+RkALE4JMTbOz8/LGzevLlz+/Tx9R05csiQM2fY+deuvfrqmDE//piV9cMP33338ssqFUCrVvalDI67u2m6s0ZYLCJRYSGAt/dLLw0aNHNm8+Y//9wQaoRTARITX3tt1qyHHsrLO3Bg1679+zkuP99k8vWVSDDw5ZX4O2eu3t6ZmWFhc+YsXNi9u6/vyJGDBjkfTl6/PmzYhAkbNmRkfP/9+vXDhyuV9iUOiaTsEsedq69WKw5bLRahsKgIwM2ta9cuXaZPb9XqxIlt25Yt4zvQFRYgIWHEiGnTHnssL2/Hjt27t20DKC4G8Pe/c0esciV+1iws8ePG3VniyyMubsiQUaN+/DE7e+vWzZsrViPEYvsM3GJBzxWKVq0iIpYulUhUKnf3rVtbtTp9euvW8+f5DvztuN0dSFdXieTFF3FHzN9fLAZwc8Pv2APfOZ53LPFicePGXl4ZGWFh8+cvXPjoo5UNPCMycuvWr79+5ZVGjYYNGzPm2291OoDLl9EHi8Ve8pk/rGCIRABqtb1GGI2FhampM2YIhQEBSuWbb/Id8HIF8Pd/883hw2fMCAsbOXLGjM8+0+kALl60t/WspDmWeIkkJMTHJy8vLGz69HnzBgzw9R0x4sUXExKq62B4+Pfff/LJyJF+fkOGDBu2ZUtpKUBsrH2UdKc/bH/gxg0AmSww0N9fqw0IGD581KhevVxdH3740UdnzeI74JUmKWncuPffX7Hi6FEAiYTjzp4F6NiR46Kj8VcJp083btyqVVpaTs633+7c2aRJbfuDfcTXXx87BiCT4a80OnfmuFOnAEJCOO6ff4KDIyIKCjIyPvxw/foOHfiOX42RmDhy5LRpq1cfPgwAwHGnTwcFtWqVn5+dvW7dtm0PP1zX/ly7NnTo2LGbN//xB/rzzz8BAS1aaDTp6QsXrl37+ON8x6vWSEqaMGH27A8+SEv76KPPPuvShW9/rl2Linr77c8/T0mZPHnBgl69+PaHIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIIga4q5XF7drt3r1nj2PPYZHLAVh8+ZohcKytqI5MerscW49z53vWwfAtEIAAJMmXbw4ceKAASdO8O0pw0l+o9270Xp5oWVv8s/ORssCX5m0PLUJCzzLXMCO/fzQPvJI2efy9ubXXztOBGAl5Pnnyz7YBx+gPXQIbVAQ2jtfo80HrEampaHt2RMte2u6QlH2ueoPTgRgqcp37Cj7QC+8gPbIEazKR47w/QAMbDpbtCjrJws8KzD8pWB3htP8AfhArApv24aWvRI4MRFt794oBDuue9DPpk3x6OBBtOz4r7/QDh6MfrImtP7gNItSWYfHjEHL3rvPHnDnTgyAj09dO172vjt3lvWL+TlmTH0NPKPcNFb4ALGxeDR+PFqWAaNtW7Rbt2JAZLLadrjsfbZuLesH82v8+LJ+118qnEcMHyg6Go8mTUKbk4P2ySfRbtmCAWJtb81R9rpbtpS9L/ODDTOZn/WfSidywwfctw+PWGZsgwHtoEFoV6/GgMnl1XWw7HVWry57H3bfqVPL+tVwqHImPXzg77/HI1Yj2HzgrbfQvvdezbjJrsOuy+7DSjzzo+FRY9lUsaTOno1HS5agNRrRLl+O9uxZtGwC5ww272ATKFbTWNv/3nsYeDYvabjUeDpbFIItYTgm3ywpQVteH8Hyr7q4lP189WoMPKtxDR9x9S9xL2bMQMsCOGoUWhb4lBS0jjNoNqMNCyv7+ddfl73ug0ON5xPGEsqakD17yn7LlgL69EHLUqAwyz53XDLYs6fsdR8caqkGMBwT1rLOs6AAA5qfz77BpsvxPGfXeXCo8RpQFsfAsdRrzrLMs89Fovtf58GhlgUgyoME4BkSgGdIAJ4hAXimjgW4V0Lc/za1LIDjcJNNpEpL+X7w+kItC8ACzkp8y5ZonSUBZcnK/zs1pJZnwmz1k22QdOuGdv16nPn++ise79qFNiYGrVbLd2DqilqrAbjUkJmJR++8gxaz/wI0boyWbXH+9BPazZvRtm7t4OYDO1io9QdDIS5exKNXXkH78stoWcn39UX77LNoQ0PLXqX295r5grc1FmyC2HI1C/hrr6FlAl27hvbtt1HI5GS+/CUIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiB4otbfmHX2LMDDDz/1FB69+ipa9lZEsxkteycce2v67t2PPAJw7lzDS8pTWWr5rYkMlo21a1e0LPuRowAst0xCAtoHX4C7agCW2IcewqPISLQsjRQLWHk4ZrpYtAhteHjF/j43F+20aWWvJ65ggWE1ib2p9/JlrFEsw179wckD/fAD2ogIftxiKQo3bqyZ67GX/7ECVX9w8trKms+Exy/193mc1ICxY9G2aYO2qAgta7udpRRhiZJZJ5uXV/Z81iSwgLCSzs7T6dA6vqiVJZZmTQs7n13PWaoU9j5S9kbe+ofTURD2BSwQrBN1bFvZg3MctrGxsfh3rM9g2U0dA1NcjOffuIHnBwTg5yx9ruM7pFNS8HydDs9n/rBOm2X8Zv4wGx+Pf1fRvqvuKadTe/RRtCy/ESuJLNEaCyjHYWD69y8bOJZImWXUY2/AZZ/36oV2xQq07M26LGASCdpXX8Xrs9HR0aNoWU1iNdNxODtgANr9+/kOtDPKEcAxhzzDWZvKmiCWqI3h+Ophx2PHrEks8AyNBi0rAEplxfypv3mEGeW8O/rmTbSFhRW7nKsrWtZGs8A5UtG0VGz4yXLFq9UV+7usrLJ/V39xKkDZtpO9Bb08WAllTQJrqqoKa7pYDkp394r9HZtHsL+vv1Tw7ekVFcDTEy3LkFHdPADsOqwGenhUzt/6n/qwhgVgAaopAdiwlAng5lY5f1lNrL9UUADWppaHqys2XazpqX4NwOuxQQDrY8r3t+zf1V9qXICyx8464YrimOynogKwHPP1nwoKUNHhnGMnWVxcPfdY58twHH5W11/+qWQf4JiA2RE2A2ZUtwY4NmEV7QNSU2smPLVPJQWw5/+9N44ToorOH5zh2AQ5pjh3hA07q3vfuqOCArDhXHlV27EGVHce4FiDymuC2ATQsemqv1RQAFayyhNAKsU1GzbTrW4gHPuQ8gRgE7AHVoDyRkNsjYetCVW3DygsREHZ/EKluv/5rIBU9751R7kC4Hiadb4ZGfc/mwnAliSqLwBaNroqT4CcHPS3/i9BMCqZyK38JghtTQnANoLY6KeifUDDoZICsDbWGWxZmTUZ1Z0JMwHYKqjjMrUjFZ0w1h8qKUBFl3dZk8E60cqOhtgqbEEB2oouQ9f/5WdHKikAq+LlbfGxGsBKcGXzB7M2nNW4igrABGs4VFIANrwrr61lNaCiAjhu0DCBWSdcngCsrylvolj/qKIA5fUFHh44GmGBdwyMY8Adx+0lJfj3rAkrbyOGCd1wZsCMSgrAOtXyBPD3L3vs2Aew0RLDsXN1bOLYqMoZLPANrwmq9I9zcWLEfjnHfsXgCAtEfDzatm3RsmEkK/FXrqBlv1hjw03WB7Df84SEoGU/W3Hk6FGsMT168BnMqlDFH+eWVwPY1iT7WYsjbFGtc+d7f88mdB07Vswf1gQ1PKooAMuQzYRgM+TylqtrCvb7H/bLt1On6ua+BEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQDZB27Vav3rNn3jy0o0fz7U9lqfWEzrUFBnzDBjwaPrzstyNGXLw4ceKAAez7+kuDEwADz9Lcvvnm/c+u/0LUewEw4Oxti3v3omUp0itK/RWiku8NrXswcOwFsMHBVbvKt9+ikFFRfD+PI/VWAAzY0qVoIyNRCJbG9vDhql21/glR75qge3eu7M24ISEoREkJnsfS4j7zTNXu9vbbeL116/h63npTA+4/qmFvY79+Hc9zccHA9eyJn1e1RnTpwvdz8y7A/QPvCHsndXWFOHAA7aRJfD8/b01Q5QLvDJYxIzy8Yk3TgQN4Xp8+fD23I3UuQM0E3hFnQly9ip9bLPg5e4l4/aHOBKidwDvCkgyxJom9nZ0NZ+vq3dYVp9YFqJvAO/LjjxjwV1+tm/tVnVrrhPkJ/MGDaN96q27uV31qvAbwFXgs8c8+Wzf3qzlqTAAKfNWodhPET+DZcLLhBp5R5RrAb+Drzzi+ulRagMqtx9cUD17gGRUWgAJfOzgVAAPO8nt99RVaCnxNU04nPH8+Wgp8bXG7BmCJZwmTLRa0CgXaEyfQtmpVO2789wLPcKgBLOCXLqH19cXAtG5d9vOa4r8beIaDAGzzOzwc7bVrWDOYEGw1sbpCUOAZDgK0aXPv01JSakYICrwjDgK0bHnv01jTVFUhKPDOcBCgvE62PCHi4sqe//vvFPj7I8BAsgTLf/+NtlOnyl2GddLJyWgXLsTAT53K9wPWd27VgNBQtM76gPJge7BWKwW+ctxKZ9u9O1rWxLCEygkJaK9fR3v5clnLPmdpbcXisn9PlMetgLHN67Fj0f7zD9rERCzRLJU5QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRDEf496l0mP0anTtm0LF3755enTqamXLr38skCgULi6lp+Eh+MAAAQCgOLi7GyBYNmyPn3Gj58xY9q0du169+YvY54zxHw74AyRSCgUCn19AUQiiUSt5jiRSFwpb4VCiQRAJAIQCt3d+X4eZ9RbATiO4zhOpwPgOCz3HIelu+JXsNmwRnCcwcD38ziD91SG/3VIAJ4hAXiGBOAZEoBnSACeIQF4hgTgGRKAZ0gAniEBeIYE4BkSgGfqrQAWi81mtQIACASCertrUX3qrQBubjKZUslxAFYrS6xYOXA5WqkUi6XS8jdy+KLeChAcrFJ5eOj1AFar2VyVK+AGTm6uwVBSUn9TsAgefXTbtgULvvwSQCgUidzdceOjao9cfTgOS6zFEh+v1ebmPvFEWppWm5/fuDHujFXmWlhzwsJcXb29z55t1kyt9va+eLGkxGw2GlmyorrHYrFYTCaZLCDAxcXTMy5OALBixeDBHAcgFuOWX2V3nmoamw0bDJkMM1tKpRgu1idUFIFAKAQAMJlKS9HivphQKOS13qMfKpWbm79/ZqZYIFAqXV2Li3HP1c2NfwFwSx2AbbBXNvAMtpUpkcjlaFm55/f5xGKZDMDLS6FwdU1Pr5d9QG0FiO+CdS9/6qUA/yVIAJ4hAXhGaP8lGVGXsLiLAYqKsrNdXe3DUJuN784K769S4e/ZZDKVCv2q3GhIKMTn0emKigAAjMaSEvyG3+JmNhsMAKmpAAJBcLBgxYoLFw4eHDcOQCgUCHAiBlD3vyQTCgUCgYDjpFKhUCw2mb79Njb2r79Gjjx3LiMjLu6hhwDkcheXylzRYNBqAZ5/PiLiscd++aVXr6Cgli1//91gsFrNZpmsrp+PgWtccrm7u1Qql6ekiKdMad++Pv5o9Z13jh797rs2bc6dS0w8c6YqApSWajQAgwc3afLQQ9u2vf568+ZdumzZwvdzOVJvO+ErVwoLMzNdXQFksqotHGATlJ2t12u1vr58P49TL/l2wBklJdhW4hoV397UHvVWALGYBZ7/pZHapN4K8F+BBOAZEoBnSACeIQF4hgTgGRKAZ0gAniEBeIYE4BkSgGdIAJ4hAXim3r4rQq+3WEwmT0/7L9rwB00VB//ObLbZrFa1mu/ncUa9FSAkxMXFw+Ps2cxMd3d//+BguVwuV6v1+vL+ji1dl5QIBAKBQuHuLpMplQkJfD8PQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRANl1pPZ9O9+65dH30UEXHpUk5OYuLhwwUFJpPBoFIJBBKJXG4wsJQ6HFdSUlioVLZp4+0dGpqYOGlSly4vvfTMMyNGNG/epUthId+Bqi1q/Y1ZAoFAIBDI5ZgJIygIQCQSiQA4jiVoYDmN8FggABAIwsLw3w9y7oxbT13bN+A4juM4kwn/ZTDYM2I4swAcp9FwnD0d54NMHb01kZXyimbw+u8klqPXVvIMCcAzJADPkAA8QwLwTK0LgOP6yv+dzfZgJ3Bj1LoAZrPNZrEA2Gz21wrfTxAc/wMoFGKxVMp3eGqfWhfAzU0mUyrz8hQKgUAotNnseYEdZbDZbDYAFxexWCo1m195pWnTRx4pKOA7QLWNuHv33bs//LB5cwAAoVChwBmpyYRfV31ChPmBLRa1WiqVy5s0EQgEAuEtue/dtEgkUilAfr7FYjZLpaNHHz363XcdOsTE5ObeuKHTyeUSiVQqFjv764r5w3FGo8ViNstkHh4ymUKh0ezb17//lClJSbwJcOlSVlZS0rFjuEbj61tTAuBajsViMtlsVqtYXFwsEAgEMpk9Q7ZjG69QqNUA8fGlpcXFISHp6VevHjt28qRSKRZLpVhrOE5c5bUrXJPiOJvNbDaZZDKVSiZTqWJj8dtWrXgToKDAbDYYXFwAbDaRSCjEwMjl1b80xwHgG/9RRizhzksw+1woFAoBdDqz2WxWKHQ6kwlfWl/d5QmBAK9gNptMACaTUCiR1MRzVg8xLgtrtbg66eJSm+lj7Ytt9/8eqenwMAEAhEIApVIikck0Gp2udp61ooixZHFc7S+AVVbWmvbHcUGwfiz4iXEjxMfHnrm6pmoAW0wWibDlVird3Mp+X/Y+rJNmf6fT4TaMzYbn2Utw1WB/b7EYjQC5uRaLxeLtXfshvj/itm29vYOD4+Jw+8PTEwNjNjOnK3tBFlSZTCgUiYzGkhKbzWJRqeLi9HqNJjDQHui7/9JqBRAIOA7Aao2I8PBo1Cg9XaUSiSQSk8lsttlsNomkegJwHMdZLCaTVCoWy2QqVUrKv//yK4Bg48b4+OhoDw90UCLBEFZdADbh8vZWKNRqozE3V6fTaiMjZ878889vvjl+PDfXZNLrlUo26rFTUlJQANCmjZdXcHBi4gcfPPXUiBHduxcVGQw6nUZjtXJcdQRgG59mM8dxnFSqVAqFQqFe/+qr4eGPPqrR8CWAePjw5s27dq29Pdfnntu7d+XK7Gxs4gQCAKEQmyTHeTE2STIZbkRqtSaTXp+ZOWxYeHjnzg/uzlitz4SzsvR6jcbV1WJhUzEcZt4NfmsycZzNJhYbjVarxeLuzneAaps6WIqQSpXKso1ZRTr5+jFGqX1qXQCb7b+wtV51aD+AZ0gAniEBeIYE4BkSgGfq4LehbHkBlwLsazJ2y860f85xbObKd4Bqm1oXwGCw2cxmmcxiMZtNJrmcrccD4LKwXQCz2WgEsFoxj7DZXL2lh4ZCrQvg4SGVyuU6nYeHTKZSxcQIBEKhRCKVSiQSiUxmNLJyr9GYzWazUuniIpe7uKSmymQikUTC1qQIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiCI/yx1/oLgggKtVqsVCvV6k8lkCg52dVUqlUq1mr24DN+0a7PpdEaj0VhQEBDg4eHpmZXFd6Bqi1oTICenuLioyNs7K6uwsLBw4ECdzmg0GHr2LC01Go3Gtm0NBpPJZGraFF9eJhbfKQBmELDZbDaNBrMnXb8uk0mlYvGZM35+bm4eHr/80rSpv39AwIEDfAewutSYAHl5Gk1xsb9/YmJWVlbWlCnFxaWlJSWjR5tMFovV6uYmFAqFAgGASIRvSReJ8C3qjhnz7C/txrfJWa2YQYmdhwmiAcRioVAkunzZ29vV1dX1888ffrhp0/Dwdev4DmhlqbYAV66kpt64MXbszZt5ebm5H31ktVqtVqubm1QqFkskGCjMzVSzjmMNATAazWazGUChkMmk0jNnmjcPCAgM/N//QkJ8fHx9T5/mK7AVpcoCREfHxV29unFjfr5Wq9G8+SYLuEQiFmO6tfvlomFt+qVLaDMy0BqNaF1c0DZtirZ9e7SYFutemM0Wi8UCoNfjazFbtgwKCgmJioqICAwMCtq4ke9AO6PSAhw9euXKpUt792o0Op1O16+fUimXy2T4DlCWj+luNm9G+/33aI8de/rptm3bt2cBd84ff8TEXLjQqBEe9emDdvRotJ07336QW09isWDNuFOI4ODx48PDAwICA9eu5TvgjlRYgDNnEhLi47/7LiOjoKCg4I03XFzkcud5vv7+G+3kyRjoU6dq2nEUZvhwPFq9Gq2bG8vearFg38GEaN8+LKxJk0GDQkN9fHx9d+6suxDfn3IFSErKysrKGj48JubmzeTkDRtcXGQyuZylBnQ8++uvMeCshNY+KETjxnjERkXNmzP/TCZsmrCJ4rju3Vu3btMmMNDVVaFQKjMz68pPZzh9eTcOFz08rl/PysrIWL9eJsM2HpNiOp79zTd1HXgG3jc5GY86dUKbksL6IKmU9UkAAALB1aupqTdvbthQ1346w6kACQlZWRkZ8+cbDCaT0SiVymQSCUtyZefffzEAo0bx/SDoR3ExHvXujRYHrxwHoFLJZDIZQE5OUVFRUe/e2dlFRYWF3brx7fddAuh0BoNe7+aGE6hx43Ai5GxU8/rrfD+AIyhEfDweLVzIPnecX6Sm5ufn5c2axbe/dwmQlpafn58/ZIjBYDabTBKJRMJSEd7J9u34oFev8v0A92fxYrQFBazwKBRYk/PzNRqNpm9frVav1+vZKKvuuUsArVavLy197jmhEGesLMV4WerfcM4RLCCYuxtg06bbDyzEiSEmdgbAecyzz/Ll520BNJrSUp1OLMYS0a6dWCwSYXLPO8nLQ3viBF8OV439+519U1JiMOj19vlEXVOmBggEgYFms9VqtQYH33u0c/582ZLVULh8GS1LHWFfi9LrjUaTqVkzvjy7LQC6o1bj+NlZ6nD+x81Vg+XKzM6+81OBgC1/l00rWpfcFqBiWYTLXzqon7Aae7f/LNc8X57dUQMEAqGwvKSDbJGsoYHZ7AFcXR2/4bj7LxvWNrcFwB2q3Fxcf9fp2JpKWdiUv6EREIDW15d9UnZfITeXL89uC4AbG7m5CoVUKpMlJ7PFrLJ06IBrL2WTk9d/HnnE8RObDVdNlUq5XC7nbz5z1zzAw0OlcnH5+2+z2Wq1WBy/Zeuf/fvz5XDVGDz4rge/tUPn5qZUKpV//cWXZ3cJ4OXl6urqun07wP1y+k6ZwpfDFQVranAwHj3/PPvcYrFarVYArOlFRV5earVaffgwX37eJUBgoKenl9fBg2q1QiGXp6WZTLjlV5b27fEBX3mFL8crBpux46xGIGB9HYCfn7u7h8d338lkEolUajDw5aHT1dDGjX19/f3nzjUYcD393p3yN9+U3bHiH/TnjTfwaMAA9jkr+TKZVCqR4PP5+S1dyre/TgUIC/P19fPbsMHbW61Wq2NjS0uNRoPBcSNGoUB7/Dg+uLc3Xw+C9+/VC4+++459znFYgKxWpVKpBGjdul279u3fflulksvlcv4nluVmU23dOiQkNHToUJsNF+XYDlPZGsE2z//+GwPRpk1dPQDeLyoKjw4eZJ9zHJZ4qTQ4ODgYwGC4fPnyZQCN5ueft21jPwbgnwrvCd+8mZubk/P66+fOJSUlJHz/vUqFW5M4jnZcNWX/mjcP7dq1uIbElgSqDgY8MhKP5s9HO3So/c6sqQkKCgoCsFgKCvLzAWJjhwx55RUAgyEpKSnJYOjR49NPP/100KAOHaKioqJ++63eC8BISsrOzsr63/9iYm7cSE5es4ZtVdp3zO41r8zPR/vzz2jZ6mRMTNnvWXevVKL180PbpQvavn3RDhp0y/3b/uMPGgHk8tDQ0FAAkykrKysLICnpf/8bPx7AYIiLu3YNgOPUarUaoLQ0Nzc3F6B793nz5s176aVHH50wYcKEHTvqvQCMtLT8/Ly8QYNQiO+/N5stFqtVoWBbf2w19f6TfBZw9jshtlrJljyYAPdw/FZfxH6GYrFgAdDrY2IuXQIoKPj00zVrsMQnJwPIZNgUMdFMJq1WqwXQ6bKzs7MBnnxywYIFC158sXPn8ePHj9+1q64EqHJG7aAgLy9v7x07nniiRYvWrVu3Dgjw8PDw2LULN/MBSkqw02YzznvD8gWz8TrrS5wHno1mNJrS0tJSAI4TCoVCgyEyMjAwKGj2bKXyyJE//9yyJT09Ojo6GkAqDQnBq3Mc9mOsb3BxcXEBUKl8fX19AY4cmTNnzpydO8+f//rrr79+6aW6EqDGf5ybmVlYWFDQu3daWl5eXt5bbxUUlJRotX37Yuctk7G+gq3Hs87csaawpoz9BJHNXFUqqVQmy8ry8XFzc3P7+efQUB8fP7/Vq/FX1ikp7O9/+WX06NGj9+27fPmHH3744bnnvLwiIiIi7Dti7PoCAdsh02g0GgCDobi4uBigT59PPvnkkzFjWrceOnTo0C+/bDACOKLR6PWlpWFhhYVarVb7xBMlJQaDwdC5M/5aulkzDIS7O2tS8HcMNhvuRWdlYZN27RoG+ORJT0+1Wq0+ehR/LKDVlnf/AwcmTpw4ccuWs2fXr1+//tVXvb0jIyMjAYRC3PFjQrDj0tKCgoICex/Rv/9XX3311ZgxrVsPGTJkSM0LUef/P4AvDh6cMmXKlE2bTp/+7LPPPhs2zMenRYsWLe4WQiDAY4OhsLCwEECny8nJyQHo12/9+vXrx45t0+bll19+ef36mvKryn1AQ6N37xUrVqx4441Ond555513Nm/OzY2NjY0FsFpxqYU1RayPUCg8PDw87H3E/v0TJkyY8MUXWJOmTq0pv/4zAjBQiGHDunadPHny5G++KShISEhIALBYDAac6bP/t4BCyOUohELh6enpCXDw4KRJkyYtWxYdvXLlypXvv19df/5zAjCefvqDDz74YNSoxx6bOXPmzE8/tQuBozjHGiGT4fzBzS0sLCwM4OjR+fPnz1+4EIWYO7eqfvxn+oDyOHZs0aJFi9asOXHio48++uh///PwaNy4cWMAsVihUCjsEz0mjNms0+l0AFotTvi6dZs+ffr0BQsef3zmzJkz2Qy9fEgAB44f/+CDDz745JO//lq8ePHiCRNYiZdKVSqV6m4hLBa9Xq8HKCq6cePGDYCHHho9evToTz559tmVK1eunDixvPuRAE44ffrzzz///P33Dx2aNm3atIUL3dxCQkJC7BO4u4XAPsQuxKhRo0atWYNCTJjg7D7/2T6gPDp1evvtt99etKhXr+XLly+fO1ejSU9PTwcwmbDpsfcRKIRYjEswHh5YY86eXbdu3brx42NitmzZsmXcOGf3IQHKoWPHcePGjVu0qGfPjz/++ON584qKkpOTk+0zZzZvYPMIkQiFYE3W1avbt2/fPn68s+uTABWkY8exY8eOXbiwX78vvvjii8mT2QTNYMCZM5vQsRm91YpbnyhIaSnf/j9wXL68devWrWPGLF3q6enpyXFLlqhUKpXdss9TUo4ePXqULaPfDXXC1eTmzejo6OjevS9c2LBhw4a33mKfd+gwYsSIEV9+GRzcpUuXLvadOoIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgiEpQY++Mi41NTb15s2lTtVqhUKmaNJHLpVKJRKGwWKxWi8VkSkzMysrKSklxcVEo5PLk5HbtwsKaNGmo6XFrjioLcP16RkZ6upubTmc0Go29emFChiefxKxKERESiVgsFstkVqvVarWazRqNXq/XJyS4u6tUSuWpU5hIeffujh2bNYuIqH52pYZKhQWIjU1PT00VCjEnzDvvZGTk5+fnT55ss3EcQFgYy76K+S/uTBCNSXMwI4Y9FQl+mp6O53z5ZUiIt7ePz8cfR0QEBgYH85dasK4pV4Bjx65cuXw5MNBqtdkslp07MUlPp05SqVgsFmMuGJGInc3y8rL0sCw9lVqNAW/bFmXx88NUJQBmMyaGwyYrNrZRIw8PL6/hwyMjg4KCg0+f5jtAtY1TAS5cSE5OSvL1xaQ8hw5hyW7bFnO3AOA7YmNj8ZW9LGnmzz9jwjYWeDuYgM3DA4/69sX3y06ciLXh4YexCQMQiUQikSg3t1WrkJDQ0MceCwnx8vLxiY/nO1C1hVMB/vzz8uWYmL//1ukMBr2+c2elUiqVy1nGvC++wLMmTcKAV73JQGGWLMGsSrNnY5Iflm725s2OHcPDw8Pbt3d1VSiUygevr7jr3dGJiVlZGRljxxYV6XQlJZ07KxRSqVTKAv/llxjwceOqG3gGXue99zBd1eLFLBGcVqvXl5aGhCQmZmZmZFQ9Q0V953YNKC7W6UpK1OqzZxMTr19PSMDMeL6+mKIwPr5HjzZt2rWLiKhth44ciYm5cOHwYcw79vTT+KnF0rFjeHjz5k2aeHmp1a6uqal8B66mEGZmFhbm54tE2NY/95zBYDZbLL6+OIxkeb2WL68rh7CTnjdPKsXUhEaj2Ww2i8WFhSUlJSUvvsh3wGoaIY7bGzfW681ms/mpp3Dczr5mbS5LwllXREfjqCk2ViQSi0UigLw8rba4uHt3vgNW0wix7W3cGHM0NmtWNmHzhQvYRms0deUQ3o/NIi5fZikPjUaz2WIJDT17NiEhPt4+8G3oCPEBVSqRSCAQCuXysl8XFPDrXk5O2cTRmIsS4AESwGKx2TjOaLRaOc5mY+lkGSytLF94epY9tlhwjm1vJBs6QoPBZDKZkpI4zmbjuOTksk1Qhw44Tlep6tox9KFNG6sVlzikUpFILMZ5QUTEAyQAhjslRamUy+XykydFIlyrQXx90T77bF05hIK3a4dNTatWFovVarMBeHqq1S4u0dF8B6ymEYaF+fr6+RmNmCZ2504cfhYV4TyAJaWZPbuuHML7zZ9vMplMJpNAgK09x/n7e3h4edV9yvHa5vZMuFEjDw9Pz8JCDw8XF7V61SqDwWw2mVhT8NBDWDLnzastR/7449KlixfHjrXZjEaT6YUXbDaVSqkEaNasbdu2bT//3M1NqVQqr1/nO2A1zV1LEU2a+Pr6+S1d6uHh4qJSXbtWXIyp+jAT9fz5KMTChTXlAF5vzBibzWAwGNatE4sbNfL3BxCJSkv1eptNJDp16u+/ay+jNd84XYzLyCgoyM9v1+7ixRs3kpOPHbNYLBar1c3NxUUuZ4tyAAcO4Goomyn/9ReO4x1HU3Yw4F27YlMzfrzNZjKZTC+/LJUGBQUFAYjFbm6urgCXLvXu3acPx5nNV65cvXrhwkMPzZw5c+aAAV27Tp06dWpaGt+Bq3UBGCkpOTnZ2eHhyck5OVlZu3drtaWlBkPLllKpWCwUAkilYrFEwtruK1dQmGvX8K8zM9F6eWFTFhGB33foYDJhImWOUyqVSgCBQKPRagFSU+fMef99AJMpJubSJQC9HmfCcrlarVbn5HTqNH78+PG9emGqwYsX+Q5grQvAKCjQarVaT8/ExKyszMxZs3C1dMwYvd5kMpnUapFIJBIKcYNGeKthE9xxdbbEwXbOZDKRSCw2mcLCWrVq1WrNmuzszz77/PO4uJMnp0yZOvWrr9RqTDnu4uLn5+cHkJ8fFxcXByCXe3p6et68+fTTS5YsWfL00y1aDBw4cGBCAt+BrHUBHElKysrKzGzWzGCwWMzmZ58tKSkt1esff1yvN5tNpqZN8SyFAq3RiFuSN296e7u5ubqePKlUSiQSyW+/BQV5e/v6XrnCrrtz5+DBQ4YMHJia+u+/58/v3Mk2N11dsYnKz4+Pj48HUCp9fHx8ioqefHL+/Pnz+/Rp2fLFF1988e+/+Q5onQngDFyrEYttNgAANqew2Tp2bNaseXOLpaLXOXBg0qRJkwYPjovbvXv37p9+wuylQiETIjf3ypUrVwDU6sDAwMCcnK5dp0+fPv2ZZ9q1e+211167dInvwFaUep/K8NChGTNmzOjT5+rVHTt27Ni3z2azWCwWgcDDIzQ0NBQgLw9TkWMfodU+/PC4cePGDRzYpcu777777h9/8O1/edT7bKo9ey5dunTp/v1t277++uuvv/CCSCSRSCQmE0uc7OUVHh4eDmAwFBcXF6vV586tX79+/a5dJ0+uXLlyZefOfPtfHvW+Bjhy4sTSpUuX9uhx/vxXX3311f79ZrNer9fLZJ6ezZo1awZQXIzCYBpZna5Jk549e/Z8+eW+fdeuXbv211/59t+Rel8DHHnssRkzZsz488+OHcePHz++f3+ZzNXV1bWkpKAgMTExEcDNDZsmq9VgMBhUqmvXfvnll1927jxzZt26deu6dePbf0canAAMbOMPHerWbfr06dOffhozWGs0ubmxsbGxAJ6ezZs3bw6AA2CJ5OLFTZs2bdq4kW+/HWmwAjA6dIiKioo6ffrxx2fPnj17wAC12t/f37+wMD393Llz5wBKSoqKiooAJBKlUqnU6fj294EnPv633377LSJi8+Z+/fr1279/8+b+/fv337//xo3jx48fDw/n2z+CIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiC4J11665ePXbskUdiYgoKMjLUar79+c9w8mR2dnJyWBjAokU9e3Kcp+cXX4waFRt74UJ+flqaqyvf/jnS4F5d7IzERK02L08qbdly48bJkxMSjEazWa8PDgYwm41GAIXCxcXTMzl5+/Z+/SZP7t+/b9/Q0LZt7a/N54sG/+JWxoABv/yyfPmhQ0ZjSUl+fnAwgFrt7Q0A4OkZGAig1xuNOl3jxn37bt06f/6FC3Pm/PPPrl0jR/Ltd4MX4Kmnfvll2bIvvrhyJTn5/PknngDw8goOBgDATB126+aGWdF0usJCsXj79qSks2dHjODb/wYrwIQJJ0/+9NO77x45cuXKn3+OGQPg4xMSAsAybtzxiLdy3ufm3rwJ0KhRcHDr1gkJZ84MGjRnTs+efD9HgxPgq6/i4k6c6Nnz00+PHPnmm9Wr7SWbBZpleGLHGk1uLoBIJJe7uBgMR4++9NL773fvrlZLpQpFaSnfz9NgBNiz58aNmJimTUeP3rt3xYoDBwBcXTHwEgnmgGUlXyDAJEJ6vVYLAGAy6fUA+/a99NL77z/1VPPmbm6+vhkZfD8PQ8y3A+WRkqLV5udLJC1afP/91KnHjwOwECuVOKhkbTxLQmqxYBaz4uLsbIBPPx04cNasUaOefTYoqGXLU6f4fh5H6n1e3q1bw8MNhj//LCwsLMzMbN0awMMjIADAHnhHcnNTUgDeeqt79zfeWLFi8eJOnV54YelSvp/DGfW2CerVa8+e5cvXr8/IyMpKSHjiCeeBt3eyKSkA3bu3afP007/99uWX3bu/8cbUqXw/R3k4FWDDhri4kycffbSuHRo37vjxzZsnTvz99/Pn9+176y0AL6/AQADWtd7h+q3A5+enpgKEhDRqFBkZH3/s2MCBs2b17VvXfleVuwTYsiUx8cyZbt2ion788b33Tp2KjNy0acqU33+vbUdWrbp8+ciR3r3XrYuO/umnVasAfHxCQwHsneq9RzcCgVzu4mI0Hj8+ePC8ed278x3QynJbgFOncnKSkxs1eu21nTs//PDQIQAPD39/gLi49PTY2J49g4K+/XbChNOno6Ozs5OSsDGoCfC+TZtOmvTrr6tWHTiAGcEAAKRSZ6MbjQaALTEcPDh48Lx5PXqEhanVXl5ZWXwHtLII4+OLirKyFIqBA/fsWbbs6FF8ZIUCQKXy8AAA8PYODQVIS8vPT03t2LFr182bp0+/cGHLlvj4U6ceeaSqN46PLy7OzpbJevXavn3RomPHAMRiqRQAQKVydwcAsNkwG5/j6KaoKDsbYPXqvn0nTRoxolevwMAWLerf6KbCAnTsuGPH4sWHD2dlpaZevRoebm9zHafy7u5+fgCYWdjX97XX9uxZtuzMmfff/+efnTtfeaWyNx4wYO/eVav++EOrLSrKzAwMtE+oHDtZVgPy8m7cABg37skn33xz2bKJE9u0eeqpDRv4DmB1ES5Z0qnTCy9s3IijDJsNIC8Ps/XaZ5YIK5EuLl5eAAAymVIJsGjRoUNffPHDD6NG/fHH11+/9155N+zZc8+eFSu++iou7saNCxe6dQPw9sYlBOejmxs3AJ54onXrZ57Zt2/duieeGDZs+nS+A1dT3F6OPnUqOzspqU2b55/fvfujj/bsycnJz09NDQtjTdCdayxl22SrFZuG/Py0NIDHHouIeOyxTZtOnBg8eO7cN99k1582LTp669ZJk5YtO3Lkm29WrgTw9sZFM5Y33rGTzctLTQUIDPTza9Lk2rX09BEjPv00MpLvgNWaAIysLL1eq3Vz69Nn587Fi/fu/fffpKTz5x9/HMDHJywMA4SBt3eOLGMq1pCiosxMgO7dIyMff/znn3v0aNQoImL//vnz//pry5aNGwHkcpUKAEAikcnuvI59dJOTAyAWi8UymV4fFxcV9cknTZs2a+bq6uPDEkQ/OJS7ITN06L59q1d/883PP5879+uvI0bY+wiJBLMFcxwGniVwZmmcdbqiIgAAqxWT2LLOVSSSSO78O1aTDAZcuyktLS4GOHx42LAVKzp3fuaZwMCIiNOn+Q5UbVHuTPjnn/v2nThx5Mjp0596asSIOXMAiopycgAA9PriYoC7VyFZiWZrNS4unp53nmcPPBvdGI0AAMXFubkAa9f27z91alTUgx54RqW3JDdsuHr1+PGhQ6Oi9u1bufKnn+wl2M3N3x8AwGareNpmAIDs7KQkHN1ERX388bp1Tzzx2mszZvAdmLqiynvCR49mZFy71rHjgAG7dn344b59Gk1xcU6Oj499Y4T1CY6wmpCdnZgI0KNH69ZPP713759/vvDCjBkDBvAdkLqm2pvyKSklJQUFfn79+u3YsWTJr79evpyaeunSI4/YO23W1LCagqObsDB//2bNYmNTUqKiVq9u2ZLvQPBFjf8qok+f3bs/+mjbtv37Y2IOH37pJQBfXxQCO1ehUCSSSPT6lJSRIz/7LCwsJMTFxcMDexWiBpk06dixTZs++ADg/fcff5zjAJYs6d2b4/74Iz09Lq7+pxp/YJgx48SJH36YM2fBgnPn9u2bNIlvfwiCIIjb/B/7w7TJ1Po+fAAAAABJRU5ErkJggg==);\n        background-size: 24px 352px;\n    }\n}\n\n.jsgrid .jsgrid-mode-button {\n    width: 24px;\n    height: 24px;\n}\n\n.jsgrid-mode-on-button {\n    opacity: .5;\n}\n\n.jsgrid-cancel-edit-button { background-position: 0 0; width: 16px; height: 16px; }\n.jsgrid-clear-filter-button { background-position: 0 -40px; width: 16px; height: 16px; }\n.jsgrid-delete-button { background-position: 0 -80px; width: 16px; height: 16px; }\n.jsgrid-edit-button { background-position: 0 -120px; width: 16px; height: 16px; }\n.jsgrid-insert-mode-button { background-position: 0 -160px; width: 24px; height: 24px; }\n.jsgrid-insert-button { background-position: 0 -208px; width: 16px; height: 16px; }\n.jsgrid-search-mode-button { background-position: 0 -248px; width: 24px; height: 24px; }\n.jsgrid-search-button { background-position: 0 -296px; width: 16px; height: 16px; }\n.jsgrid-update-button { background-position: 0 -336px; width: 16px; height: 16px; }\n\n\n.jsgrid-load-shader {\n    background: #ddd;\n    opacity: .5;\n    filter: alpha(opacity=50);\n}\n\n.jsgrid-load-panel {\n    width: 15em;\n    height: 5em;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    padding-top: 3em;\n    text-align: center;\n}\n\n.jsgrid-load-panel:before {\n    content: ' ';\n    position: absolute;\n    top: .5em;\n    left: 50%;\n    margin-left: -1em;\n    width: 2em;\n    height: 2em;\n    border: 2px solid #009a67;\n    border-right-color: transparent;\n    border-radius: 50%;\n    -webkit-animation: indicator 1s linear infinite;\n    animation: indicator 1s linear infinite;\n}\n\n@-webkit-keyframes indicator\n{\n    from { -webkit-transform: rotate(0deg); }\n    50%  { -webkit-transform: rotate(180deg); }\n    to   { -webkit-transform: rotate(360deg); }\n}\n\n@keyframes indicator\n{\n    from { transform: rotate(0deg); }\n    50%  { transform: rotate(180deg); }\n    to   { transform: rotate(360deg); }\n}\n\n/* old IE */\n.jsgrid-load-panel {\n    padding-top: 1.5em\\9;\n}\n.jsgrid-load-panel:before {\n    display: none\\9;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/jsgrid.css",
    "content": "/*\n * jsGrid v1.5.3 (http://js-grid.com)\n * (c) 2016 Artem Tabalin\n * Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)\n */\n\n.jsgrid {\n    position: relative;\n    overflow: hidden;\n    font-size: 1em;\n}\n\n.jsgrid, .jsgrid *, .jsgrid *:before, .jsgrid *:after {\n    box-sizing: border-box;\n}\n\n.jsgrid input,\n.jsgrid textarea,\n.jsgrid select {\n    font-size: 1em;\n}\n\n.jsgrid-grid-header {\n    overflow-x: hidden;\n    overflow-y: scroll;\n    -webkit-user-select: none;\n    -khtml-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    -o-user-select: none;\n    user-select: none;\n}\n\n.jsgrid-grid-body {\n    overflow-x: auto;\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch;\n}\n\n.jsgrid-table {\n    width: 100%;\n    table-layout: fixed;\n    border-collapse: collapse;\n    border-spacing: 0;\n}\n\n.jsgrid-cell {\n    padding: 0.5em 0.5em;\n}\n\n.jsgrid-сell,\n.jsgrid-header-cell {\n    box-sizing: border-box;\n}\n\n.jsgrid-align-left {\n    text-align: left;\n}\n\n.jsgrid-align-center,\n.jsgrid-align-center input,\n.jsgrid-align-center textarea,\n.jsgrid-align-center select {\n    text-align: center;\n}\n\n.jsgrid-align-right,\n.jsgrid-align-right input,\n.jsgrid-align-right textarea,\n.jsgrid-align-right select {\n    text-align: right;\n}\n\n.jsgrid-header-cell {\n    padding: .5em .5em;\n}\n\n.jsgrid-filter-row input,\n.jsgrid-filter-row textarea,\n.jsgrid-filter-row select,\n.jsgrid-edit-row input,\n.jsgrid-edit-row textarea,\n.jsgrid-edit-row select,\n.jsgrid-insert-row input,\n.jsgrid-insert-row textarea,\n.jsgrid-insert-row select {\n    width: 100%;\n    padding: .3em .5em;\n}\n\n.jsgrid-filter-row input[type='checkbox'],\n.jsgrid-edit-row input[type='checkbox'],\n.jsgrid-insert-row input[type='checkbox'] {\n    width: auto;\n}\n\n\n.jsgrid-selected-row .jsgrid-cell {\n    cursor: pointer;\n}\n\n.jsgrid-nodata-row .jsgrid-cell {\n    padding: .5em 0;\n    text-align: center;\n}\n\n.jsgrid-header-sort {\n    cursor: pointer;\n}\n\n.jsgrid-pager {\n    padding: .5em 0;\n}\n\n.jsgrid-pager-nav-button {\n    padding: .2em .6em;\n}\n\n.jsgrid-pager-nav-inactive-button {\n    display: none;\n    pointer-events: none;\n}\n\n.jsgrid-pager-page {\n    padding: .2em .6em;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jsgrid/jsgrid.js",
    "content": "/*\n * jsGrid v1.5.3 (http://js-grid.com)\n * (c) 2016 Artem Tabalin\n * Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)\n */\n\n(function(window, $, undefined) {\n\n    var JSGRID = \"JSGrid\",\n        JSGRID_DATA_KEY = JSGRID,\n        JSGRID_ROW_DATA_KEY = \"JSGridItem\",\n        JSGRID_EDIT_ROW_DATA_KEY = \"JSGridEditRow\",\n\n        SORT_ORDER_ASC = \"asc\",\n        SORT_ORDER_DESC = \"desc\",\n\n        FIRST_PAGE_PLACEHOLDER = \"{first}\",\n        PAGES_PLACEHOLDER = \"{pages}\",\n        PREV_PAGE_PLACEHOLDER = \"{prev}\",\n        NEXT_PAGE_PLACEHOLDER = \"{next}\",\n        LAST_PAGE_PLACEHOLDER = \"{last}\",\n        PAGE_INDEX_PLACEHOLDER = \"{pageIndex}\",\n        PAGE_COUNT_PLACEHOLDER = \"{pageCount}\",\n        ITEM_COUNT_PLACEHOLDER = \"{itemCount}\",\n\n        EMPTY_HREF = \"javascript:void(0);\";\n\n    var getOrApply = function(value, context) {\n        if($.isFunction(value)) {\n            return value.apply(context, $.makeArray(arguments).slice(2));\n        }\n        return value;\n    };\n\n    var normalizePromise = function(promise) {\n        var d = $.Deferred();\n\n        if(promise && promise.then) {\n            promise.then(function() {\n                d.resolve.apply(d, arguments);\n            }, function() {\n                d.reject.apply(d, arguments);\n            });\n        } else {\n            d.resolve(promise);\n        }\n\n        return d.promise();\n    };\n\n    var defaultController = {\n        loadData: $.noop,\n        insertItem: $.noop,\n        updateItem: $.noop,\n        deleteItem: $.noop\n    };\n\n\n    function Grid(element, config) {\n        var $element = $(element);\n\n        $element.data(JSGRID_DATA_KEY, this);\n\n        this._container = $element;\n\n        this.data = [];\n        this.fields = [];\n\n        this._editingRow = null;\n        this._sortField = null;\n        this._sortOrder = SORT_ORDER_ASC;\n        this._firstDisplayingPage = 1;\n\n        this._init(config);\n        this.render();\n    }\n\n    Grid.prototype = {\n        width: \"auto\",\n        height: \"auto\",\n        updateOnResize: true,\n\n        rowClass: $.noop,\n        rowRenderer: null,\n\n        rowClick: function(args) {\n            if(this.editing) {\n                this.editItem($(args.event.target).closest(\"tr\"));\n            }\n        },\n        rowDoubleClick: $.noop,\n\n        noDataContent: \"Not found\",\n        noDataRowClass: \"jsgrid-nodata-row\",\n\n        heading: true,\n        headerRowRenderer: null,\n        headerRowClass: \"jsgrid-header-row\",\n        headerCellClass: \"jsgrid-header-cell\",\n\n        filtering: false,\n        filterRowRenderer: null,\n        filterRowClass: \"jsgrid-filter-row\",\n\n        inserting: false,\n        insertRowRenderer: null,\n        insertRowClass: \"jsgrid-insert-row\",\n\n        editing: false,\n        editRowRenderer: null,\n        editRowClass: \"jsgrid-edit-row\",\n\n        confirmDeleting: true,\n        deleteConfirm: \"Are you sure?\",\n\n        selecting: true,\n        selectedRowClass: \"jsgrid-selected-row\",\n        oddRowClass: \"jsgrid-row\",\n        evenRowClass: \"jsgrid-alt-row\",\n        cellClass: \"jsgrid-cell\",\n\n        sorting: false,\n        sortableClass: \"jsgrid-header-sortable\",\n        sortAscClass: \"jsgrid-header-sort jsgrid-header-sort-asc\",\n        sortDescClass: \"jsgrid-header-sort jsgrid-header-sort-desc\",\n\n        paging: false,\n        pagerContainer: null,\n        pageIndex: 1,\n        pageSize: 20,\n        pageButtonCount: 15,\n        pagerFormat: \"Pages: {first} {prev} {pages} {next} {last} &nbsp;&nbsp; {pageIndex} of {pageCount}\",\n        pagePrevText: \"Prev\",\n        pageNextText: \"Next\",\n        pageFirstText: \"First\",\n        pageLastText: \"Last\",\n        pageNavigatorNextText: \"...\",\n        pageNavigatorPrevText: \"...\",\n        pagerContainerClass: \"jsgrid-pager-container\",\n        pagerClass: \"jsgrid-pager\",\n        pagerNavButtonClass: \"jsgrid-pager-nav-button\",\n        pagerNavButtonInactiveClass: \"jsgrid-pager-nav-inactive-button\",\n        pageClass: \"jsgrid-pager-page\",\n        currentPageClass: \"jsgrid-pager-current-page\",\n\n        customLoading: false,\n        pageLoading: false,\n\n        autoload: false,\n        controller: defaultController,\n\n        loadIndication: true,\n        loadIndicationDelay: 500,\n        loadMessage: \"Please, wait...\",\n        loadShading: true,\n\n        invalidMessage: \"Invalid data entered!\",\n\n        invalidNotify: function(args) {\n            var messages = $.map(args.errors, function(error) {\n                return error.message || null;\n            });\n\n            window.alert([this.invalidMessage].concat(messages).join(\"\\n\"));\n        },\n\n        onInit: $.noop,\n        onRefreshing: $.noop,\n        onRefreshed: $.noop,\n        onPageChanged: $.noop,\n        onItemDeleting: $.noop,\n        onItemDeleted: $.noop,\n        onItemInserting: $.noop,\n        onItemInserted: $.noop,\n        onItemEditing: $.noop,\n        onItemUpdating: $.noop,\n        onItemUpdated: $.noop,\n        onItemInvalid: $.noop,\n        onDataLoading: $.noop,\n        onDataLoaded: $.noop,\n        onOptionChanging: $.noop,\n        onOptionChanged: $.noop,\n        onError: $.noop,\n\n        invalidClass: \"jsgrid-invalid\",\n\n        containerClass: \"jsgrid\",\n        tableClass: \"jsgrid-table\",\n        gridHeaderClass: \"jsgrid-grid-header\",\n        gridBodyClass: \"jsgrid-grid-body\",\n\n        _init: function(config) {\n            $.extend(this, config);\n            this._initLoadStrategy();\n            this._initController();\n            this._initFields();\n            this._attachWindowLoadResize();\n            this._attachWindowResizeCallback();\n            this._callEventHandler(this.onInit)\n        },\n\n        loadStrategy: function() {\n            return this.pageLoading\n                ? new jsGrid.loadStrategies.PageLoadingStrategy(this)\n                : new jsGrid.loadStrategies.DirectLoadingStrategy(this);\n        },\n\n        _initLoadStrategy: function() {\n            this._loadStrategy = getOrApply(this.loadStrategy, this);\n        },\n\n        _initController: function() {\n            this._controller = $.extend({}, defaultController, getOrApply(this.controller, this));\n        },\n\n        renderTemplate: function(source, context, config) {\n            args = [];\n            for(var key in config) {\n                args.push(config[key]);\n            }\n\n            args.unshift(source, context);\n\n            source = getOrApply.apply(null, args);\n            return (source === undefined || source === null) ? \"\" : source;\n        },\n\n        loadIndicator: function(config) {\n            return new jsGrid.LoadIndicator(config);\n        },\n\n        validation: function(config) {\n            return jsGrid.Validation && new jsGrid.Validation(config);\n        },\n\n        _initFields: function() {\n            var self = this;\n            self.fields = $.map(self.fields, function(field) {\n                if($.isPlainObject(field)) {\n                    var fieldConstructor = (field.type && jsGrid.fields[field.type]) || jsGrid.Field;\n                    field = new fieldConstructor(field);\n                }\n                field._grid = self;\n                return field;\n            });\n        },\n\n        _attachWindowLoadResize: function() {\n            $(window).on(\"load\", $.proxy(this._refreshSize, this));\n        },\n\n        _attachWindowResizeCallback: function() {\n            if(this.updateOnResize) {\n                $(window).on(\"resize\", $.proxy(this._refreshSize, this));\n            }\n        },\n\n        _detachWindowResizeCallback: function() {\n            $(window).off(\"resize\", this._refreshSize);\n        },\n\n        option: function(key, value) {\n            var optionChangingEventArgs,\n                optionChangedEventArgs;\n\n            if(arguments.length === 1)\n                return this[key];\n\n            optionChangingEventArgs = {\n                option: key,\n                oldValue: this[key],\n                newValue: value\n            };\n            this._callEventHandler(this.onOptionChanging, optionChangingEventArgs);\n\n            this._handleOptionChange(optionChangingEventArgs.option, optionChangingEventArgs.newValue);\n\n            optionChangedEventArgs = {\n                option: optionChangingEventArgs.option,\n                value: optionChangingEventArgs.newValue\n            };\n            this._callEventHandler(this.onOptionChanged, optionChangedEventArgs);\n        },\n\n        fieldOption: function(field, key, value) {\n            field = this._normalizeField(field);\n\n            if(arguments.length === 2)\n                return field[key];\n\n            field[key] = value;\n            this._renderGrid();\n        },\n\n        _handleOptionChange: function(name, value) {\n            this[name] = value;\n\n            switch(name) {\n                case \"width\":\n                case \"height\":\n                    this._refreshSize();\n                    break;\n                case \"rowClass\":\n                case \"rowRenderer\":\n                case \"rowClick\":\n                case \"rowDoubleClick\":\n                case \"noDataRowClass\":\n                case \"noDataContent\":\n                case \"selecting\":\n                case \"selectedRowClass\":\n                case \"oddRowClass\":\n                case \"evenRowClass\":\n                    this._refreshContent();\n                    break;\n                case \"pageButtonCount\":\n                case \"pagerFormat\":\n                case \"pagePrevText\":\n                case \"pageNextText\":\n                case \"pageFirstText\":\n                case \"pageLastText\":\n                case \"pageNavigatorNextText\":\n                case \"pageNavigatorPrevText\":\n                case \"pagerClass\":\n                case \"pagerNavButtonClass\":\n                case \"pageClass\":\n                case \"currentPageClass\":\n                case \"pagerRenderer\":\n                    this._refreshPager();\n                    break;\n                case \"fields\":\n                    this._initFields();\n                    this.render();\n                    break;\n                case \"data\":\n                case \"editing\":\n                case \"heading\":\n                case \"filtering\":\n                case \"inserting\":\n                case \"paging\":\n                    this.refresh();\n                    break;\n                case \"loadStrategy\":\n                case \"pageLoading\":\n                    this._initLoadStrategy();\n                    this.search();\n                    break;\n                case \"pageIndex\":\n                    this.openPage(value);\n                    break;\n                case \"pageSize\":\n                    this.refresh();\n                    this.search();\n                    break;\n                case \"editRowRenderer\":\n                case \"editRowClass\":\n                    this.cancelEdit();\n                    break;\n                case \"updateOnResize\":\n                    this._detachWindowResizeCallback();\n                    this._attachWindowResizeCallback();\n                    break;\n                case \"invalidNotify\":\n                case \"invalidMessage\":\n                    break;\n                default:\n                    this.render();\n                    break;\n            }\n        },\n\n        destroy: function() {\n            this._detachWindowResizeCallback();\n            this._clear();\n            this._container.removeData(JSGRID_DATA_KEY);\n        },\n\n        render: function() {\n            this._renderGrid();\n            return this.autoload ? this.loadData() : $.Deferred().resolve().promise();\n        },\n\n        _renderGrid: function() {\n            this._clear();\n\n            this._container.addClass(this.containerClass)\n                .css(\"position\", \"relative\")\n                .append(this._createHeader())\n                .append(this._createBody());\n\n            this._pagerContainer = this._createPagerContainer();\n            this._loadIndicator = this._createLoadIndicator();\n            this._validation = this._createValidation();\n\n            this.refresh();\n        },\n\n        _createLoadIndicator: function() {\n            return getOrApply(this.loadIndicator, this, {\n                message: this.loadMessage,\n                shading: this.loadShading,\n                container: this._container\n            });\n        },\n\n        _createValidation: function() {\n            return getOrApply(this.validation, this);\n        },\n\n        _clear: function() {\n            this.cancelEdit();\n\n            clearTimeout(this._loadingTimer);\n\n            this._pagerContainer && this._pagerContainer.empty();\n\n            this._container.empty()\n                .css({ position: \"\", width: \"\", height: \"\" });\n        },\n\n        _createHeader: function() {\n            var $headerRow = this._headerRow = this._createHeaderRow(),\n                $filterRow = this._filterRow = this._createFilterRow(),\n                $insertRow = this._insertRow = this._createInsertRow();\n\n            var $headerGrid = this._headerGrid = $(\"<table>\").addClass(this.tableClass)\n                .append($headerRow)\n                .append($filterRow)\n                .append($insertRow);\n\n            var $header = this._header = $(\"<div>\").addClass(this.gridHeaderClass)\n                .addClass(this._scrollBarWidth() ? \"jsgrid-header-scrollbar\" : \"\")\n                .append($headerGrid);\n\n            return $header;\n        },\n\n        _createBody: function() {\n            var $content = this._content = $(\"<tbody>\");\n\n            var $bodyGrid = this._bodyGrid = $(\"<table>\").addClass(this.tableClass)\n                .append($content);\n\n            var $body = this._body = $(\"<div>\").addClass(this.gridBodyClass)\n                .append($bodyGrid)\n                .on(\"scroll\", $.proxy(function(e) {\n                    this._header.scrollLeft(e.target.scrollLeft);\n                }, this));\n\n            return $body;\n        },\n\n        _createPagerContainer: function() {\n            var pagerContainer = this.pagerContainer || $(\"<div>\").appendTo(this._container);\n            return $(pagerContainer).addClass(this.pagerContainerClass);\n        },\n\n        _eachField: function(callBack) {\n            var self = this;\n            $.each(this.fields, function(index, field) {\n                if(field.visible) {\n                    callBack.call(self, field, index);\n                }\n            });\n        },\n\n        _createHeaderRow: function() {\n            if($.isFunction(this.headerRowRenderer))\n                return $(this.renderTemplate(this.headerRowRenderer, this));\n\n            var $result = $(\"<tr>\").addClass(this.headerRowClass);\n\n            this._eachField(function(field, index) {\n                var $th = this._prepareCell(\"<th>\", field, \"headercss\", this.headerCellClass)\n                    .append(this.renderTemplate(field.headerTemplate, field))\n                    .appendTo($result);\n\n                if(this.sorting && field.sorting) {\n                    $th.addClass(this.sortableClass)\n                        .on(\"click\", $.proxy(function() {\n                            this.sort(index);\n                        }, this));\n                }\n            });\n\n            return $result;\n        },\n\n        _prepareCell: function(cell, field, cssprop, cellClass) {\n            return $(cell).css(\"width\", field.width)\n                .addClass(cellClass || this.cellClass)\n                .addClass((cssprop && field[cssprop]) || field.css)\n                .addClass(field.align ? (\"jsgrid-align-\" + field.align) : \"\");\n        },\n\n        _createFilterRow: function() {\n            if($.isFunction(this.filterRowRenderer))\n                return $(this.renderTemplate(this.filterRowRenderer, this));\n\n            var $result = $(\"<tr>\").addClass(this.filterRowClass);\n\n            this._eachField(function(field) {\n                this._prepareCell(\"<td>\", field, \"filtercss\")\n                    .append(this.renderTemplate(field.filterTemplate, field))\n                    .appendTo($result);\n            });\n\n            return $result;\n        },\n\n        _createInsertRow: function() {\n            if($.isFunction(this.insertRowRenderer))\n                return $(this.renderTemplate(this.insertRowRenderer, this));\n\n            var $result = $(\"<tr>\").addClass(this.insertRowClass);\n\n            this._eachField(function(field) {\n                this._prepareCell(\"<td>\", field, \"insertcss\")\n                    .append(this.renderTemplate(field.insertTemplate, field))\n                    .appendTo($result);\n            });\n\n            return $result;\n        },\n\n        _callEventHandler: function(handler, eventParams) {\n            handler.call(this, $.extend(eventParams, {\n                grid: this\n            }));\n\n            return eventParams;\n        },\n\n        reset: function() {\n            this._resetSorting();\n            this._resetPager();\n            return this._loadStrategy.reset();\n        },\n\n        _resetPager: function() {\n            this._firstDisplayingPage = 1;\n            this._setPage(1);\n        },\n\n        _resetSorting: function() {\n            this._sortField = null;\n            this._sortOrder = SORT_ORDER_ASC;\n            this._clearSortingCss();\n        },\n\n        refresh: function() {\n            this._callEventHandler(this.onRefreshing);\n\n            this.cancelEdit();\n\n            this._refreshHeading();\n            this._refreshFiltering();\n            this._refreshInserting();\n            this._refreshContent();\n            this._refreshPager();\n            this._refreshSize();\n\n            this._callEventHandler(this.onRefreshed);\n        },\n\n        _refreshHeading: function() {\n            this._headerRow.toggle(this.heading);\n        },\n\n        _refreshFiltering: function() {\n            this._filterRow.toggle(this.filtering);\n        },\n\n        _refreshInserting: function() {\n            this._insertRow.toggle(this.inserting);\n        },\n\n        _refreshContent: function() {\n            var $content = this._content;\n            $content.empty();\n\n            if(!this.data.length) {\n                $content.append(this._createNoDataRow());\n                return this;\n            }\n\n            var indexFrom = this._loadStrategy.firstDisplayIndex();\n            var indexTo = this._loadStrategy.lastDisplayIndex();\n\n            for(var itemIndex = indexFrom; itemIndex < indexTo; itemIndex++) {\n                var item = this.data[itemIndex];\n                $content.append(this._createRow(item, itemIndex));\n            }\n        },\n\n        _createNoDataRow: function() {\n            var amountOfFields = 0;\n            this._eachField(function() {\n                amountOfFields++;\n            });\n\n            return $(\"<tr>\").addClass(this.noDataRowClass)\n                .append($(\"<td>\").addClass(this.cellClass).attr(\"colspan\", amountOfFields)\n                    .append(this.renderTemplate(this.noDataContent, this)));\n        },\n\n        _createRow: function(item, itemIndex) {\n            var $result;\n\n            if($.isFunction(this.rowRenderer)) {\n                $result = this.renderTemplate(this.rowRenderer, this, { item: item, itemIndex: itemIndex });\n            } else {\n                $result = $(\"<tr>\");\n                this._renderCells($result, item);\n            }\n\n            $result.addClass(this._getRowClasses(item, itemIndex))\n                .data(JSGRID_ROW_DATA_KEY, item)\n                .on(\"click\", $.proxy(function(e) {\n                    this.rowClick({\n                        item: item,\n                        itemIndex: itemIndex,\n                        event: e\n                    });\n                }, this))\n                .on(\"dblclick\", $.proxy(function(e) {\n                    this.rowDoubleClick({\n                        item: item,\n                        itemIndex: itemIndex,\n                        event: e\n                    });\n                }, this));\n\n            if(this.selecting) {\n                this._attachRowHover($result);\n            }\n\n            return $result;\n        },\n\n        _getRowClasses: function(item, itemIndex) {\n            var classes = [];\n            classes.push(((itemIndex + 1) % 2) ? this.oddRowClass : this.evenRowClass);\n            classes.push(getOrApply(this.rowClass, this, item, itemIndex));\n            return classes.join(\" \");\n        },\n\n        _attachRowHover: function($row) {\n            var selectedRowClass = this.selectedRowClass;\n            $row.hover(function() {\n                    $(this).addClass(selectedRowClass);\n                },\n                function() {\n                    $(this).removeClass(selectedRowClass);\n                }\n            );\n        },\n\n        _renderCells: function($row, item) {\n            this._eachField(function(field) {\n                $row.append(this._createCell(item, field));\n            });\n            return this;\n        },\n\n        _createCell: function(item, field) {\n            var $result;\n            var fieldValue = this._getItemFieldValue(item, field);\n\n            var args = { value: fieldValue, item : item };\n            if($.isFunction(field.cellRenderer)) {\n                $result = this.renderTemplate(field.cellRenderer, field, args);\n            } else {\n                $result = $(\"<td>\").append(this.renderTemplate(field.itemTemplate || fieldValue, field, args));\n            }\n\n            return this._prepareCell($result, field);\n        },\n\n        _getItemFieldValue: function(item, field) {\n            var props = field.name.split('.');\n            var result = item[props.shift()];\n\n            while(result && props.length) {\n                result = result[props.shift()];\n            }\n\n            return result;\n        },\n\n        _setItemFieldValue: function(item, field, value) {\n            var props = field.name.split('.');\n            var current = item;\n            var prop = props[0];\n\n            while(current && props.length) {\n                item = current;\n                prop = props.shift();\n                current = item[prop];\n            }\n\n            if(!current) {\n                while(props.length) {\n                    item = item[prop] = {};\n                    prop = props.shift();\n                }\n            }\n\n            item[prop] = value;\n        },\n\n        sort: function(field, order) {\n            if($.isPlainObject(field)) {\n                order = field.order;\n                field = field.field;\n            }\n\n            this._clearSortingCss();\n            this._setSortingParams(field, order);\n            this._setSortingCss();\n            return this._loadStrategy.sort();\n        },\n\n        _clearSortingCss: function() {\n            this._headerRow.find(\"th\")\n                .removeClass(this.sortAscClass)\n                .removeClass(this.sortDescClass);\n        },\n\n        _setSortingParams: function(field, order) {\n            field = this._normalizeField(field);\n            order = order || ((this._sortField === field) ? this._reversedSortOrder(this._sortOrder) : SORT_ORDER_ASC);\n\n            this._sortField = field;\n            this._sortOrder = order;\n        },\n\n        _normalizeField: function(field) {\n            if($.isNumeric(field)) {\n                return this.fields[field];\n            }\n\n            if(typeof field === \"string\") {\n                return $.grep(this.fields, function(f) {\n                    return f.name === field;\n                })[0];\n            }\n\n            return field;\n        },\n\n        _reversedSortOrder: function(order) {\n            return (order === SORT_ORDER_ASC ? SORT_ORDER_DESC : SORT_ORDER_ASC);\n        },\n\n        _setSortingCss: function() {\n            var fieldIndex = this._visibleFieldIndex(this._sortField);\n\n            this._headerRow.find(\"th\").eq(fieldIndex)\n                .addClass(this._sortOrder === SORT_ORDER_ASC ? this.sortAscClass : this.sortDescClass);\n        },\n\n        _visibleFieldIndex: function(field) {\n            return $.inArray(field, $.grep(this.fields, function(f) { return f.visible; }));\n        },\n\n        _sortData: function() {\n            var sortFactor = this._sortFactor(),\n                sortField = this._sortField;\n\n            if(sortField) {\n                this.data.sort(function(item1, item2) {\n                    return sortFactor * sortField.sortingFunc(item1[sortField.name], item2[sortField.name]);\n                });\n            }\n        },\n\n        _sortFactor: function() {\n            return this._sortOrder === SORT_ORDER_ASC ? 1 : -1;\n        },\n\n        _itemsCount: function() {\n            return this._loadStrategy.itemsCount();\n        },\n\n        _pagesCount: function() {\n            var itemsCount = this._itemsCount(),\n                pageSize = this.pageSize;\n            return Math.floor(itemsCount / pageSize) + (itemsCount % pageSize ? 1 : 0);\n        },\n\n        _refreshPager: function() {\n            var $pagerContainer = this._pagerContainer;\n            $pagerContainer.empty();\n\n            if(this.paging) {\n                $pagerContainer.append(this._createPager());\n            }\n\n            var showPager = this.paging && this._pagesCount() > 1;\n            $pagerContainer.toggle(showPager);\n        },\n\n        _createPager: function() {\n            var $result;\n\n            if($.isFunction(this.pagerRenderer)) {\n                $result = $(this.pagerRenderer({\n                    pageIndex: this.pageIndex,\n                    pageCount: this._pagesCount()\n                }));\n            } else {\n                $result = $(\"<div>\").append(this._createPagerByFormat());\n            }\n\n            $result.addClass(this.pagerClass);\n\n            return $result;\n        },\n\n        _createPagerByFormat: function() {\n            var pageIndex = this.pageIndex,\n                pageCount = this._pagesCount(),\n                itemCount = this._itemsCount(),\n                pagerParts = this.pagerFormat.split(\" \");\n\n            return $.map(pagerParts, $.proxy(function(pagerPart) {\n                var result = pagerPart;\n\n                if(pagerPart === PAGES_PLACEHOLDER) {\n                    result = this._createPages();\n                } else if(pagerPart === FIRST_PAGE_PLACEHOLDER) {\n                    result = this._createPagerNavButton(this.pageFirstText, 1, pageIndex > 1);\n                } else if(pagerPart === PREV_PAGE_PLACEHOLDER) {\n                    result = this._createPagerNavButton(this.pagePrevText, pageIndex - 1, pageIndex > 1);\n                } else if(pagerPart === NEXT_PAGE_PLACEHOLDER) {\n                    result = this._createPagerNavButton(this.pageNextText, pageIndex + 1, pageIndex < pageCount);\n                } else if(pagerPart === LAST_PAGE_PLACEHOLDER) {\n                    result = this._createPagerNavButton(this.pageLastText, pageCount, pageIndex < pageCount);\n                } else if(pagerPart === PAGE_INDEX_PLACEHOLDER) {\n                    result = pageIndex;\n                } else if(pagerPart === PAGE_COUNT_PLACEHOLDER) {\n                    result = pageCount;\n                } else if(pagerPart === ITEM_COUNT_PLACEHOLDER) {\n                    result = itemCount;\n                }\n\n                return $.isArray(result) ? result.concat([\" \"]) : [result, \" \"];\n            }, this));\n        },\n\n        _createPages: function() {\n            var pageCount = this._pagesCount(),\n                pageButtonCount = this.pageButtonCount,\n                firstDisplayingPage = this._firstDisplayingPage,\n                pages = [];\n\n            if(firstDisplayingPage > 1) {\n                pages.push(this._createPagerPageNavButton(this.pageNavigatorPrevText, this.showPrevPages));\n            }\n\n            for(var i = 0, pageNumber = firstDisplayingPage; i < pageButtonCount && pageNumber <= pageCount; i++, pageNumber++) {\n                pages.push(pageNumber === this.pageIndex\n                    ? this._createPagerCurrentPage()\n                    : this._createPagerPage(pageNumber));\n            }\n\n            if((firstDisplayingPage + pageButtonCount - 1) < pageCount) {\n                pages.push(this._createPagerPageNavButton(this.pageNavigatorNextText, this.showNextPages));\n            }\n\n            return pages;\n        },\n\n        _createPagerNavButton: function(text, pageIndex, isActive) {\n            return this._createPagerButton(text, this.pagerNavButtonClass + (isActive ? \"\" : \" \" + this.pagerNavButtonInactiveClass),\n                isActive ? function() { this.openPage(pageIndex); } : $.noop);\n        },\n\n        _createPagerPageNavButton: function(text, handler) {\n            return this._createPagerButton(text, this.pagerNavButtonClass, handler);\n        },\n\n        _createPagerPage: function(pageIndex) {\n            return this._createPagerButton(pageIndex, this.pageClass, function() {\n                this.openPage(pageIndex);\n            });\n        },\n\n        _createPagerButton: function(text, css, handler) {\n            var $link = $(\"<a>\").attr(\"href\", EMPTY_HREF)\n                .html(text)\n                .on(\"click\", $.proxy(handler, this));\n\n            return $(\"<span>\").addClass(css).append($link);\n        },\n\n        _createPagerCurrentPage: function() {\n            return $(\"<span>\")\n                .addClass(this.pageClass)\n                .addClass(this.currentPageClass)\n                .text(this.pageIndex);\n        },\n\n        _refreshSize: function() {\n            this._refreshHeight();\n            this._refreshWidth();\n        },\n\n        _refreshWidth: function() {\n            var width = (this.width === \"auto\") ? this._getAutoWidth() : this.width;\n\n            this._container.width(width);\n        },\n\n        _getAutoWidth: function() {\n            var $headerGrid = this._headerGrid,\n                $header = this._header;\n\n            $headerGrid.width(\"auto\");\n\n            var contentWidth = $headerGrid.outerWidth();\n            var borderWidth = $header.outerWidth() - $header.innerWidth();\n\n            $headerGrid.width(\"\");\n\n            return contentWidth + borderWidth;\n        },\n\n        _scrollBarWidth: (function() {\n            var result;\n\n            return function() {\n                if(result === undefined) {\n                    var $ghostContainer = $(\"<div style='width:50px;height:50px;overflow:hidden;position:absolute;top:-10000px;left:-10000px;'></div>\");\n                    var $ghostContent = $(\"<div style='height:100px;'></div>\");\n                    $ghostContainer.append($ghostContent).appendTo(\"body\");\n                    var width = $ghostContent.innerWidth();\n                    $ghostContainer.css(\"overflow-y\", \"auto\");\n                    var widthExcludingScrollBar = $ghostContent.innerWidth();\n                    $ghostContainer.remove();\n                    result = width - widthExcludingScrollBar;\n                }\n                return result;\n            };\n        })(),\n\n        _refreshHeight: function() {\n            var container = this._container,\n                pagerContainer = this._pagerContainer,\n                height = this.height,\n                nonBodyHeight;\n\n            container.height(height);\n\n            if(height !== \"auto\") {\n                height = container.height();\n\n                nonBodyHeight = this._header.outerHeight(true);\n                if(pagerContainer.parents(container).length) {\n                    nonBodyHeight += pagerContainer.outerHeight(true);\n                }\n\n                this._body.outerHeight(height - nonBodyHeight);\n            }\n        },\n\n        showPrevPages: function() {\n            var firstDisplayingPage = this._firstDisplayingPage,\n                pageButtonCount = this.pageButtonCount;\n\n            this._firstDisplayingPage = (firstDisplayingPage > pageButtonCount) ? firstDisplayingPage - pageButtonCount : 1;\n\n            this._refreshPager();\n        },\n\n        showNextPages: function() {\n            var firstDisplayingPage = this._firstDisplayingPage,\n                pageButtonCount = this.pageButtonCount,\n                pageCount = this._pagesCount();\n\n            this._firstDisplayingPage = (firstDisplayingPage + 2 * pageButtonCount > pageCount)\n                ? pageCount - pageButtonCount + 1\n                : firstDisplayingPage + pageButtonCount;\n\n            this._refreshPager();\n        },\n\n        openPage: function(pageIndex) {\n            if(pageIndex < 1 || pageIndex > this._pagesCount())\n                return;\n\n            this._setPage(pageIndex);\n            this._loadStrategy.openPage(pageIndex);\n        },\n\n        _setPage: function(pageIndex) {\n            var firstDisplayingPage = this._firstDisplayingPage,\n                pageButtonCount = this.pageButtonCount;\n\n            this.pageIndex = pageIndex;\n\n            if(pageIndex < firstDisplayingPage) {\n                this._firstDisplayingPage = pageIndex;\n            }\n\n            if(pageIndex > firstDisplayingPage + pageButtonCount - 1) {\n                this._firstDisplayingPage = pageIndex - pageButtonCount + 1;\n            }\n\n            this._callEventHandler(this.onPageChanged, {\n                pageIndex: pageIndex\n            });\n        },\n\n        _controllerCall: function(method, param, isCanceled, doneCallback) {\n            if(isCanceled)\n                return $.Deferred().reject().promise();\n\n            this._showLoading();\n\n            var controller = this._controller;\n            if(!controller || !controller[method]) {\n                throw Error(\"controller has no method '\" + method + \"'\");\n            }\n\n            return normalizePromise(controller[method](param))\n                .done($.proxy(doneCallback, this))\n                .fail($.proxy(this._errorHandler, this))\n                .always($.proxy(this._hideLoading, this));\n        },\n\n        _errorHandler: function() {\n            this._callEventHandler(this.onError, {\n                args: $.makeArray(arguments)\n            });\n        },\n\n        _showLoading: function() {\n            if(!this.loadIndication)\n                return;\n\n            clearTimeout(this._loadingTimer);\n\n            this._loadingTimer = setTimeout($.proxy(function() {\n                this._loadIndicator.show();\n            }, this), this.loadIndicationDelay);\n        },\n\n        _hideLoading: function() {\n            if(!this.loadIndication)\n                return;\n\n            clearTimeout(this._loadingTimer);\n            this._loadIndicator.hide();\n        },\n\n        search: function(filter) {\n            this._resetSorting();\n            this._resetPager();\n            return this.loadData(filter);\n        },\n\n        loadData: function(filter) {\n            filter = filter || (this.filtering ? this.getFilter() : {});\n\n            $.extend(filter, this._loadStrategy.loadParams(), this._sortingParams());\n\n            var args = this._callEventHandler(this.onDataLoading, {\n                filter: filter\n            });\n\n            return this._controllerCall(\"loadData\", filter, args.cancel, function(loadedData) {\n                if(!loadedData)\n                    return;\n\n                this._loadStrategy.finishLoad(loadedData);\n\n                this._callEventHandler(this.onDataLoaded, {\n                    data: loadedData\n                });\n            });\n        },\n\n        getFilter: function() {\n            var result = {};\n            this._eachField(function(field) {\n                if(field.filtering) {\n                    this._setItemFieldValue(result, field, field.filterValue());\n                }\n            });\n            return result;\n        },\n\n        _sortingParams: function() {\n            if(this.sorting && this._sortField) {\n                return {\n                    sortField: this._sortField.name,\n                    sortOrder: this._sortOrder\n                };\n            }\n            return {};\n        },\n\n        getSorting: function() {\n            var sortingParams = this._sortingParams();\n            return {\n                field: sortingParams.sortField,\n                order: sortingParams.sortOrder\n            };\n        },\n\n        clearFilter: function() {\n            var $filterRow = this._createFilterRow();\n            this._filterRow.replaceWith($filterRow);\n            this._filterRow = $filterRow;\n            return this.search();\n        },\n\n        insertItem: function(item) {\n            var insertingItem = item || this._getValidatedInsertItem();\n\n            if(!insertingItem)\n                return $.Deferred().reject().promise();\n\n            var args = this._callEventHandler(this.onItemInserting, {\n                item: insertingItem\n            });\n\n            return this._controllerCall(\"insertItem\", insertingItem, args.cancel, function(insertedItem) {\n                insertedItem = insertedItem || insertingItem;\n                this._loadStrategy.finishInsert(insertedItem);\n\n                this._callEventHandler(this.onItemInserted, {\n                    item: insertedItem\n                });\n            });\n        },\n\n        _getValidatedInsertItem: function() {\n            var item = this._getInsertItem();\n            return this._validateItem(item, this._insertRow) ? item : null;\n        },\n\n        _getInsertItem: function() {\n            var result = {};\n            this._eachField(function(field) {\n                if(field.inserting) {\n                    this._setItemFieldValue(result, field, field.insertValue());\n                }\n            });\n            return result;\n        },\n\n        _validateItem: function(item, $row) {\n            var validationErrors = [];\n\n            var args = {\n                item: item,\n                itemIndex: this._rowIndex($row),\n                row: $row\n            };\n\n            this._eachField(function(field) {\n                if(!field.validate ||\n                   ($row === this._insertRow && !field.inserting) ||\n                   ($row === this._getEditRow() && !field.editing))\n                    return;\n\n                var fieldValue = this._getItemFieldValue(item, field);\n\n                var errors = this._validation.validate($.extend({\n                    value: fieldValue,\n                    rules: field.validate\n                }, args));\n\n                this._setCellValidity($row.children().eq(this._visibleFieldIndex(field)), errors);\n\n                if(!errors.length)\n                    return;\n\n                validationErrors.push.apply(validationErrors,\n                    $.map(errors, function(message) {\n                        return { field: field, message: message };\n                    }));\n            });\n\n            if(!validationErrors.length)\n                return true;\n\n            var invalidArgs = $.extend({\n                errors: validationErrors\n            }, args);\n            this._callEventHandler(this.onItemInvalid, invalidArgs);\n            this.invalidNotify(invalidArgs);\n\n            return false;\n        },\n\n        _setCellValidity: function($cell, errors) {\n            $cell\n                .toggleClass(this.invalidClass, !!errors.length)\n                .attr(\"title\", errors.join(\"\\n\"));\n        },\n\n        clearInsert: function() {\n            var insertRow = this._createInsertRow();\n            this._insertRow.replaceWith(insertRow);\n            this._insertRow = insertRow;\n            this.refresh();\n        },\n\n        editItem: function(item) {\n            var $row = this.rowByItem(item);\n            if($row.length) {\n                this._editRow($row);\n            }\n        },\n\n        rowByItem: function(item) {\n            if(item.jquery || item.nodeType)\n                return $(item);\n\n            return this._content.find(\"tr\").filter(function() {\n                return $.data(this, JSGRID_ROW_DATA_KEY) === item;\n            });\n        },\n\n        _editRow: function($row) {\n            if(!this.editing)\n                return;\n\n            var item = $row.data(JSGRID_ROW_DATA_KEY);\n\n            var args = this._callEventHandler(this.onItemEditing, {\n                row: $row,\n                item: item,\n                itemIndex: this._itemIndex(item)\n            });\n\n            if(args.cancel)\n                return;\n\n            if(this._editingRow) {\n                this.cancelEdit();\n            }\n\n            var $editRow = this._createEditRow(item);\n\n            this._editingRow = $row;\n            $row.hide();\n            $editRow.insertBefore($row);\n            $row.data(JSGRID_EDIT_ROW_DATA_KEY, $editRow);\n        },\n\n        _createEditRow: function(item) {\n            if($.isFunction(this.editRowRenderer)) {\n                return $(this.renderTemplate(this.editRowRenderer, this, { item: item, itemIndex: this._itemIndex(item) }));\n            }\n\n            var $result = $(\"<tr>\").addClass(this.editRowClass);\n\n            this._eachField(function(field) {\n                var fieldValue = this._getItemFieldValue(item, field);\n\n                this._prepareCell(\"<td>\", field, \"editcss\")\n                    .append(this.renderTemplate(field.editTemplate || \"\", field, { value: fieldValue, item: item }))\n                    .appendTo($result);\n            });\n\n            return $result;\n        },\n\n        updateItem: function(item, editedItem) {\n            if(arguments.length === 1) {\n                editedItem = item;\n            }\n\n            var $row = item ? this.rowByItem(item) : this._editingRow;\n            editedItem = editedItem || this._getValidatedEditedItem();\n\n            if(!editedItem)\n                return;\n\n            return this._updateRow($row, editedItem);\n        },\n\n        _getValidatedEditedItem: function() {\n            var item = this._getEditedItem();\n            return this._validateItem(item, this._getEditRow()) ? item : null;\n        },\n\n        _updateRow: function($updatingRow, editedItem) {\n            var updatingItem = $updatingRow.data(JSGRID_ROW_DATA_KEY),\n                updatingItemIndex = this._itemIndex(updatingItem),\n                updatedItem = $.extend(true, {}, updatingItem, editedItem);\n\n            var args = this._callEventHandler(this.onItemUpdating, {\n                row: $updatingRow,\n                item: updatedItem,\n                itemIndex: updatingItemIndex,\n                previousItem: updatingItem\n            });\n\n            return this._controllerCall(\"updateItem\", updatedItem, args.cancel, function(loadedUpdatedItem) {\n                var previousItem = $.extend(true, {}, updatingItem);\n                updatedItem = loadedUpdatedItem || $.extend(true, updatingItem, editedItem);\n\n                var $updatedRow = this._finishUpdate($updatingRow, updatedItem, updatingItemIndex);\n\n                this._callEventHandler(this.onItemUpdated, {\n                    row: $updatedRow,\n                    item: updatedItem,\n                    itemIndex: updatingItemIndex,\n                    previousItem: previousItem\n                });\n            });\n        },\n\n        _rowIndex: function(row) {\n            return this._content.children().index($(row));\n        },\n\n        _itemIndex: function(item) {\n            return $.inArray(item, this.data);\n        },\n\n        _finishUpdate: function($updatingRow, updatedItem, updatedItemIndex) {\n            this.cancelEdit();\n            this.data[updatedItemIndex] = updatedItem;\n\n            var $updatedRow = this._createRow(updatedItem, updatedItemIndex);\n            $updatingRow.replaceWith($updatedRow);\n            return $updatedRow;\n        },\n\n        _getEditedItem: function() {\n            var result = {};\n            this._eachField(function(field) {\n                if(field.editing) {\n                    this._setItemFieldValue(result, field, field.editValue());\n                }\n            });\n            return result;\n        },\n\n        cancelEdit: function() {\n            if(!this._editingRow)\n                return;\n\n            this._getEditRow().remove();\n            this._editingRow.show();\n            this._editingRow = null;\n        },\n\n        _getEditRow: function() {\n            return this._editingRow && this._editingRow.data(JSGRID_EDIT_ROW_DATA_KEY);\n        },\n\n        deleteItem: function(item) {\n            var $row = this.rowByItem(item);\n\n            if(!$row.length)\n                return;\n\n            if(this.confirmDeleting && !window.confirm(getOrApply(this.deleteConfirm, this, $row.data(JSGRID_ROW_DATA_KEY))))\n                return;\n\n            return this._deleteRow($row);\n        },\n\n        _deleteRow: function($row) {\n            var deletingItem = $row.data(JSGRID_ROW_DATA_KEY),\n                deletingItemIndex = this._itemIndex(deletingItem);\n\n            var args = this._callEventHandler(this.onItemDeleting, {\n                row: $row,\n                item: deletingItem,\n                itemIndex: deletingItemIndex\n            });\n\n            return this._controllerCall(\"deleteItem\", deletingItem, args.cancel, function() {\n                this._loadStrategy.finishDelete(deletingItem, deletingItemIndex);\n\n                this._callEventHandler(this.onItemDeleted, {\n                    row: $row,\n                    item: deletingItem,\n                    itemIndex: deletingItemIndex\n                });\n            });\n        }\n    };\n\n    $.fn.jsGrid = function(config) {\n        var args = $.makeArray(arguments),\n            methodArgs = args.slice(1),\n            result = this;\n\n        this.each(function() {\n            var $element = $(this),\n                instance = $element.data(JSGRID_DATA_KEY),\n                methodResult;\n\n            if(instance) {\n                if(typeof config === \"string\") {\n                    methodResult = instance[config].apply(instance, methodArgs);\n                    if(methodResult !== undefined && methodResult !== instance) {\n                        result = methodResult;\n                        return false;\n                    }\n                } else {\n                    instance._detachWindowResizeCallback();\n                    instance._init(config);\n                    instance.render();\n                }\n            } else {\n                new Grid($element, config);\n            }\n        });\n\n        return result;\n    };\n\n    var fields = {};\n\n    var setDefaults = function(config) {\n        var componentPrototype;\n\n        if($.isPlainObject(config)) {\n            componentPrototype = Grid.prototype;\n        } else {\n            componentPrototype = fields[config].prototype;\n            config = arguments[1] || {};\n        }\n\n        $.extend(componentPrototype, config);\n    };\n\n    var locales = {};\n\n    var locale = function(lang) {\n        var localeConfig = $.isPlainObject(lang) ? lang : locales[lang];\n\n        if(!localeConfig)\n            throw Error(\"unknown locale \" + lang);\n\n        setLocale(jsGrid, localeConfig);\n    };\n\n    var setLocale = function(obj, localeConfig) {\n        $.each(localeConfig, function(field, value) {\n            if($.isPlainObject(value)) {\n                setLocale(obj[field] || obj[field[0].toUpperCase() + field.slice(1)], value);\n                return;\n            }\n\n            if(obj.hasOwnProperty(field)) {\n                obj[field] = value;\n            } else {\n                obj.prototype[field] = value;\n            }\n        });\n    };\n\n    window.jsGrid = {\n        Grid: Grid,\n        fields: fields,\n        setDefaults: setDefaults,\n        locales: locales,\n        locale: locale,\n        version: '1.5.3'\n    };\n\n}(window, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    function LoadIndicator(config) {\n        this._init(config);\n    }\n\n    LoadIndicator.prototype = {\n\n        container: \"body\",\n        message: \"Loading...\",\n        shading: true,\n\n        zIndex: 1000,\n        shaderClass: \"jsgrid-load-shader\",\n        loadPanelClass: \"jsgrid-load-panel\",\n\n        _init: function(config) {\n            $.extend(true, this, config);\n\n            this._initContainer();\n            this._initShader();\n            this._initLoadPanel();\n        },\n\n        _initContainer: function() {\n            this._container = $(this.container);\n        },\n\n        _initShader: function() {\n            if(!this.shading)\n                return;\n\n            this._shader = $(\"<div>\").addClass(this.shaderClass)\n                .hide()\n                .css({\n                    position: \"absolute\",\n                    top: 0,\n                    right: 0,\n                    bottom: 0,\n                    left: 0,\n                    zIndex: this.zIndex\n                })\n                .appendTo(this._container);\n        },\n\n        _initLoadPanel: function() {\n            this._loadPanel = $(\"<div>\").addClass(this.loadPanelClass)\n                .text(this.message)\n                .hide()\n                .css({\n                    position: \"absolute\",\n                    top: \"50%\",\n                    left: \"50%\",\n                    zIndex: this.zIndex\n                })\n                .appendTo(this._container);\n        },\n\n        show: function() {\n            var $loadPanel = this._loadPanel.show();\n\n            var actualWidth = $loadPanel.outerWidth();\n            var actualHeight = $loadPanel.outerHeight();\n\n            $loadPanel.css({\n                marginTop: -actualHeight / 2,\n                marginLeft: -actualWidth / 2\n            });\n\n            this._shader.show();\n        },\n\n        hide: function() {\n            this._loadPanel.hide();\n            this._shader.hide();\n        }\n\n    };\n\n    jsGrid.LoadIndicator = LoadIndicator;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    function DirectLoadingStrategy(grid) {\n        this._grid = grid;\n    }\n\n    DirectLoadingStrategy.prototype = {\n\n        firstDisplayIndex: function() {\n            var grid = this._grid;\n            return grid.option(\"paging\") ? (grid.option(\"pageIndex\") - 1) * grid.option(\"pageSize\") : 0;\n        },\n\n        lastDisplayIndex: function() {\n            var grid = this._grid;\n            var itemsCount = grid.option(\"data\").length;\n\n            return grid.option(\"paging\")\n                ? Math.min(grid.option(\"pageIndex\") * grid.option(\"pageSize\"), itemsCount)\n                : itemsCount;\n        },\n\n        itemsCount: function() {\n            return this._grid.option(\"data\").length;\n        },\n\n        openPage: function(index) {\n            this._grid.refresh();\n        },\n\n        loadParams: function() {\n            return {};\n        },\n\n        sort: function() {\n            this._grid._sortData();\n            this._grid.refresh();\n            return $.Deferred().resolve().promise();\n        },\n\n        reset: function() {\n            this._grid.refresh();\n            return $.Deferred().resolve().promise();\n        },\n\n        finishLoad: function(loadedData) {\n            this._grid.option(\"data\", loadedData);\n        },\n\n        finishInsert: function(insertedItem) {\n            var grid = this._grid;\n            grid.option(\"data\").push(insertedItem);\n            grid.refresh();\n        },\n\n        finishDelete: function(deletedItem, deletedItemIndex) {\n            var grid = this._grid;\n            grid.option(\"data\").splice(deletedItemIndex, 1);\n            grid.reset();\n        }\n    };\n\n\n    function PageLoadingStrategy(grid) {\n        this._grid = grid;\n        this._itemsCount = 0;\n    }\n\n    PageLoadingStrategy.prototype = {\n\n        firstDisplayIndex: function() {\n            return 0;\n        },\n\n        lastDisplayIndex: function() {\n            return this._grid.option(\"data\").length;\n        },\n\n        itemsCount: function() {\n            return this._itemsCount;\n        },\n\n        openPage: function(index) {\n            this._grid.loadData();\n        },\n\n        loadParams: function() {\n            var grid = this._grid;\n            return {\n                pageIndex: grid.option(\"pageIndex\"),\n                pageSize: grid.option(\"pageSize\")\n            };\n        },\n\n        reset: function() {\n            return this._grid.loadData();\n        },\n\n        sort: function() {\n            return this._grid.loadData();\n        },\n\n        finishLoad: function(loadedData) {\n            this._itemsCount = loadedData.itemsCount;\n            this._grid.option(\"data\", loadedData.data);\n        },\n\n        finishInsert: function(insertedItem) {\n            this._grid.search();\n        },\n\n        finishDelete: function(deletedItem, deletedItemIndex) {\n            this._grid.search();\n        }\n    };\n\n    jsGrid.loadStrategies = {\n        DirectLoadingStrategy: DirectLoadingStrategy,\n        PageLoadingStrategy: PageLoadingStrategy\n    };\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var isDefined = function(val) {\n        return typeof(val) !== \"undefined\" && val !== null;\n    };\n\n    var sortStrategies = {\n        string: function(str1, str2) {\n            if(!isDefined(str1) && !isDefined(str2))\n                return 0;\n\n            if(!isDefined(str1))\n                return -1;\n\n            if(!isDefined(str2))\n                return 1;\n\n            return (\"\" + str1).localeCompare(\"\" + str2);\n        },\n\n        number: function(n1, n2) {\n            return n1 - n2;\n        },\n\n        date: function(dt1, dt2) {\n            return dt1 - dt2;\n        },\n\n        numberAsString: function(n1, n2) {\n            return parseFloat(n1) - parseFloat(n2);\n        }\n    };\n\n    jsGrid.sortStrategies = sortStrategies;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    function Validation(config) {\n        this._init(config);\n    }\n\n    Validation.prototype = {\n\n        _init: function(config) {\n            $.extend(true, this, config);\n        },\n\n        validate: function(args) {\n            var errors = [];\n\n            $.each(this._normalizeRules(args.rules), function(_, rule) {\n                if(rule.validator(args.value, args.item, rule.param))\n                    return;\n\n                var errorMessage = $.isFunction(rule.message) ? rule.message(args.value, args.item) : rule.message;\n                errors.push(errorMessage);\n            });\n\n            return errors;\n        },\n\n        _normalizeRules: function(rules) {\n            if(!$.isArray(rules))\n                rules = [rules];\n\n            return $.map(rules, $.proxy(function(rule) {\n                return this._normalizeRule(rule);\n            }, this));\n        },\n\n        _normalizeRule: function(rule) {\n            if(typeof rule === \"string\")\n                rule = { validator: rule };\n\n            if($.isFunction(rule))\n                rule = { validator: rule };\n\n            if($.isPlainObject(rule))\n                rule = $.extend({}, rule);\n            else\n                throw Error(\"wrong validation config specified\");\n\n            if($.isFunction(rule.validator))\n                return rule;\n\n            return this._applyNamedValidator(rule, rule.validator);\n        },\n\n        _applyNamedValidator: function(rule, validatorName) {\n            delete rule.validator;\n\n            var validator = validators[validatorName];\n            if(!validator)\n                throw Error(\"unknown validator \\\"\" + validatorName + \"\\\"\");\n\n            if($.isFunction(validator)) {\n                validator = { validator: validator };\n            }\n\n            return $.extend({}, validator, rule);\n        }\n    };\n\n    jsGrid.Validation = Validation;\n\n\n    var validators = {\n        required: {\n            message: \"Field is required\",\n            validator: function(value) {\n                return value !== undefined && value !== null && value !== \"\";\n            }\n        },\n\n        rangeLength: {\n            message: \"Field value length is out of the defined range\",\n            validator: function(value, _, param) {\n                return value.length >= param[0] && value.length <= param[1];\n            }\n        },\n\n        minLength: {\n            message: \"Field value is too short\",\n            validator: function(value, _, param) {\n                return value.length >= param;\n            }\n        },\n\n        maxLength: {\n            message: \"Field value is too long\",\n            validator: function(value, _, param) {\n                return value.length <= param;\n            }\n        },\n\n        pattern: {\n            message: \"Field value is not matching the defined pattern\",\n            validator: function(value, _, param) {\n                if(typeof param === \"string\") {\n                    param = new RegExp(\"^(?:\" + param + \")$\");\n                }\n                return param.test(value);\n            }\n        },\n\n        range: {\n            message: \"Field value is out of the defined range\",\n            validator: function(value, _, param) {\n                return value >= param[0] && value <= param[1];\n            }\n        },\n\n        min: {\n            message: \"Field value is too small\",\n            validator: function(value, _, param) {\n                return value >= param;\n            }\n        },\n\n        max: {\n            message: \"Field value is too large\",\n            validator: function(value, _, param) {\n                return value <= param;\n            }\n        }\n    };\n\n    jsGrid.validators = validators;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    function Field(config) {\n        $.extend(true, this, config);\n        this.sortingFunc = this._getSortingFunc();\n    }\n\n    Field.prototype = {\n        name: \"\",\n        title: null,\n        css: \"\",\n        align: \"\",\n        width: 100,\n\n        visible: true,\n        filtering: true,\n        inserting: true,\n        editing: true,\n        sorting: true,\n        sorter: \"string\", // name of SortStrategy or function to compare elements\n\n        headerTemplate: function() {\n            return (this.title === undefined || this.title === null) ? this.name : this.title;\n        },\n\n        itemTemplate: function(value, item) {\n            return value;\n        },\n\n        filterTemplate: function() {\n            return \"\";\n        },\n\n        insertTemplate: function() {\n            return \"\";\n        },\n\n        editTemplate: function(value, item) {\n            this._value = value;\n            return this.itemTemplate(value, item);\n        },\n\n        filterValue: function() {\n            return \"\";\n        },\n\n        insertValue: function() {\n            return \"\";\n        },\n\n        editValue: function() {\n            return this._value;\n        },\n\n        _getSortingFunc: function() {\n            var sorter = this.sorter;\n\n            if($.isFunction(sorter)) {\n                return sorter;\n            }\n\n            if(typeof sorter === \"string\") {\n                return jsGrid.sortStrategies[sorter];\n            }\n\n            throw Error(\"wrong sorter for the field \\\"\" + this.name + \"\\\"!\");\n        }\n    };\n\n    jsGrid.Field = Field;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var Field = jsGrid.Field;\n\n    function TextField(config) {\n        Field.call(this, config);\n    }\n\n    TextField.prototype = new Field({\n\n        autosearch: true,\n\t\treadOnly: false,\n\n        filterTemplate: function() {\n            if(!this.filtering)\n                return \"\";\n\n            var grid = this._grid,\n                $result = this.filterControl = this._createTextBox();\n\n            if(this.autosearch) {\n                $result.on(\"keypress\", function(e) {\n                    if(e.which === 13) {\n                        grid.search();\n                        e.preventDefault();\n                    }\n                });\n            }\n\n            return $result;\n        },\n\n        insertTemplate: function() {\n            if(!this.inserting)\n                return \"\";\n\n            return this.insertControl = this._createTextBox();\n        },\n\n        editTemplate: function(value) {\n            if(!this.editing)\n                return this.itemTemplate.apply(this, arguments);\n\n            var $result = this.editControl = this._createTextBox();\n            $result.val(value);\n            return $result;\n        },\n\n        filterValue: function() {\n            return this.filterControl.val();\n        },\n\n        insertValue: function() {\n            return this.insertControl.val();\n        },\n\n        editValue: function() {\n            return this.editControl.val();\n        },\n\n        _createTextBox: function() {\n            return $(\"<input>\").attr(\"type\", \"text\")\n                .prop(\"readonly\", !!this.readOnly);\n        }\n    });\n\n    jsGrid.fields.text = jsGrid.TextField = TextField;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var TextField = jsGrid.TextField;\n\n    function NumberField(config) {\n        TextField.call(this, config);\n    }\n\n    NumberField.prototype = new TextField({\n\n        sorter: \"number\",\n        align: \"right\",\n\t\treadOnly: false,\n\n        filterValue: function() {\n            return this.filterControl.val()\n                ? parseInt(this.filterControl.val() || 0, 10)\n                : undefined;\n        },\n\n        insertValue: function() {\n            return this.insertControl.val()\n                ? parseInt(this.insertControl.val() || 0, 10)\n                : undefined;\n        },\n\n        editValue: function() {\n            return this.editControl.val()\n                ? parseInt(this.editControl.val() || 0, 10)\n                : undefined;\n        },\n\n        _createTextBox: function() {\n\t\t\treturn $(\"<input>\").attr(\"type\", \"number\")\n                .prop(\"readonly\", !!this.readOnly);\n        }\n    });\n\n    jsGrid.fields.number = jsGrid.NumberField = NumberField;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var TextField = jsGrid.TextField;\n\n    function TextAreaField(config) {\n        TextField.call(this, config);\n    }\n\n    TextAreaField.prototype = new TextField({\n\n        insertTemplate: function() {\n            if(!this.inserting)\n                return \"\";\n\n            return this.insertControl = this._createTextArea();\n        },\n\n        editTemplate: function(value) {\n            if(!this.editing)\n                return this.itemTemplate.apply(this, arguments);\n\n            var $result = this.editControl = this._createTextArea();\n            $result.val(value);\n            return $result;\n        },\n\n        _createTextArea: function() {\n            return $(\"<textarea>\").prop(\"readonly\", !!this.readOnly);\n        }\n    });\n\n    jsGrid.fields.textarea = jsGrid.TextAreaField = TextAreaField;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var NumberField = jsGrid.NumberField;\n    var numberValueType = \"number\";\n    var stringValueType = \"string\";\n\n    function SelectField(config) {\n        this.items = [];\n        this.selectedIndex = -1;\n        this.valueField = \"\";\n        this.textField = \"\";\n\n        if(config.valueField && config.items.length) {\n            var firstItemValue = config.items[0][config.valueField];\n            this.valueType = (typeof firstItemValue) === numberValueType ? numberValueType : stringValueType;\n        }\n\n        this.sorter = this.valueType;\n\n        NumberField.call(this, config);\n    }\n\n    SelectField.prototype = new NumberField({\n\n        align: \"center\",\n        valueType: numberValueType,\n\n        itemTemplate: function(value) {\n            var items = this.items,\n                valueField = this.valueField,\n                textField = this.textField,\n                resultItem;\n\n            if(valueField) {\n                resultItem = $.grep(items, function(item, index) {\n                    return item[valueField] === value;\n                })[0] || {};\n            }\n            else {\n                resultItem = items[value];\n            }\n\n            var result = (textField ? resultItem[textField] : resultItem);\n\n            return (result === undefined || result === null) ? \"\" : result;\n        },\n\n        filterTemplate: function() {\n            if(!this.filtering)\n                return \"\";\n\n            var grid = this._grid,\n                $result = this.filterControl = this._createSelect();\n\n            if(this.autosearch) {\n                $result.on(\"change\", function(e) {\n                    grid.search();\n                });\n            }\n\n            return $result;\n        },\n\n        insertTemplate: function() {\n            if(!this.inserting)\n                return \"\";\n\n            return this.insertControl = this._createSelect();\n        },\n\n        editTemplate: function(value) {\n            if(!this.editing)\n                return this.itemTemplate.apply(this, arguments);\n\n            var $result = this.editControl = this._createSelect();\n            (value !== undefined) && $result.val(value);\n            return $result;\n        },\n\n        filterValue: function() {\n            var val = this.filterControl.val();\n            return this.valueType === numberValueType ? parseInt(val || 0, 10) : val;\n        },\n\n        insertValue: function() {\n            var val = this.insertControl.val();\n            return this.valueType === numberValueType ? parseInt(val || 0, 10) : val;\n        },\n\n        editValue: function() {\n            var val = this.editControl.val();\n            return this.valueType === numberValueType ? parseInt(val || 0, 10) : val;\n        },\n\n        _createSelect: function() {\n            var $result = $(\"<select>\"),\n                valueField = this.valueField,\n                textField = this.textField,\n                selectedIndex = this.selectedIndex;\n\n            $.each(this.items, function(index, item) {\n                var value = valueField ? item[valueField] : index,\n                    text = textField ? item[textField] : item;\n\n                var $option = $(\"<option>\")\n                    .attr(\"value\", value)\n                    .text(text)\n                    .appendTo($result);\n\n                $option.prop(\"selected\", (selectedIndex === index));\n            });\n\n            $result.prop(\"disabled\", !!this.readOnly);\n\n            return $result;\n        }\n    });\n\n    jsGrid.fields.select = jsGrid.SelectField = SelectField;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var Field = jsGrid.Field;\n\n    function CheckboxField(config) {\n        Field.call(this, config);\n    }\n\n    CheckboxField.prototype = new Field({\n\n        sorter: \"number\",\n        align: \"center\",\n        autosearch: true,\n\n        itemTemplate: function(value) {\n            return this._createCheckbox().prop({\n                checked: value,\n                disabled: true\n            });\n        },\n\n        filterTemplate: function() {\n            if(!this.filtering)\n                return \"\";\n\n            var grid = this._grid,\n                $result = this.filterControl = this._createCheckbox();\n\n            $result.prop({\n                readOnly: true,\n                indeterminate: true\n            });\n\n            $result.on(\"click\", function() {\n                var $cb = $(this);\n\n                if($cb.prop(\"readOnly\")) {\n                    $cb.prop({\n                        checked: false,\n                        readOnly: false\n                    });\n                }\n                else if(!$cb.prop(\"checked\")) {\n                    $cb.prop({\n                        readOnly: true,\n                        indeterminate: true\n                    });\n                }\n            });\n\n            if(this.autosearch) {\n                $result.on(\"click\", function() {\n                    grid.search();\n                });\n            }\n\n            return $result;\n        },\n\n        insertTemplate: function() {\n            if(!this.inserting)\n                return \"\";\n\n            return this.insertControl = this._createCheckbox();\n        },\n\n        editTemplate: function(value) {\n            if(!this.editing)\n                return this.itemTemplate.apply(this, arguments);\n\n            var $result = this.editControl = this._createCheckbox();\n            $result.prop(\"checked\", value);\n            return $result;\n        },\n\n        filterValue: function() {\n            return this.filterControl.get(0).indeterminate\n                ? undefined\n                : this.filterControl.is(\":checked\");\n        },\n\n        insertValue: function() {\n            return this.insertControl.is(\":checked\");\n        },\n\n        editValue: function() {\n            return this.editControl.is(\":checked\");\n        },\n\n        _createCheckbox: function() {\n            return $(\"<input>\").attr(\"type\", \"checkbox\");\n        }\n    });\n\n    jsGrid.fields.checkbox = jsGrid.CheckboxField = CheckboxField;\n\n}(jsGrid, jQuery));\n\n(function(jsGrid, $, undefined) {\n\n    var Field = jsGrid.Field;\n\n    function ControlField(config) {\n        Field.call(this, config);\n        this._configInitialized = false;\n    }\n\n    ControlField.prototype = new Field({\n        css: \"jsgrid-control-field\",\n        align: \"center\",\n        width: 50,\n        filtering: false,\n        inserting: false,\n        editing: false,\n        sorting: false,\n\n        buttonClass: \"jsgrid-button\",\n        modeButtonClass: \"jsgrid-mode-button\",\n\n        modeOnButtonClass: \"jsgrid-mode-on-button\",\n        searchModeButtonClass: \"jsgrid-search-mode-button\",\n        insertModeButtonClass: \"jsgrid-insert-mode-button\",\n        editButtonClass: \"jsgrid-edit-button\",\n        deleteButtonClass: \"jsgrid-delete-button\",\n        searchButtonClass: \"jsgrid-search-button\",\n        clearFilterButtonClass: \"jsgrid-clear-filter-button\",\n        insertButtonClass: \"jsgrid-insert-button\",\n        updateButtonClass: \"jsgrid-update-button\",\n        cancelEditButtonClass: \"jsgrid-cancel-edit-button\",\n\n        searchModeButtonTooltip: \"Switch to searching\",\n        insertModeButtonTooltip: \"Switch to inserting\",\n        editButtonTooltip: \"Edit\",\n        deleteButtonTooltip: \"Delete\",\n        searchButtonTooltip: \"Search\",\n        clearFilterButtonTooltip: \"Clear filter\",\n        insertButtonTooltip: \"Insert\",\n        updateButtonTooltip: \"Update\",\n        cancelEditButtonTooltip: \"Cancel edit\",\n\n        editButton: true,\n        deleteButton: true,\n        clearFilterButton: true,\n        modeSwitchButton: true,\n\n        _initConfig: function() {\n            this._hasFiltering = this._grid.filtering;\n            this._hasInserting = this._grid.inserting;\n\n            if(this._hasInserting && this.modeSwitchButton) {\n                this._grid.inserting = false;\n            }\n\n            this._configInitialized = true;\n        },\n\n        headerTemplate: function() {\n            if(!this._configInitialized) {\n                this._initConfig();\n            }\n\n            var hasFiltering = this._hasFiltering;\n            var hasInserting = this._hasInserting;\n\n            if(!this.modeSwitchButton || (!hasFiltering && !hasInserting))\n                return \"\";\n\n            if(hasFiltering && !hasInserting)\n                return this._createFilterSwitchButton();\n\n            if(hasInserting && !hasFiltering)\n                return this._createInsertSwitchButton();\n\n            return this._createModeSwitchButton();\n        },\n\n        itemTemplate: function(value, item) {\n            var $result = $([]);\n\n            if(this.editButton) {\n                $result = $result.add(this._createEditButton(item));\n            }\n\n            if(this.deleteButton) {\n                $result = $result.add(this._createDeleteButton(item));\n            }\n\n            return $result;\n        },\n\n        filterTemplate: function() {\n            var $result = this._createSearchButton();\n            return this.clearFilterButton ? $result.add(this._createClearFilterButton()) : $result;\n        },\n\n        insertTemplate: function() {\n            return this._createInsertButton();\n        },\n\n        editTemplate: function() {\n            return this._createUpdateButton().add(this._createCancelEditButton());\n        },\n\n        _createFilterSwitchButton: function() {\n            return this._createOnOffSwitchButton(\"filtering\", this.searchModeButtonClass, true);\n        },\n\n        _createInsertSwitchButton: function() {\n            return this._createOnOffSwitchButton(\"inserting\", this.insertModeButtonClass, false);\n        },\n\n        _createOnOffSwitchButton: function(option, cssClass, isOnInitially) {\n            var isOn = isOnInitially;\n\n            var updateButtonState = $.proxy(function() {\n                $button.toggleClass(this.modeOnButtonClass, isOn);\n            }, this);\n\n            var $button = this._createGridButton(this.modeButtonClass + \" \" + cssClass, \"\", function(grid) {\n                isOn = !isOn;\n                grid.option(option, isOn);\n                updateButtonState();\n            });\n\n            updateButtonState();\n\n            return $button;\n        },\n\n        _createModeSwitchButton: function() {\n            var isInserting = false;\n\n            var updateButtonState = $.proxy(function() {\n                $button.attr(\"title\", isInserting ? this.searchModeButtonTooltip : this.insertModeButtonTooltip)\n                    .toggleClass(this.insertModeButtonClass, !isInserting)\n                    .toggleClass(this.searchModeButtonClass, isInserting);\n            }, this);\n\n            var $button = this._createGridButton(this.modeButtonClass, \"\", function(grid) {\n                isInserting = !isInserting;\n                grid.option(\"inserting\", isInserting);\n                grid.option(\"filtering\", !isInserting);\n                updateButtonState();\n            });\n\n            updateButtonState();\n\n            return $button;\n        },\n\n        _createEditButton: function(item) {\n            return this._createGridButton(this.editButtonClass, this.editButtonTooltip, function(grid, e) {\n                grid.editItem(item);\n                e.stopPropagation();\n            });\n        },\n\n        _createDeleteButton: function(item) {\n            return this._createGridButton(this.deleteButtonClass, this.deleteButtonTooltip, function(grid, e) {\n                grid.deleteItem(item);\n                e.stopPropagation();\n            });\n        },\n\n        _createSearchButton: function() {\n            return this._createGridButton(this.searchButtonClass, this.searchButtonTooltip, function(grid) {\n                grid.search();\n            });\n        },\n\n        _createClearFilterButton: function() {\n            return this._createGridButton(this.clearFilterButtonClass, this.clearFilterButtonTooltip, function(grid) {\n                grid.clearFilter();\n            });\n        },\n\n        _createInsertButton: function() {\n            return this._createGridButton(this.insertButtonClass, this.insertButtonTooltip, function(grid) {\n                grid.insertItem().done(function() {\n                    grid.clearInsert();\n                });\n            });\n        },\n\n        _createUpdateButton: function() {\n            return this._createGridButton(this.updateButtonClass, this.updateButtonTooltip, function(grid, e) {\n                grid.updateItem();\n                e.stopPropagation();\n            });\n        },\n\n        _createCancelEditButton: function() {\n            return this._createGridButton(this.cancelEditButtonClass, this.cancelEditButtonTooltip, function(grid, e) {\n                grid.cancelEdit();\n                e.stopPropagation();\n            });\n        },\n\n        _createGridButton: function(cls, tooltip, clickHandler) {\n            var grid = this._grid;\n\n            return $(\"<input>\").addClass(this.buttonClass)\n                .addClass(cls)\n                .attr({\n                    type: \"button\",\n                    title: tooltip\n                })\n                .on(\"click\", function(e) {\n                    clickHandler(grid, e);\n                });\n        },\n\n        editValue: function() {\n            return \"\";\n        }\n\n    });\n\n    jsGrid.fields.control = jsGrid.ControlField = ControlField;\n\n}(jsGrid, jQuery));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/jszip/jszip.js",
    "content": "/*!\n\nJSZip v3.6.0 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n(function (global){\n/*!\n\nJSZip v3.5.0 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,u){function h(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(f)return f(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return h(t||e)},i,i.exports,s,a,o,u)}return o[r].exports}for(var f=\"function\"==typeof require&&require,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){\"object\"==typeof n&&void 0!==t?t.exports=e():(\"undefined\"!=typeof window?window:void 0!==r?r:\"undefined\"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r=\"function\"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f=\"function\"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){\"object\"==typeof n&&void 0!==t?t.exports=e():(\"undefined\"!=typeof window?window:void 0!==r?r:\"undefined\"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r=\"function\"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f=\"function\"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){\"object\"==typeof n&&void 0!==t?t.exports=e():(\"undefined\"!=typeof window?window:void 0!==r?r:\"undefined\"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r=\"function\"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f=\"function\"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){\"object\"==typeof n&&void 0!==t?t.exports=e():(\"undefined\"!=typeof window?window:void 0!==r?r:\"undefined\"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r=\"function\"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f=\"function\"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(e,t,r){\"use strict\";var c=e(\"./utils\"),l=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,u=[],h=0,f=e.length,l=f,d=\"string\"!==c.getTypeOf(e);h<e.length;)l=f-h,n=d?(t=e[h++],r=h<f?e[h++]:0,h<f?e[h++]:0):(t=e.charCodeAt(h++),r=h<f?e.charCodeAt(h++):0,h<f?e.charCodeAt(h++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<l?(15&r)<<2|n>>6:64,o=2<l?63&n:64,u.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return u.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,u=0;if(\"data:\"===e.substr(0,\"data:\".length))throw new Error(\"Invalid base64 input, it looks like a data url.\");var h,f=3*(e=e.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(h=l.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),h[u++]=t,64!==s&&(h[u++]=r),64!==a&&(h[u++]=n);return h}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(e){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\"),a=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r){var n=a,i=0+r;e^=-1;for(var s=0;s<i;s++)e=e>>>8^n[255&(e^t[s])];return-1^e}(0|t,e,e.length):function(e,t,r){var n=a,i=0+r;e^=-1;for(var s=0;s<i;s++)e=e>>>8^n[255&(e^t.charCodeAt(s))];return-1^e}(0|t,e,e.length):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function u(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(u,a),u.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},u.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new u(\"Deflate\",e)},r.uncompressWorker=function(){return new u(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function I(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function i(e,t,r,n,i,s){var a,o,u=e.file,h=e.compression,f=s!==B.utf8encode,l=O.transformTo(\"string\",s(u.name)),d=O.transformTo(\"string\",B.utf8encode(u.name)),c=u.comment,p=O.transformTo(\"string\",s(c)),m=O.transformTo(\"string\",B.utf8encode(c)),_=d.length!==u.name.length,g=m.length!==c.length,v=\"\",b=\"\",w=\"\",y=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),f||!_&&!g||(S|=2048);var z,C=0,E=0;y&&(C|=16),\"UNIX\"===i?(E=798,C|=((z=u.unixPermissions)||(z=y?16893:33204),(65535&z)<<16)):(E=20,C|=63&(u.dosPermissions||0)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v+=\"up\"+I((b=I(1,1)+I(R(l),4)+d).length,2)+b),g&&(v+=\"uc\"+I((w=I(1,1)+I(R(p),4)+m).length,2)+w);var A=\"\";return A+=\"\\n\\0\",A+=I(S,2),A+=h.magic,A+=I(a,2),A+=I(o,2),A+=I(x.crc32,4),A+=I(x.compressedSize,4),A+=I(x.uncompressedSize,4),A+=I(l.length,2),A+=I(v.length,2),{fileRecord:T.LOCAL_FILE_HEADER+A+l+v,dirRecord:T.CENTRAL_FILE_HEADER+I(E,2)+A+I(p.length,2)+\"\\0\\0\\0\\0\"+I(C,4)+I(n,4)+l+v+p}}var O=e(\"../utils\"),s=e(\"../stream/GenericWorker\"),B=e(\"../utf8\"),R=e(\"../crc32\"),T=e(\"../signature\");function n(e,t,r,n){s.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}O.inherits(n,s),n.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,s.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},n.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},n.prototype.closedSource=function(e){this.accumulate=!1;var t,r=this.streamFiles&&!e.file.dir,n=i(e,r,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),r)this.push({data:(t=e,T.DATA_DESCRIPTOR+I(t.crc32,4)+I(t.compressedSize,4)+I(t.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},n.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r,n,i,s,a,o,u=this.bytesWritten-e,h=(r=this.dirRecords.length,n=u,i=e,s=this.zipComment,a=this.encodeFileName,o=O.transformTo(\"string\",a(s)),T.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+I(r,2)+I(r,2)+I(n,4)+I(i,4)+I(o.length,2)+o);this.push({data:h,meta:{percent:100}})},n.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},n.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},n.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},n.prototype.error=function(e){var t=this._sources;if(!s.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},n.prototype.lock=function(){s.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=n},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var h=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),u=0;try{e.forEach(function(e,t){u++;var r=function(e,t){var r=e||t,n=h[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=u}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files={},this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.5.0\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var n=e(\"./utils\"),i=e(\"./external\"),o=e(\"./utf8\"),u=e(\"./zipEntries\"),s=e(\"./stream/Crc32Probe\"),h=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new s);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,s){var a=this;return s=n.extend(s||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),h.isNode&&h.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):n.prepareContent(\"the loaded zip file\",e,!0,s.optimizedBinaryString,s.base64).then(function(e){var t=new u(s);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(s.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n];a.file(i.fileNameStr,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:s.createFolders})}return t.zipComment.length&&(a.comment=t.zipComment),a})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=f.getTypeOf(t),s=f.extend(r||{},d);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=h(e)),s.createFolders&&(n=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"}(e))&&g.call(this,n,!0);var a,o=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!o),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\"),a=t instanceof c||t instanceof l?t:m.isNode&&m.isStream(t)?new _(e,t):f.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var u=new p(e,a,s);this.files[e]=u}function h(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e}var i=e(\"./utf8\"),f=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),d=e(\"./defaults\"),c=e(\"./compressedObject\"),p=e(\"./zipObject\"),o=e(\"./generate\"),m=e(\"./nodejsUtils\"),_=e(\"./nodejs/NodejsStreamInputAdapter\"),g=function(e,t){return t=void 0!==t?t:d.createFolders,e=h(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function u(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)this.files.hasOwnProperty(t)&&(n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n))},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(u(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(u(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=g.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(e){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=f.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");f.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(e){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readAndCheckSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),u=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new u(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),f=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function u(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}u.prototype={accumulate:function(e){return o=this,u=e,new a.Promise(function(t,r){var n=[],i=o._internalType,s=o._outputType,a=o._mimeType;o.on(\"data\",function(e,t){n.push(e),u&&u(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return f.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()});var o,u},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=u},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),u=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),h=new Array(256),i=0;i<256;i++)h[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function f(){n.call(this,\"utf-8 encode\")}h[254]=h[254]=1,s.utf8encode=function(e){return u.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=u.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return u.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=h[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(u.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(u.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(u.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+h[e[r]]>t?r:t}(t),i=t;n!==t.length&&(u.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(f,n),f.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=f},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,o){\"use strict\";var u=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),n=e(\"set-immediate-shim\"),f=e(\"./external\");function i(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}o.newBlob=function(t,r){o.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var s={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return u.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return u.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function a(e){var t=65536,r=o.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=s.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=s.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return s.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return s.stringifyByChar(e)}function d(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}o.applyFromCharCode=a;var c={};c.string={string:i,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:a,array:i,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return a(new Uint8Array(e))},array:function(e){return d(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:i,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:a,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:i,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:a,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return d(e,new Uint8Array(e.length))},nodebuffer:i},o.transformTo=function(e,t){if(t=t||\"\",!e)return t;o.checkSupport(e);var r=o.getTypeOf(t);return c[r][e](t)},o.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":u.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":u.uint8array&&e instanceof Uint8Array?\"uint8array\":u.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},o.checkSupport=function(e){if(!u[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},o.MAX_VALUE_16BITS=65535,o.MAX_VALUE_32BITS=-1,o.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},o.delay=function(e,t,r){n(function(){e.apply(r||null,t||[])})},o.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},o.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])arguments[e].hasOwnProperty(t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},o.prepareContent=function(n,e,i,s,a){return f.Promise.resolve(e).then(function(n){return u.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new f.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t,r=o.getTypeOf(e);return r?(\"arraybuffer\"===r?e=o.transformTo(\"uint8array\",e):\"string\"===r&&(a?e=h.decode(e):i&&!0!==s&&(e=l(t=e,u.uint8array?new Uint8Array(t.length):new Array(t.length)))),e):f.Promise.reject(new Error(\"Can't read the data of '\"+n+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,\"set-immediate-shim\":54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=(e(\"./utf8\"),e(\"./support\"));function u(e){this.files=[],this.loadOptions=e}u.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Corrupted zip: can't find end of central directory\"):new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=u},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utf8\":31,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),u=e(\"./compressions\"),h=e(\"./support\");function f(e,t){this.options=e,this.loadOptions=t}f.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in u)if(u.hasOwnProperty(t)&&u[t].magic===e)return u[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(e){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=h.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=f},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),u=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new u(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof u?this._data:new i(this._data)}};for(var h=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],f=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},l=0;l<h.length;l++)n.prototype[h[l]]=f;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,f,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(h),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){h(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(h,0)};else{var o=new t.MessageChannel;o.port1.onmessage=h,r=function(){o.port2.postMessage(0)}}var u=[];function h(){var e,t;n=!0;for(var r=u.length;r;){for(t=u,u=[],e=-1;++e<r;)t[e]();r=u.length}n=!1}f.exports=function(e){1!==u.push(e)||n||r()}}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function h(){}var f={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==h&&c(this,e)}function u(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function l(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return f.reject(t,e)}e===t?f.reject(t,new TypeError(\"Cannot resolve promise with itself\")):f.resolve(t,e)})}function d(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function c(t,e){var r=!1;function n(e){r||(r=!0,f.reject(t,e))}function i(e){r||(r=!0,f.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(h);return this.state!==n?l(r,this.state===a?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){f.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){l(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){f.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){l(this.promise,this.onRejected,e)},f.resolve=function(e,t){var r=p(d,t);if(\"error\"===r.status)return f.reject(e,r.value);var n=r.value;if(n)c(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},f.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){return e instanceof this?e:f.resolve(new this(h),e)},o.reject=function(e){var t=new this(h);return f.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);for(var s=new Array(n),a=0,t=-1,o=new this(h);++t<n;)u(e[t],t);return o;function u(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,f.resolve(o,s))},function(e){i||(i=!0,f.reject(o,e))})}},o.race=function(e){if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,i=-1,s=new this(h);++i<t;)n=e[i],this.resolve(n).then(function(e){r||(r=!0,f.resolve(s,e))},function(e){r||(r=!0,f.reject(s,e))});return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),u=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),h=Object.prototype.toString,f=0,l=-1,d=0,c=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:l,method:c,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==f)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?u.string2buf(t.dictionary):\"[object ArrayBuffer]\"===h.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==f)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=u.string2buf(e):\"[object ArrayBuffer]\"===h.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==f)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(u.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===f):2!==n||(this.onEnd(f),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===f&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var d=e(\"./zlib/inflate\"),c=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=c.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=d.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,d.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,u=this.strm,h=this.options.chunkSize,f=this.options.dictionary,l=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?u.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?u.input=new Uint8Array(e):u.input=e,u.next_in=0,u.avail_in=u.input.length;do{if(0===u.avail_out&&(u.output=new c.Buf8(h),u.next_out=0,u.avail_out=h),(r=d.inflate(u,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&f&&(o=\"string\"==typeof f?p.string2buf(f):\"[object ArrayBuffer]\"===_.call(f)?new Uint8Array(f):f,r=d.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===l&&(r=m.Z_OK,l=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);u.next_out&&(0!==u.avail_out&&r!==m.Z_STREAM_END&&(0!==u.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(u.output,u.next_out),s=u.next_out-i,a=p.buf2string(u.output,i),u.next_out=s,u.avail_out=h-s,s&&c.arraySet(u.output,u.output,i,s,0),this.onData(a)):this.onData(c.shrinkBuf(u.output,u.next_out)))),0===u.avail_in&&0===u.avail_out&&(l=!0)}while((0<u.avail_in||0===u.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=d.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(u.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=c.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var u=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var h=new u.Buf8(256),n=0;n<256;n++)h[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function f(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,u.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}h[254]=h[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new u.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return f(e,e.length)},r.binstring2buf=function(e){for(var t=new u.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=h[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return f(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+h[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var u,d=e(\"../utils/common\"),h=e(\"./trees\"),c=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),f=0,l=0,m=-2,i=2,_=8,s=286,a=30,o=19,g=2*s+1,v=15,b=3,w=258,y=w+b+1,k=42,x=113;function S(e,t){return e.msg=n[t],t}function z(e){return(e<<1)-(4<e?9:0)}function C(e){for(var t=e.length;0<=--t;)e[t]=0}function E(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(d.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function A(e,t){h._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,E(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function O(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function B(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,u=e.strstart>e.w_size-y?e.strstart-(e.w_size-y):0,h=e.window,f=e.w_mask,l=e.prev,d=e.strstart+w,c=h[s+a-1],p=h[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(r=t)+a]===p&&h[r+a-1]===c&&h[r]===h[s]&&h[++r]===h[s+1]){s+=2,r++;do{}while(h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&s<d);if(n=w-(d-s),s=d-w,a<n){if(e.match_start=t,o<=(a=n))break;c=h[s+a-1],p=h[s+a]}}}while((t=l[t&f])>u&&0!=--i);return a<=e.lookahead?a:e.lookahead}function R(e){var t,r,n,i,s,a,o,u,h,f,l=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=l+(l-y)){for(d.arraySet(e.window,e.window,l,l,0),e.match_start-=l,e.strstart-=l,e.block_start-=l,t=r=e.hash_size;n=e.head[--t],e.head[t]=l<=n?n-l:0,--r;);for(t=r=l;n=e.prev[--t],e.prev[t]=l<=n?n-l:0,--r;);i+=l}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,u=e.strstart+e.lookahead,f=void 0,(h=i)<(f=a.avail_in)&&(f=h),r=0===f?0:(a.avail_in-=f,d.arraySet(o,a.input,a.next_in,f,u),1===a.state.wrap?a.adler=c(a.adler,o,f,u):2===a.state.wrap&&(a.adler=p(a.adler,o,f,u)),a.next_in+=f,a.total_in+=f,f),e.lookahead+=r,e.lookahead+e.insert>=b)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+b-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<b)););}while(e.lookahead<y&&0!==e.strm.avail_in)}function T(e,t){for(var r,n;;){if(e.lookahead<y){if(R(e),e.lookahead<y&&t===f)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=b&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-y&&(e.match_length=B(e,r)),e.match_length>=b)if(n=h._tr_tally(e,e.strstart-e.match_start,e.match_length-b),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=b){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<b-1?e.strstart:b-1,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function D(e,t){for(var r,n,i;;){if(e.lookahead<y){if(R(e),e.lookahead<y&&t===f)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=b&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=b-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-y&&(e.match_length=B(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===b&&4096<e.strstart-e.match_start)&&(e.match_length=b-1)),e.prev_length>=b&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-b,n=h._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-b),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=b-1,e.strstart++,n&&(A(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=h._tr_tally(e,0,e.window[e.strstart-1]))&&A(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=h._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<b-1?e.strstart:b-1,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function F(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function N(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=_,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new d.Buf16(2*g),this.dyn_dtree=new d.Buf16(2*(2*a+1)),this.bl_tree=new d.Buf16(2*(2*o+1)),C(this.dyn_ltree),C(this.dyn_dtree),C(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new d.Buf16(v+1),this.heap=new d.Buf16(2*s+1),C(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new d.Buf16(2*s+1),C(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function U(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?k:x,e.adler=2===t.wrap?0:1,t.last_flush=f,h._tr_init(t),l):S(e,m)}function P(e){var t,r=U(e);return r===l&&((t=e.state).window_size=2*t.w_size,C(t.head),t.max_lazy_match=u[t.level].max_lazy,t.good_match=u[t.level].good_length,t.nice_match=u[t.level].nice_length,t.max_chain_length=u[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=b-1,t.match_available=0,t.ins_h=0),r}function L(e,t,r,n,i,s){if(!e)return m;var a=1;if(-1===t&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||9<i||r!==_||n<8||15<n||t<0||9<t||s<0||4<s)return S(e,m);8===n&&(n=9);var o=new N;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+b-1)/b),o.window=new d.Buf8(2*o.w_size),o.head=new d.Buf16(o.hash_size),o.prev=new d.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new d.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,P(e)}u=[new F(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(R(e),0===e.lookahead&&t===f)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,A(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-y&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(A(e,!1),e.strm.avail_out),1)}),new F(4,4,8,4,T),new F(4,5,16,8,T),new F(4,6,32,32,T),new F(4,4,16,16,D),new F(8,16,32,32,D),new F(8,16,128,128,D),new F(8,32,128,256,D),new F(32,128,258,1024,D),new F(32,258,258,4096,D)],r.deflateInit=function(e,t){return L(e,t,_,15,8,0)},r.deflateInit2=L,r.deflateReset=P,r.deflateResetKeep=U,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?m:(e.state.gzhead=t,l):m},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?S(e,m):m;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&4!==t)return S(e,0===e.avail_out?-5:m);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===k)if(2===n.wrap)e.adler=0,I(n,31),I(n,139),I(n,8),n.gzhead?(I(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),I(n,255&n.gzhead.time),I(n,n.gzhead.time>>8&255),I(n,n.gzhead.time>>16&255),I(n,n.gzhead.time>>24&255),I(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),I(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(I(n,255&n.gzhead.extra.length),I(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(I(n,0),I(n,0),I(n,0),I(n,0),I(n,0),I(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),I(n,3),n.status=x);else{var a=_+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=x,O(n,a),0!==n.strstart&&(O(n,e.adler>>>16),O(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),E(e),i=n.pending,n.pending!==n.pending_buf_size));)I(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),E(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,I(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),E(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,I(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&E(e),n.pending+2<=n.pending_buf_size&&(I(n,255&e.adler),I(n,e.adler>>8&255),e.adler=0,n.status=x)):n.status=x),0!==n.pending){if(E(e),0===e.avail_out)return n.last_flush=-1,l}else if(0===e.avail_in&&z(t)<=z(r)&&4!==t)return S(e,-5);if(666===n.status&&0!==e.avail_in)return S(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==f&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(R(e),0===e.lookahead)){if(t===f)return 1;break}if(e.match_length=0,r=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=w){if(R(e),e.lookahead<=w&&t===f)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=b&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+w;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=w-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=b?(r=h._tr_tally(e,1,e.match_length-b),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(n,t):u[n.level].func(n,t);if(3!==o&&4!==o||(n.status=666),1===o||3===o)return 0===e.avail_out&&(n.last_flush=-1),l;if(2===o&&(1===t?h._tr_align(n):5!==t&&(h._tr_stored_block(n,0,0,!1),3===t&&(C(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),E(e),0===e.avail_out))return n.last_flush=-1,l}return 4!==t?l:n.wrap<=0?1:(2===n.wrap?(I(n,255&e.adler),I(n,e.adler>>8&255),I(n,e.adler>>16&255),I(n,e.adler>>24&255),I(n,255&e.total_in),I(n,e.total_in>>8&255),I(n,e.total_in>>16&255),I(n,e.total_in>>24&255)):(O(n,e.adler>>>16),O(n,65535&e.adler)),E(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?l:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==k&&69!==t&&73!==t&&91!==t&&103!==t&&t!==x&&666!==t?S(e,m):(e.state=null,t===x?S(e,-3):l):m},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,u,h,f=t.length;if(!e||!e.state)return m;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==k||r.lookahead)return m;for(1===s&&(e.adler=c(e.adler,t,f,0)),r.wrap=0,f>=r.w_size&&(0===s&&(C(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new d.Buf8(r.w_size),d.arraySet(h,t,f-r.w_size,r.w_size,0),t=h,f=r.w_size),a=e.avail_in,o=e.next_in,u=e.input,e.avail_in=f,e.next_in=0,e.input=t,R(r);r.lookahead>=b;){for(n=r.strstart,i=r.lookahead-(b-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+b-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=b-1,R(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=b-1,r.match_available=0,e.next_in=o,e.input=u,e.avail_in=a,r.wrap=s,l},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,u,h,f,l,d,c,p,m,_,g,v,b,w,y,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),u=r.dmax,h=r.wsize,f=r.whave,l=r.wnext,d=r.window,c=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,v=(1<<r.distbits)-1;e:do{p<15&&(c+=z[n++]<<p,p+=8,c+=z[n++]<<p,p+=8),b=m[c&g];t:for(;;){if(c>>>=w=b>>>24,p-=w,0==(w=b>>>16&255))C[s++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=m[(65535&b)+(c&(1<<w)-1)];continue t}if(32&w){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}y=65535&b,(w&=15)&&(p<w&&(c+=z[n++]<<p,p+=8),y+=c&(1<<w)-1,c>>>=w,p-=w),p<15&&(c+=z[n++]<<p,p+=8,c+=z[n++]<<p,p+=8),b=_[c&v];r:for(;;){if(c>>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=_[(65535&b)+(c&(1<<w)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&b,p<(w&=15)&&(c+=z[n++]<<p,(p+=8)<w&&(c+=z[n++]<<p,p+=8)),u<(k+=c&(1<<w)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(c>>>=w,p-=w,(w=s-a)<k){if(f<(w=k-w)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=d,(x=0)===l){if(x+=h-w,w<y){for(y-=w;C[s++]=d[x++],--w;);x=s-k,S=C}}else if(l<w){if(x+=h+l-w,(w-=l)<y){for(y-=w;C[s++]=d[x++],--w;);if(x=0,l<y){for(y-=w=l;C[s++]=d[x++],--w;);x=s-k,S=C}}}else if(x+=l-w,w<y){for(y-=w;C[s++]=d[x++],--w;);x=s-k,S=C}for(;2<y;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],y-=3;y&&(C[s++]=S[x++],1<y&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(y-=3););y&&(C[s++]=C[x++],1<y&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=y=p>>3,c&=(1<<(p-=y<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function u(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function h(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=u(e,t))!==N&&(e.state=null),r):U}var f,l,d=!0;function j(e){if(d){var t;for(f=new I.Buf32(512),l=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,f,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,l,0,e.work,{bits:5}),d=!1}e.lencode=f,e.lenbits=9,e.distcode=l,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=u,r.inflateResetKeep=a,r.inflateInit=function(e){return h(e,15)},r.inflateInit2=h,r.inflate=function(e,t){var r,n,i,s,a,o,u,h,f,l,d,c,p,m,_,g,v,b,w,y,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,u=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,h=r.hold,f=r.bits,l=o,d=u,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(2&r.wrap&&35615===h){E[r.check=0]=255&h,E[1]=h>>>8&255,r.check=B(r.check,E,2,0),f=h=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&h)){e.msg=\"unknown compression method\",r.mode=30;break}if(f-=4,k=8+(15&(h>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&h?10:12,f=h=0;break;case 2:for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(r.flags=h,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=h>>8&1),512&r.flags&&(E[0]=255&h,E[1]=h>>>8&255,r.check=B(r.check,E,2,0)),f=h=0,r.mode=3;case 3:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.head&&(r.head.time=h),512&r.flags&&(E[0]=255&h,E[1]=h>>>8&255,E[2]=h>>>16&255,E[3]=h>>>24&255,r.check=B(r.check,E,4,0)),f=h=0,r.mode=4;case 4:for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.head&&(r.head.xflags=255&h,r.head.os=h>>8),512&r.flags&&(E[0]=255&h,E[1]=h>>>8&255,r.check=B(r.check,E,2,0)),f=h=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.length=h,r.head&&(r.head.extra_len=h),512&r.flags&&(E[0]=255&h,E[1]=h>>>8&255,r.check=B(r.check,E,2,0)),f=h=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,c,k)),512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,r.length-=c),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(c=0;k=n[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(c=0;k=n[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}f=h=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}e.adler=r.check=L(h),f=h=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){h>>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}switch(r.last=1&h,f-=1,3&(h>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;h>>>=2,f-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}h>>>=2,f-=2;break;case 14:for(h>>>=7&f,f-=7&f;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if((65535&h)!=(h>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&h,f=h=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(c=r.length){if(o<c&&(c=o),u<c&&(c=u),0===c)break e;I.arraySet(i,n,s,c,a),o-=c,s+=c,u-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;f<14;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(r.nlen=257+(31&h),h>>>=5,f-=5,r.ndist=1+(31&h),h>>>=5,f-=5,r.ncode=4+(15&h),h>>>=4,f-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;f<3;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.lens[A[r.have++]]=7&h,h>>>=3,f-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[h&(1<<r.lenbits)-1])>>>16&255,v=65535&C,!((_=C>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(v<16)h>>>=_,f-=_,r.lens[r.have++]=v;else{if(16===v){for(z=_+2;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h>>>=_,f-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&h),h>>>=2,f-=2}else if(17===v){for(z=_+3;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}f-=_,k=0,c=3+(7&(h>>>=_)),h>>>=3,f-=3}else{for(z=_+7;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}f-=_,k=0,c=11+(127&(h>>>=_)),h>>>=7,f-=7}if(r.have+c>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=u){e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,R(e,d),a=e.next_out,i=e.output,u=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,h=r.hold,f=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[h&(1<<r.lenbits)-1])>>>16&255,v=65535&C,!((_=C>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(g&&0==(240&g)){for(b=_,w=g,y=v;g=(C=r.lencode[y+((h&(1<<b+w)-1)>>b)])>>>16&255,v=65535&C,!(b+(_=C>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}h>>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,r.length=v,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.length+=h&(1<<r.extra)-1,h>>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[h&(1<<r.distbits)-1])>>>16&255,v=65535&C,!((_=C>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(0==(240&g)){for(b=_,w=g,y=v;g=(C=r.distcode[y+((h&(1<<b+w)-1)>>b)])>>>16&255,v=65535&C,!(b+(_=C>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}h>>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=v,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.offset+=h&(1<<r.extra)-1,h>>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===u)break e;if(c=d-u,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=i,p=a-r.offset,c=r.length;for(u<c&&(c=u),u-=c,r.length-=c;i[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===u)break e;i[a++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===o)break e;o--,h|=n[s++]<<f,f+=8}if(d-=u,e.total_out+=d,r.total+=d,d&&(e.adler=r.check=r.flags?B(r.check,i,d,a-d):O(r.check,i,d,a-d)),d=u,(r.flags?h:L(h))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}f=h=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}f=h=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,(r.wsize||d!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,d-e.avail_out)?(r.mode=31,-4):(l-=e.avail_in,d-=e.avail_out,e.total_in+=l,e.total_out+=d,r.total+=d,r.wrap&&d&&(e.adler=r.check=r.flags?B(r.check,i,d,e.next_out-d):O(r.check,i,d,e.next_out-d)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==l&&0===d||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var u,h,f,l,d,c,p,m,_,g=o.bits,v=0,b=0,w=0,y=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(v=0;v<=15;v++)O[v]=0;for(b=0;b<n;b++)O[t[r+b]]++;for(k=g,y=15;1<=y&&0===O[y];y--);if(y<k&&(k=y),0===y)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(w=1;w<y&&0===O[w];w++);for(k<w&&(k=w),v=z=1;v<=15;v++)if(z<<=1,(z-=O[v])<0)return-1;if(0<z&&(0===e||1!==y))return-1;for(B[1]=0,v=1;v<15;v++)B[v+1]=B[v]+O[v];for(b=0;b<n;b++)0!==t[r+b]&&(a[B[t[r+b]]++]=b);if(c=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),v=w,d=s,S=b=E=0,f=-1,l=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=v-S,_=a[b]<c?(m=0,a[b]):a[b]>c?(m=R[T+a[b]],A[I+a[b]]):(m=96,0),u=1<<v-S,w=h=1<<x;i[d+(E>>S)+(h-=u)]=p<<24|m<<16|_|0,0!==h;);for(u=1<<v-1;E&u;)u>>=1;if(0!==u?(E&=u-1,E+=u):E=0,b++,0==--O[v]){if(v===y)break;v=t[r+a[b]]}if(k<v&&(E&l)!==f){for(0===S&&(S=k),d+=w,z=1<<(x=v-S);x+S<y&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[f=E&l]=k<<24|x<<16|d-s|0}}return 0!==E&&(i[d+E]=v-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var o=e(\"../utils/common\");function n(e){for(var t=e.length;0<=--t;)e[t]=0}var _=15,i=16,u=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],h=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Array(576);n(l);var d=new Array(60);n(d);var c=new Array(512);n(c);var p=new Array(256);n(p);var m=new Array(29);n(m);var g,v,b,w=new Array(30);function y(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function s(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function k(e){return e<256?c[e]:c[256+(e>>>7)]}function x(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function S(e,t,r){e.bi_valid>i-r?(e.bi_buf|=t<<e.bi_valid&65535,x(e,e.bi_buf),e.bi_buf=t>>i-e.bi_valid,e.bi_valid+=r-i):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function z(e,t,r){S(e,r[2*t],r[2*t+1])}function C(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function E(e,t,r){var n,i,s=new Array(_+1),a=0;for(n=1;n<=_;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=C(s[o]++,o))}}function A(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function I(e){8<e.bi_valid?x(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function O(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function B(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&O(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!O(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function R(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?z(e,i,t):(z(e,(s=p[i])+256+1,t),0!==(a=u[s])&&S(e,i-=m[s],a),z(e,s=k(--n),r),0!==(a=h[s])&&S(e,n-=w[s],a)),o<e.last_lit;);z(e,256,t)}function T(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,u=t.stat_desc.elems,h=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<u;r++)0!==s[2*r]?(e.heap[++e.heap_len]=h=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=h<2?++h:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=h,r=e.heap_len>>1;1<=r;r--)B(e,s,r);for(i=u;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],B(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,B(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,u=t.dyn_tree,h=t.max_code,f=t.stat_desc.static_tree,l=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,c=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=_;s++)e.bl_count[s]=0;for(u[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)p<(s=u[2*u[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),u[2*n+1]=s,h<n||(e.bl_count[s]++,a=0,c<=n&&(a=d[n-c]),o=u[2*n],e.opt_len+=o*(s+a),l&&(e.static_len+=o*(f[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)h<(i=e.heap[--r])||(u[2*i+1]!==s&&(e.opt_len+=(s-u[2*i+1])*u[2*i],u[2*i+1]=s),n--)}}(e,t),E(s,h,e.bl_count)}function D(e,t,r){var n,i,s=-1,a=t[1],o=0,u=7,h=4;for(0===a&&(u=138,h=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<u&&i===a||(o<h?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,h=(o=0)===a?(u=138,3):i===a?(u=6,3):(u=7,4))}function F(e,t,r){var n,i,s=-1,a=t[1],o=0,u=7,h=4;for(0===a&&(u=138,h=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<u&&i===a)){if(o<h)for(;z(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(z(e,i,e.bl_tree),o--),z(e,16,e.bl_tree),S(e,o-3,2)):o<=10?(z(e,17,e.bl_tree),S(e,o-3,3)):(z(e,18,e.bl_tree),S(e,o-11,7));s=i,h=(o=0)===a?(u=138,3):i===a?(u=6,3):(u=7,4)}}n(w);var N=!1;function U(e,t,r,n){var i,s,a;S(e,0+(n?1:0),3),s=t,a=r,I(i=e),x(i,a),x(i,~a),o.arraySet(i.pending_buf,i.window,s,a,i.pending),i.pending+=a}r._tr_init=function(e){N||(function(){var e,t,r,n,i,s=new Array(_+1);for(n=r=0;n<28;n++)for(m[n]=r,e=0;e<1<<u[n];e++)p[r++]=n;for(p[r-1]=n,n=i=0;n<16;n++)for(w[n]=i,e=0;e<1<<h[n];e++)c[i++]=n;for(i>>=7;n<30;n++)for(w[n]=i<<7,e=0;e<1<<h[n]-7;e++)c[256+i++]=n;for(t=0;t<=_;t++)s[t]=0;for(e=0;e<=143;)l[2*e+1]=8,e++,s[8]++;for(;e<=255;)l[2*e+1]=9,e++,s[9]++;for(;e<=279;)l[2*e+1]=7,e++,s[7]++;for(;e<=287;)l[2*e+1]=8,e++,s[8]++;for(E(l,287,s),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=C(e,5);g=new y(l,u,257,286,_),v=new y(d,h,0,30,_),b=new y(new Array(0),a,0,19,7)}(),N=!0),e.l_desc=new s(e.dyn_ltree,g),e.d_desc=new s(e.dyn_dtree,v),e.bl_desc=new s(e.bl_tree,b),e.bi_buf=0,e.bi_valid=0,A(e)},r._tr_stored_block=U,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),T(e,e.l_desc),T(e,e.d_desc),a=function(e){var t;for(D(e,e.dyn_ltree,e.l_desc.max_code),D(e,e.dyn_dtree,e.d_desc.max_code),T(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*f[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?U(e,t,r,n):4===e.strategy||s===i?(S(e,2+(n?1:0),3),R(e,l,d)):(S(e,4+(n?1:0),3),function(e,t,r,n){var i;for(S(e,t-257,5),S(e,r-1,5),S(e,n-4,4),i=0;i<n;i++)S(e,e.bl_tree[2*f[i]+1],3);F(e,e.dyn_ltree,t-1),F(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),R(e,e.dyn_ltree,e.dyn_dtree)),A(e),n&&I(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(p[r]+256+1)]++,e.dyn_dtree[2*k(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;S(e,2,3),z(e,256,l),16===(t=e).bi_valid?(x(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){\"use strict\";t.exports=\"function\"==typeof setImmediate?setImmediate:function(){var e=[].slice.apply(arguments);e.splice(1,0,0),setTimeout.apply(null,e)}},{}]},{},[10])(10)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)});\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}]},{},[1])(1)\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/af.js",
    "content": "//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var af = moment.defineLocale('af', {\n        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n        meridiemParse: /vm|nm/i,\n        isPM: function (input) {\n            return /^nm$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'vm' : 'VM';\n            } else {\n                return isLower ? 'nm' : 'NM';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Vandag om] LT',\n            nextDay: '[Môre om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[Gister om] LT',\n            lastWeek: '[Laas] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oor %s',\n            past: '%s gelede',\n            s: \"'n paar sekondes\",\n            ss: '%d sekondes',\n            m: \"'n minuut\",\n            mm: '%d minute',\n            h: \"'n uur\",\n            hh: '%d ure',\n            d: \"'n dag\",\n            dd: '%d dae',\n            M: \"'n maand\",\n            MM: '%d maande',\n            y: \"'n jaar\",\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            ); // Thanks to Joris Röling : https://github.com/jjupiter\n        },\n        week: {\n            dow: 1, // Maandag is die eerste dag van die week.\n            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n        },\n    });\n\n    return af;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-dz.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'جانفي',\n            'فيفري',\n            'مارس',\n            'أفريل',\n            'ماي',\n            'جوان',\n            'جويلية',\n            'أوت',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var arDz = moment.defineLocale('ar-dz', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arDz;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-kw.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arKw = moment.defineLocale('ar-kw', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return arKw;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-ly.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '1',\n            2: '2',\n            3: '3',\n            4: '4',\n            5: '5',\n            6: '6',\n            7: '7',\n            8: '8',\n            9: '9',\n            0: '0',\n        },\n        pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var arLy = moment.defineLocale('ar-ly', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return arLy;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-ma.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arMa = moment.defineLocale('ar-ma', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arMa;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-sa.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        };\n\n    var arSa = moment.defineLocale('ar-sa', {\n        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return arSa;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar-tn.js",
    "content": "//! moment.js locale configuration\n//! locale  :  Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arTn = moment.defineLocale('ar-tn', {\n        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arTn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ar.js",
    "content": "//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var ar = moment.defineLocale('ar', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return ar;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/az.js",
    "content": "//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: '-inci',\n        5: '-inci',\n        8: '-inci',\n        70: '-inci',\n        80: '-inci',\n        2: '-nci',\n        7: '-nci',\n        20: '-nci',\n        50: '-nci',\n        3: '-üncü',\n        4: '-üncü',\n        100: '-üncü',\n        6: '-ncı',\n        9: '-uncu',\n        10: '-uncu',\n        30: '-uncu',\n        60: '-ıncı',\n        90: '-ıncı',\n    };\n\n    var az = moment.defineLocale('az', {\n        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n        weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n            '_'\n        ),\n        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[sabah saat] LT',\n            nextWeek: '[gələn həftə] dddd [saat] LT',\n            lastDay: '[dünən] LT',\n            lastWeek: '[keçən həftə] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s əvvəl',\n            s: 'bir neçə saniyə',\n            ss: '%d saniyə',\n            m: 'bir dəqiqə',\n            mm: '%d dəqiqə',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir il',\n            yy: '%d il',\n        },\n        meridiemParse: /gecə|səhər|gündüz|axşam/,\n        isPM: function (input) {\n            return /^(gündüz|axşam)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'gecə';\n            } else if (hour < 12) {\n                return 'səhər';\n            } else if (hour < 17) {\n                return 'gündüz';\n            } else {\n                return 'axşam';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n        ordinal: function (number) {\n            if (number === 0) {\n                // special case for zero\n                return number + '-ıncı';\n            }\n            var a = number % 10,\n                b = (number % 100) - a,\n                c = number >= 100 ? 100 : null;\n            return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return az;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/be.js",
    "content": "//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n            dd: 'дзень_дні_дзён',\n            MM: 'месяц_месяцы_месяцаў',\n            yy: 'год_гады_гадоў',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвіліна' : 'хвіліну';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'гадзіна' : 'гадзіну';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n\n    var be = moment.defineLocale('be', {\n        months: {\n            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n                '_'\n            ),\n            standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n            '_'\n        ),\n        weekdays: {\n            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n                '_'\n            ),\n            standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n        },\n        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n        },\n        calendar: {\n            sameDay: '[Сёння ў] LT',\n            nextDay: '[Заўтра ў] LT',\n            lastDay: '[Учора ў] LT',\n            nextWeek: function () {\n                return '[У] dddd [ў] LT';\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[У мінулую] dddd [ў] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[У мінулы] dddd [ў] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'праз %s',\n            past: '%s таму',\n            s: 'некалькі секунд',\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithPlural,\n            hh: relativeTimeWithPlural,\n            d: 'дзень',\n            dd: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночы|раніцы|дня|вечара/,\n        isPM: function (input) {\n            return /^(дня|вечара)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночы';\n            } else if (hour < 12) {\n                return 'раніцы';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечара';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return (number % 10 === 2 || number % 10 === 3) &&\n                        number % 100 !== 12 &&\n                        number % 100 !== 13\n                        ? number + '-і'\n                        : number + '-ы';\n                case 'D':\n                    return number + '-га';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return be;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bg.js",
    "content": "//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var bg = moment.defineLocale('bg', {\n        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Днес в] LT',\n            nextDay: '[Утре в] LT',\n            nextWeek: 'dddd [в] LT',\n            lastDay: '[Вчера в] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Миналата] dddd [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Миналия] dddd [в] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'след %s',\n            past: 'преди %s',\n            s: 'няколко секунди',\n            ss: '%d секунди',\n            m: 'минута',\n            mm: '%d минути',\n            h: 'час',\n            hh: '%d часа',\n            d: 'ден',\n            dd: '%d дена',\n            w: 'седмица',\n            ww: '%d седмици',\n            M: 'месец',\n            MM: '%d месеца',\n            y: 'година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return bg;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bm.js",
    "content": "//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var bm = moment.defineLocale('bm', {\n        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n            '_'\n        ),\n        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'MMMM [tile] D [san] YYYY',\n            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bi lɛrɛ] LT',\n            nextDay: '[Sini lɛrɛ] LT',\n            nextWeek: 'dddd [don lɛrɛ] LT',\n            lastDay: '[Kunu lɛrɛ] LT',\n            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s kɔnɔ',\n            past: 'a bɛ %s bɔ',\n            s: 'sanga dama dama',\n            ss: 'sekondi %d',\n            m: 'miniti kelen',\n            mm: 'miniti %d',\n            h: 'lɛrɛ kelen',\n            hh: 'lɛrɛ %d',\n            d: 'tile kelen',\n            dd: 'tile %d',\n            M: 'kalo kelen',\n            MM: 'kalo %d',\n            y: 'san kelen',\n            yy: 'san %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return bm;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bn-bd.js",
    "content": "//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    var bnBd = moment.defineLocale('bn-bd', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n\n        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'রাত') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ভোর') {\n                return hour;\n            } else if (meridiem === 'সকাল') {\n                return hour;\n            } else if (meridiem === 'দুপুর') {\n                return hour >= 3 ? hour : hour + 12;\n            } else if (meridiem === 'বিকাল') {\n                return hour + 12;\n            } else if (meridiem === 'সন্ধ্যা') {\n                return hour + 12;\n            }\n        },\n\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 6) {\n                return 'ভোর';\n            } else if (hour < 12) {\n                return 'সকাল';\n            } else if (hour < 15) {\n                return 'দুপুর';\n            } else if (hour < 18) {\n                return 'বিকাল';\n            } else if (hour < 20) {\n                return 'সন্ধ্যা';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bnBd;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bn.js",
    "content": "//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    var bn = moment.defineLocale('bn', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'রাত' && hour >= 4) ||\n                (meridiem === 'দুপুর' && hour < 5) ||\n                meridiem === 'বিকাল'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 10) {\n                return 'সকাল';\n            } else if (hour < 17) {\n                return 'দুপুর';\n            } else if (hour < 20) {\n                return 'বিকাল';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bo.js",
    "content": "//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '༡',\n            2: '༢',\n            3: '༣',\n            4: '༤',\n            5: '༥',\n            6: '༦',\n            7: '༧',\n            8: '༨',\n            9: '༩',\n            0: '༠',\n        },\n        numberMap = {\n            '༡': '1',\n            '༢': '2',\n            '༣': '3',\n            '༤': '4',\n            '༥': '5',\n            '༦': '6',\n            '༧': '7',\n            '༨': '8',\n            '༩': '9',\n            '༠': '0',\n        };\n\n    var bo = moment.defineLocale('bo', {\n        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n            '_'\n        ),\n        monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n            '_'\n        ),\n        monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n        monthsParseExact: true,\n        weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[དི་རིང] LT',\n            nextDay: '[སང་ཉིན] LT',\n            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n            lastDay: '[ཁ་སང] LT',\n            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ལ་',\n            past: '%s སྔན་ལ',\n            s: 'ལམ་སང',\n            ss: '%d སྐར་ཆ།',\n            m: 'སྐར་མ་གཅིག',\n            mm: '%d སྐར་མ',\n            h: 'ཆུ་ཚོད་གཅིག',\n            hh: '%d ཆུ་ཚོད',\n            d: 'ཉིན་གཅིག',\n            dd: '%d ཉིན་',\n            M: 'ཟླ་བ་གཅིག',\n            MM: '%d ཟླ་བ',\n            y: 'ལོ་གཅིག',\n            yy: '%d ལོ',\n        },\n        preparse: function (string) {\n            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'མཚན་མོ' && hour >= 4) ||\n                (meridiem === 'ཉིན་གུང' && hour < 5) ||\n                meridiem === 'དགོང་དག'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'མཚན་མོ';\n            } else if (hour < 10) {\n                return 'ཞོགས་ཀས';\n            } else if (hour < 17) {\n                return 'ཉིན་གུང';\n            } else if (hour < 20) {\n                return 'དགོང་དག';\n            } else {\n                return 'མཚན་མོ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/br.js",
    "content": "//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithMutation(number, withoutSuffix, key) {\n        var format = {\n            mm: 'munutenn',\n            MM: 'miz',\n            dd: 'devezh',\n        };\n        return number + ' ' + mutation(format[key], number);\n    }\n    function specialMutationForYears(number) {\n        switch (lastNumber(number)) {\n            case 1:\n            case 3:\n            case 4:\n            case 5:\n            case 9:\n                return number + ' bloaz';\n            default:\n                return number + ' vloaz';\n        }\n    }\n    function lastNumber(number) {\n        if (number > 9) {\n            return lastNumber(number % 10);\n        }\n        return number;\n    }\n    function mutation(text, number) {\n        if (number === 2) {\n            return softMutation(text);\n        }\n        return text;\n    }\n    function softMutation(text) {\n        var mutationTable = {\n            m: 'v',\n            b: 'v',\n            d: 'z',\n        };\n        if (mutationTable[text.charAt(0)] === undefined) {\n            return text;\n        }\n        return mutationTable[text.charAt(0)] + text.substring(1);\n    }\n\n    var monthsParse = [\n            /^gen/i,\n            /^c[ʼ\\']hwe/i,\n            /^meu/i,\n            /^ebr/i,\n            /^mae/i,\n            /^(mez|eve)/i,\n            /^gou/i,\n            /^eos/i,\n            /^gwe/i,\n            /^her/i,\n            /^du/i,\n            /^ker/i,\n        ],\n        monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n        monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        fullWeekdaysParse = [\n            /^sul/i,\n            /^lun/i,\n            /^meurzh/i,\n            /^merc[ʼ\\']her/i,\n            /^yaou/i,\n            /^gwener/i,\n            /^sadorn/i,\n        ],\n        shortWeekdaysParse = [\n            /^Sul/i,\n            /^Lun/i,\n            /^Meu/i,\n            /^Mer/i,\n            /^Yao/i,\n            /^Gwe/i,\n            /^Sad/i,\n        ],\n        minWeekdaysParse = [\n            /^Su/i,\n            /^Lu/i,\n            /^Me([^r]|$)/i,\n            /^Mer/i,\n            /^Ya/i,\n            /^Gw/i,\n            /^Sa/i,\n        ];\n\n    var br = moment.defineLocale('br', {\n        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n            '_'\n        ),\n        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n        weekdaysParse: minWeekdaysParse,\n        fullWeekdaysParse: fullWeekdaysParse,\n        shortWeekdaysParse: shortWeekdaysParse,\n        minWeekdaysParse: minWeekdaysParse,\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [a viz] MMMM YYYY',\n            LLL: 'D [a viz] MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hiziv da] LT',\n            nextDay: '[Warcʼhoazh da] LT',\n            nextWeek: 'dddd [da] LT',\n            lastDay: '[Decʼh da] LT',\n            lastWeek: 'dddd [paset da] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'a-benn %s',\n            past: '%s ʼzo',\n            s: 'un nebeud segondennoù',\n            ss: '%d eilenn',\n            m: 'ur vunutenn',\n            mm: relativeTimeWithMutation,\n            h: 'un eur',\n            hh: '%d eur',\n            d: 'un devezh',\n            dd: relativeTimeWithMutation,\n            M: 'ur miz',\n            MM: relativeTimeWithMutation,\n            y: 'ur bloaz',\n            yy: specialMutationForYears,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'añ' : 'vet';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n        isPM: function (token) {\n            return token === 'g.m.';\n        },\n        meridiem: function (hour, minute, isLower) {\n            return hour < 12 ? 'a.m.' : 'g.m.';\n        },\n    });\n\n    return br;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/bs.js",
    "content": "//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    var bs = moment.defineLocale('bs', {\n        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                        return '[prošlu] dddd [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return bs;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ca.js",
    "content": "//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ca = moment.defineLocale('ca', {\n        months: {\n            standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n                '_'\n            ),\n            format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a les] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextDay: function () {\n                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastDay: function () {\n                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [passat a ' +\n                    (this.hours() !== 1 ? 'les' : 'la') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'uns segons',\n            ss: '%d segons',\n            m: 'un minut',\n            mm: '%d minuts',\n            h: 'una hora',\n            hh: '%d hores',\n            d: 'un dia',\n            dd: '%d dies',\n            M: 'un mes',\n            MM: '%d mesos',\n            y: 'un any',\n            yy: '%d anys',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ca;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/cs.js",
    "content": "//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n            '_'\n        ),\n        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n        monthsParse = [\n            /^led/i,\n            /^úno/i,\n            /^bře/i,\n            /^dub/i,\n            /^kvě/i,\n            /^(čvn|červen$|června)/i,\n            /^(čvc|červenec|července)/i,\n            /^srp/i,\n            /^zář/i,\n            /^říj/i,\n            /^lis/i,\n            /^pro/i,\n        ],\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n    function plural(n) {\n        return n > 1 && n < 5 && ~~(n / 10) !== 1;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'sekundy' : 'sekund');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'minuty' : 'minut');\n                } else {\n                    return result + 'minutami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'hodiny' : 'hodin');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'den' : 'dnem';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'dny' : 'dní');\n                } else {\n                    return result + 'dny';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'měsíce' : 'měsíců');\n                } else {\n                    return result + 'měsíci';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokem';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'roky' : 'let');\n                } else {\n                    return result + 'lety';\n                }\n        }\n    }\n\n    var cs = moment.defineLocale('cs', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n        monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n            l: 'D. M. YYYY',\n        },\n        calendar: {\n            sameDay: '[dnes v] LT',\n            nextDay: '[zítra v] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [v] LT';\n                    case 3:\n                        return '[ve středu v] LT';\n                    case 4:\n                        return '[ve čtvrtek v] LT';\n                    case 5:\n                        return '[v pátek v] LT';\n                    case 6:\n                        return '[v sobotu v] LT';\n                }\n            },\n            lastDay: '[včera v] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulou neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[minulé] dddd [v] LT';\n                    case 3:\n                        return '[minulou středu v] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [v] LT';\n                    case 6:\n                        return '[minulou sobotu v] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'před %s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return cs;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/cv.js",
    "content": "//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var cv = moment.defineLocale('cv', {\n        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n            '_'\n        ),\n        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n        weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n            '_'\n        ),\n        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n        },\n        calendar: {\n            sameDay: '[Паян] LT [сехетре]',\n            nextDay: '[Ыран] LT [сехетре]',\n            lastDay: '[Ӗнер] LT [сехетре]',\n            nextWeek: '[Ҫитес] dddd LT [сехетре]',\n            lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (output) {\n                var affix = /сехет$/i.exec(output)\n                    ? 'рен'\n                    : /ҫул$/i.exec(output)\n                    ? 'тан'\n                    : 'ран';\n                return output + affix;\n            },\n            past: '%s каялла',\n            s: 'пӗр-ик ҫеккунт',\n            ss: '%d ҫеккунт',\n            m: 'пӗр минут',\n            mm: '%d минут',\n            h: 'пӗр сехет',\n            hh: '%d сехет',\n            d: 'пӗр кун',\n            dd: '%d кун',\n            M: 'пӗр уйӑх',\n            MM: '%d уйӑх',\n            y: 'пӗр ҫул',\n            yy: '%d ҫул',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n        ordinal: '%d-мӗш',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return cv;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/cy.js",
    "content": "//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var cy = moment.defineLocale('cy', {\n        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n            '_'\n        ),\n        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n            '_'\n        ),\n        weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n        weekdaysParseExact: true,\n        // time formats are the same as en-gb\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Heddiw am] LT',\n            nextDay: '[Yfory am] LT',\n            nextWeek: 'dddd [am] LT',\n            lastDay: '[Ddoe am] LT',\n            lastWeek: 'dddd [diwethaf am] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'mewn %s',\n            past: '%s yn ôl',\n            s: 'ychydig eiliadau',\n            ss: '%d eiliad',\n            m: 'munud',\n            mm: '%d munud',\n            h: 'awr',\n            hh: '%d awr',\n            d: 'diwrnod',\n            dd: '%d diwrnod',\n            M: 'mis',\n            MM: '%d mis',\n            y: 'blwyddyn',\n            yy: '%d flynedd',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n        ordinal: function (number) {\n            var b = number,\n                output = '',\n                lookup = [\n                    '',\n                    'af',\n                    'il',\n                    'ydd',\n                    'ydd',\n                    'ed',\n                    'ed',\n                    'ed',\n                    'fed',\n                    'fed',\n                    'fed', // 1af to 10fed\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'fed', // 11eg to 20fed\n                ];\n            if (b > 20) {\n                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n                    output = 'fed'; // not 30ain, 70ain or 90ain\n                } else {\n                    output = 'ain';\n                }\n            } else if (b > 0) {\n                output = lookup[b];\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return cy;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/da.js",
    "content": "//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var da = moment.defineLocale('da', {\n        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'på dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[i] dddd[s kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'få sekunder',\n            ss: '%d sekunder',\n            m: 'et minut',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dage',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'et år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return da;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/de-at.js",
    "content": "//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var deAt = moment.defineLocale('de-at', {\n        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return deAt;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/de-ch.js",
    "content": "//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var deCh = moment.defineLocale('de-ch', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return deCh;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/de.js",
    "content": "//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var de = moment.defineLocale('de', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return de;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/dv.js",
    "content": "//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'ޖެނުއަރީ',\n            'ފެބްރުއަރީ',\n            'މާރިޗު',\n            'އޭޕްރީލު',\n            'މޭ',\n            'ޖޫން',\n            'ޖުލައި',\n            'އޯގަސްޓު',\n            'ސެޕްޓެމްބަރު',\n            'އޮކްޓޯބަރު',\n            'ނޮވެމްބަރު',\n            'ޑިސެމްބަރު',\n        ],\n        weekdays = [\n            'އާދިއްތަ',\n            'ހޯމަ',\n            'އަންގާރަ',\n            'ބުދަ',\n            'ބުރާސްފަތި',\n            'ހުކުރު',\n            'ހޮނިހިރު',\n        ];\n\n    var dv = moment.defineLocale('dv', {\n        months: months,\n        monthsShort: months,\n        weekdays: weekdays,\n        weekdaysShort: weekdays,\n        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/M/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /މކ|މފ/,\n        isPM: function (input) {\n            return 'މފ' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'މކ';\n            } else {\n                return 'މފ';\n            }\n        },\n        calendar: {\n            sameDay: '[މިއަދު] LT',\n            nextDay: '[މާދަމާ] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[އިއްޔެ] LT',\n            lastWeek: '[ފާއިތުވި] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ތެރޭގައި %s',\n            past: 'ކުރިން %s',\n            s: 'ސިކުންތުކޮޅެއް',\n            ss: 'd% ސިކުންތު',\n            m: 'މިނިޓެއް',\n            mm: 'މިނިޓު %d',\n            h: 'ގަޑިއިރެއް',\n            hh: 'ގަޑިއިރު %d',\n            d: 'ދުވަހެއް',\n            dd: 'ދުވަސް %d',\n            M: 'މަހެއް',\n            MM: 'މަސް %d',\n            y: 'އަހަރެއް',\n            yy: 'އަހަރު %d',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 7, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return dv;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/el.js",
    "content": "//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    var el = moment.defineLocale('el', {\n        monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n            '_'\n        ),\n        monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n            '_'\n        ),\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return this._monthsNominativeEl;\n            } else if (\n                typeof format === 'string' &&\n                /D/.test(format.substring(0, format.indexOf('MMMM')))\n            ) {\n                // if there is a day number before 'MMMM'\n                return this._monthsGenitiveEl[momentToFormat.month()];\n            } else {\n                return this._monthsNominativeEl[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n            '_'\n        ),\n        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'μμ' : 'ΜΜ';\n            } else {\n                return isLower ? 'πμ' : 'ΠΜ';\n            }\n        },\n        isPM: function (input) {\n            return (input + '').toLowerCase()[0] === 'μ';\n        },\n        meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendarEl: {\n            sameDay: '[Σήμερα {}] LT',\n            nextDay: '[Αύριο {}] LT',\n            nextWeek: 'dddd [{}] LT',\n            lastDay: '[Χθες {}] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 6:\n                        return '[το προηγούμενο] dddd [{}] LT';\n                    default:\n                        return '[την προηγούμενη] dddd [{}] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        calendar: function (key, mom) {\n            var output = this._calendarEl[key],\n                hours = mom && mom.hours();\n            if (isFunction(output)) {\n                output = output.apply(mom);\n            }\n            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n        },\n        relativeTime: {\n            future: 'σε %s',\n            past: '%s πριν',\n            s: 'λίγα δευτερόλεπτα',\n            ss: '%d δευτερόλεπτα',\n            m: 'ένα λεπτό',\n            mm: '%d λεπτά',\n            h: 'μία ώρα',\n            hh: '%d ώρες',\n            d: 'μία μέρα',\n            dd: '%d μέρες',\n            M: 'ένας μήνας',\n            MM: '%d μήνες',\n            y: 'ένας χρόνος',\n            yy: '%d χρόνια',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}η/,\n        ordinal: '%dη',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4st is the first week of the year.\n        },\n    });\n\n    return el;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-SG.js",
    "content": "//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enSg = moment.defineLocale('en-sg', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enSg;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-au.js",
    "content": "//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enAu = moment.defineLocale('en-au', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enAu;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-ca.js",
    "content": "//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enCa = moment.defineLocale('en-ca', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'YYYY-MM-DD',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY h:mm A',\n            LLLL: 'dddd, MMMM D, YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    return enCa;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-gb.js",
    "content": "//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enGb = moment.defineLocale('en-gb', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enGb;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-ie.js",
    "content": "//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIe = moment.defineLocale('en-ie', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enIe;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-il.js",
    "content": "//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIl = moment.defineLocale('en-il', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    return enIl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-in.js",
    "content": "//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIn = moment.defineLocale('en-in', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return enIn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/en-nz.js",
    "content": "//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enNz = moment.defineLocale('en-nz', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enNz;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/eo.js",
    "content": "//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var eo = moment.defineLocale('eo', {\n        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: '[la] D[-an de] MMMM, YYYY',\n            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n        },\n        meridiemParse: /[ap]\\.t\\.m/i,\n        isPM: function (input) {\n            return input.charAt(0).toLowerCase() === 'p';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'p.t.m.' : 'P.T.M.';\n            } else {\n                return isLower ? 'a.t.m.' : 'A.T.M.';\n            }\n        },\n        calendar: {\n            sameDay: '[Hodiaŭ je] LT',\n            nextDay: '[Morgaŭ je] LT',\n            nextWeek: 'dddd[n je] LT',\n            lastDay: '[Hieraŭ je] LT',\n            lastWeek: '[pasintan] dddd[n je] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'post %s',\n            past: 'antaŭ %s',\n            s: 'kelkaj sekundoj',\n            ss: '%d sekundoj',\n            m: 'unu minuto',\n            mm: '%d minutoj',\n            h: 'unu horo',\n            hh: '%d horoj',\n            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n            dd: '%d tagoj',\n            M: 'unu monato',\n            MM: '%d monatoj',\n            y: 'unu jaro',\n            yy: '%d jaroj',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}a/,\n        ordinal: '%da',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return eo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/es-do.js",
    "content": "//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esDo = moment.defineLocale('es-do', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return esDo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/es-mx.js",
    "content": "//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esMx = moment.defineLocale('es-mx', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    return esMx;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/es-us.js",
    "content": "//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esUs = moment.defineLocale('es-us', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'MM/DD/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return esUs;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/es.js",
    "content": "//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var es = moment.defineLocale('es', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    return es;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/et.js",
    "content": "//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n            ss: [number + 'sekundi', number + 'sekundit'],\n            m: ['ühe minuti', 'üks minut'],\n            mm: [number + ' minuti', number + ' minutit'],\n            h: ['ühe tunni', 'tund aega', 'üks tund'],\n            hh: [number + ' tunni', number + ' tundi'],\n            d: ['ühe päeva', 'üks päev'],\n            M: ['kuu aja', 'kuu aega', 'üks kuu'],\n            MM: [number + ' kuu', number + ' kuud'],\n            y: ['ühe aasta', 'aasta', 'üks aasta'],\n            yy: [number + ' aasta', number + ' aastat'],\n        };\n        if (withoutSuffix) {\n            return format[key][2] ? format[key][2] : format[key][1];\n        }\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var et = moment.defineLocale('et', {\n        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n            '_'\n        ),\n        monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n            '_'\n        ),\n        weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n            '_'\n        ),\n        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Täna,] LT',\n            nextDay: '[Homme,] LT',\n            nextWeek: '[Järgmine] dddd LT',\n            lastDay: '[Eile,] LT',\n            lastWeek: '[Eelmine] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s pärast',\n            past: '%s tagasi',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: '%d päeva',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return et;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/eu.js",
    "content": "//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var eu = moment.defineLocale('eu', {\n        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n            '_'\n        ),\n        monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n            '_'\n        ),\n        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY[ko] MMMM[ren] D[a]',\n            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n            l: 'YYYY-M-D',\n            ll: 'YYYY[ko] MMM D[a]',\n            lll: 'YYYY[ko] MMM D[a] HH:mm',\n            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n        },\n        calendar: {\n            sameDay: '[gaur] LT[etan]',\n            nextDay: '[bihar] LT[etan]',\n            nextWeek: 'dddd LT[etan]',\n            lastDay: '[atzo] LT[etan]',\n            lastWeek: '[aurreko] dddd LT[etan]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s barru',\n            past: 'duela %s',\n            s: 'segundo batzuk',\n            ss: '%d segundo',\n            m: 'minutu bat',\n            mm: '%d minutu',\n            h: 'ordu bat',\n            hh: '%d ordu',\n            d: 'egun bat',\n            dd: '%d egun',\n            M: 'hilabete bat',\n            MM: '%d hilabete',\n            y: 'urte bat',\n            yy: '%d urte',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return eu;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fa.js",
    "content": "//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '۱',\n            2: '۲',\n            3: '۳',\n            4: '۴',\n            5: '۵',\n            6: '۶',\n            7: '۷',\n            8: '۸',\n            9: '۹',\n            0: '۰',\n        },\n        numberMap = {\n            '۱': '1',\n            '۲': '2',\n            '۳': '3',\n            '۴': '4',\n            '۵': '5',\n            '۶': '6',\n            '۷': '7',\n            '۸': '8',\n            '۹': '9',\n            '۰': '0',\n        };\n\n    var fa = moment.defineLocale('fa', {\n        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /قبل از ظهر|بعد از ظهر/,\n        isPM: function (input) {\n            return /بعد از ظهر/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'قبل از ظهر';\n            } else {\n                return 'بعد از ظهر';\n            }\n        },\n        calendar: {\n            sameDay: '[امروز ساعت] LT',\n            nextDay: '[فردا ساعت] LT',\n            nextWeek: 'dddd [ساعت] LT',\n            lastDay: '[دیروز ساعت] LT',\n            lastWeek: 'dddd [پیش] [ساعت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'در %s',\n            past: '%s پیش',\n            s: 'چند ثانیه',\n            ss: '%d ثانیه',\n            m: 'یک دقیقه',\n            mm: '%d دقیقه',\n            h: 'یک ساعت',\n            hh: '%d ساعت',\n            d: 'یک روز',\n            dd: '%d روز',\n            M: 'یک ماه',\n            MM: '%d ماه',\n            y: 'یک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[۰-۹]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}م/,\n        ordinal: '%dم',\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return fa;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fi.js",
    "content": "//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n            ' '\n        ),\n        numbersFuture = [\n            'nolla',\n            'yhden',\n            'kahden',\n            'kolmen',\n            'neljän',\n            'viiden',\n            'kuuden',\n            numbersPast[7],\n            numbersPast[8],\n            numbersPast[9],\n        ];\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = '';\n        switch (key) {\n            case 's':\n                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n            case 'ss':\n                result = isFuture ? 'sekunnin' : 'sekuntia';\n                break;\n            case 'm':\n                return isFuture ? 'minuutin' : 'minuutti';\n            case 'mm':\n                result = isFuture ? 'minuutin' : 'minuuttia';\n                break;\n            case 'h':\n                return isFuture ? 'tunnin' : 'tunti';\n            case 'hh':\n                result = isFuture ? 'tunnin' : 'tuntia';\n                break;\n            case 'd':\n                return isFuture ? 'päivän' : 'päivä';\n            case 'dd':\n                result = isFuture ? 'päivän' : 'päivää';\n                break;\n            case 'M':\n                return isFuture ? 'kuukauden' : 'kuukausi';\n            case 'MM':\n                result = isFuture ? 'kuukauden' : 'kuukautta';\n                break;\n            case 'y':\n                return isFuture ? 'vuoden' : 'vuosi';\n            case 'yy':\n                result = isFuture ? 'vuoden' : 'vuotta';\n                break;\n        }\n        result = verbalNumber(number, isFuture) + ' ' + result;\n        return result;\n    }\n    function verbalNumber(number, isFuture) {\n        return number < 10\n            ? isFuture\n                ? numbersFuture[number]\n                : numbersPast[number]\n            : number;\n    }\n\n    var fi = moment.defineLocale('fi', {\n        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n            '_'\n        ),\n        monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n            '_'\n        ),\n        weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n            '_'\n        ),\n        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM[ta] YYYY',\n            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n            l: 'D.M.YYYY',\n            ll: 'Do MMM YYYY',\n            lll: 'Do MMM YYYY, [klo] HH.mm',\n            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n        },\n        calendar: {\n            sameDay: '[tänään] [klo] LT',\n            nextDay: '[huomenna] [klo] LT',\n            nextWeek: 'dddd [klo] LT',\n            lastDay: '[eilen] [klo] LT',\n            lastWeek: '[viime] dddd[na] [klo] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s päästä',\n            past: '%s sitten',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fi;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fil.js",
    "content": "//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var fil = moment.defineLocale('fil', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fil;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fo.js",
    "content": "//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var fo = moment.defineLocale('fo', {\n        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n        weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D. MMMM, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Í dag kl.] LT',\n            nextDay: '[Í morgin kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[Í gjár kl.] LT',\n            lastWeek: '[síðstu] dddd [kl] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'um %s',\n            past: '%s síðani',\n            s: 'fá sekund',\n            ss: '%d sekundir',\n            m: 'ein minuttur',\n            mm: '%d minuttir',\n            h: 'ein tími',\n            hh: '%d tímar',\n            d: 'ein dagur',\n            dd: '%d dagar',\n            M: 'ein mánaður',\n            MM: '%d mánaðir',\n            y: 'eitt ár',\n            yy: '%d ár',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fr-ca.js",
    "content": "//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var frCa = moment.defineLocale('fr-ca', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n    });\n\n    return frCa;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fr-ch.js",
    "content": "//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var frCh = moment.defineLocale('fr-ch', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return frCh;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fr.js",
    "content": "//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n        monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsParse = [\n            /^janv/i,\n            /^févr/i,\n            /^mars/i,\n            /^avr/i,\n            /^mai/i,\n            /^juin/i,\n            /^juil/i,\n            /^août/i,\n            /^sept/i,\n            /^oct/i,\n            /^nov/i,\n            /^déc/i,\n        ];\n\n    var fr = moment.defineLocale('fr', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            w: 'une semaine',\n            ww: '%d semaines',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // TODO: Return 'e' when day of month > 1. Move this case inside\n                // block for masculine words below.\n                // See https://github.com/moment/moment/issues/3375\n                case 'D':\n                    return number + (number === 1 ? 'er' : '');\n\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/fy.js",
    "content": "//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n            '_'\n        );\n\n    var fy = moment.defineLocale('fy', {\n        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n        monthsParseExact: true,\n        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n            '_'\n        ),\n        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[hjoed om] LT',\n            nextDay: '[moarn om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[juster om] LT',\n            lastWeek: '[ôfrûne] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oer %s',\n            past: '%s lyn',\n            s: 'in pear sekonden',\n            ss: '%d sekonden',\n            m: 'ien minút',\n            mm: '%d minuten',\n            h: 'ien oere',\n            hh: '%d oeren',\n            d: 'ien dei',\n            dd: '%d dagen',\n            M: 'ien moanne',\n            MM: '%d moannen',\n            y: 'ien jier',\n            yy: '%d jierren',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fy;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ga.js",
    "content": "//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'Eanáir',\n            'Feabhra',\n            'Márta',\n            'Aibreán',\n            'Bealtaine',\n            'Meitheamh',\n            'Iúil',\n            'Lúnasa',\n            'Meán Fómhair',\n            'Deireadh Fómhair',\n            'Samhain',\n            'Nollaig',\n        ],\n        monthsShort = [\n            'Ean',\n            'Feabh',\n            'Márt',\n            'Aib',\n            'Beal',\n            'Meith',\n            'Iúil',\n            'Lún',\n            'M.F.',\n            'D.F.',\n            'Samh',\n            'Noll',\n        ],\n        weekdays = [\n            'Dé Domhnaigh',\n            'Dé Luain',\n            'Dé Máirt',\n            'Dé Céadaoin',\n            'Déardaoin',\n            'Dé hAoine',\n            'Dé Sathairn',\n        ],\n        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n    var ga = moment.defineLocale('ga', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsParseExact: true,\n        weekdays: weekdays,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Inniu ag] LT',\n            nextDay: '[Amárach ag] LT',\n            nextWeek: 'dddd [ag] LT',\n            lastDay: '[Inné ag] LT',\n            lastWeek: 'dddd [seo caite] [ag] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i %s',\n            past: '%s ó shin',\n            s: 'cúpla soicind',\n            ss: '%d soicind',\n            m: 'nóiméad',\n            mm: '%d nóiméad',\n            h: 'uair an chloig',\n            hh: '%d uair an chloig',\n            d: 'lá',\n            dd: '%d lá',\n            M: 'mí',\n            MM: '%d míonna',\n            y: 'bliain',\n            yy: '%d bliain',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ga;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/gd.js",
    "content": "//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'Am Faoilleach',\n            'An Gearran',\n            'Am Màrt',\n            'An Giblean',\n            'An Cèitean',\n            'An t-Ògmhios',\n            'An t-Iuchar',\n            'An Lùnastal',\n            'An t-Sultain',\n            'An Dàmhair',\n            'An t-Samhain',\n            'An Dùbhlachd',\n        ],\n        monthsShort = [\n            'Faoi',\n            'Gear',\n            'Màrt',\n            'Gibl',\n            'Cèit',\n            'Ògmh',\n            'Iuch',\n            'Lùn',\n            'Sult',\n            'Dàmh',\n            'Samh',\n            'Dùbh',\n        ],\n        weekdays = [\n            'Didòmhnaich',\n            'Diluain',\n            'Dimàirt',\n            'Diciadain',\n            'Diardaoin',\n            'Dihaoine',\n            'Disathairne',\n        ],\n        weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n        weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n    var gd = moment.defineLocale('gd', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsParseExact: true,\n        weekdays: weekdays,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[An-diugh aig] LT',\n            nextDay: '[A-màireach aig] LT',\n            nextWeek: 'dddd [aig] LT',\n            lastDay: '[An-dè aig] LT',\n            lastWeek: 'dddd [seo chaidh] [aig] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ann an %s',\n            past: 'bho chionn %s',\n            s: 'beagan diogan',\n            ss: '%d diogan',\n            m: 'mionaid',\n            mm: '%d mionaidean',\n            h: 'uair',\n            hh: '%d uairean',\n            d: 'latha',\n            dd: '%d latha',\n            M: 'mìos',\n            MM: '%d mìosan',\n            y: 'bliadhna',\n            yy: '%d bliadhna',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return gd;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/gl.js",
    "content": "//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var gl = moment.defineLocale('gl', {\n        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n            },\n            lastDay: function () {\n                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (str) {\n                if (str.indexOf('un') === 0) {\n                    return 'n' + str;\n                }\n                return 'en ' + str;\n            },\n            past: 'hai %s',\n            s: 'uns segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'unha hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return gl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/gom-deva.js",
    "content": "//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n            m: ['एका मिणटान', 'एक मिनूट'],\n            mm: [number + ' मिणटांनी', number + ' मिणटां'],\n            h: ['एका वरान', 'एक वर'],\n            hh: [number + ' वरांनी', number + ' वरां'],\n            d: ['एका दिसान', 'एक दीस'],\n            dd: [number + ' दिसांनी', number + ' दीस'],\n            M: ['एका म्हयन्यान', 'एक म्हयनो'],\n            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n            y: ['एका वर्सान', 'एक वर्स'],\n            yy: [number + ' वर्सांनी', number + ' वर्सां'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var gomDeva = moment.defineLocale('gom-deva', {\n        months: {\n            standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n                '_'\n            ),\n            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [वाजतां]',\n            LTS: 'A h:mm:ss [वाजतां]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n        },\n        calendar: {\n            sameDay: '[आयज] LT',\n            nextDay: '[फाल्यां] LT',\n            nextWeek: '[फुडलो] dddd[,] LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[फाटलो] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s आदीं',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'वेर' only applies to day of the month\n                case 'D':\n                    return number + 'वेर';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राती') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सकाळीं') {\n                return hour;\n            } else if (meridiem === 'दनपारां') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'सांजे') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'राती';\n            } else if (hour < 12) {\n                return 'सकाळीं';\n            } else if (hour < 16) {\n                return 'दनपारां';\n            } else if (hour < 20) {\n                return 'सांजे';\n            } else {\n                return 'राती';\n            }\n        },\n    });\n\n    return gomDeva;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/gom-latn.js",
    "content": "//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['thoddea sekondamni', 'thodde sekond'],\n            ss: [number + ' sekondamni', number + ' sekond'],\n            m: ['eka mintan', 'ek minut'],\n            mm: [number + ' mintamni', number + ' mintam'],\n            h: ['eka voran', 'ek vor'],\n            hh: [number + ' voramni', number + ' voram'],\n            d: ['eka disan', 'ek dis'],\n            dd: [number + ' disamni', number + ' dis'],\n            M: ['eka mhoinean', 'ek mhoino'],\n            MM: [number + ' mhoineamni', number + ' mhoine'],\n            y: ['eka vorsan', 'ek voros'],\n            yy: [number + ' vorsamni', number + ' vorsam'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var gomLatn = moment.defineLocale('gom-latn', {\n        months: {\n            standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n                '_'\n            ),\n            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [vazta]',\n            LTS: 'A h:mm:ss [vazta]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [vazta]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n        },\n        calendar: {\n            sameDay: '[Aiz] LT',\n            nextDay: '[Faleam] LT',\n            nextWeek: '[Fuddlo] dddd[,] LT',\n            lastDay: '[Kal] LT',\n            lastWeek: '[Fattlo] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s adim',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'er' only applies to day of the month\n                case 'D':\n                    return number + 'er';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /rati|sokallim|donparam|sanje/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'rati') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'sokallim') {\n                return hour;\n            } else if (meridiem === 'donparam') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'sanje') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'rati';\n            } else if (hour < 12) {\n                return 'sokallim';\n            } else if (hour < 16) {\n                return 'donparam';\n            } else if (hour < 20) {\n                return 'sanje';\n            } else {\n                return 'rati';\n            }\n        },\n    });\n\n    return gomLatn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/gu.js",
    "content": "//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '૧',\n            2: '૨',\n            3: '૩',\n            4: '૪',\n            5: '૫',\n            6: '૬',\n            7: '૭',\n            8: '૮',\n            9: '૯',\n            0: '૦',\n        },\n        numberMap = {\n            '૧': '1',\n            '૨': '2',\n            '૩': '3',\n            '૪': '4',\n            '૫': '5',\n            '૬': '6',\n            '૭': '7',\n            '૮': '8',\n            '૯': '9',\n            '૦': '0',\n        };\n\n    var gu = moment.defineLocale('gu', {\n        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n            '_'\n        ),\n        monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n            '_'\n        ),\n        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm વાગ્યે',\n            LTS: 'A h:mm:ss વાગ્યે',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n        },\n        calendar: {\n            sameDay: '[આજ] LT',\n            nextDay: '[કાલે] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ગઇકાલે] LT',\n            lastWeek: '[પાછલા] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s મા',\n            past: '%s પહેલા',\n            s: 'અમુક પળો',\n            ss: '%d સેકંડ',\n            m: 'એક મિનિટ',\n            mm: '%d મિનિટ',\n            h: 'એક કલાક',\n            hh: '%d કલાક',\n            d: 'એક દિવસ',\n            dd: '%d દિવસ',\n            M: 'એક મહિનો',\n            MM: '%d મહિનો',\n            y: 'એક વર્ષ',\n            yy: '%d વર્ષ',\n        },\n        preparse: function (string) {\n            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'રાત') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'સવાર') {\n                return hour;\n            } else if (meridiem === 'બપોર') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'સાંજ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'રાત';\n            } else if (hour < 10) {\n                return 'સવાર';\n            } else if (hour < 17) {\n                return 'બપોર';\n            } else if (hour < 20) {\n                return 'સાંજ';\n            } else {\n                return 'રાત';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return gu;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/he.js",
    "content": "//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var he = moment.defineLocale('he', {\n        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n            '_'\n        ),\n        monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n            '_'\n        ),\n        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [ב]MMMM YYYY',\n            LLL: 'D [ב]MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[היום ב־]LT',\n            nextDay: '[מחר ב־]LT',\n            nextWeek: 'dddd [בשעה] LT',\n            lastDay: '[אתמול ב־]LT',\n            lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'בעוד %s',\n            past: 'לפני %s',\n            s: 'מספר שניות',\n            ss: '%d שניות',\n            m: 'דקה',\n            mm: '%d דקות',\n            h: 'שעה',\n            hh: function (number) {\n                if (number === 2) {\n                    return 'שעתיים';\n                }\n                return number + ' שעות';\n            },\n            d: 'יום',\n            dd: function (number) {\n                if (number === 2) {\n                    return 'יומיים';\n                }\n                return number + ' ימים';\n            },\n            M: 'חודש',\n            MM: function (number) {\n                if (number === 2) {\n                    return 'חודשיים';\n                }\n                return number + ' חודשים';\n            },\n            y: 'שנה',\n            yy: function (number) {\n                if (number === 2) {\n                    return 'שנתיים';\n                } else if (number % 10 === 0 && number !== 10) {\n                    return number + ' שנה';\n                }\n                return number + ' שנים';\n            },\n        },\n        meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n        isPM: function (input) {\n            return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 5) {\n                return 'לפנות בוקר';\n            } else if (hour < 10) {\n                return 'בבוקר';\n            } else if (hour < 12) {\n                return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n            } else if (hour < 18) {\n                return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n            } else {\n                return 'בערב';\n            }\n        },\n    });\n\n    return he;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/hi.js",
    "content": "//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        },\n        monthsParse = [\n            /^जन/i,\n            /^फ़र|फर/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सितं|सित/i,\n            /^अक्टू/i,\n            /^नव|नवं/i,\n            /^दिसं|दिस/i,\n        ],\n        shortMonthsParse = [\n            /^जन/i,\n            /^फ़र/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सित/i,\n            /^अक्टू/i,\n            /^नव/i,\n            /^दिस/i,\n        ];\n\n    var hi = moment.defineLocale('hi', {\n        months: {\n            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n                '_'\n            ),\n            standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n            '_'\n        ),\n        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm बजे',\n            LTS: 'A h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n        },\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: shortMonthsParse,\n\n        monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n        monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[कल] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[कल] LT',\n            lastWeek: '[पिछले] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s में',\n            past: '%s पहले',\n            s: 'कुछ ही क्षण',\n            ss: '%d सेकंड',\n            m: 'एक मिनट',\n            mm: '%d मिनट',\n            h: 'एक घंटा',\n            hh: '%d घंटे',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महीने',\n            MM: '%d महीने',\n            y: 'एक वर्ष',\n            yy: '%d वर्ष',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n        meridiemParse: /रात|सुबह|दोपहर|शाम/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'रात') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सुबह') {\n                return hour;\n            } else if (meridiem === 'दोपहर') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'शाम') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'रात';\n            } else if (hour < 10) {\n                return 'सुबह';\n            } else if (hour < 17) {\n                return 'दोपहर';\n            } else if (hour < 20) {\n                return 'शाम';\n            } else {\n                return 'रात';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return hi;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/hr.js",
    "content": "//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    var hr = moment.defineLocale('hr', {\n        months: {\n            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n                '_'\n            ),\n            standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM YYYY',\n            LLL: 'Do MMMM YYYY H:mm',\n            LLLL: 'dddd, Do MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prošlu] [nedjelju] [u] LT';\n                    case 3:\n                        return '[prošlu] [srijedu] [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return hr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/hu.js",
    "content": "//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt  : https://github.com/passatgt\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n        ' '\n    );\n    function translate(number, withoutSuffix, key, isFuture) {\n        var num = number;\n        switch (key) {\n            case 's':\n                return isFuture || withoutSuffix\n                    ? 'néhány másodperc'\n                    : 'néhány másodperce';\n            case 'ss':\n                return num + (isFuture || withoutSuffix)\n                    ? ' másodperc'\n                    : ' másodperce';\n            case 'm':\n                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'mm':\n                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'h':\n                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'hh':\n                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'd':\n                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'dd':\n                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'M':\n                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'MM':\n                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'y':\n                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n            case 'yy':\n                return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n        }\n        return '';\n    }\n    function week(isFuture) {\n        return (\n            (isFuture ? '' : '[múlt] ') +\n            '[' +\n            weekEndings[this.day()] +\n            '] LT[-kor]'\n        );\n    }\n\n    var hu = moment.defineLocale('hu', {\n        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY. MMMM D.',\n            LLL: 'YYYY. MMMM D. H:mm',\n            LLLL: 'YYYY. MMMM D., dddd H:mm',\n        },\n        meridiemParse: /de|du/i,\n        isPM: function (input) {\n            return input.charAt(1).toLowerCase() === 'u';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower === true ? 'de' : 'DE';\n            } else {\n                return isLower === true ? 'du' : 'DU';\n            }\n        },\n        calendar: {\n            sameDay: '[ma] LT[-kor]',\n            nextDay: '[holnap] LT[-kor]',\n            nextWeek: function () {\n                return week.call(this, true);\n            },\n            lastDay: '[tegnap] LT[-kor]',\n            lastWeek: function () {\n                return week.call(this, false);\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s múlva',\n            past: '%s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return hu;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/hy-am.js",
    "content": "//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var hyAm = moment.defineLocale('hy-am', {\n        months: {\n            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n                '_'\n            ),\n            standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n        weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n            '_'\n        ),\n        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY թ.',\n            LLL: 'D MMMM YYYY թ., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n        },\n        calendar: {\n            sameDay: '[այսօր] LT',\n            nextDay: '[վաղը] LT',\n            lastDay: '[երեկ] LT',\n            nextWeek: function () {\n                return 'dddd [օրը ժամը] LT';\n            },\n            lastWeek: function () {\n                return '[անցած] dddd [օրը ժամը] LT';\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s հետո',\n            past: '%s առաջ',\n            s: 'մի քանի վայրկյան',\n            ss: '%d վայրկյան',\n            m: 'րոպե',\n            mm: '%d րոպե',\n            h: 'ժամ',\n            hh: '%d ժամ',\n            d: 'օր',\n            dd: '%d օր',\n            M: 'ամիս',\n            MM: '%d ամիս',\n            y: 'տարի',\n            yy: '%d տարի',\n        },\n        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n        isPM: function (input) {\n            return /^(ցերեկվա|երեկոյան)$/.test(input);\n        },\n        meridiem: function (hour) {\n            if (hour < 4) {\n                return 'գիշերվա';\n            } else if (hour < 12) {\n                return 'առավոտվա';\n            } else if (hour < 17) {\n                return 'ցերեկվա';\n            } else {\n                return 'երեկոյան';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'DDD':\n                case 'w':\n                case 'W':\n                case 'DDDo':\n                    if (number === 1) {\n                        return number + '-ին';\n                    }\n                    return number + '-րդ';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return hyAm;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/id.js",
    "content": "//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var id = moment.defineLocale('id', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|siang|sore|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'siang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sore' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'siang';\n            } else if (hours < 19) {\n                return 'sore';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Besok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kemarin pukul] LT',\n            lastWeek: 'dddd [lalu pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lalu',\n            s: 'beberapa detik',\n            ss: '%d detik',\n            m: 'semenit',\n            mm: '%d menit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return id;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/is.js",
    "content": "//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(n) {\n        if (n % 100 === 11) {\n            return true;\n        } else if (n % 10 === 1) {\n            return false;\n        }\n        return true;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nokkrar sekúndur'\n                    : 'nokkrum sekúndum';\n            case 'ss':\n                if (plural(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n                    );\n                }\n                return result + 'sekúnda';\n            case 'm':\n                return withoutSuffix ? 'mínúta' : 'mínútu';\n            case 'mm':\n                if (plural(number)) {\n                    return (\n                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n                    );\n                } else if (withoutSuffix) {\n                    return result + 'mínúta';\n                }\n                return result + 'mínútu';\n            case 'hh':\n                if (plural(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture\n                            ? 'klukkustundir'\n                            : 'klukkustundum')\n                    );\n                }\n                return result + 'klukkustund';\n            case 'd':\n                if (withoutSuffix) {\n                    return 'dagur';\n                }\n                return isFuture ? 'dag' : 'degi';\n            case 'dd':\n                if (plural(number)) {\n                    if (withoutSuffix) {\n                        return result + 'dagar';\n                    }\n                    return result + (isFuture ? 'daga' : 'dögum');\n                } else if (withoutSuffix) {\n                    return result + 'dagur';\n                }\n                return result + (isFuture ? 'dag' : 'degi');\n            case 'M':\n                if (withoutSuffix) {\n                    return 'mánuður';\n                }\n                return isFuture ? 'mánuð' : 'mánuði';\n            case 'MM':\n                if (plural(number)) {\n                    if (withoutSuffix) {\n                        return result + 'mánuðir';\n                    }\n                    return result + (isFuture ? 'mánuði' : 'mánuðum');\n                } else if (withoutSuffix) {\n                    return result + 'mánuður';\n                }\n                return result + (isFuture ? 'mánuð' : 'mánuði');\n            case 'y':\n                return withoutSuffix || isFuture ? 'ár' : 'ári';\n            case 'yy':\n                if (plural(number)) {\n                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n                }\n                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n        }\n    }\n\n    var is = moment.defineLocale('is', {\n        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n        weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n        },\n        calendar: {\n            sameDay: '[í dag kl.] LT',\n            nextDay: '[á morgun kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[í gær kl.] LT',\n            lastWeek: '[síðasta] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'eftir %s',\n            past: 'fyrir %s síðan',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: 'klukkustund',\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return is;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/it-ch.js",
    "content": "//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var itCh = moment.defineLocale('it-ch', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Oggi alle] LT',\n            nextDay: '[Domani alle] LT',\n            nextWeek: 'dddd [alle] LT',\n            lastDay: '[Ieri alle] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[la scorsa] dddd [alle] LT';\n                    default:\n                        return '[lo scorso] dddd [alle] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n            },\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return itCh;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/it.js",
    "content": "//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var it = moment.defineLocale('it', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return (\n                    '[Oggi a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextDay: function () {\n                return (\n                    '[Domani a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextWeek: function () {\n                return (\n                    'dddd [a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastDay: function () {\n                return (\n                    '[Ieri a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return (\n                            '[La scorsa] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                    default:\n                        return (\n                            '[Lo scorso] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'tra %s',\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            w: 'una settimana',\n            ww: '%d settimane',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return it;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ja.js",
    "content": "//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ja = moment.defineLocale('ja', {\n        eras: [\n            {\n                since: '2019-05-01',\n                offset: 1,\n                name: '令和',\n                narrow: '㋿',\n                abbr: 'R',\n            },\n            {\n                since: '1989-01-08',\n                until: '2019-04-30',\n                offset: 1,\n                name: '平成',\n                narrow: '㍻',\n                abbr: 'H',\n            },\n            {\n                since: '1926-12-25',\n                until: '1989-01-07',\n                offset: 1,\n                name: '昭和',\n                narrow: '㍼',\n                abbr: 'S',\n            },\n            {\n                since: '1912-07-30',\n                until: '1926-12-24',\n                offset: 1,\n                name: '大正',\n                narrow: '㍽',\n                abbr: 'T',\n            },\n            {\n                since: '1873-01-01',\n                until: '1912-07-29',\n                offset: 6,\n                name: '明治',\n                narrow: '㍾',\n                abbr: 'M',\n            },\n            {\n                since: '0001-01-01',\n                until: '1873-12-31',\n                offset: 1,\n                name: '西暦',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: '紀元前',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        eraYearOrdinalRegex: /(元|\\d+)年/,\n        eraYearOrdinalParse: function (input, match) {\n            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n        },\n        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日 dddd HH:mm',\n            l: 'YYYY/MM/DD',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日(ddd) HH:mm',\n        },\n        meridiemParse: /午前|午後/i,\n        isPM: function (input) {\n            return input === '午後';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return '午前';\n            } else {\n                return '午後';\n            }\n        },\n        calendar: {\n            sameDay: '[今日] LT',\n            nextDay: '[明日] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[来週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            lastDay: '[昨日] LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[先週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}日/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'y':\n                    return number === 1 ? '元年' : number + '年';\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '数秒',\n            ss: '%d秒',\n            m: '1分',\n            mm: '%d分',\n            h: '1時間',\n            hh: '%d時間',\n            d: '1日',\n            dd: '%d日',\n            M: '1ヶ月',\n            MM: '%dヶ月',\n            y: '1年',\n            yy: '%d年',\n        },\n    });\n\n    return ja;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/jv.js",
    "content": "//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var jv = moment.defineLocale('jv', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /enjing|siyang|sonten|ndalu/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'enjing') {\n                return hour;\n            } else if (meridiem === 'siyang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'enjing';\n            } else if (hours < 15) {\n                return 'siyang';\n            } else if (hours < 19) {\n                return 'sonten';\n            } else {\n                return 'ndalu';\n            }\n        },\n        calendar: {\n            sameDay: '[Dinten puniko pukul] LT',\n            nextDay: '[Mbenjang pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kala wingi pukul] LT',\n            lastWeek: 'dddd [kepengker pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'wonten ing %s',\n            past: '%s ingkang kepengker',\n            s: 'sawetawis detik',\n            ss: '%d detik',\n            m: 'setunggal menit',\n            mm: '%d menit',\n            h: 'setunggal jam',\n            hh: '%d jam',\n            d: 'sedinten',\n            dd: '%d dinten',\n            M: 'sewulan',\n            MM: '%d wulan',\n            y: 'setaun',\n            yy: '%d taun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return jv;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ka.js",
    "content": "//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ka = moment.defineLocale('ka', {\n        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n            '_'\n        ),\n        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n        weekdays: {\n            standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n                '_'\n            ),\n            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n                '_'\n            ),\n            isFormat: /(წინა|შემდეგ)/,\n        },\n        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[დღეს] LT[-ზე]',\n            nextDay: '[ხვალ] LT[-ზე]',\n            lastDay: '[გუშინ] LT[-ზე]',\n            nextWeek: '[შემდეგ] dddd LT[-ზე]',\n            lastWeek: '[წინა] dddd LT-ზე',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n                    $0,\n                    $1,\n                    $2\n                ) {\n                    return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n                });\n            },\n            past: function (s) {\n                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n                    return s.replace(/(ი|ე)$/, 'ის წინ');\n                }\n                if (/წელი/.test(s)) {\n                    return s.replace(/წელი$/, 'წლის წინ');\n                }\n                return s;\n            },\n            s: 'რამდენიმე წამი',\n            ss: '%d წამი',\n            m: 'წუთი',\n            mm: '%d წუთი',\n            h: 'საათი',\n            hh: '%d საათი',\n            d: 'დღე',\n            dd: '%d დღე',\n            M: 'თვე',\n            MM: '%d თვე',\n            y: 'წელი',\n            yy: '%d წელი',\n        },\n        dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n        ordinal: function (number) {\n            if (number === 0) {\n                return number;\n            }\n            if (number === 1) {\n                return number + '-ლი';\n            }\n            if (\n                number < 20 ||\n                (number <= 100 && number % 20 === 0) ||\n                number % 100 === 0\n            ) {\n                return 'მე-' + number;\n            }\n            return number + '-ე';\n        },\n        week: {\n            dow: 1,\n            doy: 7,\n        },\n    });\n\n    return ka;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/kk.js",
    "content": "//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-ші',\n        1: '-ші',\n        2: '-ші',\n        3: '-ші',\n        4: '-ші',\n        5: '-ші',\n        6: '-шы',\n        7: '-ші',\n        8: '-ші',\n        9: '-шы',\n        10: '-шы',\n        20: '-шы',\n        30: '-шы',\n        40: '-шы',\n        50: '-ші',\n        60: '-шы',\n        70: '-ші',\n        80: '-ші',\n        90: '-шы',\n        100: '-ші',\n    };\n\n    var kk = moment.defineLocale('kk', {\n        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n            '_'\n        ),\n        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n            '_'\n        ),\n        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгін сағат] LT',\n            nextDay: '[Ертең сағат] LT',\n            nextWeek: 'dddd [сағат] LT',\n            lastDay: '[Кеше сағат] LT',\n            lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ішінде',\n            past: '%s бұрын',\n            s: 'бірнеше секунд',\n            ss: '%d секунд',\n            m: 'бір минут',\n            mm: '%d минут',\n            h: 'бір сағат',\n            hh: '%d сағат',\n            d: 'бір күн',\n            dd: '%d күн',\n            M: 'бір ай',\n            MM: '%d ай',\n            y: 'бір жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return kk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/km.js",
    "content": "//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '១',\n            2: '២',\n            3: '៣',\n            4: '៤',\n            5: '៥',\n            6: '៦',\n            7: '៧',\n            8: '៨',\n            9: '៩',\n            0: '០',\n        },\n        numberMap = {\n            '១': '1',\n            '២': '2',\n            '៣': '3',\n            '៤': '4',\n            '៥': '5',\n            '៦': '6',\n            '៧': '7',\n            '៨': '8',\n            '៩': '9',\n            '០': '0',\n        };\n\n    var km = moment.defineLocale('km', {\n        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ព្រឹក|ល្ងាច/,\n        isPM: function (input) {\n            return input === 'ល្ងាច';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ព្រឹក';\n            } else {\n                return 'ល្ងាច';\n            }\n        },\n        calendar: {\n            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n            nextDay: '[ស្អែក ម៉ោង] LT',\n            nextWeek: 'dddd [ម៉ោង] LT',\n            lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sទៀត',\n            past: '%sមុន',\n            s: 'ប៉ុន្មានវិនាទី',\n            ss: '%d វិនាទី',\n            m: 'មួយនាទី',\n            mm: '%d នាទី',\n            h: 'មួយម៉ោង',\n            hh: '%d ម៉ោង',\n            d: 'មួយថ្ងៃ',\n            dd: '%d ថ្ងៃ',\n            M: 'មួយខែ',\n            MM: '%d ខែ',\n            y: 'មួយឆ្នាំ',\n            yy: '%d ឆ្នាំ',\n        },\n        dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n        ordinal: 'ទី%d',\n        preparse: function (string) {\n            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return km;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/kn.js",
    "content": "//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '೧',\n            2: '೨',\n            3: '೩',\n            4: '೪',\n            5: '೫',\n            6: '೬',\n            7: '೭',\n            8: '೮',\n            9: '೯',\n            0: '೦',\n        },\n        numberMap = {\n            '೧': '1',\n            '೨': '2',\n            '೩': '3',\n            '೪': '4',\n            '೫': '5',\n            '೬': '6',\n            '೭': '7',\n            '೮': '8',\n            '೯': '9',\n            '೦': '0',\n        };\n\n    var kn = moment.defineLocale('kn', {\n        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n            '_'\n        ),\n        monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[ಇಂದು] LT',\n            nextDay: '[ನಾಳೆ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ನಿನ್ನೆ] LT',\n            lastWeek: '[ಕೊನೆಯ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ನಂತರ',\n            past: '%s ಹಿಂದೆ',\n            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n            ss: '%d ಸೆಕೆಂಡುಗಳು',\n            m: 'ಒಂದು ನಿಮಿಷ',\n            mm: '%d ನಿಮಿಷ',\n            h: 'ಒಂದು ಗಂಟೆ',\n            hh: '%d ಗಂಟೆ',\n            d: 'ಒಂದು ದಿನ',\n            dd: '%d ದಿನ',\n            M: 'ಒಂದು ತಿಂಗಳು',\n            MM: '%d ತಿಂಗಳು',\n            y: 'ಒಂದು ವರ್ಷ',\n            yy: '%d ವರ್ಷ',\n        },\n        preparse: function (string) {\n            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ರಾತ್ರಿ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n                return hour;\n            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ಸಂಜೆ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ರಾತ್ರಿ';\n            } else if (hour < 10) {\n                return 'ಬೆಳಿಗ್ಗೆ';\n            } else if (hour < 17) {\n                return 'ಮಧ್ಯಾಹ್ನ';\n            } else if (hour < 20) {\n                return 'ಸಂಜೆ';\n            } else {\n                return 'ರಾತ್ರಿ';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n        ordinal: function (number) {\n            return number + 'ನೇ';\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return kn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ko.js",
    "content": "//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ko = moment.defineLocale('ko', {\n        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n            '_'\n        ),\n        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY년 MMMM D일',\n            LLL: 'YYYY년 MMMM D일 A h:mm',\n            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n            l: 'YYYY.MM.DD.',\n            ll: 'YYYY년 MMMM D일',\n            lll: 'YYYY년 MMMM D일 A h:mm',\n            llll: 'YYYY년 MMMM D일 dddd A h:mm',\n        },\n        calendar: {\n            sameDay: '오늘 LT',\n            nextDay: '내일 LT',\n            nextWeek: 'dddd LT',\n            lastDay: '어제 LT',\n            lastWeek: '지난주 dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s 후',\n            past: '%s 전',\n            s: '몇 초',\n            ss: '%d초',\n            m: '1분',\n            mm: '%d분',\n            h: '한 시간',\n            hh: '%d시간',\n            d: '하루',\n            dd: '%d일',\n            M: '한 달',\n            MM: '%d달',\n            y: '일 년',\n            yy: '%d년',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '일';\n                case 'M':\n                    return number + '월';\n                case 'w':\n                case 'W':\n                    return number + '주';\n                default:\n                    return number;\n            }\n        },\n        meridiemParse: /오전|오후/,\n        isPM: function (token) {\n            return token === '오후';\n        },\n        meridiem: function (hour, minute, isUpper) {\n            return hour < 12 ? '오전' : '오후';\n        },\n    });\n\n    return ko;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ku.js",
    "content": "//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        months = [\n            'کانونی دووەم',\n            'شوبات',\n            'ئازار',\n            'نیسان',\n            'ئایار',\n            'حوزەیران',\n            'تەمموز',\n            'ئاب',\n            'ئەیلوول',\n            'تشرینی یەكەم',\n            'تشرینی دووەم',\n            'كانونی یەکەم',\n        ];\n\n    var ku = moment.defineLocale('ku', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ئێواره‌|به‌یانی/,\n        isPM: function (input) {\n            return /ئێواره‌/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'به‌یانی';\n            } else {\n                return 'ئێواره‌';\n            }\n        },\n        calendar: {\n            sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n            nextDay: '[به‌یانی كاتژمێر] LT',\n            nextWeek: 'dddd [كاتژمێر] LT',\n            lastDay: '[دوێنێ كاتژمێر] LT',\n            lastWeek: 'dddd [كاتژمێر] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'له‌ %s',\n            past: '%s',\n            s: 'چه‌ند چركه‌یه‌ك',\n            ss: 'چركه‌ %d',\n            m: 'یه‌ك خوله‌ك',\n            mm: '%d خوله‌ك',\n            h: 'یه‌ك كاتژمێر',\n            hh: '%d كاتژمێر',\n            d: 'یه‌ك ڕۆژ',\n            dd: '%d ڕۆژ',\n            M: 'یه‌ك مانگ',\n            MM: '%d مانگ',\n            y: 'یه‌ك ساڵ',\n            yy: '%d ساڵ',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return ku;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ky.js",
    "content": "//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-чү',\n        1: '-чи',\n        2: '-чи',\n        3: '-чү',\n        4: '-чү',\n        5: '-чи',\n        6: '-чы',\n        7: '-чи',\n        8: '-чи',\n        9: '-чу',\n        10: '-чу',\n        20: '-чы',\n        30: '-чу',\n        40: '-чы',\n        50: '-чү',\n        60: '-чы',\n        70: '-чи',\n        80: '-чи',\n        90: '-чу',\n        100: '-чү',\n    };\n\n    var ky = moment.defineLocale('ky', {\n        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n            '_'\n        ),\n        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n            '_'\n        ),\n        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгүн саат] LT',\n            nextDay: '[Эртең саат] LT',\n            nextWeek: 'dddd [саат] LT',\n            lastDay: '[Кечээ саат] LT',\n            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ичинде',\n            past: '%s мурун',\n            s: 'бирнече секунд',\n            ss: '%d секунд',\n            m: 'бир мүнөт',\n            mm: '%d мүнөт',\n            h: 'бир саат',\n            hh: '%d саат',\n            d: 'бир күн',\n            dd: '%d күн',\n            M: 'бир ай',\n            MM: '%d ай',\n            y: 'бир жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ky;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/lb.js",
    "content": "//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eng Minutt', 'enger Minutt'],\n            h: ['eng Stonn', 'enger Stonn'],\n            d: ['een Dag', 'engem Dag'],\n            M: ['ee Mount', 'engem Mount'],\n            y: ['ee Joer', 'engem Joer'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n    function processFutureTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'a ' + string;\n        }\n        return 'an ' + string;\n    }\n    function processPastTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'viru ' + string;\n        }\n        return 'virun ' + string;\n    }\n    /**\n     * Returns true if the word before the given number loses the '-n' ending.\n     * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n     *\n     * @param number {integer}\n     * @returns {boolean}\n     */\n    function eifelerRegelAppliesToNumber(number) {\n        number = parseInt(number, 10);\n        if (isNaN(number)) {\n            return false;\n        }\n        if (number < 0) {\n            // Negative Number --> always true\n            return true;\n        } else if (number < 10) {\n            // Only 1 digit\n            if (4 <= number && number <= 7) {\n                return true;\n            }\n            return false;\n        } else if (number < 100) {\n            // 2 digits\n            var lastDigit = number % 10,\n                firstDigit = number / 10;\n            if (lastDigit === 0) {\n                return eifelerRegelAppliesToNumber(firstDigit);\n            }\n            return eifelerRegelAppliesToNumber(lastDigit);\n        } else if (number < 10000) {\n            // 3 or 4 digits --> recursively check first digit\n            while (number >= 10) {\n                number = number / 10;\n            }\n            return eifelerRegelAppliesToNumber(number);\n        } else {\n            // Anything larger than 4 digits: recursively check first n-3 digits\n            number = number / 1000;\n            return eifelerRegelAppliesToNumber(number);\n        }\n    }\n\n    var lb = moment.defineLocale('lb', {\n        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm [Auer]',\n            LTS: 'H:mm:ss [Auer]',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm [Auer]',\n            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n        },\n        calendar: {\n            sameDay: '[Haut um] LT',\n            sameElse: 'L',\n            nextDay: '[Muer um] LT',\n            nextWeek: 'dddd [um] LT',\n            lastDay: '[Gëschter um] LT',\n            lastWeek: function () {\n                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n                switch (this.day()) {\n                    case 2:\n                    case 4:\n                        return '[Leschten] dddd [um] LT';\n                    default:\n                        return '[Leschte] dddd [um] LT';\n                }\n            },\n        },\n        relativeTime: {\n            future: processFutureTime,\n            past: processPastTime,\n            s: 'e puer Sekonnen',\n            ss: '%d Sekonnen',\n            m: processRelativeTime,\n            mm: '%d Minutten',\n            h: processRelativeTime,\n            hh: '%d Stonnen',\n            d: processRelativeTime,\n            dd: '%d Deeg',\n            M: processRelativeTime,\n            MM: '%d Méint',\n            y: processRelativeTime,\n            yy: '%d Joer',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lb;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/lo.js",
    "content": "//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var lo = moment.defineLocale('lo', {\n        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n        isPM: function (input) {\n            return input === 'ຕອນແລງ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ຕອນເຊົ້າ';\n            } else {\n                return 'ຕອນແລງ';\n            }\n        },\n        calendar: {\n            sameDay: '[ມື້ນີ້ເວລາ] LT',\n            nextDay: '[ມື້ອື່ນເວລາ] LT',\n            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n            lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ອີກ %s',\n            past: '%sຜ່ານມາ',\n            s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n            ss: '%d ວິນາທີ',\n            m: '1 ນາທີ',\n            mm: '%d ນາທີ',\n            h: '1 ຊົ່ວໂມງ',\n            hh: '%d ຊົ່ວໂມງ',\n            d: '1 ມື້',\n            dd: '%d ມື້',\n            M: '1 ເດືອນ',\n            MM: '%d ເດືອນ',\n            y: '1 ປີ',\n            yy: '%d ປີ',\n        },\n        dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n        ordinal: function (number) {\n            return 'ທີ່' + number;\n        },\n    });\n\n    return lo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/lt.js",
    "content": "//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundė_sekundžių_sekundes',\n        m: 'minutė_minutės_minutę',\n        mm: 'minutės_minučių_minutes',\n        h: 'valanda_valandos_valandą',\n        hh: 'valandos_valandų_valandas',\n        d: 'diena_dienos_dieną',\n        dd: 'dienos_dienų_dienas',\n        M: 'mėnuo_mėnesio_mėnesį',\n        MM: 'mėnesiai_mėnesių_mėnesius',\n        y: 'metai_metų_metus',\n        yy: 'metai_metų_metus',\n    };\n    function translateSeconds(number, withoutSuffix, key, isFuture) {\n        if (withoutSuffix) {\n            return 'kelios sekundės';\n        } else {\n            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n        }\n    }\n    function translateSingular(number, withoutSuffix, key, isFuture) {\n        return withoutSuffix\n            ? forms(key)[0]\n            : isFuture\n            ? forms(key)[1]\n            : forms(key)[2];\n    }\n    function special(number) {\n        return number % 10 === 0 || (number > 10 && number < 20);\n    }\n    function forms(key) {\n        return units[key].split('_');\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        if (number === 1) {\n            return (\n                result + translateSingular(number, withoutSuffix, key[0], isFuture)\n            );\n        } else if (withoutSuffix) {\n            return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n        } else {\n            if (isFuture) {\n                return result + forms(key)[1];\n            } else {\n                return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n            }\n        }\n    }\n    var lt = moment.defineLocale('lt', {\n        months: {\n            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n                '_'\n            ),\n            standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n        },\n        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n        weekdays: {\n            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n                '_'\n            ),\n            standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n                '_'\n            ),\n            isFormat: /dddd HH:mm/,\n        },\n        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n        weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY [m.] MMMM D [d.]',\n            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n            l: 'YYYY-MM-DD',\n            ll: 'YYYY [m.] MMMM D [d.]',\n            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n        },\n        calendar: {\n            sameDay: '[Šiandien] LT',\n            nextDay: '[Rytoj] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[Vakar] LT',\n            lastWeek: '[Praėjusį] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'po %s',\n            past: 'prieš %s',\n            s: translateSeconds,\n            ss: translate,\n            m: translateSingular,\n            mm: translate,\n            h: translateSingular,\n            hh: translate,\n            d: translateSingular,\n            dd: translate,\n            M: translateSingular,\n            MM: translate,\n            y: translateSingular,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n        ordinal: function (number) {\n            return number + '-oji';\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lt;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/lv.js",
    "content": "//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        h: 'stundas_stundām_stunda_stundas'.split('_'),\n        hh: 'stundas_stundām_stunda_stundas'.split('_'),\n        d: 'dienas_dienām_diena_dienas'.split('_'),\n        dd: 'dienas_dienām_diena_dienas'.split('_'),\n        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        y: 'gada_gadiem_gads_gadi'.split('_'),\n        yy: 'gada_gadiem_gads_gadi'.split('_'),\n    };\n    /**\n     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n     */\n    function format(forms, number, withoutSuffix) {\n        if (withoutSuffix) {\n            // E.g. \"21 minūte\", \"3 minūtes\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n        } else {\n            // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n            // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n        }\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        return number + ' ' + format(units[key], number, withoutSuffix);\n    }\n    function relativeTimeWithSingular(number, withoutSuffix, key) {\n        return format(units[key], number, withoutSuffix);\n    }\n    function relativeSeconds(number, withoutSuffix) {\n        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n    }\n\n    var lv = moment.defineLocale('lv', {\n        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY.',\n            LL: 'YYYY. [gada] D. MMMM',\n            LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n        },\n        calendar: {\n            sameDay: '[Šodien pulksten] LT',\n            nextDay: '[Rīt pulksten] LT',\n            nextWeek: 'dddd [pulksten] LT',\n            lastDay: '[Vakar pulksten] LT',\n            lastWeek: '[Pagājušā] dddd [pulksten] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'pēc %s',\n            past: 'pirms %s',\n            s: relativeSeconds,\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithSingular,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithSingular,\n            hh: relativeTimeWithPlural,\n            d: relativeTimeWithSingular,\n            dd: relativeTimeWithPlural,\n            M: relativeTimeWithSingular,\n            MM: relativeTimeWithPlural,\n            y: relativeTimeWithSingular,\n            yy: relativeTimeWithPlural,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lv;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/me.js",
    "content": "//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekund', 'sekunda', 'sekundi'],\n            m: ['jedan minut', 'jednog minuta'],\n            mm: ['minut', 'minuta', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mjesec', 'mjeseca', 'mjeseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    var me = moment.defineLocale('me', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sjutra u] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedjelje] [u] LT',\n                    '[prošlog] [ponedjeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srijede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'dan',\n            dd: translator.translate,\n            M: 'mjesec',\n            MM: translator.translate,\n            y: 'godinu',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return me;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/mi.js",
    "content": "//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mi = moment.defineLocale('mi', {\n        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n            '_'\n        ),\n        monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n            '_'\n        ),\n        monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [i] HH:mm',\n            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i teie mahana, i] LT',\n            nextDay: '[apopo i] LT',\n            nextWeek: 'dddd [i] LT',\n            lastDay: '[inanahi i] LT',\n            lastWeek: 'dddd [whakamutunga i] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i roto i %s',\n            past: '%s i mua',\n            s: 'te hēkona ruarua',\n            ss: '%d hēkona',\n            m: 'he meneti',\n            mm: '%d meneti',\n            h: 'te haora',\n            hh: '%d haora',\n            d: 'he ra',\n            dd: '%d ra',\n            M: 'he marama',\n            MM: '%d marama',\n            y: 'he tau',\n            yy: '%d tau',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return mi;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/mk.js",
    "content": "//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mk = moment.defineLocale('mk', {\n        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Денес во] LT',\n            nextDay: '[Утре во] LT',\n            nextWeek: '[Во] dddd [во] LT',\n            lastDay: '[Вчера во] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Изминатата] dddd [во] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Изминатиот] dddd [во] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пред %s',\n            s: 'неколку секунди',\n            ss: '%d секунди',\n            m: 'една минута',\n            mm: '%d минути',\n            h: 'еден час',\n            hh: '%d часа',\n            d: 'еден ден',\n            dd: '%d дена',\n            M: 'еден месец',\n            MM: '%d месеци',\n            y: 'една година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return mk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ml.js",
    "content": "//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ml = moment.defineLocale('ml', {\n        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n            '_'\n        ),\n        monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n            '_'\n        ),\n        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm -നു',\n            LTS: 'A h:mm:ss -നു',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm -നു',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n        },\n        calendar: {\n            sameDay: '[ഇന്ന്] LT',\n            nextDay: '[നാളെ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ഇന്നലെ] LT',\n            lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s കഴിഞ്ഞ്',\n            past: '%s മുൻപ്',\n            s: 'അൽപ നിമിഷങ്ങൾ',\n            ss: '%d സെക്കൻഡ്',\n            m: 'ഒരു മിനിറ്റ്',\n            mm: '%d മിനിറ്റ്',\n            h: 'ഒരു മണിക്കൂർ',\n            hh: '%d മണിക്കൂർ',\n            d: 'ഒരു ദിവസം',\n            dd: '%d ദിവസം',\n            M: 'ഒരു മാസം',\n            MM: '%d മാസം',\n            y: 'ഒരു വർഷം',\n            yy: '%d വർഷം',\n        },\n        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'രാത്രി' && hour >= 4) ||\n                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n                meridiem === 'വൈകുന്നേരം'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'രാത്രി';\n            } else if (hour < 12) {\n                return 'രാവിലെ';\n            } else if (hour < 17) {\n                return 'ഉച്ച കഴിഞ്ഞ്';\n            } else if (hour < 20) {\n                return 'വൈകുന്നേരം';\n            } else {\n                return 'രാത്രി';\n            }\n        },\n    });\n\n    return ml;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/mn.js",
    "content": "//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key, isFuture) {\n        switch (key) {\n            case 's':\n                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n            case 'ss':\n                return number + (withoutSuffix ? ' секунд' : ' секундын');\n            case 'm':\n            case 'mm':\n                return number + (withoutSuffix ? ' минут' : ' минутын');\n            case 'h':\n            case 'hh':\n                return number + (withoutSuffix ? ' цаг' : ' цагийн');\n            case 'd':\n            case 'dd':\n                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n            case 'M':\n            case 'MM':\n                return number + (withoutSuffix ? ' сар' : ' сарын');\n            case 'y':\n            case 'yy':\n                return number + (withoutSuffix ? ' жил' : ' жилийн');\n            default:\n                return number;\n        }\n    }\n\n    var mn = moment.defineLocale('mn', {\n        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n            '_'\n        ),\n        monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY оны MMMMын D',\n            LLL: 'YYYY оны MMMMын D HH:mm',\n            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n        },\n        meridiemParse: /ҮӨ|ҮХ/i,\n        isPM: function (input) {\n            return input === 'ҮХ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ҮӨ';\n            } else {\n                return 'ҮХ';\n            }\n        },\n        calendar: {\n            sameDay: '[Өнөөдөр] LT',\n            nextDay: '[Маргааш] LT',\n            nextWeek: '[Ирэх] dddd LT',\n            lastDay: '[Өчигдөр] LT',\n            lastWeek: '[Өнгөрсөн] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s дараа',\n            past: '%s өмнө',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + ' өдөр';\n                default:\n                    return number;\n            }\n        },\n    });\n\n    return mn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/mr.js",
    "content": "//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n        var output = '';\n        if (withoutSuffix) {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंद';\n                    break;\n                case 'ss':\n                    output = '%d सेकंद';\n                    break;\n                case 'm':\n                    output = 'एक मिनिट';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटे';\n                    break;\n                case 'h':\n                    output = 'एक तास';\n                    break;\n                case 'hh':\n                    output = '%d तास';\n                    break;\n                case 'd':\n                    output = 'एक दिवस';\n                    break;\n                case 'dd':\n                    output = '%d दिवस';\n                    break;\n                case 'M':\n                    output = 'एक महिना';\n                    break;\n                case 'MM':\n                    output = '%d महिने';\n                    break;\n                case 'y':\n                    output = 'एक वर्ष';\n                    break;\n                case 'yy':\n                    output = '%d वर्षे';\n                    break;\n            }\n        } else {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंदां';\n                    break;\n                case 'ss':\n                    output = '%d सेकंदां';\n                    break;\n                case 'm':\n                    output = 'एका मिनिटा';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटां';\n                    break;\n                case 'h':\n                    output = 'एका तासा';\n                    break;\n                case 'hh':\n                    output = '%d तासां';\n                    break;\n                case 'd':\n                    output = 'एका दिवसा';\n                    break;\n                case 'dd':\n                    output = '%d दिवसां';\n                    break;\n                case 'M':\n                    output = 'एका महिन्या';\n                    break;\n                case 'MM':\n                    output = '%d महिन्यां';\n                    break;\n                case 'y':\n                    output = 'एका वर्षा';\n                    break;\n                case 'yy':\n                    output = '%d वर्षां';\n                    break;\n            }\n        }\n        return output.replace(/%d/i, number);\n    }\n\n    var mr = moment.defineLocale('mr', {\n        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n            '_'\n        ),\n        monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm वाजता',\n            LTS: 'A h:mm:ss वाजता',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm वाजता',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[उद्या] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[मागील] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमध्ये',\n            past: '%sपूर्वी',\n            s: relativeTimeMr,\n            ss: relativeTimeMr,\n            m: relativeTimeMr,\n            mm: relativeTimeMr,\n            h: relativeTimeMr,\n            hh: relativeTimeMr,\n            d: relativeTimeMr,\n            dd: relativeTimeMr,\n            M: relativeTimeMr,\n            MM: relativeTimeMr,\n            y: relativeTimeMr,\n            yy: relativeTimeMr,\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n                return hour;\n            } else if (\n                meridiem === 'दुपारी' ||\n                meridiem === 'सायंकाळी' ||\n                meridiem === 'रात्री'\n            ) {\n                return hour >= 12 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour >= 0 && hour < 6) {\n                return 'पहाटे';\n            } else if (hour < 12) {\n                return 'सकाळी';\n            } else if (hour < 17) {\n                return 'दुपारी';\n            } else if (hour < 20) {\n                return 'सायंकाळी';\n            } else {\n                return 'रात्री';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return mr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ms-my.js",
    "content": "//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var msMy = moment.defineLocale('ms-my', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return msMy;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ms.js",
    "content": "//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ms = moment.defineLocale('ms', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ms;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/mt.js",
    "content": "//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mt = moment.defineLocale('mt', {\n        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n        weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Illum fil-]LT',\n            nextDay: '[Għada fil-]LT',\n            nextWeek: 'dddd [fil-]LT',\n            lastDay: '[Il-bieraħ fil-]LT',\n            lastWeek: 'dddd [li għadda] [fil-]LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'f’ %s',\n            past: '%s ilu',\n            s: 'ftit sekondi',\n            ss: '%d sekondi',\n            m: 'minuta',\n            mm: '%d minuti',\n            h: 'siegħa',\n            hh: '%d siegħat',\n            d: 'ġurnata',\n            dd: '%d ġranet',\n            M: 'xahar',\n            MM: '%d xhur',\n            y: 'sena',\n            yy: '%d sni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return mt;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/my.js",
    "content": "//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '၁',\n            2: '၂',\n            3: '၃',\n            4: '၄',\n            5: '၅',\n            6: '၆',\n            7: '၇',\n            8: '၈',\n            9: '၉',\n            0: '၀',\n        },\n        numberMap = {\n            '၁': '1',\n            '၂': '2',\n            '၃': '3',\n            '၄': '4',\n            '၅': '5',\n            '၆': '6',\n            '၇': '7',\n            '၈': '8',\n            '၉': '9',\n            '၀': '0',\n        };\n\n    var my = moment.defineLocale('my', {\n        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n            '_'\n        ),\n        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n            '_'\n        ),\n        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ယနေ.] LT [မှာ]',\n            nextDay: '[မနက်ဖြန်] LT [မှာ]',\n            nextWeek: 'dddd LT [မှာ]',\n            lastDay: '[မနေ.က] LT [မှာ]',\n            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'လာမည့် %s မှာ',\n            past: 'လွန်ခဲ့သော %s က',\n            s: 'စက္ကန်.အနည်းငယ်',\n            ss: '%d စက္ကန့်',\n            m: 'တစ်မိနစ်',\n            mm: '%d မိနစ်',\n            h: 'တစ်နာရီ',\n            hh: '%d နာရီ',\n            d: 'တစ်ရက်',\n            dd: '%d ရက်',\n            M: 'တစ်လ',\n            MM: '%d လ',\n            y: 'တစ်နှစ်',\n            yy: '%d နှစ်',\n        },\n        preparse: function (string) {\n            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return my;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/nb.js",
    "content": "//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//!           Sigurd Gartmann : https://github.com/sigurdga\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var nb = moment.defineLocale('nb', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[forrige] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'noen sekunder',\n            ss: '%d sekunder',\n            m: 'ett minutt',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dager',\n            w: 'en uke',\n            ww: '%d uker',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nb;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ne.js",
    "content": "//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    var ne = moment.defineLocale('ne', {\n        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n            '_'\n        ),\n        monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n            '_'\n        ),\n        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'Aको h:mm बजे',\n            LTS: 'Aको h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, Aको h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राति') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'बिहान') {\n                return hour;\n            } else if (meridiem === 'दिउँसो') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'साँझ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 3) {\n                return 'राति';\n            } else if (hour < 12) {\n                return 'बिहान';\n            } else if (hour < 16) {\n                return 'दिउँसो';\n            } else if (hour < 20) {\n                return 'साँझ';\n            } else {\n                return 'राति';\n            }\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[भोलि] LT',\n            nextWeek: '[आउँदो] dddd[,] LT',\n            lastDay: '[हिजो] LT',\n            lastWeek: '[गएको] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमा',\n            past: '%s अगाडि',\n            s: 'केही क्षण',\n            ss: '%d सेकेण्ड',\n            m: 'एक मिनेट',\n            mm: '%d मिनेट',\n            h: 'एक घण्टा',\n            hh: '%d घण्टा',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महिना',\n            MM: '%d महिना',\n            y: 'एक बर्ष',\n            yy: '%d बर्ष',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return ne;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/nl-be.js",
    "content": "//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    var nlBe = moment.defineLocale('nl-be', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nlBe;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/nl.js",
    "content": "//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    var nl = moment.defineLocale('nl', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            w: 'één week',\n            ww: '%d weken',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/nn.js",
    "content": "//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var nn = moment.defineLocale('nn', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[I dag klokka] LT',\n            nextDay: '[I morgon klokka] LT',\n            nextWeek: 'dddd [klokka] LT',\n            lastDay: '[I går klokka] LT',\n            lastWeek: '[Føregåande] dddd [klokka] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s sidan',\n            s: 'nokre sekund',\n            ss: '%d sekund',\n            m: 'eit minutt',\n            mm: '%d minutt',\n            h: 'ein time',\n            hh: '%d timar',\n            d: 'ein dag',\n            dd: '%d dagar',\n            w: 'ei veke',\n            ww: '%d veker',\n            M: 'ein månad',\n            MM: '%d månader',\n            y: 'eit år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/oc-lnc.js",
    "content": "//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ocLnc = moment.defineLocale('oc-lnc', {\n        months: {\n            standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n                '_'\n            ),\n            format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: '[uèi a] LT',\n            nextDay: '[deman a] LT',\n            nextWeek: 'dddd [a] LT',\n            lastDay: '[ièr a] LT',\n            lastWeek: 'dddd [passat a] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'unas segondas',\n            ss: '%d segondas',\n            m: 'una minuta',\n            mm: '%d minutas',\n            h: 'una ora',\n            hh: '%d oras',\n            d: 'un jorn',\n            dd: '%d jorns',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4,\n        },\n    });\n\n    return ocLnc;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/pa-in.js",
    "content": "//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '੧',\n            2: '੨',\n            3: '੩',\n            4: '੪',\n            5: '੫',\n            6: '੬',\n            7: '੭',\n            8: '੮',\n            9: '੯',\n            0: '੦',\n        },\n        numberMap = {\n            '੧': '1',\n            '੨': '2',\n            '੩': '3',\n            '੪': '4',\n            '੫': '5',\n            '੬': '6',\n            '੭': '7',\n            '੮': '8',\n            '੯': '9',\n            '੦': '0',\n        };\n\n    var paIn = moment.defineLocale('pa-in', {\n        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm ਵਜੇ',\n            LTS: 'A h:mm:ss ਵਜੇ',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n        },\n        calendar: {\n            sameDay: '[ਅਜ] LT',\n            nextDay: '[ਕਲ] LT',\n            nextWeek: '[ਅਗਲਾ] dddd, LT',\n            lastDay: '[ਕਲ] LT',\n            lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ਵਿੱਚ',\n            past: '%s ਪਿਛਲੇ',\n            s: 'ਕੁਝ ਸਕਿੰਟ',\n            ss: '%d ਸਕਿੰਟ',\n            m: 'ਇਕ ਮਿੰਟ',\n            mm: '%d ਮਿੰਟ',\n            h: 'ਇੱਕ ਘੰਟਾ',\n            hh: '%d ਘੰਟੇ',\n            d: 'ਇੱਕ ਦਿਨ',\n            dd: '%d ਦਿਨ',\n            M: 'ਇੱਕ ਮਹੀਨਾ',\n            MM: '%d ਮਹੀਨੇ',\n            y: 'ਇੱਕ ਸਾਲ',\n            yy: '%d ਸਾਲ',\n        },\n        preparse: function (string) {\n            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ਰਾਤ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ਸਵੇਰ') {\n                return hour;\n            } else if (meridiem === 'ਦੁਪਹਿਰ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ਸ਼ਾਮ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ਰਾਤ';\n            } else if (hour < 10) {\n                return 'ਸਵੇਰ';\n            } else if (hour < 17) {\n                return 'ਦੁਪਹਿਰ';\n            } else if (hour < 20) {\n                return 'ਸ਼ਾਮ';\n            } else {\n                return 'ਰਾਤ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return paIn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/pl.js",
    "content": "//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n            '_'\n        ),\n        monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n            '_'\n        ),\n        monthsParse = [\n            /^sty/i,\n            /^lut/i,\n            /^mar/i,\n            /^kwi/i,\n            /^maj/i,\n            /^cze/i,\n            /^lip/i,\n            /^sie/i,\n            /^wrz/i,\n            /^paź/i,\n            /^lis/i,\n            /^gru/i,\n        ];\n    function plural(n) {\n        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n    }\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                return result + (plural(number) ? 'sekundy' : 'sekund');\n            case 'm':\n                return withoutSuffix ? 'minuta' : 'minutę';\n            case 'mm':\n                return result + (plural(number) ? 'minuty' : 'minut');\n            case 'h':\n                return withoutSuffix ? 'godzina' : 'godzinę';\n            case 'hh':\n                return result + (plural(number) ? 'godziny' : 'godzin');\n            case 'ww':\n                return result + (plural(number) ? 'tygodnie' : 'tygodni');\n            case 'MM':\n                return result + (plural(number) ? 'miesiące' : 'miesięcy');\n            case 'yy':\n                return result + (plural(number) ? 'lata' : 'lat');\n        }\n    }\n\n    var pl = moment.defineLocale('pl', {\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return monthsNominative;\n            } else if (/D MMMM/.test(format)) {\n                return monthsSubjective[momentToFormat.month()];\n            } else {\n                return monthsNominative[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Dziś o] LT',\n            nextDay: '[Jutro o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W niedzielę o] LT';\n\n                    case 2:\n                        return '[We wtorek o] LT';\n\n                    case 3:\n                        return '[W środę o] LT';\n\n                    case 6:\n                        return '[W sobotę o] LT';\n\n                    default:\n                        return '[W] dddd [o] LT';\n                }\n            },\n            lastDay: '[Wczoraj o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W zeszłą niedzielę o] LT';\n                    case 3:\n                        return '[W zeszłą środę o] LT';\n                    case 6:\n                        return '[W zeszłą sobotę o] LT';\n                    default:\n                        return '[W zeszły] dddd [o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: '%s temu',\n            s: 'kilka sekund',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: '1 dzień',\n            dd: '%d dni',\n            w: 'tydzień',\n            ww: translate,\n            M: 'miesiąc',\n            MM: translate,\n            y: 'rok',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return pl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/pt-br.js",
    "content": "//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ptBr = moment.defineLocale('pt-br', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'poucos segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        invalidDate: 'Data inválida',\n    });\n\n    return ptBr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/pt.js",
    "content": "//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var pt = moment.defineLocale('pt', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            w: 'uma semana',\n            ww: '%d semanas',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return pt;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ro.js",
    "content": "//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n                ss: 'secunde',\n                mm: 'minute',\n                hh: 'ore',\n                dd: 'zile',\n                ww: 'săptămâni',\n                MM: 'luni',\n                yy: 'ani',\n            },\n            separator = ' ';\n        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n            separator = ' de ';\n        }\n        return number + separator + format[key];\n    }\n\n    var ro = moment.defineLocale('ro', {\n        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n            '_'\n        ),\n        monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[azi la] LT',\n            nextDay: '[mâine la] LT',\n            nextWeek: 'dddd [la] LT',\n            lastDay: '[ieri la] LT',\n            lastWeek: '[fosta] dddd [la] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'peste %s',\n            past: '%s în urmă',\n            s: 'câteva secunde',\n            ss: relativeTimeWithPlural,\n            m: 'un minut',\n            mm: relativeTimeWithPlural,\n            h: 'o oră',\n            hh: relativeTimeWithPlural,\n            d: 'o zi',\n            dd: relativeTimeWithPlural,\n            w: 'o săptămână',\n            ww: relativeTimeWithPlural,\n            M: 'o lună',\n            MM: relativeTimeWithPlural,\n            y: 'un an',\n            yy: relativeTimeWithPlural,\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ro;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ru.js",
    "content": "//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n            hh: 'час_часа_часов',\n            dd: 'день_дня_дней',\n            ww: 'неделя_недели_недель',\n            MM: 'месяц_месяца_месяцев',\n            yy: 'год_года_лет',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'минута' : 'минуту';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n    var monthsParse = [\n        /^янв/i,\n        /^фев/i,\n        /^мар/i,\n        /^апр/i,\n        /^ма[йя]/i,\n        /^июн/i,\n        /^июл/i,\n        /^авг/i,\n        /^сен/i,\n        /^окт/i,\n        /^ноя/i,\n        /^дек/i,\n    ];\n\n    // http://new.gramota.ru/spravka/rules/139-prop : § 103\n    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n    var ru = moment.defineLocale('ru', {\n        months: {\n            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n                '_'\n            ),\n            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n                '_'\n            ),\n        },\n        monthsShort: {\n            // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n        },\n        weekdays: {\n            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n                '_'\n            ),\n            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n        },\n        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n        monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // копия предыдущего\n        monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // полные названия с падежами\n        monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n        // Выражение, которое соответствует только сокращённым формам\n        monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., H:mm',\n            LLLL: 'dddd, D MMMM YYYY г., H:mm',\n        },\n        calendar: {\n            sameDay: '[Сегодня, в] LT',\n            nextDay: '[Завтра, в] LT',\n            lastDay: '[Вчера, в] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В следующее] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В следующий] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В следующую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            lastWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В прошлое] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В прошлый] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В прошлую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'через %s',\n            past: '%s назад',\n            s: 'несколько секунд',\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: 'час',\n            hh: relativeTimeWithPlural,\n            d: 'день',\n            dd: relativeTimeWithPlural,\n            w: 'неделя',\n            ww: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночи|утра|дня|вечера/i,\n        isPM: function (input) {\n            return /^(дня|вечера)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночи';\n            } else if (hour < 12) {\n                return 'утра';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечера';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                case 'w':\n                case 'W':\n                    return number + '-я';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ru;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sd.js",
    "content": "//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'جنوري',\n            'فيبروري',\n            'مارچ',\n            'اپريل',\n            'مئي',\n            'جون',\n            'جولاءِ',\n            'آگسٽ',\n            'سيپٽمبر',\n            'آڪٽوبر',\n            'نومبر',\n            'ڊسمبر',\n        ],\n        days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n    var sd = moment.defineLocale('sd', {\n        months: months,\n        monthsShort: months,\n        weekdays: days,\n        weekdaysShort: days,\n        weekdaysMin: days,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[اڄ] LT',\n            nextDay: '[سڀاڻي] LT',\n            nextWeek: 'dddd [اڳين هفتي تي] LT',\n            lastDay: '[ڪالهه] LT',\n            lastWeek: '[گزريل هفتي] dddd [تي] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s پوء',\n            past: '%s اڳ',\n            s: 'چند سيڪنڊ',\n            ss: '%d سيڪنڊ',\n            m: 'هڪ منٽ',\n            mm: '%d منٽ',\n            h: 'هڪ ڪلاڪ',\n            hh: '%d ڪلاڪ',\n            d: 'هڪ ڏينهن',\n            dd: '%d ڏينهن',\n            M: 'هڪ مهينو',\n            MM: '%d مهينا',\n            y: 'هڪ سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sd;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/se.js",
    "content": "//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var se = moment.defineLocale('se', {\n        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n            '_'\n        ),\n        monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n            '_'\n        ),\n        weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n            '_'\n        ),\n        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'MMMM D. [b.] YYYY',\n            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[otne ti] LT',\n            nextDay: '[ihttin ti] LT',\n            nextWeek: 'dddd [ti] LT',\n            lastDay: '[ikte ti] LT',\n            lastWeek: '[ovddit] dddd [ti] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s geažes',\n            past: 'maŋit %s',\n            s: 'moadde sekunddat',\n            ss: '%d sekunddat',\n            m: 'okta minuhta',\n            mm: '%d minuhtat',\n            h: 'okta diimmu',\n            hh: '%d diimmut',\n            d: 'okta beaivi',\n            dd: '%d beaivvit',\n            M: 'okta mánnu',\n            MM: '%d mánut',\n            y: 'okta jahki',\n            yy: '%d jagit',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return se;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/si.js",
    "content": "//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    /*jshint -W100*/\n    var si = moment.defineLocale('si', {\n        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n            '_'\n        ),\n        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n            '_'\n        ),\n        weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n            '_'\n        ),\n        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'a h:mm',\n            LTS: 'a h:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY MMMM D',\n            LLL: 'YYYY MMMM D, a h:mm',\n            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n        },\n        calendar: {\n            sameDay: '[අද] LT[ට]',\n            nextDay: '[හෙට] LT[ට]',\n            nextWeek: 'dddd LT[ට]',\n            lastDay: '[ඊයේ] LT[ට]',\n            lastWeek: '[පසුගිය] dddd LT[ට]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sකින්',\n            past: '%sකට පෙර',\n            s: 'තත්පර කිහිපය',\n            ss: 'තත්පර %d',\n            m: 'මිනිත්තුව',\n            mm: 'මිනිත්තු %d',\n            h: 'පැය',\n            hh: 'පැය %d',\n            d: 'දිනය',\n            dd: 'දින %d',\n            M: 'මාසය',\n            MM: 'මාස %d',\n            y: 'වසර',\n            yy: 'වසර %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n        ordinal: function (number) {\n            return number + ' වැනි';\n        },\n        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n        isPM: function (input) {\n            return input === 'ප.ව.' || input === 'පස් වරු';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'ප.ව.' : 'පස් වරු';\n            } else {\n                return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n            }\n        },\n    });\n\n    return si;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sk.js",
    "content": "//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n            '_'\n        ),\n        monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n    function plural(n) {\n        return n > 1 && n < 5;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'sekundy' : 'sekúnd');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'minúty' : 'minút');\n                } else {\n                    return result + 'minútami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'hodiny' : 'hodín');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'deň' : 'dňom';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'dni' : 'dní');\n                } else {\n                    return result + 'dňami';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'mesiace' : 'mesiacov');\n                } else {\n                    return result + 'mesiacmi';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokom';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'roky' : 'rokov');\n                } else {\n                    return result + 'rokmi';\n                }\n        }\n    }\n\n    var sk = moment.defineLocale('sk', {\n        months: months,\n        monthsShort: monthsShort,\n        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[dnes o] LT',\n            nextDay: '[zajtra o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [o] LT';\n                    case 3:\n                        return '[v stredu o] LT';\n                    case 4:\n                        return '[vo štvrtok o] LT';\n                    case 5:\n                        return '[v piatok o] LT';\n                    case 6:\n                        return '[v sobotu o] LT';\n                }\n            },\n            lastDay: '[včera o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulú nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[minulý] dddd [o] LT';\n                    case 3:\n                        return '[minulú stredu o] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [o] LT';\n                    case 6:\n                        return '[minulú sobotu o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pred %s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sl.js",
    "content": "//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nekaj sekund'\n                    : 'nekaj sekundami';\n            case 'ss':\n                if (number === 1) {\n                    result += withoutSuffix ? 'sekundo' : 'sekundi';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n                } else {\n                    result += 'sekund';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'ena minuta' : 'eno minuto';\n            case 'mm':\n                if (number === 1) {\n                    result += withoutSuffix ? 'minuta' : 'minuto';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'ena ura' : 'eno uro';\n            case 'hh':\n                if (number === 1) {\n                    result += withoutSuffix ? 'ura' : 'uro';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'uri' : 'urama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'ure' : 'urami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'ur' : 'urami';\n                }\n                return result;\n            case 'd':\n                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n            case 'dd':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n                } else {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n                }\n                return result;\n            case 'M':\n                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n            case 'MM':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n                } else {\n                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n                }\n                return result;\n            case 'y':\n                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n            case 'yy':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'leto' : 'letom';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'leta' : 'leti';\n                } else {\n                    result += withoutSuffix || isFuture ? 'let' : 'leti';\n                }\n                return result;\n        }\n    }\n\n    var sl = moment.defineLocale('sl', {\n        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD. MM. YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danes ob] LT',\n            nextDay: '[jutri ob] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[v] [sredo] [ob] LT';\n                    case 6:\n                        return '[v] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[v] dddd [ob] LT';\n                }\n            },\n            lastDay: '[včeraj ob] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prejšnjo] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[prejšnjo] [sredo] [ob] LT';\n                    case 6:\n                        return '[prejšnjo] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prejšnji] dddd [ob] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'čez %s',\n            past: 'pred %s',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sq.js",
    "content": "//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sq = moment.defineLocale('sq', {\n        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n            '_'\n        ),\n        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /PD|MD/,\n        isPM: function (input) {\n            return input.charAt(0) === 'M';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            return hours < 12 ? 'PD' : 'MD';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Sot në] LT',\n            nextDay: '[Nesër në] LT',\n            nextWeek: 'dddd [në] LT',\n            lastDay: '[Dje në] LT',\n            lastWeek: 'dddd [e kaluar në] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'në %s',\n            past: '%s më parë',\n            s: 'disa sekonda',\n            ss: '%d sekonda',\n            m: 'një minutë',\n            mm: '%d minuta',\n            h: 'një orë',\n            hh: '%d orë',\n            d: 'një ditë',\n            dd: '%d ditë',\n            M: 'një muaj',\n            MM: '%d muaj',\n            y: 'një vit',\n            yy: '%d vite',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sq;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sr-cyrl.js",
    "content": "//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['секунда', 'секунде', 'секунди'],\n            m: ['један минут', 'једне минуте'],\n            mm: ['минут', 'минуте', 'минута'],\n            h: ['један сат', 'једног сата'],\n            hh: ['сат', 'сата', 'сати'],\n            dd: ['дан', 'дана', 'дана'],\n            MM: ['месец', 'месеца', 'месеци'],\n            yy: ['година', 'године', 'година'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    var srCyrl = moment.defineLocale('sr-cyrl', {\n        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n            '_'\n        ),\n        monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[данас у] LT',\n            nextDay: '[сутра у] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[у] [недељу] [у] LT';\n                    case 3:\n                        return '[у] [среду] [у] LT';\n                    case 6:\n                        return '[у] [суботу] [у] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[у] dddd [у] LT';\n                }\n            },\n            lastDay: '[јуче у] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[прошле] [недеље] [у] LT',\n                    '[прошлог] [понедељка] [у] LT',\n                    '[прошлог] [уторка] [у] LT',\n                    '[прошле] [среде] [у] LT',\n                    '[прошлог] [четвртка] [у] LT',\n                    '[прошлог] [петка] [у] LT',\n                    '[прошле] [суботе] [у] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пре %s',\n            s: 'неколико секунди',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'дан',\n            dd: translator.translate,\n            M: 'месец',\n            MM: translator.translate,\n            y: 'годину',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return srCyrl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sr.js",
    "content": "//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekunda', 'sekunde', 'sekundi'],\n            m: ['jedan minut', 'jedne minute'],\n            mm: ['minut', 'minute', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mesec', 'meseca', 'meseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    var sr = moment.defineLocale('sr', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedelju] [u] LT';\n                    case 3:\n                        return '[u] [sredu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedelje] [u] LT',\n                    '[prošlog] [ponedeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pre %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'dan',\n            dd: translator.translate,\n            M: 'mesec',\n            MM: translator.translate,\n            y: 'godinu',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ss.js",
    "content": "//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ss = moment.defineLocale('ss', {\n        months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n            '_'\n        ),\n        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n        weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Namuhla nga] LT',\n            nextDay: '[Kusasa nga] LT',\n            nextWeek: 'dddd [nga] LT',\n            lastDay: '[Itolo nga] LT',\n            lastWeek: 'dddd [leliphelile] [nga] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'nga %s',\n            past: 'wenteka nga %s',\n            s: 'emizuzwana lomcane',\n            ss: '%d mzuzwana',\n            m: 'umzuzu',\n            mm: '%d emizuzu',\n            h: 'lihora',\n            hh: '%d emahora',\n            d: 'lilanga',\n            dd: '%d emalanga',\n            M: 'inyanga',\n            MM: '%d tinyanga',\n            y: 'umnyaka',\n            yy: '%d iminyaka',\n        },\n        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'ekuseni';\n            } else if (hours < 15) {\n                return 'emini';\n            } else if (hours < 19) {\n                return 'entsambama';\n            } else {\n                return 'ebusuku';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ekuseni') {\n                return hour;\n            } else if (meridiem === 'emini') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n                if (hour === 0) {\n                    return 0;\n                }\n                return hour + 12;\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: '%d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ss;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sv.js",
    "content": "//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sv = moment.defineLocale('sv', {\n        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Idag] LT',\n            nextDay: '[Imorgon] LT',\n            lastDay: '[Igår] LT',\n            nextWeek: '[På] dddd LT',\n            lastWeek: '[I] dddd[s] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: 'för %s sedan',\n            s: 'några sekunder',\n            ss: '%d sekunder',\n            m: 'en minut',\n            mm: '%d minuter',\n            h: 'en timme',\n            hh: '%d timmar',\n            d: 'en dag',\n            dd: '%d dagar',\n            M: 'en månad',\n            MM: '%d månader',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? ':e'\n                        : b === 1\n                        ? ':a'\n                        : b === 2\n                        ? ':a'\n                        : b === 3\n                        ? ':e'\n                        : ':e';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sv;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/sw.js",
    "content": "//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sw = moment.defineLocale('sw', {\n        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'hh:mm A',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[leo saa] LT',\n            nextDay: '[kesho saa] LT',\n            nextWeek: '[wiki ijayo] dddd [saat] LT',\n            lastDay: '[jana] LT',\n            lastWeek: '[wiki iliyopita] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s baadaye',\n            past: 'tokea %s',\n            s: 'hivi punde',\n            ss: 'sekunde %d',\n            m: 'dakika moja',\n            mm: 'dakika %d',\n            h: 'saa limoja',\n            hh: 'masaa %d',\n            d: 'siku moja',\n            dd: 'siku %d',\n            M: 'mwezi mmoja',\n            MM: 'miezi %d',\n            y: 'mwaka mmoja',\n            yy: 'miaka %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sw;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ta.js",
    "content": "//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '௧',\n            2: '௨',\n            3: '௩',\n            4: '௪',\n            5: '௫',\n            6: '௬',\n            7: '௭',\n            8: '௮',\n            9: '௯',\n            0: '௦',\n        },\n        numberMap = {\n            '௧': '1',\n            '௨': '2',\n            '௩': '3',\n            '௪': '4',\n            '௫': '5',\n            '௬': '6',\n            '௭': '7',\n            '௮': '8',\n            '௯': '9',\n            '௦': '0',\n        };\n\n    var ta = moment.defineLocale('ta', {\n        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n            '_'\n        ),\n        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n            '_'\n        ),\n        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, HH:mm',\n            LLLL: 'dddd, D MMMM YYYY, HH:mm',\n        },\n        calendar: {\n            sameDay: '[இன்று] LT',\n            nextDay: '[நாளை] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[நேற்று] LT',\n            lastWeek: '[கடந்த வாரம்] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s இல்',\n            past: '%s முன்',\n            s: 'ஒரு சில விநாடிகள்',\n            ss: '%d விநாடிகள்',\n            m: 'ஒரு நிமிடம்',\n            mm: '%d நிமிடங்கள்',\n            h: 'ஒரு மணி நேரம்',\n            hh: '%d மணி நேரம்',\n            d: 'ஒரு நாள்',\n            dd: '%d நாட்கள்',\n            M: 'ஒரு மாதம்',\n            MM: '%d மாதங்கள்',\n            y: 'ஒரு வருடம்',\n            yy: '%d ஆண்டுகள்',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n        ordinal: function (number) {\n            return number + 'வது';\n        },\n        preparse: function (string) {\n            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // refer http://ta.wikipedia.org/s/1er1\n        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 2) {\n                return ' யாமம்';\n            } else if (hour < 6) {\n                return ' வைகறை'; // வைகறை\n            } else if (hour < 10) {\n                return ' காலை'; // காலை\n            } else if (hour < 14) {\n                return ' நண்பகல்'; // நண்பகல்\n            } else if (hour < 18) {\n                return ' எற்பாடு'; // எற்பாடு\n            } else if (hour < 22) {\n                return ' மாலை'; // மாலை\n            } else {\n                return ' யாமம்';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'யாமம்') {\n                return hour < 2 ? hour : hour + 12;\n            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n                return hour;\n            } else if (meridiem === 'நண்பகல்') {\n                return hour >= 10 ? hour : hour + 12;\n            } else {\n                return hour + 12;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return ta;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/te.js",
    "content": "//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var te = moment.defineLocale('te', {\n        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n            '_'\n        ),\n        monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n            '_'\n        ),\n        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[నేడు] LT',\n            nextDay: '[రేపు] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[నిన్న] LT',\n            lastWeek: '[గత] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s లో',\n            past: '%s క్రితం',\n            s: 'కొన్ని క్షణాలు',\n            ss: '%d సెకన్లు',\n            m: 'ఒక నిమిషం',\n            mm: '%d నిమిషాలు',\n            h: 'ఒక గంట',\n            hh: '%d గంటలు',\n            d: 'ఒక రోజు',\n            dd: '%d రోజులు',\n            M: 'ఒక నెల',\n            MM: '%d నెలలు',\n            y: 'ఒక సంవత్సరం',\n            yy: '%d సంవత్సరాలు',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n        ordinal: '%dవ',\n        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'రాత్రి') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ఉదయం') {\n                return hour;\n            } else if (meridiem === 'మధ్యాహ్నం') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'సాయంత్రం') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'రాత్రి';\n            } else if (hour < 10) {\n                return 'ఉదయం';\n            } else if (hour < 17) {\n                return 'మధ్యాహ్నం';\n            } else if (hour < 20) {\n                return 'సాయంత్రం';\n            } else {\n                return 'రాత్రి';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return te;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tet.js",
    "content": "//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tet = moment.defineLocale('tet', {\n        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Ohin iha] LT',\n            nextDay: '[Aban iha] LT',\n            nextWeek: 'dddd [iha] LT',\n            lastDay: '[Horiseik iha] LT',\n            lastWeek: 'dddd [semana kotuk] [iha] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'iha %s',\n            past: '%s liuba',\n            s: 'segundu balun',\n            ss: 'segundu %d',\n            m: 'minutu ida',\n            mm: 'minutu %d',\n            h: 'oras ida',\n            hh: 'oras %d',\n            d: 'loron ida',\n            dd: 'loron %d',\n            M: 'fulan ida',\n            MM: 'fulan %d',\n            y: 'tinan ida',\n            yy: 'tinan %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tet;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tg.js",
    "content": "//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-ум',\n        1: '-ум',\n        2: '-юм',\n        3: '-юм',\n        4: '-ум',\n        5: '-ум',\n        6: '-ум',\n        7: '-ум',\n        8: '-ум',\n        9: '-ум',\n        10: '-ум',\n        12: '-ум',\n        13: '-ум',\n        20: '-ум',\n        30: '-юм',\n        40: '-ум',\n        50: '-ум',\n        60: '-ум',\n        70: '-ум',\n        80: '-ум',\n        90: '-ум',\n        100: '-ум',\n    };\n\n    var tg = moment.defineLocale('tg', {\n        months: {\n            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n                '_'\n            ),\n            standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n            '_'\n        ),\n        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Имрӯз соати] LT',\n            nextDay: '[Фардо соати] LT',\n            lastDay: '[Дирӯз соати] LT',\n            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'баъди %s',\n            past: '%s пеш',\n            s: 'якчанд сония',\n            m: 'як дақиқа',\n            mm: '%d дақиқа',\n            h: 'як соат',\n            hh: '%d соат',\n            d: 'як рӯз',\n            dd: '%d рӯз',\n            M: 'як моҳ',\n            MM: '%d моҳ',\n            y: 'як сол',\n            yy: '%d сол',\n        },\n        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'шаб') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'субҳ') {\n                return hour;\n            } else if (meridiem === 'рӯз') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'бегоҳ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'шаб';\n            } else if (hour < 11) {\n                return 'субҳ';\n            } else if (hour < 16) {\n                return 'рӯз';\n            } else if (hour < 19) {\n                return 'бегоҳ';\n            } else {\n                return 'шаб';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1th is the first week of the year.\n        },\n    });\n\n    return tg;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/th.js",
    "content": "//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var th = moment.defineLocale('th', {\n        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n            '_'\n        ),\n        monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY เวลา H:mm',\n            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n        },\n        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n        isPM: function (input) {\n            return input === 'หลังเที่ยง';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ก่อนเที่ยง';\n            } else {\n                return 'หลังเที่ยง';\n            }\n        },\n        calendar: {\n            sameDay: '[วันนี้ เวลา] LT',\n            nextDay: '[พรุ่งนี้ เวลา] LT',\n            nextWeek: 'dddd[หน้า เวลา] LT',\n            lastDay: '[เมื่อวานนี้ เวลา] LT',\n            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'อีก %s',\n            past: '%sที่แล้ว',\n            s: 'ไม่กี่วินาที',\n            ss: '%d วินาที',\n            m: '1 นาที',\n            mm: '%d นาที',\n            h: '1 ชั่วโมง',\n            hh: '%d ชั่วโมง',\n            d: '1 วัน',\n            dd: '%d วัน',\n            w: '1 สัปดาห์',\n            ww: '%d สัปดาห์',\n            M: '1 เดือน',\n            MM: '%d เดือน',\n            y: '1 ปี',\n            yy: '%d ปี',\n        },\n    });\n\n    return th;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tk.js",
    "content": "//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: \"'inji\",\n        5: \"'inji\",\n        8: \"'inji\",\n        70: \"'inji\",\n        80: \"'inji\",\n        2: \"'nji\",\n        7: \"'nji\",\n        20: \"'nji\",\n        50: \"'nji\",\n        3: \"'ünji\",\n        4: \"'ünji\",\n        100: \"'ünji\",\n        6: \"'njy\",\n        9: \"'unjy\",\n        10: \"'unjy\",\n        30: \"'unjy\",\n        60: \"'ynjy\",\n        90: \"'ynjy\",\n    };\n\n    var tk = moment.defineLocale('tk', {\n        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün sagat] LT',\n            nextDay: '[ertir sagat] LT',\n            nextWeek: '[indiki] dddd [sagat] LT',\n            lastDay: '[düýn] LT',\n            lastWeek: '[geçen] dddd [sagat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s soň',\n            past: '%s öň',\n            s: 'birnäçe sekunt',\n            m: 'bir minut',\n            mm: '%d minut',\n            h: 'bir sagat',\n            hh: '%d sagat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir aý',\n            MM: '%d aý',\n            y: 'bir ýyl',\n            yy: '%d ýyl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'unjy\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return tk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tl-ph.js",
    "content": "//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tlPh = moment.defineLocale('tl-ph', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tlPh;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tlh.js",
    "content": "//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n    function translateFuture(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'leS'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'waQ'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'nem'\n                : time + ' pIq';\n        return time;\n    }\n\n    function translatePast(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'Hu’'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'wen'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'ben'\n                : time + ' ret';\n        return time;\n    }\n\n    function translate(number, withoutSuffix, string, isFuture) {\n        var numberNoun = numberAsNoun(number);\n        switch (string) {\n            case 'ss':\n                return numberNoun + ' lup';\n            case 'mm':\n                return numberNoun + ' tup';\n            case 'hh':\n                return numberNoun + ' rep';\n            case 'dd':\n                return numberNoun + ' jaj';\n            case 'MM':\n                return numberNoun + ' jar';\n            case 'yy':\n                return numberNoun + ' DIS';\n        }\n    }\n\n    function numberAsNoun(number) {\n        var hundred = Math.floor((number % 1000) / 100),\n            ten = Math.floor((number % 100) / 10),\n            one = number % 10,\n            word = '';\n        if (hundred > 0) {\n            word += numbersNouns[hundred] + 'vatlh';\n        }\n        if (ten > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n        }\n        if (one > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[one];\n        }\n        return word === '' ? 'pagh' : word;\n    }\n\n    var tlh = moment.defineLocale('tlh', {\n        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[DaHjaj] LT',\n            nextDay: '[wa’leS] LT',\n            nextWeek: 'LLL',\n            lastDay: '[wa’Hu’] LT',\n            lastWeek: 'LLL',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: translateFuture,\n            past: translatePast,\n            s: 'puS lup',\n            ss: translate,\n            m: 'wa’ tup',\n            mm: translate,\n            h: 'wa’ rep',\n            hh: translate,\n            d: 'wa’ jaj',\n            dd: translate,\n            M: 'wa’ jar',\n            MM: translate,\n            y: 'wa’ DIS',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tlh;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tr.js",
    "content": "//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//!           Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: \"'inci\",\n        5: \"'inci\",\n        8: \"'inci\",\n        70: \"'inci\",\n        80: \"'inci\",\n        2: \"'nci\",\n        7: \"'nci\",\n        20: \"'nci\",\n        50: \"'nci\",\n        3: \"'üncü\",\n        4: \"'üncü\",\n        100: \"'üncü\",\n        6: \"'ncı\",\n        9: \"'uncu\",\n        10: \"'uncu\",\n        30: \"'uncu\",\n        60: \"'ıncı\",\n        90: \"'ıncı\",\n    };\n\n    var tr = moment.defineLocale('tr', {\n        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n            '_'\n        ),\n        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'öö' : 'ÖÖ';\n            } else {\n                return isLower ? 'ös' : 'ÖS';\n            }\n        },\n        meridiemParse: /öö|ÖÖ|ös|ÖS/,\n        isPM: function (input) {\n            return input === 'ös' || input === 'ÖS';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[yarın saat] LT',\n            nextWeek: '[gelecek] dddd [saat] LT',\n            lastDay: '[dün] LT',\n            lastWeek: '[geçen] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s önce',\n            s: 'birkaç saniye',\n            ss: '%d saniye',\n            m: 'bir dakika',\n            mm: '%d dakika',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            w: 'bir hafta',\n            ww: '%d hafta',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir yıl',\n            yy: '%d yıl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'ıncı\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return tr;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tzl.js",
    "content": "//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n    // This is currently too difficult (maybe even impossible) to add.\n    var tzl = moment.defineLocale('tzl', {\n        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM [dallas] YYYY',\n            LLL: 'D. MMMM [dallas] YYYY HH.mm',\n            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n        },\n        meridiemParse: /d\\'o|d\\'a/i,\n        isPM: function (input) {\n            return \"d'o\" === input.toLowerCase();\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? \"d'o\" : \"D'O\";\n            } else {\n                return isLower ? \"d'a\" : \"D'A\";\n            }\n        },\n        calendar: {\n            sameDay: '[oxhi à] LT',\n            nextDay: '[demà à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[ieiri à] LT',\n            lastWeek: '[sür el] dddd [lasteu à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'osprei %s',\n            past: 'ja%s',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['viensas secunds', \"'iensas secunds\"],\n            ss: [number + ' secunds', '' + number + ' secunds'],\n            m: [\"'n míut\", \"'iens míut\"],\n            mm: [number + ' míuts', '' + number + ' míuts'],\n            h: [\"'n þora\", \"'iensa þora\"],\n            hh: [number + ' þoras', '' + number + ' þoras'],\n            d: [\"'n ziua\", \"'iensa ziua\"],\n            dd: [number + ' ziuas', '' + number + ' ziuas'],\n            M: [\"'n mes\", \"'iens mes\"],\n            MM: [number + ' mesen', '' + number + ' mesen'],\n            y: [\"'n ar\", \"'iens ar\"],\n            yy: [number + ' ars', '' + number + ' ars'],\n        };\n        return isFuture\n            ? format[key][0]\n            : withoutSuffix\n            ? format[key][0]\n            : format[key][1];\n    }\n\n    return tzl;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tzm-latn.js",
    "content": "//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tzmLatn = moment.defineLocale('tzm-latn', {\n        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[asdkh g] LT',\n            nextDay: '[aska g] LT',\n            nextWeek: 'dddd [g] LT',\n            lastDay: '[assant g] LT',\n            lastWeek: 'dddd [g] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dadkh s yan %s',\n            past: 'yan %s',\n            s: 'imik',\n            ss: '%d imik',\n            m: 'minuḍ',\n            mm: '%d minuḍ',\n            h: 'saɛa',\n            hh: '%d tassaɛin',\n            d: 'ass',\n            dd: '%d ossan',\n            M: 'ayowr',\n            MM: '%d iyyirn',\n            y: 'asgas',\n            yy: '%d isgasn',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return tzmLatn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/tzm.js",
    "content": "//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tzm = moment.defineLocale('tzm', {\n        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n            nextWeek: 'dddd [ⴴ] LT',\n            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n            lastWeek: 'dddd [ⴴ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n            past: 'ⵢⴰⵏ %s',\n            s: 'ⵉⵎⵉⴽ',\n            ss: '%d ⵉⵎⵉⴽ',\n            m: 'ⵎⵉⵏⵓⴺ',\n            mm: '%d ⵎⵉⵏⵓⴺ',\n            h: 'ⵙⴰⵄⴰ',\n            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n            d: 'ⴰⵙⵙ',\n            dd: '%d oⵙⵙⴰⵏ',\n            M: 'ⴰⵢoⵓⵔ',\n            MM: '%d ⵉⵢⵢⵉⵔⵏ',\n            y: 'ⴰⵙⴳⴰⵙ',\n            yy: '%d ⵉⵙⴳⴰⵙⵏ',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return tzm;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ug-cn.js",
    "content": "//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ugCn = moment.defineLocale('ug-cn', {\n        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n            '_'\n        ),\n        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n        },\n        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                meridiem === 'يېرىم كېچە' ||\n                meridiem === 'سەھەر' ||\n                meridiem === 'چۈشتىن بۇرۇن'\n            ) {\n                return hour;\n            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n                return hour + 12;\n            } else {\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return 'يېرىم كېچە';\n            } else if (hm < 900) {\n                return 'سەھەر';\n            } else if (hm < 1130) {\n                return 'چۈشتىن بۇرۇن';\n            } else if (hm < 1230) {\n                return 'چۈش';\n            } else if (hm < 1800) {\n                return 'چۈشتىن كېيىن';\n            } else {\n                return 'كەچ';\n            }\n        },\n        calendar: {\n            sameDay: '[بۈگۈن سائەت] LT',\n            nextDay: '[ئەتە سائەت] LT',\n            nextWeek: '[كېلەركى] dddd [سائەت] LT',\n            lastDay: '[تۆنۈگۈن] LT',\n            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s كېيىن',\n            past: '%s بۇرۇن',\n            s: 'نەچچە سېكونت',\n            ss: '%d سېكونت',\n            m: 'بىر مىنۇت',\n            mm: '%d مىنۇت',\n            h: 'بىر سائەت',\n            hh: '%d سائەت',\n            d: 'بىر كۈن',\n            dd: '%d كۈن',\n            M: 'بىر ئاي',\n            MM: '%d ئاي',\n            y: 'بىر يىل',\n            yy: '%d يىل',\n        },\n\n        dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '-كۈنى';\n                case 'w':\n                case 'W':\n                    return number + '-ھەپتە';\n                default:\n                    return number;\n            }\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return ugCn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/uk.js",
    "content": "//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n            dd: 'день_дні_днів',\n            MM: 'місяць_місяці_місяців',\n            yy: 'рік_роки_років',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвилина' : 'хвилину';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'година' : 'годину';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n    function weekdaysCaseReplace(m, format) {\n        var weekdays = {\n                nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n                    '_'\n                ),\n                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n                    '_'\n                ),\n                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n                    '_'\n                ),\n            },\n            nounCase;\n\n        if (m === true) {\n            return weekdays['nominative']\n                .slice(1, 7)\n                .concat(weekdays['nominative'].slice(0, 1));\n        }\n        if (!m) {\n            return weekdays['nominative'];\n        }\n\n        nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n            ? 'accusative'\n            : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n            ? 'genitive'\n            : 'nominative';\n        return weekdays[nounCase][m.day()];\n    }\n    function processHoursFunction(str) {\n        return function () {\n            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n        };\n    }\n\n    var uk = moment.defineLocale('uk', {\n        months: {\n            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n                '_'\n            ),\n            standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n            '_'\n        ),\n        weekdays: weekdaysCaseReplace,\n        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY р.',\n            LLL: 'D MMMM YYYY р., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n        },\n        calendar: {\n            sameDay: processHoursFunction('[Сьогодні '),\n            nextDay: processHoursFunction('[Завтра '),\n            lastDay: processHoursFunction('[Вчора '),\n            nextWeek: processHoursFunction('[У] dddd ['),\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return processHoursFunction('[Минулої] dddd [').call(this);\n                    case 1:\n                    case 2:\n                    case 4:\n                        return processHoursFunction('[Минулого] dddd [').call(this);\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: '%s тому',\n            s: 'декілька секунд',\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: 'годину',\n            hh: relativeTimeWithPlural,\n            d: 'день',\n            dd: relativeTimeWithPlural,\n            M: 'місяць',\n            MM: relativeTimeWithPlural,\n            y: 'рік',\n            yy: relativeTimeWithPlural,\n        },\n        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n        meridiemParse: /ночі|ранку|дня|вечора/,\n        isPM: function (input) {\n            return /^(дня|вечора)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночі';\n            } else if (hour < 12) {\n                return 'ранку';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечора';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return uk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/ur.js",
    "content": "//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'جنوری',\n            'فروری',\n            'مارچ',\n            'اپریل',\n            'مئی',\n            'جون',\n            'جولائی',\n            'اگست',\n            'ستمبر',\n            'اکتوبر',\n            'نومبر',\n            'دسمبر',\n        ],\n        days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n    var ur = moment.defineLocale('ur', {\n        months: months,\n        monthsShort: months,\n        weekdays: days,\n        weekdaysShort: days,\n        weekdaysMin: days,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[آج بوقت] LT',\n            nextDay: '[کل بوقت] LT',\n            nextWeek: 'dddd [بوقت] LT',\n            lastDay: '[گذشتہ روز بوقت] LT',\n            lastWeek: '[گذشتہ] dddd [بوقت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s بعد',\n            past: '%s قبل',\n            s: 'چند سیکنڈ',\n            ss: '%d سیکنڈ',\n            m: 'ایک منٹ',\n            mm: '%d منٹ',\n            h: 'ایک گھنٹہ',\n            hh: '%d گھنٹے',\n            d: 'ایک دن',\n            dd: '%d دن',\n            M: 'ایک ماہ',\n            MM: '%d ماہ',\n            y: 'ایک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ur;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/uz-latn.js",
    "content": "//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var uzLatn = moment.defineLocale('uz-latn', {\n        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n        weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n            '_'\n        ),\n        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bugun soat] LT [da]',\n            nextDay: '[Ertaga] LT [da]',\n            nextWeek: 'dddd [kuni soat] LT [da]',\n            lastDay: '[Kecha soat] LT [da]',\n            lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Yaqin %s ichida',\n            past: 'Bir necha %s oldin',\n            s: 'soniya',\n            ss: '%d soniya',\n            m: 'bir daqiqa',\n            mm: '%d daqiqa',\n            h: 'bir soat',\n            hh: '%d soat',\n            d: 'bir kun',\n            dd: '%d kun',\n            M: 'bir oy',\n            MM: '%d oy',\n            y: 'bir yil',\n            yy: '%d yil',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return uzLatn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/uz.js",
    "content": "//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var uz = moment.defineLocale('uz', {\n        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бугун соат] LT [да]',\n            nextDay: '[Эртага] LT [да]',\n            nextWeek: 'dddd [куни соат] LT [да]',\n            lastDay: '[Кеча соат] LT [да]',\n            lastWeek: '[Утган] dddd [куни соат] LT [да]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Якин %s ичида',\n            past: 'Бир неча %s олдин',\n            s: 'фурсат',\n            ss: '%d фурсат',\n            m: 'бир дакика',\n            mm: '%d дакика',\n            h: 'бир соат',\n            hh: '%d соат',\n            d: 'бир кун',\n            dd: '%d кун',\n            M: 'бир ой',\n            MM: '%d ой',\n            y: 'бир йил',\n            yy: '%d йил',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return uz;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/vi.js",
    "content": "//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var vi = moment.defineLocale('vi', {\n        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n            '_'\n        ),\n        monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n            '_'\n        ),\n        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /sa|ch/i,\n        isPM: function (input) {\n            return /^ch$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'sa' : 'SA';\n            } else {\n                return isLower ? 'ch' : 'CH';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [năm] YYYY',\n            LLL: 'D MMMM [năm] YYYY HH:mm',\n            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n            l: 'DD/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hôm nay lúc] LT',\n            nextDay: '[Ngày mai lúc] LT',\n            nextWeek: 'dddd [tuần tới lúc] LT',\n            lastDay: '[Hôm qua lúc] LT',\n            lastWeek: 'dddd [tuần trước lúc] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s tới',\n            past: '%s trước',\n            s: 'vài giây',\n            ss: '%d giây',\n            m: 'một phút',\n            mm: '%d phút',\n            h: 'một giờ',\n            hh: '%d giờ',\n            d: 'một ngày',\n            dd: '%d ngày',\n            w: 'một tuần',\n            ww: '%d tuần',\n            M: 'một tháng',\n            MM: '%d tháng',\n            y: 'một năm',\n            yy: '%d năm',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return vi;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/x-pseudo.js",
    "content": "//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var xPseudo = moment.defineLocale('x-pseudo', {\n        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n            '_'\n        ),\n        monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n            '_'\n        ),\n        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[T~ódá~ý át] LT',\n            nextDay: '[T~ómó~rró~w át] LT',\n            nextWeek: 'dddd [át] LT',\n            lastDay: '[Ý~ést~érdá~ý át] LT',\n            lastWeek: '[L~ást] dddd [át] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'í~ñ %s',\n            past: '%s á~gó',\n            s: 'á ~féw ~sécó~ñds',\n            ss: '%d s~écóñ~ds',\n            m: 'á ~míñ~úté',\n            mm: '%d m~íñú~tés',\n            h: 'á~ñ hó~úr',\n            hh: '%d h~óúrs',\n            d: 'á ~dáý',\n            dd: '%d d~áýs',\n            M: 'á ~móñ~th',\n            MM: '%d m~óñt~hs',\n            y: 'á ~ýéár',\n            yy: '%d ý~éárs',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return xPseudo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/yo.js",
    "content": "//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var yo = moment.defineLocale('yo', {\n        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n            '_'\n        ),\n        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Ònì ni] LT',\n            nextDay: '[Ọ̀la ni] LT',\n            nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n            lastDay: '[Àna ni] LT',\n            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ní %s',\n            past: '%s kọjá',\n            s: 'ìsẹjú aayá die',\n            ss: 'aayá %d',\n            m: 'ìsẹjú kan',\n            mm: 'ìsẹjú %d',\n            h: 'wákati kan',\n            hh: 'wákati %d',\n            d: 'ọjọ́ kan',\n            dd: 'ọjọ́ %d',\n            M: 'osù kan',\n            MM: 'osù %d',\n            y: 'ọdún kan',\n            yy: 'ọdún %d',\n        },\n        dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n        ordinal: 'ọjọ́ %d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return yo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/zh-cn.js",
    "content": "//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhCn = moment.defineLocale('zh-cn', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日Ah点mm分',\n            LLLL: 'YYYY年M月D日ddddAh点mm分',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            } else {\n                // '中午'\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[下]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            lastDay: '[昨天]LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[上]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '周';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s后',\n            past: '%s前',\n            s: '几秒',\n            ss: '%d 秒',\n            m: '1 分钟',\n            mm: '%d 分钟',\n            h: '1 小时',\n            hh: '%d 小时',\n            d: '1 天',\n            dd: '%d 天',\n            w: '1 周',\n            ww: '%d 周',\n            M: '1 个月',\n            MM: '%d 个月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return zhCn;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/zh-hk.js",
    "content": "//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhHk = moment.defineLocale('zh-hk', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1200) {\n                return '上午';\n            } else if (hm === 1200) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: '[下]ddddLT',\n            lastDay: '[昨天]LT',\n            lastWeek: '[上]ddddLT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhHk;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/zh-mo.js",
    "content": "//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhMo = moment.defineLocale('zh-mo', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s內',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhMo;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locale/zh-tw.js",
    "content": "//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhTw = moment.defineLocale('zh-tw', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhTw;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/locales.js",
    "content": ";(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('af', {\n        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n        meridiemParse: /vm|nm/i,\n        isPM: function (input) {\n            return /^nm$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'vm' : 'VM';\n            } else {\n                return isLower ? 'nm' : 'NM';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Vandag om] LT',\n            nextDay: '[Môre om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[Gister om] LT',\n            lastWeek: '[Laas] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oor %s',\n            past: '%s gelede',\n            s: \"'n paar sekondes\",\n            ss: '%d sekondes',\n            m: \"'n minuut\",\n            mm: '%d minute',\n            h: \"'n uur\",\n            hh: '%d ure',\n            d: \"'n dag\",\n            dd: '%d dae',\n            M: \"'n maand\",\n            MM: '%d maande',\n            y: \"'n jaar\",\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            ); // Thanks to Joris Röling : https://github.com/jjupiter\n        },\n        week: {\n            dow: 1, // Maandag is die eerste dag van die week.\n            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'جانفي',\n            'فيفري',\n            'مارس',\n            'أفريل',\n            'ماي',\n            'جوان',\n            'جويلية',\n            'أوت',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    moment.defineLocale('ar-dz', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ar-kw', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '1',\n            2: '2',\n            3: '3',\n            4: '4',\n            5: '5',\n            6: '6',\n            7: '7',\n            8: '8',\n            9: '9',\n            0: '0',\n        },\n        pluralForm$1 = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals$1 = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize$1 = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm$1(number),\n                    str = plurals$1[u][pluralForm$1(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months$1 = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    moment.defineLocale('ar-ly', {\n        months: months$1,\n        monthsShort: months$1,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize$1('s'),\n            ss: pluralize$1('s'),\n            m: pluralize$1('m'),\n            mm: pluralize$1('m'),\n            h: pluralize$1('h'),\n            hh: pluralize$1('h'),\n            d: pluralize$1('d'),\n            dd: pluralize$1('d'),\n            M: pluralize$1('M'),\n            MM: pluralize$1('M'),\n            y: pluralize$1('y'),\n            yy: pluralize$1('y'),\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ar-ma', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$1 = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        };\n\n    moment.defineLocale('ar-sa', {\n        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$1[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ar-tn', {\n        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$2 = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap$1 = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        pluralForm$2 = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals$2 = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize$2 = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm$2(number),\n                    str = plurals$2[u][pluralForm$2(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months$2 = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    moment.defineLocale('ar', {\n        months: months$2,\n        monthsShort: months$2,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize$2('s'),\n            ss: pluralize$2('s'),\n            m: pluralize$2('m'),\n            mm: pluralize$2('m'),\n            h: pluralize$2('h'),\n            hh: pluralize$2('h'),\n            d: pluralize$2('d'),\n            dd: pluralize$2('d'),\n            M: pluralize$2('M'),\n            MM: pluralize$2('M'),\n            y: pluralize$2('y'),\n            yy: pluralize$2('y'),\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap$1[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$2[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: '-inci',\n        5: '-inci',\n        8: '-inci',\n        70: '-inci',\n        80: '-inci',\n        2: '-nci',\n        7: '-nci',\n        20: '-nci',\n        50: '-nci',\n        3: '-üncü',\n        4: '-üncü',\n        100: '-üncü',\n        6: '-ncı',\n        9: '-uncu',\n        10: '-uncu',\n        30: '-uncu',\n        60: '-ıncı',\n        90: '-ıncı',\n    };\n\n    moment.defineLocale('az', {\n        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n        weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n            '_'\n        ),\n        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[sabah saat] LT',\n            nextWeek: '[gələn həftə] dddd [saat] LT',\n            lastDay: '[dünən] LT',\n            lastWeek: '[keçən həftə] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s əvvəl',\n            s: 'bir neçə saniyə',\n            ss: '%d saniyə',\n            m: 'bir dəqiqə',\n            mm: '%d dəqiqə',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir il',\n            yy: '%d il',\n        },\n        meridiemParse: /gecə|səhər|gündüz|axşam/,\n        isPM: function (input) {\n            return /^(gündüz|axşam)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'gecə';\n            } else if (hour < 12) {\n                return 'səhər';\n            } else if (hour < 17) {\n                return 'gündüz';\n            } else {\n                return 'axşam';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n        ordinal: function (number) {\n            if (number === 0) {\n                // special case for zero\n                return number + '-ıncı';\n            }\n            var a = number % 10,\n                b = (number % 100) - a,\n                c = number >= 100 ? 100 : null;\n            return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n            dd: 'дзень_дні_дзён',\n            MM: 'месяц_месяцы_месяцаў',\n            yy: 'год_гады_гадоў',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвіліна' : 'хвіліну';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'гадзіна' : 'гадзіну';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n\n    moment.defineLocale('be', {\n        months: {\n            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n                '_'\n            ),\n            standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n            '_'\n        ),\n        weekdays: {\n            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n                '_'\n            ),\n            standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n        },\n        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n        },\n        calendar: {\n            sameDay: '[Сёння ў] LT',\n            nextDay: '[Заўтра ў] LT',\n            lastDay: '[Учора ў] LT',\n            nextWeek: function () {\n                return '[У] dddd [ў] LT';\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[У мінулую] dddd [ў] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[У мінулы] dddd [ў] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'праз %s',\n            past: '%s таму',\n            s: 'некалькі секунд',\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithPlural,\n            hh: relativeTimeWithPlural,\n            d: 'дзень',\n            dd: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночы|раніцы|дня|вечара/,\n        isPM: function (input) {\n            return /^(дня|вечара)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночы';\n            } else if (hour < 12) {\n                return 'раніцы';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечара';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return (number % 10 === 2 || number % 10 === 3) &&\n                        number % 100 !== 12 &&\n                        number % 100 !== 13\n                        ? number + '-і'\n                        : number + '-ы';\n                case 'D':\n                    return number + '-га';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('bg', {\n        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Днес в] LT',\n            nextDay: '[Утре в] LT',\n            nextWeek: 'dddd [в] LT',\n            lastDay: '[Вчера в] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Миналата] dddd [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Миналия] dddd [в] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'след %s',\n            past: 'преди %s',\n            s: 'няколко секунди',\n            ss: '%d секунди',\n            m: 'минута',\n            mm: '%d минути',\n            h: 'час',\n            hh: '%d часа',\n            d: 'ден',\n            dd: '%d дена',\n            w: 'седмица',\n            ww: '%d седмици',\n            M: 'месец',\n            MM: '%d месеца',\n            y: 'година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('bm', {\n        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n            '_'\n        ),\n        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'MMMM [tile] D [san] YYYY',\n            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bi lɛrɛ] LT',\n            nextDay: '[Sini lɛrɛ] LT',\n            nextWeek: 'dddd [don lɛrɛ] LT',\n            lastDay: '[Kunu lɛrɛ] LT',\n            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s kɔnɔ',\n            past: 'a bɛ %s bɔ',\n            s: 'sanga dama dama',\n            ss: 'sekondi %d',\n            m: 'miniti kelen',\n            mm: 'miniti %d',\n            h: 'lɛrɛ kelen',\n            hh: 'lɛrɛ %d',\n            d: 'tile kelen',\n            dd: 'tile %d',\n            M: 'kalo kelen',\n            MM: 'kalo %d',\n            y: 'san kelen',\n            yy: 'san %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$3 = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap$2 = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    moment.defineLocale('bn-bd', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap$2[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$3[match];\n            });\n        },\n\n        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'রাত') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ভোর') {\n                return hour;\n            } else if (meridiem === 'সকাল') {\n                return hour;\n            } else if (meridiem === 'দুপুর') {\n                return hour >= 3 ? hour : hour + 12;\n            } else if (meridiem === 'বিকাল') {\n                return hour + 12;\n            } else if (meridiem === 'সন্ধ্যা') {\n                return hour + 12;\n            }\n        },\n\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 6) {\n                return 'ভোর';\n            } else if (hour < 12) {\n                return 'সকাল';\n            } else if (hour < 15) {\n                return 'দুপুর';\n            } else if (hour < 18) {\n                return 'বিকাল';\n            } else if (hour < 20) {\n                return 'সন্ধ্যা';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$4 = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap$3 = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    moment.defineLocale('bn', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap$3[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$4[match];\n            });\n        },\n        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'রাত' && hour >= 4) ||\n                (meridiem === 'দুপুর' && hour < 5) ||\n                meridiem === 'বিকাল'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 10) {\n                return 'সকাল';\n            } else if (hour < 17) {\n                return 'দুপুর';\n            } else if (hour < 20) {\n                return 'বিকাল';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$5 = {\n            1: '༡',\n            2: '༢',\n            3: '༣',\n            4: '༤',\n            5: '༥',\n            6: '༦',\n            7: '༧',\n            8: '༨',\n            9: '༩',\n            0: '༠',\n        },\n        numberMap$4 = {\n            '༡': '1',\n            '༢': '2',\n            '༣': '3',\n            '༤': '4',\n            '༥': '5',\n            '༦': '6',\n            '༧': '7',\n            '༨': '8',\n            '༩': '9',\n            '༠': '0',\n        };\n\n    moment.defineLocale('bo', {\n        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n            '_'\n        ),\n        monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n            '_'\n        ),\n        monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n        monthsParseExact: true,\n        weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[དི་རིང] LT',\n            nextDay: '[སང་ཉིན] LT',\n            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n            lastDay: '[ཁ་སང] LT',\n            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ལ་',\n            past: '%s སྔན་ལ',\n            s: 'ལམ་སང',\n            ss: '%d སྐར་ཆ།',\n            m: 'སྐར་མ་གཅིག',\n            mm: '%d སྐར་མ',\n            h: 'ཆུ་ཚོད་གཅིག',\n            hh: '%d ཆུ་ཚོད',\n            d: 'ཉིན་གཅིག',\n            dd: '%d ཉིན་',\n            M: 'ཟླ་བ་གཅིག',\n            MM: '%d ཟླ་བ',\n            y: 'ལོ་གཅིག',\n            yy: '%d ལོ',\n        },\n        preparse: function (string) {\n            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n                return numberMap$4[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$5[match];\n            });\n        },\n        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'མཚན་མོ' && hour >= 4) ||\n                (meridiem === 'ཉིན་གུང' && hour < 5) ||\n                meridiem === 'དགོང་དག'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'མཚན་མོ';\n            } else if (hour < 10) {\n                return 'ཞོགས་ཀས';\n            } else if (hour < 17) {\n                return 'ཉིན་གུང';\n            } else if (hour < 20) {\n                return 'དགོང་དག';\n            } else {\n                return 'མཚན་མོ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithMutation(number, withoutSuffix, key) {\n        var format = {\n            mm: 'munutenn',\n            MM: 'miz',\n            dd: 'devezh',\n        };\n        return number + ' ' + mutation(format[key], number);\n    }\n    function specialMutationForYears(number) {\n        switch (lastNumber(number)) {\n            case 1:\n            case 3:\n            case 4:\n            case 5:\n            case 9:\n                return number + ' bloaz';\n            default:\n                return number + ' vloaz';\n        }\n    }\n    function lastNumber(number) {\n        if (number > 9) {\n            return lastNumber(number % 10);\n        }\n        return number;\n    }\n    function mutation(text, number) {\n        if (number === 2) {\n            return softMutation(text);\n        }\n        return text;\n    }\n    function softMutation(text) {\n        var mutationTable = {\n            m: 'v',\n            b: 'v',\n            d: 'z',\n        };\n        if (mutationTable[text.charAt(0)] === undefined) {\n            return text;\n        }\n        return mutationTable[text.charAt(0)] + text.substring(1);\n    }\n\n    var monthsParse = [\n            /^gen/i,\n            /^c[ʼ\\']hwe/i,\n            /^meu/i,\n            /^ebr/i,\n            /^mae/i,\n            /^(mez|eve)/i,\n            /^gou/i,\n            /^eos/i,\n            /^gwe/i,\n            /^her/i,\n            /^du/i,\n            /^ker/i,\n        ],\n        monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n        monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        fullWeekdaysParse = [\n            /^sul/i,\n            /^lun/i,\n            /^meurzh/i,\n            /^merc[ʼ\\']her/i,\n            /^yaou/i,\n            /^gwener/i,\n            /^sadorn/i,\n        ],\n        shortWeekdaysParse = [\n            /^Sul/i,\n            /^Lun/i,\n            /^Meu/i,\n            /^Mer/i,\n            /^Yao/i,\n            /^Gwe/i,\n            /^Sad/i,\n        ],\n        minWeekdaysParse = [\n            /^Su/i,\n            /^Lu/i,\n            /^Me([^r]|$)/i,\n            /^Mer/i,\n            /^Ya/i,\n            /^Gw/i,\n            /^Sa/i,\n        ];\n\n    moment.defineLocale('br', {\n        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n            '_'\n        ),\n        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n        weekdaysParse: minWeekdaysParse,\n        fullWeekdaysParse: fullWeekdaysParse,\n        shortWeekdaysParse: shortWeekdaysParse,\n        minWeekdaysParse: minWeekdaysParse,\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [a viz] MMMM YYYY',\n            LLL: 'D [a viz] MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hiziv da] LT',\n            nextDay: '[Warcʼhoazh da] LT',\n            nextWeek: 'dddd [da] LT',\n            lastDay: '[Decʼh da] LT',\n            lastWeek: 'dddd [paset da] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'a-benn %s',\n            past: '%s ʼzo',\n            s: 'un nebeud segondennoù',\n            ss: '%d eilenn',\n            m: 'ur vunutenn',\n            mm: relativeTimeWithMutation,\n            h: 'un eur',\n            hh: '%d eur',\n            d: 'un devezh',\n            dd: relativeTimeWithMutation,\n            M: 'ur miz',\n            MM: relativeTimeWithMutation,\n            y: 'ur bloaz',\n            yy: specialMutationForYears,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'añ' : 'vet';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n        isPM: function (token) {\n            return token === 'g.m.';\n        },\n        meridiem: function (hour, minute, isLower) {\n            return hour < 12 ? 'a.m.' : 'g.m.';\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    moment.defineLocale('bs', {\n        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                        return '[prošlu] dddd [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ca', {\n        months: {\n            standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n                '_'\n            ),\n            format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a les] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextDay: function () {\n                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastDay: function () {\n                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [passat a ' +\n                    (this.hours() !== 1 ? 'les' : 'la') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'uns segons',\n            ss: '%d segons',\n            m: 'un minut',\n            mm: '%d minuts',\n            h: 'una hora',\n            hh: '%d hores',\n            d: 'un dia',\n            dd: '%d dies',\n            M: 'un mes',\n            MM: '%d mesos',\n            y: 'un any',\n            yy: '%d anys',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n            '_'\n        ),\n        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n        monthsParse$1 = [\n            /^led/i,\n            /^úno/i,\n            /^bře/i,\n            /^dub/i,\n            /^kvě/i,\n            /^(čvn|červen$|června)/i,\n            /^(čvc|červenec|července)/i,\n            /^srp/i,\n            /^zář/i,\n            /^říj/i,\n            /^lis/i,\n            /^pro/i,\n        ],\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsRegex$1 = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n    function plural$1(n) {\n        return n > 1 && n < 5 && ~~(n / 10) !== 1;\n    }\n    function translate$1(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'sekundy' : 'sekund');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'minuty' : 'minut');\n                } else {\n                    return result + 'minutami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'hodiny' : 'hodin');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'den' : 'dnem';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'dny' : 'dní');\n                } else {\n                    return result + 'dny';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'měsíce' : 'měsíců');\n                } else {\n                    return result + 'měsíci';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokem';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'roky' : 'let');\n                } else {\n                    return result + 'lety';\n                }\n        }\n    }\n\n    moment.defineLocale('cs', {\n        months: months$3,\n        monthsShort: monthsShort,\n        monthsRegex: monthsRegex$1,\n        monthsShortRegex: monthsRegex$1,\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n        monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n        monthsParse: monthsParse$1,\n        longMonthsParse: monthsParse$1,\n        shortMonthsParse: monthsParse$1,\n        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n            l: 'D. M. YYYY',\n        },\n        calendar: {\n            sameDay: '[dnes v] LT',\n            nextDay: '[zítra v] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [v] LT';\n                    case 3:\n                        return '[ve středu v] LT';\n                    case 4:\n                        return '[ve čtvrtek v] LT';\n                    case 5:\n                        return '[v pátek v] LT';\n                    case 6:\n                        return '[v sobotu v] LT';\n                }\n            },\n            lastDay: '[včera v] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulou neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[minulé] dddd [v] LT';\n                    case 3:\n                        return '[minulou středu v] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [v] LT';\n                    case 6:\n                        return '[minulou sobotu v] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'před %s',\n            s: translate$1,\n            ss: translate$1,\n            m: translate$1,\n            mm: translate$1,\n            h: translate$1,\n            hh: translate$1,\n            d: translate$1,\n            dd: translate$1,\n            M: translate$1,\n            MM: translate$1,\n            y: translate$1,\n            yy: translate$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('cv', {\n        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n            '_'\n        ),\n        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n        weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n            '_'\n        ),\n        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n        },\n        calendar: {\n            sameDay: '[Паян] LT [сехетре]',\n            nextDay: '[Ыран] LT [сехетре]',\n            lastDay: '[Ӗнер] LT [сехетре]',\n            nextWeek: '[Ҫитес] dddd LT [сехетре]',\n            lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (output) {\n                var affix = /сехет$/i.exec(output)\n                    ? 'рен'\n                    : /ҫул$/i.exec(output)\n                    ? 'тан'\n                    : 'ран';\n                return output + affix;\n            },\n            past: '%s каялла',\n            s: 'пӗр-ик ҫеккунт',\n            ss: '%d ҫеккунт',\n            m: 'пӗр минут',\n            mm: '%d минут',\n            h: 'пӗр сехет',\n            hh: '%d сехет',\n            d: 'пӗр кун',\n            dd: '%d кун',\n            M: 'пӗр уйӑх',\n            MM: '%d уйӑх',\n            y: 'пӗр ҫул',\n            yy: '%d ҫул',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n        ordinal: '%d-мӗш',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('cy', {\n        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n            '_'\n        ),\n        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n            '_'\n        ),\n        weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n        weekdaysParseExact: true,\n        // time formats are the same as en-gb\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Heddiw am] LT',\n            nextDay: '[Yfory am] LT',\n            nextWeek: 'dddd [am] LT',\n            lastDay: '[Ddoe am] LT',\n            lastWeek: 'dddd [diwethaf am] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'mewn %s',\n            past: '%s yn ôl',\n            s: 'ychydig eiliadau',\n            ss: '%d eiliad',\n            m: 'munud',\n            mm: '%d munud',\n            h: 'awr',\n            hh: '%d awr',\n            d: 'diwrnod',\n            dd: '%d diwrnod',\n            M: 'mis',\n            MM: '%d mis',\n            y: 'blwyddyn',\n            yy: '%d flynedd',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n        ordinal: function (number) {\n            var b = number,\n                output = '',\n                lookup = [\n                    '',\n                    'af',\n                    'il',\n                    'ydd',\n                    'ydd',\n                    'ed',\n                    'ed',\n                    'ed',\n                    'fed',\n                    'fed',\n                    'fed', // 1af to 10fed\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'fed', // 11eg to 20fed\n                ];\n            if (b > 20) {\n                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n                    output = 'fed'; // not 30ain, 70ain or 90ain\n                } else {\n                    output = 'ain';\n                }\n            } else if (b > 0) {\n                output = lookup[b];\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('da', {\n        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'på dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[i] dddd[s kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'få sekunder',\n            ss: '%d sekunder',\n            m: 'et minut',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dage',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'et år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('de-at', {\n        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('de-ch', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime$1,\n            mm: '%d Minuten',\n            h: processRelativeTime$1,\n            hh: '%d Stunden',\n            d: processRelativeTime$1,\n            dd: processRelativeTime$1,\n            w: processRelativeTime$1,\n            ww: '%d Wochen',\n            M: processRelativeTime$1,\n            MM: processRelativeTime$1,\n            y: processRelativeTime$1,\n            yy: processRelativeTime$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('de', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime$2,\n            mm: '%d Minuten',\n            h: processRelativeTime$2,\n            hh: '%d Stunden',\n            d: processRelativeTime$2,\n            dd: processRelativeTime$2,\n            w: processRelativeTime$2,\n            ww: '%d Wochen',\n            M: processRelativeTime$2,\n            MM: processRelativeTime$2,\n            y: processRelativeTime$2,\n            yy: processRelativeTime$2,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$4 = [\n            'ޖެނުއަރީ',\n            'ފެބްރުއަރީ',\n            'މާރިޗު',\n            'އޭޕްރީލު',\n            'މޭ',\n            'ޖޫން',\n            'ޖުލައި',\n            'އޯގަސްޓު',\n            'ސެޕްޓެމްބަރު',\n            'އޮކްޓޯބަރު',\n            'ނޮވެމްބަރު',\n            'ޑިސެމްބަރު',\n        ],\n        weekdays = [\n            'އާދިއްތަ',\n            'ހޯމަ',\n            'އަންގާރަ',\n            'ބުދަ',\n            'ބުރާސްފަތި',\n            'ހުކުރު',\n            'ހޮނިހިރު',\n        ];\n\n    moment.defineLocale('dv', {\n        months: months$4,\n        monthsShort: months$4,\n        weekdays: weekdays,\n        weekdaysShort: weekdays,\n        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/M/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /މކ|މފ/,\n        isPM: function (input) {\n            return 'މފ' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'މކ';\n            } else {\n                return 'މފ';\n            }\n        },\n        calendar: {\n            sameDay: '[މިއަދު] LT',\n            nextDay: '[މާދަމާ] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[އިއްޔެ] LT',\n            lastWeek: '[ފާއިތުވި] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ތެރޭގައި %s',\n            past: 'ކުރިން %s',\n            s: 'ސިކުންތުކޮޅެއް',\n            ss: 'd% ސިކުންތު',\n            m: 'މިނިޓެއް',\n            mm: 'މިނިޓު %d',\n            h: 'ގަޑިއިރެއް',\n            hh: 'ގަޑިއިރު %d',\n            d: 'ދުވަހެއް',\n            dd: 'ދުވަސް %d',\n            M: 'މަހެއް',\n            MM: 'މަސް %d',\n            y: 'އަހަރެއް',\n            yy: 'އަހަރު %d',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 7, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    moment.defineLocale('el', {\n        monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n            '_'\n        ),\n        monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n            '_'\n        ),\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return this._monthsNominativeEl;\n            } else if (\n                typeof format === 'string' &&\n                /D/.test(format.substring(0, format.indexOf('MMMM')))\n            ) {\n                // if there is a day number before 'MMMM'\n                return this._monthsGenitiveEl[momentToFormat.month()];\n            } else {\n                return this._monthsNominativeEl[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n            '_'\n        ),\n        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'μμ' : 'ΜΜ';\n            } else {\n                return isLower ? 'πμ' : 'ΠΜ';\n            }\n        },\n        isPM: function (input) {\n            return (input + '').toLowerCase()[0] === 'μ';\n        },\n        meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendarEl: {\n            sameDay: '[Σήμερα {}] LT',\n            nextDay: '[Αύριο {}] LT',\n            nextWeek: 'dddd [{}] LT',\n            lastDay: '[Χθες {}] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 6:\n                        return '[το προηγούμενο] dddd [{}] LT';\n                    default:\n                        return '[την προηγούμενη] dddd [{}] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        calendar: function (key, mom) {\n            var output = this._calendarEl[key],\n                hours = mom && mom.hours();\n            if (isFunction(output)) {\n                output = output.apply(mom);\n            }\n            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n        },\n        relativeTime: {\n            future: 'σε %s',\n            past: '%s πριν',\n            s: 'λίγα δευτερόλεπτα',\n            ss: '%d δευτερόλεπτα',\n            m: 'ένα λεπτό',\n            mm: '%d λεπτά',\n            h: 'μία ώρα',\n            hh: '%d ώρες',\n            d: 'μία μέρα',\n            dd: '%d μέρες',\n            M: 'ένας μήνας',\n            MM: '%d μήνες',\n            y: 'ένας χρόνος',\n            yy: '%d χρόνια',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}η/,\n        ordinal: '%dη',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-au', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-ca', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'YYYY-MM-DD',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY h:mm A',\n            LLLL: 'dddd, MMMM D, YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-gb', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-ie', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-il', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-in', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-nz', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('en-sg', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('eo', {\n        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: '[la] D[-an de] MMMM, YYYY',\n            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n        },\n        meridiemParse: /[ap]\\.t\\.m/i,\n        isPM: function (input) {\n            return input.charAt(0).toLowerCase() === 'p';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'p.t.m.' : 'P.T.M.';\n            } else {\n                return isLower ? 'a.t.m.' : 'A.T.M.';\n            }\n        },\n        calendar: {\n            sameDay: '[Hodiaŭ je] LT',\n            nextDay: '[Morgaŭ je] LT',\n            nextWeek: 'dddd[n je] LT',\n            lastDay: '[Hieraŭ je] LT',\n            lastWeek: '[pasintan] dddd[n je] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'post %s',\n            past: 'antaŭ %s',\n            s: 'kelkaj sekundoj',\n            ss: '%d sekundoj',\n            m: 'unu minuto',\n            mm: '%d minutoj',\n            h: 'unu horo',\n            hh: '%d horoj',\n            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n            dd: '%d tagoj',\n            M: 'unu monato',\n            MM: '%d monatoj',\n            y: 'unu jaro',\n            yy: '%d jaroj',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}a/,\n        ordinal: '%da',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$2 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$2 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    moment.defineLocale('es-do', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$1[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$2,\n        monthsShortRegex: monthsRegex$2,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$2,\n        longMonthsParse: monthsParse$2,\n        shortMonthsParse: monthsParse$2,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$3 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    moment.defineLocale('es-mx', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$1;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$2[m.month()];\n            } else {\n                return monthsShortDot$1[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$3,\n        monthsShortRegex: monthsRegex$3,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$3,\n        longMonthsParse: monthsParse$3,\n        shortMonthsParse: monthsParse$3,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$4 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    moment.defineLocale('es-us', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$2;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$3[m.month()];\n            } else {\n                return monthsShortDot$2[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$4,\n        monthsShortRegex: monthsRegex$4,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$4,\n        longMonthsParse: monthsParse$4,\n        shortMonthsParse: monthsParse$4,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'MM/DD/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$5 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    moment.defineLocale('es', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$3;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$4[m.month()];\n            } else {\n                return monthsShortDot$3[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$5,\n        monthsShortRegex: monthsRegex$5,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$5,\n        longMonthsParse: monthsParse$5,\n        shortMonthsParse: monthsParse$5,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$3(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n            ss: [number + 'sekundi', number + 'sekundit'],\n            m: ['ühe minuti', 'üks minut'],\n            mm: [number + ' minuti', number + ' minutit'],\n            h: ['ühe tunni', 'tund aega', 'üks tund'],\n            hh: [number + ' tunni', number + ' tundi'],\n            d: ['ühe päeva', 'üks päev'],\n            M: ['kuu aja', 'kuu aega', 'üks kuu'],\n            MM: [number + ' kuu', number + ' kuud'],\n            y: ['ühe aasta', 'aasta', 'üks aasta'],\n            yy: [number + ' aasta', number + ' aastat'],\n        };\n        if (withoutSuffix) {\n            return format[key][2] ? format[key][2] : format[key][1];\n        }\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('et', {\n        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n            '_'\n        ),\n        monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n            '_'\n        ),\n        weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n            '_'\n        ),\n        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Täna,] LT',\n            nextDay: '[Homme,] LT',\n            nextWeek: '[Järgmine] dddd LT',\n            lastDay: '[Eile,] LT',\n            lastWeek: '[Eelmine] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s pärast',\n            past: '%s tagasi',\n            s: processRelativeTime$3,\n            ss: processRelativeTime$3,\n            m: processRelativeTime$3,\n            mm: processRelativeTime$3,\n            h: processRelativeTime$3,\n            hh: processRelativeTime$3,\n            d: processRelativeTime$3,\n            dd: '%d päeva',\n            M: processRelativeTime$3,\n            MM: processRelativeTime$3,\n            y: processRelativeTime$3,\n            yy: processRelativeTime$3,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('eu', {\n        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n            '_'\n        ),\n        monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n            '_'\n        ),\n        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY[ko] MMMM[ren] D[a]',\n            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n            l: 'YYYY-M-D',\n            ll: 'YYYY[ko] MMM D[a]',\n            lll: 'YYYY[ko] MMM D[a] HH:mm',\n            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n        },\n        calendar: {\n            sameDay: '[gaur] LT[etan]',\n            nextDay: '[bihar] LT[etan]',\n            nextWeek: 'dddd LT[etan]',\n            lastDay: '[atzo] LT[etan]',\n            lastWeek: '[aurreko] dddd LT[etan]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s barru',\n            past: 'duela %s',\n            s: 'segundo batzuk',\n            ss: '%d segundo',\n            m: 'minutu bat',\n            mm: '%d minutu',\n            h: 'ordu bat',\n            hh: '%d ordu',\n            d: 'egun bat',\n            dd: '%d egun',\n            M: 'hilabete bat',\n            MM: '%d hilabete',\n            y: 'urte bat',\n            yy: '%d urte',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$6 = {\n            1: '۱',\n            2: '۲',\n            3: '۳',\n            4: '۴',\n            5: '۵',\n            6: '۶',\n            7: '۷',\n            8: '۸',\n            9: '۹',\n            0: '۰',\n        },\n        numberMap$5 = {\n            '۱': '1',\n            '۲': '2',\n            '۳': '3',\n            '۴': '4',\n            '۵': '5',\n            '۶': '6',\n            '۷': '7',\n            '۸': '8',\n            '۹': '9',\n            '۰': '0',\n        };\n\n    moment.defineLocale('fa', {\n        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /قبل از ظهر|بعد از ظهر/,\n        isPM: function (input) {\n            return /بعد از ظهر/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'قبل از ظهر';\n            } else {\n                return 'بعد از ظهر';\n            }\n        },\n        calendar: {\n            sameDay: '[امروز ساعت] LT',\n            nextDay: '[فردا ساعت] LT',\n            nextWeek: 'dddd [ساعت] LT',\n            lastDay: '[دیروز ساعت] LT',\n            lastWeek: 'dddd [پیش] [ساعت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'در %s',\n            past: '%s پیش',\n            s: 'چند ثانیه',\n            ss: '%d ثانیه',\n            m: 'یک دقیقه',\n            mm: '%d دقیقه',\n            h: 'یک ساعت',\n            hh: '%d ساعت',\n            d: 'یک روز',\n            dd: '%d روز',\n            M: 'یک ماه',\n            MM: '%d ماه',\n            y: 'یک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[۰-۹]/g, function (match) {\n                    return numberMap$5[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$6[match];\n                })\n                .replace(/,/g, '،');\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}م/,\n        ordinal: '%dم',\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n            ' '\n        ),\n        numbersFuture = [\n            'nolla',\n            'yhden',\n            'kahden',\n            'kolmen',\n            'neljän',\n            'viiden',\n            'kuuden',\n            numbersPast[7],\n            numbersPast[8],\n            numbersPast[9],\n        ];\n    function translate$2(number, withoutSuffix, key, isFuture) {\n        var result = '';\n        switch (key) {\n            case 's':\n                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n            case 'ss':\n                result = isFuture ? 'sekunnin' : 'sekuntia';\n                break;\n            case 'm':\n                return isFuture ? 'minuutin' : 'minuutti';\n            case 'mm':\n                result = isFuture ? 'minuutin' : 'minuuttia';\n                break;\n            case 'h':\n                return isFuture ? 'tunnin' : 'tunti';\n            case 'hh':\n                result = isFuture ? 'tunnin' : 'tuntia';\n                break;\n            case 'd':\n                return isFuture ? 'päivän' : 'päivä';\n            case 'dd':\n                result = isFuture ? 'päivän' : 'päivää';\n                break;\n            case 'M':\n                return isFuture ? 'kuukauden' : 'kuukausi';\n            case 'MM':\n                result = isFuture ? 'kuukauden' : 'kuukautta';\n                break;\n            case 'y':\n                return isFuture ? 'vuoden' : 'vuosi';\n            case 'yy':\n                result = isFuture ? 'vuoden' : 'vuotta';\n                break;\n        }\n        result = verbalNumber(number, isFuture) + ' ' + result;\n        return result;\n    }\n    function verbalNumber(number, isFuture) {\n        return number < 10\n            ? isFuture\n                ? numbersFuture[number]\n                : numbersPast[number]\n            : number;\n    }\n\n    moment.defineLocale('fi', {\n        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n            '_'\n        ),\n        monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n            '_'\n        ),\n        weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n            '_'\n        ),\n        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM[ta] YYYY',\n            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n            l: 'D.M.YYYY',\n            ll: 'Do MMM YYYY',\n            lll: 'Do MMM YYYY, [klo] HH.mm',\n            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n        },\n        calendar: {\n            sameDay: '[tänään] [klo] LT',\n            nextDay: '[huomenna] [klo] LT',\n            nextWeek: 'dddd [klo] LT',\n            lastDay: '[eilen] [klo] LT',\n            lastWeek: '[viime] dddd[na] [klo] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s päästä',\n            past: '%s sitten',\n            s: translate$2,\n            ss: translate$2,\n            m: translate$2,\n            mm: translate$2,\n            h: translate$2,\n            hh: translate$2,\n            d: translate$2,\n            dd: translate$2,\n            M: translate$2,\n            MM: translate$2,\n            y: translate$2,\n            yy: translate$2,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('fil', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('fo', {\n        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n        weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D. MMMM, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Í dag kl.] LT',\n            nextDay: '[Í morgin kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[Í gjár kl.] LT',\n            lastWeek: '[síðstu] dddd [kl] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'um %s',\n            past: '%s síðani',\n            s: 'fá sekund',\n            ss: '%d sekundir',\n            m: 'ein minuttur',\n            mm: '%d minuttir',\n            h: 'ein tími',\n            hh: '%d tímar',\n            d: 'ein dagur',\n            dd: '%d dagar',\n            M: 'ein mánaður',\n            MM: '%d mánaðir',\n            y: 'eitt ár',\n            yy: '%d ár',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('fr-ca', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('fr-ch', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsStrictRegex$1 = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsShortStrictRegex$1 = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n        monthsRegex$6 = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsParse$6 = [\n            /^janv/i,\n            /^févr/i,\n            /^mars/i,\n            /^avr/i,\n            /^mai/i,\n            /^juin/i,\n            /^juil/i,\n            /^août/i,\n            /^sept/i,\n            /^oct/i,\n            /^nov/i,\n            /^déc/i,\n        ];\n\n    moment.defineLocale('fr', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsRegex: monthsRegex$6,\n        monthsShortRegex: monthsRegex$6,\n        monthsStrictRegex: monthsStrictRegex$1,\n        monthsShortStrictRegex: monthsShortStrictRegex$1,\n        monthsParse: monthsParse$6,\n        longMonthsParse: monthsParse$6,\n        shortMonthsParse: monthsParse$6,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            w: 'une semaine',\n            ww: '%d semaines',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // TODO: Return 'e' when day of month > 1. Move this case inside\n                // block for masculine words below.\n                // See https://github.com/moment/moment/issues/3375\n                case 'D':\n                    return number + (number === 1 ? 'er' : '');\n\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n            '_'\n        );\n\n    moment.defineLocale('fy', {\n        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n        monthsParseExact: true,\n        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n            '_'\n        ),\n        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[hjoed om] LT',\n            nextDay: '[moarn om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[juster om] LT',\n            lastWeek: '[ôfrûne] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oer %s',\n            past: '%s lyn',\n            s: 'in pear sekonden',\n            ss: '%d sekonden',\n            m: 'ien minút',\n            mm: '%d minuten',\n            h: 'ien oere',\n            hh: '%d oeren',\n            d: 'ien dei',\n            dd: '%d dagen',\n            M: 'ien moanne',\n            MM: '%d moannen',\n            y: 'ien jier',\n            yy: '%d jierren',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$5 = [\n            'Eanáir',\n            'Feabhra',\n            'Márta',\n            'Aibreán',\n            'Bealtaine',\n            'Meitheamh',\n            'Iúil',\n            'Lúnasa',\n            'Meán Fómhair',\n            'Deireadh Fómhair',\n            'Samhain',\n            'Nollaig',\n        ],\n        monthsShort$5 = [\n            'Ean',\n            'Feabh',\n            'Márt',\n            'Aib',\n            'Beal',\n            'Meith',\n            'Iúil',\n            'Lún',\n            'M.F.',\n            'D.F.',\n            'Samh',\n            'Noll',\n        ],\n        weekdays$1 = [\n            'Dé Domhnaigh',\n            'Dé Luain',\n            'Dé Máirt',\n            'Dé Céadaoin',\n            'Déardaoin',\n            'Dé hAoine',\n            'Dé Sathairn',\n        ],\n        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n    moment.defineLocale('ga', {\n        months: months$5,\n        monthsShort: monthsShort$5,\n        monthsParseExact: true,\n        weekdays: weekdays$1,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Inniu ag] LT',\n            nextDay: '[Amárach ag] LT',\n            nextWeek: 'dddd [ag] LT',\n            lastDay: '[Inné ag] LT',\n            lastWeek: 'dddd [seo caite] [ag] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i %s',\n            past: '%s ó shin',\n            s: 'cúpla soicind',\n            ss: '%d soicind',\n            m: 'nóiméad',\n            mm: '%d nóiméad',\n            h: 'uair an chloig',\n            hh: '%d uair an chloig',\n            d: 'lá',\n            dd: '%d lá',\n            M: 'mí',\n            MM: '%d míonna',\n            y: 'bliain',\n            yy: '%d bliain',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$6 = [\n            'Am Faoilleach',\n            'An Gearran',\n            'Am Màrt',\n            'An Giblean',\n            'An Cèitean',\n            'An t-Ògmhios',\n            'An t-Iuchar',\n            'An Lùnastal',\n            'An t-Sultain',\n            'An Dàmhair',\n            'An t-Samhain',\n            'An Dùbhlachd',\n        ],\n        monthsShort$6 = [\n            'Faoi',\n            'Gear',\n            'Màrt',\n            'Gibl',\n            'Cèit',\n            'Ògmh',\n            'Iuch',\n            'Lùn',\n            'Sult',\n            'Dàmh',\n            'Samh',\n            'Dùbh',\n        ],\n        weekdays$2 = [\n            'Didòmhnaich',\n            'Diluain',\n            'Dimàirt',\n            'Diciadain',\n            'Diardaoin',\n            'Dihaoine',\n            'Disathairne',\n        ],\n        weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n        weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n    moment.defineLocale('gd', {\n        months: months$6,\n        monthsShort: monthsShort$6,\n        monthsParseExact: true,\n        weekdays: weekdays$2,\n        weekdaysShort: weekdaysShort$1,\n        weekdaysMin: weekdaysMin$1,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[An-diugh aig] LT',\n            nextDay: '[A-màireach aig] LT',\n            nextWeek: 'dddd [aig] LT',\n            lastDay: '[An-dè aig] LT',\n            lastWeek: 'dddd [seo chaidh] [aig] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ann an %s',\n            past: 'bho chionn %s',\n            s: 'beagan diogan',\n            ss: '%d diogan',\n            m: 'mionaid',\n            mm: '%d mionaidean',\n            h: 'uair',\n            hh: '%d uairean',\n            d: 'latha',\n            dd: '%d latha',\n            M: 'mìos',\n            MM: '%d mìosan',\n            y: 'bliadhna',\n            yy: '%d bliadhna',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('gl', {\n        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n            },\n            lastDay: function () {\n                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (str) {\n                if (str.indexOf('un') === 0) {\n                    return 'n' + str;\n                }\n                return 'en ' + str;\n            },\n            past: 'hai %s',\n            s: 'uns segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'unha hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n            m: ['एका मिणटान', 'एक मिनूट'],\n            mm: [number + ' मिणटांनी', number + ' मिणटां'],\n            h: ['एका वरान', 'एक वर'],\n            hh: [number + ' वरांनी', number + ' वरां'],\n            d: ['एका दिसान', 'एक दीस'],\n            dd: [number + ' दिसांनी', number + ' दीस'],\n            M: ['एका म्हयन्यान', 'एक म्हयनो'],\n            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n            y: ['एका वर्सान', 'एक वर्स'],\n            yy: [number + ' वर्सांनी', number + ' वर्सां'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('gom-deva', {\n        months: {\n            standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n                '_'\n            ),\n            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [वाजतां]',\n            LTS: 'A h:mm:ss [वाजतां]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n        },\n        calendar: {\n            sameDay: '[आयज] LT',\n            nextDay: '[फाल्यां] LT',\n            nextWeek: '[फुडलो] dddd[,] LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[फाटलो] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s आदीं',\n            s: processRelativeTime$4,\n            ss: processRelativeTime$4,\n            m: processRelativeTime$4,\n            mm: processRelativeTime$4,\n            h: processRelativeTime$4,\n            hh: processRelativeTime$4,\n            d: processRelativeTime$4,\n            dd: processRelativeTime$4,\n            M: processRelativeTime$4,\n            MM: processRelativeTime$4,\n            y: processRelativeTime$4,\n            yy: processRelativeTime$4,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'वेर' only applies to day of the month\n                case 'D':\n                    return number + 'वेर';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राती') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सकाळीं') {\n                return hour;\n            } else if (meridiem === 'दनपारां') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'सांजे') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'राती';\n            } else if (hour < 12) {\n                return 'सकाळीं';\n            } else if (hour < 16) {\n                return 'दनपारां';\n            } else if (hour < 20) {\n                return 'सांजे';\n            } else {\n                return 'राती';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['thoddea sekondamni', 'thodde sekond'],\n            ss: [number + ' sekondamni', number + ' sekond'],\n            m: ['eka mintan', 'ek minut'],\n            mm: [number + ' mintamni', number + ' mintam'],\n            h: ['eka voran', 'ek vor'],\n            hh: [number + ' voramni', number + ' voram'],\n            d: ['eka disan', 'ek dis'],\n            dd: [number + ' disamni', number + ' dis'],\n            M: ['eka mhoinean', 'ek mhoino'],\n            MM: [number + ' mhoineamni', number + ' mhoine'],\n            y: ['eka vorsan', 'ek voros'],\n            yy: [number + ' vorsamni', number + ' vorsam'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    moment.defineLocale('gom-latn', {\n        months: {\n            standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n                '_'\n            ),\n            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [vazta]',\n            LTS: 'A h:mm:ss [vazta]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [vazta]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n        },\n        calendar: {\n            sameDay: '[Aiz] LT',\n            nextDay: '[Faleam] LT',\n            nextWeek: '[Fuddlo] dddd[,] LT',\n            lastDay: '[Kal] LT',\n            lastWeek: '[Fattlo] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s adim',\n            s: processRelativeTime$5,\n            ss: processRelativeTime$5,\n            m: processRelativeTime$5,\n            mm: processRelativeTime$5,\n            h: processRelativeTime$5,\n            hh: processRelativeTime$5,\n            d: processRelativeTime$5,\n            dd: processRelativeTime$5,\n            M: processRelativeTime$5,\n            MM: processRelativeTime$5,\n            y: processRelativeTime$5,\n            yy: processRelativeTime$5,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'er' only applies to day of the month\n                case 'D':\n                    return number + 'er';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /rati|sokallim|donparam|sanje/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'rati') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'sokallim') {\n                return hour;\n            } else if (meridiem === 'donparam') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'sanje') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'rati';\n            } else if (hour < 12) {\n                return 'sokallim';\n            } else if (hour < 16) {\n                return 'donparam';\n            } else if (hour < 20) {\n                return 'sanje';\n            } else {\n                return 'rati';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$7 = {\n            1: '૧',\n            2: '૨',\n            3: '૩',\n            4: '૪',\n            5: '૫',\n            6: '૬',\n            7: '૭',\n            8: '૮',\n            9: '૯',\n            0: '૦',\n        },\n        numberMap$6 = {\n            '૧': '1',\n            '૨': '2',\n            '૩': '3',\n            '૪': '4',\n            '૫': '5',\n            '૬': '6',\n            '૭': '7',\n            '૮': '8',\n            '૯': '9',\n            '૦': '0',\n        };\n\n    moment.defineLocale('gu', {\n        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n            '_'\n        ),\n        monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n            '_'\n        ),\n        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm વાગ્યે',\n            LTS: 'A h:mm:ss વાગ્યે',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n        },\n        calendar: {\n            sameDay: '[આજ] LT',\n            nextDay: '[કાલે] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ગઇકાલે] LT',\n            lastWeek: '[પાછલા] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s મા',\n            past: '%s પહેલા',\n            s: 'અમુક પળો',\n            ss: '%d સેકંડ',\n            m: 'એક મિનિટ',\n            mm: '%d મિનિટ',\n            h: 'એક કલાક',\n            hh: '%d કલાક',\n            d: 'એક દિવસ',\n            dd: '%d દિવસ',\n            M: 'એક મહિનો',\n            MM: '%d મહિનો',\n            y: 'એક વર્ષ',\n            yy: '%d વર્ષ',\n        },\n        preparse: function (string) {\n            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n                return numberMap$6[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$7[match];\n            });\n        },\n        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'રાત') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'સવાર') {\n                return hour;\n            } else if (meridiem === 'બપોર') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'સાંજ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'રાત';\n            } else if (hour < 10) {\n                return 'સવાર';\n            } else if (hour < 17) {\n                return 'બપોર';\n            } else if (hour < 20) {\n                return 'સાંજ';\n            } else {\n                return 'રાત';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('he', {\n        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n            '_'\n        ),\n        monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n            '_'\n        ),\n        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [ב]MMMM YYYY',\n            LLL: 'D [ב]MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[היום ב־]LT',\n            nextDay: '[מחר ב־]LT',\n            nextWeek: 'dddd [בשעה] LT',\n            lastDay: '[אתמול ב־]LT',\n            lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'בעוד %s',\n            past: 'לפני %s',\n            s: 'מספר שניות',\n            ss: '%d שניות',\n            m: 'דקה',\n            mm: '%d דקות',\n            h: 'שעה',\n            hh: function (number) {\n                if (number === 2) {\n                    return 'שעתיים';\n                }\n                return number + ' שעות';\n            },\n            d: 'יום',\n            dd: function (number) {\n                if (number === 2) {\n                    return 'יומיים';\n                }\n                return number + ' ימים';\n            },\n            M: 'חודש',\n            MM: function (number) {\n                if (number === 2) {\n                    return 'חודשיים';\n                }\n                return number + ' חודשים';\n            },\n            y: 'שנה',\n            yy: function (number) {\n                if (number === 2) {\n                    return 'שנתיים';\n                } else if (number % 10 === 0 && number !== 10) {\n                    return number + ' שנה';\n                }\n                return number + ' שנים';\n            },\n        },\n        meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n        isPM: function (input) {\n            return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 5) {\n                return 'לפנות בוקר';\n            } else if (hour < 10) {\n                return 'בבוקר';\n            } else if (hour < 12) {\n                return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n            } else if (hour < 18) {\n                return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n            } else {\n                return 'בערב';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$8 = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$7 = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        },\n        monthsParse$7 = [\n            /^जन/i,\n            /^फ़र|फर/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सितं|सित/i,\n            /^अक्टू/i,\n            /^नव|नवं/i,\n            /^दिसं|दिस/i,\n        ],\n        shortMonthsParse = [\n            /^जन/i,\n            /^फ़र/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सित/i,\n            /^अक्टू/i,\n            /^नव/i,\n            /^दिस/i,\n        ];\n\n    moment.defineLocale('hi', {\n        months: {\n            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n                '_'\n            ),\n            standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n            '_'\n        ),\n        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm बजे',\n            LTS: 'A h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n        },\n\n        monthsParse: monthsParse$7,\n        longMonthsParse: monthsParse$7,\n        shortMonthsParse: shortMonthsParse,\n\n        monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n        monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[कल] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[कल] LT',\n            lastWeek: '[पिछले] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s में',\n            past: '%s पहले',\n            s: 'कुछ ही क्षण',\n            ss: '%d सेकंड',\n            m: 'एक मिनट',\n            mm: '%d मिनट',\n            h: 'एक घंटा',\n            hh: '%d घंटे',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महीने',\n            MM: '%d महीने',\n            y: 'एक वर्ष',\n            yy: '%d वर्ष',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$7[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$8[match];\n            });\n        },\n        // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n        meridiemParse: /रात|सुबह|दोपहर|शाम/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'रात') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सुबह') {\n                return hour;\n            } else if (meridiem === 'दोपहर') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'शाम') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'रात';\n            } else if (hour < 10) {\n                return 'सुबह';\n            } else if (hour < 17) {\n                return 'दोपहर';\n            } else if (hour < 20) {\n                return 'शाम';\n            } else {\n                return 'रात';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate$3(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    moment.defineLocale('hr', {\n        months: {\n            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n                '_'\n            ),\n            standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM YYYY',\n            LLL: 'Do MMMM YYYY H:mm',\n            LLLL: 'dddd, Do MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prošlu] [nedjelju] [u] LT';\n                    case 3:\n                        return '[prošlu] [srijedu] [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate$3,\n            m: translate$3,\n            mm: translate$3,\n            h: translate$3,\n            hh: translate$3,\n            d: 'dan',\n            dd: translate$3,\n            M: 'mjesec',\n            MM: translate$3,\n            y: 'godinu',\n            yy: translate$3,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n        ' '\n    );\n    function translate$4(number, withoutSuffix, key, isFuture) {\n        var num = number;\n        switch (key) {\n            case 's':\n                return isFuture || withoutSuffix\n                    ? 'néhány másodperc'\n                    : 'néhány másodperce';\n            case 'ss':\n                return num + (isFuture || withoutSuffix)\n                    ? ' másodperc'\n                    : ' másodperce';\n            case 'm':\n                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'mm':\n                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'h':\n                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'hh':\n                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'd':\n                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'dd':\n                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'M':\n                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'MM':\n                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'y':\n                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n            case 'yy':\n                return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n        }\n        return '';\n    }\n    function week(isFuture) {\n        return (\n            (isFuture ? '' : '[múlt] ') +\n            '[' +\n            weekEndings[this.day()] +\n            '] LT[-kor]'\n        );\n    }\n\n    moment.defineLocale('hu', {\n        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY. MMMM D.',\n            LLL: 'YYYY. MMMM D. H:mm',\n            LLLL: 'YYYY. MMMM D., dddd H:mm',\n        },\n        meridiemParse: /de|du/i,\n        isPM: function (input) {\n            return input.charAt(1).toLowerCase() === 'u';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower === true ? 'de' : 'DE';\n            } else {\n                return isLower === true ? 'du' : 'DU';\n            }\n        },\n        calendar: {\n            sameDay: '[ma] LT[-kor]',\n            nextDay: '[holnap] LT[-kor]',\n            nextWeek: function () {\n                return week.call(this, true);\n            },\n            lastDay: '[tegnap] LT[-kor]',\n            lastWeek: function () {\n                return week.call(this, false);\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s múlva',\n            past: '%s',\n            s: translate$4,\n            ss: translate$4,\n            m: translate$4,\n            mm: translate$4,\n            h: translate$4,\n            hh: translate$4,\n            d: translate$4,\n            dd: translate$4,\n            M: translate$4,\n            MM: translate$4,\n            y: translate$4,\n            yy: translate$4,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('hy-am', {\n        months: {\n            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n                '_'\n            ),\n            standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n        weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n            '_'\n        ),\n        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY թ.',\n            LLL: 'D MMMM YYYY թ., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n        },\n        calendar: {\n            sameDay: '[այսօր] LT',\n            nextDay: '[վաղը] LT',\n            lastDay: '[երեկ] LT',\n            nextWeek: function () {\n                return 'dddd [օրը ժամը] LT';\n            },\n            lastWeek: function () {\n                return '[անցած] dddd [օրը ժամը] LT';\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s հետո',\n            past: '%s առաջ',\n            s: 'մի քանի վայրկյան',\n            ss: '%d վայրկյան',\n            m: 'րոպե',\n            mm: '%d րոպե',\n            h: 'ժամ',\n            hh: '%d ժամ',\n            d: 'օր',\n            dd: '%d օր',\n            M: 'ամիս',\n            MM: '%d ամիս',\n            y: 'տարի',\n            yy: '%d տարի',\n        },\n        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n        isPM: function (input) {\n            return /^(ցերեկվա|երեկոյան)$/.test(input);\n        },\n        meridiem: function (hour) {\n            if (hour < 4) {\n                return 'գիշերվա';\n            } else if (hour < 12) {\n                return 'առավոտվա';\n            } else if (hour < 17) {\n                return 'ցերեկվա';\n            } else {\n                return 'երեկոյան';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'DDD':\n                case 'w':\n                case 'W':\n                case 'DDDo':\n                    if (number === 1) {\n                        return number + '-ին';\n                    }\n                    return number + '-րդ';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('id', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|siang|sore|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'siang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sore' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'siang';\n            } else if (hours < 19) {\n                return 'sore';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Besok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kemarin pukul] LT',\n            lastWeek: 'dddd [lalu pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lalu',\n            s: 'beberapa detik',\n            ss: '%d detik',\n            m: 'semenit',\n            mm: '%d menit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$2(n) {\n        if (n % 100 === 11) {\n            return true;\n        } else if (n % 10 === 1) {\n            return false;\n        }\n        return true;\n    }\n    function translate$5(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nokkrar sekúndur'\n                    : 'nokkrum sekúndum';\n            case 'ss':\n                if (plural$2(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n                    );\n                }\n                return result + 'sekúnda';\n            case 'm':\n                return withoutSuffix ? 'mínúta' : 'mínútu';\n            case 'mm':\n                if (plural$2(number)) {\n                    return (\n                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n                    );\n                } else if (withoutSuffix) {\n                    return result + 'mínúta';\n                }\n                return result + 'mínútu';\n            case 'hh':\n                if (plural$2(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture\n                            ? 'klukkustundir'\n                            : 'klukkustundum')\n                    );\n                }\n                return result + 'klukkustund';\n            case 'd':\n                if (withoutSuffix) {\n                    return 'dagur';\n                }\n                return isFuture ? 'dag' : 'degi';\n            case 'dd':\n                if (plural$2(number)) {\n                    if (withoutSuffix) {\n                        return result + 'dagar';\n                    }\n                    return result + (isFuture ? 'daga' : 'dögum');\n                } else if (withoutSuffix) {\n                    return result + 'dagur';\n                }\n                return result + (isFuture ? 'dag' : 'degi');\n            case 'M':\n                if (withoutSuffix) {\n                    return 'mánuður';\n                }\n                return isFuture ? 'mánuð' : 'mánuði';\n            case 'MM':\n                if (plural$2(number)) {\n                    if (withoutSuffix) {\n                        return result + 'mánuðir';\n                    }\n                    return result + (isFuture ? 'mánuði' : 'mánuðum');\n                } else if (withoutSuffix) {\n                    return result + 'mánuður';\n                }\n                return result + (isFuture ? 'mánuð' : 'mánuði');\n            case 'y':\n                return withoutSuffix || isFuture ? 'ár' : 'ári';\n            case 'yy':\n                if (plural$2(number)) {\n                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n                }\n                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n        }\n    }\n\n    moment.defineLocale('is', {\n        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n        weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n        },\n        calendar: {\n            sameDay: '[í dag kl.] LT',\n            nextDay: '[á morgun kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[í gær kl.] LT',\n            lastWeek: '[síðasta] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'eftir %s',\n            past: 'fyrir %s síðan',\n            s: translate$5,\n            ss: translate$5,\n            m: translate$5,\n            mm: translate$5,\n            h: 'klukkustund',\n            hh: translate$5,\n            d: translate$5,\n            dd: translate$5,\n            M: translate$5,\n            MM: translate$5,\n            y: translate$5,\n            yy: translate$5,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('it-ch', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Oggi alle] LT',\n            nextDay: '[Domani alle] LT',\n            nextWeek: 'dddd [alle] LT',\n            lastDay: '[Ieri alle] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[la scorsa] dddd [alle] LT';\n                    default:\n                        return '[lo scorso] dddd [alle] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n            },\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('it', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return (\n                    '[Oggi a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextDay: function () {\n                return (\n                    '[Domani a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextWeek: function () {\n                return (\n                    'dddd [a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastDay: function () {\n                return (\n                    '[Ieri a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return (\n                            '[La scorsa] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                    default:\n                        return (\n                            '[Lo scorso] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'tra %s',\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            w: 'una settimana',\n            ww: '%d settimane',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ja', {\n        eras: [\n            {\n                since: '2019-05-01',\n                offset: 1,\n                name: '令和',\n                narrow: '㋿',\n                abbr: 'R',\n            },\n            {\n                since: '1989-01-08',\n                until: '2019-04-30',\n                offset: 1,\n                name: '平成',\n                narrow: '㍻',\n                abbr: 'H',\n            },\n            {\n                since: '1926-12-25',\n                until: '1989-01-07',\n                offset: 1,\n                name: '昭和',\n                narrow: '㍼',\n                abbr: 'S',\n            },\n            {\n                since: '1912-07-30',\n                until: '1926-12-24',\n                offset: 1,\n                name: '大正',\n                narrow: '㍽',\n                abbr: 'T',\n            },\n            {\n                since: '1873-01-01',\n                until: '1912-07-29',\n                offset: 6,\n                name: '明治',\n                narrow: '㍾',\n                abbr: 'M',\n            },\n            {\n                since: '0001-01-01',\n                until: '1873-12-31',\n                offset: 1,\n                name: '西暦',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: '紀元前',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        eraYearOrdinalRegex: /(元|\\d+)年/,\n        eraYearOrdinalParse: function (input, match) {\n            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n        },\n        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日 dddd HH:mm',\n            l: 'YYYY/MM/DD',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日(ddd) HH:mm',\n        },\n        meridiemParse: /午前|午後/i,\n        isPM: function (input) {\n            return input === '午後';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return '午前';\n            } else {\n                return '午後';\n            }\n        },\n        calendar: {\n            sameDay: '[今日] LT',\n            nextDay: '[明日] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[来週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            lastDay: '[昨日] LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[先週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}日/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'y':\n                    return number === 1 ? '元年' : number + '年';\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '数秒',\n            ss: '%d秒',\n            m: '1分',\n            mm: '%d分',\n            h: '1時間',\n            hh: '%d時間',\n            d: '1日',\n            dd: '%d日',\n            M: '1ヶ月',\n            MM: '%dヶ月',\n            y: '1年',\n            yy: '%d年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('jv', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /enjing|siyang|sonten|ndalu/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'enjing') {\n                return hour;\n            } else if (meridiem === 'siyang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'enjing';\n            } else if (hours < 15) {\n                return 'siyang';\n            } else if (hours < 19) {\n                return 'sonten';\n            } else {\n                return 'ndalu';\n            }\n        },\n        calendar: {\n            sameDay: '[Dinten puniko pukul] LT',\n            nextDay: '[Mbenjang pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kala wingi pukul] LT',\n            lastWeek: 'dddd [kepengker pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'wonten ing %s',\n            past: '%s ingkang kepengker',\n            s: 'sawetawis detik',\n            ss: '%d detik',\n            m: 'setunggal menit',\n            mm: '%d menit',\n            h: 'setunggal jam',\n            hh: '%d jam',\n            d: 'sedinten',\n            dd: '%d dinten',\n            M: 'sewulan',\n            MM: '%d wulan',\n            y: 'setaun',\n            yy: '%d taun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ka', {\n        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n            '_'\n        ),\n        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n        weekdays: {\n            standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n                '_'\n            ),\n            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n                '_'\n            ),\n            isFormat: /(წინა|შემდეგ)/,\n        },\n        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[დღეს] LT[-ზე]',\n            nextDay: '[ხვალ] LT[-ზე]',\n            lastDay: '[გუშინ] LT[-ზე]',\n            nextWeek: '[შემდეგ] dddd LT[-ზე]',\n            lastWeek: '[წინა] dddd LT-ზე',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n                    $0,\n                    $1,\n                    $2\n                ) {\n                    return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n                });\n            },\n            past: function (s) {\n                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n                    return s.replace(/(ი|ე)$/, 'ის წინ');\n                }\n                if (/წელი/.test(s)) {\n                    return s.replace(/წელი$/, 'წლის წინ');\n                }\n                return s;\n            },\n            s: 'რამდენიმე წამი',\n            ss: '%d წამი',\n            m: 'წუთი',\n            mm: '%d წუთი',\n            h: 'საათი',\n            hh: '%d საათი',\n            d: 'დღე',\n            dd: '%d დღე',\n            M: 'თვე',\n            MM: '%d თვე',\n            y: 'წელი',\n            yy: '%d წელი',\n        },\n        dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n        ordinal: function (number) {\n            if (number === 0) {\n                return number;\n            }\n            if (number === 1) {\n                return number + '-ლი';\n            }\n            if (\n                number < 20 ||\n                (number <= 100 && number % 20 === 0) ||\n                number % 100 === 0\n            ) {\n                return 'მე-' + number;\n            }\n            return number + '-ე';\n        },\n        week: {\n            dow: 1,\n            doy: 7,\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$1 = {\n        0: '-ші',\n        1: '-ші',\n        2: '-ші',\n        3: '-ші',\n        4: '-ші',\n        5: '-ші',\n        6: '-шы',\n        7: '-ші',\n        8: '-ші',\n        9: '-шы',\n        10: '-шы',\n        20: '-шы',\n        30: '-шы',\n        40: '-шы',\n        50: '-ші',\n        60: '-шы',\n        70: '-ші',\n        80: '-ші',\n        90: '-шы',\n        100: '-ші',\n    };\n\n    moment.defineLocale('kk', {\n        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n            '_'\n        ),\n        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n            '_'\n        ),\n        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгін сағат] LT',\n            nextDay: '[Ертең сағат] LT',\n            nextWeek: 'dddd [сағат] LT',\n            lastDay: '[Кеше сағат] LT',\n            lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ішінде',\n            past: '%s бұрын',\n            s: 'бірнеше секунд',\n            ss: '%d секунд',\n            m: 'бір минут',\n            mm: '%d минут',\n            h: 'бір сағат',\n            hh: '%d сағат',\n            d: 'бір күн',\n            dd: '%d күн',\n            M: 'бір ай',\n            MM: '%d ай',\n            y: 'бір жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$9 = {\n            1: '១',\n            2: '២',\n            3: '៣',\n            4: '៤',\n            5: '៥',\n            6: '៦',\n            7: '៧',\n            8: '៨',\n            9: '៩',\n            0: '០',\n        },\n        numberMap$8 = {\n            '១': '1',\n            '២': '2',\n            '៣': '3',\n            '៤': '4',\n            '៥': '5',\n            '៦': '6',\n            '៧': '7',\n            '៨': '8',\n            '៩': '9',\n            '០': '0',\n        };\n\n    moment.defineLocale('km', {\n        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ព្រឹក|ល្ងាច/,\n        isPM: function (input) {\n            return input === 'ល្ងាច';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ព្រឹក';\n            } else {\n                return 'ល្ងាច';\n            }\n        },\n        calendar: {\n            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n            nextDay: '[ស្អែក ម៉ោង] LT',\n            nextWeek: 'dddd [ម៉ោង] LT',\n            lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sទៀត',\n            past: '%sមុន',\n            s: 'ប៉ុន្មានវិនាទី',\n            ss: '%d វិនាទី',\n            m: 'មួយនាទី',\n            mm: '%d នាទី',\n            h: 'មួយម៉ោង',\n            hh: '%d ម៉ោង',\n            d: 'មួយថ្ងៃ',\n            dd: '%d ថ្ងៃ',\n            M: 'មួយខែ',\n            MM: '%d ខែ',\n            y: 'មួយឆ្នាំ',\n            yy: '%d ឆ្នាំ',\n        },\n        dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n        ordinal: 'ទី%d',\n        preparse: function (string) {\n            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n                return numberMap$8[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$9[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$a = {\n            1: '೧',\n            2: '೨',\n            3: '೩',\n            4: '೪',\n            5: '೫',\n            6: '೬',\n            7: '೭',\n            8: '೮',\n            9: '೯',\n            0: '೦',\n        },\n        numberMap$9 = {\n            '೧': '1',\n            '೨': '2',\n            '೩': '3',\n            '೪': '4',\n            '೫': '5',\n            '೬': '6',\n            '೭': '7',\n            '೮': '8',\n            '೯': '9',\n            '೦': '0',\n        };\n\n    moment.defineLocale('kn', {\n        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n            '_'\n        ),\n        monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[ಇಂದು] LT',\n            nextDay: '[ನಾಳೆ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ನಿನ್ನೆ] LT',\n            lastWeek: '[ಕೊನೆಯ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ನಂತರ',\n            past: '%s ಹಿಂದೆ',\n            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n            ss: '%d ಸೆಕೆಂಡುಗಳು',\n            m: 'ಒಂದು ನಿಮಿಷ',\n            mm: '%d ನಿಮಿಷ',\n            h: 'ಒಂದು ಗಂಟೆ',\n            hh: '%d ಗಂಟೆ',\n            d: 'ಒಂದು ದಿನ',\n            dd: '%d ದಿನ',\n            M: 'ಒಂದು ತಿಂಗಳು',\n            MM: '%d ತಿಂಗಳು',\n            y: 'ಒಂದು ವರ್ಷ',\n            yy: '%d ವರ್ಷ',\n        },\n        preparse: function (string) {\n            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n                return numberMap$9[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$a[match];\n            });\n        },\n        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ರಾತ್ರಿ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n                return hour;\n            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ಸಂಜೆ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ರಾತ್ರಿ';\n            } else if (hour < 10) {\n                return 'ಬೆಳಿಗ್ಗೆ';\n            } else if (hour < 17) {\n                return 'ಮಧ್ಯಾಹ್ನ';\n            } else if (hour < 20) {\n                return 'ಸಂಜೆ';\n            } else {\n                return 'ರಾತ್ರಿ';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n        ordinal: function (number) {\n            return number + 'ನೇ';\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ko', {\n        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n            '_'\n        ),\n        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY년 MMMM D일',\n            LLL: 'YYYY년 MMMM D일 A h:mm',\n            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n            l: 'YYYY.MM.DD.',\n            ll: 'YYYY년 MMMM D일',\n            lll: 'YYYY년 MMMM D일 A h:mm',\n            llll: 'YYYY년 MMMM D일 dddd A h:mm',\n        },\n        calendar: {\n            sameDay: '오늘 LT',\n            nextDay: '내일 LT',\n            nextWeek: 'dddd LT',\n            lastDay: '어제 LT',\n            lastWeek: '지난주 dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s 후',\n            past: '%s 전',\n            s: '몇 초',\n            ss: '%d초',\n            m: '1분',\n            mm: '%d분',\n            h: '한 시간',\n            hh: '%d시간',\n            d: '하루',\n            dd: '%d일',\n            M: '한 달',\n            MM: '%d달',\n            y: '일 년',\n            yy: '%d년',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '일';\n                case 'M':\n                    return number + '월';\n                case 'w':\n                case 'W':\n                    return number + '주';\n                default:\n                    return number;\n            }\n        },\n        meridiemParse: /오전|오후/,\n        isPM: function (token) {\n            return token === '오후';\n        },\n        meridiem: function (hour, minute, isUpper) {\n            return hour < 12 ? '오전' : '오후';\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$b = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap$a = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        months$7 = [\n            'کانونی دووەم',\n            'شوبات',\n            'ئازار',\n            'نیسان',\n            'ئایار',\n            'حوزەیران',\n            'تەمموز',\n            'ئاب',\n            'ئەیلوول',\n            'تشرینی یەكەم',\n            'تشرینی دووەم',\n            'كانونی یەکەم',\n        ];\n\n    moment.defineLocale('ku', {\n        months: months$7,\n        monthsShort: months$7,\n        weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ئێواره‌|به‌یانی/,\n        isPM: function (input) {\n            return /ئێواره‌/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'به‌یانی';\n            } else {\n                return 'ئێواره‌';\n            }\n        },\n        calendar: {\n            sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n            nextDay: '[به‌یانی كاتژمێر] LT',\n            nextWeek: 'dddd [كاتژمێر] LT',\n            lastDay: '[دوێنێ كاتژمێر] LT',\n            lastWeek: 'dddd [كاتژمێر] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'له‌ %s',\n            past: '%s',\n            s: 'چه‌ند چركه‌یه‌ك',\n            ss: 'چركه‌ %d',\n            m: 'یه‌ك خوله‌ك',\n            mm: '%d خوله‌ك',\n            h: 'یه‌ك كاتژمێر',\n            hh: '%d كاتژمێر',\n            d: 'یه‌ك ڕۆژ',\n            dd: '%d ڕۆژ',\n            M: 'یه‌ك مانگ',\n            MM: '%d مانگ',\n            y: 'یه‌ك ساڵ',\n            yy: '%d ساڵ',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap$a[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$b[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$2 = {\n        0: '-чү',\n        1: '-чи',\n        2: '-чи',\n        3: '-чү',\n        4: '-чү',\n        5: '-чи',\n        6: '-чы',\n        7: '-чи',\n        8: '-чи',\n        9: '-чу',\n        10: '-чу',\n        20: '-чы',\n        30: '-чу',\n        40: '-чы',\n        50: '-чү',\n        60: '-чы',\n        70: '-чи',\n        80: '-чи',\n        90: '-чу',\n        100: '-чү',\n    };\n\n    moment.defineLocale('ky', {\n        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n            '_'\n        ),\n        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n            '_'\n        ),\n        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгүн саат] LT',\n            nextDay: '[Эртең саат] LT',\n            nextWeek: 'dddd [саат] LT',\n            lastDay: '[Кечээ саат] LT',\n            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ичинде',\n            past: '%s мурун',\n            s: 'бирнече секунд',\n            ss: '%d секунд',\n            m: 'бир мүнөт',\n            mm: '%d мүнөт',\n            h: 'бир саат',\n            hh: '%d саат',\n            d: 'бир күн',\n            dd: '%d күн',\n            M: 'бир ай',\n            MM: '%d ай',\n            y: 'бир жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eng Minutt', 'enger Minutt'],\n            h: ['eng Stonn', 'enger Stonn'],\n            d: ['een Dag', 'engem Dag'],\n            M: ['ee Mount', 'engem Mount'],\n            y: ['ee Joer', 'engem Joer'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n    function processFutureTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'a ' + string;\n        }\n        return 'an ' + string;\n    }\n    function processPastTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'viru ' + string;\n        }\n        return 'virun ' + string;\n    }\n    /**\n     * Returns true if the word before the given number loses the '-n' ending.\n     * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n     *\n     * @param number {integer}\n     * @returns {boolean}\n     */\n    function eifelerRegelAppliesToNumber(number) {\n        number = parseInt(number, 10);\n        if (isNaN(number)) {\n            return false;\n        }\n        if (number < 0) {\n            // Negative Number --> always true\n            return true;\n        } else if (number < 10) {\n            // Only 1 digit\n            if (4 <= number && number <= 7) {\n                return true;\n            }\n            return false;\n        } else if (number < 100) {\n            // 2 digits\n            var lastDigit = number % 10,\n                firstDigit = number / 10;\n            if (lastDigit === 0) {\n                return eifelerRegelAppliesToNumber(firstDigit);\n            }\n            return eifelerRegelAppliesToNumber(lastDigit);\n        } else if (number < 10000) {\n            // 3 or 4 digits --> recursively check first digit\n            while (number >= 10) {\n                number = number / 10;\n            }\n            return eifelerRegelAppliesToNumber(number);\n        } else {\n            // Anything larger than 4 digits: recursively check first n-3 digits\n            number = number / 1000;\n            return eifelerRegelAppliesToNumber(number);\n        }\n    }\n\n    moment.defineLocale('lb', {\n        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm [Auer]',\n            LTS: 'H:mm:ss [Auer]',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm [Auer]',\n            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n        },\n        calendar: {\n            sameDay: '[Haut um] LT',\n            sameElse: 'L',\n            nextDay: '[Muer um] LT',\n            nextWeek: 'dddd [um] LT',\n            lastDay: '[Gëschter um] LT',\n            lastWeek: function () {\n                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n                switch (this.day()) {\n                    case 2:\n                    case 4:\n                        return '[Leschten] dddd [um] LT';\n                    default:\n                        return '[Leschte] dddd [um] LT';\n                }\n            },\n        },\n        relativeTime: {\n            future: processFutureTime,\n            past: processPastTime,\n            s: 'e puer Sekonnen',\n            ss: '%d Sekonnen',\n            m: processRelativeTime$6,\n            mm: '%d Minutten',\n            h: processRelativeTime$6,\n            hh: '%d Stonnen',\n            d: processRelativeTime$6,\n            dd: '%d Deeg',\n            M: processRelativeTime$6,\n            MM: '%d Méint',\n            y: processRelativeTime$6,\n            yy: '%d Joer',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('lo', {\n        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n        isPM: function (input) {\n            return input === 'ຕອນແລງ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ຕອນເຊົ້າ';\n            } else {\n                return 'ຕອນແລງ';\n            }\n        },\n        calendar: {\n            sameDay: '[ມື້ນີ້ເວລາ] LT',\n            nextDay: '[ມື້ອື່ນເວລາ] LT',\n            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n            lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ອີກ %s',\n            past: '%sຜ່ານມາ',\n            s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n            ss: '%d ວິນາທີ',\n            m: '1 ນາທີ',\n            mm: '%d ນາທີ',\n            h: '1 ຊົ່ວໂມງ',\n            hh: '%d ຊົ່ວໂມງ',\n            d: '1 ມື້',\n            dd: '%d ມື້',\n            M: '1 ເດືອນ',\n            MM: '%d ເດືອນ',\n            y: '1 ປີ',\n            yy: '%d ປີ',\n        },\n        dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n        ordinal: function (number) {\n            return 'ທີ່' + number;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundė_sekundžių_sekundes',\n        m: 'minutė_minutės_minutę',\n        mm: 'minutės_minučių_minutes',\n        h: 'valanda_valandos_valandą',\n        hh: 'valandos_valandų_valandas',\n        d: 'diena_dienos_dieną',\n        dd: 'dienos_dienų_dienas',\n        M: 'mėnuo_mėnesio_mėnesį',\n        MM: 'mėnesiai_mėnesių_mėnesius',\n        y: 'metai_metų_metus',\n        yy: 'metai_metų_metus',\n    };\n    function translateSeconds(number, withoutSuffix, key, isFuture) {\n        if (withoutSuffix) {\n            return 'kelios sekundės';\n        } else {\n            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n        }\n    }\n    function translateSingular(number, withoutSuffix, key, isFuture) {\n        return withoutSuffix\n            ? forms(key)[0]\n            : isFuture\n            ? forms(key)[1]\n            : forms(key)[2];\n    }\n    function special(number) {\n        return number % 10 === 0 || (number > 10 && number < 20);\n    }\n    function forms(key) {\n        return units[key].split('_');\n    }\n    function translate$6(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        if (number === 1) {\n            return (\n                result + translateSingular(number, withoutSuffix, key[0], isFuture)\n            );\n        } else if (withoutSuffix) {\n            return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n        } else {\n            if (isFuture) {\n                return result + forms(key)[1];\n            } else {\n                return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n            }\n        }\n    }\n    moment.defineLocale('lt', {\n        months: {\n            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n                '_'\n            ),\n            standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n        },\n        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n        weekdays: {\n            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n                '_'\n            ),\n            standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n                '_'\n            ),\n            isFormat: /dddd HH:mm/,\n        },\n        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n        weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY [m.] MMMM D [d.]',\n            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n            l: 'YYYY-MM-DD',\n            ll: 'YYYY [m.] MMMM D [d.]',\n            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n        },\n        calendar: {\n            sameDay: '[Šiandien] LT',\n            nextDay: '[Rytoj] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[Vakar] LT',\n            lastWeek: '[Praėjusį] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'po %s',\n            past: 'prieš %s',\n            s: translateSeconds,\n            ss: translate$6,\n            m: translateSingular,\n            mm: translate$6,\n            h: translateSingular,\n            hh: translate$6,\n            d: translateSingular,\n            dd: translate$6,\n            M: translateSingular,\n            MM: translate$6,\n            y: translateSingular,\n            yy: translate$6,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n        ordinal: function (number) {\n            return number + '-oji';\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var units$1 = {\n        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        h: 'stundas_stundām_stunda_stundas'.split('_'),\n        hh: 'stundas_stundām_stunda_stundas'.split('_'),\n        d: 'dienas_dienām_diena_dienas'.split('_'),\n        dd: 'dienas_dienām_diena_dienas'.split('_'),\n        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        y: 'gada_gadiem_gads_gadi'.split('_'),\n        yy: 'gada_gadiem_gads_gadi'.split('_'),\n    };\n    /**\n     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n     */\n    function format(forms, number, withoutSuffix) {\n        if (withoutSuffix) {\n            // E.g. \"21 minūte\", \"3 minūtes\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n        } else {\n            // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n            // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n        }\n    }\n    function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n        return number + ' ' + format(units$1[key], number, withoutSuffix);\n    }\n    function relativeTimeWithSingular(number, withoutSuffix, key) {\n        return format(units$1[key], number, withoutSuffix);\n    }\n    function relativeSeconds(number, withoutSuffix) {\n        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n    }\n\n    moment.defineLocale('lv', {\n        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY.',\n            LL: 'YYYY. [gada] D. MMMM',\n            LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n        },\n        calendar: {\n            sameDay: '[Šodien pulksten] LT',\n            nextDay: '[Rīt pulksten] LT',\n            nextWeek: 'dddd [pulksten] LT',\n            lastDay: '[Vakar pulksten] LT',\n            lastWeek: '[Pagājušā] dddd [pulksten] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'pēc %s',\n            past: 'pirms %s',\n            s: relativeSeconds,\n            ss: relativeTimeWithPlural$1,\n            m: relativeTimeWithSingular,\n            mm: relativeTimeWithPlural$1,\n            h: relativeTimeWithSingular,\n            hh: relativeTimeWithPlural$1,\n            d: relativeTimeWithSingular,\n            dd: relativeTimeWithPlural$1,\n            M: relativeTimeWithSingular,\n            MM: relativeTimeWithPlural$1,\n            y: relativeTimeWithSingular,\n            yy: relativeTimeWithPlural$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekund', 'sekunda', 'sekundi'],\n            m: ['jedan minut', 'jednog minuta'],\n            mm: ['minut', 'minuta', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mjesec', 'mjeseca', 'mjeseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    moment.defineLocale('me', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sjutra u] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedjelje] [u] LT',\n                    '[prošlog] [ponedjeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srijede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'dan',\n            dd: translator.translate,\n            M: 'mjesec',\n            MM: translator.translate,\n            y: 'godinu',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('mi', {\n        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n            '_'\n        ),\n        monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n            '_'\n        ),\n        monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [i] HH:mm',\n            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i teie mahana, i] LT',\n            nextDay: '[apopo i] LT',\n            nextWeek: 'dddd [i] LT',\n            lastDay: '[inanahi i] LT',\n            lastWeek: 'dddd [whakamutunga i] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i roto i %s',\n            past: '%s i mua',\n            s: 'te hēkona ruarua',\n            ss: '%d hēkona',\n            m: 'he meneti',\n            mm: '%d meneti',\n            h: 'te haora',\n            hh: '%d haora',\n            d: 'he ra',\n            dd: '%d ra',\n            M: 'he marama',\n            MM: '%d marama',\n            y: 'he tau',\n            yy: '%d tau',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('mk', {\n        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Денес во] LT',\n            nextDay: '[Утре во] LT',\n            nextWeek: '[Во] dddd [во] LT',\n            lastDay: '[Вчера во] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Изминатата] dddd [во] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Изминатиот] dddd [во] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пред %s',\n            s: 'неколку секунди',\n            ss: '%d секунди',\n            m: 'една минута',\n            mm: '%d минути',\n            h: 'еден час',\n            hh: '%d часа',\n            d: 'еден ден',\n            dd: '%d дена',\n            M: 'еден месец',\n            MM: '%d месеци',\n            y: 'една година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ml', {\n        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n            '_'\n        ),\n        monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n            '_'\n        ),\n        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm -നു',\n            LTS: 'A h:mm:ss -നു',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm -നു',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n        },\n        calendar: {\n            sameDay: '[ഇന്ന്] LT',\n            nextDay: '[നാളെ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ഇന്നലെ] LT',\n            lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s കഴിഞ്ഞ്',\n            past: '%s മുൻപ്',\n            s: 'അൽപ നിമിഷങ്ങൾ',\n            ss: '%d സെക്കൻഡ്',\n            m: 'ഒരു മിനിറ്റ്',\n            mm: '%d മിനിറ്റ്',\n            h: 'ഒരു മണിക്കൂർ',\n            hh: '%d മണിക്കൂർ',\n            d: 'ഒരു ദിവസം',\n            dd: '%d ദിവസം',\n            M: 'ഒരു മാസം',\n            MM: '%d മാസം',\n            y: 'ഒരു വർഷം',\n            yy: '%d വർഷം',\n        },\n        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'രാത്രി' && hour >= 4) ||\n                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n                meridiem === 'വൈകുന്നേരം'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'രാത്രി';\n            } else if (hour < 12) {\n                return 'രാവിലെ';\n            } else if (hour < 17) {\n                return 'ഉച്ച കഴിഞ്ഞ്';\n            } else if (hour < 20) {\n                return 'വൈകുന്നേരം';\n            } else {\n                return 'രാത്രി';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate$7(number, withoutSuffix, key, isFuture) {\n        switch (key) {\n            case 's':\n                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n            case 'ss':\n                return number + (withoutSuffix ? ' секунд' : ' секундын');\n            case 'm':\n            case 'mm':\n                return number + (withoutSuffix ? ' минут' : ' минутын');\n            case 'h':\n            case 'hh':\n                return number + (withoutSuffix ? ' цаг' : ' цагийн');\n            case 'd':\n            case 'dd':\n                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n            case 'M':\n            case 'MM':\n                return number + (withoutSuffix ? ' сар' : ' сарын');\n            case 'y':\n            case 'yy':\n                return number + (withoutSuffix ? ' жил' : ' жилийн');\n            default:\n                return number;\n        }\n    }\n\n    moment.defineLocale('mn', {\n        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n            '_'\n        ),\n        monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY оны MMMMын D',\n            LLL: 'YYYY оны MMMMын D HH:mm',\n            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n        },\n        meridiemParse: /ҮӨ|ҮХ/i,\n        isPM: function (input) {\n            return input === 'ҮХ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ҮӨ';\n            } else {\n                return 'ҮХ';\n            }\n        },\n        calendar: {\n            sameDay: '[Өнөөдөр] LT',\n            nextDay: '[Маргааш] LT',\n            nextWeek: '[Ирэх] dddd LT',\n            lastDay: '[Өчигдөр] LT',\n            lastWeek: '[Өнгөрсөн] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s дараа',\n            past: '%s өмнө',\n            s: translate$7,\n            ss: translate$7,\n            m: translate$7,\n            mm: translate$7,\n            h: translate$7,\n            hh: translate$7,\n            d: translate$7,\n            dd: translate$7,\n            M: translate$7,\n            MM: translate$7,\n            y: translate$7,\n            yy: translate$7,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + ' өдөр';\n                default:\n                    return number;\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$c = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$b = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n        var output = '';\n        if (withoutSuffix) {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंद';\n                    break;\n                case 'ss':\n                    output = '%d सेकंद';\n                    break;\n                case 'm':\n                    output = 'एक मिनिट';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटे';\n                    break;\n                case 'h':\n                    output = 'एक तास';\n                    break;\n                case 'hh':\n                    output = '%d तास';\n                    break;\n                case 'd':\n                    output = 'एक दिवस';\n                    break;\n                case 'dd':\n                    output = '%d दिवस';\n                    break;\n                case 'M':\n                    output = 'एक महिना';\n                    break;\n                case 'MM':\n                    output = '%d महिने';\n                    break;\n                case 'y':\n                    output = 'एक वर्ष';\n                    break;\n                case 'yy':\n                    output = '%d वर्षे';\n                    break;\n            }\n        } else {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंदां';\n                    break;\n                case 'ss':\n                    output = '%d सेकंदां';\n                    break;\n                case 'm':\n                    output = 'एका मिनिटा';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटां';\n                    break;\n                case 'h':\n                    output = 'एका तासा';\n                    break;\n                case 'hh':\n                    output = '%d तासां';\n                    break;\n                case 'd':\n                    output = 'एका दिवसा';\n                    break;\n                case 'dd':\n                    output = '%d दिवसां';\n                    break;\n                case 'M':\n                    output = 'एका महिन्या';\n                    break;\n                case 'MM':\n                    output = '%d महिन्यां';\n                    break;\n                case 'y':\n                    output = 'एका वर्षा';\n                    break;\n                case 'yy':\n                    output = '%d वर्षां';\n                    break;\n            }\n        }\n        return output.replace(/%d/i, number);\n    }\n\n    moment.defineLocale('mr', {\n        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n            '_'\n        ),\n        monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm वाजता',\n            LTS: 'A h:mm:ss वाजता',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm वाजता',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[उद्या] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[मागील] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमध्ये',\n            past: '%sपूर्वी',\n            s: relativeTimeMr,\n            ss: relativeTimeMr,\n            m: relativeTimeMr,\n            mm: relativeTimeMr,\n            h: relativeTimeMr,\n            hh: relativeTimeMr,\n            d: relativeTimeMr,\n            dd: relativeTimeMr,\n            M: relativeTimeMr,\n            MM: relativeTimeMr,\n            y: relativeTimeMr,\n            yy: relativeTimeMr,\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$b[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$c[match];\n            });\n        },\n        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n                return hour;\n            } else if (\n                meridiem === 'दुपारी' ||\n                meridiem === 'सायंकाळी' ||\n                meridiem === 'रात्री'\n            ) {\n                return hour >= 12 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour >= 0 && hour < 6) {\n                return 'पहाटे';\n            } else if (hour < 12) {\n                return 'सकाळी';\n            } else if (hour < 17) {\n                return 'दुपारी';\n            } else if (hour < 20) {\n                return 'सायंकाळी';\n            } else {\n                return 'रात्री';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ms-my', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ms', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('mt', {\n        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n        weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Illum fil-]LT',\n            nextDay: '[Għada fil-]LT',\n            nextWeek: 'dddd [fil-]LT',\n            lastDay: '[Il-bieraħ fil-]LT',\n            lastWeek: 'dddd [li għadda] [fil-]LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'f’ %s',\n            past: '%s ilu',\n            s: 'ftit sekondi',\n            ss: '%d sekondi',\n            m: 'minuta',\n            mm: '%d minuti',\n            h: 'siegħa',\n            hh: '%d siegħat',\n            d: 'ġurnata',\n            dd: '%d ġranet',\n            M: 'xahar',\n            MM: '%d xhur',\n            y: 'sena',\n            yy: '%d sni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$d = {\n            1: '၁',\n            2: '၂',\n            3: '၃',\n            4: '၄',\n            5: '၅',\n            6: '၆',\n            7: '၇',\n            8: '၈',\n            9: '၉',\n            0: '၀',\n        },\n        numberMap$c = {\n            '၁': '1',\n            '၂': '2',\n            '၃': '3',\n            '၄': '4',\n            '၅': '5',\n            '၆': '6',\n            '၇': '7',\n            '၈': '8',\n            '၉': '9',\n            '၀': '0',\n        };\n\n    moment.defineLocale('my', {\n        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n            '_'\n        ),\n        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n            '_'\n        ),\n        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ယနေ.] LT [မှာ]',\n            nextDay: '[မနက်ဖြန်] LT [မှာ]',\n            nextWeek: 'dddd LT [မှာ]',\n            lastDay: '[မနေ.က] LT [မှာ]',\n            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'လာမည့် %s မှာ',\n            past: 'လွန်ခဲ့သော %s က',\n            s: 'စက္ကန်.အနည်းငယ်',\n            ss: '%d စက္ကန့်',\n            m: 'တစ်မိနစ်',\n            mm: '%d မိနစ်',\n            h: 'တစ်နာရီ',\n            hh: '%d နာရီ',\n            d: 'တစ်ရက်',\n            dd: '%d ရက်',\n            M: 'တစ်လ',\n            MM: '%d လ',\n            y: 'တစ်နှစ်',\n            yy: '%d နှစ်',\n        },\n        preparse: function (string) {\n            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n                return numberMap$c[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$d[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('nb', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[forrige] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'noen sekunder',\n            ss: '%d sekunder',\n            m: 'ett minutt',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dager',\n            w: 'en uke',\n            ww: '%d uker',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$e = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$d = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    moment.defineLocale('ne', {\n        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n            '_'\n        ),\n        monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n            '_'\n        ),\n        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'Aको h:mm बजे',\n            LTS: 'Aको h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, Aको h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$d[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$e[match];\n            });\n        },\n        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राति') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'बिहान') {\n                return hour;\n            } else if (meridiem === 'दिउँसो') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'साँझ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 3) {\n                return 'राति';\n            } else if (hour < 12) {\n                return 'बिहान';\n            } else if (hour < 16) {\n                return 'दिउँसो';\n            } else if (hour < 20) {\n                return 'साँझ';\n            } else {\n                return 'राति';\n            }\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[भोलि] LT',\n            nextWeek: '[आउँदो] dddd[,] LT',\n            lastDay: '[हिजो] LT',\n            lastWeek: '[गएको] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमा',\n            past: '%s अगाडि',\n            s: 'केही क्षण',\n            ss: '%d सेकेण्ड',\n            m: 'एक मिनेट',\n            mm: '%d मिनेट',\n            h: 'एक घण्टा',\n            hh: '%d घण्टा',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महिना',\n            MM: '%d महिना',\n            y: 'एक बर्ष',\n            yy: '%d बर्ष',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse$8 = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex$7 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    moment.defineLocale('nl-be', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots$1;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots$1[m.month()];\n            } else {\n                return monthsShortWithDots$1[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex$7,\n        monthsShortRegex: monthsRegex$7,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse$8,\n        longMonthsParse: monthsParse$8,\n        shortMonthsParse: monthsParse$8,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse$9 = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    moment.defineLocale('nl', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots$2;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots$2[m.month()];\n            } else {\n                return monthsShortWithDots$2[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex$8,\n        monthsShortRegex: monthsRegex$8,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse$9,\n        longMonthsParse: monthsParse$9,\n        shortMonthsParse: monthsParse$9,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            w: 'één week',\n            ww: '%d weken',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('nn', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[I dag klokka] LT',\n            nextDay: '[I morgon klokka] LT',\n            nextWeek: 'dddd [klokka] LT',\n            lastDay: '[I går klokka] LT',\n            lastWeek: '[Føregåande] dddd [klokka] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s sidan',\n            s: 'nokre sekund',\n            ss: '%d sekund',\n            m: 'eit minutt',\n            mm: '%d minutt',\n            h: 'ein time',\n            hh: '%d timar',\n            d: 'ein dag',\n            dd: '%d dagar',\n            w: 'ei veke',\n            ww: '%d veker',\n            M: 'ein månad',\n            MM: '%d månader',\n            y: 'eit år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('oc-lnc', {\n        months: {\n            standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n                '_'\n            ),\n            format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: '[uèi a] LT',\n            nextDay: '[deman a] LT',\n            nextWeek: 'dddd [a] LT',\n            lastDay: '[ièr a] LT',\n            lastWeek: 'dddd [passat a] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'unas segondas',\n            ss: '%d segondas',\n            m: 'una minuta',\n            mm: '%d minutas',\n            h: 'una ora',\n            hh: '%d oras',\n            d: 'un jorn',\n            dd: '%d jorns',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4,\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$f = {\n            1: '੧',\n            2: '੨',\n            3: '੩',\n            4: '੪',\n            5: '੫',\n            6: '੬',\n            7: '੭',\n            8: '੮',\n            9: '੯',\n            0: '੦',\n        },\n        numberMap$e = {\n            '੧': '1',\n            '੨': '2',\n            '੩': '3',\n            '੪': '4',\n            '੫': '5',\n            '੬': '6',\n            '੭': '7',\n            '੮': '8',\n            '੯': '9',\n            '੦': '0',\n        };\n\n    moment.defineLocale('pa-in', {\n        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm ਵਜੇ',\n            LTS: 'A h:mm:ss ਵਜੇ',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n        },\n        calendar: {\n            sameDay: '[ਅਜ] LT',\n            nextDay: '[ਕਲ] LT',\n            nextWeek: '[ਅਗਲਾ] dddd, LT',\n            lastDay: '[ਕਲ] LT',\n            lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ਵਿੱਚ',\n            past: '%s ਪਿਛਲੇ',\n            s: 'ਕੁਝ ਸਕਿੰਟ',\n            ss: '%d ਸਕਿੰਟ',\n            m: 'ਇਕ ਮਿੰਟ',\n            mm: '%d ਮਿੰਟ',\n            h: 'ਇੱਕ ਘੰਟਾ',\n            hh: '%d ਘੰਟੇ',\n            d: 'ਇੱਕ ਦਿਨ',\n            dd: '%d ਦਿਨ',\n            M: 'ਇੱਕ ਮਹੀਨਾ',\n            MM: '%d ਮਹੀਨੇ',\n            y: 'ਇੱਕ ਸਾਲ',\n            yy: '%d ਸਾਲ',\n        },\n        preparse: function (string) {\n            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n                return numberMap$e[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$f[match];\n            });\n        },\n        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ਰਾਤ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ਸਵੇਰ') {\n                return hour;\n            } else if (meridiem === 'ਦੁਪਹਿਰ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ਸ਼ਾਮ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ਰਾਤ';\n            } else if (hour < 10) {\n                return 'ਸਵੇਰ';\n            } else if (hour < 17) {\n                return 'ਦੁਪਹਿਰ';\n            } else if (hour < 20) {\n                return 'ਸ਼ਾਮ';\n            } else {\n                return 'ਰਾਤ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n            '_'\n        ),\n        monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n            '_'\n        ),\n        monthsParse$a = [\n            /^sty/i,\n            /^lut/i,\n            /^mar/i,\n            /^kwi/i,\n            /^maj/i,\n            /^cze/i,\n            /^lip/i,\n            /^sie/i,\n            /^wrz/i,\n            /^paź/i,\n            /^lis/i,\n            /^gru/i,\n        ];\n    function plural$3(n) {\n        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n    }\n    function translate$8(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                return result + (plural$3(number) ? 'sekundy' : 'sekund');\n            case 'm':\n                return withoutSuffix ? 'minuta' : 'minutę';\n            case 'mm':\n                return result + (plural$3(number) ? 'minuty' : 'minut');\n            case 'h':\n                return withoutSuffix ? 'godzina' : 'godzinę';\n            case 'hh':\n                return result + (plural$3(number) ? 'godziny' : 'godzin');\n            case 'ww':\n                return result + (plural$3(number) ? 'tygodnie' : 'tygodni');\n            case 'MM':\n                return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n            case 'yy':\n                return result + (plural$3(number) ? 'lata' : 'lat');\n        }\n    }\n\n    moment.defineLocale('pl', {\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return monthsNominative;\n            } else if (/D MMMM/.test(format)) {\n                return monthsSubjective[momentToFormat.month()];\n            } else {\n                return monthsNominative[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n        monthsParse: monthsParse$a,\n        longMonthsParse: monthsParse$a,\n        shortMonthsParse: monthsParse$a,\n        weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Dziś o] LT',\n            nextDay: '[Jutro o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W niedzielę o] LT';\n\n                    case 2:\n                        return '[We wtorek o] LT';\n\n                    case 3:\n                        return '[W środę o] LT';\n\n                    case 6:\n                        return '[W sobotę o] LT';\n\n                    default:\n                        return '[W] dddd [o] LT';\n                }\n            },\n            lastDay: '[Wczoraj o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W zeszłą niedzielę o] LT';\n                    case 3:\n                        return '[W zeszłą środę o] LT';\n                    case 6:\n                        return '[W zeszłą sobotę o] LT';\n                    default:\n                        return '[W zeszły] dddd [o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: '%s temu',\n            s: 'kilka sekund',\n            ss: translate$8,\n            m: translate$8,\n            mm: translate$8,\n            h: translate$8,\n            hh: translate$8,\n            d: '1 dzień',\n            dd: '%d dni',\n            w: 'tydzień',\n            ww: translate$8,\n            M: 'miesiąc',\n            MM: translate$8,\n            y: 'rok',\n            yy: translate$8,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('pt-br', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'poucos segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        invalidDate: 'Data inválida',\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('pt', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            w: 'uma semana',\n            ww: '%d semanas',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n        var format = {\n                ss: 'secunde',\n                mm: 'minute',\n                hh: 'ore',\n                dd: 'zile',\n                ww: 'săptămâni',\n                MM: 'luni',\n                yy: 'ani',\n            },\n            separator = ' ';\n        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n            separator = ' de ';\n        }\n        return number + separator + format[key];\n    }\n\n    moment.defineLocale('ro', {\n        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n            '_'\n        ),\n        monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[azi la] LT',\n            nextDay: '[mâine la] LT',\n            nextWeek: 'dddd [la] LT',\n            lastDay: '[ieri la] LT',\n            lastWeek: '[fosta] dddd [la] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'peste %s',\n            past: '%s în urmă',\n            s: 'câteva secunde',\n            ss: relativeTimeWithPlural$2,\n            m: 'un minut',\n            mm: relativeTimeWithPlural$2,\n            h: 'o oră',\n            hh: relativeTimeWithPlural$2,\n            d: 'o zi',\n            dd: relativeTimeWithPlural$2,\n            w: 'o săptămână',\n            ww: relativeTimeWithPlural$2,\n            M: 'o lună',\n            MM: relativeTimeWithPlural$2,\n            y: 'un an',\n            yy: relativeTimeWithPlural$2,\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$4(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n            hh: 'час_часа_часов',\n            dd: 'день_дня_дней',\n            ww: 'неделя_недели_недель',\n            MM: 'месяц_месяца_месяцев',\n            yy: 'год_года_лет',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'минута' : 'минуту';\n        } else {\n            return number + ' ' + plural$4(format[key], +number);\n        }\n    }\n    var monthsParse$b = [\n        /^янв/i,\n        /^фев/i,\n        /^мар/i,\n        /^апр/i,\n        /^ма[йя]/i,\n        /^июн/i,\n        /^июл/i,\n        /^авг/i,\n        /^сен/i,\n        /^окт/i,\n        /^ноя/i,\n        /^дек/i,\n    ];\n\n    // http://new.gramota.ru/spravka/rules/139-prop : § 103\n    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n    moment.defineLocale('ru', {\n        months: {\n            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n                '_'\n            ),\n            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n                '_'\n            ),\n        },\n        monthsShort: {\n            // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n        },\n        weekdays: {\n            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n                '_'\n            ),\n            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n        },\n        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        monthsParse: monthsParse$b,\n        longMonthsParse: monthsParse$b,\n        shortMonthsParse: monthsParse$b,\n\n        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n        monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // копия предыдущего\n        monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // полные названия с падежами\n        monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n        // Выражение, которое соответствует только сокращённым формам\n        monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., H:mm',\n            LLLL: 'dddd, D MMMM YYYY г., H:mm',\n        },\n        calendar: {\n            sameDay: '[Сегодня, в] LT',\n            nextDay: '[Завтра, в] LT',\n            lastDay: '[Вчера, в] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В следующее] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В следующий] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В следующую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            lastWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В прошлое] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В прошлый] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В прошлую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'через %s',\n            past: '%s назад',\n            s: 'несколько секунд',\n            ss: relativeTimeWithPlural$3,\n            m: relativeTimeWithPlural$3,\n            mm: relativeTimeWithPlural$3,\n            h: 'час',\n            hh: relativeTimeWithPlural$3,\n            d: 'день',\n            dd: relativeTimeWithPlural$3,\n            w: 'неделя',\n            ww: relativeTimeWithPlural$3,\n            M: 'месяц',\n            MM: relativeTimeWithPlural$3,\n            y: 'год',\n            yy: relativeTimeWithPlural$3,\n        },\n        meridiemParse: /ночи|утра|дня|вечера/i,\n        isPM: function (input) {\n            return /^(дня|вечера)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночи';\n            } else if (hour < 12) {\n                return 'утра';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечера';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                case 'w':\n                case 'W':\n                    return number + '-я';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$8 = [\n            'جنوري',\n            'فيبروري',\n            'مارچ',\n            'اپريل',\n            'مئي',\n            'جون',\n            'جولاءِ',\n            'آگسٽ',\n            'سيپٽمبر',\n            'آڪٽوبر',\n            'نومبر',\n            'ڊسمبر',\n        ],\n        days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n    moment.defineLocale('sd', {\n        months: months$8,\n        monthsShort: months$8,\n        weekdays: days,\n        weekdaysShort: days,\n        weekdaysMin: days,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[اڄ] LT',\n            nextDay: '[سڀاڻي] LT',\n            nextWeek: 'dddd [اڳين هفتي تي] LT',\n            lastDay: '[ڪالهه] LT',\n            lastWeek: '[گزريل هفتي] dddd [تي] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s پوء',\n            past: '%s اڳ',\n            s: 'چند سيڪنڊ',\n            ss: '%d سيڪنڊ',\n            m: 'هڪ منٽ',\n            mm: '%d منٽ',\n            h: 'هڪ ڪلاڪ',\n            hh: '%d ڪلاڪ',\n            d: 'هڪ ڏينهن',\n            dd: '%d ڏينهن',\n            M: 'هڪ مهينو',\n            MM: '%d مهينا',\n            y: 'هڪ سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('se', {\n        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n            '_'\n        ),\n        monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n            '_'\n        ),\n        weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n            '_'\n        ),\n        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'MMMM D. [b.] YYYY',\n            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[otne ti] LT',\n            nextDay: '[ihttin ti] LT',\n            nextWeek: 'dddd [ti] LT',\n            lastDay: '[ikte ti] LT',\n            lastWeek: '[ovddit] dddd [ti] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s geažes',\n            past: 'maŋit %s',\n            s: 'moadde sekunddat',\n            ss: '%d sekunddat',\n            m: 'okta minuhta',\n            mm: '%d minuhtat',\n            h: 'okta diimmu',\n            hh: '%d diimmut',\n            d: 'okta beaivi',\n            dd: '%d beaivvit',\n            M: 'okta mánnu',\n            MM: '%d mánut',\n            y: 'okta jahki',\n            yy: '%d jagit',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    /*jshint -W100*/\n    moment.defineLocale('si', {\n        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n            '_'\n        ),\n        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n            '_'\n        ),\n        weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n            '_'\n        ),\n        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'a h:mm',\n            LTS: 'a h:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY MMMM D',\n            LLL: 'YYYY MMMM D, a h:mm',\n            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n        },\n        calendar: {\n            sameDay: '[අද] LT[ට]',\n            nextDay: '[හෙට] LT[ට]',\n            nextWeek: 'dddd LT[ට]',\n            lastDay: '[ඊයේ] LT[ට]',\n            lastWeek: '[පසුගිය] dddd LT[ට]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sකින්',\n            past: '%sකට පෙර',\n            s: 'තත්පර කිහිපය',\n            ss: 'තත්පර %d',\n            m: 'මිනිත්තුව',\n            mm: 'මිනිත්තු %d',\n            h: 'පැය',\n            hh: 'පැය %d',\n            d: 'දිනය',\n            dd: 'දින %d',\n            M: 'මාසය',\n            MM: 'මාස %d',\n            y: 'වසර',\n            yy: 'වසර %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n        ordinal: function (number) {\n            return number + ' වැනි';\n        },\n        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n        isPM: function (input) {\n            return input === 'ප.ව.' || input === 'පස් වරු';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'ප.ව.' : 'පස් වරු';\n            } else {\n                return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$9 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n            '_'\n        ),\n        monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n    function plural$5(n) {\n        return n > 1 && n < 5;\n    }\n    function translate$9(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'sekundy' : 'sekúnd');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'minúty' : 'minút');\n                } else {\n                    return result + 'minútami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'hodiny' : 'hodín');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'deň' : 'dňom';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'dni' : 'dní');\n                } else {\n                    return result + 'dňami';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'mesiace' : 'mesiacov');\n                } else {\n                    return result + 'mesiacmi';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokom';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'roky' : 'rokov');\n                } else {\n                    return result + 'rokmi';\n                }\n        }\n    }\n\n    moment.defineLocale('sk', {\n        months: months$9,\n        monthsShort: monthsShort$7,\n        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[dnes o] LT',\n            nextDay: '[zajtra o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [o] LT';\n                    case 3:\n                        return '[v stredu o] LT';\n                    case 4:\n                        return '[vo štvrtok o] LT';\n                    case 5:\n                        return '[v piatok o] LT';\n                    case 6:\n                        return '[v sobotu o] LT';\n                }\n            },\n            lastDay: '[včera o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulú nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[minulý] dddd [o] LT';\n                    case 3:\n                        return '[minulú stredu o] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [o] LT';\n                    case 6:\n                        return '[minulú sobotu o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pred %s',\n            s: translate$9,\n            ss: translate$9,\n            m: translate$9,\n            mm: translate$9,\n            h: translate$9,\n            hh: translate$9,\n            d: translate$9,\n            dd: translate$9,\n            M: translate$9,\n            MM: translate$9,\n            y: translate$9,\n            yy: translate$9,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nekaj sekund'\n                    : 'nekaj sekundami';\n            case 'ss':\n                if (number === 1) {\n                    result += withoutSuffix ? 'sekundo' : 'sekundi';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n                } else {\n                    result += 'sekund';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'ena minuta' : 'eno minuto';\n            case 'mm':\n                if (number === 1) {\n                    result += withoutSuffix ? 'minuta' : 'minuto';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'ena ura' : 'eno uro';\n            case 'hh':\n                if (number === 1) {\n                    result += withoutSuffix ? 'ura' : 'uro';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'uri' : 'urama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'ure' : 'urami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'ur' : 'urami';\n                }\n                return result;\n            case 'd':\n                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n            case 'dd':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n                } else {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n                }\n                return result;\n            case 'M':\n                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n            case 'MM':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n                } else {\n                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n                }\n                return result;\n            case 'y':\n                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n            case 'yy':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'leto' : 'letom';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'leta' : 'leti';\n                } else {\n                    result += withoutSuffix || isFuture ? 'let' : 'leti';\n                }\n                return result;\n        }\n    }\n\n    moment.defineLocale('sl', {\n        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD. MM. YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danes ob] LT',\n            nextDay: '[jutri ob] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[v] [sredo] [ob] LT';\n                    case 6:\n                        return '[v] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[v] dddd [ob] LT';\n                }\n            },\n            lastDay: '[včeraj ob] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prejšnjo] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[prejšnjo] [sredo] [ob] LT';\n                    case 6:\n                        return '[prejšnjo] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prejšnji] dddd [ob] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'čez %s',\n            past: 'pred %s',\n            s: processRelativeTime$7,\n            ss: processRelativeTime$7,\n            m: processRelativeTime$7,\n            mm: processRelativeTime$7,\n            h: processRelativeTime$7,\n            hh: processRelativeTime$7,\n            d: processRelativeTime$7,\n            dd: processRelativeTime$7,\n            M: processRelativeTime$7,\n            MM: processRelativeTime$7,\n            y: processRelativeTime$7,\n            yy: processRelativeTime$7,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('sq', {\n        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n            '_'\n        ),\n        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /PD|MD/,\n        isPM: function (input) {\n            return input.charAt(0) === 'M';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            return hours < 12 ? 'PD' : 'MD';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Sot në] LT',\n            nextDay: '[Nesër në] LT',\n            nextWeek: 'dddd [në] LT',\n            lastDay: '[Dje në] LT',\n            lastWeek: 'dddd [e kaluar në] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'në %s',\n            past: '%s më parë',\n            s: 'disa sekonda',\n            ss: '%d sekonda',\n            m: 'një minutë',\n            mm: '%d minuta',\n            h: 'një orë',\n            hh: '%d orë',\n            d: 'një ditë',\n            dd: '%d ditë',\n            M: 'një muaj',\n            MM: '%d muaj',\n            y: 'një vit',\n            yy: '%d vite',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator$1 = {\n        words: {\n            //Different grammatical cases\n            ss: ['секунда', 'секунде', 'секунди'],\n            m: ['један минут', 'једне минуте'],\n            mm: ['минут', 'минуте', 'минута'],\n            h: ['један сат', 'једног сата'],\n            hh: ['сат', 'сата', 'сати'],\n            dd: ['дан', 'дана', 'дана'],\n            MM: ['месец', 'месеца', 'месеци'],\n            yy: ['година', 'године', 'година'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator$1.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator$1.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    moment.defineLocale('sr-cyrl', {\n        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n            '_'\n        ),\n        monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[данас у] LT',\n            nextDay: '[сутра у] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[у] [недељу] [у] LT';\n                    case 3:\n                        return '[у] [среду] [у] LT';\n                    case 6:\n                        return '[у] [суботу] [у] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[у] dddd [у] LT';\n                }\n            },\n            lastDay: '[јуче у] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[прошле] [недеље] [у] LT',\n                    '[прошлог] [понедељка] [у] LT',\n                    '[прошлог] [уторка] [у] LT',\n                    '[прошле] [среде] [у] LT',\n                    '[прошлог] [четвртка] [у] LT',\n                    '[прошлог] [петка] [у] LT',\n                    '[прошле] [суботе] [у] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пре %s',\n            s: 'неколико секунди',\n            ss: translator$1.translate,\n            m: translator$1.translate,\n            mm: translator$1.translate,\n            h: translator$1.translate,\n            hh: translator$1.translate,\n            d: 'дан',\n            dd: translator$1.translate,\n            M: 'месец',\n            MM: translator$1.translate,\n            y: 'годину',\n            yy: translator$1.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator$2 = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekunda', 'sekunde', 'sekundi'],\n            m: ['jedan minut', 'jedne minute'],\n            mm: ['minut', 'minute', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mesec', 'meseca', 'meseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator$2.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator$2.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    moment.defineLocale('sr', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedelju] [u] LT';\n                    case 3:\n                        return '[u] [sredu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedelje] [u] LT',\n                    '[prošlog] [ponedeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pre %s',\n            s: 'nekoliko sekundi',\n            ss: translator$2.translate,\n            m: translator$2.translate,\n            mm: translator$2.translate,\n            h: translator$2.translate,\n            hh: translator$2.translate,\n            d: 'dan',\n            dd: translator$2.translate,\n            M: 'mesec',\n            MM: translator$2.translate,\n            y: 'godinu',\n            yy: translator$2.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ss', {\n        months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n            '_'\n        ),\n        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n        weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Namuhla nga] LT',\n            nextDay: '[Kusasa nga] LT',\n            nextWeek: 'dddd [nga] LT',\n            lastDay: '[Itolo nga] LT',\n            lastWeek: 'dddd [leliphelile] [nga] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'nga %s',\n            past: 'wenteka nga %s',\n            s: 'emizuzwana lomcane',\n            ss: '%d mzuzwana',\n            m: 'umzuzu',\n            mm: '%d emizuzu',\n            h: 'lihora',\n            hh: '%d emahora',\n            d: 'lilanga',\n            dd: '%d emalanga',\n            M: 'inyanga',\n            MM: '%d tinyanga',\n            y: 'umnyaka',\n            yy: '%d iminyaka',\n        },\n        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'ekuseni';\n            } else if (hours < 15) {\n                return 'emini';\n            } else if (hours < 19) {\n                return 'entsambama';\n            } else {\n                return 'ebusuku';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ekuseni') {\n                return hour;\n            } else if (meridiem === 'emini') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n                if (hour === 0) {\n                    return 0;\n                }\n                return hour + 12;\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: '%d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('sv', {\n        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Idag] LT',\n            nextDay: '[Imorgon] LT',\n            lastDay: '[Igår] LT',\n            nextWeek: '[På] dddd LT',\n            lastWeek: '[I] dddd[s] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: 'för %s sedan',\n            s: 'några sekunder',\n            ss: '%d sekunder',\n            m: 'en minut',\n            mm: '%d minuter',\n            h: 'en timme',\n            hh: '%d timmar',\n            d: 'en dag',\n            dd: '%d dagar',\n            M: 'en månad',\n            MM: '%d månader',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? ':e'\n                        : b === 1\n                        ? ':a'\n                        : b === 2\n                        ? ':a'\n                        : b === 3\n                        ? ':e'\n                        : ':e';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('sw', {\n        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'hh:mm A',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[leo saa] LT',\n            nextDay: '[kesho saa] LT',\n            nextWeek: '[wiki ijayo] dddd [saat] LT',\n            lastDay: '[jana] LT',\n            lastWeek: '[wiki iliyopita] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s baadaye',\n            past: 'tokea %s',\n            s: 'hivi punde',\n            ss: 'sekunde %d',\n            m: 'dakika moja',\n            mm: 'dakika %d',\n            h: 'saa limoja',\n            hh: 'masaa %d',\n            d: 'siku moja',\n            dd: 'siku %d',\n            M: 'mwezi mmoja',\n            MM: 'miezi %d',\n            y: 'mwaka mmoja',\n            yy: 'miaka %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$g = {\n            1: '௧',\n            2: '௨',\n            3: '௩',\n            4: '௪',\n            5: '௫',\n            6: '௬',\n            7: '௭',\n            8: '௮',\n            9: '௯',\n            0: '௦',\n        },\n        numberMap$f = {\n            '௧': '1',\n            '௨': '2',\n            '௩': '3',\n            '௪': '4',\n            '௫': '5',\n            '௬': '6',\n            '௭': '7',\n            '௮': '8',\n            '௯': '9',\n            '௦': '0',\n        };\n\n    moment.defineLocale('ta', {\n        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n            '_'\n        ),\n        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n            '_'\n        ),\n        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, HH:mm',\n            LLLL: 'dddd, D MMMM YYYY, HH:mm',\n        },\n        calendar: {\n            sameDay: '[இன்று] LT',\n            nextDay: '[நாளை] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[நேற்று] LT',\n            lastWeek: '[கடந்த வாரம்] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s இல்',\n            past: '%s முன்',\n            s: 'ஒரு சில விநாடிகள்',\n            ss: '%d விநாடிகள்',\n            m: 'ஒரு நிமிடம்',\n            mm: '%d நிமிடங்கள்',\n            h: 'ஒரு மணி நேரம்',\n            hh: '%d மணி நேரம்',\n            d: 'ஒரு நாள்',\n            dd: '%d நாட்கள்',\n            M: 'ஒரு மாதம்',\n            MM: '%d மாதங்கள்',\n            y: 'ஒரு வருடம்',\n            yy: '%d ஆண்டுகள்',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n        ordinal: function (number) {\n            return number + 'வது';\n        },\n        preparse: function (string) {\n            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n                return numberMap$f[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$g[match];\n            });\n        },\n        // refer http://ta.wikipedia.org/s/1er1\n        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 2) {\n                return ' யாமம்';\n            } else if (hour < 6) {\n                return ' வைகறை'; // வைகறை\n            } else if (hour < 10) {\n                return ' காலை'; // காலை\n            } else if (hour < 14) {\n                return ' நண்பகல்'; // நண்பகல்\n            } else if (hour < 18) {\n                return ' எற்பாடு'; // எற்பாடு\n            } else if (hour < 22) {\n                return ' மாலை'; // மாலை\n            } else {\n                return ' யாமம்';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'யாமம்') {\n                return hour < 2 ? hour : hour + 12;\n            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n                return hour;\n            } else if (meridiem === 'நண்பகல்') {\n                return hour >= 10 ? hour : hour + 12;\n            } else {\n                return hour + 12;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('te', {\n        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n            '_'\n        ),\n        monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n            '_'\n        ),\n        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[నేడు] LT',\n            nextDay: '[రేపు] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[నిన్న] LT',\n            lastWeek: '[గత] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s లో',\n            past: '%s క్రితం',\n            s: 'కొన్ని క్షణాలు',\n            ss: '%d సెకన్లు',\n            m: 'ఒక నిమిషం',\n            mm: '%d నిమిషాలు',\n            h: 'ఒక గంట',\n            hh: '%d గంటలు',\n            d: 'ఒక రోజు',\n            dd: '%d రోజులు',\n            M: 'ఒక నెల',\n            MM: '%d నెలలు',\n            y: 'ఒక సంవత్సరం',\n            yy: '%d సంవత్సరాలు',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n        ordinal: '%dవ',\n        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'రాత్రి') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ఉదయం') {\n                return hour;\n            } else if (meridiem === 'మధ్యాహ్నం') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'సాయంత్రం') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'రాత్రి';\n            } else if (hour < 10) {\n                return 'ఉదయం';\n            } else if (hour < 17) {\n                return 'మధ్యాహ్నం';\n            } else if (hour < 20) {\n                return 'సాయంత్రం';\n            } else {\n                return 'రాత్రి';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('tet', {\n        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Ohin iha] LT',\n            nextDay: '[Aban iha] LT',\n            nextWeek: 'dddd [iha] LT',\n            lastDay: '[Horiseik iha] LT',\n            lastWeek: 'dddd [semana kotuk] [iha] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'iha %s',\n            past: '%s liuba',\n            s: 'segundu balun',\n            ss: 'segundu %d',\n            m: 'minutu ida',\n            mm: 'minutu %d',\n            h: 'oras ida',\n            hh: 'oras %d',\n            d: 'loron ida',\n            dd: 'loron %d',\n            M: 'fulan ida',\n            MM: 'fulan %d',\n            y: 'tinan ida',\n            yy: 'tinan %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$3 = {\n        0: '-ум',\n        1: '-ум',\n        2: '-юм',\n        3: '-юм',\n        4: '-ум',\n        5: '-ум',\n        6: '-ум',\n        7: '-ум',\n        8: '-ум',\n        9: '-ум',\n        10: '-ум',\n        12: '-ум',\n        13: '-ум',\n        20: '-ум',\n        30: '-юм',\n        40: '-ум',\n        50: '-ум',\n        60: '-ум',\n        70: '-ум',\n        80: '-ум',\n        90: '-ум',\n        100: '-ум',\n    };\n\n    moment.defineLocale('tg', {\n        months: {\n            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n                '_'\n            ),\n            standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n            '_'\n        ),\n        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Имрӯз соати] LT',\n            nextDay: '[Фардо соати] LT',\n            lastDay: '[Дирӯз соати] LT',\n            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'баъди %s',\n            past: '%s пеш',\n            s: 'якчанд сония',\n            m: 'як дақиқа',\n            mm: '%d дақиқа',\n            h: 'як соат',\n            hh: '%d соат',\n            d: 'як рӯз',\n            dd: '%d рӯз',\n            M: 'як моҳ',\n            MM: '%d моҳ',\n            y: 'як сол',\n            yy: '%d сол',\n        },\n        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'шаб') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'субҳ') {\n                return hour;\n            } else if (meridiem === 'рӯз') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'бегоҳ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'шаб';\n            } else if (hour < 11) {\n                return 'субҳ';\n            } else if (hour < 16) {\n                return 'рӯз';\n            } else if (hour < 19) {\n                return 'бегоҳ';\n            } else {\n                return 'шаб';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('th', {\n        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n            '_'\n        ),\n        monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY เวลา H:mm',\n            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n        },\n        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n        isPM: function (input) {\n            return input === 'หลังเที่ยง';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ก่อนเที่ยง';\n            } else {\n                return 'หลังเที่ยง';\n            }\n        },\n        calendar: {\n            sameDay: '[วันนี้ เวลา] LT',\n            nextDay: '[พรุ่งนี้ เวลา] LT',\n            nextWeek: 'dddd[หน้า เวลา] LT',\n            lastDay: '[เมื่อวานนี้ เวลา] LT',\n            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'อีก %s',\n            past: '%sที่แล้ว',\n            s: 'ไม่กี่วินาที',\n            ss: '%d วินาที',\n            m: '1 นาที',\n            mm: '%d นาที',\n            h: '1 ชั่วโมง',\n            hh: '%d ชั่วโมง',\n            d: '1 วัน',\n            dd: '%d วัน',\n            w: '1 สัปดาห์',\n            ww: '%d สัปดาห์',\n            M: '1 เดือน',\n            MM: '%d เดือน',\n            y: '1 ปี',\n            yy: '%d ปี',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$4 = {\n        1: \"'inji\",\n        5: \"'inji\",\n        8: \"'inji\",\n        70: \"'inji\",\n        80: \"'inji\",\n        2: \"'nji\",\n        7: \"'nji\",\n        20: \"'nji\",\n        50: \"'nji\",\n        3: \"'ünji\",\n        4: \"'ünji\",\n        100: \"'ünji\",\n        6: \"'njy\",\n        9: \"'unjy\",\n        10: \"'unjy\",\n        30: \"'unjy\",\n        60: \"'ynjy\",\n        90: \"'ynjy\",\n    };\n\n    moment.defineLocale('tk', {\n        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün sagat] LT',\n            nextDay: '[ertir sagat] LT',\n            nextWeek: '[indiki] dddd [sagat] LT',\n            lastDay: '[düýn] LT',\n            lastWeek: '[geçen] dddd [sagat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s soň',\n            past: '%s öň',\n            s: 'birnäçe sekunt',\n            m: 'bir minut',\n            mm: '%d minut',\n            h: 'bir sagat',\n            hh: '%d sagat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir aý',\n            MM: '%d aý',\n            y: 'bir ýyl',\n            yy: '%d ýyl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'unjy\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('tl-ph', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n    function translateFuture(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'leS'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'waQ'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'nem'\n                : time + ' pIq';\n        return time;\n    }\n\n    function translatePast(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'Hu’'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'wen'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'ben'\n                : time + ' ret';\n        return time;\n    }\n\n    function translate$a(number, withoutSuffix, string, isFuture) {\n        var numberNoun = numberAsNoun(number);\n        switch (string) {\n            case 'ss':\n                return numberNoun + ' lup';\n            case 'mm':\n                return numberNoun + ' tup';\n            case 'hh':\n                return numberNoun + ' rep';\n            case 'dd':\n                return numberNoun + ' jaj';\n            case 'MM':\n                return numberNoun + ' jar';\n            case 'yy':\n                return numberNoun + ' DIS';\n        }\n    }\n\n    function numberAsNoun(number) {\n        var hundred = Math.floor((number % 1000) / 100),\n            ten = Math.floor((number % 100) / 10),\n            one = number % 10,\n            word = '';\n        if (hundred > 0) {\n            word += numbersNouns[hundred] + 'vatlh';\n        }\n        if (ten > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n        }\n        if (one > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[one];\n        }\n        return word === '' ? 'pagh' : word;\n    }\n\n    moment.defineLocale('tlh', {\n        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[DaHjaj] LT',\n            nextDay: '[wa’leS] LT',\n            nextWeek: 'LLL',\n            lastDay: '[wa’Hu’] LT',\n            lastWeek: 'LLL',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: translateFuture,\n            past: translatePast,\n            s: 'puS lup',\n            ss: translate$a,\n            m: 'wa’ tup',\n            mm: translate$a,\n            h: 'wa’ rep',\n            hh: translate$a,\n            d: 'wa’ jaj',\n            dd: translate$a,\n            M: 'wa’ jar',\n            MM: translate$a,\n            y: 'wa’ DIS',\n            yy: translate$a,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$5 = {\n        1: \"'inci\",\n        5: \"'inci\",\n        8: \"'inci\",\n        70: \"'inci\",\n        80: \"'inci\",\n        2: \"'nci\",\n        7: \"'nci\",\n        20: \"'nci\",\n        50: \"'nci\",\n        3: \"'üncü\",\n        4: \"'üncü\",\n        100: \"'üncü\",\n        6: \"'ncı\",\n        9: \"'uncu\",\n        10: \"'uncu\",\n        30: \"'uncu\",\n        60: \"'ıncı\",\n        90: \"'ıncı\",\n    };\n\n    moment.defineLocale('tr', {\n        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n            '_'\n        ),\n        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'öö' : 'ÖÖ';\n            } else {\n                return isLower ? 'ös' : 'ÖS';\n            }\n        },\n        meridiemParse: /öö|ÖÖ|ös|ÖS/,\n        isPM: function (input) {\n            return input === 'ös' || input === 'ÖS';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[yarın saat] LT',\n            nextWeek: '[gelecek] dddd [saat] LT',\n            lastDay: '[dün] LT',\n            lastWeek: '[geçen] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s önce',\n            s: 'birkaç saniye',\n            ss: '%d saniye',\n            m: 'bir dakika',\n            mm: '%d dakika',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            w: 'bir hafta',\n            ww: '%d hafta',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir yıl',\n            yy: '%d yıl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'ıncı\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n    // This is currently too difficult (maybe even impossible) to add.\n    moment.defineLocale('tzl', {\n        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM [dallas] YYYY',\n            LLL: 'D. MMMM [dallas] YYYY HH.mm',\n            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n        },\n        meridiemParse: /d\\'o|d\\'a/i,\n        isPM: function (input) {\n            return \"d'o\" === input.toLowerCase();\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? \"d'o\" : \"D'O\";\n            } else {\n                return isLower ? \"d'a\" : \"D'A\";\n            }\n        },\n        calendar: {\n            sameDay: '[oxhi à] LT',\n            nextDay: '[demà à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[ieiri à] LT',\n            lastWeek: '[sür el] dddd [lasteu à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'osprei %s',\n            past: 'ja%s',\n            s: processRelativeTime$8,\n            ss: processRelativeTime$8,\n            m: processRelativeTime$8,\n            mm: processRelativeTime$8,\n            h: processRelativeTime$8,\n            hh: processRelativeTime$8,\n            d: processRelativeTime$8,\n            dd: processRelativeTime$8,\n            M: processRelativeTime$8,\n            MM: processRelativeTime$8,\n            y: processRelativeTime$8,\n            yy: processRelativeTime$8,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    function processRelativeTime$8(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['viensas secunds', \"'iensas secunds\"],\n            ss: [number + ' secunds', '' + number + ' secunds'],\n            m: [\"'n míut\", \"'iens míut\"],\n            mm: [number + ' míuts', '' + number + ' míuts'],\n            h: [\"'n þora\", \"'iensa þora\"],\n            hh: [number + ' þoras', '' + number + ' þoras'],\n            d: [\"'n ziua\", \"'iensa ziua\"],\n            dd: [number + ' ziuas', '' + number + ' ziuas'],\n            M: [\"'n mes\", \"'iens mes\"],\n            MM: [number + ' mesen', '' + number + ' mesen'],\n            y: [\"'n ar\", \"'iens ar\"],\n            yy: [number + ' ars', '' + number + ' ars'],\n        };\n        return isFuture\n            ? format[key][0]\n            : withoutSuffix\n            ? format[key][0]\n            : format[key][1];\n    }\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('tzm-latn', {\n        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[asdkh g] LT',\n            nextDay: '[aska g] LT',\n            nextWeek: 'dddd [g] LT',\n            lastDay: '[assant g] LT',\n            lastWeek: 'dddd [g] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dadkh s yan %s',\n            past: 'yan %s',\n            s: 'imik',\n            ss: '%d imik',\n            m: 'minuḍ',\n            mm: '%d minuḍ',\n            h: 'saɛa',\n            hh: '%d tassaɛin',\n            d: 'ass',\n            dd: '%d ossan',\n            M: 'ayowr',\n            MM: '%d iyyirn',\n            y: 'asgas',\n            yy: '%d isgasn',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('tzm', {\n        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n            nextWeek: 'dddd [ⴴ] LT',\n            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n            lastWeek: 'dddd [ⴴ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n            past: 'ⵢⴰⵏ %s',\n            s: 'ⵉⵎⵉⴽ',\n            ss: '%d ⵉⵎⵉⴽ',\n            m: 'ⵎⵉⵏⵓⴺ',\n            mm: '%d ⵎⵉⵏⵓⴺ',\n            h: 'ⵙⴰⵄⴰ',\n            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n            d: 'ⴰⵙⵙ',\n            dd: '%d oⵙⵙⴰⵏ',\n            M: 'ⴰⵢoⵓⵔ',\n            MM: '%d ⵉⵢⵢⵉⵔⵏ',\n            y: 'ⴰⵙⴳⴰⵙ',\n            yy: '%d ⵉⵙⴳⴰⵙⵏ',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('ug-cn', {\n        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n            '_'\n        ),\n        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n        },\n        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                meridiem === 'يېرىم كېچە' ||\n                meridiem === 'سەھەر' ||\n                meridiem === 'چۈشتىن بۇرۇن'\n            ) {\n                return hour;\n            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n                return hour + 12;\n            } else {\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return 'يېرىم كېچە';\n            } else if (hm < 900) {\n                return 'سەھەر';\n            } else if (hm < 1130) {\n                return 'چۈشتىن بۇرۇن';\n            } else if (hm < 1230) {\n                return 'چۈش';\n            } else if (hm < 1800) {\n                return 'چۈشتىن كېيىن';\n            } else {\n                return 'كەچ';\n            }\n        },\n        calendar: {\n            sameDay: '[بۈگۈن سائەت] LT',\n            nextDay: '[ئەتە سائەت] LT',\n            nextWeek: '[كېلەركى] dddd [سائەت] LT',\n            lastDay: '[تۆنۈگۈن] LT',\n            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s كېيىن',\n            past: '%s بۇرۇن',\n            s: 'نەچچە سېكونت',\n            ss: '%d سېكونت',\n            m: 'بىر مىنۇت',\n            mm: '%d مىنۇت',\n            h: 'بىر سائەت',\n            hh: '%d سائەت',\n            d: 'بىر كۈن',\n            dd: '%d كۈن',\n            M: 'بىر ئاي',\n            MM: '%d ئاي',\n            y: 'بىر يىل',\n            yy: '%d يىل',\n        },\n\n        dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '-كۈنى';\n                case 'w':\n                case 'W':\n                    return number + '-ھەپتە';\n                default:\n                    return number;\n            }\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$6(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n            dd: 'день_дні_днів',\n            MM: 'місяць_місяці_місяців',\n            yy: 'рік_роки_років',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвилина' : 'хвилину';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'година' : 'годину';\n        } else {\n            return number + ' ' + plural$6(format[key], +number);\n        }\n    }\n    function weekdaysCaseReplace(m, format) {\n        var weekdays = {\n                nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n                    '_'\n                ),\n                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n                    '_'\n                ),\n                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n                    '_'\n                ),\n            },\n            nounCase;\n\n        if (m === true) {\n            return weekdays['nominative']\n                .slice(1, 7)\n                .concat(weekdays['nominative'].slice(0, 1));\n        }\n        if (!m) {\n            return weekdays['nominative'];\n        }\n\n        nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n            ? 'accusative'\n            : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n            ? 'genitive'\n            : 'nominative';\n        return weekdays[nounCase][m.day()];\n    }\n    function processHoursFunction(str) {\n        return function () {\n            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n        };\n    }\n\n    moment.defineLocale('uk', {\n        months: {\n            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n                '_'\n            ),\n            standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n            '_'\n        ),\n        weekdays: weekdaysCaseReplace,\n        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY р.',\n            LLL: 'D MMMM YYYY р., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n        },\n        calendar: {\n            sameDay: processHoursFunction('[Сьогодні '),\n            nextDay: processHoursFunction('[Завтра '),\n            lastDay: processHoursFunction('[Вчора '),\n            nextWeek: processHoursFunction('[У] dddd ['),\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return processHoursFunction('[Минулої] dddd [').call(this);\n                    case 1:\n                    case 2:\n                    case 4:\n                        return processHoursFunction('[Минулого] dddd [').call(this);\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: '%s тому',\n            s: 'декілька секунд',\n            ss: relativeTimeWithPlural$4,\n            m: relativeTimeWithPlural$4,\n            mm: relativeTimeWithPlural$4,\n            h: 'годину',\n            hh: relativeTimeWithPlural$4,\n            d: 'день',\n            dd: relativeTimeWithPlural$4,\n            M: 'місяць',\n            MM: relativeTimeWithPlural$4,\n            y: 'рік',\n            yy: relativeTimeWithPlural$4,\n        },\n        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n        meridiemParse: /ночі|ранку|дня|вечора/,\n        isPM: function (input) {\n            return /^(дня|вечора)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночі';\n            } else if (hour < 12) {\n                return 'ранку';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечора';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$a = [\n            'جنوری',\n            'فروری',\n            'مارچ',\n            'اپریل',\n            'مئی',\n            'جون',\n            'جولائی',\n            'اگست',\n            'ستمبر',\n            'اکتوبر',\n            'نومبر',\n            'دسمبر',\n        ],\n        days$1 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n    moment.defineLocale('ur', {\n        months: months$a,\n        monthsShort: months$a,\n        weekdays: days$1,\n        weekdaysShort: days$1,\n        weekdaysMin: days$1,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[آج بوقت] LT',\n            nextDay: '[کل بوقت] LT',\n            nextWeek: 'dddd [بوقت] LT',\n            lastDay: '[گذشتہ روز بوقت] LT',\n            lastWeek: '[گذشتہ] dddd [بوقت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s بعد',\n            past: '%s قبل',\n            s: 'چند سیکنڈ',\n            ss: '%d سیکنڈ',\n            m: 'ایک منٹ',\n            mm: '%d منٹ',\n            h: 'ایک گھنٹہ',\n            hh: '%d گھنٹے',\n            d: 'ایک دن',\n            dd: '%d دن',\n            M: 'ایک ماہ',\n            MM: '%d ماہ',\n            y: 'ایک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('uz-latn', {\n        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n        weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n            '_'\n        ),\n        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bugun soat] LT [da]',\n            nextDay: '[Ertaga] LT [da]',\n            nextWeek: 'dddd [kuni soat] LT [da]',\n            lastDay: '[Kecha soat] LT [da]',\n            lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Yaqin %s ichida',\n            past: 'Bir necha %s oldin',\n            s: 'soniya',\n            ss: '%d soniya',\n            m: 'bir daqiqa',\n            mm: '%d daqiqa',\n            h: 'bir soat',\n            hh: '%d soat',\n            d: 'bir kun',\n            dd: '%d kun',\n            M: 'bir oy',\n            MM: '%d oy',\n            y: 'bir yil',\n            yy: '%d yil',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('uz', {\n        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бугун соат] LT [да]',\n            nextDay: '[Эртага] LT [да]',\n            nextWeek: 'dddd [куни соат] LT [да]',\n            lastDay: '[Кеча соат] LT [да]',\n            lastWeek: '[Утган] dddd [куни соат] LT [да]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Якин %s ичида',\n            past: 'Бир неча %s олдин',\n            s: 'фурсат',\n            ss: '%d фурсат',\n            m: 'бир дакика',\n            mm: '%d дакика',\n            h: 'бир соат',\n            hh: '%d соат',\n            d: 'бир кун',\n            dd: '%d кун',\n            M: 'бир ой',\n            MM: '%d ой',\n            y: 'бир йил',\n            yy: '%d йил',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('vi', {\n        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n            '_'\n        ),\n        monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n            '_'\n        ),\n        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /sa|ch/i,\n        isPM: function (input) {\n            return /^ch$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'sa' : 'SA';\n            } else {\n                return isLower ? 'ch' : 'CH';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [năm] YYYY',\n            LLL: 'D MMMM [năm] YYYY HH:mm',\n            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n            l: 'DD/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hôm nay lúc] LT',\n            nextDay: '[Ngày mai lúc] LT',\n            nextWeek: 'dddd [tuần tới lúc] LT',\n            lastDay: '[Hôm qua lúc] LT',\n            lastWeek: 'dddd [tuần trước lúc] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s tới',\n            past: '%s trước',\n            s: 'vài giây',\n            ss: '%d giây',\n            m: 'một phút',\n            mm: '%d phút',\n            h: 'một giờ',\n            hh: '%d giờ',\n            d: 'một ngày',\n            dd: '%d ngày',\n            w: 'một tuần',\n            ww: '%d tuần',\n            M: 'một tháng',\n            MM: '%d tháng',\n            y: 'một năm',\n            yy: '%d năm',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('x-pseudo', {\n        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n            '_'\n        ),\n        monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n            '_'\n        ),\n        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[T~ódá~ý át] LT',\n            nextDay: '[T~ómó~rró~w át] LT',\n            nextWeek: 'dddd [át] LT',\n            lastDay: '[Ý~ést~érdá~ý át] LT',\n            lastWeek: '[L~ást] dddd [át] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'í~ñ %s',\n            past: '%s á~gó',\n            s: 'á ~féw ~sécó~ñds',\n            ss: '%d s~écóñ~ds',\n            m: 'á ~míñ~úté',\n            mm: '%d m~íñú~tés',\n            h: 'á~ñ hó~úr',\n            hh: '%d h~óúrs',\n            d: 'á ~dáý',\n            dd: '%d d~áýs',\n            M: 'á ~móñ~th',\n            MM: '%d m~óñt~hs',\n            y: 'á ~ýéár',\n            yy: '%d ý~éárs',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('yo', {\n        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n            '_'\n        ),\n        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Ònì ni] LT',\n            nextDay: '[Ọ̀la ni] LT',\n            nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n            lastDay: '[Àna ni] LT',\n            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ní %s',\n            past: '%s kọjá',\n            s: 'ìsẹjú aayá die',\n            ss: 'aayá %d',\n            m: 'ìsẹjú kan',\n            mm: 'ìsẹjú %d',\n            h: 'wákati kan',\n            hh: 'wákati %d',\n            d: 'ọjọ́ kan',\n            dd: 'ọjọ́ %d',\n            M: 'osù kan',\n            MM: 'osù %d',\n            y: 'ọdún kan',\n            yy: 'ọdún %d',\n        },\n        dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n        ordinal: 'ọjọ́ %d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('zh-cn', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日Ah点mm分',\n            LLLL: 'YYYY年M月D日ddddAh点mm分',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            } else {\n                // '中午'\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[下]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            lastDay: '[昨天]LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[上]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '周';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s后',\n            past: '%s前',\n            s: '几秒',\n            ss: '%d 秒',\n            m: '1 分钟',\n            mm: '%d 分钟',\n            h: '1 小时',\n            hh: '%d 小时',\n            d: '1 天',\n            dd: '%d 天',\n            w: '1 周',\n            ww: '%d 周',\n            M: '1 个月',\n            MM: '%d 个月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('zh-hk', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1200) {\n                return '上午';\n            } else if (hm === 1200) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: '[下]ddddLT',\n            lastDay: '[昨天]LT',\n            lastWeek: '[上]ddddLT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('zh-mo', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s內',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    moment.defineLocale('zh-tw', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    moment.locale('en');\n\n    return moment;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/moment/moment-with-locales.js",
    "content": ";(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    global.moment = factory()\n}(this, (function () { 'use strict';\n\n    var hookCallback;\n\n    function hooks() {\n        return hookCallback.apply(null, arguments);\n    }\n\n    // This is done to register the method called with moment()\n    // without creating circular dependencies.\n    function setHookCallback(callback) {\n        hookCallback = callback;\n    }\n\n    function isArray(input) {\n        return (\n            input instanceof Array ||\n            Object.prototype.toString.call(input) === '[object Array]'\n        );\n    }\n\n    function isObject(input) {\n        // IE8 will treat undefined and null as object if it wasn't for\n        // input != null\n        return (\n            input != null &&\n            Object.prototype.toString.call(input) === '[object Object]'\n        );\n    }\n\n    function hasOwnProp(a, b) {\n        return Object.prototype.hasOwnProperty.call(a, b);\n    }\n\n    function isObjectEmpty(obj) {\n        if (Object.getOwnPropertyNames) {\n            return Object.getOwnPropertyNames(obj).length === 0;\n        } else {\n            var k;\n            for (k in obj) {\n                if (hasOwnProp(obj, k)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    }\n\n    function isUndefined(input) {\n        return input === void 0;\n    }\n\n    function isNumber(input) {\n        return (\n            typeof input === 'number' ||\n            Object.prototype.toString.call(input) === '[object Number]'\n        );\n    }\n\n    function isDate(input) {\n        return (\n            input instanceof Date ||\n            Object.prototype.toString.call(input) === '[object Date]'\n        );\n    }\n\n    function map(arr, fn) {\n        var res = [],\n            i;\n        for (i = 0; i < arr.length; ++i) {\n            res.push(fn(arr[i], i));\n        }\n        return res;\n    }\n\n    function extend(a, b) {\n        for (var i in b) {\n            if (hasOwnProp(b, i)) {\n                a[i] = b[i];\n            }\n        }\n\n        if (hasOwnProp(b, 'toString')) {\n            a.toString = b.toString;\n        }\n\n        if (hasOwnProp(b, 'valueOf')) {\n            a.valueOf = b.valueOf;\n        }\n\n        return a;\n    }\n\n    function createUTC(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, true).utc();\n    }\n\n    function defaultParsingFlags() {\n        // We need to deep clone this object.\n        return {\n            empty: false,\n            unusedTokens: [],\n            unusedInput: [],\n            overflow: -2,\n            charsLeftOver: 0,\n            nullInput: false,\n            invalidEra: null,\n            invalidMonth: null,\n            invalidFormat: false,\n            userInvalidated: false,\n            iso: false,\n            parsedDateParts: [],\n            era: null,\n            meridiem: null,\n            rfc2822: false,\n            weekdayMismatch: false,\n        };\n    }\n\n    function getParsingFlags(m) {\n        if (m._pf == null) {\n            m._pf = defaultParsingFlags();\n        }\n        return m._pf;\n    }\n\n    var some;\n    if (Array.prototype.some) {\n        some = Array.prototype.some;\n    } else {\n        some = function (fun) {\n            var t = Object(this),\n                len = t.length >>> 0,\n                i;\n\n            for (i = 0; i < len; i++) {\n                if (i in t && fun.call(this, t[i], i, t)) {\n                    return true;\n                }\n            }\n\n            return false;\n        };\n    }\n\n    function isValid(m) {\n        if (m._isValid == null) {\n            var flags = getParsingFlags(m),\n                parsedParts = some.call(flags.parsedDateParts, function (i) {\n                    return i != null;\n                }),\n                isNowValid =\n                    !isNaN(m._d.getTime()) &&\n                    flags.overflow < 0 &&\n                    !flags.empty &&\n                    !flags.invalidEra &&\n                    !flags.invalidMonth &&\n                    !flags.invalidWeekday &&\n                    !flags.weekdayMismatch &&\n                    !flags.nullInput &&\n                    !flags.invalidFormat &&\n                    !flags.userInvalidated &&\n                    (!flags.meridiem || (flags.meridiem && parsedParts));\n\n            if (m._strict) {\n                isNowValid =\n                    isNowValid &&\n                    flags.charsLeftOver === 0 &&\n                    flags.unusedTokens.length === 0 &&\n                    flags.bigHour === undefined;\n            }\n\n            if (Object.isFrozen == null || !Object.isFrozen(m)) {\n                m._isValid = isNowValid;\n            } else {\n                return isNowValid;\n            }\n        }\n        return m._isValid;\n    }\n\n    function createInvalid(flags) {\n        var m = createUTC(NaN);\n        if (flags != null) {\n            extend(getParsingFlags(m), flags);\n        } else {\n            getParsingFlags(m).userInvalidated = true;\n        }\n\n        return m;\n    }\n\n    // Plugins that add properties should also add the key here (null value),\n    // so we can properly clone ourselves.\n    var momentProperties = (hooks.momentProperties = []),\n        updateInProgress = false;\n\n    function copyConfig(to, from) {\n        var i, prop, val;\n\n        if (!isUndefined(from._isAMomentObject)) {\n            to._isAMomentObject = from._isAMomentObject;\n        }\n        if (!isUndefined(from._i)) {\n            to._i = from._i;\n        }\n        if (!isUndefined(from._f)) {\n            to._f = from._f;\n        }\n        if (!isUndefined(from._l)) {\n            to._l = from._l;\n        }\n        if (!isUndefined(from._strict)) {\n            to._strict = from._strict;\n        }\n        if (!isUndefined(from._tzm)) {\n            to._tzm = from._tzm;\n        }\n        if (!isUndefined(from._isUTC)) {\n            to._isUTC = from._isUTC;\n        }\n        if (!isUndefined(from._offset)) {\n            to._offset = from._offset;\n        }\n        if (!isUndefined(from._pf)) {\n            to._pf = getParsingFlags(from);\n        }\n        if (!isUndefined(from._locale)) {\n            to._locale = from._locale;\n        }\n\n        if (momentProperties.length > 0) {\n            for (i = 0; i < momentProperties.length; i++) {\n                prop = momentProperties[i];\n                val = from[prop];\n                if (!isUndefined(val)) {\n                    to[prop] = val;\n                }\n            }\n        }\n\n        return to;\n    }\n\n    // Moment prototype object\n    function Moment(config) {\n        copyConfig(this, config);\n        this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n        if (!this.isValid()) {\n            this._d = new Date(NaN);\n        }\n        // Prevent infinite loop in case updateOffset creates new moment\n        // objects.\n        if (updateInProgress === false) {\n            updateInProgress = true;\n            hooks.updateOffset(this);\n            updateInProgress = false;\n        }\n    }\n\n    function isMoment(obj) {\n        return (\n            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n        );\n    }\n\n    function warn(msg) {\n        if (\n            hooks.suppressDeprecationWarnings === false &&\n            typeof console !== 'undefined' &&\n            console.warn\n        ) {\n            console.warn('Deprecation warning: ' + msg);\n        }\n    }\n\n    function deprecate(msg, fn) {\n        var firstTime = true;\n\n        return extend(function () {\n            if (hooks.deprecationHandler != null) {\n                hooks.deprecationHandler(null, msg);\n            }\n            if (firstTime) {\n                var args = [],\n                    arg,\n                    i,\n                    key;\n                for (i = 0; i < arguments.length; i++) {\n                    arg = '';\n                    if (typeof arguments[i] === 'object') {\n                        arg += '\\n[' + i + '] ';\n                        for (key in arguments[0]) {\n                            if (hasOwnProp(arguments[0], key)) {\n                                arg += key + ': ' + arguments[0][key] + ', ';\n                            }\n                        }\n                        arg = arg.slice(0, -2); // Remove trailing comma and space\n                    } else {\n                        arg = arguments[i];\n                    }\n                    args.push(arg);\n                }\n                warn(\n                    msg +\n                        '\\nArguments: ' +\n                        Array.prototype.slice.call(args).join('') +\n                        '\\n' +\n                        new Error().stack\n                );\n                firstTime = false;\n            }\n            return fn.apply(this, arguments);\n        }, fn);\n    }\n\n    var deprecations = {};\n\n    function deprecateSimple(name, msg) {\n        if (hooks.deprecationHandler != null) {\n            hooks.deprecationHandler(name, msg);\n        }\n        if (!deprecations[name]) {\n            warn(msg);\n            deprecations[name] = true;\n        }\n    }\n\n    hooks.suppressDeprecationWarnings = false;\n    hooks.deprecationHandler = null;\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    function set(config) {\n        var prop, i;\n        for (i in config) {\n            if (hasOwnProp(config, i)) {\n                prop = config[i];\n                if (isFunction(prop)) {\n                    this[i] = prop;\n                } else {\n                    this['_' + i] = prop;\n                }\n            }\n        }\n        this._config = config;\n        // Lenient ordinal parsing accepts just a number in addition to\n        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        this._dayOfMonthOrdinalParseLenient = new RegExp(\n            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n                '|' +\n                /\\d{1,2}/.source\n        );\n    }\n\n    function mergeConfigs(parentConfig, childConfig) {\n        var res = extend({}, parentConfig),\n            prop;\n        for (prop in childConfig) {\n            if (hasOwnProp(childConfig, prop)) {\n                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n                    res[prop] = {};\n                    extend(res[prop], parentConfig[prop]);\n                    extend(res[prop], childConfig[prop]);\n                } else if (childConfig[prop] != null) {\n                    res[prop] = childConfig[prop];\n                } else {\n                    delete res[prop];\n                }\n            }\n        }\n        for (prop in parentConfig) {\n            if (\n                hasOwnProp(parentConfig, prop) &&\n                !hasOwnProp(childConfig, prop) &&\n                isObject(parentConfig[prop])\n            ) {\n                // make sure changes to properties don't modify parent config\n                res[prop] = extend({}, res[prop]);\n            }\n        }\n        return res;\n    }\n\n    function Locale(config) {\n        if (config != null) {\n            this.set(config);\n        }\n    }\n\n    var keys;\n\n    if (Object.keys) {\n        keys = Object.keys;\n    } else {\n        keys = function (obj) {\n            var i,\n                res = [];\n            for (i in obj) {\n                if (hasOwnProp(obj, i)) {\n                    res.push(i);\n                }\n            }\n            return res;\n        };\n    }\n\n    var defaultCalendar = {\n        sameDay: '[Today at] LT',\n        nextDay: '[Tomorrow at] LT',\n        nextWeek: 'dddd [at] LT',\n        lastDay: '[Yesterday at] LT',\n        lastWeek: '[Last] dddd [at] LT',\n        sameElse: 'L',\n    };\n\n    function calendar(key, mom, now) {\n        var output = this._calendar[key] || this._calendar['sameElse'];\n        return isFunction(output) ? output.call(mom, now) : output;\n    }\n\n    function zeroFill(number, targetLength, forceSign) {\n        var absNumber = '' + Math.abs(number),\n            zerosToFill = targetLength - absNumber.length,\n            sign = number >= 0;\n        return (\n            (sign ? (forceSign ? '+' : '') : '-') +\n            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n            absNumber\n        );\n    }\n\n    var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n        localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n        formatFunctions = {},\n        formatTokenFunctions = {};\n\n    // token:    'M'\n    // padded:   ['MM', 2]\n    // ordinal:  'Mo'\n    // callback: function () { this.month() + 1 }\n    function addFormatToken(token, padded, ordinal, callback) {\n        var func = callback;\n        if (typeof callback === 'string') {\n            func = function () {\n                return this[callback]();\n            };\n        }\n        if (token) {\n            formatTokenFunctions[token] = func;\n        }\n        if (padded) {\n            formatTokenFunctions[padded[0]] = function () {\n                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n            };\n        }\n        if (ordinal) {\n            formatTokenFunctions[ordinal] = function () {\n                return this.localeData().ordinal(\n                    func.apply(this, arguments),\n                    token\n                );\n            };\n        }\n    }\n\n    function removeFormattingTokens(input) {\n        if (input.match(/\\[[\\s\\S]/)) {\n            return input.replace(/^\\[|\\]$/g, '');\n        }\n        return input.replace(/\\\\/g, '');\n    }\n\n    function makeFormatFunction(format) {\n        var array = format.match(formattingTokens),\n            i,\n            length;\n\n        for (i = 0, length = array.length; i < length; i++) {\n            if (formatTokenFunctions[array[i]]) {\n                array[i] = formatTokenFunctions[array[i]];\n            } else {\n                array[i] = removeFormattingTokens(array[i]);\n            }\n        }\n\n        return function (mom) {\n            var output = '',\n                i;\n            for (i = 0; i < length; i++) {\n                output += isFunction(array[i])\n                    ? array[i].call(mom, format)\n                    : array[i];\n            }\n            return output;\n        };\n    }\n\n    // format date using native date object\n    function formatMoment(m, format) {\n        if (!m.isValid()) {\n            return m.localeData().invalidDate();\n        }\n\n        format = expandFormat(format, m.localeData());\n        formatFunctions[format] =\n            formatFunctions[format] || makeFormatFunction(format);\n\n        return formatFunctions[format](m);\n    }\n\n    function expandFormat(format, locale) {\n        var i = 5;\n\n        function replaceLongDateFormatTokens(input) {\n            return locale.longDateFormat(input) || input;\n        }\n\n        localFormattingTokens.lastIndex = 0;\n        while (i >= 0 && localFormattingTokens.test(format)) {\n            format = format.replace(\n                localFormattingTokens,\n                replaceLongDateFormatTokens\n            );\n            localFormattingTokens.lastIndex = 0;\n            i -= 1;\n        }\n\n        return format;\n    }\n\n    var defaultLongDateFormat = {\n        LTS: 'h:mm:ss A',\n        LT: 'h:mm A',\n        L: 'MM/DD/YYYY',\n        LL: 'MMMM D, YYYY',\n        LLL: 'MMMM D, YYYY h:mm A',\n        LLLL: 'dddd, MMMM D, YYYY h:mm A',\n    };\n\n    function longDateFormat(key) {\n        var format = this._longDateFormat[key],\n            formatUpper = this._longDateFormat[key.toUpperCase()];\n\n        if (format || !formatUpper) {\n            return format;\n        }\n\n        this._longDateFormat[key] = formatUpper\n            .match(formattingTokens)\n            .map(function (tok) {\n                if (\n                    tok === 'MMMM' ||\n                    tok === 'MM' ||\n                    tok === 'DD' ||\n                    tok === 'dddd'\n                ) {\n                    return tok.slice(1);\n                }\n                return tok;\n            })\n            .join('');\n\n        return this._longDateFormat[key];\n    }\n\n    var defaultInvalidDate = 'Invalid date';\n\n    function invalidDate() {\n        return this._invalidDate;\n    }\n\n    var defaultOrdinal = '%d',\n        defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n    function ordinal(number) {\n        return this._ordinal.replace('%d', number);\n    }\n\n    var defaultRelativeTime = {\n        future: 'in %s',\n        past: '%s ago',\n        s: 'a few seconds',\n        ss: '%d seconds',\n        m: 'a minute',\n        mm: '%d minutes',\n        h: 'an hour',\n        hh: '%d hours',\n        d: 'a day',\n        dd: '%d days',\n        w: 'a week',\n        ww: '%d weeks',\n        M: 'a month',\n        MM: '%d months',\n        y: 'a year',\n        yy: '%d years',\n    };\n\n    function relativeTime(number, withoutSuffix, string, isFuture) {\n        var output = this._relativeTime[string];\n        return isFunction(output)\n            ? output(number, withoutSuffix, string, isFuture)\n            : output.replace(/%d/i, number);\n    }\n\n    function pastFuture(diff, output) {\n        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n        return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n    }\n\n    var aliases = {};\n\n    function addUnitAlias(unit, shorthand) {\n        var lowerCase = unit.toLowerCase();\n        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n    }\n\n    function normalizeUnits(units) {\n        return typeof units === 'string'\n            ? aliases[units] || aliases[units.toLowerCase()]\n            : undefined;\n    }\n\n    function normalizeObjectUnits(inputObject) {\n        var normalizedInput = {},\n            normalizedProp,\n            prop;\n\n        for (prop in inputObject) {\n            if (hasOwnProp(inputObject, prop)) {\n                normalizedProp = normalizeUnits(prop);\n                if (normalizedProp) {\n                    normalizedInput[normalizedProp] = inputObject[prop];\n                }\n            }\n        }\n\n        return normalizedInput;\n    }\n\n    var priorities = {};\n\n    function addUnitPriority(unit, priority) {\n        priorities[unit] = priority;\n    }\n\n    function getPrioritizedUnits(unitsObj) {\n        var units = [],\n            u;\n        for (u in unitsObj) {\n            if (hasOwnProp(unitsObj, u)) {\n                units.push({ unit: u, priority: priorities[u] });\n            }\n        }\n        units.sort(function (a, b) {\n            return a.priority - b.priority;\n        });\n        return units;\n    }\n\n    function isLeapYear(year) {\n        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n    }\n\n    function absFloor(number) {\n        if (number < 0) {\n            // -0 -> 0\n            return Math.ceil(number) || 0;\n        } else {\n            return Math.floor(number);\n        }\n    }\n\n    function toInt(argumentForCoercion) {\n        var coercedNumber = +argumentForCoercion,\n            value = 0;\n\n        if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n            value = absFloor(coercedNumber);\n        }\n\n        return value;\n    }\n\n    function makeGetSet(unit, keepTime) {\n        return function (value) {\n            if (value != null) {\n                set$1(this, unit, value);\n                hooks.updateOffset(this, keepTime);\n                return this;\n            } else {\n                return get(this, unit);\n            }\n        };\n    }\n\n    function get(mom, unit) {\n        return mom.isValid()\n            ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n            : NaN;\n    }\n\n    function set$1(mom, unit, value) {\n        if (mom.isValid() && !isNaN(value)) {\n            if (\n                unit === 'FullYear' &&\n                isLeapYear(mom.year()) &&\n                mom.month() === 1 &&\n                mom.date() === 29\n            ) {\n                value = toInt(value);\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n                    value,\n                    mom.month(),\n                    daysInMonth(value, mom.month())\n                );\n            } else {\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function stringGet(units) {\n        units = normalizeUnits(units);\n        if (isFunction(this[units])) {\n            return this[units]();\n        }\n        return this;\n    }\n\n    function stringSet(units, value) {\n        if (typeof units === 'object') {\n            units = normalizeObjectUnits(units);\n            var prioritized = getPrioritizedUnits(units),\n                i;\n            for (i = 0; i < prioritized.length; i++) {\n                this[prioritized[i].unit](units[prioritized[i].unit]);\n            }\n        } else {\n            units = normalizeUnits(units);\n            if (isFunction(this[units])) {\n                return this[units](value);\n            }\n        }\n        return this;\n    }\n\n    var match1 = /\\d/, //       0 - 9\n        match2 = /\\d\\d/, //      00 - 99\n        match3 = /\\d{3}/, //     000 - 999\n        match4 = /\\d{4}/, //    0000 - 9999\n        match6 = /[+-]?\\d{6}/, // -999999 - 999999\n        match1to2 = /\\d\\d?/, //       0 - 99\n        match3to4 = /\\d\\d\\d\\d?/, //     999 - 9999\n        match5to6 = /\\d\\d\\d\\d\\d\\d?/, //   99999 - 999999\n        match1to3 = /\\d{1,3}/, //       0 - 999\n        match1to4 = /\\d{1,4}/, //       0 - 9999\n        match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n        matchUnsigned = /\\d+/, //       0 - inf\n        matchSigned = /[+-]?\\d+/, //    -inf - inf\n        matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n        matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n        matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n        // any word (or two) characters or numbers including two/three word month in arabic.\n        // includes scottish gaelic two word and hyphenated months\n        matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n        regexes;\n\n    regexes = {};\n\n    function addRegexToken(token, regex, strictRegex) {\n        regexes[token] = isFunction(regex)\n            ? regex\n            : function (isStrict, localeData) {\n                  return isStrict && strictRegex ? strictRegex : regex;\n              };\n    }\n\n    function getParseRegexForToken(token, config) {\n        if (!hasOwnProp(regexes, token)) {\n            return new RegExp(unescapeFormat(token));\n        }\n\n        return regexes[token](config._strict, config._locale);\n    }\n\n    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n    function unescapeFormat(s) {\n        return regexEscape(\n            s\n                .replace('\\\\', '')\n                .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n                    matched,\n                    p1,\n                    p2,\n                    p3,\n                    p4\n                ) {\n                    return p1 || p2 || p3 || p4;\n                })\n        );\n    }\n\n    function regexEscape(s) {\n        return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n    }\n\n    var tokens = {};\n\n    function addParseToken(token, callback) {\n        var i,\n            func = callback;\n        if (typeof token === 'string') {\n            token = [token];\n        }\n        if (isNumber(callback)) {\n            func = function (input, array) {\n                array[callback] = toInt(input);\n            };\n        }\n        for (i = 0; i < token.length; i++) {\n            tokens[token[i]] = func;\n        }\n    }\n\n    function addWeekParseToken(token, callback) {\n        addParseToken(token, function (input, array, config, token) {\n            config._w = config._w || {};\n            callback(input, config._w, config, token);\n        });\n    }\n\n    function addTimeToArrayFromToken(token, input, config) {\n        if (input != null && hasOwnProp(tokens, token)) {\n            tokens[token](input, config._a, config, token);\n        }\n    }\n\n    var YEAR = 0,\n        MONTH = 1,\n        DATE = 2,\n        HOUR = 3,\n        MINUTE = 4,\n        SECOND = 5,\n        MILLISECOND = 6,\n        WEEK = 7,\n        WEEKDAY = 8;\n\n    function mod(n, x) {\n        return ((n % x) + x) % x;\n    }\n\n    var indexOf;\n\n    if (Array.prototype.indexOf) {\n        indexOf = Array.prototype.indexOf;\n    } else {\n        indexOf = function (o) {\n            // I know\n            var i;\n            for (i = 0; i < this.length; ++i) {\n                if (this[i] === o) {\n                    return i;\n                }\n            }\n            return -1;\n        };\n    }\n\n    function daysInMonth(year, month) {\n        if (isNaN(year) || isNaN(month)) {\n            return NaN;\n        }\n        var modMonth = mod(month, 12);\n        year += (month - modMonth) / 12;\n        return modMonth === 1\n            ? isLeapYear(year)\n                ? 29\n                : 28\n            : 31 - ((modMonth % 7) % 2);\n    }\n\n    // FORMATTING\n\n    addFormatToken('M', ['MM', 2], 'Mo', function () {\n        return this.month() + 1;\n    });\n\n    addFormatToken('MMM', 0, 0, function (format) {\n        return this.localeData().monthsShort(this, format);\n    });\n\n    addFormatToken('MMMM', 0, 0, function (format) {\n        return this.localeData().months(this, format);\n    });\n\n    // ALIASES\n\n    addUnitAlias('month', 'M');\n\n    // PRIORITY\n\n    addUnitPriority('month', 8);\n\n    // PARSING\n\n    addRegexToken('M', match1to2);\n    addRegexToken('MM', match1to2, match2);\n    addRegexToken('MMM', function (isStrict, locale) {\n        return locale.monthsShortRegex(isStrict);\n    });\n    addRegexToken('MMMM', function (isStrict, locale) {\n        return locale.monthsRegex(isStrict);\n    });\n\n    addParseToken(['M', 'MM'], function (input, array) {\n        array[MONTH] = toInt(input) - 1;\n    });\n\n    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n        var month = config._locale.monthsParse(input, token, config._strict);\n        // if we didn't find a month name, mark the date as invalid.\n        if (month != null) {\n            array[MONTH] = month;\n        } else {\n            getParsingFlags(config).invalidMonth = input;\n        }\n    });\n\n    // LOCALES\n\n    var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n            '_'\n        ),\n        MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n        defaultMonthsShortRegex = matchWord,\n        defaultMonthsRegex = matchWord;\n\n    function localeMonths(m, format) {\n        if (!m) {\n            return isArray(this._months)\n                ? this._months\n                : this._months['standalone'];\n        }\n        return isArray(this._months)\n            ? this._months[m.month()]\n            : this._months[\n                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n                      ? 'format'\n                      : 'standalone'\n              ][m.month()];\n    }\n\n    function localeMonthsShort(m, format) {\n        if (!m) {\n            return isArray(this._monthsShort)\n                ? this._monthsShort\n                : this._monthsShort['standalone'];\n        }\n        return isArray(this._monthsShort)\n            ? this._monthsShort[m.month()]\n            : this._monthsShort[\n                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n              ][m.month()];\n    }\n\n    function handleStrictParse(monthName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = monthName.toLocaleLowerCase();\n        if (!this._monthsParse) {\n            // this is not used\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n            for (i = 0; i < 12; ++i) {\n                mom = createUTC([2000, i]);\n                this._shortMonthsParse[i] = this.monthsShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeMonthsParse(monthName, format, strict) {\n        var i, mom, regex;\n\n        if (this._monthsParseExact) {\n            return handleStrictParse.call(this, monthName, format, strict);\n        }\n\n        if (!this._monthsParse) {\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n        }\n\n        // TODO: add sorting\n        // Sorting makes sure if one month (or abbr) is a prefix of another\n        // see sorting in computeMonthsParse\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            if (strict && !this._longMonthsParse[i]) {\n                this._longMonthsParse[i] = new RegExp(\n                    '^' + this.months(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n                this._shortMonthsParse[i] = new RegExp(\n                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n            }\n            if (!strict && !this._monthsParse[i]) {\n                regex =\n                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'MMMM' &&\n                this._longMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'MMM' &&\n                this._shortMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (!strict && this._monthsParse[i].test(monthName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function setMonth(mom, value) {\n        var dayOfMonth;\n\n        if (!mom.isValid()) {\n            // No op\n            return mom;\n        }\n\n        if (typeof value === 'string') {\n            if (/^\\d+$/.test(value)) {\n                value = toInt(value);\n            } else {\n                value = mom.localeData().monthsParse(value);\n                // TODO: Another silent failure?\n                if (!isNumber(value)) {\n                    return mom;\n                }\n            }\n        }\n\n        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n        return mom;\n    }\n\n    function getSetMonth(value) {\n        if (value != null) {\n            setMonth(this, value);\n            hooks.updateOffset(this, true);\n            return this;\n        } else {\n            return get(this, 'Month');\n        }\n    }\n\n    function getDaysInMonth() {\n        return daysInMonth(this.year(), this.month());\n    }\n\n    function monthsShortRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsShortStrictRegex;\n            } else {\n                return this._monthsShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsShortRegex')) {\n                this._monthsShortRegex = defaultMonthsShortRegex;\n            }\n            return this._monthsShortStrictRegex && isStrict\n                ? this._monthsShortStrictRegex\n                : this._monthsShortRegex;\n        }\n    }\n\n    function monthsRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsStrictRegex;\n            } else {\n                return this._monthsRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                this._monthsRegex = defaultMonthsRegex;\n            }\n            return this._monthsStrictRegex && isStrict\n                ? this._monthsStrictRegex\n                : this._monthsRegex;\n        }\n    }\n\n    function computeMonthsParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom;\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            shortPieces.push(this.monthsShort(mom, ''));\n            longPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.monthsShort(mom, ''));\n        }\n        // Sorting makes sure if one month (or abbr) is a prefix of another it\n        // will match the longer piece.\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n        for (i = 0; i < 12; i++) {\n            shortPieces[i] = regexEscape(shortPieces[i]);\n            longPieces[i] = regexEscape(longPieces[i]);\n        }\n        for (i = 0; i < 24; i++) {\n            mixedPieces[i] = regexEscape(mixedPieces[i]);\n        }\n\n        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._monthsShortRegex = this._monthsRegex;\n        this._monthsStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._monthsShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    addFormatToken('Y', 0, 0, function () {\n        var y = this.year();\n        return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n    });\n\n    addFormatToken(0, ['YY', 2], 0, function () {\n        return this.year() % 100;\n    });\n\n    addFormatToken(0, ['YYYY', 4], 0, 'year');\n    addFormatToken(0, ['YYYYY', 5], 0, 'year');\n    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n    // ALIASES\n\n    addUnitAlias('year', 'y');\n\n    // PRIORITIES\n\n    addUnitPriority('year', 1);\n\n    // PARSING\n\n    addRegexToken('Y', matchSigned);\n    addRegexToken('YY', match1to2, match2);\n    addRegexToken('YYYY', match1to4, match4);\n    addRegexToken('YYYYY', match1to6, match6);\n    addRegexToken('YYYYYY', match1to6, match6);\n\n    addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n    addParseToken('YYYY', function (input, array) {\n        array[YEAR] =\n            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n    });\n    addParseToken('YY', function (input, array) {\n        array[YEAR] = hooks.parseTwoDigitYear(input);\n    });\n    addParseToken('Y', function (input, array) {\n        array[YEAR] = parseInt(input, 10);\n    });\n\n    // HELPERS\n\n    function daysInYear(year) {\n        return isLeapYear(year) ? 366 : 365;\n    }\n\n    // HOOKS\n\n    hooks.parseTwoDigitYear = function (input) {\n        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n    };\n\n    // MOMENTS\n\n    var getSetYear = makeGetSet('FullYear', true);\n\n    function getIsLeapYear() {\n        return isLeapYear(this.year());\n    }\n\n    function createDate(y, m, d, h, M, s, ms) {\n        // can't just apply() to create a date:\n        // https://stackoverflow.com/q/181348\n        var date;\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            date = new Date(y + 400, m, d, h, M, s, ms);\n            if (isFinite(date.getFullYear())) {\n                date.setFullYear(y);\n            }\n        } else {\n            date = new Date(y, m, d, h, M, s, ms);\n        }\n\n        return date;\n    }\n\n    function createUTCDate(y) {\n        var date, args;\n        // the Date.UTC function remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            args = Array.prototype.slice.call(arguments);\n            // preserve leap years using a full 400 year cycle, then reset\n            args[0] = y + 400;\n            date = new Date(Date.UTC.apply(null, args));\n            if (isFinite(date.getUTCFullYear())) {\n                date.setUTCFullYear(y);\n            }\n        } else {\n            date = new Date(Date.UTC.apply(null, arguments));\n        }\n\n        return date;\n    }\n\n    // start-of-first-week - start-of-year\n    function firstWeekOffset(year, dow, doy) {\n        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n            fwd = 7 + dow - doy,\n            // first-week day local weekday -- which local weekday is fwd\n            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n        return -fwdlw + fwd - 1;\n    }\n\n    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n        var localWeekday = (7 + weekday - dow) % 7,\n            weekOffset = firstWeekOffset(year, dow, doy),\n            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n            resYear,\n            resDayOfYear;\n\n        if (dayOfYear <= 0) {\n            resYear = year - 1;\n            resDayOfYear = daysInYear(resYear) + dayOfYear;\n        } else if (dayOfYear > daysInYear(year)) {\n            resYear = year + 1;\n            resDayOfYear = dayOfYear - daysInYear(year);\n        } else {\n            resYear = year;\n            resDayOfYear = dayOfYear;\n        }\n\n        return {\n            year: resYear,\n            dayOfYear: resDayOfYear,\n        };\n    }\n\n    function weekOfYear(mom, dow, doy) {\n        var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n            resWeek,\n            resYear;\n\n        if (week < 1) {\n            resYear = mom.year() - 1;\n            resWeek = week + weeksInYear(resYear, dow, doy);\n        } else if (week > weeksInYear(mom.year(), dow, doy)) {\n            resWeek = week - weeksInYear(mom.year(), dow, doy);\n            resYear = mom.year() + 1;\n        } else {\n            resYear = mom.year();\n            resWeek = week;\n        }\n\n        return {\n            week: resWeek,\n            year: resYear,\n        };\n    }\n\n    function weeksInYear(year, dow, doy) {\n        var weekOffset = firstWeekOffset(year, dow, doy),\n            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n    }\n\n    // FORMATTING\n\n    addFormatToken('w', ['ww', 2], 'wo', 'week');\n    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n    // ALIASES\n\n    addUnitAlias('week', 'w');\n    addUnitAlias('isoWeek', 'W');\n\n    // PRIORITIES\n\n    addUnitPriority('week', 5);\n    addUnitPriority('isoWeek', 5);\n\n    // PARSING\n\n    addRegexToken('w', match1to2);\n    addRegexToken('ww', match1to2, match2);\n    addRegexToken('W', match1to2);\n    addRegexToken('WW', match1to2, match2);\n\n    addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n        input,\n        week,\n        config,\n        token\n    ) {\n        week[token.substr(0, 1)] = toInt(input);\n    });\n\n    // HELPERS\n\n    // LOCALES\n\n    function localeWeek(mom) {\n        return weekOfYear(mom, this._week.dow, this._week.doy).week;\n    }\n\n    var defaultLocaleWeek = {\n        dow: 0, // Sunday is the first day of the week.\n        doy: 6, // The week that contains Jan 6th is the first week of the year.\n    };\n\n    function localeFirstDayOfWeek() {\n        return this._week.dow;\n    }\n\n    function localeFirstDayOfYear() {\n        return this._week.doy;\n    }\n\n    // MOMENTS\n\n    function getSetWeek(input) {\n        var week = this.localeData().week(this);\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    function getSetISOWeek(input) {\n        var week = weekOfYear(this, 1, 4).week;\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('d', 0, 'do', 'day');\n\n    addFormatToken('dd', 0, 0, function (format) {\n        return this.localeData().weekdaysMin(this, format);\n    });\n\n    addFormatToken('ddd', 0, 0, function (format) {\n        return this.localeData().weekdaysShort(this, format);\n    });\n\n    addFormatToken('dddd', 0, 0, function (format) {\n        return this.localeData().weekdays(this, format);\n    });\n\n    addFormatToken('e', 0, 0, 'weekday');\n    addFormatToken('E', 0, 0, 'isoWeekday');\n\n    // ALIASES\n\n    addUnitAlias('day', 'd');\n    addUnitAlias('weekday', 'e');\n    addUnitAlias('isoWeekday', 'E');\n\n    // PRIORITY\n    addUnitPriority('day', 11);\n    addUnitPriority('weekday', 11);\n    addUnitPriority('isoWeekday', 11);\n\n    // PARSING\n\n    addRegexToken('d', match1to2);\n    addRegexToken('e', match1to2);\n    addRegexToken('E', match1to2);\n    addRegexToken('dd', function (isStrict, locale) {\n        return locale.weekdaysMinRegex(isStrict);\n    });\n    addRegexToken('ddd', function (isStrict, locale) {\n        return locale.weekdaysShortRegex(isStrict);\n    });\n    addRegexToken('dddd', function (isStrict, locale) {\n        return locale.weekdaysRegex(isStrict);\n    });\n\n    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n        var weekday = config._locale.weekdaysParse(input, token, config._strict);\n        // if we didn't get a weekday name, mark the date as invalid\n        if (weekday != null) {\n            week.d = weekday;\n        } else {\n            getParsingFlags(config).invalidWeekday = input;\n        }\n    });\n\n    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n        week[token] = toInt(input);\n    });\n\n    // HELPERS\n\n    function parseWeekday(input, locale) {\n        if (typeof input !== 'string') {\n            return input;\n        }\n\n        if (!isNaN(input)) {\n            return parseInt(input, 10);\n        }\n\n        input = locale.weekdaysParse(input);\n        if (typeof input === 'number') {\n            return input;\n        }\n\n        return null;\n    }\n\n    function parseIsoWeekday(input, locale) {\n        if (typeof input === 'string') {\n            return locale.weekdaysParse(input) % 7 || 7;\n        }\n        return isNaN(input) ? null : input;\n    }\n\n    // LOCALES\n    function shiftWeekdays(ws, n) {\n        return ws.slice(n, 7).concat(ws.slice(0, n));\n    }\n\n    var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        defaultWeekdaysRegex = matchWord,\n        defaultWeekdaysShortRegex = matchWord,\n        defaultWeekdaysMinRegex = matchWord;\n\n    function localeWeekdays(m, format) {\n        var weekdays = isArray(this._weekdays)\n            ? this._weekdays\n            : this._weekdays[\n                  m && m !== true && this._weekdays.isFormat.test(format)\n                      ? 'format'\n                      : 'standalone'\n              ];\n        return m === true\n            ? shiftWeekdays(weekdays, this._week.dow)\n            : m\n            ? weekdays[m.day()]\n            : weekdays;\n    }\n\n    function localeWeekdaysShort(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n            : m\n            ? this._weekdaysShort[m.day()]\n            : this._weekdaysShort;\n    }\n\n    function localeWeekdaysMin(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n            : m\n            ? this._weekdaysMin[m.day()]\n            : this._weekdaysMin;\n    }\n\n    function handleStrictParse$1(weekdayName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = weekdayName.toLocaleLowerCase();\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._minWeekdaysParse = [];\n\n            for (i = 0; i < 7; ++i) {\n                mom = createUTC([2000, 1]).day(i);\n                this._minWeekdaysParse[i] = this.weekdaysMin(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._shortWeekdaysParse[i] = this.weekdaysShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeWeekdaysParse(weekdayName, format, strict) {\n        var i, mom, regex;\n\n        if (this._weekdaysParseExact) {\n            return handleStrictParse$1.call(this, weekdayName, format, strict);\n        }\n\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._minWeekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._fullWeekdaysParse = [];\n        }\n\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n\n            mom = createUTC([2000, 1]).day(i);\n            if (strict && !this._fullWeekdaysParse[i]) {\n                this._fullWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._shortWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._minWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n            }\n            if (!this._weekdaysParse[i]) {\n                regex =\n                    '^' +\n                    this.weekdays(mom, '') +\n                    '|^' +\n                    this.weekdaysShort(mom, '') +\n                    '|^' +\n                    this.weekdaysMin(mom, '');\n                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'dddd' &&\n                this._fullWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'ddd' &&\n                this._shortWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'dd' &&\n                this._minWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function getSetDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n        if (input != null) {\n            input = parseWeekday(input, this.localeData());\n            return this.add(input - day, 'd');\n        } else {\n            return day;\n        }\n    }\n\n    function getSetLocaleDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n        return input == null ? weekday : this.add(input - weekday, 'd');\n    }\n\n    function getSetISODayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n\n        // behaves the same as moment#day except\n        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n        // as a setter, sunday should belong to the previous week.\n\n        if (input != null) {\n            var weekday = parseIsoWeekday(input, this.localeData());\n            return this.day(this.day() % 7 ? weekday : weekday - 7);\n        } else {\n            return this.day() || 7;\n        }\n    }\n\n    function weekdaysRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysStrictRegex;\n            } else {\n                return this._weekdaysRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                this._weekdaysRegex = defaultWeekdaysRegex;\n            }\n            return this._weekdaysStrictRegex && isStrict\n                ? this._weekdaysStrictRegex\n                : this._weekdaysRegex;\n        }\n    }\n\n    function weekdaysShortRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysShortStrictRegex;\n            } else {\n                return this._weekdaysShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n                this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n            }\n            return this._weekdaysShortStrictRegex && isStrict\n                ? this._weekdaysShortStrictRegex\n                : this._weekdaysShortRegex;\n        }\n    }\n\n    function weekdaysMinRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysMinStrictRegex;\n            } else {\n                return this._weekdaysMinRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n                this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n            }\n            return this._weekdaysMinStrictRegex && isStrict\n                ? this._weekdaysMinStrictRegex\n                : this._weekdaysMinRegex;\n        }\n    }\n\n    function computeWeekdaysParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var minPieces = [],\n            shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom,\n            minp,\n            shortp,\n            longp;\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, 1]).day(i);\n            minp = regexEscape(this.weekdaysMin(mom, ''));\n            shortp = regexEscape(this.weekdaysShort(mom, ''));\n            longp = regexEscape(this.weekdays(mom, ''));\n            minPieces.push(minp);\n            shortPieces.push(shortp);\n            longPieces.push(longp);\n            mixedPieces.push(minp);\n            mixedPieces.push(shortp);\n            mixedPieces.push(longp);\n        }\n        // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n        // will match the longer piece.\n        minPieces.sort(cmpLenRev);\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n\n        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._weekdaysShortRegex = this._weekdaysRegex;\n        this._weekdaysMinRegex = this._weekdaysRegex;\n\n        this._weekdaysStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysMinStrictRegex = new RegExp(\n            '^(' + minPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    function hFormat() {\n        return this.hours() % 12 || 12;\n    }\n\n    function kFormat() {\n        return this.hours() || 24;\n    }\n\n    addFormatToken('H', ['HH', 2], 0, 'hour');\n    addFormatToken('h', ['hh', 2], 0, hFormat);\n    addFormatToken('k', ['kk', 2], 0, kFormat);\n\n    addFormatToken('hmm', 0, 0, function () {\n        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('hmmss', 0, 0, function () {\n        return (\n            '' +\n            hFormat.apply(this) +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    addFormatToken('Hmm', 0, 0, function () {\n        return '' + this.hours() + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('Hmmss', 0, 0, function () {\n        return (\n            '' +\n            this.hours() +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    function meridiem(token, lowercase) {\n        addFormatToken(token, 0, 0, function () {\n            return this.localeData().meridiem(\n                this.hours(),\n                this.minutes(),\n                lowercase\n            );\n        });\n    }\n\n    meridiem('a', true);\n    meridiem('A', false);\n\n    // ALIASES\n\n    addUnitAlias('hour', 'h');\n\n    // PRIORITY\n    addUnitPriority('hour', 13);\n\n    // PARSING\n\n    function matchMeridiem(isStrict, locale) {\n        return locale._meridiemParse;\n    }\n\n    addRegexToken('a', matchMeridiem);\n    addRegexToken('A', matchMeridiem);\n    addRegexToken('H', match1to2);\n    addRegexToken('h', match1to2);\n    addRegexToken('k', match1to2);\n    addRegexToken('HH', match1to2, match2);\n    addRegexToken('hh', match1to2, match2);\n    addRegexToken('kk', match1to2, match2);\n\n    addRegexToken('hmm', match3to4);\n    addRegexToken('hmmss', match5to6);\n    addRegexToken('Hmm', match3to4);\n    addRegexToken('Hmmss', match5to6);\n\n    addParseToken(['H', 'HH'], HOUR);\n    addParseToken(['k', 'kk'], function (input, array, config) {\n        var kInput = toInt(input);\n        array[HOUR] = kInput === 24 ? 0 : kInput;\n    });\n    addParseToken(['a', 'A'], function (input, array, config) {\n        config._isPm = config._locale.isPM(input);\n        config._meridiem = input;\n    });\n    addParseToken(['h', 'hh'], function (input, array, config) {\n        array[HOUR] = toInt(input);\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('Hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n    });\n    addParseToken('Hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n    });\n\n    // LOCALES\n\n    function localeIsPM(input) {\n        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n        // Using charAt should be more compatible.\n        return (input + '').toLowerCase().charAt(0) === 'p';\n    }\n\n    var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n        // Setting the hour should keep the time, because the user explicitly\n        // specified which hour they want. So trying to maintain the same hour (in\n        // a new timezone) makes sense. Adding/subtracting hours does not follow\n        // this rule.\n        getSetHour = makeGetSet('Hours', true);\n\n    function localeMeridiem(hours, minutes, isLower) {\n        if (hours > 11) {\n            return isLower ? 'pm' : 'PM';\n        } else {\n            return isLower ? 'am' : 'AM';\n        }\n    }\n\n    var baseConfig = {\n        calendar: defaultCalendar,\n        longDateFormat: defaultLongDateFormat,\n        invalidDate: defaultInvalidDate,\n        ordinal: defaultOrdinal,\n        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n        relativeTime: defaultRelativeTime,\n\n        months: defaultLocaleMonths,\n        monthsShort: defaultLocaleMonthsShort,\n\n        week: defaultLocaleWeek,\n\n        weekdays: defaultLocaleWeekdays,\n        weekdaysMin: defaultLocaleWeekdaysMin,\n        weekdaysShort: defaultLocaleWeekdaysShort,\n\n        meridiemParse: defaultLocaleMeridiemParse,\n    };\n\n    // internal storage for locale config files\n    var locales = {},\n        localeFamilies = {},\n        globalLocale;\n\n    function commonPrefix(arr1, arr2) {\n        var i,\n            minl = Math.min(arr1.length, arr2.length);\n        for (i = 0; i < minl; i += 1) {\n            if (arr1[i] !== arr2[i]) {\n                return i;\n            }\n        }\n        return minl;\n    }\n\n    function normalizeLocale(key) {\n        return key ? key.toLowerCase().replace('_', '-') : key;\n    }\n\n    // pick the locale from the array\n    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n    function chooseLocale(names) {\n        var i = 0,\n            j,\n            next,\n            locale,\n            split;\n\n        while (i < names.length) {\n            split = normalizeLocale(names[i]).split('-');\n            j = split.length;\n            next = normalizeLocale(names[i + 1]);\n            next = next ? next.split('-') : null;\n            while (j > 0) {\n                locale = loadLocale(split.slice(0, j).join('-'));\n                if (locale) {\n                    return locale;\n                }\n                if (\n                    next &&\n                    next.length >= j &&\n                    commonPrefix(split, next) >= j - 1\n                ) {\n                    //the next array item is better than a shallower substring of this one\n                    break;\n                }\n                j--;\n            }\n            i++;\n        }\n        return globalLocale;\n    }\n\n    function loadLocale(name) {\n        var oldLocale = null,\n            aliasedRequire;\n        // TODO: Find a better way to register and load all the locales in Node\n        if (\n            locales[name] === undefined &&\n            typeof module !== 'undefined' &&\n            module &&\n            module.exports\n        ) {\n            try {\n                oldLocale = globalLocale._abbr;\n                aliasedRequire = require;\n                aliasedRequire('./locale/' + name);\n                getSetGlobalLocale(oldLocale);\n            } catch (e) {\n                // mark as not found to avoid repeating expensive file require call causing high CPU\n                // when trying to find en-US, en_US, en-us for every format call\n                locales[name] = null; // null means not found\n            }\n        }\n        return locales[name];\n    }\n\n    // This function will load locale and then set the global locale.  If\n    // no arguments are passed in, it will simply return the current global\n    // locale key.\n    function getSetGlobalLocale(key, values) {\n        var data;\n        if (key) {\n            if (isUndefined(values)) {\n                data = getLocale(key);\n            } else {\n                data = defineLocale(key, values);\n            }\n\n            if (data) {\n                // moment.duration._locale = moment._locale = data;\n                globalLocale = data;\n            } else {\n                if (typeof console !== 'undefined' && console.warn) {\n                    //warn user if arguments are passed but the locale could not be set\n                    console.warn(\n                        'Locale ' + key + ' not found. Did you forget to load it?'\n                    );\n                }\n            }\n        }\n\n        return globalLocale._abbr;\n    }\n\n    function defineLocale(name, config) {\n        if (config !== null) {\n            var locale,\n                parentConfig = baseConfig;\n            config.abbr = name;\n            if (locales[name] != null) {\n                deprecateSimple(\n                    'defineLocaleOverride',\n                    'use moment.updateLocale(localeName, config) to change ' +\n                        'an existing locale. moment.defineLocale(localeName, ' +\n                        'config) should only be used for creating a new locale ' +\n                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n                );\n                parentConfig = locales[name]._config;\n            } else if (config.parentLocale != null) {\n                if (locales[config.parentLocale] != null) {\n                    parentConfig = locales[config.parentLocale]._config;\n                } else {\n                    locale = loadLocale(config.parentLocale);\n                    if (locale != null) {\n                        parentConfig = locale._config;\n                    } else {\n                        if (!localeFamilies[config.parentLocale]) {\n                            localeFamilies[config.parentLocale] = [];\n                        }\n                        localeFamilies[config.parentLocale].push({\n                            name: name,\n                            config: config,\n                        });\n                        return null;\n                    }\n                }\n            }\n            locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n            if (localeFamilies[name]) {\n                localeFamilies[name].forEach(function (x) {\n                    defineLocale(x.name, x.config);\n                });\n            }\n\n            // backwards compat for now: also set the locale\n            // make sure we set the locale AFTER all child locales have been\n            // created, so we won't end up with the child locale set.\n            getSetGlobalLocale(name);\n\n            return locales[name];\n        } else {\n            // useful for testing\n            delete locales[name];\n            return null;\n        }\n    }\n\n    function updateLocale(name, config) {\n        if (config != null) {\n            var locale,\n                tmpLocale,\n                parentConfig = baseConfig;\n\n            if (locales[name] != null && locales[name].parentLocale != null) {\n                // Update existing child locale in-place to avoid memory-leaks\n                locales[name].set(mergeConfigs(locales[name]._config, config));\n            } else {\n                // MERGE\n                tmpLocale = loadLocale(name);\n                if (tmpLocale != null) {\n                    parentConfig = tmpLocale._config;\n                }\n                config = mergeConfigs(parentConfig, config);\n                if (tmpLocale == null) {\n                    // updateLocale is called for creating a new locale\n                    // Set abbr so it will have a name (getters return\n                    // undefined otherwise).\n                    config.abbr = name;\n                }\n                locale = new Locale(config);\n                locale.parentLocale = locales[name];\n                locales[name] = locale;\n            }\n\n            // backwards compat for now: also set the locale\n            getSetGlobalLocale(name);\n        } else {\n            // pass null for config to unupdate, useful for tests\n            if (locales[name] != null) {\n                if (locales[name].parentLocale != null) {\n                    locales[name] = locales[name].parentLocale;\n                    if (name === getSetGlobalLocale()) {\n                        getSetGlobalLocale(name);\n                    }\n                } else if (locales[name] != null) {\n                    delete locales[name];\n                }\n            }\n        }\n        return locales[name];\n    }\n\n    // returns locale data\n    function getLocale(key) {\n        var locale;\n\n        if (key && key._locale && key._locale._abbr) {\n            key = key._locale._abbr;\n        }\n\n        if (!key) {\n            return globalLocale;\n        }\n\n        if (!isArray(key)) {\n            //short-circuit everything else\n            locale = loadLocale(key);\n            if (locale) {\n                return locale;\n            }\n            key = [key];\n        }\n\n        return chooseLocale(key);\n    }\n\n    function listLocales() {\n        return keys(locales);\n    }\n\n    function checkOverflow(m) {\n        var overflow,\n            a = m._a;\n\n        if (a && getParsingFlags(m).overflow === -2) {\n            overflow =\n                a[MONTH] < 0 || a[MONTH] > 11\n                    ? MONTH\n                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n                    ? DATE\n                    : a[HOUR] < 0 ||\n                      a[HOUR] > 24 ||\n                      (a[HOUR] === 24 &&\n                          (a[MINUTE] !== 0 ||\n                              a[SECOND] !== 0 ||\n                              a[MILLISECOND] !== 0))\n                    ? HOUR\n                    : a[MINUTE] < 0 || a[MINUTE] > 59\n                    ? MINUTE\n                    : a[SECOND] < 0 || a[SECOND] > 59\n                    ? SECOND\n                    : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n                    ? MILLISECOND\n                    : -1;\n\n            if (\n                getParsingFlags(m)._overflowDayOfYear &&\n                (overflow < YEAR || overflow > DATE)\n            ) {\n                overflow = DATE;\n            }\n            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n                overflow = WEEK;\n            }\n            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n                overflow = WEEKDAY;\n            }\n\n            getParsingFlags(m).overflow = overflow;\n        }\n\n        return m;\n    }\n\n    // iso 8601 regex\n    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n    var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n        isoDates = [\n            ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n            ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n            ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n            ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n            ['YYYY-DDD', /\\d{4}-\\d{3}/],\n            ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n            ['YYYYYYMMDD', /[+-]\\d{10}/],\n            ['YYYYMMDD', /\\d{8}/],\n            ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n            ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n            ['YYYYDDD', /\\d{7}/],\n            ['YYYYMM', /\\d{6}/, false],\n            ['YYYY', /\\d{4}/, false],\n        ],\n        // iso time formats and regexes\n        isoTimes = [\n            ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n            ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n            ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n            ['HH:mm', /\\d\\d:\\d\\d/],\n            ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n            ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n            ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n            ['HHmm', /\\d\\d\\d\\d/],\n            ['HH', /\\d\\d/],\n        ],\n        aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n        rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n        obsOffsets = {\n            UT: 0,\n            GMT: 0,\n            EDT: -4 * 60,\n            EST: -5 * 60,\n            CDT: -5 * 60,\n            CST: -6 * 60,\n            MDT: -6 * 60,\n            MST: -7 * 60,\n            PDT: -7 * 60,\n            PST: -8 * 60,\n        };\n\n    // date from iso format\n    function configFromISO(config) {\n        var i,\n            l,\n            string = config._i,\n            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n            allowTime,\n            dateFormat,\n            timeFormat,\n            tzFormat;\n\n        if (match) {\n            getParsingFlags(config).iso = true;\n\n            for (i = 0, l = isoDates.length; i < l; i++) {\n                if (isoDates[i][1].exec(match[1])) {\n                    dateFormat = isoDates[i][0];\n                    allowTime = isoDates[i][2] !== false;\n                    break;\n                }\n            }\n            if (dateFormat == null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[3]) {\n                for (i = 0, l = isoTimes.length; i < l; i++) {\n                    if (isoTimes[i][1].exec(match[3])) {\n                        // match[2] should be 'T' or space\n                        timeFormat = (match[2] || ' ') + isoTimes[i][0];\n                        break;\n                    }\n                }\n                if (timeFormat == null) {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            if (!allowTime && timeFormat != null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[4]) {\n                if (tzRegex.exec(match[4])) {\n                    tzFormat = 'Z';\n                } else {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n            configFromStringAndFormat(config);\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    function extractFromRFC2822Strings(\n        yearStr,\n        monthStr,\n        dayStr,\n        hourStr,\n        minuteStr,\n        secondStr\n    ) {\n        var result = [\n            untruncateYear(yearStr),\n            defaultLocaleMonthsShort.indexOf(monthStr),\n            parseInt(dayStr, 10),\n            parseInt(hourStr, 10),\n            parseInt(minuteStr, 10),\n        ];\n\n        if (secondStr) {\n            result.push(parseInt(secondStr, 10));\n        }\n\n        return result;\n    }\n\n    function untruncateYear(yearStr) {\n        var year = parseInt(yearStr, 10);\n        if (year <= 49) {\n            return 2000 + year;\n        } else if (year <= 999) {\n            return 1900 + year;\n        }\n        return year;\n    }\n\n    function preprocessRFC2822(s) {\n        // Remove comments and folding whitespace and replace multiple-spaces with a single space\n        return s\n            .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n            .replace(/(\\s\\s+)/g, ' ')\n            .replace(/^\\s\\s*/, '')\n            .replace(/\\s\\s*$/, '');\n    }\n\n    function checkWeekday(weekdayStr, parsedInput, config) {\n        if (weekdayStr) {\n            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n                weekdayActual = new Date(\n                    parsedInput[0],\n                    parsedInput[1],\n                    parsedInput[2]\n                ).getDay();\n            if (weekdayProvided !== weekdayActual) {\n                getParsingFlags(config).weekdayMismatch = true;\n                config._isValid = false;\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function calculateOffset(obsOffset, militaryOffset, numOffset) {\n        if (obsOffset) {\n            return obsOffsets[obsOffset];\n        } else if (militaryOffset) {\n            // the only allowed military tz is Z\n            return 0;\n        } else {\n            var hm = parseInt(numOffset, 10),\n                m = hm % 100,\n                h = (hm - m) / 100;\n            return h * 60 + m;\n        }\n    }\n\n    // date and time from ref 2822 format\n    function configFromRFC2822(config) {\n        var match = rfc2822.exec(preprocessRFC2822(config._i)),\n            parsedArray;\n        if (match) {\n            parsedArray = extractFromRFC2822Strings(\n                match[4],\n                match[3],\n                match[2],\n                match[5],\n                match[6],\n                match[7]\n            );\n            if (!checkWeekday(match[1], parsedArray, config)) {\n                return;\n            }\n\n            config._a = parsedArray;\n            config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n            config._d = createUTCDate.apply(null, config._a);\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n            getParsingFlags(config).rfc2822 = true;\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n    function configFromString(config) {\n        var matched = aspNetJsonRegex.exec(config._i);\n        if (matched !== null) {\n            config._d = new Date(+matched[1]);\n            return;\n        }\n\n        configFromISO(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        configFromRFC2822(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        if (config._strict) {\n            config._isValid = false;\n        } else {\n            // Final attempt, use Input Fallback\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    hooks.createFromInputFallback = deprecate(\n        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n        function (config) {\n            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n        }\n    );\n\n    // Pick the first defined of two or three arguments.\n    function defaults(a, b, c) {\n        if (a != null) {\n            return a;\n        }\n        if (b != null) {\n            return b;\n        }\n        return c;\n    }\n\n    function currentDateArray(config) {\n        // hooks is actually the exported moment object\n        var nowValue = new Date(hooks.now());\n        if (config._useUTC) {\n            return [\n                nowValue.getUTCFullYear(),\n                nowValue.getUTCMonth(),\n                nowValue.getUTCDate(),\n            ];\n        }\n        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n    }\n\n    // convert an array to a date.\n    // the array should mirror the parameters below\n    // note: all values past the year are optional and will default to the lowest possible value.\n    // [year, month, day , hour, minute, second, millisecond]\n    function configFromArray(config) {\n        var i,\n            date,\n            input = [],\n            currentDate,\n            expectedWeekday,\n            yearToUse;\n\n        if (config._d) {\n            return;\n        }\n\n        currentDate = currentDateArray(config);\n\n        //compute day of the year from weeks and weekdays\n        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n            dayOfYearFromWeekInfo(config);\n        }\n\n        //if the day of the year is set, figure out what it is\n        if (config._dayOfYear != null) {\n            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n            if (\n                config._dayOfYear > daysInYear(yearToUse) ||\n                config._dayOfYear === 0\n            ) {\n                getParsingFlags(config)._overflowDayOfYear = true;\n            }\n\n            date = createUTCDate(yearToUse, 0, config._dayOfYear);\n            config._a[MONTH] = date.getUTCMonth();\n            config._a[DATE] = date.getUTCDate();\n        }\n\n        // Default to current date.\n        // * if no year, month, day of month are given, default to today\n        // * if day of month is given, default month and year\n        // * if month is given, default only year\n        // * if year is given, don't default anything\n        for (i = 0; i < 3 && config._a[i] == null; ++i) {\n            config._a[i] = input[i] = currentDate[i];\n        }\n\n        // Zero out whatever was not defaulted, including time\n        for (; i < 7; i++) {\n            config._a[i] = input[i] =\n                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n        }\n\n        // Check for 24:00:00.000\n        if (\n            config._a[HOUR] === 24 &&\n            config._a[MINUTE] === 0 &&\n            config._a[SECOND] === 0 &&\n            config._a[MILLISECOND] === 0\n        ) {\n            config._nextDay = true;\n            config._a[HOUR] = 0;\n        }\n\n        config._d = (config._useUTC ? createUTCDate : createDate).apply(\n            null,\n            input\n        );\n        expectedWeekday = config._useUTC\n            ? config._d.getUTCDay()\n            : config._d.getDay();\n\n        // Apply timezone offset from input. The actual utcOffset can be changed\n        // with parseZone.\n        if (config._tzm != null) {\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n        }\n\n        if (config._nextDay) {\n            config._a[HOUR] = 24;\n        }\n\n        // check for mismatching day of week\n        if (\n            config._w &&\n            typeof config._w.d !== 'undefined' &&\n            config._w.d !== expectedWeekday\n        ) {\n            getParsingFlags(config).weekdayMismatch = true;\n        }\n    }\n\n    function dayOfYearFromWeekInfo(config) {\n        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n        w = config._w;\n        if (w.GG != null || w.W != null || w.E != null) {\n            dow = 1;\n            doy = 4;\n\n            // TODO: We need to take the current isoWeekYear, but that depends on\n            // how we interpret now (local, utc, fixed offset). So create\n            // a now version of current config (take local/utc/offset flags, and\n            // create now).\n            weekYear = defaults(\n                w.GG,\n                config._a[YEAR],\n                weekOfYear(createLocal(), 1, 4).year\n            );\n            week = defaults(w.W, 1);\n            weekday = defaults(w.E, 1);\n            if (weekday < 1 || weekday > 7) {\n                weekdayOverflow = true;\n            }\n        } else {\n            dow = config._locale._week.dow;\n            doy = config._locale._week.doy;\n\n            curWeek = weekOfYear(createLocal(), dow, doy);\n\n            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n            // Default to current week.\n            week = defaults(w.w, curWeek.week);\n\n            if (w.d != null) {\n                // weekday -- low day numbers are considered next week\n                weekday = w.d;\n                if (weekday < 0 || weekday > 6) {\n                    weekdayOverflow = true;\n                }\n            } else if (w.e != null) {\n                // local weekday -- counting starts from beginning of week\n                weekday = w.e + dow;\n                if (w.e < 0 || w.e > 6) {\n                    weekdayOverflow = true;\n                }\n            } else {\n                // default to beginning of week\n                weekday = dow;\n            }\n        }\n        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n            getParsingFlags(config)._overflowWeeks = true;\n        } else if (weekdayOverflow != null) {\n            getParsingFlags(config)._overflowWeekday = true;\n        } else {\n            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n            config._a[YEAR] = temp.year;\n            config._dayOfYear = temp.dayOfYear;\n        }\n    }\n\n    // constant that refers to the ISO standard\n    hooks.ISO_8601 = function () {};\n\n    // constant that refers to the RFC 2822 form\n    hooks.RFC_2822 = function () {};\n\n    // date from string and format string\n    function configFromStringAndFormat(config) {\n        // TODO: Move this to another part of the creation flow to prevent circular deps\n        if (config._f === hooks.ISO_8601) {\n            configFromISO(config);\n            return;\n        }\n        if (config._f === hooks.RFC_2822) {\n            configFromRFC2822(config);\n            return;\n        }\n        config._a = [];\n        getParsingFlags(config).empty = true;\n\n        // This array is used to make a Date, either with `new Date` or `Date.UTC`\n        var string = '' + config._i,\n            i,\n            parsedInput,\n            tokens,\n            token,\n            skipped,\n            stringLength = string.length,\n            totalParsedInputLength = 0,\n            era;\n\n        tokens =\n            expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n        for (i = 0; i < tokens.length; i++) {\n            token = tokens[i];\n            parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n                [])[0];\n            if (parsedInput) {\n                skipped = string.substr(0, string.indexOf(parsedInput));\n                if (skipped.length > 0) {\n                    getParsingFlags(config).unusedInput.push(skipped);\n                }\n                string = string.slice(\n                    string.indexOf(parsedInput) + parsedInput.length\n                );\n                totalParsedInputLength += parsedInput.length;\n            }\n            // don't parse if it's not a known token\n            if (formatTokenFunctions[token]) {\n                if (parsedInput) {\n                    getParsingFlags(config).empty = false;\n                } else {\n                    getParsingFlags(config).unusedTokens.push(token);\n                }\n                addTimeToArrayFromToken(token, parsedInput, config);\n            } else if (config._strict && !parsedInput) {\n                getParsingFlags(config).unusedTokens.push(token);\n            }\n        }\n\n        // add remaining unparsed input length to the string\n        getParsingFlags(config).charsLeftOver =\n            stringLength - totalParsedInputLength;\n        if (string.length > 0) {\n            getParsingFlags(config).unusedInput.push(string);\n        }\n\n        // clear _12h flag if hour is <= 12\n        if (\n            config._a[HOUR] <= 12 &&\n            getParsingFlags(config).bigHour === true &&\n            config._a[HOUR] > 0\n        ) {\n            getParsingFlags(config).bigHour = undefined;\n        }\n\n        getParsingFlags(config).parsedDateParts = config._a.slice(0);\n        getParsingFlags(config).meridiem = config._meridiem;\n        // handle meridiem\n        config._a[HOUR] = meridiemFixWrap(\n            config._locale,\n            config._a[HOUR],\n            config._meridiem\n        );\n\n        // handle era\n        era = getParsingFlags(config).era;\n        if (era !== null) {\n            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n        }\n\n        configFromArray(config);\n        checkOverflow(config);\n    }\n\n    function meridiemFixWrap(locale, hour, meridiem) {\n        var isPm;\n\n        if (meridiem == null) {\n            // nothing to do\n            return hour;\n        }\n        if (locale.meridiemHour != null) {\n            return locale.meridiemHour(hour, meridiem);\n        } else if (locale.isPM != null) {\n            // Fallback\n            isPm = locale.isPM(meridiem);\n            if (isPm && hour < 12) {\n                hour += 12;\n            }\n            if (!isPm && hour === 12) {\n                hour = 0;\n            }\n            return hour;\n        } else {\n            // this is not supposed to happen\n            return hour;\n        }\n    }\n\n    // date from string and array of format strings\n    function configFromStringAndArray(config) {\n        var tempConfig,\n            bestMoment,\n            scoreToBeat,\n            i,\n            currentScore,\n            validFormatFound,\n            bestFormatIsValid = false;\n\n        if (config._f.length === 0) {\n            getParsingFlags(config).invalidFormat = true;\n            config._d = new Date(NaN);\n            return;\n        }\n\n        for (i = 0; i < config._f.length; i++) {\n            currentScore = 0;\n            validFormatFound = false;\n            tempConfig = copyConfig({}, config);\n            if (config._useUTC != null) {\n                tempConfig._useUTC = config._useUTC;\n            }\n            tempConfig._f = config._f[i];\n            configFromStringAndFormat(tempConfig);\n\n            if (isValid(tempConfig)) {\n                validFormatFound = true;\n            }\n\n            // if there is any input that was not parsed add a penalty for that format\n            currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n            //or tokens\n            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n            getParsingFlags(tempConfig).score = currentScore;\n\n            if (!bestFormatIsValid) {\n                if (\n                    scoreToBeat == null ||\n                    currentScore < scoreToBeat ||\n                    validFormatFound\n                ) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                    if (validFormatFound) {\n                        bestFormatIsValid = true;\n                    }\n                }\n            } else {\n                if (currentScore < scoreToBeat) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                }\n            }\n        }\n\n        extend(config, bestMoment || tempConfig);\n    }\n\n    function configFromObject(config) {\n        if (config._d) {\n            return;\n        }\n\n        var i = normalizeObjectUnits(config._i),\n            dayOrDate = i.day === undefined ? i.date : i.day;\n        config._a = map(\n            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n            function (obj) {\n                return obj && parseInt(obj, 10);\n            }\n        );\n\n        configFromArray(config);\n    }\n\n    function createFromConfig(config) {\n        var res = new Moment(checkOverflow(prepareConfig(config)));\n        if (res._nextDay) {\n            // Adding is smart enough around DST\n            res.add(1, 'd');\n            res._nextDay = undefined;\n        }\n\n        return res;\n    }\n\n    function prepareConfig(config) {\n        var input = config._i,\n            format = config._f;\n\n        config._locale = config._locale || getLocale(config._l);\n\n        if (input === null || (format === undefined && input === '')) {\n            return createInvalid({ nullInput: true });\n        }\n\n        if (typeof input === 'string') {\n            config._i = input = config._locale.preparse(input);\n        }\n\n        if (isMoment(input)) {\n            return new Moment(checkOverflow(input));\n        } else if (isDate(input)) {\n            config._d = input;\n        } else if (isArray(format)) {\n            configFromStringAndArray(config);\n        } else if (format) {\n            configFromStringAndFormat(config);\n        } else {\n            configFromInput(config);\n        }\n\n        if (!isValid(config)) {\n            config._d = null;\n        }\n\n        return config;\n    }\n\n    function configFromInput(config) {\n        var input = config._i;\n        if (isUndefined(input)) {\n            config._d = new Date(hooks.now());\n        } else if (isDate(input)) {\n            config._d = new Date(input.valueOf());\n        } else if (typeof input === 'string') {\n            configFromString(config);\n        } else if (isArray(input)) {\n            config._a = map(input.slice(0), function (obj) {\n                return parseInt(obj, 10);\n            });\n            configFromArray(config);\n        } else if (isObject(input)) {\n            configFromObject(config);\n        } else if (isNumber(input)) {\n            // from milliseconds\n            config._d = new Date(input);\n        } else {\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    function createLocalOrUTC(input, format, locale, strict, isUTC) {\n        var c = {};\n\n        if (format === true || format === false) {\n            strict = format;\n            format = undefined;\n        }\n\n        if (locale === true || locale === false) {\n            strict = locale;\n            locale = undefined;\n        }\n\n        if (\n            (isObject(input) && isObjectEmpty(input)) ||\n            (isArray(input) && input.length === 0)\n        ) {\n            input = undefined;\n        }\n        // object construction must be done this way.\n        // https://github.com/moment/moment/issues/1423\n        c._isAMomentObject = true;\n        c._useUTC = c._isUTC = isUTC;\n        c._l = locale;\n        c._i = input;\n        c._f = format;\n        c._strict = strict;\n\n        return createFromConfig(c);\n    }\n\n    function createLocal(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, false);\n    }\n\n    var prototypeMin = deprecate(\n            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other < this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        ),\n        prototypeMax = deprecate(\n            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other > this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        );\n\n    // Pick a moment m from moments so that m[fn](other) is true for all\n    // other. This relies on the function fn to be transitive.\n    //\n    // moments should either be an array of moment objects or an array, whose\n    // first element is an array of moment objects.\n    function pickBy(fn, moments) {\n        var res, i;\n        if (moments.length === 1 && isArray(moments[0])) {\n            moments = moments[0];\n        }\n        if (!moments.length) {\n            return createLocal();\n        }\n        res = moments[0];\n        for (i = 1; i < moments.length; ++i) {\n            if (!moments[i].isValid() || moments[i][fn](res)) {\n                res = moments[i];\n            }\n        }\n        return res;\n    }\n\n    // TODO: Use [].sort instead?\n    function min() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isBefore', args);\n    }\n\n    function max() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isAfter', args);\n    }\n\n    var now = function () {\n        return Date.now ? Date.now() : +new Date();\n    };\n\n    var ordering = [\n        'year',\n        'quarter',\n        'month',\n        'week',\n        'day',\n        'hour',\n        'minute',\n        'second',\n        'millisecond',\n    ];\n\n    function isDurationValid(m) {\n        var key,\n            unitHasDecimal = false,\n            i;\n        for (key in m) {\n            if (\n                hasOwnProp(m, key) &&\n                !(\n                    indexOf.call(ordering, key) !== -1 &&\n                    (m[key] == null || !isNaN(m[key]))\n                )\n            ) {\n                return false;\n            }\n        }\n\n        for (i = 0; i < ordering.length; ++i) {\n            if (m[ordering[i]]) {\n                if (unitHasDecimal) {\n                    return false; // only allow non-integers for smallest unit\n                }\n                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n                    unitHasDecimal = true;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    function isValid$1() {\n        return this._isValid;\n    }\n\n    function createInvalid$1() {\n        return createDuration(NaN);\n    }\n\n    function Duration(duration) {\n        var normalizedInput = normalizeObjectUnits(duration),\n            years = normalizedInput.year || 0,\n            quarters = normalizedInput.quarter || 0,\n            months = normalizedInput.month || 0,\n            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n            days = normalizedInput.day || 0,\n            hours = normalizedInput.hour || 0,\n            minutes = normalizedInput.minute || 0,\n            seconds = normalizedInput.second || 0,\n            milliseconds = normalizedInput.millisecond || 0;\n\n        this._isValid = isDurationValid(normalizedInput);\n\n        // representation for dateAddRemove\n        this._milliseconds =\n            +milliseconds +\n            seconds * 1e3 + // 1000\n            minutes * 6e4 + // 1000 * 60\n            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n        // Because of dateAddRemove treats 24 hours as different from a\n        // day when working around DST, we need to store them separately\n        this._days = +days + weeks * 7;\n        // It is impossible to translate months into days without knowing\n        // which months you are are talking about, so we have to store\n        // it separately.\n        this._months = +months + quarters * 3 + years * 12;\n\n        this._data = {};\n\n        this._locale = getLocale();\n\n        this._bubble();\n    }\n\n    function isDuration(obj) {\n        return obj instanceof Duration;\n    }\n\n    function absRound(number) {\n        if (number < 0) {\n            return Math.round(-1 * number) * -1;\n        } else {\n            return Math.round(number);\n        }\n    }\n\n    // compare two arrays, return the number of differences\n    function compareArrays(array1, array2, dontConvert) {\n        var len = Math.min(array1.length, array2.length),\n            lengthDiff = Math.abs(array1.length - array2.length),\n            diffs = 0,\n            i;\n        for (i = 0; i < len; i++) {\n            if (\n                (dontConvert && array1[i] !== array2[i]) ||\n                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n            ) {\n                diffs++;\n            }\n        }\n        return diffs + lengthDiff;\n    }\n\n    // FORMATTING\n\n    function offset(token, separator) {\n        addFormatToken(token, 0, 0, function () {\n            var offset = this.utcOffset(),\n                sign = '+';\n            if (offset < 0) {\n                offset = -offset;\n                sign = '-';\n            }\n            return (\n                sign +\n                zeroFill(~~(offset / 60), 2) +\n                separator +\n                zeroFill(~~offset % 60, 2)\n            );\n        });\n    }\n\n    offset('Z', ':');\n    offset('ZZ', '');\n\n    // PARSING\n\n    addRegexToken('Z', matchShortOffset);\n    addRegexToken('ZZ', matchShortOffset);\n    addParseToken(['Z', 'ZZ'], function (input, array, config) {\n        config._useUTC = true;\n        config._tzm = offsetFromString(matchShortOffset, input);\n    });\n\n    // HELPERS\n\n    // timezone chunker\n    // '+10:00' > ['10',  '00']\n    // '-1530'  > ['-15', '30']\n    var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n    function offsetFromString(matcher, string) {\n        var matches = (string || '').match(matcher),\n            chunk,\n            parts,\n            minutes;\n\n        if (matches === null) {\n            return null;\n        }\n\n        chunk = matches[matches.length - 1] || [];\n        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n        minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n    }\n\n    // Return a moment from input, that is local/utc/zone equivalent to model.\n    function cloneWithOffset(input, model) {\n        var res, diff;\n        if (model._isUTC) {\n            res = model.clone();\n            diff =\n                (isMoment(input) || isDate(input)\n                    ? input.valueOf()\n                    : createLocal(input).valueOf()) - res.valueOf();\n            // Use low-level api, because this fn is low-level api.\n            res._d.setTime(res._d.valueOf() + diff);\n            hooks.updateOffset(res, false);\n            return res;\n        } else {\n            return createLocal(input).local();\n        }\n    }\n\n    function getDateOffset(m) {\n        // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n        // https://github.com/moment/moment/pull/1871\n        return -Math.round(m._d.getTimezoneOffset());\n    }\n\n    // HOOKS\n\n    // This function will be called whenever a moment is mutated.\n    // It is intended to keep the offset in sync with the timezone.\n    hooks.updateOffset = function () {};\n\n    // MOMENTS\n\n    // keepLocalTime = true means only change the timezone, without\n    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n    // +0200, so we adjust the time as needed, to be valid.\n    //\n    // Keeping the time actually adds/subtracts (one hour)\n    // from the actual represented time. That is why we call updateOffset\n    // a second time. In case it wants us to change the offset again\n    // _changeInProgress == true case, then we have to adjust, because\n    // there is no such time in the given timezone.\n    function getSetOffset(input, keepLocalTime, keepMinutes) {\n        var offset = this._offset || 0,\n            localAdjust;\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        if (input != null) {\n            if (typeof input === 'string') {\n                input = offsetFromString(matchShortOffset, input);\n                if (input === null) {\n                    return this;\n                }\n            } else if (Math.abs(input) < 16 && !keepMinutes) {\n                input = input * 60;\n            }\n            if (!this._isUTC && keepLocalTime) {\n                localAdjust = getDateOffset(this);\n            }\n            this._offset = input;\n            this._isUTC = true;\n            if (localAdjust != null) {\n                this.add(localAdjust, 'm');\n            }\n            if (offset !== input) {\n                if (!keepLocalTime || this._changeInProgress) {\n                    addSubtract(\n                        this,\n                        createDuration(input - offset, 'm'),\n                        1,\n                        false\n                    );\n                } else if (!this._changeInProgress) {\n                    this._changeInProgress = true;\n                    hooks.updateOffset(this, true);\n                    this._changeInProgress = null;\n                }\n            }\n            return this;\n        } else {\n            return this._isUTC ? offset : getDateOffset(this);\n        }\n    }\n\n    function getSetZone(input, keepLocalTime) {\n        if (input != null) {\n            if (typeof input !== 'string') {\n                input = -input;\n            }\n\n            this.utcOffset(input, keepLocalTime);\n\n            return this;\n        } else {\n            return -this.utcOffset();\n        }\n    }\n\n    function setOffsetToUTC(keepLocalTime) {\n        return this.utcOffset(0, keepLocalTime);\n    }\n\n    function setOffsetToLocal(keepLocalTime) {\n        if (this._isUTC) {\n            this.utcOffset(0, keepLocalTime);\n            this._isUTC = false;\n\n            if (keepLocalTime) {\n                this.subtract(getDateOffset(this), 'm');\n            }\n        }\n        return this;\n    }\n\n    function setOffsetToParsedOffset() {\n        if (this._tzm != null) {\n            this.utcOffset(this._tzm, false, true);\n        } else if (typeof this._i === 'string') {\n            var tZone = offsetFromString(matchOffset, this._i);\n            if (tZone != null) {\n                this.utcOffset(tZone);\n            } else {\n                this.utcOffset(0, true);\n            }\n        }\n        return this;\n    }\n\n    function hasAlignedHourOffset(input) {\n        if (!this.isValid()) {\n            return false;\n        }\n        input = input ? createLocal(input).utcOffset() : 0;\n\n        return (this.utcOffset() - input) % 60 === 0;\n    }\n\n    function isDaylightSavingTime() {\n        return (\n            this.utcOffset() > this.clone().month(0).utcOffset() ||\n            this.utcOffset() > this.clone().month(5).utcOffset()\n        );\n    }\n\n    function isDaylightSavingTimeShifted() {\n        if (!isUndefined(this._isDSTShifted)) {\n            return this._isDSTShifted;\n        }\n\n        var c = {},\n            other;\n\n        copyConfig(c, this);\n        c = prepareConfig(c);\n\n        if (c._a) {\n            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n            this._isDSTShifted =\n                this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n        } else {\n            this._isDSTShifted = false;\n        }\n\n        return this._isDSTShifted;\n    }\n\n    function isLocal() {\n        return this.isValid() ? !this._isUTC : false;\n    }\n\n    function isUtcOffset() {\n        return this.isValid() ? this._isUTC : false;\n    }\n\n    function isUtc() {\n        return this.isValid() ? this._isUTC && this._offset === 0 : false;\n    }\n\n    // ASP.NET json date format regex\n    var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n        // and further modified to allow for strings containing both week and day\n        isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n    function createDuration(input, key) {\n        var duration = input,\n            // matching against regexp is expensive, do it on demand\n            match = null,\n            sign,\n            ret,\n            diffRes;\n\n        if (isDuration(input)) {\n            duration = {\n                ms: input._milliseconds,\n                d: input._days,\n                M: input._months,\n            };\n        } else if (isNumber(input) || !isNaN(+input)) {\n            duration = {};\n            if (key) {\n                duration[key] = +input;\n            } else {\n                duration.milliseconds = +input;\n            }\n        } else if ((match = aspNetRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: 0,\n                d: toInt(match[DATE]) * sign,\n                h: toInt(match[HOUR]) * sign,\n                m: toInt(match[MINUTE]) * sign,\n                s: toInt(match[SECOND]) * sign,\n                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n            };\n        } else if ((match = isoRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: parseIso(match[2], sign),\n                M: parseIso(match[3], sign),\n                w: parseIso(match[4], sign),\n                d: parseIso(match[5], sign),\n                h: parseIso(match[6], sign),\n                m: parseIso(match[7], sign),\n                s: parseIso(match[8], sign),\n            };\n        } else if (duration == null) {\n            // checks for null or undefined\n            duration = {};\n        } else if (\n            typeof duration === 'object' &&\n            ('from' in duration || 'to' in duration)\n        ) {\n            diffRes = momentsDifference(\n                createLocal(duration.from),\n                createLocal(duration.to)\n            );\n\n            duration = {};\n            duration.ms = diffRes.milliseconds;\n            duration.M = diffRes.months;\n        }\n\n        ret = new Duration(duration);\n\n        if (isDuration(input) && hasOwnProp(input, '_locale')) {\n            ret._locale = input._locale;\n        }\n\n        if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n            ret._isValid = input._isValid;\n        }\n\n        return ret;\n    }\n\n    createDuration.fn = Duration.prototype;\n    createDuration.invalid = createInvalid$1;\n\n    function parseIso(inp, sign) {\n        // We'd normally use ~~inp for this, but unfortunately it also\n        // converts floats to ints.\n        // inp may be undefined, so careful calling replace on it.\n        var res = inp && parseFloat(inp.replace(',', '.'));\n        // apply sign while we're at it\n        return (isNaN(res) ? 0 : res) * sign;\n    }\n\n    function positiveMomentsDifference(base, other) {\n        var res = {};\n\n        res.months =\n            other.month() - base.month() + (other.year() - base.year()) * 12;\n        if (base.clone().add(res.months, 'M').isAfter(other)) {\n            --res.months;\n        }\n\n        res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n        return res;\n    }\n\n    function momentsDifference(base, other) {\n        var res;\n        if (!(base.isValid() && other.isValid())) {\n            return { milliseconds: 0, months: 0 };\n        }\n\n        other = cloneWithOffset(other, base);\n        if (base.isBefore(other)) {\n            res = positiveMomentsDifference(base, other);\n        } else {\n            res = positiveMomentsDifference(other, base);\n            res.milliseconds = -res.milliseconds;\n            res.months = -res.months;\n        }\n\n        return res;\n    }\n\n    // TODO: remove 'name' arg after deprecation is removed\n    function createAdder(direction, name) {\n        return function (val, period) {\n            var dur, tmp;\n            //invert the arguments, but complain about it\n            if (period !== null && !isNaN(+period)) {\n                deprecateSimple(\n                    name,\n                    'moment().' +\n                        name +\n                        '(period, number) is deprecated. Please use moment().' +\n                        name +\n                        '(number, period). ' +\n                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n                );\n                tmp = val;\n                val = period;\n                period = tmp;\n            }\n\n            dur = createDuration(val, period);\n            addSubtract(this, dur, direction);\n            return this;\n        };\n    }\n\n    function addSubtract(mom, duration, isAdding, updateOffset) {\n        var milliseconds = duration._milliseconds,\n            days = absRound(duration._days),\n            months = absRound(duration._months);\n\n        if (!mom.isValid()) {\n            // No op\n            return;\n        }\n\n        updateOffset = updateOffset == null ? true : updateOffset;\n\n        if (months) {\n            setMonth(mom, get(mom, 'Month') + months * isAdding);\n        }\n        if (days) {\n            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n        }\n        if (milliseconds) {\n            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n        }\n        if (updateOffset) {\n            hooks.updateOffset(mom, days || months);\n        }\n    }\n\n    var add = createAdder(1, 'add'),\n        subtract = createAdder(-1, 'subtract');\n\n    function isString(input) {\n        return typeof input === 'string' || input instanceof String;\n    }\n\n    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n    function isMomentInput(input) {\n        return (\n            isMoment(input) ||\n            isDate(input) ||\n            isString(input) ||\n            isNumber(input) ||\n            isNumberOrStringArray(input) ||\n            isMomentInputObject(input) ||\n            input === null ||\n            input === undefined\n        );\n    }\n\n    function isMomentInputObject(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'years',\n                'year',\n                'y',\n                'months',\n                'month',\n                'M',\n                'days',\n                'day',\n                'd',\n                'dates',\n                'date',\n                'D',\n                'hours',\n                'hour',\n                'h',\n                'minutes',\n                'minute',\n                'm',\n                'seconds',\n                'second',\n                's',\n                'milliseconds',\n                'millisecond',\n                'ms',\n            ],\n            i,\n            property;\n\n        for (i = 0; i < properties.length; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function isNumberOrStringArray(input) {\n        var arrayTest = isArray(input),\n            dataTypeTest = false;\n        if (arrayTest) {\n            dataTypeTest =\n                input.filter(function (item) {\n                    return !isNumber(item) && isString(input);\n                }).length === 0;\n        }\n        return arrayTest && dataTypeTest;\n    }\n\n    function isCalendarSpec(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'sameDay',\n                'nextDay',\n                'lastDay',\n                'nextWeek',\n                'lastWeek',\n                'sameElse',\n            ],\n            i,\n            property;\n\n        for (i = 0; i < properties.length; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function getCalendarFormat(myMoment, now) {\n        var diff = myMoment.diff(now, 'days', true);\n        return diff < -6\n            ? 'sameElse'\n            : diff < -1\n            ? 'lastWeek'\n            : diff < 0\n            ? 'lastDay'\n            : diff < 1\n            ? 'sameDay'\n            : diff < 2\n            ? 'nextDay'\n            : diff < 7\n            ? 'nextWeek'\n            : 'sameElse';\n    }\n\n    function calendar$1(time, formats) {\n        // Support for single parameter, formats only overload to the calendar function\n        if (arguments.length === 1) {\n            if (!arguments[0]) {\n                time = undefined;\n                formats = undefined;\n            } else if (isMomentInput(arguments[0])) {\n                time = arguments[0];\n                formats = undefined;\n            } else if (isCalendarSpec(arguments[0])) {\n                formats = arguments[0];\n                time = undefined;\n            }\n        }\n        // We want to compare the start of today, vs this.\n        // Getting start-of-today depends on whether we're local/utc/offset or not.\n        var now = time || createLocal(),\n            sod = cloneWithOffset(now, this).startOf('day'),\n            format = hooks.calendarFormat(this, sod) || 'sameElse',\n            output =\n                formats &&\n                (isFunction(formats[format])\n                    ? formats[format].call(this, now)\n                    : formats[format]);\n\n        return this.format(\n            output || this.localeData().calendar(format, this, createLocal(now))\n        );\n    }\n\n    function clone() {\n        return new Moment(this);\n    }\n\n    function isAfter(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() > localInput.valueOf();\n        } else {\n            return localInput.valueOf() < this.clone().startOf(units).valueOf();\n        }\n    }\n\n    function isBefore(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() < localInput.valueOf();\n        } else {\n            return this.clone().endOf(units).valueOf() < localInput.valueOf();\n        }\n    }\n\n    function isBetween(from, to, units, inclusivity) {\n        var localFrom = isMoment(from) ? from : createLocal(from),\n            localTo = isMoment(to) ? to : createLocal(to);\n        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n            return false;\n        }\n        inclusivity = inclusivity || '()';\n        return (\n            (inclusivity[0] === '('\n                ? this.isAfter(localFrom, units)\n                : !this.isBefore(localFrom, units)) &&\n            (inclusivity[1] === ')'\n                ? this.isBefore(localTo, units)\n                : !this.isAfter(localTo, units))\n        );\n    }\n\n    function isSame(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input),\n            inputMs;\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() === localInput.valueOf();\n        } else {\n            inputMs = localInput.valueOf();\n            return (\n                this.clone().startOf(units).valueOf() <= inputMs &&\n                inputMs <= this.clone().endOf(units).valueOf()\n            );\n        }\n    }\n\n    function isSameOrAfter(input, units) {\n        return this.isSame(input, units) || this.isAfter(input, units);\n    }\n\n    function isSameOrBefore(input, units) {\n        return this.isSame(input, units) || this.isBefore(input, units);\n    }\n\n    function diff(input, units, asFloat) {\n        var that, zoneDelta, output;\n\n        if (!this.isValid()) {\n            return NaN;\n        }\n\n        that = cloneWithOffset(input, this);\n\n        if (!that.isValid()) {\n            return NaN;\n        }\n\n        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n        units = normalizeUnits(units);\n\n        switch (units) {\n            case 'year':\n                output = monthDiff(this, that) / 12;\n                break;\n            case 'month':\n                output = monthDiff(this, that);\n                break;\n            case 'quarter':\n                output = monthDiff(this, that) / 3;\n                break;\n            case 'second':\n                output = (this - that) / 1e3;\n                break; // 1000\n            case 'minute':\n                output = (this - that) / 6e4;\n                break; // 1000 * 60\n            case 'hour':\n                output = (this - that) / 36e5;\n                break; // 1000 * 60 * 60\n            case 'day':\n                output = (this - that - zoneDelta) / 864e5;\n                break; // 1000 * 60 * 60 * 24, negate dst\n            case 'week':\n                output = (this - that - zoneDelta) / 6048e5;\n                break; // 1000 * 60 * 60 * 24 * 7, negate dst\n            default:\n                output = this - that;\n        }\n\n        return asFloat ? output : absFloor(output);\n    }\n\n    function monthDiff(a, b) {\n        if (a.date() < b.date()) {\n            // end-of-month calculations work correct when the start month has more\n            // days than the end month.\n            return -monthDiff(b, a);\n        }\n        // difference in months\n        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n            // b is in (anchor - 1 month, anchor + 1 month)\n            anchor = a.clone().add(wholeMonthDiff, 'months'),\n            anchor2,\n            adjust;\n\n        if (b - anchor < 0) {\n            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor - anchor2);\n        } else {\n            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor2 - anchor);\n        }\n\n        //check for negative zero, return zero if negative zero\n        return -(wholeMonthDiff + adjust) || 0;\n    }\n\n    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n    function toString() {\n        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n    }\n\n    function toISOString(keepOffset) {\n        if (!this.isValid()) {\n            return null;\n        }\n        var utc = keepOffset !== true,\n            m = utc ? this.clone().utc() : this;\n        if (m.year() < 0 || m.year() > 9999) {\n            return formatMoment(\n                m,\n                utc\n                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n            );\n        }\n        if (isFunction(Date.prototype.toISOString)) {\n            // native implementation is ~50x faster, use it when we can\n            if (utc) {\n                return this.toDate().toISOString();\n            } else {\n                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n                    .toISOString()\n                    .replace('Z', formatMoment(m, 'Z'));\n            }\n        }\n        return formatMoment(\n            m,\n            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n        );\n    }\n\n    /**\n     * Return a human readable representation of a moment that can\n     * also be evaluated to get a new moment which is the same\n     *\n     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n     */\n    function inspect() {\n        if (!this.isValid()) {\n            return 'moment.invalid(/* ' + this._i + ' */)';\n        }\n        var func = 'moment',\n            zone = '',\n            prefix,\n            year,\n            datetime,\n            suffix;\n        if (!this.isLocal()) {\n            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n            zone = 'Z';\n        }\n        prefix = '[' + func + '(\"]';\n        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n        datetime = '-MM-DD[T]HH:mm:ss.SSS';\n        suffix = zone + '[\")]';\n\n        return this.format(prefix + year + datetime + suffix);\n    }\n\n    function format(inputString) {\n        if (!inputString) {\n            inputString = this.isUtc()\n                ? hooks.defaultFormatUtc\n                : hooks.defaultFormat;\n        }\n        var output = formatMoment(this, inputString);\n        return this.localeData().postformat(output);\n    }\n\n    function from(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ to: this, from: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function fromNow(withoutSuffix) {\n        return this.from(createLocal(), withoutSuffix);\n    }\n\n    function to(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ from: this, to: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function toNow(withoutSuffix) {\n        return this.to(createLocal(), withoutSuffix);\n    }\n\n    // If passed a locale key, it will set the locale for this\n    // instance.  Otherwise, it will return the locale configuration\n    // variables for this instance.\n    function locale(key) {\n        var newLocaleData;\n\n        if (key === undefined) {\n            return this._locale._abbr;\n        } else {\n            newLocaleData = getLocale(key);\n            if (newLocaleData != null) {\n                this._locale = newLocaleData;\n            }\n            return this;\n        }\n    }\n\n    var lang = deprecate(\n        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n        function (key) {\n            if (key === undefined) {\n                return this.localeData();\n            } else {\n                return this.locale(key);\n            }\n        }\n    );\n\n    function localeData() {\n        return this._locale;\n    }\n\n    var MS_PER_SECOND = 1000,\n        MS_PER_MINUTE = 60 * MS_PER_SECOND,\n        MS_PER_HOUR = 60 * MS_PER_MINUTE,\n        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n    // actual modulo - handles negative numbers (for dates before 1970):\n    function mod$1(dividend, divisor) {\n        return ((dividend % divisor) + divisor) % divisor;\n    }\n\n    function localStartOfDate(y, m, d) {\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return new Date(y, m, d).valueOf();\n        }\n    }\n\n    function utcStartOfDate(y, m, d) {\n        // Date.UTC remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return Date.UTC(y, m, d);\n        }\n    }\n\n    function startOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year(), 0, 1);\n                break;\n            case 'quarter':\n                time = startOfDate(\n                    this.year(),\n                    this.month() - (this.month() % 3),\n                    1\n                );\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month(), 1);\n                break;\n            case 'week':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - this.weekday()\n                );\n                break;\n            case 'isoWeek':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - (this.isoWeekday() - 1)\n                );\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date());\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time -= mod$1(\n                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                    MS_PER_HOUR\n                );\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_MINUTE);\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_SECOND);\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function endOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year() + 1, 0, 1) - 1;\n                break;\n            case 'quarter':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month() - (this.month() % 3) + 3,\n                        1\n                    ) - 1;\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n                break;\n            case 'week':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - this.weekday() + 7\n                    ) - 1;\n                break;\n            case 'isoWeek':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - (this.isoWeekday() - 1) + 7\n                    ) - 1;\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time +=\n                    MS_PER_HOUR -\n                    mod$1(\n                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                        MS_PER_HOUR\n                    ) -\n                    1;\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function valueOf() {\n        return this._d.valueOf() - (this._offset || 0) * 60000;\n    }\n\n    function unix() {\n        return Math.floor(this.valueOf() / 1000);\n    }\n\n    function toDate() {\n        return new Date(this.valueOf());\n    }\n\n    function toArray() {\n        var m = this;\n        return [\n            m.year(),\n            m.month(),\n            m.date(),\n            m.hour(),\n            m.minute(),\n            m.second(),\n            m.millisecond(),\n        ];\n    }\n\n    function toObject() {\n        var m = this;\n        return {\n            years: m.year(),\n            months: m.month(),\n            date: m.date(),\n            hours: m.hours(),\n            minutes: m.minutes(),\n            seconds: m.seconds(),\n            milliseconds: m.milliseconds(),\n        };\n    }\n\n    function toJSON() {\n        // new Date(NaN).toJSON() === null\n        return this.isValid() ? this.toISOString() : null;\n    }\n\n    function isValid$2() {\n        return isValid(this);\n    }\n\n    function parsingFlags() {\n        return extend({}, getParsingFlags(this));\n    }\n\n    function invalidAt() {\n        return getParsingFlags(this).overflow;\n    }\n\n    function creationData() {\n        return {\n            input: this._i,\n            format: this._f,\n            locale: this._locale,\n            isUTC: this._isUTC,\n            strict: this._strict,\n        };\n    }\n\n    addFormatToken('N', 0, 0, 'eraAbbr');\n    addFormatToken('NN', 0, 0, 'eraAbbr');\n    addFormatToken('NNN', 0, 0, 'eraAbbr');\n    addFormatToken('NNNN', 0, 0, 'eraName');\n    addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n    addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n    addFormatToken('y', ['yy', 2], 0, 'eraYear');\n    addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n    addRegexToken('N', matchEraAbbr);\n    addRegexToken('NN', matchEraAbbr);\n    addRegexToken('NNN', matchEraAbbr);\n    addRegexToken('NNNN', matchEraName);\n    addRegexToken('NNNNN', matchEraNarrow);\n\n    addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n        input,\n        array,\n        config,\n        token\n    ) {\n        var era = config._locale.erasParse(input, token, config._strict);\n        if (era) {\n            getParsingFlags(config).era = era;\n        } else {\n            getParsingFlags(config).invalidEra = input;\n        }\n    });\n\n    addRegexToken('y', matchUnsigned);\n    addRegexToken('yy', matchUnsigned);\n    addRegexToken('yyy', matchUnsigned);\n    addRegexToken('yyyy', matchUnsigned);\n    addRegexToken('yo', matchEraYearOrdinal);\n\n    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n    addParseToken(['yo'], function (input, array, config, token) {\n        var match;\n        if (config._locale._eraYearOrdinalRegex) {\n            match = input.match(config._locale._eraYearOrdinalRegex);\n        }\n\n        if (config._locale.eraYearOrdinalParse) {\n            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n        } else {\n            array[YEAR] = parseInt(input, 10);\n        }\n    });\n\n    function localeEras(m, format) {\n        var i,\n            l,\n            date,\n            eras = this._eras || getLocale('en')._eras;\n        for (i = 0, l = eras.length; i < l; ++i) {\n            switch (typeof eras[i].since) {\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].since).startOf('day');\n                    eras[i].since = date.valueOf();\n                    break;\n            }\n\n            switch (typeof eras[i].until) {\n                case 'undefined':\n                    eras[i].until = +Infinity;\n                    break;\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].until).startOf('day').valueOf();\n                    eras[i].until = date.valueOf();\n                    break;\n            }\n        }\n        return eras;\n    }\n\n    function localeErasParse(eraName, format, strict) {\n        var i,\n            l,\n            eras = this.eras(),\n            name,\n            abbr,\n            narrow;\n        eraName = eraName.toUpperCase();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            name = eras[i].name.toUpperCase();\n            abbr = eras[i].abbr.toUpperCase();\n            narrow = eras[i].narrow.toUpperCase();\n\n            if (strict) {\n                switch (format) {\n                    case 'N':\n                    case 'NN':\n                    case 'NNN':\n                        if (abbr === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNN':\n                        if (name === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNNN':\n                        if (narrow === eraName) {\n                            return eras[i];\n                        }\n                        break;\n                }\n            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n                return eras[i];\n            }\n        }\n    }\n\n    function localeErasConvertYear(era, year) {\n        var dir = era.since <= era.until ? +1 : -1;\n        if (year === undefined) {\n            return hooks(era.since).year();\n        } else {\n            return hooks(era.since).year() + (year - era.offset) * dir;\n        }\n    }\n\n    function getEraName() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].name;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].name;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraNarrow() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].narrow;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].narrow;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraAbbr() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].abbr;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].abbr;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraYear() {\n        var i,\n            l,\n            dir,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (\n                (eras[i].since <= val && val <= eras[i].until) ||\n                (eras[i].until <= val && val <= eras[i].since)\n            ) {\n                return (\n                    (this.year() - hooks(eras[i].since).year()) * dir +\n                    eras[i].offset\n                );\n            }\n        }\n\n        return this.year();\n    }\n\n    function erasNameRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNameRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNameRegex : this._erasRegex;\n    }\n\n    function erasAbbrRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasAbbrRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasAbbrRegex : this._erasRegex;\n    }\n\n    function erasNarrowRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNarrowRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNarrowRegex : this._erasRegex;\n    }\n\n    function matchEraAbbr(isStrict, locale) {\n        return locale.erasAbbrRegex(isStrict);\n    }\n\n    function matchEraName(isStrict, locale) {\n        return locale.erasNameRegex(isStrict);\n    }\n\n    function matchEraNarrow(isStrict, locale) {\n        return locale.erasNarrowRegex(isStrict);\n    }\n\n    function matchEraYearOrdinal(isStrict, locale) {\n        return locale._eraYearOrdinalRegex || matchUnsigned;\n    }\n\n    function computeErasParse() {\n        var abbrPieces = [],\n            namePieces = [],\n            narrowPieces = [],\n            mixedPieces = [],\n            i,\n            l,\n            eras = this.eras();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            namePieces.push(regexEscape(eras[i].name));\n            abbrPieces.push(regexEscape(eras[i].abbr));\n            narrowPieces.push(regexEscape(eras[i].narrow));\n\n            mixedPieces.push(regexEscape(eras[i].name));\n            mixedPieces.push(regexEscape(eras[i].abbr));\n            mixedPieces.push(regexEscape(eras[i].narrow));\n        }\n\n        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n        this._erasNarrowRegex = new RegExp(\n            '^(' + narrowPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    addFormatToken(0, ['gg', 2], 0, function () {\n        return this.weekYear() % 100;\n    });\n\n    addFormatToken(0, ['GG', 2], 0, function () {\n        return this.isoWeekYear() % 100;\n    });\n\n    function addWeekYearFormatToken(token, getter) {\n        addFormatToken(0, [token, token.length], 0, getter);\n    }\n\n    addWeekYearFormatToken('gggg', 'weekYear');\n    addWeekYearFormatToken('ggggg', 'weekYear');\n    addWeekYearFormatToken('GGGG', 'isoWeekYear');\n    addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n    // ALIASES\n\n    addUnitAlias('weekYear', 'gg');\n    addUnitAlias('isoWeekYear', 'GG');\n\n    // PRIORITY\n\n    addUnitPriority('weekYear', 1);\n    addUnitPriority('isoWeekYear', 1);\n\n    // PARSING\n\n    addRegexToken('G', matchSigned);\n    addRegexToken('g', matchSigned);\n    addRegexToken('GG', match1to2, match2);\n    addRegexToken('gg', match1to2, match2);\n    addRegexToken('GGGG', match1to4, match4);\n    addRegexToken('gggg', match1to4, match4);\n    addRegexToken('GGGGG', match1to6, match6);\n    addRegexToken('ggggg', match1to6, match6);\n\n    addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n        input,\n        week,\n        config,\n        token\n    ) {\n        week[token.substr(0, 2)] = toInt(input);\n    });\n\n    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n        week[token] = hooks.parseTwoDigitYear(input);\n    });\n\n    // MOMENTS\n\n    function getSetWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.week(),\n            this.weekday(),\n            this.localeData()._week.dow,\n            this.localeData()._week.doy\n        );\n    }\n\n    function getSetISOWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.isoWeek(),\n            this.isoWeekday(),\n            1,\n            4\n        );\n    }\n\n    function getISOWeeksInYear() {\n        return weeksInYear(this.year(), 1, 4);\n    }\n\n    function getISOWeeksInISOWeekYear() {\n        return weeksInYear(this.isoWeekYear(), 1, 4);\n    }\n\n    function getWeeksInYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getWeeksInWeekYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n        var weeksTarget;\n        if (input == null) {\n            return weekOfYear(this, dow, doy).year;\n        } else {\n            weeksTarget = weeksInYear(input, dow, doy);\n            if (week > weeksTarget) {\n                week = weeksTarget;\n            }\n            return setWeekAll.call(this, input, week, weekday, dow, doy);\n        }\n    }\n\n    function setWeekAll(weekYear, week, weekday, dow, doy) {\n        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n        this.year(date.getUTCFullYear());\n        this.month(date.getUTCMonth());\n        this.date(date.getUTCDate());\n        return this;\n    }\n\n    // FORMATTING\n\n    addFormatToken('Q', 0, 'Qo', 'quarter');\n\n    // ALIASES\n\n    addUnitAlias('quarter', 'Q');\n\n    // PRIORITY\n\n    addUnitPriority('quarter', 7);\n\n    // PARSING\n\n    addRegexToken('Q', match1);\n    addParseToken('Q', function (input, array) {\n        array[MONTH] = (toInt(input) - 1) * 3;\n    });\n\n    // MOMENTS\n\n    function getSetQuarter(input) {\n        return input == null\n            ? Math.ceil((this.month() + 1) / 3)\n            : this.month((input - 1) * 3 + (this.month() % 3));\n    }\n\n    // FORMATTING\n\n    addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n    // ALIASES\n\n    addUnitAlias('date', 'D');\n\n    // PRIORITY\n    addUnitPriority('date', 9);\n\n    // PARSING\n\n    addRegexToken('D', match1to2);\n    addRegexToken('DD', match1to2, match2);\n    addRegexToken('Do', function (isStrict, locale) {\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        return isStrict\n            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n            : locale._dayOfMonthOrdinalParseLenient;\n    });\n\n    addParseToken(['D', 'DD'], DATE);\n    addParseToken('Do', function (input, array) {\n        array[DATE] = toInt(input.match(match1to2)[0]);\n    });\n\n    // MOMENTS\n\n    var getSetDayOfMonth = makeGetSet('Date', true);\n\n    // FORMATTING\n\n    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n    // ALIASES\n\n    addUnitAlias('dayOfYear', 'DDD');\n\n    // PRIORITY\n    addUnitPriority('dayOfYear', 4);\n\n    // PARSING\n\n    addRegexToken('DDD', match1to3);\n    addRegexToken('DDDD', match3);\n    addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n        config._dayOfYear = toInt(input);\n    });\n\n    // HELPERS\n\n    // MOMENTS\n\n    function getSetDayOfYear(input) {\n        var dayOfYear =\n            Math.round(\n                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n            ) + 1;\n        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('m', ['mm', 2], 0, 'minute');\n\n    // ALIASES\n\n    addUnitAlias('minute', 'm');\n\n    // PRIORITY\n\n    addUnitPriority('minute', 14);\n\n    // PARSING\n\n    addRegexToken('m', match1to2);\n    addRegexToken('mm', match1to2, match2);\n    addParseToken(['m', 'mm'], MINUTE);\n\n    // MOMENTS\n\n    var getSetMinute = makeGetSet('Minutes', false);\n\n    // FORMATTING\n\n    addFormatToken('s', ['ss', 2], 0, 'second');\n\n    // ALIASES\n\n    addUnitAlias('second', 's');\n\n    // PRIORITY\n\n    addUnitPriority('second', 15);\n\n    // PARSING\n\n    addRegexToken('s', match1to2);\n    addRegexToken('ss', match1to2, match2);\n    addParseToken(['s', 'ss'], SECOND);\n\n    // MOMENTS\n\n    var getSetSecond = makeGetSet('Seconds', false);\n\n    // FORMATTING\n\n    addFormatToken('S', 0, 0, function () {\n        return ~~(this.millisecond() / 100);\n    });\n\n    addFormatToken(0, ['SS', 2], 0, function () {\n        return ~~(this.millisecond() / 10);\n    });\n\n    addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n    addFormatToken(0, ['SSSS', 4], 0, function () {\n        return this.millisecond() * 10;\n    });\n    addFormatToken(0, ['SSSSS', 5], 0, function () {\n        return this.millisecond() * 100;\n    });\n    addFormatToken(0, ['SSSSSS', 6], 0, function () {\n        return this.millisecond() * 1000;\n    });\n    addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n        return this.millisecond() * 10000;\n    });\n    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n        return this.millisecond() * 100000;\n    });\n    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n        return this.millisecond() * 1000000;\n    });\n\n    // ALIASES\n\n    addUnitAlias('millisecond', 'ms');\n\n    // PRIORITY\n\n    addUnitPriority('millisecond', 16);\n\n    // PARSING\n\n    addRegexToken('S', match1to3, match1);\n    addRegexToken('SS', match1to3, match2);\n    addRegexToken('SSS', match1to3, match3);\n\n    var token, getSetMillisecond;\n    for (token = 'SSSS'; token.length <= 9; token += 'S') {\n        addRegexToken(token, matchUnsigned);\n    }\n\n    function parseMs(input, array) {\n        array[MILLISECOND] = toInt(('0.' + input) * 1000);\n    }\n\n    for (token = 'S'; token.length <= 9; token += 'S') {\n        addParseToken(token, parseMs);\n    }\n\n    getSetMillisecond = makeGetSet('Milliseconds', false);\n\n    // FORMATTING\n\n    addFormatToken('z', 0, 0, 'zoneAbbr');\n    addFormatToken('zz', 0, 0, 'zoneName');\n\n    // MOMENTS\n\n    function getZoneAbbr() {\n        return this._isUTC ? 'UTC' : '';\n    }\n\n    function getZoneName() {\n        return this._isUTC ? 'Coordinated Universal Time' : '';\n    }\n\n    var proto = Moment.prototype;\n\n    proto.add = add;\n    proto.calendar = calendar$1;\n    proto.clone = clone;\n    proto.diff = diff;\n    proto.endOf = endOf;\n    proto.format = format;\n    proto.from = from;\n    proto.fromNow = fromNow;\n    proto.to = to;\n    proto.toNow = toNow;\n    proto.get = stringGet;\n    proto.invalidAt = invalidAt;\n    proto.isAfter = isAfter;\n    proto.isBefore = isBefore;\n    proto.isBetween = isBetween;\n    proto.isSame = isSame;\n    proto.isSameOrAfter = isSameOrAfter;\n    proto.isSameOrBefore = isSameOrBefore;\n    proto.isValid = isValid$2;\n    proto.lang = lang;\n    proto.locale = locale;\n    proto.localeData = localeData;\n    proto.max = prototypeMax;\n    proto.min = prototypeMin;\n    proto.parsingFlags = parsingFlags;\n    proto.set = stringSet;\n    proto.startOf = startOf;\n    proto.subtract = subtract;\n    proto.toArray = toArray;\n    proto.toObject = toObject;\n    proto.toDate = toDate;\n    proto.toISOString = toISOString;\n    proto.inspect = inspect;\n    if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n            return 'Moment<' + this.format() + '>';\n        };\n    }\n    proto.toJSON = toJSON;\n    proto.toString = toString;\n    proto.unix = unix;\n    proto.valueOf = valueOf;\n    proto.creationData = creationData;\n    proto.eraName = getEraName;\n    proto.eraNarrow = getEraNarrow;\n    proto.eraAbbr = getEraAbbr;\n    proto.eraYear = getEraYear;\n    proto.year = getSetYear;\n    proto.isLeapYear = getIsLeapYear;\n    proto.weekYear = getSetWeekYear;\n    proto.isoWeekYear = getSetISOWeekYear;\n    proto.quarter = proto.quarters = getSetQuarter;\n    proto.month = getSetMonth;\n    proto.daysInMonth = getDaysInMonth;\n    proto.week = proto.weeks = getSetWeek;\n    proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n    proto.weeksInYear = getWeeksInYear;\n    proto.weeksInWeekYear = getWeeksInWeekYear;\n    proto.isoWeeksInYear = getISOWeeksInYear;\n    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n    proto.date = getSetDayOfMonth;\n    proto.day = proto.days = getSetDayOfWeek;\n    proto.weekday = getSetLocaleDayOfWeek;\n    proto.isoWeekday = getSetISODayOfWeek;\n    proto.dayOfYear = getSetDayOfYear;\n    proto.hour = proto.hours = getSetHour;\n    proto.minute = proto.minutes = getSetMinute;\n    proto.second = proto.seconds = getSetSecond;\n    proto.millisecond = proto.milliseconds = getSetMillisecond;\n    proto.utcOffset = getSetOffset;\n    proto.utc = setOffsetToUTC;\n    proto.local = setOffsetToLocal;\n    proto.parseZone = setOffsetToParsedOffset;\n    proto.hasAlignedHourOffset = hasAlignedHourOffset;\n    proto.isDST = isDaylightSavingTime;\n    proto.isLocal = isLocal;\n    proto.isUtcOffset = isUtcOffset;\n    proto.isUtc = isUtc;\n    proto.isUTC = isUtc;\n    proto.zoneAbbr = getZoneAbbr;\n    proto.zoneName = getZoneName;\n    proto.dates = deprecate(\n        'dates accessor is deprecated. Use date instead.',\n        getSetDayOfMonth\n    );\n    proto.months = deprecate(\n        'months accessor is deprecated. Use month instead',\n        getSetMonth\n    );\n    proto.years = deprecate(\n        'years accessor is deprecated. Use year instead',\n        getSetYear\n    );\n    proto.zone = deprecate(\n        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n        getSetZone\n    );\n    proto.isDSTShifted = deprecate(\n        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n        isDaylightSavingTimeShifted\n    );\n\n    function createUnix(input) {\n        return createLocal(input * 1000);\n    }\n\n    function createInZone() {\n        return createLocal.apply(null, arguments).parseZone();\n    }\n\n    function preParsePostFormat(string) {\n        return string;\n    }\n\n    var proto$1 = Locale.prototype;\n\n    proto$1.calendar = calendar;\n    proto$1.longDateFormat = longDateFormat;\n    proto$1.invalidDate = invalidDate;\n    proto$1.ordinal = ordinal;\n    proto$1.preparse = preParsePostFormat;\n    proto$1.postformat = preParsePostFormat;\n    proto$1.relativeTime = relativeTime;\n    proto$1.pastFuture = pastFuture;\n    proto$1.set = set;\n    proto$1.eras = localeEras;\n    proto$1.erasParse = localeErasParse;\n    proto$1.erasConvertYear = localeErasConvertYear;\n    proto$1.erasAbbrRegex = erasAbbrRegex;\n    proto$1.erasNameRegex = erasNameRegex;\n    proto$1.erasNarrowRegex = erasNarrowRegex;\n\n    proto$1.months = localeMonths;\n    proto$1.monthsShort = localeMonthsShort;\n    proto$1.monthsParse = localeMonthsParse;\n    proto$1.monthsRegex = monthsRegex;\n    proto$1.monthsShortRegex = monthsShortRegex;\n    proto$1.week = localeWeek;\n    proto$1.firstDayOfYear = localeFirstDayOfYear;\n    proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n    proto$1.weekdays = localeWeekdays;\n    proto$1.weekdaysMin = localeWeekdaysMin;\n    proto$1.weekdaysShort = localeWeekdaysShort;\n    proto$1.weekdaysParse = localeWeekdaysParse;\n\n    proto$1.weekdaysRegex = weekdaysRegex;\n    proto$1.weekdaysShortRegex = weekdaysShortRegex;\n    proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n    proto$1.isPM = localeIsPM;\n    proto$1.meridiem = localeMeridiem;\n\n    function get$1(format, index, field, setter) {\n        var locale = getLocale(),\n            utc = createUTC().set(setter, index);\n        return locale[field](utc, format);\n    }\n\n    function listMonthsImpl(format, index, field) {\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n\n        if (index != null) {\n            return get$1(format, index, field, 'month');\n        }\n\n        var i,\n            out = [];\n        for (i = 0; i < 12; i++) {\n            out[i] = get$1(format, i, field, 'month');\n        }\n        return out;\n    }\n\n    // ()\n    // (5)\n    // (fmt, 5)\n    // (fmt)\n    // (true)\n    // (true, 5)\n    // (true, fmt, 5)\n    // (true, fmt)\n    function listWeekdaysImpl(localeSorted, format, index, field) {\n        if (typeof localeSorted === 'boolean') {\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        } else {\n            format = localeSorted;\n            index = format;\n            localeSorted = false;\n\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        }\n\n        var locale = getLocale(),\n            shift = localeSorted ? locale._week.dow : 0,\n            i,\n            out = [];\n\n        if (index != null) {\n            return get$1(format, (index + shift) % 7, field, 'day');\n        }\n\n        for (i = 0; i < 7; i++) {\n            out[i] = get$1(format, (i + shift) % 7, field, 'day');\n        }\n        return out;\n    }\n\n    function listMonths(format, index) {\n        return listMonthsImpl(format, index, 'months');\n    }\n\n    function listMonthsShort(format, index) {\n        return listMonthsImpl(format, index, 'monthsShort');\n    }\n\n    function listWeekdays(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n    }\n\n    function listWeekdaysShort(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n    }\n\n    function listWeekdaysMin(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n    }\n\n    getSetGlobalLocale('en', {\n        eras: [\n            {\n                since: '0001-01-01',\n                until: +Infinity,\n                offset: 1,\n                name: 'Anno Domini',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: 'Before Christ',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    toInt((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    // Side effect imports\n\n    hooks.lang = deprecate(\n        'moment.lang is deprecated. Use moment.locale instead.',\n        getSetGlobalLocale\n    );\n    hooks.langData = deprecate(\n        'moment.langData is deprecated. Use moment.localeData instead.',\n        getLocale\n    );\n\n    var mathAbs = Math.abs;\n\n    function abs() {\n        var data = this._data;\n\n        this._milliseconds = mathAbs(this._milliseconds);\n        this._days = mathAbs(this._days);\n        this._months = mathAbs(this._months);\n\n        data.milliseconds = mathAbs(data.milliseconds);\n        data.seconds = mathAbs(data.seconds);\n        data.minutes = mathAbs(data.minutes);\n        data.hours = mathAbs(data.hours);\n        data.months = mathAbs(data.months);\n        data.years = mathAbs(data.years);\n\n        return this;\n    }\n\n    function addSubtract$1(duration, input, value, direction) {\n        var other = createDuration(input, value);\n\n        duration._milliseconds += direction * other._milliseconds;\n        duration._days += direction * other._days;\n        duration._months += direction * other._months;\n\n        return duration._bubble();\n    }\n\n    // supports only 2.0-style add(1, 's') or add(duration)\n    function add$1(input, value) {\n        return addSubtract$1(this, input, value, 1);\n    }\n\n    // supports only 2.0-style subtract(1, 's') or subtract(duration)\n    function subtract$1(input, value) {\n        return addSubtract$1(this, input, value, -1);\n    }\n\n    function absCeil(number) {\n        if (number < 0) {\n            return Math.floor(number);\n        } else {\n            return Math.ceil(number);\n        }\n    }\n\n    function bubble() {\n        var milliseconds = this._milliseconds,\n            days = this._days,\n            months = this._months,\n            data = this._data,\n            seconds,\n            minutes,\n            hours,\n            years,\n            monthsFromDays;\n\n        // if we have a mix of positive and negative values, bubble down first\n        // check: https://github.com/moment/moment/issues/2166\n        if (\n            !(\n                (milliseconds >= 0 && days >= 0 && months >= 0) ||\n                (milliseconds <= 0 && days <= 0 && months <= 0)\n            )\n        ) {\n            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n            days = 0;\n            months = 0;\n        }\n\n        // The following code bubbles up values, see the tests for\n        // examples of what that means.\n        data.milliseconds = milliseconds % 1000;\n\n        seconds = absFloor(milliseconds / 1000);\n        data.seconds = seconds % 60;\n\n        minutes = absFloor(seconds / 60);\n        data.minutes = minutes % 60;\n\n        hours = absFloor(minutes / 60);\n        data.hours = hours % 24;\n\n        days += absFloor(hours / 24);\n\n        // convert days to months\n        monthsFromDays = absFloor(daysToMonths(days));\n        months += monthsFromDays;\n        days -= absCeil(monthsToDays(monthsFromDays));\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        data.days = days;\n        data.months = months;\n        data.years = years;\n\n        return this;\n    }\n\n    function daysToMonths(days) {\n        // 400 years have 146097 days (taking into account leap year rules)\n        // 400 years have 12 months === 4800\n        return (days * 4800) / 146097;\n    }\n\n    function monthsToDays(months) {\n        // the reverse of daysToMonths\n        return (months * 146097) / 4800;\n    }\n\n    function as(units) {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        var days,\n            months,\n            milliseconds = this._milliseconds;\n\n        units = normalizeUnits(units);\n\n        if (units === 'month' || units === 'quarter' || units === 'year') {\n            days = this._days + milliseconds / 864e5;\n            months = this._months + daysToMonths(days);\n            switch (units) {\n                case 'month':\n                    return months;\n                case 'quarter':\n                    return months / 3;\n                case 'year':\n                    return months / 12;\n            }\n        } else {\n            // handle milliseconds separately because of floating point math errors (issue #1867)\n            days = this._days + Math.round(monthsToDays(this._months));\n            switch (units) {\n                case 'week':\n                    return days / 7 + milliseconds / 6048e5;\n                case 'day':\n                    return days + milliseconds / 864e5;\n                case 'hour':\n                    return days * 24 + milliseconds / 36e5;\n                case 'minute':\n                    return days * 1440 + milliseconds / 6e4;\n                case 'second':\n                    return days * 86400 + milliseconds / 1000;\n                // Math.floor prevents floating point math errors here\n                case 'millisecond':\n                    return Math.floor(days * 864e5) + milliseconds;\n                default:\n                    throw new Error('Unknown unit ' + units);\n            }\n        }\n    }\n\n    // TODO: Use this.as('ms')?\n    function valueOf$1() {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        return (\n            this._milliseconds +\n            this._days * 864e5 +\n            (this._months % 12) * 2592e6 +\n            toInt(this._months / 12) * 31536e6\n        );\n    }\n\n    function makeAs(alias) {\n        return function () {\n            return this.as(alias);\n        };\n    }\n\n    var asMilliseconds = makeAs('ms'),\n        asSeconds = makeAs('s'),\n        asMinutes = makeAs('m'),\n        asHours = makeAs('h'),\n        asDays = makeAs('d'),\n        asWeeks = makeAs('w'),\n        asMonths = makeAs('M'),\n        asQuarters = makeAs('Q'),\n        asYears = makeAs('y');\n\n    function clone$1() {\n        return createDuration(this);\n    }\n\n    function get$2(units) {\n        units = normalizeUnits(units);\n        return this.isValid() ? this[units + 's']() : NaN;\n    }\n\n    function makeGetter(name) {\n        return function () {\n            return this.isValid() ? this._data[name] : NaN;\n        };\n    }\n\n    var milliseconds = makeGetter('milliseconds'),\n        seconds = makeGetter('seconds'),\n        minutes = makeGetter('minutes'),\n        hours = makeGetter('hours'),\n        days = makeGetter('days'),\n        months = makeGetter('months'),\n        years = makeGetter('years');\n\n    function weeks() {\n        return absFloor(this.days() / 7);\n    }\n\n    var round = Math.round,\n        thresholds = {\n            ss: 44, // a few seconds to seconds\n            s: 45, // seconds to minute\n            m: 45, // minutes to hour\n            h: 22, // hours to day\n            d: 26, // days to month/week\n            w: null, // weeks to month\n            M: 11, // months to year\n        };\n\n    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n    }\n\n    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n        var duration = createDuration(posNegDuration).abs(),\n            seconds = round(duration.as('s')),\n            minutes = round(duration.as('m')),\n            hours = round(duration.as('h')),\n            days = round(duration.as('d')),\n            months = round(duration.as('M')),\n            weeks = round(duration.as('w')),\n            years = round(duration.as('y')),\n            a =\n                (seconds <= thresholds.ss && ['s', seconds]) ||\n                (seconds < thresholds.s && ['ss', seconds]) ||\n                (minutes <= 1 && ['m']) ||\n                (minutes < thresholds.m && ['mm', minutes]) ||\n                (hours <= 1 && ['h']) ||\n                (hours < thresholds.h && ['hh', hours]) ||\n                (days <= 1 && ['d']) ||\n                (days < thresholds.d && ['dd', days]);\n\n        if (thresholds.w != null) {\n            a =\n                a ||\n                (weeks <= 1 && ['w']) ||\n                (weeks < thresholds.w && ['ww', weeks]);\n        }\n        a = a ||\n            (months <= 1 && ['M']) ||\n            (months < thresholds.M && ['MM', months]) ||\n            (years <= 1 && ['y']) || ['yy', years];\n\n        a[2] = withoutSuffix;\n        a[3] = +posNegDuration > 0;\n        a[4] = locale;\n        return substituteTimeAgo.apply(null, a);\n    }\n\n    // This function allows you to set the rounding function for relative time strings\n    function getSetRelativeTimeRounding(roundingFunction) {\n        if (roundingFunction === undefined) {\n            return round;\n        }\n        if (typeof roundingFunction === 'function') {\n            round = roundingFunction;\n            return true;\n        }\n        return false;\n    }\n\n    // This function allows you to set a threshold for relative time strings\n    function getSetRelativeTimeThreshold(threshold, limit) {\n        if (thresholds[threshold] === undefined) {\n            return false;\n        }\n        if (limit === undefined) {\n            return thresholds[threshold];\n        }\n        thresholds[threshold] = limit;\n        if (threshold === 's') {\n            thresholds.ss = limit - 1;\n        }\n        return true;\n    }\n\n    function humanize(argWithSuffix, argThresholds) {\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var withSuffix = false,\n            th = thresholds,\n            locale,\n            output;\n\n        if (typeof argWithSuffix === 'object') {\n            argThresholds = argWithSuffix;\n            argWithSuffix = false;\n        }\n        if (typeof argWithSuffix === 'boolean') {\n            withSuffix = argWithSuffix;\n        }\n        if (typeof argThresholds === 'object') {\n            th = Object.assign({}, thresholds, argThresholds);\n            if (argThresholds.s != null && argThresholds.ss == null) {\n                th.ss = argThresholds.s - 1;\n            }\n        }\n\n        locale = this.localeData();\n        output = relativeTime$1(this, !withSuffix, th, locale);\n\n        if (withSuffix) {\n            output = locale.pastFuture(+this, output);\n        }\n\n        return locale.postformat(output);\n    }\n\n    var abs$1 = Math.abs;\n\n    function sign(x) {\n        return (x > 0) - (x < 0) || +x;\n    }\n\n    function toISOString$1() {\n        // for ISO strings we do not use the normal bubbling rules:\n        //  * milliseconds bubble up until they become hours\n        //  * days do not bubble at all\n        //  * months bubble up until they become years\n        // This is because there is no context-free conversion between hours and days\n        // (think of clock changes)\n        // and also not between days and months (28-31 days per month)\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var seconds = abs$1(this._milliseconds) / 1000,\n            days = abs$1(this._days),\n            months = abs$1(this._months),\n            minutes,\n            hours,\n            years,\n            s,\n            total = this.asSeconds(),\n            totalSign,\n            ymSign,\n            daysSign,\n            hmsSign;\n\n        if (!total) {\n            // this is the same as C#'s (Noda) and python (isodate)...\n            // but not other JS (goog.date)\n            return 'P0D';\n        }\n\n        // 3600 seconds -> 60 minutes -> 1 hour\n        minutes = absFloor(seconds / 60);\n        hours = absFloor(minutes / 60);\n        seconds %= 60;\n        minutes %= 60;\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n        s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n        totalSign = total < 0 ? '-' : '';\n        ymSign = sign(this._months) !== sign(total) ? '-' : '';\n        daysSign = sign(this._days) !== sign(total) ? '-' : '';\n        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n        return (\n            totalSign +\n            'P' +\n            (years ? ymSign + years + 'Y' : '') +\n            (months ? ymSign + months + 'M' : '') +\n            (days ? daysSign + days + 'D' : '') +\n            (hours || minutes || seconds ? 'T' : '') +\n            (hours ? hmsSign + hours + 'H' : '') +\n            (minutes ? hmsSign + minutes + 'M' : '') +\n            (seconds ? hmsSign + s + 'S' : '')\n        );\n    }\n\n    var proto$2 = Duration.prototype;\n\n    proto$2.isValid = isValid$1;\n    proto$2.abs = abs;\n    proto$2.add = add$1;\n    proto$2.subtract = subtract$1;\n    proto$2.as = as;\n    proto$2.asMilliseconds = asMilliseconds;\n    proto$2.asSeconds = asSeconds;\n    proto$2.asMinutes = asMinutes;\n    proto$2.asHours = asHours;\n    proto$2.asDays = asDays;\n    proto$2.asWeeks = asWeeks;\n    proto$2.asMonths = asMonths;\n    proto$2.asQuarters = asQuarters;\n    proto$2.asYears = asYears;\n    proto$2.valueOf = valueOf$1;\n    proto$2._bubble = bubble;\n    proto$2.clone = clone$1;\n    proto$2.get = get$2;\n    proto$2.milliseconds = milliseconds;\n    proto$2.seconds = seconds;\n    proto$2.minutes = minutes;\n    proto$2.hours = hours;\n    proto$2.days = days;\n    proto$2.weeks = weeks;\n    proto$2.months = months;\n    proto$2.years = years;\n    proto$2.humanize = humanize;\n    proto$2.toISOString = toISOString$1;\n    proto$2.toString = toISOString$1;\n    proto$2.toJSON = toISOString$1;\n    proto$2.locale = locale;\n    proto$2.localeData = localeData;\n\n    proto$2.toIsoString = deprecate(\n        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n        toISOString$1\n    );\n    proto$2.lang = lang;\n\n    // FORMATTING\n\n    addFormatToken('X', 0, 0, 'unix');\n    addFormatToken('x', 0, 0, 'valueOf');\n\n    // PARSING\n\n    addRegexToken('x', matchSigned);\n    addRegexToken('X', matchTimestamp);\n    addParseToken('X', function (input, array, config) {\n        config._d = new Date(parseFloat(input) * 1000);\n    });\n    addParseToken('x', function (input, array, config) {\n        config._d = new Date(toInt(input));\n    });\n\n    //! moment.js\n\n    hooks.version = '2.29.1';\n\n    setHookCallback(createLocal);\n\n    hooks.fn = proto;\n    hooks.min = min;\n    hooks.max = max;\n    hooks.now = now;\n    hooks.utc = createUTC;\n    hooks.unix = createUnix;\n    hooks.months = listMonths;\n    hooks.isDate = isDate;\n    hooks.locale = getSetGlobalLocale;\n    hooks.invalid = createInvalid;\n    hooks.duration = createDuration;\n    hooks.isMoment = isMoment;\n    hooks.weekdays = listWeekdays;\n    hooks.parseZone = createInZone;\n    hooks.localeData = getLocale;\n    hooks.isDuration = isDuration;\n    hooks.monthsShort = listMonthsShort;\n    hooks.weekdaysMin = listWeekdaysMin;\n    hooks.defineLocale = defineLocale;\n    hooks.updateLocale = updateLocale;\n    hooks.locales = listLocales;\n    hooks.weekdaysShort = listWeekdaysShort;\n    hooks.normalizeUnits = normalizeUnits;\n    hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n    hooks.calendarFormat = getCalendarFormat;\n    hooks.prototype = proto;\n\n    // currently HTML5 input type only supports 24-hour formats\n    hooks.HTML5_FMT = {\n        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n        DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n        TIME: 'HH:mm', // <input type=\"time\" />\n        TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n        TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n        WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n        MONTH: 'YYYY-MM', // <input type=\"month\" />\n    };\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('af', {\n        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n        meridiemParse: /vm|nm/i,\n        isPM: function (input) {\n            return /^nm$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'vm' : 'VM';\n            } else {\n                return isLower ? 'nm' : 'NM';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Vandag om] LT',\n            nextDay: '[Môre om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[Gister om] LT',\n            lastWeek: '[Laas] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oor %s',\n            past: '%s gelede',\n            s: \"'n paar sekondes\",\n            ss: '%d sekondes',\n            m: \"'n minuut\",\n            mm: '%d minute',\n            h: \"'n uur\",\n            hh: '%d ure',\n            d: \"'n dag\",\n            dd: '%d dae',\n            M: \"'n maand\",\n            MM: '%d maande',\n            y: \"'n jaar\",\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            ); // Thanks to Joris Röling : https://github.com/jjupiter\n        },\n        week: {\n            dow: 1, // Maandag is die eerste dag van die week.\n            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months$1 = [\n            'جانفي',\n            'فيفري',\n            'مارس',\n            'أفريل',\n            'ماي',\n            'جوان',\n            'جويلية',\n            'أوت',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    hooks.defineLocale('ar-dz', {\n        months: months$1,\n        monthsShort: months$1,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ar-kw', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '1',\n            2: '2',\n            3: '3',\n            4: '4',\n            5: '5',\n            6: '6',\n            7: '7',\n            8: '8',\n            9: '9',\n            0: '0',\n        },\n        pluralForm$1 = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals$1 = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize$1 = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm$1(number),\n                    str = plurals$1[u][pluralForm$1(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months$2 = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    hooks.defineLocale('ar-ly', {\n        months: months$2,\n        monthsShort: months$2,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize$1('s'),\n            ss: pluralize$1('s'),\n            m: pluralize$1('m'),\n            mm: pluralize$1('m'),\n            h: pluralize$1('h'),\n            hh: pluralize$1('h'),\n            d: pluralize$1('d'),\n            dd: pluralize$1('d'),\n            M: pluralize$1('M'),\n            MM: pluralize$1('M'),\n            y: pluralize$1('y'),\n            yy: pluralize$1('y'),\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ar-ma', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$1 = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        };\n\n    hooks.defineLocale('ar-sa', {\n        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$1[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ar-tn', {\n        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$2 = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap$1 = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        pluralForm$2 = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                ? 1\n                : n === 2\n                ? 2\n                : n % 100 >= 3 && n % 100 <= 10\n                ? 3\n                : n % 100 >= 11\n                ? 4\n                : 5;\n        },\n        plurals$2 = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize$2 = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm$2(number),\n                    str = plurals$2[u][pluralForm$2(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months$3 = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    hooks.defineLocale('ar', {\n        months: months$3,\n        monthsShort: months$3,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize$2('s'),\n            ss: pluralize$2('s'),\n            m: pluralize$2('m'),\n            mm: pluralize$2('m'),\n            h: pluralize$2('h'),\n            hh: pluralize$2('h'),\n            d: pluralize$2('d'),\n            dd: pluralize$2('d'),\n            M: pluralize$2('M'),\n            MM: pluralize$2('M'),\n            y: pluralize$2('y'),\n            yy: pluralize$2('y'),\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap$1[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$2[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: '-inci',\n        5: '-inci',\n        8: '-inci',\n        70: '-inci',\n        80: '-inci',\n        2: '-nci',\n        7: '-nci',\n        20: '-nci',\n        50: '-nci',\n        3: '-üncü',\n        4: '-üncü',\n        100: '-üncü',\n        6: '-ncı',\n        9: '-uncu',\n        10: '-uncu',\n        30: '-uncu',\n        60: '-ıncı',\n        90: '-ıncı',\n    };\n\n    hooks.defineLocale('az', {\n        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n        weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n            '_'\n        ),\n        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[sabah saat] LT',\n            nextWeek: '[gələn həftə] dddd [saat] LT',\n            lastDay: '[dünən] LT',\n            lastWeek: '[keçən həftə] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s əvvəl',\n            s: 'bir neçə saniyə',\n            ss: '%d saniyə',\n            m: 'bir dəqiqə',\n            mm: '%d dəqiqə',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir il',\n            yy: '%d il',\n        },\n        meridiemParse: /gecə|səhər|gündüz|axşam/,\n        isPM: function (input) {\n            return /^(gündüz|axşam)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'gecə';\n            } else if (hour < 12) {\n                return 'səhər';\n            } else if (hour < 17) {\n                return 'gündüz';\n            } else {\n                return 'axşam';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n        ordinal: function (number) {\n            if (number === 0) {\n                // special case for zero\n                return number + '-ıncı';\n            }\n            var a = number % 10,\n                b = (number % 100) - a,\n                c = number >= 100 ? 100 : null;\n            return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n            dd: 'дзень_дні_дзён',\n            MM: 'месяц_месяцы_месяцаў',\n            yy: 'год_гады_гадоў',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвіліна' : 'хвіліну';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'гадзіна' : 'гадзіну';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n\n    hooks.defineLocale('be', {\n        months: {\n            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n                '_'\n            ),\n            standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n            '_'\n        ),\n        weekdays: {\n            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n                '_'\n            ),\n            standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n        },\n        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n        },\n        calendar: {\n            sameDay: '[Сёння ў] LT',\n            nextDay: '[Заўтра ў] LT',\n            lastDay: '[Учора ў] LT',\n            nextWeek: function () {\n                return '[У] dddd [ў] LT';\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[У мінулую] dddd [ў] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[У мінулы] dddd [ў] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'праз %s',\n            past: '%s таму',\n            s: 'некалькі секунд',\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithPlural,\n            hh: relativeTimeWithPlural,\n            d: 'дзень',\n            dd: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночы|раніцы|дня|вечара/,\n        isPM: function (input) {\n            return /^(дня|вечара)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночы';\n            } else if (hour < 12) {\n                return 'раніцы';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечара';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return (number % 10 === 2 || number % 10 === 3) &&\n                        number % 100 !== 12 &&\n                        number % 100 !== 13\n                        ? number + '-і'\n                        : number + '-ы';\n                case 'D':\n                    return number + '-га';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('bg', {\n        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Днес в] LT',\n            nextDay: '[Утре в] LT',\n            nextWeek: 'dddd [в] LT',\n            lastDay: '[Вчера в] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Миналата] dddd [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Миналия] dddd [в] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'след %s',\n            past: 'преди %s',\n            s: 'няколко секунди',\n            ss: '%d секунди',\n            m: 'минута',\n            mm: '%d минути',\n            h: 'час',\n            hh: '%d часа',\n            d: 'ден',\n            dd: '%d дена',\n            w: 'седмица',\n            ww: '%d седмици',\n            M: 'месец',\n            MM: '%d месеца',\n            y: 'година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('bm', {\n        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n            '_'\n        ),\n        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'MMMM [tile] D [san] YYYY',\n            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bi lɛrɛ] LT',\n            nextDay: '[Sini lɛrɛ] LT',\n            nextWeek: 'dddd [don lɛrɛ] LT',\n            lastDay: '[Kunu lɛrɛ] LT',\n            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s kɔnɔ',\n            past: 'a bɛ %s bɔ',\n            s: 'sanga dama dama',\n            ss: 'sekondi %d',\n            m: 'miniti kelen',\n            mm: 'miniti %d',\n            h: 'lɛrɛ kelen',\n            hh: 'lɛrɛ %d',\n            d: 'tile kelen',\n            dd: 'tile %d',\n            M: 'kalo kelen',\n            MM: 'kalo %d',\n            y: 'san kelen',\n            yy: 'san %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$3 = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap$2 = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    hooks.defineLocale('bn-bd', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap$2[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$3[match];\n            });\n        },\n\n        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'রাত') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ভোর') {\n                return hour;\n            } else if (meridiem === 'সকাল') {\n                return hour;\n            } else if (meridiem === 'দুপুর') {\n                return hour >= 3 ? hour : hour + 12;\n            } else if (meridiem === 'বিকাল') {\n                return hour + 12;\n            } else if (meridiem === 'সন্ধ্যা') {\n                return hour + 12;\n            }\n        },\n\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 6) {\n                return 'ভোর';\n            } else if (hour < 12) {\n                return 'সকাল';\n            } else if (hour < 15) {\n                return 'দুপুর';\n            } else if (hour < 18) {\n                return 'বিকাল';\n            } else if (hour < 20) {\n                return 'সন্ধ্যা';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$4 = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap$3 = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    hooks.defineLocale('bn', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n            '_'\n        ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap$3[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$4[match];\n            });\n        },\n        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'রাত' && hour >= 4) ||\n                (meridiem === 'দুপুর' && hour < 5) ||\n                meridiem === 'বিকাল'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 10) {\n                return 'সকাল';\n            } else if (hour < 17) {\n                return 'দুপুর';\n            } else if (hour < 20) {\n                return 'বিকাল';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$5 = {\n            1: '༡',\n            2: '༢',\n            3: '༣',\n            4: '༤',\n            5: '༥',\n            6: '༦',\n            7: '༧',\n            8: '༨',\n            9: '༩',\n            0: '༠',\n        },\n        numberMap$4 = {\n            '༡': '1',\n            '༢': '2',\n            '༣': '3',\n            '༤': '4',\n            '༥': '5',\n            '༦': '6',\n            '༧': '7',\n            '༨': '8',\n            '༩': '9',\n            '༠': '0',\n        };\n\n    hooks.defineLocale('bo', {\n        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n            '_'\n        ),\n        monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n            '_'\n        ),\n        monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n        monthsParseExact: true,\n        weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[དི་རིང] LT',\n            nextDay: '[སང་ཉིན] LT',\n            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n            lastDay: '[ཁ་སང] LT',\n            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ལ་',\n            past: '%s སྔན་ལ',\n            s: 'ལམ་སང',\n            ss: '%d སྐར་ཆ།',\n            m: 'སྐར་མ་གཅིག',\n            mm: '%d སྐར་མ',\n            h: 'ཆུ་ཚོད་གཅིག',\n            hh: '%d ཆུ་ཚོད',\n            d: 'ཉིན་གཅིག',\n            dd: '%d ཉིན་',\n            M: 'ཟླ་བ་གཅིག',\n            MM: '%d ཟླ་བ',\n            y: 'ལོ་གཅིག',\n            yy: '%d ལོ',\n        },\n        preparse: function (string) {\n            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n                return numberMap$4[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$5[match];\n            });\n        },\n        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'མཚན་མོ' && hour >= 4) ||\n                (meridiem === 'ཉིན་གུང' && hour < 5) ||\n                meridiem === 'དགོང་དག'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'མཚན་མོ';\n            } else if (hour < 10) {\n                return 'ཞོགས་ཀས';\n            } else if (hour < 17) {\n                return 'ཉིན་གུང';\n            } else if (hour < 20) {\n                return 'དགོང་དག';\n            } else {\n                return 'མཚན་མོ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithMutation(number, withoutSuffix, key) {\n        var format = {\n            mm: 'munutenn',\n            MM: 'miz',\n            dd: 'devezh',\n        };\n        return number + ' ' + mutation(format[key], number);\n    }\n    function specialMutationForYears(number) {\n        switch (lastNumber(number)) {\n            case 1:\n            case 3:\n            case 4:\n            case 5:\n            case 9:\n                return number + ' bloaz';\n            default:\n                return number + ' vloaz';\n        }\n    }\n    function lastNumber(number) {\n        if (number > 9) {\n            return lastNumber(number % 10);\n        }\n        return number;\n    }\n    function mutation(text, number) {\n        if (number === 2) {\n            return softMutation(text);\n        }\n        return text;\n    }\n    function softMutation(text) {\n        var mutationTable = {\n            m: 'v',\n            b: 'v',\n            d: 'z',\n        };\n        if (mutationTable[text.charAt(0)] === undefined) {\n            return text;\n        }\n        return mutationTable[text.charAt(0)] + text.substring(1);\n    }\n\n    var monthsParse = [\n            /^gen/i,\n            /^c[ʼ\\']hwe/i,\n            /^meu/i,\n            /^ebr/i,\n            /^mae/i,\n            /^(mez|eve)/i,\n            /^gou/i,\n            /^eos/i,\n            /^gwe/i,\n            /^her/i,\n            /^du/i,\n            /^ker/i,\n        ],\n        monthsRegex$1 = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n        monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        fullWeekdaysParse = [\n            /^sul/i,\n            /^lun/i,\n            /^meurzh/i,\n            /^merc[ʼ\\']her/i,\n            /^yaou/i,\n            /^gwener/i,\n            /^sadorn/i,\n        ],\n        shortWeekdaysParse = [\n            /^Sul/i,\n            /^Lun/i,\n            /^Meu/i,\n            /^Mer/i,\n            /^Yao/i,\n            /^Gwe/i,\n            /^Sad/i,\n        ],\n        minWeekdaysParse = [\n            /^Su/i,\n            /^Lu/i,\n            /^Me([^r]|$)/i,\n            /^Mer/i,\n            /^Ya/i,\n            /^Gw/i,\n            /^Sa/i,\n        ];\n\n    hooks.defineLocale('br', {\n        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n            '_'\n        ),\n        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n        weekdaysParse: minWeekdaysParse,\n        fullWeekdaysParse: fullWeekdaysParse,\n        shortWeekdaysParse: shortWeekdaysParse,\n        minWeekdaysParse: minWeekdaysParse,\n\n        monthsRegex: monthsRegex$1,\n        monthsShortRegex: monthsRegex$1,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [a viz] MMMM YYYY',\n            LLL: 'D [a viz] MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hiziv da] LT',\n            nextDay: '[Warcʼhoazh da] LT',\n            nextWeek: 'dddd [da] LT',\n            lastDay: '[Decʼh da] LT',\n            lastWeek: 'dddd [paset da] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'a-benn %s',\n            past: '%s ʼzo',\n            s: 'un nebeud segondennoù',\n            ss: '%d eilenn',\n            m: 'ur vunutenn',\n            mm: relativeTimeWithMutation,\n            h: 'un eur',\n            hh: '%d eur',\n            d: 'un devezh',\n            dd: relativeTimeWithMutation,\n            M: 'ur miz',\n            MM: relativeTimeWithMutation,\n            y: 'ur bloaz',\n            yy: specialMutationForYears,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'añ' : 'vet';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n        isPM: function (token) {\n            return token === 'g.m.';\n        },\n        meridiem: function (hour, minute, isLower) {\n            return hour < 12 ? 'a.m.' : 'g.m.';\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    hooks.defineLocale('bs', {\n        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                        return '[prošlu] dddd [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ca', {\n        months: {\n            standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n                '_'\n            ),\n            format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a les] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextDay: function () {\n                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastDay: function () {\n                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [passat a ' +\n                    (this.hours() !== 1 ? 'les' : 'la') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'uns segons',\n            ss: '%d segons',\n            m: 'un minut',\n            mm: '%d minuts',\n            h: 'una hora',\n            hh: '%d hores',\n            d: 'un dia',\n            dd: '%d dies',\n            M: 'un mes',\n            MM: '%d mesos',\n            y: 'un any',\n            yy: '%d anys',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$4 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n            '_'\n        ),\n        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n        monthsParse$1 = [\n            /^led/i,\n            /^úno/i,\n            /^bře/i,\n            /^dub/i,\n            /^kvě/i,\n            /^(čvn|červen$|června)/i,\n            /^(čvc|červenec|července)/i,\n            /^srp/i,\n            /^zář/i,\n            /^říj/i,\n            /^lis/i,\n            /^pro/i,\n        ],\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsRegex$2 = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n    function plural$1(n) {\n        return n > 1 && n < 5 && ~~(n / 10) !== 1;\n    }\n    function translate$1(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'sekundy' : 'sekund');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'minuty' : 'minut');\n                } else {\n                    return result + 'minutami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'hodiny' : 'hodin');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'den' : 'dnem';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'dny' : 'dní');\n                } else {\n                    return result + 'dny';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'měsíce' : 'měsíců');\n                } else {\n                    return result + 'měsíci';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokem';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$1(number) ? 'roky' : 'let');\n                } else {\n                    return result + 'lety';\n                }\n        }\n    }\n\n    hooks.defineLocale('cs', {\n        months: months$4,\n        monthsShort: monthsShort,\n        monthsRegex: monthsRegex$2,\n        monthsShortRegex: monthsRegex$2,\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n        monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n        monthsParse: monthsParse$1,\n        longMonthsParse: monthsParse$1,\n        shortMonthsParse: monthsParse$1,\n        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n            l: 'D. M. YYYY',\n        },\n        calendar: {\n            sameDay: '[dnes v] LT',\n            nextDay: '[zítra v] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [v] LT';\n                    case 3:\n                        return '[ve středu v] LT';\n                    case 4:\n                        return '[ve čtvrtek v] LT';\n                    case 5:\n                        return '[v pátek v] LT';\n                    case 6:\n                        return '[v sobotu v] LT';\n                }\n            },\n            lastDay: '[včera v] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulou neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[minulé] dddd [v] LT';\n                    case 3:\n                        return '[minulou středu v] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [v] LT';\n                    case 6:\n                        return '[minulou sobotu v] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'před %s',\n            s: translate$1,\n            ss: translate$1,\n            m: translate$1,\n            mm: translate$1,\n            h: translate$1,\n            hh: translate$1,\n            d: translate$1,\n            dd: translate$1,\n            M: translate$1,\n            MM: translate$1,\n            y: translate$1,\n            yy: translate$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('cv', {\n        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n            '_'\n        ),\n        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n        weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n            '_'\n        ),\n        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n        },\n        calendar: {\n            sameDay: '[Паян] LT [сехетре]',\n            nextDay: '[Ыран] LT [сехетре]',\n            lastDay: '[Ӗнер] LT [сехетре]',\n            nextWeek: '[Ҫитес] dddd LT [сехетре]',\n            lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (output) {\n                var affix = /сехет$/i.exec(output)\n                    ? 'рен'\n                    : /ҫул$/i.exec(output)\n                    ? 'тан'\n                    : 'ран';\n                return output + affix;\n            },\n            past: '%s каялла',\n            s: 'пӗр-ик ҫеккунт',\n            ss: '%d ҫеккунт',\n            m: 'пӗр минут',\n            mm: '%d минут',\n            h: 'пӗр сехет',\n            hh: '%d сехет',\n            d: 'пӗр кун',\n            dd: '%d кун',\n            M: 'пӗр уйӑх',\n            MM: '%d уйӑх',\n            y: 'пӗр ҫул',\n            yy: '%d ҫул',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n        ordinal: '%d-мӗш',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('cy', {\n        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n            '_'\n        ),\n        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n            '_'\n        ),\n        weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n        weekdaysParseExact: true,\n        // time formats are the same as en-gb\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Heddiw am] LT',\n            nextDay: '[Yfory am] LT',\n            nextWeek: 'dddd [am] LT',\n            lastDay: '[Ddoe am] LT',\n            lastWeek: 'dddd [diwethaf am] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'mewn %s',\n            past: '%s yn ôl',\n            s: 'ychydig eiliadau',\n            ss: '%d eiliad',\n            m: 'munud',\n            mm: '%d munud',\n            h: 'awr',\n            hh: '%d awr',\n            d: 'diwrnod',\n            dd: '%d diwrnod',\n            M: 'mis',\n            MM: '%d mis',\n            y: 'blwyddyn',\n            yy: '%d flynedd',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n        ordinal: function (number) {\n            var b = number,\n                output = '',\n                lookup = [\n                    '',\n                    'af',\n                    'il',\n                    'ydd',\n                    'ydd',\n                    'ed',\n                    'ed',\n                    'ed',\n                    'fed',\n                    'fed',\n                    'fed', // 1af to 10fed\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'fed', // 11eg to 20fed\n                ];\n            if (b > 20) {\n                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n                    output = 'fed'; // not 30ain, 70ain or 90ain\n                } else {\n                    output = 'ain';\n                }\n            } else if (b > 0) {\n                output = lookup[b];\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('da', {\n        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'på dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[i] dddd[s kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'få sekunder',\n            ss: '%d sekunder',\n            m: 'et minut',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dage',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'et år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('de-at', {\n        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('de-ch', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime$1,\n            mm: '%d Minuten',\n            h: processRelativeTime$1,\n            hh: '%d Stunden',\n            d: processRelativeTime$1,\n            dd: processRelativeTime$1,\n            w: processRelativeTime$1,\n            ww: '%d Wochen',\n            M: processRelativeTime$1,\n            MM: processRelativeTime$1,\n            y: processRelativeTime$1,\n            yy: processRelativeTime$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('de', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime$2,\n            mm: '%d Minuten',\n            h: processRelativeTime$2,\n            hh: '%d Stunden',\n            d: processRelativeTime$2,\n            dd: processRelativeTime$2,\n            w: processRelativeTime$2,\n            ww: '%d Wochen',\n            M: processRelativeTime$2,\n            MM: processRelativeTime$2,\n            y: processRelativeTime$2,\n            yy: processRelativeTime$2,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$5 = [\n            'ޖެނުއަރީ',\n            'ފެބްރުއަރީ',\n            'މާރިޗު',\n            'އޭޕްރީލު',\n            'މޭ',\n            'ޖޫން',\n            'ޖުލައި',\n            'އޯގަސްޓު',\n            'ސެޕްޓެމްބަރު',\n            'އޮކްޓޯބަރު',\n            'ނޮވެމްބަރު',\n            'ޑިސެމްބަރު',\n        ],\n        weekdays = [\n            'އާދިއްތަ',\n            'ހޯމަ',\n            'އަންގާރަ',\n            'ބުދަ',\n            'ބުރާސްފަތި',\n            'ހުކުރު',\n            'ހޮނިހިރު',\n        ];\n\n    hooks.defineLocale('dv', {\n        months: months$5,\n        monthsShort: months$5,\n        weekdays: weekdays,\n        weekdaysShort: weekdays,\n        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/M/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /މކ|މފ/,\n        isPM: function (input) {\n            return 'މފ' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'މކ';\n            } else {\n                return 'މފ';\n            }\n        },\n        calendar: {\n            sameDay: '[މިއަދު] LT',\n            nextDay: '[މާދަމާ] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[އިއްޔެ] LT',\n            lastWeek: '[ފާއިތުވި] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ތެރޭގައި %s',\n            past: 'ކުރިން %s',\n            s: 'ސިކުންތުކޮޅެއް',\n            ss: 'd% ސިކުންތު',\n            m: 'މިނިޓެއް',\n            mm: 'މިނިޓު %d',\n            h: 'ގަޑިއިރެއް',\n            hh: 'ގަޑިއިރު %d',\n            d: 'ދުވަހެއް',\n            dd: 'ދުވަސް %d',\n            M: 'މަހެއް',\n            MM: 'މަސް %d',\n            y: 'އަހަރެއް',\n            yy: 'އަހަރު %d',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 7, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function isFunction$1(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    hooks.defineLocale('el', {\n        monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n            '_'\n        ),\n        monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n            '_'\n        ),\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return this._monthsNominativeEl;\n            } else if (\n                typeof format === 'string' &&\n                /D/.test(format.substring(0, format.indexOf('MMMM')))\n            ) {\n                // if there is a day number before 'MMMM'\n                return this._monthsGenitiveEl[momentToFormat.month()];\n            } else {\n                return this._monthsNominativeEl[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n            '_'\n        ),\n        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'μμ' : 'ΜΜ';\n            } else {\n                return isLower ? 'πμ' : 'ΠΜ';\n            }\n        },\n        isPM: function (input) {\n            return (input + '').toLowerCase()[0] === 'μ';\n        },\n        meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendarEl: {\n            sameDay: '[Σήμερα {}] LT',\n            nextDay: '[Αύριο {}] LT',\n            nextWeek: 'dddd [{}] LT',\n            lastDay: '[Χθες {}] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 6:\n                        return '[το προηγούμενο] dddd [{}] LT';\n                    default:\n                        return '[την προηγούμενη] dddd [{}] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        calendar: function (key, mom) {\n            var output = this._calendarEl[key],\n                hours = mom && mom.hours();\n            if (isFunction$1(output)) {\n                output = output.apply(mom);\n            }\n            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n        },\n        relativeTime: {\n            future: 'σε %s',\n            past: '%s πριν',\n            s: 'λίγα δευτερόλεπτα',\n            ss: '%d δευτερόλεπτα',\n            m: 'ένα λεπτό',\n            mm: '%d λεπτά',\n            h: 'μία ώρα',\n            hh: '%d ώρες',\n            d: 'μία μέρα',\n            dd: '%d μέρες',\n            M: 'ένας μήνας',\n            MM: '%d μήνες',\n            y: 'ένας χρόνος',\n            yy: '%d χρόνια',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}η/,\n        ordinal: '%dη',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-au', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-ca', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'YYYY-MM-DD',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY h:mm A',\n            LLLL: 'dddd, MMMM D, YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-gb', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-ie', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-il', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-in', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-nz', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('en-sg', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('eo', {\n        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: '[la] D[-an de] MMMM, YYYY',\n            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n        },\n        meridiemParse: /[ap]\\.t\\.m/i,\n        isPM: function (input) {\n            return input.charAt(0).toLowerCase() === 'p';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'p.t.m.' : 'P.T.M.';\n            } else {\n                return isLower ? 'a.t.m.' : 'A.T.M.';\n            }\n        },\n        calendar: {\n            sameDay: '[Hodiaŭ je] LT',\n            nextDay: '[Morgaŭ je] LT',\n            nextWeek: 'dddd[n je] LT',\n            lastDay: '[Hieraŭ je] LT',\n            lastWeek: '[pasintan] dddd[n je] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'post %s',\n            past: 'antaŭ %s',\n            s: 'kelkaj sekundoj',\n            ss: '%d sekundoj',\n            m: 'unu minuto',\n            mm: '%d minutoj',\n            h: 'unu horo',\n            hh: '%d horoj',\n            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n            dd: '%d tagoj',\n            M: 'unu monato',\n            MM: '%d monatoj',\n            y: 'unu jaro',\n            yy: '%d jaroj',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}a/,\n        ordinal: '%da',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$2 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    hooks.defineLocale('es-do', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$1[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$3,\n        monthsShortRegex: monthsRegex$3,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$2,\n        longMonthsParse: monthsParse$2,\n        shortMonthsParse: monthsParse$2,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$3 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    hooks.defineLocale('es-mx', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$1;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$2[m.month()];\n            } else {\n                return monthsShortDot$1[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$4,\n        monthsShortRegex: monthsRegex$4,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$3,\n        longMonthsParse: monthsParse$3,\n        shortMonthsParse: monthsParse$3,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$4 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    hooks.defineLocale('es-us', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$2;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$3[m.month()];\n            } else {\n                return monthsShortDot$2[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$5,\n        monthsShortRegex: monthsRegex$5,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$4,\n        longMonthsParse: monthsParse$4,\n        shortMonthsParse: monthsParse$4,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'MM/DD/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n            '_'\n        ),\n        monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse$5 = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex$6 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    hooks.defineLocale('es', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot$3;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort$4[m.month()];\n            } else {\n                return monthsShortDot$3[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex$6,\n        monthsShortRegex: monthsRegex$6,\n        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse$5,\n        longMonthsParse: monthsParse$5,\n        shortMonthsParse: monthsParse$5,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$3(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n            ss: [number + 'sekundi', number + 'sekundit'],\n            m: ['ühe minuti', 'üks minut'],\n            mm: [number + ' minuti', number + ' minutit'],\n            h: ['ühe tunni', 'tund aega', 'üks tund'],\n            hh: [number + ' tunni', number + ' tundi'],\n            d: ['ühe päeva', 'üks päev'],\n            M: ['kuu aja', 'kuu aega', 'üks kuu'],\n            MM: [number + ' kuu', number + ' kuud'],\n            y: ['ühe aasta', 'aasta', 'üks aasta'],\n            yy: [number + ' aasta', number + ' aastat'],\n        };\n        if (withoutSuffix) {\n            return format[key][2] ? format[key][2] : format[key][1];\n        }\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('et', {\n        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n            '_'\n        ),\n        monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n            '_'\n        ),\n        weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n            '_'\n        ),\n        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Täna,] LT',\n            nextDay: '[Homme,] LT',\n            nextWeek: '[Järgmine] dddd LT',\n            lastDay: '[Eile,] LT',\n            lastWeek: '[Eelmine] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s pärast',\n            past: '%s tagasi',\n            s: processRelativeTime$3,\n            ss: processRelativeTime$3,\n            m: processRelativeTime$3,\n            mm: processRelativeTime$3,\n            h: processRelativeTime$3,\n            hh: processRelativeTime$3,\n            d: processRelativeTime$3,\n            dd: '%d päeva',\n            M: processRelativeTime$3,\n            MM: processRelativeTime$3,\n            y: processRelativeTime$3,\n            yy: processRelativeTime$3,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('eu', {\n        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n            '_'\n        ),\n        monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n            '_'\n        ),\n        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY[ko] MMMM[ren] D[a]',\n            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n            l: 'YYYY-M-D',\n            ll: 'YYYY[ko] MMM D[a]',\n            lll: 'YYYY[ko] MMM D[a] HH:mm',\n            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n        },\n        calendar: {\n            sameDay: '[gaur] LT[etan]',\n            nextDay: '[bihar] LT[etan]',\n            nextWeek: 'dddd LT[etan]',\n            lastDay: '[atzo] LT[etan]',\n            lastWeek: '[aurreko] dddd LT[etan]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s barru',\n            past: 'duela %s',\n            s: 'segundo batzuk',\n            ss: '%d segundo',\n            m: 'minutu bat',\n            mm: '%d minutu',\n            h: 'ordu bat',\n            hh: '%d ordu',\n            d: 'egun bat',\n            dd: '%d egun',\n            M: 'hilabete bat',\n            MM: '%d hilabete',\n            y: 'urte bat',\n            yy: '%d urte',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$6 = {\n            1: '۱',\n            2: '۲',\n            3: '۳',\n            4: '۴',\n            5: '۵',\n            6: '۶',\n            7: '۷',\n            8: '۸',\n            9: '۹',\n            0: '۰',\n        },\n        numberMap$5 = {\n            '۱': '1',\n            '۲': '2',\n            '۳': '3',\n            '۴': '4',\n            '۵': '5',\n            '۶': '6',\n            '۷': '7',\n            '۸': '8',\n            '۹': '9',\n            '۰': '0',\n        };\n\n    hooks.defineLocale('fa', {\n        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /قبل از ظهر|بعد از ظهر/,\n        isPM: function (input) {\n            return /بعد از ظهر/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'قبل از ظهر';\n            } else {\n                return 'بعد از ظهر';\n            }\n        },\n        calendar: {\n            sameDay: '[امروز ساعت] LT',\n            nextDay: '[فردا ساعت] LT',\n            nextWeek: 'dddd [ساعت] LT',\n            lastDay: '[دیروز ساعت] LT',\n            lastWeek: 'dddd [پیش] [ساعت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'در %s',\n            past: '%s پیش',\n            s: 'چند ثانیه',\n            ss: '%d ثانیه',\n            m: 'یک دقیقه',\n            mm: '%d دقیقه',\n            h: 'یک ساعت',\n            hh: '%d ساعت',\n            d: 'یک روز',\n            dd: '%d روز',\n            M: 'یک ماه',\n            MM: '%d ماه',\n            y: 'یک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[۰-۹]/g, function (match) {\n                    return numberMap$5[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$6[match];\n                })\n                .replace(/,/g, '،');\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}م/,\n        ordinal: '%dم',\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n            ' '\n        ),\n        numbersFuture = [\n            'nolla',\n            'yhden',\n            'kahden',\n            'kolmen',\n            'neljän',\n            'viiden',\n            'kuuden',\n            numbersPast[7],\n            numbersPast[8],\n            numbersPast[9],\n        ];\n    function translate$2(number, withoutSuffix, key, isFuture) {\n        var result = '';\n        switch (key) {\n            case 's':\n                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n            case 'ss':\n                result = isFuture ? 'sekunnin' : 'sekuntia';\n                break;\n            case 'm':\n                return isFuture ? 'minuutin' : 'minuutti';\n            case 'mm':\n                result = isFuture ? 'minuutin' : 'minuuttia';\n                break;\n            case 'h':\n                return isFuture ? 'tunnin' : 'tunti';\n            case 'hh':\n                result = isFuture ? 'tunnin' : 'tuntia';\n                break;\n            case 'd':\n                return isFuture ? 'päivän' : 'päivä';\n            case 'dd':\n                result = isFuture ? 'päivän' : 'päivää';\n                break;\n            case 'M':\n                return isFuture ? 'kuukauden' : 'kuukausi';\n            case 'MM':\n                result = isFuture ? 'kuukauden' : 'kuukautta';\n                break;\n            case 'y':\n                return isFuture ? 'vuoden' : 'vuosi';\n            case 'yy':\n                result = isFuture ? 'vuoden' : 'vuotta';\n                break;\n        }\n        result = verbalNumber(number, isFuture) + ' ' + result;\n        return result;\n    }\n    function verbalNumber(number, isFuture) {\n        return number < 10\n            ? isFuture\n                ? numbersFuture[number]\n                : numbersPast[number]\n            : number;\n    }\n\n    hooks.defineLocale('fi', {\n        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n            '_'\n        ),\n        monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n            '_'\n        ),\n        weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n            '_'\n        ),\n        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM[ta] YYYY',\n            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n            l: 'D.M.YYYY',\n            ll: 'Do MMM YYYY',\n            lll: 'Do MMM YYYY, [klo] HH.mm',\n            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n        },\n        calendar: {\n            sameDay: '[tänään] [klo] LT',\n            nextDay: '[huomenna] [klo] LT',\n            nextWeek: 'dddd [klo] LT',\n            lastDay: '[eilen] [klo] LT',\n            lastWeek: '[viime] dddd[na] [klo] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s päästä',\n            past: '%s sitten',\n            s: translate$2,\n            ss: translate$2,\n            m: translate$2,\n            mm: translate$2,\n            h: translate$2,\n            hh: translate$2,\n            d: translate$2,\n            dd: translate$2,\n            M: translate$2,\n            MM: translate$2,\n            y: translate$2,\n            yy: translate$2,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('fil', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('fo', {\n        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n        weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D. MMMM, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Í dag kl.] LT',\n            nextDay: '[Í morgin kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[Í gjár kl.] LT',\n            lastWeek: '[síðstu] dddd [kl] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'um %s',\n            past: '%s síðani',\n            s: 'fá sekund',\n            ss: '%d sekundir',\n            m: 'ein minuttur',\n            mm: '%d minuttir',\n            h: 'ein tími',\n            hh: '%d tímar',\n            d: 'ein dagur',\n            dd: '%d dagar',\n            M: 'ein mánaður',\n            MM: '%d mánaðir',\n            y: 'eitt ár',\n            yy: '%d ár',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('fr-ca', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('fr-ch', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsStrictRegex$1 = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsShortStrictRegex$1 = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n        monthsRegex$7 = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsParse$6 = [\n            /^janv/i,\n            /^févr/i,\n            /^mars/i,\n            /^avr/i,\n            /^mai/i,\n            /^juin/i,\n            /^juil/i,\n            /^août/i,\n            /^sept/i,\n            /^oct/i,\n            /^nov/i,\n            /^déc/i,\n        ];\n\n    hooks.defineLocale('fr', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n            '_'\n        ),\n        monthsRegex: monthsRegex$7,\n        monthsShortRegex: monthsRegex$7,\n        monthsStrictRegex: monthsStrictRegex$1,\n        monthsShortStrictRegex: monthsShortStrictRegex$1,\n        monthsParse: monthsParse$6,\n        longMonthsParse: monthsParse$6,\n        shortMonthsParse: monthsParse$6,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            w: 'une semaine',\n            ww: '%d semaines',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // TODO: Return 'e' when day of month > 1. Move this case inside\n                // block for masculine words below.\n                // See https://github.com/moment/moment/issues/3375\n                case 'D':\n                    return number + (number === 1 ? 'er' : '');\n\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n            '_'\n        );\n\n    hooks.defineLocale('fy', {\n        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n        monthsParseExact: true,\n        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n            '_'\n        ),\n        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[hjoed om] LT',\n            nextDay: '[moarn om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[juster om] LT',\n            lastWeek: '[ôfrûne] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oer %s',\n            past: '%s lyn',\n            s: 'in pear sekonden',\n            ss: '%d sekonden',\n            m: 'ien minút',\n            mm: '%d minuten',\n            h: 'ien oere',\n            hh: '%d oeren',\n            d: 'ien dei',\n            dd: '%d dagen',\n            M: 'ien moanne',\n            MM: '%d moannen',\n            y: 'ien jier',\n            yy: '%d jierren',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$6 = [\n            'Eanáir',\n            'Feabhra',\n            'Márta',\n            'Aibreán',\n            'Bealtaine',\n            'Meitheamh',\n            'Iúil',\n            'Lúnasa',\n            'Meán Fómhair',\n            'Deireadh Fómhair',\n            'Samhain',\n            'Nollaig',\n        ],\n        monthsShort$5 = [\n            'Ean',\n            'Feabh',\n            'Márt',\n            'Aib',\n            'Beal',\n            'Meith',\n            'Iúil',\n            'Lún',\n            'M.F.',\n            'D.F.',\n            'Samh',\n            'Noll',\n        ],\n        weekdays$1 = [\n            'Dé Domhnaigh',\n            'Dé Luain',\n            'Dé Máirt',\n            'Dé Céadaoin',\n            'Déardaoin',\n            'Dé hAoine',\n            'Dé Sathairn',\n        ],\n        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n    hooks.defineLocale('ga', {\n        months: months$6,\n        monthsShort: monthsShort$5,\n        monthsParseExact: true,\n        weekdays: weekdays$1,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Inniu ag] LT',\n            nextDay: '[Amárach ag] LT',\n            nextWeek: 'dddd [ag] LT',\n            lastDay: '[Inné ag] LT',\n            lastWeek: 'dddd [seo caite] [ag] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i %s',\n            past: '%s ó shin',\n            s: 'cúpla soicind',\n            ss: '%d soicind',\n            m: 'nóiméad',\n            mm: '%d nóiméad',\n            h: 'uair an chloig',\n            hh: '%d uair an chloig',\n            d: 'lá',\n            dd: '%d lá',\n            M: 'mí',\n            MM: '%d míonna',\n            y: 'bliain',\n            yy: '%d bliain',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$7 = [\n            'Am Faoilleach',\n            'An Gearran',\n            'Am Màrt',\n            'An Giblean',\n            'An Cèitean',\n            'An t-Ògmhios',\n            'An t-Iuchar',\n            'An Lùnastal',\n            'An t-Sultain',\n            'An Dàmhair',\n            'An t-Samhain',\n            'An Dùbhlachd',\n        ],\n        monthsShort$6 = [\n            'Faoi',\n            'Gear',\n            'Màrt',\n            'Gibl',\n            'Cèit',\n            'Ògmh',\n            'Iuch',\n            'Lùn',\n            'Sult',\n            'Dàmh',\n            'Samh',\n            'Dùbh',\n        ],\n        weekdays$2 = [\n            'Didòmhnaich',\n            'Diluain',\n            'Dimàirt',\n            'Diciadain',\n            'Diardaoin',\n            'Dihaoine',\n            'Disathairne',\n        ],\n        weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n        weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n    hooks.defineLocale('gd', {\n        months: months$7,\n        monthsShort: monthsShort$6,\n        monthsParseExact: true,\n        weekdays: weekdays$2,\n        weekdaysShort: weekdaysShort$1,\n        weekdaysMin: weekdaysMin$1,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[An-diugh aig] LT',\n            nextDay: '[A-màireach aig] LT',\n            nextWeek: 'dddd [aig] LT',\n            lastDay: '[An-dè aig] LT',\n            lastWeek: 'dddd [seo chaidh] [aig] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ann an %s',\n            past: 'bho chionn %s',\n            s: 'beagan diogan',\n            ss: '%d diogan',\n            m: 'mionaid',\n            mm: '%d mionaidean',\n            h: 'uair',\n            hh: '%d uairean',\n            d: 'latha',\n            dd: '%d latha',\n            M: 'mìos',\n            MM: '%d mìosan',\n            y: 'bliadhna',\n            yy: '%d bliadhna',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('gl', {\n        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n            },\n            lastDay: function () {\n                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (str) {\n                if (str.indexOf('un') === 0) {\n                    return 'n' + str;\n                }\n                return 'en ' + str;\n            },\n            past: 'hai %s',\n            s: 'uns segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'unha hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n            m: ['एका मिणटान', 'एक मिनूट'],\n            mm: [number + ' मिणटांनी', number + ' मिणटां'],\n            h: ['एका वरान', 'एक वर'],\n            hh: [number + ' वरांनी', number + ' वरां'],\n            d: ['एका दिसान', 'एक दीस'],\n            dd: [number + ' दिसांनी', number + ' दीस'],\n            M: ['एका म्हयन्यान', 'एक म्हयनो'],\n            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n            y: ['एका वर्सान', 'एक वर्स'],\n            yy: [number + ' वर्सांनी', number + ' वर्सां'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('gom-deva', {\n        months: {\n            standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n                '_'\n            ),\n            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [वाजतां]',\n            LTS: 'A h:mm:ss [वाजतां]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n        },\n        calendar: {\n            sameDay: '[आयज] LT',\n            nextDay: '[फाल्यां] LT',\n            nextWeek: '[फुडलो] dddd[,] LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[फाटलो] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s आदीं',\n            s: processRelativeTime$4,\n            ss: processRelativeTime$4,\n            m: processRelativeTime$4,\n            mm: processRelativeTime$4,\n            h: processRelativeTime$4,\n            hh: processRelativeTime$4,\n            d: processRelativeTime$4,\n            dd: processRelativeTime$4,\n            M: processRelativeTime$4,\n            MM: processRelativeTime$4,\n            y: processRelativeTime$4,\n            yy: processRelativeTime$4,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'वेर' only applies to day of the month\n                case 'D':\n                    return number + 'वेर';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राती') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सकाळीं') {\n                return hour;\n            } else if (meridiem === 'दनपारां') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'सांजे') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'राती';\n            } else if (hour < 12) {\n                return 'सकाळीं';\n            } else if (hour < 16) {\n                return 'दनपारां';\n            } else if (hour < 20) {\n                return 'सांजे';\n            } else {\n                return 'राती';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['thoddea sekondamni', 'thodde sekond'],\n            ss: [number + ' sekondamni', number + ' sekond'],\n            m: ['eka mintan', 'ek minut'],\n            mm: [number + ' mintamni', number + ' mintam'],\n            h: ['eka voran', 'ek vor'],\n            hh: [number + ' voramni', number + ' voram'],\n            d: ['eka disan', 'ek dis'],\n            dd: [number + ' disamni', number + ' dis'],\n            M: ['eka mhoinean', 'ek mhoino'],\n            MM: [number + ' mhoineamni', number + ' mhoine'],\n            y: ['eka vorsan', 'ek voros'],\n            yy: [number + ' vorsamni', number + ' vorsam'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    hooks.defineLocale('gom-latn', {\n        months: {\n            standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n                '_'\n            ),\n            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [vazta]',\n            LTS: 'A h:mm:ss [vazta]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [vazta]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n        },\n        calendar: {\n            sameDay: '[Aiz] LT',\n            nextDay: '[Faleam] LT',\n            nextWeek: '[Fuddlo] dddd[,] LT',\n            lastDay: '[Kal] LT',\n            lastWeek: '[Fattlo] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s adim',\n            s: processRelativeTime$5,\n            ss: processRelativeTime$5,\n            m: processRelativeTime$5,\n            mm: processRelativeTime$5,\n            h: processRelativeTime$5,\n            hh: processRelativeTime$5,\n            d: processRelativeTime$5,\n            dd: processRelativeTime$5,\n            M: processRelativeTime$5,\n            MM: processRelativeTime$5,\n            y: processRelativeTime$5,\n            yy: processRelativeTime$5,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'er' only applies to day of the month\n                case 'D':\n                    return number + 'er';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /rati|sokallim|donparam|sanje/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'rati') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'sokallim') {\n                return hour;\n            } else if (meridiem === 'donparam') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'sanje') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'rati';\n            } else if (hour < 12) {\n                return 'sokallim';\n            } else if (hour < 16) {\n                return 'donparam';\n            } else if (hour < 20) {\n                return 'sanje';\n            } else {\n                return 'rati';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$7 = {\n            1: '૧',\n            2: '૨',\n            3: '૩',\n            4: '૪',\n            5: '૫',\n            6: '૬',\n            7: '૭',\n            8: '૮',\n            9: '૯',\n            0: '૦',\n        },\n        numberMap$6 = {\n            '૧': '1',\n            '૨': '2',\n            '૩': '3',\n            '૪': '4',\n            '૫': '5',\n            '૬': '6',\n            '૭': '7',\n            '૮': '8',\n            '૯': '9',\n            '૦': '0',\n        };\n\n    hooks.defineLocale('gu', {\n        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n            '_'\n        ),\n        monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n            '_'\n        ),\n        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm વાગ્યે',\n            LTS: 'A h:mm:ss વાગ્યે',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n        },\n        calendar: {\n            sameDay: '[આજ] LT',\n            nextDay: '[કાલે] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ગઇકાલે] LT',\n            lastWeek: '[પાછલા] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s મા',\n            past: '%s પહેલા',\n            s: 'અમુક પળો',\n            ss: '%d સેકંડ',\n            m: 'એક મિનિટ',\n            mm: '%d મિનિટ',\n            h: 'એક કલાક',\n            hh: '%d કલાક',\n            d: 'એક દિવસ',\n            dd: '%d દિવસ',\n            M: 'એક મહિનો',\n            MM: '%d મહિનો',\n            y: 'એક વર્ષ',\n            yy: '%d વર્ષ',\n        },\n        preparse: function (string) {\n            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n                return numberMap$6[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$7[match];\n            });\n        },\n        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'રાત') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'સવાર') {\n                return hour;\n            } else if (meridiem === 'બપોર') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'સાંજ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'રાત';\n            } else if (hour < 10) {\n                return 'સવાર';\n            } else if (hour < 17) {\n                return 'બપોર';\n            } else if (hour < 20) {\n                return 'સાંજ';\n            } else {\n                return 'રાત';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('he', {\n        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n            '_'\n        ),\n        monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n            '_'\n        ),\n        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [ב]MMMM YYYY',\n            LLL: 'D [ב]MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[היום ב־]LT',\n            nextDay: '[מחר ב־]LT',\n            nextWeek: 'dddd [בשעה] LT',\n            lastDay: '[אתמול ב־]LT',\n            lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'בעוד %s',\n            past: 'לפני %s',\n            s: 'מספר שניות',\n            ss: '%d שניות',\n            m: 'דקה',\n            mm: '%d דקות',\n            h: 'שעה',\n            hh: function (number) {\n                if (number === 2) {\n                    return 'שעתיים';\n                }\n                return number + ' שעות';\n            },\n            d: 'יום',\n            dd: function (number) {\n                if (number === 2) {\n                    return 'יומיים';\n                }\n                return number + ' ימים';\n            },\n            M: 'חודש',\n            MM: function (number) {\n                if (number === 2) {\n                    return 'חודשיים';\n                }\n                return number + ' חודשים';\n            },\n            y: 'שנה',\n            yy: function (number) {\n                if (number === 2) {\n                    return 'שנתיים';\n                } else if (number % 10 === 0 && number !== 10) {\n                    return number + ' שנה';\n                }\n                return number + ' שנים';\n            },\n        },\n        meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n        isPM: function (input) {\n            return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 5) {\n                return 'לפנות בוקר';\n            } else if (hour < 10) {\n                return 'בבוקר';\n            } else if (hour < 12) {\n                return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n            } else if (hour < 18) {\n                return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n            } else {\n                return 'בערב';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$8 = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$7 = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        },\n        monthsParse$7 = [\n            /^जन/i,\n            /^फ़र|फर/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सितं|सित/i,\n            /^अक्टू/i,\n            /^नव|नवं/i,\n            /^दिसं|दिस/i,\n        ],\n        shortMonthsParse = [\n            /^जन/i,\n            /^फ़र/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सित/i,\n            /^अक्टू/i,\n            /^नव/i,\n            /^दिस/i,\n        ];\n\n    hooks.defineLocale('hi', {\n        months: {\n            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n                '_'\n            ),\n            standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n            '_'\n        ),\n        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm बजे',\n            LTS: 'A h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n        },\n\n        monthsParse: monthsParse$7,\n        longMonthsParse: monthsParse$7,\n        shortMonthsParse: shortMonthsParse,\n\n        monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n        monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[कल] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[कल] LT',\n            lastWeek: '[पिछले] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s में',\n            past: '%s पहले',\n            s: 'कुछ ही क्षण',\n            ss: '%d सेकंड',\n            m: 'एक मिनट',\n            mm: '%d मिनट',\n            h: 'एक घंटा',\n            hh: '%d घंटे',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महीने',\n            MM: '%d महीने',\n            y: 'एक वर्ष',\n            yy: '%d वर्ष',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$7[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$8[match];\n            });\n        },\n        // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n        meridiemParse: /रात|सुबह|दोपहर|शाम/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'रात') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सुबह') {\n                return hour;\n            } else if (meridiem === 'दोपहर') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'शाम') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'रात';\n            } else if (hour < 10) {\n                return 'सुबह';\n            } else if (hour < 17) {\n                return 'दोपहर';\n            } else if (hour < 20) {\n                return 'शाम';\n            } else {\n                return 'रात';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate$3(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    hooks.defineLocale('hr', {\n        months: {\n            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n                '_'\n            ),\n            standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM YYYY',\n            LLL: 'Do MMMM YYYY H:mm',\n            LLLL: 'dddd, Do MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prošlu] [nedjelju] [u] LT';\n                    case 3:\n                        return '[prošlu] [srijedu] [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate$3,\n            m: translate$3,\n            mm: translate$3,\n            h: translate$3,\n            hh: translate$3,\n            d: 'dan',\n            dd: translate$3,\n            M: 'mjesec',\n            MM: translate$3,\n            y: 'godinu',\n            yy: translate$3,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n        ' '\n    );\n    function translate$4(number, withoutSuffix, key, isFuture) {\n        var num = number;\n        switch (key) {\n            case 's':\n                return isFuture || withoutSuffix\n                    ? 'néhány másodperc'\n                    : 'néhány másodperce';\n            case 'ss':\n                return num + (isFuture || withoutSuffix)\n                    ? ' másodperc'\n                    : ' másodperce';\n            case 'm':\n                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'mm':\n                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'h':\n                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'hh':\n                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'd':\n                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'dd':\n                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'M':\n                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'MM':\n                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'y':\n                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n            case 'yy':\n                return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n        }\n        return '';\n    }\n    function week(isFuture) {\n        return (\n            (isFuture ? '' : '[múlt] ') +\n            '[' +\n            weekEndings[this.day()] +\n            '] LT[-kor]'\n        );\n    }\n\n    hooks.defineLocale('hu', {\n        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY. MMMM D.',\n            LLL: 'YYYY. MMMM D. H:mm',\n            LLLL: 'YYYY. MMMM D., dddd H:mm',\n        },\n        meridiemParse: /de|du/i,\n        isPM: function (input) {\n            return input.charAt(1).toLowerCase() === 'u';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower === true ? 'de' : 'DE';\n            } else {\n                return isLower === true ? 'du' : 'DU';\n            }\n        },\n        calendar: {\n            sameDay: '[ma] LT[-kor]',\n            nextDay: '[holnap] LT[-kor]',\n            nextWeek: function () {\n                return week.call(this, true);\n            },\n            lastDay: '[tegnap] LT[-kor]',\n            lastWeek: function () {\n                return week.call(this, false);\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s múlva',\n            past: '%s',\n            s: translate$4,\n            ss: translate$4,\n            m: translate$4,\n            mm: translate$4,\n            h: translate$4,\n            hh: translate$4,\n            d: translate$4,\n            dd: translate$4,\n            M: translate$4,\n            MM: translate$4,\n            y: translate$4,\n            yy: translate$4,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('hy-am', {\n        months: {\n            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n                '_'\n            ),\n            standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n        weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n            '_'\n        ),\n        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY թ.',\n            LLL: 'D MMMM YYYY թ., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n        },\n        calendar: {\n            sameDay: '[այսօր] LT',\n            nextDay: '[վաղը] LT',\n            lastDay: '[երեկ] LT',\n            nextWeek: function () {\n                return 'dddd [օրը ժամը] LT';\n            },\n            lastWeek: function () {\n                return '[անցած] dddd [օրը ժամը] LT';\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s հետո',\n            past: '%s առաջ',\n            s: 'մի քանի վայրկյան',\n            ss: '%d վայրկյան',\n            m: 'րոպե',\n            mm: '%d րոպե',\n            h: 'ժամ',\n            hh: '%d ժամ',\n            d: 'օր',\n            dd: '%d օր',\n            M: 'ամիս',\n            MM: '%d ամիս',\n            y: 'տարի',\n            yy: '%d տարի',\n        },\n        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n        isPM: function (input) {\n            return /^(ցերեկվա|երեկոյան)$/.test(input);\n        },\n        meridiem: function (hour) {\n            if (hour < 4) {\n                return 'գիշերվա';\n            } else if (hour < 12) {\n                return 'առավոտվա';\n            } else if (hour < 17) {\n                return 'ցերեկվա';\n            } else {\n                return 'երեկոյան';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'DDD':\n                case 'w':\n                case 'W':\n                case 'DDDo':\n                    if (number === 1) {\n                        return number + '-ին';\n                    }\n                    return number + '-րդ';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('id', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|siang|sore|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'siang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sore' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'siang';\n            } else if (hours < 19) {\n                return 'sore';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Besok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kemarin pukul] LT',\n            lastWeek: 'dddd [lalu pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lalu',\n            s: 'beberapa detik',\n            ss: '%d detik',\n            m: 'semenit',\n            mm: '%d menit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$2(n) {\n        if (n % 100 === 11) {\n            return true;\n        } else if (n % 10 === 1) {\n            return false;\n        }\n        return true;\n    }\n    function translate$5(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nokkrar sekúndur'\n                    : 'nokkrum sekúndum';\n            case 'ss':\n                if (plural$2(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n                    );\n                }\n                return result + 'sekúnda';\n            case 'm':\n                return withoutSuffix ? 'mínúta' : 'mínútu';\n            case 'mm':\n                if (plural$2(number)) {\n                    return (\n                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n                    );\n                } else if (withoutSuffix) {\n                    return result + 'mínúta';\n                }\n                return result + 'mínútu';\n            case 'hh':\n                if (plural$2(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture\n                            ? 'klukkustundir'\n                            : 'klukkustundum')\n                    );\n                }\n                return result + 'klukkustund';\n            case 'd':\n                if (withoutSuffix) {\n                    return 'dagur';\n                }\n                return isFuture ? 'dag' : 'degi';\n            case 'dd':\n                if (plural$2(number)) {\n                    if (withoutSuffix) {\n                        return result + 'dagar';\n                    }\n                    return result + (isFuture ? 'daga' : 'dögum');\n                } else if (withoutSuffix) {\n                    return result + 'dagur';\n                }\n                return result + (isFuture ? 'dag' : 'degi');\n            case 'M':\n                if (withoutSuffix) {\n                    return 'mánuður';\n                }\n                return isFuture ? 'mánuð' : 'mánuði';\n            case 'MM':\n                if (plural$2(number)) {\n                    if (withoutSuffix) {\n                        return result + 'mánuðir';\n                    }\n                    return result + (isFuture ? 'mánuði' : 'mánuðum');\n                } else if (withoutSuffix) {\n                    return result + 'mánuður';\n                }\n                return result + (isFuture ? 'mánuð' : 'mánuði');\n            case 'y':\n                return withoutSuffix || isFuture ? 'ár' : 'ári';\n            case 'yy':\n                if (plural$2(number)) {\n                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n                }\n                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n        }\n    }\n\n    hooks.defineLocale('is', {\n        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n        weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n            '_'\n        ),\n        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n        },\n        calendar: {\n            sameDay: '[í dag kl.] LT',\n            nextDay: '[á morgun kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[í gær kl.] LT',\n            lastWeek: '[síðasta] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'eftir %s',\n            past: 'fyrir %s síðan',\n            s: translate$5,\n            ss: translate$5,\n            m: translate$5,\n            mm: translate$5,\n            h: 'klukkustund',\n            hh: translate$5,\n            d: translate$5,\n            dd: translate$5,\n            M: translate$5,\n            MM: translate$5,\n            y: translate$5,\n            yy: translate$5,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('it-ch', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Oggi alle] LT',\n            nextDay: '[Domani alle] LT',\n            nextWeek: 'dddd [alle] LT',\n            lastDay: '[Ieri alle] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[la scorsa] dddd [alle] LT';\n                    default:\n                        return '[lo scorso] dddd [alle] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n            },\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('it', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return (\n                    '[Oggi a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextDay: function () {\n                return (\n                    '[Domani a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextWeek: function () {\n                return (\n                    'dddd [a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastDay: function () {\n                return (\n                    '[Ieri a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return (\n                            '[La scorsa] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                    default:\n                        return (\n                            '[Lo scorso] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                ? ' '\n                                : \"ll'\") +\n                            ']LT'\n                        );\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'tra %s',\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            w: 'una settimana',\n            ww: '%d settimane',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ja', {\n        eras: [\n            {\n                since: '2019-05-01',\n                offset: 1,\n                name: '令和',\n                narrow: '㋿',\n                abbr: 'R',\n            },\n            {\n                since: '1989-01-08',\n                until: '2019-04-30',\n                offset: 1,\n                name: '平成',\n                narrow: '㍻',\n                abbr: 'H',\n            },\n            {\n                since: '1926-12-25',\n                until: '1989-01-07',\n                offset: 1,\n                name: '昭和',\n                narrow: '㍼',\n                abbr: 'S',\n            },\n            {\n                since: '1912-07-30',\n                until: '1926-12-24',\n                offset: 1,\n                name: '大正',\n                narrow: '㍽',\n                abbr: 'T',\n            },\n            {\n                since: '1873-01-01',\n                until: '1912-07-29',\n                offset: 6,\n                name: '明治',\n                narrow: '㍾',\n                abbr: 'M',\n            },\n            {\n                since: '0001-01-01',\n                until: '1873-12-31',\n                offset: 1,\n                name: '西暦',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: '紀元前',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        eraYearOrdinalRegex: /(元|\\d+)年/,\n        eraYearOrdinalParse: function (input, match) {\n            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n        },\n        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日 dddd HH:mm',\n            l: 'YYYY/MM/DD',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日(ddd) HH:mm',\n        },\n        meridiemParse: /午前|午後/i,\n        isPM: function (input) {\n            return input === '午後';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return '午前';\n            } else {\n                return '午後';\n            }\n        },\n        calendar: {\n            sameDay: '[今日] LT',\n            nextDay: '[明日] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[来週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            lastDay: '[昨日] LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[先週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}日/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'y':\n                    return number === 1 ? '元年' : number + '年';\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '数秒',\n            ss: '%d秒',\n            m: '1分',\n            mm: '%d分',\n            h: '1時間',\n            hh: '%d時間',\n            d: '1日',\n            dd: '%d日',\n            M: '1ヶ月',\n            MM: '%dヶ月',\n            y: '1年',\n            yy: '%d年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('jv', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /enjing|siyang|sonten|ndalu/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'enjing') {\n                return hour;\n            } else if (meridiem === 'siyang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'enjing';\n            } else if (hours < 15) {\n                return 'siyang';\n            } else if (hours < 19) {\n                return 'sonten';\n            } else {\n                return 'ndalu';\n            }\n        },\n        calendar: {\n            sameDay: '[Dinten puniko pukul] LT',\n            nextDay: '[Mbenjang pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kala wingi pukul] LT',\n            lastWeek: 'dddd [kepengker pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'wonten ing %s',\n            past: '%s ingkang kepengker',\n            s: 'sawetawis detik',\n            ss: '%d detik',\n            m: 'setunggal menit',\n            mm: '%d menit',\n            h: 'setunggal jam',\n            hh: '%d jam',\n            d: 'sedinten',\n            dd: '%d dinten',\n            M: 'sewulan',\n            MM: '%d wulan',\n            y: 'setaun',\n            yy: '%d taun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ka', {\n        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n            '_'\n        ),\n        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n        weekdays: {\n            standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n                '_'\n            ),\n            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n                '_'\n            ),\n            isFormat: /(წინა|შემდეგ)/,\n        },\n        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[დღეს] LT[-ზე]',\n            nextDay: '[ხვალ] LT[-ზე]',\n            lastDay: '[გუშინ] LT[-ზე]',\n            nextWeek: '[შემდეგ] dddd LT[-ზე]',\n            lastWeek: '[წინა] dddd LT-ზე',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n                    $0,\n                    $1,\n                    $2\n                ) {\n                    return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n                });\n            },\n            past: function (s) {\n                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n                    return s.replace(/(ი|ე)$/, 'ის წინ');\n                }\n                if (/წელი/.test(s)) {\n                    return s.replace(/წელი$/, 'წლის წინ');\n                }\n                return s;\n            },\n            s: 'რამდენიმე წამი',\n            ss: '%d წამი',\n            m: 'წუთი',\n            mm: '%d წუთი',\n            h: 'საათი',\n            hh: '%d საათი',\n            d: 'დღე',\n            dd: '%d დღე',\n            M: 'თვე',\n            MM: '%d თვე',\n            y: 'წელი',\n            yy: '%d წელი',\n        },\n        dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n        ordinal: function (number) {\n            if (number === 0) {\n                return number;\n            }\n            if (number === 1) {\n                return number + '-ლი';\n            }\n            if (\n                number < 20 ||\n                (number <= 100 && number % 20 === 0) ||\n                number % 100 === 0\n            ) {\n                return 'მე-' + number;\n            }\n            return number + '-ე';\n        },\n        week: {\n            dow: 1,\n            doy: 7,\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$1 = {\n        0: '-ші',\n        1: '-ші',\n        2: '-ші',\n        3: '-ші',\n        4: '-ші',\n        5: '-ші',\n        6: '-шы',\n        7: '-ші',\n        8: '-ші',\n        9: '-шы',\n        10: '-шы',\n        20: '-шы',\n        30: '-шы',\n        40: '-шы',\n        50: '-ші',\n        60: '-шы',\n        70: '-ші',\n        80: '-ші',\n        90: '-шы',\n        100: '-ші',\n    };\n\n    hooks.defineLocale('kk', {\n        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n            '_'\n        ),\n        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n            '_'\n        ),\n        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгін сағат] LT',\n            nextDay: '[Ертең сағат] LT',\n            nextWeek: 'dddd [сағат] LT',\n            lastDay: '[Кеше сағат] LT',\n            lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ішінде',\n            past: '%s бұрын',\n            s: 'бірнеше секунд',\n            ss: '%d секунд',\n            m: 'бір минут',\n            mm: '%d минут',\n            h: 'бір сағат',\n            hh: '%d сағат',\n            d: 'бір күн',\n            dd: '%d күн',\n            M: 'бір ай',\n            MM: '%d ай',\n            y: 'бір жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$9 = {\n            1: '១',\n            2: '២',\n            3: '៣',\n            4: '៤',\n            5: '៥',\n            6: '៦',\n            7: '៧',\n            8: '៨',\n            9: '៩',\n            0: '០',\n        },\n        numberMap$8 = {\n            '១': '1',\n            '២': '2',\n            '៣': '3',\n            '៤': '4',\n            '៥': '5',\n            '៦': '6',\n            '៧': '7',\n            '៨': '8',\n            '៩': '9',\n            '០': '0',\n        };\n\n    hooks.defineLocale('km', {\n        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ព្រឹក|ល្ងាច/,\n        isPM: function (input) {\n            return input === 'ល្ងាច';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ព្រឹក';\n            } else {\n                return 'ល្ងាច';\n            }\n        },\n        calendar: {\n            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n            nextDay: '[ស្អែក ម៉ោង] LT',\n            nextWeek: 'dddd [ម៉ោង] LT',\n            lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sទៀត',\n            past: '%sមុន',\n            s: 'ប៉ុន្មានវិនាទី',\n            ss: '%d វិនាទី',\n            m: 'មួយនាទី',\n            mm: '%d នាទី',\n            h: 'មួយម៉ោង',\n            hh: '%d ម៉ោង',\n            d: 'មួយថ្ងៃ',\n            dd: '%d ថ្ងៃ',\n            M: 'មួយខែ',\n            MM: '%d ខែ',\n            y: 'មួយឆ្នាំ',\n            yy: '%d ឆ្នាំ',\n        },\n        dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n        ordinal: 'ទី%d',\n        preparse: function (string) {\n            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n                return numberMap$8[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$9[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$a = {\n            1: '೧',\n            2: '೨',\n            3: '೩',\n            4: '೪',\n            5: '೫',\n            6: '೬',\n            7: '೭',\n            8: '೮',\n            9: '೯',\n            0: '೦',\n        },\n        numberMap$9 = {\n            '೧': '1',\n            '೨': '2',\n            '೩': '3',\n            '೪': '4',\n            '೫': '5',\n            '೬': '6',\n            '೭': '7',\n            '೮': '8',\n            '೯': '9',\n            '೦': '0',\n        };\n\n    hooks.defineLocale('kn', {\n        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n            '_'\n        ),\n        monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[ಇಂದು] LT',\n            nextDay: '[ನಾಳೆ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ನಿನ್ನೆ] LT',\n            lastWeek: '[ಕೊನೆಯ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ನಂತರ',\n            past: '%s ಹಿಂದೆ',\n            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n            ss: '%d ಸೆಕೆಂಡುಗಳು',\n            m: 'ಒಂದು ನಿಮಿಷ',\n            mm: '%d ನಿಮಿಷ',\n            h: 'ಒಂದು ಗಂಟೆ',\n            hh: '%d ಗಂಟೆ',\n            d: 'ಒಂದು ದಿನ',\n            dd: '%d ದಿನ',\n            M: 'ಒಂದು ತಿಂಗಳು',\n            MM: '%d ತಿಂಗಳು',\n            y: 'ಒಂದು ವರ್ಷ',\n            yy: '%d ವರ್ಷ',\n        },\n        preparse: function (string) {\n            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n                return numberMap$9[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$a[match];\n            });\n        },\n        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ರಾತ್ರಿ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n                return hour;\n            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ಸಂಜೆ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ರಾತ್ರಿ';\n            } else if (hour < 10) {\n                return 'ಬೆಳಿಗ್ಗೆ';\n            } else if (hour < 17) {\n                return 'ಮಧ್ಯಾಹ್ನ';\n            } else if (hour < 20) {\n                return 'ಸಂಜೆ';\n            } else {\n                return 'ರಾತ್ರಿ';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n        ordinal: function (number) {\n            return number + 'ನೇ';\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ko', {\n        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n            '_'\n        ),\n        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY년 MMMM D일',\n            LLL: 'YYYY년 MMMM D일 A h:mm',\n            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n            l: 'YYYY.MM.DD.',\n            ll: 'YYYY년 MMMM D일',\n            lll: 'YYYY년 MMMM D일 A h:mm',\n            llll: 'YYYY년 MMMM D일 dddd A h:mm',\n        },\n        calendar: {\n            sameDay: '오늘 LT',\n            nextDay: '내일 LT',\n            nextWeek: 'dddd LT',\n            lastDay: '어제 LT',\n            lastWeek: '지난주 dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s 후',\n            past: '%s 전',\n            s: '몇 초',\n            ss: '%d초',\n            m: '1분',\n            mm: '%d분',\n            h: '한 시간',\n            hh: '%d시간',\n            d: '하루',\n            dd: '%d일',\n            M: '한 달',\n            MM: '%d달',\n            y: '일 년',\n            yy: '%d년',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '일';\n                case 'M':\n                    return number + '월';\n                case 'w':\n                case 'W':\n                    return number + '주';\n                default:\n                    return number;\n            }\n        },\n        meridiemParse: /오전|오후/,\n        isPM: function (token) {\n            return token === '오후';\n        },\n        meridiem: function (hour, minute, isUpper) {\n            return hour < 12 ? '오전' : '오후';\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$b = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap$a = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        months$8 = [\n            'کانونی دووەم',\n            'شوبات',\n            'ئازار',\n            'نیسان',\n            'ئایار',\n            'حوزەیران',\n            'تەمموز',\n            'ئاب',\n            'ئەیلوول',\n            'تشرینی یەكەم',\n            'تشرینی دووەم',\n            'كانونی یەکەم',\n        ];\n\n    hooks.defineLocale('ku', {\n        months: months$8,\n        monthsShort: months$8,\n        weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ئێواره‌|به‌یانی/,\n        isPM: function (input) {\n            return /ئێواره‌/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'به‌یانی';\n            } else {\n                return 'ئێواره‌';\n            }\n        },\n        calendar: {\n            sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n            nextDay: '[به‌یانی كاتژمێر] LT',\n            nextWeek: 'dddd [كاتژمێر] LT',\n            lastDay: '[دوێنێ كاتژمێر] LT',\n            lastWeek: 'dddd [كاتژمێر] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'له‌ %s',\n            past: '%s',\n            s: 'چه‌ند چركه‌یه‌ك',\n            ss: 'چركه‌ %d',\n            m: 'یه‌ك خوله‌ك',\n            mm: '%d خوله‌ك',\n            h: 'یه‌ك كاتژمێر',\n            hh: '%d كاتژمێر',\n            d: 'یه‌ك ڕۆژ',\n            dd: '%d ڕۆژ',\n            M: 'یه‌ك مانگ',\n            MM: '%d مانگ',\n            y: 'یه‌ك ساڵ',\n            yy: '%d ساڵ',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap$a[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap$b[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$2 = {\n        0: '-чү',\n        1: '-чи',\n        2: '-чи',\n        3: '-чү',\n        4: '-чү',\n        5: '-чи',\n        6: '-чы',\n        7: '-чи',\n        8: '-чи',\n        9: '-чу',\n        10: '-чу',\n        20: '-чы',\n        30: '-чу',\n        40: '-чы',\n        50: '-чү',\n        60: '-чы',\n        70: '-чи',\n        80: '-чи',\n        90: '-чу',\n        100: '-чү',\n    };\n\n    hooks.defineLocale('ky', {\n        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n            '_'\n        ),\n        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n            '_'\n        ),\n        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгүн саат] LT',\n            nextDay: '[Эртең саат] LT',\n            nextWeek: 'dddd [саат] LT',\n            lastDay: '[Кечээ саат] LT',\n            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ичинде',\n            past: '%s мурун',\n            s: 'бирнече секунд',\n            ss: '%d секунд',\n            m: 'бир мүнөт',\n            mm: '%d мүнөт',\n            h: 'бир саат',\n            hh: '%d саат',\n            d: 'бир күн',\n            dd: '%d күн',\n            M: 'бир ай',\n            MM: '%d ай',\n            y: 'бир жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eng Minutt', 'enger Minutt'],\n            h: ['eng Stonn', 'enger Stonn'],\n            d: ['een Dag', 'engem Dag'],\n            M: ['ee Mount', 'engem Mount'],\n            y: ['ee Joer', 'engem Joer'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n    function processFutureTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'a ' + string;\n        }\n        return 'an ' + string;\n    }\n    function processPastTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'viru ' + string;\n        }\n        return 'virun ' + string;\n    }\n    /**\n     * Returns true if the word before the given number loses the '-n' ending.\n     * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n     *\n     * @param number {integer}\n     * @returns {boolean}\n     */\n    function eifelerRegelAppliesToNumber(number) {\n        number = parseInt(number, 10);\n        if (isNaN(number)) {\n            return false;\n        }\n        if (number < 0) {\n            // Negative Number --> always true\n            return true;\n        } else if (number < 10) {\n            // Only 1 digit\n            if (4 <= number && number <= 7) {\n                return true;\n            }\n            return false;\n        } else if (number < 100) {\n            // 2 digits\n            var lastDigit = number % 10,\n                firstDigit = number / 10;\n            if (lastDigit === 0) {\n                return eifelerRegelAppliesToNumber(firstDigit);\n            }\n            return eifelerRegelAppliesToNumber(lastDigit);\n        } else if (number < 10000) {\n            // 3 or 4 digits --> recursively check first digit\n            while (number >= 10) {\n                number = number / 10;\n            }\n            return eifelerRegelAppliesToNumber(number);\n        } else {\n            // Anything larger than 4 digits: recursively check first n-3 digits\n            number = number / 1000;\n            return eifelerRegelAppliesToNumber(number);\n        }\n    }\n\n    hooks.defineLocale('lb', {\n        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n            '_'\n        ),\n        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm [Auer]',\n            LTS: 'H:mm:ss [Auer]',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm [Auer]',\n            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n        },\n        calendar: {\n            sameDay: '[Haut um] LT',\n            sameElse: 'L',\n            nextDay: '[Muer um] LT',\n            nextWeek: 'dddd [um] LT',\n            lastDay: '[Gëschter um] LT',\n            lastWeek: function () {\n                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n                switch (this.day()) {\n                    case 2:\n                    case 4:\n                        return '[Leschten] dddd [um] LT';\n                    default:\n                        return '[Leschte] dddd [um] LT';\n                }\n            },\n        },\n        relativeTime: {\n            future: processFutureTime,\n            past: processPastTime,\n            s: 'e puer Sekonnen',\n            ss: '%d Sekonnen',\n            m: processRelativeTime$6,\n            mm: '%d Minutten',\n            h: processRelativeTime$6,\n            hh: '%d Stonnen',\n            d: processRelativeTime$6,\n            dd: '%d Deeg',\n            M: processRelativeTime$6,\n            MM: '%d Méint',\n            y: processRelativeTime$6,\n            yy: '%d Joer',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('lo', {\n        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n        isPM: function (input) {\n            return input === 'ຕອນແລງ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ຕອນເຊົ້າ';\n            } else {\n                return 'ຕອນແລງ';\n            }\n        },\n        calendar: {\n            sameDay: '[ມື້ນີ້ເວລາ] LT',\n            nextDay: '[ມື້ອື່ນເວລາ] LT',\n            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n            lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ອີກ %s',\n            past: '%sຜ່ານມາ',\n            s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n            ss: '%d ວິນາທີ',\n            m: '1 ນາທີ',\n            mm: '%d ນາທີ',\n            h: '1 ຊົ່ວໂມງ',\n            hh: '%d ຊົ່ວໂມງ',\n            d: '1 ມື້',\n            dd: '%d ມື້',\n            M: '1 ເດືອນ',\n            MM: '%d ເດືອນ',\n            y: '1 ປີ',\n            yy: '%d ປີ',\n        },\n        dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n        ordinal: function (number) {\n            return 'ທີ່' + number;\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundė_sekundžių_sekundes',\n        m: 'minutė_minutės_minutę',\n        mm: 'minutės_minučių_minutes',\n        h: 'valanda_valandos_valandą',\n        hh: 'valandos_valandų_valandas',\n        d: 'diena_dienos_dieną',\n        dd: 'dienos_dienų_dienas',\n        M: 'mėnuo_mėnesio_mėnesį',\n        MM: 'mėnesiai_mėnesių_mėnesius',\n        y: 'metai_metų_metus',\n        yy: 'metai_metų_metus',\n    };\n    function translateSeconds(number, withoutSuffix, key, isFuture) {\n        if (withoutSuffix) {\n            return 'kelios sekundės';\n        } else {\n            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n        }\n    }\n    function translateSingular(number, withoutSuffix, key, isFuture) {\n        return withoutSuffix\n            ? forms(key)[0]\n            : isFuture\n            ? forms(key)[1]\n            : forms(key)[2];\n    }\n    function special(number) {\n        return number % 10 === 0 || (number > 10 && number < 20);\n    }\n    function forms(key) {\n        return units[key].split('_');\n    }\n    function translate$6(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        if (number === 1) {\n            return (\n                result + translateSingular(number, withoutSuffix, key[0], isFuture)\n            );\n        } else if (withoutSuffix) {\n            return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n        } else {\n            if (isFuture) {\n                return result + forms(key)[1];\n            } else {\n                return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n            }\n        }\n    }\n    hooks.defineLocale('lt', {\n        months: {\n            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n                '_'\n            ),\n            standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n        },\n        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n        weekdays: {\n            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n                '_'\n            ),\n            standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n                '_'\n            ),\n            isFormat: /dddd HH:mm/,\n        },\n        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n        weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY [m.] MMMM D [d.]',\n            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n            l: 'YYYY-MM-DD',\n            ll: 'YYYY [m.] MMMM D [d.]',\n            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n        },\n        calendar: {\n            sameDay: '[Šiandien] LT',\n            nextDay: '[Rytoj] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[Vakar] LT',\n            lastWeek: '[Praėjusį] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'po %s',\n            past: 'prieš %s',\n            s: translateSeconds,\n            ss: translate$6,\n            m: translateSingular,\n            mm: translate$6,\n            h: translateSingular,\n            hh: translate$6,\n            d: translateSingular,\n            dd: translate$6,\n            M: translateSingular,\n            MM: translate$6,\n            y: translateSingular,\n            yy: translate$6,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n        ordinal: function (number) {\n            return number + '-oji';\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var units$1 = {\n        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        h: 'stundas_stundām_stunda_stundas'.split('_'),\n        hh: 'stundas_stundām_stunda_stundas'.split('_'),\n        d: 'dienas_dienām_diena_dienas'.split('_'),\n        dd: 'dienas_dienām_diena_dienas'.split('_'),\n        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        y: 'gada_gadiem_gads_gadi'.split('_'),\n        yy: 'gada_gadiem_gads_gadi'.split('_'),\n    };\n    /**\n     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n     */\n    function format$1(forms, number, withoutSuffix) {\n        if (withoutSuffix) {\n            // E.g. \"21 minūte\", \"3 minūtes\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n        } else {\n            // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n            // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n        }\n    }\n    function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n        return number + ' ' + format$1(units$1[key], number, withoutSuffix);\n    }\n    function relativeTimeWithSingular(number, withoutSuffix, key) {\n        return format$1(units$1[key], number, withoutSuffix);\n    }\n    function relativeSeconds(number, withoutSuffix) {\n        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n    }\n\n    hooks.defineLocale('lv', {\n        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY.',\n            LL: 'YYYY. [gada] D. MMMM',\n            LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n        },\n        calendar: {\n            sameDay: '[Šodien pulksten] LT',\n            nextDay: '[Rīt pulksten] LT',\n            nextWeek: 'dddd [pulksten] LT',\n            lastDay: '[Vakar pulksten] LT',\n            lastWeek: '[Pagājušā] dddd [pulksten] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'pēc %s',\n            past: 'pirms %s',\n            s: relativeSeconds,\n            ss: relativeTimeWithPlural$1,\n            m: relativeTimeWithSingular,\n            mm: relativeTimeWithPlural$1,\n            h: relativeTimeWithSingular,\n            hh: relativeTimeWithPlural$1,\n            d: relativeTimeWithSingular,\n            dd: relativeTimeWithPlural$1,\n            M: relativeTimeWithSingular,\n            MM: relativeTimeWithPlural$1,\n            y: relativeTimeWithSingular,\n            yy: relativeTimeWithPlural$1,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekund', 'sekunda', 'sekundi'],\n            m: ['jedan minut', 'jednog minuta'],\n            mm: ['minut', 'minuta', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mjesec', 'mjeseca', 'mjeseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    hooks.defineLocale('me', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sjutra u] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedjelje] [u] LT',\n                    '[prošlog] [ponedjeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srijede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'dan',\n            dd: translator.translate,\n            M: 'mjesec',\n            MM: translator.translate,\n            y: 'godinu',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('mi', {\n        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n            '_'\n        ),\n        monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n            '_'\n        ),\n        monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [i] HH:mm',\n            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i teie mahana, i] LT',\n            nextDay: '[apopo i] LT',\n            nextWeek: 'dddd [i] LT',\n            lastDay: '[inanahi i] LT',\n            lastWeek: 'dddd [whakamutunga i] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i roto i %s',\n            past: '%s i mua',\n            s: 'te hēkona ruarua',\n            ss: '%d hēkona',\n            m: 'he meneti',\n            mm: '%d meneti',\n            h: 'te haora',\n            hh: '%d haora',\n            d: 'he ra',\n            dd: '%d ra',\n            M: 'he marama',\n            MM: '%d marama',\n            y: 'he tau',\n            yy: '%d tau',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('mk', {\n        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Денес во] LT',\n            nextDay: '[Утре во] LT',\n            nextWeek: '[Во] dddd [во] LT',\n            lastDay: '[Вчера во] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Изминатата] dddd [во] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Изминатиот] dddd [во] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пред %s',\n            s: 'неколку секунди',\n            ss: '%d секунди',\n            m: 'една минута',\n            mm: '%d минути',\n            h: 'еден час',\n            hh: '%d часа',\n            d: 'еден ден',\n            dd: '%d дена',\n            M: 'еден месец',\n            MM: '%d месеци',\n            y: 'една година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ml', {\n        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n            '_'\n        ),\n        monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n            '_'\n        ),\n        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm -നു',\n            LTS: 'A h:mm:ss -നു',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm -നു',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n        },\n        calendar: {\n            sameDay: '[ഇന്ന്] LT',\n            nextDay: '[നാളെ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ഇന്നലെ] LT',\n            lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s കഴിഞ്ഞ്',\n            past: '%s മുൻപ്',\n            s: 'അൽപ നിമിഷങ്ങൾ',\n            ss: '%d സെക്കൻഡ്',\n            m: 'ഒരു മിനിറ്റ്',\n            mm: '%d മിനിറ്റ്',\n            h: 'ഒരു മണിക്കൂർ',\n            hh: '%d മണിക്കൂർ',\n            d: 'ഒരു ദിവസം',\n            dd: '%d ദിവസം',\n            M: 'ഒരു മാസം',\n            MM: '%d മാസം',\n            y: 'ഒരു വർഷം',\n            yy: '%d വർഷം',\n        },\n        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'രാത്രി' && hour >= 4) ||\n                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n                meridiem === 'വൈകുന്നേരം'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'രാത്രി';\n            } else if (hour < 12) {\n                return 'രാവിലെ';\n            } else if (hour < 17) {\n                return 'ഉച്ച കഴിഞ്ഞ്';\n            } else if (hour < 20) {\n                return 'വൈകുന്നേരം';\n            } else {\n                return 'രാത്രി';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function translate$7(number, withoutSuffix, key, isFuture) {\n        switch (key) {\n            case 's':\n                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n            case 'ss':\n                return number + (withoutSuffix ? ' секунд' : ' секундын');\n            case 'm':\n            case 'mm':\n                return number + (withoutSuffix ? ' минут' : ' минутын');\n            case 'h':\n            case 'hh':\n                return number + (withoutSuffix ? ' цаг' : ' цагийн');\n            case 'd':\n            case 'dd':\n                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n            case 'M':\n            case 'MM':\n                return number + (withoutSuffix ? ' сар' : ' сарын');\n            case 'y':\n            case 'yy':\n                return number + (withoutSuffix ? ' жил' : ' жилийн');\n            default:\n                return number;\n        }\n    }\n\n    hooks.defineLocale('mn', {\n        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n            '_'\n        ),\n        monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY оны MMMMын D',\n            LLL: 'YYYY оны MMMMын D HH:mm',\n            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n        },\n        meridiemParse: /ҮӨ|ҮХ/i,\n        isPM: function (input) {\n            return input === 'ҮХ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ҮӨ';\n            } else {\n                return 'ҮХ';\n            }\n        },\n        calendar: {\n            sameDay: '[Өнөөдөр] LT',\n            nextDay: '[Маргааш] LT',\n            nextWeek: '[Ирэх] dddd LT',\n            lastDay: '[Өчигдөр] LT',\n            lastWeek: '[Өнгөрсөн] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s дараа',\n            past: '%s өмнө',\n            s: translate$7,\n            ss: translate$7,\n            m: translate$7,\n            mm: translate$7,\n            h: translate$7,\n            hh: translate$7,\n            d: translate$7,\n            dd: translate$7,\n            M: translate$7,\n            MM: translate$7,\n            y: translate$7,\n            yy: translate$7,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + ' өдөр';\n                default:\n                    return number;\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$c = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$b = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n        var output = '';\n        if (withoutSuffix) {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंद';\n                    break;\n                case 'ss':\n                    output = '%d सेकंद';\n                    break;\n                case 'm':\n                    output = 'एक मिनिट';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटे';\n                    break;\n                case 'h':\n                    output = 'एक तास';\n                    break;\n                case 'hh':\n                    output = '%d तास';\n                    break;\n                case 'd':\n                    output = 'एक दिवस';\n                    break;\n                case 'dd':\n                    output = '%d दिवस';\n                    break;\n                case 'M':\n                    output = 'एक महिना';\n                    break;\n                case 'MM':\n                    output = '%d महिने';\n                    break;\n                case 'y':\n                    output = 'एक वर्ष';\n                    break;\n                case 'yy':\n                    output = '%d वर्षे';\n                    break;\n            }\n        } else {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंदां';\n                    break;\n                case 'ss':\n                    output = '%d सेकंदां';\n                    break;\n                case 'm':\n                    output = 'एका मिनिटा';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटां';\n                    break;\n                case 'h':\n                    output = 'एका तासा';\n                    break;\n                case 'hh':\n                    output = '%d तासां';\n                    break;\n                case 'd':\n                    output = 'एका दिवसा';\n                    break;\n                case 'dd':\n                    output = '%d दिवसां';\n                    break;\n                case 'M':\n                    output = 'एका महिन्या';\n                    break;\n                case 'MM':\n                    output = '%d महिन्यां';\n                    break;\n                case 'y':\n                    output = 'एका वर्षा';\n                    break;\n                case 'yy':\n                    output = '%d वर्षां';\n                    break;\n            }\n        }\n        return output.replace(/%d/i, number);\n    }\n\n    hooks.defineLocale('mr', {\n        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n            '_'\n        ),\n        monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm वाजता',\n            LTS: 'A h:mm:ss वाजता',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm वाजता',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[उद्या] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[मागील] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमध्ये',\n            past: '%sपूर्वी',\n            s: relativeTimeMr,\n            ss: relativeTimeMr,\n            m: relativeTimeMr,\n            mm: relativeTimeMr,\n            h: relativeTimeMr,\n            hh: relativeTimeMr,\n            d: relativeTimeMr,\n            dd: relativeTimeMr,\n            M: relativeTimeMr,\n            MM: relativeTimeMr,\n            y: relativeTimeMr,\n            yy: relativeTimeMr,\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$b[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$c[match];\n            });\n        },\n        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n                return hour;\n            } else if (\n                meridiem === 'दुपारी' ||\n                meridiem === 'सायंकाळी' ||\n                meridiem === 'रात्री'\n            ) {\n                return hour >= 12 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour >= 0 && hour < 6) {\n                return 'पहाटे';\n            } else if (hour < 12) {\n                return 'सकाळी';\n            } else if (hour < 17) {\n                return 'दुपारी';\n            } else if (hour < 20) {\n                return 'सायंकाळी';\n            } else {\n                return 'रात्री';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ms-my', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ms', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('mt', {\n        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n        weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Illum fil-]LT',\n            nextDay: '[Għada fil-]LT',\n            nextWeek: 'dddd [fil-]LT',\n            lastDay: '[Il-bieraħ fil-]LT',\n            lastWeek: 'dddd [li għadda] [fil-]LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'f’ %s',\n            past: '%s ilu',\n            s: 'ftit sekondi',\n            ss: '%d sekondi',\n            m: 'minuta',\n            mm: '%d minuti',\n            h: 'siegħa',\n            hh: '%d siegħat',\n            d: 'ġurnata',\n            dd: '%d ġranet',\n            M: 'xahar',\n            MM: '%d xhur',\n            y: 'sena',\n            yy: '%d sni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$d = {\n            1: '၁',\n            2: '၂',\n            3: '၃',\n            4: '၄',\n            5: '၅',\n            6: '၆',\n            7: '၇',\n            8: '၈',\n            9: '၉',\n            0: '၀',\n        },\n        numberMap$c = {\n            '၁': '1',\n            '၂': '2',\n            '၃': '3',\n            '၄': '4',\n            '၅': '5',\n            '၆': '6',\n            '၇': '7',\n            '၈': '8',\n            '၉': '9',\n            '၀': '0',\n        };\n\n    hooks.defineLocale('my', {\n        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n            '_'\n        ),\n        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n            '_'\n        ),\n        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ယနေ.] LT [မှာ]',\n            nextDay: '[မနက်ဖြန်] LT [မှာ]',\n            nextWeek: 'dddd LT [မှာ]',\n            lastDay: '[မနေ.က] LT [မှာ]',\n            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'လာမည့် %s မှာ',\n            past: 'လွန်ခဲ့သော %s က',\n            s: 'စက္ကန်.အနည်းငယ်',\n            ss: '%d စက္ကန့်',\n            m: 'တစ်မိနစ်',\n            mm: '%d မိနစ်',\n            h: 'တစ်နာရီ',\n            hh: '%d နာရီ',\n            d: 'တစ်ရက်',\n            dd: '%d ရက်',\n            M: 'တစ်လ',\n            MM: '%d လ',\n            y: 'တစ်နှစ်',\n            yy: '%d နှစ်',\n        },\n        preparse: function (string) {\n            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n                return numberMap$c[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$d[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('nb', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[forrige] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'noen sekunder',\n            ss: '%d sekunder',\n            m: 'ett minutt',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dager',\n            w: 'en uke',\n            ww: '%d uker',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$e = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap$d = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    hooks.defineLocale('ne', {\n        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n            '_'\n        ),\n        monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n            '_'\n        ),\n        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'Aको h:mm बजे',\n            LTS: 'Aको h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, Aको h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap$d[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$e[match];\n            });\n        },\n        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राति') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'बिहान') {\n                return hour;\n            } else if (meridiem === 'दिउँसो') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'साँझ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 3) {\n                return 'राति';\n            } else if (hour < 12) {\n                return 'बिहान';\n            } else if (hour < 16) {\n                return 'दिउँसो';\n            } else if (hour < 20) {\n                return 'साँझ';\n            } else {\n                return 'राति';\n            }\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[भोलि] LT',\n            nextWeek: '[आउँदो] dddd[,] LT',\n            lastDay: '[हिजो] LT',\n            lastWeek: '[गएको] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमा',\n            past: '%s अगाडि',\n            s: 'केही क्षण',\n            ss: '%d सेकेण्ड',\n            m: 'एक मिनेट',\n            mm: '%d मिनेट',\n            h: 'एक घण्टा',\n            hh: '%d घण्टा',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महिना',\n            MM: '%d महिना',\n            y: 'एक बर्ष',\n            yy: '%d बर्ष',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse$8 = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    hooks.defineLocale('nl-be', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots$1;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots$1[m.month()];\n            } else {\n                return monthsShortWithDots$1[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex$8,\n        monthsShortRegex: monthsRegex$8,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse$8,\n        longMonthsParse: monthsParse$8,\n        shortMonthsParse: monthsParse$8,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n            '_'\n        ),\n        monthsParse$9 = [\n            /^jan/i,\n            /^feb/i,\n            /^maart|mrt.?$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex$9 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    hooks.defineLocale('nl', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots$2;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots$2[m.month()];\n            } else {\n                return monthsShortWithDots$2[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex$9,\n        monthsShortRegex: monthsRegex$9,\n        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse$9,\n        longMonthsParse: monthsParse$9,\n        shortMonthsParse: monthsParse$9,\n\n        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            w: 'één week',\n            ww: '%d weken',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('nn', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[I dag klokka] LT',\n            nextDay: '[I morgon klokka] LT',\n            nextWeek: 'dddd [klokka] LT',\n            lastDay: '[I går klokka] LT',\n            lastWeek: '[Føregåande] dddd [klokka] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s sidan',\n            s: 'nokre sekund',\n            ss: '%d sekund',\n            m: 'eit minutt',\n            mm: '%d minutt',\n            h: 'ein time',\n            hh: '%d timar',\n            d: 'ein dag',\n            dd: '%d dagar',\n            w: 'ei veke',\n            ww: '%d veker',\n            M: 'ein månad',\n            MM: '%d månader',\n            y: 'eit år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('oc-lnc', {\n        months: {\n            standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n                '_'\n            ),\n            format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: '[uèi a] LT',\n            nextDay: '[deman a] LT',\n            nextWeek: 'dddd [a] LT',\n            lastDay: '[ièr a] LT',\n            lastWeek: 'dddd [passat a] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'unas segondas',\n            ss: '%d segondas',\n            m: 'una minuta',\n            mm: '%d minutas',\n            h: 'una ora',\n            hh: '%d oras',\n            d: 'un jorn',\n            dd: '%d jorns',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                    ? 'n'\n                    : number === 3\n                    ? 'r'\n                    : number === 4\n                    ? 't'\n                    : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4,\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$f = {\n            1: '੧',\n            2: '੨',\n            3: '੩',\n            4: '੪',\n            5: '੫',\n            6: '੬',\n            7: '੭',\n            8: '੮',\n            9: '੯',\n            0: '੦',\n        },\n        numberMap$e = {\n            '੧': '1',\n            '੨': '2',\n            '੩': '3',\n            '੪': '4',\n            '੫': '5',\n            '੬': '6',\n            '੭': '7',\n            '੮': '8',\n            '੯': '9',\n            '੦': '0',\n        };\n\n    hooks.defineLocale('pa-in', {\n        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm ਵਜੇ',\n            LTS: 'A h:mm:ss ਵਜੇ',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n        },\n        calendar: {\n            sameDay: '[ਅਜ] LT',\n            nextDay: '[ਕਲ] LT',\n            nextWeek: '[ਅਗਲਾ] dddd, LT',\n            lastDay: '[ਕਲ] LT',\n            lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ਵਿੱਚ',\n            past: '%s ਪਿਛਲੇ',\n            s: 'ਕੁਝ ਸਕਿੰਟ',\n            ss: '%d ਸਕਿੰਟ',\n            m: 'ਇਕ ਮਿੰਟ',\n            mm: '%d ਮਿੰਟ',\n            h: 'ਇੱਕ ਘੰਟਾ',\n            hh: '%d ਘੰਟੇ',\n            d: 'ਇੱਕ ਦਿਨ',\n            dd: '%d ਦਿਨ',\n            M: 'ਇੱਕ ਮਹੀਨਾ',\n            MM: '%d ਮਹੀਨੇ',\n            y: 'ਇੱਕ ਸਾਲ',\n            yy: '%d ਸਾਲ',\n        },\n        preparse: function (string) {\n            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n                return numberMap$e[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$f[match];\n            });\n        },\n        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ਰਾਤ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ਸਵੇਰ') {\n                return hour;\n            } else if (meridiem === 'ਦੁਪਹਿਰ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ਸ਼ਾਮ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ਰਾਤ';\n            } else if (hour < 10) {\n                return 'ਸਵੇਰ';\n            } else if (hour < 17) {\n                return 'ਦੁਪਹਿਰ';\n            } else if (hour < 20) {\n                return 'ਸ਼ਾਮ';\n            } else {\n                return 'ਰਾਤ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n            '_'\n        ),\n        monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n            '_'\n        ),\n        monthsParse$a = [\n            /^sty/i,\n            /^lut/i,\n            /^mar/i,\n            /^kwi/i,\n            /^maj/i,\n            /^cze/i,\n            /^lip/i,\n            /^sie/i,\n            /^wrz/i,\n            /^paź/i,\n            /^lis/i,\n            /^gru/i,\n        ];\n    function plural$3(n) {\n        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n    }\n    function translate$8(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                return result + (plural$3(number) ? 'sekundy' : 'sekund');\n            case 'm':\n                return withoutSuffix ? 'minuta' : 'minutę';\n            case 'mm':\n                return result + (plural$3(number) ? 'minuty' : 'minut');\n            case 'h':\n                return withoutSuffix ? 'godzina' : 'godzinę';\n            case 'hh':\n                return result + (plural$3(number) ? 'godziny' : 'godzin');\n            case 'ww':\n                return result + (plural$3(number) ? 'tygodnie' : 'tygodni');\n            case 'MM':\n                return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n            case 'yy':\n                return result + (plural$3(number) ? 'lata' : 'lat');\n        }\n    }\n\n    hooks.defineLocale('pl', {\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return monthsNominative;\n            } else if (/D MMMM/.test(format)) {\n                return monthsSubjective[momentToFormat.month()];\n            } else {\n                return monthsNominative[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n        monthsParse: monthsParse$a,\n        longMonthsParse: monthsParse$a,\n        shortMonthsParse: monthsParse$a,\n        weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Dziś o] LT',\n            nextDay: '[Jutro o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W niedzielę o] LT';\n\n                    case 2:\n                        return '[We wtorek o] LT';\n\n                    case 3:\n                        return '[W środę o] LT';\n\n                    case 6:\n                        return '[W sobotę o] LT';\n\n                    default:\n                        return '[W] dddd [o] LT';\n                }\n            },\n            lastDay: '[Wczoraj o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W zeszłą niedzielę o] LT';\n                    case 3:\n                        return '[W zeszłą środę o] LT';\n                    case 6:\n                        return '[W zeszłą sobotę o] LT';\n                    default:\n                        return '[W zeszły] dddd [o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: '%s temu',\n            s: 'kilka sekund',\n            ss: translate$8,\n            m: translate$8,\n            mm: translate$8,\n            h: translate$8,\n            hh: translate$8,\n            d: '1 dzień',\n            dd: '%d dni',\n            w: 'tydzień',\n            ww: translate$8,\n            M: 'miesiąc',\n            MM: translate$8,\n            y: 'rok',\n            yy: translate$8,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('pt-br', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'poucos segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        invalidDate: 'Data inválida',\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('pt', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            w: 'uma semana',\n            ww: '%d semanas',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n        var format = {\n                ss: 'secunde',\n                mm: 'minute',\n                hh: 'ore',\n                dd: 'zile',\n                ww: 'săptămâni',\n                MM: 'luni',\n                yy: 'ani',\n            },\n            separator = ' ';\n        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n            separator = ' de ';\n        }\n        return number + separator + format[key];\n    }\n\n    hooks.defineLocale('ro', {\n        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n            '_'\n        ),\n        monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[azi la] LT',\n            nextDay: '[mâine la] LT',\n            nextWeek: 'dddd [la] LT',\n            lastDay: '[ieri la] LT',\n            lastWeek: '[fosta] dddd [la] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'peste %s',\n            past: '%s în urmă',\n            s: 'câteva secunde',\n            ss: relativeTimeWithPlural$2,\n            m: 'un minut',\n            mm: relativeTimeWithPlural$2,\n            h: 'o oră',\n            hh: relativeTimeWithPlural$2,\n            d: 'o zi',\n            dd: relativeTimeWithPlural$2,\n            w: 'o săptămână',\n            ww: relativeTimeWithPlural$2,\n            M: 'o lună',\n            MM: relativeTimeWithPlural$2,\n            y: 'un an',\n            yy: relativeTimeWithPlural$2,\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$4(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n            hh: 'час_часа_часов',\n            dd: 'день_дня_дней',\n            ww: 'неделя_недели_недель',\n            MM: 'месяц_месяца_месяцев',\n            yy: 'год_года_лет',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'минута' : 'минуту';\n        } else {\n            return number + ' ' + plural$4(format[key], +number);\n        }\n    }\n    var monthsParse$b = [\n        /^янв/i,\n        /^фев/i,\n        /^мар/i,\n        /^апр/i,\n        /^ма[йя]/i,\n        /^июн/i,\n        /^июл/i,\n        /^авг/i,\n        /^сен/i,\n        /^окт/i,\n        /^ноя/i,\n        /^дек/i,\n    ];\n\n    // http://new.gramota.ru/spravka/rules/139-prop : § 103\n    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n    hooks.defineLocale('ru', {\n        months: {\n            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n                '_'\n            ),\n            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n                '_'\n            ),\n        },\n        monthsShort: {\n            // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n        },\n        weekdays: {\n            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n                '_'\n            ),\n            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n        },\n        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        monthsParse: monthsParse$b,\n        longMonthsParse: monthsParse$b,\n        shortMonthsParse: monthsParse$b,\n\n        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n        monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // копия предыдущего\n        monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // полные названия с падежами\n        monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n        // Выражение, которое соответствует только сокращённым формам\n        monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., H:mm',\n            LLLL: 'dddd, D MMMM YYYY г., H:mm',\n        },\n        calendar: {\n            sameDay: '[Сегодня, в] LT',\n            nextDay: '[Завтра, в] LT',\n            lastDay: '[Вчера, в] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В следующее] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В следующий] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В следующую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            lastWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В прошлое] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В прошлый] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В прошлую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'через %s',\n            past: '%s назад',\n            s: 'несколько секунд',\n            ss: relativeTimeWithPlural$3,\n            m: relativeTimeWithPlural$3,\n            mm: relativeTimeWithPlural$3,\n            h: 'час',\n            hh: relativeTimeWithPlural$3,\n            d: 'день',\n            dd: relativeTimeWithPlural$3,\n            w: 'неделя',\n            ww: relativeTimeWithPlural$3,\n            M: 'месяц',\n            MM: relativeTimeWithPlural$3,\n            y: 'год',\n            yy: relativeTimeWithPlural$3,\n        },\n        meridiemParse: /ночи|утра|дня|вечера/i,\n        isPM: function (input) {\n            return /^(дня|вечера)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночи';\n            } else if (hour < 12) {\n                return 'утра';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечера';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                case 'w':\n                case 'W':\n                    return number + '-я';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$9 = [\n            'جنوري',\n            'فيبروري',\n            'مارچ',\n            'اپريل',\n            'مئي',\n            'جون',\n            'جولاءِ',\n            'آگسٽ',\n            'سيپٽمبر',\n            'آڪٽوبر',\n            'نومبر',\n            'ڊسمبر',\n        ],\n        days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n    hooks.defineLocale('sd', {\n        months: months$9,\n        monthsShort: months$9,\n        weekdays: days$1,\n        weekdaysShort: days$1,\n        weekdaysMin: days$1,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[اڄ] LT',\n            nextDay: '[سڀاڻي] LT',\n            nextWeek: 'dddd [اڳين هفتي تي] LT',\n            lastDay: '[ڪالهه] LT',\n            lastWeek: '[گزريل هفتي] dddd [تي] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s پوء',\n            past: '%s اڳ',\n            s: 'چند سيڪنڊ',\n            ss: '%d سيڪنڊ',\n            m: 'هڪ منٽ',\n            mm: '%d منٽ',\n            h: 'هڪ ڪلاڪ',\n            hh: '%d ڪلاڪ',\n            d: 'هڪ ڏينهن',\n            dd: '%d ڏينهن',\n            M: 'هڪ مهينو',\n            MM: '%d مهينا',\n            y: 'هڪ سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('se', {\n        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n            '_'\n        ),\n        monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n            '_'\n        ),\n        weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n            '_'\n        ),\n        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'MMMM D. [b.] YYYY',\n            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[otne ti] LT',\n            nextDay: '[ihttin ti] LT',\n            nextWeek: 'dddd [ti] LT',\n            lastDay: '[ikte ti] LT',\n            lastWeek: '[ovddit] dddd [ti] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s geažes',\n            past: 'maŋit %s',\n            s: 'moadde sekunddat',\n            ss: '%d sekunddat',\n            m: 'okta minuhta',\n            mm: '%d minuhtat',\n            h: 'okta diimmu',\n            hh: '%d diimmut',\n            d: 'okta beaivi',\n            dd: '%d beaivvit',\n            M: 'okta mánnu',\n            MM: '%d mánut',\n            y: 'okta jahki',\n            yy: '%d jagit',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    /*jshint -W100*/\n    hooks.defineLocale('si', {\n        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n            '_'\n        ),\n        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n            '_'\n        ),\n        weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n            '_'\n        ),\n        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'a h:mm',\n            LTS: 'a h:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY MMMM D',\n            LLL: 'YYYY MMMM D, a h:mm',\n            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n        },\n        calendar: {\n            sameDay: '[අද] LT[ට]',\n            nextDay: '[හෙට] LT[ට]',\n            nextWeek: 'dddd LT[ට]',\n            lastDay: '[ඊයේ] LT[ට]',\n            lastWeek: '[පසුගිය] dddd LT[ට]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sකින්',\n            past: '%sකට පෙර',\n            s: 'තත්පර කිහිපය',\n            ss: 'තත්පර %d',\n            m: 'මිනිත්තුව',\n            mm: 'මිනිත්තු %d',\n            h: 'පැය',\n            hh: 'පැය %d',\n            d: 'දිනය',\n            dd: 'දින %d',\n            M: 'මාසය',\n            MM: 'මාස %d',\n            y: 'වසර',\n            yy: 'වසර %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n        ordinal: function (number) {\n            return number + ' වැනි';\n        },\n        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n        isPM: function (input) {\n            return input === 'ප.ව.' || input === 'පස් වරු';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'ප.ව.' : 'පස් වරු';\n            } else {\n                return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n            }\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$a = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n            '_'\n        ),\n        monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n    function plural$5(n) {\n        return n > 1 && n < 5;\n    }\n    function translate$9(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'sekundy' : 'sekúnd');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'minúty' : 'minút');\n                } else {\n                    return result + 'minútami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'hodiny' : 'hodín');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'deň' : 'dňom';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'dni' : 'dní');\n                } else {\n                    return result + 'dňami';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'mesiace' : 'mesiacov');\n                } else {\n                    return result + 'mesiacmi';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokom';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural$5(number) ? 'roky' : 'rokov');\n                } else {\n                    return result + 'rokmi';\n                }\n        }\n    }\n\n    hooks.defineLocale('sk', {\n        months: months$a,\n        monthsShort: monthsShort$7,\n        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[dnes o] LT',\n            nextDay: '[zajtra o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [o] LT';\n                    case 3:\n                        return '[v stredu o] LT';\n                    case 4:\n                        return '[vo štvrtok o] LT';\n                    case 5:\n                        return '[v piatok o] LT';\n                    case 6:\n                        return '[v sobotu o] LT';\n                }\n            },\n            lastDay: '[včera o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulú nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[minulý] dddd [o] LT';\n                    case 3:\n                        return '[minulú stredu o] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [o] LT';\n                    case 6:\n                        return '[minulú sobotu o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pred %s',\n            s: translate$9,\n            ss: translate$9,\n            m: translate$9,\n            mm: translate$9,\n            h: translate$9,\n            hh: translate$9,\n            d: translate$9,\n            dd: translate$9,\n            M: translate$9,\n            MM: translate$9,\n            y: translate$9,\n            yy: translate$9,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nekaj sekund'\n                    : 'nekaj sekundami';\n            case 'ss':\n                if (number === 1) {\n                    result += withoutSuffix ? 'sekundo' : 'sekundi';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n                } else {\n                    result += 'sekund';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'ena minuta' : 'eno minuto';\n            case 'mm':\n                if (number === 1) {\n                    result += withoutSuffix ? 'minuta' : 'minuto';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'ena ura' : 'eno uro';\n            case 'hh':\n                if (number === 1) {\n                    result += withoutSuffix ? 'ura' : 'uro';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'uri' : 'urama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'ure' : 'urami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'ur' : 'urami';\n                }\n                return result;\n            case 'd':\n                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n            case 'dd':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n                } else {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n                }\n                return result;\n            case 'M':\n                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n            case 'MM':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n                } else {\n                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n                }\n                return result;\n            case 'y':\n                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n            case 'yy':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'leto' : 'letom';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'leta' : 'leti';\n                } else {\n                    result += withoutSuffix || isFuture ? 'let' : 'leti';\n                }\n                return result;\n        }\n    }\n\n    hooks.defineLocale('sl', {\n        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD. MM. YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danes ob] LT',\n            nextDay: '[jutri ob] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[v] [sredo] [ob] LT';\n                    case 6:\n                        return '[v] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[v] dddd [ob] LT';\n                }\n            },\n            lastDay: '[včeraj ob] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prejšnjo] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[prejšnjo] [sredo] [ob] LT';\n                    case 6:\n                        return '[prejšnjo] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prejšnji] dddd [ob] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'čez %s',\n            past: 'pred %s',\n            s: processRelativeTime$7,\n            ss: processRelativeTime$7,\n            m: processRelativeTime$7,\n            mm: processRelativeTime$7,\n            h: processRelativeTime$7,\n            hh: processRelativeTime$7,\n            d: processRelativeTime$7,\n            dd: processRelativeTime$7,\n            M: processRelativeTime$7,\n            MM: processRelativeTime$7,\n            y: processRelativeTime$7,\n            yy: processRelativeTime$7,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('sq', {\n        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n            '_'\n        ),\n        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /PD|MD/,\n        isPM: function (input) {\n            return input.charAt(0) === 'M';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            return hours < 12 ? 'PD' : 'MD';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Sot në] LT',\n            nextDay: '[Nesër në] LT',\n            nextWeek: 'dddd [në] LT',\n            lastDay: '[Dje në] LT',\n            lastWeek: 'dddd [e kaluar në] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'në %s',\n            past: '%s më parë',\n            s: 'disa sekonda',\n            ss: '%d sekonda',\n            m: 'një minutë',\n            mm: '%d minuta',\n            h: 'një orë',\n            hh: '%d orë',\n            d: 'një ditë',\n            dd: '%d ditë',\n            M: 'një muaj',\n            MM: '%d muaj',\n            y: 'një vit',\n            yy: '%d vite',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator$1 = {\n        words: {\n            //Different grammatical cases\n            ss: ['секунда', 'секунде', 'секунди'],\n            m: ['један минут', 'једне минуте'],\n            mm: ['минут', 'минуте', 'минута'],\n            h: ['један сат', 'једног сата'],\n            hh: ['сат', 'сата', 'сати'],\n            dd: ['дан', 'дана', 'дана'],\n            MM: ['месец', 'месеца', 'месеци'],\n            yy: ['година', 'године', 'година'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator$1.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator$1.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    hooks.defineLocale('sr-cyrl', {\n        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n            '_'\n        ),\n        monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[данас у] LT',\n            nextDay: '[сутра у] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[у] [недељу] [у] LT';\n                    case 3:\n                        return '[у] [среду] [у] LT';\n                    case 6:\n                        return '[у] [суботу] [у] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[у] dddd [у] LT';\n                }\n            },\n            lastDay: '[јуче у] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[прошле] [недеље] [у] LT',\n                    '[прошлог] [понедељка] [у] LT',\n                    '[прошлог] [уторка] [у] LT',\n                    '[прошле] [среде] [у] LT',\n                    '[прошлог] [четвртка] [у] LT',\n                    '[прошлог] [петка] [у] LT',\n                    '[прошле] [суботе] [у] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пре %s',\n            s: 'неколико секунди',\n            ss: translator$1.translate,\n            m: translator$1.translate,\n            mm: translator$1.translate,\n            h: translator$1.translate,\n            hh: translator$1.translate,\n            d: 'дан',\n            dd: translator$1.translate,\n            M: 'месец',\n            MM: translator$1.translate,\n            y: 'годину',\n            yy: translator$1.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var translator$2 = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekunda', 'sekunde', 'sekundi'],\n            m: ['jedan minut', 'jedne minute'],\n            mm: ['minut', 'minute', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mesec', 'meseca', 'meseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                ? wordKey[1]\n                : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator$2.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator$2.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    hooks.defineLocale('sr', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedelju] [u] LT';\n                    case 3:\n                        return '[u] [sredu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedelje] [u] LT',\n                    '[prošlog] [ponedeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pre %s',\n            s: 'nekoliko sekundi',\n            ss: translator$2.translate,\n            m: translator$2.translate,\n            mm: translator$2.translate,\n            h: translator$2.translate,\n            hh: translator$2.translate,\n            d: 'dan',\n            dd: translator$2.translate,\n            M: 'mesec',\n            MM: translator$2.translate,\n            y: 'godinu',\n            yy: translator$2.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ss', {\n        months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n            '_'\n        ),\n        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n        weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Namuhla nga] LT',\n            nextDay: '[Kusasa nga] LT',\n            nextWeek: 'dddd [nga] LT',\n            lastDay: '[Itolo nga] LT',\n            lastWeek: 'dddd [leliphelile] [nga] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'nga %s',\n            past: 'wenteka nga %s',\n            s: 'emizuzwana lomcane',\n            ss: '%d mzuzwana',\n            m: 'umzuzu',\n            mm: '%d emizuzu',\n            h: 'lihora',\n            hh: '%d emahora',\n            d: 'lilanga',\n            dd: '%d emalanga',\n            M: 'inyanga',\n            MM: '%d tinyanga',\n            y: 'umnyaka',\n            yy: '%d iminyaka',\n        },\n        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'ekuseni';\n            } else if (hours < 15) {\n                return 'emini';\n            } else if (hours < 19) {\n                return 'entsambama';\n            } else {\n                return 'ebusuku';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ekuseni') {\n                return hour;\n            } else if (meridiem === 'emini') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n                if (hour === 0) {\n                    return 0;\n                }\n                return hour + 12;\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: '%d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('sv', {\n        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Idag] LT',\n            nextDay: '[Imorgon] LT',\n            lastDay: '[Igår] LT',\n            nextWeek: '[På] dddd LT',\n            lastWeek: '[I] dddd[s] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: 'för %s sedan',\n            s: 'några sekunder',\n            ss: '%d sekunder',\n            m: 'en minut',\n            mm: '%d minuter',\n            h: 'en timme',\n            hh: '%d timmar',\n            d: 'en dag',\n            dd: '%d dagar',\n            M: 'en månad',\n            MM: '%d månader',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? ':e'\n                        : b === 1\n                        ? ':a'\n                        : b === 2\n                        ? ':a'\n                        : b === 3\n                        ? ':e'\n                        : ':e';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('sw', {\n        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'hh:mm A',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[leo saa] LT',\n            nextDay: '[kesho saa] LT',\n            nextWeek: '[wiki ijayo] dddd [saat] LT',\n            lastDay: '[jana] LT',\n            lastWeek: '[wiki iliyopita] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s baadaye',\n            past: 'tokea %s',\n            s: 'hivi punde',\n            ss: 'sekunde %d',\n            m: 'dakika moja',\n            mm: 'dakika %d',\n            h: 'saa limoja',\n            hh: 'masaa %d',\n            d: 'siku moja',\n            dd: 'siku %d',\n            M: 'mwezi mmoja',\n            MM: 'miezi %d',\n            y: 'mwaka mmoja',\n            yy: 'miaka %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var symbolMap$g = {\n            1: '௧',\n            2: '௨',\n            3: '௩',\n            4: '௪',\n            5: '௫',\n            6: '௬',\n            7: '௭',\n            8: '௮',\n            9: '௯',\n            0: '௦',\n        },\n        numberMap$f = {\n            '௧': '1',\n            '௨': '2',\n            '௩': '3',\n            '௪': '4',\n            '௫': '5',\n            '௬': '6',\n            '௭': '7',\n            '௮': '8',\n            '௯': '9',\n            '௦': '0',\n        };\n\n    hooks.defineLocale('ta', {\n        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n            '_'\n        ),\n        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n            '_'\n        ),\n        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, HH:mm',\n            LLLL: 'dddd, D MMMM YYYY, HH:mm',\n        },\n        calendar: {\n            sameDay: '[இன்று] LT',\n            nextDay: '[நாளை] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[நேற்று] LT',\n            lastWeek: '[கடந்த வாரம்] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s இல்',\n            past: '%s முன்',\n            s: 'ஒரு சில விநாடிகள்',\n            ss: '%d விநாடிகள்',\n            m: 'ஒரு நிமிடம்',\n            mm: '%d நிமிடங்கள்',\n            h: 'ஒரு மணி நேரம்',\n            hh: '%d மணி நேரம்',\n            d: 'ஒரு நாள்',\n            dd: '%d நாட்கள்',\n            M: 'ஒரு மாதம்',\n            MM: '%d மாதங்கள்',\n            y: 'ஒரு வருடம்',\n            yy: '%d ஆண்டுகள்',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n        ordinal: function (number) {\n            return number + 'வது';\n        },\n        preparse: function (string) {\n            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n                return numberMap$f[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap$g[match];\n            });\n        },\n        // refer http://ta.wikipedia.org/s/1er1\n        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 2) {\n                return ' யாமம்';\n            } else if (hour < 6) {\n                return ' வைகறை'; // வைகறை\n            } else if (hour < 10) {\n                return ' காலை'; // காலை\n            } else if (hour < 14) {\n                return ' நண்பகல்'; // நண்பகல்\n            } else if (hour < 18) {\n                return ' எற்பாடு'; // எற்பாடு\n            } else if (hour < 22) {\n                return ' மாலை'; // மாலை\n            } else {\n                return ' யாமம்';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'யாமம்') {\n                return hour < 2 ? hour : hour + 12;\n            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n                return hour;\n            } else if (meridiem === 'நண்பகல்') {\n                return hour >= 10 ? hour : hour + 12;\n            } else {\n                return hour + 12;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('te', {\n        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n            '_'\n        ),\n        monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n            '_'\n        ),\n        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[నేడు] LT',\n            nextDay: '[రేపు] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[నిన్న] LT',\n            lastWeek: '[గత] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s లో',\n            past: '%s క్రితం',\n            s: 'కొన్ని క్షణాలు',\n            ss: '%d సెకన్లు',\n            m: 'ఒక నిమిషం',\n            mm: '%d నిమిషాలు',\n            h: 'ఒక గంట',\n            hh: '%d గంటలు',\n            d: 'ఒక రోజు',\n            dd: '%d రోజులు',\n            M: 'ఒక నెల',\n            MM: '%d నెలలు',\n            y: 'ఒక సంవత్సరం',\n            yy: '%d సంవత్సరాలు',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n        ordinal: '%dవ',\n        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'రాత్రి') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ఉదయం') {\n                return hour;\n            } else if (meridiem === 'మధ్యాహ్నం') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'సాయంత్రం') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'రాత్రి';\n            } else if (hour < 10) {\n                return 'ఉదయం';\n            } else if (hour < 17) {\n                return 'మధ్యాహ్నం';\n            } else if (hour < 20) {\n                return 'సాయంత్రం';\n            } else {\n                return 'రాత్రి';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('tet', {\n        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Ohin iha] LT',\n            nextDay: '[Aban iha] LT',\n            nextWeek: 'dddd [iha] LT',\n            lastDay: '[Horiseik iha] LT',\n            lastWeek: 'dddd [semana kotuk] [iha] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'iha %s',\n            past: '%s liuba',\n            s: 'segundu balun',\n            ss: 'segundu %d',\n            m: 'minutu ida',\n            mm: 'minutu %d',\n            h: 'oras ida',\n            hh: 'oras %d',\n            d: 'loron ida',\n            dd: 'loron %d',\n            M: 'fulan ida',\n            MM: 'fulan %d',\n            y: 'tinan ida',\n            yy: 'tinan %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$3 = {\n        0: '-ум',\n        1: '-ум',\n        2: '-юм',\n        3: '-юм',\n        4: '-ум',\n        5: '-ум',\n        6: '-ум',\n        7: '-ум',\n        8: '-ум',\n        9: '-ум',\n        10: '-ум',\n        12: '-ум',\n        13: '-ум',\n        20: '-ум',\n        30: '-юм',\n        40: '-ум',\n        50: '-ум',\n        60: '-ум',\n        70: '-ум',\n        80: '-ум',\n        90: '-ум',\n        100: '-ум',\n    };\n\n    hooks.defineLocale('tg', {\n        months: {\n            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n                '_'\n            ),\n            standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n            '_'\n        ),\n        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Имрӯз соати] LT',\n            nextDay: '[Фардо соати] LT',\n            lastDay: '[Дирӯз соати] LT',\n            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'баъди %s',\n            past: '%s пеш',\n            s: 'якчанд сония',\n            m: 'як дақиқа',\n            mm: '%d дақиқа',\n            h: 'як соат',\n            hh: '%d соат',\n            d: 'як рӯз',\n            dd: '%d рӯз',\n            M: 'як моҳ',\n            MM: '%d моҳ',\n            y: 'як сол',\n            yy: '%d сол',\n        },\n        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'шаб') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'субҳ') {\n                return hour;\n            } else if (meridiem === 'рӯз') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'бегоҳ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'шаб';\n            } else if (hour < 11) {\n                return 'субҳ';\n            } else if (hour < 16) {\n                return 'рӯз';\n            } else if (hour < 19) {\n                return 'бегоҳ';\n            } else {\n                return 'шаб';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('th', {\n        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n            '_'\n        ),\n        monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY เวลา H:mm',\n            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n        },\n        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n        isPM: function (input) {\n            return input === 'หลังเที่ยง';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ก่อนเที่ยง';\n            } else {\n                return 'หลังเที่ยง';\n            }\n        },\n        calendar: {\n            sameDay: '[วันนี้ เวลา] LT',\n            nextDay: '[พรุ่งนี้ เวลา] LT',\n            nextWeek: 'dddd[หน้า เวลา] LT',\n            lastDay: '[เมื่อวานนี้ เวลา] LT',\n            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'อีก %s',\n            past: '%sที่แล้ว',\n            s: 'ไม่กี่วินาที',\n            ss: '%d วินาที',\n            m: '1 นาที',\n            mm: '%d นาที',\n            h: '1 ชั่วโมง',\n            hh: '%d ชั่วโมง',\n            d: '1 วัน',\n            dd: '%d วัน',\n            w: '1 สัปดาห์',\n            ww: '%d สัปดาห์',\n            M: '1 เดือน',\n            MM: '%d เดือน',\n            y: '1 ปี',\n            yy: '%d ปี',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$4 = {\n        1: \"'inji\",\n        5: \"'inji\",\n        8: \"'inji\",\n        70: \"'inji\",\n        80: \"'inji\",\n        2: \"'nji\",\n        7: \"'nji\",\n        20: \"'nji\",\n        50: \"'nji\",\n        3: \"'ünji\",\n        4: \"'ünji\",\n        100: \"'ünji\",\n        6: \"'njy\",\n        9: \"'unjy\",\n        10: \"'unjy\",\n        30: \"'unjy\",\n        60: \"'ynjy\",\n        90: \"'ynjy\",\n    };\n\n    hooks.defineLocale('tk', {\n        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün sagat] LT',\n            nextDay: '[ertir sagat] LT',\n            nextWeek: '[indiki] dddd [sagat] LT',\n            lastDay: '[düýn] LT',\n            lastWeek: '[geçen] dddd [sagat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s soň',\n            past: '%s öň',\n            s: 'birnäçe sekunt',\n            m: 'bir minut',\n            mm: '%d minut',\n            h: 'bir sagat',\n            hh: '%d sagat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir aý',\n            MM: '%d aý',\n            y: 'bir ýyl',\n            yy: '%d ýyl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'unjy\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('tl-ph', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n    function translateFuture(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'leS'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'waQ'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'nem'\n                : time + ' pIq';\n        return time;\n    }\n\n    function translatePast(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'Hu’'\n                : output.indexOf('jar') !== -1\n                ? time.slice(0, -3) + 'wen'\n                : output.indexOf('DIS') !== -1\n                ? time.slice(0, -3) + 'ben'\n                : time + ' ret';\n        return time;\n    }\n\n    function translate$a(number, withoutSuffix, string, isFuture) {\n        var numberNoun = numberAsNoun(number);\n        switch (string) {\n            case 'ss':\n                return numberNoun + ' lup';\n            case 'mm':\n                return numberNoun + ' tup';\n            case 'hh':\n                return numberNoun + ' rep';\n            case 'dd':\n                return numberNoun + ' jaj';\n            case 'MM':\n                return numberNoun + ' jar';\n            case 'yy':\n                return numberNoun + ' DIS';\n        }\n    }\n\n    function numberAsNoun(number) {\n        var hundred = Math.floor((number % 1000) / 100),\n            ten = Math.floor((number % 100) / 10),\n            one = number % 10,\n            word = '';\n        if (hundred > 0) {\n            word += numbersNouns[hundred] + 'vatlh';\n        }\n        if (ten > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n        }\n        if (one > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[one];\n        }\n        return word === '' ? 'pagh' : word;\n    }\n\n    hooks.defineLocale('tlh', {\n        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[DaHjaj] LT',\n            nextDay: '[wa’leS] LT',\n            nextWeek: 'LLL',\n            lastDay: '[wa’Hu’] LT',\n            lastWeek: 'LLL',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: translateFuture,\n            past: translatePast,\n            s: 'puS lup',\n            ss: translate$a,\n            m: 'wa’ tup',\n            mm: translate$a,\n            h: 'wa’ rep',\n            hh: translate$a,\n            d: 'wa’ jaj',\n            dd: translate$a,\n            M: 'wa’ jar',\n            MM: translate$a,\n            y: 'wa’ DIS',\n            yy: translate$a,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var suffixes$5 = {\n        1: \"'inci\",\n        5: \"'inci\",\n        8: \"'inci\",\n        70: \"'inci\",\n        80: \"'inci\",\n        2: \"'nci\",\n        7: \"'nci\",\n        20: \"'nci\",\n        50: \"'nci\",\n        3: \"'üncü\",\n        4: \"'üncü\",\n        100: \"'üncü\",\n        6: \"'ncı\",\n        9: \"'uncu\",\n        10: \"'uncu\",\n        30: \"'uncu\",\n        60: \"'ıncı\",\n        90: \"'ıncı\",\n    };\n\n    hooks.defineLocale('tr', {\n        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n            '_'\n        ),\n        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'öö' : 'ÖÖ';\n            } else {\n                return isLower ? 'ös' : 'ÖS';\n            }\n        },\n        meridiemParse: /öö|ÖÖ|ös|ÖS/,\n        isPM: function (input) {\n            return input === 'ös' || input === 'ÖS';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[yarın saat] LT',\n            nextWeek: '[gelecek] dddd [saat] LT',\n            lastDay: '[dün] LT',\n            lastWeek: '[geçen] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s önce',\n            s: 'birkaç saniye',\n            ss: '%d saniye',\n            m: 'bir dakika',\n            mm: '%d dakika',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            w: 'bir hafta',\n            ww: '%d hafta',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir yıl',\n            yy: '%d yıl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'ıncı\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n    // This is currently too difficult (maybe even impossible) to add.\n    hooks.defineLocale('tzl', {\n        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM [dallas] YYYY',\n            LLL: 'D. MMMM [dallas] YYYY HH.mm',\n            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n        },\n        meridiemParse: /d\\'o|d\\'a/i,\n        isPM: function (input) {\n            return \"d'o\" === input.toLowerCase();\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? \"d'o\" : \"D'O\";\n            } else {\n                return isLower ? \"d'a\" : \"D'A\";\n            }\n        },\n        calendar: {\n            sameDay: '[oxhi à] LT',\n            nextDay: '[demà à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[ieiri à] LT',\n            lastWeek: '[sür el] dddd [lasteu à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'osprei %s',\n            past: 'ja%s',\n            s: processRelativeTime$8,\n            ss: processRelativeTime$8,\n            m: processRelativeTime$8,\n            mm: processRelativeTime$8,\n            h: processRelativeTime$8,\n            hh: processRelativeTime$8,\n            d: processRelativeTime$8,\n            dd: processRelativeTime$8,\n            M: processRelativeTime$8,\n            MM: processRelativeTime$8,\n            y: processRelativeTime$8,\n            yy: processRelativeTime$8,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    function processRelativeTime$8(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['viensas secunds', \"'iensas secunds\"],\n            ss: [number + ' secunds', '' + number + ' secunds'],\n            m: [\"'n míut\", \"'iens míut\"],\n            mm: [number + ' míuts', '' + number + ' míuts'],\n            h: [\"'n þora\", \"'iensa þora\"],\n            hh: [number + ' þoras', '' + number + ' þoras'],\n            d: [\"'n ziua\", \"'iensa ziua\"],\n            dd: [number + ' ziuas', '' + number + ' ziuas'],\n            M: [\"'n mes\", \"'iens mes\"],\n            MM: [number + ' mesen', '' + number + ' mesen'],\n            y: [\"'n ar\", \"'iens ar\"],\n            yy: [number + ' ars', '' + number + ' ars'],\n        };\n        return isFuture\n            ? format[key][0]\n            : withoutSuffix\n            ? format[key][0]\n            : format[key][1];\n    }\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('tzm-latn', {\n        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[asdkh g] LT',\n            nextDay: '[aska g] LT',\n            nextWeek: 'dddd [g] LT',\n            lastDay: '[assant g] LT',\n            lastWeek: 'dddd [g] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dadkh s yan %s',\n            past: 'yan %s',\n            s: 'imik',\n            ss: '%d imik',\n            m: 'minuḍ',\n            mm: '%d minuḍ',\n            h: 'saɛa',\n            hh: '%d tassaɛin',\n            d: 'ass',\n            dd: '%d ossan',\n            M: 'ayowr',\n            MM: '%d iyyirn',\n            y: 'asgas',\n            yy: '%d isgasn',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('tzm', {\n        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n            nextWeek: 'dddd [ⴴ] LT',\n            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n            lastWeek: 'dddd [ⴴ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n            past: 'ⵢⴰⵏ %s',\n            s: 'ⵉⵎⵉⴽ',\n            ss: '%d ⵉⵎⵉⴽ',\n            m: 'ⵎⵉⵏⵓⴺ',\n            mm: '%d ⵎⵉⵏⵓⴺ',\n            h: 'ⵙⴰⵄⴰ',\n            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n            d: 'ⴰⵙⵙ',\n            dd: '%d oⵙⵙⴰⵏ',\n            M: 'ⴰⵢoⵓⵔ',\n            MM: '%d ⵉⵢⵢⵉⵔⵏ',\n            y: 'ⴰⵙⴳⴰⵙ',\n            yy: '%d ⵉⵙⴳⴰⵙⵏ',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('ug-cn', {\n        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n            '_'\n        ),\n        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n        },\n        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                meridiem === 'يېرىم كېچە' ||\n                meridiem === 'سەھەر' ||\n                meridiem === 'چۈشتىن بۇرۇن'\n            ) {\n                return hour;\n            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n                return hour + 12;\n            } else {\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return 'يېرىم كېچە';\n            } else if (hm < 900) {\n                return 'سەھەر';\n            } else if (hm < 1130) {\n                return 'چۈشتىن بۇرۇن';\n            } else if (hm < 1230) {\n                return 'چۈش';\n            } else if (hm < 1800) {\n                return 'چۈشتىن كېيىن';\n            } else {\n                return 'كەچ';\n            }\n        },\n        calendar: {\n            sameDay: '[بۈگۈن سائەت] LT',\n            nextDay: '[ئەتە سائەت] LT',\n            nextWeek: '[كېلەركى] dddd [سائەت] LT',\n            lastDay: '[تۆنۈگۈن] LT',\n            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s كېيىن',\n            past: '%s بۇرۇن',\n            s: 'نەچچە سېكونت',\n            ss: '%d سېكونت',\n            m: 'بىر مىنۇت',\n            mm: '%d مىنۇت',\n            h: 'بىر سائەت',\n            hh: '%d سائەت',\n            d: 'بىر كۈن',\n            dd: '%d كۈن',\n            M: 'بىر ئاي',\n            MM: '%d ئاي',\n            y: 'بىر يىل',\n            yy: '%d يىل',\n        },\n\n        dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '-كۈنى';\n                case 'w':\n                case 'W':\n                    return number + '-ھەپتە';\n                default:\n                    return number;\n            }\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    function plural$6(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n            ? forms[1]\n            : forms[2];\n    }\n    function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n            dd: 'день_дні_днів',\n            MM: 'місяць_місяці_місяців',\n            yy: 'рік_роки_років',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвилина' : 'хвилину';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'година' : 'годину';\n        } else {\n            return number + ' ' + plural$6(format[key], +number);\n        }\n    }\n    function weekdaysCaseReplace(m, format) {\n        var weekdays = {\n                nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n                    '_'\n                ),\n                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n                    '_'\n                ),\n                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n                    '_'\n                ),\n            },\n            nounCase;\n\n        if (m === true) {\n            return weekdays['nominative']\n                .slice(1, 7)\n                .concat(weekdays['nominative'].slice(0, 1));\n        }\n        if (!m) {\n            return weekdays['nominative'];\n        }\n\n        nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n            ? 'accusative'\n            : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n            ? 'genitive'\n            : 'nominative';\n        return weekdays[nounCase][m.day()];\n    }\n    function processHoursFunction(str) {\n        return function () {\n            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n        };\n    }\n\n    hooks.defineLocale('uk', {\n        months: {\n            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n                '_'\n            ),\n            standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n                '_'\n            ),\n        },\n        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n            '_'\n        ),\n        weekdays: weekdaysCaseReplace,\n        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY р.',\n            LLL: 'D MMMM YYYY р., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n        },\n        calendar: {\n            sameDay: processHoursFunction('[Сьогодні '),\n            nextDay: processHoursFunction('[Завтра '),\n            lastDay: processHoursFunction('[Вчора '),\n            nextWeek: processHoursFunction('[У] dddd ['),\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return processHoursFunction('[Минулої] dddd [').call(this);\n                    case 1:\n                    case 2:\n                    case 4:\n                        return processHoursFunction('[Минулого] dddd [').call(this);\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: '%s тому',\n            s: 'декілька секунд',\n            ss: relativeTimeWithPlural$4,\n            m: relativeTimeWithPlural$4,\n            mm: relativeTimeWithPlural$4,\n            h: 'годину',\n            hh: relativeTimeWithPlural$4,\n            d: 'день',\n            dd: relativeTimeWithPlural$4,\n            M: 'місяць',\n            MM: relativeTimeWithPlural$4,\n            y: 'рік',\n            yy: relativeTimeWithPlural$4,\n        },\n        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n        meridiemParse: /ночі|ранку|дня|вечора/,\n        isPM: function (input) {\n            return /^(дня|вечора)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночі';\n            } else if (hour < 12) {\n                return 'ранку';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечора';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    var months$b = [\n            'جنوری',\n            'فروری',\n            'مارچ',\n            'اپریل',\n            'مئی',\n            'جون',\n            'جولائی',\n            'اگست',\n            'ستمبر',\n            'اکتوبر',\n            'نومبر',\n            'دسمبر',\n        ],\n        days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n    hooks.defineLocale('ur', {\n        months: months$b,\n        monthsShort: months$b,\n        weekdays: days$2,\n        weekdaysShort: days$2,\n        weekdaysMin: days$2,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[آج بوقت] LT',\n            nextDay: '[کل بوقت] LT',\n            nextWeek: 'dddd [بوقت] LT',\n            lastDay: '[گذشتہ روز بوقت] LT',\n            lastWeek: '[گذشتہ] dddd [بوقت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s بعد',\n            past: '%s قبل',\n            s: 'چند سیکنڈ',\n            ss: '%d سیکنڈ',\n            m: 'ایک منٹ',\n            mm: '%d منٹ',\n            h: 'ایک گھنٹہ',\n            hh: '%d گھنٹے',\n            d: 'ایک دن',\n            dd: '%d دن',\n            M: 'ایک ماہ',\n            MM: '%d ماہ',\n            y: 'ایک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('uz-latn', {\n        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n        weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n            '_'\n        ),\n        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bugun soat] LT [da]',\n            nextDay: '[Ertaga] LT [da]',\n            nextWeek: 'dddd [kuni soat] LT [da]',\n            lastDay: '[Kecha soat] LT [da]',\n            lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Yaqin %s ichida',\n            past: 'Bir necha %s oldin',\n            s: 'soniya',\n            ss: '%d soniya',\n            m: 'bir daqiqa',\n            mm: '%d daqiqa',\n            h: 'bir soat',\n            hh: '%d soat',\n            d: 'bir kun',\n            dd: '%d kun',\n            M: 'bir oy',\n            MM: '%d oy',\n            y: 'bir yil',\n            yy: '%d yil',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('uz', {\n        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бугун соат] LT [да]',\n            nextDay: '[Эртага] LT [да]',\n            nextWeek: 'dddd [куни соат] LT [да]',\n            lastDay: '[Кеча соат] LT [да]',\n            lastWeek: '[Утган] dddd [куни соат] LT [да]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Якин %s ичида',\n            past: 'Бир неча %s олдин',\n            s: 'фурсат',\n            ss: '%d фурсат',\n            m: 'бир дакика',\n            mm: '%d дакика',\n            h: 'бир соат',\n            hh: '%d соат',\n            d: 'бир кун',\n            dd: '%d кун',\n            M: 'бир ой',\n            MM: '%d ой',\n            y: 'бир йил',\n            yy: '%d йил',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('vi', {\n        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n            '_'\n        ),\n        monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n            '_'\n        ),\n        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /sa|ch/i,\n        isPM: function (input) {\n            return /^ch$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'sa' : 'SA';\n            } else {\n                return isLower ? 'ch' : 'CH';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [năm] YYYY',\n            LLL: 'D MMMM [năm] YYYY HH:mm',\n            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n            l: 'DD/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hôm nay lúc] LT',\n            nextDay: '[Ngày mai lúc] LT',\n            nextWeek: 'dddd [tuần tới lúc] LT',\n            lastDay: '[Hôm qua lúc] LT',\n            lastWeek: 'dddd [tuần trước lúc] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s tới',\n            past: '%s trước',\n            s: 'vài giây',\n            ss: '%d giây',\n            m: 'một phút',\n            mm: '%d phút',\n            h: 'một giờ',\n            hh: '%d giờ',\n            d: 'một ngày',\n            dd: '%d ngày',\n            w: 'một tuần',\n            ww: '%d tuần',\n            M: 'một tháng',\n            MM: '%d tháng',\n            y: 'một năm',\n            yy: '%d năm',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('x-pseudo', {\n        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n            '_'\n        ),\n        monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n            '_'\n        ),\n        monthsParseExact: true,\n        weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n            '_'\n        ),\n        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[T~ódá~ý át] LT',\n            nextDay: '[T~ómó~rró~w át] LT',\n            nextWeek: 'dddd [át] LT',\n            lastDay: '[Ý~ést~érdá~ý át] LT',\n            lastWeek: '[L~ást] dddd [át] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'í~ñ %s',\n            past: '%s á~gó',\n            s: 'á ~féw ~sécó~ñds',\n            ss: '%d s~écóñ~ds',\n            m: 'á ~míñ~úté',\n            mm: '%d m~íñú~tés',\n            h: 'á~ñ hó~úr',\n            hh: '%d h~óúrs',\n            d: 'á ~dáý',\n            dd: '%d d~áýs',\n            M: 'á ~móñ~th',\n            MM: '%d m~óñt~hs',\n            y: 'á ~ýéár',\n            yy: '%d ý~éárs',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('yo', {\n        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n            '_'\n        ),\n        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Ònì ni] LT',\n            nextDay: '[Ọ̀la ni] LT',\n            nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n            lastDay: '[Àna ni] LT',\n            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ní %s',\n            past: '%s kọjá',\n            s: 'ìsẹjú aayá die',\n            ss: 'aayá %d',\n            m: 'ìsẹjú kan',\n            mm: 'ìsẹjú %d',\n            h: 'wákati kan',\n            hh: 'wákati %d',\n            d: 'ọjọ́ kan',\n            dd: 'ọjọ́ %d',\n            M: 'osù kan',\n            MM: 'osù %d',\n            y: 'ọdún kan',\n            yy: 'ọdún %d',\n        },\n        dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n        ordinal: 'ọjọ́ %d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('zh-cn', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日Ah点mm分',\n            LLLL: 'YYYY年M月D日ddddAh点mm分',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            } else {\n                // '中午'\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[下]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            lastDay: '[昨天]LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[上]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '周';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s后',\n            past: '%s前',\n            s: '几秒',\n            ss: '%d 秒',\n            m: '1 分钟',\n            mm: '%d 分钟',\n            h: '1 小时',\n            hh: '%d 小时',\n            d: '1 天',\n            dd: '%d 天',\n            w: '1 周',\n            ww: '%d 周',\n            M: '1 个月',\n            MM: '%d 个月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('zh-hk', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1200) {\n                return '上午';\n            } else if (hm === 1200) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: '[下]ddddLT',\n            lastDay: '[昨天]LT',\n            lastWeek: '[上]ddddLT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('zh-mo', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s內',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    //! moment.js locale configuration\n\n    hooks.defineLocale('zh-tw', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    hooks.locale('en');\n\n    return hooks;\n\n})));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/overlayScrollbars/css/OverlayScrollbars.css",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n/*\nOVERLAY SCROLLBARS CORE:\n*/\n\nhtml.os-html,\nhtml.os-html > .os-host {\n    display: block;\n    overflow: hidden;\n    box-sizing: border-box;\n    height: 100% !important;\n    width: 100% !important;\n    min-width: 100% !important;\n    min-height: 100% !important;\n    margin: 0 !important;\n    position: absolute !important; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n}\nhtml.os-html > .os-host > .os-padding {\n    position: absolute; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n}\nbody.os-dragging,\nbody.os-dragging * {\n    cursor: default;\n}\n.os-host,\n.os-host-textarea {\n    position: relative;\n    overflow: visible !important;\n    -webkit-box-orient: vertical;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: column;\n            flex-direction: column;\n    -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap;\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start;\n    -ms-flex-line-pack: start;\n        align-content: flex-start;\n    -webkit-box-align: start;\n        -ms-flex-align: start;\n                -ms-grid-row-align: flex-start;\n            align-items: flex-start;\n}\n.os-host-flexbox {\n    overflow: hidden !important;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n}\n.os-host-flexbox > .os-size-auto-observer {\n    height: inherit !important;\n}\n.os-host-flexbox > .os-content-glue {\n    -webkit-box-flex: 1;\n        -ms-flex-positive: 1;\n            flex-grow: 1;\n    -ms-flex-negative: 0;\n        flex-shrink: 0;\n}\n.os-host-flexbox > .os-size-auto-observer,\n.os-host-flexbox > .os-content-glue {\n    min-height: 0;\n    min-width: 0;\n    -webkit-box-flex: 0;\n        -ms-flex-positive: 0;\n            flex-grow: 0;\n    -ms-flex-negative: 1;\n        flex-shrink: 1;\n    -ms-flex-preferred-size: auto;\n        flex-basis: auto;\n}\n#os-dummy-scrollbar-size {\n    position: fixed;\n    opacity: 0;\n    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';\n    visibility: hidden;\n    overflow: scroll;\n    height: 500px;\n    width: 500px;\n}\n#os-dummy-scrollbar-size > div {\n    width: 200%;\n    height: 200%; \n    margin: 10px 0;\n}\n/* fix restricted measuring */\n#os-dummy-scrollbar-size:before,\n#os-dummy-scrollbar-size:after,\n.os-content:before,\n.os-content:after {\n    content: '';\n    display: table;\n    width: 0.01px;\n    height: 0.01px;\n    line-height: 0;\n    font-size: 0;\n    flex-grow: 0;\n    flex-shrink: 0;\n    visibility: hidden;\n}\n#os-dummy-scrollbar-size,\n.os-viewport {\n    -ms-overflow-style: scrollbar !important;\n}\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size,\n.os-viewport-native-scrollbars-invisible.os-viewport {\n    scrollbar-width: none !important;\n}\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar,\n.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar,\n.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar-corner,\n.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar-corner {\n    display: none !important;\n    width: 0px !important;\n    height: 0px !important;\n    visibility: hidden !important;\n    background: transparent !important;\n}\n.os-content-glue {\n    box-sizing: inherit;\n    max-height: 100%;\n    max-width: 100%;\n    width: 100%;\n    pointer-events: none;\n}\n.os-padding {\n    box-sizing: inherit;\n    direction: inherit;\n    position: absolute;\n    overflow: visible;\n    padding: 0;\n    margin: 0;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    width: auto !important;\n    height: auto !important;\n\tz-index: 0;\n}\n.os-host-overflow > .os-padding {\n    overflow: hidden;\n}\n.os-viewport {\n    direction: inherit !important;\n    box-sizing: inherit !important;\n    resize: none !important;\n    outline: none !important;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    padding: 0;\n    margin: 0;\n    -webkit-overflow-scrolling: touch;\n}\n.os-content-arrange {\n    position: absolute;\n    z-index: -1;\n    min-height: 1px;\n    min-width: 1px;\n    pointer-events: none;\n}\n.os-content {\n    direction: inherit;\n    box-sizing: border-box !important;\n    position: relative;\n    display: block;\n    height: 100%;\n    width: 100%;\n    height: 100%;\n    width: 100%;\n    visibility: visible;\n}\n.os-content > .os-textarea {\n    box-sizing: border-box !important;\n    direction: inherit !important;\n    background: transparent !important;\n    outline: 0px none transparent !important;\n    overflow: hidden !important;\n    position: absolute !important;\n    display: block !important;\n    top: 0 !important;\n    left: 0 !important;\n    margin: 0 !important;\n    border-radius: 0px !important;\n    float: none !important;\n    -webkit-filter: none !important;\n            filter: none !important;\n    border: none !important;\n    resize: none !important;\n    -webkit-transform: none !important;\n            transform: none !important;\n    max-width: none !important;\n    max-height: none !important;\n    box-shadow: none !important;\n    -webkit-perspective: none !important;\n            perspective: none !important;\n    opacity: 1 !important;\n    z-index: 1 !important;\n    clip: auto !important;\n    vertical-align: baseline !important;\n    padding: 0px;\n}\n.os-host-rtl > .os-padding > .os-viewport > .os-content > .os-textarea {\n    right: 0 !important;\n}\n.os-content > .os-textarea-cover {\n    z-index: -1;\n    pointer-events: none;\n}\n.os-content > .os-textarea[wrap='off'] {\n    white-space: pre !important;\n    margin: 0px !important;\n}\n.os-text-inherit {\n    font-family: inherit;\n    font-size: inherit;\n    font-weight: inherit;\n    font-style: inherit;\n    font-variant: inherit;\n    text-transform: inherit;\n    text-decoration: inherit;\n    text-indent: inherit;\n    text-align: inherit;\n    text-shadow: inherit;\n    text-overflow: inherit;\n    letter-spacing: inherit;\n    word-spacing: inherit;\n    line-height: inherit;\n    unicode-bidi: inherit;\n    direction: inherit;\n    color: inherit;\n    cursor: text;\n}\n.os-resize-observer,\n.os-resize-observer-host {\n    box-sizing: inherit;\n    display: block;\n    visibility: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    overflow: hidden;\n    pointer-events: none;\n    z-index: -1;\n}\n.os-resize-observer-host {\n    padding: inherit;\n    border: inherit;\n    border-color: transparent;\n    border-style: solid;\n    box-sizing: border-box;\n}\n.os-resize-observer-host.observed {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n}\n.os-resize-observer-host > .os-resize-observer,\n.os-resize-observer-host.observed > .os-resize-observer {\n    height: 200%;\n    width: 200%;\n    padding: inherit;\n    border: inherit;\n    margin: 0;\n    display: block;\n    box-sizing: content-box;\n}\n.os-resize-observer-host.observed > .os-resize-observer,\n.os-resize-observer-host.observed > .os-resize-observer:before {\n    display: flex;\n    position: relative;\n    flex-grow: 1;\n    flex-shrink: 0;\n    flex-basis: auto;\n    box-sizing: border-box;\n}\n.os-resize-observer-host.observed > .os-resize-observer:before {\n    content: '';\n    box-sizing: content-box;\n    padding: inherit;\n    border: inherit;\n    margin: 0;\n}\n.os-size-auto-observer {\n    box-sizing: inherit !important;\n    height: 100%;\n    width: inherit;\n    max-width: 1px;\n    position: relative;\n    float: left;\n    max-height: 1px;\n    overflow: hidden;\n    z-index: -1;\n    padding: 0;\n    margin: 0;\n    pointer-events: none;\n    -webkit-box-flex: inherit;\n        -ms-flex-positive: inherit;\n            flex-grow: inherit;\n    -ms-flex-negative: 0;\n        flex-shrink: 0;\n    -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n}\n.os-size-auto-observer > .os-resize-observer {\n    width: 1000%;\n    height: 1000%;\n    min-height: 1px;\n    min-width: 1px;\n}\n.os-resize-observer-item {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    overflow: hidden;\n    z-index: -1;\n    opacity: 0;\n    direction: ltr !important;\n    -webkit-box-flex: 0 !important;\n    -ms-flex: none !important;\n    flex: none !important;\n}\n.os-resize-observer-item-final {\n    position: absolute;\n    left: 0;\n    top: 0;\n    -webkit-transition: none !important;\n    transition: none !important;\n    -webkit-box-flex: 0 !important;\n    -ms-flex: none !important;\n    flex: none !important;\n}\n.os-resize-observer {\n    -webkit-animation-duration: 0.001s;\n    animation-duration: 0.001s;\n    -webkit-animation-name: os-resize-observer-dummy-animation;\n    animation-name: os-resize-observer-dummy-animation;\n}\nobject.os-resize-observer {\n    box-sizing: border-box !important;\n}\n@-webkit-keyframes os-resize-observer-dummy-animation {\n    from {\n        z-index: 0;\n    }\n    to {\n        z-index: -1;\n    }\n}\n@keyframes os-resize-observer-dummy-animation {\n    from {\n        z-index: 0;\n    }\n    to {\n        z-index: -1;\n    }\n}\n\n/*\nCUSTOM SCROLLBARS AND CORNER CORE:\n*/\n\n.os-host-transition > .os-scrollbar,\n.os-host-transition > .os-scrollbar-corner {\n    -webkit-transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n    transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n}\nhtml.os-html > .os-host > .os-scrollbar {\n    position: absolute; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */\n    z-index: 999999; /* highest z-index of the page */\n}\n.os-scrollbar,\n.os-scrollbar-corner {\n    position: absolute;\n    opacity: 1;\n    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';\n    z-index: 1;\n}\n.os-scrollbar-corner {\n    bottom: 0;\n    right: 0;\n}\n.os-scrollbar {\n    pointer-events: none;\n}\n.os-scrollbar-track {\n    pointer-events: auto;\n    position: relative;\n    height: 100%;\n    width: 100%;\n    padding: 0 !important;\n    border: none !important;\n}\n.os-scrollbar-handle {\n    pointer-events: auto;\n    position: absolute;\n    width: 100%;\n    height: 100%;\n}\n.os-scrollbar-handle-off,\n.os-scrollbar-track-off {\n    pointer-events: none;\n}\n.os-scrollbar.os-scrollbar-unusable,\n.os-scrollbar.os-scrollbar-unusable * {\n    pointer-events: none !important;\n}\n.os-scrollbar.os-scrollbar-unusable .os-scrollbar-handle {\n    opacity: 0 !important;\n}\n.os-scrollbar-horizontal {\n    bottom: 0;\n    left: 0;\n}\n.os-scrollbar-vertical {\n    top: 0;\n    right: 0;\n}\n.os-host-rtl > .os-scrollbar-horizontal {\n    right: 0;\n}\n.os-host-rtl > .os-scrollbar-vertical {\n    right: auto;\n    left: 0;\n}\n.os-host-rtl > .os-scrollbar-corner {\n    right: auto;\n    left: 0;\n}\n.os-scrollbar-auto-hidden,\n.os-padding + .os-scrollbar-corner,\n.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-corner,\n.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal,\n.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-corner,\n.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical,\n.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical + .os-scrollbar-corner,\n.os-scrollbar-horizontal + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner,\n.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner {\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n}\n.os-scrollbar-corner-resize-both {\n    cursor: nwse-resize;\n}\n.os-host-rtl > .os-scrollbar-corner-resize-both {\n    cursor: nesw-resize;\n}\n.os-scrollbar-corner-resize-horizontal {\n    cursor: ew-resize;\n}\n.os-scrollbar-corner-resize-vertical {\n    cursor: ns-resize;\n}\n.os-dragging .os-scrollbar-corner.os-scrollbar-corner-resize {\n    cursor: default;\n}\n.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-vertical {\n    top: 0;\n    bottom: 0;\n}\n.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-horizontal,\n.os-host-rtl.os-host-resize-disabled.os-host-scrollbar-vertical-hidden > .os-scrollbar-horizontal {\n    right: 0;\n    left: 0;\n}\n.os-scrollbar:hover,\n.os-scrollbar-corner.os-scrollbar-corner-resize {\n    opacity: 1 !important;\n    visibility: visible !important;\n}\n.os-scrollbar-corner.os-scrollbar-corner-resize {\n    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB3aWR0aD0iMTAiICAgaGVpZ2h0PSIxMCIgICB2ZXJzaW9uPSIxLjEiPiAgPGcgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTEwNDIuMzYyMikiICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eTowLjQ5NDExNzY1O2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDcuNDI0MjE4NywxMDQyLjM2MjIgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjYgLTEuMzEwMTU2MiwxLjMxMDIgMCwwLjI5OSAwLjEwNDM0MTksMC41NzEgMC4yNzI5NDkyLDAuNzkxNSAwLjIwOTEwMjQsMC4xNDEzIDAuNDY1NjIwNiwwLjIxODQgMC43MzY5NjI5LDAuMjE4NCAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NiAxLjMxMDE1NjMsLTEuMzEwMiAwLC0wLjI3MTMgLTAuMDc3MDkzLC0wLjUyNzggLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0MSwtMC4xNjg2IC0wLjQ5MjU0NDMsLTAuMjcyOSAtMC43OTE1NTI4LC0wLjI3MjkgeiBtIDAsMy4wODQzIGMgLTAuNzIzNTc5MiwwIC0xLjMxMDE1NjIsMC41ODY2IC0xLjMxMDE1NjIsMS4zMTAyIDAsMC4yOTkgMC4xMDQzNDE5LDAuNTcxIDAuMjcyOTQ5MiwwLjc5MTUgMC4yMDkxMDI0LDAuMTQxMyAwLjQ2NTYyMDYsMC4yMTg0IDAuNzM2OTYyOSwwLjIxODQgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjYgMS4zMTAxNTYzLC0xLjMxMDIgMCwtMC4yNzEzIC0wLjA3NzA5MywtMC41Mjc4IC0wLjIxODM1OTQsLTAuNzM2OSAtMC4yMjA0OTQxLC0wLjE2ODYgLTAuNDkyNTQ0MywtMC4yNzMgLTAuNzkxNTUyOCwtMC4yNzMgeiBtIC0zLjA4NDMyNjEsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NiAtMS4zMTAxNTYzLDEuMzEwMiAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MSAwLjI3Mjk0OTIsMC43OTE1IDAuMjA5MTAyNCwwLjE0MTMgMC40NjU2MjA3LDAuMjE4NCAwLjczNjk2MjksMC4yMTg0IDAuNzIzNTc5MywwIDEuMzEwMTU2MywtMC41ODY2IDEuMzEwMTU2MywtMS4zMTAyIDAsLTAuMjcxMyAtMC4wNzcwOTMsLTAuNTI3OCAtMC4yMTgzNTk0LC0wLjczNjkgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzMgLTAuNzkxNTUyNywtMC4yNzMgeiBtIC0zLjAyOTczNjQsMy4wMjk4IEMgMC41ODY1NzY5MywxMDQ4LjQ3NjMgMCwxMDQ5LjA2MjggMCwxMDQ5Ljc4NjQgYyAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyMiwwLjc5MTYgMC4yMDkxMDIyOSwwLjE0MTIgMC40NjU2MjA2NSwwLjIxODMgMC43MzY5NjI4OCwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHogbSAzLjAyOTczNjQsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NSAtMS4zMTAxNTYzLDEuMzEwMSAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyLDAuNzkxNiAwLjIwOTEwMjQsMC4xNDEyIDAuNDY1NjIwNywwLjIxODMgMC43MzY5NjI5LDAuMjE4MyAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NSAxLjMxMDE1NjMsLTEuMzEwMSAwLC0wLjI3MTQgLTAuMDc3MDkzLC0wLjUyNzkgLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzI5IC0wLjc5MTU1MjcsLTAuMjcyOSB6IG0gMy4wODQzMjYxLDAgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjUgLTEuMzEwMTU2MiwxLjMxMDEgMCwwLjI5OSAwLjEwNDM0MTksMC41NzExIDAuMjcyOTQ5MiwwLjc5MTYgMC4yMDkxMDI0LDAuMTQxMiAwLjQ2NTYyMDYsMC4yMTgzIDAuNzM2OTYyOSwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHoiLz4gIDwvZz4gIDxnICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDguMjE1NzcxNSwwLjI3Mjk0OTIyIGMgMC4xNDEyNjY3LDAuMjA5MTAyMjkgMC4yMTgzNTk0LDAuNDY1NjIwNjUgMC4yMTgzNTk0LDAuNzM2OTYyODggMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDc2IC0wLjIwNTUxNzYsLTAuNzk3Nzk2NTkgLTAuNTE4NjAzNSwtMS4wMzcyMDY5OCB6IG0gMCwzLjA4NDMyNjE4IGMgMC4xNDEyNjY3LDAuMjA5MTAyMyAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MiAtMS4zMTAxNTYzLDEuMzEwMTU2MiAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTkzIDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAtMy4wODQzMjYyLDAgYyAwLjE0MTI2NjcsMC4yMDkxMDIzIDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYyIC0xLjMxMDE1NjMsMS4zMTAxNTYyIC0wLjI3MTM0MjIsMCAtMC41Mjc4NjA1LC0wLjA3NzA5MyAtMC43MzY5NjI5LC0wLjIxODM1OTMgMC4yMzk0MTA0LDAuMzEzMDg1OSAwLjYxMjYzNjMsMC41MTg2MDM1IDEuMDM3MjA3MSwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYyLC0wLjU4NjU3NyAxLjMxMDE1NjIsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NSwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogTSAyLjEwMTcwOSw2LjM4NzAxMTcgYyAwLjE0MTI2NjcsMC4yMDkxMDI0IDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYzIC0xLjMxMDE1NjMsMS4zMTAxNTYzIC0wLjI3MTM0MjIzLDAgLTAuNTI3ODYwNTksLTAuMDc3MDkzIC0wLjczNjk2Mjg4LC0wLjIxODM1OTQgMC4yMzk0MTAzOSwwLjMxMzA4NTkgMC42MTI2MzYyMiwwLjUxODYwMzUgMS4wMzcyMDY5OCwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAzLjAyOTczNjMsMCBjIDAuMTQxMjY2NywwLjIwOTEwMjQgMC4yMTgzNTk0LDAuNDY1NjIwNiAwLjIxODM1OTQsMC43MzY5NjI5IDAsMC43MjM1NzkzIC0wLjU4NjU3NywxLjMxMDE1NjMgLTEuMzEwMTU2MywxLjMxMDE1NjMgLTAuMjcxMzQyMiwwIC0wLjUyNzg2MDUsLTAuMDc3MDkzIC0wLjczNjk2MjksLTAuMjE4MzU5NCAwLjIzOTQxMDQsMC4zMTMwODU5IDAuNjEyNjM2MywwLjUxODYwMzUgMS4wMzcyMDcxLDAuNTE4NjAzNSAwLjcyMzU3OTMsMCAxLjMxMDE1NjIsLTAuNTg2NTc3IDEuMzEwMTU2MiwtMS4zMTAxNTYzIDAsLTAuNDI0NTcwOCAtMC4yMDU1MTc1LC0wLjc5Nzc5NjYgLTAuNTE4NjAzNSwtMS4wMzcyMDcgeiBtIDMuMDg0MzI2MiwwIGMgMC4xNDEyNjY3LDAuMjA5MTAyNCAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHoiIC8+ICA8L2c+PC9zdmc+);\n    background-repeat: no-repeat;\n    background-position: 100% 100%;\n    pointer-events: auto !important;\n}\n.os-host-rtl > .os-scrollbar-corner.os-scrollbar-corner-resize {\n    -webkit-transform: scale(-1, 1);\n    transform: scale(-1, 1);\n}\n.os-host-overflow {\n    overflow: hidden !important;\n}\n.os-host-overflow-x {\n} \n.os-host-overflow-y {\n} \n\n/*\nTHEMES:\n*/\n\n/* NONE THEME: */\n.os-theme-none > .os-scrollbar-horizontal,\n.os-theme-none > .os-scrollbar-vertical,\n.os-theme-none > .os-scrollbar-corner {\n    display: none !important;\n}\n.os-theme-none > .os-scrollbar-corner-resize {\n    display: block !important;\n    min-width: 10px;\n    min-height: 10px;\n}\n/* DARK & LIGHT THEME: */\n.os-theme-dark > .os-scrollbar-horizontal,\n.os-theme-light > .os-scrollbar-horizontal {\n    right: 10px;\n    height: 10px;\n}\n.os-theme-dark > .os-scrollbar-vertical,\n.os-theme-light > .os-scrollbar-vertical {\n    bottom: 10px;\n    width: 10px;\n}\n.os-theme-dark.os-host-rtl > .os-scrollbar-horizontal,\n.os-theme-light.os-host-rtl > .os-scrollbar-horizontal {\n    left: 10px;\n    right: 0;\n}\n.os-theme-dark > .os-scrollbar-corner,\n.os-theme-light > .os-scrollbar-corner {\n    height: 10px;\n    width: 10px;\n}\n.os-theme-dark > .os-scrollbar-corner,\n.os-theme-light > .os-scrollbar-corner {\n    background-color: transparent;\n}\n.os-theme-dark > .os-scrollbar,\n.os-theme-light > .os-scrollbar {\n    padding: 2px;\n    box-sizing: border-box;\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar.os-scrollbar-unusable,\n.os-theme-light > .os-scrollbar.os-scrollbar-unusable {\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track {\n    background: transparent;\n}\n.os-theme-dark > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle {\n    min-width: 30px;\n}\n.os-theme-dark > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle {\n    min-height: 30px;\n}\n.os-theme-dark.os-host-transition > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light.os-host-transition > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    -webkit-transition: background-color 0.3s;\n    transition: background-color 0.3s;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle,\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track,\n.os-theme-light > .os-scrollbar > .os-scrollbar-track {\n    border-radius: 10px;\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(0, 0, 0, 0.4);\n}\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(255, 255, 255, 0.4);\n}\n.os-theme-dark > .os-scrollbar:hover > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(0, 0, 0, .55);\n}\n.os-theme-light > .os-scrollbar:hover > .os-scrollbar-track > .os-scrollbar-handle {\n    background: rgba(255, 255, 255, .55);\n}\n.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle.active {\n    background: rgba(0, 0, 0, .7);\n}\n.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle.active {\n    background: rgba(255, 255, 255, .7);\n}\n.os-theme-dark > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    content: '';\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    display: block;\n}\n.os-theme-dark.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-dark.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light.os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light.os-host-scrollbar-vertical-hidden > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    display: none;\n}\n.os-theme-dark > .os-scrollbar-horizontal .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-horizontal .os-scrollbar-handle:before {\n    top: -6px;\n    bottom: -2px;\n}\n.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    left: -6px;\n    right: -2px;\n}\n.os-host-rtl.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,\n.os-host-rtl.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {\n    right: -6px;\n    left: -2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/overlayScrollbars/js/OverlayScrollbars.js",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n(function (global, factory) {\n    if (typeof define === 'function' && define.amd)\n        define(function () { return factory(global, global.document, undefined); });\n    else if (typeof module === 'object' && typeof module.exports === 'object')\n        module.exports = factory(global, global.document, undefined);\n    else\n        factory(global, global.document, undefined);\n}(typeof window !== 'undefined' ? window : this,\n    function (window, document, undefined) {\n        'use strict';\n        var PLUGINNAME = 'OverlayScrollbars';\n        var TYPES = {\n            o: 'object',\n            f: 'function',\n            a: 'array',\n            s: 'string',\n            b: 'boolean',\n            n: 'number',\n            u: 'undefined',\n            z: 'null'\n            //d : 'date',\n            //e : 'error',\n            //r : 'regexp',\n            //y : 'symbol'\n        };\n        var LEXICON = {\n            c: 'class',\n            s: 'style',\n            i: 'id',\n            l: 'length',\n            p: 'prototype',\n            ti: 'tabindex',\n            oH: 'offsetHeight',\n            cH: 'clientHeight',\n            sH: 'scrollHeight',\n            oW: 'offsetWidth',\n            cW: 'clientWidth',\n            sW: 'scrollWidth',\n            hOP: 'hasOwnProperty',\n            bCR: 'getBoundingClientRect'\n        };\n        var VENDORS = (function () {\n            //https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\n            var jsCache = {};\n            var cssCache = {};\n            var cssPrefixes = ['-webkit-', '-moz-', '-o-', '-ms-'];\n            var jsPrefixes = ['WebKit', 'Moz', 'O', 'MS'];\n            function firstLetterToUpper(str) {\n                return str.charAt(0).toUpperCase() + str.slice(1);\n            }\n\n            return {\n                _cssPrefixes: cssPrefixes,\n                _jsPrefixes: jsPrefixes,\n                _cssProperty: function (name) {\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var uppercasedName = firstLetterToUpper(name);\n                    var elmStyle = document.createElement('div')[LEXICON.s];\n                    var resultPossibilities;\n                    var i = 0;\n                    var v;\n                    var currVendorWithoutDashes;\n\n                    for (; i < cssPrefixes.length; i++) {\n                        currVendorWithoutDashes = cssPrefixes[i].replace(/-/g, '');\n                        resultPossibilities = [\n                            name, //transition\n                            cssPrefixes[i] + name, //-webkit-transition\n                            currVendorWithoutDashes + uppercasedName, //webkitTransition\n                            firstLetterToUpper(currVendorWithoutDashes) + uppercasedName //WebkitTransition\n                        ];\n                        for (v = 0; v < resultPossibilities[LEXICON.l]; v++) {\n                            if (elmStyle[resultPossibilities[v]] !== undefined) {\n                                result = resultPossibilities[v];\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _cssPropertyValue: function (property, values, suffix) {\n                    var name = property + ' ' + values;\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var dummyStyle = document.createElement('div')[LEXICON.s];\n                    var possbleValues = values.split(' ');\n                    var preparedSuffix = suffix || '';\n                    var i = 0;\n                    var v = -1;\n                    var prop;\n\n                    for (; i < possbleValues[LEXICON.l]; i++) {\n                        for (; v < VENDORS._cssPrefixes[LEXICON.l]; v++) {\n                            prop = v < 0 ? possbleValues[i] : VENDORS._cssPrefixes[v] + possbleValues[i];\n                            dummyStyle.cssText = property + ':' + prop + preparedSuffix;\n                            if (dummyStyle[LEXICON.l]) {\n                                result = prop;\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _jsAPI: function (name, isInterface, fallback) {\n                    var i = 0;\n                    var result = jsCache[name];\n\n                    if (!jsCache[LEXICON.hOP](name)) {\n                        result = window[name];\n                        for (; i < jsPrefixes[LEXICON.l]; i++)\n                            result = result || window[(isInterface ? jsPrefixes[i] : jsPrefixes[i].toLowerCase()) + firstLetterToUpper(name)];\n                        jsCache[name] = result;\n                    }\n                    return result || fallback;\n                }\n            }\n        })();\n        var COMPATIBILITY = (function () {\n            function windowSize(x) {\n                return x ? window.innerWidth || document.documentElement[LEXICON.cW] || document.body[LEXICON.cW] : window.innerHeight || document.documentElement[LEXICON.cH] || document.body[LEXICON.cH];\n            }\n            function bind(func, thisObj) {\n                if (typeof func != TYPES.f) {\n                    throw \"Can't bind function!\";\n                    // closest thing possible to the ECMAScript 5\n                    // internal IsCallable function\n                    //throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n                }\n                var proto = LEXICON.p;\n                var aArgs = Array[proto].slice.call(arguments, 2);\n                var fNOP = function () { };\n                var fBound = function () { return func.apply(this instanceof fNOP ? this : thisObj, aArgs.concat(Array[proto].slice.call(arguments))); };\n\n                if (func[proto])\n                    fNOP[proto] = func[proto]; // Function.prototype doesn't have a prototype property\n                fBound[proto] = new fNOP();\n\n                return fBound;\n            }\n\n            return {\n                /**\n                 * Gets the current window width.\n                 * @returns {Number|number} The current window width in pixel.\n                 */\n                wW: bind(windowSize, 0, true),\n\n                /**\n                 * Gets the current window height.\n                 * @returns {Number|number} The current window height in pixel.\n                 */\n                wH: bind(windowSize, 0),\n\n                /**\n                 * Gets the MutationObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The MutationsObserver Object or undefined.\n                 */\n                mO: bind(VENDORS._jsAPI, 0, 'MutationObserver', true),\n\n                /**\n                 * Gets the ResizeObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The ResizeObserver Object or undefined.\n                 */\n                rO: bind(VENDORS._jsAPI, 0, 'ResizeObserver', true),\n\n                /**\n                 * Gets the RequestAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The RequestAnimationFrame method or it's corresponding polyfill.\n                 */\n                rAF: bind(VENDORS._jsAPI, 0, 'requestAnimationFrame', false, function (func) { return window.setTimeout(func, 1000 / 60); }),\n\n                /**\n                 * Gets the CancelAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The CancelAnimationFrame method or it's corresponding polyfill.\n                 */\n                cAF: bind(VENDORS._jsAPI, 0, 'cancelAnimationFrame', false, function (id) { return window.clearTimeout(id); }),\n\n                /**\n                 * Gets the current time.\n                 * @returns {number} The current time.\n                 */\n                now: function () {\n                    return Date.now && Date.now() || new Date().getTime();\n                },\n\n                /**\n                 * Stops the propagation of the given event.\n                 * @param event The event of which the propagation shall be stoped.\n                 */\n                stpP: function (event) {\n                    if (event.stopPropagation)\n                        event.stopPropagation();\n                    else\n                        event.cancelBubble = true;\n                },\n\n                /**\n                 * Prevents the default action of the given event.\n                 * @param event The event of which the default action shall be prevented.\n                 */\n                prvD: function (event) {\n                    if (event.preventDefault && event.cancelable)\n                        event.preventDefault();\n                    else\n                        event.returnValue = false;\n                },\n\n                /**\n                 * Gets the pageX and pageY values of the given mouse event.\n                 * @param event The mouse event of which the pageX and pageX shall be got.\n                 * @returns {{x: number, y: number}} x = pageX value, y = pageY value.\n                 */\n                page: function (event) {\n                    event = event.originalEvent || event;\n\n                    var strPage = 'page';\n                    var strClient = 'client';\n                    var strX = 'X';\n                    var strY = 'Y';\n                    var target = event.target || event.srcElement || document;\n                    var eventDoc = target.ownerDocument || document;\n                    var doc = eventDoc.documentElement;\n                    var body = eventDoc.body;\n\n                    //if touch event return return pageX/Y of it\n                    if (event.touches !== undefined) {\n                        var touch = event.touches[0];\n                        return {\n                            x: touch[strPage + strX],\n                            y: touch[strPage + strY]\n                        }\n                    }\n\n                    // Calculate pageX/Y if not native supported\n                    if (!event[strPage + strX] && event[strClient + strX] && event[strClient + strX] != null) {\n\n                        return {\n                            x: event[strClient + strX] +\n                                (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n                                (doc && doc.clientLeft || body && body.clientLeft || 0),\n                            y: event[strClient + strY] +\n                                (doc && doc.scrollTop || body && body.scrollTop || 0) -\n                                (doc && doc.clientTop || body && body.clientTop || 0)\n                        }\n                    }\n                    return {\n                        x: event[strPage + strX],\n                        y: event[strPage + strY]\n                    };\n                },\n\n                /**\n                 * Gets the clicked mouse button of the given mouse event.\n                 * @param event The mouse event of which the clicked button shal be got.\n                 * @returns {number} The number of the clicked mouse button. (0 : none | 1 : leftButton | 2 : middleButton | 3 : rightButton)\n                 */\n                mBtn: function (event) {\n                    var button = event.button;\n                    if (!event.which && button !== undefined)\n                        return (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n                    else\n                        return event.which;\n                },\n\n                /**\n                 * Checks whether a item is in the given array and returns its index.\n                 * @param item The item of which the position in the array shall be determined.\n                 * @param arr The array.\n                 * @returns {number} The zero based index of the item or -1 if the item isn't in the array.\n                 */\n                inA: function (item, arr) {\n                    for (var i = 0; i < arr[LEXICON.l]; i++)\n                        //Sometiems in IE a \"SCRIPT70\" Permission denied error occurs if HTML elements in a iFrame are compared\n                        try {\n                            if (arr[i] === item)\n                                return i;\n                        }\n                        catch (e) { }\n                    return -1;\n                },\n\n                /**\n                 * Returns true if the given value is a array.\n                 * @param arr The potential array.\n                 * @returns {boolean} True if the given value is a array, false otherwise.\n                 */\n                isA: function (arr) {\n                    var def = Array.isArray;\n                    return def ? def(arr) : this.type(arr) == TYPES.a;\n                },\n\n                /**\n                 * Determine the internal JavaScript [[Class]] of the given object.\n                 * @param obj The object of which the type shall be determined.\n                 * @returns {string} The type of the given object.\n                 */\n                type: function (obj) {\n                    if (obj === undefined)\n                        return obj + '';\n                    if (obj === null)\n                        return obj + '';\n                    return Object[LEXICON.p].toString.call(obj).replace(/^\\[object (.+)\\]$/, '$1').toLowerCase();\n                },\n\n\n                bind: bind\n\n                /**\n                 * Gets the vendor-prefixed CSS property by the given name.\n                 * For example the given name is \"transform\" and you're using a old Firefox browser then the returned value would be \"-moz-transform\".\n                 * If the browser doesn't need a vendor-prefix, then the returned string is the given name.\n                 * If the browser doesn't support the given property name at all (not even with a vendor-prefix) the returned value is null.\n                 * @param propName The unprefixed CSS property name.\n                 * @returns {string|null} The vendor-prefixed CSS property or null if the browser doesn't support the given CSS property.\n\n                cssProp: function(propName) {\n                    return VENDORS._cssProperty(propName);\n                }\n                */\n            }\n        })();\n\n\n        var MATH = Math;\n        var JQUERY = window.jQuery;\n        var EASING = (function () {\n            var _easingsMath = {\n                p: MATH.PI,\n                c: MATH.cos,\n                s: MATH.sin,\n                w: MATH.pow,\n                t: MATH.sqrt,\n                n: MATH.asin,\n                a: MATH.abs,\n                o: 1.70158\n            };\n\n            /*\n             x : current percent (0 - 1),\n             t : current time (duration * percent),\n             b : start value (from),\n             c : end value (to),\n             d : duration\n\n             easingName : function(x, t, b, c, d) { return easedValue; }\n             */\n\n            return {\n                swing: function (x, t, b, c, d) {\n                    return 0.5 - _easingsMath.c(x * _easingsMath.p) / 2;\n                },\n                linear: function (x, t, b, c, d) {\n                    return x;\n                },\n                easeInQuad: function (x, t, b, c, d) {\n                    return c * (t /= d) * t + b;\n                },\n                easeOutQuad: function (x, t, b, c, d) {\n                    return -c * (t /= d) * (t - 2) + b;\n                },\n                easeInOutQuad: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t + b : -c / 2 * ((--t) * (t - 2) - 1) + b;\n                },\n                easeInCubic: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t + b;\n                },\n                easeOutCubic: function (x, t, b, c, d) {\n                    return c * ((t = t / d - 1) * t * t + 1) + b;\n                },\n                easeInOutCubic: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t + b : c / 2 * ((t -= 2) * t * t + 2) + b;\n                },\n                easeInQuart: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t * t + b;\n                },\n                easeOutQuart: function (x, t, b, c, d) {\n                    return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n                },\n                easeInOutQuart: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t + b : -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n                },\n                easeInQuint: function (x, t, b, c, d) {\n                    return c * (t /= d) * t * t * t * t + b;\n                },\n                easeOutQuint: function (x, t, b, c, d) {\n                    return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n                },\n                easeInOutQuint: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t * t + b : c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n                },\n                easeInSine: function (x, t, b, c, d) {\n                    return -c * _easingsMath.c(t / d * (_easingsMath.p / 2)) + c + b;\n                },\n                easeOutSine: function (x, t, b, c, d) {\n                    return c * _easingsMath.s(t / d * (_easingsMath.p / 2)) + b;\n                },\n                easeInOutSine: function (x, t, b, c, d) {\n                    return -c / 2 * (_easingsMath.c(_easingsMath.p * t / d) - 1) + b;\n                },\n                easeInExpo: function (x, t, b, c, d) {\n                    return (t == 0) ? b : c * _easingsMath.w(2, 10 * (t / d - 1)) + b;\n                },\n                easeOutExpo: function (x, t, b, c, d) {\n                    return (t == d) ? b + c : c * (-_easingsMath.w(2, -10 * t / d) + 1) + b;\n                },\n                easeInOutExpo: function (x, t, b, c, d) {\n                    if (t == 0) return b;\n                    if (t == d) return b + c;\n                    if ((t /= d / 2) < 1) return c / 2 * _easingsMath.w(2, 10 * (t - 1)) + b;\n                    return c / 2 * (-_easingsMath.w(2, -10 * --t) + 2) + b;\n                },\n                easeInCirc: function (x, t, b, c, d) {\n                    return -c * (_easingsMath.t(1 - (t /= d) * t) - 1) + b;\n                },\n                easeOutCirc: function (x, t, b, c, d) {\n                    return c * _easingsMath.t(1 - (t = t / d - 1) * t) + b;\n                },\n                easeInOutCirc: function (x, t, b, c, d) {\n                    return ((t /= d / 2) < 1) ? -c / 2 * (_easingsMath.t(1 - t * t) - 1) + b : c / 2 * (_easingsMath.t(1 - (t -= 2) * t) + 1) + b;\n                },\n                easeInElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    return -(a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b;\n                },\n                easeOutElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b;\n                    if ((t /= d) == 1) return b + c;\n                    if (!p) p = d * .3;\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    return a * _easingsMath.w(2, -10 * t) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) + c + b;\n                },\n                easeInOutElastic: function (x, t, b, c, d) {\n                    var s = _easingsMath.o; var p = 0; var a = c;\n                    if (t == 0) return b;\n                    if ((t /= d / 2) == 2) return b + c;\n                    if (!p) p = d * (.3 * 1.5);\n                    if (a < _easingsMath.a(c)) { a = c; s = p / 4; }\n                    else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a);\n                    if (t < 1) return -.5 * (a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b;\n                    return a * _easingsMath.w(2, -10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) * .5 + c + b;\n                },\n                easeInBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return c * (t /= d) * t * ((s + 1) * t - s) + b;\n                },\n                easeOutBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n                },\n                easeInOutBack: function (x, t, b, c, d, s) {\n                    s = s || _easingsMath.o;\n                    return ((t /= d / 2) < 1) ? c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b : c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n                },\n                easeInBounce: function (x, t, b, c, d) {\n                    return c - this.easeOutBounce(x, d - t, 0, c, d) + b;\n                },\n                easeOutBounce: function (x, t, b, c, d) {\n                    var o = 7.5625;\n                    if ((t /= d) < (1 / 2.75)) {\n                        return c * (o * t * t) + b;\n                    } else if (t < (2 / 2.75)) {\n                        return c * (o * (t -= (1.5 / 2.75)) * t + .75) + b;\n                    } else if (t < (2.5 / 2.75)) {\n                        return c * (o * (t -= (2.25 / 2.75)) * t + .9375) + b;\n                    } else {\n                        return c * (o * (t -= (2.625 / 2.75)) * t + .984375) + b;\n                    }\n                },\n                easeInOutBounce: function (x, t, b, c, d) {\n                    return (t < d / 2) ? this.easeInBounce(x, t * 2, 0, c, d) * .5 + b : this.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;\n                }\n            };\n            /*\n             *\n             * TERMS OF USE - EASING EQUATIONS\n             * \n             * Open source under the BSD License. \n             * \n             * Copyright Â© 2001 Robert Penner\n             * All rights reserved.\n             * \n             * Redistribution and use in source and binary forms, with or without modification, \n             * are permitted provided that the following conditions are met:\n             * \n             * Redistributions of source code must retain the above copyright notice, this list of \n             * conditions and the following disclaimer.\n             * Redistributions in binary form must reproduce the above copyright notice, this list \n             * of conditions and the following disclaimer in the documentation and/or other materials \n             * provided with the distribution.\n             * \n             * Neither the name of the author nor the names of contributors may be used to endorse \n             * or promote products derived from this software without specific prior written permission.\n             * \n             * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n             * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n             * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n             *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n             *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n             *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n             * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n             *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n             * OF THE POSSIBILITY OF SUCH DAMAGE. \n             *\n             */\n        })();\n        var FRAMEWORK = (function () {\n            var _rnothtmlwhite = (/[^\\x20\\t\\r\\n\\f]+/g);\n            var _strSpace = ' ';\n            var _strEmpty = '';\n            var _strScrollLeft = 'scrollLeft';\n            var _strScrollTop = 'scrollTop';\n            var _animations = [];\n            var _type = COMPATIBILITY.type;\n            var _cssNumber = {\n                animationIterationCount: true,\n                columnCount: true,\n                fillOpacity: true,\n                flexGrow: true,\n                flexShrink: true,\n                fontWeight: true,\n                lineHeight: true,\n                opacity: true,\n                order: true,\n                orphans: true,\n                widows: true,\n                zIndex: true,\n                zoom: true\n            };\n\n            function extend() {\n                var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {},\n                    i = 1,\n                    length = arguments[LEXICON.l],\n                    deep = false;\n\n                // Handle a deep copy situation\n                if (_type(target) == TYPES.b) {\n                    deep = target;\n                    target = arguments[1] || {};\n                    // skip the boolean and the target\n                    i = 2;\n                }\n\n                // Handle case when target is a string or something (possible in deep copy)\n                if (_type(target) != TYPES.o && !_type(target) == TYPES.f) {\n                    target = {};\n                }\n\n                // extend jQuery itself if only one argument is passed\n                if (length === i) {\n                    target = FakejQuery;\n                    --i;\n                }\n\n                for (; i < length; i++) {\n                    // Only deal with non-null/undefined values\n                    if ((options = arguments[i]) != null) {\n                        // Extend the base object\n                        for (name in options) {\n                            src = target[name];\n                            copy = options[name];\n\n                            // Prevent never-ending loop\n                            if (target === copy) {\n                                continue;\n                            }\n\n                            // Recurse if we're merging plain objects or arrays\n                            if (deep && copy && (isPlainObject(copy) || (copyIsArray = COMPATIBILITY.isA(copy)))) {\n                                if (copyIsArray) {\n                                    copyIsArray = false;\n                                    clone = src && COMPATIBILITY.isA(src) ? src : [];\n\n                                } else {\n                                    clone = src && isPlainObject(src) ? src : {};\n                                }\n\n                                // Never move original objects, clone them\n                                target[name] = extend(deep, clone, copy);\n\n                                // Don't bring in undefined values\n                            } else if (copy !== undefined) {\n                                target[name] = copy;\n                            }\n                        }\n                    }\n                }\n\n                // Return the modified object\n                return target;\n            };\n\n            function inArray(item, arr, fromIndex) {\n                for (var i = fromIndex || 0; i < arr[LEXICON.l]; i++)\n                    if (arr[i] === item)\n                        return i;\n                return -1;\n            }\n\n            function isFunction(obj) {\n                return _type(obj) == TYPES.f;\n            };\n\n            function isEmptyObject(obj) {\n                for (var name in obj)\n                    return false;\n                return true;\n            };\n\n            function isPlainObject(obj) {\n                if (!obj || _type(obj) != TYPES.o)\n                    return false;\n\n                var key;\n                var proto = LEXICON.p;\n                var hasOwnProperty = Object[proto].hasOwnProperty;\n                var hasOwnConstructor = hasOwnProperty.call(obj, 'constructor');\n                var hasIsPrototypeOf = obj.constructor && obj.constructor[proto] && hasOwnProperty.call(obj.constructor[proto], 'isPrototypeOf');\n\n                if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n                    return false;\n                }\n\n\n                for (key in obj) { /**/ }\n\n                return _type(key) == TYPES.u || hasOwnProperty.call(obj, key);\n            };\n\n            function each(obj, callback) {\n                var i = 0;\n\n                if (isArrayLike(obj)) {\n                    for (; i < obj[LEXICON.l]; i++) {\n                        if (callback.call(obj[i], i, obj[i]) === false)\n                            break;\n                    }\n                }\n                else {\n                    for (i in obj) {\n                        if (callback.call(obj[i], i, obj[i]) === false)\n                            break;\n                    }\n                }\n\n                return obj;\n            };\n\n            function isArrayLike(obj) {\n                var length = !!obj && [LEXICON.l] in obj && obj[LEXICON.l];\n                var t = _type(obj);\n                return isFunction(t) ? false : (t == TYPES.a || length === 0 || _type(length) == TYPES.n && length > 0 && (length - 1) in obj);\n            }\n\n            function stripAndCollapse(value) {\n                var tokens = value.match(_rnothtmlwhite) || [];\n                return tokens.join(_strSpace);\n            }\n\n            function matches(elem, selector) {\n                var nodeList = (elem.parentNode || document).querySelectorAll(selector) || [];\n                var i = nodeList[LEXICON.l];\n\n                while (i--)\n                    if (nodeList[i] == elem)\n                        return true;\n\n                return false;\n            }\n\n            function insertAdjacentElement(el, strategy, child) {\n                if (COMPATIBILITY.isA(child)) {\n                    for (var i = 0; i < child[LEXICON.l]; i++)\n                        insertAdjacentElement(el, strategy, child[i]);\n                }\n                else if (_type(child) == TYPES.s)\n                    el.insertAdjacentHTML(strategy, child);\n                else\n                    el.insertAdjacentElement(strategy, child.nodeType ? child : child[0]);\n            }\n\n            function setCSSVal(el, prop, val) {\n                try {\n                    if (el[LEXICON.s][prop] !== undefined)\n                        el[LEXICON.s][prop] = parseCSSVal(prop, val);\n                } catch (e) { }\n            }\n\n            function parseCSSVal(prop, val) {\n                if (!_cssNumber[prop.toLowerCase()] && _type(val) == TYPES.n)\n                    val += 'px';\n                return val;\n            }\n\n            function startNextAnimationInQ(animObj, removeFromQ) {\n                var index;\n                var nextAnim;\n                if (removeFromQ !== false)\n                    animObj.q.splice(0, 1);\n                if (animObj.q[LEXICON.l] > 0) {\n                    nextAnim = animObj.q[0];\n                    animate(animObj.el, nextAnim.props, nextAnim.duration, nextAnim.easing, nextAnim.complete, true);\n                }\n                else {\n                    index = inArray(animObj, _animations);\n                    if (index > -1)\n                        _animations.splice(index, 1);\n                }\n            }\n\n            function setAnimationValue(el, prop, value) {\n                if (prop === _strScrollLeft || prop === _strScrollTop)\n                    el[prop] = value;\n                else\n                    setCSSVal(el, prop, value);\n            }\n\n            function animate(el, props, options, easing, complete, guaranteedNext) {\n                var hasOptions = isPlainObject(options);\n                var from = {};\n                var to = {};\n                var i = 0;\n                var key;\n                var animObj;\n                var start;\n                var progress;\n                var step;\n                var specialEasing;\n                var duration;\n                if (hasOptions) {\n                    easing = options.easing;\n                    start = options.start;\n                    progress = options.progress;\n                    step = options.step;\n                    specialEasing = options.specialEasing;\n                    complete = options.complete;\n                    duration = options.duration;\n                }\n                else\n                    duration = options;\n                specialEasing = specialEasing || {};\n                duration = duration || 400;\n                easing = easing || 'swing';\n                guaranteedNext = guaranteedNext || false;\n\n                for (; i < _animations[LEXICON.l]; i++) {\n                    if (_animations[i].el === el) {\n                        animObj = _animations[i];\n                        break;\n                    }\n                }\n\n                if (!animObj) {\n                    animObj = {\n                        el: el,\n                        q: []\n                    };\n                    _animations.push(animObj);\n                }\n\n                for (key in props) {\n                    if (key === _strScrollLeft || key === _strScrollTop)\n                        from[key] = el[key];\n                    else\n                        from[key] = FakejQuery(el).css(key);\n                }\n\n                for (key in from) {\n                    if (from[key] !== props[key] && props[key] !== undefined)\n                        to[key] = props[key];\n                }\n\n                if (!isEmptyObject(to)) {\n                    var timeNow;\n                    var end;\n                    var percent;\n                    var fromVal;\n                    var toVal;\n                    var easedVal;\n                    var timeStart;\n                    var frame;\n                    var elapsed;\n                    var qPos = guaranteedNext ? 0 : inArray(qObj, animObj.q);\n                    var qObj = {\n                        props: to,\n                        duration: hasOptions ? options : duration,\n                        easing: easing,\n                        complete: complete\n                    };\n                    if (qPos === -1) {\n                        qPos = animObj.q[LEXICON.l];\n                        animObj.q.push(qObj);\n                    }\n\n                    if (qPos === 0) {\n                        if (duration > 0) {\n                            timeStart = COMPATIBILITY.now();\n                            frame = function () {\n                                timeNow = COMPATIBILITY.now();\n                                elapsed = (timeNow - timeStart);\n                                end = qObj.stop || elapsed >= duration;\n                                percent = 1 - ((MATH.max(0, timeStart + duration - timeNow) / duration) || 0);\n\n                                for (key in to) {\n                                    fromVal = parseFloat(from[key]);\n                                    toVal = parseFloat(to[key]);\n                                    easedVal = (toVal - fromVal) * EASING[specialEasing[key] || easing](percent, percent * duration, 0, 1, duration) + fromVal;\n                                    setAnimationValue(el, key, easedVal);\n                                    if (isFunction(step)) {\n                                        step(easedVal, {\n                                            elem: el,\n                                            prop: key,\n                                            start: fromVal,\n                                            now: easedVal,\n                                            end: toVal,\n                                            pos: percent,\n                                            options: {\n                                                easing: easing,\n                                                speacialEasing: specialEasing,\n                                                duration: duration,\n                                                complete: complete,\n                                                step: step\n                                            },\n                                            startTime: timeStart\n                                        });\n                                    }\n                                }\n\n                                if (isFunction(progress))\n                                    progress({}, percent, MATH.max(0, duration - elapsed));\n\n                                if (end) {\n                                    startNextAnimationInQ(animObj);\n                                    if (isFunction(complete))\n                                        complete();\n                                }\n                                else\n                                    qObj.frame = COMPATIBILITY.rAF()(frame);\n                            };\n                            qObj.frame = COMPATIBILITY.rAF()(frame);\n                        }\n                        else {\n                            for (key in to)\n                                setAnimationValue(el, key, to[key]);\n                            startNextAnimationInQ(animObj);\n                        }\n                    }\n                }\n                else if (guaranteedNext)\n                    startNextAnimationInQ(animObj);\n            }\n\n            function stop(el, clearQ, jumpToEnd) {\n                var animObj;\n                var qObj;\n                var key;\n                var i = 0;\n                for (; i < _animations[LEXICON.l]; i++) {\n                    animObj = _animations[i];\n                    if (animObj.el === el) {\n                        if (animObj.q[LEXICON.l] > 0) {\n                            qObj = animObj.q[0];\n                            qObj.stop = true;\n                            COMPATIBILITY.cAF()(qObj.frame);\n                            animObj.q.splice(0, 1);\n\n                            if (jumpToEnd)\n                                for (key in qObj.props)\n                                    setAnimationValue(el, key, qObj.props[key]);\n\n                            if (clearQ)\n                                animObj.q = [];\n                            else\n                                startNextAnimationInQ(animObj, false);\n                        }\n                        break;\n                    }\n                }\n            }\n\n            function elementIsVisible(el) {\n                return !!(el[LEXICON.oW] || el[LEXICON.oH] || el.getClientRects()[LEXICON.l]);\n            }\n\n            function FakejQuery(selector) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var base = new FakejQuery();\n                var elements = selector;\n                var i = 0;\n                var elms;\n                var el;\n\n                if (_type(selector) == TYPES.s) {\n                    elements = [];\n                    if (selector.charAt(0) === '<') {\n                        el = document.createElement('div');\n                        el.innerHTML = selector;\n                        elms = el.children;\n                    }\n                    else {\n                        elms = document.querySelectorAll(selector);\n                    }\n\n                    for (; i < elms[LEXICON.l]; i++)\n                        elements.push(elms[i]);\n                }\n\n                if (elements) {\n                    if (_type(elements) != TYPES.s && (!isArrayLike(elements) || elements === window || elements === elements.self))\n                        elements = [elements];\n\n                    for (i = 0; i < elements[LEXICON.l]; i++)\n                        base[i] = elements[i];\n\n                    base[LEXICON.l] = elements[LEXICON.l];\n                }\n\n                return base;\n            };\n\n            FakejQuery[LEXICON.p] = {\n\n                //EVENTS:\n\n                on: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n\n                    var eventNameLength = eventName[LEXICON.l];\n                    var i = 0;\n                    var el;\n                    return this.each(function () {\n                        el = this;\n                        try {\n                            if (el.addEventListener) {\n                                for (; i < eventNameLength; i++)\n                                    el.addEventListener(eventName[i], handler);\n                            }\n                            else if (el.detachEvent) {\n                                for (; i < eventNameLength; i++)\n                                    el.attachEvent('on' + eventName[i], handler);\n                            }\n                        } catch (e) { }\n                    });\n                },\n\n                off: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n\n                    var eventNameLength = eventName[LEXICON.l];\n                    var i = 0;\n                    var el;\n                    return this.each(function () {\n                        el = this;\n                        try {\n                            if (el.removeEventListener) {\n                                for (; i < eventNameLength; i++)\n                                    el.removeEventListener(eventName[i], handler);\n                            }\n                            else if (el.detachEvent) {\n                                for (; i < eventNameLength; i++)\n                                    el.detachEvent('on' + eventName[i], handler);\n                            }\n                        } catch (e) { }\n                    });\n                },\n\n                one: function (eventName, handler) {\n                    eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty];\n                    return this.each(function () {\n                        var el = FakejQuery(this);\n                        FakejQuery.each(eventName, function (i, oneEventName) {\n                            var oneHandler = function (e) {\n                                handler.call(this, e);\n                                el.off(oneEventName, oneHandler);\n                            };\n                            el.on(oneEventName, oneHandler);\n                        });\n                    });\n                },\n\n                trigger: function (eventName) {\n                    var el;\n                    var event;\n                    return this.each(function () {\n                        el = this;\n                        if (document.createEvent) {\n                            event = document.createEvent('HTMLEvents');\n                            event.initEvent(eventName, true, false);\n                            el.dispatchEvent(event);\n                        }\n                        else {\n                            el.fireEvent('on' + eventName);\n                        }\n                    });\n                },\n\n                //DOM NODE INSERTING / REMOVING:\n\n                append: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'beforeend', child); });\n                },\n\n                prepend: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'afterbegin', child); });\n                },\n\n                before: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'beforebegin', child); });\n                },\n\n                after: function (child) {\n                    return this.each(function () { insertAdjacentElement(this, 'afterend', child); });\n                },\n\n                remove: function () {\n                    return this.each(function () {\n                        var el = this;\n                        var parentNode = el.parentNode;\n                        if (parentNode != null)\n                            parentNode.removeChild(el);\n                    });\n                },\n\n                unwrap: function () {\n                    var parents = [];\n                    var i;\n                    var el;\n                    var parent;\n\n                    this.each(function () {\n                        parent = this.parentNode;\n                        if (inArray(parent, parents) === - 1)\n                            parents.push(parent);\n                    });\n\n                    for (i = 0; i < parents[LEXICON.l]; i++) {\n                        el = parents[i];\n                        parent = el.parentNode;\n                        while (el.firstChild)\n                            parent.insertBefore(el.firstChild, el);\n                        parent.removeChild(el);\n                    }\n\n                    return this;\n                },\n\n                wrapAll: function (wrapperHTML) {\n                    var i;\n                    var nodes = this;\n                    var wrapper = FakejQuery(wrapperHTML)[0];\n                    var deepest = wrapper;\n                    var parent = nodes[0].parentNode;\n                    var previousSibling = nodes[0].previousSibling;\n                    while (deepest.childNodes[LEXICON.l] > 0)\n                        deepest = deepest.childNodes[0];\n\n                    for (i = 0; nodes[LEXICON.l] - i; deepest.firstChild === nodes[0] && i++)\n                        deepest.appendChild(nodes[i]);\n\n                    var nextSibling = previousSibling ? previousSibling.nextSibling : parent.firstChild;\n                    parent.insertBefore(wrapper, nextSibling);\n\n                    return this;\n                },\n\n                wrapInner: function (wrapperHTML) {\n                    return this.each(function () {\n                        var el = FakejQuery(this);\n                        var contents = el.contents();\n\n                        if (contents[LEXICON.l])\n                            contents.wrapAll(wrapperHTML);\n                        else\n                            el.append(wrapperHTML);\n                    });\n                },\n\n                wrap: function (wrapperHTML) {\n                    return this.each(function () { FakejQuery(this).wrapAll(wrapperHTML); });\n                },\n\n\n                //DOM NODE MANIPULATION / INFORMATION:\n\n                css: function (styles, val) {\n                    var el;\n                    var key;\n                    var cptStyle;\n                    var getCptStyle = window.getComputedStyle;\n                    if (_type(styles) == TYPES.s) {\n                        if (val === undefined) {\n                            el = this[0];\n                            cptStyle = getCptStyle ? getCptStyle(el, null) : el.currentStyle[styles];\n\n                            //https://bugzilla.mozilla.org/show_bug.cgi?id=548397 can be null sometimes if iframe with display: none (firefox only!)\n                            return getCptStyle ? cptStyle != null ? cptStyle.getPropertyValue(styles) : el[LEXICON.s][styles] : cptStyle;\n                        }\n                        else {\n                            return this.each(function () {\n                                setCSSVal(this, styles, val);\n                            });\n                        }\n                    }\n                    else {\n                        return this.each(function () {\n                            for (key in styles)\n                                setCSSVal(this, key, styles[key]);\n                        });\n                    }\n                },\n\n                hasClass: function (className) {\n                    var elem, i = 0;\n                    var classNamePrepared = _strSpace + className + _strSpace;\n                    var classList;\n\n                    while ((elem = this[i++])) {\n                        classList = elem.classList;\n                        if (classList && classList.contains(className))\n                            return true;\n                        else if (elem.nodeType === 1 && (_strSpace + stripAndCollapse(elem.className + _strEmpty) + _strSpace).indexOf(classNamePrepared) > -1)\n                            return true;\n                    }\n\n                    return false;\n                },\n\n                addClass: function (className) {\n                    var classes;\n                    var elem;\n                    var cur;\n                    var curValue;\n                    var clazz;\n                    var finalValue;\n                    var supportClassList;\n                    var elmClassList;\n                    var i = 0;\n                    var v = 0;\n\n                    if (className) {\n                        classes = className.match(_rnothtmlwhite) || [];\n\n                        while ((elem = this[i++])) {\n                            elmClassList = elem.classList;\n                            if (supportClassList === undefined)\n                                supportClassList = elmClassList !== undefined;\n\n                            if (supportClassList) {\n                                while ((clazz = classes[v++]))\n                                    elmClassList.add(clazz);\n                            }\n                            else {\n                                curValue = elem.className + _strEmpty;\n                                cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace);\n\n                                if (cur) {\n                                    while ((clazz = classes[v++]))\n                                        if (cur.indexOf(_strSpace + clazz + _strSpace) < 0)\n                                            cur += clazz + _strSpace;\n\n                                    finalValue = stripAndCollapse(cur);\n                                    if (curValue !== finalValue)\n                                        elem.className = finalValue;\n                                }\n                            }\n                        }\n                    }\n\n                    return this;\n                },\n\n                removeClass: function (className) {\n                    var classes;\n                    var elem;\n                    var cur;\n                    var curValue;\n                    var clazz;\n                    var finalValue;\n                    var supportClassList;\n                    var elmClassList;\n                    var i = 0;\n                    var v = 0;\n\n                    if (className) {\n                        classes = className.match(_rnothtmlwhite) || [];\n\n                        while ((elem = this[i++])) {\n                            elmClassList = elem.classList;\n                            if (supportClassList === undefined)\n                                supportClassList = elmClassList !== undefined;\n\n                            if (supportClassList) {\n                                while ((clazz = classes[v++]))\n                                    elmClassList.remove(clazz);\n                            }\n                            else {\n                                curValue = elem.className + _strEmpty;\n                                cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace);\n\n                                if (cur) {\n                                    while ((clazz = classes[v++]))\n                                        while (cur.indexOf(_strSpace + clazz + _strSpace) > -1)\n                                            cur = cur.replace(_strSpace + clazz + _strSpace, _strSpace);\n\n                                    finalValue = stripAndCollapse(cur);\n                                    if (curValue !== finalValue)\n                                        elem.className = finalValue;\n                                }\n                            }\n                        }\n                    }\n\n                    return this;\n                },\n\n                hide: function () {\n                    return this.each(function () { this[LEXICON.s].display = 'none'; });\n                },\n\n                show: function () {\n                    return this.each(function () { this[LEXICON.s].display = 'block'; });\n                },\n\n                attr: function (attrName, value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el.getAttribute(attrName);\n                        el.setAttribute(attrName, value);\n                    }\n                    return this;\n                },\n\n                removeAttr: function (attrName) {\n                    return this.each(function () { this.removeAttribute(attrName); });\n                },\n\n                offset: function () {\n                    var el = this[0];\n                    var rect = el[LEXICON.bCR]();\n                    var scrollLeft = window.pageXOffset || document.documentElement[_strScrollLeft];\n                    var scrollTop = window.pageYOffset || document.documentElement[_strScrollTop];\n                    return {\n                        top: rect.top + scrollTop,\n                        left: rect.left + scrollLeft\n                    };\n                },\n\n                position: function () {\n                    var el = this[0];\n                    return {\n                        top: el.offsetTop,\n                        left: el.offsetLeft\n                    };\n                },\n\n                scrollLeft: function (value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el[_strScrollLeft];\n                        el[_strScrollLeft] = value;\n                    }\n                    return this;\n                },\n\n                scrollTop: function (value) {\n                    var i = 0;\n                    var el;\n                    while (el = this[i++]) {\n                        if (value === undefined)\n                            return el[_strScrollTop];\n                        el[_strScrollTop] = value;\n                    }\n                    return this;\n                },\n\n                val: function (value) {\n                    var el = this[0];\n                    if (!value)\n                        return el.value;\n                    el.value = value;\n                    return this;\n                },\n\n\n                //DOM TRAVERSAL / FILTERING:\n\n                first: function () {\n                    return this.eq(0);\n                },\n\n                last: function () {\n                    return this.eq(-1);\n                },\n\n                eq: function (index) {\n                    return FakejQuery(this[index >= 0 ? index : this[LEXICON.l] + index]);\n                },\n\n                find: function (selector) {\n                    var children = [];\n                    var i;\n                    this.each(function () {\n                        var el = this;\n                        var ch = el.querySelectorAll(selector);\n                        for (i = 0; i < ch[LEXICON.l]; i++)\n                            children.push(ch[i]);\n                    });\n                    return FakejQuery(children);\n                },\n\n                children: function (selector) {\n                    var children = [];\n                    var el;\n                    var ch;\n                    var i;\n\n                    this.each(function () {\n                        ch = this.children;\n                        for (i = 0; i < ch[LEXICON.l]; i++) {\n                            el = ch[i];\n                            if (selector) {\n                                if ((el.matches && el.matches(selector)) || matches(el, selector))\n                                    children.push(el);\n                            }\n                            else\n                                children.push(el);\n                        }\n                    });\n                    return FakejQuery(children);\n                },\n\n                parent: function (selector) {\n                    var parents = [];\n                    var parent;\n                    this.each(function () {\n                        parent = this.parentNode;\n                        if (selector ? FakejQuery(parent).is(selector) : true)\n                            parents.push(parent);\n                    });\n                    return FakejQuery(parents);\n                },\n\n                is: function (selector) {\n\n                    var el;\n                    var i;\n                    for (i = 0; i < this[LEXICON.l]; i++) {\n                        el = this[i];\n                        if (selector === ':visible')\n                            return elementIsVisible(el);\n                        if (selector === ':hidden')\n                            return !elementIsVisible(el);\n                        if ((el.matches && el.matches(selector)) || matches(el, selector))\n                            return true;\n                    }\n                    return false;\n                },\n\n                contents: function () {\n                    var contents = [];\n                    var childs;\n                    var i;\n\n                    this.each(function () {\n                        childs = this.childNodes;\n                        for (i = 0; i < childs[LEXICON.l]; i++)\n                            contents.push(childs[i]);\n                    });\n\n                    return FakejQuery(contents);\n                },\n\n                each: function (callback) {\n                    return each(this, callback);\n                },\n\n\n                //ANIMATION:\n\n                animate: function (props, duration, easing, complete) {\n                    return this.each(function () { animate(this, props, duration, easing, complete); });\n                },\n\n                stop: function (clearQ, jump) {\n                    return this.each(function () { stop(this, clearQ, jump); });\n                }\n            };\n\n            extend(FakejQuery, {\n                extend: extend,\n                inArray: inArray,\n                isEmptyObject: isEmptyObject,\n                isPlainObject: isPlainObject,\n                each: each\n            });\n\n            return FakejQuery;\n        })();\n        var INSTANCES = (function () {\n            var _targets = [];\n            var _instancePropertyString = '__overlayScrollbars__';\n\n            /**\n             * Register, unregister or get a certain (or all) instances.\n             * Register: Pass the target and the instance.\n             * Unregister: Pass the target and null.\n             * Get Instance: Pass the target from which the instance shall be got.\n             * Get Targets: Pass no arguments.\n             * @param target The target to which the instance shall be registered / from which the instance shall be unregistered / the instance shall be got\n             * @param instance The instance.\n             * @returns {*|void} Returns the instance from the given target.\n             */\n            return function (target, instance) {\n                var argLen = arguments[LEXICON.l];\n                if (argLen < 1) {\n                    //return all targets\n                    return _targets;\n                }\n                else {\n                    if (instance) {\n                        //register instance\n                        target[_instancePropertyString] = instance;\n                        _targets.push(target);\n                    }\n                    else {\n                        var index = COMPATIBILITY.inA(target, _targets);\n                        if (index > -1) {\n                            if (argLen > 1) {\n                                //unregister instance\n                                delete target[_instancePropertyString];\n                                _targets.splice(index, 1);\n                            }\n                            else {\n                                //get instance from target\n                                return _targets[index][_instancePropertyString];\n                            }\n                        }\n                    }\n                }\n            }\n        })();\n        var PLUGIN = (function () {\n            var _plugin;\n            var _pluginsGlobals;\n            var _pluginsAutoUpdateLoop;\n            var _pluginsExtensions = [];\n            var _pluginsOptions = (function () {\n                var type = COMPATIBILITY.type;\n                var possibleTemplateTypes = [\n                    TYPES.b, //boolean\n                    TYPES.n, //number\n                    TYPES.s, //string\n                    TYPES.a, //array\n                    TYPES.o, //object\n                    TYPES.f, //function\n                    TYPES.z  //null\n                ];\n                var restrictedStringsSplit = ' ';\n                var restrictedStringsPossibilitiesSplit = ':';\n                var classNameAllowedValues = [TYPES.z, TYPES.s];\n                var numberAllowedValues = TYPES.n;\n                var booleanNullAllowedValues = [TYPES.z, TYPES.b];\n                var booleanTrueTemplate = [true, TYPES.b];\n                var booleanFalseTemplate = [false, TYPES.b];\n                var callbackTemplate = [null, [TYPES.z, TYPES.f]];\n                var updateOnLoadTemplate = [['img'], [TYPES.s, TYPES.a, TYPES.z]];\n                var inheritedAttrsTemplate = [['style', 'class'], [TYPES.s, TYPES.a, TYPES.z]];\n                var resizeAllowedValues = 'n:none b:both h:horizontal v:vertical';\n                var overflowBehaviorAllowedValues = 'v-h:visible-hidden v-s:visible-scroll s:scroll h:hidden';\n                var scrollbarsVisibilityAllowedValues = 'v:visible h:hidden a:auto';\n                var scrollbarsAutoHideAllowedValues = 'n:never s:scroll l:leave m:move';\n                var optionsDefaultsAndTemplate = {\n                    className: ['os-theme-dark', classNameAllowedValues],                //null || string\n                    resize: ['none', resizeAllowedValues],                               //none || both  || horizontal || vertical || n || b || h || v\n                    sizeAutoCapable: booleanTrueTemplate,                                //true || false\n                    clipAlways: booleanTrueTemplate,                                     //true || false\n                    normalizeRTL: booleanTrueTemplate,                                   //true || false\n                    paddingAbsolute: booleanFalseTemplate,                               //true || false\n                    autoUpdate: [null, booleanNullAllowedValues],                        //true || false || null\n                    autoUpdateInterval: [33, numberAllowedValues],                       //number\n                    updateOnLoad: updateOnLoadTemplate,                                  //string || array || null\n                    nativeScrollbarsOverlaid: {\n                        showNativeScrollbars: booleanFalseTemplate,                      //true || false\n                        initialize: booleanTrueTemplate                                  //true || false\n                    },\n                    overflowBehavior: {\n                        x: ['scroll', overflowBehaviorAllowedValues],                    //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                        y: ['scroll', overflowBehaviorAllowedValues]                     //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                    },\n                    scrollbars: {\n                        visibility: ['auto', scrollbarsVisibilityAllowedValues],         //visible || hidden || auto || v || h || a\n                        autoHide: ['never', scrollbarsAutoHideAllowedValues],            //never || scroll || leave || move || n || s || l || m\n                        autoHideDelay: [800, numberAllowedValues],                       //number\n                        dragScrolling: booleanTrueTemplate,                              //true || false\n                        clickScrolling: booleanFalseTemplate,                            //true || false\n                        touchSupport: booleanTrueTemplate,                               //true || false\n                        snapHandle: booleanFalseTemplate                                 //true || false\n                    },\n                    textarea: {\n                        dynWidth: booleanFalseTemplate,                                  //true || false\n                        dynHeight: booleanFalseTemplate,                                 //true || false\n                        inheritedAttrs: inheritedAttrsTemplate                           //string || array || null\n                    },\n                    callbacks: {\n                        onInitialized: callbackTemplate,                                 //null || function\n                        onInitializationWithdrawn: callbackTemplate,                     //null || function\n                        onDestroyed: callbackTemplate,                                   //null || function\n                        onScrollStart: callbackTemplate,                                 //null || function\n                        onScroll: callbackTemplate,                                      //null || function\n                        onScrollStop: callbackTemplate,                                  //null || function\n                        onOverflowChanged: callbackTemplate,                             //null || function\n                        onOverflowAmountChanged: callbackTemplate,                       //null || function\n                        onDirectionChanged: callbackTemplate,                            //null || function\n                        onContentSizeChanged: callbackTemplate,                          //null || function\n                        onHostSizeChanged: callbackTemplate,                             //null || function\n                        onUpdated: callbackTemplate                                      //null || function\n                    }\n                };\n                var convert = function (template) {\n                    var recursive = function (obj) {\n                        var key;\n                        var val;\n                        var valType;\n                        for (key in obj) {\n                            if (!obj[LEXICON.hOP](key))\n                                continue;\n                            val = obj[key];\n                            valType = type(val);\n                            if (valType == TYPES.a)\n                                obj[key] = val[template ? 1 : 0];\n                            else if (valType == TYPES.o)\n                                obj[key] = recursive(val);\n                        }\n                        return obj;\n                    };\n                    return recursive(FRAMEWORK.extend(true, {}, optionsDefaultsAndTemplate));\n                };\n\n                return {\n                    _defaults: convert(),\n\n                    _template: convert(true),\n\n                    /**\n                     * Validates the passed object by the passed template.\n                     * @param obj The object which shall be validated.\n                     * @param template The template which defines the allowed values and types.\n                     * @param writeErrors True if errors shall be logged to the console.\n                     * @param diffObj If a object is passed then only valid differences to this object will be returned.\n                     * @returns {{}} A object which contains two objects called \"default\" and \"prepared\" which contains only the valid properties of the passed original object and discards not different values compared to the passed diffObj.\n                     */\n                    _validate: function (obj, template, writeErrors, diffObj) {\n                        var validatedOptions = {};\n                        var validatedOptionsPrepared = {};\n                        var objectCopy = FRAMEWORK.extend(true, {}, obj);\n                        var inArray = FRAMEWORK.inArray;\n                        var isEmptyObj = FRAMEWORK.isEmptyObject;\n                        var checkObjectProps = function (data, template, diffData, validatedOptions, validatedOptionsPrepared, prevPropName) {\n                            for (var prop in template) {\n                                if (template[LEXICON.hOP](prop) && data[LEXICON.hOP](prop)) {\n                                    var isValid = false;\n                                    var isDiff = false;\n                                    var templateValue = template[prop];\n                                    var templateValueType = type(templateValue);\n                                    var templateIsComplex = templateValueType == TYPES.o;\n                                    var templateTypes = !COMPATIBILITY.isA(templateValue) ? [templateValue] : templateValue;\n                                    var dataDiffValue = diffData[prop];\n                                    var dataValue = data[prop];\n                                    var dataValueType = type(dataValue);\n                                    var propPrefix = prevPropName ? prevPropName + '.' : '';\n                                    var error = \"The option \\\"\" + propPrefix + prop + \"\\\" wasn't set, because\";\n                                    var errorPossibleTypes = [];\n                                    var errorRestrictedStrings = [];\n                                    var restrictedStringValuesSplit;\n                                    var restrictedStringValuesPossibilitiesSplit;\n                                    var isRestrictedValue;\n                                    var mainPossibility;\n                                    var currType;\n                                    var i;\n                                    var v;\n                                    var j;\n\n                                    dataDiffValue = dataDiffValue === undefined ? {} : dataDiffValue;\n\n                                    //if the template has a object as value, it means that the options are complex (verschachtelt)\n                                    if (templateIsComplex && dataValueType == TYPES.o) {\n                                        validatedOptions[prop] = {};\n                                        validatedOptionsPrepared[prop] = {};\n                                        checkObjectProps(dataValue, templateValue, dataDiffValue, validatedOptions[prop], validatedOptionsPrepared[prop], propPrefix + prop);\n                                        FRAMEWORK.each([data, validatedOptions, validatedOptionsPrepared], function (index, value) {\n                                            if (isEmptyObj(value[prop])) {\n                                                delete value[prop];\n                                            }\n                                        });\n                                    }\n                                    else if (!templateIsComplex) {\n                                        for (i = 0; i < templateTypes[LEXICON.l]; i++) {\n                                            currType = templateTypes[i];\n                                            templateValueType = type(currType);\n                                            //if currtype is string and starts with restrictedStringPrefix and end with restrictedStringSuffix\n                                            isRestrictedValue = templateValueType == TYPES.s && inArray(currType, possibleTemplateTypes) === -1;\n                                            if (isRestrictedValue) {\n                                                errorPossibleTypes.push(TYPES.s);\n\n                                                //split it into a array which contains all possible values for example: [\"y:yes\", \"n:no\", \"m:maybe\"]\n                                                restrictedStringValuesSplit = currType.split(restrictedStringsSplit);\n                                                errorRestrictedStrings = errorRestrictedStrings.concat(restrictedStringValuesSplit);\n                                                for (v = 0; v < restrictedStringValuesSplit[LEXICON.l]; v++) {\n                                                    //split the possible values into their possibiliteis for example: [\"y\", \"yes\"] -> the first is always the mainPossibility\n                                                    restrictedStringValuesPossibilitiesSplit = restrictedStringValuesSplit[v].split(restrictedStringsPossibilitiesSplit);\n                                                    mainPossibility = restrictedStringValuesPossibilitiesSplit[0];\n                                                    for (j = 0; j < restrictedStringValuesPossibilitiesSplit[LEXICON.l]; j++) {\n                                                        //if any possibility matches with the dataValue, its valid\n                                                        if (dataValue === restrictedStringValuesPossibilitiesSplit[j]) {\n                                                            isValid = true;\n                                                            break;\n                                                        }\n                                                    }\n                                                    if (isValid)\n                                                        break;\n                                                }\n                                            }\n                                            else {\n                                                errorPossibleTypes.push(currType);\n\n                                                if (dataValueType === currType) {\n                                                    isValid = true;\n                                                    break;\n                                                }\n                                            }\n                                        }\n\n                                        if (isValid) {\n                                            isDiff = dataValue !== dataDiffValue;\n\n                                            if (isDiff)\n                                                validatedOptions[prop] = dataValue;\n\n                                            if (isRestrictedValue ? inArray(dataDiffValue, restrictedStringValuesPossibilitiesSplit) < 0 : isDiff)\n                                                validatedOptionsPrepared[prop] = isRestrictedValue ? mainPossibility : dataValue;\n                                        }\n                                        else if (writeErrors) {\n                                            console.warn(error + \" it doesn't accept the type [ \" + dataValueType.toUpperCase() + \" ] with the value of \\\"\" + dataValue + \"\\\".\\r\\n\" +\n                                                \"Accepted types are: [ \" + errorPossibleTypes.join(', ').toUpperCase() + \" ].\" +\n                                                (errorRestrictedStrings[length] > 0 ? \"\\r\\nValid strings are: [ \" + errorRestrictedStrings.join(', ').split(restrictedStringsPossibilitiesSplit).join(', ') + \" ].\" : ''));\n                                        }\n                                        delete data[prop];\n                                    }\n                                }\n                            }\n                        };\n                        checkObjectProps(objectCopy, template, diffObj || {}, validatedOptions, validatedOptionsPrepared);\n\n                        //add values which aren't specified in the template to the finished validated object to prevent them from being discarded\n                        /*\n                        if(keepForeignProps) {\n                            FRAMEWORK.extend(true, validatedOptions, objectCopy);\n                            FRAMEWORK.extend(true, validatedOptionsPrepared, objectCopy);\n                        }\n                        */\n\n                        if (!isEmptyObj(objectCopy) && writeErrors)\n                            console.warn('The following options are discarded due to invalidity:\\r\\n' + window.JSON.stringify(objectCopy, null, 2));\n\n                        return {\n                            _default: validatedOptions,\n                            _prepared: validatedOptionsPrepared\n                        };\n                    }\n                }\n            }());\n\n            /**\n             * Initializes the object which contains global information about the plugin and each instance of it.\n             */\n            function initOverlayScrollbarsStatics() {\n                if (!_pluginsGlobals)\n                    _pluginsGlobals = new OverlayScrollbarsGlobals(_pluginsOptions._defaults);\n                if (!_pluginsAutoUpdateLoop)\n                    _pluginsAutoUpdateLoop = new OverlayScrollbarsAutoUpdateLoop(_pluginsGlobals);\n            }\n\n            /**\n             * The global object for the OverlayScrollbars objects. It contains resources which every OverlayScrollbars object needs. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @param defaultOptions\n             * @constructor\n             */\n            function OverlayScrollbarsGlobals(defaultOptions) {\n                var _base = this;\n                var strOverflow = 'overflow';\n                var strHidden = 'hidden';\n                var strScroll = 'scroll';\n                var bodyElement = FRAMEWORK('body');\n                var scrollbarDummyElement = FRAMEWORK('<div id=\"os-dummy-scrollbar-size\"><div></div></div>');\n                var scrollbarDummyElement0 = scrollbarDummyElement[0];\n                var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));\n\n                bodyElement.append(scrollbarDummyElement);\n                scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)\n\n                var nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement0);\n                var nativeScrollbarIsOverlaid = {\n                    x: nativeScrollbarSize.x === 0,\n                    y: nativeScrollbarSize.y === 0\n                };\n                var msie = (function () {\n                    var ua = window.navigator.userAgent;\n                    var strIndexOf = 'indexOf';\n                    var strSubString = 'substring';\n                    var msie = ua[strIndexOf]('MSIE ');\n                    var trident = ua[strIndexOf]('Trident/');\n                    var edge = ua[strIndexOf]('Edge/');\n                    var rv = ua[strIndexOf]('rv:');\n                    var result;\n                    var parseIntFunc = parseInt;\n\n                    // IE 10 or older => return version number\n                    if (msie > 0)\n                        result = parseIntFunc(ua[strSubString](msie + 5, ua[strIndexOf]('.', msie)), 10);\n\n                    // IE 11 => return version number\n                    else if (trident > 0)\n                        result = parseIntFunc(ua[strSubString](rv + 3, ua[strIndexOf]('.', rv)), 10);\n\n                    // Edge (IE 12+) => return version number\n                    else if (edge > 0)\n                        result = parseIntFunc(ua[strSubString](edge + 5, ua[strIndexOf]('.', edge)), 10);\n\n                    // other browser\n                    return result;\n                })();\n\n                FRAMEWORK.extend(_base, {\n                    defaultOptions: defaultOptions,\n                    msie: msie,\n                    autoUpdateLoop: false,\n                    autoUpdateRecommended: !COMPATIBILITY.mO(),\n                    nativeScrollbarSize: nativeScrollbarSize,\n                    nativeScrollbarIsOverlaid: nativeScrollbarIsOverlaid,\n                    nativeScrollbarStyling: (function () {\n                        var result = false;\n                        scrollbarDummyElement.addClass('os-viewport-native-scrollbars-invisible');\n                        try {\n                            result = (scrollbarDummyElement.css('scrollbar-width') === 'none' && (msie > 9 || !msie)) || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';\n                        } catch (ex) { }\n\n                        //fix opera bug: scrollbar styles will only appear if overflow value is scroll or auto during the activation of the style.\n                        //and set overflow to scroll\n                        //scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();\n                        //return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;\n\n                        return result;\n                    })(),\n                    overlayScrollbarDummySize: { x: 30, y: 30 },\n                    cssCalc: VENDORS._cssPropertyValue('width', 'calc', '(1px)') || null,\n                    restrictedMeasuring: (function () {\n                        //https://bugzilla.mozilla.org/show_bug.cgi?id=1439305\n                        //since 1.11.0 always false -> fixed via CSS (hopefully)\n                        scrollbarDummyElement.css(strOverflow, strHidden);\n                        var scrollSize = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        scrollbarDummyElement.css(strOverflow, 'visible');\n                        var scrollSize2 = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        return (scrollSize.w - scrollSize2.w) !== 0 || (scrollSize.h - scrollSize2.h) !== 0;\n                    })(),\n                    rtlScrollBehavior: (function () {\n                        scrollbarDummyElement.css({ 'overflow-y': strHidden, 'overflow-x': strScroll, 'direction': 'rtl' }).scrollLeft(0);\n                        var dummyContainerOffset = scrollbarDummyElement.offset();\n                        var dummyContainerChildOffset = dummyContainerChild.offset();\n                        //https://github.com/KingSora/OverlayScrollbars/issues/187\n                        scrollbarDummyElement.scrollLeft(-999);\n                        var dummyContainerChildOffsetAfterScroll = dummyContainerChild.offset();\n                        return {\n                            //origin direction = determines if the zero scroll position is on the left or right side\n                            //'i' means 'invert' (i === true means that the axis must be inverted to be correct)\n                            //true = on the left side\n                            //false = on the right side\n                            i: dummyContainerOffset.left === dummyContainerChildOffset.left,\n                            //negative = determines if the maximum scroll is positive or negative\n                            //'n' means 'negate' (n === true means that the axis must be negated to be correct)\n                            //true = negative\n                            //false = positive\n                            n: dummyContainerChildOffset.left !== dummyContainerChildOffsetAfterScroll.left\n                        };\n                    })(),\n                    supportTransform: !!VENDORS._cssProperty('transform'),\n                    supportTransition: !!VENDORS._cssProperty('transition'),\n                    supportPassiveEvents: (function () {\n                        var supportsPassive = false;\n                        try {\n                            window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n                                get: function () {\n                                    supportsPassive = true;\n                                }\n                            }));\n                        } catch (e) { }\n                        return supportsPassive;\n                    })(),\n                    supportResizeObserver: !!COMPATIBILITY.rO(),\n                    supportMutationObserver: !!COMPATIBILITY.mO()\n                });\n\n                scrollbarDummyElement.removeAttr(LEXICON.s).remove();\n\n                //Catch zoom event:\n                (function () {\n                    if (nativeScrollbarIsOverlaid.x && nativeScrollbarIsOverlaid.y)\n                        return;\n\n                    var abs = MATH.abs;\n                    var windowWidth = COMPATIBILITY.wW();\n                    var windowHeight = COMPATIBILITY.wH();\n                    var windowDpr = getWindowDPR();\n                    var onResize = function () {\n                        if (INSTANCES().length > 0) {\n                            var newW = COMPATIBILITY.wW();\n                            var newH = COMPATIBILITY.wH();\n                            var deltaW = newW - windowWidth;\n                            var deltaH = newH - windowHeight;\n\n                            if (deltaW === 0 && deltaH === 0)\n                                return;\n\n                            var deltaWRatio = MATH.round(newW / (windowWidth / 100.0));\n                            var deltaHRatio = MATH.round(newH / (windowHeight / 100.0));\n                            var absDeltaW = abs(deltaW);\n                            var absDeltaH = abs(deltaH);\n                            var absDeltaWRatio = abs(deltaWRatio);\n                            var absDeltaHRatio = abs(deltaHRatio);\n                            var newDPR = getWindowDPR();\n\n                            var deltaIsBigger = absDeltaW > 2 && absDeltaH > 2;\n                            var difference = !differenceIsBiggerThanOne(absDeltaWRatio, absDeltaHRatio);\n                            var dprChanged = newDPR !== windowDpr && windowDpr > 0;\n                            var isZoom = deltaIsBigger && difference && dprChanged;\n                            var oldScrollbarSize = _base.nativeScrollbarSize;\n                            var newScrollbarSize;\n\n                            if (isZoom) {\n                                bodyElement.append(scrollbarDummyElement);\n                                newScrollbarSize = _base.nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement[0]);\n                                scrollbarDummyElement.remove();\n                                if (oldScrollbarSize.x !== newScrollbarSize.x || oldScrollbarSize.y !== newScrollbarSize.y) {\n                                    FRAMEWORK.each(INSTANCES(), function () {\n                                        if (INSTANCES(this))\n                                            INSTANCES(this).update('zoom');\n                                    });\n                                }\n                            }\n\n                            windowWidth = newW;\n                            windowHeight = newH;\n                            windowDpr = newDPR;\n                        }\n                    };\n\n                    function differenceIsBiggerThanOne(valOne, valTwo) {\n                        var absValOne = abs(valOne);\n                        var absValTwo = abs(valTwo);\n                        return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\n                    }\n\n                    function getWindowDPR() {\n                        var dDPI = window.screen.deviceXDPI || 0;\n                        var sDPI = window.screen.logicalXDPI || 1;\n                        return window.devicePixelRatio || (dDPI / sDPI);\n                    }\n\n                    FRAMEWORK(window).on('resize', onResize);\n                })();\n\n                function calcNativeScrollbarSize(measureElement) {\n                    return {\n                        x: measureElement[LEXICON.oH] - measureElement[LEXICON.cH],\n                        y: measureElement[LEXICON.oW] - measureElement[LEXICON.cW]\n                    };\n                }\n            }\n\n            /**\n             * The object which manages the auto update loop for all OverlayScrollbars objects. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @constructor\n             */\n            function OverlayScrollbarsAutoUpdateLoop(globals) {\n                var _base = this;\n                var _inArray = FRAMEWORK.inArray;\n                var _getNow = COMPATIBILITY.now;\n                var _strAutoUpdate = 'autoUpdate';\n                var _strAutoUpdateInterval = _strAutoUpdate + 'Interval';\n                var _strLength = LEXICON.l;\n                var _loopingInstances = [];\n                var _loopingInstancesIntervalCache = [];\n                var _loopIsActive = false;\n                var _loopIntervalDefault = 33;\n                var _loopInterval = _loopIntervalDefault;\n                var _loopTimeOld = _getNow();\n                var _loopID;\n\n\n                /**\n                 * The auto update loop which will run every 50 milliseconds or less if the update interval of a instance is lower than 50 milliseconds.\n                 */\n                var loop = function () {\n                    if (_loopingInstances[_strLength] > 0 && _loopIsActive) {\n                        _loopID = COMPATIBILITY.rAF()(function () {\n                            loop();\n                        });\n                        var timeNew = _getNow();\n                        var timeDelta = timeNew - _loopTimeOld;\n                        var lowestInterval;\n                        var instance;\n                        var instanceOptions;\n                        var instanceAutoUpdateAllowed;\n                        var instanceAutoUpdateInterval;\n                        var now;\n\n                        if (timeDelta > _loopInterval) {\n                            _loopTimeOld = timeNew - (timeDelta % _loopInterval);\n                            lowestInterval = _loopIntervalDefault;\n                            for (var i = 0; i < _loopingInstances[_strLength]; i++) {\n                                instance = _loopingInstances[i];\n                                if (instance !== undefined) {\n                                    instanceOptions = instance.options();\n                                    instanceAutoUpdateAllowed = instanceOptions[_strAutoUpdate];\n                                    instanceAutoUpdateInterval = MATH.max(1, instanceOptions[_strAutoUpdateInterval]);\n                                    now = _getNow();\n\n                                    if ((instanceAutoUpdateAllowed === true || instanceAutoUpdateAllowed === null) && (now - _loopingInstancesIntervalCache[i]) > instanceAutoUpdateInterval) {\n                                        instance.update('auto');\n                                        _loopingInstancesIntervalCache[i] = new Date(now += instanceAutoUpdateInterval);\n                                    }\n\n                                    lowestInterval = MATH.max(1, MATH.min(lowestInterval, instanceAutoUpdateInterval));\n                                }\n                            }\n                            _loopInterval = lowestInterval;\n                        }\n                    } else {\n                        _loopInterval = _loopIntervalDefault;\n                    }\n                };\n\n                /**\n                 * Add OverlayScrollbars instance to the auto update loop. Only successful if the instance isn't already added.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.add = function (instance) {\n                    if (_inArray(instance, _loopingInstances) === -1) {\n                        _loopingInstances.push(instance);\n                        _loopingInstancesIntervalCache.push(_getNow());\n                        if (_loopingInstances[_strLength] > 0 && !_loopIsActive) {\n                            _loopIsActive = true;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            loop();\n                        }\n                    }\n                };\n\n                /**\n                 * Remove OverlayScrollbars instance from the auto update loop. Only successful if the instance was added before.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.remove = function (instance) {\n                    var index = _inArray(instance, _loopingInstances);\n                    if (index > -1) {\n                        //remove from loopingInstances list\n                        _loopingInstancesIntervalCache.splice(index, 1);\n                        _loopingInstances.splice(index, 1);\n\n                        //correct update loop behavior\n                        if (_loopingInstances[_strLength] === 0 && _loopIsActive) {\n                            _loopIsActive = false;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            if (_loopID !== undefined) {\n                                COMPATIBILITY.cAF()(_loopID);\n                                _loopID = -1;\n                            }\n                        }\n                    }\n                };\n            }\n\n            /**\n             * A object which manages the scrollbars visibility of the target element.\n             * @param pluginTargetElement The element from which the scrollbars shall be hidden.\n             * @param options The custom options.\n             * @param extensions The custom extensions.\n             * @param globals\n             * @param autoUpdateLoop\n             * @returns {*}\n             * @constructor\n             */\n            function OverlayScrollbarsInstance(pluginTargetElement, options, extensions, globals, autoUpdateLoop) {\n                //shortcuts\n                var type = COMPATIBILITY.type;\n                var inArray = FRAMEWORK.inArray;\n                var each = FRAMEWORK.each;\n\n                //make correct instanceof\n                var _base = new _plugin();\n                var _frameworkProto = FRAMEWORK[LEXICON.p];\n\n                //if passed element is no HTML element: skip and return\n                if (!isHTMLElement(pluginTargetElement))\n                    return;\n\n                //if passed element is already initialized: set passed options if there are any and return its instance\n                if (INSTANCES(pluginTargetElement)) {\n                    var inst = INSTANCES(pluginTargetElement);\n                    inst.options(options);\n                    return inst;\n                }\n\n                //globals:\n                var _nativeScrollbarIsOverlaid;\n                var _overlayScrollbarDummySize;\n                var _rtlScrollBehavior;\n                var _autoUpdateRecommended;\n                var _msieVersion;\n                var _nativeScrollbarStyling;\n                var _cssCalc;\n                var _nativeScrollbarSize;\n                var _supportTransition;\n                var _supportTransform;\n                var _supportPassiveEvents;\n                var _supportResizeObserver;\n                var _supportMutationObserver;\n                var _restrictedMeasuring;\n\n                //general readonly:\n                var _initialized;\n                var _destroyed;\n                var _isTextarea;\n                var _isBody;\n                var _documentMixed;\n                var _domExists;\n\n                //general:\n                var _isBorderBox;\n                var _sizeAutoObserverAdded;\n                var _paddingX;\n                var _paddingY;\n                var _borderX;\n                var _borderY;\n                var _marginX;\n                var _marginY;\n                var _isRTL;\n                var _sleeping;\n                var _contentBorderSize = {};\n                var _scrollHorizontalInfo = {};\n                var _scrollVerticalInfo = {};\n                var _viewportSize = {};\n                var _nativeScrollbarMinSize = {};\n\n                //naming:\t\n                var _strMinusHidden = '-hidden';\n                var _strMarginMinus = 'margin-';\n                var _strPaddingMinus = 'padding-';\n                var _strBorderMinus = 'border-';\n                var _strTop = 'top';\n                var _strRight = 'right';\n                var _strBottom = 'bottom';\n                var _strLeft = 'left';\n                var _strMinMinus = 'min-';\n                var _strMaxMinus = 'max-';\n                var _strWidth = 'width';\n                var _strHeight = 'height';\n                var _strFloat = 'float';\n                var _strEmpty = '';\n                var _strAuto = 'auto';\n                var _strSync = 'sync';\n                var _strScroll = 'scroll';\n                var _strHundredPercent = '100%';\n                var _strX = 'x';\n                var _strY = 'y';\n                var _strDot = '.';\n                var _strSpace = ' ';\n                var _strScrollbar = 'scrollbar';\n                var _strMinusHorizontal = '-horizontal';\n                var _strMinusVertical = '-vertical';\n                var _strScrollLeft = _strScroll + 'Left';\n                var _strScrollTop = _strScroll + 'Top';\n                var _strMouseTouchDownEvent = 'mousedown touchstart';\n                var _strMouseTouchUpEvent = 'mouseup touchend touchcancel';\n                var _strMouseTouchMoveEvent = 'mousemove touchmove';\n                var _strMouseEnter = 'mouseenter';\n                var _strMouseLeave = 'mouseleave';\n                var _strKeyDownEvent = 'keydown';\n                var _strKeyUpEvent = 'keyup';\n                var _strSelectStartEvent = 'selectstart';\n                var _strTransitionEndEvent = 'transitionend webkitTransitionEnd oTransitionEnd';\n                var _strResizeObserverProperty = '__overlayScrollbarsRO__';\n\n                //class names:\t\n                var _cassNamesPrefix = 'os-';\n                var _classNameHTMLElement = _cassNamesPrefix + 'html';\n                var _classNameHostElement = _cassNamesPrefix + 'host';\n                var _classNameHostElementForeign = _classNameHostElement + '-foreign';\n                var _classNameHostTextareaElement = _classNameHostElement + '-textarea';\n                var _classNameHostScrollbarHorizontalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusHorizontal + _strMinusHidden;\n                var _classNameHostScrollbarVerticalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusVertical + _strMinusHidden;\n                var _classNameHostTransition = _classNameHostElement + '-transition';\n                var _classNameHostRTL = _classNameHostElement + '-rtl';\n                var _classNameHostResizeDisabled = _classNameHostElement + '-resize-disabled';\n                var _classNameHostScrolling = _classNameHostElement + '-scrolling';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflowX = _classNameHostOverflow + '-x';\n                var _classNameHostOverflowY = _classNameHostOverflow + '-y';\n                var _classNameTextareaElement = _cassNamesPrefix + 'textarea';\n                var _classNameTextareaCoverElement = _classNameTextareaElement + '-cover';\n                var _classNamePaddingElement = _cassNamesPrefix + 'padding';\n                var _classNameViewportElement = _cassNamesPrefix + 'viewport';\n                var _classNameViewportNativeScrollbarsInvisible = _classNameViewportElement + '-native-scrollbars-invisible';\n                var _classNameViewportNativeScrollbarsOverlaid = _classNameViewportElement + '-native-scrollbars-overlaid';\n                var _classNameContentElement = _cassNamesPrefix + 'content';\n                var _classNameContentArrangeElement = _cassNamesPrefix + 'content-arrange';\n                var _classNameContentGlueElement = _cassNamesPrefix + 'content-glue';\n                var _classNameSizeAutoObserverElement = _cassNamesPrefix + 'size-auto-observer';\n                var _classNameResizeObserverElement = _cassNamesPrefix + 'resize-observer';\n                var _classNameResizeObserverItemElement = _cassNamesPrefix + 'resize-observer-item';\n                var _classNameResizeObserverItemFinalElement = _classNameResizeObserverItemElement + '-final';\n                var _classNameTextInherit = _cassNamesPrefix + 'text-inherit';\n                var _classNameScrollbar = _cassNamesPrefix + _strScrollbar;\n                var _classNameScrollbarTrack = _classNameScrollbar + '-track';\n                var _classNameScrollbarTrackOff = _classNameScrollbarTrack + '-off';\n                var _classNameScrollbarHandle = _classNameScrollbar + '-handle';\n                var _classNameScrollbarHandleOff = _classNameScrollbarHandle + '-off';\n                var _classNameScrollbarUnusable = _classNameScrollbar + '-unusable';\n                var _classNameScrollbarAutoHidden = _classNameScrollbar + '-' + _strAuto + _strMinusHidden;\n                var _classNameScrollbarCorner = _classNameScrollbar + '-corner';\n                var _classNameScrollbarCornerResize = _classNameScrollbarCorner + '-resize';\n                var _classNameScrollbarCornerResizeB = _classNameScrollbarCornerResize + '-both';\n                var _classNameScrollbarCornerResizeH = _classNameScrollbarCornerResize + _strMinusHorizontal;\n                var _classNameScrollbarCornerResizeV = _classNameScrollbarCornerResize + _strMinusVertical;\n                var _classNameScrollbarHorizontal = _classNameScrollbar + _strMinusHorizontal;\n                var _classNameScrollbarVertical = _classNameScrollbar + _strMinusVertical;\n                var _classNameDragging = _cassNamesPrefix + 'dragging';\n                var _classNameThemeNone = _cassNamesPrefix + 'theme-none';\n                var _classNamesDynamicDestroy = [\n                    _classNameViewportNativeScrollbarsInvisible,\n                    _classNameViewportNativeScrollbarsOverlaid,\n                    _classNameScrollbarTrackOff,\n                    _classNameScrollbarHandleOff,\n                    _classNameScrollbarUnusable,\n                    _classNameScrollbarAutoHidden,\n                    _classNameScrollbarCornerResize,\n                    _classNameScrollbarCornerResizeB,\n                    _classNameScrollbarCornerResizeH,\n                    _classNameScrollbarCornerResizeV,\n                    _classNameDragging].join(_strSpace);\n\n                //callbacks:\t\n                var _callbacksInitQeueue = [];\n\n                //attrs viewport shall inherit from target\t\n                var _viewportAttrsFromTarget = [LEXICON.ti];\n\n                //options:\t\n                var _defaultOptions;\n                var _currentOptions;\n                var _currentPreparedOptions;\n\n                //extensions:\t\n                var _extensions = {};\n                var _extensionsPrivateMethods = 'added removed on contract';\n\n                //update\t\n                var _lastUpdateTime;\n                var _swallowedUpdateHints = {};\n                var _swallowedUpdateTimeout;\n                var _swallowUpdateLag = 42;\n                var _updateOnLoadEventName = 'load';\n                var _updateOnLoadElms = [];\n\n                //DOM elements:\t\n                var _windowElement;\n                var _documentElement;\n                var _htmlElement;\n                var _bodyElement;\n                var _targetElement;                     //the target element of this OverlayScrollbars object\t\n                var _hostElement;                       //the host element of this OverlayScrollbars object -> may be the same as targetElement\t\n                var _sizeAutoObserverElement;           //observes size auto changes\t\n                var _sizeObserverElement;               //observes size and padding changes\t\n                var _paddingElement;                    //manages the padding\t\n                var _viewportElement;                   //is the viewport of our scrollbar model\t\n                var _contentElement;                    //the element which holds the content\t\n                var _contentArrangeElement;             //is needed for correct sizing of the content element (only if native scrollbars are overlays)\t\n                var _contentGlueElement;                //has always the size of the content element\t\n                var _textareaCoverElement;              //only applied if target is a textarea element. Used for correct size calculation and for prevention of uncontrolled scrolling\t\n                var _scrollbarCornerElement;\n                var _scrollbarHorizontalElement;\n                var _scrollbarHorizontalTrackElement;\n                var _scrollbarHorizontalHandleElement;\n                var _scrollbarVerticalElement;\n                var _scrollbarVerticalTrackElement;\n                var _scrollbarVerticalHandleElement;\n                var _windowElementNative;\n                var _documentElementNative;\n                var _targetElementNative;\n                var _hostElementNative;\n                var _sizeAutoObserverElementNative;\n                var _sizeObserverElementNative;\n                var _paddingElementNative;\n                var _viewportElementNative;\n                var _contentElementNative;\n\n                //Cache:\t\n                var _hostSizeCache;\n                var _contentScrollSizeCache;\n                var _arrangeContentSizeCache;\n                var _hasOverflowCache;\n                var _hideOverflowCache;\n                var _widthAutoCache;\n                var _heightAutoCache;\n                var _cssBoxSizingCache;\n                var _cssPaddingCache;\n                var _cssBorderCache;\n                var _cssMarginCache;\n                var _cssDirectionCache;\n                var _cssDirectionDetectedCache;\n                var _paddingAbsoluteCache;\n                var _clipAlwaysCache;\n                var _contentGlueSizeCache;\n                var _overflowBehaviorCache;\n                var _overflowAmountCache;\n                var _ignoreOverlayScrollbarHidingCache;\n                var _autoUpdateCache;\n                var _sizeAutoCapableCache;\n                var _contentElementScrollSizeChangeDetectedCache;\n                var _hostElementSizeChangeDetectedCache;\n                var _scrollbarsVisibilityCache;\n                var _scrollbarsAutoHideCache;\n                var _scrollbarsClickScrollingCache;\n                var _scrollbarsDragScrollingCache;\n                var _resizeCache;\n                var _normalizeRTLCache;\n                var _classNameCache;\n                var _oldClassName;\n                var _textareaAutoWrappingCache;\n                var _textareaInfoCache;\n                var _textareaSizeCache;\n                var _textareaDynHeightCache;\n                var _textareaDynWidthCache;\n                var _bodyMinSizeCache;\n                var _updateAutoCache = {};\n\n                //MutationObserver:\t\n                var _mutationObserverHost;\n                var _mutationObserverContent;\n                var _mutationObserverHostCallback;\n                var _mutationObserverContentCallback;\n                var _mutationObserversConnected;\n                var _mutationObserverAttrsTextarea = ['wrap', 'cols', 'rows'];\n                var _mutationObserverAttrsHost = [LEXICON.i, LEXICON.c, LEXICON.s, 'open'].concat(_viewportAttrsFromTarget);\n\n                //events:\t\n                var _destroyEvents = [];\n\n                //textarea:\t\n                var _textareaHasFocus;\n\n                //scrollbars:\t\n                var _scrollbarsAutoHideTimeoutId;\n                var _scrollbarsAutoHideMoveTimeoutId;\n                var _scrollbarsAutoHideDelay;\n                var _scrollbarsAutoHideNever;\n                var _scrollbarsAutoHideScroll;\n                var _scrollbarsAutoHideMove;\n                var _scrollbarsAutoHideLeave;\n                var _scrollbarsHandleHovered;\n                var _scrollbarsHandlesDefineScrollPos;\n\n                //resize\t\n                var _resizeNone;\n                var _resizeBoth;\n                var _resizeHorizontal;\n                var _resizeVertical;\n\n\n                //==== Event Listener ====//\t\n\n                /**\t\n                 * Adds or removes a event listener from the given element. \t\n                 * @param element The element to which the event listener shall be applied or removed.\t\n                 * @param eventNames The name(s) of the events.\t\n                 * @param listener The method which shall be called.\t\n                 * @param remove True if the handler shall be removed, false or undefined if the handler shall be added.\t\n                 * @param passiveOrOptions The options for the event.\n                 */\n                function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {\n                    var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);\n                    var method = remove ? 'removeEventListener' : 'addEventListener';\n                    var onOff = remove ? 'off' : 'on';\n                    var events = collected ? false : eventNames.split(_strSpace)\n                    var i = 0;\n\n                    var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);\n                    var passive = (_supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive) : passiveOrOptions)) || false;\n                    var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);\n                    var nativeParam = _supportPassiveEvents ? {\n                        passive: passive,\n                        capture: capture,\n                    } : capture;\n\n                    if (collected) {\n                        for (; i < eventNames[LEXICON.l]; i++)\n                            setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);\n                    }\n                    else {\n                        for (; i < events[LEXICON.l]; i++) {\n                            if(_supportPassiveEvents) {\n                                element[0][method](events[i], listener, nativeParam);\n                            }\n                            else {\n                                element[onOff](events[i], listener);\n                            }     \n                        }\n                    }\n                }\n\n\n                function addDestroyEventListener(element, eventNames, listener, passive) {\n                    setupResponsiveEventListener(element, eventNames, listener, false, passive);\n                    _destroyEvents.push(COMPATIBILITY.bind(setupResponsiveEventListener, 0, element, eventNames, listener, true, passive));\n                }\n\n                //==== Resize Observer ====//\n\n                /**\n                 * Adds or removes a resize observer from the given element.\n                 * @param targetElement The element to which the resize observer shall be added or removed.\n                 * @param onElementResizedCallback The callback which is fired every time the resize observer registers a size change or false / undefined if the resizeObserver shall be removed.\n                 */\n                function setupResizeObserver(targetElement, onElementResizedCallback) {\n                    if (targetElement) {\n                        var resizeObserver = COMPATIBILITY.rO();\n                        var strAnimationStartEvent = 'animationstart mozAnimationStart webkitAnimationStart MSAnimationStart';\n                        var strChildNodes = 'childNodes';\n                        var constScroll = 3333333;\n                        var callback = function () {\n                            targetElement[_strScrollTop](constScroll)[_strScrollLeft](_isRTL ? _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll : constScroll);\n                            onElementResizedCallback();\n                        };\n                        //add resize observer:\n                        if (onElementResizedCallback) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.addClass('observed').append(generateDiv(_classNameResizeObserverElement)).contents()[0];\n                                var observer = element[_strResizeObserverProperty] = new resizeObserver(callback);\n                                observer.observe(element);\n                            }\n                            else {\n                                if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                                    targetElement.prepend(\n                                        generateDiv(_classNameResizeObserverElement,\n                                            generateDiv({ c: _classNameResizeObserverItemElement, dir: 'ltr' },\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv(_classNameResizeObserverItemFinalElement)\n                                                ) +\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv({ c: _classNameResizeObserverItemFinalElement, style: 'width: 200%; height: 200%' })\n                                                )\n                                            )\n                                        )\n                                    );\n\n                                    var observerElement = targetElement[0][strChildNodes][0][strChildNodes][0];\n                                    var shrinkElement = FRAMEWORK(observerElement[strChildNodes][1]);\n                                    var expandElement = FRAMEWORK(observerElement[strChildNodes][0]);\n                                    var expandElementChild = FRAMEWORK(expandElement[0][strChildNodes][0]);\n                                    var widthCache = observerElement[LEXICON.oW];\n                                    var heightCache = observerElement[LEXICON.oH];\n                                    var isDirty;\n                                    var rAFId;\n                                    var currWidth;\n                                    var currHeight;\n                                    var factor = 2;\n                                    var nativeScrollbarSize = globals.nativeScrollbarSize; //care don't make changes to this object!!!\n                                    var reset = function () {\n                                        /*\n                                         var sizeResetWidth = observerElement[LEXICON.oW] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var sizeResetHeight = observerElement[LEXICON.oH] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var expandChildCSS = {};\n                                         expandChildCSS[_strWidth] = sizeResetWidth;\n                                         expandChildCSS[_strHeight] = sizeResetHeight;\n                                         expandElementChild.css(expandChildCSS);\n\n\n                                         expandElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         shrinkElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         */\n                                        expandElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                        shrinkElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                    };\n                                    var onResized = function () {\n                                        rAFId = 0;\n                                        if (!isDirty)\n                                            return;\n\n                                        widthCache = currWidth;\n                                        heightCache = currHeight;\n                                        callback();\n                                    };\n                                    var onScroll = function (event) {\n                                        currWidth = observerElement[LEXICON.oW];\n                                        currHeight = observerElement[LEXICON.oH];\n                                        isDirty = currWidth != widthCache || currHeight != heightCache;\n\n                                        if (event && isDirty && !rAFId) {\n                                            COMPATIBILITY.cAF()(rAFId);\n                                            rAFId = COMPATIBILITY.rAF()(onResized);\n                                        }\n                                        else if (!event)\n                                            onResized();\n\n                                        reset();\n                                        if (event) {\n                                            COMPATIBILITY.prvD(event);\n                                            COMPATIBILITY.stpP(event);\n                                        }\n                                        return false;\n                                    };\n                                    var expandChildCSS = {};\n                                    var observerElementCSS = {};\n\n                                    setTopRightBottomLeft(observerElementCSS, _strEmpty, [\n                                        -((nativeScrollbarSize.y + 1) * factor),\n                                        nativeScrollbarSize.x * -factor,\n                                        nativeScrollbarSize.y * -factor,\n                                        -((nativeScrollbarSize.x + 1) * factor)\n                                    ]);\n\n                                    FRAMEWORK(observerElement).css(observerElementCSS);\n                                    expandElement.on(_strScroll, onScroll);\n                                    shrinkElement.on(_strScroll, onScroll);\n                                    targetElement.on(strAnimationStartEvent, function () {\n                                        onScroll(false);\n                                    });\n                                    //lets assume that the divs will never be that large and a constant value is enough\n                                    expandChildCSS[_strWidth] = constScroll;\n                                    expandChildCSS[_strHeight] = constScroll;\n                                    expandElementChild.css(expandChildCSS);\n\n                                    reset();\n                                }\n                                else {\n                                    var attachEvent = _documentElementNative.attachEvent;\n                                    var isIE = _msieVersion !== undefined;\n                                    if (attachEvent) {\n                                        targetElement.prepend(generateDiv(_classNameResizeObserverElement));\n                                        findFirst(targetElement, _strDot + _classNameResizeObserverElement)[0].attachEvent('onresize', callback);\n                                    }\n                                    else {\n                                        var obj = _documentElementNative.createElement(TYPES.o);\n                                        obj.setAttribute(LEXICON.ti, '-1');\n                                        obj.setAttribute(LEXICON.c, _classNameResizeObserverElement);\n                                        obj.onload = function () {\n                                            var wnd = this.contentDocument.defaultView;\n                                            wnd.addEventListener('resize', callback);\n                                            wnd.document.documentElement.style.display = 'none';\n                                        };\n                                        obj.type = 'text/html';\n                                        if (isIE)\n                                            targetElement.prepend(obj);\n                                        obj.data = 'about:blank';\n                                        if (!isIE)\n                                            targetElement.prepend(obj);\n                                        targetElement.on(strAnimationStartEvent, callback);\n                                    }\n                                }\n                            }\n\n                            if (targetElement[0] === _sizeObserverElementNative) {\n                                var directionChanged = function () {\n                                    var dir = _hostElement.css('direction');\n                                    var css = {};\n                                    var scrollLeftValue = 0;\n                                    var result = false;\n                                    if (dir !== _cssDirectionDetectedCache) {\n                                        if (dir === 'ltr') {\n                                            css[_strLeft] = 0;\n                                            css[_strRight] = _strAuto;\n                                            scrollLeftValue = constScroll;\n                                        }\n                                        else {\n                                            css[_strLeft] = _strAuto;\n                                            css[_strRight] = 0;\n                                            scrollLeftValue = _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll;\n                                        }\n                                        //execution order is important for IE!!!\n                                        _sizeObserverElement.children().eq(0).css(css);\n                                        _sizeObserverElement[_strScrollLeft](scrollLeftValue)[_strScrollTop](constScroll);\n                                        _cssDirectionDetectedCache = dir;\n                                        result = true;\n                                    }\n                                    return result;\n                                };\n                                directionChanged();\n                                addDestroyEventListener(targetElement, _strScroll, function (event) {\n                                    if (directionChanged())\n                                        update();\n                                    COMPATIBILITY.prvD(event);\n                                    COMPATIBILITY.stpP(event);\n                                    return false;\n                                });\n                            }\n                        }\n                        //remove resize observer:\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                var resizeObserverObj = element[_strResizeObserverProperty];\n                                if (resizeObserverObj) {\n                                    resizeObserverObj.disconnect();\n                                    delete element[_strResizeObserverProperty];\n                                }\n                            }\n                            else {\n                                remove(targetElement.children(_strDot + _classNameResizeObserverElement).eq(0));\n                            }\n                        }\n                    }\n                }\n\n                /**\n                 * Freezes or unfreezes the given resize observer.\n                 * @param targetElement The element to which the target resize observer is applied.\n                 * @param freeze True if the resize observer shall be frozen, false otherwise.\n                 \n                function freezeResizeObserver(targetElement, freeze) {\n                    if (targetElement !== undefined) {\n                        if(freeze) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].unobserve(element);\n                            }\n                            else {\n                                targetElement = targetElement.children(_strDot + _classNameResizeObserverElement).eq(0);\n                                var w = targetElement.css(_strWidth);\n                                var h = targetElement.css(_strHeight);\n                                var css = {};\n                                css[_strWidth] = w;\n                                css[_strHeight] = h;\n                                targetElement.css(css);\n                            }\n                        }\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].observe(element);\n                            }\n                            else {\n                                var css = { };\n                                css[_strHeight] = _strEmpty;\n                                css[_strWidth] = _strEmpty;\n                                targetElement.children(_strDot + _classNameResizeObserverElement).eq(0).css(css);\n                            }\n                        }\n                    }\n                }\n                */\n\n\n                //==== Mutation Observers ====//\n\n                /**\n                 * Creates MutationObservers for the host and content Element if they are supported.\n                 */\n                function createMutationObservers() {\n                    if (_supportMutationObserver) {\n                        var mutationObserverContentLag = 11;\n                        var mutationObserver = COMPATIBILITY.mO();\n                        var contentLastUpdate = COMPATIBILITY.now();\n                        var mutationTarget;\n                        var mutationAttrName;\n                        var mutationIsClass;\n                        var oldMutationVal;\n                        var newClassVal;\n                        var hostClassNameRegex;\n                        var contentTimeout;\n                        var now;\n                        var sizeAuto;\n                        var action;\n\n                        _mutationObserverHostCallback = function (mutations) {\n\n                            var doUpdate = false;\n                            var doUpdateForce = false;\n                            var mutation;\n                            var mutatedAttrs = [];\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    mutationTarget = mutation.target;\n                                    mutationAttrName = mutation.attributeName;\n                                    mutationIsClass = mutationAttrName === LEXICON.c;\n                                    oldMutationVal = mutation.oldValue;\n                                    newClassVal = mutationTarget.className;\n\n                                    if (_domExists && mutationIsClass && !doUpdateForce) {\n                                        // if old class value contains _classNameHostElementForeign and new class value doesn't\n                                        if (oldMutationVal.indexOf(_classNameHostElementForeign) > -1 && newClassVal.indexOf(_classNameHostElementForeign) < 0) {\n                                            hostClassNameRegex = createHostClassNameRegExp(true);\n                                            _hostElementNative.className = newClassVal.split(_strSpace).concat(oldMutationVal.split(_strSpace).filter(function (name) {\n                                                return name.match(hostClassNameRegex);\n                                            })).join(_strSpace);\n                                            doUpdate = doUpdateForce = true;\n                                        }\n                                    }\n\n                                    if (!doUpdate) {\n                                        doUpdate = mutationIsClass\n                                            ? hostClassNamesChanged(oldMutationVal, newClassVal)\n                                            : mutationAttrName === LEXICON.s\n                                                ? oldMutationVal !== mutationTarget[LEXICON.s].cssText\n                                                : true;\n                                    }\n\n                                    mutatedAttrs.push(mutationAttrName);\n                                });\n\n                                updateViewportAttrsFromTarget(mutatedAttrs);\n\n                                if (doUpdate)\n                                    _base.update(doUpdateForce || _strAuto);\n                            }\n                            return doUpdate;\n                        };\n                        _mutationObserverContentCallback = function (mutations) {\n                            var doUpdate = false;\n                            var mutation;\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    doUpdate = isUnknownMutation(mutation);\n                                    return !doUpdate;\n                                });\n\n                                if (doUpdate) {\n                                    now = COMPATIBILITY.now();\n                                    sizeAuto = (_heightAutoCache || _widthAutoCache);\n                                    action = function () {\n                                        if (!_destroyed) {\n                                            contentLastUpdate = now;\n\n                                            //if cols, rows or wrap attr was changed\n                                            if (_isTextarea)\n                                                textareaUpdate();\n\n                                            if (sizeAuto)\n                                                update();\n                                            else\n                                                _base.update(_strAuto);\n                                        }\n                                    };\n                                    clearTimeout(contentTimeout);\n                                    if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)\n                                        action();\n                                    else\n                                        contentTimeout = setTimeout(action, mutationObserverContentLag);\n                                }\n                            }\n                            return doUpdate;\n                        }\n\n                        _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);\n                        _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);\n                    }\n                }\n\n                /**\n                 * Connects the MutationObservers if they are supported.\n                 */\n                function connectMutationObservers() {\n                    if (_supportMutationObserver && !_mutationObserversConnected) {\n                        _mutationObserverHost.observe(_hostElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            attributeFilter: _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserverContent.observe(_isTextarea ? _targetElementNative : _contentElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            subtree: !_isTextarea,\n                            childList: !_isTextarea,\n                            characterData: !_isTextarea,\n                            attributeFilter: _isTextarea ? _mutationObserverAttrsTextarea : _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserversConnected = true;\n                    }\n                }\n\n                /**\n                 * Disconnects the MutationObservers if they are supported.\n                 */\n                function disconnectMutationObservers() {\n                    if (_supportMutationObserver && _mutationObserversConnected) {\n                        _mutationObserverHost.disconnect();\n                        _mutationObserverContent.disconnect();\n\n                        _mutationObserversConnected = false;\n                    }\n                }\n\n\n                //==== Events of elements ====//\n\n                /**\n                 * This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!\n                 * It refreshes the hostResizedEventArgs and the hostSizeResizeCache.\n                 * If there are any size changes, the update method gets called.\n                 */\n                function hostOnResized() {\n                    if (!_sleeping) {\n                        var changed;\n                        var hostSize = {\n                            w: _sizeObserverElementNative[LEXICON.sW],\n                            h: _sizeObserverElementNative[LEXICON.sH]\n                        };\n\n                        changed = checkCache(hostSize, _hostElementSizeChangeDetectedCache);\n                        _hostElementSizeChangeDetectedCache = hostSize;\n                        if (changed)\n                            update({ _hostSizeChanged: true });\n                    }\n                }\n\n                /**\n                 * The mouse enter event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseEnter() {\n                    if (_scrollbarsAutoHideLeave)\n                        refreshScrollbarsAutoHide(true);\n                }\n\n                /**\n                 * The mouse leave event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseLeave() {\n                    if (_scrollbarsAutoHideLeave && !_bodyElement.hasClass(_classNameDragging))\n                        refreshScrollbarsAutoHide(false);\n                }\n\n                /**\n                 * The mouse move event of the host element. This event is only needed for the autoHide \"move\" feature.\n                 */\n                function hostOnMouseMove() {\n                    if (_scrollbarsAutoHideMove) {\n                        refreshScrollbarsAutoHide(true);\n                        clearTimeout(_scrollbarsAutoHideMoveTimeoutId);\n                        _scrollbarsAutoHideMoveTimeoutId = setTimeout(function () {\n                            if (_scrollbarsAutoHideMove && !_destroyed)\n                                refreshScrollbarsAutoHide(false);\n                        }, 100);\n                    }\n                }\n\n                /**\n                 * Prevents text from deselection if attached to the document element on the mousedown event of a DOM element.\n                 * @param event The select start event.\n                 */\n                function documentOnSelectStart(event) {\n                    COMPATIBILITY.prvD(event);\n                    return false;\n                }\n\n                /**\t\n                 * A callback which will be called after a element has loaded.\t\n                 */\n                function updateOnLoadCallback(event) {\n                    var elm = FRAMEWORK(event.target);\n\n                    eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                        if (elm.is(updateOnLoadSelector)) {\n                            update({ _contentSizeChanged: true });\n                        }\n                    });\n                }\n\n                /**\n                * Adds or removes mouse & touch events of the host element. (for handling auto-hiding of the scrollbars)\n                * @param destroy Indicates whether the events shall be added or removed.\n                */\n                function setupHostMouseTouchEvents(destroy) {\n                    if (!destroy)\n                        setupHostMouseTouchEvents(true);\n\n                    setupResponsiveEventListener(_hostElement,\n                        _strMouseTouchMoveEvent.split(_strSpace)[0],\n                        hostOnMouseMove,\n                        (!_scrollbarsAutoHideMove || destroy), true);\n                    setupResponsiveEventListener(_hostElement,\n                        [_strMouseEnter, _strMouseLeave],\n                        [hostOnMouseEnter, hostOnMouseLeave],\n                        (!_scrollbarsAutoHideLeave || destroy), true);\n\n                    //if the plugin is initialized and the mouse is over the host element, make the scrollbars visible\n                    if (!_initialized && !destroy)\n                        _hostElement.one('mouseover', hostOnMouseEnter);\n                }\n\n\n                //==== Update Detection ====//\n\n                /**\n                 * Measures the min width and min height of the body element and refreshes the related cache.\n                 * @returns {boolean} True if the min width or min height has changed, false otherwise.\n                 */\n                function bodyMinSizeChanged() {\n                    var bodyMinSize = {};\n                    if (_isBody && _contentArrangeElement) {\n                        bodyMinSize.w = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strWidth));\n                        bodyMinSize.h = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strHeight));\n                        bodyMinSize.c = checkCache(bodyMinSize, _bodyMinSizeCache);\n                        bodyMinSize.f = true; //flag for \"measured at least once\"\n                    }\n                    _bodyMinSizeCache = bodyMinSize;\n                    return !!bodyMinSize.c;\n                }\n\n                /**\n                 * Returns true if the class names really changed (new class without plugin host prefix)\n                 * @param oldClassNames The old ClassName string or array.\n                 * @param newClassNames The new ClassName string or array.\n                 * @returns {boolean} True if the class names has really changed, false otherwise.\n                 */\n                function hostClassNamesChanged(oldClassNames, newClassNames) {\n                    var currClasses = typeof newClassNames == TYPES.s ? newClassNames.split(_strSpace) : [];\n                    var oldClasses = typeof oldClassNames == TYPES.s ? oldClassNames.split(_strSpace) : [];\n                    var diff = getArrayDifferences(oldClasses, currClasses);\n\n                    // remove none theme from diff list to prevent update\n                    var idx = inArray(_classNameThemeNone, diff);\n                    var i;\n                    var regex;\n\n                    if (idx > -1)\n                        diff.splice(idx, 1);\n\n                    if (diff[LEXICON.l] > 0) {\n                        regex = createHostClassNameRegExp(true, true);\n                        for (i = 0; i < diff.length; i++) {\n                            if (!diff[i].match(regex)) {\n                                return true;\n                            }\n                        }\n                    }\n                    return false;\n                }\n\n                /**\n                 * Returns true if the given mutation is not from a from the plugin generated element. If the target element is a textarea the mutation is always unknown.\n                 * @param mutation The mutation which shall be checked.\n                 * @returns {boolean} True if the mutation is from a unknown element, false otherwise.\n                 */\n                function isUnknownMutation(mutation) {\n                    var attributeName = mutation.attributeName;\n                    var mutationTarget = mutation.target;\n                    var mutationType = mutation.type;\n                    var strClosest = 'closest';\n\n                    if (mutationTarget === _contentElementNative)\n                        return attributeName === null;\n                    if (mutationType === 'attributes' && (attributeName === LEXICON.c || attributeName === LEXICON.s) && !_isTextarea) {\n                        //ignore className changes by the plugin\t\n                        if (attributeName === LEXICON.c && FRAMEWORK(mutationTarget).hasClass(_classNameHostElement))\n                            return hostClassNamesChanged(mutation.oldValue, mutationTarget.className);\n\n                        //only do it of browser support it natively\t\n                        if (typeof mutationTarget[strClosest] != TYPES.f)\n                            return true;\n                        if (mutationTarget[strClosest](_strDot + _classNameResizeObserverElement) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbar) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbarCorner) !== null)\n                            return false;\n                    }\n                    return true;\n                }\n\n                /**\n                 * Returns true if the content size was changed since the last time this method was called.\n                 * @returns {boolean} True if the content size was changed, false otherwise.\n                 */\n                function updateAutoContentSizeChanged() {\n                    if (_sleeping)\n                        return false;\n\n                    var contentMeasureElement = getContentMeasureElement();\n                    var textareaValueLength = _isTextarea && _widthAutoCache && !_textareaAutoWrappingCache ? _targetElement.val().length : 0;\n                    var setCSS = !_mutationObserversConnected && _widthAutoCache && !_isTextarea;\n                    var css = {};\n                    var float;\n                    var bodyMinSizeC;\n                    var changed;\n                    var contentElementScrollSize;\n\n                    if (setCSS) {\n                        float = _contentElement.css(_strFloat);\n                        css[_strFloat] = _isRTL ? _strRight : _strLeft;\n                        css[_strWidth] = _strAuto;\n                        _contentElement.css(css);\n                    }\n                    contentElementScrollSize = {\n                        w: contentMeasureElement[LEXICON.sW] + textareaValueLength,\n                        h: contentMeasureElement[LEXICON.sH] + textareaValueLength\n                    };\n                    if (setCSS) {\n                        css[_strFloat] = float;\n                        css[_strWidth] = _strHundredPercent;\n                        _contentElement.css(css);\n                    }\n\n                    bodyMinSizeC = bodyMinSizeChanged();\n                    changed = checkCache(contentElementScrollSize, _contentElementScrollSizeChangeDetectedCache);\n\n                    _contentElementScrollSizeChangeDetectedCache = contentElementScrollSize;\n\n                    return changed || bodyMinSizeC;\n                }\n\n                /**\n                 * Returns true when a attribute which the MutationObserver would observe has changed.  \n                 * @returns {boolean} True if one of the attributes which a MutationObserver would observe has changed, false or undefined otherwise.\n                 */\n                function meaningfulAttrsChanged() {\n                    if (_sleeping || _mutationObserversConnected)\n                        return;\n\n                    var elem;\n                    var curr;\n                    var cache;\n                    var changedAttrs = [];\n                    var checks = [\n                        {\n                            _elem: _hostElement,\n                            _attrs: _mutationObserverAttrsHost.concat(':visible')\n                        },\n                        {\n                            _elem: _isTextarea ? _targetElement : undefined,\n                            _attrs: _mutationObserverAttrsTextarea\n                        }\n                    ];\n\n                    each(checks, function (index, check) {\n                        elem = check._elem;\n                        if (elem) {\n                            each(check._attrs, function (index, attr) {\n                                curr = attr.charAt(0) === ':' ? elem.is(attr) : elem.attr(attr);\n                                cache = _updateAutoCache[attr];\n\n                                if (checkCache(curr, cache)) {\n                                    changedAttrs.push(attr);\n                                }\n\n                                _updateAutoCache[attr] = curr;\n                            });\n                        }\n                    });\n\n                    updateViewportAttrsFromTarget(changedAttrs);\n\n                    return changedAttrs[LEXICON.l] > 0;\n                }\n\n                /**\n                 * Checks is a CSS Property of a child element is affecting the scroll size of the content.\n                 * @param propertyName The CSS property name.\n                 * @returns {boolean} True if the property is affecting the content scroll size, false otherwise.\n                 */\n                function isSizeAffectingCSSProperty(propertyName) {\n                    if (!_initialized)\n                        return true;\n                    var flexGrow = 'flex-grow';\n                    var flexShrink = 'flex-shrink';\n                    var flexBasis = 'flex-basis';\n                    var affectingPropsX = [\n                        _strWidth,\n                        _strMinMinus + _strWidth,\n                        _strMaxMinus + _strWidth,\n                        _strMarginMinus + _strLeft,\n                        _strMarginMinus + _strRight,\n                        _strLeft,\n                        _strRight,\n                        'font-weight',\n                        'word-spacing',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsXContentBox = [\n                        _strPaddingMinus + _strLeft,\n                        _strPaddingMinus + _strRight,\n                        _strBorderMinus + _strLeft + _strWidth,\n                        _strBorderMinus + _strRight + _strWidth\n                    ];\n                    var affectingPropsY = [\n                        _strHeight,\n                        _strMinMinus + _strHeight,\n                        _strMaxMinus + _strHeight,\n                        _strMarginMinus + _strTop,\n                        _strMarginMinus + _strBottom,\n                        _strTop,\n                        _strBottom,\n                        'line-height',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsYContentBox = [\n                        _strPaddingMinus + _strTop,\n                        _strPaddingMinus + _strBottom,\n                        _strBorderMinus + _strTop + _strWidth,\n                        _strBorderMinus + _strBottom + _strWidth\n                    ];\n                    var _strS = 's';\n                    var _strVS = 'v-s';\n                    var checkX = _overflowBehaviorCache.x === _strS || _overflowBehaviorCache.x === _strVS;\n                    var checkY = _overflowBehaviorCache.y === _strS || _overflowBehaviorCache.y === _strVS;\n                    var sizeIsAffected = false;\n                    var checkPropertyName = function (arr, name) {\n                        for (var i = 0; i < arr[LEXICON.l]; i++) {\n                            if (arr[i] === name)\n                                return true;\n                        }\n                        return false;\n                    };\n\n                    if (checkY) {\n                        sizeIsAffected = checkPropertyName(affectingPropsY, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsYContentBox, propertyName);\n                    }\n                    if (checkX && !sizeIsAffected) {\n                        sizeIsAffected = checkPropertyName(affectingPropsX, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsXContentBox, propertyName);\n                    }\n                    return sizeIsAffected;\n                }\n\n\n                //==== Update ====//\n\n                /**\n                 * Sets the attribute values of the viewport element to the values from the target element.\n                 * The value of a attribute is only set if the attribute is whitelisted.\n                 * @attrs attrs The array of attributes which shall be set or undefined if all whitelisted shall be set.\n                 */\n                function updateViewportAttrsFromTarget(attrs) {\n                    attrs = attrs || _viewportAttrsFromTarget;\n                    each(attrs, function (index, attr) {\n                        if (COMPATIBILITY.inA(attr, _viewportAttrsFromTarget) > -1) {\n                            var targetAttr = _targetElement.attr(attr);\n                            if (type(targetAttr) == TYPES.s) {\n                                _viewportElement.attr(attr, targetAttr);\n                            }\n                            else {\n                                _viewportElement.removeAttr(attr);\n                            }\n                        }\n                    });\n                }\n\n                /**\n                 * Updates the variables and size of the textarea element, and manages the scroll on new line or new character.\n                 */\n                function textareaUpdate() {\n                    if (!_sleeping) {\n                        var wrapAttrOff = !_textareaAutoWrappingCache;\n                        var minWidth = _viewportSize.w;\n                        var minHeight = _viewportSize.h;\n                        var css = {};\n                        var doMeasure = _widthAutoCache || wrapAttrOff;\n                        var origWidth;\n                        var width;\n                        var origHeight;\n                        var height;\n\n                        //reset min size\n                        css[_strMinMinus + _strWidth] = _strEmpty;\n                        css[_strMinMinus + _strHeight] = _strEmpty;\n\n                        //set width auto\n                        css[_strWidth] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure width\n                        origWidth = _targetElementNative[LEXICON.oW];\n                        width = doMeasure ? MATH.max(origWidth, _targetElementNative[LEXICON.sW] - 1) : 1;\n                        /*width += (_widthAutoCache ? _marginX + (!_isBorderBox ? wrapAttrOff ? 0 : _paddingX + _borderX : 0) : 0);*/\n\n                        //set measured width\n                        css[_strWidth] = _widthAutoCache ? _strAuto /*width*/ : _strHundredPercent;\n                        css[_strMinMinus + _strWidth] = _strHundredPercent;\n\n                        //set height auto\n                        css[_strHeight] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure height\n                        origHeight = _targetElementNative[LEXICON.oH];\n                        height = MATH.max(origHeight, _targetElementNative[LEXICON.sH] - 1);\n\n                        //append correct size values\n                        css[_strWidth] = width;\n                        css[_strHeight] = height;\n                        _textareaCoverElement.css(css);\n\n                        //apply min width / min height to prevent textarea collapsing\n                        css[_strMinMinus + _strWidth] = minWidth /*+ (!_isBorderBox && _widthAutoCache ? _paddingX + _borderX : 0)*/;\n                        css[_strMinMinus + _strHeight] = minHeight /*+ (!_isBorderBox && _heightAutoCache ? _paddingY + _borderY : 0)*/;\n                        _targetElement.css(css);\n\n                        return {\n                            _originalWidth: origWidth,\n                            _originalHeight: origHeight,\n                            _dynamicWidth: width,\n                            _dynamicHeight: height\n                        };\n                    }\n                }\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param updateHints A objects which contains hints for this update:\n                 * {\n                 *   _hostSizeChanged : boolean,\n                 *   _contentSizeChanged : boolean,\n                 *   _force : boolean,                             == preventSwallowing\n                 *   _changedOptions : { },                        == preventSwallowing && preventSleep\n                *  }\n                 */\n                function update(updateHints) {\n                    clearTimeout(_swallowedUpdateTimeout);\n                    updateHints = updateHints || {};\n                    _swallowedUpdateHints._hostSizeChanged |= updateHints._hostSizeChanged;\n                    _swallowedUpdateHints._contentSizeChanged |= updateHints._contentSizeChanged;\n                    _swallowedUpdateHints._force |= updateHints._force;\n\n                    var now = COMPATIBILITY.now();\n                    var hostSizeChanged = !!_swallowedUpdateHints._hostSizeChanged;\n                    var contentSizeChanged = !!_swallowedUpdateHints._contentSizeChanged;\n                    var force = !!_swallowedUpdateHints._force;\n                    var changedOptions = updateHints._changedOptions;\n                    var swallow = _swallowUpdateLag > 0 && _initialized && !_destroyed && !force && !changedOptions && (now - _lastUpdateTime) < _swallowUpdateLag && (!_heightAutoCache && !_widthAutoCache);\n                    var displayIsHidden;\n\n                    if (swallow)\n                        _swallowedUpdateTimeout = setTimeout(update, _swallowUpdateLag);\n\n                    //abort update due to:\n                    //destroyed\n                    //swallowing\n                    //sleeping\n                    //host is hidden or has false display\n                    if (_destroyed || swallow || (_sleeping && !changedOptions) || (_initialized && !force && (displayIsHidden = _hostElement.is(':hidden'))) || _hostElement.css('display') === 'inline')\n                        return;\n\n                    _lastUpdateTime = now;\n                    _swallowedUpdateHints = {};\n\n                    //if scrollbar styling is possible and native scrollbars aren't overlaid the scrollbar styling will be applied which hides the native scrollbars completely.\n                    if (_nativeScrollbarStyling && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                        //native scrollbars are hidden, so change the values to zero\n                        _nativeScrollbarSize.x = 0;\n                        _nativeScrollbarSize.y = 0;\n                    }\n                    else {\n                        //refresh native scrollbar size (in case of zoom)\n                        _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    }\n\n                    // Scrollbar padding is needed for firefox, because firefox hides scrollbar automatically if the size of the div is too small.\n                    // The calculation: [scrollbar size +3 *3]\n                    // (+3 because of possible decoration e.g. borders, margins etc., but only if native scrollbar is NOT a overlaid scrollbar)\n                    // (*3 because (1)increase / (2)decrease -button and (3)resize handle)\n                    _nativeScrollbarMinSize = {\n                        x: (_nativeScrollbarSize.x + (_nativeScrollbarIsOverlaid.x ? 0 : 3)) * 3,\n                        y: (_nativeScrollbarSize.y + (_nativeScrollbarIsOverlaid.y ? 0 : 3)) * 3\n                    };\n\n                    changedOptions = changedOptions || {};\n                    //freezeResizeObserver(_sizeObserverElement, true);\n                    //freezeResizeObserver(_sizeAutoObserverElement, true);\n\n                    var checkCacheAutoForce = function () {\n                        return checkCache.apply(this, [].slice.call(arguments).concat([force]));\n                    };\n\n                    //save current scroll offset\n                    var currScroll = {\n                        x: _viewportElement[_strScrollLeft](),\n                        y: _viewportElement[_strScrollTop]()\n                    };\n\n                    var currentPreparedOptionsScrollbars = _currentPreparedOptions.scrollbars;\n                    var currentPreparedOptionsTextarea = _currentPreparedOptions.textarea;\n\n                    //scrollbars visibility:\n                    var scrollbarsVisibility = currentPreparedOptionsScrollbars.visibility;\n                    var scrollbarsVisibilityChanged = checkCacheAutoForce(scrollbarsVisibility, _scrollbarsVisibilityCache);\n\n                    //scrollbars autoHide:\n                    var scrollbarsAutoHide = currentPreparedOptionsScrollbars.autoHide;\n                    var scrollbarsAutoHideChanged = checkCacheAutoForce(scrollbarsAutoHide, _scrollbarsAutoHideCache);\n\n                    //scrollbars click scrolling\n                    var scrollbarsClickScrolling = currentPreparedOptionsScrollbars.clickScrolling;\n                    var scrollbarsClickScrollingChanged = checkCacheAutoForce(scrollbarsClickScrolling, _scrollbarsClickScrollingCache);\n\n                    //scrollbars drag scrolling\n                    var scrollbarsDragScrolling = currentPreparedOptionsScrollbars.dragScrolling;\n                    var scrollbarsDragScrollingChanged = checkCacheAutoForce(scrollbarsDragScrolling, _scrollbarsDragScrollingCache);\n\n                    //className\n                    var className = _currentPreparedOptions.className;\n                    var classNameChanged = checkCacheAutoForce(className, _classNameCache);\n\n                    //resize\n                    var resize = _currentPreparedOptions.resize;\n                    var resizeChanged = checkCacheAutoForce(resize, _resizeCache) && !_isBody; //body can't be resized since the window itself acts as resize possibility.\n\n                    //paddingAbsolute\n                    var paddingAbsolute = _currentPreparedOptions.paddingAbsolute;\n                    var paddingAbsoluteChanged = checkCacheAutoForce(paddingAbsolute, _paddingAbsoluteCache);\n\n                    //clipAlways\n                    var clipAlways = _currentPreparedOptions.clipAlways;\n                    var clipAlwaysChanged = checkCacheAutoForce(clipAlways, _clipAlwaysCache);\n\n                    //sizeAutoCapable\n                    var sizeAutoCapable = _currentPreparedOptions.sizeAutoCapable && !_isBody; //body can never be size auto, because it shall be always as big as the viewport.\n                    var sizeAutoCapableChanged = checkCacheAutoForce(sizeAutoCapable, _sizeAutoCapableCache);\n\n                    //showNativeScrollbars\n                    var ignoreOverlayScrollbarHiding = _currentPreparedOptions.nativeScrollbarsOverlaid.showNativeScrollbars;\n                    var ignoreOverlayScrollbarHidingChanged = checkCacheAutoForce(ignoreOverlayScrollbarHiding, _ignoreOverlayScrollbarHidingCache);\n\n                    //autoUpdate\n                    var autoUpdate = _currentPreparedOptions.autoUpdate;\n                    var autoUpdateChanged = checkCacheAutoForce(autoUpdate, _autoUpdateCache);\n\n                    //overflowBehavior\n                    var overflowBehavior = _currentPreparedOptions.overflowBehavior;\n                    var overflowBehaviorChanged = checkCacheAutoForce(overflowBehavior, _overflowBehaviorCache, force);\n\n                    //dynWidth:\n                    var textareaDynWidth = currentPreparedOptionsTextarea.dynWidth;\n                    var textareaDynWidthChanged = checkCacheAutoForce(_textareaDynWidthCache, textareaDynWidth);\n\n                    //dynHeight:\n                    var textareaDynHeight = currentPreparedOptionsTextarea.dynHeight;\n                    var textareaDynHeightChanged = checkCacheAutoForce(_textareaDynHeightCache, textareaDynHeight);\n\n                    //scrollbars visibility\n                    _scrollbarsAutoHideNever = scrollbarsAutoHide === 'n';\n                    _scrollbarsAutoHideScroll = scrollbarsAutoHide === 's';\n                    _scrollbarsAutoHideMove = scrollbarsAutoHide === 'm';\n                    _scrollbarsAutoHideLeave = scrollbarsAutoHide === 'l';\n\n                    //scrollbars autoHideDelay\n                    _scrollbarsAutoHideDelay = currentPreparedOptionsScrollbars.autoHideDelay;\n\n                    //old className\n                    _oldClassName = _classNameCache;\n\n                    //resize\n                    _resizeNone = resize === 'n';\n                    _resizeBoth = resize === 'b';\n                    _resizeHorizontal = resize === 'h';\n                    _resizeVertical = resize === 'v';\n\n                    //normalizeRTL\n                    _normalizeRTLCache = _currentPreparedOptions.normalizeRTL;\n\n                    //ignore overlay scrollbar hiding\n                    ignoreOverlayScrollbarHiding = ignoreOverlayScrollbarHiding && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y);\n\n                    //refresh options cache\n                    _scrollbarsVisibilityCache = scrollbarsVisibility;\n                    _scrollbarsAutoHideCache = scrollbarsAutoHide;\n                    _scrollbarsClickScrollingCache = scrollbarsClickScrolling;\n                    _scrollbarsDragScrollingCache = scrollbarsDragScrolling;\n                    _classNameCache = className;\n                    _resizeCache = resize;\n                    _paddingAbsoluteCache = paddingAbsolute;\n                    _clipAlwaysCache = clipAlways;\n                    _sizeAutoCapableCache = sizeAutoCapable;\n                    _ignoreOverlayScrollbarHidingCache = ignoreOverlayScrollbarHiding;\n                    _autoUpdateCache = autoUpdate;\n                    _overflowBehaviorCache = extendDeep({}, overflowBehavior);\n                    _textareaDynWidthCache = textareaDynWidth;\n                    _textareaDynHeightCache = textareaDynHeight;\n                    _hasOverflowCache = _hasOverflowCache || { x: false, y: false };\n\n                    //set correct class name to the host element\n                    if (classNameChanged) {\n                        removeClass(_hostElement, _oldClassName + _strSpace + _classNameThemeNone);\n                        addClass(_hostElement, className !== undefined && className !== null && className.length > 0 ? className : _classNameThemeNone);\n                    }\n\n                    //set correct auto Update\n                    if (autoUpdateChanged) {\n                        if (autoUpdate === true || (autoUpdate === null && _autoUpdateRecommended)) {\n                            disconnectMutationObservers();\n                            autoUpdateLoop.add(_base);\n                        }\n                        else {\n                            autoUpdateLoop.remove(_base);\n                            connectMutationObservers();\n                        }\n                    }\n\n                    //activate or deactivate size auto capability\n                    if (sizeAutoCapableChanged) {\n                        if (sizeAutoCapable) {\n                            if (_contentGlueElement) {\n                                _contentGlueElement.show();\n                            }\n                            else {\n                                _contentGlueElement = FRAMEWORK(generateDiv(_classNameContentGlueElement));\n                                _paddingElement.before(_contentGlueElement);\n                            }\n                            if (_sizeAutoObserverAdded) {\n                                _sizeAutoObserverElement.show();\n                            }\n                            else {\n                                _sizeAutoObserverElement = FRAMEWORK(generateDiv(_classNameSizeAutoObserverElement));\n                                _sizeAutoObserverElementNative = _sizeAutoObserverElement[0];\n\n                                _contentGlueElement.before(_sizeAutoObserverElement);\n                                var oldSize = { w: -1, h: -1 };\n                                setupResizeObserver(_sizeAutoObserverElement, function () {\n                                    var newSize = {\n                                        w: _sizeAutoObserverElementNative[LEXICON.oW],\n                                        h: _sizeAutoObserverElementNative[LEXICON.oH]\n                                    };\n                                    if (checkCache(newSize, oldSize)) {\n                                        if (_initialized && (_heightAutoCache && newSize.h > 0) || (_widthAutoCache && newSize.w > 0)) {\n                                            update();\n                                        }\n                                        else if (_initialized && (!_heightAutoCache && newSize.h === 0) || (!_widthAutoCache && newSize.w === 0)) {\n                                            update();\n                                        }\n                                    }\n                                    oldSize = newSize;\n                                });\n                                _sizeAutoObserverAdded = true;\n                                //fix heightAuto detector bug if height is fixed but contentHeight is 0.\n                                //the probability this bug will ever happen is very very low, thats why its ok if we use calc which isn't supported in IE8.\n                                if (_cssCalc !== null)\n                                    _sizeAutoObserverElement.css(_strHeight, _cssCalc + '(100% + 1px)');\n                            }\n                        }\n                        else {\n                            if (_sizeAutoObserverAdded)\n                                _sizeAutoObserverElement.hide();\n                            if (_contentGlueElement)\n                                _contentGlueElement.hide();\n                        }\n                    }\n\n                    //if force, update all resizeObservers too\n                    if (force) {\n                        _sizeObserverElement.find('*').trigger(_strScroll);\n                        if (_sizeAutoObserverAdded)\n                            _sizeAutoObserverElement.find('*').trigger(_strScroll);\n                    }\n\n                    //display hidden:\n                    displayIsHidden = displayIsHidden === undefined ? _hostElement.is(':hidden') : displayIsHidden;\n\n                    //textarea AutoWrapping:\n                    var textareaAutoWrapping = _isTextarea ? _targetElement.attr('wrap') !== 'off' : false;\n                    var textareaAutoWrappingChanged = checkCacheAutoForce(textareaAutoWrapping, _textareaAutoWrappingCache);\n\n                    //detect direction:\n                    var cssDirection = _hostElement.css('direction');\n                    var cssDirectionChanged = checkCacheAutoForce(cssDirection, _cssDirectionCache);\n\n                    //detect box-sizing:\n                    var boxSizing = _hostElement.css('box-sizing');\n                    var boxSizingChanged = checkCacheAutoForce(boxSizing, _cssBoxSizingCache);\n\n                    //detect padding:\n                    var padding = getTopRightBottomLeftHost(_strPaddingMinus);\n\n                    //width + height auto detecting var:\n                    var sizeAutoObserverElementBCRect;\n                    //exception occurs in IE8 sometimes (unknown exception)\n                    try {\n                        sizeAutoObserverElementBCRect = _sizeAutoObserverAdded ? _sizeAutoObserverElementNative[LEXICON.bCR]() : null;\n                    } catch (ex) {\n                        return;\n                    }\n\n                    _isRTL = cssDirection === 'rtl';\n                    _isBorderBox = (boxSizing === 'border-box');\n                    var isRTLLeft = _isRTL ? _strLeft : _strRight;\n                    var isRTLRight = _isRTL ? _strRight : _strLeft;\n\n                    //detect width auto:\n                    var widthAutoResizeDetection = false;\n                    var widthAutoObserverDetection = (_sizeAutoObserverAdded && (_hostElement.css(_strFloat) !== 'none' /*|| _isTextarea */)) ? (MATH.round(sizeAutoObserverElementBCRect.right - sizeAutoObserverElementBCRect.left) === 0) && (!paddingAbsolute ? (_hostElementNative[LEXICON.cW] - _paddingX) > 0 : true) : false;\n                    if (sizeAutoCapable && !widthAutoObserverDetection) {\n                        var tmpCurrHostWidth = _hostElementNative[LEXICON.oW];\n                        var tmpCurrContentGlueWidth = _contentGlueElement.css(_strWidth);\n                        _contentGlueElement.css(_strWidth, _strAuto);\n\n                        var tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                        _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                        widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        if (!widthAutoResizeDetection) {\n                            _contentGlueElement.css(_strWidth, tmpCurrHostWidth + 1);\n                            tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                            _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                            widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        }\n                    }\n                    var widthAuto = (widthAutoObserverDetection || widthAutoResizeDetection) && sizeAutoCapable && !displayIsHidden;\n                    var widthAutoChanged = checkCacheAutoForce(widthAuto, _widthAutoCache);\n                    var wasWidthAuto = !widthAuto && _widthAutoCache;\n\n                    //detect height auto:\n                    var heightAuto = _sizeAutoObserverAdded && sizeAutoCapable && !displayIsHidden ? (MATH.round(sizeAutoObserverElementBCRect.bottom - sizeAutoObserverElementBCRect.top) === 0) /* && (!paddingAbsolute && (_msieVersion > 9 || !_msieVersion) ? true : true) */ : false;\n                    var heightAutoChanged = checkCacheAutoForce(heightAuto, _heightAutoCache);\n                    var wasHeightAuto = !heightAuto && _heightAutoCache;\n\n                    //detect border:\n                    //we need the border only if border box and auto size\n                    var updateBorderX = (widthAuto && _isBorderBox) || !_isBorderBox;\n                    var updateBorderY = (heightAuto && _isBorderBox) || !_isBorderBox;\n                    var border = getTopRightBottomLeftHost(_strBorderMinus, '-' + _strWidth, !updateBorderX, !updateBorderY)\n\n                    //detect margin:\n                    var margin = getTopRightBottomLeftHost(_strMarginMinus);\n\n                    //vars to apply correct css\n                    var contentElementCSS = {};\n                    var contentGlueElementCSS = {};\n\n                    //funcs\n                    var getHostSize = function () {\n                        //has to be clientSize because offsetSize respect borders\n                        return {\n                            w: _hostElementNative[LEXICON.cW],\n                            h: _hostElementNative[LEXICON.cH]\n                        };\n                    };\n                    var getViewportSize = function () {\n                        //viewport size is padding container because it never has padding, margin and a border\n                        //determine zoom rounding error -> sometimes scrollWidth/Height is smaller than clientWidth/Height\n                        //if this happens add the difference to the viewportSize to compensate the rounding error\n                        return {\n                            w: _paddingElementNative[LEXICON.oW] + MATH.max(0, _contentElementNative[LEXICON.cW] - _contentElementNative[LEXICON.sW]),\n                            h: _paddingElementNative[LEXICON.oH] + MATH.max(0, _contentElementNative[LEXICON.cH] - _contentElementNative[LEXICON.sH])\n                        };\n                    };\n\n                    //set info for padding\n                    var paddingAbsoluteX = _paddingX = padding.l + padding.r;\n                    var paddingAbsoluteY = _paddingY = padding.t + padding.b;\n                    paddingAbsoluteX *= paddingAbsolute ? 1 : 0;\n                    paddingAbsoluteY *= paddingAbsolute ? 1 : 0;\n                    padding.c = checkCacheAutoForce(padding, _cssPaddingCache);\n\n                    //set info for border\n                    _borderX = border.l + border.r;\n                    _borderY = border.t + border.b;\n                    border.c = checkCacheAutoForce(border, _cssBorderCache);\n\n                    //set info for margin\n                    _marginX = margin.l + margin.r;\n                    _marginY = margin.t + margin.b;\n                    margin.c = checkCacheAutoForce(margin, _cssMarginCache);\n\n                    //refresh cache\n                    _textareaAutoWrappingCache = textareaAutoWrapping;\n                    _cssDirectionCache = cssDirection;\n                    _cssBoxSizingCache = boxSizing;\n                    _widthAutoCache = widthAuto;\n                    _heightAutoCache = heightAuto;\n                    _cssPaddingCache = padding;\n                    _cssBorderCache = border;\n                    _cssMarginCache = margin;\n\n                    //IEFix direction changed\n                    if (cssDirectionChanged && _sizeAutoObserverAdded)\n                        _sizeAutoObserverElement.css(_strFloat, isRTLRight);\n\n                    //apply padding:\n                    if (padding.c || cssDirectionChanged || paddingAbsoluteChanged || widthAutoChanged || heightAutoChanged || boxSizingChanged || sizeAutoCapableChanged) {\n                        var paddingElementCSS = {};\n                        var textareaCSS = {};\n                        var paddingValues = [padding.t, padding.r, padding.b, padding.l];\n\n                        setTopRightBottomLeft(contentGlueElementCSS, _strMarginMinus, [-padding.t, -padding.r, -padding.b, -padding.l]);\n                        if (paddingAbsolute) {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty, paddingValues);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus);\n                        }\n                        else {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus, paddingValues);\n                        }\n\n                        _paddingElement.css(paddingElementCSS);\n                        _targetElement.css(textareaCSS);\n                    }\n\n                    //viewport size is padding container because it never has padding, margin and a border.\n                    _viewportSize = getViewportSize();\n\n                    //update Textarea\n                    var textareaSize = _isTextarea ? textareaUpdate() : false;\n                    var textareaSizeChanged = _isTextarea && checkCacheAutoForce(textareaSize, _textareaSizeCache);\n                    var textareaDynOrigSize = _isTextarea && textareaSize ? {\n                        w: textareaDynWidth ? textareaSize._dynamicWidth : textareaSize._originalWidth,\n                        h: textareaDynHeight ? textareaSize._dynamicHeight : textareaSize._originalHeight\n                    } : {};\n                    _textareaSizeCache = textareaSize;\n\n                    //fix height auto / width auto in cooperation with current padding & boxSizing behavior:\n                    if (heightAuto && (heightAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c)) {\n                        contentElementCSS[_strHeight] = _strAuto;\n                    }\n                    else if (heightAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strHeight] = _strHundredPercent;\n                    }\n                    if (widthAuto && (widthAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c || cssDirectionChanged)) {\n                        contentElementCSS[_strWidth] = _strAuto;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strHundredPercent; //IE Fix\n                    }\n                    else if (widthAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strWidth] = _strHundredPercent;\n                        contentElementCSS[_strFloat] = _strEmpty;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strEmpty; //IE Fix\n                    }\n                    if (widthAuto) {\n                        //textareaDynOrigSize.w || _strAuto :: doesnt works because applied margin will shift width\n                        contentGlueElementCSS[_strWidth] = _strAuto;\n\n                        contentElementCSS[_strWidth] = VENDORS._cssPropertyValue(_strWidth, 'max-content intrinsic') || _strAuto;\n                        contentElementCSS[_strFloat] = isRTLRight;\n                    }\n                    else {\n                        contentGlueElementCSS[_strWidth] = _strEmpty;\n                    }\n                    if (heightAuto) {\n                        //textareaDynOrigSize.h || _contentElementNative[LEXICON.cH] :: use for anti scroll jumping\n                        contentGlueElementCSS[_strHeight] = textareaDynOrigSize.h || _contentElementNative[LEXICON.cH];\n                    }\n                    else {\n                        contentGlueElementCSS[_strHeight] = _strEmpty;\n                    }\n                    if (sizeAutoCapable)\n                        _contentGlueElement.css(contentGlueElementCSS);\n                    _contentElement.css(contentElementCSS);\n\n                    //CHECKPOINT HERE ~\n                    contentElementCSS = {};\n                    contentGlueElementCSS = {};\n\n                    //if [content(host) client / scroll size, or target element direction, or content(host) max-sizes] changed, or force is true\n                    if (hostSizeChanged || contentSizeChanged || textareaSizeChanged || cssDirectionChanged || boxSizingChanged || paddingAbsoluteChanged || widthAutoChanged || widthAuto || heightAutoChanged || heightAuto || ignoreOverlayScrollbarHidingChanged || overflowBehaviorChanged || clipAlwaysChanged || resizeChanged || scrollbarsVisibilityChanged || scrollbarsAutoHideChanged || scrollbarsDragScrollingChanged || scrollbarsClickScrollingChanged || textareaDynWidthChanged || textareaDynHeightChanged || textareaAutoWrappingChanged) {\n                        var strOverflow = 'overflow';\n                        var strOverflowX = strOverflow + '-x';\n                        var strOverflowY = strOverflow + '-y';\n                        var strHidden = 'hidden';\n                        var strVisible = 'visible';\n\n                        //Reset the viewport (very important for natively overlaid scrollbars and zoom change\n                        //don't change the overflow prop as it is very expensive and affects performance !A LOT!\n                        if (!_nativeScrollbarStyling) {\n                            var viewportElementResetCSS = {};\n                            var resetXTmp = _hasOverflowCache.y && _hideOverflowCache.ys && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.y ? _viewportElement.css(isRTLLeft) : -_nativeScrollbarSize.y) : 0;\n                            var resetBottomTmp = _hasOverflowCache.x && _hideOverflowCache.xs && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.x ? _viewportElement.css(_strBottom) : -_nativeScrollbarSize.x) : 0;\n                            setTopRightBottomLeft(viewportElementResetCSS, _strEmpty);\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n\n                        //measure several sizes:\n                        var contentMeasureElement = getContentMeasureElement();\n                        //in Firefox content element has to have overflow hidden, else element margins aren't calculated properly, this element prevents this bug, but only if scrollbars aren't overlaid\n                        var contentSize = {\n                            //use clientSize because natively overlaidScrollbars add borders\n                            w: textareaDynOrigSize.w || contentMeasureElement[LEXICON.cW],\n                            h: textareaDynOrigSize.h || contentMeasureElement[LEXICON.cH]\n                        };\n                        var scrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH]\n                        };\n\n                        //apply the correct viewport style and measure viewport size\n                        if (!_nativeScrollbarStyling) {\n                            viewportElementResetCSS[_strBottom] = wasHeightAuto ? _strEmpty : resetBottomTmp;\n                            viewportElementResetCSS[isRTLLeft] = wasWidthAuto ? _strEmpty : resetXTmp;\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n                        _viewportSize = getViewportSize();\n\n                        //measure and correct several sizes\n                        var hostSize = getHostSize();\n                        var hostAbsoluteRectSize = {\n                            w: hostSize.w - _marginX - _borderX - (_isBorderBox ? 0 : _paddingX),\n                            h: hostSize.h - _marginY - _borderY - (_isBorderBox ? 0 : _paddingY)\n                        };\n                        var contentGlueSize = {\n                            //client/scrollSize + AbsolutePadding -> because padding is only applied to the paddingElement if its absolute, so you have to add it manually\n                            //hostSize is clientSize -> so padding should be added manually, right? FALSE! Because content glue is inside hostElement, so we don't have to worry about padding\n                            w: MATH.max((widthAuto ? contentSize.w : scrollSize.w) + paddingAbsoluteX, hostAbsoluteRectSize.w),\n                            h: MATH.max((heightAuto ? contentSize.h : scrollSize.h) + paddingAbsoluteY, hostAbsoluteRectSize.h)\n                        };\n                        contentGlueSize.c = checkCacheAutoForce(contentGlueSize, _contentGlueSizeCache);\n                        _contentGlueSizeCache = contentGlueSize;\n\n                        //apply correct contentGlue size\n                        if (sizeAutoCapable) {\n                            //size contentGlue correctly to make sure the element has correct size if the sizing switches to auto\n                            if (contentGlueSize.c || (heightAuto || widthAuto)) {\n                                contentGlueElementCSS[_strWidth] = contentGlueSize.w;\n                                contentGlueElementCSS[_strHeight] = contentGlueSize.h;\n\n                                //textarea-sizes are already calculated correctly at this point\n                                if (!_isTextarea) {\n                                    contentSize = {\n                                        //use clientSize because natively overlaidScrollbars add borders\n                                        w: contentMeasureElement[LEXICON.cW],\n                                        h: contentMeasureElement[LEXICON.cH]\n                                    };\n                                }\n                            }\n                            var textareaCoverCSS = {};\n                            var setContentGlueElementCSSfunction = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var wh = scrollbarVars._w_h;\n                                var strWH = scrollbarVars._width_height;\n                                var autoSize = horizontal ? widthAuto : heightAuto;\n                                var borderSize = horizontal ? _borderX : _borderY;\n                                var paddingSize = horizontal ? _paddingX : _paddingY;\n                                var marginSize = horizontal ? _marginX : _marginY;\n                                var viewportSize = _viewportSize[wh] - borderSize - marginSize - (_isBorderBox ? 0 : paddingSize);\n\n                                //make contentGlue size -1 if element is not auto sized, to make sure that a resize event happens when the element shrinks\n                                if (!autoSize || (!autoSize && border.c))\n                                    contentGlueElementCSS[strWH] = hostAbsoluteRectSize[wh] - 1;\n\n                                //if size is auto and host is smaller than size as min size, make content glue size -1 to make sure size changes will be detected (this is only needed if padding is 0)\n                                if (autoSize && (contentSize[wh] < viewportSize) && (horizontal && _isTextarea ? !textareaAutoWrapping : true)) {\n                                    if (_isTextarea)\n                                        textareaCoverCSS[strWH] = parseToZeroOrNumber(_textareaCoverElement.css(strWH)) - 1;\n                                    contentGlueElementCSS[strWH] -= 1;\n                                }\n\n                                //make sure content glue size is at least 1\n                                if (contentSize[wh] > 0)\n                                    contentGlueElementCSS[strWH] = MATH.max(1, contentGlueElementCSS[strWH]);\n                            };\n                            setContentGlueElementCSSfunction(true);\n                            setContentGlueElementCSSfunction(false);\n\n                            if (_isTextarea)\n                                _textareaCoverElement.css(textareaCoverCSS);\n                            _contentGlueElement.css(contentGlueElementCSS);\n                        }\n                        if (widthAuto)\n                            contentElementCSS[_strWidth] = _strHundredPercent;\n                        if (widthAuto && !_isBorderBox && !_mutationObserversConnected)\n                            contentElementCSS[_strFloat] = 'none';\n\n                        //apply and reset content style\n                        _contentElement.css(contentElementCSS);\n                        contentElementCSS = {};\n\n                        //measure again, but this time all correct sizes:\n                        var contentScrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH],\n                        };\n                        contentScrollSize.c = contentSizeChanged = checkCacheAutoForce(contentScrollSize, _contentScrollSizeCache);\n                        _contentScrollSizeCache = contentScrollSize;\n\n                        //refresh viewport size after correct measuring\n                        _viewportSize = getViewportSize();\n\n                        hostSize = getHostSize();\n                        hostSizeChanged = checkCacheAutoForce(hostSize, _hostSizeCache);\n                        _hostSizeCache = hostSize;\n\n                        var hideOverflowForceTextarea = _isTextarea && (_viewportSize.w === 0 || _viewportSize.h === 0);\n                        var previousOverflowAmount = _overflowAmountCache;\n                        var overflowBehaviorIsVS = {};\n                        var overflowBehaviorIsVH = {};\n                        var overflowBehaviorIsS = {};\n                        var overflowAmount = {};\n                        var hasOverflow = {};\n                        var hideOverflow = {};\n                        var canScroll = {};\n                        var viewportRect = _paddingElementNative[LEXICON.bCR]();\n                        var setOverflowVariables = function (horizontal) {\n                            var scrollbarVars = getScrollbarVars(horizontal);\n                            var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                            var xyI = scrollbarVarsInverted._x_y;\n                            var xy = scrollbarVars._x_y;\n                            var wh = scrollbarVars._w_h;\n                            var widthHeight = scrollbarVars._width_height;\n                            var scrollMax = _strScroll + scrollbarVars._Left_Top + 'Max';\n                            var fractionalOverflowAmount = viewportRect[widthHeight] ? MATH.abs(viewportRect[widthHeight] - _viewportSize[wh]) : 0;\n                            var checkFractionalOverflowAmount = previousOverflowAmount && previousOverflowAmount[xy] > 0 && _viewportElementNative[scrollMax] === 0;\n                            overflowBehaviorIsVS[xy] = overflowBehavior[xy] === 'v-s';\n                            overflowBehaviorIsVH[xy] = overflowBehavior[xy] === 'v-h';\n                            overflowBehaviorIsS[xy] = overflowBehavior[xy] === 's';\n                            overflowAmount[xy] = MATH.max(0, MATH.round((contentScrollSize[wh] - _viewportSize[wh]) * 100) / 100);\n                            overflowAmount[xy] *= (hideOverflowForceTextarea || (checkFractionalOverflowAmount && fractionalOverflowAmount > 0 && fractionalOverflowAmount < 1)) ? 0 : 1;\n                            hasOverflow[xy] = overflowAmount[xy] > 0;\n\n                            //hideOverflow:\n                            //x || y : true === overflow is hidden by \"overflow: scroll\" OR \"overflow: hidden\"\n                            //xs || ys : true === overflow is hidden by \"overflow: scroll\"\n                            hideOverflow[xy] = overflowBehaviorIsVS[xy] || overflowBehaviorIsVH[xy] ? (hasOverflow[xyI] && !overflowBehaviorIsVS[xyI] && !overflowBehaviorIsVH[xyI]) : hasOverflow[xy];\n                            hideOverflow[xy + 's'] = hideOverflow[xy] ? (overflowBehaviorIsS[xy] || overflowBehaviorIsVS[xy]) : false;\n\n                            canScroll[xy] = hasOverflow[xy] && hideOverflow[xy + 's'];\n                        };\n                        setOverflowVariables(true);\n                        setOverflowVariables(false);\n\n                        overflowAmount.c = checkCacheAutoForce(overflowAmount, _overflowAmountCache);\n                        _overflowAmountCache = overflowAmount;\n                        hasOverflow.c = checkCacheAutoForce(hasOverflow, _hasOverflowCache);\n                        _hasOverflowCache = hasOverflow;\n                        hideOverflow.c = checkCacheAutoForce(hideOverflow, _hideOverflowCache);\n                        _hideOverflowCache = hideOverflow;\n\n                        //if native scrollbar is overlay at x OR y axis, prepare DOM\n                        if (_nativeScrollbarIsOverlaid.x || _nativeScrollbarIsOverlaid.y) {\n                            var borderDesign = 'px solid transparent';\n                            var contentArrangeElementCSS = {};\n                            var arrangeContent = {};\n                            var arrangeChanged = force;\n                            var setContentElementCSS;\n\n                            if (hasOverflow.x || hasOverflow.y) {\n                                arrangeContent.w = _nativeScrollbarIsOverlaid.y && hasOverflow.y ? contentScrollSize.w + _overlayScrollbarDummySize.y : _strEmpty;\n                                arrangeContent.h = _nativeScrollbarIsOverlaid.x && hasOverflow.x ? contentScrollSize.h + _overlayScrollbarDummySize.x : _strEmpty;\n                                arrangeChanged = checkCacheAutoForce(arrangeContent, _arrangeContentSizeCache);\n                                _arrangeContentSizeCache = arrangeContent;\n                            }\n\n                            if (hasOverflow.c || hideOverflow.c || contentScrollSize.c || cssDirectionChanged || widthAutoChanged || heightAutoChanged || widthAuto || heightAuto || ignoreOverlayScrollbarHidingChanged) {\n                                contentElementCSS[_strMarginMinus + isRTLRight] = contentElementCSS[_strBorderMinus + isRTLRight] = _strEmpty;\n                                setContentElementCSS = function (horizontal) {\n                                    var scrollbarVars = getScrollbarVars(horizontal);\n                                    var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                    var xy = scrollbarVars._x_y;\n                                    var strDirection = horizontal ? _strBottom : isRTLLeft;\n                                    var invertedAutoSize = horizontal ? heightAuto : widthAuto;\n\n                                    if (_nativeScrollbarIsOverlaid[xy] && hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                        contentElementCSS[_strMarginMinus + strDirection] = invertedAutoSize ? (ignoreOverlayScrollbarHiding ? _strEmpty : _overlayScrollbarDummySize[xy]) : _strEmpty;\n                                        contentElementCSS[_strBorderMinus + strDirection] = ((horizontal ? !invertedAutoSize : true) && !ignoreOverlayScrollbarHiding) ? (_overlayScrollbarDummySize[xy] + borderDesign) : _strEmpty;\n                                    }\n                                    else {\n                                        arrangeContent[scrollbarVarsInverted._w_h] =\n                                            contentElementCSS[_strMarginMinus + strDirection] =\n                                            contentElementCSS[_strBorderMinus + strDirection] = _strEmpty;\n                                        arrangeChanged = true;\n                                    }\n                                };\n\n                                if (_nativeScrollbarStyling) {\n                                    addRemoveClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible, !ignoreOverlayScrollbarHiding)\n                                }\n                                else {\n                                    setContentElementCSS(true);\n                                    setContentElementCSS(false);\n                                }\n                            }\n                            if (ignoreOverlayScrollbarHiding) {\n                                arrangeContent.w = arrangeContent.h = _strEmpty;\n                                arrangeChanged = true;\n                            }\n                            if (arrangeChanged && !_nativeScrollbarStyling) {\n                                contentArrangeElementCSS[_strWidth] = hideOverflow.y ? arrangeContent.w : _strEmpty;\n                                contentArrangeElementCSS[_strHeight] = hideOverflow.x ? arrangeContent.h : _strEmpty;\n\n                                if (!_contentArrangeElement) {\n                                    _contentArrangeElement = FRAMEWORK(generateDiv(_classNameContentArrangeElement));\n                                    _viewportElement.prepend(_contentArrangeElement);\n                                }\n                                _contentArrangeElement.css(contentArrangeElementCSS);\n                            }\n                            _contentElement.css(contentElementCSS);\n                        }\n\n                        var viewportElementCSS = {};\n                        var paddingElementCSS = {};\n                        var setViewportCSS;\n                        if (hostSizeChanged || hasOverflow.c || hideOverflow.c || contentScrollSize.c || overflowBehaviorChanged || boxSizingChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged || clipAlwaysChanged || heightAutoChanged) {\n                            viewportElementCSS[isRTLRight] = _strEmpty;\n                            setViewportCSS = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                var xy = scrollbarVars._x_y;\n                                var XY = scrollbarVars._X_Y;\n                                var strDirection = horizontal ? _strBottom : isRTLLeft;\n\n                                var reset = function () {\n                                    viewportElementCSS[strDirection] = _strEmpty;\n                                    _contentBorderSize[scrollbarVarsInverted._w_h] = 0;\n                                };\n                                if (hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                    viewportElementCSS[strOverflow + XY] = _strScroll;\n                                    if (ignoreOverlayScrollbarHiding || _nativeScrollbarStyling) {\n                                        reset();\n                                    }\n                                    else {\n                                        viewportElementCSS[strDirection] = -(_nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[xy] : _nativeScrollbarSize[xy]);\n                                        _contentBorderSize[scrollbarVarsInverted._w_h] = _nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[scrollbarVarsInverted._x_y] : 0;\n                                    }\n                                } else {\n                                    viewportElementCSS[strOverflow + XY] = _strEmpty;\n                                    reset();\n                                }\n                            };\n                            setViewportCSS(true);\n                            setViewportCSS(false);\n\n                            // if the scroll container is too small and if there is any overflow with no overlay scrollbar (and scrollbar styling isn't possible), \n                            // make viewport element greater in size (Firefox hide Scrollbars fix)\n                            // because firefox starts hiding scrollbars on too small elements\n                            // with this behavior the overflow calculation may be incorrect or the scrollbars would appear suddenly\n                            // https://bugzilla.mozilla.org/show_bug.cgi?id=292284\n                            if (!_nativeScrollbarStyling\n                                && (_viewportSize.h < _nativeScrollbarMinSize.x || _viewportSize.w < _nativeScrollbarMinSize.y)\n                                && ((hasOverflow.x && hideOverflow.x && !_nativeScrollbarIsOverlaid.x) || (hasOverflow.y && hideOverflow.y && !_nativeScrollbarIsOverlaid.y))) {\n                                viewportElementCSS[_strPaddingMinus + _strTop] = _nativeScrollbarMinSize.x;\n                                viewportElementCSS[_strMarginMinus + _strTop] = -_nativeScrollbarMinSize.x;\n\n                                viewportElementCSS[_strPaddingMinus + isRTLRight] = _nativeScrollbarMinSize.y;\n                                viewportElementCSS[_strMarginMinus + isRTLRight] = -_nativeScrollbarMinSize.y;\n                            }\n                            else {\n                                viewportElementCSS[_strPaddingMinus + _strTop] =\n                                    viewportElementCSS[_strMarginMinus + _strTop] =\n                                    viewportElementCSS[_strPaddingMinus + isRTLRight] =\n                                    viewportElementCSS[_strMarginMinus + isRTLRight] = _strEmpty;\n                            }\n                            viewportElementCSS[_strPaddingMinus + isRTLLeft] =\n                                viewportElementCSS[_strMarginMinus + isRTLLeft] = _strEmpty;\n\n                            //if there is any overflow (x OR y axis) and this overflow shall be hidden, make overflow hidden, else overflow visible\n                            if ((hasOverflow.x && hideOverflow.x) || (hasOverflow.y && hideOverflow.y) || hideOverflowForceTextarea) {\n                                //only hide if is Textarea\n                                if (_isTextarea && hideOverflowForceTextarea) {\n                                    paddingElementCSS[strOverflowX] =\n                                        paddingElementCSS[strOverflowY] = strHidden;\n                                }\n                            }\n                            else {\n                                if (!clipAlways || (overflowBehaviorIsVH.x || overflowBehaviorIsVS.x || overflowBehaviorIsVH.y || overflowBehaviorIsVS.y)) {\n                                    //only un-hide if Textarea\n                                    if (_isTextarea) {\n                                        paddingElementCSS[strOverflowX] =\n                                            paddingElementCSS[strOverflowY] = _strEmpty;\n                                    }\n                                    viewportElementCSS[strOverflowX] =\n                                        viewportElementCSS[strOverflowY] = strVisible;\n                                }\n                            }\n\n                            _paddingElement.css(paddingElementCSS);\n                            _viewportElement.css(viewportElementCSS);\n                            viewportElementCSS = {};\n\n                            //force soft redraw in webkit because without the scrollbars will may appear because DOM wont be redrawn under special conditions\n                            if ((hasOverflow.c || boxSizingChanged || widthAutoChanged || heightAutoChanged) && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                                var elementStyle = _contentElementNative[LEXICON.s];\n                                var dump;\n                                elementStyle.webkitTransform = 'scale(1)';\n                                elementStyle.display = 'run-in';\n                                dump = _contentElementNative[LEXICON.oH];\n                                elementStyle.display = _strEmpty; //|| dump; //use dump to prevent it from deletion if minify\n                                elementStyle.webkitTransform = _strEmpty;\n                            }\n                            /*\n                            //force hard redraw in webkit if native overlaid scrollbars shall appear\n                            if (ignoreOverlayScrollbarHidingChanged && ignoreOverlayScrollbarHiding) {\n                                _hostElement.hide();\n                                var dump = _hostElementNative[LEXICON.oH];\n                                _hostElement.show();\n                            }\n                            */\n                        }\n\n                        //change to direction RTL and width auto Bugfix in Webkit\n                        //without this fix, the DOM still thinks the scrollbar is LTR and thus the content is shifted to the left\n                        contentElementCSS = {};\n                        if (cssDirectionChanged || widthAutoChanged || heightAutoChanged) {\n                            if (_isRTL && widthAuto) {\n                                var floatTmp = _contentElement.css(_strFloat);\n                                var posLeftWithoutFloat = MATH.round(_contentElement.css(_strFloat, _strEmpty).css(_strLeft, _strEmpty).position().left);\n                                _contentElement.css(_strFloat, floatTmp);\n                                var posLeftWithFloat = MATH.round(_contentElement.position().left);\n\n                                if (posLeftWithoutFloat !== posLeftWithFloat)\n                                    contentElementCSS[_strLeft] = posLeftWithoutFloat;\n                            }\n                            else {\n                                contentElementCSS[_strLeft] = _strEmpty;\n                            }\n                        }\n                        _contentElement.css(contentElementCSS);\n\n                        //handle scroll position\n                        if (_isTextarea && contentSizeChanged) {\n                            var textareaInfo = getTextareaInfo();\n                            if (textareaInfo) {\n                                var textareaRowsChanged = _textareaInfoCache === undefined ? true : textareaInfo._rows !== _textareaInfoCache._rows;\n                                var cursorRow = textareaInfo._cursorRow;\n                                var cursorCol = textareaInfo._cursorColumn;\n                                var widestRow = textareaInfo._widestRow;\n                                var lastRow = textareaInfo._rows;\n                                var lastCol = textareaInfo._columns;\n                                var cursorPos = textareaInfo._cursorPosition;\n                                var cursorMax = textareaInfo._cursorMax;\n                                var cursorIsLastPosition = (cursorPos >= cursorMax && _textareaHasFocus);\n                                var textareaScrollAmount = {\n                                    x: (!textareaAutoWrapping && (cursorCol === lastCol && cursorRow === widestRow)) ? _overflowAmountCache.x : -1,\n                                    y: (textareaAutoWrapping ? cursorIsLastPosition || textareaRowsChanged && (previousOverflowAmount ? (currScroll.y === previousOverflowAmount.y) : false) : (cursorIsLastPosition || textareaRowsChanged) && cursorRow === lastRow) ? _overflowAmountCache.y : -1\n                                };\n                                currScroll.x = textareaScrollAmount.x > -1 ? (_isRTL && _normalizeRTLCache && _rtlScrollBehavior.i ? 0 : textareaScrollAmount.x) : currScroll.x; //if inverted, scroll to 0 -> normalized this means to max scroll offset.\n                                currScroll.y = textareaScrollAmount.y > -1 ? textareaScrollAmount.y : currScroll.y;\n                            }\n                            _textareaInfoCache = textareaInfo;\n                        }\n                        if (_isRTL && _rtlScrollBehavior.i && _nativeScrollbarIsOverlaid.y && hasOverflow.x && _normalizeRTLCache)\n                            currScroll.x += _contentBorderSize.w || 0;\n                        if (widthAuto)\n                            _hostElement[_strScrollLeft](0);\n                        if (heightAuto)\n                            _hostElement[_strScrollTop](0);\n                        _viewportElement[_strScrollLeft](currScroll.x)[_strScrollTop](currScroll.y);\n\n                        //scrollbars management:\n                        var scrollbarsVisibilityVisible = scrollbarsVisibility === 'v';\n                        var scrollbarsVisibilityHidden = scrollbarsVisibility === 'h';\n                        var scrollbarsVisibilityAuto = scrollbarsVisibility === 'a';\n                        var refreshScrollbarsVisibility = function (showX, showY) {\n                            showY = showY === undefined ? showX : showY;\n                            refreshScrollbarAppearance(true, showX, canScroll.x)\n                            refreshScrollbarAppearance(false, showY, canScroll.y)\n                        };\n\n                        //manage class name which indicates scrollable overflow\n                        addRemoveClass(_hostElement, _classNameHostOverflow, hideOverflow.x || hideOverflow.y);\n                        addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);\n                        addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);\n\n                        //add or remove rtl class name for styling purposes except when its body, then the scrollbar stays\n                        if (cssDirectionChanged && !_isBody) {\n                            addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);\n                        }\n\n                        //manage the resize feature (CSS3 resize \"polyfill\" for this plugin)\n                        if (_isBody)\n                            addClass(_hostElement, _classNameHostResizeDisabled);\n                        if (resizeChanged) {\n                            addRemoveClass(_hostElement, _classNameHostResizeDisabled, _resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResize, !_resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeB, _resizeBoth);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeH, _resizeHorizontal);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeV, _resizeVertical);\n                        }\n\n                        //manage the scrollbars general visibility + the scrollbar interactivity (unusable class name)\n                        if (scrollbarsVisibilityChanged || overflowBehaviorChanged || hideOverflow.c || hasOverflow.c || ignoreOverlayScrollbarHidingChanged) {\n                            if (ignoreOverlayScrollbarHiding) {\n                                if (ignoreOverlayScrollbarHidingChanged) {\n                                    removeClass(_hostElement, _classNameHostScrolling);\n                                    if (ignoreOverlayScrollbarHiding) {\n                                        refreshScrollbarsVisibility(false);\n                                    }\n                                }\n                            }\n                            else if (scrollbarsVisibilityAuto) {\n                                refreshScrollbarsVisibility(canScroll.x, canScroll.y);\n                            }\n                            else if (scrollbarsVisibilityVisible) {\n                                refreshScrollbarsVisibility(true);\n                            }\n                            else if (scrollbarsVisibilityHidden) {\n                                refreshScrollbarsVisibility(false);\n                            }\n                        }\n\n                        //manage the scrollbars auto hide feature (auto hide them after specific actions)\n                        if (scrollbarsAutoHideChanged || ignoreOverlayScrollbarHidingChanged) {\n                            setupHostMouseTouchEvents(!_scrollbarsAutoHideLeave && !_scrollbarsAutoHideMove);\n                            refreshScrollbarsAutoHide(_scrollbarsAutoHideNever, !_scrollbarsAutoHideNever);\n                        }\n\n                        //manage scrollbars handle length & offset - don't remove!\n                        if (hostSizeChanged || overflowAmount.c || heightAutoChanged || widthAutoChanged || resizeChanged || boxSizingChanged || paddingAbsoluteChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged) {\n                            refreshScrollbarHandleLength(true);\n                            refreshScrollbarHandleOffset(true);\n                            refreshScrollbarHandleLength(false);\n                            refreshScrollbarHandleOffset(false);\n                        }\n\n                        //manage interactivity\n                        if (scrollbarsClickScrollingChanged)\n                            refreshScrollbarsInteractive(true, scrollbarsClickScrolling);\n                        if (scrollbarsDragScrollingChanged)\n                            refreshScrollbarsInteractive(false, scrollbarsDragScrolling);\n\n                        //callbacks:\n                        dispatchCallback('onDirectionChanged', {\n                            isRTL: _isRTL,\n                            dir: cssDirection\n                        }, cssDirectionChanged);\n                        dispatchCallback('onHostSizeChanged', {\n                            width: _hostSizeCache.w,\n                            height: _hostSizeCache.h\n                        }, hostSizeChanged);\n                        dispatchCallback('onContentSizeChanged', {\n                            width: _contentScrollSizeCache.w,\n                            height: _contentScrollSizeCache.h\n                        }, contentSizeChanged);\n                        dispatchCallback('onOverflowChanged', {\n                            x: hasOverflow.x,\n                            y: hasOverflow.y,\n                            xScrollable: hideOverflow.xs,\n                            yScrollable: hideOverflow.ys,\n                            clipped: hideOverflow.x || hideOverflow.y\n                        }, hasOverflow.c || hideOverflow.c);\n                        dispatchCallback('onOverflowAmountChanged', {\n                            x: overflowAmount.x,\n                            y: overflowAmount.y\n                        }, overflowAmount.c);\n                    }\n\n                    //fix body min size\n                    if (_isBody && _bodyMinSizeCache && (_hasOverflowCache.c || _bodyMinSizeCache.c)) {\n                        //its possible that no min size was measured until now, because the content arrange element was just added now, in this case, measure now the min size.\n                        if (!_bodyMinSizeCache.f)\n                            bodyMinSizeChanged();\n                        if (_nativeScrollbarIsOverlaid.y && _hasOverflowCache.x)\n                            _contentElement.css(_strMinMinus + _strWidth, _bodyMinSizeCache.w + _overlayScrollbarDummySize.y);\n                        if (_nativeScrollbarIsOverlaid.x && _hasOverflowCache.y)\n                            _contentElement.css(_strMinMinus + _strHeight, _bodyMinSizeCache.h + _overlayScrollbarDummySize.x);\n                        _bodyMinSizeCache.c = false;\n                    }\n\n                    if (_initialized && changedOptions.updateOnLoad) {\n                        updateElementsOnLoad();\n                    }\n\n                    //freezeResizeObserver(_sizeObserverElement, false);\n                    //freezeResizeObserver(_sizeAutoObserverElement, false);\n\n                    dispatchCallback('onUpdated', { forced: force });\n                }\n\n                /**\n                 * Updates the found elements of which the load event shall be handled.\n                 */\n                function updateElementsOnLoad() {\n                    if (!_isTextarea) {\n                        eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                            _contentElement.find(updateOnLoadSelector).each(function (i, el) {\n                                // if element doesn't have a updateOnLoadCallback applied\n                                if (COMPATIBILITY.inA(el, _updateOnLoadElms) < 0) {\n                                    _updateOnLoadElms.push(el);\n                                    FRAMEWORK(el)\n                                        .off(_updateOnLoadEventName, updateOnLoadCallback)\n                                        .on(_updateOnLoadEventName, updateOnLoadCallback);\n                                }\n                            });\n                        });\n                    }\n                }\n\n                //==== Options ====//\n\n                /**\n                 * Sets new options but doesn't call the update method.\n                 * @param newOptions The object which contains the new options.\n                 * @returns {*} A object which contains the changed options.\n                 */\n                function setOptions(newOptions) {\n                    var validatedOpts = _pluginsOptions._validate(newOptions, _pluginsOptions._template, true, _currentOptions)\n\n                    _currentOptions = extendDeep({}, _currentOptions, validatedOpts._default);\n                    _currentPreparedOptions = extendDeep({}, _currentPreparedOptions, validatedOpts._prepared);\n\n                    return validatedOpts._prepared;\n                }\n\n\n                //==== Structure ====//\n\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupStructureDOM(destroy) {\n                    var strParent = 'parent';\n                    var classNameResizeObserverHost = 'os-resize-observer-host';\n                    var classNameTextareaElementFull = _classNameTextareaElement + _strSpace + _classNameTextInherit;\n                    var textareaClass = _isTextarea ? _strSpace + _classNameTextInherit : _strEmpty;\n                    var adoptAttrs = _currentPreparedOptions.textarea.inheritedAttrs;\n                    var adoptAttrsMap = {};\n                    var applyAdoptedAttrs = function () {\n                        var applyAdoptedAttrsElm = destroy ? _targetElement : _hostElement;\n                        each(adoptAttrsMap, function (key, value) {\n                            if (type(value) == TYPES.s) {\n                                if (key == LEXICON.c)\n                                    applyAdoptedAttrsElm.addClass(value);\n                                else\n                                    applyAdoptedAttrsElm.attr(key, value);\n                            }\n                        });\n                    };\n                    var hostElementClassNames = [\n                        _classNameHostElement,\n                        _classNameHostElementForeign,\n                        _classNameHostTextareaElement,\n                        _classNameHostResizeDisabled,\n                        _classNameHostRTL,\n                        _classNameHostScrollbarHorizontalHidden,\n                        _classNameHostScrollbarVerticalHidden,\n                        _classNameHostTransition,\n                        _classNameHostScrolling,\n                        _classNameHostOverflow,\n                        _classNameHostOverflowX,\n                        _classNameHostOverflowY,\n                        _classNameThemeNone,\n                        _classNameTextareaElement,\n                        _classNameTextInherit,\n                        _classNameCache].join(_strSpace);\n                    var hostElementCSS = {};\n\n                    //get host element as first element, because that's the most upper element and required for the other elements\n                    _hostElement = _hostElement || (_isTextarea ? (_domExists ? _targetElement[strParent]()[strParent]()[strParent]()[strParent]() : FRAMEWORK(generateDiv(_classNameHostTextareaElement))) : _targetElement);\n                    _contentElement = _contentElement || selectOrGenerateDivByClass(_classNameContentElement + textareaClass);\n                    _viewportElement = _viewportElement || selectOrGenerateDivByClass(_classNameViewportElement + textareaClass);\n                    _paddingElement = _paddingElement || selectOrGenerateDivByClass(_classNamePaddingElement + textareaClass);\n                    _sizeObserverElement = _sizeObserverElement || selectOrGenerateDivByClass(classNameResizeObserverHost);\n                    _textareaCoverElement = _textareaCoverElement || (_isTextarea ? selectOrGenerateDivByClass(_classNameTextareaCoverElement) : undefined);\n\n                    //add this class to workaround class changing issues with UI frameworks especially Vue\n                    if (_domExists)\n                        addClass(_hostElement, _classNameHostElementForeign);\n\n                    //on destroy, remove all generated class names from the host element before collecting the adopted attributes \n                    //to prevent adopting generated class names\n                    if (destroy)\n                        removeClass(_hostElement, hostElementClassNames);\n\n                    //collect all adopted attributes\n                    adoptAttrs = type(adoptAttrs) == TYPES.s ? adoptAttrs.split(_strSpace) : adoptAttrs;\n                    if (COMPATIBILITY.isA(adoptAttrs) && _isTextarea) {\n                        each(adoptAttrs, function (i, v) {\n                            if (type(v) == TYPES.s) {\n                                adoptAttrsMap[v] = destroy ? _hostElement.attr(v) : _targetElement.attr(v);\n                            }\n                        });\n                    }\n\n                    if (!destroy) {\n                        if (_isTextarea) {\n                            if (!_currentPreparedOptions.sizeAutoCapable) {\n                                hostElementCSS[_strWidth] = _targetElement.css(_strWidth);\n                                hostElementCSS[_strHeight] = _targetElement.css(_strHeight);\n                            }\n\n                            if (!_domExists)\n                                _targetElement.addClass(_classNameTextInherit).wrap(_hostElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _hostElement = _targetElement[strParent]().css(hostElementCSS);\n                        }\n\n                        if (!_domExists) {\n                            //add the correct class to the target element\n                            addClass(_targetElement, _isTextarea ? classNameTextareaElementFull : _classNameHostElement);\n\n                            //wrap the content into the generated elements to create the required DOM\n                            _hostElement.wrapInner(_contentElement)\n                                .wrapInner(_viewportElement)\n                                .wrapInner(_paddingElement)\n                                .prepend(_sizeObserverElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _contentElement = findFirst(_hostElement, _strDot + _classNameContentElement);\n                            _viewportElement = findFirst(_hostElement, _strDot + _classNameViewportElement);\n                            _paddingElement = findFirst(_hostElement, _strDot + _classNamePaddingElement);\n\n                            if (_isTextarea) {\n                                _contentElement.prepend(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_nativeScrollbarStyling)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible);\n                        if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsOverlaid);\n                        if (_isBody)\n                            addClass(_htmlElement, _classNameHTMLElement);\n\n                        _sizeObserverElementNative = _sizeObserverElement[0];\n                        _hostElementNative = _hostElement[0];\n                        _paddingElementNative = _paddingElement[0];\n                        _viewportElementNative = _viewportElement[0];\n                        _contentElementNative = _contentElement[0];\n\n                        updateViewportAttrsFromTarget();\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            //clear size observer\n                            _sizeObserverElement.children().remove();\n\n                            //remove the style property and classes from already generated elements\n                            each([_paddingElement, _viewportElement, _contentElement, _textareaCoverElement], function (i, elm) {\n                                if (elm) {\n                                    removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                                }\n                            });\n\n                            //add classes to the host element which was removed previously to match the expected DOM\n                            addClass(_hostElement, _isTextarea ? _classNameHostTextareaElement : _classNameHostElement);\n                        }\n                        else {\n                            //remove size observer\n                            remove(_sizeObserverElement);\n\n                            //unwrap the content to restore DOM\n                            _contentElement.contents()\n                                .unwrap()\n                                .unwrap()\n                                .unwrap();\n\n                            if (_isTextarea) {\n                                _targetElement.unwrap();\n                                remove(_hostElement);\n                                remove(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_isTextarea)\n                            _targetElement.removeAttr(LEXICON.s);\n\n                        if (_isBody)\n                            removeClass(_htmlElement, _classNameHTMLElement);\n                    }\n                }\n\n                /**\n                 * Adds or removes all wrapper elements interactivity events.\n                 * @param destroy Indicates whether the Events shall be added or removed.\n                 */\n                function setupStructureEvents() {\n                    var textareaKeyDownRestrictedKeyCodes = [\n                        112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123,    //F1 to F12\n                        33, 34,                                                   //page up, page down\n                        37, 38, 39, 40,                                           //left, up, right, down arrows\n                        16, 17, 18, 19, 20, 144                                   //Shift, Ctrl, Alt, Pause, CapsLock, NumLock\n                    ];\n                    var textareaKeyDownKeyCodesList = [];\n                    var textareaUpdateIntervalID;\n                    var scrollStopTimeoutId;\n                    var scrollStopDelay = 175;\n                    var strFocus = 'focus';\n\n                    function updateTextarea(doClearInterval) {\n                        textareaUpdate();\n                        _base.update(_strAuto);\n                        if (doClearInterval && _autoUpdateRecommended)\n                            clearInterval(textareaUpdateIntervalID);\n                    }\n                    function textareaOnScroll(event) {\n                        _targetElement[_strScrollLeft](_rtlScrollBehavior.i && _normalizeRTLCache ? 9999999 : 0);\n                        _targetElement[_strScrollTop](0);\n                        COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                        return false;\n                    }\n                    function textareaOnDrop(event) {\n                        setTimeout(function () {\n                            if (!_destroyed)\n                                updateTextarea();\n                        }, 50);\n                    }\n                    function textareaOnFocus() {\n                        _textareaHasFocus = true;\n                        addClass(_hostElement, strFocus);\n                    }\n                    function textareaOnFocusout() {\n                        _textareaHasFocus = false;\n                        textareaKeyDownKeyCodesList = [];\n                        removeClass(_hostElement, strFocus);\n                        updateTextarea(true);\n                    }\n                    function textareaOnKeyDown(event) {\n                        var keyCode = event.keyCode;\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l]) {\n                                updateTextarea();\n                                textareaUpdateIntervalID = setInterval(updateTextarea, 1000 / 60);\n                            }\n                            if (inArray(keyCode, textareaKeyDownKeyCodesList) < 0)\n                                textareaKeyDownKeyCodesList.push(keyCode);\n                        }\n                    }\n                    function textareaOnKeyUp(event) {\n                        var keyCode = event.keyCode;\n                        var index = inArray(keyCode, textareaKeyDownKeyCodesList);\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (index > -1)\n                                textareaKeyDownKeyCodesList.splice(index, 1);\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l])\n                                updateTextarea(true);\n                        }\n                    }\n                    function contentOnTransitionEnd(event) {\n                        if (_autoUpdateCache === true)\n                            return;\n                        event = event.originalEvent || event;\n                        if (isSizeAffectingCSSProperty(event.propertyName))\n                            _base.update(_strAuto);\n                    }\n                    function viewportOnScroll(event) {\n                        if (!_sleeping) {\n                            if (scrollStopTimeoutId !== undefined)\n                                clearTimeout(scrollStopTimeoutId);\n                            else {\n                                if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                    refreshScrollbarsAutoHide(true);\n\n                                if (!nativeOverlayScrollbarsAreActive())\n                                    addClass(_hostElement, _classNameHostScrolling);\n\n                                dispatchCallback('onScrollStart', event);\n                            }\n\n                            //if a scrollbars handle gets dragged, the mousemove event is responsible for refreshing the handle offset\n                            //because if CSS scroll-snap is used, the handle offset gets only refreshed on every snap point\n                            //this looks laggy & clunky, it looks much better if the offset refreshes with the mousemove\n                            if (!_scrollbarsHandlesDefineScrollPos) {\n                                refreshScrollbarHandleOffset(true);\n                                refreshScrollbarHandleOffset(false);\n                            }\n                            dispatchCallback('onScroll', event);\n\n                            scrollStopTimeoutId = setTimeout(function () {\n                                if (!_destroyed) {\n                                    //OnScrollStop:\n                                    clearTimeout(scrollStopTimeoutId);\n                                    scrollStopTimeoutId = undefined;\n\n                                    if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                        refreshScrollbarsAutoHide(false);\n\n                                    if (!nativeOverlayScrollbarsAreActive())\n                                        removeClass(_hostElement, _classNameHostScrolling);\n\n                                    dispatchCallback('onScrollStop', event);\n                                }\n                            }, scrollStopDelay);\n                        }\n                    }\n\n\n                    if (_isTextarea) {\n                        if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                            addDestroyEventListener(_targetElement, 'input', updateTextarea);\n                        }\n                        else {\n                            addDestroyEventListener(_targetElement,\n                                [_strKeyDownEvent, _strKeyUpEvent],\n                                [textareaOnKeyDown, textareaOnKeyUp]);\n                        }\n\n                        addDestroyEventListener(_targetElement,\n                            [_strScroll, 'drop', strFocus, strFocus + 'out'],\n                            [textareaOnScroll, textareaOnDrop, textareaOnFocus, textareaOnFocusout]);\n                    }\n                    else {\n                        addDestroyEventListener(_contentElement, _strTransitionEndEvent, contentOnTransitionEnd);\n                    }\n                    addDestroyEventListener(_viewportElement, _strScroll, viewportOnScroll, true);\n                }\n\n\n                //==== Scrollbars ====//\n\n                /**\n                 * Builds or destroys all scrollbar DOM elements (scrollbar, track, handle)\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarsDOM(destroy) {\n                    var selectOrGenerateScrollbarDOM = function (isHorizontal) {\n                        var scrollbarClassName = isHorizontal ? _classNameScrollbarHorizontal : _classNameScrollbarVertical;\n                        var scrollbar = selectOrGenerateDivByClass(_classNameScrollbar + _strSpace + scrollbarClassName, true);\n                        var track = selectOrGenerateDivByClass(_classNameScrollbarTrack, scrollbar);\n                        var handle = selectOrGenerateDivByClass(_classNameScrollbarHandle, scrollbar);\n\n                        if (!_domExists && !destroy) {\n                            scrollbar.append(track);\n                            track.append(handle);\n                        }\n\n                        return {\n                            _scrollbar: scrollbar,\n                            _track: track,\n                            _handle: handle\n                        };\n                    };\n                    function resetScrollbarDOM(isHorizontal) {\n                        var scrollbarVars = getScrollbarVars(isHorizontal);\n                        var scrollbar = scrollbarVars._scrollbar;\n                        var track = scrollbarVars._track;\n                        var handle = scrollbarVars._handle;\n\n                        if (_domExists && _initialized) {\n                            each([scrollbar, track, handle], function (i, elm) {\n                                removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                            });\n                        }\n                        else {\n                            remove(scrollbar || selectOrGenerateScrollbarDOM(isHorizontal)._scrollbar);\n                        }\n                    }\n                    var horizontalElements;\n                    var verticalElements;\n\n                    if (!destroy) {\n                        horizontalElements = selectOrGenerateScrollbarDOM(true);\n                        verticalElements = selectOrGenerateScrollbarDOM();\n\n                        _scrollbarHorizontalElement = horizontalElements._scrollbar;\n                        _scrollbarHorizontalTrackElement = horizontalElements._track;\n                        _scrollbarHorizontalHandleElement = horizontalElements._handle;\n                        _scrollbarVerticalElement = verticalElements._scrollbar;\n                        _scrollbarVerticalTrackElement = verticalElements._track;\n                        _scrollbarVerticalHandleElement = verticalElements._handle;\n\n                        if (!_domExists) {\n                            _paddingElement.after(_scrollbarVerticalElement);\n                            _paddingElement.after(_scrollbarHorizontalElement);\n                        }\n                    }\n                    else {\n                        resetScrollbarDOM(true);\n                        resetScrollbarDOM();\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar interactivity events. (track and handle dragging, clicking, scrolling)\n                 * @param isHorizontal True if the target scrollbar is the horizontal scrollbar, false if the target scrollbar is the vertical scrollbar.\n                 */\n                function setupScrollbarEvents(isHorizontal) {\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var xy = scrollbarVars._x_y;\n                    var XY = scrollbarVars._X_Y;\n                    var scroll = _strScroll + scrollbarVars._Left_Top;\n                    var strActive = 'active';\n                    var strSnapHandle = 'snapHandle';\n                    var strClickEvent = 'click';\n                    var scrollDurationFactor = 1;\n                    var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl\n                    var trackTimeout;\n                    var mouseDownScroll;\n                    var mouseDownOffset;\n                    var mouseDownInvertedScale;\n\n                    function getPointerPosition(event) {\n                        return _msieVersion && insideIFrame ? event['screen' + XY] : COMPATIBILITY.page(event)[xy]; //use screen coordinates in EDGE & IE because the page values are incorrect in frames.\n                    }\n                    function getPreparedScrollbarsOption(name) {\n                        return _currentPreparedOptions.scrollbars[name];\n                    }\n                    function increaseTrackScrollAmount() {\n                        scrollDurationFactor = 0.5;\n                    }\n                    function decreaseTrackScrollAmount() {\n                        scrollDurationFactor = 1;\n                    }\n                    function stopClickEventPropagation(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function documentKeyDown(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            increaseTrackScrollAmount();\n                    }\n                    function documentKeyUp(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            decreaseTrackScrollAmount();\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed || nativeOverlayScrollbarsAreActive() || !_scrollbarsDragScrollingCache || (isTouchEvent && !getPreparedScrollbarsOption('touchSupport')) ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var trackLength = scrollbarVarsInfo._trackLength;\n                            var handleLength = scrollbarVarsInfo._handleLength;\n                            var scrollRange = scrollbarVarsInfo._maxScroll;\n                            var scrollRaw = (getPointerPosition(event) - mouseDownOffset) * mouseDownInvertedScale;\n                            var scrollDeltaPercent = scrollRaw / (trackLength - handleLength);\n                            var scrollDelta = (scrollRange * scrollDeltaPercent);\n                            scrollDelta = isFinite(scrollDelta) ? scrollDelta : 0;\n                            if (_isRTL && isHorizontal && !_rtlScrollBehavior.i)\n                                scrollDelta *= -1;\n\n                            _viewportElement[scroll](MATH.round(mouseDownScroll + scrollDelta));\n\n                            if (_scrollbarsHandlesDefineScrollPos)\n                                refreshScrollbarHandleOffset(isHorizontal, mouseDownScroll + scrollDelta);\n\n                            if (!_supportPassiveEvents)\n                                COMPATIBILITY.prvD(event);\n                        }\n                        else\n                            documentMouseTouchUp(event);\n                    }\n                    function documentMouseTouchUp(event) {\n                        event = event || event.originalEvent;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],\n                            true);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });\n                        });\n                        \n                            \n                        if (_scrollbarsHandlesDefineScrollPos)\n                            refreshScrollbarHandleOffset(isHorizontal, true);\n\n                        _scrollbarsHandlesDefineScrollPos = false;\n                        removeClass(_bodyElement, _classNameDragging);\n                        removeClass(scrollbarVars._handle, strActive);\n                        removeClass(scrollbarVars._track, strActive);\n                        removeClass(scrollbarVars._scrollbar, strActive);\n\n                        mouseDownScroll = undefined;\n                        mouseDownOffset = undefined;\n                        mouseDownInvertedScale = 1;\n\n                        decreaseTrackScrollAmount();\n\n                        if (trackTimeout !== undefined) {\n                            _base.scrollStop();\n                            clearTimeout(trackTimeout);\n                            trackTimeout = undefined;\n                        }\n\n                        if (event) {\n                            var rect = _hostElementNative[LEXICON.bCR]();\n                            var mouseInsideHost = event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;\n\n                            //if mouse is outside host element\n                            if (!mouseInsideHost)\n                                hostOnMouseLeave();\n\n                            if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                refreshScrollbarsAutoHide(false);\n                        }\n                    }\n                    function onHandleMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event))\n                            onHandleMouseTouchDownAction(event);\n                    }\n                    function onHandleMouseTouchDownAction(event) {\n                        mouseDownScroll = _viewportElement[scroll]();\n                        mouseDownScroll = isNaN(mouseDownScroll) ? 0 : mouseDownScroll;\n                        if (_isRTL && isHorizontal && !_rtlScrollBehavior.n || !_isRTL)\n                            mouseDownScroll = mouseDownScroll < 0 ? 0 : mouseDownScroll;\n\n                        mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                        mouseDownOffset = getPointerPosition(event);\n\n                        _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                        addClass(_bodyElement, _classNameDragging);\n                        addClass(scrollbarVars._handle, strActive);\n                        addClass(scrollbarVars._scrollbar, strActive);\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentOnSelectStart]);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });\n                        });\n                        \n\n                        if (_msieVersion || !_documentMixed)\n                            COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function onTrackMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);\n                            var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);\n                            var scrollBaseDuration = 270 * handleToViewportRatio;\n                            var scrollFirstIterationDelay = 400 * handleToViewportRatio;\n                            var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];\n                            var ctrlKey = event.ctrlKey;\n                            var instantScroll = event.shiftKey;\n                            var instantScrollTransition = instantScroll && ctrlKey;\n                            var isFirstIteration = true;\n                            var easing = 'linear';\n                            var decreaseScroll;\n                            var finishedCondition;\n                            var scrollActionFinsished = function (transition) {\n                                if (_scrollbarsHandlesDefineScrollPos)\n                                    refreshScrollbarHandleOffset(isHorizontal, transition);\n                            };\n                            var scrollActionInstantFinished = function () {\n                                scrollActionFinsished();\n                                onHandleMouseTouchDownAction(event);\n                            };\n                            var scrollAction = function () {\n                                if (!_destroyed) {\n                                    var mouseOffset = (mouseDownOffset - trackOffset) * mouseDownInvertedScale;\n                                    var handleOffset = scrollbarVarsInfo._handleOffset;\n                                    var trackLength = scrollbarVarsInfo._trackLength;\n                                    var handleLength = scrollbarVarsInfo._handleLength;\n                                    var scrollRange = scrollbarVarsInfo._maxScroll;\n                                    var currScroll = scrollbarVarsInfo._currentScroll;\n                                    var scrollDuration = scrollBaseDuration * scrollDurationFactor;\n                                    var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;\n                                    var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent\n                                    var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);\n                                    var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;\n                                    var scrollObj = {};\n                                    var animationObj = {\n                                        easing: easing,\n                                        step: function (now) {\n                                            if (_scrollbarsHandlesDefineScrollPos) {\n                                                _viewportElement[scroll](now); //https://github.com/jquery/jquery/issues/4340\n                                                refreshScrollbarHandleOffset(isHorizontal, now);\n                                            }\n                                        }\n                                    };\n                                    instantScrollPosition = isFinite(instantScrollPosition) ? instantScrollPosition : 0;\n                                    instantScrollPosition = _isRTL && isHorizontal && !_rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n\n                                    //_base.scrollStop();\n\n                                    if (instantScroll) {\n                                        _viewportElement[scroll](instantScrollPosition); //scroll instantly to new position\n                                        if (instantScrollTransition) {\n                                            //get the scroll position after instant scroll (in case CSS Snap Points are used) to get the correct snapped scroll position\n                                            //and the animation stops at the correct point\n                                            instantScrollPosition = _viewportElement[scroll]();\n                                            //scroll back to the position before instant scrolling so animation can be performed\n                                            _viewportElement[scroll](currScroll);\n\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.n ? -instantScrollPosition : instantScrollPosition;\n\n                                            scrollObj[xy] = instantScrollPosition;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: 130,\n                                                complete: scrollActionInstantFinished\n                                            }));\n                                        }\n                                        else\n                                            scrollActionInstantFinished();\n                                    }\n                                    else {\n                                        decreaseScroll = isFirstIteration ? decreaseScrollCondition : decreaseScroll;\n                                        finishedCondition = rtlIsNormal\n                                            ? (decreaseScroll ? handleOffset + handleLength >= mouseOffset : handleOffset <= mouseOffset)\n                                            : (decreaseScroll ? handleOffset <= mouseOffset : handleOffset + handleLength >= mouseOffset);\n\n                                        if (finishedCondition) {\n                                            clearTimeout(trackTimeout);\n                                            _base.scrollStop();\n                                            trackTimeout = undefined;\n                                            scrollActionFinsished(true);\n                                        }\n                                        else {\n                                            trackTimeout = setTimeout(scrollAction, timeoutDelay);\n\n                                            scrollObj[xy] = (decreaseScroll ? '-=' : '+=') + scrollDistance;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: scrollDuration\n                                            }));\n                                        }\n                                        isFirstIteration = false;\n                                    }\n                                }\n                            };\n                            if (ctrlKey)\n                                increaseTrackScrollAmount();\n\n                            mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                            mouseDownOffset = COMPATIBILITY.page(event)[xy];\n\n                            _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                            addClass(_bodyElement, _classNameDragging);\n                            addClass(scrollbarVars._track, strActive);\n                            addClass(scrollbarVars._scrollbar, strActive);\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                                [documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart]);\n\n                            scrollAction();\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    }\n                    function onTrackMouseTouchEnter(event) {\n                        //make sure both scrollbars will stay visible if one scrollbar is hovered if autoHide is \"scroll\" or \"move\".\n                        _scrollbarsHandleHovered = true;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(true);\n                    }\n                    function onTrackMouseTouchLeave(event) {\n                        _scrollbarsHandleHovered = false;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(false);\n                    }\n                    function onScrollbarMouseTouchDown(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n\n                    addDestroyEventListener(scrollbarVars._handle,\n                        _strMouseTouchDownEvent,\n                        onHandleMouseTouchDown);\n                    addDestroyEventListener(scrollbarVars._track,\n                        [_strMouseTouchDownEvent, _strMouseEnter, _strMouseLeave],\n                        [onTrackMouseTouchDown, onTrackMouseTouchEnter, onTrackMouseTouchLeave]);\n                    addDestroyEventListener(scrollbarVars._scrollbar,\n                        _strMouseTouchDownEvent,\n                        onScrollbarMouseTouchDown);\n\n                    if (_supportTransition) {\n                        addDestroyEventListener(scrollbarVars._scrollbar, _strTransitionEndEvent, function (event) {\n                            if (event.target !== scrollbarVars._scrollbar[0])\n                                return;\n                            refreshScrollbarHandleLength(isHorizontal);\n                            refreshScrollbarHandleOffset(isHorizontal);\n                        });\n                    }\n                }\n\n                /**\n                 * Shows or hides the given scrollbar and applied a class name which indicates if the scrollbar is scrollable or not.\n                 * @param isHorizontal True if the horizontal scrollbar is the target, false if the vertical scrollbar is the target.\n                 * @param shallBeVisible True if the scrollbar shall be shown, false if hidden.\n                 * @param canScroll True if the scrollbar is scrollable, false otherwise.\n                 */\n                function refreshScrollbarAppearance(isHorizontal, shallBeVisible, canScroll) {\n                    var scrollbarHiddenClassName = isHorizontal ? _classNameHostScrollbarHorizontalHidden : _classNameHostScrollbarVerticalHidden;\n                    var scrollbarElement = isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement;\n\n                    addRemoveClass(_hostElement, scrollbarHiddenClassName, !shallBeVisible);\n                    addRemoveClass(scrollbarElement, _classNameScrollbarUnusable, !canScroll);\n                }\n\n                /**\n                 * Autoshows / autohides both scrollbars with.\n                 * @param shallBeVisible True if the scrollbars shall be autoshown (only the case if they are hidden by a autohide), false if the shall be auto hidden.\n                 * @param delayfree True if the scrollbars shall be hidden without a delay, false or undefined otherwise.\n                 */\n                function refreshScrollbarsAutoHide(shallBeVisible, delayfree) {\n                    clearTimeout(_scrollbarsAutoHideTimeoutId);\n                    if (shallBeVisible) {\n                        //if(_hasOverflowCache.x && _hideOverflowCache.xs)\n                        removeClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                        //if(_hasOverflowCache.y && _hideOverflowCache.ys)\n                        removeClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                    }\n                    else {\n                        var anyActive;\n                        var strActive = 'active';\n                        var hide = function () {\n                            if (!_scrollbarsHandleHovered && !_destroyed) {\n                                anyActive = _scrollbarHorizontalHandleElement.hasClass(strActive) || _scrollbarVerticalHandleElement.hasClass(strActive);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                            }\n                        };\n                        if (_scrollbarsAutoHideDelay > 0 && delayfree !== true)\n                            _scrollbarsAutoHideTimeoutId = setTimeout(hide, _scrollbarsAutoHideDelay);\n                        else\n                            hide();\n                    }\n                }\n\n                /**\n                 * Refreshes the handle length of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 */\n                function refreshScrollbarHandleLength(isHorizontal) {\n                    var handleCSS = {};\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var digit = 1000000;\n                    //get and apply intended handle length\n                    var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);\n                    handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit\n\n                    if (!nativeOverlayScrollbarsAreActive())\n                        scrollbarVars._handle.css(handleCSS);\n\n                    //measure the handle length to respect min & max length\n                    scrollbarVarsInfo._handleLength = scrollbarVars._handle[0]['offset' + scrollbarVars._Width_Height];\n                    scrollbarVarsInfo._handleLengthRatio = handleRatio;\n                }\n\n                /**\n                 * Refreshes the handle offset of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 * @param scrollOrTransition The scroll position of the given scrollbar axis to which the handle shall be moved or a boolean which indicates whether a transition shall be applied. If undefined or boolean if the current scroll-offset is taken. (if isHorizontal ? scrollLeft : scrollTop)\n                 */\n                function refreshScrollbarHandleOffset(isHorizontal, scrollOrTransition) {\n                    var transition = type(scrollOrTransition) == TYPES.b;\n                    var transitionDuration = 250;\n                    var isRTLisHorizontal = _isRTL && isHorizontal;\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var strTranslateBrace = 'translate(';\n                    var strTransform = VENDORS._cssProperty('transform');\n                    var strTransition = VENDORS._cssProperty('transition');\n                    var nativeScroll = isHorizontal ? _viewportElement[_strScrollLeft]() : _viewportElement[_strScrollTop]();\n                    var currentScroll = scrollOrTransition === undefined || transition ? nativeScroll : scrollOrTransition;\n\n                    //measure the handle length to respect min & max length\n                    var handleLength = scrollbarVarsInfo._handleLength;\n                    var trackLength = scrollbarVars._track[0]['offset' + scrollbarVars._Width_Height];\n                    var handleTrackDiff = trackLength - handleLength;\n                    var handleCSS = {};\n                    var transformOffset;\n                    var translateValue;\n\n                    //DONT use the variable '_contentScrollSizeCache[scrollbarVars._w_h]' instead of '_viewportElement[0]['scroll' + scrollbarVars._Width_Height]'\n                    // because its a bit behind during the small delay when content size updates\n                    //(delay = mutationObserverContentLag, if its 0 then this var could be used)\n                    var maxScroll = (_viewportElementNative[_strScroll + scrollbarVars._Width_Height] - _viewportElementNative['client' + scrollbarVars._Width_Height]) * (_rtlScrollBehavior.n && isRTLisHorizontal ? -1 : 1); //* -1 if rtl scroll max is negative\n                    var getScrollRatio = function (base) {\n                        return isNaN(base / maxScroll) ? 0 : MATH.max(0, MATH.min(1, base / maxScroll));\n                    };\n                    var getHandleOffset = function (scrollRatio) {\n                        var offset = handleTrackDiff * scrollRatio;\n                        offset = isNaN(offset) ? 0 : offset;\n                        offset = (isRTLisHorizontal && !_rtlScrollBehavior.i) ? (trackLength - handleLength - offset) : offset;\n                        offset = MATH.max(0, offset);\n                        return offset;\n                    };\n                    var scrollRatio = getScrollRatio(nativeScroll);\n                    var unsnappedScrollRatio = getScrollRatio(currentScroll);\n                    var handleOffset = getHandleOffset(unsnappedScrollRatio);\n                    var snappedHandleOffset = getHandleOffset(scrollRatio);\n\n                    scrollbarVarsInfo._maxScroll = maxScroll;\n                    scrollbarVarsInfo._currentScroll = nativeScroll;\n                    scrollbarVarsInfo._currentScrollRatio = scrollRatio;\n\n                    if (_supportTransform) {\n                        transformOffset = isRTLisHorizontal ? -(trackLength - handleLength - handleOffset) : handleOffset; //in px\n                        //transformOffset = (transformOffset / trackLength * 100) * (trackLength / handleLength); //in %\n                        translateValue = isHorizontal ? strTranslateBrace + transformOffset + 'px, 0)' : strTranslateBrace + '0, ' + transformOffset + 'px)';\n\n                        handleCSS[strTransform] = translateValue;\n\n                        //apply or clear up transition\n                        if (_supportTransition)\n                            handleCSS[strTransition] = transition && MATH.abs(handleOffset - scrollbarVarsInfo._handleOffset) > 1 ? getCSSTransitionString(scrollbarVars._handle) + ', ' + (strTransform + _strSpace + transitionDuration + 'ms') : _strEmpty;\n                    }\n                    else\n                        handleCSS[scrollbarVars._left_top] = handleOffset;\n\n\n                    //only apply css if offset has changed and overflow exists.\n                    if (!nativeOverlayScrollbarsAreActive()) {\n                        scrollbarVars._handle.css(handleCSS);\n\n                        //clear up transition\n                        if (_supportTransform && _supportTransition && transition) {\n                            scrollbarVars._handle.one(_strTransitionEndEvent, function () {\n                                if (!_destroyed)\n                                    scrollbarVars._handle.css(strTransition, _strEmpty);\n                            });\n                        }\n                    }\n\n                    scrollbarVarsInfo._handleOffset = handleOffset;\n                    scrollbarVarsInfo._snappedHandleOffset = snappedHandleOffset;\n                    scrollbarVarsInfo._trackLength = trackLength;\n                }\n\n                /**\n                 * Refreshes the interactivity of the given scrollbar element.\n                 * @param isTrack True if the track element is the target, false if the handle element is the target.\n                 * @param value True for interactivity false for no interactivity.\n                 */\n                function refreshScrollbarsInteractive(isTrack, value) {\n                    var action = value ? 'removeClass' : 'addClass';\n                    var element1 = isTrack ? _scrollbarHorizontalTrackElement : _scrollbarHorizontalHandleElement;\n                    var element2 = isTrack ? _scrollbarVerticalTrackElement : _scrollbarVerticalHandleElement;\n                    var className = isTrack ? _classNameScrollbarTrackOff : _classNameScrollbarHandleOff;\n\n                    element1[action](className);\n                    element2[action](className);\n                }\n\n                /**\n                 * Returns a object which is used for fast access for specific variables.\n                 * @param isHorizontal True if the horizontal scrollbar vars shall be accessed, false if the vertical scrollbar vars shall be accessed.\n                 * @returns {{wh: string, WH: string, lt: string, _wh: string, _lt: string, t: *, h: *, c: {}, s: *}}\n                 */\n                function getScrollbarVars(isHorizontal) {\n                    return {\n                        _width_height: isHorizontal ? _strWidth : _strHeight,\n                        _Width_Height: isHorizontal ? 'Width' : 'Height',\n                        _left_top: isHorizontal ? _strLeft : _strTop,\n                        _Left_Top: isHorizontal ? 'Left' : 'Top',\n                        _x_y: isHorizontal ? _strX : _strY,\n                        _X_Y: isHorizontal ? 'X' : 'Y',\n                        _w_h: isHorizontal ? 'w' : 'h',\n                        _l_t: isHorizontal ? 'l' : 't',\n                        _track: isHorizontal ? _scrollbarHorizontalTrackElement : _scrollbarVerticalTrackElement,\n                        _handle: isHorizontal ? _scrollbarHorizontalHandleElement : _scrollbarVerticalHandleElement,\n                        _scrollbar: isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement,\n                        _info: isHorizontal ? _scrollHorizontalInfo : _scrollVerticalInfo\n                    };\n                }\n\n\n                //==== Scrollbar Corner ====//\n\n                /**\n                 * Builds or destroys the scrollbar corner DOM element.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarCornerDOM(destroy) {\n                    _scrollbarCornerElement = _scrollbarCornerElement || selectOrGenerateDivByClass(_classNameScrollbarCorner, true);\n\n                    if (!destroy) {\n                        if (!_domExists) {\n                            _hostElement.append(_scrollbarCornerElement);\n                        }\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            removeClass(_scrollbarCornerElement.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                        }\n                        else {\n                            remove(_scrollbarCornerElement);\n                        }\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar corner interactivity events.\n                 */\n                function setupScrollbarCornerEvents() {\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var mouseDownPosition = {};\n                    var mouseDownSize = {};\n                    var mouseDownInvertedScale = {};\n                    var reconnectMutationObserver;\n\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var pageOffset = getCoordinates(event);\n                            var hostElementCSS = {};\n                            if (_resizeHorizontal || _resizeBoth)\n                                hostElementCSS[_strWidth] = (mouseDownSize.w + (pageOffset.x - mouseDownPosition.x) * mouseDownInvertedScale.x);\n                            if (_resizeVertical || _resizeBoth)\n                                hostElementCSS[_strHeight] = (mouseDownSize.h + (pageOffset.y - mouseDownPosition.y) * mouseDownInvertedScale.y);\n                            _hostElement.css(hostElementCSS);\n                            COMPATIBILITY.stpP(event);\n                        }\n                        else {\n                            documentMouseTouchUp(event);\n                        }\n                    }\n                    function documentMouseTouchUp(event) {\n                        var eventIsTrusted = event !== undefined;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                            [documentOnSelectStart, documentDragMove, documentMouseTouchUp],\n                            true);\n\n                        removeClass(_bodyElement, _classNameDragging);\n                        if (_scrollbarCornerElement.releaseCapture)\n                            _scrollbarCornerElement.releaseCapture();\n\n                        if (eventIsTrusted) {\n                            if (reconnectMutationObserver)\n                                connectMutationObservers();\n                            _base.update(_strAuto);\n                        }\n                        reconnectMutationObserver = false;\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function getCoordinates(event) {\n                        return _msieVersion && insideIFrame ? { x: event.screenX, y: event.screenY } : COMPATIBILITY.page(event);\n                    }\n\n                    addDestroyEventListener(_scrollbarCornerElement, _strMouseTouchDownEvent, function (event) {\n                        if (onMouseTouchDownContinue(event) && !_resizeNone) {\n                            if (_mutationObserversConnected) {\n                                reconnectMutationObserver = true;\n                                disconnectMutationObservers();\n                            }\n\n                            mouseDownPosition = getCoordinates(event);\n\n                            mouseDownSize.w = _hostElementNative[LEXICON.oW] - (!_isBorderBox ? _paddingX : 0);\n                            mouseDownSize.h = _hostElementNative[LEXICON.oH] - (!_isBorderBox ? _paddingY : 0);\n                            mouseDownInvertedScale = getHostElementInvertedScale();\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                                [documentOnSelectStart, documentDragMove, documentMouseTouchUp]);\n\n                            addClass(_bodyElement, _classNameDragging);\n                            if (_scrollbarCornerElement.setCapture)\n                                _scrollbarCornerElement.setCapture();\n\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    });\n                }\n\n\n                //==== Utils ====//\n\n                /**\n                 * Calls the callback with the given name. The Context of this callback is always _base (this).\n                 * @param name The name of the target which shall be called.\n                 * @param args The args with which the callback shall be called.\n                 * @param dependent Boolean which decides whether the callback shall be fired, undefined is like a \"true\" value.\n                 */\n                function dispatchCallback(name, args, dependent) {\n                    if (dependent === false)\n                        return;\n                    if (_initialized) {\n                        var callback = _currentPreparedOptions.callbacks[name];\n                        var extensionOnName = name;\n                        var ext;\n\n                        if (extensionOnName.substr(0, 2) === 'on')\n                            extensionOnName = extensionOnName.substr(2, 1).toLowerCase() + extensionOnName.substr(3);\n\n                        if (type(callback) == TYPES.f)\n                            callback.call(_base, args);\n\n                        each(_extensions, function () {\n                            ext = this;\n                            if (type(ext.on) == TYPES.f)\n                                ext.on(extensionOnName, args);\n                        });\n                    }\n                    else if (!_destroyed)\n                        _callbacksInitQeueue.push({ n: name, a: args });\n                }\n\n                /**\n                 * Sets the \"top, right, bottom, left\" properties, with a given prefix, of the given css object.\n                 * @param targetCSSObject The css object to which the values shall be applied.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param values A array of values which shall be applied to the \"top, right, bottom, left\" -properties. The array order is [top, right, bottom, left].\n                 * If this argument is undefined the value '' (empty string) will be applied to all properties.\n                 */\n                function setTopRightBottomLeft(targetCSSObject, prefix, values) {\n                    prefix = prefix || _strEmpty;\n                    values = values || [_strEmpty, _strEmpty, _strEmpty, _strEmpty];\n\n                    targetCSSObject[prefix + _strTop] = values[0];\n                    targetCSSObject[prefix + _strRight] = values[1];\n                    targetCSSObject[prefix + _strBottom] = values[2];\n                    targetCSSObject[prefix + _strLeft] = values[3];\n                }\n\n                /**\n                 * Gets the \"top, right, bottom, left\" CSS properties of the CSS property with the given prefix from the host element.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param suffix The suffix of the \"top, right, bottom, left\" css properties. (example: 'border-' is a valid prefix with '-width' is a valid suffix)\n                 * @param zeroX True if the x axis shall be 0.\n                 * @param zeroY True if the y axis shall be 0.\n                 * @returns {{}} The object which contains the numbers of the read CSS properties.\n                 */\n                function getTopRightBottomLeftHost(prefix, suffix, zeroX, zeroY) {\n                    suffix = suffix || _strEmpty;\n                    prefix = prefix || _strEmpty;\n                    return {\n                        t: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strTop + suffix)),\n                        r: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strRight + suffix)),\n                        b: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strBottom + suffix)),\n                        l: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strLeft + suffix))\n                    };\n                }\n\n                /**\n                 * Returns the computed CSS transition string from the given element.\n                 * @param element The element from which the transition string shall be returned.\n                 * @returns {string} The CSS transition string from the given element.\n                 */\n                function getCSSTransitionString(element) {\n                    var transitionStr = VENDORS._cssProperty('transition');\n                    var assembledValue = element.css(transitionStr);\n                    if (assembledValue)\n                        return assembledValue;\n                    var regExpString = '\\\\s*(' + '([^,(]+(\\\\(.+?\\\\))?)+' + ')[\\\\s,]*';\n                    var regExpMain = new RegExp(regExpString);\n                    var regExpValidate = new RegExp('^(' + regExpString + ')+$');\n                    var properties = 'property duration timing-function delay'.split(' ');\n                    var result = [];\n                    var strResult;\n                    var valueArray;\n                    var i = 0;\n                    var j;\n                    var splitCssStyleByComma = function (str) {\n                        strResult = [];\n                        if (!str.match(regExpValidate))\n                            return str;\n                        while (str.match(regExpMain)) {\n                            strResult.push(RegExp.$1);\n                            str = str.replace(regExpMain, _strEmpty);\n                        }\n\n                        return strResult;\n                    };\n                    for (; i < properties[LEXICON.l]; i++) {\n                        valueArray = splitCssStyleByComma(element.css(transitionStr + '-' + properties[i]));\n                        for (j = 0; j < valueArray[LEXICON.l]; j++)\n                            result[j] = (result[j] ? result[j] + _strSpace : _strEmpty) + valueArray[j];\n                    }\n                    return result.join(', ');\n                }\n\n                /**\n                 * Generates a Regular Expression which matches with a string which starts with 'os-host'.\n                 * @param {boolean} withCurrClassNameOption The Regular Expression also matches if the string is the current ClassName option (multiple values splitted by space possible).\n                 * @param {boolean} withOldClassNameOption The Regular Expression also matches if the string is the old ClassName option (multiple values splitted by space possible).\n                 */\n                function createHostClassNameRegExp(withCurrClassNameOption, withOldClassNameOption) {\n                    var i;\n                    var split;\n                    var appendix;\n                    var appendClasses = function (classes, condition) {\n                        appendix = '';\n                        if (condition && typeof classes == TYPES.s) {\n                            split = classes.split(_strSpace);\n                            for (i = 0; i < split[LEXICON.l]; i++)\n                                appendix += '|' + split[i] + '$';\n                            // split[i].replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') for escaping regex characters\n                        }\n                        return appendix;\n                    };\n\n                    return new RegExp(\n                        '(^' + _classNameHostElement + '([-_].+|)$)' +\n                        appendClasses(_classNameCache, withCurrClassNameOption) +\n                        appendClasses(_oldClassName, withOldClassNameOption), 'g');\n                }\n\n                /**\n                 * Calculates the host-elements inverted scale. (invertedScale = 1 / scale)\n                 * @returns {{x: number, y: number}} The scale of the host-element.\n                 */\n                function getHostElementInvertedScale() {\n                    var rect = _paddingElementNative[LEXICON.bCR]();\n                    return {\n                        x: _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,\n                        y: _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1\n                    };\n                }\n\n                /**\n                 * Checks whether the given object is a HTMLElement.\n                 * @param o The object which shall be checked.\n                 * @returns {boolean} True the given object is a HTMLElement, false otherwise.\n                 */\n                function isHTMLElement(o) {\n                    var strOwnerDocument = 'ownerDocument';\n                    var strHTMLElement = 'HTMLElement';\n                    var wnd = o && o[strOwnerDocument] ? (o[strOwnerDocument].parentWindow || window) : window;\n                    return (\n                        typeof wnd[strHTMLElement] == TYPES.o ? o instanceof wnd[strHTMLElement] : //DOM2\n                            o && typeof o == TYPES.o && o !== null && o.nodeType === 1 && typeof o.nodeName == TYPES.s\n                    );\n                }\n\n                /**\n                 * Compares 2 arrays and returns the differences between them as a array.\n                 * @param a1 The first array which shall be compared.\n                 * @param a2 The second array which shall be compared.\n                 * @returns {Array} The differences between the two arrays.\n                 */\n                function getArrayDifferences(a1, a2) {\n                    var a = [];\n                    var diff = [];\n                    var i;\n                    var k;\n                    for (i = 0; i < a1.length; i++)\n                        a[a1[i]] = true;\n                    for (i = 0; i < a2.length; i++) {\n                        if (a[a2[i]])\n                            delete a[a2[i]];\n                        else\n                            a[a2[i]] = true;\n                    }\n                    for (k in a)\n                        diff.push(k);\n                    return diff;\n                }\n\n                /**\n                 * Returns Zero or the number to which the value can be parsed.\n                 * @param value The value which shall be parsed.\n                 * @param toFloat Indicates whether the number shall be parsed to a float.\n                 */\n                function parseToZeroOrNumber(value, toFloat) {\n                    var num = toFloat ? parseFloat(value) : parseInt(value, 10);\n                    return isNaN(num) ? 0 : num;\n                }\n\n                /**\n                 * Gets several information of the textarea and returns them as a object or undefined if the browser doesn't support it.\n                 * @returns {{cursorRow: Number, cursorCol, rows: Number, cols: number, wRow: number, pos: number, max : number}} or undefined if not supported.\n                 */\n                function getTextareaInfo() {\n                    //read needed values\n                    var textareaCursorPosition = _targetElementNative.selectionStart;\n                    if (textareaCursorPosition === undefined)\n                        return;\n\n                    var textareaValue = _targetElement.val();\n                    var textareaLength = textareaValue[LEXICON.l];\n                    var textareaRowSplit = textareaValue.split('\\n');\n                    var textareaLastRow = textareaRowSplit[LEXICON.l];\n                    var textareaCurrentCursorRowSplit = textareaValue.substr(0, textareaCursorPosition).split('\\n');\n                    var widestRow = 0;\n                    var textareaLastCol = 0;\n                    var cursorRow = textareaCurrentCursorRowSplit[LEXICON.l];\n                    var cursorCol = textareaCurrentCursorRowSplit[textareaCurrentCursorRowSplit[LEXICON.l] - 1][LEXICON.l];\n                    var rowCols;\n                    var i;\n\n                    //get widest Row and the last column of the textarea\n                    for (i = 0; i < textareaRowSplit[LEXICON.l]; i++) {\n                        rowCols = textareaRowSplit[i][LEXICON.l];\n                        if (rowCols > textareaLastCol) {\n                            widestRow = i + 1;\n                            textareaLastCol = rowCols;\n                        }\n                    }\n\n                    return {\n                        _cursorRow: cursorRow, //cursorRow\n                        _cursorColumn: cursorCol, //cursorCol\n                        _rows: textareaLastRow, //rows\n                        _columns: textareaLastCol, //cols\n                        _widestRow: widestRow, //wRow\n                        _cursorPosition: textareaCursorPosition, //pos\n                        _cursorMax: textareaLength //max\n                    };\n                }\n\n                /**\n                 * Determines whether native overlay scrollbars are active.\n                 * @returns {boolean} True if native overlay scrollbars are active, false otherwise.\n                 */\n                function nativeOverlayScrollbarsAreActive() {\n                    return (_ignoreOverlayScrollbarHidingCache && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y));\n                }\n\n                /**\n                 * Gets the element which is used to measure the content size.\n                 * @returns {*} TextareaCover if target element is textarea else the ContentElement.\n                 */\n                function getContentMeasureElement() {\n                    return _isTextarea ? _textareaCoverElement[0] : _contentElementNative;\n                }\n\n                /**\n                 * Generates a string which represents a HTML div with the given classes or attributes.\n                 * @param classesOrAttrs The class of the div as string or a object which represents the attributes of the div. (The class attribute can also be written as \"className\".)\n                 * @param content The content of the div as string.\n                 * @returns {string} The concated string which represents a HTML div and its content.\n                 */\n                function generateDiv(classesOrAttrs, content) {\n                    return '<div ' + (classesOrAttrs ? type(classesOrAttrs) == TYPES.s ?\n                        'class=\"' + classesOrAttrs + '\"' :\n                        (function () {\n                            var key;\n                            var attrs = _strEmpty;\n                            if (FRAMEWORK.isPlainObject(classesOrAttrs)) {\n                                for (key in classesOrAttrs)\n                                    attrs += (key === 'c' ? 'class' : key) + '=\"' + classesOrAttrs[key] + '\" ';\n                            }\n                            return attrs;\n                        })() :\n                        _strEmpty) +\n                        '>' +\n                        (content || _strEmpty) +\n                        '</div>';\n                }\n\n                /**\n                 * Selects or generates a div with the given class attribute.\n                 * @param className The class names (divided by spaces) of the div which shall be selected or generated.\n                 * @param selectParentOrOnlyChildren The parent element from which of the element shall be selected. (if undefined or boolean its hostElement)\n                 * If its a boolean it decides whether only the children of the host element shall be selected.\n                 * @returns {*} The generated or selected element.\n                 */\n                function selectOrGenerateDivByClass(className, selectParentOrOnlyChildren) {\n                    var onlyChildren = type(selectParentOrOnlyChildren) == TYPES.b;\n                    var selectParent = onlyChildren ? _hostElement : (selectParentOrOnlyChildren || _hostElement);\n\n                    return (_domExists && !selectParent[LEXICON.l])\n                        ? null\n                        : _domExists\n                            ? selectParent[onlyChildren ? 'children' : 'find'](_strDot + className.replace(/\\s/g, _strDot)).eq(0)\n                            : FRAMEWORK(generateDiv(className))\n                }\n\n                /**\n                 * Gets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be got.\n                 * @param path The property of which the value shall be got.\n                 * @returns {*} Returns the value of the searched property or undefined of the property wasn't found.\n                 */\n                function getObjectPropVal(obj, path) {\n                    var splits = path.split(_strDot);\n                    var i = 0;\n                    var val;\n                    for (; i < splits.length; i++) {\n                        if (!obj[LEXICON.hOP](splits[i]))\n                            return;\n                        val = obj[splits[i]];\n                        if (i < splits.length && type(val) == TYPES.o)\n                            obj = val;\n                    }\n                    return val;\n                }\n\n                /**\n                 * Sets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be set.\n                 * @param path The property of which the value shall be set.\n                 * @param val The value of the property which shall be set.\n                 */\n                function setObjectPropVal(obj, path, val) {\n                    var splits = path.split(_strDot);\n                    var splitsLength = splits.length;\n                    var i = 0;\n                    var extendObj = {};\n                    var extendObjRoot = extendObj;\n                    for (; i < splitsLength; i++)\n                        extendObj = extendObj[splits[i]] = i + 1 < splitsLength ? {} : val;\n                    FRAMEWORK.extend(obj, extendObjRoot, true);\n                }\n\n                /**\t\n                 * Runs a action for each selector inside the updateOnLoad option.\t\n                 * @param {Function} action The action for each updateOnLoad selector, the arguments the function takes is the index and the value (the selector).\t\n                 */\n                function eachUpdateOnLoad(action) {\n                    var updateOnLoad = _currentPreparedOptions.updateOnLoad;\n                    updateOnLoad = type(updateOnLoad) == TYPES.s ? updateOnLoad.split(_strSpace) : updateOnLoad;\n\n                    if (COMPATIBILITY.isA(updateOnLoad) && !_destroyed) {\n                        each(updateOnLoad, action);\n                    }\n                }\n\n\n                //==== Utils Cache ====//\n\n                /**\n                 * Compares two values or objects and returns true if they aren't equal.\n                 * @param current The first value or object which shall be compared.\n                 * @param cache The second value or object which shall be compared.\n                 * @param force If true the returned value is always true.\n                 * @returns {boolean} True if both values or objects aren't equal or force is true, false otherwise.\n                 */\n                function checkCache(current, cache, force) {\n                    if (force)\n                        return force;\n                    if (type(current) == TYPES.o && type(cache) == TYPES.o) {\n                        for (var prop in current) {\n                            if (prop !== 'c') {\n                                if (current[LEXICON.hOP](prop) && cache[LEXICON.hOP](prop)) {\n                                    if (checkCache(current[prop], cache[prop]))\n                                        return true;\n                                }\n                                else {\n                                    return true;\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        return current !== cache;\n                    }\n                    return false;\n                }\n\n\n                //==== Shortcuts ====//\n\n                /**\n                 * jQuery extend method shortcut with a appended \"true\" as first argument.\n                 */\n                function extendDeep() {\n                    return FRAMEWORK.extend.apply(this, [true].concat([].slice.call(arguments)));\n                }\n\n                /**\n                 * jQuery addClass method shortcut.\n                 */\n                function addClass(el, classes) {\n                    return _frameworkProto.addClass.call(el, classes);\n                }\n\n                /**\n                 * jQuery removeClass method shortcut.\n                 */\n                function removeClass(el, classes) {\n                    return _frameworkProto.removeClass.call(el, classes);\n                }\n\n                /**\n                 * Adds or removes the given classes dependent on the boolean value. True for add, false for remove.\n                 */\n                function addRemoveClass(el, classes, doAdd) {\n                    return doAdd ? addClass(el, classes) : removeClass(el, classes);\n                }\n\n                /**\n                 * jQuery remove method shortcut.\n                 */\n                function remove(el) {\n                    return _frameworkProto.remove.call(el);\n                }\n\n                /**\n                 * Finds the first child element with the given selector of the given element.\n                 * @param el The root element from which the selector shall be valid.\n                 * @param selector The selector of the searched element.\n                 * @returns {*} The first element which is a child of the given element and matches the givens selector.\n                 */\n                function findFirst(el, selector) {\n                    return _frameworkProto.find.call(el, selector).eq(0);\n                }\n\n\n                //==== API ====//\n\n                /**\n                 * Puts the instance to sleep. It wont respond to any changes in the DOM and won't update. Scrollbar Interactivity is also disabled as well as the resize handle.\n                 * This behavior can be reset by calling the update method.\n                 */\n                _base.sleep = function () {\n                    _sleeping = true;\n                };\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param force True if every property shall be updated and the cache shall be ignored.\n                 * !INTERNAL USAGE! : force can be a string \"auto\", \"sync\" or \"zoom\" too\n                 * if \"auto\" then before a real update the content size and host element attributes gets checked, and if they changed only then the update method will be called.\n                 * if \"sync\" then the async update process (MutationObserver or UpdateLoop) gets synchronized and a corresponding update takes place if one was needed due to pending changes.\n                 * if \"zoom\" then a update takes place where it's assumed that content and host size changed\n                 * @returns {boolean|undefined} \n                 * If force is \"sync\" then a boolean is returned which indicates whether a update was needed due to pending changes.\n                 * If force is \"auto\" then a boolean is returned whether a update was needed due to attribute or size changes.\n                 * undefined otherwise.\n                 */\n                _base.update = function (force) {\n                    if (_destroyed)\n                        return;\n\n                    var attrsChanged;\n                    var contentSizeC;\n                    var isString = type(force) == TYPES.s;\n                    var doUpdateAuto;\n                    var mutHost;\n                    var mutContent;\n\n                    if (isString) {\n                        if (force === _strAuto) {\n                            attrsChanged = meaningfulAttrsChanged();\n                            contentSizeC = updateAutoContentSizeChanged();\n                            doUpdateAuto = attrsChanged || contentSizeC;\n                            if (doUpdateAuto) {\n                                update({\n                                    _contentSizeChanged: contentSizeC,\n                                    _changedOptions: _initialized ? undefined : _currentPreparedOptions\n                                });\n                            }\n                        }\n                        else if (force === _strSync) {\n                            if (_mutationObserversConnected) {\n                                mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());\n                                mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());\n                            }\n                            else {\n                                mutHost = _base.update(_strAuto);\n                            }\n                        }\n                        else if (force === 'zoom') {\n                            update({\n                                _hostSizeChanged: true,\n                                _contentSizeChanged: true\n                            });\n                        }\n                    }\n                    else {\n                        force = _sleeping || force;\n                        _sleeping = false;\n                        if (!_base.update(_strSync) || force)\n                            update({ _force: force });\n                    }\n\n                    updateElementsOnLoad();\n\n                    return doUpdateAuto || mutHost || mutContent;\n                };\n\n                /**\n                 Gets or sets the current options. The update method will be called automatically if new options were set.\n                 * @param newOptions If new options are given, then the new options will be set, if new options aren't given (undefined or a not a plain object) then the current options will be returned.\n                 * @param value If new options is a property path string, then this value will be used to set the option to which the property path string leads.\n                 * @returns {*}\n                 */\n                _base.options = function (newOptions, value) {\n                    var option = {};\n                    var changedOps;\n\n                    //return current options if newOptions are undefined or empty\n                    if (FRAMEWORK.isEmptyObject(newOptions) || !FRAMEWORK.isPlainObject(newOptions)) {\n                        if (type(newOptions) == TYPES.s) {\n                            if (arguments.length > 1) {\n                                setObjectPropVal(option, newOptions, value);\n                                changedOps = setOptions(option);\n                            }\n                            else\n                                return getObjectPropVal(_currentOptions, newOptions);\n                        }\n                        else\n                            return _currentOptions;\n                    }\n                    else {\n                        changedOps = setOptions(newOptions);\n                    }\n\n                    if (!FRAMEWORK.isEmptyObject(changedOps)) {\n                        update({ _changedOptions: changedOps });\n                    }\n                };\n\n                /**\n                 * Restore the DOM, disconnects all observers, remove all resize observers and put the instance to sleep.\n                 */\n                _base.destroy = function () {\n                    if (_destroyed)\n                        return;\n\n                    //remove this instance from auto update loop\n                    autoUpdateLoop.remove(_base);\n\n                    //disconnect all mutation observers\n                    disconnectMutationObservers();\n\n                    //remove all resize observers\n                    setupResizeObserver(_sizeObserverElement);\n                    setupResizeObserver(_sizeAutoObserverElement);\n\n                    //remove all extensions\n                    for (var extName in _extensions)\n                        _base.removeExt(extName);\n\n                    //remove all 'destroy' events\n                    while (_destroyEvents[LEXICON.l] > 0)\n                        _destroyEvents.pop()();\n\n                    //remove all events from host element\n                    setupHostMouseTouchEvents(true);\n\n                    //remove all helper / detection elements\n                    if (_contentGlueElement)\n                        remove(_contentGlueElement);\n                    if (_contentArrangeElement)\n                        remove(_contentArrangeElement);\n                    if (_sizeAutoObserverAdded)\n                        remove(_sizeAutoObserverElement);\n\n                    //remove all generated DOM\n                    setupScrollbarsDOM(true);\n                    setupScrollbarCornerDOM(true);\n                    setupStructureDOM(true);\n\n                    //remove all generated image load events\n                    for (var i = 0; i < _updateOnLoadElms[LEXICON.l]; i++)\n                        FRAMEWORK(_updateOnLoadElms[i]).off(_updateOnLoadEventName, updateOnLoadCallback);\n                    _updateOnLoadElms = undefined;\n\n                    _destroyed = true;\n                    _sleeping = true;\n\n                    //remove this instance from the instances list\n                    INSTANCES(pluginTargetElement, 0);\n                    dispatchCallback('onDestroyed');\n\n                    //remove all properties and methods\n                    //for (var property in _base)\n                    //    delete _base[property];\n                    //_base = undefined;\n                };\n\n                /**\n                 * Scrolls to a given position or element.\n                 * @param coordinates\n                 * 1. Can be \"coordinates\" which looks like:\n                 *    { x : ?, y : ? } OR          Object with x and y properties\n                 *    { left : ?, top : ? } OR     Object with left and top properties\n                 *    { l : ?, t : ? } OR          Object with l and t properties\n                 *    [ ?, ? ] OR                  Array where the first two element are the coordinates (first is x, second is y)\n                 *    ?                            A single value which stays for both axis\n                 *    A value can be a number, a string or a calculation.\n                 *\n                 *    Operators:\n                 *    [NONE]  The current scroll will be overwritten by the value.\n                 *    '+='    The value will be added to the current scroll offset\n                 *    '-='    The value will be subtracted from the current scroll offset\n                 *    '*='    The current scroll wil be multiplicated by the value.\n                 *    '/='    The current scroll wil be divided by the value.\n                 *\n                 *    Units:\n                 *    [NONE]  The value is the final scroll amount.                   final = (value * 1)\n                 *    'px'    Same as none\n                 *    '%'     The value is dependent on the current scroll value.     final = ((currentScrollValue / 100) * value)\n                 *    'vw'    The value is multiplicated by the viewport width.       final = (value * viewportWidth)\n                 *    'vh'    The value is multiplicated by the viewport height.      final = (value * viewportHeight)\n                 *\n                 *    example final values:\n                 *    200, '200px', '50%', '1vw', '1vh', '+=200', '/=1vw', '*=2px', '-=5vh', '+=33%', '+= 50% - 2px', '-= 1vw - 50%'\n                 *\n                 * 2. Can be a HTML or jQuery element:\n                 *    The final scroll offset is the offset (without margin) of the given HTML / jQuery element.\n                 *\n                 * 3. Can be a object with a HTML or jQuery element with additional settings:\n                 *    {\n                 *      el : [HTMLElement, jQuery element],             MUST be specified, else this object isn't valid.\n                 *      scroll : [string, array, object],               Default value is 'always'.\n                 *      block : [string, array, object],                Default value is 'begin'.\n                 *      margin : [number, boolean, array, object]       Default value is false.\n                 *    }\n                 *\n                 *    Possible scroll settings are:\n                 *    'always'      Scrolls always.\n                 *    'ifneeded'    Scrolls only if the element isnt fully in view.\n                 *    'never'       Scrolls never.\n                 *\n                 *    Possible block settings are:\n                 *    'begin'   Both axis shall be docked to the \"begin\" edge. - The element will be docked to the top and left edge of the viewport.\n                 *    'end'     Both axis shall be docked to the \"end\" edge. - The element will be docked to the bottom and right edge of the viewport. (If direction is RTL to the bottom and left edge.)\n                 *    'center'  Both axis shall be docked to \"center\". - The element will be centered in the viewport.\n                 *    'nearest' The element will be docked to the nearest edge(s).\n                 *\n                 *    Possible margin settings are: -- The actual margin of the element wont be affect, this option affects only the final scroll offset.\n                 *    [BOOLEAN]                                         If true the css margin of the element will be used, if false no margin will be used.\n                 *    [NUMBER]                                          The margin will be used for all edges.\n                 *\n                 * @param duration The duration of the scroll animation, OR a jQuery animation configuration object.\n                 * @param easing The animation easing.\n                 * @param complete The animation complete callback.\n                 * @returns {{\n                 *   position: {x: number, y: number},\n                 *   ratio: {x: number, y: number},\n                 *   max: {x: number, y: number},\n                 *   handleOffset: {x: number, y: number},\n                 *   handleLength: {x: number, y: number},\n                 *   handleLengthRatio: {x: number, y: number}, t\n                 *   rackLength: {x: number, y: number},\n                 *   isRTL: boolean,\n                 *   isRTLNormalized: boolean\n                 *  }}\n                 */\n                _base.scroll = function (coordinates, duration, easing, complete) {\n                    if (arguments.length === 0 || coordinates === undefined) {\n                        var infoX = _scrollHorizontalInfo;\n                        var infoY = _scrollVerticalInfo;\n                        var normalizeInvert = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.i;\n                        var normalizeNegate = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.n;\n                        var scrollX = infoX._currentScroll;\n                        var scrollXRatio = infoX._currentScrollRatio;\n                        var maxScrollX = infoX._maxScroll;\n                        scrollXRatio = normalizeInvert ? 1 - scrollXRatio : scrollXRatio;\n                        scrollX = normalizeInvert ? maxScrollX - scrollX : scrollX;\n                        scrollX *= normalizeNegate ? -1 : 1;\n                        maxScrollX *= normalizeNegate ? -1 : 1;\n\n                        return {\n                            position: {\n                                x: scrollX,\n                                y: infoY._currentScroll\n                            },\n                            ratio: {\n                                x: scrollXRatio,\n                                y: infoY._currentScrollRatio\n                            },\n                            max: {\n                                x: maxScrollX,\n                                y: infoY._maxScroll\n                            },\n                            handleOffset: {\n                                x: infoX._handleOffset,\n                                y: infoY._handleOffset\n                            },\n                            handleLength: {\n                                x: infoX._handleLength,\n                                y: infoY._handleLength\n                            },\n                            handleLengthRatio: {\n                                x: infoX._handleLengthRatio,\n                                y: infoY._handleLengthRatio\n                            },\n                            trackLength: {\n                                x: infoX._trackLength,\n                                y: infoY._trackLength\n                            },\n                            snappedHandleOffset: {\n                                x: infoX._snappedHandleOffset,\n                                y: infoY._snappedHandleOffset\n                            },\n                            isRTL: _isRTL,\n                            isRTLNormalized: _normalizeRTLCache\n                        };\n                    }\n\n                    _base.update(_strSync);\n\n                    var normalizeRTL = _normalizeRTLCache;\n                    var coordinatesXAxisProps = [_strX, _strLeft, 'l'];\n                    var coordinatesYAxisProps = [_strY, _strTop, 't'];\n                    var coordinatesOperators = ['+=', '-=', '*=', '/='];\n                    var durationIsObject = type(duration) == TYPES.o;\n                    var completeCallback = durationIsObject ? duration.complete : complete;\n                    var i;\n                    var finalScroll = {};\n                    var specialEasing = {};\n                    var doScrollLeft;\n                    var doScrollTop;\n                    var animationOptions;\n                    var strEnd = 'end';\n                    var strBegin = 'begin';\n                    var strCenter = 'center';\n                    var strNearest = 'nearest';\n                    var strAlways = 'always';\n                    var strNever = 'never';\n                    var strIfNeeded = 'ifneeded';\n                    var strLength = LEXICON.l;\n                    var settingsAxis;\n                    var settingsScroll;\n                    var settingsBlock;\n                    var settingsMargin;\n                    var finalElement;\n                    var elementObjSettingsAxisValues = [_strX, _strY, 'xy', 'yx'];\n                    var elementObjSettingsBlockValues = [strBegin, strEnd, strCenter, strNearest];\n                    var elementObjSettingsScrollValues = [strAlways, strNever, strIfNeeded];\n                    var coordinatesIsElementObj = coordinates[LEXICON.hOP]('el');\n                    var possibleElement = coordinatesIsElementObj ? coordinates.el : coordinates;\n                    var possibleElementIsJQuery = possibleElement instanceof FRAMEWORK || JQUERY ? possibleElement instanceof JQUERY : false;\n                    var possibleElementIsHTMLElement = possibleElementIsJQuery ? false : isHTMLElement(possibleElement);\n                    var updateScrollbarInfos = function () {\n                        if (doScrollLeft)\n                            refreshScrollbarHandleOffset(true);\n                        if (doScrollTop)\n                            refreshScrollbarHandleOffset(false);\n                    };\n                    var proxyCompleteCallback = type(completeCallback) != TYPES.f ? undefined : function () {\n                        updateScrollbarInfos();\n                        completeCallback();\n                    };\n                    function checkSettingsStringValue(currValue, allowedValues) {\n                        for (i = 0; i < allowedValues[strLength]; i++) {\n                            if (currValue === allowedValues[i])\n                                return true;\n                        }\n                        return false;\n                    }\n                    function getRawScroll(isX, coordinates) {\n                        var coordinateProps = isX ? coordinatesXAxisProps : coordinatesYAxisProps;\n                        coordinates = type(coordinates) == TYPES.s || type(coordinates) == TYPES.n ? [coordinates, coordinates] : coordinates;\n\n                        if (COMPATIBILITY.isA(coordinates))\n                            return isX ? coordinates[0] : coordinates[1];\n                        else if (type(coordinates) == TYPES.o) {\n                            //decides RTL normalization \"hack\" with .n\n                            //normalizeRTL = type(coordinates.n) == TYPES.b ? coordinates.n : normalizeRTL; \n                            for (i = 0; i < coordinateProps[strLength]; i++)\n                                if (coordinateProps[i] in coordinates)\n                                    return coordinates[coordinateProps[i]];\n                        }\n                    }\n                    function getFinalScroll(isX, rawScroll) {\n                        var isString = type(rawScroll) == TYPES.s;\n                        var operator;\n                        var amount;\n                        var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;\n                        var currScroll = scrollInfo._currentScroll;\n                        var maxScroll = scrollInfo._maxScroll;\n                        var mult = ' * ';\n                        var finalValue;\n                        var isRTLisX = _isRTL && isX;\n                        var normalizeShortcuts = isRTLisX && _rtlScrollBehavior.n && !normalizeRTL;\n                        var strReplace = 'replace';\n                        var evalFunc = eval;\n                        var possibleOperator;\n                        if (isString) {\n                            //check operator\n                            if (rawScroll[strLength] > 2) {\n                                possibleOperator = rawScroll.substr(0, 2);\n                                if (inArray(possibleOperator, coordinatesOperators) > -1)\n                                    operator = possibleOperator;\n                            }\n\n                            //calculate units and shortcuts\n                            rawScroll = operator ? rawScroll.substr(2) : rawScroll;\n                            rawScroll = rawScroll\n                            [strReplace](/min/g, 0) //'min' = 0%\n                            [strReplace](/</g, 0)   //'<'   = 0%\n                            [strReplace](/max/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)    //'max' = 100%\n                            [strReplace](/>/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)      //'>'   = 100%\n                            [strReplace](/px/g, _strEmpty)\n                            [strReplace](/%/g, mult + (maxScroll * (isRTLisX && _rtlScrollBehavior.n ? -1 : 1) / 100.0))\n                            [strReplace](/vw/g, mult + _viewportSize.w)\n                            [strReplace](/vh/g, mult + _viewportSize.h);\n                            amount = parseToZeroOrNumber(isNaN(rawScroll) ? parseToZeroOrNumber(evalFunc(rawScroll), true).toFixed() : rawScroll);\n                        }\n                        else {\n                            amount = rawScroll;\n                        }\n\n                        if (amount !== undefined && !isNaN(amount) && type(amount) == TYPES.n) {\n                            var normalizeIsRTLisX = normalizeRTL && isRTLisX;\n                            var operatorCurrScroll = currScroll * (normalizeIsRTLisX && _rtlScrollBehavior.n ? -1 : 1);\n                            var invert = normalizeIsRTLisX && _rtlScrollBehavior.i;\n                            var negate = normalizeIsRTLisX && _rtlScrollBehavior.n;\n                            operatorCurrScroll = invert ? (maxScroll - operatorCurrScroll) : operatorCurrScroll;\n                            switch (operator) {\n                                case '+=':\n                                    finalValue = operatorCurrScroll + amount;\n                                    break;\n                                case '-=':\n                                    finalValue = operatorCurrScroll - amount;\n                                    break;\n                                case '*=':\n                                    finalValue = operatorCurrScroll * amount;\n                                    break;\n                                case '/=':\n                                    finalValue = operatorCurrScroll / amount;\n                                    break;\n                                default:\n                                    finalValue = amount;\n                                    break;\n                            }\n                            finalValue = invert ? maxScroll - finalValue : finalValue;\n                            finalValue *= negate ? -1 : 1;\n                            finalValue = isRTLisX && _rtlScrollBehavior.n ? MATH.min(0, MATH.max(maxScroll, finalValue)) : MATH.max(0, MATH.min(maxScroll, finalValue));\n                        }\n                        return finalValue === currScroll ? undefined : finalValue;\n                    }\n                    function getPerAxisValue(value, valueInternalType, defaultValue, allowedValues) {\n                        var resultDefault = [defaultValue, defaultValue];\n                        var valueType = type(value);\n                        var valueArrLength;\n                        var valueArrItem;\n\n                        //value can be [ string, or array of two strings ]\n                        if (valueType == valueInternalType) {\n                            value = [value, value];\n                        }\n                        else if (valueType == TYPES.a) {\n                            valueArrLength = value[strLength];\n                            if (valueArrLength > 2 || valueArrLength < 1)\n                                value = resultDefault;\n                            else {\n                                if (valueArrLength === 1)\n                                    value[1] = defaultValue;\n                                for (i = 0; i < valueArrLength; i++) {\n                                    valueArrItem = value[i];\n                                    if (type(valueArrItem) != valueInternalType || !checkSettingsStringValue(valueArrItem, allowedValues)) {\n                                        value = resultDefault;\n                                        break;\n                                    }\n                                }\n                            }\n                        }\n                        else if (valueType == TYPES.o)\n                            value = [value[_strX] || defaultValue, value[_strY] || defaultValue];\n                        else\n                            value = resultDefault;\n                        return { x: value[0], y: value[1] };\n                    }\n                    function generateMargin(marginTopRightBottomLeftArray) {\n                        var result = [];\n                        var currValue;\n                        var currValueType;\n                        var valueDirections = [_strTop, _strRight, _strBottom, _strLeft];\n                        for (i = 0; i < marginTopRightBottomLeftArray[strLength]; i++) {\n                            if (i === valueDirections[strLength])\n                                break;\n                            currValue = marginTopRightBottomLeftArray[i];\n                            currValueType = type(currValue);\n                            if (currValueType == TYPES.b)\n                                result.push(currValue ? parseToZeroOrNumber(finalElement.css(_strMarginMinus + valueDirections[i])) : 0);\n                            else\n                                result.push(currValueType == TYPES.n ? currValue : 0);\n                        }\n                        return result;\n                    }\n\n                    if (possibleElementIsJQuery || possibleElementIsHTMLElement) {\n                        //get settings\n                        var margin = coordinatesIsElementObj ? coordinates.margin : 0;\n                        var axis = coordinatesIsElementObj ? coordinates.axis : 0;\n                        var scroll = coordinatesIsElementObj ? coordinates.scroll : 0;\n                        var block = coordinatesIsElementObj ? coordinates.block : 0;\n                        var marginDefault = [0, 0, 0, 0];\n                        var marginType = type(margin);\n                        var marginLength;\n                        finalElement = possibleElementIsJQuery ? possibleElement : FRAMEWORK(possibleElement);\n\n                        if (finalElement[strLength] > 0) {\n                            //margin can be [ boolean, number, array of 2, array of 4, object ]\n                            if (marginType == TYPES.n || marginType == TYPES.b)\n                                margin = generateMargin([margin, margin, margin, margin]);\n                            else if (marginType == TYPES.a) {\n                                marginLength = margin[strLength];\n                                if (marginLength === 2)\n                                    margin = generateMargin([margin[0], margin[1], margin[0], margin[1]]);\n                                else if (marginLength >= 4)\n                                    margin = generateMargin(margin);\n                                else\n                                    margin = marginDefault;\n                            }\n                            else if (marginType == TYPES.o)\n                                margin = generateMargin([margin[_strTop], margin[_strRight], margin[_strBottom], margin[_strLeft]]);\n                            else\n                                margin = marginDefault;\n\n                            //block = type(block) === TYPES.b ? block ? [ strNearest, strBegin ] : [ strNearest, strEnd ] : block;\n                            settingsAxis = checkSettingsStringValue(axis, elementObjSettingsAxisValues) ? axis : 'xy';\n                            settingsScroll = getPerAxisValue(scroll, TYPES.s, strAlways, elementObjSettingsScrollValues);\n                            settingsBlock = getPerAxisValue(block, TYPES.s, strBegin, elementObjSettingsBlockValues);\n                            settingsMargin = margin;\n\n                            var viewportScroll = {\n                                l: _scrollHorizontalInfo._currentScroll,\n                                t: _scrollVerticalInfo._currentScroll\n                            };\n                            // use padding element instead of viewport element because padding element has never padding, margin or position applied.\n                            var viewportOffset = _paddingElement.offset();\n\n                            //get coordinates\n                            var elementOffset = finalElement.offset();\n                            var doNotScroll = {\n                                x: settingsScroll.x == strNever || settingsAxis == _strY,\n                                y: settingsScroll.y == strNever || settingsAxis == _strX\n                            };\n                            elementOffset[_strTop] -= settingsMargin[0];\n                            elementOffset[_strLeft] -= settingsMargin[3];\n                            var elementScrollCoordinates = {\n                                x: MATH.round(elementOffset[_strLeft] - viewportOffset[_strLeft] + viewportScroll.l),\n                                y: MATH.round(elementOffset[_strTop] - viewportOffset[_strTop] + viewportScroll.t)\n                            };\n                            if (_isRTL) {\n                                if (!_rtlScrollBehavior.n && !_rtlScrollBehavior.i)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + viewportScroll.l);\n                                if (_rtlScrollBehavior.n && normalizeRTL)\n                                    elementScrollCoordinates.x *= -1;\n                                if (_rtlScrollBehavior.i && normalizeRTL)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + (_scrollHorizontalInfo._maxScroll - viewportScroll.l));\n                            }\n\n                            //measuring is required\n                            if (settingsBlock.x != strBegin || settingsBlock.y != strBegin || settingsScroll.x == strIfNeeded || settingsScroll.y == strIfNeeded || _isRTL) {\n                                var measuringElm = finalElement[0];\n                                var rawElementSize = _supportTransform ? measuringElm[LEXICON.bCR]() : {\n                                    width: measuringElm[LEXICON.oW],\n                                    height: measuringElm[LEXICON.oH]\n                                };\n                                var elementSize = {\n                                    w: rawElementSize[_strWidth] + settingsMargin[3] + settingsMargin[1],\n                                    h: rawElementSize[_strHeight] + settingsMargin[0] + settingsMargin[2]\n                                };\n                                var finalizeBlock = function (isX) {\n                                    var vars = getScrollbarVars(isX);\n                                    var wh = vars._w_h;\n                                    var lt = vars._left_top;\n                                    var xy = vars._x_y;\n                                    var blockIsEnd = settingsBlock[xy] == (isX ? _isRTL ? strBegin : strEnd : strEnd);\n                                    var blockIsCenter = settingsBlock[xy] == strCenter;\n                                    var blockIsNearest = settingsBlock[xy] == strNearest;\n                                    var scrollNever = settingsScroll[xy] == strNever;\n                                    var scrollIfNeeded = settingsScroll[xy] == strIfNeeded;\n                                    var vpSize = _viewportSize[wh];\n                                    var vpOffset = viewportOffset[lt];\n                                    var elSize = elementSize[wh];\n                                    var elOffset = elementOffset[lt];\n                                    var divide = blockIsCenter ? 2 : 1;\n                                    var elementCenterOffset = elOffset + (elSize / 2);\n                                    var viewportCenterOffset = vpOffset + (vpSize / 2);\n                                    var isInView =\n                                        elSize <= vpSize\n                                        && elOffset >= vpOffset\n                                        && elOffset + elSize <= vpOffset + vpSize;\n\n                                    if (scrollNever)\n                                        doNotScroll[xy] = true;\n                                    else if (!doNotScroll[xy]) {\n                                        if (blockIsNearest || scrollIfNeeded) {\n                                            doNotScroll[xy] = scrollIfNeeded ? isInView : false;\n                                            blockIsEnd = elSize < vpSize ? elementCenterOffset > viewportCenterOffset : elementCenterOffset < viewportCenterOffset;\n                                        }\n                                        elementScrollCoordinates[xy] -= blockIsEnd || blockIsCenter ? ((vpSize / divide) - (elSize / divide)) * (isX && _isRTL && normalizeRTL ? -1 : 1) : 0;\n                                    }\n                                };\n                                finalizeBlock(true);\n                                finalizeBlock(false);\n                            }\n\n                            if (doNotScroll.y)\n                                delete elementScrollCoordinates.y;\n                            if (doNotScroll.x)\n                                delete elementScrollCoordinates.x;\n\n                            coordinates = elementScrollCoordinates;\n                        }\n                    }\n\n                    finalScroll[_strScrollLeft] = getFinalScroll(true, getRawScroll(true, coordinates));\n                    finalScroll[_strScrollTop] = getFinalScroll(false, getRawScroll(false, coordinates));\n                    doScrollLeft = finalScroll[_strScrollLeft] !== undefined;\n                    doScrollTop = finalScroll[_strScrollTop] !== undefined;\n\n                    if ((doScrollLeft || doScrollTop) && (duration > 0 || durationIsObject)) {\n                        if (durationIsObject) {\n                            duration.complete = proxyCompleteCallback;\n                            _viewportElement.animate(finalScroll, duration);\n                        }\n                        else {\n                            animationOptions = {\n                                duration: duration,\n                                complete: proxyCompleteCallback\n                            };\n                            if (COMPATIBILITY.isA(easing) || FRAMEWORK.isPlainObject(easing)) {\n                                specialEasing[_strScrollLeft] = easing[0] || easing.x;\n                                specialEasing[_strScrollTop] = easing[1] || easing.y;\n                                animationOptions.specialEasing = specialEasing;\n                            }\n                            else {\n                                animationOptions.easing = easing;\n                            }\n                            _viewportElement.animate(finalScroll, animationOptions);\n                        }\n                    }\n                    else {\n                        if (doScrollLeft)\n                            _viewportElement[_strScrollLeft](finalScroll[_strScrollLeft]);\n                        if (doScrollTop)\n                            _viewportElement[_strScrollTop](finalScroll[_strScrollTop]);\n                        updateScrollbarInfos();\n                    }\n                };\n\n                /**\n                 * Stops all scroll animations.\n                 * @returns {*} The current OverlayScrollbars instance (for chaining).\n                 */\n                _base.scrollStop = function (param1, param2, param3) {\n                    _viewportElement.stop(param1, param2, param3);\n                    return _base;\n                };\n\n                /**\n                 * Returns all relevant elements.\n                 * @param elementName The name of the element which shall be returned.\n                 * @returns {{target: *, host: *, padding: *, viewport: *, content: *, scrollbarHorizontal: {scrollbar: *, track: *, handle: *}, scrollbarVertical: {scrollbar: *, track: *, handle: *}, scrollbarCorner: *} | *}\n                 */\n                _base.getElements = function (elementName) {\n                    var obj = {\n                        target: _targetElementNative,\n                        host: _hostElementNative,\n                        padding: _paddingElementNative,\n                        viewport: _viewportElementNative,\n                        content: _contentElementNative,\n                        scrollbarHorizontal: {\n                            scrollbar: _scrollbarHorizontalElement[0],\n                            track: _scrollbarHorizontalTrackElement[0],\n                            handle: _scrollbarHorizontalHandleElement[0]\n                        },\n                        scrollbarVertical: {\n                            scrollbar: _scrollbarVerticalElement[0],\n                            track: _scrollbarVerticalTrackElement[0],\n                            handle: _scrollbarVerticalHandleElement[0]\n                        },\n                        scrollbarCorner: _scrollbarCornerElement[0]\n                    };\n                    return type(elementName) == TYPES.s ? getObjectPropVal(obj, elementName) : obj;\n                };\n\n                /**\n                 * Returns a object which describes the current state of this instance.\n                 * @param stateProperty A specific property from the state object which shall be returned.\n                 * @returns {{widthAuto, heightAuto, overflowAmount, hideOverflow, hasOverflow, contentScrollSize, viewportSize, hostSize, autoUpdate} | *}\n                 */\n                _base.getState = function (stateProperty) {\n                    function prepare(obj) {\n                        if (!FRAMEWORK.isPlainObject(obj))\n                            return obj;\n                        var extended = extendDeep({}, obj);\n                        var changePropertyName = function (from, to) {\n                            if (extended[LEXICON.hOP](from)) {\n                                extended[to] = extended[from];\n                                delete extended[from];\n                            }\n                        };\n                        changePropertyName('w', _strWidth); //change w to width\n                        changePropertyName('h', _strHeight); //change h to height\n                        delete extended.c; //delete c (the 'changed' prop)\n                        return extended;\n                    };\n                    var obj = {\n                        destroyed: !!prepare(_destroyed),\n                        sleeping: !!prepare(_sleeping),\n                        autoUpdate: prepare(!_mutationObserversConnected),\n                        widthAuto: prepare(_widthAutoCache),\n                        heightAuto: prepare(_heightAutoCache),\n                        padding: prepare(_cssPaddingCache),\n                        overflowAmount: prepare(_overflowAmountCache),\n                        hideOverflow: prepare(_hideOverflowCache),\n                        hasOverflow: prepare(_hasOverflowCache),\n                        contentScrollSize: prepare(_contentScrollSizeCache),\n                        viewportSize: prepare(_viewportSize),\n                        hostSize: prepare(_hostSizeCache),\n                        documentMixed: prepare(_documentMixed)\n                    };\n                    return type(stateProperty) == TYPES.s ? getObjectPropVal(obj, stateProperty) : obj;\n                };\n\n                /**\n                 * Gets all or specific extension instance.\n                 * @param extName The name of the extension from which the instance shall be got.\n                 * @returns {{}} The instance of the extension with the given name or undefined if the instance couldn't be found.\n                 */\n                _base.ext = function (extName) {\n                    var result;\n                    var privateMethods = _extensionsPrivateMethods.split(' ');\n                    var i = 0;\n                    if (type(extName) == TYPES.s) {\n                        if (_extensions[LEXICON.hOP](extName)) {\n                            result = extendDeep({}, _extensions[extName]);\n                            for (; i < privateMethods.length; i++)\n                                delete result[privateMethods[i]];\n                        }\n                    }\n                    else {\n                        result = {};\n                        for (i in _extensions)\n                            result[i] = extendDeep({}, _base.ext(i));\n                    }\n                    return result;\n                };\n\n                /**\n                 * Adds a extension to this instance.\n                 * @param extName The name of the extension which shall be added.\n                 * @param extensionOptions The extension options which shall be used.\n                 * @returns {{}} The instance of the added extension or undefined if the extension couldn't be added properly.\n                 */\n                _base.addExt = function (extName, extensionOptions) {\n                    var registeredExtensionObj = _plugin.extension(extName);\n                    var instance;\n                    var instanceAdded;\n                    var instanceContract;\n                    var contractResult;\n                    var contractFulfilled = true;\n                    if (registeredExtensionObj) {\n                        if (!_extensions[LEXICON.hOP](extName)) {\n                            instance = registeredExtensionObj.extensionFactory.call(_base,\n                                extendDeep({}, registeredExtensionObj.defaultOptions),\n                                FRAMEWORK,\n                                COMPATIBILITY);\n\n                            if (instance) {\n                                instanceContract = instance.contract;\n                                if (type(instanceContract) == TYPES.f) {\n                                    contractResult = instanceContract(window);\n                                    contractFulfilled = type(contractResult) == TYPES.b ? contractResult : contractFulfilled;\n                                }\n                                if (contractFulfilled) {\n                                    _extensions[extName] = instance;\n                                    instanceAdded = instance.added;\n                                    if (type(instanceAdded) == TYPES.f)\n                                        instanceAdded(extensionOptions);\n\n                                    return _base.ext(extName);\n                                }\n                            }\n                        }\n                        else\n                            return _base.ext(extName);\n                    }\n                    else\n                        console.warn(\"A extension with the name \\\"\" + extName + \"\\\" isn't registered.\");\n                };\n\n                /**\n                 * Removes a extension from this instance.\n                 * @param extName The name of the extension which shall be removed.\n                 * @returns {boolean} True if the extension was removed, false otherwise e.g. if the extension wasn't added before.\n                 */\n                _base.removeExt = function (extName) {\n                    var instance = _extensions[extName];\n                    var instanceRemoved;\n                    if (instance) {\n                        delete _extensions[extName];\n\n                        instanceRemoved = instance.removed;\n                        if (type(instanceRemoved) == TYPES.f)\n                            instanceRemoved();\n\n                        return true;\n                    }\n                    return false;\n                };\n\n                /**\n                 * Constructs the plugin.\n                 * @param targetElement The element to which the plugin shall be applied.\n                 * @param options The initial options of the plugin.\n                 * @param extensions The extension(s) which shall be added right after the initialization.\n                 * @returns {boolean} True if the plugin was successfully initialized, false otherwise.\n                 */\n                function construct(targetElement, options, extensions) {\n                    _defaultOptions = globals.defaultOptions;\n                    _nativeScrollbarStyling = globals.nativeScrollbarStyling;\n                    _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    _nativeScrollbarIsOverlaid = extendDeep({}, globals.nativeScrollbarIsOverlaid);\n                    _overlayScrollbarDummySize = extendDeep({}, globals.overlayScrollbarDummySize);\n                    _rtlScrollBehavior = extendDeep({}, globals.rtlScrollBehavior);\n\n                    //parse & set options but don't update\n                    setOptions(extendDeep({}, _defaultOptions, options));\n\n                    _cssCalc = globals.cssCalc;\n                    _msieVersion = globals.msie;\n                    _autoUpdateRecommended = globals.autoUpdateRecommended;\n                    _supportTransition = globals.supportTransition;\n                    _supportTransform = globals.supportTransform;\n                    _supportPassiveEvents = globals.supportPassiveEvents;\n                    _supportResizeObserver = globals.supportResizeObserver;\n                    _supportMutationObserver = globals.supportMutationObserver;\n                    _restrictedMeasuring = globals.restrictedMeasuring;\n                    _documentElement = FRAMEWORK(targetElement.ownerDocument);\n                    _documentElementNative = _documentElement[0];\n                    _windowElement = FRAMEWORK(_documentElementNative.defaultView || _documentElementNative.parentWindow);\n                    _windowElementNative = _windowElement[0];\n                    _htmlElement = findFirst(_documentElement, 'html');\n                    _bodyElement = findFirst(_htmlElement, 'body');\n                    _targetElement = FRAMEWORK(targetElement);\n                    _targetElementNative = _targetElement[0];\n                    _isTextarea = _targetElement.is('textarea');\n                    _isBody = _targetElement.is('body');\n                    _documentMixed = _documentElementNative !== document;\n\n                    /* On a div Element The if checks only whether:\n                     * - the targetElement has the class \"os-host\"\n                     * - the targetElement has a a child with the class \"os-padding\"\n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-host\" element is the targetElement)\n                     *\n                     *  <div class=\"os-host\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding\">\n                     *          <div class=\"os-viewport\">\n                     *              <div class=\"os-content\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     *\n                     * =====================================================================================\n                     * \n                     * On a Textarea Element The if checks only whether:\n                     * - the targetElement has the class \"os-textarea\" \n                     * - the targetElement is inside a element with the class \"os-content\" \n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-textarea\" (textarea) element is the targetElement)\n                     *\n                     *  <div class=\"os-host-textarea\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding os-text-inherit\">\n                     *          <div class=\"os-viewport os-text-inherit\">\n                     *              <div class=\"os-content os-text-inherit\">\n                     *                  <div class=\"os-textarea-cover\"></div>\n                     *                  <textarea class=\"os-textarea os-text-inherit\"></textarea>\n                     *              </div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     */\n                    _domExists = _isTextarea\n                        ? _targetElement.hasClass(_classNameTextareaElement) && _targetElement.parent().hasClass(_classNameContentElement)\n                        : _targetElement.hasClass(_classNameHostElement) && _targetElement.children(_strDot + _classNamePaddingElement)[LEXICON.l];\n\n                    var initBodyScroll;\n                    var bodyMouseTouchDownListener;\n\n                    //check if the plugin hasn't to be initialized\n                    if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y && !_currentPreparedOptions.nativeScrollbarsOverlaid.initialize) {\n                        dispatchCallback('onInitializationWithdrawn');\n                        if (_domExists) {\n                            setupStructureDOM(true);\n                            setupScrollbarsDOM(true);\n                            setupScrollbarCornerDOM(true);\n                        }\n\n                        _destroyed = true;\n                        _sleeping = true;\n\n                        return _base;\n                    }\n\n                    if (_isBody) {\n                        initBodyScroll = {};\n                        initBodyScroll.l = MATH.max(_targetElement[_strScrollLeft](), _htmlElement[_strScrollLeft](), _windowElement[_strScrollLeft]());\n                        initBodyScroll.t = MATH.max(_targetElement[_strScrollTop](), _htmlElement[_strScrollTop](), _windowElement[_strScrollTop]());\n\n                        bodyMouseTouchDownListener = function () {\n                            _viewportElement.removeAttr(LEXICON.ti);\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, true, true);\n                        }\n                    }\n\n                    //build OverlayScrollbars DOM\n                    setupStructureDOM();\n                    setupScrollbarsDOM();\n                    setupScrollbarCornerDOM();\n\n                    //create OverlayScrollbars events\n                    setupStructureEvents();\n                    setupScrollbarEvents(true);\n                    setupScrollbarEvents(false);\n                    setupScrollbarCornerEvents();\n\n                    //create mutation observers\n                    createMutationObservers();\n\n                    //build resize observer for the host element\n                    setupResizeObserver(_sizeObserverElement, hostOnResized);\n\n                    if (_isBody) {\n                        //apply the body scroll to handle it right in the update method\n                        _viewportElement[_strScrollLeft](initBodyScroll.l)[_strScrollTop](initBodyScroll.t);\n\n                        //set the focus on the viewport element so you dont have to click on the page to use keyboard keys (up / down / space) for scrolling\n                        if (document.activeElement == targetElement && _viewportElementNative.focus) {\n                            //set a tabindex to make the viewportElement focusable\n                            _viewportElement.attr(LEXICON.ti, '-1');\n                            _viewportElementNative.focus();\n\n                            /* the tabindex has to be removed due to;\n                             * If you set the tabindex attribute on an <div>, then its child content cannot be scrolled with the arrow keys unless you set tabindex on the content, too\n                             * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n                             */\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, false, true);\n                        }\n                    }\n\n                    //update for the first time & initialize cache\n                    _base.update(_strAuto);\n\n                    //the plugin is initialized now!\n                    _initialized = true;\n                    dispatchCallback('onInitialized');\n\n                    //call all callbacks which would fire before the initialized was complete\n                    each(_callbacksInitQeueue, function (index, value) { dispatchCallback(value.n, value.a); });\n                    _callbacksInitQeueue = [];\n\n                    //add extensions\n                    if (type(extensions) == TYPES.s)\n                        extensions = [extensions];\n                    if (COMPATIBILITY.isA(extensions))\n                        each(extensions, function (index, value) { _base.addExt(value); });\n                    else if (FRAMEWORK.isPlainObject(extensions))\n                        each(extensions, function (key, value) { _base.addExt(key, value); });\n\n                    //add the transition class for transitions AFTER the first update & AFTER the applied extensions (for preventing unwanted transitions)\n                    setTimeout(function () {\n                        if (_supportTransition && !_destroyed)\n                            addClass(_hostElement, _classNameHostTransition);\n                    }, 333);\n\n                    return _base;\n                }\n\n                if (_plugin.valid(construct(pluginTargetElement, options, extensions))) {\n                    INSTANCES(pluginTargetElement, _base);\n                }\n\n                return _base;\n            }\n\n            /**\n             * Initializes a new OverlayScrollbarsInstance object or changes options if already initialized or returns the current instance.\n             * @param pluginTargetElements The elements to which the Plugin shall be initialized.\n             * @param options The custom options with which the plugin shall be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*}\n             */\n            _plugin = window[PLUGINNAME] = function (pluginTargetElements, options, extensions) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var arr = [];\n                var optsIsPlainObj = FRAMEWORK.isPlainObject(options);\n                var inst;\n                var result;\n\n                //pluginTargetElements is null or undefined\n                if (!pluginTargetElements)\n                    return optsIsPlainObj || !options ? result : arr;\n\n                /*\n                   pluginTargetElements will be converted to:\n                   1. A jQueryElement Array\n                   2. A HTMLElement Array\n                   3. A Array with a single HTML Element\n                   so pluginTargetElements is always a array.\n                */\n                pluginTargetElements = pluginTargetElements[LEXICON.l] != undefined ? pluginTargetElements : [pluginTargetElements[0] || pluginTargetElements];\n                initOverlayScrollbarsStatics();\n\n                if (pluginTargetElements[LEXICON.l] > 0) {\n                    if (optsIsPlainObj) {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = v;\n                            if (inst !== undefined)\n                                arr.push(OverlayScrollbarsInstance(inst, options, extensions, _pluginsGlobals, _pluginsAutoUpdateLoop));\n                        });\n                    }\n                    else {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = INSTANCES(v);\n                            if ((options === '!' && _plugin.valid(inst)) || (COMPATIBILITY.type(options) == TYPES.f && options(v, inst)))\n                                arr.push(inst);\n                            else if (options === undefined)\n                                arr.push(inst);\n                        });\n                    }\n                    result = arr[LEXICON.l] === 1 ? arr[0] : arr;\n                }\n                return result;\n            };\n\n            /**\n             * Returns a object which contains global information about the plugin and each instance of it.\n             * The returned object is just a copy, that means that changes to the returned object won't have any effect to the original object.\n             */\n            _plugin.globals = function () {\n                initOverlayScrollbarsStatics();\n                var globals = FRAMEWORK.extend(true, {}, _pluginsGlobals);\n                delete globals['msie'];\n                return globals;\n            };\n\n            /**\n             * Gets or Sets the default options for each new plugin initialization.\n             * @param newDefaultOptions The object with which the default options shall be extended.\n             */\n            _plugin.defaultOptions = function (newDefaultOptions) {\n                initOverlayScrollbarsStatics();\n                var currDefaultOptions = _pluginsGlobals.defaultOptions;\n                if (newDefaultOptions === undefined)\n                    return FRAMEWORK.extend(true, {}, currDefaultOptions);\n\n                //set the new default options\n                _pluginsGlobals.defaultOptions = FRAMEWORK.extend(true, {}, currDefaultOptions, _pluginsOptions._validate(newDefaultOptions, _pluginsOptions._template, true, currDefaultOptions)._default);\n            };\n\n            /**\n             * Checks whether the passed instance is a non-destroyed OverlayScrollbars instance.\n             * @param osInstance The potential OverlayScrollbars instance which shall be checked.\n             * @returns {boolean} True if the passed value is a non-destroyed OverlayScrollbars instance, false otherwise.\n             */\n            _plugin.valid = function (osInstance) {\n                return osInstance instanceof _plugin && !osInstance.getState().destroyed;\n            };\n\n            /**\n             * Registers, Unregisters or returns a extension.\n             * Register: Pass the name and the extension. (defaultOptions is optional)\n             * Unregister: Pass the name and anything except a function as extension parameter.\n             * Get extension: Pass the name of the extension which shall be got.\n             * Get all extensions: Pass no arguments.\n             * @param extensionName The name of the extension which shall be registered, unregistered or returned.\n             * @param extension A function which generates the instance of the extension or anything other to remove a already registered extension.\n             * @param defaultOptions The default options which shall be used for the registered extension.\n             */\n            _plugin.extension = function (extensionName, extension, defaultOptions) {\n                var extNameTypeString = COMPATIBILITY.type(extensionName) == TYPES.s;\n                var argLen = arguments[LEXICON.l];\n                var i = 0;\n                if (argLen < 1 || !extNameTypeString) {\n                    //return a copy of all extension objects\n                    return FRAMEWORK.extend(true, { length: _pluginsExtensions[LEXICON.l] }, _pluginsExtensions);\n                }\n                else if (extNameTypeString) {\n                    if (COMPATIBILITY.type(extension) == TYPES.f) {\n                        //register extension\n                        _pluginsExtensions.push({\n                            name: extensionName,\n                            extensionFactory: extension,\n                            defaultOptions: defaultOptions\n                        });\n                    }\n                    else {\n                        for (; i < _pluginsExtensions[LEXICON.l]; i++) {\n                            if (_pluginsExtensions[i].name === extensionName) {\n                                if (argLen > 1)\n                                    _pluginsExtensions.splice(i, 1); //remove extension\n                                else\n                                    return FRAMEWORK.extend(true, {}, _pluginsExtensions[i]); //return extension with the given name\n                            }\n                        }\n                    }\n                }\n            };\n\n            return _plugin;\n        })();\n\n        if (JQUERY && JQUERY.fn) {\n            /**\n             * The jQuery initialization interface.\n             * @param options The initial options for the construction of the plugin. To initialize the plugin, this option has to be a object! If it isn't a object, the instance(s) are returned and the plugin wont be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*} After initialization it returns the jQuery element array, else it returns the instance(s) of the elements which are selected.\n             */\n            JQUERY.fn.overlayScrollbars = function (options, extensions) {\n                var _elements = this;\n                if (JQUERY.isPlainObject(options)) {\n                    JQUERY.each(_elements, function () { PLUGIN(this, options, extensions); });\n                    return _elements;\n                }\n                else\n                    return PLUGIN(_elements, options);\n            };\n        }\n        return PLUGIN;\n    }\n));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/overlayScrollbars/js/jquery.overlayScrollbars.js",
    "content": "/*!\n * OverlayScrollbars\n * https://github.com/KingSora/OverlayScrollbars\n *\n * Version: 1.13.0\n *\n * Copyright KingSora | Rene Haas.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n * Date: 02.08.2020\n */\n\n(function (global, factory) {\n    if (typeof define === 'function' && define.amd)\n        define(['jquery'], function (framework) { return factory(global, global.document, undefined, framework); });\n    else if (typeof module === 'object' && typeof module.exports === 'object')\n        module.exports = factory(global, global.document, undefined, require('jquery'));\n    else\n        factory(global, global.document, undefined, global.jQuery);\n}(typeof window !== 'undefined' ? window : this,\n    function (window, document, undefined, framework) {\n        'use strict';\n        var PLUGINNAME = 'OverlayScrollbars';\n        var TYPES = {\n            o: 'object',\n            f: 'function',\n            a: 'array',\n            s: 'string',\n            b: 'boolean',\n            n: 'number',\n            u: 'undefined',\n            z: 'null'\n            //d : 'date',\n            //e : 'error',\n            //r : 'regexp',\n            //y : 'symbol'\n        };\n        var LEXICON = {\n            c: 'class',\n            s: 'style',\n            i: 'id',\n            l: 'length',\n            p: 'prototype',\n            ti: 'tabindex',\n            oH: 'offsetHeight',\n            cH: 'clientHeight',\n            sH: 'scrollHeight',\n            oW: 'offsetWidth',\n            cW: 'clientWidth',\n            sW: 'scrollWidth',\n            hOP: 'hasOwnProperty',\n            bCR: 'getBoundingClientRect'\n        };\n        var VENDORS = (function () {\n            //https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\n            var jsCache = {};\n            var cssCache = {};\n            var cssPrefixes = ['-webkit-', '-moz-', '-o-', '-ms-'];\n            var jsPrefixes = ['WebKit', 'Moz', 'O', 'MS'];\n            function firstLetterToUpper(str) {\n                return str.charAt(0).toUpperCase() + str.slice(1);\n            }\n\n            return {\n                _cssPrefixes: cssPrefixes,\n                _jsPrefixes: jsPrefixes,\n                _cssProperty: function (name) {\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var uppercasedName = firstLetterToUpper(name);\n                    var elmStyle = document.createElement('div')[LEXICON.s];\n                    var resultPossibilities;\n                    var i = 0;\n                    var v;\n                    var currVendorWithoutDashes;\n\n                    for (; i < cssPrefixes.length; i++) {\n                        currVendorWithoutDashes = cssPrefixes[i].replace(/-/g, '');\n                        resultPossibilities = [\n                            name, //transition\n                            cssPrefixes[i] + name, //-webkit-transition\n                            currVendorWithoutDashes + uppercasedName, //webkitTransition\n                            firstLetterToUpper(currVendorWithoutDashes) + uppercasedName //WebkitTransition\n                        ];\n                        for (v = 0; v < resultPossibilities[LEXICON.l]; v++) {\n                            if (elmStyle[resultPossibilities[v]] !== undefined) {\n                                result = resultPossibilities[v];\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _cssPropertyValue: function (property, values, suffix) {\n                    var name = property + ' ' + values;\n                    var result = cssCache[name];\n\n                    if (cssCache[LEXICON.hOP](name))\n                        return result;\n\n                    var dummyStyle = document.createElement('div')[LEXICON.s];\n                    var possbleValues = values.split(' ');\n                    var preparedSuffix = suffix || '';\n                    var i = 0;\n                    var v = -1;\n                    var prop;\n\n                    for (; i < possbleValues[LEXICON.l]; i++) {\n                        for (; v < VENDORS._cssPrefixes[LEXICON.l]; v++) {\n                            prop = v < 0 ? possbleValues[i] : VENDORS._cssPrefixes[v] + possbleValues[i];\n                            dummyStyle.cssText = property + ':' + prop + preparedSuffix;\n                            if (dummyStyle[LEXICON.l]) {\n                                result = prop;\n                                break;\n                            }\n                        }\n                    }\n\n                    cssCache[name] = result;\n                    return result;\n                },\n                _jsAPI: function (name, isInterface, fallback) {\n                    var i = 0;\n                    var result = jsCache[name];\n\n                    if (!jsCache[LEXICON.hOP](name)) {\n                        result = window[name];\n                        for (; i < jsPrefixes[LEXICON.l]; i++)\n                            result = result || window[(isInterface ? jsPrefixes[i] : jsPrefixes[i].toLowerCase()) + firstLetterToUpper(name)];\n                        jsCache[name] = result;\n                    }\n                    return result || fallback;\n                }\n            }\n        })();\n        var COMPATIBILITY = (function () {\n            function windowSize(x) {\n                return x ? window.innerWidth || document.documentElement[LEXICON.cW] || document.body[LEXICON.cW] : window.innerHeight || document.documentElement[LEXICON.cH] || document.body[LEXICON.cH];\n            }\n            function bind(func, thisObj) {\n                if (typeof func != TYPES.f) {\n                    throw \"Can't bind function!\";\n                    // closest thing possible to the ECMAScript 5\n                    // internal IsCallable function\n                    //throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n                }\n                var proto = LEXICON.p;\n                var aArgs = Array[proto].slice.call(arguments, 2);\n                var fNOP = function () { };\n                var fBound = function () { return func.apply(this instanceof fNOP ? this : thisObj, aArgs.concat(Array[proto].slice.call(arguments))); };\n\n                if (func[proto])\n                    fNOP[proto] = func[proto]; // Function.prototype doesn't have a prototype property\n                fBound[proto] = new fNOP();\n\n                return fBound;\n            }\n\n            return {\n                /**\n                 * Gets the current window width.\n                 * @returns {Number|number} The current window width in pixel.\n                 */\n                wW: bind(windowSize, 0, true),\n\n                /**\n                 * Gets the current window height.\n                 * @returns {Number|number} The current window height in pixel.\n                 */\n                wH: bind(windowSize, 0),\n\n                /**\n                 * Gets the MutationObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The MutationsObserver Object or undefined.\n                 */\n                mO: bind(VENDORS._jsAPI, 0, 'MutationObserver', true),\n\n                /**\n                 * Gets the ResizeObserver Object or undefined if not supported.\n                 * @returns {MutationObserver|*|undefined} The ResizeObserver Object or undefined.\n                 */\n                rO: bind(VENDORS._jsAPI, 0, 'ResizeObserver', true),\n\n                /**\n                 * Gets the RequestAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The RequestAnimationFrame method or it's corresponding polyfill.\n                 */\n                rAF: bind(VENDORS._jsAPI, 0, 'requestAnimationFrame', false, function (func) { return window.setTimeout(func, 1000 / 60); }),\n\n                /**\n                 * Gets the CancelAnimationFrame method or it's corresponding polyfill.\n                 * @returns {*|Function} The CancelAnimationFrame method or it's corresponding polyfill.\n                 */\n                cAF: bind(VENDORS._jsAPI, 0, 'cancelAnimationFrame', false, function (id) { return window.clearTimeout(id); }),\n\n                /**\n                 * Gets the current time.\n                 * @returns {number} The current time.\n                 */\n                now: function () {\n                    return Date.now && Date.now() || new Date().getTime();\n                },\n\n                /**\n                 * Stops the propagation of the given event.\n                 * @param event The event of which the propagation shall be stoped.\n                 */\n                stpP: function (event) {\n                    if (event.stopPropagation)\n                        event.stopPropagation();\n                    else\n                        event.cancelBubble = true;\n                },\n\n                /**\n                 * Prevents the default action of the given event.\n                 * @param event The event of which the default action shall be prevented.\n                 */\n                prvD: function (event) {\n                    if (event.preventDefault && event.cancelable)\n                        event.preventDefault();\n                    else\n                        event.returnValue = false;\n                },\n\n                /**\n                 * Gets the pageX and pageY values of the given mouse event.\n                 * @param event The mouse event of which the pageX and pageX shall be got.\n                 * @returns {{x: number, y: number}} x = pageX value, y = pageY value.\n                 */\n                page: function (event) {\n                    event = event.originalEvent || event;\n\n                    var strPage = 'page';\n                    var strClient = 'client';\n                    var strX = 'X';\n                    var strY = 'Y';\n                    var target = event.target || event.srcElement || document;\n                    var eventDoc = target.ownerDocument || document;\n                    var doc = eventDoc.documentElement;\n                    var body = eventDoc.body;\n\n                    //if touch event return return pageX/Y of it\n                    if (event.touches !== undefined) {\n                        var touch = event.touches[0];\n                        return {\n                            x: touch[strPage + strX],\n                            y: touch[strPage + strY]\n                        }\n                    }\n\n                    // Calculate pageX/Y if not native supported\n                    if (!event[strPage + strX] && event[strClient + strX] && event[strClient + strX] != null) {\n\n                        return {\n                            x: event[strClient + strX] +\n                                (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n                                (doc && doc.clientLeft || body && body.clientLeft || 0),\n                            y: event[strClient + strY] +\n                                (doc && doc.scrollTop || body && body.scrollTop || 0) -\n                                (doc && doc.clientTop || body && body.clientTop || 0)\n                        }\n                    }\n                    return {\n                        x: event[strPage + strX],\n                        y: event[strPage + strY]\n                    };\n                },\n\n                /**\n                 * Gets the clicked mouse button of the given mouse event.\n                 * @param event The mouse event of which the clicked button shal be got.\n                 * @returns {number} The number of the clicked mouse button. (0 : none | 1 : leftButton | 2 : middleButton | 3 : rightButton)\n                 */\n                mBtn: function (event) {\n                    var button = event.button;\n                    if (!event.which && button !== undefined)\n                        return (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n                    else\n                        return event.which;\n                },\n\n                /**\n                 * Checks whether a item is in the given array and returns its index.\n                 * @param item The item of which the position in the array shall be determined.\n                 * @param arr The array.\n                 * @returns {number} The zero based index of the item or -1 if the item isn't in the array.\n                 */\n                inA: function (item, arr) {\n                    for (var i = 0; i < arr[LEXICON.l]; i++)\n                        //Sometiems in IE a \"SCRIPT70\" Permission denied error occurs if HTML elements in a iFrame are compared\n                        try {\n                            if (arr[i] === item)\n                                return i;\n                        }\n                        catch (e) { }\n                    return -1;\n                },\n\n                /**\n                 * Returns true if the given value is a array.\n                 * @param arr The potential array.\n                 * @returns {boolean} True if the given value is a array, false otherwise.\n                 */\n                isA: function (arr) {\n                    var def = Array.isArray;\n                    return def ? def(arr) : this.type(arr) == TYPES.a;\n                },\n\n                /**\n                 * Determine the internal JavaScript [[Class]] of the given object.\n                 * @param obj The object of which the type shall be determined.\n                 * @returns {string} The type of the given object.\n                 */\n                type: function (obj) {\n                    if (obj === undefined)\n                        return obj + '';\n                    if (obj === null)\n                        return obj + '';\n                    return Object[LEXICON.p].toString.call(obj).replace(/^\\[object (.+)\\]$/, '$1').toLowerCase();\n                },\n\n\n                bind: bind\n\n                /**\n                 * Gets the vendor-prefixed CSS property by the given name.\n                 * For example the given name is \"transform\" and you're using a old Firefox browser then the returned value would be \"-moz-transform\".\n                 * If the browser doesn't need a vendor-prefix, then the returned string is the given name.\n                 * If the browser doesn't support the given property name at all (not even with a vendor-prefix) the returned value is null.\n                 * @param propName The unprefixed CSS property name.\n                 * @returns {string|null} The vendor-prefixed CSS property or null if the browser doesn't support the given CSS property.\n\n                cssProp: function(propName) {\n                    return VENDORS._cssProperty(propName);\n                }\n                */\n            }\n        })();\n\n        var MATH = Math;\n        var JQUERY = framework;\n        var EASING = framework.easing;\n        var FRAMEWORK = framework;\n        var INSTANCES = (function () {\n            var _targets = [];\n            var _instancePropertyString = '__overlayScrollbars__';\n\n            /**\n             * Register, unregister or get a certain (or all) instances.\n             * Register: Pass the target and the instance.\n             * Unregister: Pass the target and null.\n             * Get Instance: Pass the target from which the instance shall be got.\n             * Get Targets: Pass no arguments.\n             * @param target The target to which the instance shall be registered / from which the instance shall be unregistered / the instance shall be got\n             * @param instance The instance.\n             * @returns {*|void} Returns the instance from the given target.\n             */\n            return function (target, instance) {\n                var argLen = arguments[LEXICON.l];\n                if (argLen < 1) {\n                    //return all targets\n                    return _targets;\n                }\n                else {\n                    if (instance) {\n                        //register instance\n                        target[_instancePropertyString] = instance;\n                        _targets.push(target);\n                    }\n                    else {\n                        var index = COMPATIBILITY.inA(target, _targets);\n                        if (index > -1) {\n                            if (argLen > 1) {\n                                //unregister instance\n                                delete target[_instancePropertyString];\n                                _targets.splice(index, 1);\n                            }\n                            else {\n                                //get instance from target\n                                return _targets[index][_instancePropertyString];\n                            }\n                        }\n                    }\n                }\n            }\n        })();\n        var PLUGIN = (function () {\n            var _plugin;\n            var _pluginsGlobals;\n            var _pluginsAutoUpdateLoop;\n            var _pluginsExtensions = [];\n            var _pluginsOptions = (function () {\n                var type = COMPATIBILITY.type;\n                var possibleTemplateTypes = [\n                    TYPES.b, //boolean\n                    TYPES.n, //number\n                    TYPES.s, //string\n                    TYPES.a, //array\n                    TYPES.o, //object\n                    TYPES.f, //function\n                    TYPES.z  //null\n                ];\n                var restrictedStringsSplit = ' ';\n                var restrictedStringsPossibilitiesSplit = ':';\n                var classNameAllowedValues = [TYPES.z, TYPES.s];\n                var numberAllowedValues = TYPES.n;\n                var booleanNullAllowedValues = [TYPES.z, TYPES.b];\n                var booleanTrueTemplate = [true, TYPES.b];\n                var booleanFalseTemplate = [false, TYPES.b];\n                var callbackTemplate = [null, [TYPES.z, TYPES.f]];\n                var updateOnLoadTemplate = [['img'], [TYPES.s, TYPES.a, TYPES.z]];\n                var inheritedAttrsTemplate = [['style', 'class'], [TYPES.s, TYPES.a, TYPES.z]];\n                var resizeAllowedValues = 'n:none b:both h:horizontal v:vertical';\n                var overflowBehaviorAllowedValues = 'v-h:visible-hidden v-s:visible-scroll s:scroll h:hidden';\n                var scrollbarsVisibilityAllowedValues = 'v:visible h:hidden a:auto';\n                var scrollbarsAutoHideAllowedValues = 'n:never s:scroll l:leave m:move';\n                var optionsDefaultsAndTemplate = {\n                    className: ['os-theme-dark', classNameAllowedValues],                //null || string\n                    resize: ['none', resizeAllowedValues],                               //none || both  || horizontal || vertical || n || b || h || v\n                    sizeAutoCapable: booleanTrueTemplate,                                //true || false\n                    clipAlways: booleanTrueTemplate,                                     //true || false\n                    normalizeRTL: booleanTrueTemplate,                                   //true || false\n                    paddingAbsolute: booleanFalseTemplate,                               //true || false\n                    autoUpdate: [null, booleanNullAllowedValues],                        //true || false || null\n                    autoUpdateInterval: [33, numberAllowedValues],                       //number\n                    updateOnLoad: updateOnLoadTemplate,                                  //string || array || null\n                    nativeScrollbarsOverlaid: {\n                        showNativeScrollbars: booleanFalseTemplate,                      //true || false\n                        initialize: booleanTrueTemplate                                  //true || false\n                    },\n                    overflowBehavior: {\n                        x: ['scroll', overflowBehaviorAllowedValues],                    //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                        y: ['scroll', overflowBehaviorAllowedValues]                     //visible-hidden  || visible-scroll || hidden || scroll || v-h || v-s || h || s\n                    },\n                    scrollbars: {\n                        visibility: ['auto', scrollbarsVisibilityAllowedValues],         //visible || hidden || auto || v || h || a\n                        autoHide: ['never', scrollbarsAutoHideAllowedValues],            //never || scroll || leave || move || n || s || l || m\n                        autoHideDelay: [800, numberAllowedValues],                       //number\n                        dragScrolling: booleanTrueTemplate,                              //true || false\n                        clickScrolling: booleanFalseTemplate,                            //true || false\n                        touchSupport: booleanTrueTemplate,                               //true || false\n                        snapHandle: booleanFalseTemplate                                 //true || false\n                    },\n                    textarea: {\n                        dynWidth: booleanFalseTemplate,                                  //true || false\n                        dynHeight: booleanFalseTemplate,                                 //true || false\n                        inheritedAttrs: inheritedAttrsTemplate                           //string || array || null\n                    },\n                    callbacks: {\n                        onInitialized: callbackTemplate,                                 //null || function\n                        onInitializationWithdrawn: callbackTemplate,                     //null || function\n                        onDestroyed: callbackTemplate,                                   //null || function\n                        onScrollStart: callbackTemplate,                                 //null || function\n                        onScroll: callbackTemplate,                                      //null || function\n                        onScrollStop: callbackTemplate,                                  //null || function\n                        onOverflowChanged: callbackTemplate,                             //null || function\n                        onOverflowAmountChanged: callbackTemplate,                       //null || function\n                        onDirectionChanged: callbackTemplate,                            //null || function\n                        onContentSizeChanged: callbackTemplate,                          //null || function\n                        onHostSizeChanged: callbackTemplate,                             //null || function\n                        onUpdated: callbackTemplate                                      //null || function\n                    }\n                };\n                var convert = function (template) {\n                    var recursive = function (obj) {\n                        var key;\n                        var val;\n                        var valType;\n                        for (key in obj) {\n                            if (!obj[LEXICON.hOP](key))\n                                continue;\n                            val = obj[key];\n                            valType = type(val);\n                            if (valType == TYPES.a)\n                                obj[key] = val[template ? 1 : 0];\n                            else if (valType == TYPES.o)\n                                obj[key] = recursive(val);\n                        }\n                        return obj;\n                    };\n                    return recursive(FRAMEWORK.extend(true, {}, optionsDefaultsAndTemplate));\n                };\n\n                return {\n                    _defaults: convert(),\n\n                    _template: convert(true),\n\n                    /**\n                     * Validates the passed object by the passed template.\n                     * @param obj The object which shall be validated.\n                     * @param template The template which defines the allowed values and types.\n                     * @param writeErrors True if errors shall be logged to the console.\n                     * @param diffObj If a object is passed then only valid differences to this object will be returned.\n                     * @returns {{}} A object which contains two objects called \"default\" and \"prepared\" which contains only the valid properties of the passed original object and discards not different values compared to the passed diffObj.\n                     */\n                    _validate: function (obj, template, writeErrors, diffObj) {\n                        var validatedOptions = {};\n                        var validatedOptionsPrepared = {};\n                        var objectCopy = FRAMEWORK.extend(true, {}, obj);\n                        var inArray = FRAMEWORK.inArray;\n                        var isEmptyObj = FRAMEWORK.isEmptyObject;\n                        var checkObjectProps = function (data, template, diffData, validatedOptions, validatedOptionsPrepared, prevPropName) {\n                            for (var prop in template) {\n                                if (template[LEXICON.hOP](prop) && data[LEXICON.hOP](prop)) {\n                                    var isValid = false;\n                                    var isDiff = false;\n                                    var templateValue = template[prop];\n                                    var templateValueType = type(templateValue);\n                                    var templateIsComplex = templateValueType == TYPES.o;\n                                    var templateTypes = !COMPATIBILITY.isA(templateValue) ? [templateValue] : templateValue;\n                                    var dataDiffValue = diffData[prop];\n                                    var dataValue = data[prop];\n                                    var dataValueType = type(dataValue);\n                                    var propPrefix = prevPropName ? prevPropName + '.' : '';\n                                    var error = \"The option \\\"\" + propPrefix + prop + \"\\\" wasn't set, because\";\n                                    var errorPossibleTypes = [];\n                                    var errorRestrictedStrings = [];\n                                    var restrictedStringValuesSplit;\n                                    var restrictedStringValuesPossibilitiesSplit;\n                                    var isRestrictedValue;\n                                    var mainPossibility;\n                                    var currType;\n                                    var i;\n                                    var v;\n                                    var j;\n\n                                    dataDiffValue = dataDiffValue === undefined ? {} : dataDiffValue;\n\n                                    //if the template has a object as value, it means that the options are complex (verschachtelt)\n                                    if (templateIsComplex && dataValueType == TYPES.o) {\n                                        validatedOptions[prop] = {};\n                                        validatedOptionsPrepared[prop] = {};\n                                        checkObjectProps(dataValue, templateValue, dataDiffValue, validatedOptions[prop], validatedOptionsPrepared[prop], propPrefix + prop);\n                                        FRAMEWORK.each([data, validatedOptions, validatedOptionsPrepared], function (index, value) {\n                                            if (isEmptyObj(value[prop])) {\n                                                delete value[prop];\n                                            }\n                                        });\n                                    }\n                                    else if (!templateIsComplex) {\n                                        for (i = 0; i < templateTypes[LEXICON.l]; i++) {\n                                            currType = templateTypes[i];\n                                            templateValueType = type(currType);\n                                            //if currtype is string and starts with restrictedStringPrefix and end with restrictedStringSuffix\n                                            isRestrictedValue = templateValueType == TYPES.s && inArray(currType, possibleTemplateTypes) === -1;\n                                            if (isRestrictedValue) {\n                                                errorPossibleTypes.push(TYPES.s);\n\n                                                //split it into a array which contains all possible values for example: [\"y:yes\", \"n:no\", \"m:maybe\"]\n                                                restrictedStringValuesSplit = currType.split(restrictedStringsSplit);\n                                                errorRestrictedStrings = errorRestrictedStrings.concat(restrictedStringValuesSplit);\n                                                for (v = 0; v < restrictedStringValuesSplit[LEXICON.l]; v++) {\n                                                    //split the possible values into their possibiliteis for example: [\"y\", \"yes\"] -> the first is always the mainPossibility\n                                                    restrictedStringValuesPossibilitiesSplit = restrictedStringValuesSplit[v].split(restrictedStringsPossibilitiesSplit);\n                                                    mainPossibility = restrictedStringValuesPossibilitiesSplit[0];\n                                                    for (j = 0; j < restrictedStringValuesPossibilitiesSplit[LEXICON.l]; j++) {\n                                                        //if any possibility matches with the dataValue, its valid\n                                                        if (dataValue === restrictedStringValuesPossibilitiesSplit[j]) {\n                                                            isValid = true;\n                                                            break;\n                                                        }\n                                                    }\n                                                    if (isValid)\n                                                        break;\n                                                }\n                                            }\n                                            else {\n                                                errorPossibleTypes.push(currType);\n\n                                                if (dataValueType === currType) {\n                                                    isValid = true;\n                                                    break;\n                                                }\n                                            }\n                                        }\n\n                                        if (isValid) {\n                                            isDiff = dataValue !== dataDiffValue;\n\n                                            if (isDiff)\n                                                validatedOptions[prop] = dataValue;\n\n                                            if (isRestrictedValue ? inArray(dataDiffValue, restrictedStringValuesPossibilitiesSplit) < 0 : isDiff)\n                                                validatedOptionsPrepared[prop] = isRestrictedValue ? mainPossibility : dataValue;\n                                        }\n                                        else if (writeErrors) {\n                                            console.warn(error + \" it doesn't accept the type [ \" + dataValueType.toUpperCase() + \" ] with the value of \\\"\" + dataValue + \"\\\".\\r\\n\" +\n                                                \"Accepted types are: [ \" + errorPossibleTypes.join(', ').toUpperCase() + \" ].\" +\n                                                (errorRestrictedStrings[length] > 0 ? \"\\r\\nValid strings are: [ \" + errorRestrictedStrings.join(', ').split(restrictedStringsPossibilitiesSplit).join(', ') + \" ].\" : ''));\n                                        }\n                                        delete data[prop];\n                                    }\n                                }\n                            }\n                        };\n                        checkObjectProps(objectCopy, template, diffObj || {}, validatedOptions, validatedOptionsPrepared);\n\n                        //add values which aren't specified in the template to the finished validated object to prevent them from being discarded\n                        /*\n                        if(keepForeignProps) {\n                            FRAMEWORK.extend(true, validatedOptions, objectCopy);\n                            FRAMEWORK.extend(true, validatedOptionsPrepared, objectCopy);\n                        }\n                        */\n\n                        if (!isEmptyObj(objectCopy) && writeErrors)\n                            console.warn('The following options are discarded due to invalidity:\\r\\n' + window.JSON.stringify(objectCopy, null, 2));\n\n                        return {\n                            _default: validatedOptions,\n                            _prepared: validatedOptionsPrepared\n                        };\n                    }\n                }\n            }());\n\n            /**\n             * Initializes the object which contains global information about the plugin and each instance of it.\n             */\n            function initOverlayScrollbarsStatics() {\n                if (!_pluginsGlobals)\n                    _pluginsGlobals = new OverlayScrollbarsGlobals(_pluginsOptions._defaults);\n                if (!_pluginsAutoUpdateLoop)\n                    _pluginsAutoUpdateLoop = new OverlayScrollbarsAutoUpdateLoop(_pluginsGlobals);\n            }\n\n            /**\n             * The global object for the OverlayScrollbars objects. It contains resources which every OverlayScrollbars object needs. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @param defaultOptions\n             * @constructor\n             */\n            function OverlayScrollbarsGlobals(defaultOptions) {\n                var _base = this;\n                var strOverflow = 'overflow';\n                var strHidden = 'hidden';\n                var strScroll = 'scroll';\n                var bodyElement = FRAMEWORK('body');\n                var scrollbarDummyElement = FRAMEWORK('<div id=\"os-dummy-scrollbar-size\"><div></div></div>');\n                var scrollbarDummyElement0 = scrollbarDummyElement[0];\n                var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));\n\n                bodyElement.append(scrollbarDummyElement);\n                scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)\n\n                var nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement0);\n                var nativeScrollbarIsOverlaid = {\n                    x: nativeScrollbarSize.x === 0,\n                    y: nativeScrollbarSize.y === 0\n                };\n                var msie = (function () {\n                    var ua = window.navigator.userAgent;\n                    var strIndexOf = 'indexOf';\n                    var strSubString = 'substring';\n                    var msie = ua[strIndexOf]('MSIE ');\n                    var trident = ua[strIndexOf]('Trident/');\n                    var edge = ua[strIndexOf]('Edge/');\n                    var rv = ua[strIndexOf]('rv:');\n                    var result;\n                    var parseIntFunc = parseInt;\n\n                    // IE 10 or older => return version number\n                    if (msie > 0)\n                        result = parseIntFunc(ua[strSubString](msie + 5, ua[strIndexOf]('.', msie)), 10);\n\n                    // IE 11 => return version number\n                    else if (trident > 0)\n                        result = parseIntFunc(ua[strSubString](rv + 3, ua[strIndexOf]('.', rv)), 10);\n\n                    // Edge (IE 12+) => return version number\n                    else if (edge > 0)\n                        result = parseIntFunc(ua[strSubString](edge + 5, ua[strIndexOf]('.', edge)), 10);\n\n                    // other browser\n                    return result;\n                })();\n\n                FRAMEWORK.extend(_base, {\n                    defaultOptions: defaultOptions,\n                    msie: msie,\n                    autoUpdateLoop: false,\n                    autoUpdateRecommended: !COMPATIBILITY.mO(),\n                    nativeScrollbarSize: nativeScrollbarSize,\n                    nativeScrollbarIsOverlaid: nativeScrollbarIsOverlaid,\n                    nativeScrollbarStyling: (function () {\n                        var result = false;\n                        scrollbarDummyElement.addClass('os-viewport-native-scrollbars-invisible');\n                        try {\n                            result = (scrollbarDummyElement.css('scrollbar-width') === 'none' && (msie > 9 || !msie)) || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';\n                        } catch (ex) { }\n\n                        //fix opera bug: scrollbar styles will only appear if overflow value is scroll or auto during the activation of the style.\n                        //and set overflow to scroll\n                        //scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();\n                        //return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;\n\n                        return result;\n                    })(),\n                    overlayScrollbarDummySize: { x: 30, y: 30 },\n                    cssCalc: VENDORS._cssPropertyValue('width', 'calc', '(1px)') || null,\n                    restrictedMeasuring: (function () {\n                        //https://bugzilla.mozilla.org/show_bug.cgi?id=1439305\n                        //since 1.11.0 always false -> fixed via CSS (hopefully)\n                        scrollbarDummyElement.css(strOverflow, strHidden);\n                        var scrollSize = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        scrollbarDummyElement.css(strOverflow, 'visible');\n                        var scrollSize2 = {\n                            w: scrollbarDummyElement0[LEXICON.sW],\n                            h: scrollbarDummyElement0[LEXICON.sH]\n                        };\n                        return (scrollSize.w - scrollSize2.w) !== 0 || (scrollSize.h - scrollSize2.h) !== 0;\n                    })(),\n                    rtlScrollBehavior: (function () {\n                        scrollbarDummyElement.css({ 'overflow-y': strHidden, 'overflow-x': strScroll, 'direction': 'rtl' }).scrollLeft(0);\n                        var dummyContainerOffset = scrollbarDummyElement.offset();\n                        var dummyContainerChildOffset = dummyContainerChild.offset();\n                        //https://github.com/KingSora/OverlayScrollbars/issues/187\n                        scrollbarDummyElement.scrollLeft(-999);\n                        var dummyContainerChildOffsetAfterScroll = dummyContainerChild.offset();\n                        return {\n                            //origin direction = determines if the zero scroll position is on the left or right side\n                            //'i' means 'invert' (i === true means that the axis must be inverted to be correct)\n                            //true = on the left side\n                            //false = on the right side\n                            i: dummyContainerOffset.left === dummyContainerChildOffset.left,\n                            //negative = determines if the maximum scroll is positive or negative\n                            //'n' means 'negate' (n === true means that the axis must be negated to be correct)\n                            //true = negative\n                            //false = positive\n                            n: dummyContainerChildOffset.left !== dummyContainerChildOffsetAfterScroll.left\n                        };\n                    })(),\n                    supportTransform: !!VENDORS._cssProperty('transform'),\n                    supportTransition: !!VENDORS._cssProperty('transition'),\n                    supportPassiveEvents: (function () {\n                        var supportsPassive = false;\n                        try {\n                            window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n                                get: function () {\n                                    supportsPassive = true;\n                                }\n                            }));\n                        } catch (e) { }\n                        return supportsPassive;\n                    })(),\n                    supportResizeObserver: !!COMPATIBILITY.rO(),\n                    supportMutationObserver: !!COMPATIBILITY.mO()\n                });\n\n                scrollbarDummyElement.removeAttr(LEXICON.s).remove();\n\n                //Catch zoom event:\n                (function () {\n                    if (nativeScrollbarIsOverlaid.x && nativeScrollbarIsOverlaid.y)\n                        return;\n\n                    var abs = MATH.abs;\n                    var windowWidth = COMPATIBILITY.wW();\n                    var windowHeight = COMPATIBILITY.wH();\n                    var windowDpr = getWindowDPR();\n                    var onResize = function () {\n                        if (INSTANCES().length > 0) {\n                            var newW = COMPATIBILITY.wW();\n                            var newH = COMPATIBILITY.wH();\n                            var deltaW = newW - windowWidth;\n                            var deltaH = newH - windowHeight;\n\n                            if (deltaW === 0 && deltaH === 0)\n                                return;\n\n                            var deltaWRatio = MATH.round(newW / (windowWidth / 100.0));\n                            var deltaHRatio = MATH.round(newH / (windowHeight / 100.0));\n                            var absDeltaW = abs(deltaW);\n                            var absDeltaH = abs(deltaH);\n                            var absDeltaWRatio = abs(deltaWRatio);\n                            var absDeltaHRatio = abs(deltaHRatio);\n                            var newDPR = getWindowDPR();\n\n                            var deltaIsBigger = absDeltaW > 2 && absDeltaH > 2;\n                            var difference = !differenceIsBiggerThanOne(absDeltaWRatio, absDeltaHRatio);\n                            var dprChanged = newDPR !== windowDpr && windowDpr > 0;\n                            var isZoom = deltaIsBigger && difference && dprChanged;\n                            var oldScrollbarSize = _base.nativeScrollbarSize;\n                            var newScrollbarSize;\n\n                            if (isZoom) {\n                                bodyElement.append(scrollbarDummyElement);\n                                newScrollbarSize = _base.nativeScrollbarSize = calcNativeScrollbarSize(scrollbarDummyElement[0]);\n                                scrollbarDummyElement.remove();\n                                if (oldScrollbarSize.x !== newScrollbarSize.x || oldScrollbarSize.y !== newScrollbarSize.y) {\n                                    FRAMEWORK.each(INSTANCES(), function () {\n                                        if (INSTANCES(this))\n                                            INSTANCES(this).update('zoom');\n                                    });\n                                }\n                            }\n\n                            windowWidth = newW;\n                            windowHeight = newH;\n                            windowDpr = newDPR;\n                        }\n                    };\n\n                    function differenceIsBiggerThanOne(valOne, valTwo) {\n                        var absValOne = abs(valOne);\n                        var absValTwo = abs(valTwo);\n                        return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\n                    }\n\n                    function getWindowDPR() {\n                        var dDPI = window.screen.deviceXDPI || 0;\n                        var sDPI = window.screen.logicalXDPI || 1;\n                        return window.devicePixelRatio || (dDPI / sDPI);\n                    }\n\n                    FRAMEWORK(window).on('resize', onResize);\n                })();\n\n                function calcNativeScrollbarSize(measureElement) {\n                    return {\n                        x: measureElement[LEXICON.oH] - measureElement[LEXICON.cH],\n                        y: measureElement[LEXICON.oW] - measureElement[LEXICON.cW]\n                    };\n                }\n            }\n\n            /**\n             * The object which manages the auto update loop for all OverlayScrollbars objects. This object is initialized only once: if the first OverlayScrollbars object gets initialized.\n             * @constructor\n             */\n            function OverlayScrollbarsAutoUpdateLoop(globals) {\n                var _base = this;\n                var _inArray = FRAMEWORK.inArray;\n                var _getNow = COMPATIBILITY.now;\n                var _strAutoUpdate = 'autoUpdate';\n                var _strAutoUpdateInterval = _strAutoUpdate + 'Interval';\n                var _strLength = LEXICON.l;\n                var _loopingInstances = [];\n                var _loopingInstancesIntervalCache = [];\n                var _loopIsActive = false;\n                var _loopIntervalDefault = 33;\n                var _loopInterval = _loopIntervalDefault;\n                var _loopTimeOld = _getNow();\n                var _loopID;\n\n\n                /**\n                 * The auto update loop which will run every 50 milliseconds or less if the update interval of a instance is lower than 50 milliseconds.\n                 */\n                var loop = function () {\n                    if (_loopingInstances[_strLength] > 0 && _loopIsActive) {\n                        _loopID = COMPATIBILITY.rAF()(function () {\n                            loop();\n                        });\n                        var timeNew = _getNow();\n                        var timeDelta = timeNew - _loopTimeOld;\n                        var lowestInterval;\n                        var instance;\n                        var instanceOptions;\n                        var instanceAutoUpdateAllowed;\n                        var instanceAutoUpdateInterval;\n                        var now;\n\n                        if (timeDelta > _loopInterval) {\n                            _loopTimeOld = timeNew - (timeDelta % _loopInterval);\n                            lowestInterval = _loopIntervalDefault;\n                            for (var i = 0; i < _loopingInstances[_strLength]; i++) {\n                                instance = _loopingInstances[i];\n                                if (instance !== undefined) {\n                                    instanceOptions = instance.options();\n                                    instanceAutoUpdateAllowed = instanceOptions[_strAutoUpdate];\n                                    instanceAutoUpdateInterval = MATH.max(1, instanceOptions[_strAutoUpdateInterval]);\n                                    now = _getNow();\n\n                                    if ((instanceAutoUpdateAllowed === true || instanceAutoUpdateAllowed === null) && (now - _loopingInstancesIntervalCache[i]) > instanceAutoUpdateInterval) {\n                                        instance.update('auto');\n                                        _loopingInstancesIntervalCache[i] = new Date(now += instanceAutoUpdateInterval);\n                                    }\n\n                                    lowestInterval = MATH.max(1, MATH.min(lowestInterval, instanceAutoUpdateInterval));\n                                }\n                            }\n                            _loopInterval = lowestInterval;\n                        }\n                    } else {\n                        _loopInterval = _loopIntervalDefault;\n                    }\n                };\n\n                /**\n                 * Add OverlayScrollbars instance to the auto update loop. Only successful if the instance isn't already added.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.add = function (instance) {\n                    if (_inArray(instance, _loopingInstances) === -1) {\n                        _loopingInstances.push(instance);\n                        _loopingInstancesIntervalCache.push(_getNow());\n                        if (_loopingInstances[_strLength] > 0 && !_loopIsActive) {\n                            _loopIsActive = true;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            loop();\n                        }\n                    }\n                };\n\n                /**\n                 * Remove OverlayScrollbars instance from the auto update loop. Only successful if the instance was added before.\n                 * @param instance The instance which shall be updated in a loop automatically.\n                 */\n                _base.remove = function (instance) {\n                    var index = _inArray(instance, _loopingInstances);\n                    if (index > -1) {\n                        //remove from loopingInstances list\n                        _loopingInstancesIntervalCache.splice(index, 1);\n                        _loopingInstances.splice(index, 1);\n\n                        //correct update loop behavior\n                        if (_loopingInstances[_strLength] === 0 && _loopIsActive) {\n                            _loopIsActive = false;\n                            globals.autoUpdateLoop = _loopIsActive;\n                            if (_loopID !== undefined) {\n                                COMPATIBILITY.cAF()(_loopID);\n                                _loopID = -1;\n                            }\n                        }\n                    }\n                };\n            }\n\n            /**\n             * A object which manages the scrollbars visibility of the target element.\n             * @param pluginTargetElement The element from which the scrollbars shall be hidden.\n             * @param options The custom options.\n             * @param extensions The custom extensions.\n             * @param globals\n             * @param autoUpdateLoop\n             * @returns {*}\n             * @constructor\n             */\n            function OverlayScrollbarsInstance(pluginTargetElement, options, extensions, globals, autoUpdateLoop) {\n                //shortcuts\n                var type = COMPATIBILITY.type;\n                var inArray = FRAMEWORK.inArray;\n                var each = FRAMEWORK.each;\n\n                //make correct instanceof\n                var _base = new _plugin();\n                var _frameworkProto = FRAMEWORK[LEXICON.p];\n\n                //if passed element is no HTML element: skip and return\n                if (!isHTMLElement(pluginTargetElement))\n                    return;\n\n                //if passed element is already initialized: set passed options if there are any and return its instance\n                if (INSTANCES(pluginTargetElement)) {\n                    var inst = INSTANCES(pluginTargetElement);\n                    inst.options(options);\n                    return inst;\n                }\n\n                //globals:\n                var _nativeScrollbarIsOverlaid;\n                var _overlayScrollbarDummySize;\n                var _rtlScrollBehavior;\n                var _autoUpdateRecommended;\n                var _msieVersion;\n                var _nativeScrollbarStyling;\n                var _cssCalc;\n                var _nativeScrollbarSize;\n                var _supportTransition;\n                var _supportTransform;\n                var _supportPassiveEvents;\n                var _supportResizeObserver;\n                var _supportMutationObserver;\n                var _restrictedMeasuring;\n\n                //general readonly:\n                var _initialized;\n                var _destroyed;\n                var _isTextarea;\n                var _isBody;\n                var _documentMixed;\n                var _domExists;\n\n                //general:\n                var _isBorderBox;\n                var _sizeAutoObserverAdded;\n                var _paddingX;\n                var _paddingY;\n                var _borderX;\n                var _borderY;\n                var _marginX;\n                var _marginY;\n                var _isRTL;\n                var _sleeping;\n                var _contentBorderSize = {};\n                var _scrollHorizontalInfo = {};\n                var _scrollVerticalInfo = {};\n                var _viewportSize = {};\n                var _nativeScrollbarMinSize = {};\n\n                //naming:\t\n                var _strMinusHidden = '-hidden';\n                var _strMarginMinus = 'margin-';\n                var _strPaddingMinus = 'padding-';\n                var _strBorderMinus = 'border-';\n                var _strTop = 'top';\n                var _strRight = 'right';\n                var _strBottom = 'bottom';\n                var _strLeft = 'left';\n                var _strMinMinus = 'min-';\n                var _strMaxMinus = 'max-';\n                var _strWidth = 'width';\n                var _strHeight = 'height';\n                var _strFloat = 'float';\n                var _strEmpty = '';\n                var _strAuto = 'auto';\n                var _strSync = 'sync';\n                var _strScroll = 'scroll';\n                var _strHundredPercent = '100%';\n                var _strX = 'x';\n                var _strY = 'y';\n                var _strDot = '.';\n                var _strSpace = ' ';\n                var _strScrollbar = 'scrollbar';\n                var _strMinusHorizontal = '-horizontal';\n                var _strMinusVertical = '-vertical';\n                var _strScrollLeft = _strScroll + 'Left';\n                var _strScrollTop = _strScroll + 'Top';\n                var _strMouseTouchDownEvent = 'mousedown touchstart';\n                var _strMouseTouchUpEvent = 'mouseup touchend touchcancel';\n                var _strMouseTouchMoveEvent = 'mousemove touchmove';\n                var _strMouseEnter = 'mouseenter';\n                var _strMouseLeave = 'mouseleave';\n                var _strKeyDownEvent = 'keydown';\n                var _strKeyUpEvent = 'keyup';\n                var _strSelectStartEvent = 'selectstart';\n                var _strTransitionEndEvent = 'transitionend webkitTransitionEnd oTransitionEnd';\n                var _strResizeObserverProperty = '__overlayScrollbarsRO__';\n\n                //class names:\t\n                var _cassNamesPrefix = 'os-';\n                var _classNameHTMLElement = _cassNamesPrefix + 'html';\n                var _classNameHostElement = _cassNamesPrefix + 'host';\n                var _classNameHostElementForeign = _classNameHostElement + '-foreign';\n                var _classNameHostTextareaElement = _classNameHostElement + '-textarea';\n                var _classNameHostScrollbarHorizontalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusHorizontal + _strMinusHidden;\n                var _classNameHostScrollbarVerticalHidden = _classNameHostElement + '-' + _strScrollbar + _strMinusVertical + _strMinusHidden;\n                var _classNameHostTransition = _classNameHostElement + '-transition';\n                var _classNameHostRTL = _classNameHostElement + '-rtl';\n                var _classNameHostResizeDisabled = _classNameHostElement + '-resize-disabled';\n                var _classNameHostScrolling = _classNameHostElement + '-scrolling';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflow = _classNameHostElement + '-overflow';\n                var _classNameHostOverflowX = _classNameHostOverflow + '-x';\n                var _classNameHostOverflowY = _classNameHostOverflow + '-y';\n                var _classNameTextareaElement = _cassNamesPrefix + 'textarea';\n                var _classNameTextareaCoverElement = _classNameTextareaElement + '-cover';\n                var _classNamePaddingElement = _cassNamesPrefix + 'padding';\n                var _classNameViewportElement = _cassNamesPrefix + 'viewport';\n                var _classNameViewportNativeScrollbarsInvisible = _classNameViewportElement + '-native-scrollbars-invisible';\n                var _classNameViewportNativeScrollbarsOverlaid = _classNameViewportElement + '-native-scrollbars-overlaid';\n                var _classNameContentElement = _cassNamesPrefix + 'content';\n                var _classNameContentArrangeElement = _cassNamesPrefix + 'content-arrange';\n                var _classNameContentGlueElement = _cassNamesPrefix + 'content-glue';\n                var _classNameSizeAutoObserverElement = _cassNamesPrefix + 'size-auto-observer';\n                var _classNameResizeObserverElement = _cassNamesPrefix + 'resize-observer';\n                var _classNameResizeObserverItemElement = _cassNamesPrefix + 'resize-observer-item';\n                var _classNameResizeObserverItemFinalElement = _classNameResizeObserverItemElement + '-final';\n                var _classNameTextInherit = _cassNamesPrefix + 'text-inherit';\n                var _classNameScrollbar = _cassNamesPrefix + _strScrollbar;\n                var _classNameScrollbarTrack = _classNameScrollbar + '-track';\n                var _classNameScrollbarTrackOff = _classNameScrollbarTrack + '-off';\n                var _classNameScrollbarHandle = _classNameScrollbar + '-handle';\n                var _classNameScrollbarHandleOff = _classNameScrollbarHandle + '-off';\n                var _classNameScrollbarUnusable = _classNameScrollbar + '-unusable';\n                var _classNameScrollbarAutoHidden = _classNameScrollbar + '-' + _strAuto + _strMinusHidden;\n                var _classNameScrollbarCorner = _classNameScrollbar + '-corner';\n                var _classNameScrollbarCornerResize = _classNameScrollbarCorner + '-resize';\n                var _classNameScrollbarCornerResizeB = _classNameScrollbarCornerResize + '-both';\n                var _classNameScrollbarCornerResizeH = _classNameScrollbarCornerResize + _strMinusHorizontal;\n                var _classNameScrollbarCornerResizeV = _classNameScrollbarCornerResize + _strMinusVertical;\n                var _classNameScrollbarHorizontal = _classNameScrollbar + _strMinusHorizontal;\n                var _classNameScrollbarVertical = _classNameScrollbar + _strMinusVertical;\n                var _classNameDragging = _cassNamesPrefix + 'dragging';\n                var _classNameThemeNone = _cassNamesPrefix + 'theme-none';\n                var _classNamesDynamicDestroy = [\n                    _classNameViewportNativeScrollbarsInvisible,\n                    _classNameViewportNativeScrollbarsOverlaid,\n                    _classNameScrollbarTrackOff,\n                    _classNameScrollbarHandleOff,\n                    _classNameScrollbarUnusable,\n                    _classNameScrollbarAutoHidden,\n                    _classNameScrollbarCornerResize,\n                    _classNameScrollbarCornerResizeB,\n                    _classNameScrollbarCornerResizeH,\n                    _classNameScrollbarCornerResizeV,\n                    _classNameDragging].join(_strSpace);\n\n                //callbacks:\t\n                var _callbacksInitQeueue = [];\n\n                //attrs viewport shall inherit from target\t\n                var _viewportAttrsFromTarget = [LEXICON.ti];\n\n                //options:\t\n                var _defaultOptions;\n                var _currentOptions;\n                var _currentPreparedOptions;\n\n                //extensions:\t\n                var _extensions = {};\n                var _extensionsPrivateMethods = 'added removed on contract';\n\n                //update\t\n                var _lastUpdateTime;\n                var _swallowedUpdateHints = {};\n                var _swallowedUpdateTimeout;\n                var _swallowUpdateLag = 42;\n                var _updateOnLoadEventName = 'load';\n                var _updateOnLoadElms = [];\n\n                //DOM elements:\t\n                var _windowElement;\n                var _documentElement;\n                var _htmlElement;\n                var _bodyElement;\n                var _targetElement;                     //the target element of this OverlayScrollbars object\t\n                var _hostElement;                       //the host element of this OverlayScrollbars object -> may be the same as targetElement\t\n                var _sizeAutoObserverElement;           //observes size auto changes\t\n                var _sizeObserverElement;               //observes size and padding changes\t\n                var _paddingElement;                    //manages the padding\t\n                var _viewportElement;                   //is the viewport of our scrollbar model\t\n                var _contentElement;                    //the element which holds the content\t\n                var _contentArrangeElement;             //is needed for correct sizing of the content element (only if native scrollbars are overlays)\t\n                var _contentGlueElement;                //has always the size of the content element\t\n                var _textareaCoverElement;              //only applied if target is a textarea element. Used for correct size calculation and for prevention of uncontrolled scrolling\t\n                var _scrollbarCornerElement;\n                var _scrollbarHorizontalElement;\n                var _scrollbarHorizontalTrackElement;\n                var _scrollbarHorizontalHandleElement;\n                var _scrollbarVerticalElement;\n                var _scrollbarVerticalTrackElement;\n                var _scrollbarVerticalHandleElement;\n                var _windowElementNative;\n                var _documentElementNative;\n                var _targetElementNative;\n                var _hostElementNative;\n                var _sizeAutoObserverElementNative;\n                var _sizeObserverElementNative;\n                var _paddingElementNative;\n                var _viewportElementNative;\n                var _contentElementNative;\n\n                //Cache:\t\n                var _hostSizeCache;\n                var _contentScrollSizeCache;\n                var _arrangeContentSizeCache;\n                var _hasOverflowCache;\n                var _hideOverflowCache;\n                var _widthAutoCache;\n                var _heightAutoCache;\n                var _cssBoxSizingCache;\n                var _cssPaddingCache;\n                var _cssBorderCache;\n                var _cssMarginCache;\n                var _cssDirectionCache;\n                var _cssDirectionDetectedCache;\n                var _paddingAbsoluteCache;\n                var _clipAlwaysCache;\n                var _contentGlueSizeCache;\n                var _overflowBehaviorCache;\n                var _overflowAmountCache;\n                var _ignoreOverlayScrollbarHidingCache;\n                var _autoUpdateCache;\n                var _sizeAutoCapableCache;\n                var _contentElementScrollSizeChangeDetectedCache;\n                var _hostElementSizeChangeDetectedCache;\n                var _scrollbarsVisibilityCache;\n                var _scrollbarsAutoHideCache;\n                var _scrollbarsClickScrollingCache;\n                var _scrollbarsDragScrollingCache;\n                var _resizeCache;\n                var _normalizeRTLCache;\n                var _classNameCache;\n                var _oldClassName;\n                var _textareaAutoWrappingCache;\n                var _textareaInfoCache;\n                var _textareaSizeCache;\n                var _textareaDynHeightCache;\n                var _textareaDynWidthCache;\n                var _bodyMinSizeCache;\n                var _updateAutoCache = {};\n\n                //MutationObserver:\t\n                var _mutationObserverHost;\n                var _mutationObserverContent;\n                var _mutationObserverHostCallback;\n                var _mutationObserverContentCallback;\n                var _mutationObserversConnected;\n                var _mutationObserverAttrsTextarea = ['wrap', 'cols', 'rows'];\n                var _mutationObserverAttrsHost = [LEXICON.i, LEXICON.c, LEXICON.s, 'open'].concat(_viewportAttrsFromTarget);\n\n                //events:\t\n                var _destroyEvents = [];\n\n                //textarea:\t\n                var _textareaHasFocus;\n\n                //scrollbars:\t\n                var _scrollbarsAutoHideTimeoutId;\n                var _scrollbarsAutoHideMoveTimeoutId;\n                var _scrollbarsAutoHideDelay;\n                var _scrollbarsAutoHideNever;\n                var _scrollbarsAutoHideScroll;\n                var _scrollbarsAutoHideMove;\n                var _scrollbarsAutoHideLeave;\n                var _scrollbarsHandleHovered;\n                var _scrollbarsHandlesDefineScrollPos;\n\n                //resize\t\n                var _resizeNone;\n                var _resizeBoth;\n                var _resizeHorizontal;\n                var _resizeVertical;\n\n\n                //==== Event Listener ====//\t\n\n                /**\t\n                 * Adds or removes a event listener from the given element. \t\n                 * @param element The element to which the event listener shall be applied or removed.\t\n                 * @param eventNames The name(s) of the events.\t\n                 * @param listener The method which shall be called.\t\n                 * @param remove True if the handler shall be removed, false or undefined if the handler shall be added.\t\n                 * @param passiveOrOptions The options for the event.\n                 */\n                function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {\n                    var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);\n                    var method = remove ? 'removeEventListener' : 'addEventListener';\n                    var onOff = remove ? 'off' : 'on';\n                    var events = collected ? false : eventNames.split(_strSpace)\n                    var i = 0;\n\n                    var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);\n                    var passive = (_supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive) : passiveOrOptions)) || false;\n                    var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);\n                    var nativeParam = _supportPassiveEvents ? {\n                        passive: passive,\n                        capture: capture,\n                    } : capture;\n\n                    if (collected) {\n                        for (; i < eventNames[LEXICON.l]; i++)\n                            setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);\n                    }\n                    else {\n                        for (; i < events[LEXICON.l]; i++) {\n                            if(_supportPassiveEvents) {\n                                element[0][method](events[i], listener, nativeParam);\n                            }\n                            else {\n                                element[onOff](events[i], listener);\n                            }     \n                        }\n                    }\n                }\n\n\n                function addDestroyEventListener(element, eventNames, listener, passive) {\n                    setupResponsiveEventListener(element, eventNames, listener, false, passive);\n                    _destroyEvents.push(COMPATIBILITY.bind(setupResponsiveEventListener, 0, element, eventNames, listener, true, passive));\n                }\n\n                //==== Resize Observer ====//\n\n                /**\n                 * Adds or removes a resize observer from the given element.\n                 * @param targetElement The element to which the resize observer shall be added or removed.\n                 * @param onElementResizedCallback The callback which is fired every time the resize observer registers a size change or false / undefined if the resizeObserver shall be removed.\n                 */\n                function setupResizeObserver(targetElement, onElementResizedCallback) {\n                    if (targetElement) {\n                        var resizeObserver = COMPATIBILITY.rO();\n                        var strAnimationStartEvent = 'animationstart mozAnimationStart webkitAnimationStart MSAnimationStart';\n                        var strChildNodes = 'childNodes';\n                        var constScroll = 3333333;\n                        var callback = function () {\n                            targetElement[_strScrollTop](constScroll)[_strScrollLeft](_isRTL ? _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll : constScroll);\n                            onElementResizedCallback();\n                        };\n                        //add resize observer:\n                        if (onElementResizedCallback) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.addClass('observed').append(generateDiv(_classNameResizeObserverElement)).contents()[0];\n                                var observer = element[_strResizeObserverProperty] = new resizeObserver(callback);\n                                observer.observe(element);\n                            }\n                            else {\n                                if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                                    targetElement.prepend(\n                                        generateDiv(_classNameResizeObserverElement,\n                                            generateDiv({ c: _classNameResizeObserverItemElement, dir: 'ltr' },\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv(_classNameResizeObserverItemFinalElement)\n                                                ) +\n                                                generateDiv(_classNameResizeObserverItemElement,\n                                                    generateDiv({ c: _classNameResizeObserverItemFinalElement, style: 'width: 200%; height: 200%' })\n                                                )\n                                            )\n                                        )\n                                    );\n\n                                    var observerElement = targetElement[0][strChildNodes][0][strChildNodes][0];\n                                    var shrinkElement = FRAMEWORK(observerElement[strChildNodes][1]);\n                                    var expandElement = FRAMEWORK(observerElement[strChildNodes][0]);\n                                    var expandElementChild = FRAMEWORK(expandElement[0][strChildNodes][0]);\n                                    var widthCache = observerElement[LEXICON.oW];\n                                    var heightCache = observerElement[LEXICON.oH];\n                                    var isDirty;\n                                    var rAFId;\n                                    var currWidth;\n                                    var currHeight;\n                                    var factor = 2;\n                                    var nativeScrollbarSize = globals.nativeScrollbarSize; //care don't make changes to this object!!!\n                                    var reset = function () {\n                                        /*\n                                         var sizeResetWidth = observerElement[LEXICON.oW] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var sizeResetHeight = observerElement[LEXICON.oH] + nativeScrollbarSize.x * factor + nativeScrollbarSize.y * factor + _overlayScrollbarDummySize.x + _overlayScrollbarDummySize.y;\n                                         var expandChildCSS = {};\n                                         expandChildCSS[_strWidth] = sizeResetWidth;\n                                         expandChildCSS[_strHeight] = sizeResetHeight;\n                                         expandElementChild.css(expandChildCSS);\n\n\n                                         expandElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         shrinkElement[_strScrollLeft](sizeResetWidth)[_strScrollTop](sizeResetHeight);\n                                         */\n                                        expandElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                        shrinkElement[_strScrollLeft](constScroll)[_strScrollTop](constScroll);\n                                    };\n                                    var onResized = function () {\n                                        rAFId = 0;\n                                        if (!isDirty)\n                                            return;\n\n                                        widthCache = currWidth;\n                                        heightCache = currHeight;\n                                        callback();\n                                    };\n                                    var onScroll = function (event) {\n                                        currWidth = observerElement[LEXICON.oW];\n                                        currHeight = observerElement[LEXICON.oH];\n                                        isDirty = currWidth != widthCache || currHeight != heightCache;\n\n                                        if (event && isDirty && !rAFId) {\n                                            COMPATIBILITY.cAF()(rAFId);\n                                            rAFId = COMPATIBILITY.rAF()(onResized);\n                                        }\n                                        else if (!event)\n                                            onResized();\n\n                                        reset();\n                                        if (event) {\n                                            COMPATIBILITY.prvD(event);\n                                            COMPATIBILITY.stpP(event);\n                                        }\n                                        return false;\n                                    };\n                                    var expandChildCSS = {};\n                                    var observerElementCSS = {};\n\n                                    setTopRightBottomLeft(observerElementCSS, _strEmpty, [\n                                        -((nativeScrollbarSize.y + 1) * factor),\n                                        nativeScrollbarSize.x * -factor,\n                                        nativeScrollbarSize.y * -factor,\n                                        -((nativeScrollbarSize.x + 1) * factor)\n                                    ]);\n\n                                    FRAMEWORK(observerElement).css(observerElementCSS);\n                                    expandElement.on(_strScroll, onScroll);\n                                    shrinkElement.on(_strScroll, onScroll);\n                                    targetElement.on(strAnimationStartEvent, function () {\n                                        onScroll(false);\n                                    });\n                                    //lets assume that the divs will never be that large and a constant value is enough\n                                    expandChildCSS[_strWidth] = constScroll;\n                                    expandChildCSS[_strHeight] = constScroll;\n                                    expandElementChild.css(expandChildCSS);\n\n                                    reset();\n                                }\n                                else {\n                                    var attachEvent = _documentElementNative.attachEvent;\n                                    var isIE = _msieVersion !== undefined;\n                                    if (attachEvent) {\n                                        targetElement.prepend(generateDiv(_classNameResizeObserverElement));\n                                        findFirst(targetElement, _strDot + _classNameResizeObserverElement)[0].attachEvent('onresize', callback);\n                                    }\n                                    else {\n                                        var obj = _documentElementNative.createElement(TYPES.o);\n                                        obj.setAttribute(LEXICON.ti, '-1');\n                                        obj.setAttribute(LEXICON.c, _classNameResizeObserverElement);\n                                        obj.onload = function () {\n                                            var wnd = this.contentDocument.defaultView;\n                                            wnd.addEventListener('resize', callback);\n                                            wnd.document.documentElement.style.display = 'none';\n                                        };\n                                        obj.type = 'text/html';\n                                        if (isIE)\n                                            targetElement.prepend(obj);\n                                        obj.data = 'about:blank';\n                                        if (!isIE)\n                                            targetElement.prepend(obj);\n                                        targetElement.on(strAnimationStartEvent, callback);\n                                    }\n                                }\n                            }\n\n                            if (targetElement[0] === _sizeObserverElementNative) {\n                                var directionChanged = function () {\n                                    var dir = _hostElement.css('direction');\n                                    var css = {};\n                                    var scrollLeftValue = 0;\n                                    var result = false;\n                                    if (dir !== _cssDirectionDetectedCache) {\n                                        if (dir === 'ltr') {\n                                            css[_strLeft] = 0;\n                                            css[_strRight] = _strAuto;\n                                            scrollLeftValue = constScroll;\n                                        }\n                                        else {\n                                            css[_strLeft] = _strAuto;\n                                            css[_strRight] = 0;\n                                            scrollLeftValue = _rtlScrollBehavior.n ? -constScroll : _rtlScrollBehavior.i ? 0 : constScroll;\n                                        }\n                                        //execution order is important for IE!!!\n                                        _sizeObserverElement.children().eq(0).css(css);\n                                        _sizeObserverElement[_strScrollLeft](scrollLeftValue)[_strScrollTop](constScroll);\n                                        _cssDirectionDetectedCache = dir;\n                                        result = true;\n                                    }\n                                    return result;\n                                };\n                                directionChanged();\n                                addDestroyEventListener(targetElement, _strScroll, function (event) {\n                                    if (directionChanged())\n                                        update();\n                                    COMPATIBILITY.prvD(event);\n                                    COMPATIBILITY.stpP(event);\n                                    return false;\n                                });\n                            }\n                        }\n                        //remove resize observer:\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                var resizeObserverObj = element[_strResizeObserverProperty];\n                                if (resizeObserverObj) {\n                                    resizeObserverObj.disconnect();\n                                    delete element[_strResizeObserverProperty];\n                                }\n                            }\n                            else {\n                                remove(targetElement.children(_strDot + _classNameResizeObserverElement).eq(0));\n                            }\n                        }\n                    }\n                }\n\n                /**\n                 * Freezes or unfreezes the given resize observer.\n                 * @param targetElement The element to which the target resize observer is applied.\n                 * @param freeze True if the resize observer shall be frozen, false otherwise.\n                 \n                function freezeResizeObserver(targetElement, freeze) {\n                    if (targetElement !== undefined) {\n                        if(freeze) {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].unobserve(element);\n                            }\n                            else {\n                                targetElement = targetElement.children(_strDot + _classNameResizeObserverElement).eq(0);\n                                var w = targetElement.css(_strWidth);\n                                var h = targetElement.css(_strHeight);\n                                var css = {};\n                                css[_strWidth] = w;\n                                css[_strHeight] = h;\n                                targetElement.css(css);\n                            }\n                        }\n                        else {\n                            if (_supportResizeObserver) {\n                                var element = targetElement.contents()[0];\n                                element[_strResizeObserverProperty].observe(element);\n                            }\n                            else {\n                                var css = { };\n                                css[_strHeight] = _strEmpty;\n                                css[_strWidth] = _strEmpty;\n                                targetElement.children(_strDot + _classNameResizeObserverElement).eq(0).css(css);\n                            }\n                        }\n                    }\n                }\n                */\n\n\n                //==== Mutation Observers ====//\n\n                /**\n                 * Creates MutationObservers for the host and content Element if they are supported.\n                 */\n                function createMutationObservers() {\n                    if (_supportMutationObserver) {\n                        var mutationObserverContentLag = 11;\n                        var mutationObserver = COMPATIBILITY.mO();\n                        var contentLastUpdate = COMPATIBILITY.now();\n                        var mutationTarget;\n                        var mutationAttrName;\n                        var mutationIsClass;\n                        var oldMutationVal;\n                        var newClassVal;\n                        var hostClassNameRegex;\n                        var contentTimeout;\n                        var now;\n                        var sizeAuto;\n                        var action;\n\n                        _mutationObserverHostCallback = function (mutations) {\n\n                            var doUpdate = false;\n                            var doUpdateForce = false;\n                            var mutation;\n                            var mutatedAttrs = [];\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    mutationTarget = mutation.target;\n                                    mutationAttrName = mutation.attributeName;\n                                    mutationIsClass = mutationAttrName === LEXICON.c;\n                                    oldMutationVal = mutation.oldValue;\n                                    newClassVal = mutationTarget.className;\n\n                                    if (_domExists && mutationIsClass && !doUpdateForce) {\n                                        // if old class value contains _classNameHostElementForeign and new class value doesn't\n                                        if (oldMutationVal.indexOf(_classNameHostElementForeign) > -1 && newClassVal.indexOf(_classNameHostElementForeign) < 0) {\n                                            hostClassNameRegex = createHostClassNameRegExp(true);\n                                            _hostElementNative.className = newClassVal.split(_strSpace).concat(oldMutationVal.split(_strSpace).filter(function (name) {\n                                                return name.match(hostClassNameRegex);\n                                            })).join(_strSpace);\n                                            doUpdate = doUpdateForce = true;\n                                        }\n                                    }\n\n                                    if (!doUpdate) {\n                                        doUpdate = mutationIsClass\n                                            ? hostClassNamesChanged(oldMutationVal, newClassVal)\n                                            : mutationAttrName === LEXICON.s\n                                                ? oldMutationVal !== mutationTarget[LEXICON.s].cssText\n                                                : true;\n                                    }\n\n                                    mutatedAttrs.push(mutationAttrName);\n                                });\n\n                                updateViewportAttrsFromTarget(mutatedAttrs);\n\n                                if (doUpdate)\n                                    _base.update(doUpdateForce || _strAuto);\n                            }\n                            return doUpdate;\n                        };\n                        _mutationObserverContentCallback = function (mutations) {\n                            var doUpdate = false;\n                            var mutation;\n\n                            if (_initialized && !_sleeping) {\n                                each(mutations, function () {\n                                    mutation = this;\n                                    doUpdate = isUnknownMutation(mutation);\n                                    return !doUpdate;\n                                });\n\n                                if (doUpdate) {\n                                    now = COMPATIBILITY.now();\n                                    sizeAuto = (_heightAutoCache || _widthAutoCache);\n                                    action = function () {\n                                        if (!_destroyed) {\n                                            contentLastUpdate = now;\n\n                                            //if cols, rows or wrap attr was changed\n                                            if (_isTextarea)\n                                                textareaUpdate();\n\n                                            if (sizeAuto)\n                                                update();\n                                            else\n                                                _base.update(_strAuto);\n                                        }\n                                    };\n                                    clearTimeout(contentTimeout);\n                                    if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)\n                                        action();\n                                    else\n                                        contentTimeout = setTimeout(action, mutationObserverContentLag);\n                                }\n                            }\n                            return doUpdate;\n                        }\n\n                        _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);\n                        _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);\n                    }\n                }\n\n                /**\n                 * Connects the MutationObservers if they are supported.\n                 */\n                function connectMutationObservers() {\n                    if (_supportMutationObserver && !_mutationObserversConnected) {\n                        _mutationObserverHost.observe(_hostElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            attributeFilter: _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserverContent.observe(_isTextarea ? _targetElementNative : _contentElementNative, {\n                            attributes: true,\n                            attributeOldValue: true,\n                            subtree: !_isTextarea,\n                            childList: !_isTextarea,\n                            characterData: !_isTextarea,\n                            attributeFilter: _isTextarea ? _mutationObserverAttrsTextarea : _mutationObserverAttrsHost\n                        });\n\n                        _mutationObserversConnected = true;\n                    }\n                }\n\n                /**\n                 * Disconnects the MutationObservers if they are supported.\n                 */\n                function disconnectMutationObservers() {\n                    if (_supportMutationObserver && _mutationObserversConnected) {\n                        _mutationObserverHost.disconnect();\n                        _mutationObserverContent.disconnect();\n\n                        _mutationObserversConnected = false;\n                    }\n                }\n\n\n                //==== Events of elements ====//\n\n                /**\n                 * This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!\n                 * It refreshes the hostResizedEventArgs and the hostSizeResizeCache.\n                 * If there are any size changes, the update method gets called.\n                 */\n                function hostOnResized() {\n                    if (!_sleeping) {\n                        var changed;\n                        var hostSize = {\n                            w: _sizeObserverElementNative[LEXICON.sW],\n                            h: _sizeObserverElementNative[LEXICON.sH]\n                        };\n\n                        changed = checkCache(hostSize, _hostElementSizeChangeDetectedCache);\n                        _hostElementSizeChangeDetectedCache = hostSize;\n                        if (changed)\n                            update({ _hostSizeChanged: true });\n                    }\n                }\n\n                /**\n                 * The mouse enter event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseEnter() {\n                    if (_scrollbarsAutoHideLeave)\n                        refreshScrollbarsAutoHide(true);\n                }\n\n                /**\n                 * The mouse leave event of the host element. This event is only needed for the autoHide feature.\n                 */\n                function hostOnMouseLeave() {\n                    if (_scrollbarsAutoHideLeave && !_bodyElement.hasClass(_classNameDragging))\n                        refreshScrollbarsAutoHide(false);\n                }\n\n                /**\n                 * The mouse move event of the host element. This event is only needed for the autoHide \"move\" feature.\n                 */\n                function hostOnMouseMove() {\n                    if (_scrollbarsAutoHideMove) {\n                        refreshScrollbarsAutoHide(true);\n                        clearTimeout(_scrollbarsAutoHideMoveTimeoutId);\n                        _scrollbarsAutoHideMoveTimeoutId = setTimeout(function () {\n                            if (_scrollbarsAutoHideMove && !_destroyed)\n                                refreshScrollbarsAutoHide(false);\n                        }, 100);\n                    }\n                }\n\n                /**\n                 * Prevents text from deselection if attached to the document element on the mousedown event of a DOM element.\n                 * @param event The select start event.\n                 */\n                function documentOnSelectStart(event) {\n                    COMPATIBILITY.prvD(event);\n                    return false;\n                }\n\n                /**\t\n                 * A callback which will be called after a element has loaded.\t\n                 */\n                function updateOnLoadCallback(event) {\n                    var elm = FRAMEWORK(event.target);\n\n                    eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                        if (elm.is(updateOnLoadSelector)) {\n                            update({ _contentSizeChanged: true });\n                        }\n                    });\n                }\n\n                /**\n                * Adds or removes mouse & touch events of the host element. (for handling auto-hiding of the scrollbars)\n                * @param destroy Indicates whether the events shall be added or removed.\n                */\n                function setupHostMouseTouchEvents(destroy) {\n                    if (!destroy)\n                        setupHostMouseTouchEvents(true);\n\n                    setupResponsiveEventListener(_hostElement,\n                        _strMouseTouchMoveEvent.split(_strSpace)[0],\n                        hostOnMouseMove,\n                        (!_scrollbarsAutoHideMove || destroy), true);\n                    setupResponsiveEventListener(_hostElement,\n                        [_strMouseEnter, _strMouseLeave],\n                        [hostOnMouseEnter, hostOnMouseLeave],\n                        (!_scrollbarsAutoHideLeave || destroy), true);\n\n                    //if the plugin is initialized and the mouse is over the host element, make the scrollbars visible\n                    if (!_initialized && !destroy)\n                        _hostElement.one('mouseover', hostOnMouseEnter);\n                }\n\n\n                //==== Update Detection ====//\n\n                /**\n                 * Measures the min width and min height of the body element and refreshes the related cache.\n                 * @returns {boolean} True if the min width or min height has changed, false otherwise.\n                 */\n                function bodyMinSizeChanged() {\n                    var bodyMinSize = {};\n                    if (_isBody && _contentArrangeElement) {\n                        bodyMinSize.w = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strWidth));\n                        bodyMinSize.h = parseToZeroOrNumber(_contentArrangeElement.css(_strMinMinus + _strHeight));\n                        bodyMinSize.c = checkCache(bodyMinSize, _bodyMinSizeCache);\n                        bodyMinSize.f = true; //flag for \"measured at least once\"\n                    }\n                    _bodyMinSizeCache = bodyMinSize;\n                    return !!bodyMinSize.c;\n                }\n\n                /**\n                 * Returns true if the class names really changed (new class without plugin host prefix)\n                 * @param oldClassNames The old ClassName string or array.\n                 * @param newClassNames The new ClassName string or array.\n                 * @returns {boolean} True if the class names has really changed, false otherwise.\n                 */\n                function hostClassNamesChanged(oldClassNames, newClassNames) {\n                    var currClasses = typeof newClassNames == TYPES.s ? newClassNames.split(_strSpace) : [];\n                    var oldClasses = typeof oldClassNames == TYPES.s ? oldClassNames.split(_strSpace) : [];\n                    var diff = getArrayDifferences(oldClasses, currClasses);\n\n                    // remove none theme from diff list to prevent update\n                    var idx = inArray(_classNameThemeNone, diff);\n                    var i;\n                    var regex;\n\n                    if (idx > -1)\n                        diff.splice(idx, 1);\n\n                    if (diff[LEXICON.l] > 0) {\n                        regex = createHostClassNameRegExp(true, true);\n                        for (i = 0; i < diff.length; i++) {\n                            if (!diff[i].match(regex)) {\n                                return true;\n                            }\n                        }\n                    }\n                    return false;\n                }\n\n                /**\n                 * Returns true if the given mutation is not from a from the plugin generated element. If the target element is a textarea the mutation is always unknown.\n                 * @param mutation The mutation which shall be checked.\n                 * @returns {boolean} True if the mutation is from a unknown element, false otherwise.\n                 */\n                function isUnknownMutation(mutation) {\n                    var attributeName = mutation.attributeName;\n                    var mutationTarget = mutation.target;\n                    var mutationType = mutation.type;\n                    var strClosest = 'closest';\n\n                    if (mutationTarget === _contentElementNative)\n                        return attributeName === null;\n                    if (mutationType === 'attributes' && (attributeName === LEXICON.c || attributeName === LEXICON.s) && !_isTextarea) {\n                        //ignore className changes by the plugin\t\n                        if (attributeName === LEXICON.c && FRAMEWORK(mutationTarget).hasClass(_classNameHostElement))\n                            return hostClassNamesChanged(mutation.oldValue, mutationTarget.className);\n\n                        //only do it of browser support it natively\t\n                        if (typeof mutationTarget[strClosest] != TYPES.f)\n                            return true;\n                        if (mutationTarget[strClosest](_strDot + _classNameResizeObserverElement) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbar) !== null ||\n                            mutationTarget[strClosest](_strDot + _classNameScrollbarCorner) !== null)\n                            return false;\n                    }\n                    return true;\n                }\n\n                /**\n                 * Returns true if the content size was changed since the last time this method was called.\n                 * @returns {boolean} True if the content size was changed, false otherwise.\n                 */\n                function updateAutoContentSizeChanged() {\n                    if (_sleeping)\n                        return false;\n\n                    var contentMeasureElement = getContentMeasureElement();\n                    var textareaValueLength = _isTextarea && _widthAutoCache && !_textareaAutoWrappingCache ? _targetElement.val().length : 0;\n                    var setCSS = !_mutationObserversConnected && _widthAutoCache && !_isTextarea;\n                    var css = {};\n                    var float;\n                    var bodyMinSizeC;\n                    var changed;\n                    var contentElementScrollSize;\n\n                    if (setCSS) {\n                        float = _contentElement.css(_strFloat);\n                        css[_strFloat] = _isRTL ? _strRight : _strLeft;\n                        css[_strWidth] = _strAuto;\n                        _contentElement.css(css);\n                    }\n                    contentElementScrollSize = {\n                        w: contentMeasureElement[LEXICON.sW] + textareaValueLength,\n                        h: contentMeasureElement[LEXICON.sH] + textareaValueLength\n                    };\n                    if (setCSS) {\n                        css[_strFloat] = float;\n                        css[_strWidth] = _strHundredPercent;\n                        _contentElement.css(css);\n                    }\n\n                    bodyMinSizeC = bodyMinSizeChanged();\n                    changed = checkCache(contentElementScrollSize, _contentElementScrollSizeChangeDetectedCache);\n\n                    _contentElementScrollSizeChangeDetectedCache = contentElementScrollSize;\n\n                    return changed || bodyMinSizeC;\n                }\n\n                /**\n                 * Returns true when a attribute which the MutationObserver would observe has changed.  \n                 * @returns {boolean} True if one of the attributes which a MutationObserver would observe has changed, false or undefined otherwise.\n                 */\n                function meaningfulAttrsChanged() {\n                    if (_sleeping || _mutationObserversConnected)\n                        return;\n\n                    var elem;\n                    var curr;\n                    var cache;\n                    var changedAttrs = [];\n                    var checks = [\n                        {\n                            _elem: _hostElement,\n                            _attrs: _mutationObserverAttrsHost.concat(':visible')\n                        },\n                        {\n                            _elem: _isTextarea ? _targetElement : undefined,\n                            _attrs: _mutationObserverAttrsTextarea\n                        }\n                    ];\n\n                    each(checks, function (index, check) {\n                        elem = check._elem;\n                        if (elem) {\n                            each(check._attrs, function (index, attr) {\n                                curr = attr.charAt(0) === ':' ? elem.is(attr) : elem.attr(attr);\n                                cache = _updateAutoCache[attr];\n\n                                if (checkCache(curr, cache)) {\n                                    changedAttrs.push(attr);\n                                }\n\n                                _updateAutoCache[attr] = curr;\n                            });\n                        }\n                    });\n\n                    updateViewportAttrsFromTarget(changedAttrs);\n\n                    return changedAttrs[LEXICON.l] > 0;\n                }\n\n                /**\n                 * Checks is a CSS Property of a child element is affecting the scroll size of the content.\n                 * @param propertyName The CSS property name.\n                 * @returns {boolean} True if the property is affecting the content scroll size, false otherwise.\n                 */\n                function isSizeAffectingCSSProperty(propertyName) {\n                    if (!_initialized)\n                        return true;\n                    var flexGrow = 'flex-grow';\n                    var flexShrink = 'flex-shrink';\n                    var flexBasis = 'flex-basis';\n                    var affectingPropsX = [\n                        _strWidth,\n                        _strMinMinus + _strWidth,\n                        _strMaxMinus + _strWidth,\n                        _strMarginMinus + _strLeft,\n                        _strMarginMinus + _strRight,\n                        _strLeft,\n                        _strRight,\n                        'font-weight',\n                        'word-spacing',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsXContentBox = [\n                        _strPaddingMinus + _strLeft,\n                        _strPaddingMinus + _strRight,\n                        _strBorderMinus + _strLeft + _strWidth,\n                        _strBorderMinus + _strRight + _strWidth\n                    ];\n                    var affectingPropsY = [\n                        _strHeight,\n                        _strMinMinus + _strHeight,\n                        _strMaxMinus + _strHeight,\n                        _strMarginMinus + _strTop,\n                        _strMarginMinus + _strBottom,\n                        _strTop,\n                        _strBottom,\n                        'line-height',\n                        flexGrow,\n                        flexShrink,\n                        flexBasis\n                    ];\n                    var affectingPropsYContentBox = [\n                        _strPaddingMinus + _strTop,\n                        _strPaddingMinus + _strBottom,\n                        _strBorderMinus + _strTop + _strWidth,\n                        _strBorderMinus + _strBottom + _strWidth\n                    ];\n                    var _strS = 's';\n                    var _strVS = 'v-s';\n                    var checkX = _overflowBehaviorCache.x === _strS || _overflowBehaviorCache.x === _strVS;\n                    var checkY = _overflowBehaviorCache.y === _strS || _overflowBehaviorCache.y === _strVS;\n                    var sizeIsAffected = false;\n                    var checkPropertyName = function (arr, name) {\n                        for (var i = 0; i < arr[LEXICON.l]; i++) {\n                            if (arr[i] === name)\n                                return true;\n                        }\n                        return false;\n                    };\n\n                    if (checkY) {\n                        sizeIsAffected = checkPropertyName(affectingPropsY, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsYContentBox, propertyName);\n                    }\n                    if (checkX && !sizeIsAffected) {\n                        sizeIsAffected = checkPropertyName(affectingPropsX, propertyName);\n                        if (!sizeIsAffected && !_isBorderBox)\n                            sizeIsAffected = checkPropertyName(affectingPropsXContentBox, propertyName);\n                    }\n                    return sizeIsAffected;\n                }\n\n\n                //==== Update ====//\n\n                /**\n                 * Sets the attribute values of the viewport element to the values from the target element.\n                 * The value of a attribute is only set if the attribute is whitelisted.\n                 * @attrs attrs The array of attributes which shall be set or undefined if all whitelisted shall be set.\n                 */\n                function updateViewportAttrsFromTarget(attrs) {\n                    attrs = attrs || _viewportAttrsFromTarget;\n                    each(attrs, function (index, attr) {\n                        if (COMPATIBILITY.inA(attr, _viewportAttrsFromTarget) > -1) {\n                            var targetAttr = _targetElement.attr(attr);\n                            if (type(targetAttr) == TYPES.s) {\n                                _viewportElement.attr(attr, targetAttr);\n                            }\n                            else {\n                                _viewportElement.removeAttr(attr);\n                            }\n                        }\n                    });\n                }\n\n                /**\n                 * Updates the variables and size of the textarea element, and manages the scroll on new line or new character.\n                 */\n                function textareaUpdate() {\n                    if (!_sleeping) {\n                        var wrapAttrOff = !_textareaAutoWrappingCache;\n                        var minWidth = _viewportSize.w;\n                        var minHeight = _viewportSize.h;\n                        var css = {};\n                        var doMeasure = _widthAutoCache || wrapAttrOff;\n                        var origWidth;\n                        var width;\n                        var origHeight;\n                        var height;\n\n                        //reset min size\n                        css[_strMinMinus + _strWidth] = _strEmpty;\n                        css[_strMinMinus + _strHeight] = _strEmpty;\n\n                        //set width auto\n                        css[_strWidth] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure width\n                        origWidth = _targetElementNative[LEXICON.oW];\n                        width = doMeasure ? MATH.max(origWidth, _targetElementNative[LEXICON.sW] - 1) : 1;\n                        /*width += (_widthAutoCache ? _marginX + (!_isBorderBox ? wrapAttrOff ? 0 : _paddingX + _borderX : 0) : 0);*/\n\n                        //set measured width\n                        css[_strWidth] = _widthAutoCache ? _strAuto /*width*/ : _strHundredPercent;\n                        css[_strMinMinus + _strWidth] = _strHundredPercent;\n\n                        //set height auto\n                        css[_strHeight] = _strAuto;\n                        _targetElement.css(css);\n\n                        //measure height\n                        origHeight = _targetElementNative[LEXICON.oH];\n                        height = MATH.max(origHeight, _targetElementNative[LEXICON.sH] - 1);\n\n                        //append correct size values\n                        css[_strWidth] = width;\n                        css[_strHeight] = height;\n                        _textareaCoverElement.css(css);\n\n                        //apply min width / min height to prevent textarea collapsing\n                        css[_strMinMinus + _strWidth] = minWidth /*+ (!_isBorderBox && _widthAutoCache ? _paddingX + _borderX : 0)*/;\n                        css[_strMinMinus + _strHeight] = minHeight /*+ (!_isBorderBox && _heightAutoCache ? _paddingY + _borderY : 0)*/;\n                        _targetElement.css(css);\n\n                        return {\n                            _originalWidth: origWidth,\n                            _originalHeight: origHeight,\n                            _dynamicWidth: width,\n                            _dynamicHeight: height\n                        };\n                    }\n                }\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param updateHints A objects which contains hints for this update:\n                 * {\n                 *   _hostSizeChanged : boolean,\n                 *   _contentSizeChanged : boolean,\n                 *   _force : boolean,                             == preventSwallowing\n                 *   _changedOptions : { },                        == preventSwallowing && preventSleep\n                *  }\n                 */\n                function update(updateHints) {\n                    clearTimeout(_swallowedUpdateTimeout);\n                    updateHints = updateHints || {};\n                    _swallowedUpdateHints._hostSizeChanged |= updateHints._hostSizeChanged;\n                    _swallowedUpdateHints._contentSizeChanged |= updateHints._contentSizeChanged;\n                    _swallowedUpdateHints._force |= updateHints._force;\n\n                    var now = COMPATIBILITY.now();\n                    var hostSizeChanged = !!_swallowedUpdateHints._hostSizeChanged;\n                    var contentSizeChanged = !!_swallowedUpdateHints._contentSizeChanged;\n                    var force = !!_swallowedUpdateHints._force;\n                    var changedOptions = updateHints._changedOptions;\n                    var swallow = _swallowUpdateLag > 0 && _initialized && !_destroyed && !force && !changedOptions && (now - _lastUpdateTime) < _swallowUpdateLag && (!_heightAutoCache && !_widthAutoCache);\n                    var displayIsHidden;\n\n                    if (swallow)\n                        _swallowedUpdateTimeout = setTimeout(update, _swallowUpdateLag);\n\n                    //abort update due to:\n                    //destroyed\n                    //swallowing\n                    //sleeping\n                    //host is hidden or has false display\n                    if (_destroyed || swallow || (_sleeping && !changedOptions) || (_initialized && !force && (displayIsHidden = _hostElement.is(':hidden'))) || _hostElement.css('display') === 'inline')\n                        return;\n\n                    _lastUpdateTime = now;\n                    _swallowedUpdateHints = {};\n\n                    //if scrollbar styling is possible and native scrollbars aren't overlaid the scrollbar styling will be applied which hides the native scrollbars completely.\n                    if (_nativeScrollbarStyling && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                        //native scrollbars are hidden, so change the values to zero\n                        _nativeScrollbarSize.x = 0;\n                        _nativeScrollbarSize.y = 0;\n                    }\n                    else {\n                        //refresh native scrollbar size (in case of zoom)\n                        _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    }\n\n                    // Scrollbar padding is needed for firefox, because firefox hides scrollbar automatically if the size of the div is too small.\n                    // The calculation: [scrollbar size +3 *3]\n                    // (+3 because of possible decoration e.g. borders, margins etc., but only if native scrollbar is NOT a overlaid scrollbar)\n                    // (*3 because (1)increase / (2)decrease -button and (3)resize handle)\n                    _nativeScrollbarMinSize = {\n                        x: (_nativeScrollbarSize.x + (_nativeScrollbarIsOverlaid.x ? 0 : 3)) * 3,\n                        y: (_nativeScrollbarSize.y + (_nativeScrollbarIsOverlaid.y ? 0 : 3)) * 3\n                    };\n\n                    changedOptions = changedOptions || {};\n                    //freezeResizeObserver(_sizeObserverElement, true);\n                    //freezeResizeObserver(_sizeAutoObserverElement, true);\n\n                    var checkCacheAutoForce = function () {\n                        return checkCache.apply(this, [].slice.call(arguments).concat([force]));\n                    };\n\n                    //save current scroll offset\n                    var currScroll = {\n                        x: _viewportElement[_strScrollLeft](),\n                        y: _viewportElement[_strScrollTop]()\n                    };\n\n                    var currentPreparedOptionsScrollbars = _currentPreparedOptions.scrollbars;\n                    var currentPreparedOptionsTextarea = _currentPreparedOptions.textarea;\n\n                    //scrollbars visibility:\n                    var scrollbarsVisibility = currentPreparedOptionsScrollbars.visibility;\n                    var scrollbarsVisibilityChanged = checkCacheAutoForce(scrollbarsVisibility, _scrollbarsVisibilityCache);\n\n                    //scrollbars autoHide:\n                    var scrollbarsAutoHide = currentPreparedOptionsScrollbars.autoHide;\n                    var scrollbarsAutoHideChanged = checkCacheAutoForce(scrollbarsAutoHide, _scrollbarsAutoHideCache);\n\n                    //scrollbars click scrolling\n                    var scrollbarsClickScrolling = currentPreparedOptionsScrollbars.clickScrolling;\n                    var scrollbarsClickScrollingChanged = checkCacheAutoForce(scrollbarsClickScrolling, _scrollbarsClickScrollingCache);\n\n                    //scrollbars drag scrolling\n                    var scrollbarsDragScrolling = currentPreparedOptionsScrollbars.dragScrolling;\n                    var scrollbarsDragScrollingChanged = checkCacheAutoForce(scrollbarsDragScrolling, _scrollbarsDragScrollingCache);\n\n                    //className\n                    var className = _currentPreparedOptions.className;\n                    var classNameChanged = checkCacheAutoForce(className, _classNameCache);\n\n                    //resize\n                    var resize = _currentPreparedOptions.resize;\n                    var resizeChanged = checkCacheAutoForce(resize, _resizeCache) && !_isBody; //body can't be resized since the window itself acts as resize possibility.\n\n                    //paddingAbsolute\n                    var paddingAbsolute = _currentPreparedOptions.paddingAbsolute;\n                    var paddingAbsoluteChanged = checkCacheAutoForce(paddingAbsolute, _paddingAbsoluteCache);\n\n                    //clipAlways\n                    var clipAlways = _currentPreparedOptions.clipAlways;\n                    var clipAlwaysChanged = checkCacheAutoForce(clipAlways, _clipAlwaysCache);\n\n                    //sizeAutoCapable\n                    var sizeAutoCapable = _currentPreparedOptions.sizeAutoCapable && !_isBody; //body can never be size auto, because it shall be always as big as the viewport.\n                    var sizeAutoCapableChanged = checkCacheAutoForce(sizeAutoCapable, _sizeAutoCapableCache);\n\n                    //showNativeScrollbars\n                    var ignoreOverlayScrollbarHiding = _currentPreparedOptions.nativeScrollbarsOverlaid.showNativeScrollbars;\n                    var ignoreOverlayScrollbarHidingChanged = checkCacheAutoForce(ignoreOverlayScrollbarHiding, _ignoreOverlayScrollbarHidingCache);\n\n                    //autoUpdate\n                    var autoUpdate = _currentPreparedOptions.autoUpdate;\n                    var autoUpdateChanged = checkCacheAutoForce(autoUpdate, _autoUpdateCache);\n\n                    //overflowBehavior\n                    var overflowBehavior = _currentPreparedOptions.overflowBehavior;\n                    var overflowBehaviorChanged = checkCacheAutoForce(overflowBehavior, _overflowBehaviorCache, force);\n\n                    //dynWidth:\n                    var textareaDynWidth = currentPreparedOptionsTextarea.dynWidth;\n                    var textareaDynWidthChanged = checkCacheAutoForce(_textareaDynWidthCache, textareaDynWidth);\n\n                    //dynHeight:\n                    var textareaDynHeight = currentPreparedOptionsTextarea.dynHeight;\n                    var textareaDynHeightChanged = checkCacheAutoForce(_textareaDynHeightCache, textareaDynHeight);\n\n                    //scrollbars visibility\n                    _scrollbarsAutoHideNever = scrollbarsAutoHide === 'n';\n                    _scrollbarsAutoHideScroll = scrollbarsAutoHide === 's';\n                    _scrollbarsAutoHideMove = scrollbarsAutoHide === 'm';\n                    _scrollbarsAutoHideLeave = scrollbarsAutoHide === 'l';\n\n                    //scrollbars autoHideDelay\n                    _scrollbarsAutoHideDelay = currentPreparedOptionsScrollbars.autoHideDelay;\n\n                    //old className\n                    _oldClassName = _classNameCache;\n\n                    //resize\n                    _resizeNone = resize === 'n';\n                    _resizeBoth = resize === 'b';\n                    _resizeHorizontal = resize === 'h';\n                    _resizeVertical = resize === 'v';\n\n                    //normalizeRTL\n                    _normalizeRTLCache = _currentPreparedOptions.normalizeRTL;\n\n                    //ignore overlay scrollbar hiding\n                    ignoreOverlayScrollbarHiding = ignoreOverlayScrollbarHiding && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y);\n\n                    //refresh options cache\n                    _scrollbarsVisibilityCache = scrollbarsVisibility;\n                    _scrollbarsAutoHideCache = scrollbarsAutoHide;\n                    _scrollbarsClickScrollingCache = scrollbarsClickScrolling;\n                    _scrollbarsDragScrollingCache = scrollbarsDragScrolling;\n                    _classNameCache = className;\n                    _resizeCache = resize;\n                    _paddingAbsoluteCache = paddingAbsolute;\n                    _clipAlwaysCache = clipAlways;\n                    _sizeAutoCapableCache = sizeAutoCapable;\n                    _ignoreOverlayScrollbarHidingCache = ignoreOverlayScrollbarHiding;\n                    _autoUpdateCache = autoUpdate;\n                    _overflowBehaviorCache = extendDeep({}, overflowBehavior);\n                    _textareaDynWidthCache = textareaDynWidth;\n                    _textareaDynHeightCache = textareaDynHeight;\n                    _hasOverflowCache = _hasOverflowCache || { x: false, y: false };\n\n                    //set correct class name to the host element\n                    if (classNameChanged) {\n                        removeClass(_hostElement, _oldClassName + _strSpace + _classNameThemeNone);\n                        addClass(_hostElement, className !== undefined && className !== null && className.length > 0 ? className : _classNameThemeNone);\n                    }\n\n                    //set correct auto Update\n                    if (autoUpdateChanged) {\n                        if (autoUpdate === true || (autoUpdate === null && _autoUpdateRecommended)) {\n                            disconnectMutationObservers();\n                            autoUpdateLoop.add(_base);\n                        }\n                        else {\n                            autoUpdateLoop.remove(_base);\n                            connectMutationObservers();\n                        }\n                    }\n\n                    //activate or deactivate size auto capability\n                    if (sizeAutoCapableChanged) {\n                        if (sizeAutoCapable) {\n                            if (_contentGlueElement) {\n                                _contentGlueElement.show();\n                            }\n                            else {\n                                _contentGlueElement = FRAMEWORK(generateDiv(_classNameContentGlueElement));\n                                _paddingElement.before(_contentGlueElement);\n                            }\n                            if (_sizeAutoObserverAdded) {\n                                _sizeAutoObserverElement.show();\n                            }\n                            else {\n                                _sizeAutoObserverElement = FRAMEWORK(generateDiv(_classNameSizeAutoObserverElement));\n                                _sizeAutoObserverElementNative = _sizeAutoObserverElement[0];\n\n                                _contentGlueElement.before(_sizeAutoObserverElement);\n                                var oldSize = { w: -1, h: -1 };\n                                setupResizeObserver(_sizeAutoObserverElement, function () {\n                                    var newSize = {\n                                        w: _sizeAutoObserverElementNative[LEXICON.oW],\n                                        h: _sizeAutoObserverElementNative[LEXICON.oH]\n                                    };\n                                    if (checkCache(newSize, oldSize)) {\n                                        if (_initialized && (_heightAutoCache && newSize.h > 0) || (_widthAutoCache && newSize.w > 0)) {\n                                            update();\n                                        }\n                                        else if (_initialized && (!_heightAutoCache && newSize.h === 0) || (!_widthAutoCache && newSize.w === 0)) {\n                                            update();\n                                        }\n                                    }\n                                    oldSize = newSize;\n                                });\n                                _sizeAutoObserverAdded = true;\n                                //fix heightAuto detector bug if height is fixed but contentHeight is 0.\n                                //the probability this bug will ever happen is very very low, thats why its ok if we use calc which isn't supported in IE8.\n                                if (_cssCalc !== null)\n                                    _sizeAutoObserverElement.css(_strHeight, _cssCalc + '(100% + 1px)');\n                            }\n                        }\n                        else {\n                            if (_sizeAutoObserverAdded)\n                                _sizeAutoObserverElement.hide();\n                            if (_contentGlueElement)\n                                _contentGlueElement.hide();\n                        }\n                    }\n\n                    //if force, update all resizeObservers too\n                    if (force) {\n                        _sizeObserverElement.find('*').trigger(_strScroll);\n                        if (_sizeAutoObserverAdded)\n                            _sizeAutoObserverElement.find('*').trigger(_strScroll);\n                    }\n\n                    //display hidden:\n                    displayIsHidden = displayIsHidden === undefined ? _hostElement.is(':hidden') : displayIsHidden;\n\n                    //textarea AutoWrapping:\n                    var textareaAutoWrapping = _isTextarea ? _targetElement.attr('wrap') !== 'off' : false;\n                    var textareaAutoWrappingChanged = checkCacheAutoForce(textareaAutoWrapping, _textareaAutoWrappingCache);\n\n                    //detect direction:\n                    var cssDirection = _hostElement.css('direction');\n                    var cssDirectionChanged = checkCacheAutoForce(cssDirection, _cssDirectionCache);\n\n                    //detect box-sizing:\n                    var boxSizing = _hostElement.css('box-sizing');\n                    var boxSizingChanged = checkCacheAutoForce(boxSizing, _cssBoxSizingCache);\n\n                    //detect padding:\n                    var padding = getTopRightBottomLeftHost(_strPaddingMinus);\n\n                    //width + height auto detecting var:\n                    var sizeAutoObserverElementBCRect;\n                    //exception occurs in IE8 sometimes (unknown exception)\n                    try {\n                        sizeAutoObserverElementBCRect = _sizeAutoObserverAdded ? _sizeAutoObserverElementNative[LEXICON.bCR]() : null;\n                    } catch (ex) {\n                        return;\n                    }\n\n                    _isRTL = cssDirection === 'rtl';\n                    _isBorderBox = (boxSizing === 'border-box');\n                    var isRTLLeft = _isRTL ? _strLeft : _strRight;\n                    var isRTLRight = _isRTL ? _strRight : _strLeft;\n\n                    //detect width auto:\n                    var widthAutoResizeDetection = false;\n                    var widthAutoObserverDetection = (_sizeAutoObserverAdded && (_hostElement.css(_strFloat) !== 'none' /*|| _isTextarea */)) ? (MATH.round(sizeAutoObserverElementBCRect.right - sizeAutoObserverElementBCRect.left) === 0) && (!paddingAbsolute ? (_hostElementNative[LEXICON.cW] - _paddingX) > 0 : true) : false;\n                    if (sizeAutoCapable && !widthAutoObserverDetection) {\n                        var tmpCurrHostWidth = _hostElementNative[LEXICON.oW];\n                        var tmpCurrContentGlueWidth = _contentGlueElement.css(_strWidth);\n                        _contentGlueElement.css(_strWidth, _strAuto);\n\n                        var tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                        _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                        widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        if (!widthAutoResizeDetection) {\n                            _contentGlueElement.css(_strWidth, tmpCurrHostWidth + 1);\n                            tmpNewHostWidth = _hostElementNative[LEXICON.oW];\n                            _contentGlueElement.css(_strWidth, tmpCurrContentGlueWidth);\n                            widthAutoResizeDetection = tmpCurrHostWidth !== tmpNewHostWidth;\n                        }\n                    }\n                    var widthAuto = (widthAutoObserverDetection || widthAutoResizeDetection) && sizeAutoCapable && !displayIsHidden;\n                    var widthAutoChanged = checkCacheAutoForce(widthAuto, _widthAutoCache);\n                    var wasWidthAuto = !widthAuto && _widthAutoCache;\n\n                    //detect height auto:\n                    var heightAuto = _sizeAutoObserverAdded && sizeAutoCapable && !displayIsHidden ? (MATH.round(sizeAutoObserverElementBCRect.bottom - sizeAutoObserverElementBCRect.top) === 0) /* && (!paddingAbsolute && (_msieVersion > 9 || !_msieVersion) ? true : true) */ : false;\n                    var heightAutoChanged = checkCacheAutoForce(heightAuto, _heightAutoCache);\n                    var wasHeightAuto = !heightAuto && _heightAutoCache;\n\n                    //detect border:\n                    //we need the border only if border box and auto size\n                    var updateBorderX = (widthAuto && _isBorderBox) || !_isBorderBox;\n                    var updateBorderY = (heightAuto && _isBorderBox) || !_isBorderBox;\n                    var border = getTopRightBottomLeftHost(_strBorderMinus, '-' + _strWidth, !updateBorderX, !updateBorderY)\n\n                    //detect margin:\n                    var margin = getTopRightBottomLeftHost(_strMarginMinus);\n\n                    //vars to apply correct css\n                    var contentElementCSS = {};\n                    var contentGlueElementCSS = {};\n\n                    //funcs\n                    var getHostSize = function () {\n                        //has to be clientSize because offsetSize respect borders\n                        return {\n                            w: _hostElementNative[LEXICON.cW],\n                            h: _hostElementNative[LEXICON.cH]\n                        };\n                    };\n                    var getViewportSize = function () {\n                        //viewport size is padding container because it never has padding, margin and a border\n                        //determine zoom rounding error -> sometimes scrollWidth/Height is smaller than clientWidth/Height\n                        //if this happens add the difference to the viewportSize to compensate the rounding error\n                        return {\n                            w: _paddingElementNative[LEXICON.oW] + MATH.max(0, _contentElementNative[LEXICON.cW] - _contentElementNative[LEXICON.sW]),\n                            h: _paddingElementNative[LEXICON.oH] + MATH.max(0, _contentElementNative[LEXICON.cH] - _contentElementNative[LEXICON.sH])\n                        };\n                    };\n\n                    //set info for padding\n                    var paddingAbsoluteX = _paddingX = padding.l + padding.r;\n                    var paddingAbsoluteY = _paddingY = padding.t + padding.b;\n                    paddingAbsoluteX *= paddingAbsolute ? 1 : 0;\n                    paddingAbsoluteY *= paddingAbsolute ? 1 : 0;\n                    padding.c = checkCacheAutoForce(padding, _cssPaddingCache);\n\n                    //set info for border\n                    _borderX = border.l + border.r;\n                    _borderY = border.t + border.b;\n                    border.c = checkCacheAutoForce(border, _cssBorderCache);\n\n                    //set info for margin\n                    _marginX = margin.l + margin.r;\n                    _marginY = margin.t + margin.b;\n                    margin.c = checkCacheAutoForce(margin, _cssMarginCache);\n\n                    //refresh cache\n                    _textareaAutoWrappingCache = textareaAutoWrapping;\n                    _cssDirectionCache = cssDirection;\n                    _cssBoxSizingCache = boxSizing;\n                    _widthAutoCache = widthAuto;\n                    _heightAutoCache = heightAuto;\n                    _cssPaddingCache = padding;\n                    _cssBorderCache = border;\n                    _cssMarginCache = margin;\n\n                    //IEFix direction changed\n                    if (cssDirectionChanged && _sizeAutoObserverAdded)\n                        _sizeAutoObserverElement.css(_strFloat, isRTLRight);\n\n                    //apply padding:\n                    if (padding.c || cssDirectionChanged || paddingAbsoluteChanged || widthAutoChanged || heightAutoChanged || boxSizingChanged || sizeAutoCapableChanged) {\n                        var paddingElementCSS = {};\n                        var textareaCSS = {};\n                        var paddingValues = [padding.t, padding.r, padding.b, padding.l];\n\n                        setTopRightBottomLeft(contentGlueElementCSS, _strMarginMinus, [-padding.t, -padding.r, -padding.b, -padding.l]);\n                        if (paddingAbsolute) {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty, paddingValues);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus);\n                        }\n                        else {\n                            setTopRightBottomLeft(paddingElementCSS, _strEmpty);\n                            setTopRightBottomLeft(_isTextarea ? textareaCSS : contentElementCSS, _strPaddingMinus, paddingValues);\n                        }\n\n                        _paddingElement.css(paddingElementCSS);\n                        _targetElement.css(textareaCSS);\n                    }\n\n                    //viewport size is padding container because it never has padding, margin and a border.\n                    _viewportSize = getViewportSize();\n\n                    //update Textarea\n                    var textareaSize = _isTextarea ? textareaUpdate() : false;\n                    var textareaSizeChanged = _isTextarea && checkCacheAutoForce(textareaSize, _textareaSizeCache);\n                    var textareaDynOrigSize = _isTextarea && textareaSize ? {\n                        w: textareaDynWidth ? textareaSize._dynamicWidth : textareaSize._originalWidth,\n                        h: textareaDynHeight ? textareaSize._dynamicHeight : textareaSize._originalHeight\n                    } : {};\n                    _textareaSizeCache = textareaSize;\n\n                    //fix height auto / width auto in cooperation with current padding & boxSizing behavior:\n                    if (heightAuto && (heightAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c)) {\n                        contentElementCSS[_strHeight] = _strAuto;\n                    }\n                    else if (heightAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strHeight] = _strHundredPercent;\n                    }\n                    if (widthAuto && (widthAutoChanged || paddingAbsoluteChanged || boxSizingChanged || padding.c || border.c || cssDirectionChanged)) {\n                        contentElementCSS[_strWidth] = _strAuto;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strHundredPercent; //IE Fix\n                    }\n                    else if (widthAutoChanged || paddingAbsoluteChanged) {\n                        contentElementCSS[_strWidth] = _strHundredPercent;\n                        contentElementCSS[_strFloat] = _strEmpty;\n                        contentGlueElementCSS[_strMaxMinus + _strWidth] = _strEmpty; //IE Fix\n                    }\n                    if (widthAuto) {\n                        //textareaDynOrigSize.w || _strAuto :: doesnt works because applied margin will shift width\n                        contentGlueElementCSS[_strWidth] = _strAuto;\n\n                        contentElementCSS[_strWidth] = VENDORS._cssPropertyValue(_strWidth, 'max-content intrinsic') || _strAuto;\n                        contentElementCSS[_strFloat] = isRTLRight;\n                    }\n                    else {\n                        contentGlueElementCSS[_strWidth] = _strEmpty;\n                    }\n                    if (heightAuto) {\n                        //textareaDynOrigSize.h || _contentElementNative[LEXICON.cH] :: use for anti scroll jumping\n                        contentGlueElementCSS[_strHeight] = textareaDynOrigSize.h || _contentElementNative[LEXICON.cH];\n                    }\n                    else {\n                        contentGlueElementCSS[_strHeight] = _strEmpty;\n                    }\n                    if (sizeAutoCapable)\n                        _contentGlueElement.css(contentGlueElementCSS);\n                    _contentElement.css(contentElementCSS);\n\n                    //CHECKPOINT HERE ~\n                    contentElementCSS = {};\n                    contentGlueElementCSS = {};\n\n                    //if [content(host) client / scroll size, or target element direction, or content(host) max-sizes] changed, or force is true\n                    if (hostSizeChanged || contentSizeChanged || textareaSizeChanged || cssDirectionChanged || boxSizingChanged || paddingAbsoluteChanged || widthAutoChanged || widthAuto || heightAutoChanged || heightAuto || ignoreOverlayScrollbarHidingChanged || overflowBehaviorChanged || clipAlwaysChanged || resizeChanged || scrollbarsVisibilityChanged || scrollbarsAutoHideChanged || scrollbarsDragScrollingChanged || scrollbarsClickScrollingChanged || textareaDynWidthChanged || textareaDynHeightChanged || textareaAutoWrappingChanged) {\n                        var strOverflow = 'overflow';\n                        var strOverflowX = strOverflow + '-x';\n                        var strOverflowY = strOverflow + '-y';\n                        var strHidden = 'hidden';\n                        var strVisible = 'visible';\n\n                        //Reset the viewport (very important for natively overlaid scrollbars and zoom change\n                        //don't change the overflow prop as it is very expensive and affects performance !A LOT!\n                        if (!_nativeScrollbarStyling) {\n                            var viewportElementResetCSS = {};\n                            var resetXTmp = _hasOverflowCache.y && _hideOverflowCache.ys && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.y ? _viewportElement.css(isRTLLeft) : -_nativeScrollbarSize.y) : 0;\n                            var resetBottomTmp = _hasOverflowCache.x && _hideOverflowCache.xs && !ignoreOverlayScrollbarHiding ? (_nativeScrollbarIsOverlaid.x ? _viewportElement.css(_strBottom) : -_nativeScrollbarSize.x) : 0;\n                            setTopRightBottomLeft(viewportElementResetCSS, _strEmpty);\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n\n                        //measure several sizes:\n                        var contentMeasureElement = getContentMeasureElement();\n                        //in Firefox content element has to have overflow hidden, else element margins aren't calculated properly, this element prevents this bug, but only if scrollbars aren't overlaid\n                        var contentSize = {\n                            //use clientSize because natively overlaidScrollbars add borders\n                            w: textareaDynOrigSize.w || contentMeasureElement[LEXICON.cW],\n                            h: textareaDynOrigSize.h || contentMeasureElement[LEXICON.cH]\n                        };\n                        var scrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH]\n                        };\n\n                        //apply the correct viewport style and measure viewport size\n                        if (!_nativeScrollbarStyling) {\n                            viewportElementResetCSS[_strBottom] = wasHeightAuto ? _strEmpty : resetBottomTmp;\n                            viewportElementResetCSS[isRTLLeft] = wasWidthAuto ? _strEmpty : resetXTmp;\n                            _viewportElement.css(viewportElementResetCSS);\n                        }\n                        _viewportSize = getViewportSize();\n\n                        //measure and correct several sizes\n                        var hostSize = getHostSize();\n                        var hostAbsoluteRectSize = {\n                            w: hostSize.w - _marginX - _borderX - (_isBorderBox ? 0 : _paddingX),\n                            h: hostSize.h - _marginY - _borderY - (_isBorderBox ? 0 : _paddingY)\n                        };\n                        var contentGlueSize = {\n                            //client/scrollSize + AbsolutePadding -> because padding is only applied to the paddingElement if its absolute, so you have to add it manually\n                            //hostSize is clientSize -> so padding should be added manually, right? FALSE! Because content glue is inside hostElement, so we don't have to worry about padding\n                            w: MATH.max((widthAuto ? contentSize.w : scrollSize.w) + paddingAbsoluteX, hostAbsoluteRectSize.w),\n                            h: MATH.max((heightAuto ? contentSize.h : scrollSize.h) + paddingAbsoluteY, hostAbsoluteRectSize.h)\n                        };\n                        contentGlueSize.c = checkCacheAutoForce(contentGlueSize, _contentGlueSizeCache);\n                        _contentGlueSizeCache = contentGlueSize;\n\n                        //apply correct contentGlue size\n                        if (sizeAutoCapable) {\n                            //size contentGlue correctly to make sure the element has correct size if the sizing switches to auto\n                            if (contentGlueSize.c || (heightAuto || widthAuto)) {\n                                contentGlueElementCSS[_strWidth] = contentGlueSize.w;\n                                contentGlueElementCSS[_strHeight] = contentGlueSize.h;\n\n                                //textarea-sizes are already calculated correctly at this point\n                                if (!_isTextarea) {\n                                    contentSize = {\n                                        //use clientSize because natively overlaidScrollbars add borders\n                                        w: contentMeasureElement[LEXICON.cW],\n                                        h: contentMeasureElement[LEXICON.cH]\n                                    };\n                                }\n                            }\n                            var textareaCoverCSS = {};\n                            var setContentGlueElementCSSfunction = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var wh = scrollbarVars._w_h;\n                                var strWH = scrollbarVars._width_height;\n                                var autoSize = horizontal ? widthAuto : heightAuto;\n                                var borderSize = horizontal ? _borderX : _borderY;\n                                var paddingSize = horizontal ? _paddingX : _paddingY;\n                                var marginSize = horizontal ? _marginX : _marginY;\n                                var viewportSize = _viewportSize[wh] - borderSize - marginSize - (_isBorderBox ? 0 : paddingSize);\n\n                                //make contentGlue size -1 if element is not auto sized, to make sure that a resize event happens when the element shrinks\n                                if (!autoSize || (!autoSize && border.c))\n                                    contentGlueElementCSS[strWH] = hostAbsoluteRectSize[wh] - 1;\n\n                                //if size is auto and host is smaller than size as min size, make content glue size -1 to make sure size changes will be detected (this is only needed if padding is 0)\n                                if (autoSize && (contentSize[wh] < viewportSize) && (horizontal && _isTextarea ? !textareaAutoWrapping : true)) {\n                                    if (_isTextarea)\n                                        textareaCoverCSS[strWH] = parseToZeroOrNumber(_textareaCoverElement.css(strWH)) - 1;\n                                    contentGlueElementCSS[strWH] -= 1;\n                                }\n\n                                //make sure content glue size is at least 1\n                                if (contentSize[wh] > 0)\n                                    contentGlueElementCSS[strWH] = MATH.max(1, contentGlueElementCSS[strWH]);\n                            };\n                            setContentGlueElementCSSfunction(true);\n                            setContentGlueElementCSSfunction(false);\n\n                            if (_isTextarea)\n                                _textareaCoverElement.css(textareaCoverCSS);\n                            _contentGlueElement.css(contentGlueElementCSS);\n                        }\n                        if (widthAuto)\n                            contentElementCSS[_strWidth] = _strHundredPercent;\n                        if (widthAuto && !_isBorderBox && !_mutationObserversConnected)\n                            contentElementCSS[_strFloat] = 'none';\n\n                        //apply and reset content style\n                        _contentElement.css(contentElementCSS);\n                        contentElementCSS = {};\n\n                        //measure again, but this time all correct sizes:\n                        var contentScrollSize = {\n                            w: contentMeasureElement[LEXICON.sW],\n                            h: contentMeasureElement[LEXICON.sH],\n                        };\n                        contentScrollSize.c = contentSizeChanged = checkCacheAutoForce(contentScrollSize, _contentScrollSizeCache);\n                        _contentScrollSizeCache = contentScrollSize;\n\n                        //refresh viewport size after correct measuring\n                        _viewportSize = getViewportSize();\n\n                        hostSize = getHostSize();\n                        hostSizeChanged = checkCacheAutoForce(hostSize, _hostSizeCache);\n                        _hostSizeCache = hostSize;\n\n                        var hideOverflowForceTextarea = _isTextarea && (_viewportSize.w === 0 || _viewportSize.h === 0);\n                        var previousOverflowAmount = _overflowAmountCache;\n                        var overflowBehaviorIsVS = {};\n                        var overflowBehaviorIsVH = {};\n                        var overflowBehaviorIsS = {};\n                        var overflowAmount = {};\n                        var hasOverflow = {};\n                        var hideOverflow = {};\n                        var canScroll = {};\n                        var viewportRect = _paddingElementNative[LEXICON.bCR]();\n                        var setOverflowVariables = function (horizontal) {\n                            var scrollbarVars = getScrollbarVars(horizontal);\n                            var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                            var xyI = scrollbarVarsInverted._x_y;\n                            var xy = scrollbarVars._x_y;\n                            var wh = scrollbarVars._w_h;\n                            var widthHeight = scrollbarVars._width_height;\n                            var scrollMax = _strScroll + scrollbarVars._Left_Top + 'Max';\n                            var fractionalOverflowAmount = viewportRect[widthHeight] ? MATH.abs(viewportRect[widthHeight] - _viewportSize[wh]) : 0;\n                            var checkFractionalOverflowAmount = previousOverflowAmount && previousOverflowAmount[xy] > 0 && _viewportElementNative[scrollMax] === 0;\n                            overflowBehaviorIsVS[xy] = overflowBehavior[xy] === 'v-s';\n                            overflowBehaviorIsVH[xy] = overflowBehavior[xy] === 'v-h';\n                            overflowBehaviorIsS[xy] = overflowBehavior[xy] === 's';\n                            overflowAmount[xy] = MATH.max(0, MATH.round((contentScrollSize[wh] - _viewportSize[wh]) * 100) / 100);\n                            overflowAmount[xy] *= (hideOverflowForceTextarea || (checkFractionalOverflowAmount && fractionalOverflowAmount > 0 && fractionalOverflowAmount < 1)) ? 0 : 1;\n                            hasOverflow[xy] = overflowAmount[xy] > 0;\n\n                            //hideOverflow:\n                            //x || y : true === overflow is hidden by \"overflow: scroll\" OR \"overflow: hidden\"\n                            //xs || ys : true === overflow is hidden by \"overflow: scroll\"\n                            hideOverflow[xy] = overflowBehaviorIsVS[xy] || overflowBehaviorIsVH[xy] ? (hasOverflow[xyI] && !overflowBehaviorIsVS[xyI] && !overflowBehaviorIsVH[xyI]) : hasOverflow[xy];\n                            hideOverflow[xy + 's'] = hideOverflow[xy] ? (overflowBehaviorIsS[xy] || overflowBehaviorIsVS[xy]) : false;\n\n                            canScroll[xy] = hasOverflow[xy] && hideOverflow[xy + 's'];\n                        };\n                        setOverflowVariables(true);\n                        setOverflowVariables(false);\n\n                        overflowAmount.c = checkCacheAutoForce(overflowAmount, _overflowAmountCache);\n                        _overflowAmountCache = overflowAmount;\n                        hasOverflow.c = checkCacheAutoForce(hasOverflow, _hasOverflowCache);\n                        _hasOverflowCache = hasOverflow;\n                        hideOverflow.c = checkCacheAutoForce(hideOverflow, _hideOverflowCache);\n                        _hideOverflowCache = hideOverflow;\n\n                        //if native scrollbar is overlay at x OR y axis, prepare DOM\n                        if (_nativeScrollbarIsOverlaid.x || _nativeScrollbarIsOverlaid.y) {\n                            var borderDesign = 'px solid transparent';\n                            var contentArrangeElementCSS = {};\n                            var arrangeContent = {};\n                            var arrangeChanged = force;\n                            var setContentElementCSS;\n\n                            if (hasOverflow.x || hasOverflow.y) {\n                                arrangeContent.w = _nativeScrollbarIsOverlaid.y && hasOverflow.y ? contentScrollSize.w + _overlayScrollbarDummySize.y : _strEmpty;\n                                arrangeContent.h = _nativeScrollbarIsOverlaid.x && hasOverflow.x ? contentScrollSize.h + _overlayScrollbarDummySize.x : _strEmpty;\n                                arrangeChanged = checkCacheAutoForce(arrangeContent, _arrangeContentSizeCache);\n                                _arrangeContentSizeCache = arrangeContent;\n                            }\n\n                            if (hasOverflow.c || hideOverflow.c || contentScrollSize.c || cssDirectionChanged || widthAutoChanged || heightAutoChanged || widthAuto || heightAuto || ignoreOverlayScrollbarHidingChanged) {\n                                contentElementCSS[_strMarginMinus + isRTLRight] = contentElementCSS[_strBorderMinus + isRTLRight] = _strEmpty;\n                                setContentElementCSS = function (horizontal) {\n                                    var scrollbarVars = getScrollbarVars(horizontal);\n                                    var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                    var xy = scrollbarVars._x_y;\n                                    var strDirection = horizontal ? _strBottom : isRTLLeft;\n                                    var invertedAutoSize = horizontal ? heightAuto : widthAuto;\n\n                                    if (_nativeScrollbarIsOverlaid[xy] && hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                        contentElementCSS[_strMarginMinus + strDirection] = invertedAutoSize ? (ignoreOverlayScrollbarHiding ? _strEmpty : _overlayScrollbarDummySize[xy]) : _strEmpty;\n                                        contentElementCSS[_strBorderMinus + strDirection] = ((horizontal ? !invertedAutoSize : true) && !ignoreOverlayScrollbarHiding) ? (_overlayScrollbarDummySize[xy] + borderDesign) : _strEmpty;\n                                    }\n                                    else {\n                                        arrangeContent[scrollbarVarsInverted._w_h] =\n                                            contentElementCSS[_strMarginMinus + strDirection] =\n                                            contentElementCSS[_strBorderMinus + strDirection] = _strEmpty;\n                                        arrangeChanged = true;\n                                    }\n                                };\n\n                                if (_nativeScrollbarStyling) {\n                                    addRemoveClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible, !ignoreOverlayScrollbarHiding)\n                                }\n                                else {\n                                    setContentElementCSS(true);\n                                    setContentElementCSS(false);\n                                }\n                            }\n                            if (ignoreOverlayScrollbarHiding) {\n                                arrangeContent.w = arrangeContent.h = _strEmpty;\n                                arrangeChanged = true;\n                            }\n                            if (arrangeChanged && !_nativeScrollbarStyling) {\n                                contentArrangeElementCSS[_strWidth] = hideOverflow.y ? arrangeContent.w : _strEmpty;\n                                contentArrangeElementCSS[_strHeight] = hideOverflow.x ? arrangeContent.h : _strEmpty;\n\n                                if (!_contentArrangeElement) {\n                                    _contentArrangeElement = FRAMEWORK(generateDiv(_classNameContentArrangeElement));\n                                    _viewportElement.prepend(_contentArrangeElement);\n                                }\n                                _contentArrangeElement.css(contentArrangeElementCSS);\n                            }\n                            _contentElement.css(contentElementCSS);\n                        }\n\n                        var viewportElementCSS = {};\n                        var paddingElementCSS = {};\n                        var setViewportCSS;\n                        if (hostSizeChanged || hasOverflow.c || hideOverflow.c || contentScrollSize.c || overflowBehaviorChanged || boxSizingChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged || clipAlwaysChanged || heightAutoChanged) {\n                            viewportElementCSS[isRTLRight] = _strEmpty;\n                            setViewportCSS = function (horizontal) {\n                                var scrollbarVars = getScrollbarVars(horizontal);\n                                var scrollbarVarsInverted = getScrollbarVars(!horizontal);\n                                var xy = scrollbarVars._x_y;\n                                var XY = scrollbarVars._X_Y;\n                                var strDirection = horizontal ? _strBottom : isRTLLeft;\n\n                                var reset = function () {\n                                    viewportElementCSS[strDirection] = _strEmpty;\n                                    _contentBorderSize[scrollbarVarsInverted._w_h] = 0;\n                                };\n                                if (hasOverflow[xy] && hideOverflow[xy + 's']) {\n                                    viewportElementCSS[strOverflow + XY] = _strScroll;\n                                    if (ignoreOverlayScrollbarHiding || _nativeScrollbarStyling) {\n                                        reset();\n                                    }\n                                    else {\n                                        viewportElementCSS[strDirection] = -(_nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[xy] : _nativeScrollbarSize[xy]);\n                                        _contentBorderSize[scrollbarVarsInverted._w_h] = _nativeScrollbarIsOverlaid[xy] ? _overlayScrollbarDummySize[scrollbarVarsInverted._x_y] : 0;\n                                    }\n                                } else {\n                                    viewportElementCSS[strOverflow + XY] = _strEmpty;\n                                    reset();\n                                }\n                            };\n                            setViewportCSS(true);\n                            setViewportCSS(false);\n\n                            // if the scroll container is too small and if there is any overflow with no overlay scrollbar (and scrollbar styling isn't possible), \n                            // make viewport element greater in size (Firefox hide Scrollbars fix)\n                            // because firefox starts hiding scrollbars on too small elements\n                            // with this behavior the overflow calculation may be incorrect or the scrollbars would appear suddenly\n                            // https://bugzilla.mozilla.org/show_bug.cgi?id=292284\n                            if (!_nativeScrollbarStyling\n                                && (_viewportSize.h < _nativeScrollbarMinSize.x || _viewportSize.w < _nativeScrollbarMinSize.y)\n                                && ((hasOverflow.x && hideOverflow.x && !_nativeScrollbarIsOverlaid.x) || (hasOverflow.y && hideOverflow.y && !_nativeScrollbarIsOverlaid.y))) {\n                                viewportElementCSS[_strPaddingMinus + _strTop] = _nativeScrollbarMinSize.x;\n                                viewportElementCSS[_strMarginMinus + _strTop] = -_nativeScrollbarMinSize.x;\n\n                                viewportElementCSS[_strPaddingMinus + isRTLRight] = _nativeScrollbarMinSize.y;\n                                viewportElementCSS[_strMarginMinus + isRTLRight] = -_nativeScrollbarMinSize.y;\n                            }\n                            else {\n                                viewportElementCSS[_strPaddingMinus + _strTop] =\n                                    viewportElementCSS[_strMarginMinus + _strTop] =\n                                    viewportElementCSS[_strPaddingMinus + isRTLRight] =\n                                    viewportElementCSS[_strMarginMinus + isRTLRight] = _strEmpty;\n                            }\n                            viewportElementCSS[_strPaddingMinus + isRTLLeft] =\n                                viewportElementCSS[_strMarginMinus + isRTLLeft] = _strEmpty;\n\n                            //if there is any overflow (x OR y axis) and this overflow shall be hidden, make overflow hidden, else overflow visible\n                            if ((hasOverflow.x && hideOverflow.x) || (hasOverflow.y && hideOverflow.y) || hideOverflowForceTextarea) {\n                                //only hide if is Textarea\n                                if (_isTextarea && hideOverflowForceTextarea) {\n                                    paddingElementCSS[strOverflowX] =\n                                        paddingElementCSS[strOverflowY] = strHidden;\n                                }\n                            }\n                            else {\n                                if (!clipAlways || (overflowBehaviorIsVH.x || overflowBehaviorIsVS.x || overflowBehaviorIsVH.y || overflowBehaviorIsVS.y)) {\n                                    //only un-hide if Textarea\n                                    if (_isTextarea) {\n                                        paddingElementCSS[strOverflowX] =\n                                            paddingElementCSS[strOverflowY] = _strEmpty;\n                                    }\n                                    viewportElementCSS[strOverflowX] =\n                                        viewportElementCSS[strOverflowY] = strVisible;\n                                }\n                            }\n\n                            _paddingElement.css(paddingElementCSS);\n                            _viewportElement.css(viewportElementCSS);\n                            viewportElementCSS = {};\n\n                            //force soft redraw in webkit because without the scrollbars will may appear because DOM wont be redrawn under special conditions\n                            if ((hasOverflow.c || boxSizingChanged || widthAutoChanged || heightAutoChanged) && !(_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)) {\n                                var elementStyle = _contentElementNative[LEXICON.s];\n                                var dump;\n                                elementStyle.webkitTransform = 'scale(1)';\n                                elementStyle.display = 'run-in';\n                                dump = _contentElementNative[LEXICON.oH];\n                                elementStyle.display = _strEmpty; //|| dump; //use dump to prevent it from deletion if minify\n                                elementStyle.webkitTransform = _strEmpty;\n                            }\n                            /*\n                            //force hard redraw in webkit if native overlaid scrollbars shall appear\n                            if (ignoreOverlayScrollbarHidingChanged && ignoreOverlayScrollbarHiding) {\n                                _hostElement.hide();\n                                var dump = _hostElementNative[LEXICON.oH];\n                                _hostElement.show();\n                            }\n                            */\n                        }\n\n                        //change to direction RTL and width auto Bugfix in Webkit\n                        //without this fix, the DOM still thinks the scrollbar is LTR and thus the content is shifted to the left\n                        contentElementCSS = {};\n                        if (cssDirectionChanged || widthAutoChanged || heightAutoChanged) {\n                            if (_isRTL && widthAuto) {\n                                var floatTmp = _contentElement.css(_strFloat);\n                                var posLeftWithoutFloat = MATH.round(_contentElement.css(_strFloat, _strEmpty).css(_strLeft, _strEmpty).position().left);\n                                _contentElement.css(_strFloat, floatTmp);\n                                var posLeftWithFloat = MATH.round(_contentElement.position().left);\n\n                                if (posLeftWithoutFloat !== posLeftWithFloat)\n                                    contentElementCSS[_strLeft] = posLeftWithoutFloat;\n                            }\n                            else {\n                                contentElementCSS[_strLeft] = _strEmpty;\n                            }\n                        }\n                        _contentElement.css(contentElementCSS);\n\n                        //handle scroll position\n                        if (_isTextarea && contentSizeChanged) {\n                            var textareaInfo = getTextareaInfo();\n                            if (textareaInfo) {\n                                var textareaRowsChanged = _textareaInfoCache === undefined ? true : textareaInfo._rows !== _textareaInfoCache._rows;\n                                var cursorRow = textareaInfo._cursorRow;\n                                var cursorCol = textareaInfo._cursorColumn;\n                                var widestRow = textareaInfo._widestRow;\n                                var lastRow = textareaInfo._rows;\n                                var lastCol = textareaInfo._columns;\n                                var cursorPos = textareaInfo._cursorPosition;\n                                var cursorMax = textareaInfo._cursorMax;\n                                var cursorIsLastPosition = (cursorPos >= cursorMax && _textareaHasFocus);\n                                var textareaScrollAmount = {\n                                    x: (!textareaAutoWrapping && (cursorCol === lastCol && cursorRow === widestRow)) ? _overflowAmountCache.x : -1,\n                                    y: (textareaAutoWrapping ? cursorIsLastPosition || textareaRowsChanged && (previousOverflowAmount ? (currScroll.y === previousOverflowAmount.y) : false) : (cursorIsLastPosition || textareaRowsChanged) && cursorRow === lastRow) ? _overflowAmountCache.y : -1\n                                };\n                                currScroll.x = textareaScrollAmount.x > -1 ? (_isRTL && _normalizeRTLCache && _rtlScrollBehavior.i ? 0 : textareaScrollAmount.x) : currScroll.x; //if inverted, scroll to 0 -> normalized this means to max scroll offset.\n                                currScroll.y = textareaScrollAmount.y > -1 ? textareaScrollAmount.y : currScroll.y;\n                            }\n                            _textareaInfoCache = textareaInfo;\n                        }\n                        if (_isRTL && _rtlScrollBehavior.i && _nativeScrollbarIsOverlaid.y && hasOverflow.x && _normalizeRTLCache)\n                            currScroll.x += _contentBorderSize.w || 0;\n                        if (widthAuto)\n                            _hostElement[_strScrollLeft](0);\n                        if (heightAuto)\n                            _hostElement[_strScrollTop](0);\n                        _viewportElement[_strScrollLeft](currScroll.x)[_strScrollTop](currScroll.y);\n\n                        //scrollbars management:\n                        var scrollbarsVisibilityVisible = scrollbarsVisibility === 'v';\n                        var scrollbarsVisibilityHidden = scrollbarsVisibility === 'h';\n                        var scrollbarsVisibilityAuto = scrollbarsVisibility === 'a';\n                        var refreshScrollbarsVisibility = function (showX, showY) {\n                            showY = showY === undefined ? showX : showY;\n                            refreshScrollbarAppearance(true, showX, canScroll.x)\n                            refreshScrollbarAppearance(false, showY, canScroll.y)\n                        };\n\n                        //manage class name which indicates scrollable overflow\n                        addRemoveClass(_hostElement, _classNameHostOverflow, hideOverflow.x || hideOverflow.y);\n                        addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);\n                        addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);\n\n                        //add or remove rtl class name for styling purposes except when its body, then the scrollbar stays\n                        if (cssDirectionChanged && !_isBody) {\n                            addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);\n                        }\n\n                        //manage the resize feature (CSS3 resize \"polyfill\" for this plugin)\n                        if (_isBody)\n                            addClass(_hostElement, _classNameHostResizeDisabled);\n                        if (resizeChanged) {\n                            addRemoveClass(_hostElement, _classNameHostResizeDisabled, _resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResize, !_resizeNone);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeB, _resizeBoth);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeH, _resizeHorizontal);\n                            addRemoveClass(_scrollbarCornerElement, _classNameScrollbarCornerResizeV, _resizeVertical);\n                        }\n\n                        //manage the scrollbars general visibility + the scrollbar interactivity (unusable class name)\n                        if (scrollbarsVisibilityChanged || overflowBehaviorChanged || hideOverflow.c || hasOverflow.c || ignoreOverlayScrollbarHidingChanged) {\n                            if (ignoreOverlayScrollbarHiding) {\n                                if (ignoreOverlayScrollbarHidingChanged) {\n                                    removeClass(_hostElement, _classNameHostScrolling);\n                                    if (ignoreOverlayScrollbarHiding) {\n                                        refreshScrollbarsVisibility(false);\n                                    }\n                                }\n                            }\n                            else if (scrollbarsVisibilityAuto) {\n                                refreshScrollbarsVisibility(canScroll.x, canScroll.y);\n                            }\n                            else if (scrollbarsVisibilityVisible) {\n                                refreshScrollbarsVisibility(true);\n                            }\n                            else if (scrollbarsVisibilityHidden) {\n                                refreshScrollbarsVisibility(false);\n                            }\n                        }\n\n                        //manage the scrollbars auto hide feature (auto hide them after specific actions)\n                        if (scrollbarsAutoHideChanged || ignoreOverlayScrollbarHidingChanged) {\n                            setupHostMouseTouchEvents(!_scrollbarsAutoHideLeave && !_scrollbarsAutoHideMove);\n                            refreshScrollbarsAutoHide(_scrollbarsAutoHideNever, !_scrollbarsAutoHideNever);\n                        }\n\n                        //manage scrollbars handle length & offset - don't remove!\n                        if (hostSizeChanged || overflowAmount.c || heightAutoChanged || widthAutoChanged || resizeChanged || boxSizingChanged || paddingAbsoluteChanged || ignoreOverlayScrollbarHidingChanged || cssDirectionChanged) {\n                            refreshScrollbarHandleLength(true);\n                            refreshScrollbarHandleOffset(true);\n                            refreshScrollbarHandleLength(false);\n                            refreshScrollbarHandleOffset(false);\n                        }\n\n                        //manage interactivity\n                        if (scrollbarsClickScrollingChanged)\n                            refreshScrollbarsInteractive(true, scrollbarsClickScrolling);\n                        if (scrollbarsDragScrollingChanged)\n                            refreshScrollbarsInteractive(false, scrollbarsDragScrolling);\n\n                        //callbacks:\n                        dispatchCallback('onDirectionChanged', {\n                            isRTL: _isRTL,\n                            dir: cssDirection\n                        }, cssDirectionChanged);\n                        dispatchCallback('onHostSizeChanged', {\n                            width: _hostSizeCache.w,\n                            height: _hostSizeCache.h\n                        }, hostSizeChanged);\n                        dispatchCallback('onContentSizeChanged', {\n                            width: _contentScrollSizeCache.w,\n                            height: _contentScrollSizeCache.h\n                        }, contentSizeChanged);\n                        dispatchCallback('onOverflowChanged', {\n                            x: hasOverflow.x,\n                            y: hasOverflow.y,\n                            xScrollable: hideOverflow.xs,\n                            yScrollable: hideOverflow.ys,\n                            clipped: hideOverflow.x || hideOverflow.y\n                        }, hasOverflow.c || hideOverflow.c);\n                        dispatchCallback('onOverflowAmountChanged', {\n                            x: overflowAmount.x,\n                            y: overflowAmount.y\n                        }, overflowAmount.c);\n                    }\n\n                    //fix body min size\n                    if (_isBody && _bodyMinSizeCache && (_hasOverflowCache.c || _bodyMinSizeCache.c)) {\n                        //its possible that no min size was measured until now, because the content arrange element was just added now, in this case, measure now the min size.\n                        if (!_bodyMinSizeCache.f)\n                            bodyMinSizeChanged();\n                        if (_nativeScrollbarIsOverlaid.y && _hasOverflowCache.x)\n                            _contentElement.css(_strMinMinus + _strWidth, _bodyMinSizeCache.w + _overlayScrollbarDummySize.y);\n                        if (_nativeScrollbarIsOverlaid.x && _hasOverflowCache.y)\n                            _contentElement.css(_strMinMinus + _strHeight, _bodyMinSizeCache.h + _overlayScrollbarDummySize.x);\n                        _bodyMinSizeCache.c = false;\n                    }\n\n                    if (_initialized && changedOptions.updateOnLoad) {\n                        updateElementsOnLoad();\n                    }\n\n                    //freezeResizeObserver(_sizeObserverElement, false);\n                    //freezeResizeObserver(_sizeAutoObserverElement, false);\n\n                    dispatchCallback('onUpdated', { forced: force });\n                }\n\n                /**\n                 * Updates the found elements of which the load event shall be handled.\n                 */\n                function updateElementsOnLoad() {\n                    if (!_isTextarea) {\n                        eachUpdateOnLoad(function (i, updateOnLoadSelector) {\n                            _contentElement.find(updateOnLoadSelector).each(function (i, el) {\n                                // if element doesn't have a updateOnLoadCallback applied\n                                if (COMPATIBILITY.inA(el, _updateOnLoadElms) < 0) {\n                                    _updateOnLoadElms.push(el);\n                                    FRAMEWORK(el)\n                                        .off(_updateOnLoadEventName, updateOnLoadCallback)\n                                        .on(_updateOnLoadEventName, updateOnLoadCallback);\n                                }\n                            });\n                        });\n                    }\n                }\n\n                //==== Options ====//\n\n                /**\n                 * Sets new options but doesn't call the update method.\n                 * @param newOptions The object which contains the new options.\n                 * @returns {*} A object which contains the changed options.\n                 */\n                function setOptions(newOptions) {\n                    var validatedOpts = _pluginsOptions._validate(newOptions, _pluginsOptions._template, true, _currentOptions)\n\n                    _currentOptions = extendDeep({}, _currentOptions, validatedOpts._default);\n                    _currentPreparedOptions = extendDeep({}, _currentPreparedOptions, validatedOpts._prepared);\n\n                    return validatedOpts._prepared;\n                }\n\n\n                //==== Structure ====//\n\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                /**\n                 * Builds or destroys the wrapper and helper DOM elements.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupStructureDOM(destroy) {\n                    var strParent = 'parent';\n                    var classNameResizeObserverHost = 'os-resize-observer-host';\n                    var classNameTextareaElementFull = _classNameTextareaElement + _strSpace + _classNameTextInherit;\n                    var textareaClass = _isTextarea ? _strSpace + _classNameTextInherit : _strEmpty;\n                    var adoptAttrs = _currentPreparedOptions.textarea.inheritedAttrs;\n                    var adoptAttrsMap = {};\n                    var applyAdoptedAttrs = function () {\n                        var applyAdoptedAttrsElm = destroy ? _targetElement : _hostElement;\n                        each(adoptAttrsMap, function (key, value) {\n                            if (type(value) == TYPES.s) {\n                                if (key == LEXICON.c)\n                                    applyAdoptedAttrsElm.addClass(value);\n                                else\n                                    applyAdoptedAttrsElm.attr(key, value);\n                            }\n                        });\n                    };\n                    var hostElementClassNames = [\n                        _classNameHostElement,\n                        _classNameHostElementForeign,\n                        _classNameHostTextareaElement,\n                        _classNameHostResizeDisabled,\n                        _classNameHostRTL,\n                        _classNameHostScrollbarHorizontalHidden,\n                        _classNameHostScrollbarVerticalHidden,\n                        _classNameHostTransition,\n                        _classNameHostScrolling,\n                        _classNameHostOverflow,\n                        _classNameHostOverflowX,\n                        _classNameHostOverflowY,\n                        _classNameThemeNone,\n                        _classNameTextareaElement,\n                        _classNameTextInherit,\n                        _classNameCache].join(_strSpace);\n                    var hostElementCSS = {};\n\n                    //get host element as first element, because that's the most upper element and required for the other elements\n                    _hostElement = _hostElement || (_isTextarea ? (_domExists ? _targetElement[strParent]()[strParent]()[strParent]()[strParent]() : FRAMEWORK(generateDiv(_classNameHostTextareaElement))) : _targetElement);\n                    _contentElement = _contentElement || selectOrGenerateDivByClass(_classNameContentElement + textareaClass);\n                    _viewportElement = _viewportElement || selectOrGenerateDivByClass(_classNameViewportElement + textareaClass);\n                    _paddingElement = _paddingElement || selectOrGenerateDivByClass(_classNamePaddingElement + textareaClass);\n                    _sizeObserverElement = _sizeObserverElement || selectOrGenerateDivByClass(classNameResizeObserverHost);\n                    _textareaCoverElement = _textareaCoverElement || (_isTextarea ? selectOrGenerateDivByClass(_classNameTextareaCoverElement) : undefined);\n\n                    //add this class to workaround class changing issues with UI frameworks especially Vue\n                    if (_domExists)\n                        addClass(_hostElement, _classNameHostElementForeign);\n\n                    //on destroy, remove all generated class names from the host element before collecting the adopted attributes \n                    //to prevent adopting generated class names\n                    if (destroy)\n                        removeClass(_hostElement, hostElementClassNames);\n\n                    //collect all adopted attributes\n                    adoptAttrs = type(adoptAttrs) == TYPES.s ? adoptAttrs.split(_strSpace) : adoptAttrs;\n                    if (COMPATIBILITY.isA(adoptAttrs) && _isTextarea) {\n                        each(adoptAttrs, function (i, v) {\n                            if (type(v) == TYPES.s) {\n                                adoptAttrsMap[v] = destroy ? _hostElement.attr(v) : _targetElement.attr(v);\n                            }\n                        });\n                    }\n\n                    if (!destroy) {\n                        if (_isTextarea) {\n                            if (!_currentPreparedOptions.sizeAutoCapable) {\n                                hostElementCSS[_strWidth] = _targetElement.css(_strWidth);\n                                hostElementCSS[_strHeight] = _targetElement.css(_strHeight);\n                            }\n\n                            if (!_domExists)\n                                _targetElement.addClass(_classNameTextInherit).wrap(_hostElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _hostElement = _targetElement[strParent]().css(hostElementCSS);\n                        }\n\n                        if (!_domExists) {\n                            //add the correct class to the target element\n                            addClass(_targetElement, _isTextarea ? classNameTextareaElementFull : _classNameHostElement);\n\n                            //wrap the content into the generated elements to create the required DOM\n                            _hostElement.wrapInner(_contentElement)\n                                .wrapInner(_viewportElement)\n                                .wrapInner(_paddingElement)\n                                .prepend(_sizeObserverElement);\n\n                            //jQuery clones elements in wrap functions, so we have to select them again\n                            _contentElement = findFirst(_hostElement, _strDot + _classNameContentElement);\n                            _viewportElement = findFirst(_hostElement, _strDot + _classNameViewportElement);\n                            _paddingElement = findFirst(_hostElement, _strDot + _classNamePaddingElement);\n\n                            if (_isTextarea) {\n                                _contentElement.prepend(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_nativeScrollbarStyling)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsInvisible);\n                        if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y)\n                            addClass(_viewportElement, _classNameViewportNativeScrollbarsOverlaid);\n                        if (_isBody)\n                            addClass(_htmlElement, _classNameHTMLElement);\n\n                        _sizeObserverElementNative = _sizeObserverElement[0];\n                        _hostElementNative = _hostElement[0];\n                        _paddingElementNative = _paddingElement[0];\n                        _viewportElementNative = _viewportElement[0];\n                        _contentElementNative = _contentElement[0];\n\n                        updateViewportAttrsFromTarget();\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            //clear size observer\n                            _sizeObserverElement.children().remove();\n\n                            //remove the style property and classes from already generated elements\n                            each([_paddingElement, _viewportElement, _contentElement, _textareaCoverElement], function (i, elm) {\n                                if (elm) {\n                                    removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                                }\n                            });\n\n                            //add classes to the host element which was removed previously to match the expected DOM\n                            addClass(_hostElement, _isTextarea ? _classNameHostTextareaElement : _classNameHostElement);\n                        }\n                        else {\n                            //remove size observer\n                            remove(_sizeObserverElement);\n\n                            //unwrap the content to restore DOM\n                            _contentElement.contents()\n                                .unwrap()\n                                .unwrap()\n                                .unwrap();\n\n                            if (_isTextarea) {\n                                _targetElement.unwrap();\n                                remove(_hostElement);\n                                remove(_textareaCoverElement);\n                                applyAdoptedAttrs();\n                            }\n                        }\n\n                        if (_isTextarea)\n                            _targetElement.removeAttr(LEXICON.s);\n\n                        if (_isBody)\n                            removeClass(_htmlElement, _classNameHTMLElement);\n                    }\n                }\n\n                /**\n                 * Adds or removes all wrapper elements interactivity events.\n                 * @param destroy Indicates whether the Events shall be added or removed.\n                 */\n                function setupStructureEvents() {\n                    var textareaKeyDownRestrictedKeyCodes = [\n                        112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123,    //F1 to F12\n                        33, 34,                                                   //page up, page down\n                        37, 38, 39, 40,                                           //left, up, right, down arrows\n                        16, 17, 18, 19, 20, 144                                   //Shift, Ctrl, Alt, Pause, CapsLock, NumLock\n                    ];\n                    var textareaKeyDownKeyCodesList = [];\n                    var textareaUpdateIntervalID;\n                    var scrollStopTimeoutId;\n                    var scrollStopDelay = 175;\n                    var strFocus = 'focus';\n\n                    function updateTextarea(doClearInterval) {\n                        textareaUpdate();\n                        _base.update(_strAuto);\n                        if (doClearInterval && _autoUpdateRecommended)\n                            clearInterval(textareaUpdateIntervalID);\n                    }\n                    function textareaOnScroll(event) {\n                        _targetElement[_strScrollLeft](_rtlScrollBehavior.i && _normalizeRTLCache ? 9999999 : 0);\n                        _targetElement[_strScrollTop](0);\n                        COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                        return false;\n                    }\n                    function textareaOnDrop(event) {\n                        setTimeout(function () {\n                            if (!_destroyed)\n                                updateTextarea();\n                        }, 50);\n                    }\n                    function textareaOnFocus() {\n                        _textareaHasFocus = true;\n                        addClass(_hostElement, strFocus);\n                    }\n                    function textareaOnFocusout() {\n                        _textareaHasFocus = false;\n                        textareaKeyDownKeyCodesList = [];\n                        removeClass(_hostElement, strFocus);\n                        updateTextarea(true);\n                    }\n                    function textareaOnKeyDown(event) {\n                        var keyCode = event.keyCode;\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l]) {\n                                updateTextarea();\n                                textareaUpdateIntervalID = setInterval(updateTextarea, 1000 / 60);\n                            }\n                            if (inArray(keyCode, textareaKeyDownKeyCodesList) < 0)\n                                textareaKeyDownKeyCodesList.push(keyCode);\n                        }\n                    }\n                    function textareaOnKeyUp(event) {\n                        var keyCode = event.keyCode;\n                        var index = inArray(keyCode, textareaKeyDownKeyCodesList);\n\n                        if (inArray(keyCode, textareaKeyDownRestrictedKeyCodes) < 0) {\n                            if (index > -1)\n                                textareaKeyDownKeyCodesList.splice(index, 1);\n                            if (!textareaKeyDownKeyCodesList[LEXICON.l])\n                                updateTextarea(true);\n                        }\n                    }\n                    function contentOnTransitionEnd(event) {\n                        if (_autoUpdateCache === true)\n                            return;\n                        event = event.originalEvent || event;\n                        if (isSizeAffectingCSSProperty(event.propertyName))\n                            _base.update(_strAuto);\n                    }\n                    function viewportOnScroll(event) {\n                        if (!_sleeping) {\n                            if (scrollStopTimeoutId !== undefined)\n                                clearTimeout(scrollStopTimeoutId);\n                            else {\n                                if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                    refreshScrollbarsAutoHide(true);\n\n                                if (!nativeOverlayScrollbarsAreActive())\n                                    addClass(_hostElement, _classNameHostScrolling);\n\n                                dispatchCallback('onScrollStart', event);\n                            }\n\n                            //if a scrollbars handle gets dragged, the mousemove event is responsible for refreshing the handle offset\n                            //because if CSS scroll-snap is used, the handle offset gets only refreshed on every snap point\n                            //this looks laggy & clunky, it looks much better if the offset refreshes with the mousemove\n                            if (!_scrollbarsHandlesDefineScrollPos) {\n                                refreshScrollbarHandleOffset(true);\n                                refreshScrollbarHandleOffset(false);\n                            }\n                            dispatchCallback('onScroll', event);\n\n                            scrollStopTimeoutId = setTimeout(function () {\n                                if (!_destroyed) {\n                                    //OnScrollStop:\n                                    clearTimeout(scrollStopTimeoutId);\n                                    scrollStopTimeoutId = undefined;\n\n                                    if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                        refreshScrollbarsAutoHide(false);\n\n                                    if (!nativeOverlayScrollbarsAreActive())\n                                        removeClass(_hostElement, _classNameHostScrolling);\n\n                                    dispatchCallback('onScrollStop', event);\n                                }\n                            }, scrollStopDelay);\n                        }\n                    }\n\n\n                    if (_isTextarea) {\n                        if (_msieVersion > 9 || !_autoUpdateRecommended) {\n                            addDestroyEventListener(_targetElement, 'input', updateTextarea);\n                        }\n                        else {\n                            addDestroyEventListener(_targetElement,\n                                [_strKeyDownEvent, _strKeyUpEvent],\n                                [textareaOnKeyDown, textareaOnKeyUp]);\n                        }\n\n                        addDestroyEventListener(_targetElement,\n                            [_strScroll, 'drop', strFocus, strFocus + 'out'],\n                            [textareaOnScroll, textareaOnDrop, textareaOnFocus, textareaOnFocusout]);\n                    }\n                    else {\n                        addDestroyEventListener(_contentElement, _strTransitionEndEvent, contentOnTransitionEnd);\n                    }\n                    addDestroyEventListener(_viewportElement, _strScroll, viewportOnScroll, true);\n                }\n\n\n                //==== Scrollbars ====//\n\n                /**\n                 * Builds or destroys all scrollbar DOM elements (scrollbar, track, handle)\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarsDOM(destroy) {\n                    var selectOrGenerateScrollbarDOM = function (isHorizontal) {\n                        var scrollbarClassName = isHorizontal ? _classNameScrollbarHorizontal : _classNameScrollbarVertical;\n                        var scrollbar = selectOrGenerateDivByClass(_classNameScrollbar + _strSpace + scrollbarClassName, true);\n                        var track = selectOrGenerateDivByClass(_classNameScrollbarTrack, scrollbar);\n                        var handle = selectOrGenerateDivByClass(_classNameScrollbarHandle, scrollbar);\n\n                        if (!_domExists && !destroy) {\n                            scrollbar.append(track);\n                            track.append(handle);\n                        }\n\n                        return {\n                            _scrollbar: scrollbar,\n                            _track: track,\n                            _handle: handle\n                        };\n                    };\n                    function resetScrollbarDOM(isHorizontal) {\n                        var scrollbarVars = getScrollbarVars(isHorizontal);\n                        var scrollbar = scrollbarVars._scrollbar;\n                        var track = scrollbarVars._track;\n                        var handle = scrollbarVars._handle;\n\n                        if (_domExists && _initialized) {\n                            each([scrollbar, track, handle], function (i, elm) {\n                                removeClass(elm.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                            });\n                        }\n                        else {\n                            remove(scrollbar || selectOrGenerateScrollbarDOM(isHorizontal)._scrollbar);\n                        }\n                    }\n                    var horizontalElements;\n                    var verticalElements;\n\n                    if (!destroy) {\n                        horizontalElements = selectOrGenerateScrollbarDOM(true);\n                        verticalElements = selectOrGenerateScrollbarDOM();\n\n                        _scrollbarHorizontalElement = horizontalElements._scrollbar;\n                        _scrollbarHorizontalTrackElement = horizontalElements._track;\n                        _scrollbarHorizontalHandleElement = horizontalElements._handle;\n                        _scrollbarVerticalElement = verticalElements._scrollbar;\n                        _scrollbarVerticalTrackElement = verticalElements._track;\n                        _scrollbarVerticalHandleElement = verticalElements._handle;\n\n                        if (!_domExists) {\n                            _paddingElement.after(_scrollbarVerticalElement);\n                            _paddingElement.after(_scrollbarHorizontalElement);\n                        }\n                    }\n                    else {\n                        resetScrollbarDOM(true);\n                        resetScrollbarDOM();\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar interactivity events. (track and handle dragging, clicking, scrolling)\n                 * @param isHorizontal True if the target scrollbar is the horizontal scrollbar, false if the target scrollbar is the vertical scrollbar.\n                 */\n                function setupScrollbarEvents(isHorizontal) {\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var xy = scrollbarVars._x_y;\n                    var XY = scrollbarVars._X_Y;\n                    var scroll = _strScroll + scrollbarVars._Left_Top;\n                    var strActive = 'active';\n                    var strSnapHandle = 'snapHandle';\n                    var strClickEvent = 'click';\n                    var scrollDurationFactor = 1;\n                    var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl\n                    var trackTimeout;\n                    var mouseDownScroll;\n                    var mouseDownOffset;\n                    var mouseDownInvertedScale;\n\n                    function getPointerPosition(event) {\n                        return _msieVersion && insideIFrame ? event['screen' + XY] : COMPATIBILITY.page(event)[xy]; //use screen coordinates in EDGE & IE because the page values are incorrect in frames.\n                    }\n                    function getPreparedScrollbarsOption(name) {\n                        return _currentPreparedOptions.scrollbars[name];\n                    }\n                    function increaseTrackScrollAmount() {\n                        scrollDurationFactor = 0.5;\n                    }\n                    function decreaseTrackScrollAmount() {\n                        scrollDurationFactor = 1;\n                    }\n                    function stopClickEventPropagation(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function documentKeyDown(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            increaseTrackScrollAmount();\n                    }\n                    function documentKeyUp(event) {\n                        if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)\n                            decreaseTrackScrollAmount();\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed || nativeOverlayScrollbarsAreActive() || !_scrollbarsDragScrollingCache || (isTouchEvent && !getPreparedScrollbarsOption('touchSupport')) ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var trackLength = scrollbarVarsInfo._trackLength;\n                            var handleLength = scrollbarVarsInfo._handleLength;\n                            var scrollRange = scrollbarVarsInfo._maxScroll;\n                            var scrollRaw = (getPointerPosition(event) - mouseDownOffset) * mouseDownInvertedScale;\n                            var scrollDeltaPercent = scrollRaw / (trackLength - handleLength);\n                            var scrollDelta = (scrollRange * scrollDeltaPercent);\n                            scrollDelta = isFinite(scrollDelta) ? scrollDelta : 0;\n                            if (_isRTL && isHorizontal && !_rtlScrollBehavior.i)\n                                scrollDelta *= -1;\n\n                            _viewportElement[scroll](MATH.round(mouseDownScroll + scrollDelta));\n\n                            if (_scrollbarsHandlesDefineScrollPos)\n                                refreshScrollbarHandleOffset(isHorizontal, mouseDownScroll + scrollDelta);\n\n                            if (!_supportPassiveEvents)\n                                COMPATIBILITY.prvD(event);\n                        }\n                        else\n                            documentMouseTouchUp(event);\n                    }\n                    function documentMouseTouchUp(event) {\n                        event = event || event.originalEvent;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],\n                            true);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });\n                        });\n                        \n                            \n                        if (_scrollbarsHandlesDefineScrollPos)\n                            refreshScrollbarHandleOffset(isHorizontal, true);\n\n                        _scrollbarsHandlesDefineScrollPos = false;\n                        removeClass(_bodyElement, _classNameDragging);\n                        removeClass(scrollbarVars._handle, strActive);\n                        removeClass(scrollbarVars._track, strActive);\n                        removeClass(scrollbarVars._scrollbar, strActive);\n\n                        mouseDownScroll = undefined;\n                        mouseDownOffset = undefined;\n                        mouseDownInvertedScale = 1;\n\n                        decreaseTrackScrollAmount();\n\n                        if (trackTimeout !== undefined) {\n                            _base.scrollStop();\n                            clearTimeout(trackTimeout);\n                            trackTimeout = undefined;\n                        }\n\n                        if (event) {\n                            var rect = _hostElementNative[LEXICON.bCR]();\n                            var mouseInsideHost = event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;\n\n                            //if mouse is outside host element\n                            if (!mouseInsideHost)\n                                hostOnMouseLeave();\n\n                            if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                                refreshScrollbarsAutoHide(false);\n                        }\n                    }\n                    function onHandleMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event))\n                            onHandleMouseTouchDownAction(event);\n                    }\n                    function onHandleMouseTouchDownAction(event) {\n                        mouseDownScroll = _viewportElement[scroll]();\n                        mouseDownScroll = isNaN(mouseDownScroll) ? 0 : mouseDownScroll;\n                        if (_isRTL && isHorizontal && !_rtlScrollBehavior.n || !_isRTL)\n                            mouseDownScroll = mouseDownScroll < 0 ? 0 : mouseDownScroll;\n\n                        mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                        mouseDownOffset = getPointerPosition(event);\n\n                        _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                        addClass(_bodyElement, _classNameDragging);\n                        addClass(scrollbarVars._handle, strActive);\n                        addClass(scrollbarVars._scrollbar, strActive);\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],\n                            [documentDragMove, documentMouseTouchUp, documentOnSelectStart]);\n                        COMPATIBILITY.rAF()(function() {\n                            setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });\n                        });\n                        \n\n                        if (_msieVersion || !_documentMixed)\n                            COMPATIBILITY.prvD(event);\n                        COMPATIBILITY.stpP(event);\n                    }\n                    function onTrackMouseTouchDown(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);\n                            var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);\n                            var scrollBaseDuration = 270 * handleToViewportRatio;\n                            var scrollFirstIterationDelay = 400 * handleToViewportRatio;\n                            var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];\n                            var ctrlKey = event.ctrlKey;\n                            var instantScroll = event.shiftKey;\n                            var instantScrollTransition = instantScroll && ctrlKey;\n                            var isFirstIteration = true;\n                            var easing = 'linear';\n                            var decreaseScroll;\n                            var finishedCondition;\n                            var scrollActionFinsished = function (transition) {\n                                if (_scrollbarsHandlesDefineScrollPos)\n                                    refreshScrollbarHandleOffset(isHorizontal, transition);\n                            };\n                            var scrollActionInstantFinished = function () {\n                                scrollActionFinsished();\n                                onHandleMouseTouchDownAction(event);\n                            };\n                            var scrollAction = function () {\n                                if (!_destroyed) {\n                                    var mouseOffset = (mouseDownOffset - trackOffset) * mouseDownInvertedScale;\n                                    var handleOffset = scrollbarVarsInfo._handleOffset;\n                                    var trackLength = scrollbarVarsInfo._trackLength;\n                                    var handleLength = scrollbarVarsInfo._handleLength;\n                                    var scrollRange = scrollbarVarsInfo._maxScroll;\n                                    var currScroll = scrollbarVarsInfo._currentScroll;\n                                    var scrollDuration = scrollBaseDuration * scrollDurationFactor;\n                                    var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;\n                                    var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent\n                                    var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);\n                                    var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;\n                                    var scrollObj = {};\n                                    var animationObj = {\n                                        easing: easing,\n                                        step: function (now) {\n                                            if (_scrollbarsHandlesDefineScrollPos) {\n                                                _viewportElement[scroll](now); //https://github.com/jquery/jquery/issues/4340\n                                                refreshScrollbarHandleOffset(isHorizontal, now);\n                                            }\n                                        }\n                                    };\n                                    instantScrollPosition = isFinite(instantScrollPosition) ? instantScrollPosition : 0;\n                                    instantScrollPosition = _isRTL && isHorizontal && !_rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n\n                                    //_base.scrollStop();\n\n                                    if (instantScroll) {\n                                        _viewportElement[scroll](instantScrollPosition); //scroll instantly to new position\n                                        if (instantScrollTransition) {\n                                            //get the scroll position after instant scroll (in case CSS Snap Points are used) to get the correct snapped scroll position\n                                            //and the animation stops at the correct point\n                                            instantScrollPosition = _viewportElement[scroll]();\n                                            //scroll back to the position before instant scrolling so animation can be performed\n                                            _viewportElement[scroll](currScroll);\n\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.i ? (scrollRange - instantScrollPosition) : instantScrollPosition;\n                                            instantScrollPosition = rtlIsNormal && _rtlScrollBehavior.n ? -instantScrollPosition : instantScrollPosition;\n\n                                            scrollObj[xy] = instantScrollPosition;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: 130,\n                                                complete: scrollActionInstantFinished\n                                            }));\n                                        }\n                                        else\n                                            scrollActionInstantFinished();\n                                    }\n                                    else {\n                                        decreaseScroll = isFirstIteration ? decreaseScrollCondition : decreaseScroll;\n                                        finishedCondition = rtlIsNormal\n                                            ? (decreaseScroll ? handleOffset + handleLength >= mouseOffset : handleOffset <= mouseOffset)\n                                            : (decreaseScroll ? handleOffset <= mouseOffset : handleOffset + handleLength >= mouseOffset);\n\n                                        if (finishedCondition) {\n                                            clearTimeout(trackTimeout);\n                                            _base.scrollStop();\n                                            trackTimeout = undefined;\n                                            scrollActionFinsished(true);\n                                        }\n                                        else {\n                                            trackTimeout = setTimeout(scrollAction, timeoutDelay);\n\n                                            scrollObj[xy] = (decreaseScroll ? '-=' : '+=') + scrollDistance;\n                                            _base.scroll(scrollObj, extendDeep(animationObj, {\n                                                duration: scrollDuration\n                                            }));\n                                        }\n                                        isFirstIteration = false;\n                                    }\n                                }\n                            };\n                            if (ctrlKey)\n                                increaseTrackScrollAmount();\n\n                            mouseDownInvertedScale = getHostElementInvertedScale()[xy];\n                            mouseDownOffset = COMPATIBILITY.page(event)[xy];\n\n                            _scrollbarsHandlesDefineScrollPos = !getPreparedScrollbarsOption(strSnapHandle);\n                            addClass(_bodyElement, _classNameDragging);\n                            addClass(scrollbarVars._track, strActive);\n                            addClass(scrollbarVars._scrollbar, strActive);\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],\n                                [documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart]);\n\n                            scrollAction();\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    }\n                    function onTrackMouseTouchEnter(event) {\n                        //make sure both scrollbars will stay visible if one scrollbar is hovered if autoHide is \"scroll\" or \"move\".\n                        _scrollbarsHandleHovered = true;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(true);\n                    }\n                    function onTrackMouseTouchLeave(event) {\n                        _scrollbarsHandleHovered = false;\n                        if (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove)\n                            refreshScrollbarsAutoHide(false);\n                    }\n                    function onScrollbarMouseTouchDown(event) {\n                        COMPATIBILITY.stpP(event);\n                    }\n\n                    addDestroyEventListener(scrollbarVars._handle,\n                        _strMouseTouchDownEvent,\n                        onHandleMouseTouchDown);\n                    addDestroyEventListener(scrollbarVars._track,\n                        [_strMouseTouchDownEvent, _strMouseEnter, _strMouseLeave],\n                        [onTrackMouseTouchDown, onTrackMouseTouchEnter, onTrackMouseTouchLeave]);\n                    addDestroyEventListener(scrollbarVars._scrollbar,\n                        _strMouseTouchDownEvent,\n                        onScrollbarMouseTouchDown);\n\n                    if (_supportTransition) {\n                        addDestroyEventListener(scrollbarVars._scrollbar, _strTransitionEndEvent, function (event) {\n                            if (event.target !== scrollbarVars._scrollbar[0])\n                                return;\n                            refreshScrollbarHandleLength(isHorizontal);\n                            refreshScrollbarHandleOffset(isHorizontal);\n                        });\n                    }\n                }\n\n                /**\n                 * Shows or hides the given scrollbar and applied a class name which indicates if the scrollbar is scrollable or not.\n                 * @param isHorizontal True if the horizontal scrollbar is the target, false if the vertical scrollbar is the target.\n                 * @param shallBeVisible True if the scrollbar shall be shown, false if hidden.\n                 * @param canScroll True if the scrollbar is scrollable, false otherwise.\n                 */\n                function refreshScrollbarAppearance(isHorizontal, shallBeVisible, canScroll) {\n                    var scrollbarHiddenClassName = isHorizontal ? _classNameHostScrollbarHorizontalHidden : _classNameHostScrollbarVerticalHidden;\n                    var scrollbarElement = isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement;\n\n                    addRemoveClass(_hostElement, scrollbarHiddenClassName, !shallBeVisible);\n                    addRemoveClass(scrollbarElement, _classNameScrollbarUnusable, !canScroll);\n                }\n\n                /**\n                 * Autoshows / autohides both scrollbars with.\n                 * @param shallBeVisible True if the scrollbars shall be autoshown (only the case if they are hidden by a autohide), false if the shall be auto hidden.\n                 * @param delayfree True if the scrollbars shall be hidden without a delay, false or undefined otherwise.\n                 */\n                function refreshScrollbarsAutoHide(shallBeVisible, delayfree) {\n                    clearTimeout(_scrollbarsAutoHideTimeoutId);\n                    if (shallBeVisible) {\n                        //if(_hasOverflowCache.x && _hideOverflowCache.xs)\n                        removeClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                        //if(_hasOverflowCache.y && _hideOverflowCache.ys)\n                        removeClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                    }\n                    else {\n                        var anyActive;\n                        var strActive = 'active';\n                        var hide = function () {\n                            if (!_scrollbarsHandleHovered && !_destroyed) {\n                                anyActive = _scrollbarHorizontalHandleElement.hasClass(strActive) || _scrollbarVerticalHandleElement.hasClass(strActive);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarHorizontalElement, _classNameScrollbarAutoHidden);\n                                if (!anyActive && (_scrollbarsAutoHideScroll || _scrollbarsAutoHideMove || _scrollbarsAutoHideLeave))\n                                    addClass(_scrollbarVerticalElement, _classNameScrollbarAutoHidden);\n                            }\n                        };\n                        if (_scrollbarsAutoHideDelay > 0 && delayfree !== true)\n                            _scrollbarsAutoHideTimeoutId = setTimeout(hide, _scrollbarsAutoHideDelay);\n                        else\n                            hide();\n                    }\n                }\n\n                /**\n                 * Refreshes the handle length of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 */\n                function refreshScrollbarHandleLength(isHorizontal) {\n                    var handleCSS = {};\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var digit = 1000000;\n                    //get and apply intended handle length\n                    var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);\n                    handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit\n\n                    if (!nativeOverlayScrollbarsAreActive())\n                        scrollbarVars._handle.css(handleCSS);\n\n                    //measure the handle length to respect min & max length\n                    scrollbarVarsInfo._handleLength = scrollbarVars._handle[0]['offset' + scrollbarVars._Width_Height];\n                    scrollbarVarsInfo._handleLengthRatio = handleRatio;\n                }\n\n                /**\n                 * Refreshes the handle offset of the given scrollbar.\n                 * @param isHorizontal True if the horizontal scrollbar handle shall be refreshed, false if the vertical one shall be refreshed.\n                 * @param scrollOrTransition The scroll position of the given scrollbar axis to which the handle shall be moved or a boolean which indicates whether a transition shall be applied. If undefined or boolean if the current scroll-offset is taken. (if isHorizontal ? scrollLeft : scrollTop)\n                 */\n                function refreshScrollbarHandleOffset(isHorizontal, scrollOrTransition) {\n                    var transition = type(scrollOrTransition) == TYPES.b;\n                    var transitionDuration = 250;\n                    var isRTLisHorizontal = _isRTL && isHorizontal;\n                    var scrollbarVars = getScrollbarVars(isHorizontal);\n                    var scrollbarVarsInfo = scrollbarVars._info;\n                    var strTranslateBrace = 'translate(';\n                    var strTransform = VENDORS._cssProperty('transform');\n                    var strTransition = VENDORS._cssProperty('transition');\n                    var nativeScroll = isHorizontal ? _viewportElement[_strScrollLeft]() : _viewportElement[_strScrollTop]();\n                    var currentScroll = scrollOrTransition === undefined || transition ? nativeScroll : scrollOrTransition;\n\n                    //measure the handle length to respect min & max length\n                    var handleLength = scrollbarVarsInfo._handleLength;\n                    var trackLength = scrollbarVars._track[0]['offset' + scrollbarVars._Width_Height];\n                    var handleTrackDiff = trackLength - handleLength;\n                    var handleCSS = {};\n                    var transformOffset;\n                    var translateValue;\n\n                    //DONT use the variable '_contentScrollSizeCache[scrollbarVars._w_h]' instead of '_viewportElement[0]['scroll' + scrollbarVars._Width_Height]'\n                    // because its a bit behind during the small delay when content size updates\n                    //(delay = mutationObserverContentLag, if its 0 then this var could be used)\n                    var maxScroll = (_viewportElementNative[_strScroll + scrollbarVars._Width_Height] - _viewportElementNative['client' + scrollbarVars._Width_Height]) * (_rtlScrollBehavior.n && isRTLisHorizontal ? -1 : 1); //* -1 if rtl scroll max is negative\n                    var getScrollRatio = function (base) {\n                        return isNaN(base / maxScroll) ? 0 : MATH.max(0, MATH.min(1, base / maxScroll));\n                    };\n                    var getHandleOffset = function (scrollRatio) {\n                        var offset = handleTrackDiff * scrollRatio;\n                        offset = isNaN(offset) ? 0 : offset;\n                        offset = (isRTLisHorizontal && !_rtlScrollBehavior.i) ? (trackLength - handleLength - offset) : offset;\n                        offset = MATH.max(0, offset);\n                        return offset;\n                    };\n                    var scrollRatio = getScrollRatio(nativeScroll);\n                    var unsnappedScrollRatio = getScrollRatio(currentScroll);\n                    var handleOffset = getHandleOffset(unsnappedScrollRatio);\n                    var snappedHandleOffset = getHandleOffset(scrollRatio);\n\n                    scrollbarVarsInfo._maxScroll = maxScroll;\n                    scrollbarVarsInfo._currentScroll = nativeScroll;\n                    scrollbarVarsInfo._currentScrollRatio = scrollRatio;\n\n                    if (_supportTransform) {\n                        transformOffset = isRTLisHorizontal ? -(trackLength - handleLength - handleOffset) : handleOffset; //in px\n                        //transformOffset = (transformOffset / trackLength * 100) * (trackLength / handleLength); //in %\n                        translateValue = isHorizontal ? strTranslateBrace + transformOffset + 'px, 0)' : strTranslateBrace + '0, ' + transformOffset + 'px)';\n\n                        handleCSS[strTransform] = translateValue;\n\n                        //apply or clear up transition\n                        if (_supportTransition)\n                            handleCSS[strTransition] = transition && MATH.abs(handleOffset - scrollbarVarsInfo._handleOffset) > 1 ? getCSSTransitionString(scrollbarVars._handle) + ', ' + (strTransform + _strSpace + transitionDuration + 'ms') : _strEmpty;\n                    }\n                    else\n                        handleCSS[scrollbarVars._left_top] = handleOffset;\n\n\n                    //only apply css if offset has changed and overflow exists.\n                    if (!nativeOverlayScrollbarsAreActive()) {\n                        scrollbarVars._handle.css(handleCSS);\n\n                        //clear up transition\n                        if (_supportTransform && _supportTransition && transition) {\n                            scrollbarVars._handle.one(_strTransitionEndEvent, function () {\n                                if (!_destroyed)\n                                    scrollbarVars._handle.css(strTransition, _strEmpty);\n                            });\n                        }\n                    }\n\n                    scrollbarVarsInfo._handleOffset = handleOffset;\n                    scrollbarVarsInfo._snappedHandleOffset = snappedHandleOffset;\n                    scrollbarVarsInfo._trackLength = trackLength;\n                }\n\n                /**\n                 * Refreshes the interactivity of the given scrollbar element.\n                 * @param isTrack True if the track element is the target, false if the handle element is the target.\n                 * @param value True for interactivity false for no interactivity.\n                 */\n                function refreshScrollbarsInteractive(isTrack, value) {\n                    var action = value ? 'removeClass' : 'addClass';\n                    var element1 = isTrack ? _scrollbarHorizontalTrackElement : _scrollbarHorizontalHandleElement;\n                    var element2 = isTrack ? _scrollbarVerticalTrackElement : _scrollbarVerticalHandleElement;\n                    var className = isTrack ? _classNameScrollbarTrackOff : _classNameScrollbarHandleOff;\n\n                    element1[action](className);\n                    element2[action](className);\n                }\n\n                /**\n                 * Returns a object which is used for fast access for specific variables.\n                 * @param isHorizontal True if the horizontal scrollbar vars shall be accessed, false if the vertical scrollbar vars shall be accessed.\n                 * @returns {{wh: string, WH: string, lt: string, _wh: string, _lt: string, t: *, h: *, c: {}, s: *}}\n                 */\n                function getScrollbarVars(isHorizontal) {\n                    return {\n                        _width_height: isHorizontal ? _strWidth : _strHeight,\n                        _Width_Height: isHorizontal ? 'Width' : 'Height',\n                        _left_top: isHorizontal ? _strLeft : _strTop,\n                        _Left_Top: isHorizontal ? 'Left' : 'Top',\n                        _x_y: isHorizontal ? _strX : _strY,\n                        _X_Y: isHorizontal ? 'X' : 'Y',\n                        _w_h: isHorizontal ? 'w' : 'h',\n                        _l_t: isHorizontal ? 'l' : 't',\n                        _track: isHorizontal ? _scrollbarHorizontalTrackElement : _scrollbarVerticalTrackElement,\n                        _handle: isHorizontal ? _scrollbarHorizontalHandleElement : _scrollbarVerticalHandleElement,\n                        _scrollbar: isHorizontal ? _scrollbarHorizontalElement : _scrollbarVerticalElement,\n                        _info: isHorizontal ? _scrollHorizontalInfo : _scrollVerticalInfo\n                    };\n                }\n\n\n                //==== Scrollbar Corner ====//\n\n                /**\n                 * Builds or destroys the scrollbar corner DOM element.\n                 * @param destroy Indicates whether the DOM shall be build or destroyed.\n                 */\n                function setupScrollbarCornerDOM(destroy) {\n                    _scrollbarCornerElement = _scrollbarCornerElement || selectOrGenerateDivByClass(_classNameScrollbarCorner, true);\n\n                    if (!destroy) {\n                        if (!_domExists) {\n                            _hostElement.append(_scrollbarCornerElement);\n                        }\n                    }\n                    else {\n                        if (_domExists && _initialized) {\n                            removeClass(_scrollbarCornerElement.removeAttr(LEXICON.s), _classNamesDynamicDestroy);\n                        }\n                        else {\n                            remove(_scrollbarCornerElement);\n                        }\n                    }\n                }\n\n                /**\n                 * Initializes all scrollbar corner interactivity events.\n                 */\n                function setupScrollbarCornerEvents() {\n                    var insideIFrame = _windowElementNative.top !== _windowElementNative;\n                    var mouseDownPosition = {};\n                    var mouseDownSize = {};\n                    var mouseDownInvertedScale = {};\n                    var reconnectMutationObserver;\n\n                    function documentDragMove(event) {\n                        if (onMouseTouchDownContinue(event)) {\n                            var pageOffset = getCoordinates(event);\n                            var hostElementCSS = {};\n                            if (_resizeHorizontal || _resizeBoth)\n                                hostElementCSS[_strWidth] = (mouseDownSize.w + (pageOffset.x - mouseDownPosition.x) * mouseDownInvertedScale.x);\n                            if (_resizeVertical || _resizeBoth)\n                                hostElementCSS[_strHeight] = (mouseDownSize.h + (pageOffset.y - mouseDownPosition.y) * mouseDownInvertedScale.y);\n                            _hostElement.css(hostElementCSS);\n                            COMPATIBILITY.stpP(event);\n                        }\n                        else {\n                            documentMouseTouchUp(event);\n                        }\n                    }\n                    function documentMouseTouchUp(event) {\n                        var eventIsTrusted = event !== undefined;\n\n                        setupResponsiveEventListener(_documentElement,\n                            [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                            [documentOnSelectStart, documentDragMove, documentMouseTouchUp],\n                            true);\n\n                        removeClass(_bodyElement, _classNameDragging);\n                        if (_scrollbarCornerElement.releaseCapture)\n                            _scrollbarCornerElement.releaseCapture();\n\n                        if (eventIsTrusted) {\n                            if (reconnectMutationObserver)\n                                connectMutationObservers();\n                            _base.update(_strAuto);\n                        }\n                        reconnectMutationObserver = false;\n                    }\n                    function onMouseTouchDownContinue(event) {\n                        var originalEvent = event.originalEvent || event;\n                        var isTouchEvent = originalEvent.touches !== undefined;\n                        return _sleeping || _destroyed ? false : COMPATIBILITY.mBtn(event) === 1 || isTouchEvent;\n                    }\n                    function getCoordinates(event) {\n                        return _msieVersion && insideIFrame ? { x: event.screenX, y: event.screenY } : COMPATIBILITY.page(event);\n                    }\n\n                    addDestroyEventListener(_scrollbarCornerElement, _strMouseTouchDownEvent, function (event) {\n                        if (onMouseTouchDownContinue(event) && !_resizeNone) {\n                            if (_mutationObserversConnected) {\n                                reconnectMutationObserver = true;\n                                disconnectMutationObservers();\n                            }\n\n                            mouseDownPosition = getCoordinates(event);\n\n                            mouseDownSize.w = _hostElementNative[LEXICON.oW] - (!_isBorderBox ? _paddingX : 0);\n                            mouseDownSize.h = _hostElementNative[LEXICON.oH] - (!_isBorderBox ? _paddingY : 0);\n                            mouseDownInvertedScale = getHostElementInvertedScale();\n\n                            setupResponsiveEventListener(_documentElement,\n                                [_strSelectStartEvent, _strMouseTouchMoveEvent, _strMouseTouchUpEvent],\n                                [documentOnSelectStart, documentDragMove, documentMouseTouchUp]);\n\n                            addClass(_bodyElement, _classNameDragging);\n                            if (_scrollbarCornerElement.setCapture)\n                                _scrollbarCornerElement.setCapture();\n\n                            COMPATIBILITY.prvD(event);\n                            COMPATIBILITY.stpP(event);\n                        }\n                    });\n                }\n\n\n                //==== Utils ====//\n\n                /**\n                 * Calls the callback with the given name. The Context of this callback is always _base (this).\n                 * @param name The name of the target which shall be called.\n                 * @param args The args with which the callback shall be called.\n                 * @param dependent Boolean which decides whether the callback shall be fired, undefined is like a \"true\" value.\n                 */\n                function dispatchCallback(name, args, dependent) {\n                    if (dependent === false)\n                        return;\n                    if (_initialized) {\n                        var callback = _currentPreparedOptions.callbacks[name];\n                        var extensionOnName = name;\n                        var ext;\n\n                        if (extensionOnName.substr(0, 2) === 'on')\n                            extensionOnName = extensionOnName.substr(2, 1).toLowerCase() + extensionOnName.substr(3);\n\n                        if (type(callback) == TYPES.f)\n                            callback.call(_base, args);\n\n                        each(_extensions, function () {\n                            ext = this;\n                            if (type(ext.on) == TYPES.f)\n                                ext.on(extensionOnName, args);\n                        });\n                    }\n                    else if (!_destroyed)\n                        _callbacksInitQeueue.push({ n: name, a: args });\n                }\n\n                /**\n                 * Sets the \"top, right, bottom, left\" properties, with a given prefix, of the given css object.\n                 * @param targetCSSObject The css object to which the values shall be applied.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param values A array of values which shall be applied to the \"top, right, bottom, left\" -properties. The array order is [top, right, bottom, left].\n                 * If this argument is undefined the value '' (empty string) will be applied to all properties.\n                 */\n                function setTopRightBottomLeft(targetCSSObject, prefix, values) {\n                    prefix = prefix || _strEmpty;\n                    values = values || [_strEmpty, _strEmpty, _strEmpty, _strEmpty];\n\n                    targetCSSObject[prefix + _strTop] = values[0];\n                    targetCSSObject[prefix + _strRight] = values[1];\n                    targetCSSObject[prefix + _strBottom] = values[2];\n                    targetCSSObject[prefix + _strLeft] = values[3];\n                }\n\n                /**\n                 * Gets the \"top, right, bottom, left\" CSS properties of the CSS property with the given prefix from the host element.\n                 * @param prefix The prefix of the \"top, right, bottom, left\" css properties. (example: 'padding-' is a valid prefix)\n                 * @param suffix The suffix of the \"top, right, bottom, left\" css properties. (example: 'border-' is a valid prefix with '-width' is a valid suffix)\n                 * @param zeroX True if the x axis shall be 0.\n                 * @param zeroY True if the y axis shall be 0.\n                 * @returns {{}} The object which contains the numbers of the read CSS properties.\n                 */\n                function getTopRightBottomLeftHost(prefix, suffix, zeroX, zeroY) {\n                    suffix = suffix || _strEmpty;\n                    prefix = prefix || _strEmpty;\n                    return {\n                        t: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strTop + suffix)),\n                        r: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strRight + suffix)),\n                        b: zeroY ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strBottom + suffix)),\n                        l: zeroX ? 0 : parseToZeroOrNumber(_hostElement.css(prefix + _strLeft + suffix))\n                    };\n                }\n\n                /**\n                 * Returns the computed CSS transition string from the given element.\n                 * @param element The element from which the transition string shall be returned.\n                 * @returns {string} The CSS transition string from the given element.\n                 */\n                function getCSSTransitionString(element) {\n                    var transitionStr = VENDORS._cssProperty('transition');\n                    var assembledValue = element.css(transitionStr);\n                    if (assembledValue)\n                        return assembledValue;\n                    var regExpString = '\\\\s*(' + '([^,(]+(\\\\(.+?\\\\))?)+' + ')[\\\\s,]*';\n                    var regExpMain = new RegExp(regExpString);\n                    var regExpValidate = new RegExp('^(' + regExpString + ')+$');\n                    var properties = 'property duration timing-function delay'.split(' ');\n                    var result = [];\n                    var strResult;\n                    var valueArray;\n                    var i = 0;\n                    var j;\n                    var splitCssStyleByComma = function (str) {\n                        strResult = [];\n                        if (!str.match(regExpValidate))\n                            return str;\n                        while (str.match(regExpMain)) {\n                            strResult.push(RegExp.$1);\n                            str = str.replace(regExpMain, _strEmpty);\n                        }\n\n                        return strResult;\n                    };\n                    for (; i < properties[LEXICON.l]; i++) {\n                        valueArray = splitCssStyleByComma(element.css(transitionStr + '-' + properties[i]));\n                        for (j = 0; j < valueArray[LEXICON.l]; j++)\n                            result[j] = (result[j] ? result[j] + _strSpace : _strEmpty) + valueArray[j];\n                    }\n                    return result.join(', ');\n                }\n\n                /**\n                 * Generates a Regular Expression which matches with a string which starts with 'os-host'.\n                 * @param {boolean} withCurrClassNameOption The Regular Expression also matches if the string is the current ClassName option (multiple values splitted by space possible).\n                 * @param {boolean} withOldClassNameOption The Regular Expression also matches if the string is the old ClassName option (multiple values splitted by space possible).\n                 */\n                function createHostClassNameRegExp(withCurrClassNameOption, withOldClassNameOption) {\n                    var i;\n                    var split;\n                    var appendix;\n                    var appendClasses = function (classes, condition) {\n                        appendix = '';\n                        if (condition && typeof classes == TYPES.s) {\n                            split = classes.split(_strSpace);\n                            for (i = 0; i < split[LEXICON.l]; i++)\n                                appendix += '|' + split[i] + '$';\n                            // split[i].replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') for escaping regex characters\n                        }\n                        return appendix;\n                    };\n\n                    return new RegExp(\n                        '(^' + _classNameHostElement + '([-_].+|)$)' +\n                        appendClasses(_classNameCache, withCurrClassNameOption) +\n                        appendClasses(_oldClassName, withOldClassNameOption), 'g');\n                }\n\n                /**\n                 * Calculates the host-elements inverted scale. (invertedScale = 1 / scale)\n                 * @returns {{x: number, y: number}} The scale of the host-element.\n                 */\n                function getHostElementInvertedScale() {\n                    var rect = _paddingElementNative[LEXICON.bCR]();\n                    return {\n                        x: _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,\n                        y: _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1\n                    };\n                }\n\n                /**\n                 * Checks whether the given object is a HTMLElement.\n                 * @param o The object which shall be checked.\n                 * @returns {boolean} True the given object is a HTMLElement, false otherwise.\n                 */\n                function isHTMLElement(o) {\n                    var strOwnerDocument = 'ownerDocument';\n                    var strHTMLElement = 'HTMLElement';\n                    var wnd = o && o[strOwnerDocument] ? (o[strOwnerDocument].parentWindow || window) : window;\n                    return (\n                        typeof wnd[strHTMLElement] == TYPES.o ? o instanceof wnd[strHTMLElement] : //DOM2\n                            o && typeof o == TYPES.o && o !== null && o.nodeType === 1 && typeof o.nodeName == TYPES.s\n                    );\n                }\n\n                /**\n                 * Compares 2 arrays and returns the differences between them as a array.\n                 * @param a1 The first array which shall be compared.\n                 * @param a2 The second array which shall be compared.\n                 * @returns {Array} The differences between the two arrays.\n                 */\n                function getArrayDifferences(a1, a2) {\n                    var a = [];\n                    var diff = [];\n                    var i;\n                    var k;\n                    for (i = 0; i < a1.length; i++)\n                        a[a1[i]] = true;\n                    for (i = 0; i < a2.length; i++) {\n                        if (a[a2[i]])\n                            delete a[a2[i]];\n                        else\n                            a[a2[i]] = true;\n                    }\n                    for (k in a)\n                        diff.push(k);\n                    return diff;\n                }\n\n                /**\n                 * Returns Zero or the number to which the value can be parsed.\n                 * @param value The value which shall be parsed.\n                 * @param toFloat Indicates whether the number shall be parsed to a float.\n                 */\n                function parseToZeroOrNumber(value, toFloat) {\n                    var num = toFloat ? parseFloat(value) : parseInt(value, 10);\n                    return isNaN(num) ? 0 : num;\n                }\n\n                /**\n                 * Gets several information of the textarea and returns them as a object or undefined if the browser doesn't support it.\n                 * @returns {{cursorRow: Number, cursorCol, rows: Number, cols: number, wRow: number, pos: number, max : number}} or undefined if not supported.\n                 */\n                function getTextareaInfo() {\n                    //read needed values\n                    var textareaCursorPosition = _targetElementNative.selectionStart;\n                    if (textareaCursorPosition === undefined)\n                        return;\n\n                    var textareaValue = _targetElement.val();\n                    var textareaLength = textareaValue[LEXICON.l];\n                    var textareaRowSplit = textareaValue.split('\\n');\n                    var textareaLastRow = textareaRowSplit[LEXICON.l];\n                    var textareaCurrentCursorRowSplit = textareaValue.substr(0, textareaCursorPosition).split('\\n');\n                    var widestRow = 0;\n                    var textareaLastCol = 0;\n                    var cursorRow = textareaCurrentCursorRowSplit[LEXICON.l];\n                    var cursorCol = textareaCurrentCursorRowSplit[textareaCurrentCursorRowSplit[LEXICON.l] - 1][LEXICON.l];\n                    var rowCols;\n                    var i;\n\n                    //get widest Row and the last column of the textarea\n                    for (i = 0; i < textareaRowSplit[LEXICON.l]; i++) {\n                        rowCols = textareaRowSplit[i][LEXICON.l];\n                        if (rowCols > textareaLastCol) {\n                            widestRow = i + 1;\n                            textareaLastCol = rowCols;\n                        }\n                    }\n\n                    return {\n                        _cursorRow: cursorRow, //cursorRow\n                        _cursorColumn: cursorCol, //cursorCol\n                        _rows: textareaLastRow, //rows\n                        _columns: textareaLastCol, //cols\n                        _widestRow: widestRow, //wRow\n                        _cursorPosition: textareaCursorPosition, //pos\n                        _cursorMax: textareaLength //max\n                    };\n                }\n\n                /**\n                 * Determines whether native overlay scrollbars are active.\n                 * @returns {boolean} True if native overlay scrollbars are active, false otherwise.\n                 */\n                function nativeOverlayScrollbarsAreActive() {\n                    return (_ignoreOverlayScrollbarHidingCache && (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y));\n                }\n\n                /**\n                 * Gets the element which is used to measure the content size.\n                 * @returns {*} TextareaCover if target element is textarea else the ContentElement.\n                 */\n                function getContentMeasureElement() {\n                    return _isTextarea ? _textareaCoverElement[0] : _contentElementNative;\n                }\n\n                /**\n                 * Generates a string which represents a HTML div with the given classes or attributes.\n                 * @param classesOrAttrs The class of the div as string or a object which represents the attributes of the div. (The class attribute can also be written as \"className\".)\n                 * @param content The content of the div as string.\n                 * @returns {string} The concated string which represents a HTML div and its content.\n                 */\n                function generateDiv(classesOrAttrs, content) {\n                    return '<div ' + (classesOrAttrs ? type(classesOrAttrs) == TYPES.s ?\n                        'class=\"' + classesOrAttrs + '\"' :\n                        (function () {\n                            var key;\n                            var attrs = _strEmpty;\n                            if (FRAMEWORK.isPlainObject(classesOrAttrs)) {\n                                for (key in classesOrAttrs)\n                                    attrs += (key === 'c' ? 'class' : key) + '=\"' + classesOrAttrs[key] + '\" ';\n                            }\n                            return attrs;\n                        })() :\n                        _strEmpty) +\n                        '>' +\n                        (content || _strEmpty) +\n                        '</div>';\n                }\n\n                /**\n                 * Selects or generates a div with the given class attribute.\n                 * @param className The class names (divided by spaces) of the div which shall be selected or generated.\n                 * @param selectParentOrOnlyChildren The parent element from which of the element shall be selected. (if undefined or boolean its hostElement)\n                 * If its a boolean it decides whether only the children of the host element shall be selected.\n                 * @returns {*} The generated or selected element.\n                 */\n                function selectOrGenerateDivByClass(className, selectParentOrOnlyChildren) {\n                    var onlyChildren = type(selectParentOrOnlyChildren) == TYPES.b;\n                    var selectParent = onlyChildren ? _hostElement : (selectParentOrOnlyChildren || _hostElement);\n\n                    return (_domExists && !selectParent[LEXICON.l])\n                        ? null\n                        : _domExists\n                            ? selectParent[onlyChildren ? 'children' : 'find'](_strDot + className.replace(/\\s/g, _strDot)).eq(0)\n                            : FRAMEWORK(generateDiv(className))\n                }\n\n                /**\n                 * Gets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be got.\n                 * @param path The property of which the value shall be got.\n                 * @returns {*} Returns the value of the searched property or undefined of the property wasn't found.\n                 */\n                function getObjectPropVal(obj, path) {\n                    var splits = path.split(_strDot);\n                    var i = 0;\n                    var val;\n                    for (; i < splits.length; i++) {\n                        if (!obj[LEXICON.hOP](splits[i]))\n                            return;\n                        val = obj[splits[i]];\n                        if (i < splits.length && type(val) == TYPES.o)\n                            obj = val;\n                    }\n                    return val;\n                }\n\n                /**\n                 * Sets the value of the given property from the given object.\n                 * @param obj The object from which the property value shall be set.\n                 * @param path The property of which the value shall be set.\n                 * @param val The value of the property which shall be set.\n                 */\n                function setObjectPropVal(obj, path, val) {\n                    var splits = path.split(_strDot);\n                    var splitsLength = splits.length;\n                    var i = 0;\n                    var extendObj = {};\n                    var extendObjRoot = extendObj;\n                    for (; i < splitsLength; i++)\n                        extendObj = extendObj[splits[i]] = i + 1 < splitsLength ? {} : val;\n                    FRAMEWORK.extend(obj, extendObjRoot, true);\n                }\n\n                /**\t\n                 * Runs a action for each selector inside the updateOnLoad option.\t\n                 * @param {Function} action The action for each updateOnLoad selector, the arguments the function takes is the index and the value (the selector).\t\n                 */\n                function eachUpdateOnLoad(action) {\n                    var updateOnLoad = _currentPreparedOptions.updateOnLoad;\n                    updateOnLoad = type(updateOnLoad) == TYPES.s ? updateOnLoad.split(_strSpace) : updateOnLoad;\n\n                    if (COMPATIBILITY.isA(updateOnLoad) && !_destroyed) {\n                        each(updateOnLoad, action);\n                    }\n                }\n\n\n                //==== Utils Cache ====//\n\n                /**\n                 * Compares two values or objects and returns true if they aren't equal.\n                 * @param current The first value or object which shall be compared.\n                 * @param cache The second value or object which shall be compared.\n                 * @param force If true the returned value is always true.\n                 * @returns {boolean} True if both values or objects aren't equal or force is true, false otherwise.\n                 */\n                function checkCache(current, cache, force) {\n                    if (force)\n                        return force;\n                    if (type(current) == TYPES.o && type(cache) == TYPES.o) {\n                        for (var prop in current) {\n                            if (prop !== 'c') {\n                                if (current[LEXICON.hOP](prop) && cache[LEXICON.hOP](prop)) {\n                                    if (checkCache(current[prop], cache[prop]))\n                                        return true;\n                                }\n                                else {\n                                    return true;\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        return current !== cache;\n                    }\n                    return false;\n                }\n\n\n                //==== Shortcuts ====//\n\n                /**\n                 * jQuery extend method shortcut with a appended \"true\" as first argument.\n                 */\n                function extendDeep() {\n                    return FRAMEWORK.extend.apply(this, [true].concat([].slice.call(arguments)));\n                }\n\n                /**\n                 * jQuery addClass method shortcut.\n                 */\n                function addClass(el, classes) {\n                    return _frameworkProto.addClass.call(el, classes);\n                }\n\n                /**\n                 * jQuery removeClass method shortcut.\n                 */\n                function removeClass(el, classes) {\n                    return _frameworkProto.removeClass.call(el, classes);\n                }\n\n                /**\n                 * Adds or removes the given classes dependent on the boolean value. True for add, false for remove.\n                 */\n                function addRemoveClass(el, classes, doAdd) {\n                    return doAdd ? addClass(el, classes) : removeClass(el, classes);\n                }\n\n                /**\n                 * jQuery remove method shortcut.\n                 */\n                function remove(el) {\n                    return _frameworkProto.remove.call(el);\n                }\n\n                /**\n                 * Finds the first child element with the given selector of the given element.\n                 * @param el The root element from which the selector shall be valid.\n                 * @param selector The selector of the searched element.\n                 * @returns {*} The first element which is a child of the given element and matches the givens selector.\n                 */\n                function findFirst(el, selector) {\n                    return _frameworkProto.find.call(el, selector).eq(0);\n                }\n\n\n                //==== API ====//\n\n                /**\n                 * Puts the instance to sleep. It wont respond to any changes in the DOM and won't update. Scrollbar Interactivity is also disabled as well as the resize handle.\n                 * This behavior can be reset by calling the update method.\n                 */\n                _base.sleep = function () {\n                    _sleeping = true;\n                };\n\n                /**\n                 * Updates the plugin and DOM to the current options.\n                 * This method should only be called if a update is 100% required.\n                 * @param force True if every property shall be updated and the cache shall be ignored.\n                 * !INTERNAL USAGE! : force can be a string \"auto\", \"sync\" or \"zoom\" too\n                 * if \"auto\" then before a real update the content size and host element attributes gets checked, and if they changed only then the update method will be called.\n                 * if \"sync\" then the async update process (MutationObserver or UpdateLoop) gets synchronized and a corresponding update takes place if one was needed due to pending changes.\n                 * if \"zoom\" then a update takes place where it's assumed that content and host size changed\n                 * @returns {boolean|undefined} \n                 * If force is \"sync\" then a boolean is returned which indicates whether a update was needed due to pending changes.\n                 * If force is \"auto\" then a boolean is returned whether a update was needed due to attribute or size changes.\n                 * undefined otherwise.\n                 */\n                _base.update = function (force) {\n                    if (_destroyed)\n                        return;\n\n                    var attrsChanged;\n                    var contentSizeC;\n                    var isString = type(force) == TYPES.s;\n                    var doUpdateAuto;\n                    var mutHost;\n                    var mutContent;\n\n                    if (isString) {\n                        if (force === _strAuto) {\n                            attrsChanged = meaningfulAttrsChanged();\n                            contentSizeC = updateAutoContentSizeChanged();\n                            doUpdateAuto = attrsChanged || contentSizeC;\n                            if (doUpdateAuto) {\n                                update({\n                                    _contentSizeChanged: contentSizeC,\n                                    _changedOptions: _initialized ? undefined : _currentPreparedOptions\n                                });\n                            }\n                        }\n                        else if (force === _strSync) {\n                            if (_mutationObserversConnected) {\n                                mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());\n                                mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());\n                            }\n                            else {\n                                mutHost = _base.update(_strAuto);\n                            }\n                        }\n                        else if (force === 'zoom') {\n                            update({\n                                _hostSizeChanged: true,\n                                _contentSizeChanged: true\n                            });\n                        }\n                    }\n                    else {\n                        force = _sleeping || force;\n                        _sleeping = false;\n                        if (!_base.update(_strSync) || force)\n                            update({ _force: force });\n                    }\n\n                    updateElementsOnLoad();\n\n                    return doUpdateAuto || mutHost || mutContent;\n                };\n\n                /**\n                 Gets or sets the current options. The update method will be called automatically if new options were set.\n                 * @param newOptions If new options are given, then the new options will be set, if new options aren't given (undefined or a not a plain object) then the current options will be returned.\n                 * @param value If new options is a property path string, then this value will be used to set the option to which the property path string leads.\n                 * @returns {*}\n                 */\n                _base.options = function (newOptions, value) {\n                    var option = {};\n                    var changedOps;\n\n                    //return current options if newOptions are undefined or empty\n                    if (FRAMEWORK.isEmptyObject(newOptions) || !FRAMEWORK.isPlainObject(newOptions)) {\n                        if (type(newOptions) == TYPES.s) {\n                            if (arguments.length > 1) {\n                                setObjectPropVal(option, newOptions, value);\n                                changedOps = setOptions(option);\n                            }\n                            else\n                                return getObjectPropVal(_currentOptions, newOptions);\n                        }\n                        else\n                            return _currentOptions;\n                    }\n                    else {\n                        changedOps = setOptions(newOptions);\n                    }\n\n                    if (!FRAMEWORK.isEmptyObject(changedOps)) {\n                        update({ _changedOptions: changedOps });\n                    }\n                };\n\n                /**\n                 * Restore the DOM, disconnects all observers, remove all resize observers and put the instance to sleep.\n                 */\n                _base.destroy = function () {\n                    if (_destroyed)\n                        return;\n\n                    //remove this instance from auto update loop\n                    autoUpdateLoop.remove(_base);\n\n                    //disconnect all mutation observers\n                    disconnectMutationObservers();\n\n                    //remove all resize observers\n                    setupResizeObserver(_sizeObserverElement);\n                    setupResizeObserver(_sizeAutoObserverElement);\n\n                    //remove all extensions\n                    for (var extName in _extensions)\n                        _base.removeExt(extName);\n\n                    //remove all 'destroy' events\n                    while (_destroyEvents[LEXICON.l] > 0)\n                        _destroyEvents.pop()();\n\n                    //remove all events from host element\n                    setupHostMouseTouchEvents(true);\n\n                    //remove all helper / detection elements\n                    if (_contentGlueElement)\n                        remove(_contentGlueElement);\n                    if (_contentArrangeElement)\n                        remove(_contentArrangeElement);\n                    if (_sizeAutoObserverAdded)\n                        remove(_sizeAutoObserverElement);\n\n                    //remove all generated DOM\n                    setupScrollbarsDOM(true);\n                    setupScrollbarCornerDOM(true);\n                    setupStructureDOM(true);\n\n                    //remove all generated image load events\n                    for (var i = 0; i < _updateOnLoadElms[LEXICON.l]; i++)\n                        FRAMEWORK(_updateOnLoadElms[i]).off(_updateOnLoadEventName, updateOnLoadCallback);\n                    _updateOnLoadElms = undefined;\n\n                    _destroyed = true;\n                    _sleeping = true;\n\n                    //remove this instance from the instances list\n                    INSTANCES(pluginTargetElement, 0);\n                    dispatchCallback('onDestroyed');\n\n                    //remove all properties and methods\n                    //for (var property in _base)\n                    //    delete _base[property];\n                    //_base = undefined;\n                };\n\n                /**\n                 * Scrolls to a given position or element.\n                 * @param coordinates\n                 * 1. Can be \"coordinates\" which looks like:\n                 *    { x : ?, y : ? } OR          Object with x and y properties\n                 *    { left : ?, top : ? } OR     Object with left and top properties\n                 *    { l : ?, t : ? } OR          Object with l and t properties\n                 *    [ ?, ? ] OR                  Array where the first two element are the coordinates (first is x, second is y)\n                 *    ?                            A single value which stays for both axis\n                 *    A value can be a number, a string or a calculation.\n                 *\n                 *    Operators:\n                 *    [NONE]  The current scroll will be overwritten by the value.\n                 *    '+='    The value will be added to the current scroll offset\n                 *    '-='    The value will be subtracted from the current scroll offset\n                 *    '*='    The current scroll wil be multiplicated by the value.\n                 *    '/='    The current scroll wil be divided by the value.\n                 *\n                 *    Units:\n                 *    [NONE]  The value is the final scroll amount.                   final = (value * 1)\n                 *    'px'    Same as none\n                 *    '%'     The value is dependent on the current scroll value.     final = ((currentScrollValue / 100) * value)\n                 *    'vw'    The value is multiplicated by the viewport width.       final = (value * viewportWidth)\n                 *    'vh'    The value is multiplicated by the viewport height.      final = (value * viewportHeight)\n                 *\n                 *    example final values:\n                 *    200, '200px', '50%', '1vw', '1vh', '+=200', '/=1vw', '*=2px', '-=5vh', '+=33%', '+= 50% - 2px', '-= 1vw - 50%'\n                 *\n                 * 2. Can be a HTML or jQuery element:\n                 *    The final scroll offset is the offset (without margin) of the given HTML / jQuery element.\n                 *\n                 * 3. Can be a object with a HTML or jQuery element with additional settings:\n                 *    {\n                 *      el : [HTMLElement, jQuery element],             MUST be specified, else this object isn't valid.\n                 *      scroll : [string, array, object],               Default value is 'always'.\n                 *      block : [string, array, object],                Default value is 'begin'.\n                 *      margin : [number, boolean, array, object]       Default value is false.\n                 *    }\n                 *\n                 *    Possible scroll settings are:\n                 *    'always'      Scrolls always.\n                 *    'ifneeded'    Scrolls only if the element isnt fully in view.\n                 *    'never'       Scrolls never.\n                 *\n                 *    Possible block settings are:\n                 *    'begin'   Both axis shall be docked to the \"begin\" edge. - The element will be docked to the top and left edge of the viewport.\n                 *    'end'     Both axis shall be docked to the \"end\" edge. - The element will be docked to the bottom and right edge of the viewport. (If direction is RTL to the bottom and left edge.)\n                 *    'center'  Both axis shall be docked to \"center\". - The element will be centered in the viewport.\n                 *    'nearest' The element will be docked to the nearest edge(s).\n                 *\n                 *    Possible margin settings are: -- The actual margin of the element wont be affect, this option affects only the final scroll offset.\n                 *    [BOOLEAN]                                         If true the css margin of the element will be used, if false no margin will be used.\n                 *    [NUMBER]                                          The margin will be used for all edges.\n                 *\n                 * @param duration The duration of the scroll animation, OR a jQuery animation configuration object.\n                 * @param easing The animation easing.\n                 * @param complete The animation complete callback.\n                 * @returns {{\n                 *   position: {x: number, y: number},\n                 *   ratio: {x: number, y: number},\n                 *   max: {x: number, y: number},\n                 *   handleOffset: {x: number, y: number},\n                 *   handleLength: {x: number, y: number},\n                 *   handleLengthRatio: {x: number, y: number}, t\n                 *   rackLength: {x: number, y: number},\n                 *   isRTL: boolean,\n                 *   isRTLNormalized: boolean\n                 *  }}\n                 */\n                _base.scroll = function (coordinates, duration, easing, complete) {\n                    if (arguments.length === 0 || coordinates === undefined) {\n                        var infoX = _scrollHorizontalInfo;\n                        var infoY = _scrollVerticalInfo;\n                        var normalizeInvert = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.i;\n                        var normalizeNegate = _normalizeRTLCache && _isRTL && _rtlScrollBehavior.n;\n                        var scrollX = infoX._currentScroll;\n                        var scrollXRatio = infoX._currentScrollRatio;\n                        var maxScrollX = infoX._maxScroll;\n                        scrollXRatio = normalizeInvert ? 1 - scrollXRatio : scrollXRatio;\n                        scrollX = normalizeInvert ? maxScrollX - scrollX : scrollX;\n                        scrollX *= normalizeNegate ? -1 : 1;\n                        maxScrollX *= normalizeNegate ? -1 : 1;\n\n                        return {\n                            position: {\n                                x: scrollX,\n                                y: infoY._currentScroll\n                            },\n                            ratio: {\n                                x: scrollXRatio,\n                                y: infoY._currentScrollRatio\n                            },\n                            max: {\n                                x: maxScrollX,\n                                y: infoY._maxScroll\n                            },\n                            handleOffset: {\n                                x: infoX._handleOffset,\n                                y: infoY._handleOffset\n                            },\n                            handleLength: {\n                                x: infoX._handleLength,\n                                y: infoY._handleLength\n                            },\n                            handleLengthRatio: {\n                                x: infoX._handleLengthRatio,\n                                y: infoY._handleLengthRatio\n                            },\n                            trackLength: {\n                                x: infoX._trackLength,\n                                y: infoY._trackLength\n                            },\n                            snappedHandleOffset: {\n                                x: infoX._snappedHandleOffset,\n                                y: infoY._snappedHandleOffset\n                            },\n                            isRTL: _isRTL,\n                            isRTLNormalized: _normalizeRTLCache\n                        };\n                    }\n\n                    _base.update(_strSync);\n\n                    var normalizeRTL = _normalizeRTLCache;\n                    var coordinatesXAxisProps = [_strX, _strLeft, 'l'];\n                    var coordinatesYAxisProps = [_strY, _strTop, 't'];\n                    var coordinatesOperators = ['+=', '-=', '*=', '/='];\n                    var durationIsObject = type(duration) == TYPES.o;\n                    var completeCallback = durationIsObject ? duration.complete : complete;\n                    var i;\n                    var finalScroll = {};\n                    var specialEasing = {};\n                    var doScrollLeft;\n                    var doScrollTop;\n                    var animationOptions;\n                    var strEnd = 'end';\n                    var strBegin = 'begin';\n                    var strCenter = 'center';\n                    var strNearest = 'nearest';\n                    var strAlways = 'always';\n                    var strNever = 'never';\n                    var strIfNeeded = 'ifneeded';\n                    var strLength = LEXICON.l;\n                    var settingsAxis;\n                    var settingsScroll;\n                    var settingsBlock;\n                    var settingsMargin;\n                    var finalElement;\n                    var elementObjSettingsAxisValues = [_strX, _strY, 'xy', 'yx'];\n                    var elementObjSettingsBlockValues = [strBegin, strEnd, strCenter, strNearest];\n                    var elementObjSettingsScrollValues = [strAlways, strNever, strIfNeeded];\n                    var coordinatesIsElementObj = coordinates[LEXICON.hOP]('el');\n                    var possibleElement = coordinatesIsElementObj ? coordinates.el : coordinates;\n                    var possibleElementIsJQuery = possibleElement instanceof FRAMEWORK || JQUERY ? possibleElement instanceof JQUERY : false;\n                    var possibleElementIsHTMLElement = possibleElementIsJQuery ? false : isHTMLElement(possibleElement);\n                    var updateScrollbarInfos = function () {\n                        if (doScrollLeft)\n                            refreshScrollbarHandleOffset(true);\n                        if (doScrollTop)\n                            refreshScrollbarHandleOffset(false);\n                    };\n                    var proxyCompleteCallback = type(completeCallback) != TYPES.f ? undefined : function () {\n                        updateScrollbarInfos();\n                        completeCallback();\n                    };\n                    function checkSettingsStringValue(currValue, allowedValues) {\n                        for (i = 0; i < allowedValues[strLength]; i++) {\n                            if (currValue === allowedValues[i])\n                                return true;\n                        }\n                        return false;\n                    }\n                    function getRawScroll(isX, coordinates) {\n                        var coordinateProps = isX ? coordinatesXAxisProps : coordinatesYAxisProps;\n                        coordinates = type(coordinates) == TYPES.s || type(coordinates) == TYPES.n ? [coordinates, coordinates] : coordinates;\n\n                        if (COMPATIBILITY.isA(coordinates))\n                            return isX ? coordinates[0] : coordinates[1];\n                        else if (type(coordinates) == TYPES.o) {\n                            //decides RTL normalization \"hack\" with .n\n                            //normalizeRTL = type(coordinates.n) == TYPES.b ? coordinates.n : normalizeRTL; \n                            for (i = 0; i < coordinateProps[strLength]; i++)\n                                if (coordinateProps[i] in coordinates)\n                                    return coordinates[coordinateProps[i]];\n                        }\n                    }\n                    function getFinalScroll(isX, rawScroll) {\n                        var isString = type(rawScroll) == TYPES.s;\n                        var operator;\n                        var amount;\n                        var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;\n                        var currScroll = scrollInfo._currentScroll;\n                        var maxScroll = scrollInfo._maxScroll;\n                        var mult = ' * ';\n                        var finalValue;\n                        var isRTLisX = _isRTL && isX;\n                        var normalizeShortcuts = isRTLisX && _rtlScrollBehavior.n && !normalizeRTL;\n                        var strReplace = 'replace';\n                        var evalFunc = eval;\n                        var possibleOperator;\n                        if (isString) {\n                            //check operator\n                            if (rawScroll[strLength] > 2) {\n                                possibleOperator = rawScroll.substr(0, 2);\n                                if (inArray(possibleOperator, coordinatesOperators) > -1)\n                                    operator = possibleOperator;\n                            }\n\n                            //calculate units and shortcuts\n                            rawScroll = operator ? rawScroll.substr(2) : rawScroll;\n                            rawScroll = rawScroll\n                            [strReplace](/min/g, 0) //'min' = 0%\n                            [strReplace](/</g, 0)   //'<'   = 0%\n                            [strReplace](/max/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)    //'max' = 100%\n                            [strReplace](/>/g, (normalizeShortcuts ? '-' : _strEmpty) + _strHundredPercent)      //'>'   = 100%\n                            [strReplace](/px/g, _strEmpty)\n                            [strReplace](/%/g, mult + (maxScroll * (isRTLisX && _rtlScrollBehavior.n ? -1 : 1) / 100.0))\n                            [strReplace](/vw/g, mult + _viewportSize.w)\n                            [strReplace](/vh/g, mult + _viewportSize.h);\n                            amount = parseToZeroOrNumber(isNaN(rawScroll) ? parseToZeroOrNumber(evalFunc(rawScroll), true).toFixed() : rawScroll);\n                        }\n                        else {\n                            amount = rawScroll;\n                        }\n\n                        if (amount !== undefined && !isNaN(amount) && type(amount) == TYPES.n) {\n                            var normalizeIsRTLisX = normalizeRTL && isRTLisX;\n                            var operatorCurrScroll = currScroll * (normalizeIsRTLisX && _rtlScrollBehavior.n ? -1 : 1);\n                            var invert = normalizeIsRTLisX && _rtlScrollBehavior.i;\n                            var negate = normalizeIsRTLisX && _rtlScrollBehavior.n;\n                            operatorCurrScroll = invert ? (maxScroll - operatorCurrScroll) : operatorCurrScroll;\n                            switch (operator) {\n                                case '+=':\n                                    finalValue = operatorCurrScroll + amount;\n                                    break;\n                                case '-=':\n                                    finalValue = operatorCurrScroll - amount;\n                                    break;\n                                case '*=':\n                                    finalValue = operatorCurrScroll * amount;\n                                    break;\n                                case '/=':\n                                    finalValue = operatorCurrScroll / amount;\n                                    break;\n                                default:\n                                    finalValue = amount;\n                                    break;\n                            }\n                            finalValue = invert ? maxScroll - finalValue : finalValue;\n                            finalValue *= negate ? -1 : 1;\n                            finalValue = isRTLisX && _rtlScrollBehavior.n ? MATH.min(0, MATH.max(maxScroll, finalValue)) : MATH.max(0, MATH.min(maxScroll, finalValue));\n                        }\n                        return finalValue === currScroll ? undefined : finalValue;\n                    }\n                    function getPerAxisValue(value, valueInternalType, defaultValue, allowedValues) {\n                        var resultDefault = [defaultValue, defaultValue];\n                        var valueType = type(value);\n                        var valueArrLength;\n                        var valueArrItem;\n\n                        //value can be [ string, or array of two strings ]\n                        if (valueType == valueInternalType) {\n                            value = [value, value];\n                        }\n                        else if (valueType == TYPES.a) {\n                            valueArrLength = value[strLength];\n                            if (valueArrLength > 2 || valueArrLength < 1)\n                                value = resultDefault;\n                            else {\n                                if (valueArrLength === 1)\n                                    value[1] = defaultValue;\n                                for (i = 0; i < valueArrLength; i++) {\n                                    valueArrItem = value[i];\n                                    if (type(valueArrItem) != valueInternalType || !checkSettingsStringValue(valueArrItem, allowedValues)) {\n                                        value = resultDefault;\n                                        break;\n                                    }\n                                }\n                            }\n                        }\n                        else if (valueType == TYPES.o)\n                            value = [value[_strX] || defaultValue, value[_strY] || defaultValue];\n                        else\n                            value = resultDefault;\n                        return { x: value[0], y: value[1] };\n                    }\n                    function generateMargin(marginTopRightBottomLeftArray) {\n                        var result = [];\n                        var currValue;\n                        var currValueType;\n                        var valueDirections = [_strTop, _strRight, _strBottom, _strLeft];\n                        for (i = 0; i < marginTopRightBottomLeftArray[strLength]; i++) {\n                            if (i === valueDirections[strLength])\n                                break;\n                            currValue = marginTopRightBottomLeftArray[i];\n                            currValueType = type(currValue);\n                            if (currValueType == TYPES.b)\n                                result.push(currValue ? parseToZeroOrNumber(finalElement.css(_strMarginMinus + valueDirections[i])) : 0);\n                            else\n                                result.push(currValueType == TYPES.n ? currValue : 0);\n                        }\n                        return result;\n                    }\n\n                    if (possibleElementIsJQuery || possibleElementIsHTMLElement) {\n                        //get settings\n                        var margin = coordinatesIsElementObj ? coordinates.margin : 0;\n                        var axis = coordinatesIsElementObj ? coordinates.axis : 0;\n                        var scroll = coordinatesIsElementObj ? coordinates.scroll : 0;\n                        var block = coordinatesIsElementObj ? coordinates.block : 0;\n                        var marginDefault = [0, 0, 0, 0];\n                        var marginType = type(margin);\n                        var marginLength;\n                        finalElement = possibleElementIsJQuery ? possibleElement : FRAMEWORK(possibleElement);\n\n                        if (finalElement[strLength] > 0) {\n                            //margin can be [ boolean, number, array of 2, array of 4, object ]\n                            if (marginType == TYPES.n || marginType == TYPES.b)\n                                margin = generateMargin([margin, margin, margin, margin]);\n                            else if (marginType == TYPES.a) {\n                                marginLength = margin[strLength];\n                                if (marginLength === 2)\n                                    margin = generateMargin([margin[0], margin[1], margin[0], margin[1]]);\n                                else if (marginLength >= 4)\n                                    margin = generateMargin(margin);\n                                else\n                                    margin = marginDefault;\n                            }\n                            else if (marginType == TYPES.o)\n                                margin = generateMargin([margin[_strTop], margin[_strRight], margin[_strBottom], margin[_strLeft]]);\n                            else\n                                margin = marginDefault;\n\n                            //block = type(block) === TYPES.b ? block ? [ strNearest, strBegin ] : [ strNearest, strEnd ] : block;\n                            settingsAxis = checkSettingsStringValue(axis, elementObjSettingsAxisValues) ? axis : 'xy';\n                            settingsScroll = getPerAxisValue(scroll, TYPES.s, strAlways, elementObjSettingsScrollValues);\n                            settingsBlock = getPerAxisValue(block, TYPES.s, strBegin, elementObjSettingsBlockValues);\n                            settingsMargin = margin;\n\n                            var viewportScroll = {\n                                l: _scrollHorizontalInfo._currentScroll,\n                                t: _scrollVerticalInfo._currentScroll\n                            };\n                            // use padding element instead of viewport element because padding element has never padding, margin or position applied.\n                            var viewportOffset = _paddingElement.offset();\n\n                            //get coordinates\n                            var elementOffset = finalElement.offset();\n                            var doNotScroll = {\n                                x: settingsScroll.x == strNever || settingsAxis == _strY,\n                                y: settingsScroll.y == strNever || settingsAxis == _strX\n                            };\n                            elementOffset[_strTop] -= settingsMargin[0];\n                            elementOffset[_strLeft] -= settingsMargin[3];\n                            var elementScrollCoordinates = {\n                                x: MATH.round(elementOffset[_strLeft] - viewportOffset[_strLeft] + viewportScroll.l),\n                                y: MATH.round(elementOffset[_strTop] - viewportOffset[_strTop] + viewportScroll.t)\n                            };\n                            if (_isRTL) {\n                                if (!_rtlScrollBehavior.n && !_rtlScrollBehavior.i)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + viewportScroll.l);\n                                if (_rtlScrollBehavior.n && normalizeRTL)\n                                    elementScrollCoordinates.x *= -1;\n                                if (_rtlScrollBehavior.i && normalizeRTL)\n                                    elementScrollCoordinates.x = MATH.round(viewportOffset[_strLeft] - elementOffset[_strLeft] + (_scrollHorizontalInfo._maxScroll - viewportScroll.l));\n                            }\n\n                            //measuring is required\n                            if (settingsBlock.x != strBegin || settingsBlock.y != strBegin || settingsScroll.x == strIfNeeded || settingsScroll.y == strIfNeeded || _isRTL) {\n                                var measuringElm = finalElement[0];\n                                var rawElementSize = _supportTransform ? measuringElm[LEXICON.bCR]() : {\n                                    width: measuringElm[LEXICON.oW],\n                                    height: measuringElm[LEXICON.oH]\n                                };\n                                var elementSize = {\n                                    w: rawElementSize[_strWidth] + settingsMargin[3] + settingsMargin[1],\n                                    h: rawElementSize[_strHeight] + settingsMargin[0] + settingsMargin[2]\n                                };\n                                var finalizeBlock = function (isX) {\n                                    var vars = getScrollbarVars(isX);\n                                    var wh = vars._w_h;\n                                    var lt = vars._left_top;\n                                    var xy = vars._x_y;\n                                    var blockIsEnd = settingsBlock[xy] == (isX ? _isRTL ? strBegin : strEnd : strEnd);\n                                    var blockIsCenter = settingsBlock[xy] == strCenter;\n                                    var blockIsNearest = settingsBlock[xy] == strNearest;\n                                    var scrollNever = settingsScroll[xy] == strNever;\n                                    var scrollIfNeeded = settingsScroll[xy] == strIfNeeded;\n                                    var vpSize = _viewportSize[wh];\n                                    var vpOffset = viewportOffset[lt];\n                                    var elSize = elementSize[wh];\n                                    var elOffset = elementOffset[lt];\n                                    var divide = blockIsCenter ? 2 : 1;\n                                    var elementCenterOffset = elOffset + (elSize / 2);\n                                    var viewportCenterOffset = vpOffset + (vpSize / 2);\n                                    var isInView =\n                                        elSize <= vpSize\n                                        && elOffset >= vpOffset\n                                        && elOffset + elSize <= vpOffset + vpSize;\n\n                                    if (scrollNever)\n                                        doNotScroll[xy] = true;\n                                    else if (!doNotScroll[xy]) {\n                                        if (blockIsNearest || scrollIfNeeded) {\n                                            doNotScroll[xy] = scrollIfNeeded ? isInView : false;\n                                            blockIsEnd = elSize < vpSize ? elementCenterOffset > viewportCenterOffset : elementCenterOffset < viewportCenterOffset;\n                                        }\n                                        elementScrollCoordinates[xy] -= blockIsEnd || blockIsCenter ? ((vpSize / divide) - (elSize / divide)) * (isX && _isRTL && normalizeRTL ? -1 : 1) : 0;\n                                    }\n                                };\n                                finalizeBlock(true);\n                                finalizeBlock(false);\n                            }\n\n                            if (doNotScroll.y)\n                                delete elementScrollCoordinates.y;\n                            if (doNotScroll.x)\n                                delete elementScrollCoordinates.x;\n\n                            coordinates = elementScrollCoordinates;\n                        }\n                    }\n\n                    finalScroll[_strScrollLeft] = getFinalScroll(true, getRawScroll(true, coordinates));\n                    finalScroll[_strScrollTop] = getFinalScroll(false, getRawScroll(false, coordinates));\n                    doScrollLeft = finalScroll[_strScrollLeft] !== undefined;\n                    doScrollTop = finalScroll[_strScrollTop] !== undefined;\n\n                    if ((doScrollLeft || doScrollTop) && (duration > 0 || durationIsObject)) {\n                        if (durationIsObject) {\n                            duration.complete = proxyCompleteCallback;\n                            _viewportElement.animate(finalScroll, duration);\n                        }\n                        else {\n                            animationOptions = {\n                                duration: duration,\n                                complete: proxyCompleteCallback\n                            };\n                            if (COMPATIBILITY.isA(easing) || FRAMEWORK.isPlainObject(easing)) {\n                                specialEasing[_strScrollLeft] = easing[0] || easing.x;\n                                specialEasing[_strScrollTop] = easing[1] || easing.y;\n                                animationOptions.specialEasing = specialEasing;\n                            }\n                            else {\n                                animationOptions.easing = easing;\n                            }\n                            _viewportElement.animate(finalScroll, animationOptions);\n                        }\n                    }\n                    else {\n                        if (doScrollLeft)\n                            _viewportElement[_strScrollLeft](finalScroll[_strScrollLeft]);\n                        if (doScrollTop)\n                            _viewportElement[_strScrollTop](finalScroll[_strScrollTop]);\n                        updateScrollbarInfos();\n                    }\n                };\n\n                /**\n                 * Stops all scroll animations.\n                 * @returns {*} The current OverlayScrollbars instance (for chaining).\n                 */\n                _base.scrollStop = function (param1, param2, param3) {\n                    _viewportElement.stop(param1, param2, param3);\n                    return _base;\n                };\n\n                /**\n                 * Returns all relevant elements.\n                 * @param elementName The name of the element which shall be returned.\n                 * @returns {{target: *, host: *, padding: *, viewport: *, content: *, scrollbarHorizontal: {scrollbar: *, track: *, handle: *}, scrollbarVertical: {scrollbar: *, track: *, handle: *}, scrollbarCorner: *} | *}\n                 */\n                _base.getElements = function (elementName) {\n                    var obj = {\n                        target: _targetElementNative,\n                        host: _hostElementNative,\n                        padding: _paddingElementNative,\n                        viewport: _viewportElementNative,\n                        content: _contentElementNative,\n                        scrollbarHorizontal: {\n                            scrollbar: _scrollbarHorizontalElement[0],\n                            track: _scrollbarHorizontalTrackElement[0],\n                            handle: _scrollbarHorizontalHandleElement[0]\n                        },\n                        scrollbarVertical: {\n                            scrollbar: _scrollbarVerticalElement[0],\n                            track: _scrollbarVerticalTrackElement[0],\n                            handle: _scrollbarVerticalHandleElement[0]\n                        },\n                        scrollbarCorner: _scrollbarCornerElement[0]\n                    };\n                    return type(elementName) == TYPES.s ? getObjectPropVal(obj, elementName) : obj;\n                };\n\n                /**\n                 * Returns a object which describes the current state of this instance.\n                 * @param stateProperty A specific property from the state object which shall be returned.\n                 * @returns {{widthAuto, heightAuto, overflowAmount, hideOverflow, hasOverflow, contentScrollSize, viewportSize, hostSize, autoUpdate} | *}\n                 */\n                _base.getState = function (stateProperty) {\n                    function prepare(obj) {\n                        if (!FRAMEWORK.isPlainObject(obj))\n                            return obj;\n                        var extended = extendDeep({}, obj);\n                        var changePropertyName = function (from, to) {\n                            if (extended[LEXICON.hOP](from)) {\n                                extended[to] = extended[from];\n                                delete extended[from];\n                            }\n                        };\n                        changePropertyName('w', _strWidth); //change w to width\n                        changePropertyName('h', _strHeight); //change h to height\n                        delete extended.c; //delete c (the 'changed' prop)\n                        return extended;\n                    };\n                    var obj = {\n                        destroyed: !!prepare(_destroyed),\n                        sleeping: !!prepare(_sleeping),\n                        autoUpdate: prepare(!_mutationObserversConnected),\n                        widthAuto: prepare(_widthAutoCache),\n                        heightAuto: prepare(_heightAutoCache),\n                        padding: prepare(_cssPaddingCache),\n                        overflowAmount: prepare(_overflowAmountCache),\n                        hideOverflow: prepare(_hideOverflowCache),\n                        hasOverflow: prepare(_hasOverflowCache),\n                        contentScrollSize: prepare(_contentScrollSizeCache),\n                        viewportSize: prepare(_viewportSize),\n                        hostSize: prepare(_hostSizeCache),\n                        documentMixed: prepare(_documentMixed)\n                    };\n                    return type(stateProperty) == TYPES.s ? getObjectPropVal(obj, stateProperty) : obj;\n                };\n\n                /**\n                 * Gets all or specific extension instance.\n                 * @param extName The name of the extension from which the instance shall be got.\n                 * @returns {{}} The instance of the extension with the given name or undefined if the instance couldn't be found.\n                 */\n                _base.ext = function (extName) {\n                    var result;\n                    var privateMethods = _extensionsPrivateMethods.split(' ');\n                    var i = 0;\n                    if (type(extName) == TYPES.s) {\n                        if (_extensions[LEXICON.hOP](extName)) {\n                            result = extendDeep({}, _extensions[extName]);\n                            for (; i < privateMethods.length; i++)\n                                delete result[privateMethods[i]];\n                        }\n                    }\n                    else {\n                        result = {};\n                        for (i in _extensions)\n                            result[i] = extendDeep({}, _base.ext(i));\n                    }\n                    return result;\n                };\n\n                /**\n                 * Adds a extension to this instance.\n                 * @param extName The name of the extension which shall be added.\n                 * @param extensionOptions The extension options which shall be used.\n                 * @returns {{}} The instance of the added extension or undefined if the extension couldn't be added properly.\n                 */\n                _base.addExt = function (extName, extensionOptions) {\n                    var registeredExtensionObj = _plugin.extension(extName);\n                    var instance;\n                    var instanceAdded;\n                    var instanceContract;\n                    var contractResult;\n                    var contractFulfilled = true;\n                    if (registeredExtensionObj) {\n                        if (!_extensions[LEXICON.hOP](extName)) {\n                            instance = registeredExtensionObj.extensionFactory.call(_base,\n                                extendDeep({}, registeredExtensionObj.defaultOptions),\n                                FRAMEWORK,\n                                COMPATIBILITY);\n\n                            if (instance) {\n                                instanceContract = instance.contract;\n                                if (type(instanceContract) == TYPES.f) {\n                                    contractResult = instanceContract(window);\n                                    contractFulfilled = type(contractResult) == TYPES.b ? contractResult : contractFulfilled;\n                                }\n                                if (contractFulfilled) {\n                                    _extensions[extName] = instance;\n                                    instanceAdded = instance.added;\n                                    if (type(instanceAdded) == TYPES.f)\n                                        instanceAdded(extensionOptions);\n\n                                    return _base.ext(extName);\n                                }\n                            }\n                        }\n                        else\n                            return _base.ext(extName);\n                    }\n                    else\n                        console.warn(\"A extension with the name \\\"\" + extName + \"\\\" isn't registered.\");\n                };\n\n                /**\n                 * Removes a extension from this instance.\n                 * @param extName The name of the extension which shall be removed.\n                 * @returns {boolean} True if the extension was removed, false otherwise e.g. if the extension wasn't added before.\n                 */\n                _base.removeExt = function (extName) {\n                    var instance = _extensions[extName];\n                    var instanceRemoved;\n                    if (instance) {\n                        delete _extensions[extName];\n\n                        instanceRemoved = instance.removed;\n                        if (type(instanceRemoved) == TYPES.f)\n                            instanceRemoved();\n\n                        return true;\n                    }\n                    return false;\n                };\n\n                /**\n                 * Constructs the plugin.\n                 * @param targetElement The element to which the plugin shall be applied.\n                 * @param options The initial options of the plugin.\n                 * @param extensions The extension(s) which shall be added right after the initialization.\n                 * @returns {boolean} True if the plugin was successfully initialized, false otherwise.\n                 */\n                function construct(targetElement, options, extensions) {\n                    _defaultOptions = globals.defaultOptions;\n                    _nativeScrollbarStyling = globals.nativeScrollbarStyling;\n                    _nativeScrollbarSize = extendDeep({}, globals.nativeScrollbarSize);\n                    _nativeScrollbarIsOverlaid = extendDeep({}, globals.nativeScrollbarIsOverlaid);\n                    _overlayScrollbarDummySize = extendDeep({}, globals.overlayScrollbarDummySize);\n                    _rtlScrollBehavior = extendDeep({}, globals.rtlScrollBehavior);\n\n                    //parse & set options but don't update\n                    setOptions(extendDeep({}, _defaultOptions, options));\n\n                    _cssCalc = globals.cssCalc;\n                    _msieVersion = globals.msie;\n                    _autoUpdateRecommended = globals.autoUpdateRecommended;\n                    _supportTransition = globals.supportTransition;\n                    _supportTransform = globals.supportTransform;\n                    _supportPassiveEvents = globals.supportPassiveEvents;\n                    _supportResizeObserver = globals.supportResizeObserver;\n                    _supportMutationObserver = globals.supportMutationObserver;\n                    _restrictedMeasuring = globals.restrictedMeasuring;\n                    _documentElement = FRAMEWORK(targetElement.ownerDocument);\n                    _documentElementNative = _documentElement[0];\n                    _windowElement = FRAMEWORK(_documentElementNative.defaultView || _documentElementNative.parentWindow);\n                    _windowElementNative = _windowElement[0];\n                    _htmlElement = findFirst(_documentElement, 'html');\n                    _bodyElement = findFirst(_htmlElement, 'body');\n                    _targetElement = FRAMEWORK(targetElement);\n                    _targetElementNative = _targetElement[0];\n                    _isTextarea = _targetElement.is('textarea');\n                    _isBody = _targetElement.is('body');\n                    _documentMixed = _documentElementNative !== document;\n\n                    /* On a div Element The if checks only whether:\n                     * - the targetElement has the class \"os-host\"\n                     * - the targetElement has a a child with the class \"os-padding\"\n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-host\" element is the targetElement)\n                     *\n                     *  <div class=\"os-host\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding\">\n                     *          <div class=\"os-viewport\">\n                     *              <div class=\"os-content\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     *\n                     * =====================================================================================\n                     * \n                     * On a Textarea Element The if checks only whether:\n                     * - the targetElement has the class \"os-textarea\" \n                     * - the targetElement is inside a element with the class \"os-content\" \n                     * \n                     * If that's the case, its assumed the DOM has already the following structure:\n                     * (The \".os-textarea\" (textarea) element is the targetElement)\n                     *\n                     *  <div class=\"os-host-textarea\">\n                     *      <div class=\"os-resize-observer-host\"></div>\n                     *      <div class=\"os-padding os-text-inherit\">\n                     *          <div class=\"os-viewport os-text-inherit\">\n                     *              <div class=\"os-content os-text-inherit\">\n                     *                  <div class=\"os-textarea-cover\"></div>\n                     *                  <textarea class=\"os-textarea os-text-inherit\"></textarea>\n                     *              </div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-horizontal \">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar os-scrollbar-vertical\">\n                     *          <div class=\"os-scrollbar-track\">\n                     *              <div class=\"os-scrollbar-handle\"></div>\n                     *          </div>\n                     *      </div>\n                     *      <div class=\"os-scrollbar-corner\"></div>\n                     *  </div>\n                     */\n                    _domExists = _isTextarea\n                        ? _targetElement.hasClass(_classNameTextareaElement) && _targetElement.parent().hasClass(_classNameContentElement)\n                        : _targetElement.hasClass(_classNameHostElement) && _targetElement.children(_strDot + _classNamePaddingElement)[LEXICON.l];\n\n                    var initBodyScroll;\n                    var bodyMouseTouchDownListener;\n\n                    //check if the plugin hasn't to be initialized\n                    if (_nativeScrollbarIsOverlaid.x && _nativeScrollbarIsOverlaid.y && !_currentPreparedOptions.nativeScrollbarsOverlaid.initialize) {\n                        dispatchCallback('onInitializationWithdrawn');\n                        if (_domExists) {\n                            setupStructureDOM(true);\n                            setupScrollbarsDOM(true);\n                            setupScrollbarCornerDOM(true);\n                        }\n\n                        _destroyed = true;\n                        _sleeping = true;\n\n                        return _base;\n                    }\n\n                    if (_isBody) {\n                        initBodyScroll = {};\n                        initBodyScroll.l = MATH.max(_targetElement[_strScrollLeft](), _htmlElement[_strScrollLeft](), _windowElement[_strScrollLeft]());\n                        initBodyScroll.t = MATH.max(_targetElement[_strScrollTop](), _htmlElement[_strScrollTop](), _windowElement[_strScrollTop]());\n\n                        bodyMouseTouchDownListener = function () {\n                            _viewportElement.removeAttr(LEXICON.ti);\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, true, true);\n                        }\n                    }\n\n                    //build OverlayScrollbars DOM\n                    setupStructureDOM();\n                    setupScrollbarsDOM();\n                    setupScrollbarCornerDOM();\n\n                    //create OverlayScrollbars events\n                    setupStructureEvents();\n                    setupScrollbarEvents(true);\n                    setupScrollbarEvents(false);\n                    setupScrollbarCornerEvents();\n\n                    //create mutation observers\n                    createMutationObservers();\n\n                    //build resize observer for the host element\n                    setupResizeObserver(_sizeObserverElement, hostOnResized);\n\n                    if (_isBody) {\n                        //apply the body scroll to handle it right in the update method\n                        _viewportElement[_strScrollLeft](initBodyScroll.l)[_strScrollTop](initBodyScroll.t);\n\n                        //set the focus on the viewport element so you dont have to click on the page to use keyboard keys (up / down / space) for scrolling\n                        if (document.activeElement == targetElement && _viewportElementNative.focus) {\n                            //set a tabindex to make the viewportElement focusable\n                            _viewportElement.attr(LEXICON.ti, '-1');\n                            _viewportElementNative.focus();\n\n                            /* the tabindex has to be removed due to;\n                             * If you set the tabindex attribute on an <div>, then its child content cannot be scrolled with the arrow keys unless you set tabindex on the content, too\n                             * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n                             */\n                            setupResponsiveEventListener(_viewportElement, _strMouseTouchDownEvent, bodyMouseTouchDownListener, false, true);\n                        }\n                    }\n\n                    //update for the first time & initialize cache\n                    _base.update(_strAuto);\n\n                    //the plugin is initialized now!\n                    _initialized = true;\n                    dispatchCallback('onInitialized');\n\n                    //call all callbacks which would fire before the initialized was complete\n                    each(_callbacksInitQeueue, function (index, value) { dispatchCallback(value.n, value.a); });\n                    _callbacksInitQeueue = [];\n\n                    //add extensions\n                    if (type(extensions) == TYPES.s)\n                        extensions = [extensions];\n                    if (COMPATIBILITY.isA(extensions))\n                        each(extensions, function (index, value) { _base.addExt(value); });\n                    else if (FRAMEWORK.isPlainObject(extensions))\n                        each(extensions, function (key, value) { _base.addExt(key, value); });\n\n                    //add the transition class for transitions AFTER the first update & AFTER the applied extensions (for preventing unwanted transitions)\n                    setTimeout(function () {\n                        if (_supportTransition && !_destroyed)\n                            addClass(_hostElement, _classNameHostTransition);\n                    }, 333);\n\n                    return _base;\n                }\n\n                if (_plugin.valid(construct(pluginTargetElement, options, extensions))) {\n                    INSTANCES(pluginTargetElement, _base);\n                }\n\n                return _base;\n            }\n\n            /**\n             * Initializes a new OverlayScrollbarsInstance object or changes options if already initialized or returns the current instance.\n             * @param pluginTargetElements The elements to which the Plugin shall be initialized.\n             * @param options The custom options with which the plugin shall be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*}\n             */\n            _plugin = window[PLUGINNAME] = function (pluginTargetElements, options, extensions) {\n                if (arguments[LEXICON.l] === 0)\n                    return this;\n\n                var arr = [];\n                var optsIsPlainObj = FRAMEWORK.isPlainObject(options);\n                var inst;\n                var result;\n\n                //pluginTargetElements is null or undefined\n                if (!pluginTargetElements)\n                    return optsIsPlainObj || !options ? result : arr;\n\n                /*\n                   pluginTargetElements will be converted to:\n                   1. A jQueryElement Array\n                   2. A HTMLElement Array\n                   3. A Array with a single HTML Element\n                   so pluginTargetElements is always a array.\n                */\n                pluginTargetElements = pluginTargetElements[LEXICON.l] != undefined ? pluginTargetElements : [pluginTargetElements[0] || pluginTargetElements];\n                initOverlayScrollbarsStatics();\n\n                if (pluginTargetElements[LEXICON.l] > 0) {\n                    if (optsIsPlainObj) {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = v;\n                            if (inst !== undefined)\n                                arr.push(OverlayScrollbarsInstance(inst, options, extensions, _pluginsGlobals, _pluginsAutoUpdateLoop));\n                        });\n                    }\n                    else {\n                        FRAMEWORK.each(pluginTargetElements, function (i, v) {\n                            inst = INSTANCES(v);\n                            if ((options === '!' && _plugin.valid(inst)) || (COMPATIBILITY.type(options) == TYPES.f && options(v, inst)))\n                                arr.push(inst);\n                            else if (options === undefined)\n                                arr.push(inst);\n                        });\n                    }\n                    result = arr[LEXICON.l] === 1 ? arr[0] : arr;\n                }\n                return result;\n            };\n\n            /**\n             * Returns a object which contains global information about the plugin and each instance of it.\n             * The returned object is just a copy, that means that changes to the returned object won't have any effect to the original object.\n             */\n            _plugin.globals = function () {\n                initOverlayScrollbarsStatics();\n                var globals = FRAMEWORK.extend(true, {}, _pluginsGlobals);\n                delete globals['msie'];\n                return globals;\n            };\n\n            /**\n             * Gets or Sets the default options for each new plugin initialization.\n             * @param newDefaultOptions The object with which the default options shall be extended.\n             */\n            _plugin.defaultOptions = function (newDefaultOptions) {\n                initOverlayScrollbarsStatics();\n                var currDefaultOptions = _pluginsGlobals.defaultOptions;\n                if (newDefaultOptions === undefined)\n                    return FRAMEWORK.extend(true, {}, currDefaultOptions);\n\n                //set the new default options\n                _pluginsGlobals.defaultOptions = FRAMEWORK.extend(true, {}, currDefaultOptions, _pluginsOptions._validate(newDefaultOptions, _pluginsOptions._template, true, currDefaultOptions)._default);\n            };\n\n            /**\n             * Checks whether the passed instance is a non-destroyed OverlayScrollbars instance.\n             * @param osInstance The potential OverlayScrollbars instance which shall be checked.\n             * @returns {boolean} True if the passed value is a non-destroyed OverlayScrollbars instance, false otherwise.\n             */\n            _plugin.valid = function (osInstance) {\n                return osInstance instanceof _plugin && !osInstance.getState().destroyed;\n            };\n\n            /**\n             * Registers, Unregisters or returns a extension.\n             * Register: Pass the name and the extension. (defaultOptions is optional)\n             * Unregister: Pass the name and anything except a function as extension parameter.\n             * Get extension: Pass the name of the extension which shall be got.\n             * Get all extensions: Pass no arguments.\n             * @param extensionName The name of the extension which shall be registered, unregistered or returned.\n             * @param extension A function which generates the instance of the extension or anything other to remove a already registered extension.\n             * @param defaultOptions The default options which shall be used for the registered extension.\n             */\n            _plugin.extension = function (extensionName, extension, defaultOptions) {\n                var extNameTypeString = COMPATIBILITY.type(extensionName) == TYPES.s;\n                var argLen = arguments[LEXICON.l];\n                var i = 0;\n                if (argLen < 1 || !extNameTypeString) {\n                    //return a copy of all extension objects\n                    return FRAMEWORK.extend(true, { length: _pluginsExtensions[LEXICON.l] }, _pluginsExtensions);\n                }\n                else if (extNameTypeString) {\n                    if (COMPATIBILITY.type(extension) == TYPES.f) {\n                        //register extension\n                        _pluginsExtensions.push({\n                            name: extensionName,\n                            extensionFactory: extension,\n                            defaultOptions: defaultOptions\n                        });\n                    }\n                    else {\n                        for (; i < _pluginsExtensions[LEXICON.l]; i++) {\n                            if (_pluginsExtensions[i].name === extensionName) {\n                                if (argLen > 1)\n                                    _pluginsExtensions.splice(i, 1); //remove extension\n                                else\n                                    return FRAMEWORK.extend(true, {}, _pluginsExtensions[i]); //return extension with the given name\n                            }\n                        }\n                    }\n                }\n            };\n\n            return _plugin;\n        })();\n\n        if (JQUERY && JQUERY.fn) {\n            /**\n             * The jQuery initialization interface.\n             * @param options The initial options for the construction of the plugin. To initialize the plugin, this option has to be a object! If it isn't a object, the instance(s) are returned and the plugin wont be initialized.\n             * @param extensions The extension(s) which shall be added right after initialization.\n             * @returns {*} After initialization it returns the jQuery element array, else it returns the instance(s) of the elements which are selected.\n             */\n            JQUERY.fn.overlayScrollbars = function (options, extensions) {\n                var _elements = this;\n                if (JQUERY.isPlainObject(options)) {\n                    JQUERY.each(_elements, function () { PLUGIN(this, options, extensions); });\n                    return _elements;\n                }\n                else\n                    return PLUGIN(_elements, options);\n            };\n        }\n        return PLUGIN;\n    }\n));"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/pace.js",
    "content": "(function() {\n  var AjaxMonitor, Bar, DocumentMonitor, ElementMonitor, ElementTracker, EventLagMonitor, Evented, Events, NoTargetError, Pace, RequestIntercept, SOURCE_KEYS, Scaler, SocketRequestTracker, XHRRequestTracker, _WebSocket, _XDomainRequest, _XMLHttpRequest, _intercept, _pushState, _replaceState, animation, avgAmplitude, bar, cancelAnimation, cancelAnimationFrame, defaultOptions, extend, extendNative, getFromDOM, getIntercept, handlePushState, ignoreStack, init, k, len, now, options, ref, requestAnimationFrame, result, runAnimation, scalers, shouldIgnoreURL, shouldTrack, source, sources, uniScaler,\n    slice = [].slice,\n    hasProp = {}.hasOwnProperty,\n    extend1 = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n    indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n  defaultOptions = {\n    catchupTime: 100,\n    initialRate: .03,\n    minTime: 250,\n    ghostTime: 100,\n    maxProgressPerFrame: 20,\n    easeFactor: 1.25,\n    startOnPageLoad: true,\n    restartOnPushState: true,\n    restartOnRequestAfter: 500,\n    target: 'body',\n    elements: {\n      checkInterval: 100,\n      selectors: ['body']\n    },\n    eventLag: {\n      minSamples: 10,\n      sampleCount: 3,\n      lagThreshold: 3\n    },\n    ajax: {\n      trackMethods: ['GET'],\n      trackWebSockets: true,\n      ignoreURLs: []\n    }\n  };\n\n  now = function() {\n    var ref;\n    return (ref = typeof performance !== \"undefined\" && performance !== null ? typeof performance.now === \"function\" ? performance.now() : void 0 : void 0) != null ? ref : +(new Date);\n  };\n\n  requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;\n\n  cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame;\n\n  if (requestAnimationFrame == null) {\n    requestAnimationFrame = function(fn) {\n      return setTimeout(fn, 50);\n    };\n    cancelAnimationFrame = function(id) {\n      return clearTimeout(id);\n    };\n  }\n\n  runAnimation = function(fn) {\n    var last, tick;\n    last = now();\n    tick = function() {\n      var diff;\n      diff = now() - last;\n      if (diff >= 33) {\n        last = now();\n        return fn(diff, function() {\n          return requestAnimationFrame(tick);\n        });\n      } else {\n        return setTimeout(tick, 33 - diff);\n      }\n    };\n    return tick();\n  };\n\n  result = function() {\n    var args, key, obj;\n    obj = arguments[0], key = arguments[1], args = 3 <= arguments.length ? slice.call(arguments, 2) : [];\n    if (typeof obj[key] === 'function') {\n      return obj[key].apply(obj, args);\n    } else {\n      return obj[key];\n    }\n  };\n\n  extend = function() {\n    var k, key, len, out, source, sources, val;\n    out = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    for (k = 0, len = sources.length; k < len; k++) {\n      source = sources[k];\n      if (source) {\n        for (key in source) {\n          if (!hasProp.call(source, key)) continue;\n          val = source[key];\n          if ((out[key] != null) && typeof out[key] === 'object' && (val != null) && typeof val === 'object') {\n            extend(out[key], val);\n          } else {\n            out[key] = val;\n          }\n        }\n      }\n    }\n    return out;\n  };\n\n  avgAmplitude = function(arr) {\n    var count, k, len, sum, v;\n    sum = count = 0;\n    for (k = 0, len = arr.length; k < len; k++) {\n      v = arr[k];\n      sum += Math.abs(v);\n      count++;\n    }\n    return sum / count;\n  };\n\n  getFromDOM = function(key, json) {\n    var data, e, el, error;\n    if (key == null) {\n      key = 'options';\n    }\n    if (json == null) {\n      json = true;\n    }\n    el = document.querySelector(\"[data-pace-\" + key + \"]\");\n    if (!el) {\n      return;\n    }\n    data = el.getAttribute(\"data-pace-\" + key);\n    if (!json) {\n      return data;\n    }\n    try {\n      return JSON.parse(data);\n    } catch (error) {\n      e = error;\n      return typeof console !== \"undefined\" && console !== null ? console.error(\"Error parsing inline pace options\", e) : void 0;\n    }\n  };\n\n  Evented = (function() {\n    function Evented() {}\n\n    Evented.prototype.on = function(event, handler, ctx, once) {\n      var base;\n      if (once == null) {\n        once = false;\n      }\n      if (this.bindings == null) {\n        this.bindings = {};\n      }\n      if ((base = this.bindings)[event] == null) {\n        base[event] = [];\n      }\n      return this.bindings[event].push({\n        handler: handler,\n        ctx: ctx,\n        once: once\n      });\n    };\n\n    Evented.prototype.once = function(event, handler, ctx) {\n      return this.on(event, handler, ctx, true);\n    };\n\n    Evented.prototype.off = function(event, handler) {\n      var i, ref, results;\n      if (((ref = this.bindings) != null ? ref[event] : void 0) == null) {\n        return;\n      }\n      if (handler == null) {\n        return delete this.bindings[event];\n      } else {\n        i = 0;\n        results = [];\n        while (i < this.bindings[event].length) {\n          if (this.bindings[event][i].handler === handler) {\n            results.push(this.bindings[event].splice(i, 1));\n          } else {\n            results.push(i++);\n          }\n        }\n        return results;\n      }\n    };\n\n    Evented.prototype.trigger = function() {\n      var args, ctx, event, handler, i, once, ref, ref1, results;\n      event = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n      if ((ref = this.bindings) != null ? ref[event] : void 0) {\n        i = 0;\n        results = [];\n        while (i < this.bindings[event].length) {\n          ref1 = this.bindings[event][i], handler = ref1.handler, ctx = ref1.ctx, once = ref1.once;\n          handler.apply(ctx != null ? ctx : this, args);\n          if (once) {\n            results.push(this.bindings[event].splice(i, 1));\n          } else {\n            results.push(i++);\n          }\n        }\n        return results;\n      }\n    };\n\n    return Evented;\n\n  })();\n\n  Pace = window.Pace || {};\n\n  window.Pace = Pace;\n\n  extend(Pace, Evented.prototype);\n\n  options = Pace.options = extend({}, defaultOptions, window.paceOptions, getFromDOM());\n\n  ref = ['ajax', 'document', 'eventLag', 'elements'];\n  for (k = 0, len = ref.length; k < len; k++) {\n    source = ref[k];\n    if (options[source] === true) {\n      options[source] = defaultOptions[source];\n    }\n  }\n\n  NoTargetError = (function(superClass) {\n    extend1(NoTargetError, superClass);\n\n    function NoTargetError() {\n      return NoTargetError.__super__.constructor.apply(this, arguments);\n    }\n\n    return NoTargetError;\n\n  })(Error);\n\n  Bar = (function() {\n    function Bar() {\n      this.progress = 0;\n    }\n\n    Bar.prototype.getElement = function() {\n      var targetElement;\n      if (this.el == null) {\n        targetElement = document.querySelector(options.target);\n        if (!targetElement) {\n          throw new NoTargetError;\n        }\n        this.el = document.createElement('div');\n        this.el.classList.add('pace');\n        this.el.classList.add('pace-active');\n        document.body.classList.remove('pace-done');\n        document.body.classList.add('pace-running');\n        this.el.innerHTML = '<div class=\"pace-progress\">\\n  <div class=\"pace-progress-inner\"></div>\\n</div>\\n<div class=\"pace-activity\"></div>';\n        if (targetElement.firstChild != null) {\n          targetElement.insertBefore(this.el, targetElement.firstChild);\n        } else {\n          targetElement.appendChild(this.el);\n        }\n      }\n      return this.el;\n    };\n\n    Bar.prototype.finish = function() {\n      var el;\n      el = this.getElement();\n      el.classList.remove('pace-active');\n      el.classList.add('pace-inactive');\n      document.body.classList.remove('pace-running');\n      return document.body.classList.add('pace-done');\n    };\n\n    Bar.prototype.update = function(prog) {\n      this.progress = prog;\n      return this.render();\n    };\n\n    Bar.prototype.destroy = function() {\n      var error;\n      try {\n        this.getElement().parentNode.removeChild(this.getElement());\n      } catch (error) {\n        NoTargetError = error;\n      }\n      return this.el = void 0;\n    };\n\n    Bar.prototype.render = function() {\n      var el, key, l, len1, progressStr, ref1, transform;\n      if (document.querySelector(options.target) == null) {\n        return false;\n      }\n      el = this.getElement();\n      transform = \"translate3d(\" + this.progress + \"%, 0, 0)\";\n      ref1 = ['webkitTransform', 'msTransform', 'transform'];\n      for (l = 0, len1 = ref1.length; l < len1; l++) {\n        key = ref1[l];\n        el.children[0].style[key] = transform;\n      }\n      if (!this.lastRenderedProgress || this.lastRenderedProgress | 0 !== this.progress | 0) {\n        el.children[0].setAttribute('data-progress-text', (this.progress | 0) + \"%\");\n        if (this.progress >= 100) {\n          progressStr = '99';\n        } else {\n          progressStr = this.progress < 10 ? \"0\" : \"\";\n          progressStr += this.progress | 0;\n        }\n        el.children[0].setAttribute('data-progress', \"\" + progressStr);\n      }\n      return this.lastRenderedProgress = this.progress;\n    };\n\n    Bar.prototype.done = function() {\n      return this.progress >= 100;\n    };\n\n    return Bar;\n\n  })();\n\n  Events = (function() {\n    function Events() {\n      this.bindings = {};\n    }\n\n    Events.prototype.trigger = function(name, val) {\n      var binding, l, len1, ref1, results;\n      if (this.bindings[name] != null) {\n        ref1 = this.bindings[name];\n        results = [];\n        for (l = 0, len1 = ref1.length; l < len1; l++) {\n          binding = ref1[l];\n          results.push(binding.call(this, val));\n        }\n        return results;\n      }\n    };\n\n    Events.prototype.on = function(name, fn) {\n      var base;\n      if ((base = this.bindings)[name] == null) {\n        base[name] = [];\n      }\n      return this.bindings[name].push(fn);\n    };\n\n    return Events;\n\n  })();\n\n  _XMLHttpRequest = window.XMLHttpRequest;\n\n  _XDomainRequest = window.XDomainRequest;\n\n  _WebSocket = window.WebSocket;\n\n  extendNative = function(to, from) {\n    var e, error, key, results;\n    results = [];\n    for (key in from.prototype) {\n      try {\n        if ((to[key] == null) && typeof from[key] !== 'function') {\n          if (typeof Object.defineProperty === 'function') {\n            results.push(Object.defineProperty(to, key, {\n              get: function() {\n                return from.prototype[key];\n              },\n              configurable: true,\n              enumerable: true\n            }));\n          } else {\n            results.push(to[key] = from.prototype[key]);\n          }\n        } else {\n          results.push(void 0);\n        }\n      } catch (error) {\n        e = error;\n      }\n    }\n    return results;\n  };\n\n  ignoreStack = [];\n\n  Pace.ignore = function() {\n    var args, fn, ret;\n    fn = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    ignoreStack.unshift('ignore');\n    ret = fn.apply(null, args);\n    ignoreStack.shift();\n    return ret;\n  };\n\n  Pace.track = function() {\n    var args, fn, ret;\n    fn = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    ignoreStack.unshift('track');\n    ret = fn.apply(null, args);\n    ignoreStack.shift();\n    return ret;\n  };\n\n  shouldTrack = function(method) {\n    var ref1;\n    if (method == null) {\n      method = 'GET';\n    }\n    if (ignoreStack[0] === 'track') {\n      return 'force';\n    }\n    if (!ignoreStack.length && options.ajax) {\n      if (method === 'socket' && options.ajax.trackWebSockets) {\n        return true;\n      } else if (ref1 = method.toUpperCase(), indexOf.call(options.ajax.trackMethods, ref1) >= 0) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  RequestIntercept = (function(superClass) {\n    extend1(RequestIntercept, superClass);\n\n    function RequestIntercept() {\n      var monitorXHR;\n      RequestIntercept.__super__.constructor.apply(this, arguments);\n      monitorXHR = (function(_this) {\n        return function(req) {\n          var _open;\n          _open = req.open;\n          return req.open = function(type, url, async) {\n            if (shouldTrack(type)) {\n              _this.trigger('request', {\n                type: type,\n                url: url,\n                request: req\n              });\n            }\n            return _open.apply(req, arguments);\n          };\n        };\n      })(this);\n      window.XMLHttpRequest = function(flags) {\n        var req;\n        req = new _XMLHttpRequest(flags);\n        monitorXHR(req);\n        return req;\n      };\n      try {\n        extendNative(window.XMLHttpRequest, _XMLHttpRequest);\n      } catch (undefined) {}\n      if (_XDomainRequest != null) {\n        window.XDomainRequest = function() {\n          var req;\n          req = new _XDomainRequest;\n          monitorXHR(req);\n          return req;\n        };\n        try {\n          extendNative(window.XDomainRequest, _XDomainRequest);\n        } catch (undefined) {}\n      }\n      if ((_WebSocket != null) && options.ajax.trackWebSockets) {\n        window.WebSocket = (function(_this) {\n          return function(url, protocols) {\n            var req;\n            if (protocols != null) {\n              req = new _WebSocket(url, protocols);\n            } else {\n              req = new _WebSocket(url);\n            }\n            if (shouldTrack('socket')) {\n              _this.trigger('request', {\n                type: 'socket',\n                url: url,\n                protocols: protocols,\n                request: req\n              });\n            }\n            return req;\n          };\n        })(this);\n        try {\n          extendNative(window.WebSocket, _WebSocket);\n        } catch (undefined) {}\n      }\n    }\n\n    return RequestIntercept;\n\n  })(Events);\n\n  _intercept = null;\n\n  getIntercept = function() {\n    if (_intercept == null) {\n      _intercept = new RequestIntercept;\n    }\n    return _intercept;\n  };\n\n  shouldIgnoreURL = function(url) {\n    var l, len1, pattern, ref1;\n    ref1 = options.ajax.ignoreURLs;\n    for (l = 0, len1 = ref1.length; l < len1; l++) {\n      pattern = ref1[l];\n      if (typeof pattern === 'string') {\n        if (url.indexOf(pattern) !== -1) {\n          return true;\n        }\n      } else {\n        if (pattern.test(url)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  getIntercept().on('request', function(arg) {\n    var after, args, request, type, url;\n    type = arg.type, request = arg.request, url = arg.url;\n    if (shouldIgnoreURL(url)) {\n      return;\n    }\n    if (!Pace.running && (options.restartOnRequestAfter !== false || shouldTrack(type) === 'force')) {\n      args = arguments;\n      after = options.restartOnRequestAfter || 0;\n      if (typeof after === 'boolean') {\n        after = 0;\n      }\n      return setTimeout(function() {\n        var l, len1, ref1, ref2, results, stillActive;\n        if (type === 'socket') {\n          stillActive = request.readyState < 2;\n        } else {\n          stillActive = (0 < (ref1 = request.readyState) && ref1 < 4);\n        }\n        if (stillActive) {\n          Pace.restart();\n          ref2 = Pace.sources;\n          results = [];\n          for (l = 0, len1 = ref2.length; l < len1; l++) {\n            source = ref2[l];\n            if (source instanceof AjaxMonitor) {\n              source.watch.apply(source, args);\n              break;\n            } else {\n              results.push(void 0);\n            }\n          }\n          return results;\n        }\n      }, after);\n    }\n  });\n\n  AjaxMonitor = (function() {\n    function AjaxMonitor() {\n      this.elements = [];\n      getIntercept().on('request', (function(_this) {\n        return function() {\n          return _this.watch.apply(_this, arguments);\n        };\n      })(this));\n    }\n\n    AjaxMonitor.prototype.watch = function(arg) {\n      var request, tracker, type, url;\n      type = arg.type, request = arg.request, url = arg.url;\n      if (shouldIgnoreURL(url)) {\n        return;\n      }\n      if (type === 'socket') {\n        tracker = new SocketRequestTracker(request);\n      } else {\n        tracker = new XHRRequestTracker(request);\n      }\n      return this.elements.push(tracker);\n    };\n\n    return AjaxMonitor;\n\n  })();\n\n  XHRRequestTracker = (function() {\n    function XHRRequestTracker(request) {\n      var _onreadystatechange, event, l, len1, ref1, size;\n      this.progress = 0;\n      if (window.ProgressEvent != null) {\n        size = null;\n        request.addEventListener('progress', (function(_this) {\n          return function(evt) {\n            if (evt.lengthComputable) {\n              return _this.progress = 100 * evt.loaded / evt.total;\n            } else {\n              return _this.progress = _this.progress + (100 - _this.progress) / 2;\n            }\n          };\n        })(this), false);\n        ref1 = ['load', 'abort', 'timeout', 'error'];\n        for (l = 0, len1 = ref1.length; l < len1; l++) {\n          event = ref1[l];\n          request.addEventListener(event, (function(_this) {\n            return function() {\n              return _this.progress = 100;\n            };\n          })(this), false);\n        }\n      } else {\n        _onreadystatechange = request.onreadystatechange;\n        request.onreadystatechange = (function(_this) {\n          return function() {\n            var ref2;\n            if ((ref2 = request.readyState) === 0 || ref2 === 4) {\n              _this.progress = 100;\n            } else if (request.readyState === 3) {\n              _this.progress = 50;\n            }\n            return typeof _onreadystatechange === \"function\" ? _onreadystatechange.apply(null, arguments) : void 0;\n          };\n        })(this);\n      }\n    }\n\n    return XHRRequestTracker;\n\n  })();\n\n  SocketRequestTracker = (function() {\n    function SocketRequestTracker(request) {\n      var event, l, len1, ref1;\n      this.progress = 0;\n      ref1 = ['error', 'open'];\n      for (l = 0, len1 = ref1.length; l < len1; l++) {\n        event = ref1[l];\n        request.addEventListener(event, (function(_this) {\n          return function() {\n            return _this.progress = 100;\n          };\n        })(this), false);\n      }\n    }\n\n    return SocketRequestTracker;\n\n  })();\n\n  ElementMonitor = (function() {\n    function ElementMonitor(options) {\n      var l, len1, ref1, selector;\n      if (options == null) {\n        options = {};\n      }\n      this.elements = [];\n      if (options.selectors == null) {\n        options.selectors = [];\n      }\n      ref1 = options.selectors;\n      for (l = 0, len1 = ref1.length; l < len1; l++) {\n        selector = ref1[l];\n        this.elements.push(new ElementTracker(selector));\n      }\n    }\n\n    return ElementMonitor;\n\n  })();\n\n  ElementTracker = (function() {\n    function ElementTracker(selector1) {\n      this.selector = selector1;\n      this.progress = 0;\n      this.check();\n    }\n\n    ElementTracker.prototype.check = function() {\n      if (document.querySelector(this.selector)) {\n        return this.done();\n      } else {\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this.check();\n          };\n        })(this)), options.elements.checkInterval);\n      }\n    };\n\n    ElementTracker.prototype.done = function() {\n      return this.progress = 100;\n    };\n\n    return ElementTracker;\n\n  })();\n\n  DocumentMonitor = (function() {\n    DocumentMonitor.prototype.states = {\n      loading: 0,\n      interactive: 50,\n      complete: 100\n    };\n\n    function DocumentMonitor() {\n      var _onreadystatechange, ref1;\n      this.progress = (ref1 = this.states[document.readyState]) != null ? ref1 : 100;\n      _onreadystatechange = document.onreadystatechange;\n      document.onreadystatechange = (function(_this) {\n        return function() {\n          if (_this.states[document.readyState] != null) {\n            _this.progress = _this.states[document.readyState];\n          }\n          return typeof _onreadystatechange === \"function\" ? _onreadystatechange.apply(null, arguments) : void 0;\n        };\n      })(this);\n    }\n\n    return DocumentMonitor;\n\n  })();\n\n  EventLagMonitor = (function() {\n    function EventLagMonitor() {\n      var avg, interval, last, points, samples;\n      this.progress = 0;\n      avg = 0;\n      samples = [];\n      points = 0;\n      last = now();\n      interval = setInterval((function(_this) {\n        return function() {\n          var diff;\n          diff = now() - last - 50;\n          last = now();\n          samples.push(diff);\n          if (samples.length > options.eventLag.sampleCount) {\n            samples.shift();\n          }\n          avg = avgAmplitude(samples);\n          if (++points >= options.eventLag.minSamples && avg < options.eventLag.lagThreshold) {\n            _this.progress = 100;\n            return clearInterval(interval);\n          } else {\n            return _this.progress = 100 * (3 / (avg + 3));\n          }\n        };\n      })(this), 50);\n    }\n\n    return EventLagMonitor;\n\n  })();\n\n  Scaler = (function() {\n    function Scaler(source1) {\n      this.source = source1;\n      this.last = this.sinceLastUpdate = 0;\n      this.rate = options.initialRate;\n      this.catchup = 0;\n      this.progress = this.lastProgress = 0;\n      if (this.source != null) {\n        this.progress = result(this.source, 'progress');\n      }\n    }\n\n    Scaler.prototype.tick = function(frameTime, val) {\n      var scaling;\n      if (val == null) {\n        val = result(this.source, 'progress');\n      }\n      if (val >= 100) {\n        this.done = true;\n      }\n      if (val === this.last) {\n        this.sinceLastUpdate += frameTime;\n      } else {\n        if (this.sinceLastUpdate) {\n          this.rate = (val - this.last) / this.sinceLastUpdate;\n        }\n        this.catchup = (val - this.progress) / options.catchupTime;\n        this.sinceLastUpdate = 0;\n        this.last = val;\n      }\n      if (val > this.progress) {\n        this.progress += this.catchup * frameTime;\n      }\n      scaling = 1 - Math.pow(this.progress / 100, options.easeFactor);\n      this.progress += scaling * this.rate * frameTime;\n      this.progress = Math.min(this.lastProgress + options.maxProgressPerFrame, this.progress);\n      this.progress = Math.max(0, this.progress);\n      this.progress = Math.min(100, this.progress);\n      this.lastProgress = this.progress;\n      return this.progress;\n    };\n\n    return Scaler;\n\n  })();\n\n  sources = null;\n\n  scalers = null;\n\n  bar = null;\n\n  uniScaler = null;\n\n  animation = null;\n\n  cancelAnimation = null;\n\n  Pace.running = false;\n\n  handlePushState = function() {\n    if (options.restartOnPushState) {\n      return Pace.restart();\n    }\n  };\n\n  if (window.history.pushState != null) {\n    _pushState = window.history.pushState;\n    window.history.pushState = function() {\n      handlePushState();\n      return _pushState.apply(window.history, arguments);\n    };\n  }\n\n  if (window.history.replaceState != null) {\n    _replaceState = window.history.replaceState;\n    window.history.replaceState = function() {\n      handlePushState();\n      return _replaceState.apply(window.history, arguments);\n    };\n  }\n\n  SOURCE_KEYS = {\n    ajax: AjaxMonitor,\n    elements: ElementMonitor,\n    document: DocumentMonitor,\n    eventLag: EventLagMonitor\n  };\n\n  (init = function() {\n    var l, len1, len2, m, ref1, ref2, ref3, type;\n    Pace.sources = sources = [];\n    ref1 = ['ajax', 'elements', 'document', 'eventLag'];\n    for (l = 0, len1 = ref1.length; l < len1; l++) {\n      type = ref1[l];\n      if (options[type] !== false) {\n        sources.push(new SOURCE_KEYS[type](options[type]));\n      }\n    }\n    ref3 = (ref2 = options.extraSources) != null ? ref2 : [];\n    for (m = 0, len2 = ref3.length; m < len2; m++) {\n      source = ref3[m];\n      sources.push(new source(options));\n    }\n    Pace.bar = bar = new Bar;\n    scalers = [];\n    return uniScaler = new Scaler;\n  })();\n\n  Pace.stop = function() {\n    Pace.trigger('stop');\n    Pace.running = false;\n    bar.destroy();\n    cancelAnimation = true;\n    if (animation != null) {\n      if (typeof cancelAnimationFrame === \"function\") {\n        cancelAnimationFrame(animation);\n      }\n      animation = null;\n    }\n    return init();\n  };\n\n  Pace.restart = function() {\n    Pace.trigger('restart');\n    Pace.stop();\n    return Pace.start();\n  };\n\n  Pace.go = function() {\n    var start;\n    Pace.running = true;\n    bar.render();\n    start = now();\n    cancelAnimation = false;\n    return animation = runAnimation(function(frameTime, enqueueNextFrame) {\n      var avg, count, done, element, elements, i, j, l, len1, len2, m, ref1, remaining, scaler, scalerList, sum;\n      remaining = 100 - bar.progress;\n      count = sum = 0;\n      done = true;\n      for (i = l = 0, len1 = sources.length; l < len1; i = ++l) {\n        source = sources[i];\n        scalerList = scalers[i] != null ? scalers[i] : scalers[i] = [];\n        elements = (ref1 = source.elements) != null ? ref1 : [source];\n        for (j = m = 0, len2 = elements.length; m < len2; j = ++m) {\n          element = elements[j];\n          scaler = scalerList[j] != null ? scalerList[j] : scalerList[j] = new Scaler(element);\n          done &= scaler.done;\n          if (scaler.done) {\n            continue;\n          }\n          count++;\n          sum += scaler.tick(frameTime);\n        }\n      }\n      avg = sum / count;\n      bar.update(uniScaler.tick(frameTime, avg));\n      if (bar.done() || done || cancelAnimation) {\n        bar.update(100);\n        Pace.trigger('done');\n        return setTimeout(function() {\n          bar.finish();\n          Pace.running = false;\n          return Pace.trigger('hide');\n        }, Math.max(options.ghostTime, Math.max(options.minTime - (now() - start), 0)));\n      } else {\n        return enqueueNextFrame();\n      }\n    });\n  };\n\n  Pace.start = function(_options) {\n    var error;\n    extend(options, _options);\n    Pace.running = true;\n    try {\n      bar.render();\n    } catch (error) {\n      NoTargetError = error;\n    }\n    if (!document.querySelector('.pace')) {\n      return setTimeout(Pace.start, 50);\n    } else {\n      Pace.trigger('start');\n      return Pace.go();\n    }\n  };\n\n  if (typeof exports === 'object') {\n    module.exports = Pace;\n  }\n\n  if (options.startOnPageLoad) {\n    Pace.start();\n  }\n\n}).call(this);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #000000;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(0, 0, 0, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #000000;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #000000;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #000000;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #000000;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #000000;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(0, 0, 0, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #000000 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #000000 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #000000;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #000000;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #000000;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(0, 0, 0, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #000000;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #000000, 0 0 5px #000000;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #000000;\n  border-left-color: #000000;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #000000;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #000000;\n  color: #000000;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #000000, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #000000;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #000000, inset 0 -1px #000000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #000000, inset 0 -1px #000000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #000000, inset 0 -1px #000000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #000000, inset 0 -1px #000000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #000000;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/black/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #000000;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #2299dd;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(34, 153, 221, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #2299dd;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #2299dd;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #2299dd;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #2299dd;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #2299dd;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(34, 153, 221, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #2299dd transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #2299dd transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #2299dd;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #2299dd;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #2299dd;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(34, 153, 221, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #2299dd;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #2299dd, 0 0 5px #2299dd;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #2299dd;\n  border-left-color: #2299dd;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #2299dd;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #2299dd;\n  color: #2299dd;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #2299dd, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #0087E1;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #00558F, inset 0 -1px #00558F, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #00558F, inset 0 -1px #00558F, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #00558F, inset 0 -1px #00558F, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #00558F, inset 0 -1px #00558F, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #2299dd;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/blue/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #2299dd;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #22df80;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(34, 223, 128, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #22df80;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #22df80;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #22df80;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #22df80;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #22df80;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(34, 223, 128, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #22df80 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #22df80 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #22df80;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #22df80;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #22df80;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(34, 223, 128, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #22df80;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #22df80, 0 0 5px #22df80;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #22df80;\n  border-left-color: #22df80;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #22df80;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #22df80;\n  color: #22df80;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #22df80, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #00E466;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #009140, inset 0 -1px #009140, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #009140, inset 0 -1px #009140, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #009140, inset 0 -1px #009140, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #009140, inset 0 -1px #009140, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #22df80;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/green/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #22df80;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #eb7a55;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(235, 122, 85, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #eb7a55;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #eb7a55;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #eb7a55;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #eb7a55;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #eb7a55;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(235, 122, 85, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #eb7a55 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #eb7a55 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #eb7a55;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #eb7a55;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #eb7a55;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(235, 122, 85, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #eb7a55;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #eb7a55, 0 0 5px #eb7a55;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #eb7a55;\n  border-left-color: #eb7a55;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #eb7a55;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #eb7a55;\n  color: #eb7a55;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #eb7a55, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #FF2C00;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #BF1B00, inset 0 -1px #BF1B00, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #BF1B00, inset 0 -1px #BF1B00, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #BF1B00, inset 0 -1px #BF1B00, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #BF1B00, inset 0 -1px #BF1B00, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #eb7a55;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/orange/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #eb7a55;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #e90f92;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(233, 15, 146, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #e90f92;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #e90f92;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #e90f92;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #e90f92;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #e90f92;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(233, 15, 146, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #e90f92 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #e90f92 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #e90f92;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #e90f92;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #e90f92;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(233, 15, 146, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #e90f92;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #e90f92, 0 0 5px #e90f92;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #e90f92;\n  border-left-color: #e90f92;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #e90f92;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #e90f92;\n  color: #e90f92;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #e90f92, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #F40080;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #9F0053, inset 0 -1px #9F0053, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #9F0053, inset 0 -1px #9F0053, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #9F0053, inset 0 -1px #9F0053, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #9F0053, inset 0 -1px #9F0053, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #e90f92;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/pink/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #e90f92;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #7c60e0;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(124, 96, 224, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #7c60e0;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #7c60e0;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #7c60e0;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #7c60e0;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #7c60e0;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(124, 96, 224, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #7c60e0 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #7c60e0 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #7c60e0;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #7c60e0;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #7c60e0;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(124, 96, 224, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #7c60e0;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #7c60e0, 0 0 5px #7c60e0;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #7c60e0;\n  border-left-color: #7c60e0;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #7c60e0;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #7c60e0;\n  color: #7c60e0;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #7c60e0, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #3000FF;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #1D00AF, inset 0 -1px #1D00AF, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #1D00AF, inset 0 -1px #1D00AF, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #1D00AF, inset 0 -1px #1D00AF, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #1D00AF, inset 0 -1px #1D00AF, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #7c60e0;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/purple/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #7c60e0;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #ee3148;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(238, 49, 72, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #ee3148;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #ee3148;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #ee3148;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #ee3148;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #ee3148;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(238, 49, 72, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #ee3148 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #ee3148 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #ee3148;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #ee3148;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #ee3148;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(238, 49, 72, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #ee3148;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #ee3148, 0 0 5px #ee3148;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #ee3148;\n  border-left-color: #ee3148;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #ee3148;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #ee3148;\n  color: #ee3148;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #ee3148, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #FF0000;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #AF0000, inset 0 -1px #AF0000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #AF0000, inset 0 -1px #AF0000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #AF0000, inset 0 -1px #AF0000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #AF0000, inset 0 -1px #AF0000, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #ee3148;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/red/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #ee3148;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #d6d6d6;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(214, 214, 214, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #d6d6d6;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #d6d6d6;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #d6d6d6;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #d6d6d6;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #d6d6d6;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(214, 214, 214, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #d6d6d6 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #d6d6d6 transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #d6d6d6;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #d6d6d6;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #d6d6d6;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(214, 214, 214, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #d6d6d6;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #d6d6d6, 0 0 5px #d6d6d6;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #d6d6d6;\n  border-left-color: #d6d6d6;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #d6d6d6;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #d6d6d6;\n  color: #d6d6d6;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #d6d6d6, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #ABABAB;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #6B6B6B, inset 0 -1px #6B6B6B, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #6B6B6B, inset 0 -1px #6B6B6B, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #6B6B6B, inset 0 -1px #6B6B6B, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #6B6B6B, inset 0 -1px #6B6B6B, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #d6d6d6;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/silver/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #d6d6d6;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #ffffff;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(255, 255, 255, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #ffffff;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #ffffff;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #ffffff;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #ffffff;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #ffffff;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(255, 255, 255, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #ffffff transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #ffffff transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #ffffff;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #ffffff;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #ffffff;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #ffffff;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #ffffff, 0 0 5px #ffffff;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #ffffff;\n  border-left-color: #ffffff;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #ffffff;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #ffffff;\n  color: #ffffff;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #ffffff, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #CCCCCC;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #808080, inset 0 -1px #808080, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #808080, inset 0 -1px #808080, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #808080, inset 0 -1px #808080, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #808080, inset 0 -1px #808080, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #ffffff;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/white/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #ffffff;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-barber-shop.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #fcd25a;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  right: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  right: -32px;\n  bottom: 0;\n  left: 0;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n  -webkit-background-size: 32px 32px;\n  -moz-background-size: 32px 32px;\n  -o-background-size: 32px 32px;\n  background-size: 32px 32px;\n\n  -webkit-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -moz-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -ms-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  -o-animation: pace-theme-barber-shop-motion 500ms linear infinite;\n  animation: pace-theme-barber-shop-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-barber-shop-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-moz-keyframes pace-theme-barber-shop-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-o-keyframes pace-theme-barber-shop-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@-ms-keyframes pace-theme-barber-shop-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n@keyframes pace-theme-barber-shop-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-big-counter.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  height: 5rem;\n  width: 5rem;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:after {\n  display: block;\n  position: absolute;\n  top: 0;\n  right: .5rem;\n  content: attr(data-progress-text);\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  font-size: 5rem;\n  line-height: 1;\n  text-align: right;\n  color: rgba(252, 210, 90, 0.19999999999999996);\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-bounce.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  width: 140px;\n  height: 300px;\n  position: fixed;\n  top: -90px;\n  right: -20px;\n  z-index: 2000;\n  -webkit-transform: scale(0);\n  -moz-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  opacity: 0;\n  -webkit-transition: all 2s linear 0s;\n  -moz-transition: all 2s linear 0s;\n  transition: all 2s linear 0s;\n}\n\n.pace.pace-active {\n  -webkit-transform: scale(.25);\n  -moz-transform: scale(.25);\n  -ms-transform: scale(.25);\n  -o-transform: scale(.25);\n  transform: scale(.25);\n  opacity: 1;\n}\n\n.pace .pace-activity {\n  width: 140px;\n  height: 140px;\n  border-radius: 70px;\n  background: #fcd25a;\n  position: absolute;\n  top: 0;\n  z-index: 1911;\n  -webkit-animation: pace-bounce 1s infinite;\n  -moz-animation: pace-bounce 1s infinite;\n  -o-animation: pace-bounce 1s infinite;\n  -ms-animation: pace-bounce 1s infinite;\n  animation: pace-bounce 1s infinite;\n}\n\n.pace .pace-progress {\n  position: absolute;\n  display: block;\n  left: 50%;\n  bottom: 0;\n  z-index: 1910;\n  margin-left: -30px;\n  width: 60px;\n  height: 75px;\n  background: rgba(20, 20, 20, .1);\n  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n  border-radius: 30px / 40px;\n  -webkit-transform: scaleY(.3) !important;\n  -moz-transform: scaleY(.3) !important;\n  -ms-transform: scaleY(.3) !important;\n  -o-transform: scaleY(.3) !important;\n  transform: scaleY(.3) !important;\n  -webkit-animation: pace-compress .5s infinite alternate;\n  -moz-animation: pace-compress .5s infinite alternate;\n  -o-animation: pace-compress .5s infinite alternate;\n  -ms-animation: pace-compress .5s infinite alternate;\n  animation: pace-compress .5s infinite alternate;\n}\n\n@-webkit-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -webkit-animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    -webkit-animation-timing-function: ease-in;\n  }\n}\n\n@-moz-keyframes pace-bounce {\n  0% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  40% {}\n  50% {\n    top: 140px;\n    height: 140px;\n    -moz-animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    -moz-animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    -moz-animation-timing-function: ease-out;}\n  95% {\n    top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {top: 0;\n    -moz-animation-timing-function: ease-in;\n  }\n}\n\n@keyframes pace-bounce {\n  0% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  50% {\n    top: 140px;\n    height: 140px;\n    animation-timing-function: ease-out;\n  }\n  55% {\n    top: 160px;\n    height: 120px;\n    border-radius: 70px / 60px;\n    animation-timing-function: ease-in;\n  }\n  65% {\n    top: 120px;\n    height: 140px;\n    border-radius: 70px;\n    animation-timing-function: ease-out;\n  }\n  95% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    top: 0;\n    animation-timing-function: ease-in;\n  }\n}\n\n@-webkit-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -webkit-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -webkit-animation-timing-function: ease-out;\n  }\n}\n\n@-moz-keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    -moz-animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    -moz-animation-timing-function: ease-out;\n  }\n}\n\n@keyframes pace-compress {\n  0% {\n    bottom: 0;\n    margin-left: -30px;\n    width: 60px;\n    height: 75px;\n    background: rgba(20, 20, 20, .1);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);\n    border-radius: 30px / 40px;\n    animation-timing-function: ease-in;\n  }\n  100% {\n    bottom: 30px;\n    margin-left: -10px;\n    width: 20px;\n    height: 5px;\n    background: rgba(20, 20, 20, .3);\n    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);\n    border-radius: 20px / 20px;\n    animation-timing-function: ease-out;\n  }\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-center-atom.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace.pace-inactive {\n  display: none;\n}\n\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 60px;\n  width: 100px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace .pace-progress {\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace .pace-progress:before {\n  content: attr(data-progress-text);\n  text-align: center;\n  color: #fff;\n  background: #fcd25a;\n  border-radius: 50%;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  font-weight: 100;\n  line-height: 1;\n  padding: 20% 0 7px;\n  width: 50%;\n  height: 40%;\n  margin: 10px 0 0 30px;\n  display: block;\n  z-index: 999;\n  position: absolute;\n}\n\n.pace .pace-activity {\n  font-size: 15px;\n  line-height: 1;\n  z-index: 2000;\n  position: absolute;\n  height: 60px;\n  width: 100px;\n\n  display: block;\n  -webkit-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -moz-animation: pace-theme-center-atom-spin 2s linear infinite;\n  -o-animation: pace-theme-center-atom-spin 2s linear infinite;\n  animation: pace-theme-center-atom-spin 2s linear infinite;\n}\n\n.pace .pace-activity {\n  border-radius: 50%;\n  border: 5px solid #fcd25a;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 60px;\n  width: 100px;\n}\n\n.pace .pace-activity:after {\n  border-radius: 50%;\n  border: 5px solid #fcd25a;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(60deg);\n  -moz-transform: rotate(60deg);\n  -o-transform: rotate(60deg);\n  transform: rotate(60deg);\n}\n\n.pace .pace-activity:before {\n  border-radius: 50%;\n  border: 5px solid #fcd25a;\n  content: ' ';\n  display: block;\n  position: absolute;\n  top: -5px;\n  left: -5px;\n  height: 60px;\n  width: 100px;\n\n  -webkit-transform: rotate(120deg);\n  -moz-transform: rotate(120deg);\n  -o-transform: rotate(120deg);\n  transform: rotate(120deg);\n}\n\n@-webkit-keyframes pace-theme-center-atom-spin {\n  0%   { -webkit-transform: rotate(0deg) }\n  100% { -webkit-transform: rotate(359deg) }\n}\n@-moz-keyframes pace-theme-center-atom-spin {\n  0%   { -moz-transform: rotate(0deg) }\n  100% { -moz-transform: rotate(359deg) }\n}\n@-o-keyframes pace-theme-center-atom-spin {\n  0%   { -o-transform: rotate(0deg) }\n  100% { -o-transform: rotate(359deg) }\n}\n@keyframes pace-theme-center-atom-spin {\n  0%   { transform: rotate(0deg) }\n  100% { transform: rotate(359deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-center-circle.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-perspective: 12rem;\n  -moz-perspective: 12rem;\n  -ms-perspective: 12rem;\n  -o-perspective: 12rem;\n  perspective: 12rem;\n\n  z-index: 2000;\n  position: fixed;\n  height: 6rem;\n  width: 6rem;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-progress {\n  display: none;\n}\n\n.pace .pace-progress {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 6rem;\n  width: 6rem !important;\n  line-height: 6rem;\n  font-size: 2rem;\n  border-radius: 50%;\n  background: rgba(252, 210, 90, 0.8);\n  color: #fff;\n  font-family: \"Helvetica Neue\", sans-serif;\n  font-weight: 100;\n  text-align: center;\n\n  -webkit-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -moz-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -ms-animation: pace-theme-center-circle-spin linear infinite 2s;\n  -o-animation: pace-theme-center-circle-spin linear infinite 2s;\n  animation: pace-theme-center-circle-spin linear infinite 2s;\n\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  -o-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: block;\n}\n\n@-webkit-keyframes pace-theme-center-circle-spin {\n  from { -webkit-transform: rotateY(0deg) }\n  to { -webkit-transform: rotateY(360deg) }\n}\n\n@-moz-keyframes pace-theme-center-circle-spin {\n  from { -moz-transform: rotateY(0deg) }\n  to { -moz-transform: rotateY(360deg) }\n}\n\n@-ms-keyframes pace-theme-center-circle-spin {\n  from { -ms-transform: rotateY(0deg) }\n  to { -ms-transform: rotateY(360deg) }\n}\n\n@-o-keyframes pace-theme-center-circle-spin {\n  from { -o-transform: rotateY(0deg) }\n  to { -o-transform: rotateY(360deg) }\n}\n\n@keyframes pace-theme-center-circle-spin {\n  from { transform: rotateY(0deg) }\n  to { transform: rotateY(360deg) }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-center-radar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  height: 90px;\n  width: 90px;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n}\n\n.pace.pace-inactive .pace-activity {\n  display: none;\n}\n\n.pace .pace-activity {\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  left: -30px;\n  top: -30px;\n  height: 90px;\n  width: 90px;\n  display: block;\n  border-width: 30px;\n  border-style: double;\n  border-color: #fcd25a transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n\n  -webkit-animation: spin 1s linear infinite;\n  -moz-animation: spin 1s linear infinite;\n  -o-animation: spin 1s linear infinite;\n  animation: spin 1s linear infinite;\n}\n\n.pace .pace-activity:before {\n  content: ' ';\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  height: 50px;\n  width: 50px;\n  display: block;\n  border-width: 10px;\n  border-style: solid;\n  border-color: #fcd25a transparent transparent;\n  border-radius: 50%;\n\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n@-webkit-keyframes spin {\n  100% { -webkit-transform: rotate(359deg); }\n}\n\n@-moz-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@-o-keyframes spin {\n  100% { -moz-transform: rotate(359deg); }\n}\n\n@keyframes spin {\n  100% {  transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-center-simple.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 5px;\n  width: 200px;\n  background: #fff;\n  border: 1px solid #fcd25a;\n\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  max-width: 200px;\n  position: fixed;\n  z-index: 2000;\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 100%;\n  height: 100%;\n  width: 100%;\n  background: #fcd25a;\n}\n\n.pace.pace-inactive {\n  display: none;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-corner-indicator.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 0;\n  width: 300px;\n  height: 300px;\n  background: #fcd25a;\n  -webkit-transition: -webkit-transform 0.3s;\n  transition: transform 0.3s;\n  -webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);\n  transform: translateX(100%) translateY(-100%) rotate(45deg);\n  pointer-events: none;\n}\n\n.pace.pace-active .pace-activity {\n  -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n  transform: translateX(50%) translateY(-50%) rotate(45deg);\n}\n\n.pace .pace-activity::before,\n.pace .pace-activity::after {\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    position: absolute;\n    bottom: 30px;\n    left: 50%;\n    display: block;\n    border: 5px solid #fff;\n    border-radius: 50%;\n    content: '';\n}\n\n.pace .pace-activity::before {\n    margin-left: -40px;\n    width: 80px;\n    height: 80px;\n    border-right-color: rgba(0, 0, 0, .2);\n    border-left-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 3s linear infinite;\n    animation: pace-theme-corner-indicator-spin 3s linear infinite;\n}\n\n.pace .pace-activity::after {\n    bottom: 50px;\n    margin-left: -20px;\n    width: 40px;\n    height: 40px;\n    border-top-color: rgba(0, 0, 0, .2);\n    border-bottom-color: rgba(0, 0, 0, .2);\n    -webkit-animation: pace-theme-corner-indicator-spin 1s linear infinite;\n    animation: pace-theme-corner-indicator-spin 1s linear infinite;\n}\n\n@-webkit-keyframes pace-theme-corner-indicator-spin {\n  0% { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(359deg); }\n}\n@keyframes pace-theme-corner-indicator-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(359deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-fill-left.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: rgba(252, 210, 90, 0.19999999999999996);\n  position: fixed;\n  z-index: -1;\n  top: 0;\n  right: 100%;\n  bottom: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-flash.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #fcd25a;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n\n.pace .pace-progress-inner {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #fcd25a, 0 0 5px #fcd25a;\n  opacity: 1.0;\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n  -moz-transform: rotate(3deg) translate(0px, -4px);\n  -ms-transform: rotate(3deg) translate(0px, -4px);\n  -o-transform: rotate(3deg) translate(0px, -4px);\n  transform: rotate(3deg) translate(0px, -4px);\n}\n\n.pace .pace-activity {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 15px;\n  right: 15px;\n  width: 14px;\n  height: 14px;\n  border: solid 2px transparent;\n  border-top-color: #fcd25a;\n  border-left-color: #fcd25a;\n  border-radius: 10px;\n  -webkit-animation: pace-spinner 400ms linear infinite;\n  -moz-animation: pace-spinner 400ms linear infinite;\n  -ms-animation: pace-spinner 400ms linear infinite;\n  -o-animation: pace-spinner 400ms linear infinite;\n  animation: pace-spinner 400ms linear infinite;\n}\n\n@-webkit-keyframes pace-spinner {\n  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-moz-keyframes pace-spinner {\n  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-o-keyframes pace-spinner {\n  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@-ms-keyframes pace-spinner {\n  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\n  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\n}\n@keyframes pace-spinner {\n  0% { transform: rotate(0deg); transform: rotate(0deg); }\n  100% { transform: rotate(360deg); transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-flat-top.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n\n  -webkit-transform: translate3d(0, -50px, 0);\n  -ms-transform: translate3d(0, -50px, 0);\n  transform: translate3d(0, -50px, 0);\n\n  -webkit-transition: -webkit-transform .5s ease-out;\n  -ms-transition: -webkit-transform .5s ease-out;\n  transition: transform .5s ease-out;\n}\n\n.pace.pace-active {\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.pace .pace-progress {\n  display: block;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 10px;\n  background: #fcd25a;\n\n  pointer-events: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-loading-bar.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  border-radius: 10px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  z-index: 2000;\n  position: fixed;\n  margin: auto;\n  top: 12px;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  width: 200px;\n  height: 50px;\n  overflow: hidden;\n}\n\n.pace .pace-progress {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -ms-box-sizing: border-box;\n  -o-box-sizing: border-box;\n  box-sizing: border-box;\n\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  border-radius: 2px;\n\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n\n  display: block;\n  position: absolute;\n  right: 100%;\n  margin-right: -7px;\n  width: 93%;\n  top: 7px;\n  height: 14px;\n  font-size: 12px;\n  background: #fcd25a;\n  color: #fcd25a;\n  line-height: 60px;\n  font-weight: bold;\n  font-family: Helvetica, Arial, \"Lucida Grande\", sans-serif;\n\n  -webkit-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  -ms-box-shadow: 120px 0 #fff, 240px 0 #fff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace .pace-progress:after {\n  content: attr(data-progress-text);\n  display: inline-block;\n  position: fixed;\n  width: 45px;\n  text-align: right;\n  right: 0;\n  padding-right: 16px;\n  top: 4px;\n}\n\n.pace .pace-progress[data-progress-text=\"0%\"]:after { right: -200px }\n.pace .pace-progress[data-progress-text=\"1%\"]:after { right: -198.14px }\n.pace .pace-progress[data-progress-text=\"2%\"]:after { right: -196.28px }\n.pace .pace-progress[data-progress-text=\"3%\"]:after { right: -194.42px }\n.pace .pace-progress[data-progress-text=\"4%\"]:after { right: -192.56px }\n.pace .pace-progress[data-progress-text=\"5%\"]:after { right: -190.7px }\n.pace .pace-progress[data-progress-text=\"6%\"]:after { right: -188.84px }\n.pace .pace-progress[data-progress-text=\"7%\"]:after { right: -186.98px }\n.pace .pace-progress[data-progress-text=\"8%\"]:after { right: -185.12px }\n.pace .pace-progress[data-progress-text=\"9%\"]:after { right: -183.26px }\n.pace .pace-progress[data-progress-text=\"10%\"]:after { right: -181.4px }\n.pace .pace-progress[data-progress-text=\"11%\"]:after { right: -179.54px }\n.pace .pace-progress[data-progress-text=\"12%\"]:after { right: -177.68px }\n.pace .pace-progress[data-progress-text=\"13%\"]:after { right: -175.82px }\n.pace .pace-progress[data-progress-text=\"14%\"]:after { right: -173.96px }\n.pace .pace-progress[data-progress-text=\"15%\"]:after { right: -172.1px }\n.pace .pace-progress[data-progress-text=\"16%\"]:after { right: -170.24px }\n.pace .pace-progress[data-progress-text=\"17%\"]:after { right: -168.38px }\n.pace .pace-progress[data-progress-text=\"18%\"]:after { right: -166.52px }\n.pace .pace-progress[data-progress-text=\"19%\"]:after { right: -164.66px }\n.pace .pace-progress[data-progress-text=\"20%\"]:after { right: -162.8px }\n.pace .pace-progress[data-progress-text=\"21%\"]:after { right: -160.94px }\n.pace .pace-progress[data-progress-text=\"22%\"]:after { right: -159.08px }\n.pace .pace-progress[data-progress-text=\"23%\"]:after { right: -157.22px }\n.pace .pace-progress[data-progress-text=\"24%\"]:after { right: -155.36px }\n.pace .pace-progress[data-progress-text=\"25%\"]:after { right: -153.5px }\n.pace .pace-progress[data-progress-text=\"26%\"]:after { right: -151.64px }\n.pace .pace-progress[data-progress-text=\"27%\"]:after { right: -149.78px }\n.pace .pace-progress[data-progress-text=\"28%\"]:after { right: -147.92px }\n.pace .pace-progress[data-progress-text=\"29%\"]:after { right: -146.06px }\n.pace .pace-progress[data-progress-text=\"30%\"]:after { right: -144.2px }\n.pace .pace-progress[data-progress-text=\"31%\"]:after { right: -142.34px }\n.pace .pace-progress[data-progress-text=\"32%\"]:after { right: -140.48px }\n.pace .pace-progress[data-progress-text=\"33%\"]:after { right: -138.62px }\n.pace .pace-progress[data-progress-text=\"34%\"]:after { right: -136.76px }\n.pace .pace-progress[data-progress-text=\"35%\"]:after { right: -134.9px }\n.pace .pace-progress[data-progress-text=\"36%\"]:after { right: -133.04px }\n.pace .pace-progress[data-progress-text=\"37%\"]:after { right: -131.18px }\n.pace .pace-progress[data-progress-text=\"38%\"]:after { right: -129.32px }\n.pace .pace-progress[data-progress-text=\"39%\"]:after { right: -127.46px }\n.pace .pace-progress[data-progress-text=\"40%\"]:after { right: -125.6px }\n.pace .pace-progress[data-progress-text=\"41%\"]:after { right: -123.74px }\n.pace .pace-progress[data-progress-text=\"42%\"]:after { right: -121.88px }\n.pace .pace-progress[data-progress-text=\"43%\"]:after { right: -120.02px }\n.pace .pace-progress[data-progress-text=\"44%\"]:after { right: -118.16px }\n.pace .pace-progress[data-progress-text=\"45%\"]:after { right: -116.3px }\n.pace .pace-progress[data-progress-text=\"46%\"]:after { right: -114.44px }\n.pace .pace-progress[data-progress-text=\"47%\"]:after { right: -112.58px }\n.pace .pace-progress[data-progress-text=\"48%\"]:after { right: -110.72px }\n.pace .pace-progress[data-progress-text=\"49%\"]:after { right: -108.86px }\n.pace .pace-progress[data-progress-text=\"50%\"]:after { right: -107px }\n.pace .pace-progress[data-progress-text=\"51%\"]:after { right: -105.14px }\n.pace .pace-progress[data-progress-text=\"52%\"]:after { right: -103.28px }\n.pace .pace-progress[data-progress-text=\"53%\"]:after { right: -101.42px }\n.pace .pace-progress[data-progress-text=\"54%\"]:after { right: -99.56px }\n.pace .pace-progress[data-progress-text=\"55%\"]:after { right: -97.7px }\n.pace .pace-progress[data-progress-text=\"56%\"]:after { right: -95.84px }\n.pace .pace-progress[data-progress-text=\"57%\"]:after { right: -93.98px }\n.pace .pace-progress[data-progress-text=\"58%\"]:after { right: -92.12px }\n.pace .pace-progress[data-progress-text=\"59%\"]:after { right: -90.26px }\n.pace .pace-progress[data-progress-text=\"60%\"]:after { right: -88.4px }\n.pace .pace-progress[data-progress-text=\"61%\"]:after { right: -86.53999999999999px }\n.pace .pace-progress[data-progress-text=\"62%\"]:after { right: -84.68px }\n.pace .pace-progress[data-progress-text=\"63%\"]:after { right: -82.82px }\n.pace .pace-progress[data-progress-text=\"64%\"]:after { right: -80.96000000000001px }\n.pace .pace-progress[data-progress-text=\"65%\"]:after { right: -79.1px }\n.pace .pace-progress[data-progress-text=\"66%\"]:after { right: -77.24px }\n.pace .pace-progress[data-progress-text=\"67%\"]:after { right: -75.38px }\n.pace .pace-progress[data-progress-text=\"68%\"]:after { right: -73.52px }\n.pace .pace-progress[data-progress-text=\"69%\"]:after { right: -71.66px }\n.pace .pace-progress[data-progress-text=\"70%\"]:after { right: -69.8px }\n.pace .pace-progress[data-progress-text=\"71%\"]:after { right: -67.94px }\n.pace .pace-progress[data-progress-text=\"72%\"]:after { right: -66.08px }\n.pace .pace-progress[data-progress-text=\"73%\"]:after { right: -64.22px }\n.pace .pace-progress[data-progress-text=\"74%\"]:after { right: -62.36px }\n.pace .pace-progress[data-progress-text=\"75%\"]:after { right: -60.5px }\n.pace .pace-progress[data-progress-text=\"76%\"]:after { right: -58.64px }\n.pace .pace-progress[data-progress-text=\"77%\"]:after { right: -56.78px }\n.pace .pace-progress[data-progress-text=\"78%\"]:after { right: -54.92px }\n.pace .pace-progress[data-progress-text=\"79%\"]:after { right: -53.06px }\n.pace .pace-progress[data-progress-text=\"80%\"]:after { right: -51.2px }\n.pace .pace-progress[data-progress-text=\"81%\"]:after { right: -49.34px }\n.pace .pace-progress[data-progress-text=\"82%\"]:after { right: -47.480000000000004px }\n.pace .pace-progress[data-progress-text=\"83%\"]:after { right: -45.62px }\n.pace .pace-progress[data-progress-text=\"84%\"]:after { right: -43.76px }\n.pace .pace-progress[data-progress-text=\"85%\"]:after { right: -41.9px }\n.pace .pace-progress[data-progress-text=\"86%\"]:after { right: -40.04px }\n.pace .pace-progress[data-progress-text=\"87%\"]:after { right: -38.18px }\n.pace .pace-progress[data-progress-text=\"88%\"]:after { right: -36.32px }\n.pace .pace-progress[data-progress-text=\"89%\"]:after { right: -34.46px }\n.pace .pace-progress[data-progress-text=\"90%\"]:after { right: -32.6px }\n.pace .pace-progress[data-progress-text=\"91%\"]:after { right: -30.740000000000002px }\n.pace .pace-progress[data-progress-text=\"92%\"]:after { right: -28.880000000000003px }\n.pace .pace-progress[data-progress-text=\"93%\"]:after { right: -27.02px }\n.pace .pace-progress[data-progress-text=\"94%\"]:after { right: -25.16px }\n.pace .pace-progress[data-progress-text=\"95%\"]:after { right: -23.3px }\n.pace .pace-progress[data-progress-text=\"96%\"]:after { right: -21.439999999999998px }\n.pace .pace-progress[data-progress-text=\"97%\"]:after { right: -19.58px }\n.pace .pace-progress[data-progress-text=\"98%\"]:after { right: -17.72px }\n.pace .pace-progress[data-progress-text=\"99%\"]:after { right: -15.86px }\n.pace .pace-progress[data-progress-text=\"100%\"]:after { right: -14px }\n\n\n.pace .pace-activity {\n  position: absolute;\n  width: 100%;\n  height: 28px;\n  z-index: 2001;\n  box-shadow: inset 0 0 0 2px #fcd25a, inset 0 0 0 7px #FFF;\n  border-radius: 10px;\n}\n\n.pace.pace-inactive {\n  display: none;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-mac-osx.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 2000;\n  width: 100%;\n  height: 12px;\n  background: #fff;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background-color: #FFE000;\n  position: fixed;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 12px;\n  overflow: hidden;\n\n  -webkit-border-radius: 0 0 4px 0;\n  -moz-border-radius: 0 0 4px 0;\n  -o-border-radius: 0 0 4px 0;\n  border-radius: 0 0 4px 0;\n\n  -webkit-box-shadow: inset -1px 0 #E49900, inset 0 -1px #E49900, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -moz-box-shadow: inset -1px 0 #E49900, inset 0 -1px #E49900, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  -o-box-shadow: inset -1px 0 #E49900, inset 0 -1px #E49900, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n  box-shadow: inset -1px 0 #E49900, inset 0 -1px #E49900, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, .3);\n}\n\n.pace .pace-activity {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: -28px;\n  bottom: 0;\n\n  -webkit-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -moz-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  -o-background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n  background-image: radial-gradient(rgba(255, 255, 255, .65) 0%, rgba(255, 255, 255, .15) 100%);\n\n  -webkit-background-size: 28px 100%;\n  -moz-background-size: 28px 100%;\n  -o-background-size: 28px 100%;\n  background-size: 28px 100%;\n\n  -webkit-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -moz-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -ms-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  -o-animation: pace-theme-mac-osx-motion 500ms linear infinite;\n  animation: pace-theme-mac-osx-motion 500ms linear infinite;\n}\n\n@-webkit-keyframes pace-theme-mac-osx-motion {\n  0% { -webkit-transform: none; transform: none; }\n  100% { -webkit-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-moz-keyframes pace-theme-mac-osx-motion {\n  0% { -moz-transform: none; transform: none; }\n  100% { -moz-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-o-keyframes pace-theme-mac-osx-motion {\n  0% { -o-transform: none; transform: none; }\n  100% { -o-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@-ms-keyframes pace-theme-mac-osx-motion {\n  0% { -ms-transform: none; transform: none; }\n  100% { -ms-transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n@keyframes pace-theme-mac-osx-motion {\n  0% { transform: none; transform: none; }\n  100% { transform: translate(-28px, 0); transform: translate(-28px, 0); }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-material.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n      user-select: none;\n  color: #fcd25a;\n}\n\n.pace-progress {\n  position: fixed;\n  z-index: 2000;\n  top: 50%;\n  left: 50%;\n  margin-left: -2.5rem;\n  margin-top: -2.5rem;\n  height: 5rem;\n  width: 5rem;\n  opacity: 1;\n  -webkit-transition: opacity 0.1s;\n          transition: opacity 0.1s;\n\n  -webkit-transform: translate3d(0, 0, 0) !important;\n  -ms-transform: translate3d(0, 0, 0) !important;\n  transform: translate3d(0, 0, 0) !important;\n}\n\n.pace-inactive .pace-progress,\n.pace-progress[data-progress=\"00\"] {\n  opacity: 0;\n}\n\n.pace-progress:after {\n  height: 5rem;\n  width: 5rem;\n  text-align: center;\n  line-height: 5rem;\n  content: attr(data-progress);\n  display: block;\n  font-size: 1.8rem;\n  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 300;\n}\n\n.pace-progress .pace-progress-inner {\n  overflow: hidden;\n  position: absolute;\n  width: 2.5rem;\n  height: 5rem;\n  -webkit-transform-origin: left center;\n      -ms-transform-origin: left center;\n          transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.1s;\n          transition: transform 0.1s;\n  left: 2.5rem;\n  top: 0;\n}\n.pace-progress .pace-progress-inner:before,\n.pace-progress .pace-progress-inner:after {\n  position: absolute;\n  width: 5rem;\n  height: 5rem;\n  content: ' ';\n  left: -2.5rem;\n  top: 0;\n  box-sizing: border-box;\n  border: 1px solid;\n  border-radius: 5rem;\n}\n.pace-progress .pace-progress-inner:before {\n  border-right-color: transparent;\n  border-bottom-color: transparent;\n  -webkit-transform: rotate(135deg);\n      -ms-transform: rotate(135deg);\n          transform: rotate(135deg);\n}\n.pace-progress .pace-progress-inner:after {\n  border-left-color: transparent;\n  border-top-color: transparent;\n  display: none;\n  -webkit-transform: rotate(315deg);\n      -ms-transform: rotate(315deg);\n          transform: rotate(315deg);\n}\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }\n.pace-progress[data-progress=\"01\"] .pace-progress-inner:before { -webkit-transform: rotate(-41deg); -ms-transform: rotate(-41deg); transform: rotate(-41deg); }\n.pace-progress[data-progress=\"02\"] .pace-progress-inner:before { -webkit-transform: rotate(-38deg); -ms-transform: rotate(-38deg); transform: rotate(-38deg); }\n.pace-progress[data-progress=\"03\"] .pace-progress-inner:before { -webkit-transform: rotate(-34deg); -ms-transform: rotate(-34deg); transform: rotate(-34deg); }\n.pace-progress[data-progress=\"04\"] .pace-progress-inner:before { -webkit-transform: rotate(-31deg); -ms-transform: rotate(-31deg); transform: rotate(-31deg); }\n.pace-progress[data-progress=\"05\"] .pace-progress-inner:before { -webkit-transform: rotate(-27deg); -ms-transform: rotate(-27deg); transform: rotate(-27deg); }\n.pace-progress[data-progress=\"06\"] .pace-progress-inner:before { -webkit-transform: rotate(-23deg); -ms-transform: rotate(-23deg); transform: rotate(-23deg); }\n.pace-progress[data-progress=\"07\"] .pace-progress-inner:before { -webkit-transform: rotate(-20deg); -ms-transform: rotate(-20deg); transform: rotate(-20deg); }\n.pace-progress[data-progress=\"08\"] .pace-progress-inner:before { -webkit-transform: rotate(-16deg); -ms-transform: rotate(-16deg); transform: rotate(-16deg); }\n.pace-progress[data-progress=\"09\"] .pace-progress-inner:before { -webkit-transform: rotate(-13deg); -ms-transform: rotate(-13deg); transform: rotate(-13deg); }\n.pace-progress[data-progress=\"10\"] .pace-progress-inner:before { -webkit-transform: rotate(-9deg); -ms-transform: rotate(-9deg); transform: rotate(-9deg); }\n.pace-progress[data-progress=\"11\"] .pace-progress-inner:before { -webkit-transform: rotate(-5deg); -ms-transform: rotate(-5deg); transform: rotate(-5deg); }\n.pace-progress[data-progress=\"12\"] .pace-progress-inner:before { -webkit-transform: rotate(-2deg); -ms-transform: rotate(-2deg); transform: rotate(-2deg); }\n.pace-progress[data-progress=\"13\"] .pace-progress-inner:before { -webkit-transform: rotate(2deg); -ms-transform: rotate(2deg); transform: rotate(2deg); }\n.pace-progress[data-progress=\"14\"] .pace-progress-inner:before { -webkit-transform: rotate(5deg); -ms-transform: rotate(5deg); transform: rotate(5deg); }\n.pace-progress[data-progress=\"15\"] .pace-progress-inner:before { -webkit-transform: rotate(9deg); -ms-transform: rotate(9deg); transform: rotate(9deg); }\n.pace-progress[data-progress=\"16\"] .pace-progress-inner:before { -webkit-transform: rotate(13deg); -ms-transform: rotate(13deg); transform: rotate(13deg); }\n.pace-progress[data-progress=\"17\"] .pace-progress-inner:before { -webkit-transform: rotate(16deg); -ms-transform: rotate(16deg); transform: rotate(16deg); }\n.pace-progress[data-progress=\"18\"] .pace-progress-inner:before { -webkit-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); }\n.pace-progress[data-progress=\"19\"] .pace-progress-inner:before { -webkit-transform: rotate(23deg); -ms-transform: rotate(23deg); transform: rotate(23deg); }\n.pace-progress[data-progress=\"20\"] .pace-progress-inner:before { -webkit-transform: rotate(27deg); -ms-transform: rotate(27deg); transform: rotate(27deg); }\n.pace-progress[data-progress=\"21\"] .pace-progress-inner:before { -webkit-transform: rotate(31deg); -ms-transform: rotate(31deg); transform: rotate(31deg); }\n.pace-progress[data-progress=\"22\"] .pace-progress-inner:before { -webkit-transform: rotate(34deg); -ms-transform: rotate(34deg); transform: rotate(34deg); }\n.pace-progress[data-progress=\"23\"] .pace-progress-inner:before { -webkit-transform: rotate(38deg); -ms-transform: rotate(38deg); transform: rotate(38deg); }\n.pace-progress[data-progress=\"24\"] .pace-progress-inner:before { -webkit-transform: rotate(41deg); -ms-transform: rotate(41deg); transform: rotate(41deg); }\n.pace-progress[data-progress=\"25\"] .pace-progress-inner:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }\n.pace-progress[data-progress=\"26\"] .pace-progress-inner:before { -webkit-transform: rotate(49deg); -ms-transform: rotate(49deg); transform: rotate(49deg); }\n.pace-progress[data-progress=\"27\"] .pace-progress-inner:before { -webkit-transform: rotate(52deg); -ms-transform: rotate(52deg); transform: rotate(52deg); }\n.pace-progress[data-progress=\"28\"] .pace-progress-inner:before { -webkit-transform: rotate(56deg); -ms-transform: rotate(56deg); transform: rotate(56deg); }\n.pace-progress[data-progress=\"29\"] .pace-progress-inner:before { -webkit-transform: rotate(59deg); -ms-transform: rotate(59deg); transform: rotate(59deg); }\n.pace-progress[data-progress=\"30\"] .pace-progress-inner:before { -webkit-transform: rotate(63deg); -ms-transform: rotate(63deg); transform: rotate(63deg); }\n.pace-progress[data-progress=\"31\"] .pace-progress-inner:before { -webkit-transform: rotate(67deg); -ms-transform: rotate(67deg); transform: rotate(67deg); }\n.pace-progress[data-progress=\"32\"] .pace-progress-inner:before { -webkit-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); }\n.pace-progress[data-progress=\"33\"] .pace-progress-inner:before { -webkit-transform: rotate(74deg); -ms-transform: rotate(74deg); transform: rotate(74deg); }\n.pace-progress[data-progress=\"34\"] .pace-progress-inner:before { -webkit-transform: rotate(77deg); -ms-transform: rotate(77deg); transform: rotate(77deg); }\n.pace-progress[data-progress=\"35\"] .pace-progress-inner:before { -webkit-transform: rotate(81deg); -ms-transform: rotate(81deg); transform: rotate(81deg); }\n.pace-progress[data-progress=\"36\"] .pace-progress-inner:before { -webkit-transform: rotate(85deg); -ms-transform: rotate(85deg); transform: rotate(85deg); }\n.pace-progress[data-progress=\"37\"] .pace-progress-inner:before { -webkit-transform: rotate(88deg); -ms-transform: rotate(88deg); transform: rotate(88deg); }\n.pace-progress[data-progress=\"38\"] .pace-progress-inner:before { -webkit-transform: rotate(92deg); -ms-transform: rotate(92deg); transform: rotate(92deg); }\n.pace-progress[data-progress=\"39\"] .pace-progress-inner:before { -webkit-transform: rotate(95deg); -ms-transform: rotate(95deg); transform: rotate(95deg); }\n.pace-progress[data-progress=\"40\"] .pace-progress-inner:before { -webkit-transform: rotate(99deg); -ms-transform: rotate(99deg); transform: rotate(99deg); }\n.pace-progress[data-progress=\"41\"] .pace-progress-inner:before { -webkit-transform: rotate(103deg); -ms-transform: rotate(103deg); transform: rotate(103deg); }\n.pace-progress[data-progress=\"42\"] .pace-progress-inner:before { -webkit-transform: rotate(106deg); -ms-transform: rotate(106deg); transform: rotate(106deg); }\n.pace-progress[data-progress=\"43\"] .pace-progress-inner:before { -webkit-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); }\n.pace-progress[data-progress=\"44\"] .pace-progress-inner:before { -webkit-transform: rotate(113deg); -ms-transform: rotate(113deg); transform: rotate(113deg); }\n.pace-progress[data-progress=\"45\"] .pace-progress-inner:before { -webkit-transform: rotate(117deg); -ms-transform: rotate(117deg); transform: rotate(117deg); }\n.pace-progress[data-progress=\"46\"] .pace-progress-inner:before { -webkit-transform: rotate(121deg); -ms-transform: rotate(121deg); transform: rotate(121deg); }\n.pace-progress[data-progress=\"47\"] .pace-progress-inner:before { -webkit-transform: rotate(124deg); -ms-transform: rotate(124deg); transform: rotate(124deg); }\n.pace-progress[data-progress=\"48\"] .pace-progress-inner:before { -webkit-transform: rotate(128deg); -ms-transform: rotate(128deg); transform: rotate(128deg); }\n.pace-progress[data-progress=\"49\"] .pace-progress-inner:before { -webkit-transform: rotate(131deg); -ms-transform: rotate(131deg); transform: rotate(131deg); }\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:before { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }\n\n.pace-progress[data-progress=\"50\"] .pace-progress-inner:after { -webkit-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); display: block; }\n.pace-progress[data-progress=\"51\"] .pace-progress-inner:after { -webkit-transform: rotate(319deg); -ms-transform: rotate(319deg); transform: rotate(319deg); display: block; }\n.pace-progress[data-progress=\"52\"] .pace-progress-inner:after { -webkit-transform: rotate(322deg); -ms-transform: rotate(322deg); transform: rotate(322deg); display: block; }\n.pace-progress[data-progress=\"53\"] .pace-progress-inner:after { -webkit-transform: rotate(326deg); -ms-transform: rotate(326deg); transform: rotate(326deg); display: block; }\n.pace-progress[data-progress=\"54\"] .pace-progress-inner:after { -webkit-transform: rotate(329deg); -ms-transform: rotate(329deg); transform: rotate(329deg); display: block; }\n.pace-progress[data-progress=\"55\"] .pace-progress-inner:after { -webkit-transform: rotate(333deg); -ms-transform: rotate(333deg); transform: rotate(333deg); display: block; }\n.pace-progress[data-progress=\"56\"] .pace-progress-inner:after { -webkit-transform: rotate(337deg); -ms-transform: rotate(337deg); transform: rotate(337deg); display: block; }\n.pace-progress[data-progress=\"57\"] .pace-progress-inner:after { -webkit-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); display: block; }\n.pace-progress[data-progress=\"58\"] .pace-progress-inner:after { -webkit-transform: rotate(344deg); -ms-transform: rotate(344deg); transform: rotate(344deg); display: block; }\n.pace-progress[data-progress=\"59\"] .pace-progress-inner:after { -webkit-transform: rotate(347deg); -ms-transform: rotate(347deg); transform: rotate(347deg); display: block; }\n.pace-progress[data-progress=\"60\"] .pace-progress-inner:after { -webkit-transform: rotate(351deg); -ms-transform: rotate(351deg); transform: rotate(351deg); display: block; }\n.pace-progress[data-progress=\"61\"] .pace-progress-inner:after { -webkit-transform: rotate(355deg); -ms-transform: rotate(355deg); transform: rotate(355deg); display: block; }\n.pace-progress[data-progress=\"62\"] .pace-progress-inner:after { -webkit-transform: rotate(358deg); -ms-transform: rotate(358deg); transform: rotate(358deg); display: block; }\n.pace-progress[data-progress=\"63\"] .pace-progress-inner:after { -webkit-transform: rotate(362deg); -ms-transform: rotate(362deg); transform: rotate(362deg); display: block; }\n.pace-progress[data-progress=\"64\"] .pace-progress-inner:after { -webkit-transform: rotate(365deg); -ms-transform: rotate(365deg); transform: rotate(365deg); display: block; }\n.pace-progress[data-progress=\"65\"] .pace-progress-inner:after { -webkit-transform: rotate(369deg); -ms-transform: rotate(369deg); transform: rotate(369deg); display: block; }\n.pace-progress[data-progress=\"66\"] .pace-progress-inner:after { -webkit-transform: rotate(373deg); -ms-transform: rotate(373deg); transform: rotate(373deg); display: block; }\n.pace-progress[data-progress=\"67\"] .pace-progress-inner:after { -webkit-transform: rotate(376deg); -ms-transform: rotate(376deg); transform: rotate(376deg); display: block; }\n.pace-progress[data-progress=\"68\"] .pace-progress-inner:after { -webkit-transform: rotate(380deg); -ms-transform: rotate(380deg); transform: rotate(380deg); display: block; }\n.pace-progress[data-progress=\"69\"] .pace-progress-inner:after { -webkit-transform: rotate(383deg); -ms-transform: rotate(383deg); transform: rotate(383deg); display: block; }\n.pace-progress[data-progress=\"70\"] .pace-progress-inner:after { -webkit-transform: rotate(387deg); -ms-transform: rotate(387deg); transform: rotate(387deg); display: block; }\n.pace-progress[data-progress=\"71\"] .pace-progress-inner:after { -webkit-transform: rotate(391deg); -ms-transform: rotate(391deg); transform: rotate(391deg); display: block; }\n.pace-progress[data-progress=\"72\"] .pace-progress-inner:after { -webkit-transform: rotate(394deg); -ms-transform: rotate(394deg); transform: rotate(394deg); display: block; }\n.pace-progress[data-progress=\"73\"] .pace-progress-inner:after { -webkit-transform: rotate(398deg); -ms-transform: rotate(398deg); transform: rotate(398deg); display: block; }\n.pace-progress[data-progress=\"74\"] .pace-progress-inner:after { -webkit-transform: rotate(401deg); -ms-transform: rotate(401deg); transform: rotate(401deg); display: block; }\n.pace-progress[data-progress=\"75\"] .pace-progress-inner:after { -webkit-transform: rotate(405deg); -ms-transform: rotate(405deg); transform: rotate(405deg); display: block; }\n.pace-progress[data-progress=\"76\"] .pace-progress-inner:after { -webkit-transform: rotate(409deg); -ms-transform: rotate(409deg); transform: rotate(409deg); display: block; }\n.pace-progress[data-progress=\"77\"] .pace-progress-inner:after { -webkit-transform: rotate(412deg); -ms-transform: rotate(412deg); transform: rotate(412deg); display: block; }\n.pace-progress[data-progress=\"78\"] .pace-progress-inner:after { -webkit-transform: rotate(416deg); -ms-transform: rotate(416deg); transform: rotate(416deg); display: block; }\n.pace-progress[data-progress=\"79\"] .pace-progress-inner:after { -webkit-transform: rotate(419deg); -ms-transform: rotate(419deg); transform: rotate(419deg); display: block; }\n.pace-progress[data-progress=\"80\"] .pace-progress-inner:after { -webkit-transform: rotate(423deg); -ms-transform: rotate(423deg); transform: rotate(423deg); display: block; }\n.pace-progress[data-progress=\"81\"] .pace-progress-inner:after { -webkit-transform: rotate(427deg); -ms-transform: rotate(427deg); transform: rotate(427deg); display: block; }\n.pace-progress[data-progress=\"82\"] .pace-progress-inner:after { -webkit-transform: rotate(430deg); -ms-transform: rotate(430deg); transform: rotate(430deg); display: block; }\n.pace-progress[data-progress=\"83\"] .pace-progress-inner:after { -webkit-transform: rotate(434deg); -ms-transform: rotate(434deg); transform: rotate(434deg); display: block; }\n.pace-progress[data-progress=\"84\"] .pace-progress-inner:after { -webkit-transform: rotate(437deg); -ms-transform: rotate(437deg); transform: rotate(437deg); display: block; }\n.pace-progress[data-progress=\"85\"] .pace-progress-inner:after { -webkit-transform: rotate(441deg); -ms-transform: rotate(441deg); transform: rotate(441deg); display: block; }\n.pace-progress[data-progress=\"86\"] .pace-progress-inner:after { -webkit-transform: rotate(445deg); -ms-transform: rotate(445deg); transform: rotate(445deg); display: block; }\n.pace-progress[data-progress=\"87\"] .pace-progress-inner:after { -webkit-transform: rotate(448deg); -ms-transform: rotate(448deg); transform: rotate(448deg); display: block; }\n.pace-progress[data-progress=\"88\"] .pace-progress-inner:after { -webkit-transform: rotate(452deg); -ms-transform: rotate(452deg); transform: rotate(452deg); display: block; }\n.pace-progress[data-progress=\"89\"] .pace-progress-inner:after { -webkit-transform: rotate(455deg); -ms-transform: rotate(455deg); transform: rotate(455deg); display: block; }\n.pace-progress[data-progress=\"90\"] .pace-progress-inner:after { -webkit-transform: rotate(459deg); -ms-transform: rotate(459deg); transform: rotate(459deg); display: block; }\n.pace-progress[data-progress=\"91\"] .pace-progress-inner:after { -webkit-transform: rotate(463deg); -ms-transform: rotate(463deg); transform: rotate(463deg); display: block; }\n.pace-progress[data-progress=\"92\"] .pace-progress-inner:after { -webkit-transform: rotate(466deg); -ms-transform: rotate(466deg); transform: rotate(466deg); display: block; }\n.pace-progress[data-progress=\"93\"] .pace-progress-inner:after { -webkit-transform: rotate(470deg); -ms-transform: rotate(470deg); transform: rotate(470deg); display: block; }\n.pace-progress[data-progress=\"94\"] .pace-progress-inner:after { -webkit-transform: rotate(473deg); -ms-transform: rotate(473deg); transform: rotate(473deg); display: block; }\n.pace-progress[data-progress=\"95\"] .pace-progress-inner:after { -webkit-transform: rotate(477deg); -ms-transform: rotate(477deg); transform: rotate(477deg); display: block; }\n.pace-progress[data-progress=\"96\"] .pace-progress-inner:after { -webkit-transform: rotate(481deg); -ms-transform: rotate(481deg); transform: rotate(481deg); display: block; }\n.pace-progress[data-progress=\"97\"] .pace-progress-inner:after { -webkit-transform: rotate(484deg); -ms-transform: rotate(484deg); transform: rotate(484deg); display: block; }\n.pace-progress[data-progress=\"98\"] .pace-progress-inner:after { -webkit-transform: rotate(488deg); -ms-transform: rotate(488deg); transform: rotate(488deg); display: block; }\n.pace-progress[data-progress=\"99\"] .pace-progress-inner:after { -webkit-transform: rotate(491deg); -ms-transform: rotate(491deg); transform: rotate(491deg); display: block; }\n.pace-progress[data-progress=\"100\"] .pace-progress-inner:after { -webkit-transform: rotate(495deg); -ms-transform: rotate(495deg); transform: rotate(495deg); display: block; }\n\n.pace-progress[data-progress=\"00\"] .pace-progress-inner { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);}\n.pace-progress[data-progress=\"01\"] .pace-progress-inner { -webkit-transform: rotate(4deg); -ms-transform: rotate(4deg); transform: rotate(4deg);}\n.pace-progress[data-progress=\"02\"] .pace-progress-inner { -webkit-transform: rotate(7deg); -ms-transform: rotate(7deg); transform: rotate(7deg);}\n.pace-progress[data-progress=\"03\"] .pace-progress-inner { -webkit-transform: rotate(11deg); -ms-transform: rotate(11deg); transform: rotate(11deg);}\n.pace-progress[data-progress=\"04\"] .pace-progress-inner { -webkit-transform: rotate(14deg); -ms-transform: rotate(14deg); transform: rotate(14deg);}\n.pace-progress[data-progress=\"05\"] .pace-progress-inner { -webkit-transform: rotate(18deg); -ms-transform: rotate(18deg); transform: rotate(18deg);}\n.pace-progress[data-progress=\"06\"] .pace-progress-inner { -webkit-transform: rotate(22deg); -ms-transform: rotate(22deg); transform: rotate(22deg);}\n.pace-progress[data-progress=\"07\"] .pace-progress-inner { -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg);}\n.pace-progress[data-progress=\"08\"] .pace-progress-inner { -webkit-transform: rotate(29deg); -ms-transform: rotate(29deg); transform: rotate(29deg);}\n.pace-progress[data-progress=\"09\"] .pace-progress-inner { -webkit-transform: rotate(32deg); -ms-transform: rotate(32deg); transform: rotate(32deg);}\n.pace-progress[data-progress=\"10\"] .pace-progress-inner { -webkit-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg);}\n.pace-progress[data-progress=\"11\"] .pace-progress-inner { -webkit-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg);}\n.pace-progress[data-progress=\"12\"] .pace-progress-inner { -webkit-transform: rotate(43deg); -ms-transform: rotate(43deg); transform: rotate(43deg);}\n.pace-progress[data-progress=\"13\"] .pace-progress-inner { -webkit-transform: rotate(47deg); -ms-transform: rotate(47deg); transform: rotate(47deg);}\n.pace-progress[data-progress=\"14\"] .pace-progress-inner { -webkit-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg);}\n.pace-progress[data-progress=\"15\"] .pace-progress-inner { -webkit-transform: rotate(54deg); -ms-transform: rotate(54deg); transform: rotate(54deg);}\n.pace-progress[data-progress=\"16\"] .pace-progress-inner { -webkit-transform: rotate(58deg); -ms-transform: rotate(58deg); transform: rotate(58deg);}\n.pace-progress[data-progress=\"17\"] .pace-progress-inner { -webkit-transform: rotate(61deg); -ms-transform: rotate(61deg); transform: rotate(61deg);}\n.pace-progress[data-progress=\"18\"] .pace-progress-inner { -webkit-transform: rotate(65deg); -ms-transform: rotate(65deg); transform: rotate(65deg);}\n.pace-progress[data-progress=\"19\"] .pace-progress-inner { -webkit-transform: rotate(68deg); -ms-transform: rotate(68deg); transform: rotate(68deg);}\n.pace-progress[data-progress=\"20\"] .pace-progress-inner { -webkit-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg);}\n.pace-progress[data-progress=\"21\"] .pace-progress-inner { -webkit-transform: rotate(76deg); -ms-transform: rotate(76deg); transform: rotate(76deg);}\n.pace-progress[data-progress=\"22\"] .pace-progress-inner { -webkit-transform: rotate(79deg); -ms-transform: rotate(79deg); transform: rotate(79deg);}\n.pace-progress[data-progress=\"23\"] .pace-progress-inner { -webkit-transform: rotate(83deg); -ms-transform: rotate(83deg); transform: rotate(83deg);}\n.pace-progress[data-progress=\"24\"] .pace-progress-inner { -webkit-transform: rotate(86deg); -ms-transform: rotate(86deg); transform: rotate(86deg);}\n.pace-progress[data-progress=\"25\"] .pace-progress-inner { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg);}\n.pace-progress[data-progress=\"26\"] .pace-progress-inner { -webkit-transform: rotate(94deg); -ms-transform: rotate(94deg); transform: rotate(94deg);}\n.pace-progress[data-progress=\"27\"] .pace-progress-inner { -webkit-transform: rotate(97deg); -ms-transform: rotate(97deg); transform: rotate(97deg);}\n.pace-progress[data-progress=\"28\"] .pace-progress-inner { -webkit-transform: rotate(101deg); -ms-transform: rotate(101deg); transform: rotate(101deg);}\n.pace-progress[data-progress=\"29\"] .pace-progress-inner { -webkit-transform: rotate(104deg); -ms-transform: rotate(104deg); transform: rotate(104deg);}\n.pace-progress[data-progress=\"30\"] .pace-progress-inner { -webkit-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg);}\n.pace-progress[data-progress=\"31\"] .pace-progress-inner { -webkit-transform: rotate(112deg); -ms-transform: rotate(112deg); transform: rotate(112deg);}\n.pace-progress[data-progress=\"32\"] .pace-progress-inner { -webkit-transform: rotate(115deg); -ms-transform: rotate(115deg); transform: rotate(115deg);}\n.pace-progress[data-progress=\"33\"] .pace-progress-inner { -webkit-transform: rotate(119deg); -ms-transform: rotate(119deg); transform: rotate(119deg);}\n.pace-progress[data-progress=\"34\"] .pace-progress-inner { -webkit-transform: rotate(122deg); -ms-transform: rotate(122deg); transform: rotate(122deg);}\n.pace-progress[data-progress=\"35\"] .pace-progress-inner { -webkit-transform: rotate(126deg); -ms-transform: rotate(126deg); transform: rotate(126deg);}\n.pace-progress[data-progress=\"36\"] .pace-progress-inner { -webkit-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg);}\n.pace-progress[data-progress=\"37\"] .pace-progress-inner { -webkit-transform: rotate(133deg); -ms-transform: rotate(133deg); transform: rotate(133deg);}\n.pace-progress[data-progress=\"38\"] .pace-progress-inner { -webkit-transform: rotate(137deg); -ms-transform: rotate(137deg); transform: rotate(137deg);}\n.pace-progress[data-progress=\"39\"] .pace-progress-inner { -webkit-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg);}\n.pace-progress[data-progress=\"40\"] .pace-progress-inner { -webkit-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg);}\n.pace-progress[data-progress=\"41\"] .pace-progress-inner { -webkit-transform: rotate(148deg); -ms-transform: rotate(148deg); transform: rotate(148deg);}\n.pace-progress[data-progress=\"42\"] .pace-progress-inner { -webkit-transform: rotate(151deg); -ms-transform: rotate(151deg); transform: rotate(151deg);}\n.pace-progress[data-progress=\"43\"] .pace-progress-inner { -webkit-transform: rotate(155deg); -ms-transform: rotate(155deg); transform: rotate(155deg);}\n.pace-progress[data-progress=\"44\"] .pace-progress-inner { -webkit-transform: rotate(158deg); -ms-transform: rotate(158deg); transform: rotate(158deg);}\n.pace-progress[data-progress=\"45\"] .pace-progress-inner { -webkit-transform: rotate(162deg); -ms-transform: rotate(162deg); transform: rotate(162deg);}\n.pace-progress[data-progress=\"46\"] .pace-progress-inner { -webkit-transform: rotate(166deg); -ms-transform: rotate(166deg); transform: rotate(166deg);}\n.pace-progress[data-progress=\"47\"] .pace-progress-inner { -webkit-transform: rotate(169deg); -ms-transform: rotate(169deg); transform: rotate(169deg);}\n.pace-progress[data-progress=\"48\"] .pace-progress-inner { -webkit-transform: rotate(173deg); -ms-transform: rotate(173deg); transform: rotate(173deg);}\n.pace-progress[data-progress=\"49\"] .pace-progress-inner { -webkit-transform: rotate(176deg); -ms-transform: rotate(176deg); transform: rotate(176deg);}\n.pace-progress[data-progress=\"50\"] .pace-progress-inner { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}\n.pace-progress[data-progress=\"51\"] .pace-progress-inner { -webkit-transform: rotate(184deg); -ms-transform: rotate(184deg); transform: rotate(184deg); overflow: visible;}\n.pace-progress[data-progress=\"52\"] .pace-progress-inner { -webkit-transform: rotate(187deg); -ms-transform: rotate(187deg); transform: rotate(187deg); overflow: visible;}\n.pace-progress[data-progress=\"53\"] .pace-progress-inner { -webkit-transform: rotate(191deg); -ms-transform: rotate(191deg); transform: rotate(191deg); overflow: visible;}\n.pace-progress[data-progress=\"54\"] .pace-progress-inner { -webkit-transform: rotate(194deg); -ms-transform: rotate(194deg); transform: rotate(194deg); overflow: visible;}\n.pace-progress[data-progress=\"55\"] .pace-progress-inner { -webkit-transform: rotate(198deg); -ms-transform: rotate(198deg); transform: rotate(198deg); overflow: visible;}\n.pace-progress[data-progress=\"56\"] .pace-progress-inner { -webkit-transform: rotate(202deg); -ms-transform: rotate(202deg); transform: rotate(202deg); overflow: visible;}\n.pace-progress[data-progress=\"57\"] .pace-progress-inner { -webkit-transform: rotate(205deg); -ms-transform: rotate(205deg); transform: rotate(205deg); overflow: visible;}\n.pace-progress[data-progress=\"58\"] .pace-progress-inner { -webkit-transform: rotate(209deg); -ms-transform: rotate(209deg); transform: rotate(209deg); overflow: visible;}\n.pace-progress[data-progress=\"59\"] .pace-progress-inner { -webkit-transform: rotate(212deg); -ms-transform: rotate(212deg); transform: rotate(212deg); overflow: visible;}\n.pace-progress[data-progress=\"60\"] .pace-progress-inner { -webkit-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); overflow: visible;}\n.pace-progress[data-progress=\"61\"] .pace-progress-inner { -webkit-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); overflow: visible;}\n.pace-progress[data-progress=\"62\"] .pace-progress-inner { -webkit-transform: rotate(223deg); -ms-transform: rotate(223deg); transform: rotate(223deg); overflow: visible;}\n.pace-progress[data-progress=\"63\"] .pace-progress-inner { -webkit-transform: rotate(227deg); -ms-transform: rotate(227deg); transform: rotate(227deg); overflow: visible;}\n.pace-progress[data-progress=\"64\"] .pace-progress-inner { -webkit-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); overflow: visible;}\n.pace-progress[data-progress=\"65\"] .pace-progress-inner { -webkit-transform: rotate(234deg); -ms-transform: rotate(234deg); transform: rotate(234deg); overflow: visible;}\n.pace-progress[data-progress=\"66\"] .pace-progress-inner { -webkit-transform: rotate(238deg); -ms-transform: rotate(238deg); transform: rotate(238deg); overflow: visible;}\n.pace-progress[data-progress=\"67\"] .pace-progress-inner { -webkit-transform: rotate(241deg); -ms-transform: rotate(241deg); transform: rotate(241deg); overflow: visible;}\n.pace-progress[data-progress=\"68\"] .pace-progress-inner { -webkit-transform: rotate(245deg); -ms-transform: rotate(245deg); transform: rotate(245deg); overflow: visible;}\n.pace-progress[data-progress=\"69\"] .pace-progress-inner { -webkit-transform: rotate(248deg); -ms-transform: rotate(248deg); transform: rotate(248deg); overflow: visible;}\n.pace-progress[data-progress=\"70\"] .pace-progress-inner { -webkit-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); overflow: visible;}\n.pace-progress[data-progress=\"71\"] .pace-progress-inner { -webkit-transform: rotate(256deg); -ms-transform: rotate(256deg); transform: rotate(256deg); overflow: visible;}\n.pace-progress[data-progress=\"72\"] .pace-progress-inner { -webkit-transform: rotate(259deg); -ms-transform: rotate(259deg); transform: rotate(259deg); overflow: visible;}\n.pace-progress[data-progress=\"73\"] .pace-progress-inner { -webkit-transform: rotate(263deg); -ms-transform: rotate(263deg); transform: rotate(263deg); overflow: visible;}\n.pace-progress[data-progress=\"74\"] .pace-progress-inner { -webkit-transform: rotate(266deg); -ms-transform: rotate(266deg); transform: rotate(266deg); overflow: visible;}\n.pace-progress[data-progress=\"75\"] .pace-progress-inner { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); overflow: visible;}\n.pace-progress[data-progress=\"76\"] .pace-progress-inner { -webkit-transform: rotate(274deg); -ms-transform: rotate(274deg); transform: rotate(274deg); overflow: visible;}\n.pace-progress[data-progress=\"77\"] .pace-progress-inner { -webkit-transform: rotate(277deg); -ms-transform: rotate(277deg); transform: rotate(277deg); overflow: visible;}\n.pace-progress[data-progress=\"78\"] .pace-progress-inner { -webkit-transform: rotate(281deg); -ms-transform: rotate(281deg); transform: rotate(281deg); overflow: visible;}\n.pace-progress[data-progress=\"79\"] .pace-progress-inner { -webkit-transform: rotate(284deg); -ms-transform: rotate(284deg); transform: rotate(284deg); overflow: visible;}\n.pace-progress[data-progress=\"80\"] .pace-progress-inner { -webkit-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); overflow: visible;}\n.pace-progress[data-progress=\"81\"] .pace-progress-inner { -webkit-transform: rotate(292deg); -ms-transform: rotate(292deg); transform: rotate(292deg); overflow: visible;}\n.pace-progress[data-progress=\"82\"] .pace-progress-inner { -webkit-transform: rotate(295deg); -ms-transform: rotate(295deg); transform: rotate(295deg); overflow: visible;}\n.pace-progress[data-progress=\"83\"] .pace-progress-inner { -webkit-transform: rotate(299deg); -ms-transform: rotate(299deg); transform: rotate(299deg); overflow: visible;}\n.pace-progress[data-progress=\"84\"] .pace-progress-inner { -webkit-transform: rotate(302deg); -ms-transform: rotate(302deg); transform: rotate(302deg); overflow: visible;}\n.pace-progress[data-progress=\"85\"] .pace-progress-inner { -webkit-transform: rotate(306deg); -ms-transform: rotate(306deg); transform: rotate(306deg); overflow: visible;}\n.pace-progress[data-progress=\"86\"] .pace-progress-inner { -webkit-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); overflow: visible;}\n.pace-progress[data-progress=\"87\"] .pace-progress-inner { -webkit-transform: rotate(313deg); -ms-transform: rotate(313deg); transform: rotate(313deg); overflow: visible;}\n.pace-progress[data-progress=\"88\"] .pace-progress-inner { -webkit-transform: rotate(317deg); -ms-transform: rotate(317deg); transform: rotate(317deg); overflow: visible;}\n.pace-progress[data-progress=\"89\"] .pace-progress-inner { -webkit-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); overflow: visible;}\n.pace-progress[data-progress=\"90\"] .pace-progress-inner { -webkit-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); overflow: visible;}\n.pace-progress[data-progress=\"91\"] .pace-progress-inner { -webkit-transform: rotate(328deg); -ms-transform: rotate(328deg); transform: rotate(328deg); overflow: visible;}\n.pace-progress[data-progress=\"92\"] .pace-progress-inner { -webkit-transform: rotate(331deg); -ms-transform: rotate(331deg); transform: rotate(331deg); overflow: visible;}\n.pace-progress[data-progress=\"93\"] .pace-progress-inner { -webkit-transform: rotate(335deg); -ms-transform: rotate(335deg); transform: rotate(335deg); overflow: visible;}\n.pace-progress[data-progress=\"94\"] .pace-progress-inner { -webkit-transform: rotate(338deg); -ms-transform: rotate(338deg); transform: rotate(338deg); overflow: visible;}\n.pace-progress[data-progress=\"95\"] .pace-progress-inner { -webkit-transform: rotate(342deg); -ms-transform: rotate(342deg); transform: rotate(342deg); overflow: visible;}\n.pace-progress[data-progress=\"96\"] .pace-progress-inner { -webkit-transform: rotate(346deg); -ms-transform: rotate(346deg); transform: rotate(346deg); overflow: visible;}\n.pace-progress[data-progress=\"97\"] .pace-progress-inner { -webkit-transform: rotate(349deg); -ms-transform: rotate(349deg); transform: rotate(349deg); overflow: visible;}\n.pace-progress[data-progress=\"98\"] .pace-progress-inner { -webkit-transform: rotate(353deg); -ms-transform: rotate(353deg); transform: rotate(353deg); overflow: visible;}\n.pace-progress[data-progress=\"99\"] .pace-progress-inner { -webkit-transform: rotate(356deg); -ms-transform: rotate(356deg); transform: rotate(356deg); overflow: visible;}\n.pace-progress[data-progress=\"100\"] .pace-progress-inner { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); overflow: visible;}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pace-progress/themes/yellow/pace-theme-minimal.css",
    "content": "/* This is a compiled file, to make changes persist, consider editing under the templates directory */\n.pace {\n  -webkit-pointer-events: none;\n  pointer-events: none;\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.pace-inactive {\n  display: none;\n}\n\n.pace .pace-progress {\n  background: #fcd25a;\n  position: fixed;\n  z-index: 2000;\n  top: 0;\n  right: 100%;\n  width: 100%;\n  height: 2px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pdfmake/pdfmake.js",
    "content": "/*! pdfmake v0.1.70, @license MIT, @link http://pdfmake.org */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 302);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction isString(variable) {\n\treturn typeof variable === 'string' || variable instanceof String;\n}\n\nfunction isNumber(variable) {\n\treturn typeof variable === 'number' || variable instanceof Number;\n}\n\nfunction isBoolean(variable) {\n\treturn typeof variable === 'boolean';\n}\n\nfunction isArray(variable) {\n\treturn Array.isArray(variable);\n}\n\nfunction isFunction(variable) {\n\treturn typeof variable === 'function';\n}\n\nfunction isObject(variable) {\n\treturn variable !== null && typeof variable === 'object';\n}\n\nfunction isNull(variable) {\n\treturn variable === null;\n}\n\nfunction isUndefined(variable) {\n\treturn variable === undefined;\n}\n\nfunction pack() {\n\tvar result = {};\n\n\tfor (var i = 0, l = arguments.length; i < l; i++) {\n\t\tvar obj = arguments[i];\n\n\t\tif (obj) {\n\t\t\tfor (var key in obj) {\n\t\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\t\tresult[key] = obj[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction offsetVector(vector, x, y) {\n\tswitch (vector.type) {\n\t\tcase 'ellipse':\n\t\tcase 'rect':\n\t\t\tvector.x += x;\n\t\t\tvector.y += y;\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\tvector.x1 += x;\n\t\t\tvector.x2 += x;\n\t\t\tvector.y1 += y;\n\t\t\tvector.y2 += y;\n\t\t\tbreak;\n\t\tcase 'polyline':\n\t\t\tfor (var i = 0, l = vector.points.length; i < l; i++) {\n\t\t\t\tvector.points[i].x += x;\n\t\t\t\tvector.points[i].y += y;\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nfunction fontStringify(key, val) {\n\tif (key === 'font') {\n\t\treturn 'font';\n\t}\n\treturn val;\n}\n\nfunction getNodeId(node) {\n\tif (node.id) {\n\t\treturn node.id;\n\t}\n\n\tif (isArray(node.text)) {\n\t\tfor (var i = 0, l = node.text.length; i < l; i++) {\n\t\t\tvar n = node.text[i];\n\t\t\tvar nodeId = getNodeId(n);\n\t\t\tif (nodeId) {\n\t\t\t\treturn nodeId;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nmodule.exports = {\n\tisString: isString,\n\tisNumber: isNumber,\n\tisBoolean: isBoolean,\n\tisArray: isArray,\n\tisFunction: isFunction,\n\tisObject: isObject,\n\tisNull: isNull,\n\tisUndefined: isUndefined,\n\tpack: pack,\n\tfontStringify: fontStringify,\n\toffsetVector: offsetVector,\n\tgetNodeId: getNodeId\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar getOwnPropertyDescriptor = __webpack_require__(54).f;\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar redefine = __webpack_require__(25);\nvar setGlobal = __webpack_require__(139);\nvar copyConstructorProperties = __webpack_require__(203);\nvar isForced = __webpack_require__(145);\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse {}\n}(this, function () {\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\t    /*\n\t     * Local polyfil of Object.create\n\t     */\n\t    var create = Object.create || (function () {\n\t        function F() {};\n\n\t        return function (obj) {\n\t            var subtype;\n\n\t            F.prototype = obj;\n\n\t            subtype = new F();\n\n\t            F.prototype = null;\n\n\t            return subtype;\n\t        };\n\t    }())\n\n\t    /**\n\t     * CryptoJS namespace.\n\t     */\n\t    var C = {};\n\n\t    /**\n\t     * Library namespace.\n\t     */\n\t    var C_lib = C.lib = {};\n\n\t    /**\n\t     * Base object for prototypal inheritance.\n\t     */\n\t    var Base = C_lib.Base = (function () {\n\n\n\t        return {\n\t            /**\n\t             * Creates a new object that inherits from this object.\n\t             *\n\t             * @param {Object} overrides Properties to copy into the new object.\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         field: 'value',\n\t             *\n\t             *         method: function () {\n\t             *         }\n\t             *     });\n\t             */\n\t            extend: function (overrides) {\n\t                // Spawn\n\t                var subtype = create(this);\n\n\t                // Augment\n\t                if (overrides) {\n\t                    subtype.mixIn(overrides);\n\t                }\n\n\t                // Create default initializer\n\t                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t                    subtype.init = function () {\n\t                        subtype.$super.init.apply(this, arguments);\n\t                    };\n\t                }\n\n\t                // Initializer's prototype is the subtype object\n\t                subtype.init.prototype = subtype;\n\n\t                // Reference supertype\n\t                subtype.$super = this;\n\n\t                return subtype;\n\t            },\n\n\t            /**\n\t             * Extends this object and runs the init method.\n\t             * Arguments to create() will be passed to init().\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var instance = MyType.create();\n\t             */\n\t            create: function () {\n\t                var instance = this.extend();\n\t                instance.init.apply(instance, arguments);\n\n\t                return instance;\n\t            },\n\n\t            /**\n\t             * Initializes a newly created object.\n\t             * Override this method to add some logic when your objects are created.\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         init: function () {\n\t             *             // ...\n\t             *         }\n\t             *     });\n\t             */\n\t            init: function () {\n\t            },\n\n\t            /**\n\t             * Copies properties into this object.\n\t             *\n\t             * @param {Object} properties The properties to mix in.\n\t             *\n\t             * @example\n\t             *\n\t             *     MyType.mixIn({\n\t             *         field: 'value'\n\t             *     });\n\t             */\n\t            mixIn: function (properties) {\n\t                for (var propertyName in properties) {\n\t                    if (properties.hasOwnProperty(propertyName)) {\n\t                        this[propertyName] = properties[propertyName];\n\t                    }\n\t                }\n\n\t                // IE won't copy toString using the loop above\n\t                if (properties.hasOwnProperty('toString')) {\n\t                    this.toString = properties.toString;\n\t                }\n\t            },\n\n\t            /**\n\t             * Creates a copy of this object.\n\t             *\n\t             * @return {Object} The clone.\n\t             *\n\t             * @example\n\t             *\n\t             *     var clone = instance.clone();\n\t             */\n\t            clone: function () {\n\t                return this.init.prototype.extend(this);\n\t            }\n\t        };\n\t    }());\n\n\t    /**\n\t     * An array of 32-bit words.\n\t     *\n\t     * @property {Array} words The array of 32-bit words.\n\t     * @property {number} sigBytes The number of significant bytes in this word array.\n\t     */\n\t    var WordArray = C_lib.WordArray = Base.extend({\n\t        /**\n\t         * Initializes a newly created word array.\n\t         *\n\t         * @param {Array} words (Optional) An array of 32-bit words.\n\t         * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.create();\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t         */\n\t        init: function (words, sigBytes) {\n\t            words = this.words = words || [];\n\n\t            if (sigBytes != undefined) {\n\t                this.sigBytes = sigBytes;\n\t            } else {\n\t                this.sigBytes = words.length * 4;\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts this word array to a string.\n\t         *\n\t         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t         *\n\t         * @return {string} The stringified word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     var string = wordArray + '';\n\t         *     var string = wordArray.toString();\n\t         *     var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t         */\n\t        toString: function (encoder) {\n\t            return (encoder || Hex).stringify(this);\n\t        },\n\n\t        /**\n\t         * Concatenates a word array to this word array.\n\t         *\n\t         * @param {WordArray} wordArray The word array to append.\n\t         *\n\t         * @return {WordArray} This word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray1.concat(wordArray2);\n\t         */\n\t        concat: function (wordArray) {\n\t            // Shortcuts\n\t            var thisWords = this.words;\n\t            var thatWords = wordArray.words;\n\t            var thisSigBytes = this.sigBytes;\n\t            var thatSigBytes = wordArray.sigBytes;\n\n\t            // Clamp excess bits\n\t            this.clamp();\n\n\t            // Concat\n\t            if (thisSigBytes % 4) {\n\t                // Copy one byte at a time\n\t                for (var i = 0; i < thatSigBytes; i++) {\n\t                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t                }\n\t            } else {\n\t                // Copy one word at a time\n\t                for (var i = 0; i < thatSigBytes; i += 4) {\n\t                    thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t                }\n\t            }\n\t            this.sigBytes += thatSigBytes;\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Removes insignificant bits.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray.clamp();\n\t         */\n\t        clamp: function () {\n\t            // Shortcuts\n\t            var words = this.words;\n\t            var sigBytes = this.sigBytes;\n\n\t            // Clamp\n\t            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t            words.length = Math.ceil(sigBytes / 4);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this word array.\n\t         *\n\t         * @return {WordArray} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = wordArray.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone.words = this.words.slice(0);\n\n\t            return clone;\n\t        },\n\n\t        /**\n\t         * Creates a word array filled with random bytes.\n\t         *\n\t         * @param {number} nBytes The number of random bytes to generate.\n\t         *\n\t         * @return {WordArray} The random word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.random(16);\n\t         */\n\t        random: function (nBytes) {\n\t            var words = [];\n\n\t            var r = (function (m_w) {\n\t                var m_w = m_w;\n\t                var m_z = 0x3ade68b1;\n\t                var mask = 0xffffffff;\n\n\t                return function () {\n\t                    m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\n\t                    m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\n\t                    var result = ((m_z << 0x10) + m_w) & mask;\n\t                    result /= 0x100000000;\n\t                    result += 0.5;\n\t                    return result * (Math.random() > .5 ? 1 : -1);\n\t                }\n\t            });\n\n\t            for (var i = 0, rcache; i < nBytes; i += 4) {\n\t                var _r = r((rcache || Math.random()) * 0x100000000);\n\n\t                rcache = _r() * 0x3ade67b7;\n\t                words.push((_r() * 0x100000000) | 0);\n\t            }\n\n\t            return new WordArray.init(words, nBytes);\n\t        }\n\t    });\n\n\t    /**\n\t     * Encoder namespace.\n\t     */\n\t    var C_enc = C.enc = {};\n\n\t    /**\n\t     * Hex encoding strategy.\n\t     */\n\t    var Hex = C_enc.Hex = {\n\t        /**\n\t         * Converts a word array to a hex string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The hex string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var hexChars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                hexChars.push((bite >>> 4).toString(16));\n\t                hexChars.push((bite & 0x0f).toString(16));\n\t            }\n\n\t            return hexChars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a hex string to a word array.\n\t         *\n\t         * @param {string} hexStr The hex string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t         */\n\t        parse: function (hexStr) {\n\t            // Shortcut\n\t            var hexStrLength = hexStr.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < hexStrLength; i += 2) {\n\t                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t            }\n\n\t            return new WordArray.init(words, hexStrLength / 2);\n\t        }\n\t    };\n\n\t    /**\n\t     * Latin1 encoding strategy.\n\t     */\n\t    var Latin1 = C_enc.Latin1 = {\n\t        /**\n\t         * Converts a word array to a Latin1 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Latin1 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var latin1Chars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                latin1Chars.push(String.fromCharCode(bite));\n\t            }\n\n\t            return latin1Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Latin1 string to a word array.\n\t         *\n\t         * @param {string} latin1Str The Latin1 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t         */\n\t        parse: function (latin1Str) {\n\t            // Shortcut\n\t            var latin1StrLength = latin1Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < latin1StrLength; i++) {\n\t                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t            }\n\n\t            return new WordArray.init(words, latin1StrLength);\n\t        }\n\t    };\n\n\t    /**\n\t     * UTF-8 encoding strategy.\n\t     */\n\t    var Utf8 = C_enc.Utf8 = {\n\t        /**\n\t         * Converts a word array to a UTF-8 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-8 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            try {\n\t                return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t            } catch (e) {\n\t                throw new Error('Malformed UTF-8 data');\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts a UTF-8 string to a word array.\n\t         *\n\t         * @param {string} utf8Str The UTF-8 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t         */\n\t        parse: function (utf8Str) {\n\t            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t        }\n\t    };\n\n\t    /**\n\t     * Abstract buffered block algorithm template.\n\t     *\n\t     * The property blockSize must be implemented in a concrete subtype.\n\t     *\n\t     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t     */\n\t    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t        /**\n\t         * Resets this block algorithm's data buffer to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm.reset();\n\t         */\n\t        reset: function () {\n\t            // Initial values\n\t            this._data = new WordArray.init();\n\t            this._nDataBytes = 0;\n\t        },\n\n\t        /**\n\t         * Adds new data to this block algorithm's buffer.\n\t         *\n\t         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm._append('data');\n\t         *     bufferedBlockAlgorithm._append(wordArray);\n\t         */\n\t        _append: function (data) {\n\t            // Convert string to WordArray, else assume WordArray already\n\t            if (typeof data == 'string') {\n\t                data = Utf8.parse(data);\n\t            }\n\n\t            // Append\n\t            this._data.concat(data);\n\t            this._nDataBytes += data.sigBytes;\n\t        },\n\n\t        /**\n\t         * Processes available data blocks.\n\t         *\n\t         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t         *\n\t         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t         *\n\t         * @return {WordArray} The processed data.\n\t         *\n\t         * @example\n\t         *\n\t         *     var processedData = bufferedBlockAlgorithm._process();\n\t         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t         */\n\t        _process: function (doFlush) {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\t            var dataSigBytes = data.sigBytes;\n\t            var blockSize = this.blockSize;\n\t            var blockSizeBytes = blockSize * 4;\n\n\t            // Count blocks ready\n\t            var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t            if (doFlush) {\n\t                // Round up to include partial blocks\n\t                nBlocksReady = Math.ceil(nBlocksReady);\n\t            } else {\n\t                // Round down to include only full blocks,\n\t                // less the number of blocks that must remain in the buffer\n\t                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t            }\n\n\t            // Count words ready\n\t            var nWordsReady = nBlocksReady * blockSize;\n\n\t            // Count bytes ready\n\t            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t            // Process blocks\n\t            if (nWordsReady) {\n\t                for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t                    // Perform concrete-algorithm logic\n\t                    this._doProcessBlock(dataWords, offset);\n\t                }\n\n\t                // Remove processed words\n\t                var processedWords = dataWords.splice(0, nWordsReady);\n\t                data.sigBytes -= nBytesReady;\n\t            }\n\n\t            // Return processed words\n\t            return new WordArray.init(processedWords, nBytesReady);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this object.\n\t         *\n\t         * @return {Object} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = bufferedBlockAlgorithm.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone._data = this._data.clone();\n\n\t            return clone;\n\t        },\n\n\t        _minBufferSize: 0\n\t    });\n\n\t    /**\n\t     * Abstract hasher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t     */\n\t    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t        /**\n\t         * Configuration options.\n\t         */\n\t        cfg: Base.extend(),\n\n\t        /**\n\t         * Initializes a newly created hasher.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hasher = CryptoJS.algo.SHA256.create();\n\t         */\n\t        init: function (cfg) {\n\t            // Apply config defaults\n\t            this.cfg = this.cfg.extend(cfg);\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this hasher to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.reset();\n\t         */\n\t        reset: function () {\n\t            // Reset data buffer\n\t            BufferedBlockAlgorithm.reset.call(this);\n\n\t            // Perform concrete-hasher logic\n\t            this._doReset();\n\t        },\n\n\t        /**\n\t         * Updates this hasher with a message.\n\t         *\n\t         * @param {WordArray|string} messageUpdate The message to append.\n\t         *\n\t         * @return {Hasher} This hasher.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.update('message');\n\t         *     hasher.update(wordArray);\n\t         */\n\t        update: function (messageUpdate) {\n\t            // Append\n\t            this._append(messageUpdate);\n\n\t            // Update the hash\n\t            this._process();\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Finalizes the hash computation.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t         *\n\t         * @return {WordArray} The hash.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hash = hasher.finalize();\n\t         *     var hash = hasher.finalize('message');\n\t         *     var hash = hasher.finalize(wordArray);\n\t         */\n\t        finalize: function (messageUpdate) {\n\t            // Final message update\n\t            if (messageUpdate) {\n\t                this._append(messageUpdate);\n\t            }\n\n\t            // Perform concrete-hasher logic\n\t            var hash = this._doFinalize();\n\n\t            return hash;\n\t        },\n\n\t        blockSize: 512/32,\n\n\t        /**\n\t         * Creates a shortcut function to a hasher's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to create a helper for.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHelper: function (hasher) {\n\t            return function (message, cfg) {\n\t                return new hasher.init(cfg).finalize(message);\n\t            };\n\t        },\n\n\t        /**\n\t         * Creates a shortcut function to the HMAC's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHmacHelper: function (hasher) {\n\t            return function (message, key) {\n\t                return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t            };\n\t        }\n\t    });\n\n\t    /**\n\t     * Algorithm namespace.\n\t     */\n\t    var C_algo = C.algo = {};\n\n\t    return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(221);\nvar DESCRIPTORS = __webpack_require__(13);\nvar global = __webpack_require__(3);\nvar isObject = __webpack_require__(14);\nvar has = __webpack_require__(15);\nvar classof = __webpack_require__(117);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar redefine = __webpack_require__(25);\nvar defineProperty = __webpack_require__(16).f;\nvar getPrototypeOf = __webpack_require__(60);\nvar setPrototypeOf = __webpack_require__(45);\nvar wellKnownSymbol = __webpack_require__(6);\nvar uid = __webpack_require__(112);\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return has(TypedArrayConstructorsList, klass)\n    || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar shared = __webpack_require__(142);\nvar has = __webpack_require__(15);\nvar uid = __webpack_require__(112);\nvar NATIVE_SYMBOL = __webpack_require__(146);\nvar USE_SYMBOL_AS_UID = __webpack_require__(205);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(35);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(17);\nvar core = __webpack_require__(7);\nvar ctx = __webpack_require__(32);\nvar hide = __webpack_require__(39);\nvar has = __webpack_require__(51);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(304)\nvar ieee754 = __webpack_require__(305)\nvar isArray = __webpack_require__(200)\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(49));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Base = C_lib.Base;\n\t    var WordArray = C_lib.WordArray;\n\t    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t    var C_enc = C.enc;\n\t    var Utf8 = C_enc.Utf8;\n\t    var Base64 = C_enc.Base64;\n\t    var C_algo = C.algo;\n\t    var EvpKDF = C_algo.EvpKDF;\n\n\t    /**\n\t     * Abstract base cipher template.\n\t     *\n\t     * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t     * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t     * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t     * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t     */\n\t    var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {WordArray} iv The IV to use for this operation.\n\t         */\n\t        cfg: Base.extend(),\n\n\t        /**\n\t         * Creates this cipher in encryption mode.\n\t         *\n\t         * @param {WordArray} key The key.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {Cipher} A cipher instance.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t         */\n\t        createEncryptor: function (key, cfg) {\n\t            return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t        },\n\n\t        /**\n\t         * Creates this cipher in decryption mode.\n\t         *\n\t         * @param {WordArray} key The key.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {Cipher} A cipher instance.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t         */\n\t        createDecryptor: function (key, cfg) {\n\t            return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t        },\n\n\t        /**\n\t         * Initializes a newly created cipher.\n\t         *\n\t         * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t         * @param {WordArray} key The key.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t         */\n\t        init: function (xformMode, key, cfg) {\n\t            // Apply config defaults\n\t            this.cfg = this.cfg.extend(cfg);\n\n\t            // Store transform mode and key\n\t            this._xformMode = xformMode;\n\t            this._key = key;\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this cipher to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     cipher.reset();\n\t         */\n\t        reset: function () {\n\t            // Reset data buffer\n\t            BufferedBlockAlgorithm.reset.call(this);\n\n\t            // Perform concrete-cipher logic\n\t            this._doReset();\n\t        },\n\n\t        /**\n\t         * Adds data to be encrypted or decrypted.\n\t         *\n\t         * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t         *\n\t         * @return {WordArray} The data after processing.\n\t         *\n\t         * @example\n\t         *\n\t         *     var encrypted = cipher.process('data');\n\t         *     var encrypted = cipher.process(wordArray);\n\t         */\n\t        process: function (dataUpdate) {\n\t            // Append\n\t            this._append(dataUpdate);\n\n\t            // Process available blocks\n\t            return this._process();\n\t        },\n\n\t        /**\n\t         * Finalizes the encryption or decryption process.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t         *\n\t         * @return {WordArray} The data after final processing.\n\t         *\n\t         * @example\n\t         *\n\t         *     var encrypted = cipher.finalize();\n\t         *     var encrypted = cipher.finalize('data');\n\t         *     var encrypted = cipher.finalize(wordArray);\n\t         */\n\t        finalize: function (dataUpdate) {\n\t            // Final data update\n\t            if (dataUpdate) {\n\t                this._append(dataUpdate);\n\t            }\n\n\t            // Perform concrete-cipher logic\n\t            var finalProcessedData = this._doFinalize();\n\n\t            return finalProcessedData;\n\t        },\n\n\t        keySize: 128/32,\n\n\t        ivSize: 128/32,\n\n\t        _ENC_XFORM_MODE: 1,\n\n\t        _DEC_XFORM_MODE: 2,\n\n\t        /**\n\t         * Creates shortcut functions to a cipher's object interface.\n\t         *\n\t         * @param {Cipher} cipher The cipher to create a helper for.\n\t         *\n\t         * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t         */\n\t        _createHelper: (function () {\n\t            function selectCipherStrategy(key) {\n\t                if (typeof key == 'string') {\n\t                    return PasswordBasedCipher;\n\t                } else {\n\t                    return SerializableCipher;\n\t                }\n\t            }\n\n\t            return function (cipher) {\n\t                return {\n\t                    encrypt: function (message, key, cfg) {\n\t                        return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t                    },\n\n\t                    decrypt: function (ciphertext, key, cfg) {\n\t                        return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t                    }\n\t                };\n\t            };\n\t        }())\n\t    });\n\n\t    /**\n\t     * Abstract base stream cipher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t     */\n\t    var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t        _doFinalize: function () {\n\t            // Process partial blocks\n\t            var finalProcessedBlocks = this._process(!!'flush');\n\n\t            return finalProcessedBlocks;\n\t        },\n\n\t        blockSize: 1\n\t    });\n\n\t    /**\n\t     * Mode namespace.\n\t     */\n\t    var C_mode = C.mode = {};\n\n\t    /**\n\t     * Abstract base block cipher mode template.\n\t     */\n\t    var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t        /**\n\t         * Creates this mode for encryption.\n\t         *\n\t         * @param {Cipher} cipher A block cipher instance.\n\t         * @param {Array} iv The IV words.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t         */\n\t        createEncryptor: function (cipher, iv) {\n\t            return this.Encryptor.create(cipher, iv);\n\t        },\n\n\t        /**\n\t         * Creates this mode for decryption.\n\t         *\n\t         * @param {Cipher} cipher A block cipher instance.\n\t         * @param {Array} iv The IV words.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t         */\n\t        createDecryptor: function (cipher, iv) {\n\t            return this.Decryptor.create(cipher, iv);\n\t        },\n\n\t        /**\n\t         * Initializes a newly created mode.\n\t         *\n\t         * @param {Cipher} cipher A block cipher instance.\n\t         * @param {Array} iv The IV words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t         */\n\t        init: function (cipher, iv) {\n\t            this._cipher = cipher;\n\t            this._iv = iv;\n\t        }\n\t    });\n\n\t    /**\n\t     * Cipher Block Chaining mode.\n\t     */\n\t    var CBC = C_mode.CBC = (function () {\n\t        /**\n\t         * Abstract base CBC mode.\n\t         */\n\t        var CBC = BlockCipherMode.extend();\n\n\t        /**\n\t         * CBC encryptor.\n\t         */\n\t        CBC.Encryptor = CBC.extend({\n\t            /**\n\t             * Processes the data block at offset.\n\t             *\n\t             * @param {Array} words The data words to operate on.\n\t             * @param {number} offset The offset where the block starts.\n\t             *\n\t             * @example\n\t             *\n\t             *     mode.processBlock(data.words, offset);\n\t             */\n\t            processBlock: function (words, offset) {\n\t                // Shortcuts\n\t                var cipher = this._cipher;\n\t                var blockSize = cipher.blockSize;\n\n\t                // XOR and encrypt\n\t                xorBlock.call(this, words, offset, blockSize);\n\t                cipher.encryptBlock(words, offset);\n\n\t                // Remember this block to use with next block\n\t                this._prevBlock = words.slice(offset, offset + blockSize);\n\t            }\n\t        });\n\n\t        /**\n\t         * CBC decryptor.\n\t         */\n\t        CBC.Decryptor = CBC.extend({\n\t            /**\n\t             * Processes the data block at offset.\n\t             *\n\t             * @param {Array} words The data words to operate on.\n\t             * @param {number} offset The offset where the block starts.\n\t             *\n\t             * @example\n\t             *\n\t             *     mode.processBlock(data.words, offset);\n\t             */\n\t            processBlock: function (words, offset) {\n\t                // Shortcuts\n\t                var cipher = this._cipher;\n\t                var blockSize = cipher.blockSize;\n\n\t                // Remember this block to use with next block\n\t                var thisBlock = words.slice(offset, offset + blockSize);\n\n\t                // Decrypt and XOR\n\t                cipher.decryptBlock(words, offset);\n\t                xorBlock.call(this, words, offset, blockSize);\n\n\t                // This block becomes the previous block\n\t                this._prevBlock = thisBlock;\n\t            }\n\t        });\n\n\t        function xorBlock(words, offset, blockSize) {\n\t            // Shortcut\n\t            var iv = this._iv;\n\n\t            // Choose mixing block\n\t            if (iv) {\n\t                var block = iv;\n\n\t                // Remove IV for subsequent blocks\n\t                this._iv = undefined;\n\t            } else {\n\t                var block = this._prevBlock;\n\t            }\n\n\t            // XOR blocks\n\t            for (var i = 0; i < blockSize; i++) {\n\t                words[offset + i] ^= block[i];\n\t            }\n\t        }\n\n\t        return CBC;\n\t    }());\n\n\t    /**\n\t     * Padding namespace.\n\t     */\n\t    var C_pad = C.pad = {};\n\n\t    /**\n\t     * PKCS #5/7 padding strategy.\n\t     */\n\t    var Pkcs7 = C_pad.Pkcs7 = {\n\t        /**\n\t         * Pads data using the algorithm defined in PKCS #5/7.\n\t         *\n\t         * @param {WordArray} data The data to pad.\n\t         * @param {number} blockSize The multiple that the data should be padded to.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t         */\n\t        pad: function (data, blockSize) {\n\t            // Shortcut\n\t            var blockSizeBytes = blockSize * 4;\n\n\t            // Count padding bytes\n\t            var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t            // Create padding word\n\t            var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t            // Create padding\n\t            var paddingWords = [];\n\t            for (var i = 0; i < nPaddingBytes; i += 4) {\n\t                paddingWords.push(paddingWord);\n\t            }\n\t            var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t            // Add padding\n\t            data.concat(padding);\n\t        },\n\n\t        /**\n\t         * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t         *\n\t         * @param {WordArray} data The data to unpad.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t         */\n\t        unpad: function (data) {\n\t            // Get number of padding bytes from last byte\n\t            var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t            // Remove padding\n\t            data.sigBytes -= nPaddingBytes;\n\t        }\n\t    };\n\n\t    /**\n\t     * Abstract base block cipher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t     */\n\t    var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {Mode} mode The block mode to use. Default: CBC\n\t         * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t         */\n\t        cfg: Cipher.cfg.extend({\n\t            mode: CBC,\n\t            padding: Pkcs7\n\t        }),\n\n\t        reset: function () {\n\t            // Reset cipher\n\t            Cipher.reset.call(this);\n\n\t            // Shortcuts\n\t            var cfg = this.cfg;\n\t            var iv = cfg.iv;\n\t            var mode = cfg.mode;\n\n\t            // Reset block mode\n\t            if (this._xformMode == this._ENC_XFORM_MODE) {\n\t                var modeCreator = mode.createEncryptor;\n\t            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t                var modeCreator = mode.createDecryptor;\n\t                // Keep at least one block in the buffer for unpadding\n\t                this._minBufferSize = 1;\n\t            }\n\n\t            if (this._mode && this._mode.__creator == modeCreator) {\n\t                this._mode.init(this, iv && iv.words);\n\t            } else {\n\t                this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t                this._mode.__creator = modeCreator;\n\t            }\n\t        },\n\n\t        _doProcessBlock: function (words, offset) {\n\t            this._mode.processBlock(words, offset);\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcut\n\t            var padding = this.cfg.padding;\n\n\t            // Finalize\n\t            if (this._xformMode == this._ENC_XFORM_MODE) {\n\t                // Pad data\n\t                padding.pad(this._data, this.blockSize);\n\n\t                // Process final blocks\n\t                var finalProcessedBlocks = this._process(!!'flush');\n\t            } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t                // Process final blocks\n\t                var finalProcessedBlocks = this._process(!!'flush');\n\n\t                // Unpad data\n\t                padding.unpad(finalProcessedBlocks);\n\t            }\n\n\t            return finalProcessedBlocks;\n\t        },\n\n\t        blockSize: 128/32\n\t    });\n\n\t    /**\n\t     * A collection of cipher parameters.\n\t     *\n\t     * @property {WordArray} ciphertext The raw ciphertext.\n\t     * @property {WordArray} key The key to this ciphertext.\n\t     * @property {WordArray} iv The IV used in the ciphering operation.\n\t     * @property {WordArray} salt The salt used with a key derivation function.\n\t     * @property {Cipher} algorithm The cipher algorithm.\n\t     * @property {Mode} mode The block mode used in the ciphering operation.\n\t     * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t     * @property {number} blockSize The block size of the cipher.\n\t     * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t     */\n\t    var CipherParams = C_lib.CipherParams = Base.extend({\n\t        /**\n\t         * Initializes a newly created cipher params object.\n\t         *\n\t         * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipherParams = CryptoJS.lib.CipherParams.create({\n\t         *         ciphertext: ciphertextWordArray,\n\t         *         key: keyWordArray,\n\t         *         iv: ivWordArray,\n\t         *         salt: saltWordArray,\n\t         *         algorithm: CryptoJS.algo.AES,\n\t         *         mode: CryptoJS.mode.CBC,\n\t         *         padding: CryptoJS.pad.PKCS7,\n\t         *         blockSize: 4,\n\t         *         formatter: CryptoJS.format.OpenSSL\n\t         *     });\n\t         */\n\t        init: function (cipherParams) {\n\t            this.mixIn(cipherParams);\n\t        },\n\n\t        /**\n\t         * Converts this cipher params object to a string.\n\t         *\n\t         * @param {Format} formatter (Optional) The formatting strategy to use.\n\t         *\n\t         * @return {string} The stringified cipher params.\n\t         *\n\t         * @throws Error If neither the formatter nor the default formatter is set.\n\t         *\n\t         * @example\n\t         *\n\t         *     var string = cipherParams + '';\n\t         *     var string = cipherParams.toString();\n\t         *     var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t         */\n\t        toString: function (formatter) {\n\t            return (formatter || this.formatter).stringify(this);\n\t        }\n\t    });\n\n\t    /**\n\t     * Format namespace.\n\t     */\n\t    var C_format = C.format = {};\n\n\t    /**\n\t     * OpenSSL formatting strategy.\n\t     */\n\t    var OpenSSLFormatter = C_format.OpenSSL = {\n\t        /**\n\t         * Converts a cipher params object to an OpenSSL-compatible string.\n\t         *\n\t         * @param {CipherParams} cipherParams The cipher params object.\n\t         *\n\t         * @return {string} The OpenSSL-compatible string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t         */\n\t        stringify: function (cipherParams) {\n\t            // Shortcuts\n\t            var ciphertext = cipherParams.ciphertext;\n\t            var salt = cipherParams.salt;\n\n\t            // Format\n\t            if (salt) {\n\t                var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t            } else {\n\t                var wordArray = ciphertext;\n\t            }\n\n\t            return wordArray.toString(Base64);\n\t        },\n\n\t        /**\n\t         * Converts an OpenSSL-compatible string to a cipher params object.\n\t         *\n\t         * @param {string} openSSLStr The OpenSSL-compatible string.\n\t         *\n\t         * @return {CipherParams} The cipher params object.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t         */\n\t        parse: function (openSSLStr) {\n\t            // Parse base64\n\t            var ciphertext = Base64.parse(openSSLStr);\n\n\t            // Shortcut\n\t            var ciphertextWords = ciphertext.words;\n\n\t            // Test for salt\n\t            if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t                // Extract salt\n\t                var salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t                // Remove salt from ciphertext\n\t                ciphertextWords.splice(0, 4);\n\t                ciphertext.sigBytes -= 16;\n\t            }\n\n\t            return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t        }\n\t    };\n\n\t    /**\n\t     * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t     */\n\t    var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t         */\n\t        cfg: Base.extend({\n\t            format: OpenSSLFormatter\n\t        }),\n\n\t        /**\n\t         * Encrypts a message.\n\t         *\n\t         * @param {Cipher} cipher The cipher algorithm to use.\n\t         * @param {WordArray|string} message The message to encrypt.\n\t         * @param {WordArray} key The key.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {CipherParams} A cipher params object.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t         *     var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t         */\n\t        encrypt: function (cipher, message, key, cfg) {\n\t            // Apply config defaults\n\t            cfg = this.cfg.extend(cfg);\n\n\t            // Encrypt\n\t            var encryptor = cipher.createEncryptor(key, cfg);\n\t            var ciphertext = encryptor.finalize(message);\n\n\t            // Shortcut\n\t            var cipherCfg = encryptor.cfg;\n\n\t            // Create and return serializable cipher params\n\t            return CipherParams.create({\n\t                ciphertext: ciphertext,\n\t                key: key,\n\t                iv: cipherCfg.iv,\n\t                algorithm: cipher,\n\t                mode: cipherCfg.mode,\n\t                padding: cipherCfg.padding,\n\t                blockSize: cipher.blockSize,\n\t                formatter: cfg.format\n\t            });\n\t        },\n\n\t        /**\n\t         * Decrypts serialized ciphertext.\n\t         *\n\t         * @param {Cipher} cipher The cipher algorithm to use.\n\t         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t         * @param {WordArray} key The key.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {WordArray} The plaintext.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t         *     var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t         */\n\t        decrypt: function (cipher, ciphertext, key, cfg) {\n\t            // Apply config defaults\n\t            cfg = this.cfg.extend(cfg);\n\n\t            // Convert string to CipherParams\n\t            ciphertext = this._parse(ciphertext, cfg.format);\n\n\t            // Decrypt\n\t            var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t            return plaintext;\n\t        },\n\n\t        /**\n\t         * Converts serialized ciphertext to CipherParams,\n\t         * else assumed CipherParams already and returns ciphertext unchanged.\n\t         *\n\t         * @param {CipherParams|string} ciphertext The ciphertext.\n\t         * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t         *\n\t         * @return {CipherParams} The unserialized ciphertext.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t         */\n\t        _parse: function (ciphertext, format) {\n\t            if (typeof ciphertext == 'string') {\n\t                return format.parse(ciphertext, this);\n\t            } else {\n\t                return ciphertext;\n\t            }\n\t        }\n\t    });\n\n\t    /**\n\t     * Key derivation function namespace.\n\t     */\n\t    var C_kdf = C.kdf = {};\n\n\t    /**\n\t     * OpenSSL key derivation function.\n\t     */\n\t    var OpenSSLKdf = C_kdf.OpenSSL = {\n\t        /**\n\t         * Derives a key and IV from a password.\n\t         *\n\t         * @param {string} password The password to derive from.\n\t         * @param {number} keySize The size in words of the key to generate.\n\t         * @param {number} ivSize The size in words of the IV to generate.\n\t         * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t         *\n\t         * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t         *     var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t         */\n\t        execute: function (password, keySize, ivSize, salt) {\n\t            // Generate random salt\n\t            if (!salt) {\n\t                salt = WordArray.random(64/8);\n\t            }\n\n\t            // Derive key and IV\n\t            var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t            // Separate key and IV\n\t            var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t            key.sigBytes = keySize * 4;\n\n\t            // Return params\n\t            return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t        }\n\t    };\n\n\t    /**\n\t     * A serializable cipher wrapper that derives the key from a password,\n\t     * and returns ciphertext as a serializable cipher params object.\n\t     */\n\t    var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t         */\n\t        cfg: SerializableCipher.cfg.extend({\n\t            kdf: OpenSSLKdf\n\t        }),\n\n\t        /**\n\t         * Encrypts a message using a password.\n\t         *\n\t         * @param {Cipher} cipher The cipher algorithm to use.\n\t         * @param {WordArray|string} message The message to encrypt.\n\t         * @param {string} password The password.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {CipherParams} A cipher params object.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t         *     var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t         */\n\t        encrypt: function (cipher, message, password, cfg) {\n\t            // Apply config defaults\n\t            cfg = this.cfg.extend(cfg);\n\n\t            // Derive key and other params\n\t            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t            // Add IV to config\n\t            cfg.iv = derivedParams.iv;\n\n\t            // Encrypt\n\t            var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t            // Mix in derived params\n\t            ciphertext.mixIn(derivedParams);\n\n\t            return ciphertext;\n\t        },\n\n\t        /**\n\t         * Decrypts serialized ciphertext using a password.\n\t         *\n\t         * @param {Cipher} cipher The cipher algorithm to use.\n\t         * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t         * @param {string} password The password.\n\t         * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t         *\n\t         * @return {WordArray} The plaintext.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t         *     var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t         */\n\t        decrypt: function (cipher, ciphertext, password, cfg) {\n\t            // Apply config defaults\n\t            cfg = this.cfg.extend(cfg);\n\n\t            // Convert string to CipherParams\n\t            ciphertext = this._parse(ciphertext, cfg.format);\n\n\t            // Derive key and other params\n\t            var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t            // Add IV to config\n\t            cfg.iv = derivedParams.iv;\n\n\t            // Decrypt\n\t            var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t            return plaintext;\n\t        }\n\t    });\n\t}());\n\n\n}));\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar IE8_DOM_DEFINE = __webpack_require__(202);\nvar anObject = __webpack_require__(11);\nvar toPrimitive = __webpack_require__(55);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar definePropertyModule = __webpack_require__(16);\nvar createPropertyDescriptor = __webpack_require__(40);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(33);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar bind = __webpack_require__(96);\nvar IndexedObject = __webpack_require__(92);\nvar toObject = __webpack_require__(19);\nvar toLength = __webpack_require__(8);\nvar arraySpeciesCreate = __webpack_require__(209);\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_OUT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push.call(target, value); // filterOut\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterOut` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterOut: createMethod(7)\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(182)('wks');\nvar uid = __webpack_require__(131);\nvar Symbol = __webpack_require__(17).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(52)(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar has = __webpack_require__(15);\nvar setGlobal = __webpack_require__(139);\nvar inspectSource = __webpack_require__(140);\nvar InternalStateModule = __webpack_require__(42);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var state;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) {\n      createNonEnumerableProperty(value, 'name', key);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(29);\nvar IE8_DOM_DEFINE = __webpack_require__(255);\nvar toPrimitive = __webpack_require__(176);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(23) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(92);\nvar requireObjectCoercible = __webpack_require__(33);\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(27);\nvar addToUnscopables = __webpack_require__(151);\nvar Iterators = __webpack_require__(97);\nvar InternalStateModule = __webpack_require__(42);\nvar defineIterator = __webpack_require__(217);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(22);\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar fails = __webpack_require__(4);\nvar has = __webpack_require__(15);\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n  if (!options) options = {};\n  var method = [][METHOD_NAME];\n  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n  var argument0 = has(options, 0) ? options[0] : thrower;\n  var argument1 = has(options, 1) ? options[1] : undefined;\n\n  return cache[METHOD_NAME] = !!method && !fails(function () {\n    if (ACCESSORS && !DESCRIPTORS) return true;\n    var O = { length: -1 };\n\n    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n    else O[1] = 1;\n\n    method.call(O, argument0, argument1);\n  });\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(154);\nvar redefine = __webpack_require__(25);\nvar toString = __webpack_require__(332);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(101);\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(114);\nvar global = __webpack_require__(3);\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar aFunction = __webpack_require__(44);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* eslint-disable node/no-deprecated-api */\n\n\n\nvar buffer = __webpack_require__(10)\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n  if (!buffer.hasOwnProperty(key)) continue\n  if (key === 'SlowBuffer' || key === 'Buffer') continue\n  safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n  if (!Buffer.hasOwnProperty(key)) continue\n  if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n  Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n  Safer.from = function (value, encodingOrOffset, length) {\n    if (typeof value === 'number') {\n      throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n    }\n    if (value && typeof value.length === 'undefined') {\n      throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n    }\n    return Buffer(value, encodingOrOffset, length)\n  }\n}\n\nif (!Safer.alloc) {\n  Safer.alloc = function (size, fill, encoding) {\n    if (typeof size !== 'number') {\n      throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n    }\n    if (size < 0 || size >= 2 * (1 << 30)) {\n      throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n    }\n    var buf = Buffer(size)\n    if (!fill || fill.length === 0) {\n      buf.fill(0)\n    } else if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n    return buf\n  }\n}\n\nif (!safer.kStringMaxLength) {\n  try {\n    safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n  } catch (e) {\n    // we can't determine kStringMaxLength in environments where process.binding\n    // is unsupported, so let's not set it\n  }\n}\n\nif (!safer.constants) {\n  safer.constants = {\n    MAX_LENGTH: safer.kMaxLength\n  }\n  if (safer.kStringMaxLength) {\n    safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n  }\n}\n\nmodule.exports = safer\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47)))\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var NumberT, PropertyDescriptor;\n\n  NumberT = __webpack_require__(89).Number;\n\n  exports.resolveLength = function(length, stream, parent) {\n    var res;\n    if (typeof length === 'number') {\n      res = length;\n    } else if (typeof length === 'function') {\n      res = length.call(parent, parent);\n    } else if (parent && typeof length === 'string') {\n      res = parent[length];\n    } else if (stream && length instanceof NumberT) {\n      res = length.decode(stream);\n    }\n    if (isNaN(res)) {\n      throw new Error('Not a fixed size');\n    }\n    return res;\n  };\n\n  PropertyDescriptor = (function() {\n    function PropertyDescriptor(opts) {\n      var key, val;\n      if (opts == null) {\n        opts = {};\n      }\n      this.enumerable = true;\n      this.configurable = true;\n      for (key in opts) {\n        val = opts[key];\n        this[key] = val;\n      }\n    }\n\n    return PropertyDescriptor;\n\n  })();\n\n  exports.PropertyDescriptor = PropertyDescriptor;\n\n}).call(this);\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(26);\nvar createDesc = __webpack_require__(100);\nmodule.exports = __webpack_require__(23) ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(310);\nvar global = __webpack_require__(3);\nvar isObject = __webpack_require__(14);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar objectHas = __webpack_require__(15);\nvar shared = __webpack_require__(141);\nvar sharedKey = __webpack_require__(111);\nvar hiddenKeys = __webpack_require__(113);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(35);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar aPossiblePrototype = __webpack_require__(321);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar isObject = __webpack_require__(14);\nvar isArray = __webpack_require__(115);\nvar toAbsoluteIndex = __webpack_require__(43);\nvar toLength = __webpack_require__(8);\nvar toIndexedObject = __webpack_require__(27);\nvar createProperty = __webpack_require__(147);\nvar wellKnownSymbol = __webpack_require__(6);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(116);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(123);\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    keys.push(key);\n  }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(98));\nutil.inherits = __webpack_require__(86);\n/*</replacement>*/\n\nvar Readable = __webpack_require__(241);\nvar Writable = __webpack_require__(166);\n\nutil.inherits(Duplex, Readable);\n\n{\n  // avoid scope creep, the keys array can then be collected\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n\n  Readable.call(this, options);\n  Writable.call(this, options);\n\n  if (options && options.readable === false) this.readable = false;\n\n  if (options && options.writable === false) this.writable = false;\n\n  this.allowHalfOpen = true;\n  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n  this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // if we allow half-open state, or if the writable side ended,\n  // then we're ok.\n  if (this.allowHalfOpen || this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n  this.push(null);\n  this.end();\n\n  pna.nextTick(cb, err);\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(168), __webpack_require__(169));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Base = C_lib.Base;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_algo = C.algo;\n\t    var MD5 = C_algo.MD5;\n\n\t    /**\n\t     * This key derivation function is meant to conform with EVP_BytesToKey.\n\t     * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t     */\n\t    var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t         * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t         * @property {number} iterations The number of iterations to perform. Default: 1\n\t         */\n\t        cfg: Base.extend({\n\t            keySize: 128/32,\n\t            hasher: MD5,\n\t            iterations: 1\n\t        }),\n\n\t        /**\n\t         * Initializes a newly created key derivation function.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var kdf = CryptoJS.algo.EvpKDF.create();\n\t         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t         *     var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t         */\n\t        init: function (cfg) {\n\t            this.cfg = this.cfg.extend(cfg);\n\t        },\n\n\t        /**\n\t         * Derives a key from a password.\n\t         *\n\t         * @param {WordArray|string} password The password.\n\t         * @param {WordArray|string} salt A salt.\n\t         *\n\t         * @return {WordArray} The derived key.\n\t         *\n\t         * @example\n\t         *\n\t         *     var key = kdf.compute(password, salt);\n\t         */\n\t        compute: function (password, salt) {\n\t            // Shortcut\n\t            var cfg = this.cfg;\n\n\t            // Init hasher\n\t            var hasher = cfg.hasher.create();\n\n\t            // Initial values\n\t            var derivedKey = WordArray.create();\n\n\t            // Shortcuts\n\t            var derivedKeyWords = derivedKey.words;\n\t            var keySize = cfg.keySize;\n\t            var iterations = cfg.iterations;\n\n\t            // Generate key\n\t            while (derivedKeyWords.length < keySize) {\n\t                if (block) {\n\t                    hasher.update(block);\n\t                }\n\t                var block = hasher.update(password).finalize(salt);\n\t                hasher.reset();\n\n\t                // Iterations\n\t                for (var i = 1; i < iterations; i++) {\n\t                    block = hasher.finalize(block);\n\t                    hasher.reset();\n\t                }\n\n\t                derivedKey.concat(block);\n\t            }\n\t            derivedKey.sigBytes = keySize * 4;\n\n\t            return derivedKey;\n\t        }\n\t    });\n\n\t    /**\n\t     * Derives a key from a password.\n\t     *\n\t     * @param {WordArray|string} password The password.\n\t     * @param {WordArray|string} salt A salt.\n\t     * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t     *\n\t     * @return {WordArray} The derived key.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var key = CryptoJS.EvpKDF(password, salt);\n\t     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t     *     var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t     */\n\t    C.EvpKDF = function (password, salt, cfg) {\n\t        return EvpKDF.create(cfg).compute(password, salt);\n\t    };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(173);\nvar defined = __webpack_require__(174);\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer, __dirname) {\n\nfunction VirtualFileSystem() {\n\tthis.fileSystem = {};\n\tthis.dataSystem = {};\n}\n\nVirtualFileSystem.prototype.existsSync = function (filename) {\n\tfilename = fixFilename(filename);\n\treturn typeof this.fileSystem[filename] !== 'undefined'\n\t\t|| typeof this.dataSystem[filename] !== 'undefined';\n}\n\nVirtualFileSystem.prototype.readFileSync = function (filename, options) {\n\tfilename = fixFilename(filename);\n\n\tvar dataContent = this.dataSystem[filename];\n\tif (typeof dataContent === 'string' && options === 'utf8') {\n\t\treturn dataContent;\n\t}\n\n\tif (dataContent) {\n\t\treturn new Buffer(dataContent, typeof dataContent === 'string' ? 'base64' : undefined);\n\t}\n\n\tvar content = this.fileSystem[filename];\n\tif (content) {\n\t\treturn content;\n\t}\n\n\tthrow 'File \\'' + filename + '\\' not found in virtual file system';\n};\n\nVirtualFileSystem.prototype.writeFileSync = function (filename, content) {\n\tthis.fileSystem[fixFilename(filename)] = content;\n};\n\nVirtualFileSystem.prototype.bindFS = function (data) {\n\tthis.dataSystem = data || {};\n};\n\n\nfunction fixFilename(filename) {\n\tif (filename.indexOf(__dirname) === 0) {\n\t\tfilename = filename.substring(__dirname.length);\n\t}\n\n\tif (filename.indexOf('/') === 0) {\n\t\tfilename = filename.substring(1);\n\t}\n\n\treturn filename;\n}\n\nmodule.exports = new VirtualFileSystem();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer, \"/\"))\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar propertyIsEnumerableModule = __webpack_require__(110);\nvar createPropertyDescriptor = __webpack_require__(40);\nvar toIndexedObject = __webpack_require__(27);\nvar toPrimitive = __webpack_require__(55);\nvar has = __webpack_require__(15);\nvar IE8_DOM_DEFINE = __webpack_require__(202);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(204);\nvar enumBugKeys = __webpack_require__(143);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar defineProperties = __webpack_require__(312);\nvar enumBugKeys = __webpack_require__(143);\nvar hiddenKeys = __webpack_require__(113);\nvar html = __webpack_require__(206);\nvar documentCreateElement = __webpack_require__(138);\nvar sharedKey = __webpack_require__(111);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(4);\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(15);\nvar toObject = __webpack_require__(19);\nvar sharedKey = __webpack_require__(111);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(219);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar fails = __webpack_require__(4);\nvar ArrayBufferModule = __webpack_require__(156);\nvar anObject = __webpack_require__(11);\nvar toAbsoluteIndex = __webpack_require__(43);\nvar toLength = __webpack_require__(8);\nvar speciesConstructor = __webpack_require__(36);\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n  return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n  slice: function slice(start, end) {\n    if (nativeArrayBufferSlice !== undefined && end === undefined) {\n      return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n    }\n    var length = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n    var viewSource = new DataView(this);\n    var viewTarget = new DataView(result);\n    var index = 0;\n    while (first < fin) {\n      viewTarget.setUint8(index++, viewSource.getUint8(first++));\n    } return result;\n  }\n});\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(237);\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $copyWithin = __webpack_require__(344);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $every = __webpack_require__(20).every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $fill = __webpack_require__(150);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  return $fill.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $filter = __webpack_require__(20).filter;\nvar speciesConstructor = __webpack_require__(36);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n});\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $find = __webpack_require__(20).find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $findIndex = __webpack_require__(20).findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $forEach = __webpack_require__(20).forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $includes = __webpack_require__(93).includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $indexOf = __webpack_require__(93).indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(3);\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar ArrayIterators = __webpack_require__(28);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n  return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n  return $join.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $lastIndexOf = __webpack_require__(345);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $map = __webpack_require__(20).map;\nvar speciesConstructor = __webpack_require__(36);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n  });\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $reduce = __webpack_require__(239).left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $reduceRight = __webpack_require__(239).right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar toLength = __webpack_require__(8);\nvar toOffset = __webpack_require__(238);\nvar toObject = __webpack_require__(19);\nvar fails = __webpack_require__(4);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var length = this.length;\n  var src = toObject(arrayLike);\n  var len = toLength(src.length);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar speciesConstructor = __webpack_require__(36);\nvar fails = __webpack_require__(4);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar $some = __webpack_require__(20).some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar toLength = __webpack_require__(8);\nvar toAbsoluteIndex = __webpack_require__(43);\nvar speciesConstructor = __webpack_require__(36);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  return new (speciesConstructor(O, O.constructor))(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(3);\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar fails = __webpack_require__(4);\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(5).exportTypedArrayMethod;\nvar fails = __webpack_require__(4);\nvar global = __webpack_require__(3);\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return arrayJoin.call(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nif (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_enc = C.enc;\n\n\t    /**\n\t     * Base64 encoding strategy.\n\t     */\n\t    var Base64 = C_enc.Base64 = {\n\t        /**\n\t         * Converts a word array to a Base64 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Base64 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\t            var map = this._map;\n\n\t            // Clamp excess bits\n\t            wordArray.clamp();\n\n\t            // Convert\n\t            var base64Chars = [];\n\t            for (var i = 0; i < sigBytes; i += 3) {\n\t                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;\n\t                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t                }\n\t            }\n\n\t            // Add padding\n\t            var paddingChar = map.charAt(64);\n\t            if (paddingChar) {\n\t                while (base64Chars.length % 4) {\n\t                    base64Chars.push(paddingChar);\n\t                }\n\t            }\n\n\t            return base64Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Base64 string to a word array.\n\t         *\n\t         * @param {string} base64Str The Base64 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t         */\n\t        parse: function (base64Str) {\n\t            // Shortcuts\n\t            var base64StrLength = base64Str.length;\n\t            var map = this._map;\n\t            var reverseMap = this._reverseMap;\n\n\t            if (!reverseMap) {\n\t                    reverseMap = this._reverseMap = [];\n\t                    for (var j = 0; j < map.length; j++) {\n\t                        reverseMap[map.charCodeAt(j)] = j;\n\t                    }\n\t            }\n\n\t            // Ignore padding\n\t            var paddingChar = map.charAt(64);\n\t            if (paddingChar) {\n\t                var paddingIndex = base64Str.indexOf(paddingChar);\n\t                if (paddingIndex !== -1) {\n\t                    base64StrLength = paddingIndex;\n\t                }\n\t            }\n\n\t            // Convert\n\t            return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t        },\n\n\t        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t    };\n\n\t    function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t      var words = [];\n\t      var nBytes = 0;\n\t      for (var i = 0; i < base64StrLength; i++) {\n\t          if (i % 4) {\n\t              var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t              var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t              words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n\t              nBytes++;\n\t          }\n\t      }\n\t      return WordArray.create(words, nBytes);\n\t    }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Constants table\n\t    var T = [];\n\n\t    // Compute constants\n\t    (function () {\n\t        for (var i = 0; i < 64; i++) {\n\t            T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t        }\n\t    }());\n\n\t    /**\n\t     * MD5 hash algorithm.\n\t     */\n\t    var MD5 = C_algo.MD5 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init([\n\t                0x67452301, 0xefcdab89,\n\t                0x98badcfe, 0x10325476\n\t            ]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Swap endian\n\t            for (var i = 0; i < 16; i++) {\n\t                // Shortcuts\n\t                var offset_i = offset + i;\n\t                var M_offset_i = M[offset_i];\n\n\t                M[offset_i] = (\n\t                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)\n\t                );\n\t            }\n\n\t            // Shortcuts\n\t            var H = this._hash.words;\n\n\t            var M_offset_0  = M[offset + 0];\n\t            var M_offset_1  = M[offset + 1];\n\t            var M_offset_2  = M[offset + 2];\n\t            var M_offset_3  = M[offset + 3];\n\t            var M_offset_4  = M[offset + 4];\n\t            var M_offset_5  = M[offset + 5];\n\t            var M_offset_6  = M[offset + 6];\n\t            var M_offset_7  = M[offset + 7];\n\t            var M_offset_8  = M[offset + 8];\n\t            var M_offset_9  = M[offset + 9];\n\t            var M_offset_10 = M[offset + 10];\n\t            var M_offset_11 = M[offset + 11];\n\t            var M_offset_12 = M[offset + 12];\n\t            var M_offset_13 = M[offset + 13];\n\t            var M_offset_14 = M[offset + 14];\n\t            var M_offset_15 = M[offset + 15];\n\n\t            // Working varialbes\n\t            var a = H[0];\n\t            var b = H[1];\n\t            var c = H[2];\n\t            var d = H[3];\n\n\t            // Computation\n\t            a = FF(a, b, c, d, M_offset_0,  7,  T[0]);\n\t            d = FF(d, a, b, c, M_offset_1,  12, T[1]);\n\t            c = FF(c, d, a, b, M_offset_2,  17, T[2]);\n\t            b = FF(b, c, d, a, M_offset_3,  22, T[3]);\n\t            a = FF(a, b, c, d, M_offset_4,  7,  T[4]);\n\t            d = FF(d, a, b, c, M_offset_5,  12, T[5]);\n\t            c = FF(c, d, a, b, M_offset_6,  17, T[6]);\n\t            b = FF(b, c, d, a, M_offset_7,  22, T[7]);\n\t            a = FF(a, b, c, d, M_offset_8,  7,  T[8]);\n\t            d = FF(d, a, b, c, M_offset_9,  12, T[9]);\n\t            c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t            b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t            a = FF(a, b, c, d, M_offset_12, 7,  T[12]);\n\t            d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t            c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t            b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t            a = GG(a, b, c, d, M_offset_1,  5,  T[16]);\n\t            d = GG(d, a, b, c, M_offset_6,  9,  T[17]);\n\t            c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t            b = GG(b, c, d, a, M_offset_0,  20, T[19]);\n\t            a = GG(a, b, c, d, M_offset_5,  5,  T[20]);\n\t            d = GG(d, a, b, c, M_offset_10, 9,  T[21]);\n\t            c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t            b = GG(b, c, d, a, M_offset_4,  20, T[23]);\n\t            a = GG(a, b, c, d, M_offset_9,  5,  T[24]);\n\t            d = GG(d, a, b, c, M_offset_14, 9,  T[25]);\n\t            c = GG(c, d, a, b, M_offset_3,  14, T[26]);\n\t            b = GG(b, c, d, a, M_offset_8,  20, T[27]);\n\t            a = GG(a, b, c, d, M_offset_13, 5,  T[28]);\n\t            d = GG(d, a, b, c, M_offset_2,  9,  T[29]);\n\t            c = GG(c, d, a, b, M_offset_7,  14, T[30]);\n\t            b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t            a = HH(a, b, c, d, M_offset_5,  4,  T[32]);\n\t            d = HH(d, a, b, c, M_offset_8,  11, T[33]);\n\t            c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t            b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t            a = HH(a, b, c, d, M_offset_1,  4,  T[36]);\n\t            d = HH(d, a, b, c, M_offset_4,  11, T[37]);\n\t            c = HH(c, d, a, b, M_offset_7,  16, T[38]);\n\t            b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t            a = HH(a, b, c, d, M_offset_13, 4,  T[40]);\n\t            d = HH(d, a, b, c, M_offset_0,  11, T[41]);\n\t            c = HH(c, d, a, b, M_offset_3,  16, T[42]);\n\t            b = HH(b, c, d, a, M_offset_6,  23, T[43]);\n\t            a = HH(a, b, c, d, M_offset_9,  4,  T[44]);\n\t            d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t            c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t            b = HH(b, c, d, a, M_offset_2,  23, T[47]);\n\n\t            a = II(a, b, c, d, M_offset_0,  6,  T[48]);\n\t            d = II(d, a, b, c, M_offset_7,  10, T[49]);\n\t            c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t            b = II(b, c, d, a, M_offset_5,  21, T[51]);\n\t            a = II(a, b, c, d, M_offset_12, 6,  T[52]);\n\t            d = II(d, a, b, c, M_offset_3,  10, T[53]);\n\t            c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t            b = II(b, c, d, a, M_offset_1,  21, T[55]);\n\t            a = II(a, b, c, d, M_offset_8,  6,  T[56]);\n\t            d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t            c = II(c, d, a, b, M_offset_6,  15, T[58]);\n\t            b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t            a = II(a, b, c, d, M_offset_4,  6,  T[60]);\n\t            d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t            c = II(c, d, a, b, M_offset_2,  15, T[62]);\n\t            b = II(b, c, d, a, M_offset_9,  21, T[63]);\n\n\t            // Intermediate hash value\n\t            H[0] = (H[0] + a) | 0;\n\t            H[1] = (H[1] + b) | 0;\n\t            H[2] = (H[2] + c) | 0;\n\t            H[3] = (H[3] + d) | 0;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t            var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t            var nBitsTotalL = nBitsTotal;\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t                (((nBitsTotalH << 8)  | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalH << 24) | (nBitsTotalH >>> 8))  & 0xff00ff00)\n\t            );\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t                (((nBitsTotalL << 8)  | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalL << 24) | (nBitsTotalL >>> 8))  & 0xff00ff00)\n\t            );\n\n\t            data.sigBytes = (dataWords.length + 1) * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Shortcuts\n\t            var hash = this._hash;\n\t            var H = hash.words;\n\n\t            // Swap endian\n\t            for (var i = 0; i < 4; i++) {\n\t                // Shortcut\n\t                var H_i = H[i];\n\n\t                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |\n\t                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);\n\t            }\n\n\t            // Return final computed hash\n\t            return hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    function FF(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & c) | (~b & d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function GG(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & d) | (c & ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function HH(a, b, c, d, x, s, t) {\n\t        var n = a + (b ^ c ^ d) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function II(a, b, c, d, x, s, t) {\n\t        var n = a + (c ^ (b | ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.MD5('message');\n\t     *     var hash = CryptoJS.MD5(wordArray);\n\t     */\n\t    C.MD5 = Hasher._createHelper(MD5);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacMD5(message, key);\n\t     */\n\t    C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var DecodeStream, Fixed, NumberT,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  DecodeStream = __webpack_require__(170);\n\n  NumberT = (function() {\n    function NumberT(type, endian) {\n      this.type = type;\n      this.endian = endian != null ? endian : 'BE';\n      this.fn = this.type;\n      if (this.type[this.type.length - 1] !== '8') {\n        this.fn += this.endian;\n      }\n    }\n\n    NumberT.prototype.size = function() {\n      return DecodeStream.TYPES[this.type];\n    };\n\n    NumberT.prototype.decode = function(stream) {\n      return stream['read' + this.fn]();\n    };\n\n    NumberT.prototype.encode = function(stream, val) {\n      return stream['write' + this.fn](val);\n    };\n\n    return NumberT;\n\n  })();\n\n  exports.Number = NumberT;\n\n  exports.uint8 = new NumberT('UInt8');\n\n  exports.uint16be = exports.uint16 = new NumberT('UInt16', 'BE');\n\n  exports.uint16le = new NumberT('UInt16', 'LE');\n\n  exports.uint24be = exports.uint24 = new NumberT('UInt24', 'BE');\n\n  exports.uint24le = new NumberT('UInt24', 'LE');\n\n  exports.uint32be = exports.uint32 = new NumberT('UInt32', 'BE');\n\n  exports.uint32le = new NumberT('UInt32', 'LE');\n\n  exports.int8 = new NumberT('Int8');\n\n  exports.int16be = exports.int16 = new NumberT('Int16', 'BE');\n\n  exports.int16le = new NumberT('Int16', 'LE');\n\n  exports.int24be = exports.int24 = new NumberT('Int24', 'BE');\n\n  exports.int24le = new NumberT('Int24', 'LE');\n\n  exports.int32be = exports.int32 = new NumberT('Int32', 'BE');\n\n  exports.int32le = new NumberT('Int32', 'LE');\n\n  exports.floatbe = exports.float = new NumberT('Float', 'BE');\n\n  exports.floatle = new NumberT('Float', 'LE');\n\n  exports.doublebe = exports.double = new NumberT('Double', 'BE');\n\n  exports.doublele = new NumberT('Double', 'LE');\n\n  Fixed = (function(_super) {\n    __extends(Fixed, _super);\n\n    function Fixed(size, endian, fracBits) {\n      if (fracBits == null) {\n        fracBits = size >> 1;\n      }\n      Fixed.__super__.constructor.call(this, \"Int\" + size, endian);\n      this._point = 1 << fracBits;\n    }\n\n    Fixed.prototype.decode = function(stream) {\n      return Fixed.__super__.decode.call(this, stream) / this._point;\n    };\n\n    Fixed.prototype.encode = function(stream, val) {\n      return Fixed.__super__.encode.call(this, stream, val * this._point | 0);\n    };\n\n    return Fixed;\n\n  })(NumberT);\n\n  exports.Fixed = Fixed;\n\n  exports.fixed16be = exports.fixed16 = new Fixed(16, 'BE');\n\n  exports.fixed16le = new Fixed(16, 'LE');\n\n  exports.fixed32be = exports.fixed32 = new Fixed(32, 'BE');\n\n  exports.fixed32le = new Fixed(32, 'LE');\n\n}).call(this);\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(174);\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(433)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(179)(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\nvar classof = __webpack_require__(41);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(27);\nvar toLength = __webpack_require__(8);\nvar toAbsoluteIndex = __webpack_require__(43);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(204);\nvar enumBugKeys = __webpack_require__(143);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(16).f;\nvar has = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(44);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n  if (Array.isArray) {\n    return Array.isArray(arg);\n  }\n  return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(428);\nvar global = __webpack_require__(17);\nvar hide = __webpack_require__(39);\nvar Iterators = __webpack_require__(103);\nvar TO_STRING_TAG = __webpack_require__(21)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n  'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n  var NAME = DOMIterables[i];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(259);\nvar enumBugKeys = __webpack_require__(183);\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(26).f;\nvar has = __webpack_require__(51);\nvar TAG = __webpack_require__(21)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(32);\nvar call = __webpack_require__(266);\nvar isArrayIter = __webpack_require__(267);\nvar anObject = __webpack_require__(29);\nvar toLength = __webpack_require__(130);\nvar getIterFn = __webpack_require__(184);\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  // fast case for arrays with default iterator\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keys = __webpack_require__(273);\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(44);\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(142);\nvar uid = __webpack_require__(112);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(41);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\nvar wellKnownSymbol = __webpack_require__(6);\nvar V8_VERSION = __webpack_require__(148);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(154);\nvar classofRaw = __webpack_require__(41);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar exec = __webpack_require__(119);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpFlags = __webpack_require__(230);\nvar stickyHelpers = __webpack_require__(333);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = regexpFlags.call(re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = flags.replace('y', '');\n      if (flags.indexOf('g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = String(str).slice(re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = match.input.slice(charsAdded);\n        match[0] = match[0].slice(charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar DOMIterables = __webpack_require__(240);\nvar ArrayIteratorMethods = __webpack_require__(28);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = __webpack_require__(122).EventEmitter;\nvar inherits = __webpack_require__(86);\n\ninherits(Stream, EE);\nStream.Readable = __webpack_require__(165);\nStream.Writable = __webpack_require__(352);\nStream.Duplex = __webpack_require__(353);\nStream.Transform = __webpack_require__(354);\nStream.PassThrough = __webpack_require__(355);\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams.  Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n  EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n  var source = this;\n\n  function ondata(chunk) {\n    if (dest.writable) {\n      if (false === dest.write(chunk) && source.pause) {\n        source.pause();\n      }\n    }\n  }\n\n  source.on('data', ondata);\n\n  function ondrain() {\n    if (source.readable && source.resume) {\n      source.resume();\n    }\n  }\n\n  dest.on('drain', ondrain);\n\n  // If the 'end' option is not supplied, dest.end() will be called when\n  // source gets the 'end' or 'close' events.  Only dest.end() once.\n  if (!dest._isStdio && (!options || options.end !== false)) {\n    source.on('end', onend);\n    source.on('close', onclose);\n  }\n\n  var didOnEnd = false;\n  function onend() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n\n    dest.end();\n  }\n\n\n  function onclose() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n\n    if (typeof dest.destroy === 'function') dest.destroy();\n  }\n\n  // don't leave dangling pipes when there are errors.\n  function onerror(er) {\n    cleanup();\n    if (EE.listenerCount(this, 'error') === 0) {\n      throw er; // Unhandled stream error in pipe.\n    }\n  }\n\n  source.on('error', onerror);\n  dest.on('error', onerror);\n\n  // remove all the event listeners that were added.\n  function cleanup() {\n    source.removeListener('data', ondata);\n    dest.removeListener('drain', ondrain);\n\n    source.removeListener('end', onend);\n    source.removeListener('close', onclose);\n\n    source.removeListener('error', onerror);\n    dest.removeListener('error', onerror);\n\n    source.removeListener('end', cleanup);\n    source.removeListener('close', cleanup);\n\n    dest.removeListener('close', cleanup);\n  }\n\n  source.on('end', cleanup);\n  source.on('close', cleanup);\n\n  dest.on('close', cleanup);\n\n  dest.emit('pipe', source);\n\n  // Allow for unix-like usage: A.pipe(B).pipe(C)\n  return dest;\n};\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  checkListener(listener);\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = _getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0)\n      return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      checkListener(listener);\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      checkListener(listener);\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function eventListener() {\n      if (errorListener !== undefined) {\n        emitter.removeListener('error', errorListener);\n      }\n      resolve([].slice.call(arguments));\n    };\n    var errorListener;\n\n    // Adding an error listener is not optional because\n    // if an error is thrown on an event emitter we cannot\n    // guarantee that the actual event we are waiting will\n    // be fired. The result could be a silent way to create\n    // memory or file descriptor leaks, which is something\n    // we should avoid.\n    if (name !== 'error') {\n      errorListener = function errorListener(err) {\n        emitter.removeListener(name, eventListener);\n        reject(err);\n      };\n\n      emitter.once('error', errorListener);\n    }\n\n    emitter.once(name, eventListener);\n  });\n}\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nif (typeof process === 'undefined' ||\n    !process.version ||\n    process.version.indexOf('v0.') === 0 ||\n    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n  module.exports = { nextTick: nextTick };\n} else {\n  module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('\"callback\" argument must be a function');\n  }\n  var len = arguments.length;\n  var args, i;\n  switch (len) {\n  case 0:\n  case 1:\n    return process.nextTick(fn);\n  case 2:\n    return process.nextTick(function afterTickOne() {\n      fn.call(null, arg1);\n    });\n  case 3:\n    return process.nextTick(function afterTickTwo() {\n      fn.call(null, arg1, arg2);\n    });\n  case 4:\n    return process.nextTick(function afterTickThree() {\n      fn.call(null, arg1, arg2, arg3);\n    });\n  default:\n    args = new Array(len - 1);\n    i = 0;\n    while (i < args.length) {\n      args[i++] = arguments[i];\n    }\n    return process.nextTick(function afterTick() {\n      fn.apply(null, args);\n    });\n  }\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47)))\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(10)\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(124).Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n      return true;\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n      default:\n        if (retried) return; // undefined\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n    return nb;\n  }\n  return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n    return r;\n  }\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n\nvar TYPED_OK =  (typeof Uint8Array !== 'undefined') &&\n                (typeof Uint16Array !== 'undefined') &&\n                (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n  while (sources.length) {\n    var source = sources.shift();\n    if (!source) { continue; }\n\n    if (typeof source !== 'object') {\n      throw new TypeError(source + 'must be non-object');\n    }\n\n    for (var p in source) {\n      if (_has(source, p)) {\n        obj[p] = source[p];\n      }\n    }\n  }\n\n  return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n  if (buf.length === size) { return buf; }\n  if (buf.subarray) { return buf.subarray(0, size); }\n  buf.length = size;\n  return buf;\n};\n\n\nvar fnTyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    if (src.subarray && dest.subarray) {\n      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n      return;\n    }\n    // Fallback to ordinary array\n    for (var i = 0; i < len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function (chunks) {\n    var i, l, len, pos, chunk, result;\n\n    // calculate data length\n    len = 0;\n    for (i = 0, l = chunks.length; i < l; i++) {\n      len += chunks[i].length;\n    }\n\n    // join chunks\n    result = new Uint8Array(len);\n    pos = 0;\n    for (i = 0, l = chunks.length; i < l; i++) {\n      chunk = chunks[i];\n      result.set(chunk, pos);\n      pos += chunk.length;\n    }\n\n    return result;\n  }\n};\n\nvar fnUntyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    for (var i = 0; i < len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function (chunks) {\n    return [].concat.apply([], chunks);\n  }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n  if (on) {\n    exports.Buf8  = Uint8Array;\n    exports.Buf16 = Uint16Array;\n    exports.Buf32 = Int32Array;\n    exports.assign(exports, fnTyped);\n  } else {\n    exports.Buf8  = Array;\n    exports.Buf16 = Array;\n    exports.Buf32 = Array;\n    exports.assign(exports, fnUntyped);\n  }\n};\n\nexports.setTyped(TYPED_OK);\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Base = C_lib.Base;\n\t    var X32WordArray = C_lib.WordArray;\n\n\t    /**\n\t     * x64 namespace.\n\t     */\n\t    var C_x64 = C.x64 = {};\n\n\t    /**\n\t     * A 64-bit word.\n\t     */\n\t    var X64Word = C_x64.Word = Base.extend({\n\t        /**\n\t         * Initializes a newly created 64-bit word.\n\t         *\n\t         * @param {number} high The high 32 bits.\n\t         * @param {number} low The low 32 bits.\n\t         *\n\t         * @example\n\t         *\n\t         *     var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t         */\n\t        init: function (high, low) {\n\t            this.high = high;\n\t            this.low = low;\n\t        }\n\n\t        /**\n\t         * Bitwise NOTs this word.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after negating.\n\t         *\n\t         * @example\n\t         *\n\t         *     var negated = x64Word.not();\n\t         */\n\t        // not: function () {\n\t            // var high = ~this.high;\n\t            // var low = ~this.low;\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Bitwise ANDs this word with the passed word.\n\t         *\n\t         * @param {X64Word} word The x64-Word to AND with this word.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after ANDing.\n\t         *\n\t         * @example\n\t         *\n\t         *     var anded = x64Word.and(anotherX64Word);\n\t         */\n\t        // and: function (word) {\n\t            // var high = this.high & word.high;\n\t            // var low = this.low & word.low;\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Bitwise ORs this word with the passed word.\n\t         *\n\t         * @param {X64Word} word The x64-Word to OR with this word.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after ORing.\n\t         *\n\t         * @example\n\t         *\n\t         *     var ored = x64Word.or(anotherX64Word);\n\t         */\n\t        // or: function (word) {\n\t            // var high = this.high | word.high;\n\t            // var low = this.low | word.low;\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Bitwise XORs this word with the passed word.\n\t         *\n\t         * @param {X64Word} word The x64-Word to XOR with this word.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after XORing.\n\t         *\n\t         * @example\n\t         *\n\t         *     var xored = x64Word.xor(anotherX64Word);\n\t         */\n\t        // xor: function (word) {\n\t            // var high = this.high ^ word.high;\n\t            // var low = this.low ^ word.low;\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Shifts this word n bits to the left.\n\t         *\n\t         * @param {number} n The number of bits to shift.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after shifting.\n\t         *\n\t         * @example\n\t         *\n\t         *     var shifted = x64Word.shiftL(25);\n\t         */\n\t        // shiftL: function (n) {\n\t            // if (n < 32) {\n\t                // var high = (this.high << n) | (this.low >>> (32 - n));\n\t                // var low = this.low << n;\n\t            // } else {\n\t                // var high = this.low << (n - 32);\n\t                // var low = 0;\n\t            // }\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Shifts this word n bits to the right.\n\t         *\n\t         * @param {number} n The number of bits to shift.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after shifting.\n\t         *\n\t         * @example\n\t         *\n\t         *     var shifted = x64Word.shiftR(7);\n\t         */\n\t        // shiftR: function (n) {\n\t            // if (n < 32) {\n\t                // var low = (this.low >>> n) | (this.high << (32 - n));\n\t                // var high = this.high >>> n;\n\t            // } else {\n\t                // var low = this.high >>> (n - 32);\n\t                // var high = 0;\n\t            // }\n\n\t            // return X64Word.create(high, low);\n\t        // },\n\n\t        /**\n\t         * Rotates this word n bits to the left.\n\t         *\n\t         * @param {number} n The number of bits to rotate.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after rotating.\n\t         *\n\t         * @example\n\t         *\n\t         *     var rotated = x64Word.rotL(25);\n\t         */\n\t        // rotL: function (n) {\n\t            // return this.shiftL(n).or(this.shiftR(64 - n));\n\t        // },\n\n\t        /**\n\t         * Rotates this word n bits to the right.\n\t         *\n\t         * @param {number} n The number of bits to rotate.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after rotating.\n\t         *\n\t         * @example\n\t         *\n\t         *     var rotated = x64Word.rotR(7);\n\t         */\n\t        // rotR: function (n) {\n\t            // return this.shiftR(n).or(this.shiftL(64 - n));\n\t        // },\n\n\t        /**\n\t         * Adds this word with the passed word.\n\t         *\n\t         * @param {X64Word} word The x64-Word to add with this word.\n\t         *\n\t         * @return {X64Word} A new x64-Word object after adding.\n\t         *\n\t         * @example\n\t         *\n\t         *     var added = x64Word.add(anotherX64Word);\n\t         */\n\t        // add: function (word) {\n\t            // var low = (this.low + word.low) | 0;\n\t            // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t            // var high = (this.high + word.high + carry) | 0;\n\n\t            // return X64Word.create(high, low);\n\t        // }\n\t    });\n\n\t    /**\n\t     * An array of 64-bit words.\n\t     *\n\t     * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t     * @property {number} sigBytes The number of significant bytes in this word array.\n\t     */\n\t    var X64WordArray = C_x64.WordArray = Base.extend({\n\t        /**\n\t         * Initializes a newly created word array.\n\t         *\n\t         * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t         * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.x64.WordArray.create();\n\t         *\n\t         *     var wordArray = CryptoJS.x64.WordArray.create([\n\t         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t         *     ]);\n\t         *\n\t         *     var wordArray = CryptoJS.x64.WordArray.create([\n\t         *         CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t         *         CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t         *     ], 10);\n\t         */\n\t        init: function (words, sigBytes) {\n\t            words = this.words = words || [];\n\n\t            if (sigBytes != undefined) {\n\t                this.sigBytes = sigBytes;\n\t            } else {\n\t                this.sigBytes = words.length * 8;\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts this 64-bit word array to a 32-bit word array.\n\t         *\n\t         * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     var x32WordArray = x64WordArray.toX32();\n\t         */\n\t        toX32: function () {\n\t            // Shortcuts\n\t            var x64Words = this.words;\n\t            var x64WordsLength = x64Words.length;\n\n\t            // Convert\n\t            var x32Words = [];\n\t            for (var i = 0; i < x64WordsLength; i++) {\n\t                var x64Word = x64Words[i];\n\t                x32Words.push(x64Word.high);\n\t                x32Words.push(x64Word.low);\n\t            }\n\n\t            return X32WordArray.create(x32Words, this.sigBytes);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this word array.\n\t         *\n\t         * @return {X64WordArray} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = x64WordArray.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\n\t            // Clone \"words\" array\n\t            var words = clone.words = this.words.slice(0);\n\n\t            // Clone each X64Word object\n\t            var wordsLength = words.length;\n\t            for (var i = 0; i < wordsLength; i++) {\n\t                words[i] = words[i].clone();\n\t            }\n\n\t            return clone;\n\t        }\n\t    });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(29);\nvar dPs = __webpack_require__(258);\nvar enumBugKeys = __webpack_require__(183);\nvar IE_PROTO = __webpack_require__(181)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = __webpack_require__(177)('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  __webpack_require__(261).appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(180);\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(131)('meta');\nvar isObject = __webpack_require__(22);\nvar has = __webpack_require__(51);\nvar setDesc = __webpack_require__(26).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !__webpack_require__(52)(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(237);\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports) {\n\nvar TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n  this.table = new Uint16Array(16);   /* table of code length counts */\n  this.trans = new Uint16Array(288);  /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n  this.source = source;\n  this.sourceIndex = 0;\n  this.tag = 0;\n  this.bitcount = 0;\n  \n  this.dest = dest;\n  this.destLen = 0;\n  \n  this.ltree = new Tree();  /* dynamic length/symbol tree */\n  this.dtree = new Tree();  /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n  16, 17, 18, 0, 8, 7, 9, 6,\n  10, 5, 11, 4, 12, 3, 13, 2,\n  14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n  var i, sum;\n\n  /* build bits table */\n  for (i = 0; i < delta; ++i) bits[i] = 0;\n  for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n  /* build base table */\n  for (sum = first, i = 0; i < 30; ++i) {\n    base[i] = sum;\n    sum += 1 << bits[i];\n  }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n  var i;\n\n  /* build fixed length tree */\n  for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n  lt.table[7] = 24;\n  lt.table[8] = 152;\n  lt.table[9] = 112;\n\n  for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n  for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n  for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n  for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n  /* build fixed distance tree */\n  for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n  dt.table[5] = 32;\n\n  for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n  var i, sum;\n\n  /* clear code length count table */\n  for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n  /* scan symbol lengths, and sum code length counts */\n  for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n  t.table[0] = 0;\n\n  /* compute offset table for distribution sort */\n  for (sum = 0, i = 0; i < 16; ++i) {\n    offs[i] = sum;\n    sum += t.table[i];\n  }\n\n  /* create code->symbol translation table (symbols sorted by code) */\n  for (i = 0; i < num; ++i) {\n    if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n  }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n  /* check if tag is empty */\n  if (!d.bitcount--) {\n    /* load next tag */\n    d.tag = d.source[d.sourceIndex++];\n    d.bitcount = 7;\n  }\n\n  /* shift bit out of tag */\n  var bit = d.tag & 1;\n  d.tag >>>= 1;\n\n  return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n  if (!num)\n    return base;\n\n  while (d.bitcount < 24) {\n    d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n    d.bitcount += 8;\n  }\n\n  var val = d.tag & (0xffff >>> (16 - num));\n  d.tag >>>= num;\n  d.bitcount -= num;\n  return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n  while (d.bitcount < 24) {\n    d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n    d.bitcount += 8;\n  }\n  \n  var sum = 0, cur = 0, len = 0;\n  var tag = d.tag;\n\n  /* get more bits while code value is above sum */\n  do {\n    cur = 2 * cur + (tag & 1);\n    tag >>>= 1;\n    ++len;\n\n    sum += t.table[len];\n    cur -= t.table[len];\n  } while (cur >= 0);\n  \n  d.tag = tag;\n  d.bitcount -= len;\n\n  return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n  var hlit, hdist, hclen;\n  var i, num, length;\n\n  /* get 5 bits HLIT (257-286) */\n  hlit = tinf_read_bits(d, 5, 257);\n\n  /* get 5 bits HDIST (1-32) */\n  hdist = tinf_read_bits(d, 5, 1);\n\n  /* get 4 bits HCLEN (4-19) */\n  hclen = tinf_read_bits(d, 4, 4);\n\n  for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n  /* read code lengths for code length alphabet */\n  for (i = 0; i < hclen; ++i) {\n    /* get 3 bits code length (0-7) */\n    var clen = tinf_read_bits(d, 3, 0);\n    lengths[clcidx[i]] = clen;\n  }\n\n  /* build code length tree */\n  tinf_build_tree(code_tree, lengths, 0, 19);\n\n  /* decode code lengths for the dynamic trees */\n  for (num = 0; num < hlit + hdist;) {\n    var sym = tinf_decode_symbol(d, code_tree);\n\n    switch (sym) {\n      case 16:\n        /* copy previous code length 3-6 times (read 2 bits) */\n        var prev = lengths[num - 1];\n        for (length = tinf_read_bits(d, 2, 3); length; --length) {\n          lengths[num++] = prev;\n        }\n        break;\n      case 17:\n        /* repeat code length 0 for 3-10 times (read 3 bits) */\n        for (length = tinf_read_bits(d, 3, 3); length; --length) {\n          lengths[num++] = 0;\n        }\n        break;\n      case 18:\n        /* repeat code length 0 for 11-138 times (read 7 bits) */\n        for (length = tinf_read_bits(d, 7, 11); length; --length) {\n          lengths[num++] = 0;\n        }\n        break;\n      default:\n        /* values 0-15 represent the actual code lengths */\n        lengths[num++] = sym;\n        break;\n    }\n  }\n\n  /* build dynamic trees */\n  tinf_build_tree(lt, lengths, 0, hlit);\n  tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n  while (1) {\n    var sym = tinf_decode_symbol(d, lt);\n\n    /* check for end of block */\n    if (sym === 256) {\n      return TINF_OK;\n    }\n\n    if (sym < 256) {\n      d.dest[d.destLen++] = sym;\n    } else {\n      var length, dist, offs;\n      var i;\n\n      sym -= 257;\n\n      /* possibly get more bits from length code */\n      length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n      dist = tinf_decode_symbol(d, dt);\n\n      /* possibly get more bits from distance code */\n      offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n      /* copy match */\n      for (i = offs; i < offs + length; ++i) {\n        d.dest[d.destLen++] = d.dest[i];\n      }\n    }\n  }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n  var length, invlength;\n  var i;\n  \n  /* unread from bitbuffer */\n  while (d.bitcount > 8) {\n    d.sourceIndex--;\n    d.bitcount -= 8;\n  }\n\n  /* get length */\n  length = d.source[d.sourceIndex + 1];\n  length = 256 * length + d.source[d.sourceIndex];\n\n  /* get one's complement of length */\n  invlength = d.source[d.sourceIndex + 3];\n  invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n  /* check length */\n  if (length !== (~invlength & 0x0000ffff))\n    return TINF_DATA_ERROR;\n\n  d.sourceIndex += 4;\n\n  /* copy block */\n  for (i = length; i; --i)\n    d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n  /* make sure we start next block on a byte boundary */\n  d.bitcount = 0;\n\n  return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n  var d = new Data(source, dest);\n  var bfinal, btype, res;\n\n  do {\n    /* read final block flag */\n    bfinal = tinf_getbit(d);\n\n    /* read block type (2 bits) */\n    btype = tinf_read_bits(d, 2, 0);\n\n    /* decompress block */\n    switch (btype) {\n      case 0:\n        /* decompress uncompressed block */\n        res = tinf_inflate_uncompressed_block(d);\n        break;\n      case 1:\n        /* decompress block with fixed huffman trees */\n        res = tinf_inflate_block_data(d, sltree, sdtree);\n        break;\n      case 2:\n        /* decompress block with dynamic huffman trees */\n        tinf_decode_trees(d, d.ltree, d.dtree);\n        res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n        break;\n      default:\n        res = TINF_DATA_ERROR;\n    }\n\n    if (res !== TINF_OK)\n      throw new Error('Data error');\n\n  } while (!bfinal);\n\n  if (d.destLen < d.dest.length) {\n    if (typeof d.dest.slice === 'function')\n      return d.dest.slice(0, d.destLen);\n    else\n      return d.dest.subarray(0, d.destLen);\n  }\n  \n  return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar isArrayIteratorMethod = __webpack_require__(152);\nvar toLength = __webpack_require__(8);\nvar bind = __webpack_require__(96);\nvar getIteratorMethod = __webpack_require__(153);\nvar iteratorClose = __webpack_require__(215);\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  next = iterator.next;\n  while (!(step = next.call(iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator);\n      throw error;\n    }\n    if (typeof result == 'object' && result && result instanceof Result) return result;\n  } return new Result(false);\n};\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar isObject = __webpack_require__(14);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar createNonEnumerableProperty = __webpack_require__(18);\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(141);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar setGlobal = __webpack_require__(139);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(56);\nvar store = __webpack_require__(141);\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.8.2',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(55);\nvar definePropertyModule = __webpack_require__(16);\nvar createPropertyDescriptor = __webpack_require__(40);\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar userAgent = __webpack_require__(149);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(34);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(19);\nvar toAbsoluteIndex = __webpack_require__(43);\nvar toLength = __webpack_require__(8);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(6);\nvar create = __webpack_require__(58);\nvar definePropertyModule = __webpack_require__(16);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(6);\nvar Iterators = __webpack_require__(97);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(117);\nvar Iterators = __webpack_require__(97);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(3);\nvar DESCRIPTORS = __webpack_require__(13);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(221);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar redefineAll = __webpack_require__(222);\nvar fails = __webpack_require__(4);\nvar anInstance = __webpack_require__(157);\nvar toInteger = __webpack_require__(35);\nvar toLength = __webpack_require__(8);\nvar toIndex = __webpack_require__(223);\nvar IEEE754 = __webpack_require__(325);\nvar getPrototypeOf = __webpack_require__(60);\nvar setPrototypeOf = __webpack_require__(45);\nvar getOwnPropertyNames = __webpack_require__(57).f;\nvar defineProperty = __webpack_require__(16).f;\nvar arrayFill = __webpack_require__(150);\nvar setToStringTag = __webpack_require__(95);\nvar InternalStateModule = __webpack_require__(42);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = bytes.slice(start, start + count);\n  return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: arrayFill.call(new Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1); // eslint-disable-line no-new\n  }) || fails(function () {\n    new NativeArrayBuffer(); // eslint-disable-line no-new\n    new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n    new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n    return NativeArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) {\n        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n      }\n    }\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf($DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var nativeSetInt8 = $DataViewPrototype.setInt8;\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(34);\nvar definePropertyModule = __webpack_require__(16);\nvar wellKnownSymbol = __webpack_require__(6);\nvar DESCRIPTORS = __webpack_require__(13);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(35);\nvar requireObjectCoercible = __webpack_require__(33);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(159).charAt;\nvar InternalStateModule = __webpack_require__(42);\nvar defineIterator = __webpack_require__(217);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(162);\nvar anObject = __webpack_require__(11);\nvar toLength = __webpack_require__(8);\nvar requireObjectCoercible = __webpack_require__(33);\nvar advanceStringIndex = __webpack_require__(163);\nvar regExpExec = __webpack_require__(164);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : regexp[MATCH];\n      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative(nativeMatch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(118);\nvar redefine = __webpack_require__(25);\nvar fails = __webpack_require__(4);\nvar wellKnownSymbol = __webpack_require__(6);\nvar regexpExec = __webpack_require__(119);\nvar createNonEnumerableProperty = __webpack_require__(18);\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !(\n      REPLACE_SUPPORTS_NAMED_GROUPS &&\n      REPLACE_KEEPS_$0 &&\n      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    )) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      if (regexp.exec === regexpExec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n        }\n        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n      }\n      return { done: false };\n    }, {\n      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    });\n    var stringMethod = methods[0];\n    var regexMethod = methods[1];\n\n    redefine(String.prototype, KEY, stringMethod);\n    redefine(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return regexMethod.call(string, this); }\n    );\n  }\n\n  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(159).charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(41);\nvar regexpExec = __webpack_require__(119);\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n\n  if (classof(R) !== 'RegExp') {\n    throw TypeError('RegExp#exec called on incompatible receiver');\n  }\n\n  return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(241);\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(166);\nexports.Duplex = __webpack_require__(48);\nexports.Transform = __webpack_require__(244);\nexports.PassThrough = __webpack_require__(351);\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process, global) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(123);\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(98));\nutil.inherits = __webpack_require__(86);\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n  deprecate: __webpack_require__(350)\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(242);\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(124).Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = __webpack_require__(243);\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(48);\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  var hwm = options.highWaterMark;\n  var writableHwm = options.writableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function () {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function (object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function (object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(48);\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n    return new Writable(options);\n  }\n\n  this._writableState = new WritableState(options, this);\n\n  // legacy.\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n\n    if (typeof options.writev === 'function') this._writev = options.writev;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new Error('write after end');\n  // TODO: defer error events consistently everywhere, not just the cb\n  stream.emit('error', er);\n  pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var valid = true;\n  var er = false;\n\n  if (chunk === null) {\n    er = new TypeError('May not write null values to stream');\n  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  if (er) {\n    stream.emit('error', er);\n    pna.nextTick(cb, er);\n    valid = false;\n  }\n  return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n  if (typeof cb !== 'function') cb = nop;\n\n  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  var state = this._writableState;\n\n  state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n\n    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n\n  state.length += len;\n\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    pna.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    pna.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n\n  onwriteStateUpdate(state);\n\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state);\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      /*<replacement>*/\n      asyncWrite(afterWrite, stream, state, finished, cb);\n      /*</replacement>*/\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      stream.emit('error', err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function') {\n      state.pendingcb++;\n      state.finalCalled = true;\n      pna.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n    }\n  }\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n  if (state.corkedRequestsFree) {\n    state.corkedRequestsFree.next = corkReq;\n  } else {\n    state.corkedRequestsFree = corkReq;\n  }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  get: function () {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  this.end();\n  cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47), __webpack_require__(24)))\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n  if (isUndefined(debugEnviron))\n    debugEnviron = process.env.NODE_DEBUG || '';\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').substr(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.substr(1, name.length - 2);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(358);\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = __webpack_require__(359);\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb, null, ret) },\n            function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47)))\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Reusable object\n\t    var W = [];\n\n\t    /**\n\t     * SHA-1 hash algorithm.\n\t     */\n\t    var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init([\n\t                0x67452301, 0xefcdab89,\n\t                0x98badcfe, 0x10325476,\n\t                0xc3d2e1f0\n\t            ]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcut\n\t            var H = this._hash.words;\n\n\t            // Working variables\n\t            var a = H[0];\n\t            var b = H[1];\n\t            var c = H[2];\n\t            var d = H[3];\n\t            var e = H[4];\n\n\t            // Computation\n\t            for (var i = 0; i < 80; i++) {\n\t                if (i < 16) {\n\t                    W[i] = M[offset + i] | 0;\n\t                } else {\n\t                    var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t                    W[i] = (n << 1) | (n >>> 31);\n\t                }\n\n\t                var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t                if (i < 20) {\n\t                    t += ((b & c) | (~b & d)) + 0x5a827999;\n\t                } else if (i < 40) {\n\t                    t += (b ^ c ^ d) + 0x6ed9eba1;\n\t                } else if (i < 60) {\n\t                    t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t                } else /* if (i < 80) */ {\n\t                    t += (b ^ c ^ d) - 0x359d3e2a;\n\t                }\n\n\t                e = d;\n\t                d = c;\n\t                c = (b << 30) | (b >>> 2);\n\t                b = a;\n\t                a = t;\n\t            }\n\n\t            // Intermediate hash value\n\t            H[0] = (H[0] + a) | 0;\n\t            H[1] = (H[1] + b) | 0;\n\t            H[2] = (H[2] + c) | 0;\n\t            H[3] = (H[3] + d) | 0;\n\t            H[4] = (H[4] + e) | 0;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t            data.sigBytes = dataWords.length * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Return final computed hash\n\t            return this._hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA1('message');\n\t     *     var hash = CryptoJS.SHA1(wordArray);\n\t     */\n\t    C.SHA1 = Hasher._createHelper(SHA1);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA1(message, key);\n\t     */\n\t    C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Base = C_lib.Base;\n\t    var C_enc = C.enc;\n\t    var Utf8 = C_enc.Utf8;\n\t    var C_algo = C.algo;\n\n\t    /**\n\t     * HMAC algorithm.\n\t     */\n\t    var HMAC = C_algo.HMAC = Base.extend({\n\t        /**\n\t         * Initializes a newly created HMAC.\n\t         *\n\t         * @param {Hasher} hasher The hash algorithm to use.\n\t         * @param {WordArray|string} key The secret key.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t         */\n\t        init: function (hasher, key) {\n\t            // Init hasher\n\t            hasher = this._hasher = new hasher.init();\n\n\t            // Convert string to WordArray, else assume WordArray already\n\t            if (typeof key == 'string') {\n\t                key = Utf8.parse(key);\n\t            }\n\n\t            // Shortcuts\n\t            var hasherBlockSize = hasher.blockSize;\n\t            var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t            // Allow arbitrary length keys\n\t            if (key.sigBytes > hasherBlockSizeBytes) {\n\t                key = hasher.finalize(key);\n\t            }\n\n\t            // Clamp excess bits\n\t            key.clamp();\n\n\t            // Clone key for inner and outer pads\n\t            var oKey = this._oKey = key.clone();\n\t            var iKey = this._iKey = key.clone();\n\n\t            // Shortcuts\n\t            var oKeyWords = oKey.words;\n\t            var iKeyWords = iKey.words;\n\n\t            // XOR keys with pad constants\n\t            for (var i = 0; i < hasherBlockSize; i++) {\n\t                oKeyWords[i] ^= 0x5c5c5c5c;\n\t                iKeyWords[i] ^= 0x36363636;\n\t            }\n\t            oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this HMAC to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     hmacHasher.reset();\n\t         */\n\t        reset: function () {\n\t            // Shortcut\n\t            var hasher = this._hasher;\n\n\t            // Reset\n\t            hasher.reset();\n\t            hasher.update(this._iKey);\n\t        },\n\n\t        /**\n\t         * Updates this HMAC with a message.\n\t         *\n\t         * @param {WordArray|string} messageUpdate The message to append.\n\t         *\n\t         * @return {HMAC} This HMAC instance.\n\t         *\n\t         * @example\n\t         *\n\t         *     hmacHasher.update('message');\n\t         *     hmacHasher.update(wordArray);\n\t         */\n\t        update: function (messageUpdate) {\n\t            this._hasher.update(messageUpdate);\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Finalizes the HMAC computation.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t         *\n\t         * @return {WordArray} The HMAC.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hmac = hmacHasher.finalize();\n\t         *     var hmac = hmacHasher.finalize('message');\n\t         *     var hmac = hmacHasher.finalize(wordArray);\n\t         */\n\t        finalize: function (messageUpdate) {\n\t            // Shortcut\n\t            var hasher = this._hasher;\n\n\t            // Compute HMAC\n\t            var innerHash = hasher.finalize(messageUpdate);\n\t            hasher.reset();\n\t            var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t            return hmac;\n\t        }\n\t    });\n\t}());\n\n\n}));\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {// Generated by CoffeeScript 1.7.1\n(function() {\n  var DecodeStream, iconv;\n\n  try {\n    iconv = __webpack_require__(171);\n  } catch (_error) {}\n\n  DecodeStream = (function() {\n    var key;\n\n    function DecodeStream(buffer) {\n      this.buffer = buffer;\n      this.pos = 0;\n      this.length = this.buffer.length;\n    }\n\n    DecodeStream.TYPES = {\n      UInt8: 1,\n      UInt16: 2,\n      UInt24: 3,\n      UInt32: 4,\n      Int8: 1,\n      Int16: 2,\n      Int24: 3,\n      Int32: 4,\n      Float: 4,\n      Double: 8\n    };\n\n    for (key in Buffer.prototype) {\n      if (key.slice(0, 4) === 'read') {\n        (function(key) {\n          var bytes;\n          bytes = DecodeStream.TYPES[key.replace(/read|[BL]E/g, '')];\n          return DecodeStream.prototype[key] = function() {\n            var ret;\n            ret = this.buffer[key](this.pos);\n            this.pos += bytes;\n            return ret;\n          };\n        })(key);\n      }\n    }\n\n    DecodeStream.prototype.readString = function(length, encoding) {\n      var buf, byte, i, _i, _ref;\n      if (encoding == null) {\n        encoding = 'ascii';\n      }\n      switch (encoding) {\n        case 'utf16le':\n        case 'ucs2':\n        case 'utf8':\n        case 'ascii':\n          return this.buffer.toString(encoding, this.pos, this.pos += length);\n        case 'utf16be':\n          buf = new Buffer(this.readBuffer(length));\n          for (i = _i = 0, _ref = buf.length - 1; _i < _ref; i = _i += 2) {\n            byte = buf[i];\n            buf[i] = buf[i + 1];\n            buf[i + 1] = byte;\n          }\n          return buf.toString('utf16le');\n        default:\n          buf = this.readBuffer(length);\n          if (iconv) {\n            try {\n              return iconv.decode(buf, encoding);\n            } catch (_error) {}\n          }\n          return buf;\n      }\n    };\n\n    DecodeStream.prototype.readBuffer = function(length) {\n      return this.buffer.slice(this.pos, this.pos += length);\n    };\n\n    DecodeStream.prototype.readUInt24BE = function() {\n      return (this.readUInt16BE() << 8) + this.readUInt8();\n    };\n\n    DecodeStream.prototype.readUInt24LE = function() {\n      return this.readUInt16LE() + (this.readUInt8() << 16);\n    };\n\n    DecodeStream.prototype.readInt24BE = function() {\n      return (this.readInt16BE() << 8) + this.readUInt8();\n    };\n\n    DecodeStream.prototype.readInt24LE = function() {\n      return this.readUInt16LE() + (this.readInt8() << 16);\n    };\n\n    return DecodeStream;\n\n  })();\n\n  module.exports = DecodeStream;\n\n}).call(this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Buffer = __webpack_require__(37).Buffer;\n\nvar bomHandling = __webpack_require__(395),\n    iconv = module.exports;\n\n// All codecs and aliases are kept here, keyed by encoding name/alias.\n// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.\niconv.encodings = null;\n\n// Characters emitted in case of error.\niconv.defaultCharUnicode = '�';\niconv.defaultCharSingleByte = '?';\n\n// Public API.\niconv.encode = function encode(str, encoding, options) {\n    str = \"\" + (str || \"\"); // Ensure string.\n\n    var encoder = iconv.getEncoder(encoding, options);\n\n    var res = encoder.write(str);\n    var trail = encoder.end();\n    \n    return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;\n}\n\niconv.decode = function decode(buf, encoding, options) {\n    if (typeof buf === 'string') {\n        if (!iconv.skipDecodeWarning) {\n            console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');\n            iconv.skipDecodeWarning = true;\n        }\n\n        buf = Buffer.from(\"\" + (buf || \"\"), \"binary\"); // Ensure buffer.\n    }\n\n    var decoder = iconv.getDecoder(encoding, options);\n\n    var res = decoder.write(buf);\n    var trail = decoder.end();\n\n    return trail ? (res + trail) : res;\n}\n\niconv.encodingExists = function encodingExists(enc) {\n    try {\n        iconv.getCodec(enc);\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n\n// Legacy aliases to convert functions\niconv.toEncoding = iconv.encode;\niconv.fromEncoding = iconv.decode;\n\n// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.\niconv._codecDataCache = {};\niconv.getCodec = function getCodec(encoding) {\n    if (!iconv.encodings)\n        iconv.encodings = __webpack_require__(396); // Lazy load all encoding definitions.\n    \n    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n    var enc = iconv._canonicalizeEncoding(encoding);\n\n    // Traverse iconv.encodings to find actual codec.\n    var codecOptions = {};\n    while (true) {\n        var codec = iconv._codecDataCache[enc];\n        if (codec)\n            return codec;\n\n        var codecDef = iconv.encodings[enc];\n\n        switch (typeof codecDef) {\n            case \"string\": // Direct alias to other encoding.\n                enc = codecDef;\n                break;\n\n            case \"object\": // Alias with options. Can be layered.\n                for (var key in codecDef)\n                    codecOptions[key] = codecDef[key];\n\n                if (!codecOptions.encodingName)\n                    codecOptions.encodingName = enc;\n                \n                enc = codecDef.type;\n                break;\n\n            case \"function\": // Codec itself.\n                if (!codecOptions.encodingName)\n                    codecOptions.encodingName = enc;\n\n                // The codec function must load all tables and return object with .encoder and .decoder methods.\n                // It'll be called only once (for each different options object).\n                codec = new codecDef(codecOptions, iconv);\n\n                iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.\n                return codec;\n\n            default:\n                throw new Error(\"Encoding not recognized: '\" + encoding + \"' (searched as: '\"+enc+\"')\");\n        }\n    }\n}\n\niconv._canonicalizeEncoding = function(encoding) {\n    // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n    return (''+encoding).toLowerCase().replace(/:\\d{4}$|[^0-9a-z]/g, \"\");\n}\n\niconv.getEncoder = function getEncoder(encoding, options) {\n    var codec = iconv.getCodec(encoding),\n        encoder = new codec.encoder(options, codec);\n\n    if (codec.bomAware && options && options.addBOM)\n        encoder = new bomHandling.PrependBOM(encoder, options);\n\n    return encoder;\n}\n\niconv.getDecoder = function getDecoder(encoding, options) {\n    var codec = iconv.getCodec(encoding),\n        decoder = new codec.decoder(options, codec);\n\n    if (codec.bomAware && !(options && options.stripBOM === false))\n        decoder = new bomHandling.StripBOM(decoder, options);\n\n    return decoder;\n}\n\n// Streaming API\n// NOTE: Streaming API naturally depends on 'stream' module from Node.js. Unfortunately in browser environments this module can add\n// up to 100Kb to the output bundle. To avoid unnecessary code bloat, we don't enable Streaming API in browser by default.\n// If you would like to enable it explicitly, please add the following code to your app:\n// > iconv.enableStreamingAPI(require('stream'));\niconv.enableStreamingAPI = function enableStreamingAPI(stream_module) {\n    if (iconv.supportsStreams)\n        return;\n\n    // Dependency-inject stream module to create IconvLite stream classes.\n    var streams = __webpack_require__(411)(stream_module);\n\n    // Not public API yet, but expose the stream classes.\n    iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;\n    iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;\n\n    // Streaming API.\n    iconv.encodeStream = function encodeStream(encoding, options) {\n        return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);\n    }\n\n    iconv.decodeStream = function decodeStream(encoding, options) {\n        return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);\n    }\n\n    iconv.supportsStreams = true;\n}\n\n// Enable Streaming API automatically if 'stream' module is available and non-empty (the majority of environments).\nvar stream_module;\ntry {\n    stream_module = __webpack_require__(412);\n} catch (e) {}\n\nif (stream_module && stream_module.Transform) {\n    iconv.enableStreamingAPI(stream_module);\n\n} else {\n    // In rare cases where 'stream' module is not available by default, throw a helpful exception.\n    iconv.encodeStream = iconv.decodeStream = function() {\n        throw new Error(\"iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.\");\n    };\n}\n\nif (false) {}\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"0\\\",\\\"\\\\u0000\\\",127,\\\"€\\\"],[\\\"8140\\\",\\\"丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪\\\",5,\\\"乲乴\\\",9,\\\"乿\\\",6,\\\"亇亊\\\"],[\\\"8180\\\",\\\"亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂\\\",6,\\\"伋伌伒\\\",4,\\\"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾\\\",4,\\\"佄佅佇\\\",5,\\\"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢\\\"],[\\\"8240\\\",\\\"侤侫侭侰\\\",4,\\\"侶\\\",8,\\\"俀俁係俆俇俈俉俋俌俍俒\\\",4,\\\"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿\\\",11],[\\\"8280\\\",\\\"個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯\\\",10,\\\"倻倽倿偀偁偂偄偅偆偉偊偋偍偐\\\",4,\\\"偖偗偘偙偛偝\\\",7,\\\"偦\\\",5,\\\"偭\\\",8,\\\"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎\\\",20,\\\"傤傦傪傫傭\\\",4,\\\"傳\\\",6,\\\"傼\\\"],[\\\"8340\\\",\\\"傽\\\",17,\\\"僐\\\",5,\\\"僗僘僙僛\\\",10,\\\"僨僩僪僫僯僰僱僲僴僶\\\",4,\\\"僼\\\",9,\\\"儈\\\"],[\\\"8380\\\",\\\"儉儊儌\\\",5,\\\"儓\\\",13,\\\"儢\\\",28,\\\"兂兇兊兌兎兏児兒兓兗兘兙兛兝\\\",4,\\\"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦\\\",4,\\\"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒\\\",5],[\\\"8440\\\",\\\"凘凙凚凜凞凟凢凣凥\\\",5,\\\"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄\\\",5,\\\"剋剎剏剒剓剕剗剘\\\"],[\\\"8480\\\",\\\"剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳\\\",9,\\\"剾劀劃\\\",4,\\\"劉\\\",6,\\\"劑劒劔\\\",6,\\\"劜劤劥劦劧劮劯劰労\\\",9,\\\"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務\\\",5,\\\"勠勡勢勣勥\\\",10,\\\"勱\\\",7,\\\"勻勼勽匁匂匃匄匇匉匊匋匌匎\\\"],[\\\"8540\\\",\\\"匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯\\\",9,\\\"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏\\\"],[\\\"8580\\\",\\\"厐\\\",4,\\\"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯\\\",6,\\\"厷厸厹厺厼厽厾叀參\\\",4,\\\"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝\\\",4,\\\"呣呥呧呩\\\",7,\\\"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡\\\"],[\\\"8640\\\",\\\"咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠\\\",4,\\\"哫哬哯哰哱哴\\\",5,\\\"哻哾唀唂唃唄唅唈唊\\\",4,\\\"唒唓唕\\\",5,\\\"唜唝唞唟唡唥唦\\\"],[\\\"8680\\\",\\\"唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋\\\",4,\\\"啑啒啓啔啗\\\",4,\\\"啝啞啟啠啢啣啨啩啫啯\\\",5,\\\"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠\\\",6,\\\"喨\\\",8,\\\"喲喴営喸喺喼喿\\\",4,\\\"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗\\\",4,\\\"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸\\\",4,\\\"嗿嘂嘃嘄嘅\\\"],[\\\"8740\\\",\\\"嘆嘇嘊嘋嘍嘐\\\",7,\\\"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀\\\",11,\\\"噏\\\",4,\\\"噕噖噚噛噝\\\",4],[\\\"8780\\\",\\\"噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽\\\",7,\\\"嚇\\\",6,\\\"嚐嚑嚒嚔\\\",14,\\\"嚤\\\",10,\\\"嚰\\\",6,\\\"嚸嚹嚺嚻嚽\\\",12,\\\"囋\\\",8,\\\"囕囖囘囙囜団囥\\\",5,\\\"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國\\\",6],[\\\"8840\\\",\\\"園\\\",9,\\\"圝圞圠圡圢圤圥圦圧圫圱圲圴\\\",4,\\\"圼圽圿坁坃坄坅坆坈坉坋坒\\\",4,\\\"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀\\\"],[\\\"8880\\\",\\\"垁垇垈垉垊垍\\\",4,\\\"垔\\\",6,\\\"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹\\\",8,\\\"埄\\\",6,\\\"埌埍埐埑埓埖埗埛埜埞埡埢埣埥\\\",7,\\\"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥\\\",4,\\\"堫\\\",4,\\\"報堲堳場堶\\\",7],[\\\"8940\\\",\\\"堾\\\",5,\\\"塅\\\",6,\\\"塎塏塐塒塓塕塖塗塙\\\",4,\\\"塟\\\",5,\\\"塦\\\",4,\\\"塭\\\",16,\\\"塿墂墄墆墇墈墊墋墌\\\"],[\\\"8980\\\",\\\"墍\\\",4,\\\"墔\\\",4,\\\"墛墜墝墠\\\",7,\\\"墪\\\",17,\\\"墽墾墿壀壂壃壄壆\\\",10,\\\"壒壓壔壖\\\",13,\\\"壥\\\",5,\\\"壭壯壱売壴壵壷壸壺\\\",7,\\\"夃夅夆夈\\\",4,\\\"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻\\\"],[\\\"8a40\\\",\\\"夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛\\\",4,\\\"奡奣奤奦\\\",12,\\\"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦\\\"],[\\\"8a80\\\",\\\"妧妬妭妰妱妳\\\",5,\\\"妺妼妽妿\\\",6,\\\"姇姈姉姌姍姎姏姕姖姙姛姞\\\",4,\\\"姤姦姧姩姪姫姭\\\",11,\\\"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪\\\",6,\\\"娳娵娷\\\",4,\\\"娽娾娿婁\\\",4,\\\"婇婈婋\\\",9,\\\"婖婗婘婙婛\\\",5],[\\\"8b40\\\",\\\"婡婣婤婥婦婨婩婫\\\",8,\\\"婸婹婻婼婽婾媀\\\",17,\\\"媓\\\",6,\\\"媜\\\",13,\\\"媫媬\\\"],[\\\"8b80\\\",\\\"媭\\\",4,\\\"媴媶媷媹\\\",4,\\\"媿嫀嫃\\\",5,\\\"嫊嫋嫍\\\",4,\\\"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬\\\",4,\\\"嫲\\\",22,\\\"嬊\\\",11,\\\"嬘\\\",25,\\\"嬳嬵嬶嬸\\\",7,\\\"孁\\\",6],[\\\"8c40\\\",\\\"孈\\\",7,\\\"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏\\\"],[\\\"8c80\\\",\\\"寑寔\\\",8,\\\"寠寢寣實寧審\\\",4,\\\"寯寱\\\",6,\\\"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧\\\",6,\\\"屰屲\\\",6,\\\"屻屼屽屾岀岃\\\",4,\\\"岉岊岋岎岏岒岓岕岝\\\",4,\\\"岤\\\",4],[\\\"8d40\\\",\\\"岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅\\\",5,\\\"峌\\\",5,\\\"峓\\\",5,\\\"峚\\\",6,\\\"峢峣峧峩峫峬峮峯峱\\\",9,\\\"峼\\\",4],[\\\"8d80\\\",\\\"崁崄崅崈\\\",5,\\\"崏\\\",4,\\\"崕崗崘崙崚崜崝崟\\\",4,\\\"崥崨崪崫崬崯\\\",4,\\\"崵\\\",7,\\\"崿\\\",7,\\\"嵈嵉嵍\\\",10,\\\"嵙嵚嵜嵞\\\",10,\\\"嵪嵭嵮嵰嵱嵲嵳嵵\\\",12,\\\"嶃\\\",21,\\\"嶚嶛嶜嶞嶟嶠\\\"],[\\\"8e40\\\",\\\"嶡\\\",21,\\\"嶸\\\",12,\\\"巆\\\",6,\\\"巎\\\",12,\\\"巜巟巠巣巤巪巬巭\\\"],[\\\"8e80\\\",\\\"巰巵巶巸\\\",4,\\\"巿帀帄帇帉帊帋帍帎帒帓帗帞\\\",7,\\\"帨\\\",4,\\\"帯帰帲\\\",4,\\\"帹帺帾帿幀幁幃幆\\\",5,\\\"幍\\\",6,\\\"幖\\\",4,\\\"幜幝幟幠幣\\\",14,\\\"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨\\\",4,\\\"庮\\\",4,\\\"庴庺庻庼庽庿\\\",6],[\\\"8f40\\\",\\\"廆廇廈廋\\\",5,\\\"廔廕廗廘廙廚廜\\\",11,\\\"廩廫\\\",8,\\\"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤\\\"],[\\\"8f80\\\",\\\"弨弫弬弮弰弲\\\",6,\\\"弻弽弾弿彁\\\",14,\\\"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢\\\",5,\\\"復徫徬徯\\\",5,\\\"徶徸徹徺徻徾\\\",4,\\\"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇\\\"],[\\\"9040\\\",\\\"怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰\\\",4,\\\"怶\\\",4,\\\"怽怾恀恄\\\",6,\\\"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀\\\"],[\\\"9080\\\",\\\"悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽\\\",7,\\\"惇惈惉惌\\\",4,\\\"惒惓惔惖惗惙惛惞惡\\\",4,\\\"惪惱惲惵惷惸惻\\\",4,\\\"愂愃愄愅愇愊愋愌愐\\\",4,\\\"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬\\\",18,\\\"慀\\\",6],[\\\"9140\\\",\\\"慇慉態慍慏慐慒慓慔慖\\\",6,\\\"慞慟慠慡慣慤慥慦慩\\\",6,\\\"慱慲慳慴慶慸\\\",18,\\\"憌憍憏\\\",4,\\\"憕\\\"],[\\\"9180\\\",\\\"憖\\\",6,\\\"憞\\\",8,\\\"憪憫憭\\\",9,\\\"憸\\\",5,\\\"憿懀懁懃\\\",4,\\\"應懌\\\",4,\\\"懓懕\\\",16,\\\"懧\\\",13,\\\"懶\\\",8,\\\"戀\\\",5,\\\"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸\\\",4,\\\"扂扄扅扆扊\\\"],[\\\"9240\\\",\\\"扏扐払扖扗扙扚扜\\\",6,\\\"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋\\\",5,\\\"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁\\\"],[\\\"9280\\\",\\\"拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳\\\",5,\\\"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖\\\",7,\\\"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙\\\",6,\\\"採掤掦掫掯掱掲掵掶掹掻掽掿揀\\\"],[\\\"9340\\\",\\\"揁揂揃揅揇揈揊揋揌揑揓揔揕揗\\\",6,\\\"揟揢揤\\\",4,\\\"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆\\\",4,\\\"損搎搑搒搕\\\",5,\\\"搝搟搢搣搤\\\"],[\\\"9380\\\",\\\"搥搧搨搩搫搮\\\",5,\\\"搵\\\",4,\\\"搻搼搾摀摂摃摉摋\\\",6,\\\"摓摕摖摗摙\\\",4,\\\"摟\\\",7,\\\"摨摪摫摬摮\\\",9,\\\"摻\\\",6,\\\"撃撆撈\\\",8,\\\"撓撔撗撘撚撛撜撝撟\\\",4,\\\"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆\\\",6,\\\"擏擑擓擔擕擖擙據\\\"],[\\\"9440\\\",\\\"擛擜擝擟擠擡擣擥擧\\\",24,\\\"攁\\\",7,\\\"攊\\\",7,\\\"攓\\\",4,\\\"攙\\\",8],[\\\"9480\\\",\\\"攢攣攤攦\\\",4,\\\"攬攭攰攱攲攳攷攺攼攽敀\\\",4,\\\"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數\\\",14,\\\"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱\\\",7,\\\"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘\\\",7,\\\"旡旣旤旪旫\\\"],[\\\"9540\\\",\\\"旲旳旴旵旸旹旻\\\",4,\\\"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷\\\",4,\\\"昽昿晀時晄\\\",6,\\\"晍晎晐晑晘\\\"],[\\\"9580\\\",\\\"晙晛晜晝晞晠晢晣晥晧晩\\\",4,\\\"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘\\\",4,\\\"暞\\\",8,\\\"暩\\\",4,\\\"暯\\\",4,\\\"暵暶暷暸暺暻暼暽暿\\\",25,\\\"曚曞\\\",7,\\\"曧曨曪\\\",5,\\\"曱曵曶書曺曻曽朁朂會\\\"],[\\\"9640\\\",\\\"朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠\\\",5,\\\"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗\\\",4,\\\"杝杢杣杤杦杧杫杬杮東杴杶\\\"],[\\\"9680\\\",\\\"杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹\\\",7,\\\"柂柅\\\",9,\\\"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵\\\",7,\\\"柾栁栂栃栄栆栍栐栒栔栕栘\\\",4,\\\"栞栟栠栢\\\",6,\\\"栫\\\",6,\\\"栴栵栶栺栻栿桇桋桍桏桒桖\\\",5],[\\\"9740\\\",\\\"桜桝桞桟桪桬\\\",7,\\\"桵桸\\\",8,\\\"梂梄梇\\\",7,\\\"梐梑梒梔梕梖梘\\\",9,\\\"梣梤梥梩梪梫梬梮梱梲梴梶梷梸\\\"],[\\\"9780\\\",\\\"梹\\\",6,\\\"棁棃\\\",5,\\\"棊棌棎棏棐棑棓棔棖棗棙棛\\\",4,\\\"棡棢棤\\\",9,\\\"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆\\\",4,\\\"椌椏椑椓\\\",11,\\\"椡椢椣椥\\\",7,\\\"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃\\\",16,\\\"楕楖楘楙楛楜楟\\\"],[\\\"9840\\\",\\\"楡楢楤楥楧楨楩楪楬業楯楰楲\\\",4,\\\"楺楻楽楾楿榁榃榅榊榋榌榎\\\",5,\\\"榖榗榙榚榝\\\",9,\\\"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽\\\"],[\\\"9880\\\",\\\"榾榿槀槂\\\",7,\\\"構槍槏槑槒槓槕\\\",5,\\\"槜槝槞槡\\\",11,\\\"槮槯槰槱槳\\\",9,\\\"槾樀\\\",9,\\\"樋\\\",11,\\\"標\\\",5,\\\"樠樢\\\",5,\\\"権樫樬樭樮樰樲樳樴樶\\\",6,\\\"樿\\\",4,\\\"橅橆橈\\\",7,\\\"橑\\\",6,\\\"橚\\\"],[\\\"9940\\\",\\\"橜\\\",4,\\\"橢橣橤橦\\\",10,\\\"橲\\\",6,\\\"橺橻橽橾橿檁檂檃檅\\\",8,\\\"檏檒\\\",4,\\\"檘\\\",7,\\\"檡\\\",5],[\\\"9980\\\",\\\"檧檨檪檭\\\",114,\\\"欥欦欨\\\",6],[\\\"9a40\\\",\\\"欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍\\\",11,\\\"歚\\\",7,\\\"歨歩歫\\\",13,\\\"歺歽歾歿殀殅殈\\\"],[\\\"9a80\\\",\\\"殌殎殏殐殑殔殕殗殘殙殜\\\",4,\\\"殢\\\",7,\\\"殫\\\",7,\\\"殶殸\\\",6,\\\"毀毃毄毆\\\",4,\\\"毌毎毐毑毘毚毜\\\",4,\\\"毢\\\",7,\\\"毬毭毮毰毱毲毴毶毷毸毺毻毼毾\\\",6,\\\"氈\\\",4,\\\"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋\\\",4,\\\"汑汒汓汖汘\\\"],[\\\"9b40\\\",\\\"汙汚汢汣汥汦汧汫\\\",4,\\\"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘\\\"],[\\\"9b80\\\",\\\"泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟\\\",5,\\\"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽\\\",4,\\\"涃涄涆涇涊涋涍涏涐涒涖\\\",4,\\\"涜涢涥涬涭涰涱涳涴涶涷涹\\\",5,\\\"淁淂淃淈淉淊\\\"],[\\\"9c40\\\",\\\"淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽\\\",7,\\\"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵\\\"],[\\\"9c80\\\",\\\"渶渷渹渻\\\",7,\\\"湅\\\",7,\\\"湏湐湑湒湕湗湙湚湜湝湞湠\\\",10,\\\"湬湭湯\\\",14,\\\"満溁溂溄溇溈溊\\\",4,\\\"溑\\\",6,\\\"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪\\\",5],[\\\"9d40\\\",\\\"滰滱滲滳滵滶滷滸滺\\\",7,\\\"漃漄漅漇漈漊\\\",4,\\\"漐漑漒漖\\\",9,\\\"漡漢漣漥漦漧漨漬漮漰漲漴漵漷\\\",6,\\\"漿潀潁潂\\\"],[\\\"9d80\\\",\\\"潃潄潅潈潉潊潌潎\\\",9,\\\"潙潚潛潝潟潠潡潣潤潥潧\\\",5,\\\"潯潰潱潳潵潶潷潹潻潽\\\",6,\\\"澅澆澇澊澋澏\\\",12,\\\"澝澞澟澠澢\\\",4,\\\"澨\\\",10,\\\"澴澵澷澸澺\\\",5,\\\"濁濃\\\",5,\\\"濊\\\",6,\\\"濓\\\",10,\\\"濟濢濣濤濥\\\"],[\\\"9e40\\\",\\\"濦\\\",7,\\\"濰\\\",32,\\\"瀒\\\",7,\\\"瀜\\\",6,\\\"瀤\\\",6],[\\\"9e80\\\",\\\"瀫\\\",9,\\\"瀶瀷瀸瀺\\\",17,\\\"灍灎灐\\\",13,\\\"灟\\\",11,\\\"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞\\\",12,\\\"炰炲炴炵炶為炾炿烄烅烆烇烉烋\\\",12,\\\"烚\\\"],[\\\"9f40\\\",\\\"烜烝烞烠烡烢烣烥烪烮烰\\\",6,\\\"烸烺烻烼烾\\\",10,\\\"焋\\\",4,\\\"焑焒焔焗焛\\\",10,\\\"焧\\\",7,\\\"焲焳焴\\\"],[\\\"9f80\\\",\\\"焵焷\\\",13,\\\"煆煇煈煉煋煍煏\\\",12,\\\"煝煟\\\",4,\\\"煥煩\\\",4,\\\"煯煰煱煴煵煶煷煹煻煼煾\\\",5,\\\"熅\\\",4,\\\"熋熌熍熎熐熑熒熓熕熖熗熚\\\",4,\\\"熡\\\",6,\\\"熩熪熫熭\\\",5,\\\"熴熶熷熸熺\\\",8,\\\"燄\\\",9,\\\"燏\\\",4],[\\\"a040\\\",\\\"燖\\\",9,\\\"燡燢燣燤燦燨\\\",5,\\\"燯\\\",9,\\\"燺\\\",11,\\\"爇\\\",19],[\\\"a080\\\",\\\"爛爜爞\\\",9,\\\"爩爫爭爮爯爲爳爴爺爼爾牀\\\",6,\\\"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅\\\",4,\\\"犌犎犐犑犓\\\",11,\\\"犠\\\",11,\\\"犮犱犲犳犵犺\\\",6,\\\"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛\\\"],[\\\"a1a1\\\",\\\"　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈\\\",7,\\\"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓\\\"],[\\\"a2a1\\\",\\\"ⅰ\\\",9],[\\\"a2b1\\\",\\\"⒈\\\",19,\\\"⑴\\\",19,\\\"①\\\",9],[\\\"a2e5\\\",\\\"㈠\\\",9],[\\\"a2f1\\\",\\\"Ⅰ\\\",11],[\\\"a3a1\\\",\\\"！＂＃￥％\\\",88,\\\"￣\\\"],[\\\"a4a1\\\",\\\"ぁ\\\",82],[\\\"a5a1\\\",\\\"ァ\\\",85],[\\\"a6a1\\\",\\\"Α\\\",16,\\\"Σ\\\",6],[\\\"a6c1\\\",\\\"α\\\",16,\\\"σ\\\",6],[\\\"a6e0\\\",\\\"︵︶︹︺︿﹀︽︾﹁﹂﹃﹄\\\"],[\\\"a6ee\\\",\\\"︻︼︷︸︱\\\"],[\\\"a6f4\\\",\\\"︳︴\\\"],[\\\"a7a1\\\",\\\"А\\\",5,\\\"ЁЖ\\\",25],[\\\"a7d1\\\",\\\"а\\\",5,\\\"ёж\\\",25],[\\\"a840\\\",\\\"ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═\\\",35,\\\"▁\\\",6],[\\\"a880\\\",\\\"█\\\",7,\\\"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞\\\"],[\\\"a8a1\\\",\\\"āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ\\\"],[\\\"a8bd\\\",\\\"ńň\\\"],[\\\"a8c0\\\",\\\"ɡ\\\"],[\\\"a8c5\\\",\\\"ㄅ\\\",36],[\\\"a940\\\",\\\"〡\\\",8,\\\"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤\\\"],[\\\"a959\\\",\\\"℡㈱\\\"],[\\\"a95c\\\",\\\"‐\\\"],[\\\"a960\\\",\\\"ー゛゜ヽヾ〆ゝゞ﹉\\\",9,\\\"﹔﹕﹖﹗﹙\\\",8],[\\\"a980\\\",\\\"﹢\\\",4,\\\"﹨﹩﹪﹫\\\"],[\\\"a996\\\",\\\"〇\\\"],[\\\"a9a4\\\",\\\"─\\\",75],[\\\"aa40\\\",\\\"狜狝狟狢\\\",5,\\\"狪狫狵狶狹狽狾狿猀猂猄\\\",5,\\\"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀\\\",8],[\\\"aa80\\\",\\\"獉獊獋獌獎獏獑獓獔獕獖獘\\\",7,\\\"獡\\\",10,\\\"獮獰獱\\\"],[\\\"ab40\\\",\\\"獲\\\",11,\\\"獿\\\",4,\\\"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣\\\",5,\\\"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃\\\",4],[\\\"ab80\\\",\\\"珋珌珎珒\\\",6,\\\"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳\\\",4],[\\\"ac40\\\",\\\"珸\\\",10,\\\"琄琇琈琋琌琍琎琑\\\",8,\\\"琜\\\",5,\\\"琣琤琧琩琫琭琯琱琲琷\\\",4,\\\"琽琾琿瑀瑂\\\",11],[\\\"ac80\\\",\\\"瑎\\\",6,\\\"瑖瑘瑝瑠\\\",12,\\\"瑮瑯瑱\\\",4,\\\"瑸瑹瑺\\\"],[\\\"ad40\\\",\\\"瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑\\\",10,\\\"璝璟\\\",7,\\\"璪\\\",15,\\\"璻\\\",12],[\\\"ad80\\\",\\\"瓈\\\",9,\\\"瓓\\\",8,\\\"瓝瓟瓡瓥瓧\\\",6,\\\"瓰瓱瓲\\\"],[\\\"ae40\\\",\\\"瓳瓵瓸\\\",6,\\\"甀甁甂甃甅\\\",7,\\\"甎甐甒甔甕甖甗甛甝甞甠\\\",4,\\\"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘\\\"],[\\\"ae80\\\",\\\"畝\\\",7,\\\"畧畨畩畫\\\",6,\\\"畳畵當畷畺\\\",4,\\\"疀疁疂疄疅疇\\\"],[\\\"af40\\\",\\\"疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦\\\",4,\\\"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇\\\"],[\\\"af80\\\",\\\"瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄\\\"],[\\\"b040\\\",\\\"癅\\\",6,\\\"癎\\\",5,\\\"癕癗\\\",4,\\\"癝癟癠癡癢癤\\\",6,\\\"癬癭癮癰\\\",7,\\\"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛\\\"],[\\\"b080\\\",\\\"皜\\\",7,\\\"皥\\\",8,\\\"皯皰皳皵\\\",9,\\\"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥\\\"],[\\\"b140\\\",\\\"盄盇盉盋盌盓盕盙盚盜盝盞盠\\\",4,\\\"盦\\\",7,\\\"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎\\\",10,\\\"眛眜眝眞眡眣眤眥眧眪眫\\\"],[\\\"b180\\\",\\\"眬眮眰\\\",4,\\\"眹眻眽眾眿睂睄睅睆睈\\\",7,\\\"睒\\\",7,\\\"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳\\\"],[\\\"b240\\\",\\\"睝睞睟睠睤睧睩睪睭\\\",11,\\\"睺睻睼瞁瞂瞃瞆\\\",5,\\\"瞏瞐瞓\\\",11,\\\"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶\\\",4],[\\\"b280\\\",\\\"瞼瞾矀\\\",12,\\\"矎\\\",8,\\\"矘矙矚矝\\\",4,\\\"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖\\\"],[\\\"b340\\\",\\\"矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃\\\",5,\\\"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚\\\"],[\\\"b380\\\",\\\"硛硜硞\\\",11,\\\"硯\\\",7,\\\"硸硹硺硻硽\\\",6,\\\"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚\\\"],[\\\"b440\\\",\\\"碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨\\\",7,\\\"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚\\\",9],[\\\"b480\\\",\\\"磤磥磦磧磩磪磫磭\\\",4,\\\"磳磵磶磸磹磻\\\",5,\\\"礂礃礄礆\\\",6,\\\"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮\\\"],[\\\"b540\\\",\\\"礍\\\",5,\\\"礔\\\",9,\\\"礟\\\",4,\\\"礥\\\",14,\\\"礵\\\",4,\\\"礽礿祂祃祄祅祇祊\\\",8,\\\"祔祕祘祙祡祣\\\"],[\\\"b580\\\",\\\"祤祦祩祪祫祬祮祰\\\",6,\\\"祹祻\\\",4,\\\"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠\\\"],[\\\"b640\\\",\\\"禓\\\",6,\\\"禛\\\",11,\\\"禨\\\",10,\\\"禴\\\",4,\\\"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙\\\",5,\\\"秠秡秢秥秨秪\\\"],[\\\"b680\\\",\\\"秬秮秱\\\",6,\\\"秹秺秼秾秿稁稄稅稇稈稉稊稌稏\\\",4,\\\"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二\\\"],[\\\"b740\\\",\\\"稝稟稡稢稤\\\",14,\\\"稴稵稶稸稺稾穀\\\",5,\\\"穇\\\",9,\\\"穒\\\",4,\\\"穘\\\",16],[\\\"b780\\\",\\\"穩\\\",6,\\\"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服\\\"],[\\\"b840\\\",\\\"窣窤窧窩窪窫窮\\\",4,\\\"窴\\\",10,\\\"竀\\\",10,\\\"竌\\\",9,\\\"竗竘竚竛竜竝竡竢竤竧\\\",5,\\\"竮竰竱竲竳\\\"],[\\\"b880\\\",\\\"竴\\\",4,\\\"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹\\\"],[\\\"b940\\\",\\\"笯笰笲笴笵笶笷笹笻笽笿\\\",5,\\\"筆筈筊筍筎筓筕筗筙筜筞筟筡筣\\\",10,\\\"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆\\\",6,\\\"箎箏\\\"],[\\\"b980\\\",\\\"箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹\\\",7,\\\"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈\\\"],[\\\"ba40\\\",\\\"篅篈築篊篋篍篎篏篐篒篔\\\",4,\\\"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲\\\",4,\\\"篸篹篺篻篽篿\\\",7,\\\"簈簉簊簍簎簐\\\",5,\\\"簗簘簙\\\"],[\\\"ba80\\\",\\\"簚\\\",4,\\\"簠\\\",5,\\\"簨簩簫\\\",12,\\\"簹\\\",5,\\\"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖\\\"],[\\\"bb40\\\",\\\"籃\\\",9,\\\"籎\\\",36,\\\"籵\\\",5,\\\"籾\\\",9],[\\\"bb80\\\",\\\"粈粊\\\",6,\\\"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴\\\",4,\\\"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕\\\"],[\\\"bc40\\\",\\\"粿糀糂糃糄糆糉糋糎\\\",6,\\\"糘糚糛糝糞糡\\\",6,\\\"糩\\\",5,\\\"糰\\\",7,\\\"糹糺糼\\\",13,\\\"紋\\\",5],[\\\"bc80\\\",\\\"紑\\\",14,\\\"紡紣紤紥紦紨紩紪紬紭紮細\\\",6,\\\"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件\\\"],[\\\"bd40\\\",\\\"紷\\\",54,\\\"絯\\\",7],[\\\"bd80\\\",\\\"絸\\\",32,\\\"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸\\\"],[\\\"be40\\\",\\\"継\\\",12,\\\"綧\\\",6,\\\"綯\\\",42],[\\\"be80\\\",\\\"線\\\",32,\\\"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻\\\"],[\\\"bf40\\\",\\\"緻\\\",62],[\\\"bf80\\\",\\\"縺縼\\\",4,\\\"繂\\\",4,\\\"繈\\\",21,\\\"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀\\\"],[\\\"c040\\\",\\\"繞\\\",35,\\\"纃\\\",23,\\\"纜纝纞\\\"],[\\\"c080\\\",\\\"纮纴纻纼绖绤绬绹缊缐缞缷缹缻\\\",6,\\\"罃罆\\\",9,\\\"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐\\\"],[\\\"c140\\\",\\\"罖罙罛罜罝罞罠罣\\\",4,\\\"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂\\\",7,\\\"羋羍羏\\\",4,\\\"羕\\\",4,\\\"羛羜羠羢羣羥羦羨\\\",6,\\\"羱\\\"],[\\\"c180\\\",\\\"羳\\\",4,\\\"羺羻羾翀翂翃翄翆翇翈翉翋翍翏\\\",4,\\\"翖翗翙\\\",5,\\\"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿\\\"],[\\\"c240\\\",\\\"翤翧翨翪翫翬翭翯翲翴\\\",6,\\\"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫\\\",5,\\\"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗\\\"],[\\\"c280\\\",\\\"聙聛\\\",13,\\\"聫\\\",5,\\\"聲\\\",11,\\\"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫\\\"],[\\\"c340\\\",\\\"聾肁肂肅肈肊肍\\\",5,\\\"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇\\\",4,\\\"胏\\\",6,\\\"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋\\\"],[\\\"c380\\\",\\\"脌脕脗脙脛脜脝脟\\\",12,\\\"脭脮脰脳脴脵脷脹\\\",4,\\\"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸\\\"],[\\\"c440\\\",\\\"腀\\\",5,\\\"腇腉腍腎腏腒腖腗腘腛\\\",4,\\\"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃\\\",4,\\\"膉膋膌膍膎膐膒\\\",5,\\\"膙膚膞\\\",4,\\\"膤膥\\\"],[\\\"c480\\\",\\\"膧膩膫\\\",7,\\\"膴\\\",5,\\\"膼膽膾膿臄臅臇臈臉臋臍\\\",6,\\\"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁\\\"],[\\\"c540\\\",\\\"臔\\\",14,\\\"臤臥臦臨臩臫臮\\\",4,\\\"臵\\\",5,\\\"臽臿舃與\\\",4,\\\"舎舏舑舓舕\\\",5,\\\"舝舠舤舥舦舧舩舮舲舺舼舽舿\\\"],[\\\"c580\\\",\\\"艀艁艂艃艅艆艈艊艌艍艎艐\\\",7,\\\"艙艛艜艝艞艠\\\",7,\\\"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗\\\"],[\\\"c640\\\",\\\"艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸\\\"],[\\\"c680\\\",\\\"苺苼\\\",4,\\\"茊茋茍茐茒茓茖茘茙茝\\\",9,\\\"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐\\\"],[\\\"c740\\\",\\\"茾茿荁荂荄荅荈荊\\\",4,\\\"荓荕\\\",4,\\\"荝荢荰\\\",6,\\\"荹荺荾\\\",6,\\\"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡\\\",6,\\\"莬莭莮\\\"],[\\\"c780\\\",\\\"莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠\\\"],[\\\"c840\\\",\\\"菮華菳\\\",4,\\\"菺菻菼菾菿萀萂萅萇萈萉萊萐萒\\\",5,\\\"萙萚萛萞\\\",5,\\\"萩\\\",7,\\\"萲\\\",5,\\\"萹萺萻萾\\\",7,\\\"葇葈葉\\\"],[\\\"c880\\\",\\\"葊\\\",6,\\\"葒\\\",4,\\\"葘葝葞葟葠葢葤\\\",4,\\\"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁\\\"],[\\\"c940\\\",\\\"葽\\\",4,\\\"蒃蒄蒅蒆蒊蒍蒏\\\",7,\\\"蒘蒚蒛蒝蒞蒟蒠蒢\\\",12,\\\"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗\\\"],[\\\"c980\\\",\\\"蓘\\\",4,\\\"蓞蓡蓢蓤蓧\\\",4,\\\"蓭蓮蓯蓱\\\",10,\\\"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳\\\"],[\\\"ca40\\\",\\\"蔃\\\",8,\\\"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢\\\",8,\\\"蔭\\\",9,\\\"蔾\\\",4,\\\"蕄蕅蕆蕇蕋\\\",10],[\\\"ca80\\\",\\\"蕗蕘蕚蕛蕜蕝蕟\\\",4,\\\"蕥蕦蕧蕩\\\",8,\\\"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱\\\"],[\\\"cb40\\\",\\\"薂薃薆薈\\\",6,\\\"薐\\\",10,\\\"薝\\\",6,\\\"薥薦薧薩薫薬薭薱\\\",5,\\\"薸薺\\\",6,\\\"藂\\\",6,\\\"藊\\\",4,\\\"藑藒\\\"],[\\\"cb80\\\",\\\"藔藖\\\",5,\\\"藝\\\",6,\\\"藥藦藧藨藪\\\",14,\\\"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔\\\"],[\\\"cc40\\\",\\\"藹藺藼藽藾蘀\\\",4,\\\"蘆\\\",10,\\\"蘒蘓蘔蘕蘗\\\",15,\\\"蘨蘪\\\",13,\\\"蘹蘺蘻蘽蘾蘿虀\\\"],[\\\"cc80\\\",\\\"虁\\\",11,\\\"虒虓處\\\",4,\\\"虛虜虝號虠虡虣\\\",7,\\\"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃\\\"],[\\\"cd40\\\",\\\"虭虯虰虲\\\",6,\\\"蚃\\\",6,\\\"蚎\\\",4,\\\"蚔蚖\\\",5,\\\"蚞\\\",4,\\\"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻\\\",4,\\\"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜\\\"],[\\\"cd80\\\",\\\"蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威\\\"],[\\\"ce40\\\",\\\"蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀\\\",6,\\\"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚\\\",5,\\\"蝡蝢蝦\\\",7,\\\"蝯蝱蝲蝳蝵\\\"],[\\\"ce80\\\",\\\"蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎\\\",4,\\\"螔螕螖螘\\\",6,\\\"螠\\\",4,\\\"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺\\\"],[\\\"cf40\\\",\\\"螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁\\\",4,\\\"蟇蟈蟉蟌\\\",4,\\\"蟔\\\",6,\\\"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯\\\",9],[\\\"cf80\\\",\\\"蟺蟻蟼蟽蟿蠀蠁蠂蠄\\\",5,\\\"蠋\\\",7,\\\"蠔蠗蠘蠙蠚蠜\\\",4,\\\"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓\\\"],[\\\"d040\\\",\\\"蠤\\\",13,\\\"蠳\\\",5,\\\"蠺蠻蠽蠾蠿衁衂衃衆\\\",5,\\\"衎\\\",5,\\\"衕衖衘衚\\\",6,\\\"衦衧衪衭衯衱衳衴衵衶衸衹衺\\\"],[\\\"d080\\\",\\\"衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗\\\",4,\\\"袝\\\",4,\\\"袣袥\\\",5,\\\"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄\\\"],[\\\"d140\\\",\\\"袬袮袯袰袲\\\",4,\\\"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚\\\",4,\\\"裠裡裦裧裩\\\",6,\\\"裲裵裶裷裺裻製裿褀褁褃\\\",5],[\\\"d180\\\",\\\"褉褋\\\",4,\\\"褑褔\\\",4,\\\"褜\\\",4,\\\"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶\\\"],[\\\"d240\\\",\\\"褸\\\",8,\\\"襂襃襅\\\",24,\\\"襠\\\",5,\\\"襧\\\",19,\\\"襼\\\"],[\\\"d280\\\",\\\"襽襾覀覂覄覅覇\\\",26,\\\"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐\\\"],[\\\"d340\\\",\\\"覢\\\",30,\\\"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴\\\",6],[\\\"d380\\\",\\\"觻\\\",4,\\\"訁\\\",5,\\\"計\\\",21,\\\"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉\\\"],[\\\"d440\\\",\\\"訞\\\",31,\\\"訿\\\",8,\\\"詉\\\",21],[\\\"d480\\\",\\\"詟\\\",25,\\\"詺\\\",6,\\\"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧\\\"],[\\\"d540\\\",\\\"誁\\\",7,\\\"誋\\\",7,\\\"誔\\\",46],[\\\"d580\\\",\\\"諃\\\",32,\\\"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政\\\"],[\\\"d640\\\",\\\"諤\\\",34,\\\"謈\\\",27],[\\\"d680\\\",\\\"謤謥謧\\\",30,\\\"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑\\\"],[\\\"d740\\\",\\\"譆\\\",31,\\\"譧\\\",4,\\\"譭\\\",25],[\\\"d780\\\",\\\"讇\\\",24,\\\"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座\\\"],[\\\"d840\\\",\\\"谸\\\",8,\\\"豂豃豄豅豈豊豋豍\\\",7,\\\"豖豗豘豙豛\\\",5,\\\"豣\\\",6,\\\"豬\\\",6,\\\"豴豵豶豷豻\\\",6,\\\"貃貄貆貇\\\"],[\\\"d880\\\",\\\"貈貋貍\\\",6,\\\"貕貖貗貙\\\",20,\\\"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝\\\"],[\\\"d940\\\",\\\"貮\\\",62],[\\\"d980\\\",\\\"賭\\\",32,\\\"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼\\\"],[\\\"da40\\\",\\\"贎\\\",14,\\\"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸\\\",8,\\\"趂趃趆趇趈趉趌\\\",4,\\\"趒趓趕\\\",9,\\\"趠趡\\\"],[\\\"da80\\\",\\\"趢趤\\\",12,\\\"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺\\\"],[\\\"db40\\\",\\\"跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾\\\",6,\\\"踆踇踈踋踍踎踐踑踒踓踕\\\",7,\\\"踠踡踤\\\",4,\\\"踫踭踰踲踳踴踶踷踸踻踼踾\\\"],[\\\"db80\\\",\\\"踿蹃蹅蹆蹌\\\",4,\\\"蹓\\\",5,\\\"蹚\\\",11,\\\"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝\\\"],[\\\"dc40\\\",\\\"蹳蹵蹷\\\",4,\\\"蹽蹾躀躂躃躄躆躈\\\",6,\\\"躑躒躓躕\\\",6,\\\"躝躟\\\",11,\\\"躭躮躰躱躳\\\",6,\\\"躻\\\",7],[\\\"dc80\\\",\\\"軃\\\",10,\\\"軏\\\",21,\\\"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥\\\"],[\\\"dd40\\\",\\\"軥\\\",62],[\\\"dd80\\\",\\\"輤\\\",32,\\\"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺\\\"],[\\\"de40\\\",\\\"轅\\\",32,\\\"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆\\\"],[\\\"de80\\\",\\\"迉\\\",4,\\\"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖\\\"],[\\\"df40\\\",\\\"這逜連逤逥逧\\\",5,\\\"逰\\\",4,\\\"逷逹逺逽逿遀遃遅遆遈\\\",4,\\\"過達違遖遙遚遜\\\",5,\\\"遤遦遧適遪遫遬遯\\\",4,\\\"遶\\\",6,\\\"遾邁\\\"],[\\\"df80\\\",\\\"還邅邆邇邉邊邌\\\",4,\\\"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼\\\"],[\\\"e040\\\",\\\"郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅\\\",19,\\\"鄚鄛鄜\\\"],[\\\"e080\\\",\\\"鄝鄟鄠鄡鄤\\\",10,\\\"鄰鄲\\\",6,\\\"鄺\\\",8,\\\"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼\\\"],[\\\"e140\\\",\\\"酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀\\\",4,\\\"醆醈醊醎醏醓\\\",6,\\\"醜\\\",5,\\\"醤\\\",5,\\\"醫醬醰醱醲醳醶醷醸醹醻\\\"],[\\\"e180\\\",\\\"醼\\\",10,\\\"釈釋釐釒\\\",9,\\\"針\\\",8,\\\"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺\\\"],[\\\"e240\\\",\\\"釦\\\",62],[\\\"e280\\\",\\\"鈥\\\",32,\\\"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧\\\",5,\\\"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂\\\"],[\\\"e340\\\",\\\"鉆\\\",45,\\\"鉵\\\",16],[\\\"e380\\\",\\\"銆\\\",7,\\\"銏\\\",24,\\\"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾\\\"],[\\\"e440\\\",\\\"銨\\\",5,\\\"銯\\\",24,\\\"鋉\\\",31],[\\\"e480\\\",\\\"鋩\\\",32,\\\"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑\\\"],[\\\"e540\\\",\\\"錊\\\",51,\\\"錿\\\",10],[\\\"e580\\\",\\\"鍊\\\",31,\\\"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣\\\"],[\\\"e640\\\",\\\"鍬\\\",34,\\\"鎐\\\",27],[\\\"e680\\\",\\\"鎬\\\",29,\\\"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩\\\"],[\\\"e740\\\",\\\"鏎\\\",7,\\\"鏗\\\",54],[\\\"e780\\\",\\\"鐎\\\",32,\\\"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡\\\",6,\\\"缪缫缬缭缯\\\",4,\\\"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬\\\"],[\\\"e840\\\",\\\"鐯\\\",14,\\\"鐿\\\",43,\\\"鑬鑭鑮鑯\\\"],[\\\"e880\\\",\\\"鑰\\\",20,\\\"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹\\\"],[\\\"e940\\\",\\\"锧锳锽镃镈镋镕镚镠镮镴镵長\\\",7,\\\"門\\\",42],[\\\"e980\\\",\\\"閫\\\",32,\\\"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋\\\"],[\\\"ea40\\\",\\\"闌\\\",27,\\\"闬闿阇阓阘阛阞阠阣\\\",6,\\\"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗\\\"],[\\\"ea80\\\",\\\"陘陙陚陜陝陞陠陣陥陦陫陭\\\",4,\\\"陳陸\\\",12,\\\"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰\\\"],[\\\"eb40\\\",\\\"隌階隑隒隓隕隖隚際隝\\\",9,\\\"隨\\\",7,\\\"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖\\\",9,\\\"雡\\\",6,\\\"雫\\\"],[\\\"eb80\\\",\\\"雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗\\\",4,\\\"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻\\\"],[\\\"ec40\\\",\\\"霡\\\",8,\\\"霫霬霮霯霱霳\\\",4,\\\"霺霻霼霽霿\\\",18,\\\"靔靕靗靘靚靜靝靟靣靤靦靧靨靪\\\",7],[\\\"ec80\\\",\\\"靲靵靷\\\",4,\\\"靽\\\",7,\\\"鞆\\\",4,\\\"鞌鞎鞏鞐鞓鞕鞖鞗鞙\\\",4,\\\"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐\\\"],[\\\"ed40\\\",\\\"鞞鞟鞡鞢鞤\\\",6,\\\"鞬鞮鞰鞱鞳鞵\\\",46],[\\\"ed80\\\",\\\"韤韥韨韮\\\",4,\\\"韴韷\\\",23,\\\"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨\\\"],[\\\"ee40\\\",\\\"頏\\\",62],[\\\"ee80\\\",\\\"顎\\\",32,\\\"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶\\\",4,\\\"钼钽钿铄铈\\\",6,\\\"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪\\\"],[\\\"ef40\\\",\\\"顯\\\",5,\\\"颋颎颒颕颙颣風\\\",37,\\\"飏飐飔飖飗飛飜飝飠\\\",4],[\\\"ef80\\\",\\\"飥飦飩\\\",30,\\\"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒\\\",4,\\\"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤\\\",8,\\\"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔\\\"],[\\\"f040\\\",\\\"餈\\\",4,\\\"餎餏餑\\\",28,\\\"餯\\\",26],[\\\"f080\\\",\\\"饊\\\",9,\\\"饖\\\",12,\\\"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨\\\",4,\\\"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦\\\",6,\\\"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙\\\"],[\\\"f140\\\",\\\"馌馎馚\\\",10,\\\"馦馧馩\\\",47],[\\\"f180\\\",\\\"駙\\\",32,\\\"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃\\\"],[\\\"f240\\\",\\\"駺\\\",62],[\\\"f280\\\",\\\"騹\\\",32,\\\"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒\\\"],[\\\"f340\\\",\\\"驚\\\",17,\\\"驲骃骉骍骎骔骕骙骦骩\\\",6,\\\"骲骳骴骵骹骻骽骾骿髃髄髆\\\",4,\\\"髍髎髏髐髒體髕髖髗髙髚髛髜\\\"],[\\\"f380\\\",\\\"髝髞髠髢髣髤髥髧髨髩髪髬髮髰\\\",8,\\\"髺髼\\\",6,\\\"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋\\\"],[\\\"f440\\\",\\\"鬇鬉\\\",5,\\\"鬐鬑鬒鬔\\\",10,\\\"鬠鬡鬢鬤\\\",10,\\\"鬰鬱鬳\\\",7,\\\"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕\\\",5],[\\\"f480\\\",\\\"魛\\\",32,\\\"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤\\\"],[\\\"f540\\\",\\\"魼\\\",62],[\\\"f580\\\",\\\"鮻\\\",32,\\\"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜\\\"],[\\\"f640\\\",\\\"鯜\\\",62],[\\\"f680\\\",\\\"鰛\\\",32,\\\"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅\\\",5,\\\"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞\\\",5,\\\"鲥\\\",4,\\\"鲫鲭鲮鲰\\\",7,\\\"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋\\\"],[\\\"f740\\\",\\\"鰼\\\",62],[\\\"f780\\\",\\\"鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾\\\",4,\\\"鳈鳉鳑鳒鳚鳛鳠鳡鳌\\\",4,\\\"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄\\\"],[\\\"f840\\\",\\\"鳣\\\",62],[\\\"f880\\\",\\\"鴢\\\",32],[\\\"f940\\\",\\\"鵃\\\",62],[\\\"f980\\\",\\\"鶂\\\",32],[\\\"fa40\\\",\\\"鶣\\\",62],[\\\"fa80\\\",\\\"鷢\\\",32],[\\\"fb40\\\",\\\"鸃\\\",27,\\\"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴\\\",9,\\\"麀\\\"],[\\\"fb80\\\",\\\"麁麃麄麅麆麉麊麌\\\",5,\\\"麔\\\",8,\\\"麞麠\\\",5,\\\"麧麨麩麪\\\"],[\\\"fc40\\\",\\\"麫\\\",8,\\\"麵麶麷麹麺麼麿\\\",4,\\\"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰\\\",8,\\\"黺黽黿\\\",6],[\\\"fc80\\\",\\\"鼆\\\",4,\\\"鼌鼏鼑鼒鼔鼕鼖鼘鼚\\\",5,\\\"鼡鼣\\\",8,\\\"鼭鼮鼰鼱\\\"],[\\\"fd40\\\",\\\"鼲\\\",4,\\\"鼸鼺鼼鼿\\\",4,\\\"齅\\\",10,\\\"齒\\\",38],[\\\"fd80\\\",\\\"齹\\\",5,\\\"龁龂龍\\\",11,\\\"龜龝龞龡\\\",4,\\\"郎凉秊裏隣\\\"],[\\\"fe40\\\",\\\"兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩\\\"]]\");\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(99);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(128);\nvar createDesc = __webpack_require__(100);\nvar toIObject = __webpack_require__(50);\nvar toPrimitive = __webpack_require__(176);\nvar has = __webpack_require__(51);\nvar IE8_DOM_DEFINE = __webpack_require__(255);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(23) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(22);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(22);\nvar document = __webpack_require__(17).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(9);\nvar core = __webpack_require__(7);\nvar fails = __webpack_require__(52);\nmodule.exports = function (KEY, exec) {\n  var fn = (core.Object || {})[KEY] || Object[KEY];\n  var exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(104);\nvar $export = __webpack_require__(9);\nvar redefine = __webpack_require__(257);\nvar hide = __webpack_require__(39);\nvar Iterators = __webpack_require__(103);\nvar $iterCreate = __webpack_require__(430);\nvar setToStringTag = __webpack_require__(106);\nvar getPrototypeOf = __webpack_require__(432);\nvar ITERATOR = __webpack_require__(21)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(182)('keys');\nvar uid = __webpack_require__(131);\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(7);\nvar global = __webpack_require__(17);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __webpack_require__(104) ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(185);\nvar ITERATOR = __webpack_require__(21)('iterator');\nvar Iterators = __webpack_require__(103);\nmodule.exports = __webpack_require__(7).getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(99);\nvar TAG = __webpack_require__(21)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(438);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(440);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n  return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.f = __webpack_require__(21);\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(17);\nvar core = __webpack_require__(7);\nvar LIBRARY = __webpack_require__(104);\nvar wksExt = __webpack_require__(187);\nvar defineProperty = __webpack_require__(26).f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hide = __webpack_require__(39);\nmodule.exports = function (target, src, safe) {\n  for (var key in src) {\n    if (safe && target[key]) target[key] = src[key];\n    else hide(target, key, src[key]);\n  } return target;\n};\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n    throw TypeError(name + ': incorrect invocation!');\n  } return it;\n};\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(22);\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(481);\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(193);\nvar GetIntrinsic = __webpack_require__(275);\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $indexOf = __webpack_require__(93).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(59);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = __webpack_require__(101);\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isString = __webpack_require__(0).isString;\nvar isNumber = __webpack_require__(0).isNumber;\nvar isObject = __webpack_require__(0).isObject;\nvar isArray = __webpack_require__(0).isArray;\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar LineBreaker = __webpack_require__(290);\n\nvar LEADING = /^(\\s)+/g;\nvar TRAILING = /(\\s)+$/g;\n\n/**\n * Creates an instance of TextTools - text measurement utility\n *\n * @constructor\n * @param {FontProvider} fontProvider\n */\nfunction TextTools(fontProvider) {\n\tthis.fontProvider = fontProvider;\n}\n\n/**\n * Converts an array of strings (or inline-definition-objects) into a collection\n * of inlines and calculated minWidth/maxWidth.\n * and their min/max widths\n * @param  {Object} textArray - an array of inline-definition-objects (or strings)\n * @param  {Object} styleContextStack current style stack\n * @return {Object}                   collection of inlines, minWidth, maxWidth\n */\nTextTools.prototype.buildInlines = function (textArray, styleContextStack) {\n\tvar measured = measure(this.fontProvider, textArray, styleContextStack);\n\n\tvar minWidth = 0,\n\t\tmaxWidth = 0,\n\t\tcurrentLineWidth;\n\n\tmeasured.forEach(function (inline) {\n\t\tminWidth = Math.max(minWidth, inline.width - inline.leadingCut - inline.trailingCut);\n\n\t\tif (!currentLineWidth) {\n\t\t\tcurrentLineWidth = { width: 0, leadingCut: inline.leadingCut, trailingCut: 0 };\n\t\t}\n\n\t\tcurrentLineWidth.width += inline.width;\n\t\tcurrentLineWidth.trailingCut = inline.trailingCut;\n\n\t\tmaxWidth = Math.max(maxWidth, getTrimmedWidth(currentLineWidth));\n\n\t\tif (inline.lineEnd) {\n\t\t\tcurrentLineWidth = null;\n\t\t}\n\t});\n\n\tif (getStyleProperty({}, styleContextStack, 'noWrap', false)) {\n\t\tminWidth = maxWidth;\n\t}\n\n\treturn {\n\t\titems: measured,\n\t\tminWidth: minWidth,\n\t\tmaxWidth: maxWidth\n\t};\n\n\tfunction getTrimmedWidth(item) {\n\t\treturn Math.max(0, item.width - item.leadingCut - item.trailingCut);\n\t}\n};\n\n/**\n * Returns size of the specified string (without breaking it) using the current style\n * @param  {String} text              text to be measured\n * @param  {Object} styleContextStack current style stack\n * @return {Object}                   size of the specified string\n */\nTextTools.prototype.sizeOfString = function (text, styleContextStack) {\n\ttext = text ? text.toString().replace(/\\t/g, '    ') : '';\n\n\t//TODO: refactor - extract from measure\n\tvar fontName = getStyleProperty({}, styleContextStack, 'font', 'Roboto');\n\tvar fontSize = getStyleProperty({}, styleContextStack, 'fontSize', 12);\n\tvar fontFeatures = getStyleProperty({}, styleContextStack, 'fontFeatures', null);\n\tvar bold = getStyleProperty({}, styleContextStack, 'bold', false);\n\tvar italics = getStyleProperty({}, styleContextStack, 'italics', false);\n\tvar lineHeight = getStyleProperty({}, styleContextStack, 'lineHeight', 1);\n\tvar characterSpacing = getStyleProperty({}, styleContextStack, 'characterSpacing', 0);\n\n\tvar font = this.fontProvider.provideFont(fontName, bold, italics);\n\n\treturn {\n\t\twidth: widthOfString(text, font, fontSize, characterSpacing, fontFeatures),\n\t\theight: font.lineHeight(fontSize) * lineHeight,\n\t\tfontSize: fontSize,\n\t\tlineHeight: lineHeight,\n\t\tascender: font.ascender / 1000 * fontSize,\n\t\tdescender: font.descender / 1000 * fontSize\n\t};\n};\n\n/**\n * Returns size of the specified rotated string (without breaking it) using the current style\n *\n * @param  {string} text text to be measured\n * @param  {number} angle\n * @param  {object} styleContextStack current style stack\n * @returns {object} size of the specified string\n */\nTextTools.prototype.sizeOfRotatedText = function (text, angle, styleContextStack) {\n\tvar angleRad = angle * Math.PI / -180;\n\tvar size = this.sizeOfString(text, styleContextStack);\n\treturn {\n\t\twidth: Math.abs(size.height * Math.sin(angleRad)) + Math.abs(size.width * Math.cos(angleRad)),\n\t\theight: Math.abs(size.width * Math.sin(angleRad)) + Math.abs(size.height * Math.cos(angleRad))\n\t};\n}\n\nTextTools.prototype.widthOfString = function (text, font, fontSize, characterSpacing, fontFeatures) {\n\treturn widthOfString(text, font, fontSize, characterSpacing, fontFeatures);\n};\n\nfunction splitWords(text, noWrap) {\n\tvar results = [];\n\ttext = text.replace(/\\t/g, '    ');\n\n\tif (noWrap) {\n\t\tresults.push({ text: text });\n\t\treturn results;\n\t}\n\n\tvar breaker = new LineBreaker(text);\n\tvar last = 0;\n\tvar bk;\n\n\twhile (bk = breaker.nextBreak()) {\n\t\tvar word = text.slice(last, bk.position);\n\n\t\tif (bk.required || word.match(/\\r?\\n$|\\r$/)) { // new line\n\t\t\tword = word.replace(/\\r?\\n$|\\r$/, '');\n\t\t\tresults.push({ text: word, lineEnd: true });\n\t\t} else {\n\t\t\tresults.push({ text: word });\n\t\t}\n\n\t\tlast = bk.position;\n\t}\n\n\treturn results;\n}\n\nfunction copyStyle(source, destination) {\n\tdestination = destination || {};\n\tsource = source || {}; //TODO: default style\n\n\tfor (var key in source) {\n\t\tif (key != 'text' && source.hasOwnProperty(key)) {\n\t\t\tdestination[key] = source[key];\n\t\t}\n\t}\n\n\treturn destination;\n}\n\nfunction normalizeTextArray(array, styleContextStack) {\n\tfunction flatten(array) {\n\t\treturn array.reduce(function (prev, cur) {\n\t\t\tvar current = isArray(cur.text) ? flatten(cur.text) : cur;\n\t\t\tvar more = [].concat(current).some(Array.isArray);\n\t\t\treturn prev.concat(more ? flatten(current) : current);\n\t\t}, []);\n\t}\n\n\tfunction getOneWord(index, words, noWrap) {\n\t\tif (isUndefined(words[index])) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (words[index].lineEnd) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar word = words[index].text;\n\n\t\tif (noWrap) {\n\t\t\tvar tmpWords = splitWords(normalizeString(word), false);\n\t\t\tif (isUndefined(tmpWords[tmpWords.length - 1])) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tword = tmpWords[tmpWords.length - 1].text;\n\t\t}\n\n\t\treturn word;\n\t}\n\n\tvar results = [];\n\n\tif (!isArray(array)) {\n\t\tarray = [array];\n\t}\n\n\tarray = flatten(array);\n\n\tvar lastWord = null;\n\tfor (var i = 0, l = array.length; i < l; i++) {\n\t\tvar item = array[i];\n\t\tvar style = null;\n\t\tvar words;\n\n\t\tvar noWrap = getStyleProperty(item || {}, styleContextStack, 'noWrap', false);\n\t\tif (isObject(item)) {\n\t\t\tif (item._textRef && item._textRef._textNodeRef.text) {\n\t\t\t\titem.text = item._textRef._textNodeRef.text;\n\t\t\t}\n\t\t\twords = splitWords(normalizeString(item.text), noWrap);\n\t\t\tstyle = copyStyle(item);\n\t\t} else {\n\t\t\twords = splitWords(normalizeString(item), noWrap);\n\t\t}\n\n\t\tif (lastWord && words.length) {\n\t\t\tvar firstWord = getOneWord(0, words, noWrap);\n\n\t\t\tvar wrapWords = splitWords(normalizeString(lastWord + firstWord), false);\n\t\t\tif (wrapWords.length === 1) {\n\t\t\t\tresults[results.length - 1].noNewLine = true;\n\t\t\t}\n\t\t}\n\n\t\tfor (var i2 = 0, l2 = words.length; i2 < l2; i2++) {\n\t\t\tvar result = {\n\t\t\t\ttext: words[i2].text\n\t\t\t};\n\n\t\t\tif (words[i2].lineEnd) {\n\t\t\t\tresult.lineEnd = true;\n\t\t\t}\n\n\t\t\tcopyStyle(style, result);\n\n\t\t\tresults.push(result);\n\t\t}\n\n\t\tlastWord = null;\n\t\tif (i + 1 < l) {\n\t\t\tlastWord = getOneWord(words.length - 1, words, noWrap);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction normalizeString(value) {\n\tif (value === undefined || value === null) {\n\t\treturn '';\n\t} else if (isNumber(value)) {\n\t\treturn value.toString();\n\t} else if (isString(value)) {\n\t\treturn value;\n\t} else {\n\t\treturn value.toString();\n\t}\n}\n\nfunction getStyleProperty(item, styleContextStack, property, defaultValue) {\n\tvar value;\n\n\tif (item[property] !== undefined && item[property] !== null) {\n\t\t// item defines this property\n\t\treturn item[property];\n\t}\n\n\tif (!styleContextStack) {\n\t\treturn defaultValue;\n\t}\n\n\tstyleContextStack.auto(item, function () {\n\t\tvalue = styleContextStack.getProperty(property);\n\t});\n\n\tif (value !== null && value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn defaultValue;\n\t}\n}\n\nfunction measure(fontProvider, textArray, styleContextStack) {\n\tvar normalized = normalizeTextArray(textArray, styleContextStack);\n\n\tif (normalized.length) {\n\t\tvar leadingIndent = getStyleProperty(normalized[0], styleContextStack, 'leadingIndent', 0);\n\n\t\tif (leadingIndent) {\n\t\t\tnormalized[0].leadingCut = -leadingIndent;\n\t\t\tnormalized[0].leadingIndent = leadingIndent;\n\t\t}\n\t}\n\n\tnormalized.forEach(function (item) {\n\t\tvar fontName = getStyleProperty(item, styleContextStack, 'font', 'Roboto');\n\t\tvar fontSize = getStyleProperty(item, styleContextStack, 'fontSize', 12);\n\t\tvar fontFeatures = getStyleProperty(item, styleContextStack, 'fontFeatures', null);\n\t\tvar bold = getStyleProperty(item, styleContextStack, 'bold', false);\n\t\tvar italics = getStyleProperty(item, styleContextStack, 'italics', false);\n\t\tvar color = getStyleProperty(item, styleContextStack, 'color', 'black');\n\t\tvar decoration = getStyleProperty(item, styleContextStack, 'decoration', null);\n\t\tvar decorationColor = getStyleProperty(item, styleContextStack, 'decorationColor', null);\n\t\tvar decorationStyle = getStyleProperty(item, styleContextStack, 'decorationStyle', null);\n\t\tvar background = getStyleProperty(item, styleContextStack, 'background', null);\n\t\tvar lineHeight = getStyleProperty(item, styleContextStack, 'lineHeight', 1);\n\t\tvar characterSpacing = getStyleProperty(item, styleContextStack, 'characterSpacing', 0);\n\t\tvar link = getStyleProperty(item, styleContextStack, 'link', null);\n\t\tvar linkToPage = getStyleProperty(item, styleContextStack, 'linkToPage', null);\n\t\tvar linkToDestination = getStyleProperty(item, styleContextStack, 'linkToDestination', null);\n\t\tvar noWrap = getStyleProperty(item, styleContextStack, 'noWrap', null);\n\t\tvar preserveLeadingSpaces = getStyleProperty(item, styleContextStack, 'preserveLeadingSpaces', false);\n\t\tvar preserveTrailingSpaces = getStyleProperty(item, styleContextStack, 'preserveTrailingSpaces', false);\n\t\tvar opacity = getStyleProperty(item, styleContextStack, 'opacity', 1);\n\t\tvar sup = getStyleProperty(item, styleContextStack, 'sup', false);\n\t\tvar sub = getStyleProperty(item, styleContextStack, 'sub', false);\n\n\t\tif ((sup || sub) && item.fontSize === undefined) {\n\t\t\t// font size reduction taken from here: https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n\t\t\tfontSize *= 0.58\n\t\t}\n\n\t\tvar font = fontProvider.provideFont(fontName, bold, italics);\n\n\t\titem.width = widthOfString(item.text, font, fontSize, characterSpacing, fontFeatures);\n\t\titem.height = font.lineHeight(fontSize) * lineHeight;\n\n\t\tif (!item.leadingCut) {\n\t\t\titem.leadingCut = 0;\n\t\t}\n\n\t\tvar leadingSpaces;\n\t\tif (!preserveLeadingSpaces && (leadingSpaces = item.text.match(LEADING))) {\n\t\t\titem.leadingCut += widthOfString(leadingSpaces[0], font, fontSize, characterSpacing, fontFeatures);\n\t\t}\n\n\t\tvar trailingSpaces;\n\t\tif (!preserveTrailingSpaces && (trailingSpaces = item.text.match(TRAILING))) {\n\t\t\titem.trailingCut = widthOfString(trailingSpaces[0], font, fontSize, characterSpacing, fontFeatures);\n\t\t} else {\n\t\t\titem.trailingCut = 0;\n\t\t}\n\n\t\titem.alignment = getStyleProperty(item, styleContextStack, 'alignment', 'left');\n\t\titem.font = font;\n\t\titem.fontSize = fontSize;\n\t\titem.fontFeatures = fontFeatures;\n\t\titem.characterSpacing = characterSpacing;\n\t\titem.color = color;\n\t\titem.decoration = decoration;\n\t\titem.decorationColor = decorationColor;\n\t\titem.decorationStyle = decorationStyle;\n\t\titem.background = background;\n\t\titem.link = link;\n\t\titem.linkToPage = linkToPage;\n\t\titem.linkToDestination = linkToDestination;\n\t\titem.noWrap = noWrap;\n\t\titem.opacity = opacity;\n\t\titem.sup = sup;\n\t\titem.sub = sub;\n\t});\n\n\treturn normalized;\n}\n\nfunction widthOfString(text, font, fontSize, characterSpacing, fontFeatures) {\n\treturn font.widthOfString(text, fontSize, fontFeatures) + ((characterSpacing || 0) * (text.length - 1));\n}\n\nmodule.exports = TextTools;\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isString = __webpack_require__(0).isString;\n\nfunction buildColumnWidths(columns, availableWidth) {\n\tvar autoColumns = [],\n\t\tautoMin = 0, autoMax = 0,\n\t\tstarColumns = [],\n\t\tstarMaxMin = 0,\n\t\tstarMaxMax = 0,\n\t\tfixedColumns = [],\n\t\tinitial_availableWidth = availableWidth;\n\n\tcolumns.forEach(function (column) {\n\t\tif (isAutoColumn(column)) {\n\t\t\tautoColumns.push(column);\n\t\t\tautoMin += column._minWidth;\n\t\t\tautoMax += column._maxWidth;\n\t\t} else if (isStarColumn(column)) {\n\t\t\tstarColumns.push(column);\n\t\t\tstarMaxMin = Math.max(starMaxMin, column._minWidth);\n\t\t\tstarMaxMax = Math.max(starMaxMax, column._maxWidth);\n\t\t} else {\n\t\t\tfixedColumns.push(column);\n\t\t}\n\t});\n\n\tfixedColumns.forEach(function (col) {\n\t\t// width specified as %\n\t\tif (isString(col.width) && /\\d+%/.test(col.width)) {\n\t\t\tcol.width = parseFloat(col.width) * initial_availableWidth / 100;\n\t\t}\n\t\tif (col.width < (col._minWidth) && col.elasticWidth) {\n\t\t\tcol._calcWidth = col._minWidth;\n\t\t} else {\n\t\t\tcol._calcWidth = col.width;\n\t\t}\n\n\t\tavailableWidth -= col._calcWidth;\n\t});\n\n\t// http://www.freesoft.org/CIE/RFC/1942/18.htm\n\t// http://www.w3.org/TR/CSS2/tables.html#width-layout\n\t// http://dev.w3.org/csswg/css3-tables-algorithms/Overview.src.htm\n\tvar minW = autoMin + starMaxMin * starColumns.length;\n\tvar maxW = autoMax + starMaxMax * starColumns.length;\n\tif (minW >= availableWidth) {\n\t\t// case 1 - there's no way to fit all columns within available width\n\t\t// that's actually pretty bad situation with PDF as we have no horizontal scroll\n\t\t// no easy workaround (unless we decide, in the future, to split single words)\n\t\t// currently we simply use minWidths for all columns\n\t\tautoColumns.forEach(function (col) {\n\t\t\tcol._calcWidth = col._minWidth;\n\t\t});\n\n\t\tstarColumns.forEach(function (col) {\n\t\t\tcol._calcWidth = starMaxMin; // starMaxMin already contains padding\n\t\t});\n\t} else {\n\t\tif (maxW < availableWidth) {\n\t\t\t// case 2 - we can fit rest of the table within available space\n\t\t\tautoColumns.forEach(function (col) {\n\t\t\t\tcol._calcWidth = col._maxWidth;\n\t\t\t\tavailableWidth -= col._calcWidth;\n\t\t\t});\n\t\t} else {\n\t\t\t// maxW is too large, but minW fits within available width\n\t\t\tvar W = availableWidth - minW;\n\t\t\tvar D = maxW - minW;\n\n\t\t\tautoColumns.forEach(function (col) {\n\t\t\t\tvar d = col._maxWidth - col._minWidth;\n\t\t\t\tcol._calcWidth = col._minWidth + d * W / D;\n\t\t\t\tavailableWidth -= col._calcWidth;\n\t\t\t});\n\t\t}\n\n\t\tif (starColumns.length > 0) {\n\t\t\tvar starSize = availableWidth / starColumns.length;\n\n\t\t\tstarColumns.forEach(function (col) {\n\t\t\t\tcol._calcWidth = starSize;\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction isAutoColumn(column) {\n\treturn column.width === 'auto';\n}\n\nfunction isStarColumn(column) {\n\treturn column.width === null || column.width === undefined || column.width === '*' || column.width === 'star';\n}\n\n//TODO: refactor and reuse in measureTable\nfunction measureMinMax(columns) {\n\tvar result = { min: 0, max: 0 };\n\n\tvar maxStar = { min: 0, max: 0 };\n\tvar starCount = 0;\n\n\tfor (var i = 0, l = columns.length; i < l; i++) {\n\t\tvar c = columns[i];\n\n\t\tif (isStarColumn(c)) {\n\t\t\tmaxStar.min = Math.max(maxStar.min, c._minWidth);\n\t\t\tmaxStar.max = Math.max(maxStar.max, c._maxWidth);\n\t\t\tstarCount++;\n\t\t} else if (isAutoColumn(c)) {\n\t\t\tresult.min += c._minWidth;\n\t\t\tresult.max += c._maxWidth;\n\t\t} else {\n\t\t\tresult.min += ((c.width !== undefined && c.width) || c._minWidth);\n\t\t\tresult.max += ((c.width !== undefined && c.width) || c._maxWidth);\n\t\t}\n\t}\n\n\tif (starCount) {\n\t\tresult.min += starCount * maxStar.min;\n\t\tresult.max += starCount * maxStar.max;\n\t}\n\n\treturn result;\n}\n\n/**\n * Calculates column widths\n * @private\n */\nmodule.exports = {\n\tbuildColumnWidths: buildColumnWidths,\n\tmeasureMinMax: measureMinMax,\n\tisAutoColumn: isAutoColumn,\n\tisStarColumn: isStarColumn\n};\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(41);\nvar global = __webpack_require__(3);\n\nmodule.exports = classof(global.process) == 'process';\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar global = __webpack_require__(3);\nvar getBuiltIn = __webpack_require__(34);\nvar IS_PURE = __webpack_require__(56);\nvar DESCRIPTORS = __webpack_require__(13);\nvar NATIVE_SYMBOL = __webpack_require__(146);\nvar USE_SYMBOL_AS_UID = __webpack_require__(205);\nvar fails = __webpack_require__(4);\nvar has = __webpack_require__(15);\nvar isArray = __webpack_require__(115);\nvar isObject = __webpack_require__(14);\nvar anObject = __webpack_require__(11);\nvar toObject = __webpack_require__(19);\nvar toIndexedObject = __webpack_require__(27);\nvar toPrimitive = __webpack_require__(55);\nvar createPropertyDescriptor = __webpack_require__(40);\nvar nativeObjectCreate = __webpack_require__(58);\nvar objectKeys = __webpack_require__(94);\nvar getOwnPropertyNamesModule = __webpack_require__(57);\nvar getOwnPropertyNamesExternal = __webpack_require__(313);\nvar getOwnPropertySymbolsModule = __webpack_require__(144);\nvar getOwnPropertyDescriptorModule = __webpack_require__(54);\nvar definePropertyModule = __webpack_require__(16);\nvar propertyIsEnumerableModule = __webpack_require__(110);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar redefine = __webpack_require__(25);\nvar shared = __webpack_require__(142);\nvar sharedKey = __webpack_require__(111);\nvar hiddenKeys = __webpack_require__(113);\nvar uid = __webpack_require__(112);\nvar wellKnownSymbol = __webpack_require__(6);\nvar wrappedWellKnownSymbolModule = __webpack_require__(207);\nvar defineWellKnownSymbol = __webpack_require__(208);\nvar setToStringTag = __webpack_require__(95);\nvar InternalStateModule = __webpack_require__(42);\nvar $forEach = __webpack_require__(20).forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.es/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.es/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars\n    stringify: function stringify(it, replacer, space) {\n      var args = [it];\n      var index = 1;\n      var $replacer;\n      while (arguments.length > index) args.push(arguments[index++]);\n      $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return $stringify.apply(null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar fails = __webpack_require__(4);\nvar createElement = __webpack_require__(138);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(15);\nvar ownKeys = __webpack_require__(311);\nvar getOwnPropertyDescriptorModule = __webpack_require__(54);\nvar definePropertyModule = __webpack_require__(16);\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(15);\nvar toIndexedObject = __webpack_require__(27);\nvar indexOf = __webpack_require__(93).indexOf;\nvar hiddenKeys = __webpack_require__(113);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(146);\n\nmodule.exports = NATIVE_SYMBOL\n  // eslint-disable-next-line no-undef\n  && !Symbol.sham\n  // eslint-disable-next-line no-undef\n  && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(34);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(6);\n\nexports.f = wellKnownSymbol;\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(114);\nvar has = __webpack_require__(15);\nvar wrappedWellKnownSymbolModule = __webpack_require__(207);\nvar defineProperty = __webpack_require__(16).f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\nvar isArray = __webpack_require__(115);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n\nvar $ = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(13);\nvar global = __webpack_require__(3);\nvar has = __webpack_require__(15);\nvar isObject = __webpack_require__(14);\nvar defineProperty = __webpack_require__(16).f;\nvar copyConstructorProperties = __webpack_require__(203);\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineWellKnownSymbol = __webpack_require__(208);\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar fails = __webpack_require__(4);\nvar isArray = __webpack_require__(115);\nvar isObject = __webpack_require__(14);\nvar toObject = __webpack_require__(19);\nvar toLength = __webpack_require__(8);\nvar createProperty = __webpack_require__(147);\nvar arraySpeciesCreate = __webpack_require__(209);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(116);\nvar wellKnownSymbol = __webpack_require__(6);\nvar V8_VERSION = __webpack_require__(148);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar fill = __webpack_require__(150);\nvar addToUnscopables = __webpack_require__(151);\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(20).forEach;\nvar arrayMethodIsStrict = __webpack_require__(59);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\n\nmodule.exports = function (iterator) {\n  var returnMethod = iterator['return'];\n  if (returnMethod !== undefined) {\n    return anObject(returnMethod.call(iterator)).value;\n  }\n};\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $includes = __webpack_require__(93).includes;\nvar addToUnscopables = __webpack_require__(151);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar createIteratorConstructor = __webpack_require__(320);\nvar getPrototypeOf = __webpack_require__(60);\nvar setPrototypeOf = __webpack_require__(45);\nvar setToStringTag = __webpack_require__(95);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar redefine = __webpack_require__(25);\nvar wellKnownSymbol = __webpack_require__(6);\nvar IS_PURE = __webpack_require__(56);\nvar Iterators = __webpack_require__(97);\nvar IteratorsCore = __webpack_require__(218);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(60);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar has = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(6);\nvar IS_PURE = __webpack_require__(56);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar IndexedObject = __webpack_require__(92);\nvar toIndexedObject = __webpack_require__(27);\nvar arrayMethodIsStrict = __webpack_require__(59);\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n  join: function join(separator) {\n    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports) {\n\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(25);\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(35);\nvar toLength = __webpack_require__(8);\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar defineProperty = __webpack_require__(16).f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar global = __webpack_require__(3);\nvar isForced = __webpack_require__(145);\nvar redefine = __webpack_require__(25);\nvar has = __webpack_require__(15);\nvar classof = __webpack_require__(41);\nvar inheritIfRequired = __webpack_require__(226);\nvar toPrimitive = __webpack_require__(55);\nvar fails = __webpack_require__(4);\nvar create = __webpack_require__(58);\nvar getOwnPropertyNames = __webpack_require__(57).f;\nvar getOwnPropertyDescriptor = __webpack_require__(54).f;\nvar defineProperty = __webpack_require__(16).f;\nvar trim = __webpack_require__(227).trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\nvar setPrototypeOf = __webpack_require__(45);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(33);\nvar whitespaces = __webpack_require__(228);\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports) {\n\n// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar toObject = __webpack_require__(19);\nvar nativeKeys = __webpack_require__(94);\nvar fails = __webpack_require__(4);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(11);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(162);\nvar anObject = __webpack_require__(11);\nvar toLength = __webpack_require__(8);\nvar toInteger = __webpack_require__(35);\nvar requireObjectCoercible = __webpack_require__(33);\nvar advanceStringIndex = __webpack_require__(163);\nvar getSubstitution = __webpack_require__(337);\nvar regExpExec = __webpack_require__(164);\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return replacer !== undefined\n        ? replacer.call(searchValue, O, replaceValue)\n        : nativeReplace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      if (\n        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n      ) {\n        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        results.push(result);\n        if (!global) break;\n\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n});\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(162);\nvar isRegExp = __webpack_require__(338);\nvar anObject = __webpack_require__(11);\nvar requireObjectCoercible = __webpack_require__(33);\nvar speciesConstructor = __webpack_require__(36);\nvar advanceStringIndex = __webpack_require__(163);\nvar toLength = __webpack_require__(8);\nvar callRegExpExec = __webpack_require__(164);\nvar regexpExec = __webpack_require__(119);\nvar fails = __webpack_require__(4);\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return nativeSplit.call(string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output.length > lim ? output.slice(0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n}, !SUPPORTS_Y);\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $trim = __webpack_require__(227).trim;\nvar forcedStringTrimMethod = __webpack_require__(339);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar createHTML = __webpack_require__(235);\nvar forcedStringHTMLMethod = __webpack_require__(236);\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(33);\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = String(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar global = __webpack_require__(3);\nvar DESCRIPTORS = __webpack_require__(13);\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(341);\nvar ArrayBufferViewCore = __webpack_require__(5);\nvar ArrayBufferModule = __webpack_require__(156);\nvar anInstance = __webpack_require__(157);\nvar createPropertyDescriptor = __webpack_require__(40);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar toLength = __webpack_require__(8);\nvar toIndex = __webpack_require__(223);\nvar toOffset = __webpack_require__(238);\nvar toPrimitive = __webpack_require__(55);\nvar has = __webpack_require__(15);\nvar classof = __webpack_require__(117);\nvar isObject = __webpack_require__(14);\nvar create = __webpack_require__(58);\nvar setPrototypeOf = __webpack_require__(45);\nvar getOwnPropertyNames = __webpack_require__(57).f;\nvar typedArrayFrom = __webpack_require__(343);\nvar forEach = __webpack_require__(20).forEach;\nvar setSpecies = __webpack_require__(158);\nvar definePropertyModule = __webpack_require__(16);\nvar getOwnPropertyDescriptorModule = __webpack_require__(54);\nvar InternalStateModule = __webpack_require__(42);\nvar inheritIfRequired = __webpack_require__(226);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && typeof key != 'symbol'\n    && key in target\n    && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  return isTypedArrayIndex(target, key = toPrimitive(key, true))\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n    && isObject(descriptor)\n    && has(descriptor, 'value')\n    && !has(descriptor, 'get')\n    && !has(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!has(descriptor, 'writable') || descriptor.writable)\n    && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(342);\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(44);\nvar toObject = __webpack_require__(19);\nvar IndexedObject = __webpack_require__(92);\nvar toLength = __webpack_require__(8);\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(123);\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = __webpack_require__(200);\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = __webpack_require__(122).EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(242);\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(124).Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(98));\nutil.inherits = __webpack_require__(86);\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = __webpack_require__(347);\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = __webpack_require__(348);\nvar destroyImpl = __webpack_require__(243);\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(48);\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  var hwm = options.highWaterMark;\n  var readableHwm = options.readableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = __webpack_require__(125).StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(48);\n\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  this._readableState = new ReadableState(options, this);\n\n  // legacy\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  this.push(null);\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      stream.emit('error', er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        stream.emit('error', new Error('stream.push() after EOF'));\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n    }\n  }\n\n  return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    stream.emit('data', chunk);\n    stream.read(0);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes.  This is to work around cases where hwm=0,\n// such as the repl.  Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = __webpack_require__(125).StringDecoder;\n  this._readableState.decoder = new StringDecoder(enc);\n  this._readableState.encoding = enc;\n  return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = true;\n    n = 0;\n  } else {\n    state.length -= n;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n\n  // emit 'readable' now to make sure it gets picked up.\n  emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  debug('emit readable');\n  stream.emit('readable');\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    pna.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  var len = state.length;\n  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;else len = state.length;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  // If the user pushes more data while we're writing to dest then we'll end up\n  // in ondata again. However, we only want to increase awaitDrain once because\n  // dest will only emit one 'drain' event for the multiple writes.\n  // => Introduce a guard on increasing awaitDrain.\n  var increasedAwaitDrain = false;\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    increasedAwaitDrain = false;\n    var ret = dest.write(chunk);\n    if (false === ret && !increasedAwaitDrain) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', src._readableState.awaitDrain);\n        src._readableState.awaitDrain++;\n        increasedAwaitDrain = true;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function () {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = { hasUnpiped: false };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, unpipeInfo);\n    }return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n  dest.emit('unpipe', this, unpipeInfo);\n\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n\n  if (ev === 'data') {\n    // Start flowing on next tick if stream isn't explicitly paused\n    if (this._readableState.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    var state = this._readableState;\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.emittedReadable = false;\n      if (!state.reading) {\n        pna.nextTick(nReadingNextTick, this);\n      } else if (state.length) {\n        emitReadable(this);\n      }\n    }\n  }\n\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    state.flowing = true;\n    resume(this, state);\n  }\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    pna.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  if (!state.reading) {\n    debug('resume read 0');\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  state.awaitDrain = 0;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (false !== this._readableState.flowing) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function (method) {\n        return function () {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._readableState.highWaterMark;\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = fromListPartial(n, state.buffer, state.decoder);\n  }\n\n  return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n  var ret;\n  if (n < list.head.data.length) {\n    // slice is the same for buffers and strings\n    ret = list.head.data.slice(0, n);\n    list.head.data = list.head.data.slice(n);\n  } else if (n === list.head.data.length) {\n    // first chunk is a perfect match\n    ret = list.shift();\n  } else {\n    // result spans more than one buffer\n    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n  }\n  return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n  var p = list.head;\n  var c = 1;\n  var ret = p.data;\n  n -= ret.length;\n  while (p = p.next) {\n    var str = p.data;\n    var nb = n > str.length ? str.length : n;\n    if (nb === str.length) ret += str;else ret += str.slice(0, n);\n    n -= nb;\n    if (n === 0) {\n      if (nb === str.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = str.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n  var ret = Buffer.allocUnsafe(n);\n  var p = list.head;\n  var c = 1;\n  p.data.copy(ret);\n  n -= p.data.length;\n  while (p = p.next) {\n    var buf = p.data;\n    var nb = n > buf.length ? buf.length : n;\n    buf.copy(ret, ret.length - n, 0, nb);\n    n -= nb;\n    if (n === 0) {\n      if (nb === buf.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = buf.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n\n  // If we get here before consuming all the bytes, then that is a\n  // bug in node.  Should never happen.\n  if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    pna.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n  }\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24), __webpack_require__(47)))\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(122).EventEmitter;\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(123);\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n      pna.nextTick(emitErrorNT, this, err);\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      pna.nextTick(emitErrorNT, _this, err);\n      if (_this._writableState) {\n        _this._writableState.errorEmitted = true;\n      }\n    } else if (cb) {\n      cb(err);\n    }\n  });\n\n  return this;\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy\n};\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(48);\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(98));\nutil.inherits = __webpack_require__(86);\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n\n  var cb = ts.writecb;\n\n  if (!cb) {\n    return this.emit('error', new Error('write callback called multiple times'));\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n\n  cb(er);\n\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n\n  Duplex.call(this, options);\n\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function') {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  var _this2 = this;\n\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n    _this2.emit('close');\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n  return stream.push(null);\n}\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar Buffer = __webpack_require__(10).Buffer;\nvar Transform = __webpack_require__(121).Transform;\nvar binding = __webpack_require__(356);\nvar util = __webpack_require__(167);\nvar assert = __webpack_require__(246).ok;\nvar kMaxLength = __webpack_require__(10).kMaxLength;\nvar kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low.  Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = 16 * 1024;\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n// expose all the zlib constants\nvar bkeys = Object.keys(binding);\nfor (var bk = 0; bk < bkeys.length; bk++) {\n  var bkey = bkeys[bk];\n  if (bkey.match(/^Z/)) {\n    Object.defineProperty(exports, bkey, {\n      enumerable: true, value: binding[bkey], writable: false\n    });\n  }\n}\n\n// translation table for return codes.\nvar codes = {\n  Z_OK: binding.Z_OK,\n  Z_STREAM_END: binding.Z_STREAM_END,\n  Z_NEED_DICT: binding.Z_NEED_DICT,\n  Z_ERRNO: binding.Z_ERRNO,\n  Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n  Z_DATA_ERROR: binding.Z_DATA_ERROR,\n  Z_MEM_ERROR: binding.Z_MEM_ERROR,\n  Z_BUF_ERROR: binding.Z_BUF_ERROR,\n  Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nvar ckeys = Object.keys(codes);\nfor (var ck = 0; ck < ckeys.length; ck++) {\n  var ckey = ckeys[ck];\n  codes[codes[ckey]] = ckey;\n}\n\nObject.defineProperty(exports, 'codes', {\n  enumerable: true, value: Object.freeze(codes), writable: false\n});\n\nexports.Deflate = Deflate;\nexports.Inflate = Inflate;\nexports.Gzip = Gzip;\nexports.Gunzip = Gunzip;\nexports.DeflateRaw = DeflateRaw;\nexports.InflateRaw = InflateRaw;\nexports.Unzip = Unzip;\n\nexports.createDeflate = function (o) {\n  return new Deflate(o);\n};\n\nexports.createInflate = function (o) {\n  return new Inflate(o);\n};\n\nexports.createDeflateRaw = function (o) {\n  return new DeflateRaw(o);\n};\n\nexports.createInflateRaw = function (o) {\n  return new InflateRaw(o);\n};\n\nexports.createGzip = function (o) {\n  return new Gzip(o);\n};\n\nexports.createGunzip = function (o) {\n  return new Gunzip(o);\n};\n\nexports.createUnzip = function (o) {\n  return new Unzip(o);\n};\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nexports.deflate = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new Deflate(opts), buffer, callback);\n};\n\nexports.deflateSync = function (buffer, opts) {\n  return zlibBufferSync(new Deflate(opts), buffer);\n};\n\nexports.gzip = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new Gzip(opts), buffer, callback);\n};\n\nexports.gzipSync = function (buffer, opts) {\n  return zlibBufferSync(new Gzip(opts), buffer);\n};\n\nexports.deflateRaw = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n};\n\nexports.deflateRawSync = function (buffer, opts) {\n  return zlibBufferSync(new DeflateRaw(opts), buffer);\n};\n\nexports.unzip = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new Unzip(opts), buffer, callback);\n};\n\nexports.unzipSync = function (buffer, opts) {\n  return zlibBufferSync(new Unzip(opts), buffer);\n};\n\nexports.inflate = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new Inflate(opts), buffer, callback);\n};\n\nexports.inflateSync = function (buffer, opts) {\n  return zlibBufferSync(new Inflate(opts), buffer);\n};\n\nexports.gunzip = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new Gunzip(opts), buffer, callback);\n};\n\nexports.gunzipSync = function (buffer, opts) {\n  return zlibBufferSync(new Gunzip(opts), buffer);\n};\n\nexports.inflateRaw = function (buffer, opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts;\n    opts = {};\n  }\n  return zlibBuffer(new InflateRaw(opts), buffer, callback);\n};\n\nexports.inflateRawSync = function (buffer, opts) {\n  return zlibBufferSync(new InflateRaw(opts), buffer);\n};\n\nfunction zlibBuffer(engine, buffer, callback) {\n  var buffers = [];\n  var nread = 0;\n\n  engine.on('error', onError);\n  engine.on('end', onEnd);\n\n  engine.end(buffer);\n  flow();\n\n  function flow() {\n    var chunk;\n    while (null !== (chunk = engine.read())) {\n      buffers.push(chunk);\n      nread += chunk.length;\n    }\n    engine.once('readable', flow);\n  }\n\n  function onError(err) {\n    engine.removeListener('end', onEnd);\n    engine.removeListener('readable', flow);\n    callback(err);\n  }\n\n  function onEnd() {\n    var buf;\n    var err = null;\n\n    if (nread >= kMaxLength) {\n      err = new RangeError(kRangeErrorMessage);\n    } else {\n      buf = Buffer.concat(buffers, nread);\n    }\n\n    buffers = [];\n    engine.close();\n    callback(err, buf);\n  }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n  if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n\n  if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n\n  var flushFlag = engine._finishFlushFlag;\n\n  return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n  if (!(this instanceof Deflate)) return new Deflate(opts);\n  Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n  if (!(this instanceof Inflate)) return new Inflate(opts);\n  Zlib.call(this, opts, binding.INFLATE);\n}\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n  if (!(this instanceof Gzip)) return new Gzip(opts);\n  Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n  if (!(this instanceof Gunzip)) return new Gunzip(opts);\n  Zlib.call(this, opts, binding.GUNZIP);\n}\n\n// raw - no header\nfunction DeflateRaw(opts) {\n  if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n  Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n  if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n  Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n// auto-detect header.\nfunction Unzip(opts) {\n  if (!(this instanceof Unzip)) return new Unzip(opts);\n  Zlib.call(this, opts, binding.UNZIP);\n}\n\nfunction isValidFlushFlag(flag) {\n  return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;\n}\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n  var _this = this;\n\n  this._opts = opts = opts || {};\n  this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n\n  Transform.call(this, opts);\n\n  if (opts.flush && !isValidFlushFlag(opts.flush)) {\n    throw new Error('Invalid flush flag: ' + opts.flush);\n  }\n  if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n    throw new Error('Invalid flush flag: ' + opts.finishFlush);\n  }\n\n  this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n  this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;\n\n  if (opts.chunkSize) {\n    if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n      throw new Error('Invalid chunk size: ' + opts.chunkSize);\n    }\n  }\n\n  if (opts.windowBits) {\n    if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n      throw new Error('Invalid windowBits: ' + opts.windowBits);\n    }\n  }\n\n  if (opts.level) {\n    if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n      throw new Error('Invalid compression level: ' + opts.level);\n    }\n  }\n\n  if (opts.memLevel) {\n    if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n      throw new Error('Invalid memLevel: ' + opts.memLevel);\n    }\n  }\n\n  if (opts.strategy) {\n    if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n      throw new Error('Invalid strategy: ' + opts.strategy);\n    }\n  }\n\n  if (opts.dictionary) {\n    if (!Buffer.isBuffer(opts.dictionary)) {\n      throw new Error('Invalid dictionary: it should be a Buffer instance');\n    }\n  }\n\n  this._handle = new binding.Zlib(mode);\n\n  var self = this;\n  this._hadError = false;\n  this._handle.onerror = function (message, errno) {\n    // there is no way to cleanly recover.\n    // continuing only obscures problems.\n    _close(self);\n    self._hadError = true;\n\n    var error = new Error(message);\n    error.errno = errno;\n    error.code = exports.codes[errno];\n    self.emit('error', error);\n  };\n\n  var level = exports.Z_DEFAULT_COMPRESSION;\n  if (typeof opts.level === 'number') level = opts.level;\n\n  var strategy = exports.Z_DEFAULT_STRATEGY;\n  if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n  this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n\n  this._buffer = Buffer.allocUnsafe(this._chunkSize);\n  this._offset = 0;\n  this._level = level;\n  this._strategy = strategy;\n\n  this.once('end', this.close);\n\n  Object.defineProperty(this, '_closed', {\n    get: function () {\n      return !_this._handle;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n\nutil.inherits(Zlib, Transform);\n\nZlib.prototype.params = function (level, strategy, callback) {\n  if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n    throw new RangeError('Invalid compression level: ' + level);\n  }\n  if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n    throw new TypeError('Invalid strategy: ' + strategy);\n  }\n\n  if (this._level !== level || this._strategy !== strategy) {\n    var self = this;\n    this.flush(binding.Z_SYNC_FLUSH, function () {\n      assert(self._handle, 'zlib binding closed');\n      self._handle.params(level, strategy);\n      if (!self._hadError) {\n        self._level = level;\n        self._strategy = strategy;\n        if (callback) callback();\n      }\n    });\n  } else {\n    process.nextTick(callback);\n  }\n};\n\nZlib.prototype.reset = function () {\n  assert(this._handle, 'zlib binding closed');\n  return this._handle.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function (callback) {\n  this._transform(Buffer.alloc(0), '', callback);\n};\n\nZlib.prototype.flush = function (kind, callback) {\n  var _this2 = this;\n\n  var ws = this._writableState;\n\n  if (typeof kind === 'function' || kind === undefined && !callback) {\n    callback = kind;\n    kind = binding.Z_FULL_FLUSH;\n  }\n\n  if (ws.ended) {\n    if (callback) process.nextTick(callback);\n  } else if (ws.ending) {\n    if (callback) this.once('end', callback);\n  } else if (ws.needDrain) {\n    if (callback) {\n      this.once('drain', function () {\n        return _this2.flush(kind, callback);\n      });\n    }\n  } else {\n    this._flushFlag = kind;\n    this.write(Buffer.alloc(0), '', callback);\n  }\n};\n\nZlib.prototype.close = function (callback) {\n  _close(this, callback);\n  process.nextTick(emitCloseNT, this);\n};\n\nfunction _close(engine, callback) {\n  if (callback) process.nextTick(callback);\n\n  // Caller may invoke .close after a zlib error (which will null _handle).\n  if (!engine._handle) return;\n\n  engine._handle.close();\n  engine._handle = null;\n}\n\nfunction emitCloseNT(self) {\n  self.emit('close');\n}\n\nZlib.prototype._transform = function (chunk, encoding, cb) {\n  var flushFlag;\n  var ws = this._writableState;\n  var ending = ws.ending || ws.ended;\n  var last = ending && (!chunk || ws.length === chunk.length);\n\n  if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n\n  if (!this._handle) return cb(new Error('zlib binding closed'));\n\n  // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n  // (or whatever flag was provided using opts.finishFlush).\n  // If it's explicitly flushing at some other time, then we use\n  // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n  // goodness.\n  if (last) flushFlag = this._finishFlushFlag;else {\n    flushFlag = this._flushFlag;\n    // once we've flushed the last of the queue, stop flushing and\n    // go back to the normal behavior.\n    if (chunk.length >= ws.length) {\n      this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n    }\n  }\n\n  this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n  var availInBefore = chunk && chunk.length;\n  var availOutBefore = this._chunkSize - this._offset;\n  var inOff = 0;\n\n  var self = this;\n\n  var async = typeof cb === 'function';\n\n  if (!async) {\n    var buffers = [];\n    var nread = 0;\n\n    var error;\n    this.on('error', function (er) {\n      error = er;\n    });\n\n    assert(this._handle, 'zlib binding closed');\n    do {\n      var res = this._handle.writeSync(flushFlag, chunk, // in\n      inOff, // in_off\n      availInBefore, // in_len\n      this._buffer, // out\n      this._offset, //out_off\n      availOutBefore); // out_len\n    } while (!this._hadError && callback(res[0], res[1]));\n\n    if (this._hadError) {\n      throw error;\n    }\n\n    if (nread >= kMaxLength) {\n      _close(this);\n      throw new RangeError(kRangeErrorMessage);\n    }\n\n    var buf = Buffer.concat(buffers, nread);\n    _close(this);\n\n    return buf;\n  }\n\n  assert(this._handle, 'zlib binding closed');\n  var req = this._handle.write(flushFlag, chunk, // in\n  inOff, // in_off\n  availInBefore, // in_len\n  this._buffer, // out\n  this._offset, //out_off\n  availOutBefore); // out_len\n\n  req.buffer = chunk;\n  req.callback = callback;\n\n  function callback(availInAfter, availOutAfter) {\n    // When the callback is used in an async write, the callback's\n    // context is the `req` object that was created. The req object\n    // is === this._handle, and that's why it's important to null\n    // out the values after they are done being used. `this._handle`\n    // can stay in memory longer than the callback and buffer are needed.\n    if (this) {\n      this.buffer = null;\n      this.callback = null;\n    }\n\n    if (self._hadError) return;\n\n    var have = availOutBefore - availOutAfter;\n    assert(have >= 0, 'have should not go down');\n\n    if (have > 0) {\n      var out = self._buffer.slice(self._offset, self._offset + have);\n      self._offset += have;\n      // serve some output to the consumer.\n      if (async) {\n        self.push(out);\n      } else {\n        buffers.push(out);\n        nread += out.length;\n      }\n    }\n\n    // exhausted the output buffer, or used all the input create a new one.\n    if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n      availOutBefore = self._chunkSize;\n      self._offset = 0;\n      self._buffer = Buffer.allocUnsafe(self._chunkSize);\n    }\n\n    if (availOutAfter === 0) {\n      // Not actually done.  Need to reprocess.\n      // Also, update the availInBefore to the availInAfter value,\n      // so that if we have to hit it a third (fourth, etc.) time,\n      // it'll have the correct byte counts.\n      inOff += availInBefore - availInAfter;\n      availInBefore = availInAfter;\n\n      if (!async) return true;\n\n      var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n      newReq.callback = callback; // this same function\n      newReq.buffer = chunk;\n      return;\n    }\n\n    if (!async) return false;\n\n    // finished with the chunk.\n    cb();\n  }\n};\n\nutil.inherits(Deflate, Zlib);\nutil.inherits(Inflate, Zlib);\nutil.inherits(Gzip, Zlib);\nutil.inherits(Gunzip, Zlib);\nutil.inherits(DeflateRaw, Zlib);\nutil.inherits(InflateRaw, Zlib);\nutil.inherits(Unzip, Zlib);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47)))\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar objectAssign = __webpack_require__(357);\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\nfunction compare(a, b) {\n  if (a === b) {\n    return 0;\n  }\n\n  var x = a.length;\n  var y = b.length;\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n\n  if (x < y) {\n    return -1;\n  }\n  if (y < x) {\n    return 1;\n  }\n  return 0;\n}\nfunction isBuffer(b) {\n  if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n    return global.Buffer.isBuffer(b);\n  }\n  return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n//     node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = __webpack_require__(167);\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n  return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n  return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n  if (isBuffer(arrbuf)) {\n    return false;\n  }\n  if (typeof global.ArrayBuffer !== 'function') {\n    return false;\n  }\n  if (typeof ArrayBuffer.isView === 'function') {\n    return ArrayBuffer.isView(arrbuf);\n  }\n  if (!arrbuf) {\n    return false;\n  }\n  if (arrbuf instanceof DataView) {\n    return true;\n  }\n  if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n    return true;\n  }\n  return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n//                             actual: actual,\n//                             expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n  if (!util.isFunction(func)) {\n    return;\n  }\n  if (functionsHaveNames) {\n    return func.name;\n  }\n  var str = func.toString();\n  var match = str.match(regex);\n  return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n  this.name = 'AssertionError';\n  this.actual = options.actual;\n  this.expected = options.expected;\n  this.operator = options.operator;\n  if (options.message) {\n    this.message = options.message;\n    this.generatedMessage = false;\n  } else {\n    this.message = getMessage(this);\n    this.generatedMessage = true;\n  }\n  var stackStartFunction = options.stackStartFunction || fail;\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, stackStartFunction);\n  } else {\n    // non v8 browsers so we can have a stacktrace\n    var err = new Error();\n    if (err.stack) {\n      var out = err.stack;\n\n      // try to strip useless frames\n      var fn_name = getName(stackStartFunction);\n      var idx = out.indexOf('\\n' + fn_name);\n      if (idx >= 0) {\n        // once we have located the function frame\n        // we need to strip out everything before it (and its line)\n        var next_line = out.indexOf('\\n', idx + 1);\n        out = out.substring(next_line + 1);\n      }\n\n      this.stack = out;\n    }\n  }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n  if (typeof s === 'string') {\n    return s.length < n ? s : s.slice(0, n);\n  } else {\n    return s;\n  }\n}\nfunction inspect(something) {\n  if (functionsHaveNames || !util.isFunction(something)) {\n    return util.inspect(something);\n  }\n  var rawname = getName(something);\n  var name = rawname ? ': ' + rawname : '';\n  return '[Function' +  name + ']';\n}\nfunction getMessage(self) {\n  return truncate(inspect(self.actual), 128) + ' ' +\n         self.operator + ' ' +\n         truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided.  All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n  throw new assert.AssertionError({\n    message: message,\n    actual: actual,\n    expected: expected,\n    operator: operator,\n    stackStartFunction: stackStartFunction\n  });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n  if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n  if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n  if (actual == expected) {\n    fail(actual, expected, message, '!=', assert.notEqual);\n  }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n  if (!_deepEqual(actual, expected, false)) {\n    fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n  }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n  if (!_deepEqual(actual, expected, true)) {\n    fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n  }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n  } else if (isBuffer(actual) && isBuffer(expected)) {\n    return compare(actual, expected) === 0;\n\n  // 7.2. If the expected value is a Date object, the actual value is\n  // equivalent if it is also a Date object that refers to the same time.\n  } else if (util.isDate(actual) && util.isDate(expected)) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3 If the expected value is a RegExp object, the actual value is\n  // equivalent if it is also a RegExp object with the same source and\n  // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n  } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n    return actual.source === expected.source &&\n           actual.global === expected.global &&\n           actual.multiline === expected.multiline &&\n           actual.lastIndex === expected.lastIndex &&\n           actual.ignoreCase === expected.ignoreCase;\n\n  // 7.4. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if ((actual === null || typeof actual !== 'object') &&\n             (expected === null || typeof expected !== 'object')) {\n    return strict ? actual === expected : actual == expected;\n\n  // If both values are instances of typed arrays, wrap their underlying\n  // ArrayBuffers in a Buffer each to increase performance\n  // This optimization requires the arrays to have the same type as checked by\n  // Object.prototype.toString (aka pToString). Never perform binary\n  // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n  // bit patterns are not identical.\n  } else if (isView(actual) && isView(expected) &&\n             pToString(actual) === pToString(expected) &&\n             !(actual instanceof Float32Array ||\n               actual instanceof Float64Array)) {\n    return compare(new Uint8Array(actual.buffer),\n                   new Uint8Array(expected.buffer)) === 0;\n\n  // 7.5 For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else if (isBuffer(actual) !== isBuffer(expected)) {\n    return false;\n  } else {\n    memos = memos || {actual: [], expected: []};\n\n    var actualIndex = memos.actual.indexOf(actual);\n    if (actualIndex !== -1) {\n      if (actualIndex === memos.expected.indexOf(expected)) {\n        return true;\n      }\n    }\n\n    memos.actual.push(actual);\n    memos.expected.push(expected);\n\n    return objEquiv(actual, expected, strict, memos);\n  }\n}\n\nfunction isArguments(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n  if (a === null || a === undefined || b === null || b === undefined)\n    return false;\n  // if one is a primitive, the other must be same\n  if (util.isPrimitive(a) || util.isPrimitive(b))\n    return a === b;\n  if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n    return false;\n  var aIsArgs = isArguments(a);\n  var bIsArgs = isArguments(b);\n  if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n    return false;\n  if (aIsArgs) {\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return _deepEqual(a, b, strict);\n  }\n  var ka = objectKeys(a);\n  var kb = objectKeys(b);\n  var key, i;\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length !== kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] !== kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n      return false;\n  }\n  return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n  if (_deepEqual(actual, expected, false)) {\n    fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n  }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n  if (_deepEqual(actual, expected, true)) {\n    fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n  }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n  if (actual !== expected) {\n    fail(actual, expected, message, '===', assert.strictEqual);\n  }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==.  assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n  if (actual === expected) {\n    fail(actual, expected, message, '!==', assert.notStrictEqual);\n  }\n};\n\nfunction expectedException(actual, expected) {\n  if (!actual || !expected) {\n    return false;\n  }\n\n  if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n    return expected.test(actual);\n  }\n\n  try {\n    if (actual instanceof expected) {\n      return true;\n    }\n  } catch (e) {\n    // Ignore.  The instanceof check doesn't work for arrow functions.\n  }\n\n  if (Error.isPrototypeOf(expected)) {\n    return false;\n  }\n\n  return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n  var error;\n  try {\n    block();\n  } catch (e) {\n    error = e;\n  }\n  return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n  var actual;\n\n  if (typeof block !== 'function') {\n    throw new TypeError('\"block\" argument must be a function');\n  }\n\n  if (typeof expected === 'string') {\n    message = expected;\n    expected = null;\n  }\n\n  actual = _tryBlock(block);\n\n  message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n            (message ? ' ' + message : '.');\n\n  if (shouldThrow && !actual) {\n    fail(actual, expected, 'Missing expected exception' + message);\n  }\n\n  var userProvidedMessage = typeof message === 'string';\n  var isUnwantedException = !shouldThrow && util.isError(actual);\n  var isUnexpectedException = !shouldThrow && actual && !expected;\n\n  if ((isUnwantedException &&\n      userProvidedMessage &&\n      expectedException(actual, expected)) ||\n      isUnexpectedException) {\n    fail(actual, expected, 'Got unwanted exception' + message);\n  }\n\n  if ((shouldThrow && actual && expected &&\n      !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n    throw actual;\n  }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n  _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n  _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n  if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n  equal: assert.strictEqual,\n  deepEqual: assert.deepStrictEqual,\n  notEqual: assert.notStrictEqual,\n  notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    if (hasOwn.call(obj, key)) keys.push(key);\n  }\n  return keys;\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n  var s1 = (adler & 0xffff) |0,\n      s2 = ((adler >>> 16) & 0xffff) |0,\n      n = 0;\n\n  while (len !== 0) {\n    // Set limit ~ twice less than 5552, to keep\n    // s2 in 31-bits, because we force signed ints.\n    // in other case %= will fail.\n    n = len > 2000 ? 2000 : len;\n    len -= n;\n\n    do {\n      s1 = (s1 + buf[pos++]) |0;\n      s2 = (s2 + s1) |0;\n    } while (--n);\n\n    s1 %= 65521;\n    s2 %= 65521;\n  }\n\n  return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n  var c, table = [];\n\n  for (var n = 0; n < 256; n++) {\n    c = n;\n    for (var k = 0; k < 8; k++) {\n      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n    }\n    table[n] = c;\n  }\n\n  return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n  var t = crcTable,\n      end = pos + len;\n\n  crc ^= -1;\n\n  for (var i = pos; i < end; i++) {\n    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n  }\n\n  return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Initialization and round constants tables\n\t    var H = [];\n\t    var K = [];\n\n\t    // Compute constants\n\t    (function () {\n\t        function isPrime(n) {\n\t            var sqrtN = Math.sqrt(n);\n\t            for (var factor = 2; factor <= sqrtN; factor++) {\n\t                if (!(n % factor)) {\n\t                    return false;\n\t                }\n\t            }\n\n\t            return true;\n\t        }\n\n\t        function getFractionalBits(n) {\n\t            return ((n - (n | 0)) * 0x100000000) | 0;\n\t        }\n\n\t        var n = 2;\n\t        var nPrime = 0;\n\t        while (nPrime < 64) {\n\t            if (isPrime(n)) {\n\t                if (nPrime < 8) {\n\t                    H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t                }\n\t                K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t                nPrime++;\n\t            }\n\n\t            n++;\n\t        }\n\t    }());\n\n\t    // Reusable object\n\t    var W = [];\n\n\t    /**\n\t     * SHA-256 hash algorithm.\n\t     */\n\t    var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init(H.slice(0));\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcut\n\t            var H = this._hash.words;\n\n\t            // Working variables\n\t            var a = H[0];\n\t            var b = H[1];\n\t            var c = H[2];\n\t            var d = H[3];\n\t            var e = H[4];\n\t            var f = H[5];\n\t            var g = H[6];\n\t            var h = H[7];\n\n\t            // Computation\n\t            for (var i = 0; i < 64; i++) {\n\t                if (i < 16) {\n\t                    W[i] = M[offset + i] | 0;\n\t                } else {\n\t                    var gamma0x = W[i - 15];\n\t                    var gamma0  = ((gamma0x << 25) | (gamma0x >>> 7))  ^\n\t                                  ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t                                   (gamma0x >>> 3);\n\n\t                    var gamma1x = W[i - 2];\n\t                    var gamma1  = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t                                  ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t                                   (gamma1x >>> 10);\n\n\t                    W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t                }\n\n\t                var ch  = (e & f) ^ (~e & g);\n\t                var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t                var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t                var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7)  | (e >>> 25));\n\n\t                var t1 = h + sigma1 + ch + K[i] + W[i];\n\t                var t2 = sigma0 + maj;\n\n\t                h = g;\n\t                g = f;\n\t                f = e;\n\t                e = (d + t1) | 0;\n\t                d = c;\n\t                c = b;\n\t                b = a;\n\t                a = (t1 + t2) | 0;\n\t            }\n\n\t            // Intermediate hash value\n\t            H[0] = (H[0] + a) | 0;\n\t            H[1] = (H[1] + b) | 0;\n\t            H[2] = (H[2] + c) | 0;\n\t            H[3] = (H[3] + d) | 0;\n\t            H[4] = (H[4] + e) | 0;\n\t            H[5] = (H[5] + f) | 0;\n\t            H[6] = (H[6] + g) | 0;\n\t            H[7] = (H[7] + h) | 0;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t            data.sigBytes = dataWords.length * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Return final computed hash\n\t            return this._hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA256('message');\n\t     *     var hash = CryptoJS.SHA256(wordArray);\n\t     */\n\t    C.SHA256 = Hasher._createHelper(SHA256);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA256(message, key);\n\t     */\n\t    C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(127));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_x64 = C.x64;\n\t    var X64Word = C_x64.Word;\n\t    var X64WordArray = C_x64.WordArray;\n\t    var C_algo = C.algo;\n\n\t    function X64Word_create() {\n\t        return X64Word.create.apply(X64Word, arguments);\n\t    }\n\n\t    // Constants\n\t    var K = [\n\t        X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t        X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t        X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t        X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t        X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t        X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t        X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t        X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t        X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t        X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t        X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t        X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t        X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t        X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t        X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t        X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t        X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t        X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t        X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t        X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t        X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t        X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t        X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t        X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t        X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t        X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t        X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t        X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t        X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t        X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t        X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t        X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t        X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t        X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t        X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t        X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t        X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t        X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t        X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t        X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t    ];\n\n\t    // Reusable objects\n\t    var W = [];\n\t    (function () {\n\t        for (var i = 0; i < 80; i++) {\n\t            W[i] = X64Word_create();\n\t        }\n\t    }());\n\n\t    /**\n\t     * SHA-512 hash algorithm.\n\t     */\n\t    var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new X64WordArray.init([\n\t                new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t                new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t                new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t                new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t            ]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcuts\n\t            var H = this._hash.words;\n\n\t            var H0 = H[0];\n\t            var H1 = H[1];\n\t            var H2 = H[2];\n\t            var H3 = H[3];\n\t            var H4 = H[4];\n\t            var H5 = H[5];\n\t            var H6 = H[6];\n\t            var H7 = H[7];\n\n\t            var H0h = H0.high;\n\t            var H0l = H0.low;\n\t            var H1h = H1.high;\n\t            var H1l = H1.low;\n\t            var H2h = H2.high;\n\t            var H2l = H2.low;\n\t            var H3h = H3.high;\n\t            var H3l = H3.low;\n\t            var H4h = H4.high;\n\t            var H4l = H4.low;\n\t            var H5h = H5.high;\n\t            var H5l = H5.low;\n\t            var H6h = H6.high;\n\t            var H6l = H6.low;\n\t            var H7h = H7.high;\n\t            var H7l = H7.low;\n\n\t            // Working variables\n\t            var ah = H0h;\n\t            var al = H0l;\n\t            var bh = H1h;\n\t            var bl = H1l;\n\t            var ch = H2h;\n\t            var cl = H2l;\n\t            var dh = H3h;\n\t            var dl = H3l;\n\t            var eh = H4h;\n\t            var el = H4l;\n\t            var fh = H5h;\n\t            var fl = H5l;\n\t            var gh = H6h;\n\t            var gl = H6l;\n\t            var hh = H7h;\n\t            var hl = H7l;\n\n\t            // Rounds\n\t            for (var i = 0; i < 80; i++) {\n\t                // Shortcut\n\t                var Wi = W[i];\n\n\t                // Extend message\n\t                if (i < 16) {\n\t                    var Wih = Wi.high = M[offset + i * 2]     | 0;\n\t                    var Wil = Wi.low  = M[offset + i * 2 + 1] | 0;\n\t                } else {\n\t                    // Gamma0\n\t                    var gamma0x  = W[i - 15];\n\t                    var gamma0xh = gamma0x.high;\n\t                    var gamma0xl = gamma0x.low;\n\t                    var gamma0h  = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t                    var gamma0l  = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t                    // Gamma1\n\t                    var gamma1x  = W[i - 2];\n\t                    var gamma1xh = gamma1x.high;\n\t                    var gamma1xl = gamma1x.low;\n\t                    var gamma1h  = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t                    var gamma1l  = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t                    // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t                    var Wi7  = W[i - 7];\n\t                    var Wi7h = Wi7.high;\n\t                    var Wi7l = Wi7.low;\n\n\t                    var Wi16  = W[i - 16];\n\t                    var Wi16h = Wi16.high;\n\t                    var Wi16l = Wi16.low;\n\n\t                    var Wil = gamma0l + Wi7l;\n\t                    var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t                    var Wil = Wil + gamma1l;\n\t                    var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t                    var Wil = Wil + Wi16l;\n\t                    var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t                    Wi.high = Wih;\n\t                    Wi.low  = Wil;\n\t                }\n\n\t                var chh  = (eh & fh) ^ (~eh & gh);\n\t                var chl  = (el & fl) ^ (~el & gl);\n\t                var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t                var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t                var sigma0h = ((ah >>> 28) | (al << 4))  ^ ((ah << 30)  | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t                var sigma0l = ((al >>> 28) | (ah << 4))  ^ ((al << 30)  | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t                var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t                var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t                // t1 = h + sigma1 + ch + K[i] + W[i]\n\t                var Ki  = K[i];\n\t                var Kih = Ki.high;\n\t                var Kil = Ki.low;\n\n\t                var t1l = hl + sigma1l;\n\t                var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t                var t1l = t1l + chl;\n\t                var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t                var t1l = t1l + Kil;\n\t                var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t                var t1l = t1l + Wil;\n\t                var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t                // t2 = sigma0 + maj\n\t                var t2l = sigma0l + majl;\n\t                var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t                // Update working variables\n\t                hh = gh;\n\t                hl = gl;\n\t                gh = fh;\n\t                gl = fl;\n\t                fh = eh;\n\t                fl = el;\n\t                el = (dl + t1l) | 0;\n\t                eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t                dh = ch;\n\t                dl = cl;\n\t                ch = bh;\n\t                cl = bl;\n\t                bh = ah;\n\t                bl = al;\n\t                al = (t1l + t2l) | 0;\n\t                ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t            }\n\n\t            // Intermediate hash value\n\t            H0l = H0.low  = (H0l + al);\n\t            H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t            H1l = H1.low  = (H1l + bl);\n\t            H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t            H2l = H2.low  = (H2l + cl);\n\t            H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t            H3l = H3.low  = (H3l + dl);\n\t            H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t            H4l = H4.low  = (H4l + el);\n\t            H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t            H5l = H5.low  = (H5l + fl);\n\t            H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t            H6l = H6.low  = (H6l + gl);\n\t            H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t            H7l = H7.low  = (H7l + hl);\n\t            H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t            dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t            data.sigBytes = dataWords.length * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Convert hash to 32-bit word array before returning\n\t            var hash = this._hash.toX32();\n\n\t            // Return final computed hash\n\t            return hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        },\n\n\t        blockSize: 1024/32\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA512('message');\n\t     *     var hash = CryptoJS.SHA512(wordArray);\n\t     */\n\t    C.SHA512 = Hasher._createHelper(SHA512);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA512(message, key);\n\t     */\n\t    C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));\n\n/***/ }),\n/* 251 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"a140\\\",\\\"\\\",62],[\\\"a180\\\",\\\"\\\",32],[\\\"a240\\\",\\\"\\\",62],[\\\"a280\\\",\\\"\\\",32],[\\\"a2ab\\\",\\\"\\\",5],[\\\"a2e3\\\",\\\"€\\\"],[\\\"a2ef\\\",\\\"\\\"],[\\\"a2fd\\\",\\\"\\\"],[\\\"a340\\\",\\\"\\\",62],[\\\"a380\\\",\\\"\\\",31,\\\"　\\\"],[\\\"a440\\\",\\\"\\\",62],[\\\"a480\\\",\\\"\\\",32],[\\\"a4f4\\\",\\\"\\\",10],[\\\"a540\\\",\\\"\\\",62],[\\\"a580\\\",\\\"\\\",32],[\\\"a5f7\\\",\\\"\\\",7],[\\\"a640\\\",\\\"\\\",62],[\\\"a680\\\",\\\"\\\",32],[\\\"a6b9\\\",\\\"\\\",7],[\\\"a6d9\\\",\\\"\\\",6],[\\\"a6ec\\\",\\\"\\\"],[\\\"a6f3\\\",\\\"\\\"],[\\\"a6f6\\\",\\\"\\\",8],[\\\"a740\\\",\\\"\\\",62],[\\\"a780\\\",\\\"\\\",32],[\\\"a7c2\\\",\\\"\\\",14],[\\\"a7f2\\\",\\\"\\\",12],[\\\"a896\\\",\\\"\\\",10],[\\\"a8bc\\\",\\\"ḿ\\\"],[\\\"a8bf\\\",\\\"ǹ\\\"],[\\\"a8c1\\\",\\\"\\\"],[\\\"a8ea\\\",\\\"\\\",20],[\\\"a958\\\",\\\"\\\"],[\\\"a95b\\\",\\\"\\\"],[\\\"a95d\\\",\\\"\\\"],[\\\"a989\\\",\\\"〾⿰\\\",11],[\\\"a997\\\",\\\"\\\",12],[\\\"a9f0\\\",\\\"\\\",14],[\\\"aaa1\\\",\\\"\\\",93],[\\\"aba1\\\",\\\"\\\",93],[\\\"aca1\\\",\\\"\\\",93],[\\\"ada1\\\",\\\"\\\",93],[\\\"aea1\\\",\\\"\\\",93],[\\\"afa1\\\",\\\"\\\",93],[\\\"d7fa\\\",\\\"\\\",4],[\\\"f8a1\\\",\\\"\\\",93],[\\\"f9a1\\\",\\\"\\\",93],[\\\"faa1\\\",\\\"\\\",93],[\\\"fba1\\\",\\\"\\\",93],[\\\"fca1\\\",\\\"\\\",93],[\\\"fda1\\\",\\\"\\\",93],[\\\"fe50\\\",\\\"⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌\\\"],[\\\"fe80\\\",\\\"䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓\\\",6,\\\"䶮\\\",93],[\\\"8135f437\\\",\\\"\\\"]]\");\n\n/***/ }),\n/* 252 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"0\\\",\\\"\\\\u0000\\\",127],[\\\"a140\\\",\\\"　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚\\\"],[\\\"a1a1\\\",\\\"﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢\\\",4,\\\"～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／\\\"],[\\\"a240\\\",\\\"＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁\\\",7,\\\"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭\\\"],[\\\"a2a1\\\",\\\"╮╰╯═╞╪╡◢◣◥◤╱╲╳０\\\",9,\\\"Ⅰ\\\",9,\\\"〡\\\",8,\\\"十卄卅Ａ\\\",25,\\\"ａ\\\",21],[\\\"a340\\\",\\\"ｗｘｙｚΑ\\\",16,\\\"Σ\\\",6,\\\"α\\\",16,\\\"σ\\\",6,\\\"ㄅ\\\",10],[\\\"a3a1\\\",\\\"ㄐ\\\",25,\\\"˙ˉˊˇˋ\\\"],[\\\"a3e1\\\",\\\"€\\\"],[\\\"a440\\\",\\\"一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才\\\"],[\\\"a4a1\\\",\\\"丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙\\\"],[\\\"a540\\\",\\\"世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外\\\"],[\\\"a5a1\\\",\\\"央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全\\\"],[\\\"a640\\\",\\\"共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年\\\"],[\\\"a6a1\\\",\\\"式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣\\\"],[\\\"a740\\\",\\\"作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍\\\"],[\\\"a7a1\\\",\\\"均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠\\\"],[\\\"a840\\\",\\\"杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒\\\"],[\\\"a8a1\\\",\\\"芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵\\\"],[\\\"a940\\\",\\\"咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居\\\"],[\\\"a9a1\\\",\\\"屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊\\\"],[\\\"aa40\\\",\\\"昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠\\\"],[\\\"aaa1\\\",\\\"炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附\\\"],[\\\"ab40\\\",\\\"陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品\\\"],[\\\"aba1\\\",\\\"哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷\\\"],[\\\"ac40\\\",\\\"拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗\\\"],[\\\"aca1\\\",\\\"活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄\\\"],[\\\"ad40\\\",\\\"耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥\\\"],[\\\"ada1\\\",\\\"迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪\\\"],[\\\"ae40\\\",\\\"哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙\\\"],[\\\"aea1\\\",\\\"恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓\\\"],[\\\"af40\\\",\\\"浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷\\\"],[\\\"afa1\\\",\\\"砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃\\\"],[\\\"b040\\\",\\\"虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡\\\"],[\\\"b0a1\\\",\\\"陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀\\\"],[\\\"b140\\\",\\\"娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽\\\"],[\\\"b1a1\\\",\\\"情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺\\\"],[\\\"b240\\\",\\\"毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶\\\"],[\\\"b2a1\\\",\\\"瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼\\\"],[\\\"b340\\\",\\\"莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途\\\"],[\\\"b3a1\\\",\\\"部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠\\\"],[\\\"b440\\\",\\\"婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍\\\"],[\\\"b4a1\\\",\\\"插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋\\\"],[\\\"b540\\\",\\\"溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘\\\"],[\\\"b5a1\\\",\\\"窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁\\\"],[\\\"b640\\\",\\\"詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑\\\"],[\\\"b6a1\\\",\\\"間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼\\\"],[\\\"b740\\\",\\\"媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業\\\"],[\\\"b7a1\\\",\\\"楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督\\\"],[\\\"b840\\\",\\\"睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫\\\"],[\\\"b8a1\\\",\\\"腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊\\\"],[\\\"b940\\\",\\\"辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴\\\"],[\\\"b9a1\\\",\\\"飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇\\\"],[\\\"ba40\\\",\\\"愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢\\\"],[\\\"baa1\\\",\\\"滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬\\\"],[\\\"bb40\\\",\\\"罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤\\\"],[\\\"bba1\\\",\\\"說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜\\\"],[\\\"bc40\\\",\\\"劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂\\\"],[\\\"bca1\\\",\\\"慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃\\\"],[\\\"bd40\\\",\\\"瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯\\\"],[\\\"bda1\\\",\\\"翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞\\\"],[\\\"be40\\\",\\\"輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉\\\"],[\\\"bea1\\\",\\\"鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡\\\"],[\\\"bf40\\\",\\\"濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊\\\"],[\\\"bfa1\\\",\\\"縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚\\\"],[\\\"c040\\\",\\\"錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇\\\"],[\\\"c0a1\\\",\\\"嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬\\\"],[\\\"c140\\\",\\\"瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪\\\"],[\\\"c1a1\\\",\\\"薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁\\\"],[\\\"c240\\\",\\\"駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘\\\"],[\\\"c2a1\\\",\\\"癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦\\\"],[\\\"c340\\\",\\\"鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸\\\"],[\\\"c3a1\\\",\\\"獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類\\\"],[\\\"c440\\\",\\\"願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼\\\"],[\\\"c4a1\\\",\\\"纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴\\\"],[\\\"c540\\\",\\\"護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬\\\"],[\\\"c5a1\\\",\\\"禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒\\\"],[\\\"c640\\\",\\\"讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲\\\"],[\\\"c940\\\",\\\"乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕\\\"],[\\\"c9a1\\\",\\\"氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋\\\"],[\\\"ca40\\\",\\\"汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘\\\"],[\\\"caa1\\\",\\\"吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇\\\"],[\\\"cb40\\\",\\\"杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓\\\"],[\\\"cba1\\\",\\\"芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢\\\"],[\\\"cc40\\\",\\\"坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋\\\"],[\\\"cca1\\\",\\\"怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲\\\"],[\\\"cd40\\\",\\\"泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺\\\"],[\\\"cda1\\\",\\\"矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏\\\"],[\\\"ce40\\\",\\\"哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛\\\"],[\\\"cea1\\\",\\\"峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺\\\"],[\\\"cf40\\\",\\\"柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂\\\"],[\\\"cfa1\\\",\\\"洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀\\\"],[\\\"d040\\\",\\\"穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪\\\"],[\\\"d0a1\\\",\\\"苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱\\\"],[\\\"d140\\\",\\\"唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧\\\"],[\\\"d1a1\\\",\\\"恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤\\\"],[\\\"d240\\\",\\\"毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸\\\"],[\\\"d2a1\\\",\\\"牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐\\\"],[\\\"d340\\\",\\\"笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢\\\"],[\\\"d3a1\\\",\\\"荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐\\\"],[\\\"d440\\\",\\\"酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅\\\"],[\\\"d4a1\\\",\\\"唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏\\\"],[\\\"d540\\\",\\\"崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟\\\"],[\\\"d5a1\\\",\\\"捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉\\\"],[\\\"d640\\\",\\\"淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏\\\"],[\\\"d6a1\\\",\\\"痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟\\\"],[\\\"d740\\\",\\\"耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷\\\"],[\\\"d7a1\\\",\\\"蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪\\\"],[\\\"d840\\\",\\\"釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷\\\"],[\\\"d8a1\\\",\\\"堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔\\\"],[\\\"d940\\\",\\\"惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒\\\"],[\\\"d9a1\\\",\\\"晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞\\\"],[\\\"da40\\\",\\\"湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖\\\"],[\\\"daa1\\\",\\\"琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥\\\"],[\\\"db40\\\",\\\"罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳\\\"],[\\\"dba1\\\",\\\"菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺\\\"],[\\\"dc40\\\",\\\"軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈\\\"],[\\\"dca1\\\",\\\"隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆\\\"],[\\\"dd40\\\",\\\"媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤\\\"],[\\\"dda1\\\",\\\"搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼\\\"],[\\\"de40\\\",\\\"毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓\\\"],[\\\"dea1\\\",\\\"煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓\\\"],[\\\"df40\\\",\\\"稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯\\\"],[\\\"dfa1\\\",\\\"腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤\\\"],[\\\"e040\\\",\\\"觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿\\\"],[\\\"e0a1\\\",\\\"遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠\\\"],[\\\"e140\\\",\\\"凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠\\\"],[\\\"e1a1\\\",\\\"寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉\\\"],[\\\"e240\\\",\\\"榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊\\\"],[\\\"e2a1\\\",\\\"漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓\\\"],[\\\"e340\\\",\\\"禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞\\\"],[\\\"e3a1\\\",\\\"耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻\\\"],[\\\"e440\\\",\\\"裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍\\\"],[\\\"e4a1\\\",\\\"銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘\\\"],[\\\"e540\\\",\\\"噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉\\\"],[\\\"e5a1\\\",\\\"憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒\\\"],[\\\"e640\\\",\\\"澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙\\\"],[\\\"e6a1\\\",\\\"獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟\\\"],[\\\"e740\\\",\\\"膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢\\\"],[\\\"e7a1\\\",\\\"蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧\\\"],[\\\"e840\\\",\\\"踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓\\\"],[\\\"e8a1\\\",\\\"銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮\\\"],[\\\"e940\\\",\\\"噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺\\\"],[\\\"e9a1\\\",\\\"憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸\\\"],[\\\"ea40\\\",\\\"澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙\\\"],[\\\"eaa1\\\",\\\"瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘\\\"],[\\\"eb40\\\",\\\"蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠\\\"],[\\\"eba1\\\",\\\"諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌\\\"],[\\\"ec40\\\",\\\"錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕\\\"],[\\\"eca1\\\",\\\"魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎\\\"],[\\\"ed40\\\",\\\"檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶\\\"],[\\\"eda1\\\",\\\"瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞\\\"],[\\\"ee40\\\",\\\"蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞\\\"],[\\\"eea1\\\",\\\"謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜\\\"],[\\\"ef40\\\",\\\"鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰\\\"],[\\\"efa1\\\",\\\"鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶\\\"],[\\\"f040\\\",\\\"璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒\\\"],[\\\"f0a1\\\",\\\"臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧\\\"],[\\\"f140\\\",\\\"蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪\\\"],[\\\"f1a1\\\",\\\"鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰\\\"],[\\\"f240\\\",\\\"徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛\\\"],[\\\"f2a1\\\",\\\"礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕\\\"],[\\\"f340\\\",\\\"譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦\\\"],[\\\"f3a1\\\",\\\"鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲\\\"],[\\\"f440\\\",\\\"嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩\\\"],[\\\"f4a1\\\",\\\"禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿\\\"],[\\\"f540\\\",\\\"鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛\\\"],[\\\"f5a1\\\",\\\"鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥\\\"],[\\\"f640\\\",\\\"蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺\\\"],[\\\"f6a1\\\",\\\"騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚\\\"],[\\\"f740\\\",\\\"糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊\\\"],[\\\"f7a1\\\",\\\"驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾\\\"],[\\\"f840\\\",\\\"讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏\\\"],[\\\"f8a1\\\",\\\"齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚\\\"],[\\\"f940\\\",\\\"纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊\\\"],[\\\"f9a1\\\",\\\"龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓\\\"]]\");\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var ArrayT, NumberT, utils;\n\n  NumberT = __webpack_require__(89).Number;\n\n  utils = __webpack_require__(38);\n\n  ArrayT = (function() {\n    function ArrayT(type, length, lengthType) {\n      this.type = type;\n      this.length = length;\n      this.lengthType = lengthType != null ? lengthType : 'count';\n    }\n\n    ArrayT.prototype.decode = function(stream, parent) {\n      var ctx, i, length, pos, res, target, _i;\n      pos = stream.pos;\n      res = [];\n      ctx = parent;\n      if (this.length != null) {\n        length = utils.resolveLength(this.length, stream, parent);\n      }\n      if (this.length instanceof NumberT) {\n        Object.defineProperties(res, {\n          parent: {\n            value: parent\n          },\n          _startOffset: {\n            value: pos\n          },\n          _currentOffset: {\n            value: 0,\n            writable: true\n          },\n          _length: {\n            value: length\n          }\n        });\n        ctx = res;\n      }\n      if ((length == null) || this.lengthType === 'bytes') {\n        target = length != null ? stream.pos + length : (parent != null ? parent._length : void 0) ? parent._startOffset + parent._length : stream.length;\n        while (stream.pos < target) {\n          res.push(this.type.decode(stream, ctx));\n        }\n      } else {\n        for (i = _i = 0; _i < length; i = _i += 1) {\n          res.push(this.type.decode(stream, ctx));\n        }\n      }\n      return res;\n    };\n\n    ArrayT.prototype.size = function(array, ctx) {\n      var item, size, _i, _len;\n      if (!array) {\n        return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n      }\n      size = 0;\n      if (this.length instanceof NumberT) {\n        size += this.length.size();\n        ctx = {\n          parent: ctx\n        };\n      }\n      for (_i = 0, _len = array.length; _i < _len; _i++) {\n        item = array[_i];\n        size += this.type.size(item, ctx);\n      }\n      return size;\n    };\n\n    ArrayT.prototype.encode = function(stream, array, parent) {\n      var ctx, i, item, ptr, _i, _len;\n      ctx = parent;\n      if (this.length instanceof NumberT) {\n        ctx = {\n          pointers: [],\n          startOffset: stream.pos,\n          parent: parent\n        };\n        ctx.pointerOffset = stream.pos + this.size(array, ctx);\n        this.length.encode(stream, array.length);\n      }\n      for (_i = 0, _len = array.length; _i < _len; _i++) {\n        item = array[_i];\n        this.type.encode(stream, item, ctx);\n      }\n      if (this.length instanceof NumberT) {\n        i = 0;\n        while (i < ctx.pointers.length) {\n          ptr = ctx.pointers[i++];\n          ptr.type.encode(stream, ptr.val);\n        }\n      }\n    };\n\n    return ArrayT;\n\n  })();\n\n  module.exports = ArrayT;\n\n}).call(this);\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Struct, utils;\n\n  utils = __webpack_require__(38);\n\n  Struct = (function() {\n    function Struct(fields) {\n      this.fields = fields != null ? fields : {};\n    }\n\n    Struct.prototype.decode = function(stream, parent, length) {\n      var res, _ref;\n      if (length == null) {\n        length = 0;\n      }\n      res = this._setup(stream, parent, length);\n      this._parseFields(stream, res, this.fields);\n      if ((_ref = this.process) != null) {\n        _ref.call(res, stream);\n      }\n      return res;\n    };\n\n    Struct.prototype._setup = function(stream, parent, length) {\n      var res;\n      res = {};\n      Object.defineProperties(res, {\n        parent: {\n          value: parent\n        },\n        _startOffset: {\n          value: stream.pos\n        },\n        _currentOffset: {\n          value: 0,\n          writable: true\n        },\n        _length: {\n          value: length\n        }\n      });\n      return res;\n    };\n\n    Struct.prototype._parseFields = function(stream, res, fields) {\n      var key, type, val;\n      for (key in fields) {\n        type = fields[key];\n        if (typeof type === 'function') {\n          val = type.call(res, res);\n        } else {\n          val = type.decode(stream, res);\n        }\n        if (val !== void 0) {\n          if (val instanceof utils.PropertyDescriptor) {\n            Object.defineProperty(res, key, val);\n          } else {\n            res[key] = val;\n          }\n        }\n        res._currentOffset = stream.pos - res._startOffset;\n      }\n    };\n\n    Struct.prototype.size = function(val, parent, includePointers) {\n      var ctx, key, size, type, _ref;\n      if (val == null) {\n        val = {};\n      }\n      if (includePointers == null) {\n        includePointers = true;\n      }\n      ctx = {\n        parent: parent,\n        val: val,\n        pointerSize: 0\n      };\n      size = 0;\n      _ref = this.fields;\n      for (key in _ref) {\n        type = _ref[key];\n        if (type.size != null) {\n          size += type.size(val[key], ctx);\n        }\n      }\n      if (includePointers) {\n        size += ctx.pointerSize;\n      }\n      return size;\n    };\n\n    Struct.prototype.encode = function(stream, val, parent) {\n      var ctx, i, key, ptr, type, _ref, _ref1;\n      if ((_ref = this.preEncode) != null) {\n        _ref.call(val, stream);\n      }\n      ctx = {\n        pointers: [],\n        startOffset: stream.pos,\n        parent: parent,\n        val: val,\n        pointerSize: 0\n      };\n      ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n      _ref1 = this.fields;\n      for (key in _ref1) {\n        type = _ref1[key];\n        if (type.encode != null) {\n          type.encode(stream, val[key], ctx);\n        }\n      }\n      i = 0;\n      while (i < ctx.pointers.length) {\n        ptr = ctx.pointers[i++];\n        ptr.type.encode(stream, ptr.val, ptr.parent);\n      }\n    };\n\n    return Struct;\n\n  })();\n\n  module.exports = Struct;\n\n}).call(this);\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(23) && !__webpack_require__(52)(function () {\n  return Object.defineProperty(__webpack_require__(177)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(39);\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(26);\nvar anObject = __webpack_require__(29);\nvar getKeys = __webpack_require__(105);\n\nmodule.exports = __webpack_require__(23) ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(51);\nvar toIObject = __webpack_require__(50);\nvar arrayIndexOf = __webpack_require__(431)(false);\nvar IE_PROTO = __webpack_require__(181)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(180);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(17).document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(99);\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(259);\nvar hiddenKeys = __webpack_require__(183).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(450), __esModule: true };\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar dP = __webpack_require__(26).f;\nvar create = __webpack_require__(129);\nvar redefineAll = __webpack_require__(190);\nvar ctx = __webpack_require__(32);\nvar anInstance = __webpack_require__(191);\nvar forOf = __webpack_require__(107);\nvar $iterDefine = __webpack_require__(179);\nvar step = __webpack_require__(256);\nvar setSpecies = __webpack_require__(268);\nvar DESCRIPTORS = __webpack_require__(23);\nvar fastKey = __webpack_require__(132).fastKey;\nvar validate = __webpack_require__(192);\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n  // fast case\n  var index = fastKey(key);\n  var entry;\n  if (index !== 'F') return that._i[index];\n  // frozen object case\n  for (entry = that._f; entry; entry = entry.n) {\n    if (entry.k == key) return entry;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;         // collection type\n      that._i = create(null); // index\n      that._f = undefined;    // first entry\n      that._l = undefined;    // last entry\n      that[SIZE] = 0;         // size\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n          entry.r = true;\n          if (entry.p) entry.p = entry.p.n = undefined;\n          delete data[entry.i];\n        }\n        that._f = that._l = undefined;\n        that[SIZE] = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = validate(this, NAME);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.n;\n          var prev = entry.p;\n          delete that._i[entry.i];\n          entry.r = true;\n          if (prev) prev.n = next;\n          if (next) next.p = prev;\n          if (that._f == entry) that._f = next;\n          if (that._l == entry) that._l = prev;\n          that[SIZE]--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        validate(this, NAME);\n        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.n : this._f) {\n          f(entry.v, entry.k, this);\n          // revert to the last existing entry\n          while (entry && entry.r) entry = entry.p;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(validate(this, NAME), key);\n      }\n    });\n    if (DESCRIPTORS) dP(C.prototype, 'size', {\n      get: function () {\n        return validate(this, NAME)[SIZE];\n      }\n    });\n    return C;\n  },\n  def: function (that, key, value) {\n    var entry = getEntry(that, key);\n    var prev, index;\n    // change existing entry\n    if (entry) {\n      entry.v = value;\n    // create new entry\n    } else {\n      that._l = entry = {\n        i: index = fastKey(key, true), // <- index\n        k: key,                        // <- key\n        v: value,                      // <- value\n        p: prev = that._l,             // <- previous entry\n        n: undefined,                  // <- next entry\n        r: false                       // <- removed\n      };\n      if (!that._f) that._f = entry;\n      if (prev) prev.n = entry;\n      that[SIZE]++;\n      // add to index\n      if (index !== 'F') that._i[index] = entry;\n    } return that;\n  },\n  getEntry: getEntry,\n  setStrong: function (C, NAME, IS_MAP) {\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    $iterDefine(C, NAME, function (iterated, kind) {\n      this._t = validate(iterated, NAME); // target\n      this._k = kind;                     // kind\n      this._l = undefined;                // previous\n    }, function () {\n      var that = this;\n      var kind = that._k;\n      var entry = that._l;\n      // revert to the last existing entry\n      while (entry && entry.r) entry = entry.p;\n      // get next entry\n      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n        // or finish the iteration\n        that._t = undefined;\n        return step(1);\n      }\n      // return step by kind\n      if (kind == 'keys') return step(0, entry.k);\n      if (kind == 'values') return step(0, entry.v);\n      return step(0, [entry.k, entry.v]);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(NAME);\n  }\n};\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(29);\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(103);\nvar ITERATOR = __webpack_require__(21)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(17);\nvar core = __webpack_require__(7);\nvar dP = __webpack_require__(26);\nvar DESCRIPTORS = __webpack_require__(23);\nvar SPECIES = __webpack_require__(21)('species');\n\nmodule.exports = function (KEY) {\n  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function () { return this; }\n  });\n};\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(17);\nvar $export = __webpack_require__(9);\nvar meta = __webpack_require__(132);\nvar fails = __webpack_require__(52);\nvar hide = __webpack_require__(39);\nvar redefineAll = __webpack_require__(190);\nvar forOf = __webpack_require__(107);\nvar anInstance = __webpack_require__(191);\nvar isObject = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(106);\nvar dP = __webpack_require__(26).f;\nvar each = __webpack_require__(457)(0);\nvar DESCRIPTORS = __webpack_require__(23);\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n  var Base = global[NAME];\n  var C = Base;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var proto = C && C.prototype;\n  var O = {};\n  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    // create collection constructor\n    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n    redefineAll(C.prototype, methods);\n    meta.NEED = true;\n  } else {\n    C = wrapper(function (target, iterable) {\n      anInstance(target, C, NAME, '_c');\n      target._c = new Base();\n      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n    });\n    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n      var IS_ADDER = KEY == 'add' || KEY == 'set';\n      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n        anInstance(this, C, KEY);\n        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n        var result = this._c[KEY](a === 0 ? 0 : a, b);\n        return IS_ADDER ? this : result;\n      });\n    });\n    IS_WEAK || dP(C.prototype, 'size', {\n      get: function () {\n        return this._c.size;\n      }\n    });\n  }\n\n  setToStringTag(C, NAME);\n\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F, O);\n\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n  return C;\n};\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = __webpack_require__(185);\nvar from = __webpack_require__(461);\nmodule.exports = function (NAME) {\n  return function toJSON() {\n    if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n    return from(this);\n  };\n};\n\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = __webpack_require__(9);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, { of: function of() {\n    var length = arguments.length;\n    var A = new Array(length);\n    while (length--) A[length] = arguments[length];\n    return new this(A);\n  } });\n};\n\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = __webpack_require__(9);\nvar aFunction = __webpack_require__(101);\nvar ctx = __webpack_require__(32);\nvar forOf = __webpack_require__(107);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n    var mapFn = arguments[1];\n    var mapping, A, n, cb;\n    aFunction(this);\n    mapping = mapFn !== undefined;\n    if (mapping) aFunction(mapFn);\n    if (source == undefined) return new this();\n    A = [];\n    if (mapping) {\n      n = 0;\n      cb = ctx(mapFn, arguments[2], 2);\n      forOf(source, false, function (nextItem) {\n        A.push(cb(nextItem, n++));\n      });\n    } else {\n      forOf(source, false, A.push, A);\n    }\n    return new this(A);\n  } });\n};\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(274);\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(477);\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* globals\n\tAggregateError,\n\tAtomics,\n\tFinalizationRegistry,\n\tSharedArrayBuffer,\n\tWeakRef,\n*/\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\t// eslint-disable-next-line no-new-func\n\t\treturn Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __webpack_require__(276)();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar asyncGenFunction = getEvalledConstructor('async function* () {}');\nvar asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;\nvar asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': getEvalledConstructor('async function () {}'),\n\t'%AsyncGenerator%': asyncGenFunctionPrototype,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': getEvalledConstructor('function* () {}'),\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = __webpack_require__(193);\nvar hasOwn = __webpack_require__(482);\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = __webpack_require__(480);\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(277);\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(279);\n\nvar supportsDescriptors = __webpack_require__(108).supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(21)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(29);\nvar aFunction = __webpack_require__(101);\nvar SPECIES = __webpack_require__(21)('species');\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(32);\nvar invoke = __webpack_require__(521);\nvar html = __webpack_require__(261);\nvar cel = __webpack_require__(177);\nvar global = __webpack_require__(17);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n  var id = +this;\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar listener = function (event) {\n  run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (__webpack_require__(99)(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function (id) {\n      global.postMessage(id + '', '*');\n    };\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function (id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n\n/***/ }),\n/* 284 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return { e: false, v: exec() };\n  } catch (e) {\n    return { e: true, v: e };\n  }\n};\n\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(29);\nvar isObject = __webpack_require__(22);\nvar newPromiseCapability = __webpack_require__(196);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\nvar BrotliInput = __webpack_require__(287).BrotliInput;\nvar BrotliOutput = __webpack_require__(287).BrotliOutput;\nvar BrotliBitReader = __webpack_require__(527);\nvar BrotliDictionary = __webpack_require__(288);\nvar HuffmanCode = __webpack_require__(289).HuffmanCode;\nvar BrotliBuildHuffmanTable = __webpack_require__(289).BrotliBuildHuffmanTable;\nvar Context = __webpack_require__(531);\nvar Prefix = __webpack_require__(532);\nvar Transform = __webpack_require__(533);\n\nvar kDefaultCodeLength = 8;\nvar kCodeLengthRepeatCode = 16;\nvar kNumLiteralCodes = 256;\nvar kNumInsertAndCopyCodes = 704;\nvar kNumBlockLengthCodes = 26;\nvar kLiteralContextBits = 6;\nvar kDistanceContextBits = 2;\n\nvar HUFFMAN_TABLE_BITS = 8;\nvar HUFFMAN_TABLE_MASK = 0xff;\n/* Maximum possible Huffman table size for an alphabet size of 704, max code\n * length 15 and root table bits 8. */\nvar HUFFMAN_MAX_TABLE_SIZE = 1080;\n\nvar CODE_LENGTH_CODES = 18;\nvar kCodeLengthCodeOrder = new Uint8Array([\n  1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n]);\n\nvar NUM_DISTANCE_SHORT_CODES = 16;\nvar kDistanceShortCodeIndexOffset = new Uint8Array([\n  3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2\n]);\n\nvar kDistanceShortCodeValueOffset = new Int8Array([\n  0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3\n]);\n\nvar kMaxHuffmanTableSize = new Uint16Array([\n  256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822,\n  854, 886, 920, 952, 984, 1016, 1048, 1080\n]);\n\nfunction DecodeWindowBits(br) {\n  var n;\n  if (br.readBits(1) === 0) {\n    return 16;\n  }\n  \n  n = br.readBits(3);\n  if (n > 0) {\n    return 17 + n;\n  }\n  \n  n = br.readBits(3);\n  if (n > 0) {\n    return 8 + n;\n  }\n  \n  return 17;\n}\n\n/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\nfunction DecodeVarLenUint8(br) {\n  if (br.readBits(1)) {\n    var nbits = br.readBits(3);\n    if (nbits === 0) {\n      return 1;\n    } else {\n      return br.readBits(nbits) + (1 << nbits);\n    }\n  }\n  return 0;\n}\n\nfunction MetaBlockLength() {\n  this.meta_block_length = 0;\n  this.input_end = 0;\n  this.is_uncompressed = 0;\n  this.is_metadata = false;\n}\n\nfunction DecodeMetaBlockLength(br) {\n  var out = new MetaBlockLength;  \n  var size_nibbles;\n  var size_bytes;\n  var i;\n  \n  out.input_end = br.readBits(1);\n  if (out.input_end && br.readBits(1)) {\n    return out;\n  }\n  \n  size_nibbles = br.readBits(2) + 4;\n  if (size_nibbles === 7) {\n    out.is_metadata = true;\n    \n    if (br.readBits(1) !== 0)\n      throw new Error('Invalid reserved bit');\n    \n    size_bytes = br.readBits(2);\n    if (size_bytes === 0)\n      return out;\n    \n    for (i = 0; i < size_bytes; i++) {\n      var next_byte = br.readBits(8);\n      if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0)\n        throw new Error('Invalid size byte');\n      \n      out.meta_block_length |= next_byte << (i * 8);\n    }\n  } else {\n    for (i = 0; i < size_nibbles; ++i) {\n      var next_nibble = br.readBits(4);\n      if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)\n        throw new Error('Invalid size nibble');\n      \n      out.meta_block_length |= next_nibble << (i * 4);\n    }\n  }\n  \n  ++out.meta_block_length;\n  \n  if (!out.input_end && !out.is_metadata) {\n    out.is_uncompressed = br.readBits(1);\n  }\n  \n  return out;\n}\n\n/* Decodes the next Huffman code from bit-stream. */\nfunction ReadSymbol(table, index, br) {\n  var start_index = index;\n  \n  var nbits;\n  br.fillBitWindow();\n  index += (br.val_ >>> br.bit_pos_) & HUFFMAN_TABLE_MASK;\n  nbits = table[index].bits - HUFFMAN_TABLE_BITS;\n  if (nbits > 0) {\n    br.bit_pos_ += HUFFMAN_TABLE_BITS;\n    index += table[index].value;\n    index += (br.val_ >>> br.bit_pos_) & ((1 << nbits) - 1);\n  }\n  br.bit_pos_ += table[index].bits;\n  return table[index].value;\n}\n\nfunction ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {\n  var symbol = 0;\n  var prev_code_len = kDefaultCodeLength;\n  var repeat = 0;\n  var repeat_code_len = 0;\n  var space = 32768;\n  \n  var table = [];\n  for (var i = 0; i < 32; i++)\n    table.push(new HuffmanCode(0, 0));\n  \n  BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);\n\n  while (symbol < num_symbols && space > 0) {\n    var p = 0;\n    var code_len;\n    \n    br.readMoreInput();\n    br.fillBitWindow();\n    p += (br.val_ >>> br.bit_pos_) & 31;\n    br.bit_pos_ += table[p].bits;\n    code_len = table[p].value & 0xff;\n    if (code_len < kCodeLengthRepeatCode) {\n      repeat = 0;\n      code_lengths[symbol++] = code_len;\n      if (code_len !== 0) {\n        prev_code_len = code_len;\n        space -= 32768 >> code_len;\n      }\n    } else {\n      var extra_bits = code_len - 14;\n      var old_repeat;\n      var repeat_delta;\n      var new_len = 0;\n      if (code_len === kCodeLengthRepeatCode) {\n        new_len = prev_code_len;\n      }\n      if (repeat_code_len !== new_len) {\n        repeat = 0;\n        repeat_code_len = new_len;\n      }\n      old_repeat = repeat;\n      if (repeat > 0) {\n        repeat -= 2;\n        repeat <<= extra_bits;\n      }\n      repeat += br.readBits(extra_bits) + 3;\n      repeat_delta = repeat - old_repeat;\n      if (symbol + repeat_delta > num_symbols) {\n        throw new Error('[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols');\n      }\n      \n      for (var x = 0; x < repeat_delta; x++)\n        code_lengths[symbol + x] = repeat_code_len;\n      \n      symbol += repeat_delta;\n      \n      if (repeat_code_len !== 0) {\n        space -= repeat_delta << (15 - repeat_code_len);\n      }\n    }\n  }\n  if (space !== 0) {\n    throw new Error(\"[ReadHuffmanCodeLengths] space = \" + space);\n  }\n  \n  for (; symbol < num_symbols; symbol++)\n    code_lengths[symbol] = 0;\n}\n\nfunction ReadHuffmanCode(alphabet_size, tables, table, br) {\n  var table_size = 0;\n  var simple_code_or_skip;\n  var code_lengths = new Uint8Array(alphabet_size);\n  \n  br.readMoreInput();\n  \n  /* simple_code_or_skip is used as follows:\n     1 for simple code;\n     0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\n  simple_code_or_skip = br.readBits(2);\n  if (simple_code_or_skip === 1) {\n    /* Read symbols, codes & code lengths directly. */\n    var i;\n    var max_bits_counter = alphabet_size - 1;\n    var max_bits = 0;\n    var symbols = new Int32Array(4);\n    var num_symbols = br.readBits(2) + 1;\n    while (max_bits_counter) {\n      max_bits_counter >>= 1;\n      ++max_bits;\n    }\n\n    for (i = 0; i < num_symbols; ++i) {\n      symbols[i] = br.readBits(max_bits) % alphabet_size;\n      code_lengths[symbols[i]] = 2;\n    }\n    code_lengths[symbols[0]] = 1;\n    switch (num_symbols) {\n      case 1:\n        break;\n      case 3:\n        if ((symbols[0] === symbols[1]) ||\n            (symbols[0] === symbols[2]) ||\n            (symbols[1] === symbols[2])) {\n          throw new Error('[ReadHuffmanCode] invalid symbols');\n        }\n        break;\n      case 2:\n        if (symbols[0] === symbols[1]) {\n          throw new Error('[ReadHuffmanCode] invalid symbols');\n        }\n        \n        code_lengths[symbols[1]] = 1;\n        break;\n      case 4:\n        if ((symbols[0] === symbols[1]) ||\n            (symbols[0] === symbols[2]) ||\n            (symbols[0] === symbols[3]) ||\n            (symbols[1] === symbols[2]) ||\n            (symbols[1] === symbols[3]) ||\n            (symbols[2] === symbols[3])) {\n          throw new Error('[ReadHuffmanCode] invalid symbols');\n        }\n        \n        if (br.readBits(1)) {\n          code_lengths[symbols[2]] = 3;\n          code_lengths[symbols[3]] = 3;\n        } else {\n          code_lengths[symbols[0]] = 2;\n        }\n        break;\n    }\n  } else {  /* Decode Huffman-coded code lengths. */\n    var i;\n    var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);\n    var space = 32;\n    var num_codes = 0;\n    /* Static Huffman code for the code length code lengths */\n    var huff = [\n      new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n      new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 1),\n      new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n      new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 5)\n    ];\n    for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {\n      var code_len_idx = kCodeLengthCodeOrder[i];\n      var p = 0;\n      var v;\n      br.fillBitWindow();\n      p += (br.val_ >>> br.bit_pos_) & 15;\n      br.bit_pos_ += huff[p].bits;\n      v = huff[p].value;\n      code_length_code_lengths[code_len_idx] = v;\n      if (v !== 0) {\n        space -= (32 >> v);\n        ++num_codes;\n      }\n    }\n    \n    if (!(num_codes === 1 || space === 0))\n      throw new Error('[ReadHuffmanCode] invalid num_codes or space');\n    \n    ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);\n  }\n  \n  table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);\n  \n  if (table_size === 0) {\n    throw new Error(\"[ReadHuffmanCode] BuildHuffmanTable failed: \");\n  }\n  \n  return table_size;\n}\n\nfunction ReadBlockLength(table, index, br) {\n  var code;\n  var nbits;\n  code = ReadSymbol(table, index, br);\n  nbits = Prefix.kBlockLengthPrefixCode[code].nbits;\n  return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);\n}\n\nfunction TranslateShortCodes(code, ringbuffer, index) {\n  var val;\n  if (code < NUM_DISTANCE_SHORT_CODES) {\n    index += kDistanceShortCodeIndexOffset[code];\n    index &= 3;\n    val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];\n  } else {\n    val = code - NUM_DISTANCE_SHORT_CODES + 1;\n  }\n  return val;\n}\n\nfunction MoveToFront(v, index) {\n  var value = v[index];\n  var i = index;\n  for (; i; --i) v[i] = v[i - 1];\n  v[0] = value;\n}\n\nfunction InverseMoveToFrontTransform(v, v_len) {\n  var mtf = new Uint8Array(256);\n  var i;\n  for (i = 0; i < 256; ++i) {\n    mtf[i] = i;\n  }\n  for (i = 0; i < v_len; ++i) {\n    var index = v[i];\n    v[i] = mtf[index];\n    if (index) MoveToFront(mtf, index);\n  }\n}\n\n/* Contains a collection of huffman trees with the same alphabet size. */\nfunction HuffmanTreeGroup(alphabet_size, num_htrees) {\n  this.alphabet_size = alphabet_size;\n  this.num_htrees = num_htrees;\n  this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[(alphabet_size + 31) >>> 5]);  \n  this.htrees = new Uint32Array(num_htrees);\n}\n\nHuffmanTreeGroup.prototype.decode = function(br) {\n  var i;\n  var table_size;\n  var next = 0;\n  for (i = 0; i < this.num_htrees; ++i) {\n    this.htrees[i] = next;\n    table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);\n    next += table_size;\n  }\n};\n\nfunction DecodeContextMap(context_map_size, br) {\n  var out = { num_htrees: null, context_map: null };\n  var use_rle_for_zeros;\n  var max_run_length_prefix = 0;\n  var table;\n  var i;\n  \n  br.readMoreInput();\n  var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;\n\n  var context_map = out.context_map = new Uint8Array(context_map_size);\n  if (num_htrees <= 1) {\n    return out;\n  }\n\n  use_rle_for_zeros = br.readBits(1);\n  if (use_rle_for_zeros) {\n    max_run_length_prefix = br.readBits(4) + 1;\n  }\n  \n  table = [];\n  for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {\n    table[i] = new HuffmanCode(0, 0);\n  }\n  \n  ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);\n  \n  for (i = 0; i < context_map_size;) {\n    var code;\n\n    br.readMoreInput();\n    code = ReadSymbol(table, 0, br);\n    if (code === 0) {\n      context_map[i] = 0;\n      ++i;\n    } else if (code <= max_run_length_prefix) {\n      var reps = 1 + (1 << code) + br.readBits(code);\n      while (--reps) {\n        if (i >= context_map_size) {\n          throw new Error(\"[DecodeContextMap] i >= context_map_size\");\n        }\n        context_map[i] = 0;\n        ++i;\n      }\n    } else {\n      context_map[i] = code - max_run_length_prefix;\n      ++i;\n    }\n  }\n  if (br.readBits(1)) {\n    InverseMoveToFrontTransform(context_map, context_map_size);\n  }\n  \n  return out;\n}\n\nfunction DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {\n  var ringbuffer = tree_type * 2;\n  var index = tree_type;\n  var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);\n  var block_type;\n  if (type_code === 0) {\n    block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];\n  } else if (type_code === 1) {\n    block_type = ringbuffers[ringbuffer + ((indexes[index] - 1) & 1)] + 1;\n  } else {\n    block_type = type_code - 2;\n  }\n  if (block_type >= max_block_type) {\n    block_type -= max_block_type;\n  }\n  block_types[tree_type] = block_type;\n  ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;\n  ++indexes[index];\n}\n\nfunction CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {\n  var rb_size = ringbuffer_mask + 1;\n  var rb_pos = pos & ringbuffer_mask;\n  var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;\n  var nbytes;\n\n  /* For short lengths copy byte-by-byte */\n  if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {\n    while (len-- > 0) {\n      br.readMoreInput();\n      ringbuffer[rb_pos++] = br.readBits(8);\n      if (rb_pos === rb_size) {\n        output.write(ringbuffer, rb_size);\n        rb_pos = 0;\n      }\n    }\n    return;\n  }\n\n  if (br.bit_end_pos_ < 32) {\n    throw new Error('[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32');\n  }\n\n  /* Copy remaining 0-4 bytes from br.val_ to ringbuffer. */\n  while (br.bit_pos_ < 32) {\n    ringbuffer[rb_pos] = (br.val_ >>> br.bit_pos_);\n    br.bit_pos_ += 8;\n    ++rb_pos;\n    --len;\n  }\n\n  /* Copy remaining bytes from br.buf_ to ringbuffer. */\n  nbytes = (br.bit_end_pos_ - br.bit_pos_) >> 3;\n  if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {\n    var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;\n    for (var x = 0; x < tail; x++)\n      ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n    \n    nbytes -= tail;\n    rb_pos += tail;\n    len -= tail;\n    br_pos = 0;\n  }\n\n  for (var x = 0; x < nbytes; x++)\n    ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n  \n  rb_pos += nbytes;\n  len -= nbytes;\n\n  /* If we wrote past the logical end of the ringbuffer, copy the tail of the\n     ringbuffer to its beginning and flush the ringbuffer to the output. */\n  if (rb_pos >= rb_size) {\n    output.write(ringbuffer, rb_size);\n    rb_pos -= rb_size;    \n    for (var x = 0; x < rb_pos; x++)\n      ringbuffer[x] = ringbuffer[rb_size + x];\n  }\n\n  /* If we have more to copy than the remaining size of the ringbuffer, then we\n     first fill the ringbuffer from the input and then flush the ringbuffer to\n     the output */\n  while (rb_pos + len >= rb_size) {\n    nbytes = rb_size - rb_pos;\n    if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {\n      throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n    }\n    output.write(ringbuffer, rb_size);\n    len -= nbytes;\n    rb_pos = 0;\n  }\n\n  /* Copy straight from the input onto the ringbuffer. The ringbuffer will be\n     flushed to the output at a later time. */\n  if (br.input_.read(ringbuffer, rb_pos, len) < len) {\n    throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n  }\n\n  /* Restore the state of the bit reader. */\n  br.reset();\n}\n\n/* Advances the bit reader position to the next byte boundary and verifies\n   that any skipped bits are set to zero. */\nfunction JumpToByteBoundary(br) {\n  var new_bit_pos = (br.bit_pos_ + 7) & ~7;\n  var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);\n  return pad_bits == 0;\n}\n\nfunction BrotliDecompressedSize(buffer) {\n  var input = new BrotliInput(buffer);\n  var br = new BrotliBitReader(input);\n  DecodeWindowBits(br);\n  var out = DecodeMetaBlockLength(br);\n  return out.meta_block_length;\n}\n\nexports.BrotliDecompressedSize = BrotliDecompressedSize;\n\nfunction BrotliDecompressBuffer(buffer, output_size) {\n  var input = new BrotliInput(buffer);\n  \n  if (output_size == null) {\n    output_size = BrotliDecompressedSize(buffer);\n  }\n  \n  var output_buffer = new Uint8Array(output_size);\n  var output = new BrotliOutput(output_buffer);\n  \n  BrotliDecompress(input, output);\n  \n  if (output.pos < output.buffer.length) {\n    output.buffer = output.buffer.subarray(0, output.pos);\n  }\n  \n  return output.buffer;\n}\n\nexports.BrotliDecompressBuffer = BrotliDecompressBuffer;\n\nfunction BrotliDecompress(input, output) {\n  var i;\n  var pos = 0;\n  var input_end = 0;\n  var window_bits = 0;\n  var max_backward_distance;\n  var max_distance = 0;\n  var ringbuffer_size;\n  var ringbuffer_mask;\n  var ringbuffer;\n  var ringbuffer_end;\n  /* This ring buffer holds a few past copy distances that will be used by */\n  /* some special distance codes. */\n  var dist_rb = [ 16, 15, 11, 4 ];\n  var dist_rb_idx = 0;\n  /* The previous 2 bytes used for context. */\n  var prev_byte1 = 0;\n  var prev_byte2 = 0;\n  var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];\n  var block_type_trees;\n  var block_len_trees;\n  var br;\n\n  /* We need the slack region for the following reasons:\n       - always doing two 8-byte copies for fast backward copying\n       - transforms\n       - flushing the input ringbuffer when decoding uncompressed blocks */\n  var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;\n\n  br = new BrotliBitReader(input);\n\n  /* Decode window size. */\n  window_bits = DecodeWindowBits(br);\n  max_backward_distance = (1 << window_bits) - 16;\n\n  ringbuffer_size = 1 << window_bits;\n  ringbuffer_mask = ringbuffer_size - 1;\n  ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);\n  ringbuffer_end = ringbuffer_size;\n\n  block_type_trees = [];\n  block_len_trees = [];\n  for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {\n    block_type_trees[x] = new HuffmanCode(0, 0);\n    block_len_trees[x] = new HuffmanCode(0, 0);\n  }\n\n  while (!input_end) {\n    var meta_block_remaining_len = 0;\n    var is_uncompressed;\n    var block_length = [ 1 << 28, 1 << 28, 1 << 28 ];\n    var block_type = [ 0 ];\n    var num_block_types = [ 1, 1, 1 ];\n    var block_type_rb = [ 0, 1, 0, 1, 0, 1 ];\n    var block_type_rb_index = [ 0 ];\n    var distance_postfix_bits;\n    var num_direct_distance_codes;\n    var distance_postfix_mask;\n    var num_distance_codes;\n    var context_map = null;\n    var context_modes = null;\n    var num_literal_htrees;\n    var dist_context_map = null;\n    var num_dist_htrees;\n    var context_offset = 0;\n    var context_map_slice = null;\n    var literal_htree_index = 0;\n    var dist_context_offset = 0;\n    var dist_context_map_slice = null;\n    var dist_htree_index = 0;\n    var context_lookup_offset1 = 0;\n    var context_lookup_offset2 = 0;\n    var context_mode;\n    var htree_command;\n\n    for (i = 0; i < 3; ++i) {\n      hgroup[i].codes = null;\n      hgroup[i].htrees = null;\n    }\n\n    br.readMoreInput();\n    \n    var _out = DecodeMetaBlockLength(br);\n    meta_block_remaining_len = _out.meta_block_length;\n    if (pos + meta_block_remaining_len > output.buffer.length) {\n      /* We need to grow the output buffer to fit the additional data. */\n      var tmp = new Uint8Array( pos + meta_block_remaining_len );\n      tmp.set( output.buffer );\n      output.buffer = tmp;\n    }    \n    input_end = _out.input_end;\n    is_uncompressed = _out.is_uncompressed;\n    \n    if (_out.is_metadata) {\n      JumpToByteBoundary(br);\n      \n      for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {\n        br.readMoreInput();\n        /* Read one byte and ignore it. */\n        br.readBits(8);\n      }\n      \n      continue;\n    }\n    \n    if (meta_block_remaining_len === 0) {\n      continue;\n    }\n    \n    if (is_uncompressed) {\n      br.bit_pos_ = (br.bit_pos_ + 7) & ~7;\n      CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos,\n                                    ringbuffer, ringbuffer_mask, br);\n      pos += meta_block_remaining_len;\n      continue;\n    }\n    \n    for (i = 0; i < 3; ++i) {\n      num_block_types[i] = DecodeVarLenUint8(br) + 1;\n      if (num_block_types[i] >= 2) {\n        ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n        ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n        block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n        block_type_rb_index[i] = 1;\n      }\n    }\n    \n    br.readMoreInput();\n    \n    distance_postfix_bits = br.readBits(2);\n    num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);\n    distance_postfix_mask = (1 << distance_postfix_bits) - 1;\n    num_distance_codes = (num_direct_distance_codes + (48 << distance_postfix_bits));\n    context_modes = new Uint8Array(num_block_types[0]);\n\n    for (i = 0; i < num_block_types[0]; ++i) {\n       br.readMoreInput();\n       context_modes[i] = (br.readBits(2) << 1);\n    }\n    \n    var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);\n    num_literal_htrees = _o1.num_htrees;\n    context_map = _o1.context_map;\n    \n    var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);\n    num_dist_htrees = _o2.num_htrees;\n    dist_context_map = _o2.context_map;\n    \n    hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);\n    hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);\n    hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);\n\n    for (i = 0; i < 3; ++i) {\n      hgroup[i].decode(br);\n    }\n\n    context_map_slice = 0;\n    dist_context_map_slice = 0;\n    context_mode = context_modes[block_type[0]];\n    context_lookup_offset1 = Context.lookupOffsets[context_mode];\n    context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n    htree_command = hgroup[1].htrees[0];\n\n    while (meta_block_remaining_len > 0) {\n      var cmd_code;\n      var range_idx;\n      var insert_code;\n      var copy_code;\n      var insert_length;\n      var copy_length;\n      var distance_code;\n      var distance;\n      var context;\n      var j;\n      var copy_dst;\n\n      br.readMoreInput();\n      \n      if (block_length[1] === 0) {\n        DecodeBlockType(num_block_types[1],\n                        block_type_trees, 1, block_type, block_type_rb,\n                        block_type_rb_index, br);\n        block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);\n        htree_command = hgroup[1].htrees[block_type[1]];\n      }\n      --block_length[1];\n      cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);\n      range_idx = cmd_code >> 6;\n      if (range_idx >= 2) {\n        range_idx -= 2;\n        distance_code = -1;\n      } else {\n        distance_code = 0;\n      }\n      insert_code = Prefix.kInsertRangeLut[range_idx] + ((cmd_code >> 3) & 7);\n      copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);\n      insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset +\n          br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);\n      copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset +\n          br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);\n      prev_byte1 = ringbuffer[pos-1 & ringbuffer_mask];\n      prev_byte2 = ringbuffer[pos-2 & ringbuffer_mask];\n      for (j = 0; j < insert_length; ++j) {\n        br.readMoreInput();\n\n        if (block_length[0] === 0) {\n          DecodeBlockType(num_block_types[0],\n                          block_type_trees, 0, block_type, block_type_rb,\n                          block_type_rb_index, br);\n          block_length[0] = ReadBlockLength(block_len_trees, 0, br);\n          context_offset = block_type[0] << kLiteralContextBits;\n          context_map_slice = context_offset;\n          context_mode = context_modes[block_type[0]];\n          context_lookup_offset1 = Context.lookupOffsets[context_mode];\n          context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n        }\n        context = (Context.lookup[context_lookup_offset1 + prev_byte1] |\n                   Context.lookup[context_lookup_offset2 + prev_byte2]);\n        literal_htree_index = context_map[context_map_slice + context];\n        --block_length[0];\n        prev_byte2 = prev_byte1;\n        prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);\n        ringbuffer[pos & ringbuffer_mask] = prev_byte1;\n        if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n          output.write(ringbuffer, ringbuffer_size);\n        }\n        ++pos;\n      }\n      meta_block_remaining_len -= insert_length;\n      if (meta_block_remaining_len <= 0) break;\n\n      if (distance_code < 0) {\n        var context;\n        \n        br.readMoreInput();\n        if (block_length[2] === 0) {\n          DecodeBlockType(num_block_types[2],\n                          block_type_trees, 2, block_type, block_type_rb,\n                          block_type_rb_index, br);\n          block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);\n          dist_context_offset = block_type[2] << kDistanceContextBits;\n          dist_context_map_slice = dist_context_offset;\n        }\n        --block_length[2];\n        context = (copy_length > 4 ? 3 : copy_length - 2) & 0xff;\n        dist_htree_index = dist_context_map[dist_context_map_slice + context];\n        distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);\n        if (distance_code >= num_direct_distance_codes) {\n          var nbits;\n          var postfix;\n          var offset;\n          distance_code -= num_direct_distance_codes;\n          postfix = distance_code & distance_postfix_mask;\n          distance_code >>= distance_postfix_bits;\n          nbits = (distance_code >> 1) + 1;\n          offset = ((2 + (distance_code & 1)) << nbits) - 4;\n          distance_code = num_direct_distance_codes +\n              ((offset + br.readBits(nbits)) <<\n               distance_postfix_bits) + postfix;\n        }\n      }\n\n      /* Convert the distance code to the actual distance by possibly looking */\n      /* up past distnaces from the ringbuffer. */\n      distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);\n      if (distance < 0) {\n        throw new Error('[BrotliDecompress] invalid distance');\n      }\n\n      if (pos < max_backward_distance &&\n          max_distance !== max_backward_distance) {\n        max_distance = pos;\n      } else {\n        max_distance = max_backward_distance;\n      }\n\n      copy_dst = pos & ringbuffer_mask;\n\n      if (distance > max_distance) {\n        if (copy_length >= BrotliDictionary.minDictionaryWordLength &&\n            copy_length <= BrotliDictionary.maxDictionaryWordLength) {\n          var offset = BrotliDictionary.offsetsByLength[copy_length];\n          var word_id = distance - max_distance - 1;\n          var shift = BrotliDictionary.sizeBitsByLength[copy_length];\n          var mask = (1 << shift) - 1;\n          var word_idx = word_id & mask;\n          var transform_idx = word_id >> shift;\n          offset += word_idx * copy_length;\n          if (transform_idx < Transform.kNumTransforms) {\n            var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);\n            copy_dst += len;\n            pos += len;\n            meta_block_remaining_len -= len;\n            if (copy_dst >= ringbuffer_end) {\n              output.write(ringbuffer, ringbuffer_size);\n              \n              for (var _x = 0; _x < (copy_dst - ringbuffer_end); _x++)\n                ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];\n            }\n          } else {\n            throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n              \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n          }\n        } else {\n          throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n            \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n        }\n      } else {\n        if (distance_code > 0) {\n          dist_rb[dist_rb_idx & 3] = distance;\n          ++dist_rb_idx;\n        }\n\n        if (copy_length > meta_block_remaining_len) {\n          throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n            \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n        }\n\n        for (j = 0; j < copy_length; ++j) {\n          ringbuffer[pos & ringbuffer_mask] = ringbuffer[(pos - distance) & ringbuffer_mask];\n          if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n            output.write(ringbuffer, ringbuffer_size);\n          }\n          ++pos;\n          --meta_block_remaining_len;\n        }\n      }\n\n      /* When we get here, we must have inserted at least one literal and */\n      /* made a copy of at least length two, therefore accessing the last 2 */\n      /* bytes is valid. */\n      prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask];\n      prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask];\n    }\n\n    /* Protect pos from overflow, wrap it around at every GB of input data */\n    pos &= 0x3fffffff;\n  }\n\n  output.write(ringbuffer, pos & ringbuffer_mask);\n}\n\nexports.BrotliDecompress = BrotliDecompress;\n\nBrotliDictionary.init();\n\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports) {\n\nfunction BrotliInput(buffer) {\n  this.buffer = buffer;\n  this.pos = 0;\n}\n\nBrotliInput.prototype.read = function(buf, i, count) {\n  if (this.pos + count > this.buffer.length) {\n    count = this.buffer.length - this.pos;\n  }\n  \n  for (var p = 0; p < count; p++)\n    buf[i + p] = this.buffer[this.pos + p];\n  \n  this.pos += count;\n  return count;\n}\n\nexports.BrotliInput = BrotliInput;\n\nfunction BrotliOutput(buf) {\n  this.buffer = buf;\n  this.pos = 0;\n}\n\nBrotliOutput.prototype.write = function(buf, count) {\n  if (this.pos + count > this.buffer.length)\n    throw new Error('Output buffer is not large enough');\n  \n  this.buffer.set(buf.subarray(0, count), this.pos);\n  this.pos += count;\n  return count;\n};\n\nexports.BrotliOutput = BrotliOutput;\n\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Collection of static dictionary words.\n*/\n\nvar data = __webpack_require__(528);\nexports.init = function() {\n  exports.dictionary = data.init();\n};\n\nexports.offsetsByLength = new Uint32Array([\n     0,     0,     0,     0,     0,  4096,  9216, 21504, 35840, 44032,\n 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536,\n 115968, 118528, 119872, 121280, 122016,\n]);\n\nexports.sizeBitsByLength = new Uint8Array([\n  0,  0,  0,  0, 10, 10, 11, 11, 10, 10,\n 10, 10, 10,  9,  9,  8,  7,  7,  8,  7,\n  7,  6,  6,  5,  5,\n]);\n\nexports.minDictionaryWordLength = 4;\nexports.maxDictionaryWordLength = 24;\n\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports) {\n\nfunction HuffmanCode(bits, value) {\n  this.bits = bits;   /* number of bits used for this symbol */\n  this.value = value; /* symbol value or table offset */\n}\n\nexports.HuffmanCode = HuffmanCode;\n\nvar MAX_LENGTH = 15;\n\n/* Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the\n   bit-wise reversal of the len least significant bits of key. */\nfunction GetNextKey(key, len) {\n  var step = 1 << (len - 1);\n  while (key & step) {\n    step >>= 1;\n  }\n  return (key & (step - 1)) + step;\n}\n\n/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\n/* Assumes that end is an integer multiple of step */\nfunction ReplicateValue(table, i, step, end, code) {\n  do {\n    end -= step;\n    table[i + end] = new HuffmanCode(code.bits, code.value);\n  } while (end > 0);\n}\n\n/* Returns the table width of the next 2nd level table. count is the histogram\n   of bit lengths for the remaining symbols, len is the code length of the next\n   processed symbol */\nfunction NextTableBitSize(count, len, root_bits) {\n  var left = 1 << (len - root_bits);\n  while (len < MAX_LENGTH) {\n    left -= count[len];\n    if (left <= 0) break;\n    ++len;\n    left <<= 1;\n  }\n  return len - root_bits;\n}\n\nexports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {\n  var start_table = table;\n  var code;            /* current table entry */\n  var len;             /* current code length */\n  var symbol;          /* symbol index in original or sorted table */\n  var key;             /* reversed prefix code */\n  var step;            /* step size to replicate values in current table */\n  var low;             /* low bits for current root entry */\n  var mask;            /* mask for low bits */\n  var table_bits;      /* key length of current table */\n  var table_size;      /* size of current table */\n  var total_size;      /* sum of root table size and 2nd level table sizes */\n  var sorted;          /* symbols sorted by code length */\n  var count = new Int32Array(MAX_LENGTH + 1);  /* number of codes of each length */\n  var offset = new Int32Array(MAX_LENGTH + 1);  /* offsets in sorted table for each length */\n\n  sorted = new Int32Array(code_lengths_size);\n\n  /* build histogram of code lengths */\n  for (symbol = 0; symbol < code_lengths_size; symbol++) {\n    count[code_lengths[symbol]]++;\n  }\n\n  /* generate offsets into sorted symbol table by code length */\n  offset[1] = 0;\n  for (len = 1; len < MAX_LENGTH; len++) {\n    offset[len + 1] = offset[len] + count[len];\n  }\n\n  /* sort symbols by length, by symbol order within each length */\n  for (symbol = 0; symbol < code_lengths_size; symbol++) {\n    if (code_lengths[symbol] !== 0) {\n      sorted[offset[code_lengths[symbol]]++] = symbol;\n    }\n  }\n  \n  table_bits = root_bits;\n  table_size = 1 << table_bits;\n  total_size = table_size;\n\n  /* special case code with only one value */\n  if (offset[MAX_LENGTH] === 1) {\n    for (key = 0; key < total_size; ++key) {\n      root_table[table + key] = new HuffmanCode(0, sorted[0] & 0xffff);\n    }\n    \n    return total_size;\n  }\n\n  /* fill in root table */\n  key = 0;\n  symbol = 0;\n  for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {\n    for (; count[len] > 0; --count[len]) {\n      code = new HuffmanCode(len & 0xff, sorted[symbol++] & 0xffff);\n      ReplicateValue(root_table, table + key, step, table_size, code);\n      key = GetNextKey(key, len);\n    }\n  }\n\n  /* fill in 2nd level tables and add pointers to root table */\n  mask = total_size - 1;\n  low = -1;\n  for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {\n    for (; count[len] > 0; --count[len]) {\n      if ((key & mask) !== low) {\n        table += table_size;\n        table_bits = NextTableBitSize(count, len, root_bits);\n        table_size = 1 << table_bits;\n        total_size += table_size;\n        low = key & mask;\n        root_table[start_table + low] = new HuffmanCode((table_bits + root_bits) & 0xff, ((table - start_table) - low) & 0xffff);\n      }\n      code = new HuffmanCode((len - root_bits) & 0xff, sorted[symbol++] & 0xffff);\n      ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);\n      key = GetNextKey(key, len);\n    }\n  }\n  \n  return total_size;\n}\n\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar AI, AL, BA, BK, CB, CJ, CR, ID, LF, NL, NS, SA, SG, SP, WJ, XX;\n\nvar UnicodeTrie = __webpack_require__(534);\n\n\n\nvar base64 = __webpack_require__(535);\n\nvar _require = __webpack_require__(536);\n\nBK = _require.BK;\nCR = _require.CR;\nLF = _require.LF;\nNL = _require.NL;\nCB = _require.CB;\nBA = _require.BA;\nSP = _require.SP;\nWJ = _require.WJ;\nSP = _require.SP;\nBK = _require.BK;\nLF = _require.LF;\nNL = _require.NL;\nAI = _require.AI;\nAL = _require.AL;\nSA = _require.SA;\nSG = _require.SG;\nXX = _require.XX;\nCJ = _require.CJ;\nID = _require.ID;\nNS = _require.NS;\n\nvar _require2 = __webpack_require__(537),\n    DI_BRK = _require2.DI_BRK,\n    IN_BRK = _require2.IN_BRK,\n    CI_BRK = _require2.CI_BRK,\n    CP_BRK = _require2.CP_BRK,\n    PR_BRK = _require2.PR_BRK,\n    pairTable = _require2.pairTable;\n\nvar data = base64.toByteArray(\"AA4IAAAAAAAAAhqg5VV7NJtZvz7fTC8zU5deplUlMrQoWqmqahD5So0aipYWrUhVFSVBQ10iSTtUtW6nKDVF6k7d75eQfEUbFcQ9KiFS90tQEolcP23nrLPmO+esr/+f39rr/a293t/e7/P8nmfvlz0O6RvrBJADtbBNaD88IOKTOmOrCqhu9zE770vc1pBV/xL5dxj2V7Zj4FGSomFKStCWNlV7hG1VabZfZ1LaHbFrRwzzLjzPoi1UHDnlV/lWbhgIIJvLBp/pu7AHEdRnIY+ROdXxg4fNpMdTxVnnm08OjozejAVsBqwqz8kddGRlRxsd8c55dNZoPuex6a7Dt6L0NNb03sqgTlR2/OT7eTt0Y0WnpUXxLsp5SMANc4DsmX4zJUBQvznwexm9tsMH+C9uRYMPOd96ZHB29NZjCIM2nfO7tsmQveX3l2r7ft0N4/SRJ7kO6Y8ZCaeuUQ4gMTZ67cp7TgxvlNDsPgOBdZi2YTam5Q7m3+00l+XG7PrDe6YoPmHgK+yLih7fAR16ZFCeD9WvOVt+gfNW/KT5/M6rb/9KERt+N1lad5RneVjzxXHsLofuU+TvrEsr3+26sVz5WJh6L/svoPK3qepFH9bysDljWtD1F7KrxzW1i9r+e/NLxV/acts7zuo304J9+t3Pd6Y6u8f3EAqxNRgv5DZjaI3unyvkvHPya/v3mWVYOC38qBq11+yHZ2bAyP1HbkV92vdno7r2lxz9UwCdCJVfd14NLcpO2CadHS/XPJ9doXgz5vLv/1OBVS3gX0D9n6LiNIDfpilO9RsLgZ2W/wIy8W/Rh93jfoz4qmRV2xElv6p2lRXQdO6/Cv8f5nGn3u0wLXjhnvClabL1o+7yvIpvLfT/xsKG30y/sTvq30ia9Czxp9dr9v/e7Yn/O0QJXxxBOJmceP/DBFa1q1v6oudn/e6qc/37dUoNvnYL4plQ9OoneYOh/r8fOFm7yl7FETHY9dXd5K2n/qEc53dOEe1TTJcvCfp1dpTC334l0vyaFL6mttNEbFjzO+ZV2mLk0qc3BrxJ4d9gweMmjRorxb7vic0rSq6D4wzAyFWas1TqPE0sLI8XLAryC8tPChaN3ALEZSWmtB34SyZcxXYn/E4Tg0LeMIPhgPKD9zyHGMxxhxnDDih7eI86xECTM8zodUCdgffUmRh4rQ8zyA6ow/Aei+01a8OMfziQQ+GAEkhwN/cqUFYAVzA9ex4n6jgtsiMvXf5BtXxEU4hSphvx3v8+9au8eEekEEpkrkne/zB1M+HAPuXIz3paxKlfe8aDMfGWAX6Md6PuuAdKHFVH++Ed5LEji94Z5zeiJIxbmWeN7rr1/ZcaBl5/nimdHsHgIH/ssyLUXZ4fDQ46HnBb+hQqG8yNiKRrXL/b1IPYDUsu3dFKtRMcjqlRvONd4xBvOufx2cUHuk8pmG1D7PyOQmUmluisVFS9OWS8fPIe8LiCtjwJKnEC9hrS9uKmISI3Wa5+vdXUG9dtyfr7g/oJv2wbzeZU838G6mEvntUb3SVV/fBZ6H/sL+lElzeRrHy2Xbe7UWX1q5sgOQ81rv+2baej4fP4m5Mf/GkoxfDtT3++KP7do9Jn26aa6xAhCf5L9RZVfkWKCcjI1eYbm2plvTEqkDxKC402bGzXCYaGnuALHabBT1dFLuOSB7RorOPEhZah1NjZIgR/UFGfK3p1ElYnevOMBDLURdpIjrI+qZk4sffGbRFiXuEmdFjiAODlQCJvIaB1rW61Ljg3y4eS4LAcSgDxxZQs0DYa15wA032Z+lGUfpoyOrFo3mg1sRQtN/fHHCx3TrM8eTrldMbYisDLXbUDoXMLejSq0fUNuO1muX0gEa8vgyegkqiqqbC3W0S4cC9Kmt8MuS/hFO7Xei3f8rSvIjeveMM7kxjUixOrl6gJshe4JU7PhOHpfrRYvu7yoAZKa3Buyk2J+K5W+nNTz1nhJDhRUfDJLiUXxjxXCJeeaOe/r7HlBP/uURc/5efaZEPxr55Qj39rfTLkugUGyMrwo7HAglfEjDriehF1jXtwJkPoiYkYQ5aoXSA7qbCBGKq5hwtu2VkpI9xVDop/1xrC52eiIvCoPWx4lLl40jm9upvycVPfpaH9/o2D4xKXpeNjE2HPQRS+3RFaYTc4Txw7Dvq5X6JBRwzs9mvoB49BK6b+XgsZVJYiInTlSXZ+62FT18mkFVcPKCJsoF5ahb19WheZLUYsSwdrrVM3aQ2XE6SzU2xHDS6iWkodk5AF6F8WUNmmushi8aVpMPwiIfEiQWo3CApONDRjrhDiVnkaFsaP5rjIJkmsN6V26li5LNM3JxGSyKgomknTyyrhcnwv9Qcqaq5utAh44W30SWo8Q0XHKR0glPF4fWst1FUCnk2woFq3iy9fAbzcjJ8fvSjgKVOfn14RDqyQuIgaGJZuswTywdCFSa89SakMf6fe+9KaQMYQlKxiJBczuPSho4wmBjdA+ag6QUOr2GdpcbSl51Ay6khhBt5UXdrnxc7ZGMxCvz96A4oLocxh2+px+1zkyLacCGrxnPzTRSgrLKpStFpH5ppKWm7PgMKZtwgytKLOjbGCOQLTm+KOowqa1sdut9raj1CZFkZD0jbaKNLpJUarSH5Qknx1YiOxdA5L6d5sfI/unmkSF65Ic/AvtXt98Pnrdwl5vgppQ3dYzWFwknZsy6xh2llmLxpegF8ayLwniknlXRHiF4hzzrgB8jQ4wdIqcaHCEAxyJwCeGkXPBZYSrrGa4vMwZvNN9aK0F4JBOK9mQ8g8EjEbIQVwvfS2D8GuCYsdqwqSWbQrfWdTRUJMqmpnWPax4Z7E137I6brHbvjpPlfNZpF1d7PP7HB/MPHcHVKTMhLO4f3CZcaccZEOiS2DpKiQB5KXDJ+Ospcz4qTRCRxgrKEQIgUkKLTKKwskdx2DWo3bg3PEoB5h2nA24olwfKSR+QR6TAvEDi/0czhUT59RZmO1MGeKGeEfuOSPWfL+XKmhqpZmOVR9mJVNDPKOS49Lq+Um10YsBybzDMtemlPCOJEtE8zaXhsaqEs9bngSJGhlOTTMlCXly9Qv5cRN3PVLK7zoMptutf7ihutrQ/Xj7VqeCdUwleTTKklOI8Wep9h7fCY0kVtDtIWKnubWAvbNZtsRRqOYl802vebPEkZRSZc6wXOfPtpPtN5HI63EUFfsy7U/TLr8NkIzaY3vx4A28x765XZMzRZTpMk81YIMuwJ5+/zoCuZj1wGnaHObxa5rpKZj4WhT670maRw04w0e3cZW74Z0aZe2n05hjZaxm6urenz8Ef5O6Yu1J2aqYAlqsCXs5ZB5o1JJ5l3xkTVr8rJQ09NLsBqRRDT2IIjOPmcJa6xQ1R5yGP9jAsj23xYDTezdyqG8YWZ7vJBIWK56K+iDgcHimiQOTIasNSua1fOBxsKMMEKd15jxTl+3CyvGCR+UyRwuSI2XuwRIPoNNclPihfJhaq2mKkNijwYLY6feqohktukmI3KDvOpN7ItCqHHhNuKlxMfBAEO5LjW2RKh6lE5Hd1dtAOopac/Z4FdsNsjMhXz/ug8JGmbVJTA+VOBJXdrYyJcIn5+OEeoK8kWEWF+wdG8ZtZHKSquWDtDVyhFPkRVqguKFkLkKCz46hcU1SUY9oJ2Sk+dmq0kglqk4kqKT1CV9JDELPjK1WsWGkEXF87g9P98e5ff0mIupm/w6vc3kCeq04X5bgJQlcMFRjlFWmSk+kssXCAVikfeAlMuzpUvCSdXiG+dc6KrIiLxxhbEVuKf7vW7KmDQI95bZe3H9mN3/77F6fZ2Yx/F9yClllj8gXpLWLpd5+v90iOaFa9sd7Pvx0lNa1o1+bkiZ69wCiC2x9UIb6/boBCuNMB/HYR0RC6+FD9Oe5qrgQl6JbXtkaYn0wkdNhROLqyhv6cKvyMj1Fvs2o3OOKoMYTubGENLfY5F6H9d8wX1cnINsvz+wZFQu3zhWVlwJvwBEp69Dqu/ZnkBf3nIfbx4TK7zOVJH5sGJX+IMwkn1vVBn38GbpTg9bJnMcTOb5F6Ci5gOn9Fcy6Qzcu+FL6mYJJ+f2ZZJGda1VqruZ0JRXItp8X0aTjIcJgzdaXlha7q7kV4ebrMsunfsRyRa9qYuryBHA0hc1KVsKdE+oI0ljLmSAyMze8lWmc5/lQ18slyTVC/vADTc+SNM5++gztTBLz4m0aVUKcfgOEExuKVomJ7XQDZuziMDjG6JP9tgR7JXZTeo9RGetW/Xm9/TgPJpTgHACPOGvmy2mDm9fl09WeMm9sQUAXP3Su2uApeCwJVT5iWCXDgmcuTsFgU9Nm6/PusJzSbDQIMfl6INY/OAEvZRN54BSSXUClM51im6Wn9VhVamKJmzOaFJErgJcs0etFZ40LIF3EPkjFTjGmAhsd174NnOwJW8TdJ1Dja+E6Wa6FVS22Haj1DDA474EesoMP5nbspAPJLWJ8rYcP1DwCslhnn+gTFm+sS9wY+U6SogAa9tiwpoxuaFeqm2OK+uozR6SfiLCOPz36LiDlzXr6UWd7BpY6mlrNANkTOeme5EgnnAkQRTGo9T6iYxbUKfGJcI9B+ub2PcyUOgpwXbOf3bHFWtygD7FYbRhb+vkzi87dB0JeXl/vBpBUz93VtqZi7AL7C1VowTF+tGmyurw7DBcktc+UMY0E10Jw4URojf8NdaNpN6E1q4+Oz+4YePtMLy8FPRP\");\nvar classTrie = new UnicodeTrie(data);\n\nvar mapClass = function mapClass(c) {\n  switch (c) {\n    case AI:\n      return AL;\n\n    case SA:\n    case SG:\n    case XX:\n      return AL;\n\n    case CJ:\n      return NS;\n\n    default:\n      return c;\n  }\n};\n\nvar mapFirst = function mapFirst(c) {\n  switch (c) {\n    case LF:\n    case NL:\n      return BK;\n\n    case CB:\n      return BA;\n\n    case SP:\n      return WJ;\n\n    default:\n      return c;\n  }\n};\n\nvar Break = function Break(position, required) {\n  if (required === void 0) {\n    required = false;\n  }\n\n  this.position = position;\n  this.required = required;\n};\n\n;\n\nvar LineBreaker = /*#__PURE__*/function () {\n  function LineBreaker(string) {\n    this.string = string;\n    this.pos = 0;\n    this.lastPos = 0;\n    this.curClass = null;\n    this.nextClass = null;\n  }\n\n  var _proto = LineBreaker.prototype;\n\n  _proto.nextCodePoint = function nextCodePoint() {\n    var code = this.string.charCodeAt(this.pos++);\n    var next = this.string.charCodeAt(this.pos); // If a surrogate pair\n\n    if (0xd800 <= code && code <= 0xdbff && 0xdc00 <= next && next <= 0xdfff) {\n      this.pos++;\n      return (code - 0xd800) * 0x400 + (next - 0xdc00) + 0x10000;\n    }\n\n    return code;\n  };\n\n  _proto.nextCharClass = function nextCharClass() {\n    return mapClass(classTrie.get(this.nextCodePoint()));\n  };\n\n  _proto.nextBreak = function nextBreak() {\n    // get the first char if we're at the beginning of the string\n    if (this.curClass == null) {\n      this.curClass = mapFirst(this.nextCharClass());\n    }\n\n    while (this.pos < this.string.length) {\n      this.lastPos = this.pos;\n      var lastClass = this.nextClass;\n      this.nextClass = this.nextCharClass(); // explicit newline\n\n      if (this.curClass === BK || this.curClass === CR && this.nextClass !== LF) {\n        this.curClass = mapFirst(mapClass(this.nextClass));\n        return new Break(this.lastPos, true);\n      } // handle classes not handled by the pair table\n\n\n      var cur = void 0;\n\n      switch (this.nextClass) {\n        case SP:\n          cur = this.curClass;\n          break;\n\n        case BK:\n        case LF:\n        case NL:\n          cur = BK;\n          break;\n\n        case CR:\n          cur = CR;\n          break;\n\n        case CB:\n          cur = BA;\n          break;\n      }\n\n      if (cur != null) {\n        this.curClass = cur;\n\n        if (this.nextClass === CB) {\n          return new Break(this.lastPos);\n        }\n\n        continue;\n      } // if not handled already, use the pair table\n\n\n      var shouldBreak = false;\n\n      switch (pairTable[this.curClass][this.nextClass]) {\n        case DI_BRK:\n          // Direct break\n          shouldBreak = true;\n          break;\n\n        case IN_BRK:\n          // possible indirect break\n          shouldBreak = lastClass === SP;\n          break;\n\n        case CI_BRK:\n          shouldBreak = lastClass === SP;\n\n          if (!shouldBreak) {\n            continue;\n          }\n\n          break;\n\n        case CP_BRK:\n          // prohibited for combining marks\n          if (lastClass !== SP) {\n            continue;\n          }\n\n          break;\n      }\n\n      this.curClass = this.nextClass;\n\n      if (shouldBreak) {\n        return new Break(this.lastPos);\n      }\n    }\n\n    if (this.pos >= this.string.length) {\n      if (this.lastPos < this.string.length) {\n        this.lastPos = this.string.length;\n        return new Break(this.string.length);\n      } else {\n        return null;\n      }\n    }\n  };\n\n  return LineBreaker;\n}();\n\n;\nmodule.exports = LineBreaker;\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction TraversalTracker() {\n\tthis.events = {};\n}\n\nTraversalTracker.prototype.startTracking = function (event, callback) {\n\tvar callbacks = this.events[event] || (this.events[event] = []);\n\n\tif (callbacks.indexOf(callback) < 0) {\n\t\tcallbacks.push(callback);\n\t}\n};\n\nTraversalTracker.prototype.stopTracking = function (event, callback) {\n\tvar callbacks = this.events[event];\n\n\tif (!callbacks) {\n\t\treturn;\n\t}\n\n\tvar index = callbacks.indexOf(callback);\n\tif (index >= 0) {\n\t\tcallbacks.splice(index, 1);\n\t}\n};\n\nTraversalTracker.prototype.emit = function (event) {\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\tvar callbacks = this.events[event];\n\n\tif (!callbacks) {\n\t\treturn;\n\t}\n\n\tcallbacks.forEach(function (callback) {\n\t\tcallback.apply(this, args);\n\t});\n};\n\nTraversalTracker.prototype.auto = function (event, callback, innerFunction) {\n\tthis.startTracking(event, callback);\n\tinnerFunction();\n\tthis.stopTracking(event, callback);\n};\n\nmodule.exports = TraversalTracker;\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isString = __webpack_require__(0).isString;\nvar isArray = __webpack_require__(0).isArray;\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar isNull = __webpack_require__(0).isNull;\n\n/**\n * Creates an instance of StyleContextStack used for style inheritance and style overrides\n *\n * @constructor\n * @this {StyleContextStack}\n * @param {Object} named styles dictionary\n * @param {Object} optional default style definition\n */\nfunction StyleContextStack(styleDictionary, defaultStyle) {\n\tthis.defaultStyle = defaultStyle || {};\n\tthis.styleDictionary = styleDictionary;\n\tthis.styleOverrides = [];\n}\n\n/**\n * Creates cloned version of current stack\n * @return {StyleContextStack} current stack snapshot\n */\nStyleContextStack.prototype.clone = function () {\n\tvar stack = new StyleContextStack(this.styleDictionary, this.defaultStyle);\n\n\tthis.styleOverrides.forEach(function (item) {\n\t\tstack.styleOverrides.push(item);\n\t});\n\n\treturn stack;\n};\n\n/**\n * Pushes style-name or style-overrides-object onto the stack for future evaluation\n *\n * @param {String|Object} styleNameOrOverride style-name (referring to styleDictionary) or\n *                                            a new dictionary defining overriding properties\n */\nStyleContextStack.prototype.push = function (styleNameOrOverride) {\n\tthis.styleOverrides.push(styleNameOrOverride);\n};\n\n/**\n * Removes last style-name or style-overrides-object from the stack\n *\n * @param {Number} howMany - optional number of elements to be popped (if not specified,\n *                           one element will be removed from the stack)\n */\nStyleContextStack.prototype.pop = function (howMany) {\n\thowMany = howMany || 1;\n\n\twhile (howMany-- > 0) {\n\t\tthis.styleOverrides.pop();\n\t}\n};\n\n/**\n * Creates a set of named styles or/and a style-overrides-object based on the item,\n * pushes those elements onto the stack for future evaluation and returns the number\n * of elements pushed, so they can be easily poped then.\n *\n * @param {Object} item - an object with optional style property and/or style overrides\n * @return the number of items pushed onto the stack\n */\nStyleContextStack.prototype.autopush = function (item) {\n\tif (isString(item)) {\n\t\treturn 0;\n\t}\n\n\tvar styleNames = [];\n\n\tif (item.style) {\n\t\tif (isArray(item.style)) {\n\t\t\tstyleNames = item.style;\n\t\t} else {\n\t\t\tstyleNames = [item.style];\n\t\t}\n\t}\n\n\tfor (var i = 0, l = styleNames.length; i < l; i++) {\n\t\tthis.push(styleNames[i]);\n\t}\n\n\tvar styleProperties = [\n\t\t'font',\n\t\t'fontSize',\n\t\t'fontFeatures',\n\t\t'bold',\n\t\t'italics',\n\t\t'alignment',\n\t\t'color',\n\t\t'columnGap',\n\t\t'fillColor',\n\t\t'fillOpacity',\n\t\t'decoration',\n\t\t'decorationStyle',\n\t\t'decorationColor',\n\t\t'background',\n\t\t'lineHeight',\n\t\t'characterSpacing',\n\t\t'noWrap',\n\t\t'markerColor',\n\t\t'leadingIndent',\n\t\t'sup',\n\t\t'sub'\n\t\t//'tableCellPadding'\n\t\t// 'cellBorder',\n\t\t// 'headerCellBorder',\n\t\t// 'oddRowCellBorder',\n\t\t// 'evenRowCellBorder',\n\t\t// 'tableBorder'\n\t];\n\tvar styleOverrideObject = {};\n\tvar pushStyleOverrideObject = false;\n\n\tstyleProperties.forEach(function (key) {\n\t\tif (!isUndefined(item[key]) && !isNull(item[key])) {\n\t\t\tstyleOverrideObject[key] = item[key];\n\t\t\tpushStyleOverrideObject = true;\n\t\t}\n\t});\n\n\tif (pushStyleOverrideObject) {\n\t\tthis.push(styleOverrideObject);\n\t}\n\n\treturn styleNames.length + (pushStyleOverrideObject ? 1 : 0);\n};\n\n/**\n * Automatically pushes elements onto the stack, using autopush based on item,\n * executes callback and then pops elements back. Returns value returned by callback\n *\n * @param  {Object}   item - an object with optional style property and/or style overrides\n * @param  {Function} function to be called between autopush and pop\n * @return {Object} value returned by callback\n */\nStyleContextStack.prototype.auto = function (item, callback) {\n\tvar pushedItems = this.autopush(item);\n\tvar result = callback();\n\n\tif (pushedItems > 0) {\n\t\tthis.pop(pushedItems);\n\t}\n\n\treturn result;\n};\n\n/**\n * Evaluates stack and returns value of a named property\n *\n * @param {String} property - property name\n * @return property value or null if not found\n */\nStyleContextStack.prototype.getProperty = function (property) {\n\tif (this.styleOverrides) {\n\t\tfor (var i = this.styleOverrides.length - 1; i >= 0; i--) {\n\t\t\tvar item = this.styleOverrides[i];\n\n\t\t\tif (isString(item)) {\n\t\t\t\t// named-style-override\n\t\t\t\tvar style = this.styleDictionary[item];\n\t\t\t\tif (style && !isUndefined(style[property]) && !isNull(style[property])) {\n\t\t\t\t\treturn style[property];\n\t\t\t\t}\n\t\t\t} else if (!isUndefined(item[property]) && !isNull(item[property])) {\n\t\t\t\t// style-overrides-object\n\t\t\t\treturn item[property];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn this.defaultStyle && this.defaultStyle[property];\n};\n\nmodule.exports = StyleContextStack;\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar TraversalTracker = __webpack_require__(291);\nvar isString = __webpack_require__(0).isString;\n\n/**\n * Creates an instance of DocumentContext - a store for current x, y positions and available width/height.\n * It facilitates column divisions and vertical sync\n */\nfunction DocumentContext(pageSize, pageMargins) {\n\tthis.pages = [];\n\n\tthis.pageMargins = pageMargins;\n\n\tthis.x = pageMargins.left;\n\tthis.availableWidth = pageSize.width - pageMargins.left - pageMargins.right;\n\tthis.availableHeight = 0;\n\tthis.page = -1;\n\n\tthis.snapshots = [];\n\n\tthis.endingCell = null;\n\n\tthis.tracker = new TraversalTracker();\n\n\tthis.backgroundLength = [];\n\n\tthis.addPage(pageSize);\n}\n\nDocumentContext.prototype.beginColumnGroup = function () {\n\tthis.snapshots.push({\n\t\tx: this.x,\n\t\ty: this.y,\n\t\tavailableHeight: this.availableHeight,\n\t\tavailableWidth: this.availableWidth,\n\t\tpage: this.page,\n\t\tbottomMost: {\n\t\t\tx: this.x,\n\t\t\ty: this.y,\n\t\t\tavailableHeight: this.availableHeight,\n\t\t\tavailableWidth: this.availableWidth,\n\t\t\tpage: this.page\n\t\t},\n\t\tendingCell: this.endingCell,\n\t\tlastColumnWidth: this.lastColumnWidth\n\t});\n\n\tthis.lastColumnWidth = 0;\n};\n\nDocumentContext.prototype.beginColumn = function (width, offset, endingCell) {\n\tvar saved = this.snapshots[this.snapshots.length - 1];\n\n\tthis.calculateBottomMost(saved);\n\n\tthis.endingCell = endingCell;\n\tthis.page = saved.page;\n\tthis.x = this.x + this.lastColumnWidth + (offset || 0);\n\tthis.y = saved.y;\n\tthis.availableWidth = width;\t//saved.availableWidth - offset;\n\tthis.availableHeight = saved.availableHeight;\n\n\tthis.lastColumnWidth = width;\n};\n\nDocumentContext.prototype.calculateBottomMost = function (destContext) {\n\tif (this.endingCell) {\n\t\tthis.saveContextInEndingCell(this.endingCell);\n\t\tthis.endingCell = null;\n\t} else {\n\t\tdestContext.bottomMost = bottomMostContext(this, destContext.bottomMost);\n\t}\n};\n\nDocumentContext.prototype.markEnding = function (endingCell) {\n\tthis.page = endingCell._columnEndingContext.page;\n\tthis.x = endingCell._columnEndingContext.x;\n\tthis.y = endingCell._columnEndingContext.y;\n\tthis.availableWidth = endingCell._columnEndingContext.availableWidth;\n\tthis.availableHeight = endingCell._columnEndingContext.availableHeight;\n\tthis.lastColumnWidth = endingCell._columnEndingContext.lastColumnWidth;\n};\n\nDocumentContext.prototype.saveContextInEndingCell = function (endingCell) {\n\tendingCell._columnEndingContext = {\n\t\tpage: this.page,\n\t\tx: this.x,\n\t\ty: this.y,\n\t\tavailableHeight: this.availableHeight,\n\t\tavailableWidth: this.availableWidth,\n\t\tlastColumnWidth: this.lastColumnWidth\n\t};\n};\n\nDocumentContext.prototype.completeColumnGroup = function (height) {\n\tvar saved = this.snapshots.pop();\n\n\tthis.calculateBottomMost(saved);\n\n\tthis.endingCell = null;\n\tthis.x = saved.x;\n\n\tvar y = saved.bottomMost.y;\n\tif (height) {\n\t\tif (saved.page === saved.bottomMost.page) {\n\t\t\tif ((saved.y + height) > y) {\n\t\t\t\ty = saved.y + height;\n\t\t\t}\n\t\t} else {\n\t\t\ty += height;\n\t\t}\n\t}\n\n\tthis.y = y;\n\tthis.page = saved.bottomMost.page;\n\tthis.availableWidth = saved.availableWidth;\n\tthis.availableHeight = saved.bottomMost.availableHeight;\n\tif (height) {\n\t\tthis.availableHeight -= (y - saved.bottomMost.y);\n\t}\n\tthis.lastColumnWidth = saved.lastColumnWidth;\n};\n\nDocumentContext.prototype.addMargin = function (left, right) {\n\tthis.x += left;\n\tthis.availableWidth -= left + (right || 0);\n};\n\nDocumentContext.prototype.moveDown = function (offset) {\n\tthis.y += offset;\n\tthis.availableHeight -= offset;\n\n\treturn this.availableHeight > 0;\n};\n\nDocumentContext.prototype.initializePage = function () {\n\tthis.y = this.pageMargins.top;\n\tthis.availableHeight = this.getCurrentPage().pageSize.height - this.pageMargins.top - this.pageMargins.bottom;\n\tthis.pageSnapshot().availableWidth = this.getCurrentPage().pageSize.width - this.pageMargins.left - this.pageMargins.right;\n};\n\nDocumentContext.prototype.pageSnapshot = function () {\n\tif (this.snapshots[0]) {\n\t\treturn this.snapshots[0];\n\t} else {\n\t\treturn this;\n\t}\n};\n\nDocumentContext.prototype.moveTo = function (x, y) {\n\tif (x !== undefined && x !== null) {\n\t\tthis.x = x;\n\t\tthis.availableWidth = this.getCurrentPage().pageSize.width - this.x - this.pageMargins.right;\n\t}\n\tif (y !== undefined && y !== null) {\n\t\tthis.y = y;\n\t\tthis.availableHeight = this.getCurrentPage().pageSize.height - this.y - this.pageMargins.bottom;\n\t}\n};\n\nDocumentContext.prototype.moveToRelative = function (x, y) {\n\tif (x !== undefined && x !== null) {\n\t\tthis.x = this.x + x;\n\t}\n\tif (y !== undefined && y !== null) {\n\t\tthis.y = this.y + y;\n\t}\n};\n\nDocumentContext.prototype.beginDetachedBlock = function () {\n\tthis.snapshots.push({\n\t\tx: this.x,\n\t\ty: this.y,\n\t\tavailableHeight: this.availableHeight,\n\t\tavailableWidth: this.availableWidth,\n\t\tpage: this.page,\n\t\tendingCell: this.endingCell,\n\t\tlastColumnWidth: this.lastColumnWidth\n\t});\n};\n\nDocumentContext.prototype.endDetachedBlock = function () {\n\tvar saved = this.snapshots.pop();\n\n\tthis.x = saved.x;\n\tthis.y = saved.y;\n\tthis.availableWidth = saved.availableWidth;\n\tthis.availableHeight = saved.availableHeight;\n\tthis.page = saved.page;\n\tthis.endingCell = saved.endingCell;\n\tthis.lastColumnWidth = saved.lastColumnWidth;\n};\n\nfunction pageOrientation(pageOrientationString, currentPageOrientation) {\n\tif (pageOrientationString === undefined) {\n\t\treturn currentPageOrientation;\n\t} else if (isString(pageOrientationString) && (pageOrientationString.toLowerCase() === 'landscape')) {\n\t\treturn 'landscape';\n\t} else {\n\t\treturn 'portrait';\n\t}\n}\n\nvar getPageSize = function (currentPage, newPageOrientation) {\n\n\tnewPageOrientation = pageOrientation(newPageOrientation, currentPage.pageSize.orientation);\n\n\tif (newPageOrientation !== currentPage.pageSize.orientation) {\n\t\treturn {\n\t\t\torientation: newPageOrientation,\n\t\t\twidth: currentPage.pageSize.height,\n\t\t\theight: currentPage.pageSize.width\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\torientation: currentPage.pageSize.orientation,\n\t\t\twidth: currentPage.pageSize.width,\n\t\t\theight: currentPage.pageSize.height\n\t\t};\n\t}\n\n};\n\n\nDocumentContext.prototype.moveToNextPage = function (pageOrientation) {\n\tvar nextPageIndex = this.page + 1;\n\n\tvar prevPage = this.page;\n\tvar prevY = this.y;\n\n\tvar createNewPage = nextPageIndex >= this.pages.length;\n\tif (createNewPage) {\n\t\tvar currentAvailableWidth = this.availableWidth;\n\t\tvar currentPageOrientation = this.getCurrentPage().pageSize.orientation;\n\n\t\tvar pageSize = getPageSize(this.getCurrentPage(), pageOrientation);\n\t\tthis.addPage(pageSize);\n\n\t\tif (currentPageOrientation === pageSize.orientation) {\n\t\t\tthis.availableWidth = currentAvailableWidth;\n\t\t}\n\t} else {\n\t\tthis.page = nextPageIndex;\n\t\tthis.initializePage();\n\t}\n\n\treturn {\n\t\tnewPageCreated: createNewPage,\n\t\tprevPage: prevPage,\n\t\tprevY: prevY,\n\t\ty: this.y\n\t};\n};\n\n\nDocumentContext.prototype.addPage = function (pageSize) {\n\tvar page = { items: [], pageSize: pageSize };\n\tthis.pages.push(page);\n\tthis.backgroundLength.push(0);\n\tthis.page = this.pages.length - 1;\n\tthis.initializePage();\n\n\tthis.tracker.emit('pageAdded');\n\n\treturn page;\n};\n\nDocumentContext.prototype.getCurrentPage = function () {\n\tif (this.page < 0 || this.page >= this.pages.length) {\n\t\treturn null;\n\t}\n\n\treturn this.pages[this.page];\n};\n\nDocumentContext.prototype.getCurrentPosition = function () {\n\tvar pageSize = this.getCurrentPage().pageSize;\n\tvar innerHeight = pageSize.height - this.pageMargins.top - this.pageMargins.bottom;\n\tvar innerWidth = pageSize.width - this.pageMargins.left - this.pageMargins.right;\n\n\treturn {\n\t\tpageNumber: this.page + 1,\n\t\tpageOrientation: pageSize.orientation,\n\t\tpageInnerHeight: innerHeight,\n\t\tpageInnerWidth: innerWidth,\n\t\tleft: this.x,\n\t\ttop: this.y,\n\t\tverticalRatio: ((this.y - this.pageMargins.top) / innerHeight),\n\t\thorizontalRatio: ((this.x - this.pageMargins.left) / innerWidth)\n\t};\n};\n\nfunction bottomMostContext(c1, c2) {\n\tvar r;\n\n\tif (c1.page > c2.page) {\n\t\tr = c1;\n\t} else if (c2.page > c1.page) {\n\t\tr = c2;\n\t} else {\n\t\tr = (c1.y > c2.y) ? c1 : c2;\n\t}\n\n\treturn {\n\t\tpage: r.page,\n\t\tx: r.x,\n\t\ty: r.y,\n\t\tavailableHeight: r.availableHeight,\n\t\tavailableWidth: r.availableWidth\n\t};\n}\n\nmodule.exports = DocumentContext;\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Creates an instance of Line\n *\n * @constructor\n * @this {Line}\n * @param {Number} Maximum width this line can have\n */\nfunction Line(maxWidth) {\n\tthis.maxWidth = maxWidth;\n\tthis.leadingCut = 0;\n\tthis.trailingCut = 0;\n\tthis.inlineWidths = 0;\n\tthis.inlines = [];\n}\n\nLine.prototype.getAscenderHeight = function () {\n\tvar y = 0;\n\n\tthis.inlines.forEach(function (inline) {\n\t\ty = Math.max(y, inline.font.ascender / 1000 * inline.fontSize);\n\t});\n\treturn y;\n};\n\nLine.prototype.hasEnoughSpaceForInline = function (inline, nextInlines) {\n\tnextInlines = nextInlines || [];\n\n\tif (this.inlines.length === 0) {\n\t\treturn true;\n\t}\n\tif (this.newLineForced) {\n\t\treturn false;\n\t}\n\n\tvar inlineWidth = inline.width;\n\tvar inlineTrailingCut = inline.trailingCut || 0;\n\tif (inline.noNewLine) {\n\t\tfor (var i = 0, l = nextInlines.length; i < l; i++) {\n\t\t\tvar nextInline = nextInlines[i];\n\t\t\tinlineWidth += nextInline.width;\n\t\t\tinlineTrailingCut += nextInline.trailingCut || 0;\n\t\t\tif (!nextInline.noNewLine) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (this.inlineWidths + inlineWidth - this.leadingCut - inlineTrailingCut) <= this.maxWidth;\n};\n\nLine.prototype.addInline = function (inline) {\n\tif (this.inlines.length === 0) {\n\t\tthis.leadingCut = inline.leadingCut || 0;\n\t}\n\tthis.trailingCut = inline.trailingCut || 0;\n\n\tinline.x = this.inlineWidths - this.leadingCut;\n\n\tthis.inlines.push(inline);\n\tthis.inlineWidths += inline.width;\n\n\tif (inline.lineEnd) {\n\t\tthis.newLineForced = true;\n\t}\n};\n\nLine.prototype.getWidth = function () {\n\treturn this.inlineWidths - this.leadingCut - this.trailingCut;\n};\n\nLine.prototype.getAvailableWidth = function () {\n\treturn this.maxWidth - this.getWidth();\n};\n\n/**\n * Returns line height\n * @return {Number}\n */\nLine.prototype.getHeight = function () {\n\tvar max = 0;\n\n\tthis.inlines.forEach(function (item) {\n\t\tmax = Math.max(max, item.height || 0);\n\t});\n\n\treturn max;\n};\n\nmodule.exports = Line;\n\n\n/***/ }),\n/* 295 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar getPrototypeOf = __webpack_require__(60);\nvar setPrototypeOf = __webpack_require__(45);\nvar create = __webpack_require__(58);\nvar createNonEnumerableProperty = __webpack_require__(18);\nvar createPropertyDescriptor = __webpack_require__(40);\nvar iterate = __webpack_require__(136);\n\nvar $AggregateError = function AggregateError(errors, message) {\n  var that = this;\n  if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n  if (setPrototypeOf) {\n    // eslint-disable-next-line unicorn/error-message\n    that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n  var errorsArray = [];\n  iterate(errors, errorsArray.push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n  constructor: createPropertyDescriptor(5, $AggregateError),\n  message: createPropertyDescriptor(5, ''),\n  name: createPropertyDescriptor(5, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n  AggregateError: $AggregateError\n});\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar fails = __webpack_require__(4);\nvar bind = __webpack_require__(96);\nvar html = __webpack_require__(206);\nvar createElement = __webpack_require__(138);\nvar IS_IOS = __webpack_require__(298);\nvar IS_NODE = __webpack_require__(199);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    typeof postMessage == 'function' &&\n    !global.importScripts &&\n    location && location.protocol !== 'file:' &&\n    !fails(post)\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(149);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar isObject = __webpack_require__(14);\nvar newPromiseCapability = __webpack_require__(109);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar aFunction = __webpack_require__(44);\nvar newPromiseCapabilityModule = __webpack_require__(109);\nvar perform = __webpack_require__(137);\nvar iterate = __webpack_require__(136);\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar aFunction = __webpack_require__(44);\nvar getBuiltIn = __webpack_require__(34);\nvar newPromiseCapabilityModule = __webpack_require__(109);\nvar perform = __webpack_require__(137);\nvar iterate = __webpack_require__(136);\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n  any: function any(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aFunction(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        errors.push(undefined);\n        remaining++;\n        promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ___EXPOSE_LOADER_IMPORT___ = __webpack_require__(303);\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = __webpack_require__(571);\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"pdfMake\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"pdfMake\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer, global) {\n\nvar isFunction = __webpack_require__(0).isFunction;\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar isNull = __webpack_require__(0).isNull;\nvar FileSaver = __webpack_require__(306);\nvar saveAs = FileSaver.saveAs;\n\nvar defaultClientFonts = {\n\tRoboto: {\n\t\tnormal: 'Roboto-Regular.ttf',\n\t\tbold: 'Roboto-Medium.ttf',\n\t\titalics: 'Roboto-Italic.ttf',\n\t\tbolditalics: 'Roboto-MediumItalic.ttf'\n\t}\n};\n\nfunction Document(docDefinition, tableLayouts, fonts, vfs) {\n\tthis.docDefinition = docDefinition;\n\tthis.tableLayouts = tableLayouts || null;\n\tthis.fonts = fonts || defaultClientFonts;\n\tthis.vfs = vfs;\n}\n\nfunction canCreatePdf() {\n\t// Ensure the browser provides the level of support needed\n\tif (!Object.keys || typeof Uint16Array === 'undefined') {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nDocument.prototype._createDoc = function (options, cb) {\n\toptions = options || {};\n\tif (this.tableLayouts) {\n\t\toptions.tableLayouts = this.tableLayouts;\n\t}\n\n\tvar PdfPrinter = __webpack_require__(307);\n\n\tvar printer = new PdfPrinter(this.fonts);\n\t__webpack_require__(53).bindFS(this.vfs); // bind virtual file system to file system\n\n\tif (!isFunction(cb)) {\n\t\tvar doc = printer.createPdfKitDocument(this.docDefinition, options);\n\n\t\treturn doc;\n\t}\n\n\tvar URLBrowserResolver = __webpack_require__(556);\n\tvar urlResolver = new URLBrowserResolver(__webpack_require__(53));\n\n\tfor (var font in this.fonts) {\n\t\tif (this.fonts.hasOwnProperty(font)) {\n\t\t\tif (this.fonts[font].normal) {\n\t\t\t\turlResolver.resolve(this.fonts[font].normal);\n\t\t\t}\n\t\t\tif (this.fonts[font].bold) {\n\t\t\t\turlResolver.resolve(this.fonts[font].bold);\n\t\t\t}\n\t\t\tif (this.fonts[font].italics) {\n\t\t\t\turlResolver.resolve(this.fonts[font].italics);\n\t\t\t}\n\t\t\tif (this.fonts[font].bolditalics) {\n\t\t\t\turlResolver.resolve(this.fonts[font].bolditalics);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (this.docDefinition.images) {\n\t\tfor (var image in this.docDefinition.images) {\n\t\t\tif (this.docDefinition.images.hasOwnProperty(image)) {\n\t\t\t\turlResolver.resolve(this.docDefinition.images[image]);\n\t\t\t}\n\t\t}\n\t}\n\n\tvar _this = this;\n\n\turlResolver.resolved().then(function () {\n\t\tvar doc = printer.createPdfKitDocument(_this.docDefinition, options);\n\n\t\tcb(doc);\n\t}, function (result) {\n\t\tthrow result;\n\t});\n};\n\nDocument.prototype._flushDoc = function (doc, callback) {\n\tvar chunks = [];\n\tvar result;\n\n\tdoc.on('readable', function () {\n\t\tvar chunk;\n\t\twhile ((chunk = doc.read(9007199254740991)) !== null) {\n\t\t\tchunks.push(chunk);\n\t\t}\n\t});\n\tdoc.on('end', function () {\n\t\tresult = Buffer.concat(chunks);\n\t\tcallback(result, doc._pdfMakePages);\n\t});\n\tdoc.end();\n};\n\nDocument.prototype._getPages = function (options, cb) {\n\tif (!cb) {\n\t\tthrow '_getPages is an async method and needs a callback argument';\n\t}\n\tvar _this = this;\n\n\tthis._createDoc(options, function (doc) {\n\t\t_this._flushDoc(doc, function (ignoreBuffer, pages) {\n\t\t\tcb(pages);\n\t\t});\n\t});\n};\n\nDocument.prototype._bufferToBlob = function (buffer) {\n\tvar blob;\n\ttry {\n\t\tblob = new Blob([buffer], { type: 'application/pdf' });\n\t} catch (e) {\n\t\t// Old browser which can't handle it without making it an byte array (ie10)\n\t\tif (e.name === 'InvalidStateError') {\n\t\t\tvar byteArray = new Uint8Array(buffer);\n\t\t\tblob = new Blob([byteArray.buffer], { type: 'application/pdf' });\n\t\t}\n\t}\n\n\tif (!blob) {\n\t\tthrow 'Could not generate blob';\n\t}\n\n\treturn blob;\n};\n\nDocument.prototype._openWindow = function () {\n\t// we have to open the window immediately and store the reference\n\t// otherwise popup blockers will stop us\n\tvar win = window.open('', '_blank');\n\tif (win === null) {\n\t\tthrow 'Open PDF in new window blocked by browser';\n\t}\n\n\treturn win;\n};\n\nDocument.prototype._openPdf = function (options, win) {\n\tif (!win) {\n\t\twin = this._openWindow();\n\t}\n\ttry {\n\t\tthis.getBlob(function (result) {\n\t\t\tvar urlCreator = window.URL || window.webkitURL;\n\t\t\tvar pdfUrl = urlCreator.createObjectURL(result);\n\t\t\twin.location.href = pdfUrl;\n\n\t\t\t/* temporarily disabled\n\t\t\tif (win !== window) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tif (isNull(win.window)) { // is closed by AdBlock\n\t\t\t\t\t\twindow.location.href = pdfUrl; // open in actual window\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t\t*/\n\t\t}, options);\n\t} catch (e) {\n\t\twin.close();\n\t\tthrow e;\n\t}\n};\n\nDocument.prototype.open = function (options, win) {\n\toptions = options || {};\n\toptions.autoPrint = false;\n\twin = win || null;\n\n\tthis._openPdf(options, win);\n};\n\n\nDocument.prototype.print = function (options, win) {\n\toptions = options || {};\n\toptions.autoPrint = true;\n\twin = win || null;\n\n\tthis._openPdf(options, win);\n};\n\n/**\n * download(defaultFileName = 'file.pdf', cb = null, options = {})\n * or\n * download(cb, options = {})\n */\nDocument.prototype.download = function (defaultFileName, cb, options) {\n\tif (isFunction(defaultFileName)) {\n\t\tif (!isUndefined(cb)) {\n\t\t\toptions = cb;\n\t\t}\n\t\tcb = defaultFileName;\n\t\tdefaultFileName = null;\n\t}\n\n\tdefaultFileName = defaultFileName || 'file.pdf';\n\tthis.getBlob(function (result) {\n\t\tsaveAs(result, defaultFileName);\n\n\t\tif (isFunction(cb)) {\n\t\t\tcb();\n\t\t}\n\t}, options);\n};\n\nDocument.prototype.getBase64 = function (cb, options) {\n\tif (!cb) {\n\t\tthrow 'getBase64 is an async method and needs a callback argument';\n\t}\n\tthis.getBuffer(function (buffer) {\n\t\tcb(buffer.toString('base64'));\n\t}, options);\n};\n\nDocument.prototype.getDataUrl = function (cb, options) {\n\tif (!cb) {\n\t\tthrow 'getDataUrl is an async method and needs a callback argument';\n\t}\n\tthis.getBuffer(function (buffer) {\n\t\tcb('data:application/pdf;base64,' + buffer.toString('base64'));\n\t}, options);\n};\n\nDocument.prototype.getBlob = function (cb, options) {\n\tif (!cb) {\n\t\tthrow 'getBlob is an async method and needs a callback argument';\n\t}\n\tvar that = this;\n\tthis.getBuffer(function (result) {\n\t\tvar blob = that._bufferToBlob(result);\n\t\tcb(blob);\n\t}, options);\n};\n\nDocument.prototype.getBuffer = function (cb, options) {\n\tif (!cb) {\n\t\tthrow 'getBuffer is an async method and needs a callback argument';\n\t}\n\n\tvar _this = this;\n\n\tthis._createDoc(options, function (doc) {\n\t\t_this._flushDoc(doc, function (buffer) {\n\t\t\tcb(buffer);\n\t\t});\n\t});\n};\n\nDocument.prototype.getStream = function (options, cb) {\n\tif (!isFunction(cb)) {\n\t\tvar doc = this._createDoc(options);\n\t\treturn doc;\n\t}\n\n\tthis._createDoc(options, function (doc) {\n\t\tcb(doc);\n\t});\n};\n\nmodule.exports = {\n\tcreatePdf: function (docDefinition, tableLayouts, fonts, vfs) {\n\t\tif (!canCreatePdf()) {\n\t\t\tthrow 'Your browser does not provide the level of support needed';\n\t\t}\n\t\treturn new Document(\n\t\t\tdocDefinition,\n\t\t\ttableLayouts || global.pdfMake.tableLayouts,\n\t\t\tfonts || global.pdfMake.fonts,\n\t\t\tvfs || global.pdfMake.vfs\n\t\t);\n\t}\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer, __webpack_require__(24)))\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports) {\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(a,b){if(true)!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (b),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else {}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:(typeof HTMLAnchorElement !== \"undefined\" && \"download\" in HTMLAnchorElement.prototype)&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g, true&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*eslint no-unused-vars: [\"error\", {\"args\": \"none\"}]*/\n\n\nvar PdfKitEngine = __webpack_require__(308);\nvar FontProvider = __webpack_require__(539);\nvar LayoutBuilder = __webpack_require__(540);\nvar sizes = __webpack_require__(547);\nvar ImageMeasure = __webpack_require__(548);\nvar SVGMeasure = __webpack_require__(549);\nvar textDecorator = __webpack_require__(553);\nvar TextTools = __webpack_require__(197);\nvar isFunction = __webpack_require__(0).isFunction;\nvar isString = __webpack_require__(0).isString;\nvar isNumber = __webpack_require__(0).isNumber;\nvar isBoolean = __webpack_require__(0).isBoolean;\nvar isArray = __webpack_require__(0).isArray;\nvar isUndefined = __webpack_require__(0).isUndefined;\n\nvar getSvgToPDF = function () {\n\ttry {\n\t\t// optional dependency to support svg nodes\n\t\treturn __webpack_require__(554);\n\t} catch (e) {\n\t\tthrow new Error('Please install svg-to-pdfkit to enable svg nodes');\n\t}\n};\n\nvar findFont = function (fonts, requiredFonts, defaultFont) {\n\tfor (var i = 0; i < requiredFonts.length; i++) {\n\t\tvar requiredFont = requiredFonts[i].toLowerCase();\n\n\t\tfor (var font in fonts) {\n\t\t\tif (font.toLowerCase() === requiredFont) {\n\t\t\t\treturn font;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn defaultFont;\n};\n\n////////////////////////////////////////\n// PdfPrinter\n\n/**\n * @class Creates an instance of a PdfPrinter which turns document definition into a pdf\n *\n * @param {Object} fontDescriptors font definition dictionary\n *\n * @example\n * var fontDescriptors = {\n *\tRoboto: {\n *\t\tnormal: 'fonts/Roboto-Regular.ttf',\n *\t\tbold: 'fonts/Roboto-Medium.ttf',\n *\t\titalics: 'fonts/Roboto-Italic.ttf',\n *\t\tbolditalics: 'fonts/Roboto-MediumItalic.ttf'\n *\t}\n * };\n *\n * var printer = new PdfPrinter(fontDescriptors);\n */\nfunction PdfPrinter(fontDescriptors) {\n\tthis.fontDescriptors = fontDescriptors;\n}\n\n/**\n * Executes layout engine for the specified document and renders it into a pdfkit document\n * ready to be saved.\n *\n * @param {Object} docDefinition document definition\n * @param {Object} docDefinition.content an array describing the pdf structure (for more information take a look at the examples in the /examples folder)\n * @param {Object} [docDefinition.defaultStyle] default (implicit) style definition\n * @param {Object} [docDefinition.styles] dictionary defining all styles which can be used in the document\n * @param {Object} [docDefinition.pageSize] page size (pdfkit units, A4 dimensions by default)\n * @param {Number} docDefinition.pageSize.width width\n * @param {Number} docDefinition.pageSize.height height\n * @param {Object} [docDefinition.pageMargins] page margins (pdfkit units)\n * @param {Number} docDefinition.maxPagesNumber maximum number of pages to render\n *\n * @example\n *\n * var docDefinition = {\n * \tinfo: {\n *\t\ttitle: 'awesome Document',\n *\t\tauthor: 'john doe',\n *\t\tsubject: 'subject of document',\n *\t\tkeywords: 'keywords for document',\n * \t},\n *\tcontent: [\n *\t\t'First paragraph',\n *\t\t'Second paragraph, this time a little bit longer',\n *\t\t{ text: 'Third paragraph, slightly bigger font size', fontSize: 20 },\n *\t\t{ text: 'Another paragraph using a named style', style: 'header' },\n *\t\t{ text: ['playing with ', 'inlines' ] },\n *\t\t{ text: ['and ', { text: 'restyling ', bold: true }, 'them'] },\n *\t],\n *\tstyles: {\n *\t\theader: { fontSize: 30, bold: true }\n *\t}\n * }\n *\n * var pdfKitDoc = printer.createPdfKitDocument(docDefinition);\n *\n * pdfKitDoc.pipe(fs.createWriteStream('sample.pdf'));\n * pdfKitDoc.end();\n *\n * @return {Object} a pdfKit document object which can be saved or encode to data-url\n */\nPdfPrinter.prototype.createPdfKitDocument = function (docDefinition, options) {\n\toptions = options || {};\n\n\tdocDefinition.version = docDefinition.version || '1.3';\n\tdocDefinition.compress = isBoolean(docDefinition.compress) ? docDefinition.compress : true;\n\tdocDefinition.images = docDefinition.images || {};\n\tdocDefinition.pageMargins = ((docDefinition.pageMargins !== undefined) && (docDefinition.pageMargins !== null)) ? docDefinition.pageMargins : 40;\n\n\tvar pageSize = fixPageSize(docDefinition.pageSize, docDefinition.pageOrientation);\n\n\tvar pdfOptions = {\n\t\tsize: [pageSize.width, pageSize.height],\n\t\tpdfVersion: docDefinition.version,\n\t\tcompress: docDefinition.compress,\n\t\tuserPassword: docDefinition.userPassword,\n\t\townerPassword: docDefinition.ownerPassword,\n\t\tpermissions: docDefinition.permissions,\n\t\tfontLayoutCache: isBoolean(options.fontLayoutCache) ? options.fontLayoutCache : true,\n\t\tbufferPages: options.bufferPages || false,\n\t\tautoFirstPage: false,\n\t\tfont: null\n\t};\n\n\tthis.pdfKitDoc = PdfKitEngine.createPdfDocument(pdfOptions);\n\tsetMetadata(docDefinition, this.pdfKitDoc);\n\n\tthis.fontProvider = new FontProvider(this.fontDescriptors, this.pdfKitDoc);\n\n\tvar builder = new LayoutBuilder(pageSize, fixPageMargins(docDefinition.pageMargins), new ImageMeasure(this.pdfKitDoc, docDefinition.images), new SVGMeasure());\n\n\tregisterDefaultTableLayouts(builder);\n\tif (options.tableLayouts) {\n\t\tbuilder.registerTableLayouts(options.tableLayouts);\n\t}\n\n\tvar pages = builder.layoutDocument(docDefinition.content, this.fontProvider, docDefinition.styles || {}, docDefinition.defaultStyle || {\n\t\tfontSize: 12,\n\t\tfont: 'Roboto'\n\t}, docDefinition.background, docDefinition.header, docDefinition.footer, docDefinition.images, docDefinition.watermark, docDefinition.pageBreakBefore);\n\tvar maxNumberPages = docDefinition.maxPagesNumber || -1;\n\tif (isNumber(maxNumberPages) && maxNumberPages > -1) {\n\t\tpages = pages.slice(0, maxNumberPages);\n\t}\n\n\t// if pageSize.height is set to Infinity, calculate the actual height of the page that\n\t// was laid out using the height of each of the items in the page.\n\tif (pageSize.height === Infinity) {\n\t\tvar pageHeight = calculatePageHeight(pages, docDefinition.pageMargins);\n\t\tthis.pdfKitDoc.options.size = [pageSize.width, pageHeight];\n\t}\n\n\trenderPages(pages, this.fontProvider, this.pdfKitDoc, options.progressCallback);\n\n\tif (options.autoPrint) {\n\t\tvar printActionRef = this.pdfKitDoc.ref({\n\t\t\tType: 'Action',\n\t\t\tS: 'Named',\n\t\t\tN: 'Print'\n\t\t});\n\t\tthis.pdfKitDoc._root.data.OpenAction = printActionRef;\n\t\tprintActionRef.end();\n\t}\n\treturn this.pdfKitDoc;\n};\n\nfunction setMetadata(docDefinition, pdfKitDoc) {\n\t// PDF standard has these properties reserved: Title, Author, Subject, Keywords,\n\t// Creator, Producer, CreationDate, ModDate, Trapped.\n\t// To keep the pdfmake api consistent, the info field are defined lowercase.\n\t// Custom properties don't contain a space.\n\tfunction standardizePropertyKey(key) {\n\t\tvar standardProperties = ['Title', 'Author', 'Subject', 'Keywords',\n\t\t\t'Creator', 'Producer', 'CreationDate', 'ModDate', 'Trapped'];\n\t\tvar standardizedKey = key.charAt(0).toUpperCase() + key.slice(1);\n\t\tif (standardProperties.indexOf(standardizedKey) !== -1) {\n\t\t\treturn standardizedKey;\n\t\t}\n\n\t\treturn key.replace(/\\s+/g, '');\n\t}\n\n\tpdfKitDoc.info.Producer = 'pdfmake';\n\tpdfKitDoc.info.Creator = 'pdfmake';\n\n\tif (docDefinition.info) {\n\t\tfor (var key in docDefinition.info) {\n\t\t\tvar value = docDefinition.info[key];\n\t\t\tif (value) {\n\t\t\t\tkey = standardizePropertyKey(key);\n\t\t\t\tpdfKitDoc.info[key] = value;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction calculatePageHeight(pages, margins) {\n\tfunction getItemHeight(item) {\n\t\tif (isFunction(item.item.getHeight)) {\n\t\t\treturn item.item.getHeight();\n\t\t} else if (item.item._height) {\n\t\t\treturn item.item._height;\n\t\t} else if (item.type === 'vector') {\n\t\t\treturn item.item.y1 > item.item.y2 ? item.item.y1 : item.item.y2;\n\t\t} else {\n\t\t\t// TODO: add support for next item types\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\tfunction getBottomPosition(item) {\n\t\tvar top = item.item.y || 0;\n\t\tvar height = getItemHeight(item);\n\t\treturn top + height;\n\t}\n\n\tvar fixedMargins = fixPageMargins(margins || 40);\n\tvar height = fixedMargins.top;\n\n\tpages.forEach(function (page) {\n\t\tpage.items.forEach(function (item) {\n\t\t\tvar bottomPosition = getBottomPosition(item);\n\t\t\tif (bottomPosition > height) {\n\t\t\t\theight = bottomPosition;\n\t\t\t}\n\t\t});\n\t});\n\n\theight += fixedMargins.bottom;\n\n\treturn height;\n}\n\nfunction fixPageSize(pageSize, pageOrientation) {\n\tfunction isNeedSwapPageSizes(pageOrientation) {\n\t\tif (isString(pageOrientation)) {\n\t\t\tpageOrientation = pageOrientation.toLowerCase();\n\t\t\treturn ((pageOrientation === 'portrait') && (size.width > size.height)) ||\n\t\t\t\t((pageOrientation === 'landscape') && (size.width < size.height));\n\t\t}\n\t\treturn false;\n\t}\n\n\t// if pageSize.height is set to auto, set the height to infinity so there are no page breaks.\n\tif (pageSize && pageSize.height === 'auto') {\n\t\tpageSize.height = Infinity;\n\t}\n\n\tvar size = pageSize2widthAndHeight(pageSize || 'A4');\n\tif (isNeedSwapPageSizes(pageOrientation)) { // swap page sizes\n\t\tsize = { width: size.height, height: size.width };\n\t}\n\tsize.orientation = size.width > size.height ? 'landscape' : 'portrait';\n\treturn size;\n}\n\nfunction fixPageMargins(margin) {\n\tif (isNumber(margin)) {\n\t\tmargin = { left: margin, right: margin, top: margin, bottom: margin };\n\t} else if (isArray(margin)) {\n\t\tif (margin.length === 2) {\n\t\t\tmargin = { left: margin[0], top: margin[1], right: margin[0], bottom: margin[1] };\n\t\t} else if (margin.length === 4) {\n\t\t\tmargin = { left: margin[0], top: margin[1], right: margin[2], bottom: margin[3] };\n\t\t} else {\n\t\t\tthrow 'Invalid pageMargins definition';\n\t\t}\n\t}\n\n\treturn margin;\n}\n\nfunction registerDefaultTableLayouts(layoutBuilder) {\n\tlayoutBuilder.registerTableLayouts({\n\t\tnoBorders: {\n\t\t\thLineWidth: function (i) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tvLineWidth: function (i) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tpaddingLeft: function (i) {\n\t\t\t\treturn i && 4 || 0;\n\t\t\t},\n\t\t\tpaddingRight: function (i, node) {\n\t\t\t\treturn (i < node.table.widths.length - 1) ? 4 : 0;\n\t\t\t}\n\t\t},\n\t\theaderLineOnly: {\n\t\t\thLineWidth: function (i, node) {\n\t\t\t\tif (i === 0 || i === node.table.body.length) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn (i === node.table.headerRows) ? 2 : 0;\n\t\t\t},\n\t\t\tvLineWidth: function (i) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tpaddingLeft: function (i) {\n\t\t\t\treturn i === 0 ? 0 : 8;\n\t\t\t},\n\t\t\tpaddingRight: function (i, node) {\n\t\t\t\treturn (i === node.table.widths.length - 1) ? 0 : 8;\n\t\t\t}\n\t\t},\n\t\tlightHorizontalLines: {\n\t\t\thLineWidth: function (i, node) {\n\t\t\t\tif (i === 0 || i === node.table.body.length) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn (i === node.table.headerRows) ? 2 : 1;\n\t\t\t},\n\t\t\tvLineWidth: function (i) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\thLineColor: function (i) {\n\t\t\t\treturn i === 1 ? 'black' : '#aaa';\n\t\t\t},\n\t\t\tpaddingLeft: function (i) {\n\t\t\t\treturn i === 0 ? 0 : 8;\n\t\t\t},\n\t\t\tpaddingRight: function (i, node) {\n\t\t\t\treturn (i === node.table.widths.length - 1) ? 0 : 8;\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction pageSize2widthAndHeight(pageSize) {\n\tif (isString(pageSize)) {\n\t\tvar size = sizes[pageSize.toUpperCase()];\n\t\tif (!size) {\n\t\t\tthrow 'Page size ' + pageSize + ' not recognized';\n\t\t}\n\t\treturn { width: size[0], height: size[1] };\n\t}\n\n\treturn pageSize;\n}\n\nfunction updatePageOrientationInOptions(currentPage, pdfKitDoc) {\n\tvar previousPageOrientation = pdfKitDoc.options.size[0] > pdfKitDoc.options.size[1] ? 'landscape' : 'portrait';\n\n\tif (currentPage.pageSize.orientation !== previousPageOrientation) {\n\t\tvar width = pdfKitDoc.options.size[0];\n\t\tvar height = pdfKitDoc.options.size[1];\n\t\tpdfKitDoc.options.size = [height, width];\n\t}\n}\n\nfunction renderPages(pages, fontProvider, pdfKitDoc, progressCallback) {\n\tpdfKitDoc._pdfMakePages = pages;\n\tpdfKitDoc.addPage();\n\n\tvar totalItems = 0;\n\tif (progressCallback) {\n\t\tpages.forEach(function (page) {\n\t\t\ttotalItems += page.items.length;\n\t\t});\n\t}\n\n\tvar renderedItems = 0;\n\tprogressCallback = progressCallback || function () {\n\t};\n\n\tfor (var i = 0; i < pages.length; i++) {\n\t\tif (i > 0) {\n\t\t\tupdatePageOrientationInOptions(pages[i], pdfKitDoc);\n\t\t\tpdfKitDoc.addPage(pdfKitDoc.options);\n\t\t}\n\n\t\tvar page = pages[i];\n\t\tfor (var ii = 0, il = page.items.length; ii < il; ii++) {\n\t\t\tvar item = page.items[ii];\n\t\t\tswitch (item.type) {\n\t\t\t\tcase 'vector':\n\t\t\t\t\trenderVector(item.item, pdfKitDoc);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'line':\n\t\t\t\t\trenderLine(item.item, item.item.x, item.item.y, pdfKitDoc);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'image':\n\t\t\t\t\trenderImage(item.item, item.item.x, item.item.y, pdfKitDoc);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'svg':\n\t\t\t\t\trenderSVG(item.item, item.item.x, item.item.y, pdfKitDoc, fontProvider);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'beginClip':\n\t\t\t\t\tbeginClip(item.item, pdfKitDoc);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'endClip':\n\t\t\t\t\tendClip(pdfKitDoc);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\trenderedItems++;\n\t\t\tprogressCallback(renderedItems / totalItems);\n\t\t}\n\t\tif (page.watermark) {\n\t\t\trenderWatermark(page, pdfKitDoc);\n\t\t}\n\t}\n}\n\n/**\n * Shift the \"y\" height of the text baseline up or down (superscript or subscript,\n * respectively). The exact shift can / should be changed according to standard\n * conventions.\n *\n * @param {number} y\n * @param {any} inline\n */\nfunction offsetText(y, inline) {\n\tvar newY = y;\n\tif (inline.sup) {\n\t\tnewY -= inline.fontSize * 0.75;\n\t}\n\tif (inline.sub) {\n\t\tnewY += inline.fontSize * 0.35;\n\t}\n\treturn newY;\n}\n\nfunction renderLine(line, x, y, pdfKitDoc) {\n\tfunction preparePageNodeRefLine(_pageNodeRef, inline) {\n\t\tvar newWidth;\n\t\tvar diffWidth;\n\t\tvar textTools = new TextTools(null);\n\n\t\tif (isUndefined(_pageNodeRef.positions)) {\n\t\t\tthrow 'Page reference id not found';\n\t\t}\n\n\t\tvar pageNumber = _pageNodeRef.positions[0].pageNumber.toString();\n\n\t\tinline.text = pageNumber;\n\t\tnewWidth = textTools.widthOfString(inline.text, inline.font, inline.fontSize, inline.characterSpacing, inline.fontFeatures);\n\t\tdiffWidth = inline.width - newWidth;\n\t\tinline.width = newWidth;\n\n\t\tswitch (inline.alignment) {\n\t\t\tcase 'right':\n\t\t\t\tinline.x += diffWidth;\n\t\t\t\tbreak;\n\t\t\tcase 'center':\n\t\t\t\tinline.x += diffWidth / 2;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (line._pageNodeRef) {\n\t\tpreparePageNodeRefLine(line._pageNodeRef, line.inlines[0]);\n\t}\n\n\tx = x || 0;\n\ty = y || 0;\n\n\tvar lineHeight = line.getHeight();\n\tvar ascenderHeight = line.getAscenderHeight();\n\tvar descent = lineHeight - ascenderHeight;\n\n\ttextDecorator.drawBackground(line, x, y, pdfKitDoc);\n\n\t//TODO: line.optimizeInlines();\n\tfor (var i = 0, l = line.inlines.length; i < l; i++) {\n\t\tvar inline = line.inlines[i];\n\t\tvar shiftToBaseline = lineHeight - ((inline.font.ascender / 1000) * inline.fontSize) - descent;\n\n\t\tif (inline._pageNodeRef) {\n\t\t\tpreparePageNodeRefLine(inline._pageNodeRef, inline);\n\t\t}\n\n\t\tvar options = {\n\t\t\tlineBreak: false,\n\t\t\ttextWidth: inline.width,\n\t\t\tcharacterSpacing: inline.characterSpacing,\n\t\t\twordCount: 1,\n\t\t\tlink: inline.link\n\t\t};\n\n\t\tif (inline.linkToDestination) {\n\t\t\toptions.goTo = inline.linkToDestination;\n\t\t}\n\n\t\tif (line.id && i === 0) {\n\t\t\toptions.destination = line.id;\n\t\t}\n\n\t\tif (inline.fontFeatures) {\n\t\t\toptions.features = inline.fontFeatures;\n\t\t}\n\n\t\tvar opacity = isNumber(inline.opacity) ? inline.opacity : 1;\n\t\tpdfKitDoc.opacity(opacity);\n\t\tpdfKitDoc.fill(inline.color || 'black');\n\n\t\tpdfKitDoc._font = inline.font;\n\t\tpdfKitDoc.fontSize(inline.fontSize);\n\n\t\tvar shiftedY = offsetText(y + shiftToBaseline, inline);\n\t\tpdfKitDoc.text(inline.text, x + inline.x, shiftedY, options);\n\n\t\tif (inline.linkToPage) {\n\t\t\tvar _ref = pdfKitDoc.ref({ Type: 'Action', S: 'GoTo', D: [inline.linkToPage, 0, 0] }).end();\n\t\t\tpdfKitDoc.annotate(x + inline.x, shiftedY, inline.width, inline.height, {\n\t\t\t\tSubtype: 'Link',\n\t\t\t\tDest: [inline.linkToPage - 1, 'XYZ', null, null, null]\n\t\t\t});\n\t\t}\n\n\t}\n\t// Decorations won't draw correctly for superscript\n\ttextDecorator.drawDecorations(line, x, y, pdfKitDoc);\n}\n\nfunction renderWatermark(page, pdfKitDoc) {\n\tvar watermark = page.watermark;\n\n\tpdfKitDoc.fill(watermark.color);\n\tpdfKitDoc.opacity(watermark.opacity);\n\n\tpdfKitDoc.save();\n\n\tpdfKitDoc.rotate(watermark.angle, { origin: [pdfKitDoc.page.width / 2, pdfKitDoc.page.height / 2] });\n\n\tvar x = pdfKitDoc.page.width / 2 - watermark._size.size.width / 2;\n\tvar y = pdfKitDoc.page.height / 2 - watermark._size.size.height / 2;\n\n\tpdfKitDoc._font = watermark.font;\n\tpdfKitDoc.fontSize(watermark.fontSize);\n\tpdfKitDoc.text(watermark.text, x, y, { lineBreak: false });\n\n\tpdfKitDoc.restore();\n}\n\nfunction renderVector(vector, pdfKitDoc) {\n\t//TODO: pdf optimization (there's no need to write all properties everytime)\n\tpdfKitDoc.lineWidth(vector.lineWidth || 1);\n\tif (vector.dash) {\n\t\tpdfKitDoc.dash(vector.dash.length, { space: vector.dash.space || vector.dash.length, phase: vector.dash.phase || 0 });\n\t} else {\n\t\tpdfKitDoc.undash();\n\t}\n\tpdfKitDoc.lineJoin(vector.lineJoin || 'miter');\n\tpdfKitDoc.lineCap(vector.lineCap || 'butt');\n\n\t//TODO: clipping\n\n\tvar gradient = null;\n\n\tswitch (vector.type) {\n\t\tcase 'ellipse':\n\t\t\tpdfKitDoc.ellipse(vector.x, vector.y, vector.r1, vector.r2);\n\n\t\t\tif (vector.linearGradient) {\n\t\t\t\tgradient = pdfKitDoc.linearGradient(vector.x - vector.r1, vector.y, vector.x + vector.r1, vector.y);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (vector.r) {\n\t\t\t\tpdfKitDoc.roundedRect(vector.x, vector.y, vector.w, vector.h, vector.r);\n\t\t\t} else {\n\t\t\t\tpdfKitDoc.rect(vector.x, vector.y, vector.w, vector.h);\n\t\t\t}\n\n\t\t\tif (vector.linearGradient) {\n\t\t\t\tgradient = pdfKitDoc.linearGradient(vector.x, vector.y, vector.x + vector.w, vector.y);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\tpdfKitDoc.moveTo(vector.x1, vector.y1);\n\t\t\tpdfKitDoc.lineTo(vector.x2, vector.y2);\n\t\t\tbreak;\n\t\tcase 'polyline':\n\t\t\tif (vector.points.length === 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tpdfKitDoc.moveTo(vector.points[0].x, vector.points[0].y);\n\t\t\tfor (var i = 1, l = vector.points.length; i < l; i++) {\n\t\t\t\tpdfKitDoc.lineTo(vector.points[i].x, vector.points[i].y);\n\t\t\t}\n\n\t\t\tif (vector.points.length > 1) {\n\t\t\t\tvar p1 = vector.points[0];\n\t\t\t\tvar pn = vector.points[vector.points.length - 1];\n\n\t\t\t\tif (vector.closePath || p1.x === pn.x && p1.y === pn.y) {\n\t\t\t\t\tpdfKitDoc.closePath();\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'path':\n\t\t\tpdfKitDoc.path(vector.d);\n\t\t\tbreak;\n\t}\n\n\tif (vector.linearGradient && gradient) {\n\t\tvar step = 1 / (vector.linearGradient.length - 1);\n\n\t\tfor (var i = 0; i < vector.linearGradient.length; i++) {\n\t\t\tgradient.stop(i * step, vector.linearGradient[i]);\n\t\t}\n\n\t\tvector.color = gradient;\n\t}\n\n\tvar fillOpacity = isNumber(vector.fillOpacity) ? vector.fillOpacity : 1;\n\tvar strokeOpacity = isNumber(vector.strokeOpacity) ? vector.strokeOpacity : 1;\n\n\tif (vector.color && vector.lineColor) {\n\t\tpdfKitDoc.fillColor(vector.color, fillOpacity);\n\t\tpdfKitDoc.strokeColor(vector.lineColor, strokeOpacity);\n\t\tpdfKitDoc.fillAndStroke();\n\t} else if (vector.color) {\n\t\tpdfKitDoc.fillColor(vector.color, fillOpacity);\n\t\tpdfKitDoc.fill();\n\t} else {\n\t\tpdfKitDoc.strokeColor(vector.lineColor || 'black', strokeOpacity);\n\t\tpdfKitDoc.stroke();\n\t}\n}\n\nfunction renderImage(image, x, y, pdfKitDoc) {\n\tvar opacity = isNumber(image.opacity) ? image.opacity : 1;\n\tpdfKitDoc.opacity(opacity);\n\tif (image.cover) {\n\t\tvar align = image.cover.align || 'center';\n\t\tvar valign = image.cover.valign || 'center';\n\t\tvar width = image.cover.width ? image.cover.width : image.width;\n\t\tvar height = image.cover.height ? image.cover.height : image.height;\n\t\tpdfKitDoc.save();\n\t\tpdfKitDoc.rect(image.x, image.y, width, height).clip();\n\t\tpdfKitDoc.image(image.image, image.x, image.y, { cover: [width, height], align: align, valign: valign });\n\t\tpdfKitDoc.restore();\n\t} else {\n\t\tpdfKitDoc.image(image.image, image.x, image.y, { width: image._width, height: image._height });\n\t}\n\tif (image.link) {\n\t\tpdfKitDoc.link(image.x, image.y, image._width, image._height, image.link);\n\t}\n\tif (image.linkToPage) {\n\t\tpdfKitDoc.ref({ Type: 'Action', S: 'GoTo', D: [image.linkToPage, 0, 0] }).end();\n\t\tpdfKitDoc.annotate(image.x, image.y, image._width, image._height, { Subtype: 'Link', Dest: [image.linkToPage - 1, 'XYZ', null, null, null] });\n\t}\n\tif (image.linkToDestination) {\n\t\tpdfKitDoc.goTo(image.x, image.y, image._width, image._height, image.linkToDestination);\n\t}\n}\n\nfunction renderSVG(svg, x, y, pdfKitDoc, fontProvider) {\n\tvar options = Object.assign({ width: svg._width, height: svg._height, assumePt: true }, svg.options);\n\toptions.fontCallback = function (family, bold, italic) {\n\t\tvar fontsFamily = family.split(',').map(function (f) { return f.trim().replace(/('|\")/g, ''); });\n\t\tvar font = findFont(fontProvider.fonts, fontsFamily, svg.font || 'Roboto');\n\n\t\tvar fontFile = fontProvider.getFontFile(font, bold, italic);\n\t\tif (fontFile === null) {\n\t\t\tvar type = fontProvider.getFontType(bold, italic);\n\t\t\tthrow new Error('Font \\'' + font + '\\' in style \\'' + type + '\\' is not defined in the font section of the document definition.');\n\t\t}\n\n\t\treturn fontFile;\n\t};\n\n\tgetSvgToPDF()(pdfKitDoc, svg.svg, svg.x, svg.y, options);\n}\n\nfunction beginClip(rect, pdfKitDoc) {\n\tpdfKitDoc.save();\n\tpdfKitDoc.addContent('' + rect.x + ' ' + rect.y + ' ' + rect.width + ' ' + rect.height + ' re');\n\tpdfKitDoc.clip();\n}\n\nfunction endClip(pdfKitDoc) {\n\tpdfKitDoc.restore();\n}\n\nmodule.exports = PdfPrinter;\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _interopDefault(ex) {\n\treturn (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex;\n}\n\nvar PdfKit = _interopDefault(__webpack_require__(309));\n\nfunction getEngineInstance() {\n\treturn PdfKit;\n}\n\nfunction createPdfDocument(options) {\n\toptions = options || {};\n\treturn new PdfKit(options);\n}\n\nmodule.exports = {\n\tgetEngineInstance: getEngineInstance,\n\tcreatePdfDocument: createPdfDocument\n};\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer, __dirname) {\n\n__webpack_require__(201);\n\n__webpack_require__(210);\n\n__webpack_require__(211);\n\n__webpack_require__(212);\n\n__webpack_require__(314);\n\n__webpack_require__(213);\n\n__webpack_require__(315);\n\n__webpack_require__(316);\n\n__webpack_require__(317);\n\n__webpack_require__(216);\n\n__webpack_require__(28);\n\n__webpack_require__(220);\n\n__webpack_require__(322);\n\n__webpack_require__(46);\n\n__webpack_require__(323);\n\n__webpack_require__(324);\n\n__webpack_require__(61);\n\n__webpack_require__(224);\n\n__webpack_require__(225);\n\n__webpack_require__(326);\n\n__webpack_require__(328);\n\n__webpack_require__(330);\n\n__webpack_require__(229);\n\n__webpack_require__(331);\n\n__webpack_require__(31);\n\n__webpack_require__(118);\n\n__webpack_require__(334);\n\n__webpack_require__(335);\n\n__webpack_require__(336);\n\n__webpack_require__(160);\n\n__webpack_require__(161);\n\n__webpack_require__(231);\n\n__webpack_require__(232);\n\n__webpack_require__(233);\n\n__webpack_require__(234);\n\n__webpack_require__(340);\n\n__webpack_require__(62);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\n__webpack_require__(346);\n\n__webpack_require__(120);\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _stream = _interopRequireDefault(__webpack_require__(121));\n\nvar _zlib = _interopRequireDefault(__webpack_require__(245));\n\nvar _cryptoJs = _interopRequireDefault(__webpack_require__(368));\n\nvar _fontkit = _interopRequireDefault(__webpack_require__(392));\n\nvar _events = __webpack_require__(122);\n\nvar _linebreak = _interopRequireDefault(__webpack_require__(290));\n\nvar _pngJs = _interopRequireDefault(__webpack_require__(538));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fs = __webpack_require__(53);\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n    return;\n  }\n\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n/*\nPDFAbstractReference - abstract class for PDF reference\n*/\n\n\nvar PDFAbstractReference = /*#__PURE__*/function () {\n  function PDFAbstractReference() {\n    _classCallCheck(this, PDFAbstractReference);\n  }\n\n  _createClass(PDFAbstractReference, [{\n    key: \"toString\",\n    value: function toString() {\n      throw new Error('Must be implemented by subclasses');\n    }\n  }]);\n\n  return PDFAbstractReference;\n}();\n\nvar PDFNameTree = /*#__PURE__*/function () {\n  function PDFNameTree() {\n    _classCallCheck(this, PDFNameTree);\n\n    this._items = {};\n  }\n\n  _createClass(PDFNameTree, [{\n    key: \"add\",\n    value: function add(key, val) {\n      return this._items[key] = val;\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this._items[key];\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      // Needs to be sorted by key\n      var sortedKeys = Object.keys(this._items).sort(function (a, b) {\n        return a.localeCompare(b);\n      });\n      var out = ['<<'];\n\n      if (sortedKeys.length > 1) {\n        var first = sortedKeys[0],\n            last = sortedKeys[sortedKeys.length - 1];\n        out.push(\"  /Limits \".concat(PDFObject.convert([new String(first), new String(last)])));\n      }\n\n      out.push('  /Names [');\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = sortedKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var key = _step.value;\n          out.push(\"    \".concat(PDFObject.convert(new String(key)), \" \").concat(PDFObject.convert(this._items[key])));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      out.push(']');\n      out.push('>>');\n      return out.join('\\n');\n    }\n  }]);\n\n  return PDFNameTree;\n}();\n\nvar pad = function pad(str, length) {\n  return (Array(length + 1).join('0') + str).slice(-length);\n};\n\nvar escapableRe = /[\\n\\r\\t\\b\\f\\(\\)\\\\]/g;\nvar escapable = {\n  '\\n': '\\\\n',\n  '\\r': '\\\\r',\n  '\\t': '\\\\t',\n  '\\b': '\\\\b',\n  '\\f': '\\\\f',\n  '\\\\': '\\\\\\\\',\n  '(': '\\\\(',\n  ')': '\\\\)'\n}; // Convert little endian UTF-16 to big endian\n\nvar swapBytes = function swapBytes(buff) {\n  var l = buff.length;\n\n  if (l & 0x01) {\n    throw new Error('Buffer length must be even');\n  } else {\n    for (var i = 0, end = l - 1; i < end; i += 2) {\n      var a = buff[i];\n      buff[i] = buff[i + 1];\n      buff[i + 1] = a;\n    }\n  }\n\n  return buff;\n};\n\nvar PDFObject = /*#__PURE__*/function () {\n  function PDFObject() {\n    _classCallCheck(this, PDFObject);\n  }\n\n  _createClass(PDFObject, null, [{\n    key: \"convert\",\n    value: function convert(object) {\n      var encryptFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; // String literals are converted to the PDF name type\n\n      if (typeof object === 'string') {\n        return \"/\".concat(object); // String objects are converted to PDF strings (UTF-16)\n      } else if (object instanceof String) {\n        var string = object; // Detect if this is a unicode string\n\n        var isUnicode = false;\n\n        for (var i = 0, end = string.length; i < end; i++) {\n          if (string.charCodeAt(i) > 0x7f) {\n            isUnicode = true;\n            break;\n          }\n        } // If so, encode it as big endian UTF-16\n\n\n        var stringBuffer;\n\n        if (isUnicode) {\n          stringBuffer = swapBytes(Buffer.from(\"\\uFEFF\".concat(string), 'utf16le'));\n        } else {\n          stringBuffer = Buffer.from(string.valueOf(), 'ascii');\n        } // Encrypt the string when necessary\n\n\n        if (encryptFn) {\n          string = encryptFn(stringBuffer).toString('binary');\n        } else {\n          string = stringBuffer.toString('binary');\n        } // Escape characters as required by the spec\n\n\n        string = string.replace(escapableRe, function (c) {\n          return escapable[c];\n        });\n        return \"(\".concat(string, \")\"); // Buffers are converted to PDF hex strings\n      } else if (Buffer.isBuffer(object)) {\n        return \"<\".concat(object.toString('hex'), \">\");\n      } else if (object instanceof PDFAbstractReference || object instanceof PDFNameTree) {\n        return object.toString();\n      } else if (object instanceof Date) {\n        var _string = \"D:\".concat(pad(object.getUTCFullYear(), 4)) + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + 'Z'; // Encrypt the string when necessary\n\n\n        if (encryptFn) {\n          _string = encryptFn(new Buffer(_string, 'ascii')).toString('binary'); // Escape characters as required by the spec\n\n          _string = _string.replace(escapableRe, function (c) {\n            return escapable[c];\n          });\n        }\n\n        return \"(\".concat(_string, \")\");\n      } else if (Array.isArray(object)) {\n        var items = object.map(function (e) {\n          return PDFObject.convert(e, encryptFn);\n        }).join(' ');\n        return \"[\".concat(items, \"]\");\n      } else if ({}.toString.call(object) === '[object Object]') {\n        var out = ['<<'];\n\n        for (var key in object) {\n          var val = object[key];\n          out.push(\"/\".concat(key, \" \").concat(PDFObject.convert(val, encryptFn)));\n        }\n\n        out.push('>>');\n        return out.join('\\n');\n      } else if (typeof object === 'number') {\n        return PDFObject.number(object);\n      } else {\n        return \"\".concat(object);\n      }\n    }\n  }, {\n    key: \"number\",\n    value: function number(n) {\n      if (n > -1e21 && n < 1e21) {\n        return Math.round(n * 1e6) / 1e6;\n      }\n\n      throw new Error(\"unsupported number: \".concat(n));\n    }\n  }]);\n\n  return PDFObject;\n}();\n\nvar PDFReference = /*#__PURE__*/function (_PDFAbstractReference) {\n  _inherits(PDFReference, _PDFAbstractReference);\n\n  function PDFReference(document, id) {\n    var _this;\n\n    var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n    _classCallCheck(this, PDFReference);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFReference).call(this));\n    _this.document = document;\n    _this.id = id;\n    _this.data = data;\n    _this.gen = 0;\n    _this.compress = _this.document.compress && !_this.data.Filter;\n    _this.uncompressedLength = 0;\n    _this.buffer = [];\n    return _this;\n  }\n\n  _createClass(PDFReference, [{\n    key: \"write\",\n    value: function write(chunk) {\n      if (!Buffer.isBuffer(chunk)) {\n        chunk = new Buffer(chunk + '\\n', 'binary');\n      }\n\n      this.uncompressedLength += chunk.length;\n\n      if (this.data.Length == null) {\n        this.data.Length = 0;\n      }\n\n      this.buffer.push(chunk);\n      this.data.Length += chunk.length;\n\n      if (this.compress) {\n        return this.data.Filter = 'FlateDecode';\n      }\n    }\n  }, {\n    key: \"end\",\n    value: function end(chunk) {\n      if (chunk) {\n        this.write(chunk);\n      }\n\n      return this.finalize();\n    }\n  }, {\n    key: \"finalize\",\n    value: function finalize() {\n      this.offset = this.document._offset;\n      var encryptFn = this.document._security ? this.document._security.getEncryptFn(this.id, this.gen) : null;\n\n      if (this.buffer.length) {\n        this.buffer = Buffer.concat(this.buffer);\n\n        if (this.compress) {\n          this.buffer = _zlib.default.deflateSync(this.buffer);\n        }\n\n        if (encryptFn) {\n          this.buffer = encryptFn(this.buffer);\n        }\n\n        this.data.Length = this.buffer.length;\n      }\n\n      this.document._write(\"\".concat(this.id, \" \").concat(this.gen, \" obj\"));\n\n      this.document._write(PDFObject.convert(this.data, encryptFn));\n\n      if (this.buffer.length) {\n        this.document._write('stream');\n\n        this.document._write(this.buffer);\n\n        this.buffer = []; // free up memory\n\n        this.document._write('\\nendstream');\n      }\n\n      this.document._write('endobj');\n\n      this.document._refEnd(this);\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      return \"\".concat(this.id, \" \").concat(this.gen, \" R\");\n    }\n  }]);\n\n  return PDFReference;\n}(PDFAbstractReference);\n/*\nPDFPage - represents a single page in the PDF document\nBy Devon Govett\n*/\n\n\nvar DEFAULT_MARGINS = {\n  top: 72,\n  left: 72,\n  bottom: 72,\n  right: 72\n};\nvar SIZES = {\n  '4A0': [4767.87, 6740.79],\n  '2A0': [3370.39, 4767.87],\n  A0: [2383.94, 3370.39],\n  A1: [1683.78, 2383.94],\n  A2: [1190.55, 1683.78],\n  A3: [841.89, 1190.55],\n  A4: [595.28, 841.89],\n  A5: [419.53, 595.28],\n  A6: [297.64, 419.53],\n  A7: [209.76, 297.64],\n  A8: [147.4, 209.76],\n  A9: [104.88, 147.4],\n  A10: [73.7, 104.88],\n  B0: [2834.65, 4008.19],\n  B1: [2004.09, 2834.65],\n  B2: [1417.32, 2004.09],\n  B3: [1000.63, 1417.32],\n  B4: [708.66, 1000.63],\n  B5: [498.9, 708.66],\n  B6: [354.33, 498.9],\n  B7: [249.45, 354.33],\n  B8: [175.75, 249.45],\n  B9: [124.72, 175.75],\n  B10: [87.87, 124.72],\n  C0: [2599.37, 3676.54],\n  C1: [1836.85, 2599.37],\n  C2: [1298.27, 1836.85],\n  C3: [918.43, 1298.27],\n  C4: [649.13, 918.43],\n  C5: [459.21, 649.13],\n  C6: [323.15, 459.21],\n  C7: [229.61, 323.15],\n  C8: [161.57, 229.61],\n  C9: [113.39, 161.57],\n  C10: [79.37, 113.39],\n  RA0: [2437.8, 3458.27],\n  RA1: [1729.13, 2437.8],\n  RA2: [1218.9, 1729.13],\n  RA3: [864.57, 1218.9],\n  RA4: [609.45, 864.57],\n  SRA0: [2551.18, 3628.35],\n  SRA1: [1814.17, 2551.18],\n  SRA2: [1275.59, 1814.17],\n  SRA3: [907.09, 1275.59],\n  SRA4: [637.8, 907.09],\n  EXECUTIVE: [521.86, 756.0],\n  FOLIO: [612.0, 936.0],\n  LEGAL: [612.0, 1008.0],\n  LETTER: [612.0, 792.0],\n  TABLOID: [792.0, 1224.0]\n};\n\nvar PDFPage = /*#__PURE__*/function () {\n  function PDFPage(document) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, PDFPage);\n\n    this.document = document;\n    this.size = options.size || 'letter';\n    this.layout = options.layout || 'portrait'; // process margins\n\n    if (typeof options.margin === 'number') {\n      this.margins = {\n        top: options.margin,\n        left: options.margin,\n        bottom: options.margin,\n        right: options.margin\n      }; // default to 1 inch margins\n    } else {\n      this.margins = options.margins || DEFAULT_MARGINS;\n    } // calculate page dimensions\n\n\n    var dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()];\n    this.width = dimensions[this.layout === 'portrait' ? 0 : 1];\n    this.height = dimensions[this.layout === 'portrait' ? 1 : 0];\n    this.content = this.document.ref(); // Initialize the Font, XObject, and ExtGState dictionaries\n\n    this.resources = this.document.ref({\n      ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI']\n    }); // The page dictionary\n\n    this.dictionary = this.document.ref({\n      Type: 'Page',\n      Parent: this.document._root.data.Pages,\n      MediaBox: [0, 0, this.width, this.height],\n      Contents: this.content,\n      Resources: this.resources\n    });\n  } // Lazily create these dictionaries\n\n\n  _createClass(PDFPage, [{\n    key: \"maxY\",\n    value: function maxY() {\n      return this.height - this.margins.bottom;\n    }\n  }, {\n    key: \"write\",\n    value: function write(chunk) {\n      return this.content.write(chunk);\n    }\n  }, {\n    key: \"end\",\n    value: function end() {\n      this.dictionary.end();\n      this.resources.end();\n      return this.content.end();\n    }\n  }, {\n    key: \"fonts\",\n    get: function get() {\n      var data = this.resources.data;\n      return data.Font != null ? data.Font : data.Font = {};\n    }\n  }, {\n    key: \"xobjects\",\n    get: function get() {\n      var data = this.resources.data;\n      return data.XObject != null ? data.XObject : data.XObject = {};\n    }\n  }, {\n    key: \"ext_gstates\",\n    get: function get() {\n      var data = this.resources.data;\n      return data.ExtGState != null ? data.ExtGState : data.ExtGState = {};\n    }\n  }, {\n    key: \"patterns\",\n    get: function get() {\n      var data = this.resources.data;\n      return data.Pattern != null ? data.Pattern : data.Pattern = {};\n    }\n  }, {\n    key: \"annotations\",\n    get: function get() {\n      var data = this.dictionary.data;\n      return data.Annots != null ? data.Annots : data.Annots = [];\n    }\n  }]);\n\n  return PDFPage;\n}();\n/**\n * Check if value is in a range group.\n * @param {number} value\n * @param {number[]} rangeGroup\n * @returns {boolean}\n */\n\n\nfunction inRange(value, rangeGroup) {\n  if (value < rangeGroup[0]) return false;\n  var startRange = 0;\n  var endRange = rangeGroup.length / 2;\n\n  while (startRange <= endRange) {\n    var middleRange = Math.floor((startRange + endRange) / 2); // actual array index\n\n    var arrayIndex = middleRange * 2; // Check if value is in range pointed by actual index\n\n    if (value >= rangeGroup[arrayIndex] && value <= rangeGroup[arrayIndex + 1]) {\n      return true;\n    }\n\n    if (value > rangeGroup[arrayIndex + 1]) {\n      // Search Right Side Of Array\n      startRange = middleRange + 1;\n    } else {\n      // Search Left Side Of Array\n      endRange = middleRange - 1;\n    }\n  }\n\n  return false;\n}\n/* eslint-disable prettier/prettier */\n\n/**\n * A.1 Unassigned code points in Unicode 3.2\n * @link https://tools.ietf.org/html/rfc3454#appendix-A.1\n */\n\n\nvar unassigned_code_points = [0x0221, 0x0221, 0x0234, 0x024f, 0x02ae, 0x02af, 0x02ef, 0x02ff, 0x0350, 0x035f, 0x0370, 0x0373, 0x0376, 0x0379, 0x037b, 0x037d, 0x037f, 0x0383, 0x038b, 0x038b, 0x038d, 0x038d, 0x03a2, 0x03a2, 0x03cf, 0x03cf, 0x03f7, 0x03ff, 0x0487, 0x0487, 0x04cf, 0x04cf, 0x04f6, 0x04f7, 0x04fa, 0x04ff, 0x0510, 0x0530, 0x0557, 0x0558, 0x0560, 0x0560, 0x0588, 0x0588, 0x058b, 0x0590, 0x05a2, 0x05a2, 0x05ba, 0x05ba, 0x05c5, 0x05cf, 0x05eb, 0x05ef, 0x05f5, 0x060b, 0x060d, 0x061a, 0x061c, 0x061e, 0x0620, 0x0620, 0x063b, 0x063f, 0x0656, 0x065f, 0x06ee, 0x06ef, 0x06ff, 0x06ff, 0x070e, 0x070e, 0x072d, 0x072f, 0x074b, 0x077f, 0x07b2, 0x0900, 0x0904, 0x0904, 0x093a, 0x093b, 0x094e, 0x094f, 0x0955, 0x0957, 0x0971, 0x0980, 0x0984, 0x0984, 0x098d, 0x098e, 0x0991, 0x0992, 0x09a9, 0x09a9, 0x09b1, 0x09b1, 0x09b3, 0x09b5, 0x09ba, 0x09bb, 0x09bd, 0x09bd, 0x09c5, 0x09c6, 0x09c9, 0x09ca, 0x09ce, 0x09d6, 0x09d8, 0x09db, 0x09de, 0x09de, 0x09e4, 0x09e5, 0x09fb, 0x0a01, 0x0a03, 0x0a04, 0x0a0b, 0x0a0e, 0x0a11, 0x0a12, 0x0a29, 0x0a29, 0x0a31, 0x0a31, 0x0a34, 0x0a34, 0x0a37, 0x0a37, 0x0a3a, 0x0a3b, 0x0a3d, 0x0a3d, 0x0a43, 0x0a46, 0x0a49, 0x0a4a, 0x0a4e, 0x0a58, 0x0a5d, 0x0a5d, 0x0a5f, 0x0a65, 0x0a75, 0x0a80, 0x0a84, 0x0a84, 0x0a8c, 0x0a8c, 0x0a8e, 0x0a8e, 0x0a92, 0x0a92, 0x0aa9, 0x0aa9, 0x0ab1, 0x0ab1, 0x0ab4, 0x0ab4, 0x0aba, 0x0abb, 0x0ac6, 0x0ac6, 0x0aca, 0x0aca, 0x0ace, 0x0acf, 0x0ad1, 0x0adf, 0x0ae1, 0x0ae5, 0x0af0, 0x0b00, 0x0b04, 0x0b04, 0x0b0d, 0x0b0e, 0x0b11, 0x0b12, 0x0b29, 0x0b29, 0x0b31, 0x0b31, 0x0b34, 0x0b35, 0x0b3a, 0x0b3b, 0x0b44, 0x0b46, 0x0b49, 0x0b4a, 0x0b4e, 0x0b55, 0x0b58, 0x0b5b, 0x0b5e, 0x0b5e, 0x0b62, 0x0b65, 0x0b71, 0x0b81, 0x0b84, 0x0b84, 0x0b8b, 0x0b8d, 0x0b91, 0x0b91, 0x0b96, 0x0b98, 0x0b9b, 0x0b9b, 0x0b9d, 0x0b9d, 0x0ba0, 0x0ba2, 0x0ba5, 0x0ba7, 0x0bab, 0x0bad, 0x0bb6, 0x0bb6, 0x0bba, 0x0bbd, 0x0bc3, 0x0bc5, 0x0bc9, 0x0bc9, 0x0bce, 0x0bd6, 0x0bd8, 0x0be6, 0x0bf3, 0x0c00, 0x0c04, 0x0c04, 0x0c0d, 0x0c0d, 0x0c11, 0x0c11, 0x0c29, 0x0c29, 0x0c34, 0x0c34, 0x0c3a, 0x0c3d, 0x0c45, 0x0c45, 0x0c49, 0x0c49, 0x0c4e, 0x0c54, 0x0c57, 0x0c5f, 0x0c62, 0x0c65, 0x0c70, 0x0c81, 0x0c84, 0x0c84, 0x0c8d, 0x0c8d, 0x0c91, 0x0c91, 0x0ca9, 0x0ca9, 0x0cb4, 0x0cb4, 0x0cba, 0x0cbd, 0x0cc5, 0x0cc5, 0x0cc9, 0x0cc9, 0x0cce, 0x0cd4, 0x0cd7, 0x0cdd, 0x0cdf, 0x0cdf, 0x0ce2, 0x0ce5, 0x0cf0, 0x0d01, 0x0d04, 0x0d04, 0x0d0d, 0x0d0d, 0x0d11, 0x0d11, 0x0d29, 0x0d29, 0x0d3a, 0x0d3d, 0x0d44, 0x0d45, 0x0d49, 0x0d49, 0x0d4e, 0x0d56, 0x0d58, 0x0d5f, 0x0d62, 0x0d65, 0x0d70, 0x0d81, 0x0d84, 0x0d84, 0x0d97, 0x0d99, 0x0db2, 0x0db2, 0x0dbc, 0x0dbc, 0x0dbe, 0x0dbf, 0x0dc7, 0x0dc9, 0x0dcb, 0x0dce, 0x0dd5, 0x0dd5, 0x0dd7, 0x0dd7, 0x0de0, 0x0df1, 0x0df5, 0x0e00, 0x0e3b, 0x0e3e, 0x0e5c, 0x0e80, 0x0e83, 0x0e83, 0x0e85, 0x0e86, 0x0e89, 0x0e89, 0x0e8b, 0x0e8c, 0x0e8e, 0x0e93, 0x0e98, 0x0e98, 0x0ea0, 0x0ea0, 0x0ea4, 0x0ea4, 0x0ea6, 0x0ea6, 0x0ea8, 0x0ea9, 0x0eac, 0x0eac, 0x0eba, 0x0eba, 0x0ebe, 0x0ebf, 0x0ec5, 0x0ec5, 0x0ec7, 0x0ec7, 0x0ece, 0x0ecf, 0x0eda, 0x0edb, 0x0ede, 0x0eff, 0x0f48, 0x0f48, 0x0f6b, 0x0f70, 0x0f8c, 0x0f8f, 0x0f98, 0x0f98, 0x0fbd, 0x0fbd, 0x0fcd, 0x0fce, 0x0fd0, 0x0fff, 0x1022, 0x1022, 0x1028, 0x1028, 0x102b, 0x102b, 0x1033, 0x1035, 0x103a, 0x103f, 0x105a, 0x109f, 0x10c6, 0x10cf, 0x10f9, 0x10fa, 0x10fc, 0x10ff, 0x115a, 0x115e, 0x11a3, 0x11a7, 0x11fa, 0x11ff, 0x1207, 0x1207, 0x1247, 0x1247, 0x1249, 0x1249, 0x124e, 0x124f, 0x1257, 0x1257, 0x1259, 0x1259, 0x125e, 0x125f, 0x1287, 0x1287, 0x1289, 0x1289, 0x128e, 0x128f, 0x12af, 0x12af, 0x12b1, 0x12b1, 0x12b6, 0x12b7, 0x12bf, 0x12bf, 0x12c1, 0x12c1, 0x12c6, 0x12c7, 0x12cf, 0x12cf, 0x12d7, 0x12d7, 0x12ef, 0x12ef, 0x130f, 0x130f, 0x1311, 0x1311, 0x1316, 0x1317, 0x131f, 0x131f, 0x1347, 0x1347, 0x135b, 0x1360, 0x137d, 0x139f, 0x13f5, 0x1400, 0x1677, 0x167f, 0x169d, 0x169f, 0x16f1, 0x16ff, 0x170d, 0x170d, 0x1715, 0x171f, 0x1737, 0x173f, 0x1754, 0x175f, 0x176d, 0x176d, 0x1771, 0x1771, 0x1774, 0x177f, 0x17dd, 0x17df, 0x17ea, 0x17ff, 0x180f, 0x180f, 0x181a, 0x181f, 0x1878, 0x187f, 0x18aa, 0x1dff, 0x1e9c, 0x1e9f, 0x1efa, 0x1eff, 0x1f16, 0x1f17, 0x1f1e, 0x1f1f, 0x1f46, 0x1f47, 0x1f4e, 0x1f4f, 0x1f58, 0x1f58, 0x1f5a, 0x1f5a, 0x1f5c, 0x1f5c, 0x1f5e, 0x1f5e, 0x1f7e, 0x1f7f, 0x1fb5, 0x1fb5, 0x1fc5, 0x1fc5, 0x1fd4, 0x1fd5, 0x1fdc, 0x1fdc, 0x1ff0, 0x1ff1, 0x1ff5, 0x1ff5, 0x1fff, 0x1fff, 0x2053, 0x2056, 0x2058, 0x205e, 0x2064, 0x2069, 0x2072, 0x2073, 0x208f, 0x209f, 0x20b2, 0x20cf, 0x20eb, 0x20ff, 0x213b, 0x213c, 0x214c, 0x2152, 0x2184, 0x218f, 0x23cf, 0x23ff, 0x2427, 0x243f, 0x244b, 0x245f, 0x24ff, 0x24ff, 0x2614, 0x2615, 0x2618, 0x2618, 0x267e, 0x267f, 0x268a, 0x2700, 0x2705, 0x2705, 0x270a, 0x270b, 0x2728, 0x2728, 0x274c, 0x274c, 0x274e, 0x274e, 0x2753, 0x2755, 0x2757, 0x2757, 0x275f, 0x2760, 0x2795, 0x2797, 0x27b0, 0x27b0, 0x27bf, 0x27cf, 0x27ec, 0x27ef, 0x2b00, 0x2e7f, 0x2e9a, 0x2e9a, 0x2ef4, 0x2eff, 0x2fd6, 0x2fef, 0x2ffc, 0x2fff, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, 0x312d, 0x3130, 0x318f, 0x318f, 0x31b8, 0x31ef, 0x321d, 0x321f, 0x3244, 0x3250, 0x327c, 0x327e, 0x32cc, 0x32cf, 0x32ff, 0x32ff, 0x3377, 0x337a, 0x33de, 0x33df, 0x33ff, 0x33ff, 0x4db6, 0x4dff, 0x9fa6, 0x9fff, 0xa48d, 0xa48f, 0xa4c7, 0xabff, 0xd7a4, 0xd7ff, 0xfa2e, 0xfa2f, 0xfa6b, 0xfaff, 0xfb07, 0xfb12, 0xfb18, 0xfb1c, 0xfb37, 0xfb37, 0xfb3d, 0xfb3d, 0xfb3f, 0xfb3f, 0xfb42, 0xfb42, 0xfb45, 0xfb45, 0xfbb2, 0xfbd2, 0xfd40, 0xfd4f, 0xfd90, 0xfd91, 0xfdc8, 0xfdcf, 0xfdfd, 0xfdff, 0xfe10, 0xfe1f, 0xfe24, 0xfe2f, 0xfe47, 0xfe48, 0xfe53, 0xfe53, 0xfe67, 0xfe67, 0xfe6c, 0xfe6f, 0xfe75, 0xfe75, 0xfefd, 0xfefe, 0xff00, 0xff00, 0xffbf, 0xffc1, 0xffc8, 0xffc9, 0xffd0, 0xffd1, 0xffd8, 0xffd9, 0xffdd, 0xffdf, 0xffe7, 0xffe7, 0xffef, 0xfff8, 0x10000, 0x102ff, 0x1031f, 0x1031f, 0x10324, 0x1032f, 0x1034b, 0x103ff, 0x10426, 0x10427, 0x1044e, 0x1cfff, 0x1d0f6, 0x1d0ff, 0x1d127, 0x1d129, 0x1d1de, 0x1d3ff, 0x1d455, 0x1d455, 0x1d49d, 0x1d49d, 0x1d4a0, 0x1d4a1, 0x1d4a3, 0x1d4a4, 0x1d4a7, 0x1d4a8, 0x1d4ad, 0x1d4ad, 0x1d4ba, 0x1d4ba, 0x1d4bc, 0x1d4bc, 0x1d4c1, 0x1d4c1, 0x1d4c4, 0x1d4c4, 0x1d506, 0x1d506, 0x1d50b, 0x1d50c, 0x1d515, 0x1d515, 0x1d51d, 0x1d51d, 0x1d53a, 0x1d53a, 0x1d53f, 0x1d53f, 0x1d545, 0x1d545, 0x1d547, 0x1d549, 0x1d551, 0x1d551, 0x1d6a4, 0x1d6a7, 0x1d7ca, 0x1d7cd, 0x1d800, 0x1fffd, 0x2a6d7, 0x2f7ff, 0x2fa1e, 0x2fffd, 0x30000, 0x3fffd, 0x40000, 0x4fffd, 0x50000, 0x5fffd, 0x60000, 0x6fffd, 0x70000, 0x7fffd, 0x80000, 0x8fffd, 0x90000, 0x9fffd, 0xa0000, 0xafffd, 0xb0000, 0xbfffd, 0xc0000, 0xcfffd, 0xd0000, 0xdfffd, 0xe0000, 0xe0000, 0xe0002, 0xe001f, 0xe0080, 0xefffd];\n/* eslint-enable */\n\nvar isUnassignedCodePoint = function isUnassignedCodePoint(character) {\n  return inRange(character, unassigned_code_points);\n};\n/* eslint-disable prettier/prettier */\n\n/**\n * B.1 Commonly mapped to nothing\n * @link https://tools.ietf.org/html/rfc3454#appendix-B.1\n */\n\n\nvar commonly_mapped_to_nothing = [0x00ad, 0x00ad, 0x034f, 0x034f, 0x1806, 0x1806, 0x180b, 0x180b, 0x180c, 0x180c, 0x180d, 0x180d, 0x200b, 0x200b, 0x200c, 0x200c, 0x200d, 0x200d, 0x2060, 0x2060, 0xfe00, 0xfe00, 0xfe01, 0xfe01, 0xfe02, 0xfe02, 0xfe03, 0xfe03, 0xfe04, 0xfe04, 0xfe05, 0xfe05, 0xfe06, 0xfe06, 0xfe07, 0xfe07, 0xfe08, 0xfe08, 0xfe09, 0xfe09, 0xfe0a, 0xfe0a, 0xfe0b, 0xfe0b, 0xfe0c, 0xfe0c, 0xfe0d, 0xfe0d, 0xfe0e, 0xfe0e, 0xfe0f, 0xfe0f, 0xfeff, 0xfeff];\n/* eslint-enable */\n\nvar isCommonlyMappedToNothing = function isCommonlyMappedToNothing(character) {\n  return inRange(character, commonly_mapped_to_nothing);\n};\n/* eslint-disable prettier/prettier */\n\n/**\n * C.1.2 Non-ASCII space characters\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.1.2\n */\n\n\nvar non_ASCII_space_characters = [0x00a0, 0x00a0\n/* NO-BREAK SPACE */\n, 0x1680, 0x1680\n/* OGHAM SPACE MARK */\n, 0x2000, 0x2000\n/* EN QUAD */\n, 0x2001, 0x2001\n/* EM QUAD */\n, 0x2002, 0x2002\n/* EN SPACE */\n, 0x2003, 0x2003\n/* EM SPACE */\n, 0x2004, 0x2004\n/* THREE-PER-EM SPACE */\n, 0x2005, 0x2005\n/* FOUR-PER-EM SPACE */\n, 0x2006, 0x2006\n/* SIX-PER-EM SPACE */\n, 0x2007, 0x2007\n/* FIGURE SPACE */\n, 0x2008, 0x2008\n/* PUNCTUATION SPACE */\n, 0x2009, 0x2009\n/* THIN SPACE */\n, 0x200a, 0x200a\n/* HAIR SPACE */\n, 0x200b, 0x200b\n/* ZERO WIDTH SPACE */\n, 0x202f, 0x202f\n/* NARROW NO-BREAK SPACE */\n, 0x205f, 0x205f\n/* MEDIUM MATHEMATICAL SPACE */\n, 0x3000, 0x3000\n/* IDEOGRAPHIC SPACE */\n];\n/* eslint-enable */\n\nvar isNonASCIISpaceCharacter = function isNonASCIISpaceCharacter(character) {\n  return inRange(character, non_ASCII_space_characters);\n};\n/* eslint-disable prettier/prettier */\n\n\nvar non_ASCII_controls_characters = [\n/**\n * C.2.2 Non-ASCII control characters\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.2\n */\n0x0080, 0x009f\n/* [CONTROL CHARACTERS] */\n, 0x06dd, 0x06dd\n/* ARABIC END OF AYAH */\n, 0x070f, 0x070f\n/* SYRIAC ABBREVIATION MARK */\n, 0x180e, 0x180e\n/* MONGOLIAN VOWEL SEPARATOR */\n, 0x200c, 0x200c\n/* ZERO WIDTH NON-JOINER */\n, 0x200d, 0x200d\n/* ZERO WIDTH JOINER */\n, 0x2028, 0x2028\n/* LINE SEPARATOR */\n, 0x2029, 0x2029\n/* PARAGRAPH SEPARATOR */\n, 0x2060, 0x2060\n/* WORD JOINER */\n, 0x2061, 0x2061\n/* FUNCTION APPLICATION */\n, 0x2062, 0x2062\n/* INVISIBLE TIMES */\n, 0x2063, 0x2063\n/* INVISIBLE SEPARATOR */\n, 0x206a, 0x206f\n/* [CONTROL CHARACTERS] */\n, 0xfeff, 0xfeff\n/* ZERO WIDTH NO-BREAK SPACE */\n, 0xfff9, 0xfffc\n/* [CONTROL CHARACTERS] */\n, 0x1d173, 0x1d17a\n/* [MUSICAL CONTROL CHARACTERS] */\n];\nvar non_character_codepoints = [\n/**\n * C.4 Non-character code points\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.4\n */\n0xfdd0, 0xfdef\n/* [NONCHARACTER CODE POINTS] */\n, 0xfffe, 0xffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x1fffe, 0x1ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x2fffe, 0x2ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x3fffe, 0x3ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x4fffe, 0x4ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x5fffe, 0x5ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x6fffe, 0x6ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x7fffe, 0x7ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x8fffe, 0x8ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x9fffe, 0x9ffff\n/* [NONCHARACTER CODE POINTS] */\n, 0xafffe, 0xaffff\n/* [NONCHARACTER CODE POINTS] */\n, 0xbfffe, 0xbffff\n/* [NONCHARACTER CODE POINTS] */\n, 0xcfffe, 0xcffff\n/* [NONCHARACTER CODE POINTS] */\n, 0xdfffe, 0xdffff\n/* [NONCHARACTER CODE POINTS] */\n, 0xefffe, 0xeffff\n/* [NONCHARACTER CODE POINTS] */\n, 0x10fffe, 0x10ffff\n/* [NONCHARACTER CODE POINTS] */\n];\n/**\n * 2.3.  Prohibited Output\n */\n\nvar prohibited_characters = [\n/**\n * C.2.1 ASCII control characters\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.1\n */\n0, 0x001f\n/* [CONTROL CHARACTERS] */\n, 0x007f, 0x007f\n/* DELETE */\n,\n/**\n * C.8 Change display properties or are deprecated\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.8\n */\n0x0340, 0x0340\n/* COMBINING GRAVE TONE MARK */\n, 0x0341, 0x0341\n/* COMBINING ACUTE TONE MARK */\n, 0x200e, 0x200e\n/* LEFT-TO-RIGHT MARK */\n, 0x200f, 0x200f\n/* RIGHT-TO-LEFT MARK */\n, 0x202a, 0x202a\n/* LEFT-TO-RIGHT EMBEDDING */\n, 0x202b, 0x202b\n/* RIGHT-TO-LEFT EMBEDDING */\n, 0x202c, 0x202c\n/* POP DIRECTIONAL FORMATTING */\n, 0x202d, 0x202d\n/* LEFT-TO-RIGHT OVERRIDE */\n, 0x202e, 0x202e\n/* RIGHT-TO-LEFT OVERRIDE */\n, 0x206a, 0x206a\n/* INHIBIT SYMMETRIC SWAPPING */\n, 0x206b, 0x206b\n/* ACTIVATE SYMMETRIC SWAPPING */\n, 0x206c, 0x206c\n/* INHIBIT ARABIC FORM SHAPING */\n, 0x206d, 0x206d\n/* ACTIVATE ARABIC FORM SHAPING */\n, 0x206e, 0x206e\n/* NATIONAL DIGIT SHAPES */\n, 0x206f, 0x206f\n/* NOMINAL DIGIT SHAPES */\n,\n/**\n * C.7 Inappropriate for canonical representation\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.7\n */\n0x2ff0, 0x2ffb\n/* [IDEOGRAPHIC DESCRIPTION CHARACTERS] */\n,\n/**\n * C.5 Surrogate codes\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.5\n */\n0xd800, 0xdfff,\n/**\n * C.3 Private use\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.3\n */\n0xe000, 0xf8ff\n/* [PRIVATE USE, PLANE 0] */\n,\n/**\n * C.6 Inappropriate for plain text\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.6\n */\n0xfff9, 0xfff9\n/* INTERLINEAR ANNOTATION ANCHOR */\n, 0xfffa, 0xfffa\n/* INTERLINEAR ANNOTATION SEPARATOR */\n, 0xfffb, 0xfffb\n/* INTERLINEAR ANNOTATION TERMINATOR */\n, 0xfffc, 0xfffc\n/* OBJECT REPLACEMENT CHARACTER */\n, 0xfffd, 0xfffd\n/* REPLACEMENT CHARACTER */\n,\n/**\n * C.9 Tagging characters\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.9\n */\n0xe0001, 0xe0001\n/* LANGUAGE TAG */\n, 0xe0020, 0xe007f\n/* [TAGGING CHARACTERS] */\n,\n/**\n * C.3 Private use\n * @link https://tools.ietf.org/html/rfc3454#appendix-C.3\n */\n0xf0000, 0xffffd\n/* [PRIVATE USE, PLANE 15] */\n, 0x100000, 0x10fffd\n/* [PRIVATE USE, PLANE 16] */\n];\n/* eslint-enable */\n\nvar isProhibitedCharacter = function isProhibitedCharacter(character) {\n  return inRange(character, non_ASCII_space_characters) || inRange(character, prohibited_characters) || inRange(character, non_ASCII_controls_characters) || inRange(character, non_character_codepoints);\n};\n/* eslint-disable prettier/prettier */\n\n/**\n * D.1 Characters with bidirectional property \"R\" or \"AL\"\n * @link https://tools.ietf.org/html/rfc3454#appendix-D.1\n */\n\n\nvar bidirectional_r_al = [0x05be, 0x05be, 0x05c0, 0x05c0, 0x05c3, 0x05c3, 0x05d0, 0x05ea, 0x05f0, 0x05f4, 0x061b, 0x061b, 0x061f, 0x061f, 0x0621, 0x063a, 0x0640, 0x064a, 0x066d, 0x066f, 0x0671, 0x06d5, 0x06dd, 0x06dd, 0x06e5, 0x06e6, 0x06fa, 0x06fe, 0x0700, 0x070d, 0x0710, 0x0710, 0x0712, 0x072c, 0x0780, 0x07a5, 0x07b1, 0x07b1, 0x200f, 0x200f, 0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfc, 0xfe70, 0xfe74, 0xfe76, 0xfefc];\n/* eslint-enable */\n\nvar isBidirectionalRAL = function isBidirectionalRAL(character) {\n  return inRange(character, bidirectional_r_al);\n};\n/* eslint-disable prettier/prettier */\n\n/**\n * D.2 Characters with bidirectional property \"L\"\n * @link https://tools.ietf.org/html/rfc3454#appendix-D.2\n */\n\n\nvar bidirectional_l = [0x0041, 0x005a, 0x0061, 0x007a, 0x00aa, 0x00aa, 0x00b5, 0x00b5, 0x00ba, 0x00ba, 0x00c0, 0x00d6, 0x00d8, 0x00f6, 0x00f8, 0x0220, 0x0222, 0x0233, 0x0250, 0x02ad, 0x02b0, 0x02b8, 0x02bb, 0x02c1, 0x02d0, 0x02d1, 0x02e0, 0x02e4, 0x02ee, 0x02ee, 0x037a, 0x037a, 0x0386, 0x0386, 0x0388, 0x038a, 0x038c, 0x038c, 0x038e, 0x03a1, 0x03a3, 0x03ce, 0x03d0, 0x03f5, 0x0400, 0x0482, 0x048a, 0x04ce, 0x04d0, 0x04f5, 0x04f8, 0x04f9, 0x0500, 0x050f, 0x0531, 0x0556, 0x0559, 0x055f, 0x0561, 0x0587, 0x0589, 0x0589, 0x0903, 0x0903, 0x0905, 0x0939, 0x093d, 0x0940, 0x0949, 0x094c, 0x0950, 0x0950, 0x0958, 0x0961, 0x0964, 0x0970, 0x0982, 0x0983, 0x0985, 0x098c, 0x098f, 0x0990, 0x0993, 0x09a8, 0x09aa, 0x09b0, 0x09b2, 0x09b2, 0x09b6, 0x09b9, 0x09be, 0x09c0, 0x09c7, 0x09c8, 0x09cb, 0x09cc, 0x09d7, 0x09d7, 0x09dc, 0x09dd, 0x09df, 0x09e1, 0x09e6, 0x09f1, 0x09f4, 0x09fa, 0x0a05, 0x0a0a, 0x0a0f, 0x0a10, 0x0a13, 0x0a28, 0x0a2a, 0x0a30, 0x0a32, 0x0a33, 0x0a35, 0x0a36, 0x0a38, 0x0a39, 0x0a3e, 0x0a40, 0x0a59, 0x0a5c, 0x0a5e, 0x0a5e, 0x0a66, 0x0a6f, 0x0a72, 0x0a74, 0x0a83, 0x0a83, 0x0a85, 0x0a8b, 0x0a8d, 0x0a8d, 0x0a8f, 0x0a91, 0x0a93, 0x0aa8, 0x0aaa, 0x0ab0, 0x0ab2, 0x0ab3, 0x0ab5, 0x0ab9, 0x0abd, 0x0ac0, 0x0ac9, 0x0ac9, 0x0acb, 0x0acc, 0x0ad0, 0x0ad0, 0x0ae0, 0x0ae0, 0x0ae6, 0x0aef, 0x0b02, 0x0b03, 0x0b05, 0x0b0c, 0x0b0f, 0x0b10, 0x0b13, 0x0b28, 0x0b2a, 0x0b30, 0x0b32, 0x0b33, 0x0b36, 0x0b39, 0x0b3d, 0x0b3e, 0x0b40, 0x0b40, 0x0b47, 0x0b48, 0x0b4b, 0x0b4c, 0x0b57, 0x0b57, 0x0b5c, 0x0b5d, 0x0b5f, 0x0b61, 0x0b66, 0x0b70, 0x0b83, 0x0b83, 0x0b85, 0x0b8a, 0x0b8e, 0x0b90, 0x0b92, 0x0b95, 0x0b99, 0x0b9a, 0x0b9c, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0ba8, 0x0baa, 0x0bae, 0x0bb5, 0x0bb7, 0x0bb9, 0x0bbe, 0x0bbf, 0x0bc1, 0x0bc2, 0x0bc6, 0x0bc8, 0x0bca, 0x0bcc, 0x0bd7, 0x0bd7, 0x0be7, 0x0bf2, 0x0c01, 0x0c03, 0x0c05, 0x0c0c, 0x0c0e, 0x0c10, 0x0c12, 0x0c28, 0x0c2a, 0x0c33, 0x0c35, 0x0c39, 0x0c41, 0x0c44, 0x0c60, 0x0c61, 0x0c66, 0x0c6f, 0x0c82, 0x0c83, 0x0c85, 0x0c8c, 0x0c8e, 0x0c90, 0x0c92, 0x0ca8, 0x0caa, 0x0cb3, 0x0cb5, 0x0cb9, 0x0cbe, 0x0cbe, 0x0cc0, 0x0cc4, 0x0cc7, 0x0cc8, 0x0cca, 0x0ccb, 0x0cd5, 0x0cd6, 0x0cde, 0x0cde, 0x0ce0, 0x0ce1, 0x0ce6, 0x0cef, 0x0d02, 0x0d03, 0x0d05, 0x0d0c, 0x0d0e, 0x0d10, 0x0d12, 0x0d28, 0x0d2a, 0x0d39, 0x0d3e, 0x0d40, 0x0d46, 0x0d48, 0x0d4a, 0x0d4c, 0x0d57, 0x0d57, 0x0d60, 0x0d61, 0x0d66, 0x0d6f, 0x0d82, 0x0d83, 0x0d85, 0x0d96, 0x0d9a, 0x0db1, 0x0db3, 0x0dbb, 0x0dbd, 0x0dbd, 0x0dc0, 0x0dc6, 0x0dcf, 0x0dd1, 0x0dd8, 0x0ddf, 0x0df2, 0x0df4, 0x0e01, 0x0e30, 0x0e32, 0x0e33, 0x0e40, 0x0e46, 0x0e4f, 0x0e5b, 0x0e81, 0x0e82, 0x0e84, 0x0e84, 0x0e87, 0x0e88, 0x0e8a, 0x0e8a, 0x0e8d, 0x0e8d, 0x0e94, 0x0e97, 0x0e99, 0x0e9f, 0x0ea1, 0x0ea3, 0x0ea5, 0x0ea5, 0x0ea7, 0x0ea7, 0x0eaa, 0x0eab, 0x0ead, 0x0eb0, 0x0eb2, 0x0eb3, 0x0ebd, 0x0ebd, 0x0ec0, 0x0ec4, 0x0ec6, 0x0ec6, 0x0ed0, 0x0ed9, 0x0edc, 0x0edd, 0x0f00, 0x0f17, 0x0f1a, 0x0f34, 0x0f36, 0x0f36, 0x0f38, 0x0f38, 0x0f3e, 0x0f47, 0x0f49, 0x0f6a, 0x0f7f, 0x0f7f, 0x0f85, 0x0f85, 0x0f88, 0x0f8b, 0x0fbe, 0x0fc5, 0x0fc7, 0x0fcc, 0x0fcf, 0x0fcf, 0x1000, 0x1021, 0x1023, 0x1027, 0x1029, 0x102a, 0x102c, 0x102c, 0x1031, 0x1031, 0x1038, 0x1038, 0x1040, 0x1057, 0x10a0, 0x10c5, 0x10d0, 0x10f8, 0x10fb, 0x10fb, 0x1100, 0x1159, 0x115f, 0x11a2, 0x11a8, 0x11f9, 0x1200, 0x1206, 0x1208, 0x1246, 0x1248, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1286, 0x1288, 0x1288, 0x128a, 0x128d, 0x1290, 0x12ae, 0x12b0, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12ce, 0x12d0, 0x12d6, 0x12d8, 0x12ee, 0x12f0, 0x130e, 0x1310, 0x1310, 0x1312, 0x1315, 0x1318, 0x131e, 0x1320, 0x1346, 0x1348, 0x135a, 0x1361, 0x137c, 0x13a0, 0x13f4, 0x1401, 0x1676, 0x1681, 0x169a, 0x16a0, 0x16f0, 0x1700, 0x170c, 0x170e, 0x1711, 0x1720, 0x1731, 0x1735, 0x1736, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b6, 0x17be, 0x17c5, 0x17c7, 0x17c8, 0x17d4, 0x17da, 0x17dc, 0x17dc, 0x17e0, 0x17e9, 0x1810, 0x1819, 0x1820, 0x1877, 0x1880, 0x18a8, 0x1e00, 0x1e9b, 0x1ea0, 0x1ef9, 0x1f00, 0x1f15, 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4, 0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffc, 0x200e, 0x200e, 0x2071, 0x2071, 0x207f, 0x207f, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2119, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x212d, 0x212f, 0x2131, 0x2133, 0x2139, 0x213d, 0x213f, 0x2145, 0x2149, 0x2160, 0x2183, 0x2336, 0x237a, 0x2395, 0x2395, 0x249c, 0x24e9, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309d, 0x309f, 0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312c, 0x3131, 0x318e, 0x3190, 0x31b7, 0x31f0, 0x321c, 0x3220, 0x3243, 0x3260, 0x327b, 0x327f, 0x32b0, 0x32c0, 0x32cb, 0x32d0, 0x32fe, 0x3300, 0x3376, 0x337b, 0x33dd, 0x33e0, 0x33fe, 0x3400, 0x4db5, 0x4e00, 0x9fa5, 0xa000, 0xa48c, 0xac00, 0xd7a3, 0xd800, 0xfa2d, 0xfa30, 0xfa6a, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xff21, 0xff3a, 0xff41, 0xff5a, 0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10300, 0x1031e, 0x10320, 0x10323, 0x10330, 0x1034a, 0x10400, 0x10425, 0x10428, 0x1044d, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d12a, 0x1d166, 0x1d16a, 0x1d172, 0x1d183, 0x1d184, 0x1d18c, 0x1d1a9, 0x1d1ae, 0x1d1dd, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c0, 0x1d4c2, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a3, 0x1d6a8, 0x1d7c9, 0x20000, 0x2a6d6, 0x2f800, 0x2fa1d, 0xf0000, 0xffffd, 0x100000, 0x10fffd];\n/* eslint-enable */\n\nvar isBidirectionalL = function isBidirectionalL(character) {\n  return inRange(character, bidirectional_l);\n};\n/**\n * non-ASCII space characters [StringPrep, C.1.2] that can be\n * mapped to SPACE (U+0020)\n */\n\n\nvar mapping2space = isNonASCIISpaceCharacter;\n/**\n * the \"commonly mapped to nothing\" characters [StringPrep, B.1]\n * that can be mapped to nothing.\n */\n\nvar mapping2nothing = isCommonlyMappedToNothing; // utils\n\nvar getCodePoint = function getCodePoint(character) {\n  return character.codePointAt(0);\n};\n\nvar first = function first(x) {\n  return x[0];\n};\n\nvar last = function last(x) {\n  return x[x.length - 1];\n};\n/**\n * Convert provided string into an array of Unicode Code Points.\n * Based on https://stackoverflow.com/a/21409165/1556249\n * and https://www.npmjs.com/package/code-point-at.\n * @param {string} input\n * @returns {number[]}\n */\n\n\nfunction toCodePoints(input) {\n  var codepoints = [];\n  var size = input.length;\n\n  for (var i = 0; i < size; i += 1) {\n    var before = input.charCodeAt(i);\n\n    if (before >= 0xd800 && before <= 0xdbff && size > i + 1) {\n      var next = input.charCodeAt(i + 1);\n\n      if (next >= 0xdc00 && next <= 0xdfff) {\n        codepoints.push((before - 0xd800) * 0x400 + next - 0xdc00 + 0x10000);\n        i += 1;\n        continue;\n      }\n    }\n\n    codepoints.push(before);\n  }\n\n  return codepoints;\n}\n/**\n * SASLprep.\n * @param {string} input\n * @param {Object} opts\n * @param {boolean} opts.allowUnassigned\n * @returns {string}\n */\n\n\nfunction saslprep(input) {\n  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected string.');\n  }\n\n  if (input.length === 0) {\n    return '';\n  } // 1. Map\n\n\n  var mapped_input = toCodePoints(input) // 1.1 mapping to space\n  .map(function (character) {\n    return mapping2space(character) ? 0x20 : character;\n  }) // 1.2 mapping to nothing\n  .filter(function (character) {\n    return !mapping2nothing(character);\n  }); // 2. Normalize\n\n  var normalized_input = String.fromCodePoint.apply(null, mapped_input).normalize('NFKC');\n  var normalized_map = toCodePoints(normalized_input); // 3. Prohibit\n\n  var hasProhibited = normalized_map.some(isProhibitedCharacter);\n\n  if (hasProhibited) {\n    throw new Error('Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3');\n  } // Unassigned Code Points\n\n\n  if (opts.allowUnassigned !== true) {\n    var hasUnassigned = normalized_map.some(isUnassignedCodePoint);\n\n    if (hasUnassigned) {\n      throw new Error('Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5');\n    }\n  } // 4. check bidi\n\n\n  var hasBidiRAL = normalized_map.some(isBidirectionalRAL);\n  var hasBidiL = normalized_map.some(isBidirectionalL); // 4.1 If a string contains any RandALCat character, the string MUST NOT\n  // contain any LCat character.\n\n  if (hasBidiRAL && hasBidiL) {\n    throw new Error('String must not contain RandALCat and LCat at the same time,' + ' see https://tools.ietf.org/html/rfc3454#section-6');\n  }\n  /**\n   * 4.2 If a string contains any RandALCat character, a RandALCat\n   * character MUST be the first character of the string, and a\n   * RandALCat character MUST be the last character of the string.\n   */\n\n\n  var isFirstBidiRAL = isBidirectionalRAL(getCodePoint(first(normalized_input)));\n  var isLastBidiRAL = isBidirectionalRAL(getCodePoint(last(normalized_input)));\n\n  if (hasBidiRAL && !(isFirstBidiRAL && isLastBidiRAL)) {\n    throw new Error('Bidirectional RandALCat character must be the first and the last' + ' character of the string, see https://tools.ietf.org/html/rfc3454#section-6');\n  }\n\n  return normalized_input;\n}\n\nvar PDFSecurity = /*#__PURE__*/function () {\n  _createClass(PDFSecurity, null, [{\n    key: \"generateFileID\",\n    value: function generateFileID() {\n      var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var infoStr = \"\".concat(info.CreationDate.getTime(), \"\\n\");\n\n      for (var key in info) {\n        if (!info.hasOwnProperty(key)) {\n          continue;\n        }\n\n        infoStr += \"\".concat(key, \": \").concat(info[key], \"\\n\");\n      }\n\n      return wordArrayToBuffer(_cryptoJs.default.MD5(infoStr));\n    }\n  }, {\n    key: \"generateRandomWordArray\",\n    value: function generateRandomWordArray(bytes) {\n      return _cryptoJs.default.lib.WordArray.random(bytes);\n    }\n  }, {\n    key: \"create\",\n    value: function create(document) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (!options.ownerPassword && !options.userPassword) {\n        return null;\n      }\n\n      return new PDFSecurity(document, options);\n    }\n  }]);\n\n  function PDFSecurity(document) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, PDFSecurity);\n\n    if (!options.ownerPassword && !options.userPassword) {\n      throw new Error('None of owner password and user password is defined.');\n    }\n\n    this.document = document;\n\n    this._setupEncryption(options);\n  }\n\n  _createClass(PDFSecurity, [{\n    key: \"_setupEncryption\",\n    value: function _setupEncryption(options) {\n      switch (options.pdfVersion) {\n        case '1.4':\n        case '1.5':\n          this.version = 2;\n          break;\n\n        case '1.6':\n        case '1.7':\n          this.version = 4;\n          break;\n\n        case '1.7ext3':\n          this.version = 5;\n          break;\n\n        default:\n          this.version = 1;\n          break;\n      }\n\n      var encDict = {\n        Filter: 'Standard'\n      };\n\n      switch (this.version) {\n        case 1:\n        case 2:\n        case 4:\n          this._setupEncryptionV1V2V4(this.version, encDict, options);\n\n          break;\n\n        case 5:\n          this._setupEncryptionV5(encDict, options);\n\n          break;\n      }\n\n      this.dictionary = this.document.ref(encDict);\n    }\n  }, {\n    key: \"_setupEncryptionV1V2V4\",\n    value: function _setupEncryptionV1V2V4(v, encDict, options) {\n      var r, permissions;\n\n      switch (v) {\n        case 1:\n          r = 2;\n          this.keyBits = 40;\n          permissions = getPermissionsR2(options.permissions);\n          break;\n\n        case 2:\n          r = 3;\n          this.keyBits = 128;\n          permissions = getPermissionsR3(options.permissions);\n          break;\n\n        case 4:\n          r = 4;\n          this.keyBits = 128;\n          permissions = getPermissionsR3(options.permissions);\n          break;\n      }\n\n      var paddedUserPassword = processPasswordR2R3R4(options.userPassword);\n      var paddedOwnerPassword = options.ownerPassword ? processPasswordR2R3R4(options.ownerPassword) : paddedUserPassword;\n      var ownerPasswordEntry = getOwnerPasswordR2R3R4(r, this.keyBits, paddedUserPassword, paddedOwnerPassword);\n      this.encryptionKey = getEncryptionKeyR2R3R4(r, this.keyBits, this.document._id, paddedUserPassword, ownerPasswordEntry, permissions);\n      var userPasswordEntry;\n\n      if (r === 2) {\n        userPasswordEntry = getUserPasswordR2(this.encryptionKey);\n      } else {\n        userPasswordEntry = getUserPasswordR3R4(this.document._id, this.encryptionKey);\n      }\n\n      encDict.V = v;\n\n      if (v >= 2) {\n        encDict.Length = this.keyBits;\n      }\n\n      if (v === 4) {\n        encDict.CF = {\n          StdCF: {\n            AuthEvent: 'DocOpen',\n            CFM: 'AESV2',\n            Length: this.keyBits / 8\n          }\n        };\n        encDict.StmF = 'StdCF';\n        encDict.StrF = 'StdCF';\n      }\n\n      encDict.R = r;\n      encDict.O = wordArrayToBuffer(ownerPasswordEntry);\n      encDict.U = wordArrayToBuffer(userPasswordEntry);\n      encDict.P = permissions;\n    }\n  }, {\n    key: \"_setupEncryptionV5\",\n    value: function _setupEncryptionV5(encDict, options) {\n      this.keyBits = 256;\n      var permissions = getPermissionsR3(options);\n      var processedUserPassword = processPasswordR5(options.userPassword);\n      var processedOwnerPassword = options.ownerPassword ? processPasswordR5(options.ownerPassword) : processedUserPassword;\n      this.encryptionKey = getEncryptionKeyR5(PDFSecurity.generateRandomWordArray);\n      var userPasswordEntry = getUserPasswordR5(processedUserPassword, PDFSecurity.generateRandomWordArray);\n\n      var userKeySalt = _cryptoJs.default.lib.WordArray.create(userPasswordEntry.words.slice(10, 12), 8);\n\n      var userEncryptionKeyEntry = getUserEncryptionKeyR5(processedUserPassword, userKeySalt, this.encryptionKey);\n      var ownerPasswordEntry = getOwnerPasswordR5(processedOwnerPassword, userPasswordEntry, PDFSecurity.generateRandomWordArray);\n\n      var ownerKeySalt = _cryptoJs.default.lib.WordArray.create(ownerPasswordEntry.words.slice(10, 12), 8);\n\n      var ownerEncryptionKeyEntry = getOwnerEncryptionKeyR5(processedOwnerPassword, ownerKeySalt, userPasswordEntry, this.encryptionKey);\n      var permsEntry = getEncryptedPermissionsR5(permissions, this.encryptionKey, PDFSecurity.generateRandomWordArray);\n      encDict.V = 5;\n      encDict.Length = this.keyBits;\n      encDict.CF = {\n        StdCF: {\n          AuthEvent: 'DocOpen',\n          CFM: 'AESV3',\n          Length: this.keyBits / 8\n        }\n      };\n      encDict.StmF = 'StdCF';\n      encDict.StrF = 'StdCF';\n      encDict.R = 5;\n      encDict.O = wordArrayToBuffer(ownerPasswordEntry);\n      encDict.OE = wordArrayToBuffer(ownerEncryptionKeyEntry);\n      encDict.U = wordArrayToBuffer(userPasswordEntry);\n      encDict.UE = wordArrayToBuffer(userEncryptionKeyEntry);\n      encDict.P = permissions;\n      encDict.Perms = wordArrayToBuffer(permsEntry);\n    }\n  }, {\n    key: \"getEncryptFn\",\n    value: function getEncryptFn(obj, gen) {\n      var digest;\n\n      if (this.version < 5) {\n        digest = this.encryptionKey.clone().concat(_cryptoJs.default.lib.WordArray.create([(obj & 0xff) << 24 | (obj & 0xff00) << 8 | obj >> 8 & 0xff00 | gen & 0xff, (gen & 0xff00) << 16], 5));\n      }\n\n      if (this.version === 1 || this.version === 2) {\n        var _key = _cryptoJs.default.MD5(digest);\n\n        _key.sigBytes = Math.min(16, this.keyBits / 8 + 5);\n        return function (buffer) {\n          return wordArrayToBuffer(_cryptoJs.default.RC4.encrypt(_cryptoJs.default.lib.WordArray.create(buffer), _key).ciphertext);\n        };\n      }\n\n      var key;\n\n      if (this.version === 4) {\n        key = _cryptoJs.default.MD5(digest.concat(_cryptoJs.default.lib.WordArray.create([0x73416c54], 4)));\n      } else {\n        key = this.encryptionKey;\n      }\n\n      var iv = PDFSecurity.generateRandomWordArray(16);\n      var options = {\n        mode: _cryptoJs.default.mode.CBC,\n        padding: _cryptoJs.default.pad.Pkcs7,\n        iv: iv\n      };\n      return function (buffer) {\n        return wordArrayToBuffer(iv.clone().concat(_cryptoJs.default.AES.encrypt(_cryptoJs.default.lib.WordArray.create(buffer), key, options).ciphertext));\n      };\n    }\n  }, {\n    key: \"end\",\n    value: function end() {\n      this.dictionary.end();\n    }\n  }]);\n\n  return PDFSecurity;\n}();\n\nfunction getPermissionsR2() {\n  var permissionObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var permissions = 0xffffffc0 >> 0;\n\n  if (permissionObject.printing) {\n    permissions |= 4;\n  }\n\n  if (permissionObject.modifying) {\n    permissions |= 8;\n  }\n\n  if (permissionObject.copying) {\n    permissions |= 16;\n  }\n\n  if (permissionObject.annotating) {\n    permissions |= 32;\n  }\n\n  return permissions;\n}\n\nfunction getPermissionsR3() {\n  var permissionObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var permissions = 0xfffff0c0 >> 0;\n\n  if (permissionObject.printing === 'lowResolution') {\n    permissions |= 4;\n  }\n\n  if (permissionObject.printing === 'highResolution') {\n    permissions |= 2052;\n  }\n\n  if (permissionObject.modifying) {\n    permissions |= 8;\n  }\n\n  if (permissionObject.copying) {\n    permissions |= 16;\n  }\n\n  if (permissionObject.annotating) {\n    permissions |= 32;\n  }\n\n  if (permissionObject.fillingForms) {\n    permissions |= 256;\n  }\n\n  if (permissionObject.contentAccessibility) {\n    permissions |= 512;\n  }\n\n  if (permissionObject.documentAssembly) {\n    permissions |= 1024;\n  }\n\n  return permissions;\n}\n\nfunction getUserPasswordR2(encryptionKey) {\n  return _cryptoJs.default.RC4.encrypt(processPasswordR2R3R4(), encryptionKey).ciphertext;\n}\n\nfunction getUserPasswordR3R4(documentId, encryptionKey) {\n  var key = encryptionKey.clone();\n\n  var cipher = _cryptoJs.default.MD5(processPasswordR2R3R4().concat(_cryptoJs.default.lib.WordArray.create(documentId)));\n\n  for (var i = 0; i < 20; i++) {\n    var xorRound = Math.ceil(key.sigBytes / 4);\n\n    for (var j = 0; j < xorRound; j++) {\n      key.words[j] = encryptionKey.words[j] ^ (i | i << 8 | i << 16 | i << 24);\n    }\n\n    cipher = _cryptoJs.default.RC4.encrypt(cipher, key).ciphertext;\n  }\n\n  return cipher.concat(_cryptoJs.default.lib.WordArray.create(null, 16));\n}\n\nfunction getOwnerPasswordR2R3R4(r, keyBits, paddedUserPassword, paddedOwnerPassword) {\n  var digest = paddedOwnerPassword;\n  var round = r >= 3 ? 51 : 1;\n\n  for (var i = 0; i < round; i++) {\n    digest = _cryptoJs.default.MD5(digest);\n  }\n\n  var key = digest.clone();\n  key.sigBytes = keyBits / 8;\n  var cipher = paddedUserPassword;\n  round = r >= 3 ? 20 : 1;\n\n  for (var _i = 0; _i < round; _i++) {\n    var xorRound = Math.ceil(key.sigBytes / 4);\n\n    for (var j = 0; j < xorRound; j++) {\n      key.words[j] = digest.words[j] ^ (_i | _i << 8 | _i << 16 | _i << 24);\n    }\n\n    cipher = _cryptoJs.default.RC4.encrypt(cipher, key).ciphertext;\n  }\n\n  return cipher;\n}\n\nfunction getEncryptionKeyR2R3R4(r, keyBits, documentId, paddedUserPassword, ownerPasswordEntry, permissions) {\n  var key = paddedUserPassword.clone().concat(ownerPasswordEntry).concat(_cryptoJs.default.lib.WordArray.create([lsbFirstWord(permissions)], 4)).concat(_cryptoJs.default.lib.WordArray.create(documentId));\n  var round = r >= 3 ? 51 : 1;\n\n  for (var i = 0; i < round; i++) {\n    key = _cryptoJs.default.MD5(key);\n    key.sigBytes = keyBits / 8;\n  }\n\n  return key;\n}\n\nfunction getUserPasswordR5(processedUserPassword, generateRandomWordArray) {\n  var validationSalt = generateRandomWordArray(8);\n  var keySalt = generateRandomWordArray(8);\n  return _cryptoJs.default.SHA256(processedUserPassword.clone().concat(validationSalt)).concat(validationSalt).concat(keySalt);\n}\n\nfunction getUserEncryptionKeyR5(processedUserPassword, userKeySalt, encryptionKey) {\n  var key = _cryptoJs.default.SHA256(processedUserPassword.clone().concat(userKeySalt));\n\n  var options = {\n    mode: _cryptoJs.default.mode.CBC,\n    padding: _cryptoJs.default.pad.NoPadding,\n    iv: _cryptoJs.default.lib.WordArray.create(null, 16)\n  };\n  return _cryptoJs.default.AES.encrypt(encryptionKey, key, options).ciphertext;\n}\n\nfunction getOwnerPasswordR5(processedOwnerPassword, userPasswordEntry, generateRandomWordArray) {\n  var validationSalt = generateRandomWordArray(8);\n  var keySalt = generateRandomWordArray(8);\n  return _cryptoJs.default.SHA256(processedOwnerPassword.clone().concat(validationSalt).concat(userPasswordEntry)).concat(validationSalt).concat(keySalt);\n}\n\nfunction getOwnerEncryptionKeyR5(processedOwnerPassword, ownerKeySalt, userPasswordEntry, encryptionKey) {\n  var key = _cryptoJs.default.SHA256(processedOwnerPassword.clone().concat(ownerKeySalt).concat(userPasswordEntry));\n\n  var options = {\n    mode: _cryptoJs.default.mode.CBC,\n    padding: _cryptoJs.default.pad.NoPadding,\n    iv: _cryptoJs.default.lib.WordArray.create(null, 16)\n  };\n  return _cryptoJs.default.AES.encrypt(encryptionKey, key, options).ciphertext;\n}\n\nfunction getEncryptionKeyR5(generateRandomWordArray) {\n  return generateRandomWordArray(32);\n}\n\nfunction getEncryptedPermissionsR5(permissions, encryptionKey, generateRandomWordArray) {\n  var cipher = _cryptoJs.default.lib.WordArray.create([lsbFirstWord(permissions), 0xffffffff, 0x54616462], 12).concat(generateRandomWordArray(4));\n\n  var options = {\n    mode: _cryptoJs.default.mode.ECB,\n    padding: _cryptoJs.default.pad.NoPadding\n  };\n  return _cryptoJs.default.AES.encrypt(cipher, encryptionKey, options).ciphertext;\n}\n\nfunction processPasswordR2R3R4() {\n  var password = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var out = new Buffer(32);\n  var length = password.length;\n  var index = 0;\n\n  while (index < length && index < 32) {\n    var code = password.charCodeAt(index);\n\n    if (code > 0xff) {\n      throw new Error('Password contains one or more invalid characters.');\n    }\n\n    out[index] = code;\n    index++;\n  }\n\n  while (index < 32) {\n    out[index] = PASSWORD_PADDING[index - length];\n    index++;\n  }\n\n  return _cryptoJs.default.lib.WordArray.create(out);\n}\n\nfunction processPasswordR5() {\n  var password = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  password = unescape(encodeURIComponent(saslprep(password)));\n  var length = Math.min(127, password.length);\n  var out = new Buffer(length);\n\n  for (var i = 0; i < length; i++) {\n    out[i] = password.charCodeAt(i);\n  }\n\n  return _cryptoJs.default.lib.WordArray.create(out);\n}\n\nfunction lsbFirstWord(data) {\n  return (data & 0xff) << 24 | (data & 0xff00) << 8 | data >> 8 & 0xff00 | data >> 24 & 0xff;\n}\n\nfunction wordArrayToBuffer(wordArray) {\n  var byteArray = [];\n\n  for (var i = 0; i < wordArray.sigBytes; i++) {\n    byteArray.push(wordArray.words[Math.floor(i / 4)] >> 8 * (3 - i % 4) & 0xff);\n  }\n\n  return Buffer.from(byteArray);\n}\n\nvar PASSWORD_PADDING = [0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a];\nvar number = PDFObject.number;\n\nvar PDFGradient = /*#__PURE__*/function () {\n  function PDFGradient(doc) {\n    _classCallCheck(this, PDFGradient);\n\n    this.doc = doc;\n    this.stops = [];\n    this.embedded = false;\n    this.transform = [1, 0, 0, 1, 0, 0];\n  }\n\n  _createClass(PDFGradient, [{\n    key: \"stop\",\n    value: function stop(pos, color, opacity) {\n      if (opacity == null) {\n        opacity = 1;\n      }\n\n      color = this.doc._normalizeColor(color);\n\n      if (this.stops.length === 0) {\n        if (color.length === 3) {\n          this._colorSpace = 'DeviceRGB';\n        } else if (color.length === 4) {\n          this._colorSpace = 'DeviceCMYK';\n        } else if (color.length === 1) {\n          this._colorSpace = 'DeviceGray';\n        } else {\n          throw new Error('Unknown color space');\n        }\n      } else if (this._colorSpace === 'DeviceRGB' && color.length !== 3 || this._colorSpace === 'DeviceCMYK' && color.length !== 4 || this._colorSpace === 'DeviceGray' && color.length !== 1) {\n        throw new Error('All gradient stops must use the same color space');\n      }\n\n      opacity = Math.max(0, Math.min(1, opacity));\n      this.stops.push([pos, color, opacity]);\n      return this;\n    }\n  }, {\n    key: \"setTransform\",\n    value: function setTransform(m11, m12, m21, m22, dx, dy) {\n      this.transform = [m11, m12, m21, m22, dx, dy];\n      return this;\n    }\n  }, {\n    key: \"embed\",\n    value: function embed(m) {\n      var fn;\n      var stopsLength = this.stops.length;\n\n      if (stopsLength === 0) {\n        return;\n      }\n\n      this.embedded = true;\n      this.matrix = m; // if the last stop comes before 100%, add a copy at 100%\n\n      var last = this.stops[stopsLength - 1];\n\n      if (last[0] < 1) {\n        this.stops.push([1, last[1], last[2]]);\n      }\n\n      var bounds = [];\n      var encode = [];\n      var stops = [];\n\n      for (var i = 0; i < stopsLength - 1; i++) {\n        encode.push(0, 1);\n\n        if (i + 2 !== stopsLength) {\n          bounds.push(this.stops[i + 1][0]);\n        }\n\n        fn = this.doc.ref({\n          FunctionType: 2,\n          Domain: [0, 1],\n          C0: this.stops[i + 0][1],\n          C1: this.stops[i + 1][1],\n          N: 1\n        });\n        stops.push(fn);\n        fn.end();\n      } // if there are only two stops, we don't need a stitching function\n\n\n      if (stopsLength === 1) {\n        fn = stops[0];\n      } else {\n        fn = this.doc.ref({\n          FunctionType: 3,\n          // stitching function\n          Domain: [0, 1],\n          Functions: stops,\n          Bounds: bounds,\n          Encode: encode\n        });\n        fn.end();\n      }\n\n      this.id = \"Sh\".concat(++this.doc._gradCount);\n      var shader = this.shader(fn);\n      shader.end();\n      var pattern = this.doc.ref({\n        Type: 'Pattern',\n        PatternType: 2,\n        Shading: shader,\n        Matrix: this.matrix.map(number)\n      });\n      pattern.end();\n\n      if (this.stops.some(function (stop) {\n        return stop[2] < 1;\n      })) {\n        var grad = this.opacityGradient();\n        grad._colorSpace = 'DeviceGray';\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = this.stops[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var stop = _step.value;\n            grad.stop(stop[0], [stop[2]]);\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        grad = grad.embed(this.matrix);\n        var pageBBox = [0, 0, this.doc.page.width, this.doc.page.height];\n        var form = this.doc.ref({\n          Type: 'XObject',\n          Subtype: 'Form',\n          FormType: 1,\n          BBox: pageBBox,\n          Group: {\n            Type: 'Group',\n            S: 'Transparency',\n            CS: 'DeviceGray'\n          },\n          Resources: {\n            ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n            Pattern: {\n              Sh1: grad\n            }\n          }\n        });\n        form.write('/Pattern cs /Sh1 scn');\n        form.end(\"\".concat(pageBBox.join(' '), \" re f\"));\n        var gstate = this.doc.ref({\n          Type: 'ExtGState',\n          SMask: {\n            Type: 'Mask',\n            S: 'Luminosity',\n            G: form\n          }\n        });\n        gstate.end();\n        var opacityPattern = this.doc.ref({\n          Type: 'Pattern',\n          PatternType: 1,\n          PaintType: 1,\n          TilingType: 2,\n          BBox: pageBBox,\n          XStep: pageBBox[2],\n          YStep: pageBBox[3],\n          Resources: {\n            ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n            Pattern: {\n              Sh1: pattern\n            },\n            ExtGState: {\n              Gs1: gstate\n            }\n          }\n        });\n        opacityPattern.write('/Gs1 gs /Pattern cs /Sh1 scn');\n        opacityPattern.end(\"\".concat(pageBBox.join(' '), \" re f\"));\n        this.doc.page.patterns[this.id] = opacityPattern;\n      } else {\n        this.doc.page.patterns[this.id] = pattern;\n      }\n\n      return pattern;\n    }\n  }, {\n    key: \"apply\",\n    value: function apply(op) {\n      // apply gradient transform to existing document ctm\n      var _this$doc$_ctm = _slicedToArray(this.doc._ctm, 6),\n          m0 = _this$doc$_ctm[0],\n          m1 = _this$doc$_ctm[1],\n          m2 = _this$doc$_ctm[2],\n          m3 = _this$doc$_ctm[3],\n          m4 = _this$doc$_ctm[4],\n          m5 = _this$doc$_ctm[5];\n\n      var _this$transform = _slicedToArray(this.transform, 6),\n          m11 = _this$transform[0],\n          m12 = _this$transform[1],\n          m21 = _this$transform[2],\n          m22 = _this$transform[3],\n          dx = _this$transform[4],\n          dy = _this$transform[5];\n\n      var m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];\n\n      if (!this.embedded || m.join(' ') !== this.matrix.join(' ')) {\n        this.embed(m);\n      }\n\n      return this.doc.addContent(\"/\".concat(this.id, \" \").concat(op));\n    }\n  }]);\n\n  return PDFGradient;\n}();\n\nvar PDFLinearGradient = /*#__PURE__*/function (_PDFGradient) {\n  _inherits(PDFLinearGradient, _PDFGradient);\n\n  function PDFLinearGradient(doc, x1, y1, x2, y2) {\n    var _this;\n\n    _classCallCheck(this, PDFLinearGradient);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFLinearGradient).call(this, doc));\n    _this.x1 = x1;\n    _this.y1 = y1;\n    _this.x2 = x2;\n    _this.y2 = y2;\n    return _this;\n  }\n\n  _createClass(PDFLinearGradient, [{\n    key: \"shader\",\n    value: function shader(fn) {\n      return this.doc.ref({\n        ShadingType: 2,\n        ColorSpace: this._colorSpace,\n        Coords: [this.x1, this.y1, this.x2, this.y2],\n        Function: fn,\n        Extend: [true, true]\n      });\n    }\n  }, {\n    key: \"opacityGradient\",\n    value: function opacityGradient() {\n      return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2);\n    }\n  }]);\n\n  return PDFLinearGradient;\n}(PDFGradient);\n\nvar PDFRadialGradient = /*#__PURE__*/function (_PDFGradient2) {\n  _inherits(PDFRadialGradient, _PDFGradient2);\n\n  function PDFRadialGradient(doc, x1, y1, r1, x2, y2, r2) {\n    var _this2;\n\n    _classCallCheck(this, PDFRadialGradient);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(PDFRadialGradient).call(this, doc));\n    _this2.doc = doc;\n    _this2.x1 = x1;\n    _this2.y1 = y1;\n    _this2.r1 = r1;\n    _this2.x2 = x2;\n    _this2.y2 = y2;\n    _this2.r2 = r2;\n    return _this2;\n  }\n\n  _createClass(PDFRadialGradient, [{\n    key: \"shader\",\n    value: function shader(fn) {\n      return this.doc.ref({\n        ShadingType: 3,\n        ColorSpace: this._colorSpace,\n        Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2],\n        Function: fn,\n        Extend: [true, true]\n      });\n    }\n  }, {\n    key: \"opacityGradient\",\n    value: function opacityGradient() {\n      return new PDFRadialGradient(this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2);\n    }\n  }]);\n\n  return PDFRadialGradient;\n}(PDFGradient);\n\nvar Gradient = {\n  PDFGradient: PDFGradient,\n  PDFLinearGradient: PDFLinearGradient,\n  PDFRadialGradient: PDFRadialGradient\n};\nvar PDFGradient$1 = Gradient.PDFGradient,\n    PDFLinearGradient$1 = Gradient.PDFLinearGradient,\n    PDFRadialGradient$1 = Gradient.PDFRadialGradient;\nvar ColorMixin = {\n  initColor: function initColor() {\n    // The opacity dictionaries\n    this._opacityRegistry = {};\n    this._opacityCount = 0;\n    return this._gradCount = 0;\n  },\n  _normalizeColor: function _normalizeColor(color) {\n    if (color instanceof PDFGradient$1) {\n      return color;\n    }\n\n    if (typeof color === 'string') {\n      if (color.charAt(0) === '#') {\n        if (color.length === 4) {\n          color = color.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i, '#$1$1$2$2$3$3');\n        }\n\n        var hex = parseInt(color.slice(1), 16);\n        color = [hex >> 16, hex >> 8 & 0xff, hex & 0xff];\n      } else if (namedColors[color]) {\n        color = namedColors[color];\n      }\n    }\n\n    if (Array.isArray(color)) {\n      // RGB\n      if (color.length === 3) {\n        color = color.map(function (part) {\n          return part / 255;\n        }); // CMYK\n      } else if (color.length === 4) {\n        color = color.map(function (part) {\n          return part / 100;\n        });\n      }\n\n      return color;\n    }\n\n    return null;\n  },\n  _setColor: function _setColor(color, stroke) {\n    color = this._normalizeColor(color);\n\n    if (!color) {\n      return false;\n    }\n\n    var op = stroke ? 'SCN' : 'scn';\n\n    if (color instanceof PDFGradient$1) {\n      this._setColorSpace('Pattern', stroke);\n\n      color.apply(op);\n    } else {\n      var space = color.length === 4 ? 'DeviceCMYK' : 'DeviceRGB';\n\n      this._setColorSpace(space, stroke);\n\n      color = color.join(' ');\n      this.addContent(\"\".concat(color, \" \").concat(op));\n    }\n\n    return true;\n  },\n  _setColorSpace: function _setColorSpace(space, stroke) {\n    var op = stroke ? 'CS' : 'cs';\n    return this.addContent(\"/\".concat(space, \" \").concat(op));\n  },\n  fillColor: function fillColor(color, opacity) {\n    var set = this._setColor(color, false);\n\n    if (set) {\n      this.fillOpacity(opacity);\n    } // save this for text wrapper, which needs to reset\n    // the fill color on new pages\n\n\n    this._fillColor = [color, opacity];\n    return this;\n  },\n  strokeColor: function strokeColor(color, opacity) {\n    var set = this._setColor(color, true);\n\n    if (set) {\n      this.strokeOpacity(opacity);\n    }\n\n    return this;\n  },\n  opacity: function opacity(_opacity) {\n    this._doOpacity(_opacity, _opacity);\n\n    return this;\n  },\n  fillOpacity: function fillOpacity(opacity) {\n    this._doOpacity(opacity, null);\n\n    return this;\n  },\n  strokeOpacity: function strokeOpacity(opacity) {\n    this._doOpacity(null, opacity);\n\n    return this;\n  },\n  _doOpacity: function _doOpacity(fillOpacity, strokeOpacity) {\n    var dictionary, name;\n\n    if (fillOpacity == null && strokeOpacity == null) {\n      return;\n    }\n\n    if (fillOpacity != null) {\n      fillOpacity = Math.max(0, Math.min(1, fillOpacity));\n    }\n\n    if (strokeOpacity != null) {\n      strokeOpacity = Math.max(0, Math.min(1, strokeOpacity));\n    }\n\n    var key = \"\".concat(fillOpacity, \"_\").concat(strokeOpacity);\n\n    if (this._opacityRegistry[key]) {\n      var _this$_opacityRegistr = _slicedToArray(this._opacityRegistry[key], 2);\n\n      dictionary = _this$_opacityRegistr[0];\n      name = _this$_opacityRegistr[1];\n    } else {\n      dictionary = {\n        Type: 'ExtGState'\n      };\n\n      if (fillOpacity != null) {\n        dictionary.ca = fillOpacity;\n      }\n\n      if (strokeOpacity != null) {\n        dictionary.CA = strokeOpacity;\n      }\n\n      dictionary = this.ref(dictionary);\n      dictionary.end();\n      var id = ++this._opacityCount;\n      name = \"Gs\".concat(id);\n      this._opacityRegistry[key] = [dictionary, name];\n    }\n\n    this.page.ext_gstates[name] = dictionary;\n    return this.addContent(\"/\".concat(name, \" gs\"));\n  },\n  linearGradient: function linearGradient(x1, y1, x2, y2) {\n    return new PDFLinearGradient$1(this, x1, y1, x2, y2);\n  },\n  radialGradient: function radialGradient(x1, y1, r1, x2, y2, r2) {\n    return new PDFRadialGradient$1(this, x1, y1, r1, x2, y2, r2);\n  }\n};\nvar namedColors = {\n  aliceblue: [240, 248, 255],\n  antiquewhite: [250, 235, 215],\n  aqua: [0, 255, 255],\n  aquamarine: [127, 255, 212],\n  azure: [240, 255, 255],\n  beige: [245, 245, 220],\n  bisque: [255, 228, 196],\n  black: [0, 0, 0],\n  blanchedalmond: [255, 235, 205],\n  blue: [0, 0, 255],\n  blueviolet: [138, 43, 226],\n  brown: [165, 42, 42],\n  burlywood: [222, 184, 135],\n  cadetblue: [95, 158, 160],\n  chartreuse: [127, 255, 0],\n  chocolate: [210, 105, 30],\n  coral: [255, 127, 80],\n  cornflowerblue: [100, 149, 237],\n  cornsilk: [255, 248, 220],\n  crimson: [220, 20, 60],\n  cyan: [0, 255, 255],\n  darkblue: [0, 0, 139],\n  darkcyan: [0, 139, 139],\n  darkgoldenrod: [184, 134, 11],\n  darkgray: [169, 169, 169],\n  darkgreen: [0, 100, 0],\n  darkgrey: [169, 169, 169],\n  darkkhaki: [189, 183, 107],\n  darkmagenta: [139, 0, 139],\n  darkolivegreen: [85, 107, 47],\n  darkorange: [255, 140, 0],\n  darkorchid: [153, 50, 204],\n  darkred: [139, 0, 0],\n  darksalmon: [233, 150, 122],\n  darkseagreen: [143, 188, 143],\n  darkslateblue: [72, 61, 139],\n  darkslategray: [47, 79, 79],\n  darkslategrey: [47, 79, 79],\n  darkturquoise: [0, 206, 209],\n  darkviolet: [148, 0, 211],\n  deeppink: [255, 20, 147],\n  deepskyblue: [0, 191, 255],\n  dimgray: [105, 105, 105],\n  dimgrey: [105, 105, 105],\n  dodgerblue: [30, 144, 255],\n  firebrick: [178, 34, 34],\n  floralwhite: [255, 250, 240],\n  forestgreen: [34, 139, 34],\n  fuchsia: [255, 0, 255],\n  gainsboro: [220, 220, 220],\n  ghostwhite: [248, 248, 255],\n  gold: [255, 215, 0],\n  goldenrod: [218, 165, 32],\n  gray: [128, 128, 128],\n  grey: [128, 128, 128],\n  green: [0, 128, 0],\n  greenyellow: [173, 255, 47],\n  honeydew: [240, 255, 240],\n  hotpink: [255, 105, 180],\n  indianred: [205, 92, 92],\n  indigo: [75, 0, 130],\n  ivory: [255, 255, 240],\n  khaki: [240, 230, 140],\n  lavender: [230, 230, 250],\n  lavenderblush: [255, 240, 245],\n  lawngreen: [124, 252, 0],\n  lemonchiffon: [255, 250, 205],\n  lightblue: [173, 216, 230],\n  lightcoral: [240, 128, 128],\n  lightcyan: [224, 255, 255],\n  lightgoldenrodyellow: [250, 250, 210],\n  lightgray: [211, 211, 211],\n  lightgreen: [144, 238, 144],\n  lightgrey: [211, 211, 211],\n  lightpink: [255, 182, 193],\n  lightsalmon: [255, 160, 122],\n  lightseagreen: [32, 178, 170],\n  lightskyblue: [135, 206, 250],\n  lightslategray: [119, 136, 153],\n  lightslategrey: [119, 136, 153],\n  lightsteelblue: [176, 196, 222],\n  lightyellow: [255, 255, 224],\n  lime: [0, 255, 0],\n  limegreen: [50, 205, 50],\n  linen: [250, 240, 230],\n  magenta: [255, 0, 255],\n  maroon: [128, 0, 0],\n  mediumaquamarine: [102, 205, 170],\n  mediumblue: [0, 0, 205],\n  mediumorchid: [186, 85, 211],\n  mediumpurple: [147, 112, 219],\n  mediumseagreen: [60, 179, 113],\n  mediumslateblue: [123, 104, 238],\n  mediumspringgreen: [0, 250, 154],\n  mediumturquoise: [72, 209, 204],\n  mediumvioletred: [199, 21, 133],\n  midnightblue: [25, 25, 112],\n  mintcream: [245, 255, 250],\n  mistyrose: [255, 228, 225],\n  moccasin: [255, 228, 181],\n  navajowhite: [255, 222, 173],\n  navy: [0, 0, 128],\n  oldlace: [253, 245, 230],\n  olive: [128, 128, 0],\n  olivedrab: [107, 142, 35],\n  orange: [255, 165, 0],\n  orangered: [255, 69, 0],\n  orchid: [218, 112, 214],\n  palegoldenrod: [238, 232, 170],\n  palegreen: [152, 251, 152],\n  paleturquoise: [175, 238, 238],\n  palevioletred: [219, 112, 147],\n  papayawhip: [255, 239, 213],\n  peachpuff: [255, 218, 185],\n  peru: [205, 133, 63],\n  pink: [255, 192, 203],\n  plum: [221, 160, 221],\n  powderblue: [176, 224, 230],\n  purple: [128, 0, 128],\n  red: [255, 0, 0],\n  rosybrown: [188, 143, 143],\n  royalblue: [65, 105, 225],\n  saddlebrown: [139, 69, 19],\n  salmon: [250, 128, 114],\n  sandybrown: [244, 164, 96],\n  seagreen: [46, 139, 87],\n  seashell: [255, 245, 238],\n  sienna: [160, 82, 45],\n  silver: [192, 192, 192],\n  skyblue: [135, 206, 235],\n  slateblue: [106, 90, 205],\n  slategray: [112, 128, 144],\n  slategrey: [112, 128, 144],\n  snow: [255, 250, 250],\n  springgreen: [0, 255, 127],\n  steelblue: [70, 130, 180],\n  tan: [210, 180, 140],\n  teal: [0, 128, 128],\n  thistle: [216, 191, 216],\n  tomato: [255, 99, 71],\n  turquoise: [64, 224, 208],\n  violet: [238, 130, 238],\n  wheat: [245, 222, 179],\n  white: [255, 255, 255],\n  whitesmoke: [245, 245, 245],\n  yellow: [255, 255, 0],\n  yellowgreen: [154, 205, 50]\n};\nvar cx, cy, px, py, sx, sy;\ncx = cy = px = py = sx = sy = 0;\nvar parameters = {\n  A: 7,\n  a: 7,\n  C: 6,\n  c: 6,\n  H: 1,\n  h: 1,\n  L: 2,\n  l: 2,\n  M: 2,\n  m: 2,\n  Q: 4,\n  q: 4,\n  S: 4,\n  s: 4,\n  T: 2,\n  t: 2,\n  V: 1,\n  v: 1,\n  Z: 0,\n  z: 0\n};\n\nvar parse = function parse(path) {\n  var cmd;\n  var ret = [];\n  var args = [];\n  var curArg = '';\n  var foundDecimal = false;\n  var params = 0;\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    for (var _iterator = path[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      var c = _step.value;\n\n      if (parameters[c] != null) {\n        params = parameters[c];\n\n        if (cmd) {\n          // save existing command\n          if (curArg.length > 0) {\n            args[args.length] = +curArg;\n          }\n\n          ret[ret.length] = {\n            cmd: cmd,\n            args: args\n          };\n          args = [];\n          curArg = '';\n          foundDecimal = false;\n        }\n\n        cmd = c;\n      } else if ([' ', ','].includes(c) || c === '-' && curArg.length > 0 && curArg[curArg.length - 1] !== 'e' || c === '.' && foundDecimal) {\n        if (curArg.length === 0) {\n          continue;\n        }\n\n        if (args.length === params) {\n          // handle reused commands\n          ret[ret.length] = {\n            cmd: cmd,\n            args: args\n          };\n          args = [+curArg]; // handle assumed commands\n\n          if (cmd === 'M') {\n            cmd = 'L';\n          }\n\n          if (cmd === 'm') {\n            cmd = 'l';\n          }\n        } else {\n          args[args.length] = +curArg;\n        }\n\n        foundDecimal = c === '.'; // fix for negative numbers or repeated decimals with no delimeter between commands\n\n        curArg = ['-', '.'].includes(c) ? c : '';\n      } else {\n        curArg += c;\n\n        if (c === '.') {\n          foundDecimal = true;\n        }\n      }\n    } // add the last command\n\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion && _iterator.return != null) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n\n  if (curArg.length > 0) {\n    if (args.length === params) {\n      // handle reused commands\n      ret[ret.length] = {\n        cmd: cmd,\n        args: args\n      };\n      args = [+curArg]; // handle assumed commands\n\n      if (cmd === 'M') {\n        cmd = 'L';\n      }\n\n      if (cmd === 'm') {\n        cmd = 'l';\n      }\n    } else {\n      args[args.length] = +curArg;\n    }\n  }\n\n  ret[ret.length] = {\n    cmd: cmd,\n    args: args\n  };\n  return ret;\n};\n\nvar _apply = function apply(commands, doc) {\n  // current point, control point, and subpath starting point\n  cx = cy = px = py = sx = sy = 0; // run the commands\n\n  for (var i = 0; i < commands.length; i++) {\n    var c = commands[i];\n\n    if (typeof runners[c.cmd] === 'function') {\n      runners[c.cmd](doc, c.args);\n    }\n  }\n};\n\nvar runners = {\n  M: function M(doc, a) {\n    cx = a[0];\n    cy = a[1];\n    px = py = null;\n    sx = cx;\n    sy = cy;\n    return doc.moveTo(cx, cy);\n  },\n  m: function m(doc, a) {\n    cx += a[0];\n    cy += a[1];\n    px = py = null;\n    sx = cx;\n    sy = cy;\n    return doc.moveTo(cx, cy);\n  },\n  C: function C(doc, a) {\n    cx = a[4];\n    cy = a[5];\n    px = a[2];\n    py = a[3];\n    return doc.bezierCurveTo.apply(doc, _toConsumableArray(a));\n  },\n  c: function c(doc, a) {\n    doc.bezierCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy);\n    px = cx + a[2];\n    py = cy + a[3];\n    cx += a[4];\n    return cy += a[5];\n  },\n  S: function S(doc, a) {\n    if (px === null) {\n      px = cx;\n      py = cy;\n    }\n\n    doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]);\n    px = a[0];\n    py = a[1];\n    cx = a[2];\n    return cy = a[3];\n  },\n  s: function s(doc, a) {\n    if (px === null) {\n      px = cx;\n      py = cy;\n    }\n\n    doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3]);\n    px = cx + a[0];\n    py = cy + a[1];\n    cx += a[2];\n    return cy += a[3];\n  },\n  Q: function Q(doc, a) {\n    px = a[0];\n    py = a[1];\n    cx = a[2];\n    cy = a[3];\n    return doc.quadraticCurveTo(a[0], a[1], cx, cy);\n  },\n  q: function q(doc, a) {\n    doc.quadraticCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy);\n    px = cx + a[0];\n    py = cy + a[1];\n    cx += a[2];\n    return cy += a[3];\n  },\n  T: function T(doc, a) {\n    if (px === null) {\n      px = cx;\n      py = cy;\n    } else {\n      px = cx - (px - cx);\n      py = cy - (py - cy);\n    }\n\n    doc.quadraticCurveTo(px, py, a[0], a[1]);\n    px = cx - (px - cx);\n    py = cy - (py - cy);\n    cx = a[0];\n    return cy = a[1];\n  },\n  t: function t(doc, a) {\n    if (px === null) {\n      px = cx;\n      py = cy;\n    } else {\n      px = cx - (px - cx);\n      py = cy - (py - cy);\n    }\n\n    doc.quadraticCurveTo(px, py, cx + a[0], cy + a[1]);\n    cx += a[0];\n    return cy += a[1];\n  },\n  A: function A(doc, a) {\n    solveArc(doc, cx, cy, a);\n    cx = a[5];\n    return cy = a[6];\n  },\n  a: function a(doc, _a) {\n    _a[5] += cx;\n    _a[6] += cy;\n    solveArc(doc, cx, cy, _a);\n    cx = _a[5];\n    return cy = _a[6];\n  },\n  L: function L(doc, a) {\n    cx = a[0];\n    cy = a[1];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  l: function l(doc, a) {\n    cx += a[0];\n    cy += a[1];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  H: function H(doc, a) {\n    cx = a[0];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  h: function h(doc, a) {\n    cx += a[0];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  V: function V(doc, a) {\n    cy = a[0];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  v: function v(doc, a) {\n    cy += a[0];\n    px = py = null;\n    return doc.lineTo(cx, cy);\n  },\n  Z: function Z(doc) {\n    doc.closePath();\n    cx = sx;\n    return cy = sy;\n  },\n  z: function z(doc) {\n    doc.closePath();\n    cx = sx;\n    return cy = sy;\n  }\n};\n\nvar solveArc = function solveArc(doc, x, y, coords) {\n  var _coords = _slicedToArray(coords, 7),\n      rx = _coords[0],\n      ry = _coords[1],\n      rot = _coords[2],\n      large = _coords[3],\n      sweep = _coords[4],\n      ex = _coords[5],\n      ey = _coords[6];\n\n  var segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n  var _iteratorNormalCompletion2 = true;\n  var _didIteratorError2 = false;\n  var _iteratorError2 = undefined;\n\n  try {\n    for (var _iterator2 = segs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n      var seg = _step2.value;\n      var bez = segmentToBezier.apply(void 0, _toConsumableArray(seg));\n      doc.bezierCurveTo.apply(doc, _toConsumableArray(bez));\n    }\n  } catch (err) {\n    _didIteratorError2 = true;\n    _iteratorError2 = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n        _iterator2.return();\n      }\n    } finally {\n      if (_didIteratorError2) {\n        throw _iteratorError2;\n      }\n    }\n  }\n}; // from Inkscape svgtopdf, thanks!\n\n\nvar arcToSegments = function arcToSegments(x, y, rx, ry, large, sweep, rotateX, ox, oy) {\n  var th = rotateX * (Math.PI / 180);\n  var sin_th = Math.sin(th);\n  var cos_th = Math.cos(th);\n  rx = Math.abs(rx);\n  ry = Math.abs(ry);\n  px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5;\n  py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5;\n  var pl = px * px / (rx * rx) + py * py / (ry * ry);\n\n  if (pl > 1) {\n    pl = Math.sqrt(pl);\n    rx *= pl;\n    ry *= pl;\n  }\n\n  var a00 = cos_th / rx;\n  var a01 = sin_th / rx;\n  var a10 = -sin_th / ry;\n  var a11 = cos_th / ry;\n  var x0 = a00 * ox + a01 * oy;\n  var y0 = a10 * ox + a11 * oy;\n  var x1 = a00 * x + a01 * y;\n  var y1 = a10 * x + a11 * y;\n  var d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n  var sfactor_sq = 1 / d - 0.25;\n\n  if (sfactor_sq < 0) {\n    sfactor_sq = 0;\n  }\n\n  var sfactor = Math.sqrt(sfactor_sq);\n\n  if (sweep === large) {\n    sfactor = -sfactor;\n  }\n\n  var xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n  var yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n  var th0 = Math.atan2(y0 - yc, x0 - xc);\n  var th1 = Math.atan2(y1 - yc, x1 - xc);\n  var th_arc = th1 - th0;\n\n  if (th_arc < 0 && sweep === 1) {\n    th_arc += 2 * Math.PI;\n  } else if (th_arc > 0 && sweep === 0) {\n    th_arc -= 2 * Math.PI;\n  }\n\n  var segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 0.001)));\n  var result = [];\n\n  for (var i = 0; i < segments; i++) {\n    var th2 = th0 + i * th_arc / segments;\n    var th3 = th0 + (i + 1) * th_arc / segments;\n    result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];\n  }\n\n  return result;\n};\n\nvar segmentToBezier = function segmentToBezier(cx, cy, th0, th1, rx, ry, sin_th, cos_th) {\n  var a00 = cos_th * rx;\n  var a01 = -sin_th * ry;\n  var a10 = sin_th * rx;\n  var a11 = cos_th * ry;\n  var th_half = 0.5 * (th1 - th0);\n  var t = 8 / 3 * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5) / Math.sin(th_half);\n  var x1 = cx + Math.cos(th0) - t * Math.sin(th0);\n  var y1 = cy + Math.sin(th0) + t * Math.cos(th0);\n  var x3 = cx + Math.cos(th1);\n  var y3 = cy + Math.sin(th1);\n  var x2 = x3 + t * Math.sin(th1);\n  var y2 = y3 - t * Math.cos(th1);\n  return [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];\n};\n\nvar SVGPath = /*#__PURE__*/function () {\n  function SVGPath() {\n    _classCallCheck(this, SVGPath);\n  }\n\n  _createClass(SVGPath, null, [{\n    key: \"apply\",\n    value: function apply(doc, path) {\n      var commands = parse(path);\n\n      _apply(commands, doc);\n    }\n  }]);\n\n  return SVGPath;\n}();\n\nvar number$1 = PDFObject.number; // This constant is used to approximate a symmetrical arc using a cubic\n// Bezier curve.\n\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nvar VectorMixin = {\n  initVector: function initVector() {\n    this._ctm = [1, 0, 0, 1, 0, 0]; // current transformation matrix\n\n    return this._ctmStack = [];\n  },\n  save: function save() {\n    this._ctmStack.push(this._ctm.slice()); // TODO: save/restore colorspace and styles so not setting it unnessesarily all the time?\n\n\n    return this.addContent('q');\n  },\n  restore: function restore() {\n    this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0];\n    return this.addContent('Q');\n  },\n  closePath: function closePath() {\n    return this.addContent('h');\n  },\n  lineWidth: function lineWidth(w) {\n    return this.addContent(\"\".concat(number$1(w), \" w\"));\n  },\n  _CAP_STYLES: {\n    BUTT: 0,\n    ROUND: 1,\n    SQUARE: 2\n  },\n  lineCap: function lineCap(c) {\n    if (typeof c === 'string') {\n      c = this._CAP_STYLES[c.toUpperCase()];\n    }\n\n    return this.addContent(\"\".concat(c, \" J\"));\n  },\n  _JOIN_STYLES: {\n    MITER: 0,\n    ROUND: 1,\n    BEVEL: 2\n  },\n  lineJoin: function lineJoin(j) {\n    if (typeof j === 'string') {\n      j = this._JOIN_STYLES[j.toUpperCase()];\n    }\n\n    return this.addContent(\"\".concat(j, \" j\"));\n  },\n  miterLimit: function miterLimit(m) {\n    return this.addContent(\"\".concat(number$1(m), \" M\"));\n  },\n  dash: function dash(length) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var originalLength = length;\n\n    if (!Array.isArray(length)) {\n      length = [length, options.space || length];\n    }\n\n    var valid = length.every(function (x) {\n      return Number.isFinite(x) && x > 0;\n    });\n\n    if (!valid) {\n      throw new Error(\"dash(\".concat(JSON.stringify(originalLength), \", \").concat(JSON.stringify(options), \") invalid, lengths must be numeric and greater than zero\"));\n    }\n\n    length = length.map(number$1).join(' ');\n    return this.addContent(\"[\".concat(length, \"] \").concat(number$1(options.phase || 0), \" d\"));\n  },\n  undash: function undash() {\n    return this.addContent('[] 0 d');\n  },\n  moveTo: function moveTo(x, y) {\n    return this.addContent(\"\".concat(number$1(x), \" \").concat(number$1(y), \" m\"));\n  },\n  lineTo: function lineTo(x, y) {\n    return this.addContent(\"\".concat(number$1(x), \" \").concat(number$1(y), \" l\"));\n  },\n  bezierCurveTo: function bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n    return this.addContent(\"\".concat(number$1(cp1x), \" \").concat(number$1(cp1y), \" \").concat(number$1(cp2x), \" \").concat(number$1(cp2y), \" \").concat(number$1(x), \" \").concat(number$1(y), \" c\"));\n  },\n  quadraticCurveTo: function quadraticCurveTo(cpx, cpy, x, y) {\n    return this.addContent(\"\".concat(number$1(cpx), \" \").concat(number$1(cpy), \" \").concat(number$1(x), \" \").concat(number$1(y), \" v\"));\n  },\n  rect: function rect(x, y, w, h) {\n    return this.addContent(\"\".concat(number$1(x), \" \").concat(number$1(y), \" \").concat(number$1(w), \" \").concat(number$1(h), \" re\"));\n  },\n  roundedRect: function roundedRect(x, y, w, h, r) {\n    if (r == null) {\n      r = 0;\n    }\n\n    r = Math.min(r, 0.5 * w, 0.5 * h); // amount to inset control points from corners (see `ellipse`)\n\n    var c = r * (1.0 - KAPPA);\n    this.moveTo(x + r, y);\n    this.lineTo(x + w - r, y);\n    this.bezierCurveTo(x + w - c, y, x + w, y + c, x + w, y + r);\n    this.lineTo(x + w, y + h - r);\n    this.bezierCurveTo(x + w, y + h - c, x + w - c, y + h, x + w - r, y + h);\n    this.lineTo(x + r, y + h);\n    this.bezierCurveTo(x + c, y + h, x, y + h - c, x, y + h - r);\n    this.lineTo(x, y + r);\n    this.bezierCurveTo(x, y + c, x + c, y, x + r, y);\n    return this.closePath();\n  },\n  ellipse: function ellipse(x, y, r1, r2) {\n    // based on http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084\n    if (r2 == null) {\n      r2 = r1;\n    }\n\n    x -= r1;\n    y -= r2;\n    var ox = r1 * KAPPA;\n    var oy = r2 * KAPPA;\n    var xe = x + r1 * 2;\n    var ye = y + r2 * 2;\n    var xm = x + r1;\n    var ym = y + r2;\n    this.moveTo(x, ym);\n    this.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n    this.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n    this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n    this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n    return this.closePath();\n  },\n  circle: function circle(x, y, radius) {\n    return this.ellipse(x, y, radius);\n  },\n  arc: function arc(x, y, radius, startAngle, endAngle, anticlockwise) {\n    if (anticlockwise == null) {\n      anticlockwise = false;\n    }\n\n    var TWO_PI = 2.0 * Math.PI;\n    var HALF_PI = 0.5 * Math.PI;\n    var deltaAng = endAngle - startAngle;\n\n    if (Math.abs(deltaAng) > TWO_PI) {\n      // draw only full circle if more than that is specified\n      deltaAng = TWO_PI;\n    } else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) {\n      // necessary to flip direction of rendering\n      var dir = anticlockwise ? -1 : 1;\n      deltaAng = dir * TWO_PI + deltaAng;\n    }\n\n    var numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI);\n    var segAng = deltaAng / numSegs;\n    var handleLen = segAng / HALF_PI * KAPPA * radius;\n    var curAng = startAngle; // component distances between anchor point and control point\n\n    var deltaCx = -Math.sin(curAng) * handleLen;\n    var deltaCy = Math.cos(curAng) * handleLen; // anchor point\n\n    var ax = x + Math.cos(curAng) * radius;\n    var ay = y + Math.sin(curAng) * radius; // calculate and render segments\n\n    this.moveTo(ax, ay);\n\n    for (var segIdx = 0; segIdx < numSegs; segIdx++) {\n      // starting control point\n      var cp1x = ax + deltaCx;\n      var cp1y = ay + deltaCy; // step angle\n\n      curAng += segAng; // next anchor point\n\n      ax = x + Math.cos(curAng) * radius;\n      ay = y + Math.sin(curAng) * radius; // next control point delta\n\n      deltaCx = -Math.sin(curAng) * handleLen;\n      deltaCy = Math.cos(curAng) * handleLen; // ending control point\n\n      var cp2x = ax - deltaCx;\n      var cp2y = ay - deltaCy; // render segment\n\n      this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay);\n    }\n\n    return this;\n  },\n  polygon: function polygon() {\n    for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\n      points[_key] = arguments[_key];\n    }\n\n    this.moveTo.apply(this, _toConsumableArray(points.shift() || []));\n\n    for (var _i = 0, _points = points; _i < _points.length; _i++) {\n      var point = _points[_i];\n      this.lineTo.apply(this, _toConsumableArray(point || []));\n    }\n\n    return this.closePath();\n  },\n  path: function path(_path) {\n    SVGPath.apply(this, _path);\n    return this;\n  },\n  _windingRule: function _windingRule(rule) {\n    if (/even-?odd/.test(rule)) {\n      return '*';\n    }\n\n    return '';\n  },\n  fill: function fill(color, rule) {\n    if (/(even-?odd)|(non-?zero)/.test(color)) {\n      rule = color;\n      color = null;\n    }\n\n    if (color) {\n      this.fillColor(color);\n    }\n\n    return this.addContent(\"f\".concat(this._windingRule(rule)));\n  },\n  stroke: function stroke(color) {\n    if (color) {\n      this.strokeColor(color);\n    }\n\n    return this.addContent('S');\n  },\n  fillAndStroke: function fillAndStroke(fillColor, strokeColor, rule) {\n    if (strokeColor == null) {\n      strokeColor = fillColor;\n    }\n\n    var isFillRule = /(even-?odd)|(non-?zero)/;\n\n    if (isFillRule.test(fillColor)) {\n      rule = fillColor;\n      fillColor = null;\n    }\n\n    if (isFillRule.test(strokeColor)) {\n      rule = strokeColor;\n      strokeColor = fillColor;\n    }\n\n    if (fillColor) {\n      this.fillColor(fillColor);\n      this.strokeColor(strokeColor);\n    }\n\n    return this.addContent(\"B\".concat(this._windingRule(rule)));\n  },\n  clip: function clip(rule) {\n    return this.addContent(\"W\".concat(this._windingRule(rule), \" n\"));\n  },\n  transform: function transform(m11, m12, m21, m22, dx, dy) {\n    // keep track of the current transformation matrix\n    var m = this._ctm;\n\n    var _m = _slicedToArray(m, 6),\n        m0 = _m[0],\n        m1 = _m[1],\n        m2 = _m[2],\n        m3 = _m[3],\n        m4 = _m[4],\n        m5 = _m[5];\n\n    m[0] = m0 * m11 + m2 * m12;\n    m[1] = m1 * m11 + m3 * m12;\n    m[2] = m0 * m21 + m2 * m22;\n    m[3] = m1 * m21 + m3 * m22;\n    m[4] = m0 * dx + m2 * dy + m4;\n    m[5] = m1 * dx + m3 * dy + m5;\n    var values = [m11, m12, m21, m22, dx, dy].map(function (v) {\n      return number$1(v);\n    }).join(' ');\n    return this.addContent(\"\".concat(values, \" cm\"));\n  },\n  translate: function translate(x, y) {\n    return this.transform(1, 0, 0, 1, x, y);\n  },\n  rotate: function rotate(angle) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var y;\n    var rad = angle * Math.PI / 180;\n    var cos = Math.cos(rad);\n    var sin = Math.sin(rad);\n    var x = y = 0;\n\n    if (options.origin != null) {\n      var _options$origin = _slicedToArray(options.origin, 2);\n\n      x = _options$origin[0];\n      y = _options$origin[1];\n      var x1 = x * cos - y * sin;\n      var y1 = x * sin + y * cos;\n      x -= x1;\n      y -= y1;\n    }\n\n    return this.transform(cos, sin, -sin, cos, x, y);\n  },\n  scale: function scale(xFactor, yFactor) {\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var y;\n\n    if (yFactor == null) {\n      yFactor = xFactor;\n    }\n\n    if (typeof yFactor === 'object') {\n      options = yFactor;\n      yFactor = xFactor;\n    }\n\n    var x = y = 0;\n\n    if (options.origin != null) {\n      var _options$origin2 = _slicedToArray(options.origin, 2);\n\n      x = _options$origin2[0];\n      y = _options$origin2[1];\n      x -= xFactor * x;\n      y -= yFactor * y;\n    }\n\n    return this.transform(xFactor, 0, 0, yFactor, x, y);\n  }\n};\nvar WIN_ANSI_MAP = {\n  402: 131,\n  8211: 150,\n  8212: 151,\n  8216: 145,\n  8217: 146,\n  8218: 130,\n  8220: 147,\n  8221: 148,\n  8222: 132,\n  8224: 134,\n  8225: 135,\n  8226: 149,\n  8230: 133,\n  8364: 128,\n  8240: 137,\n  8249: 139,\n  8250: 155,\n  710: 136,\n  8482: 153,\n  338: 140,\n  339: 156,\n  732: 152,\n  352: 138,\n  353: 154,\n  376: 159,\n  381: 142,\n  382: 158\n};\nvar characters = \".notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n.notdef       .notdef        .notdef        .notdef\\n  \\nspace         exclam         quotedbl       numbersign\\ndollar        percent        ampersand      quotesingle\\nparenleft     parenright     asterisk       plus\\ncomma         hyphen         period         slash\\nzero          one            two            three\\nfour          five           six            seven\\neight         nine           colon          semicolon\\nless          equal          greater        question\\n  \\nat            A              B              C\\nD             E              F              G\\nH             I              J              K\\nL             M              N              O\\nP             Q              R              S\\nT             U              V              W\\nX             Y              Z              bracketleft\\nbackslash     bracketright   asciicircum    underscore\\n  \\ngrave         a              b              c\\nd             e              f              g\\nh             i              j              k\\nl             m              n              o\\np             q              r              s\\nt             u              v              w\\nx             y              z              braceleft\\nbar           braceright     asciitilde     .notdef\\n  \\nEuro          .notdef        quotesinglbase florin\\nquotedblbase  ellipsis       dagger         daggerdbl\\ncircumflex    perthousand    Scaron         guilsinglleft\\nOE            .notdef        Zcaron         .notdef\\n.notdef       quoteleft      quoteright     quotedblleft\\nquotedblright bullet         endash         emdash\\ntilde         trademark      scaron         guilsinglright\\noe            .notdef        zcaron         ydieresis\\n  \\nspace         exclamdown     cent           sterling\\ncurrency      yen            brokenbar      section\\ndieresis      copyright      ordfeminine    guillemotleft\\nlogicalnot    hyphen         registered     macron\\ndegree        plusminus      twosuperior    threesuperior\\nacute         mu             paragraph      periodcentered\\ncedilla       onesuperior    ordmasculine   guillemotright\\nonequarter    onehalf        threequarters  questiondown\\n  \\nAgrave        Aacute         Acircumflex    Atilde\\nAdieresis     Aring          AE             Ccedilla\\nEgrave        Eacute         Ecircumflex    Edieresis\\nIgrave        Iacute         Icircumflex    Idieresis\\nEth           Ntilde         Ograve         Oacute\\nOcircumflex   Otilde         Odieresis      multiply\\nOslash        Ugrave         Uacute         Ucircumflex\\nUdieresis     Yacute         Thorn          germandbls\\n  \\nagrave        aacute         acircumflex    atilde\\nadieresis     aring          ae             ccedilla\\negrave        eacute         ecircumflex    edieresis\\nigrave        iacute         icircumflex    idieresis\\neth           ntilde         ograve         oacute\\nocircumflex   otilde         odieresis      divide\\noslash        ugrave         uacute         ucircumflex\\nudieresis     yacute         thorn          ydieresis\".split(/\\s+/);\n\nvar AFMFont = /*#__PURE__*/function () {\n  _createClass(AFMFont, null, [{\n    key: \"open\",\n    value: function open(filename) {\n      return new AFMFont(fs.readFileSync(filename, 'utf8'));\n    }\n  }]);\n\n  function AFMFont(contents) {\n    _classCallCheck(this, AFMFont);\n\n    this.contents = contents;\n    this.attributes = {};\n    this.glyphWidths = {};\n    this.boundingBoxes = {};\n    this.kernPairs = {};\n    this.parse(); // todo: remove charWidths since appears to not be used\n\n    this.charWidths = new Array(256);\n\n    for (var char = 0; char <= 255; char++) {\n      this.charWidths[char] = this.glyphWidths[characters[char]];\n    }\n\n    this.bbox = this.attributes['FontBBox'].split(/\\s+/).map(function (e) {\n      return +e;\n    });\n    this.ascender = +(this.attributes['Ascender'] || 0);\n    this.descender = +(this.attributes['Descender'] || 0);\n    this.xHeight = +(this.attributes['XHeight'] || 0);\n    this.capHeight = +(this.attributes['CapHeight'] || 0);\n    this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender);\n  }\n\n  _createClass(AFMFont, [{\n    key: \"parse\",\n    value: function parse() {\n      var section = '';\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this.contents.split('\\n')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var line = _step.value;\n          var match;\n          var a;\n\n          if (match = line.match(/^Start(\\w+)/)) {\n            section = match[1];\n            continue;\n          } else if (match = line.match(/^End(\\w+)/)) {\n            section = '';\n            continue;\n          }\n\n          switch (section) {\n            case 'FontMetrics':\n              match = line.match(/(^\\w+)\\s+(.*)/);\n              var key = match[1];\n              var value = match[2];\n\n              if (a = this.attributes[key]) {\n                if (!Array.isArray(a)) {\n                  a = this.attributes[key] = [a];\n                }\n\n                a.push(value);\n              } else {\n                this.attributes[key] = value;\n              }\n\n              break;\n\n            case 'CharMetrics':\n              if (!/^CH?\\s/.test(line)) {\n                continue;\n              }\n\n              var name = line.match(/\\bN\\s+(\\.?\\w+)\\s*;/)[1];\n              this.glyphWidths[name] = +line.match(/\\bWX\\s+(\\d+)\\s*;/)[1];\n              break;\n\n            case 'KernPairs':\n              match = line.match(/^KPX\\s+(\\.?\\w+)\\s+(\\.?\\w+)\\s+(-?\\d+)/);\n\n              if (match) {\n                this.kernPairs[match[1] + '\\0' + match[2]] = parseInt(match[3]);\n              }\n\n              break;\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"encodeText\",\n    value: function encodeText(text) {\n      var res = [];\n\n      for (var i = 0, len = text.length; i < len; i++) {\n        var char = text.charCodeAt(i);\n        char = WIN_ANSI_MAP[char] || char;\n        res.push(char.toString(16));\n      }\n\n      return res;\n    }\n  }, {\n    key: \"glyphsForString\",\n    value: function glyphsForString(string) {\n      var glyphs = [];\n\n      for (var i = 0, len = string.length; i < len; i++) {\n        var charCode = string.charCodeAt(i);\n        glyphs.push(this.characterToGlyph(charCode));\n      }\n\n      return glyphs;\n    }\n  }, {\n    key: \"characterToGlyph\",\n    value: function characterToGlyph(character) {\n      return characters[WIN_ANSI_MAP[character] || character] || '.notdef';\n    }\n  }, {\n    key: \"widthOfGlyph\",\n    value: function widthOfGlyph(glyph) {\n      return this.glyphWidths[glyph] || 0;\n    }\n  }, {\n    key: \"getKernPair\",\n    value: function getKernPair(left, right) {\n      return this.kernPairs[left + '\\0' + right] || 0;\n    }\n  }, {\n    key: \"advancesForGlyphs\",\n    value: function advancesForGlyphs(glyphs) {\n      var advances = [];\n\n      for (var index = 0; index < glyphs.length; index++) {\n        var left = glyphs[index];\n        var right = glyphs[index + 1];\n        advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right));\n      }\n\n      return advances;\n    }\n  }]);\n\n  return AFMFont;\n}();\n\nvar PDFFont = /*#__PURE__*/function () {\n  function PDFFont() {\n    _classCallCheck(this, PDFFont);\n  }\n\n  _createClass(PDFFont, [{\n    key: \"encode\",\n    value: function encode() {\n      throw new Error('Must be implemented by subclasses');\n    }\n  }, {\n    key: \"widthOfString\",\n    value: function widthOfString() {\n      throw new Error('Must be implemented by subclasses');\n    }\n  }, {\n    key: \"ref\",\n    value: function ref() {\n      return this.dictionary != null ? this.dictionary : this.dictionary = this.document.ref();\n    }\n  }, {\n    key: \"finalize\",\n    value: function finalize() {\n      if (this.embedded || this.dictionary == null) {\n        return;\n      }\n\n      this.embed();\n      return this.embedded = true;\n    }\n  }, {\n    key: \"embed\",\n    value: function embed() {\n      throw new Error('Must be implemented by subclasses');\n    }\n  }, {\n    key: \"lineHeight\",\n    value: function lineHeight(size, includeGap) {\n      if (includeGap == null) {\n        includeGap = false;\n      }\n\n      var gap = includeGap ? this.lineGap : 0;\n      return (this.ascender + gap - this.descender) / 1000 * size;\n    }\n  }]);\n\n  return PDFFont;\n}();\n\nvar STANDARD_FONTS = {\n  Courier: function Courier() {\n    return fs.readFileSync(__dirname + '/data/Courier.afm', 'utf8');\n  },\n  'Courier-Bold': function CourierBold() {\n    return fs.readFileSync(__dirname + '/data/Courier-Bold.afm', 'utf8');\n  },\n  'Courier-Oblique': function CourierOblique() {\n    return fs.readFileSync(__dirname + '/data/Courier-Oblique.afm', 'utf8');\n  },\n  'Courier-BoldOblique': function CourierBoldOblique() {\n    return fs.readFileSync(__dirname + '/data/Courier-BoldOblique.afm', 'utf8');\n  },\n  Helvetica: function Helvetica() {\n    return fs.readFileSync(__dirname + '/data/Helvetica.afm', 'utf8');\n  },\n  'Helvetica-Bold': function HelveticaBold() {\n    return fs.readFileSync(__dirname + '/data/Helvetica-Bold.afm', 'utf8');\n  },\n  'Helvetica-Oblique': function HelveticaOblique() {\n    return fs.readFileSync(__dirname + '/data/Helvetica-Oblique.afm', 'utf8');\n  },\n  'Helvetica-BoldOblique': function HelveticaBoldOblique() {\n    return fs.readFileSync(__dirname + '/data/Helvetica-BoldOblique.afm', 'utf8');\n  },\n  'Times-Roman': function TimesRoman() {\n    return fs.readFileSync(__dirname + '/data/Times-Roman.afm', 'utf8');\n  },\n  'Times-Bold': function TimesBold() {\n    return fs.readFileSync(__dirname + '/data/Times-Bold.afm', 'utf8');\n  },\n  'Times-Italic': function TimesItalic() {\n    return fs.readFileSync(__dirname + '/data/Times-Italic.afm', 'utf8');\n  },\n  'Times-BoldItalic': function TimesBoldItalic() {\n    return fs.readFileSync(__dirname + '/data/Times-BoldItalic.afm', 'utf8');\n  },\n  Symbol: function Symbol() {\n    return fs.readFileSync(__dirname + '/data/Symbol.afm', 'utf8');\n  },\n  ZapfDingbats: function ZapfDingbats() {\n    return fs.readFileSync(__dirname + '/data/ZapfDingbats.afm', 'utf8');\n  }\n};\n\nvar StandardFont = /*#__PURE__*/function (_PDFFont) {\n  _inherits(StandardFont, _PDFFont);\n\n  function StandardFont(document, name, id) {\n    var _this;\n\n    _classCallCheck(this, StandardFont);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(StandardFont).call(this));\n    _this.document = document;\n    _this.name = name;\n    _this.id = id;\n    _this.font = new AFMFont(STANDARD_FONTS[_this.name]());\n    var _this$font = _this.font;\n    _this.ascender = _this$font.ascender;\n    _this.descender = _this$font.descender;\n    _this.bbox = _this$font.bbox;\n    _this.lineGap = _this$font.lineGap;\n    _this.xHeight = _this$font.xHeight;\n    _this.capHeight = _this$font.capHeight;\n    return _this;\n  }\n\n  _createClass(StandardFont, [{\n    key: \"embed\",\n    value: function embed() {\n      this.dictionary.data = {\n        Type: 'Font',\n        BaseFont: this.name,\n        Subtype: 'Type1',\n        Encoding: 'WinAnsiEncoding'\n      };\n      return this.dictionary.end();\n    }\n  }, {\n    key: \"encode\",\n    value: function encode(text) {\n      var encoded = this.font.encodeText(text);\n      var glyphs = this.font.glyphsForString(\"\".concat(text));\n      var advances = this.font.advancesForGlyphs(glyphs);\n      var positions = [];\n\n      for (var i = 0; i < glyphs.length; i++) {\n        var glyph = glyphs[i];\n        positions.push({\n          xAdvance: advances[i],\n          yAdvance: 0,\n          xOffset: 0,\n          yOffset: 0,\n          advanceWidth: this.font.widthOfGlyph(glyph)\n        });\n      }\n\n      return [encoded, positions];\n    }\n  }, {\n    key: \"widthOfString\",\n    value: function widthOfString(string, size) {\n      var glyphs = this.font.glyphsForString(\"\".concat(string));\n      var advances = this.font.advancesForGlyphs(glyphs);\n      var width = 0;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = advances[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var advance = _step.value;\n          width += advance;\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      var scale = size / 1000;\n      return width * scale;\n    }\n  }], [{\n    key: \"isStandardFont\",\n    value: function isStandardFont(name) {\n      return name in STANDARD_FONTS;\n    }\n  }]);\n\n  return StandardFont;\n}(PDFFont);\n\nvar toHex = function toHex(num) {\n  return \"0000\".concat(num.toString(16)).slice(-4);\n};\n\nvar EmbeddedFont = /*#__PURE__*/function (_PDFFont) {\n  _inherits(EmbeddedFont, _PDFFont);\n\n  function EmbeddedFont(document, font, id) {\n    var _this;\n\n    _classCallCheck(this, EmbeddedFont);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(EmbeddedFont).call(this));\n    _this.document = document;\n    _this.font = font;\n    _this.id = id;\n    _this.subset = _this.font.createSubset();\n    _this.unicode = [[0]];\n    _this.widths = [_this.font.getGlyph(0).advanceWidth];\n    _this.name = _this.font.postscriptName;\n    _this.scale = 1000 / _this.font.unitsPerEm;\n    _this.ascender = _this.font.ascent * _this.scale;\n    _this.descender = _this.font.descent * _this.scale;\n    _this.xHeight = _this.font.xHeight * _this.scale;\n    _this.capHeight = _this.font.capHeight * _this.scale;\n    _this.lineGap = _this.font.lineGap * _this.scale;\n    _this.bbox = _this.font.bbox;\n\n    if (document.options.fontLayoutCache !== false) {\n      _this.layoutCache = Object.create(null);\n    }\n\n    return _this;\n  }\n\n  _createClass(EmbeddedFont, [{\n    key: \"layoutRun\",\n    value: function layoutRun(text, features) {\n      var run = this.font.layout(text, features); // Normalize position values\n\n      for (var i = 0; i < run.positions.length; i++) {\n        var position = run.positions[i];\n\n        for (var key in position) {\n          position[key] *= this.scale;\n        }\n\n        position.advanceWidth = run.glyphs[i].advanceWidth * this.scale;\n      }\n\n      return run;\n    }\n  }, {\n    key: \"layoutCached\",\n    value: function layoutCached(text) {\n      if (!this.layoutCache) {\n        return this.layoutRun(text);\n      }\n\n      var cached;\n\n      if (cached = this.layoutCache[text]) {\n        return cached;\n      }\n\n      var run = this.layoutRun(text);\n      this.layoutCache[text] = run;\n      return run;\n    }\n  }, {\n    key: \"layout\",\n    value: function layout(text, features, onlyWidth) {\n      // Skip the cache if any user defined features are applied\n      if (features) {\n        return this.layoutRun(text, features);\n      }\n\n      var glyphs = onlyWidth ? null : [];\n      var positions = onlyWidth ? null : [];\n      var advanceWidth = 0; // Split the string by words to increase cache efficiency.\n      // For this purpose, spaces and tabs are a good enough delimeter.\n\n      var last = 0;\n      var index = 0;\n\n      while (index <= text.length) {\n        var needle;\n\n        if (index === text.length && last < index || (needle = text.charAt(index), [' ', '\\t'].includes(needle))) {\n          var run = this.layoutCached(text.slice(last, ++index));\n\n          if (!onlyWidth) {\n            glyphs = glyphs.concat(run.glyphs);\n            positions = positions.concat(run.positions);\n          }\n\n          advanceWidth += run.advanceWidth;\n          last = index;\n        } else {\n          index++;\n        }\n      }\n\n      return {\n        glyphs: glyphs,\n        positions: positions,\n        advanceWidth: advanceWidth\n      };\n    }\n  }, {\n    key: \"encode\",\n    value: function encode(text, features) {\n      var _this$layout = this.layout(text, features),\n          glyphs = _this$layout.glyphs,\n          positions = _this$layout.positions;\n\n      var res = [];\n\n      for (var i = 0; i < glyphs.length; i++) {\n        var glyph = glyphs[i];\n        var gid = this.subset.includeGlyph(glyph.id);\n        res.push(\"0000\".concat(gid.toString(16)).slice(-4));\n\n        if (this.widths[gid] == null) {\n          this.widths[gid] = glyph.advanceWidth * this.scale;\n        }\n\n        if (this.unicode[gid] == null) {\n          this.unicode[gid] = glyph.codePoints;\n        }\n      }\n\n      return [res, positions];\n    }\n  }, {\n    key: \"widthOfString\",\n    value: function widthOfString(string, size, features) {\n      var width = this.layout(string, features, true).advanceWidth;\n      var scale = size / 1000;\n      return width * scale;\n    }\n  }, {\n    key: \"embed\",\n    value: function embed() {\n      var _this2 = this;\n\n      var isCFF = this.subset.cff != null;\n      var fontFile = this.document.ref();\n\n      if (isCFF) {\n        fontFile.data.Subtype = 'CIDFontType0C';\n      }\n\n      this.subset.encodeStream().on('data', function (data) {\n        return fontFile.write(data);\n      }).on('end', function () {\n        return fontFile.end();\n      });\n      var familyClass = ((this.font['OS/2'] != null ? this.font['OS/2'].sFamilyClass : undefined) || 0) >> 8;\n      var flags = 0;\n\n      if (this.font.post.isFixedPitch) {\n        flags |= 1 << 0;\n      }\n\n      if (1 <= familyClass && familyClass <= 7) {\n        flags |= 1 << 1;\n      }\n\n      flags |= 1 << 2; // assume the font uses non-latin characters\n\n      if (familyClass === 10) {\n        flags |= 1 << 3;\n      }\n\n      if (this.font.head.macStyle.italic) {\n        flags |= 1 << 6;\n      } // generate a tag (6 uppercase letters. 16 is the char code offset from '1' to 'A'. 74 will map to 'Z')\n\n\n      var tag = [1, 2, 3, 4, 5, 6].map(function (i) {\n        return String.fromCharCode((_this2.id.charCodeAt(i) || 74) + 16);\n      }).join('');\n      var name = tag + '+' + this.font.postscriptName;\n      var bbox = this.font.bbox;\n      var descriptor = this.document.ref({\n        Type: 'FontDescriptor',\n        FontName: name,\n        Flags: flags,\n        FontBBox: [bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale],\n        ItalicAngle: this.font.italicAngle,\n        Ascent: this.ascender,\n        Descent: this.descender,\n        CapHeight: (this.font.capHeight || this.font.ascent) * this.scale,\n        XHeight: (this.font.xHeight || 0) * this.scale,\n        StemV: 0\n      }); // not sure how to calculate this\n\n      if (isCFF) {\n        descriptor.data.FontFile3 = fontFile;\n      } else {\n        descriptor.data.FontFile2 = fontFile;\n      }\n\n      descriptor.end();\n      var descendantFontData = {\n        Type: 'Font',\n        Subtype: 'CIDFontType0',\n        BaseFont: name,\n        CIDSystemInfo: {\n          Registry: new String('Adobe'),\n          Ordering: new String('Identity'),\n          Supplement: 0\n        },\n        FontDescriptor: descriptor,\n        W: [0, this.widths]\n      };\n\n      if (!isCFF) {\n        descendantFontData.Subtype = 'CIDFontType2';\n        descendantFontData.CIDToGIDMap = 'Identity';\n      }\n\n      var descendantFont = this.document.ref(descendantFontData);\n      descendantFont.end();\n      this.dictionary.data = {\n        Type: 'Font',\n        Subtype: 'Type0',\n        BaseFont: name,\n        Encoding: 'Identity-H',\n        DescendantFonts: [descendantFont],\n        ToUnicode: this.toUnicodeCmap()\n      };\n      return this.dictionary.end();\n    } // Maps the glyph ids encoded in the PDF back to unicode strings\n    // Because of ligature substitutions and the like, there may be one or more\n    // unicode characters represented by each glyph.\n\n  }, {\n    key: \"toUnicodeCmap\",\n    value: function toUnicodeCmap() {\n      var cmap = this.document.ref();\n      var entries = [];\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this.unicode[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var codePoints = _step.value;\n          var encoded = []; // encode codePoints to utf16\n\n          var _iteratorNormalCompletion2 = true;\n          var _didIteratorError2 = false;\n          var _iteratorError2 = undefined;\n\n          try {\n            for (var _iterator2 = codePoints[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n              var value = _step2.value;\n\n              if (value > 0xffff) {\n                value -= 0x10000;\n                encoded.push(toHex(value >>> 10 & 0x3ff | 0xd800));\n                value = 0xdc00 | value & 0x3ff;\n              }\n\n              encoded.push(toHex(value));\n            }\n          } catch (err) {\n            _didIteratorError2 = true;\n            _iteratorError2 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n                _iterator2.return();\n              }\n            } finally {\n              if (_didIteratorError2) {\n                throw _iteratorError2;\n              }\n            }\n          }\n\n          entries.push(\"<\".concat(encoded.join(' '), \">\"));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      cmap.end(\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n  /Registry (Adobe)\\n  /Ordering (UCS)\\n  /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\\n1 beginbfrange\\n<0000> <\".concat(toHex(entries.length - 1), \"> [\").concat(entries.join(' '), \"]\\nendbfrange\\nendcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"));\n      return cmap;\n    }\n  }]);\n\n  return EmbeddedFont;\n}(PDFFont);\n\nvar PDFFontFactory = /*#__PURE__*/function () {\n  function PDFFontFactory() {\n    _classCallCheck(this, PDFFontFactory);\n  }\n\n  _createClass(PDFFontFactory, null, [{\n    key: \"open\",\n    value: function open(document, src, family, id) {\n      var font;\n\n      if (typeof src === 'string') {\n        if (StandardFont.isStandardFont(src)) {\n          return new StandardFont(document, src, id);\n        }\n\n        src = fs.readFileSync(src);\n      }\n\n      if (Buffer.isBuffer(src)) {\n        font = _fontkit.default.create(src, family);\n      } else if (src instanceof Uint8Array) {\n        font = _fontkit.default.create(new Buffer(src), family);\n      } else if (src instanceof ArrayBuffer) {\n        font = _fontkit.default.create(new Buffer(new Uint8Array(src)), family);\n      }\n\n      if (font == null) {\n        throw new Error('Not a supported font format or standard PDF font.');\n      }\n\n      return new EmbeddedFont(document, font, id);\n    }\n  }]);\n\n  return PDFFontFactory;\n}();\n\nvar FontsMixin = {\n  initFonts: function initFonts() {\n    var defaultFont = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Helvetica'; // Lookup table for embedded fonts\n\n    this._fontFamilies = {};\n    this._fontCount = 0; // Font state\n\n    this._fontSize = 12;\n    this._font = null;\n    this._registeredFonts = {}; // Set the default font\n\n    if (defaultFont) {\n      this.font(defaultFont);\n    }\n  },\n  font: function font(src, family, size) {\n    var cacheKey, font;\n\n    if (typeof family === 'number') {\n      size = family;\n      family = null;\n    } // check registered fonts if src is a string\n\n\n    if (typeof src === 'string' && this._registeredFonts[src]) {\n      cacheKey = src;\n      var _this$_registeredFont = this._registeredFonts[src];\n      src = _this$_registeredFont.src;\n      family = _this$_registeredFont.family;\n    } else {\n      cacheKey = family || src;\n\n      if (typeof cacheKey !== 'string') {\n        cacheKey = null;\n      }\n    }\n\n    if (size != null) {\n      this.fontSize(size);\n    } // fast path: check if the font is already in the PDF\n\n\n    if (font = this._fontFamilies[cacheKey]) {\n      this._font = font;\n      return this;\n    } // load the font\n\n\n    var id = \"F\".concat(++this._fontCount);\n    this._font = PDFFontFactory.open(this, src, family, id); // check for existing font familes with the same name already in the PDF\n    // useful if the font was passed as a buffer\n\n    if (font = this._fontFamilies[this._font.name]) {\n      this._font = font;\n      return this;\n    } // save the font for reuse later\n\n\n    if (cacheKey) {\n      this._fontFamilies[cacheKey] = this._font;\n    }\n\n    if (this._font.name) {\n      this._fontFamilies[this._font.name] = this._font;\n    }\n\n    return this;\n  },\n  fontSize: function fontSize(_fontSize) {\n    this._fontSize = _fontSize;\n    return this;\n  },\n  currentLineHeight: function currentLineHeight(includeGap) {\n    if (includeGap == null) {\n      includeGap = false;\n    }\n\n    return this._font.lineHeight(this._fontSize, includeGap);\n  },\n  registerFont: function registerFont(name, src, family) {\n    this._registeredFonts[name] = {\n      src: src,\n      family: family\n    };\n    return this;\n  }\n};\n\nvar LineWrapper = /*#__PURE__*/function (_EventEmitter) {\n  _inherits(LineWrapper, _EventEmitter);\n\n  function LineWrapper(document, options) {\n    var _this;\n\n    _classCallCheck(this, LineWrapper);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(LineWrapper).call(this));\n    _this.document = document;\n    _this.indent = options.indent || 0;\n    _this.characterSpacing = options.characterSpacing || 0;\n    _this.wordSpacing = options.wordSpacing === 0;\n    _this.columns = options.columns || 1;\n    _this.columnGap = options.columnGap != null ? options.columnGap : 18; // 1/4 inch\n\n    _this.lineWidth = (options.width - _this.columnGap * (_this.columns - 1)) / _this.columns;\n    _this.spaceLeft = _this.lineWidth;\n    _this.startX = _this.document.x;\n    _this.startY = _this.document.y;\n    _this.column = 1;\n    _this.ellipsis = options.ellipsis;\n    _this.continuedX = 0;\n    _this.features = options.features; // calculate the maximum Y position the text can appear at\n\n    if (options.height != null) {\n      _this.height = options.height;\n      _this.maxY = _this.startY + options.height;\n    } else {\n      _this.maxY = _this.document.page.maxY();\n    } // handle paragraph indents\n\n\n    _this.on('firstLine', function (options) {\n      // if this is the first line of the text segment, and\n      // we're continuing where we left off, indent that much\n      // otherwise use the user specified indent option\n      var indent = _this.continuedX || _this.indent;\n      _this.document.x += indent;\n      _this.lineWidth -= indent;\n      return _this.once('line', function () {\n        _this.document.x -= indent;\n        _this.lineWidth += indent;\n\n        if (options.continued && !_this.continuedX) {\n          _this.continuedX = _this.indent;\n        }\n\n        if (!options.continued) {\n          return _this.continuedX = 0;\n        }\n      });\n    }); // handle left aligning last lines of paragraphs\n\n\n    _this.on('lastLine', function (options) {\n      var align = options.align;\n\n      if (align === 'justify') {\n        options.align = 'left';\n      }\n\n      _this.lastLine = true;\n      return _this.once('line', function () {\n        _this.document.y += options.paragraphGap || 0;\n        options.align = align;\n        return _this.lastLine = false;\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(LineWrapper, [{\n    key: \"wordWidth\",\n    value: function wordWidth(word) {\n      return this.document.widthOfString(word, this) + this.characterSpacing + this.wordSpacing;\n    }\n  }, {\n    key: \"eachWord\",\n    value: function eachWord(text, fn) {\n      // setup a unicode line breaker\n      var bk;\n      var breaker = new _linebreak.default(text);\n      var last = null;\n      var wordWidths = Object.create(null);\n\n      while (bk = breaker.nextBreak()) {\n        var shouldContinue;\n        var word = text.slice((last != null ? last.position : undefined) || 0, bk.position);\n        var w = wordWidths[word] != null ? wordWidths[word] : wordWidths[word] = this.wordWidth(word); // if the word is longer than the whole line, chop it up\n        // TODO: break by grapheme clusters, not JS string characters\n\n        if (w > this.lineWidth + this.continuedX) {\n          // make some fake break objects\n          var lbk = last;\n          var fbk = {};\n\n          while (word.length) {\n            // fit as much of the word as possible into the space we have\n            var l, mightGrow;\n\n            if (w > this.spaceLeft) {\n              // start our check at the end of our available space - this method is faster than a loop of each character and it resolves\n              // an issue with long loops when processing massive words, such as a huge number of spaces\n              l = Math.ceil(this.spaceLeft / (w / word.length));\n              w = this.wordWidth(word.slice(0, l));\n              mightGrow = w <= this.spaceLeft && l < word.length;\n            } else {\n              l = word.length;\n            }\n\n            var mustShrink = w > this.spaceLeft && l > 0; // shrink or grow word as necessary after our near-guess above\n\n            while (mustShrink || mightGrow) {\n              if (mustShrink) {\n                w = this.wordWidth(word.slice(0, --l));\n                mustShrink = w > this.spaceLeft && l > 0;\n              } else {\n                w = this.wordWidth(word.slice(0, ++l));\n                mustShrink = w > this.spaceLeft && l > 0;\n                mightGrow = w <= this.spaceLeft && l < word.length;\n              }\n            } // check for the edge case where a single character cannot fit into a line.\n\n\n            if (l === 0 && this.spaceLeft === this.lineWidth) {\n              l = 1;\n            } // send a required break unless this is the last piece and a linebreak is not specified\n\n\n            fbk.required = bk.required || l < word.length;\n            shouldContinue = fn(word.slice(0, l), w, fbk, lbk);\n            lbk = {\n              required: false\n            }; // get the remaining piece of the word\n\n            word = word.slice(l);\n            w = this.wordWidth(word);\n\n            if (shouldContinue === false) {\n              break;\n            }\n          }\n        } else {\n          // otherwise just emit the break as it was given to us\n          shouldContinue = fn(word, w, bk, last);\n        }\n\n        if (shouldContinue === false) {\n          break;\n        }\n\n        last = bk;\n      }\n    }\n  }, {\n    key: \"wrap\",\n    value: function wrap(text, options) {\n      var _this2 = this; // override options from previous continued fragments\n\n\n      if (options.indent != null) {\n        this.indent = options.indent;\n      }\n\n      if (options.characterSpacing != null) {\n        this.characterSpacing = options.characterSpacing;\n      }\n\n      if (options.wordSpacing != null) {\n        this.wordSpacing = options.wordSpacing;\n      }\n\n      if (options.ellipsis != null) {\n        this.ellipsis = options.ellipsis;\n      } // make sure we're actually on the page\n      // and that the first line of is never by\n      // itself at the bottom of a page (orphans)\n\n\n      var nextY = this.document.y + this.document.currentLineHeight(true);\n\n      if (this.document.y > this.maxY || nextY > this.maxY) {\n        this.nextSection();\n      }\n\n      var buffer = '';\n      var textWidth = 0;\n      var wc = 0;\n      var lc = 0;\n      var y = this.document.y; // used to reset Y pos if options.continued (below)\n\n      var emitLine = function emitLine() {\n        options.textWidth = textWidth + _this2.wordSpacing * (wc - 1);\n        options.wordCount = wc;\n        options.lineWidth = _this2.lineWidth;\n        y = _this2.document.y;\n\n        _this2.emit('line', buffer, options, _this2);\n\n        return lc++;\n      };\n\n      this.emit('sectionStart', options, this);\n      this.eachWord(text, function (word, w, bk, last) {\n        if (last == null || last.required) {\n          _this2.emit('firstLine', options, _this2);\n\n          _this2.spaceLeft = _this2.lineWidth;\n        }\n\n        if (w <= _this2.spaceLeft) {\n          buffer += word;\n          textWidth += w;\n          wc++;\n        }\n\n        if (bk.required || w > _this2.spaceLeft) {\n          // if the user specified a max height and an ellipsis, and is about to pass the\n          // max height and max columns after the next line, append the ellipsis\n          var lh = _this2.document.currentLineHeight(true);\n\n          if (_this2.height != null && _this2.ellipsis && _this2.document.y + lh * 2 > _this2.maxY && _this2.column >= _this2.columns) {\n            if (_this2.ellipsis === true) {\n              _this2.ellipsis = '…';\n            } // map default ellipsis character\n\n\n            buffer = buffer.replace(/\\s+$/, '');\n            textWidth = _this2.wordWidth(buffer + _this2.ellipsis); // remove characters from the buffer until the ellipsis fits\n            // to avoid inifinite loop need to stop while-loop if buffer is empty string\n\n            while (buffer && textWidth > _this2.lineWidth) {\n              buffer = buffer.slice(0, -1).replace(/\\s+$/, '');\n              textWidth = _this2.wordWidth(buffer + _this2.ellipsis);\n            } // need to add ellipsis only if there is enough space for it\n\n\n            if (textWidth <= _this2.lineWidth) {\n              buffer = buffer + _this2.ellipsis;\n            }\n\n            textWidth = _this2.wordWidth(buffer);\n          }\n\n          if (bk.required) {\n            if (w > _this2.spaceLeft) {\n              emitLine();\n              buffer = word;\n              textWidth = w;\n              wc = 1;\n            }\n\n            _this2.emit('lastLine', options, _this2);\n          }\n\n          emitLine(); // if we've reached the edge of the page,\n          // continue on a new page or column\n\n          if (_this2.document.y + lh > _this2.maxY) {\n            var shouldContinue = _this2.nextSection(); // stop if we reached the maximum height\n\n\n            if (!shouldContinue) {\n              wc = 0;\n              buffer = '';\n              return false;\n            }\n          } // reset the space left and buffer\n\n\n          if (bk.required) {\n            _this2.spaceLeft = _this2.lineWidth;\n            buffer = '';\n            textWidth = 0;\n            return wc = 0;\n          } else {\n            // reset the space left and buffer\n            _this2.spaceLeft = _this2.lineWidth - w;\n            buffer = word;\n            textWidth = w;\n            return wc = 1;\n          }\n        } else {\n          return _this2.spaceLeft -= w;\n        }\n      });\n\n      if (wc > 0) {\n        this.emit('lastLine', options, this);\n        emitLine();\n      }\n\n      this.emit('sectionEnd', options, this); // if the wrap is set to be continued, save the X position\n      // to start the first line of the next segment at, and reset\n      // the y position\n\n      if (options.continued === true) {\n        if (lc > 1) {\n          this.continuedX = 0;\n        }\n\n        this.continuedX += options.textWidth || 0;\n        return this.document.y = y;\n      } else {\n        return this.document.x = this.startX;\n      }\n    }\n  }, {\n    key: \"nextSection\",\n    value: function nextSection(options) {\n      this.emit('sectionEnd', options, this);\n\n      if (++this.column > this.columns) {\n        // if a max height was specified by the user, we're done.\n        // otherwise, the default is to make a new page at the bottom.\n        if (this.height != null) {\n          return false;\n        }\n\n        this.document.addPage();\n        this.column = 1;\n        this.startY = this.document.page.margins.top;\n        this.maxY = this.document.page.maxY();\n        this.document.x = this.startX;\n\n        if (this.document._fillColor) {\n          var _this$document;\n\n          (_this$document = this.document).fillColor.apply(_this$document, _toConsumableArray(this.document._fillColor));\n        }\n\n        this.emit('pageBreak', options, this);\n      } else {\n        this.document.x += this.lineWidth + this.columnGap;\n        this.document.y = this.startY;\n        this.emit('columnBreak', options, this);\n      }\n\n      this.emit('sectionStart', options, this);\n      return true;\n    }\n  }]);\n\n  return LineWrapper;\n}(_events.EventEmitter);\n\nvar number$2 = PDFObject.number;\nvar TextMixin = {\n  initText: function initText() {\n    this._line = this._line.bind(this); // Current coordinates\n\n    this.x = 0;\n    this.y = 0;\n    return this._lineGap = 0;\n  },\n  lineGap: function lineGap(_lineGap) {\n    this._lineGap = _lineGap;\n    return this;\n  },\n  moveDown: function moveDown(lines) {\n    if (lines == null) {\n      lines = 1;\n    }\n\n    this.y += this.currentLineHeight(true) * lines + this._lineGap;\n    return this;\n  },\n  moveUp: function moveUp(lines) {\n    if (lines == null) {\n      lines = 1;\n    }\n\n    this.y -= this.currentLineHeight(true) * lines + this._lineGap;\n    return this;\n  },\n  _text: function _text(text, x, y, options, lineCallback) {\n    options = this._initOptions(x, y, options); // Convert text to a string\n\n    text = text == null ? '' : \"\".concat(text); // if the wordSpacing option is specified, remove multiple consecutive spaces\n\n    if (options.wordSpacing) {\n      text = text.replace(/\\s{2,}/g, ' ');\n    } // word wrapping\n\n\n    if (options.width) {\n      var wrapper = this._wrapper;\n\n      if (!wrapper) {\n        wrapper = new LineWrapper(this, options);\n        wrapper.on('line', lineCallback);\n      }\n\n      this._wrapper = options.continued ? wrapper : null;\n      this._textOptions = options.continued ? options : null;\n      wrapper.wrap(text, options); // render paragraphs as single lines\n    } else {\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = text.split('\\n')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var line = _step.value;\n          lineCallback(line, options);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n\n    return this;\n  },\n  text: function text(_text2, x, y, options) {\n    return this._text(_text2, x, y, options, this._line);\n  },\n  widthOfString: function widthOfString(string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    return this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1);\n  },\n  heightOfString: function heightOfString(text, options) {\n    var _this = this;\n\n    var x = this.x,\n        y = this.y;\n    options = this._initOptions(options);\n    options.height = Infinity; // don't break pages\n\n    var lineGap = options.lineGap || this._lineGap || 0;\n\n    this._text(text, this.x, this.y, options, function () {\n      return _this.y += _this.currentLineHeight(true) + lineGap;\n    });\n\n    var height = this.y - y;\n    this.x = x;\n    this.y = y;\n    return height;\n  },\n  list: function list(_list, x, y, options, wrapper) {\n    var _this2 = this;\n\n    options = this._initOptions(x, y, options);\n    var listType = options.listType || 'bullet';\n    var unit = Math.round(this._font.ascender / 1000 * this._fontSize);\n    var midLine = unit / 2;\n    var r = options.bulletRadius || unit / 3;\n    var indent = options.textIndent || (listType === 'bullet' ? r * 5 : unit * 2);\n    var itemIndent = options.bulletIndent || (listType === 'bullet' ? r * 8 : unit * 2);\n    var level = 1;\n    var items = [];\n    var levels = [];\n    var numbers = [];\n\n    var flatten = function flatten(list) {\n      var n = 1;\n\n      for (var _i = 0; _i < list.length; _i++) {\n        var item = list[_i];\n\n        if (Array.isArray(item)) {\n          level++;\n          flatten(item);\n          level--;\n        } else {\n          items.push(item);\n          levels.push(level);\n\n          if (listType !== 'bullet') {\n            numbers.push(n++);\n          }\n        }\n      }\n    };\n\n    flatten(_list);\n\n    var label = function label(n) {\n      switch (listType) {\n        case 'numbered':\n          return \"\".concat(n, \".\");\n\n        case 'lettered':\n          var letter = String.fromCharCode((n - 1) % 26 + 65);\n          var times = Math.floor((n - 1) / 26 + 1);\n          var text = Array(times + 1).join(letter);\n          return \"\".concat(text, \".\");\n      }\n    };\n\n    wrapper = new LineWrapper(this, options);\n    wrapper.on('line', this._line);\n    level = 1;\n    var i = 0;\n    wrapper.on('firstLine', function () {\n      var l;\n\n      if ((l = levels[i++]) !== level) {\n        var diff = itemIndent * (l - level);\n        _this2.x += diff;\n        wrapper.lineWidth -= diff;\n        level = l;\n      }\n\n      switch (listType) {\n        case 'bullet':\n          _this2.circle(_this2.x - indent + r, _this2.y + midLine, r);\n\n          return _this2.fill();\n\n        case 'numbered':\n        case 'lettered':\n          var text = label(numbers[i - 1]);\n          return _this2._fragment(text, _this2.x - indent, _this2.y, options);\n      }\n    });\n    wrapper.on('sectionStart', function () {\n      var pos = indent + itemIndent * (level - 1);\n      _this2.x += pos;\n      return wrapper.lineWidth -= pos;\n    });\n    wrapper.on('sectionEnd', function () {\n      var pos = indent + itemIndent * (level - 1);\n      _this2.x -= pos;\n      return wrapper.lineWidth += pos;\n    });\n    wrapper.wrap(items.join('\\n'), options);\n    return this;\n  },\n  _initOptions: function _initOptions() {\n    var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var y = arguments.length > 1 ? arguments[1] : undefined;\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n    if (typeof x === 'object') {\n      options = x;\n      x = null;\n    } // clone options object\n\n\n    var result = Object.assign({}, options); // extend options with previous values for continued text\n\n    if (this._textOptions) {\n      for (var key in this._textOptions) {\n        var val = this._textOptions[key];\n\n        if (key !== 'continued') {\n          if (result[key] === undefined) {\n            result[key] = val;\n          }\n        }\n      }\n    } // Update the current position\n\n\n    if (x != null) {\n      this.x = x;\n    }\n\n    if (y != null) {\n      this.y = y;\n    } // wrap to margins if no x or y position passed\n\n\n    if (result.lineBreak !== false) {\n      if (result.width == null) {\n        result.width = this.page.width - this.x - this.page.margins.right;\n      }\n\n      result.width = Math.max(result.width, 0);\n    }\n\n    if (!result.columns) {\n      result.columns = 0;\n    }\n\n    if (result.columnGap == null) {\n      result.columnGap = 18;\n    } // 1/4 inch\n\n\n    return result;\n  },\n  _line: function _line(text) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var wrapper = arguments.length > 2 ? arguments[2] : undefined;\n\n    this._fragment(text, this.x, this.y, options);\n\n    var lineGap = options.lineGap || this._lineGap || 0;\n\n    if (!wrapper) {\n      return this.x += this.widthOfString(text);\n    } else {\n      return this.y += this.currentLineHeight(true) + lineGap;\n    }\n  },\n  _fragment: function _fragment(text, x, y, options) {\n    var _this3 = this;\n\n    var dy, encoded, i, positions, textWidth, words;\n    text = \"\".concat(text).replace(/\\n/g, '');\n\n    if (text.length === 0) {\n      return;\n    } // handle options\n\n\n    var align = options.align || 'left';\n    var wordSpacing = options.wordSpacing || 0;\n    var characterSpacing = options.characterSpacing || 0; // text alignments\n\n    if (options.width) {\n      switch (align) {\n        case 'right':\n          textWidth = this.widthOfString(text.replace(/\\s+$/, ''), options);\n          x += options.lineWidth - textWidth;\n          break;\n\n        case 'center':\n          x += options.lineWidth / 2 - options.textWidth / 2;\n          break;\n\n        case 'justify':\n          // calculate the word spacing value\n          words = text.trim().split(/\\s+/);\n          textWidth = this.widthOfString(text.replace(/\\s+/g, ''), options);\n          var spaceWidth = this.widthOfString(' ') + characterSpacing;\n          wordSpacing = Math.max(0, (options.lineWidth - textWidth) / Math.max(1, words.length - 1) - spaceWidth);\n          break;\n      }\n    } // text baseline alignments based on http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling\n\n\n    if (typeof options.baseline === 'number') {\n      dy = -options.baseline;\n    } else {\n      switch (options.baseline) {\n        case 'svg-middle':\n          dy = 0.5 * this._font.xHeight;\n          break;\n\n        case 'middle':\n        case 'svg-central':\n          dy = 0.5 * (this._font.descender + this._font.ascender);\n          break;\n\n        case 'bottom':\n        case 'ideographic':\n          dy = this._font.descender;\n          break;\n\n        case 'alphabetic':\n          dy = 0;\n          break;\n\n        case 'mathematical':\n          dy = 0.5 * this._font.ascender;\n          break;\n\n        case 'hanging':\n          dy = 0.8 * this._font.ascender;\n          break;\n\n        case 'top':\n          dy = this._font.ascender;\n          break;\n\n        default:\n          dy = this._font.ascender;\n      }\n\n      dy = dy / 1000 * this._fontSize;\n    } // calculate the actual rendered width of the string after word and character spacing\n\n\n    var renderedWidth = options.textWidth + wordSpacing * (options.wordCount - 1) + characterSpacing * (text.length - 1); // create link annotations if the link option is given\n\n    if (options.link != null) {\n      this.link(x, y, renderedWidth, this.currentLineHeight(), options.link);\n    }\n\n    if (options.goTo != null) {\n      this.goTo(x, y, renderedWidth, this.currentLineHeight(), options.goTo);\n    }\n\n    if (options.destination != null) {\n      this.addNamedDestination(options.destination, 'XYZ', x, y, null);\n    } // create underline or strikethrough line\n\n\n    if (options.underline || options.strike) {\n      this.save();\n\n      if (!options.stroke) {\n        this.strokeColor.apply(this, _toConsumableArray(this._fillColor || []));\n      }\n\n      var lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10);\n      this.lineWidth(lineWidth);\n      var d = options.underline ? 1 : 2;\n      var lineY = y + this.currentLineHeight() / d;\n\n      if (options.underline) {\n        lineY -= lineWidth;\n      }\n\n      this.moveTo(x, lineY);\n      this.lineTo(x + renderedWidth, lineY);\n      this.stroke();\n      this.restore();\n    }\n\n    this.save(); // oblique (angle in degrees or boolean)\n\n    if (options.oblique) {\n      var skew;\n\n      if (typeof options.oblique === 'number') {\n        skew = -Math.tan(options.oblique * Math.PI / 180);\n      } else {\n        skew = -0.25;\n      }\n\n      this.transform(1, 0, 0, 1, x, y);\n      this.transform(1, 0, skew, 1, -skew * dy, 0);\n      this.transform(1, 0, 0, 1, -x, -y);\n    } // flip coordinate system\n\n\n    this.transform(1, 0, 0, -1, 0, this.page.height);\n    y = this.page.height - y - dy; // add current font to page if necessary\n\n    if (this.page.fonts[this._font.id] == null) {\n      this.page.fonts[this._font.id] = this._font.ref();\n    } // begin the text object\n\n\n    this.addContent('BT'); // text position\n\n    this.addContent(\"1 0 0 1 \".concat(number$2(x), \" \").concat(number$2(y), \" Tm\")); // font and font size\n\n    this.addContent(\"/\".concat(this._font.id, \" \").concat(number$2(this._fontSize), \" Tf\")); // rendering mode\n\n    var mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0;\n\n    if (mode) {\n      this.addContent(\"\".concat(mode, \" Tr\"));\n    } // Character spacing\n\n\n    if (characterSpacing) {\n      this.addContent(\"\".concat(number$2(characterSpacing), \" Tc\"));\n    } // Add the actual text\n    // If we have a word spacing value, we need to encode each word separately\n    // since the normal Tw operator only works on character code 32, which isn't\n    // used for embedded fonts.\n\n\n    if (wordSpacing) {\n      words = text.trim().split(/\\s+/);\n      wordSpacing += this.widthOfString(' ') + characterSpacing;\n      wordSpacing *= 1000 / this._fontSize;\n      encoded = [];\n      positions = [];\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = words[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var word = _step2.value;\n\n          var _this$_font$encode = this._font.encode(word, options.features),\n              _this$_font$encode2 = _slicedToArray(_this$_font$encode, 2),\n              encodedWord = _this$_font$encode2[0],\n              positionsWord = _this$_font$encode2[1];\n\n          encoded = encoded.concat(encodedWord);\n          positions = positions.concat(positionsWord); // add the word spacing to the end of the word\n          // clone object because of cache\n\n          var space = {};\n          var object = positions[positions.length - 1];\n\n          for (var key in object) {\n            var val = object[key];\n            space[key] = val;\n          }\n\n          space.xAdvance += wordSpacing;\n          positions[positions.length - 1] = space;\n        }\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n    } else {\n      var _this$_font$encode3 = this._font.encode(text, options.features);\n\n      var _this$_font$encode4 = _slicedToArray(_this$_font$encode3, 2);\n\n      encoded = _this$_font$encode4[0];\n      positions = _this$_font$encode4[1];\n    }\n\n    var scale = this._fontSize / 1000;\n    var commands = [];\n    var last = 0;\n    var hadOffset = false; // Adds a segment of text to the TJ command buffer\n\n    var addSegment = function addSegment(cur) {\n      if (last < cur) {\n        var hex = encoded.slice(last, cur).join('');\n        var advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;\n        commands.push(\"<\".concat(hex, \"> \").concat(number$2(-advance)));\n      }\n\n      return last = cur;\n    }; // Flushes the current TJ commands to the output stream\n\n\n    var flush = function flush(i) {\n      addSegment(i);\n\n      if (commands.length > 0) {\n        _this3.addContent(\"[\".concat(commands.join(' '), \"] TJ\"));\n\n        return commands.length = 0;\n      }\n    };\n\n    for (i = 0; i < positions.length; i++) {\n      // If we have an x or y offset, we have to break out of the current TJ command\n      // so we can move the text position.\n      var pos = positions[i];\n\n      if (pos.xOffset || pos.yOffset) {\n        // Flush the current buffer\n        flush(i); // Move the text position and flush just the current character\n\n        this.addContent(\"1 0 0 1 \".concat(number$2(x + pos.xOffset * scale), \" \").concat(number$2(y + pos.yOffset * scale), \" Tm\"));\n        flush(i + 1);\n        hadOffset = true;\n      } else {\n        // If the last character had an offset, reset the text position\n        if (hadOffset) {\n          this.addContent(\"1 0 0 1 \".concat(number$2(x), \" \").concat(number$2(y), \" Tm\"));\n          hadOffset = false;\n        } // Group segments that don't have any advance adjustments\n\n\n        if (pos.xAdvance - pos.advanceWidth !== 0) {\n          addSegment(i + 1);\n        }\n      }\n\n      x += pos.xAdvance * scale;\n    } // Flush any remaining commands\n\n\n    flush(i); // end the text object\n\n    this.addContent('ET'); // restore flipped coordinate system\n\n    return this.restore();\n  }\n};\nvar MARKERS = [0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf];\nvar COLOR_SPACE_MAP = {\n  1: 'DeviceGray',\n  3: 'DeviceRGB',\n  4: 'DeviceCMYK'\n};\n\nvar JPEG = /*#__PURE__*/function () {\n  function JPEG(data, label) {\n    _classCallCheck(this, JPEG);\n\n    var marker;\n    this.data = data;\n    this.label = label;\n\n    if (this.data.readUInt16BE(0) !== 0xffd8) {\n      throw 'SOI not found in JPEG';\n    }\n\n    var pos = 2;\n\n    while (pos < this.data.length) {\n      marker = this.data.readUInt16BE(pos);\n      pos += 2;\n\n      if (MARKERS.includes(marker)) {\n        break;\n      }\n\n      pos += this.data.readUInt16BE(pos);\n    }\n\n    if (!MARKERS.includes(marker)) {\n      throw 'Invalid JPEG.';\n    }\n\n    pos += 2;\n    this.bits = this.data[pos++];\n    this.height = this.data.readUInt16BE(pos);\n    pos += 2;\n    this.width = this.data.readUInt16BE(pos);\n    pos += 2;\n    var channels = this.data[pos++];\n    this.colorSpace = COLOR_SPACE_MAP[channels];\n    this.obj = null;\n  }\n\n  _createClass(JPEG, [{\n    key: \"embed\",\n    value: function embed(document) {\n      if (this.obj) {\n        return;\n      }\n\n      this.obj = document.ref({\n        Type: 'XObject',\n        Subtype: 'Image',\n        BitsPerComponent: this.bits,\n        Width: this.width,\n        Height: this.height,\n        ColorSpace: this.colorSpace,\n        Filter: 'DCTDecode'\n      }); // add extra decode params for CMYK images. By swapping the\n      // min and max values from the default, we invert the colors. See\n      // section 4.8.4 of the spec.\n\n      if (this.colorSpace === 'DeviceCMYK') {\n        this.obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0];\n      }\n\n      this.obj.end(this.data); // free memory\n\n      return this.data = null;\n    }\n  }]);\n\n  return JPEG;\n}();\n\nvar PNGImage = /*#__PURE__*/function () {\n  function PNGImage(data, label) {\n    _classCallCheck(this, PNGImage);\n\n    this.label = label;\n    this.image = new _pngJs.default(data);\n    this.width = this.image.width;\n    this.height = this.image.height;\n    this.imgData = this.image.imgData;\n    this.obj = null;\n  }\n\n  _createClass(PNGImage, [{\n    key: \"embed\",\n    value: function embed(document) {\n      var dataDecoded = false;\n      this.document = document;\n\n      if (this.obj) {\n        return;\n      }\n\n      var hasAlphaChannel = this.image.hasAlphaChannel;\n      var isInterlaced = this.image.interlaceMethod === 1;\n      this.obj = this.document.ref({\n        Type: 'XObject',\n        Subtype: 'Image',\n        BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits,\n        Width: this.width,\n        Height: this.height,\n        Filter: 'FlateDecode'\n      });\n\n      if (!hasAlphaChannel) {\n        var params = this.document.ref({\n          Predictor: isInterlaced ? 1 : 15,\n          Colors: this.image.colors,\n          BitsPerComponent: this.image.bits,\n          Columns: this.width\n        });\n        this.obj.data['DecodeParms'] = params;\n        params.end();\n      }\n\n      if (this.image.palette.length === 0) {\n        this.obj.data['ColorSpace'] = this.image.colorSpace;\n      } else {\n        // embed the color palette in the PDF as an object stream\n        var palette = this.document.ref();\n        palette.end(new Buffer(this.image.palette)); // build the color space array for the image\n\n        this.obj.data['ColorSpace'] = ['Indexed', 'DeviceRGB', this.image.palette.length / 3 - 1, palette];\n      } // For PNG color types 0, 2 and 3, the transparency data is stored in\n      // a dedicated PNG chunk.\n\n\n      if (this.image.transparency.grayscale != null) {\n        // Use Color Key Masking (spec section 4.8.5)\n        // An array with N elements, where N is two times the number of color components.\n        var val = this.image.transparency.grayscale;\n        this.obj.data['Mask'] = [val, val];\n      } else if (this.image.transparency.rgb) {\n        // Use Color Key Masking (spec section 4.8.5)\n        // An array with N elements, where N is two times the number of color components.\n        var rgb = this.image.transparency.rgb;\n        var mask = [];\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = rgb[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var x = _step.value;\n            mask.push(x, x);\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        this.obj.data['Mask'] = mask;\n      } else if (this.image.transparency.indexed) {\n        // Create a transparency SMask for the image based on the data\n        // in the PLTE and tRNS sections. See below for details on SMasks.\n        dataDecoded = true;\n        return this.loadIndexedAlphaChannel();\n      } else if (hasAlphaChannel) {\n        // For PNG color types 4 and 6, the transparency data is stored as a alpha\n        // channel mixed in with the main image data. Separate this data out into an\n        // SMask object and store it separately in the PDF.\n        dataDecoded = true;\n        return this.splitAlphaChannel();\n      }\n\n      if (isInterlaced && !dataDecoded) {\n        return this.decodeData();\n      }\n\n      this.finalize();\n    }\n  }, {\n    key: \"finalize\",\n    value: function finalize() {\n      if (this.alphaChannel) {\n        var sMask = this.document.ref({\n          Type: 'XObject',\n          Subtype: 'Image',\n          Height: this.height,\n          Width: this.width,\n          BitsPerComponent: 8,\n          Filter: 'FlateDecode',\n          ColorSpace: 'DeviceGray',\n          Decode: [0, 1]\n        });\n        sMask.end(this.alphaChannel);\n        this.obj.data['SMask'] = sMask;\n      } // add the actual image data\n\n\n      this.obj.end(this.imgData); // free memory\n\n      this.image = null;\n      return this.imgData = null;\n    }\n  }, {\n    key: \"splitAlphaChannel\",\n    value: function splitAlphaChannel() {\n      var _this = this;\n\n      return this.image.decodePixels(function (pixels) {\n        var a, p;\n        var colorCount = _this.image.colors;\n        var pixelCount = _this.width * _this.height;\n        var imgData = new Buffer(pixelCount * colorCount);\n        var alphaChannel = new Buffer(pixelCount);\n        var i = p = a = 0;\n        var len = pixels.length; // For 16bit images copy only most significant byte (MSB) - PNG data is always stored in network byte order (MSB first)\n\n        var skipByteCount = _this.image.bits === 16 ? 1 : 0;\n\n        while (i < len) {\n          for (var colorIndex = 0; colorIndex < colorCount; colorIndex++) {\n            imgData[p++] = pixels[i++];\n            i += skipByteCount;\n          }\n\n          alphaChannel[a++] = pixels[i++];\n          i += skipByteCount;\n        }\n\n        _this.imgData = _zlib.default.deflateSync(imgData);\n        _this.alphaChannel = _zlib.default.deflateSync(alphaChannel);\n        return _this.finalize();\n      });\n    }\n  }, {\n    key: \"loadIndexedAlphaChannel\",\n    value: function loadIndexedAlphaChannel() {\n      var _this2 = this;\n\n      var transparency = this.image.transparency.indexed;\n      return this.image.decodePixels(function (pixels) {\n        var alphaChannel = new Buffer(_this2.width * _this2.height);\n        var i = 0;\n\n        for (var j = 0, end = pixels.length; j < end; j++) {\n          alphaChannel[i++] = transparency[pixels[j]];\n        }\n\n        _this2.alphaChannel = _zlib.default.deflateSync(alphaChannel);\n        return _this2.finalize();\n      });\n    }\n  }, {\n    key: \"decodeData\",\n    value: function decodeData() {\n      var _this3 = this;\n\n      this.image.decodePixels(function (pixels) {\n        _this3.imgData = _zlib.default.deflateSync(pixels);\n\n        _this3.finalize();\n      });\n    }\n  }]);\n\n  return PNGImage;\n}();\n\nvar PDFImage = /*#__PURE__*/function () {\n  function PDFImage() {\n    _classCallCheck(this, PDFImage);\n  }\n\n  _createClass(PDFImage, null, [{\n    key: \"open\",\n    value: function open(src, label) {\n      var data;\n\n      if (Buffer.isBuffer(src)) {\n        data = src;\n      } else if (src instanceof ArrayBuffer) {\n        data = new Buffer(new Uint8Array(src));\n      } else {\n        var match;\n\n        if (match = /^data:.+;base64,(.*)$/.exec(src)) {\n          data = new Buffer(match[1], 'base64');\n        } else {\n          data = fs.readFileSync(src);\n\n          if (!data) {\n            return;\n          }\n        }\n      }\n\n      if (data[0] === 0xff && data[1] === 0xd8) {\n        return new JPEG(data, label);\n      } else if (data[0] === 0x89 && data.toString('ascii', 1, 4) === 'PNG') {\n        return new PNGImage(data, label);\n      } else {\n        throw new Error('Unknown image format.');\n      }\n    }\n  }]);\n\n  return PDFImage;\n}();\n\nvar ImagesMixin = {\n  initImages: function initImages() {\n    this._imageRegistry = {};\n    return this._imageCount = 0;\n  },\n  image: function image(src, x, y) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var bh, bp, bw, image, ip, left, left1;\n\n    if (typeof x === 'object') {\n      options = x;\n      x = null;\n    }\n\n    x = (left = x != null ? x : options.x) != null ? left : this.x;\n    y = (left1 = y != null ? y : options.y) != null ? left1 : this.y;\n\n    if (typeof src === 'string') {\n      image = this._imageRegistry[src];\n    }\n\n    if (!image) {\n      if (src.width && src.height) {\n        image = src;\n      } else {\n        image = this.openImage(src);\n      }\n    }\n\n    if (!image.obj) {\n      image.embed(this);\n    }\n\n    if (this.page.xobjects[image.label] == null) {\n      this.page.xobjects[image.label] = image.obj;\n    }\n\n    var w = options.width || image.width;\n    var h = options.height || image.height;\n\n    if (options.width && !options.height) {\n      var wp = w / image.width;\n      w = image.width * wp;\n      h = image.height * wp;\n    } else if (options.height && !options.width) {\n      var hp = h / image.height;\n      w = image.width * hp;\n      h = image.height * hp;\n    } else if (options.scale) {\n      w = image.width * options.scale;\n      h = image.height * options.scale;\n    } else if (options.fit) {\n      var _options$fit = _slicedToArray(options.fit, 2);\n\n      bw = _options$fit[0];\n      bh = _options$fit[1];\n      bp = bw / bh;\n      ip = image.width / image.height;\n\n      if (ip > bp) {\n        w = bw;\n        h = bw / ip;\n      } else {\n        h = bh;\n        w = bh * ip;\n      }\n    } else if (options.cover) {\n      var _options$cover = _slicedToArray(options.cover, 2);\n\n      bw = _options$cover[0];\n      bh = _options$cover[1];\n      bp = bw / bh;\n      ip = image.width / image.height;\n\n      if (ip > bp) {\n        h = bh;\n        w = bh * ip;\n      } else {\n        w = bw;\n        h = bw / ip;\n      }\n    }\n\n    if (options.fit || options.cover) {\n      if (options.align === 'center') {\n        x = x + bw / 2 - w / 2;\n      } else if (options.align === 'right') {\n        x = x + bw - w;\n      }\n\n      if (options.valign === 'center') {\n        y = y + bh / 2 - h / 2;\n      } else if (options.valign === 'bottom') {\n        y = y + bh - h;\n      }\n    } // create link annotations if the link option is given\n\n\n    if (options.link != null) {\n      this.link(x, y, w, h, options.link);\n    }\n\n    if (options.goTo != null) {\n      this.goTo(x, y, w, h, options.goTo);\n    }\n\n    if (options.destination != null) {\n      this.addNamedDestination(options.destination, 'XYZ', x, y, null);\n    } // Set the current y position to below the image if it is in the document flow\n\n\n    if (this.y === y) {\n      this.y += h;\n    }\n\n    this.save();\n    this.transform(w, 0, 0, -h, x, y + h);\n    this.addContent(\"/\".concat(image.label, \" Do\"));\n    this.restore();\n    return this;\n  },\n  openImage: function openImage(src) {\n    var image;\n\n    if (typeof src === 'string') {\n      image = this._imageRegistry[src];\n    }\n\n    if (!image) {\n      image = PDFImage.open(src, \"I\".concat(++this._imageCount));\n\n      if (typeof src === 'string') {\n        this._imageRegistry[src] = image;\n      }\n    }\n\n    return image;\n  }\n};\nvar AnnotationsMixin = {\n  annotate: function annotate(x, y, w, h, options) {\n    options.Type = 'Annot';\n    options.Rect = this._convertRect(x, y, w, h);\n    options.Border = [0, 0, 0];\n\n    if (options.Subtype === 'Link' && typeof options.F === 'undefined') {\n      options.F = 1 << 2; // Print Annotation Flag\n    }\n\n    if (options.Subtype !== 'Link') {\n      if (options.C == null) {\n        options.C = this._normalizeColor(options.color || [0, 0, 0]);\n      }\n    } // convert colors\n\n\n    delete options.color;\n\n    if (typeof options.Dest === 'string') {\n      options.Dest = new String(options.Dest);\n    } // Capitalize keys\n\n\n    for (var key in options) {\n      var val = options[key];\n      options[key[0].toUpperCase() + key.slice(1)] = val;\n    }\n\n    var ref = this.ref(options);\n    this.page.annotations.push(ref);\n    ref.end();\n    return this;\n  },\n  note: function note(x, y, w, h, contents) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    options.Subtype = 'Text';\n    options.Contents = new String(contents);\n    options.Name = 'Comment';\n\n    if (options.color == null) {\n      options.color = [243, 223, 92];\n    }\n\n    return this.annotate(x, y, w, h, options);\n  },\n  goTo: function goTo(x, y, w, h, name) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    options.Subtype = 'Link';\n    options.A = this.ref({\n      S: 'GoTo',\n      D: new String(name)\n    });\n    options.A.end();\n    return this.annotate(x, y, w, h, options);\n  },\n  link: function link(x, y, w, h, url) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    options.Subtype = 'Link';\n\n    if (typeof url === 'number') {\n      // Link to a page in the document (the page must already exist)\n      var pages = this._root.data.Pages.data;\n\n      if (url >= 0 && url < pages.Kids.length) {\n        options.A = this.ref({\n          S: 'GoTo',\n          D: [pages.Kids[url], 'XYZ', null, null, null]\n        });\n        options.A.end();\n      } else {\n        throw new Error(\"The document has no page \".concat(url));\n      }\n    } else {\n      // Link to an external url\n      options.A = this.ref({\n        S: 'URI',\n        URI: new String(url)\n      });\n      options.A.end();\n    }\n\n    return this.annotate(x, y, w, h, options);\n  },\n  _markup: function _markup(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n\n    var _this$_convertRect = this._convertRect(x, y, w, h),\n        _this$_convertRect2 = _slicedToArray(_this$_convertRect, 4),\n        x1 = _this$_convertRect2[0],\n        y1 = _this$_convertRect2[1],\n        x2 = _this$_convertRect2[2],\n        y2 = _this$_convertRect2[3];\n\n    options.QuadPoints = [x1, y2, x2, y2, x1, y1, x2, y1];\n    options.Contents = new String();\n    return this.annotate(x, y, w, h, options);\n  },\n  highlight: function highlight(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'Highlight';\n\n    if (options.color == null) {\n      options.color = [241, 238, 148];\n    }\n\n    return this._markup(x, y, w, h, options);\n  },\n  underline: function underline(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'Underline';\n    return this._markup(x, y, w, h, options);\n  },\n  strike: function strike(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'StrikeOut';\n    return this._markup(x, y, w, h, options);\n  },\n  lineAnnotation: function lineAnnotation(x1, y1, x2, y2) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'Line';\n    options.Contents = new String();\n    options.L = [x1, this.page.height - y1, x2, this.page.height - y2];\n    return this.annotate(x1, y1, x2, y2, options);\n  },\n  rectAnnotation: function rectAnnotation(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'Square';\n    options.Contents = new String();\n    return this.annotate(x, y, w, h, options);\n  },\n  ellipseAnnotation: function ellipseAnnotation(x, y, w, h) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    options.Subtype = 'Circle';\n    options.Contents = new String();\n    return this.annotate(x, y, w, h, options);\n  },\n  textAnnotation: function textAnnotation(x, y, w, h, text) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    options.Subtype = 'FreeText';\n    options.Contents = new String(text);\n    options.DA = new String();\n    return this.annotate(x, y, w, h, options);\n  },\n  _convertRect: function _convertRect(x1, y1, w, h) {\n    // flip y1 and y2\n    var y2 = y1;\n    y1 += h; // make x2\n\n    var x2 = x1 + w; // apply current transformation matrix to points\n\n    var _this$_ctm = _slicedToArray(this._ctm, 6),\n        m0 = _this$_ctm[0],\n        m1 = _this$_ctm[1],\n        m2 = _this$_ctm[2],\n        m3 = _this$_ctm[3],\n        m4 = _this$_ctm[4],\n        m5 = _this$_ctm[5];\n\n    x1 = m0 * x1 + m2 * y1 + m4;\n    y1 = m1 * x1 + m3 * y1 + m5;\n    x2 = m0 * x2 + m2 * y2 + m4;\n    y2 = m1 * x2 + m3 * y2 + m5;\n    return [x1, y1, x2, y2];\n  }\n};\n\nvar PDFOutline = /*#__PURE__*/function () {\n  function PDFOutline(document, parent, title, dest) {\n    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n      expanded: false\n    };\n\n    _classCallCheck(this, PDFOutline);\n\n    this.document = document;\n    this.options = options;\n    this.outlineData = {};\n\n    if (dest !== null) {\n      this.outlineData['Dest'] = [dest.dictionary, 'Fit'];\n    }\n\n    if (parent !== null) {\n      this.outlineData['Parent'] = parent;\n    }\n\n    if (title !== null) {\n      this.outlineData['Title'] = new String(title);\n    }\n\n    this.dictionary = this.document.ref(this.outlineData);\n    this.children = [];\n  }\n\n  _createClass(PDFOutline, [{\n    key: \"addItem\",\n    value: function addItem(title) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        expanded: false\n      };\n      var result = new PDFOutline(this.document, this.dictionary, title, this.document.page, options);\n      this.children.push(result);\n      return result;\n    }\n  }, {\n    key: \"endOutline\",\n    value: function endOutline() {\n      if (this.children.length > 0) {\n        if (this.options.expanded) {\n          this.outlineData.Count = this.children.length;\n        }\n\n        var first = this.children[0],\n            last = this.children[this.children.length - 1];\n        this.outlineData.First = first.dictionary;\n        this.outlineData.Last = last.dictionary;\n\n        for (var i = 0, len = this.children.length; i < len; i++) {\n          var child = this.children[i];\n\n          if (i > 0) {\n            child.outlineData.Prev = this.children[i - 1].dictionary;\n          }\n\n          if (i < this.children.length - 1) {\n            child.outlineData.Next = this.children[i + 1].dictionary;\n          }\n\n          child.endOutline();\n        }\n      }\n\n      return this.dictionary.end();\n    }\n  }]);\n\n  return PDFOutline;\n}();\n\nvar OutlineMixin = {\n  initOutline: function initOutline() {\n    return this.outline = new PDFOutline(this, null, null, null);\n  },\n  endOutline: function endOutline() {\n    this.outline.endOutline();\n\n    if (this.outline.children.length > 0) {\n      this._root.data.Outlines = this.outline.dictionary;\n      return this._root.data.PageMode = 'UseOutlines';\n    }\n  }\n};\nvar FIELD_FLAGS = {\n  readOnly: 1,\n  required: 2,\n  noExport: 4,\n  multiline: 0x1000,\n  password: 0x2000,\n  toggleToOffButton: 0x4000,\n  radioButton: 0x8000,\n  pushButton: 0x10000,\n  combo: 0x20000,\n  edit: 0x40000,\n  sort: 0x80000,\n  multiSelect: 0x200000,\n  noSpell: 0x400000\n};\nvar FIELD_JUSTIFY = {\n  left: 0,\n  center: 1,\n  right: 2\n};\nvar VALUE_MAP = {\n  value: 'V',\n  defaultValue: 'DV'\n};\nvar FORMAT_SPECIAL = {\n  zip: '0',\n  zipPlus4: '1',\n  zip4: '1',\n  phone: '2',\n  ssn: '3'\n};\nvar FORMAT_DEFAULT = {\n  number: {\n    nDec: 0,\n    sepComma: false,\n    negStyle: 'MinusBlack',\n    currency: '',\n    currencyPrepend: true\n  },\n  percent: {\n    nDec: 0,\n    sepComma: false\n  }\n};\nvar AcroFormMixin = {\n  /**\n   * Must call if adding AcroForms to a document. Must also call font() before\n   * this method to set the default font.\n   */\n  initForm: function initForm() {\n    if (!this._font) {\n      throw new Error('Must set a font before calling initForm method');\n    }\n\n    this._acroform = {\n      fonts: {},\n      defaultFont: this._font.name\n    };\n    this._acroform.fonts[this._font.id] = this._font.ref();\n    var data = {\n      Fields: [],\n      NeedAppearances: true,\n      DA: new String(\"/\".concat(this._font.id, \" 0 Tf 0 g\")),\n      DR: {\n        Font: {}\n      }\n    };\n    data.DR.Font[this._font.id] = this._font.ref();\n    var AcroForm = this.ref(data);\n    this._root.data.AcroForm = AcroForm;\n    return this;\n  },\n\n  /**\n   * Called automatically by document.js\n   */\n  endAcroForm: function endAcroForm() {\n    var _this = this;\n\n    if (this._root.data.AcroForm) {\n      if (!Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont) {\n        throw new Error('No fonts specified for PDF form');\n      }\n\n      var fontDict = this._root.data.AcroForm.data.DR.Font;\n      Object.keys(this._acroform.fonts).forEach(function (name) {\n        fontDict[name] = _this._acroform.fonts[name];\n      });\n\n      this._root.data.AcroForm.data.Fields.forEach(function (fieldRef) {\n        _this._endChild(fieldRef);\n      });\n\n      this._root.data.AcroForm.end();\n    }\n\n    return this;\n  },\n  _endChild: function _endChild(ref) {\n    var _this2 = this;\n\n    if (Array.isArray(ref.data.Kids)) {\n      ref.data.Kids.forEach(function (childRef) {\n        _this2._endChild(childRef);\n      });\n      ref.end();\n    }\n\n    return this;\n  },\n\n  /**\n   * Creates and adds a form field to the document. Form fields are intermediate\n   * nodes in a PDF form that are used to specify form name heirarchy and form\n   * value defaults.\n   * @param {string} name - field name (T attribute in field dictionary)\n   * @param {object} options  - other attributes to include in field dictionary\n   */\n  formField: function formField(name) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    var fieldDict = this._fieldDict(name, null, options);\n\n    var fieldRef = this.ref(fieldDict);\n\n    this._addToParent(fieldRef);\n\n    return fieldRef;\n  },\n\n  /**\n   * Creates and adds a Form Annotation to the document. Form annotations are\n   * called Widget annotations internally within a PDF file.\n   * @param {string} name - form field name (T attribute of widget annotation\n   * dictionary)\n   * @param {number} x\n   * @param {number} y\n   * @param {number} w\n   * @param {number} h\n   * @param {object} options\n   */\n  formAnnotation: function formAnnotation(name, type, x, y, w, h) {\n    var options = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n\n    var fieldDict = this._fieldDict(name, type, options);\n\n    fieldDict.Subtype = 'Widget';\n\n    if (fieldDict.F === undefined) {\n      fieldDict.F = 4; // print the annotation\n    } // Add Field annot to page, and get it's ref\n\n\n    this.annotate(x, y, w, h, fieldDict);\n    var annotRef = this.page.annotations[this.page.annotations.length - 1];\n    return this._addToParent(annotRef);\n  },\n  formText: function formText(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'text', x, y, w, h, options);\n  },\n  formPushButton: function formPushButton(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'pushButton', x, y, w, h, options);\n  },\n  formCombo: function formCombo(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'combo', x, y, w, h, options);\n  },\n  formList: function formList(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'list', x, y, w, h, options);\n  },\n  formRadioButton: function formRadioButton(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'radioButton', x, y, w, h, options);\n  },\n  formCheckbox: function formCheckbox(name, x, y, w, h) {\n    var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n    return this.formAnnotation(name, 'checkbox', x, y, w, h, options);\n  },\n  _addToParent: function _addToParent(fieldRef) {\n    var parent = fieldRef.data.Parent;\n\n    if (parent) {\n      if (!parent.data.Kids) {\n        parent.data.Kids = [];\n      }\n\n      parent.data.Kids.push(fieldRef);\n    } else {\n      this._root.data.AcroForm.data.Fields.push(fieldRef);\n    }\n\n    return this;\n  },\n  _fieldDict: function _fieldDict(name, type) {\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n    if (!this._acroform) {\n      throw new Error('Call document.initForms() method before adding form elements to document');\n    }\n\n    var opts = Object.assign({}, options);\n\n    if (type !== null) {\n      opts = this._resolveType(type, options);\n    }\n\n    opts = this._resolveFlags(opts);\n    opts = this._resolveJustify(opts);\n    opts = this._resolveFont(opts);\n    opts = this._resolveStrings(opts);\n    opts = this._resolveColors(opts);\n    opts = this._resolveFormat(opts);\n    opts.T = new String(name);\n\n    if (opts.parent) {\n      opts.Parent = opts.parent;\n      delete opts.parent;\n    }\n\n    return opts;\n  },\n  _resolveType: function _resolveType(type, opts) {\n    if (type === 'text') {\n      opts.FT = 'Tx';\n    } else if (type === 'pushButton') {\n      opts.FT = 'Btn';\n      opts.pushButton = true;\n    } else if (type === 'radioButton') {\n      opts.FT = 'Btn';\n      opts.radioButton = true;\n    } else if (type === 'checkbox') {\n      opts.FT = 'Btn';\n    } else if (type === 'combo') {\n      opts.FT = 'Ch';\n      opts.combo = true;\n    } else if (type === 'list') {\n      opts.FT = 'Ch';\n    } else {\n      throw new Error(\"Invalid form annotation type '\".concat(type, \"'\"));\n    }\n\n    return opts;\n  },\n  _resolveFormat: function _resolveFormat(opts) {\n    var f = opts.format;\n\n    if (f && f.type) {\n      var fnKeystroke;\n      var fnFormat;\n      var params = '';\n\n      if (FORMAT_SPECIAL[f.type] !== undefined) {\n        fnKeystroke = \"AFSpecial_Keystroke\";\n        fnFormat = \"AFSpecial_Format\";\n        params = FORMAT_SPECIAL[f.type];\n      } else {\n        var format = f.type.charAt(0).toUpperCase() + f.type.slice(1);\n        fnKeystroke = \"AF\".concat(format, \"_Keystroke\");\n        fnFormat = \"AF\".concat(format, \"_Format\");\n\n        if (f.type === 'date') {\n          fnKeystroke += 'Ex';\n          params = String(f.param);\n        } else if (f.type === 'time') {\n          params = String(f.param);\n        } else if (f.type === 'number') {\n          var p = Object.assign({}, FORMAT_DEFAULT.number, f);\n          params = String([String(p.nDec), p.sepComma ? '0' : '1', '\"' + p.negStyle + '\"', 'null', '\"' + p.currency + '\"', String(p.currencyPrepend)].join(','));\n        } else if (f.type === 'percent') {\n          var _p = Object.assign({}, FORMAT_DEFAULT.percent, f);\n\n          params = String([String(_p.nDec), _p.sepComma ? '0' : '1'].join(','));\n        }\n      }\n\n      opts.AA = opts.AA ? opts.AA : {};\n      opts.AA.K = {\n        S: 'JavaScript',\n        JS: new String(\"\".concat(fnKeystroke, \"(\").concat(params, \");\"))\n      };\n      opts.AA.F = {\n        S: 'JavaScript',\n        JS: new String(\"\".concat(fnFormat, \"(\").concat(params, \");\"))\n      };\n    }\n\n    delete opts.format;\n    return opts;\n  },\n  _resolveColors: function _resolveColors(opts) {\n    var color = this._normalizeColor(opts.backgroundColor);\n\n    if (color) {\n      if (!opts.MK) {\n        opts.MK = {};\n      }\n\n      opts.MK.BG = color;\n    }\n\n    color = this._normalizeColor(opts.borderColor);\n\n    if (color) {\n      if (!opts.MK) {\n        opts.MK = {};\n      }\n\n      opts.MK.BC = color;\n    }\n\n    delete opts.backgroundColor;\n    delete opts.borderColor;\n    return opts;\n  },\n  _resolveFlags: function _resolveFlags(options) {\n    var result = 0;\n    Object.keys(options).forEach(function (key) {\n      if (FIELD_FLAGS[key]) {\n        result |= FIELD_FLAGS[key];\n        delete options[key];\n      }\n    });\n\n    if (result !== 0) {\n      options.Ff = options.Ff ? options.Ff : 0;\n      options.Ff |= result;\n    }\n\n    return options;\n  },\n  _resolveJustify: function _resolveJustify(options) {\n    var result = 0;\n\n    if (options.align !== undefined) {\n      if (typeof FIELD_JUSTIFY[options.align] === 'number') {\n        result = FIELD_JUSTIFY[options.align];\n      }\n\n      delete options.align;\n    }\n\n    if (result !== 0) {\n      options.Q = result; // default\n    }\n\n    return options;\n  },\n  _resolveFont: function _resolveFont(options) {\n    // add current font to document-level AcroForm dict if necessary\n    if (this._acroform.fonts[this._font.id] === null) {\n      this._acroform.fonts[this._font.id] = this._font.ref();\n    } // add current font to field's resource dict (RD) if not the default acroform font\n\n\n    if (this._acroform.defaultFont !== this._font.name) {\n      options.DR = {\n        Font: {}\n      };\n      options.DR.Font[this._font.id] = this._font.ref();\n      options.DA = new String(\"/\".concat(this._font.id, \" 0 Tf 0 g\"));\n    }\n\n    return options;\n  },\n  _resolveStrings: function _resolveStrings(options) {\n    var select = [];\n\n    function appendChoices(a) {\n      if (Array.isArray(a)) {\n        for (var idx = 0; idx < a.length; idx++) {\n          if (typeof a[idx] === 'string') {\n            select.push(new String(a[idx]));\n          } else {\n            select.push(a[idx]);\n          }\n        }\n      }\n    }\n\n    appendChoices(options.Opt);\n\n    if (options.select) {\n      appendChoices(options.select);\n      delete options.select;\n    }\n\n    if (select.length) {\n      options.Opt = select;\n    }\n\n    if (options.value || options.defaultValue) ;\n    Object.keys(VALUE_MAP).forEach(function (key) {\n      if (options[key] !== undefined) {\n        options[VALUE_MAP[key]] = options[key];\n        delete options[key];\n      }\n    });\n    ['V', 'DV'].forEach(function (key) {\n      if (typeof options[key] === 'string') {\n        options[key] = new String(options[key]);\n      }\n    });\n\n    if (options.MK && options.MK.CA) {\n      options.MK.CA = new String(options.MK.CA);\n    }\n\n    if (options.label) {\n      options.MK = options.MK ? options.MK : {};\n      options.MK.CA = new String(options.label);\n      delete options.label;\n    }\n\n    return options;\n  }\n};\n\nvar PDFDocument = /*#__PURE__*/function (_stream$Readable) {\n  _inherits(PDFDocument, _stream$Readable);\n\n  function PDFDocument() {\n    var _this;\n\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, PDFDocument);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFDocument).call(this, options));\n    _this.options = options; // PDF version\n\n    switch (options.pdfVersion) {\n      case '1.4':\n        _this.version = 1.4;\n        break;\n\n      case '1.5':\n        _this.version = 1.5;\n        break;\n\n      case '1.6':\n        _this.version = 1.6;\n        break;\n\n      case '1.7':\n      case '1.7ext3':\n        _this.version = 1.7;\n        break;\n\n      default:\n        _this.version = 1.3;\n        break;\n    } // Whether streams should be compressed\n\n\n    _this.compress = _this.options.compress != null ? _this.options.compress : true;\n    _this._pageBuffer = [];\n    _this._pageBufferStart = 0; // The PDF object store\n\n    _this._offsets = [];\n    _this._waiting = 0;\n    _this._ended = false;\n    _this._offset = 0;\n\n    var Pages = _this.ref({\n      Type: 'Pages',\n      Count: 0,\n      Kids: []\n    });\n\n    var Names = _this.ref({\n      Dests: new PDFNameTree()\n    });\n\n    _this._root = _this.ref({\n      Type: 'Catalog',\n      Pages: Pages,\n      Names: Names\n    }); // The current page\n\n    _this.page = null; // Initialize mixins\n\n    _this.initColor();\n\n    _this.initVector();\n\n    _this.initFonts(options.font);\n\n    _this.initText();\n\n    _this.initImages();\n\n    _this.initOutline(); // Initialize the metadata\n\n\n    _this.info = {\n      Producer: 'PDFKit',\n      Creator: 'PDFKit',\n      CreationDate: new Date()\n    };\n\n    if (_this.options.info) {\n      for (var key in _this.options.info) {\n        var val = _this.options.info[key];\n        _this.info[key] = val;\n      }\n    } // Generate file ID\n\n\n    _this._id = PDFSecurity.generateFileID(_this.info); // Initialize security settings\n\n    _this._security = PDFSecurity.create(_assertThisInitialized(_this), options); // Write the header\n    // PDF version\n\n    _this._write(\"%PDF-\".concat(_this.version)); // 4 binary chars, as recommended by the spec\n\n\n    _this._write('%\\xFF\\xFF\\xFF\\xFF'); // Add the first page\n\n\n    if (_this.options.autoFirstPage !== false) {\n      _this.addPage();\n    }\n\n    return _this;\n  }\n\n  _createClass(PDFDocument, [{\n    key: \"addPage\",\n    value: function addPage(options) {\n      // end the current page if needed\n      if (options == null) {\n        options = this.options;\n      }\n\n      if (!this.options.bufferPages) {\n        this.flushPages();\n      } // create a page object\n\n\n      this.page = new PDFPage(this, options);\n\n      this._pageBuffer.push(this.page); // add the page to the object store\n\n\n      var pages = this._root.data.Pages.data;\n      pages.Kids.push(this.page.dictionary);\n      pages.Count++; // reset x and y coordinates\n\n      this.x = this.page.margins.left;\n      this.y = this.page.margins.top; // flip PDF coordinate system so that the origin is in\n      // the top left rather than the bottom left\n\n      this._ctm = [1, 0, 0, 1, 0, 0];\n      this.transform(1, 0, 0, -1, 0, this.page.height);\n      this.emit('pageAdded');\n      return this;\n    }\n  }, {\n    key: \"bufferedPageRange\",\n    value: function bufferedPageRange() {\n      return {\n        start: this._pageBufferStart,\n        count: this._pageBuffer.length\n      };\n    }\n  }, {\n    key: \"switchToPage\",\n    value: function switchToPage(n) {\n      var page;\n\n      if (!(page = this._pageBuffer[n - this._pageBufferStart])) {\n        throw new Error(\"switchToPage(\".concat(n, \") out of bounds, current buffer covers pages \").concat(this._pageBufferStart, \" to \").concat(this._pageBufferStart + this._pageBuffer.length - 1));\n      }\n\n      return this.page = page;\n    }\n  }, {\n    key: \"flushPages\",\n    value: function flushPages() {\n      // this local variable exists so we're future-proof against\n      // reentrant calls to flushPages.\n      var pages = this._pageBuffer;\n      this._pageBuffer = [];\n      this._pageBufferStart += pages.length;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = pages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var page = _step.value;\n          page.end();\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"addNamedDestination\",\n    value: function addNamedDestination(name) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (args.length === 0) {\n        args = ['XYZ', null, null, null];\n      }\n\n      if (args[0] === 'XYZ' && args[2] !== null) {\n        args[2] = this.page.height - args[2];\n      }\n\n      args.unshift(this.page.dictionary);\n\n      this._root.data.Names.data.Dests.add(name, args);\n    }\n  }, {\n    key: \"addNamedJavaScript\",\n    value: function addNamedJavaScript(name, js) {\n      if (!this._root.data.Names.data.JavaScript) {\n        this._root.data.Names.data.JavaScript = new PDFNameTree();\n      }\n\n      var data = {\n        JS: new String(js),\n        S: 'JavaScript'\n      };\n\n      this._root.data.Names.data.JavaScript.add(name, data);\n    }\n  }, {\n    key: \"ref\",\n    value: function ref(data) {\n      var ref = new PDFReference(this, this._offsets.length + 1, data);\n\n      this._offsets.push(null); // placeholder for this object's offset once it is finalized\n\n\n      this._waiting++;\n      return ref;\n    }\n  }, {\n    key: \"_read\",\n    value: function _read() {} // do nothing, but this method is required by node\n\n  }, {\n    key: \"_write\",\n    value: function _write(data) {\n      if (!Buffer.isBuffer(data)) {\n        data = new Buffer(data + '\\n', 'binary');\n      }\n\n      this.push(data);\n      return this._offset += data.length;\n    }\n  }, {\n    key: \"addContent\",\n    value: function addContent(data) {\n      this.page.write(data);\n      return this;\n    }\n  }, {\n    key: \"_refEnd\",\n    value: function _refEnd(ref) {\n      this._offsets[ref.id - 1] = ref.offset;\n\n      if (--this._waiting === 0 && this._ended) {\n        this._finalize();\n\n        return this._ended = false;\n      }\n    }\n  }, {\n    key: \"write\",\n    value: function write(filename, fn) {\n      // print a deprecation warning with a stacktrace\n      var err = new Error(\"PDFDocument#write is deprecated, and will be removed in a future version of PDFKit. Please pipe the document into a Node stream.\");\n      console.warn(err.stack);\n      this.pipe(fs.createWriteStream(filename));\n      this.end();\n      return this.once('end', fn);\n    }\n  }, {\n    key: \"end\",\n    value: function end() {\n      this.flushPages();\n      this._info = this.ref();\n\n      for (var key in this.info) {\n        var val = this.info[key];\n\n        if (typeof val === 'string') {\n          val = new String(val);\n        }\n\n        var entry = this.ref(val);\n        entry.end();\n        this._info.data[key] = entry;\n      }\n\n      this._info.end();\n\n      for (var name in this._fontFamilies) {\n        var font = this._fontFamilies[name];\n        font.finalize();\n      }\n\n      this.endOutline();\n\n      this._root.end();\n\n      this._root.data.Pages.end();\n\n      this._root.data.Names.end();\n\n      this.endAcroForm();\n\n      if (this._security) {\n        this._security.end();\n      }\n\n      if (this._waiting === 0) {\n        return this._finalize();\n      } else {\n        return this._ended = true;\n      }\n    }\n  }, {\n    key: \"_finalize\",\n    value: function _finalize(fn) {\n      // generate xref\n      var xRefOffset = this._offset;\n\n      this._write('xref');\n\n      this._write(\"0 \".concat(this._offsets.length + 1));\n\n      this._write('0000000000 65535 f ');\n\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = this._offsets[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var offset = _step2.value;\n          offset = \"0000000000\".concat(offset).slice(-10);\n\n          this._write(offset + ' 00000 n ');\n        } // trailer\n\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      var trailer = {\n        Size: this._offsets.length + 1,\n        Root: this._root,\n        Info: this._info,\n        ID: [this._id, this._id]\n      };\n\n      if (this._security) {\n        trailer.Encrypt = this._security.dictionary;\n      }\n\n      this._write('trailer');\n\n      this._write(PDFObject.convert(trailer));\n\n      this._write('startxref');\n\n      this._write(\"\".concat(xRefOffset));\n\n      this._write('%%EOF'); // end the stream\n\n\n      return this.push(null);\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      return '[object PDFDocument]';\n    }\n  }]);\n\n  return PDFDocument;\n}(_stream.default.Readable);\n\nvar mixin = function mixin(methods) {\n  Object.assign(PDFDocument.prototype, methods);\n};\n\nmixin(ColorMixin);\nmixin(VectorMixin);\nmixin(FontsMixin);\nmixin(TextMixin);\nmixin(ImagesMixin);\nmixin(AnnotationsMixin);\nmixin(OutlineMixin);\nmixin(AcroFormMixin);\nvar _default = PDFDocument;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer, \"/\"))\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar inspectSource = __webpack_require__(140);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(34);\nvar getOwnPropertyNamesModule = __webpack_require__(57);\nvar getOwnPropertySymbolsModule = __webpack_require__(144);\nvar anObject = __webpack_require__(11);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar definePropertyModule = __webpack_require__(16);\nvar anObject = __webpack_require__(11);\nvar objectKeys = __webpack_require__(94);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(27);\nvar nativeGetOwnPropertyNames = __webpack_require__(57).f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return nativeGetOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $every = __webpack_require__(20).every;\nvar arrayMethodIsStrict = __webpack_require__(59);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $filter = __webpack_require__(20).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(116);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar forEach = __webpack_require__(214);\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar from = __webpack_require__(318);\nvar checkCorrectnessOfIteration = __webpack_require__(155);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(96);\nvar toObject = __webpack_require__(19);\nvar callWithSafeIterationClosing = __webpack_require__(319);\nvar isArrayIteratorMethod = __webpack_require__(152);\nvar toLength = __webpack_require__(8);\nvar createProperty = __webpack_require__(147);\nvar getIteratorMethod = __webpack_require__(153);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(11);\nvar iteratorClose = __webpack_require__(215);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    iteratorClose(iterator);\n    throw error;\n  }\n};\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(218).IteratorPrototype;\nvar create = __webpack_require__(58);\nvar createPropertyDescriptor = __webpack_require__(40);\nvar setToStringTag = __webpack_require__(95);\nvar Iterators = __webpack_require__(97);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $map = __webpack_require__(20).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(116);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar $some = __webpack_require__(20).some;\nvar arrayMethodIsStrict = __webpack_require__(59);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar global = __webpack_require__(3);\nvar arrayBufferModule = __webpack_require__(156);\nvar setSpecies = __webpack_require__(158);\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, exports) {\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = new Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    if (number * (c = pow(2, -exponent)) < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar numberIsFinite = __webpack_require__(327);\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\nmodule.exports = Number.isFinite || function isFinite(it) {\n  return typeof it == 'number' && globalIsFinite(it);\n};\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar assign = __webpack_require__(329);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar fails = __webpack_require__(4);\nvar objectKeys = __webpack_require__(94);\nvar getOwnPropertySymbolsModule = __webpack_require__(144);\nvar propertyIsEnumerableModule = __webpack_require__(110);\nvar toObject = __webpack_require__(19);\nvar IndexedObject = __webpack_require__(92);\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar fails = __webpack_require__(4);\nvar toObject = __webpack_require__(19);\nvar nativeGetPrototypeOf = __webpack_require__(60);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(219);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar setPrototypeOf = __webpack_require__(45);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n  setPrototypeOf: setPrototypeOf\n});\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(154);\nvar classof = __webpack_require__(117);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fails = __webpack_require__(4);\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n  return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n  var re = RE('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = RE('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(25);\nvar anObject = __webpack_require__(11);\nvar fails = __webpack_require__(4);\nvar flags = __webpack_require__(230);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar codeAt = __webpack_require__(159).codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar toAbsoluteIndex = __webpack_require__(43);\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n      );\n    } return elements.join('');\n  }\n});\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(19);\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace.call(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (ch.charAt(0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return str.slice(0, position);\n      case \"'\": return str.slice(tailPos);\n      case '<':\n        capture = namedCaptures[ch.slice(1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(14);\nvar classof = __webpack_require__(41);\nvar wellKnownSymbol = __webpack_require__(6);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(4);\nvar whitespaces = __webpack_require__(228);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar createHTML = __webpack_require__(235);\nvar forcedStringHTMLMethod = __webpack_require__(236);\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n  strike: function strike() {\n    return createHTML(this, 'strike', '', '');\n  }\n});\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-new */\nvar global = __webpack_require__(3);\nvar fails = __webpack_require__(4);\nvar checkCorrectnessOfIteration = __webpack_require__(155);\nvar NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(5).NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(35);\n\nmodule.exports = function (it) {\n  var result = toInteger(it);\n  if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(19);\nvar toLength = __webpack_require__(8);\nvar getIteratorMethod = __webpack_require__(153);\nvar isArrayIteratorMethod = __webpack_require__(152);\nvar bind = __webpack_require__(96);\nvar aTypedArrayConstructor = __webpack_require__(5).aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator, next;\n  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    O = [];\n    while (!(step = next.call(iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2], 2);\n  }\n  length = toLength(O.length);\n  result = new (aTypedArrayConstructor(this))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(19);\nvar toAbsoluteIndex = __webpack_require__(43);\nvar toLength = __webpack_require__(8);\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(27);\nvar toInteger = __webpack_require__(35);\nvar toLength = __webpack_require__(8);\nvar arrayMethodIsStrict = __webpack_require__(59);\nvar arrayMethodUsesToLength = __webpack_require__(30);\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = toLength(O.length);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : nativeLastIndexOf;\n\n\n/***/ }),\n/* 346 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar DOMIterables = __webpack_require__(240);\nvar forEach = __webpack_require__(214);\nvar createNonEnumerableProperty = __webpack_require__(18);\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n}\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 348 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = __webpack_require__(124).Buffer;\nvar util = __webpack_require__(349);\n\nfunction copyBuffer(src, target, offset) {\n  src.copy(target, offset);\n}\n\nmodule.exports = function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  BufferList.prototype.push = function push(v) {\n    var entry = { data: v, next: null };\n    if (this.length > 0) this.tail.next = entry;else this.head = entry;\n    this.tail = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.unshift = function unshift(v) {\n    var entry = { data: v, next: this.head };\n    if (this.length === 0) this.tail = entry;\n    this.head = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.shift = function shift() {\n    if (this.length === 0) return;\n    var ret = this.head.data;\n    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n    --this.length;\n    return ret;\n  };\n\n  BufferList.prototype.clear = function clear() {\n    this.head = this.tail = null;\n    this.length = 0;\n  };\n\n  BufferList.prototype.join = function join(s) {\n    if (this.length === 0) return '';\n    var p = this.head;\n    var ret = '' + p.data;\n    while (p = p.next) {\n      ret += s + p.data;\n    }return ret;\n  };\n\n  BufferList.prototype.concat = function concat(n) {\n    if (this.length === 0) return Buffer.alloc(0);\n    if (this.length === 1) return this.head.data;\n    var ret = Buffer.allocUnsafe(n >>> 0);\n    var p = this.head;\n    var i = 0;\n    while (p) {\n      copyBuffer(p.data, ret, i);\n      i += p.data.length;\n      p = p.next;\n    }\n    return ret;\n  };\n\n  return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n  module.exports.prototype[util.inspect.custom] = function () {\n    var obj = util.inspect({ length: this.length });\n    return this.constructor.name + ' ' + obj;\n  };\n}\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n  if (config('noDeprecation')) {\n    return fn;\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (config('throwDeprecation')) {\n        throw new Error(msg);\n      } else if (config('traceDeprecation')) {\n        console.trace(msg);\n      } else {\n        console.warn(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n  // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n  try {\n    if (!global.localStorage) return false;\n  } catch (_) {\n    return false;\n  }\n  var val = global.localStorage[name];\n  if (null == val) return false;\n  return String(val).toLowerCase() === 'true';\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(244);\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(98));\nutil.inherits = __webpack_require__(86);\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(166);\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(48);\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(165).Transform\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(165).PassThrough\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer, process) {\n/* eslint camelcase: \"off\" */\n\nvar assert = __webpack_require__(246);\n\nvar Zstream = __webpack_require__(360);\nvar zlib_deflate = __webpack_require__(361);\nvar zlib_inflate = __webpack_require__(364);\nvar constants = __webpack_require__(367);\n\nfor (var key in constants) {\n  exports[key] = constants[key];\n}\n\n// zlib modes\nexports.NONE = 0;\nexports.DEFLATE = 1;\nexports.INFLATE = 2;\nexports.GZIP = 3;\nexports.GUNZIP = 4;\nexports.DEFLATERAW = 5;\nexports.INFLATERAW = 6;\nexports.UNZIP = 7;\n\nvar GZIP_HEADER_ID1 = 0x1f;\nvar GZIP_HEADER_ID2 = 0x8b;\n\n/**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\nfunction Zlib(mode) {\n  if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n    throw new TypeError('Bad argument');\n  }\n\n  this.dictionary = null;\n  this.err = 0;\n  this.flush = 0;\n  this.init_done = false;\n  this.level = 0;\n  this.memLevel = 0;\n  this.mode = mode;\n  this.strategy = 0;\n  this.windowBits = 0;\n  this.write_in_progress = false;\n  this.pending_close = false;\n  this.gzip_id_bytes_read = 0;\n}\n\nZlib.prototype.close = function () {\n  if (this.write_in_progress) {\n    this.pending_close = true;\n    return;\n  }\n\n  this.pending_close = false;\n\n  assert(this.init_done, 'close before init');\n  assert(this.mode <= exports.UNZIP);\n\n  if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n    zlib_deflate.deflateEnd(this.strm);\n  } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n    zlib_inflate.inflateEnd(this.strm);\n  }\n\n  this.mode = exports.NONE;\n\n  this.dictionary = null;\n};\n\nZlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n  return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n  return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n  assert.equal(arguments.length, 8);\n\n  assert(this.init_done, 'write before init');\n  assert(this.mode !== exports.NONE, 'already finalized');\n  assert.equal(false, this.write_in_progress, 'write already in progress');\n  assert.equal(false, this.pending_close, 'close is pending');\n\n  this.write_in_progress = true;\n\n  assert.equal(false, flush === undefined, 'must provide flush value');\n\n  this.write_in_progress = true;\n\n  if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n    throw new Error('Invalid flush value');\n  }\n\n  if (input == null) {\n    input = Buffer.alloc(0);\n    in_len = 0;\n    in_off = 0;\n  }\n\n  this.strm.avail_in = in_len;\n  this.strm.input = input;\n  this.strm.next_in = in_off;\n  this.strm.avail_out = out_len;\n  this.strm.output = out;\n  this.strm.next_out = out_off;\n  this.flush = flush;\n\n  if (!async) {\n    // sync version\n    this._process();\n\n    if (this._checkError()) {\n      return this._afterSync();\n    }\n    return;\n  }\n\n  // async version\n  var self = this;\n  process.nextTick(function () {\n    self._process();\n    self._after();\n  });\n\n  return this;\n};\n\nZlib.prototype._afterSync = function () {\n  var avail_out = this.strm.avail_out;\n  var avail_in = this.strm.avail_in;\n\n  this.write_in_progress = false;\n\n  return [avail_in, avail_out];\n};\n\nZlib.prototype._process = function () {\n  var next_expected_header_byte = null;\n\n  // If the avail_out is left at 0, then it means that it ran out\n  // of room.  If there was avail_out left over, then it means\n  // that all of the input was consumed.\n  switch (this.mode) {\n    case exports.DEFLATE:\n    case exports.GZIP:\n    case exports.DEFLATERAW:\n      this.err = zlib_deflate.deflate(this.strm, this.flush);\n      break;\n    case exports.UNZIP:\n      if (this.strm.avail_in > 0) {\n        next_expected_header_byte = this.strm.next_in;\n      }\n\n      switch (this.gzip_id_bytes_read) {\n        case 0:\n          if (next_expected_header_byte === null) {\n            break;\n          }\n\n          if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n            this.gzip_id_bytes_read = 1;\n            next_expected_header_byte++;\n\n            if (this.strm.avail_in === 1) {\n              // The only available byte was already read.\n              break;\n            }\n          } else {\n            this.mode = exports.INFLATE;\n            break;\n          }\n\n        // fallthrough\n        case 1:\n          if (next_expected_header_byte === null) {\n            break;\n          }\n\n          if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n            this.gzip_id_bytes_read = 2;\n            this.mode = exports.GUNZIP;\n          } else {\n            // There is no actual difference between INFLATE and INFLATERAW\n            // (after initialization).\n            this.mode = exports.INFLATE;\n          }\n\n          break;\n        default:\n          throw new Error('invalid number of gzip magic number bytes read');\n      }\n\n    // fallthrough\n    case exports.INFLATE:\n    case exports.GUNZIP:\n    case exports.INFLATERAW:\n      this.err = zlib_inflate.inflate(this.strm, this.flush\n\n      // If data was encoded with dictionary\n      );if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n        // Load it\n        this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n        if (this.err === exports.Z_OK) {\n          // And try to decode again\n          this.err = zlib_inflate.inflate(this.strm, this.flush);\n        } else if (this.err === exports.Z_DATA_ERROR) {\n          // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n          // Make it possible for After() to tell a bad dictionary from bad\n          // input.\n          this.err = exports.Z_NEED_DICT;\n        }\n      }\n      while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n        // Bytes remain in input buffer. Perhaps this is another compressed\n        // member in the same archive, or just trailing garbage.\n        // Trailing zero bytes are okay, though, since they are frequently\n        // used for padding.\n\n        this.reset();\n        this.err = zlib_inflate.inflate(this.strm, this.flush);\n      }\n      break;\n    default:\n      throw new Error('Unknown mode ' + this.mode);\n  }\n};\n\nZlib.prototype._checkError = function () {\n  // Acceptable error states depend on the type of zlib stream.\n  switch (this.err) {\n    case exports.Z_OK:\n    case exports.Z_BUF_ERROR:\n      if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n        this._error('unexpected end of file');\n        return false;\n      }\n      break;\n    case exports.Z_STREAM_END:\n      // normal statuses, not fatal\n      break;\n    case exports.Z_NEED_DICT:\n      if (this.dictionary == null) {\n        this._error('Missing dictionary');\n      } else {\n        this._error('Bad dictionary');\n      }\n      return false;\n    default:\n      // something else.\n      this._error('Zlib error');\n      return false;\n  }\n\n  return true;\n};\n\nZlib.prototype._after = function () {\n  if (!this._checkError()) {\n    return;\n  }\n\n  var avail_out = this.strm.avail_out;\n  var avail_in = this.strm.avail_in;\n\n  this.write_in_progress = false;\n\n  // call the write() cb\n  this.callback(avail_in, avail_out);\n\n  if (this.pending_close) {\n    this.close();\n  }\n};\n\nZlib.prototype._error = function (message) {\n  if (this.strm.msg) {\n    message = this.strm.msg;\n  }\n  this.onerror(message, this.err\n\n  // no hope of rescue.\n  );this.write_in_progress = false;\n  if (this.pending_close) {\n    this.close();\n  }\n};\n\nZlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n  assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n\n  assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n  assert(level >= -1 && level <= 9, 'invalid compression level');\n\n  assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n\n  assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n\n  this._init(level, windowBits, memLevel, strategy, dictionary);\n  this._setDictionary();\n};\n\nZlib.prototype.params = function () {\n  throw new Error('deflateParams Not supported');\n};\n\nZlib.prototype.reset = function () {\n  this._reset();\n  this._setDictionary();\n};\n\nZlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n  this.level = level;\n  this.windowBits = windowBits;\n  this.memLevel = memLevel;\n  this.strategy = strategy;\n\n  this.flush = exports.Z_NO_FLUSH;\n\n  this.err = exports.Z_OK;\n\n  if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n    this.windowBits += 16;\n  }\n\n  if (this.mode === exports.UNZIP) {\n    this.windowBits += 32;\n  }\n\n  if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n    this.windowBits = -1 * this.windowBits;\n  }\n\n  this.strm = new Zstream();\n\n  switch (this.mode) {\n    case exports.DEFLATE:\n    case exports.GZIP:\n    case exports.DEFLATERAW:\n      this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n      break;\n    case exports.INFLATE:\n    case exports.GUNZIP:\n    case exports.INFLATERAW:\n    case exports.UNZIP:\n      this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n      break;\n    default:\n      throw new Error('Unknown mode ' + this.mode);\n  }\n\n  if (this.err !== exports.Z_OK) {\n    this._error('Init error');\n  }\n\n  this.dictionary = dictionary;\n\n  this.write_in_progress = false;\n  this.init_done = true;\n};\n\nZlib.prototype._setDictionary = function () {\n  if (this.dictionary == null) {\n    return;\n  }\n\n  this.err = exports.Z_OK;\n\n  switch (this.mode) {\n    case exports.DEFLATE:\n    case exports.DEFLATERAW:\n      this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n      break;\n    default:\n      break;\n  }\n\n  if (this.err !== exports.Z_OK) {\n    this._error('Failed to set dictionary');\n  }\n};\n\nZlib.prototype._reset = function () {\n  this.err = exports.Z_OK;\n\n  switch (this.mode) {\n    case exports.DEFLATE:\n    case exports.DEFLATERAW:\n    case exports.GZIP:\n      this.err = zlib_deflate.deflateReset(this.strm);\n      break;\n    case exports.INFLATE:\n    case exports.INFLATERAW:\n    case exports.GUNZIP:\n      this.err = zlib_inflate.inflateReset(this.strm);\n      break;\n    default:\n      break;\n  }\n\n  if (this.err !== exports.Z_OK) {\n    this._error('Failed to reset stream');\n  }\n};\n\nexports.Zlib = Zlib;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer, __webpack_require__(47)))\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports) {\n\nmodule.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports) {\n\nif (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n  /* next input byte */\n  this.input = null; // JS specific, because we have no pointers\n  this.next_in = 0;\n  /* number of bytes available at input */\n  this.avail_in = 0;\n  /* total number of input bytes read so far */\n  this.total_in = 0;\n  /* next output byte should be put there */\n  this.output = null; // JS specific, because we have no pointers\n  this.next_out = 0;\n  /* remaining free space at output */\n  this.avail_out = 0;\n  /* total number of bytes output so far */\n  this.total_out = 0;\n  /* last error message, NULL if no error */\n  this.msg = ''/*Z_NULL*/;\n  /* not visible by applications */\n  this.state = null;\n  /* best guess about the data type: binary or text */\n  this.data_type = 2/*Z_UNKNOWN*/;\n  /* adler32 value of the uncompressed data */\n  this.adler = 0;\n}\n\nmodule.exports = ZStream;\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils   = __webpack_require__(126);\nvar trees   = __webpack_require__(362);\nvar adler32 = __webpack_require__(247);\nvar crc32   = __webpack_require__(248);\nvar msg     = __webpack_require__(363);\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH      = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\nvar Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\n//var Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\n//var Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\n//var Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION      = 0;\n//var Z_BEST_SPEED          = 1;\n//var Z_BEST_COMPRESSION    = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED            = 1;\nvar Z_HUFFMAN_ONLY        = 2;\nvar Z_RLE                 = 3;\nvar Z_FIXED               = 4;\nvar Z_DEFAULT_STRATEGY    = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY              = 0;\n//var Z_TEXT                = 1;\n//var Z_ASCII               = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES       = 30;\n/* number of distance codes */\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE     = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS  = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE      = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE     = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n  strm.msg = msg[errorCode];\n  return errorCode;\n}\n\nfunction rank(f) {\n  return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n  var s = strm.state;\n\n  //_tr_flush_bits(s);\n  var len = s.pending;\n  if (len > strm.avail_out) {\n    len = strm.avail_out;\n  }\n  if (len === 0) { return; }\n\n  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n  strm.next_out += len;\n  s.pending_out += len;\n  strm.total_out += len;\n  strm.avail_out -= len;\n  s.pending -= len;\n  if (s.pending === 0) {\n    s.pending_out = 0;\n  }\n}\n\n\nfunction flush_block_only(s, last) {\n  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n  s.block_start = s.strstart;\n  flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n  s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n//  put_byte(s, (Byte)(b >> 8));\n//  put_byte(s, (Byte)(b & 0xff));\n  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n  s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read.  All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n  var len = strm.avail_in;\n\n  if (len > size) { len = size; }\n  if (len === 0) { return 0; }\n\n  strm.avail_in -= len;\n\n  // zmemcpy(buf, strm->next_in, len);\n  utils.arraySet(buf, strm.input, strm.next_in, len, start);\n  if (strm.state.wrap === 1) {\n    strm.adler = adler32(strm.adler, buf, len, start);\n  }\n\n  else if (strm.state.wrap === 2) {\n    strm.adler = crc32(strm.adler, buf, len, start);\n  }\n\n  strm.next_in += len;\n  strm.total_in += len;\n\n  return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n  var chain_length = s.max_chain_length;      /* max hash chain length */\n  var scan = s.strstart; /* current string */\n  var match;                       /* matched string */\n  var len;                           /* length of current match */\n  var best_len = s.prev_length;              /* best match length so far */\n  var nice_match = s.nice_match;             /* stop if match long enough */\n  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n  var _win = s.window; // shortcut\n\n  var wmask = s.w_mask;\n  var prev  = s.prev;\n\n  /* Stop when cur_match becomes <= limit. To simplify the code,\n   * we prevent matches with the string of window index 0.\n   */\n\n  var strend = s.strstart + MAX_MATCH;\n  var scan_end1  = _win[scan + best_len - 1];\n  var scan_end   = _win[scan + best_len];\n\n  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n   * It is easy to get rid of this optimization if necessary.\n   */\n  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n  /* Do not waste too much time if we already have a good match: */\n  if (s.prev_length >= s.good_match) {\n    chain_length >>= 2;\n  }\n  /* Do not look for matches beyond the end of the input. This is necessary\n   * to make deflate deterministic.\n   */\n  if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n  do {\n    // Assert(cur_match < s->strstart, \"no future\");\n    match = cur_match;\n\n    /* Skip to next match if the match length cannot increase\n     * or if the match length is less than 2.  Note that the checks below\n     * for insufficient lookahead only occur occasionally for performance\n     * reasons.  Therefore uninitialized memory will be accessed, and\n     * conditional jumps will be made that depend on those values.\n     * However the length of the match is limited to the lookahead, so\n     * the output of deflate is not affected by the uninitialized values.\n     */\n\n    if (_win[match + best_len]     !== scan_end  ||\n        _win[match + best_len - 1] !== scan_end1 ||\n        _win[match]                !== _win[scan] ||\n        _win[++match]              !== _win[scan + 1]) {\n      continue;\n    }\n\n    /* The check at best_len-1 can be removed because it will be made\n     * again later. (This heuristic is not always a win.)\n     * It is not necessary to compare scan[2] and match[2] since they\n     * are always equal when the other bytes match, given that\n     * the hash keys are equal and that HASH_BITS >= 8.\n     */\n    scan += 2;\n    match++;\n    // Assert(*scan == *match, \"match[2]?\");\n\n    /* We check for insufficient lookahead only every 8th comparison;\n     * the 256th check will be made at strstart+258.\n     */\n    do {\n      /*jshint noempty:false*/\n    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             scan < strend);\n\n    // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n    len = MAX_MATCH - (strend - scan);\n    scan = strend - MAX_MATCH;\n\n    if (len > best_len) {\n      s.match_start = cur_match;\n      best_len = len;\n      if (len >= nice_match) {\n        break;\n      }\n      scan_end1  = _win[scan + best_len - 1];\n      scan_end   = _win[scan + best_len];\n    }\n  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n  if (best_len <= s.lookahead) {\n    return best_len;\n  }\n  return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n *    At least one byte has been read, or avail_in == 0; reads are\n *    performed for at least two bytes (required for the zip translate_eol\n *    option -- not supported here).\n */\nfunction fill_window(s) {\n  var _w_size = s.w_size;\n  var p, n, m, more, str;\n\n  //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n  do {\n    more = s.window_size - s.lookahead - s.strstart;\n\n    // JS ints have 32 bit, block below not needed\n    /* Deal with !@#$% 64K limit: */\n    //if (sizeof(int) <= 2) {\n    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n    //        more = wsize;\n    //\n    //  } else if (more == (unsigned)(-1)) {\n    //        /* Very unlikely, but possible on 16 bit machine if\n    //         * strstart == 0 && lookahead == 1 (input done a byte at time)\n    //         */\n    //        more--;\n    //    }\n    //}\n\n\n    /* If the window is almost full and there is insufficient lookahead,\n     * move the upper half to the lower one to make room in the upper half.\n     */\n    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n      s.match_start -= _w_size;\n      s.strstart -= _w_size;\n      /* we now have strstart >= MAX_DIST */\n      s.block_start -= _w_size;\n\n      /* Slide the hash table (could be avoided with 32 bit values\n       at the expense of memory usage). We slide even when level == 0\n       to keep the hash table consistent if we switch back to level > 0\n       later. (Using level 0 permanently is not an optimal usage of\n       zlib, so we don't care about this pathological case.)\n       */\n\n      n = s.hash_size;\n      p = n;\n      do {\n        m = s.head[--p];\n        s.head[p] = (m >= _w_size ? m - _w_size : 0);\n      } while (--n);\n\n      n = _w_size;\n      p = n;\n      do {\n        m = s.prev[--p];\n        s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n        /* If n is not on any hash chain, prev[n] is garbage but\n         * its value will never be used.\n         */\n      } while (--n);\n\n      more += _w_size;\n    }\n    if (s.strm.avail_in === 0) {\n      break;\n    }\n\n    /* If there was no sliding:\n     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n     *    more == window_size - lookahead - strstart\n     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n     * => more >= window_size - 2*WSIZE + 2\n     * In the BIG_MEM or MMAP case (not yet supported),\n     *   window_size == input_size + MIN_LOOKAHEAD  &&\n     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n     * Otherwise, window_size == 2*WSIZE so more >= 2.\n     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n     */\n    //Assert(more >= 2, \"more < 2\");\n    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n    s.lookahead += n;\n\n    /* Initialize the hash value now that we have some input: */\n    if (s.lookahead + s.insert >= MIN_MATCH) {\n      str = s.strstart - s.insert;\n      s.ins_h = s.window[str];\n\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n//        Call update_hash() MIN_MATCH-3 more times\n//#endif\n      while (s.insert) {\n        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n        s.prev[str & s.w_mask] = s.head[s.ins_h];\n        s.head[s.ins_h] = str;\n        str++;\n        s.insert--;\n        if (s.lookahead + s.insert < MIN_MATCH) {\n          break;\n        }\n      }\n    }\n    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n     * but this is not important since only literal bytes will be emitted.\n     */\n\n  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n  /* If the WIN_INIT bytes after the end of the current data have never been\n   * written, then zero those bytes in order to avoid memory check reports of\n   * the use of uninitialized (or uninitialised as Julian writes) bytes by\n   * the longest match routines.  Update the high water mark for the next\n   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match\n   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n   */\n//  if (s.high_water < s.window_size) {\n//    var curr = s.strstart + s.lookahead;\n//    var init = 0;\n//\n//    if (s.high_water < curr) {\n//      /* Previous high water mark below current data -- zero WIN_INIT\n//       * bytes or up to end of window, whichever is less.\n//       */\n//      init = s.window_size - curr;\n//      if (init > WIN_INIT)\n//        init = WIN_INIT;\n//      zmemzero(s->window + curr, (unsigned)init);\n//      s->high_water = curr + init;\n//    }\n//    else if (s->high_water < (ulg)curr + WIN_INIT) {\n//      /* High water mark at or above current data, but below current data\n//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n//       * to end of window, whichever is less.\n//       */\n//      init = (ulg)curr + WIN_INIT - s->high_water;\n//      if (init > s->window_size - s->high_water)\n//        init = s->window_size - s->high_water;\n//      zmemzero(s->window + s->high_water, (unsigned)init);\n//      s->high_water += init;\n//    }\n//  }\n//\n//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n//    \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n   * to pending_buf_size, and each stored block has a 5 byte header:\n   */\n  var max_block_size = 0xffff;\n\n  if (max_block_size > s.pending_buf_size - 5) {\n    max_block_size = s.pending_buf_size - 5;\n  }\n\n  /* Copy as much as possible from input to output: */\n  for (;;) {\n    /* Fill the window as much as possible: */\n    if (s.lookahead <= 1) {\n\n      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n      //  s->block_start >= (long)s->w_size, \"slide too late\");\n//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n//        s.block_start >= s.w_size)) {\n//        throw  new Error(\"slide too late\");\n//      }\n\n      fill_window(s);\n      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n\n      if (s.lookahead === 0) {\n        break;\n      }\n      /* flush the current block */\n    }\n    //Assert(s->block_start >= 0L, \"block gone\");\n//    if (s.block_start < 0) throw new Error(\"block gone\");\n\n    s.strstart += s.lookahead;\n    s.lookahead = 0;\n\n    /* Emit a stored block if pending_buf will be full: */\n    var max_start = s.block_start + max_block_size;\n\n    if (s.strstart === 0 || s.strstart >= max_start) {\n      /* strstart == 0 is possible when wraparound on 16-bit machine */\n      s.lookahead = s.strstart - max_start;\n      s.strstart = max_start;\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n\n\n    }\n    /* Flush if we may have to slide, otherwise block_start may become\n     * negative and the data will be gone:\n     */\n    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n\n  s.insert = 0;\n\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n\n  if (s.strstart > s.block_start) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n  var hash_head;        /* head of the hash chain */\n  var bflush;           /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) {\n        break; /* flush the current block */\n      }\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     * At this point we have always match_length < MIN_MATCH\n     */\n    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n    }\n    if (s.match_length >= MIN_MATCH) {\n      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n      /*** _tr_tally_dist(s, s.strstart - s.match_start,\n                     s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n\n      /* Insert new strings in the hash table only if the match length\n       * is not too large. This saves time but degrades compression.\n       */\n      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n        s.match_length--; /* string at strstart already in table */\n        do {\n          s.strstart++;\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n          /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n           * always MIN_MATCH bytes ahead.\n           */\n        } while (--s.match_length !== 0);\n        s.strstart++;\n      } else\n      {\n        s.strstart += s.match_length;\n        s.match_length = 0;\n        s.ins_h = s.window[s.strstart];\n        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n//                Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n         * matter since it will be recomputed at next deflate call.\n         */\n      }\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n  var hash_head;          /* head of hash chain */\n  var bflush;              /* set if current block must be flushed */\n\n  var max_insert;\n\n  /* Process the input block. */\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     */\n    s.prev_length = s.match_length;\n    s.prev_match = s.match_start;\n    s.match_length = MIN_MATCH - 1;\n\n    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n\n      if (s.match_length <= 5 &&\n         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n        /* If prev_match is also MIN_MATCH, match_start is garbage\n         * but we will ignore the current match anyway.\n         */\n        s.match_length = MIN_MATCH - 1;\n      }\n    }\n    /* If there was a match at the previous step and the current\n     * match is not better, output the previous match:\n     */\n    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n      max_insert = s.strstart + s.lookahead - MIN_MATCH;\n      /* Do not insert strings in hash table beyond this. */\n\n      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n                     s.prev_length - MIN_MATCH, bflush);***/\n      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n      /* Insert in hash table all strings up to the end of the match.\n       * strstart-1 and strstart are already inserted. If there is not\n       * enough lookahead, the last two strings are not inserted in\n       * the hash table.\n       */\n      s.lookahead -= s.prev_length - 1;\n      s.prev_length -= 2;\n      do {\n        if (++s.strstart <= max_insert) {\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n        }\n      } while (--s.prev_length !== 0);\n      s.match_available = 0;\n      s.match_length = MIN_MATCH - 1;\n      s.strstart++;\n\n      if (bflush) {\n        /*** FLUSH_BLOCK(s, 0); ***/\n        flush_block_only(s, false);\n        if (s.strm.avail_out === 0) {\n          return BS_NEED_MORE;\n        }\n        /***/\n      }\n\n    } else if (s.match_available) {\n      /* If there was no match at the previous position, output a\n       * single literal. If there was a match but the current match\n       * is longer, truncate the previous match to a single literal.\n       */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n      if (bflush) {\n        /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n        flush_block_only(s, false);\n        /***/\n      }\n      s.strstart++;\n      s.lookahead--;\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n    } else {\n      /* There is no previous match to compare with, wait for\n       * the next step to decide.\n       */\n      s.match_available = 1;\n      s.strstart++;\n      s.lookahead--;\n    }\n  }\n  //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n  if (s.match_available) {\n    //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n    s.match_available = 0;\n  }\n  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one.  Do not maintain a hash table.  (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n  var bflush;            /* set if current block must be flushed */\n  var prev;              /* byte at distance one to match */\n  var scan, strend;      /* scan goes up to strend for length of run */\n\n  var _win = s.window;\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the longest run, plus one for the unrolled loop.\n     */\n    if (s.lookahead <= MAX_MATCH) {\n      fill_window(s);\n      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* See how many times the previous byte repeats */\n    s.match_length = 0;\n    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n      scan = s.strstart - 1;\n      prev = _win[scan];\n      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n        strend = s.strstart + MAX_MATCH;\n        do {\n          /*jshint noempty:false*/\n        } while (prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 scan < strend);\n        s.match_length = MAX_MATCH - (strend - scan);\n        if (s.match_length > s.lookahead) {\n          s.match_length = s.lookahead;\n        }\n      }\n      //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n    }\n\n    /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n    if (s.match_length >= MIN_MATCH) {\n      //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n      s.strstart += s.match_length;\n      s.match_length = 0;\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n  var bflush;             /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we have a literal to write. */\n    if (s.lookahead === 0) {\n      fill_window(s);\n      if (s.lookahead === 0) {\n        if (flush === Z_NO_FLUSH) {\n          return BS_NEED_MORE;\n        }\n        break;      /* flush the current block */\n      }\n    }\n\n    /* Output a literal byte */\n    s.match_length = 0;\n    //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n    s.lookahead--;\n    s.strstart++;\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n  this.good_length = good_length;\n  this.max_lazy = max_lazy;\n  this.nice_length = nice_length;\n  this.max_chain = max_chain;\n  this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n  /*      good lazy nice chain */\n  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */\n  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */\n  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */\n  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */\n\n  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */\n  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */\n  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */\n  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */\n  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */\n  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n  s.window_size = 2 * s.w_size;\n\n  /*** CLEAR_HASH(s); ***/\n  zero(s.head); // Fill with NIL (= 0);\n\n  /* Set the default configuration parameters:\n   */\n  s.max_lazy_match = configuration_table[s.level].max_lazy;\n  s.good_match = configuration_table[s.level].good_length;\n  s.nice_match = configuration_table[s.level].nice_length;\n  s.max_chain_length = configuration_table[s.level].max_chain;\n\n  s.strstart = 0;\n  s.block_start = 0;\n  s.lookahead = 0;\n  s.insert = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n  this.strm = null;            /* pointer back to this zlib stream */\n  this.status = 0;            /* as the name implies */\n  this.pending_buf = null;      /* output still pending */\n  this.pending_buf_size = 0;  /* size of pending_buf */\n  this.pending_out = 0;       /* next pending byte to output to the stream */\n  this.pending = 0;           /* nb of bytes in the pending buffer */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.gzhead = null;         /* gzip header information to write */\n  this.gzindex = 0;           /* where in extra, name, or comment */\n  this.method = Z_DEFLATED; /* can only be DEFLATED */\n  this.last_flush = -1;   /* value of flush param for previous deflate call */\n\n  this.w_size = 0;  /* LZ77 window size (32K by default) */\n  this.w_bits = 0;  /* log2(w_size)  (8..16) */\n  this.w_mask = 0;  /* w_size - 1 */\n\n  this.window = null;\n  /* Sliding window. Input bytes are read into the second half of the window,\n   * and move to the first half later to keep a dictionary of at least wSize\n   * bytes. With this organization, matches are limited to a distance of\n   * wSize-MAX_MATCH bytes, but this ensures that IO is always\n   * performed with a length multiple of the block size.\n   */\n\n  this.window_size = 0;\n  /* Actual size of window: 2*wSize, except when the user input buffer\n   * is directly used as sliding window.\n   */\n\n  this.prev = null;\n  /* Link to older string with same hash index. To limit the size of this\n   * array to 64K, this link is maintained only for the last 32K strings.\n   * An index in this array is thus a window index modulo 32K.\n   */\n\n  this.head = null;   /* Heads of the hash chains or NIL. */\n\n  this.ins_h = 0;       /* hash index of string to be inserted */\n  this.hash_size = 0;   /* number of elements in hash table */\n  this.hash_bits = 0;   /* log2(hash_size) */\n  this.hash_mask = 0;   /* hash_size-1 */\n\n  this.hash_shift = 0;\n  /* Number of bits by which ins_h must be shifted at each input\n   * step. It must be such that after MIN_MATCH steps, the oldest\n   * byte no longer takes part in the hash key, that is:\n   *   hash_shift * MIN_MATCH >= hash_bits\n   */\n\n  this.block_start = 0;\n  /* Window position at the beginning of the current output block. Gets\n   * negative when the window is moved backwards.\n   */\n\n  this.match_length = 0;      /* length of best match */\n  this.prev_match = 0;        /* previous match */\n  this.match_available = 0;   /* set if previous match exists */\n  this.strstart = 0;          /* start of string to insert */\n  this.match_start = 0;       /* start of matching string */\n  this.lookahead = 0;         /* number of valid bytes ahead in window */\n\n  this.prev_length = 0;\n  /* Length of the best match at previous step. Matches not greater than this\n   * are discarded. This is used in the lazy match evaluation.\n   */\n\n  this.max_chain_length = 0;\n  /* To speed up deflation, hash chains are never searched beyond this\n   * length.  A higher limit improves compression ratio but degrades the\n   * speed.\n   */\n\n  this.max_lazy_match = 0;\n  /* Attempt to find a better match only when the current match is strictly\n   * smaller than this value. This mechanism is used only for compression\n   * levels >= 4.\n   */\n  // That's alias to max_lazy_match, don't use directly\n  //this.max_insert_length = 0;\n  /* Insert new strings in the hash table only if the match length is not\n   * greater than this length. This saves time but degrades compression.\n   * max_insert_length is used only for compression levels <= 3.\n   */\n\n  this.level = 0;     /* compression level (1..9) */\n  this.strategy = 0;  /* favor or force Huffman coding*/\n\n  this.good_match = 0;\n  /* Use a faster search when the previous match is longer than this */\n\n  this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n              /* used by trees.c: */\n\n  /* Didn't use ct_data typedef below to suppress compiler warning */\n\n  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */\n  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */\n\n  // Use flat array of DOUBLE size, with interleaved fata,\n  // because JS does not support effective\n  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);\n  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);\n  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);\n  zero(this.dyn_ltree);\n  zero(this.dyn_dtree);\n  zero(this.bl_tree);\n\n  this.l_desc   = null;         /* desc. for literal tree */\n  this.d_desc   = null;         /* desc. for distance tree */\n  this.bl_desc  = null;         /* desc. for bit length tree */\n\n  //ush bl_count[MAX_BITS+1];\n  this.bl_count = new utils.Buf16(MAX_BITS + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */\n  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */\n  zero(this.heap);\n\n  this.heap_len = 0;               /* number of elements in the heap */\n  this.heap_max = 0;               /* element of largest frequency */\n  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n   * The same heap array is used to build all trees.\n   */\n\n  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n  zero(this.depth);\n  /* Depth of each subtree used as tie breaker for trees of equal frequency\n   */\n\n  this.l_buf = 0;          /* buffer index for literals or lengths */\n\n  this.lit_bufsize = 0;\n  /* Size of match buffer for literals/lengths.  There are 4 reasons for\n   * limiting lit_bufsize to 64K:\n   *   - frequencies can be kept in 16 bit counters\n   *   - if compression is not successful for the first block, all input\n   *     data is still in the window so we can still emit a stored block even\n   *     when input comes from standard input.  (This can also be done for\n   *     all blocks if lit_bufsize is not greater than 32K.)\n   *   - if compression is not successful for a file smaller than 64K, we can\n   *     even emit a stored file instead of a stored block (saving 5 bytes).\n   *     This is applicable only for zip (not gzip or zlib).\n   *   - creating new Huffman trees less frequently may not provide fast\n   *     adaptation to changes in the input data statistics. (Take for\n   *     example a binary file with poorly compressible code followed by\n   *     a highly compressible string table.) Smaller buffer sizes give\n   *     fast adaptation but have of course the overhead of transmitting\n   *     trees more frequently.\n   *   - I can't count above 4\n   */\n\n  this.last_lit = 0;      /* running index in l_buf */\n\n  this.d_buf = 0;\n  /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n   * the same number of elements. To use different lengths, an extra flag\n   * array would be necessary.\n   */\n\n  this.opt_len = 0;       /* bit length of current block with optimal trees */\n  this.static_len = 0;    /* bit length of current block with static trees */\n  this.matches = 0;       /* number of string matches in current block */\n  this.insert = 0;        /* bytes at end of window left to insert */\n\n\n  this.bi_buf = 0;\n  /* Output buffer. bits are inserted starting at the bottom (least\n   * significant bits).\n   */\n  this.bi_valid = 0;\n  /* Number of valid bits in bi_buf.  All bits above the last valid bit\n   * are always zero.\n   */\n\n  // Used for window memory init. We safely ignore it for JS. That makes\n  // sense only for pointers and memory check tools.\n  //this.high_water = 0;\n  /* High water mark offset in window for initialized bytes -- bytes above\n   * this are set to zero in order to avoid memory check warnings when\n   * longest match routines access bytes past the input.  This is then\n   * updated to the new high water mark.\n   */\n}\n\n\nfunction deflateResetKeep(strm) {\n  var s;\n\n  if (!strm || !strm.state) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.total_in = strm.total_out = 0;\n  strm.data_type = Z_UNKNOWN;\n\n  s = strm.state;\n  s.pending = 0;\n  s.pending_out = 0;\n\n  if (s.wrap < 0) {\n    s.wrap = -s.wrap;\n    /* was made negative by deflate(..., Z_FINISH); */\n  }\n  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n  strm.adler = (s.wrap === 2) ?\n    0  // crc32(0, Z_NULL, 0)\n  :\n    1; // adler32(0, Z_NULL, 0)\n  s.last_flush = Z_NO_FLUSH;\n  trees._tr_init(s);\n  return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n  var ret = deflateResetKeep(strm);\n  if (ret === Z_OK) {\n    lm_init(strm.state);\n  }\n  return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n  strm.state.gzhead = head;\n  return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n  if (!strm) { // === Z_NULL\n    return Z_STREAM_ERROR;\n  }\n  var wrap = 1;\n\n  if (level === Z_DEFAULT_COMPRESSION) {\n    level = 6;\n  }\n\n  if (windowBits < 0) { /* suppress zlib wrapper */\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n\n  else if (windowBits > 15) {\n    wrap = 2;           /* write gzip wrapper instead */\n    windowBits -= 16;\n  }\n\n\n  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n    strategy < 0 || strategy > Z_FIXED) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n\n  if (windowBits === 8) {\n    windowBits = 9;\n  }\n  /* until 256-byte window bug fixed */\n\n  var s = new DeflateState();\n\n  strm.state = s;\n  s.strm = strm;\n\n  s.wrap = wrap;\n  s.gzhead = null;\n  s.w_bits = windowBits;\n  s.w_size = 1 << s.w_bits;\n  s.w_mask = s.w_size - 1;\n\n  s.hash_bits = memLevel + 7;\n  s.hash_size = 1 << s.hash_bits;\n  s.hash_mask = s.hash_size - 1;\n  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n  s.window = new utils.Buf8(s.w_size * 2);\n  s.head = new utils.Buf16(s.hash_size);\n  s.prev = new utils.Buf16(s.w_size);\n\n  // Don't need mem init magic for JS.\n  //s.high_water = 0;  /* nothing written to s->window yet */\n\n  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n  s.pending_buf_size = s.lit_bufsize * 4;\n\n  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n  //s->pending_buf = (uchf *) overlay;\n  s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n  s.d_buf = 1 * s.lit_bufsize;\n\n  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n  s.l_buf = (1 + 2) * s.lit_bufsize;\n\n  s.level = level;\n  s.strategy = strategy;\n  s.method = method;\n\n  return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n  var old_flush, s;\n  var beg, val; // for gzip header write only\n\n  if (!strm || !strm.state ||\n    flush > Z_BLOCK || flush < 0) {\n    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n  }\n\n  s = strm.state;\n\n  if (!strm.output ||\n      (!strm.input && strm.avail_in !== 0) ||\n      (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n  }\n\n  s.strm = strm; /* just in case */\n  old_flush = s.last_flush;\n  s.last_flush = flush;\n\n  /* Write the header */\n  if (s.status === INIT_STATE) {\n\n    if (s.wrap === 2) { // GZIP header\n      strm.adler = 0;  //crc32(0L, Z_NULL, 0);\n      put_byte(s, 31);\n      put_byte(s, 139);\n      put_byte(s, 8);\n      if (!s.gzhead) { // s->gzhead == Z_NULL\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, OS_CODE);\n        s.status = BUSY_STATE;\n      }\n      else {\n        put_byte(s, (s.gzhead.text ? 1 : 0) +\n                    (s.gzhead.hcrc ? 2 : 0) +\n                    (!s.gzhead.extra ? 0 : 4) +\n                    (!s.gzhead.name ? 0 : 8) +\n                    (!s.gzhead.comment ? 0 : 16)\n        );\n        put_byte(s, s.gzhead.time & 0xff);\n        put_byte(s, (s.gzhead.time >> 8) & 0xff);\n        put_byte(s, (s.gzhead.time >> 16) & 0xff);\n        put_byte(s, (s.gzhead.time >> 24) & 0xff);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, s.gzhead.os & 0xff);\n        if (s.gzhead.extra && s.gzhead.extra.length) {\n          put_byte(s, s.gzhead.extra.length & 0xff);\n          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n        }\n        if (s.gzhead.hcrc) {\n          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n        }\n        s.gzindex = 0;\n        s.status = EXTRA_STATE;\n      }\n    }\n    else // DEFLATE header\n    {\n      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n      var level_flags = -1;\n\n      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n        level_flags = 0;\n      } else if (s.level < 6) {\n        level_flags = 1;\n      } else if (s.level === 6) {\n        level_flags = 2;\n      } else {\n        level_flags = 3;\n      }\n      header |= (level_flags << 6);\n      if (s.strstart !== 0) { header |= PRESET_DICT; }\n      header += 31 - (header % 31);\n\n      s.status = BUSY_STATE;\n      putShortMSB(s, header);\n\n      /* Save the adler32 of the preset dictionary: */\n      if (s.strstart !== 0) {\n        putShortMSB(s, strm.adler >>> 16);\n        putShortMSB(s, strm.adler & 0xffff);\n      }\n      strm.adler = 1; // adler32(0L, Z_NULL, 0);\n    }\n  }\n\n//#ifdef GZIP\n  if (s.status === EXTRA_STATE) {\n    if (s.gzhead.extra/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n\n      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            break;\n          }\n        }\n        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n        s.gzindex++;\n      }\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (s.gzindex === s.gzhead.extra.length) {\n        s.gzindex = 0;\n        s.status = NAME_STATE;\n      }\n    }\n    else {\n      s.status = NAME_STATE;\n    }\n  }\n  if (s.status === NAME_STATE) {\n    if (s.gzhead.name/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.name.length) {\n          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.gzindex = 0;\n        s.status = COMMENT_STATE;\n      }\n    }\n    else {\n      s.status = COMMENT_STATE;\n    }\n  }\n  if (s.status === COMMENT_STATE) {\n    if (s.gzhead.comment/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.comment.length) {\n          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.status = HCRC_STATE;\n      }\n    }\n    else {\n      s.status = HCRC_STATE;\n    }\n  }\n  if (s.status === HCRC_STATE) {\n    if (s.gzhead.hcrc) {\n      if (s.pending + 2 > s.pending_buf_size) {\n        flush_pending(strm);\n      }\n      if (s.pending + 2 <= s.pending_buf_size) {\n        put_byte(s, strm.adler & 0xff);\n        put_byte(s, (strm.adler >> 8) & 0xff);\n        strm.adler = 0; //crc32(0L, Z_NULL, 0);\n        s.status = BUSY_STATE;\n      }\n    }\n    else {\n      s.status = BUSY_STATE;\n    }\n  }\n//#endif\n\n  /* Flush as much pending output as possible */\n  if (s.pending !== 0) {\n    flush_pending(strm);\n    if (strm.avail_out === 0) {\n      /* Since avail_out is 0, deflate will be called again with\n       * more output space, but possibly with both pending and\n       * avail_in equal to zero. There won't be anything to do,\n       * but this is not an error situation so make sure we\n       * return OK instead of BUF_ERROR at next call of deflate:\n       */\n      s.last_flush = -1;\n      return Z_OK;\n    }\n\n    /* Make sure there is something to do and avoid duplicate consecutive\n     * flushes. For repeated and useless calls with Z_FINISH, we keep\n     * returning Z_STREAM_END instead of Z_BUF_ERROR.\n     */\n  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n    flush !== Z_FINISH) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* User must not provide more input after the first FINISH: */\n  if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* Start a new block or continue the current one.\n   */\n  if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n      (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n        configuration_table[s.level].func(s, flush));\n\n    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n      s.status = FINISH_STATE;\n    }\n    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n      if (strm.avail_out === 0) {\n        s.last_flush = -1;\n        /* avoid BUF_ERROR next call, see above */\n      }\n      return Z_OK;\n      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n       * of deflate should use the same flush parameter to make sure\n       * that the flush is complete. So we don't have to output an\n       * empty block here, this will be done at next call. This also\n       * ensures that for a very small output buffer, we emit at most\n       * one empty block.\n       */\n    }\n    if (bstate === BS_BLOCK_DONE) {\n      if (flush === Z_PARTIAL_FLUSH) {\n        trees._tr_align(s);\n      }\n      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n        trees._tr_stored_block(s, 0, 0, false);\n        /* For a full flush, this empty block will be recognized\n         * as a special marker by inflate_sync().\n         */\n        if (flush === Z_FULL_FLUSH) {\n          /*** CLEAR_HASH(s); ***/             /* forget history */\n          zero(s.head); // Fill with NIL (= 0);\n\n          if (s.lookahead === 0) {\n            s.strstart = 0;\n            s.block_start = 0;\n            s.insert = 0;\n          }\n        }\n      }\n      flush_pending(strm);\n      if (strm.avail_out === 0) {\n        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n        return Z_OK;\n      }\n    }\n  }\n  //Assert(strm->avail_out > 0, \"bug2\");\n  //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n  if (flush !== Z_FINISH) { return Z_OK; }\n  if (s.wrap <= 0) { return Z_STREAM_END; }\n\n  /* Write the trailer */\n  if (s.wrap === 2) {\n    put_byte(s, strm.adler & 0xff);\n    put_byte(s, (strm.adler >> 8) & 0xff);\n    put_byte(s, (strm.adler >> 16) & 0xff);\n    put_byte(s, (strm.adler >> 24) & 0xff);\n    put_byte(s, strm.total_in & 0xff);\n    put_byte(s, (strm.total_in >> 8) & 0xff);\n    put_byte(s, (strm.total_in >> 16) & 0xff);\n    put_byte(s, (strm.total_in >> 24) & 0xff);\n  }\n  else\n  {\n    putShortMSB(s, strm.adler >>> 16);\n    putShortMSB(s, strm.adler & 0xffff);\n  }\n\n  flush_pending(strm);\n  /* If avail_out is zero, the application will call deflate again\n   * to flush the rest.\n   */\n  if (s.wrap > 0) { s.wrap = -s.wrap; }\n  /* write the trailer only once! */\n  return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n  var status;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  status = strm.state.status;\n  if (status !== INIT_STATE &&\n    status !== EXTRA_STATE &&\n    status !== NAME_STATE &&\n    status !== COMMENT_STATE &&\n    status !== HCRC_STATE &&\n    status !== BUSY_STATE &&\n    status !== FINISH_STATE\n  ) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.state = null;\n\n  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n  var dictLength = dictionary.length;\n\n  var s;\n  var str, n;\n  var wrap;\n  var avail;\n  var next;\n  var input;\n  var tmpDict;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  s = strm.state;\n  wrap = s.wrap;\n\n  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n    return Z_STREAM_ERROR;\n  }\n\n  /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n  if (wrap === 1) {\n    /* adler32(strm->adler, dictionary, dictLength); */\n    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n  }\n\n  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */\n\n  /* if dictionary would fill window, just replace the history */\n  if (dictLength >= s.w_size) {\n    if (wrap === 0) {            /* already empty otherwise */\n      /*** CLEAR_HASH(s); ***/\n      zero(s.head); // Fill with NIL (= 0);\n      s.strstart = 0;\n      s.block_start = 0;\n      s.insert = 0;\n    }\n    /* use the tail */\n    // dictionary = dictionary.slice(dictLength - s.w_size);\n    tmpDict = new utils.Buf8(s.w_size);\n    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n    dictionary = tmpDict;\n    dictLength = s.w_size;\n  }\n  /* insert dictionary into window and hash */\n  avail = strm.avail_in;\n  next = strm.next_in;\n  input = strm.input;\n  strm.avail_in = dictLength;\n  strm.next_in = 0;\n  strm.input = dictionary;\n  fill_window(s);\n  while (s.lookahead >= MIN_MATCH) {\n    str = s.strstart;\n    n = s.lookahead - (MIN_MATCH - 1);\n    do {\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n      s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n      s.head[s.ins_h] = str;\n      str++;\n    } while (--n);\n    s.strstart = str;\n    s.lookahead = MIN_MATCH - 1;\n    fill_window(s);\n  }\n  s.strstart += s.lookahead;\n  s.block_start = s.strstart;\n  s.insert = s.lookahead;\n  s.lookahead = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  strm.next_in = next;\n  strm.input = input;\n  strm.avail_in = avail;\n  s.wrap = wrap;\n  return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = __webpack_require__(126);\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED          = 1;\n//var Z_HUFFMAN_ONLY      = 2;\n//var Z_RLE               = 3;\nvar Z_FIXED               = 4;\n//var Z_DEFAULT_STRATEGY  = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY              = 0;\nvar Z_TEXT                = 1;\n//var Z_ASCII             = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES    = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH    = 3;\nvar MAX_MATCH    = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES       = 30;\n/* number of distance codes */\n\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE     = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS      = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size      = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK   = 256;\n/* end of block literal code */\n\nvar REP_3_6     = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10   = 17;\n/* repeat a zero length 3-10 times  (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times  (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits =   /* extra bits for each length code */\n  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits =   /* extra bits for each distance code */\n  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits =  /* extra bits for each bit length code */\n  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree  = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree  = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code    = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length   = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist     = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n  this.static_tree  = static_tree;  /* static tree or NULL */\n  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */\n  this.extra_base   = extra_base;   /* base index for extra_bits */\n  this.elems        = elems;        /* max number of elements in the tree */\n  this.max_length   = max_length;   /* max bit length for the codes */\n\n  // show if `static_tree` has data or dummy - needed for monomorphic objects\n  this.has_stree    = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n  this.dyn_tree = dyn_tree;     /* the dynamic tree */\n  this.max_code = 0;            /* largest code with non zero frequency */\n  this.stat_desc = stat_desc;   /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n//    put_byte(s, (uch)((w) & 0xff));\n//    put_byte(s, (uch)((ush)(w) >> 8));\n  s.pending_buf[s.pending++] = (w) & 0xff;\n  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n  if (s.bi_valid > (Buf_size - length)) {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    put_short(s, s.bi_buf);\n    s.bi_buf = value >> (Buf_size - s.bi_valid);\n    s.bi_valid += length - Buf_size;\n  } else {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    s.bi_valid += length;\n  }\n}\n\n\nfunction send_code(s, c, tree) {\n  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n  var res = 0;\n  do {\n    res |= code & 1;\n    code >>>= 1;\n    res <<= 1;\n  } while (--len > 0);\n  return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n  if (s.bi_valid === 16) {\n    put_short(s, s.bi_buf);\n    s.bi_buf = 0;\n    s.bi_valid = 0;\n\n  } else if (s.bi_valid >= 8) {\n    s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n    s.bi_buf >>= 8;\n    s.bi_valid -= 8;\n  }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n *    above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n *     array bl_count contains the frequencies for each bit length.\n *     The length opt_len is updated; static_len is also updated if stree is\n *     not null.\n */\nfunction gen_bitlen(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc;    /* the tree descriptor */\n{\n  var tree            = desc.dyn_tree;\n  var max_code        = desc.max_code;\n  var stree           = desc.stat_desc.static_tree;\n  var has_stree       = desc.stat_desc.has_stree;\n  var extra           = desc.stat_desc.extra_bits;\n  var base            = desc.stat_desc.extra_base;\n  var max_length      = desc.stat_desc.max_length;\n  var h;              /* heap index */\n  var n, m;           /* iterate over the tree elements */\n  var bits;           /* bit length */\n  var xbits;          /* extra bits */\n  var f;              /* frequency */\n  var overflow = 0;   /* number of elements with bit length too large */\n\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    s.bl_count[bits] = 0;\n  }\n\n  /* In a first pass, compute the optimal bit lengths (which may\n   * overflow in the case of the bit length tree).\n   */\n  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n    n = s.heap[h];\n    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n    if (bits > max_length) {\n      bits = max_length;\n      overflow++;\n    }\n    tree[n * 2 + 1]/*.Len*/ = bits;\n    /* We overwrite tree[n].Dad which is no longer needed */\n\n    if (n > max_code) { continue; } /* not a leaf node */\n\n    s.bl_count[bits]++;\n    xbits = 0;\n    if (n >= base) {\n      xbits = extra[n - base];\n    }\n    f = tree[n * 2]/*.Freq*/;\n    s.opt_len += f * (bits + xbits);\n    if (has_stree) {\n      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n    }\n  }\n  if (overflow === 0) { return; }\n\n  // Trace((stderr,\"\\nbit length overflow\\n\"));\n  /* This happens for example on obj2 and pic of the Calgary corpus */\n\n  /* Find the first bit length which could increase: */\n  do {\n    bits = max_length - 1;\n    while (s.bl_count[bits] === 0) { bits--; }\n    s.bl_count[bits]--;      /* move one leaf down the tree */\n    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n    s.bl_count[max_length]--;\n    /* The brother of the overflow item also moves one step up,\n     * but this does not affect bl_count[max_length]\n     */\n    overflow -= 2;\n  } while (overflow > 0);\n\n  /* Now recompute all bit lengths, scanning in increasing frequency.\n   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n   * lengths instead of fixing only the wrong ones. This idea is taken\n   * from 'ar' written by Haruhiko Okumura.)\n   */\n  for (bits = max_length; bits !== 0; bits--) {\n    n = s.bl_count[bits];\n    while (n !== 0) {\n      m = s.heap[--h];\n      if (m > max_code) { continue; }\n      if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n        // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n        tree[m * 2 + 1]/*.Len*/ = bits;\n      }\n      n--;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n *     zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n//    ct_data *tree;             /* the tree to decorate */\n//    int max_code;              /* largest code with non zero frequency */\n//    ushf *bl_count;            /* number of codes at each bit length */\n{\n  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n  var code = 0;              /* running code value */\n  var bits;                  /* bit index */\n  var n;                     /* code index */\n\n  /* The distribution counts are first used to generate the code values\n   * without bit reversal.\n   */\n  for (bits = 1; bits <= MAX_BITS; bits++) {\n    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n  }\n  /* Check that the bit counts in bl_count are consistent. The last code\n   * must be all ones.\n   */\n  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n  //        \"inconsistent bit counts\");\n  //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n  for (n = 0;  n <= max_code; n++) {\n    var len = tree[n * 2 + 1]/*.Len*/;\n    if (len === 0) { continue; }\n    /* Now reverse the bits */\n    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n    //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n  }\n}\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nfunction tr_static_init() {\n  var n;        /* iterates over tree elements */\n  var bits;     /* bit counter */\n  var length;   /* length value */\n  var code;     /* code value */\n  var dist;     /* distance index */\n  var bl_count = new Array(MAX_BITS + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  // do check in _tr_init()\n  //if (static_init_done) return;\n\n  /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n  static_l_desc.static_tree = static_ltree;\n  static_l_desc.extra_bits = extra_lbits;\n  static_d_desc.static_tree = static_dtree;\n  static_d_desc.extra_bits = extra_dbits;\n  static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n  /* Initialize the mapping length (0..255) -> length code (0..28) */\n  length = 0;\n  for (code = 0; code < LENGTH_CODES - 1; code++) {\n    base_length[code] = length;\n    for (n = 0; n < (1 << extra_lbits[code]); n++) {\n      _length_code[length++] = code;\n    }\n  }\n  //Assert (length == 256, \"tr_static_init: length != 256\");\n  /* Note that the length 255 (match length 258) can be represented\n   * in two different ways: code 284 + 5 bits or code 285, so we\n   * overwrite length_code[255] to use the best encoding:\n   */\n  _length_code[length - 1] = code;\n\n  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n  dist = 0;\n  for (code = 0; code < 16; code++) {\n    base_dist[code] = dist;\n    for (n = 0; n < (1 << extra_dbits[code]); n++) {\n      _dist_code[dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: dist != 256\");\n  dist >>= 7; /* from now on, all distances are divided by 128 */\n  for (; code < D_CODES; code++) {\n    base_dist[code] = dist << 7;\n    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n      _dist_code[256 + dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n  /* Construct the codes of the static literal tree */\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    bl_count[bits] = 0;\n  }\n\n  n = 0;\n  while (n <= 143) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  while (n <= 255) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 9;\n    n++;\n    bl_count[9]++;\n  }\n  while (n <= 279) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 7;\n    n++;\n    bl_count[7]++;\n  }\n  while (n <= 287) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  /* Codes 286 and 287 do not exist, but we must include them in the\n   * tree construction to get a canonical Huffman tree (longest code\n   * all ones)\n   */\n  gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n  /* The static distance tree is trivial: */\n  for (n = 0; n < D_CODES; n++) {\n    static_dtree[n * 2 + 1]/*.Len*/ = 5;\n    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n  }\n\n  // Now data ready and we can init static trees\n  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);\n  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);\n\n  //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n  var n; /* iterates over tree elements */\n\n  /* Initialize the trees. */\n  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n  s.opt_len = s.static_len = 0;\n  s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n  if (s.bi_valid > 8) {\n    put_short(s, s.bi_buf);\n  } else if (s.bi_valid > 0) {\n    //put_byte(s, (Byte)s->bi_buf);\n    s.pending_buf[s.pending++] = s.bi_buf;\n  }\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf    *buf;    /* the input data */\n//unsigned len;     /* its length */\n//int      header;  /* true if block header must be written */\n{\n  bi_windup(s);        /* align on byte boundary */\n\n  if (header) {\n    put_short(s, len);\n    put_short(s, ~len);\n  }\n//  while (len--) {\n//    put_byte(s, *buf++);\n//  }\n  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n  s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n  var _n2 = n * 2;\n  var _m2 = m * 2;\n  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n//    deflate_state *s;\n//    ct_data *tree;  /* the tree to restore */\n//    int k;               /* node to move down */\n{\n  var v = s.heap[k];\n  var j = k << 1;  /* left son of k */\n  while (j <= s.heap_len) {\n    /* Set j to the smallest of the two sons: */\n    if (j < s.heap_len &&\n      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n      j++;\n    }\n    /* Exit if v is smaller than both sons */\n    if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n    /* Exchange v with the smallest son */\n    s.heap[k] = s.heap[j];\n    k = j;\n\n    /* And continue down the tree, setting j to the left son of k */\n    j <<= 1;\n  }\n  s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n//    deflate_state *s;\n//    const ct_data *ltree; /* literal tree */\n//    const ct_data *dtree; /* distance tree */\n{\n  var dist;           /* distance of matched string */\n  var lc;             /* match length or unmatched char (if dist == 0) */\n  var lx = 0;         /* running index in l_buf */\n  var code;           /* the code to send */\n  var extra;          /* number of extra bits to send */\n\n  if (s.last_lit !== 0) {\n    do {\n      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n      lc = s.pending_buf[s.l_buf + lx];\n      lx++;\n\n      if (dist === 0) {\n        send_code(s, lc, ltree); /* send a literal byte */\n        //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n      } else {\n        /* Here, lc is the match length - MIN_MATCH */\n        code = _length_code[lc];\n        send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n        extra = extra_lbits[code];\n        if (extra !== 0) {\n          lc -= base_length[code];\n          send_bits(s, lc, extra);       /* send the extra length bits */\n        }\n        dist--; /* dist is now the match distance - 1 */\n        code = d_code(dist);\n        //Assert (code < D_CODES, \"bad d_code\");\n\n        send_code(s, code, dtree);       /* send the distance code */\n        extra = extra_dbits[code];\n        if (extra !== 0) {\n          dist -= base_dist[code];\n          send_bits(s, dist, extra);   /* send the extra distance bits */\n        }\n      } /* literal or match pair ? */\n\n      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n      //       \"pendingBuf overflow\");\n\n    } while (lx < s.last_lit);\n  }\n\n  send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n *     and corresponding code. The length opt_len is updated; static_len is\n *     also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc; /* the tree descriptor */\n{\n  var tree     = desc.dyn_tree;\n  var stree    = desc.stat_desc.static_tree;\n  var has_stree = desc.stat_desc.has_stree;\n  var elems    = desc.stat_desc.elems;\n  var n, m;          /* iterate over heap elements */\n  var max_code = -1; /* largest code with non zero frequency */\n  var node;          /* new node being created */\n\n  /* Construct the initial heap, with least frequent element in\n   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n   * heap[0] is not used.\n   */\n  s.heap_len = 0;\n  s.heap_max = HEAP_SIZE;\n\n  for (n = 0; n < elems; n++) {\n    if (tree[n * 2]/*.Freq*/ !== 0) {\n      s.heap[++s.heap_len] = max_code = n;\n      s.depth[n] = 0;\n\n    } else {\n      tree[n * 2 + 1]/*.Len*/ = 0;\n    }\n  }\n\n  /* The pkzip format requires that at least one distance code exists,\n   * and that at least one bit should be sent even if there is only one\n   * possible code. So to avoid special checks later on we force at least\n   * two codes of non zero frequency.\n   */\n  while (s.heap_len < 2) {\n    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n    tree[node * 2]/*.Freq*/ = 1;\n    s.depth[node] = 0;\n    s.opt_len--;\n\n    if (has_stree) {\n      s.static_len -= stree[node * 2 + 1]/*.Len*/;\n    }\n    /* node is 0 or 1 so it does not have extra bits */\n  }\n  desc.max_code = max_code;\n\n  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n   * establish sub-heaps of increasing lengths:\n   */\n  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n  /* Construct the Huffman tree by repeatedly combining the least two\n   * frequent nodes.\n   */\n  node = elems;              /* next internal node of the tree */\n  do {\n    //pqremove(s, tree, n);  /* n = node of least frequency */\n    /*** pqremove ***/\n    n = s.heap[1/*SMALLEST*/];\n    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n    /***/\n\n    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n    s.heap[--s.heap_max] = m;\n\n    /* Create a new node father of n and m */\n    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n    /* and insert the new node in the heap */\n    s.heap[1/*SMALLEST*/] = node++;\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n\n  } while (s.heap_len >= 2);\n\n  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n  /* At this point, the fields freq and dad are set. We can now\n   * generate the bit lengths.\n   */\n  gen_bitlen(s, desc);\n\n  /* The field len is now set, we can generate the bit codes */\n  gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree;   /* the tree to be scanned */\n//    int max_code;    /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n    } else if (curlen !== 0) {\n\n      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n    } else if (count <= 10) {\n      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n    } else {\n      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n    }\n\n    count = 0;\n    prevlen = curlen;\n\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree; /* the tree to be scanned */\n//    int max_code;       /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  /* tree[max_code+1].Len = -1; */  /* guard already set */\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n    } else if (curlen !== 0) {\n      if (curlen !== prevlen) {\n        send_code(s, curlen, s.bl_tree);\n        count--;\n      }\n      //Assert(count >= 3 && count <= 6, \" 3_6?\");\n      send_code(s, REP_3_6, s.bl_tree);\n      send_bits(s, count - 3, 2);\n\n    } else if (count <= 10) {\n      send_code(s, REPZ_3_10, s.bl_tree);\n      send_bits(s, count - 3, 3);\n\n    } else {\n      send_code(s, REPZ_11_138, s.bl_tree);\n      send_bits(s, count - 11, 7);\n    }\n\n    count = 0;\n    prevlen = curlen;\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n  var max_blindex;  /* index of last bit length code of non zero freq */\n\n  /* Determine the bit length frequencies for literal and distance trees */\n  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n  /* Build the bit length tree: */\n  build_tree(s, s.bl_desc);\n  /* opt_len now includes the length of the tree representations, except\n   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n   */\n\n  /* Determine the number of bit length codes to send. The pkzip format\n   * requires that at least 4 bit length codes be sent. (appnote.txt says\n   * 3 but the actual value used is 4.)\n   */\n  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n      break;\n    }\n  }\n  /* Update opt_len to include the bit length tree and counts */\n  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n  //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n  //        s->opt_len, s->static_len));\n\n  return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n//    deflate_state *s;\n//    int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n  var rank;                    /* index in bl_order */\n\n  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n  //        \"too many codes\");\n  //Tracev((stderr, \"\\nbl counts: \"));\n  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n  send_bits(s, dcodes - 1,   5);\n  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */\n  for (rank = 0; rank < blcodes; rank++) {\n    //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n  }\n  //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n  //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n  //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n *    a) There are no non-portable control characters belonging to the\n *       \"black list\" (0..6, 14..25, 28..31).\n *    b) There is at least one printable character belonging to the\n *       \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n *   \"gray list\" that is ignored in this detection algorithm:\n *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n  /* black_mask is the bit mask of black-listed bytes\n   * set bits 0..6, 14..25, and 28..31\n   * 0xf3ffc07f = binary 11110011111111111100000001111111\n   */\n  var black_mask = 0xf3ffc07f;\n  var n;\n\n  /* Check for non-textual (\"black-listed\") bytes. */\n  for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n      return Z_BINARY;\n    }\n  }\n\n  /* Check for textual (\"white-listed\") bytes. */\n  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n    return Z_TEXT;\n  }\n  for (n = 32; n < LITERALS; n++) {\n    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n      return Z_TEXT;\n    }\n  }\n\n  /* There are no \"black-listed\" or \"white-listed\" bytes:\n   * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n   */\n  return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n  if (!static_init_done) {\n    tr_static_init();\n    static_init_done = true;\n  }\n\n  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);\n  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);\n  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n\n  /* Initialize the first block of the first file: */\n  init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */\n  copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n  send_bits(s, STATIC_TREES << 1, 3);\n  send_code(s, END_BLOCK, static_ltree);\n  bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block, or NULL if too old */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */\n  var max_blindex = 0;        /* index of last bit length code of non zero freq */\n\n  /* Build the Huffman trees unless a stored block is forced */\n  if (s.level > 0) {\n\n    /* Check if the file is binary or text */\n    if (s.strm.data_type === Z_UNKNOWN) {\n      s.strm.data_type = detect_data_type(s);\n    }\n\n    /* Construct the literal and distance trees */\n    build_tree(s, s.l_desc);\n    // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n\n    build_tree(s, s.d_desc);\n    // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n    /* At this point, opt_len and static_len are the total bit lengths of\n     * the compressed block data, excluding the tree representations.\n     */\n\n    /* Build the bit length tree for the above two trees, and get the index\n     * in bl_order of the last bit length code to send.\n     */\n    max_blindex = build_bl_tree(s);\n\n    /* Determine the best encoding. Compute the block lengths in bytes. */\n    opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n    static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n    // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n    //        s->last_lit));\n\n    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n  } else {\n    // Assert(buf != (char*)0, \"lost buf\");\n    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n  }\n\n  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n    /* 4: two words for the lengths */\n\n    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n     * Otherwise we can't have processed more than WSIZE input bytes since\n     * the last block flush, because compression would have been\n     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n     * transform a block into a stored block.\n     */\n    _tr_stored_block(s, buf, stored_len, last);\n\n  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n    compress_block(s, static_ltree, static_dtree);\n\n  } else {\n    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n    compress_block(s, s.dyn_ltree, s.dyn_dtree);\n  }\n  // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n  /* The above check is made mod 2^32, for files larger than 512 MB\n   * and uLong implemented on 32 bits.\n   */\n  init_block(s);\n\n  if (last) {\n    bi_windup(s);\n  }\n  // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n  //       s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n//    deflate_state *s;\n//    unsigned dist;  /* distance of matched string */\n//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n  //var out_length, in_length, dcode;\n\n  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;\n  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n  s.last_lit++;\n\n  if (dist === 0) {\n    /* lc is the unmatched char */\n    s.dyn_ltree[lc * 2]/*.Freq*/++;\n  } else {\n    s.matches++;\n    /* Here, lc is the match length - MIN_MATCH */\n    dist--;             /* dist = match distance - 1 */\n    //Assert((ush)dist < (ush)MAX_DIST(s) &&\n    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n    //       (ush)d_code(dist) < (ush)D_CODES,  \"_tr_tally: bad match\");\n\n    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n  }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n//  /* Try to guess if it is profitable to stop the current block here */\n//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n//    /* Compute an upper bound for the compressed length */\n//    out_length = s.last_lit*8;\n//    in_length = s.strstart - s.block_start;\n//\n//    for (dcode = 0; dcode < D_CODES; dcode++) {\n//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n//    }\n//    out_length >>>= 3;\n//    //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n//    //       s->last_lit, in_length, out_length,\n//    //       100L - out_length*100L/in_length));\n//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n//      return true;\n//    }\n//  }\n//#endif\n\n  return (s.last_lit === s.lit_bufsize - 1);\n  /* We avoid equality with lit_bufsize because of wraparound at 64K\n   * on 16 bit machines and because stored blocks are restricted to\n   * 64K-1 bytes.\n   */\n}\n\nexports._tr_init  = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block  = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n  2:      'need dictionary',     /* Z_NEED_DICT       2  */\n  1:      'stream end',          /* Z_STREAM_END      1  */\n  0:      '',                    /* Z_OK              0  */\n  '-1':   'file error',          /* Z_ERRNO         (-1) */\n  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */\n  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */\n  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */\n  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */\n  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils         = __webpack_require__(126);\nvar adler32       = __webpack_require__(247);\nvar crc32         = __webpack_require__(248);\nvar inflate_fast  = __webpack_require__(365);\nvar inflate_table = __webpack_require__(366);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH      = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\n//var Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\nvar Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\nvar Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\nvar Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar    HEAD = 1;       /* i: waiting for magic header */\nvar    FLAGS = 2;      /* i: waiting for method and flags (gzip) */\nvar    TIME = 3;       /* i: waiting for modification time (gzip) */\nvar    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */\nvar    EXLEN = 5;      /* i: waiting for extra length (gzip) */\nvar    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */\nvar    NAME = 7;       /* i: waiting for end of file name (gzip) */\nvar    COMMENT = 8;    /* i: waiting for end of comment (gzip) */\nvar    HCRC = 9;       /* i: waiting for header crc (gzip) */\nvar    DICTID = 10;    /* i: waiting for dictionary check value */\nvar    DICT = 11;      /* waiting for inflateSetDictionary() call */\nvar        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\nvar        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */\nvar        STORED = 14;    /* i: waiting for stored size (length and complement) */\nvar        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */\nvar        COPY = 16;      /* i/o: waiting for input or output to copy stored block */\nvar        TABLE = 17;     /* i: waiting for dynamic block table lengths */\nvar        LENLENS = 18;   /* i: waiting for code length code lengths */\nvar        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */\nvar            LEN_ = 20;      /* i: same as LEN below, but only first time in */\nvar            LEN = 21;       /* i: waiting for length/lit/eob code */\nvar            LENEXT = 22;    /* i: waiting for length extra bits */\nvar            DIST = 23;      /* i: waiting for distance code */\nvar            DISTEXT = 24;   /* i: waiting for distance extra bits */\nvar            MATCH = 25;     /* o: waiting for output space to copy string */\nvar            LIT = 26;       /* o: waiting for output space to write literal */\nvar    CHECK = 27;     /* i: waiting for 32-bit check value */\nvar    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */\nvar    DONE = 29;      /* finished check, done -- remain here until reset */\nvar    BAD = 30;       /* got a data error -- remain here until reset */\nvar    MEM = 31;       /* got an inflate() memory error -- remain here until reset */\nvar    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n  return  (((q >>> 24) & 0xff) +\n          ((q >>> 8) & 0xff00) +\n          ((q & 0xff00) << 8) +\n          ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n  this.mode = 0;             /* current inflate mode */\n  this.last = false;          /* true if processing last block */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.havedict = false;      /* true if dictionary provided */\n  this.flags = 0;             /* gzip header method and flags (0 if zlib) */\n  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */\n  this.check = 0;             /* protected copy of check value */\n  this.total = 0;             /* protected copy of output count */\n  // TODO: may be {}\n  this.head = null;           /* where to save gzip header information */\n\n  /* sliding window */\n  this.wbits = 0;             /* log base 2 of requested window size */\n  this.wsize = 0;             /* window size or zero if not using window */\n  this.whave = 0;             /* valid bytes in the window */\n  this.wnext = 0;             /* window write index */\n  this.window = null;         /* allocated sliding window, if needed */\n\n  /* bit accumulator */\n  this.hold = 0;              /* input bit accumulator */\n  this.bits = 0;              /* number of bits in \"in\" */\n\n  /* for string and stored block copying */\n  this.length = 0;            /* literal or length of data to copy */\n  this.offset = 0;            /* distance back to copy string from */\n\n  /* for table and code decoding */\n  this.extra = 0;             /* extra bits needed */\n\n  /* fixed and dynamic code tables */\n  this.lencode = null;          /* starting table for length/literal codes */\n  this.distcode = null;         /* starting table for distance codes */\n  this.lenbits = 0;           /* index bits for lencode */\n  this.distbits = 0;          /* index bits for distcode */\n\n  /* dynamic table building */\n  this.ncode = 0;             /* number of code length code lengths */\n  this.nlen = 0;              /* number of length code lengths */\n  this.ndist = 0;             /* number of distance code lengths */\n  this.have = 0;              /* number of code lengths in lens[] */\n  this.next = null;              /* next available space in codes[] */\n\n  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n  this.work = new utils.Buf16(288); /* work area for code table building */\n\n  /*\n   because we don't have pointers in js, we use lencode and distcode directly\n   as buffers so we don't need codes\n  */\n  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */\n  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */\n  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */\n  this.sane = 0;                   /* if false, allow invalid distance too far */\n  this.back = 0;                   /* bits back of last unprocessed length/lit */\n  this.was = 0;                    /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  strm.total_in = strm.total_out = state.total = 0;\n  strm.msg = ''; /*Z_NULL*/\n  if (state.wrap) {       /* to support ill-conceived Java test suite */\n    strm.adler = state.wrap & 1;\n  }\n  state.mode = HEAD;\n  state.last = 0;\n  state.havedict = 0;\n  state.dmax = 32768;\n  state.head = null/*Z_NULL*/;\n  state.hold = 0;\n  state.bits = 0;\n  //state.lencode = state.distcode = state.next = state.codes;\n  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n  state.sane = 1;\n  state.back = -1;\n  //Tracev((stderr, \"inflate: reset\\n\"));\n  return Z_OK;\n}\n\nfunction inflateReset(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  state.wsize = 0;\n  state.whave = 0;\n  state.wnext = 0;\n  return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n  var wrap;\n  var state;\n\n  /* get the state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n\n  /* extract wrap request from windowBits parameter */\n  if (windowBits < 0) {\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n  else {\n    wrap = (windowBits >> 4) + 1;\n    if (windowBits < 48) {\n      windowBits &= 15;\n    }\n  }\n\n  /* set number of window bits, free window if different */\n  if (windowBits && (windowBits < 8 || windowBits > 15)) {\n    return Z_STREAM_ERROR;\n  }\n  if (state.window !== null && state.wbits !== windowBits) {\n    state.window = null;\n  }\n\n  /* update state and reset the rest of it */\n  state.wrap = wrap;\n  state.wbits = windowBits;\n  return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n  var ret;\n  var state;\n\n  if (!strm) { return Z_STREAM_ERROR; }\n  //strm.msg = Z_NULL;                 /* in case we return an error */\n\n  state = new InflateState();\n\n  //if (state === Z_NULL) return Z_MEM_ERROR;\n  //Tracev((stderr, \"inflate: allocated\\n\"));\n  strm.state = state;\n  state.window = null/*Z_NULL*/;\n  ret = inflateReset2(strm, windowBits);\n  if (ret !== Z_OK) {\n    strm.state = null/*Z_NULL*/;\n  }\n  return ret;\n}\n\nfunction inflateInit(strm) {\n  return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding.  Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter.  This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time.  However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n  /* build fixed huffman tables if first call (may not be thread safe) */\n  if (virgin) {\n    var sym;\n\n    lenfix = new utils.Buf32(512);\n    distfix = new utils.Buf32(32);\n\n    /* literal/length table */\n    sym = 0;\n    while (sym < 144) { state.lens[sym++] = 8; }\n    while (sym < 256) { state.lens[sym++] = 9; }\n    while (sym < 280) { state.lens[sym++] = 7; }\n    while (sym < 288) { state.lens[sym++] = 8; }\n\n    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });\n\n    /* distance table */\n    sym = 0;\n    while (sym < 32) { state.lens[sym++] = 5; }\n\n    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });\n\n    /* do this just once */\n    virgin = false;\n  }\n\n  state.lencode = lenfix;\n  state.lenbits = 9;\n  state.distcode = distfix;\n  state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning.  If window does not exist yet, create it.  This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n  var dist;\n  var state = strm.state;\n\n  /* if it hasn't been done already, allocate space for the window */\n  if (state.window === null) {\n    state.wsize = 1 << state.wbits;\n    state.wnext = 0;\n    state.whave = 0;\n\n    state.window = new utils.Buf8(state.wsize);\n  }\n\n  /* copy state->wsize or less output bytes into the circular window */\n  if (copy >= state.wsize) {\n    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n    state.wnext = 0;\n    state.whave = state.wsize;\n  }\n  else {\n    dist = state.wsize - state.wnext;\n    if (dist > copy) {\n      dist = copy;\n    }\n    //zmemcpy(state->window + state->wnext, end - copy, dist);\n    utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n    copy -= dist;\n    if (copy) {\n      //zmemcpy(state->window, end - copy, copy);\n      utils.arraySet(state.window, src, end - copy, copy, 0);\n      state.wnext = copy;\n      state.whave = state.wsize;\n    }\n    else {\n      state.wnext += dist;\n      if (state.wnext === state.wsize) { state.wnext = 0; }\n      if (state.whave < state.wsize) { state.whave += dist; }\n    }\n  }\n  return 0;\n}\n\nfunction inflate(strm, flush) {\n  var state;\n  var input, output;          // input/output buffers\n  var next;                   /* next input INDEX */\n  var put;                    /* next output INDEX */\n  var have, left;             /* available input and output */\n  var hold;                   /* bit buffer */\n  var bits;                   /* bits in bit buffer */\n  var _in, _out;              /* save starting available input and output */\n  var copy;                   /* number of stored or match bytes to copy */\n  var from;                   /* where to copy match bytes from */\n  var from_source;\n  var here = 0;               /* current decoding table entry */\n  var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n  //var last;                   /* parent table entry */\n  var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n  var len;                    /* length to copy for repeats, bits to drop */\n  var ret;                    /* return code */\n  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */\n  var opts;\n\n  var n; // temporary var for NEED_BITS\n\n  var order = /* permutation of code lengths */\n    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n  if (!strm || !strm.state || !strm.output ||\n      (!strm.input && strm.avail_in !== 0)) {\n    return Z_STREAM_ERROR;\n  }\n\n  state = strm.state;\n  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */\n\n\n  //--- LOAD() ---\n  put = strm.next_out;\n  output = strm.output;\n  left = strm.avail_out;\n  next = strm.next_in;\n  input = strm.input;\n  have = strm.avail_in;\n  hold = state.hold;\n  bits = state.bits;\n  //---\n\n  _in = have;\n  _out = left;\n  ret = Z_OK;\n\n  inf_leave: // goto emulation\n  for (;;) {\n    switch (state.mode) {\n      case HEAD:\n        if (state.wrap === 0) {\n          state.mode = TYPEDO;\n          break;\n        }\n        //=== NEEDBITS(16);\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */\n          state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          state.mode = FLAGS;\n          break;\n        }\n        state.flags = 0;           /* expect zlib header */\n        if (state.head) {\n          state.head.done = false;\n        }\n        if (!(state.wrap & 1) ||   /* check if zlib header allowed */\n          (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n          strm.msg = 'incorrect header check';\n          state.mode = BAD;\n          break;\n        }\n        if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n        len = (hold & 0x0f)/*BITS(4)*/ + 8;\n        if (state.wbits === 0) {\n          state.wbits = len;\n        }\n        else if (len > state.wbits) {\n          strm.msg = 'invalid window size';\n          state.mode = BAD;\n          break;\n        }\n        state.dmax = 1 << len;\n        //Tracev((stderr, \"inflate:   zlib header ok\\n\"));\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = hold & 0x200 ? DICTID : TYPE;\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        break;\n      case FLAGS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.flags = hold;\n        if ((state.flags & 0xff) !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        if (state.flags & 0xe000) {\n          strm.msg = 'unknown header flags set';\n          state.mode = BAD;\n          break;\n        }\n        if (state.head) {\n          state.head.text = ((hold >> 8) & 1);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = TIME;\n        /* falls through */\n      case TIME:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.time = hold;\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC4(state.check, hold)\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          hbuf[2] = (hold >>> 16) & 0xff;\n          hbuf[3] = (hold >>> 24) & 0xff;\n          state.check = crc32(state.check, hbuf, 4, 0);\n          //===\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = OS;\n        /* falls through */\n      case OS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.xflags = (hold & 0xff);\n          state.head.os = (hold >> 8);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = EXLEN;\n        /* falls through */\n      case EXLEN:\n        if (state.flags & 0x0400) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length = hold;\n          if (state.head) {\n            state.head.extra_len = hold;\n          }\n          if (state.flags & 0x0200) {\n            //=== CRC2(state.check, hold);\n            hbuf[0] = hold & 0xff;\n            hbuf[1] = (hold >>> 8) & 0xff;\n            state.check = crc32(state.check, hbuf, 2, 0);\n            //===//\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        else if (state.head) {\n          state.head.extra = null/*Z_NULL*/;\n        }\n        state.mode = EXTRA;\n        /* falls through */\n      case EXTRA:\n        if (state.flags & 0x0400) {\n          copy = state.length;\n          if (copy > have) { copy = have; }\n          if (copy) {\n            if (state.head) {\n              len = state.head.extra_len - state.length;\n              if (!state.head.extra) {\n                // Use untyped array for more convenient processing later\n                state.head.extra = new Array(state.head.extra_len);\n              }\n              utils.arraySet(\n                state.head.extra,\n                input,\n                next,\n                // extra field is limited to 65536 bytes\n                // - no need for additional size check\n                copy,\n                /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n                len\n              );\n              //zmemcpy(state.head.extra + len, next,\n              //        len + copy > state.head.extra_max ?\n              //        state.head.extra_max - len : copy);\n            }\n            if (state.flags & 0x0200) {\n              state.check = crc32(state.check, input, copy, next);\n            }\n            have -= copy;\n            next += copy;\n            state.length -= copy;\n          }\n          if (state.length) { break inf_leave; }\n        }\n        state.length = 0;\n        state.mode = NAME;\n        /* falls through */\n      case NAME:\n        if (state.flags & 0x0800) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            // TODO: 2 or 1 bytes?\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.name_max*/)) {\n              state.head.name += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n\n          if (state.flags & 0x0200) {\n            state.check = crc32(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.name = null;\n        }\n        state.length = 0;\n        state.mode = COMMENT;\n        /* falls through */\n      case COMMENT:\n        if (state.flags & 0x1000) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.comm_max*/)) {\n              state.head.comment += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n          if (state.flags & 0x0200) {\n            state.check = crc32(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.comment = null;\n        }\n        state.mode = HCRC;\n        /* falls through */\n      case HCRC:\n        if (state.flags & 0x0200) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.check & 0xffff)) {\n            strm.msg = 'header crc mismatch';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        if (state.head) {\n          state.head.hcrc = ((state.flags >> 9) & 1);\n          state.head.done = true;\n        }\n        strm.adler = state.check = 0;\n        state.mode = TYPE;\n        break;\n      case DICTID:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        strm.adler = state.check = zswap32(hold);\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = DICT;\n        /* falls through */\n      case DICT:\n        if (state.havedict === 0) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          return Z_NEED_DICT;\n        }\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = TYPE;\n        /* falls through */\n      case TYPE:\n        if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case TYPEDO:\n        if (state.last) {\n          //--- BYTEBITS() ---//\n          hold >>>= bits & 7;\n          bits -= bits & 7;\n          //---//\n          state.mode = CHECK;\n          break;\n        }\n        //=== NEEDBITS(3); */\n        while (bits < 3) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.last = (hold & 0x01)/*BITS(1)*/;\n        //--- DROPBITS(1) ---//\n        hold >>>= 1;\n        bits -= 1;\n        //---//\n\n        switch ((hold & 0x03)/*BITS(2)*/) {\n          case 0:                             /* stored block */\n            //Tracev((stderr, \"inflate:     stored block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = STORED;\n            break;\n          case 1:                             /* fixed block */\n            fixedtables(state);\n            //Tracev((stderr, \"inflate:     fixed codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = LEN_;             /* decode codes */\n            if (flush === Z_TREES) {\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n              break inf_leave;\n            }\n            break;\n          case 2:                             /* dynamic block */\n            //Tracev((stderr, \"inflate:     dynamic codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = TABLE;\n            break;\n          case 3:\n            strm.msg = 'invalid block type';\n            state.mode = BAD;\n        }\n        //--- DROPBITS(2) ---//\n        hold >>>= 2;\n        bits -= 2;\n        //---//\n        break;\n      case STORED:\n        //--- BYTEBITS() ---// /* go to byte boundary */\n        hold >>>= bits & 7;\n        bits -= bits & 7;\n        //---//\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n          strm.msg = 'invalid stored block lengths';\n          state.mode = BAD;\n          break;\n        }\n        state.length = hold & 0xffff;\n        //Tracev((stderr, \"inflate:       stored length %u\\n\",\n        //        state.length));\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = COPY_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case COPY_:\n        state.mode = COPY;\n        /* falls through */\n      case COPY:\n        copy = state.length;\n        if (copy) {\n          if (copy > have) { copy = have; }\n          if (copy > left) { copy = left; }\n          if (copy === 0) { break inf_leave; }\n          //--- zmemcpy(put, next, copy); ---\n          utils.arraySet(output, input, next, copy, put);\n          //---//\n          have -= copy;\n          next += copy;\n          left -= copy;\n          put += copy;\n          state.length -= copy;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       stored end\\n\"));\n        state.mode = TYPE;\n        break;\n      case TABLE:\n        //=== NEEDBITS(14); */\n        while (bits < 14) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n        if (state.nlen > 286 || state.ndist > 30) {\n          strm.msg = 'too many length or distance symbols';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracev((stderr, \"inflate:       table sizes ok\\n\"));\n        state.have = 0;\n        state.mode = LENLENS;\n        /* falls through */\n      case LENLENS:\n        while (state.have < state.ncode) {\n          //=== NEEDBITS(3);\n          while (bits < 3) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n          //--- DROPBITS(3) ---//\n          hold >>>= 3;\n          bits -= 3;\n          //---//\n        }\n        while (state.have < 19) {\n          state.lens[order[state.have++]] = 0;\n        }\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        //state.next = state.codes;\n        //state.lencode = state.next;\n        // Switch to use dynamic table\n        state.lencode = state.lendyn;\n        state.lenbits = 7;\n\n        opts = { bits: state.lenbits };\n        ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n        state.lenbits = opts.bits;\n\n        if (ret) {\n          strm.msg = 'invalid code lengths set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       code lengths ok\\n\"));\n        state.have = 0;\n        state.mode = CODELENS;\n        /* falls through */\n      case CODELENS:\n        while (state.have < state.nlen + state.ndist) {\n          for (;;) {\n            here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          if (here_val < 16) {\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            state.lens[state.have++] = here_val;\n          }\n          else {\n            if (here_val === 16) {\n              //=== NEEDBITS(here.bits + 2);\n              n = here_bits + 2;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              if (state.have === 0) {\n                strm.msg = 'invalid bit length repeat';\n                state.mode = BAD;\n                break;\n              }\n              len = state.lens[state.have - 1];\n              copy = 3 + (hold & 0x03);//BITS(2);\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n            }\n            else if (here_val === 17) {\n              //=== NEEDBITS(here.bits + 3);\n              n = here_bits + 3;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 3 + (hold & 0x07);//BITS(3);\n              //--- DROPBITS(3) ---//\n              hold >>>= 3;\n              bits -= 3;\n              //---//\n            }\n            else {\n              //=== NEEDBITS(here.bits + 7);\n              n = here_bits + 7;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 11 + (hold & 0x7f);//BITS(7);\n              //--- DROPBITS(7) ---//\n              hold >>>= 7;\n              bits -= 7;\n              //---//\n            }\n            if (state.have + copy > state.nlen + state.ndist) {\n              strm.msg = 'invalid bit length repeat';\n              state.mode = BAD;\n              break;\n            }\n            while (copy--) {\n              state.lens[state.have++] = len;\n            }\n          }\n        }\n\n        /* handle error breaks in while */\n        if (state.mode === BAD) { break; }\n\n        /* check for end-of-block code (better have one) */\n        if (state.lens[256] === 0) {\n          strm.msg = 'invalid code -- missing end-of-block';\n          state.mode = BAD;\n          break;\n        }\n\n        /* build code tables -- note: do not change the lenbits or distbits\n           values here (9 and 6) without reading the comments in inftrees.h\n           concerning the ENOUGH constants, which depend on those values */\n        state.lenbits = 9;\n\n        opts = { bits: state.lenbits };\n        ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.lenbits = opts.bits;\n        // state.lencode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid literal/lengths set';\n          state.mode = BAD;\n          break;\n        }\n\n        state.distbits = 6;\n        //state.distcode.copy(state.codes);\n        // Switch to use dynamic table\n        state.distcode = state.distdyn;\n        opts = { bits: state.distbits };\n        ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.distbits = opts.bits;\n        // state.distcode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid distances set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, 'inflate:       codes ok\\n'));\n        state.mode = LEN_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case LEN_:\n        state.mode = LEN;\n        /* falls through */\n      case LEN:\n        if (have >= 6 && left >= 258) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          inflate_fast(strm, _out);\n          //--- LOAD() ---\n          put = strm.next_out;\n          output = strm.output;\n          left = strm.avail_out;\n          next = strm.next_in;\n          input = strm.input;\n          have = strm.avail_in;\n          hold = state.hold;\n          bits = state.bits;\n          //---\n\n          if (state.mode === TYPE) {\n            state.back = -1;\n          }\n          break;\n        }\n        state.back = 0;\n        for (;;) {\n          here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if (here_bits <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if (here_op && (here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.lencode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        state.length = here_val;\n        if (here_op === 0) {\n          //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n          //        \"inflate:         literal '%c'\\n\" :\n          //        \"inflate:         literal 0x%02x\\n\", here.val));\n          state.mode = LIT;\n          break;\n        }\n        if (here_op & 32) {\n          //Tracevv((stderr, \"inflate:         end of block\\n\"));\n          state.back = -1;\n          state.mode = TYPE;\n          break;\n        }\n        if (here_op & 64) {\n          strm.msg = 'invalid literal/length code';\n          state.mode = BAD;\n          break;\n        }\n        state.extra = here_op & 15;\n        state.mode = LENEXT;\n        /* falls through */\n      case LENEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", state.length));\n        state.was = state.length;\n        state.mode = DIST;\n        /* falls through */\n      case DIST:\n        for (;;) {\n          here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if ((here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.distcode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        if (here_op & 64) {\n          strm.msg = 'invalid distance code';\n          state.mode = BAD;\n          break;\n        }\n        state.offset = here_val;\n        state.extra = (here_op) & 15;\n        state.mode = DISTEXT;\n        /* falls through */\n      case DISTEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n//#ifdef INFLATE_STRICT\n        if (state.offset > state.dmax) {\n          strm.msg = 'invalid distance too far back';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracevv((stderr, \"inflate:         distance %u\\n\", state.offset));\n        state.mode = MATCH;\n        /* falls through */\n      case MATCH:\n        if (left === 0) { break inf_leave; }\n        copy = _out - left;\n        if (state.offset > copy) {         /* copy from window */\n          copy = state.offset - copy;\n          if (copy > state.whave) {\n            if (state.sane) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break;\n            }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//          Trace((stderr, \"inflate.c too far\\n\"));\n//          copy -= state.whave;\n//          if (copy > state.length) { copy = state.length; }\n//          if (copy > left) { copy = left; }\n//          left -= copy;\n//          state.length -= copy;\n//          do {\n//            output[put++] = 0;\n//          } while (--copy);\n//          if (state.length === 0) { state.mode = LEN; }\n//          break;\n//#endif\n          }\n          if (copy > state.wnext) {\n            copy -= state.wnext;\n            from = state.wsize - copy;\n          }\n          else {\n            from = state.wnext - copy;\n          }\n          if (copy > state.length) { copy = state.length; }\n          from_source = state.window;\n        }\n        else {                              /* copy from output */\n          from_source = output;\n          from = put - state.offset;\n          copy = state.length;\n        }\n        if (copy > left) { copy = left; }\n        left -= copy;\n        state.length -= copy;\n        do {\n          output[put++] = from_source[from++];\n        } while (--copy);\n        if (state.length === 0) { state.mode = LEN; }\n        break;\n      case LIT:\n        if (left === 0) { break inf_leave; }\n        output[put++] = state.length;\n        left--;\n        state.mode = LEN;\n        break;\n      case CHECK:\n        if (state.wrap) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            // Use '|' instead of '+' to make sure that result is signed\n            hold |= input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          _out -= left;\n          strm.total_out += _out;\n          state.total += _out;\n          if (_out) {\n            strm.adler = state.check =\n                /*UPDATE(state.check, put - _out, _out);*/\n                (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n          }\n          _out = left;\n          // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n          if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n            strm.msg = 'incorrect data check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   check matches trailer\\n\"));\n        }\n        state.mode = LENGTH;\n        /* falls through */\n      case LENGTH:\n        if (state.wrap && state.flags) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.total & 0xffffffff)) {\n            strm.msg = 'incorrect length check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   length matches trailer\\n\"));\n        }\n        state.mode = DONE;\n        /* falls through */\n      case DONE:\n        ret = Z_STREAM_END;\n        break inf_leave;\n      case BAD:\n        ret = Z_DATA_ERROR;\n        break inf_leave;\n      case MEM:\n        return Z_MEM_ERROR;\n      case SYNC:\n        /* falls through */\n      default:\n        return Z_STREAM_ERROR;\n    }\n  }\n\n  // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n  /*\n     Return from inflate(), updating the total counts and the check value.\n     If there was no progress during the inflate() call, return a buffer\n     error.  Call updatewindow() to create and/or update the window state.\n     Note: a memory error from inflate() is non-recoverable.\n   */\n\n  //--- RESTORE() ---\n  strm.next_out = put;\n  strm.avail_out = left;\n  strm.next_in = next;\n  strm.avail_in = have;\n  state.hold = hold;\n  state.bits = bits;\n  //---\n\n  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n                      (state.mode < CHECK || flush !== Z_FINISH))) {\n    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n      state.mode = MEM;\n      return Z_MEM_ERROR;\n    }\n  }\n  _in -= strm.avail_in;\n  _out -= strm.avail_out;\n  strm.total_in += _in;\n  strm.total_out += _out;\n  state.total += _out;\n  if (state.wrap && _out) {\n    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n  }\n  strm.data_type = state.bits + (state.last ? 64 : 0) +\n                    (state.mode === TYPE ? 128 : 0) +\n                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n    ret = Z_BUF_ERROR;\n  }\n  return ret;\n}\n\nfunction inflateEnd(strm) {\n\n  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  var state = strm.state;\n  if (state.window) {\n    state.window = null;\n  }\n  strm.state = null;\n  return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n  var state;\n\n  /* check state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n  /* save header structure */\n  state.head = head;\n  head.done = false;\n  return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n  var dictLength = dictionary.length;\n\n  var state;\n  var dictid;\n  var ret;\n\n  /* check state */\n  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n  state = strm.state;\n\n  if (state.wrap !== 0 && state.mode !== DICT) {\n    return Z_STREAM_ERROR;\n  }\n\n  /* check for correct dictionary identifier */\n  if (state.mode === DICT) {\n    dictid = 1; /* adler32(0, null, 0)*/\n    /* dictid = adler32(dictid, dictionary, dictLength); */\n    dictid = adler32(dictid, dictionary, dictLength, 0);\n    if (dictid !== state.check) {\n      return Z_DATA_ERROR;\n    }\n  }\n  /* copy dictionary to window using updatewindow(), which will amend the\n   existing dictionary if appropriate */\n  ret = updatewindow(strm, dictionary, dictLength, dictLength);\n  if (ret) {\n    state.mode = MEM;\n    return Z_MEM_ERROR;\n  }\n  state.havedict = 1;\n  // Tracev((stderr, \"inflate:   dictionary set\\n\"));\n  return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30;       /* got a data error -- remain here until reset */\nvar TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\n\n/*\n   Decode literal, length, and distance codes and write out the resulting\n   literal and match bytes until either not enough input or output is\n   available, an end-of-block is encountered, or a data error is encountered.\n   When large enough input and output buffers are supplied to inflate(), for\n   example, a 16K input buffer and a 64K output buffer, more than 95% of the\n   inflate execution time is spent in this routine.\n\n   Entry assumptions:\n\n        state.mode === LEN\n        strm.avail_in >= 6\n        strm.avail_out >= 258\n        start >= strm.avail_out\n        state.bits < 8\n\n   On return, state.mode is one of:\n\n        LEN -- ran out of enough output space or enough available input\n        TYPE -- reached end of block code, inflate() to interpret next block\n        BAD -- error in block data\n\n   Notes:\n\n    - The maximum input bits used by a length/distance pair is 15 bits for the\n      length code, 5 bits for the length extra, 15 bits for the distance code,\n      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\n      Therefore if strm.avail_in >= 6, then there is enough input to avoid\n      checking for available input while decoding.\n\n    - The maximum bytes that a single length/distance pair can output is 258\n      bytes, which is the maximum length that can be coded.  inflate_fast()\n      requires strm.avail_out >= 258 for each loop to avoid checking for\n      output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n  var state;\n  var _in;                    /* local strm.input */\n  var last;                   /* have enough input while in < last */\n  var _out;                   /* local strm.output */\n  var beg;                    /* inflate()'s initial strm.output */\n  var end;                    /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n  var dmax;                   /* maximum distance from zlib header */\n//#endif\n  var wsize;                  /* window size or zero if not using window */\n  var whave;                  /* valid bytes in the window */\n  var wnext;                  /* window write index */\n  // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n  var s_window;               /* allocated sliding window, if wsize != 0 */\n  var hold;                   /* local strm.hold */\n  var bits;                   /* local strm.bits */\n  var lcode;                  /* local strm.lencode */\n  var dcode;                  /* local strm.distcode */\n  var lmask;                  /* mask for first level of length codes */\n  var dmask;                  /* mask for first level of distance codes */\n  var here;                   /* retrieved table entry */\n  var op;                     /* code bits, operation, extra bits, or */\n                              /*  window position, window bytes to copy */\n  var len;                    /* match length, unused bytes */\n  var dist;                   /* match distance */\n  var from;                   /* where to copy match from */\n  var from_source;\n\n\n  var input, output; // JS specific, because we have no pointers\n\n  /* copy state to local variables */\n  state = strm.state;\n  //here = state.here;\n  _in = strm.next_in;\n  input = strm.input;\n  last = _in + (strm.avail_in - 5);\n  _out = strm.next_out;\n  output = strm.output;\n  beg = _out - (start - strm.avail_out);\n  end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n  dmax = state.dmax;\n//#endif\n  wsize = state.wsize;\n  whave = state.whave;\n  wnext = state.wnext;\n  s_window = state.window;\n  hold = state.hold;\n  bits = state.bits;\n  lcode = state.lencode;\n  dcode = state.distcode;\n  lmask = (1 << state.lenbits) - 1;\n  dmask = (1 << state.distbits) - 1;\n\n\n  /* decode literals and length/distances until end-of-block or not enough\n     input data or output space */\n\n  top:\n  do {\n    if (bits < 15) {\n      hold += input[_in++] << bits;\n      bits += 8;\n      hold += input[_in++] << bits;\n      bits += 8;\n    }\n\n    here = lcode[hold & lmask];\n\n    dolen:\n    for (;;) { // Goto emulation\n      op = here >>> 24/*here.bits*/;\n      hold >>>= op;\n      bits -= op;\n      op = (here >>> 16) & 0xff/*here.op*/;\n      if (op === 0) {                          /* literal */\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n        //        \"inflate:         literal '%c'\\n\" :\n        //        \"inflate:         literal 0x%02x\\n\", here.val));\n        output[_out++] = here & 0xffff/*here.val*/;\n      }\n      else if (op & 16) {                     /* length base */\n        len = here & 0xffff/*here.val*/;\n        op &= 15;                           /* number of extra bits */\n        if (op) {\n          if (bits < op) {\n            hold += input[_in++] << bits;\n            bits += 8;\n          }\n          len += hold & ((1 << op) - 1);\n          hold >>>= op;\n          bits -= op;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", len));\n        if (bits < 15) {\n          hold += input[_in++] << bits;\n          bits += 8;\n          hold += input[_in++] << bits;\n          bits += 8;\n        }\n        here = dcode[hold & dmask];\n\n        dodist:\n        for (;;) { // goto emulation\n          op = here >>> 24/*here.bits*/;\n          hold >>>= op;\n          bits -= op;\n          op = (here >>> 16) & 0xff/*here.op*/;\n\n          if (op & 16) {                      /* distance base */\n            dist = here & 0xffff/*here.val*/;\n            op &= 15;                       /* number of extra bits */\n            if (bits < op) {\n              hold += input[_in++] << bits;\n              bits += 8;\n              if (bits < op) {\n                hold += input[_in++] << bits;\n                bits += 8;\n              }\n            }\n            dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n            if (dist > dmax) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break top;\n            }\n//#endif\n            hold >>>= op;\n            bits -= op;\n            //Tracevv((stderr, \"inflate:         distance %u\\n\", dist));\n            op = _out - beg;                /* max distance in output */\n            if (dist > op) {                /* see if copy from window */\n              op = dist - op;               /* distance back in window */\n              if (op > whave) {\n                if (state.sane) {\n                  strm.msg = 'invalid distance too far back';\n                  state.mode = BAD;\n                  break top;\n                }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//                if (len <= op - whave) {\n//                  do {\n//                    output[_out++] = 0;\n//                  } while (--len);\n//                  continue top;\n//                }\n//                len -= op - whave;\n//                do {\n//                  output[_out++] = 0;\n//                } while (--op > whave);\n//                if (op === 0) {\n//                  from = _out - dist;\n//                  do {\n//                    output[_out++] = output[from++];\n//                  } while (--len);\n//                  continue top;\n//                }\n//#endif\n              }\n              from = 0; // window index\n              from_source = s_window;\n              if (wnext === 0) {           /* very common case */\n                from += wsize - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              else if (wnext < op) {      /* wrap around window */\n                from += wsize + wnext - op;\n                op -= wnext;\n                if (op < len) {         /* some from end of window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = 0;\n                  if (wnext < len) {  /* some from start of window */\n                    op = wnext;\n                    len -= op;\n                    do {\n                      output[_out++] = s_window[from++];\n                    } while (--op);\n                    from = _out - dist;      /* rest from output */\n                    from_source = output;\n                  }\n                }\n              }\n              else {                      /* contiguous in window */\n                from += wnext - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              while (len > 2) {\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                len -= 3;\n              }\n              if (len) {\n                output[_out++] = from_source[from++];\n                if (len > 1) {\n                  output[_out++] = from_source[from++];\n                }\n              }\n            }\n            else {\n              from = _out - dist;          /* copy direct from output */\n              do {                        /* minimum length is three */\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                len -= 3;\n              } while (len > 2);\n              if (len) {\n                output[_out++] = output[from++];\n                if (len > 1) {\n                  output[_out++] = output[from++];\n                }\n              }\n            }\n          }\n          else if ((op & 64) === 0) {          /* 2nd level distance code */\n            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n            continue dodist;\n          }\n          else {\n            strm.msg = 'invalid distance code';\n            state.mode = BAD;\n            break top;\n          }\n\n          break; // need to emulate goto via \"continue\"\n        }\n      }\n      else if ((op & 64) === 0) {              /* 2nd level length code */\n        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n        continue dolen;\n      }\n      else if (op & 32) {                     /* end-of-block */\n        //Tracevv((stderr, \"inflate:         end of block\\n\"));\n        state.mode = TYPE;\n        break top;\n      }\n      else {\n        strm.msg = 'invalid literal/length code';\n        state.mode = BAD;\n        break top;\n      }\n\n      break; // need to emulate goto via \"continue\"\n    }\n  } while (_in < last && _out < end);\n\n  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n  len = bits >> 3;\n  _in -= len;\n  bits -= len << 3;\n  hold &= (1 << bits) - 1;\n\n  /* update state and return */\n  strm.next_in = _in;\n  strm.next_out = _out;\n  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n  state.hold = hold;\n  state.bits = bits;\n  return;\n};\n\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = __webpack_require__(126);\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n  8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n  28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n  var bits = opts.bits;\n      //here = opts.here; /* table entry for duplication */\n\n  var len = 0;               /* a code's length in bits */\n  var sym = 0;               /* index of code symbols */\n  var min = 0, max = 0;          /* minimum and maximum code lengths */\n  var root = 0;              /* number of index bits for root table */\n  var curr = 0;              /* number of index bits for current table */\n  var drop = 0;              /* code bits to drop for sub-table */\n  var left = 0;                   /* number of prefix codes available */\n  var used = 0;              /* code entries in table used */\n  var huff = 0;              /* Huffman code */\n  var incr;              /* for incrementing code, index */\n  var fill;              /* index for replicating entries */\n  var low;               /* low bits for current root entry */\n  var mask;              /* mask for low root bits */\n  var next;             /* next available space in table */\n  var base = null;     /* base value table to use */\n  var base_index = 0;\n//  var shoextra;    /* extra bits table to use */\n  var end;                    /* use base and extra for symbol > end */\n  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */\n  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */\n  var extra = null;\n  var extra_index = 0;\n\n  var here_bits, here_op, here_val;\n\n  /*\n   Process a set of code lengths to create a canonical Huffman code.  The\n   code lengths are lens[0..codes-1].  Each length corresponds to the\n   symbols 0..codes-1.  The Huffman code is generated by first sorting the\n   symbols by length from short to long, and retaining the symbol order\n   for codes with equal lengths.  Then the code starts with all zero bits\n   for the first code of the shortest length, and the codes are integer\n   increments for the same length, and zeros are appended as the length\n   increases.  For the deflate format, these bits are stored backwards\n   from their more natural integer increment ordering, and so when the\n   decoding tables are built in the large loop below, the integer codes\n   are incremented backwards.\n\n   This routine assumes, but does not check, that all of the entries in\n   lens[] are in the range 0..MAXBITS.  The caller must assure this.\n   1..MAXBITS is interpreted as that code length.  zero means that that\n   symbol does not occur in this code.\n\n   The codes are sorted by computing a count of codes for each length,\n   creating from that a table of starting indices for each length in the\n   sorted table, and then entering the symbols in order in the sorted\n   table.  The sorted table is work[], with that space being provided by\n   the caller.\n\n   The length counts are used for other purposes as well, i.e. finding\n   the minimum and maximum length codes, determining if there are any\n   codes at all, checking for a valid set of lengths, and looking ahead\n   at length counts to determine sub-table sizes when building the\n   decoding tables.\n   */\n\n  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n  for (len = 0; len <= MAXBITS; len++) {\n    count[len] = 0;\n  }\n  for (sym = 0; sym < codes; sym++) {\n    count[lens[lens_index + sym]]++;\n  }\n\n  /* bound code lengths, force root to be within code lengths */\n  root = bits;\n  for (max = MAXBITS; max >= 1; max--) {\n    if (count[max] !== 0) { break; }\n  }\n  if (root > max) {\n    root = max;\n  }\n  if (max === 0) {                     /* no symbols to code at all */\n    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\n    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\n    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n    //table.op[opts.table_index] = 64;\n    //table.bits[opts.table_index] = 1;\n    //table.val[opts.table_index++] = 0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n    opts.bits = 1;\n    return 0;     /* no symbols, but wait for decoding to report error */\n  }\n  for (min = 1; min < max; min++) {\n    if (count[min] !== 0) { break; }\n  }\n  if (root < min) {\n    root = min;\n  }\n\n  /* check for an over-subscribed or incomplete set of lengths */\n  left = 1;\n  for (len = 1; len <= MAXBITS; len++) {\n    left <<= 1;\n    left -= count[len];\n    if (left < 0) {\n      return -1;\n    }        /* over-subscribed */\n  }\n  if (left > 0 && (type === CODES || max !== 1)) {\n    return -1;                      /* incomplete set */\n  }\n\n  /* generate offsets into symbol table for each length for sorting */\n  offs[1] = 0;\n  for (len = 1; len < MAXBITS; len++) {\n    offs[len + 1] = offs[len] + count[len];\n  }\n\n  /* sort symbols by length, by symbol order within each length */\n  for (sym = 0; sym < codes; sym++) {\n    if (lens[lens_index + sym] !== 0) {\n      work[offs[lens[lens_index + sym]]++] = sym;\n    }\n  }\n\n  /*\n   Create and fill in decoding tables.  In this loop, the table being\n   filled is at next and has curr index bits.  The code being used is huff\n   with length len.  That code is converted to an index by dropping drop\n   bits off of the bottom.  For codes where len is less than drop + curr,\n   those top drop + curr - len bits are incremented through all values to\n   fill the table with replicated entries.\n\n   root is the number of index bits for the root table.  When len exceeds\n   root, sub-tables are created pointed to by the root entry with an index\n   of the low root bits of huff.  This is saved in low to check for when a\n   new sub-table should be started.  drop is zero when the root table is\n   being filled, and drop is root when sub-tables are being filled.\n\n   When a new sub-table is needed, it is necessary to look ahead in the\n   code lengths to determine what size sub-table is needed.  The length\n   counts are used for this, and so count[] is decremented as codes are\n   entered in the tables.\n\n   used keeps track of how many table entries have been allocated from the\n   provided *table space.  It is checked for LENS and DIST tables against\n   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n   the initial root table size constants.  See the comments in inftrees.h\n   for more information.\n\n   sym increments through all symbols, and the loop terminates when\n   all codes of length max, i.e. all codes, have been processed.  This\n   routine permits incomplete codes, so another loop after this one fills\n   in the rest of the decoding tables with invalid code markers.\n   */\n\n  /* set up for code type */\n  // poor man optimization - use if-else instead of switch,\n  // to avoid deopts in old v8\n  if (type === CODES) {\n    base = extra = work;    /* dummy value--not used */\n    end = 19;\n\n  } else if (type === LENS) {\n    base = lbase;\n    base_index -= 257;\n    extra = lext;\n    extra_index -= 257;\n    end = 256;\n\n  } else {                    /* DISTS */\n    base = dbase;\n    extra = dext;\n    end = -1;\n  }\n\n  /* initialize opts for loop */\n  huff = 0;                   /* starting code */\n  sym = 0;                    /* starting code symbol */\n  len = min;                  /* starting code length */\n  next = table_index;              /* current table to fill in */\n  curr = root;                /* current table index bits */\n  drop = 0;                   /* current bits to drop from code for index */\n  low = -1;                   /* trigger new sub-table when len > root */\n  used = 1 << root;          /* use root table entries */\n  mask = used - 1;            /* mask for comparing low */\n\n  /* check available table space */\n  if ((type === LENS && used > ENOUGH_LENS) ||\n    (type === DISTS && used > ENOUGH_DISTS)) {\n    return 1;\n  }\n\n  /* process all codes and make table entries */\n  for (;;) {\n    /* create table entry */\n    here_bits = len - drop;\n    if (work[sym] < end) {\n      here_op = 0;\n      here_val = work[sym];\n    }\n    else if (work[sym] > end) {\n      here_op = extra[extra_index + work[sym]];\n      here_val = base[base_index + work[sym]];\n    }\n    else {\n      here_op = 32 + 64;         /* end of block */\n      here_val = 0;\n    }\n\n    /* replicate for those indices with low len bits equal to huff */\n    incr = 1 << (len - drop);\n    fill = 1 << curr;\n    min = fill;                 /* save offset to next table */\n    do {\n      fill -= incr;\n      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n    } while (fill !== 0);\n\n    /* backwards increment the len-bit code huff */\n    incr = 1 << (len - 1);\n    while (huff & incr) {\n      incr >>= 1;\n    }\n    if (incr !== 0) {\n      huff &= incr - 1;\n      huff += incr;\n    } else {\n      huff = 0;\n    }\n\n    /* go to next symbol, update count, len */\n    sym++;\n    if (--count[len] === 0) {\n      if (len === max) { break; }\n      len = lens[lens_index + work[sym]];\n    }\n\n    /* create new sub-table if needed */\n    if (len > root && (huff & mask) !== low) {\n      /* if first time, transition to sub-tables */\n      if (drop === 0) {\n        drop = root;\n      }\n\n      /* increment past last table */\n      next += min;            /* here min is 1 << curr */\n\n      /* determine length of next table */\n      curr = len - drop;\n      left = 1 << curr;\n      while (curr + drop < max) {\n        left -= count[curr + drop];\n        if (left <= 0) { break; }\n        curr++;\n        left <<= 1;\n      }\n\n      /* check for enough space */\n      used += 1 << curr;\n      if ((type === LENS && used > ENOUGH_LENS) ||\n        (type === DISTS && used > ENOUGH_DISTS)) {\n        return 1;\n      }\n\n      /* point entry in root table to sub-table */\n      low = huff & mask;\n      /*table.op[low] = curr;\n      table.bits[low] = root;\n      table.val[low] = next - opts.table_index;*/\n      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n    }\n  }\n\n  /* fill in remaining table entry if code is incomplete (guaranteed to have\n   at most one remaining entry, since if the code is incomplete, the\n   maximum code length that was allowed to get this far is one bit) */\n  if (huff !== 0) {\n    //table.op[next + huff] = 64;            /* invalid code marker */\n    //table.bits[next + huff] = len - drop;\n    //table.val[next + huff] = 0;\n    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n  }\n\n  /* set return parameters */\n  //opts.table_index += used;\n  opts.bits = root;\n  return 0;\n};\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n  /* Allowed flush values; see deflate() and inflate() below for details */\n  Z_NO_FLUSH:         0,\n  Z_PARTIAL_FLUSH:    1,\n  Z_SYNC_FLUSH:       2,\n  Z_FULL_FLUSH:       3,\n  Z_FINISH:           4,\n  Z_BLOCK:            5,\n  Z_TREES:            6,\n\n  /* Return codes for the compression/decompression functions. Negative values\n  * are errors, positive values are used for special but normal events.\n  */\n  Z_OK:               0,\n  Z_STREAM_END:       1,\n  Z_NEED_DICT:        2,\n  Z_ERRNO:           -1,\n  Z_STREAM_ERROR:    -2,\n  Z_DATA_ERROR:      -3,\n  //Z_MEM_ERROR:     -4,\n  Z_BUF_ERROR:       -5,\n  //Z_VERSION_ERROR: -6,\n\n  /* compression levels */\n  Z_NO_COMPRESSION:         0,\n  Z_BEST_SPEED:             1,\n  Z_BEST_COMPRESSION:       9,\n  Z_DEFAULT_COMPRESSION:   -1,\n\n\n  Z_FILTERED:               1,\n  Z_HUFFMAN_ONLY:           2,\n  Z_RLE:                    3,\n  Z_FIXED:                  4,\n  Z_DEFAULT_STRATEGY:       0,\n\n  /* Possible values of the data_type field (though see inflate()) */\n  Z_BINARY:                 0,\n  Z_TEXT:                   1,\n  //Z_ASCII:                1, // = Z_TEXT (deprecated)\n  Z_UNKNOWN:                2,\n\n  /* The deflate compression method */\n  Z_DEFLATED:               8\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\n};\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(127), __webpack_require__(369), __webpack_require__(370), __webpack_require__(87), __webpack_require__(88), __webpack_require__(168), __webpack_require__(249), __webpack_require__(371), __webpack_require__(250), __webpack_require__(372), __webpack_require__(373), __webpack_require__(374), __webpack_require__(169), __webpack_require__(375), __webpack_require__(49), __webpack_require__(12), __webpack_require__(376), __webpack_require__(377), __webpack_require__(378), __webpack_require__(379), __webpack_require__(380), __webpack_require__(381), __webpack_require__(382), __webpack_require__(383), __webpack_require__(384), __webpack_require__(385), __webpack_require__(386), __webpack_require__(387), __webpack_require__(388), __webpack_require__(389), __webpack_require__(390), __webpack_require__(391));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Check if typed arrays are supported\n\t    if (typeof ArrayBuffer != 'function') {\n\t        return;\n\t    }\n\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\n\t    // Reference original init\n\t    var superInit = WordArray.init;\n\n\t    // Augment WordArray.init to handle typed arrays\n\t    var subInit = WordArray.init = function (typedArray) {\n\t        // Convert buffers to uint8\n\t        if (typedArray instanceof ArrayBuffer) {\n\t            typedArray = new Uint8Array(typedArray);\n\t        }\n\n\t        // Convert other array views to uint8\n\t        if (\n\t            typedArray instanceof Int8Array ||\n\t            (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t            typedArray instanceof Int16Array ||\n\t            typedArray instanceof Uint16Array ||\n\t            typedArray instanceof Int32Array ||\n\t            typedArray instanceof Uint32Array ||\n\t            typedArray instanceof Float32Array ||\n\t            typedArray instanceof Float64Array\n\t        ) {\n\t            typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t        }\n\n\t        // Handle Uint8Array\n\t        if (typedArray instanceof Uint8Array) {\n\t            // Shortcut\n\t            var typedArrayByteLength = typedArray.byteLength;\n\n\t            // Extract bytes\n\t            var words = [];\n\t            for (var i = 0; i < typedArrayByteLength; i++) {\n\t                words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t            }\n\n\t            // Initialize this word array\n\t            superInit.call(this, words, typedArrayByteLength);\n\t        } else {\n\t            // Else call normal init\n\t            superInit.apply(this, arguments);\n\t        }\n\t    };\n\n\t    subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_enc = C.enc;\n\n\t    /**\n\t     * UTF-16 BE encoding strategy.\n\t     */\n\t    var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t        /**\n\t         * Converts a word array to a UTF-16 BE string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-16 BE string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var utf16Chars = [];\n\t            for (var i = 0; i < sigBytes; i += 2) {\n\t                var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t                utf16Chars.push(String.fromCharCode(codePoint));\n\t            }\n\n\t            return utf16Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a UTF-16 BE string to a word array.\n\t         *\n\t         * @param {string} utf16Str The UTF-16 BE string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t         */\n\t        parse: function (utf16Str) {\n\t            // Shortcut\n\t            var utf16StrLength = utf16Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < utf16StrLength; i++) {\n\t                words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t            }\n\n\t            return WordArray.create(words, utf16StrLength * 2);\n\t        }\n\t    };\n\n\t    /**\n\t     * UTF-16 LE encoding strategy.\n\t     */\n\t    C_enc.Utf16LE = {\n\t        /**\n\t         * Converts a word array to a UTF-16 LE string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-16 LE string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var utf16Chars = [];\n\t            for (var i = 0; i < sigBytes; i += 2) {\n\t                var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t                utf16Chars.push(String.fromCharCode(codePoint));\n\t            }\n\n\t            return utf16Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a UTF-16 LE string to a word array.\n\t         *\n\t         * @param {string} utf16Str The UTF-16 LE string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t         */\n\t        parse: function (utf16Str) {\n\t            // Shortcut\n\t            var utf16StrLength = utf16Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < utf16StrLength; i++) {\n\t                words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t            }\n\n\t            return WordArray.create(words, utf16StrLength * 2);\n\t        }\n\t    };\n\n\t    function swapEndian(word) {\n\t        return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t    }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(249));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_algo = C.algo;\n\t    var SHA256 = C_algo.SHA256;\n\n\t    /**\n\t     * SHA-224 hash algorithm.\n\t     */\n\t    var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init([\n\t                0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t                0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t            ]);\n\t        },\n\n\t        _doFinalize: function () {\n\t            var hash = SHA256._doFinalize.call(this);\n\n\t            hash.sigBytes -= 4;\n\n\t            return hash;\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA224('message');\n\t     *     var hash = CryptoJS.SHA224(wordArray);\n\t     */\n\t    C.SHA224 = SHA256._createHelper(SHA224);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA224(message, key);\n\t     */\n\t    C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(127), __webpack_require__(250));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_x64 = C.x64;\n\t    var X64Word = C_x64.Word;\n\t    var X64WordArray = C_x64.WordArray;\n\t    var C_algo = C.algo;\n\t    var SHA512 = C_algo.SHA512;\n\n\t    /**\n\t     * SHA-384 hash algorithm.\n\t     */\n\t    var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t        _doReset: function () {\n\t            this._hash = new X64WordArray.init([\n\t                new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t                new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t                new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t                new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t            ]);\n\t        },\n\n\t        _doFinalize: function () {\n\t            var hash = SHA512._doFinalize.call(this);\n\n\t            hash.sigBytes -= 16;\n\n\t            return hash;\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA384('message');\n\t     *     var hash = CryptoJS.SHA384(wordArray);\n\t     */\n\t    C.SHA384 = SHA512._createHelper(SHA384);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA384(message, key);\n\t     */\n\t    C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(127));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_x64 = C.x64;\n\t    var X64Word = C_x64.Word;\n\t    var C_algo = C.algo;\n\n\t    // Constants tables\n\t    var RHO_OFFSETS = [];\n\t    var PI_INDEXES  = [];\n\t    var ROUND_CONSTANTS = [];\n\n\t    // Compute Constants\n\t    (function () {\n\t        // Compute rho offset constants\n\t        var x = 1, y = 0;\n\t        for (var t = 0; t < 24; t++) {\n\t            RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t            var newX = y % 5;\n\t            var newY = (2 * x + 3 * y) % 5;\n\t            x = newX;\n\t            y = newY;\n\t        }\n\n\t        // Compute pi index constants\n\t        for (var x = 0; x < 5; x++) {\n\t            for (var y = 0; y < 5; y++) {\n\t                PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t            }\n\t        }\n\n\t        // Compute round constants\n\t        var LFSR = 0x01;\n\t        for (var i = 0; i < 24; i++) {\n\t            var roundConstantMsw = 0;\n\t            var roundConstantLsw = 0;\n\n\t            for (var j = 0; j < 7; j++) {\n\t                if (LFSR & 0x01) {\n\t                    var bitPosition = (1 << j) - 1;\n\t                    if (bitPosition < 32) {\n\t                        roundConstantLsw ^= 1 << bitPosition;\n\t                    } else /* if (bitPosition >= 32) */ {\n\t                        roundConstantMsw ^= 1 << (bitPosition - 32);\n\t                    }\n\t                }\n\n\t                // Compute next LFSR\n\t                if (LFSR & 0x80) {\n\t                    // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t                    LFSR = (LFSR << 1) ^ 0x71;\n\t                } else {\n\t                    LFSR <<= 1;\n\t                }\n\t            }\n\n\t            ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t        }\n\t    }());\n\n\t    // Reusable objects for temporary values\n\t    var T = [];\n\t    (function () {\n\t        for (var i = 0; i < 25; i++) {\n\t            T[i] = X64Word.create();\n\t        }\n\t    }());\n\n\t    /**\n\t     * SHA-3 hash algorithm.\n\t     */\n\t    var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {number} outputLength\n\t         *   The desired number of bits in the output hash.\n\t         *   Only values permitted are: 224, 256, 384, 512.\n\t         *   Default: 512\n\t         */\n\t        cfg: Hasher.cfg.extend({\n\t            outputLength: 512\n\t        }),\n\n\t        _doReset: function () {\n\t            var state = this._state = []\n\t            for (var i = 0; i < 25; i++) {\n\t                state[i] = new X64Word.init();\n\t            }\n\n\t            this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcuts\n\t            var state = this._state;\n\t            var nBlockSizeLanes = this.blockSize / 2;\n\n\t            // Absorb\n\t            for (var i = 0; i < nBlockSizeLanes; i++) {\n\t                // Shortcuts\n\t                var M2i  = M[offset + 2 * i];\n\t                var M2i1 = M[offset + 2 * i + 1];\n\n\t                // Swap endian\n\t                M2i = (\n\t                    (((M2i << 8)  | (M2i >>> 24)) & 0x00ff00ff) |\n\t                    (((M2i << 24) | (M2i >>> 8))  & 0xff00ff00)\n\t                );\n\t                M2i1 = (\n\t                    (((M2i1 << 8)  | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t                    (((M2i1 << 24) | (M2i1 >>> 8))  & 0xff00ff00)\n\t                );\n\n\t                // Absorb message into state\n\t                var lane = state[i];\n\t                lane.high ^= M2i1;\n\t                lane.low  ^= M2i;\n\t            }\n\n\t            // Rounds\n\t            for (var round = 0; round < 24; round++) {\n\t                // Theta\n\t                for (var x = 0; x < 5; x++) {\n\t                    // Mix column lanes\n\t                    var tMsw = 0, tLsw = 0;\n\t                    for (var y = 0; y < 5; y++) {\n\t                        var lane = state[x + 5 * y];\n\t                        tMsw ^= lane.high;\n\t                        tLsw ^= lane.low;\n\t                    }\n\n\t                    // Temporary values\n\t                    var Tx = T[x];\n\t                    Tx.high = tMsw;\n\t                    Tx.low  = tLsw;\n\t                }\n\t                for (var x = 0; x < 5; x++) {\n\t                    // Shortcuts\n\t                    var Tx4 = T[(x + 4) % 5];\n\t                    var Tx1 = T[(x + 1) % 5];\n\t                    var Tx1Msw = Tx1.high;\n\t                    var Tx1Lsw = Tx1.low;\n\n\t                    // Mix surrounding columns\n\t                    var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t                    var tLsw = Tx4.low  ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t                    for (var y = 0; y < 5; y++) {\n\t                        var lane = state[x + 5 * y];\n\t                        lane.high ^= tMsw;\n\t                        lane.low  ^= tLsw;\n\t                    }\n\t                }\n\n\t                // Rho Pi\n\t                for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t                    // Shortcuts\n\t                    var lane = state[laneIndex];\n\t                    var laneMsw = lane.high;\n\t                    var laneLsw = lane.low;\n\t                    var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t                    // Rotate lanes\n\t                    if (rhoOffset < 32) {\n\t                        var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t                        var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t                    } else /* if (rhoOffset >= 32) */ {\n\t                        var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t                        var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t                    }\n\n\t                    // Transpose lanes\n\t                    var TPiLane = T[PI_INDEXES[laneIndex]];\n\t                    TPiLane.high = tMsw;\n\t                    TPiLane.low  = tLsw;\n\t                }\n\n\t                // Rho pi at x = y = 0\n\t                var T0 = T[0];\n\t                var state0 = state[0];\n\t                T0.high = state0.high;\n\t                T0.low  = state0.low;\n\n\t                // Chi\n\t                for (var x = 0; x < 5; x++) {\n\t                    for (var y = 0; y < 5; y++) {\n\t                        // Shortcuts\n\t                        var laneIndex = x + 5 * y;\n\t                        var lane = state[laneIndex];\n\t                        var TLane = T[laneIndex];\n\t                        var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t                        var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t                        // Mix rows\n\t                        lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t                        lane.low  = TLane.low  ^ (~Tx1Lane.low  & Tx2Lane.low);\n\t                    }\n\t                }\n\n\t                // Iota\n\t                var lane = state[0];\n\t                var roundConstant = ROUND_CONSTANTS[round];\n\t                lane.high ^= roundConstant.high;\n\t                lane.low  ^= roundConstant.low;;\n\t            }\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\t            var blockSizeBits = this.blockSize * 32;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t            dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t            data.sigBytes = dataWords.length * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Shortcuts\n\t            var state = this._state;\n\t            var outputLengthBytes = this.cfg.outputLength / 8;\n\t            var outputLengthLanes = outputLengthBytes / 8;\n\n\t            // Squeeze\n\t            var hashWords = [];\n\t            for (var i = 0; i < outputLengthLanes; i++) {\n\t                // Shortcuts\n\t                var lane = state[i];\n\t                var laneMsw = lane.high;\n\t                var laneLsw = lane.low;\n\n\t                // Swap endian\n\t                laneMsw = (\n\t                    (((laneMsw << 8)  | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t                    (((laneMsw << 24) | (laneMsw >>> 8))  & 0xff00ff00)\n\t                );\n\t                laneLsw = (\n\t                    (((laneLsw << 8)  | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t                    (((laneLsw << 24) | (laneLsw >>> 8))  & 0xff00ff00)\n\t                );\n\n\t                // Squeeze state to retrieve hash\n\t                hashWords.push(laneLsw);\n\t                hashWords.push(laneMsw);\n\t            }\n\n\t            // Return final computed hash\n\t            return new WordArray.init(hashWords, outputLengthBytes);\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\n\t            var state = clone._state = this._state.slice(0);\n\t            for (var i = 0; i < 25; i++) {\n\t                state[i] = state[i].clone();\n\t            }\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.SHA3('message');\n\t     *     var hash = CryptoJS.SHA3(wordArray);\n\t     */\n\t    C.SHA3 = Hasher._createHelper(SHA3);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacSHA3(message, key);\n\t     */\n\t    C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));\n\n/***/ }),\n/* 374 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t    - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t    - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Constants table\n\t    var _zl = WordArray.create([\n\t        0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\n\t        7,  4, 13,  1, 10,  6, 15,  3, 12,  0,  9,  5,  2, 14, 11,  8,\n\t        3, 10, 14,  4,  9, 15,  8,  1,  2,  7,  0,  6, 13, 11,  5, 12,\n\t        1,  9, 11, 10,  0,  8, 12,  4, 13,  3,  7, 15, 14,  5,  6,  2,\n\t        4,  0,  5,  9,  7, 12,  2, 10, 14,  1,  3,  8, 11,  6, 15, 13]);\n\t    var _zr = WordArray.create([\n\t        5, 14,  7,  0,  9,  2, 11,  4, 13,  6, 15,  8,  1, 10,  3, 12,\n\t        6, 11,  3,  7,  0, 13,  5, 10, 14, 15,  8, 12,  4,  9,  1,  2,\n\t        15,  5,  1,  3,  7, 14,  6,  9, 11,  8, 12,  2, 10,  0,  4, 13,\n\t        8,  6,  4,  1,  3, 11, 15,  0,  5, 12,  2, 13,  9,  7, 10, 14,\n\t        12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11]);\n\t    var _sl = WordArray.create([\n\t         11, 14, 15, 12,  5,  8,  7,  9, 11, 13, 14, 15,  6,  7,  9,  8,\n\t        7, 6,   8, 13, 11,  9,  7, 15,  7, 12, 15,  9, 11,  7, 13, 12,\n\t        11, 13,  6,  7, 14,  9, 13, 15, 14,  8, 13,  6,  5, 12,  7,  5,\n\t          11, 12, 14, 15, 14, 15,  9,  8,  9, 14,  5,  6,  8,  6,  5, 12,\n\t        9, 15,  5, 11,  6,  8, 13, 12,  5, 12, 13, 14, 11,  8,  5,  6 ]);\n\t    var _sr = WordArray.create([\n\t        8,  9,  9, 11, 13, 15, 15,  5,  7,  7,  8, 11, 14, 14, 12,  6,\n\t        9, 13, 15,  7, 12,  8,  9, 11,  7,  7, 12,  7,  6, 15, 13, 11,\n\t        9,  7, 15, 11,  8,  6,  6, 14, 12, 13,  5, 14, 13, 13,  7,  5,\n\t        15,  5,  8, 11, 14, 14,  6, 14,  6,  9, 12,  9, 12,  5, 15,  8,\n\t        8,  5, 12,  9, 12,  5, 14,  6,  8, 13,  6,  5, 15, 13, 11, 11 ]);\n\n\t    var _hl =  WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t    var _hr =  WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t    /**\n\t     * RIPEMD160 hash algorithm.\n\t     */\n\t    var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash  = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\n\t            // Swap endian\n\t            for (var i = 0; i < 16; i++) {\n\t                // Shortcuts\n\t                var offset_i = offset + i;\n\t                var M_offset_i = M[offset_i];\n\n\t                // Swap\n\t                M[offset_i] = (\n\t                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)\n\t                );\n\t            }\n\t            // Shortcut\n\t            var H  = this._hash.words;\n\t            var hl = _hl.words;\n\t            var hr = _hr.words;\n\t            var zl = _zl.words;\n\t            var zr = _zr.words;\n\t            var sl = _sl.words;\n\t            var sr = _sr.words;\n\n\t            // Working variables\n\t            var al, bl, cl, dl, el;\n\t            var ar, br, cr, dr, er;\n\n\t            ar = al = H[0];\n\t            br = bl = H[1];\n\t            cr = cl = H[2];\n\t            dr = dl = H[3];\n\t            er = el = H[4];\n\t            // Computation\n\t            var t;\n\t            for (var i = 0; i < 80; i += 1) {\n\t                t = (al +  M[offset+zl[i]])|0;\n\t                if (i<16){\n\t\t            t +=  f1(bl,cl,dl) + hl[0];\n\t                } else if (i<32) {\n\t\t            t +=  f2(bl,cl,dl) + hl[1];\n\t                } else if (i<48) {\n\t\t            t +=  f3(bl,cl,dl) + hl[2];\n\t                } else if (i<64) {\n\t\t            t +=  f4(bl,cl,dl) + hl[3];\n\t                } else {// if (i<80) {\n\t\t            t +=  f5(bl,cl,dl) + hl[4];\n\t                }\n\t                t = t|0;\n\t                t =  rotl(t,sl[i]);\n\t                t = (t+el)|0;\n\t                al = el;\n\t                el = dl;\n\t                dl = rotl(cl, 10);\n\t                cl = bl;\n\t                bl = t;\n\n\t                t = (ar + M[offset+zr[i]])|0;\n\t                if (i<16){\n\t\t            t +=  f5(br,cr,dr) + hr[0];\n\t                } else if (i<32) {\n\t\t            t +=  f4(br,cr,dr) + hr[1];\n\t                } else if (i<48) {\n\t\t            t +=  f3(br,cr,dr) + hr[2];\n\t                } else if (i<64) {\n\t\t            t +=  f2(br,cr,dr) + hr[3];\n\t                } else {// if (i<80) {\n\t\t            t +=  f1(br,cr,dr) + hr[4];\n\t                }\n\t                t = t|0;\n\t                t =  rotl(t,sr[i]) ;\n\t                t = (t+er)|0;\n\t                ar = er;\n\t                er = dr;\n\t                dr = rotl(cr, 10);\n\t                cr = br;\n\t                br = t;\n\t            }\n\t            // Intermediate hash value\n\t            t    = (H[1] + cl + dr)|0;\n\t            H[1] = (H[2] + dl + er)|0;\n\t            H[2] = (H[3] + el + ar)|0;\n\t            H[3] = (H[4] + al + br)|0;\n\t            H[4] = (H[0] + bl + cr)|0;\n\t            H[0] =  t;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t                (((nBitsTotal << 8)  | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotal << 24) | (nBitsTotal >>> 8))  & 0xff00ff00)\n\t            );\n\t            data.sigBytes = (dataWords.length + 1) * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Shortcuts\n\t            var hash = this._hash;\n\t            var H = hash.words;\n\n\t            // Swap endian\n\t            for (var i = 0; i < 5; i++) {\n\t                // Shortcut\n\t                var H_i = H[i];\n\n\t                // Swap\n\t                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |\n\t                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);\n\t            }\n\n\t            // Return final computed hash\n\t            return hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\n\t    function f1(x, y, z) {\n\t        return ((x) ^ (y) ^ (z));\n\n\t    }\n\n\t    function f2(x, y, z) {\n\t        return (((x)&(y)) | ((~x)&(z)));\n\t    }\n\n\t    function f3(x, y, z) {\n\t        return (((x) | (~(y))) ^ (z));\n\t    }\n\n\t    function f4(x, y, z) {\n\t        return (((x) & (z)) | ((y)&(~(z))));\n\t    }\n\n\t    function f5(x, y, z) {\n\t        return ((x) ^ ((y) |(~(z))));\n\n\t    }\n\n\t    function rotl(x,n) {\n\t        return (x<<n) | (x>>>(32-n));\n\t    }\n\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.RIPEMD160('message');\n\t     *     var hash = CryptoJS.RIPEMD160(wordArray);\n\t     */\n\t    C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t     */\n\t    C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));\n\n/***/ }),\n/* 375 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(168), __webpack_require__(169));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var Base = C_lib.Base;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_algo = C.algo;\n\t    var SHA1 = C_algo.SHA1;\n\t    var HMAC = C_algo.HMAC;\n\n\t    /**\n\t     * Password-Based Key Derivation Function 2 algorithm.\n\t     */\n\t    var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t         * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t         * @property {number} iterations The number of iterations to perform. Default: 1\n\t         */\n\t        cfg: Base.extend({\n\t            keySize: 128/32,\n\t            hasher: SHA1,\n\t            iterations: 1\n\t        }),\n\n\t        /**\n\t         * Initializes a newly created key derivation function.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var kdf = CryptoJS.algo.PBKDF2.create();\n\t         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t         */\n\t        init: function (cfg) {\n\t            this.cfg = this.cfg.extend(cfg);\n\t        },\n\n\t        /**\n\t         * Computes the Password-Based Key Derivation Function 2.\n\t         *\n\t         * @param {WordArray|string} password The password.\n\t         * @param {WordArray|string} salt A salt.\n\t         *\n\t         * @return {WordArray} The derived key.\n\t         *\n\t         * @example\n\t         *\n\t         *     var key = kdf.compute(password, salt);\n\t         */\n\t        compute: function (password, salt) {\n\t            // Shortcut\n\t            var cfg = this.cfg;\n\n\t            // Init HMAC\n\t            var hmac = HMAC.create(cfg.hasher, password);\n\n\t            // Initial values\n\t            var derivedKey = WordArray.create();\n\t            var blockIndex = WordArray.create([0x00000001]);\n\n\t            // Shortcuts\n\t            var derivedKeyWords = derivedKey.words;\n\t            var blockIndexWords = blockIndex.words;\n\t            var keySize = cfg.keySize;\n\t            var iterations = cfg.iterations;\n\n\t            // Generate key\n\t            while (derivedKeyWords.length < keySize) {\n\t                var block = hmac.update(salt).finalize(blockIndex);\n\t                hmac.reset();\n\n\t                // Shortcuts\n\t                var blockWords = block.words;\n\t                var blockWordsLength = blockWords.length;\n\n\t                // Iterations\n\t                var intermediate = block;\n\t                for (var i = 1; i < iterations; i++) {\n\t                    intermediate = hmac.finalize(intermediate);\n\t                    hmac.reset();\n\n\t                    // Shortcut\n\t                    var intermediateWords = intermediate.words;\n\n\t                    // XOR intermediate with block\n\t                    for (var j = 0; j < blockWordsLength; j++) {\n\t                        blockWords[j] ^= intermediateWords[j];\n\t                    }\n\t                }\n\n\t                derivedKey.concat(block);\n\t                blockIndexWords[0]++;\n\t            }\n\t            derivedKey.sigBytes = keySize * 4;\n\n\t            return derivedKey;\n\t        }\n\t    });\n\n\t    /**\n\t     * Computes the Password-Based Key Derivation Function 2.\n\t     *\n\t     * @param {WordArray|string} password The password.\n\t     * @param {WordArray|string} salt A salt.\n\t     * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t     *\n\t     * @return {WordArray} The derived key.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var key = CryptoJS.PBKDF2(password, salt);\n\t     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t     */\n\t    C.PBKDF2 = function (password, salt, cfg) {\n\t        return PBKDF2.create(cfg).compute(password, salt);\n\t    };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t    var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t    CFB.Encryptor = CFB.extend({\n\t        processBlock: function (words, offset) {\n\t            // Shortcuts\n\t            var cipher = this._cipher;\n\t            var blockSize = cipher.blockSize;\n\n\t            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t            // Remember this block to use with next block\n\t            this._prevBlock = words.slice(offset, offset + blockSize);\n\t        }\n\t    });\n\n\t    CFB.Decryptor = CFB.extend({\n\t        processBlock: function (words, offset) {\n\t            // Shortcuts\n\t            var cipher = this._cipher;\n\t            var blockSize = cipher.blockSize;\n\n\t            // Remember this block to use with next block\n\t            var thisBlock = words.slice(offset, offset + blockSize);\n\n\t            generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t            // This block becomes the previous block\n\t            this._prevBlock = thisBlock;\n\t        }\n\t    });\n\n\t    function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t        // Shortcut\n\t        var iv = this._iv;\n\n\t        // Generate keystream\n\t        if (iv) {\n\t            var keystream = iv.slice(0);\n\n\t            // Remove IV for subsequent blocks\n\t            this._iv = undefined;\n\t        } else {\n\t            var keystream = this._prevBlock;\n\t        }\n\t        cipher.encryptBlock(keystream, 0);\n\n\t        // Encrypt\n\t        for (var i = 0; i < blockSize; i++) {\n\t            words[offset + i] ^= keystream[i];\n\t        }\n\t    }\n\n\t    return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));\n\n/***/ }),\n/* 377 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t    var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t    var Encryptor = CTR.Encryptor = CTR.extend({\n\t        processBlock: function (words, offset) {\n\t            // Shortcuts\n\t            var cipher = this._cipher\n\t            var blockSize = cipher.blockSize;\n\t            var iv = this._iv;\n\t            var counter = this._counter;\n\n\t            // Generate keystream\n\t            if (iv) {\n\t                counter = this._counter = iv.slice(0);\n\n\t                // Remove IV for subsequent blocks\n\t                this._iv = undefined;\n\t            }\n\t            var keystream = counter.slice(0);\n\t            cipher.encryptBlock(keystream, 0);\n\n\t            // Increment counter\n\t            counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t            // Encrypt\n\t            for (var i = 0; i < blockSize; i++) {\n\t                words[offset + i] ^= keystream[i];\n\t            }\n\t        }\n\t    });\n\n\t    CTR.Decryptor = Encryptor;\n\n\t    return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));\n\n/***/ }),\n/* 378 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with  Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t    var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from  Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t    var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t        processBlock: function (words, offset) {\n\t            // Shortcuts\n\t            var cipher = this._cipher\n\t            var blockSize = cipher.blockSize;\n\t            var iv = this._iv;\n\t            var counter = this._counter;\n\n\t            // Generate keystream\n\t            if (iv) {\n\t                counter = this._counter = iv.slice(0);\n\n\t                // Remove IV for subsequent blocks\n\t                this._iv = undefined;\n\t            }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t            cipher.encryptBlock(keystream, 0);\n\n\t            // Encrypt\n\t            for (var i = 0; i < blockSize; i++) {\n\t                words[offset + i] ^= keystream[i];\n\t            }\n\t        }\n\t    });\n\n\t    CTRGladman.Decryptor = Encryptor;\n\n\t    return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));\n\n/***/ }),\n/* 379 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t    var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t    var Encryptor = OFB.Encryptor = OFB.extend({\n\t        processBlock: function (words, offset) {\n\t            // Shortcuts\n\t            var cipher = this._cipher\n\t            var blockSize = cipher.blockSize;\n\t            var iv = this._iv;\n\t            var keystream = this._keystream;\n\n\t            // Generate keystream\n\t            if (iv) {\n\t                keystream = this._keystream = iv.slice(0);\n\n\t                // Remove IV for subsequent blocks\n\t                this._iv = undefined;\n\t            }\n\t            cipher.encryptBlock(keystream, 0);\n\n\t            // Encrypt\n\t            for (var i = 0; i < blockSize; i++) {\n\t                words[offset + i] ^= keystream[i];\n\t            }\n\t        }\n\t    });\n\n\t    OFB.Decryptor = Encryptor;\n\n\t    return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t    var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t    ECB.Encryptor = ECB.extend({\n\t        processBlock: function (words, offset) {\n\t            this._cipher.encryptBlock(words, offset);\n\t        }\n\t    });\n\n\t    ECB.Decryptor = ECB.extend({\n\t        processBlock: function (words, offset) {\n\t            this._cipher.decryptBlock(words, offset);\n\t        }\n\t    });\n\n\t    return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t    pad: function (data, blockSize) {\n\t        // Shortcuts\n\t        var dataSigBytes = data.sigBytes;\n\t        var blockSizeBytes = blockSize * 4;\n\n\t        // Count padding bytes\n\t        var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t        // Compute last byte position\n\t        var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t        // Pad\n\t        data.clamp();\n\t        data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t        data.sigBytes += nPaddingBytes;\n\t    },\n\n\t    unpad: function (data) {\n\t        // Get number of padding bytes from last byte\n\t        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t        // Remove padding\n\t        data.sigBytes -= nPaddingBytes;\n\t    }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t    pad: function (data, blockSize) {\n\t        // Shortcut\n\t        var blockSizeBytes = blockSize * 4;\n\n\t        // Count padding bytes\n\t        var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t        // Pad\n\t        data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t             concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t    },\n\n\t    unpad: function (data) {\n\t        // Get number of padding bytes from last byte\n\t        var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t        // Remove padding\n\t        data.sigBytes -= nPaddingBytes;\n\t    }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));\n\n/***/ }),\n/* 383 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t    pad: function (data, blockSize) {\n\t        // Add 0x80 byte\n\t        data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t        // Zero pad the rest\n\t        CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t    },\n\n\t    unpad: function (data) {\n\t        // Remove zero padding\n\t        CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t        // Remove one more byte -- the 0x80 byte\n\t        data.sigBytes--;\n\t    }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));\n\n/***/ }),\n/* 384 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t    pad: function (data, blockSize) {\n\t        // Shortcut\n\t        var blockSizeBytes = blockSize * 4;\n\n\t        // Pad\n\t        data.clamp();\n\t        data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t    },\n\n\t    unpad: function (data) {\n\t        // Shortcut\n\t        var dataWords = data.words;\n\n\t        // Unpad\n\t        var i = data.sigBytes - 1;\n\t        while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t            i--;\n\t        }\n\t        data.sigBytes = i + 1;\n\t    }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));\n\n/***/ }),\n/* 385 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t    pad: function () {\n\t    },\n\n\t    unpad: function () {\n\t    }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));\n\n/***/ }),\n/* 386 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var CipherParams = C_lib.CipherParams;\n\t    var C_enc = C.enc;\n\t    var Hex = C_enc.Hex;\n\t    var C_format = C.format;\n\n\t    var HexFormatter = C_format.Hex = {\n\t        /**\n\t         * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t         *\n\t         * @param {CipherParams} cipherParams The cipher params object.\n\t         *\n\t         * @return {string} The hexadecimally encoded string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t         */\n\t        stringify: function (cipherParams) {\n\t            return cipherParams.ciphertext.toString(Hex);\n\t        },\n\n\t        /**\n\t         * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t         *\n\t         * @param {string} input The hexadecimally encoded string.\n\t         *\n\t         * @return {CipherParams} The cipher params object.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t         */\n\t        parse: function (input) {\n\t            var ciphertext = Hex.parse(input);\n\t            return CipherParams.create({ ciphertext: ciphertext });\n\t        }\n\t    };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(87), __webpack_require__(88), __webpack_require__(49), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var BlockCipher = C_lib.BlockCipher;\n\t    var C_algo = C.algo;\n\n\t    // Lookup tables\n\t    var SBOX = [];\n\t    var INV_SBOX = [];\n\t    var SUB_MIX_0 = [];\n\t    var SUB_MIX_1 = [];\n\t    var SUB_MIX_2 = [];\n\t    var SUB_MIX_3 = [];\n\t    var INV_SUB_MIX_0 = [];\n\t    var INV_SUB_MIX_1 = [];\n\t    var INV_SUB_MIX_2 = [];\n\t    var INV_SUB_MIX_3 = [];\n\n\t    // Compute lookup tables\n\t    (function () {\n\t        // Compute double table\n\t        var d = [];\n\t        for (var i = 0; i < 256; i++) {\n\t            if (i < 128) {\n\t                d[i] = i << 1;\n\t            } else {\n\t                d[i] = (i << 1) ^ 0x11b;\n\t            }\n\t        }\n\n\t        // Walk GF(2^8)\n\t        var x = 0;\n\t        var xi = 0;\n\t        for (var i = 0; i < 256; i++) {\n\t            // Compute sbox\n\t            var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t            sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t            SBOX[x] = sx;\n\t            INV_SBOX[sx] = x;\n\n\t            // Compute multiplication\n\t            var x2 = d[x];\n\t            var x4 = d[x2];\n\t            var x8 = d[x4];\n\n\t            // Compute sub bytes, mix columns tables\n\t            var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t            SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t            SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t            SUB_MIX_2[x] = (t << 8)  | (t >>> 24);\n\t            SUB_MIX_3[x] = t;\n\n\t            // Compute inv sub bytes, inv mix columns tables\n\t            var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t            INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t            INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t            INV_SUB_MIX_2[sx] = (t << 8)  | (t >>> 24);\n\t            INV_SUB_MIX_3[sx] = t;\n\n\t            // Compute next counter\n\t            if (!x) {\n\t                x = xi = 1;\n\t            } else {\n\t                x = x2 ^ d[d[d[x8 ^ x2]]];\n\t                xi ^= d[d[xi]];\n\t            }\n\t        }\n\t    }());\n\n\t    // Precomputed Rcon lookup\n\t    var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t    /**\n\t     * AES block cipher algorithm.\n\t     */\n\t    var AES = C_algo.AES = BlockCipher.extend({\n\t        _doReset: function () {\n\t            // Skip reset of nRounds has been set before and key did not change\n\t            if (this._nRounds && this._keyPriorReset === this._key) {\n\t                return;\n\t            }\n\n\t            // Shortcuts\n\t            var key = this._keyPriorReset = this._key;\n\t            var keyWords = key.words;\n\t            var keySize = key.sigBytes / 4;\n\n\t            // Compute number of rounds\n\t            var nRounds = this._nRounds = keySize + 6;\n\n\t            // Compute number of key schedule rows\n\t            var ksRows = (nRounds + 1) * 4;\n\n\t            // Compute key schedule\n\t            var keySchedule = this._keySchedule = [];\n\t            for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t                if (ksRow < keySize) {\n\t                    keySchedule[ksRow] = keyWords[ksRow];\n\t                } else {\n\t                    var t = keySchedule[ksRow - 1];\n\n\t                    if (!(ksRow % keySize)) {\n\t                        // Rot word\n\t                        t = (t << 8) | (t >>> 24);\n\n\t                        // Sub word\n\t                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t                        // Mix Rcon\n\t                        t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t                    } else if (keySize > 6 && ksRow % keySize == 4) {\n\t                        // Sub word\n\t                        t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t                    }\n\n\t                    keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t                }\n\t            }\n\n\t            // Compute inv key schedule\n\t            var invKeySchedule = this._invKeySchedule = [];\n\t            for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t                var ksRow = ksRows - invKsRow;\n\n\t                if (invKsRow % 4) {\n\t                    var t = keySchedule[ksRow];\n\t                } else {\n\t                    var t = keySchedule[ksRow - 4];\n\t                }\n\n\t                if (invKsRow < 4 || ksRow <= 4) {\n\t                    invKeySchedule[invKsRow] = t;\n\t                } else {\n\t                    invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t                                               INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t                }\n\t            }\n\t        },\n\n\t        encryptBlock: function (M, offset) {\n\t            this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t        },\n\n\t        decryptBlock: function (M, offset) {\n\t            // Swap 2nd and 4th rows\n\t            var t = M[offset + 1];\n\t            M[offset + 1] = M[offset + 3];\n\t            M[offset + 3] = t;\n\n\t            this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t            // Inv swap 2nd and 4th rows\n\t            var t = M[offset + 1];\n\t            M[offset + 1] = M[offset + 3];\n\t            M[offset + 3] = t;\n\t        },\n\n\t        _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t            // Shortcut\n\t            var nRounds = this._nRounds;\n\n\t            // Get input, add round key\n\t            var s0 = M[offset]     ^ keySchedule[0];\n\t            var s1 = M[offset + 1] ^ keySchedule[1];\n\t            var s2 = M[offset + 2] ^ keySchedule[2];\n\t            var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t            // Key schedule row counter\n\t            var ksRow = 4;\n\n\t            // Rounds\n\t            for (var round = 1; round < nRounds; round++) {\n\t                // Shift rows, sub bytes, mix columns, add round key\n\t                var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t                var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t                var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t                var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t                // Update state\n\t                s0 = t0;\n\t                s1 = t1;\n\t                s2 = t2;\n\t                s3 = t3;\n\t            }\n\n\t            // Shift rows, sub bytes, add round key\n\t            var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t            var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t            var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t            var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t            // Set output\n\t            M[offset]     = t0;\n\t            M[offset + 1] = t1;\n\t            M[offset + 2] = t2;\n\t            M[offset + 3] = t3;\n\t        },\n\n\t        keySize: 256/32\n\t    });\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));\n\n/***/ }),\n/* 388 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(87), __webpack_require__(88), __webpack_require__(49), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var BlockCipher = C_lib.BlockCipher;\n\t    var C_algo = C.algo;\n\n\t    // Permuted Choice 1 constants\n\t    var PC1 = [\n\t        57, 49, 41, 33, 25, 17, 9,  1,\n\t        58, 50, 42, 34, 26, 18, 10, 2,\n\t        59, 51, 43, 35, 27, 19, 11, 3,\n\t        60, 52, 44, 36, 63, 55, 47, 39,\n\t        31, 23, 15, 7,  62, 54, 46, 38,\n\t        30, 22, 14, 6,  61, 53, 45, 37,\n\t        29, 21, 13, 5,  28, 20, 12, 4\n\t    ];\n\n\t    // Permuted Choice 2 constants\n\t    var PC2 = [\n\t        14, 17, 11, 24, 1,  5,\n\t        3,  28, 15, 6,  21, 10,\n\t        23, 19, 12, 4,  26, 8,\n\t        16, 7,  27, 20, 13, 2,\n\t        41, 52, 31, 37, 47, 55,\n\t        30, 40, 51, 45, 33, 48,\n\t        44, 49, 39, 56, 34, 53,\n\t        46, 42, 50, 36, 29, 32\n\t    ];\n\n\t    // Cumulative bit shift constants\n\t    var BIT_SHIFTS = [1,  2,  4,  6,  8,  10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t    // SBOXes and round permutation constants\n\t    var SBOX_P = [\n\t        {\n\t            0x0: 0x808200,\n\t            0x10000000: 0x8000,\n\t            0x20000000: 0x808002,\n\t            0x30000000: 0x2,\n\t            0x40000000: 0x200,\n\t            0x50000000: 0x808202,\n\t            0x60000000: 0x800202,\n\t            0x70000000: 0x800000,\n\t            0x80000000: 0x202,\n\t            0x90000000: 0x800200,\n\t            0xa0000000: 0x8200,\n\t            0xb0000000: 0x808000,\n\t            0xc0000000: 0x8002,\n\t            0xd0000000: 0x800002,\n\t            0xe0000000: 0x0,\n\t            0xf0000000: 0x8202,\n\t            0x8000000: 0x0,\n\t            0x18000000: 0x808202,\n\t            0x28000000: 0x8202,\n\t            0x38000000: 0x8000,\n\t            0x48000000: 0x808200,\n\t            0x58000000: 0x200,\n\t            0x68000000: 0x808002,\n\t            0x78000000: 0x2,\n\t            0x88000000: 0x800200,\n\t            0x98000000: 0x8200,\n\t            0xa8000000: 0x808000,\n\t            0xb8000000: 0x800202,\n\t            0xc8000000: 0x800002,\n\t            0xd8000000: 0x8002,\n\t            0xe8000000: 0x202,\n\t            0xf8000000: 0x800000,\n\t            0x1: 0x8000,\n\t            0x10000001: 0x2,\n\t            0x20000001: 0x808200,\n\t            0x30000001: 0x800000,\n\t            0x40000001: 0x808002,\n\t            0x50000001: 0x8200,\n\t            0x60000001: 0x200,\n\t            0x70000001: 0x800202,\n\t            0x80000001: 0x808202,\n\t            0x90000001: 0x808000,\n\t            0xa0000001: 0x800002,\n\t            0xb0000001: 0x8202,\n\t            0xc0000001: 0x202,\n\t            0xd0000001: 0x800200,\n\t            0xe0000001: 0x8002,\n\t            0xf0000001: 0x0,\n\t            0x8000001: 0x808202,\n\t            0x18000001: 0x808000,\n\t            0x28000001: 0x800000,\n\t            0x38000001: 0x200,\n\t            0x48000001: 0x8000,\n\t            0x58000001: 0x800002,\n\t            0x68000001: 0x2,\n\t            0x78000001: 0x8202,\n\t            0x88000001: 0x8002,\n\t            0x98000001: 0x800202,\n\t            0xa8000001: 0x202,\n\t            0xb8000001: 0x808200,\n\t            0xc8000001: 0x800200,\n\t            0xd8000001: 0x0,\n\t            0xe8000001: 0x8200,\n\t            0xf8000001: 0x808002\n\t        },\n\t        {\n\t            0x0: 0x40084010,\n\t            0x1000000: 0x4000,\n\t            0x2000000: 0x80000,\n\t            0x3000000: 0x40080010,\n\t            0x4000000: 0x40000010,\n\t            0x5000000: 0x40084000,\n\t            0x6000000: 0x40004000,\n\t            0x7000000: 0x10,\n\t            0x8000000: 0x84000,\n\t            0x9000000: 0x40004010,\n\t            0xa000000: 0x40000000,\n\t            0xb000000: 0x84010,\n\t            0xc000000: 0x80010,\n\t            0xd000000: 0x0,\n\t            0xe000000: 0x4010,\n\t            0xf000000: 0x40080000,\n\t            0x800000: 0x40004000,\n\t            0x1800000: 0x84010,\n\t            0x2800000: 0x10,\n\t            0x3800000: 0x40004010,\n\t            0x4800000: 0x40084010,\n\t            0x5800000: 0x40000000,\n\t            0x6800000: 0x80000,\n\t            0x7800000: 0x40080010,\n\t            0x8800000: 0x80010,\n\t            0x9800000: 0x0,\n\t            0xa800000: 0x4000,\n\t            0xb800000: 0x40080000,\n\t            0xc800000: 0x40000010,\n\t            0xd800000: 0x84000,\n\t            0xe800000: 0x40084000,\n\t            0xf800000: 0x4010,\n\t            0x10000000: 0x0,\n\t            0x11000000: 0x40080010,\n\t            0x12000000: 0x40004010,\n\t            0x13000000: 0x40084000,\n\t            0x14000000: 0x40080000,\n\t            0x15000000: 0x10,\n\t            0x16000000: 0x84010,\n\t            0x17000000: 0x4000,\n\t            0x18000000: 0x4010,\n\t            0x19000000: 0x80000,\n\t            0x1a000000: 0x80010,\n\t            0x1b000000: 0x40000010,\n\t            0x1c000000: 0x84000,\n\t            0x1d000000: 0x40004000,\n\t            0x1e000000: 0x40000000,\n\t            0x1f000000: 0x40084010,\n\t            0x10800000: 0x84010,\n\t            0x11800000: 0x80000,\n\t            0x12800000: 0x40080000,\n\t            0x13800000: 0x4000,\n\t            0x14800000: 0x40004000,\n\t            0x15800000: 0x40084010,\n\t            0x16800000: 0x10,\n\t            0x17800000: 0x40000000,\n\t            0x18800000: 0x40084000,\n\t            0x19800000: 0x40000010,\n\t            0x1a800000: 0x40004010,\n\t            0x1b800000: 0x80010,\n\t            0x1c800000: 0x0,\n\t            0x1d800000: 0x4010,\n\t            0x1e800000: 0x40080010,\n\t            0x1f800000: 0x84000\n\t        },\n\t        {\n\t            0x0: 0x104,\n\t            0x100000: 0x0,\n\t            0x200000: 0x4000100,\n\t            0x300000: 0x10104,\n\t            0x400000: 0x10004,\n\t            0x500000: 0x4000004,\n\t            0x600000: 0x4010104,\n\t            0x700000: 0x4010000,\n\t            0x800000: 0x4000000,\n\t            0x900000: 0x4010100,\n\t            0xa00000: 0x10100,\n\t            0xb00000: 0x4010004,\n\t            0xc00000: 0x4000104,\n\t            0xd00000: 0x10000,\n\t            0xe00000: 0x4,\n\t            0xf00000: 0x100,\n\t            0x80000: 0x4010100,\n\t            0x180000: 0x4010004,\n\t            0x280000: 0x0,\n\t            0x380000: 0x4000100,\n\t            0x480000: 0x4000004,\n\t            0x580000: 0x10000,\n\t            0x680000: 0x10004,\n\t            0x780000: 0x104,\n\t            0x880000: 0x4,\n\t            0x980000: 0x100,\n\t            0xa80000: 0x4010000,\n\t            0xb80000: 0x10104,\n\t            0xc80000: 0x10100,\n\t            0xd80000: 0x4000104,\n\t            0xe80000: 0x4010104,\n\t            0xf80000: 0x4000000,\n\t            0x1000000: 0x4010100,\n\t            0x1100000: 0x10004,\n\t            0x1200000: 0x10000,\n\t            0x1300000: 0x4000100,\n\t            0x1400000: 0x100,\n\t            0x1500000: 0x4010104,\n\t            0x1600000: 0x4000004,\n\t            0x1700000: 0x0,\n\t            0x1800000: 0x4000104,\n\t            0x1900000: 0x4000000,\n\t            0x1a00000: 0x4,\n\t            0x1b00000: 0x10100,\n\t            0x1c00000: 0x4010000,\n\t            0x1d00000: 0x104,\n\t            0x1e00000: 0x10104,\n\t            0x1f00000: 0x4010004,\n\t            0x1080000: 0x4000000,\n\t            0x1180000: 0x104,\n\t            0x1280000: 0x4010100,\n\t            0x1380000: 0x0,\n\t            0x1480000: 0x10004,\n\t            0x1580000: 0x4000100,\n\t            0x1680000: 0x100,\n\t            0x1780000: 0x4010004,\n\t            0x1880000: 0x10000,\n\t            0x1980000: 0x4010104,\n\t            0x1a80000: 0x10104,\n\t            0x1b80000: 0x4000004,\n\t            0x1c80000: 0x4000104,\n\t            0x1d80000: 0x4010000,\n\t            0x1e80000: 0x4,\n\t            0x1f80000: 0x10100\n\t        },\n\t        {\n\t            0x0: 0x80401000,\n\t            0x10000: 0x80001040,\n\t            0x20000: 0x401040,\n\t            0x30000: 0x80400000,\n\t            0x40000: 0x0,\n\t            0x50000: 0x401000,\n\t            0x60000: 0x80000040,\n\t            0x70000: 0x400040,\n\t            0x80000: 0x80000000,\n\t            0x90000: 0x400000,\n\t            0xa0000: 0x40,\n\t            0xb0000: 0x80001000,\n\t            0xc0000: 0x80400040,\n\t            0xd0000: 0x1040,\n\t            0xe0000: 0x1000,\n\t            0xf0000: 0x80401040,\n\t            0x8000: 0x80001040,\n\t            0x18000: 0x40,\n\t            0x28000: 0x80400040,\n\t            0x38000: 0x80001000,\n\t            0x48000: 0x401000,\n\t            0x58000: 0x80401040,\n\t            0x68000: 0x0,\n\t            0x78000: 0x80400000,\n\t            0x88000: 0x1000,\n\t            0x98000: 0x80401000,\n\t            0xa8000: 0x400000,\n\t            0xb8000: 0x1040,\n\t            0xc8000: 0x80000000,\n\t            0xd8000: 0x400040,\n\t            0xe8000: 0x401040,\n\t            0xf8000: 0x80000040,\n\t            0x100000: 0x400040,\n\t            0x110000: 0x401000,\n\t            0x120000: 0x80000040,\n\t            0x130000: 0x0,\n\t            0x140000: 0x1040,\n\t            0x150000: 0x80400040,\n\t            0x160000: 0x80401000,\n\t            0x170000: 0x80001040,\n\t            0x180000: 0x80401040,\n\t            0x190000: 0x80000000,\n\t            0x1a0000: 0x80400000,\n\t            0x1b0000: 0x401040,\n\t            0x1c0000: 0x80001000,\n\t            0x1d0000: 0x400000,\n\t            0x1e0000: 0x40,\n\t            0x1f0000: 0x1000,\n\t            0x108000: 0x80400000,\n\t            0x118000: 0x80401040,\n\t            0x128000: 0x0,\n\t            0x138000: 0x401000,\n\t            0x148000: 0x400040,\n\t            0x158000: 0x80000000,\n\t            0x168000: 0x80001040,\n\t            0x178000: 0x40,\n\t            0x188000: 0x80000040,\n\t            0x198000: 0x1000,\n\t            0x1a8000: 0x80001000,\n\t            0x1b8000: 0x80400040,\n\t            0x1c8000: 0x1040,\n\t            0x1d8000: 0x80401000,\n\t            0x1e8000: 0x400000,\n\t            0x1f8000: 0x401040\n\t        },\n\t        {\n\t            0x0: 0x80,\n\t            0x1000: 0x1040000,\n\t            0x2000: 0x40000,\n\t            0x3000: 0x20000000,\n\t            0x4000: 0x20040080,\n\t            0x5000: 0x1000080,\n\t            0x6000: 0x21000080,\n\t            0x7000: 0x40080,\n\t            0x8000: 0x1000000,\n\t            0x9000: 0x20040000,\n\t            0xa000: 0x20000080,\n\t            0xb000: 0x21040080,\n\t            0xc000: 0x21040000,\n\t            0xd000: 0x0,\n\t            0xe000: 0x1040080,\n\t            0xf000: 0x21000000,\n\t            0x800: 0x1040080,\n\t            0x1800: 0x21000080,\n\t            0x2800: 0x80,\n\t            0x3800: 0x1040000,\n\t            0x4800: 0x40000,\n\t            0x5800: 0x20040080,\n\t            0x6800: 0x21040000,\n\t            0x7800: 0x20000000,\n\t            0x8800: 0x20040000,\n\t            0x9800: 0x0,\n\t            0xa800: 0x21040080,\n\t            0xb800: 0x1000080,\n\t            0xc800: 0x20000080,\n\t            0xd800: 0x21000000,\n\t            0xe800: 0x1000000,\n\t            0xf800: 0x40080,\n\t            0x10000: 0x40000,\n\t            0x11000: 0x80,\n\t            0x12000: 0x20000000,\n\t            0x13000: 0x21000080,\n\t            0x14000: 0x1000080,\n\t            0x15000: 0x21040000,\n\t            0x16000: 0x20040080,\n\t            0x17000: 0x1000000,\n\t            0x18000: 0x21040080,\n\t            0x19000: 0x21000000,\n\t            0x1a000: 0x1040000,\n\t            0x1b000: 0x20040000,\n\t            0x1c000: 0x40080,\n\t            0x1d000: 0x20000080,\n\t            0x1e000: 0x0,\n\t            0x1f000: 0x1040080,\n\t            0x10800: 0x21000080,\n\t            0x11800: 0x1000000,\n\t            0x12800: 0x1040000,\n\t            0x13800: 0x20040080,\n\t            0x14800: 0x20000000,\n\t            0x15800: 0x1040080,\n\t            0x16800: 0x80,\n\t            0x17800: 0x21040000,\n\t            0x18800: 0x40080,\n\t            0x19800: 0x21040080,\n\t            0x1a800: 0x0,\n\t            0x1b800: 0x21000000,\n\t            0x1c800: 0x1000080,\n\t            0x1d800: 0x40000,\n\t            0x1e800: 0x20040000,\n\t            0x1f800: 0x20000080\n\t        },\n\t        {\n\t            0x0: 0x10000008,\n\t            0x100: 0x2000,\n\t            0x200: 0x10200000,\n\t            0x300: 0x10202008,\n\t            0x400: 0x10002000,\n\t            0x500: 0x200000,\n\t            0x600: 0x200008,\n\t            0x700: 0x10000000,\n\t            0x800: 0x0,\n\t            0x900: 0x10002008,\n\t            0xa00: 0x202000,\n\t            0xb00: 0x8,\n\t            0xc00: 0x10200008,\n\t            0xd00: 0x202008,\n\t            0xe00: 0x2008,\n\t            0xf00: 0x10202000,\n\t            0x80: 0x10200000,\n\t            0x180: 0x10202008,\n\t            0x280: 0x8,\n\t            0x380: 0x200000,\n\t            0x480: 0x202008,\n\t            0x580: 0x10000008,\n\t            0x680: 0x10002000,\n\t            0x780: 0x2008,\n\t            0x880: 0x200008,\n\t            0x980: 0x2000,\n\t            0xa80: 0x10002008,\n\t            0xb80: 0x10200008,\n\t            0xc80: 0x0,\n\t            0xd80: 0x10202000,\n\t            0xe80: 0x202000,\n\t            0xf80: 0x10000000,\n\t            0x1000: 0x10002000,\n\t            0x1100: 0x10200008,\n\t            0x1200: 0x10202008,\n\t            0x1300: 0x2008,\n\t            0x1400: 0x200000,\n\t            0x1500: 0x10000000,\n\t            0x1600: 0x10000008,\n\t            0x1700: 0x202000,\n\t            0x1800: 0x202008,\n\t            0x1900: 0x0,\n\t            0x1a00: 0x8,\n\t            0x1b00: 0x10200000,\n\t            0x1c00: 0x2000,\n\t            0x1d00: 0x10002008,\n\t            0x1e00: 0x10202000,\n\t            0x1f00: 0x200008,\n\t            0x1080: 0x8,\n\t            0x1180: 0x202000,\n\t            0x1280: 0x200000,\n\t            0x1380: 0x10000008,\n\t            0x1480: 0x10002000,\n\t            0x1580: 0x2008,\n\t            0x1680: 0x10202008,\n\t            0x1780: 0x10200000,\n\t            0x1880: 0x10202000,\n\t            0x1980: 0x10200008,\n\t            0x1a80: 0x2000,\n\t            0x1b80: 0x202008,\n\t            0x1c80: 0x200008,\n\t            0x1d80: 0x0,\n\t            0x1e80: 0x10000000,\n\t            0x1f80: 0x10002008\n\t        },\n\t        {\n\t            0x0: 0x100000,\n\t            0x10: 0x2000401,\n\t            0x20: 0x400,\n\t            0x30: 0x100401,\n\t            0x40: 0x2100401,\n\t            0x50: 0x0,\n\t            0x60: 0x1,\n\t            0x70: 0x2100001,\n\t            0x80: 0x2000400,\n\t            0x90: 0x100001,\n\t            0xa0: 0x2000001,\n\t            0xb0: 0x2100400,\n\t            0xc0: 0x2100000,\n\t            0xd0: 0x401,\n\t            0xe0: 0x100400,\n\t            0xf0: 0x2000000,\n\t            0x8: 0x2100001,\n\t            0x18: 0x0,\n\t            0x28: 0x2000401,\n\t            0x38: 0x2100400,\n\t            0x48: 0x100000,\n\t            0x58: 0x2000001,\n\t            0x68: 0x2000000,\n\t            0x78: 0x401,\n\t            0x88: 0x100401,\n\t            0x98: 0x2000400,\n\t            0xa8: 0x2100000,\n\t            0xb8: 0x100001,\n\t            0xc8: 0x400,\n\t            0xd8: 0x2100401,\n\t            0xe8: 0x1,\n\t            0xf8: 0x100400,\n\t            0x100: 0x2000000,\n\t            0x110: 0x100000,\n\t            0x120: 0x2000401,\n\t            0x130: 0x2100001,\n\t            0x140: 0x100001,\n\t            0x150: 0x2000400,\n\t            0x160: 0x2100400,\n\t            0x170: 0x100401,\n\t            0x180: 0x401,\n\t            0x190: 0x2100401,\n\t            0x1a0: 0x100400,\n\t            0x1b0: 0x1,\n\t            0x1c0: 0x0,\n\t            0x1d0: 0x2100000,\n\t            0x1e0: 0x2000001,\n\t            0x1f0: 0x400,\n\t            0x108: 0x100400,\n\t            0x118: 0x2000401,\n\t            0x128: 0x2100001,\n\t            0x138: 0x1,\n\t            0x148: 0x2000000,\n\t            0x158: 0x100000,\n\t            0x168: 0x401,\n\t            0x178: 0x2100400,\n\t            0x188: 0x2000001,\n\t            0x198: 0x2100000,\n\t            0x1a8: 0x0,\n\t            0x1b8: 0x2100401,\n\t            0x1c8: 0x100401,\n\t            0x1d8: 0x400,\n\t            0x1e8: 0x2000400,\n\t            0x1f8: 0x100001\n\t        },\n\t        {\n\t            0x0: 0x8000820,\n\t            0x1: 0x20000,\n\t            0x2: 0x8000000,\n\t            0x3: 0x20,\n\t            0x4: 0x20020,\n\t            0x5: 0x8020820,\n\t            0x6: 0x8020800,\n\t            0x7: 0x800,\n\t            0x8: 0x8020000,\n\t            0x9: 0x8000800,\n\t            0xa: 0x20800,\n\t            0xb: 0x8020020,\n\t            0xc: 0x820,\n\t            0xd: 0x0,\n\t            0xe: 0x8000020,\n\t            0xf: 0x20820,\n\t            0x80000000: 0x800,\n\t            0x80000001: 0x8020820,\n\t            0x80000002: 0x8000820,\n\t            0x80000003: 0x8000000,\n\t            0x80000004: 0x8020000,\n\t            0x80000005: 0x20800,\n\t            0x80000006: 0x20820,\n\t            0x80000007: 0x20,\n\t            0x80000008: 0x8000020,\n\t            0x80000009: 0x820,\n\t            0x8000000a: 0x20020,\n\t            0x8000000b: 0x8020800,\n\t            0x8000000c: 0x0,\n\t            0x8000000d: 0x8020020,\n\t            0x8000000e: 0x8000800,\n\t            0x8000000f: 0x20000,\n\t            0x10: 0x20820,\n\t            0x11: 0x8020800,\n\t            0x12: 0x20,\n\t            0x13: 0x800,\n\t            0x14: 0x8000800,\n\t            0x15: 0x8000020,\n\t            0x16: 0x8020020,\n\t            0x17: 0x20000,\n\t            0x18: 0x0,\n\t            0x19: 0x20020,\n\t            0x1a: 0x8020000,\n\t            0x1b: 0x8000820,\n\t            0x1c: 0x8020820,\n\t            0x1d: 0x20800,\n\t            0x1e: 0x820,\n\t            0x1f: 0x8000000,\n\t            0x80000010: 0x20000,\n\t            0x80000011: 0x800,\n\t            0x80000012: 0x8020020,\n\t            0x80000013: 0x20820,\n\t            0x80000014: 0x20,\n\t            0x80000015: 0x8020000,\n\t            0x80000016: 0x8000000,\n\t            0x80000017: 0x8000820,\n\t            0x80000018: 0x8020820,\n\t            0x80000019: 0x8000020,\n\t            0x8000001a: 0x8000800,\n\t            0x8000001b: 0x0,\n\t            0x8000001c: 0x20800,\n\t            0x8000001d: 0x820,\n\t            0x8000001e: 0x20020,\n\t            0x8000001f: 0x8020800\n\t        }\n\t    ];\n\n\t    // Masks that select the SBOX input\n\t    var SBOX_MASK = [\n\t        0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t        0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t    ];\n\n\t    /**\n\t     * DES block cipher algorithm.\n\t     */\n\t    var DES = C_algo.DES = BlockCipher.extend({\n\t        _doReset: function () {\n\t            // Shortcuts\n\t            var key = this._key;\n\t            var keyWords = key.words;\n\n\t            // Select 56 bits according to PC1\n\t            var keyBits = [];\n\t            for (var i = 0; i < 56; i++) {\n\t                var keyBitPos = PC1[i] - 1;\n\t                keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t            }\n\n\t            // Assemble 16 subkeys\n\t            var subKeys = this._subKeys = [];\n\t            for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t                // Create subkey\n\t                var subKey = subKeys[nSubKey] = [];\n\n\t                // Shortcut\n\t                var bitShift = BIT_SHIFTS[nSubKey];\n\n\t                // Select 48 bits according to PC2\n\t                for (var i = 0; i < 24; i++) {\n\t                    // Select from the left 28 key bits\n\t                    subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t                    // Select from the right 28 key bits\n\t                    subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t                }\n\n\t                // Since each subkey is applied to an expanded 32-bit input,\n\t                // the subkey can be broken into 8 values scaled to 32-bits,\n\t                // which allows the key to be used without expansion\n\t                subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t                for (var i = 1; i < 7; i++) {\n\t                    subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t                }\n\t                subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t            }\n\n\t            // Compute inverse subkeys\n\t            var invSubKeys = this._invSubKeys = [];\n\t            for (var i = 0; i < 16; i++) {\n\t                invSubKeys[i] = subKeys[15 - i];\n\t            }\n\t        },\n\n\t        encryptBlock: function (M, offset) {\n\t            this._doCryptBlock(M, offset, this._subKeys);\n\t        },\n\n\t        decryptBlock: function (M, offset) {\n\t            this._doCryptBlock(M, offset, this._invSubKeys);\n\t        },\n\n\t        _doCryptBlock: function (M, offset, subKeys) {\n\t            // Get input\n\t            this._lBlock = M[offset];\n\t            this._rBlock = M[offset + 1];\n\n\t            // Initial permutation\n\t            exchangeLR.call(this, 4,  0x0f0f0f0f);\n\t            exchangeLR.call(this, 16, 0x0000ffff);\n\t            exchangeRL.call(this, 2,  0x33333333);\n\t            exchangeRL.call(this, 8,  0x00ff00ff);\n\t            exchangeLR.call(this, 1,  0x55555555);\n\n\t            // Rounds\n\t            for (var round = 0; round < 16; round++) {\n\t                // Shortcuts\n\t                var subKey = subKeys[round];\n\t                var lBlock = this._lBlock;\n\t                var rBlock = this._rBlock;\n\n\t                // Feistel function\n\t                var f = 0;\n\t                for (var i = 0; i < 8; i++) {\n\t                    f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t                }\n\t                this._lBlock = rBlock;\n\t                this._rBlock = lBlock ^ f;\n\t            }\n\n\t            // Undo swap from last round\n\t            var t = this._lBlock;\n\t            this._lBlock = this._rBlock;\n\t            this._rBlock = t;\n\n\t            // Final permutation\n\t            exchangeLR.call(this, 1,  0x55555555);\n\t            exchangeRL.call(this, 8,  0x00ff00ff);\n\t            exchangeRL.call(this, 2,  0x33333333);\n\t            exchangeLR.call(this, 16, 0x0000ffff);\n\t            exchangeLR.call(this, 4,  0x0f0f0f0f);\n\n\t            // Set output\n\t            M[offset] = this._lBlock;\n\t            M[offset + 1] = this._rBlock;\n\t        },\n\n\t        keySize: 64/32,\n\n\t        ivSize: 64/32,\n\n\t        blockSize: 64/32\n\t    });\n\n\t    // Swap bits across the left and right words\n\t    function exchangeLR(offset, mask) {\n\t        var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t        this._rBlock ^= t;\n\t        this._lBlock ^= t << offset;\n\t    }\n\n\t    function exchangeRL(offset, mask) {\n\t        var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t        this._lBlock ^= t;\n\t        this._rBlock ^= t << offset;\n\t    }\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.DES = BlockCipher._createHelper(DES);\n\n\t    /**\n\t     * Triple-DES block cipher algorithm.\n\t     */\n\t    var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t        _doReset: function () {\n\t            // Shortcuts\n\t            var key = this._key;\n\t            var keyWords = key.words;\n\n\t            // Create DES instances\n\t            this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));\n\t            this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));\n\t            this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));\n\t        },\n\n\t        encryptBlock: function (M, offset) {\n\t            this._des1.encryptBlock(M, offset);\n\t            this._des2.decryptBlock(M, offset);\n\t            this._des3.encryptBlock(M, offset);\n\t        },\n\n\t        decryptBlock: function (M, offset) {\n\t            this._des3.decryptBlock(M, offset);\n\t            this._des2.encryptBlock(M, offset);\n\t            this._des1.decryptBlock(M, offset);\n\t        },\n\n\t        keySize: 192/32,\n\n\t        ivSize: 64/32,\n\n\t        blockSize: 64/32\n\t    });\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(87), __webpack_require__(88), __webpack_require__(49), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var StreamCipher = C_lib.StreamCipher;\n\t    var C_algo = C.algo;\n\n\t    /**\n\t     * RC4 stream cipher algorithm.\n\t     */\n\t    var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t        _doReset: function () {\n\t            // Shortcuts\n\t            var key = this._key;\n\t            var keyWords = key.words;\n\t            var keySigBytes = key.sigBytes;\n\n\t            // Init sbox\n\t            var S = this._S = [];\n\t            for (var i = 0; i < 256; i++) {\n\t                S[i] = i;\n\t            }\n\n\t            // Key setup\n\t            for (var i = 0, j = 0; i < 256; i++) {\n\t                var keyByteIndex = i % keySigBytes;\n\t                var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t                j = (j + S[i] + keyByte) % 256;\n\n\t                // Swap\n\t                var t = S[i];\n\t                S[i] = S[j];\n\t                S[j] = t;\n\t            }\n\n\t            // Counters\n\t            this._i = this._j = 0;\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            M[offset] ^= generateKeystreamWord.call(this);\n\t        },\n\n\t        keySize: 256/32,\n\n\t        ivSize: 0\n\t    });\n\n\t    function generateKeystreamWord() {\n\t        // Shortcuts\n\t        var S = this._S;\n\t        var i = this._i;\n\t        var j = this._j;\n\n\t        // Generate keystream word\n\t        var keystreamWord = 0;\n\t        for (var n = 0; n < 4; n++) {\n\t            i = (i + 1) % 256;\n\t            j = (j + S[i]) % 256;\n\n\t            // Swap\n\t            var t = S[i];\n\t            S[i] = S[j];\n\t            S[j] = t;\n\n\t            keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t        }\n\n\t        // Update counters\n\t        this._i = i;\n\t        this._j = j;\n\n\t        return keystreamWord;\n\t    }\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.RC4 = StreamCipher._createHelper(RC4);\n\n\t    /**\n\t     * Modified RC4 stream cipher algorithm.\n\t     */\n\t    var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t        /**\n\t         * Configuration options.\n\t         *\n\t         * @property {number} drop The number of keystream words to drop. Default 192\n\t         */\n\t        cfg: RC4.cfg.extend({\n\t            drop: 192\n\t        }),\n\n\t        _doReset: function () {\n\t            RC4._doReset.call(this);\n\n\t            // Drop\n\t            for (var i = this.cfg.drop; i > 0; i--) {\n\t                generateKeystreamWord.call(this);\n\t            }\n\t        }\n\t    });\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));\n\n/***/ }),\n/* 390 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(87), __webpack_require__(88), __webpack_require__(49), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var StreamCipher = C_lib.StreamCipher;\n\t    var C_algo = C.algo;\n\n\t    // Reusable objects\n\t    var S  = [];\n\t    var C_ = [];\n\t    var G  = [];\n\n\t    /**\n\t     * Rabbit stream cipher algorithm\n\t     */\n\t    var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t        _doReset: function () {\n\t            // Shortcuts\n\t            var K = this._key.words;\n\t            var iv = this.cfg.iv;\n\n\t            // Swap endian\n\t            for (var i = 0; i < 4; i++) {\n\t                K[i] = (((K[i] << 8)  | (K[i] >>> 24)) & 0x00ff00ff) |\n\t                       (((K[i] << 24) | (K[i] >>> 8))  & 0xff00ff00);\n\t            }\n\n\t            // Generate initial state values\n\t            var X = this._X = [\n\t                K[0], (K[3] << 16) | (K[2] >>> 16),\n\t                K[1], (K[0] << 16) | (K[3] >>> 16),\n\t                K[2], (K[1] << 16) | (K[0] >>> 16),\n\t                K[3], (K[2] << 16) | (K[1] >>> 16)\n\t            ];\n\n\t            // Generate initial counter values\n\t            var C = this._C = [\n\t                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t            ];\n\n\t            // Carry bit\n\t            this._b = 0;\n\n\t            // Iterate the system four times\n\t            for (var i = 0; i < 4; i++) {\n\t                nextState.call(this);\n\t            }\n\n\t            // Modify the counters\n\t            for (var i = 0; i < 8; i++) {\n\t                C[i] ^= X[(i + 4) & 7];\n\t            }\n\n\t            // IV setup\n\t            if (iv) {\n\t                // Shortcuts\n\t                var IV = iv.words;\n\t                var IV_0 = IV[0];\n\t                var IV_1 = IV[1];\n\n\t                // Generate four subvectors\n\t                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);\n\n\t                // Modify counter values\n\t                C[0] ^= i0;\n\t                C[1] ^= i1;\n\t                C[2] ^= i2;\n\t                C[3] ^= i3;\n\t                C[4] ^= i0;\n\t                C[5] ^= i1;\n\t                C[6] ^= i2;\n\t                C[7] ^= i3;\n\n\t                // Iterate the system four times\n\t                for (var i = 0; i < 4; i++) {\n\t                    nextState.call(this);\n\t                }\n\t            }\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcut\n\t            var X = this._X;\n\n\t            // Iterate the system\n\t            nextState.call(this);\n\n\t            // Generate four keystream words\n\t            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t            for (var i = 0; i < 4; i++) {\n\t                // Swap endian\n\t                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |\n\t                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);\n\n\t                // Encrypt\n\t                M[offset + i] ^= S[i];\n\t            }\n\t        },\n\n\t        blockSize: 128/32,\n\n\t        ivSize: 64/32\n\t    });\n\n\t    function nextState() {\n\t        // Shortcuts\n\t        var X = this._X;\n\t        var C = this._C;\n\n\t        // Save old counter values\n\t        for (var i = 0; i < 8; i++) {\n\t            C_[i] = C[i];\n\t        }\n\n\t        // Calculate new counter values\n\t        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t        // Calculate the g-values\n\t        for (var i = 0; i < 8; i++) {\n\t            var gx = X[i] + C[i];\n\n\t            // Construct high and low argument for squaring\n\t            var ga = gx & 0xffff;\n\t            var gb = gx >>> 16;\n\n\t            // Calculate high and low result of squaring\n\t            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t            // High XOR low\n\t            G[i] = gh ^ gl;\n\t        }\n\n\t        // Calculate new state values\n\t        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;\n\t        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;\n\t        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;\n\t        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;\n\t    }\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory, undef) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(2), __webpack_require__(87), __webpack_require__(88), __webpack_require__(49), __webpack_require__(12));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var StreamCipher = C_lib.StreamCipher;\n\t    var C_algo = C.algo;\n\n\t    // Reusable objects\n\t    var S  = [];\n\t    var C_ = [];\n\t    var G  = [];\n\n\t    /**\n\t     * Rabbit stream cipher algorithm.\n\t     *\n\t     * This is a legacy version that neglected to convert the key to little-endian.\n\t     * This error doesn't affect the cipher's security,\n\t     * but it does affect its compatibility with other implementations.\n\t     */\n\t    var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t        _doReset: function () {\n\t            // Shortcuts\n\t            var K = this._key.words;\n\t            var iv = this.cfg.iv;\n\n\t            // Generate initial state values\n\t            var X = this._X = [\n\t                K[0], (K[3] << 16) | (K[2] >>> 16),\n\t                K[1], (K[0] << 16) | (K[3] >>> 16),\n\t                K[2], (K[1] << 16) | (K[0] >>> 16),\n\t                K[3], (K[2] << 16) | (K[1] >>> 16)\n\t            ];\n\n\t            // Generate initial counter values\n\t            var C = this._C = [\n\t                (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t                (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t                (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t                (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t            ];\n\n\t            // Carry bit\n\t            this._b = 0;\n\n\t            // Iterate the system four times\n\t            for (var i = 0; i < 4; i++) {\n\t                nextState.call(this);\n\t            }\n\n\t            // Modify the counters\n\t            for (var i = 0; i < 8; i++) {\n\t                C[i] ^= X[(i + 4) & 7];\n\t            }\n\n\t            // IV setup\n\t            if (iv) {\n\t                // Shortcuts\n\t                var IV = iv.words;\n\t                var IV_0 = IV[0];\n\t                var IV_1 = IV[1];\n\n\t                // Generate four subvectors\n\t                var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t                var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t                var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t                var i3 = (i2 << 16)  | (i0 & 0x0000ffff);\n\n\t                // Modify counter values\n\t                C[0] ^= i0;\n\t                C[1] ^= i1;\n\t                C[2] ^= i2;\n\t                C[3] ^= i3;\n\t                C[4] ^= i0;\n\t                C[5] ^= i1;\n\t                C[6] ^= i2;\n\t                C[7] ^= i3;\n\n\t                // Iterate the system four times\n\t                for (var i = 0; i < 4; i++) {\n\t                    nextState.call(this);\n\t                }\n\t            }\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Shortcut\n\t            var X = this._X;\n\n\t            // Iterate the system\n\t            nextState.call(this);\n\n\t            // Generate four keystream words\n\t            S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t            S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t            S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t            S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t            for (var i = 0; i < 4; i++) {\n\t                // Swap endian\n\t                S[i] = (((S[i] << 8)  | (S[i] >>> 24)) & 0x00ff00ff) |\n\t                       (((S[i] << 24) | (S[i] >>> 8))  & 0xff00ff00);\n\n\t                // Encrypt\n\t                M[offset + i] ^= S[i];\n\t            }\n\t        },\n\n\t        blockSize: 128/32,\n\n\t        ivSize: 64/32\n\t    });\n\n\t    function nextState() {\n\t        // Shortcuts\n\t        var X = this._X;\n\t        var C = this._C;\n\n\t        // Save old counter values\n\t        for (var i = 0; i < 8; i++) {\n\t            C_[i] = C[i];\n\t        }\n\n\t        // Calculate new counter values\n\t        C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t        C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t        C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t        C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t        C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t        C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t        C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t        C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t        this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t        // Calculate the g-values\n\t        for (var i = 0; i < 8; i++) {\n\t            var gx = X[i] + C[i];\n\n\t            // Construct high and low argument for squaring\n\t            var ga = gx & 0xffff;\n\t            var gb = gx >>> 16;\n\n\t            // Calculate high and low result of squaring\n\t            var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t            var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t            // High XOR low\n\t            G[i] = gh ^ gl;\n\t        }\n\n\t        // Calculate new state values\n\t        X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t        X[1] = (G[1] + ((G[0] << 8)  | (G[0] >>> 24)) + G[7]) | 0;\n\t        X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t        X[3] = (G[3] + ((G[2] << 8)  | (G[2] >>> 24)) + G[1]) | 0;\n\t        X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t        X[5] = (G[5] + ((G[4] << 8)  | (G[4] >>> 24)) + G[3]) | 0;\n\t        X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t        X[7] = (G[7] + ((G[6] << 8)  | (G[6] >>> 24)) + G[5]) | 0;\n\t    }\n\n\t    /**\n\t     * Shortcut functions to the cipher's object interface.\n\t     *\n\t     * @example\n\t     *\n\t     *     var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t     *     var plaintext  = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t     */\n\t    C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));\n\n/***/ }),\n/* 392 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar r = _interopDefault(__webpack_require__(393));\nvar _Object$getOwnPropertyDescriptor = _interopDefault(__webpack_require__(423));\nvar _getIterator = _interopDefault(__webpack_require__(426));\nvar _Object$freeze = _interopDefault(__webpack_require__(435));\nvar _typeof = _interopDefault(__webpack_require__(186));\nvar _Object$keys = _interopDefault(__webpack_require__(447));\nvar _Object$defineProperty = _interopDefault(__webpack_require__(264));\nvar _classCallCheck = _interopDefault(__webpack_require__(452));\nvar _createClass = _interopDefault(__webpack_require__(453));\nvar _Map = _interopDefault(__webpack_require__(454));\nvar _possibleConstructorReturn = _interopDefault(__webpack_require__(464));\nvar _inherits = _interopDefault(__webpack_require__(465));\nvar restructure_src_utils = __webpack_require__(38);\nvar _Object$defineProperties = _interopDefault(__webpack_require__(473));\nvar isEqual = _interopDefault(__webpack_require__(476));\nvar _Object$assign = _interopDefault(__webpack_require__(489));\nvar _String$fromCodePoint = _interopDefault(__webpack_require__(493));\nvar _Array$from = _interopDefault(__webpack_require__(496));\nvar _Set = _interopDefault(__webpack_require__(500));\nvar unicode = _interopDefault(__webpack_require__(506));\nvar UnicodeTrie = _interopDefault(__webpack_require__(511));\nvar StateMachine = _interopDefault(__webpack_require__(512));\nvar _Number$EPSILON = _interopDefault(__webpack_require__(514));\nvar cloneDeep = _interopDefault(__webpack_require__(517));\nvar _Promise = _interopDefault(__webpack_require__(518));\nvar inflate = _interopDefault(__webpack_require__(135));\nvar brotli = _interopDefault(__webpack_require__(526));\n\nvar fs = __webpack_require__(53);\n\nvar fontkit = {};\nfontkit.logErrors = false;\n\nvar formats = [];\nfontkit.registerFormat = function (format) {\n  formats.push(format);\n};\n\nfontkit.openSync = function (filename, postscriptName) {\n  var buffer = fs.readFileSync(filename);\n  return fontkit.create(buffer, postscriptName);\n};\n\nfontkit.open = function (filename, postscriptName, callback) {\n  if (typeof postscriptName === 'function') {\n    callback = postscriptName;\n    postscriptName = null;\n  }\n\n  fs.readFile(filename, function (err, buffer) {\n    if (err) {\n      return callback(err);\n    }\n\n    try {\n      var font = fontkit.create(buffer, postscriptName);\n    } catch (e) {\n      return callback(e);\n    }\n\n    return callback(null, font);\n  });\n\n  return;\n};\n\nfontkit.create = function (buffer, postscriptName) {\n  for (var i = 0; i < formats.length; i++) {\n    var format = formats[i];\n    if (format.probe(buffer)) {\n      var font = new format(new r.DecodeStream(buffer));\n      if (postscriptName) {\n        return font.getFont(postscriptName);\n      }\n\n      return font;\n    }\n  }\n\n  throw new Error('Unknown font format');\n};\n\nfontkit.defaultLanguage = 'en';\nfontkit.setDefaultLanguage = function () {\n  var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';\n\n  fontkit.defaultLanguage = lang;\n};\n\n/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */\nfunction cache(target, key, descriptor) {\n  if (descriptor.get) {\n    var get = descriptor.get;\n    descriptor.get = function () {\n      var value = get.call(this);\n      _Object$defineProperty(this, key, { value: value });\n      return value;\n    };\n  } else if (typeof descriptor.value === 'function') {\n    var fn = descriptor.value;\n\n    return {\n      get: function get() {\n        var cache = new _Map();\n        function memoized() {\n          for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n\n          var key = args.length > 0 ? args[0] : 'value';\n          if (cache.has(key)) {\n            return cache.get(key);\n          }\n\n          var result = fn.apply(this, args);\n          cache.set(key, result);\n          return result;\n        };\n\n        _Object$defineProperty(this, key, { value: memoized });\n        return memoized;\n      }\n    };\n  }\n}\n\nvar SubHeader = new r.Struct({\n  firstCode: r.uint16,\n  entryCount: r.uint16,\n  idDelta: r.int16,\n  idRangeOffset: r.uint16\n});\n\nvar CmapGroup = new r.Struct({\n  startCharCode: r.uint32,\n  endCharCode: r.uint32,\n  glyphID: r.uint32\n});\n\nvar UnicodeValueRange = new r.Struct({\n  startUnicodeValue: r.uint24,\n  additionalCount: r.uint8\n});\n\nvar UVSMapping = new r.Struct({\n  unicodeValue: r.uint24,\n  glyphID: r.uint16\n});\n\nvar DefaultUVS = new r.Array(UnicodeValueRange, r.uint32);\nvar NonDefaultUVS = new r.Array(UVSMapping, r.uint32);\n\nvar VarSelectorRecord = new r.Struct({\n  varSelector: r.uint24,\n  defaultUVS: new r.Pointer(r.uint32, DefaultUVS, { type: 'parent' }),\n  nonDefaultUVS: new r.Pointer(r.uint32, NonDefaultUVS, { type: 'parent' })\n});\n\nvar CmapSubtable = new r.VersionedStruct(r.uint16, {\n  0: { // Byte encoding\n    length: r.uint16, // Total table length in bytes (set to 262 for format 0)\n    language: r.uint16, // Language code for this encoding subtable, or zero if language-independent\n    codeMap: new r.LazyArray(r.uint8, 256)\n  },\n\n  2: { // High-byte mapping (CJK)\n    length: r.uint16,\n    language: r.uint16,\n    subHeaderKeys: new r.Array(r.uint16, 256),\n    subHeaderCount: function subHeaderCount(t) {\n      return Math.max.apply(Math, t.subHeaderKeys);\n    },\n    subHeaders: new r.LazyArray(SubHeader, 'subHeaderCount'),\n    glyphIndexArray: new r.LazyArray(r.uint16, 'subHeaderCount')\n  },\n\n  4: { // Segment mapping to delta values\n    length: r.uint16, // Total table length in bytes\n    language: r.uint16, // Language code\n    segCountX2: r.uint16,\n    segCount: function segCount(t) {\n      return t.segCountX2 >> 1;\n    },\n    searchRange: r.uint16,\n    entrySelector: r.uint16,\n    rangeShift: r.uint16,\n    endCode: new r.LazyArray(r.uint16, 'segCount'),\n    reservedPad: new r.Reserved(r.uint16), // This value should be zero\n    startCode: new r.LazyArray(r.uint16, 'segCount'),\n    idDelta: new r.LazyArray(r.int16, 'segCount'),\n    idRangeOffset: new r.LazyArray(r.uint16, 'segCount'),\n    glyphIndexArray: new r.LazyArray(r.uint16, function (t) {\n      return (t.length - t._currentOffset) / 2;\n    })\n  },\n\n  6: { // Trimmed table\n    length: r.uint16,\n    language: r.uint16,\n    firstCode: r.uint16,\n    entryCount: r.uint16,\n    glyphIndices: new r.LazyArray(r.uint16, 'entryCount')\n  },\n\n  8: { // mixed 16-bit and 32-bit coverage\n    reserved: new r.Reserved(r.uint16),\n    length: r.uint32,\n    language: r.uint16,\n    is32: new r.LazyArray(r.uint8, 8192),\n    nGroups: r.uint32,\n    groups: new r.LazyArray(CmapGroup, 'nGroups')\n  },\n\n  10: { // Trimmed Array\n    reserved: new r.Reserved(r.uint16),\n    length: r.uint32,\n    language: r.uint32,\n    firstCode: r.uint32,\n    entryCount: r.uint32,\n    glyphIndices: new r.LazyArray(r.uint16, 'numChars')\n  },\n\n  12: { // Segmented coverage\n    reserved: new r.Reserved(r.uint16),\n    length: r.uint32,\n    language: r.uint32,\n    nGroups: r.uint32,\n    groups: new r.LazyArray(CmapGroup, 'nGroups')\n  },\n\n  13: { // Many-to-one range mappings (same as 12 except for group.startGlyphID)\n    reserved: new r.Reserved(r.uint16),\n    length: r.uint32,\n    language: r.uint32,\n    nGroups: r.uint32,\n    groups: new r.LazyArray(CmapGroup, 'nGroups')\n  },\n\n  14: { // Unicode Variation Sequences\n    length: r.uint32,\n    numRecords: r.uint32,\n    varSelectors: new r.LazyArray(VarSelectorRecord, 'numRecords')\n  }\n});\n\nvar CmapEntry = new r.Struct({\n  platformID: r.uint16, // Platform identifier\n  encodingID: r.uint16, // Platform-specific encoding identifier\n  table: new r.Pointer(r.uint32, CmapSubtable, { type: 'parent', lazy: true })\n});\n\n// character to glyph mapping\nvar cmap = new r.Struct({\n  version: r.uint16,\n  numSubtables: r.uint16,\n  tables: new r.Array(CmapEntry, 'numSubtables')\n});\n\n// font header\nvar head = new r.Struct({\n  version: r.int32, // 0x00010000 (version 1.0)\n  revision: r.int32, // set by font manufacturer\n  checkSumAdjustment: r.uint32,\n  magicNumber: r.uint32, // set to 0x5F0F3CF5\n  flags: r.uint16,\n  unitsPerEm: r.uint16, // range from 64 to 16384\n  created: new r.Array(r.int32, 2),\n  modified: new r.Array(r.int32, 2),\n  xMin: r.int16, // for all glyph bounding boxes\n  yMin: r.int16, // for all glyph bounding boxes\n  xMax: r.int16, // for all glyph bounding boxes\n  yMax: r.int16, // for all glyph bounding boxes\n  macStyle: new r.Bitfield(r.uint16, ['bold', 'italic', 'underline', 'outline', 'shadow', 'condensed', 'extended']),\n  lowestRecPPEM: r.uint16, // smallest readable size in pixels\n  fontDirectionHint: r.int16,\n  indexToLocFormat: r.int16, // 0 for short offsets, 1 for long\n  glyphDataFormat: r.int16 // 0 for current format\n});\n\n// horizontal header\nvar hhea = new r.Struct({\n  version: r.int32,\n  ascent: r.int16, // Distance from baseline of highest ascender\n  descent: r.int16, // Distance from baseline of lowest descender\n  lineGap: r.int16, // Typographic line gap\n  advanceWidthMax: r.uint16, // Maximum advance width value in 'hmtx' table\n  minLeftSideBearing: r.int16, // Maximum advance width value in 'hmtx' table\n  minRightSideBearing: r.int16, // Minimum right sidebearing value\n  xMaxExtent: r.int16,\n  caretSlopeRise: r.int16, // Used to calculate the slope of the cursor (rise/run); 1 for vertical\n  caretSlopeRun: r.int16, // 0 for vertical\n  caretOffset: r.int16, // Set to 0 for non-slanted fonts\n  reserved: new r.Reserved(r.int16, 4),\n  metricDataFormat: r.int16, // 0 for current format\n  numberOfMetrics: r.uint16 // Number of advance widths in 'hmtx' table\n});\n\nvar HmtxEntry = new r.Struct({\n  advance: r.uint16,\n  bearing: r.int16\n});\n\nvar hmtx = new r.Struct({\n  metrics: new r.LazyArray(HmtxEntry, function (t) {\n    return t.parent.hhea.numberOfMetrics;\n  }),\n  bearings: new r.LazyArray(r.int16, function (t) {\n    return t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics;\n  })\n});\n\n// maxiumum profile\nvar maxp = new r.Struct({\n  version: r.int32,\n  numGlyphs: r.uint16, // The number of glyphs in the font\n  maxPoints: r.uint16, // Maximum points in a non-composite glyph\n  maxContours: r.uint16, // Maximum contours in a non-composite glyph\n  maxComponentPoints: r.uint16, // Maximum points in a composite glyph\n  maxComponentContours: r.uint16, // Maximum contours in a composite glyph\n  maxZones: r.uint16, // 1 if instructions do not use the twilight zone, 2 otherwise\n  maxTwilightPoints: r.uint16, // Maximum points used in Z0\n  maxStorage: r.uint16, // Number of Storage Area locations\n  maxFunctionDefs: r.uint16, // Number of FDEFs\n  maxInstructionDefs: r.uint16, // Number of IDEFs\n  maxStackElements: r.uint16, // Maximum stack depth\n  maxSizeOfInstructions: r.uint16, // Maximum byte count for glyph instructions\n  maxComponentElements: r.uint16, // Maximum number of components referenced at “top level” for any composite glyph\n  maxComponentDepth: r.uint16 // Maximum levels of recursion; 1 for simple components\n});\n\n/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */\nfunction getEncoding(platformID, encodingID) {\n  var languageID = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n  if (platformID === 1 && MAC_LANGUAGE_ENCODINGS[languageID]) {\n    return MAC_LANGUAGE_ENCODINGS[languageID];\n  }\n\n  return ENCODINGS[platformID][encodingID];\n}\n\n// Map of platform ids to encoding ids.\nvar ENCODINGS = [\n// unicode\n['utf16be', 'utf16be', 'utf16be', 'utf16be', 'utf16be', 'utf16be'],\n\n// macintosh\n// Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n// 0\tRoman                 17\tMalayalam\n// 1\tJapanese\t            18\tSinhalese\n// 2\tTraditional Chinese\t  19\tBurmese\n// 3\tKorean\t              20\tKhmer\n// 4\tArabic\t              21\tThai\n// 5\tHebrew\t              22\tLaotian\n// 6\tGreek\t                23\tGeorgian\n// 7\tRussian\t              24\tArmenian\n// 8\tRSymbol\t              25\tSimplified Chinese\n// 9\tDevanagari\t          26\tTibetan\n// 10\tGurmukhi\t            27\tMongolian\n// 11\tGujarati\t            28\tGeez\n// 12\tOriya\t                29\tSlavic\n// 13\tBengali\t              30\tVietnamese\n// 14\tTamil\t                31\tSindhi\n// 15\tTelugu\t              32\t(Uninterpreted)\n// 16\tKannada\n['macroman', 'shift-jis', 'big5', 'euc-kr', 'iso-8859-6', 'iso-8859-8', 'macgreek', 'maccyrillic', 'symbol', 'Devanagari', 'Gurmukhi', 'Gujarati', 'Oriya', 'Bengali', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhalese', 'Burmese', 'Khmer', 'macthai', 'Laotian', 'Georgian', 'Armenian', 'gb-2312-80', 'Tibetan', 'Mongolian', 'Geez', 'maccenteuro', 'Vietnamese', 'Sindhi'],\n\n// ISO (deprecated)\n['ascii'],\n\n// windows\n// Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n['symbol', 'utf16be', 'shift-jis', 'gb18030', 'big5', 'wansung', 'johab', null, null, null, 'utf16be']];\n\n// Overrides for Mac scripts by language id.\n// See http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt\nvar MAC_LANGUAGE_ENCODINGS = {\n  15: 'maciceland',\n  17: 'macturkish',\n  18: 'maccroatian',\n  24: 'maccenteuro',\n  25: 'maccenteuro',\n  26: 'maccenteuro',\n  27: 'maccenteuro',\n  28: 'maccenteuro',\n  30: 'maciceland',\n  37: 'macromania',\n  38: 'maccenteuro',\n  39: 'maccenteuro',\n  40: 'maccenteuro',\n  143: 'macinuit', // Unsupported by iconv-lite\n  146: 'macgaelic' // Unsupported by iconv-lite\n};\n\n// Map of platform ids to BCP-47 language codes.\nvar LANGUAGES = [\n// unicode\n[], { // macintosh\n  0: 'en', 30: 'fo', 60: 'ks', 90: 'rw',\n  1: 'fr', 31: 'fa', 61: 'ku', 91: 'rn',\n  2: 'de', 32: 'ru', 62: 'sd', 92: 'ny',\n  3: 'it', 33: 'zh', 63: 'bo', 93: 'mg',\n  4: 'nl', 34: 'nl-BE', 64: 'ne', 94: 'eo',\n  5: 'sv', 35: 'ga', 65: 'sa', 128: 'cy',\n  6: 'es', 36: 'sq', 66: 'mr', 129: 'eu',\n  7: 'da', 37: 'ro', 67: 'bn', 130: 'ca',\n  8: 'pt', 38: 'cz', 68: 'as', 131: 'la',\n  9: 'no', 39: 'sk', 69: 'gu', 132: 'qu',\n  10: 'he', 40: 'si', 70: 'pa', 133: 'gn',\n  11: 'ja', 41: 'yi', 71: 'or', 134: 'ay',\n  12: 'ar', 42: 'sr', 72: 'ml', 135: 'tt',\n  13: 'fi', 43: 'mk', 73: 'kn', 136: 'ug',\n  14: 'el', 44: 'bg', 74: 'ta', 137: 'dz',\n  15: 'is', 45: 'uk', 75: 'te', 138: 'jv',\n  16: 'mt', 46: 'be', 76: 'si', 139: 'su',\n  17: 'tr', 47: 'uz', 77: 'my', 140: 'gl',\n  18: 'hr', 48: 'kk', 78: 'km', 141: 'af',\n  19: 'zh-Hant', 49: 'az-Cyrl', 79: 'lo', 142: 'br',\n  20: 'ur', 50: 'az-Arab', 80: 'vi', 143: 'iu',\n  21: 'hi', 51: 'hy', 81: 'id', 144: 'gd',\n  22: 'th', 52: 'ka', 82: 'tl', 145: 'gv',\n  23: 'ko', 53: 'mo', 83: 'ms', 146: 'ga',\n  24: 'lt', 54: 'ky', 84: 'ms-Arab', 147: 'to',\n  25: 'pl', 55: 'tg', 85: 'am', 148: 'el-polyton',\n  26: 'hu', 56: 'tk', 86: 'ti', 149: 'kl',\n  27: 'es', 57: 'mn-CN', 87: 'om', 150: 'az',\n  28: 'lv', 58: 'mn', 88: 'so', 151: 'nn',\n  29: 'se', 59: 'ps', 89: 'sw'\n},\n\n// ISO (deprecated)\n[], { // windows                                        \n  0x0436: 'af', 0x4009: 'en-IN', 0x0487: 'rw', 0x0432: 'tn',\n  0x041C: 'sq', 0x1809: 'en-IE', 0x0441: 'sw', 0x045B: 'si',\n  0x0484: 'gsw', 0x2009: 'en-JM', 0x0457: 'kok', 0x041B: 'sk',\n  0x045E: 'am', 0x4409: 'en-MY', 0x0412: 'ko', 0x0424: 'sl',\n  0x1401: 'ar-DZ', 0x1409: 'en-NZ', 0x0440: 'ky', 0x2C0A: 'es-AR',\n  0x3C01: 'ar-BH', 0x3409: 'en-PH', 0x0454: 'lo', 0x400A: 'es-BO',\n  0x0C01: 'ar', 0x4809: 'en-SG', 0x0426: 'lv', 0x340A: 'es-CL',\n  0x0801: 'ar-IQ', 0x1C09: 'en-ZA', 0x0427: 'lt', 0x240A: 'es-CO',\n  0x2C01: 'ar-JO', 0x2C09: 'en-TT', 0x082E: 'dsb', 0x140A: 'es-CR',\n  0x3401: 'ar-KW', 0x0809: 'en-GB', 0x046E: 'lb', 0x1C0A: 'es-DO',\n  0x3001: 'ar-LB', 0x0409: 'en', 0x042F: 'mk', 0x300A: 'es-EC',\n  0x1001: 'ar-LY', 0x3009: 'en-ZW', 0x083E: 'ms-BN', 0x440A: 'es-SV',\n  0x1801: 'ary', 0x0425: 'et', 0x043E: 'ms', 0x100A: 'es-GT',\n  0x2001: 'ar-OM', 0x0438: 'fo', 0x044C: 'ml', 0x480A: 'es-HN',\n  0x4001: 'ar-QA', 0x0464: 'fil', 0x043A: 'mt', 0x080A: 'es-MX',\n  0x0401: 'ar-SA', 0x040B: 'fi', 0x0481: 'mi', 0x4C0A: 'es-NI',\n  0x2801: 'ar-SY', 0x080C: 'fr-BE', 0x047A: 'arn', 0x180A: 'es-PA',\n  0x1C01: 'aeb', 0x0C0C: 'fr-CA', 0x044E: 'mr', 0x3C0A: 'es-PY',\n  0x3801: 'ar-AE', 0x040C: 'fr', 0x047C: 'moh', 0x280A: 'es-PE',\n  0x2401: 'ar-YE', 0x140C: 'fr-LU', 0x0450: 'mn', 0x500A: 'es-PR',\n  0x042B: 'hy', 0x180C: 'fr-MC', 0x0850: 'mn-CN', 0x0C0A: 'es',\n  0x044D: 'as', 0x100C: 'fr-CH', 0x0461: 'ne', 0x040A: 'es',\n  0x082C: 'az-Cyrl', 0x0462: 'fy', 0x0414: 'nb', 0x540A: 'es-US',\n  0x042C: 'az', 0x0456: 'gl', 0x0814: 'nn', 0x380A: 'es-UY',\n  0x046D: 'ba', 0x0437: 'ka', 0x0482: 'oc', 0x200A: 'es-VE',\n  0x042D: 'eu', 0x0C07: 'de-AT', 0x0448: 'or', 0x081D: 'sv-FI',\n  0x0423: 'be', 0x0407: 'de', 0x0463: 'ps', 0x041D: 'sv',\n  0x0845: 'bn', 0x1407: 'de-LI', 0x0415: 'pl', 0x045A: 'syr',\n  0x0445: 'bn-IN', 0x1007: 'de-LU', 0x0416: 'pt', 0x0428: 'tg',\n  0x201A: 'bs-Cyrl', 0x0807: 'de-CH', 0x0816: 'pt-PT', 0x085F: 'tzm',\n  0x141A: 'bs', 0x0408: 'el', 0x0446: 'pa', 0x0449: 'ta',\n  0x047E: 'br', 0x046F: 'kl', 0x046B: 'qu-BO', 0x0444: 'tt',\n  0x0402: 'bg', 0x0447: 'gu', 0x086B: 'qu-EC', 0x044A: 'te',\n  0x0403: 'ca', 0x0468: 'ha', 0x0C6B: 'qu', 0x041E: 'th',\n  0x0C04: 'zh-HK', 0x040D: 'he', 0x0418: 'ro', 0x0451: 'bo',\n  0x1404: 'zh-MO', 0x0439: 'hi', 0x0417: 'rm', 0x041F: 'tr',\n  0x0804: 'zh', 0x040E: 'hu', 0x0419: 'ru', 0x0442: 'tk',\n  0x1004: 'zh-SG', 0x040F: 'is', 0x243B: 'smn', 0x0480: 'ug',\n  0x0404: 'zh-TW', 0x0470: 'ig', 0x103B: 'smj-NO', 0x0422: 'uk',\n  0x0483: 'co', 0x0421: 'id', 0x143B: 'smj', 0x042E: 'hsb',\n  0x041A: 'hr', 0x045D: 'iu', 0x0C3B: 'se-FI', 0x0420: 'ur',\n  0x101A: 'hr-BA', 0x085D: 'iu-Latn', 0x043B: 'se', 0x0843: 'uz-Cyrl',\n  0x0405: 'cs', 0x083C: 'ga', 0x083B: 'se-SE', 0x0443: 'uz',\n  0x0406: 'da', 0x0434: 'xh', 0x203B: 'sms', 0x042A: 'vi',\n  0x048C: 'prs', 0x0435: 'zu', 0x183B: 'sma-NO', 0x0452: 'cy',\n  0x0465: 'dv', 0x0410: 'it', 0x1C3B: 'sms', 0x0488: 'wo',\n  0x0813: 'nl-BE', 0x0810: 'it-CH', 0x044F: 'sa', 0x0485: 'sah',\n  0x0413: 'nl', 0x0411: 'ja', 0x1C1A: 'sr-Cyrl-BA', 0x0478: 'ii',\n  0x0C09: 'en-AU', 0x044B: 'kn', 0x0C1A: 'sr', 0x046A: 'yo',\n  0x2809: 'en-BZ', 0x043F: 'kk', 0x181A: 'sr-Latn-BA',\n  0x1009: 'en-CA', 0x0453: 'km', 0x081A: 'sr-Latn',\n  0x2409: 'en-029', 0x0486: 'quc', 0x046C: 'nso'\n}];\n\nvar NameRecord = new r.Struct({\n  platformID: r.uint16,\n  encodingID: r.uint16,\n  languageID: r.uint16,\n  nameID: r.uint16,\n  length: r.uint16,\n  string: new r.Pointer(r.uint16, new r.String('length', function (t) {\n    return getEncoding(t.platformID, t.encodingID, t.languageID);\n  }), { type: 'parent', relativeTo: 'parent.stringOffset', allowNull: false })\n});\n\nvar LangTagRecord = new r.Struct({\n  length: r.uint16,\n  tag: new r.Pointer(r.uint16, new r.String('length', 'utf16be'), { type: 'parent', relativeTo: 'stringOffset' })\n});\n\nvar NameTable = new r.VersionedStruct(r.uint16, {\n  0: {\n    count: r.uint16,\n    stringOffset: r.uint16,\n    records: new r.Array(NameRecord, 'count')\n  },\n  1: {\n    count: r.uint16,\n    stringOffset: r.uint16,\n    records: new r.Array(NameRecord, 'count'),\n    langTagCount: r.uint16,\n    langTags: new r.Array(LangTagRecord, 'langTagCount')\n  }\n});\n\nvar NAMES = ['copyright', 'fontFamily', 'fontSubfamily', 'uniqueSubfamily', 'fullName', 'version', 'postscriptName', // Note: A font may have only one PostScript name and that name must be ASCII.\n'trademark', 'manufacturer', 'designer', 'description', 'vendorURL', 'designerURL', 'license', 'licenseURL', null, // reserved\n'preferredFamily', 'preferredSubfamily', 'compatibleFull', 'sampleText', 'postscriptCIDFontName', 'wwsFamilyName', 'wwsSubfamilyName'];\n\nNameTable.process = function (stream) {\n  var records = {};\n  for (var _iterator = this.records, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var record = _ref;\n\n    // find out what language this is for\n    var language = LANGUAGES[record.platformID][record.languageID];\n\n    if (language == null && this.langTags != null && record.languageID >= 0x8000) {\n      language = this.langTags[record.languageID - 0x8000].tag;\n    }\n\n    if (language == null) {\n      language = record.platformID + '-' + record.languageID;\n    }\n\n    // if the nameID is >= 256, it is a font feature record (AAT)\n    var key = record.nameID >= 256 ? 'fontFeatures' : NAMES[record.nameID] || record.nameID;\n    if (records[key] == null) {\n      records[key] = {};\n    }\n\n    var obj = records[key];\n    if (record.nameID >= 256) {\n      obj = obj[record.nameID] || (obj[record.nameID] = {});\n    }\n\n    if (typeof record.string === 'string' || typeof obj[language] !== 'string') {\n      obj[language] = record.string;\n    }\n  }\n\n  this.records = records;\n};\n\nNameTable.preEncode = function () {\n  if (Array.isArray(this.records)) return;\n  this.version = 0;\n\n  var records = [];\n  for (var key in this.records) {\n    var val = this.records[key];\n    if (key === 'fontFeatures') continue;\n\n    records.push({\n      platformID: 3,\n      encodingID: 1,\n      languageID: 0x409,\n      nameID: NAMES.indexOf(key),\n      length: Buffer.byteLength(val.en, 'utf16le'),\n      string: val.en\n    });\n\n    if (key === 'postscriptName') {\n      records.push({\n        platformID: 1,\n        encodingID: 0,\n        languageID: 0,\n        nameID: NAMES.indexOf(key),\n        length: val.en.length,\n        string: val.en\n      });\n    }\n  }\n\n  this.records = records;\n  this.count = records.length;\n  this.stringOffset = NameTable.size(this, null, false);\n};\n\nvar OS2 = new r.VersionedStruct(r.uint16, {\n  header: {\n    xAvgCharWidth: r.int16, // average weighted advance width of lower case letters and space\n    usWeightClass: r.uint16, // visual weight of stroke in glyphs\n    usWidthClass: r.uint16, // relative change from the normal aspect ratio (width to height ratio)\n    fsType: new r.Bitfield(r.uint16, [// Indicates font embedding licensing rights\n    null, 'noEmbedding', 'viewOnly', 'editable', null, null, null, null, 'noSubsetting', 'bitmapOnly']),\n    ySubscriptXSize: r.int16, // recommended horizontal size in pixels for subscripts\n    ySubscriptYSize: r.int16, // recommended vertical size in pixels for subscripts\n    ySubscriptXOffset: r.int16, // recommended horizontal offset for subscripts\n    ySubscriptYOffset: r.int16, // recommended vertical offset form the baseline for subscripts\n    ySuperscriptXSize: r.int16, // recommended horizontal size in pixels for superscripts\n    ySuperscriptYSize: r.int16, // recommended vertical size in pixels for superscripts\n    ySuperscriptXOffset: r.int16, // recommended horizontal offset for superscripts\n    ySuperscriptYOffset: r.int16, // recommended vertical offset from the baseline for superscripts\n    yStrikeoutSize: r.int16, // width of the strikeout stroke\n    yStrikeoutPosition: r.int16, // position of the strikeout stroke relative to the baseline\n    sFamilyClass: r.int16, // classification of font-family design\n    panose: new r.Array(r.uint8, 10), // describe the visual characteristics of a given typeface\n    ulCharRange: new r.Array(r.uint32, 4),\n    vendorID: new r.String(4), // four character identifier for the font vendor\n    fsSelection: new r.Bitfield(r.uint16, [// bit field containing information about the font\n    'italic', 'underscore', 'negative', 'outlined', 'strikeout', 'bold', 'regular', 'useTypoMetrics', 'wws', 'oblique']),\n    usFirstCharIndex: r.uint16, // The minimum Unicode index in this font\n    usLastCharIndex: r.uint16 // The maximum Unicode index in this font\n  },\n\n  // The Apple version of this table ends here, but the Microsoft one continues on...\n  0: {},\n\n  1: {\n    typoAscender: r.int16,\n    typoDescender: r.int16,\n    typoLineGap: r.int16,\n    winAscent: r.uint16,\n    winDescent: r.uint16,\n    codePageRange: new r.Array(r.uint32, 2)\n  },\n\n  2: {\n    // these should be common with version 1 somehow\n    typoAscender: r.int16,\n    typoDescender: r.int16,\n    typoLineGap: r.int16,\n    winAscent: r.uint16,\n    winDescent: r.uint16,\n    codePageRange: new r.Array(r.uint32, 2),\n\n    xHeight: r.int16,\n    capHeight: r.int16,\n    defaultChar: r.uint16,\n    breakChar: r.uint16,\n    maxContent: r.uint16\n  },\n\n  5: {\n    typoAscender: r.int16,\n    typoDescender: r.int16,\n    typoLineGap: r.int16,\n    winAscent: r.uint16,\n    winDescent: r.uint16,\n    codePageRange: new r.Array(r.uint32, 2),\n\n    xHeight: r.int16,\n    capHeight: r.int16,\n    defaultChar: r.uint16,\n    breakChar: r.uint16,\n    maxContent: r.uint16,\n\n    usLowerOpticalPointSize: r.uint16,\n    usUpperOpticalPointSize: r.uint16\n  }\n});\n\nvar versions = OS2.versions;\nversions[3] = versions[4] = versions[2];\n\n// PostScript information\nvar post = new r.VersionedStruct(r.fixed32, {\n  header: { // these fields exist at the top of all versions\n    italicAngle: r.fixed32, // Italic angle in counter-clockwise degrees from the vertical.\n    underlinePosition: r.int16, // Suggested distance of the top of the underline from the baseline\n    underlineThickness: r.int16, // Suggested values for the underline thickness\n    isFixedPitch: r.uint32, // Whether the font is monospaced\n    minMemType42: r.uint32, // Minimum memory usage when a TrueType font is downloaded as a Type 42 font\n    maxMemType42: r.uint32, // Maximum memory usage when a TrueType font is downloaded as a Type 42 font\n    minMemType1: r.uint32, // Minimum memory usage when a TrueType font is downloaded as a Type 1 font\n    maxMemType1: r.uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n  },\n\n  1: {}, // version 1 has no additional fields\n\n  2: {\n    numberOfGlyphs: r.uint16,\n    glyphNameIndex: new r.Array(r.uint16, 'numberOfGlyphs'),\n    names: new r.Array(new r.String(r.uint8))\n  },\n\n  2.5: {\n    numberOfGlyphs: r.uint16,\n    offsets: new r.Array(r.uint8, 'numberOfGlyphs')\n  },\n\n  3: {}, // version 3 has no additional fields\n\n  4: {\n    map: new r.Array(r.uint32, function (t) {\n      return t.parent.maxp.numGlyphs;\n    })\n  }\n});\n\n// An array of predefined values accessible by instructions\nvar cvt = new r.Struct({\n  controlValues: new r.Array(r.int16)\n});\n\n// A list of instructions that are executed once when a font is first used.\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\nvar fpgm = new r.Struct({\n  instructions: new r.Array(r.uint8)\n});\n\nvar loca = new r.VersionedStruct('head.indexToLocFormat', {\n  0: {\n    offsets: new r.Array(r.uint16)\n  },\n  1: {\n    offsets: new r.Array(r.uint32)\n  }\n});\n\nloca.process = function () {\n  if (this.version === 0) {\n    for (var i = 0; i < this.offsets.length; i++) {\n      this.offsets[i] <<= 1;\n    }\n  }\n};\n\nloca.preEncode = function () {\n  if (this.version === 0) {\n    for (var i = 0; i < this.offsets.length; i++) {\n      this.offsets[i] >>>= 1;\n    }\n  }\n};\n\n// Set of instructions executed whenever the point size or font transformation change\nvar prep = new r.Struct({\n  controlValueProgram: new r.Array(r.uint8)\n});\n\n// only used for encoding\nvar glyf = new r.Array(new r.Buffer());\n\nvar CFFIndex = function () {\n  function CFFIndex(type) {\n    _classCallCheck(this, CFFIndex);\n\n    this.type = type;\n  }\n\n  CFFIndex.prototype.getCFFVersion = function getCFFVersion(ctx) {\n    while (ctx && !ctx.hdrSize) {\n      ctx = ctx.parent;\n    }\n\n    return ctx ? ctx.version : -1;\n  };\n\n  CFFIndex.prototype.decode = function decode(stream, parent) {\n    var version = this.getCFFVersion(parent);\n    var count = version >= 2 ? stream.readUInt32BE() : stream.readUInt16BE();\n\n    if (count === 0) {\n      return [];\n    }\n\n    var offSize = stream.readUInt8();\n    var offsetType = void 0;\n    if (offSize === 1) {\n      offsetType = r.uint8;\n    } else if (offSize === 2) {\n      offsetType = r.uint16;\n    } else if (offSize === 3) {\n      offsetType = r.uint24;\n    } else if (offSize === 4) {\n      offsetType = r.uint32;\n    } else {\n      throw new Error(\"Bad offset size in CFFIndex: \" + offSize + \" \" + stream.pos);\n    }\n\n    var ret = [];\n    var startPos = stream.pos + (count + 1) * offSize - 1;\n\n    var start = offsetType.decode(stream);\n    for (var i = 0; i < count; i++) {\n      var end = offsetType.decode(stream);\n\n      if (this.type != null) {\n        var pos = stream.pos;\n        stream.pos = startPos + start;\n\n        parent.length = end - start;\n        ret.push(this.type.decode(stream, parent));\n        stream.pos = pos;\n      } else {\n        ret.push({\n          offset: startPos + start,\n          length: end - start\n        });\n      }\n\n      start = end;\n    }\n\n    stream.pos = startPos + start;\n    return ret;\n  };\n\n  CFFIndex.prototype.size = function size(arr, parent) {\n    var size = 2;\n    if (arr.length === 0) {\n      return size;\n    }\n\n    var type = this.type || new r.Buffer();\n\n    // find maximum offset to detminine offset type\n    var offset = 1;\n    for (var i = 0; i < arr.length; i++) {\n      var item = arr[i];\n      offset += type.size(item, parent);\n    }\n\n    var offsetType = void 0;\n    if (offset <= 0xff) {\n      offsetType = r.uint8;\n    } else if (offset <= 0xffff) {\n      offsetType = r.uint16;\n    } else if (offset <= 0xffffff) {\n      offsetType = r.uint24;\n    } else if (offset <= 0xffffffff) {\n      offsetType = r.uint32;\n    } else {\n      throw new Error(\"Bad offset in CFFIndex\");\n    }\n\n    size += 1 + offsetType.size() * (arr.length + 1);\n    size += offset - 1;\n\n    return size;\n  };\n\n  CFFIndex.prototype.encode = function encode(stream, arr, parent) {\n    stream.writeUInt16BE(arr.length);\n    if (arr.length === 0) {\n      return;\n    }\n\n    var type = this.type || new r.Buffer();\n\n    // find maximum offset to detminine offset type\n    var sizes = [];\n    var offset = 1;\n    for (var _iterator = arr, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var item = _ref;\n\n      var s = type.size(item, parent);\n      sizes.push(s);\n      offset += s;\n    }\n\n    var offsetType = void 0;\n    if (offset <= 0xff) {\n      offsetType = r.uint8;\n    } else if (offset <= 0xffff) {\n      offsetType = r.uint16;\n    } else if (offset <= 0xffffff) {\n      offsetType = r.uint24;\n    } else if (offset <= 0xffffffff) {\n      offsetType = r.uint32;\n    } else {\n      throw new Error(\"Bad offset in CFFIndex\");\n    }\n\n    // write offset size\n    stream.writeUInt8(offsetType.size());\n\n    // write elements\n    offset = 1;\n    offsetType.encode(stream, offset);\n\n    for (var _iterator2 = sizes, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var size = _ref2;\n\n      offset += size;\n      offsetType.encode(stream, offset);\n    }\n\n    for (var _iterator3 = arr, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n      var _ref3;\n\n      if (_isArray3) {\n        if (_i3 >= _iterator3.length) break;\n        _ref3 = _iterator3[_i3++];\n      } else {\n        _i3 = _iterator3.next();\n        if (_i3.done) break;\n        _ref3 = _i3.value;\n      }\n\n      var _item = _ref3;\n\n      type.encode(stream, _item, parent);\n    }\n\n    return;\n  };\n\n  return CFFIndex;\n}();\n\nvar FLOAT_EOF = 0xf;\nvar FLOAT_LOOKUP = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n\nvar FLOAT_ENCODE_LOOKUP = {\n  '.': 10,\n  'E': 11,\n  'E-': 12,\n  '-': 14\n};\n\nvar CFFOperand = function () {\n  function CFFOperand() {\n    _classCallCheck(this, CFFOperand);\n  }\n\n  CFFOperand.decode = function decode(stream, value) {\n    if (32 <= value && value <= 246) {\n      return value - 139;\n    }\n\n    if (247 <= value && value <= 250) {\n      return (value - 247) * 256 + stream.readUInt8() + 108;\n    }\n\n    if (251 <= value && value <= 254) {\n      return -(value - 251) * 256 - stream.readUInt8() - 108;\n    }\n\n    if (value === 28) {\n      return stream.readInt16BE();\n    }\n\n    if (value === 29) {\n      return stream.readInt32BE();\n    }\n\n    if (value === 30) {\n      var str = '';\n      while (true) {\n        var b = stream.readUInt8();\n\n        var n1 = b >> 4;\n        if (n1 === FLOAT_EOF) {\n          break;\n        }\n        str += FLOAT_LOOKUP[n1];\n\n        var n2 = b & 15;\n        if (n2 === FLOAT_EOF) {\n          break;\n        }\n        str += FLOAT_LOOKUP[n2];\n      }\n\n      return parseFloat(str);\n    }\n\n    return null;\n  };\n\n  CFFOperand.size = function size(value) {\n    // if the value needs to be forced to the largest size (32 bit)\n    // e.g. for unknown pointers, set to 32768\n    if (value.forceLarge) {\n      value = 32768;\n    }\n\n    if ((value | 0) !== value) {\n      // floating point\n      var str = '' + value;\n      return 1 + Math.ceil((str.length + 1) / 2);\n    } else if (-107 <= value && value <= 107) {\n      return 1;\n    } else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) {\n      return 2;\n    } else if (-32768 <= value && value <= 32767) {\n      return 3;\n    } else {\n      return 5;\n    }\n  };\n\n  CFFOperand.encode = function encode(stream, value) {\n    // if the value needs to be forced to the largest size (32 bit)\n    // e.g. for unknown pointers, save the old value and set to 32768\n    var val = Number(value);\n\n    if (value.forceLarge) {\n      stream.writeUInt8(29);\n      return stream.writeInt32BE(val);\n    } else if ((val | 0) !== val) {\n      // floating point\n      stream.writeUInt8(30);\n\n      var str = '' + val;\n      for (var i = 0; i < str.length; i += 2) {\n        var c1 = str[i];\n        var n1 = FLOAT_ENCODE_LOOKUP[c1] || +c1;\n\n        if (i === str.length - 1) {\n          var n2 = FLOAT_EOF;\n        } else {\n          var c2 = str[i + 1];\n          var n2 = FLOAT_ENCODE_LOOKUP[c2] || +c2;\n        }\n\n        stream.writeUInt8(n1 << 4 | n2 & 15);\n      }\n\n      if (n2 !== FLOAT_EOF) {\n        return stream.writeUInt8(FLOAT_EOF << 4);\n      }\n    } else if (-107 <= val && val <= 107) {\n      return stream.writeUInt8(val + 139);\n    } else if (108 <= val && val <= 1131) {\n      val -= 108;\n      stream.writeUInt8((val >> 8) + 247);\n      return stream.writeUInt8(val & 0xff);\n    } else if (-1131 <= val && val <= -108) {\n      val = -val - 108;\n      stream.writeUInt8((val >> 8) + 251);\n      return stream.writeUInt8(val & 0xff);\n    } else if (-32768 <= val && val <= 32767) {\n      stream.writeUInt8(28);\n      return stream.writeInt16BE(val);\n    } else {\n      stream.writeUInt8(29);\n      return stream.writeInt32BE(val);\n    }\n  };\n\n  return CFFOperand;\n}();\n\nvar CFFDict = function () {\n  function CFFDict() {\n    var ops = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n    _classCallCheck(this, CFFDict);\n\n    this.ops = ops;\n    this.fields = {};\n    for (var _iterator = ops, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var field = _ref;\n\n      var key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n      this.fields[key] = field;\n    }\n  }\n\n  CFFDict.prototype.decodeOperands = function decodeOperands(type, stream, ret, operands) {\n    var _this = this;\n\n    if (Array.isArray(type)) {\n      return operands.map(function (op, i) {\n        return _this.decodeOperands(type[i], stream, ret, [op]);\n      });\n    } else if (type.decode != null) {\n      return type.decode(stream, ret, operands);\n    } else {\n      switch (type) {\n        case 'number':\n        case 'offset':\n        case 'sid':\n          return operands[0];\n        case 'boolean':\n          return !!operands[0];\n        default:\n          return operands;\n      }\n    }\n  };\n\n  CFFDict.prototype.encodeOperands = function encodeOperands(type, stream, ctx, operands) {\n    var _this2 = this;\n\n    if (Array.isArray(type)) {\n      return operands.map(function (op, i) {\n        return _this2.encodeOperands(type[i], stream, ctx, op)[0];\n      });\n    } else if (type.encode != null) {\n      return type.encode(stream, operands, ctx);\n    } else if (typeof operands === 'number') {\n      return [operands];\n    } else if (typeof operands === 'boolean') {\n      return [+operands];\n    } else if (Array.isArray(operands)) {\n      return operands;\n    } else {\n      return [operands];\n    }\n  };\n\n  CFFDict.prototype.decode = function decode(stream, parent) {\n    var end = stream.pos + parent.length;\n    var ret = {};\n    var operands = [];\n\n    // define hidden properties\n    _Object$defineProperties(ret, {\n      parent: { value: parent },\n      _startOffset: { value: stream.pos }\n    });\n\n    // fill in defaults\n    for (var key in this.fields) {\n      var field = this.fields[key];\n      ret[field[1]] = field[3];\n    }\n\n    while (stream.pos < end) {\n      var b = stream.readUInt8();\n      if (b < 28) {\n        if (b === 12) {\n          b = b << 8 | stream.readUInt8();\n        }\n\n        var _field = this.fields[b];\n        if (!_field) {\n          throw new Error('Unknown operator ' + b);\n        }\n\n        var val = this.decodeOperands(_field[2], stream, ret, operands);\n        if (val != null) {\n          if (val instanceof restructure_src_utils.PropertyDescriptor) {\n            _Object$defineProperty(ret, _field[1], val);\n          } else {\n            ret[_field[1]] = val;\n          }\n        }\n\n        operands = [];\n      } else {\n        operands.push(CFFOperand.decode(stream, b));\n      }\n    }\n\n    return ret;\n  };\n\n  CFFDict.prototype.size = function size(dict, parent) {\n    var includePointers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n    var ctx = {\n      parent: parent,\n      val: dict,\n      pointerSize: 0,\n      startOffset: parent.startOffset || 0\n    };\n\n    var len = 0;\n\n    for (var k in this.fields) {\n      var field = this.fields[k];\n      var val = dict[field[1]];\n      if (val == null || isEqual(val, field[3])) {\n        continue;\n      }\n\n      var operands = this.encodeOperands(field[2], null, ctx, val);\n      for (var _iterator2 = operands, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var op = _ref2;\n\n        len += CFFOperand.size(op);\n      }\n\n      var key = Array.isArray(field[0]) ? field[0] : [field[0]];\n      len += key.length;\n    }\n\n    if (includePointers) {\n      len += ctx.pointerSize;\n    }\n\n    return len;\n  };\n\n  CFFDict.prototype.encode = function encode(stream, dict, parent) {\n    var ctx = {\n      pointers: [],\n      startOffset: stream.pos,\n      parent: parent,\n      val: dict,\n      pointerSize: 0\n    };\n\n    ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n\n    for (var _iterator3 = this.ops, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n      var _ref3;\n\n      if (_isArray3) {\n        if (_i3 >= _iterator3.length) break;\n        _ref3 = _iterator3[_i3++];\n      } else {\n        _i3 = _iterator3.next();\n        if (_i3.done) break;\n        _ref3 = _i3.value;\n      }\n\n      var field = _ref3;\n\n      var val = dict[field[1]];\n      if (val == null || isEqual(val, field[3])) {\n        continue;\n      }\n\n      var operands = this.encodeOperands(field[2], stream, ctx, val);\n      for (var _iterator4 = operands, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n        var _ref4;\n\n        if (_isArray4) {\n          if (_i4 >= _iterator4.length) break;\n          _ref4 = _iterator4[_i4++];\n        } else {\n          _i4 = _iterator4.next();\n          if (_i4.done) break;\n          _ref4 = _i4.value;\n        }\n\n        var op = _ref4;\n\n        CFFOperand.encode(stream, op);\n      }\n\n      var key = Array.isArray(field[0]) ? field[0] : [field[0]];\n      for (var _iterator5 = key, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\n        var _ref5;\n\n        if (_isArray5) {\n          if (_i5 >= _iterator5.length) break;\n          _ref5 = _iterator5[_i5++];\n        } else {\n          _i5 = _iterator5.next();\n          if (_i5.done) break;\n          _ref5 = _i5.value;\n        }\n\n        var _op = _ref5;\n\n        stream.writeUInt8(_op);\n      }\n    }\n\n    var i = 0;\n    while (i < ctx.pointers.length) {\n      var ptr = ctx.pointers[i++];\n      ptr.type.encode(stream, ptr.val, ptr.parent);\n    }\n\n    return;\n  };\n\n  return CFFDict;\n}();\n\nvar CFFPointer = function (_r$Pointer) {\n  _inherits(CFFPointer, _r$Pointer);\n\n  function CFFPointer(type) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, CFFPointer);\n\n    if (options.type == null) {\n      options.type = 'global';\n    }\n\n    return _possibleConstructorReturn(this, _r$Pointer.call(this, null, type, options));\n  }\n\n  CFFPointer.prototype.decode = function decode(stream, parent, operands) {\n    this.offsetType = {\n      decode: function decode() {\n        return operands[0];\n      }\n    };\n\n    return _r$Pointer.prototype.decode.call(this, stream, parent, operands);\n  };\n\n  CFFPointer.prototype.encode = function encode(stream, value, ctx) {\n    if (!stream) {\n      // compute the size (so ctx.pointerSize is correct)\n      this.offsetType = {\n        size: function size() {\n          return 0;\n        }\n      };\n\n      this.size(value, ctx);\n      return [new Ptr(0)];\n    }\n\n    var ptr = null;\n    this.offsetType = {\n      encode: function encode(stream, val) {\n        return ptr = val;\n      }\n    };\n\n    _r$Pointer.prototype.encode.call(this, stream, value, ctx);\n    return [new Ptr(ptr)];\n  };\n\n  return CFFPointer;\n}(r.Pointer);\n\nvar Ptr = function () {\n  function Ptr(val) {\n    _classCallCheck(this, Ptr);\n\n    this.val = val;\n    this.forceLarge = true;\n  }\n\n  Ptr.prototype.valueOf = function valueOf() {\n    return this.val;\n  };\n\n  return Ptr;\n}();\n\nvar CFFBlendOp = function () {\n  function CFFBlendOp() {\n    _classCallCheck(this, CFFBlendOp);\n  }\n\n  CFFBlendOp.decode = function decode(stream, parent, operands) {\n    var numBlends = operands.pop();\n\n    // TODO: actually blend. For now just consume the deltas\n    // since we don't use any of the values anyway.\n    while (operands.length > numBlends) {\n      operands.pop();\n    }\n  };\n\n  return CFFBlendOp;\n}();\n\nvar CFFPrivateDict = new CFFDict([\n// key       name                    type                                          default\n[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'number', 0.039625], [[12, 10], 'BlueShift', 'number', 7], [[12, 11], 'BlueFuzz', 'number', 1], [10, 'StdHW', 'number', null], [11, 'StdVW', 'number', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'boolean', false], [[12, 17], 'LanguageGroup', 'number', 0], [[12, 18], 'ExpansionFactor', 'number', 0.06], [[12, 19], 'initialRandomSeed', 'number', 0], [20, 'defaultWidthX', 'number', 0], [21, 'nominalWidthX', 'number', 0], [22, 'vsindex', 'number', 0], [23, 'blend', CFFBlendOp, null], [19, 'Subrs', new CFFPointer(new CFFIndex(), { type: 'local' }), null]]);\n\n// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nvar standardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\n\nvar StandardEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'];\n\nvar ExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\n\nvar ISOAdobeCharset = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron'];\n\nvar ExpertCharset = ['.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\n\nvar ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior'];\n\n//########################\n// Scripts and Languages #\n//########################\n\nvar LangSysTable = new r.Struct({\n  reserved: new r.Reserved(r.uint16),\n  reqFeatureIndex: r.uint16,\n  featureCount: r.uint16,\n  featureIndexes: new r.Array(r.uint16, 'featureCount')\n});\n\nvar LangSysRecord = new r.Struct({\n  tag: new r.String(4),\n  langSys: new r.Pointer(r.uint16, LangSysTable, { type: 'parent' })\n});\n\nvar Script = new r.Struct({\n  defaultLangSys: new r.Pointer(r.uint16, LangSysTable),\n  count: r.uint16,\n  langSysRecords: new r.Array(LangSysRecord, 'count')\n});\n\nvar ScriptRecord = new r.Struct({\n  tag: new r.String(4),\n  script: new r.Pointer(r.uint16, Script, { type: 'parent' })\n});\n\nvar ScriptList = new r.Array(ScriptRecord, r.uint16);\n\n//#######################\n// Features and Lookups #\n//#######################\n\nvar Feature = new r.Struct({\n  featureParams: r.uint16, // pointer\n  lookupCount: r.uint16,\n  lookupListIndexes: new r.Array(r.uint16, 'lookupCount')\n});\n\nvar FeatureRecord = new r.Struct({\n  tag: new r.String(4),\n  feature: new r.Pointer(r.uint16, Feature, { type: 'parent' })\n});\n\nvar FeatureList = new r.Array(FeatureRecord, r.uint16);\n\nvar LookupFlags = new r.Struct({\n  markAttachmentType: r.uint8,\n  flags: new r.Bitfield(r.uint8, ['rightToLeft', 'ignoreBaseGlyphs', 'ignoreLigatures', 'ignoreMarks', 'useMarkFilteringSet'])\n});\n\nfunction LookupList(SubTable) {\n  var Lookup = new r.Struct({\n    lookupType: r.uint16,\n    flags: LookupFlags,\n    subTableCount: r.uint16,\n    subTables: new r.Array(new r.Pointer(r.uint16, SubTable), 'subTableCount'),\n    markFilteringSet: new r.Optional(r.uint16, function (t) {\n      return t.flags.flags.useMarkFilteringSet;\n    })\n  });\n\n  return new r.LazyArray(new r.Pointer(r.uint16, Lookup), r.uint16);\n}\n\n//#################\n// Coverage Table #\n//#################\n\nvar RangeRecord = new r.Struct({\n  start: r.uint16,\n  end: r.uint16,\n  startCoverageIndex: r.uint16\n});\n\nvar Coverage = new r.VersionedStruct(r.uint16, {\n  1: {\n    glyphCount: r.uint16,\n    glyphs: new r.Array(r.uint16, 'glyphCount')\n  },\n  2: {\n    rangeCount: r.uint16,\n    rangeRecords: new r.Array(RangeRecord, 'rangeCount')\n  }\n});\n\n//#########################\n// Class Definition Table #\n//#########################\n\nvar ClassRangeRecord = new r.Struct({\n  start: r.uint16,\n  end: r.uint16,\n  class: r.uint16\n});\n\nvar ClassDef = new r.VersionedStruct(r.uint16, {\n  1: { // Class array\n    startGlyph: r.uint16,\n    glyphCount: r.uint16,\n    classValueArray: new r.Array(r.uint16, 'glyphCount')\n  },\n  2: { // Class ranges\n    classRangeCount: r.uint16,\n    classRangeRecord: new r.Array(ClassRangeRecord, 'classRangeCount')\n  }\n});\n\n//###############\n// Device Table #\n//###############\n\nvar Device = new r.Struct({\n  a: r.uint16, // startSize for hinting Device, outerIndex for VariationIndex\n  b: r.uint16, // endSize for Device, innerIndex for VariationIndex\n  deltaFormat: r.uint16\n});\n\n//#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\n\nvar LookupRecord = new r.Struct({\n  sequenceIndex: r.uint16,\n  lookupListIndex: r.uint16\n});\n\nvar Rule = new r.Struct({\n  glyphCount: r.uint16,\n  lookupCount: r.uint16,\n  input: new r.Array(r.uint16, function (t) {\n    return t.glyphCount - 1;\n  }),\n  lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nvar RuleSet = new r.Array(new r.Pointer(r.uint16, Rule), r.uint16);\n\nvar ClassRule = new r.Struct({\n  glyphCount: r.uint16,\n  lookupCount: r.uint16,\n  classes: new r.Array(r.uint16, function (t) {\n    return t.glyphCount - 1;\n  }),\n  lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nvar ClassSet = new r.Array(new r.Pointer(r.uint16, ClassRule), r.uint16);\n\nvar Context = new r.VersionedStruct(r.uint16, {\n  1: { // Simple context\n    coverage: new r.Pointer(r.uint16, Coverage),\n    ruleSetCount: r.uint16,\n    ruleSets: new r.Array(new r.Pointer(r.uint16, RuleSet), 'ruleSetCount')\n  },\n  2: { // Class-based context\n    coverage: new r.Pointer(r.uint16, Coverage),\n    classDef: new r.Pointer(r.uint16, ClassDef),\n    classSetCnt: r.uint16,\n    classSet: new r.Array(new r.Pointer(r.uint16, ClassSet), 'classSetCnt')\n  },\n  3: {\n    glyphCount: r.uint16,\n    lookupCount: r.uint16,\n    coverages: new r.Array(new r.Pointer(r.uint16, Coverage), 'glyphCount'),\n    lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n  }\n});\n\n//######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\n\nvar ChainRule = new r.Struct({\n  backtrackGlyphCount: r.uint16,\n  backtrack: new r.Array(r.uint16, 'backtrackGlyphCount'),\n  inputGlyphCount: r.uint16,\n  input: new r.Array(r.uint16, function (t) {\n    return t.inputGlyphCount - 1;\n  }),\n  lookaheadGlyphCount: r.uint16,\n  lookahead: new r.Array(r.uint16, 'lookaheadGlyphCount'),\n  lookupCount: r.uint16,\n  lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nvar ChainRuleSet = new r.Array(new r.Pointer(r.uint16, ChainRule), r.uint16);\n\nvar ChainingContext = new r.VersionedStruct(r.uint16, {\n  1: { // Simple context glyph substitution\n    coverage: new r.Pointer(r.uint16, Coverage),\n    chainCount: r.uint16,\n    chainRuleSets: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n  },\n\n  2: { // Class-based chaining context\n    coverage: new r.Pointer(r.uint16, Coverage),\n    backtrackClassDef: new r.Pointer(r.uint16, ClassDef),\n    inputClassDef: new r.Pointer(r.uint16, ClassDef),\n    lookaheadClassDef: new r.Pointer(r.uint16, ClassDef),\n    chainCount: r.uint16,\n    chainClassSet: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n  },\n\n  3: { // Coverage-based chaining context\n    backtrackGlyphCount: r.uint16,\n    backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n    inputGlyphCount: r.uint16,\n    inputCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'inputGlyphCount'),\n    lookaheadGlyphCount: r.uint16,\n    lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n    lookupCount: r.uint16,\n    lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n  }\n});\n\nvar _;\n\n/*******************\n * Variation Store *\n *******************/\n\nvar F2DOT14 = new r.Fixed(16, 'BE', 14);\nvar RegionAxisCoordinates = new r.Struct({\n  startCoord: F2DOT14,\n  peakCoord: F2DOT14,\n  endCoord: F2DOT14\n});\n\nvar VariationRegionList = new r.Struct({\n  axisCount: r.uint16,\n  regionCount: r.uint16,\n  variationRegions: new r.Array(new r.Array(RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\n\nvar DeltaSet = new r.Struct({\n  shortDeltas: new r.Array(r.int16, function (t) {\n    return t.parent.shortDeltaCount;\n  }),\n  regionDeltas: new r.Array(r.int8, function (t) {\n    return t.parent.regionIndexCount - t.parent.shortDeltaCount;\n  }),\n  deltas: function deltas(t) {\n    return t.shortDeltas.concat(t.regionDeltas);\n  }\n});\n\nvar ItemVariationData = new r.Struct({\n  itemCount: r.uint16,\n  shortDeltaCount: r.uint16,\n  regionIndexCount: r.uint16,\n  regionIndexes: new r.Array(r.uint16, 'regionIndexCount'),\n  deltaSets: new r.Array(DeltaSet, 'itemCount')\n});\n\nvar ItemVariationStore = new r.Struct({\n  format: r.uint16,\n  variationRegionList: new r.Pointer(r.uint32, VariationRegionList),\n  variationDataCount: r.uint16,\n  itemVariationData: new r.Array(new r.Pointer(r.uint32, ItemVariationData), 'variationDataCount')\n});\n\n/**********************\n * Feature Variations *\n **********************/\n\nvar ConditionTable = new r.VersionedStruct(r.uint16, {\n  1: (_ = {\n    axisIndex: r.uint16\n  }, _['axisIndex'] = r.uint16, _.filterRangeMinValue = F2DOT14, _.filterRangeMaxValue = F2DOT14, _)\n});\n\nvar ConditionSet = new r.Struct({\n  conditionCount: r.uint16,\n  conditionTable: new r.Array(new r.Pointer(r.uint32, ConditionTable), 'conditionCount')\n});\n\nvar FeatureTableSubstitutionRecord = new r.Struct({\n  featureIndex: r.uint16,\n  alternateFeatureTable: new r.Pointer(r.uint32, Feature, { type: 'parent' })\n});\n\nvar FeatureTableSubstitution = new r.Struct({\n  version: r.fixed32,\n  substitutionCount: r.uint16,\n  substitutions: new r.Array(FeatureTableSubstitutionRecord, 'substitutionCount')\n});\n\nvar FeatureVariationRecord = new r.Struct({\n  conditionSet: new r.Pointer(r.uint32, ConditionSet, { type: 'parent' }),\n  featureTableSubstitution: new r.Pointer(r.uint32, FeatureTableSubstitution, { type: 'parent' })\n});\n\nvar FeatureVariations = new r.Struct({\n  majorVersion: r.uint16,\n  minorVersion: r.uint16,\n  featureVariationRecordCount: r.uint32,\n  featureVariationRecords: new r.Array(FeatureVariationRecord, 'featureVariationRecordCount')\n});\n\n// Checks if an operand is an index of a predefined value,\n// otherwise delegates to the provided type.\n\nvar PredefinedOp = function () {\n  function PredefinedOp(predefinedOps, type) {\n    _classCallCheck(this, PredefinedOp);\n\n    this.predefinedOps = predefinedOps;\n    this.type = type;\n  }\n\n  PredefinedOp.prototype.decode = function decode(stream, parent, operands) {\n    if (this.predefinedOps[operands[0]]) {\n      return this.predefinedOps[operands[0]];\n    }\n\n    return this.type.decode(stream, parent, operands);\n  };\n\n  PredefinedOp.prototype.size = function size(value, ctx) {\n    return this.type.size(value, ctx);\n  };\n\n  PredefinedOp.prototype.encode = function encode(stream, value, ctx) {\n    var index = this.predefinedOps.indexOf(value);\n    if (index !== -1) {\n      return index;\n    }\n\n    return this.type.encode(stream, value, ctx);\n  };\n\n  return PredefinedOp;\n}();\n\nvar CFFEncodingVersion = function (_r$Number) {\n  _inherits(CFFEncodingVersion, _r$Number);\n\n  function CFFEncodingVersion() {\n    _classCallCheck(this, CFFEncodingVersion);\n\n    return _possibleConstructorReturn(this, _r$Number.call(this, 'UInt8'));\n  }\n\n  CFFEncodingVersion.prototype.decode = function decode(stream) {\n    return r.uint8.decode(stream) & 0x7f;\n  };\n\n  return CFFEncodingVersion;\n}(r.Number);\n\nvar Range1 = new r.Struct({\n  first: r.uint16,\n  nLeft: r.uint8\n});\n\nvar Range2 = new r.Struct({\n  first: r.uint16,\n  nLeft: r.uint16\n});\n\nvar CFFCustomEncoding = new r.VersionedStruct(new CFFEncodingVersion(), {\n  0: {\n    nCodes: r.uint8,\n    codes: new r.Array(r.uint8, 'nCodes')\n  },\n\n  1: {\n    nRanges: r.uint8,\n    ranges: new r.Array(Range1, 'nRanges')\n\n    // TODO: supplement?\n  } });\n\nvar CFFEncoding = new PredefinedOp([StandardEncoding, ExpertEncoding], new CFFPointer(CFFCustomEncoding, { lazy: true }));\n\n// Decodes an array of ranges until the total\n// length is equal to the provided length.\n\nvar RangeArray = function (_r$Array) {\n  _inherits(RangeArray, _r$Array);\n\n  function RangeArray() {\n    _classCallCheck(this, RangeArray);\n\n    return _possibleConstructorReturn(this, _r$Array.apply(this, arguments));\n  }\n\n  RangeArray.prototype.decode = function decode(stream, parent) {\n    var length = restructure_src_utils.resolveLength(this.length, stream, parent);\n    var count = 0;\n    var res = [];\n    while (count < length) {\n      var range = this.type.decode(stream, parent);\n      range.offset = count;\n      count += range.nLeft + 1;\n      res.push(range);\n    }\n\n    return res;\n  };\n\n  return RangeArray;\n}(r.Array);\n\nvar CFFCustomCharset = new r.VersionedStruct(r.uint8, {\n  0: {\n    glyphs: new r.Array(r.uint16, function (t) {\n      return t.parent.CharStrings.length - 1;\n    })\n  },\n\n  1: {\n    ranges: new RangeArray(Range1, function (t) {\n      return t.parent.CharStrings.length - 1;\n    })\n  },\n\n  2: {\n    ranges: new RangeArray(Range2, function (t) {\n      return t.parent.CharStrings.length - 1;\n    })\n  }\n});\n\nvar CFFCharset = new PredefinedOp([ISOAdobeCharset, ExpertCharset, ExpertSubsetCharset], new CFFPointer(CFFCustomCharset, { lazy: true }));\n\nvar FDRange3 = new r.Struct({\n  first: r.uint16,\n  fd: r.uint8\n});\n\nvar FDRange4 = new r.Struct({\n  first: r.uint32,\n  fd: r.uint16\n});\n\nvar FDSelect = new r.VersionedStruct(r.uint8, {\n  0: {\n    fds: new r.Array(r.uint8, function (t) {\n      return t.parent.CharStrings.length;\n    })\n  },\n\n  3: {\n    nRanges: r.uint16,\n    ranges: new r.Array(FDRange3, 'nRanges'),\n    sentinel: r.uint16\n  },\n\n  4: {\n    nRanges: r.uint32,\n    ranges: new r.Array(FDRange4, 'nRanges'),\n    sentinel: r.uint32\n  }\n});\n\nvar ptr = new CFFPointer(CFFPrivateDict);\n\nvar CFFPrivateOp = function () {\n  function CFFPrivateOp() {\n    _classCallCheck(this, CFFPrivateOp);\n  }\n\n  CFFPrivateOp.prototype.decode = function decode(stream, parent, operands) {\n    parent.length = operands[0];\n    return ptr.decode(stream, parent, [operands[1]]);\n  };\n\n  CFFPrivateOp.prototype.size = function size(dict, ctx) {\n    return [CFFPrivateDict.size(dict, ctx, false), ptr.size(dict, ctx)[0]];\n  };\n\n  CFFPrivateOp.prototype.encode = function encode(stream, dict, ctx) {\n    return [CFFPrivateDict.size(dict, ctx, false), ptr.encode(stream, dict, ctx)[0]];\n  };\n\n  return CFFPrivateOp;\n}();\n\nvar FontDict = new CFFDict([\n// key       name                   type(s)                                 default\n[18, 'Private', new CFFPrivateOp(), null], [[12, 38], 'FontName', 'sid', null], [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [[12, 5], 'PaintType', 'number', 0]]);\n\nvar CFFTopDict = new CFFDict([\n// key       name                   type(s)                                 default\n[[12, 30], 'ROS', ['sid', 'sid', 'number'], null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'boolean', false], [[12, 2], 'ItalicAngle', 'number', 0], [[12, 3], 'UnderlinePosition', 'number', -100], [[12, 4], 'UnderlineThickness', 'number', 50], [[12, 5], 'PaintType', 'number', 0], [[12, 6], 'CharstringType', 'number', 2], [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'number', null], [5, 'FontBBox', 'array', [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'number', 0], [14, 'XUID', 'array', null], [15, 'charset', CFFCharset, ISOAdobeCharset], [16, 'Encoding', CFFEncoding, StandardEncoding], [17, 'CharStrings', new CFFPointer(new CFFIndex()), null], [18, 'Private', new CFFPrivateOp(), null], [[12, 20], 'SyntheticBase', 'number', null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null],\n\n// CID font specific\n[[12, 31], 'CIDFontVersion', 'number', 0], [[12, 32], 'CIDFontRevision', 'number', 0], [[12, 33], 'CIDFontType', 'number', 0], [[12, 34], 'CIDCount', 'number', 8720], [[12, 35], 'UIDBase', 'number', null], [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null], [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null], [[12, 38], 'FontName', 'sid', null]]);\n\nvar VariationStore = new r.Struct({\n  length: r.uint16,\n  itemVariationStore: ItemVariationStore\n});\n\nvar CFF2TopDict = new CFFDict([[[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [17, 'CharStrings', new CFFPointer(new CFFIndex()), null], [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null], [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null], [24, 'vstore', new CFFPointer(VariationStore), null], [25, 'maxstack', 'number', 193]]);\n\nvar CFFTop = new r.VersionedStruct(r.fixed16, {\n  1: {\n    hdrSize: r.uint8,\n    offSize: r.uint8,\n    nameIndex: new CFFIndex(new r.String('length')),\n    topDictIndex: new CFFIndex(CFFTopDict),\n    stringIndex: new CFFIndex(new r.String('length')),\n    globalSubrIndex: new CFFIndex()\n  },\n\n  2: {\n    hdrSize: r.uint8,\n    length: r.uint16,\n    topDict: CFF2TopDict,\n    globalSubrIndex: new CFFIndex()\n  }\n});\n\nvar CFFFont = function () {\n  function CFFFont(stream) {\n    _classCallCheck(this, CFFFont);\n\n    this.stream = stream;\n    this.decode();\n  }\n\n  CFFFont.decode = function decode(stream) {\n    return new CFFFont(stream);\n  };\n\n  CFFFont.prototype.decode = function decode() {\n    var start = this.stream.pos;\n    var top = CFFTop.decode(this.stream);\n    for (var key in top) {\n      var val = top[key];\n      this[key] = val;\n    }\n\n    if (this.version < 2) {\n      if (this.topDictIndex.length !== 1) {\n        throw new Error(\"Only a single font is allowed in CFF\");\n      }\n\n      this.topDict = this.topDictIndex[0];\n    }\n\n    this.isCIDFont = this.topDict.ROS != null;\n    return this;\n  };\n\n  CFFFont.prototype.string = function string(sid) {\n    if (this.version >= 2) {\n      return null;\n    }\n\n    if (sid < standardStrings.length) {\n      return standardStrings[sid];\n    }\n\n    return this.stringIndex[sid - standardStrings.length];\n  };\n\n  CFFFont.prototype.getCharString = function getCharString(glyph) {\n    this.stream.pos = this.topDict.CharStrings[glyph].offset;\n    return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n  };\n\n  CFFFont.prototype.getGlyphName = function getGlyphName(gid) {\n    // CFF2 glyph names are in the post table.\n    if (this.version >= 2) {\n      return null;\n    }\n\n    // CID-keyed fonts don't have glyph names\n    if (this.isCIDFont) {\n      return null;\n    }\n\n    var charset = this.topDict.charset;\n\n    if (Array.isArray(charset)) {\n      return charset[gid];\n    }\n\n    if (gid === 0) {\n      return '.notdef';\n    }\n\n    gid -= 1;\n\n    switch (charset.version) {\n      case 0:\n        return this.string(charset.glyphs[gid]);\n\n      case 1:\n      case 2:\n        for (var i = 0; i < charset.ranges.length; i++) {\n          var range = charset.ranges[i];\n          if (range.offset <= gid && gid <= range.offset + range.nLeft) {\n            return this.string(range.first + (gid - range.offset));\n          }\n        }\n        break;\n    }\n\n    return null;\n  };\n\n  CFFFont.prototype.fdForGlyph = function fdForGlyph(gid) {\n    if (!this.topDict.FDSelect) {\n      return null;\n    }\n\n    switch (this.topDict.FDSelect.version) {\n      case 0:\n        return this.topDict.FDSelect.fds[gid];\n\n      case 3:\n      case 4:\n        var ranges = this.topDict.FDSelect.ranges;\n\n        var low = 0;\n        var high = ranges.length - 1;\n\n        while (low <= high) {\n          var mid = low + high >> 1;\n\n          if (gid < ranges[mid].first) {\n            high = mid - 1;\n          } else if (mid < high && gid >= ranges[mid + 1].first) {\n            low = mid + 1;\n          } else {\n            return ranges[mid].fd;\n          }\n        }\n      default:\n        throw new Error('Unknown FDSelect version: ' + this.topDict.FDSelect.version);\n    }\n  };\n\n  CFFFont.prototype.privateDictForGlyph = function privateDictForGlyph(gid) {\n    if (this.topDict.FDSelect) {\n      var fd = this.fdForGlyph(gid);\n      if (this.topDict.FDArray[fd]) {\n        return this.topDict.FDArray[fd].Private;\n      }\n\n      return null;\n    }\n\n    if (this.version < 2) {\n      return this.topDict.Private;\n    }\n\n    return this.topDict.FDArray[0].Private;\n  };\n\n  _createClass(CFFFont, [{\n    key: 'postscriptName',\n    get: function get() {\n      if (this.version < 2) {\n        return this.nameIndex[0];\n      }\n\n      return null;\n    }\n  }, {\n    key: 'fullName',\n    get: function get() {\n      return this.string(this.topDict.FullName);\n    }\n  }, {\n    key: 'familyName',\n    get: function get() {\n      return this.string(this.topDict.FamilyName);\n    }\n  }]);\n\n  return CFFFont;\n}();\n\nvar VerticalOrigin = new r.Struct({\n  glyphIndex: r.uint16,\n  vertOriginY: r.int16\n});\n\nvar VORG = new r.Struct({\n  majorVersion: r.uint16,\n  minorVersion: r.uint16,\n  defaultVertOriginY: r.int16,\n  numVertOriginYMetrics: r.uint16,\n  metrics: new r.Array(VerticalOrigin, 'numVertOriginYMetrics')\n});\n\nvar BigMetrics = new r.Struct({\n  height: r.uint8,\n  width: r.uint8,\n  horiBearingX: r.int8,\n  horiBearingY: r.int8,\n  horiAdvance: r.uint8,\n  vertBearingX: r.int8,\n  vertBearingY: r.int8,\n  vertAdvance: r.uint8\n});\n\nvar SmallMetrics = new r.Struct({\n  height: r.uint8,\n  width: r.uint8,\n  bearingX: r.int8,\n  bearingY: r.int8,\n  advance: r.uint8\n});\n\nvar EBDTComponent = new r.Struct({\n  glyph: r.uint16,\n  xOffset: r.int8,\n  yOffset: r.int8\n});\n\nvar ByteAligned = function ByteAligned() {\n  _classCallCheck(this, ByteAligned);\n};\n\nvar BitAligned = function BitAligned() {\n  _classCallCheck(this, BitAligned);\n};\n\nvar glyph = new r.VersionedStruct('version', {\n  1: {\n    metrics: SmallMetrics,\n    data: ByteAligned\n  },\n\n  2: {\n    metrics: SmallMetrics,\n    data: BitAligned\n  },\n\n  // format 3 is deprecated\n  // format 4 is not supported by Microsoft\n\n  5: {\n    data: BitAligned\n  },\n\n  6: {\n    metrics: BigMetrics,\n    data: ByteAligned\n  },\n\n  7: {\n    metrics: BigMetrics,\n    data: BitAligned\n  },\n\n  8: {\n    metrics: SmallMetrics,\n    pad: new r.Reserved(r.uint8),\n    numComponents: r.uint16,\n    components: new r.Array(EBDTComponent, 'numComponents')\n  },\n\n  9: {\n    metrics: BigMetrics,\n    pad: new r.Reserved(r.uint8),\n    numComponents: r.uint16,\n    components: new r.Array(EBDTComponent, 'numComponents')\n  },\n\n  17: {\n    metrics: SmallMetrics,\n    dataLen: r.uint32,\n    data: new r.Buffer('dataLen')\n  },\n\n  18: {\n    metrics: BigMetrics,\n    dataLen: r.uint32,\n    data: new r.Buffer('dataLen')\n  },\n\n  19: {\n    dataLen: r.uint32,\n    data: new r.Buffer('dataLen')\n  }\n});\n\nvar SBitLineMetrics = new r.Struct({\n  ascender: r.int8,\n  descender: r.int8,\n  widthMax: r.uint8,\n  caretSlopeNumerator: r.int8,\n  caretSlopeDenominator: r.int8,\n  caretOffset: r.int8,\n  minOriginSB: r.int8,\n  minAdvanceSB: r.int8,\n  maxBeforeBL: r.int8,\n  minAfterBL: r.int8,\n  pad: new r.Reserved(r.int8, 2)\n});\n\nvar CodeOffsetPair = new r.Struct({\n  glyphCode: r.uint16,\n  offset: r.uint16\n});\n\nvar IndexSubtable = new r.VersionedStruct(r.uint16, {\n  header: {\n    imageFormat: r.uint16,\n    imageDataOffset: r.uint32\n  },\n\n  1: {\n    offsetArray: new r.Array(r.uint32, function (t) {\n      return t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1;\n    })\n  },\n\n  2: {\n    imageSize: r.uint32,\n    bigMetrics: BigMetrics\n  },\n\n  3: {\n    offsetArray: new r.Array(r.uint16, function (t) {\n      return t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1;\n    })\n  },\n\n  4: {\n    numGlyphs: r.uint32,\n    glyphArray: new r.Array(CodeOffsetPair, function (t) {\n      return t.numGlyphs + 1;\n    })\n  },\n\n  5: {\n    imageSize: r.uint32,\n    bigMetrics: BigMetrics,\n    numGlyphs: r.uint32,\n    glyphCodeArray: new r.Array(r.uint16, 'numGlyphs')\n  }\n});\n\nvar IndexSubtableArray = new r.Struct({\n  firstGlyphIndex: r.uint16,\n  lastGlyphIndex: r.uint16,\n  subtable: new r.Pointer(r.uint32, IndexSubtable)\n});\n\nvar BitmapSizeTable = new r.Struct({\n  indexSubTableArray: new r.Pointer(r.uint32, new r.Array(IndexSubtableArray, 1), { type: 'parent' }),\n  indexTablesSize: r.uint32,\n  numberOfIndexSubTables: r.uint32,\n  colorRef: r.uint32,\n  hori: SBitLineMetrics,\n  vert: SBitLineMetrics,\n  startGlyphIndex: r.uint16,\n  endGlyphIndex: r.uint16,\n  ppemX: r.uint8,\n  ppemY: r.uint8,\n  bitDepth: r.uint8,\n  flags: new r.Bitfield(r.uint8, ['horizontal', 'vertical'])\n});\n\nvar EBLC = new r.Struct({\n  version: r.uint32, // 0x00020000\n  numSizes: r.uint32,\n  sizes: new r.Array(BitmapSizeTable, 'numSizes')\n});\n\nvar ImageTable = new r.Struct({\n  ppem: r.uint16,\n  resolution: r.uint16,\n  imageOffsets: new r.Array(new r.Pointer(r.uint32, 'void'), function (t) {\n    return t.parent.parent.maxp.numGlyphs + 1;\n  })\n});\n\n// This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\nvar sbix = new r.Struct({\n  version: r.uint16,\n  flags: new r.Bitfield(r.uint16, ['renderOutlines']),\n  numImgTables: r.uint32,\n  imageTables: new r.Array(new r.Pointer(r.uint32, ImageTable), 'numImgTables')\n});\n\nvar LayerRecord = new r.Struct({\n  gid: r.uint16, // Glyph ID of layer glyph (must be in z-order from bottom to top).\n  paletteIndex: r.uint16 // Index value to use in the appropriate palette. This value must\n}); // be less than numPaletteEntries in the CPAL table, except for\n// the special case noted below. Each palette entry is 16 bits.\n// A palette index of 0xFFFF is a special case indicating that\n// the text foreground color should be used.\n\nvar BaseGlyphRecord = new r.Struct({\n  gid: r.uint16, // Glyph ID of reference glyph. This glyph is for reference only\n  // and is not rendered for color.\n  firstLayerIndex: r.uint16, // Index (from beginning of the Layer Records) to the layer record.\n  // There will be numLayers consecutive entries for this base glyph.\n  numLayers: r.uint16\n});\n\nvar COLR = new r.Struct({\n  version: r.uint16,\n  numBaseGlyphRecords: r.uint16,\n  baseGlyphRecord: new r.Pointer(r.uint32, new r.Array(BaseGlyphRecord, 'numBaseGlyphRecords')),\n  layerRecords: new r.Pointer(r.uint32, new r.Array(LayerRecord, 'numLayerRecords'), { lazy: true }),\n  numLayerRecords: r.uint16\n});\n\nvar ColorRecord = new r.Struct({\n  blue: r.uint8,\n  green: r.uint8,\n  red: r.uint8,\n  alpha: r.uint8\n});\n\nvar CPAL = new r.VersionedStruct(r.uint16, {\n  header: {\n    numPaletteEntries: r.uint16,\n    numPalettes: r.uint16,\n    numColorRecords: r.uint16,\n    colorRecords: new r.Pointer(r.uint32, new r.Array(ColorRecord, 'numColorRecords')),\n    colorRecordIndices: new r.Array(r.uint16, 'numPalettes')\n  },\n  0: {},\n  1: {\n    offsetPaletteTypeArray: new r.Pointer(r.uint32, new r.Array(r.uint32, 'numPalettes')),\n    offsetPaletteLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPalettes')),\n    offsetPaletteEntryLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPaletteEntries'))\n  }\n});\n\nvar BaseCoord = new r.VersionedStruct(r.uint16, {\n  1: { // Design units only\n    coordinate: r.int16 // X or Y value, in design units\n  },\n\n  2: { // Design units plus contour point\n    coordinate: r.int16, // X or Y value, in design units\n    referenceGlyph: r.uint16, // GlyphID of control glyph\n    baseCoordPoint: r.uint16 // Index of contour point on the referenceGlyph\n  },\n\n  3: { // Design units plus Device table\n    coordinate: r.int16, // X or Y value, in design units\n    deviceTable: new r.Pointer(r.uint16, Device) // Device table for X or Y value\n  }\n});\n\nvar BaseValues = new r.Struct({\n  defaultIndex: r.uint16, // Index of default baseline for this script-same index in the BaseTagList\n  baseCoordCount: r.uint16,\n  baseCoords: new r.Array(new r.Pointer(r.uint16, BaseCoord), 'baseCoordCount')\n});\n\nvar FeatMinMaxRecord = new r.Struct({\n  tag: new r.String(4), // 4-byte feature identification tag-must match FeatureTag in FeatureList\n  minCoord: new r.Pointer(r.uint16, BaseCoord, { type: 'parent' }), // May be NULL\n  maxCoord: new r.Pointer(r.uint16, BaseCoord, { type: 'parent' }) // May be NULL\n});\n\nvar MinMax = new r.Struct({\n  minCoord: new r.Pointer(r.uint16, BaseCoord), // May be NULL\n  maxCoord: new r.Pointer(r.uint16, BaseCoord), // May be NULL\n  featMinMaxCount: r.uint16, // May be 0\n  featMinMaxRecords: new r.Array(FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n});\n\nvar BaseLangSysRecord = new r.Struct({\n  tag: new r.String(4), // 4-byte language system identification tag\n  minMax: new r.Pointer(r.uint16, MinMax, { type: 'parent' })\n});\n\nvar BaseScript = new r.Struct({\n  baseValues: new r.Pointer(r.uint16, BaseValues), // May be NULL\n  defaultMinMax: new r.Pointer(r.uint16, MinMax), // May be NULL\n  baseLangSysCount: r.uint16, // May be 0\n  baseLangSysRecords: new r.Array(BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n});\n\nvar BaseScriptRecord = new r.Struct({\n  tag: new r.String(4), // 4-byte script identification tag\n  script: new r.Pointer(r.uint16, BaseScript, { type: 'parent' })\n});\n\nvar BaseScriptList = new r.Array(BaseScriptRecord, r.uint16);\n\n// Array of 4-byte baseline identification tags-must be in alphabetical order\nvar BaseTagList = new r.Array(new r.String(4), r.uint16);\n\nvar Axis = new r.Struct({\n  baseTagList: new r.Pointer(r.uint16, BaseTagList), // May be NULL\n  baseScriptList: new r.Pointer(r.uint16, BaseScriptList)\n});\n\nvar BASE = new r.VersionedStruct(r.uint32, {\n  header: {\n    horizAxis: new r.Pointer(r.uint16, Axis), // May be NULL\n    vertAxis: new r.Pointer(r.uint16, Axis) // May be NULL\n  },\n\n  0x00010000: {},\n  0x00010001: {\n    itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n  }\n});\n\nvar AttachPoint = new r.Array(r.uint16, r.uint16);\nvar AttachList = new r.Struct({\n  coverage: new r.Pointer(r.uint16, Coverage),\n  glyphCount: r.uint16,\n  attachPoints: new r.Array(new r.Pointer(r.uint16, AttachPoint), 'glyphCount')\n});\n\nvar CaretValue = new r.VersionedStruct(r.uint16, {\n  1: { // Design units only\n    coordinate: r.int16\n  },\n\n  2: { // Contour point\n    caretValuePoint: r.uint16\n  },\n\n  3: { // Design units plus Device table\n    coordinate: r.int16,\n    deviceTable: new r.Pointer(r.uint16, Device)\n  }\n});\n\nvar LigGlyph = new r.Array(new r.Pointer(r.uint16, CaretValue), r.uint16);\n\nvar LigCaretList = new r.Struct({\n  coverage: new r.Pointer(r.uint16, Coverage),\n  ligGlyphCount: r.uint16,\n  ligGlyphs: new r.Array(new r.Pointer(r.uint16, LigGlyph), 'ligGlyphCount')\n});\n\nvar MarkGlyphSetsDef = new r.Struct({\n  markSetTableFormat: r.uint16,\n  markSetCount: r.uint16,\n  coverage: new r.Array(new r.Pointer(r.uint32, Coverage), 'markSetCount')\n});\n\nvar GDEF = new r.VersionedStruct(r.uint32, {\n  header: {\n    glyphClassDef: new r.Pointer(r.uint16, ClassDef),\n    attachList: new r.Pointer(r.uint16, AttachList),\n    ligCaretList: new r.Pointer(r.uint16, LigCaretList),\n    markAttachClassDef: new r.Pointer(r.uint16, ClassDef)\n  },\n\n  0x00010000: {},\n  0x00010002: {\n    markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef)\n  },\n  0x00010003: {\n    markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef),\n    itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n  }\n});\n\nvar ValueFormat = new r.Bitfield(r.uint16, ['xPlacement', 'yPlacement', 'xAdvance', 'yAdvance', 'xPlaDevice', 'yPlaDevice', 'xAdvDevice', 'yAdvDevice']);\n\nvar types = {\n  xPlacement: r.int16,\n  yPlacement: r.int16,\n  xAdvance: r.int16,\n  yAdvance: r.int16,\n  xPlaDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: 'rel' }),\n  yPlaDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: 'rel' }),\n  xAdvDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: 'rel' }),\n  yAdvDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: 'rel' })\n};\n\nvar ValueRecord = function () {\n  function ValueRecord() {\n    var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'valueFormat';\n\n    _classCallCheck(this, ValueRecord);\n\n    this.key = key;\n  }\n\n  ValueRecord.prototype.buildStruct = function buildStruct(parent) {\n    var struct = parent;\n    while (!struct[this.key] && struct.parent) {\n      struct = struct.parent;\n    }\n\n    if (!struct[this.key]) return;\n\n    var fields = {};\n    fields.rel = function () {\n      return struct._startOffset;\n    };\n\n    var format = struct[this.key];\n    for (var key in format) {\n      if (format[key]) {\n        fields[key] = types[key];\n      }\n    }\n\n    return new r.Struct(fields);\n  };\n\n  ValueRecord.prototype.size = function size(val, ctx) {\n    return this.buildStruct(ctx).size(val, ctx);\n  };\n\n  ValueRecord.prototype.decode = function decode(stream, parent) {\n    var res = this.buildStruct(parent).decode(stream, parent);\n    delete res.rel;\n    return res;\n  };\n\n  return ValueRecord;\n}();\n\nvar PairValueRecord = new r.Struct({\n  secondGlyph: r.uint16,\n  value1: new ValueRecord('valueFormat1'),\n  value2: new ValueRecord('valueFormat2')\n});\n\nvar PairSet = new r.Array(PairValueRecord, r.uint16);\n\nvar Class2Record = new r.Struct({\n  value1: new ValueRecord('valueFormat1'),\n  value2: new ValueRecord('valueFormat2')\n});\n\nvar Anchor = new r.VersionedStruct(r.uint16, {\n  1: { // Design units only\n    xCoordinate: r.int16,\n    yCoordinate: r.int16\n  },\n\n  2: { // Design units plus contour point\n    xCoordinate: r.int16,\n    yCoordinate: r.int16,\n    anchorPoint: r.uint16\n  },\n\n  3: { // Design units plus Device tables\n    xCoordinate: r.int16,\n    yCoordinate: r.int16,\n    xDeviceTable: new r.Pointer(r.uint16, Device),\n    yDeviceTable: new r.Pointer(r.uint16, Device)\n  }\n});\n\nvar EntryExitRecord = new r.Struct({\n  entryAnchor: new r.Pointer(r.uint16, Anchor, { type: 'parent' }),\n  exitAnchor: new r.Pointer(r.uint16, Anchor, { type: 'parent' })\n});\n\nvar MarkRecord = new r.Struct({\n  class: r.uint16,\n  markAnchor: new r.Pointer(r.uint16, Anchor, { type: 'parent' })\n});\n\nvar MarkArray = new r.Array(MarkRecord, r.uint16);\n\nvar BaseRecord = new r.Array(new r.Pointer(r.uint16, Anchor), function (t) {\n  return t.parent.classCount;\n});\nvar BaseArray = new r.Array(BaseRecord, r.uint16);\n\nvar ComponentRecord = new r.Array(new r.Pointer(r.uint16, Anchor), function (t) {\n  return t.parent.parent.classCount;\n});\nvar LigatureAttach = new r.Array(ComponentRecord, r.uint16);\nvar LigatureArray = new r.Array(new r.Pointer(r.uint16, LigatureAttach), r.uint16);\n\nvar GPOSLookup = new r.VersionedStruct('lookupType', {\n  1: new r.VersionedStruct(r.uint16, { // Single Adjustment\n    1: { // Single positioning value\n      coverage: new r.Pointer(r.uint16, Coverage),\n      valueFormat: ValueFormat,\n      value: new ValueRecord()\n    },\n    2: {\n      coverage: new r.Pointer(r.uint16, Coverage),\n      valueFormat: ValueFormat,\n      valueCount: r.uint16,\n      values: new r.LazyArray(new ValueRecord(), 'valueCount')\n    }\n  }),\n\n  2: new r.VersionedStruct(r.uint16, { // Pair Adjustment Positioning\n    1: { // Adjustments for glyph pairs\n      coverage: new r.Pointer(r.uint16, Coverage),\n      valueFormat1: ValueFormat,\n      valueFormat2: ValueFormat,\n      pairSetCount: r.uint16,\n      pairSets: new r.LazyArray(new r.Pointer(r.uint16, PairSet), 'pairSetCount')\n    },\n\n    2: { // Class pair adjustment\n      coverage: new r.Pointer(r.uint16, Coverage),\n      valueFormat1: ValueFormat,\n      valueFormat2: ValueFormat,\n      classDef1: new r.Pointer(r.uint16, ClassDef),\n      classDef2: new r.Pointer(r.uint16, ClassDef),\n      class1Count: r.uint16,\n      class2Count: r.uint16,\n      classRecords: new r.LazyArray(new r.LazyArray(Class2Record, 'class2Count'), 'class1Count')\n    }\n  }),\n\n  3: { // Cursive Attachment Positioning\n    format: r.uint16,\n    coverage: new r.Pointer(r.uint16, Coverage),\n    entryExitCount: r.uint16,\n    entryExitRecords: new r.Array(EntryExitRecord, 'entryExitCount')\n  },\n\n  4: { // MarkToBase Attachment Positioning\n    format: r.uint16,\n    markCoverage: new r.Pointer(r.uint16, Coverage),\n    baseCoverage: new r.Pointer(r.uint16, Coverage),\n    classCount: r.uint16,\n    markArray: new r.Pointer(r.uint16, MarkArray),\n    baseArray: new r.Pointer(r.uint16, BaseArray)\n  },\n\n  5: { // MarkToLigature Attachment Positioning\n    format: r.uint16,\n    markCoverage: new r.Pointer(r.uint16, Coverage),\n    ligatureCoverage: new r.Pointer(r.uint16, Coverage),\n    classCount: r.uint16,\n    markArray: new r.Pointer(r.uint16, MarkArray),\n    ligatureArray: new r.Pointer(r.uint16, LigatureArray)\n  },\n\n  6: { // MarkToMark Attachment Positioning\n    format: r.uint16,\n    mark1Coverage: new r.Pointer(r.uint16, Coverage),\n    mark2Coverage: new r.Pointer(r.uint16, Coverage),\n    classCount: r.uint16,\n    mark1Array: new r.Pointer(r.uint16, MarkArray),\n    mark2Array: new r.Pointer(r.uint16, BaseArray)\n  },\n\n  7: Context, // Contextual positioning\n  8: ChainingContext, // Chaining contextual positioning\n\n  9: { // Extension Positioning\n    posFormat: r.uint16,\n    lookupType: r.uint16, // cannot also be 9\n    extension: new r.Pointer(r.uint32, GPOSLookup)\n  }\n});\n\n// Fix circular reference\nGPOSLookup.versions[9].extension.type = GPOSLookup;\n\nvar GPOS = new r.VersionedStruct(r.uint32, {\n  header: {\n    scriptList: new r.Pointer(r.uint16, ScriptList),\n    featureList: new r.Pointer(r.uint16, FeatureList),\n    lookupList: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n  },\n\n  0x00010000: {},\n  0x00010001: {\n    featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n  }\n});\n\nvar Sequence = new r.Array(r.uint16, r.uint16);\nvar AlternateSet = Sequence;\n\nvar Ligature = new r.Struct({\n  glyph: r.uint16,\n  compCount: r.uint16,\n  components: new r.Array(r.uint16, function (t) {\n    return t.compCount - 1;\n  })\n});\n\nvar LigatureSet = new r.Array(new r.Pointer(r.uint16, Ligature), r.uint16);\n\nvar GSUBLookup = new r.VersionedStruct('lookupType', {\n  1: new r.VersionedStruct(r.uint16, { // Single Substitution\n    1: {\n      coverage: new r.Pointer(r.uint16, Coverage),\n      deltaGlyphID: r.int16\n    },\n    2: {\n      coverage: new r.Pointer(r.uint16, Coverage),\n      glyphCount: r.uint16,\n      substitute: new r.LazyArray(r.uint16, 'glyphCount')\n    }\n  }),\n\n  2: { // Multiple Substitution\n    substFormat: r.uint16,\n    coverage: new r.Pointer(r.uint16, Coverage),\n    count: r.uint16,\n    sequences: new r.LazyArray(new r.Pointer(r.uint16, Sequence), 'count')\n  },\n\n  3: { // Alternate Substitution\n    substFormat: r.uint16,\n    coverage: new r.Pointer(r.uint16, Coverage),\n    count: r.uint16,\n    alternateSet: new r.LazyArray(new r.Pointer(r.uint16, AlternateSet), 'count')\n  },\n\n  4: { // Ligature Substitution\n    substFormat: r.uint16,\n    coverage: new r.Pointer(r.uint16, Coverage),\n    count: r.uint16,\n    ligatureSets: new r.LazyArray(new r.Pointer(r.uint16, LigatureSet), 'count')\n  },\n\n  5: Context, // Contextual Substitution\n  6: ChainingContext, // Chaining Contextual Substitution\n\n  7: { // Extension Substitution\n    substFormat: r.uint16,\n    lookupType: r.uint16, // cannot also be 7\n    extension: new r.Pointer(r.uint32, GSUBLookup)\n  },\n\n  8: { // Reverse Chaining Contextual Single Substitution\n    substFormat: r.uint16,\n    coverage: new r.Pointer(r.uint16, Coverage),\n    backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n    lookaheadGlyphCount: r.uint16,\n    lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n    glyphCount: r.uint16,\n    substitutes: new r.Array(r.uint16, 'glyphCount')\n  }\n});\n\n// Fix circular reference\nGSUBLookup.versions[7].extension.type = GSUBLookup;\n\nvar GSUB = new r.VersionedStruct(r.uint32, {\n  header: {\n    scriptList: new r.Pointer(r.uint16, ScriptList),\n    featureList: new r.Pointer(r.uint16, FeatureList),\n    lookupList: new r.Pointer(r.uint16, new LookupList(GSUBLookup))\n  },\n\n  0x00010000: {},\n  0x00010001: {\n    featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n  }\n});\n\nvar JstfGSUBModList = new r.Array(r.uint16, r.uint16);\n\nvar JstfPriority = new r.Struct({\n  shrinkageEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n  shrinkageDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n  shrinkageEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n  shrinkageDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n  shrinkageJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup)),\n  extensionEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n  extensionDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n  extensionEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n  extensionDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n  extensionJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n});\n\nvar JstfLangSys = new r.Array(new r.Pointer(r.uint16, JstfPriority), r.uint16);\n\nvar JstfLangSysRecord = new r.Struct({\n  tag: new r.String(4),\n  jstfLangSys: new r.Pointer(r.uint16, JstfLangSys)\n});\n\nvar JstfScript = new r.Struct({\n  extenderGlyphs: new r.Pointer(r.uint16, new r.Array(r.uint16, r.uint16)), // array of glyphs to extend line length\n  defaultLangSys: new r.Pointer(r.uint16, JstfLangSys),\n  langSysCount: r.uint16,\n  langSysRecords: new r.Array(JstfLangSysRecord, 'langSysCount')\n});\n\nvar JstfScriptRecord = new r.Struct({\n  tag: new r.String(4),\n  script: new r.Pointer(r.uint16, JstfScript, { type: 'parent' })\n});\n\nvar JSTF = new r.Struct({\n  version: r.uint32, // should be 0x00010000\n  scriptCount: r.uint16,\n  scriptList: new r.Array(JstfScriptRecord, 'scriptCount')\n});\n\n// TODO: add this to restructure\n\nvar VariableSizeNumber = function () {\n  function VariableSizeNumber(size) {\n    _classCallCheck(this, VariableSizeNumber);\n\n    this._size = size;\n  }\n\n  VariableSizeNumber.prototype.decode = function decode(stream, parent) {\n    switch (this.size(0, parent)) {\n      case 1:\n        return stream.readUInt8();\n      case 2:\n        return stream.readUInt16BE();\n      case 3:\n        return stream.readUInt24BE();\n      case 4:\n        return stream.readUInt32BE();\n    }\n  };\n\n  VariableSizeNumber.prototype.size = function size(val, parent) {\n    return restructure_src_utils.resolveLength(this._size, null, parent);\n  };\n\n  return VariableSizeNumber;\n}();\n\nvar MapDataEntry = new r.Struct({\n  entry: new VariableSizeNumber(function (t) {\n    return ((t.parent.entryFormat & 0x0030) >> 4) + 1;\n  }),\n  outerIndex: function outerIndex(t) {\n    return t.entry >> (t.parent.entryFormat & 0x000F) + 1;\n  },\n  innerIndex: function innerIndex(t) {\n    return t.entry & (1 << (t.parent.entryFormat & 0x000F) + 1) - 1;\n  }\n});\n\nvar DeltaSetIndexMap = new r.Struct({\n  entryFormat: r.uint16,\n  mapCount: r.uint16,\n  mapData: new r.Array(MapDataEntry, 'mapCount')\n});\n\nvar HVAR = new r.Struct({\n  majorVersion: r.uint16,\n  minorVersion: r.uint16,\n  itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore),\n  advanceWidthMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n  LSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n  RSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap)\n});\n\nvar Signature = new r.Struct({\n  format: r.uint32,\n  length: r.uint32,\n  offset: r.uint32\n});\n\nvar SignatureBlock = new r.Struct({\n  reserved: new r.Reserved(r.uint16, 2),\n  cbSignature: r.uint32, // Length (in bytes) of the PKCS#7 packet in pbSignature\n  signature: new r.Buffer('cbSignature')\n});\n\nvar DSIG = new r.Struct({\n  ulVersion: r.uint32, // Version number of the DSIG table (0x00000001)\n  usNumSigs: r.uint16, // Number of signatures in the table\n  usFlag: r.uint16, // Permission flags\n  signatures: new r.Array(Signature, 'usNumSigs'),\n  signatureBlocks: new r.Array(SignatureBlock, 'usNumSigs')\n});\n\nvar GaspRange = new r.Struct({\n  rangeMaxPPEM: r.uint16, // Upper limit of range, in ppem\n  rangeGaspBehavior: new r.Bitfield(r.uint16, [// Flags describing desired rasterizer behavior\n  'grayscale', 'gridfit', 'symmetricSmoothing', 'symmetricGridfit' // only in version 1, for ClearType\n  ])\n});\n\nvar gasp = new r.Struct({\n  version: r.uint16, // set to 0\n  numRanges: r.uint16,\n  gaspRanges: new r.Array(GaspRange, 'numRanges') // Sorted by ppem\n});\n\nvar DeviceRecord = new r.Struct({\n  pixelSize: r.uint8,\n  maximumWidth: r.uint8,\n  widths: new r.Array(r.uint8, function (t) {\n    return t.parent.parent.maxp.numGlyphs;\n  })\n});\n\n// The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\nvar hdmx = new r.Struct({\n  version: r.uint16,\n  numRecords: r.int16,\n  sizeDeviceRecord: r.int32,\n  records: new r.Array(DeviceRecord, 'numRecords')\n});\n\nvar KernPair = new r.Struct({\n  left: r.uint16,\n  right: r.uint16,\n  value: r.int16\n});\n\nvar ClassTable = new r.Struct({\n  firstGlyph: r.uint16,\n  nGlyphs: r.uint16,\n  offsets: new r.Array(r.uint16, 'nGlyphs'),\n  max: function max(t) {\n    return t.offsets.length && Math.max.apply(Math, t.offsets);\n  }\n});\n\nvar Kern2Array = new r.Struct({\n  off: function off(t) {\n    return t._startOffset - t.parent.parent._startOffset;\n  },\n  len: function len(t) {\n    return ((t.parent.leftTable.max - t.off) / t.parent.rowWidth + 1) * (t.parent.rowWidth / 2);\n  },\n  values: new r.LazyArray(r.int16, 'len')\n});\n\nvar KernSubtable = new r.VersionedStruct('format', {\n  0: {\n    nPairs: r.uint16,\n    searchRange: r.uint16,\n    entrySelector: r.uint16,\n    rangeShift: r.uint16,\n    pairs: new r.Array(KernPair, 'nPairs')\n  },\n\n  2: {\n    rowWidth: r.uint16,\n    leftTable: new r.Pointer(r.uint16, ClassTable, { type: 'parent' }),\n    rightTable: new r.Pointer(r.uint16, ClassTable, { type: 'parent' }),\n    array: new r.Pointer(r.uint16, Kern2Array, { type: 'parent' })\n  },\n\n  3: {\n    glyphCount: r.uint16,\n    kernValueCount: r.uint8,\n    leftClassCount: r.uint8,\n    rightClassCount: r.uint8,\n    flags: r.uint8,\n    kernValue: new r.Array(r.int16, 'kernValueCount'),\n    leftClass: new r.Array(r.uint8, 'glyphCount'),\n    rightClass: new r.Array(r.uint8, 'glyphCount'),\n    kernIndex: new r.Array(r.uint8, function (t) {\n      return t.leftClassCount * t.rightClassCount;\n    })\n  }\n});\n\nvar KernTable = new r.VersionedStruct('version', {\n  0: { // Microsoft uses this format\n    subVersion: r.uint16, // Microsoft has an extra sub-table version number\n    length: r.uint16, // Length of the subtable, in bytes\n    format: r.uint8, // Format of subtable\n    coverage: new r.Bitfield(r.uint8, ['horizontal', // 1 if table has horizontal data, 0 if vertical\n    'minimum', // If set to 1, the table has minimum values. If set to 0, the table has kerning values.\n    'crossStream', // If set to 1, kerning is perpendicular to the flow of the text\n    'override' // If set to 1 the value in this table replaces the accumulated value\n    ]),\n    subtable: KernSubtable,\n    padding: new r.Reserved(r.uint8, function (t) {\n      return t.length - t._currentOffset;\n    })\n  },\n  1: { // Apple uses this format\n    length: r.uint32,\n    coverage: new r.Bitfield(r.uint8, [null, null, null, null, null, 'variation', // Set if table has variation kerning values\n    'crossStream', // Set if table has cross-stream kerning values\n    'vertical' // Set if table has vertical kerning values\n    ]),\n    format: r.uint8,\n    tupleIndex: r.uint16,\n    subtable: KernSubtable,\n    padding: new r.Reserved(r.uint8, function (t) {\n      return t.length - t._currentOffset;\n    })\n  }\n});\n\nvar kern = new r.VersionedStruct(r.uint16, {\n  0: { // Microsoft Version\n    nTables: r.uint16,\n    tables: new r.Array(KernTable, 'nTables')\n  },\n\n  1: { // Apple Version\n    reserved: new r.Reserved(r.uint16), // the other half of the version number\n    nTables: r.uint32,\n    tables: new r.Array(KernTable, 'nTables')\n  }\n});\n\n// Linear Threshold table\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\nvar LTSH = new r.Struct({\n  version: r.uint16,\n  numGlyphs: r.uint16,\n  yPels: new r.Array(r.uint8, 'numGlyphs')\n});\n\n// PCL 5 Table\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\nvar PCLT = new r.Struct({\n  version: r.uint16,\n  fontNumber: r.uint32,\n  pitch: r.uint16,\n  xHeight: r.uint16,\n  style: r.uint16,\n  typeFamily: r.uint16,\n  capHeight: r.uint16,\n  symbolSet: r.uint16,\n  typeface: new r.String(16),\n  characterComplement: new r.String(8),\n  fileName: new r.String(6),\n  strokeWeight: new r.String(1),\n  widthType: new r.String(1),\n  serifStyle: r.uint8,\n  reserved: new r.Reserved(r.uint8)\n});\n\n// VDMX tables contain ascender/descender overrides for certain (usually small)\n// sizes. This is needed in order to match font metrics on Windows.\n\nvar Ratio = new r.Struct({\n  bCharSet: r.uint8, // Character set\n  xRatio: r.uint8, // Value to use for x-Ratio\n  yStartRatio: r.uint8, // Starting y-Ratio value\n  yEndRatio: r.uint8 // Ending y-Ratio value\n});\n\nvar vTable = new r.Struct({\n  yPelHeight: r.uint16, // yPelHeight to which values apply\n  yMax: r.int16, // Maximum value (in pels) for this yPelHeight\n  yMin: r.int16 // Minimum value (in pels) for this yPelHeight\n});\n\nvar VdmxGroup = new r.Struct({\n  recs: r.uint16, // Number of height records in this group\n  startsz: r.uint8, // Starting yPelHeight\n  endsz: r.uint8, // Ending yPelHeight\n  entries: new r.Array(vTable, 'recs') // The VDMX records\n});\n\nvar VDMX = new r.Struct({\n  version: r.uint16, // Version number (0 or 1)\n  numRecs: r.uint16, // Number of VDMX groups present\n  numRatios: r.uint16, // Number of aspect ratio groupings\n  ratioRanges: new r.Array(Ratio, 'numRatios'), // Ratio ranges\n  offsets: new r.Array(r.uint16, 'numRatios'), // Offset to the VDMX group for this ratio range\n  groups: new r.Array(VdmxGroup, 'numRecs') // The actual VDMX groupings\n});\n\n// Vertical Header Table\nvar vhea = new r.Struct({\n  version: r.uint16, // Version number of the Vertical Header Table\n  ascent: r.int16, // The vertical typographic ascender for this font\n  descent: r.int16, // The vertical typographic descender for this font\n  lineGap: r.int16, // The vertical typographic line gap for this font\n  advanceHeightMax: r.int16, // The maximum advance height measurement found in the font\n  minTopSideBearing: r.int16, // The minimum top side bearing measurement found in the font\n  minBottomSideBearing: r.int16, // The minimum bottom side bearing measurement found in the font\n  yMaxExtent: r.int16,\n  caretSlopeRise: r.int16, // Caret slope (rise/run)\n  caretSlopeRun: r.int16,\n  caretOffset: r.int16, // Set value equal to 0 for nonslanted fonts\n  reserved: new r.Reserved(r.int16, 4),\n  metricDataFormat: r.int16, // Set to 0\n  numberOfMetrics: r.uint16 // Number of advance heights in the Vertical Metrics table\n});\n\nvar VmtxEntry = new r.Struct({\n  advance: r.uint16, // The advance height of the glyph\n  bearing: r.int16 // The top sidebearing of the glyph\n});\n\n// Vertical Metrics Table\nvar vmtx = new r.Struct({\n  metrics: new r.LazyArray(VmtxEntry, function (t) {\n    return t.parent.vhea.numberOfMetrics;\n  }),\n  bearings: new r.LazyArray(r.int16, function (t) {\n    return t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics;\n  })\n});\n\nvar shortFrac = new r.Fixed(16, 'BE', 14);\n\nvar Correspondence = new r.Struct({\n  fromCoord: shortFrac,\n  toCoord: shortFrac\n});\n\nvar Segment = new r.Struct({\n  pairCount: r.uint16,\n  correspondence: new r.Array(Correspondence, 'pairCount')\n});\n\nvar avar = new r.Struct({\n  version: r.fixed32,\n  axisCount: r.uint32,\n  segment: new r.Array(Segment, 'axisCount')\n});\n\nvar UnboundedArrayAccessor = function () {\n  function UnboundedArrayAccessor(type, stream, parent) {\n    _classCallCheck(this, UnboundedArrayAccessor);\n\n    this.type = type;\n    this.stream = stream;\n    this.parent = parent;\n    this.base = this.stream.pos;\n    this._items = [];\n  }\n\n  UnboundedArrayAccessor.prototype.getItem = function getItem(index) {\n    if (this._items[index] == null) {\n      var pos = this.stream.pos;\n      this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n      this._items[index] = this.type.decode(this.stream, this.parent);\n      this.stream.pos = pos;\n    }\n\n    return this._items[index];\n  };\n\n  UnboundedArrayAccessor.prototype.inspect = function inspect() {\n    return '[UnboundedArray ' + this.type.constructor.name + ']';\n  };\n\n  return UnboundedArrayAccessor;\n}();\n\nvar UnboundedArray = function (_r$Array) {\n  _inherits(UnboundedArray, _r$Array);\n\n  function UnboundedArray(type) {\n    _classCallCheck(this, UnboundedArray);\n\n    return _possibleConstructorReturn(this, _r$Array.call(this, type, 0));\n  }\n\n  UnboundedArray.prototype.decode = function decode(stream, parent) {\n    return new UnboundedArrayAccessor(this.type, stream, parent);\n  };\n\n  return UnboundedArray;\n}(r.Array);\n\nvar LookupTable = function LookupTable() {\n  var ValueType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : r.uint16;\n\n  // Helper class that makes internal structures invisible to pointers\n  var Shadow = function () {\n    function Shadow(type) {\n      _classCallCheck(this, Shadow);\n\n      this.type = type;\n    }\n\n    Shadow.prototype.decode = function decode(stream, ctx) {\n      ctx = ctx.parent.parent;\n      return this.type.decode(stream, ctx);\n    };\n\n    Shadow.prototype.size = function size(val, ctx) {\n      ctx = ctx.parent.parent;\n      return this.type.size(val, ctx);\n    };\n\n    Shadow.prototype.encode = function encode(stream, val, ctx) {\n      ctx = ctx.parent.parent;\n      return this.type.encode(stream, val, ctx);\n    };\n\n    return Shadow;\n  }();\n\n  ValueType = new Shadow(ValueType);\n\n  var BinarySearchHeader = new r.Struct({\n    unitSize: r.uint16,\n    nUnits: r.uint16,\n    searchRange: r.uint16,\n    entrySelector: r.uint16,\n    rangeShift: r.uint16\n  });\n\n  var LookupSegmentSingle = new r.Struct({\n    lastGlyph: r.uint16,\n    firstGlyph: r.uint16,\n    value: ValueType\n  });\n\n  var LookupSegmentArray = new r.Struct({\n    lastGlyph: r.uint16,\n    firstGlyph: r.uint16,\n    values: new r.Pointer(r.uint16, new r.Array(ValueType, function (t) {\n      return t.lastGlyph - t.firstGlyph + 1;\n    }), { type: 'parent' })\n  });\n\n  var LookupSingle = new r.Struct({\n    glyph: r.uint16,\n    value: ValueType\n  });\n\n  return new r.VersionedStruct(r.uint16, {\n    0: {\n      values: new UnboundedArray(ValueType) // length == number of glyphs maybe?\n    },\n    2: {\n      binarySearchHeader: BinarySearchHeader,\n      segments: new r.Array(LookupSegmentSingle, function (t) {\n        return t.binarySearchHeader.nUnits;\n      })\n    },\n    4: {\n      binarySearchHeader: BinarySearchHeader,\n      segments: new r.Array(LookupSegmentArray, function (t) {\n        return t.binarySearchHeader.nUnits;\n      })\n    },\n    6: {\n      binarySearchHeader: BinarySearchHeader,\n      segments: new r.Array(LookupSingle, function (t) {\n        return t.binarySearchHeader.nUnits;\n      })\n    },\n    8: {\n      firstGlyph: r.uint16,\n      count: r.uint16,\n      values: new r.Array(ValueType, 'count')\n    }\n  });\n};\n\nfunction StateTable() {\n  var entryData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var lookupType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : r.uint16;\n\n  var entry = _Object$assign({\n    newState: r.uint16,\n    flags: r.uint16\n  }, entryData);\n\n  var Entry = new r.Struct(entry);\n  var StateArray = new UnboundedArray(new r.Array(r.uint16, function (t) {\n    return t.nClasses;\n  }));\n\n  var StateHeader = new r.Struct({\n    nClasses: r.uint32,\n    classTable: new r.Pointer(r.uint32, new LookupTable(lookupType)),\n    stateArray: new r.Pointer(r.uint32, StateArray),\n    entryTable: new r.Pointer(r.uint32, new UnboundedArray(Entry))\n  });\n\n  return StateHeader;\n}\n\n// This is the old version of the StateTable structure\nfunction StateTable1() {\n  var entryData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var lookupType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : r.uint16;\n\n  var ClassLookupTable = new r.Struct({\n    version: function version() {\n      return 8;\n    },\n    // simulate LookupTable\n    firstGlyph: r.uint16,\n    values: new r.Array(r.uint8, r.uint16)\n  });\n\n  var entry = _Object$assign({\n    newStateOffset: r.uint16,\n    // convert offset to stateArray index\n    newState: function newState(t) {\n      return (t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses;\n    },\n    flags: r.uint16\n  }, entryData);\n\n  var Entry = new r.Struct(entry);\n  var StateArray = new UnboundedArray(new r.Array(r.uint8, function (t) {\n    return t.nClasses;\n  }));\n\n  var StateHeader1 = new r.Struct({\n    nClasses: r.uint16,\n    classTable: new r.Pointer(r.uint16, ClassLookupTable),\n    stateArray: new r.Pointer(r.uint16, StateArray),\n    entryTable: new r.Pointer(r.uint16, new UnboundedArray(Entry))\n  });\n\n  return StateHeader1;\n}\n\nvar BslnSubtable = new r.VersionedStruct('format', {\n  0: { // Distance-based, no mapping\n    deltas: new r.Array(r.int16, 32)\n  },\n\n  1: { // Distance-based, with mapping\n    deltas: new r.Array(r.int16, 32),\n    mappingData: new LookupTable(r.uint16)\n  },\n\n  2: { // Control point-based, no mapping\n    standardGlyph: r.uint16,\n    controlPoints: new r.Array(r.uint16, 32)\n  },\n\n  3: { // Control point-based, with mapping\n    standardGlyph: r.uint16,\n    controlPoints: new r.Array(r.uint16, 32),\n    mappingData: new LookupTable(r.uint16)\n  }\n});\n\nvar bsln = new r.Struct({\n  version: r.fixed32,\n  format: r.uint16,\n  defaultBaseline: r.uint16,\n  subtable: BslnSubtable\n});\n\nvar Setting = new r.Struct({\n  setting: r.uint16,\n  nameIndex: r.int16,\n  name: function name(t) {\n    return t.parent.parent.parent.name.records.fontFeatures[t.nameIndex];\n  }\n});\n\nvar FeatureName = new r.Struct({\n  feature: r.uint16,\n  nSettings: r.uint16,\n  settingTable: new r.Pointer(r.uint32, new r.Array(Setting, 'nSettings'), { type: 'parent' }),\n  featureFlags: new r.Bitfield(r.uint8, [null, null, null, null, null, null, 'hasDefault', 'exclusive']),\n  defaultSetting: r.uint8,\n  nameIndex: r.int16,\n  name: function name(t) {\n    return t.parent.parent.name.records.fontFeatures[t.nameIndex];\n  }\n});\n\nvar feat = new r.Struct({\n  version: r.fixed32,\n  featureNameCount: r.uint16,\n  reserved1: new r.Reserved(r.uint16),\n  reserved2: new r.Reserved(r.uint32),\n  featureNames: new r.Array(FeatureName, 'featureNameCount')\n});\n\nvar Axis$1 = new r.Struct({\n  axisTag: new r.String(4),\n  minValue: r.fixed32,\n  defaultValue: r.fixed32,\n  maxValue: r.fixed32,\n  flags: r.uint16,\n  nameID: r.uint16,\n  name: function name(t) {\n    return t.parent.parent.name.records.fontFeatures[t.nameID];\n  }\n});\n\nvar Instance = new r.Struct({\n  nameID: r.uint16,\n  name: function name(t) {\n    return t.parent.parent.name.records.fontFeatures[t.nameID];\n  },\n  flags: r.uint16,\n  coord: new r.Array(r.fixed32, function (t) {\n    return t.parent.axisCount;\n  }),\n  postscriptNameID: new r.Optional(r.uint16, function (t) {\n    return t.parent.instanceSize - t._currentOffset > 0;\n  })\n});\n\nvar fvar = new r.Struct({\n  version: r.fixed32,\n  offsetToData: r.uint16,\n  countSizePairs: r.uint16,\n  axisCount: r.uint16,\n  axisSize: r.uint16,\n  instanceCount: r.uint16,\n  instanceSize: r.uint16,\n  axis: new r.Array(Axis$1, 'axisCount'),\n  instance: new r.Array(Instance, 'instanceCount')\n});\n\nvar shortFrac$1 = new r.Fixed(16, 'BE', 14);\n\nvar Offset = function () {\n  function Offset() {\n    _classCallCheck(this, Offset);\n  }\n\n  Offset.decode = function decode(stream, parent) {\n    // In short format, offsets are multiplied by 2.\n    // This doesn't seem to be documented by Apple, but it\n    // is implemented this way in Freetype.\n    return parent.flags ? stream.readUInt32BE() : stream.readUInt16BE() * 2;\n  };\n\n  return Offset;\n}();\n\nvar gvar = new r.Struct({\n  version: r.uint16,\n  reserved: new r.Reserved(r.uint16),\n  axisCount: r.uint16,\n  globalCoordCount: r.uint16,\n  globalCoords: new r.Pointer(r.uint32, new r.Array(new r.Array(shortFrac$1, 'axisCount'), 'globalCoordCount')),\n  glyphCount: r.uint16,\n  flags: r.uint16,\n  offsetToData: r.uint32,\n  offsets: new r.Array(new r.Pointer(Offset, 'void', { relativeTo: 'offsetToData', allowNull: false }), function (t) {\n    return t.glyphCount + 1;\n  })\n});\n\nvar ClassTable$1 = new r.Struct({\n  length: r.uint16,\n  coverage: r.uint16,\n  subFeatureFlags: r.uint32,\n  stateTable: new StateTable1()\n});\n\nvar WidthDeltaRecord = new r.Struct({\n  justClass: r.uint32,\n  beforeGrowLimit: r.fixed32,\n  beforeShrinkLimit: r.fixed32,\n  afterGrowLimit: r.fixed32,\n  afterShrinkLimit: r.fixed32,\n  growFlags: r.uint16,\n  shrinkFlags: r.uint16\n});\n\nvar WidthDeltaCluster = new r.Array(WidthDeltaRecord, r.uint32);\n\nvar ActionData = new r.VersionedStruct('actionType', {\n  0: { // Decomposition action\n    lowerLimit: r.fixed32,\n    upperLimit: r.fixed32,\n    order: r.uint16,\n    glyphs: new r.Array(r.uint16, r.uint16)\n  },\n\n  1: { // Unconditional add glyph action\n    addGlyph: r.uint16\n  },\n\n  2: { // Conditional add glyph action\n    substThreshold: r.fixed32,\n    addGlyph: r.uint16,\n    substGlyph: r.uint16\n  },\n\n  3: {}, // Stretch glyph action (no data, not supported by CoreText)\n\n  4: { // Ductile glyph action (not supported by CoreText)\n    variationAxis: r.uint32,\n    minimumLimit: r.fixed32,\n    noStretchValue: r.fixed32,\n    maximumLimit: r.fixed32\n  },\n\n  5: { // Repeated add glyph action\n    flags: r.uint16,\n    glyph: r.uint16\n  }\n});\n\nvar Action = new r.Struct({\n  actionClass: r.uint16,\n  actionType: r.uint16,\n  actionLength: r.uint32,\n  actionData: ActionData,\n  padding: new r.Reserved(r.uint8, function (t) {\n    return t.actionLength - t._currentOffset;\n  })\n});\n\nvar PostcompensationAction = new r.Array(Action, r.uint32);\nvar PostCompensationTable = new r.Struct({\n  lookupTable: new LookupTable(new r.Pointer(r.uint16, PostcompensationAction))\n});\n\nvar JustificationTable = new r.Struct({\n  classTable: new r.Pointer(r.uint16, ClassTable$1, { type: 'parent' }),\n  wdcOffset: r.uint16,\n  postCompensationTable: new r.Pointer(r.uint16, PostCompensationTable, { type: 'parent' }),\n  widthDeltaClusters: new LookupTable(new r.Pointer(r.uint16, WidthDeltaCluster, { type: 'parent', relativeTo: 'wdcOffset' }))\n});\n\nvar just = new r.Struct({\n  version: r.uint32,\n  format: r.uint16,\n  horizontal: new r.Pointer(r.uint16, JustificationTable),\n  vertical: new r.Pointer(r.uint16, JustificationTable)\n});\n\nvar LigatureData = {\n  action: r.uint16\n};\n\nvar ContextualData = {\n  markIndex: r.uint16,\n  currentIndex: r.uint16\n};\n\nvar InsertionData = {\n  currentInsertIndex: r.uint16,\n  markedInsertIndex: r.uint16\n};\n\nvar SubstitutionTable = new r.Struct({\n  items: new UnboundedArray(new r.Pointer(r.uint32, new LookupTable()))\n});\n\nvar SubtableData = new r.VersionedStruct('type', {\n  0: { // Indic Rearrangement Subtable\n    stateTable: new StateTable()\n  },\n\n  1: { // Contextual Glyph Substitution Subtable\n    stateTable: new StateTable(ContextualData),\n    substitutionTable: new r.Pointer(r.uint32, SubstitutionTable)\n  },\n\n  2: { // Ligature subtable\n    stateTable: new StateTable(LigatureData),\n    ligatureActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint32)),\n    components: new r.Pointer(r.uint32, new UnboundedArray(r.uint16)),\n    ligatureList: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n  },\n\n  4: { // Non-contextual Glyph Substitution Subtable\n    lookupTable: new LookupTable()\n  },\n\n  5: { // Glyph Insertion Subtable\n    stateTable: new StateTable(InsertionData),\n    insertionActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n  }\n});\n\nvar Subtable = new r.Struct({\n  length: r.uint32,\n  coverage: r.uint24,\n  type: r.uint8,\n  subFeatureFlags: r.uint32,\n  table: SubtableData,\n  padding: new r.Reserved(r.uint8, function (t) {\n    return t.length - t._currentOffset;\n  })\n});\n\nvar FeatureEntry = new r.Struct({\n  featureType: r.uint16,\n  featureSetting: r.uint16,\n  enableFlags: r.uint32,\n  disableFlags: r.uint32\n});\n\nvar MorxChain = new r.Struct({\n  defaultFlags: r.uint32,\n  chainLength: r.uint32,\n  nFeatureEntries: r.uint32,\n  nSubtables: r.uint32,\n  features: new r.Array(FeatureEntry, 'nFeatureEntries'),\n  subtables: new r.Array(Subtable, 'nSubtables')\n});\n\nvar morx = new r.Struct({\n  version: r.uint16,\n  unused: new r.Reserved(r.uint16),\n  nChains: r.uint32,\n  chains: new r.Array(MorxChain, 'nChains')\n});\n\nvar OpticalBounds = new r.Struct({\n  left: r.int16,\n  top: r.int16,\n  right: r.int16,\n  bottom: r.int16\n});\n\nvar opbd = new r.Struct({\n  version: r.fixed32,\n  format: r.uint16,\n  lookupTable: new LookupTable(OpticalBounds)\n});\n\nvar tables = {};\n// Required Tables\ntables.cmap = cmap;\ntables.head = head;\ntables.hhea = hhea;\ntables.hmtx = hmtx;\ntables.maxp = maxp;\ntables.name = NameTable;\ntables['OS/2'] = OS2;\ntables.post = post;\n\n// TrueType Outlines\ntables.fpgm = fpgm;\ntables.loca = loca;\ntables.prep = prep;\ntables['cvt '] = cvt;\ntables.glyf = glyf;\n\n// PostScript Outlines\ntables['CFF '] = CFFFont;\ntables['CFF2'] = CFFFont;\ntables.VORG = VORG;\n\n// Bitmap Glyphs\ntables.EBLC = EBLC;\ntables.CBLC = tables.EBLC;\ntables.sbix = sbix;\ntables.COLR = COLR;\ntables.CPAL = CPAL;\n\n// Advanced OpenType Tables\ntables.BASE = BASE;\ntables.GDEF = GDEF;\ntables.GPOS = GPOS;\ntables.GSUB = GSUB;\ntables.JSTF = JSTF;\n\n// OpenType variations tables\ntables.HVAR = HVAR;\n\n// Other OpenType Tables\ntables.DSIG = DSIG;\ntables.gasp = gasp;\ntables.hdmx = hdmx;\ntables.kern = kern;\ntables.LTSH = LTSH;\ntables.PCLT = PCLT;\ntables.VDMX = VDMX;\ntables.vhea = vhea;\ntables.vmtx = vmtx;\n\n// Apple Advanced Typography Tables\ntables.avar = avar;\ntables.bsln = bsln;\ntables.feat = feat;\ntables.fvar = fvar;\ntables.gvar = gvar;\ntables.just = just;\ntables.morx = morx;\ntables.opbd = opbd;\n\nvar TableEntry = new r.Struct({\n  tag: new r.String(4),\n  checkSum: r.uint32,\n  offset: new r.Pointer(r.uint32, 'void', { type: 'global' }),\n  length: r.uint32\n});\n\nvar Directory = new r.Struct({\n  tag: new r.String(4),\n  numTables: r.uint16,\n  searchRange: r.uint16,\n  entrySelector: r.uint16,\n  rangeShift: r.uint16,\n  tables: new r.Array(TableEntry, 'numTables')\n});\n\nDirectory.process = function () {\n  var tables = {};\n  for (var _iterator = this.tables, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var table = _ref;\n\n    tables[table.tag] = table;\n  }\n\n  this.tables = tables;\n};\n\nDirectory.preEncode = function (stream) {\n  var tables$$ = [];\n  for (var tag in this.tables) {\n    var table = this.tables[tag];\n    if (table) {\n      tables$$.push({\n        tag: tag,\n        checkSum: 0,\n        offset: new r.VoidPointer(tables[tag], table),\n        length: tables[tag].size(table)\n      });\n    }\n  }\n\n  this.tag = 'true';\n  this.numTables = tables$$.length;\n  this.tables = tables$$;\n\n  var maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);\n  var maxPowerOf2 = Math.pow(2, maxExponentFor2);\n\n  this.searchRange = maxPowerOf2 * 16;\n  this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n  this.rangeShift = this.numTables * 16 - this.searchRange;\n};\n\nfunction binarySearch(arr, cmp) {\n  var min = 0;\n  var max = arr.length - 1;\n  while (min <= max) {\n    var mid = min + max >> 1;\n    var res = cmp(arr[mid]);\n\n    if (res < 0) {\n      max = mid - 1;\n    } else if (res > 0) {\n      min = mid + 1;\n    } else {\n      return mid;\n    }\n  }\n\n  return -1;\n}\n\nfunction range(index, end) {\n  var range = [];\n  while (index < end) {\n    range.push(index++);\n  }\n  return range;\n}\n\nvar _class$1;\nfunction _applyDecoratedDescriptor$1(target, property, decorators, descriptor, context) {\n  var desc = {};\n  Object['ke' + 'ys'](descriptor).forEach(function (key) {\n    desc[key] = descriptor[key];\n  });\n  desc.enumerable = !!desc.enumerable;\n  desc.configurable = !!desc.configurable;\n\n  if ('value' in desc || desc.initializer) {\n    desc.writable = true;\n  }\n\n  desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n    return decorator(target, property, desc) || desc;\n  }, desc);\n\n  if (context && desc.initializer !== void 0) {\n    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n    desc.initializer = undefined;\n  }\n\n  if (desc.initializer === void 0) {\n    Object['define' + 'Property'](target, property, desc);\n    desc = null;\n  }\n\n  return desc;\n}\n\n// iconv-lite is an optional dependency.\ntry {\n  var iconv = __webpack_require__(171);\n} catch (err) {}\n\nvar CmapProcessor = (_class$1 = function () {\n  function CmapProcessor(cmapTable) {\n    _classCallCheck(this, CmapProcessor);\n\n    // Attempt to find a Unicode cmap first\n    this.encoding = null;\n    this.cmap = this.findSubtable(cmapTable, [\n    // 32-bit subtables\n    [3, 10], [0, 6], [0, 4],\n\n    // 16-bit subtables\n    [3, 1], [0, 3], [0, 2], [0, 1], [0, 0]]);\n\n    // If not unicode cmap was found, and iconv-lite is installed,\n    // take the first table with a supported encoding.\n    if (!this.cmap && iconv) {\n      for (var _iterator = cmapTable.tables, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var cmap = _ref;\n\n        var encoding = getEncoding(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n        if (iconv.encodingExists(encoding)) {\n          this.cmap = cmap.table;\n          this.encoding = encoding;\n        }\n      }\n    }\n\n    if (!this.cmap) {\n      throw new Error(\"Could not find a supported cmap table\");\n    }\n\n    this.uvs = this.findSubtable(cmapTable, [[0, 5]]);\n    if (this.uvs && this.uvs.version !== 14) {\n      this.uvs = null;\n    }\n  }\n\n  CmapProcessor.prototype.findSubtable = function findSubtable(cmapTable, pairs) {\n    for (var _iterator2 = pairs, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var _ref3 = _ref2,\n          platformID = _ref3[0],\n          encodingID = _ref3[1];\n\n      for (var _iterator3 = cmapTable.tables, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref4;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref4 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref4 = _i3.value;\n        }\n\n        var cmap = _ref4;\n\n        if (cmap.platformID === platformID && cmap.encodingID === encodingID) {\n          return cmap.table;\n        }\n      }\n    }\n\n    return null;\n  };\n\n  CmapProcessor.prototype.lookup = function lookup(codepoint, variationSelector) {\n    // If there is no Unicode cmap in this font, we need to re-encode\n    // the codepoint in the encoding that the cmap supports.\n    if (this.encoding) {\n      var buf = iconv.encode(_String$fromCodePoint(codepoint), this.encoding);\n      codepoint = 0;\n      for (var i = 0; i < buf.length; i++) {\n        codepoint = codepoint << 8 | buf[i];\n      }\n\n      // Otherwise, try to get a Unicode variation selector for this codepoint if one is provided.\n    } else if (variationSelector) {\n      var gid = this.getVariationSelector(codepoint, variationSelector);\n      if (gid) {\n        return gid;\n      }\n    }\n\n    var cmap = this.cmap;\n    switch (cmap.version) {\n      case 0:\n        return cmap.codeMap.get(codepoint) || 0;\n\n      case 4:\n        {\n          var min = 0;\n          var max = cmap.segCount - 1;\n          while (min <= max) {\n            var mid = min + max >> 1;\n\n            if (codepoint < cmap.startCode.get(mid)) {\n              max = mid - 1;\n            } else if (codepoint > cmap.endCode.get(mid)) {\n              min = mid + 1;\n            } else {\n              var rangeOffset = cmap.idRangeOffset.get(mid);\n              var _gid = void 0;\n\n              if (rangeOffset === 0) {\n                _gid = codepoint + cmap.idDelta.get(mid);\n              } else {\n                var index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n                _gid = cmap.glyphIndexArray.get(index) || 0;\n                if (_gid !== 0) {\n                  _gid += cmap.idDelta.get(mid);\n                }\n              }\n\n              return _gid & 0xffff;\n            }\n          }\n\n          return 0;\n        }\n\n      case 8:\n        throw new Error('TODO: cmap format 8');\n\n      case 6:\n      case 10:\n        return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n\n      case 12:\n      case 13:\n        {\n          var _min = 0;\n          var _max = cmap.nGroups - 1;\n          while (_min <= _max) {\n            var _mid = _min + _max >> 1;\n            var group = cmap.groups.get(_mid);\n\n            if (codepoint < group.startCharCode) {\n              _max = _mid - 1;\n            } else if (codepoint > group.endCharCode) {\n              _min = _mid + 1;\n            } else {\n              if (cmap.version === 12) {\n                return group.glyphID + (codepoint - group.startCharCode);\n              } else {\n                return group.glyphID;\n              }\n            }\n          }\n\n          return 0;\n        }\n\n      case 14:\n        throw new Error('TODO: cmap format 14');\n\n      default:\n        throw new Error('Unknown cmap format ' + cmap.version);\n    }\n  };\n\n  CmapProcessor.prototype.getVariationSelector = function getVariationSelector(codepoint, variationSelector) {\n    if (!this.uvs) {\n      return 0;\n    }\n\n    var selectors = this.uvs.varSelectors.toArray();\n    var i = binarySearch(selectors, function (x) {\n      return variationSelector - x.varSelector;\n    });\n    var sel = selectors[i];\n\n    if (i !== -1 && sel.defaultUVS) {\n      i = binarySearch(sel.defaultUVS, function (x) {\n        return codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? +1 : 0;\n      });\n    }\n\n    if (i !== -1 && sel.nonDefaultUVS) {\n      i = binarySearch(sel.nonDefaultUVS, function (x) {\n        return codepoint - x.unicodeValue;\n      });\n      if (i !== -1) {\n        return sel.nonDefaultUVS[i].glyphID;\n      }\n    }\n\n    return 0;\n  };\n\n  CmapProcessor.prototype.getCharacterSet = function getCharacterSet() {\n    var cmap = this.cmap;\n    switch (cmap.version) {\n      case 0:\n        return range(0, cmap.codeMap.length);\n\n      case 4:\n        {\n          var res = [];\n          var endCodes = cmap.endCode.toArray();\n          for (var i = 0; i < endCodes.length; i++) {\n            var tail = endCodes[i] + 1;\n            var start = cmap.startCode.get(i);\n            res.push.apply(res, range(start, tail));\n          }\n\n          return res;\n        }\n\n      case 8:\n        throw new Error('TODO: cmap format 8');\n\n      case 6:\n      case 10:\n        return range(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n\n      case 12:\n      case 13:\n        {\n          var _res = [];\n          for (var _iterator4 = cmap.groups.toArray(), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n            var _ref5;\n\n            if (_isArray4) {\n              if (_i4 >= _iterator4.length) break;\n              _ref5 = _iterator4[_i4++];\n            } else {\n              _i4 = _iterator4.next();\n              if (_i4.done) break;\n              _ref5 = _i4.value;\n            }\n\n            var group = _ref5;\n\n            _res.push.apply(_res, range(group.startCharCode, group.endCharCode + 1));\n          }\n\n          return _res;\n        }\n\n      case 14:\n        throw new Error('TODO: cmap format 14');\n\n      default:\n        throw new Error('Unknown cmap format ' + cmap.version);\n    }\n  };\n\n  CmapProcessor.prototype.codePointsForGlyph = function codePointsForGlyph(gid) {\n    var cmap = this.cmap;\n    switch (cmap.version) {\n      case 0:\n        {\n          var res = [];\n          for (var i = 0; i < 256; i++) {\n            if (cmap.codeMap.get(i) === gid) {\n              res.push(i);\n            }\n          }\n\n          return res;\n        }\n\n      case 4:\n        {\n          var _res2 = [];\n          for (var _i5 = 0; _i5 < cmap.segCount; _i5++) {\n            var end = cmap.endCode.get(_i5);\n            var start = cmap.startCode.get(_i5);\n            var rangeOffset = cmap.idRangeOffset.get(_i5);\n            var delta = cmap.idDelta.get(_i5);\n\n            for (var c = start; c <= end; c++) {\n              var g = 0;\n              if (rangeOffset === 0) {\n                g = c + delta;\n              } else {\n                var index = rangeOffset / 2 + (c - start) - (cmap.segCount - _i5);\n                g = cmap.glyphIndexArray.get(index) || 0;\n                if (g !== 0) {\n                  g += delta;\n                }\n              }\n\n              if (g === gid) {\n                _res2.push(c);\n              }\n            }\n          }\n\n          return _res2;\n        }\n\n      case 12:\n        {\n          var _res3 = [];\n          for (var _iterator5 = cmap.groups.toArray(), _isArray5 = Array.isArray(_iterator5), _i6 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\n            var _ref6;\n\n            if (_isArray5) {\n              if (_i6 >= _iterator5.length) break;\n              _ref6 = _iterator5[_i6++];\n            } else {\n              _i6 = _iterator5.next();\n              if (_i6.done) break;\n              _ref6 = _i6.value;\n            }\n\n            var group = _ref6;\n\n            if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) {\n              _res3.push(group.startCharCode + (gid - group.glyphID));\n            }\n          }\n\n          return _res3;\n        }\n\n      case 13:\n        {\n          var _res4 = [];\n          for (var _iterator6 = cmap.groups.toArray(), _isArray6 = Array.isArray(_iterator6), _i7 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\n            var _ref7;\n\n            if (_isArray6) {\n              if (_i7 >= _iterator6.length) break;\n              _ref7 = _iterator6[_i7++];\n            } else {\n              _i7 = _iterator6.next();\n              if (_i7.done) break;\n              _ref7 = _i7.value;\n            }\n\n            var _group = _ref7;\n\n            if (gid === _group.glyphID) {\n              _res4.push.apply(_res4, range(_group.startCharCode, _group.endCharCode + 1));\n            }\n          }\n\n          return _res4;\n        }\n\n      default:\n        throw new Error('Unknown cmap format ' + cmap.version);\n    }\n  };\n\n  return CmapProcessor;\n}(), (_applyDecoratedDescriptor$1(_class$1.prototype, 'getCharacterSet', [cache], _Object$getOwnPropertyDescriptor(_class$1.prototype, 'getCharacterSet'), _class$1.prototype), _applyDecoratedDescriptor$1(_class$1.prototype, 'codePointsForGlyph', [cache], _Object$getOwnPropertyDescriptor(_class$1.prototype, 'codePointsForGlyph'), _class$1.prototype)), _class$1);\n\nvar KernProcessor = function () {\n  function KernProcessor(font) {\n    _classCallCheck(this, KernProcessor);\n\n    this.kern = font.kern;\n  }\n\n  KernProcessor.prototype.process = function process(glyphs, positions) {\n    for (var glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++) {\n      var left = glyphs[glyphIndex].id;\n      var right = glyphs[glyphIndex + 1].id;\n      positions[glyphIndex].xAdvance += this.getKerning(left, right);\n    }\n  };\n\n  KernProcessor.prototype.getKerning = function getKerning(left, right) {\n    var res = 0;\n\n    for (var _iterator = this.kern.tables, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var table = _ref;\n\n      if (table.coverage.crossStream) {\n        continue;\n      }\n\n      switch (table.version) {\n        case 0:\n          if (!table.coverage.horizontal) {\n            continue;\n          }\n\n          break;\n        case 1:\n          if (table.coverage.vertical || table.coverage.variation) {\n            continue;\n          }\n\n          break;\n        default:\n          throw new Error('Unsupported kerning table version ' + table.version);\n      }\n\n      var val = 0;\n      var s = table.subtable;\n      switch (table.format) {\n        case 0:\n          var pairIdx = binarySearch(s.pairs, function (pair) {\n            return left - pair.left || right - pair.right;\n          });\n\n          if (pairIdx >= 0) {\n            val = s.pairs[pairIdx].value;\n          }\n\n          break;\n\n        case 2:\n          var leftOffset = 0,\n              rightOffset = 0;\n          if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) {\n            leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n          } else {\n            leftOffset = s.array.off;\n          }\n\n          if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) {\n            rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n          }\n\n          var index = (leftOffset + rightOffset - s.array.off) / 2;\n          val = s.array.values.get(index);\n          break;\n\n        case 3:\n          if (left >= s.glyphCount || right >= s.glyphCount) {\n            return 0;\n          }\n\n          val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n          break;\n\n        default:\n          throw new Error('Unsupported kerning sub-table format ' + table.format);\n      }\n\n      // Microsoft supports the override flag, which resets the result\n      // Otherwise, the sum of the results from all subtables is returned\n      if (table.coverage.override) {\n        res = val;\n      } else {\n        res += val;\n      }\n    }\n\n    return res;\n  };\n\n  return KernProcessor;\n}();\n\n/**\n * This class is used when GPOS does not define 'mark' or 'mkmk' features\n * for positioning marks relative to base glyphs. It uses the unicode\n * combining class property to position marks.\n *\n * Based on code from Harfbuzz, thanks!\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-fallback.cc\n */\n\nvar UnicodeLayoutEngine = function () {\n  function UnicodeLayoutEngine(font) {\n    _classCallCheck(this, UnicodeLayoutEngine);\n\n    this.font = font;\n  }\n\n  UnicodeLayoutEngine.prototype.positionGlyphs = function positionGlyphs(glyphs, positions) {\n    // find each base + mark cluster, and position the marks relative to the base\n    var clusterStart = 0;\n    var clusterEnd = 0;\n    for (var index = 0; index < glyphs.length; index++) {\n      var glyph = glyphs[index];\n      if (glyph.isMark) {\n        // TODO: handle ligatures\n        clusterEnd = index;\n      } else {\n        if (clusterStart !== clusterEnd) {\n          this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n        }\n\n        clusterStart = clusterEnd = index;\n      }\n    }\n\n    if (clusterStart !== clusterEnd) {\n      this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n    }\n\n    return positions;\n  };\n\n  UnicodeLayoutEngine.prototype.positionCluster = function positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n    var base = glyphs[clusterStart];\n    var baseBox = base.cbox.copy();\n\n    // adjust bounding box for ligature glyphs\n    if (base.codePoints.length > 1) {\n      // LTR. TODO: RTL support.\n      baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;\n    }\n\n    var xOffset = -positions[clusterStart].xAdvance;\n    var yOffset = 0;\n    var yGap = this.font.unitsPerEm / 16;\n\n    // position each of the mark glyphs relative to the base glyph\n    for (var index = clusterStart + 1; index <= clusterEnd; index++) {\n      var mark = glyphs[index];\n      var markBox = mark.cbox;\n      var position = positions[index];\n\n      var combiningClass = this.getCombiningClass(mark.codePoints[0]);\n\n      if (combiningClass !== 'Not_Reordered') {\n        position.xOffset = position.yOffset = 0;\n\n        // x positioning\n        switch (combiningClass) {\n          case 'Double_Above':\n          case 'Double_Below':\n            // LTR. TODO: RTL support.\n            position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n            break;\n\n          case 'Attached_Below_Left':\n          case 'Below_Left':\n          case 'Above_Left':\n            // left align\n            position.xOffset += baseBox.minX - markBox.minX;\n            break;\n\n          case 'Attached_Above_Right':\n          case 'Below_Right':\n          case 'Above_Right':\n            // right align\n            position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n            break;\n\n          default:\n            // Attached_Below, Attached_Above, Below, Above, other\n            // center align\n            position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n        }\n\n        // y positioning\n        switch (combiningClass) {\n          case 'Double_Below':\n          case 'Below_Left':\n          case 'Below':\n          case 'Below_Right':\n          case 'Attached_Below_Left':\n          case 'Attached_Below':\n            // add a small gap between the glyphs if they are not attached\n            if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') {\n              baseBox.minY += yGap;\n            }\n\n            position.yOffset = -baseBox.minY - markBox.maxY;\n            baseBox.minY += markBox.height;\n            break;\n\n          case 'Double_Above':\n          case 'Above_Left':\n          case 'Above':\n          case 'Above_Right':\n          case 'Attached_Above':\n          case 'Attached_Above_Right':\n            // add a small gap between the glyphs if they are not attached\n            if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') {\n              baseBox.maxY += yGap;\n            }\n\n            position.yOffset = baseBox.maxY - markBox.minY;\n            baseBox.maxY += markBox.height;\n            break;\n        }\n\n        position.xAdvance = position.yAdvance = 0;\n        position.xOffset += xOffset;\n        position.yOffset += yOffset;\n      } else {\n        xOffset -= position.xAdvance;\n        yOffset -= position.yAdvance;\n      }\n    }\n\n    return;\n  };\n\n  UnicodeLayoutEngine.prototype.getCombiningClass = function getCombiningClass(codePoint) {\n    var combiningClass = unicode.getCombiningClass(codePoint);\n\n    // Thai / Lao need some per-character work\n    if ((codePoint & ~0xff) === 0x0e00) {\n      if (combiningClass === 'Not_Reordered') {\n        switch (codePoint) {\n          case 0x0e31:\n          case 0x0e34:\n          case 0x0e35:\n          case 0x0e36:\n          case 0x0e37:\n          case 0x0e47:\n          case 0x0e4c:\n          case 0x0e3d:\n          case 0x0e4e:\n            return 'Above_Right';\n\n          case 0x0eb1:\n          case 0x0eb4:\n          case 0x0eb5:\n          case 0x0eb6:\n          case 0x0eb7:\n          case 0x0ebb:\n          case 0x0ecc:\n          case 0x0ecd:\n            return 'Above';\n\n          case 0x0ebc:\n            return 'Below';\n        }\n      } else if (codePoint === 0x0e3a) {\n        // virama\n        return 'Below_Right';\n      }\n    }\n\n    switch (combiningClass) {\n      // Hebrew\n\n      case 'CCC10': // sheva\n      case 'CCC11': // hataf segol\n      case 'CCC12': // hataf patah\n      case 'CCC13': // hataf qamats\n      case 'CCC14': // hiriq\n      case 'CCC15': // tsere\n      case 'CCC16': // segol\n      case 'CCC17': // patah\n      case 'CCC18': // qamats\n      case 'CCC20': // qubuts\n      case 'CCC22':\n        // meteg\n        return 'Below';\n\n      case 'CCC23':\n        // rafe\n        return 'Attached_Above';\n\n      case 'CCC24':\n        // shin dot\n        return 'Above_Right';\n\n      case 'CCC25': // sin dot\n      case 'CCC19':\n        // holam\n        return 'Above_Left';\n\n      case 'CCC26':\n        // point varika\n        return 'Above';\n\n      case 'CCC21':\n        // dagesh\n        break;\n\n      // Arabic and Syriac\n\n      case 'CCC27': // fathatan\n      case 'CCC28': // dammatan\n      case 'CCC30': // fatha\n      case 'CCC31': // damma\n      case 'CCC33': // shadda\n      case 'CCC34': // sukun\n      case 'CCC35': // superscript alef\n      case 'CCC36':\n        // superscript alaph\n        return 'Above';\n\n      case 'CCC29': // kasratan\n      case 'CCC32':\n        // kasra\n        return 'Below';\n\n      // Thai\n\n      case 'CCC103':\n        // sara u / sara uu\n        return 'Below_Right';\n\n      case 'CCC107':\n        // mai\n        return 'Above_Right';\n\n      // Lao\n\n      case 'CCC118':\n        // sign u / sign uu\n        return 'Below';\n\n      case 'CCC122':\n        // mai\n        return 'Above';\n\n      // Tibetan\n\n      case 'CCC129': // sign aa\n      case 'CCC132':\n        // sign u\n        return 'Below';\n\n      case 'CCC130':\n        // sign i\n        return 'Above';\n    }\n\n    return combiningClass;\n  };\n\n  return UnicodeLayoutEngine;\n}();\n\n/**\n * Represents a glyph bounding box\n */\nvar BBox = function () {\n  function BBox() {\n    var minX = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Infinity;\n    var minY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;\n    var maxX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -Infinity;\n    var maxY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -Infinity;\n\n    _classCallCheck(this, BBox);\n\n    /**\n     * The minimum X position in the bounding box\n     * @type {number}\n     */\n    this.minX = minX;\n\n    /**\n     * The minimum Y position in the bounding box\n     * @type {number}\n     */\n    this.minY = minY;\n\n    /**\n     * The maxmimum X position in the bounding box\n     * @type {number}\n     */\n    this.maxX = maxX;\n\n    /**\n     * The maxmimum Y position in the bounding box\n     * @type {number}\n     */\n    this.maxY = maxY;\n  }\n\n  /**\n   * The width of the bounding box\n   * @type {number}\n   */\n\n\n  BBox.prototype.addPoint = function addPoint(x, y) {\n    if (Math.abs(x) !== Infinity) {\n      if (x < this.minX) {\n        this.minX = x;\n      }\n\n      if (x > this.maxX) {\n        this.maxX = x;\n      }\n    }\n\n    if (Math.abs(y) !== Infinity) {\n      if (y < this.minY) {\n        this.minY = y;\n      }\n\n      if (y > this.maxY) {\n        this.maxY = y;\n      }\n    }\n  };\n\n  BBox.prototype.copy = function copy() {\n    return new BBox(this.minX, this.minY, this.maxX, this.maxY);\n  };\n\n  _createClass(BBox, [{\n    key: \"width\",\n    get: function get() {\n      return this.maxX - this.minX;\n    }\n\n    /**\n     * The height of the bounding box\n     * @type {number}\n     */\n\n  }, {\n    key: \"height\",\n    get: function get() {\n      return this.maxY - this.minY;\n    }\n  }]);\n\n  return BBox;\n}();\n\n// This maps the Unicode Script property to an OpenType script tag\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\nvar UNICODE_SCRIPTS = {\n  Caucasian_Albanian: 'aghb',\n  Arabic: 'arab',\n  Imperial_Aramaic: 'armi',\n  Armenian: 'armn',\n  Avestan: 'avst',\n  Balinese: 'bali',\n  Bamum: 'bamu',\n  Bassa_Vah: 'bass',\n  Batak: 'batk',\n  Bengali: ['bng2', 'beng'],\n  Bopomofo: 'bopo',\n  Brahmi: 'brah',\n  Braille: 'brai',\n  Buginese: 'bugi',\n  Buhid: 'buhd',\n  Chakma: 'cakm',\n  Canadian_Aboriginal: 'cans',\n  Carian: 'cari',\n  Cham: 'cham',\n  Cherokee: 'cher',\n  Coptic: 'copt',\n  Cypriot: 'cprt',\n  Cyrillic: 'cyrl',\n  Devanagari: ['dev2', 'deva'],\n  Deseret: 'dsrt',\n  Duployan: 'dupl',\n  Egyptian_Hieroglyphs: 'egyp',\n  Elbasan: 'elba',\n  Ethiopic: 'ethi',\n  Georgian: 'geor',\n  Glagolitic: 'glag',\n  Gothic: 'goth',\n  Grantha: 'gran',\n  Greek: 'grek',\n  Gujarati: ['gjr2', 'gujr'],\n  Gurmukhi: ['gur2', 'guru'],\n  Hangul: 'hang',\n  Han: 'hani',\n  Hanunoo: 'hano',\n  Hebrew: 'hebr',\n  Hiragana: 'hira',\n  Pahawh_Hmong: 'hmng',\n  Katakana_Or_Hiragana: 'hrkt',\n  Old_Italic: 'ital',\n  Javanese: 'java',\n  Kayah_Li: 'kali',\n  Katakana: 'kana',\n  Kharoshthi: 'khar',\n  Khmer: 'khmr',\n  Khojki: 'khoj',\n  Kannada: ['knd2', 'knda'],\n  Kaithi: 'kthi',\n  Tai_Tham: 'lana',\n  Lao: 'lao ',\n  Latin: 'latn',\n  Lepcha: 'lepc',\n  Limbu: 'limb',\n  Linear_A: 'lina',\n  Linear_B: 'linb',\n  Lisu: 'lisu',\n  Lycian: 'lyci',\n  Lydian: 'lydi',\n  Mahajani: 'mahj',\n  Mandaic: 'mand',\n  Manichaean: 'mani',\n  Mende_Kikakui: 'mend',\n  Meroitic_Cursive: 'merc',\n  Meroitic_Hieroglyphs: 'mero',\n  Malayalam: ['mlm2', 'mlym'],\n  Modi: 'modi',\n  Mongolian: 'mong',\n  Mro: 'mroo',\n  Meetei_Mayek: 'mtei',\n  Myanmar: ['mym2', 'mymr'],\n  Old_North_Arabian: 'narb',\n  Nabataean: 'nbat',\n  Nko: 'nko ',\n  Ogham: 'ogam',\n  Ol_Chiki: 'olck',\n  Old_Turkic: 'orkh',\n  Oriya: ['ory2', 'orya'],\n  Osmanya: 'osma',\n  Palmyrene: 'palm',\n  Pau_Cin_Hau: 'pauc',\n  Old_Permic: 'perm',\n  Phags_Pa: 'phag',\n  Inscriptional_Pahlavi: 'phli',\n  Psalter_Pahlavi: 'phlp',\n  Phoenician: 'phnx',\n  Miao: 'plrd',\n  Inscriptional_Parthian: 'prti',\n  Rejang: 'rjng',\n  Runic: 'runr',\n  Samaritan: 'samr',\n  Old_South_Arabian: 'sarb',\n  Saurashtra: 'saur',\n  Shavian: 'shaw',\n  Sharada: 'shrd',\n  Siddham: 'sidd',\n  Khudawadi: 'sind',\n  Sinhala: 'sinh',\n  Sora_Sompeng: 'sora',\n  Sundanese: 'sund',\n  Syloti_Nagri: 'sylo',\n  Syriac: 'syrc',\n  Tagbanwa: 'tagb',\n  Takri: 'takr',\n  Tai_Le: 'tale',\n  New_Tai_Lue: 'talu',\n  Tamil: ['tml2', 'taml'],\n  Tai_Viet: 'tavt',\n  Telugu: ['tel2', 'telu'],\n  Tifinagh: 'tfng',\n  Tagalog: 'tglg',\n  Thaana: 'thaa',\n  Thai: 'thai',\n  Tibetan: 'tibt',\n  Tirhuta: 'tirh',\n  Ugaritic: 'ugar',\n  Vai: 'vai ',\n  Warang_Citi: 'wara',\n  Old_Persian: 'xpeo',\n  Cuneiform: 'xsux',\n  Yi: 'yi  ',\n  Inherited: 'zinh',\n  Common: 'zyyy',\n  Unknown: 'zzzz'\n};\n\nvar OPENTYPE_SCRIPTS = {};\nfor (var script in UNICODE_SCRIPTS) {\n  var tag = UNICODE_SCRIPTS[script];\n  if (Array.isArray(tag)) {\n    for (var _iterator = tag, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var t = _ref;\n\n      OPENTYPE_SCRIPTS[t] = script;\n    }\n  } else {\n    OPENTYPE_SCRIPTS[tag] = script;\n  }\n}\n\nfunction fromOpenType(tag) {\n  return OPENTYPE_SCRIPTS[tag];\n}\n\nfunction forString(string) {\n  var len = string.length;\n  var idx = 0;\n  while (idx < len) {\n    var code = string.charCodeAt(idx++);\n\n    // Check if this is a high surrogate\n    if (0xd800 <= code && code <= 0xdbff && idx < len) {\n      var next = string.charCodeAt(idx);\n\n      // Check if this is a low surrogate\n      if (0xdc00 <= next && next <= 0xdfff) {\n        idx++;\n        code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n      }\n    }\n\n    var _script = unicode.getScript(code);\n    if (_script !== 'Common' && _script !== 'Inherited' && _script !== 'Unknown') {\n      return UNICODE_SCRIPTS[_script];\n    }\n  }\n\n  return UNICODE_SCRIPTS.Unknown;\n}\n\nfunction forCodePoints(codePoints) {\n  for (var i = 0; i < codePoints.length; i++) {\n    var codePoint = codePoints[i];\n    var _script2 = unicode.getScript(codePoint);\n    if (_script2 !== 'Common' && _script2 !== 'Inherited' && _script2 !== 'Unknown') {\n      return UNICODE_SCRIPTS[_script2];\n    }\n  }\n\n  return UNICODE_SCRIPTS.Unknown;\n}\n\n// The scripts in this map are written from right to left\nvar RTL = {\n  arab: true, // Arabic\n  hebr: true, // Hebrew\n  syrc: true, // Syriac\n  thaa: true, // Thaana\n  cprt: true, // Cypriot Syllabary\n  khar: true, // Kharosthi\n  phnx: true, // Phoenician\n  'nko ': true, // N'Ko\n  lydi: true, // Lydian\n  avst: true, // Avestan\n  armi: true, // Imperial Aramaic\n  phli: true, // Inscriptional Pahlavi\n  prti: true, // Inscriptional Parthian\n  sarb: true, // Old South Arabian\n  orkh: true, // Old Turkic, Orkhon Runic\n  samr: true, // Samaritan\n  mand: true, // Mandaic, Mandaean\n  merc: true, // Meroitic Cursive\n  mero: true, // Meroitic Hieroglyphs\n\n  // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n  mani: true, // Manichaean\n  mend: true, // Mende Kikakui\n  nbat: true, // Nabataean\n  narb: true, // Old North Arabian\n  palm: true, // Palmyrene\n  phlp: true // Psalter Pahlavi\n};\n\nfunction direction(script) {\n  if (RTL[script]) {\n    return 'rtl';\n  }\n\n  return 'ltr';\n}\n\n/**\n * Represents a run of Glyph and GlyphPosition objects.\n * Returned by the font layout method.\n */\n\nvar GlyphRun = function () {\n  function GlyphRun(glyphs, features, script, language, direction$$) {\n    _classCallCheck(this, GlyphRun);\n\n    /**\n     * An array of Glyph objects in the run\n     * @type {Glyph[]}\n     */\n    this.glyphs = glyphs;\n\n    /**\n     * An array of GlyphPosition objects for each glyph in the run\n     * @type {GlyphPosition[]}\n     */\n    this.positions = null;\n\n    /**\n     * The script that was requested for shaping. This was either passed in or detected automatically.\n     * @type {string}\n     */\n    this.script = script;\n\n    /**\n     * The language requested for shaping, as passed in. If `null`, the default language for the\n     * script was used.\n     * @type {string}\n     */\n    this.language = language || null;\n\n    /**\n     * The direction requested for shaping, as passed in (either ltr or rtl).\n     * If `null`, the default direction of the script is used.\n     * @type {string}\n     */\n    this.direction = direction$$ || direction(script);\n\n    /**\n     * The features requested during shaping. This is a combination of user\n     * specified features and features chosen by the shaper.\n     * @type {object}\n     */\n    this.features = {};\n\n    // Convert features to an object\n    if (Array.isArray(features)) {\n      for (var _iterator = features, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var tag = _ref;\n\n        this.features[tag] = true;\n      }\n    } else if ((typeof features === 'undefined' ? 'undefined' : _typeof(features)) === 'object') {\n      this.features = features;\n    }\n  }\n\n  /**\n   * The total advance width of the run.\n   * @type {number}\n   */\n\n\n  _createClass(GlyphRun, [{\n    key: 'advanceWidth',\n    get: function get() {\n      var width = 0;\n      for (var _iterator2 = this.positions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var position = _ref2;\n\n        width += position.xAdvance;\n      }\n\n      return width;\n    }\n\n    /**\n     * The total advance height of the run.\n     * @type {number}\n     */\n\n  }, {\n    key: 'advanceHeight',\n    get: function get() {\n      var height = 0;\n      for (var _iterator3 = this.positions, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref3 = _i3.value;\n        }\n\n        var position = _ref3;\n\n        height += position.yAdvance;\n      }\n\n      return height;\n    }\n\n    /**\n     * The bounding box containing all glyphs in the run.\n     * @type {BBox}\n     */\n\n  }, {\n    key: 'bbox',\n    get: function get() {\n      var bbox = new BBox();\n\n      var x = 0;\n      var y = 0;\n      for (var index = 0; index < this.glyphs.length; index++) {\n        var glyph = this.glyphs[index];\n        var p = this.positions[index];\n        var b = glyph.bbox;\n\n        bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n        bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n\n        x += p.xAdvance;\n        y += p.yAdvance;\n      }\n\n      return bbox;\n    }\n  }]);\n\n  return GlyphRun;\n}();\n\n/**\n * Represents positioning information for a glyph in a GlyphRun.\n */\nvar GlyphPosition = function GlyphPosition() {\n  var xAdvance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var yAdvance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var xOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n  var yOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n  _classCallCheck(this, GlyphPosition);\n\n  /**\n   * The amount to move the virtual pen in the X direction after rendering this glyph.\n   * @type {number}\n   */\n  this.xAdvance = xAdvance;\n\n  /**\n   * The amount to move the virtual pen in the Y direction after rendering this glyph.\n   * @type {number}\n   */\n  this.yAdvance = yAdvance;\n\n  /**\n   * The offset from the pen position in the X direction at which to render this glyph.\n   * @type {number}\n   */\n  this.xOffset = xOffset;\n\n  /**\n   * The offset from the pen position in the Y direction at which to render this glyph.\n   * @type {number}\n   */\n  this.yOffset = yOffset;\n};\n\n// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nvar features = {\n  allTypographicFeatures: {\n    code: 0,\n    exclusive: false,\n    allTypeFeatures: 0\n  },\n  ligatures: {\n    code: 1,\n    exclusive: false,\n    requiredLigatures: 0,\n    commonLigatures: 2,\n    rareLigatures: 4,\n    // logos: 6\n    rebusPictures: 8,\n    diphthongLigatures: 10,\n    squaredLigatures: 12,\n    abbrevSquaredLigatures: 14,\n    symbolLigatures: 16,\n    contextualLigatures: 18,\n    historicalLigatures: 20\n  },\n  cursiveConnection: {\n    code: 2,\n    exclusive: true,\n    unconnected: 0,\n    partiallyConnected: 1,\n    cursive: 2\n  },\n  letterCase: {\n    code: 3,\n    exclusive: true\n  },\n  // upperAndLowerCase: 0          # deprecated\n  // allCaps: 1                    # deprecated\n  // allLowerCase: 2               # deprecated\n  // smallCaps: 3                  # deprecated\n  // initialCaps: 4                # deprecated\n  // initialCapsAndSmallCaps: 5    # deprecated\n  verticalSubstitution: {\n    code: 4,\n    exclusive: false,\n    substituteVerticalForms: 0\n  },\n  linguisticRearrangement: {\n    code: 5,\n    exclusive: false,\n    linguisticRearrangement: 0\n  },\n  numberSpacing: {\n    code: 6,\n    exclusive: true,\n    monospacedNumbers: 0,\n    proportionalNumbers: 1,\n    thirdWidthNumbers: 2,\n    quarterWidthNumbers: 3\n  },\n  smartSwash: {\n    code: 8,\n    exclusive: false,\n    wordInitialSwashes: 0,\n    wordFinalSwashes: 2,\n    // lineInitialSwashes: 4\n    // lineFinalSwashes: 6\n    nonFinalSwashes: 8\n  },\n  diacritics: {\n    code: 9,\n    exclusive: true,\n    showDiacritics: 0,\n    hideDiacritics: 1,\n    decomposeDiacritics: 2\n  },\n  verticalPosition: {\n    code: 10,\n    exclusive: true,\n    normalPosition: 0,\n    superiors: 1,\n    inferiors: 2,\n    ordinals: 3,\n    scientificInferiors: 4\n  },\n  fractions: {\n    code: 11,\n    exclusive: true,\n    noFractions: 0,\n    verticalFractions: 1,\n    diagonalFractions: 2\n  },\n  overlappingCharacters: {\n    code: 13,\n    exclusive: false,\n    preventOverlap: 0\n  },\n  typographicExtras: {\n    code: 14,\n    exclusive: false,\n    // hyphensToEmDash: 0\n    // hyphenToEnDash: 2\n    slashedZero: 4\n  },\n  // formInterrobang: 6\n  // smartQuotes: 8\n  // periodsToEllipsis: 10\n  mathematicalExtras: {\n    code: 15,\n    exclusive: false,\n    // hyphenToMinus: 0\n    // asteristoMultiply: 2\n    // slashToDivide: 4\n    // inequalityLigatures: 6\n    // exponents: 8\n    mathematicalGreek: 10\n  },\n  ornamentSets: {\n    code: 16,\n    exclusive: true,\n    noOrnaments: 0,\n    dingbats: 1,\n    piCharacters: 2,\n    fleurons: 3,\n    decorativeBorders: 4,\n    internationalSymbols: 5,\n    mathSymbols: 6\n  },\n  characterAlternatives: {\n    code: 17,\n    exclusive: true,\n    noAlternates: 0\n  },\n  // user defined options\n  designComplexity: {\n    code: 18,\n    exclusive: true,\n    designLevel1: 0,\n    designLevel2: 1,\n    designLevel3: 2,\n    designLevel4: 3,\n    designLevel5: 4\n  },\n  styleOptions: {\n    code: 19,\n    exclusive: true,\n    noStyleOptions: 0,\n    displayText: 1,\n    engravedText: 2,\n    illuminatedCaps: 3,\n    titlingCaps: 4,\n    tallCaps: 5\n  },\n  characterShape: {\n    code: 20,\n    exclusive: true,\n    traditionalCharacters: 0,\n    simplifiedCharacters: 1,\n    JIS1978Characters: 2,\n    JIS1983Characters: 3,\n    JIS1990Characters: 4,\n    traditionalAltOne: 5,\n    traditionalAltTwo: 6,\n    traditionalAltThree: 7,\n    traditionalAltFour: 8,\n    traditionalAltFive: 9,\n    expertCharacters: 10,\n    JIS2004Characters: 11,\n    hojoCharacters: 12,\n    NLCCharacters: 13,\n    traditionalNamesCharacters: 14\n  },\n  numberCase: {\n    code: 21,\n    exclusive: true,\n    lowerCaseNumbers: 0,\n    upperCaseNumbers: 1\n  },\n  textSpacing: {\n    code: 22,\n    exclusive: true,\n    proportionalText: 0,\n    monospacedText: 1,\n    halfWidthText: 2,\n    thirdWidthText: 3,\n    quarterWidthText: 4,\n    altProportionalText: 5,\n    altHalfWidthText: 6\n  },\n  transliteration: {\n    code: 23,\n    exclusive: true,\n    noTransliteration: 0\n  },\n  // hanjaToHangul: 1\n  // hiraganaToKatakana: 2\n  // katakanaToHiragana: 3\n  // kanaToRomanization: 4\n  // romanizationToHiragana: 5\n  // romanizationToKatakana: 6\n  // hanjaToHangulAltOne: 7\n  // hanjaToHangulAltTwo: 8\n  // hanjaToHangulAltThree: 9\n  annotation: {\n    code: 24,\n    exclusive: true,\n    noAnnotation: 0,\n    boxAnnotation: 1,\n    roundedBoxAnnotation: 2,\n    circleAnnotation: 3,\n    invertedCircleAnnotation: 4,\n    parenthesisAnnotation: 5,\n    periodAnnotation: 6,\n    romanNumeralAnnotation: 7,\n    diamondAnnotation: 8,\n    invertedBoxAnnotation: 9,\n    invertedRoundedBoxAnnotation: 10\n  },\n  kanaSpacing: {\n    code: 25,\n    exclusive: true,\n    fullWidthKana: 0,\n    proportionalKana: 1\n  },\n  ideographicSpacing: {\n    code: 26,\n    exclusive: true,\n    fullWidthIdeographs: 0,\n    proportionalIdeographs: 1,\n    halfWidthIdeographs: 2\n  },\n  unicodeDecomposition: {\n    code: 27,\n    exclusive: false,\n    canonicalComposition: 0,\n    compatibilityComposition: 2,\n    transcodingComposition: 4\n  },\n  rubyKana: {\n    code: 28,\n    exclusive: false,\n    // noRubyKana: 0     # deprecated - use rubyKanaOff instead\n    // rubyKana: 1     # deprecated - use rubyKanaOn instead\n    rubyKana: 2\n  },\n  CJKSymbolAlternatives: {\n    code: 29,\n    exclusive: true,\n    noCJKSymbolAlternatives: 0,\n    CJKSymbolAltOne: 1,\n    CJKSymbolAltTwo: 2,\n    CJKSymbolAltThree: 3,\n    CJKSymbolAltFour: 4,\n    CJKSymbolAltFive: 5\n  },\n  ideographicAlternatives: {\n    code: 30,\n    exclusive: true,\n    noIdeographicAlternatives: 0,\n    ideographicAltOne: 1,\n    ideographicAltTwo: 2,\n    ideographicAltThree: 3,\n    ideographicAltFour: 4,\n    ideographicAltFive: 5\n  },\n  CJKVerticalRomanPlacement: {\n    code: 31,\n    exclusive: true,\n    CJKVerticalRomanCentered: 0,\n    CJKVerticalRomanHBaseline: 1\n  },\n  italicCJKRoman: {\n    code: 32,\n    exclusive: false,\n    // noCJKItalicRoman: 0     # deprecated - use CJKItalicRomanOff instead\n    // CJKItalicRoman: 1     # deprecated - use CJKItalicRomanOn instead\n    CJKItalicRoman: 2\n  },\n  caseSensitiveLayout: {\n    code: 33,\n    exclusive: false,\n    caseSensitiveLayout: 0,\n    caseSensitiveSpacing: 2\n  },\n  alternateKana: {\n    code: 34,\n    exclusive: false,\n    alternateHorizKana: 0,\n    alternateVertKana: 2\n  },\n  stylisticAlternatives: {\n    code: 35,\n    exclusive: false,\n    noStylisticAlternates: 0,\n    stylisticAltOne: 2,\n    stylisticAltTwo: 4,\n    stylisticAltThree: 6,\n    stylisticAltFour: 8,\n    stylisticAltFive: 10,\n    stylisticAltSix: 12,\n    stylisticAltSeven: 14,\n    stylisticAltEight: 16,\n    stylisticAltNine: 18,\n    stylisticAltTen: 20,\n    stylisticAltEleven: 22,\n    stylisticAltTwelve: 24,\n    stylisticAltThirteen: 26,\n    stylisticAltFourteen: 28,\n    stylisticAltFifteen: 30,\n    stylisticAltSixteen: 32,\n    stylisticAltSeventeen: 34,\n    stylisticAltEighteen: 36,\n    stylisticAltNineteen: 38,\n    stylisticAltTwenty: 40\n  },\n  contextualAlternates: {\n    code: 36,\n    exclusive: false,\n    contextualAlternates: 0,\n    swashAlternates: 2,\n    contextualSwashAlternates: 4\n  },\n  lowerCase: {\n    code: 37,\n    exclusive: true,\n    defaultLowerCase: 0,\n    lowerCaseSmallCaps: 1,\n    lowerCasePetiteCaps: 2\n  },\n  upperCase: {\n    code: 38,\n    exclusive: true,\n    defaultUpperCase: 0,\n    upperCaseSmallCaps: 1,\n    upperCasePetiteCaps: 2\n  },\n  languageTag: { // indices into ltag table\n    code: 39,\n    exclusive: true\n  },\n  CJKRomanSpacing: {\n    code: 103,\n    exclusive: true,\n    halfWidthCJKRoman: 0,\n    proportionalCJKRoman: 1,\n    defaultCJKRoman: 2,\n    fullWidthCJKRoman: 3\n  }\n};\n\nvar feature = function feature(name, selector) {\n  return [features[name].code, features[name][selector]];\n};\n\nvar OTMapping = {\n  rlig: feature('ligatures', 'requiredLigatures'),\n  clig: feature('ligatures', 'contextualLigatures'),\n  dlig: feature('ligatures', 'rareLigatures'),\n  hlig: feature('ligatures', 'historicalLigatures'),\n  liga: feature('ligatures', 'commonLigatures'),\n  hist: feature('ligatures', 'historicalLigatures'), // ??\n\n  smcp: feature('lowerCase', 'lowerCaseSmallCaps'),\n  pcap: feature('lowerCase', 'lowerCasePetiteCaps'),\n\n  frac: feature('fractions', 'diagonalFractions'),\n  dnom: feature('fractions', 'diagonalFractions'), // ??\n  numr: feature('fractions', 'diagonalFractions'), // ??\n  afrc: feature('fractions', 'verticalFractions'),\n  // aalt\n  // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n  // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n  // unic, vatu, vhal, vjmo, vpal, vrt2\n  // dist -> trak table?\n  // kern, vkrn -> kern table\n  // lfbd + opbd + rtbd -> opbd table?\n  // mark, mkmk -> acnt table?\n  // locl -> languageTag + ltag table\n\n  case: feature('caseSensitiveLayout', 'caseSensitiveLayout'), // also caseSensitiveSpacing\n  ccmp: feature('unicodeDecomposition', 'canonicalComposition'), // compatibilityComposition?\n  cpct: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'), // guess..., probably not given below\n  valt: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n  swsh: feature('contextualAlternates', 'swashAlternates'),\n  cswh: feature('contextualAlternates', 'contextualSwashAlternates'),\n  curs: feature('cursiveConnection', 'cursive'), // ??\n  c2pc: feature('upperCase', 'upperCasePetiteCaps'),\n  c2sc: feature('upperCase', 'upperCaseSmallCaps'),\n\n  init: feature('smartSwash', 'wordInitialSwashes'), // ??\n  fin2: feature('smartSwash', 'wordFinalSwashes'), // ??\n  medi: feature('smartSwash', 'nonFinalSwashes'), // ??\n  med2: feature('smartSwash', 'nonFinalSwashes'), // ??\n  fin3: feature('smartSwash', 'wordFinalSwashes'), // ??\n  fina: feature('smartSwash', 'wordFinalSwashes'), // ??\n\n  pkna: feature('kanaSpacing', 'proportionalKana'),\n  half: feature('textSpacing', 'halfWidthText'), // also HalfWidthCJKRoman, HalfWidthIdeographs?\n  halt: feature('textSpacing', 'altHalfWidthText'),\n\n  hkna: feature('alternateKana', 'alternateHorizKana'),\n  vkna: feature('alternateKana', 'alternateVertKana'),\n  // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n\n  ital: feature('italicCJKRoman', 'CJKItalicRoman'),\n  lnum: feature('numberCase', 'upperCaseNumbers'),\n  onum: feature('numberCase', 'lowerCaseNumbers'),\n  mgrk: feature('mathematicalExtras', 'mathematicalGreek'),\n\n  // nalt: not enough info. what type of annotation?\n  // ornm: ditto, which ornament style?\n\n  calt: feature('contextualAlternates', 'contextualAlternates'), // or more?\n  vrt2: feature('verticalSubstitution', 'substituteVerticalForms'), // oh... below?\n  vert: feature('verticalSubstitution', 'substituteVerticalForms'),\n  tnum: feature('numberSpacing', 'monospacedNumbers'),\n  pnum: feature('numberSpacing', 'proportionalNumbers'),\n  sups: feature('verticalPosition', 'superiors'),\n  subs: feature('verticalPosition', 'inferiors'),\n  ordn: feature('verticalPosition', 'ordinals'),\n  pwid: feature('textSpacing', 'proportionalText'),\n  hwid: feature('textSpacing', 'halfWidthText'),\n  qwid: feature('textSpacing', 'quarterWidthText'), // also QuarterWidthNumbers?\n  twid: feature('textSpacing', 'thirdWidthText'), // also ThirdWidthNumbers?\n  fwid: feature('textSpacing', 'proportionalText'), //??\n  palt: feature('textSpacing', 'altProportionalText'),\n  trad: feature('characterShape', 'traditionalCharacters'),\n  smpl: feature('characterShape', 'simplifiedCharacters'),\n  jp78: feature('characterShape', 'JIS1978Characters'),\n  jp83: feature('characterShape', 'JIS1983Characters'),\n  jp90: feature('characterShape', 'JIS1990Characters'),\n  jp04: feature('characterShape', 'JIS2004Characters'),\n  expt: feature('characterShape', 'expertCharacters'),\n  hojo: feature('characterShape', 'hojoCharacters'),\n  nlck: feature('characterShape', 'NLCCharacters'),\n  tnam: feature('characterShape', 'traditionalNamesCharacters'),\n  ruby: feature('rubyKana', 'rubyKana'),\n  titl: feature('styleOptions', 'titlingCaps'),\n  zero: feature('typographicExtras', 'slashedZero'),\n\n  ss01: feature('stylisticAlternatives', 'stylisticAltOne'),\n  ss02: feature('stylisticAlternatives', 'stylisticAltTwo'),\n  ss03: feature('stylisticAlternatives', 'stylisticAltThree'),\n  ss04: feature('stylisticAlternatives', 'stylisticAltFour'),\n  ss05: feature('stylisticAlternatives', 'stylisticAltFive'),\n  ss06: feature('stylisticAlternatives', 'stylisticAltSix'),\n  ss07: feature('stylisticAlternatives', 'stylisticAltSeven'),\n  ss08: feature('stylisticAlternatives', 'stylisticAltEight'),\n  ss09: feature('stylisticAlternatives', 'stylisticAltNine'),\n  ss10: feature('stylisticAlternatives', 'stylisticAltTen'),\n  ss11: feature('stylisticAlternatives', 'stylisticAltEleven'),\n  ss12: feature('stylisticAlternatives', 'stylisticAltTwelve'),\n  ss13: feature('stylisticAlternatives', 'stylisticAltThirteen'),\n  ss14: feature('stylisticAlternatives', 'stylisticAltFourteen'),\n  ss15: feature('stylisticAlternatives', 'stylisticAltFifteen'),\n  ss16: feature('stylisticAlternatives', 'stylisticAltSixteen'),\n  ss17: feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n  ss18: feature('stylisticAlternatives', 'stylisticAltEighteen'),\n  ss19: feature('stylisticAlternatives', 'stylisticAltNineteen'),\n  ss20: feature('stylisticAlternatives', 'stylisticAltTwenty')\n};\n\n// salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n\n// Add cv01-cv99 features\nfor (var i = 1; i <= 99; i++) {\n  OTMapping['cv' + ('00' + i).slice(-2)] = [features.characterAlternatives.code, i];\n}\n\n// create inverse mapping\nvar AATMapping = {};\nfor (var ot in OTMapping) {\n  var aat = OTMapping[ot];\n  if (AATMapping[aat[0]] == null) {\n    AATMapping[aat[0]] = {};\n  }\n\n  AATMapping[aat[0]][aat[1]] = ot;\n}\n\n// Maps an array of OpenType features to AAT features\n// in the form of {featureType:{featureSetting:true}}\nfunction mapOTToAAT(features) {\n  var res = {};\n  for (var k in features) {\n    var r = void 0;\n    if (r = OTMapping[k]) {\n      if (res[r[0]] == null) {\n        res[r[0]] = {};\n      }\n\n      res[r[0]][r[1]] = features[k];\n    }\n  }\n\n  return res;\n}\n\n// Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\nfunction mapFeatureStrings(f) {\n  var type = f[0],\n      setting = f[1];\n\n  if (isNaN(type)) {\n    var typeCode = features[type] && features[type].code;\n  } else {\n    var typeCode = type;\n  }\n\n  if (isNaN(setting)) {\n    var settingCode = features[type] && features[type][setting];\n  } else {\n    var settingCode = setting;\n  }\n\n  return [typeCode, settingCode];\n}\n\n// Maps AAT features to an array of OpenType features\n// Supports both arrays in the form of [[featureType, featureSetting]]\n// and objects in the form of {featureType:{featureSetting:true}}\n// featureTypes and featureSettings can be either strings or number codes\nfunction mapAATToOT(features) {\n  var res = {};\n  if (Array.isArray(features)) {\n    for (var k = 0; k < features.length; k++) {\n      var r = void 0;\n      var f = mapFeatureStrings(features[k]);\n      if (r = AATMapping[f[0]] && AATMapping[f[0]][f[1]]) {\n        res[r] = true;\n      }\n    }\n  } else if ((typeof features === 'undefined' ? 'undefined' : _typeof(features)) === 'object') {\n    for (var type in features) {\n      var _feature = features[type];\n      for (var setting in _feature) {\n        var _r = void 0;\n        var _f = mapFeatureStrings([type, setting]);\n        if (_feature[setting] && (_r = AATMapping[_f[0]] && AATMapping[_f[0]][_f[1]])) {\n          res[_r] = true;\n        }\n      }\n    }\n  }\n\n  return _Object$keys(res);\n}\n\nvar _class$3;\nfunction _applyDecoratedDescriptor$3(target, property, decorators, descriptor, context) {\n  var desc = {};\n  Object['ke' + 'ys'](descriptor).forEach(function (key) {\n    desc[key] = descriptor[key];\n  });\n  desc.enumerable = !!desc.enumerable;\n  desc.configurable = !!desc.configurable;\n\n  if ('value' in desc || desc.initializer) {\n    desc.writable = true;\n  }\n\n  desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n    return decorator(target, property, desc) || desc;\n  }, desc);\n\n  if (context && desc.initializer !== void 0) {\n    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n    desc.initializer = undefined;\n  }\n\n  if (desc.initializer === void 0) {\n    Object['define' + 'Property'](target, property, desc);\n    desc = null;\n  }\n\n  return desc;\n}\n\nvar AATLookupTable = (_class$3 = function () {\n  function AATLookupTable(table) {\n    _classCallCheck(this, AATLookupTable);\n\n    this.table = table;\n  }\n\n  AATLookupTable.prototype.lookup = function lookup(glyph) {\n    switch (this.table.version) {\n      case 0:\n        // simple array format\n        return this.table.values.getItem(glyph);\n\n      case 2: // segment format\n      case 4:\n        {\n          var min = 0;\n          var max = this.table.binarySearchHeader.nUnits - 1;\n\n          while (min <= max) {\n            var mid = min + max >> 1;\n            var seg = this.table.segments[mid];\n\n            // special end of search value\n            if (seg.firstGlyph === 0xffff) {\n              return null;\n            }\n\n            if (glyph < seg.firstGlyph) {\n              max = mid - 1;\n            } else if (glyph > seg.lastGlyph) {\n              min = mid + 1;\n            } else {\n              if (this.table.version === 2) {\n                return seg.value;\n              } else {\n                return seg.values[glyph - seg.firstGlyph];\n              }\n            }\n          }\n\n          return null;\n        }\n\n      case 6:\n        {\n          // lookup single\n          var _min = 0;\n          var _max = this.table.binarySearchHeader.nUnits - 1;\n\n          while (_min <= _max) {\n            var mid = _min + _max >> 1;\n            var seg = this.table.segments[mid];\n\n            // special end of search value\n            if (seg.glyph === 0xffff) {\n              return null;\n            }\n\n            if (glyph < seg.glyph) {\n              _max = mid - 1;\n            } else if (glyph > seg.glyph) {\n              _min = mid + 1;\n            } else {\n              return seg.value;\n            }\n          }\n\n          return null;\n        }\n\n      case 8:\n        // lookup trimmed\n        return this.table.values[glyph - this.table.firstGlyph];\n\n      default:\n        throw new Error('Unknown lookup table format: ' + this.table.version);\n    }\n  };\n\n  AATLookupTable.prototype.glyphsForValue = function glyphsForValue(classValue) {\n    var res = [];\n\n    switch (this.table.version) {\n      case 2: // segment format\n      case 4:\n        {\n          for (var _iterator = this.table.segments, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n            var _ref;\n\n            if (_isArray) {\n              if (_i >= _iterator.length) break;\n              _ref = _iterator[_i++];\n            } else {\n              _i = _iterator.next();\n              if (_i.done) break;\n              _ref = _i.value;\n            }\n\n            var segment = _ref;\n\n            if (this.table.version === 2 && segment.value === classValue) {\n              res.push.apply(res, range(segment.firstGlyph, segment.lastGlyph + 1));\n            } else {\n              for (var index = 0; index < segment.values.length; index++) {\n                if (segment.values[index] === classValue) {\n                  res.push(segment.firstGlyph + index);\n                }\n              }\n            }\n          }\n\n          break;\n        }\n\n      case 6:\n        {\n          // lookup single\n          for (var _iterator2 = this.table.segments, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n            var _ref2;\n\n            if (_isArray2) {\n              if (_i2 >= _iterator2.length) break;\n              _ref2 = _iterator2[_i2++];\n            } else {\n              _i2 = _iterator2.next();\n              if (_i2.done) break;\n              _ref2 = _i2.value;\n            }\n\n            var _segment = _ref2;\n\n            if (_segment.value === classValue) {\n              res.push(_segment.glyph);\n            }\n          }\n\n          break;\n        }\n\n      case 8:\n        {\n          // lookup trimmed\n          for (var i = 0; i < this.table.values.length; i++) {\n            if (this.table.values[i] === classValue) {\n              res.push(this.table.firstGlyph + i);\n            }\n          }\n\n          break;\n        }\n\n      default:\n        throw new Error('Unknown lookup table format: ' + this.table.version);\n    }\n\n    return res;\n  };\n\n  return AATLookupTable;\n}(), (_applyDecoratedDescriptor$3(_class$3.prototype, 'glyphsForValue', [cache], _Object$getOwnPropertyDescriptor(_class$3.prototype, 'glyphsForValue'), _class$3.prototype)), _class$3);\n\nvar START_OF_TEXT_STATE = 0;\nvar END_OF_TEXT_CLASS = 0;\nvar OUT_OF_BOUNDS_CLASS = 1;\nvar DELETED_GLYPH_CLASS = 2;\nvar DONT_ADVANCE = 0x4000;\n\nvar AATStateMachine = function () {\n  function AATStateMachine(stateTable) {\n    _classCallCheck(this, AATStateMachine);\n\n    this.stateTable = stateTable;\n    this.lookupTable = new AATLookupTable(stateTable.classTable);\n  }\n\n  AATStateMachine.prototype.process = function process(glyphs, reverse, processEntry) {\n    var currentState = START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n    var index = reverse ? glyphs.length - 1 : 0;\n    var dir = reverse ? -1 : 1;\n\n    while (dir === 1 && index <= glyphs.length || dir === -1 && index >= -1) {\n      var glyph = null;\n      var classCode = OUT_OF_BOUNDS_CLASS;\n      var shouldAdvance = true;\n\n      if (index === glyphs.length || index === -1) {\n        classCode = END_OF_TEXT_CLASS;\n      } else {\n        glyph = glyphs[index];\n        if (glyph.id === 0xffff) {\n          // deleted glyph\n          classCode = DELETED_GLYPH_CLASS;\n        } else {\n          classCode = this.lookupTable.lookup(glyph.id);\n          if (classCode == null) {\n            classCode = OUT_OF_BOUNDS_CLASS;\n          }\n        }\n      }\n\n      var row = this.stateTable.stateArray.getItem(currentState);\n      var entryIndex = row[classCode];\n      var entry = this.stateTable.entryTable.getItem(entryIndex);\n\n      if (classCode !== END_OF_TEXT_CLASS && classCode !== DELETED_GLYPH_CLASS) {\n        processEntry(glyph, entry, index);\n        shouldAdvance = !(entry.flags & DONT_ADVANCE);\n      }\n\n      currentState = entry.newState;\n      if (shouldAdvance) {\n        index += dir;\n      }\n    }\n\n    return glyphs;\n  };\n\n  /**\n   * Performs a depth-first traversal of the glyph strings\n   * represented by the state machine.\n   */\n\n\n  AATStateMachine.prototype.traverse = function traverse(opts) {\n    var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    var visited = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _Set();\n\n    if (visited.has(state)) {\n      return;\n    }\n\n    visited.add(state);\n\n    var _stateTable = this.stateTable,\n        nClasses = _stateTable.nClasses,\n        stateArray = _stateTable.stateArray,\n        entryTable = _stateTable.entryTable;\n\n    var row = stateArray.getItem(state);\n\n    // Skip predefined classes\n    for (var classCode = 4; classCode < nClasses; classCode++) {\n      var entryIndex = row[classCode];\n      var entry = entryTable.getItem(entryIndex);\n\n      // Try all glyphs in the class\n      for (var _iterator = this.lookupTable.glyphsForValue(classCode), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var glyph = _ref;\n\n        if (opts.enter) {\n          opts.enter(glyph, entry);\n        }\n\n        if (entry.newState !== 0) {\n          this.traverse(opts, entry.newState, visited);\n        }\n\n        if (opts.exit) {\n          opts.exit(glyph, entry);\n        }\n      }\n    }\n  };\n\n  return AATStateMachine;\n}();\n\nvar _class$2;\nfunction _applyDecoratedDescriptor$2(target, property, decorators, descriptor, context) {\n  var desc = {};\n  Object['ke' + 'ys'](descriptor).forEach(function (key) {\n    desc[key] = descriptor[key];\n  });\n  desc.enumerable = !!desc.enumerable;\n  desc.configurable = !!desc.configurable;\n\n  if ('value' in desc || desc.initializer) {\n    desc.writable = true;\n  }\n\n  desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n    return decorator(target, property, desc) || desc;\n  }, desc);\n\n  if (context && desc.initializer !== void 0) {\n    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n    desc.initializer = undefined;\n  }\n\n  if (desc.initializer === void 0) {\n    Object['define' + 'Property'](target, property, desc);\n    desc = null;\n  }\n\n  return desc;\n}\n\n// indic replacement flags\nvar MARK_FIRST = 0x8000;\nvar MARK_LAST = 0x2000;\nvar VERB = 0x000F;\n\n// contextual substitution and glyph insertion flag\nvar SET_MARK = 0x8000;\n\n// ligature entry flags\nvar SET_COMPONENT = 0x8000;\nvar PERFORM_ACTION = 0x2000;\n\n// ligature action masks\nvar LAST_MASK = 0x80000000;\nvar STORE_MASK = 0x40000000;\nvar OFFSET_MASK = 0x3FFFFFFF;\n\nvar REVERSE_DIRECTION = 0x400000;\nvar CURRENT_INSERT_BEFORE = 0x0800;\nvar MARKED_INSERT_BEFORE = 0x0400;\nvar CURRENT_INSERT_COUNT = 0x03E0;\nvar MARKED_INSERT_COUNT = 0x001F;\n\nvar AATMorxProcessor = (_class$2 = function () {\n  function AATMorxProcessor(font) {\n    _classCallCheck(this, AATMorxProcessor);\n\n    this.processIndicRearragement = this.processIndicRearragement.bind(this);\n    this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n    this.processLigature = this.processLigature.bind(this);\n    this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n    this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n    this.font = font;\n    this.morx = font.morx;\n    this.inputCache = null;\n  }\n\n  // Processes an array of glyphs and applies the specified features\n  // Features should be in the form of {featureType:{featureSetting:boolean}}\n\n\n  AATMorxProcessor.prototype.process = function process(glyphs) {\n    var features = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    for (var _iterator = this.morx.chains, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var chain = _ref;\n\n      var flags = chain.defaultFlags;\n\n      // enable/disable the requested features\n      for (var _iterator2 = chain.features, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var feature = _ref2;\n\n        var f = void 0;\n        if (f = features[feature.featureType]) {\n          if (f[feature.featureSetting]) {\n            flags &= feature.disableFlags;\n            flags |= feature.enableFlags;\n          } else if (f[feature.featureSetting] === false) {\n            flags |= ~feature.disableFlags;\n            flags &= ~feature.enableFlags;\n          }\n        }\n      }\n\n      for (var _iterator3 = chain.subtables, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref3 = _i3.value;\n        }\n\n        var subtable = _ref3;\n\n        if (subtable.subFeatureFlags & flags) {\n          this.processSubtable(subtable, glyphs);\n        }\n      }\n    }\n\n    // remove deleted glyphs\n    var index = glyphs.length - 1;\n    while (index >= 0) {\n      if (glyphs[index].id === 0xffff) {\n        glyphs.splice(index, 1);\n      }\n\n      index--;\n    }\n\n    return glyphs;\n  };\n\n  AATMorxProcessor.prototype.processSubtable = function processSubtable(subtable, glyphs) {\n    this.subtable = subtable;\n    this.glyphs = glyphs;\n    if (this.subtable.type === 4) {\n      this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n      return;\n    }\n\n    this.ligatureStack = [];\n    this.markedGlyph = null;\n    this.firstGlyph = null;\n    this.lastGlyph = null;\n    this.markedIndex = null;\n\n    var stateMachine = this.getStateMachine(subtable);\n    var process = this.getProcessor();\n\n    var reverse = !!(this.subtable.coverage & REVERSE_DIRECTION);\n    return stateMachine.process(this.glyphs, reverse, process);\n  };\n\n  AATMorxProcessor.prototype.getStateMachine = function getStateMachine(subtable) {\n    return new AATStateMachine(subtable.table.stateTable);\n  };\n\n  AATMorxProcessor.prototype.getProcessor = function getProcessor() {\n    switch (this.subtable.type) {\n      case 0:\n        return this.processIndicRearragement;\n      case 1:\n        return this.processContextualSubstitution;\n      case 2:\n        return this.processLigature;\n      case 4:\n        return this.processNoncontextualSubstitutions;\n      case 5:\n        return this.processGlyphInsertion;\n      default:\n        throw new Error('Invalid morx subtable type: ' + this.subtable.type);\n    }\n  };\n\n  AATMorxProcessor.prototype.processIndicRearragement = function processIndicRearragement(glyph, entry, index) {\n    if (entry.flags & MARK_FIRST) {\n      this.firstGlyph = index;\n    }\n\n    if (entry.flags & MARK_LAST) {\n      this.lastGlyph = index;\n    }\n\n    reorderGlyphs(this.glyphs, entry.flags & VERB, this.firstGlyph, this.lastGlyph);\n  };\n\n  AATMorxProcessor.prototype.processContextualSubstitution = function processContextualSubstitution(glyph, entry, index) {\n    var subsitutions = this.subtable.table.substitutionTable.items;\n    if (entry.markIndex !== 0xffff) {\n      var lookup = subsitutions.getItem(entry.markIndex);\n      var lookupTable = new AATLookupTable(lookup);\n      glyph = this.glyphs[this.markedGlyph];\n      var gid = lookupTable.lookup(glyph.id);\n      if (gid) {\n        this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n      }\n    }\n\n    if (entry.currentIndex !== 0xffff) {\n      var _lookup = subsitutions.getItem(entry.currentIndex);\n      var _lookupTable = new AATLookupTable(_lookup);\n      glyph = this.glyphs[index];\n      var gid = _lookupTable.lookup(glyph.id);\n      if (gid) {\n        this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n      }\n    }\n\n    if (entry.flags & SET_MARK) {\n      this.markedGlyph = index;\n    }\n  };\n\n  AATMorxProcessor.prototype.processLigature = function processLigature(glyph, entry, index) {\n    if (entry.flags & SET_COMPONENT) {\n      this.ligatureStack.push(index);\n    }\n\n    if (entry.flags & PERFORM_ACTION) {\n      var _ligatureStack;\n\n      var actions = this.subtable.table.ligatureActions;\n      var components = this.subtable.table.components;\n      var ligatureList = this.subtable.table.ligatureList;\n\n      var actionIndex = entry.action;\n      var last = false;\n      var ligatureIndex = 0;\n      var codePoints = [];\n      var ligatureGlyphs = [];\n\n      while (!last) {\n        var _codePoints;\n\n        var componentGlyph = this.ligatureStack.pop();\n        (_codePoints = codePoints).unshift.apply(_codePoints, this.glyphs[componentGlyph].codePoints);\n\n        var action = actions.getItem(actionIndex++);\n        last = !!(action & LAST_MASK);\n        var store = !!(action & STORE_MASK);\n        var offset = (action & OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n        offset += this.glyphs[componentGlyph].id;\n\n        var component = components.getItem(offset);\n        ligatureIndex += component;\n\n        if (last || store) {\n          var ligatureEntry = ligatureList.getItem(ligatureIndex);\n          this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n          ligatureGlyphs.push(componentGlyph);\n          ligatureIndex = 0;\n          codePoints = [];\n        } else {\n          this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n        }\n      }\n\n      // Put ligature glyph indexes back on the stack\n      (_ligatureStack = this.ligatureStack).push.apply(_ligatureStack, ligatureGlyphs);\n    }\n  };\n\n  AATMorxProcessor.prototype.processNoncontextualSubstitutions = function processNoncontextualSubstitutions(subtable, glyphs, index) {\n    var lookupTable = new AATLookupTable(subtable.table.lookupTable);\n\n    for (index = 0; index < glyphs.length; index++) {\n      var glyph = glyphs[index];\n      if (glyph.id !== 0xffff) {\n        var gid = lookupTable.lookup(glyph.id);\n        if (gid) {\n          // 0 means do nothing\n          glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n        }\n      }\n    }\n  };\n\n  AATMorxProcessor.prototype._insertGlyphs = function _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n    var _glyphs;\n\n    var insertions = [];\n    while (count--) {\n      var gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n      insertions.push(this.font.getGlyph(gid));\n    }\n\n    if (!isBefore) {\n      glyphIndex++;\n    }\n\n    (_glyphs = this.glyphs).splice.apply(_glyphs, [glyphIndex, 0].concat(insertions));\n  };\n\n  AATMorxProcessor.prototype.processGlyphInsertion = function processGlyphInsertion(glyph, entry, index) {\n    if (entry.flags & SET_MARK) {\n      this.markedIndex = index;\n    }\n\n    if (entry.markedInsertIndex !== 0xffff) {\n      var count = (entry.flags & MARKED_INSERT_COUNT) >>> 5;\n      var isBefore = !!(entry.flags & MARKED_INSERT_BEFORE);\n      this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n    }\n\n    if (entry.currentInsertIndex !== 0xffff) {\n      var _count = (entry.flags & CURRENT_INSERT_COUNT) >>> 5;\n      var _isBefore = !!(entry.flags & CURRENT_INSERT_BEFORE);\n      this._insertGlyphs(index, entry.currentInsertIndex, _count, _isBefore);\n    }\n  };\n\n  AATMorxProcessor.prototype.getSupportedFeatures = function getSupportedFeatures() {\n    var features = [];\n    for (var _iterator4 = this.morx.chains, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n      var _ref4;\n\n      if (_isArray4) {\n        if (_i4 >= _iterator4.length) break;\n        _ref4 = _iterator4[_i4++];\n      } else {\n        _i4 = _iterator4.next();\n        if (_i4.done) break;\n        _ref4 = _i4.value;\n      }\n\n      var chain = _ref4;\n\n      for (var _iterator5 = chain.features, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\n        var _ref5;\n\n        if (_isArray5) {\n          if (_i5 >= _iterator5.length) break;\n          _ref5 = _iterator5[_i5++];\n        } else {\n          _i5 = _iterator5.next();\n          if (_i5.done) break;\n          _ref5 = _i5.value;\n        }\n\n        var feature = _ref5;\n\n        features.push([feature.featureType, feature.featureSetting]);\n      }\n    }\n\n    return features;\n  };\n\n  AATMorxProcessor.prototype.generateInputs = function generateInputs(gid) {\n    if (!this.inputCache) {\n      this.generateInputCache();\n    }\n\n    return this.inputCache[gid] || [];\n  };\n\n  AATMorxProcessor.prototype.generateInputCache = function generateInputCache() {\n    this.inputCache = {};\n\n    for (var _iterator6 = this.morx.chains, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\n      var _ref6;\n\n      if (_isArray6) {\n        if (_i6 >= _iterator6.length) break;\n        _ref6 = _iterator6[_i6++];\n      } else {\n        _i6 = _iterator6.next();\n        if (_i6.done) break;\n        _ref6 = _i6.value;\n      }\n\n      var chain = _ref6;\n\n      var flags = chain.defaultFlags;\n\n      for (var _iterator7 = chain.subtables, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _getIterator(_iterator7);;) {\n        var _ref7;\n\n        if (_isArray7) {\n          if (_i7 >= _iterator7.length) break;\n          _ref7 = _iterator7[_i7++];\n        } else {\n          _i7 = _iterator7.next();\n          if (_i7.done) break;\n          _ref7 = _i7.value;\n        }\n\n        var subtable = _ref7;\n\n        if (subtable.subFeatureFlags & flags) {\n          this.generateInputsForSubtable(subtable);\n        }\n      }\n    }\n  };\n\n  AATMorxProcessor.prototype.generateInputsForSubtable = function generateInputsForSubtable(subtable) {\n    var _this = this;\n\n    // Currently, only supporting ligature subtables.\n    if (subtable.type !== 2) {\n      return;\n    }\n\n    var reverse = !!(subtable.coverage & REVERSE_DIRECTION);\n    if (reverse) {\n      throw new Error('Reverse subtable, not supported.');\n    }\n\n    this.subtable = subtable;\n    this.ligatureStack = [];\n\n    var stateMachine = this.getStateMachine(subtable);\n    var process = this.getProcessor();\n\n    var input = [];\n    var stack = [];\n    this.glyphs = [];\n\n    stateMachine.traverse({\n      enter: function enter(glyph, entry) {\n        var glyphs = _this.glyphs;\n        stack.push({\n          glyphs: glyphs.slice(),\n          ligatureStack: _this.ligatureStack.slice()\n        });\n\n        // Add glyph to input and glyphs to process.\n        var g = _this.font.getGlyph(glyph);\n        input.push(g);\n        glyphs.push(input[input.length - 1]);\n\n        // Process ligature substitution\n        process(glyphs[glyphs.length - 1], entry, glyphs.length - 1);\n\n        // Add input to result if only one matching (non-deleted) glyph remains.\n        var count = 0;\n        var found = 0;\n        for (var i = 0; i < glyphs.length && count <= 1; i++) {\n          if (glyphs[i].id !== 0xffff) {\n            count++;\n            found = glyphs[i].id;\n          }\n        }\n\n        if (count === 1) {\n          var result = input.map(function (g) {\n            return g.id;\n          });\n          var _cache = _this.inputCache[found];\n          if (_cache) {\n            _cache.push(result);\n          } else {\n            _this.inputCache[found] = [result];\n          }\n        }\n      },\n\n      exit: function exit() {\n        var _stack$pop = stack.pop();\n\n        _this.glyphs = _stack$pop.glyphs;\n        _this.ligatureStack = _stack$pop.ligatureStack;\n\n        input.pop();\n      }\n    });\n  };\n\n  return AATMorxProcessor;\n}(), (_applyDecoratedDescriptor$2(_class$2.prototype, 'getStateMachine', [cache], _Object$getOwnPropertyDescriptor(_class$2.prototype, 'getStateMachine'), _class$2.prototype)), _class$2);\n\nfunction swap(glyphs, rangeA, rangeB) {\n  var reverseA = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var reverseB = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  var end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n  if (reverseB) {\n    end.reverse();\n  }\n\n  var start = glyphs.splice.apply(glyphs, [rangeA[0], rangeA[1]].concat(end));\n  if (reverseA) {\n    start.reverse();\n  }\n\n  glyphs.splice.apply(glyphs, [rangeB[0] - (rangeA[1] - 1), 0].concat(start));\n  return glyphs;\n}\n\nfunction reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n  var length = lastGlyph - firstGlyph + 1;\n  switch (verb) {\n    case 0:\n      // no change\n      return glyphs;\n\n    case 1:\n      // Ax => xA\n      return swap(glyphs, [firstGlyph, 1], [lastGlyph, 0]);\n\n    case 2:\n      // xD => Dx\n      return swap(glyphs, [firstGlyph, 0], [lastGlyph, 1]);\n\n    case 3:\n      // AxD => DxA\n      return swap(glyphs, [firstGlyph, 1], [lastGlyph, 1]);\n\n    case 4:\n      // ABx => xAB\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0]);\n\n    case 5:\n      // ABx => xBA\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0], true, false);\n\n    case 6:\n      // xCD => CDx\n      return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2]);\n\n    case 7:\n      // xCD => DCx\n      return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2], false, true);\n\n    case 8:\n      // AxCD => CDxA\n      return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2]);\n\n    case 9:\n      // AxCD => DCxA\n      return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2], false, true);\n\n    case 10:\n      // ABxD => DxAB\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1]);\n\n    case 11:\n      // ABxD => DxBA\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1], true, false);\n\n    case 12:\n      // ABxCD => CDxAB\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2]);\n\n    case 13:\n      // ABxCD => CDxBA\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, false);\n\n    case 14:\n      // ABxCD => DCxAB\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], false, true);\n\n    case 15:\n      // ABxCD => DCxBA\n      return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, true);\n\n    default:\n      throw new Error('Unknown verb: ' + verb);\n  }\n}\n\nvar AATLayoutEngine = function () {\n  function AATLayoutEngine(font) {\n    _classCallCheck(this, AATLayoutEngine);\n\n    this.font = font;\n    this.morxProcessor = new AATMorxProcessor(font);\n    this.fallbackPosition = false;\n  }\n\n  AATLayoutEngine.prototype.substitute = function substitute(glyphRun) {\n    // AAT expects the glyphs to be in visual order prior to morx processing,\n    // so reverse the glyphs if the script is right-to-left.\n    if (glyphRun.direction === 'rtl') {\n      glyphRun.glyphs.reverse();\n    }\n\n    this.morxProcessor.process(glyphRun.glyphs, mapOTToAAT(glyphRun.features));\n  };\n\n  AATLayoutEngine.prototype.getAvailableFeatures = function getAvailableFeatures(script, language) {\n    return mapAATToOT(this.morxProcessor.getSupportedFeatures());\n  };\n\n  AATLayoutEngine.prototype.stringsForGlyph = function stringsForGlyph(gid) {\n    var glyphStrings = this.morxProcessor.generateInputs(gid);\n    var result = new _Set();\n\n    for (var _iterator = glyphStrings, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var glyphs = _ref;\n\n      this._addStrings(glyphs, 0, result, '');\n    }\n\n    return result;\n  };\n\n  AATLayoutEngine.prototype._addStrings = function _addStrings(glyphs, index, strings, string) {\n    var codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n\n    for (var _iterator2 = codePoints, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var codePoint = _ref2;\n\n      var s = string + _String$fromCodePoint(codePoint);\n      if (index < glyphs.length - 1) {\n        this._addStrings(glyphs, index + 1, strings, s);\n      } else {\n        strings.add(s);\n      }\n    }\n  };\n\n  return AATLayoutEngine;\n}();\n\n/**\n * ShapingPlans are used by the OpenType shapers to store which\n * features should by applied, and in what order to apply them.\n * The features are applied in groups called stages. A feature\n * can be applied globally to all glyphs, or locally to only\n * specific glyphs.\n *\n * @private\n */\n\nvar ShapingPlan = function () {\n  function ShapingPlan(font, script, direction) {\n    _classCallCheck(this, ShapingPlan);\n\n    this.font = font;\n    this.script = script;\n    this.direction = direction;\n    this.stages = [];\n    this.globalFeatures = {};\n    this.allFeatures = {};\n  }\n\n  /**\n   * Adds the given features to the last stage.\n   * Ignores features that have already been applied.\n   */\n\n\n  ShapingPlan.prototype._addFeatures = function _addFeatures(features, global) {\n    var stageIndex = this.stages.length - 1;\n    var stage = this.stages[stageIndex];\n    for (var _iterator = features, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var feature = _ref;\n\n      if (this.allFeatures[feature] == null) {\n        stage.push(feature);\n        this.allFeatures[feature] = stageIndex;\n\n        if (global) {\n          this.globalFeatures[feature] = true;\n        }\n      }\n    }\n  };\n\n  /**\n   * Add features to the last stage\n   */\n\n\n  ShapingPlan.prototype.add = function add(arg) {\n    var global = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    if (this.stages.length === 0) {\n      this.stages.push([]);\n    }\n\n    if (typeof arg === 'string') {\n      arg = [arg];\n    }\n\n    if (Array.isArray(arg)) {\n      this._addFeatures(arg, global);\n    } else if ((typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'object') {\n      this._addFeatures(arg.global || [], true);\n      this._addFeatures(arg.local || [], false);\n    } else {\n      throw new Error(\"Unsupported argument to ShapingPlan#add\");\n    }\n  };\n\n  /**\n   * Add a new stage\n   */\n\n\n  ShapingPlan.prototype.addStage = function addStage(arg, global) {\n    if (typeof arg === 'function') {\n      this.stages.push(arg, []);\n    } else {\n      this.stages.push([]);\n      this.add(arg, global);\n    }\n  };\n\n  ShapingPlan.prototype.setFeatureOverrides = function setFeatureOverrides(features) {\n    if (Array.isArray(features)) {\n      this.add(features);\n    } else if ((typeof features === 'undefined' ? 'undefined' : _typeof(features)) === 'object') {\n      for (var tag in features) {\n        if (features[tag]) {\n          this.add(tag);\n        } else if (this.allFeatures[tag] != null) {\n          var stage = this.stages[this.allFeatures[tag]];\n          stage.splice(stage.indexOf(tag), 1);\n          delete this.allFeatures[tag];\n          delete this.globalFeatures[tag];\n        }\n      }\n    }\n  };\n\n  /**\n   * Assigns the global features to the given glyphs\n   */\n\n\n  ShapingPlan.prototype.assignGlobalFeatures = function assignGlobalFeatures(glyphs) {\n    for (var _iterator2 = glyphs, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var glyph = _ref2;\n\n      for (var feature in this.globalFeatures) {\n        glyph.features[feature] = true;\n      }\n    }\n  };\n\n  /**\n   * Executes the planned stages using the given OTProcessor\n   */\n\n\n  ShapingPlan.prototype.process = function process(processor, glyphs, positions) {\n    for (var _iterator3 = this.stages, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n      var _ref3;\n\n      if (_isArray3) {\n        if (_i3 >= _iterator3.length) break;\n        _ref3 = _iterator3[_i3++];\n      } else {\n        _i3 = _iterator3.next();\n        if (_i3.done) break;\n        _ref3 = _i3.value;\n      }\n\n      var stage = _ref3;\n\n      if (typeof stage === 'function') {\n        if (!positions) {\n          stage(this.font, glyphs, this);\n        }\n      } else if (stage.length > 0) {\n        processor.applyFeatures(stage, glyphs, positions);\n      }\n    }\n  };\n\n  return ShapingPlan;\n}();\n\nvar _class$4;\nvar _temp;\nvar VARIATION_FEATURES = ['rvrn'];\nvar COMMON_FEATURES = ['ccmp', 'locl', 'rlig', 'mark', 'mkmk'];\nvar FRACTIONAL_FEATURES = ['frac', 'numr', 'dnom'];\nvar HORIZONTAL_FEATURES = ['calt', 'clig', 'liga', 'rclt', 'curs', 'kern'];\nvar DIRECTIONAL_FEATURES = {\n  ltr: ['ltra', 'ltrm'],\n  rtl: ['rtla', 'rtlm']\n};\n\nvar DefaultShaper = (_temp = _class$4 = function () {\n  function DefaultShaper() {\n    _classCallCheck(this, DefaultShaper);\n  }\n\n  DefaultShaper.plan = function plan(_plan, glyphs, features) {\n    // Plan the features we want to apply\n    this.planPreprocessing(_plan);\n    this.planFeatures(_plan);\n    this.planPostprocessing(_plan, features);\n\n    // Assign the global features to all the glyphs\n    _plan.assignGlobalFeatures(glyphs);\n\n    // Assign local features to glyphs\n    this.assignFeatures(_plan, glyphs);\n  };\n\n  DefaultShaper.planPreprocessing = function planPreprocessing(plan) {\n    plan.add({\n      global: [].concat(VARIATION_FEATURES, DIRECTIONAL_FEATURES[plan.direction]),\n      local: FRACTIONAL_FEATURES\n    });\n  };\n\n  DefaultShaper.planFeatures = function planFeatures(plan) {\n    // Do nothing by default. Let subclasses override this.\n  };\n\n  DefaultShaper.planPostprocessing = function planPostprocessing(plan, userFeatures) {\n    plan.add([].concat(COMMON_FEATURES, HORIZONTAL_FEATURES));\n    plan.setFeatureOverrides(userFeatures);\n  };\n\n  DefaultShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n    // Enable contextual fractions\n    for (var i = 0; i < glyphs.length; i++) {\n      var glyph = glyphs[i];\n      if (glyph.codePoints[0] === 0x2044) {\n        // fraction slash\n        var start = i;\n        var end = i + 1;\n\n        // Apply numerator\n        while (start > 0 && unicode.isDigit(glyphs[start - 1].codePoints[0])) {\n          glyphs[start - 1].features.numr = true;\n          glyphs[start - 1].features.frac = true;\n          start--;\n        }\n\n        // Apply denominator\n        while (end < glyphs.length && unicode.isDigit(glyphs[end].codePoints[0])) {\n          glyphs[end].features.dnom = true;\n          glyphs[end].features.frac = true;\n          end++;\n        }\n\n        // Apply fraction slash\n        glyph.features.frac = true;\n        i = end - 1;\n      }\n    }\n  };\n\n  return DefaultShaper;\n}(), _class$4.zeroMarkWidths = 'AFTER_GPOS', _temp);\n\nvar trie = new UnicodeTrie(Buffer(\"AAHwAAAAAAAAADgAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==\",\"base64\"));\nvar FEATURES = ['isol', 'fina', 'fin2', 'fin3', 'medi', 'med2', 'init'];\n\nvar ShapingClasses = {\n  Non_Joining: 0,\n  Left_Joining: 1,\n  Right_Joining: 2,\n  Dual_Joining: 3,\n  Join_Causing: 3,\n  ALAPH: 4,\n  'DALATH RISH': 5,\n  Transparent: 6\n};\n\nvar ISOL = 'isol';\nvar FINA = 'fina';\nvar FIN2 = 'fin2';\nvar FIN3 = 'fin3';\nvar MEDI = 'medi';\nvar MED2 = 'med2';\nvar INIT = 'init';\nvar NONE = null;\n\n// Each entry is [prevAction, curAction, nextState]\nvar STATE_TABLE = [\n//   Non_Joining,        Left_Joining,       Right_Joining,     Dual_Joining,           ALAPH,            DALATH RISH\n// State 0: prev was U,  not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 6]],\n\n// State 1: prev was R or ISOL/ALAPH,  not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, FIN2, 5], [NONE, ISOL, 6]],\n\n// State 2: prev was D/L in ISOL form,  willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [INIT, FINA, 1], [INIT, FINA, 3], [INIT, FINA, 4], [INIT, FINA, 6]],\n\n// State 3: prev was D in FINA form,  willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [MEDI, FINA, 1], [MEDI, FINA, 3], [MEDI, FINA, 4], [MEDI, FINA, 6]],\n\n// State 4: prev was FINA ALAPH,  not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [MED2, ISOL, 1], [MED2, ISOL, 2], [MED2, FIN2, 5], [MED2, ISOL, 6]],\n\n// State 5: prev was FIN2/FIN3 ALAPH,  not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [ISOL, ISOL, 1], [ISOL, ISOL, 2], [ISOL, FIN2, 5], [ISOL, ISOL, 6]],\n\n// State 6: prev was DALATH/RISH,  not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, FIN3, 5], [NONE, ISOL, 6]]];\n\n/**\n * This is a shaper for Arabic, and other cursive scripts.\n * It uses data from ArabicShaping.txt in the Unicode database,\n * compiled to a UnicodeTrie by generate-data.coffee.\n *\n * The shaping state machine was ported from Harfbuzz.\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-arabic.cc\n */\n\nvar ArabicShaper = function (_DefaultShaper) {\n  _inherits(ArabicShaper, _DefaultShaper);\n\n  function ArabicShaper() {\n    _classCallCheck(this, ArabicShaper);\n\n    return _possibleConstructorReturn(this, _DefaultShaper.apply(this, arguments));\n  }\n\n  ArabicShaper.planFeatures = function planFeatures(plan) {\n    plan.add(['ccmp', 'locl']);\n    for (var i = 0; i < FEATURES.length; i++) {\n      var feature = FEATURES[i];\n      plan.addStage(feature, false);\n    }\n\n    plan.addStage('mset');\n  };\n\n  ArabicShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n    _DefaultShaper.assignFeatures.call(this, plan, glyphs);\n\n    var prev = -1;\n    var state = 0;\n    var actions = [];\n\n    // Apply the state machine to map glyphs to features\n    for (var i = 0; i < glyphs.length; i++) {\n      var curAction = void 0,\n          prevAction = void 0;\n      var glyph = glyphs[i];\n      var type = getShapingClass(glyph.codePoints[0]);\n      if (type === ShapingClasses.Transparent) {\n        actions[i] = NONE;\n        continue;\n      }\n\n      var _STATE_TABLE$state$ty = STATE_TABLE[state][type];\n      prevAction = _STATE_TABLE$state$ty[0];\n      curAction = _STATE_TABLE$state$ty[1];\n      state = _STATE_TABLE$state$ty[2];\n\n\n      if (prevAction !== NONE && prev !== -1) {\n        actions[prev] = prevAction;\n      }\n\n      actions[i] = curAction;\n      prev = i;\n    }\n\n    // Apply the chosen features to their respective glyphs\n    for (var index = 0; index < glyphs.length; index++) {\n      var feature = void 0;\n      var glyph = glyphs[index];\n      if (feature = actions[index]) {\n        glyph.features[feature] = true;\n      }\n    }\n  };\n\n  return ArabicShaper;\n}(DefaultShaper);\n\nfunction getShapingClass(codePoint) {\n  var res = trie.get(codePoint);\n  if (res) {\n    return res - 1;\n  }\n\n  var category = unicode.getCategory(codePoint);\n  if (category === 'Mn' || category === 'Me' || category === 'Cf') {\n    return ShapingClasses.Transparent;\n  }\n\n  return ShapingClasses.Non_Joining;\n}\n\nvar GlyphIterator = function () {\n  function GlyphIterator(glyphs, options) {\n    _classCallCheck(this, GlyphIterator);\n\n    this.glyphs = glyphs;\n    this.reset(options);\n  }\n\n  GlyphIterator.prototype.reset = function reset() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n    this.options = options;\n    this.flags = options.flags || {};\n    this.markAttachmentType = options.markAttachmentType || 0;\n    this.index = index;\n  };\n\n  GlyphIterator.prototype.shouldIgnore = function shouldIgnore(glyph) {\n    return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;\n  };\n\n  GlyphIterator.prototype.move = function move(dir) {\n    this.index += dir;\n    while (0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index])) {\n      this.index += dir;\n    }\n\n    if (0 > this.index || this.index >= this.glyphs.length) {\n      return null;\n    }\n\n    return this.glyphs[this.index];\n  };\n\n  GlyphIterator.prototype.next = function next() {\n    return this.move(+1);\n  };\n\n  GlyphIterator.prototype.prev = function prev() {\n    return this.move(-1);\n  };\n\n  GlyphIterator.prototype.peek = function peek() {\n    var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n    var idx = this.index;\n    var res = this.increment(count);\n    this.index = idx;\n    return res;\n  };\n\n  GlyphIterator.prototype.peekIndex = function peekIndex() {\n    var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n    var idx = this.index;\n    this.increment(count);\n    var res = this.index;\n    this.index = idx;\n    return res;\n  };\n\n  GlyphIterator.prototype.increment = function increment() {\n    var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n    var dir = count < 0 ? -1 : 1;\n    count = Math.abs(count);\n    while (count--) {\n      this.move(dir);\n    }\n\n    return this.glyphs[this.index];\n  };\n\n  _createClass(GlyphIterator, [{\n    key: \"cur\",\n    get: function get() {\n      return this.glyphs[this.index] || null;\n    }\n  }]);\n\n  return GlyphIterator;\n}();\n\nvar DEFAULT_SCRIPTS = ['DFLT', 'dflt', 'latn'];\n\nvar OTProcessor = function () {\n  function OTProcessor(font, table) {\n    _classCallCheck(this, OTProcessor);\n\n    this.font = font;\n    this.table = table;\n\n    this.script = null;\n    this.scriptTag = null;\n\n    this.language = null;\n    this.languageTag = null;\n\n    this.features = {};\n    this.lookups = {};\n\n    // Setup variation substitutions\n    this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1;\n\n    // initialize to default script + language\n    this.selectScript();\n\n    // current context (set by applyFeatures)\n    this.glyphs = [];\n    this.positions = []; // only used by GPOS\n    this.ligatureID = 1;\n    this.currentFeature = null;\n  }\n\n  OTProcessor.prototype.findScript = function findScript(script) {\n    if (this.table.scriptList == null) {\n      return null;\n    }\n\n    if (!Array.isArray(script)) {\n      script = [script];\n    }\n\n    for (var _iterator = script, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var s = _ref;\n\n      for (var _iterator2 = this.table.scriptList, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var entry = _ref2;\n\n        if (entry.tag === s) {\n          return entry;\n        }\n      }\n    }\n\n    return null;\n  };\n\n  OTProcessor.prototype.selectScript = function selectScript(script, language, direction$$) {\n    var changed = false;\n    var entry = void 0;\n    if (!this.script || script !== this.scriptTag) {\n      entry = this.findScript(script);\n      if (!entry) {\n        entry = this.findScript(DEFAULT_SCRIPTS);\n      }\n\n      if (!entry) {\n        return this.scriptTag;\n      }\n\n      this.scriptTag = entry.tag;\n      this.script = entry.script;\n      this.language = null;\n      this.languageTag = null;\n      changed = true;\n    }\n\n    if (!direction$$ || direction$$ !== this.direction) {\n      this.direction = direction$$ || direction(script);\n    }\n\n    if (language && language.length < 4) {\n      language += ' '.repeat(4 - language.length);\n    }\n\n    if (!language || language !== this.languageTag) {\n      this.language = null;\n\n      for (var _iterator3 = this.script.langSysRecords, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref3 = _i3.value;\n        }\n\n        var lang = _ref3;\n\n        if (lang.tag === language) {\n          this.language = lang.langSys;\n          this.languageTag = lang.tag;\n          break;\n        }\n      }\n\n      if (!this.language) {\n        this.language = this.script.defaultLangSys;\n        this.languageTag = null;\n      }\n\n      changed = true;\n    }\n\n    // Build a feature lookup table\n    if (changed) {\n      this.features = {};\n      if (this.language) {\n        for (var _iterator4 = this.language.featureIndexes, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n          var _ref4;\n\n          if (_isArray4) {\n            if (_i4 >= _iterator4.length) break;\n            _ref4 = _iterator4[_i4++];\n          } else {\n            _i4 = _iterator4.next();\n            if (_i4.done) break;\n            _ref4 = _i4.value;\n          }\n\n          var featureIndex = _ref4;\n\n          var record = this.table.featureList[featureIndex];\n          var substituteFeature = this.substituteFeatureForVariations(featureIndex);\n          this.features[record.tag] = substituteFeature || record.feature;\n        }\n      }\n    }\n\n    return this.scriptTag;\n  };\n\n  OTProcessor.prototype.lookupsForFeatures = function lookupsForFeatures() {\n    var userFeatures = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    var exclude = arguments[1];\n\n    var lookups = [];\n    for (var _iterator5 = userFeatures, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\n      var _ref5;\n\n      if (_isArray5) {\n        if (_i5 >= _iterator5.length) break;\n        _ref5 = _iterator5[_i5++];\n      } else {\n        _i5 = _iterator5.next();\n        if (_i5.done) break;\n        _ref5 = _i5.value;\n      }\n\n      var tag = _ref5;\n\n      var feature = this.features[tag];\n      if (!feature) {\n        continue;\n      }\n\n      for (var _iterator6 = feature.lookupListIndexes, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\n        var _ref6;\n\n        if (_isArray6) {\n          if (_i6 >= _iterator6.length) break;\n          _ref6 = _iterator6[_i6++];\n        } else {\n          _i6 = _iterator6.next();\n          if (_i6.done) break;\n          _ref6 = _i6.value;\n        }\n\n        var lookupIndex = _ref6;\n\n        if (exclude && exclude.indexOf(lookupIndex) !== -1) {\n          continue;\n        }\n\n        lookups.push({\n          feature: tag,\n          index: lookupIndex,\n          lookup: this.table.lookupList.get(lookupIndex)\n        });\n      }\n    }\n\n    lookups.sort(function (a, b) {\n      return a.index - b.index;\n    });\n    return lookups;\n  };\n\n  OTProcessor.prototype.substituteFeatureForVariations = function substituteFeatureForVariations(featureIndex) {\n    if (this.variationsIndex === -1) {\n      return null;\n    }\n\n    var record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n    var substitutions = record.featureTableSubstitution.substitutions;\n    for (var _iterator7 = substitutions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _getIterator(_iterator7);;) {\n      var _ref7;\n\n      if (_isArray7) {\n        if (_i7 >= _iterator7.length) break;\n        _ref7 = _iterator7[_i7++];\n      } else {\n        _i7 = _iterator7.next();\n        if (_i7.done) break;\n        _ref7 = _i7.value;\n      }\n\n      var substitution = _ref7;\n\n      if (substitution.featureIndex === featureIndex) {\n        return substitution.alternateFeatureTable;\n      }\n    }\n\n    return null;\n  };\n\n  OTProcessor.prototype.findVariationsIndex = function findVariationsIndex(coords) {\n    var variations = this.table.featureVariations;\n    if (!variations) {\n      return -1;\n    }\n\n    var records = variations.featureVariationRecords;\n    for (var i = 0; i < records.length; i++) {\n      var conditions = records[i].conditionSet.conditionTable;\n      if (this.variationConditionsMatch(conditions, coords)) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  OTProcessor.prototype.variationConditionsMatch = function variationConditionsMatch(conditions, coords) {\n    return conditions.every(function (condition) {\n      var coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n      return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n    });\n  };\n\n  OTProcessor.prototype.applyFeatures = function applyFeatures(userFeatures, glyphs, advances) {\n    var lookups = this.lookupsForFeatures(userFeatures);\n    this.applyLookups(lookups, glyphs, advances);\n  };\n\n  OTProcessor.prototype.applyLookups = function applyLookups(lookups, glyphs, positions) {\n    this.glyphs = glyphs;\n    this.positions = positions;\n    this.glyphIterator = new GlyphIterator(glyphs);\n\n    for (var _iterator8 = lookups, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _getIterator(_iterator8);;) {\n      var _ref8;\n\n      if (_isArray8) {\n        if (_i8 >= _iterator8.length) break;\n        _ref8 = _iterator8[_i8++];\n      } else {\n        _i8 = _iterator8.next();\n        if (_i8.done) break;\n        _ref8 = _i8.value;\n      }\n\n      var _ref9 = _ref8,\n          feature = _ref9.feature,\n          lookup = _ref9.lookup;\n\n      this.currentFeature = feature;\n      this.glyphIterator.reset(lookup.flags);\n\n      while (this.glyphIterator.index < glyphs.length) {\n        if (!(feature in this.glyphIterator.cur.features)) {\n          this.glyphIterator.next();\n          continue;\n        }\n\n        for (var _iterator9 = lookup.subTables, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _getIterator(_iterator9);;) {\n          var _ref10;\n\n          if (_isArray9) {\n            if (_i9 >= _iterator9.length) break;\n            _ref10 = _iterator9[_i9++];\n          } else {\n            _i9 = _iterator9.next();\n            if (_i9.done) break;\n            _ref10 = _i9.value;\n          }\n\n          var table = _ref10;\n\n          var res = this.applyLookup(lookup.lookupType, table);\n          if (res) {\n            break;\n          }\n        }\n\n        this.glyphIterator.next();\n      }\n    }\n  };\n\n  OTProcessor.prototype.applyLookup = function applyLookup(lookup, table) {\n    throw new Error(\"applyLookup must be implemented by subclasses\");\n  };\n\n  OTProcessor.prototype.applyLookupList = function applyLookupList(lookupRecords) {\n    var options = this.glyphIterator.options;\n    var glyphIndex = this.glyphIterator.index;\n\n    for (var _iterator10 = lookupRecords, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _getIterator(_iterator10);;) {\n      var _ref11;\n\n      if (_isArray10) {\n        if (_i10 >= _iterator10.length) break;\n        _ref11 = _iterator10[_i10++];\n      } else {\n        _i10 = _iterator10.next();\n        if (_i10.done) break;\n        _ref11 = _i10.value;\n      }\n\n      var lookupRecord = _ref11;\n\n      // Reset flags and find glyph index for this lookup record\n      this.glyphIterator.reset(options, glyphIndex);\n      this.glyphIterator.increment(lookupRecord.sequenceIndex);\n\n      // Get the lookup and setup flags for subtables\n      var lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n      this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);\n\n      // Apply lookup subtables until one matches\n      for (var _iterator11 = lookup.subTables, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _getIterator(_iterator11);;) {\n        var _ref12;\n\n        if (_isArray11) {\n          if (_i11 >= _iterator11.length) break;\n          _ref12 = _iterator11[_i11++];\n        } else {\n          _i11 = _iterator11.next();\n          if (_i11.done) break;\n          _ref12 = _i11.value;\n        }\n\n        var table = _ref12;\n\n        if (this.applyLookup(lookup.lookupType, table)) {\n          break;\n        }\n      }\n    }\n\n    this.glyphIterator.reset(options, glyphIndex);\n    return true;\n  };\n\n  OTProcessor.prototype.coverageIndex = function coverageIndex(coverage, glyph) {\n    if (glyph == null) {\n      glyph = this.glyphIterator.cur.id;\n    }\n\n    switch (coverage.version) {\n      case 1:\n        return coverage.glyphs.indexOf(glyph);\n\n      case 2:\n        for (var _iterator12 = coverage.rangeRecords, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _getIterator(_iterator12);;) {\n          var _ref13;\n\n          if (_isArray12) {\n            if (_i12 >= _iterator12.length) break;\n            _ref13 = _iterator12[_i12++];\n          } else {\n            _i12 = _iterator12.next();\n            if (_i12.done) break;\n            _ref13 = _i12.value;\n          }\n\n          var range = _ref13;\n\n          if (range.start <= glyph && glyph <= range.end) {\n            return range.startCoverageIndex + glyph - range.start;\n          }\n        }\n\n        break;\n    }\n\n    return -1;\n  };\n\n  OTProcessor.prototype.match = function match(sequenceIndex, sequence, fn, matched) {\n    var pos = this.glyphIterator.index;\n    var glyph = this.glyphIterator.increment(sequenceIndex);\n    var idx = 0;\n\n    while (idx < sequence.length && glyph && fn(sequence[idx], glyph)) {\n      if (matched) {\n        matched.push(this.glyphIterator.index);\n      }\n\n      idx++;\n      glyph = this.glyphIterator.next();\n    }\n\n    this.glyphIterator.index = pos;\n    if (idx < sequence.length) {\n      return false;\n    }\n\n    return matched || true;\n  };\n\n  OTProcessor.prototype.sequenceMatches = function sequenceMatches(sequenceIndex, sequence) {\n    return this.match(sequenceIndex, sequence, function (component, glyph) {\n      return component === glyph.id;\n    });\n  };\n\n  OTProcessor.prototype.sequenceMatchIndices = function sequenceMatchIndices(sequenceIndex, sequence) {\n    var _this = this;\n\n    return this.match(sequenceIndex, sequence, function (component, glyph) {\n      // If the current feature doesn't apply to this glyph,\n      if (!(_this.currentFeature in glyph.features)) {\n        return false;\n      }\n\n      return component === glyph.id;\n    }, []);\n  };\n\n  OTProcessor.prototype.coverageSequenceMatches = function coverageSequenceMatches(sequenceIndex, sequence) {\n    var _this2 = this;\n\n    return this.match(sequenceIndex, sequence, function (coverage, glyph) {\n      return _this2.coverageIndex(coverage, glyph.id) >= 0;\n    });\n  };\n\n  OTProcessor.prototype.getClassID = function getClassID(glyph, classDef) {\n    switch (classDef.version) {\n      case 1:\n        // Class array\n        var i = glyph - classDef.startGlyph;\n        if (i >= 0 && i < classDef.classValueArray.length) {\n          return classDef.classValueArray[i];\n        }\n\n        break;\n\n      case 2:\n        for (var _iterator13 = classDef.classRangeRecord, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _getIterator(_iterator13);;) {\n          var _ref14;\n\n          if (_isArray13) {\n            if (_i13 >= _iterator13.length) break;\n            _ref14 = _iterator13[_i13++];\n          } else {\n            _i13 = _iterator13.next();\n            if (_i13.done) break;\n            _ref14 = _i13.value;\n          }\n\n          var range = _ref14;\n\n          if (range.start <= glyph && glyph <= range.end) {\n            return range.class;\n          }\n        }\n\n        break;\n    }\n\n    return 0;\n  };\n\n  OTProcessor.prototype.classSequenceMatches = function classSequenceMatches(sequenceIndex, sequence, classDef) {\n    var _this3 = this;\n\n    return this.match(sequenceIndex, sequence, function (classID, glyph) {\n      return classID === _this3.getClassID(glyph.id, classDef);\n    });\n  };\n\n  OTProcessor.prototype.applyContext = function applyContext(table) {\n    switch (table.version) {\n      case 1:\n        var index = this.coverageIndex(table.coverage);\n        if (index === -1) {\n          return false;\n        }\n\n        var set = table.ruleSets[index];\n        for (var _iterator14 = set, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _getIterator(_iterator14);;) {\n          var _ref15;\n\n          if (_isArray14) {\n            if (_i14 >= _iterator14.length) break;\n            _ref15 = _iterator14[_i14++];\n          } else {\n            _i14 = _iterator14.next();\n            if (_i14.done) break;\n            _ref15 = _i14.value;\n          }\n\n          var rule = _ref15;\n\n          if (this.sequenceMatches(1, rule.input)) {\n            return this.applyLookupList(rule.lookupRecords);\n          }\n        }\n\n        break;\n\n      case 2:\n        if (this.coverageIndex(table.coverage) === -1) {\n          return false;\n        }\n\n        index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n        if (index === -1) {\n          return false;\n        }\n\n        set = table.classSet[index];\n        for (var _iterator15 = set, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _getIterator(_iterator15);;) {\n          var _ref16;\n\n          if (_isArray15) {\n            if (_i15 >= _iterator15.length) break;\n            _ref16 = _iterator15[_i15++];\n          } else {\n            _i15 = _iterator15.next();\n            if (_i15.done) break;\n            _ref16 = _i15.value;\n          }\n\n          var _rule = _ref16;\n\n          if (this.classSequenceMatches(1, _rule.classes, table.classDef)) {\n            return this.applyLookupList(_rule.lookupRecords);\n          }\n        }\n\n        break;\n\n      case 3:\n        if (this.coverageSequenceMatches(0, table.coverages)) {\n          return this.applyLookupList(table.lookupRecords);\n        }\n\n        break;\n    }\n\n    return false;\n  };\n\n  OTProcessor.prototype.applyChainingContext = function applyChainingContext(table) {\n    switch (table.version) {\n      case 1:\n        var index = this.coverageIndex(table.coverage);\n        if (index === -1) {\n          return false;\n        }\n\n        var set = table.chainRuleSets[index];\n        for (var _iterator16 = set, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _getIterator(_iterator16);;) {\n          var _ref17;\n\n          if (_isArray16) {\n            if (_i16 >= _iterator16.length) break;\n            _ref17 = _iterator16[_i16++];\n          } else {\n            _i16 = _iterator16.next();\n            if (_i16.done) break;\n            _ref17 = _i16.value;\n          }\n\n          var rule = _ref17;\n\n          if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) {\n            return this.applyLookupList(rule.lookupRecords);\n          }\n        }\n\n        break;\n\n      case 2:\n        if (this.coverageIndex(table.coverage) === -1) {\n          return false;\n        }\n\n        index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n        var rules = table.chainClassSet[index];\n        if (!rules) {\n          return false;\n        }\n\n        for (var _iterator17 = rules, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _getIterator(_iterator17);;) {\n          var _ref18;\n\n          if (_isArray17) {\n            if (_i17 >= _iterator17.length) break;\n            _ref18 = _iterator17[_i17++];\n          } else {\n            _i17 = _iterator17.next();\n            if (_i17.done) break;\n            _ref18 = _i17.value;\n          }\n\n          var _rule2 = _ref18;\n\n          if (this.classSequenceMatches(-_rule2.backtrack.length, _rule2.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, _rule2.input, table.inputClassDef) && this.classSequenceMatches(1 + _rule2.input.length, _rule2.lookahead, table.lookaheadClassDef)) {\n            return this.applyLookupList(_rule2.lookupRecords);\n          }\n        }\n\n        break;\n\n      case 3:\n        if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) {\n          return this.applyLookupList(table.lookupRecords);\n        }\n\n        break;\n    }\n\n    return false;\n  };\n\n  return OTProcessor;\n}();\n\nvar GlyphInfo = function () {\n  function GlyphInfo(font, id) {\n    var codePoints = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    var features = arguments[3];\n\n    _classCallCheck(this, GlyphInfo);\n\n    this._font = font;\n    this.codePoints = codePoints;\n    this.id = id;\n\n    this.features = {};\n    if (Array.isArray(features)) {\n      for (var i = 0; i < features.length; i++) {\n        var feature = features[i];\n        this.features[feature] = true;\n      }\n    } else if ((typeof features === 'undefined' ? 'undefined' : _typeof(features)) === 'object') {\n      _Object$assign(this.features, features);\n    }\n\n    this.ligatureID = null;\n    this.ligatureComponent = null;\n    this.isLigated = false;\n    this.cursiveAttachment = null;\n    this.markAttachment = null;\n    this.shaperInfo = null;\n    this.substituted = false;\n    this.isMultiplied = false;\n  }\n\n  GlyphInfo.prototype.copy = function copy() {\n    return new GlyphInfo(this._font, this.id, this.codePoints, this.features);\n  };\n\n  _createClass(GlyphInfo, [{\n    key: 'id',\n    get: function get() {\n      return this._id;\n    },\n    set: function set(id) {\n      this._id = id;\n      this.substituted = true;\n\n      var GDEF = this._font.GDEF;\n      if (GDEF && GDEF.glyphClassDef) {\n        // TODO: clean this up\n        var classID = OTProcessor.prototype.getClassID(id, GDEF.glyphClassDef);\n        this.isBase = classID === 1;\n        this.isLigature = classID === 2;\n        this.isMark = classID === 3;\n        this.markAttachmentType = GDEF.markAttachClassDef ? OTProcessor.prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n      } else {\n        this.isMark = this.codePoints.length > 0 && this.codePoints.every(unicode.isMark);\n        this.isBase = !this.isMark;\n        this.isLigature = this.codePoints.length > 1;\n        this.markAttachmentType = 0;\n      }\n    }\n  }]);\n\n  return GlyphInfo;\n}();\n\nvar _class$5;\nvar _temp$1;\n/**\n * This is a shaper for the Hangul script, used by the Korean language.\n * It does the following:\n *   - decompose if unsupported by the font:\n *     <LV>   -> <L,V>\n *     <LVT>  -> <L,V,T>\n *     <LV,T> -> <L,V,T>\n *\n *   - compose if supported by the font:\n *     <L,V>   -> <LV>\n *     <L,V,T> -> <LVT>\n *     <LV,T>  -> <LVT>\n *\n *   - reorder tone marks (S is any valid syllable):\n *     <S, M> -> <M, S>\n *\n *   - apply ljmo, vjmo, and tjmo OpenType features to decomposed Jamo sequences.\n *\n * This logic is based on the following documents:\n *   - http://www.microsoft.com/typography/OpenTypeDev/hangul/intro.htm\n *   - http://ktug.org/~nomos/harfbuzz-hangul/hangulshaper.pdf\n */\nvar HangulShaper = (_temp$1 = _class$5 = function (_DefaultShaper) {\n  _inherits(HangulShaper, _DefaultShaper);\n\n  function HangulShaper() {\n    _classCallCheck(this, HangulShaper);\n\n    return _possibleConstructorReturn(this, _DefaultShaper.apply(this, arguments));\n  }\n\n  HangulShaper.planFeatures = function planFeatures(plan) {\n    plan.add(['ljmo', 'vjmo', 'tjmo'], false);\n  };\n\n  HangulShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n    var state = 0;\n    var i = 0;\n    while (i < glyphs.length) {\n      var action = void 0;\n      var glyph = glyphs[i];\n      var code = glyph.codePoints[0];\n      var type = getType(code);\n\n      var _STATE_TABLE$state$ty = STATE_TABLE$1[state][type];\n      action = _STATE_TABLE$state$ty[0];\n      state = _STATE_TABLE$state$ty[1];\n\n\n      switch (action) {\n        case DECOMPOSE:\n          // Decompose the composed syllable if it is not supported by the font.\n          if (!plan.font.hasGlyphForCodePoint(code)) {\n            i = decompose(glyphs, i, plan.font);\n          }\n          break;\n\n        case COMPOSE:\n          // Found a decomposed syllable. Try to compose if supported by the font.\n          i = compose(glyphs, i, plan.font);\n          break;\n\n        case TONE_MARK:\n          // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n          reorderToneMark(glyphs, i, plan.font);\n          break;\n\n        case INVALID:\n          // Tone mark has no valid syllable to attach to, so insert a dotted circle\n          i = insertDottedCircle(glyphs, i, plan.font);\n          break;\n      }\n\n      i++;\n    }\n  };\n\n  return HangulShaper;\n}(DefaultShaper), _class$5.zeroMarkWidths = 'NONE', _temp$1);\nvar HANGUL_BASE = 0xac00;\nvar HANGUL_END = 0xd7a4;\nvar HANGUL_COUNT = HANGUL_END - HANGUL_BASE + 1;\nvar L_BASE = 0x1100; // lead\nvar V_BASE = 0x1161; // vowel\nvar T_BASE = 0x11a7; // trail\nvar L_COUNT = 19;\nvar V_COUNT = 21;\nvar T_COUNT = 28;\nvar L_END = L_BASE + L_COUNT - 1;\nvar V_END = V_BASE + V_COUNT - 1;\nvar T_END = T_BASE + T_COUNT - 1;\nvar DOTTED_CIRCLE = 0x25cc;\n\nvar isL = function isL(code) {\n  return 0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\n};\nvar isV = function isV(code) {\n  return 0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\n};\nvar isT = function isT(code) {\n  return 0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\n};\nvar isTone = function isTone(code) {\n  return 0x302e <= code && code <= 0x302f;\n};\nvar isLVT = function isLVT(code) {\n  return HANGUL_BASE <= code && code <= HANGUL_END;\n};\nvar isLV = function isLV(code) {\n  return code - HANGUL_BASE < HANGUL_COUNT && (code - HANGUL_BASE) % T_COUNT === 0;\n};\nvar isCombiningL = function isCombiningL(code) {\n  return L_BASE <= code && code <= L_END;\n};\nvar isCombiningV = function isCombiningV(code) {\n  return V_BASE <= code && code <= V_END;\n};\nvar isCombiningT = function isCombiningT(code) {\n  return T_BASE + 1 && 1 <= code && code <= T_END;\n};\n\n// Character categories\nvar X = 0; // Other character\nvar L = 1; // Leading consonant\nvar V = 2; // Medial vowel\nvar T = 3; // Trailing consonant\nvar LV = 4; // Composed <LV> syllable\nvar LVT = 5; // Composed <LVT> syllable\nvar M = 6; // Tone mark\n\n// This function classifies a character using the above categories.\nfunction getType(code) {\n  if (isL(code)) {\n    return L;\n  }\n  if (isV(code)) {\n    return V;\n  }\n  if (isT(code)) {\n    return T;\n  }\n  if (isLV(code)) {\n    return LV;\n  }\n  if (isLVT(code)) {\n    return LVT;\n  }\n  if (isTone(code)) {\n    return M;\n  }\n  return X;\n}\n\n// State machine actions\nvar NO_ACTION = 0;\nvar DECOMPOSE = 1;\nvar COMPOSE = 2;\nvar TONE_MARK = 4;\nvar INVALID = 5;\n\n// Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\nvar STATE_TABLE$1 = [\n//       X                 L                 V                T                  LV                LVT               M\n// State 0: start state\n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]],\n\n// State 1: <L>\n[[NO_ACTION, 0], [NO_ACTION, 1], [COMPOSE, 2], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]],\n\n// State 2: <L,V> or <LV>\n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [COMPOSE, 3], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]],\n\n// State 3: <L,V,T> or <LVT>\n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]]];\n\nfunction getGlyph(font, code, features) {\n  return new GlyphInfo(font, font.glyphForCodePoint(code).id, [code], features);\n}\n\nfunction decompose(glyphs, i, font) {\n  var glyph = glyphs[i];\n  var code = glyph.codePoints[0];\n\n  var s = code - HANGUL_BASE;\n  var t = T_BASE + s % T_COUNT;\n  s = s / T_COUNT | 0;\n  var l = L_BASE + s / V_COUNT | 0;\n  var v = V_BASE + s % V_COUNT;\n\n  // Don't decompose if all of the components are not available\n  if (!font.hasGlyphForCodePoint(l) || !font.hasGlyphForCodePoint(v) || t !== T_BASE && !font.hasGlyphForCodePoint(t)) {\n    return i;\n  }\n\n  // Replace the current glyph with decomposed L, V, and T glyphs,\n  // and apply the proper OpenType features to each component.\n  var ljmo = getGlyph(font, l, glyph.features);\n  ljmo.features.ljmo = true;\n\n  var vjmo = getGlyph(font, v, glyph.features);\n  vjmo.features.vjmo = true;\n\n  var insert = [ljmo, vjmo];\n\n  if (t > T_BASE) {\n    var tjmo = getGlyph(font, t, glyph.features);\n    tjmo.features.tjmo = true;\n    insert.push(tjmo);\n  }\n\n  glyphs.splice.apply(glyphs, [i, 1].concat(insert));\n  return i + insert.length - 1;\n}\n\nfunction compose(glyphs, i, font) {\n  var glyph = glyphs[i];\n  var code = glyphs[i].codePoints[0];\n  var type = getType(code);\n\n  var prev = glyphs[i - 1].codePoints[0];\n  var prevType = getType(prev);\n\n  // Figure out what type of syllable we're dealing with\n  var lv = void 0,\n      ljmo = void 0,\n      vjmo = void 0,\n      tjmo = void 0;\n  if (prevType === LV && type === T) {\n    // <LV,T>\n    lv = prev;\n    tjmo = glyph;\n  } else {\n    if (type === V) {\n      // <L,V>\n      ljmo = glyphs[i - 1];\n      vjmo = glyph;\n    } else {\n      // <L,V,T>\n      ljmo = glyphs[i - 2];\n      vjmo = glyphs[i - 1];\n      tjmo = glyph;\n    }\n\n    var l = ljmo.codePoints[0];\n    var v = vjmo.codePoints[0];\n\n    // Make sure L and V are combining characters\n    if (isCombiningL(l) && isCombiningV(v)) {\n      lv = HANGUL_BASE + ((l - L_BASE) * V_COUNT + (v - V_BASE)) * T_COUNT;\n    }\n  }\n\n  var t = tjmo && tjmo.codePoints[0] || T_BASE;\n  if (lv != null && (t === T_BASE || isCombiningT(t))) {\n    var s = lv + (t - T_BASE);\n\n    // Replace with a composed glyph if supported by the font,\n    // otherwise apply the proper OpenType features to each component.\n    if (font.hasGlyphForCodePoint(s)) {\n      var del = prevType === V ? 3 : 2;\n      glyphs.splice(i - del + 1, del, getGlyph(font, s, glyph.features));\n      return i - del + 1;\n    }\n  }\n\n  // Didn't compose (either a non-combining component or unsupported by font).\n  if (ljmo) {\n    ljmo.features.ljmo = true;\n  }\n  if (vjmo) {\n    vjmo.features.vjmo = true;\n  }\n  if (tjmo) {\n    tjmo.features.tjmo = true;\n  }\n\n  if (prevType === LV) {\n    // Sequence was originally <L,V>, which got combined earlier.\n    // Either the T was non-combining, or the LVT glyph wasn't supported.\n    // Decompose the glyph again and apply OT features.\n    decompose(glyphs, i - 1, font);\n    return i + 1;\n  }\n\n  return i;\n}\n\nfunction getLength(code) {\n  switch (getType(code)) {\n    case LV:\n    case LVT:\n      return 1;\n    case V:\n      return 2;\n    case T:\n      return 3;\n  }\n}\n\nfunction reorderToneMark(glyphs, i, font) {\n  var glyph = glyphs[i];\n  var code = glyphs[i].codePoints[0];\n\n  // Move tone mark to the beginning of the previous syllable, unless it is zero width\n  if (font.glyphForCodePoint(code).advanceWidth === 0) {\n    return;\n  }\n\n  var prev = glyphs[i - 1].codePoints[0];\n  var len = getLength(prev);\n\n  glyphs.splice(i, 1);\n  return glyphs.splice(i - len, 0, glyph);\n}\n\nfunction insertDottedCircle(glyphs, i, font) {\n  var glyph = glyphs[i];\n  var code = glyphs[i].codePoints[0];\n\n  if (font.hasGlyphForCodePoint(DOTTED_CIRCLE)) {\n    var dottedCircle = getGlyph(font, DOTTED_CIRCLE, glyph.features);\n\n    // If the tone mark is zero width, insert the dotted circle before, otherwise after\n    var idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n    glyphs.splice(idx, 0, dottedCircle);\n    i++;\n  }\n\n  return i;\n}\n\nvar stateTable = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 11, 12, 13, 14, 15, 16, 17], [0, 0, 0, 18, 19, 20, 21, 22, 23, 0, 24, 0, 0, 25, 26, 0, 0, 27, 0], [0, 0, 0, 28, 29, 30, 31, 32, 33, 0, 34, 0, 0, 35, 36, 0, 0, 37, 0], [0, 0, 0, 38, 5, 7, 7, 8, 9, 0, 10, 0, 0, 0, 13, 0, 0, 16, 0], [0, 39, 0, 0, 0, 40, 41, 0, 9, 0, 10, 0, 0, 0, 42, 0, 39, 0, 0], [0, 0, 0, 0, 43, 44, 44, 8, 9, 0, 0, 0, 0, 12, 43, 0, 0, 0, 0], [0, 0, 0, 0, 43, 44, 44, 8, 9, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0], [0, 0, 0, 45, 46, 47, 48, 49, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 50, 0, 0, 51, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 53, 54, 55, 56, 57, 58, 0, 59, 0, 0, 60, 61, 0, 0, 62, 0], [0, 0, 0, 4, 5, 7, 7, 8, 9, 0, 10, 0, 0, 0, 13, 0, 0, 16, 0], [0, 63, 64, 0, 0, 40, 41, 0, 9, 0, 10, 0, 0, 0, 42, 0, 63, 0, 0], [0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 11, 12, 13, 0, 2, 16, 0], [0, 0, 0, 18, 65, 20, 21, 22, 23, 0, 24, 0, 0, 25, 26, 0, 0, 27, 0], [0, 0, 0, 0, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 0, 0], [0, 0, 0, 69, 0, 70, 70, 0, 71, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 73, 19, 74, 74, 22, 23, 0, 24, 0, 0, 0, 26, 0, 0, 27, 0], [0, 75, 0, 0, 0, 76, 77, 0, 23, 0, 24, 0, 0, 0, 78, 0, 75, 0, 0], [0, 0, 0, 0, 79, 80, 80, 22, 23, 0, 0, 0, 0, 25, 79, 0, 0, 0, 0], [0, 0, 0, 18, 19, 20, 74, 22, 23, 0, 24, 0, 0, 25, 26, 0, 0, 27, 0], [0, 0, 0, 81, 82, 83, 84, 85, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 86, 0, 0, 87, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 18, 19, 74, 74, 22, 23, 0, 24, 0, 0, 0, 26, 0, 0, 27, 0], [0, 89, 90, 0, 0, 76, 77, 0, 23, 0, 24, 0, 0, 0, 78, 0, 89, 0, 0], [0, 0, 0, 0, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 0, 0], [0, 0, 0, 94, 29, 95, 31, 32, 33, 0, 34, 0, 0, 0, 36, 0, 0, 37, 0], [0, 96, 0, 0, 0, 97, 98, 0, 33, 0, 34, 0, 0, 0, 99, 0, 96, 0, 0], [0, 0, 0, 0, 100, 101, 101, 32, 33, 0, 0, 0, 0, 35, 100, 0, 0, 0, 0], [0, 0, 0, 0, 100, 101, 101, 32, 33, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0], [0, 0, 0, 102, 103, 104, 105, 106, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 107, 0, 0, 108, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 28, 29, 95, 31, 32, 33, 0, 34, 0, 0, 0, 36, 0, 0, 37, 0], [0, 110, 111, 0, 0, 97, 98, 0, 33, 0, 34, 0, 0, 0, 99, 0, 110, 0, 0], [0, 0, 0, 0, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 0, 0], [0, 0, 0, 0, 5, 7, 7, 8, 9, 0, 10, 0, 0, 0, 13, 0, 0, 16, 0], [0, 0, 0, 115, 116, 117, 118, 8, 9, 0, 10, 0, 0, 119, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 39, 0, 122, 0, 123, 123, 8, 9, 0, 10, 0, 0, 0, 42, 0, 39, 0, 0], [0, 124, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0], [0, 39, 0, 0, 0, 121, 125, 0, 9, 0, 10, 0, 0, 0, 42, 0, 39, 0, 0], [0, 0, 0, 0, 0, 126, 126, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 46, 47, 48, 49, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 47, 47, 49, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 127, 127, 49, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 128, 127, 127, 49, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 129, 130, 131, 132, 133, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 135, 54, 56, 56, 57, 58, 0, 59, 0, 0, 0, 61, 0, 0, 62, 0], [0, 136, 0, 0, 0, 137, 138, 0, 58, 0, 59, 0, 0, 0, 139, 0, 136, 0, 0], [0, 0, 0, 0, 140, 141, 141, 57, 58, 0, 0, 0, 0, 60, 140, 0, 0, 0, 0], [0, 0, 0, 0, 140, 141, 141, 57, 58, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0], [0, 0, 0, 142, 143, 144, 145, 146, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 147, 0, 0, 148, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 53, 54, 56, 56, 57, 58, 0, 59, 0, 0, 0, 61, 0, 0, 62, 0], [0, 150, 151, 0, 0, 137, 138, 0, 58, 0, 59, 0, 0, 0, 139, 0, 150, 0, 0], [0, 0, 0, 0, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 0, 0], [0, 0, 0, 155, 116, 156, 157, 8, 9, 0, 10, 0, 0, 158, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 75, 3, 4, 5, 159, 160, 8, 161, 0, 162, 0, 11, 12, 163, 0, 75, 16, 0], [0, 0, 0, 0, 0, 40, 164, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 165, 44, 44, 8, 9, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0], [0, 124, 64, 0, 0, 40, 164, 0, 9, 0, 10, 0, 0, 0, 42, 0, 124, 0, 0], [0, 0, 0, 0, 0, 70, 70, 0, 71, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 166, 0, 0, 167, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 19, 74, 74, 22, 23, 0, 24, 0, 0, 0, 26, 0, 0, 27, 0], [0, 0, 0, 0, 79, 80, 80, 22, 23, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0], [0, 0, 0, 169, 170, 171, 172, 22, 23, 0, 24, 0, 0, 173, 174, 0, 0, 27, 0], [0, 0, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 75, 0, 176, 0, 177, 177, 22, 23, 0, 24, 0, 0, 0, 78, 0, 75, 0, 0], [0, 178, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0], [0, 75, 0, 0, 0, 175, 179, 0, 23, 0, 24, 0, 0, 0, 78, 0, 75, 0, 0], [0, 0, 0, 0, 0, 180, 180, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 82, 83, 84, 85, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 83, 83, 85, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 181, 181, 85, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 182, 181, 181, 85, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 183, 184, 185, 186, 187, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 189, 170, 190, 191, 22, 23, 0, 24, 0, 0, 192, 174, 0, 0, 27, 0], [0, 0, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 76, 193, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 194, 80, 80, 22, 23, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0], [0, 178, 90, 0, 0, 76, 193, 0, 23, 0, 24, 0, 0, 0, 78, 0, 178, 0, 0], [0, 0, 0, 0, 29, 95, 31, 32, 33, 0, 34, 0, 0, 0, 36, 0, 0, 37, 0], [0, 0, 0, 0, 100, 101, 101, 32, 33, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0], [0, 0, 0, 195, 196, 197, 198, 32, 33, 0, 34, 0, 0, 199, 200, 0, 0, 37, 0], [0, 0, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 96, 0, 202, 0, 203, 203, 32, 33, 0, 34, 0, 0, 0, 99, 0, 96, 0, 0], [0, 204, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0], [0, 96, 0, 0, 0, 201, 205, 0, 33, 0, 34, 0, 0, 0, 99, 0, 96, 0, 0], [0, 0, 0, 0, 0, 206, 206, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 103, 104, 105, 106, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 104, 104, 106, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 207, 207, 106, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 208, 207, 207, 106, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 209, 210, 211, 212, 213, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 215, 196, 216, 217, 32, 33, 0, 34, 0, 0, 218, 200, 0, 0, 37, 0], [0, 0, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 97, 219, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 220, 101, 101, 32, 33, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0], [0, 204, 111, 0, 0, 97, 219, 0, 33, 0, 34, 0, 0, 0, 99, 0, 204, 0, 0], [0, 0, 0, 221, 116, 222, 222, 8, 9, 0, 10, 0, 0, 0, 120, 0, 0, 16, 0], [0, 223, 0, 0, 0, 40, 224, 0, 9, 0, 10, 0, 0, 0, 42, 0, 223, 0, 0], [0, 0, 0, 0, 225, 44, 44, 8, 9, 0, 0, 0, 0, 119, 225, 0, 0, 0, 0], [0, 0, 0, 115, 116, 117, 222, 8, 9, 0, 10, 0, 0, 119, 120, 0, 0, 16, 0], [0, 0, 0, 115, 116, 222, 222, 8, 9, 0, 10, 0, 0, 0, 120, 0, 0, 16, 0], [0, 226, 64, 0, 0, 40, 224, 0, 9, 0, 10, 0, 0, 0, 42, 0, 226, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 39, 0, 0], [0, 0, 0, 0, 0, 44, 44, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 227, 0, 228, 229, 0, 9, 0, 10, 0, 0, 230, 0, 0, 0, 0, 0], [0, 39, 0, 122, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 39, 0, 0], [0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 231, 231, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 130, 131, 132, 133, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 131, 131, 133, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 233, 233, 133, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 234, 233, 233, 133, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 235, 236, 237, 238, 239, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 54, 56, 56, 57, 58, 0, 59, 0, 0, 0, 61, 0, 0, 62, 0], [0, 0, 0, 240, 241, 242, 243, 57, 58, 0, 59, 0, 0, 244, 245, 0, 0, 62, 0], [0, 0, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 136, 0, 247, 0, 248, 248, 57, 58, 0, 59, 0, 0, 0, 139, 0, 136, 0, 0], [0, 249, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0], [0, 136, 0, 0, 0, 246, 250, 0, 58, 0, 59, 0, 0, 0, 139, 0, 136, 0, 0], [0, 0, 0, 0, 0, 251, 251, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 143, 144, 145, 146, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 144, 144, 146, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 252, 252, 146, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 253, 252, 252, 146, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 254, 255, 256, 257, 258, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 260, 241, 261, 262, 57, 58, 0, 59, 0, 0, 263, 245, 0, 0, 62, 0], [0, 0, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 137, 264, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 265, 141, 141, 57, 58, 0, 0, 0, 0, 0, 265, 0, 0, 0, 0], [0, 249, 151, 0, 0, 137, 264, 0, 58, 0, 59, 0, 0, 0, 139, 0, 249, 0, 0], [0, 0, 0, 221, 116, 222, 222, 8, 9, 0, 10, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 225, 44, 44, 8, 9, 0, 0, 0, 0, 158, 225, 0, 0, 0, 0], [0, 0, 0, 155, 116, 156, 222, 8, 9, 0, 10, 0, 0, 158, 120, 0, 0, 16, 0], [0, 0, 0, 155, 116, 222, 222, 8, 9, 0, 10, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 43, 266, 266, 8, 161, 0, 24, 0, 0, 12, 267, 0, 0, 0, 0], [0, 75, 0, 176, 43, 268, 268, 269, 161, 0, 24, 0, 0, 0, 267, 0, 75, 0, 0], [0, 0, 0, 0, 0, 270, 0, 0, 271, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0], [0, 273, 274, 0, 0, 40, 41, 0, 9, 0, 10, 0, 0, 0, 42, 0, 273, 0, 0], [0, 0, 0, 40, 0, 123, 123, 8, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 121, 275, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 277, 170, 278, 278, 22, 23, 0, 24, 0, 0, 0, 174, 0, 0, 27, 0], [0, 279, 0, 0, 0, 76, 280, 0, 23, 0, 24, 0, 0, 0, 78, 0, 279, 0, 0], [0, 0, 0, 0, 281, 80, 80, 22, 23, 0, 0, 0, 0, 173, 281, 0, 0, 0, 0], [0, 0, 0, 169, 170, 171, 278, 22, 23, 0, 24, 0, 0, 173, 174, 0, 0, 27, 0], [0, 0, 0, 169, 170, 278, 278, 22, 23, 0, 24, 0, 0, 0, 174, 0, 0, 27, 0], [0, 282, 90, 0, 0, 76, 280, 0, 23, 0, 24, 0, 0, 0, 78, 0, 282, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 75, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 75, 0, 0], [0, 0, 0, 0, 0, 80, 80, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 283, 0, 284, 285, 0, 23, 0, 24, 0, 0, 286, 0, 0, 0, 0, 0], [0, 75, 0, 176, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 75, 0, 0], [0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 287, 287, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 184, 185, 186, 187, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 185, 185, 187, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 289, 289, 187, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 290, 289, 289, 187, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 291, 292, 293, 294, 295, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 277, 170, 278, 278, 22, 23, 0, 24, 0, 0, 0, 174, 0, 0, 27, 0], [0, 0, 0, 0, 281, 80, 80, 22, 23, 0, 0, 0, 0, 192, 281, 0, 0, 0, 0], [0, 0, 0, 189, 170, 190, 278, 22, 23, 0, 24, 0, 0, 192, 174, 0, 0, 27, 0], [0, 0, 0, 189, 170, 278, 278, 22, 23, 0, 24, 0, 0, 0, 174, 0, 0, 27, 0], [0, 0, 0, 76, 0, 177, 177, 22, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 175, 296, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 297, 196, 298, 298, 32, 33, 0, 34, 0, 0, 0, 200, 0, 0, 37, 0], [0, 299, 0, 0, 0, 97, 300, 0, 33, 0, 34, 0, 0, 0, 99, 0, 299, 0, 0], [0, 0, 0, 0, 301, 101, 101, 32, 33, 0, 0, 0, 0, 199, 301, 0, 0, 0, 0], [0, 0, 0, 195, 196, 197, 298, 32, 33, 0, 34, 0, 0, 199, 200, 0, 0, 37, 0], [0, 0, 0, 195, 196, 298, 298, 32, 33, 0, 34, 0, 0, 0, 200, 0, 0, 37, 0], [0, 302, 111, 0, 0, 97, 300, 0, 33, 0, 34, 0, 0, 0, 99, 0, 302, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 96, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 96, 0, 0], [0, 0, 0, 0, 0, 101, 101, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 303, 0, 304, 305, 0, 33, 0, 34, 0, 0, 306, 0, 0, 0, 0, 0], [0, 96, 0, 202, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 96, 0, 0], [0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 307, 307, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 210, 211, 212, 213, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 211, 211, 213, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 309, 309, 213, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 310, 309, 309, 213, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 311, 312, 313, 314, 315, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 297, 196, 298, 298, 32, 33, 0, 34, 0, 0, 0, 200, 0, 0, 37, 0], [0, 0, 0, 0, 301, 101, 101, 32, 33, 0, 0, 0, 0, 218, 301, 0, 0, 0, 0], [0, 0, 0, 215, 196, 216, 298, 32, 33, 0, 34, 0, 0, 218, 200, 0, 0, 37, 0], [0, 0, 0, 215, 196, 298, 298, 32, 33, 0, 34, 0, 0, 0, 200, 0, 0, 37, 0], [0, 0, 0, 97, 0, 203, 203, 32, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 201, 316, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 116, 222, 222, 8, 9, 0, 10, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 225, 44, 44, 8, 9, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0], [0, 0, 0, 317, 318, 319, 320, 8, 9, 0, 10, 0, 0, 321, 322, 0, 0, 16, 0], [0, 223, 0, 323, 0, 123, 123, 8, 9, 0, 10, 0, 0, 0, 42, 0, 223, 0, 0], [0, 223, 0, 0, 0, 121, 324, 0, 9, 0, 10, 0, 0, 0, 42, 0, 223, 0, 0], [0, 0, 0, 325, 318, 326, 327, 8, 9, 0, 10, 0, 0, 328, 322, 0, 0, 16, 0], [0, 0, 0, 64, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0], [0, 0, 0, 227, 0, 228, 121, 0, 9, 0, 10, 0, 0, 230, 0, 0, 0, 0, 0], [0, 0, 0, 227, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0], [0, 0, 0, 0, 0, 329, 329, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 236, 237, 238, 239, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 237, 237, 239, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 331, 331, 239, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 332, 331, 331, 239, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 333, 40, 121, 334, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 335, 241, 336, 336, 57, 58, 0, 59, 0, 0, 0, 245, 0, 0, 62, 0], [0, 337, 0, 0, 0, 137, 338, 0, 58, 0, 59, 0, 0, 0, 139, 0, 337, 0, 0], [0, 0, 0, 0, 339, 141, 141, 57, 58, 0, 0, 0, 0, 244, 339, 0, 0, 0, 0], [0, 0, 0, 240, 241, 242, 336, 57, 58, 0, 59, 0, 0, 244, 245, 0, 0, 62, 0], [0, 0, 0, 240, 241, 336, 336, 57, 58, 0, 59, 0, 0, 0, 245, 0, 0, 62, 0], [0, 340, 151, 0, 0, 137, 338, 0, 58, 0, 59, 0, 0, 0, 139, 0, 340, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 136, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 136, 0, 0], [0, 0, 0, 0, 0, 141, 141, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 341, 0, 342, 343, 0, 58, 0, 59, 0, 0, 344, 0, 0, 0, 0, 0], [0, 136, 0, 247, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 136, 0, 0], [0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 345, 345, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 255, 256, 257, 258, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 256, 256, 258, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 347, 347, 258, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 348, 347, 347, 258, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 349, 350, 351, 352, 353, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 335, 241, 336, 336, 57, 58, 0, 59, 0, 0, 0, 245, 0, 0, 62, 0], [0, 0, 0, 0, 339, 141, 141, 57, 58, 0, 0, 0, 0, 263, 339, 0, 0, 0, 0], [0, 0, 0, 260, 241, 261, 336, 57, 58, 0, 59, 0, 0, 263, 245, 0, 0, 62, 0], [0, 0, 0, 260, 241, 336, 336, 57, 58, 0, 59, 0, 0, 0, 245, 0, 0, 62, 0], [0, 0, 0, 137, 0, 248, 248, 57, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 246, 354, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 126, 126, 8, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 355, 90, 0, 0, 121, 125, 0, 9, 0, 10, 0, 0, 0, 42, 0, 355, 0, 0], [0, 0, 0, 0, 0, 356, 356, 269, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 357, 358, 359, 360, 361, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 364, 116, 365, 366, 8, 161, 0, 162, 0, 0, 367, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 368, 368, 0, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 40, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 170, 278, 278, 22, 23, 0, 24, 0, 0, 0, 174, 0, 0, 27, 0], [0, 0, 0, 0, 281, 80, 80, 22, 23, 0, 0, 0, 0, 0, 281, 0, 0, 0, 0], [0, 0, 0, 369, 370, 371, 372, 22, 23, 0, 24, 0, 0, 373, 374, 0, 0, 27, 0], [0, 279, 0, 375, 0, 177, 177, 22, 23, 0, 24, 0, 0, 0, 78, 0, 279, 0, 0], [0, 279, 0, 0, 0, 175, 376, 0, 23, 0, 24, 0, 0, 0, 78, 0, 279, 0, 0], [0, 0, 0, 377, 370, 378, 379, 22, 23, 0, 24, 0, 0, 380, 374, 0, 0, 27, 0], [0, 0, 0, 90, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 286, 0, 0, 0, 0, 0], [0, 0, 0, 283, 0, 284, 175, 0, 23, 0, 24, 0, 0, 286, 0, 0, 0, 0, 0], [0, 0, 0, 283, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0], [0, 0, 0, 0, 0, 381, 381, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 292, 293, 294, 295, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 293, 293, 295, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 0, 383, 383, 295, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 384, 383, 383, 295, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 385, 76, 175, 386, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 76, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 196, 298, 298, 32, 33, 0, 34, 0, 0, 0, 200, 0, 0, 37, 0], [0, 0, 0, 0, 301, 101, 101, 32, 33, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0], [0, 0, 0, 387, 388, 389, 390, 32, 33, 0, 34, 0, 0, 391, 392, 0, 0, 37, 0], [0, 299, 0, 393, 0, 203, 203, 32, 33, 0, 34, 0, 0, 0, 99, 0, 299, 0, 0], [0, 299, 0, 0, 0, 201, 394, 0, 33, 0, 34, 0, 0, 0, 99, 0, 299, 0, 0], [0, 0, 0, 395, 388, 396, 397, 32, 33, 0, 34, 0, 0, 398, 392, 0, 0, 37, 0], [0, 0, 0, 111, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0], [0, 0, 0, 303, 0, 304, 201, 0, 33, 0, 34, 0, 0, 306, 0, 0, 0, 0, 0], [0, 0, 0, 303, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0], [0, 0, 0, 0, 0, 399, 399, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 312, 313, 314, 315, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 313, 313, 315, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 0, 401, 401, 315, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 402, 401, 401, 315, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 403, 97, 201, 404, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 97, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 405, 318, 406, 406, 8, 9, 0, 10, 0, 0, 0, 322, 0, 0, 16, 0], [0, 407, 0, 0, 0, 40, 408, 0, 9, 0, 10, 0, 0, 0, 42, 0, 407, 0, 0], [0, 0, 0, 0, 409, 44, 44, 8, 9, 0, 0, 0, 0, 321, 409, 0, 0, 0, 0], [0, 0, 0, 317, 318, 319, 406, 8, 9, 0, 10, 0, 0, 321, 322, 0, 0, 16, 0], [0, 0, 0, 317, 318, 406, 406, 8, 9, 0, 10, 0, 0, 0, 322, 0, 0, 16, 0], [0, 410, 64, 0, 0, 40, 408, 0, 9, 0, 10, 0, 0, 0, 42, 0, 410, 0, 0], [0, 223, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 223, 0, 0], [0, 223, 0, 323, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 223, 0, 0], [0, 0, 0, 405, 318, 406, 406, 8, 9, 0, 10, 0, 0, 0, 322, 0, 0, 16, 0], [0, 0, 0, 0, 409, 44, 44, 8, 9, 0, 0, 0, 0, 328, 409, 0, 0, 0, 0], [0, 0, 0, 325, 318, 326, 406, 8, 9, 0, 10, 0, 0, 328, 322, 0, 0, 16, 0], [0, 0, 0, 325, 318, 406, 406, 8, 9, 0, 10, 0, 0, 0, 322, 0, 0, 16, 0], [0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0], [0, 0, 0, 0, 0, 411, 411, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 40, 121, 334, 0, 9, 0, 10, 0, 0, 0, 42, 0, 0, 0, 0], [0, 0, 0, 0, 413, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 241, 336, 336, 57, 58, 0, 59, 0, 0, 0, 245, 0, 0, 62, 0], [0, 0, 0, 0, 339, 141, 141, 57, 58, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0], [0, 0, 0, 414, 415, 416, 417, 57, 58, 0, 59, 0, 0, 418, 419, 0, 0, 62, 0], [0, 337, 0, 420, 0, 248, 248, 57, 58, 0, 59, 0, 0, 0, 139, 0, 337, 0, 0], [0, 337, 0, 0, 0, 246, 421, 0, 58, 0, 59, 0, 0, 0, 139, 0, 337, 0, 0], [0, 0, 0, 422, 415, 423, 424, 57, 58, 0, 59, 0, 0, 425, 419, 0, 0, 62, 0], [0, 0, 0, 151, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0], [0, 0, 0, 341, 0, 342, 246, 0, 58, 0, 59, 0, 0, 344, 0, 0, 0, 0, 0], [0, 0, 0, 341, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0], [0, 0, 0, 0, 0, 426, 426, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 350, 351, 352, 353, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 351, 351, 353, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 0, 428, 428, 353, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 429, 428, 428, 353, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 430, 137, 246, 431, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 137, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 432, 116, 433, 434, 8, 161, 0, 162, 0, 0, 435, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 180, 180, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 358, 359, 360, 361, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 359, 359, 361, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 436, 436, 361, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 437, 436, 436, 361, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 438, 439, 440, 441, 442, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 443, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 444, 116, 445, 445, 8, 161, 0, 162, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 225, 44, 44, 8, 161, 0, 0, 0, 0, 367, 225, 0, 0, 0, 0], [0, 0, 0, 364, 116, 365, 445, 8, 161, 0, 162, 0, 0, 367, 120, 0, 0, 16, 0], [0, 0, 0, 364, 116, 445, 445, 8, 161, 0, 162, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 446, 370, 447, 447, 22, 23, 0, 24, 0, 0, 0, 374, 0, 0, 27, 0], [0, 448, 0, 0, 0, 76, 449, 0, 23, 0, 24, 0, 0, 0, 78, 0, 448, 0, 0], [0, 0, 0, 0, 450, 80, 80, 22, 23, 0, 0, 0, 0, 373, 450, 0, 0, 0, 0], [0, 0, 0, 369, 370, 371, 447, 22, 23, 0, 24, 0, 0, 373, 374, 0, 0, 27, 0], [0, 0, 0, 369, 370, 447, 447, 22, 23, 0, 24, 0, 0, 0, 374, 0, 0, 27, 0], [0, 451, 90, 0, 0, 76, 449, 0, 23, 0, 24, 0, 0, 0, 78, 0, 451, 0, 0], [0, 279, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 279, 0, 0], [0, 279, 0, 375, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 279, 0, 0], [0, 0, 0, 446, 370, 447, 447, 22, 23, 0, 24, 0, 0, 0, 374, 0, 0, 27, 0], [0, 0, 0, 0, 450, 80, 80, 22, 23, 0, 0, 0, 0, 380, 450, 0, 0, 0, 0], [0, 0, 0, 377, 370, 378, 447, 22, 23, 0, 24, 0, 0, 380, 374, 0, 0, 27, 0], [0, 0, 0, 377, 370, 447, 447, 22, 23, 0, 24, 0, 0, 0, 374, 0, 0, 27, 0], [0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0], [0, 0, 0, 0, 0, 452, 452, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 76, 175, 386, 0, 23, 0, 24, 0, 0, 0, 78, 0, 0, 0, 0], [0, 0, 0, 0, 454, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 455, 388, 456, 456, 32, 33, 0, 34, 0, 0, 0, 392, 0, 0, 37, 0], [0, 457, 0, 0, 0, 97, 458, 0, 33, 0, 34, 0, 0, 0, 99, 0, 457, 0, 0], [0, 0, 0, 0, 459, 101, 101, 32, 33, 0, 0, 0, 0, 391, 459, 0, 0, 0, 0], [0, 0, 0, 387, 388, 389, 456, 32, 33, 0, 34, 0, 0, 391, 392, 0, 0, 37, 0], [0, 0, 0, 387, 388, 456, 456, 32, 33, 0, 34, 0, 0, 0, 392, 0, 0, 37, 0], [0, 460, 111, 0, 0, 97, 458, 0, 33, 0, 34, 0, 0, 0, 99, 0, 460, 0, 0], [0, 299, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 299, 0, 0], [0, 299, 0, 393, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 299, 0, 0], [0, 0, 0, 455, 388, 456, 456, 32, 33, 0, 34, 0, 0, 0, 392, 0, 0, 37, 0], [0, 0, 0, 0, 459, 101, 101, 32, 33, 0, 0, 0, 0, 398, 459, 0, 0, 0, 0], [0, 0, 0, 395, 388, 396, 456, 32, 33, 0, 34, 0, 0, 398, 392, 0, 0, 37, 0], [0, 0, 0, 395, 388, 456, 456, 32, 33, 0, 34, 0, 0, 0, 392, 0, 0, 37, 0], [0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0], [0, 0, 0, 0, 0, 461, 461, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 97, 201, 404, 0, 33, 0, 34, 0, 0, 0, 99, 0, 0, 0, 0], [0, 0, 0, 0, 463, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 318, 406, 406, 8, 9, 0, 10, 0, 0, 0, 322, 0, 0, 16, 0], [0, 0, 0, 0, 409, 44, 44, 8, 9, 0, 0, 0, 0, 0, 409, 0, 0, 0, 0], [0, 0, 0, 464, 465, 466, 467, 8, 9, 0, 10, 0, 0, 468, 469, 0, 0, 16, 0], [0, 407, 0, 470, 0, 123, 123, 8, 9, 0, 10, 0, 0, 0, 42, 0, 407, 0, 0], [0, 407, 0, 0, 0, 121, 471, 0, 9, 0, 10, 0, 0, 0, 42, 0, 407, 0, 0], [0, 0, 0, 472, 465, 473, 474, 8, 9, 0, 10, 0, 0, 475, 469, 0, 0, 16, 0], [0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0], [0, 0, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 477, 415, 478, 478, 57, 58, 0, 59, 0, 0, 0, 419, 0, 0, 62, 0], [0, 479, 0, 0, 0, 137, 480, 0, 58, 0, 59, 0, 0, 0, 139, 0, 479, 0, 0], [0, 0, 0, 0, 481, 141, 141, 57, 58, 0, 0, 0, 0, 418, 481, 0, 0, 0, 0], [0, 0, 0, 414, 415, 416, 478, 57, 58, 0, 59, 0, 0, 418, 419, 0, 0, 62, 0], [0, 0, 0, 414, 415, 478, 478, 57, 58, 0, 59, 0, 0, 0, 419, 0, 0, 62, 0], [0, 482, 151, 0, 0, 137, 480, 0, 58, 0, 59, 0, 0, 0, 139, 0, 482, 0, 0], [0, 337, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 337, 0, 0], [0, 337, 0, 420, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 337, 0, 0], [0, 0, 0, 477, 415, 478, 478, 57, 58, 0, 59, 0, 0, 0, 419, 0, 0, 62, 0], [0, 0, 0, 0, 481, 141, 141, 57, 58, 0, 0, 0, 0, 425, 481, 0, 0, 0, 0], [0, 0, 0, 422, 415, 423, 478, 57, 58, 0, 59, 0, 0, 425, 419, 0, 0, 62, 0], [0, 0, 0, 422, 415, 478, 478, 57, 58, 0, 59, 0, 0, 0, 419, 0, 0, 62, 0], [0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0], [0, 0, 0, 0, 0, 483, 483, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 137, 246, 431, 0, 58, 0, 59, 0, 0, 0, 139, 0, 0, 0, 0], [0, 0, 0, 0, 485, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 444, 116, 445, 445, 8, 161, 0, 162, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 225, 44, 44, 8, 161, 0, 0, 0, 0, 435, 225, 0, 0, 0, 0], [0, 0, 0, 432, 116, 433, 445, 8, 161, 0, 162, 0, 0, 435, 120, 0, 0, 16, 0], [0, 0, 0, 432, 116, 445, 445, 8, 161, 0, 162, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 0, 486, 486, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 439, 440, 441, 442, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 440, 440, 442, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 488, 488, 442, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 489, 488, 488, 442, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 490, 491, 492, 493, 494, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 495, 0, 496, 497, 0, 161, 0, 162, 0, 0, 498, 0, 0, 0, 0, 0], [0, 0, 0, 0, 116, 445, 445, 8, 161, 0, 162, 0, 0, 0, 120, 0, 0, 16, 0], [0, 0, 0, 0, 225, 44, 44, 8, 161, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0], [0, 0, 0, 0, 370, 447, 447, 22, 23, 0, 24, 0, 0, 0, 374, 0, 0, 27, 0], [0, 0, 0, 0, 450, 80, 80, 22, 23, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0], [0, 0, 0, 499, 500, 501, 502, 22, 23, 0, 24, 0, 0, 503, 504, 0, 0, 27, 0], [0, 448, 0, 505, 0, 177, 177, 22, 23, 0, 24, 0, 0, 0, 78, 0, 448, 0, 0], [0, 448, 0, 0, 0, 175, 506, 0, 23, 0, 24, 0, 0, 0, 78, 0, 448, 0, 0], [0, 0, 0, 507, 500, 508, 509, 22, 23, 0, 24, 0, 0, 510, 504, 0, 0, 27, 0], [0, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 0], [0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 388, 456, 456, 32, 33, 0, 34, 0, 0, 0, 392, 0, 0, 37, 0], [0, 0, 0, 0, 459, 101, 101, 32, 33, 0, 0, 0, 0, 0, 459, 0, 0, 0, 0], [0, 0, 0, 512, 513, 514, 515, 32, 33, 0, 34, 0, 0, 516, 517, 0, 0, 37, 0], [0, 457, 0, 518, 0, 203, 203, 32, 33, 0, 34, 0, 0, 0, 99, 0, 457, 0, 0], [0, 457, 0, 0, 0, 201, 519, 0, 33, 0, 34, 0, 0, 0, 99, 0, 457, 0, 0], [0, 0, 0, 520, 513, 521, 522, 32, 33, 0, 34, 0, 0, 523, 517, 0, 0, 37, 0], [0, 0, 0, 0, 0, 0, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0], [0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 525, 465, 526, 526, 8, 9, 0, 10, 0, 0, 0, 469, 0, 0, 16, 0], [0, 527, 0, 0, 0, 40, 528, 0, 9, 0, 10, 0, 0, 0, 42, 0, 527, 0, 0], [0, 0, 0, 0, 529, 44, 44, 8, 9, 0, 0, 0, 0, 468, 529, 0, 0, 0, 0], [0, 0, 0, 464, 465, 466, 526, 8, 9, 0, 10, 0, 0, 468, 469, 0, 0, 16, 0], [0, 0, 0, 464, 465, 526, 526, 8, 9, 0, 10, 0, 0, 0, 469, 0, 0, 16, 0], [0, 530, 64, 0, 0, 40, 528, 0, 9, 0, 10, 0, 0, 0, 42, 0, 530, 0, 0], [0, 407, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 407, 0, 0], [0, 407, 0, 470, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 407, 0, 0], [0, 0, 0, 525, 465, 526, 526, 8, 9, 0, 10, 0, 0, 0, 469, 0, 0, 16, 0], [0, 0, 0, 0, 529, 44, 44, 8, 9, 0, 0, 0, 0, 475, 529, 0, 0, 0, 0], [0, 0, 0, 472, 465, 473, 526, 8, 9, 0, 10, 0, 0, 475, 469, 0, 0, 16, 0], [0, 0, 0, 472, 465, 526, 526, 8, 9, 0, 10, 0, 0, 0, 469, 0, 0, 16, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0], [0, 0, 0, 0, 415, 478, 478, 57, 58, 0, 59, 0, 0, 0, 419, 0, 0, 62, 0], [0, 0, 0, 0, 481, 141, 141, 57, 58, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0], [0, 0, 0, 531, 532, 533, 534, 57, 58, 0, 59, 0, 0, 535, 536, 0, 0, 62, 0], [0, 479, 0, 537, 0, 248, 248, 57, 58, 0, 59, 0, 0, 0, 139, 0, 479, 0, 0], [0, 479, 0, 0, 0, 246, 538, 0, 58, 0, 59, 0, 0, 0, 139, 0, 479, 0, 0], [0, 0, 0, 539, 532, 540, 541, 57, 58, 0, 59, 0, 0, 542, 536, 0, 0, 62, 0], [0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, 0, 0], [0, 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0], [0, 0, 0, 0, 0, 544, 544, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 491, 492, 493, 494, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 492, 492, 494, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 546, 546, 494, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 547, 546, 546, 494, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 548, 549, 368, 550, 0, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 274, 0, 368, 368, 0, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0], [0, 0, 0, 495, 0, 496, 368, 0, 161, 0, 162, 0, 0, 498, 0, 0, 0, 0, 0], [0, 0, 0, 495, 0, 368, 368, 0, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 551, 500, 552, 552, 22, 23, 0, 24, 0, 0, 0, 504, 0, 0, 27, 0], [0, 553, 0, 0, 0, 76, 554, 0, 23, 0, 24, 0, 0, 0, 78, 0, 553, 0, 0], [0, 0, 0, 0, 555, 80, 80, 22, 23, 0, 0, 0, 0, 503, 555, 0, 0, 0, 0], [0, 0, 0, 499, 500, 501, 552, 22, 23, 0, 24, 0, 0, 503, 504, 0, 0, 27, 0], [0, 0, 0, 499, 500, 552, 552, 22, 23, 0, 24, 0, 0, 0, 504, 0, 0, 27, 0], [0, 556, 90, 0, 0, 76, 554, 0, 23, 0, 24, 0, 0, 0, 78, 0, 556, 0, 0], [0, 448, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 448, 0, 0], [0, 448, 0, 505, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 448, 0, 0], [0, 0, 0, 551, 500, 552, 552, 22, 23, 0, 24, 0, 0, 0, 504, 0, 0, 27, 0], [0, 0, 0, 0, 555, 80, 80, 22, 23, 0, 0, 0, 0, 510, 555, 0, 0, 0, 0], [0, 0, 0, 507, 500, 508, 552, 22, 23, 0, 24, 0, 0, 510, 504, 0, 0, 27, 0], [0, 0, 0, 507, 500, 552, 552, 22, 23, 0, 24, 0, 0, 0, 504, 0, 0, 27, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0], [0, 0, 0, 557, 513, 558, 558, 32, 33, 0, 34, 0, 0, 0, 517, 0, 0, 37, 0], [0, 559, 0, 0, 0, 97, 560, 0, 33, 0, 34, 0, 0, 0, 99, 0, 559, 0, 0], [0, 0, 0, 0, 561, 101, 101, 32, 33, 0, 0, 0, 0, 516, 561, 0, 0, 0, 0], [0, 0, 0, 512, 513, 514, 558, 32, 33, 0, 34, 0, 0, 516, 517, 0, 0, 37, 0], [0, 0, 0, 512, 513, 558, 558, 32, 33, 0, 34, 0, 0, 0, 517, 0, 0, 37, 0], [0, 562, 111, 0, 0, 97, 560, 0, 33, 0, 34, 0, 0, 0, 99, 0, 562, 0, 0], [0, 457, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 457, 0, 0], [0, 457, 0, 518, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 457, 0, 0], [0, 0, 0, 557, 513, 558, 558, 32, 33, 0, 34, 0, 0, 0, 517, 0, 0, 37, 0], [0, 0, 0, 0, 561, 101, 101, 32, 33, 0, 0, 0, 0, 523, 561, 0, 0, 0, 0], [0, 0, 0, 520, 513, 521, 558, 32, 33, 0, 34, 0, 0, 523, 517, 0, 0, 37, 0], [0, 0, 0, 520, 513, 558, 558, 32, 33, 0, 34, 0, 0, 0, 517, 0, 0, 37, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0], [0, 0, 0, 0, 465, 526, 526, 8, 9, 0, 10, 0, 0, 0, 469, 0, 0, 16, 0], [0, 0, 0, 0, 529, 44, 44, 8, 9, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0], [0, 0, 0, 563, 66, 564, 565, 8, 9, 0, 10, 0, 0, 566, 68, 0, 0, 16, 0], [0, 527, 0, 567, 0, 123, 123, 8, 9, 0, 10, 0, 0, 0, 42, 0, 527, 0, 0], [0, 527, 0, 0, 0, 121, 568, 0, 9, 0, 10, 0, 0, 0, 42, 0, 527, 0, 0], [0, 0, 0, 569, 66, 570, 571, 8, 9, 0, 10, 0, 0, 572, 68, 0, 0, 16, 0], [0, 0, 0, 573, 532, 574, 574, 57, 58, 0, 59, 0, 0, 0, 536, 0, 0, 62, 0], [0, 575, 0, 0, 0, 137, 576, 0, 58, 0, 59, 0, 0, 0, 139, 0, 575, 0, 0], [0, 0, 0, 0, 577, 141, 141, 57, 58, 0, 0, 0, 0, 535, 577, 0, 0, 0, 0], [0, 0, 0, 531, 532, 533, 574, 57, 58, 0, 59, 0, 0, 535, 536, 0, 0, 62, 0], [0, 0, 0, 531, 532, 574, 574, 57, 58, 0, 59, 0, 0, 0, 536, 0, 0, 62, 0], [0, 578, 151, 0, 0, 137, 576, 0, 58, 0, 59, 0, 0, 0, 139, 0, 578, 0, 0], [0, 479, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 479, 0, 0], [0, 479, 0, 537, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 479, 0, 0], [0, 0, 0, 573, 532, 574, 574, 57, 58, 0, 59, 0, 0, 0, 536, 0, 0, 62, 0], [0, 0, 0, 0, 577, 141, 141, 57, 58, 0, 0, 0, 0, 542, 577, 0, 0, 0, 0], [0, 0, 0, 539, 532, 540, 574, 57, 58, 0, 59, 0, 0, 542, 536, 0, 0, 62, 0], [0, 0, 0, 539, 532, 574, 574, 57, 58, 0, 59, 0, 0, 0, 536, 0, 0, 62, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0], [0, 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0], [0, 0, 0, 0, 0, 579, 579, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 549, 368, 550, 0, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 0, 368, 368, 0, 161, 0, 162, 0, 0, 0, 362, 0, 0, 0, 0], [0, 0, 0, 0, 581, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 500, 552, 552, 22, 23, 0, 24, 0, 0, 0, 504, 0, 0, 27, 0], [0, 0, 0, 0, 555, 80, 80, 22, 23, 0, 0, 0, 0, 0, 555, 0, 0, 0, 0], [0, 0, 0, 582, 91, 583, 584, 22, 23, 0, 24, 0, 0, 585, 93, 0, 0, 27, 0], [0, 553, 0, 586, 0, 177, 177, 22, 23, 0, 24, 0, 0, 0, 78, 0, 553, 0, 0], [0, 553, 0, 0, 0, 175, 587, 0, 23, 0, 24, 0, 0, 0, 78, 0, 553, 0, 0], [0, 0, 0, 588, 91, 589, 590, 22, 23, 0, 24, 0, 0, 591, 93, 0, 0, 27, 0], [0, 0, 0, 0, 513, 558, 558, 32, 33, 0, 34, 0, 0, 0, 517, 0, 0, 37, 0], [0, 0, 0, 0, 561, 101, 101, 32, 33, 0, 0, 0, 0, 0, 561, 0, 0, 0, 0], [0, 0, 0, 592, 112, 593, 594, 32, 33, 0, 34, 0, 0, 595, 114, 0, 0, 37, 0], [0, 559, 0, 596, 0, 203, 203, 32, 33, 0, 34, 0, 0, 0, 99, 0, 559, 0, 0], [0, 559, 0, 0, 0, 201, 597, 0, 33, 0, 34, 0, 0, 0, 99, 0, 559, 0, 0], [0, 0, 0, 598, 112, 599, 600, 32, 33, 0, 34, 0, 0, 601, 114, 0, 0, 37, 0], [0, 0, 0, 602, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 16, 0], [0, 0, 0, 0, 165, 44, 44, 8, 9, 0, 0, 0, 0, 566, 165, 0, 0, 0, 0], [0, 0, 0, 563, 66, 564, 67, 8, 9, 0, 10, 0, 0, 566, 68, 0, 0, 16, 0], [0, 0, 0, 563, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 16, 0], [0, 527, 0, 0, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 527, 0, 0], [0, 527, 0, 567, 0, 121, 121, 0, 9, 0, 10, 0, 0, 0, 42, 0, 527, 0, 0], [0, 0, 0, 602, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 16, 0], [0, 0, 0, 0, 165, 44, 44, 8, 9, 0, 0, 0, 0, 572, 165, 0, 0, 0, 0], [0, 0, 0, 569, 66, 570, 67, 8, 9, 0, 10, 0, 0, 572, 68, 0, 0, 16, 0], [0, 0, 0, 569, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 16, 0], [0, 0, 0, 0, 532, 574, 574, 57, 58, 0, 59, 0, 0, 0, 536, 0, 0, 62, 0], [0, 0, 0, 0, 577, 141, 141, 57, 58, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0], [0, 0, 0, 603, 152, 604, 605, 57, 58, 0, 59, 0, 0, 606, 154, 0, 0, 62, 0], [0, 575, 0, 607, 0, 248, 248, 57, 58, 0, 59, 0, 0, 0, 139, 0, 575, 0, 0], [0, 575, 0, 0, 0, 246, 608, 0, 58, 0, 59, 0, 0, 0, 139, 0, 575, 0, 0], [0, 0, 0, 609, 152, 610, 611, 57, 58, 0, 59, 0, 0, 612, 154, 0, 0, 62, 0], [0, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0], [0, 0, 0, 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 614, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 27, 0], [0, 0, 0, 0, 194, 80, 80, 22, 23, 0, 0, 0, 0, 585, 194, 0, 0, 0, 0], [0, 0, 0, 582, 91, 583, 92, 22, 23, 0, 24, 0, 0, 585, 93, 0, 0, 27, 0], [0, 0, 0, 582, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 27, 0], [0, 553, 0, 0, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 553, 0, 0], [0, 553, 0, 586, 0, 175, 175, 0, 23, 0, 24, 0, 0, 0, 78, 0, 553, 0, 0], [0, 0, 0, 614, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 27, 0], [0, 0, 0, 0, 194, 80, 80, 22, 23, 0, 0, 0, 0, 591, 194, 0, 0, 0, 0], [0, 0, 0, 588, 91, 589, 92, 22, 23, 0, 24, 0, 0, 591, 93, 0, 0, 27, 0], [0, 0, 0, 588, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 27, 0], [0, 0, 0, 615, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 37, 0], [0, 0, 0, 0, 220, 101, 101, 32, 33, 0, 0, 0, 0, 595, 220, 0, 0, 0, 0], [0, 0, 0, 592, 112, 593, 113, 32, 33, 0, 34, 0, 0, 595, 114, 0, 0, 37, 0], [0, 0, 0, 592, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 37, 0], [0, 559, 0, 0, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 559, 0, 0], [0, 559, 0, 596, 0, 201, 201, 0, 33, 0, 34, 0, 0, 0, 99, 0, 559, 0, 0], [0, 0, 0, 615, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 37, 0], [0, 0, 0, 0, 220, 101, 101, 32, 33, 0, 0, 0, 0, 601, 220, 0, 0, 0, 0], [0, 0, 0, 598, 112, 599, 113, 32, 33, 0, 34, 0, 0, 601, 114, 0, 0, 37, 0], [0, 0, 0, 598, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 37, 0], [0, 0, 0, 0, 66, 67, 67, 8, 9, 0, 10, 0, 0, 0, 68, 0, 0, 16, 0], [0, 0, 0, 616, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 62, 0], [0, 0, 0, 0, 265, 141, 141, 57, 58, 0, 0, 0, 0, 606, 265, 0, 0, 0, 0], [0, 0, 0, 603, 152, 604, 153, 57, 58, 0, 59, 0, 0, 606, 154, 0, 0, 62, 0], [0, 0, 0, 603, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 62, 0], [0, 575, 0, 0, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 575, 0, 0], [0, 575, 0, 607, 0, 246, 246, 0, 58, 0, 59, 0, 0, 0, 139, 0, 575, 0, 0], [0, 0, 0, 616, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 62, 0], [0, 0, 0, 0, 265, 141, 141, 57, 58, 0, 0, 0, 0, 612, 265, 0, 0, 0, 0], [0, 0, 0, 609, 152, 610, 153, 57, 58, 0, 59, 0, 0, 612, 154, 0, 0, 62, 0], [0, 0, 0, 609, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 62, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, 0, 0], [0, 0, 0, 0, 91, 92, 92, 22, 23, 0, 24, 0, 0, 0, 93, 0, 0, 27, 0], [0, 0, 0, 0, 112, 113, 113, 32, 33, 0, 34, 0, 0, 0, 114, 0, 0, 37, 0], [0, 0, 0, 0, 152, 153, 153, 57, 58, 0, 59, 0, 0, 0, 154, 0, 0, 62, 0]];\nvar accepting = [false, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, false, false, true, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, false, true, true, true, false, true, false, true, true, false, false, true, true, true, true, true, true, true, false, true, true, false, true, true, true, false, true, false, true, true, false, false, true, true, true, true, true, true, true, false, true, true, true, false, true, true, true, false, true, false, true, true, false, false, false, true, true, false, false, true, true, true, true, true, true, false, true, false, true, true, false, false, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, false, true, false, true, true, false, false, false, true, true, false, false, true, true, true, false, true, true, true, true, true, true, false, true, true, true, false, true, false, true, true, false, false, false, true, true, false, false, true, true, true, false, true, true, true, true, true, false, true, true, true, true, true, false, true, true, false, false, false, false, true, true, false, false, true, true, true, false, true, true, true, false, true, false, true, true, false, false, false, true, true, false, false, true, true, true, false, true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, false, true, true, false, false, false, false, true, true, false, false, true, true, true, false, true, true, true, true, true, false, true, true, false, false, false, false, true, true, false, false, true, true, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, true, false, true, false, true, true, true, true, true, false, true, true, false, false, false, false, true, true, false, false, true, true, true, false, true, true, false, false, true, false, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, true, false, true, false, true, true, true, true, false, false, false, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, true, false, true, false, true, true, false, false, true, true, false, false, true, true, true, false, true, false, true, true, true, true, false, false, false, true, false, true, true, true, true, false, false, false, true, true, false, true, true, true, true, true, true, false, true, true, false, true, false, true, true, true, true, false, false, false, false, false, false, false, true, true, false, false, true, true, false, true, true, true, true, false, true, true, true, true, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, false, true, true, false, true, false, true, true, true, true, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, false, true, true, false, true, false, true, true, true, true, true, false, true, true, true, true, true, false, true, true, true, true, true, false, true, true, true, false, true, true, true, true, false, false, false, true, false, true, true, true, true, true, false, true, true, true, false, true, true, true, true, true, false, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true];\nvar tags = [[], [\"broken_cluster\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"standalone_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"consonant_syllable\"], [\"broken_cluster\"], [\"symbol_cluster\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"symbol_cluster\"], [], [\"symbol_cluster\"], [\"symbol_cluster\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"symbol_cluster\"], [\"symbol_cluster\"], [\"symbol_cluster\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [\"broken_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"broken_cluster\"], [\"symbol_cluster\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [], [], [\"broken_cluster\"], [], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [], [], [\"consonant_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [], [], [\"vowel_syllable\"], [], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [], [\"standalone_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [], [], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [], [], [], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [], [], [\"consonant_syllable\", \"broken_cluster\"], [\"consonant_syllable\", \"broken_cluster\"], [], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [], [], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"consonant_syllable\"], [], [\"consonant_syllable\"], [\"consonant_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"vowel_syllable\"], [], [\"vowel_syllable\"], [\"vowel_syllable\"], [\"broken_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"standalone_cluster\"], [\"standalone_cluster\"], [], [\"consonant_syllable\"], [\"vowel_syllable\"], [\"standalone_cluster\"]];\nvar indicMachine = {\n\tstateTable: stateTable,\n\taccepting: accepting,\n\ttags: tags\n};\n\nvar categories = [\"O\", \"IND\", \"S\", \"GB\", \"B\", \"FM\", \"CGJ\", \"VMAbv\", \"VMPst\", \"VAbv\", \"VPst\", \"CMBlw\", \"VPre\", \"VBlw\", \"H\", \"VMBlw\", \"CMAbv\", \"MBlw\", \"CS\", \"R\", \"SUB\", \"MPst\", \"MPre\", \"FAbv\", \"FPst\", \"FBlw\", \"null\", \"SMAbv\", \"SMBlw\", \"VMPre\", \"ZWNJ\", \"ZWJ\", \"WJ\", \"M\", \"VS\", \"N\", \"HN\", \"MAbv\"];\nvar decompositions$1 = { \"2507\": [2503, 2494], \"2508\": [2503, 2519], \"2888\": [2887, 2902], \"2891\": [2887, 2878], \"2892\": [2887, 2903], \"3018\": [3014, 3006], \"3019\": [3015, 3006], \"3020\": [3014, 3031], \"3144\": [3142, 3158], \"3264\": [3263, 3285], \"3271\": [3270, 3285], \"3272\": [3270, 3286], \"3274\": [3270, 3266], \"3275\": [3270, 3266, 3285], \"3402\": [3398, 3390], \"3403\": [3399, 3390], \"3404\": [3398, 3415], \"3546\": [3545, 3530], \"3548\": [3545, 3535], \"3549\": [3545, 3535, 3530], \"3550\": [3545, 3551], \"3635\": [3661, 3634], \"3763\": [3789, 3762], \"3955\": [3953, 3954], \"3957\": [3953, 3956], \"3958\": [4018, 3968], \"3959\": [4018, 3953, 3968], \"3960\": [4019, 3968], \"3961\": [4019, 3953, 3968], \"3969\": [3953, 3968], \"6971\": [6970, 6965], \"6973\": [6972, 6965], \"6976\": [6974, 6965], \"6977\": [6975, 6965], \"6979\": [6978, 6965], \"69934\": [69937, 69927], \"69935\": [69938, 69927], \"70475\": [70471, 70462], \"70476\": [70471, 70487], \"70843\": [70841, 70842], \"70844\": [70841, 70832], \"70846\": [70841, 70845], \"71098\": [71096, 71087], \"71099\": [71097, 71087] };\nvar stateTable$1 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 2, 3, 4, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 17, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 2, 0, 0, 24, 0, 25], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 27, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 39, 0, 0, 47], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 0, 0, 12, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 0, 9, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 0, 11, 12, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 0, 9, 0, 0, 12, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 0, 11, 12, 0, 14, 0, 0, 0, 0, 0, 11, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 4, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 48, 11, 12, 13, 14, 48, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 49, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 0, 11, 12, 0, 14, 0, 16, 0, 0, 0, 11, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 51, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 0, 11, 12, 0, 14, 0, 16, 0, 0, 0, 11, 0, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 0, 36, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 0, 33, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 35, 36, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 0, 33, 0, 0, 36, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 0, 31, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 35, 36, 0, 38, 0, 0, 0, 0, 0, 35, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 52, 35, 36, 37, 38, 52, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 53, 0, 0, 47], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 35, 36, 0, 38, 0, 40, 0, 0, 0, 35, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47], [0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 35, 36, 0, 38, 0, 40, 0, 0, 0, 35, 0, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 48, 11, 12, 13, 14, 0, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 5, 0, 6, 7, 8, 9, 48, 11, 12, 13, 14, 48, 16, 0, 0, 18, 11, 19, 20, 21, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 52, 35, 36, 37, 38, 0, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47], [0, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 52, 35, 36, 37, 38, 52, 40, 0, 0, 41, 35, 42, 43, 44, 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 51, 0]];\nvar accepting$1 = [false, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true];\nvar tags$1 = [[], [\"broken_cluster\"], [\"independent_cluster\"], [\"symbol_cluster\"], [\"standard_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"numeral_cluster\"], [\"broken_cluster\"], [\"independent_cluster\"], [\"symbol_cluster\"], [\"symbol_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"virama_terminated_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"broken_cluster\"], [\"broken_cluster\"], [\"numeral_cluster\"], [\"number_joiner_terminated_cluster\"], [\"standard_cluster\"], [\"standard_cluster\"], [\"numeral_cluster\"]];\nvar useData = {\n\tcategories: categories,\n\tdecompositions: decompositions$1,\n\tstateTable: stateTable$1,\n\taccepting: accepting$1,\n\ttags: tags$1\n};\n\n// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nvar CATEGORIES = {\n  X: 1 << 0,\n  C: 1 << 1,\n  V: 1 << 2,\n  N: 1 << 3,\n  H: 1 << 4,\n  ZWNJ: 1 << 5,\n  ZWJ: 1 << 6,\n  M: 1 << 7,\n  SM: 1 << 8,\n  VD: 1 << 9,\n  A: 1 << 10,\n  Placeholder: 1 << 11,\n  Dotted_Circle: 1 << 12,\n  RS: 1 << 13, // Register Shifter, used in Khmer OT spec.\n  Coeng: 1 << 14, // Khmer-style Virama.\n  Repha: 1 << 15, // Atomically-encoded logical or visual repha.\n  Ra: 1 << 16,\n  CM: 1 << 17, // Consonant-Medial.\n  Symbol: 1 << 18 // Avagraha, etc that take marks (SM,A,VD).\n};\n\n// Visual positions in a syllable from left to right.\nvar POSITIONS = {\n  Start: 1 << 0,\n\n  Ra_To_Become_Reph: 1 << 1,\n  Pre_M: 1 << 2,\n  Pre_C: 1 << 3,\n\n  Base_C: 1 << 4,\n  After_Main: 1 << 5,\n\n  Above_C: 1 << 6,\n\n  Before_Sub: 1 << 7,\n  Below_C: 1 << 8,\n  After_Sub: 1 << 9,\n\n  Before_Post: 1 << 10,\n  Post_C: 1 << 11,\n  After_Post: 1 << 12,\n\n  Final_C: 1 << 13,\n  SMVD: 1 << 14,\n\n  End: 1 << 15\n};\n\nvar CONSONANT_FLAGS = CATEGORIES.C | CATEGORIES.Ra | CATEGORIES.CM | CATEGORIES.V | CATEGORIES.Placeholder | CATEGORIES.Dotted_Circle;\nvar JOINER_FLAGS = CATEGORIES.ZWJ | CATEGORIES.ZWNJ;\nvar HALANT_OR_COENG_FLAGS = CATEGORIES.H | CATEGORIES.Coeng;\n\nvar INDIC_CONFIGS = {\n  Default: {\n    hasOldSpec: false,\n    virama: 0,\n    basePos: 'Last',\n    rephPos: POSITIONS.Before_Post,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Devanagari: {\n    hasOldSpec: true,\n    virama: 0x094D,\n    basePos: 'Last',\n    rephPos: POSITIONS.Before_Post,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Bengali: {\n    hasOldSpec: true,\n    virama: 0x09CD,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Sub,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Gurmukhi: {\n    hasOldSpec: true,\n    virama: 0x0A4D,\n    basePos: 'Last',\n    rephPos: POSITIONS.Before_Sub,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Gujarati: {\n    hasOldSpec: true,\n    virama: 0x0ACD,\n    basePos: 'Last',\n    rephPos: POSITIONS.Before_Post,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Oriya: {\n    hasOldSpec: true,\n    virama: 0x0B4D,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Main,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Tamil: {\n    hasOldSpec: true,\n    virama: 0x0BCD,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Post,\n    rephMode: 'Implicit',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  Telugu: {\n    hasOldSpec: true,\n    virama: 0x0C4D,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Post,\n    rephMode: 'Explicit',\n    blwfMode: 'Post_Only'\n  },\n\n  Kannada: {\n    hasOldSpec: true,\n    virama: 0x0CCD,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Post,\n    rephMode: 'Implicit',\n    blwfMode: 'Post_Only'\n  },\n\n  Malayalam: {\n    hasOldSpec: true,\n    virama: 0x0D4D,\n    basePos: 'Last',\n    rephPos: POSITIONS.After_Main,\n    rephMode: 'Log_Repha',\n    blwfMode: 'Pre_And_Post'\n  },\n\n  // Handled by UniversalShaper\n  // Sinhala: {\n  //   hasOldSpec: false,\n  //   virama: 0x0DCA,\n  //   basePos: 'Last_Sinhala',\n  //   rephPos: POSITIONS.After_Main,\n  //   rephMode: 'Explicit',\n  //   blwfMode: 'Pre_And_Post'\n  // },\n\n  Khmer: {\n    hasOldSpec: false,\n    virama: 0x17D2,\n    basePos: 'First',\n    rephPos: POSITIONS.Ra_To_Become_Reph,\n    rephMode: 'Vis_Repha',\n    blwfMode: 'Pre_And_Post'\n  }\n};\n\n// Additional decompositions that aren't in Unicode\nvar INDIC_DECOMPOSITIONS = {\n  // Khmer\n  0x17BE: [0x17C1, 0x17BE],\n  0x17BF: [0x17C1, 0x17BF],\n  0x17C0: [0x17C1, 0x17C0],\n  0x17C4: [0x17C1, 0x17C4],\n  0x17C5: [0x17C1, 0x17C5]\n};\n\nvar _class$6;\nvar _temp$2;\nvar decompositions = useData.decompositions;\n\nvar trie$1 = new UnicodeTrie(Buffer(\"ABEAAAAAAAAAANhgAWYPmfDtnXuMXFUdx+/uzs7M7szudAtECGJRIMRQbUAithQWkGAKiVhNpFVRRAmIQVCDkDYICGotIA9BTCz8IeUviv7BQ2PBtBIRLBBQIWAUsKg1BKxRAqIgfs/cc+aeOXPej3tnZX7JJ/dxzj3nd36/8753Z5fUsuxgsAwcAU4Gp4BPgM+Cd4P3RjieDs4GXwLrHJ5bDy4DG8A14LvgZrAZbAF3gns0z18ALgY/B78C94NHwBPgabAE/AX8DbwM5sF/QX0yD5vFcU/wVnAgWAoOAyvAceBE8CGwBpwGzgJfAF8BXwXfAFeC68EmsBlsAXeCreA+8CB4DDwF/gh2gd3gFfAGmKxn2QzYC+wHDgRLweFgJTgWrKrnuq/GcQ04jV6fheN54EJwEbgcXAG+Q8O/j+Mt4DZwB9haz8t9Hz3a8iCN/xiOvwRP0evH6fE68AzOH+Ke2eWYhw3PcGnuxvkr4A3QaGRZB7wFLAEHg2XgiEZ/fHKcp/ceBh/A+cngFPCpRm6vM3E8l8a5gN67GMdvgqsbeX2ap9yI601gM7gN3AG20mfuo8cdOP6GpvdUg9oKxz839GV90RDO2/glxN1B790NXsN1rZll7WYRdw+c70uvTwIHNAfTO0RyL5TDmnnbc3lmRQI9UnM0dD5eovfz4FpJ/BNpXNYWV+N6Lfg0hY97JK1vn+Pur9DoQur2F7m436bHDUK8C5t5/8vruo4+97WmXG+GLmzEiBF+PDwEOowYMWLEiBEjRoxYeBw5BDqIPEfXut9yWN+vVNxfrnnmWqR/PdgENoMt4E5wD9gOHgCPgifBs2BXM99b2o3jP8F/wMRUlrXAHNgHvH0q3895J46HguXgWHAGLctmLv9VuL96qnp7jxgxYsSbCbJvuRZ97/tqxT59VVRtixEjRsThBG7OSt5zzoPT0M+cBc4T5noXOs79TqLHeZrHUeCSqeJ96gacXy2kecNU8V6Hh7yXuQlhtw7B/PO1RTkr52Aj8JNFZjYg3gOKuC/g/v6Ls2wNuAY8urg//PcIb+6RZXuDNeCS6SzbBrJWlh0DLiFHco8ed9IjzzvaWfa9sZzTcf6D9mCcnbg3PlNcH4fzS8F2MDaLdQG4dLZIJxbbaZqv4ri8k58f3+mPs66T6/TTzqDeI0aMGDGiHP5dcR8ce/xxYcWi6vOfr725uRzcjnngXVOD61Hync+9uL+Nmyfej/NHpvL56A5Jeuz7uyfo+pqcPz2Vf1NH0ttJ03pekt8SmuY/EPYy9zzbN319ym/9TL6ZIt9MHCXRdxJtoAkWTRdz472n87D9cTwYLJvuz++I6WIePo/zE8AHp4v8WLyP0nufnM6/+zoDx8+DL08P6r9+urheRtO+jD6/cdrsx3mqu8w+xH4PScKIXa5D2jeCm8Et4DbwI/BjcC/4BXgI/Bb8DuwEu8Bu8Ap4A9RaRZptnO8J9gUHgEPAoWA5OLY1qMO90GEV7q+mYWtxPBWcIYnL4p+DsPNbxfVFOP86uAr8DNc34HgTDb8Vx9sVaRFI/LtagzYjnCqpb908EX87eBA8Bh4Hf2jle/9/wvGFVv787rrZZy8h7qtgDOuFOmiBuXYRvg/O9wMHgXeB97SLspk4sq0OI/q9v13+ek+sh3zYSRp9jrYorw9ll1/GRzR+KotYZSHf8laVP2lvpA/8OGdPMk59hqtXZ+L8nHbxvWwqO65ryu+fT3VZz+l4dET7L0R072ljsMyzTpaJqQxsbL8M9WajY789DO85XMp/Dcp3Qztdn+9qf/a97ZWK8PXc3G+TpC/nv8Mncy7ZvICF302P5O+aNiOtLdTXd+D4Q7DVwfcvWvx9zTEJ/o5iG3R8YAjGNFseha5PGuZKz7b7xxXbOrXMcu5eJSo//rXdH/73Enz6L1q/X+fyIu8wZGtNBmkjkzNZNgP2AvuBg2bysKUzduXn/66JtNeN4PCZvO0/x7Ujdn4VnYOvRJzjZ/I+9sQZeftX2Tc1RPcPz/Tf4/si0g+t5Mq+kfZjZL34Mc5ul3PPnE7TOxvHK2qDaZ+L++db2HyYqMo/qVnb/P8uH8/rmnFxR0k6DCu/rjj/RxT7KGUSWgbd+LMQuEgYB1zsk2qtvJD8v5AhdfdttbEunSxbcJD9Zf7chqp1Hlbe7FK1/aPVTfp7FgtC1yGGiSncFK/DhZvi+epZta0WWjlsfDZMyPRdSPrryqSSKnXx1bkq/Ye9TlRpk7Lrjq1UrfdC9X+MtKqwP6+3a/4pJFUZF0pZZpv91MYjMBaRRXbxpho5zQmUY3F+Pt4o7rvQrBXPdm00TaE24uMadaM2meLSI7iu071t3er3b6ZLi8JEde3qw+6zGv+ycF5kaRBh/m1T/7Yl/mMyTuMwadP4xL9ifjJpNwbvDZRJ8G8vnqV/Wf12aa/kyOdl69+BspTsXzGueE6E+JfZnvmXIfNPW+FfXkjb1YmqPNpnLP3b61fHCj/X5tzGANf2y3yqvC7Jv7btV4TVbdammI9l/g0dS5lNxLrk2j9r8xjjxhBQnygg0lgg/bOrfyct+udJi/Yrk0lFnxC7f+5kRbsNmcexfrubt0X/rGvLqrGSnYv3ZPHEe8r7lvMvUfi2LOu/2dg8LrRtQt2yfcv8r5IU70VkIs6nbebUXf0M/o7Znl39Sdoz+X1oEb5N8ffF67qhPfPP6eoUbxf+GRf/6sRnvaSdmw+Bf1VxmbD+2sa//DU7t/Gv2PfKpKdrBP92Ojk+IvqX16ks/2qxbL8EZnc2HqsgYuqPuzZV+I3RbujbDm+T0PmWCVO/5jqftp1zy+wSA6s0JWtp2z5e1oZV+yMsjB3ZXolsv0Ulrv01v3/iKrF94Qtbt9siCnmeb6fjjf59KnLk1xaEbvtvFnFirGvEOqmycQrbm/IMsXd3P28uh4nM3swXRER717OiX8kc7K2qqyn2p3maFGU/aruP5VCv+PraoTYU8yUmmbDwcYo6pusnM486xdoga4dkPCb1pK7Sfc6ebvkd4qeAtQcd/N63bB3lU3dlUnUf38VyvqCqK7JxlNSd7lydrDlm+/uqHiRvl30Nrp/n9zpkZRjoJ3V1diyP05rIYXHYs+w+D5+WMS8b5gZtKcuX0KT5d/WwtB97VnyvY6rjMukI56HI0rFJPwt8PjT/1OXzSbcMeEmdh294qvKK4rNu7j4n3LNZg8TKXwafv025U+XvKjHsT8Q7/7LGaJt9lAh7Asz3uv0XEX6t0duDoWN/93wmh92XpUHmCKb9GALbG+rZP3AfNbQPKKv/jpF/bP0JXfuW1QYk7dhljcyvk5mw+933Hpo1g26PQ2ZP6zVmTJt47P25jncD9vPwGS+q9QS/V6RaY8j8K8LmvUr9HfYCpH5OWL9lZY+Sv6pesHCJHbtrf9k6etZvf0G1L0ja4cAe1UT/s3zdCe3/Q5/n372wMc97/E1Qh0Tbmfwh3m/V9On72tNnrCF1sJkVe1EyXMdBa7+lHMsk44zMF6St9e2djNnbm8ybpHkq+gbbemMaH0UZmD8obKGrk7r+nt+3bE7o83YZp/vqOKdv6PzJNN6mTJsI/51XR7i2ZrGA5B6zFwnjzxmqPjaGfW3tZNrz1eljq29mOOqeCfF/irRt87PNw0uXSVAvrmOMNT569MptsYaV0sic/wbY13e8hPrb9K2ySUJ0j6G/Lu0U4qpTrR23jMp6m5hU+YTaWCeh9aIsm/rqUHV4bFv42kgnZdfH1PUj1D7DVH9d8khRN1zFRl/+/TW//qxL1uH83+mk3H+SvRtS2TDU90nX2TpM6/1xzZpZtoYdK763dqlz0f6uNeFehcs+H/nbGP77MpX06n/ofpzP+tVmTUvRtVuX/cjS67OE5kRBrxyJ+w/dPo7r+9cO1160e3gqu0S2uW7PjN/L6ns/UfMf10Lai87frJ+3KndAfc8yTf1M3T4s6qm4/yh7/2GSkG8UMw//DvRLgbYZSEOxr0LCWvRdjfh9XGzfqN4NivfZd7rsmFp08zmbssrKJEuTfVMZopdpbuwSrhNv3/N2s+0PDG3KNB6RMrFvJHv6B85HXObAoWsd3zm3i+6uZYytv+5+pohbpo6+tpZJFfmGlrcMf4c8b1Pe2OUIsaXJrinCTfaxtZOt+NYnU3hIfQlN20Z/1+dt7JaqLsbIzycNWZmrlNg2Dc2/LJ1T+T6WrrYSml4Ku7ik7yIx2opJD51vU9UfVRmrqL8u/olZj0PyCLV5irxcdKoi/6rKb8qTrHsnhW9jyZH/nSpeWDzxd9769uQ016lgUuf2pAfKPhu2FpfZL2Yb9snLNl/fNIepXaUsj4vNXCXUZ75px8ojNP8UPvAta2g6fb+F1ckZuneshv1vGXXDeyRRrN/bBPS1Jul+l+7zW86R7Wv63WXyDpt/RxraRjvC+TC3O61/Sqj/prag8x372yQivn+XwudrI2X2E2KdtJEov52e0L+uv4FO3p/rvssgsL8F4d/z9PzlWS94m8fqS3361Fi+6qaVYHwi9Yz4iH2fobIj+45cpz/TUaarr/4+z+vaWtVtyAX2d1LG8W9C3f+F1mnf36/k4w3YPrLv+XBVXCJs3cr+n4MKJuLv/fN9GhNdXVP5pJMN9vFi3rpv3/r8Ywg3SYp66zNOsO8QGcxPpnmRS/1mvmJjju3v7absI2xspQrvs1dNbjOj/wP7h1RlZyKGy8occ408UL8En4v6xfC/K3z52XzJd62T8vuZGGsxo/6O46ntmNqqFb/jps2/hHV4rPKH0svT4pstU7t2tZ9u/ZdqbJL1MwP6O86Fyt4jYaIrGz9mjEt8lFL4PtVE6votG2P6fpdf/GZRse7s3bf4BtSl/DIbKMctx++Z+8o6K6z9FPOwKsRmXiaNl7C+6NYRpjlbqG1j72f49qsuY4brd/amb4ZVc8TQ+sSH985LrEe8iPWJnfPrJRbWbb+dwn4x6o+r/aS2S7w3qWt//LnYz2ntE0vH1uDcyKatx1rH+EiMPEN1SZG/iz6+9o01Rob6O7Q+xLZ1jHobK61U+pWVvo2EpuWqzzD6Poa+pvhli0wn8Zq/72Mzm2d90o5VN1x9ZKuzbTgvqWwUIin8FSpl1CXXvFRxU0iozVPYJDRtF3uFphn6XAyJUUdD7SjTJ8v6n9fVbVObkKWp001lc9VRlqdOf5v0ZM+bymdbfp1NfG0bq27Y5JMyfxeJkU6o/inKH8O2Zfgidb6h/g3VJ7QcVbWL0Pxt6rlrPqa4KfQ25a2zl4/E8GdM/4fK/wA=\",\"base64\"));\nvar stateMachine = new StateMachine(indicMachine);\n\n/**\n * The IndicShaper supports indic scripts e.g. Devanagari, Kannada, etc.\n * Based on code from Harfbuzz: https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-indic.cc\n */\nvar IndicShaper = (_temp$2 = _class$6 = function (_DefaultShaper) {\n  _inherits(IndicShaper, _DefaultShaper);\n\n  function IndicShaper() {\n    _classCallCheck(this, IndicShaper);\n\n    return _possibleConstructorReturn(this, _DefaultShaper.apply(this, arguments));\n  }\n\n  IndicShaper.planFeatures = function planFeatures(plan) {\n    plan.addStage(setupSyllables);\n\n    plan.addStage(['locl', 'ccmp']);\n\n    plan.addStage(initialReordering);\n\n    plan.addStage('nukt');\n    plan.addStage('akhn');\n    plan.addStage('rphf', false);\n    plan.addStage('rkrf');\n    plan.addStage('pref', false);\n    plan.addStage('blwf', false);\n    plan.addStage('abvf', false);\n    plan.addStage('half', false);\n    plan.addStage('pstf', false);\n    plan.addStage('vatu');\n    plan.addStage('cjct');\n    plan.addStage('cfar', false);\n\n    plan.addStage(finalReordering);\n\n    plan.addStage({\n      local: ['init'],\n      global: ['pres', 'abvs', 'blws', 'psts', 'haln', 'dist', 'abvm', 'blwm', 'calt', 'clig']\n    });\n\n    // Setup the indic config for the selected script\n    plan.unicodeScript = fromOpenType(plan.script);\n    plan.indicConfig = INDIC_CONFIGS[plan.unicodeScript] || INDIC_CONFIGS.Default;\n    plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2';\n\n    // TODO: turn off kern (Khmer) and liga features.\n  };\n\n  IndicShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n    var _loop = function _loop(i) {\n      var codepoint = glyphs[i].codePoints[0];\n      var d = INDIC_DECOMPOSITIONS[codepoint] || decompositions[codepoint];\n      if (d) {\n        var decomposed = d.map(function (c) {\n          var g = plan.font.glyphForCodePoint(c);\n          return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n        });\n\n        glyphs.splice.apply(glyphs, [i, 1].concat(decomposed));\n      }\n    };\n\n    // Decompose split matras\n    // TODO: do this in a more general unicode normalizer\n    for (var i = glyphs.length - 1; i >= 0; i--) {\n      _loop(i);\n    }\n  };\n\n  return IndicShaper;\n}(DefaultShaper), _class$6.zeroMarkWidths = 'NONE', _temp$2);\nfunction indicCategory(glyph) {\n  return trie$1.get(glyph.codePoints[0]) >> 8;\n}\n\nfunction indicPosition(glyph) {\n  return 1 << (trie$1.get(glyph.codePoints[0]) & 0xff);\n}\n\nvar IndicInfo = function IndicInfo(category, position, syllableType, syllable) {\n  _classCallCheck(this, IndicInfo);\n\n  this.category = category;\n  this.position = position;\n  this.syllableType = syllableType;\n  this.syllable = syllable;\n};\n\nfunction setupSyllables(font, glyphs) {\n  var syllable = 0;\n  var last = 0;\n  for (var _iterator = stateMachine.match(glyphs.map(indicCategory)), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var _ref2 = _ref,\n        start = _ref2[0],\n        end = _ref2[1],\n        tags = _ref2[2];\n\n    if (start > last) {\n      ++syllable;\n      for (var _i2 = last; _i2 < start; _i2++) {\n        glyphs[_i2].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n      }\n    }\n\n    ++syllable;\n\n    // Create shaper info\n    for (var _i3 = start; _i3 <= end; _i3++) {\n      glyphs[_i3].shaperInfo = new IndicInfo(1 << indicCategory(glyphs[_i3]), indicPosition(glyphs[_i3]), tags[0], syllable);\n    }\n\n    last = end + 1;\n  }\n\n  if (last < glyphs.length) {\n    ++syllable;\n    for (var i = last; i < glyphs.length; i++) {\n      glyphs[i].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n    }\n  }\n}\n\nfunction isConsonant(glyph) {\n  return glyph.shaperInfo.category & CONSONANT_FLAGS;\n}\n\nfunction isJoiner(glyph) {\n  return glyph.shaperInfo.category & JOINER_FLAGS;\n}\n\nfunction isHalantOrCoeng(glyph) {\n  return glyph.shaperInfo.category & HALANT_OR_COENG_FLAGS;\n}\n\nfunction wouldSubstitute(glyphs, feature) {\n  for (var _iterator2 = glyphs, _isArray2 = Array.isArray(_iterator2), _i4 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n    var _glyph$features;\n\n    var _ref3;\n\n    if (_isArray2) {\n      if (_i4 >= _iterator2.length) break;\n      _ref3 = _iterator2[_i4++];\n    } else {\n      _i4 = _iterator2.next();\n      if (_i4.done) break;\n      _ref3 = _i4.value;\n    }\n\n    var glyph = _ref3;\n\n    glyph.features = (_glyph$features = {}, _glyph$features[feature] = true, _glyph$features);\n  }\n\n  var GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n  GSUB.applyFeatures([feature], glyphs);\n\n  return glyphs.length === 1;\n}\n\nfunction consonantPosition(font, consonant, virama) {\n  var glyphs = [virama, consonant, virama];\n  if (wouldSubstitute(glyphs.slice(0, 2), 'blwf') || wouldSubstitute(glyphs.slice(1, 3), 'blwf')) {\n    return POSITIONS.Below_C;\n  } else if (wouldSubstitute(glyphs.slice(0, 2), 'pstf') || wouldSubstitute(glyphs.slice(1, 3), 'pstf')) {\n    return POSITIONS.Post_C;\n  } else if (wouldSubstitute(glyphs.slice(0, 2), 'pref') || wouldSubstitute(glyphs.slice(1, 3), 'pref')) {\n    return POSITIONS.Post_C;\n  }\n\n  return POSITIONS.Base_C;\n}\n\nfunction initialReordering(font, glyphs, plan) {\n  var indicConfig = plan.indicConfig;\n  var features = font._layoutEngine.engine.GSUBProcessor.features;\n\n  var dottedCircle = font.glyphForCodePoint(0x25cc).id;\n  var virama = font.glyphForCodePoint(indicConfig.virama).id;\n  if (virama) {\n    var info = new GlyphInfo(font, virama, [indicConfig.virama]);\n    for (var i = 0; i < glyphs.length; i++) {\n      if (glyphs[i].shaperInfo.position === POSITIONS.Base_C) {\n        glyphs[i].shaperInfo.position = consonantPosition(font, glyphs[i].copy(), info);\n      }\n    }\n  }\n\n  for (var start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n    var _glyphs$start$shaperI = glyphs[start].shaperInfo,\n        category = _glyphs$start$shaperI.category,\n        syllableType = _glyphs$start$shaperI.syllableType;\n\n\n    if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') {\n      continue;\n    }\n\n    if (syllableType === 'broken_cluster' && dottedCircle) {\n      var g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n      g.shaperInfo = new IndicInfo(1 << indicCategory(g), indicPosition(g), glyphs[start].shaperInfo.syllableType, glyphs[start].shaperInfo.syllable);\n\n      // Insert after possible Repha.\n      var _i5 = start;\n      while (_i5 < end && glyphs[_i5].shaperInfo.category === CATEGORIES.Repha) {\n        _i5++;\n      }\n\n      glyphs.splice(_i5++, 0, g);\n      end++;\n    }\n\n    // 1. Find base consonant:\n    //\n    // The shaping engine finds the base consonant of the syllable, using the\n    // following algorithm: starting from the end of the syllable, move backwards\n    // until a consonant is found that does not have a below-base or post-base\n    // form (post-base forms have to follow below-base forms), or that is not a\n    // pre-base reordering Ra, or arrive at the first consonant. The consonant\n    // stopped at will be the base.\n\n    var base = end;\n    var limit = start;\n    var hasReph = false;\n\n    // If the syllable starts with Ra + Halant (in a script that has Reph)\n    // and has more than one consonant, Ra is excluded from candidates for\n    // base consonants.\n    if (indicConfig.rephPos !== POSITIONS.Ra_To_Become_Reph && features.rphf && start + 3 <= end && (indicConfig.rephMode === 'Implicit' && !isJoiner(glyphs[start + 2]) || indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === CATEGORIES.ZWJ)) {\n      // See if it matches the 'rphf' feature.\n      var _g = [glyphs[start].copy(), glyphs[start + 1].copy(), glyphs[start + 2].copy()];\n      if (wouldSubstitute(_g.slice(0, 2), 'rphf') || indicConfig.rephMode === 'Explicit' && wouldSubstitute(_g, 'rphf')) {\n        limit += 2;\n        while (limit < end && isJoiner(glyphs[limit])) {\n          limit++;\n        }\n        base = start;\n        hasReph = true;\n      }\n    } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === CATEGORIES.Repha) {\n      limit++;\n      while (limit < end && isJoiner(glyphs[limit])) {\n        limit++;\n      }\n      base = start;\n      hasReph = true;\n    }\n\n    switch (indicConfig.basePos) {\n      case 'Last':\n        {\n          // starting from the end of the syllable, move backwards\n          var _i6 = end;\n          var seenBelow = false;\n\n          do {\n            var _info = glyphs[--_i6].shaperInfo;\n\n            // until a consonant is found\n            if (isConsonant(glyphs[_i6])) {\n              // that does not have a below-base or post-base form\n              // (post-base forms have to follow below-base forms),\n              if (_info.position !== POSITIONS.Below_C && (_info.position !== POSITIONS.Post_C || seenBelow)) {\n                base = _i6;\n                break;\n              }\n\n              // or that is not a pre-base reordering Ra,\n              //\n              // IMPLEMENTATION NOTES:\n              //\n              // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n              // by the logic above already.\n              //\n\n              // or arrive at the first consonant. The consonant stopped at will\n              // be the base.\n              if (_info.position === POSITIONS.Below_C) {\n                seenBelow = true;\n              }\n\n              base = _i6;\n            } else if (start < _i6 && _info.category === CATEGORIES.ZWJ && glyphs[_i6 - 1].shaperInfo.category === CATEGORIES.H) {\n              // A ZWJ after a Halant stops the base search, and requests an explicit\n              // half form.\n              // A ZWJ before a Halant, requests a subjoined form instead, and hence\n              // search continues.  This is particularly important for Bengali\n              // sequence Ra,H,Ya that should form Ya-Phalaa by subjoining Ya.\n              break;\n            }\n          } while (_i6 > limit);\n          break;\n        }\n\n      case 'First':\n        {\n          // The first consonant is always the base.\n          base = start;\n\n          // Mark all subsequent consonants as below.\n          for (var _i7 = base + 1; _i7 < end; _i7++) {\n            if (isConsonant(glyphs[_i7])) {\n              glyphs[_i7].shaperInfo.position = POSITIONS.Below_C;\n            }\n          }\n        }\n    }\n\n    // If the syllable starts with Ra + Halant (in a script that has Reph)\n    // and has more than one consonant, Ra is excluded from candidates for\n    // base consonants.\n    //\n    //  Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n    if (hasReph && base === start && limit - base <= 2) {\n      hasReph = false;\n    }\n\n    // 2. Decompose and reorder Matras:\n    //\n    // Each matra and any syllable modifier sign in the cluster are moved to the\n    // appropriate position relative to the consonant(s) in the cluster. The\n    // shaping engine decomposes two- or three-part matras into their constituent\n    // parts before any repositioning. Matra characters are classified by which\n    // consonant in a conjunct they have affinity for and are reordered to the\n    // following positions:\n    //\n    //   o Before first half form in the syllable\n    //   o After subjoined consonants\n    //   o After post-form consonant\n    //   o After main consonant (for above marks)\n    //\n    // IMPLEMENTATION NOTES:\n    //\n    // The normalize() routine has already decomposed matras for us, so we don't\n    // need to worry about that.\n\n    // 3.  Reorder marks to canonical order:\n    //\n    // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n    // if necessary, so that the nukta is first.\n    //\n    // IMPLEMENTATION NOTES:\n    //\n    // We don't need to do this: the normalize() routine already did this for us.\n\n    // Reorder characters\n\n    for (var _i8 = start; _i8 < base; _i8++) {\n      var _info2 = glyphs[_i8].shaperInfo;\n      _info2.position = Math.min(POSITIONS.Pre_C, _info2.position);\n    }\n\n    if (base < end) {\n      glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n    }\n\n    // Mark final consonants.  A final consonant is one appearing after a matra,\n    // like in Khmer.\n    for (var _i9 = base + 1; _i9 < end; _i9++) {\n      if (glyphs[_i9].shaperInfo.category === CATEGORIES.M) {\n        for (var j = _i9 + 1; j < end; j++) {\n          if (isConsonant(glyphs[j])) {\n            glyphs[j].shaperInfo.position = POSITIONS.Final_C;\n            break;\n          }\n        }\n        break;\n      }\n    }\n\n    // Handle beginning Ra\n    if (hasReph) {\n      glyphs[start].shaperInfo.position = POSITIONS.Ra_To_Become_Reph;\n    }\n\n    // For old-style Indic script tags, move the first post-base Halant after\n    // last consonant.\n    //\n    // Reports suggest that in some scripts Uniscribe does this only if there\n    // is *not* a Halant after last consonant already (eg. Kannada), while it\n    // does it unconditionally in other scripts (eg. Malayalam).  We don't\n    // currently know about other scripts, so we single out Malayalam for now.\n    //\n    // Kannada test case:\n    // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n    // With some versions of Lohit Kannada.\n    // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n    //\n    // Malayalam test case:\n    // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n    // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n    if (plan.isOldSpec) {\n      var disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n      for (var _i10 = base + 1; _i10 < end; _i10++) {\n        if (glyphs[_i10].shaperInfo.category === CATEGORIES.H) {\n          var _j = void 0;\n          for (_j = end - 1; _j > _i10; _j--) {\n            if (isConsonant(glyphs[_j]) || disallowDoubleHalants && glyphs[_j].shaperInfo.category === CATEGORIES.H) {\n              break;\n            }\n          }\n\n          if (glyphs[_j].shaperInfo.category !== CATEGORIES.H && _j > _i10) {\n            // Move Halant to after last consonant.\n            var t = glyphs[_i10];\n            glyphs.splice.apply(glyphs, [_i10, 0].concat(glyphs.splice(_i10 + 1, _j - _i10)));\n            glyphs[_j] = t;\n          }\n\n          break;\n        }\n      }\n    }\n\n    // Attach misc marks to previous char to move with them.\n    var lastPos = POSITIONS.Start;\n    for (var _i11 = start; _i11 < end; _i11++) {\n      var _info3 = glyphs[_i11].shaperInfo;\n      if (_info3.category & (JOINER_FLAGS | CATEGORIES.N | CATEGORIES.RS | CATEGORIES.CM | HALANT_OR_COENG_FLAGS & _info3.category)) {\n        _info3.position = lastPos;\n        if (_info3.category === CATEGORIES.H && _info3.position === POSITIONS.Pre_M) {\n          // Uniscribe doesn't move the Halant with Left Matra.\n          // TEST: U+092B,U+093F,U+094DE\n          // We follow.  This is important for the Sinhala\n          // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n          // where U+0DD9 is a left matra and U+0DCA is the virama.\n          // We don't want to move the virama with the left matra.\n          // TEST: U+0D9A,U+0DDA\n          for (var _j2 = _i11; _j2 > start; _j2--) {\n            if (glyphs[_j2 - 1].shaperInfo.position !== POSITIONS.Pre_M) {\n              _info3.position = glyphs[_j2 - 1].shaperInfo.position;\n              break;\n            }\n          }\n        }\n      } else if (_info3.position !== POSITIONS.SMVD) {\n        lastPos = _info3.position;\n      }\n    }\n\n    // For post-base consonants let them own anything before them\n    // since the last consonant or matra.\n    var last = base;\n    for (var _i12 = base + 1; _i12 < end; _i12++) {\n      if (isConsonant(glyphs[_i12])) {\n        for (var _j3 = last + 1; _j3 < _i12; _j3++) {\n          if (glyphs[_j3].shaperInfo.position < POSITIONS.SMVD) {\n            glyphs[_j3].shaperInfo.position = glyphs[_i12].shaperInfo.position;\n          }\n        }\n        last = _i12;\n      } else if (glyphs[_i12].shaperInfo.category === CATEGORIES.M) {\n        last = _i12;\n      }\n    }\n\n    var arr = glyphs.slice(start, end);\n    arr.sort(function (a, b) {\n      return a.shaperInfo.position - b.shaperInfo.position;\n    });\n    glyphs.splice.apply(glyphs, [start, arr.length].concat(arr));\n\n    // Find base again\n    for (var _i13 = start; _i13 < end; _i13++) {\n      if (glyphs[_i13].shaperInfo.position === POSITIONS.Base_C) {\n        base = _i13;\n        break;\n      }\n    }\n\n    // Setup features now\n\n    // Reph\n    for (var _i14 = start; _i14 < end && glyphs[_i14].shaperInfo.position === POSITIONS.Ra_To_Become_Reph; _i14++) {\n      glyphs[_i14].features.rphf = true;\n    }\n\n    // Pre-base\n    var blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n    for (var _i15 = start; _i15 < base; _i15++) {\n      glyphs[_i15].features.half = true;\n      if (blwf) {\n        glyphs[_i15].features.blwf = true;\n      }\n    }\n\n    // Post-base\n    for (var _i16 = base + 1; _i16 < end; _i16++) {\n      glyphs[_i16].features.abvf = true;\n      glyphs[_i16].features.pstf = true;\n      glyphs[_i16].features.blwf = true;\n    }\n\n    if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n      // Old-spec eye-lash Ra needs special handling.  From the\n      // spec:\n      //\n      // \"The feature 'below-base form' is applied to consonants\n      // having below-base forms and following the base consonant.\n      // The exception is vattu, which may appear below half forms\n      // as well as below the base glyph. The feature 'below-base\n      // form' will be applied to all such occurrences of Ra as well.\"\n      //\n      // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n      // with Sanskrit 2003 font.\n      //\n      // However, note that Ra,Halant,ZWJ is the correct way to\n      // request eyelash form of Ra, so we wouldbn't inhibit it\n      // in that sequence.\n      //\n      // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n      for (var _i17 = start; _i17 + 1 < base; _i17++) {\n        if (glyphs[_i17].shaperInfo.category === CATEGORIES.Ra && glyphs[_i17 + 1].shaperInfo.category === CATEGORIES.H && (_i17 + 1 === base || glyphs[_i17 + 2].shaperInfo.category === CATEGORIES.ZWJ)) {\n          glyphs[_i17].features.blwf = true;\n          glyphs[_i17 + 1].features.blwf = true;\n        }\n      }\n    }\n\n    var prefLen = 2;\n    if (features.pref && base + prefLen < end) {\n      // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n      for (var _i18 = base + 1; _i18 + prefLen - 1 < end; _i18++) {\n        var _g2 = [glyphs[_i18].copy(), glyphs[_i18 + 1].copy()];\n        if (wouldSubstitute(_g2, 'pref')) {\n          for (var _j4 = 0; _j4 < prefLen; _j4++) {\n            glyphs[_i18++].features.pref = true;\n          }\n\n          // Mark the subsequent stuff with 'cfar'.  Used in Khmer.\n          // Read the feature spec.\n          // This allows distinguishing the following cases with MS Khmer fonts:\n          // U+1784,U+17D2,U+179A,U+17D2,U+1782\n          // U+1784,U+17D2,U+1782,U+17D2,U+179A\n          if (features.cfar) {\n            for (; _i18 < end; _i18++) {\n              glyphs[_i18].features.cfar = true;\n            }\n          }\n\n          break;\n        }\n      }\n    }\n\n    // Apply ZWJ/ZWNJ effects\n    for (var _i19 = start + 1; _i19 < end; _i19++) {\n      if (isJoiner(glyphs[_i19])) {\n        var nonJoiner = glyphs[_i19].shaperInfo.category === CATEGORIES.ZWNJ;\n        var _j5 = _i19;\n\n        do {\n          _j5--;\n\n          // ZWJ/ZWNJ should disable CJCT.  They do that by simply\n          // being there, since we don't skip them for the CJCT\n          // feature (ie. F_MANUAL_ZWJ)\n\n          // A ZWNJ disables HALF.\n          if (nonJoiner) {\n            delete glyphs[_j5].features.half;\n          }\n        } while (_j5 > start && !isConsonant(glyphs[_j5]));\n      }\n    }\n  }\n}\n\nfunction finalReordering(font, glyphs, plan) {\n  var indicConfig = plan.indicConfig;\n  var features = font._layoutEngine.engine.GSUBProcessor.features;\n\n  for (var start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n    // 4. Final reordering:\n    //\n    // After the localized forms and basic shaping forms GSUB features have been\n    // applied (see below), the shaping engine performs some final glyph\n    // reordering before applying all the remaining font features to the entire\n    // cluster.\n\n    var tryPref = !!features.pref;\n\n    // Find base again\n    var base = start;\n    for (; base < end; base++) {\n      if (glyphs[base].shaperInfo.position >= POSITIONS.Base_C) {\n        if (tryPref && base + 1 < end) {\n          for (var i = base + 1; i < end; i++) {\n            if (glyphs[i].features.pref) {\n              if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n                // Ok, this was a 'pref' candidate but didn't form any.\n                // Base is around here...\n                base = i;\n                while (base < end && isHalantOrCoeng(glyphs[base])) {\n                  base++;\n                }\n                glyphs[base].shaperInfo.position = POSITIONS.BASE_C;\n                tryPref = false;\n              }\n              break;\n            }\n          }\n        }\n\n        // For Malayalam, skip over unformed below- (but NOT post-) forms.\n        if (plan.unicodeScript === 'Malayalam') {\n          for (var _i20 = base + 1; _i20 < end; _i20++) {\n            while (_i20 < end && isJoiner(glyphs[_i20])) {\n              _i20++;\n            }\n\n            if (_i20 === end || !isHalantOrCoeng(glyphs[_i20])) {\n              break;\n            }\n\n            _i20++; // Skip halant.\n            while (_i20 < end && isJoiner(glyphs[_i20])) {\n              _i20++;\n            }\n\n            if (_i20 < end && isConsonant(glyphs[_i20]) && glyphs[_i20].shaperInfo.position === POSITIONS.Below_C) {\n              base = _i20;\n              glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n            }\n          }\n        }\n\n        if (start < base && glyphs[base].shaperInfo.position > POSITIONS.Base_C) {\n          base--;\n        }\n        break;\n      }\n    }\n\n    if (base === end && start < base && glyphs[base - 1].shaperInfo.category === CATEGORIES.ZWJ) {\n      base--;\n    }\n\n    if (base < end) {\n      while (start < base && glyphs[base].shaperInfo.category & (CATEGORIES.N | HALANT_OR_COENG_FLAGS)) {\n        base--;\n      }\n    }\n\n    // o Reorder matras:\n    //\n    // If a pre-base matra character had been reordered before applying basic\n    // features, the glyph can be moved closer to the main consonant based on\n    // whether half-forms had been formed. Actual position for the matra is\n    // defined as “after last standalone halant glyph, after initial matra\n    // position and before the main consonant”. If ZWJ or ZWNJ follow this\n    // halant, position is moved after it.\n    //\n\n    if (start + 1 < end && start < base) {\n      // Otherwise there can't be any pre-base matra characters.\n      // If we lost track of base, alas, position before last thingy.\n      var newPos = base === end ? base - 2 : base - 1;\n\n      // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n      // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n      // We want to position matra after them.\n      if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n        while (newPos > start && !(glyphs[newPos].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n          newPos--;\n        }\n\n        // If we found no Halant we are done.\n        // Otherwise only proceed if the Halant does\n        // not belong to the Matra itself!\n        if (isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n          // If ZWJ or ZWNJ follow this halant, position is moved after it.\n          if (newPos + 1 < end && isJoiner(glyphs[newPos + 1])) {\n            newPos++;\n          }\n        } else {\n          newPos = start; // No move.\n        }\n      }\n\n      if (start < newPos && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n        // Now go see if there's actually any matras...\n        for (var _i21 = newPos; _i21 > start; _i21--) {\n          if (glyphs[_i21 - 1].shaperInfo.position === POSITIONS.Pre_M) {\n            var oldPos = _i21 - 1;\n            if (oldPos < base && base <= newPos) {\n              // Shouldn't actually happen.\n              base--;\n            }\n\n            var tmp = glyphs[oldPos];\n            glyphs.splice.apply(glyphs, [oldPos, 0].concat(glyphs.splice(oldPos + 1, newPos - oldPos)));\n            glyphs[newPos] = tmp;\n\n            newPos--;\n          }\n        }\n      }\n    }\n\n    // o Reorder reph:\n    //\n    // Reph’s original position is always at the beginning of the syllable,\n    // (i.e. it is not reordered at the character reordering stage). However,\n    // it will be reordered according to the basic-forms shaping results.\n    // Possible positions for reph, depending on the script, are; after main,\n    // before post-base consonant forms, and after post-base consonant forms.\n\n    // Two cases:\n    //\n    // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n    //   we should only move it if the sequence ligated to the repha form.\n    //\n    // - If repha is encoded separately and in the logical position, we should only\n    //   move it if it did NOT ligate.  If it ligated, it's probably the font trying\n    //   to make it work without the reordering.\n    if (start + 1 < end && glyphs[start].shaperInfo.position === POSITIONS.Ra_To_Become_Reph && glyphs[start].shaperInfo.category === CATEGORIES.Repha !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)) {\n      var newRephPos = void 0;\n      var rephPos = indicConfig.rephPos;\n      var found = false;\n\n      // 1. If reph should be positioned after post-base consonant forms,\n      //    proceed to step 5.\n      if (rephPos !== POSITIONS.After_Post) {\n        //  2. If the reph repositioning class is not after post-base: target\n        //     position is after the first explicit halant glyph between the\n        //     first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n        //     are following this halant, position is moved after it. If such\n        //     position is found, this is the target position. Otherwise,\n        //     proceed to the next step.\n        //\n        //     Note: in old-implementation fonts, where classifications were\n        //     fixed in shaping engine, there was no case where reph position\n        //     will be found on this step.\n        newRephPos = start + 1;\n        while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n          newRephPos++;\n        }\n\n        if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n          // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n          if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n            newRephPos++;\n          }\n\n          found = true;\n        }\n\n        // 3. If reph should be repositioned after the main consonant: find the\n        //    first consonant not ligated with main, or find the first\n        //    consonant that is not a potential pre-base reordering Ra.\n        if (!found && rephPos === POSITIONS.After_Main) {\n          newRephPos = base;\n          while (newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= POSITIONS.After_Main) {\n            newRephPos++;\n          }\n\n          found = newRephPos < end;\n        }\n\n        // 4. If reph should be positioned before post-base consonant, find\n        //    first post-base classified consonant not ligated with main. If no\n        //    consonant is found, the target position should be before the\n        //    first matra, syllable modifier sign or vedic sign.\n        //\n        // This is our take on what step 4 is trying to say (and failing, BADLY).\n        if (!found && rephPos === POSITIONS.After_Sub) {\n          newRephPos = base;\n          while (newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & (POSITIONS.Post_C | POSITIONS.After_Post | POSITIONS.SMVD))) {\n            newRephPos++;\n          }\n\n          found = newRephPos < end;\n        }\n      }\n\n      //  5. If no consonant is found in steps 3 or 4, move reph to a position\n      //     immediately before the first post-base matra, syllable modifier\n      //     sign or vedic sign that has a reordering class after the intended\n      //     reph position. For example, if the reordering position for reph\n      //     is post-main, it will skip above-base matras that also have a\n      //     post-main position.\n      if (!found) {\n        // Copied from step 2.\n        newRephPos = start + 1;\n        while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n          newRephPos++;\n        }\n\n        if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n          // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n          if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n            newRephPos++;\n          }\n\n          found = true;\n        }\n      }\n\n      // 6. Otherwise, reorder reph to the end of the syllable.\n      if (!found) {\n        newRephPos = end - 1;\n        while (newRephPos > start && glyphs[newRephPos].shaperInfo.position === POSITIONS.SMVD) {\n          newRephPos--;\n        }\n\n        // If the Reph is to be ending up after a Matra,Halant sequence,\n        // position it before that Halant so it can interact with the Matra.\n        // However, if it's a plain Consonant,Halant we shouldn't do that.\n        // Uniscribe doesn't do this.\n        // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n        if (isHalantOrCoeng(glyphs[newRephPos])) {\n          for (var _i22 = base + 1; _i22 < newRephPos; _i22++) {\n            if (glyphs[_i22].shaperInfo.category === CATEGORIES.M) {\n              newRephPos--;\n            }\n          }\n        }\n      }\n\n      var reph = glyphs[start];\n      glyphs.splice.apply(glyphs, [start, 0].concat(glyphs.splice(start + 1, newRephPos - start)));\n      glyphs[newRephPos] = reph;\n\n      if (start < base && base <= newRephPos) {\n        base--;\n      }\n    }\n\n    // o Reorder pre-base reordering consonants:\n    //\n    // If a pre-base reordering consonant is found, reorder it according to\n    // the following rules:\n    if (tryPref && base + 1 < end) {\n      for (var _i23 = base + 1; _i23 < end; _i23++) {\n        if (glyphs[_i23].features.pref) {\n          // 1. Only reorder a glyph produced by substitution during application\n          //    of the <pref> feature. (Note that a font may shape a Ra consonant with\n          //    the feature generally but block it in certain contexts.)\n\n          // Note: We just check that something got substituted.  We don't check that\n          // the <pref> feature actually did it...\n          //\n          // Reorder pref only if it ligated.\n          if (glyphs[_i23].isLigated && !glyphs[_i23].isMultiplied) {\n            // 2. Try to find a target position the same way as for pre-base matra.\n            //    If it is found, reorder pre-base consonant glyph.\n            //\n            // 3. If position is not found, reorder immediately before main\n            //    consonant.\n            var _newPos = base;\n\n            // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n            // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n            // We want to position matra after them.\n            if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n              while (_newPos > start && !(glyphs[_newPos - 1].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n                _newPos--;\n              }\n\n              // In Khmer coeng model, a H,Ra can go *after* matras.  If it goes after a\n              // split matra, it should be reordered to *before* the left part of such matra.\n              if (_newPos > start && glyphs[_newPos - 1].shaperInfo.category === CATEGORIES.M) {\n                var _oldPos2 = _i23;\n                for (var j = base + 1; j < _oldPos2; j++) {\n                  if (glyphs[j].shaperInfo.category === CATEGORIES.M) {\n                    _newPos--;\n                    break;\n                  }\n                }\n              }\n            }\n\n            if (_newPos > start && isHalantOrCoeng(glyphs[_newPos - 1])) {\n              // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n              if (_newPos < end && isJoiner(glyphs[_newPos])) {\n                _newPos++;\n              }\n            }\n\n            var _oldPos = _i23;\n            var _tmp = glyphs[_oldPos];\n            glyphs.splice.apply(glyphs, [_newPos + 1, 0].concat(glyphs.splice(_newPos, _oldPos - _newPos)));\n            glyphs[_newPos] = _tmp;\n\n            if (_newPos <= base && base < _oldPos) {\n              base++;\n            }\n          }\n\n          break;\n        }\n      }\n    }\n\n    // Apply 'init' to the Left Matra if it's a word start.\n    if (glyphs[start].shaperInfo.position === POSITIONS.Pre_M && (!start || !/Cf|Mn/.test(unicode.getCategory(glyphs[start - 1].codePoints[0])))) {\n      glyphs[start].features.init = true;\n    }\n  }\n}\n\nfunction nextSyllable(glyphs, start) {\n  if (start >= glyphs.length) return start;\n  var syllable = glyphs[start].shaperInfo.syllable;\n  while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable) {}\n  return start;\n}\n\nvar _class$7;\nvar _temp$3;\nvar categories$1 = useData.categories;\nvar decompositions$2 = useData.decompositions;\nvar trie$2 = new UnicodeTrie(Buffer(\"AAIAAAAAAAAAALoQAQUO+vHtnHuMX0UVx2d3u/t7bXe7FlqgvB+mpQhFmhikMRAg0ZQmakMU+cPWBzZisEGNjUpoiIYCEgmGUGOEGqOVNPUZUGNA+QNIBU2KREEFFSMBUYRISMXE+B3vnPzOzp553tcWfif5ZO5jnufMzJ2ZO/eumlDqFLAWnAMuBBvBZnC5uXZeBe4WsA1sBzs8/naCXcL1G8GtYDfYA74NvgfuAfcZHmT+fwEeBb8DTwvxPQWeAavACyZvq8z9VYxXwCGglijVBcvACnA8eCM4E6wHG8BF4BLwbvA+8AHwUbAd7AA7wS5wC9gN7gR7wX5wN7gXPAAeBr8Gvwd/Ac+CF8EhoCaV6oBZsBKcAE4FZ0wWeV8P9zxwoTnfCHczuBxsAdvAx8Gnzf1r4X4B3AxuA1+bHJb9m5PzdVGW/Yjv+xXHyfmxFfd9OH8Q/Ar8Bjw1WZT3GfACeAX8N5CfqSmlZsAKsGqqCH8K3DXgbHCuuXYB3HeAd4HLpgrdarbi+EPgY+CT4HPg8ybMTcb9MtyvghtYut/A+b4pf95+ELgfw08Qx/3gADgInjDl0veehPtX8A/wsrn2KtzxDuogWNoJx38k/BzXKeI8Ee5qcBZYD9aZtDbg+AwT19uMX83F7JizCdcvBZdZ97c6/BMfMWmfzfTm88/95aLj+DDSvApcDXZ04uPfaen3TMHPLvi5BezuFPVtD4t/qUcfe3FvP7gb3Ouwo9T+H+gMy/UIjh8DfwBPm7T08d/M8WMBe1Sh3xEjXo+M2s+IESNGjBgxYsSI1wLrOsM1gRsi/P+TzV3/Zc1jvxgR/j8IM9Et1mEGcJeDFeA4cJq5/ia467uF/w1wzwdvB+80998LdwvYZs63w90Bdnbd6Wp/uzz3R4wYMWJEvZzTMm2Xf8SIEfVQd/v+EsaPt3eL90J3wP2WMJ78Trd4t6+P77Hu37cIxp9/ny6YXqrUJeCR6TA74e/nll81MzxejeMtYA94HBwy91bPYow+O/S3A8d7oIM/gRN7CAP29Iqx/B1ThfuwOecM+vA3NmRjf6Gfm3BtH7v+PI7XDpS6EuwDz4O10+0/f9om1F4ehO4OmHp6EO7jxl56nvhsN/15ut+4Z0b657yYkZ7UJ0jhX0bcr3bn+6P87vekN4762QNzvWHZtL+jcH5srzg/uTf0f3pvfj5i+6tYW7rK9+aefO+tuL4BXAQ2gs3gPeBJc//9OL4CXAWuNvc/A64DN4Jbwe0s7jtxvBfsAz8EPwX3gwPgoJAHPQ9/Atf/bO7p/TTP4fglwS/5/zfujfWH5z0cz4Gj+8X5Sf1ib4m+vwbHZ/fdOtP+z+3LOnPp/QL4vxhsApeCy8BWk/a2ftFmYu22Hf4/Ba4B14Hrwc0sP7fh+Cvg6+Au8F1WthA/8pT7UeTxZ/12njkuXT8UyM9i6iur1EEb6f+yPz/eg0b3v4X7x365fMaW42lPu7PTv6vi8i/G+lWF/cvUk7bLl1r+5/rN5tu3j2qvWTd/qV+4h+AqjDGnBsX59GDo94iBXDa6v6Yjl6vu+h8itJcsZq/ZykHhHg/3tMHhUe9s/Yfuny7YNxTvQ8LYdrER2+/c0GBezhrMv3ZNRv7PmYirh7oOv4W1Y72/cwPOzx8U7X8d2295sfE3MPnbBPfSQbHv9nK4HxTqiK/trI7Yy5mLzvuVg/nX+N7V51A3r+gMy/4J434W7l2dYf5PZWGuNX6uh3uzEPetuLY7sZ20zTETY2oxyBhj3DrnfsidYPeXRGLHpxzX6pbFofGRkFBdGhcgW40L4cYtd9JAElO36q4LEzXHX7VMtZ2BEhJjy9dT25fazOtJxhwsBrHzwfu8w12kMYN9fLhIbp2RxlI59rX1dzjpsKl2Fxt3iu6rbofc9q5+KcRrXVzzDn6/Crvk6p/y1GFgGhs9/6maHjBLgv8/18fTxl1q0bPoW8ywsFTGWaazHosrNn/kP2eeqEroZYLZphsZl7L82eephMIqNT8dyT9JjH1Jpg32ubZvTB/SF665ymSnnaqjUHum+1Qn+NyOtz9f2r6y5OQ51b6hYy0D40r2tYXar30+Y/mbVX6JqY+hMC60XZapoh3S/HdOpT3DYu3rs0lKnquyb277JZvyPlqp+f1zVVK2/dJYNpQGf04uYyh1+PTPqfalZ2tO/xwSu+3bOrDzmWvfcTW/fLmibRx6lkvlcOlc8qsE/y5/rnSk67F1iAu1VT6+4jKt5tufn8e2b+n57JKcckhrsKG1Cd6Wu+Y8tf2l5DenPafqQZ/7xstKLeyr+XnInjSelvRgS9n27JPQM5n6Am7jmLG8VK6m7OvyS2L313XYV2r/tth5LWPfNxhyhI+1Up7HVbe/HMgeZE8brtNQ/7tcyX0cn//H2LTO9kpir5VI6yYp9szJW9W2jI1Tqfl5ic2v1GZ5XaG6RDZbyvxMO/DVh1SdUj5y1vraaHs+2/TYNXvtSRoXk4wrf9w6fEctnFt0zL2y+xFsfSrLza2zOTqMiZv8xOpbn8+xsL5ykdj6VsxNKb/Lvxb7nX8u48y1x6yuMW3V9tNxTlouzXslibVxndjC14xda8g2NIbg5x01XAP2lfeIBFSi/zrQEporTXru8fCueiy1CUnqrhspSM9SzbSS64tep9R1ZsZcOxKsUEUfNZeYtr0vjY5DeXW915hT8/PRV8MxlR1HV4DHZZc9R7dzajgWoXikdLtGr0uEfPigsGS/NvYjSHW87XejoXZehZ74XrcqpQ4d5T5f7Gu8f6g7fQmefoqOqk4/VarQv2o4/VDetPDnhjR2dc3BCBp/9NVw7KGfwStVMf6aZNAajj6224j9HCZbpZa/LvH1gU30i/q5WnUdSNEprxv2eIOwx2pcjjLMsmObo008k0J4u69P3d9QdbspW/dy080Nb8PXqcrmj0vsc7tu6qwD1A5oLYr3U3XWSxqj6/a10nCMkudJMyxvrvbK55jUrqU+Xlr/Iai98jY7mVAml5QNHxq31j2m5TrSdmp6z5p+9kpzQntdQbI1Pafr6I9C60gxrALHGtdF6tyhLTtxeBuW+hhqyzPMX931xl6rJ5f6n5h3blpsW7vKbvdBfL1gpYfjDLrvob1drrRT+mcuMf1OrJSdW/P+RfufdUB+pOtdTzhpL5t0jfKr46P3obQfQdPGt1jS+DEkx4MT2PmEg1j72OthqfZNWX+JuZ4at/2sTAmn5cSIMqZIjk0pnD0+aUI6YS9ekdaspWsp8cWEC62dS66UTkq+ypajyvXSlPz4xhQhm/ns6wpXBVI560jHN9aKkdT46spvWT916rONdHNsGSNtl6Hp8oakTVukpF9n3U3Jx0TNefbp3R4jltVfFfpvQkJpNaH/puyco++qbZPz7sE1L3DFGVovc4XPLUPO3ELyrzLiSpmPhaTJfqeJ+t60PiTh9snNW2656upDQ+Wtyg6ueJquB7HSVPspW9a28lDWJouhb6iyv7XjTfVL67j2vjDpvUfMt1Vl4GvctMaeq/vYcFWXIfV5Ku3XaxK951H6dsWFrhcxa3pU/pz3C1xc71tTcaXjGjtJbYIj7UHm7wxSyx+D/d7SfpfJ3wPpfSQp32tS2dt8V2tD7+Bce3rpPa3eC6Dr8Ulq+K+J3HFvbn312Zv2RdStr9g0pP0P/B04XbP3Q8cIT2dlRF6orkrhY/Rv27FqHfL1DP480ffo/V6V7aTHXLKDbTdXOOrnyG1ScvSv6xqve30lPzdpj36M8Pilb+L5vr0xE3dd30nWIfZ45uSSxK4x+CRmTUK6F/LrSsfnj+aOdYyvpXyMK7/OpHWjlDTsa0rJum5K7Ppnj7F9c+0q0qtr7pQji2X9oMwcVrJfmblwU2V2SV3rEk3YuO46XXf8MfrQz077G2zftyDkj/ZqhcZr9nldkOg5ykAt3GunJbR3NGYsUfWafd3ts853C4dLHppOM6WcfM5C+xSbaC/2HMa1H9v1vXdoXm/LKSVpYh5wqmr/X67SfwHtPc9a97p/k8bt0hpbW0j1Svr2m+7Rd98qIQ1pvSF273dKOjHYNmk6fd8/JX3tWIddblBqoU5p7zrZKnd9TppjVq0DSitWqkwz12b2exb7vwjaRvS/TFd/S+8AYvIo+Suri5TwvvZRdV1IQevQ1/8SA+UeH5eto7n/X1Oe86ptaafl8kPjcF7P7W93eD9d5n+oSvn7fFe7I/G9q1IBfylSR71N6fft94ZU18hOXKR+JqUO8f4+5dvLsmWlMQb/Vov+CUDlpTGUndeQlG3fdZWdRPoPgl3mmDlsLnaey/4X3tVuU+o6L3/Pym+qlLV/jk6rlBRd8394hZ6JdnuqIv2ykOh3pfq96Wkq/E8qu2xl88/tOJ4R3tfmpbGi3c5T859bzqr7MbsN03iI5itUNj5eaEKWqIX/KJCQ/iFWNZMmHXs8ovWk53JzFq5vPul6zDjLV36pX7bzvNzB0YlQOZephWtRS5T7eeSq8030R77/HvC1d7tN83Zt9yltrDdwSR0XxsZd5l+MvvvU1/M9jSnj+Nh6FPJbBld/w6XHXH5MZeXrOfS/65g9RTl1JCa8chzX2RZ9/3lXSh4/VqWfEBNq4b82Ytp6m+9Qqxir1jX+rfPdT1vvsWhM6bPbmON6E1LnPCZW7L0qqXswmtqf0MQelZj4myrzYtzvIYmURlvtqapyx+gzRfd0XPfahVSOquMoG+dibBdl46iyfdbV1qvUW9m8+KTudMvkzZe/pqTJ+pWTflX5zw1fVfox6ZTVc8hvHflOSb+OuG1JsZ0kufXAJf8D\",\"base64\"));\nvar stateMachine$1 = new StateMachine(useData);\n\n/**\n * This shaper is an implementation of the Universal Shaping Engine, which\n * uses Unicode data to shape a number of scripts without a dedicated shaping engine.\n * See https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm.\n */\nvar UniversalShaper = (_temp$3 = _class$7 = function (_DefaultShaper) {\n  _inherits(UniversalShaper, _DefaultShaper);\n\n  function UniversalShaper() {\n    _classCallCheck(this, UniversalShaper);\n\n    return _possibleConstructorReturn(this, _DefaultShaper.apply(this, arguments));\n  }\n\n  UniversalShaper.planFeatures = function planFeatures(plan) {\n    plan.addStage(setupSyllables$1);\n\n    // Default glyph pre-processing group\n    plan.addStage(['locl', 'ccmp', 'nukt', 'akhn']);\n\n    // Reordering group\n    plan.addStage(clearSubstitutionFlags);\n    plan.addStage(['rphf'], false);\n    plan.addStage(recordRphf);\n    plan.addStage(clearSubstitutionFlags);\n    plan.addStage(['pref']);\n    plan.addStage(recordPref);\n\n    // Orthographic unit shaping group\n    plan.addStage(['rkrf', 'abvf', 'blwf', 'half', 'pstf', 'vatu', 'cjct']);\n    plan.addStage(reorder);\n\n    // Topographical features\n    // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n    // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n\n    // Standard topographic presentation and positional feature application\n    plan.addStage(['abvs', 'blws', 'pres', 'psts', 'dist', 'abvm', 'blwm']);\n  };\n\n  UniversalShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n    var _loop = function _loop(i) {\n      var codepoint = glyphs[i].codePoints[0];\n      if (decompositions$2[codepoint]) {\n        var decomposed = decompositions$2[codepoint].map(function (c) {\n          var g = plan.font.glyphForCodePoint(c);\n          return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n        });\n\n        glyphs.splice.apply(glyphs, [i, 1].concat(decomposed));\n      }\n    };\n\n    // Decompose split vowels\n    // TODO: do this in a more general unicode normalizer\n    for (var i = glyphs.length - 1; i >= 0; i--) {\n      _loop(i);\n    }\n  };\n\n  return UniversalShaper;\n}(DefaultShaper), _class$7.zeroMarkWidths = 'BEFORE_GPOS', _temp$3);\nfunction useCategory(glyph) {\n  return trie$2.get(glyph.codePoints[0]);\n}\n\nvar USEInfo = function USEInfo(category, syllableType, syllable) {\n  _classCallCheck(this, USEInfo);\n\n  this.category = category;\n  this.syllableType = syllableType;\n  this.syllable = syllable;\n};\n\nfunction setupSyllables$1(font, glyphs) {\n  var syllable = 0;\n  for (var _iterator = stateMachine$1.match(glyphs.map(useCategory)), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var _ref2 = _ref,\n        start = _ref2[0],\n        end = _ref2[1],\n        tags = _ref2[2];\n\n    ++syllable;\n\n    // Create shaper info\n    for (var i = start; i <= end; i++) {\n      glyphs[i].shaperInfo = new USEInfo(categories$1[useCategory(glyphs[i])], tags[0], syllable);\n    }\n\n    // Assign rphf feature\n    var limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n    for (var _i2 = start; _i2 < start + limit; _i2++) {\n      glyphs[_i2].features.rphf = true;\n    }\n  }\n}\n\nfunction clearSubstitutionFlags(font, glyphs) {\n  for (var _iterator2 = glyphs, _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n    var _ref3;\n\n    if (_isArray2) {\n      if (_i3 >= _iterator2.length) break;\n      _ref3 = _iterator2[_i3++];\n    } else {\n      _i3 = _iterator2.next();\n      if (_i3.done) break;\n      _ref3 = _i3.value;\n    }\n\n    var glyph = _ref3;\n\n    glyph.substituted = false;\n  }\n}\n\nfunction recordRphf(font, glyphs) {\n  for (var _iterator3 = glyphs, _isArray3 = Array.isArray(_iterator3), _i4 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n    var _ref4;\n\n    if (_isArray3) {\n      if (_i4 >= _iterator3.length) break;\n      _ref4 = _iterator3[_i4++];\n    } else {\n      _i4 = _iterator3.next();\n      if (_i4.done) break;\n      _ref4 = _i4.value;\n    }\n\n    var glyph = _ref4;\n\n    if (glyph.substituted && glyph.features.rphf) {\n      // Mark a substituted repha.\n      glyph.shaperInfo.category = 'R';\n    }\n  }\n}\n\nfunction recordPref(font, glyphs) {\n  for (var _iterator4 = glyphs, _isArray4 = Array.isArray(_iterator4), _i5 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n    var _ref5;\n\n    if (_isArray4) {\n      if (_i5 >= _iterator4.length) break;\n      _ref5 = _iterator4[_i5++];\n    } else {\n      _i5 = _iterator4.next();\n      if (_i5.done) break;\n      _ref5 = _i5.value;\n    }\n\n    var glyph = _ref5;\n\n    if (glyph.substituted) {\n      // Mark a substituted pref as VPre, as they behave the same way.\n      glyph.shaperInfo.category = 'VPre';\n    }\n  }\n}\n\nfunction reorder(font, glyphs) {\n  var dottedCircle = font.glyphForCodePoint(0x25cc).id;\n\n  for (var start = 0, end = nextSyllable$1(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable$1(glyphs, start)) {\n    var i = void 0,\n        j = void 0;\n    var info = glyphs[start].shaperInfo;\n    var type = info.syllableType;\n\n    // Only a few syllable types need reordering.\n    if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') {\n      continue;\n    }\n\n    // Insert a dotted circle glyph in broken clusters.\n    if (type === 'broken_cluster' && dottedCircle) {\n      var g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n      g.shaperInfo = info;\n\n      // Insert after possible Repha.\n      for (i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++) {}\n      glyphs.splice(++i, 0, g);\n      end++;\n    }\n\n    // Move things forward.\n    if (info.category === 'R' && end - start > 1) {\n      // Got a repha. Reorder it to after first base, before first halant.\n      for (i = start + 1; i < end; i++) {\n        info = glyphs[i].shaperInfo;\n        if (isBase(info) || isHalant(glyphs[i])) {\n          // If we hit a halant, move before it; otherwise it's a base: move to it's\n          // place, and shift things in between backward.\n          if (isHalant(glyphs[i])) {\n            i--;\n          }\n\n          glyphs.splice.apply(glyphs, [start, 0].concat(glyphs.splice(start + 1, i - start), [glyphs[i]]));\n          break;\n        }\n      }\n    }\n\n    // Move things back.\n    for (i = start, j = end; i < end; i++) {\n      info = glyphs[i].shaperInfo;\n      if (isBase(info) || isHalant(glyphs[i])) {\n        // If we hit a halant, move after it; otherwise it's a base: move to it's\n        // place, and shift things in between backward.\n        j = isHalant(glyphs[i]) ? i + 1 : i;\n      } else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) {\n        glyphs.splice.apply(glyphs, [j, 1, glyphs[i]].concat(glyphs.splice(j, i - j)));\n      }\n    }\n  }\n}\n\nfunction nextSyllable$1(glyphs, start) {\n  if (start >= glyphs.length) return start;\n  var syllable = glyphs[start].shaperInfo.syllable;\n  while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable) {}\n  return start;\n}\n\nfunction isHalant(glyph) {\n  return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\n\nfunction isBase(info) {\n  return info.category === 'B' || info.category === 'GB';\n}\n\nvar SHAPERS = {\n  arab: ArabicShaper, // Arabic\n  mong: ArabicShaper, // Mongolian\n  syrc: ArabicShaper, // Syriac\n  'nko ': ArabicShaper, // N'Ko\n  phag: ArabicShaper, // Phags Pa\n  mand: ArabicShaper, // Mandaic\n  mani: ArabicShaper, // Manichaean\n  phlp: ArabicShaper, // Psalter Pahlavi\n\n  hang: HangulShaper, // Hangul\n\n  bng2: IndicShaper, // Bengali\n  beng: IndicShaper, // Bengali\n  dev2: IndicShaper, // Devanagari\n  deva: IndicShaper, // Devanagari\n  gjr2: IndicShaper, // Gujarati\n  gujr: IndicShaper, // Gujarati\n  guru: IndicShaper, // Gurmukhi\n  gur2: IndicShaper, // Gurmukhi\n  knda: IndicShaper, // Kannada\n  knd2: IndicShaper, // Kannada\n  mlm2: IndicShaper, // Malayalam\n  mlym: IndicShaper, // Malayalam\n  ory2: IndicShaper, // Oriya\n  orya: IndicShaper, // Oriya\n  taml: IndicShaper, // Tamil\n  tml2: IndicShaper, // Tamil\n  telu: IndicShaper, // Telugu\n  tel2: IndicShaper, // Telugu\n  khmr: IndicShaper, // Khmer\n\n  bali: UniversalShaper, // Balinese\n  batk: UniversalShaper, // Batak\n  brah: UniversalShaper, // Brahmi\n  bugi: UniversalShaper, // Buginese\n  buhd: UniversalShaper, // Buhid\n  cakm: UniversalShaper, // Chakma\n  cham: UniversalShaper, // Cham\n  dupl: UniversalShaper, // Duployan\n  egyp: UniversalShaper, // Egyptian Hieroglyphs\n  gran: UniversalShaper, // Grantha\n  hano: UniversalShaper, // Hanunoo\n  java: UniversalShaper, // Javanese\n  kthi: UniversalShaper, // Kaithi\n  kali: UniversalShaper, // Kayah Li\n  khar: UniversalShaper, // Kharoshthi\n  khoj: UniversalShaper, // Khojki\n  sind: UniversalShaper, // Khudawadi\n  lepc: UniversalShaper, // Lepcha\n  limb: UniversalShaper, // Limbu\n  mahj: UniversalShaper, // Mahajani\n  // mand: UniversalShaper, // Mandaic\n  // mani: UniversalShaper, // Manichaean\n  mtei: UniversalShaper, // Meitei Mayek\n  modi: UniversalShaper, // Modi\n  // mong: UniversalShaper, // Mongolian\n  // 'nko ': UniversalShaper, // N’Ko\n  hmng: UniversalShaper, // Pahawh Hmong\n  // phag: UniversalShaper, // Phags-pa\n  // phlp: UniversalShaper, // Psalter Pahlavi\n  rjng: UniversalShaper, // Rejang\n  saur: UniversalShaper, // Saurashtra\n  shrd: UniversalShaper, // Sharada\n  sidd: UniversalShaper, // Siddham\n  sinh: UniversalShaper, // Sinhala\n  sund: UniversalShaper, // Sundanese\n  sylo: UniversalShaper, // Syloti Nagri\n  tglg: UniversalShaper, // Tagalog\n  tagb: UniversalShaper, // Tagbanwa\n  tale: UniversalShaper, // Tai Le\n  lana: UniversalShaper, // Tai Tham\n  tavt: UniversalShaper, // Tai Viet\n  takr: UniversalShaper, // Takri\n  tibt: UniversalShaper, // Tibetan\n  tfng: UniversalShaper, // Tifinagh\n  tirh: UniversalShaper, // Tirhuta\n\n  latn: DefaultShaper, // Latin\n  DFLT: DefaultShaper // Default\n};\n\nfunction choose(script) {\n  if (!Array.isArray(script)) {\n    script = [script];\n  }\n\n  for (var _iterator = script, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var s = _ref;\n\n    var shaper = SHAPERS[s];\n    if (shaper) {\n      return shaper;\n    }\n  }\n\n  return DefaultShaper;\n}\n\nvar GSUBProcessor = function (_OTProcessor) {\n  _inherits(GSUBProcessor, _OTProcessor);\n\n  function GSUBProcessor() {\n    _classCallCheck(this, GSUBProcessor);\n\n    return _possibleConstructorReturn(this, _OTProcessor.apply(this, arguments));\n  }\n\n  GSUBProcessor.prototype.applyLookup = function applyLookup(lookupType, table) {\n    var _this2 = this;\n\n    switch (lookupType) {\n      case 1:\n        {\n          // Single Substitution\n          var index = this.coverageIndex(table.coverage);\n          if (index === -1) {\n            return false;\n          }\n\n          var glyph = this.glyphIterator.cur;\n          switch (table.version) {\n            case 1:\n              glyph.id = glyph.id + table.deltaGlyphID & 0xffff;\n              break;\n\n            case 2:\n              glyph.id = table.substitute.get(index);\n              break;\n          }\n\n          return true;\n        }\n\n      case 2:\n        {\n          // Multiple Substitution\n          var _index = this.coverageIndex(table.coverage);\n          if (_index !== -1) {\n            var _glyphs;\n\n            var sequence = table.sequences.get(_index);\n\n            if (sequence.length === 0) {\n              // If the sequence length is zero, delete the glyph.\n              // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n              this.glyphs.splice(this.glyphIterator.index, 1);\n              return true;\n            }\n\n            this.glyphIterator.cur.id = sequence[0];\n            this.glyphIterator.cur.ligatureComponent = 0;\n\n            var features = this.glyphIterator.cur.features;\n            var curGlyph = this.glyphIterator.cur;\n            var replacement = sequence.slice(1).map(function (gid, i) {\n              var glyph = new GlyphInfo(_this2.font, gid, undefined, features);\n              glyph.shaperInfo = curGlyph.shaperInfo;\n              glyph.isLigated = curGlyph.isLigated;\n              glyph.ligatureComponent = i + 1;\n              glyph.substituted = true;\n              glyph.isMultiplied = true;\n              return glyph;\n            });\n\n            (_glyphs = this.glyphs).splice.apply(_glyphs, [this.glyphIterator.index + 1, 0].concat(replacement));\n            return true;\n          }\n\n          return false;\n        }\n\n      case 3:\n        {\n          // Alternate Substitution\n          var _index2 = this.coverageIndex(table.coverage);\n          if (_index2 !== -1) {\n            var USER_INDEX = 0; // TODO\n            this.glyphIterator.cur.id = table.alternateSet.get(_index2)[USER_INDEX];\n            return true;\n          }\n\n          return false;\n        }\n\n      case 4:\n        {\n          // Ligature Substitution\n          var _index3 = this.coverageIndex(table.coverage);\n          if (_index3 === -1) {\n            return false;\n          }\n\n          for (var _iterator = table.ligatureSets.get(_index3), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n            var _ref;\n\n            if (_isArray) {\n              if (_i >= _iterator.length) break;\n              _ref = _iterator[_i++];\n            } else {\n              _i = _iterator.next();\n              if (_i.done) break;\n              _ref = _i.value;\n            }\n\n            var ligature = _ref;\n\n            var matched = this.sequenceMatchIndices(1, ligature.components);\n            if (!matched) {\n              continue;\n            }\n\n            var _curGlyph = this.glyphIterator.cur;\n\n            // Concatenate all of the characters the new ligature will represent\n            var characters = _curGlyph.codePoints.slice();\n            for (var _iterator2 = matched, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n              var _ref2;\n\n              if (_isArray2) {\n                if (_i2 >= _iterator2.length) break;\n                _ref2 = _iterator2[_i2++];\n              } else {\n                _i2 = _iterator2.next();\n                if (_i2.done) break;\n                _ref2 = _i2.value;\n              }\n\n              var _index4 = _ref2;\n\n              characters.push.apply(characters, this.glyphs[_index4].codePoints);\n            }\n\n            // Create the replacement ligature glyph\n            var ligatureGlyph = new GlyphInfo(this.font, ligature.glyph, characters, _curGlyph.features);\n            ligatureGlyph.shaperInfo = _curGlyph.shaperInfo;\n            ligatureGlyph.isLigated = true;\n            ligatureGlyph.substituted = true;\n\n            // From Harfbuzz:\n            // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n            //   the ligature to keep its old ligature id.  This will allow it to attach to\n            //   a base ligature in GPOS.  Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n            //   and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n            //   ligature id and component value of 2.  Then if SHADDA,FATHA form a ligature\n            //   later, we don't want them to lose their ligature id/component, otherwise\n            //   GPOS will fail to correctly position the mark ligature on top of the\n            //   LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n            //\n            // - If a ligature is formed of components that some of which are also ligatures\n            //   themselves, and those ligature components had marks attached to *their*\n            //   components, we have to attach the marks to the new ligature component\n            //   positions!  Now *that*'s tricky!  And these marks may be following the\n            //   last component of the whole sequence, so we should loop forward looking\n            //   for them and update them.\n            //\n            //   Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n            //   'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n            //   id and component == 1.  Now, during 'liga', the LAM and the LAM-HEH ligature\n            //   form a LAM-LAM-HEH ligature.  We need to reassign the SHADDA and FATHA to\n            //   the new ligature with a component value of 2.\n            //\n            //   This in fact happened to a font...  See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n            var isMarkLigature = _curGlyph.isMark;\n            for (var i = 0; i < matched.length && isMarkLigature; i++) {\n              isMarkLigature = this.glyphs[matched[i]].isMark;\n            }\n\n            ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n\n            var lastLigID = _curGlyph.ligatureID;\n            var lastNumComps = _curGlyph.codePoints.length;\n            var curComps = lastNumComps;\n            var idx = this.glyphIterator.index + 1;\n\n            // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n            // This allows GPOS to attach marks to the correct ligature components.\n            for (var _iterator3 = matched, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n              var _ref3;\n\n              if (_isArray3) {\n                if (_i3 >= _iterator3.length) break;\n                _ref3 = _iterator3[_i3++];\n              } else {\n                _i3 = _iterator3.next();\n                if (_i3.done) break;\n                _ref3 = _i3.value;\n              }\n\n              var matchIndex = _ref3;\n\n              // Don't assign new ligature components for mark ligatures (see above)\n              if (isMarkLigature) {\n                idx = matchIndex;\n              } else {\n                while (idx < matchIndex) {\n                  var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n                  this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n                  this.glyphs[idx].ligatureComponent = ligatureComponent;\n                  idx++;\n                }\n              }\n\n              lastLigID = this.glyphs[idx].ligatureID;\n              lastNumComps = this.glyphs[idx].codePoints.length;\n              curComps += lastNumComps;\n              idx++; // skip base glyph\n            }\n\n            // Adjust ligature components for any marks following\n            if (lastLigID && !isMarkLigature) {\n              for (var _i4 = idx; _i4 < this.glyphs.length; _i4++) {\n                if (this.glyphs[_i4].ligatureID === lastLigID) {\n                  var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[_i4].ligatureComponent || 1, lastNumComps);\n                  this.glyphs[_i4].ligatureComponent = ligatureComponent;\n                } else {\n                  break;\n                }\n              }\n            }\n\n            // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n            for (var _i5 = matched.length - 1; _i5 >= 0; _i5--) {\n              this.glyphs.splice(matched[_i5], 1);\n            }\n\n            this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n            return true;\n          }\n\n          return false;\n        }\n\n      case 5:\n        // Contextual Substitution\n        return this.applyContext(table);\n\n      case 6:\n        // Chaining Contextual Substitution\n        return this.applyChainingContext(table);\n\n      case 7:\n        // Extension Substitution\n        return this.applyLookup(table.lookupType, table.extension);\n\n      default:\n        throw new Error('GSUB lookupType ' + lookupType + ' is not supported');\n    }\n  };\n\n  return GSUBProcessor;\n}(OTProcessor);\n\nvar GPOSProcessor = function (_OTProcessor) {\n  _inherits(GPOSProcessor, _OTProcessor);\n\n  function GPOSProcessor() {\n    _classCallCheck(this, GPOSProcessor);\n\n    return _possibleConstructorReturn(this, _OTProcessor.apply(this, arguments));\n  }\n\n  GPOSProcessor.prototype.applyPositionValue = function applyPositionValue(sequenceIndex, value) {\n    var position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n    if (value.xAdvance != null) {\n      position.xAdvance += value.xAdvance;\n    }\n\n    if (value.yAdvance != null) {\n      position.yAdvance += value.yAdvance;\n    }\n\n    if (value.xPlacement != null) {\n      position.xOffset += value.xPlacement;\n    }\n\n    if (value.yPlacement != null) {\n      position.yOffset += value.yPlacement;\n    }\n\n    // Adjustments for font variations\n    var variationProcessor = this.font._variationProcessor;\n    var variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n    if (variationProcessor && variationStore) {\n      if (value.xPlaDevice) {\n        position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n      }\n\n      if (value.yPlaDevice) {\n        position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n      }\n\n      if (value.xAdvDevice) {\n        position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n      }\n\n      if (value.yAdvDevice) {\n        position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n      }\n    }\n\n    // TODO: device tables\n  };\n\n  GPOSProcessor.prototype.applyLookup = function applyLookup(lookupType, table) {\n    switch (lookupType) {\n      case 1:\n        {\n          // Single positioning value\n          var index = this.coverageIndex(table.coverage);\n          if (index === -1) {\n            return false;\n          }\n\n          switch (table.version) {\n            case 1:\n              this.applyPositionValue(0, table.value);\n              break;\n\n            case 2:\n              this.applyPositionValue(0, table.values.get(index));\n              break;\n          }\n\n          return true;\n        }\n\n      case 2:\n        {\n          // Pair Adjustment Positioning\n          var nextGlyph = this.glyphIterator.peek();\n          if (!nextGlyph) {\n            return false;\n          }\n\n          var _index = this.coverageIndex(table.coverage);\n          if (_index === -1) {\n            return false;\n          }\n\n          switch (table.version) {\n            case 1:\n              // Adjustments for glyph pairs\n              var set = table.pairSets.get(_index);\n\n              for (var _iterator = set, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n                var _ref;\n\n                if (_isArray) {\n                  if (_i >= _iterator.length) break;\n                  _ref = _iterator[_i++];\n                } else {\n                  _i = _iterator.next();\n                  if (_i.done) break;\n                  _ref = _i.value;\n                }\n\n                var _pair = _ref;\n\n                if (_pair.secondGlyph === nextGlyph.id) {\n                  this.applyPositionValue(0, _pair.value1);\n                  this.applyPositionValue(1, _pair.value2);\n                  return true;\n                }\n              }\n\n              return false;\n\n            case 2:\n              // Class pair adjustment\n              var class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n              var class2 = this.getClassID(nextGlyph.id, table.classDef2);\n              if (class1 === -1 || class2 === -1) {\n                return false;\n              }\n\n              var pair = table.classRecords.get(class1).get(class2);\n              this.applyPositionValue(0, pair.value1);\n              this.applyPositionValue(1, pair.value2);\n              return true;\n          }\n        }\n\n      case 3:\n        {\n          // Cursive Attachment Positioning\n          var nextIndex = this.glyphIterator.peekIndex();\n          var _nextGlyph = this.glyphs[nextIndex];\n          if (!_nextGlyph) {\n            return false;\n          }\n\n          var curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n          if (!curRecord || !curRecord.exitAnchor) {\n            return false;\n          }\n\n          var nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, _nextGlyph.id)];\n          if (!nextRecord || !nextRecord.entryAnchor) {\n            return false;\n          }\n\n          var entry = this.getAnchor(nextRecord.entryAnchor);\n          var exit = this.getAnchor(curRecord.exitAnchor);\n\n          var cur = this.positions[this.glyphIterator.index];\n          var next = this.positions[nextIndex];\n\n          switch (this.direction) {\n            case 'ltr':\n              cur.xAdvance = exit.x + cur.xOffset;\n\n              var d = entry.x + next.xOffset;\n              next.xAdvance -= d;\n              next.xOffset -= d;\n              break;\n\n            case 'rtl':\n              d = exit.x + cur.xOffset;\n              cur.xAdvance -= d;\n              cur.xOffset -= d;\n              next.xAdvance = entry.x + next.xOffset;\n              break;\n          }\n\n          if (this.glyphIterator.flags.rightToLeft) {\n            this.glyphIterator.cur.cursiveAttachment = nextIndex;\n            cur.yOffset = entry.y - exit.y;\n          } else {\n            _nextGlyph.cursiveAttachment = this.glyphIterator.index;\n            cur.yOffset = exit.y - entry.y;\n          }\n\n          return true;\n        }\n\n      case 4:\n        {\n          // Mark to base positioning\n          var markIndex = this.coverageIndex(table.markCoverage);\n          if (markIndex === -1) {\n            return false;\n          }\n\n          // search backward for a base glyph\n          var baseGlyphIndex = this.glyphIterator.index;\n          while (--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0)) {}\n\n          if (baseGlyphIndex < 0) {\n            return false;\n          }\n\n          var baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n          if (baseIndex === -1) {\n            return false;\n          }\n\n          var markRecord = table.markArray[markIndex];\n          var baseAnchor = table.baseArray[baseIndex][markRecord.class];\n          this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n          return true;\n        }\n\n      case 5:\n        {\n          // Mark to ligature positioning\n          var _markIndex = this.coverageIndex(table.markCoverage);\n          if (_markIndex === -1) {\n            return false;\n          }\n\n          // search backward for a base glyph\n          var _baseGlyphIndex = this.glyphIterator.index;\n          while (--_baseGlyphIndex >= 0 && this.glyphs[_baseGlyphIndex].isMark) {}\n\n          if (_baseGlyphIndex < 0) {\n            return false;\n          }\n\n          var ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[_baseGlyphIndex].id);\n          if (ligIndex === -1) {\n            return false;\n          }\n\n          var ligAttach = table.ligatureArray[ligIndex];\n          var markGlyph = this.glyphIterator.cur;\n          var ligGlyph = this.glyphs[_baseGlyphIndex];\n          var compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;\n\n          var _markRecord = table.markArray[_markIndex];\n          var _baseAnchor = ligAttach[compIndex][_markRecord.class];\n          this.applyAnchor(_markRecord, _baseAnchor, _baseGlyphIndex);\n          return true;\n        }\n\n      case 6:\n        {\n          // Mark to mark positioning\n          var mark1Index = this.coverageIndex(table.mark1Coverage);\n          if (mark1Index === -1) {\n            return false;\n          }\n\n          // get the previous mark to attach to\n          var prevIndex = this.glyphIterator.peekIndex(-1);\n          var prev = this.glyphs[prevIndex];\n          if (!prev || !prev.isMark) {\n            return false;\n          }\n\n          var _cur = this.glyphIterator.cur;\n\n          // The following logic was borrowed from Harfbuzz\n          var good = false;\n          if (_cur.ligatureID === prev.ligatureID) {\n            if (!_cur.ligatureID) {\n              // Marks belonging to the same base\n              good = true;\n            } else if (_cur.ligatureComponent === prev.ligatureComponent) {\n              // Marks belonging to the same ligature component\n              good = true;\n            }\n          } else {\n            // If ligature ids don't match, it may be the case that one of the marks\n            // itself is a ligature, in which case match.\n            if (_cur.ligatureID && !_cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) {\n              good = true;\n            }\n          }\n\n          if (!good) {\n            return false;\n          }\n\n          var mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n          if (mark2Index === -1) {\n            return false;\n          }\n\n          var _markRecord2 = table.mark1Array[mark1Index];\n          var _baseAnchor2 = table.mark2Array[mark2Index][_markRecord2.class];\n          this.applyAnchor(_markRecord2, _baseAnchor2, prevIndex);\n          return true;\n        }\n\n      case 7:\n        // Contextual positioning\n        return this.applyContext(table);\n\n      case 8:\n        // Chaining contextual positioning\n        return this.applyChainingContext(table);\n\n      case 9:\n        // Extension positioning\n        return this.applyLookup(table.lookupType, table.extension);\n\n      default:\n        throw new Error('Unsupported GPOS table: ' + lookupType);\n    }\n  };\n\n  GPOSProcessor.prototype.applyAnchor = function applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n    var baseCoords = this.getAnchor(baseAnchor);\n    var markCoords = this.getAnchor(markRecord.markAnchor);\n\n    var basePos = this.positions[baseGlyphIndex];\n    var markPos = this.positions[this.glyphIterator.index];\n\n    markPos.xOffset = baseCoords.x - markCoords.x;\n    markPos.yOffset = baseCoords.y - markCoords.y;\n    this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n  };\n\n  GPOSProcessor.prototype.getAnchor = function getAnchor(anchor) {\n    // TODO: contour point, device tables\n    var x = anchor.xCoordinate;\n    var y = anchor.yCoordinate;\n\n    // Adjustments for font variations\n    var variationProcessor = this.font._variationProcessor;\n    var variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n    if (variationProcessor && variationStore) {\n      if (anchor.xDeviceTable) {\n        x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n      }\n\n      if (anchor.yDeviceTable) {\n        y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n      }\n    }\n\n    return { x: x, y: y };\n  };\n\n  GPOSProcessor.prototype.applyFeatures = function applyFeatures(userFeatures, glyphs, advances) {\n    _OTProcessor.prototype.applyFeatures.call(this, userFeatures, glyphs, advances);\n\n    for (var i = 0; i < this.glyphs.length; i++) {\n      this.fixCursiveAttachment(i);\n    }\n\n    this.fixMarkAttachment();\n  };\n\n  GPOSProcessor.prototype.fixCursiveAttachment = function fixCursiveAttachment(i) {\n    var glyph = this.glyphs[i];\n    if (glyph.cursiveAttachment != null) {\n      var j = glyph.cursiveAttachment;\n\n      glyph.cursiveAttachment = null;\n      this.fixCursiveAttachment(j);\n\n      this.positions[i].yOffset += this.positions[j].yOffset;\n    }\n  };\n\n  GPOSProcessor.prototype.fixMarkAttachment = function fixMarkAttachment() {\n    for (var i = 0; i < this.glyphs.length; i++) {\n      var glyph = this.glyphs[i];\n      if (glyph.markAttachment != null) {\n        var j = glyph.markAttachment;\n\n        this.positions[i].xOffset += this.positions[j].xOffset;\n        this.positions[i].yOffset += this.positions[j].yOffset;\n\n        if (this.direction === 'ltr') {\n          for (var k = j; k < i; k++) {\n            this.positions[i].xOffset -= this.positions[k].xAdvance;\n            this.positions[i].yOffset -= this.positions[k].yAdvance;\n          }\n        } else {\n          for (var _k = j + 1; _k < i + 1; _k++) {\n            this.positions[i].xOffset += this.positions[_k].xAdvance;\n            this.positions[i].yOffset += this.positions[_k].yAdvance;\n          }\n        }\n      }\n    }\n  };\n\n  return GPOSProcessor;\n}(OTProcessor);\n\nvar OTLayoutEngine = function () {\n  function OTLayoutEngine(font) {\n    _classCallCheck(this, OTLayoutEngine);\n\n    this.font = font;\n    this.glyphInfos = null;\n    this.plan = null;\n    this.GSUBProcessor = null;\n    this.GPOSProcessor = null;\n    this.fallbackPosition = true;\n\n    if (font.GSUB) {\n      this.GSUBProcessor = new GSUBProcessor(font, font.GSUB);\n    }\n\n    if (font.GPOS) {\n      this.GPOSProcessor = new GPOSProcessor(font, font.GPOS);\n    }\n  }\n\n  OTLayoutEngine.prototype.setup = function setup(glyphRun) {\n    var _this = this;\n\n    // Map glyphs to GlyphInfo objects so data can be passed between\n    // GSUB and GPOS without mutating the real (shared) Glyph objects.\n    this.glyphInfos = glyphRun.glyphs.map(function (glyph) {\n      return new GlyphInfo(_this.font, glyph.id, [].concat(glyph.codePoints));\n    });\n\n    // Select a script based on what is available in GSUB/GPOS.\n    var script = null;\n    if (this.GPOSProcessor) {\n      script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n    }\n\n    if (this.GSUBProcessor) {\n      script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n    }\n\n    // Choose a shaper based on the script, and setup a shaping plan.\n    // This determines which features to apply to which glyphs.\n    this.shaper = choose(script);\n    this.plan = new ShapingPlan(this.font, script, glyphRun.direction);\n    this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);\n\n    // Assign chosen features to output glyph run\n    for (var key in this.plan.allFeatures) {\n      glyphRun.features[key] = true;\n    }\n  };\n\n  OTLayoutEngine.prototype.substitute = function substitute(glyphRun) {\n    var _this2 = this;\n\n    if (this.GSUBProcessor) {\n      this.plan.process(this.GSUBProcessor, this.glyphInfos);\n\n      // Map glyph infos back to normal Glyph objects\n      glyphRun.glyphs = this.glyphInfos.map(function (glyphInfo) {\n        return _this2.font.getGlyph(glyphInfo.id, glyphInfo.codePoints);\n      });\n    }\n  };\n\n  OTLayoutEngine.prototype.position = function position(glyphRun) {\n    if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') {\n      this.zeroMarkAdvances(glyphRun.positions);\n    }\n\n    if (this.GPOSProcessor) {\n      this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n    }\n\n    if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') {\n      this.zeroMarkAdvances(glyphRun.positions);\n    }\n\n    // Reverse the glyphs and positions if the script is right-to-left\n    if (glyphRun.direction === 'rtl') {\n      glyphRun.glyphs.reverse();\n      glyphRun.positions.reverse();\n    }\n\n    return this.GPOSProcessor && this.GPOSProcessor.features;\n  };\n\n  OTLayoutEngine.prototype.zeroMarkAdvances = function zeroMarkAdvances(positions) {\n    for (var i = 0; i < this.glyphInfos.length; i++) {\n      if (this.glyphInfos[i].isMark) {\n        positions[i].xAdvance = 0;\n        positions[i].yAdvance = 0;\n      }\n    }\n  };\n\n  OTLayoutEngine.prototype.cleanup = function cleanup() {\n    this.glyphInfos = null;\n    this.plan = null;\n    this.shaper = null;\n  };\n\n  OTLayoutEngine.prototype.getAvailableFeatures = function getAvailableFeatures(script, language) {\n    var features = [];\n\n    if (this.GSUBProcessor) {\n      this.GSUBProcessor.selectScript(script, language);\n      features.push.apply(features, _Object$keys(this.GSUBProcessor.features));\n    }\n\n    if (this.GPOSProcessor) {\n      this.GPOSProcessor.selectScript(script, language);\n      features.push.apply(features, _Object$keys(this.GPOSProcessor.features));\n    }\n\n    return features;\n  };\n\n  return OTLayoutEngine;\n}();\n\nvar LayoutEngine = function () {\n  function LayoutEngine(font) {\n    _classCallCheck(this, LayoutEngine);\n\n    this.font = font;\n    this.unicodeLayoutEngine = null;\n    this.kernProcessor = null;\n\n    // Choose an advanced layout engine. We try the AAT morx table first since more\n    // scripts are currently supported because the shaping logic is built into the font.\n    if (this.font.morx) {\n      this.engine = new AATLayoutEngine(this.font);\n    } else if (this.font.GSUB || this.font.GPOS) {\n      this.engine = new OTLayoutEngine(this.font);\n    }\n  }\n\n  LayoutEngine.prototype.layout = function layout(string, features, script, language, direction) {\n    // Make the features parameter optional\n    if (typeof features === 'string') {\n      direction = language;\n      language = script;\n      script = features;\n      features = [];\n    }\n\n    // Map string to glyphs if needed\n    if (typeof string === 'string') {\n      // Attempt to detect the script from the string if not provided.\n      if (script == null) {\n        script = forString(string);\n      }\n\n      var glyphs = this.font.glyphsForString(string);\n    } else {\n      // Attempt to detect the script from the glyph code points if not provided.\n      if (script == null) {\n        var codePoints = [];\n        for (var _iterator = string, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n          var _ref;\n\n          if (_isArray) {\n            if (_i >= _iterator.length) break;\n            _ref = _iterator[_i++];\n          } else {\n            _i = _iterator.next();\n            if (_i.done) break;\n            _ref = _i.value;\n          }\n\n          var glyph = _ref;\n\n          codePoints.push.apply(codePoints, glyph.codePoints);\n        }\n\n        script = forCodePoints(codePoints);\n      }\n\n      var glyphs = string;\n    }\n\n    var glyphRun = new GlyphRun(glyphs, features, script, language, direction);\n\n    // Return early if there are no glyphs\n    if (glyphs.length === 0) {\n      glyphRun.positions = [];\n      return glyphRun;\n    }\n\n    // Setup the advanced layout engine\n    if (this.engine && this.engine.setup) {\n      this.engine.setup(glyphRun);\n    }\n\n    // Substitute and position the glyphs\n    this.substitute(glyphRun);\n    this.position(glyphRun);\n\n    this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);\n\n    // Let the layout engine clean up any state it might have\n    if (this.engine && this.engine.cleanup) {\n      this.engine.cleanup();\n    }\n\n    return glyphRun;\n  };\n\n  LayoutEngine.prototype.substitute = function substitute(glyphRun) {\n    // Call the advanced layout engine to make substitutions\n    if (this.engine && this.engine.substitute) {\n      this.engine.substitute(glyphRun);\n    }\n  };\n\n  LayoutEngine.prototype.position = function position(glyphRun) {\n    // Get initial glyph positions\n    glyphRun.positions = glyphRun.glyphs.map(function (glyph) {\n      return new GlyphPosition(glyph.advanceWidth);\n    });\n    var positioned = null;\n\n    // Call the advanced layout engine. Returns the features applied.\n    if (this.engine && this.engine.position) {\n      positioned = this.engine.position(glyphRun);\n    }\n\n    // if there is no GPOS table, use unicode properties to position marks.\n    if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n      if (!this.unicodeLayoutEngine) {\n        this.unicodeLayoutEngine = new UnicodeLayoutEngine(this.font);\n      }\n\n      this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n    }\n\n    // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n    if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n      if (!this.kernProcessor) {\n        this.kernProcessor = new KernProcessor(this.font);\n      }\n\n      this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n      glyphRun.features.kern = true;\n    }\n  };\n\n  LayoutEngine.prototype.hideDefaultIgnorables = function hideDefaultIgnorables(glyphs, positions) {\n    var space = this.font.glyphForCodePoint(0x20);\n    for (var i = 0; i < glyphs.length; i++) {\n      if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n        glyphs[i] = space;\n        positions[i].xAdvance = 0;\n        positions[i].yAdvance = 0;\n      }\n    }\n  };\n\n  LayoutEngine.prototype.isDefaultIgnorable = function isDefaultIgnorable(ch) {\n    // From DerivedCoreProperties.txt in the Unicode database,\n    // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n    // Harfbuzz and Uniscribe do.\n    var plane = ch >> 16;\n    if (plane === 0) {\n      // BMP\n      switch (ch >> 8) {\n        case 0x00:\n          return ch === 0x00AD;\n        case 0x03:\n          return ch === 0x034F;\n        case 0x06:\n          return ch === 0x061C;\n        case 0x17:\n          return 0x17B4 <= ch && ch <= 0x17B5;\n        case 0x18:\n          return 0x180B <= ch && ch <= 0x180E;\n        case 0x20:\n          return 0x200B <= ch && ch <= 0x200F || 0x202A <= ch && ch <= 0x202E || 0x2060 <= ch && ch <= 0x206F;\n        case 0xFE:\n          return 0xFE00 <= ch && ch <= 0xFE0F || ch === 0xFEFF;\n        case 0xFF:\n          return 0xFFF0 <= ch && ch <= 0xFFF8;\n        default:\n          return false;\n      }\n    } else {\n      // Other planes\n      switch (plane) {\n        case 0x01:\n          return 0x1BCA0 <= ch && ch <= 0x1BCA3 || 0x1D173 <= ch && ch <= 0x1D17A;\n        case 0x0E:\n          return 0xE0000 <= ch && ch <= 0xE0FFF;\n        default:\n          return false;\n      }\n    }\n  };\n\n  LayoutEngine.prototype.getAvailableFeatures = function getAvailableFeatures(script, language) {\n    var features = [];\n\n    if (this.engine) {\n      features.push.apply(features, this.engine.getAvailableFeatures(script, language));\n    }\n\n    if (this.font.kern && features.indexOf('kern') === -1) {\n      features.push('kern');\n    }\n\n    return features;\n  };\n\n  LayoutEngine.prototype.stringsForGlyph = function stringsForGlyph(gid) {\n    var result = new _Set();\n\n    var codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n    for (var _iterator2 = codePoints, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var codePoint = _ref2;\n\n      result.add(_String$fromCodePoint(codePoint));\n    }\n\n    if (this.engine && this.engine.stringsForGlyph) {\n      for (var _iterator3 = this.engine.stringsForGlyph(gid), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref3 = _i3.value;\n        }\n\n        var string = _ref3;\n\n        result.add(string);\n      }\n    }\n\n    return _Array$from(result);\n  };\n\n  return LayoutEngine;\n}();\n\nvar SVG_COMMANDS = {\n  moveTo: 'M',\n  lineTo: 'L',\n  quadraticCurveTo: 'Q',\n  bezierCurveTo: 'C',\n  closePath: 'Z'\n};\n\n/**\n * Path objects are returned by glyphs and represent the actual\n * vector outlines for each glyph in the font. Paths can be converted\n * to SVG path data strings, or to functions that can be applied to\n * render the path to a graphics context.\n */\n\nvar Path = function () {\n  function Path() {\n    _classCallCheck(this, Path);\n\n    this.commands = [];\n    this._bbox = null;\n    this._cbox = null;\n  }\n\n  /**\n   * Compiles the path to a JavaScript function that can be applied with\n   * a graphics context in order to render the path.\n   * @return {string}\n   */\n\n\n  Path.prototype.toFunction = function toFunction() {\n    var _this = this;\n\n    return function (ctx) {\n      _this.commands.forEach(function (c) {\n        return ctx[c.command].apply(ctx, c.args);\n      });\n    };\n  };\n\n  /**\n   * Converts the path to an SVG path data string\n   * @return {string}\n   */\n\n\n  Path.prototype.toSVG = function toSVG() {\n    var cmds = this.commands.map(function (c) {\n      var args = c.args.map(function (arg) {\n        return Math.round(arg * 100) / 100;\n      });\n      return '' + SVG_COMMANDS[c.command] + args.join(' ');\n    });\n\n    return cmds.join('');\n  };\n\n  /**\n   * Gets the \"control box\" of a path.\n   * This is like the bounding box, but it includes all points including\n   * control points of bezier segments and is much faster to compute than\n   * the real bounding box.\n   * @type {BBox}\n   */\n\n\n  /**\n   * Applies a mapping function to each point in the path.\n   * @param {function} fn\n   * @return {Path}\n   */\n  Path.prototype.mapPoints = function mapPoints(fn) {\n    var path = new Path();\n\n    for (var _iterator = this.commands, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var c = _ref;\n\n      var args = [];\n      for (var _i2 = 0; _i2 < c.args.length; _i2 += 2) {\n        var _fn = fn(c.args[_i2], c.args[_i2 + 1]),\n            x = _fn[0],\n            y = _fn[1];\n\n        args.push(x, y);\n      }\n\n      path[c.command].apply(path, args);\n    }\n\n    return path;\n  };\n\n  /**\n   * Transforms the path by the given matrix.\n   */\n\n\n  Path.prototype.transform = function transform(m0, m1, m2, m3, m4, m5) {\n    return this.mapPoints(function (x, y) {\n      x = m0 * x + m2 * y + m4;\n      y = m1 * x + m3 * y + m5;\n      return [x, y];\n    });\n  };\n\n  /**\n   * Translates the path by the given offset.\n   */\n\n\n  Path.prototype.translate = function translate(x, y) {\n    return this.transform(1, 0, 0, 1, x, y);\n  };\n\n  /**\n   * Rotates the path by the given angle (in radians).\n   */\n\n\n  Path.prototype.rotate = function rotate(angle) {\n    var cos = Math.cos(angle);\n    var sin = Math.sin(angle);\n    return this.transform(cos, sin, -sin, cos, 0, 0);\n  };\n\n  /**\n   * Scales the path.\n   */\n\n\n  Path.prototype.scale = function scale(scaleX) {\n    var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n\n    return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n  };\n\n  _createClass(Path, [{\n    key: 'cbox',\n    get: function get() {\n      if (!this._cbox) {\n        var cbox = new BBox();\n        for (var _iterator2 = this.commands, _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n          var _ref2;\n\n          if (_isArray2) {\n            if (_i3 >= _iterator2.length) break;\n            _ref2 = _iterator2[_i3++];\n          } else {\n            _i3 = _iterator2.next();\n            if (_i3.done) break;\n            _ref2 = _i3.value;\n          }\n\n          var command = _ref2;\n\n          for (var _i4 = 0; _i4 < command.args.length; _i4 += 2) {\n            cbox.addPoint(command.args[_i4], command.args[_i4 + 1]);\n          }\n        }\n\n        this._cbox = _Object$freeze(cbox);\n      }\n\n      return this._cbox;\n    }\n\n    /**\n     * Gets the exact bounding box of the path by evaluating curve segments.\n     * Slower to compute than the control box, but more accurate.\n     * @type {BBox}\n     */\n\n  }, {\n    key: 'bbox',\n    get: function get() {\n      if (this._bbox) {\n        return this._bbox;\n      }\n\n      var bbox = new BBox();\n      var cx = 0,\n          cy = 0;\n\n      var f = function f(t) {\n        return Math.pow(1 - t, 3) * p0[i] + 3 * Math.pow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i];\n      };\n\n      for (var _iterator3 = this.commands, _isArray3 = Array.isArray(_iterator3), _i5 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i5 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i5++];\n        } else {\n          _i5 = _iterator3.next();\n          if (_i5.done) break;\n          _ref3 = _i5.value;\n        }\n\n        var c = _ref3;\n\n        switch (c.command) {\n          case 'moveTo':\n          case 'lineTo':\n            var _c$args = c.args,\n                x = _c$args[0],\n                y = _c$args[1];\n\n            bbox.addPoint(x, y);\n            cx = x;\n            cy = y;\n            break;\n\n          case 'quadraticCurveTo':\n          case 'bezierCurveTo':\n            if (c.command === 'quadraticCurveTo') {\n              // http://fontforge.org/bezier.html\n              var _c$args2 = c.args,\n                  qp1x = _c$args2[0],\n                  qp1y = _c$args2[1],\n                  p3x = _c$args2[2],\n                  p3y = _c$args2[3];\n\n              var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n              var cp1y = cy + 2 / 3 * (qp1y - cy);\n              var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n              var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n            } else {\n              var _c$args3 = c.args,\n                  cp1x = _c$args3[0],\n                  cp1y = _c$args3[1],\n                  cp2x = _c$args3[2],\n                  cp2y = _c$args3[3],\n                  p3x = _c$args3[4],\n                  p3y = _c$args3[5];\n            }\n\n            // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n            bbox.addPoint(p3x, p3y);\n\n            var p0 = [cx, cy];\n            var p1 = [cp1x, cp1y];\n            var p2 = [cp2x, cp2y];\n            var p3 = [p3x, p3y];\n\n            for (var i = 0; i <= 1; i++) {\n              var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n              var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n              c = 3 * p1[i] - 3 * p0[i];\n\n              if (a === 0) {\n                if (b === 0) {\n                  continue;\n                }\n\n                var t = -c / b;\n                if (0 < t && t < 1) {\n                  if (i === 0) {\n                    bbox.addPoint(f(t), bbox.maxY);\n                  } else if (i === 1) {\n                    bbox.addPoint(bbox.maxX, f(t));\n                  }\n                }\n\n                continue;\n              }\n\n              var b2ac = Math.pow(b, 2) - 4 * c * a;\n              if (b2ac < 0) {\n                continue;\n              }\n\n              var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n              if (0 < t1 && t1 < 1) {\n                if (i === 0) {\n                  bbox.addPoint(f(t1), bbox.maxY);\n                } else if (i === 1) {\n                  bbox.addPoint(bbox.maxX, f(t1));\n                }\n              }\n\n              var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n              if (0 < t2 && t2 < 1) {\n                if (i === 0) {\n                  bbox.addPoint(f(t2), bbox.maxY);\n                } else if (i === 1) {\n                  bbox.addPoint(bbox.maxX, f(t2));\n                }\n              }\n            }\n\n            cx = p3x;\n            cy = p3y;\n            break;\n        }\n      }\n\n      return this._bbox = _Object$freeze(bbox);\n    }\n  }]);\n\n  return Path;\n}();\n\nvar _arr = ['moveTo', 'lineTo', 'quadraticCurveTo', 'bezierCurveTo', 'closePath'];\n\nvar _loop = function _loop() {\n  var command = _arr[_i6];\n  Path.prototype[command] = function () {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    this._bbox = this._cbox = null;\n    this.commands.push({\n      command: command,\n      args: args\n    });\n\n    return this;\n  };\n};\n\nfor (var _i6 = 0; _i6 < _arr.length; _i6++) {\n  _loop();\n}\n\nvar StandardNames = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\nvar _class$8;\nfunction _applyDecoratedDescriptor$4(target, property, decorators, descriptor, context) {\n  var desc = {};\n  Object['ke' + 'ys'](descriptor).forEach(function (key) {\n    desc[key] = descriptor[key];\n  });\n  desc.enumerable = !!desc.enumerable;\n  desc.configurable = !!desc.configurable;\n\n  if ('value' in desc || desc.initializer) {\n    desc.writable = true;\n  }\n\n  desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n    return decorator(target, property, desc) || desc;\n  }, desc);\n\n  if (context && desc.initializer !== void 0) {\n    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n    desc.initializer = undefined;\n  }\n\n  if (desc.initializer === void 0) {\n    Object['define' + 'Property'](target, property, desc);\n    desc = null;\n  }\n\n  return desc;\n}\n\n/**\n * Glyph objects represent a glyph in the font. They have various properties for accessing metrics and\n * the actual vector path the glyph represents, and methods for rendering the glyph to a graphics context.\n *\n * You do not create glyph objects directly. They are created by various methods on the font object.\n * There are several subclasses of the base Glyph class internally that may be returned depending\n * on the font format, but they all inherit from this class.\n */\nvar Glyph = (_class$8 = function () {\n  function Glyph(id, codePoints, font) {\n    _classCallCheck(this, Glyph);\n\n    /**\n     * The glyph id in the font\n     * @type {number}\n     */\n    this.id = id;\n\n    /**\n     * An array of unicode code points that are represented by this glyph.\n     * There can be multiple code points in the case of ligatures and other glyphs\n     * that represent multiple visual characters.\n     * @type {number[]}\n     */\n    this.codePoints = codePoints;\n    this._font = font;\n\n    // TODO: get this info from GDEF if available\n    this.isMark = this.codePoints.length > 0 && this.codePoints.every(unicode.isMark);\n    this.isLigature = this.codePoints.length > 1;\n  }\n\n  Glyph.prototype._getPath = function _getPath() {\n    return new Path();\n  };\n\n  Glyph.prototype._getCBox = function _getCBox() {\n    return this.path.cbox;\n  };\n\n  Glyph.prototype._getBBox = function _getBBox() {\n    return this.path.bbox;\n  };\n\n  Glyph.prototype._getTableMetrics = function _getTableMetrics(table) {\n    if (this.id < table.metrics.length) {\n      return table.metrics.get(this.id);\n    }\n\n    var metric = table.metrics.get(table.metrics.length - 1);\n    var res = {\n      advance: metric ? metric.advance : 0,\n      bearing: table.bearings.get(this.id - table.metrics.length) || 0\n    };\n\n    return res;\n  };\n\n  Glyph.prototype._getMetrics = function _getMetrics(cbox) {\n    if (this._metrics) {\n      return this._metrics;\n    }\n\n    var _getTableMetrics2 = this._getTableMetrics(this._font.hmtx),\n        advanceWidth = _getTableMetrics2.advance,\n        leftBearing = _getTableMetrics2.bearing;\n\n    // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n\n\n    if (this._font.vmtx) {\n      var _getTableMetrics3 = this._getTableMetrics(this._font.vmtx),\n          advanceHeight = _getTableMetrics3.advance,\n          topBearing = _getTableMetrics3.bearing;\n    } else {\n      var os2 = void 0;\n      if (typeof cbox === 'undefined' || cbox === null) {\n        cbox = this.cbox;\n      }\n\n      if ((os2 = this._font['OS/2']) && os2.version > 0) {\n        var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n        var topBearing = os2.typoAscender - cbox.maxY;\n      } else {\n        var hhea = this._font.hhea;\n\n        var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n        var topBearing = hhea.ascent - cbox.maxY;\n      }\n    }\n\n    if (this._font._variationProcessor && this._font.HVAR) {\n      advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n    }\n\n    return this._metrics = { advanceWidth: advanceWidth, advanceHeight: advanceHeight, leftBearing: leftBearing, topBearing: topBearing };\n  };\n\n  /**\n   * The glyph’s control box.\n   * This is often the same as the bounding box, but is faster to compute.\n   * Because of the way bezier curves are defined, some of the control points\n   * can be outside of the bounding box. Where `bbox` takes this into account,\n   * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n   * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n   * for a more detailed description.\n   *\n   * @type {BBox}\n   */\n\n\n  /**\n   * Returns a path scaled to the given font size.\n   * @param {number} size\n   * @return {Path}\n   */\n  Glyph.prototype.getScaledPath = function getScaledPath(size) {\n    var scale = 1 / this._font.unitsPerEm * size;\n    return this.path.scale(scale);\n  };\n\n  /**\n   * The glyph's advance width.\n   * @type {number}\n   */\n\n\n  Glyph.prototype._getName = function _getName() {\n    var post = this._font.post;\n\n    if (!post) {\n      return null;\n    }\n\n    switch (post.version) {\n      case 1:\n        return StandardNames[this.id];\n\n      case 2:\n        var id = post.glyphNameIndex[this.id];\n        if (id < StandardNames.length) {\n          return StandardNames[id];\n        }\n\n        return post.names[id - StandardNames.length];\n\n      case 2.5:\n        return StandardNames[this.id + post.offsets[this.id]];\n\n      case 4:\n        return String.fromCharCode(post.map[this.id]);\n    }\n  };\n\n  /**\n   * The glyph's name\n   * @type {string}\n   */\n\n\n  /**\n   * Renders the glyph to the given graphics context, at the specified font size.\n   * @param {CanvasRenderingContext2d} ctx\n   * @param {number} size\n   */\n  Glyph.prototype.render = function render(ctx, size) {\n    ctx.save();\n\n    var scale = 1 / this._font.head.unitsPerEm * size;\n    ctx.scale(scale, scale);\n\n    var fn = this.path.toFunction();\n    fn(ctx);\n    ctx.fill();\n\n    ctx.restore();\n  };\n\n  _createClass(Glyph, [{\n    key: 'cbox',\n    get: function get() {\n      return this._getCBox();\n    }\n\n    /**\n     * The glyph’s bounding box, i.e. the rectangle that encloses the\n     * glyph outline as tightly as possible.\n     * @type {BBox}\n     */\n\n  }, {\n    key: 'bbox',\n    get: function get() {\n      return this._getBBox();\n    }\n\n    /**\n     * A vector Path object representing the glyph outline.\n     * @type {Path}\n     */\n\n  }, {\n    key: 'path',\n    get: function get() {\n      // Cache the path so we only decode it once\n      // Decoding is actually performed by subclasses\n      return this._getPath();\n    }\n  }, {\n    key: 'advanceWidth',\n    get: function get() {\n      return this._getMetrics().advanceWidth;\n    }\n\n    /**\n     * The glyph's advance height.\n     * @type {number}\n     */\n\n  }, {\n    key: 'advanceHeight',\n    get: function get() {\n      return this._getMetrics().advanceHeight;\n    }\n  }, {\n    key: 'ligatureCaretPositions',\n    get: function get() {}\n  }, {\n    key: 'name',\n    get: function get() {\n      return this._getName();\n    }\n  }]);\n\n  return Glyph;\n}(), (_applyDecoratedDescriptor$4(_class$8.prototype, 'cbox', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'cbox'), _class$8.prototype), _applyDecoratedDescriptor$4(_class$8.prototype, 'bbox', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'bbox'), _class$8.prototype), _applyDecoratedDescriptor$4(_class$8.prototype, 'path', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'path'), _class$8.prototype), _applyDecoratedDescriptor$4(_class$8.prototype, 'advanceWidth', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'advanceWidth'), _class$8.prototype), _applyDecoratedDescriptor$4(_class$8.prototype, 'advanceHeight', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'advanceHeight'), _class$8.prototype), _applyDecoratedDescriptor$4(_class$8.prototype, 'name', [cache], _Object$getOwnPropertyDescriptor(_class$8.prototype, 'name'), _class$8.prototype)), _class$8);\n\n// The header for both simple and composite glyphs\nvar GlyfHeader = new r.Struct({\n  numberOfContours: r.int16, // if negative, this is a composite glyph\n  xMin: r.int16,\n  yMin: r.int16,\n  xMax: r.int16,\n  yMax: r.int16\n});\n\n// Flags for simple glyphs\nvar ON_CURVE = 1 << 0;\nvar X_SHORT_VECTOR = 1 << 1;\nvar Y_SHORT_VECTOR = 1 << 2;\nvar REPEAT = 1 << 3;\nvar SAME_X = 1 << 4;\nvar SAME_Y = 1 << 5;\n\n// Flags for composite glyphs\nvar ARG_1_AND_2_ARE_WORDS = 1 << 0;\nvar WE_HAVE_A_SCALE = 1 << 3;\nvar MORE_COMPONENTS = 1 << 5;\nvar WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nvar WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nvar WE_HAVE_INSTRUCTIONS = 1 << 8;\n// Represents a point in a simple glyph\nvar Point = function () {\n  function Point(onCurve, endContour) {\n    var x = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    var y = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n    _classCallCheck(this, Point);\n\n    this.onCurve = onCurve;\n    this.endContour = endContour;\n    this.x = x;\n    this.y = y;\n  }\n\n  Point.prototype.copy = function copy() {\n    return new Point(this.onCurve, this.endContour, this.x, this.y);\n  };\n\n  return Point;\n}();\n\n// Represents a component in a composite glyph\n\nvar Component = function Component(glyphID, dx, dy) {\n  _classCallCheck(this, Component);\n\n  this.glyphID = glyphID;\n  this.dx = dx;\n  this.dy = dy;\n  this.pos = 0;\n  this.scaleX = this.scaleY = 1;\n  this.scale01 = this.scale10 = 0;\n};\n\n/**\n * Represents a TrueType glyph.\n */\n\n\nvar TTFGlyph = function (_Glyph) {\n  _inherits(TTFGlyph, _Glyph);\n\n  function TTFGlyph() {\n    _classCallCheck(this, TTFGlyph);\n\n    return _possibleConstructorReturn(this, _Glyph.apply(this, arguments));\n  }\n\n  // Parses just the glyph header and returns the bounding box\n  TTFGlyph.prototype._getCBox = function _getCBox(internal) {\n    // We need to decode the glyph if variation processing is requested,\n    // so it's easier just to recompute the path's cbox after decoding.\n    if (this._font._variationProcessor && !internal) {\n      return this.path.cbox;\n    }\n\n    var stream = this._font._getTableStream('glyf');\n    stream.pos += this._font.loca.offsets[this.id];\n    var glyph = GlyfHeader.decode(stream);\n\n    var cbox = new BBox(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n    return _Object$freeze(cbox);\n  };\n\n  // Parses a single glyph coordinate\n\n\n  TTFGlyph.prototype._parseGlyphCoord = function _parseGlyphCoord(stream, prev, short, same) {\n    if (short) {\n      var val = stream.readUInt8();\n      if (!same) {\n        val = -val;\n      }\n\n      val += prev;\n    } else {\n      if (same) {\n        var val = prev;\n      } else {\n        var val = prev + stream.readInt16BE();\n      }\n    }\n\n    return val;\n  };\n\n  // Decodes the glyph data into points for simple glyphs,\n  // or components for composite glyphs\n\n\n  TTFGlyph.prototype._decode = function _decode() {\n    var glyfPos = this._font.loca.offsets[this.id];\n    var nextPos = this._font.loca.offsets[this.id + 1];\n\n    // Nothing to do if there is no data for this glyph\n    if (glyfPos === nextPos) {\n      return null;\n    }\n\n    var stream = this._font._getTableStream('glyf');\n    stream.pos += glyfPos;\n    var startPos = stream.pos;\n\n    var glyph = GlyfHeader.decode(stream);\n\n    if (glyph.numberOfContours > 0) {\n      this._decodeSimple(glyph, stream);\n    } else if (glyph.numberOfContours < 0) {\n      this._decodeComposite(glyph, stream, startPos);\n    }\n\n    return glyph;\n  };\n\n  TTFGlyph.prototype._decodeSimple = function _decodeSimple(glyph, stream) {\n    // this is a simple glyph\n    glyph.points = [];\n\n    var endPtsOfContours = new r.Array(r.uint16, glyph.numberOfContours).decode(stream);\n    glyph.instructions = new r.Array(r.uint8, r.uint16).decode(stream);\n\n    var flags = [];\n    var numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n\n    while (flags.length < numCoords) {\n      var flag = stream.readUInt8();\n      flags.push(flag);\n\n      // check for repeat flag\n      if (flag & REPEAT) {\n        var count = stream.readUInt8();\n        for (var j = 0; j < count; j++) {\n          flags.push(flag);\n        }\n      }\n    }\n\n    for (var i = 0; i < flags.length; i++) {\n      var flag = flags[i];\n      var point = new Point(!!(flag & ON_CURVE), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n      glyph.points.push(point);\n    }\n\n    var px = 0;\n    for (var i = 0; i < flags.length; i++) {\n      var flag = flags[i];\n      glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & X_SHORT_VECTOR, flag & SAME_X);\n    }\n\n    var py = 0;\n    for (var i = 0; i < flags.length; i++) {\n      var flag = flags[i];\n      glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & Y_SHORT_VECTOR, flag & SAME_Y);\n    }\n\n    if (this._font._variationProcessor) {\n      var points = glyph.points.slice();\n      points.push.apply(points, this._getPhantomPoints(glyph));\n\n      this._font._variationProcessor.transformPoints(this.id, points);\n      glyph.phantomPoints = points.slice(-4);\n    }\n\n    return;\n  };\n\n  TTFGlyph.prototype._decodeComposite = function _decodeComposite(glyph, stream) {\n    var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n    // this is a composite glyph\n    glyph.components = [];\n    var haveInstructions = false;\n    var flags = MORE_COMPONENTS;\n\n    while (flags & MORE_COMPONENTS) {\n      flags = stream.readUInt16BE();\n      var gPos = stream.pos - offset;\n      var glyphID = stream.readUInt16BE();\n      if (!haveInstructions) {\n        haveInstructions = (flags & WE_HAVE_INSTRUCTIONS) !== 0;\n      }\n\n      if (flags & ARG_1_AND_2_ARE_WORDS) {\n        var dx = stream.readInt16BE();\n        var dy = stream.readInt16BE();\n      } else {\n        var dx = stream.readInt8();\n        var dy = stream.readInt8();\n      }\n\n      var component = new Component(glyphID, dx, dy);\n      component.pos = gPos;\n\n      if (flags & WE_HAVE_A_SCALE) {\n        // fixed number with 14 bits of fraction\n        component.scaleX = component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n      } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n        component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n        component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n      } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n        component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n        component.scale01 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n        component.scale10 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n        component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n      }\n\n      glyph.components.push(component);\n    }\n\n    if (this._font._variationProcessor) {\n      var points = [];\n      for (var j = 0; j < glyph.components.length; j++) {\n        var component = glyph.components[j];\n        points.push(new Point(true, true, component.dx, component.dy));\n      }\n\n      points.push.apply(points, this._getPhantomPoints(glyph));\n\n      this._font._variationProcessor.transformPoints(this.id, points);\n      glyph.phantomPoints = points.splice(-4, 4);\n\n      for (var i = 0; i < points.length; i++) {\n        var point = points[i];\n        glyph.components[i].dx = point.x;\n        glyph.components[i].dy = point.y;\n      }\n    }\n\n    return haveInstructions;\n  };\n\n  TTFGlyph.prototype._getPhantomPoints = function _getPhantomPoints(glyph) {\n    var cbox = this._getCBox(true);\n    if (this._metrics == null) {\n      this._metrics = Glyph.prototype._getMetrics.call(this, cbox);\n    }\n\n    var _metrics = this._metrics,\n        advanceWidth = _metrics.advanceWidth,\n        advanceHeight = _metrics.advanceHeight,\n        leftBearing = _metrics.leftBearing,\n        topBearing = _metrics.topBearing;\n\n\n    return [new Point(false, true, glyph.xMin - leftBearing, 0), new Point(false, true, glyph.xMin - leftBearing + advanceWidth, 0), new Point(false, true, 0, glyph.yMax + topBearing), new Point(false, true, 0, glyph.yMax + topBearing + advanceHeight)];\n  };\n\n  // Decodes font data, resolves composite glyphs, and returns an array of contours\n\n\n  TTFGlyph.prototype._getContours = function _getContours() {\n    var glyph = this._decode();\n    if (!glyph) {\n      return [];\n    }\n\n    var points = [];\n\n    if (glyph.numberOfContours < 0) {\n      // resolve composite glyphs\n      for (var _iterator = glyph.components, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var component = _ref;\n\n        var _contours = this._font.getGlyph(component.glyphID)._getContours();\n        for (var i = 0; i < _contours.length; i++) {\n          var contour = _contours[i];\n          for (var j = 0; j < contour.length; j++) {\n            var _point = contour[j];\n            var x = _point.x * component.scaleX + _point.y * component.scale01 + component.dx;\n            var y = _point.y * component.scaleY + _point.x * component.scale10 + component.dy;\n            points.push(new Point(_point.onCurve, _point.endContour, x, y));\n          }\n        }\n      }\n    } else {\n      points = glyph.points || [];\n    }\n\n    // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n    if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n      this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n      this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n      this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n      this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n    }\n\n    var contours = [];\n    var cur = [];\n    for (var k = 0; k < points.length; k++) {\n      var point = points[k];\n      cur.push(point);\n      if (point.endContour) {\n        contours.push(cur);\n        cur = [];\n      }\n    }\n\n    return contours;\n  };\n\n  TTFGlyph.prototype._getMetrics = function _getMetrics() {\n    if (this._metrics) {\n      return this._metrics;\n    }\n\n    var cbox = this._getCBox(true);\n    _Glyph.prototype._getMetrics.call(this, cbox);\n\n    if (this._font._variationProcessor && !this._font.HVAR) {\n      // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n      this.path;\n    }\n\n    return this._metrics;\n  };\n\n  // Converts contours to a Path object that can be rendered\n\n\n  TTFGlyph.prototype._getPath = function _getPath() {\n    var contours = this._getContours();\n    var path = new Path();\n\n    for (var i = 0; i < contours.length; i++) {\n      var contour = contours[i];\n      var firstPt = contour[0];\n      var lastPt = contour[contour.length - 1];\n      var start = 0;\n\n      if (firstPt.onCurve) {\n        // The first point will be consumed by the moveTo command, so skip in the loop\n        var curvePt = null;\n        start = 1;\n      } else {\n        if (lastPt.onCurve) {\n          // Start at the last point if the first point is off curve and the last point is on curve\n          firstPt = lastPt;\n        } else {\n          // Start at the middle if both the first and last points are off curve\n          firstPt = new Point(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n        }\n\n        var curvePt = firstPt;\n      }\n\n      path.moveTo(firstPt.x, firstPt.y);\n\n      for (var j = start; j < contour.length; j++) {\n        var pt = contour[j];\n        var prevPt = j === 0 ? firstPt : contour[j - 1];\n\n        if (prevPt.onCurve && pt.onCurve) {\n          path.lineTo(pt.x, pt.y);\n        } else if (prevPt.onCurve && !pt.onCurve) {\n          var curvePt = pt;\n        } else if (!prevPt.onCurve && !pt.onCurve) {\n          var midX = (prevPt.x + pt.x) / 2;\n          var midY = (prevPt.y + pt.y) / 2;\n          path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n          var curvePt = pt;\n        } else if (!prevPt.onCurve && pt.onCurve) {\n          path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n          var curvePt = null;\n        } else {\n          throw new Error(\"Unknown TTF path state\");\n        }\n      }\n\n      // Connect the first and last points\n      if (curvePt) {\n        path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n      }\n\n      path.closePath();\n    }\n\n    return path;\n  };\n\n  return TTFGlyph;\n}(Glyph);\n\n/**\n * Represents an OpenType PostScript glyph, in the Compact Font Format.\n */\n\nvar CFFGlyph = function (_Glyph) {\n  _inherits(CFFGlyph, _Glyph);\n\n  function CFFGlyph() {\n    _classCallCheck(this, CFFGlyph);\n\n    return _possibleConstructorReturn(this, _Glyph.apply(this, arguments));\n  }\n\n  CFFGlyph.prototype._getName = function _getName() {\n    if (this._font.CFF2) {\n      return _Glyph.prototype._getName.call(this);\n    }\n\n    return this._font['CFF '].getGlyphName(this.id);\n  };\n\n  CFFGlyph.prototype.bias = function bias(s) {\n    if (s.length < 1240) {\n      return 107;\n    } else if (s.length < 33900) {\n      return 1131;\n    } else {\n      return 32768;\n    }\n  };\n\n  CFFGlyph.prototype._getPath = function _getPath() {\n    var cff = this._font.CFF2 || this._font['CFF '];\n    var stream = cff.stream;\n\n    var str = cff.topDict.CharStrings[this.id];\n    var end = str.offset + str.length;\n    stream.pos = str.offset;\n\n    var path = new Path();\n    var stack = [];\n    var trans = [];\n\n    var width = null;\n    var nStems = 0;\n    var x = 0,\n        y = 0;\n    var usedGsubrs = void 0;\n    var usedSubrs = void 0;\n    var open = false;\n\n    this._usedGsubrs = usedGsubrs = {};\n    this._usedSubrs = usedSubrs = {};\n\n    var gsubrs = cff.globalSubrIndex || [];\n    var gsubrsBias = this.bias(gsubrs);\n\n    var privateDict = cff.privateDictForGlyph(this.id) || {};\n    var subrs = privateDict.Subrs || [];\n    var subrsBias = this.bias(subrs);\n\n    var vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n    var vsindex = privateDict.vsindex;\n    var variationProcessor = this._font._variationProcessor;\n\n    function checkWidth() {\n      if (width == null) {\n        width = stack.shift() + privateDict.nominalWidthX;\n      }\n    }\n\n    function parseStems() {\n      if (stack.length % 2 !== 0) {\n        checkWidth();\n      }\n\n      nStems += stack.length >> 1;\n      return stack.length = 0;\n    }\n\n    function moveTo(x, y) {\n      if (open) {\n        path.closePath();\n      }\n\n      path.moveTo(x, y);\n      open = true;\n    }\n\n    var parse = function parse() {\n      while (stream.pos < end) {\n        var op = stream.readUInt8();\n        if (op < 32) {\n          switch (op) {\n            case 1: // hstem\n            case 3: // vstem\n            case 18: // hstemhm\n            case 23:\n              // vstemhm\n              parseStems();\n              break;\n\n            case 4:\n              // vmoveto\n              if (stack.length > 1) {\n                checkWidth();\n              }\n\n              y += stack.shift();\n              moveTo(x, y);\n              break;\n\n            case 5:\n              // rlineto\n              while (stack.length >= 2) {\n                x += stack.shift();\n                y += stack.shift();\n                path.lineTo(x, y);\n              }\n              break;\n\n            case 6: // hlineto\n            case 7:\n              // vlineto\n              var phase = op === 6;\n              while (stack.length >= 1) {\n                if (phase) {\n                  x += stack.shift();\n                } else {\n                  y += stack.shift();\n                }\n\n                path.lineTo(x, y);\n                phase = !phase;\n              }\n              break;\n\n            case 8:\n              // rrcurveto\n              while (stack.length > 0) {\n                var c1x = x + stack.shift();\n                var c1y = y + stack.shift();\n                var c2x = c1x + stack.shift();\n                var c2y = c1y + stack.shift();\n                x = c2x + stack.shift();\n                y = c2y + stack.shift();\n                path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n              }\n              break;\n\n            case 10:\n              // callsubr\n              var index = stack.pop() + subrsBias;\n              var subr = subrs[index];\n              if (subr) {\n                usedSubrs[index] = true;\n                var p = stream.pos;\n                var e = end;\n                stream.pos = subr.offset;\n                end = subr.offset + subr.length;\n                parse();\n                stream.pos = p;\n                end = e;\n              }\n              break;\n\n            case 11:\n              // return\n              if (cff.version >= 2) {\n                break;\n              }\n              return;\n\n            case 14:\n              // endchar\n              if (cff.version >= 2) {\n                break;\n              }\n\n              if (stack.length > 0) {\n                checkWidth();\n              }\n\n              if (open) {\n                path.closePath();\n                open = false;\n              }\n              break;\n\n            case 15:\n              {\n                // vsindex\n                if (cff.version < 2) {\n                  throw new Error('vsindex operator not supported in CFF v1');\n                }\n\n                vsindex = stack.pop();\n                break;\n              }\n\n            case 16:\n              {\n                // blend\n                if (cff.version < 2) {\n                  throw new Error('blend operator not supported in CFF v1');\n                }\n\n                if (!variationProcessor) {\n                  throw new Error('blend operator in non-variation font');\n                }\n\n                var blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n                var numBlends = stack.pop();\n                var numOperands = numBlends * blendVector.length;\n                var delta = stack.length - numOperands;\n                var base = delta - numBlends;\n\n                for (var i = 0; i < numBlends; i++) {\n                  var sum = stack[base + i];\n                  for (var j = 0; j < blendVector.length; j++) {\n                    sum += blendVector[j] * stack[delta++];\n                  }\n\n                  stack[base + i] = sum;\n                }\n\n                while (numOperands--) {\n                  stack.pop();\n                }\n\n                break;\n              }\n\n            case 19: // hintmask\n            case 20:\n              // cntrmask\n              parseStems();\n              stream.pos += nStems + 7 >> 3;\n              break;\n\n            case 21:\n              // rmoveto\n              if (stack.length > 2) {\n                checkWidth();\n              }\n\n              x += stack.shift();\n              y += stack.shift();\n              moveTo(x, y);\n              break;\n\n            case 22:\n              // hmoveto\n              if (stack.length > 1) {\n                checkWidth();\n              }\n\n              x += stack.shift();\n              moveTo(x, y);\n              break;\n\n            case 24:\n              // rcurveline\n              while (stack.length >= 8) {\n                var c1x = x + stack.shift();\n                var c1y = y + stack.shift();\n                var c2x = c1x + stack.shift();\n                var c2y = c1y + stack.shift();\n                x = c2x + stack.shift();\n                y = c2y + stack.shift();\n                path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n              }\n\n              x += stack.shift();\n              y += stack.shift();\n              path.lineTo(x, y);\n              break;\n\n            case 25:\n              // rlinecurve\n              while (stack.length >= 8) {\n                x += stack.shift();\n                y += stack.shift();\n                path.lineTo(x, y);\n              }\n\n              var c1x = x + stack.shift();\n              var c1y = y + stack.shift();\n              var c2x = c1x + stack.shift();\n              var c2y = c1y + stack.shift();\n              x = c2x + stack.shift();\n              y = c2y + stack.shift();\n              path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n              break;\n\n            case 26:\n              // vvcurveto\n              if (stack.length % 2) {\n                x += stack.shift();\n              }\n\n              while (stack.length >= 4) {\n                c1x = x;\n                c1y = y + stack.shift();\n                c2x = c1x + stack.shift();\n                c2y = c1y + stack.shift();\n                x = c2x;\n                y = c2y + stack.shift();\n                path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n              }\n              break;\n\n            case 27:\n              // hhcurveto\n              if (stack.length % 2) {\n                y += stack.shift();\n              }\n\n              while (stack.length >= 4) {\n                c1x = x + stack.shift();\n                c1y = y;\n                c2x = c1x + stack.shift();\n                c2y = c1y + stack.shift();\n                x = c2x + stack.shift();\n                y = c2y;\n                path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n              }\n              break;\n\n            case 28:\n              // shortint\n              stack.push(stream.readInt16BE());\n              break;\n\n            case 29:\n              // callgsubr\n              index = stack.pop() + gsubrsBias;\n              subr = gsubrs[index];\n              if (subr) {\n                usedGsubrs[index] = true;\n                var p = stream.pos;\n                var e = end;\n                stream.pos = subr.offset;\n                end = subr.offset + subr.length;\n                parse();\n                stream.pos = p;\n                end = e;\n              }\n              break;\n\n            case 30: // vhcurveto\n            case 31:\n              // hvcurveto\n              phase = op === 31;\n              while (stack.length >= 4) {\n                if (phase) {\n                  c1x = x + stack.shift();\n                  c1y = y;\n                  c2x = c1x + stack.shift();\n                  c2y = c1y + stack.shift();\n                  y = c2y + stack.shift();\n                  x = c2x + (stack.length === 1 ? stack.shift() : 0);\n                } else {\n                  c1x = x;\n                  c1y = y + stack.shift();\n                  c2x = c1x + stack.shift();\n                  c2y = c1y + stack.shift();\n                  x = c2x + stack.shift();\n                  y = c2y + (stack.length === 1 ? stack.shift() : 0);\n                }\n\n                path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n                phase = !phase;\n              }\n              break;\n\n            case 12:\n              op = stream.readUInt8();\n              switch (op) {\n                case 3:\n                  // and\n                  var a = stack.pop();\n                  var b = stack.pop();\n                  stack.push(a && b ? 1 : 0);\n                  break;\n\n                case 4:\n                  // or\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a || b ? 1 : 0);\n                  break;\n\n                case 5:\n                  // not\n                  a = stack.pop();\n                  stack.push(a ? 0 : 1);\n                  break;\n\n                case 9:\n                  // abs\n                  a = stack.pop();\n                  stack.push(Math.abs(a));\n                  break;\n\n                case 10:\n                  // add\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a + b);\n                  break;\n\n                case 11:\n                  // sub\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a - b);\n                  break;\n\n                case 12:\n                  // div\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a / b);\n                  break;\n\n                case 14:\n                  // neg\n                  a = stack.pop();\n                  stack.push(-a);\n                  break;\n\n                case 15:\n                  // eq\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a === b ? 1 : 0);\n                  break;\n\n                case 18:\n                  // drop\n                  stack.pop();\n                  break;\n\n                case 20:\n                  // put\n                  var val = stack.pop();\n                  var idx = stack.pop();\n                  trans[idx] = val;\n                  break;\n\n                case 21:\n                  // get\n                  idx = stack.pop();\n                  stack.push(trans[idx] || 0);\n                  break;\n\n                case 22:\n                  // ifelse\n                  var s1 = stack.pop();\n                  var s2 = stack.pop();\n                  var v1 = stack.pop();\n                  var v2 = stack.pop();\n                  stack.push(v1 <= v2 ? s1 : s2);\n                  break;\n\n                case 23:\n                  // random\n                  stack.push(Math.random());\n                  break;\n\n                case 24:\n                  // mul\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(a * b);\n                  break;\n\n                case 26:\n                  // sqrt\n                  a = stack.pop();\n                  stack.push(Math.sqrt(a));\n                  break;\n\n                case 27:\n                  // dup\n                  a = stack.pop();\n                  stack.push(a, a);\n                  break;\n\n                case 28:\n                  // exch\n                  a = stack.pop();\n                  b = stack.pop();\n                  stack.push(b, a);\n                  break;\n\n                case 29:\n                  // index\n                  idx = stack.pop();\n                  if (idx < 0) {\n                    idx = 0;\n                  } else if (idx > stack.length - 1) {\n                    idx = stack.length - 1;\n                  }\n\n                  stack.push(stack[idx]);\n                  break;\n\n                case 30:\n                  // roll\n                  var n = stack.pop();\n                  var _j = stack.pop();\n\n                  if (_j >= 0) {\n                    while (_j > 0) {\n                      var t = stack[n - 1];\n                      for (var _i = n - 2; _i >= 0; _i--) {\n                        stack[_i + 1] = stack[_i];\n                      }\n\n                      stack[0] = t;\n                      _j--;\n                    }\n                  } else {\n                    while (_j < 0) {\n                      var t = stack[0];\n                      for (var _i2 = 0; _i2 <= n; _i2++) {\n                        stack[_i2] = stack[_i2 + 1];\n                      }\n\n                      stack[n - 1] = t;\n                      _j++;\n                    }\n                  }\n                  break;\n\n                case 34:\n                  // hflex\n                  c1x = x + stack.shift();\n                  c1y = y;\n                  c2x = c1x + stack.shift();\n                  c2y = c1y + stack.shift();\n                  var c3x = c2x + stack.shift();\n                  var c3y = c2y;\n                  var c4x = c3x + stack.shift();\n                  var c4y = c3y;\n                  var c5x = c4x + stack.shift();\n                  var c5y = c4y;\n                  var c6x = c5x + stack.shift();\n                  var c6y = c5y;\n                  x = c6x;\n                  y = c6y;\n\n                  path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n                  path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n                  break;\n\n                case 35:\n                  // flex\n                  var pts = [];\n\n                  for (var _i3 = 0; _i3 <= 5; _i3++) {\n                    x += stack.shift();\n                    y += stack.shift();\n                    pts.push(x, y);\n                  }\n\n                  path.bezierCurveTo.apply(path, pts.slice(0, 6));\n                  path.bezierCurveTo.apply(path, pts.slice(6));\n                  stack.shift(); // fd\n                  break;\n\n                case 36:\n                  // hflex1\n                  c1x = x + stack.shift();\n                  c1y = y + stack.shift();\n                  c2x = c1x + stack.shift();\n                  c2y = c1y + stack.shift();\n                  c3x = c2x + stack.shift();\n                  c3y = c2y;\n                  c4x = c3x + stack.shift();\n                  c4y = c3y;\n                  c5x = c4x + stack.shift();\n                  c5y = c4y + stack.shift();\n                  c6x = c5x + stack.shift();\n                  c6y = c5y;\n                  x = c6x;\n                  y = c6y;\n\n                  path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n                  path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n                  break;\n\n                case 37:\n                  // flex1\n                  var startx = x;\n                  var starty = y;\n\n                  pts = [];\n                  for (var _i4 = 0; _i4 <= 4; _i4++) {\n                    x += stack.shift();\n                    y += stack.shift();\n                    pts.push(x, y);\n                  }\n\n                  if (Math.abs(x - startx) > Math.abs(y - starty)) {\n                    // horizontal\n                    x += stack.shift();\n                    y = starty;\n                  } else {\n                    x = startx;\n                    y += stack.shift();\n                  }\n\n                  pts.push(x, y);\n                  path.bezierCurveTo.apply(path, pts.slice(0, 6));\n                  path.bezierCurveTo.apply(path, pts.slice(6));\n                  break;\n\n                default:\n                  throw new Error('Unknown op: 12 ' + op);\n              }\n              break;\n\n            default:\n              throw new Error('Unknown op: ' + op);\n          }\n        } else if (op < 247) {\n          stack.push(op - 139);\n        } else if (op < 251) {\n          var b1 = stream.readUInt8();\n          stack.push((op - 247) * 256 + b1 + 108);\n        } else if (op < 255) {\n          var b1 = stream.readUInt8();\n          stack.push(-(op - 251) * 256 - b1 - 108);\n        } else {\n          stack.push(stream.readInt32BE() / 65536);\n        }\n      }\n    };\n\n    parse();\n\n    if (open) {\n      path.closePath();\n    }\n\n    return path;\n  };\n\n  return CFFGlyph;\n}(Glyph);\n\nvar SBIXImage = new r.Struct({\n  originX: r.uint16,\n  originY: r.uint16,\n  type: new r.String(4),\n  data: new r.Buffer(function (t) {\n    return t.parent.buflen - t._currentOffset;\n  })\n});\n\n/**\n * Represents a color (e.g. emoji) glyph in Apple's SBIX format.\n */\n\nvar SBIXGlyph = function (_TTFGlyph) {\n  _inherits(SBIXGlyph, _TTFGlyph);\n\n  function SBIXGlyph() {\n    _classCallCheck(this, SBIXGlyph);\n\n    return _possibleConstructorReturn(this, _TTFGlyph.apply(this, arguments));\n  }\n\n  /**\n   * Returns an object representing a glyph image at the given point size.\n   * The object has a data property with a Buffer containing the actual image data,\n   * along with the image type, and origin.\n   *\n   * @param {number} size\n   * @return {object}\n   */\n  SBIXGlyph.prototype.getImageForSize = function getImageForSize(size) {\n    for (var i = 0; i < this._font.sbix.imageTables.length; i++) {\n      var table = this._font.sbix.imageTables[i];\n      if (table.ppem >= size) {\n        break;\n      }\n    }\n\n    var offsets = table.imageOffsets;\n    var start = offsets[this.id];\n    var end = offsets[this.id + 1];\n\n    if (start === end) {\n      return null;\n    }\n\n    this._font.stream.pos = start;\n    return SBIXImage.decode(this._font.stream, { buflen: end - start });\n  };\n\n  SBIXGlyph.prototype.render = function render(ctx, size) {\n    var img = this.getImageForSize(size);\n    if (img != null) {\n      var scale = size / this._font.unitsPerEm;\n      ctx.image(img.data, { height: size, x: img.originX, y: (this.bbox.minY - img.originY) * scale });\n    }\n\n    if (this._font.sbix.flags.renderOutlines) {\n      _TTFGlyph.prototype.render.call(this, ctx, size);\n    }\n  };\n\n  return SBIXGlyph;\n}(TTFGlyph);\n\nvar COLRLayer = function COLRLayer(glyph, color) {\n  _classCallCheck(this, COLRLayer);\n\n  this.glyph = glyph;\n  this.color = color;\n};\n\n/**\n * Represents a color (e.g. emoji) glyph in Microsoft's COLR format.\n * Each glyph in this format contain a list of colored layers, each\n * of which  is another vector glyph.\n */\n\n\nvar COLRGlyph = function (_Glyph) {\n  _inherits(COLRGlyph, _Glyph);\n\n  function COLRGlyph() {\n    _classCallCheck(this, COLRGlyph);\n\n    return _possibleConstructorReturn(this, _Glyph.apply(this, arguments));\n  }\n\n  COLRGlyph.prototype._getBBox = function _getBBox() {\n    var bbox = new BBox();\n    for (var i = 0; i < this.layers.length; i++) {\n      var layer = this.layers[i];\n      var b = layer.glyph.bbox;\n      bbox.addPoint(b.minX, b.minY);\n      bbox.addPoint(b.maxX, b.maxY);\n    }\n\n    return bbox;\n  };\n\n  /**\n   * Returns an array of objects containing the glyph and color for\n   * each layer in the composite color glyph.\n   * @type {object[]}\n   */\n\n\n  COLRGlyph.prototype.render = function render(ctx, size) {\n    for (var _iterator = this.layers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var _ref2 = _ref,\n          glyph = _ref2.glyph,\n          color = _ref2.color;\n\n      ctx.fillColor([color.red, color.green, color.blue], color.alpha / 255 * 100);\n      glyph.render(ctx, size);\n    }\n\n    return;\n  };\n\n  _createClass(COLRGlyph, [{\n    key: 'layers',\n    get: function get() {\n      var cpal = this._font.CPAL;\n      var colr = this._font.COLR;\n      var low = 0;\n      var high = colr.baseGlyphRecord.length - 1;\n\n      while (low <= high) {\n        var mid = low + high >> 1;\n        var rec = colr.baseGlyphRecord[mid];\n\n        if (this.id < rec.gid) {\n          high = mid - 1;\n        } else if (this.id > rec.gid) {\n          low = mid + 1;\n        } else {\n          var baseLayer = rec;\n          break;\n        }\n      }\n\n      // if base glyph not found in COLR table,\n      // default to normal glyph from glyf or CFF\n      if (baseLayer == null) {\n        var g = this._font._getBaseGlyph(this.id);\n        var color = {\n          red: 0,\n          green: 0,\n          blue: 0,\n          alpha: 255\n        };\n\n        return [new COLRLayer(g, color)];\n      }\n\n      // otherwise, return an array of all the layers\n      var layers = [];\n      for (var i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++) {\n        var rec = colr.layerRecords[i];\n        var color = cpal.colorRecords[rec.paletteIndex];\n        var g = this._font._getBaseGlyph(rec.gid);\n        layers.push(new COLRLayer(g, color));\n      }\n\n      return layers;\n    }\n  }]);\n\n  return COLRGlyph;\n}(Glyph);\n\nvar TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nvar TUPLE_COUNT_MASK = 0x0fff;\nvar EMBEDDED_TUPLE_COORD = 0x8000;\nvar INTERMEDIATE_TUPLE = 0x4000;\nvar PRIVATE_POINT_NUMBERS = 0x2000;\nvar TUPLE_INDEX_MASK = 0x0fff;\nvar POINTS_ARE_WORDS = 0x80;\nvar POINT_RUN_COUNT_MASK = 0x7f;\nvar DELTAS_ARE_ZERO = 0x80;\nvar DELTAS_ARE_WORDS = 0x40;\nvar DELTA_RUN_COUNT_MASK = 0x3f;\n\n/**\n * This class is transforms TrueType glyphs according to the data from\n * the Apple Advanced Typography variation tables (fvar, gvar, and avar).\n * These tables allow infinite adjustments to glyph weight, width, slant,\n * and optical size without the designer needing to specify every exact style.\n *\n * Apple's documentation for these tables is not great, so thanks to the\n * Freetype project for figuring much of this out.\n *\n * @private\n */\n\nvar GlyphVariationProcessor = function () {\n  function GlyphVariationProcessor(font, coords) {\n    _classCallCheck(this, GlyphVariationProcessor);\n\n    this.font = font;\n    this.normalizedCoords = this.normalizeCoords(coords);\n    this.blendVectors = new _Map();\n  }\n\n  GlyphVariationProcessor.prototype.normalizeCoords = function normalizeCoords(coords) {\n    // the default mapping is linear along each axis, in two segments:\n    // from the minValue to defaultValue, and from defaultValue to maxValue.\n    var normalized = [];\n    for (var i = 0; i < this.font.fvar.axis.length; i++) {\n      var axis = this.font.fvar.axis[i];\n      if (coords[i] < axis.defaultValue) {\n        normalized.push((coords[i] - axis.defaultValue + _Number$EPSILON) / (axis.defaultValue - axis.minValue + _Number$EPSILON));\n      } else {\n        normalized.push((coords[i] - axis.defaultValue + _Number$EPSILON) / (axis.maxValue - axis.defaultValue + _Number$EPSILON));\n      }\n    }\n\n    // if there is an avar table, the normalized value is calculated\n    // by interpolating between the two nearest mapped values.\n    if (this.font.avar) {\n      for (var i = 0; i < this.font.avar.segment.length; i++) {\n        var segment = this.font.avar.segment[i];\n        for (var j = 0; j < segment.correspondence.length; j++) {\n          var pair = segment.correspondence[j];\n          if (j >= 1 && normalized[i] < pair.fromCoord) {\n            var prev = segment.correspondence[j - 1];\n            normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + _Number$EPSILON) / (pair.fromCoord - prev.fromCoord + _Number$EPSILON) + prev.toCoord;\n\n            break;\n          }\n        }\n      }\n    }\n\n    return normalized;\n  };\n\n  GlyphVariationProcessor.prototype.transformPoints = function transformPoints(gid, glyphPoints) {\n    if (!this.font.fvar || !this.font.gvar) {\n      return;\n    }\n\n    var gvar = this.font.gvar;\n\n    if (gid >= gvar.glyphCount) {\n      return;\n    }\n\n    var offset = gvar.offsets[gid];\n    if (offset === gvar.offsets[gid + 1]) {\n      return;\n    }\n\n    // Read the gvar data for this glyph\n    var stream = this.font.stream;\n\n    stream.pos = offset;\n    if (stream.pos >= stream.length) {\n      return;\n    }\n\n    var tupleCount = stream.readUInt16BE();\n    var offsetToData = offset + stream.readUInt16BE();\n\n    if (tupleCount & TUPLES_SHARE_POINT_NUMBERS) {\n      var here = stream.pos;\n      stream.pos = offsetToData;\n      var sharedPoints = this.decodePoints();\n      offsetToData = stream.pos;\n      stream.pos = here;\n    }\n\n    var origPoints = glyphPoints.map(function (pt) {\n      return pt.copy();\n    });\n\n    tupleCount &= TUPLE_COUNT_MASK;\n    for (var i = 0; i < tupleCount; i++) {\n      var tupleDataSize = stream.readUInt16BE();\n      var tupleIndex = stream.readUInt16BE();\n\n      if (tupleIndex & EMBEDDED_TUPLE_COORD) {\n        var tupleCoords = [];\n        for (var a = 0; a < gvar.axisCount; a++) {\n          tupleCoords.push(stream.readInt16BE() / 16384);\n        }\n      } else {\n        if ((tupleIndex & TUPLE_INDEX_MASK) >= gvar.globalCoordCount) {\n          throw new Error('Invalid gvar table');\n        }\n\n        var tupleCoords = gvar.globalCoords[tupleIndex & TUPLE_INDEX_MASK];\n      }\n\n      if (tupleIndex & INTERMEDIATE_TUPLE) {\n        var startCoords = [];\n        for (var _a = 0; _a < gvar.axisCount; _a++) {\n          startCoords.push(stream.readInt16BE() / 16384);\n        }\n\n        var endCoords = [];\n        for (var _a2 = 0; _a2 < gvar.axisCount; _a2++) {\n          endCoords.push(stream.readInt16BE() / 16384);\n        }\n      }\n\n      // Get the factor at which to apply this tuple\n      var factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n      if (factor === 0) {\n        offsetToData += tupleDataSize;\n        continue;\n      }\n\n      var here = stream.pos;\n      stream.pos = offsetToData;\n\n      if (tupleIndex & PRIVATE_POINT_NUMBERS) {\n        var points = this.decodePoints();\n      } else {\n        var points = sharedPoints;\n      }\n\n      // points.length = 0 means there are deltas for all points\n      var nPoints = points.length === 0 ? glyphPoints.length : points.length;\n      var xDeltas = this.decodeDeltas(nPoints);\n      var yDeltas = this.decodeDeltas(nPoints);\n\n      if (points.length === 0) {\n        // all points\n        for (var _i = 0; _i < glyphPoints.length; _i++) {\n          var point = glyphPoints[_i];\n          point.x += Math.round(xDeltas[_i] * factor);\n          point.y += Math.round(yDeltas[_i] * factor);\n        }\n      } else {\n        var outPoints = origPoints.map(function (pt) {\n          return pt.copy();\n        });\n        var hasDelta = glyphPoints.map(function () {\n          return false;\n        });\n\n        for (var _i2 = 0; _i2 < points.length; _i2++) {\n          var idx = points[_i2];\n          if (idx < glyphPoints.length) {\n            var _point = outPoints[idx];\n            hasDelta[idx] = true;\n\n            _point.x += Math.round(xDeltas[_i2] * factor);\n            _point.y += Math.round(yDeltas[_i2] * factor);\n          }\n        }\n\n        this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n\n        for (var _i3 = 0; _i3 < glyphPoints.length; _i3++) {\n          var deltaX = outPoints[_i3].x - origPoints[_i3].x;\n          var deltaY = outPoints[_i3].y - origPoints[_i3].y;\n\n          glyphPoints[_i3].x += deltaX;\n          glyphPoints[_i3].y += deltaY;\n        }\n      }\n\n      offsetToData += tupleDataSize;\n      stream.pos = here;\n    }\n  };\n\n  GlyphVariationProcessor.prototype.decodePoints = function decodePoints() {\n    var stream = this.font.stream;\n    var count = stream.readUInt8();\n\n    if (count & POINTS_ARE_WORDS) {\n      count = (count & POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n    }\n\n    var points = new Uint16Array(count);\n    var i = 0;\n    var point = 0;\n    while (i < count) {\n      var run = stream.readUInt8();\n      var runCount = (run & POINT_RUN_COUNT_MASK) + 1;\n      var fn = run & POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n\n      for (var j = 0; j < runCount && i < count; j++) {\n        point += fn.call(stream);\n        points[i++] = point;\n      }\n    }\n\n    return points;\n  };\n\n  GlyphVariationProcessor.prototype.decodeDeltas = function decodeDeltas(count) {\n    var stream = this.font.stream;\n    var i = 0;\n    var deltas = new Int16Array(count);\n\n    while (i < count) {\n      var run = stream.readUInt8();\n      var runCount = (run & DELTA_RUN_COUNT_MASK) + 1;\n\n      if (run & DELTAS_ARE_ZERO) {\n        i += runCount;\n      } else {\n        var fn = run & DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n        for (var j = 0; j < runCount && i < count; j++) {\n          deltas[i++] = fn.call(stream);\n        }\n      }\n    }\n\n    return deltas;\n  };\n\n  GlyphVariationProcessor.prototype.tupleFactor = function tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n    var normalized = this.normalizedCoords;\n    var gvar = this.font.gvar;\n\n    var factor = 1;\n\n    for (var i = 0; i < gvar.axisCount; i++) {\n      if (tupleCoords[i] === 0) {\n        continue;\n      }\n\n      if (normalized[i] === 0) {\n        return 0;\n      }\n\n      if ((tupleIndex & INTERMEDIATE_TUPLE) === 0) {\n        if (normalized[i] < Math.min(0, tupleCoords[i]) || normalized[i] > Math.max(0, tupleCoords[i])) {\n          return 0;\n        }\n\n        factor = (factor * normalized[i] + _Number$EPSILON) / (tupleCoords[i] + _Number$EPSILON);\n      } else {\n        if (normalized[i] < startCoords[i] || normalized[i] > endCoords[i]) {\n          return 0;\n        } else if (normalized[i] < tupleCoords[i]) {\n          factor = factor * (normalized[i] - startCoords[i] + _Number$EPSILON) / (tupleCoords[i] - startCoords[i] + _Number$EPSILON);\n        } else {\n          factor = factor * (endCoords[i] - normalized[i] + _Number$EPSILON) / (endCoords[i] - tupleCoords[i] + _Number$EPSILON);\n        }\n      }\n    }\n\n    return factor;\n  };\n\n  // Interpolates points without delta values.\n  // Needed for the Ø and Q glyphs in Skia.\n  // Algorithm from Freetype.\n\n\n  GlyphVariationProcessor.prototype.interpolateMissingDeltas = function interpolateMissingDeltas(points, inPoints, hasDelta) {\n    if (points.length === 0) {\n      return;\n    }\n\n    var point = 0;\n    while (point < points.length) {\n      var firstPoint = point;\n\n      // find the end point of the contour\n      var endPoint = point;\n      var pt = points[endPoint];\n      while (!pt.endContour) {\n        pt = points[++endPoint];\n      }\n\n      // find the first point that has a delta\n      while (point <= endPoint && !hasDelta[point]) {\n        point++;\n      }\n\n      if (point > endPoint) {\n        continue;\n      }\n\n      var firstDelta = point;\n      var curDelta = point;\n      point++;\n\n      while (point <= endPoint) {\n        // find the next point with a delta, and interpolate intermediate points\n        if (hasDelta[point]) {\n          this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n          curDelta = point;\n        }\n\n        point++;\n      }\n\n      // shift contour if we only have a single delta\n      if (curDelta === firstDelta) {\n        this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n      } else {\n        // otherwise, handle the remaining points at the end and beginning of the contour\n        this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n\n        if (firstDelta > 0) {\n          this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n        }\n      }\n\n      point = endPoint + 1;\n    }\n  };\n\n  GlyphVariationProcessor.prototype.deltaInterpolate = function deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n    if (p1 > p2) {\n      return;\n    }\n\n    var iterable = ['x', 'y'];\n    for (var i = 0; i < iterable.length; i++) {\n      var k = iterable[i];\n      if (inPoints[ref1][k] > inPoints[ref2][k]) {\n        var p = ref1;\n        ref1 = ref2;\n        ref2 = p;\n      }\n\n      var in1 = inPoints[ref1][k];\n      var in2 = inPoints[ref2][k];\n      var out1 = outPoints[ref1][k];\n      var out2 = outPoints[ref2][k];\n\n      // If the reference points have the same coordinate but different\n      // delta, inferred delta is zero.  Otherwise interpolate.\n      if (in1 !== in2 || out1 === out2) {\n        var scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n\n        for (var _p = p1; _p <= p2; _p++) {\n          var out = inPoints[_p][k];\n\n          if (out <= in1) {\n            out += out1 - in1;\n          } else if (out >= in2) {\n            out += out2 - in2;\n          } else {\n            out = out1 + (out - in1) * scale;\n          }\n\n          outPoints[_p][k] = out;\n        }\n      }\n    }\n  };\n\n  GlyphVariationProcessor.prototype.deltaShift = function deltaShift(p1, p2, ref, inPoints, outPoints) {\n    var deltaX = outPoints[ref].x - inPoints[ref].x;\n    var deltaY = outPoints[ref].y - inPoints[ref].y;\n\n    if (deltaX === 0 && deltaY === 0) {\n      return;\n    }\n\n    for (var p = p1; p <= p2; p++) {\n      if (p !== ref) {\n        outPoints[p].x += deltaX;\n        outPoints[p].y += deltaY;\n      }\n    }\n  };\n\n  GlyphVariationProcessor.prototype.getAdvanceAdjustment = function getAdvanceAdjustment(gid, table) {\n    var outerIndex = void 0,\n        innerIndex = void 0;\n\n    if (table.advanceWidthMapping) {\n      var idx = gid;\n      if (idx >= table.advanceWidthMapping.mapCount) {\n        idx = table.advanceWidthMapping.mapCount - 1;\n      }\n\n      var entryFormat = table.advanceWidthMapping.entryFormat;\n      var _table$advanceWidthMa = table.advanceWidthMapping.mapData[idx];\n      outerIndex = _table$advanceWidthMa.outerIndex;\n      innerIndex = _table$advanceWidthMa.innerIndex;\n    } else {\n      outerIndex = 0;\n      innerIndex = gid;\n    }\n\n    return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n  };\n\n  // See pseudo code from `Font Variations Overview'\n  // in the OpenType specification.\n\n\n  GlyphVariationProcessor.prototype.getDelta = function getDelta(itemStore, outerIndex, innerIndex) {\n    if (outerIndex >= itemStore.itemVariationData.length) {\n      return 0;\n    }\n\n    var varData = itemStore.itemVariationData[outerIndex];\n    if (innerIndex >= varData.deltaSets.length) {\n      return 0;\n    }\n\n    var deltaSet = varData.deltaSets[innerIndex];\n    var blendVector = this.getBlendVector(itemStore, outerIndex);\n    var netAdjustment = 0;\n\n    for (var master = 0; master < varData.regionIndexCount; master++) {\n      netAdjustment += deltaSet.deltas[master] * blendVector[master];\n    }\n\n    return netAdjustment;\n  };\n\n  GlyphVariationProcessor.prototype.getBlendVector = function getBlendVector(itemStore, outerIndex) {\n    var varData = itemStore.itemVariationData[outerIndex];\n    if (this.blendVectors.has(varData)) {\n      return this.blendVectors.get(varData);\n    }\n\n    var normalizedCoords = this.normalizedCoords;\n    var blendVector = [];\n\n    // outer loop steps through master designs to be blended\n    for (var master = 0; master < varData.regionIndexCount; master++) {\n      var scalar = 1;\n      var regionIndex = varData.regionIndexes[master];\n      var axes = itemStore.variationRegionList.variationRegions[regionIndex];\n\n      // inner loop steps through axes in this region\n      for (var j = 0; j < axes.length; j++) {\n        var axis = axes[j];\n        var axisScalar = void 0;\n\n        // compute the scalar contribution of this axis\n        // ignore invalid ranges\n        if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) {\n          axisScalar = 1;\n        } else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) {\n          axisScalar = 1;\n\n          // peak of 0 means ignore this axis\n        } else if (axis.peakCoord === 0) {\n          axisScalar = 1;\n\n          // ignore this region if coords are out of range\n        } else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) {\n          axisScalar = 0;\n\n          // calculate a proportional factor\n        } else {\n          if (normalizedCoords[j] === axis.peakCoord) {\n            axisScalar = 1;\n          } else if (normalizedCoords[j] < axis.peakCoord) {\n            axisScalar = (normalizedCoords[j] - axis.startCoord + _Number$EPSILON) / (axis.peakCoord - axis.startCoord + _Number$EPSILON);\n          } else {\n            axisScalar = (axis.endCoord - normalizedCoords[j] + _Number$EPSILON) / (axis.endCoord - axis.peakCoord + _Number$EPSILON);\n          }\n        }\n\n        // take product of all the axis scalars\n        scalar *= axisScalar;\n      }\n\n      blendVector[master] = scalar;\n    }\n\n    this.blendVectors.set(varData, blendVector);\n    return blendVector;\n  };\n\n  return GlyphVariationProcessor;\n}();\n\nvar resolved = _Promise.resolve();\n\nvar Subset = function () {\n  function Subset(font) {\n    _classCallCheck(this, Subset);\n\n    this.font = font;\n    this.glyphs = [];\n    this.mapping = {};\n\n    // always include the missing glyph\n    this.includeGlyph(0);\n  }\n\n  Subset.prototype.includeGlyph = function includeGlyph(glyph) {\n    if ((typeof glyph === 'undefined' ? 'undefined' : _typeof(glyph)) === 'object') {\n      glyph = glyph.id;\n    }\n\n    if (this.mapping[glyph] == null) {\n      this.glyphs.push(glyph);\n      this.mapping[glyph] = this.glyphs.length - 1;\n    }\n\n    return this.mapping[glyph];\n  };\n\n  Subset.prototype.encodeStream = function encodeStream() {\n    var _this = this;\n\n    var s = new r.EncodeStream();\n\n    resolved.then(function () {\n      _this.encode(s);\n      return s.end();\n    });\n\n    return s;\n  };\n\n  return Subset;\n}();\n\n// Flags for simple glyphs\nvar ON_CURVE$1 = 1 << 0;\nvar X_SHORT_VECTOR$1 = 1 << 1;\nvar Y_SHORT_VECTOR$1 = 1 << 2;\nvar REPEAT$1 = 1 << 3;\nvar SAME_X$1 = 1 << 4;\nvar SAME_Y$1 = 1 << 5;\n\nvar Point$1 = function () {\n  function Point() {\n    _classCallCheck(this, Point);\n  }\n\n  Point.size = function size(val) {\n    return val >= 0 && val <= 255 ? 1 : 2;\n  };\n\n  Point.encode = function encode(stream, value) {\n    if (value >= 0 && value <= 255) {\n      stream.writeUInt8(value);\n    } else {\n      stream.writeInt16BE(value);\n    }\n  };\n\n  return Point;\n}();\n\nvar Glyf = new r.Struct({\n  numberOfContours: r.int16, // if negative, this is a composite glyph\n  xMin: r.int16,\n  yMin: r.int16,\n  xMax: r.int16,\n  yMax: r.int16,\n  endPtsOfContours: new r.Array(r.uint16, 'numberOfContours'),\n  instructions: new r.Array(r.uint8, r.uint16),\n  flags: new r.Array(r.uint8, 0),\n  xPoints: new r.Array(Point$1, 0),\n  yPoints: new r.Array(Point$1, 0)\n});\n\n/**\n * Encodes TrueType glyph outlines\n */\n\nvar TTFGlyphEncoder = function () {\n  function TTFGlyphEncoder() {\n    _classCallCheck(this, TTFGlyphEncoder);\n  }\n\n  TTFGlyphEncoder.prototype.encodeSimple = function encodeSimple(path) {\n    var instructions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    var endPtsOfContours = [];\n    var xPoints = [];\n    var yPoints = [];\n    var flags = [];\n    var same = 0;\n    var lastX = 0,\n        lastY = 0,\n        lastFlag = 0;\n    var pointCount = 0;\n\n    for (var i = 0; i < path.commands.length; i++) {\n      var c = path.commands[i];\n\n      for (var j = 0; j < c.args.length; j += 2) {\n        var x = c.args[j];\n        var y = c.args[j + 1];\n        var flag = 0;\n\n        // If the ending point of a quadratic curve is the midpoint\n        // between the control point and the control point of the next\n        // quadratic curve, we can omit the ending point.\n        if (c.command === 'quadraticCurveTo' && j === 2) {\n          var next = path.commands[i + 1];\n          if (next && next.command === 'quadraticCurveTo') {\n            var midX = (lastX + next.args[0]) / 2;\n            var midY = (lastY + next.args[1]) / 2;\n\n            if (x === midX && y === midY) {\n              continue;\n            }\n          }\n        }\n\n        // All points except control points are on curve.\n        if (!(c.command === 'quadraticCurveTo' && j === 0)) {\n          flag |= ON_CURVE$1;\n        }\n\n        flag = this._encodePoint(x, lastX, xPoints, flag, X_SHORT_VECTOR$1, SAME_X$1);\n        flag = this._encodePoint(y, lastY, yPoints, flag, Y_SHORT_VECTOR$1, SAME_Y$1);\n\n        if (flag === lastFlag && same < 255) {\n          flags[flags.length - 1] |= REPEAT$1;\n          same++;\n        } else {\n          if (same > 0) {\n            flags.push(same);\n            same = 0;\n          }\n\n          flags.push(flag);\n          lastFlag = flag;\n        }\n\n        lastX = x;\n        lastY = y;\n        pointCount++;\n      }\n\n      if (c.command === 'closePath') {\n        endPtsOfContours.push(pointCount - 1);\n      }\n    }\n\n    // Close the path if the last command didn't already\n    if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') {\n      endPtsOfContours.push(pointCount - 1);\n    }\n\n    var bbox = path.bbox;\n    var glyf = {\n      numberOfContours: endPtsOfContours.length,\n      xMin: bbox.minX,\n      yMin: bbox.minY,\n      xMax: bbox.maxX,\n      yMax: bbox.maxY,\n      endPtsOfContours: endPtsOfContours,\n      instructions: instructions,\n      flags: flags,\n      xPoints: xPoints,\n      yPoints: yPoints\n    };\n\n    var size = Glyf.size(glyf);\n    var tail = 4 - size % 4;\n\n    var stream = new r.EncodeStream(size + tail);\n    Glyf.encode(stream, glyf);\n\n    // Align to 4-byte length\n    if (tail !== 0) {\n      stream.fill(0, tail);\n    }\n\n    return stream.buffer;\n  };\n\n  TTFGlyphEncoder.prototype._encodePoint = function _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n    var diff = value - last;\n\n    if (value === last) {\n      flag |= sameFlag;\n    } else {\n      if (-255 <= diff && diff <= 255) {\n        flag |= shortFlag;\n        if (diff < 0) {\n          diff = -diff;\n        } else {\n          flag |= sameFlag;\n        }\n      }\n\n      points.push(diff);\n    }\n\n    return flag;\n  };\n\n  return TTFGlyphEncoder;\n}();\n\nvar TTFSubset = function (_Subset) {\n  _inherits(TTFSubset, _Subset);\n\n  function TTFSubset(font) {\n    _classCallCheck(this, TTFSubset);\n\n    var _this = _possibleConstructorReturn(this, _Subset.call(this, font));\n\n    _this.glyphEncoder = new TTFGlyphEncoder();\n    return _this;\n  }\n\n  TTFSubset.prototype._addGlyph = function _addGlyph(gid) {\n    var glyph = this.font.getGlyph(gid);\n    var glyf = glyph._decode();\n\n    // get the offset to the glyph from the loca table\n    var curOffset = this.font.loca.offsets[gid];\n    var nextOffset = this.font.loca.offsets[gid + 1];\n\n    var stream = this.font._getTableStream('glyf');\n    stream.pos += curOffset;\n\n    var buffer = stream.readBuffer(nextOffset - curOffset);\n\n    // if it is a compound glyph, include its components\n    if (glyf && glyf.numberOfContours < 0) {\n      buffer = new Buffer(buffer);\n      for (var _iterator = glyf.components, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var component = _ref;\n\n        gid = this.includeGlyph(component.glyphID);\n        buffer.writeUInt16BE(gid, component.pos);\n      }\n    } else if (glyf && this.font._variationProcessor) {\n      // If this is a TrueType variation glyph, re-encode the path\n      buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n    }\n\n    this.glyf.push(buffer);\n    this.loca.offsets.push(this.offset);\n\n    this.hmtx.metrics.push({\n      advance: glyph.advanceWidth,\n      bearing: glyph._getMetrics().leftBearing\n    });\n\n    this.offset += buffer.length;\n    return this.glyf.length - 1;\n  };\n\n  TTFSubset.prototype.encode = function encode(stream) {\n    // tables required by PDF spec:\n    //   head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n    //\n    // additional tables required for standalone fonts:\n    //   name, cmap, OS/2, post\n\n    this.glyf = [];\n    this.offset = 0;\n    this.loca = {\n      offsets: [],\n      version: this.font.loca.version\n    };\n\n    this.hmtx = {\n      metrics: [],\n      bearings: []\n    };\n\n    // include all the glyphs\n    // not using a for loop because we need to support adding more\n    // glyphs to the array as we go, and CoffeeScript caches the length.\n    var i = 0;\n    while (i < this.glyphs.length) {\n      this._addGlyph(this.glyphs[i++]);\n    }\n\n    var maxp = cloneDeep(this.font.maxp);\n    maxp.numGlyphs = this.glyf.length;\n\n    this.loca.offsets.push(this.offset);\n\n    var head = cloneDeep(this.font.head);\n    head.indexToLocFormat = this.loca.version;\n\n    var hhea = cloneDeep(this.font.hhea);\n    hhea.numberOfMetrics = this.hmtx.metrics.length;\n\n    // map = []\n    // for index in [0...256]\n    //     if index < @numGlyphs\n    //         map[index] = index\n    //     else\n    //         map[index] = 0\n    //\n    // cmapTable =\n    //     version: 0\n    //     length: 262\n    //     language: 0\n    //     codeMap: map\n    //\n    // cmap =\n    //     version: 0\n    //     numSubtables: 1\n    //     tables: [\n    //         platformID: 1\n    //         encodingID: 0\n    //         table: cmapTable\n    //     ]\n\n    // TODO: subset prep, cvt, fpgm?\n    Directory.encode(stream, {\n      tables: {\n        head: head,\n        hhea: hhea,\n        loca: this.loca,\n        maxp: maxp,\n        'cvt ': this.font['cvt '],\n        prep: this.font.prep,\n        glyf: this.glyf,\n        hmtx: this.hmtx,\n        fpgm: this.font.fpgm\n\n        // name: clone @font.name\n        // 'OS/2': clone @font['OS/2']\n        // post: clone @font.post\n        // cmap: cmap\n      }\n    });\n  };\n\n  return TTFSubset;\n}(Subset);\n\nvar CFFSubset = function (_Subset) {\n  _inherits(CFFSubset, _Subset);\n\n  function CFFSubset(font) {\n    _classCallCheck(this, CFFSubset);\n\n    var _this = _possibleConstructorReturn(this, _Subset.call(this, font));\n\n    _this.cff = _this.font['CFF '];\n    if (!_this.cff) {\n      throw new Error('Not a CFF Font');\n    }\n    return _this;\n  }\n\n  CFFSubset.prototype.subsetCharstrings = function subsetCharstrings() {\n    this.charstrings = [];\n    var gsubrs = {};\n\n    for (var _iterator = this.glyphs, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var gid = _ref;\n\n      this.charstrings.push(this.cff.getCharString(gid));\n\n      var glyph = this.font.getGlyph(gid);\n      var path = glyph.path; // this causes the glyph to be parsed\n\n      for (var subr in glyph._usedGsubrs) {\n        gsubrs[subr] = true;\n      }\n    }\n\n    this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n  };\n\n  CFFSubset.prototype.subsetSubrs = function subsetSubrs(subrs, used) {\n    var res = [];\n    for (var i = 0; i < subrs.length; i++) {\n      var subr = subrs[i];\n      if (used[i]) {\n        this.cff.stream.pos = subr.offset;\n        res.push(this.cff.stream.readBuffer(subr.length));\n      } else {\n        res.push(new Buffer([11])); // return\n      }\n    }\n\n    return res;\n  };\n\n  CFFSubset.prototype.subsetFontdict = function subsetFontdict(topDict) {\n    topDict.FDArray = [];\n    topDict.FDSelect = {\n      version: 0,\n      fds: []\n    };\n\n    var used_fds = {};\n    var used_subrs = [];\n    for (var _iterator2 = this.glyphs, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var gid = _ref2;\n\n      var fd = this.cff.fdForGlyph(gid);\n      if (fd == null) {\n        continue;\n      }\n\n      if (!used_fds[fd]) {\n        topDict.FDArray.push(_Object$assign({}, this.cff.topDict.FDArray[fd]));\n        used_subrs.push({});\n      }\n\n      used_fds[fd] = true;\n      topDict.FDSelect.fds.push(topDict.FDArray.length - 1);\n\n      var glyph = this.font.getGlyph(gid);\n      var path = glyph.path; // this causes the glyph to be parsed\n      for (var subr in glyph._usedSubrs) {\n        used_subrs[used_subrs.length - 1][subr] = true;\n      }\n    }\n\n    for (var i = 0; i < topDict.FDArray.length; i++) {\n      var dict = topDict.FDArray[i];\n      delete dict.FontName;\n      if (dict.Private && dict.Private.Subrs) {\n        dict.Private = _Object$assign({}, dict.Private);\n        dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n      }\n    }\n\n    return;\n  };\n\n  CFFSubset.prototype.createCIDFontdict = function createCIDFontdict(topDict) {\n    var used_subrs = {};\n    for (var _iterator3 = this.glyphs, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n      var _ref3;\n\n      if (_isArray3) {\n        if (_i3 >= _iterator3.length) break;\n        _ref3 = _iterator3[_i3++];\n      } else {\n        _i3 = _iterator3.next();\n        if (_i3.done) break;\n        _ref3 = _i3.value;\n      }\n\n      var gid = _ref3;\n\n      var glyph = this.font.getGlyph(gid);\n      var path = glyph.path; // this causes the glyph to be parsed\n\n      for (var subr in glyph._usedSubrs) {\n        used_subrs[subr] = true;\n      }\n    }\n\n    var privateDict = _Object$assign({}, this.cff.topDict.Private);\n    if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) {\n      privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n    }\n\n    topDict.FDArray = [{ Private: privateDict }];\n    return topDict.FDSelect = {\n      version: 3,\n      nRanges: 1,\n      ranges: [{ first: 0, fd: 0 }],\n      sentinel: this.charstrings.length\n    };\n  };\n\n  CFFSubset.prototype.addString = function addString(string) {\n    if (!string) {\n      return null;\n    }\n\n    if (!this.strings) {\n      this.strings = [];\n    }\n\n    this.strings.push(string);\n    return standardStrings.length + this.strings.length - 1;\n  };\n\n  CFFSubset.prototype.encode = function encode(stream) {\n    this.subsetCharstrings();\n\n    var charset = {\n      version: this.charstrings.length > 255 ? 2 : 1,\n      ranges: [{ first: 1, nLeft: this.charstrings.length - 2 }]\n    };\n\n    var topDict = _Object$assign({}, this.cff.topDict);\n    topDict.Private = null;\n    topDict.charset = charset;\n    topDict.Encoding = null;\n    topDict.CharStrings = this.charstrings;\n\n    var _arr = ['version', 'Notice', 'Copyright', 'FullName', 'FamilyName', 'Weight', 'PostScript', 'BaseFontName', 'FontName'];\n    for (var _i4 = 0; _i4 < _arr.length; _i4++) {\n      var key = _arr[_i4];\n      topDict[key] = this.addString(this.cff.string(topDict[key]));\n    }\n\n    topDict.ROS = [this.addString('Adobe'), this.addString('Identity'), 0];\n    topDict.CIDCount = this.charstrings.length;\n\n    if (this.cff.isCIDFont) {\n      this.subsetFontdict(topDict);\n    } else {\n      this.createCIDFontdict(topDict);\n    }\n\n    var top = {\n      version: 1,\n      hdrSize: this.cff.hdrSize,\n      offSize: 4,\n      header: this.cff.header,\n      nameIndex: [this.cff.postscriptName],\n      topDictIndex: [topDict],\n      stringIndex: this.strings,\n      globalSubrIndex: this.gsubrs\n    };\n\n    CFFTop.encode(stream, top);\n  };\n\n  return CFFSubset;\n}(Subset);\n\nvar _class;\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n  var desc = {};\n  Object['ke' + 'ys'](descriptor).forEach(function (key) {\n    desc[key] = descriptor[key];\n  });\n  desc.enumerable = !!desc.enumerable;\n  desc.configurable = !!desc.configurable;\n\n  if ('value' in desc || desc.initializer) {\n    desc.writable = true;\n  }\n\n  desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n    return decorator(target, property, desc) || desc;\n  }, desc);\n\n  if (context && desc.initializer !== void 0) {\n    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n    desc.initializer = undefined;\n  }\n\n  if (desc.initializer === void 0) {\n    Object['define' + 'Property'](target, property, desc);\n    desc = null;\n  }\n\n  return desc;\n}\n\n/**\n * This is the base class for all SFNT-based font formats in fontkit.\n * It supports TrueType, and PostScript glyphs, and several color glyph formats.\n */\nvar TTFFont = (_class = function () {\n  TTFFont.probe = function probe(buffer) {\n    var format = buffer.toString('ascii', 0, 4);\n    return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n  };\n\n  function TTFFont(stream) {\n    var variationCoords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, TTFFont);\n\n    this.defaultLanguage = null;\n    this.stream = stream;\n    this.variationCoords = variationCoords;\n\n    this._directoryPos = this.stream.pos;\n    this._tables = {};\n    this._glyphs = {};\n    this._decodeDirectory();\n\n    // define properties for each table to lazily parse\n    for (var tag in this.directory.tables) {\n      var table = this.directory.tables[tag];\n      if (tables[tag] && table.length > 0) {\n        _Object$defineProperty(this, tag, {\n          get: this._getTable.bind(this, table)\n        });\n      }\n    }\n  }\n\n  TTFFont.prototype.setDefaultLanguage = function setDefaultLanguage() {\n    var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n    this.defaultLanguage = lang;\n  };\n\n  TTFFont.prototype._getTable = function _getTable(table) {\n    if (!(table.tag in this._tables)) {\n      try {\n        this._tables[table.tag] = this._decodeTable(table);\n      } catch (e) {\n        if (fontkit.logErrors) {\n          console.error('Error decoding table ' + table.tag);\n          console.error(e.stack);\n        }\n      }\n    }\n\n    return this._tables[table.tag];\n  };\n\n  TTFFont.prototype._getTableStream = function _getTableStream(tag) {\n    var table = this.directory.tables[tag];\n    if (table) {\n      this.stream.pos = table.offset;\n      return this.stream;\n    }\n\n    return null;\n  };\n\n  TTFFont.prototype._decodeDirectory = function _decodeDirectory() {\n    return this.directory = Directory.decode(this.stream, { _startOffset: 0 });\n  };\n\n  TTFFont.prototype._decodeTable = function _decodeTable(table) {\n    var pos = this.stream.pos;\n\n    var stream = this._getTableStream(table.tag);\n    var result = tables[table.tag].decode(stream, this, table.length);\n\n    this.stream.pos = pos;\n    return result;\n  };\n\n  /**\n   * Gets a string from the font's `name` table\n   * `lang` is a BCP-47 language code.\n   * @return {string}\n   */\n\n\n  TTFFont.prototype.getName = function getName(key) {\n    var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.defaultLanguage || fontkit.defaultLanguage;\n\n    var record = this.name && this.name.records[key];\n    if (record) {\n      // Attempt to retrieve the entry, depending on which translation is available:\n      return record[lang] || record[this.defaultLanguage] || record[fontkit.defaultLanguage] || record['en'] || record[_Object$keys(record)[0]] // Seriously, ANY language would be fine\n      || null;\n    }\n\n    return null;\n  };\n\n  /**\n   * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n   * @type {string}\n   */\n\n\n  /**\n   * Returns whether there is glyph in the font for the given unicode code point.\n   *\n   * @param {number} codePoint\n   * @return {boolean}\n   */\n  TTFFont.prototype.hasGlyphForCodePoint = function hasGlyphForCodePoint(codePoint) {\n    return !!this._cmapProcessor.lookup(codePoint);\n  };\n\n  /**\n   * Maps a single unicode code point to a Glyph object.\n   * Does not perform any advanced substitutions (there is no context to do so).\n   *\n   * @param {number} codePoint\n   * @return {Glyph}\n   */\n\n\n  TTFFont.prototype.glyphForCodePoint = function glyphForCodePoint(codePoint) {\n    return this.getGlyph(this._cmapProcessor.lookup(codePoint), [codePoint]);\n  };\n\n  /**\n   * Returns an array of Glyph objects for the given string.\n   * This is only a one-to-one mapping from characters to glyphs.\n   * For most uses, you should use font.layout (described below), which\n   * provides a much more advanced mapping supporting AAT and OpenType shaping.\n   *\n   * @param {string} string\n   * @return {Glyph[]}\n   */\n\n\n  TTFFont.prototype.glyphsForString = function glyphsForString(string) {\n    var glyphs = [];\n    var len = string.length;\n    var idx = 0;\n    var last = -1;\n    var state = -1;\n\n    while (idx <= len) {\n      var code = 0;\n      var nextState = 0;\n\n      if (idx < len) {\n        // Decode the next codepoint from UTF 16\n        code = string.charCodeAt(idx++);\n        if (0xd800 <= code && code <= 0xdbff && idx < len) {\n          var next = string.charCodeAt(idx);\n          if (0xdc00 <= next && next <= 0xdfff) {\n            idx++;\n            code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n          }\n        }\n\n        // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n        nextState = 0xfe00 <= code && code <= 0xfe0f || 0xe0100 <= code && code <= 0xe01ef ? 1 : 0;\n      } else {\n        idx++;\n      }\n\n      if (state === 0 && nextState === 1) {\n        // Variation selector following normal codepoint.\n        glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [last, code]));\n      } else if (state === 0 && nextState === 0) {\n        // Normal codepoint following normal codepoint.\n        glyphs.push(this.glyphForCodePoint(last));\n      }\n\n      last = code;\n      state = nextState;\n    }\n\n    return glyphs;\n  };\n\n  /**\n   * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n   *\n   * @param {string} string\n   * @param {string[]} [userFeatures]\n   * @param {string} [script]\n   * @param {string} [language]\n   * @param {string} [direction]\n   * @return {GlyphRun}\n   */\n  TTFFont.prototype.layout = function layout(string, userFeatures, script, language, direction) {\n    return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n  };\n\n  /**\n   * Returns an array of strings that map to the given glyph id.\n   * @param {number} gid - glyph id\n   */\n\n\n  TTFFont.prototype.stringsForGlyph = function stringsForGlyph(gid) {\n    return this._layoutEngine.stringsForGlyph(gid);\n  };\n\n  /**\n   * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n   * (or mapped AAT tags) supported by the font.\n   * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n   * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n   *\n   * @type {string[]}\n   */\n\n\n  TTFFont.prototype.getAvailableFeatures = function getAvailableFeatures(script, language) {\n    return this._layoutEngine.getAvailableFeatures(script, language);\n  };\n\n  TTFFont.prototype._getBaseGlyph = function _getBaseGlyph(glyph) {\n    var characters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    if (!this._glyphs[glyph]) {\n      if (this.directory.tables.glyf) {\n        this._glyphs[glyph] = new TTFGlyph(glyph, characters, this);\n      } else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) {\n        this._glyphs[glyph] = new CFFGlyph(glyph, characters, this);\n      }\n    }\n\n    return this._glyphs[glyph] || null;\n  };\n\n  /**\n   * Returns a glyph object for the given glyph id.\n   * You can pass the array of code points this glyph represents for\n   * your use later, and it will be stored in the glyph object.\n   *\n   * @param {number} glyph\n   * @param {number[]} characters\n   * @return {Glyph}\n   */\n\n\n  TTFFont.prototype.getGlyph = function getGlyph(glyph) {\n    var characters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    if (!this._glyphs[glyph]) {\n      if (this.directory.tables.sbix) {\n        this._glyphs[glyph] = new SBIXGlyph(glyph, characters, this);\n      } else if (this.directory.tables.COLR && this.directory.tables.CPAL) {\n        this._glyphs[glyph] = new COLRGlyph(glyph, characters, this);\n      } else {\n        this._getBaseGlyph(glyph, characters);\n      }\n    }\n\n    return this._glyphs[glyph] || null;\n  };\n\n  /**\n   * Returns a Subset for this font.\n   * @return {Subset}\n   */\n\n\n  TTFFont.prototype.createSubset = function createSubset() {\n    if (this.directory.tables['CFF ']) {\n      return new CFFSubset(this);\n    }\n\n    return new TTFSubset(this);\n  };\n\n  /**\n   * Returns an object describing the available variation axes\n   * that this font supports. Keys are setting tags, and values\n   * contain the axis name, range, and default value.\n   *\n   * @type {object}\n   */\n\n\n  /**\n   * Returns a new font with the given variation settings applied.\n   * Settings can either be an instance name, or an object containing\n   * variation tags as specified by the `variationAxes` property.\n   *\n   * @param {object} settings\n   * @return {TTFFont}\n   */\n  TTFFont.prototype.getVariation = function getVariation(settings) {\n    if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) {\n      throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n    }\n\n    if (typeof settings === 'string') {\n      settings = this.namedVariations[settings];\n    }\n\n    if ((typeof settings === 'undefined' ? 'undefined' : _typeof(settings)) !== 'object') {\n      throw new Error('Variation settings must be either a variation name or settings object.');\n    }\n\n    // normalize the coordinates\n    var coords = this.fvar.axis.map(function (axis, i) {\n      var axisTag = axis.axisTag.trim();\n      if (axisTag in settings) {\n        return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n      } else {\n        return axis.defaultValue;\n      }\n    });\n\n    var stream = new r.DecodeStream(this.stream.buffer);\n    stream.pos = this._directoryPos;\n\n    var font = new TTFFont(stream, coords);\n    font._tables = this._tables;\n\n    return font;\n  };\n\n  // Standardized format plugin API\n  TTFFont.prototype.getFont = function getFont(name) {\n    return this.getVariation(name);\n  };\n\n  _createClass(TTFFont, [{\n    key: 'postscriptName',\n    get: function get() {\n      return this.getName('postscriptName');\n    }\n\n    /**\n     * The font's full name, e.g. \"Helvetica Bold\"\n     * @type {string}\n     */\n\n  }, {\n    key: 'fullName',\n    get: function get() {\n      return this.getName('fullName');\n    }\n\n    /**\n     * The font's family name, e.g. \"Helvetica\"\n     * @type {string}\n     */\n\n  }, {\n    key: 'familyName',\n    get: function get() {\n      return this.getName('fontFamily');\n    }\n\n    /**\n     * The font's sub-family, e.g. \"Bold\".\n     * @type {string}\n     */\n\n  }, {\n    key: 'subfamilyName',\n    get: function get() {\n      return this.getName('fontSubfamily');\n    }\n\n    /**\n     * The font's copyright information\n     * @type {string}\n     */\n\n  }, {\n    key: 'copyright',\n    get: function get() {\n      return this.getName('copyright');\n    }\n\n    /**\n     * The font's version number\n     * @type {string}\n     */\n\n  }, {\n    key: 'version',\n    get: function get() {\n      return this.getName('version');\n    }\n\n    /**\n     * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n     * @type {number}\n     */\n\n  }, {\n    key: 'ascent',\n    get: function get() {\n      return this.hhea.ascent;\n    }\n\n    /**\n     * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n     * @type {number}\n     */\n\n  }, {\n    key: 'descent',\n    get: function get() {\n      return this.hhea.descent;\n    }\n\n    /**\n     * The amount of space that should be included between lines\n     * @type {number}\n     */\n\n  }, {\n    key: 'lineGap',\n    get: function get() {\n      return this.hhea.lineGap;\n    }\n\n    /**\n     * The offset from the normal underline position that should be used\n     * @type {number}\n     */\n\n  }, {\n    key: 'underlinePosition',\n    get: function get() {\n      return this.post.underlinePosition;\n    }\n\n    /**\n     * The weight of the underline that should be used\n     * @type {number}\n     */\n\n  }, {\n    key: 'underlineThickness',\n    get: function get() {\n      return this.post.underlineThickness;\n    }\n\n    /**\n     * If this is an italic font, the angle the cursor should be drawn at to match the font design\n     * @type {number}\n     */\n\n  }, {\n    key: 'italicAngle',\n    get: function get() {\n      return this.post.italicAngle;\n    }\n\n    /**\n     * The height of capital letters above the baseline.\n     * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n     * @type {number}\n     */\n\n  }, {\n    key: 'capHeight',\n    get: function get() {\n      var os2 = this['OS/2'];\n      return os2 ? os2.capHeight : this.ascent;\n    }\n\n    /**\n     * The height of lower case letters in the font.\n     * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n     * @type {number}\n     */\n\n  }, {\n    key: 'xHeight',\n    get: function get() {\n      var os2 = this['OS/2'];\n      return os2 ? os2.xHeight : 0;\n    }\n\n    /**\n     * The number of glyphs in the font.\n     * @type {number}\n     */\n\n  }, {\n    key: 'numGlyphs',\n    get: function get() {\n      return this.maxp.numGlyphs;\n    }\n\n    /**\n     * The size of the font’s internal coordinate grid\n     * @type {number}\n     */\n\n  }, {\n    key: 'unitsPerEm',\n    get: function get() {\n      return this.head.unitsPerEm;\n    }\n\n    /**\n     * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n     * @type {BBox}\n     */\n\n  }, {\n    key: 'bbox',\n    get: function get() {\n      return _Object$freeze(new BBox(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n    }\n  }, {\n    key: '_cmapProcessor',\n    get: function get() {\n      return new CmapProcessor(this.cmap);\n    }\n\n    /**\n     * An array of all of the unicode code points supported by the font.\n     * @type {number[]}\n     */\n\n  }, {\n    key: 'characterSet',\n    get: function get() {\n      return this._cmapProcessor.getCharacterSet();\n    }\n  }, {\n    key: '_layoutEngine',\n    get: function get() {\n      return new LayoutEngine(this);\n    }\n  }, {\n    key: 'availableFeatures',\n    get: function get() {\n      return this._layoutEngine.getAvailableFeatures();\n    }\n  }, {\n    key: 'variationAxes',\n    get: function get() {\n      var res = {};\n      if (!this.fvar) {\n        return res;\n      }\n\n      for (var _iterator = this.fvar.axis, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var axis = _ref;\n\n        res[axis.axisTag.trim()] = {\n          name: axis.name.en,\n          min: axis.minValue,\n          default: axis.defaultValue,\n          max: axis.maxValue\n        };\n      }\n\n      return res;\n    }\n\n    /**\n     * Returns an object describing the named variation instances\n     * that the font designer has specified. Keys are variation names\n     * and values are the variation settings for this instance.\n     *\n     * @type {object}\n     */\n\n  }, {\n    key: 'namedVariations',\n    get: function get() {\n      var res = {};\n      if (!this.fvar) {\n        return res;\n      }\n\n      for (var _iterator2 = this.fvar.instance, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var instance = _ref2;\n\n        var settings = {};\n        for (var i = 0; i < this.fvar.axis.length; i++) {\n          var axis = this.fvar.axis[i];\n          settings[axis.axisTag.trim()] = instance.coord[i];\n        }\n\n        res[instance.name.en] = settings;\n      }\n\n      return res;\n    }\n  }, {\n    key: '_variationProcessor',\n    get: function get() {\n      if (!this.fvar) {\n        return null;\n      }\n\n      var variationCoords = this.variationCoords;\n\n      // Ignore if no variation coords and not CFF2\n      if (!variationCoords && !this.CFF2) {\n        return null;\n      }\n\n      if (!variationCoords) {\n        variationCoords = this.fvar.axis.map(function (axis) {\n          return axis.defaultValue;\n        });\n      }\n\n      return new GlyphVariationProcessor(this, variationCoords);\n    }\n  }]);\n\n  return TTFFont;\n}(), (_applyDecoratedDescriptor(_class.prototype, 'bbox', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, 'bbox'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, '_cmapProcessor', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, '_cmapProcessor'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'characterSet', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, 'characterSet'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, '_layoutEngine', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, '_layoutEngine'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'variationAxes', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, 'variationAxes'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'namedVariations', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, 'namedVariations'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, '_variationProcessor', [cache], _Object$getOwnPropertyDescriptor(_class.prototype, '_variationProcessor'), _class.prototype)), _class);\n\nvar WOFFDirectoryEntry = new r.Struct({\n  tag: new r.String(4),\n  offset: new r.Pointer(r.uint32, 'void', { type: 'global' }),\n  compLength: r.uint32,\n  length: r.uint32,\n  origChecksum: r.uint32\n});\n\nvar WOFFDirectory = new r.Struct({\n  tag: new r.String(4), // should be 'wOFF'\n  flavor: r.uint32,\n  length: r.uint32,\n  numTables: r.uint16,\n  reserved: new r.Reserved(r.uint16),\n  totalSfntSize: r.uint32,\n  majorVersion: r.uint16,\n  minorVersion: r.uint16,\n  metaOffset: r.uint32,\n  metaLength: r.uint32,\n  metaOrigLength: r.uint32,\n  privOffset: r.uint32,\n  privLength: r.uint32,\n  tables: new r.Array(WOFFDirectoryEntry, 'numTables')\n});\n\nWOFFDirectory.process = function () {\n  var tables = {};\n  for (var _iterator = this.tables, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var table = _ref;\n\n    tables[table.tag] = table;\n  }\n\n  this.tables = tables;\n};\n\nvar WOFFFont = function (_TTFFont) {\n  _inherits(WOFFFont, _TTFFont);\n\n  function WOFFFont() {\n    _classCallCheck(this, WOFFFont);\n\n    return _possibleConstructorReturn(this, _TTFFont.apply(this, arguments));\n  }\n\n  WOFFFont.probe = function probe(buffer) {\n    return buffer.toString('ascii', 0, 4) === 'wOFF';\n  };\n\n  WOFFFont.prototype._decodeDirectory = function _decodeDirectory() {\n    this.directory = WOFFDirectory.decode(this.stream, { _startOffset: 0 });\n  };\n\n  WOFFFont.prototype._getTableStream = function _getTableStream(tag) {\n    var table = this.directory.tables[tag];\n    if (table) {\n      this.stream.pos = table.offset;\n\n      if (table.compLength < table.length) {\n        this.stream.pos += 2; // skip deflate header\n        var outBuffer = new Buffer(table.length);\n        var buf = inflate(this.stream.readBuffer(table.compLength - 2), outBuffer);\n        return new r.DecodeStream(buf);\n      } else {\n        return this.stream;\n      }\n    }\n\n    return null;\n  };\n\n  return WOFFFont;\n}(TTFFont);\n\n/**\n * Represents a TrueType glyph in the WOFF2 format, which compresses glyphs differently.\n */\n\nvar WOFF2Glyph = function (_TTFGlyph) {\n  _inherits(WOFF2Glyph, _TTFGlyph);\n\n  function WOFF2Glyph() {\n    _classCallCheck(this, WOFF2Glyph);\n\n    return _possibleConstructorReturn(this, _TTFGlyph.apply(this, arguments));\n  }\n\n  WOFF2Glyph.prototype._decode = function _decode() {\n    // We have to decode in advance (in WOFF2Font), so just return the pre-decoded data.\n    return this._font._transformedGlyphs[this.id];\n  };\n\n  WOFF2Glyph.prototype._getCBox = function _getCBox() {\n    return this.path.bbox;\n  };\n\n  return WOFF2Glyph;\n}(TTFGlyph);\n\nvar Base128 = {\n  decode: function decode(stream) {\n    var result = 0;\n    var iterable = [0, 1, 2, 3, 4];\n    for (var j = 0; j < iterable.length; j++) {\n      var i = iterable[j];\n      var code = stream.readUInt8();\n\n      // If any of the top seven bits are set then we're about to overflow.\n      if (result & 0xe0000000) {\n        throw new Error('Overflow');\n      }\n\n      result = result << 7 | code & 0x7f;\n      if ((code & 0x80) === 0) {\n        return result;\n      }\n    }\n\n    throw new Error('Bad base 128 number');\n  }\n};\n\nvar knownTags = ['cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'OS/2', 'post', 'cvt ', 'fpgm', 'glyf', 'loca', 'prep', 'CFF ', 'VORG', 'EBDT', 'EBLC', 'gasp', 'hdmx', 'kern', 'LTSH', 'PCLT', 'VDMX', 'vhea', 'vmtx', 'BASE', 'GDEF', 'GPOS', 'GSUB', 'EBSC', 'JSTF', 'MATH', 'CBDT', 'CBLC', 'COLR', 'CPAL', 'SVG ', 'sbix', 'acnt', 'avar', 'bdat', 'bloc', 'bsln', 'cvar', 'fdsc', 'feat', 'fmtx', 'fvar', 'gvar', 'hsty', 'just', 'lcar', 'mort', 'morx', 'opbd', 'prop', 'trak', 'Zapf', 'Silf', 'Glat', 'Gloc', 'Feat', 'Sill'];\n\nvar WOFF2DirectoryEntry = new r.Struct({\n  flags: r.uint8,\n  customTag: new r.Optional(new r.String(4), function (t) {\n    return (t.flags & 0x3f) === 0x3f;\n  }),\n  tag: function tag(t) {\n    return t.customTag || knownTags[t.flags & 0x3f];\n  }, // || (() => { throw new Error(`Bad tag: ${flags & 0x3f}`); })(); },\n  length: Base128,\n  transformVersion: function transformVersion(t) {\n    return t.flags >>> 6 & 0x03;\n  },\n  transformed: function transformed(t) {\n    return t.tag === 'glyf' || t.tag === 'loca' ? t.transformVersion === 0 : t.transformVersion !== 0;\n  },\n  transformLength: new r.Optional(Base128, function (t) {\n    return t.transformed;\n  })\n});\n\nvar WOFF2Directory = new r.Struct({\n  tag: new r.String(4), // should be 'wOF2'\n  flavor: r.uint32,\n  length: r.uint32,\n  numTables: r.uint16,\n  reserved: new r.Reserved(r.uint16),\n  totalSfntSize: r.uint32,\n  totalCompressedSize: r.uint32,\n  majorVersion: r.uint16,\n  minorVersion: r.uint16,\n  metaOffset: r.uint32,\n  metaLength: r.uint32,\n  metaOrigLength: r.uint32,\n  privOffset: r.uint32,\n  privLength: r.uint32,\n  tables: new r.Array(WOFF2DirectoryEntry, 'numTables')\n});\n\nWOFF2Directory.process = function () {\n  var tables = {};\n  for (var i = 0; i < this.tables.length; i++) {\n    var table = this.tables[i];\n    tables[table.tag] = table;\n  }\n\n  return this.tables = tables;\n};\n\n/**\n * Subclass of TTFFont that represents a TTF/OTF font compressed by WOFF2\n * See spec here: http://www.w3.org/TR/WOFF2/\n */\n\nvar WOFF2Font = function (_TTFFont) {\n  _inherits(WOFF2Font, _TTFFont);\n\n  function WOFF2Font() {\n    _classCallCheck(this, WOFF2Font);\n\n    return _possibleConstructorReturn(this, _TTFFont.apply(this, arguments));\n  }\n\n  WOFF2Font.probe = function probe(buffer) {\n    return buffer.toString('ascii', 0, 4) === 'wOF2';\n  };\n\n  WOFF2Font.prototype._decodeDirectory = function _decodeDirectory() {\n    this.directory = WOFF2Directory.decode(this.stream);\n    this._dataPos = this.stream.pos;\n  };\n\n  WOFF2Font.prototype._decompress = function _decompress() {\n    // decompress data and setup table offsets if we haven't already\n    if (!this._decompressed) {\n      this.stream.pos = this._dataPos;\n      var buffer = this.stream.readBuffer(this.directory.totalCompressedSize);\n\n      var decompressedSize = 0;\n      for (var tag in this.directory.tables) {\n        var entry = this.directory.tables[tag];\n        entry.offset = decompressedSize;\n        decompressedSize += entry.transformLength != null ? entry.transformLength : entry.length;\n      }\n\n      var decompressed = brotli(buffer, decompressedSize);\n      if (!decompressed) {\n        throw new Error('Error decoding compressed data in WOFF2');\n      }\n\n      this.stream = new r.DecodeStream(new Buffer(decompressed));\n      this._decompressed = true;\n    }\n  };\n\n  WOFF2Font.prototype._decodeTable = function _decodeTable(table) {\n    this._decompress();\n    return _TTFFont.prototype._decodeTable.call(this, table);\n  };\n\n  // Override this method to get a glyph and return our\n  // custom subclass if there is a glyf table.\n\n\n  WOFF2Font.prototype._getBaseGlyph = function _getBaseGlyph(glyph) {\n    var characters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    if (!this._glyphs[glyph]) {\n      if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {\n        if (!this._transformedGlyphs) {\n          this._transformGlyfTable();\n        }\n        return this._glyphs[glyph] = new WOFF2Glyph(glyph, characters, this);\n      } else {\n        return _TTFFont.prototype._getBaseGlyph.call(this, glyph, characters);\n      }\n    }\n  };\n\n  WOFF2Font.prototype._transformGlyfTable = function _transformGlyfTable() {\n    this._decompress();\n    this.stream.pos = this.directory.tables.glyf.offset;\n    var table = GlyfTable.decode(this.stream);\n    var glyphs = [];\n\n    for (var index = 0; index < table.numGlyphs; index++) {\n      var glyph = {};\n      var nContours = table.nContours.readInt16BE();\n      glyph.numberOfContours = nContours;\n\n      if (nContours > 0) {\n        // simple glyph\n        var nPoints = [];\n        var totalPoints = 0;\n\n        for (var i = 0; i < nContours; i++) {\n          var _r = read255UInt16(table.nPoints);\n          totalPoints += _r;\n          nPoints.push(totalPoints);\n        }\n\n        glyph.points = decodeTriplet(table.flags, table.glyphs, totalPoints);\n        for (var _i = 0; _i < nContours; _i++) {\n          glyph.points[nPoints[_i] - 1].endContour = true;\n        }\n\n        var instructionSize = read255UInt16(table.glyphs);\n      } else if (nContours < 0) {\n        // composite glyph\n        var haveInstructions = TTFGlyph.prototype._decodeComposite.call({ _font: this }, glyph, table.composites);\n        if (haveInstructions) {\n          var instructionSize = read255UInt16(table.glyphs);\n        }\n      }\n\n      glyphs.push(glyph);\n    }\n\n    this._transformedGlyphs = glyphs;\n  };\n\n  return WOFF2Font;\n}(TTFFont);\n\nvar Substream = function () {\n  function Substream(length) {\n    _classCallCheck(this, Substream);\n\n    this.length = length;\n    this._buf = new r.Buffer(length);\n  }\n\n  Substream.prototype.decode = function decode(stream, parent) {\n    return new r.DecodeStream(this._buf.decode(stream, parent));\n  };\n\n  return Substream;\n}();\n\n// This struct represents the entire glyf table\n\n\nvar GlyfTable = new r.Struct({\n  version: r.uint32,\n  numGlyphs: r.uint16,\n  indexFormat: r.uint16,\n  nContourStreamSize: r.uint32,\n  nPointsStreamSize: r.uint32,\n  flagStreamSize: r.uint32,\n  glyphStreamSize: r.uint32,\n  compositeStreamSize: r.uint32,\n  bboxStreamSize: r.uint32,\n  instructionStreamSize: r.uint32,\n  nContours: new Substream('nContourStreamSize'),\n  nPoints: new Substream('nPointsStreamSize'),\n  flags: new Substream('flagStreamSize'),\n  glyphs: new Substream('glyphStreamSize'),\n  composites: new Substream('compositeStreamSize'),\n  bboxes: new Substream('bboxStreamSize'),\n  instructions: new Substream('instructionStreamSize')\n});\n\nvar WORD_CODE = 253;\nvar ONE_MORE_BYTE_CODE2 = 254;\nvar ONE_MORE_BYTE_CODE1 = 255;\nvar LOWEST_U_CODE = 253;\n\nfunction read255UInt16(stream) {\n  var code = stream.readUInt8();\n\n  if (code === WORD_CODE) {\n    return stream.readUInt16BE();\n  }\n\n  if (code === ONE_MORE_BYTE_CODE1) {\n    return stream.readUInt8() + LOWEST_U_CODE;\n  }\n\n  if (code === ONE_MORE_BYTE_CODE2) {\n    return stream.readUInt8() + LOWEST_U_CODE * 2;\n  }\n\n  return code;\n}\n\nfunction withSign(flag, baseval) {\n  return flag & 1 ? baseval : -baseval;\n}\n\nfunction decodeTriplet(flags, glyphs, nPoints) {\n  var y = void 0;\n  var x = y = 0;\n  var res = [];\n\n  for (var i = 0; i < nPoints; i++) {\n    var dx = 0,\n        dy = 0;\n    var flag = flags.readUInt8();\n    var onCurve = !(flag >> 7);\n    flag &= 0x7f;\n\n    if (flag < 10) {\n      dx = 0;\n      dy = withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());\n    } else if (flag < 20) {\n      dx = withSign(flag, ((flag - 10 & 14) << 7) + glyphs.readUInt8());\n      dy = 0;\n    } else if (flag < 84) {\n      var b0 = flag - 20;\n      var b1 = glyphs.readUInt8();\n      dx = withSign(flag, 1 + (b0 & 0x30) + (b1 >> 4));\n      dy = withSign(flag >> 1, 1 + ((b0 & 0x0c) << 2) + (b1 & 0x0f));\n    } else if (flag < 120) {\n      var b0 = flag - 84;\n      dx = withSign(flag, 1 + (b0 / 12 << 8) + glyphs.readUInt8());\n      dy = withSign(flag >> 1, 1 + (b0 % 12 >> 2 << 8) + glyphs.readUInt8());\n    } else if (flag < 124) {\n      var b1 = glyphs.readUInt8();\n      var b2 = glyphs.readUInt8();\n      dx = withSign(flag, (b1 << 4) + (b2 >> 4));\n      dy = withSign(flag >> 1, ((b2 & 0x0f) << 8) + glyphs.readUInt8());\n    } else {\n      dx = withSign(flag, glyphs.readUInt16BE());\n      dy = withSign(flag >> 1, glyphs.readUInt16BE());\n    }\n\n    x += dx;\n    y += dy;\n    res.push(new Point(onCurve, false, x, y));\n  }\n\n  return res;\n}\n\nvar TTCHeader = new r.VersionedStruct(r.uint32, {\n  0x00010000: {\n    numFonts: r.uint32,\n    offsets: new r.Array(r.uint32, 'numFonts')\n  },\n  0x00020000: {\n    numFonts: r.uint32,\n    offsets: new r.Array(r.uint32, 'numFonts'),\n    dsigTag: r.uint32,\n    dsigLength: r.uint32,\n    dsigOffset: r.uint32\n  }\n});\n\nvar TrueTypeCollection = function () {\n  TrueTypeCollection.probe = function probe(buffer) {\n    return buffer.toString('ascii', 0, 4) === 'ttcf';\n  };\n\n  function TrueTypeCollection(stream) {\n    _classCallCheck(this, TrueTypeCollection);\n\n    this.stream = stream;\n    if (stream.readString(4) !== 'ttcf') {\n      throw new Error('Not a TrueType collection');\n    }\n\n    this.header = TTCHeader.decode(stream);\n  }\n\n  TrueTypeCollection.prototype.getFont = function getFont(name) {\n    for (var _iterator = this.header.offsets, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var offset = _ref;\n\n      var stream = new r.DecodeStream(this.stream.buffer);\n      stream.pos = offset;\n      var font = new TTFFont(stream);\n      if (font.postscriptName === name) {\n        return font;\n      }\n    }\n\n    return null;\n  };\n\n  _createClass(TrueTypeCollection, [{\n    key: 'fonts',\n    get: function get() {\n      var fonts = [];\n      for (var _iterator2 = this.header.offsets, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n        var _ref2;\n\n        if (_isArray2) {\n          if (_i2 >= _iterator2.length) break;\n          _ref2 = _iterator2[_i2++];\n        } else {\n          _i2 = _iterator2.next();\n          if (_i2.done) break;\n          _ref2 = _i2.value;\n        }\n\n        var offset = _ref2;\n\n        var stream = new r.DecodeStream(this.stream.buffer);\n        stream.pos = offset;\n        fonts.push(new TTFFont(stream));\n      }\n\n      return fonts;\n    }\n  }]);\n\n  return TrueTypeCollection;\n}();\n\nvar DFontName = new r.String(r.uint8);\nvar DFontData = new r.Struct({\n  len: r.uint32,\n  buf: new r.Buffer('len')\n});\n\nvar Ref = new r.Struct({\n  id: r.uint16,\n  nameOffset: r.int16,\n  attr: r.uint8,\n  dataOffset: r.uint24,\n  handle: r.uint32\n});\n\nvar Type = new r.Struct({\n  name: new r.String(4),\n  maxTypeIndex: r.uint16,\n  refList: new r.Pointer(r.uint16, new r.Array(Ref, function (t) {\n    return t.maxTypeIndex + 1;\n  }), { type: 'parent' })\n});\n\nvar TypeList = new r.Struct({\n  length: r.uint16,\n  types: new r.Array(Type, function (t) {\n    return t.length + 1;\n  })\n});\n\nvar DFontMap = new r.Struct({\n  reserved: new r.Reserved(r.uint8, 24),\n  typeList: new r.Pointer(r.uint16, TypeList),\n  nameListOffset: new r.Pointer(r.uint16, 'void')\n});\n\nvar DFontHeader = new r.Struct({\n  dataOffset: r.uint32,\n  map: new r.Pointer(r.uint32, DFontMap),\n  dataLength: r.uint32,\n  mapLength: r.uint32\n});\n\nvar DFont = function () {\n  DFont.probe = function probe(buffer) {\n    var stream = new r.DecodeStream(buffer);\n\n    try {\n      var header = DFontHeader.decode(stream);\n    } catch (e) {\n      return false;\n    }\n\n    for (var _iterator = header.map.typeList.types, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\n      var _ref;\n\n      if (_isArray) {\n        if (_i >= _iterator.length) break;\n        _ref = _iterator[_i++];\n      } else {\n        _i = _iterator.next();\n        if (_i.done) break;\n        _ref = _i.value;\n      }\n\n      var type = _ref;\n\n      if (type.name === 'sfnt') {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  function DFont(stream) {\n    _classCallCheck(this, DFont);\n\n    this.stream = stream;\n    this.header = DFontHeader.decode(this.stream);\n\n    for (var _iterator2 = this.header.map.typeList.types, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\n      var _ref2;\n\n      if (_isArray2) {\n        if (_i2 >= _iterator2.length) break;\n        _ref2 = _iterator2[_i2++];\n      } else {\n        _i2 = _iterator2.next();\n        if (_i2.done) break;\n        _ref2 = _i2.value;\n      }\n\n      var type = _ref2;\n\n      for (var _iterator3 = type.refList, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\n        var _ref3;\n\n        if (_isArray3) {\n          if (_i3 >= _iterator3.length) break;\n          _ref3 = _iterator3[_i3++];\n        } else {\n          _i3 = _iterator3.next();\n          if (_i3.done) break;\n          _ref3 = _i3.value;\n        }\n\n        var ref = _ref3;\n\n        if (ref.nameOffset >= 0) {\n          this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n          ref.name = DFontName.decode(this.stream);\n        } else {\n          ref.name = null;\n        }\n      }\n\n      if (type.name === 'sfnt') {\n        this.sfnt = type;\n      }\n    }\n  }\n\n  DFont.prototype.getFont = function getFont(name) {\n    if (!this.sfnt) {\n      return null;\n    }\n\n    for (var _iterator4 = this.sfnt.refList, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\n      var _ref4;\n\n      if (_isArray4) {\n        if (_i4 >= _iterator4.length) break;\n        _ref4 = _iterator4[_i4++];\n      } else {\n        _i4 = _iterator4.next();\n        if (_i4.done) break;\n        _ref4 = _i4.value;\n      }\n\n      var ref = _ref4;\n\n      var pos = this.header.dataOffset + ref.dataOffset + 4;\n      var stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n      var font = new TTFFont(stream);\n      if (font.postscriptName === name) {\n        return font;\n      }\n    }\n\n    return null;\n  };\n\n  _createClass(DFont, [{\n    key: 'fonts',\n    get: function get() {\n      var fonts = [];\n      for (var _iterator5 = this.sfnt.refList, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\n        var _ref5;\n\n        if (_isArray5) {\n          if (_i5 >= _iterator5.length) break;\n          _ref5 = _iterator5[_i5++];\n        } else {\n          _i5 = _iterator5.next();\n          if (_i5.done) break;\n          _ref5 = _i5.value;\n        }\n\n        var ref = _ref5;\n\n        var pos = this.header.dataOffset + ref.dataOffset + 4;\n        var stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n        fonts.push(new TTFFont(stream));\n      }\n\n      return fonts;\n    }\n  }]);\n\n  return DFont;\n}();\n\n// Register font formats\nfontkit.registerFormat(TTFFont);\nfontkit.registerFormat(WOFFFont);\nfontkit.registerFormat(WOFF2Font);\nfontkit.registerFormat(TrueTypeCollection);\nfontkit.registerFormat(DFont);\n\nmodule.exports = fontkit;\n//# sourceMappingURL=index.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var key, val, _ref, _ref1;\n\n  exports.EncodeStream = __webpack_require__(394);\n\n  exports.DecodeStream = __webpack_require__(170);\n\n  exports.Array = __webpack_require__(253);\n\n  exports.LazyArray = __webpack_require__(413);\n\n  exports.Bitfield = __webpack_require__(414);\n\n  exports.Boolean = __webpack_require__(415);\n\n  exports.Buffer = __webpack_require__(416);\n\n  exports.Enum = __webpack_require__(417);\n\n  exports.Optional = __webpack_require__(418);\n\n  exports.Reserved = __webpack_require__(419);\n\n  exports.String = __webpack_require__(420);\n\n  exports.Struct = __webpack_require__(254);\n\n  exports.VersionedStruct = __webpack_require__(421);\n\n  _ref = __webpack_require__(89);\n  for (key in _ref) {\n    val = _ref[key];\n    exports[key] = val;\n  }\n\n  _ref1 = __webpack_require__(422);\n  for (key in _ref1) {\n    val = _ref1[key];\n    exports[key] = val;\n  }\n\n}).call(this);\n\n\n/***/ }),\n/* 394 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {// Generated by CoffeeScript 1.7.1\n(function() {\n  var DecodeStream, EncodeStream, iconv, stream,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  stream = __webpack_require__(121);\n\n  DecodeStream = __webpack_require__(170);\n\n  try {\n    iconv = __webpack_require__(171);\n  } catch (_error) {}\n\n  EncodeStream = (function(_super) {\n    var key;\n\n    __extends(EncodeStream, _super);\n\n    function EncodeStream(bufferSize) {\n      if (bufferSize == null) {\n        bufferSize = 65536;\n      }\n      EncodeStream.__super__.constructor.apply(this, arguments);\n      this.buffer = new Buffer(bufferSize);\n      this.bufferOffset = 0;\n      this.pos = 0;\n    }\n\n    for (key in Buffer.prototype) {\n      if (key.slice(0, 5) === 'write') {\n        (function(key) {\n          var bytes;\n          bytes = +DecodeStream.TYPES[key.replace(/write|[BL]E/g, '')];\n          return EncodeStream.prototype[key] = function(value) {\n            this.ensure(bytes);\n            this.buffer[key](value, this.bufferOffset);\n            this.bufferOffset += bytes;\n            return this.pos += bytes;\n          };\n        })(key);\n      }\n    }\n\n    EncodeStream.prototype._read = function() {};\n\n    EncodeStream.prototype.ensure = function(bytes) {\n      if (this.bufferOffset + bytes > this.buffer.length) {\n        return this.flush();\n      }\n    };\n\n    EncodeStream.prototype.flush = function() {\n      if (this.bufferOffset > 0) {\n        this.push(new Buffer(this.buffer.slice(0, this.bufferOffset)));\n        return this.bufferOffset = 0;\n      }\n    };\n\n    EncodeStream.prototype.writeBuffer = function(buffer) {\n      this.flush();\n      this.push(buffer);\n      return this.pos += buffer.length;\n    };\n\n    EncodeStream.prototype.writeString = function(string, encoding) {\n      var buf, byte, i, _i, _ref;\n      if (encoding == null) {\n        encoding = 'ascii';\n      }\n      switch (encoding) {\n        case 'utf16le':\n        case 'ucs2':\n        case 'utf8':\n        case 'ascii':\n          return this.writeBuffer(new Buffer(string, encoding));\n        case 'utf16be':\n          buf = new Buffer(string, 'utf16le');\n          for (i = _i = 0, _ref = buf.length - 1; _i < _ref; i = _i += 2) {\n            byte = buf[i];\n            buf[i] = buf[i + 1];\n            buf[i + 1] = byte;\n          }\n          return this.writeBuffer(buf);\n        default:\n          if (iconv) {\n            return this.writeBuffer(iconv.encode(string, encoding));\n          } else {\n            throw new Error('Install iconv-lite to enable additional string encodings.');\n          }\n      }\n    };\n\n    EncodeStream.prototype.writeUInt24BE = function(val) {\n      this.ensure(3);\n      this.buffer[this.bufferOffset++] = val >>> 16 & 0xff;\n      this.buffer[this.bufferOffset++] = val >>> 8 & 0xff;\n      this.buffer[this.bufferOffset++] = val & 0xff;\n      return this.pos += 3;\n    };\n\n    EncodeStream.prototype.writeUInt24LE = function(val) {\n      this.ensure(3);\n      this.buffer[this.bufferOffset++] = val & 0xff;\n      this.buffer[this.bufferOffset++] = val >>> 8 & 0xff;\n      this.buffer[this.bufferOffset++] = val >>> 16 & 0xff;\n      return this.pos += 3;\n    };\n\n    EncodeStream.prototype.writeInt24BE = function(val) {\n      if (val >= 0) {\n        return this.writeUInt24BE(val);\n      } else {\n        return this.writeUInt24BE(val + 0xffffff + 1);\n      }\n    };\n\n    EncodeStream.prototype.writeInt24LE = function(val) {\n      if (val >= 0) {\n        return this.writeUInt24LE(val);\n      } else {\n        return this.writeUInt24LE(val + 0xffffff + 1);\n      }\n    };\n\n    EncodeStream.prototype.fill = function(val, length) {\n      var buf;\n      if (length < this.buffer.length) {\n        this.ensure(length);\n        this.buffer.fill(val, this.bufferOffset, this.bufferOffset + length);\n        this.bufferOffset += length;\n        return this.pos += length;\n      } else {\n        buf = new Buffer(length);\n        buf.fill(val);\n        return this.writeBuffer(buf);\n      }\n    };\n\n    EncodeStream.prototype.end = function() {\n      this.flush();\n      return this.push(null);\n    };\n\n    return EncodeStream;\n\n  })(stream.Readable);\n\n  module.exports = EncodeStream;\n\n}).call(this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar BOMChar = '\\uFEFF';\n\nexports.PrependBOM = PrependBOMWrapper\nfunction PrependBOMWrapper(encoder, options) {\n    this.encoder = encoder;\n    this.addBOM = true;\n}\n\nPrependBOMWrapper.prototype.write = function(str) {\n    if (this.addBOM) {\n        str = BOMChar + str;\n        this.addBOM = false;\n    }\n\n    return this.encoder.write(str);\n}\n\nPrependBOMWrapper.prototype.end = function() {\n    return this.encoder.end();\n}\n\n\n//------------------------------------------------------------------------------\n\nexports.StripBOM = StripBOMWrapper;\nfunction StripBOMWrapper(decoder, options) {\n    this.decoder = decoder;\n    this.pass = false;\n    this.options = options || {};\n}\n\nStripBOMWrapper.prototype.write = function(buf) {\n    var res = this.decoder.write(buf);\n    if (this.pass || !res)\n        return res;\n\n    if (res[0] === BOMChar) {\n        res = res.slice(1);\n        if (typeof this.options.stripBOM === 'function')\n            this.options.stripBOM();\n    }\n\n    this.pass = true;\n    return res;\n}\n\nStripBOMWrapper.prototype.end = function() {\n    return this.decoder.end();\n}\n\n\n\n/***/ }),\n/* 396 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Update this array if you add/rename/remove files in this directory.\n// We support Browserify by skipping automatic module discovery and requiring modules directly.\nvar modules = [\n    __webpack_require__(397),\n    __webpack_require__(398),\n    __webpack_require__(399),\n    __webpack_require__(400),\n    __webpack_require__(401),\n    __webpack_require__(402),\n    __webpack_require__(403),\n    __webpack_require__(404),\n    __webpack_require__(405),\n];\n\n// Put all encoding/alias/codec definitions to single object and export it.\nfor (var i = 0; i < modules.length; i++) {\n    var module = modules[i];\n    for (var enc in module)\n        if (Object.prototype.hasOwnProperty.call(module, enc))\n            exports[enc] = module[enc];\n}\n\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// Export Node.js internal encodings.\n\nmodule.exports = {\n    // Encodings\n    utf8:   { type: \"_internal\", bomAware: true},\n    cesu8:  { type: \"_internal\", bomAware: true},\n    unicode11utf8: \"utf8\",\n\n    ucs2:   { type: \"_internal\", bomAware: true},\n    utf16le: \"ucs2\",\n\n    binary: { type: \"_internal\" },\n    base64: { type: \"_internal\" },\n    hex:    { type: \"_internal\" },\n\n    // Codec.\n    _internal: InternalCodec,\n};\n\n//------------------------------------------------------------------------------\n\nfunction InternalCodec(codecOptions, iconv) {\n    this.enc = codecOptions.encodingName;\n    this.bomAware = codecOptions.bomAware;\n\n    if (this.enc === \"base64\")\n        this.encoder = InternalEncoderBase64;\n    else if (this.enc === \"cesu8\") {\n        this.enc = \"utf8\"; // Use utf8 for decoding.\n        this.encoder = InternalEncoderCesu8;\n\n        // Add decoder for versions of Node not supporting CESU-8\n        if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {\n            this.decoder = InternalDecoderCesu8;\n            this.defaultCharUnicode = iconv.defaultCharUnicode;\n        }\n    }\n}\n\nInternalCodec.prototype.encoder = InternalEncoder;\nInternalCodec.prototype.decoder = InternalDecoder;\n\n//------------------------------------------------------------------------------\n\n// We use node.js internal decoder. Its signature is the same as ours.\nvar StringDecoder = __webpack_require__(125).StringDecoder;\n\nif (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.\n    StringDecoder.prototype.end = function() {};\n\n\nfunction InternalDecoder(options, codec) {\n    this.decoder = new StringDecoder(codec.enc);\n}\n\nInternalDecoder.prototype.write = function(buf) {\n    if (!Buffer.isBuffer(buf)) {\n        buf = Buffer.from(buf);\n    }\n\n    return this.decoder.write(buf);\n}\n\nInternalDecoder.prototype.end = function() {\n    return this.decoder.end();\n}\n\n\n//------------------------------------------------------------------------------\n// Encoder is mostly trivial\n\nfunction InternalEncoder(options, codec) {\n    this.enc = codec.enc;\n}\n\nInternalEncoder.prototype.write = function(str) {\n    return Buffer.from(str, this.enc);\n}\n\nInternalEncoder.prototype.end = function() {\n}\n\n\n//------------------------------------------------------------------------------\n// Except base64 encoder, which must keep its state.\n\nfunction InternalEncoderBase64(options, codec) {\n    this.prevStr = '';\n}\n\nInternalEncoderBase64.prototype.write = function(str) {\n    str = this.prevStr + str;\n    var completeQuads = str.length - (str.length % 4);\n    this.prevStr = str.slice(completeQuads);\n    str = str.slice(0, completeQuads);\n\n    return Buffer.from(str, \"base64\");\n}\n\nInternalEncoderBase64.prototype.end = function() {\n    return Buffer.from(this.prevStr, \"base64\");\n}\n\n\n//------------------------------------------------------------------------------\n// CESU-8 encoder is also special.\n\nfunction InternalEncoderCesu8(options, codec) {\n}\n\nInternalEncoderCesu8.prototype.write = function(str) {\n    var buf = Buffer.alloc(str.length * 3), bufIdx = 0;\n    for (var i = 0; i < str.length; i++) {\n        var charCode = str.charCodeAt(i);\n        // Naive implementation, but it works because CESU-8 is especially easy\n        // to convert from UTF-16 (which all JS strings are encoded in).\n        if (charCode < 0x80)\n            buf[bufIdx++] = charCode;\n        else if (charCode < 0x800) {\n            buf[bufIdx++] = 0xC0 + (charCode >>> 6);\n            buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n        }\n        else { // charCode will always be < 0x10000 in javascript.\n            buf[bufIdx++] = 0xE0 + (charCode >>> 12);\n            buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);\n            buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n        }\n    }\n    return buf.slice(0, bufIdx);\n}\n\nInternalEncoderCesu8.prototype.end = function() {\n}\n\n//------------------------------------------------------------------------------\n// CESU-8 decoder is not implemented in Node v4.0+\n\nfunction InternalDecoderCesu8(options, codec) {\n    this.acc = 0;\n    this.contBytes = 0;\n    this.accBytes = 0;\n    this.defaultCharUnicode = codec.defaultCharUnicode;\n}\n\nInternalDecoderCesu8.prototype.write = function(buf) {\n    var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, \n        res = '';\n    for (var i = 0; i < buf.length; i++) {\n        var curByte = buf[i];\n        if ((curByte & 0xC0) !== 0x80) { // Leading byte\n            if (contBytes > 0) { // Previous code is invalid\n                res += this.defaultCharUnicode;\n                contBytes = 0;\n            }\n\n            if (curByte < 0x80) { // Single-byte code\n                res += String.fromCharCode(curByte);\n            } else if (curByte < 0xE0) { // Two-byte code\n                acc = curByte & 0x1F;\n                contBytes = 1; accBytes = 1;\n            } else if (curByte < 0xF0) { // Three-byte code\n                acc = curByte & 0x0F;\n                contBytes = 2; accBytes = 1;\n            } else { // Four or more are not supported for CESU-8.\n                res += this.defaultCharUnicode;\n            }\n        } else { // Continuation byte\n            if (contBytes > 0) { // We're waiting for it.\n                acc = (acc << 6) | (curByte & 0x3f);\n                contBytes--; accBytes++;\n                if (contBytes === 0) {\n                    // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)\n                    if (accBytes === 2 && acc < 0x80 && acc > 0)\n                        res += this.defaultCharUnicode;\n                    else if (accBytes === 3 && acc < 0x800)\n                        res += this.defaultCharUnicode;\n                    else\n                        // Actually add character.\n                        res += String.fromCharCode(acc);\n                }\n            } else { // Unexpected continuation byte\n                res += this.defaultCharUnicode;\n            }\n        }\n    }\n    this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;\n    return res;\n}\n\nInternalDecoderCesu8.prototype.end = function() {\n    var res = 0;\n    if (this.contBytes > 0)\n        res += this.defaultCharUnicode;\n    return res;\n}\n\n\n/***/ }),\n/* 398 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// == UTF32-LE/BE codec. ==========================================================\n\nexports._utf32 = Utf32Codec;\n\nfunction Utf32Codec(codecOptions, iconv) {\n    this.iconv = iconv;\n    this.bomAware = true;\n    this.isLE = codecOptions.isLE;\n}\n\nexports.utf32le = { type: '_utf32', isLE: true };\nexports.utf32be = { type: '_utf32', isLE: false };\n\n// Aliases\nexports.ucs4le = 'utf32le';\nexports.ucs4be = 'utf32be';\n\nUtf32Codec.prototype.encoder = Utf32Encoder;\nUtf32Codec.prototype.decoder = Utf32Decoder;\n\n// -- Encoding\n\nfunction Utf32Encoder(options, codec) {\n    this.isLE = codec.isLE;\n    this.highSurrogate = 0;\n}\n\nUtf32Encoder.prototype.write = function(str) {\n    var src = Buffer.from(str, 'ucs2');\n    var dst = Buffer.alloc(src.length * 2);\n    var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;\n    var offset = 0;\n\n    for (var i = 0; i < src.length; i += 2) {\n        var code = src.readUInt16LE(i);\n        var isHighSurrogate = (0xD800 <= code && code < 0xDC00);\n        var isLowSurrogate = (0xDC00 <= code && code < 0xE000);\n\n        if (this.highSurrogate) {\n            if (isHighSurrogate || !isLowSurrogate) {\n                // There shouldn't be two high surrogates in a row, nor a high surrogate which isn't followed by a low\n                // surrogate. If this happens, keep the pending high surrogate as a stand-alone semi-invalid character\n                // (technically wrong, but expected by some applications, like Windows file names).\n                write32.call(dst, this.highSurrogate, offset);\n                offset += 4;\n            }\n            else {\n                // Create 32-bit value from high and low surrogates;\n                var codepoint = (((this.highSurrogate - 0xD800) << 10) | (code - 0xDC00)) + 0x10000;\n\n                write32.call(dst, codepoint, offset);\n                offset += 4;\n                this.highSurrogate = 0;\n\n                continue;\n            }\n        }\n\n        if (isHighSurrogate)\n            this.highSurrogate = code;\n        else {\n            // Even if the current character is a low surrogate, with no previous high surrogate, we'll\n            // encode it as a semi-invalid stand-alone character for the same reasons expressed above for\n            // unpaired high surrogates.\n            write32.call(dst, code, offset);\n            offset += 4;\n            this.highSurrogate = 0;\n        }\n    }\n\n    if (offset < dst.length)\n        dst = dst.slice(0, offset);\n\n    return dst;\n};\n\nUtf32Encoder.prototype.end = function() {\n    // Treat any leftover high surrogate as a semi-valid independent character.\n    if (!this.highSurrogate)\n        return;\n\n    var buf = Buffer.alloc(4);\n\n    if (this.isLE)\n        buf.writeUInt32LE(this.highSurrogate, 0);\n    else\n        buf.writeUInt32BE(this.highSurrogate, 0);\n\n    this.highSurrogate = 0;\n\n    return buf;\n};\n\n// -- Decoding\n\nfunction Utf32Decoder(options, codec) {\n    this.isLE = codec.isLE;\n    this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);\n    this.overflow = [];\n}\n\nUtf32Decoder.prototype.write = function(src) {\n    if (src.length === 0)\n        return '';\n\n    var i = 0;\n    var codepoint = 0;\n    var dst = Buffer.alloc(src.length + 4);\n    var offset = 0;\n    var isLE = this.isLE;\n    var overflow = this.overflow;\n    var badChar = this.badChar;\n\n    if (overflow.length > 0) {\n        for (; i < src.length && overflow.length < 4; i++)\n            overflow.push(src[i]);\n        \n        if (overflow.length === 4) {\n            // NOTE: codepoint is a signed int32 and can be negative.\n            // NOTE: We copied this block from below to help V8 optimize it (it works with array, not buffer).\n            if (isLE) {\n                codepoint = overflow[i] | (overflow[i+1] << 8) | (overflow[i+2] << 16) | (overflow[i+3] << 24);\n            } else {\n                codepoint = overflow[i+3] | (overflow[i+2] << 8) | (overflow[i+1] << 16) | (overflow[i] << 24);\n            }\n            overflow.length = 0;\n\n            offset = _writeCodepoint(dst, offset, codepoint, badChar);\n        }\n    }\n\n    // Main loop. Should be as optimized as possible.\n    for (; i < src.length - 3; i += 4) {\n        // NOTE: codepoint is a signed int32 and can be negative.\n        if (isLE) {\n            codepoint = src[i] | (src[i+1] << 8) | (src[i+2] << 16) | (src[i+3] << 24);\n        } else {\n            codepoint = src[i+3] | (src[i+2] << 8) | (src[i+1] << 16) | (src[i] << 24);\n        }\n        offset = _writeCodepoint(dst, offset, codepoint, badChar);\n    }\n\n    // Keep overflowing bytes.\n    for (; i < src.length; i++) {\n        overflow.push(src[i]);\n    }\n\n    return dst.slice(0, offset).toString('ucs2');\n};\n\nfunction _writeCodepoint(dst, offset, codepoint, badChar) {\n    // NOTE: codepoint is signed int32 and can be negative. We keep it that way to help V8 with optimizations.\n    if (codepoint < 0 || codepoint > 0x10FFFF) {\n        // Not a valid Unicode codepoint\n        codepoint = badChar;\n    } \n\n    // Ephemeral Planes: Write high surrogate.\n    if (codepoint >= 0x10000) {\n        codepoint -= 0x10000;\n\n        var high = 0xD800 | (codepoint >> 10);\n        dst[offset++] = high & 0xff;\n        dst[offset++] = high >> 8;\n\n        // Low surrogate is written below.\n        var codepoint = 0xDC00 | (codepoint & 0x3FF);\n    }\n\n    // Write BMP char or low surrogate.\n    dst[offset++] = codepoint & 0xff;\n    dst[offset++] = codepoint >> 8;\n\n    return offset;\n};\n\nUtf32Decoder.prototype.end = function() {\n    this.overflow.length = 0;\n};\n\n// == UTF-32 Auto codec =============================================================\n// Decoder chooses automatically from UTF-32LE and UTF-32BE using BOM and space-based heuristic.\n// Defaults to UTF-32LE. http://en.wikipedia.org/wiki/UTF-32\n// Encoder/decoder default can be changed: iconv.decode(buf, 'utf32', {defaultEncoding: 'utf-32be'});\n\n// Encoder prepends BOM (which can be overridden with (addBOM: false}).\n\nexports.utf32 = Utf32AutoCodec;\nexports.ucs4 = 'utf32';\n\nfunction Utf32AutoCodec(options, iconv) {\n    this.iconv = iconv;\n}\n\nUtf32AutoCodec.prototype.encoder = Utf32AutoEncoder;\nUtf32AutoCodec.prototype.decoder = Utf32AutoDecoder;\n\n// -- Encoding\n\nfunction Utf32AutoEncoder(options, codec) {\n    options = options || {};\n\n    if (options.addBOM === undefined)\n        options.addBOM = true;\n\n    this.encoder = codec.iconv.getEncoder(options.defaultEncoding || 'utf-32le', options);\n}\n\nUtf32AutoEncoder.prototype.write = function(str) {\n    return this.encoder.write(str);\n};\n\nUtf32AutoEncoder.prototype.end = function() {\n    return this.encoder.end();\n};\n\n// -- Decoding\n\nfunction Utf32AutoDecoder(options, codec) {\n    this.decoder = null;\n    this.initialBufs = [];\n    this.initialBufsLen = 0;\n    this.options = options || {};\n    this.iconv = codec.iconv;\n}\n\nUtf32AutoDecoder.prototype.write = function(buf) {\n    if (!this.decoder) { \n        // Codec is not chosen yet. Accumulate initial bytes.\n        this.initialBufs.push(buf);\n        this.initialBufsLen += buf.length;\n\n        if (this.initialBufsLen < 32) // We need more bytes to use space heuristic (see below)\n            return '';\n\n        // We have enough bytes -> detect endianness.\n        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);\n        this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n        var resStr = '';\n        for (var i = 0; i < this.initialBufs.length; i++)\n            resStr += this.decoder.write(this.initialBufs[i]);\n\n        this.initialBufs.length = this.initialBufsLen = 0;\n        return resStr;\n    }\n\n    return this.decoder.write(buf);\n};\n\nUtf32AutoDecoder.prototype.end = function() {\n    if (!this.decoder) {\n        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);\n        this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n        var resStr = '';\n        for (var i = 0; i < this.initialBufs.length; i++)\n            resStr += this.decoder.write(this.initialBufs[i]);\n\n        var trail = this.decoder.end();\n        if (trail)\n            resStr += trail;\n\n        this.initialBufs.length = this.initialBufsLen = 0;\n        return resStr;\n    }\n\n    return this.decoder.end();\n};\n\nfunction detectEncoding(bufs, defaultEncoding) {\n    var b = [];\n    var charsProcessed = 0;\n    var invalidLE = 0, invalidBE = 0;   // Number of invalid chars when decoded as LE or BE.\n    var bmpCharsLE = 0, bmpCharsBE = 0; // Number of BMP chars when decoded as LE or BE.\n\n    outer_loop:\n    for (var i = 0; i < bufs.length; i++) {\n        var buf = bufs[i];\n        for (var j = 0; j < buf.length; j++) {\n            b.push(buf[j]);\n            if (b.length === 4) {\n                if (charsProcessed === 0) {\n                    // Check BOM first.\n                    if (b[0] === 0xFF && b[1] === 0xFE && b[2] === 0 && b[3] === 0) {\n                        return 'utf-32le';\n                    }\n                    if (b[0] === 0 && b[1] === 0 && b[2] === 0xFE && b[3] === 0xFF) {\n                        return 'utf-32be';\n                    }\n                }\n\n                if (b[0] !== 0 || b[1] > 0x10) invalidBE++;\n                if (b[3] !== 0 || b[2] > 0x10) invalidLE++;\n\n                if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;\n                if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;\n\n                b.length = 0;\n                charsProcessed++;\n\n                if (charsProcessed >= 100) {\n                    break outer_loop;\n                }\n            }\n        }\n    }\n\n    // Make decisions.\n    if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE)  return 'utf-32be';\n    if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE)  return 'utf-32le';\n\n    // Couldn't decide (likely all zeros or not enough data).\n    return defaultEncoding || 'utf-32le';\n}\n\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js\n\n// == UTF16-BE codec. ==========================================================\n\nexports.utf16be = Utf16BECodec;\nfunction Utf16BECodec() {\n}\n\nUtf16BECodec.prototype.encoder = Utf16BEEncoder;\nUtf16BECodec.prototype.decoder = Utf16BEDecoder;\nUtf16BECodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf16BEEncoder() {\n}\n\nUtf16BEEncoder.prototype.write = function(str) {\n    var buf = Buffer.from(str, 'ucs2');\n    for (var i = 0; i < buf.length; i += 2) {\n        var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;\n    }\n    return buf;\n}\n\nUtf16BEEncoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf16BEDecoder() {\n    this.overflowByte = -1;\n}\n\nUtf16BEDecoder.prototype.write = function(buf) {\n    if (buf.length == 0)\n        return '';\n\n    var buf2 = Buffer.alloc(buf.length + 1),\n        i = 0, j = 0;\n\n    if (this.overflowByte !== -1) {\n        buf2[0] = buf[0];\n        buf2[1] = this.overflowByte;\n        i = 1; j = 2;\n    }\n\n    for (; i < buf.length-1; i += 2, j+= 2) {\n        buf2[j] = buf[i+1];\n        buf2[j+1] = buf[i];\n    }\n\n    this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;\n\n    return buf2.slice(0, j).toString('ucs2');\n}\n\nUtf16BEDecoder.prototype.end = function() {\n    this.overflowByte = -1;\n}\n\n\n// == UTF-16 codec =============================================================\n// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.\n// Defaults to UTF-16LE, as it's prevalent and default in Node.\n// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le\n// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});\n\n// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).\n\nexports.utf16 = Utf16Codec;\nfunction Utf16Codec(codecOptions, iconv) {\n    this.iconv = iconv;\n}\n\nUtf16Codec.prototype.encoder = Utf16Encoder;\nUtf16Codec.prototype.decoder = Utf16Decoder;\n\n\n// -- Encoding (pass-through)\n\nfunction Utf16Encoder(options, codec) {\n    options = options || {};\n    if (options.addBOM === undefined)\n        options.addBOM = true;\n    this.encoder = codec.iconv.getEncoder('utf-16le', options);\n}\n\nUtf16Encoder.prototype.write = function(str) {\n    return this.encoder.write(str);\n}\n\nUtf16Encoder.prototype.end = function() {\n    return this.encoder.end();\n}\n\n\n// -- Decoding\n\nfunction Utf16Decoder(options, codec) {\n    this.decoder = null;\n    this.initialBufs = [];\n    this.initialBufsLen = 0;\n\n    this.options = options || {};\n    this.iconv = codec.iconv;\n}\n\nUtf16Decoder.prototype.write = function(buf) {\n    if (!this.decoder) {\n        // Codec is not chosen yet. Accumulate initial bytes.\n        this.initialBufs.push(buf);\n        this.initialBufsLen += buf.length;\n        \n        if (this.initialBufsLen < 16) // We need more bytes to use space heuristic (see below)\n            return '';\n\n        // We have enough bytes -> detect endianness.\n        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);\n        this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n        var resStr = '';\n        for (var i = 0; i < this.initialBufs.length; i++)\n            resStr += this.decoder.write(this.initialBufs[i]);\n\n        this.initialBufs.length = this.initialBufsLen = 0;\n        return resStr;\n    }\n\n    return this.decoder.write(buf);\n}\n\nUtf16Decoder.prototype.end = function() {\n    if (!this.decoder) {\n        var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);\n        this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n        var resStr = '';\n        for (var i = 0; i < this.initialBufs.length; i++)\n            resStr += this.decoder.write(this.initialBufs[i]);\n\n        var trail = this.decoder.end();\n        if (trail)\n            resStr += trail;\n\n        this.initialBufs.length = this.initialBufsLen = 0;\n        return resStr;\n    }\n    return this.decoder.end();\n}\n\nfunction detectEncoding(bufs, defaultEncoding) {\n    var b = [];\n    var charsProcessed = 0;\n    var asciiCharsLE = 0, asciiCharsBE = 0; // Number of ASCII chars when decoded as LE or BE.\n\n    outer_loop:\n    for (var i = 0; i < bufs.length; i++) {\n        var buf = bufs[i];\n        for (var j = 0; j < buf.length; j++) {\n            b.push(buf[j]);\n            if (b.length === 2) {\n                if (charsProcessed === 0) {\n                    // Check BOM first.\n                    if (b[0] === 0xFF && b[1] === 0xFE) return 'utf-16le';\n                    if (b[0] === 0xFE && b[1] === 0xFF) return 'utf-16be';\n                }\n\n                if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;\n                if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;\n\n                b.length = 0;\n                charsProcessed++;\n\n                if (charsProcessed >= 100) {\n                    break outer_loop;\n                }\n            }\n        }\n    }\n\n    // Make decisions.\n    // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.\n    // So, we count ASCII as if it was LE or BE, and decide from that.\n    if (asciiCharsBE > asciiCharsLE) return 'utf-16be';\n    if (asciiCharsBE < asciiCharsLE) return 'utf-16le';\n\n    // Couldn't decide (likely all zeros or not enough data).\n    return defaultEncoding || 'utf-16le';\n}\n\n\n\n\n/***/ }),\n/* 400 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152\n// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3\n\nexports.utf7 = Utf7Codec;\nexports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7\nfunction Utf7Codec(codecOptions, iconv) {\n    this.iconv = iconv;\n};\n\nUtf7Codec.prototype.encoder = Utf7Encoder;\nUtf7Codec.prototype.decoder = Utf7Decoder;\nUtf7Codec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nvar nonDirectChars = /[^A-Za-z0-9'\\(\\),-\\.\\/:\\? \\n\\r\\t]+/g;\n\nfunction Utf7Encoder(options, codec) {\n    this.iconv = codec.iconv;\n}\n\nUtf7Encoder.prototype.write = function(str) {\n    // Naive implementation.\n    // Non-direct chars are encoded as \"+<base64>-\"; single \"+\" char is encoded as \"+-\".\n    return Buffer.from(str.replace(nonDirectChars, function(chunk) {\n        return \"+\" + (chunk === '+' ? '' : \n            this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) \n            + \"-\";\n    }.bind(this)));\n}\n\nUtf7Encoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf7Decoder(options, codec) {\n    this.iconv = codec.iconv;\n    this.inBase64 = false;\n    this.base64Accum = '';\n}\n\nvar base64Regex = /[A-Za-z0-9\\/+]/;\nvar base64Chars = [];\nfor (var i = 0; i < 256; i++)\n    base64Chars[i] = base64Regex.test(String.fromCharCode(i));\n\nvar plusChar = '+'.charCodeAt(0), \n    minusChar = '-'.charCodeAt(0),\n    andChar = '&'.charCodeAt(0);\n\nUtf7Decoder.prototype.write = function(buf) {\n    var res = \"\", lastI = 0,\n        inBase64 = this.inBase64,\n        base64Accum = this.base64Accum;\n\n    // The decoder is more involved as we must handle chunks in stream.\n\n    for (var i = 0; i < buf.length; i++) {\n        if (!inBase64) { // We're in direct mode.\n            // Write direct chars until '+'\n            if (buf[i] == plusChar) {\n                res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n                lastI = i+1;\n                inBase64 = true;\n            }\n        } else { // We decode base64.\n            if (!base64Chars[buf[i]]) { // Base64 ended.\n                if (i == lastI && buf[i] == minusChar) {// \"+-\" -> \"+\"\n                    res += \"+\";\n                } else {\n                    var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\");\n                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n                }\n\n                if (buf[i] != minusChar) // Minus is absorbed after base64.\n                    i--;\n\n                lastI = i+1;\n                inBase64 = false;\n                base64Accum = '';\n            }\n        }\n    }\n\n    if (!inBase64) {\n        res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n    } else {\n        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\");\n\n        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n        b64str = b64str.slice(0, canBeDecoded);\n\n        res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n    }\n\n    this.inBase64 = inBase64;\n    this.base64Accum = base64Accum;\n\n    return res;\n}\n\nUtf7Decoder.prototype.end = function() {\n    var res = \"\";\n    if (this.inBase64 && this.base64Accum.length > 0)\n        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n    this.inBase64 = false;\n    this.base64Accum = '';\n    return res;\n}\n\n\n// UTF-7-IMAP codec.\n// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)\n// Differences:\n//  * Base64 part is started by \"&\" instead of \"+\"\n//  * Direct characters are 0x20-0x7E, except \"&\" (0x26)\n//  * In Base64, \",\" is used instead of \"/\"\n//  * Base64 must not be used to represent direct characters.\n//  * No implicit shift back from Base64 (should always end with '-')\n//  * String must end in non-shifted position.\n//  * \"-&\" while in base64 is not allowed.\n\n\nexports.utf7imap = Utf7IMAPCodec;\nfunction Utf7IMAPCodec(codecOptions, iconv) {\n    this.iconv = iconv;\n};\n\nUtf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;\nUtf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;\nUtf7IMAPCodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf7IMAPEncoder(options, codec) {\n    this.iconv = codec.iconv;\n    this.inBase64 = false;\n    this.base64Accum = Buffer.alloc(6);\n    this.base64AccumIdx = 0;\n}\n\nUtf7IMAPEncoder.prototype.write = function(str) {\n    var inBase64 = this.inBase64,\n        base64Accum = this.base64Accum,\n        base64AccumIdx = this.base64AccumIdx,\n        buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;\n\n    for (var i = 0; i < str.length; i++) {\n        var uChar = str.charCodeAt(i);\n        if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.\n            if (inBase64) {\n                if (base64AccumIdx > 0) {\n                    bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n                    base64AccumIdx = 0;\n                }\n\n                buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n                inBase64 = false;\n            }\n\n            if (!inBase64) {\n                buf[bufIdx++] = uChar; // Write direct character\n\n                if (uChar === andChar)  // Ampersand -> '&-'\n                    buf[bufIdx++] = minusChar;\n            }\n\n        } else { // Non-direct character\n            if (!inBase64) {\n                buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.\n                inBase64 = true;\n            }\n            if (inBase64) {\n                base64Accum[base64AccumIdx++] = uChar >> 8;\n                base64Accum[base64AccumIdx++] = uChar & 0xFF;\n\n                if (base64AccumIdx == base64Accum.length) {\n                    bufIdx += buf.write(base64Accum.toString('base64').replace(/\\//g, ','), bufIdx);\n                    base64AccumIdx = 0;\n                }\n            }\n        }\n    }\n\n    this.inBase64 = inBase64;\n    this.base64AccumIdx = base64AccumIdx;\n\n    return buf.slice(0, bufIdx);\n}\n\nUtf7IMAPEncoder.prototype.end = function() {\n    var buf = Buffer.alloc(10), bufIdx = 0;\n    if (this.inBase64) {\n        if (this.base64AccumIdx > 0) {\n            bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n            this.base64AccumIdx = 0;\n        }\n\n        buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n        this.inBase64 = false;\n    }\n\n    return buf.slice(0, bufIdx);\n}\n\n\n// -- Decoding\n\nfunction Utf7IMAPDecoder(options, codec) {\n    this.iconv = codec.iconv;\n    this.inBase64 = false;\n    this.base64Accum = '';\n}\n\nvar base64IMAPChars = base64Chars.slice();\nbase64IMAPChars[','.charCodeAt(0)] = true;\n\nUtf7IMAPDecoder.prototype.write = function(buf) {\n    var res = \"\", lastI = 0,\n        inBase64 = this.inBase64,\n        base64Accum = this.base64Accum;\n\n    // The decoder is more involved as we must handle chunks in stream.\n    // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).\n\n    for (var i = 0; i < buf.length; i++) {\n        if (!inBase64) { // We're in direct mode.\n            // Write direct chars until '&'\n            if (buf[i] == andChar) {\n                res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n                lastI = i+1;\n                inBase64 = true;\n            }\n        } else { // We decode base64.\n            if (!base64IMAPChars[buf[i]]) { // Base64 ended.\n                if (i == lastI && buf[i] == minusChar) { // \"&-\" -> \"&\"\n                    res += \"&\";\n                } else {\n                    var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\").replace(/,/g, '/');\n                    res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n                }\n\n                if (buf[i] != minusChar) // Minus may be absorbed after base64.\n                    i--;\n\n                lastI = i+1;\n                inBase64 = false;\n                base64Accum = '';\n            }\n        }\n    }\n\n    if (!inBase64) {\n        res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n    } else {\n        var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\").replace(/,/g, '/');\n\n        var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n        base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n        b64str = b64str.slice(0, canBeDecoded);\n\n        res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n    }\n\n    this.inBase64 = inBase64;\n    this.base64Accum = base64Accum;\n\n    return res;\n}\n\nUtf7IMAPDecoder.prototype.end = function() {\n    var res = \"\";\n    if (this.inBase64 && this.base64Accum.length > 0)\n        res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n    this.inBase64 = false;\n    this.base64Accum = '';\n    return res;\n}\n\n\n\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that\n// correspond to encoded bytes (if 128 - then lower half is ASCII). \n\nexports._sbcs = SBCSCodec;\nfunction SBCSCodec(codecOptions, iconv) {\n    if (!codecOptions)\n        throw new Error(\"SBCS codec is called without the data.\")\n    \n    // Prepare char buffer for decoding.\n    if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))\n        throw new Error(\"Encoding '\"+codecOptions.type+\"' has incorrect 'chars' (must be of len 128 or 256)\");\n    \n    if (codecOptions.chars.length === 128) {\n        var asciiString = \"\";\n        for (var i = 0; i < 128; i++)\n            asciiString += String.fromCharCode(i);\n        codecOptions.chars = asciiString + codecOptions.chars;\n    }\n\n    this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');\n    \n    // Encoding buffer.\n    var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));\n\n    for (var i = 0; i < codecOptions.chars.length; i++)\n        encodeBuf[codecOptions.chars.charCodeAt(i)] = i;\n\n    this.encodeBuf = encodeBuf;\n}\n\nSBCSCodec.prototype.encoder = SBCSEncoder;\nSBCSCodec.prototype.decoder = SBCSDecoder;\n\n\nfunction SBCSEncoder(options, codec) {\n    this.encodeBuf = codec.encodeBuf;\n}\n\nSBCSEncoder.prototype.write = function(str) {\n    var buf = Buffer.alloc(str.length);\n    for (var i = 0; i < str.length; i++)\n        buf[i] = this.encodeBuf[str.charCodeAt(i)];\n    \n    return buf;\n}\n\nSBCSEncoder.prototype.end = function() {\n}\n\n\nfunction SBCSDecoder(options, codec) {\n    this.decodeBuf = codec.decodeBuf;\n}\n\nSBCSDecoder.prototype.write = function(buf) {\n    // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.\n    var decodeBuf = this.decodeBuf;\n    var newBuf = Buffer.alloc(buf.length*2);\n    var idx1 = 0, idx2 = 0;\n    for (var i = 0; i < buf.length; i++) {\n        idx1 = buf[i]*2; idx2 = i*2;\n        newBuf[idx2] = decodeBuf[idx1];\n        newBuf[idx2+1] = decodeBuf[idx1+1];\n    }\n    return newBuf.toString('ucs2');\n}\n\nSBCSDecoder.prototype.end = function() {\n}\n\n\n/***/ }),\n/* 402 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Manually added data to be used by sbcs codec in addition to generated one.\n\nmodule.exports = {\n    // Not supported by iconv, not sure why.\n    \"10029\": \"maccenteuro\",\n    \"maccenteuro\": {\n        \"type\": \"_sbcs\",\n        \"chars\": \"ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\"\n    },\n\n    \"808\": \"cp808\",\n    \"ibm808\": \"cp808\",\n    \"cp808\": {\n        \"type\": \"_sbcs\",\n        \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ \"\n    },\n\n    \"mik\": {\n        \"type\": \"_sbcs\",\n        \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n    },\n\n    \"cp720\": {\n        \"type\": \"_sbcs\",\n        \"chars\": \"\\x80\\x81éâ\\x84à\\x86çêëèïî\\x8d\\x8e\\x8f\\x90\\u0651\\u0652ô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡\\u064b\\u064c\\u064d\\u064e\\u064f\\u0650≈°∙·√ⁿ²■\\u00a0\"\n    },\n\n    // Aliases of generated encodings.\n    \"ascii8bit\": \"ascii\",\n    \"usascii\": \"ascii\",\n    \"ansix34\": \"ascii\",\n    \"ansix341968\": \"ascii\",\n    \"ansix341986\": \"ascii\",\n    \"csascii\": \"ascii\",\n    \"cp367\": \"ascii\",\n    \"ibm367\": \"ascii\",\n    \"isoir6\": \"ascii\",\n    \"iso646us\": \"ascii\",\n    \"iso646irv\": \"ascii\",\n    \"us\": \"ascii\",\n\n    \"latin1\": \"iso88591\",\n    \"latin2\": \"iso88592\",\n    \"latin3\": \"iso88593\",\n    \"latin4\": \"iso88594\",\n    \"latin5\": \"iso88599\",\n    \"latin6\": \"iso885910\",\n    \"latin7\": \"iso885913\",\n    \"latin8\": \"iso885914\",\n    \"latin9\": \"iso885915\",\n    \"latin10\": \"iso885916\",\n\n    \"csisolatin1\": \"iso88591\",\n    \"csisolatin2\": \"iso88592\",\n    \"csisolatin3\": \"iso88593\",\n    \"csisolatin4\": \"iso88594\",\n    \"csisolatincyrillic\": \"iso88595\",\n    \"csisolatinarabic\": \"iso88596\",\n    \"csisolatingreek\" : \"iso88597\",\n    \"csisolatinhebrew\": \"iso88598\",\n    \"csisolatin5\": \"iso88599\",\n    \"csisolatin6\": \"iso885910\",\n\n    \"l1\": \"iso88591\",\n    \"l2\": \"iso88592\",\n    \"l3\": \"iso88593\",\n    \"l4\": \"iso88594\",\n    \"l5\": \"iso88599\",\n    \"l6\": \"iso885910\",\n    \"l7\": \"iso885913\",\n    \"l8\": \"iso885914\",\n    \"l9\": \"iso885915\",\n    \"l10\": \"iso885916\",\n\n    \"isoir14\": \"iso646jp\",\n    \"isoir57\": \"iso646cn\",\n    \"isoir100\": \"iso88591\",\n    \"isoir101\": \"iso88592\",\n    \"isoir109\": \"iso88593\",\n    \"isoir110\": \"iso88594\",\n    \"isoir144\": \"iso88595\",\n    \"isoir127\": \"iso88596\",\n    \"isoir126\": \"iso88597\",\n    \"isoir138\": \"iso88598\",\n    \"isoir148\": \"iso88599\",\n    \"isoir157\": \"iso885910\",\n    \"isoir166\": \"tis620\",\n    \"isoir179\": \"iso885913\",\n    \"isoir199\": \"iso885914\",\n    \"isoir203\": \"iso885915\",\n    \"isoir226\": \"iso885916\",\n\n    \"cp819\": \"iso88591\",\n    \"ibm819\": \"iso88591\",\n\n    \"cyrillic\": \"iso88595\",\n\n    \"arabic\": \"iso88596\",\n    \"arabic8\": \"iso88596\",\n    \"ecma114\": \"iso88596\",\n    \"asmo708\": \"iso88596\",\n\n    \"greek\" : \"iso88597\",\n    \"greek8\" : \"iso88597\",\n    \"ecma118\" : \"iso88597\",\n    \"elot928\" : \"iso88597\",\n\n    \"hebrew\": \"iso88598\",\n    \"hebrew8\": \"iso88598\",\n\n    \"turkish\": \"iso88599\",\n    \"turkish8\": \"iso88599\",\n\n    \"thai\": \"iso885911\",\n    \"thai8\": \"iso885911\",\n\n    \"celtic\": \"iso885914\",\n    \"celtic8\": \"iso885914\",\n    \"isoceltic\": \"iso885914\",\n\n    \"tis6200\": \"tis620\",\n    \"tis62025291\": \"tis620\",\n    \"tis62025330\": \"tis620\",\n\n    \"10000\": \"macroman\",\n    \"10006\": \"macgreek\",\n    \"10007\": \"maccyrillic\",\n    \"10079\": \"maciceland\",\n    \"10081\": \"macturkish\",\n\n    \"cspc8codepage437\": \"cp437\",\n    \"cspc775baltic\": \"cp775\",\n    \"cspc850multilingual\": \"cp850\",\n    \"cspcp852\": \"cp852\",\n    \"cspc862latinhebrew\": \"cp862\",\n    \"cpgr\": \"cp869\",\n\n    \"msee\": \"cp1250\",\n    \"mscyrl\": \"cp1251\",\n    \"msansi\": \"cp1252\",\n    \"msgreek\": \"cp1253\",\n    \"msturk\": \"cp1254\",\n    \"mshebr\": \"cp1255\",\n    \"msarab\": \"cp1256\",\n    \"winbaltrim\": \"cp1257\",\n\n    \"cp20866\": \"koi8r\",\n    \"20866\": \"koi8r\",\n    \"ibm878\": \"koi8r\",\n    \"cskoi8r\": \"koi8r\",\n\n    \"cp21866\": \"koi8u\",\n    \"21866\": \"koi8u\",\n    \"ibm1168\": \"koi8u\",\n\n    \"strk10482002\": \"rk1048\",\n\n    \"tcvn5712\": \"tcvn\",\n    \"tcvn57121\": \"tcvn\",\n\n    \"gb198880\": \"iso646cn\",\n    \"cn\": \"iso646cn\",\n\n    \"csiso14jisc6220ro\": \"iso646jp\",\n    \"jisc62201969ro\": \"iso646jp\",\n    \"jp\": \"iso646jp\",\n\n    \"cshproman8\": \"hproman8\",\n    \"r8\": \"hproman8\",\n    \"roman8\": \"hproman8\",\n    \"xroman8\": \"hproman8\",\n    \"ibm1051\": \"hproman8\",\n\n    \"mac\": \"macintosh\",\n    \"csmacintosh\": \"macintosh\",\n};\n\n\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.\nmodule.exports = {\n  \"437\": \"cp437\",\n  \"737\": \"cp737\",\n  \"775\": \"cp775\",\n  \"850\": \"cp850\",\n  \"852\": \"cp852\",\n  \"855\": \"cp855\",\n  \"856\": \"cp856\",\n  \"857\": \"cp857\",\n  \"858\": \"cp858\",\n  \"860\": \"cp860\",\n  \"861\": \"cp861\",\n  \"862\": \"cp862\",\n  \"863\": \"cp863\",\n  \"864\": \"cp864\",\n  \"865\": \"cp865\",\n  \"866\": \"cp866\",\n  \"869\": \"cp869\",\n  \"874\": \"windows874\",\n  \"922\": \"cp922\",\n  \"1046\": \"cp1046\",\n  \"1124\": \"cp1124\",\n  \"1125\": \"cp1125\",\n  \"1129\": \"cp1129\",\n  \"1133\": \"cp1133\",\n  \"1161\": \"cp1161\",\n  \"1162\": \"cp1162\",\n  \"1163\": \"cp1163\",\n  \"1250\": \"windows1250\",\n  \"1251\": \"windows1251\",\n  \"1252\": \"windows1252\",\n  \"1253\": \"windows1253\",\n  \"1254\": \"windows1254\",\n  \"1255\": \"windows1255\",\n  \"1256\": \"windows1256\",\n  \"1257\": \"windows1257\",\n  \"1258\": \"windows1258\",\n  \"28591\": \"iso88591\",\n  \"28592\": \"iso88592\",\n  \"28593\": \"iso88593\",\n  \"28594\": \"iso88594\",\n  \"28595\": \"iso88595\",\n  \"28596\": \"iso88596\",\n  \"28597\": \"iso88597\",\n  \"28598\": \"iso88598\",\n  \"28599\": \"iso88599\",\n  \"28600\": \"iso885910\",\n  \"28601\": \"iso885911\",\n  \"28603\": \"iso885913\",\n  \"28604\": \"iso885914\",\n  \"28605\": \"iso885915\",\n  \"28606\": \"iso885916\",\n  \"windows874\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n  },\n  \"win874\": \"windows874\",\n  \"cp874\": \"windows874\",\n  \"windows1250\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n  },\n  \"win1250\": \"windows1250\",\n  \"cp1250\": \"windows1250\",\n  \"windows1251\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n  },\n  \"win1251\": \"windows1251\",\n  \"cp1251\": \"windows1251\",\n  \"windows1252\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n  },\n  \"win1252\": \"windows1252\",\n  \"cp1252\": \"windows1252\",\n  \"windows1253\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n  },\n  \"win1253\": \"windows1253\",\n  \"cp1253\": \"windows1253\",\n  \"windows1254\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n  },\n  \"win1254\": \"windows1254\",\n  \"cp1254\": \"windows1254\",\n  \"windows1255\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n  },\n  \"win1255\": \"windows1255\",\n  \"cp1255\": \"windows1255\",\n  \"windows1256\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\"\n  },\n  \"win1256\": \"windows1256\",\n  \"cp1256\": \"windows1256\",\n  \"windows1257\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\"\n  },\n  \"win1257\": \"windows1257\",\n  \"cp1257\": \"windows1257\",\n  \"windows1258\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n  },\n  \"win1258\": \"windows1258\",\n  \"cp1258\": \"windows1258\",\n  \"iso88591\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n  },\n  \"cp28591\": \"iso88591\",\n  \"iso88592\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n  },\n  \"cp28592\": \"iso88592\",\n  \"iso88593\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙\"\n  },\n  \"cp28593\": \"iso88593\",\n  \"iso88594\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙\"\n  },\n  \"cp28594\": \"iso88594\",\n  \"iso88595\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ\"\n  },\n  \"cp28595\": \"iso88595\",\n  \"iso88596\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������\"\n  },\n  \"cp28596\": \"iso88596\",\n  \"iso88597\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n  },\n  \"cp28597\": \"iso88597\",\n  \"iso88598\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n  },\n  \"cp28598\": \"iso88598\",\n  \"iso88599\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n  },\n  \"cp28599\": \"iso88599\",\n  \"iso885910\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ\"\n  },\n  \"cp28600\": \"iso885910\",\n  \"iso885911\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n  },\n  \"cp28601\": \"iso885911\",\n  \"iso885913\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’\"\n  },\n  \"cp28603\": \"iso885913\",\n  \"iso885914\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ\"\n  },\n  \"cp28604\": \"iso885914\",\n  \"iso885915\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n  },\n  \"cp28605\": \"iso885915\",\n  \"iso885916\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ\"\n  },\n  \"cp28606\": \"iso885916\",\n  \"cp437\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm437\": \"cp437\",\n  \"csibm437\": \"cp437\",\n  \"cp737\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm737\": \"cp737\",\n  \"csibm737\": \"cp737\",\n  \"cp775\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ \"\n  },\n  \"ibm775\": \"cp775\",\n  \"csibm775\": \"cp775\",\n  \"cp850\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ \"\n  },\n  \"ibm850\": \"cp850\",\n  \"csibm850\": \"cp850\",\n  \"cp852\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \"\n  },\n  \"ibm852\": \"cp852\",\n  \"csibm852\": \"cp852\",\n  \"cp855\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ \"\n  },\n  \"ibm855\": \"cp855\",\n  \"csibm855\": \"cp855\",\n  \"cp856\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ \"\n  },\n  \"ibm856\": \"cp856\",\n  \"csibm856\": \"cp856\",\n  \"cp857\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \"\n  },\n  \"ibm857\": \"cp857\",\n  \"csibm857\": \"cp857\",\n  \"cp858\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ \"\n  },\n  \"ibm858\": \"cp858\",\n  \"csibm858\": \"cp858\",\n  \"cp860\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñÑªº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm860\": \"cp860\",\n  \"csibm860\": \"cp860\",\n  \"cp861\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm861\": \"cp861\",\n  \"csibm861\": \"cp861\",\n  \"cp862\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm862\": \"cp862\",\n  \"csibm862\": \"cp862\",\n  \"cp863\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm863\": \"cp863\",\n  \"csibm863\": \"cp863\",\n  \"cp864\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�\"\n  },\n  \"ibm864\": \"cp864\",\n  \"csibm864\": \"cp864\",\n  \"cp865\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n  },\n  \"ibm865\": \"cp865\",\n  \"csibm865\": \"cp865\",\n  \"cp866\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \"\n  },\n  \"ibm866\": \"cp866\",\n  \"csibm866\": \"cp866\",\n  \"cp869\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ \"\n  },\n  \"ibm869\": \"cp869\",\n  \"csibm869\": \"cp869\",\n  \"cp922\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ\"\n  },\n  \"ibm922\": \"cp922\",\n  \"csibm922\": \"cp922\",\n  \"cp1046\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�\"\n  },\n  \"ibm1046\": \"cp1046\",\n  \"csibm1046\": \"cp1046\",\n  \"cp1124\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ\"\n  },\n  \"ibm1124\": \"cp1124\",\n  \"csibm1124\": \"cp1124\",\n  \"cp1125\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ \"\n  },\n  \"ibm1125\": \"cp1125\",\n  \"csibm1125\": \"cp1125\",\n  \"cp1129\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n  },\n  \"ibm1129\": \"cp1129\",\n  \"csibm1129\": \"cp1129\",\n  \"cp1133\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�\"\n  },\n  \"ibm1133\": \"cp1133\",\n  \"csibm1133\": \"cp1133\",\n  \"cp1161\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ \"\n  },\n  \"ibm1161\": \"cp1161\",\n  \"csibm1161\": \"cp1161\",\n  \"cp1162\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n  },\n  \"ibm1162\": \"cp1162\",\n  \"csibm1162\": \"cp1162\",\n  \"cp1163\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n  },\n  \"ibm1163\": \"cp1163\",\n  \"csibm1163\": \"cp1163\",\n  \"maccroatian\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ\"\n  },\n  \"maccyrillic\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n  },\n  \"macgreek\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\"\n  },\n  \"maciceland\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n  },\n  \"macroman\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n  },\n  \"macromania\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n  },\n  \"macthai\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู﻿​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����\"\n  },\n  \"macturkish\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\"\n  },\n  \"macukraine\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n  },\n  \"koi8r\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n  },\n  \"koi8u\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n  },\n  \"koi8ru\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n  },\n  \"koi8t\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n  },\n  \"armscii8\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�\"\n  },\n  \"rk1048\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n  },\n  \"tcvn\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"\\u0000ÚỤ\\u0003ỪỬỮ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010ỨỰỲỶỸÝỴ\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ\"\n  },\n  \"georgianacademy\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n  },\n  \"georgianps\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n  },\n  \"pt154\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n  },\n  \"viscii\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"\\u0000\\u0001Ẳ\\u0003\\u0004ẴẪ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013Ỷ\\u0015\\u0016\\u0017\\u0018Ỹ\\u001a\\u001b\\u001c\\u001dỴ\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ\"\n  },\n  \"iso646cn\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n  },\n  \"iso646jp\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n  },\n  \"hproman8\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \" ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�\"\n  },\n  \"macintosh\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n  },\n  \"ascii\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"��������������������������������������������������������������������������������������������������������������������������������\"\n  },\n  \"tis620\": {\n    \"type\": \"_sbcs\",\n    \"chars\": \"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n  }\n}\n\n/***/ }),\n/* 404 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.\n// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.\n// To save memory and loading time, we read table files only when requested.\n\nexports._dbcs = DBCSCodec;\n\nvar UNASSIGNED = -1,\n    GB18030_CODE = -2,\n    SEQ_START  = -10,\n    NODE_START = -1000,\n    UNASSIGNED_NODE = new Array(0x100),\n    DEF_CHAR = -1;\n\nfor (var i = 0; i < 0x100; i++)\n    UNASSIGNED_NODE[i] = UNASSIGNED;\n\n\n// Class DBCSCodec reads and initializes mapping tables.\nfunction DBCSCodec(codecOptions, iconv) {\n    this.encodingName = codecOptions.encodingName;\n    if (!codecOptions)\n        throw new Error(\"DBCS codec is called without the data.\")\n    if (!codecOptions.table)\n        throw new Error(\"Encoding '\" + this.encodingName + \"' has no data.\");\n\n    // Load tables.\n    var mappingTable = codecOptions.table();\n\n\n    // Decode tables: MBCS -> Unicode.\n\n    // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.\n    // Trie root is decodeTables[0].\n    // Values: >=  0 -> unicode character code. can be > 0xFFFF\n    //         == UNASSIGNED -> unknown/unassigned sequence.\n    //         == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.\n    //         <= NODE_START -> index of the next node in our trie to process next byte.\n    //         <= SEQ_START  -> index of the start of a character code sequence, in decodeTableSeq.\n    this.decodeTables = [];\n    this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.\n\n    // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. \n    this.decodeTableSeq = [];\n\n    // Actual mapping tables consist of chunks. Use them to fill up decode tables.\n    for (var i = 0; i < mappingTable.length; i++)\n        this._addDecodeChunk(mappingTable[i]);\n\n    // Load & create GB18030 tables when needed.\n    if (typeof codecOptions.gb18030 === 'function') {\n        this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.\n\n        // Add GB18030 common decode nodes.\n        var commonThirdByteNodeIdx = this.decodeTables.length;\n        this.decodeTables.push(UNASSIGNED_NODE.slice(0));\n\n        var commonFourthByteNodeIdx = this.decodeTables.length;\n        this.decodeTables.push(UNASSIGNED_NODE.slice(0));\n\n        // Fill out the tree\n        var firstByteNode = this.decodeTables[0];\n        for (var i = 0x81; i <= 0xFE; i++) {\n            var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i]];\n            for (var j = 0x30; j <= 0x39; j++) {\n                if (secondByteNode[j] === UNASSIGNED) {\n                    secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;\n                } else if (secondByteNode[j] > NODE_START) {\n                    throw new Error(\"gb18030 decode tables conflict at byte 2\");\n                }\n\n                var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];\n                for (var k = 0x81; k <= 0xFE; k++) {\n                    if (thirdByteNode[k] === UNASSIGNED) {\n                        thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;\n                    } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {\n                        continue;\n                    } else if (thirdByteNode[k] > NODE_START) {\n                        throw new Error(\"gb18030 decode tables conflict at byte 3\");\n                    }\n\n                    var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];\n                    for (var l = 0x30; l <= 0x39; l++) {\n                        if (fourthByteNode[l] === UNASSIGNED)\n                            fourthByteNode[l] = GB18030_CODE;\n                    }\n                }\n            }\n        }\n    }\n\n    this.defaultCharUnicode = iconv.defaultCharUnicode;\n\n    \n    // Encode tables: Unicode -> DBCS.\n\n    // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.\n    // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.\n    // Values: >=  0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).\n    //         == UNASSIGNED -> no conversion found. Output a default char.\n    //         <= SEQ_START  -> it's an index in encodeTableSeq, see below. The character starts a sequence.\n    this.encodeTable = [];\n    \n    // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of\n    // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key\n    // means end of sequence (needed when one sequence is a strict subsequence of another).\n    // Objects are kept separately from encodeTable to increase performance.\n    this.encodeTableSeq = [];\n\n    // Some chars can be decoded, but need not be encoded.\n    var skipEncodeChars = {};\n    if (codecOptions.encodeSkipVals)\n        for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {\n            var val = codecOptions.encodeSkipVals[i];\n            if (typeof val === 'number')\n                skipEncodeChars[val] = true;\n            else\n                for (var j = val.from; j <= val.to; j++)\n                    skipEncodeChars[j] = true;\n        }\n        \n    // Use decode trie to recursively fill out encode tables.\n    this._fillEncodeTable(0, 0, skipEncodeChars);\n\n    // Add more encoding pairs when needed.\n    if (codecOptions.encodeAdd) {\n        for (var uChar in codecOptions.encodeAdd)\n            if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))\n                this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);\n    }\n\n    this.defCharSB  = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];\n    if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];\n    if (this.defCharSB === UNASSIGNED) this.defCharSB = \"?\".charCodeAt(0);\n}\n\nDBCSCodec.prototype.encoder = DBCSEncoder;\nDBCSCodec.prototype.decoder = DBCSDecoder;\n\n// Decoder helpers\nDBCSCodec.prototype._getDecodeTrieNode = function(addr) {\n    var bytes = [];\n    for (; addr > 0; addr >>>= 8)\n        bytes.push(addr & 0xFF);\n    if (bytes.length == 0)\n        bytes.push(0);\n\n    var node = this.decodeTables[0];\n    for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.\n        var val = node[bytes[i]];\n\n        if (val == UNASSIGNED) { // Create new node.\n            node[bytes[i]] = NODE_START - this.decodeTables.length;\n            this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));\n        }\n        else if (val <= NODE_START) { // Existing node.\n            node = this.decodeTables[NODE_START - val];\n        }\n        else\n            throw new Error(\"Overwrite byte in \" + this.encodingName + \", addr: \" + addr.toString(16));\n    }\n    return node;\n}\n\n\nDBCSCodec.prototype._addDecodeChunk = function(chunk) {\n    // First element of chunk is the hex mbcs code where we start.\n    var curAddr = parseInt(chunk[0], 16);\n\n    // Choose the decoding node where we'll write our chars.\n    var writeTable = this._getDecodeTrieNode(curAddr);\n    curAddr = curAddr & 0xFF;\n\n    // Write all other elements of the chunk to the table.\n    for (var k = 1; k < chunk.length; k++) {\n        var part = chunk[k];\n        if (typeof part === \"string\") { // String, write as-is.\n            for (var l = 0; l < part.length;) {\n                var code = part.charCodeAt(l++);\n                if (0xD800 <= code && code < 0xDC00) { // Decode surrogate\n                    var codeTrail = part.charCodeAt(l++);\n                    if (0xDC00 <= codeTrail && codeTrail < 0xE000)\n                        writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);\n                    else\n                        throw new Error(\"Incorrect surrogate pair in \"  + this.encodingName + \" at chunk \" + chunk[0]);\n                }\n                else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)\n                    var len = 0xFFF - code + 2;\n                    var seq = [];\n                    for (var m = 0; m < len; m++)\n                        seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.\n\n                    writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;\n                    this.decodeTableSeq.push(seq);\n                }\n                else\n                    writeTable[curAddr++] = code; // Basic char\n            }\n        } \n        else if (typeof part === \"number\") { // Integer, meaning increasing sequence starting with prev character.\n            var charCode = writeTable[curAddr - 1] + 1;\n            for (var l = 0; l < part; l++)\n                writeTable[curAddr++] = charCode++;\n        }\n        else\n            throw new Error(\"Incorrect type '\" + typeof part + \"' given in \"  + this.encodingName + \" at chunk \" + chunk[0]);\n    }\n    if (curAddr > 0xFF)\n        throw new Error(\"Incorrect chunk in \"  + this.encodingName + \" at addr \" + chunk[0] + \": too long\" + curAddr);\n}\n\n// Encoder helpers\nDBCSCodec.prototype._getEncodeBucket = function(uCode) {\n    var high = uCode >> 8; // This could be > 0xFF because of astral characters.\n    if (this.encodeTable[high] === undefined)\n        this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.\n    return this.encodeTable[high];\n}\n\nDBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {\n    var bucket = this._getEncodeBucket(uCode);\n    var low = uCode & 0xFF;\n    if (bucket[low] <= SEQ_START)\n        this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.\n    else if (bucket[low] == UNASSIGNED)\n        bucket[low] = dbcsCode;\n}\n\nDBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {\n    \n    // Get the root of character tree according to first character of the sequence.\n    var uCode = seq[0];\n    var bucket = this._getEncodeBucket(uCode);\n    var low = uCode & 0xFF;\n\n    var node;\n    if (bucket[low] <= SEQ_START) {\n        // There's already a sequence with  - use it.\n        node = this.encodeTableSeq[SEQ_START-bucket[low]];\n    }\n    else {\n        // There was no sequence object - allocate a new one.\n        node = {};\n        if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.\n        bucket[low] = SEQ_START - this.encodeTableSeq.length;\n        this.encodeTableSeq.push(node);\n    }\n\n    // Traverse the character tree, allocating new nodes as needed.\n    for (var j = 1; j < seq.length-1; j++) {\n        var oldVal = node[uCode];\n        if (typeof oldVal === 'object')\n            node = oldVal;\n        else {\n            node = node[uCode] = {}\n            if (oldVal !== undefined)\n                node[DEF_CHAR] = oldVal\n        }\n    }\n\n    // Set the leaf to given dbcsCode.\n    uCode = seq[seq.length-1];\n    node[uCode] = dbcsCode;\n}\n\nDBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {\n    var node = this.decodeTables[nodeIdx];\n    var hasValues = false;\n    var subNodeEmpty = {};\n    for (var i = 0; i < 0x100; i++) {\n        var uCode = node[i];\n        var mbCode = prefix + i;\n        if (skipEncodeChars[mbCode])\n            continue;\n\n        if (uCode >= 0) {\n            this._setEncodeChar(uCode, mbCode);\n            hasValues = true;\n        } else if (uCode <= NODE_START) {\n            var subNodeIdx = NODE_START - uCode;\n            if (!subNodeEmpty[subNodeIdx]) {  // Skip empty subtrees (they are too large in gb18030).\n                var newPrefix = (mbCode << 8) >>> 0;  // NOTE: '>>> 0' keeps 32-bit num positive.\n                if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars))\n                    hasValues = true;\n                else\n                    subNodeEmpty[subNodeIdx] = true;\n            }\n        } else if (uCode <= SEQ_START) {\n            this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);\n            hasValues = true;\n        }\n    }\n    return hasValues;\n}\n\n\n\n// == Encoder ==================================================================\n\nfunction DBCSEncoder(options, codec) {\n    // Encoder state\n    this.leadSurrogate = -1;\n    this.seqObj = undefined;\n    \n    // Static data\n    this.encodeTable = codec.encodeTable;\n    this.encodeTableSeq = codec.encodeTableSeq;\n    this.defaultCharSingleByte = codec.defCharSB;\n    this.gb18030 = codec.gb18030;\n}\n\nDBCSEncoder.prototype.write = function(str) {\n    var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),\n        leadSurrogate = this.leadSurrogate,\n        seqObj = this.seqObj, nextChar = -1,\n        i = 0, j = 0;\n\n    while (true) {\n        // 0. Get next character.\n        if (nextChar === -1) {\n            if (i == str.length) break;\n            var uCode = str.charCodeAt(i++);\n        }\n        else {\n            var uCode = nextChar;\n            nextChar = -1;    \n        }\n\n        // 1. Handle surrogates.\n        if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.\n            if (uCode < 0xDC00) { // We've got lead surrogate.\n                if (leadSurrogate === -1) {\n                    leadSurrogate = uCode;\n                    continue;\n                } else {\n                    leadSurrogate = uCode;\n                    // Double lead surrogate found.\n                    uCode = UNASSIGNED;\n                }\n            } else { // We've got trail surrogate.\n                if (leadSurrogate !== -1) {\n                    uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);\n                    leadSurrogate = -1;\n                } else {\n                    // Incomplete surrogate pair - only trail surrogate found.\n                    uCode = UNASSIGNED;\n                }\n                \n            }\n        }\n        else if (leadSurrogate !== -1) {\n            // Incomplete surrogate pair - only lead surrogate found.\n            nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.\n            leadSurrogate = -1;\n        }\n\n        // 2. Convert uCode character.\n        var dbcsCode = UNASSIGNED;\n        if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence\n            var resCode = seqObj[uCode];\n            if (typeof resCode === 'object') { // Sequence continues.\n                seqObj = resCode;\n                continue;\n\n            } else if (typeof resCode == 'number') { // Sequence finished. Write it.\n                dbcsCode = resCode;\n\n            } else if (resCode == undefined) { // Current character is not part of the sequence.\n\n                // Try default character for this sequence\n                resCode = seqObj[DEF_CHAR];\n                if (resCode !== undefined) {\n                    dbcsCode = resCode; // Found. Write it.\n                    nextChar = uCode; // Current character will be written too in the next iteration.\n\n                } else {\n                    // TODO: What if we have no default? (resCode == undefined)\n                    // Then, we should write first char of the sequence as-is and try the rest recursively.\n                    // Didn't do it for now because no encoding has this situation yet.\n                    // Currently, just skip the sequence and write current char.\n                }\n            }\n            seqObj = undefined;\n        }\n        else if (uCode >= 0) {  // Regular character\n            var subtable = this.encodeTable[uCode >> 8];\n            if (subtable !== undefined)\n                dbcsCode = subtable[uCode & 0xFF];\n            \n            if (dbcsCode <= SEQ_START) { // Sequence start\n                seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];\n                continue;\n            }\n\n            if (dbcsCode == UNASSIGNED && this.gb18030) {\n                // Use GB18030 algorithm to find character(s) to write.\n                var idx = findIdx(this.gb18030.uChars, uCode);\n                if (idx != -1) {\n                    var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);\n                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;\n                    newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;\n                    newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;\n                    newBuf[j++] = 0x30 + dbcsCode;\n                    continue;\n                }\n            }\n        }\n\n        // 3. Write dbcsCode character.\n        if (dbcsCode === UNASSIGNED)\n            dbcsCode = this.defaultCharSingleByte;\n        \n        if (dbcsCode < 0x100) {\n            newBuf[j++] = dbcsCode;\n        }\n        else if (dbcsCode < 0x10000) {\n            newBuf[j++] = dbcsCode >> 8;   // high byte\n            newBuf[j++] = dbcsCode & 0xFF; // low byte\n        }\n        else if (dbcsCode < 0x1000000) {\n            newBuf[j++] = dbcsCode >> 16;\n            newBuf[j++] = (dbcsCode >> 8) & 0xFF;\n            newBuf[j++] = dbcsCode & 0xFF;\n        } else {\n            newBuf[j++] = dbcsCode >>> 24;\n            newBuf[j++] = (dbcsCode >>> 16) & 0xFF;\n            newBuf[j++] = (dbcsCode >>> 8) & 0xFF;\n            newBuf[j++] = dbcsCode & 0xFF;\n        }\n    }\n\n    this.seqObj = seqObj;\n    this.leadSurrogate = leadSurrogate;\n    return newBuf.slice(0, j);\n}\n\nDBCSEncoder.prototype.end = function() {\n    if (this.leadSurrogate === -1 && this.seqObj === undefined)\n        return; // All clean. Most often case.\n\n    var newBuf = Buffer.alloc(10), j = 0;\n\n    if (this.seqObj) { // We're in the sequence.\n        var dbcsCode = this.seqObj[DEF_CHAR];\n        if (dbcsCode !== undefined) { // Write beginning of the sequence.\n            if (dbcsCode < 0x100) {\n                newBuf[j++] = dbcsCode;\n            }\n            else {\n                newBuf[j++] = dbcsCode >> 8;   // high byte\n                newBuf[j++] = dbcsCode & 0xFF; // low byte\n            }\n        } else {\n            // See todo above.\n        }\n        this.seqObj = undefined;\n    }\n\n    if (this.leadSurrogate !== -1) {\n        // Incomplete surrogate pair - only lead surrogate found.\n        newBuf[j++] = this.defaultCharSingleByte;\n        this.leadSurrogate = -1;\n    }\n    \n    return newBuf.slice(0, j);\n}\n\n// Export for testing\nDBCSEncoder.prototype.findIdx = findIdx;\n\n\n// == Decoder ==================================================================\n\nfunction DBCSDecoder(options, codec) {\n    // Decoder state\n    this.nodeIdx = 0;\n    this.prevBytes = [];\n\n    // Static data\n    this.decodeTables = codec.decodeTables;\n    this.decodeTableSeq = codec.decodeTableSeq;\n    this.defaultCharUnicode = codec.defaultCharUnicode;\n    this.gb18030 = codec.gb18030;\n}\n\nDBCSDecoder.prototype.write = function(buf) {\n    var newBuf = Buffer.alloc(buf.length*2),\n        nodeIdx = this.nodeIdx, \n        prevBytes = this.prevBytes, prevOffset = this.prevBytes.length,\n        seqStart = -this.prevBytes.length, // idx of the start of current parsed sequence.\n        uCode;\n\n    for (var i = 0, j = 0; i < buf.length; i++) {\n        var curByte = (i >= 0) ? buf[i] : prevBytes[i + prevOffset];\n\n        // Lookup in current trie node.\n        var uCode = this.decodeTables[nodeIdx][curByte];\n\n        if (uCode >= 0) { \n            // Normal character, just use it.\n        }\n        else if (uCode === UNASSIGNED) { // Unknown char.\n            // TODO: Callback with seq.\n            uCode = this.defaultCharUnicode.charCodeAt(0);\n            i = seqStart; // Skip one byte ('i' will be incremented by the for loop) and try to parse again.\n        }\n        else if (uCode === GB18030_CODE) {\n            if (i >= 3) {\n                var ptr = (buf[i-3]-0x81)*12600 + (buf[i-2]-0x30)*1260 + (buf[i-1]-0x81)*10 + (curByte-0x30);\n            } else {\n                var ptr = (prevBytes[i-3+prevOffset]-0x81)*12600 + \n                          (((i-2 >= 0) ? buf[i-2] : prevBytes[i-2+prevOffset])-0x30)*1260 + \n                          (((i-1 >= 0) ? buf[i-1] : prevBytes[i-1+prevOffset])-0x81)*10 + \n                          (curByte-0x30);\n            }\n            var idx = findIdx(this.gb18030.gbChars, ptr);\n            uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];\n        }\n        else if (uCode <= NODE_START) { // Go to next trie node.\n            nodeIdx = NODE_START - uCode;\n            continue;\n        }\n        else if (uCode <= SEQ_START) { // Output a sequence of chars.\n            var seq = this.decodeTableSeq[SEQ_START - uCode];\n            for (var k = 0; k < seq.length - 1; k++) {\n                uCode = seq[k];\n                newBuf[j++] = uCode & 0xFF;\n                newBuf[j++] = uCode >> 8;\n            }\n            uCode = seq[seq.length-1];\n        }\n        else\n            throw new Error(\"iconv-lite internal error: invalid decoding table value \" + uCode + \" at \" + nodeIdx + \"/\" + curByte);\n\n        // Write the character to buffer, handling higher planes using surrogate pair.\n        if (uCode >= 0x10000) { \n            uCode -= 0x10000;\n            var uCodeLead = 0xD800 | (uCode >> 10);\n            newBuf[j++] = uCodeLead & 0xFF;\n            newBuf[j++] = uCodeLead >> 8;\n\n            uCode = 0xDC00 | (uCode & 0x3FF);\n        }\n        newBuf[j++] = uCode & 0xFF;\n        newBuf[j++] = uCode >> 8;\n\n        // Reset trie node.\n        nodeIdx = 0; seqStart = i+1;\n    }\n\n    this.nodeIdx = nodeIdx;\n    this.prevBytes = (seqStart >= 0)\n        ? Array.prototype.slice.call(buf, seqStart)\n        : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));\n\n    return newBuf.slice(0, j).toString('ucs2');\n}\n\nDBCSDecoder.prototype.end = function() {\n    var ret = '';\n\n    // Try to parse all remaining chars.\n    while (this.prevBytes.length > 0) {\n        // Skip 1 character in the buffer.\n        ret += this.defaultCharUnicode;\n        var bytesArr = this.prevBytes.slice(1);\n\n        // Parse remaining as usual.\n        this.prevBytes = [];\n        this.nodeIdx = 0;\n        if (bytesArr.length > 0)\n            ret += this.write(bytesArr);\n    }\n\n    this.prevBytes = [];\n    this.nodeIdx = 0;\n    return ret;\n}\n\n// Binary search for GB18030. Returns largest i such that table[i] <= val.\nfunction findIdx(table, val) {\n    if (table[0] > val)\n        return -1;\n\n    var l = 0, r = table.length;\n    while (l < r-1) { // always table[l] <= val < table[r]\n        var mid = l + ((r-l+1) >> 1);\n        if (table[mid] <= val)\n            l = mid;\n        else\n            r = mid;\n    }\n    return l;\n}\n\n\n\n/***/ }),\n/* 405 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Description of supported double byte encodings and aliases.\n// Tables are not require()-d until they are needed to speed up library load.\n// require()-s are direct to support Browserify.\n\nmodule.exports = {\n    \n    // == Japanese/ShiftJIS ====================================================\n    // All japanese encodings are based on JIS X set of standards:\n    // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.\n    // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. \n    //              Has several variations in 1978, 1983, 1990 and 1997.\n    // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.\n    // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.\n    //              2 planes, first is superset of 0208, second - revised 0212.\n    //              Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)\n\n    // Byte encodings are:\n    //  * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte\n    //               encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.\n    //               Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.\n    //  * EUC-JP:    Up to 3 bytes per character. Used mostly on *nixes.\n    //               0x00-0x7F       - lower part of 0201\n    //               0x8E, 0xA1-0xDF - upper part of 0201\n    //               (0xA1-0xFE)x2   - 0208 plane (94x94).\n    //               0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).\n    //  * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.\n    //               Used as-is in ISO2022 family.\n    //  * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, \n    //                0201-1976 Roman, 0208-1978, 0208-1983.\n    //  * ISO2022-JP-1: Adds esc seq for 0212-1990.\n    //  * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.\n    //  * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.\n    //  * ISO2022-JP-2004: Adds 0213-2004 Plane 1.\n    //\n    // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.\n    //\n    // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html\n\n    'shiftjis': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(406) },\n        encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n        encodeSkipVals: [{from: 0xED40, to: 0xF940}],\n    },\n    'csshiftjis': 'shiftjis',\n    'mskanji': 'shiftjis',\n    'sjis': 'shiftjis',\n    'windows31j': 'shiftjis',\n    'ms31j': 'shiftjis',\n    'xsjis': 'shiftjis',\n    'windows932': 'shiftjis',\n    'ms932': 'shiftjis',\n    '932': 'shiftjis',\n    'cp932': 'shiftjis',\n\n    'eucjp': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(407) },\n        encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n    },\n\n    // TODO: KDDI extension to Shift_JIS\n    // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.\n    // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.\n\n\n    // == Chinese/GBK ==========================================================\n    // http://en.wikipedia.org/wiki/GBK\n    // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder\n\n    // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936\n    'gb2312': 'cp936',\n    'gb231280': 'cp936',\n    'gb23121980': 'cp936',\n    'csgb2312': 'cp936',\n    'csiso58gb231280': 'cp936',\n    'euccn': 'cp936',\n\n    // Microsoft's CP936 is a subset and approximation of GBK.\n    'windows936': 'cp936',\n    'ms936': 'cp936',\n    '936': 'cp936',\n    'cp936': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(172) },\n    },\n\n    // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.\n    'gbk': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(172).concat(__webpack_require__(251)) },\n    },\n    'xgbk': 'gbk',\n    'isoir58': 'gbk',\n\n    // GB18030 is an algorithmic extension of GBK.\n    // Main source: https://www.w3.org/TR/encoding/#gbk-encoder\n    // http://icu-project.org/docs/papers/gb18030.html\n    // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml\n    // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0\n    'gb18030': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(172).concat(__webpack_require__(251)) },\n        gb18030: function() { return __webpack_require__(408) },\n        encodeSkipVals: [0x80],\n        encodeAdd: {'€': 0xA2E3},\n    },\n\n    'chinese': 'gb18030',\n\n\n    // == Korean ===============================================================\n    // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.\n    'windows949': 'cp949',\n    'ms949': 'cp949',\n    '949': 'cp949',\n    'cp949': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(409) },\n    },\n\n    'cseuckr': 'cp949',\n    'csksc56011987': 'cp949',\n    'euckr': 'cp949',\n    'isoir149': 'cp949',\n    'korean': 'cp949',\n    'ksc56011987': 'cp949',\n    'ksc56011989': 'cp949',\n    'ksc5601': 'cp949',\n\n\n    // == Big5/Taiwan/Hong Kong ================================================\n    // There are lots of tables for Big5 and cp950. Please see the following links for history:\n    // http://moztw.org/docs/big5/  http://www.haible.de/bruno/charsets/conversion-tables/Big5.html\n    // Variations, in roughly number of defined chars:\n    //  * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT\n    //  * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/\n    //  * Big5-2003 (Taiwan standard) almost superset of cp950.\n    //  * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.\n    //  * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. \n    //    many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.\n    //    Plus, it has 4 combining sequences.\n    //    Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299\n    //    because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.\n    //    Implementations are not consistent within browsers; sometimes labeled as just big5.\n    //    MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.\n    //    Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31\n    //    In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.\n    //    Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt\n    //                   http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt\n    // \n    // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder\n    // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.\n\n    'windows950': 'cp950',\n    'ms950': 'cp950',\n    '950': 'cp950',\n    'cp950': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(252) },\n    },\n\n    // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.\n    'big5': 'big5hkscs',\n    'big5hkscs': {\n        type: '_dbcs',\n        table: function() { return __webpack_require__(252).concat(__webpack_require__(410)) },\n        encodeSkipVals: [0xa2cc],\n    },\n\n    'cnbig5': 'big5hkscs',\n    'csbig5': 'big5hkscs',\n    'xxbig5': 'big5hkscs',\n};\n\n\n/***/ }),\n/* 406 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"0\\\",\\\"\\\\u0000\\\",128],[\\\"a1\\\",\\\"｡\\\",62],[\\\"8140\\\",\\\"　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈\\\",9,\\\"＋－±×\\\"],[\\\"8180\\\",\\\"÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓\\\"],[\\\"81b8\\\",\\\"∈∋⊆⊇⊂⊃∪∩\\\"],[\\\"81c8\\\",\\\"∧∨￢⇒⇔∀∃\\\"],[\\\"81da\\\",\\\"∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬\\\"],[\\\"81f0\\\",\\\"Å‰♯♭♪†‡¶\\\"],[\\\"81fc\\\",\\\"◯\\\"],[\\\"824f\\\",\\\"０\\\",9],[\\\"8260\\\",\\\"Ａ\\\",25],[\\\"8281\\\",\\\"ａ\\\",25],[\\\"829f\\\",\\\"ぁ\\\",82],[\\\"8340\\\",\\\"ァ\\\",62],[\\\"8380\\\",\\\"ム\\\",22],[\\\"839f\\\",\\\"Α\\\",16,\\\"Σ\\\",6],[\\\"83bf\\\",\\\"α\\\",16,\\\"σ\\\",6],[\\\"8440\\\",\\\"А\\\",5,\\\"ЁЖ\\\",25],[\\\"8470\\\",\\\"а\\\",5,\\\"ёж\\\",7],[\\\"8480\\\",\\\"о\\\",17],[\\\"849f\\\",\\\"─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂\\\"],[\\\"8740\\\",\\\"①\\\",19,\\\"Ⅰ\\\",9],[\\\"875f\\\",\\\"㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡\\\"],[\\\"877e\\\",\\\"㍻\\\"],[\\\"8780\\\",\\\"〝〟№㏍℡㊤\\\",4,\\\"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪\\\"],[\\\"889f\\\",\\\"亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭\\\"],[\\\"8940\\\",\\\"院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円\\\"],[\\\"8980\\\",\\\"園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改\\\"],[\\\"8a40\\\",\\\"魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫\\\"],[\\\"8a80\\\",\\\"橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄\\\"],[\\\"8b40\\\",\\\"機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救\\\"],[\\\"8b80\\\",\\\"朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈\\\"],[\\\"8c40\\\",\\\"掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨\\\"],[\\\"8c80\\\",\\\"劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向\\\"],[\\\"8d40\\\",\\\"后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降\\\"],[\\\"8d80\\\",\\\"項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷\\\"],[\\\"8e40\\\",\\\"察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止\\\"],[\\\"8e80\\\",\\\"死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周\\\"],[\\\"8f40\\\",\\\"宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳\\\"],[\\\"8f80\\\",\\\"準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾\\\"],[\\\"9040\\\",\\\"拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨\\\"],[\\\"9080\\\",\\\"逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線\\\"],[\\\"9140\\\",\\\"繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻\\\"],[\\\"9180\\\",\\\"操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只\\\"],[\\\"9240\\\",\\\"叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄\\\"],[\\\"9280\\\",\\\"逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓\\\"],[\\\"9340\\\",\\\"邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬\\\"],[\\\"9380\\\",\\\"凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入\\\"],[\\\"9440\\\",\\\"如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅\\\"],[\\\"9480\\\",\\\"楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美\\\"],[\\\"9540\\\",\\\"鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷\\\"],[\\\"9580\\\",\\\"斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋\\\"],[\\\"9640\\\",\\\"法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆\\\"],[\\\"9680\\\",\\\"摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒\\\"],[\\\"9740\\\",\\\"諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲\\\"],[\\\"9780\\\",\\\"沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯\\\"],[\\\"9840\\\",\\\"蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕\\\"],[\\\"989f\\\",\\\"弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲\\\"],[\\\"9940\\\",\\\"僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭\\\"],[\\\"9980\\\",\\\"凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨\\\"],[\\\"9a40\\\",\\\"咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸\\\"],[\\\"9a80\\\",\\\"噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩\\\"],[\\\"9b40\\\",\\\"奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀\\\"],[\\\"9b80\\\",\\\"它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏\\\"],[\\\"9c40\\\",\\\"廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠\\\"],[\\\"9c80\\\",\\\"怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛\\\"],[\\\"9d40\\\",\\\"戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫\\\"],[\\\"9d80\\\",\\\"捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼\\\"],[\\\"9e40\\\",\\\"曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎\\\"],[\\\"9e80\\\",\\\"梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣\\\"],[\\\"9f40\\\",\\\"檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯\\\"],[\\\"9f80\\\",\\\"麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌\\\"],[\\\"e040\\\",\\\"漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝\\\"],[\\\"e080\\\",\\\"烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱\\\"],[\\\"e140\\\",\\\"瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿\\\"],[\\\"e180\\\",\\\"痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬\\\"],[\\\"e240\\\",\\\"磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰\\\"],[\\\"e280\\\",\\\"窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆\\\"],[\\\"e340\\\",\\\"紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷\\\"],[\\\"e380\\\",\\\"縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋\\\"],[\\\"e440\\\",\\\"隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤\\\"],[\\\"e480\\\",\\\"艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈\\\"],[\\\"e540\\\",\\\"蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬\\\"],[\\\"e580\\\",\\\"蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞\\\"],[\\\"e640\\\",\\\"襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧\\\"],[\\\"e680\\\",\\\"諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊\\\"],[\\\"e740\\\",\\\"蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜\\\"],[\\\"e780\\\",\\\"轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮\\\"],[\\\"e840\\\",\\\"錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙\\\"],[\\\"e880\\\",\\\"閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰\\\"],[\\\"e940\\\",\\\"顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃\\\"],[\\\"e980\\\",\\\"騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈\\\"],[\\\"ea40\\\",\\\"鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯\\\"],[\\\"ea80\\\",\\\"黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙\\\"],[\\\"ed40\\\",\\\"纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\\"],[\\\"ed80\\\",\\\"塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱\\\"],[\\\"ee40\\\",\\\"犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙\\\"],[\\\"ee80\\\",\\\"蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\\\"],[\\\"eeef\\\",\\\"ⅰ\\\",9,\\\"￢￤＇＂\\\"],[\\\"f040\\\",\\\"\\\",62],[\\\"f080\\\",\\\"\\\",124],[\\\"f140\\\",\\\"\\\",62],[\\\"f180\\\",\\\"\\\",124],[\\\"f240\\\",\\\"\\\",62],[\\\"f280\\\",\\\"\\\",124],[\\\"f340\\\",\\\"\\\",62],[\\\"f380\\\",\\\"\\\",124],[\\\"f440\\\",\\\"\\\",62],[\\\"f480\\\",\\\"\\\",124],[\\\"f540\\\",\\\"\\\",62],[\\\"f580\\\",\\\"\\\",124],[\\\"f640\\\",\\\"\\\",62],[\\\"f680\\\",\\\"\\\",124],[\\\"f740\\\",\\\"\\\",62],[\\\"f780\\\",\\\"\\\",124],[\\\"f840\\\",\\\"\\\",62],[\\\"f880\\\",\\\"\\\",124],[\\\"f940\\\",\\\"\\\"],[\\\"fa40\\\",\\\"ⅰ\\\",9,\\\"Ⅰ\\\",9,\\\"￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊\\\"],[\\\"fa80\\\",\\\"兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯\\\"],[\\\"fb40\\\",\\\"涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神\\\"],[\\\"fb80\\\",\\\"祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙\\\"],[\\\"fc40\\\",\\\"髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\\\"]]\");\n\n/***/ }),\n/* 407 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"0\\\",\\\"\\\\u0000\\\",127],[\\\"8ea1\\\",\\\"｡\\\",62],[\\\"a1a1\\\",\\\"　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈\\\",9,\\\"＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇\\\"],[\\\"a2a1\\\",\\\"◆□■△▲▽▼※〒→←↑↓〓\\\"],[\\\"a2ba\\\",\\\"∈∋⊆⊇⊂⊃∪∩\\\"],[\\\"a2ca\\\",\\\"∧∨￢⇒⇔∀∃\\\"],[\\\"a2dc\\\",\\\"∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬\\\"],[\\\"a2f2\\\",\\\"Å‰♯♭♪†‡¶\\\"],[\\\"a2fe\\\",\\\"◯\\\"],[\\\"a3b0\\\",\\\"０\\\",9],[\\\"a3c1\\\",\\\"Ａ\\\",25],[\\\"a3e1\\\",\\\"ａ\\\",25],[\\\"a4a1\\\",\\\"ぁ\\\",82],[\\\"a5a1\\\",\\\"ァ\\\",85],[\\\"a6a1\\\",\\\"Α\\\",16,\\\"Σ\\\",6],[\\\"a6c1\\\",\\\"α\\\",16,\\\"σ\\\",6],[\\\"a7a1\\\",\\\"А\\\",5,\\\"ЁЖ\\\",25],[\\\"a7d1\\\",\\\"а\\\",5,\\\"ёж\\\",25],[\\\"a8a1\\\",\\\"─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂\\\"],[\\\"ada1\\\",\\\"①\\\",19,\\\"Ⅰ\\\",9],[\\\"adc0\\\",\\\"㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡\\\"],[\\\"addf\\\",\\\"㍻〝〟№㏍℡㊤\\\",4,\\\"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪\\\"],[\\\"b0a1\\\",\\\"亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭\\\"],[\\\"b1a1\\\",\\\"院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応\\\"],[\\\"b2a1\\\",\\\"押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改\\\"],[\\\"b3a1\\\",\\\"魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱\\\"],[\\\"b4a1\\\",\\\"粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄\\\"],[\\\"b5a1\\\",\\\"機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京\\\"],[\\\"b6a1\\\",\\\"供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈\\\"],[\\\"b7a1\\\",\\\"掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲\\\"],[\\\"b8a1\\\",\\\"検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向\\\"],[\\\"b9a1\\\",\\\"后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込\\\"],[\\\"baa1\\\",\\\"此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷\\\"],[\\\"bba1\\\",\\\"察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時\\\"],[\\\"bca1\\\",\\\"次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周\\\"],[\\\"bda1\\\",\\\"宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償\\\"],[\\\"bea1\\\",\\\"勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾\\\"],[\\\"bfa1\\\",\\\"拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾\\\"],[\\\"c0a1\\\",\\\"澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線\\\"],[\\\"c1a1\\\",\\\"繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎\\\"],[\\\"c2a1\\\",\\\"臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只\\\"],[\\\"c3a1\\\",\\\"叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵\\\"],[\\\"c4a1\\\",\\\"帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓\\\"],[\\\"c5a1\\\",\\\"邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到\\\"],[\\\"c6a1\\\",\\\"董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入\\\"],[\\\"c7a1\\\",\\\"如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦\\\"],[\\\"c8a1\\\",\\\"函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美\\\"],[\\\"c9a1\\\",\\\"鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服\\\"],[\\\"caa1\\\",\\\"福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋\\\"],[\\\"cba1\\\",\\\"法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満\\\"],[\\\"cca1\\\",\\\"漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒\\\"],[\\\"cda1\\\",\\\"諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃\\\"],[\\\"cea1\\\",\\\"痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯\\\"],[\\\"cfa1\\\",\\\"蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕\\\"],[\\\"d0a1\\\",\\\"弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲\\\"],[\\\"d1a1\\\",\\\"僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨\\\"],[\\\"d2a1\\\",\\\"辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨\\\"],[\\\"d3a1\\\",\\\"咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉\\\"],[\\\"d4a1\\\",\\\"圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩\\\"],[\\\"d5a1\\\",\\\"奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓\\\"],[\\\"d6a1\\\",\\\"屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏\\\"],[\\\"d7a1\\\",\\\"廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚\\\"],[\\\"d8a1\\\",\\\"悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛\\\"],[\\\"d9a1\\\",\\\"戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼\\\"],[\\\"daa1\\\",\\\"據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼\\\"],[\\\"dba1\\\",\\\"曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍\\\"],[\\\"dca1\\\",\\\"棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣\\\"],[\\\"dda1\\\",\\\"檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾\\\"],[\\\"dea1\\\",\\\"沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌\\\"],[\\\"dfa1\\\",\\\"漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼\\\"],[\\\"e0a1\\\",\\\"燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱\\\"],[\\\"e1a1\\\",\\\"瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰\\\"],[\\\"e2a1\\\",\\\"癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬\\\"],[\\\"e3a1\\\",\\\"磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐\\\"],[\\\"e4a1\\\",\\\"筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆\\\"],[\\\"e5a1\\\",\\\"紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺\\\"],[\\\"e6a1\\\",\\\"罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋\\\"],[\\\"e7a1\\\",\\\"隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙\\\"],[\\\"e8a1\\\",\\\"茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈\\\"],[\\\"e9a1\\\",\\\"蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙\\\"],[\\\"eaa1\\\",\\\"蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞\\\"],[\\\"eba1\\\",\\\"襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫\\\"],[\\\"eca1\\\",\\\"譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊\\\"],[\\\"eda1\\\",\\\"蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸\\\"],[\\\"eea1\\\",\\\"遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮\\\"],[\\\"efa1\\\",\\\"錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞\\\"],[\\\"f0a1\\\",\\\"陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰\\\"],[\\\"f1a1\\\",\\\"顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷\\\"],[\\\"f2a1\\\",\\\"髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈\\\"],[\\\"f3a1\\\",\\\"鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠\\\"],[\\\"f4a1\\\",\\\"堯槇遙瑤凜熙\\\"],[\\\"f9a1\\\",\\\"纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德\\\"],[\\\"faa1\\\",\\\"忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱\\\"],[\\\"fba1\\\",\\\"犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚\\\"],[\\\"fca1\\\",\\\"釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑\\\"],[\\\"fcf1\\\",\\\"ⅰ\\\",9,\\\"￢￤＇＂\\\"],[\\\"8fa2af\\\",\\\"˘ˇ¸˙˝¯˛˚～΄΅\\\"],[\\\"8fa2c2\\\",\\\"¡¦¿\\\"],[\\\"8fa2eb\\\",\\\"ºª©®™¤№\\\"],[\\\"8fa6e1\\\",\\\"ΆΈΉΊΪ\\\"],[\\\"8fa6e7\\\",\\\"Ό\\\"],[\\\"8fa6e9\\\",\\\"ΎΫ\\\"],[\\\"8fa6ec\\\",\\\"Ώ\\\"],[\\\"8fa6f1\\\",\\\"άέήίϊΐόςύϋΰώ\\\"],[\\\"8fa7c2\\\",\\\"Ђ\\\",10,\\\"ЎЏ\\\"],[\\\"8fa7f2\\\",\\\"ђ\\\",10,\\\"ўџ\\\"],[\\\"8fa9a1\\\",\\\"ÆĐ\\\"],[\\\"8fa9a4\\\",\\\"Ħ\\\"],[\\\"8fa9a6\\\",\\\"Ĳ\\\"],[\\\"8fa9a8\\\",\\\"ŁĿ\\\"],[\\\"8fa9ab\\\",\\\"ŊØŒ\\\"],[\\\"8fa9af\\\",\\\"ŦÞ\\\"],[\\\"8fa9c1\\\",\\\"æđðħıĳĸłŀŉŋøœßŧþ\\\"],[\\\"8faaa1\\\",\\\"ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ\\\"],[\\\"8faaba\\\",\\\"ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ\\\"],[\\\"8faba1\\\",\\\"áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ\\\"],[\\\"8fabbd\\\",\\\"ġĥíìïîǐ\\\"],[\\\"8fabc5\\\",\\\"īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż\\\"],[\\\"8fb0a1\\\",\\\"丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄\\\"],[\\\"8fb1a1\\\",\\\"侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐\\\"],[\\\"8fb2a1\\\",\\\"傒傓傔傖傛傜傞\\\",4,\\\"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂\\\"],[\\\"8fb3a1\\\",\\\"凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋\\\"],[\\\"8fb4a1\\\",\\\"匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿\\\"],[\\\"8fb5a1\\\",\\\"咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒\\\"],[\\\"8fb6a1\\\",\\\"嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍\\\",5,\\\"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤\\\",4,\\\"囱囫园\\\"],[\\\"8fb7a1\\\",\\\"囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭\\\",4,\\\"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡\\\"],[\\\"8fb8a1\\\",\\\"堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭\\\"],[\\\"8fb9a1\\\",\\\"奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿\\\"],[\\\"8fbaa1\\\",\\\"嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖\\\",4,\\\"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩\\\"],[\\\"8fbba1\\\",\\\"屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤\\\"],[\\\"8fbca1\\\",\\\"巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪\\\",4,\\\"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧\\\"],[\\\"8fbda1\\\",\\\"彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐\\\",4,\\\"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷\\\"],[\\\"8fbea1\\\",\\\"悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐\\\",4,\\\"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥\\\"],[\\\"8fbfa1\\\",\\\"懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵\\\"],[\\\"8fc0a1\\\",\\\"捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿\\\"],[\\\"8fc1a1\\\",\\\"擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝\\\"],[\\\"8fc2a1\\\",\\\"昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝\\\"],[\\\"8fc3a1\\\",\\\"杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮\\\",4,\\\"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏\\\"],[\\\"8fc4a1\\\",\\\"棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲\\\"],[\\\"8fc5a1\\\",\\\"樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽\\\"],[\\\"8fc6a1\\\",\\\"歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖\\\"],[\\\"8fc7a1\\\",\\\"泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞\\\"],[\\\"8fc8a1\\\",\\\"湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊\\\"],[\\\"8fc9a1\\\",\\\"濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔\\\",4,\\\"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃\\\",4,\\\"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠\\\"],[\\\"8fcaa1\\\",\\\"煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻\\\"],[\\\"8fcba1\\\",\\\"狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽\\\"],[\\\"8fcca1\\\",\\\"珿琀琁琄琇琊琑琚琛琤琦琨\\\",9,\\\"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆\\\"],[\\\"8fcda1\\\",\\\"甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹\\\",5,\\\"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹\\\"],[\\\"8fcea1\\\",\\\"瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢\\\",6,\\\"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢\\\"],[\\\"8fcfa1\\\",\\\"睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳\\\"],[\\\"8fd0a1\\\",\\\"碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞\\\"],[\\\"8fd1a1\\\",\\\"秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰\\\"],[\\\"8fd2a1\\\",\\\"笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙\\\",5],[\\\"8fd3a1\\\",\\\"籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝\\\"],[\\\"8fd4a1\\\",\\\"綞綦綧綪綳綶綷綹緂\\\",4,\\\"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭\\\"],[\\\"8fd5a1\\\",\\\"罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮\\\"],[\\\"8fd6a1\\\",\\\"胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆\\\"],[\\\"8fd7a1\\\",\\\"艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸\\\"],[\\\"8fd8a1\\\",\\\"荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓\\\"],[\\\"8fd9a1\\\",\\\"蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏\\\",4,\\\"蕖蕙蕜\\\",6,\\\"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼\\\"],[\\\"8fdaa1\\\",\\\"藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠\\\",4,\\\"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣\\\"],[\\\"8fdba1\\\",\\\"蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃\\\",6,\\\"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵\\\"],[\\\"8fdca1\\\",\\\"蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊\\\",4,\\\"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺\\\"],[\\\"8fdda1\\\",\\\"襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔\\\",4,\\\"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳\\\"],[\\\"8fdea1\\\",\\\"誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂\\\",4,\\\"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆\\\"],[\\\"8fdfa1\\\",\\\"貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢\\\"],[\\\"8fe0a1\\\",\\\"踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁\\\"],[\\\"8fe1a1\\\",\\\"轃轇轏轑\\\",4,\\\"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃\\\"],[\\\"8fe2a1\\\",\\\"郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿\\\"],[\\\"8fe3a1\\\",\\\"釂釃釅釓釔釗釙釚釞釤釥釩釪釬\\\",5,\\\"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵\\\",4,\\\"鉻鉼鉽鉿銈銉銊銍銎銒銗\\\"],[\\\"8fe4a1\\\",\\\"銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿\\\",4,\\\"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶\\\"],[\\\"8fe5a1\\\",\\\"鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉\\\",4,\\\"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹\\\"],[\\\"8fe6a1\\\",\\\"镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂\\\"],[\\\"8fe7a1\\\",\\\"霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦\\\"],[\\\"8fe8a1\\\",\\\"頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱\\\",4,\\\"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵\\\"],[\\\"8fe9a1\\\",\\\"馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿\\\",4],[\\\"8feaa1\\\",\\\"鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪\\\",4,\\\"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸\\\"],[\\\"8feba1\\\",\\\"鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦\\\",4,\\\"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻\\\"],[\\\"8feca1\\\",\\\"鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵\\\"],[\\\"8feda1\\\",\\\"黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃\\\",4,\\\"齓齕齖齗齘齚齝齞齨齩齭\\\",4,\\\"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥\\\"]]\");\n\n/***/ }),\n/* 408 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"uChars\\\":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],\\\"gbChars\\\":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}\");\n\n/***/ }),\n/* 409 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"0\\\",\\\"\\\\u0000\\\",127],[\\\"8141\\\",\\\"갂갃갅갆갋\\\",4,\\\"갘갞갟갡갢갣갥\\\",6,\\\"갮갲갳갴\\\"],[\\\"8161\\\",\\\"갵갶갷갺갻갽갾갿걁\\\",9,\\\"걌걎\\\",5,\\\"걕\\\"],[\\\"8181\\\",\\\"걖걗걙걚걛걝\\\",18,\\\"걲걳걵걶걹걻\\\",4,\\\"겂겇겈겍겎겏겑겒겓겕\\\",6,\\\"겞겢\\\",5,\\\"겫겭겮겱\\\",6,\\\"겺겾겿곀곂곃곅곆곇곉곊곋곍\\\",7,\\\"곖곘\\\",7,\\\"곢곣곥곦곩곫곭곮곲곴곷\\\",4,\\\"곾곿괁괂괃괅괇\\\",4,\\\"괎괐괒괓\\\"],[\\\"8241\\\",\\\"괔괕괖괗괙괚괛괝괞괟괡\\\",7,\\\"괪괫괮\\\",5],[\\\"8261\\\",\\\"괶괷괹괺괻괽\\\",6,\\\"굆굈굊\\\",5,\\\"굑굒굓굕굖굗\\\"],[\\\"8281\\\",\\\"굙\\\",7,\\\"굢굤\\\",7,\\\"굮굯굱굲굷굸굹굺굾궀궃\\\",4,\\\"궊궋궍궎궏궑\\\",10,\\\"궞\\\",5,\\\"궥\\\",17,\\\"궸\\\",7,\\\"귂귃귅귆귇귉\\\",6,\\\"귒귔\\\",7,\\\"귝귞귟귡귢귣귥\\\",18],[\\\"8341\\\",\\\"귺귻귽귾긂\\\",5,\\\"긊긌긎\\\",5,\\\"긕\\\",7],[\\\"8361\\\",\\\"긝\\\",18,\\\"긲긳긵긶긹긻긼\\\"],[\\\"8381\\\",\\\"긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗\\\",4,\\\"깞깢깣깤깦깧깪깫깭깮깯깱\\\",6,\\\"깺깾\\\",5,\\\"꺆\\\",5,\\\"꺍\\\",46,\\\"꺿껁껂껃껅\\\",6,\\\"껎껒\\\",5,\\\"껚껛껝\\\",8],[\\\"8441\\\",\\\"껦껧껩껪껬껮\\\",5,\\\"껵껶껷껹껺껻껽\\\",8],[\\\"8461\\\",\\\"꼆꼉꼊꼋꼌꼎꼏꼑\\\",18],[\\\"8481\\\",\\\"꼤\\\",7,\\\"꼮꼯꼱꼳꼵\\\",6,\\\"꼾꽀꽄꽅꽆꽇꽊\\\",5,\\\"꽑\\\",10,\\\"꽞\\\",5,\\\"꽦\\\",18,\\\"꽺\\\",5,\\\"꾁꾂꾃꾅꾆꾇꾉\\\",6,\\\"꾒꾓꾔꾖\\\",5,\\\"꾝\\\",26,\\\"꾺꾻꾽꾾\\\"],[\\\"8541\\\",\\\"꾿꿁\\\",5,\\\"꿊꿌꿏\\\",4,\\\"꿕\\\",6,\\\"꿝\\\",4],[\\\"8561\\\",\\\"꿢\\\",5,\\\"꿪\\\",5,\\\"꿲꿳꿵꿶꿷꿹\\\",6,\\\"뀂뀃\\\"],[\\\"8581\\\",\\\"뀅\\\",6,\\\"뀍뀎뀏뀑뀒뀓뀕\\\",6,\\\"뀞\\\",9,\\\"뀩\\\",26,\\\"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞\\\",29,\\\"끾끿낁낂낃낅\\\",6,\\\"낎낐낒\\\",5,\\\"낛낝낞낣낤\\\"],[\\\"8641\\\",\\\"낥낦낧낪낰낲낶낷낹낺낻낽\\\",6,\\\"냆냊\\\",5,\\\"냒\\\"],[\\\"8661\\\",\\\"냓냕냖냗냙\\\",6,\\\"냡냢냣냤냦\\\",10],[\\\"8681\\\",\\\"냱\\\",22,\\\"넊넍넎넏넑넔넕넖넗넚넞\\\",4,\\\"넦넧넩넪넫넭\\\",6,\\\"넶넺\\\",5,\\\"녂녃녅녆녇녉\\\",6,\\\"녒녓녖녗녙녚녛녝녞녟녡\\\",22,\\\"녺녻녽녾녿놁놃\\\",4,\\\"놊놌놎놏놐놑놕놖놗놙놚놛놝\\\"],[\\\"8741\\\",\\\"놞\\\",9,\\\"놩\\\",15],[\\\"8761\\\",\\\"놹\\\",18,\\\"뇍뇎뇏뇑뇒뇓뇕\\\"],[\\\"8781\\\",\\\"뇖\\\",5,\\\"뇞뇠\\\",7,\\\"뇪뇫뇭뇮뇯뇱\\\",7,\\\"뇺뇼뇾\\\",5,\\\"눆눇눉눊눍\\\",6,\\\"눖눘눚\\\",5,\\\"눡\\\",18,\\\"눵\\\",6,\\\"눽\\\",26,\\\"뉙뉚뉛뉝뉞뉟뉡\\\",6,\\\"뉪\\\",4],[\\\"8841\\\",\\\"뉯\\\",4,\\\"뉶\\\",5,\\\"뉽\\\",6,\\\"늆늇늈늊\\\",4],[\\\"8861\\\",\\\"늏늒늓늕늖늗늛\\\",4,\\\"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷\\\"],[\\\"8881\\\",\\\"늸\\\",15,\\\"닊닋닍닎닏닑닓\\\",4,\\\"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉\\\",6,\\\"댒댖\\\",5,\\\"댝\\\",54,\\\"덗덙덚덝덠덡덢덣\\\"],[\\\"8941\\\",\\\"덦덨덪덬덭덯덲덳덵덶덷덹\\\",6,\\\"뎂뎆\\\",5,\\\"뎍\\\"],[\\\"8961\\\",\\\"뎎뎏뎑뎒뎓뎕\\\",10,\\\"뎢\\\",5,\\\"뎩뎪뎫뎭\\\"],[\\\"8981\\\",\\\"뎮\\\",21,\\\"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩\\\",18,\\\"돽\\\",18,\\\"됑\\\",6,\\\"됙됚됛됝됞됟됡\\\",6,\\\"됪됬\\\",7,\\\"됵\\\",15],[\\\"8a41\\\",\\\"둅\\\",10,\\\"둒둓둕둖둗둙\\\",6,\\\"둢둤둦\\\"],[\\\"8a61\\\",\\\"둧\\\",4,\\\"둭\\\",18,\\\"뒁뒂\\\"],[\\\"8a81\\\",\\\"뒃\\\",4,\\\"뒉\\\",19,\\\"뒞\\\",5,\\\"뒥뒦뒧뒩뒪뒫뒭\\\",7,\\\"뒶뒸뒺\\\",5,\\\"듁듂듃듅듆듇듉\\\",6,\\\"듑듒듓듔듖\\\",5,\\\"듞듟듡듢듥듧\\\",4,\\\"듮듰듲\\\",5,\\\"듹\\\",26,\\\"딖딗딙딚딝\\\"],[\\\"8b41\\\",\\\"딞\\\",5,\\\"딦딫\\\",4,\\\"딲딳딵딶딷딹\\\",6,\\\"땂땆\\\"],[\\\"8b61\\\",\\\"땇땈땉땊땎땏땑땒땓땕\\\",6,\\\"땞땢\\\",8],[\\\"8b81\\\",\\\"땫\\\",52,\\\"떢떣떥떦떧떩떬떭떮떯떲떶\\\",4,\\\"떾떿뗁뗂뗃뗅\\\",6,\\\"뗎뗒\\\",5,\\\"뗙\\\",18,\\\"뗭\\\",18],[\\\"8c41\\\",\\\"똀\\\",15,\\\"똒똓똕똖똗똙\\\",4],[\\\"8c61\\\",\\\"똞\\\",6,\\\"똦\\\",5,\\\"똭\\\",6,\\\"똵\\\",5],[\\\"8c81\\\",\\\"똻\\\",12,\\\"뙉\\\",26,\\\"뙥뙦뙧뙩\\\",50,\\\"뚞뚟뚡뚢뚣뚥\\\",5,\\\"뚭뚮뚯뚰뚲\\\",16],[\\\"8d41\\\",\\\"뛃\\\",16,\\\"뛕\\\",8],[\\\"8d61\\\",\\\"뛞\\\",17,\\\"뛱뛲뛳뛵뛶뛷뛹뛺\\\"],[\\\"8d81\\\",\\\"뛻\\\",4,\\\"뜂뜃뜄뜆\\\",33,\\\"뜪뜫뜭뜮뜱\\\",6,\\\"뜺뜼\\\",7,\\\"띅띆띇띉띊띋띍\\\",6,\\\"띖\\\",9,\\\"띡띢띣띥띦띧띩\\\",6,\\\"띲띴띶\\\",5,\\\"띾띿랁랂랃랅\\\",6,\\\"랎랓랔랕랚랛랝랞\\\"],[\\\"8e41\\\",\\\"랟랡\\\",6,\\\"랪랮\\\",5,\\\"랶랷랹\\\",8],[\\\"8e61\\\",\\\"럂\\\",4,\\\"럈럊\\\",19],[\\\"8e81\\\",\\\"럞\\\",13,\\\"럮럯럱럲럳럵\\\",6,\\\"럾렂\\\",4,\\\"렊렋렍렎렏렑\\\",6,\\\"렚렜렞\\\",5,\\\"렦렧렩렪렫렭\\\",6,\\\"렶렺\\\",5,\\\"롁롂롃롅\\\",11,\\\"롒롔\\\",7,\\\"롞롟롡롢롣롥\\\",6,\\\"롮롰롲\\\",5,\\\"롹롺롻롽\\\",7],[\\\"8f41\\\",\\\"뢅\\\",7,\\\"뢎\\\",17],[\\\"8f61\\\",\\\"뢠\\\",7,\\\"뢩\\\",6,\\\"뢱뢲뢳뢵뢶뢷뢹\\\",4],[\\\"8f81\\\",\\\"뢾뢿룂룄룆\\\",5,\\\"룍룎룏룑룒룓룕\\\",7,\\\"룞룠룢\\\",5,\\\"룪룫룭룮룯룱\\\",6,\\\"룺룼룾\\\",5,\\\"뤅\\\",18,\\\"뤙\\\",6,\\\"뤡\\\",26,\\\"뤾뤿륁륂륃륅\\\",6,\\\"륍륎륐륒\\\",5],[\\\"9041\\\",\\\"륚륛륝륞륟륡\\\",6,\\\"륪륬륮\\\",5,\\\"륶륷륹륺륻륽\\\"],[\\\"9061\\\",\\\"륾\\\",5,\\\"릆릈릋릌릏\\\",15],[\\\"9081\\\",\\\"릟\\\",12,\\\"릮릯릱릲릳릵\\\",6,\\\"릾맀맂\\\",5,\\\"맊맋맍맓\\\",4,\\\"맚맜맟맠맢맦맧맩맪맫맭\\\",6,\\\"맶맻\\\",4,\\\"먂\\\",5,\\\"먉\\\",11,\\\"먖\\\",33,\\\"먺먻먽먾먿멁멃멄멅멆\\\"],[\\\"9141\\\",\\\"멇멊멌멏멐멑멒멖멗멙멚멛멝\\\",6,\\\"멦멪\\\",5],[\\\"9161\\\",\\\"멲멳멵멶멷멹\\\",9,\\\"몆몈몉몊몋몍\\\",5],[\\\"9181\\\",\\\"몓\\\",20,\\\"몪몭몮몯몱몳\\\",4,\\\"몺몼몾\\\",5,\\\"뫅뫆뫇뫉\\\",14,\\\"뫚\\\",33,\\\"뫽뫾뫿묁묂묃묅\\\",7,\\\"묎묐묒\\\",5,\\\"묙묚묛묝묞묟묡\\\",6],[\\\"9241\\\",\\\"묨묪묬\\\",7,\\\"묷묹묺묿\\\",4,\\\"뭆뭈뭊뭋뭌뭎뭑뭒\\\"],[\\\"9261\\\",\\\"뭓뭕뭖뭗뭙\\\",7,\\\"뭢뭤\\\",7,\\\"뭭\\\",4],[\\\"9281\\\",\\\"뭲\\\",21,\\\"뮉뮊뮋뮍뮎뮏뮑\\\",18,\\\"뮥뮦뮧뮩뮪뮫뮭\\\",6,\\\"뮵뮶뮸\\\",7,\\\"믁믂믃믅믆믇믉\\\",6,\\\"믑믒믔\\\",35,\\\"믺믻믽믾밁\\\"],[\\\"9341\\\",\\\"밃\\\",4,\\\"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵\\\"],[\\\"9361\\\",\\\"밶밷밹\\\",6,\\\"뱂뱆뱇뱈뱊뱋뱎뱏뱑\\\",8],[\\\"9381\\\",\\\"뱚뱛뱜뱞\\\",37,\\\"벆벇벉벊벍벏\\\",4,\\\"벖벘벛\\\",4,\\\"벢벣벥벦벩\\\",6,\\\"벲벶\\\",5,\\\"벾벿볁볂볃볅\\\",7,\\\"볎볒볓볔볖볗볙볚볛볝\\\",22,\\\"볷볹볺볻볽\\\"],[\\\"9441\\\",\\\"볾\\\",5,\\\"봆봈봊\\\",5,\\\"봑봒봓봕\\\",8],[\\\"9461\\\",\\\"봞\\\",5,\\\"봥\\\",6,\\\"봭\\\",12],[\\\"9481\\\",\\\"봺\\\",5,\\\"뵁\\\",6,\\\"뵊뵋뵍뵎뵏뵑\\\",6,\\\"뵚\\\",9,\\\"뵥뵦뵧뵩\\\",22,\\\"붂붃붅붆붋\\\",4,\\\"붒붔붖붗붘붛붝\\\",6,\\\"붥\\\",10,\\\"붱\\\",6,\\\"붹\\\",24],[\\\"9541\\\",\\\"뷒뷓뷖뷗뷙뷚뷛뷝\\\",11,\\\"뷪\\\",5,\\\"뷱\\\"],[\\\"9561\\\",\\\"뷲뷳뷵뷶뷷뷹\\\",6,\\\"븁븂븄븆\\\",5,\\\"븎븏븑븒븓\\\"],[\\\"9581\\\",\\\"븕\\\",6,\\\"븞븠\\\",35,\\\"빆빇빉빊빋빍빏\\\",4,\\\"빖빘빜빝빞빟빢빣빥빦빧빩빫\\\",4,\\\"빲빶\\\",4,\\\"빾빿뺁뺂뺃뺅\\\",6,\\\"뺎뺒\\\",5,\\\"뺚\\\",13,\\\"뺩\\\",14],[\\\"9641\\\",\\\"뺸\\\",23,\\\"뻒뻓\\\"],[\\\"9661\\\",\\\"뻕뻖뻙\\\",6,\\\"뻡뻢뻦\\\",5,\\\"뻭\\\",8],[\\\"9681\\\",\\\"뻶\\\",10,\\\"뼂\\\",5,\\\"뼊\\\",13,\\\"뼚뼞\\\",33,\\\"뽂뽃뽅뽆뽇뽉\\\",6,\\\"뽒뽓뽔뽖\\\",44],[\\\"9741\\\",\\\"뾃\\\",16,\\\"뾕\\\",8],[\\\"9761\\\",\\\"뾞\\\",17,\\\"뾱\\\",7],[\\\"9781\\\",\\\"뾹\\\",11,\\\"뿆\\\",5,\\\"뿎뿏뿑뿒뿓뿕\\\",6,\\\"뿝뿞뿠뿢\\\",89,\\\"쀽쀾쀿\\\"],[\\\"9841\\\",\\\"쁀\\\",16,\\\"쁒\\\",5,\\\"쁙쁚쁛\\\"],[\\\"9861\\\",\\\"쁝쁞쁟쁡\\\",6,\\\"쁪\\\",15],[\\\"9881\\\",\\\"쁺\\\",21,\\\"삒삓삕삖삗삙\\\",6,\\\"삢삤삦\\\",5,\\\"삮삱삲삷\\\",4,\\\"삾샂샃샄샆샇샊샋샍샎샏샑\\\",6,\\\"샚샞\\\",5,\\\"샦샧샩샪샫샭\\\",6,\\\"샶샸샺\\\",5,\\\"섁섂섃섅섆섇섉\\\",6,\\\"섑섒섓섔섖\\\",5,\\\"섡섢섥섨섩섪섫섮\\\"],[\\\"9941\\\",\\\"섲섳섴섵섷섺섻섽섾섿셁\\\",6,\\\"셊셎\\\",5,\\\"셖셗\\\"],[\\\"9961\\\",\\\"셙셚셛셝\\\",6,\\\"셦셪\\\",5,\\\"셱셲셳셵셶셷셹셺셻\\\"],[\\\"9981\\\",\\\"셼\\\",8,\\\"솆\\\",5,\\\"솏솑솒솓솕솗\\\",4,\\\"솞솠솢솣솤솦솧솪솫솭솮솯솱\\\",11,\\\"솾\\\",5,\\\"쇅쇆쇇쇉쇊쇋쇍\\\",6,\\\"쇕쇖쇙\\\",6,\\\"쇡쇢쇣쇥쇦쇧쇩\\\",6,\\\"쇲쇴\\\",7,\\\"쇾쇿숁숂숃숅\\\",6,\\\"숎숐숒\\\",5,\\\"숚숛숝숞숡숢숣\\\"],[\\\"9a41\\\",\\\"숤숥숦숧숪숬숮숰숳숵\\\",16],[\\\"9a61\\\",\\\"쉆쉇쉉\\\",6,\\\"쉒쉓쉕쉖쉗쉙\\\",6,\\\"쉡쉢쉣쉤쉦\\\"],[\\\"9a81\\\",\\\"쉧\\\",4,\\\"쉮쉯쉱쉲쉳쉵\\\",6,\\\"쉾슀슂\\\",5,\\\"슊\\\",5,\\\"슑\\\",6,\\\"슙슚슜슞\\\",5,\\\"슦슧슩슪슫슮\\\",5,\\\"슶슸슺\\\",33,\\\"싞싟싡싢싥\\\",5,\\\"싮싰싲싳싴싵싷싺싽싾싿쌁\\\",6,\\\"쌊쌋쌎쌏\\\"],[\\\"9b41\\\",\\\"쌐쌑쌒쌖쌗쌙쌚쌛쌝\\\",6,\\\"쌦쌧쌪\\\",8],[\\\"9b61\\\",\\\"쌳\\\",17,\\\"썆\\\",7],[\\\"9b81\\\",\\\"썎\\\",25,\\\"썪썫썭썮썯썱썳\\\",4,\\\"썺썻썾\\\",5,\\\"쎅쎆쎇쎉쎊쎋쎍\\\",50,\\\"쏁\\\",22,\\\"쏚\\\"],[\\\"9c41\\\",\\\"쏛쏝쏞쏡쏣\\\",4,\\\"쏪쏫쏬쏮\\\",5,\\\"쏶쏷쏹\\\",5],[\\\"9c61\\\",\\\"쏿\\\",8,\\\"쐉\\\",6,\\\"쐑\\\",9],[\\\"9c81\\\",\\\"쐛\\\",8,\\\"쐥\\\",6,\\\"쐭쐮쐯쐱쐲쐳쐵\\\",6,\\\"쐾\\\",9,\\\"쑉\\\",26,\\\"쑦쑧쑩쑪쑫쑭\\\",6,\\\"쑶쑷쑸쑺\\\",5,\\\"쒁\\\",18,\\\"쒕\\\",6,\\\"쒝\\\",12],[\\\"9d41\\\",\\\"쒪\\\",13,\\\"쒹쒺쒻쒽\\\",8],[\\\"9d61\\\",\\\"쓆\\\",25],[\\\"9d81\\\",\\\"쓠\\\",8,\\\"쓪\\\",5,\\\"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂\\\",9,\\\"씍씎씏씑씒씓씕\\\",6,\\\"씝\\\",10,\\\"씪씫씭씮씯씱\\\",6,\\\"씺씼씾\\\",5,\\\"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩\\\",6,\\\"앲앶\\\",5,\\\"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔\\\"],[\\\"9e41\\\",\\\"얖얙얚얛얝얞얟얡\\\",7,\\\"얪\\\",9,\\\"얶\\\"],[\\\"9e61\\\",\\\"얷얺얿\\\",4,\\\"엋엍엏엒엓엕엖엗엙\\\",6,\\\"엢엤엦엧\\\"],[\\\"9e81\\\",\\\"엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑\\\",6,\\\"옚옝\\\",6,\\\"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉\\\",6,\\\"왒왖\\\",5,\\\"왞왟왡\\\",10,\\\"왭왮왰왲\\\",5,\\\"왺왻왽왾왿욁\\\",6,\\\"욊욌욎\\\",5,\\\"욖욗욙욚욛욝\\\",6,\\\"욦\\\"],[\\\"9f41\\\",\\\"욨욪\\\",5,\\\"욲욳욵욶욷욻\\\",4,\\\"웂웄웆\\\",5,\\\"웎\\\"],[\\\"9f61\\\",\\\"웏웑웒웓웕\\\",6,\\\"웞웟웢\\\",5,\\\"웪웫웭웮웯웱웲\\\"],[\\\"9f81\\\",\\\"웳\\\",4,\\\"웺웻웼웾\\\",5,\\\"윆윇윉윊윋윍\\\",6,\\\"윖윘윚\\\",5,\\\"윢윣윥윦윧윩\\\",6,\\\"윲윴윶윸윹윺윻윾윿읁읂읃읅\\\",4,\\\"읋읎읐읙읚읛읝읞읟읡\\\",6,\\\"읩읪읬\\\",7,\\\"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛\\\",4,\\\"잢잧\\\",4,\\\"잮잯잱잲잳잵잶잷\\\"],[\\\"a041\\\",\\\"잸잹잺잻잾쟂\\\",5,\\\"쟊쟋쟍쟏쟑\\\",6,\\\"쟙쟚쟛쟜\\\"],[\\\"a061\\\",\\\"쟞\\\",5,\\\"쟥쟦쟧쟩쟪쟫쟭\\\",13],[\\\"a081\\\",\\\"쟻\\\",4,\\\"젂젃젅젆젇젉젋\\\",4,\\\"젒젔젗\\\",4,\\\"젞젟젡젢젣젥\\\",6,\\\"젮젰젲\\\",5,\\\"젹젺젻젽젾젿졁\\\",6,\\\"졊졋졎\\\",5,\\\"졕\\\",26,\\\"졲졳졵졶졷졹졻\\\",4,\\\"좂좄좈좉좊좎\\\",5,\\\"좕\\\",7,\\\"좞좠좢좣좤\\\"],[\\\"a141\\\",\\\"좥좦좧좩\\\",18,\\\"좾좿죀죁\\\"],[\\\"a161\\\",\\\"죂죃죅죆죇죉죊죋죍\\\",6,\\\"죖죘죚\\\",5,\\\"죢죣죥\\\"],[\\\"a181\\\",\\\"죦\\\",14,\\\"죶\\\",5,\\\"죾죿줁줂줃줇\\\",4,\\\"줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈\\\",9,\\\"±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢\\\"],[\\\"a241\\\",\\\"줐줒\\\",5,\\\"줙\\\",18],[\\\"a261\\\",\\\"줭\\\",6,\\\"줵\\\",18],[\\\"a281\\\",\\\"쥈\\\",7,\\\"쥒쥓쥕쥖쥗쥙\\\",6,\\\"쥢쥤\\\",7,\\\"쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®\\\"],[\\\"a341\\\",\\\"쥱쥲쥳쥵\\\",6,\\\"쥽\\\",10,\\\"즊즋즍즎즏\\\"],[\\\"a361\\\",\\\"즑\\\",6,\\\"즚즜즞\\\",16],[\\\"a381\\\",\\\"즯\\\",16,\\\"짂짃짅짆짉짋\\\",4,\\\"짒짔짗짘짛！\\\",58,\\\"￦］\\\",32,\\\"￣\\\"],[\\\"a441\\\",\\\"짞짟짡짣짥짦짨짩짪짫짮짲\\\",5,\\\"짺짻짽짾짿쨁쨂쨃쨄\\\"],[\\\"a461\\\",\\\"쨅쨆쨇쨊쨎\\\",5,\\\"쨕쨖쨗쨙\\\",12],[\\\"a481\\\",\\\"쨦쨧쨨쨪\\\",28,\\\"ㄱ\\\",93],[\\\"a541\\\",\\\"쩇\\\",4,\\\"쩎쩏쩑쩒쩓쩕\\\",6,\\\"쩞쩢\\\",5,\\\"쩩쩪\\\"],[\\\"a561\\\",\\\"쩫\\\",17,\\\"쩾\\\",5,\\\"쪅쪆\\\"],[\\\"a581\\\",\\\"쪇\\\",16,\\\"쪙\\\",14,\\\"ⅰ\\\",9],[\\\"a5b0\\\",\\\"Ⅰ\\\",9],[\\\"a5c1\\\",\\\"Α\\\",16,\\\"Σ\\\",6],[\\\"a5e1\\\",\\\"α\\\",16,\\\"σ\\\",6],[\\\"a641\\\",\\\"쪨\\\",19,\\\"쪾쪿쫁쫂쫃쫅\\\"],[\\\"a661\\\",\\\"쫆\\\",5,\\\"쫎쫐쫒쫔쫕쫖쫗쫚\\\",5,\\\"쫡\\\",6],[\\\"a681\\\",\\\"쫨쫩쫪쫫쫭\\\",6,\\\"쫵\\\",18,\\\"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃\\\",7],[\\\"a741\\\",\\\"쬋\\\",4,\\\"쬑쬒쬓쬕쬖쬗쬙\\\",6,\\\"쬢\\\",7],[\\\"a761\\\",\\\"쬪\\\",22,\\\"쭂쭃쭄\\\"],[\\\"a781\\\",\\\"쭅쭆쭇쭊쭋쭍쭎쭏쭑\\\",6,\\\"쭚쭛쭜쭞\\\",5,\\\"쭥\\\",7,\\\"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙\\\",9,\\\"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰\\\",9,\\\"㎀\\\",4,\\\"㎺\\\",5,\\\"㎐\\\",4,\\\"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆\\\"],[\\\"a841\\\",\\\"쭭\\\",10,\\\"쭺\\\",14],[\\\"a861\\\",\\\"쮉\\\",18,\\\"쮝\\\",6],[\\\"a881\\\",\\\"쮤\\\",19,\\\"쮹\\\",11,\\\"ÆÐªĦ\\\"],[\\\"a8a6\\\",\\\"Ĳ\\\"],[\\\"a8a8\\\",\\\"ĿŁØŒºÞŦŊ\\\"],[\\\"a8b1\\\",\\\"㉠\\\",27,\\\"ⓐ\\\",25,\\\"①\\\",14,\\\"½⅓⅔¼¾⅛⅜⅝⅞\\\"],[\\\"a941\\\",\\\"쯅\\\",14,\\\"쯕\\\",10],[\\\"a961\\\",\\\"쯠쯡쯢쯣쯥쯦쯨쯪\\\",18],[\\\"a981\\\",\\\"쯽\\\",14,\\\"찎찏찑찒찓찕\\\",6,\\\"찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀\\\",27,\\\"⒜\\\",25,\\\"⑴\\\",14,\\\"¹²³⁴ⁿ₁₂₃₄\\\"],[\\\"aa41\\\",\\\"찥찦찪찫찭찯찱\\\",6,\\\"찺찿\\\",4,\\\"챆챇챉챊챋챍챎\\\"],[\\\"aa61\\\",\\\"챏\\\",4,\\\"챖챚\\\",5,\\\"챡챢챣챥챧챩\\\",6,\\\"챱챲\\\"],[\\\"aa81\\\",\\\"챳챴챶\\\",29,\\\"ぁ\\\",82],[\\\"ab41\\\",\\\"첔첕첖첗첚첛첝첞첟첡\\\",6,\\\"첪첮\\\",5,\\\"첶첷첹\\\"],[\\\"ab61\\\",\\\"첺첻첽\\\",6,\\\"쳆쳈쳊\\\",5,\\\"쳑쳒쳓쳕\\\",5],[\\\"ab81\\\",\\\"쳛\\\",8,\\\"쳥\\\",6,\\\"쳭쳮쳯쳱\\\",12,\\\"ァ\\\",85],[\\\"ac41\\\",\\\"쳾쳿촀촂\\\",5,\\\"촊촋촍촎촏촑\\\",6,\\\"촚촜촞촟촠\\\"],[\\\"ac61\\\",\\\"촡촢촣촥촦촧촩촪촫촭\\\",11,\\\"촺\\\",4],[\\\"ac81\\\",\\\"촿\\\",28,\\\"쵝쵞쵟А\\\",5,\\\"ЁЖ\\\",25],[\\\"acd1\\\",\\\"а\\\",5,\\\"ёж\\\",25],[\\\"ad41\\\",\\\"쵡쵢쵣쵥\\\",6,\\\"쵮쵰쵲\\\",5,\\\"쵹\\\",7],[\\\"ad61\\\",\\\"춁\\\",6,\\\"춉\\\",10,\\\"춖춗춙춚춛춝춞춟\\\"],[\\\"ad81\\\",\\\"춠춡춢춣춦춨춪\\\",5,\\\"춱\\\",18,\\\"췅\\\"],[\\\"ae41\\\",\\\"췆\\\",5,\\\"췍췎췏췑\\\",16],[\\\"ae61\\\",\\\"췢\\\",5,\\\"췩췪췫췭췮췯췱\\\",6,\\\"췺췼췾\\\",4],[\\\"ae81\\\",\\\"츃츅츆츇츉츊츋츍\\\",6,\\\"츕츖츗츘츚\\\",5,\\\"츢츣츥츦츧츩츪츫\\\"],[\\\"af41\\\",\\\"츬츭츮츯츲츴츶\\\",19],[\\\"af61\\\",\\\"칊\\\",13,\\\"칚칛칝칞칢\\\",5,\\\"칪칬\\\"],[\\\"af81\\\",\\\"칮\\\",5,\\\"칶칷칹칺칻칽\\\",6,\\\"캆캈캊\\\",5,\\\"캒캓캕캖캗캙\\\"],[\\\"b041\\\",\\\"캚\\\",5,\\\"캢캦\\\",5,\\\"캮\\\",12],[\\\"b061\\\",\\\"캻\\\",5,\\\"컂\\\",19],[\\\"b081\\\",\\\"컖\\\",13,\\\"컦컧컩컪컭\\\",6,\\\"컶컺\\\",5,\\\"가각간갇갈갉갊감\\\",7,\\\"같\\\",4,\\\"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆\\\"],[\\\"b141\\\",\\\"켂켃켅켆켇켉\\\",6,\\\"켒켔켖\\\",5,\\\"켝켞켟켡켢켣\\\"],[\\\"b161\\\",\\\"켥\\\",6,\\\"켮켲\\\",5,\\\"켹\\\",11],[\\\"b181\\\",\\\"콅\\\",14,\\\"콖콗콙콚콛콝\\\",6,\\\"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸\\\"],[\\\"b241\\\",\\\"콭콮콯콲콳콵콶콷콹\\\",6,\\\"쾁쾂쾃쾄쾆\\\",5,\\\"쾍\\\"],[\\\"b261\\\",\\\"쾎\\\",18,\\\"쾢\\\",5,\\\"쾩\\\"],[\\\"b281\\\",\\\"쾪\\\",5,\\\"쾱\\\",18,\\\"쿅\\\",6,\\\"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙\\\"],[\\\"b341\\\",\\\"쿌\\\",19,\\\"쿢쿣쿥쿦쿧쿩\\\"],[\\\"b361\\\",\\\"쿪\\\",5,\\\"쿲쿴쿶\\\",5,\\\"쿽쿾쿿퀁퀂퀃퀅\\\",5],[\\\"b381\\\",\\\"퀋\\\",5,\\\"퀒\\\",5,\\\"퀙\\\",19,\\\"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫\\\",4,\\\"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝\\\"],[\\\"b441\\\",\\\"퀮\\\",5,\\\"퀶퀷퀹퀺퀻퀽\\\",6,\\\"큆큈큊\\\",5],[\\\"b461\\\",\\\"큑큒큓큕큖큗큙\\\",6,\\\"큡\\\",10,\\\"큮큯\\\"],[\\\"b481\\\",\\\"큱큲큳큵\\\",6,\\\"큾큿킀킂\\\",18,\\\"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫\\\",4,\\\"닳담답닷\\\",4,\\\"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥\\\"],[\\\"b541\\\",\\\"킕\\\",14,\\\"킦킧킩킪킫킭\\\",5],[\\\"b561\\\",\\\"킳킶킸킺\\\",5,\\\"탂탃탅탆탇탊\\\",5,\\\"탒탖\\\",4],[\\\"b581\\\",\\\"탛탞탟탡탢탣탥\\\",6,\\\"탮탲\\\",5,\\\"탹\\\",11,\\\"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸\\\"],[\\\"b641\\\",\\\"턅\\\",7,\\\"턎\\\",17],[\\\"b661\\\",\\\"턠\\\",15,\\\"턲턳턵턶턷턹턻턼턽턾\\\"],[\\\"b681\\\",\\\"턿텂텆\\\",5,\\\"텎텏텑텒텓텕\\\",6,\\\"텞텠텢\\\",5,\\\"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗\\\"],[\\\"b741\\\",\\\"텮\\\",13,\\\"텽\\\",6,\\\"톅톆톇톉톊\\\"],[\\\"b761\\\",\\\"톋\\\",20,\\\"톢톣톥톦톧\\\"],[\\\"b781\\\",\\\"톩\\\",6,\\\"톲톴톶톷톸톹톻톽톾톿퇁\\\",14,\\\"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩\\\"],[\\\"b841\\\",\\\"퇐\\\",7,\\\"퇙\\\",17],[\\\"b861\\\",\\\"퇫\\\",8,\\\"퇵퇶퇷퇹\\\",13],[\\\"b881\\\",\\\"툈툊\\\",5,\\\"툑\\\",24,\\\"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많\\\",4,\\\"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼\\\"],[\\\"b941\\\",\\\"툪툫툮툯툱툲툳툵\\\",6,\\\"툾퉀퉂\\\",5,\\\"퉉퉊퉋퉌\\\"],[\\\"b961\\\",\\\"퉍\\\",14,\\\"퉝\\\",6,\\\"퉥퉦퉧퉨\\\"],[\\\"b981\\\",\\\"퉩\\\",22,\\\"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바\\\",4,\\\"받\\\",4,\\\"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗\\\"],[\\\"ba41\\\",\\\"튍튎튏튒튓튔튖\\\",5,\\\"튝튞튟튡튢튣튥\\\",6,\\\"튭\\\"],[\\\"ba61\\\",\\\"튮튯튰튲\\\",5,\\\"튺튻튽튾틁틃\\\",4,\\\"틊틌\\\",5],[\\\"ba81\\\",\\\"틒틓틕틖틗틙틚틛틝\\\",6,\\\"틦\\\",9,\\\"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤\\\"],[\\\"bb41\\\",\\\"틻\\\",4,\\\"팂팄팆\\\",5,\\\"팏팑팒팓팕팗\\\",4,\\\"팞팢팣\\\"],[\\\"bb61\\\",\\\"팤팦팧팪팫팭팮팯팱\\\",6,\\\"팺팾\\\",5,\\\"퍆퍇퍈퍉\\\"],[\\\"bb81\\\",\\\"퍊\\\",31,\\\"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤\\\"],[\\\"bc41\\\",\\\"퍪\\\",17,\\\"퍾퍿펁펂펃펅펆펇\\\"],[\\\"bc61\\\",\\\"펈펉펊펋펎펒\\\",5,\\\"펚펛펝펞펟펡\\\",6,\\\"펪펬펮\\\"],[\\\"bc81\\\",\\\"펯\\\",4,\\\"펵펶펷펹펺펻펽\\\",6,\\\"폆폇폊\\\",5,\\\"폑\\\",5,\\\"샥샨샬샴샵샷샹섀섄섈섐섕서\\\",4,\\\"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭\\\"],[\\\"bd41\\\",\\\"폗폙\\\",7,\\\"폢폤\\\",7,\\\"폮폯폱폲폳폵폶폷\\\"],[\\\"bd61\\\",\\\"폸폹폺폻폾퐀퐂\\\",5,\\\"퐉\\\",13],[\\\"bd81\\\",\\\"퐗\\\",5,\\\"퐞\\\",25,\\\"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰\\\"],[\\\"be41\\\",\\\"퐸\\\",7,\\\"푁푂푃푅\\\",14],[\\\"be61\\\",\\\"푔\\\",7,\\\"푝푞푟푡푢푣푥\\\",7,\\\"푮푰푱푲\\\"],[\\\"be81\\\",\\\"푳\\\",4,\\\"푺푻푽푾풁풃\\\",4,\\\"풊풌풎\\\",5,\\\"풕\\\",8,\\\"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄\\\",6,\\\"엌엎\\\"],[\\\"bf41\\\",\\\"풞\\\",10,\\\"풪\\\",14],[\\\"bf61\\\",\\\"풹\\\",18,\\\"퓍퓎퓏퓑퓒퓓퓕\\\"],[\\\"bf81\\\",\\\"퓖\\\",5,\\\"퓝퓞퓠\\\",7,\\\"퓩퓪퓫퓭퓮퓯퓱\\\",6,\\\"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염\\\",5,\\\"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨\\\"],[\\\"c041\\\",\\\"퓾\\\",5,\\\"픅픆픇픉픊픋픍\\\",6,\\\"픖픘\\\",5],[\\\"c061\\\",\\\"픞\\\",25],[\\\"c081\\\",\\\"픸픹픺픻픾픿핁핂핃핅\\\",6,\\\"핎핐핒\\\",5,\\\"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응\\\",7,\\\"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊\\\"],[\\\"c141\\\",\\\"핤핦핧핪핬핮\\\",5,\\\"핶핷핹핺핻핽\\\",6,\\\"햆햊햋\\\"],[\\\"c161\\\",\\\"햌햍햎햏햑\\\",19,\\\"햦햧\\\"],[\\\"c181\\\",\\\"햨\\\",31,\\\"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓\\\"],[\\\"c241\\\",\\\"헊헋헍헎헏헑헓\\\",4,\\\"헚헜헞\\\",5,\\\"헦헧헩헪헫헭헮\\\"],[\\\"c261\\\",\\\"헯\\\",4,\\\"헶헸헺\\\",5,\\\"혂혃혅혆혇혉\\\",6,\\\"혒\\\"],[\\\"c281\\\",\\\"혖\\\",5,\\\"혝혞혟혡혢혣혥\\\",7,\\\"혮\\\",9,\\\"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻\\\"],[\\\"c341\\\",\\\"혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝\\\",4],[\\\"c361\\\",\\\"홢\\\",4,\\\"홨홪\\\",5,\\\"홲홳홵\\\",11],[\\\"c381\\\",\\\"횁횂횄횆\\\",5,\\\"횎횏횑횒횓횕\\\",7,\\\"횞횠횢\\\",5,\\\"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층\\\"],[\\\"c441\\\",\\\"횫횭횮횯횱\\\",7,\\\"횺횼\\\",7,\\\"훆훇훉훊훋\\\"],[\\\"c461\\\",\\\"훍훎훏훐훒훓훕훖훘훚\\\",5,\\\"훡훢훣훥훦훧훩\\\",4],[\\\"c481\\\",\\\"훮훯훱훲훳훴훶\\\",5,\\\"훾훿휁휂휃휅\\\",11,\\\"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼\\\"],[\\\"c541\\\",\\\"휕휖휗휚휛휝휞휟휡\\\",6,\\\"휪휬휮\\\",5,\\\"휶휷휹\\\"],[\\\"c561\\\",\\\"휺휻휽\\\",6,\\\"흅흆흈흊\\\",5,\\\"흒흓흕흚\\\",4],[\\\"c581\\\",\\\"흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵\\\",6,\\\"흾흿힀힂\\\",5,\\\"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜\\\"],[\\\"c641\\\",\\\"힍힎힏힑\\\",6,\\\"힚힜힞\\\",5],[\\\"c6a1\\\",\\\"퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁\\\"],[\\\"c7a1\\\",\\\"퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠\\\"],[\\\"c8a1\\\",\\\"혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝\\\"],[\\\"caa1\\\",\\\"伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕\\\"],[\\\"cba1\\\",\\\"匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢\\\"],[\\\"cca1\\\",\\\"瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械\\\"],[\\\"cda1\\\",\\\"棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜\\\"],[\\\"cea1\\\",\\\"科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾\\\"],[\\\"cfa1\\\",\\\"區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴\\\"],[\\\"d0a1\\\",\\\"鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣\\\"],[\\\"d1a1\\\",\\\"朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩\\\",5,\\\"那樂\\\",4,\\\"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉\\\"],[\\\"d2a1\\\",\\\"納臘蠟衲囊娘廊\\\",4,\\\"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧\\\",5,\\\"駑魯\\\",10,\\\"濃籠聾膿農惱牢磊腦賂雷尿壘\\\",7,\\\"嫩訥杻紐勒\\\",5,\\\"能菱陵尼泥匿溺多茶\\\"],[\\\"d3a1\\\",\\\"丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃\\\"],[\\\"d4a1\\\",\\\"棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅\\\"],[\\\"d5a1\\\",\\\"蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣\\\"],[\\\"d6a1\\\",\\\"煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼\\\"],[\\\"d7a1\\\",\\\"遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬\\\"],[\\\"d8a1\\\",\\\"立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅\\\"],[\\\"d9a1\\\",\\\"蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文\\\"],[\\\"daa1\\\",\\\"汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑\\\"],[\\\"dba1\\\",\\\"發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖\\\"],[\\\"dca1\\\",\\\"碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦\\\"],[\\\"dda1\\\",\\\"孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥\\\"],[\\\"dea1\\\",\\\"脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索\\\"],[\\\"dfa1\\\",\\\"傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署\\\"],[\\\"e0a1\\\",\\\"胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬\\\"],[\\\"e1a1\\\",\\\"聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁\\\"],[\\\"e2a1\\\",\\\"戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧\\\"],[\\\"e3a1\\\",\\\"嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁\\\"],[\\\"e4a1\\\",\\\"沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額\\\"],[\\\"e5a1\\\",\\\"櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬\\\"],[\\\"e6a1\\\",\\\"旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒\\\"],[\\\"e7a1\\\",\\\"簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳\\\"],[\\\"e8a1\\\",\\\"烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療\\\"],[\\\"e9a1\\\",\\\"窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓\\\"],[\\\"eaa1\\\",\\\"運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜\\\"],[\\\"eba1\\\",\\\"濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼\\\"],[\\\"eca1\\\",\\\"議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄\\\"],[\\\"eda1\\\",\\\"立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長\\\"],[\\\"eea1\\\",\\\"障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱\\\"],[\\\"efa1\\\",\\\"煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖\\\"],[\\\"f0a1\\\",\\\"靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫\\\"],[\\\"f1a1\\\",\\\"踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只\\\"],[\\\"f2a1\\\",\\\"咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯\\\"],[\\\"f3a1\\\",\\\"鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策\\\"],[\\\"f4a1\\\",\\\"責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢\\\"],[\\\"f5a1\\\",\\\"椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃\\\"],[\\\"f6a1\\\",\\\"贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託\\\"],[\\\"f7a1\\\",\\\"鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑\\\"],[\\\"f8a1\\\",\\\"阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃\\\"],[\\\"f9a1\\\",\\\"品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航\\\"],[\\\"faa1\\\",\\\"行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型\\\"],[\\\"fba1\\\",\\\"形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵\\\"],[\\\"fca1\\\",\\\"禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆\\\"],[\\\"fda1\\\",\\\"爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰\\\"]]\");\n\n/***/ }),\n/* 410 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[[\\\"8740\\\",\\\"䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻\\\"],[\\\"8767\\\",\\\"綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬\\\"],[\\\"87a1\\\",\\\"𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋\\\"],[\\\"8840\\\",\\\"㇀\\\",4,\\\"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ\\\"],[\\\"88a1\\\",\\\"ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛\\\"],[\\\"8940\\\",\\\"𪎩𡅅\\\"],[\\\"8943\\\",\\\"攊\\\"],[\\\"8946\\\",\\\"丽滝鵎釟\\\"],[\\\"894c\\\",\\\"𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮\\\"],[\\\"89a1\\\",\\\"琑糼緍楆竉刧\\\"],[\\\"89ab\\\",\\\"醌碸酞肼\\\"],[\\\"89b0\\\",\\\"贋胶𠧧\\\"],[\\\"89b5\\\",\\\"肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁\\\"],[\\\"89c1\\\",\\\"溚舾甙\\\"],[\\\"89c5\\\",\\\"䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅\\\"],[\\\"8a40\\\",\\\"𧶄唥\\\"],[\\\"8a43\\\",\\\"𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓\\\"],[\\\"8a64\\\",\\\"𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕\\\"],[\\\"8a76\\\",\\\"䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯\\\"],[\\\"8aa1\\\",\\\"𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱\\\"],[\\\"8aac\\\",\\\"䠋𠆩㿺塳𢶍\\\"],[\\\"8ab2\\\",\\\"𤗈𠓼𦂗𠽌𠶖啹䂻䎺\\\"],[\\\"8abb\\\",\\\"䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃\\\"],[\\\"8ac9\\\",\\\"𪘁𠸉𢫏𢳉\\\"],[\\\"8ace\\\",\\\"𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻\\\"],[\\\"8adf\\\",\\\"𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌\\\"],[\\\"8af6\\\",\\\"𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭\\\"],[\\\"8b40\\\",\\\"𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹\\\"],[\\\"8b55\\\",\\\"𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑\\\"],[\\\"8ba1\\\",\\\"𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁\\\"],[\\\"8bde\\\",\\\"𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢\\\"],[\\\"8c40\\\",\\\"倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋\\\"],[\\\"8ca1\\\",\\\"𣏹椙橃𣱣泿\\\"],[\\\"8ca7\\\",\\\"爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚\\\"],[\\\"8cc9\\\",\\\"顨杫䉶圽\\\"],[\\\"8cce\\\",\\\"藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶\\\"],[\\\"8ce6\\\",\\\"峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻\\\"],[\\\"8d40\\\",\\\"𠮟\\\"],[\\\"8d42\\\",\\\"𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱\\\"],[\\\"8da1\\\",\\\"㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘\\\"],[\\\"8e40\\\",\\\"𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎\\\"],[\\\"8ea1\\\",\\\"繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛\\\"],[\\\"8f40\\\",\\\"蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖\\\"],[\\\"8fa1\\\",\\\"𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起\\\"],[\\\"9040\\\",\\\"趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛\\\"],[\\\"90a1\\\",\\\"𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜\\\"],[\\\"9140\\\",\\\"𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈\\\"],[\\\"91a1\\\",\\\"鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨\\\"],[\\\"9240\\\",\\\"𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘\\\"],[\\\"92a1\\\",\\\"働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃\\\"],[\\\"9340\\\",\\\"媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍\\\"],[\\\"93a1\\\",\\\"摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋\\\"],[\\\"9440\\\",\\\"銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻\\\"],[\\\"94a1\\\",\\\"㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡\\\"],[\\\"9540\\\",\\\"𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂\\\"],[\\\"95a1\\\",\\\"衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰\\\"],[\\\"9640\\\",\\\"桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸\\\"],[\\\"96a1\\\",\\\"𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉\\\"],[\\\"9740\\\",\\\"愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫\\\"],[\\\"97a1\\\",\\\"𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎\\\"],[\\\"9840\\\",\\\"𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦\\\"],[\\\"98a1\\\",\\\"咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃\\\"],[\\\"9940\\\",\\\"䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚\\\"],[\\\"99a1\\\",\\\"䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿\\\"],[\\\"9a40\\\",\\\"鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺\\\"],[\\\"9aa1\\\",\\\"黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪\\\"],[\\\"9b40\\\",\\\"𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌\\\"],[\\\"9b62\\\",\\\"𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎\\\"],[\\\"9ba1\\\",\\\"椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊\\\"],[\\\"9c40\\\",\\\"嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶\\\"],[\\\"9ca1\\\",\\\"㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏\\\"],[\\\"9d40\\\",\\\"𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁\\\"],[\\\"9da1\\\",\\\"辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢\\\"],[\\\"9e40\\\",\\\"𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺\\\"],[\\\"9ea1\\\",\\\"鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭\\\"],[\\\"9ead\\\",\\\"𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹\\\"],[\\\"9ec5\\\",\\\"㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲\\\"],[\\\"9ef5\\\",\\\"噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼\\\"],[\\\"9f40\\\",\\\"籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱\\\"],[\\\"9f4f\\\",\\\"凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰\\\"],[\\\"9fa1\\\",\\\"椬叚鰊鴂䰻陁榀傦畆𡝭駚剳\\\"],[\\\"9fae\\\",\\\"酙隁酜\\\"],[\\\"9fb2\\\",\\\"酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽\\\"],[\\\"9fc1\\\",\\\"𤤙盖鮝个𠳔莾衂\\\"],[\\\"9fc9\\\",\\\"届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳\\\"],[\\\"9fdb\\\",\\\"歒酼龥鮗頮颴骺麨麄煺笔\\\"],[\\\"9fe7\\\",\\\"毺蠘罸\\\"],[\\\"9feb\\\",\\\"嘠𪙊蹷齓\\\"],[\\\"9ff0\\\",\\\"跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇\\\"],[\\\"a040\\\",\\\"𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷\\\"],[\\\"a055\\\",\\\"𡠻𦸅\\\"],[\\\"a058\\\",\\\"詾𢔛\\\"],[\\\"a05b\\\",\\\"惽癧髗鵄鍮鮏蟵\\\"],[\\\"a063\\\",\\\"蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽\\\"],[\\\"a073\\\",\\\"坟慯抦戹拎㩜懢厪𣏵捤栂㗒\\\"],[\\\"a0a1\\\",\\\"嵗𨯂迚𨸹\\\"],[\\\"a0a6\\\",\\\"僙𡵆礆匲阸𠼻䁥\\\"],[\\\"a0ae\\\",\\\"矾\\\"],[\\\"a0b0\\\",\\\"糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦\\\"],[\\\"a0d4\\\",\\\"覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷\\\"],[\\\"a0e2\\\",\\\"罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫\\\"],[\\\"a3c0\\\",\\\"␀\\\",31,\\\"␡\\\"],[\\\"c6a1\\\",\\\"①\\\",9,\\\"⑴\\\",9,\\\"ⅰ\\\",9,\\\"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー［］✽ぁ\\\",23],[\\\"c740\\\",\\\"す\\\",58,\\\"ァアィイ\\\"],[\\\"c7a1\\\",\\\"ゥ\\\",81,\\\"А\\\",5,\\\"ЁЖ\\\",4],[\\\"c840\\\",\\\"Л\\\",26,\\\"ёж\\\",25,\\\"⇧↸↹㇏𠃌乚𠂊刂䒑\\\"],[\\\"c8a1\\\",\\\"龰冈龱𧘇\\\"],[\\\"c8cd\\\",\\\"￢￤＇＂㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣\\\"],[\\\"c8f5\\\",\\\"ʃɐɛɔɵœøŋʊɪ\\\"],[\\\"f9fe\\\",\\\"￭\\\"],[\\\"fa40\\\",\\\"𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸\\\"],[\\\"faa1\\\",\\\"鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍\\\"],[\\\"fb40\\\",\\\"𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙\\\"],[\\\"fba1\\\",\\\"𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂\\\"],[\\\"fc40\\\",\\\"廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷\\\"],[\\\"fca1\\\",\\\"𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝\\\"],[\\\"fd40\\\",\\\"𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀\\\"],[\\\"fda1\\\",\\\"𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎\\\"],[\\\"fe40\\\",\\\"鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌\\\"],[\\\"fea1\\\",\\\"𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔\\\"]]\");\n\n/***/ }),\n/* 411 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Buffer = __webpack_require__(37).Buffer;\n\n// NOTE: Due to 'stream' module being pretty large (~100Kb, significant in browser environments), \n// we opt to dependency-inject it instead of creating a hard dependency.\nmodule.exports = function(stream_module) {\n    var Transform = stream_module.Transform;\n\n    // == Encoder stream =======================================================\n\n    function IconvLiteEncoderStream(conv, options) {\n        this.conv = conv;\n        options = options || {};\n        options.decodeStrings = false; // We accept only strings, so we don't need to decode them.\n        Transform.call(this, options);\n    }\n\n    IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {\n        constructor: { value: IconvLiteEncoderStream }\n    });\n\n    IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {\n        if (typeof chunk != 'string')\n            return done(new Error(\"Iconv encoding stream needs strings as its input.\"));\n        try {\n            var res = this.conv.write(chunk);\n            if (res && res.length) this.push(res);\n            done();\n        }\n        catch (e) {\n            done(e);\n        }\n    }\n\n    IconvLiteEncoderStream.prototype._flush = function(done) {\n        try {\n            var res = this.conv.end();\n            if (res && res.length) this.push(res);\n            done();\n        }\n        catch (e) {\n            done(e);\n        }\n    }\n\n    IconvLiteEncoderStream.prototype.collect = function(cb) {\n        var chunks = [];\n        this.on('error', cb);\n        this.on('data', function(chunk) { chunks.push(chunk); });\n        this.on('end', function() {\n            cb(null, Buffer.concat(chunks));\n        });\n        return this;\n    }\n\n\n    // == Decoder stream =======================================================\n\n    function IconvLiteDecoderStream(conv, options) {\n        this.conv = conv;\n        options = options || {};\n        options.encoding = this.encoding = 'utf8'; // We output strings.\n        Transform.call(this, options);\n    }\n\n    IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {\n        constructor: { value: IconvLiteDecoderStream }\n    });\n\n    IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {\n        if (!Buffer.isBuffer(chunk) && !(chunk instanceof Uint8Array))\n            return done(new Error(\"Iconv decoding stream needs buffers as its input.\"));\n        try {\n            var res = this.conv.write(chunk);\n            if (res && res.length) this.push(res, this.encoding);\n            done();\n        }\n        catch (e) {\n            done(e);\n        }\n    }\n\n    IconvLiteDecoderStream.prototype._flush = function(done) {\n        try {\n            var res = this.conv.end();\n            if (res && res.length) this.push(res, this.encoding);                \n            done();\n        }\n        catch (e) {\n            done(e);\n        }\n    }\n\n    IconvLiteDecoderStream.prototype.collect = function(cb) {\n        var res = '';\n        this.on('error', cb);\n        this.on('data', function(chunk) { res += chunk; });\n        this.on('end', function() {\n            cb(null, res);\n        });\n        return this;\n    }\n\n    return {\n        IconvLiteEncoderStream: IconvLiteEncoderStream,\n        IconvLiteDecoderStream: IconvLiteDecoderStream,\n    };\n};\n\n\n/***/ }),\n/* 412 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 413 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var ArrayT, LazyArray, LazyArrayT, NumberT, inspect, utils,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  ArrayT = __webpack_require__(253);\n\n  NumberT = __webpack_require__(89).Number;\n\n  utils = __webpack_require__(38);\n\n  inspect = __webpack_require__(167).inspect;\n\n  LazyArrayT = (function(_super) {\n    __extends(LazyArrayT, _super);\n\n    function LazyArrayT() {\n      return LazyArrayT.__super__.constructor.apply(this, arguments);\n    }\n\n    LazyArrayT.prototype.decode = function(stream, parent) {\n      var length, pos, res;\n      pos = stream.pos;\n      length = utils.resolveLength(this.length, stream, parent);\n      if (this.length instanceof NumberT) {\n        parent = {\n          parent: parent,\n          _startOffset: pos,\n          _currentOffset: 0,\n          _length: length\n        };\n      }\n      res = new LazyArray(this.type, length, stream, parent);\n      stream.pos += length * this.type.size(null, parent);\n      return res;\n    };\n\n    LazyArrayT.prototype.size = function(val, ctx) {\n      if (val instanceof LazyArray) {\n        val = val.toArray();\n      }\n      return LazyArrayT.__super__.size.call(this, val, ctx);\n    };\n\n    LazyArrayT.prototype.encode = function(stream, val, ctx) {\n      if (val instanceof LazyArray) {\n        val = val.toArray();\n      }\n      return LazyArrayT.__super__.encode.call(this, stream, val, ctx);\n    };\n\n    return LazyArrayT;\n\n  })(ArrayT);\n\n  LazyArray = (function() {\n    function LazyArray(type, length, stream, ctx) {\n      this.type = type;\n      this.length = length;\n      this.stream = stream;\n      this.ctx = ctx;\n      this.base = this.stream.pos;\n      this.items = [];\n    }\n\n    LazyArray.prototype.get = function(index) {\n      var pos;\n      if (index < 0 || index >= this.length) {\n        return void 0;\n      }\n      if (this.items[index] == null) {\n        pos = this.stream.pos;\n        this.stream.pos = this.base + this.type.size(null, this.ctx) * index;\n        this.items[index] = this.type.decode(this.stream, this.ctx);\n        this.stream.pos = pos;\n      }\n      return this.items[index];\n    };\n\n    LazyArray.prototype.toArray = function() {\n      var i, _i, _ref, _results;\n      _results = [];\n      for (i = _i = 0, _ref = this.length; _i < _ref; i = _i += 1) {\n        _results.push(this.get(i));\n      }\n      return _results;\n    };\n\n    LazyArray.prototype.inspect = function() {\n      return inspect(this.toArray());\n    };\n\n    return LazyArray;\n\n  })();\n\n  module.exports = LazyArrayT;\n\n}).call(this);\n\n\n/***/ }),\n/* 414 */\n/***/ (function(module, exports) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Bitfield;\n\n  Bitfield = (function() {\n    function Bitfield(type, flags) {\n      this.type = type;\n      this.flags = flags != null ? flags : [];\n    }\n\n    Bitfield.prototype.decode = function(stream) {\n      var flag, i, res, val, _i, _len, _ref;\n      val = this.type.decode(stream);\n      res = {};\n      _ref = this.flags;\n      for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n        flag = _ref[i];\n        if (flag != null) {\n          res[flag] = !!(val & (1 << i));\n        }\n      }\n      return res;\n    };\n\n    Bitfield.prototype.size = function() {\n      return this.type.size();\n    };\n\n    Bitfield.prototype.encode = function(stream, keys) {\n      var flag, i, val, _i, _len, _ref;\n      val = 0;\n      _ref = this.flags;\n      for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n        flag = _ref[i];\n        if (flag != null) {\n          if (keys[flag]) {\n            val |= 1 << i;\n          }\n        }\n      }\n      return this.type.encode(stream, val);\n    };\n\n    return Bitfield;\n\n  })();\n\n  module.exports = Bitfield;\n\n}).call(this);\n\n\n/***/ }),\n/* 415 */\n/***/ (function(module, exports) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var BooleanT;\n\n  BooleanT = (function() {\n    function BooleanT(type) {\n      this.type = type;\n    }\n\n    BooleanT.prototype.decode = function(stream, parent) {\n      return !!this.type.decode(stream, parent);\n    };\n\n    BooleanT.prototype.size = function(val, parent) {\n      return this.type.size(val, parent);\n    };\n\n    BooleanT.prototype.encode = function(stream, val, parent) {\n      return this.type.encode(stream, +val, parent);\n    };\n\n    return BooleanT;\n\n  })();\n\n  module.exports = BooleanT;\n\n}).call(this);\n\n\n/***/ }),\n/* 416 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var BufferT, NumberT, utils;\n\n  utils = __webpack_require__(38);\n\n  NumberT = __webpack_require__(89).Number;\n\n  BufferT = (function() {\n    function BufferT(length) {\n      this.length = length;\n    }\n\n    BufferT.prototype.decode = function(stream, parent) {\n      var length;\n      length = utils.resolveLength(this.length, stream, parent);\n      return stream.readBuffer(length);\n    };\n\n    BufferT.prototype.size = function(val, parent) {\n      if (!val) {\n        return utils.resolveLength(this.length, null, parent);\n      }\n      return val.length;\n    };\n\n    BufferT.prototype.encode = function(stream, buf, parent) {\n      if (this.length instanceof NumberT) {\n        this.length.encode(stream, buf.length);\n      }\n      return stream.writeBuffer(buf);\n    };\n\n    return BufferT;\n\n  })();\n\n  module.exports = BufferT;\n\n}).call(this);\n\n\n/***/ }),\n/* 417 */\n/***/ (function(module, exports) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Enum;\n\n  Enum = (function() {\n    function Enum(type, options) {\n      this.type = type;\n      this.options = options != null ? options : [];\n    }\n\n    Enum.prototype.decode = function(stream) {\n      var index;\n      index = this.type.decode(stream);\n      return this.options[index] || index;\n    };\n\n    Enum.prototype.size = function() {\n      return this.type.size();\n    };\n\n    Enum.prototype.encode = function(stream, val) {\n      var index;\n      index = this.options.indexOf(val);\n      if (index === -1) {\n        throw new Error(\"Unknown option in enum: \" + val);\n      }\n      return this.type.encode(stream, index);\n    };\n\n    return Enum;\n\n  })();\n\n  module.exports = Enum;\n\n}).call(this);\n\n\n/***/ }),\n/* 418 */\n/***/ (function(module, exports) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Optional;\n\n  Optional = (function() {\n    function Optional(type, condition) {\n      this.type = type;\n      this.condition = condition != null ? condition : true;\n    }\n\n    Optional.prototype.decode = function(stream, parent) {\n      var condition;\n      condition = this.condition;\n      if (typeof condition === 'function') {\n        condition = condition.call(parent, parent);\n      }\n      if (condition) {\n        return this.type.decode(stream, parent);\n      }\n    };\n\n    Optional.prototype.size = function(val, parent) {\n      var condition;\n      condition = this.condition;\n      if (typeof condition === 'function') {\n        condition = condition.call(parent, parent);\n      }\n      if (condition) {\n        return this.type.size(val, parent);\n      } else {\n        return 0;\n      }\n    };\n\n    Optional.prototype.encode = function(stream, val, parent) {\n      var condition;\n      condition = this.condition;\n      if (typeof condition === 'function') {\n        condition = condition.call(parent, parent);\n      }\n      if (condition) {\n        return this.type.encode(stream, val, parent);\n      }\n    };\n\n    return Optional;\n\n  })();\n\n  module.exports = Optional;\n\n}).call(this);\n\n\n/***/ }),\n/* 419 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Reserved, utils;\n\n  utils = __webpack_require__(38);\n\n  Reserved = (function() {\n    function Reserved(type, count) {\n      this.type = type;\n      this.count = count != null ? count : 1;\n    }\n\n    Reserved.prototype.decode = function(stream, parent) {\n      stream.pos += this.size(null, parent);\n      return void 0;\n    };\n\n    Reserved.prototype.size = function(data, parent) {\n      var count;\n      count = utils.resolveLength(this.count, null, parent);\n      return this.type.size() * count;\n    };\n\n    Reserved.prototype.encode = function(stream, val, parent) {\n      return stream.fill(0, this.size(val, parent));\n    };\n\n    return Reserved;\n\n  })();\n\n  module.exports = Reserved;\n\n}).call(this);\n\n\n/***/ }),\n/* 420 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {// Generated by CoffeeScript 1.7.1\n(function() {\n  var NumberT, StringT, utils;\n\n  NumberT = __webpack_require__(89).Number;\n\n  utils = __webpack_require__(38);\n\n  StringT = (function() {\n    function StringT(length, encoding) {\n      this.length = length;\n      this.encoding = encoding != null ? encoding : 'ascii';\n    }\n\n    StringT.prototype.decode = function(stream, parent) {\n      var buffer, encoding, length, pos, string;\n      length = (function() {\n        if (this.length != null) {\n          return utils.resolveLength(this.length, stream, parent);\n        } else {\n          buffer = stream.buffer, length = stream.length, pos = stream.pos;\n          while (pos < length && buffer[pos] !== 0x00) {\n            ++pos;\n          }\n          return pos - stream.pos;\n        }\n      }).call(this);\n      encoding = this.encoding;\n      if (typeof encoding === 'function') {\n        encoding = encoding.call(parent, parent) || 'ascii';\n      }\n      string = stream.readString(length, encoding);\n      if ((this.length == null) && stream.pos < stream.length) {\n        stream.pos++;\n      }\n      return string;\n    };\n\n    StringT.prototype.size = function(val, parent) {\n      var encoding, size;\n      if (!val) {\n        return utils.resolveLength(this.length, null, parent);\n      }\n      encoding = this.encoding;\n      if (typeof encoding === 'function') {\n        encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || 'ascii';\n      }\n      if (encoding === 'utf16be') {\n        encoding = 'utf16le';\n      }\n      size = Buffer.byteLength(val, encoding);\n      if (this.length instanceof NumberT) {\n        size += this.length.size();\n      }\n      if (this.length == null) {\n        size++;\n      }\n      return size;\n    };\n\n    StringT.prototype.encode = function(stream, val, parent) {\n      var encoding;\n      encoding = this.encoding;\n      if (typeof encoding === 'function') {\n        encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || 'ascii';\n      }\n      if (this.length instanceof NumberT) {\n        this.length.encode(stream, Buffer.byteLength(val, encoding));\n      }\n      stream.writeString(val, encoding);\n      if (this.length == null) {\n        return stream.writeUInt8(0x00);\n      }\n    };\n\n    return StringT;\n\n  })();\n\n  module.exports = StringT;\n\n}).call(this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 421 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Struct, VersionedStruct,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  Struct = __webpack_require__(254);\n\n  VersionedStruct = (function(_super) {\n    __extends(VersionedStruct, _super);\n\n    function VersionedStruct(type, versions) {\n      this.type = type;\n      this.versions = versions != null ? versions : {};\n      if (typeof this.type === 'string') {\n        this.versionGetter = new Function('parent', \"return parent.\" + this.type);\n        this.versionSetter = new Function('parent', 'version', \"return parent.\" + this.type + \" = version\");\n      }\n    }\n\n    VersionedStruct.prototype.decode = function(stream, parent, length) {\n      var fields, res, _ref;\n      if (length == null) {\n        length = 0;\n      }\n      res = this._setup(stream, parent, length);\n      if (typeof this.type === 'string') {\n        res.version = this.versionGetter(parent);\n      } else {\n        res.version = this.type.decode(stream);\n      }\n      if (this.versions.header) {\n        this._parseFields(stream, res, this.versions.header);\n      }\n      fields = this.versions[res.version];\n      if (fields == null) {\n        throw new Error(\"Unknown version \" + res.version);\n      }\n      if (fields instanceof VersionedStruct) {\n        return fields.decode(stream, parent);\n      }\n      this._parseFields(stream, res, fields);\n      if ((_ref = this.process) != null) {\n        _ref.call(res, stream);\n      }\n      return res;\n    };\n\n    VersionedStruct.prototype.size = function(val, parent, includePointers) {\n      var ctx, fields, key, size, type, _ref;\n      if (includePointers == null) {\n        includePointers = true;\n      }\n      if (!val) {\n        throw new Error('Not a fixed size');\n      }\n      ctx = {\n        parent: parent,\n        val: val,\n        pointerSize: 0\n      };\n      size = 0;\n      if (typeof this.type !== 'string') {\n        size += this.type.size(val.version, ctx);\n      }\n      if (this.versions.header) {\n        _ref = this.versions.header;\n        for (key in _ref) {\n          type = _ref[key];\n          if (type.size != null) {\n            size += type.size(val[key], ctx);\n          }\n        }\n      }\n      fields = this.versions[val.version];\n      if (fields == null) {\n        throw new Error(\"Unknown version \" + val.version);\n      }\n      for (key in fields) {\n        type = fields[key];\n        if (type.size != null) {\n          size += type.size(val[key], ctx);\n        }\n      }\n      if (includePointers) {\n        size += ctx.pointerSize;\n      }\n      return size;\n    };\n\n    VersionedStruct.prototype.encode = function(stream, val, parent) {\n      var ctx, fields, i, key, ptr, type, _ref, _ref1;\n      if ((_ref = this.preEncode) != null) {\n        _ref.call(val, stream);\n      }\n      ctx = {\n        pointers: [],\n        startOffset: stream.pos,\n        parent: parent,\n        val: val,\n        pointerSize: 0\n      };\n      ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n      if (typeof this.type !== 'string') {\n        this.type.encode(stream, val.version);\n      }\n      if (this.versions.header) {\n        _ref1 = this.versions.header;\n        for (key in _ref1) {\n          type = _ref1[key];\n          if (type.encode != null) {\n            type.encode(stream, val[key], ctx);\n          }\n        }\n      }\n      fields = this.versions[val.version];\n      for (key in fields) {\n        type = fields[key];\n        if (type.encode != null) {\n          type.encode(stream, val[key], ctx);\n        }\n      }\n      i = 0;\n      while (i < ctx.pointers.length) {\n        ptr = ctx.pointers[i++];\n        ptr.type.encode(stream, ptr.val, ptr.parent);\n      }\n    };\n\n    return VersionedStruct;\n\n  })(Struct);\n\n  module.exports = VersionedStruct;\n\n}).call(this);\n\n\n/***/ }),\n/* 422 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Generated by CoffeeScript 1.7.1\n(function() {\n  var Pointer, VoidPointer, utils;\n\n  utils = __webpack_require__(38);\n\n  Pointer = (function() {\n    function Pointer(offsetType, type, options) {\n      var _base, _base1, _base2, _base3;\n      this.offsetType = offsetType;\n      this.type = type;\n      this.options = options != null ? options : {};\n      if (this.type === 'void') {\n        this.type = null;\n      }\n      if ((_base = this.options).type == null) {\n        _base.type = 'local';\n      }\n      if ((_base1 = this.options).allowNull == null) {\n        _base1.allowNull = true;\n      }\n      if ((_base2 = this.options).nullValue == null) {\n        _base2.nullValue = 0;\n      }\n      if ((_base3 = this.options).lazy == null) {\n        _base3.lazy = false;\n      }\n      if (this.options.relativeTo) {\n        this.relativeToGetter = new Function('ctx', \"return ctx.\" + this.options.relativeTo);\n      }\n    }\n\n    Pointer.prototype.decode = function(stream, ctx) {\n      var c, decodeValue, offset, ptr, relative, val;\n      offset = this.offsetType.decode(stream, ctx);\n      if (offset === this.options.nullValue && this.options.allowNull) {\n        return null;\n      }\n      relative = (function() {\n        switch (this.options.type) {\n          case 'local':\n            return ctx._startOffset;\n          case 'immediate':\n            return stream.pos - this.offsetType.size();\n          case 'parent':\n            return ctx.parent._startOffset;\n          default:\n            c = ctx;\n            while (c.parent) {\n              c = c.parent;\n            }\n            return c._startOffset || 0;\n        }\n      }).call(this);\n      if (this.options.relativeTo) {\n        relative += this.relativeToGetter(ctx);\n      }\n      ptr = offset + relative;\n      if (this.type != null) {\n        val = null;\n        decodeValue = (function(_this) {\n          return function() {\n            var pos;\n            if (val != null) {\n              return val;\n            }\n            pos = stream.pos;\n            stream.pos = ptr;\n            val = _this.type.decode(stream, ctx);\n            stream.pos = pos;\n            return val;\n          };\n        })(this);\n        if (this.options.lazy) {\n          return new utils.PropertyDescriptor({\n            get: decodeValue\n          });\n        }\n        return decodeValue();\n      } else {\n        return ptr;\n      }\n    };\n\n    Pointer.prototype.size = function(val, ctx) {\n      var parent, type;\n      parent = ctx;\n      switch (this.options.type) {\n        case 'local':\n        case 'immediate':\n          break;\n        case 'parent':\n          ctx = ctx.parent;\n          break;\n        default:\n          while (ctx.parent) {\n            ctx = ctx.parent;\n          }\n      }\n      type = this.type;\n      if (type == null) {\n        if (!(val instanceof VoidPointer)) {\n          throw new Error(\"Must be a VoidPointer\");\n        }\n        type = val.type;\n        val = val.value;\n      }\n      if (val && ctx) {\n        ctx.pointerSize += type.size(val, parent);\n      }\n      return this.offsetType.size();\n    };\n\n    Pointer.prototype.encode = function(stream, val, ctx) {\n      var parent, relative, type;\n      parent = ctx;\n      if (val == null) {\n        this.offsetType.encode(stream, this.options.nullValue);\n        return;\n      }\n      switch (this.options.type) {\n        case 'local':\n          relative = ctx.startOffset;\n          break;\n        case 'immediate':\n          relative = stream.pos + this.offsetType.size(val, parent);\n          break;\n        case 'parent':\n          ctx = ctx.parent;\n          relative = ctx.startOffset;\n          break;\n        default:\n          relative = 0;\n          while (ctx.parent) {\n            ctx = ctx.parent;\n          }\n      }\n      if (this.options.relativeTo) {\n        relative += this.relativeToGetter(parent.val);\n      }\n      this.offsetType.encode(stream, ctx.pointerOffset - relative);\n      type = this.type;\n      if (type == null) {\n        if (!(val instanceof VoidPointer)) {\n          throw new Error(\"Must be a VoidPointer\");\n        }\n        type = val.type;\n        val = val.value;\n      }\n      ctx.pointers.push({\n        type: type,\n        val: val,\n        parent: parent\n      });\n      return ctx.pointerOffset += type.size(val, parent);\n    };\n\n    return Pointer;\n\n  })();\n\n  VoidPointer = (function() {\n    function VoidPointer(type, value) {\n      this.type = type;\n      this.value = value;\n    }\n\n    return VoidPointer;\n\n  })();\n\n  exports.Pointer = Pointer;\n\n  exports.VoidPointer = VoidPointer;\n\n}).call(this);\n\n\n/***/ }),\n/* 423 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(424), __esModule: true };\n\n/***/ }),\n/* 424 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(425);\nvar $Object = __webpack_require__(7).Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n  return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n/***/ }),\n/* 425 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(50);\nvar $getOwnPropertyDescriptor = __webpack_require__(175).f;\n\n__webpack_require__(178)('getOwnPropertyDescriptor', function () {\n  return function getOwnPropertyDescriptor(it, key) {\n    return $getOwnPropertyDescriptor(toIObject(it), key);\n  };\n});\n\n\n/***/ }),\n/* 426 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(427), __esModule: true };\n\n/***/ }),\n/* 427 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(102);\n__webpack_require__(91);\nmodule.exports = __webpack_require__(434);\n\n\n/***/ }),\n/* 428 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(429);\nvar step = __webpack_require__(256);\nvar Iterators = __webpack_require__(103);\nvar toIObject = __webpack_require__(50);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(179)(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 429 */\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\n\n\n/***/ }),\n/* 430 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(129);\nvar descriptor = __webpack_require__(100);\nvar setToStringTag = __webpack_require__(106);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(39)(IteratorPrototype, __webpack_require__(21)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n/* 431 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(50);\nvar toLength = __webpack_require__(130);\nvar toAbsoluteIndex = __webpack_require__(260);\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n/***/ }),\n/* 432 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(51);\nvar toObject = __webpack_require__(90);\nvar IE_PROTO = __webpack_require__(181)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n/* 433 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(180);\nvar defined = __webpack_require__(174);\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n/***/ }),\n/* 434 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(29);\nvar get = __webpack_require__(184);\nmodule.exports = __webpack_require__(7).getIterator = function (it) {\n  var iterFn = get(it);\n  if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n  return anObject(iterFn.call(it));\n};\n\n\n/***/ }),\n/* 435 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(436), __esModule: true };\n\n/***/ }),\n/* 436 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(437);\nmodule.exports = __webpack_require__(7).Object.freeze;\n\n\n/***/ }),\n/* 437 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.5 Object.freeze(O)\nvar isObject = __webpack_require__(22);\nvar meta = __webpack_require__(132).onFreeze;\n\n__webpack_require__(178)('freeze', function ($freeze) {\n  return function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n  };\n});\n\n\n/***/ }),\n/* 438 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(439), __esModule: true };\n\n/***/ }),\n/* 439 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(91);\n__webpack_require__(102);\nmodule.exports = __webpack_require__(187).f('iterator');\n\n\n/***/ }),\n/* 440 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(441), __esModule: true };\n\n/***/ }),\n/* 441 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(442);\n__webpack_require__(133);\n__webpack_require__(445);\n__webpack_require__(446);\nmodule.exports = __webpack_require__(7).Symbol;\n\n\n/***/ }),\n/* 442 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(17);\nvar has = __webpack_require__(51);\nvar DESCRIPTORS = __webpack_require__(23);\nvar $export = __webpack_require__(9);\nvar redefine = __webpack_require__(257);\nvar META = __webpack_require__(132).KEY;\nvar $fails = __webpack_require__(52);\nvar shared = __webpack_require__(182);\nvar setToStringTag = __webpack_require__(106);\nvar uid = __webpack_require__(131);\nvar wks = __webpack_require__(21);\nvar wksExt = __webpack_require__(187);\nvar wksDefine = __webpack_require__(188);\nvar enumKeys = __webpack_require__(443);\nvar isArray = __webpack_require__(262);\nvar anObject = __webpack_require__(29);\nvar isObject = __webpack_require__(22);\nvar toObject = __webpack_require__(90);\nvar toIObject = __webpack_require__(50);\nvar toPrimitive = __webpack_require__(176);\nvar createDesc = __webpack_require__(100);\nvar _create = __webpack_require__(129);\nvar gOPNExt = __webpack_require__(444);\nvar $GOPD = __webpack_require__(175);\nvar $GOPS = __webpack_require__(189);\nvar $DP = __webpack_require__(26);\nvar $keys = __webpack_require__(105);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  __webpack_require__(263).f = gOPNExt.f = $getOwnPropertyNames;\n  __webpack_require__(128).f = $propertyIsEnumerable;\n  $GOPS.f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !__webpack_require__(104)) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return $GOPS.f(toObject(it));\n  }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(39)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n/* 443 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(105);\nvar gOPS = __webpack_require__(189);\nvar pIE = __webpack_require__(128);\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\n\n/***/ }),\n/* 444 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(50);\nvar gOPN = __webpack_require__(263).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 445 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(188)('asyncIterator');\n\n\n/***/ }),\n/* 446 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(188)('observable');\n\n\n/***/ }),\n/* 447 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(448), __esModule: true };\n\n/***/ }),\n/* 448 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(449);\nmodule.exports = __webpack_require__(7).Object.keys;\n\n\n/***/ }),\n/* 449 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(90);\nvar $keys = __webpack_require__(105);\n\n__webpack_require__(178)('keys', function () {\n  return function keys(it) {\n    return $keys(toObject(it));\n  };\n});\n\n\n/***/ }),\n/* 450 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(451);\nvar $Object = __webpack_require__(7).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n  return $Object.defineProperty(it, key, desc);\n};\n\n\n/***/ }),\n/* 451 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(9);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(23), 'Object', { defineProperty: __webpack_require__(26).f });\n\n\n/***/ }),\n/* 452 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\n/***/ }),\n/* 453 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(264);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n/***/ }),\n/* 454 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(455), __esModule: true };\n\n/***/ }),\n/* 455 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(133);\n__webpack_require__(91);\n__webpack_require__(102);\n__webpack_require__(456);\n__webpack_require__(460);\n__webpack_require__(462);\n__webpack_require__(463);\nmodule.exports = __webpack_require__(7).Map;\n\n\n/***/ }),\n/* 456 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar strong = __webpack_require__(265);\nvar validate = __webpack_require__(192);\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = __webpack_require__(269)(MAP, function (get) {\n  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.1.3.6 Map.prototype.get(key)\n  get: function get(key) {\n    var entry = strong.getEntry(validate(this, MAP), key);\n    return entry && entry.v;\n  },\n  // 23.1.3.9 Map.prototype.set(key, value)\n  set: function set(key, value) {\n    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n  }\n}, strong, true);\n\n\n/***/ }),\n/* 457 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = __webpack_require__(32);\nvar IObject = __webpack_require__(173);\nvar toObject = __webpack_require__(90);\nvar toLength = __webpack_require__(130);\nvar asc = __webpack_require__(458);\nmodule.exports = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || asc;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IObject(O);\n    var f = ctx(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      val = self[index];\n      res = f(val, index, O);\n      if (TYPE) {\n        if (IS_MAP) result[index] = res;   // map\n        else if (res) switch (TYPE) {\n          case 3: return true;             // some\n          case 5: return val;              // find\n          case 6: return index;            // findIndex\n          case 2: result.push(val);        // filter\n        } else if (IS_EVERY) return false; // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n\n\n/***/ }),\n/* 458 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = __webpack_require__(459);\n\nmodule.exports = function (original, length) {\n  return new (speciesConstructor(original))(length);\n};\n\n\n/***/ }),\n/* 459 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(22);\nvar isArray = __webpack_require__(262);\nvar SPECIES = __webpack_require__(21)('species');\n\nmodule.exports = function (original) {\n  var C;\n  if (isArray(original)) {\n    C = original.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n\n\n/***/ }),\n/* 460 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = __webpack_require__(9);\n\n$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(270)('Map') });\n\n\n/***/ }),\n/* 461 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar forOf = __webpack_require__(107);\n\nmodule.exports = function (iter, ITERATOR) {\n  var result = [];\n  forOf(iter, false, result.push, result, ITERATOR);\n  return result;\n};\n\n\n/***/ }),\n/* 462 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n__webpack_require__(271)('Map');\n\n\n/***/ }),\n/* 463 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n__webpack_require__(272)('Map');\n\n\n/***/ }),\n/* 464 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof2 = __webpack_require__(186);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/***/ }),\n/* 465 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = __webpack_require__(466);\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = __webpack_require__(470);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = __webpack_require__(186);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n  }\n\n  subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n/***/ }),\n/* 466 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(467), __esModule: true };\n\n/***/ }),\n/* 467 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(468);\nmodule.exports = __webpack_require__(7).Object.setPrototypeOf;\n\n\n/***/ }),\n/* 468 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(9);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(469).set });\n\n\n/***/ }),\n/* 469 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(22);\nvar anObject = __webpack_require__(29);\nvar check = function (O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n    function (test, buggy, set) {\n      try {\n        set = __webpack_require__(32)(Function.call, __webpack_require__(175).f(Object.prototype, '__proto__').set, 2);\n        set(test, []);\n        buggy = !(test instanceof Array);\n      } catch (e) { buggy = true; }\n      return function setPrototypeOf(O, proto) {\n        check(O, proto);\n        if (buggy) O.__proto__ = proto;\n        else set(O, proto);\n        return O;\n      };\n    }({}, false) : undefined),\n  check: check\n};\n\n\n/***/ }),\n/* 470 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(471), __esModule: true };\n\n/***/ }),\n/* 471 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(472);\nvar $Object = __webpack_require__(7).Object;\nmodule.exports = function create(P, D) {\n  return $Object.create(P, D);\n};\n\n\n/***/ }),\n/* 472 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(9);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(129) });\n\n\n/***/ }),\n/* 473 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(474), __esModule: true };\n\n/***/ }),\n/* 474 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(475);\nvar $Object = __webpack_require__(7).Object;\nmodule.exports = function defineProperties(T, D) {\n  return $Object.defineProperties(T, D);\n};\n\n\n/***/ }),\n/* 475 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(9);\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !__webpack_require__(23), 'Object', { defineProperties: __webpack_require__(258) });\n\n\n/***/ }),\n/* 476 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar objectKeys = __webpack_require__(273);\nvar isArguments = __webpack_require__(478);\nvar is = __webpack_require__(483);\nvar isRegex = __webpack_require__(485);\nvar flags = __webpack_require__(486);\nvar isDate = __webpack_require__(488);\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n  var opts = options || {};\n\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (opts.strict ? is(actual, expected) : actual === expected) {\n    return true;\n  }\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n  if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n    return opts.strict ? is(actual, expected) : actual == expected;\n  }\n\n  /*\n   * 7.4. For all other Object pairs, including Array objects, equivalence is\n   * determined by having the same number of owned properties (as verified\n   * with Object.prototype.hasOwnProperty.call), the same set of keys\n   * (although not necessarily the same order), equivalent values for every\n   * corresponding key, and an identical 'prototype' property. Note: this\n   * accounts for both named and indexed properties on Arrays.\n   */\n  // eslint-disable-next-line no-use-before-define\n  return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n    return false;\n  }\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') {\n    return false;\n  }\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  /* eslint max-statements: [2, 50] */\n  var i, key;\n  if (typeof a !== typeof b) { return false; }\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) { return false; }\n\n  if (isArguments(a) !== isArguments(b)) { return false; }\n\n  var aIsRegex = isRegex(a);\n  var bIsRegex = isRegex(b);\n  if (aIsRegex !== bIsRegex) { return false; }\n  if (aIsRegex || bIsRegex) {\n    return a.source === b.source && flags(a) === flags(b);\n  }\n\n  if (isDate(a) && isDate(b)) {\n    return getTime.call(a) === getTime.call(b);\n  }\n\n  var aIsBuffer = isBuffer(a);\n  var bIsBuffer = isBuffer(b);\n  if (aIsBuffer !== bIsBuffer) { return false; }\n  if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n    if (a.length !== b.length) { return false; }\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) { return false; }\n    }\n    return true;\n  }\n\n  if (typeof a !== typeof b) { return false; }\n\n  try {\n    var ka = objectKeys(a);\n    var kb = objectKeys(b);\n  } catch (e) { // happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates hasOwnProperty)\n  if (ka.length !== kb.length) { return false; }\n\n  // the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  // ~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i]) { return false; }\n  }\n  // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) { return false; }\n  }\n\n  return true;\n}\n\nmodule.exports = deepEqual;\n\n\n/***/ }),\n/* 477 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __webpack_require__(274); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 478 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar callBound = __webpack_require__(479);\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n\n\n/***/ }),\n/* 479 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(275);\n\nvar callBind = __webpack_require__(194);\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n/***/ }),\n/* 480 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 481 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slice.call(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                args.concat(slice.call(arguments))\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        } else {\n            return target.apply(\n                that,\n                args.concat(slice.call(arguments))\n            );\n        }\n    };\n\n    var boundLength = Math.max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs.push('$' + i);\n    }\n\n    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n\n\n/***/ }),\n/* 482 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(193);\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n\n/***/ }),\n/* 483 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(108);\nvar callBind = __webpack_require__(194);\n\nvar implementation = __webpack_require__(277);\nvar getPolyfill = __webpack_require__(278);\nvar shim = __webpack_require__(484);\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n\n\n/***/ }),\n/* 484 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getPolyfill = __webpack_require__(278);\nvar define = __webpack_require__(108);\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 485 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasSymbols = __webpack_require__(276)();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar hasOwnProperty;\nvar regexExec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\tregexExec = Function.call.bind(RegExp.prototype.exec);\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar toStr = Object.prototype.toString;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\tregexExec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn toStr.call(value) === regexClass;\n\t};\n\n\n/***/ }),\n/* 486 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(108);\nvar callBind = __webpack_require__(194);\n\nvar implementation = __webpack_require__(279);\nvar getPolyfill = __webpack_require__(280);\nvar shim = __webpack_require__(487);\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n\n\n/***/ }),\n/* 487 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar supportsDescriptors = __webpack_require__(108).supportsDescriptors;\nvar getPolyfill = __webpack_require__(280);\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 488 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n\n/***/ }),\n/* 489 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(490), __esModule: true };\n\n/***/ }),\n/* 490 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(491);\nmodule.exports = __webpack_require__(7).Object.assign;\n\n\n/***/ }),\n/* 491 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(9);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(492) });\n\n\n/***/ }),\n/* 492 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = __webpack_require__(23);\nvar getKeys = __webpack_require__(105);\nvar gOPS = __webpack_require__(189);\nvar pIE = __webpack_require__(128);\nvar toObject = __webpack_require__(90);\nvar IObject = __webpack_require__(173);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(52)(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n\n\n/***/ }),\n/* 493 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(494), __esModule: true };\n\n/***/ }),\n/* 494 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(495);\nmodule.exports = __webpack_require__(7).String.fromCodePoint;\n\n\n/***/ }),\n/* 495 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(9);\nvar toAbsoluteIndex = __webpack_require__(260);\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  // 21.1.2.2 String.fromCodePoint(...codePoints)\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n      );\n    } return res.join('');\n  }\n});\n\n\n/***/ }),\n/* 496 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(497), __esModule: true };\n\n/***/ }),\n/* 497 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(91);\n__webpack_require__(498);\nmodule.exports = __webpack_require__(7).Array.from;\n\n\n/***/ }),\n/* 498 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(32);\nvar $export = __webpack_require__(9);\nvar toObject = __webpack_require__(90);\nvar call = __webpack_require__(266);\nvar isArrayIter = __webpack_require__(267);\nvar toLength = __webpack_require__(130);\nvar createProperty = __webpack_require__(499);\nvar getIterFn = __webpack_require__(184);\n\n$export($export.S + $export.F * !__webpack_require__(281)(function (iter) { Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n/***/ }),\n/* 499 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(26);\nvar createDesc = __webpack_require__(100);\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n\n/***/ }),\n/* 500 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(501), __esModule: true };\n\n/***/ }),\n/* 501 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(133);\n__webpack_require__(91);\n__webpack_require__(102);\n__webpack_require__(502);\n__webpack_require__(503);\n__webpack_require__(504);\n__webpack_require__(505);\nmodule.exports = __webpack_require__(7).Set;\n\n\n/***/ }),\n/* 502 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar strong = __webpack_require__(265);\nvar validate = __webpack_require__(192);\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = __webpack_require__(269)(SET, function (get) {\n  return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.2.3.1 Set.prototype.add(value)\n  add: function add(value) {\n    return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n  }\n}, strong);\n\n\n/***/ }),\n/* 503 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = __webpack_require__(9);\n\n$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(270)('Set') });\n\n\n/***/ }),\n/* 504 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n__webpack_require__(271)('Set');\n\n\n/***/ }),\n/* 505 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n__webpack_require__(272)('Set');\n\n\n/***/ }),\n/* 506 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(507);\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _unicodeTrie = _interopRequireDefault(__webpack_require__(508));\n\nvar _base64Js = _interopRequireDefault(__webpack_require__(510));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar categories = [\"Cc\", \"Zs\", \"Po\", \"Sc\", \"Ps\", \"Pe\", \"Sm\", \"Pd\", \"Nd\", \"Lu\", \"Sk\", \"Pc\", \"Ll\", \"So\", \"Lo\", \"Pi\", \"Cf\", \"No\", \"Pf\", \"Lt\", \"Lm\", \"Mn\", \"Me\", \"Mc\", \"Nl\", \"Zl\", \"Zp\", \"Cs\", \"Co\"];\nvar combiningClasses = [\"Not_Reordered\", \"Above\", \"Above_Right\", \"Below\", \"Attached_Above_Right\", \"Attached_Below\", \"Overlay\", \"Iota_Subscript\", \"Double_Below\", \"Double_Above\", \"Below_Right\", \"Above_Left\", \"CCC10\", \"CCC11\", \"CCC12\", \"CCC13\", \"CCC14\", \"CCC15\", \"CCC16\", \"CCC17\", \"CCC18\", \"CCC19\", \"CCC20\", \"CCC21\", \"CCC22\", \"CCC23\", \"CCC24\", \"CCC25\", \"CCC30\", \"CCC31\", \"CCC32\", \"CCC27\", \"CCC28\", \"CCC29\", \"CCC33\", \"CCC34\", \"CCC35\", \"CCC36\", \"Nukta\", \"Virama\", \"CCC84\", \"CCC91\", \"CCC103\", \"CCC107\", \"CCC118\", \"CCC122\", \"CCC129\", \"CCC130\", \"CCC132\", \"Attached_Above\", \"Below_Left\", \"Left\", \"Kana_Voicing\", \"CCC26\", \"Right\"];\nvar scripts = [\"Common\", \"Latin\", \"Bopomofo\", \"Inherited\", \"Greek\", \"Coptic\", \"Cyrillic\", \"Armenian\", \"Hebrew\", \"Arabic\", \"Syriac\", \"Thaana\", \"Nko\", \"Samaritan\", \"Mandaic\", \"Devanagari\", \"Bengali\", \"Gurmukhi\", \"Gujarati\", \"Oriya\", \"Tamil\", \"Telugu\", \"Kannada\", \"Malayalam\", \"Sinhala\", \"Thai\", \"Lao\", \"Tibetan\", \"Myanmar\", \"Georgian\", \"Hangul\", \"Ethiopic\", \"Cherokee\", \"Canadian_Aboriginal\", \"Ogham\", \"Runic\", \"Tagalog\", \"Hanunoo\", \"Buhid\", \"Tagbanwa\", \"Khmer\", \"Mongolian\", \"Limbu\", \"Tai_Le\", \"New_Tai_Lue\", \"Buginese\", \"Tai_Tham\", \"Balinese\", \"Sundanese\", \"Batak\", \"Lepcha\", \"Ol_Chiki\", \"Braille\", \"Glagolitic\", \"Tifinagh\", \"Han\", \"Hiragana\", \"Katakana\", \"Yi\", \"Lisu\", \"Vai\", \"Bamum\", \"Syloti_Nagri\", \"Phags_Pa\", \"Saurashtra\", \"Kayah_Li\", \"Rejang\", \"Javanese\", \"Cham\", \"Tai_Viet\", \"Meetei_Mayek\", \"null\", \"Linear_B\", \"Lycian\", \"Carian\", \"Old_Italic\", \"Gothic\", \"Old_Permic\", \"Ugaritic\", \"Old_Persian\", \"Deseret\", \"Shavian\", \"Osmanya\", \"Osage\", \"Elbasan\", \"Caucasian_Albanian\", \"Linear_A\", \"Cypriot\", \"Imperial_Aramaic\", \"Palmyrene\", \"Nabataean\", \"Hatran\", \"Phoenician\", \"Lydian\", \"Meroitic_Hieroglyphs\", \"Meroitic_Cursive\", \"Kharoshthi\", \"Old_South_Arabian\", \"Old_North_Arabian\", \"Manichaean\", \"Avestan\", \"Inscriptional_Parthian\", \"Inscriptional_Pahlavi\", \"Psalter_Pahlavi\", \"Old_Turkic\", \"Old_Hungarian\", \"Hanifi_Rohingya\", \"Old_Sogdian\", \"Sogdian\", \"Elymaic\", \"Brahmi\", \"Kaithi\", \"Sora_Sompeng\", \"Chakma\", \"Mahajani\", \"Sharada\", \"Khojki\", \"Multani\", \"Khudawadi\", \"Grantha\", \"Newa\", \"Tirhuta\", \"Siddham\", \"Modi\", \"Takri\", \"Ahom\", \"Dogra\", \"Warang_Citi\", \"Nandinagari\", \"Zanabazar_Square\", \"Soyombo\", \"Pau_Cin_Hau\", \"Bhaiksuki\", \"Marchen\", \"Masaram_Gondi\", \"Gunjala_Gondi\", \"Makasar\", \"Cuneiform\", \"Egyptian_Hieroglyphs\", \"Anatolian_Hieroglyphs\", \"Mro\", \"Bassa_Vah\", \"Pahawh_Hmong\", \"Medefaidrin\", \"Miao\", \"Tangut\", \"Nushu\", \"Duployan\", \"SignWriting\", \"Nyiakeng_Puachue_Hmong\", \"Wancho\", \"Mende_Kikakui\", \"Adlam\"];\nvar eaw = [\"N\", \"Na\", \"A\", \"W\", \"H\", \"F\"];\nvar data = {\n  categories: categories,\n  combiningClasses: combiningClasses,\n  scripts: scripts,\n  eaw: eaw\n};\nvar data$1 = \"AAARAAAAAADwfAEAZXl5ONRt+/5bPVFZimRfKoTQJNm37CGE7Iw0j3UsTWKsoyI7kwyyTiEUzSD7NiEzhWYijH0wMVkHE4Mx49fzfo+3nuP4/fdZjvv+XNd5n/d9nef1WZvmKhTxiZndzDQBSEYQqxqKwnsKvGQucFh+6t6cJ792ePQBZv5S9yXSwkyjf/P4T7mTNnIAv1dOVhMlR9lflbUL9JeJguqsjvG9NTj/wLb566VAURnLo2vvRi89S3gW/33ihh2eXpDn40BIW7REl/7coRKIhAFlAiOtbLDTt6mMb4GzMF1gNnvX/sBxtbsAIjfztCNcQjcNDtLThRvuXu5M5g/CBjaLBE4lJm4qy/oZD97+IJryApcXfgWYlkvWbhfXgujOJKVu8B+ozqTLbxyJ5kNiR75CxDqfBM9eOlDMmGeoZ0iQbbS5VUplIwI+ZNXEKQVJxlwqjhOY7w3XwPesbLK5JZE+Tt4X8q8km0dzInsPPzbscrjBMVjF5mOHSeRdJVgKUjLTHiHqXSPkep8N/zFk8167KLp75f6RndkvzdfB6Uz3MmqvRArzdCbs1/iRZjYPLLF3U8Qs+H+Rb8iK51a6NIV2V9+07uJsTGFWpPz8J++7iRu2B6eAKlK/kujrLthwaD/7a6J5w90TusnH1JMAc+gNrql4aspOUG/RrsxUKmPzhHgP4Bleru+6Vfc/MBjgXVx7who94nPn7MPFrnwQP7g0k0Dq0h2GSKO6fTZ8nLodN1SiOUj/5EL/Xo1DBvRm0wmrh3x6phcJ20/9CuMr5h8WPqXMSasLoLHoufTmE7mzYrs6B0dY7KjuCogKqsvxnxAwXWvd9Puc9PnE8DOHT2INHxRlIyVHrqZahtfV2E/A2PDdtA3ewlRHMtFIBKO/T4IozWTQZ+mb+gdKuk/ZHrqloucKdsOSJmlWTSntWjcxVMjUmroXLM10I6TwDLnBq4LP69TxgVeyGsd8yHvhF8ydPlrNRSNs9EP7WmeuSE7Lu10JbOuQcJw/63sDp68wB9iwP5AO+mBpV0R5VDDeyQUFCel1G+4KHBgEVFS0YK+m2sXLWLuGTlkVAd97WwKKdacjWElRCuDRauf33l/yVcDF6sVPKeTes99FC1NpNWcpieGSV/IbO8PCTy5pbUR1U8lxzf4T+y6fZMxOz3LshkQLeeDSd0WmUrQgajmbktrxsb2AZ0ACw2Vgni+gV/m+KvCRWLg08Clx7uhql+v9XySGcjjOHlsp8vBw/e8HS7dtiqF6T/XcSXuaMW66GF1g4q9YyBadHqy3Y5jin1c7yZos6BBr6dsomSHxiUHanYtcYQwnMMZhRhOnaYJeyJzaRuukyCUh48+e/BUvk/aEfDp8ag+jD64BHxNnQ5v/E7WRk7eLjGV13I3oqy45YNONi/1op1oDr7rPjkhPsTXgUpQtGDPlIs55KhQaic9kSGs/UrZ2QKQOflB8MTEQxRF9pullToWO7Eplan6mcMRFnUu2441yxi23x+KqKlr7RWWsi9ZXMWlr8vfP3llk1m2PRj0yudccxBuoa7VfIgRmnFPGX6Pm1WIfMm/Rm4n/xTn8IGqA0GWuqgu48pEUO0U9nN+ZdIvFpPb7VDPphIfRZxznlHeVFebkd9l+raXy9BpTMcIUIvBfgHEb6ndGo8VUkxpief14KjzFOcaANfgvFpvyY8lE8lE4raHizLpluPzMks1hx/e1Hok5yV0p7qQH7GaYeMzzZTFvRpv6k6iaJ4yNqzBvN8J7B430h2wFm1IBPcqbou33G7/NWPgopl4Mllla6e24L3TOTVNkza2zv3QKuDWTeDpClCEYgTQ+5vEBSQZs/rMF50+sm4jofTgWLqgX1x3TkrDEVaRqfY/xZizFZ3Y8/DFEFD31VSfBQ5raEB6nHnZh6ddehtclQJ8fBrldyIh99LNnV32HzKEej04hk6SYjdauCa4aYW0ru/QxvQRGzLKOAQszf3ixJypTW3WWL6BLSF2EMCMIw7OUvWBC6A/gDc2D1jvBapMCc7ztx6jYczwTKsRLL6dMNXb83HS8kdD0pTMMj161zbVHkU0mhSHo9SlBDDXdN6hDvRGizmohtIyR3ot8tF5iUG4GLNcXeGvBudSFrHu+bVZb9jirNVG+rQPI51A7Hu8/b0UeaIaZ4UgDO68PkYx3PE2HWpKapJ764Kxt5TFYpywMy4DLQqVRy11I7SOLhxUFmqiEK52NaijWArIfCg6qG8q5eSiwRCJb1R7GDJG74TrYgx/lVq7w9++Kh929xSJEaoSse5fUOQg9nMAnIZv+7fwVRcNv3gOHI46Vb5jYUC66PYHO6lS+TOmvEQjuYmx4RkffYGxqZIp/DPWNHAixbRBc+XKE3JEOgs4jIwu/dSAwhydruOGF39co91aTs85JJ3Z/LpXoF43hUwJsb/M1Chzdn8HX8vLXnqWUKvRhNLpfAF4PTFqva1sBQG0J+59HyYfmQ3oa4/sxZdapVLlo/fooxSXi/dOEQWIWq8E0FkttEyTFXR2aNMPINMIzZwCNEheYTVltsdaLkMyKoEUluPNAYCM2IG3br0DLy0fVNWKHtbSKbBjfiw7Lu06gQFalC7RC9BwRMSpLYDUo9pDtDfzwUiPJKLJ2LGcSphWBadOI/iJjNqUHV7ucG8yC6+iNM9QYElqBR7ECFXrcTgWQ3eG/tCWacT9bxIkfmxPmi3vOd36KxihAJA73vWNJ+Y9oapXNscVSVqS5g15xOWND/WuUCcA9YAAg6WFbjHamrblZ5c0L6Zx1X58ZittGcfDKU697QRSqW/g+RofNRyvrWMrBn44cPvkRe2HdTu/Cq01C5/riWPHZyXPKHuSDDdW8c1XPgd6ogvLh20qEIu8c19sqr4ufyHrwh37ZN5MkvY1dsGmEz9pUBTxWrvvhNyODyX2Q1k/fbX/T/vbHNcBrmjgDtvBdtZrVtiIg5iXQuzO/DEMvRX8Mi1zymSlt92BGILeKItjoShJXE/H7xwnf0Iewb8BFieJ9MflEBCQYEDm8eZniiEPfGoaYiiEdhQxHQNr2AuRdmbL9mcl18Kumh+HEZLp6z+j35ML9zTbUwahUZCyQQOgQrGfdfQtaR/OYJ/9dYXb2TWZFMijfCA8Nov4sa5FFDUe1T68h4q08WDE7JbbDiej4utRMR9ontevxlXv6LuJTXt1YEv8bDzEt683PuSsIN0afvu0rcBu9AbXZbkOG3K3AhtqQ28N23lXm7S3Yn6KXmAhBhz+GeorJJ4XxO/b3vZk2LXp42+QvsVxGSNVpfSctIFMTR1bD9t70i6sfNF3WKz/uKDEDCpzzztwhL45lsw89H2IpWN10sXHRlhDse9KCdpP5qNNpU84cTY+aiqswqR8XZ9ea0KbVRwRuOGQU3csAtV2fSbnq47U6es6rKlWLWhg3s/B9C9g+oTyp6RtIldR51OOkP5/6nSy6itUVPcMNOp4M/hDdKOz3uK6srbdxOrc2cJgr1Sg02oBxxSky6V7JaG+ziNwlfqnjnvh2/uq1lKfbp+qpwq/D/5OI5gkFl5CejKGxfc2YVJfGqc4E0x5e9PHK2ukbHNI7/RZV6LNe65apbTGjoCaQls0txPPbmQbCQn+/upCoXRZy9yzorWJvZ0KWcbXlBxU/d5I4ERUTxMuVWhSMmF677LNN7NnLwsmKawXkCgbrpcluOl0WChR1qhtSrxGXHu251dEItYhYX3snvn1gS2uXuzdTxCJjZtjsip0iT2sDC0qMS7Bk9su2NyXjFK5/f5ZoWwofg3DtTyjaFqspnOOTSh8xK/CKUFS57guVEkw9xoQuRCwwEO9Lu9z2vYxSa9NFV8DvSxv2C4WYLYF8Nrc4DzWkzNsk81JJOlZ/LYJrGCoj4MmZpnf3AXmzxT4rtl9jsqljEyedz468SGKdBiQzyz/qWKEhFg45ZczlZZ3KGL3l6sn+3TTa3zMVMhPa1obGp/z+fvY0QXTrJTf1XAT3EtQdUfYYlmWZyvPZ/6rWwU7UOQei7pVE0osgN94Iy+T1+omE6z4Rh2O20FjgBeK2y1mcoFiMDOJvuZPn5Moy9fmFH3wyfKvn4+TwfLvt/lHTTVnvrtoUWRBiQXhiNM8nE6ZoWeux/Z0b2unRcdUzdDpmL7CAgd1ToRXwgmHTZOgiGtVT+xr1QH9ObebRTT4NzL+XSpLuuWp62GqQvJVTPoZOeJCb6gIwd9XHMftQ+Kc08IKKdKQANSJ1a2gve3JdRhO0+tNiYzWAZfd7isoeBu67W7xuK8WX7nhJURld98Inb0t/dWOSau/kDvV4DJo/cImw9AO2Gvq0F2n0M7yIZKL8amMbjYld+qFls7hq8Acvq97K2PrCaomuUiesu7qNanGupEl6J/iem8lyr/NMnsTr6o41PO0yhQh3hPFN0wJP7S830je9iTBLzUNgYH+gUZpROo3rN2qgCI+6GewpX8w8CH+ro6QrWiStqmcMzVa3vEel+3/dDxMp0rDv1Q6wTMS3K64zTT6RWzK1y643im25Ja7X2ePCV2mTswd/4jshZPo4bLnerqIosq/hy2bKUAmVn9n4oun1+a0DIZ56UhVwmZHdUNpLa8gmPvxS1eNvCF1T0wo1wKPdCJi0qOrWz7oYRTzgTtkzEzZn308XSLwUog4OWGKJzCn/3FfF9iA32dZHSv30pRCM3KBY9WZoRhtdK/ChHk6DEQBsfV6tN2o1Cn0mLtPBfnkS+qy1L2xfFe9TQPtDE1Be44RTl82E9hPT2rS2+93LFbzhQQO3C/hD2jRFH3BWWbasAfuMhRJFcTri73eE835y016s22DjoFJ862WvLj69fu2TgSF3RHia9D5DSitlQAXYCnbdqjPkR287Lh6dCHDapos+eFDvcZPP2edPmTFxznJE/EBLoQQ0Qmn9EkZOyJmHxMbvKYb8o21ZHmv5YLqgsEPk9gWZwYQY9wLqGXuax/8QlV5qDaPbq9pLPT1yp+zOWKmraEy1OUJI7zdEcEmvBpbdwLrDCgEb2xX8S/nxZgjK4bRi+pbOmbh8bEeoPvU/L9ndx9kntlDALbdAvp0O8ZC3zSUnFg4cePsw7jxewWvL7HRSBLUn6J7vTH9uld5N76JFPgBCdXGF221oEJk++XfRwXplLSyrVO7HFWBEs99nTazKveW3HpbD4dH/YmdAl+lwbSt8BQWyTG7jAsACI7bPPUU9hI9XUHWqQOuezHzUjnx5Qqs6T1qNHfTTHleDtmqK7flA9a0gz2nycIpz1FHBuWxKNtUeTdqP29Fb3tv+tl5JyBqXoR+vCsdzZwZUhf6Lu8bvkB9yQP4x7GGegB0ym0Lpl03Q7e+C0cDsm9GSDepCDji7nUslLyYyluPfvLyKaDSX4xpR+nVYQjQQn5F8KbY1gbIVLiK1J3mW90zTyR1bqApX2BlWh7KG8LAY9/S9nWC0XXh9pZZo6xuir12T43rkaGfQssbQyIslA7uJnSHOV22NhlNtUo0czxPAsXhh8tIQYaTM4l/yAlZlydTcXhlG22Gs/n3BxKBd/3ZjYwg3NaUurVXhNB+afVnFfNr9TbC9ksNdvwpNfeHanyJ8M6GrIVfLlYAPv0ILe4dn0Z+BJSbJkN7eZY/c6+6ttDYcIDeUKIDXqUSE42Xdh5nRbuaObozjht0HJ5H1e+em+NJi/+8kQlyjCbJpPckwThZeIF9/u7lrVIKNeJLCN/TpPAeXxvd31/CUDWHK9MuP1V1TJgngzi4V0qzS3SW3Qy5UiGHqg02wQa5tsEl9s/X9nNMosgLlUgZSfCBj1DiypLfhr9/r0nR0XY2tmhDOcUS4E7cqa4EJBhzqvpbZa35Q5Iz5EqmhYiOGDAYk606Tv74+KGfPjKVuP15rIzgW0I7/niOu9el/sn2bRye0gV+GrePDRDMHjwO1lEdeXH8N+UTO3IoN18kpI3tPxz+fY+n2MGMSGFHAx/83tKeJOl+2i+f1O9v6FfEDBbqrw+lpM8Anav7zHNr7hE78nXUtPNodMbCnITWA7Ma/IHlZ50F9hWge/wzOvSbtqFVFtkS8Of2nssjZwbSFdU+VO8z6tCEc9UA9ACxT5zIUeSrkBB/v1krOpm7bVMrGxEKfI6LcnpB4D8bvn2hDKGqKrJaVAJuDaBEY3F7eXyqnFWlOoFV/8ZLspZiZd7orXLhd4mhHQgbuKbHjJWUzrnm0Dxw/LJLzXCkh7slMxKo8uxZIWZfdKHlfI7uj3LP6ARAuWdF7ZmZ7daOKqKGbz5LxOggTgS39oEioYmrqkCeUDvbxkBYKeHhcLmMN8dMF01ZMb32IpL/cH8R7VHQSI5I0YfL14g9d7P/6cjB1JXXxbozEDbsrPdmL8ph7QW10jio+v7YsqHKQ6xrBbOVtxU0/nFfzUGZwIBLwyUvg49ii+54nv9FyECBpURnQK4Ox6N7lw5fsjdd5l/2SwBcAHMJoyjO1Pifye2dagaOwCVMqdJWAo77pvBe0zdJcTWu5fdzPNfV2p1pc7/JKQ8zhKkwsOELUDhXygPJ5oR8Vpk2lsCen3D3QOQp2zdrSZHjVBstDF/wWO98rrkQ6/7zt/Drip7OHIug1lomNdmRaHRrjmqeodn22sesQQPgzimPOMqC60a5+i/UYh51uZm+ijWkkaI2xjrBO2558DZNZMiuDQlaVAvBy2wLn/bR3FrNzfnO/9oDztYqxZrr7JMIhqmrochbqmQnKowxW29bpqTaJu7kW1VotC72QkYX8OoDDdMDwV1kJRk3mufgJBzf+iwFRJ7XWQwO5ujVglgFgHtycWiMLx5N+6XU+TulLabWjOzoao03fniUW0xvIJNPbk7CQlFZd/RCOPvgQbLjh5ITE8NVJeKt3HGr6JTnFdIzcVOlEtwqbIIX0IM7saC+4N5047MTJ9+Wn11EhyEPIlwsHE5utCeXRjQzlrR+R1Cf/qDzcNbqLXdk3J7gQ39VUrrEkS/VMWjjg+t2oYrqB0tUZClcUF6+LBC3EQ7KnGIwm/qjZX4GKPtjTX1zQKV6nPAb2t/Rza5IqKRf8i2DFEhV/YSifX0YwsiF6TQnp48Gr65TFq0zUe6LGjiY7fq0LSGKL1VnC6ESI2yxvt3XqBx53B3gSlGFeJcPbUbonW1E9E9m4NfuwPh+t5QjRxX34lvBPVxwQd7aeTd+r9dw5CiP1pt8wMZoMdni7GapYdo6KPgeQKcmlFfq4UYhvV0IBgeiR3RnTMBaqDqpZrTRyLdsp4l0IXZTdErfH0sN3dqBG5vRIx3VgCYcHmmkqJ8Hyu3s9K9uBD1d8cZUEx3qYcF5vsqeRpF1GOg8emeWM2OmBlWPdZ6qAXwm3nENFyh+kvXk132PfWAlN0kb7yh4fz2T7VWUY/hEXX5DvxGABC03XRpyOG8t/u3Gh5tZdpsSV9AWaxJN7zwhVglgII1gV28tUViyqn4UMdIh5t+Ea2zo7PO48oba0TwQbiSZOH4YhD578kPF3reuaP7LujPMsjHmaDuId9XEaZBCJhbXJbRg5VCk3KJpryH/+8S3wdhR47pdFcmpZG2p0Bpjp/VbvalgIZMllYX5L31aMPdt1J7r/7wbixt0Mnz2ZvNGTARHPVD+2O1D8SGpWXlVnP2ekgon55YiinADDynyaXtZDXueVqbuTi8z8cHHK325pgqM+mWZwzHeEreMvhZopAScXM14SJHpGwZyRljMlDvcMm9FZ/1e9+r/puOnpXOtc9Iu2fmgBfEP9cGW1Fzb1rGlfJ08pACtq1ZW18bf2cevebzVeHbaA50G9qoUp39JWdPHbYkPCRXjt4gzlq3Cxge28Mky8MoS/+On72kc+ZI2xBtgJytpAQHQ1zrEddMIVyR5urX6yBNu8v5lKC8eLdGKTJtbgIZ3ZyTzSfWmx9f+cvcJe8yM39K/djkp2aUTE/9m2Lj5jg7b8vdRAer7DO3SyLNHs1CAm5x5iAdh2yGJYivArZbCBNY88Tw+w+C1Tbt7wK3zl2rzTHo/D8/gb3c3mYrnEIEipYqPUcdWjnTsSw471O3EUN7Gtg4NOAs9PJrxm03VuZKa5xwXAYCjt7Gs01Km6T2DhOYUMoFcCSu7Hk1p3yP1eG+M3v3Q5luAze6WwBnZIYO0TCucPWK+UJ36KoJ8Y+vpavhLO8g5ed704IjlQdfemrMu//EvPYXTQSGIPPfiagJS9nMqP5IvkxN9pvuJz7h8carPXTKMq8jnTeL0STan6dnLTAqwIswcIwWDR2KwbGddAVN8SYWRB7kfBfBRkSXzvHlIF8D6jo64kUzYk5o/n8oLjKqat0rdXvQ86MkwQGMnnlcasqPPT2+mVtUGb32KuH6cyZQenrRG11TArcAl27+nvOMBDe++EKHf4YdyGf7mznzOz33cFFGEcv329p4qG2hoaQ8ULiMyVz6ENcxhoqGnFIdupcn7GICQWuw3yO3W8S33mzCcMYJ8ywc7U7rmaQf/W5K63Gr4bVTpXOyOp4tbaPyIaatBNpXqlmQUTSZXjxPr19+73PSaT+QnI35YsWn6WpfJjRtK8vlJZoTSgjaRU39AGCkWOZtifJrnefCrqwTKDFmuWUCukEsYcRrMzCoit28wYpP7kSVjMD8WJYQiNc2blMjuqYegmf6SsfC1jqz8XzghMlOX+gn/MKZmgljszrmehEa4V98VreJDxYvHr3j7IeJB9/sBZV41BWT/AZAjuC5XorlIPnZgBAniBEhanp0/0+qZmEWDpu8ige1hUPIyTo6T6gDEcFhWSoduNh8YSu65KgMOGBw7VlNYzNIgwHtq9KP2yyTVysqX5v12sf7D+vQUdR2dRDvCV40rIInXSLWT/yrC6ExOQxBJwIDbeZcl3z1yR5Rj3l8IGpxspapnvBL+fwupA3b6fkFceID9wgiM1ILB0cHVdvo/R4xg8yqKXT8efl0GnGX1/27FUYeUW2L/GNRGGWVGp3i91oaJkb4rybENHre9a2P5viz/yqk8ngWUUS+Kv+fu+9BLFnfLiLXOFcIeBJLhnayCiuDRSqcx0Qu68gVsGYc6EHD500Fkt+gpDj6gvr884n8wZ5o6q7xtL5wA0beXQnffWYkZrs2NGIRgQbsc5NB302SVx+R4ROvmgZaR8wBcji128BMfJ9kcvJ4DC+bQ57kRmv5yxgU4ngZfn0/JNZ8JBwxjTqS+s9kjJFG1unGUGLwMiIuXUD9EFhNIJuyCEAmVZSIGKH4G6v1gRR1LyzQKH2ZqiI1DnHMoDEZspbDjTeaFIAbSvjSq3A+n46y9hhVM8wIpnARSXyzmOD96d9UXvFroSPgGw1dq2vdEqDq9fJN1EbL2WulNmHkFDvxSO9ZT/RX/Bw2gA/BrF90XrJACereVfbV/YXaKfp77Nmx5NjEIUlxojsy7iN7nBHSZigfsbFyVOX1ZTeCCxvqnRSExP4lk5ZeYlRu9caaa743TWNdchRIhEWwadsBIe245C8clpaZ4zrPsk+OwXzxWCvRRumyNSLW5KWaSJyJU95cwheK76gr7228spZ3hmTtLyrfM2QRFqZFMR8/Q6yWfVgwTdfX2Ry4w3+eAO/5VT5nFb5NlzXPvBEAWrNZ6Q3jbH0RF4vcbp+fDngf/ywpoyNQtjrfvcq93AVb1RDWRghvyqgI2BkMr1rwYi8gizZ0G9GmPpMeqPerAQ0dJbzx+KAFM4IBq6iSLpZHUroeyfd9o5o+4fR2EtsZBoJORQEA4SW0CmeXSnblx2e9QkCHIodyqV6+g5ETEpZsLqnd/Na60EKPX/tQpPEcO+COIBPcQdszDzSiHGyQFPly/7KciUh1u+mFfxTCHGv9nn2WqndGgeGjQ/kr02qmTBX7Hc1qiEvgiSz1Tz/sy7Es29wvn6FrDGPP7asXlhOaiHxOctPvTptFA1kHFUk8bME7SsTSnGbFbUrssxrq70LhoSh5OwvQna+w84XdXhZb2sloJ4ZsCg3j+PrjJL08/JBi5zGd6ud/ZxhmcGKLOXPcNunQq5ESW92iJvfsuRrNYtawWwSmNhPYoFj2QqWNF0ffLpGt/ad24RJ8vkb5sXkpyKXmvFG5Vcdzf/44k3PBL/ojJ52+kWGzOArnyp5f969oV3J2c4Li27Nkova9VwRNVKqN0V+gV+mTHitgkXV30aWd3A1RSildEleiNPA+5cp+3+T7X+xfHiRZXQ1s4FA9TxIcnveQs9JSZ5r5qNmgqlW4zMtZ6rYNvgmyVcywKtu8ZxnSbS5vXlBV+NXdIfi3+xzrnJ0TkFL+Un8v1PWOC2PPFCjVPq7qTH7mOpzOYj/b4h0ceT+eHgr97Jqhb1ziVfeANzfN8bFUhPKBi7hJBCukQnB0aGjFTYLJPXL26lQ2b80xrOD5cFWgA8hz3St0e69kwNnD3+nX3gy12FjrjO+ddRvvvfyV3SWbXcxqNHfmsb9u1TV+wHTb9B07/L2sB8WUHJ9eeNomDyysEWZ0deqEhH/oWI2oiEh526gvAK1Nx2kIhNvkYR+tPYHEa9j+nd1VBpQP1uzSjIDO+fDDB7uy029rRjDC5Sk6aKczyz1D5uA9Lu+Rrrapl8JXNL3VRllNQH2K1ZFxOpX8LprttfqQ56MbPM0IttUheXWD/mROOeFqGUbL+kUOVlXLTFX/525g4faLEFO4qWWdmOXMNvVjpIVTWt650HfQjX9oT3Dg5Au6+v1/Ci78La6ZOngYCFPT1AUwxQuZ0yt5xKdNXLaDTISMTeCj16XTryhM36K2mfGRIgot71voWs8tTpL/f1rvcwv3LSDf+/G8THCT7NpfHWcW+lsF/ol8q9Bi6MezNTqp0rpp/kJRiVfNrX/w27cRRTu8RIIqtUblBMkxy4jwAVqCjUJkiPBj2cAoVloG8B2/N5deLdMhDb7xs5nhd3dubJhuj8WbaFRyu1L678DHhhA+rMimNo4C1kGpp0tD/qnCfCFHejpf0LJX43OTr578PY0tnIIrlWyNYyuR/ie6j2xNb1OV6u0dOX/1Dtcd7+ya9W+rY2LmnyQMtk8SMLTon8RAdwOaN2tNg5zVnDKlmVeOxPV2vhHIo9QEPV7jc3f+zVDquiNg1OaHX3cZXJDRY5MJpo+VanAcmqp4oasYLG+wrXUL5vJU0kqk2hGEskhP+Jjigrz1l6QnEwp6n8PMVeJp70Ii6ppeaK9GhF6fJE00ceLyxv08tKiPat4QdxZFgSbQknnEiCLD8Qc1rjazVKM3r3gXnnMeONgdz/yFV1q+haaN+wnF3Fn4uYCI9XsKOuVwDD0LsCO/f0gj5cmxCFcr7sclIcefWjvore+3aSU474cyqDVxH7w1RX3CHsaqsMRX17ZLgjsDXws3kLm2XJdM3Ku383UXqaHqsywzPhx7NFir0Fqjym/w6cxD2U9ypa3dx7Z12w/fi3Jps8sqJ8f8Ah8aZAvkHXvIRyrsxK7rrFaNNdNvjI8+3Emri195DCNa858anj2Qdny6Czshkn4N2+1m+k5S8sunX3Ja7I+JutRzg1mc2e9Yc0Zv9PZn1SwhxIdU9sXwZRTd/J5FoUm0e+PYREeHg3oc2YYzGf2xfJxXExt4pT3RfDRHvMXLUmoXOy63xv5pLuhOEax0dRgSywZ/GH+YBXFgCeTU0hZ8SPEFsn8punp1Kurd1KgXxUZ+la3R5+4ePGR4ZF5UQtOa83+Vj8zh80dfzbhxWCeoJnQ4dkZJM4drzknZOOKx2n3WrvJnzFIS8p0xeic+M3ZRVXIp10tV2DyYKwRxLzulPwzHcLlYTxl4PF7v8l106Azr+6wBFejbq/3P72C/0j78cepY9990/d4eAurn2lqdGKLU8FffnMw7cY7pVeXJRMU73Oxwi2g2vh/+4gX8dvbjfojn/eLVhhYl8GthwCQ50KcZq4z2JeW5eeOnJWFQEnVxDoG459TaC4zXybECEoJ0V5q1tXrQbDMtUxeTV6Pdt1/zJuc7TJoV/9YZFWxUtCf6Ou3Vd/vR/vG0138hJQrHkNeoep5dLe+6umcSquKvMaFpm3EZHDBOvCi0XYyIFHMgX7Cqp3JVXlxJFwQfHSaIUEbI2u1lBVUdlNw4Qa9UsLPEK94Qiln3pyKxQVCeNlx8yd7EegVNQBkFLabKvnietYVB4IPZ1fSor82arbgYec8aSdFMaIluYTYuNx32SxfrjKUdPGq+UNp5YpydoEG3xVLixtmHO9zXxKAnHnPuH2fPGrjx0GcuCDEU+yXUtXh6nfUL+cykws1gJ5vkfYFaFBr9PdCXvVf35OJQxzUMmWjv0W6uGJK11uAGDqSpOwCf6rouSIjPVgw57cJCOQ4b9tkI/Y5WNon9Swe72aZryKo8d+HyHBEdWJKrkary0LIGczA4Irq353Wc0Zga3om7UQiAGCvIl8GGyaqz5zH+1gMP5phWUCpKtttWIyicz09vXg76GxkmiGSMQ06Z9X8BUwqOtauDbPIf4rpK/yYoeAHxJ9soXS9VDe1Aw+awOOxaN8foLrif0TXBvQ55dtRtulRq9emFDBxlQcqKCaD8NeTSE7FOHvcjf/+oKbbtRqz9gbofoc2EzQ3pL6W5JdfJzAWmOk8oeoECe90lVMruwl/ltM015P/zIPazqvdvFmLNVHMIZrwiQ2tIKtGh6PDVH+85ew3caqVt2BsDv5rOcu3G9srQWd7NmgtzCRUXLYknYRSwtH9oUtkqyN3CfP20xQ1faXQl4MEmjQehWR6GmGnkdpYNQYeIG408yAX7uCZmYUic9juOfb+Re28+OVOB+scYK4DaPcBe+5wmji9gymtkMpKo4UKqCz7yxzuN8VIlx9yNozpRJpNaWHtaZVEqP45n2JemTlYBSmNIK1FuSYAUQ1yBLnKxevrjayd+h2i8PjdB3YY6b0nr3JuOXGpPMyh4V2dslpR3DFEvgpsBLqhqLDOWP4yEvIL6f21PpA7/8B\";\nvar trieData = {\n  data: data$1\n};\n\nvar log2 = Math.log2 || function (n) {\n  return Math.log(n) / Math.LN2;\n};\n\nvar bits = function bits(n) {\n  return log2(n) + 1 | 0;\n};\n\nvar buildUnicodeProperties = function buildUnicodeProperties(data, trie) {\n  // compute the number of bits stored for each field\n  var CATEGORY_BITS = bits(data.categories.length - 1);\n  var COMBINING_BITS = bits(data.combiningClasses.length - 1);\n  var SCRIPT_BITS = bits(data.scripts.length - 1);\n  var EAW_BITS = bits(data.eaw.length - 1);\n  var NUMBER_BITS = 10; // compute shift and mask values for each field\n\n  var CATEGORY_SHIFT = COMBINING_BITS + SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\n  var COMBINING_SHIFT = SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\n  var SCRIPT_SHIFT = EAW_BITS + NUMBER_BITS;\n  var EAW_SHIFT = NUMBER_BITS;\n  var CATEGORY_MASK = (1 << CATEGORY_BITS) - 1;\n  var COMBINING_MASK = (1 << COMBINING_BITS) - 1;\n  var SCRIPT_MASK = (1 << SCRIPT_BITS) - 1;\n  var EAW_MASK = (1 << EAW_BITS) - 1;\n  var NUMBER_MASK = (1 << NUMBER_BITS) - 1;\n\n  var getCategory = function getCategory(codePoint) {\n    var val = trie.get(codePoint);\n    return data.categories[val >> CATEGORY_SHIFT & CATEGORY_MASK];\n  };\n\n  var getCombiningClass = function getCombiningClass(codePoint) {\n    var val = trie.get(codePoint);\n    return data.combiningClasses[val >> COMBINING_SHIFT & COMBINING_MASK];\n  };\n\n  var getScript = function getScript(codePoint) {\n    var val = trie.get(codePoint);\n    return data.scripts[val >> SCRIPT_SHIFT & SCRIPT_MASK];\n  };\n\n  var getEastAsianWidth = function getEastAsianWidth(codePoint) {\n    var val = trie.get(codePoint);\n    return data.eaw[val >> EAW_SHIFT & EAW_MASK];\n  };\n\n  var getNumericValue = function getNumericValue(codePoint) {\n    var val = trie.get(codePoint);\n    var num = val & NUMBER_MASK;\n\n    if (num === 0) {\n      return null;\n    } else if (num <= 50) {\n      return num - 1;\n    } else if (num < 0x1e0) {\n      var numerator = (num >> 4) - 12;\n      var denominator = (num & 0xf) + 1;\n      return numerator / denominator;\n    } else if (num < 0x300) {\n      val = (num >> 5) - 14;\n      var exp = (num & 0x1f) + 2;\n\n      while (exp > 0) {\n        val *= 10;\n        exp--;\n      }\n\n      return val;\n    } else {\n      val = (num >> 2) - 0xbf;\n\n      var _exp = (num & 3) + 1;\n\n      while (_exp > 0) {\n        val *= 60;\n        _exp--;\n      }\n\n      return val;\n    }\n  };\n\n  var isAlphabetic = function isAlphabetic(codePoint) {\n    var category = getCategory(codePoint);\n    return category === 'Lu' || category === 'Ll' || category === 'Lt' || category === 'Lm' || category === 'Lo' || category === 'Nl';\n  };\n\n  var isDigit = function isDigit(codePoint) {\n    return getCategory(codePoint) === 'Nd';\n  };\n\n  var isPunctuation = function isPunctuation(codePoint) {\n    var category = getCategory(codePoint);\n    return category === 'Pc' || category === 'Pd' || category === 'Pe' || category === 'Pf' || category === 'Pi' || category === 'Po' || category === 'Ps';\n  };\n\n  var isLowerCase = function isLowerCase(codePoint) {\n    return getCategory(codePoint) === 'Ll';\n  };\n\n  var isUpperCase = function isUpperCase(codePoint) {\n    return getCategory(codePoint) === 'Lu';\n  };\n\n  var isTitleCase = function isTitleCase(codePoint) {\n    return getCategory(codePoint) === 'Lt';\n  };\n\n  var isWhiteSpace = function isWhiteSpace(codePoint) {\n    var category = getCategory(codePoint);\n    return category === 'Zs' || category === 'Zl' || category === 'Zp';\n  };\n\n  var isBaseForm = function isBaseForm(codePoint) {\n    var category = getCategory(codePoint);\n    return category === 'Nd' || category === 'No' || category === 'Nl' || category === 'Lu' || category === 'Ll' || category === 'Lt' || category === 'Lm' || category === 'Lo' || category === 'Me' || category === 'Mc';\n  };\n\n  var isMark = function isMark(codePoint) {\n    var category = getCategory(codePoint);\n    return category === 'Mn' || category === 'Me' || category === 'Mc';\n  };\n\n  return {\n    getCategory: getCategory,\n    getCombiningClass: getCombiningClass,\n    getScript: getScript,\n    getEastAsianWidth: getEastAsianWidth,\n    getNumericValue: getNumericValue,\n    isAlphabetic: isAlphabetic,\n    isDigit: isDigit,\n    isPunctuation: isPunctuation,\n    isLowerCase: isLowerCase,\n    isUpperCase: isUpperCase,\n    isTitleCase: isTitleCase,\n    isWhiteSpace: isWhiteSpace,\n    isBaseForm: isBaseForm,\n    isMark: isMark\n  };\n};\n\nvar trie = new _unicodeTrie.default(_base64Js.default.toByteArray(trieData.data));\nvar unicodeProperties = buildUnicodeProperties(data, trie);\nvar _default = unicodeProperties;\nexports.default = _default;\n\n/***/ }),\n/* 507 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n\n\n/***/ }),\n/* 508 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(28);\n\n__webpack_require__(46);\n\n__webpack_require__(61);\n\n__webpack_require__(31);\n\n__webpack_require__(62);\n\n__webpack_require__(134);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\nvar inflate = __webpack_require__(135);\n\nvar _require = __webpack_require__(509),\n    swap32LE = _require.swap32LE; // Shift size for getting the index-1 table offset.\n\n\nvar SHIFT_1 = 6 + 5; // Shift size for getting the index-2 table offset.\n\nvar SHIFT_2 = 5; // Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\n\nvar SHIFT_1_2 = SHIFT_1 - SHIFT_2; // Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\n\nvar OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1; // Number of entries in an index-2 block. 64=0x40\n\nvar INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2; // Mask for getting the lower bits for the in-index-2-block offset. */\n\nvar INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1; // Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\n\nvar INDEX_SHIFT = 2; // Number of entries in a data block. 32=0x20\n\nvar DATA_BLOCK_LENGTH = 1 << SHIFT_2; // Mask for getting the lower bits for the in-data-block offset.\n\nvar DATA_MASK = DATA_BLOCK_LENGTH - 1; // The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\n\nvar LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nvar LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2; // Count the lengths of both BMP pieces. 2080=0x820\n\nvar INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH; // The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\n\nvar UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nvar UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\n\nvar INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH; // The alignment size of a data block. Also the granularity for compaction.\n\nvar DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nvar UnicodeTrie = /*#__PURE__*/function () {\n  function UnicodeTrie(data) {\n    var isBuffer = typeof data.readUInt32BE === 'function' && typeof data.slice === 'function';\n\n    if (isBuffer || data instanceof Uint8Array) {\n      // read binary format\n      var uncompressedLength;\n\n      if (isBuffer) {\n        this.highStart = data.readUInt32LE(0);\n        this.errorValue = data.readUInt32LE(4);\n        uncompressedLength = data.readUInt32LE(8);\n        data = data.slice(12);\n      } else {\n        var view = new DataView(data.buffer);\n        this.highStart = view.getUint32(0, true);\n        this.errorValue = view.getUint32(4, true);\n        uncompressedLength = view.getUint32(8, true);\n        data = data.subarray(12);\n      } // double inflate the actual trie data\n\n\n      data = inflate(data, new Uint8Array(uncompressedLength));\n      data = inflate(data, new Uint8Array(uncompressedLength)); // swap bytes from little-endian\n\n      swap32LE(data);\n      this.data = new Uint32Array(data.buffer);\n    } else {\n      // pre-parsed data\n      var _data = data;\n      this.data = _data.data;\n      this.highStart = _data.highStart;\n      this.errorValue = _data.errorValue;\n    }\n  }\n\n  var _proto = UnicodeTrie.prototype;\n\n  _proto.get = function get(codePoint) {\n    var index;\n\n    if (codePoint < 0 || codePoint > 0x10ffff) {\n      return this.errorValue;\n    }\n\n    if (codePoint < 0xd800 || codePoint > 0xdbff && codePoint <= 0xffff) {\n      // Ordinary BMP code point, excluding leading surrogates.\n      // BMP uses a single level lookup.  BMP index starts at offset 0 in the index.\n      // data is stored in the index array itself.\n      index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint <= 0xffff) {\n      // Lead Surrogate Code Point.  A Separate index section is stored for\n      // lead surrogate code units and code points.\n      //   The main index has the code unit data.\n      //   For this function, we need the code point data.\n      index = (this.data[LSCP_INDEX_2_OFFSET + (codePoint - 0xd800 >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint < this.highStart) {\n      // Supplemental code point, use two-level lookup.\n      index = this.data[INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> SHIFT_1)];\n      index = this.data[index + (codePoint >> SHIFT_2 & INDEX_2_MASK)];\n      index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    return this.data[this.data.length - DATA_GRANULARITY];\n  };\n\n  return UnicodeTrie;\n}();\n\nmodule.exports = UnicodeTrie;\n\n/***/ }),\n/* 509 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(28);\n\n__webpack_require__(61);\n\n__webpack_require__(31);\n\n__webpack_require__(62);\n\n__webpack_require__(134);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\nvar isBigEndian = new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12;\n\nvar swap = function swap(b, n, m) {\n  var i = b[n];\n  b[n] = b[m];\n  b[m] = i;\n};\n\nvar swap32 = function swap32(array) {\n  var len = array.length;\n\n  for (var i = 0; i < len; i += 4) {\n    swap(array, i, i + 3);\n    swap(array, i + 1, i + 2);\n  }\n};\n\nvar swap32LE = function swap32LE(array) {\n  if (isBigEndian) {\n    swap32(array);\n  }\n};\n\nmodule.exports = {\n  swap32LE: swap32LE\n};\n\n/***/ }),\n/* 510 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(195);\n\n__webpack_require__(28);\n\n__webpack_require__(220);\n\n__webpack_require__(61);\n\n__webpack_require__(31);\n\n__webpack_require__(62);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i];\n  revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n  var len = b64.length;\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4');\n  } // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n  var validLen = b64.indexOf('=');\n  if (validLen === -1) validLen = len;\n  var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n  return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n  var tmp;\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n  var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n  var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n  var i;\n\n  for (i = 0; i < len; i += 4) {\n    tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n    arr[curByte++] = tmp >> 16 & 0xFF;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  return arr;\n}\n\nfunction tripletToBase64(num) {\n  return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n  var tmp;\n  var output = [];\n\n  for (var i = start; i < end; i += 3) {\n    tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n    output.push(tripletToBase64(tmp));\n  }\n\n  return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n  var tmp;\n  var len = uint8.length;\n  var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n  var parts = [];\n  var maxChunkLength = 16383; // must be multiple of 3\n  // go through the array every three bytes, we'll deal with trailing stuff later\n\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n  } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1];\n    parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n    parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n  }\n\n  return parts.join('');\n}\n\n/***/ }),\n/* 511 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(28);\n\n__webpack_require__(46);\n\n__webpack_require__(61);\n\n__webpack_require__(31);\n\n__webpack_require__(62);\n\n__webpack_require__(134);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\n// Generated by CoffeeScript 1.7.1\nvar UnicodeTrie, inflate;\ninflate = __webpack_require__(135);\n\nUnicodeTrie = function () {\n  var DATA_BLOCK_LENGTH, DATA_GRANULARITY, DATA_MASK, INDEX_1_OFFSET, INDEX_2_BLOCK_LENGTH, INDEX_2_BMP_LENGTH, INDEX_2_MASK, INDEX_SHIFT, LSCP_INDEX_2_LENGTH, LSCP_INDEX_2_OFFSET, OMITTED_BMP_INDEX_1_LENGTH, SHIFT_1, SHIFT_1_2, SHIFT_2, UTF8_2B_INDEX_2_LENGTH, UTF8_2B_INDEX_2_OFFSET;\n  SHIFT_1 = 6 + 5;\n  SHIFT_2 = 5;\n  SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n  OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n  INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n  INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n  INDEX_SHIFT = 2;\n  DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n  DATA_MASK = DATA_BLOCK_LENGTH - 1;\n  LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\n  LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n  INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n  UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\n  UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6;\n  INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n  DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\n  function UnicodeTrie(data) {\n    var isBuffer, uncompressedLength, view;\n    isBuffer = typeof data.readUInt32BE === 'function' && typeof data.slice === 'function';\n\n    if (isBuffer || data instanceof Uint8Array) {\n      if (isBuffer) {\n        this.highStart = data.readUInt32BE(0);\n        this.errorValue = data.readUInt32BE(4);\n        uncompressedLength = data.readUInt32BE(8);\n        data = data.slice(12);\n      } else {\n        view = new DataView(data.buffer);\n        this.highStart = view.getUint32(0);\n        this.errorValue = view.getUint32(4);\n        uncompressedLength = view.getUint32(8);\n        data = data.subarray(12);\n      }\n\n      data = inflate(data, new Uint8Array(uncompressedLength));\n      data = inflate(data, new Uint8Array(uncompressedLength));\n      this.data = new Uint32Array(data.buffer);\n    } else {\n      this.data = data.data, this.highStart = data.highStart, this.errorValue = data.errorValue;\n    }\n  }\n\n  UnicodeTrie.prototype.get = function (codePoint) {\n    var index;\n\n    if (codePoint < 0 || codePoint > 0x10ffff) {\n      return this.errorValue;\n    }\n\n    if (codePoint < 0xd800 || codePoint > 0xdbff && codePoint <= 0xffff) {\n      index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint <= 0xffff) {\n      index = (this.data[LSCP_INDEX_2_OFFSET + (codePoint - 0xd800 >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint < this.highStart) {\n      index = this.data[INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> SHIFT_1)];\n      index = this.data[index + (codePoint >> SHIFT_2 & INDEX_2_MASK)];\n      index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    return this.data[this.data.length - DATA_GRANULARITY];\n  };\n\n  return UnicodeTrie;\n}();\n\nmodule.exports = UnicodeTrie;\n\n/***/ }),\n/* 512 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(201);\n\n__webpack_require__(210);\n\n__webpack_require__(211);\n\n__webpack_require__(28);\n\n__webpack_require__(46);\n\n__webpack_require__(31);\n\n__webpack_require__(118);\n\n__webpack_require__(160);\n\n__webpack_require__(161);\n\n__webpack_require__(120);\n\n__webpack_require__(513);\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar INITIAL_STATE = 1;\nvar FAIL_STATE = 0;\n/**\n * A StateMachine represents a deterministic finite automaton.\n * It can perform matches over a sequence of values, similar to a regular expression.\n */\n\nvar StateMachine = /*#__PURE__*/function () {\n  function StateMachine(dfa) {\n    this.stateTable = dfa.stateTable;\n    this.accepting = dfa.accepting;\n    this.tags = dfa.tags;\n  }\n  /**\n   * Returns an iterable object that yields pattern matches over the input sequence.\n   * Matches are of the form [startIndex, endIndex, tags].\n   */\n\n\n  var _proto = StateMachine.prototype;\n\n  _proto.match = function match(str) {\n    var _ref;\n\n    var self = this;\n    return _ref = {}, _ref[Symbol.iterator] = /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n      var state, startRun, lastAccepting, lastState, p, c;\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              state = INITIAL_STATE;\n              startRun = null;\n              lastAccepting = null;\n              lastState = null;\n              p = 0;\n\n            case 5:\n              if (!(p < str.length)) {\n                _context.next = 21;\n                break;\n              }\n\n              c = str[p];\n              lastState = state;\n              state = self.stateTable[state][c];\n\n              if (!(state === FAIL_STATE)) {\n                _context.next = 15;\n                break;\n              }\n\n              if (!(startRun != null && lastAccepting != null && lastAccepting >= startRun)) {\n                _context.next = 13;\n                break;\n              }\n\n              _context.next = 13;\n              return [startRun, lastAccepting, self.tags[lastState]];\n\n            case 13:\n              // reset the state as if we started over from the initial state\n              state = self.stateTable[INITIAL_STATE][c];\n              startRun = null;\n\n            case 15:\n              // start a run if not in the failure state\n              if (state !== FAIL_STATE && startRun == null) {\n                startRun = p;\n              } // if accepting, mark the potential match end\n\n\n              if (self.accepting[state]) {\n                lastAccepting = p;\n              } // reset the state to the initial state if we get into the failure state\n\n\n              if (state === FAIL_STATE) {\n                state = INITIAL_STATE;\n              }\n\n            case 18:\n              p++;\n              _context.next = 5;\n              break;\n\n            case 21:\n              if (!(startRun != null && lastAccepting != null && lastAccepting >= startRun)) {\n                _context.next = 24;\n                break;\n              }\n\n              _context.next = 24;\n              return [startRun, lastAccepting, self.tags[state]];\n\n            case 24:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }), _ref;\n  }\n  /**\n   * For each match over the input sequence, action functions matching\n   * the tag definitions in the input pattern are called with the startIndex,\n   * endIndex, and sub-match sequence.\n   */\n  ;\n\n  _proto.apply = function apply(str, actions) {\n    for (var _iterator = _createForOfIteratorHelperLoose(this.match(str)), _step; !(_step = _iterator()).done;) {\n      var _step$value = _step.value,\n          start = _step$value[0],\n          end = _step$value[1],\n          tags = _step$value[2];\n\n      for (var _iterator2 = _createForOfIteratorHelperLoose(tags), _step2; !(_step2 = _iterator2()).done;) {\n        var tag = _step2.value;\n\n        if (typeof actions[tag] === 'function') {\n          actions[tag](start, end, str.slice(start, end + 1));\n        }\n      }\n    }\n  };\n\n  return StateMachine;\n}();\n\nmodule.exports = StateMachine;\n\n/***/ }),\n/* 513 */\n/***/ (function(module, exports) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n/***/ }),\n/* 514 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(515), __esModule: true };\n\n/***/ }),\n/* 515 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(516);\nmodule.exports = Math.pow(2, -52);\n\n\n/***/ }),\n/* 516 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.1 Number.EPSILON\nvar $export = __webpack_require__(9);\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n\n/***/ }),\n/* 517 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {var clone = (function() {\n'use strict';\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n *    circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n *    a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n *    (optional - defaults to parent prototype).\n*/\nfunction clone(parent, circular, depth, prototype) {\n  var filter;\n  if (typeof circular === 'object') {\n    depth = circular.depth;\n    prototype = circular.prototype;\n    filter = circular.filter;\n    circular = circular.circular\n  }\n  // maintain two arrays for circular references, where corresponding parents\n  // and children have the same index\n  var allParents = [];\n  var allChildren = [];\n\n  var useBuffer = typeof Buffer != 'undefined';\n\n  if (typeof circular == 'undefined')\n    circular = true;\n\n  if (typeof depth == 'undefined')\n    depth = Infinity;\n\n  // recurse this function so we don't reset allParents and allChildren\n  function _clone(parent, depth) {\n    // cloning null always returns null\n    if (parent === null)\n      return null;\n\n    if (depth == 0)\n      return parent;\n\n    var child;\n    var proto;\n    if (typeof parent != 'object') {\n      return parent;\n    }\n\n    if (clone.__isArray(parent)) {\n      child = [];\n    } else if (clone.__isRegExp(parent)) {\n      child = new RegExp(parent.source, __getRegExpFlags(parent));\n      if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n    } else if (clone.__isDate(parent)) {\n      child = new Date(parent.getTime());\n    } else if (useBuffer && Buffer.isBuffer(parent)) {\n      if (Buffer.allocUnsafe) {\n        // Node.js >= 4.5.0\n        child = Buffer.allocUnsafe(parent.length);\n      } else {\n        // Older Node.js versions\n        child = new Buffer(parent.length);\n      }\n      parent.copy(child);\n      return child;\n    } else {\n      if (typeof prototype == 'undefined') {\n        proto = Object.getPrototypeOf(parent);\n        child = Object.create(proto);\n      }\n      else {\n        child = Object.create(prototype);\n        proto = prototype;\n      }\n    }\n\n    if (circular) {\n      var index = allParents.indexOf(parent);\n\n      if (index != -1) {\n        return allChildren[index];\n      }\n      allParents.push(parent);\n      allChildren.push(child);\n    }\n\n    for (var i in parent) {\n      var attrs;\n      if (proto) {\n        attrs = Object.getOwnPropertyDescriptor(proto, i);\n      }\n\n      if (attrs && attrs.set == null) {\n        continue;\n      }\n      child[i] = _clone(parent[i], depth - 1);\n    }\n\n    return child;\n  }\n\n  return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n  if (parent === null)\n    return null;\n\n  var c = function () {};\n  c.prototype = parent;\n  return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n  return Object.prototype.toString.call(o);\n};\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object Date]';\n};\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object Array]';\n};\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n};\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n  var flags = '';\n  if (re.global) flags += 'g';\n  if (re.ignoreCase) flags += 'i';\n  if (re.multiline) flags += 'm';\n  return flags;\n};\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif ( true && module.exports) {\n  module.exports = clone;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 518 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(519), __esModule: true };\n\n/***/ }),\n/* 519 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(133);\n__webpack_require__(91);\n__webpack_require__(102);\n__webpack_require__(520);\n__webpack_require__(524);\n__webpack_require__(525);\nmodule.exports = __webpack_require__(7).Promise;\n\n\n/***/ }),\n/* 520 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(104);\nvar global = __webpack_require__(17);\nvar ctx = __webpack_require__(32);\nvar classof = __webpack_require__(185);\nvar $export = __webpack_require__(9);\nvar isObject = __webpack_require__(22);\nvar aFunction = __webpack_require__(101);\nvar anInstance = __webpack_require__(191);\nvar forOf = __webpack_require__(107);\nvar speciesConstructor = __webpack_require__(282);\nvar task = __webpack_require__(283).set;\nvar microtask = __webpack_require__(522)();\nvar newPromiseCapabilityModule = __webpack_require__(196);\nvar perform = __webpack_require__(284);\nvar userAgent = __webpack_require__(523);\nvar promiseResolve = __webpack_require__(285);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n  try {\n    // correct subclassing with @@species support\n    var promise = $Promise.resolve(1);\n    var FakePromise = (promise.constructor = {})[__webpack_require__(21)('species')] = function (exec) {\n      exec(empty, empty);\n    };\n    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    return (isNode || typeof PromiseRejectionEvent == 'function')\n      && promise.then(empty) instanceof FakePromise\n      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n      // we can't detect it synchronously, so just check versions\n      && v8.indexOf('6.6') !== 0\n      && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n    var run = function (reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // may throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\nvar onUnhandled = function (promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({ promise: promise, reason: value });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    } promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\nvar isUnhandled = function (promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n  task.call(global, function () {\n    var handler;\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({ promise: promise, reason: promise._v });\n    }\n  });\n};\nvar $reject = function (value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\nvar $resolve = function (value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = { _w: promise, _d: false }; // wrap\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({ _w: promise, _d: false }, e); // wrap\n  }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n  // 25.4.3.1 Promise(executor)\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    this._c = [];             // <- awaiting reactions\n    this._a = undefined;      // <- checked in isUnhandled reactions\n    this._s = 0;              // <- state\n    this._d = false;          // <- done\n    this._v = undefined;      // <- value\n    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n    this._n = false;          // <- notify\n  };\n  Internal.prototype = __webpack_require__(190)($Promise.prototype, {\n    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n      this._c.push(reaction);\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    // 25.4.5.1 Promise.prototype.catch(onRejected)\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === $Promise || C === Wrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__webpack_require__(106)($Promise, PROMISE);\n__webpack_require__(268)(PROMISE);\nWrapper = __webpack_require__(7)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n  // 25.4.4.5 Promise.reject(r)\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    var $$reject = capability.reject;\n    $$reject(r);\n    return capability.promise;\n  }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n  // 25.4.4.6 Promise.resolve(x)\n  resolve: function resolve(x) {\n    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n  }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(281)(function (iter) {\n  $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n  // 25.4.4.1 Promise.all(iterable)\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var values = [];\n      var index = 0;\n      var remaining = 1;\n      forOf(iterable, false, function (promise) {\n        var $index = index++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        C.resolve(promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[$index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  },\n  // 25.4.4.4 Promise.race(iterable)\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      forOf(iterable, false, function (promise) {\n        C.resolve(promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 521 */\n/***/ (function(module, exports) {\n\n// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n  switch (args.length) {\n    case 0: return un ? fn()\n                      : fn.call(that);\n    case 1: return un ? fn(args[0])\n                      : fn.call(that, args[0]);\n    case 2: return un ? fn(args[0], args[1])\n                      : fn.call(that, args[0], args[1]);\n    case 3: return un ? fn(args[0], args[1], args[2])\n                      : fn.call(that, args[0], args[1], args[2]);\n    case 4: return un ? fn(args[0], args[1], args[2], args[3])\n                      : fn.call(that, args[0], args[1], args[2], args[3]);\n  } return fn.apply(that, args);\n};\n\n\n/***/ }),\n/* 522 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(17);\nvar macrotask = __webpack_require__(283).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __webpack_require__(99)(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function () {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();\n        else last = undefined;\n        throw e;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (isNode) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    var promise = Promise.resolve(undefined);\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = { fn: fn, next: undefined };\n    if (last) last.next = task;\n    if (!head) {\n      head = task;\n      notify();\n    } last = task;\n  };\n};\n\n\n/***/ }),\n/* 523 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(17);\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n/***/ }),\n/* 524 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// https://github.com/tc39/proposal-promise-finally\n\nvar $export = __webpack_require__(9);\nvar core = __webpack_require__(7);\nvar global = __webpack_require__(17);\nvar speciesConstructor = __webpack_require__(282);\nvar promiseResolve = __webpack_require__(285);\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n  var C = speciesConstructor(this, core.Promise || global.Promise);\n  var isFunction = typeof onFinally == 'function';\n  return this.then(\n    isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () { return x; });\n    } : onFinally,\n    isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () { throw e; });\n    } : onFinally\n  );\n} });\n\n\n/***/ }),\n/* 525 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-promise-try\nvar $export = __webpack_require__(9);\nvar newPromiseCapability = __webpack_require__(196);\nvar perform = __webpack_require__(284);\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n  var promiseCapability = newPromiseCapability.f(this);\n  var result = perform(callbackfn);\n  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n  return promiseCapability.promise;\n} });\n\n\n/***/ }),\n/* 526 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(286).BrotliDecompressBuffer;\n\n\n/***/ }),\n/* 527 */\n/***/ (function(module, exports) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Bit reading helpers\n*/\n\nvar BROTLI_READ_SIZE = 4096;\nvar BROTLI_IBUF_SIZE =  (2 * BROTLI_READ_SIZE + 32);\nvar BROTLI_IBUF_MASK =  (2 * BROTLI_READ_SIZE - 1);\n\nvar kBitMask = new Uint32Array([\n  0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767,\n  65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215\n]);\n\n/* Input byte buffer, consist of a ringbuffer and a \"slack\" region where */\n/* bytes from the start of the ringbuffer are copied. */\nfunction BrotliBitReader(input) {\n  this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);\n  this.input_ = input;    /* input callback */\n  \n  this.reset();\n}\n\nBrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;\nBrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;\n\nBrotliBitReader.prototype.reset = function() {\n  this.buf_ptr_ = 0;      /* next input will write here */\n  this.val_ = 0;          /* pre-fetched bits */\n  this.pos_ = 0;          /* byte position in stream */\n  this.bit_pos_ = 0;      /* current bit-reading position in val_ */\n  this.bit_end_pos_ = 0;  /* bit-reading end position from LSB of val_ */\n  this.eos_ = 0;          /* input stream is finished */\n  \n  this.readMoreInput();\n  for (var i = 0; i < 4; i++) {\n    this.val_ |= this.buf_[this.pos_] << (8 * i);\n    ++this.pos_;\n  }\n  \n  return this.bit_end_pos_ > 0;\n};\n\n/* Fills up the input ringbuffer by calling the input callback.\n\n   Does nothing if there are at least 32 bytes present after current position.\n\n   Returns 0 if either:\n    - the input callback returned an error, or\n    - there is no more input and the position is past the end of the stream.\n\n   After encountering the end of the input stream, 32 additional zero bytes are\n   copied to the ringbuffer, therefore it is safe to call this function after\n   every 32 bytes of input is read.\n*/\nBrotliBitReader.prototype.readMoreInput = function() {\n  if (this.bit_end_pos_ > 256) {\n    return;\n  } else if (this.eos_) {\n    if (this.bit_pos_ > this.bit_end_pos_)\n      throw new Error('Unexpected end of input ' + this.bit_pos_ + ' ' + this.bit_end_pos_);\n  } else {\n    var dst = this.buf_ptr_;\n    var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);\n    if (bytes_read < 0) {\n      throw new Error('Unexpected end of input');\n    }\n    \n    if (bytes_read < BROTLI_READ_SIZE) {\n      this.eos_ = 1;\n      /* Store 32 bytes of zero after the stream end. */\n      for (var p = 0; p < 32; p++)\n        this.buf_[dst + bytes_read + p] = 0;\n    }\n    \n    if (dst === 0) {\n      /* Copy the head of the ringbuffer to the slack region. */\n      for (var p = 0; p < 32; p++)\n        this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];\n\n      this.buf_ptr_ = BROTLI_READ_SIZE;\n    } else {\n      this.buf_ptr_ = 0;\n    }\n    \n    this.bit_end_pos_ += bytes_read << 3;\n  }\n};\n\n/* Guarantees that there are at least 24 bits in the buffer. */\nBrotliBitReader.prototype.fillBitWindow = function() {    \n  while (this.bit_pos_ >= 8) {\n    this.val_ >>>= 8;\n    this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;\n    ++this.pos_;\n    this.bit_pos_ = this.bit_pos_ - 8 >>> 0;\n    this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;\n  }\n};\n\n/* Reads the specified number of bits from Read Buffer. */\nBrotliBitReader.prototype.readBits = function(n_bits) {\n  if (32 - this.bit_pos_ < n_bits) {\n    this.fillBitWindow();\n  }\n  \n  var val = ((this.val_ >>> this.bit_pos_) & kBitMask[n_bits]);\n  this.bit_pos_ += n_bits;\n  return val;\n};\n\nmodule.exports = BrotliBitReader;\n\n\n/***/ }),\n/* 528 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar base64 = __webpack_require__(529);\nvar fs = __webpack_require__(53);\n\n/**\n * The normal dictionary-data.js is quite large, which makes it \n * unsuitable for browser usage. In order to make it smaller, \n * we read dictionary.bin, which is a compressed version of\n * the dictionary, and on initial load, Brotli decompresses \n * it's own dictionary. 😜\n */\nexports.init = function() {\n  var BrotliDecompressBuffer = __webpack_require__(286).BrotliDecompressBuffer;\n  var compressed = base64.toByteArray(__webpack_require__(530));\n  return BrotliDecompressBuffer(compressed);\n};\n\n\n/***/ }),\n/* 529 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n/***/ }),\n/* 530 */\n/***/ (function(module, exports) {\n\nmodule.exports=\"W5/fcQLn5gKf2XUbAiQ1XULX+TZz6ADToDsgqk6qVfeC0e4m6OO2wcQ1J76ZBVRV1fRkEsdu//62zQsFEZWSTCnMhcsQKlS2qOhuVYYMGCkV0fXWEoMFbESXrKEZ9wdUEsyw9g4bJlEt1Y6oVMxMRTEVbCIwZzJzboK5j8m4YH02qgXYhv1V+PM435sLVxyHJihaJREEhZGqL03txGFQLm76caGO/ovxKvzCby/3vMTtX/459f0igi7WutnKiMQ6wODSoRh/8Lx1V3Q99MvKtwB6bHdERYRY0hStJoMjNeTsNX7bn+Y7e4EQ3bf8xBc7L0BsyfFPK43dGSXpL6clYC/I328h54/VYrQ5i0648FgbGtl837svJ35L3Mot/+nPlNpWgKx1gGXQYqX6n+bbZ7wuyCHKcUok12Xjqub7NXZGzqBx0SD+uziNf87t7ve42jxSKQoW3nyxVrWIGlFShhCKxjpZZ5MeGna0+lBkk+kaN8F9qFBAFgEogyMBdcX/T1W/WnMOi/7ycWUQloEBKGeC48MkiwqJkJO+12eQiOFHMmck6q/IjWW3RZlany23TBm+cNr/84/oi5GGmGBZWrZ6j+zykVozz5fT/QH/Da6WTbZYYPynVNO7kxzuNN2kxKKWche5WveitPKAecB8YcAHz/+zXLjcLzkdDSktNIDwZE9J9X+tto43oJy65wApM3mDzYtCwX9lM+N5VR3kXYo0Z3t0TtXfgBFg7gU8oN0Dgl7fZlUbhNll+0uuohRVKjrEd8egrSndy5/Tgd2gqjA4CAVuC7ESUmL3DZoGnfhQV8uwnpi8EGvAVVsowNRxPudck7+oqAUDkwZopWqFnW1riss0t1z6iCISVKreYGNvQcXv+1L9+jbP8cd/dPUiqBso2q+7ZyFBvENCkkVr44iyPbtOoOoCecWsiuqMSML5lv+vN5MzUr+Dnh73G7Q1YnRYJVYXHRJaNAOByiaK6CusgFdBPE40r0rvqXV7tksKO2DrHYXBTv8P5ysqxEx8VDXUDDqkPH6NNOV/a2WH8zlkXRELSa8P+heNyJBBP7PgsG1EtWtNef6/i+lcayzQwQCsduidpbKfhWUDgAEmyhGu/zVTacI6RS0zTABrOYueemnVa19u9fT23N/Ta6RvTpof5DWygqreCqrDAgM4LID1+1T/taU6yTFVLqXOv+/MuQOFnaF8vLMKD7tKWDoBdALgxF33zQccCcdHx8fKIVdW69O7qHtXpeGr9jbbpFA+qRMWr5hp0s67FPc7HAiLV0g0/peZlW7hJPYEhZyhpSwahnf93/tZgfqZWXFdmdXBzqxGHLrQKxoAY6fRoBhgCRPmmGueYZ5JexTVDKUIXzkG/fqp/0U3hAgQdJ9zumutK6nqWbaqvm1pgu03IYR+G+8s0jDBBz8cApZFSBeuWasyqo2OMDKAZCozS+GWSvL/HsE9rHxooe17U3s/lTE+VZAk4j3dp6uIGaC0JMiqR5CUsabPyM0dOYDR7Ea7ip4USZlya38YfPtvrX/tBlhHilj55nZ1nfN24AOAi9BVtz/Mbn8AEDJCqJgsVUa6nQnSxv2Fs7l/NlCzpfYEjmPrNyib/+t0ei2eEMjvNhLkHCZlci4WhBe7ePZTmzYqlY9+1pxtS4GB+5lM1BHT9tS270EWUDYFq1I0yY/fNiAk4bk9yBgmef/f2k6AlYQZHsNFnW8wBQxCd68iWv7/35bXfz3JZmfGligWAKRjIs3IpzxQ27vAglHSiOzCYzJ9L9A1CdiyFvyR66ucA4jKifu5ehwER26yV7HjKqn5Mfozo7Coxxt8LWWPT47BeMxX8p0Pjb7hZn+6bw7z3Lw+7653j5sI8CLu5kThpMlj1m4c2ch3jGcP1FsT13vuK3qjecKTZk2kHcOZY40UX+qdaxstZqsqQqgXz+QGF99ZJLqr3VYu4aecl1Ab5GmqS8k/GV5b95zxQ5d4EfXUJ6kTS/CXF/aiqKDOT1T7Jz5z0PwDUcwr9clLN1OJGCiKfqvah+h3XzrBOiLOW8wvn8gW6qE8vPxi+Efv+UH55T7PQFVMh6cZ1pZQlzJpKZ7P7uWvwPGJ6DTlR6wbyj3Iv2HyefnRo/dv7dNx+qaa0N38iBsR++Uil7Wd4afwDNsrzDAK4fXZwvEY/jdKuIKXlfrQd2C39dW7ntnRbIp9OtGy9pPBn/V2ASoi/2UJZfS+xuGLH8bnLuPlzdTNS6zdyk8Dt/h6sfOW5myxh1f+zf3zZ3MX/mO9cQPp5pOx967ZA6/pqHvclNfnUFF+rq+Vd7alKr6KWPcIDhpn6v2K6NlUu6LrKo8b/pYpU/Gazfvtwhn7tEOUuXht5rUJdSf6sLjYf0VTYDgwJ81yaqKTUYej/tbHckSRb/HZicwGJqh1mAHB/IuNs9dc9yuvF3D5Xocm3elWFdq5oEy70dYFit79yaLiNjPj5UUcVmZUVhQEhW5V2Z6Cm4HVH/R8qlamRYwBileuh07CbEce3TXa2JmXWBf+ozt319psboobeZhVnwhMZzOeQJzhpTDbP71Tv8HuZxxUI/+ma3XW6DFDDs4+qmpERwHGBd2edxwUKlODRdUWZ/g0GOezrbzOZauFMai4QU6GVHV6aPNBiBndHSsV4IzpvUiiYyg6OyyrL4Dj5q/Lw3N5kAwftEVl9rNd7Jk5PDij2hTH6wIXnsyXkKePxbmHYgC8A6an5Fob/KH5GtC0l4eFso+VpxedtJHdHpNm+Bvy4C79yVOkrZsLrQ3OHCeB0Ra+kBIRldUGlDCEmq2RwXnfyh6Dz+alk6eftI2n6sastRrGwbwszBeDRS/Fa/KwRJkCzTsLr/JCs5hOPE/MPLYdZ1F1fv7D+VmysX6NpOC8aU9F4Qs6HvDyUy9PvFGDKZ/P5101TYHFl8pjj6wm/qyS75etZhhfg0UEL4OYmHk6m6dO192AzoIyPSV9QedDA4Ml23rRbqxMPMxf7FJnDc5FTElVS/PyqgePzmwVZ26NWhRDQ+oaT7ly7ell4s3DypS1s0g+tOr7XHrrkZj9+x/mJBttrLx98lFIaRZzHz4aC7r52/JQ4VjHahY2/YVXZn/QC2ztQb/sY3uRlyc5vQS8nLPGT/n27495i8HPA152z7Fh5aFpyn1GPJKHuPL8Iw94DuW3KjkURAWZXn4EQy89xiKEHN1mk/tkM4gYDBxwNoYvRfE6LFqsxWJtPrDGbsnLMap3Ka3MUoytW0cvieozOmdERmhcqzG+3HmZv2yZeiIeQTKGdRT4HHNxekm1tY+/n06rGmFleqLscSERzctTKM6G9P0Pc1RmVvrascIxaO1CQCiYPE15bD7c3xSeW7gXxYjgxcrUlcbIvO0r+Yplhx0kTt3qafDOmFyMjgGxXu73rddMHpV1wMubyAGcf/v5dLr5P72Ta9lBF+fzMJrMycwv+9vnU3ANIl1cH9tfW7af8u0/HG0vV47jNFXzFTtaha1xvze/s8KMtCYucXc1nzfd/MQydUXn/b72RBt5wO/3jRcMH9BdhC/yctKBIveRYPrNpDWqBsO8VMmP+WvRaOcA4zRMR1PvSoO92rS7pYEv+fZfEfTMzEdM+6X5tLlyxExhqLRkms5EuLovLfx66de5fL2/yX02H52FPVwahrPqmN/E0oVXnsCKhbi/yRxX83nRbUKWhzYceXOntfuXn51NszJ6MO73pQf5Pl4in3ec4JU8hF7ppV34+mm9r1LY0ee/i1O1wpd8+zfLztE0cqBxggiBi5Bu95v9l3r9r/U5hweLn+TbfxowrWDqdJauKd8+q/dH8sbPkc9ttuyO94f7/XK/nHX46MPFLEb5qQlNPvhJ50/59t9ft3LXu7uVaWaO2bDrDCnRSzZyWvFKxO1+vT8MwwunR3bX0CkfPjqb4K9O19tn5X50PvmYpEwHtiW9WtzuV/s76B1zvLLNkViNd8ySxIl/3orfqP90TyTGaf7/rx8jQzeHJXdmh/N6YDvbvmTBwCdxfEQ1NcL6wNMdSIXNq7b1EUzRy1/Axsyk5p22GMG1b+GxFgbHErZh92wuvco0AuOLXct9hvw2nw/LqIcDRRmJmmZzcgUa7JpM/WV/S9IUfbF56TL2orzqwebdRD8nIYNJ41D/hz37Fo11p2Y21wzPcn713qVGhqtevStYfGH4n69OEJtPvbbLYWvscDqc3Hgnu166+tAyLnxrX0Y5zoYjV++1sI7t5kMr02KT/+uwtkc+rZLOf/qn/s3nYCf13Dg8/sB2diJgjGqjQ+TLhxbzyue2Ob7X6/9lUwW7a+lbznHzOYy8LKW1C/uRPbQY3KW/0gO9LXunHLvPL97afba9bFtc9hmz7GAttjVYlCvQAiOwAk/gC5+hkLEs6tr3AZKxLJtOEwk2dLxTYWsIB/j/ToWtIWzo906FrSG8iaqqqqqqiIiIiAgzMzMzNz+AyK+01/zi8n8S+Y1MjoRaQ80WU/G8MBlO+53VPXANrWm4wzGUVZUjjBJZVdhpcfkjsmcWaO+UEldXi1e+zq+HOsCpknYshuh8pOLISJun7TN0EIGW2xTnlOImeecnoGW4raxe2G1T3HEvfYUYMhG+gAFOAwh5nK8mZhwJMmN7r224QVsNFvZ87Z0qatvknklyPDK3Hy45PgVKXji52Wen4d4PlFVVYGnNap+fSpFbK90rYnhUc6n91Q3AY9E0tJOFrcfZtm/491XbcG/jsViUPPX76qmeuiz+qY1Hk7/1VPM405zWVuoheLUimpWYdVzCmUdKHebMdzgrYrb8mL2eeLSnRWHdonfZa8RsOU9F37w+591l5FLYHiOqWeHtE/lWrBHcRKp3uhtr8yXm8LU/5ms+NM6ZKsqu90cFZ4o58+k4rdrtB97NADFbwmEG7lXqvirhOTOqU14xuUF2myIjURcPHrPOQ4lmM3PeMg7bUuk0nnZi67bXsU6H8lhqIo8TaOrEafCO1ARK9PjC0QOoq2BxmMdgYB9G/lIb9++fqNJ2s7BHGFyBNmZAR8J3KCo012ikaSP8BCrf6VI0X5xdnbhHIO+B5rbOyB54zXkzfObyJ4ecwxfqBJMLFc7m59rNcw7hoHnFZ0b00zee+gTqvjm61Pb4xn0kcDX4jvHM0rBXZypG3DCKnD/Waa/ZtHmtFPgO5eETx+k7RrVg3aSwm2YoNXnCs3XPQDhNn+Fia6IlOOuIG6VJH7TP6ava26ehKHQa2T4N0tcZ9dPCGo3ZdnNltsHQbeYt5vPnJezV/cAeNypdml1vCHI8M81nSRP5Qi2+mI8v/sxiZru9187nRtp3f/42NemcONa+4eVC3PCZzc88aZh851CqSsshe70uPxeN/dmYwlwb3trwMrN1Gq8jbnApcVDx/yDPeYs5/7r62tsQ6lLg+DiFXTEhzR9dHqv0iT4tgj825W+H3XiRUNUZT2kR9Ri0+lp+UM3iQtS8uOE23Ly4KYtvqH13jghUntJRAewuzNLDXp8RxdcaA3cMY6TO2IeSFRXezeWIjCqyhsUdMYuCgYTZSKpBype1zRfq8FshvfBPc6BAQWl7/QxIDp3VGo1J3vn42OEs3qznws+YLRXbymyB19a9XBx6n/owcyxlEYyFWCi+kG9F+EyD/4yn80+agaZ9P7ay2Dny99aK2o91FkfEOY8hBwyfi5uwx2y5SaHmG+oq/zl1FX/8irOf8Y3vAcX/6uLP6A6nvMO24edSGPjQc827Rw2atX+z2bKq0CmW9mOtYnr5/AfDa1ZfPaXnKtlWborup7QYx+Or2uWb+N3N//2+yDcXMqIJdf55xl7/vsj4WoPPlxLxtVrkJ4w/tTe3mLdATOOYwxcq52w5Wxz5MbPdVs5O8/lhfE7dPj0bIiPQ3QV0iqm4m3YX8hRfc6jQ3fWepevMqUDJd86Z4vwM40CWHnn+WphsGHfieF02D3tmZvpWD+kBpNCFcLnZhcmmrhpGzzbdA+sQ1ar18OJD87IOKOFoRNznaHPNHUfUNhvY1iU+uhvEvpKHaUn3qK3exVVyX4joipp3um7FmYJWmA+WbIDshRpbVRx5/nqstCgy87FGbfVB8yDGCqS+2qCsnRwnSAN6zgzxfdB2nBT/vZ4/6uxb6oH8b4VBRxiIB93wLa47hG3w2SL/2Z27yOXJFwZpSJaBYyvajA7vRRYNKqljXKpt/CFD/tSMr18DKKbwB0xggBePatl1nki0yvqW5zchlyZmJ0OTxJ3D+fsYJs/mxYN5+Le5oagtcl+YsVvy8kSjI2YGvGjvmpkRS9W2dtXqWnVuxUhURm1lKtou/hdEq19VBp9OjGvHEQSmrpuf2R24mXGheil8KeiANY8fW1VERUfBImb64j12caBZmRViZHbeVMjCrPDg9A90IXrtnsYCuZtRQ0PyrKDjBNOsPfKsg1pA02gHlVr0OXiFhtp6nJqXVzcbfM0KnzC3ggOENPE9VBdmHKN6LYaijb4wXxJn5A0FSDF5j+h1ooZx885Jt3ZKzO5n7Z5WfNEOtyyPqQEnn7WLv5Fis3PdgMshjF1FRydbNyeBbyKI1oN1TRVrVK7kgsb/zjX4NDPIRMctVeaxVB38Vh1x5KbeJbU138AM5KzmZu3uny0ErygxiJF7GVXUrPzFxrlx1uFdAaZFDN9cvIb74qD9tzBMo7L7WIEYK+sla1DVMHpF0F7b3+Y6S+zjvLeDMCpapmJo1weBWuxKF3rOocih1gun4BoJh1kWnV/Jmiq6uOhK3VfKxEHEkafjLgK3oujaPzY6SXg8phhL4TNR1xvJd1Wa0aYFfPUMLrNBDCh4AuGRTbtKMc6Z1Udj8evY/ZpCuMAUefdo69DZUngoqE1P9A3PJfOf7WixCEj+Y6t7fYeHbbxUAoFV3M89cCKfma3fc1+jKRe7MFWEbQqEfyzO2x/wrO2VYH7iYdQ9BkPyI8/3kXBpLaCpU7eC0Yv/am/tEDu7HZpqg0EvHo0nf/R/gRzUWy33/HXMJQeu1GylKmOkXzlCfGFruAcPPhaGqZOtu19zsJ1SO2Jz4Ztth5cBX6mRQwWmDwryG9FUMlZzNckMdK+IoMJv1rOWnBamS2w2KHiaPMPLC15hCZm4KTpoZyj4E2TqC/P6r7/EhnDMhKicZZ1ZwxuC7DPzDGs53q8gXaI9kFTK+2LTq7bhwsTbrMV8Rsfua5lMS0FwbTitUVnVa1yTb5IX51mmYnUcP9wPr8Ji1tiYJeJV9GZTrQhF7vvdU2OTU42ogJ9FDwhmycI2LIg++03C6scYhUyUuMV5tkw6kGUoL+mjNC38+wMdWNljn6tGPpRES7veqrSn5TRuv+dh6JVL/iDHU1db4c9WK3++OrH3PqziF916UMUKn8G67nN60GfWiHrXYhUG3yVWmyYak59NHj8t1smG4UDiWz2rPHNrKnN4Zo1LBbr2/eF9YZ0n0blx2nG4X+EKFxvS3W28JESD+FWk61VCD3z/URGHiJl++7TdBwkCj6tGOH3qDb0QqcOF9Kzpj0HUb/KyFW3Yhj2VMKJqGZleFBH7vqvf7WqLC3XMuHV8q8a4sTFuxUtkD/6JIBvKaVjv96ndgruKZ1k/BHzqf2K9fLk7HGXANyLDd1vxkK/i055pnzl+zw6zLnwXlVYVtfmacJgEpRP1hbGgrYPVN6v2lG+idQNGmwcKXu/8xEj/P6qe/sB2WmwNp6pp8jaISMkwdleFXYK55NHWLTTbutSUqjBfDGWo/Yg918qQ+8BRZSAHZbfuNZz2O0sov1Ue4CWlVg3rFhM3Kljj9ksGd/NUhk4nH+a5UN2+1i8+NM3vRNp7uQ6sqexSCukEVlVZriHNqFi5rLm9TMWa4qm3idJqppQACol2l4VSuvWLfta4JcXy3bROPNbXOgdOhG47LC0CwW/dMlSx4Jf17aEU3yA1x9p+Yc0jupXgcMuYNku64iYOkGToVDuJvlbEKlJqsmiHbvNrIVZEH+yFdF8DbleZ6iNiWwMqvtMp/mSpwx5KxRrT9p3MAPTHGtMbfvdFhyj9vhaKcn3At8Lc16Ai+vBcSp1ztXi7rCJZx/ql7TXcclq6Q76UeKWDy9boS0WHIjUuWhPG8LBmW5y2rhuTpM5vsLt+HOLh1Yf0DqXa9tsfC+kaKt2htA0ai/L2i7RKoNjEwztkmRU0GfgW1TxUvPFhg0V7DdfWJk5gfrccpYv+MA9M0dkGTLECeYwUixRzjRFdmjG7zdZIl3XKB9YliNKI31lfa7i2JG5C8Ss+rHe0D7Z696/V3DEAOWHnQ9yNahMUl5kENWS6pHKKp2D1BaSrrHdE1w2qNxIztpXgUIrF0bm15YML4b6V1k+GpNysTahKMVrrS85lTVo9OGJ96I47eAy5rYWpRf/mIzeoYU1DKaQCTUVwrhHeyNoDqHel+lLxr9WKzhSYw7vrR6+V5q0pfi2k3L1zqkubY6rrd9ZLvSuWNf0uqnkY+FpTvFzSW9Fp0b9l8JA7THV9eCi/PY/SCZIUYx3BU2alj7Cm3VV6eYpios4b6WuNOJdYXUK3zTqj5CVG2FqYM4Z7CuIU0qO05XR0d71FHM0YhZmJmTRfLlXEumN82BGtzdX0S19t1e+bUieK8zRmqpa4Qc5TSjifmaQsY2ETLjhI36gMR1+7qpjdXXHiceUekfBaucHShAOiFXmv3sNmGQyU5iVgnoocuonQXEPTFwslHtS8R+A47StI9wj0iSrtbi5rMysczFiImsQ+bdFClnFjjpXXwMy6O7qfjOr8Fb0a7ODItisjnn3EQO16+ypd1cwyaAW5Yzxz5QknfMO7643fXW/I9y3U2xH27Oapqr56Z/tEzglj6IbT6HEHjopiXqeRbe5mQQvxtcbDOVverN0ZgMdzqRYRjaXtMRd56Q4cZSmdPvZJdSrhJ1D9zNXPqAEqPIavPdfubt5oke2kmv0dztIszSv2VYuoyf1UuopbsYb+uX9h6WpwjpgtZ6fNNawNJ4q8O3CFoSbioAaOSZMx2GYaPYB+rEb6qjQiNRFQ76TvwNFVKD+BhH9VhcKGsXzmMI7BptU/CNWolM7YzROvpFAntsiWJp6eR2d3GarcYShVYSUqhmYOWj5E96NK2WvmYNTeY7Zs4RUEdv9h9QT4EseKt6LzLrqEOs3hxAY1MaNWpSa6zZx8F3YOVeCYMS88W+CYHDuWe4yoc6YK+djDuEOrBR5lvh0r+Q9uM88lrjx9x9AtgpQVNE8r+3O6Gvw59D+kBF/UMXyhliYUtPjmvXGY6Dk3x+kEOW+GtdMVC4EZTqoS/jmR0P0LS75DOc/w2vnri97M4SdbZ8qeU7gg8DVbERkU5geaMQO3mYrSYyAngeUQqrN0C0/vsFmcgWNXNeidsTAj7/4MncJR0caaBUpbLK1yBCBNRjEv6KvuVSdpPnEMJdsRRtqJ+U8tN1gXA4ePHc6ZT0eviI73UOJF0fEZ8YaneAQqQdGphNvwM4nIqPnXxV0xA0fnCT+oAhJuyw/q8jO0y8CjSteZExwBpIN6SvNp6A5G/abi6egeND/1GTguhuNjaUbbnSbGd4L8937Ezm34Eyi6n1maeOBxh3PI0jzJDf5mh/BsLD7F2GOKvlA/5gtvxI3/eV4sLfKW5Wy+oio+es/u6T8UU+nsofy57Icb/JlZHPFtCgd/x+bwt3ZT+xXTtTtTrGAb4QehC6X9G+8YT+ozcLxDsdCjsuOqwPFnrdLYaFc92Ui0m4fr39lYmlCaqTit7G6O/3kWDkgtXjNH4BiEm/+jegQnihOtfffn33WxsFjhfMd48HT+f6o6X65j7XR8WLSHMFkxbvOYsrRsF1bowDuSQ18Mkxk4qz2zoGPL5fu9h2Hqmt1asl3Q3Yu3szOc+spiCmX4AETBM3pLoTYSp3sVxahyhL8eC4mPN9k2x3o0xkiixIzM3CZFzf5oR4mecQ5+ax2wCah3/crmnHoqR0+KMaOPxRif1oEFRFOO/kTPPmtww+NfMXxEK6gn6iU32U6fFruIz8Q4WgljtnaCVTBgWx7diUdshC9ZEa5yKpRBBeW12r/iNc/+EgNqmhswNB8SBoihHXeDF7rrWDLcmt3V8GYYN7pXRy4DZjj4DJuUBL5iC3DQAaoo4vkftqVTYRGLS3mHZ7gdmdTTqbgNN/PTdTCOTgXolc88MhXAEUMdX0iy1JMuk5wLsgeu0QUYlz2S4skTWwJz6pOm/8ihrmgGfFgri+ZWUK2gAPHgbWa8jaocdSuM4FJYoKicYX/ZSENkg9Q1ZzJfwScfVnR2DegOGwCvmogaWJCLQepv9WNlU6QgsmOwICquU28Mlk3d9W5E81lU/5Ez0LcX6lwKMWDNluNKfBDUy/phJgBcMnfkh9iRxrdOzgs08JdPB85Lwo+GUSb4t3nC+0byqMZtO2fQJ4U2zGIr49t/28qmmGv2RanDD7a3FEcdtutkW8twwwlUSpb8QalodddbBfNHKDQ828BdE7OBgFdiKYohLawFYqpybQoxATZrheLhdI7+0Zlu9Q1myRcd15r9UIm8K2LGJxqTegntqNVMKnf1a8zQiyUR1rxoqjiFxeHxqFcYUTHfDu7rhbWng6qOxOsI+5A1p9mRyEPdVkTlE24vY54W7bWc6jMgZvNXdfC9/9q7408KDsbdL7Utz7QFSDetz2picArzrdpL8OaCHC9V26RroemtDZ5yNM/KGkWMyTmfnInEvwtSD23UcFcjhaE3VKzkoaEMKGBft4XbIO6forTY1lmGQwVmKicBCiArDzE+1oIxE08fWeviIOD5TznqH+OoHadvoOP20drMPe5Irg3XBQziW2XDuHYzjqQQ4wySssjXUs5H+t3FWYMHppUnBHMx/nYIT5d7OmjDbgD9F6na3m4l7KdkeSO3kTEPXafiWinogag7b52taiZhL1TSvBFmEZafFq2H8khQaZXuitCewT5FBgVtPK0j4xUHPfUz3Q28eac1Z139DAP23dgki94EC8vbDPTQC97HPPSWjUNG5tWKMsaxAEMKC0665Xvo1Ntd07wCLNf8Q56mrEPVpCxlIMVlQlWRxM3oAfpgIc+8KC3rEXUog5g06vt7zgXY8grH7hhwVSaeuvC06YYRAwpbyk/Unzj9hLEZNs2oxPQB9yc+GnL6zTgq7rI++KDJwX2SP8Sd6YzTuw5lV/kU6eQxRD12omfQAW6caTR4LikYkBB1CMOrvgRr/VY75+NSB40Cni6bADAtaK+vyxVWpf9NeKJxN2KYQ8Q2xPB3K1s7fuhvWbr2XpgW044VD6DRs0qXoqKf1NFsaGvKJc47leUV3pppP/5VTKFhaGuol4Esfjf5zyCyUHmHthChcYh4hYLQF+AFWsuq4t0wJyWgdwQVOZiV0efRHPoK5+E1vjz9wTJmVkITC9oEstAsyZSgE/dbicwKr89YUxKZI+owD205Tm5lnnmDRuP/JnzxX3gMtlrcX0UesZdxyQqYQuEW4R51vmQ5xOZteUd8SJruMlTUzhtVw/Nq7eUBcqN2/HVotgfngif60yKEtoUx3WYOZlVJuJOh8u59fzSDPFYtQgqDUAGyGhQOAvKroXMcOYY0qjnStJR/G3aP+Jt1sLVlGV8POwr/6OGsqetnyF3TmTqZjENfnXh51oxe9qVUw2M78EzAJ+IM8lZ1MBPQ9ZWSVc4J3mWSrLKrMHReA5qdGoz0ODRsaA+vwxXA2cAM4qlfzBJA6581m4hzxItQw5dxrrBL3Y6kCbUcFxo1S8jyV44q//+7ASNNudZ6xeaNOSIUffqMn4A9lIjFctYn2gpEPAb3f7p3iIBN8H14FUGQ9ct2hPsL+cEsTgUrR47uJVN4n4wt/wgfwwHuOnLd4yobkofy8JvxSQTA7rMpDIc608SlZFJfZYcmbT0tAHpPE8MrtQ42siTUNWxqvWZOmvu9f0JPoQmg+6l7sZWwyfi6PXkxJnwBraUG0MYG4zYHQz3igy/XsFkx5tNQxw43qvI9dU3f0DdhOUlHKjmi1VAr2Kiy0HZwD8VeEbhh0OiDdMYspolQsYdSwjCcjeowIXNZVUPmL2wwIkYhmXKhGozdCJ4lRKbsf4NBh/XnQoS92NJEWOVOFs2YhN8c5QZFeK0pRdAG40hqvLbmoSA8xQmzOOEc7wLcme9JOsjPCEgpCwUs9E2DohMHRhUeyGIN6TFvrbny8nDuilsDpzrH5mS76APoIEJmItS67sQJ+nfwddzmjPxcBEBBCw0kWDwd0EZCkNeOD7NNQhtBm7KHL9mRxj6U1yWU2puzlIDtpYxdH4ZPeXBJkTGAJfUr/oTCz/iypY6uXaR2V1doPxJYlrw2ghH0D5gbrhFcIxzYwi4a/4hqVdf2DdxBp6vGYDjavxMAAoy+1+3aiO6S3W/QAKNVXagDtvsNtx7Ks+HKgo6U21B+QSZgIogV5Bt+BnXisdVfy9VyXV+2P5fMuvdpAjM1o/K9Z+XnE4EOCrue+kcdYHqAQ0/Y/OmNlQ6OI33jH/uD1RalPaHpJAm2av0/xtpqdXVKNDrc9F2izo23Wu7firgbURFDNX9eGGeYBhiypyXZft2j3hTvzE6PMWKsod//rEILDkzBXfi7xh0eFkfb3/1zzPK/PI5Nk3FbZyTl4mq5BfBoVoqiPHO4Q4QKZAlrQ3MdNfi3oxIjvsM3kAFv3fdufurqYR3PSwX/mpGy/GFI/B2MNPiNdOppWVbs/gjF3YH+QA9jMhlAbhvasAHstB0IJew09iAkmXHl1/TEj+jvHOpOGrPRQXbPADM+Ig2/OEcUcpgPTItMtW4DdqgfYVI/+4hAFWYjUGpOP/UwNuB7+BbKOcALbjobdgzeBQfjgNSp2GOpxzGLj70Vvq5cw2AoYENwKLUtJUX8sGRox4dVa/TN4xKwaKcl9XawQR/uNus700Hf17pyNnezrUgaY9e4MADhEDBpsJT6y1gDJs1q6wlwGhuUzGR7C8kgpjPyHWwsvrf3yn1zJEIRa5eSxoLAZOCR9xbuztxFRJW9ZmMYfCFJ0evm9F2fVnuje92Rc4Pl6A8bluN8MZyyJGZ0+sNSb//DvAFxC2BqlEsFwccWeAl6CyBcQV1bx4mQMBP1Jxqk1EUADNLeieS2dUFbQ/c/kvwItbZ7tx0st16viqd53WsRmPTKv2AD8CUnhtPWg5aUegNpsYgasaw2+EVooeNKmrW3MFtj76bYHJm5K9gpAXZXsE5U8DM8XmVOSJ1F1WnLy6nQup+jx52bAb+rCq6y9WXl2B2oZDhfDkW7H3oYfT/4xx5VncBuxMXP2lNfhUVQjSSzSRbuZFE4vFawlzveXxaYKVs8LpvAb8IRYF3ZHiRnm0ADeNPWocwxSzNseG7NrSEVZoHdKWqaGEBz1N8Pt7kFbqh3LYmAbm9i1IChIpLpM5AS6mr6OAPHMwwznVy61YpBYX8xZDN/a+lt7n+x5j4bNOVteZ8lj3hpAHSx1VR8vZHec4AHO9XFCdjZ9eRkSV65ljMmZVzaej2qFn/qt1lvWzNZEfHxK3qOJrHL6crr0CRzMox5f2e8ALBB4UGFZKA3tN6F6IXd32GTJXGQ7DTi9j/dNcLF9jCbDcWGKxoKTYblIwbLDReL00LRcDPMcQuXLMh5YzgtfjkFK1DP1iDzzYYVZz5M/kWYRlRpig1htVRjVCknm+h1M5LiEDXOyHREhvzCGpFZjHS0RsK27o2avgdilrJkalWqPW3D9gmwV37HKmfM3F8YZj2ar+vHFvf3B8CRoH4kDHIK9mrAg+owiEwNjjd9V+FsQKYR8czJrUkf7Qoi2YaW6EVDZp5zYlqiYtuXOTHk4fAcZ7qBbdLDiJq0WNV1l2+Hntk1mMWvxrYmc8kIx8G3rW36J6Ra4lLrTOCgiOihmow+YnzUT19jbV2B3RWqSHyxkhmgsBqMYWvOcUom1jDQ436+fcbu3xf2bbeqU/ca+C4DOKE+e3qvmeMqW3AxejfzBRFVcwVYPq4L0APSWWoJu+5UYX4qg5U6YTioqQGPG9XrnuZ/BkxuYpe6Li87+18EskyQW/uA+uk2rpHpr6hut2TlVbKgWkFpx+AZffweiw2+VittkEyf/ifinS/0ItRL2Jq3tQOcxPaWO2xrG68GdFoUpZgFXaP2wYVtRc6xYCfI1CaBqyWpg4bx8OHBQwsV4XWMibZZ0LYjWEy2IxQ1mZrf1/UNbYCJplWu3nZ4WpodIGVA05d+RWSS+ET9tH3RfGGmNI1cIY7evZZq7o+a0bjjygpmR3mVfalkT/SZGT27Q8QGalwGlDOS9VHCyFAIL0a1Q7JiW3saz9gqY8lqKynFrPCzxkU4SIfLc9VfCI5edgRhDXs0edO992nhTKHriREP1NJC6SROMgQ0xO5kNNZOhMOIT99AUElbxqeZF8A3xrfDJsWtDnUenAHdYWSwAbYjFqQZ+D5gi3hNK8CSxU9i6f6ClL9IGlj1OPMQAsr84YG6ijsJpCaGWj75c3yOZKBB9mNpQNPUKkK0D6wgLH8MGoyRxTX6Y05Q4AnYNXMZwXM4eij/9WpsM/9CoRnFQXGR6MEaY+FXvXEO3RO0JaStk6OXuHVATHJE+1W+TU3bSZ2ksMtqjO0zfSJCdBv7y2d8DMx6TfVme3q0ZpTKMMu4YL/t7ciTNtdDkwPogh3Cnjx7qk08SHwf+dksZ7M2vCOlfsF0hQ6J4ehPCaHTNrM/zBSOqD83dBEBCW/F/LEmeh0nOHd7oVl3/Qo/9GUDkkbj7yz+9cvvu+dDAtx8NzCDTP4iKdZvk9MWiizvtILLepysflSvTLFBZ37RLwiriqyRxYv/zrgFd/9XVHh/OmzBvDX4mitMR/lUavs2Vx6cR94lzAkplm3IRNy4TFfu47tuYs9EQPIPVta4P64tV+sZ7n3ued3cgEx2YK+QL5+xms6osk8qQbTyuKVGdaX9FQqk6qfDnT5ykxk0VK7KZ62b6DNDUfQlqGHxSMKv1P0XN5BqMeKG1P4Wp5QfZDUCEldppoX0U6ss2jIko2XpURKCIhfaOqLPfShdtS37ZrT+jFRSH2xYVV1rmT/MBtRQhxiO4MQ3iAGlaZi+9PWBEIXOVnu9jN1f921lWLZky9bqbM3J2MAAI9jmuAx3gyoEUa6P2ivs0EeNv/OR+AX6q5SW6l5HaoFuS6jr6yg9limu+P0KYKzfMXWcQSfTXzpOzKEKpwI3YGXZpSSy2LTlMgfmFA3CF6R5c9xWEtRuCg2ZPUQ2Nb6dRFTNd4TfGHrnEWSKHPuRyiJSDAZ+KX0VxmSHjGPbQTLVpqixia2uyhQ394gBMt7C3ZAmxn/DJS+l1fBsAo2Eir/C0jG9csd4+/tp12pPc/BVJGaK9mfvr7M/CeztrmCO5qY06Edi4xAGtiEhnWAbzLy2VEyazE1J5nPmgU4RpW4Sa0TnOT6w5lgt3/tMpROigHHmexBGAMY0mdcDbDxWIz41NgdD6oxgHsJRgr5RnT6wZAkTOcStU4NMOQNemSO7gxGahdEsC+NRVGxMUhQmmM0llWRbbmFGHzEqLM4Iw0H7577Kyo+Zf+2cUFIOw93gEY171vQaM0HLwpjpdRR6Jz7V0ckE7XzYJ0TmY9znLdzkva0vNrAGGT5SUZ5uaHDkcGvI0ySpwkasEgZPMseYcu85w8HPdSNi+4T6A83iAwDbxgeFcB1ZM2iGXzFcEOUlYVrEckaOyodfvaYSQ7GuB4ISE0nYJc15X/1ciDTPbPCgYJK55VkEor4LvzL9S2WDy4xj+6FOqVyTAC2ZNowheeeSI5hA/02l8UYkv4nk9iaVn+kCVEUstgk5Hyq+gJm6R9vG3rhuM904he/hFmNQaUIATB1y3vw+OmxP4X5Yi6A5I5jJufHCjF9+AGNwnEllZjUco6XhsO5T5+R3yxz5yLVOnAn0zuS+6zdj0nTJbEZCbXJdtpfYZfCeCOqJHoE2vPPFS6eRLjIJlG69X93nfR0mxSFXzp1Zc0lt/VafDaImhUMtbnqWVb9M4nGNQLN68BHP7AR8Il9dkcxzmBv8PCZlw9guY0lurbBsmNYlwJZsA/B15/HfkbjbwPddaVecls/elmDHNW2r4crAx43feNkfRwsaNq/yyJ0d/p5hZ6AZajz7DBfUok0ZU62gCzz7x8eVfJTKA8IWn45vINLSM1q+HF9CV9qF3zP6Ml21kPPL3CXzkuYUlnSqT+Ij4tI/od5KwIs+tDajDs64owN7tOAd6eucGz+KfO26iNcBFpbWA5732bBNWO4kHNpr9D955L61bvHCF/mwSrz6eQaDjfDEANqGMkFc+NGxpKZzCD2sj/JrHd+zlPQ8Iz7Q+2JVIiVCuCKoK/hlAEHzvk/Piq3mRL1rT/fEh9hoT5GJmeYswg1otiKydizJ/fS2SeKHVu6Z3JEHjiW8NaTQgP5xdBli8nC57XiN9hrquBu99hn9zqwo92+PM2JXtpeVZS0PdqR5mDyDreMMtEws+CpwaRyyzoYtfcvt9PJIW0fJVNNi/FFyRsea7peLvJrL+5b4GOXJ8tAr+ATk9f8KmiIsRhqRy0vFzwRV3Z5dZ3QqIU8JQ/uQpkJbjMUMFj2F9sCFeaBjI4+fL/oN3+LQgjI4zuAfQ+3IPIPFQBccf0clJpsfpnBxD84atwtupkGqKvrH7cGNl/QcWcSi6wcVDML6ljOgYbo+2BOAWNNjlUBPiyitUAwbnhFvLbnqw42kR3Yp2kv2dMeDdcGOX5kT4S6M44KHEB/SpCfl7xgsUvs+JNY9G3O2X/6FEt9FyAn57lrbiu+tl83sCymSvq9eZbe9mchL7MTf/Ta78e80zSf0hYY5eUU7+ff14jv7Xy8qjzfzzzvaJnrIdvFb5BLWKcWGy5/w7+vV2cvIfwHqdTB+RuJK5oj9mbt0Hy94AmjMjjwYNZlNS6uiyxNnwNyt3gdreLb64p/3+08nXkb92LTkkRgFOwk1oGEVllcOj5lv1hfAZywDows0944U8vUFw+A/nuVq/UCygsrmWIBnHyU01d0XJPwriEOvx/ISK6Pk4y2w0gmojZs7lU8TtakBAdne4v/aNxmMpK4VcGMp7si0yqsiolXRuOi1Z1P7SqD3Zmp0CWcyK4Ubmp2SXiXuI5nGLCieFHKHNRIlcY3Pys2dwMTYCaqlyWSITwr2oGXvyU3h1Pf8eQ3w1bnD7ilocVjYDkcXR3Oo1BXgMLTUjNw2xMVwjtp99NhSVc5aIWrDQT5DHPKtCtheBP4zHcw4dz2eRdTMamhlHhtfgqJJHI7NGDUw1XL8vsSeSHyKqDtqoAmrQqsYwvwi7HW3ojWyhIa5oz5xJTaq14NAzFLjVLR12rRNUQ6xohDnrWFb5bG9yf8aCD8d5phoackcNJp+Dw3Due3RM+5Rid7EuIgsnwgpX0rUWh/nqPtByMhMZZ69NpgvRTKZ62ViZ+Q7Dp5r4K0d7EfJuiy06KuIYauRh5Ecrhdt2QpTS1k1AscEHvapNbU3HL1F2TFyR33Wxb5MvH5iZsrn3SDcsxlnnshO8PLwmdGN+paWnQuORtZGX37uhFT64SeuPsx8UOokY6ON85WdQ1dki5zErsJGazcBOddWJEKqNPiJpsMD1GrVLrVY+AOdPWQneTyyP1hRX/lMM4ZogGGOhYuAdr7F/DOiAoc++cn5vlf0zkMUJ40Z1rlgv9BelPqVOpxKeOpzKdF8maK+1Vv23MO9k/8+qpLoxrIGH2EDQlnGmH8CD31G8QqlyQIcpmR5bwmSVw9/Ns6IHgulCRehvZ/+VrM60Cu/r3AontFfrljew74skYe2uyn7JKQtFQBQRJ9ryGic/zQOsbS4scUBctA8cPToQ3x6ZBQu6DPu5m1bnCtP8TllLYA0UTQNVqza5nfew3Mopy1GPUwG5jsl0OVXniPmAcmLqO5HG8Hv3nSLecE9oOjPDXcsTxoCBxYyzBdj4wmnyEV4kvFDunipS8SSkvdaMnTBN9brHUR8xdmmEAp/Pdqk9uextp1t+JrtXwpN/MG2w/qhRMpSNxQ1uhg/kKO30eQ/FyHUDkWHT8V6gGRU4DhDMxZu7xXij9Ui6jlpWmQCqJg3FkOTq3WKneCRYZxBXMNAVLQgHXSCGSqNdjebY94oyIpVjMYehAiFx/tqzBXFHZaL5PeeD74rW5OysFoUXY8sebUZleFTUa/+zBKVTFDopTReXNuZq47QjkWnxjirCommO4L/GrFtVV21EpMyw8wyThL5Y59d88xtlx1g1ttSICDwnof6lt/6zliPzgVUL8jWBjC0o2D6Kg+jNuThkAlaDJsq/AG2aKA//A76avw2KNqtv223P+Wq3StRDDNKFFgtsFukYt1GFDWooFVXitaNhb3RCyJi4cMeNjROiPEDb4k+G3+hD8tsg+5hhmSc/8t2JTSwYoCzAI75doq8QTHe+E/Tw0RQSUDlU+6uBeNN3h6jJGX/mH8oj0i3caCNsjvTnoh73BtyZpsflHLq6AfwJNCDX4S98h4+pCOhGKDhV3rtkKHMa3EG4J9y8zFWI4UsfNzC/Rl5midNn7gwoN9j23HGCQQ+OAZpTTPMdiVow740gIyuEtd0qVxMyNXhHcnuXRKdw5wDUSL358ktjMXmAkvIB73BLa1vfF9BAUZInPYJiwxqFWQQBVk7gQH4ojfUQ/KEjn+A/WR6EEe4CtbpoLe1mzHkajgTIoE0SLDHVauKhrq12zrAXBGbPPWKCt4DGedq3JyGRbmPFW32bE7T20+73BatV/qQhhBWfWBFHfhYWXjALts38FemnoT+9bn1jDBMcUMmYgSc0e7GQjv2MUBwLU8ionCpgV+Qrhg7iUIfUY6JFxR0Y+ZTCPM+rVuq0GNLyJXX6nrUTt8HzFBRY1E/FIm2EeVA9NcXrj7S6YYIChVQCWr/m2fYUjC4j0XLkzZ8GCSLfmkW3PB/xq+nlXsKVBOj7vTvqKCOMq7Ztqr3cQ+N8gBnPaAps+oGwWOkbuxnRYj/x/WjiDclVrs22xMK4qArE1Ztk1456kiJriw6abkNeRHogaPRBgbgF9Z8i/tbzWELN4CvbqtrqV9TtGSnmPS2F9kqOIBaazHYaJ9bi3AoDBvlZasMluxt0BDXfhp02Jn411aVt6S4TUB8ZgFDkI6TP6gwPY85w+oUQSsjIeXVminrwIdK2ZAawb8Se6XOJbOaliQxHSrnAeONDLuCnFejIbp4YDtBcQCwMsYiRZfHefuEJqJcwKTTJ8sx5hjHmJI1sPFHOr6W9AhZ2NAod38mnLQk1gOz2LCAohoQbgMbUK9RMEA3LkiF7Sr9tLZp6lkciIGhE2V546w3Mam53VtVkGbB9w0Yk2XiRnCmbpxmHr2k4eSC0RuNbjNsUfDIfc8DZvRvgUDe1IlKdZTzcT4ZGEb53dp8VtsoZlyXzLHOdAbsp1LPTVaHvLA0GYDFMbAW/WUBfUAdHwqLFAV+3uHvYWrCfhUOR2i89qvCBoOb48usAGdcF2M4aKn79k/43WzBZ+xR1L0uZfia70XP9soQReeuhZiUnXFDG1T8/OXNmssTSnYO+3kVLAgeiY719uDwL9FQycgLPessNihMZbAKG7qwPZyG11G1+ZA3jAX2yddpYfmaKBlmfcK/V0mwIRUDC0nJSOPUl2KB8h13F4dlVZiRhdGY5farwN+f9hEb1cRi41ZcGDn6Xe9MMSTOY81ULJyXIHSWFIQHstVYLiJEiUjktlHiGjntN5/btB8Fu+vp28zl2fZXN+dJDyN6EXhS+0yzqpl/LSJNEUVxmu7BsNdjAY0jVsAhkNuuY0E1G48ej25mSt+00yPbQ4SRCVkIwb6ISvYtmJRPz9Zt5dk76blf+lJwAPH5KDF+vHAmACLoCdG2Adii6dOHnNJnTmZtoOGO8Q1jy1veMw6gbLFToQmfJa7nT7Al89mRbRkZZQxJTKgK5Kc9INzmTJFp0tpAPzNmyL/F08bX3nhCumM/cR/2RPn9emZ3VljokttZD1zVWXlUIqEU7SLk5I0lFRU0AcENXBYazNaVzsVHA/sD3o9hm42wbHIRb/BBQTKzAi8s3+bMtpOOZgLdQzCYPfX3UUxKd1WYVkGH7lh/RBBgMZZwXzU9+GYxdBqlGs0LP+DZ5g2BWNh6FAcR944B+K/JTWI3t9YyVyRhlP4CCoUk/mmF7+r2pilVBjxXBHFaBfBtr9hbVn2zDuI0kEOG3kBx8CGdPOjX1ph1POOZJUO1JEGG0jzUy2tK4X0CgVNYhmkqqQysRNtKuPdCJqK3WW57kaV17vXgiyPrl4KEEWgiGF1euI4QkSFHFf0TDroQiLNKJiLbdhH0YBhriRNCHPxSqJmNNoketaioohqMglh6wLtEGWSM1EZbQg72h0UJAIPVFCAJOThpQGGdKfFovcwEeiBuZHN2Ob4uVM7+gwZLz1D9E7ta4RmMZ24OBBAg7Eh6dLXGofZ4U2TFOCQMKjwhVckjrydRS+YaqCw1kYt6UexuzbNEDyYLTZnrY1PzsHZJT4U+awO2xlqTSYu6n/U29O2wPXgGOEKDMSq+zTUtyc8+6iLp0ivav4FKx+xxVy4FxhIF/pucVDqpsVe2jFOfdZhTzLz2QjtzvsTCvDPU7bzDH2eXVKUV9TZ+qFtaSSxnYgYdXKwVreIgvWhT9eGDB2OvnWyPLfIIIfNnfIxU8nW7MbcH05nhlsYtaW9EZRsxWcKdEqInq1DiZPKCz7iGmAU9/ccnnQud2pNgIGFYOTAWjhIrd63aPDgfj8/sdlD4l+UTlcxTI9jbaMqqN0gQxSHs60IAcW3cH4p3V1aSciTKB29L1tz2eUQhRiTgTvmqc+sGtBNh4ky0mQJGsdycBREP+fAaSs1EREDVo5gvgi5+aCN7NECw30owbCc1mSpjiahyNVwJd1jiGgzSwfTpzf2c5XJvG/g1n0fH88KHNnf+u7ZiRMlXueSIsloJBUtW9ezvsx9grfsX/FNxnbxU1Lvg0hLxixypHKGFAaPu0xCD8oDTeFSyfRT6s8109GMUZL8m2xXp8X2dpPCWWdX84iga4BrTlOfqox4shqEgh/Ht4qRst52cA1xOIUuOxgfUivp6v5f8IVyaryEdpVk72ERAwdT4aoY1usBgmP+0m06Q216H/nubtNYxHaOIYjcach3A8Ez/zc0KcShhel0HCYjFsA0FjYqyJ5ZUH1aZw3+zWC0hLpM6GDfcAdn9fq2orPmZbW6XXrf+Krc9RtvII5jeD3dFoT1KwZJwxfUMvc5KLfn8rROW23Jw89sJ2a5dpB3qWDUBWF2iX8OCuKprHosJ2mflBR+Wqs86VvgI/XMnsqb97+VlKdPVysczPj8Jhzf+WCvGBHijAqYlavbF60soMWlHbvKT+ScvhprgeTln51xX0sF+Eadc/l2s2a5BgkVbHYyz0E85p0LstqH+gEGiR84nBRRFIn8hLSZrGwqjZ3E29cuGi+5Z5bp7EM8MWFa9ssS/vy4VrDfECSv7DSU84DaP0sXI3Ap4lWznQ65nQoTKRWU30gd7Nn8ZowUvGIx4aqyXGwmA/PB4qN8msJUODezUHEl0VP9uo+cZ8vPFodSIB4C7lQYjEFj8yu49C2KIV3qxMFYTevG8KqAr0TPlkbzHHnTpDpvpzziAiNFh8xiT7C/TiyH0EguUw4vxAgpnE27WIypV+uFN2zW7xniF/n75trs9IJ5amB1zXXZ1LFkJ6GbS/dFokzl4cc2mamVwhL4XU0Av5gDWAl+aEWhAP7t2VIwU+EpvfOPDcLASX7H7lZpXA2XQfbSlD4qU18NffNPoAKMNSccBfO9YVVgmlW4RydBqfHAV7+hrZ84WJGho6bNT0YMhxxLdOx/dwGj0oyak9aAkNJ8lRJzUuA8sR+fPyiyTgUHio5+Pp+YaKlHrhR41jY5NESPS3x+zTMe0S2HnLOKCOQPpdxKyviBvdHrCDRqO+l96HhhNBLXWv4yEMuEUYo8kXnYJM8oIgVM4XJ+xXOev4YbWeqsvgq0lmw4/PiYr9sYLt+W5EAuYSFnJEan8CwJwbtASBfLBBpJZiRPor/aCJBZsM+MhvS7ZepyHvU8m5WSmaZnxuLts8ojl6KkS8oSAHkq5GWlCB/NgJ5W3rO2Cj1MK7ahxsCrbTT3a0V/QQH+sErxV4XUWDHx0kkFy25bPmBMBQ6BU3HoHhhYcJB9JhP6NXUWKxnE0raXHB6U9KHpWdQCQI72qevp5fMzcm+AvC85rsynVQhruDA9fp9COe7N56cg1UKGSas89vrN+WlGLYTwi5W+0xYdKEGtGCeNJwXKDU0XqU5uQYnWsMwTENLGtbQMvoGjIFIEMzCRal4rnBAg7D/CSn8MsCvS+FDJJAzoiioJEhZJgAp9n2+1Yznr7H+6eT4YkJ9Mpj60ImcW4i4iHDLn9RydB8dx3QYm3rsX6n4VRrZDsYK6DCGwkwd5n3/INFEpk16fYpP6JtMQpqEMzcOfQGAHXBTEGzuLJ03GYQL9bmV2/7ExDlRf+Uvf1sM2frRtCWmal12pMgtonvSCtR4n1CLUZRdTHDHP1Otwqd+rcdlavnKjUB/OYXQHUJzpNyFoKpQK+2OgrEKpGyIgIBgn2y9QHnTJihZOpEvOKIoHAMGAXHmj21Lym39Mbiow4IF+77xNuewziNVBxr6KD5e+9HzZSBIlUa/AmsDFJFXeyrQakR3FwowTGcADJHcEfhGkXYNGSYo4dh4bxwLM+28xjiqkdn0/3R4UEkvcBrBfn/SzBc1XhKM2VPlJgKSorjDac96V2UnQYXl1/yZPT4DVelgO+soMjexXwYO58VLl5xInQUZI8jc3H2CPnCNb9X05nOxIy4MlecasTqGK6s2az4RjpF2cQP2G28R+7wDPsZDZC/kWtjdoHC7SpdPmqQrUAhMwKVuxCmYTiD9q/O7GHtZvPSN0CAUQN/rymXZNniYLlJDE70bsk6Xxsh4kDOdxe7A2wo7P9F5YvqqRDI6brf79yPCSp4I0jVoO4YnLYtX5nzspR5WB4AKOYtR1ujXbOQpPyYDvfRE3FN5zw0i7reehdi7yV0YDRKRllGCGRk5Yz+Uv1fYl2ZwrnGsqsjgAVo0xEUba8ohjaNMJNwTwZA/wBDWFSCpg1eUH8MYL2zdioxRTqgGQrDZxQyNzyBJPXZF0+oxITJAbj7oNC5JwgDMUJaM5GqlGCWc//KCIrI+aclEe4IA0uzv7cuj6GCdaJONpi13O544vbtIHBF+A+JeDFUQNy61Gki3rtyQ4aUywn6ru314/dkGiP8Iwjo0J/2Txs49ZkwEl4mx+iYUUO55I6pJzU4P+7RRs+DXZkyKUYZqVWrPF4I94m4Wx1tXeE74o9GuX977yvJ/jkdak8+AmoHVjI15V+WwBdARFV2IPirJgVMdsg1Pez2VNHqa7EHWdTkl3XTcyjG9BiueWFvQfXI8aWSkuuRmqi/HUuzqyvLJfNfs0txMqldYYflWB1BS31WkuPJGGwXUCpjiQSktkuBMWwHjSkQxeehqw1Kgz0Trzm7QbtgxiEPDVmWCNCAeCfROTphd1ZNOhzLy6XfJyG6Xgd5MCAZw4xie0Sj5AnY1/akDgNS9YFl3Y06vd6FAsg2gVQJtzG7LVq1OH2frbXNHWH/NY89NNZ4QUSJqL2yEcGADbT38X0bGdukqYlSoliKOcsSTuqhcaemUeYLLoI8+MZor2RxXTRThF1LrHfqf/5LcLAjdl4EERgUysYS2geE+yFdasU91UgUDsc2cSQ1ZoT9+uLOwdgAmifwQqF028INc2IQEDfTmUw3eZxvz7Ud1z3xc1PQfeCvfKsB9jOhRj7rFyb9XcDWLcYj0bByosychMezMLVkFiYcdBBQtvI6K0KRuOZQH2kBsYHJaXTkup8F0eIhO1/GcIwWKpr2mouB7g5TUDJNvORXPXa/mU8bh27TAZYBe2sKx4NSv5OjnHIWD2RuysCzBlUfeNXhDd2jxnHoUlheJ3jBApzURy0fwm2FwwsSU0caQGl0Kv8hopRQE211NnvtLRsmCNrhhpEDoNiZEzD2QdJWKbRRWnaFedXHAELSN0t0bfsCsMf0ktfBoXBoNA+nZN9+pSlmuzspFevmsqqcMllzzvkyXrzoA+Ryo1ePXpdGOoJvhyru+EBRsmOp7MXZ0vNUMUqHLUoKglg1p73sWeZmPc+KAw0pE2zIsFFE5H4192KwDvDxdxEYoDBDNZjbg2bmADTeUKK57IPD4fTYF4c6EnXx/teYMORBDtIhPJneiZny7Nv/zG+YmekIKCoxr6kauE2bZtBLufetNG0BtBY7f+/ImUypMBvdWu/Q7vTMRzw5aQGZWuc1V0HEsItFYMIBnoKGZ0xcarba/TYZq50kCaflFysYjA4EDKHqGdpYWdKYmm+a7TADmW35yfnOYpZYrkpVEtiqF0EujI00aeplNs2k+qyFZNeE3CDPL9P6b4PQ/kataHkVpLSEVGK7EX6rAa7IVNrvZtFvOA6okKvBgMtFDAGZOx88MeBcJ8AR3AgUUeIznAN6tjCUipGDZONm1FjWJp4A3QIzSaIOmZ7DvF/ysYYbM/fFDOV0jntAjRdapxJxL0eThpEhKOjCDDq2ks+3GrwxqIFKLe1WdOzII8XIOPGnwy6LKXVfpSDOTEfaRsGujhpS4hBIsMOqHbl16PJxc4EkaVu9wpEYlF/84NSv5Zum4drMfp9yXbzzAOJqqS4YkI4cBrFrC7bMPiCfgI3nNZAqkk3QOZqR+yyqx+nDQKBBBZ7QKrfGMCL+XpqFaBJU0wpkBdAhbR4hJsmT5aynlvkouoxm/NjD5oe6BzVIO9uktM+/5dEC5P7vZvarmuO/lKXz4sBabVPIATuKTrwbJP8XUkdM6uEctHKXICUJGjaZIWRbZp8czquQYfY6ynBUCfIU+gG6wqSIBmYIm9pZpXdaL121V7q0VjDjmQnXvMe7ysoEZnZL15B0SpxS1jjd83uNIOKZwu5MPzg2NhOx3xMOPYwEn2CUzbSrwAs5OAtrz3GAaUkJOU74XwjaYUmGJdZBS1NJVkGYrToINLKDjxcuIlyfVsKQSG/G4DyiO2SlQvJ0d0Ot1uOG5IFSAkq+PRVMgVMDvOIJMdqjeCFKUGRWBW9wigYvcbU7CQL/7meF2KZAaWl+4y9uhowAX7elogAvItAAxo2+SFxGRsHGEW9BnhlTuWigYxRcnVUBRQHV41LV+Fr5CJYV7sHfeywswx4XMtUx6EkBhR+q8AXXUA8uPJ73Pb49i9KG9fOljvXeyFj9ixgbo6CcbAJ7WHWqKHy/h+YjBwp6VcN7M89FGzQ04qbrQtgrOFybg3gQRTYG5xn73ArkfQWjCJROwy3J38Dx/D7jOa6BBNsitEw1wGq780EEioOeD+ZGp2J66ADiVGMayiHYucMk8nTK2zzT9CnEraAk95kQjy4k0GRElLL5YAKLQErJ5rp1eay9O4Fb6yJGm9U4FaMwPGxtKD6odIIHKoWnhKo1U8KIpFC+MVn59ZXmc7ZTBZfsg6FQ8W10YfTr4u0nYrpHZbZ1jXiLmooF0cOm0+mPnJBXQtepc7n0BqOipNCqI6yyloTeRShNKH04FIo0gcMk0H/xThyN4pPAWjDDkEp3lNNPRNVfpMI44CWRlRgViP64eK0JSRp0WUvCWYumlW/c58Vcz/yMwVcW5oYb9+26TEhwvbxiNg48hl1VI1UXTU//Eta+BMKnGUivctfL5wINDD0giQL1ipt6U7C9cd4+lgqY2lMUZ02Uv6Prs+ZEZer7ZfWBXVghlfOOrClwsoOFKzWEfz6RZu1eCs+K8fLvkts5+BX0gyrFYve0C3qHrn5U/Oh6D/CihmWIrY7HUZRhJaxde+tldu6adYJ+LeXupQw0XExC36RETdNFxcq9glMu4cNQSX9cqR/GQYp+IxUkIcNGWVU7ZtGa6P3XAyodRt0XeS3Tp01AnCh0ZbUh4VrSZeV9RWfSoWyxnY3hzcZ30G/InDq4wxRrEejreBxnhIQbkxenxkaxl+k7eLUQkUR6vKJ2iDFNGX3WmVA1yaOH+mvhBd+sE6vacQzFobwY5BqEAFmejwW5ne7HtVNolOUgJc8CsUxmc/LBi8N5mu9VsIA5HyErnS6zeCz7VLI9+n/hbT6hTokMXTVyXJRKSG2hd2labXTbtmK4fNH3IZBPreSA4FMeVouVN3zG5x9CiGpLw/3pceo4qGqp+rVp+z+7yQ98oEf+nyH4F3+J9IheDBa94Wi63zJbLBCIZm7P0asHGpIJt3PzE3m0S4YIWyXBCVXGikj8MudDPB/6Nm2v4IxJ5gU0ii0guy5SUHqGUYzTP0jIJU5E82RHUXtX4lDdrihBLdP1YaG1AGUC12rQKuIaGvCpMjZC9bWSCYnjDlvpWbkdXMTNeBHLKiuoozMGIvkczmP0aRJSJ8PYnLCVNhKHXBNckH79e8Z8Kc2wUej4sQZoH8qDRGkg86maW/ZQWGNnLcXmq3FlXM6ssR/3P6E/bHMvm6HLrv1yRixit25JsH3/IOr2UV4BWJhxXW5BJ6Xdr07n9kF3ZNAk6/Xpc5MSFmYJ2R7bdL8Kk7q1OU9Elg/tCxJ8giT27wSTySF0GOxg4PbYJdi/Nyia9Nn89CGDulfJemm1aiEr/eleGSN+5MRrVJ4K6lgyTTIW3i9cQ0dAi6FHt0YMbH3wDSAtGLSAccezzxHitt1QdhW36CQgPcA8vIIBh3/JNjf/Obmc2yzpk8edSlS4lVdwgW5vzbYEyFoF4GCBBby1keVNueHAH+evi+H7oOVfS3XuPQSNTXOONAbzJeSb5stwdQHl1ZjrGoE49I8+A9j3t+ahhQj74FCSWpZrj7wRSFJJnnwi1T9HL5qrCFW/JZq6P62XkMWTb+u4lGpKfmmwiJWx178GOG7KbrZGqyWwmuyKWPkNswkZ1q8uptUlviIi+AXh2bOOTOLsrtNkfqbQJeh24reebkINLkjut5r4d9GR/r8CBa9SU0UQhsnZp5cP+RqWCixRm7i4YRFbtZ4EAkhtNa6jHb6gPYQv7MKqkPLRmX3dFsK8XsRLVZ6IEVrCbmNDc8o5mqsogjAQfoC9Bc7R6gfw03m+lQpv6kTfhxscDIX6s0w+fBxtkhjXAXr10UouWCx3C/p/FYwJRS/AXRKkjOb5CLmK4XRe0+xeDDwVkJPZau52bzLEDHCqV0f44pPgKOkYKgTZJ33fmk3Tu8SdxJ02SHM8Fem5SMsWqRyi2F1ynfRJszcFKykdWlNqgDA/L9lKYBmc7Zu/q9ii1FPF47VJkqhirUob53zoiJtVVRVwMR34gV9iqcBaHbRu9kkvqk3yMpfRFG49pKKjIiq7h/VpRwPGTHoY4cg05X5028iHsLvUW/uz+kjPyIEhhcKUwCkJAwbR9pIEGOn8z6svAO8i89sJ3dL5qDWFYbS+HGPRMxYwJItFQN86YESeJQhn2urGiLRffQeLptDl8dAgb+Tp47UQPxWOw17OeChLN1WnzlkPL1T5O+O3Menpn4C3IY5LEepHpnPeZHbvuWfeVtPlkH4LZjPbBrkJT3NoRJzBt86CO0Xq59oQ+8dsm0ymRcmQyn8w71mhmcuEI5byuF+C88VPYly2sEzjlzAQ3vdn/1+Hzguw6qFNNbqenhZGbdiG6RwZaTG7jTA2X9RdXjDN9yj1uQpyO4Lx8KRAcZcbZMafp4wPOd5MdXoFY52V1A8M9hi3sso93+uprE0qYNMjkE22CvK4HuUxqN7oIz5pWuETq1lQAjqlSlqdD2Rnr/ggp/TVkQYjn9lMfYelk2sH5HPdopYo7MHwlV1or9Bxf+QCyLzm92vzG2wjiIjC/ZHEJzeroJl6bdFPTpZho5MV2U86fLQqxNlGIMqCGy+9WYhJ8ob1r0+Whxde9L2PdysETv97O+xVw+VNN1TZSQN5I6l9m5Ip6pLIqLm4a1B1ffH6gHyqT9p82NOjntRWGIofO3bJz5GhkvSWbsXueTAMaJDou99kGLqDlhwBZNEQ4mKPuDvVwSK4WmLluHyhA97pZiVe8g+JxmnJF8IkV/tCs4Jq/HgOoAEGR9tCDsDbDmi3OviUQpG5D8XmKcSAUaFLRXb2lmJTNYdhtYyfjBYZQmN5qT5CNuaD3BVnlkCk7bsMW3AtXkNMMTuW4HjUERSJnVQ0vsBGa1wo3Qh7115XGeTF3NTz8w0440AgU7c3bSXO/KMINaIWXd0oLpoq/0/QJxCQSJ9XnYy1W7TYLBJpHsVWD1ahsA7FjNvRd6mxCiHsm8g6Z0pnzqIpF1dHUtP2ITU5Z1hZHbu+L3BEEStBbL9XYvGfEakv1bmf+bOZGnoiuHEdlBnaChxYKNzB23b8sw8YyT7Ajxfk49eJIAvdbVkdFCe2J0gMefhQ0bIZxhx3fzMIysQNiN8PgOUKxOMur10LduigREDRMZyP4oGWrP1GFY4t6groASsZ421os48wAdnrbovNhLt7ScNULkwZ5AIZJTrbaKYTLjA1oJ3sIuN/aYocm/9uoQHEIlacF1s/TM1fLcPTL38O9fOsjMEIwoPKfvt7opuI9G2Hf/PR4aCLDQ7wNmIdEuXJ/QNL72k5q4NejAldPfe3UVVqzkys8YZ/jYOGOp6c+YzRCrCuq0M11y7TiN6qk7YXRMn/gukxrEimbMQjr3jwRM6dKVZ4RUfWQr8noPXLJq6yh5R3EH1IVOHESst/LItbG2D2vRsZRkAObzvQAAD3mb3/G4NzopI0FAiHfbpq0X72adg6SRj+8OHMShtFxxLZlf/nLgRLbClwl5WmaYSs+yEjkq48tY7Z2bE0N91mJwt+ua0NlRJIDh0HikF4UvSVorFj2YVu9YeS5tfvlVjPSoNu/Zu6dEUfBOT555hahBdN3Sa5Xuj2Rvau1lQNIaC944y0RWj9UiNDskAK1WoL+EfXcC6IbBXFRyVfX/WKXxPAwUyIAGW8ggZ08hcijKTt1YKnUO6QPvcrmDVAb0FCLIXn5id4fD/Jx4tw/gbXs7WF9b2RgXtPhLBG9vF5FEkdHAKrQHZAJC/HWvk7nvzzDzIXZlfFTJoC3JpGgLPBY7SQTjGlUvG577yNutZ1hTfs9/1nkSXK9zzKLRZ3VODeKUovJe0WCq1zVMYxCJMenmNzPIU2S8TA4E7wWmbNkxq9rI2dd6v0VpcAPVMxnDsvWTWFayyqvKZO7Z08a62i/oH2/jxf8rpmfO64in3FLiL1GX8IGtVE9M23yGsIqJbxDTy+LtaMWDaPqkymb5VrQdzOvqldeU0SUi6IirG8UZ3jcpRbwHa1C0Dww9G/SFX3gPvTJQE+kyz+g1BeMILKKO+olcHzctOWgzxYHnOD7dpCRtuZEXACjgqesZMasoPgnuDC4nUviAAxDc5pngjoAITIkvhKwg5d608pdrZcA+qn5TMT6Uo/QzBaOxBCLTJX3Mgk85rMfsnWx86oLxf7p2PX5ONqieTa/qM3tPw4ZXvlAp83NSD8F7+ZgctK1TpoYwtiU2h02HCGioH5tkVCqNVTMH5p00sRy2JU1qyDBP2CII/Dg4WDsIl+zgeX7589srx6YORRQMBfKbodbB743Tl4WLKOEnwWUVBsm94SOlCracU72MSyj068wdpYjyz1FwC2bjQnxnB6Mp/pZ+yyZXtguEaYB+kqhjQ6UUmwSFazOb+rhYjLaoiM+aN9/8KKn0zaCTFpN9eKwWy7/u4EHzO46TdFSNjMfn2iPSJwDPCFHc0I1+vjdAZw5ZjqR/uzi9Zn20oAa5JnLEk/EA3VRWE7J/XrupfFJPtCUuqHPpnlL7ISJtRpSVcB8qsZCm2QEkWoROtCKKxUh3yEcMbWYJwk6DlEBG0bZP6eg06FL3v6RPb7odGuwm7FN8fG4woqtB8e7M5klPpo97GoObNwt+ludTAmxyC5hmcFx+dIvEZKI6igFKHqLH01iY1o7903VzG9QGetyVx5RNmBYUU+zIuSva/yIcECUi4pRmE3VkF2avqulQEUY4yZ/wmNboBzPmAPey3+dSYtBZUjeWWT0pPwCz4Vozxp9xeClIU60qvEFMQCaPvPaA70WlOP9f/ey39macvpGCVa+zfa8gO44wbxpJUlC8GN/pRMTQtzY8Z8/hiNrU+Zq64ZfFGIkdj7m7abcK1EBtws1X4J/hnqvasPvvDSDYWN+QcQVGMqXalkDtTad5rYY0TIR1Eqox3czwPMjKPvF5sFv17Thujr1IZ1Ytl4VX1J0vjXKmLY4lmXipRAro0qVGEcXxEVMMEl54jQMd4J7RjgomU0j1ptjyxY+cLiSyXPfiEcIS2lWDK3ISAy6UZ3Hb5vnPncA94411jcy75ay6B6DSTzK6UTCZR9uDANtPBrvIDgjsfarMiwoax2OlLxaSoYn4iRgkpEGqEkwox5tyI8aKkLlfZ12lO11TxsqRMY89j5JaO55XfPJPDL1LGSnC88Re9Ai+Nu5bZjtwRrvFITUFHPR4ZmxGslQMecgbZO7nHk32qHxYkdvWpup07ojcMCaVrpFAyFZJJbNvBpZfdf39Hdo2kPtT7v0/f8R/B5Nz4f1t9/3zNM/7n6SUHfcWk5dfQFJvcJMgPolGCpOFb/WC0FGWU2asuQyT+rm88ZKZ78Cei/CAh939CH0JYbpZIPtxc2ufXqjS3pHH9lnWK4iJ7OjR/EESpCo2R3MYKyE7rHfhTvWho4cL1QdN4jFTyR6syMwFm124TVDDRXMNveI1Dp/ntwdz8k8kxw7iFSx6+Yx6O+1LzMVrN0BBzziZi9kneZSzgollBnVwBh6oSOPHXrglrOj+QmR/AESrhDpKrWT+8/AiMDxS/5wwRNuGQPLlJ9ovomhJWn8sMLVItQ8N/7IXvtD8kdOoHaw+vBSbFImQsv/OCAIui99E+YSIOMlMvBXkAt+NAZK8wB9Jf8CPtB+TOUOR+z71d/AFXpPBT6+A5FLjxMjLIEoJzrQfquvxEIi+WoUzGR1IzQFNvbYOnxb2PyQ0kGdyXKzW2axQL8lNAXPk6NEjqrRD1oZtKLlFoofrXw0dCNWASHzy+7PSzOUJ3XtaPZsxLDjr+o41fKuKWNmjiZtfkOzItvlV2MDGSheGF0ma04qE3TUEfqJMrXFm7DpK+27DSvCUVf7rbNoljPhha5W7KBqVq0ShUSTbRmuqPtQreVWH4JET5yMhuqMoSd4r/N8sDmeQiQQvi1tcZv7Moc7dT5X5AtCD6kNEGZOzVcNYlpX4AbTsLgSYYliiPyVoniuYYySxsBy5cgb3pD+EK0Gpb0wJg031dPgaL8JZt6sIvzNPEHfVPOjXmaXj4bd4voXzpZ5GApMhILgMbCEWZ2zwgdeQgjNHLbPIt+KqxRwWPLTN6HwZ0Ouijj4UF+Sg0Au8XuIKW0WxlexdrFrDcZJ8Shauat3X0XmHygqgL1nAu2hrJFb4wZXkcS+i36KMyU1yFvYv23bQUJi/3yQpqr/naUOoiEWOxckyq/gq43dFou1DVDaYMZK9tho7+IXXokBCs5GRfOcBK7g3A+jXQ39K4YA8PBRW4m5+yR0ZAxWJncjRVbITvIAPHYRt1EJ3YLiUbqIvoKHtzHKtUy1ddRUQ0AUO41vonZDUOW+mrszw+SW/6Q/IUgNpcXFjkM7F4CSSQ2ExZg85otsMs7kqsQD4OxYeBNDcSpifjMoLb7GEbGWTwasVObmB/bfPcUlq0wYhXCYEDWRW02TP5bBrYsKTGWjnWDDJ1F7zWai0zW/2XsCuvBQjPFcTYaQX3tSXRSm8hsAoDdjArK/OFp6vcWYOE7lizP0Yc+8p16i7/NiXIiiQTp7c7Xus925VEtlKAjUdFhyaiLT7VxDagprMFwix4wZ05u0qj7cDWFd0W9OYHIu3JbJKMXRJ1aYNovugg+QqRN7fNHSi26VSgBpn+JfMuPo3aeqPWik/wI5Rz3BWarPQX4i5+dM0npwVOsX+KsOhC7vDg+OJsz4Q5zlnIeflUWL6QYMbf9WDfLmosLF4Qev3mJiOuHjoor/dMeBpA9iKDkMjYBNbRo414HCxjsHrB4EXNbHzNMDHCLuNBG6Sf+J4MZ/ElVsDSLxjIiGsTPhw8BPjxbfQtskj+dyNMKOOcUYIRBEIqbazz3lmjlRQhplxq673VklMMY6597vu+d89ec/zq7Mi4gQvh87ehYbpOuZEXj5g/Q7S7BFDAAB9DzG35SC853xtWVcnZQoH54jeOqYLR9NDuwxsVthTV7V99n/B7HSbAytbEyVTz/5NhJ8gGIjG0E5j3griULUd5Rg7tQR+90hJgNQKQH2btbSfPcaTOfIexc1db1BxUOhM1vWCpLaYuKr3FdNTt/T3PWCpEUWDKEtzYrjpzlL/wri3MITKsFvtF8QVV/NhVo97aKIBgdliNc10dWdXVDpVtsNn+2UIolrgqdWA4EY8so0YvB4a+aLzMXiMAuOHQrXY0tr+CL10JbvZzgjJJuB1cRkdT7DUqTvnswVUp5kkUSFVtIIFYK05+tQxT6992HHNWVhWxUsD1PkceIrlXuUVRogwmfdhyrf6zzaL8+c0L7GXMZOteAhAVQVwdJh+7nrX7x4LaIIfz2F2v7Dg/uDfz2Fa+4gFm2zHAor8UqimJG3VTJtZEoFXhnDYXvxMJFc6ku2bhbCxzij2z5UNuK0jmp1mnvkVNUfR+SEmj1Lr94Lym75PO7Fs0MIr3GdsWXRXSfgLTVY0FLqba97u1In8NAcY7IC6TjWLigwKEIm43NxTdaVTv9mcKkzuzBkKd8x/xt1p/9BbP7Wyb4bpo1K1gnOpbLvKz58pWl3B55RJ/Z5mRDLPtNQg14jdOEs9+h/V5UVpwrAI8kGbX8KPVPDIMfIqKDjJD9UyDOPhjZ3vFAyecwyq4akUE9mDOtJEK1hpDyi6Ae87sWAClXGTiwPwN7PXWwjxaR79ArHRIPeYKTunVW24sPr/3HPz2IwH8oKH4OlWEmt4BLM6W5g4kMcYbLwj2usodD1088stZA7VOsUSpEVl4w7NMb1EUHMRxAxLF0CIV+0L3iZb+ekB1vSDSFjAZ3hfLJf7gFaXrOKn+mhR+rWw/eTXIcAgl4HvFuBg1LOmOAwJH3eoVEjjwheKA4icbrQCmvAtpQ0mXG0agYp5mj4Rb6mdQ+RV4QBPbxMqh9C7o8nP0Wko2ocnCHeRGhN1XVyT2b9ACsL+6ylUy+yC3QEnaKRIJK91YtaoSrcWZMMwxuM0E9J68Z+YyjA0g8p1PfHAAIROy6Sa04VXOuT6A351FOWhKfTGsFJ3RTJGWYPoLk5FVK4OaYR9hkJvezwF9vQN1126r6isMGXWTqFW+3HL3I/jurlIdDWIVvYY+s6yq7lrFSPAGRdnU7PVwY/SvWbZGpXzy3BQ2LmAJlrONUsZs4oGkly0V267xbD5KMY8woNNsmWG1VVgLCra8aQBBcI4DP2BlNwxhiCtHlaz6OWFoCW0vMR3ErrG7JyMjTSCnvRcsEHgmPnwA6iNpJ2DrFb4gLlhKJyZGaWkA97H6FFdwEcLT6DRQQL++fOkVC4cYGW1TG/3iK5dShRSuiBulmihqgjR45Vi03o2RbQbP3sxt90VxQ6vzdlGfkXmmKmjOi080JSHkLntjvsBJnv7gKscOaTOkEaRQqAnCA4HWtB4XnMtOhpRmH2FH8tTXrIjAGNWEmudQLCkcVlGTQ965Kh0H6ixXbgImQP6b42B49sO5C8pc7iRlgyvSYvcnH9FgQ3azLbQG2cUW96SDojTQStxkOJyOuDGTHAnnWkz29aEwN9FT8EJ4yhXOg+jLTrCPKeEoJ9a7lDXOjEr8AgX4BmnMQ668oW0zYPyQiVMPxKRHtpfnEEyaKhdzNVThlxxDQNdrHeZiUFb6NoY2KwvSb7BnRcpJy+/g/zAYx3fYSN5QEaVD2Y1VsNWxB0BSO12MRsRY8JLfAezRMz5lURuLUnG1ToKk6Q30FughqWN6gBNcFxP/nY/iv+iaUQOa+2Nuym46wtI/DvSfzSp1jEi4SdYBE7YhTiVV5cX9gwboVDMVgZp5YBQlHOQvaDNfcCoCJuYhf5kz5kwiIKPjzgpcRJHPbOhJajeoeRL53cuMahhV8Z7IRr6M4hW0JzT7mzaMUzQpm866zwM7Cs07fJYXuWvjAMkbe5O6V4bu71sOG6JQ4oL8zIeXHheFVavzxmlIyBkgc9IZlEDplMPr8xlcyss4pVUdwK1e7CK2kTsSdq7g5SHRAl3pYUB9Ko4fsh4qleOyJv1z3KFSTSvwEcRO/Ew8ozEDYZSqpfoVW9uhJfYrNAXR0Z3VmeoAD+rVWtwP/13sE/3ICX3HhDG3CMc476dEEC0K3umSAD4j+ZQLVdFOsWL2C1TH5+4KiSWH+lMibo+B55hR3Gq40G1n25sGcN0mEcoU2wN9FCVyQLBhYOu9aHVLWjEKx2JIUZi5ySoHUAI9b8hGzaLMxCZDMLhv8MkcpTqEwz9KFDpCpqQhVmsGQN8m24wyB82FAKNmjgfKRsXRmsSESovAwXjBIoMKSG51p6Um8b3i7GISs7kjTq/PZoioCfJzfKdJTN0Q45kQEQuh9H88M3yEs3DbtRTKALraM0YC8laiMiOOe6ADmTcCiREeAWZelBaEXRaSuj2lx0xHaRYqF65O0Lo5OCFU18A8cMDE4MLYm9w2QSr9NgQAIcRxZsNpA7UJR0e71JL+VU+ISWFk5I97lra8uGg7GlQYhGd4Gc6rxsLFRiIeGO4abP4S4ekQ1fiqDCy87GZHd52fn5aaDGuvOmIofrzpVwMvtbreZ/855OaXTRcNiNE0wzGZSxbjg26v8ko8L537v/XCCWP2MFaArJpvnkep0pA+O86MWjRAZPQRfznZiSIaTppy6m3p6HrNSsY7fDtz7Cl4V/DJAjQDoyiL2uwf1UHVd2AIrzBUSlJaTj4k6NL97a/GqhWKU9RUmjnYKpm2r+JYUcrkCuZKvcYvrg8pDoUKQywY9GDWg03DUFSirlUXBS5SWn/KAntnf0IdHGL/7mwXqDG+LZYjbEdQmqUqq4y54TNmWUP7IgcAw5816YBzwiNIJiE9M4lPCzeI/FGBeYy3p6IAmH4AjXXmvQ4Iy0Y82NTobcAggT2Cdqz6Mx4TdGoq9fn2etrWKUNFyatAHydQTVUQ2S5OWVUlugcNvoUrlA8cJJz9MqOa/W3iVno4zDHfE7zhoY5f5lRTVZDhrQbR8LS4eRLz8iPMyBL6o4PiLlp89FjdokQLaSBmKHUwWp0na5fE3v9zny2YcDXG/jfI9sctulHRbdkI5a4GOPJx4oAJQzVZ/yYAado8KNZUdEFs9ZPiBsausotXMNebEgr0dyopuqfScFJ3ODNPHgclACPdccwv0YJGQdsN2lhoV4HVGBxcEUeUX/alr4nqpcc1CCR3vR7g40zteQg/JvWmFlUE4mAiTpHlYGrB7w+U2KdSwQz2QJKBe/5eiixWipmfP15AFWrK8Sh1GBBYLgzki1wTMhGQmagXqJ2+FuqJ8f0XzXCVJFHQdMAw8xco11HhM347alrAu+wmX3pDFABOvkC+WPX0Uhg1Z5MVHKNROxaR84YV3s12UcM+70cJ460SzEaKLyh472vOMD3XnaK7zxZcXlWqenEvcjmgGNR2OKbI1s8U+iwiW+HotHalp3e1MGDy6BMVIvajnAzkFHbeVsgjmJUkrP9OAwnEHYXVBqYx3q7LvXjoVR0mY8h+ZaOnh053pdsGkmbqhyryN01eVHySr+CkDYkSMeZ1xjPNVM+gVLTDKu2VGsMUJqWO4TwPDP0VOg2/8ITbAUaMGb4LjL7L+Pi11lEVMXTYIlAZ/QHmTENjyx3kDkBdfcvvQt6tKk6jYFM4EG5UXDTaF5+1ZjRz6W7MdJPC+wTkbDUim4p5QQH3b9kGk2Bkilyeur8Bc20wm5uJSBO95GfYDI1EZipoRaH7uVveneqz43tlTZGRQ4a7CNmMHgXyOQQOL6WQkgMUTQDT8vh21aSdz7ERiZT1jK9F+v6wgFvuEmGngSvIUR2CJkc5tx1QygfZnAruONobB1idCLB1FCfO7N1ZdRocT8/Wye+EnDiO9pzqIpnLDl4bkaRKW+ekBVwHn46Shw1X0tclt/0ROijuUB4kIInrVJU4buWf4YITJtjOJ6iKdr1u+flgQeFH70GxKjhdgt/MrwfB4K/sXczQ+9zYcrD4dhY6qZhZ010rrxggWA8JaZyg2pYij8ieYEg1aZJkZK9O1Re7sB0iouf60rK0Gd+AYlp7soqCBCDGwfKeUQhCBn0E0o0GS6PdmjLi0TtCYZeqazqwN+yNINIA8Lk3iPDnWUiIPLGNcHmZDxfeK0iAdxm/T7LnN+gemRL61hHIc0NCAZaiYJR+OHnLWSe8sLrK905B5eEJHNlWq4RmEXIaFTmo49f8w61+NwfEUyuJAwVqZCLFcyHBKAcIVj3sNzfEOXzVKIndxHw+AR93owhbCxUZf6Gs8cz6/1VdrFEPrv330+9s6BtMVPJ3zl/Uf9rUi0Z/opexfdL3ykF76e999GPfVv8fJv/Y/+/5hEMon1tqNFyVRevV9y9/uIvsG3dbB8GRRrgaEXfhx+2xeOFt+cEn3RZanNxdEe2+B6MHpNbrRE53PlDifPvFcp4kO78ILR0T4xyW/WGPyBsqGdoA7zJJCu1TKbGfhnqgnRbxbB2B3UZoeQ2bz2sTVnUwokTcTU21RxN1PYPS3Sar7T0eRIsyCNowr9amwoMU/od9s2APtiKNL6ENOlyKADstAEWKA+sdKDhrJ6BOhRJmZ+QJbAaZ3/5Fq0/lumCgEzGEbu3yi0Y4I4EgVAjqxh4HbuQn0GrRhOWyAfsglQJAVL1y/6yezS2k8RE2MstJLh92NOB3GCYgFXznF4d25qiP4ZCyI4RYGesut6FXK6GwPpKK8WHEkhYui0AyEmr5Ml3uBFtPFdnioI8RiCooa7Z1G1WuyIi3nSNglutc+xY8BkeW3JJXPK6jd2VIMpaSxpVtFq+R+ySK9J6WG5Qvt+C+QH1hyYUOVK7857nFmyDBYgZ/o+AnibzNVqyYCJQvyDXDTK+iXdkA71bY7TL3bvuLxLBQ8kbTvTEY9aqkQ3+MiLWbEgjLzOH+lXgco1ERgzd80rDCymlpaRQbOYnKG/ODoFl46lzT0cjM5FYVvv0qLUbD5lyJtMUaC1pFlTkNONx6lliaX9o0i/1vws5bNKn5OuENQEKmLlcP4o2ZmJjD4zzd3Fk32uQ4uRWkPSUqb4LBe3EXHdORNB2BWsws5daRnMfNVX7isPSb1hMQdAJi1/qmDMfRUlCU74pmnzjbXfL8PVG8NsW6IQM2Ne23iCPIpryJjYbVnm5hCvKpMa7HLViNiNc+xTfDIaKm3jctViD8A1M9YPJNk003VVr4Zo2MuGW8vil8SLaGpPXqG7I4DLdtl8a4Rbx1Lt4w5Huqaa1XzZBtj208EJVGcmKYEuaeN27zT9EE6a09JerXdEbpaNgNqYJdhP1NdqiPKsbDRUi86XvvNC7rME5mrSQtrzAZVndtSjCMqd8BmaeGR4l4YFULGRBeXIV9Y4yxLFdyoUNpiy2IhePSWzBofYPP0eIa2q5JP4j9G8at/AqoSsLAUuRXtvgsqX/zYwsE+of6oSDbUOo4RMJw+DOUTJq+hnqwKim9Yy/napyZNTc2rCq6V9jHtJbxGPDwlzWj/Sk3zF/BHOlT/fSjSq7FqlPI1q6J+ru8Aku008SFINXZfOfnZNOvGPMtEmn2gLPt+H4QLA+/SYe4j398auzhKIp2Pok3mPC5q1IN1HgR+mnEfc4NeeHYwd2/kpszR3cBn7ni9NbIqhtSWFW8xbUJuUPVOeeXu3j0IGZmFNiwaNZ6rH4/zQ2ODz6tFxRLsUYZu1bfd1uIvfQDt4YD/efKYv8VF8bHGDgK22w2Wqwpi43vNCOXFJZCGMqWiPbL8mil6tsmOTXAWCyMCw73e2rADZj2IK6rqksM3EXF2cbLb4vjB14wa/yXK5vwU+05MzERJ5nXsXsW21o7M+gO0js2OyKciP5uF2iXyb2DiptwQeHeqygkrNsqVCSlldxBMpwHi1vfc8RKpP/4L3Lmpq6DZcvhDDfxTCE3splacTcOtXdK2g303dIWBVe2wD/Gvja1cClFQ67gw0t1ZUttsUgQ1Veky8oOpS6ksYEc4bqseCbZy766SvL3FodmnahlWJRgVCNjPxhL/fk2wyvlKhITH/VQCipOI0dNcRa5B1M5HmOBjTLeZQJy237e2mobwmDyJNHePhdDmiknvLKaDbShL+Is1XTCJuLQd2wmdJL7+mKvs294whXQD+vtd88KKk0DXP8B1Xu9J+xo69VOuFgexgTrcvI6SyltuLix9OPuE6/iRJYoBMEXxU4shQMf4Fjqwf1PtnJ/wWSZd29rhZjRmTGgiGTAUQqRz+nCdjeMfYhsBD5Lv60KILWEvNEHfmsDs2L0A252351eUoYxAysVaCJVLdH9QFWAmqJDCODUcdoo12+gd6bW2boY0pBVHWL6LQDK5bYWh1V8vFvi0cRpfwv7cJiMX3AZNJuTddHehTIdU0YQ/sQ1dLoF2xQPcCuHKiuCWOY30DHe1OwcClLAhqAKyqlnIbH/8u9ScJpcS4kgp6HKDUdiOgRaRGSiUCRBjzI5gSksMZKqy7Sd51aeg0tgJ+x0TH9YH2Mgsap9N7ENZdEB0bey2DMTrBA1hn56SErNHf3tKtqyL9b6yXEP97/rc+jgD2N1LNUH6RM9AzP3kSipr06RkKOolR7HO768jjWiH1X92jA7dkg7gcNcjqsZCgfqWw0tPXdLg20cF6vnQypg7gLtkazrHAodyYfENPQZsdfnjMZiNu4nJO97D1/sQE+3vNFzrSDOKw+keLECYf7RJwVHeP/j79833oZ0egonYB2FlFE5qj02B/LVOMJQlsB8uNg3Leg4qtZwntsOSNidR0abbZmAK4sCzvt8Yiuz2yrNCJoH5O8XvX/vLeR/BBYTWj0sOPYM/jyxRd5+/JziKAABaPcw/34UA3aj/gLZxZgRCWN6m4m3demanNgsx0P237/Q+Ew5VYnJPkyCY0cIVHoFn2Ay/e7U4P19APbPFXEHX94N6KhEMPG7iwB3+I+O1jd5n6VSgHegxgaSawO6iQCYFgDsPSMsNOcUj4q3sF6KzGaH/0u5PQoAj/8zq6Uc9MoNrGqhYeb2jQo0WlGlXjxtanZLS24/OIN5Gx/2g684BPDQpwlqnkFcxpmP/osnOXrFuu4PqifouQH0eF5qCkvITQbJw/Zvy5mAHWC9oU+cTiYhJmSfKsCyt1cGVxisKu+NymEQIAyaCgud/V09qT3nk/9s/SWsYtha7yNpzBIMM40rCSGaJ9u6lEkl00vXBiEt7p9P5IBCiavynEOv7FgLqPdeqxRiCwuFVMolSIUBcoyfUC2e2FJSAUgYdVGFf0b0Kn2EZlK97yyxrT2MVgvtRikfdaAW8RwEEfN+B7/eK8bBdp7URpbqn1xcrC6d2UjdsKbzCjBFqkKkoZt7Mrhg6YagE7spkqj0jOrWM+UGQ0MUlG2evP1uE1p2xSv4dMK0dna6ENcNUF+xkaJ7B764NdxLCpuvhblltVRAf7vK5qPttJ/9RYFUUSGcLdibnz6mf7WkPO3MkUUhR2mAOuGv8IWw5XG1ZvoVMnjSAZe6T7WYA99GENxoHkMiKxHlCuK5Gd0INrISImHQrQmv6F4mqU/TTQ8nHMDzCRivKySQ8dqkpQgnUMnwIkaAuc6/FGq1hw3b2Sba398BhUwUZSAIO8XZvnuLdY2n6hOXws+gq9BHUKcKFA6kz6FDnpxLPICa3qGhnc97bo1FT/XJk48LrkHJ2CAtBv0RtN97N21plfpXHvZ8gMJb7Zc4cfI6MbPwsW7AilCSXMFIEUEmir8XLEklA0ztYbGpTTGqttp5hpFTTIqUyaAIqvMT9A/x+Ji5ejA4Bhxb/cl1pUdOD6epd3yilIdO6j297xInoiBPuEDW2/UfslDyhGkQs7Wy253bVnlT+SWg89zYIK/9KXFl5fe+jow2rd5FXv8zDPrmfMXiUPt9QBO/iK4QGbX5j/7Rx1c1vzsY8ONbP3lVIaPrhL4+1QrECTN3nyKavGG0gBBtHvTKhGoBHgMXHStFowN+HKrPriYu+OZ05Frn8okQrPaaxoKP1ULCS/cmKFN3gcH7HQlVjraCeQmtjg1pSQxeuqXiSKgLpxc/1OiZsU4+n4lz4hpahGyWBURLi4642n1gn9qz9bIsaCeEPJ0uJmenMWp2tJmIwLQ6VSgDYErOeBCfSj9P4G/vI7oIF+l/n5fp956QgxGvur77ynawAu3G9MdFbJbu49NZnWnnFcQHjxRuhUYvg1U/e84N4JTecciDAKb/KYIFXzloyuE1eYXf54MmhjTq7B/yBToDzzpx3tJCTo3HCmVPYfmtBRe3mPYEE/6RlTIxbf4fSOcaKFGk4gbaUWe44hVk9SZzhW80yfW5QWBHxmtUzvMhfVQli4gZTktIOZd9mjJ5hsbmzttaHQB29Am3dZkmx3g/qvYocyhZ2PXAWsNQiIaf+Q8W/MWPIK7/TjvCx5q2XRp4lVWydMc2wIQkhadDB0xsnw/kSEyGjLKjI4coVIwtubTF3E7MJ6LS6UOsJKj82XVAVPJJcepfewbzE91ivXZvOvYfsmMevwtPpfMzGmC7WJlyW2j0jh7AF1JLmwEJSKYwIvu6DHc3YnyLH9ZdIBnQ+nOVDRiP+REpqv++typYHIvoJyICGA40d8bR7HR2k7do6UQTHF4oriYeIQbxKe4Th6+/l1BjUtS9hqORh3MbgvYrStXTfSwaBOmAVQZzpYNqsAmQyjY56MUqty3c/xH6GuhNvNaG9vGbG6cPtBM8UA3e8r51D0AR9kozKuGGSMgLz3nAHxDNnc7GTwpLj7/6HeWp1iksDeTjwCLpxejuMtpMnGJgsiku1sOACwQ9ukzESiDRN77YNESxR5LphOlcASXA5uIts1LnBIcn1J7BLWs49DMALSnuz95gdOrTZr0u1SeYHinno/pE58xYoXbVO/S+FEMMs5qyWkMnp8Q3ClyTlZP52Y9nq7b8fITPuVXUk9ohG5EFHw4gAEcjFxfKb3xuAsEjx2z1wxNbSZMcgS9GKyW3R6KwJONgtA64LTyxWm8Bvudp0M1FdJPEGopM4Fvg7G/hsptkhCfHFegv4ENwxPeXmYhxwZy7js+BeM27t9ODBMynVCLJ7RWcBMteZJtvjOYHb5lOnCLYWNEMKC59BA7covu1cANa2PXL05iGdufOzkgFqqHBOrgQVUmLEc+Mkz4Rq8O6WkNr7atNkH4M8d+SD1t/tSzt3oFql+neVs+AwEI5JaBJaxARtY2Z4mKoUqxds4UpZ0sv3zIbNoo0J4fihldQTX3XNcuNcZmcrB5LTWMdzeRuAtBk3cZHYQF6gTi3PNuDJ0nmR+4LPLoHvxQIxRgJ9iNNXqf2SYJhcvCtJiVWo85TsyFOuq7EyBPJrAdhEgE0cTq16FQXhYPJFqSfiVn0IQnPOy0LbU4BeG94QjdYNB0CiQ3QaxQqD2ebSMiNjaVaw8WaM4Z5WnzcVDsr4eGweSLa2DE3BWViaxhZFIcSTjgxNCAfelg+hznVOYoe5VqTYs1g7WtfTm3e4/WduC6p+qqAM8H4ZyrJCGpewThTDPe6H7CzX/zQ8Tm+r65HeZn+MsmxUciEWPlAVaK/VBaQBWfoG/aRL/jSZIQfep/89GjasWmbaWzeEZ2R1FOjvyJT37O9B8046SRSKVEnXWlBqbkb5XCS3qFeuE9xb9+frEknxWB5h1D/hruz2iVDEAS7+qkEz5Ot5agHJc7WCdY94Ws61sURcX5nG8UELGBAHZ3i+3VulAyT0nKNNz4K2LBHBWJcTBX1wzf+//u/j/9+//v87+9/l9Lbh/L/uyNYiTsWV2LwsjaA6MxTuzFMqmxW8Jw/+IppdX8t/Clgi1rI1SN0UC/r6tX/4lUc2VV1OQReSeCsjUpKZchw4XUcjHfw6ryCV3R8s6VXm67vp4n+lcPV9gJwmbKQEsmrJi9c2vkwrm8HFbVYNTaRGq8D91t9n5+U+aD/hNtN3HjC/nC/vUoGFSCkXP+NlRcmLUqLbiUBl4LYf1U/CCvwtd3ryCH8gUmGITAxiH1O5rnGTz7y1LuFjmnFGQ1UWuM7HwfXtWl2fPFKklYwNUpF2IL/TmaRETjQiM5SJacI+3Gv5MBU8lP5Io6gWkawpyzNEVGqOdx4YlO1dCvjbWFZWbCmeiFKPSlMKtKcMFLs/KQxtgAHi7NZNCQ32bBAW2mbHflVZ8wXKi1JKVHkW20bnYnl3dKWJeWJOiX3oKPBD6Zbi0ZvSIuWktUHB8qDR8DMMh1ZfkBL9FS9x5r0hBGLJ8pUCJv3NYH+Ae8p40mZWd5m5fhobFjQeQvqTT4VKWIYfRL0tfaXKiVl75hHReuTJEcqVlug+eOIIc4bdIydtn2K0iNZPsYWQvQio2qbO3OqAlPHDDOB7DfjGEfVF51FqqNacd6QmgFKJpMfLp5DHTv4wXlONKVXF9zTJpDV4m1sYZqJPhotcsliZM8yksKkCkzpiXt+EcRQvSQqmBS9WdWkxMTJXPSw94jqI3varCjQxTazjlMH8jTS8ilaW8014/vwA/LNa+YiFoyyx3s/KswP3O8QW1jtq45yTM/DX9a8M4voTVaO2ebvw1EooDw/yg6Y1faY+WwrdVs5Yt0hQ5EwRfYXSFxray1YvSM+kYmlpLG2/9mm1MfmbKHXr44Ih8nVKb1M537ZANUkCtdsPZ80JVKVKabVHCadaLXg+IV8i5GSwpZti0h6diTaKs9sdpUKEpd7jDUpYmHtiX33SKiO3tuydkaxA7pEc9XIQEOfWJlszj5YpL5bKeQyT7aZSBOamvSHl8xsWvgo26IP/bqk+0EJUz+gkkcvlUlyPp2kdKFtt7y5aCdks9ZJJcFp5ZWeaWKgtnXMN3ORwGLBE0PtkEIek5FY2aVssUZHtsWIvnljMVJtuVIjpZup/5VL1yPOHWWHkOMc6YySWMckczD5jUj2mlLVquFaMU8leGVaqeXis+aRRL8zm4WuBk6cyWfGMxgtr8useQEx7k/PvRoZyd9nde1GUCV84gMX8Ogu/BWezYPSR27llzQnA97oo0pYyxobYUJfsj+ysTm9zJ+S4pk0TGo9VTG0KjqYhTmALfoDZVKla2b5yhv241PxFaLJs3i05K0AAIdcGxCJZmT3ZdT7CliR7q+kur7WdQjygYtOWRL9B8E4s4LI8KpAj7bE0dg7DLOaX+MGeAi0hMMSSWZEz+RudXbZCsGYS0QqiXjH9XQbd8sCB+nIVTq7/T/FDS+zWY9q7Z2fdq1tdLb6v3hKKVDAw5gjj6o9r1wHFROdHc18MJp4SJ2Ucvu+iQ9EgkekW8VCM+psM6y+/2SBy8tNN4a3L1MzP+OLsyvESo5gS7IQOnIqMmviJBVc6zbVG1n8eXiA3j46kmvvtJlewwNDrxk4SbJOtP/TV/lIVK9ueShNbbMHfwnLTLLhbZuO79ec5XvfgRwLFK+w1r5ZWW15rVFZrE+wKqNRv5KqsLNfpGgnoUU6Y71NxEmN7MyqwqAQqoIULOw/LbuUB2+uE75gJt+kq1qY4LoxV+qR/zalupea3D5+WMeaRIn0sAI6DDWDh158fqUb4YhAxhREbUN0qyyJYkBU4V2KARXDT65gW3gRsiv7xSPYEKLwzgriWcWgPr0sbZnv7m1XHNFW6xPdGNZUdxFiUYlmXNjDVWuu7LCkX/nVkrXaJhiYktBISC2xgBXQnNEP+cptWl1eG62a7CPXrnrkTQ5BQASbEqUZWMDiZUisKyHDeLFOaJILUo5f6iDt4ZO8MlqaKLto0AmTHVVbkGuyPa1R/ywZsWRoRDoRdNMMHwYTsklMVnlAd2S0282bgMI8fiJpDh69OSL6K3qbo20KfpNMurnYGQSr/stFqZ7hYsxKlLnKAKhsmB8AIpEQ4bd/NrTLTXefsE6ChRmKWjXKVgpGoPs8GAicgKVw4K0qgDgy1A6hFq1WRat3fHF+FkU+b6H4NWpOU3KXTxrIb2qSHAb+qhm8hiSROi/9ofapjxhyKxxntPpge6KL5Z4+WBMYkAcE6+0Hd3Yh2zBsK2MV3iW0Y6cvOCroXlRb2MMJtdWx+3dkFzGh2Pe3DZ9QpSqpaR/rE1ImOrHqYYyccpiLC22amJIjRWVAherTfpQLmo6/K2pna85GrDuQPlH1Tsar8isAJbXLafSwOof4gg9RkAGm/oYpBQQiPUoyDk2BCQ1k+KILq48ErFo4WSRhHLq/y7mgw3+L85PpP6xWr6cgp9sOjYjKagOrxF148uhuaWtjet953fh1IQiEzgC+d2IgBCcUZqgTAICm2bR8oCjDLBsmg+ThyhfD+zBalsKBY1Ce54Y/t9cwfbLu9SFwEgphfopNA3yNxgyDafUM3mYTovZNgPGdd4ZFFOj1vtfFW3u7N+iHEN1HkeesDMXKPyoCDCGVMo4GCCD6PBhQ3dRZIHy0Y/3MaE5zU9mTCrwwnZojtE+qNpMSkJSpmGe0EzLyFelMJqhfFQ7a50uXxZ8pCc2wxtAKWgHoeamR2O7R+bq7IbPYItO0esdRgoTaY38hZLJ5y02oIVwoPokGIzxAMDuanQ1vn2WDQ00Rh6o5QOaCRu99fwDbQcN0XAuqkFpxT/cfz3slGRVokrNU0iqiMAJFEbKScZdmSkTUznC0U+MfwFOGdLgsewRyPKwBZYSmy6U325iUhBQNxbAC3FLKDV9VSOuQpOOukJ/GAmu/tyEbX9DgEp6dv1zoU0IqzpG6gssSjIYRVPGgU1QAQYRgIT8gEV0EXr1sqeh2I6rXjtmoCYyEDCe/PkFEi/Q48FuT29p557iN+LCwk5CK/CZ2WdAdfQZh2Z9QGrzPLSNRj5igUWzl9Vi0rCqH8G1Kp4QMLkuwMCAypdviDXyOIk0AHTM8HBYKh3b0/F+DxoNj4ZdoZfCpQVdnZarqoMaHWnMLNVcyevytGsrXQEoIbubqWYNo7NRHzdc0zvT21fWVirj7g36iy6pxogfvgHp1xH1Turbz8QyyHnXeBJicpYUctbzApwzZ1HT+FPEXMAgUZetgeGMwt4G+DHiDT2Lu+PT21fjJCAfV16a/Wu1PqOkUHSTKYhWW6PhhHUlNtWzFnA7MbY+r64vkwdpfNB2JfWgWXAvkzd42K4lN9x7Wrg4kIKgXCb4mcW595MCPJ/cTfPAMQMFWwnqwde4w8HZYJFpQwcSMhjVz4B8p6ncSCN1X4klxoIH4BN2J6taBMj6lHkAOs8JJAmXq5xsQtrPIPIIp/HG6i21xMGcFgqDXSRF0xQg14d2uy6HgKE13LSvQe52oShF5Jx1R6avyL4thhXQZHfC94oZzuPUBKFYf1VvDaxIrtV6dNGSx7DO0i1p6CzBkuAmEqyWceQY7F9+U0ObYDzoa1iKao/cOD/v6Q9gHrrr1uCeOk8fST9MG23Ul0KmM3r+Wn6Hi6WAcL7gEeaykicvgjzkjSwFsAXIR81Zx4QJ6oosVyJkCcT+4xAldCcihqvTf94HHUPXYp3REIaR4dhpQF6+FK1H0i9i7Pvh8owu3lO4PT1iuqu+DkL2Bj9+kdfGAg2TXw03iNHyobxofLE2ibjsYDPgeEQlRMR7afXbSGQcnPjI2D+sdtmuQ771dbASUsDndU7t58jrrNGRzISvwioAlHs5FA+cBE5Ccznkd8NMV6BR6ksnKLPZnMUawRDU1MZ/ib3xCdkTblHKu4blNiylH5n213yM0zubEie0o4JhzcfAy3H5qh2l17uLooBNLaO+gzonTH2uF8PQu9EyH+pjGsACTMy4cHzsPdymUSXYJOMP3yTkXqvO/lpvt0cX5ekDEu9PUfBeZODkFuAjXCaGdi6ew4qxJ8PmFfwmPpkgQjQlWqomFY6UkjmcnAtJG75EVR+NpzGpP1Ef5qUUbfowrC3zcSLX3BxgWEgEx/v9cP8H8u1Mvt9/rMDYf6sjwU1xSOPBgzFEeJLMRVFtKo5QHsUYT8ZRLCah27599EuqoC9PYjYO6aoAMHB8X1OHwEAYouHfHB3nyb2B+SnZxM/vw/bCtORjLMSy5aZoEpvgdGvlJfNPFUu/p7Z4VVK1hiI0/UTuB3ZPq4ohEbm7Mntgc1evEtknaosgZSwnDC2BdMmibpeg48X8Ixl+/8+xXdbshQXUPPvx8jT3fkELivHSmqbhblfNFShWAyQnJ3WBU6SMYSIpTDmHjdLVAdlADdz9gCplZw6mTiHqDwIsxbm9ErGusiVpg2w8Q3khKV/R9Oj8PFeF43hmW/nSd99nZzhyjCX3QOZkkB6BsH4H866WGyv9E0hVAzPYah2tkRfQZMmP2rinfOeQalge0ovhduBjJs9a1GBwReerceify49ctOh5/65ATYuMsAkVltmvTLBk4oHpdl6i+p8DoNj4Fb2vhdFYer2JSEilEwPd5n5zNoGBXEjreg/wh2NFnNRaIUHSOXa4eJRwygZoX6vnWnqVdCRT1ARxeFrNBJ+tsdooMwqnYhE7zIxnD8pZH+P0Nu1wWxCPTADfNWmqx626IBJJq6NeapcGeOmbtXvl0TeWG0Y7OGGV4+EHTtNBIT5Wd0Bujl7inXgZgfXTM5efD3qDTJ54O9v3Bkv+tdIRlq1kXcVD0BEMirmFxglNPt5pedb1AnxuCYMChUykwsTIWqT23XDpvTiKEru1cTcEMeniB+HQDehxPXNmkotFdwUPnilB/u4Nx5Xc6l8J9jH1EgKZUUt8t8cyoZleDBEt8oibDmJRAoMKJ5Oe9CSWS5ZMEJvacsGVdXDWjp/Ype5x0p9PXB2PAwt2LRD3d+ftNgpuyvxlP8pB84oB1i73vAVpwyrmXW72hfW6Dzn9Jkj4++0VQ4d0KSx1AsDA4OtXXDo63/w+GD+zC7w5SJaxsmnlYRQ4dgdjA7tTl2KNLnpJ+mvkoDxtt1a4oPaX3EVqj96o9sRKBQqU7ZOiupeAIyLMD+Y3YwHx30XWHB5CQiw7q3mj1EDlP2eBsZbz79ayUMbyHQ7s8gu4Lgip1LiGJj7NQj905/+rgUYKAA5qdrlHKIknWmqfuR+PB8RdBkDg/NgnlT89G72h2NvySnj7UyBwD+mi/IWs1xWbxuVwUIVXun5cMqBtFbrccI+DILjsVQg6eeq0itiRfedn89CvyFtpkxaauEvSANuZmB1p8FGPbU94J9medwsZ9HkUYjmI7OH5HuxendLbxTaYrPuIfE2ffXFKhoNBUp33HsFAXmCV/Vxpq5AYgFoRr5Ay93ZLRlgaIPjhZjXZZChT+aE5iWAXMX0oSFQEtwjiuhQQItTQX5IYrKfKB+queTNplR1Hoflo5/I6aPPmACwQCE2jTOYo5Dz1cs7Sod0KTG/3kEDGk3kUaUCON19xSJCab3kNpWZhSWkO8l+SpW70Wn3g0ciOIJO5JXma6dbos6jyisuxXwUUhj2+1uGhcvuliKtWwsUTw4gi1c/diEEpZHoKoxTBeMDmhPhKTx7TXWRakV8imJR355DcIHkR9IREHxohP4TbyR5LtFU24umRPRmEYHbpe1LghyxPx7YgUHjNbbQFRQhh4KeU1EabXx8FS3JAxp2rwRDoeWkJgWRUSKw6gGP5U2PuO9V4ZuiKXGGzFQuRuf+tkSSsbBtRJKhCi3ENuLlXhPbjTKD4djXVnfXFds6Zb+1XiUrRfyayGxJq1+SYBEfbKlgjiSmk0orgTqzSS+DZ5rTqsJbttiNtp+KMqGE2AHGFw6jQqM5vD6vMptmXV9OAjq49Uf/Lx9Opam+Hn5O9p8qoBBAQixzQZ4eNVkO9sPzJAMyR1y4/RCQQ1s0pV5KAU5sKLw3tkcFbI/JqrjCsK4Mw+W8aod4lioYuawUiCyVWBE/qPaFi5bnkgpfu/ae47174rI1fqQoTbW0HrU6FAejq7ByM0V4zkZTg02/YJK2N7hUQRCeZ4BIgSEqgD8XsjzG6LIsSbuHoIdz/LhFzbNn1clci1NHWJ0/6/O8HJMdIpEZbqi1RrrFfoo/rI/7ufm2MPG5lUI0IYJ4MAiHRTSOFJ2oTverFHYXThkYFIoyFx6rMYFgaOKM4xNWdlOnIcKb/suptptgTOTdVIf4YgdaAjJnIAm4qNNHNQqqAzvi53GkyRCEoseUBrHohZsjUbkR8gfKtc/+Oa72lwxJ8Mq6HDfDATbfbJhzeIuFQJSiw1uZprHlzUf90WgqG76zO0eCB1WdPv1IT6sNxxh91GEL2YpgC97ikFHyoaH92ndwduqZ6IYjkg20DX33MWdoZk7QkcKUCgisIYslOaaLyvIIqRKWQj16jE1DlQWJJaPopWTJjXfixEjRJJo8g4++wuQjbq+WVYjsqCuNIQW3YjnxKe2M5ZKEqq+cX7ZVgnkbsU3RWIyXA1rxv4kGersYJjD//auldXGmcEbcfTeF16Y1708FB1HIfmWv6dSFi6oD4E+RIjCsEZ+kY7dKnwReJJw3xCjKvi3kGN42rvyhUlIz0Bp+fNSV5xwFiuBzG296e5s/oHoFtUyUplmPulIPl+e1CQIQVtjlzLzzzbV+D/OVQtYzo5ixtMi5BmHuG4N/uKfJk5UIREp7+12oZlKtPBomXSzAY0KgtbPzzZoHQxujnREUgBU+O/jKKhgxVhRPtbqyHiUaRwRpHv7pgRPyUrnE7fYkVblGmfTY28tFCvlILC04Tz3ivkNWVazA+OsYrxvRM/hiNn8Fc4bQBeUZABGx5S/xFf9Lbbmk298X7iFg2yeimvsQqqJ+hYbt6uq+Zf9jC+Jcwiccd61NKQtFvGWrgJiHB5lwi6fR8KzYS7EaEHf/ka9EC7H8D+WEa3TEACHBkNSj/cXxFeq4RllC+fUFm2xtstYLL2nos1DfzsC9vqDDdRVcPA3Ho95aEQHvExVThXPqym65llkKlfRXbPTRiDepdylHjmV9YTWAEjlD9DdQnCem7Aj/ml58On366392214B5zrmQz/9ySG2mFqEwjq5sFl5tYJPw5hNz8lyZPUTsr5E0F2C9VMPnZckWP7+mbwp/BiN7f4kf7vtGnZF2JGvjK/sDX1RtcFY5oPQnE4lIAYV49U3C9SP0LCY/9i/WIFK9ORjzM9kG/KGrAuwFmgdEpdLaiqQNpCTGZVuAO65afkY1h33hrqyLjZy92JK3/twdj9pafFcwfXONmPQWldPlMe7jlP24Js0v9m8bIJ9TgS2IuRvE9ZVRaCwSJYOtAfL5H/YS4FfzKWKbek+GFulheyKtDNlBtrdmr+KU+ibHTdalzFUmMfxw3f36x+3cQbJLItSilW9cuvZEMjKw987jykZRlsH/UI+HlKfo2tLwemBEeBFtmxF2xmItA/dAIfQ+rXnm88dqvXa+GapOYVt/2waFimXFx3TC2MUiOi5/Ml+3rj/YU6Ihx2hXgiDXFsUeQkRAD6wF3SCPi2flk7XwKAA4zboqynuELD312EJ88lmDEVOMa1W/K/a8tGylZRMrMoILyoMQzzbDJHNZrhH77L9qSC42HVmKiZ5S0016UTp83gOhCwz9XItK9fgXfK3F5d7nZCBUekoLxrutQaPHa16Rjsa0gTrzyjqTnmcIcrxg6X6dkKiucudc0DD5W4pJPf0vuDW8r5/uw24YfMuxFRpD2ovT2mFX79xH6Jf+MVdv2TYqR6/955QgVPe3JCD/WjAYcLA9tpXgFiEjge2J5ljeI/iUzg91KQuHkII4mmHZxC3XQORLAC6G7uFn5LOmlnXkjFdoO976moNTxElS8HdxWoPAkjjocDR136m2l+f5t6xaaNgdodOvTu0rievnhNAB79WNrVs6EsPgkgfahF9gSFzzAd+rJSraw5Mllit7vUP5YxA843lUpu6/5jAR0RvH4rRXkSg3nE+O5GFyfe+L0s5r3k05FyghSFnKo4TTgs07qj4nTLqOYj6qaW9knJTDkF5OFMYbmCP+8H16Ty482OjvERV6OFyw043L9w3hoJi408sR+SGo1WviXUu8d7qS+ehKjpKwxeCthsm2LBFSFeetx0x4AaKPxtp3CxdWqCsLrB1s/j5TAhc1jNZsXWl6tjo/WDoewxzg8T8NnhZ1niUwL/nhfygLanCnRwaFGDyLw+sfZhyZ1UtYTp8TYB6dE7R3VsKKH95CUxJ8u8N+9u2/9HUNKHW3x3w5GQrfOPafk2w5qZq8MaHT0ebeY3wIsp3rN9lrpIsW9c1ws3VNV+JwNz0Lo9+V7zZr6GD56We6gWVIvtmam5GPPkVAbr74r6SwhuL+TRXtW/0pgyX16VNl4/EAD50TnUPuwrW6OcUO2VlWXS0inq872kk7GUlW6o/ozFKq+Sip6LcTtSDfDrPTcCHhx75H8BeRon+KG2wRwzfDgWhALmiWOMO6h3pm1UCZEPEjScyk7tdLx6WrdA2N1QTPENvNnhCQjW6kl057/qv7IwRryHrZBCwVSbLLnFRiHdTwk8mlYixFt1slEcPD7FVht13HyqVeyD55HOXrh2ElAxJyinGeoFzwKA91zfrdLvDxJSjzmImfvTisreI25EDcVfGsmxLVbfU8PGe/7NmWWKjXcdTJ11jAlVIY/Bv/mcxg/Q10vCHwKG1GW/XbJq5nxDhyLqiorn7Wd7VEVL8UgVzpHMjQ+Z8DUgSukiVwWAKkeTlVVeZ7t1DGnCgJVIdBPZAEK5f8CDyDNo7tK4/5DBjdD5MPV86TaEhGsLVFPQSI68KlBYy84FievdU9gWh6XZrugvtCZmi9vfd6db6V7FmoEcRHnG36VZH8N4aZaldq9zZawt1uBFgxYYx+Gs/qW1jwANeFy+LCoymyM6zgG7j8bGzUyLhvrbJkTYAEdICEb4kMKusKT9V3eIwMLsjdUdgijMc+7iKrr+TxrVWG0U+W95SGrxnxGrE4eaJFfgvAjUM4SAy8UaRwE9j6ZQH5qYAWGtXByvDiLSDfOD0yFA3UCMKSyQ30fyy1mIRg4ZcgZHLNHWl+c9SeijOvbOJxoQy7lTN2r3Y8p6ovxvUY74aOYbuVezryqXA6U+fcp6wSV9X5/OZKP18tB56Ua0gMyxJI7XyNT7IrqN8GsB9rL/kP5KMrjXxgqKLDa+V5OCH6a5hmOWemMUsea9vQl9t5Oce76PrTyTv50ExOqngE3PHPfSL//AItPdB7kGnyTRhVUUFNdJJ2z7RtktZwgmQzhBG/G7QsjZmJfCE7k75EmdIKH7xlnmDrNM/XbTT6FzldcH/rcRGxlPrv4qDScqE7JSmQABJWqRT/TUcJSwoQM+1jvDigvrjjH8oeK2in1S+/yO1j8xAws/T5u0VnIvAPqaE1atNuN0cuRliLcH2j0nTL4JpcR7w9Qya0JoaHgsOiALLCCzRkl1UUESz+ze/gIXHGtDwgYrK6pCFKJ1webSDog4zTlPkgXZqxlQDiYMjhDpwTtBW2WxthWbov9dt2X9XFLFmcF+eEc1UaQ74gqZiZsdj63pH1qcv3Vy8JYciogIVKsJ8Yy3J9w/GhjWVSQAmrS0BPOWK+RKV+0lWqXgYMnIFwpcZVD7zPSp547i9HlflB8gVnSTGmmq1ClO081OW/UH11pEQMfkEdDFzjLC1Cdo/BdL3s7cXb8J++Hzz1rhOUVZFIPehRiZ8VYu6+7Er7j5PSZu9g/GBdmNzJmyCD9wiswj9BZw+T3iBrg81re36ihMLjoVLoWc+62a1U/7qVX5CpvTVF7rocSAKwv4cBVqZm7lLDS/qoXs4fMs/VQi6BtVbNA3uSzKpQfjH1o3x4LrvkOn40zhm6hjduDglzJUwA0POabgdXIndp9fzhOo23Pe+Rk9GSLX0d71Poqry8NQDTzNlsa+JTNG9+UrEf+ngxCjGEsDCc0bz+udVRyHQI1jmEO3S+IOQycEq7XwB6z3wfMfa73m8PVRp+iOgtZfeSBl01xn03vMaQJkyj7vnhGCklsCWVRUl4y+5oNUzQ63B2dbjDF3vikd/3RUMifPYnX5Glfuk2FsV/7RqjI9yKTbE8wJY+74p7qXO8+dIYgjtLD/N8TJtRh04N9tXJA4H59IkMmLElgvr0Q5OCeVfdAt+5hkh4pQgfRMHpL74XatLQpPiOyHRs/OdmHtBf8nOZcxVKzdGclIN16lE7kJ+pVMjspOI+5+TqLRO6m0ZpNXJoZRv9MPDRcAfJUtNZHyig/s2wwReakFgPPJwCQmu1I30/tcBbji+Na53i1W1N+BqoY7Zxo+U/M9XyJ4Ok2SSkBtoOrwuhAY3a03Eu6l8wFdIG1cN+e8hopTkiKF093KuH/BcB39rMiGDLn6XVhGKEaaT/vqb/lufuAdpGExevF1+J9itkFhCfymWr9vGb3BTK4j598zRH7+e+MU9maruZqb0pkGxRDRE1CD4Z8LV4vhgPidk5w2Bq816g3nHw1//j3JStz7NR9HIWELO8TMn3QrP/zZp//+Dv9p429/ogv+GATR+n/UdF+ns9xNkXZQJXY4t9jMkJNUFygAtzndXwjss+yWH9HAnLQQfhAskdZS2l01HLWv7L7us5uTH409pqitvfSOQg/c+Zt7k879P3K9+WV68n7+3cZfuRd/dDPP/03rn+d+/nBvWfgDlt8+LzjqJ/vx3CnNOwiXhho778C96iD+1TBvRZYeP+EH81LE0vVwOOrmCLB3iKzI1x+vJEsrPH4uF0UB4TJ4X3uDfOCo3PYpYe0MF4bouh0DQ/l43fxUF7Y+dpWuvTSffB0yO2UQUETI/LwCZE3BvnevJ7c9zUlY3H58xzke6DNFDQG8n0WtDN4LAYN4nogKav1ezOfK/z+t6tsCTp+dhx4ymjWuCJk1dEUifDP+HyS4iP/Vg9B2jTo9L4NbiBuDS4nuuHW6H+JDQn2JtqRKGkEQPEYE7uzazXIkcxIAqUq1esasZBETlEZY7y7Jo+RoV/IsjY9eIMkUvr42Hc0xqtsavZvhz1OLwSxMOTuqzlhb0WbdOwBH9EYiyBjatz40bUxTHbiWxqJ0uma19qhPruvcWJlbiSSH48OLDDpaHPszvyct41ZfTu10+vjox6kOqK6v0K/gEPphEvMl/vwSv+A4Hhm36JSP9IXTyCZDm4kKsqD5ay8b1Sad/vaiyO5N/sDfEV6Z4q95E+yfjxpqBoBETW2C7xl4pIO2bDODDFurUPwE7EWC2Uplq+AHmBHvir2PSgkR12/Ry65O0aZtQPeXi9mTlF/Wj5GQ+vFkYyhXsLTjrBSP9hwk4GPqDP5rBn5/l8b0mLRAvRSzXHc293bs3s8EsdE3m2exxidWVB4joHR+S+dz5/W+v00K3TqN14CDBth8eWcsTbiwXPsygHdGid0PEdy6HHm2v/IUuV5RVapYmzGsX90mpnIdNGcOOq64Dbc5GUbYpD9M7S+6cLY//QmjxFLP5cuTFRm3vA5rkFZroFnO3bjHF35uU3s8mvL7Tp9nyTc4mymTJ5sLIp7umSnGkO23faehtz3mmTS7fbVx5rP7x3HXIjRNeq/A3xCs9JNB08c9S9BF2O3bOur0ItslFxXgRPdaapBIi4dRpKGxVz7ir69t/bc9qTxjvtOyGOfiLGDhR4fYywHv1WdOplxIV87TpLBy3Wc0QP0P9s4G7FBNOdITS/tep3o3h1TEa5XDDii7fWtqRzUEReP2fbxz7bHWWJdbIOxOUJZtItNZpTFRfj6vm9sYjRxQVO+WTdiOhdPeTJ+8YirPvoeL88l5iLYOHd3b/Imkq+1ZN1El3UikhftuteEYxf1Wujof8Pr4ICTu5ezZyZ4tHQMxlzUHLYO2VMOoNMGL/20S5i2o2obfk+8qqdR7xzbRDbgU0lnuIgz4LelQ5XS7xbLuSQtNS95v3ZUOdaUx/Qd8qxCt6xf2E62yb/HukLO6RyorV8KgYl5YNc75y+KvefrxY+lc/64y9kvWP0a0bDz/rojq+RWjO06WeruWqNFU7r3HPIcLWRql8ICZsz2Ls/qOm/CLn6++X+Qf7mGspYCrZod/lpl6Rw4xN/yuq8gqV4B6aHk1hVE1SfILxWu5gvXqbfARYQpspcxKp1F/c8XOPzkZvmoSw+vEqBLdrq1fr3wAPv5NnM9i8F+jdAuxkP5Z71c6uhK3enlnGymr7UsWZKC12qgUiG8XXGQ9mxnqz4GSIlybF9eXmbqj2sHX+a1jf0gRoONHRdRSrIq03Ty89eQ1GbV/Bk+du4+V15zls+vvERvZ4E7ZbnxWTVjDjb4o/k8jlw44pTIrUGxxuJvBeO+heuhOjpFsO6lVJ/aXnJDa/bM0Ql1cLbXE/Pbv3EZ3vj3iVrB5irjupZTzlnv677NrI9UNYNqbPgp/HZXS+lJmk87wec+7YOxTDo2aw2l3NfDr34VNlvqWJBknuK7oSlZ6/T10zuOoPZOeoIk81N+sL843WJ2Q4Z0fZ3scsqC/JV2fuhWi1jGURSKZV637lf53Xnnx16/vKEXY89aVJ0fv91jGdfG+G4+sniwHes4hS+udOr4RfhFhG/F5gUG35QaU+McuLmclb5ZWmR+sG5V6nf+PxYzlrnFGxpZaK8eqqVo0NfmAWoGfXDiT/FnUbWvzGDOTr8aktOZWg4BYvz5YH12ZbfCcGtNk+dDAZNGWvHov+PIOnY9Prjg8h/wLRrT69suaMVZ5bNuK00lSVpnqSX1NON/81FoP92rYndionwgOiA8WMf4vc8l15KqEEG4yAm2+WAN5Brfu1sq9suWYqgoajgOYt/JCk1gC8wPkK+XKCtRX6TAtgvrnuBgNRmn6I8lVDipOVB9kX6Oxkp4ZKyd1M6Gj8/v2U7k+YQBL95Kb9PQENucJb0JlW3b5tObN7m/Z1j1ev388d7o15zgXsI9CikAGAViR6lkJv7nb4Ak40M2G8TJ447kN+pvfHiOFjSUSP6PM+QfbAywKJCBaxSVxpizHseZUyUBhq59vFwrkyGoRiHbo0apweEZeSLuNiQ+HAekOnarFg00dZNXaPeoHPTRR0FmEyqYExOVaaaO8c0uFUh7U4e/UxdBmthlBDgg257Q33j1hA7HTxSeTTSuVnPZbgW1nodwmG16aKBDKxEetv7D9OjO0JhrbJTnoe+kcGoDJazFSO8/fUN9Jy/g4XK5PUkw2dgPDGpJqBfhe7GA+cjzfE/EGsMM+FV9nj9IAhrSfT/J3QE5TEIYyk5UjsI6ZZcCPr6A8FZUF4g9nnpVmjX90MLSQysIPD0nFzqwCcSJmIb5mYv2Cmk+C1MDFkZQyCBq4c/Yai9LJ6xYkGS/x2s5/frIW2vmG2Wrv0APpCdgCA9snFvfpe8uc0OwdRs4G9973PGEBnQB5qKrCQ6m6X/H7NInZ7y/1674/ZXOVp7OeuCRk8JFS516VHrnH1HkIUIlTIljjHaQtEtkJtosYul77cVwjk3gW1Ajaa6zWeyHGLlpk3VHE2VFzT2yI/EvlGUSz2H9zYE1s4nsKMtMqNyKNtL/59CpFJki5Fou6VXGm8vWATEPwrUVOLvoA8jLuwOzVBCgHB2Cr5V6OwEWtJEKokJkfc87h+sNHTvMb0KVTp5284QTPupoWvQVUwUeogZR3kBMESYo0mfukewRVPKh5+rzLQb7HKjFFIgWhj1w3yN/qCNoPI8XFiUgBNT1hCHBsAz8L7Oyt8wQWUFj92ONn/APyJFg8hzueqoJdNj57ROrFbffuS/XxrSXLTRgj5uxZjpgQYceeMc2wJrahReSKpm3QjHfqExTLAB2ipVumE8pqcZv8LYXQiPHHsgb5BMW8zM5pvQit+mQx8XGaVDcfVbLyMTlY8xcfmm/RSAT/H09UQol5gIz7rESDmnrQ4bURIB4iRXMDQwxgex1GgtDxKp2HayIkR+E/aDmCttNm2C6lytWdfOVzD6X2SpDWjQDlMRvAp1symWv4my1bPCD+E1EmGnMGWhNwmycJnDV2WrQNxO45ukEb08AAffizYKVULp15I4vbNK5DzWwCSUADfmKhfGSUqii1L2UsE8rB7mLuHuUJZOx4+WiizHBJ/hwboaBzhpNOVvgFTf5cJsHef7L1HCI9dOUUbb+YxUJWn6dYOLz+THi91kzY5dtO5c+grX7v0jEbsuoOGnoIreDIg/sFMyG+TyCLIcAWd1IZ1UNFxE8Uie13ucm40U2fcxC0u3WLvLOxwu+F7MWUsHsdtFQZ7W+nlfCASiAKyh8rnP3EyDByvtJb6Kax6/HkLzT9SyEyTMVM1zPtM0MJY14DmsWh4MgD15Ea9Hd00AdkTZ0EiG5NAGuIBzQJJ0JR0na+OB7lQA6UKxMfihIQ7GCCnVz694QvykWXTxpS2soDu+smru1UdIxSvAszBFD1c8c6ZOobA8bJiJIvuycgIXBQIXWwhyTgZDQxJTRXgEwRNAawGSXO0a1DKjdihLVNp/taE/xYhsgwe+VpKEEB4LlraQyE84gEihxCnbfoyOuJIEXy2FIYw+JjRusybKlU2g/vhTSGTydvCvXhYBdtAXtS2v7LkHtmXh/8fly1do8FI/D0f8UbzVb5h+KRhMGSAmR2mhi0YG/uj7wgxcfzCrMvdjitUIpXDX8ae2JcF/36qUWIMwN6JsjaRGNj+jEteGDcFyTUb8X/NHSucKMJp7pduxtD6KuxVlyxxwaeiC1FbGBESO84lbyrAugYxdl+2N8/6AgWpo/IeoAOcsG35IA/b3AuSyoa55L7llBLlaWlEWvuCFd8f8NfcTUgzJv6CbB+6ohWwodlk9nGWFpBAOaz5uEW5xBvmjnHFeDsb0mXwayj3mdYq5gxxNf3H3/tnCgHwjSrpSgVxLmiTtuszdRUFIsn6LiMPjL808vL1uQhDbM7aA43mISXReqjSskynIRcHCJ9qeFopJfx9tqyUoGbSwJex/0aDE3plBPGtNBYgWbdLom3+Q/bjdizR2/AS/c/dH/d3G7pyl1qDXgtOFtEqidwLqxPYtrNEveasWq3vPUUtqTeu8gpov4bdOQRI2kneFvRNMrShyVeEupK1PoLDPMSfWMIJcs267mGB8X9CehQCF0gIyhpP10mbyM7lwW1e6TGvHBV1sg/UyTghHPGRqMyaebC6pbB1WKNCQtlai1GGvmq9zUKaUzLaXsXEBYtHxmFbEZ2kJhR164LhWW2Tlp1dhsGE7ZgIWRBOx3Zcu2DxgH+G83WTPceKG0TgQKKiiNNOlWgvqNEbnrk6fVD+AqRam2OguZb0YWSTX88N+i/ELSxbaUUpPx4vJUzYg/WonSeA8xUK6u7DPHgpqWpEe6D4cXg5uK9FIYVba47V/nb+wyOtk+zG8RrS4EA0ouwa04iByRLSvoJA2FzaobbZtXnq8GdbfqEp5I2dpfpj59TCVif6+E75p665faiX8gS213RqBxTZqfHP46nF6NSenOneuT+vgbLUbdTH2/t0REFXZJOEB6DHvx6N6g9956CYrY/AYcm9gELJXYkrSi+0F0geKDZgOCIYkLU/+GOW5aGj8mvLFgtFH5+XC8hvAE3CvHRfl4ofM/Qwk4x2A+R+nyc9gNu/9Tem7XW4XRnyRymf52z09cTOdr+PG6+P/Vb4QiXlwauc5WB1z3o+IJjlbxI8MyWtSzT+k4sKVbhF3xa+vDts3NxXa87iiu+xRH9cAprnOL2h6vV54iQRXuOAj1s8nLFK8gZ70ThIQcWdF19/2xaJmT0efrkNDkWbpAQPdo92Z8+Hn/aLjbOzB9AI/k12fPs9HhUNDJ1u6ax2VxD3R6PywN7BrLJ26z6s3QoMp76qzzwetrDABKSGkfW5PwS1GvYNUbK6uRqxfyVGNyFB0E+OugMM8kKwmJmupuRWO8XkXXXQECyRVw9UyIrtCtcc4oNqXqr7AURBmKn6Khz3eBN96LwIJrAGP9mr/59uTOSx631suyT+QujDd4beUFpZ0kJEEnjlP+X/Kr2kCKhnENTg4BsMTOmMqlj2WMFLRUlVG0fzdCBgUta9odrJfpVdFomTi6ak0tFjXTcdqqvWBAzjY6hVrH9sbt3Z9gn+AVDpTcQImefbB4edirjzrsNievve4ZT4EUZWV3TxEsIW+9MT/RJoKfZZYSRGfC1CwPG/9rdMOM8qR/LUYvw5f/emUSoD7YSFuOoqchdUg2UePd1eCtFSKgxLSZ764oy4lvRCIH6bowPxZWwxNFctksLeil47pfevcBipkkBIc4ngZG+kxGZ71a72KQ7VaZ6MZOZkQJZXM6kb/Ac0/XkJx8dvyfJcWbI3zONEaEPIW8GbkYjsZcwy+eMoKrYjDmvEEixHzkCSCRPRzhOfJZuLdcbx19EL23MA8rnjTZZ787FGMnkqnpuzB5/90w1gtUSRaWcb0eta8198VEeZMUSfIhyuc4/nywFQ9uqn7jdqXh+5wwv+RK9XouNPbYdoEelNGo34KyySwigsrfCe0v/PlWPvQvQg8R0KgHO18mTVThhQrlbEQ0Kp/JxPdjHyR7E1QPw/ut0r+HDDG7BwZFm9IqEUZRpv2WpzlMkOemeLcAt5CsrzskLGaVOAxyySzZV/D2EY7ydNZMf8e8VhHcKGHAWNszf1EOq8fNstijMY4JXyATwTdncFFqcNDfDo+mWFvxJJpc4sEZtjXyBdoFcxbUmniCoKq5jydUHNjYJxMqN1KzYV62MugcELVhS3Bnd+TLLOh7dws/zSXWzxEb4Nj4aFun5x4kDWLK5TUF/yCXB/cZYvI9kPgVsG2jShtXkxfgT+xzjJofXqPEnIXIQ1lnIdmVzBOM90EXvJUW6a0nZ/7XjJGl8ToO3H/fdxnxmTNKBZxnkpXLVgLXCZywGT3YyS75w/PAH5I/jMuRspej8xZObU9kREbRA+kqjmKRFaKGWAmFQspC+QLbKPf0RaK3OXvBSWqo46p70ws/eZpu6jCtZUgQy6r4tHMPUdAgWGGUYNbuv/1a6K+MVFsd3T183+T8capSo6m0+Sh57fEeG/95dykGJBQMj09DSW2bY0mUonDy9a8trLnnL5B5LW3Nl8rJZNysO8Zb+80zXxqUGFpud3Qzwb7bf+8mq6x0TAnJU9pDQR9YQmZhlna2xuxJt0aCO/f1SU8gblOrbIyMsxTlVUW69VJPzYU2HlRXcqE2lLLxnObZuz2tT9CivfTAUYfmzJlt/lOPgsR6VN64/xQd4Jlk/RV7UKVv2Gx/AWsmTAuCWKhdwC+4HmKEKYZh2Xis4KsUR1BeObs1c13wqFRnocdmuheaTV30gvVXZcouzHKK5zwrN52jXJEuX6dGx3BCpV/++4f3hyaW/cQJLFKqasjsMuO3B3WlMq2gyYfdK1e7L2pO/tRye2mwzwZPfdUMrl5wdLqdd2Kv/wVtnpyWYhd49L6rsOV+8HXPrWH2Kup89l2tz6bf80iYSd+V4LROSOHeamvexR524q4r43rTmtFzQvArpvWfLYFZrbFspBsXNUqqenjxNNsFXatZvlIhk7teUPfK+YL32F8McTnjv0BZNppb+vshoCrtLXjIWq3EJXpVXIlG6ZNL0dh6qEm2WMwDjD3LfOfkGh1/czYc/0qhiD2ozNnH4882MVVt3JbVFkbwowNCO3KL5IoYW5wlVeGCViOuv1svZx7FbzxKzA4zGqBlRRaRWCobXaVq4yYCWbZf8eiJwt3OY+MFiSJengcFP2t0JMfzOiJ7cECvpx7neg1Rc5x+7myPJOXt2FohVRyXtD+/rDoTOyGYInJelZMjolecVHUhUNqvdZWg2J2t0jPmiLFeRD/8fOT4o+NGILb+TufCo9ceBBm3JLVn+MO2675n7qiEX/6W+188cYg3Zn5NSTjgOKfWFSAANa6raCxSoVU851oJLY11WIoYK0du0ec5E4tCnAPoKh71riTsjVIp3gKvBbEYQiNYrmH22oLQWA2AdwMnID6PX9b58dR2QKo4qag1D1Z+L/FwEKTR7osOZPWECPJIHQqPUsM5i/CH5YupVPfFA5pHUBcsesh8eO5YhyWnaVRPZn/BmdXVumZWPxMP5e28zm2uqHgFoT9CymHYNNrzrrjlXZM06HnzDxYNlI5b/QosxLmmrqDFqmogQdqk0WLkUceoAvQxHgkIyvWU69BPFr24VB6+lx75Rna6dGtrmOxDnvBojvi1/4dHjVeg8owofPe1cOnxU1ioh016s/Vudv9mhV9f35At+Sh28h1bpp8xhr09+vf47Elx3Ms6hyp6QvB3t0vnLbOhwo660cp7K0vvepabK7YJfxEWWfrC2YzJfYOjygPwfwd/1amTqa0hZ5ueebhWYVMubRTwIjj+0Oq0ohU3zfRfuL8gt59XsHdwKtxTQQ4Y2qz6gisxnm2UdlmpEkgOsZz7iEk6QOt8BuPwr+NR01LTqXmJo1C76o1N274twJvl+I069TiLpenK/miRxhyY8jvYV6W1WuSwhH9q7kuwnJMtm7IWcqs7HsnyHSqWXLSpYtZGaR1V3t0gauninFPZGtWskF65rtti48UV9uV9KM8kfDYs0pgB00S+TlzTXV6P8mxq15b9En8sz3jWSszcifZa/NuufPNnNTb031pptt0+sRSH/7UG8pzbsgtt3OG3ut7B9JzDMt2mTZuyRNIV8D54TuTrpNcHtgmMlYJeiY9XS83NYJicjRjtJSf9BZLsQv629QdDsKQhTK5CnXhpk7vMNkHzPhm0ExW/VCGApHfPyBagtZQTQmPHx7g5IXXsrQDPzIVhv2LB6Ih138iSDww1JNHrDvzUxvp73MsQBVhW8EbrReaVUcLB1R3PUXyaYG4HpJUcLVxMgDxcPkVRQpL7VTAGabDzbKcvg12t5P8TSGQkrj/gOrpnbiDHwluA73xbXts/L7u468cRWSWRtgTwlQnA47EKg0OiZDgFxAKQQUcsbGomITgeXUAAyKe03eA7Mp4gnyKQmm0LXJtEk6ddksMJCuxDmmHzmVhO+XaN2A54MIh3niw5CF7PwiXFZrnA8wOdeHLvvhdoqIDG9PDI7UnWWHq526T8y6ixJPhkuVKZnoUruOpUgOOp3iIKBjk+yi1vHo5cItHXb1PIKzGaZlRS0g5d3MV2pD8FQdGYLZ73aae/eEIUePMc4NFz8pIUfLCrrF4jVWH5gQneN3S8vANBmUXrEcKGn6hIUN95y1vpsvLwbGpzV9L0ZKTan6TDXM05236uLJcIEMKVAxKNT0K8WljuwNny3BNQRfzovA85beI9zr1AGNYnYCVkR1aGngWURUrgqR+gRrQhxW81l3CHevjvGEPzPMTxdsIfB9dfGRbZU0cg/1mcubtECX4tvaedmNAvTxCJtc2QaoUalGfENCGK7IS/O8CRpdOVca8EWCRwv2sSWE8CJPW5PCugjCXPd3h6U60cPD+bdhtXZuYB6stcoveE7Sm5MM2yvfUHXFSW7KzLmi7/EeEWL0wqcOH9MOSKjhCHHmw+JGLcYE/7SBZQCRggox0ZZTAxrlzNNXYXL5fNIjkdT4YMqVUz6p8YDt049v4OXGdg3qTrtLBUXOZf7ahPlZAY/O+7Sp0bvGSHdyQ8B1LOsplqMb9Se8VAE7gIdSZvxbRSrfl+Lk5Qaqi5QJceqjitdErcHXg/3MryljPSIAMaaloFm1cVwBJ8DNmkDqoGROSHFetrgjQ5CahuKkdH5pRPigMrgTtlFI8ufJPJSUlGgTjbBSvpRc0zypiUn6U5KZqcRoyrtzhmJ7/caeZkmVRwJQeLOG8LY6vP5ChpKhc8Js0El+n6FXqbx9ItdtLtYP92kKfaTLtCi8StLZdENJa9Ex1nOoz1kQ7qxoiZFKRyLf4O4CHRT0T/0W9F8epNKVoeyxUXhy3sQMMsJjQJEyMOjmOhMFgOmmlscV4eFi1CldU92yjwleirEKPW3bPAuEhRZV7JsKV3Lr5cETAiFuX5Nw5UlF7d2HZ96Bh0sgFIL5KGaKSoVYVlvdKpZJVP5+NZ7xDEkQhmDgsDKciazJCXJ6ZN2B3FY2f6VZyGl/t4aunGIAk/BHaS+i+SpdRfnB/OktOvyjinWNfM9Ksr6WwtCa1hCmeRI6icpFM4o8quCLsikU0tMoZI/9EqXRMpKGaWzofl4nQuVQm17d5fU5qXCQeCDqVaL9XJ9qJ08n3G3EFZS28SHEb3cdRBdtO0YcTzil3QknNKEe/smQ1fTb0XbpyNB5xAeuIlf+5KWlEY0DqJbsnzJlQxJPOVyHiKMx5Xu9FcEv1Fbg6Fhm4t+Jyy5JC1W3YO8dYLsO0PXPbxodBgttTbH3rt9Cp1lJIk2r3O1Zqu94eRbnIz2f50lWolYzuKsj4PMok4abHLO8NAC884hiXx5Fy5pWKO0bWL7uEGXaJCtznhP67SlQ4xjWIfgq6EpZ28QMtuZK7JC0RGbl9nA4XtFLug/NLMoH1pGt9IonAJqcEDLyH6TDROcbsmGPaGIxMo41IUAnQVPMPGByp4mOmh9ZQMkBAcksUK55LsZj7E5z5XuZoyWCKu6nHmDq22xI/9Z8YdxJy4kWpD16jLVrpwGLWfyOD0Wd+cBzFBxVaGv7S5k9qwh/5t/LQEXsRqI3Q9Rm3QIoaZW9GlsDaKOUyykyWuhNOprSEi0s1G4rgoiX1V743EELti+pJu5og6X0g6oTynUqlhH9k6ezyRi05NGZHz0nvp3HOJr7ebrAUFrDjbkFBObEvdQWkkUbL0pEvMU46X58vF9j9F3j6kpyetNUBItrEubW9ZvMPM4qNqLlsSBJqOH3XbNwv/cXDXNxN8iFLzUhteisYY+RlHYOuP29/Cb+L+xv+35Rv7xudnZ6ohK4cMPfCG8KI7dNmjNk/H4e84pOxn/sZHK9psfvj8ncA8qJz7O8xqbxESDivGJOZzF7o5PJLQ7g34qAWoyuA+x3btU98LT6ZyGyceIXjrqob2CAVql4VOTQPUQYvHV/g4zAuCZGvYQBtf0wmd5lilrvuEn1BXLny01B4h4SMDlYsnNpm9d7m9h578ufpef9Z4WplqWQvqo52fyUA7J24eZD5av6SyGIV9kpmHNqyvdfzcpEMw97BvknV2fq+MFHun9BT3Lsf8pbzvisWiIQvYkng+8Vxk1V+dli1u56kY50LRjaPdotvT5BwqtwyF+emo/z9J3yVUVGfKrxQtJMOAQWoQii/4dp9wgybSa5mkucmRLtEQZ/pz0tL/NVcgWAd95nEQ3Tg6tNbuyn3Iepz65L3huMUUBntllWuu4DbtOFSMSbpILV4fy6wlM0SOvi6CpLh81c1LreIvKd61uEWBcDw1lUBUW1I0Z+m/PaRlX+PQ/oxg0Ye6KUiIiTF4ADNk59Ydpt5/rkxmq9tV5Kcp/eQLUVVmBzQNVuytQCP6Ezd0G8eLxWyHpmZWJ3bAzkWTtg4lZlw42SQezEmiUPaJUuR/qklVA/87S4ArFCpALdY3QRdUw3G3XbWUp6aq9z0zUizcPa7351p9JXOZyfdZBFnqt90VzQndXB/mwf8LC9STj5kenVpNuqOQQP3mIRJj7eV21FxG8VAxKrEn3c+XfmZ800EPb9/5lIlijscUbB6da0RQaMook0zug1G0tKi/JBC4rw7/D3m4ARzAkzMcVrDcT2SyFtUdWAsFlsPDFqV3N+EjyXaoEePwroaZCiLqEzb8MW+PNE9TmTC01EzWli51PzZvUqkmyuROU+V6ik+Le/9qT6nwzUzf9tP68tYei0YaDGx6kAd7jn1cKqOCuYbiELH9zYqcc4MnRJjkeGiqaGwLImhyeKs+xKJMBlOJ05ow9gGCKZ1VpnMKoSCTbMS+X+23y042zOb5MtcY/6oBeAo1Vy89OTyhpavFP78jXCcFH0t7Gx24hMEOm2gsEfGabVpQgvFqbQKMsknFRRmuPHcZu0Su/WMFphZvB2r/EGbG72rpGGho3h+Msz0uGzJ7hNK2uqQiE1qmn0zgacKYYZBCqsxV+sjbpoVdSilW/b94n2xNb648VmNIoizqEWhBnsen+d0kbCPmRItfWqSBeOd9Wne3c6bcd6uvXOJ6WdiSsuXq0ndhqrQ4QoWUjCjYtZ0EAhnSOP1m44xkf0O7jXghrzSJWxP4a/t72jU29Vu2rvu4n7HfHkkmQOMGSS+NPeLGO5I73mC2B7+lMiBQQZRM9/9liLIfowupUFAbPBbR+lxDM6M8Ptgh1paJq5Rvs7yEuLQv/7d1oU2woFSb3FMPWQOKMuCuJ7pDDjpIclus5TeEoMBy2YdVB4fxmesaCeMNsEgTHKS5WDSGyNUOoEpcC2OFWtIRf0w27ck34/DjxRTVIcc9+kqZE6iMSiVDsiKdP/Xz5XfEhm/sBhO50p1rvJDlkyyxuJ9SPgs7YeUJBjXdeAkE+P9OQJm6SZnn1svcduI78dYmbkE2mtziPrcjVisXG78spLvbZaSFx/Rks9zP4LKn0Cdz/3JsetkT06A8f/yCgMO6Mb1Hme0JJ7b2wZz1qleqTuKBGokhPVUZ0dVu+tnQYNEY1fmkZSz6+EGZ5EzL7657mreZGR3jUfaEk458PDniBzsSmBKhDRzfXameryJv9/D5m6HIqZ0R+ouCE54Dzp4IJuuD1e4Dc5i+PpSORJfG23uVgqixAMDvchMR0nZdH5brclYwRoJRWv/rlxGRI5ffD5NPGmIDt7vDE1434pYdVZIFh89Bs94HGGJbTwrN8T6lh1HZFTOB4lWzWj6EVqxSMvC0/ljWBQ3F2kc/mO2b6tWonT2JEqEwFts8rz2h+oWNds9ceR2cb7zZvJTDppHaEhK5avWqsseWa2Dt5BBhabdWSktS80oMQrL4TvAM9b5HMmyDnO+OkkbMXfUJG7eXqTIG6lqSOEbqVR+qYdP7uWb57WEJqzyh411GAVsDinPs7KvUeXItlcMdOUWzXBH6zscymV1LLVCtc8IePojzXHF9m5b5zGwBRdzcyUJkiu938ApmAayRdJrX1PmVguWUvt2ThQ62czItTyWJMW2An/hdDfMK7SiFQlGIdAbltHz3ycoh7j9V7GxNWBpbtcSdqm4XxRwTawc3cbZ+xfSv9qQfEkDKfZTwCkqWGI/ur250ItXlMlh6vUNWEYIg9A3GzbgmbqvTN8js2YMo87CU5y6nZ4dbJLDQJj9fc7yM7tZzJDZFtqOcU8+mZjYlq4VmifI23iHb1ZoT9E+kT2dolnP1AfiOkt7PQCSykBiXy5mv637IegWSKj9IKrYZf4Lu9+I7ub+mkRdlvYzehh/jaJ9n7HUH5b2IbgeNdkY7wx1yVzxS7pbvky6+nmVUtRllEFfweUQ0/nG017WoUYSxs+j2B4FV/F62EtHlMWZXYrjGHpthnNb1x66LKZ0Qe92INWHdfR/vqp02wMS8r1G4dJqHok8KmQ7947G13a4YXbsGgHcBvRuVu1eAi4/A5+ZixmdSXM73LupB/LH7O9yxLTVXJTyBbI1S49TIROrfVCOb/czZ9pM4JsZx8kUz8dQGv7gUWKxXvTH7QM/3J2OuXXgciUhqY+cgtaOliQQVOYthBLV3xpESZT3rmfEYNZxmpBbb24CRao86prn+i9TNOh8VxRJGXJfXHATJHs1T5txgc/opYrY8XjlGQQbRcoxIBcnVsMjmU1ymmIUL4dviJXndMAJ0Yet+c7O52/p98ytlmAsGBaTAmMhimAnvp1TWNGM9BpuitGj+t810CU2UhorrjPKGtThVC8WaXw04WFnT5fTjqmPyrQ0tN3CkLsctVy2xr0ZWgiWVZ1OrlFjjxJYsOiZv2cAoOvE+7sY0I/TwWcZqMoyIKNOftwP7w++Rfg67ljfovKYa50if3fzE/8aPYVey/Nq35+nH2sLPh/fP5TsylSKGOZ4k69d2PnH43+kq++sRXHQqGArWdwhx+hpwQC6JgT2uxehYU4Zbw7oNb6/HLikPyJROGK2ouyr+vzseESp9G50T4AyFrSqOQ0rroCYP4sMDFBrHn342EyZTMlSyk47rHSq89Y9/nI3zG5lX16Z5lxphguLOcZUndL8wNcrkyjH82jqg8Bo8OYkynrxZvbFno5lUS3OPr8Ko3mX9NoRPdYOKKjD07bvgFgpZ/RF+YzkWvJ/Hs/tUbfeGzGWLxNAjfDzHHMVSDwB5SabQLsIZHiBp43FjGkaienYoDd18hu2BGwOK7U3o70K/WY/kuuKdmdrykIBUdG2mvE91L1JtTbh20mOLbk1vCAamu7utlXeGU2ooVikbU/actcgmsC1FKk2qmj3GWeIWbj4tGIxE7BLcBWUvvcnd/lYxsMV4F917fWeFB/XbINN3qGvIyTpCalz1lVewdIGqeAS/gB8Mi+sA+BqDiX3VGD2eUunTRbSY+AuDy4E3Qx3hAhwnSXX+B0zuj3eQ1miS8Vux2z/l6/BkWtjKGU72aJkOCWhGcSf3+kFkkB15vGOsQrSdFr6qTj0gBYiOlnBO41170gOWHSUoBVRU2JjwppYdhIFDfu7tIRHccSNM5KZOFDPz0TGMAjzzEpeLwTWp+kn201kU6NjbiMQJx83+LX1e1tZ10kuChJZ/XBUQ1dwaBHjTDJDqOympEk8X2M3VtVw21JksChA8w1tTefO3RJ1FMbqZ01bHHkudDB/OhLfe7P5GOHaI28ZXKTMuqo0hLWQ4HabBsGG7NbP1RiXtETz074er6w/OerJWEqjmkq2y51q1BVI+JUudnVa3ogBpzdhFE7fC7kybrAt2Z6RqDjATAUEYeYK45WMupBKQRtQlU+uNsjnzj6ZmGrezA+ASrWxQ6LMkHRXqXwNq7ftv28dUx/ZSJciDXP2SWJsWaN0FjPX9Yko6LobZ7aYW/IdUktI9apTLyHS8DyWPyuoZyxN1TK/vtfxk3HwWh6JczZC8Ftn0bIJay2g+n5wd7lm9rEsKO+svqVmi+c1j88hSCxbzrg4+HEP0Nt1/B6YW1XVm09T1CpAKjc9n18hjqsaFGdfyva1ZG0Xu3ip6N6JGpyTSqY5h4BOlpLPaOnyw45PdXTN+DtAKg7DLrLFTnWusoSBHk3s0d7YouJHq85/R09Tfc37ENXZF48eAYLnq9GLioNcwDZrC6FW6godB8JnqYUPvn0pWLfQz0lM0Yy8Mybgn84Ds3Q9bDP10bLyOV+qzxa4Rd9Dhu7cju8mMaONXK3UqmBQ9qIg7etIwEqM/kECk/Dzja4Bs1xR+Q/tCbc8IKrSGsTdJJ0vge7IG20W687uVmK6icWQ6cD3lwFzgNMGtFvO5qyJeKflGLAAcQZOrkxVwy3cWvqlGpvjmf9Qe6Ap20MPbV92DPV0OhFM4kz8Yr0ffC2zLWSQ1kqY6QdQrttR3kh1YLtQd1kCEv5hVoPIRWl5ERcUTttBIrWp6Xs5Ehh5OUUwI5aEBvuiDmUoENmnVw1FohCrbRp1A1E+XSlWVOTi7ADW+5Ohb9z1vK4qx5R5lPdGCPBJZ00mC+Ssp8VUbgpGAvXWMuWQQRbCqI6Rr2jtxZxtfP7W/8onz+yz0Gs76LaT5HX9ecyiZCB/ZR/gFtMxPsDwohoeCRtiuLxE1GM1vUEUgBv86+eehL58/P56QFGQ/MqOe/vC76L63jzmeax4exd/OKTUvkXg+fOJUHych9xt/9goJMrapSgvXrj8+8vk/N80f22Sewj6cyGqt1B6mztoeklVHHraouhvHJaG/OuBz6DHKMpFmQULU1bRWlyYE0RPXYYkUycIemN7TLtgNCJX6BqdyxDKkegO7nJK5xQ7OVYDZTMf9bVHidtk6DQX9Et+V9M7esgbsYBdEeUpsB0Xvw2kd9+rI7V+m47u+O/tq7mw7262HU1WlS9uFzsV6JxIHNmUCy0QS9e077JGRFbG65z3/dOKB/Zk+yDdKpUmdXjn/aS3N5nv4fK7bMHHmPlHd4E2+iTbV5rpzScRnxk6KARuDTJ8Q1LpK2mP8gj1EbuJ9RIyY+EWK4hCiIDBAS1Tm2IEXAFfgKPgdL9O6mAa06wjCcUAL6EsxPQWO9VNegBPm/0GgkZbDxCynxujX/92vmGcjZRMAY45puak2sFLCLSwXpEsyy5fnF0jGJBhm+fNSHKKUUfy+276A7/feLOFxxUuHRNJI2Osenxyvf8DAGObT60pfTTlhEg9u/KKkhJqm5U1/+BEcSkpFDA5XeCqxwXmPac1jcuZ3JWQ+p0NdWzb/5v1ZvF8GtMTFFEdQjpLO0bwPb0BHNWnip3liDXI2fXf05jjvfJ0NpjLCUgfTh9CMFYVFKEd4Z/OG/2C+N435mnK+9t1gvCiVcaaH7rK4+PjCvpVNiz+t2QyqH1O8x3JKZVl6Q+Lp/XK8wMjVMslOq9FdSw5FtUs/CptXH9PW+wbWHgrV17R5jTVOtGtKFu3nb80T+E0tv9QkzW3J2dbaw/8ddAKZ0pxIaEqLjlPrji3VgJ3GvdFvlqD8075woxh4fVt0JZE0KVFsAvqhe0dqN9b35jtSpnYMXkU+vZq+IAHad3IHc2s/LYrnD1anfG46IFiMIr9oNbZDWvwthqYNqOigaKd/XlLU4XHfk/PXIjPsLy/9/kAtQ+/wKH+hI/IROWj5FPvTZAT9f7j4ZXQyG4M0TujMAFXYkKvEHv1xhySekgXGGqNxWeWKlf8dDAlLuB1cb/qOD+rk7cmwt+1yKpk9cudqBanTi6zTbXRtV8qylNtjyOVKy1HTz0GW9rjt6sSjAZcT5R+KdtyYb0zyqG9pSLuCw5WBwAn7fjBjKLLoxLXMI+52L9cLwIR2B6OllJZLHJ8vDxmWdtF+QJnmt1rsHPIWY20lftk8fYePkAIg6Hgn532QoIpegMxiWgAOfe5/U44APR8Ac0NeZrVh3gEhs12W+tVSiWiUQekf/YBECUy5fdYbA08dd7VzPAP9aiVcIB9k6tY7WdJ1wNV+bHeydNtmC6G5ICtFC1ZwmJU/j8hf0I8TRVKSiz5oYIa93EpUI78X8GYIAZabx47/n8LDAAJ0nNtP1rpROprqKMBRecShca6qXuTSI3jZBLOB3Vp381B5rCGhjSvh/NSVkYp2qIdP/Bg=\";\n\n\n/***/ }),\n/* 531 */\n/***/ (function(module, exports) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Lookup table to map the previous two bytes to a context id.\n\n   There are four different context modeling modes defined here:\n     CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\n     CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\n     CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\n     CONTEXT_SIGNED: second-order context model tuned for signed integers.\n\n   The context id for the UTF8 context model is calculated as follows. If p1\n   and p2 are the previous two bytes, we calcualte the context as\n\n     context = kContextLookup[p1] | kContextLookup[p2 + 256].\n\n   If the previous two bytes are ASCII characters (i.e. < 128), this will be\n   equivalent to\n\n     context = 4 * context1(p1) + context2(p2),\n\n   where context1 is based on the previous byte in the following way:\n\n     0  : non-ASCII control\n     1  : \\t, \\n, \\r\n     2  : space\n     3  : other punctuation\n     4  : \" '\n     5  : %\n     6  : ( < [ {\n     7  : ) > ] }\n     8  : , ; :\n     9  : .\n     10 : =\n     11 : number\n     12 : upper-case vowel\n     13 : upper-case consonant\n     14 : lower-case vowel\n     15 : lower-case consonant\n\n   and context2 is based on the second last byte:\n\n     0 : control, space\n     1 : punctuation\n     2 : upper-case letter, number\n     3 : lower-case letter\n\n   If the last byte is ASCII, and the second last byte is not (in a valid UTF8\n   stream it will be a continuation byte, value between 128 and 191), the\n   context is the same as if the second last byte was an ASCII control or space.\n\n   If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\n   be a continuation byte and the context id is 2 or 3 depending on the LSB of\n   the last byte and to a lesser extent on the second last byte if it is ASCII.\n\n   If the last byte is a UTF8 continuation byte, the second last byte can be:\n     - continuation byte: the next byte is probably ASCII or lead byte (assuming\n       4-byte UTF8 characters are rare) and the context id is 0 or 1.\n     - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\n     - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\n\n   The possible value combinations of the previous two bytes, the range of\n   context ids and the type of the next byte is summarized in the table below:\n\n   |--------\\-----------------------------------------------------------------|\n   |         \\                         Last byte                              |\n   | Second   \\---------------------------------------------------------------|\n   | last byte \\    ASCII            |   cont. byte        |   lead byte      |\n   |            \\   (0-127)          |   (128-191)         |   (192-)         |\n   |=============|===================|=====================|==================|\n   |  ASCII      | next: ASCII/lead  |  not valid          |  next: cont.     |\n   |  (0-127)    | context: 4 - 63   |                     |  context: 2 - 3  |\n   |-------------|-------------------|---------------------|------------------|\n   |  cont. byte | next: ASCII/lead  |  next: ASCII/lead   |  next: cont.     |\n   |  (128-191)  | context: 4 - 63   |  context: 0 - 1     |  context: 2 - 3  |\n   |-------------|-------------------|---------------------|------------------|\n   |  lead byte  | not valid         |  next: ASCII/lead   |  not valid       |\n   |  (192-207)  |                   |  context: 0 - 1     |                  |\n   |-------------|-------------------|---------------------|------------------|\n   |  lead byte  | not valid         |  next: cont.        |  not valid       |\n   |  (208-)     |                   |  context: 2 - 3     |                  |\n   |-------------|-------------------|---------------------|------------------|\n\n   The context id for the signed context mode is calculated as:\n\n     context = (kContextLookup[512 + p1] << 3) | kContextLookup[512 + p2].\n\n   For any context modeling modes, the context ids can be calculated by |-ing\n   together two lookups from one table using context model dependent offsets:\n\n     context = kContextLookup[offset1 + p1] | kContextLookup[offset2 + p2].\n\n   where offset1 and offset2 are dependent on the context mode.\n*/\n\nvar CONTEXT_LSB6         = 0;\nvar CONTEXT_MSB6         = 1;\nvar CONTEXT_UTF8         = 2;\nvar CONTEXT_SIGNED       = 3;\n\n/* Common context lookup table for all context modes. */\nexports.lookup = new Uint8Array([\n  /* CONTEXT_UTF8, last byte. */\n  /* ASCII range. */\n   0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  4,  0,  0,\n   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,\n   8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,\n  44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\n  12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,\n  52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,\n  12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,\n  60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12,  0,\n  /* UTF8 continuation byte range. */\n  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n  /* UTF8 lead byte range. */\n  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n  /* CONTEXT_UTF8 second last byte. */\n  /* ASCII range. */\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,\n  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,\n  1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\n  /* UTF8 continuation byte range. */\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  /* UTF8 lead byte range. */\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  /* CONTEXT_SIGNED, second last byte. */\n  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,\n  /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\n   0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n  48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\n  /* CONTEXT_LSB6, last byte. */\n   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\n  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\n  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\n  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\n  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n  /* CONTEXT_MSB6, last byte. */\n   0,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  3,\n   4,  4,  4,  4,  5,  5,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,\n   8,  8,  8,  8,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 11,\n  12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,\n  16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\n  20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,\n  24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,\n  28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,\n  32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,\n  36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,\n  40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,\n  44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\n  48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,\n  52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,\n  56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,\n  60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,\n  /* CONTEXT_{M,L}SB6, second last byte, */\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n]);\n\nexports.lookupOffsets = new Uint16Array([\n  /* CONTEXT_LSB6 */\n  1024, 1536,\n  /* CONTEXT_MSB6 */\n  1280, 1536,\n  /* CONTEXT_UTF8 */\n  0, 256,\n  /* CONTEXT_SIGNED */\n  768, 512,\n]);\n\n\n/***/ }),\n/* 532 */\n/***/ (function(module, exports) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Lookup tables to map prefix codes to value ranges. This is used during\n   decoding of the block lengths, literal insertion lengths and copy lengths.\n*/\n\n/* Represents the range of values belonging to a prefix code: */\n/* [offset, offset + 2^nbits) */\nfunction PrefixCodeRange(offset, nbits) {\n  this.offset = offset;\n  this.nbits = nbits;\n}\n\nexports.kBlockLengthPrefixCode = [\n  new PrefixCodeRange(1, 2), new PrefixCodeRange(5, 2), new PrefixCodeRange(9, 2), new PrefixCodeRange(13, 2),\n  new PrefixCodeRange(17, 3), new PrefixCodeRange(25, 3), new PrefixCodeRange(33, 3), new PrefixCodeRange(41, 3),\n  new PrefixCodeRange(49, 4), new PrefixCodeRange(65, 4), new PrefixCodeRange(81, 4), new PrefixCodeRange(97, 4),\n  new PrefixCodeRange(113, 5), new PrefixCodeRange(145, 5), new PrefixCodeRange(177, 5), new PrefixCodeRange(209, 5),\n  new PrefixCodeRange(241, 6), new PrefixCodeRange(305, 6), new PrefixCodeRange(369, 7), new PrefixCodeRange(497, 8),\n  new PrefixCodeRange(753, 9), new PrefixCodeRange(1265, 10), new PrefixCodeRange(2289, 11), new PrefixCodeRange(4337, 12),\n  new PrefixCodeRange(8433, 13), new PrefixCodeRange(16625, 24)\n];\n\nexports.kInsertLengthPrefixCode = [\n  new PrefixCodeRange(0, 0), new PrefixCodeRange(1, 0), new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0),\n  new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 1), new PrefixCodeRange(8, 1),\n  new PrefixCodeRange(10, 2), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 3), new PrefixCodeRange(26, 3),\n  new PrefixCodeRange(34, 4), new PrefixCodeRange(50, 4), new PrefixCodeRange(66, 5), new PrefixCodeRange(98, 5),\n  new PrefixCodeRange(130, 6), new PrefixCodeRange(194, 7), new PrefixCodeRange(322, 8), new PrefixCodeRange(578, 9),\n  new PrefixCodeRange(1090, 10), new PrefixCodeRange(2114, 12), new PrefixCodeRange(6210, 14), new PrefixCodeRange(22594, 24),\n];\n\nexports.kCopyLengthPrefixCode = [\n  new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0),\n  new PrefixCodeRange(6, 0), new PrefixCodeRange(7, 0), new PrefixCodeRange(8, 0), new PrefixCodeRange(9, 0),\n  new PrefixCodeRange(10, 1), new PrefixCodeRange(12, 1), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 2),\n  new PrefixCodeRange(22, 3), new PrefixCodeRange(30, 3), new PrefixCodeRange(38, 4), new PrefixCodeRange(54, 4),\n  new PrefixCodeRange(70, 5), new PrefixCodeRange(102, 5), new PrefixCodeRange(134, 6), new PrefixCodeRange(198, 7),\n  new PrefixCodeRange(326, 8), new PrefixCodeRange(582, 9), new PrefixCodeRange(1094, 10), new PrefixCodeRange(2118, 24),\n];\n\nexports.kInsertRangeLut = [\n  0, 0, 8, 8, 0, 16, 8, 16, 16,\n];\n\nexports.kCopyRangeLut = [\n  0, 8, 0, 8, 16, 0, 16, 8, 16,\n];\n\n\n/***/ }),\n/* 533 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Transformations on dictionary words.\n*/\n\nvar BrotliDictionary = __webpack_require__(288);\n\nvar kIdentity       = 0;\nvar kOmitLast1      = 1;\nvar kOmitLast2      = 2;\nvar kOmitLast3      = 3;\nvar kOmitLast4      = 4;\nvar kOmitLast5      = 5;\nvar kOmitLast6      = 6;\nvar kOmitLast7      = 7;\nvar kOmitLast8      = 8;\nvar kOmitLast9      = 9;\nvar kUppercaseFirst = 10;\nvar kUppercaseAll   = 11;\nvar kOmitFirst1     = 12;\nvar kOmitFirst2     = 13;\nvar kOmitFirst3     = 14;\nvar kOmitFirst4     = 15;\nvar kOmitFirst5     = 16;\nvar kOmitFirst6     = 17;\nvar kOmitFirst7     = 18;\nvar kOmitFirst8     = 19;\nvar kOmitFirst9     = 20;\n\nfunction Transform(prefix, transform, suffix) {\n  this.prefix = new Uint8Array(prefix.length);\n  this.transform = transform;\n  this.suffix = new Uint8Array(suffix.length);\n  \n  for (var i = 0; i < prefix.length; i++)\n    this.prefix[i] = prefix.charCodeAt(i);\n  \n  for (var i = 0; i < suffix.length; i++)\n    this.suffix[i] = suffix.charCodeAt(i);\n}\n\nvar kTransforms = [\n     new Transform(         \"\", kIdentity,       \"\"           ),\n     new Transform(         \"\", kIdentity,       \" \"          ),\n     new Transform(        \" \", kIdentity,       \" \"          ),\n     new Transform(         \"\", kOmitFirst1,     \"\"           ),\n     new Transform(         \"\", kUppercaseFirst, \" \"          ),\n     new Transform(         \"\", kIdentity,       \" the \"      ),\n     new Transform(        \" \", kIdentity,       \"\"           ),\n     new Transform(       \"s \", kIdentity,       \" \"          ),\n     new Transform(         \"\", kIdentity,       \" of \"       ),\n     new Transform(         \"\", kUppercaseFirst, \"\"           ),\n     new Transform(         \"\", kIdentity,       \" and \"      ),\n     new Transform(         \"\", kOmitFirst2,     \"\"           ),\n     new Transform(         \"\", kOmitLast1,      \"\"           ),\n     new Transform(       \", \", kIdentity,       \" \"          ),\n     new Transform(         \"\", kIdentity,       \", \"         ),\n     new Transform(        \" \", kUppercaseFirst, \" \"          ),\n     new Transform(         \"\", kIdentity,       \" in \"       ),\n     new Transform(         \"\", kIdentity,       \" to \"       ),\n     new Transform(       \"e \", kIdentity,       \" \"          ),\n     new Transform(         \"\", kIdentity,       \"\\\"\"         ),\n     new Transform(         \"\", kIdentity,       \".\"          ),\n     new Transform(         \"\", kIdentity,       \"\\\">\"        ),\n     new Transform(         \"\", kIdentity,       \"\\n\"         ),\n     new Transform(         \"\", kOmitLast3,      \"\"           ),\n     new Transform(         \"\", kIdentity,       \"]\"          ),\n     new Transform(         \"\", kIdentity,       \" for \"      ),\n     new Transform(         \"\", kOmitFirst3,     \"\"           ),\n     new Transform(         \"\", kOmitLast2,      \"\"           ),\n     new Transform(         \"\", kIdentity,       \" a \"        ),\n     new Transform(         \"\", kIdentity,       \" that \"     ),\n     new Transform(        \" \", kUppercaseFirst, \"\"           ),\n     new Transform(         \"\", kIdentity,       \". \"         ),\n     new Transform(        \".\", kIdentity,       \"\"           ),\n     new Transform(        \" \", kIdentity,       \", \"         ),\n     new Transform(         \"\", kOmitFirst4,     \"\"           ),\n     new Transform(         \"\", kIdentity,       \" with \"     ),\n     new Transform(         \"\", kIdentity,       \"'\"          ),\n     new Transform(         \"\", kIdentity,       \" from \"     ),\n     new Transform(         \"\", kIdentity,       \" by \"       ),\n     new Transform(         \"\", kOmitFirst5,     \"\"           ),\n     new Transform(         \"\", kOmitFirst6,     \"\"           ),\n     new Transform(    \" the \", kIdentity,       \"\"           ),\n     new Transform(         \"\", kOmitLast4,      \"\"           ),\n     new Transform(         \"\", kIdentity,       \". The \"     ),\n     new Transform(         \"\", kUppercaseAll,   \"\"           ),\n     new Transform(         \"\", kIdentity,       \" on \"       ),\n     new Transform(         \"\", kIdentity,       \" as \"       ),\n     new Transform(         \"\", kIdentity,       \" is \"       ),\n     new Transform(         \"\", kOmitLast7,      \"\"           ),\n     new Transform(         \"\", kOmitLast1,      \"ing \"       ),\n     new Transform(         \"\", kIdentity,       \"\\n\\t\"       ),\n     new Transform(         \"\", kIdentity,       \":\"          ),\n     new Transform(        \" \", kIdentity,       \". \"         ),\n     new Transform(         \"\", kIdentity,       \"ed \"        ),\n     new Transform(         \"\", kOmitFirst9,     \"\"           ),\n     new Transform(         \"\", kOmitFirst7,     \"\"           ),\n     new Transform(         \"\", kOmitLast6,      \"\"           ),\n     new Transform(         \"\", kIdentity,       \"(\"          ),\n     new Transform(         \"\", kUppercaseFirst, \", \"         ),\n     new Transform(         \"\", kOmitLast8,      \"\"           ),\n     new Transform(         \"\", kIdentity,       \" at \"       ),\n     new Transform(         \"\", kIdentity,       \"ly \"        ),\n     new Transform(    \" the \", kIdentity,       \" of \"       ),\n     new Transform(         \"\", kOmitLast5,      \"\"           ),\n     new Transform(         \"\", kOmitLast9,      \"\"           ),\n     new Transform(        \" \", kUppercaseFirst, \", \"         ),\n     new Transform(         \"\", kUppercaseFirst, \"\\\"\"         ),\n     new Transform(        \".\", kIdentity,       \"(\"          ),\n     new Transform(         \"\", kUppercaseAll,   \" \"          ),\n     new Transform(         \"\", kUppercaseFirst, \"\\\">\"        ),\n     new Transform(         \"\", kIdentity,       \"=\\\"\"        ),\n     new Transform(        \" \", kIdentity,       \".\"          ),\n     new Transform(    \".com/\", kIdentity,       \"\"           ),\n     new Transform(    \" the \", kIdentity,       \" of the \"   ),\n     new Transform(         \"\", kUppercaseFirst, \"'\"          ),\n     new Transform(         \"\", kIdentity,       \". This \"    ),\n     new Transform(         \"\", kIdentity,       \",\"          ),\n     new Transform(        \".\", kIdentity,       \" \"          ),\n     new Transform(         \"\", kUppercaseFirst, \"(\"          ),\n     new Transform(         \"\", kUppercaseFirst, \".\"          ),\n     new Transform(         \"\", kIdentity,       \" not \"      ),\n     new Transform(        \" \", kIdentity,       \"=\\\"\"        ),\n     new Transform(         \"\", kIdentity,       \"er \"        ),\n     new Transform(        \" \", kUppercaseAll,   \" \"          ),\n     new Transform(         \"\", kIdentity,       \"al \"        ),\n     new Transform(        \" \", kUppercaseAll,   \"\"           ),\n     new Transform(         \"\", kIdentity,       \"='\"         ),\n     new Transform(         \"\", kUppercaseAll,   \"\\\"\"         ),\n     new Transform(         \"\", kUppercaseFirst, \". \"         ),\n     new Transform(        \" \", kIdentity,       \"(\"          ),\n     new Transform(         \"\", kIdentity,       \"ful \"       ),\n     new Transform(        \" \", kUppercaseFirst, \". \"         ),\n     new Transform(         \"\", kIdentity,       \"ive \"       ),\n     new Transform(         \"\", kIdentity,       \"less \"      ),\n     new Transform(         \"\", kUppercaseAll,   \"'\"          ),\n     new Transform(         \"\", kIdentity,       \"est \"       ),\n     new Transform(        \" \", kUppercaseFirst, \".\"          ),\n     new Transform(         \"\", kUppercaseAll,   \"\\\">\"        ),\n     new Transform(        \" \", kIdentity,       \"='\"         ),\n     new Transform(         \"\", kUppercaseFirst, \",\"          ),\n     new Transform(         \"\", kIdentity,       \"ize \"       ),\n     new Transform(         \"\", kUppercaseAll,   \".\"          ),\n     new Transform( \"\\xc2\\xa0\", kIdentity,       \"\"           ),\n     new Transform(        \" \", kIdentity,       \",\"          ),\n     new Transform(         \"\", kUppercaseFirst, \"=\\\"\"        ),\n     new Transform(         \"\", kUppercaseAll,   \"=\\\"\"        ),\n     new Transform(         \"\", kIdentity,       \"ous \"       ),\n     new Transform(         \"\", kUppercaseAll,   \", \"         ),\n     new Transform(         \"\", kUppercaseFirst, \"='\"         ),\n     new Transform(        \" \", kUppercaseFirst, \",\"          ),\n     new Transform(        \" \", kUppercaseAll,   \"=\\\"\"        ),\n     new Transform(        \" \", kUppercaseAll,   \", \"         ),\n     new Transform(         \"\", kUppercaseAll,   \",\"          ),\n     new Transform(         \"\", kUppercaseAll,   \"(\"          ),\n     new Transform(         \"\", kUppercaseAll,   \". \"         ),\n     new Transform(        \" \", kUppercaseAll,   \".\"          ),\n     new Transform(         \"\", kUppercaseAll,   \"='\"         ),\n     new Transform(        \" \", kUppercaseAll,   \". \"         ),\n     new Transform(        \" \", kUppercaseFirst, \"=\\\"\"        ),\n     new Transform(        \" \", kUppercaseAll,   \"='\"         ),\n     new Transform(        \" \", kUppercaseFirst, \"='\"         )\n];\n\nexports.kTransforms = kTransforms;\nexports.kNumTransforms = kTransforms.length;\n\nfunction ToUpperCase(p, i) {\n  if (p[i] < 0xc0) {\n    if (p[i] >= 97 && p[i] <= 122) {\n      p[i] ^= 32;\n    }\n    return 1;\n  }\n  \n  /* An overly simplified uppercasing model for utf-8. */\n  if (p[i] < 0xe0) {\n    p[i + 1] ^= 32;\n    return 2;\n  }\n  \n  /* An arbitrary transform for three byte characters. */\n  p[i + 2] ^= 5;\n  return 3;\n}\n\nexports.transformDictionaryWord = function(dst, idx, word, len, transform) {\n  var prefix = kTransforms[transform].prefix;\n  var suffix = kTransforms[transform].suffix;\n  var t = kTransforms[transform].transform;\n  var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);\n  var i = 0;\n  var start_idx = idx;\n  var uppercase;\n  \n  if (skip > len) {\n    skip = len;\n  }\n  \n  var prefix_pos = 0;\n  while (prefix_pos < prefix.length) {\n    dst[idx++] = prefix[prefix_pos++];\n  }\n  \n  word += skip;\n  len -= skip;\n  \n  if (t <= kOmitLast9) {\n    len -= t;\n  }\n  \n  for (i = 0; i < len; i++) {\n    dst[idx++] = BrotliDictionary.dictionary[word + i];\n  }\n  \n  uppercase = idx - len;\n  \n  if (t === kUppercaseFirst) {\n    ToUpperCase(dst, uppercase);\n  } else if (t === kUppercaseAll) {\n    while (len > 0) {\n      var step = ToUpperCase(dst, uppercase);\n      uppercase += step;\n      len -= step;\n    }\n  }\n  \n  var suffix_pos = 0;\n  while (suffix_pos < suffix.length) {\n    dst[idx++] = suffix[suffix_pos++];\n  }\n  \n  return idx - start_idx;\n}\n\n\n/***/ }),\n/* 534 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(28);\n\n__webpack_require__(46);\n\n__webpack_require__(61);\n\n__webpack_require__(31);\n\n__webpack_require__(62);\n\n__webpack_require__(134);\n\n__webpack_require__(63);\n\n__webpack_require__(64);\n\n__webpack_require__(65);\n\n__webpack_require__(66);\n\n__webpack_require__(67);\n\n__webpack_require__(68);\n\n__webpack_require__(69);\n\n__webpack_require__(70);\n\n__webpack_require__(71);\n\n__webpack_require__(72);\n\n__webpack_require__(73);\n\n__webpack_require__(74);\n\n__webpack_require__(75);\n\n__webpack_require__(76);\n\n__webpack_require__(77);\n\n__webpack_require__(78);\n\n__webpack_require__(79);\n\n__webpack_require__(80);\n\n__webpack_require__(81);\n\n__webpack_require__(82);\n\n__webpack_require__(83);\n\n__webpack_require__(84);\n\n__webpack_require__(85);\n\nvar inflate = __webpack_require__(135); // Shift size for getting the index-1 table offset.\n\n\nvar SHIFT_1 = 6 + 5; // Shift size for getting the index-2 table offset.\n\nvar SHIFT_2 = 5; // Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\n\nvar SHIFT_1_2 = SHIFT_1 - SHIFT_2; // Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\n\nvar OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1; // Number of entries in an index-2 block. 64=0x40\n\nvar INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2; // Mask for getting the lower bits for the in-index-2-block offset. */\n\nvar INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1; // Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\n\nvar INDEX_SHIFT = 2; // Number of entries in a data block. 32=0x20\n\nvar DATA_BLOCK_LENGTH = 1 << SHIFT_2; // Mask for getting the lower bits for the in-data-block offset.\n\nvar DATA_MASK = DATA_BLOCK_LENGTH - 1; // The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\n\nvar LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nvar LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2; // Count the lengths of both BMP pieces. 2080=0x820\n\nvar INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH; // The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\n\nvar UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nvar UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\n\nvar INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH; // The alignment size of a data block. Also the granularity for compaction.\n\nvar DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nvar UnicodeTrie = /*#__PURE__*/function () {\n  function UnicodeTrie(data) {\n    var isBuffer = typeof data.readUInt32BE === 'function' && typeof data.slice === 'function';\n\n    if (isBuffer || data instanceof Uint8Array) {\n      // read binary format\n      var uncompressedLength;\n\n      if (isBuffer) {\n        this.highStart = data.readUInt32BE(0);\n        this.errorValue = data.readUInt32BE(4);\n        uncompressedLength = data.readUInt32BE(8);\n        data = data.slice(12);\n      } else {\n        var view = new DataView(data.buffer);\n        this.highStart = view.getUint32(0);\n        this.errorValue = view.getUint32(4);\n        uncompressedLength = view.getUint32(8);\n        data = data.subarray(12);\n      } // double inflate the actual trie data\n\n\n      data = inflate(data, new Uint8Array(uncompressedLength));\n      data = inflate(data, new Uint8Array(uncompressedLength));\n      this.data = new Uint32Array(data.buffer);\n    } else {\n      // pre-parsed data\n      var _data = data;\n      this.data = _data.data;\n      this.highStart = _data.highStart;\n      this.errorValue = _data.errorValue;\n    }\n  }\n\n  var _proto = UnicodeTrie.prototype;\n\n  _proto.get = function get(codePoint) {\n    var index;\n\n    if (codePoint < 0 || codePoint > 0x10ffff) {\n      return this.errorValue;\n    }\n\n    if (codePoint < 0xd800 || codePoint > 0xdbff && codePoint <= 0xffff) {\n      // Ordinary BMP code point, excluding leading surrogates.\n      // BMP uses a single level lookup.  BMP index starts at offset 0 in the index.\n      // data is stored in the index array itself.\n      index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint <= 0xffff) {\n      // Lead Surrogate Code Point.  A Separate index section is stored for\n      // lead surrogate code units and code points.\n      //   The main index has the code unit data.\n      //   For this function, we need the code point data.\n      index = (this.data[LSCP_INDEX_2_OFFSET + (codePoint - 0xd800 >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    if (codePoint < this.highStart) {\n      // Supplemental code point, use two-level lookup.\n      index = this.data[INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> SHIFT_1)];\n      index = this.data[index + (codePoint >> SHIFT_2 & INDEX_2_MASK)];\n      index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n      return this.data[index];\n    }\n\n    return this.data[this.data.length - DATA_GRANULARITY];\n  };\n\n  return UnicodeTrie;\n}();\n\nmodule.exports = UnicodeTrie;\n\n/***/ }),\n/* 535 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n;(function (exports) {\n\t'use strict';\n\n  var Arr = (typeof Uint8Array !== 'undefined')\n    ? Uint8Array\n    : Array\n\n\tvar PLUS   = '+'.charCodeAt(0)\n\tvar SLASH  = '/'.charCodeAt(0)\n\tvar NUMBER = '0'.charCodeAt(0)\n\tvar LOWER  = 'a'.charCodeAt(0)\n\tvar UPPER  = 'A'.charCodeAt(0)\n\tvar PLUS_URL_SAFE = '-'.charCodeAt(0)\n\tvar SLASH_URL_SAFE = '_'.charCodeAt(0)\n\n\tfunction decode (elt) {\n\t\tvar code = elt.charCodeAt(0)\n\t\tif (code === PLUS ||\n\t\t    code === PLUS_URL_SAFE)\n\t\t\treturn 62 // '+'\n\t\tif (code === SLASH ||\n\t\t    code === SLASH_URL_SAFE)\n\t\t\treturn 63 // '/'\n\t\tif (code < NUMBER)\n\t\t\treturn -1 //no match\n\t\tif (code < NUMBER + 10)\n\t\t\treturn code - NUMBER + 26 + 26\n\t\tif (code < UPPER + 26)\n\t\t\treturn code - UPPER\n\t\tif (code < LOWER + 26)\n\t\t\treturn code - LOWER + 26\n\t}\n\n\tfunction b64ToByteArray (b64) {\n\t\tvar i, j, l, tmp, placeHolders, arr\n\n\t\tif (b64.length % 4 > 0) {\n\t\t\tthrow new Error('Invalid string. Length must be a multiple of 4')\n\t\t}\n\n\t\t// the number of equal signs (place holders)\n\t\t// if there are two placeholders, than the two characters before it\n\t\t// represent one byte\n\t\t// if there is only one, then the three characters before it represent 2 bytes\n\t\t// this is just a cheap hack to not do indexOf twice\n\t\tvar len = b64.length\n\t\tplaceHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0\n\n\t\t// base64 is 4/3 + up to two characters of the original data\n\t\tarr = new Arr(b64.length * 3 / 4 - placeHolders)\n\n\t\t// if there are placeholders, only get up to the last complete 4 chars\n\t\tl = placeHolders > 0 ? b64.length - 4 : b64.length\n\n\t\tvar L = 0\n\n\t\tfunction push (v) {\n\t\t\tarr[L++] = v\n\t\t}\n\n\t\tfor (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))\n\t\t\tpush((tmp & 0xFF0000) >> 16)\n\t\t\tpush((tmp & 0xFF00) >> 8)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\tif (placeHolders === 2) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)\n\t\t\tpush(tmp & 0xFF)\n\t\t} else if (placeHolders === 1) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)\n\t\t\tpush((tmp >> 8) & 0xFF)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\treturn arr\n\t}\n\n\tfunction uint8ToBase64 (uint8) {\n\t\tvar i,\n\t\t\textraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes\n\t\t\toutput = \"\",\n\t\t\ttemp, length\n\n\t\tfunction encode (num) {\n\t\t\treturn lookup.charAt(num)\n\t\t}\n\n\t\tfunction tripletToBase64 (num) {\n\t\t\treturn encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)\n\t\t}\n\n\t\t// go through the array every three bytes, we'll deal with trailing stuff later\n\t\tfor (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {\n\t\t\ttemp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t\t\toutput += tripletToBase64(temp)\n\t\t}\n\n\t\t// pad the end with zeros, but make sure to not forget the extra bytes\n\t\tswitch (extraBytes) {\n\t\t\tcase 1:\n\t\t\t\ttemp = uint8[uint8.length - 1]\n\t\t\t\toutput += encode(temp >> 2)\n\t\t\t\toutput += encode((temp << 4) & 0x3F)\n\t\t\t\toutput += '=='\n\t\t\t\tbreak\n\t\t\tcase 2:\n\t\t\t\ttemp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])\n\t\t\t\toutput += encode(temp >> 10)\n\t\t\t\toutput += encode((temp >> 4) & 0x3F)\n\t\t\t\toutput += encode((temp << 2) & 0x3F)\n\t\t\t\toutput += '='\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn output\n\t}\n\n\texports.toByteArray = b64ToByteArray\n\texports.fromByteArray = uint8ToBase64\n}( false ? (undefined) : exports))\n\n\n/***/ }),\n/* 536 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// The following break classes are handled by the pair table\nexports.OP = 0; // Opening punctuation\n\nexports.CL = 1; // Closing punctuation\n\nexports.CP = 2; // Closing parenthesis\n\nexports.QU = 3; // Ambiguous quotation\n\nexports.GL = 4; // Glue\n\nexports.NS = 5; // Non-starters\n\nexports.EX = 6; // Exclamation/Interrogation\n\nexports.SY = 7; // Symbols allowing break after\n\nexports.IS = 8; // Infix separator\n\nexports.PR = 9; // Prefix\n\nexports.PO = 10; // Postfix\n\nexports.NU = 11; // Numeric\n\nexports.AL = 12; // Alphabetic\n\nexports.HL = 13; // Hebrew Letter\n\nexports.ID = 14; // Ideographic\n\nexports.IN = 15; // Inseparable characters\n\nexports.HY = 16; // Hyphen\n\nexports.BA = 17; // Break after\n\nexports.BB = 18; // Break before\n\nexports.B2 = 19; // Break on either side (but not pair)\n\nexports.ZW = 20; // Zero-width space\n\nexports.CM = 21; // Combining marks\n\nexports.WJ = 22; // Word joiner\n\nexports.H2 = 23; // Hangul LV\n\nexports.H3 = 24; // Hangul LVT\n\nexports.JL = 25; // Hangul L Jamo\n\nexports.JV = 26; // Hangul V Jamo\n\nexports.JT = 27; // Hangul T Jamo\n\nexports.RI = 28; // Regional Indicator\n// The following break classes are not handled by the pair table\n\nexports.AI = 29; // Ambiguous (Alphabetic or Ideograph)\n\nexports.BK = 30; // Break (mandatory)\n\nexports.CB = 31; // Contingent break\n\nexports.CJ = 32; // Conditional Japanese Starter\n\nexports.CR = 33; // Carriage return\n\nexports.LF = 34; // Line feed\n\nexports.NL = 35; // Next line\n\nexports.SA = 36; // South-East Asian\n\nexports.SG = 37; // Surrogates\n\nexports.SP = 38; // Space\n\nexports.XX = 39; // Unknown\n\n/***/ }),\n/* 537 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar CI_BRK, CP_BRK, DI_BRK, IN_BRK, PR_BRK;\nexports.DI_BRK = DI_BRK = 0; // Direct break opportunity\n\nexports.IN_BRK = IN_BRK = 1; // Indirect break opportunity\n\nexports.CI_BRK = CI_BRK = 2; // Indirect break opportunity for combining marks\n\nexports.CP_BRK = CP_BRK = 3; // Prohibited break for combining marks\n\nexports.PR_BRK = PR_BRK = 4; // Prohibited break\n// table generated from http://www.unicode.org/reports/tr14/#Table2\n\nexports.pairTable = [[PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, CP_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK]];\n\n/***/ }),\n/* 538 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer) {\n\n__webpack_require__(216);\n\n__webpack_require__(195);\n\n__webpack_require__(46);\n\n/*\n * MIT LICENSE\n * Copyright (c) 2011 Devon Govett\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nvar fs = __webpack_require__(53);\n\nvar zlib = __webpack_require__(245);\n\nmodule.exports = /*#__PURE__*/function () {\n  PNG.decode = function decode(path, fn) {\n    return fs.readFile(path, function (err, file) {\n      var png = new PNG(file);\n      return png.decode(function (pixels) {\n        return fn(pixels);\n      });\n    });\n  };\n\n  PNG.load = function load(path) {\n    var file = fs.readFileSync(path);\n    return new PNG(file);\n  };\n\n  function PNG(data) {\n    var i;\n    this.data = data;\n    this.pos = 8; // Skip the default header\n\n    this.palette = [];\n    this.imgData = [];\n    this.transparency = {};\n    this.text = {};\n\n    while (true) {\n      var chunkSize = this.readUInt32();\n      var section = '';\n\n      for (i = 0; i < 4; i++) {\n        section += String.fromCharCode(this.data[this.pos++]);\n      }\n\n      switch (section) {\n        case 'IHDR':\n          // we can grab  interesting values from here (like width, height, etc)\n          this.width = this.readUInt32();\n          this.height = this.readUInt32();\n          this.bits = this.data[this.pos++];\n          this.colorType = this.data[this.pos++];\n          this.compressionMethod = this.data[this.pos++];\n          this.filterMethod = this.data[this.pos++];\n          this.interlaceMethod = this.data[this.pos++];\n          break;\n\n        case 'PLTE':\n          this.palette = this.read(chunkSize);\n          break;\n\n        case 'IDAT':\n          for (i = 0; i < chunkSize; i++) {\n            this.imgData.push(this.data[this.pos++]);\n          }\n\n          break;\n\n        case 'tRNS':\n          // This chunk can only occur once and it must occur after the\n          // PLTE chunk and before the IDAT chunk.\n          this.transparency = {};\n\n          switch (this.colorType) {\n            case 3:\n              // Indexed color, RGB. Each byte in this chunk is an alpha for\n              // the palette index in the PLTE (\"palette\") chunk up until the\n              // last non-opaque entry. Set up an array, stretching over all\n              // palette entries which will be 0 (opaque) or 1 (transparent).\n              this.transparency.indexed = this.read(chunkSize);\n              var short = 255 - this.transparency.indexed.length;\n\n              if (short > 0) {\n                for (i = 0; i < short; i++) {\n                  this.transparency.indexed.push(255);\n                }\n              }\n\n              break;\n\n            case 0:\n              // Greyscale. Corresponding to entries in the PLTE chunk.\n              // Grey is two bytes, range 0 .. (2 ^ bit-depth) - 1\n              this.transparency.grayscale = this.read(chunkSize)[0];\n              break;\n\n            case 2:\n              // True color with proper alpha channel.\n              this.transparency.rgb = this.read(chunkSize);\n              break;\n          }\n\n          break;\n\n        case 'tEXt':\n          var text = this.read(chunkSize);\n          var index = text.indexOf(0);\n          var key = String.fromCharCode.apply(String, text.slice(0, index));\n          this.text[key] = String.fromCharCode.apply(String, text.slice(index + 1));\n          break;\n\n        case 'IEND':\n          // we've got everything we need!\n          switch (this.colorType) {\n            case 0:\n            case 3:\n            case 4:\n              this.colors = 1;\n              break;\n\n            case 2:\n            case 6:\n              this.colors = 3;\n              break;\n          }\n\n          this.hasAlphaChannel = [4, 6].includes(this.colorType);\n          var colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n          this.pixelBitlength = this.bits * colors;\n\n          switch (this.colors) {\n            case 1:\n              this.colorSpace = 'DeviceGray';\n              break;\n\n            case 3:\n              this.colorSpace = 'DeviceRGB';\n              break;\n          }\n\n          this.imgData = new Buffer(this.imgData);\n          return;\n          break;\n\n        default:\n          // unknown (or unimportant) section, skip it\n          this.pos += chunkSize;\n      }\n\n      this.pos += 4; // Skip the CRC\n\n      if (this.pos > this.data.length) {\n        throw new Error('Incomplete or corrupt PNG file');\n      }\n    }\n  }\n\n  var _proto = PNG.prototype;\n\n  _proto.read = function read(bytes) {\n    var result = new Array(bytes);\n\n    for (var _i = 0; _i < bytes; _i++) {\n      result[_i] = this.data[this.pos++];\n    }\n\n    return result;\n  };\n\n  _proto.readUInt32 = function readUInt32() {\n    var b1 = this.data[this.pos++] << 24;\n    var b2 = this.data[this.pos++] << 16;\n    var b3 = this.data[this.pos++] << 8;\n    var b4 = this.data[this.pos++];\n    return b1 | b2 | b3 | b4;\n  };\n\n  _proto.readUInt16 = function readUInt16() {\n    var b1 = this.data[this.pos++] << 8;\n    var b2 = this.data[this.pos++];\n    return b1 | b2;\n  };\n\n  _proto.decodePixels = function decodePixels(fn) {\n    var _this = this;\n\n    return zlib.inflate(this.imgData, function (err, data) {\n      if (err) {\n        throw err;\n      }\n\n      var width = _this.width,\n          height = _this.height;\n      var pixelBytes = _this.pixelBitlength / 8;\n      var pixels = new Buffer(width * height * pixelBytes);\n      var length = data.length;\n      var pos = 0;\n\n      function pass(x0, y0, dx, dy, singlePass) {\n        if (singlePass === void 0) {\n          singlePass = false;\n        }\n\n        var w = Math.ceil((width - x0) / dx);\n        var h = Math.ceil((height - y0) / dy);\n        var scanlineLength = pixelBytes * w;\n        var buffer = singlePass ? pixels : new Buffer(scanlineLength * h);\n        var row = 0;\n        var c = 0;\n\n        while (row < h && pos < length) {\n          var byte, col, i, left, upper;\n\n          switch (data[pos++]) {\n            case 0:\n              // None\n              for (i = 0; i < scanlineLength; i++) {\n                buffer[c++] = data[pos++];\n              }\n\n              break;\n\n            case 1:\n              // Sub\n              for (i = 0; i < scanlineLength; i++) {\n                byte = data[pos++];\n                left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n                buffer[c++] = (byte + left) % 256;\n              }\n\n              break;\n\n            case 2:\n              // Up\n              for (i = 0; i < scanlineLength; i++) {\n                byte = data[pos++];\n                col = (i - i % pixelBytes) / pixelBytes;\n                upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n                buffer[c++] = (upper + byte) % 256;\n              }\n\n              break;\n\n            case 3:\n              // Average\n              for (i = 0; i < scanlineLength; i++) {\n                byte = data[pos++];\n                col = (i - i % pixelBytes) / pixelBytes;\n                left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n                upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n                buffer[c++] = (byte + Math.floor((left + upper) / 2)) % 256;\n              }\n\n              break;\n\n            case 4:\n              // Paeth\n              for (i = 0; i < scanlineLength; i++) {\n                var paeth, upperLeft;\n                byte = data[pos++];\n                col = (i - i % pixelBytes) / pixelBytes;\n                left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n\n                if (row === 0) {\n                  upper = upperLeft = 0;\n                } else {\n                  upper = buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n                  upperLeft = col && buffer[(row - 1) * scanlineLength + (col - 1) * pixelBytes + i % pixelBytes];\n                }\n\n                var p = left + upper - upperLeft;\n                var pa = Math.abs(p - left);\n                var pb = Math.abs(p - upper);\n                var pc = Math.abs(p - upperLeft);\n\n                if (pa <= pb && pa <= pc) {\n                  paeth = left;\n                } else if (pb <= pc) {\n                  paeth = upper;\n                } else {\n                  paeth = upperLeft;\n                }\n\n                buffer[c++] = (byte + paeth) % 256;\n              }\n\n              break;\n\n            default:\n              throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n          }\n\n          if (!singlePass) {\n            var pixelsPos = ((y0 + row * dy) * width + x0) * pixelBytes;\n            var bufferPos = row * scanlineLength;\n\n            for (i = 0; i < w; i++) {\n              for (var j = 0; j < pixelBytes; j++) {\n                pixels[pixelsPos++] = buffer[bufferPos++];\n              }\n\n              pixelsPos += (dx - 1) * pixelBytes;\n            }\n          }\n\n          row++;\n        }\n      }\n\n      if (_this.interlaceMethod === 1) {\n        /*\n          1 6 4 6 2 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n          3 6 4 6 3 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n        */\n        pass(0, 0, 8, 8); // 1\n\n        pass(4, 0, 8, 8); // 2\n\n        pass(0, 4, 4, 8); // 3\n\n        pass(2, 0, 4, 4); // 4\n\n        pass(0, 2, 2, 4); // 5\n\n        pass(1, 0, 2, 2); // 6\n\n        pass(0, 1, 1, 2); // 7\n      } else {\n        pass(0, 0, 1, 1, true);\n      }\n\n      return fn(pixels);\n    });\n  };\n\n  _proto.decodePalette = function decodePalette() {\n    var palette = this.palette;\n    var length = palette.length;\n    var transparency = this.transparency.indexed || [];\n    var ret = new Buffer(transparency.length + length);\n    var pos = 0;\n    var c = 0;\n\n    for (var _i2 = 0; _i2 < length; _i2 += 3) {\n      var left;\n      ret[pos++] = palette[_i2];\n      ret[pos++] = palette[_i2 + 1];\n      ret[pos++] = palette[_i2 + 2];\n      ret[pos++] = (left = transparency[c++]) != null ? left : 255;\n    }\n\n    return ret;\n  };\n\n  _proto.copyToImageData = function copyToImageData(imageData, pixels) {\n    var j, k;\n    var colors = this.colors;\n    var palette = null;\n    var alpha = this.hasAlphaChannel;\n\n    if (this.palette.length) {\n      palette = this._decodedPalette || (this._decodedPalette = this.decodePalette());\n      colors = 4;\n      alpha = true;\n    }\n\n    var data = imageData.data || imageData;\n    var length = data.length;\n    var input = palette || pixels;\n    var i = j = 0;\n\n    if (colors === 1) {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        var v = input[k++];\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    } else {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    }\n  };\n\n  _proto.decode = function decode(fn) {\n    var _this2 = this;\n\n    var ret = new Buffer(this.width * this.height * 4);\n    return this.decodePixels(function (pixels) {\n      _this2.copyToImageData(ret, pixels);\n\n      return fn(ret);\n    });\n  };\n\n  return PNG;\n}();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 539 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isArray = __webpack_require__(0).isArray;\n\nfunction typeName(bold, italics) {\n\tvar type = 'normal';\n\tif (bold && italics) {\n\t\ttype = 'bolditalics';\n\t} else if (bold) {\n\t\ttype = 'bold';\n\t} else if (italics) {\n\t\ttype = 'italics';\n\t}\n\treturn type;\n}\n\nfunction FontProvider(fontDescriptors, pdfKitDoc) {\n\tthis.fonts = {};\n\tthis.pdfKitDoc = pdfKitDoc;\n\tthis.fontCache = {};\n\n\tfor (var font in fontDescriptors) {\n\t\tif (fontDescriptors.hasOwnProperty(font)) {\n\t\t\tvar fontDef = fontDescriptors[font];\n\n\t\t\tthis.fonts[font] = {\n\t\t\t\tnormal: fontDef.normal,\n\t\t\t\tbold: fontDef.bold,\n\t\t\t\titalics: fontDef.italics,\n\t\t\t\tbolditalics: fontDef.bolditalics\n\t\t\t};\n\t\t}\n\t}\n}\n\nFontProvider.prototype.getFontType = function (bold, italics) {\n\treturn typeName(bold, italics);\n}\n\nFontProvider.prototype.getFontFile = function (familyName, bold, italics) {\n\tvar type = this.getFontType(bold, italics);\n\tif (!this.fonts[familyName] || !this.fonts[familyName][type]) {\n\t\treturn null;\n\t}\n\n\treturn this.fonts[familyName][type];\n}\n\nFontProvider.prototype.provideFont = function (familyName, bold, italics) {\n\tvar type = this.getFontType(bold, italics);\n\tif (this.getFontFile(familyName, bold, italics) === null) {\n\t\tthrow new Error('Font \\'' + familyName + '\\' in style \\'' + type + '\\' is not defined in the font section of the document definition.');\n\t}\n\n\tthis.fontCache[familyName] = this.fontCache[familyName] || {};\n\n\tif (!this.fontCache[familyName][type]) {\n\t\tvar def = this.fonts[familyName][type];\n\t\tif (!isArray(def)) {\n\t\t\tdef = [def];\n\t\t}\n\t\tthis.fontCache[familyName][type] = this.pdfKitDoc.font.apply(this.pdfKitDoc, def)._font;\n\t}\n\n\treturn this.fontCache[familyName][type];\n};\n\nmodule.exports = FontProvider;\n\n\n/***/ }),\n/* 540 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar TraversalTracker = __webpack_require__(291);\nvar DocPreprocessor = __webpack_require__(541);\nvar DocMeasure = __webpack_require__(542);\nvar DocumentContext = __webpack_require__(293);\nvar PageElementWriter = __webpack_require__(544);\nvar ColumnCalculator = __webpack_require__(198);\nvar TableProcessor = __webpack_require__(546);\nvar Line = __webpack_require__(294);\nvar isString = __webpack_require__(0).isString;\nvar isArray = __webpack_require__(0).isArray;\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar isNull = __webpack_require__(0).isNull;\nvar pack = __webpack_require__(0).pack;\nvar offsetVector = __webpack_require__(0).offsetVector;\nvar fontStringify = __webpack_require__(0).fontStringify;\nvar getNodeId = __webpack_require__(0).getNodeId;\nvar isFunction = __webpack_require__(0).isFunction;\nvar TextTools = __webpack_require__(197);\nvar StyleContextStack = __webpack_require__(292);\nvar isNumber = __webpack_require__(0).isNumber;\n\nfunction addAll(target, otherArray) {\n\totherArray.forEach(function (item) {\n\t\ttarget.push(item);\n\t});\n}\n\n/**\n * Creates an instance of LayoutBuilder - layout engine which turns document-definition-object\n * into a set of pages, lines, inlines and vectors ready to be rendered into a PDF\n *\n * @param {Object} pageSize - an object defining page width and height\n * @param {Object} pageMargins - an object defining top, left, right and bottom margins\n */\nfunction LayoutBuilder(pageSize, pageMargins, imageMeasure, svgMeasure) {\n\tthis.pageSize = pageSize;\n\tthis.pageMargins = pageMargins;\n\tthis.tracker = new TraversalTracker();\n\tthis.imageMeasure = imageMeasure;\n\tthis.svgMeasure = svgMeasure;\n\tthis.tableLayouts = {};\n}\n\nLayoutBuilder.prototype.registerTableLayouts = function (tableLayouts) {\n\tthis.tableLayouts = pack(this.tableLayouts, tableLayouts);\n};\n\n/**\n * Executes layout engine on document-definition-object and creates an array of pages\n * containing positioned Blocks, Lines and inlines\n *\n * @param {Object} docStructure document-definition-object\n * @param {Object} fontProvider font provider\n * @param {Object} styleDictionary dictionary with style definitions\n * @param {Object} defaultStyle default style definition\n * @return {Array} an array of pages\n */\nLayoutBuilder.prototype.layoutDocument = function (docStructure, fontProvider, styleDictionary, defaultStyle, background, header, footer, images, watermark, pageBreakBeforeFct) {\n\n\tfunction addPageBreaksIfNecessary(linearNodeList, pages) {\n\n\t\tif (!isFunction(pageBreakBeforeFct)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlinearNodeList = linearNodeList.filter(function (node) {\n\t\t\treturn node.positions.length > 0;\n\t\t});\n\n\t\tlinearNodeList.forEach(function (node) {\n\t\t\tvar nodeInfo = {};\n\t\t\t[\n\t\t\t\t'id', 'text', 'ul', 'ol', 'table', 'image', 'qr', 'canvas', 'svg', 'columns',\n\t\t\t\t'headlineLevel', 'style', 'pageBreak', 'pageOrientation',\n\t\t\t\t'width', 'height'\n\t\t\t].forEach(function (key) {\n\t\t\t\tif (node[key] !== undefined) {\n\t\t\t\t\tnodeInfo[key] = node[key];\n\t\t\t\t}\n\t\t\t});\n\t\t\tnodeInfo.startPosition = node.positions[0];\n\t\t\tnodeInfo.pageNumbers = node.positions.map(function (node) {\n\t\t\t\treturn node.pageNumber;\n\t\t\t}).filter(function (element, position, array) {\n\t\t\t\treturn array.indexOf(element) === position;\n\t\t\t});\n\t\t\tnodeInfo.pages = pages.length;\n\t\t\tnodeInfo.stack = isArray(node.stack);\n\n\t\t\tnode.nodeInfo = nodeInfo;\n\t\t});\n\n\t\tfor (var index = 0; index < linearNodeList.length; index++) {\n\t\t\tvar node = linearNodeList[index];\n\t\t\tif (node.pageBreak !== 'before' && !node.pageBreakCalculated) {\n\t\t\t\tnode.pageBreakCalculated = true;\n\t\t\t\tvar pageNumber = node.nodeInfo.pageNumbers[0];\n\t\t\t\tvar followingNodesOnPage = [];\n\t\t\t\tvar nodesOnNextPage = [];\n\t\t\t\tvar previousNodesOnPage = [];\n\t\t\t\tfor (var ii = index + 1, l = linearNodeList.length; ii < l; ii++) {\n\t\t\t\t\tif (linearNodeList[ii].nodeInfo.pageNumbers.indexOf(pageNumber) > -1) {\n\t\t\t\t\t\tfollowingNodesOnPage.push(linearNodeList[ii].nodeInfo);\n\t\t\t\t\t}\n\t\t\t\t\tif (linearNodeList[ii].nodeInfo.pageNumbers.indexOf(pageNumber + 1) > -1) {\n\t\t\t\t\t\tnodesOnNextPage.push(linearNodeList[ii].nodeInfo);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var ii = 0; ii < index; ii++) {\n\t\t\t\t\tif (linearNodeList[ii].nodeInfo.pageNumbers.indexOf(pageNumber) > -1) {\n\t\t\t\t\t\tpreviousNodesOnPage.push(linearNodeList[ii].nodeInfo);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pageBreakBeforeFct(node.nodeInfo, followingNodesOnPage, nodesOnNextPage, previousNodesOnPage)) {\n\t\t\t\t\tnode.pageBreak = 'before';\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tthis.docPreprocessor = new DocPreprocessor();\n\tthis.docMeasure = new DocMeasure(fontProvider, styleDictionary, defaultStyle, this.imageMeasure, this.svgMeasure, this.tableLayouts, images);\n\n\n\tfunction resetXYs(result) {\n\t\tresult.linearNodeList.forEach(function (node) {\n\t\t\tnode.resetXY();\n\t\t});\n\t}\n\n\tvar result = this.tryLayoutDocument(docStructure, fontProvider, styleDictionary, defaultStyle, background, header, footer, images, watermark);\n\twhile (addPageBreaksIfNecessary(result.linearNodeList, result.pages)) {\n\t\tresetXYs(result);\n\t\tresult = this.tryLayoutDocument(docStructure, fontProvider, styleDictionary, defaultStyle, background, header, footer, images, watermark);\n\t}\n\n\treturn result.pages;\n};\n\nLayoutBuilder.prototype.tryLayoutDocument = function (docStructure, fontProvider, styleDictionary, defaultStyle, background, header, footer, images, watermark, pageBreakBeforeFct) {\n\n\tthis.linearNodeList = [];\n\tdocStructure = this.docPreprocessor.preprocessDocument(docStructure);\n\tdocStructure = this.docMeasure.measureDocument(docStructure);\n\n\tthis.writer = new PageElementWriter(\n\t\tnew DocumentContext(this.pageSize, this.pageMargins), this.tracker);\n\n\tvar _this = this;\n\tthis.writer.context().tracker.startTracking('pageAdded', function () {\n\t\t_this.addBackground(background);\n\t});\n\n\tthis.addBackground(background);\n\tthis.processNode(docStructure);\n\tthis.addHeadersAndFooters(header, footer);\n\tif (watermark != null) {\n\t\tthis.addWatermark(watermark, fontProvider, defaultStyle);\n\t}\n\n\treturn { pages: this.writer.context().pages, linearNodeList: this.linearNodeList };\n};\n\n\nLayoutBuilder.prototype.addBackground = function (background) {\n\tvar backgroundGetter = isFunction(background) ? background : function () {\n\t\treturn background;\n\t};\n\n\tvar context = this.writer.context();\n\tvar pageSize = context.getCurrentPage().pageSize;\n\n\tvar pageBackground = backgroundGetter(context.page + 1, pageSize);\n\n\tif (pageBackground) {\n\t\tthis.writer.beginUnbreakableBlock(pageSize.width, pageSize.height);\n\t\tpageBackground = this.docPreprocessor.preprocessDocument(pageBackground);\n\t\tthis.processNode(this.docMeasure.measureDocument(pageBackground));\n\t\tthis.writer.commitUnbreakableBlock(0, 0);\n\t\tcontext.backgroundLength[context.page] += pageBackground.positions.length;\n\t}\n};\n\nLayoutBuilder.prototype.addStaticRepeatable = function (headerOrFooter, sizeFunction) {\n\tthis.addDynamicRepeatable(function () {\n\t\treturn JSON.parse(JSON.stringify(headerOrFooter)); // copy to new object\n\t}, sizeFunction);\n};\n\nLayoutBuilder.prototype.addDynamicRepeatable = function (nodeGetter, sizeFunction) {\n\tvar pages = this.writer.context().pages;\n\n\tfor (var pageIndex = 0, l = pages.length; pageIndex < l; pageIndex++) {\n\t\tthis.writer.context().page = pageIndex;\n\n\t\tvar node = nodeGetter(pageIndex + 1, l, this.writer.context().pages[pageIndex].pageSize);\n\n\t\tif (node) {\n\t\t\tvar sizes = sizeFunction(this.writer.context().getCurrentPage().pageSize, this.pageMargins);\n\t\t\tthis.writer.beginUnbreakableBlock(sizes.width, sizes.height);\n\t\t\tnode = this.docPreprocessor.preprocessDocument(node);\n\t\t\tthis.processNode(this.docMeasure.measureDocument(node));\n\t\t\tthis.writer.commitUnbreakableBlock(sizes.x, sizes.y);\n\t\t}\n\t}\n};\n\nLayoutBuilder.prototype.addHeadersAndFooters = function (header, footer) {\n\tvar headerSizeFct = function (pageSize, pageMargins) {\n\t\treturn {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: pageSize.width,\n\t\t\theight: pageMargins.top\n\t\t};\n\t};\n\n\tvar footerSizeFct = function (pageSize, pageMargins) {\n\t\treturn {\n\t\t\tx: 0,\n\t\t\ty: pageSize.height - pageMargins.bottom,\n\t\t\twidth: pageSize.width,\n\t\t\theight: pageMargins.bottom\n\t\t};\n\t};\n\n\tif (isFunction(header)) {\n\t\tthis.addDynamicRepeatable(header, headerSizeFct);\n\t} else if (header) {\n\t\tthis.addStaticRepeatable(header, headerSizeFct);\n\t}\n\n\tif (isFunction(footer)) {\n\t\tthis.addDynamicRepeatable(footer, footerSizeFct);\n\t} else if (footer) {\n\t\tthis.addStaticRepeatable(footer, footerSizeFct);\n\t}\n};\n\nLayoutBuilder.prototype.addWatermark = function (watermark, fontProvider, defaultStyle) {\n\tif (isString(watermark)) {\n\t\twatermark = { 'text': watermark };\n\t}\n\n\tif (!watermark.text) { // empty watermark text\n\t\treturn;\n\t}\n\n\twatermark.font = watermark.font || defaultStyle.font || 'Roboto';\n\twatermark.fontSize = watermark.fontSize || 'auto';\n\twatermark.color = watermark.color || 'black';\n\twatermark.opacity = isNumber(watermark.opacity) ? watermark.opacity : 0.6;\n\twatermark.bold = watermark.bold || false;\n\twatermark.italics = watermark.italics || false;\n\twatermark.angle = !isUndefined(watermark.angle) && !isNull(watermark.angle) ? watermark.angle : null;\n\n\tif (watermark.angle === null) {\n\t\twatermark.angle = Math.atan2(this.pageSize.height, this.pageSize.width) * -180 / Math.PI;\n\t}\n\n\tif (watermark.fontSize === 'auto') {\n\t\twatermark.fontSize = getWatermarkFontSize(this.pageSize, watermark, fontProvider);\n\t}\n\n\tvar watermarkObject = {\n\t\ttext: watermark.text,\n\t\tfont: fontProvider.provideFont(watermark.font, watermark.bold, watermark.italics),\n\t\tfontSize: watermark.fontSize,\n\t\tcolor: watermark.color,\n\t\topacity: watermark.opacity,\n\t\tangle: watermark.angle\n\t};\n\n\twatermarkObject._size = getWatermarkSize(watermark, fontProvider);\n\n\tvar pages = this.writer.context().pages;\n\tfor (var i = 0, l = pages.length; i < l; i++) {\n\t\tpages[i].watermark = watermarkObject;\n\t}\n\n\tfunction getWatermarkSize(watermark, fontProvider) {\n\t\tvar textTools = new TextTools(fontProvider);\n\t\tvar styleContextStack = new StyleContextStack(null, { font: watermark.font, bold: watermark.bold, italics: watermark.italics });\n\n\t\tstyleContextStack.push({\n\t\t\tfontSize: watermark.fontSize\n\t\t});\n\n\t\tvar size = textTools.sizeOfString(watermark.text, styleContextStack);\n\t\tvar rotatedSize = textTools.sizeOfRotatedText(watermark.text, watermark.angle, styleContextStack);\n\n\t\treturn { size: size, rotatedSize: rotatedSize };\n\t}\n\n\tfunction getWatermarkFontSize(pageSize, watermark, fontProvider) {\n\t\tvar textTools = new TextTools(fontProvider);\n\t\tvar styleContextStack = new StyleContextStack(null, { font: watermark.font, bold: watermark.bold, italics: watermark.italics });\n\t\tvar rotatedSize;\n\n\t\t/**\n\t\t * Binary search the best font size.\n\t\t * Initial bounds [0, 1000]\n\t\t * Break when range < 1\n\t\t */\n\t\tvar a = 0;\n\t\tvar b = 1000;\n\t\tvar c = (a + b) / 2;\n\t\twhile (Math.abs(a - b) > 1) {\n\t\t\tstyleContextStack.push({\n\t\t\t\tfontSize: c\n\t\t\t});\n\t\t\trotatedSize = textTools.sizeOfRotatedText(watermark.text, watermark.angle, styleContextStack);\n\t\t\tif (rotatedSize.width > pageSize.width) {\n\t\t\t\tb = c;\n\t\t\t\tc = (a + b) / 2;\n\t\t\t} else if (rotatedSize.width < pageSize.width) {\n\t\t\t\tif (rotatedSize.height > pageSize.height) {\n\t\t\t\t\tb = c;\n\t\t\t\t\tc = (a + b) / 2;\n\t\t\t\t} else {\n\t\t\t\t\ta = c;\n\t\t\t\t\tc = (a + b) / 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tstyleContextStack.pop();\n\t\t}\n\t\t/*\n\t\t End binary search\n\t\t */\n\t\treturn c;\n\t}\n};\n\nfunction decorateNode(node) {\n\tvar x = node.x, y = node.y;\n\tnode.positions = [];\n\n\tif (isArray(node.canvas)) {\n\t\tnode.canvas.forEach(function (vector) {\n\t\t\tvar x = vector.x, y = vector.y, x1 = vector.x1, y1 = vector.y1, x2 = vector.x2, y2 = vector.y2;\n\t\t\tvector.resetXY = function () {\n\t\t\t\tvector.x = x;\n\t\t\t\tvector.y = y;\n\t\t\t\tvector.x1 = x1;\n\t\t\t\tvector.y1 = y1;\n\t\t\t\tvector.x2 = x2;\n\t\t\t\tvector.y2 = y2;\n\t\t\t};\n\t\t});\n\t}\n\n\tnode.resetXY = function () {\n\t\tnode.x = x;\n\t\tnode.y = y;\n\t\tif (isArray(node.canvas)) {\n\t\t\tnode.canvas.forEach(function (vector) {\n\t\t\t\tvector.resetXY();\n\t\t\t});\n\t\t}\n\t};\n}\n\nLayoutBuilder.prototype.processNode = function (node) {\n\tvar self = this;\n\n\tthis.linearNodeList.push(node);\n\tdecorateNode(node);\n\n\tapplyMargins(function () {\n\t\tvar unbreakable = node.unbreakable;\n\t\tif (unbreakable) {\n\t\t\tself.writer.beginUnbreakableBlock();\n\t\t}\n\n\t\tvar absPosition = node.absolutePosition;\n\t\tif (absPosition) {\n\t\t\tself.writer.context().beginDetachedBlock();\n\t\t\tself.writer.context().moveTo(absPosition.x || 0, absPosition.y || 0);\n\t\t}\n\n\t\tvar relPosition = node.relativePosition;\n\t\tif (relPosition) {\n\t\t\tself.writer.context().beginDetachedBlock();\n\t\t\tself.writer.context().moveToRelative(relPosition.x || 0, relPosition.y || 0);\n\t\t}\n\n\t\tif (node.stack) {\n\t\t\tself.processVerticalContainer(node);\n\t\t} else if (node.columns) {\n\t\t\tself.processColumns(node);\n\t\t} else if (node.ul) {\n\t\t\tself.processList(false, node);\n\t\t} else if (node.ol) {\n\t\t\tself.processList(true, node);\n\t\t} else if (node.table) {\n\t\t\tself.processTable(node);\n\t\t} else if (node.text !== undefined) {\n\t\t\tself.processLeaf(node);\n\t\t} else if (node.toc) {\n\t\t\tself.processToc(node);\n\t\t} else if (node.image) {\n\t\t\tself.processImage(node);\n\t\t} else if (node.svg) {\n\t\t\tself.processSVG(node);\n\t\t} else if (node.canvas) {\n\t\t\tself.processCanvas(node);\n\t\t} else if (node.qr) {\n\t\t\tself.processQr(node);\n\t\t} else if (!node._span) {\n\t\t\tthrow 'Unrecognized document structure: ' + JSON.stringify(node, fontStringify);\n\t\t}\n\n\t\tif (absPosition || relPosition) {\n\t\t\tself.writer.context().endDetachedBlock();\n\t\t}\n\n\t\tif (unbreakable) {\n\t\t\tself.writer.commitUnbreakableBlock();\n\t\t}\n\t});\n\n\tfunction applyMargins(callback) {\n\t\tvar margin = node._margin;\n\n\t\tif (node.pageBreak === 'before') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t} else if (node.pageBreak === 'beforeOdd') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\tif ((self.writer.context().page + 1) % 2 === 1) {\n\t\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\t}\n\t\t} else if (node.pageBreak === 'beforeEven') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\tif ((self.writer.context().page + 1) % 2 === 0) {\n\t\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\t}\n\t\t}\n\n\t\tif (margin) {\n\t\t\tself.writer.context().moveDown(margin[1]);\n\t\t\tself.writer.context().addMargin(margin[0], margin[2]);\n\t\t}\n\n\t\tcallback();\n\n\t\tif (margin) {\n\t\t\tself.writer.context().addMargin(-margin[0], -margin[2]);\n\t\t\tself.writer.context().moveDown(margin[3]);\n\t\t}\n\n\t\tif (node.pageBreak === 'after') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t} else if (node.pageBreak === 'afterOdd') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\tif ((self.writer.context().page + 1) % 2 === 1) {\n\t\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\t}\n\t\t} else if (node.pageBreak === 'afterEven') {\n\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\tif ((self.writer.context().page + 1) % 2 === 0) {\n\t\t\t\tself.writer.moveToNextPage(node.pageOrientation);\n\t\t\t}\n\t\t}\n\t}\n};\n\n// vertical container\nLayoutBuilder.prototype.processVerticalContainer = function (node) {\n\tvar self = this;\n\tnode.stack.forEach(function (item) {\n\t\tself.processNode(item);\n\t\taddAll(node.positions, item.positions);\n\n\t\t//TODO: paragraph gap\n\t});\n};\n\n// columns\nLayoutBuilder.prototype.processColumns = function (columnNode) {\n\tvar columns = columnNode.columns;\n\tvar availableWidth = this.writer.context().availableWidth;\n\tvar gaps = gapArray(columnNode._gap);\n\n\tif (gaps) {\n\t\tavailableWidth -= (gaps.length - 1) * columnNode._gap;\n\t}\n\n\tColumnCalculator.buildColumnWidths(columns, availableWidth);\n\tvar result = this.processRow(columns, columns, gaps);\n\taddAll(columnNode.positions, result.positions);\n\n\n\tfunction gapArray(gap) {\n\t\tif (!gap) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar gaps = [];\n\t\tgaps.push(0);\n\n\t\tfor (var i = columns.length - 1; i > 0; i--) {\n\t\t\tgaps.push(gap);\n\t\t}\n\n\t\treturn gaps;\n\t}\n};\n\nLayoutBuilder.prototype.processRow = function (columns, widths, gaps, tableBody, tableRow, height) {\n\tvar self = this;\n\tvar pageBreaks = [], positions = [];\n\n\tthis.tracker.auto('pageChanged', storePageBreakData, function () {\n\t\twidths = widths || columns;\n\n\t\tself.writer.context().beginColumnGroup();\n\n\t\tfor (var i = 0, l = columns.length; i < l; i++) {\n\t\t\tvar column = columns[i];\n\t\t\tvar width = widths[i]._calcWidth;\n\t\t\tvar leftOffset = colLeftOffset(i);\n\n\t\t\tif (column.colSpan && column.colSpan > 1) {\n\t\t\t\tfor (var j = 1; j < column.colSpan; j++) {\n\t\t\t\t\twidth += widths[++i]._calcWidth + gaps[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.writer.context().beginColumn(width, leftOffset, getEndingCell(column, i));\n\t\t\tif (!column._span) {\n\t\t\t\tself.processNode(column);\n\t\t\t\taddAll(positions, column.positions);\n\t\t\t} else if (column._columnEndingContext) {\n\t\t\t\t// row-span ending\n\t\t\t\tself.writer.context().markEnding(column);\n\t\t\t}\n\t\t}\n\n\t\tself.writer.context().completeColumnGroup(height);\n\t});\n\n\treturn { pageBreaks: pageBreaks, positions: positions };\n\n\tfunction storePageBreakData(data) {\n\t\tvar pageDesc;\n\n\t\tfor (var i = 0, l = pageBreaks.length; i < l; i++) {\n\t\t\tvar desc = pageBreaks[i];\n\t\t\tif (desc.prevPage === data.prevPage) {\n\t\t\t\tpageDesc = desc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!pageDesc) {\n\t\t\tpageDesc = data;\n\t\t\tpageBreaks.push(pageDesc);\n\t\t}\n\t\tpageDesc.prevY = Math.max(pageDesc.prevY, data.prevY);\n\t\tpageDesc.y = Math.min(pageDesc.y, data.y);\n\t}\n\n\tfunction colLeftOffset(i) {\n\t\tif (gaps && gaps.length > i) {\n\t\t\treturn gaps[i];\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction getEndingCell(column, columnIndex) {\n\t\tif (column.rowSpan && column.rowSpan > 1) {\n\t\t\tvar endingRow = tableRow + column.rowSpan - 1;\n\t\t\tif (endingRow >= tableBody.length) {\n\t\t\t\tthrow 'Row span for column ' + columnIndex + ' (with indexes starting from 0) exceeded row count';\n\t\t\t}\n\t\t\treturn tableBody[endingRow][columnIndex];\n\t\t}\n\n\t\treturn null;\n\t}\n};\n\n// lists\nLayoutBuilder.prototype.processList = function (orderedList, node) {\n\tvar self = this,\n\t\titems = orderedList ? node.ol : node.ul,\n\t\tgapSize = node._gapSize;\n\n\tthis.writer.context().addMargin(gapSize.width);\n\n\tvar nextMarker;\n\tthis.tracker.auto('lineAdded', addMarkerToFirstLeaf, function () {\n\t\titems.forEach(function (item) {\n\t\t\tnextMarker = item.listMarker;\n\t\t\tself.processNode(item);\n\t\t\taddAll(node.positions, item.positions);\n\t\t});\n\t});\n\n\tthis.writer.context().addMargin(-gapSize.width);\n\n\tfunction addMarkerToFirstLeaf(line) {\n\t\t// I'm not very happy with the way list processing is implemented\n\t\t// (both code and algorithm should be rethinked)\n\t\tif (nextMarker) {\n\t\t\tvar marker = nextMarker;\n\t\t\tnextMarker = null;\n\n\t\t\tif (marker.canvas) {\n\t\t\t\tvar vector = marker.canvas[0];\n\n\t\t\t\toffsetVector(vector, -marker._minWidth, 0);\n\t\t\t\tself.writer.addVector(vector);\n\t\t\t} else if (marker._inlines) {\n\t\t\t\tvar markerLine = new Line(self.pageSize.width);\n\t\t\t\tmarkerLine.addInline(marker._inlines[0]);\n\t\t\t\tmarkerLine.x = -marker._minWidth;\n\t\t\t\tmarkerLine.y = line.getAscenderHeight() - markerLine.getAscenderHeight();\n\t\t\t\tself.writer.addLine(markerLine, true);\n\t\t\t}\n\t\t}\n\t}\n};\n\n// tables\nLayoutBuilder.prototype.processTable = function (tableNode) {\n\tvar processor = new TableProcessor(tableNode);\n\n\tprocessor.beginTable(this.writer);\n\n\tvar rowHeights = tableNode.table.heights;\n\tfor (var i = 0, l = tableNode.table.body.length; i < l; i++) {\n\t\tprocessor.beginRow(i, this.writer);\n\n\t\tvar height;\n\t\tif (isFunction(rowHeights)) {\n\t\t\theight = rowHeights(i);\n\t\t} else if (isArray(rowHeights)) {\n\t\t\theight = rowHeights[i];\n\t\t} else {\n\t\t\theight = rowHeights;\n\t\t}\n\n\t\tif (height === 'auto') {\n\t\t\theight = undefined;\n\t\t}\n\n\t\tvar result = this.processRow(tableNode.table.body[i], tableNode.table.widths, tableNode._offsets.offsets, tableNode.table.body, i, height);\n\t\taddAll(tableNode.positions, result.positions);\n\n\t\tprocessor.endRow(i, this.writer, result.pageBreaks);\n\t}\n\n\tprocessor.endTable(this.writer);\n};\n\n// leafs (texts)\nLayoutBuilder.prototype.processLeaf = function (node) {\n\tvar line = this.buildNextLine(node);\n\tif (line && (node.tocItem || node.id)) {\n\t\tline._node = node;\n\t}\n\tvar currentHeight = (line) ? line.getHeight() : 0;\n\tvar maxHeight = node.maxHeight || -1;\n\n\tif (line) {\n\t\tvar nodeId = getNodeId(node);\n\t\tif (nodeId) {\n\t\t\tline.id = nodeId;\n\t\t}\n\t}\n\n\tif (node._tocItemRef) {\n\t\tline._pageNodeRef = node._tocItemRef;\n\t}\n\n\tif (node._pageRef) {\n\t\tline._pageNodeRef = node._pageRef._nodeRef;\n\t}\n\n\tif (line && line.inlines && isArray(line.inlines)) {\n\t\tfor (var i = 0, l = line.inlines.length; i < l; i++) {\n\t\t\tif (line.inlines[i]._tocItemRef) {\n\t\t\t\tline.inlines[i]._pageNodeRef = line.inlines[i]._tocItemRef;\n\t\t\t}\n\n\t\t\tif (line.inlines[i]._pageRef) {\n\t\t\t\tline.inlines[i]._pageNodeRef = line.inlines[i]._pageRef._nodeRef;\n\t\t\t}\n\t\t}\n\t}\n\n\twhile (line && (maxHeight === -1 || currentHeight < maxHeight)) {\n\t\tvar positions = this.writer.addLine(line);\n\t\tnode.positions.push(positions);\n\t\tline = this.buildNextLine(node);\n\t\tif (line) {\n\t\t\tcurrentHeight += line.getHeight();\n\t\t}\n\t}\n};\n\nLayoutBuilder.prototype.processToc = function (node) {\n\tif (node.toc.title) {\n\t\tthis.processNode(node.toc.title);\n\t}\n\tif (node.toc._table) {\n\t\tthis.processNode(node.toc._table);\n\t}\n};\n\nLayoutBuilder.prototype.buildNextLine = function (textNode) {\n\n\tfunction cloneInline(inline) {\n\t\tvar newInline = inline.constructor();\n\t\tfor (var key in inline) {\n\t\t\tnewInline[key] = inline[key];\n\t\t}\n\t\treturn newInline;\n\t}\n\n\tif (!textNode._inlines || textNode._inlines.length === 0) {\n\t\treturn null;\n\t}\n\n\tvar line = new Line(this.writer.context().availableWidth);\n\tvar textTools = new TextTools(null);\n\n\tvar isForceContinue = false;\n\twhile (textNode._inlines && textNode._inlines.length > 0 &&\n\t\t(line.hasEnoughSpaceForInline(textNode._inlines[0], textNode._inlines.slice(1)) || isForceContinue)) {\n\t\tvar isHardWrap = false;\n\t\tvar inline = textNode._inlines.shift();\n\t\tisForceContinue = false;\n\n\t\tif (!inline.noWrap && inline.text.length > 1 && inline.width > line.getAvailableWidth()) {\n\t\t\tvar widthPerChar = inline.width / inline.text.length;\n\t\t\tvar maxChars = Math.floor(line.getAvailableWidth() / widthPerChar);\n\t\t\tif (maxChars < 1) {\n\t\t\t\tmaxChars = 1;\n\t\t\t}\n\t\t\tif (maxChars < inline.text.length) {\n\t\t\t\tvar newInline = cloneInline(inline);\n\n\t\t\t\tnewInline.text = inline.text.substr(maxChars);\n\t\t\t\tinline.text = inline.text.substr(0, maxChars);\n\n\t\t\t\tnewInline.width = textTools.widthOfString(newInline.text, newInline.font, newInline.fontSize, newInline.characterSpacing, newInline.fontFeatures);\n\t\t\t\tinline.width = textTools.widthOfString(inline.text, inline.font, inline.fontSize, inline.characterSpacing, inline.fontFeatures);\n\n\t\t\t\ttextNode._inlines.unshift(newInline);\n\t\t\t\tisHardWrap = true;\n\t\t\t}\n\t\t}\n\n\t\tline.addInline(inline);\n\n\t\tisForceContinue = inline.noNewLine && !isHardWrap;\n\t}\n\n\tline.lastLineInParagraph = textNode._inlines.length === 0;\n\n\treturn line;\n};\n\n// images\nLayoutBuilder.prototype.processImage = function (node) {\n\tvar position = this.writer.addImage(node);\n\tnode.positions.push(position);\n};\n\nLayoutBuilder.prototype.processSVG = function (node) {\n\tvar position = this.writer.addSVG(node);\n\tnode.positions.push(position);\n};\n\nLayoutBuilder.prototype.processCanvas = function (node) {\n\tvar height = node._minHeight;\n\n\tif (node.absolutePosition === undefined && this.writer.context().availableHeight < height) {\n\t\t// TODO: support for canvas larger than a page\n\t\t// TODO: support for other overflow methods\n\n\t\tthis.writer.moveToNextPage();\n\t}\n\n\tthis.writer.alignCanvas(node);\n\n\tnode.canvas.forEach(function (vector) {\n\t\tvar position = this.writer.addVector(vector);\n\t\tnode.positions.push(position);\n\t}, this);\n\n\tthis.writer.context().moveDown(height);\n};\n\nLayoutBuilder.prototype.processQr = function (node) {\n\tvar position = this.writer.addQr(node);\n\tnode.positions.push(position);\n};\n\nmodule.exports = LayoutBuilder;\n\n\n/***/ }),\n/* 541 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar isString = __webpack_require__(0).isString;\nvar isNumber = __webpack_require__(0).isNumber;\nvar isBoolean = __webpack_require__(0).isBoolean;\nvar isArray = __webpack_require__(0).isArray;\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar fontStringify = __webpack_require__(0).fontStringify;\n\nfunction DocPreprocessor() {\n\n}\n\nDocPreprocessor.prototype.preprocessDocument = function (docStructure) {\n\tthis.parentNode = null;\n\tthis.tocs = [];\n\tthis.nodeReferences = [];\n\treturn this.preprocessNode(docStructure);\n};\n\nDocPreprocessor.prototype.preprocessNode = function (node) {\n\t// expand shortcuts and casting values\n\tif (isArray(node)) {\n\t\tnode = { stack: node };\n\t} else if (isString(node)) {\n\t\tnode = { text: node };\n\t} else if (isNumber(node) || isBoolean(node)) {\n\t\tnode = { text: node.toString() };\n\t} else if (node === undefined || node === null) {\n\t\tnode = { text: '' };\n\t} else if (Object.keys(node).length === 0) { // empty object\n\t\tnode = { text: '' };\n\t} else if ('text' in node && (node.text === undefined || node.text === null)) {\n\t\tnode.text = '';\n\t}\n\n\tif (node.columns) {\n\t\treturn this.preprocessColumns(node);\n\t} else if (node.stack) {\n\t\treturn this.preprocessVerticalContainer(node);\n\t} else if (node.ul) {\n\t\treturn this.preprocessList(node);\n\t} else if (node.ol) {\n\t\treturn this.preprocessList(node);\n\t} else if (node.table) {\n\t\treturn this.preprocessTable(node);\n\t} else if (node.text !== undefined) {\n\t\treturn this.preprocessText(node);\n\t} else if (node.toc) {\n\t\treturn this.preprocessToc(node);\n\t} else if (node.image) {\n\t\treturn this.preprocessImage(node);\n\t} else if (node.svg) {\n\t\treturn this.preprocessSVG(node);\n\t} else if (node.canvas) {\n\t\treturn this.preprocessCanvas(node);\n\t} else if (node.qr) {\n\t\treturn this.preprocessQr(node);\n\t} else if (node.pageReference || node.textReference) {\n\t\treturn this.preprocessText(node);\n\t} else {\n\t\tthrow 'Unrecognized document structure: ' + JSON.stringify(node, fontStringify);\n\t}\n};\n\nDocPreprocessor.prototype.preprocessColumns = function (node) {\n\tvar columns = node.columns;\n\n\tfor (var i = 0, l = columns.length; i < l; i++) {\n\t\tcolumns[i] = this.preprocessNode(columns[i]);\n\t}\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessVerticalContainer = function (node) {\n\tvar items = node.stack;\n\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\titems[i] = this.preprocessNode(items[i]);\n\t}\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessList = function (node) {\n\tvar items = node.ul || node.ol;\n\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\titems[i] = this.preprocessNode(items[i]);\n\t}\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessTable = function (node) {\n\tvar col, row, cols, rows;\n\n\tfor (col = 0, cols = node.table.body[0].length; col < cols; col++) {\n\t\tfor (row = 0, rows = node.table.body.length; row < rows; row++) {\n\t\t\tvar rowData = node.table.body[row];\n\t\t\tvar data = rowData[col];\n\t\t\tif (data !== undefined) {\n\t\t\t\tif (data === null) { // transform to object\n\t\t\t\t\tdata = '';\n\t\t\t\t}\n\t\t\t\tif (!data._span) {\n\t\t\t\t\trowData[col] = this.preprocessNode(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessText = function (node) {\n\tif (node.tocItem) {\n\t\tif (!isArray(node.tocItem)) {\n\t\t\tnode.tocItem = [node.tocItem];\n\t\t}\n\n\t\tfor (var i = 0, l = node.tocItem.length; i < l; i++) {\n\t\t\tif (!isString(node.tocItem[i])) {\n\t\t\t\tnode.tocItem[i] = '_default_';\n\t\t\t}\n\n\t\t\tvar tocItemId = node.tocItem[i];\n\n\t\t\tif (!this.tocs[tocItemId]) {\n\t\t\t\tthis.tocs[tocItemId] = { toc: { _items: [], _pseudo: true } };\n\t\t\t}\n\n\t\t\tif (!node.id) {\n\t\t\t\tnode.id = 'toc-' + tocItemId + '-' + this.tocs[tocItemId].toc._items.length;\n\t\t\t}\n\n\t\t\tvar tocItemRef = {\n\t\t\t\t_nodeRef: this._getNodeForNodeRef(node),\n\t\t\t\t_textNodeRef: node\n\t\t\t};\n\t\t\tthis.tocs[tocItemId].toc._items.push(tocItemRef);\n\t\t}\n\t}\n\n\tif (node.id) {\n\t\tif (this.nodeReferences[node.id]) {\n\t\t\tif (!this.nodeReferences[node.id]._pseudo) {\n\t\t\t\tthrow \"Node id '\" + node.id + \"' already exists\";\n\t\t\t}\n\n\t\t\tthis.nodeReferences[node.id]._nodeRef = this._getNodeForNodeRef(node);\n\t\t\tthis.nodeReferences[node.id]._textNodeRef = node;\n\t\t\tthis.nodeReferences[node.id]._pseudo = false;\n\t\t} else {\n\t\t\tthis.nodeReferences[node.id] = {\n\t\t\t\t_nodeRef: this._getNodeForNodeRef(node),\n\t\t\t\t_textNodeRef: node\n\t\t\t};\n\t\t}\n\t}\n\n\tif (node.pageReference) {\n\t\tif (!this.nodeReferences[node.pageReference]) {\n\t\t\tthis.nodeReferences[node.pageReference] = {\n\t\t\t\t_nodeRef: {},\n\t\t\t\t_textNodeRef: {},\n\t\t\t\t_pseudo: true\n\t\t\t};\n\t\t}\n\t\tnode.text = '00000';\n\t\tnode.linkToDestination = node.pageReference;\n\t\tnode._pageRef = this.nodeReferences[node.pageReference];\n\t}\n\n\tif (node.textReference) {\n\t\tif (!this.nodeReferences[node.textReference]) {\n\t\t\tthis.nodeReferences[node.textReference] = { _nodeRef: {}, _pseudo: true };\n\t\t}\n\n\t\tnode.text = '';\n\t\tnode.linkToDestination = node.textReference;\n\t\tnode._textRef = this.nodeReferences[node.textReference];\n\t}\n\n\tif (node.text && node.text.text) {\n\t\tnode.text = [this.preprocessNode(node.text)];\n\t} else if (isArray(node.text)) {\n\t\tvar isSetParentNode = false;\n\t\tif (this.parentNode === null) {\n\t\t\tthis.parentNode = node;\n\t\t\tisSetParentNode = true;\n\t\t}\n\n\t\tfor (var i = 0, l = node.text.length; i < l; i++) {\n\t\t\tnode.text[i] = this.preprocessNode(node.text[i]);\n\t\t}\n\n\t\tif (isSetParentNode) {\n\t\t\tthis.parentNode = null;\n\t\t}\n\t}\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessToc = function (node) {\n\tif (!node.toc.id) {\n\t\tnode.toc.id = '_default_';\n\t}\n\n\tnode.toc.title = node.toc.title ? this.preprocessNode(node.toc.title) : null;\n\tnode.toc._items = [];\n\n\tif (this.tocs[node.toc.id]) {\n\t\tif (!this.tocs[node.toc.id].toc._pseudo) {\n\t\t\tthrow \"TOC '\" + node.toc.id + \"' already exists\";\n\t\t}\n\n\t\tnode.toc._items = this.tocs[node.toc.id].toc._items;\n\t}\n\n\tthis.tocs[node.toc.id] = node;\n\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessImage = function (node) {\n\tif (!isUndefined(node.image.type) && !isUndefined(node.image.data) && (node.image.type === 'Buffer') && isArray(node.image.data)) {\n\t\tnode.image = Buffer.from(node.image.data);\n\t}\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessSVG = function (node) {\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessCanvas = function (node) {\n\treturn node;\n};\n\nDocPreprocessor.prototype.preprocessQr = function (node) {\n\treturn node;\n};\n\nDocPreprocessor.prototype._getNodeForNodeRef = function (node) {\n\tif (this.parentNode) {\n\t\treturn this.parentNode;\n\t}\n\n\treturn node;\n}\n\nmodule.exports = DocPreprocessor;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 542 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*eslint no-unused-vars: [\"error\", {\"args\": \"none\"}]*/\n\n\n\nvar TextTools = __webpack_require__(197);\nvar StyleContextStack = __webpack_require__(292);\nvar ColumnCalculator = __webpack_require__(198);\nvar isString = __webpack_require__(0).isString;\nvar isNumber = __webpack_require__(0).isNumber;\nvar isObject = __webpack_require__(0).isObject;\nvar isArray = __webpack_require__(0).isArray;\nvar fontStringify = __webpack_require__(0).fontStringify;\nvar getNodeId = __webpack_require__(0).getNodeId;\nvar pack = __webpack_require__(0).pack;\nvar qrEncoder = __webpack_require__(543);\n\n/**\n * @private\n */\nfunction DocMeasure(fontProvider, styleDictionary, defaultStyle, imageMeasure, svgMeasure, tableLayouts, images) {\n\tthis.textTools = new TextTools(fontProvider);\n\tthis.styleStack = new StyleContextStack(styleDictionary, defaultStyle);\n\tthis.imageMeasure = imageMeasure;\n\tthis.svgMeasure = svgMeasure;\n\tthis.tableLayouts = tableLayouts;\n\tthis.images = images;\n\tthis.autoImageIndex = 1;\n}\n\n/**\n * Measures all nodes and sets min/max-width properties required for the second\n * layout-pass.\n * @param  {Object} docStructure document-definition-object\n * @return {Object}              document-measurement-object\n */\nDocMeasure.prototype.measureDocument = function (docStructure) {\n\treturn this.measureNode(docStructure);\n};\n\nDocMeasure.prototype.measureNode = function (node) {\n\n\tvar self = this;\n\n\treturn this.styleStack.auto(node, function () {\n\t\t// TODO: refactor + rethink whether this is the proper way to handle margins\n\t\tnode._margin = getNodeMargin(node);\n\n\t\tif (node.columns) {\n\t\t\treturn extendMargins(self.measureColumns(node));\n\t\t} else if (node.stack) {\n\t\t\treturn extendMargins(self.measureVerticalContainer(node));\n\t\t} else if (node.ul) {\n\t\t\treturn extendMargins(self.measureUnorderedList(node));\n\t\t} else if (node.ol) {\n\t\t\treturn extendMargins(self.measureOrderedList(node));\n\t\t} else if (node.table) {\n\t\t\treturn extendMargins(self.measureTable(node));\n\t\t} else if (node.text !== undefined) {\n\t\t\treturn extendMargins(self.measureLeaf(node));\n\t\t} else if (node.toc) {\n\t\t\treturn extendMargins(self.measureToc(node));\n\t\t} else if (node.image) {\n\t\t\treturn extendMargins(self.measureImage(node));\n\t\t} else if (node.svg) {\n\t\t\treturn extendMargins(self.measureSVG(node));\n\t\t} else if (node.canvas) {\n\t\t\treturn extendMargins(self.measureCanvas(node));\n\t\t} else if (node.qr) {\n\t\t\treturn extendMargins(self.measureQr(node));\n\t\t} else {\n\t\t\tthrow 'Unrecognized document structure: ' + JSON.stringify(node, fontStringify);\n\t\t}\n\t});\n\n\tfunction extendMargins(node) {\n\t\tvar margin = node._margin;\n\n\t\tif (margin) {\n\t\t\tnode._minWidth += margin[0] + margin[2];\n\t\t\tnode._maxWidth += margin[0] + margin[2];\n\t\t}\n\n\t\treturn node;\n\t}\n\n\tfunction getNodeMargin() {\n\n\t\tfunction processSingleMargins(node, currentMargin) {\n\t\t\tif (node.marginLeft || node.marginTop || node.marginRight || node.marginBottom) {\n\t\t\t\treturn [\n\t\t\t\t\tnode.marginLeft || currentMargin[0] || 0,\n\t\t\t\t\tnode.marginTop || currentMargin[1] || 0,\n\t\t\t\t\tnode.marginRight || currentMargin[2] || 0,\n\t\t\t\t\tnode.marginBottom || currentMargin[3] || 0\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn currentMargin;\n\t\t}\n\n\t\tfunction flattenStyleArray(styleArray) {\n\t\t\tvar flattenedStyles = {};\n\t\t\tfor (var i = styleArray.length - 1; i >= 0; i--) {\n\t\t\t\tvar styleName = styleArray[i];\n\t\t\t\tvar style = self.styleStack.styleDictionary[styleName];\n\t\t\t\tfor (var key in style) {\n\t\t\t\t\tif (style.hasOwnProperty(key)) {\n\t\t\t\t\t\tflattenedStyles[key] = style[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn flattenedStyles;\n\t\t}\n\n\t\tfunction convertMargin(margin) {\n\t\t\tif (isNumber(margin)) {\n\t\t\t\tmargin = [margin, margin, margin, margin];\n\t\t\t} else if (isArray(margin)) {\n\t\t\t\tif (margin.length === 2) {\n\t\t\t\t\tmargin = [margin[0], margin[1], margin[0], margin[1]];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn margin;\n\t\t}\n\n\t\tvar margin = [undefined, undefined, undefined, undefined];\n\n\t\tif (node.style) {\n\t\t\tvar styleArray = isArray(node.style) ? node.style : [node.style];\n\t\t\tvar flattenedStyleArray = flattenStyleArray(styleArray);\n\n\t\t\tif (flattenedStyleArray) {\n\t\t\t\tmargin = processSingleMargins(flattenedStyleArray, margin);\n\t\t\t}\n\n\t\t\tif (flattenedStyleArray.margin) {\n\t\t\t\tmargin = convertMargin(flattenedStyleArray.margin);\n\t\t\t}\n\t\t}\n\n\t\tmargin = processSingleMargins(node, margin);\n\n\t\tif (node.margin) {\n\t\t\tmargin = convertMargin(node.margin);\n\t\t}\n\n\t\tif (margin[0] === undefined && margin[1] === undefined && margin[2] === undefined && margin[3] === undefined) {\n\t\t\treturn null;\n\t\t} else {\n\t\t\treturn margin;\n\t\t}\n\t}\n};\n\nDocMeasure.prototype.convertIfBase64Image = function (node) {\n\tif (/^data:image\\/(jpeg|jpg|png);base64,/.test(node.image)) {\n\t\tvar label = '$$pdfmake$$' + this.autoImageIndex++;\n\t\tthis.images[label] = node.image;\n\t\tnode.image = label;\n\t}\n};\n\nDocMeasure.prototype.measureImageWithDimensions = function (node, dimensions) {\n\tif (node.fit) {\n\t\tvar factor = (dimensions.width / dimensions.height > node.fit[0] / node.fit[1]) ? node.fit[0] / dimensions.width : node.fit[1] / dimensions.height;\n\t\tnode._width = node._minWidth = node._maxWidth = dimensions.width * factor;\n\t\tnode._height = dimensions.height * factor;\n\t} else {\n\t\tnode._width = node._minWidth = node._maxWidth = node.width || dimensions.width;\n\t\tnode._height = node.height || (dimensions.height * node._width / dimensions.width);\n\n\t\tif (isNumber(node.maxWidth) && node.maxWidth < node._width) {\n\t\t\tnode._width = node._minWidth = node._maxWidth = node.maxWidth;\n\t\t\tnode._height = node._width * dimensions.height / dimensions.width;\n\t\t}\n\n\t\tif (isNumber(node.maxHeight) && node.maxHeight < node._height) {\n\t\t\tnode._height = node.maxHeight;\n\t\t\tnode._width = node._minWidth = node._maxWidth = node._height * dimensions.width / dimensions.height;\n\t\t}\n\n\t\tif (isNumber(node.minWidth) && node.minWidth > node._width) {\n\t\t\tnode._width = node._minWidth = node._maxWidth = node.minWidth;\n\t\t\tnode._height = node._width * dimensions.height / dimensions.width;\n\t\t}\n\n\t\tif (isNumber(node.minHeight) && node.minHeight > node._height) {\n\t\t\tnode._height = node.minHeight;\n\t\t\tnode._width = node._minWidth = node._maxWidth = node._height * dimensions.width / dimensions.height;\n\t\t}\n\t}\n\n\tnode._alignment = this.styleStack.getProperty('alignment');\n};\n\nDocMeasure.prototype.measureImage = function (node) {\n\tif (this.images) {\n\t\tthis.convertIfBase64Image(node);\n\t}\n\n\tvar dimensions = this.imageMeasure.measureImage(node.image);\n\n\tthis.measureImageWithDimensions(node, dimensions);\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureSVG = function (node) {\n\n\tvar dimensions = this.svgMeasure.measureSVG(node.svg);\n\n\tthis.measureImageWithDimensions(node, dimensions);\n\n\tnode.font = this.styleStack.getProperty('font');\n\n\t// scale SVG based on final dimension\n\tnode.svg = this.svgMeasure.writeDimensions(node.svg, {\n\t\twidth: node._width,\n\t\theight: node._height\n\t});\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureLeaf = function (node) {\n\n\tif (node._textRef && node._textRef._textNodeRef.text) {\n\t\tnode.text = node._textRef._textNodeRef.text;\n\t}\n\n\t// Make sure style properties of the node itself are considered when building inlines.\n\t// We could also just pass [node] to buildInlines, but that fails for bullet points.\n\tvar styleStack = this.styleStack.clone();\n\tstyleStack.push(node);\n\n\tvar data = this.textTools.buildInlines(node.text, styleStack);\n\n\tnode._inlines = data.items;\n\tnode._minWidth = data.minWidth;\n\tnode._maxWidth = data.maxWidth;\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureToc = function (node) {\n\tif (node.toc.title) {\n\t\tnode.toc.title = this.measureNode(node.toc.title);\n\t}\n\n\tif (node.toc._items.length > 0) {\n\t\tvar body = [];\n\t\tvar textStyle = node.toc.textStyle || {};\n\t\tvar numberStyle = node.toc.numberStyle || textStyle;\n\t\tvar textMargin = node.toc.textMargin || [0, 0, 0, 0];\n\t\tfor (var i = 0, l = node.toc._items.length; i < l; i++) {\n\t\t\tvar item = node.toc._items[i];\n\t\t\tvar lineStyle = item._textNodeRef.tocStyle || textStyle;\n\t\t\tvar lineMargin = item._textNodeRef.tocMargin || textMargin;\n\t\t\tvar lineNumberStyle = item._textNodeRef.tocNumberStyle || numberStyle;\n\t\t\tvar destination = getNodeId(item._nodeRef);\n\t\t\tbody.push([\n\t\t\t\t{ text: item._textNodeRef.text, linkToDestination: destination, alignment: 'left', style: lineStyle, margin: lineMargin },\n\t\t\t\t{ text: '00000', linkToDestination: destination, alignment: 'right', _tocItemRef: item._nodeRef, style: lineNumberStyle, margin: [0, lineMargin[1], 0, lineMargin[3]] }\n\t\t\t]);\n\t\t}\n\n\n\t\tnode.toc._table = {\n\t\t\ttable: {\n\t\t\t\tdontBreakRows: true,\n\t\t\t\twidths: ['*', 'auto'],\n\t\t\t\tbody: body\n\t\t\t},\n\t\t\tlayout: 'noBorders'\n\t\t};\n\n\t\tnode.toc._table = this.measureNode(node.toc._table);\n\t}\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureVerticalContainer = function (node) {\n\tvar items = node.stack;\n\n\tnode._minWidth = 0;\n\tnode._maxWidth = 0;\n\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\titems[i] = this.measureNode(items[i]);\n\n\t\tnode._minWidth = Math.max(node._minWidth, items[i]._minWidth);\n\t\tnode._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth);\n\t}\n\n\treturn node;\n};\n\nDocMeasure.prototype.gapSizeForList = function () {\n\treturn this.textTools.sizeOfString('9. ', this.styleStack);\n};\n\nDocMeasure.prototype.buildUnorderedMarker = function (styleStack, gapSize, type) {\n\tfunction buildDisc(gapSize, color) {\n\t\t// TODO: ascender-based calculations\n\t\tvar radius = gapSize.fontSize / 6;\n\t\treturn {\n\t\t\tcanvas: [{\n\t\t\t\tx: radius,\n\t\t\t\ty: (gapSize.height / gapSize.lineHeight) + gapSize.descender - gapSize.fontSize / 3,\n\t\t\t\tr1: radius,\n\t\t\t\tr2: radius,\n\t\t\t\ttype: 'ellipse',\n\t\t\t\tcolor: color\n\t\t\t}]\n\t\t};\n\t}\n\n\tfunction buildSquare(gapSize, color) {\n\t\t// TODO: ascender-based calculations\n\t\tvar size = gapSize.fontSize / 3;\n\t\treturn {\n\t\t\tcanvas: [{\n\t\t\t\tx: 0,\n\t\t\t\ty: (gapSize.height / gapSize.lineHeight) + gapSize.descender - (gapSize.fontSize / 3) - (size / 2),\n\t\t\t\th: size,\n\t\t\t\tw: size,\n\t\t\t\ttype: 'rect',\n\t\t\t\tcolor: color\n\t\t\t}]\n\t\t};\n\t}\n\n\tfunction buildCircle(gapSize, color) {\n\t\t// TODO: ascender-based calculations\n\t\tvar radius = gapSize.fontSize / 6;\n\t\treturn {\n\t\t\tcanvas: [{\n\t\t\t\tx: radius,\n\t\t\t\ty: (gapSize.height / gapSize.lineHeight) + gapSize.descender - gapSize.fontSize / 3,\n\t\t\t\tr1: radius,\n\t\t\t\tr2: radius,\n\t\t\t\ttype: 'ellipse',\n\t\t\t\tlineColor: color\n\t\t\t}]\n\t\t};\n\t}\n\n\tvar marker;\n\tvar color = styleStack.getProperty('markerColor') || styleStack.getProperty('color') || 'black';\n\n\tswitch (type) {\n\t\tcase 'circle':\n\t\t\tmarker = buildCircle(gapSize, color);\n\t\t\tbreak;\n\n\t\tcase 'square':\n\t\t\tmarker = buildSquare(gapSize, color);\n\t\t\tbreak;\n\n\t\tcase 'none':\n\t\t\tmarker = {};\n\t\t\tbreak;\n\n\t\tcase 'disc':\n\t\tdefault:\n\t\t\tmarker = buildDisc(gapSize, color);\n\t\t\tbreak;\n\t}\n\n\tmarker._minWidth = marker._maxWidth = gapSize.width;\n\tmarker._minHeight = marker._maxHeight = gapSize.height;\n\n\treturn marker;\n};\n\nDocMeasure.prototype.buildOrderedMarker = function (counter, styleStack, type, separator) {\n\tfunction prepareAlpha(counter) {\n\t\tfunction toAlpha(num) {\n\t\t\treturn (num >= 26 ? toAlpha((num / 26 >> 0) - 1) : '') + 'abcdefghijklmnopqrstuvwxyz'[num % 26 >> 0];\n\t\t}\n\n\t\tif (counter < 1) {\n\t\t\treturn counter.toString();\n\t\t}\n\n\t\treturn toAlpha(counter - 1);\n\t}\n\n\tfunction prepareRoman(counter) {\n\t\tif (counter < 1 || counter > 4999) {\n\t\t\treturn counter.toString();\n\t\t}\n\t\tvar num = counter;\n\t\tvar lookup = { M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50, XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1 }, roman = '', i;\n\t\tfor (i in lookup) {\n\t\t\twhile (num >= lookup[i]) {\n\t\t\t\troman += i;\n\t\t\t\tnum -= lookup[i];\n\t\t\t}\n\t\t}\n\t\treturn roman;\n\t}\n\n\tfunction prepareDecimal(counter) {\n\t\treturn counter.toString();\n\t}\n\n\tvar counterText;\n\tswitch (type) {\n\t\tcase 'none':\n\t\t\tcounterText = null;\n\t\t\tbreak;\n\n\t\tcase 'upper-alpha':\n\t\t\tcounterText = prepareAlpha(counter).toUpperCase();\n\t\t\tbreak;\n\n\t\tcase 'lower-alpha':\n\t\t\tcounterText = prepareAlpha(counter);\n\t\t\tbreak;\n\n\t\tcase 'upper-roman':\n\t\t\tcounterText = prepareRoman(counter);\n\t\t\tbreak;\n\n\t\tcase 'lower-roman':\n\t\t\tcounterText = prepareRoman(counter).toLowerCase();\n\t\t\tbreak;\n\n\t\tcase 'decimal':\n\t\tdefault:\n\t\t\tcounterText = prepareDecimal(counter);\n\t\t\tbreak;\n\t}\n\n\tif (counterText === null) {\n\t\treturn {};\n\t}\n\n\tif (separator) {\n\t\tif (isArray(separator)) {\n\t\t\tif (separator[0]) {\n\t\t\t\tcounterText = separator[0] + counterText;\n\t\t\t}\n\n\t\t\tif (separator[1]) {\n\t\t\t\tcounterText += separator[1];\n\t\t\t}\n\t\t\tcounterText += ' ';\n\t\t} else {\n\t\t\tcounterText += separator + ' ';\n\t\t}\n\t}\n\n\tvar textArray = { text: counterText };\n\tvar markerColor = styleStack.getProperty('markerColor');\n\tif (markerColor) {\n\t\ttextArray.color = markerColor;\n\t}\n\n\treturn { _inlines: this.textTools.buildInlines(textArray, styleStack).items };\n};\n\nDocMeasure.prototype.measureUnorderedList = function (node) {\n\tvar style = this.styleStack.clone();\n\tvar items = node.ul;\n\tnode.type = node.type || 'disc';\n\tnode._gapSize = this.gapSizeForList();\n\tnode._minWidth = 0;\n\tnode._maxWidth = 0;\n\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\tvar item = items[i] = this.measureNode(items[i]);\n\n\t\tif (!item.ol && !item.ul) {\n\t\t\titem.listMarker = this.buildUnorderedMarker(style, node._gapSize, item.listType || node.type);\n\t\t}\n\n\t\tnode._minWidth = Math.max(node._minWidth, items[i]._minWidth + node._gapSize.width);\n\t\tnode._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth + node._gapSize.width);\n\t}\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureOrderedList = function (node) {\n\tvar style = this.styleStack.clone();\n\tvar items = node.ol;\n\tnode.type = node.type || 'decimal';\n\tnode.separator = node.separator || '.';\n\tnode.reversed = node.reversed || false;\n\tif (!isNumber(node.start)) {\n\t\tnode.start = node.reversed ? items.length : 1;\n\t}\n\tnode._gapSize = this.gapSizeForList();\n\tnode._minWidth = 0;\n\tnode._maxWidth = 0;\n\n\tvar counter = node.start;\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\tvar item = items[i] = this.measureNode(items[i]);\n\n\t\tif (!item.ol && !item.ul) {\n\t\t\tvar counterValue = isNumber(item.counter) ? item.counter : counter;\n\t\t\titem.listMarker = this.buildOrderedMarker(counterValue, style, item.listType || node.type, node.separator);\n\t\t\tif (item.listMarker._inlines) {\n\t\t\t\tnode._gapSize.width = Math.max(node._gapSize.width, item.listMarker._inlines[0].width);\n\t\t\t}\n\t\t}  // TODO: else - nested lists numbering\n\n\t\tnode._minWidth = Math.max(node._minWidth, items[i]._minWidth);\n\t\tnode._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth);\n\n\t\tif (node.reversed) {\n\t\t\tcounter--;\n\t\t} else {\n\t\t\tcounter++;\n\t\t}\n\t}\n\n\tnode._minWidth += node._gapSize.width;\n\tnode._maxWidth += node._gapSize.width;\n\n\tfor (var i = 0, l = items.length; i < l; i++) {\n\t\tvar item = items[i];\n\t\tif (!item.ol && !item.ul) {\n\t\t\titem.listMarker._minWidth = item.listMarker._maxWidth = node._gapSize.width;\n\t\t}\n\t}\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureColumns = function (node) {\n\tvar columns = node.columns;\n\tnode._gap = this.styleStack.getProperty('columnGap') || 0;\n\n\tfor (var i = 0, l = columns.length; i < l; i++) {\n\t\tcolumns[i] = this.measureNode(columns[i]);\n\t}\n\n\tvar measures = ColumnCalculator.measureMinMax(columns);\n\n\tvar numGaps = (columns.length > 0) ? (columns.length - 1) : 0;\n\tnode._minWidth = measures.min + node._gap * numGaps;\n\tnode._maxWidth = measures.max + node._gap * numGaps;\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureTable = function (node) {\n\textendTableWidths(node);\n\tnode._layout = getLayout(this.tableLayouts);\n\tnode._offsets = getOffsets(node._layout);\n\n\tvar colSpans = [];\n\tvar col, row, cols, rows;\n\n\tfor (col = 0, cols = node.table.body[0].length; col < cols; col++) {\n\t\tvar c = node.table.widths[col];\n\t\tc._minWidth = 0;\n\t\tc._maxWidth = 0;\n\n\t\tfor (row = 0, rows = node.table.body.length; row < rows; row++) {\n\t\t\tvar rowData = node.table.body[row];\n\t\t\tvar data = rowData[col];\n\t\t\tif (data === undefined) {\n\t\t\t\tconsole.error('Malformed table row ', rowData, 'in node ', node);\n\t\t\t\tthrow 'Malformed table row, a cell is undefined.';\n\t\t\t}\n\t\t\tif (data === null) { // transform to object\n\t\t\t\tdata = '';\n\t\t\t}\n\n\t\t\tif (!data._span) {\n\t\t\t\tdata = rowData[col] = this.styleStack.auto(data, measureCb(this, data));\n\n\t\t\t\tif (data.colSpan && data.colSpan > 1) {\n\t\t\t\t\tmarkSpans(rowData, col, data.colSpan);\n\t\t\t\t\tcolSpans.push({ col: col, span: data.colSpan, minWidth: data._minWidth, maxWidth: data._maxWidth });\n\t\t\t\t} else {\n\t\t\t\t\tc._minWidth = Math.max(c._minWidth, data._minWidth);\n\t\t\t\t\tc._maxWidth = Math.max(c._maxWidth, data._maxWidth);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (data.rowSpan && data.rowSpan > 1) {\n\t\t\t\tmarkVSpans(node.table, row, col, data.rowSpan);\n\t\t\t}\n\t\t}\n\t}\n\n\textendWidthsForColSpans();\n\n\tvar measures = ColumnCalculator.measureMinMax(node.table.widths);\n\n\tnode._minWidth = measures.min + node._offsets.total;\n\tnode._maxWidth = measures.max + node._offsets.total;\n\n\treturn node;\n\n\tfunction measureCb(_this, data) {\n\t\treturn function () {\n\t\t\tif (isObject(data)) {\n\t\t\t\tdata.fillColor = _this.styleStack.getProperty('fillColor');\n\t\t\t\tdata.fillOpacity = _this.styleStack.getProperty('fillOpacity');\n\t\t\t}\n\t\t\treturn _this.measureNode(data);\n\t\t};\n\t}\n\n\tfunction getLayout(tableLayouts) {\n\t\tvar layout = node.layout;\n\n\t\tif (isString(layout)) {\n\t\t\tlayout = tableLayouts[layout];\n\t\t}\n\n\t\tvar defaultLayout = {\n\t\t\thLineWidth: function (i, node) {\n\t\t\t\treturn 1;\n\t\t\t},\n\t\t\tvLineWidth: function (i, node) {\n\t\t\t\treturn 1;\n\t\t\t},\n\t\t\thLineColor: function (i, node) {\n\t\t\t\treturn 'black';\n\t\t\t},\n\t\t\tvLineColor: function (i, node) {\n\t\t\t\treturn 'black';\n\t\t\t},\n\t\t\thLineStyle: function (i, node) {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tvLineStyle: function (i, node) {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tpaddingLeft: function (i, node) {\n\t\t\t\treturn 4;\n\t\t\t},\n\t\t\tpaddingRight: function (i, node) {\n\t\t\t\treturn 4;\n\t\t\t},\n\t\t\tpaddingTop: function (i, node) {\n\t\t\t\treturn 2;\n\t\t\t},\n\t\t\tpaddingBottom: function (i, node) {\n\t\t\t\treturn 2;\n\t\t\t},\n\t\t\tfillColor: function (i, node) {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tfillOpacity: function (i, node) {\n\t\t\t\treturn 1;\n\t\t\t},\n\t\t\tdefaultBorder: true\n\t\t};\n\n\t\treturn pack(defaultLayout, layout);\n\t}\n\n\tfunction getOffsets(layout) {\n\t\tvar offsets = [];\n\t\tvar totalOffset = 0;\n\t\tvar prevRightPadding = 0;\n\n\t\tfor (var i = 0, l = node.table.widths.length; i < l; i++) {\n\t\t\tvar lOffset = prevRightPadding + layout.vLineWidth(i, node) + layout.paddingLeft(i, node);\n\t\t\toffsets.push(lOffset);\n\t\t\ttotalOffset += lOffset;\n\t\t\tprevRightPadding = layout.paddingRight(i, node);\n\t\t}\n\n\t\ttotalOffset += prevRightPadding + layout.vLineWidth(node.table.widths.length, node);\n\n\t\treturn {\n\t\t\ttotal: totalOffset,\n\t\t\toffsets: offsets\n\t\t};\n\t}\n\n\tfunction extendWidthsForColSpans() {\n\t\tvar q, j;\n\n\t\tfor (var i = 0, l = colSpans.length; i < l; i++) {\n\t\t\tvar span = colSpans[i];\n\n\t\t\tvar currentMinMax = getMinMax(span.col, span.span, node._offsets);\n\t\t\tvar minDifference = span.minWidth - currentMinMax.minWidth;\n\t\t\tvar maxDifference = span.maxWidth - currentMinMax.maxWidth;\n\n\t\t\tif (minDifference > 0) {\n\t\t\t\tq = minDifference / span.span;\n\n\t\t\t\tfor (j = 0; j < span.span; j++) {\n\t\t\t\t\tnode.table.widths[span.col + j]._minWidth += q;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (maxDifference > 0) {\n\t\t\t\tq = maxDifference / span.span;\n\n\t\t\t\tfor (j = 0; j < span.span; j++) {\n\t\t\t\t\tnode.table.widths[span.col + j]._maxWidth += q;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getMinMax(col, span, offsets) {\n\t\tvar result = { minWidth: 0, maxWidth: 0 };\n\n\t\tfor (var i = 0; i < span; i++) {\n\t\t\tresult.minWidth += node.table.widths[col + i]._minWidth + (i ? offsets.offsets[col + i] : 0);\n\t\t\tresult.maxWidth += node.table.widths[col + i]._maxWidth + (i ? offsets.offsets[col + i] : 0);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tfunction markSpans(rowData, col, span) {\n\t\tfor (var i = 1; i < span; i++) {\n\t\t\trowData[col + i] = {\n\t\t\t\t_span: true,\n\t\t\t\t_minWidth: 0,\n\t\t\t\t_maxWidth: 0,\n\t\t\t\trowSpan: rowData[col].rowSpan\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction markVSpans(table, row, col, span) {\n\t\tfor (var i = 1; i < span; i++) {\n\t\t\ttable.body[row + i][col] = {\n\t\t\t\t_span: true,\n\t\t\t\t_minWidth: 0,\n\t\t\t\t_maxWidth: 0,\n\t\t\t\tfillColor: table.body[row][col].fillColor,\n\t\t\t\tfillOpacity: table.body[row][col].fillOpacity\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction extendTableWidths(node) {\n\t\tif (!node.table.widths) {\n\t\t\tnode.table.widths = 'auto';\n\t\t}\n\n\t\tif (isString(node.table.widths)) {\n\t\t\tnode.table.widths = [node.table.widths];\n\n\t\t\twhile (node.table.widths.length < node.table.body[0].length) {\n\t\t\t\tnode.table.widths.push(node.table.widths[node.table.widths.length - 1]);\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0, l = node.table.widths.length; i < l; i++) {\n\t\t\tvar w = node.table.widths[i];\n\t\t\tif (isNumber(w) || isString(w)) {\n\t\t\t\tnode.table.widths[i] = { width: w };\n\t\t\t}\n\t\t}\n\t}\n};\n\nDocMeasure.prototype.measureCanvas = function (node) {\n\tvar w = 0, h = 0;\n\n\tfor (var i = 0, l = node.canvas.length; i < l; i++) {\n\t\tvar vector = node.canvas[i];\n\n\t\tswitch (vector.type) {\n\t\t\tcase 'ellipse':\n\t\t\t\tw = Math.max(w, vector.x + vector.r1);\n\t\t\t\th = Math.max(h, vector.y + vector.r2);\n\t\t\t\tbreak;\n\t\t\tcase 'rect':\n\t\t\t\tw = Math.max(w, vector.x + vector.w);\n\t\t\t\th = Math.max(h, vector.y + vector.h);\n\t\t\t\tbreak;\n\t\t\tcase 'line':\n\t\t\t\tw = Math.max(w, vector.x1, vector.x2);\n\t\t\t\th = Math.max(h, vector.y1, vector.y2);\n\t\t\t\tbreak;\n\t\t\tcase 'polyline':\n\t\t\t\tfor (var i2 = 0, l2 = vector.points.length; i2 < l2; i2++) {\n\t\t\t\t\tw = Math.max(w, vector.points[i2].x);\n\t\t\t\t\th = Math.max(h, vector.points[i2].y);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tnode._minWidth = node._maxWidth = w;\n\tnode._minHeight = node._maxHeight = h;\n\tnode._alignment = this.styleStack.getProperty('alignment');\n\n\treturn node;\n};\n\nDocMeasure.prototype.measureQr = function (node) {\n\tnode = qrEncoder.measure(node);\n\tnode._alignment = this.styleStack.getProperty('alignment');\n\treturn node;\n};\n\nmodule.exports = DocMeasure;\n\n\n/***/ }),\n/* 543 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*eslint no-unused-vars: [\"error\", {\"args\": \"none\"}]*/\n/*eslint no-redeclare: \"off\"*/\n\n\n/* qr.js -- QR code generator in Javascript (revision 2011-01-19)\n * Written by Kang Seonghoon <public+qrjs@mearie.org>.\n *\n * This source code is in the public domain; if your jurisdiction does not\n * recognize the public domain the terms of Creative Commons CC0 license\n * apply. In the other words, you can always do what you want.\n */\n\n\n// per-version information (cf. JIS X 0510:2004 pp. 30--36, 71)\n//\n// [0]: the degree of generator polynomial by ECC levels\n// [1]: # of code blocks by ECC levels\n// [2]: left-top positions of alignment patterns\n//\n// the number in this table (in particular, [0]) does not exactly match with\n// the numbers in the specficiation. see augumenteccs below for the reason.\nvar VERSIONS = [\n\tnull,\n\t[[10, 7, 17, 13], [1, 1, 1, 1], []],\n\t[[16, 10, 28, 22], [1, 1, 1, 1], [4, 16]],\n\t[[26, 15, 22, 18], [1, 1, 2, 2], [4, 20]],\n\t[[18, 20, 16, 26], [2, 1, 4, 2], [4, 24]],\n\t[[24, 26, 22, 18], [2, 1, 4, 4], [4, 28]],\n\t[[16, 18, 28, 24], [4, 2, 4, 4], [4, 32]],\n\t[[18, 20, 26, 18], [4, 2, 5, 6], [4, 20, 36]],\n\t[[22, 24, 26, 22], [4, 2, 6, 6], [4, 22, 40]],\n\t[[22, 30, 24, 20], [5, 2, 8, 8], [4, 24, 44]],\n\t[[26, 18, 28, 24], [5, 4, 8, 8], [4, 26, 48]],\n\t[[30, 20, 24, 28], [5, 4, 11, 8], [4, 28, 52]],\n\t[[22, 24, 28, 26], [8, 4, 11, 10], [4, 30, 56]],\n\t[[22, 26, 22, 24], [9, 4, 16, 12], [4, 32, 60]],\n\t[[24, 30, 24, 20], [9, 4, 16, 16], [4, 24, 44, 64]],\n\t[[24, 22, 24, 30], [10, 6, 18, 12], [4, 24, 46, 68]],\n\t[[28, 24, 30, 24], [10, 6, 16, 17], [4, 24, 48, 72]],\n\t[[28, 28, 28, 28], [11, 6, 19, 16], [4, 28, 52, 76]],\n\t[[26, 30, 28, 28], [13, 6, 21, 18], [4, 28, 54, 80]],\n\t[[26, 28, 26, 26], [14, 7, 25, 21], [4, 28, 56, 84]],\n\t[[26, 28, 28, 30], [16, 8, 25, 20], [4, 32, 60, 88]],\n\t[[26, 28, 30, 28], [17, 8, 25, 23], [4, 26, 48, 70, 92]],\n\t[[28, 28, 24, 30], [17, 9, 34, 23], [4, 24, 48, 72, 96]],\n\t[[28, 30, 30, 30], [18, 9, 30, 25], [4, 28, 52, 76, 100]],\n\t[[28, 30, 30, 30], [20, 10, 32, 27], [4, 26, 52, 78, 104]],\n\t[[28, 26, 30, 30], [21, 12, 35, 29], [4, 30, 56, 82, 108]],\n\t[[28, 28, 30, 28], [23, 12, 37, 34], [4, 28, 56, 84, 112]],\n\t[[28, 30, 30, 30], [25, 12, 40, 34], [4, 32, 60, 88, 116]],\n\t[[28, 30, 30, 30], [26, 13, 42, 35], [4, 24, 48, 72, 96, 120]],\n\t[[28, 30, 30, 30], [28, 14, 45, 38], [4, 28, 52, 76, 100, 124]],\n\t[[28, 30, 30, 30], [29, 15, 48, 40], [4, 24, 50, 76, 102, 128]],\n\t[[28, 30, 30, 30], [31, 16, 51, 43], [4, 28, 54, 80, 106, 132]],\n\t[[28, 30, 30, 30], [33, 17, 54, 45], [4, 32, 58, 84, 110, 136]],\n\t[[28, 30, 30, 30], [35, 18, 57, 48], [4, 28, 56, 84, 112, 140]],\n\t[[28, 30, 30, 30], [37, 19, 60, 51], [4, 32, 60, 88, 116, 144]],\n\t[[28, 30, 30, 30], [38, 19, 63, 53], [4, 28, 52, 76, 100, 124, 148]],\n\t[[28, 30, 30, 30], [40, 20, 66, 56], [4, 22, 48, 74, 100, 126, 152]],\n\t[[28, 30, 30, 30], [43, 21, 70, 59], [4, 26, 52, 78, 104, 130, 156]],\n\t[[28, 30, 30, 30], [45, 22, 74, 62], [4, 30, 56, 82, 108, 134, 160]],\n\t[[28, 30, 30, 30], [47, 24, 77, 65], [4, 24, 52, 80, 108, 136, 164]],\n\t[[28, 30, 30, 30], [49, 25, 81, 68], [4, 28, 56, 84, 112, 140, 168]]];\n\n// mode constants (cf. Table 2 in JIS X 0510:2004 p. 16)\nvar MODE_TERMINATOR = 0;\nvar MODE_NUMERIC = 1, MODE_ALPHANUMERIC = 2, MODE_OCTET = 4, MODE_KANJI = 8;\n\n// validation regexps\nvar NUMERIC_REGEXP = /^\\d*$/;\nvar ALPHANUMERIC_REGEXP = /^[A-Za-z0-9 $%*+\\-./:]*$/;\nvar ALPHANUMERIC_OUT_REGEXP = /^[A-Z0-9 $%*+\\-./:]*$/;\n\n// ECC levels (cf. Table 22 in JIS X 0510:2004 p. 45)\nvar ECCLEVEL_L = 1, ECCLEVEL_M = 0, ECCLEVEL_Q = 3, ECCLEVEL_H = 2;\n\n// GF(2^8)-to-integer mapping with a reducing polynomial x^8+x^4+x^3+x^2+1\n// invariant: GF256_MAP[GF256_INVMAP[i]] == i for all i in [1,256)\nvar GF256_MAP = [], GF256_INVMAP = [-1];\nfor (var i = 0, v = 1; i < 255; ++i) {\n\tGF256_MAP.push(v);\n\tGF256_INVMAP[v] = i;\n\tv = (v * 2) ^ (v >= 128 ? 0x11d : 0);\n}\n\n// generator polynomials up to degree 30\n// (should match with polynomials in JIS X 0510:2004 Appendix A)\n//\n// generator polynomial of degree K is product of (x-\\alpha^0), (x-\\alpha^1),\n// ..., (x-\\alpha^(K-1)). by convention, we omit the K-th coefficient (always 1)\n// from the result; also other coefficients are written in terms of the exponent\n// to \\alpha to avoid the redundant calculation. (see also calculateecc below.)\nvar GF256_GENPOLY = [[]];\nfor (var i = 0; i < 30; ++i) {\n\tvar prevpoly = GF256_GENPOLY[i], poly = [];\n\tfor (var j = 0; j <= i; ++j) {\n\t\tvar a = (j < i ? GF256_MAP[prevpoly[j]] : 0);\n\t\tvar b = GF256_MAP[(i + (prevpoly[j - 1] || 0)) % 255];\n\t\tpoly.push(GF256_INVMAP[a ^ b]);\n\t}\n\tGF256_GENPOLY.push(poly);\n}\n\n// alphanumeric character mapping (cf. Table 5 in JIS X 0510:2004 p. 19)\nvar ALPHANUMERIC_MAP = {};\nfor (var i = 0; i < 45; ++i) {\n\tALPHANUMERIC_MAP['0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'.charAt(i)] = i;\n}\n\n// mask functions in terms of row # and column #\n// (cf. Table 20 in JIS X 0510:2004 p. 42)\n/*jshint unused: false */\nvar MASKFUNCS = [\n\tfunction (i, j) {\n\t\treturn (i + j) % 2 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn i % 2 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn j % 3 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn (i + j) % 3 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn (((i / 2) | 0) + ((j / 3) | 0)) % 2 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn (i * j) % 2 + (i * j) % 3 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn ((i * j) % 2 + (i * j) % 3) % 2 === 0;\n\t},\n\tfunction (i, j) {\n\t\treturn ((i + j) % 2 + (i * j) % 3) % 2 === 0;\n\t}];\n\n// returns true when the version information has to be embeded.\nvar needsverinfo = function (ver) {\n\treturn ver > 6;\n};\n\n// returns the size of entire QR code for given version.\nvar getsizebyver = function (ver) {\n\treturn 4 * ver + 17;\n};\n\n// returns the number of bits available for code words in this version.\nvar nfullbits = function (ver) {\n\t/*\n\t * |<--------------- n --------------->|\n\t * |        |<----- n-17 ---->|        |\n\t * +-------+                ///+-------+ ----\n\t * |       |                ///|       |    ^\n\t * |  9x9  |       @@@@@    ///|  9x8  |    |\n\t * |       | # # # @5x5@ # # # |       |    |\n\t * +-------+       @@@@@       +-------+    |\n\t *       #                               ---|\n\t *                                        ^ |\n\t *       #                                |\n\t *     @@@@@       @@@@@       @@@@@      | n\n\t *     @5x5@       @5x5@       @5x5@   n-17\n\t *     @@@@@       @@@@@       @@@@@      | |\n\t *       #                                | |\n\t * //////                                 v |\n\t * //////#                               ---|\n\t * +-------+       @@@@@       @@@@@        |\n\t * |       |       @5x5@       @5x5@        |\n\t * |  8x9  |       @@@@@       @@@@@        |\n\t * |       |                                v\n\t * +-------+                             ----\n\t *\n\t * when the entire code has n^2 modules and there are m^2-3 alignment\n\t * patterns, we have:\n\t * - 225 (= 9x9 + 9x8 + 8x9) modules for finder patterns and\n\t *   format information;\n\t * - 2n-34 (= 2(n-17)) modules for timing patterns;\n\t * - 36 (= 3x6 + 6x3) modules for version information, if any;\n\t * - 25m^2-75 (= (m^2-3)(5x5)) modules for alignment patterns\n\t *   if any, but 10m-20 (= 2(m-2)x5) of them overlaps with\n\t *   timing patterns.\n\t */\n\tvar v = VERSIONS[ver];\n\tvar nbits = 16 * ver * ver + 128 * ver + 64; // finder, timing and format info.\n\tif (needsverinfo(ver))\n\t\tnbits -= 36; // version information\n\tif (v[2].length) { // alignment patterns\n\t\tnbits -= 25 * v[2].length * v[2].length - 10 * v[2].length - 55;\n\t}\n\treturn nbits;\n};\n\n// returns the number of bits available for data portions (i.e. excludes ECC\n// bits but includes mode and length bits) in this version and ECC level.\nvar ndatabits = function (ver, ecclevel) {\n\tvar nbits = nfullbits(ver) & ~7; // no sub-octet code words\n\tvar v = VERSIONS[ver];\n\tnbits -= 8 * v[0][ecclevel] * v[1][ecclevel]; // ecc bits\n\treturn nbits;\n};\n\n// returns the number of bits required for the length of data.\n// (cf. Table 3 in JIS X 0510:2004 p. 16)\nvar ndatalenbits = function (ver, mode) {\n\tswitch (mode) {\n\t\tcase MODE_NUMERIC:\n\t\t\treturn (ver < 10 ? 10 : ver < 27 ? 12 : 14);\n\t\tcase MODE_ALPHANUMERIC:\n\t\t\treturn (ver < 10 ? 9 : ver < 27 ? 11 : 13);\n\t\tcase MODE_OCTET:\n\t\t\treturn (ver < 10 ? 8 : 16);\n\t\tcase MODE_KANJI:\n\t\t\treturn (ver < 10 ? 8 : ver < 27 ? 10 : 12);\n\t}\n};\n\n// returns the maximum length of data possible in given configuration.\nvar getmaxdatalen = function (ver, mode, ecclevel) {\n\tvar nbits = ndatabits(ver, ecclevel) - 4 - ndatalenbits(ver, mode); // 4 for mode bits\n\tswitch (mode) {\n\t\tcase MODE_NUMERIC:\n\t\t\treturn ((nbits / 10) | 0) * 3 + (nbits % 10 < 4 ? 0 : nbits % 10 < 7 ? 1 : 2);\n\t\tcase MODE_ALPHANUMERIC:\n\t\t\treturn ((nbits / 11) | 0) * 2 + (nbits % 11 < 6 ? 0 : 1);\n\t\tcase MODE_OCTET:\n\t\t\treturn (nbits / 8) | 0;\n\t\tcase MODE_KANJI:\n\t\t\treturn (nbits / 13) | 0;\n\t}\n};\n\n// checks if the given data can be encoded in given mode, and returns\n// the converted data for the further processing if possible. otherwise\n// returns null.\n//\n// this function does not check the length of data; it is a duty of\n// encode function below (as it depends on the version and ECC level too).\nvar validatedata = function (mode, data) {\n\tswitch (mode) {\n\t\tcase MODE_NUMERIC:\n\t\t\tif (!data.match(NUMERIC_REGEXP))\n\t\t\t\treturn null;\n\t\t\treturn data;\n\n\t\tcase MODE_ALPHANUMERIC:\n\t\t\tif (!data.match(ALPHANUMERIC_REGEXP))\n\t\t\t\treturn null;\n\t\t\treturn data.toUpperCase();\n\n\t\tcase MODE_OCTET:\n\t\t\tif (typeof data === 'string') { // encode as utf-8 string\n\t\t\t\tvar newdata = [];\n\t\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\t\tvar ch = data.charCodeAt(i);\n\t\t\t\t\tif (ch < 0x80) {\n\t\t\t\t\t\tnewdata.push(ch);\n\t\t\t\t\t} else if (ch < 0x800) {\n\t\t\t\t\t\tnewdata.push(0xc0 | (ch >> 6),\n\t\t\t\t\t\t\t0x80 | (ch & 0x3f));\n\t\t\t\t\t} else if (ch < 0x10000) {\n\t\t\t\t\t\tnewdata.push(0xe0 | (ch >> 12),\n\t\t\t\t\t\t\t0x80 | ((ch >> 6) & 0x3f),\n\t\t\t\t\t\t\t0x80 | (ch & 0x3f));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewdata.push(0xf0 | (ch >> 18),\n\t\t\t\t\t\t\t0x80 | ((ch >> 12) & 0x3f),\n\t\t\t\t\t\t\t0x80 | ((ch >> 6) & 0x3f),\n\t\t\t\t\t\t\t0x80 | (ch & 0x3f));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn newdata;\n\t\t\t} else {\n\t\t\t\treturn data;\n\t\t\t}\n\t}\n};\n\n// returns the code words (sans ECC bits) for given data and configurations.\n// requires data to be preprocessed by validatedata. no length check is\n// performed, and everything has to be checked before calling this function.\nvar encode = function (ver, mode, data, maxbuflen) {\n\tvar buf = [];\n\tvar bits = 0, remaining = 8;\n\tvar datalen = data.length;\n\n\t// this function is intentionally no-op when n=0.\n\tvar pack = function (x, n) {\n\t\tif (n >= remaining) {\n\t\t\tbuf.push(bits | (x >> (n -= remaining)));\n\t\t\twhile (n >= 8)\n\t\t\t\tbuf.push((x >> (n -= 8)) & 255);\n\t\t\tbits = 0;\n\t\t\tremaining = 8;\n\t\t}\n\t\tif (n > 0)\n\t\t\tbits |= (x & ((1 << n) - 1)) << (remaining -= n);\n\t};\n\n\tvar nlenbits = ndatalenbits(ver, mode);\n\tpack(mode, 4);\n\tpack(datalen, nlenbits);\n\n\tswitch (mode) {\n\t\tcase MODE_NUMERIC:\n\t\t\tfor (var i = 2; i < datalen; i += 3) {\n\t\t\t\tpack(parseInt(data.substring(i - 2, i + 1), 10), 10);\n\t\t\t}\n\t\t\tpack(parseInt(data.substring(i - 2), 10), [0, 4, 7][datalen % 3]);\n\t\t\tbreak;\n\n\t\tcase MODE_ALPHANUMERIC:\n\t\t\tfor (var i = 1; i < datalen; i += 2) {\n\t\t\t\tpack(ALPHANUMERIC_MAP[data.charAt(i - 1)] * 45 +\n\t\t\t\t\tALPHANUMERIC_MAP[data.charAt(i)], 11);\n\t\t\t}\n\t\t\tif (datalen % 2 == 1) {\n\t\t\t\tpack(ALPHANUMERIC_MAP[data.charAt(i - 1)], 6);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase MODE_OCTET:\n\t\t\tfor (var i = 0; i < datalen; ++i) {\n\t\t\t\tpack(data[i], 8);\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\t// final bits. it is possible that adding terminator causes the buffer\n\t// to overflow, but then the buffer truncated to the maximum size will\n\t// be valid as the truncated terminator mode bits and padding is\n\t// identical in appearance (cf. JIS X 0510:2004 sec 8.4.8).\n\tpack(MODE_TERMINATOR, 4);\n\tif (remaining < 8)\n\t\tbuf.push(bits);\n\n\t// the padding to fill up the remaining space. we should not add any\n\t// words when the overflow already occurred.\n\twhile (buf.length + 1 < maxbuflen)\n\t\tbuf.push(0xec, 0x11);\n\tif (buf.length < maxbuflen)\n\t\tbuf.push(0xec);\n\treturn buf;\n};\n\n// calculates ECC code words for given code words and generator polynomial.\n//\n// this is quite similar to CRC calculation as both Reed-Solomon and CRC use\n// the certain kind of cyclic codes, which is effectively the division of\n// zero-augumented polynomial by the generator polynomial. the only difference\n// is that Reed-Solomon uses GF(2^8), instead of CRC's GF(2), and Reed-Solomon\n// uses the different generator polynomial than CRC's.\nvar calculateecc = function (poly, genpoly) {\n\tvar modulus = poly.slice(0);\n\tvar polylen = poly.length, genpolylen = genpoly.length;\n\tfor (var i = 0; i < genpolylen; ++i)\n\t\tmodulus.push(0);\n\tfor (var i = 0; i < polylen; ) {\n\t\tvar quotient = GF256_INVMAP[modulus[i++]];\n\t\tif (quotient >= 0) {\n\t\t\tfor (var j = 0; j < genpolylen; ++j) {\n\t\t\t\tmodulus[i + j] ^= GF256_MAP[(quotient + genpoly[j]) % 255];\n\t\t\t}\n\t\t}\n\t}\n\treturn modulus.slice(polylen);\n};\n\n// auguments ECC code words to given code words. the resulting words are\n// ready to be encoded in the matrix.\n//\n// the much of actual augumenting procedure follows JIS X 0510:2004 sec 8.7.\n// the code is simplified using the fact that the size of each code & ECC\n// blocks is almost same; for example, when we have 4 blocks and 46 data words\n// the number of code words in those blocks are 11, 11, 12, 12 respectively.\nvar augumenteccs = function (poly, nblocks, genpoly) {\n\tvar subsizes = [];\n\tvar subsize = (poly.length / nblocks) | 0, subsize0 = 0;\n\tvar pivot = nblocks - poly.length % nblocks;\n\tfor (var i = 0; i < pivot; ++i) {\n\t\tsubsizes.push(subsize0);\n\t\tsubsize0 += subsize;\n\t}\n\tfor (var i = pivot; i < nblocks; ++i) {\n\t\tsubsizes.push(subsize0);\n\t\tsubsize0 += subsize + 1;\n\t}\n\tsubsizes.push(subsize0);\n\n\tvar eccs = [];\n\tfor (var i = 0; i < nblocks; ++i) {\n\t\teccs.push(calculateecc(poly.slice(subsizes[i], subsizes[i + 1]), genpoly));\n\t}\n\n\tvar result = [];\n\tvar nitemsperblock = (poly.length / nblocks) | 0;\n\tfor (var i = 0; i < nitemsperblock; ++i) {\n\t\tfor (var j = 0; j < nblocks; ++j) {\n\t\t\tresult.push(poly[subsizes[j] + i]);\n\t\t}\n\t}\n\tfor (var j = pivot; j < nblocks; ++j) {\n\t\tresult.push(poly[subsizes[j + 1] - 1]);\n\t}\n\tfor (var i = 0; i < genpoly.length; ++i) {\n\t\tfor (var j = 0; j < nblocks; ++j) {\n\t\t\tresult.push(eccs[j][i]);\n\t\t}\n\t}\n\treturn result;\n};\n\n// auguments BCH(p+q,q) code to the polynomial over GF(2), given the proper\n// genpoly. the both input and output are in binary numbers, and unlike\n// calculateecc genpoly should include the 1 bit for the highest degree.\n//\n// actual polynomials used for this procedure are as follows:\n// - p=10, q=5, genpoly=x^10+x^8+x^5+x^4+x^2+x+1 (JIS X 0510:2004 Appendix C)\n// - p=18, q=6, genpoly=x^12+x^11+x^10+x^9+x^8+x^5+x^2+1 (ibid. Appendix D)\nvar augumentbch = function (poly, p, genpoly, q) {\n\tvar modulus = poly << q;\n\tfor (var i = p - 1; i >= 0; --i) {\n\t\tif ((modulus >> (q + i)) & 1)\n\t\t\tmodulus ^= genpoly << i;\n\t}\n\treturn (poly << q) | modulus;\n};\n\n// creates the base matrix for given version. it returns two matrices, one of\n// them is the actual one and the another represents the \"reserved\" portion\n// (e.g. finder and timing patterns) of the matrix.\n//\n// some entries in the matrix may be undefined, rather than 0 or 1. this is\n// intentional (no initialization needed!), and putdata below will fill\n// the remaining ones.\nvar makebasematrix = function (ver) {\n\tvar v = VERSIONS[ver], n = getsizebyver(ver);\n\tvar matrix = [], reserved = [];\n\tfor (var i = 0; i < n; ++i) {\n\t\tmatrix.push([]);\n\t\treserved.push([]);\n\t}\n\n\tvar blit = function (y, x, h, w, bits) {\n\t\tfor (var i = 0; i < h; ++i) {\n\t\t\tfor (var j = 0; j < w; ++j) {\n\t\t\t\tmatrix[y + i][x + j] = (bits[i] >> j) & 1;\n\t\t\t\treserved[y + i][x + j] = 1;\n\t\t\t}\n\t\t}\n\t};\n\n\t// finder patterns and a part of timing patterns\n\t// will also mark the format information area (not yet written) as reserved.\n\tblit(0, 0, 9, 9, [0x7f, 0x41, 0x5d, 0x5d, 0x5d, 0x41, 0x17f, 0x00, 0x40]);\n\tblit(n - 8, 0, 8, 9, [0x100, 0x7f, 0x41, 0x5d, 0x5d, 0x5d, 0x41, 0x7f]);\n\tblit(0, n - 8, 9, 8, [0xfe, 0x82, 0xba, 0xba, 0xba, 0x82, 0xfe, 0x00, 0x00]);\n\n\t// the rest of timing patterns\n\tfor (var i = 9; i < n - 8; ++i) {\n\t\tmatrix[6][i] = matrix[i][6] = ~i & 1;\n\t\treserved[6][i] = reserved[i][6] = 1;\n\t}\n\n\t// alignment patterns\n\tvar aligns = v[2], m = aligns.length;\n\tfor (var i = 0; i < m; ++i) {\n\t\tvar minj = (i === 0 || i === m - 1 ? 1 : 0), maxj = (i === 0 ? m - 1 : m);\n\t\tfor (var j = minj; j < maxj; ++j) {\n\t\t\tblit(aligns[i], aligns[j], 5, 5, [0x1f, 0x11, 0x15, 0x11, 0x1f]);\n\t\t}\n\t}\n\n\t// version information\n\tif (needsverinfo(ver)) {\n\t\tvar code = augumentbch(ver, 6, 0x1f25, 12);\n\t\tvar k = 0;\n\t\tfor (var i = 0; i < 6; ++i) {\n\t\t\tfor (var j = 0; j < 3; ++j) {\n\t\t\t\tmatrix[i][(n - 11) + j] = matrix[(n - 11) + j][i] = (code >> k++) & 1;\n\t\t\t\treserved[i][(n - 11) + j] = reserved[(n - 11) + j][i] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {matrix: matrix, reserved: reserved};\n};\n\n// fills the data portion (i.e. unmarked in reserved) of the matrix with given\n// code words. the size of code words should be no more than available bits,\n// and remaining bits are padded to 0 (cf. JIS X 0510:2004 sec 8.7.3).\nvar putdata = function (matrix, reserved, buf) {\n\tvar n = matrix.length;\n\tvar k = 0, dir = -1;\n\tfor (var i = n - 1; i >= 0; i -= 2) {\n\t\tif (i == 6)\n\t\t\t--i; // skip the entire timing pattern column\n\t\tvar jj = (dir < 0 ? n - 1 : 0);\n\t\tfor (var j = 0; j < n; ++j) {\n\t\t\tfor (var ii = i; ii > i - 2; --ii) {\n\t\t\t\tif (!reserved[jj][ii]) {\n\t\t\t\t\t// may overflow, but (undefined >> x)\n\t\t\t\t\t// is 0 so it will auto-pad to zero.\n\t\t\t\t\tmatrix[jj][ii] = (buf[k >> 3] >> (~k & 7)) & 1;\n\t\t\t\t\t++k;\n\t\t\t\t}\n\t\t\t}\n\t\t\tjj += dir;\n\t\t}\n\t\tdir = -dir;\n\t}\n\treturn matrix;\n};\n\n// XOR-masks the data portion of the matrix. repeating the call with the same\n// arguments will revert the prior call (convenient in the matrix evaluation).\nvar maskdata = function (matrix, reserved, mask) {\n\tvar maskf = MASKFUNCS[mask];\n\tvar n = matrix.length;\n\tfor (var i = 0; i < n; ++i) {\n\t\tfor (var j = 0; j < n; ++j) {\n\t\t\tif (!reserved[i][j])\n\t\t\t\tmatrix[i][j] ^= maskf(i, j);\n\t\t}\n\t}\n\treturn matrix;\n};\n\n// puts the format information.\nvar putformatinfo = function (matrix, reserved, ecclevel, mask) {\n\tvar n = matrix.length;\n\tvar code = augumentbch((ecclevel << 3) | mask, 5, 0x537, 10) ^ 0x5412;\n\tfor (var i = 0; i < 15; ++i) {\n\t\tvar r = [0, 1, 2, 3, 4, 5, 7, 8, n - 7, n - 6, n - 5, n - 4, n - 3, n - 2, n - 1][i];\n\t\tvar c = [n - 1, n - 2, n - 3, n - 4, n - 5, n - 6, n - 7, n - 8, 7, 5, 4, 3, 2, 1, 0][i];\n\t\tmatrix[r][8] = matrix[8][c] = (code >> i) & 1;\n\t\t// we don't have to mark those bits reserved; always done\n\t\t// in makebasematrix above.\n\t}\n\treturn matrix;\n};\n\n// evaluates the resulting matrix and returns the score (lower is better).\n// (cf. JIS X 0510:2004 sec 8.8.2)\n//\n// the evaluation procedure tries to avoid the problematic patterns naturally\n// occuring from the original matrix. for example, it penaltizes the patterns\n// which just look like the finder pattern which will confuse the decoder.\n// we choose the mask which results in the lowest score among 8 possible ones.\n//\n// note: zxing seems to use the same procedure and in many cases its choice\n// agrees to ours, but sometimes it does not. practically it doesn't matter.\nvar evaluatematrix = function (matrix) {\n\t// N1+(k-5) points for each consecutive row of k same-colored modules,\n\t// where k >= 5. no overlapping row counts.\n\tvar PENALTY_CONSECUTIVE = 3;\n\t// N2 points for each 2x2 block of same-colored modules.\n\t// overlapping block does count.\n\tvar PENALTY_TWOBYTWO = 3;\n\t// N3 points for each pattern with >4W:1B:1W:3B:1W:1B or\n\t// 1B:1W:3B:1W:1B:>4W, or their multiples (e.g. highly unlikely,\n\t// but 13W:3B:3W:9B:3W:3B counts).\n\tvar PENALTY_FINDERLIKE = 40;\n\t// N4*k points for every (5*k)% deviation from 50% black density.\n\t// i.e. k=1 for 55~60% and 40~45%, k=2 for 60~65% and 35~40%, etc.\n\tvar PENALTY_DENSITY = 10;\n\n\tvar evaluategroup = function (groups) { // assumes [W,B,W,B,W,...,B,W]\n\t\tvar score = 0;\n\t\tfor (var i = 0; i < groups.length; ++i) {\n\t\t\tif (groups[i] >= 5)\n\t\t\t\tscore += PENALTY_CONSECUTIVE + (groups[i] - 5);\n\t\t}\n\t\tfor (var i = 5; i < groups.length; i += 2) {\n\t\t\tvar p = groups[i];\n\t\t\tif (groups[i - 1] == p && groups[i - 2] == 3 * p && groups[i - 3] == p &&\n\t\t\t\tgroups[i - 4] == p && (groups[i - 5] >= 4 * p || groups[i + 1] >= 4 * p)) {\n\t\t\t\t// this part differs from zxing...\n\t\t\t\tscore += PENALTY_FINDERLIKE;\n\t\t\t}\n\t\t}\n\t\treturn score;\n\t};\n\n\tvar n = matrix.length;\n\tvar score = 0, nblacks = 0;\n\tfor (var i = 0; i < n; ++i) {\n\t\tvar row = matrix[i];\n\t\tvar groups;\n\n\t\t// evaluate the current row\n\t\tgroups = [0]; // the first empty group of white\n\t\tfor (var j = 0; j < n; ) {\n\t\t\tvar k;\n\t\t\tfor (k = 0; j < n && row[j]; ++k)\n\t\t\t\t++j;\n\t\t\tgroups.push(k);\n\t\t\tfor (k = 0; j < n && !row[j]; ++k)\n\t\t\t\t++j;\n\t\t\tgroups.push(k);\n\t\t}\n\t\tscore += evaluategroup(groups);\n\n\t\t// evaluate the current column\n\t\tgroups = [0];\n\t\tfor (var j = 0; j < n; ) {\n\t\t\tvar k;\n\t\t\tfor (k = 0; j < n && matrix[j][i]; ++k)\n\t\t\t\t++j;\n\t\t\tgroups.push(k);\n\t\t\tfor (k = 0; j < n && !matrix[j][i]; ++k)\n\t\t\t\t++j;\n\t\t\tgroups.push(k);\n\t\t}\n\t\tscore += evaluategroup(groups);\n\n\t\t// check the 2x2 box and calculate the density\n\t\tvar nextrow = matrix[i + 1] || [];\n\t\tnblacks += row[0];\n\t\tfor (var j = 1; j < n; ++j) {\n\t\t\tvar p = row[j];\n\t\t\tnblacks += p;\n\t\t\t// at least comparison with next row should be strict...\n\t\t\tif (row[j - 1] == p && nextrow[j] === p && nextrow[j - 1] === p) {\n\t\t\t\tscore += PENALTY_TWOBYTWO;\n\t\t\t}\n\t\t}\n\t}\n\n\tscore += PENALTY_DENSITY * ((Math.abs(nblacks / n / n - 0.5) / 0.05) | 0);\n\treturn score;\n};\n\n// returns the fully encoded QR code matrix which contains given data.\n// it also chooses the best mask automatically when mask is -1.\nvar generate = function (data, ver, mode, ecclevel, mask) {\n\tvar v = VERSIONS[ver];\n\tvar buf = encode(ver, mode, data, ndatabits(ver, ecclevel) >> 3);\n\tbuf = augumenteccs(buf, v[1][ecclevel], GF256_GENPOLY[v[0][ecclevel]]);\n\n\tvar result = makebasematrix(ver);\n\tvar matrix = result.matrix, reserved = result.reserved;\n\tputdata(matrix, reserved, buf);\n\n\tif (mask < 0) {\n\t\t// find the best mask\n\t\tmaskdata(matrix, reserved, 0);\n\t\tputformatinfo(matrix, reserved, ecclevel, 0);\n\t\tvar bestmask = 0, bestscore = evaluatematrix(matrix);\n\t\tmaskdata(matrix, reserved, 0);\n\t\tfor (mask = 1; mask < 8; ++mask) {\n\t\t\tmaskdata(matrix, reserved, mask);\n\t\t\tputformatinfo(matrix, reserved, ecclevel, mask);\n\t\t\tvar score = evaluatematrix(matrix);\n\t\t\tif (bestscore > score) {\n\t\t\t\tbestscore = score;\n\t\t\t\tbestmask = mask;\n\t\t\t}\n\t\t\tmaskdata(matrix, reserved, mask);\n\t\t}\n\t\tmask = bestmask;\n\t}\n\n\tmaskdata(matrix, reserved, mask);\n\tputformatinfo(matrix, reserved, ecclevel, mask);\n\treturn matrix;\n};\n\n// the public interface is trivial; the options available are as follows:\n//\n// - version: an integer in [1,40]. when omitted (or -1) the smallest possible\n//   version is chosen.\n// - mode: one of 'numeric', 'alphanumeric', 'octet'. when omitted the smallest\n//   possible mode is chosen.\n// - eccLevel: one of 'L', 'M', 'Q', 'H'. defaults to 'L'.\n// - mask: an integer in [0,7]. when omitted (or -1) the best mask is chosen.\n//\n\nfunction generateFrame(data, options) {\n\tvar MODES = {'numeric': MODE_NUMERIC, 'alphanumeric': MODE_ALPHANUMERIC,\n\t\t'octet': MODE_OCTET};\n\tvar ECCLEVELS = {'L': ECCLEVEL_L, 'M': ECCLEVEL_M, 'Q': ECCLEVEL_Q,\n\t\t'H': ECCLEVEL_H};\n\n\toptions = options || {};\n\tvar ver = options.version || -1;\n\tvar ecclevel = ECCLEVELS[(options.eccLevel || 'L').toUpperCase()];\n\tvar mode = options.mode ? MODES[options.mode.toLowerCase()] : -1;\n\tvar mask = 'mask' in options ? options.mask : -1;\n\n\tif (mode < 0) {\n\t\tif (typeof data === 'string') {\n\t\t\tif (data.match(NUMERIC_REGEXP)) {\n\t\t\t\tmode = MODE_NUMERIC;\n\t\t\t} else if (data.match(ALPHANUMERIC_OUT_REGEXP)) {\n\t\t\t\t// while encode supports case-insensitive encoding, we restrict the data to be uppercased when auto-selecting the mode.\n\t\t\t\tmode = MODE_ALPHANUMERIC;\n\t\t\t} else {\n\t\t\t\tmode = MODE_OCTET;\n\t\t\t}\n\t\t} else {\n\t\t\tmode = MODE_OCTET;\n\t\t}\n\t} else if (!(mode == MODE_NUMERIC || mode == MODE_ALPHANUMERIC ||\n\t\tmode == MODE_OCTET)) {\n\t\tthrow 'invalid or unsupported mode';\n\t}\n\n\tdata = validatedata(mode, data);\n\tif (data === null)\n\t\tthrow 'invalid data format';\n\n\tif (ecclevel < 0 || ecclevel > 3)\n\t\tthrow 'invalid ECC level';\n\n\tif (ver < 0) {\n\t\tfor (ver = 1; ver <= 40; ++ver) {\n\t\t\tif (data.length <= getmaxdatalen(ver, mode, ecclevel))\n\t\t\t\tbreak;\n\t\t}\n\t\tif (ver > 40)\n\t\t\tthrow 'too large data for the Qr format';\n\t} else if (ver < 1 || ver > 40) {\n\t\tthrow 'invalid Qr version! should be between 1 and 40';\n\t}\n\n\tif (mask != -1 && (mask < 0 || mask > 8))\n\t\tthrow 'invalid mask';\n\t//console.log('version:', ver, 'mode:', mode, 'ECC:', ecclevel, 'mask:', mask )\n\treturn generate(data, ver, mode, ecclevel, mask);\n}\n\n\n// options\n// - modulesize: a number. this is a size of each modules in pixels, and\n//   defaults to 5px.\n// - margin: a number. this is a size of margin in *modules*, and defaults to\n//   4 (white modules). the specficiation mandates the margin no less than 4\n//   modules, so it is better not to alter this value unless you know what\n//   you're doing.\nfunction buildCanvas(data, options) {\n\n\tvar canvas = [];\n\tvar background = options.background || '#fff';\n\tvar foreground = options.foreground || '#000';\n\t//var margin = options.margin || 4;\n\tvar matrix = generateFrame(data, options);\n\tvar n = matrix.length;\n\tvar modSize = Math.floor(options.fit ? options.fit / n : 5);\n\tvar size = n * modSize;\n\n\tcanvas.push({\n\t\ttype: 'rect',\n\t\tx: 0, y: 0, w: size, h: size, lineWidth: 0, color: background\n\t});\n\n\tfor (var i = 0; i < n; ++i) {\n\t\tfor (var j = 0; j < n; ++j) {\n\t\t\tif (matrix[i][j]) {\n\t\t\t\tcanvas.push({\n\t\t\t\t\ttype: 'rect',\n\t\t\t\t\tx: modSize * j,\n\t\t\t\t\ty: modSize * i,\n\t\t\t\t\tw: modSize,\n\t\t\t\t\th: modSize,\n\t\t\t\t\tlineWidth: 0,\n\t\t\t\t\tcolor: foreground\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas: canvas,\n\t\tsize: size\n\t};\n\n}\n\nfunction measure(node) {\n\tvar cd = buildCanvas(node.qr, node);\n\tnode._canvas = cd.canvas;\n\tnode._width = node._height = node._minWidth = node._maxWidth = node._minHeight = node._maxHeight = cd.size;\n\treturn node;\n}\n\nmodule.exports = {\n\tmeasure: measure\n};\n\n/***/ }),\n/* 544 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isUndefined = __webpack_require__(0).isUndefined;\nvar ElementWriter = __webpack_require__(545);\n\n/**\n * Creates an instance of PageElementWriter - an extended ElementWriter\n * which can handle:\n * - page-breaks (it adds new pages when there's not enough space left),\n * - repeatable fragments (like table-headers, which are repeated everytime\n *                         a page-break occurs)\n * - transactions (used for unbreakable-blocks when we want to make sure\n *                 whole block will be rendered on the same page)\n */\nfunction PageElementWriter(context, tracker) {\n\tthis.transactionLevel = 0;\n\tthis.repeatables = [];\n\tthis.tracker = tracker;\n\tthis.writer = new ElementWriter(context, tracker);\n}\n\nfunction fitOnPage(self, addFct) {\n\tvar position = addFct(self);\n\tif (!position) {\n\t\tself.moveToNextPage();\n\t\tposition = addFct(self);\n\t}\n\treturn position;\n}\n\nPageElementWriter.prototype.addLine = function (line, dontUpdateContextPosition, index) {\n\treturn fitOnPage(this, function (self) {\n\t\treturn self.writer.addLine(line, dontUpdateContextPosition, index);\n\t});\n};\n\nPageElementWriter.prototype.addImage = function (image, index) {\n\treturn fitOnPage(this, function (self) {\n\t\treturn self.writer.addImage(image, index);\n\t});\n};\n\nPageElementWriter.prototype.addSVG = function (image, index) {\n\treturn fitOnPage(this, function (self) {\n\t\treturn self.writer.addSVG(image, index);\n\t});\n};\n\nPageElementWriter.prototype.addQr = function (qr, index) {\n\treturn fitOnPage(this, function (self) {\n\t\treturn self.writer.addQr(qr, index);\n\t});\n};\n\nPageElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index) {\n\treturn this.writer.addVector(vector, ignoreContextX, ignoreContextY, index);\n};\n\nPageElementWriter.prototype.beginClip = function (width, height) {\n\treturn this.writer.beginClip(width, height);\n};\n\nPageElementWriter.prototype.endClip = function () {\n\treturn this.writer.endClip();\n};\n\nPageElementWriter.prototype.alignCanvas = function (node) {\n\tthis.writer.alignCanvas(node);\n};\n\nPageElementWriter.prototype.addFragment = function (fragment, useBlockXOffset, useBlockYOffset, dontUpdateContextPosition) {\n\tif (!this.writer.addFragment(fragment, useBlockXOffset, useBlockYOffset, dontUpdateContextPosition)) {\n\t\tthis.moveToNextPage();\n\t\tthis.writer.addFragment(fragment, useBlockXOffset, useBlockYOffset, dontUpdateContextPosition);\n\t}\n};\n\nPageElementWriter.prototype.moveToNextPage = function (pageOrientation) {\n\n\tvar nextPage = this.writer.context.moveToNextPage(pageOrientation);\n\n\t// moveToNextPage is called multiple times for table, because is called for each column\n\t// and repeatables are inserted only in the first time. If columns are used, is needed\n\t// call for table in first column and then for table in the second column (is other repeatables).\n\tthis.repeatables.forEach(function (rep) {\n\t\tif (isUndefined(rep.insertedOnPages[this.writer.context.page])) {\n\t\t\trep.insertedOnPages[this.writer.context.page] = true;\n\t\t\tthis.writer.addFragment(rep, true);\n\t\t} else {\n\t\t\tthis.writer.context.moveDown(rep.height);\n\t\t}\n\t}, this);\n\n\tthis.writer.tracker.emit('pageChanged', {\n\t\tprevPage: nextPage.prevPage,\n\t\tprevY: nextPage.prevY,\n\t\ty: this.writer.context.y\n\t});\n};\n\nPageElementWriter.prototype.beginUnbreakableBlock = function (width, height) {\n\tif (this.transactionLevel++ === 0) {\n\t\tthis.originalX = this.writer.context.x;\n\t\tthis.writer.pushContext(width, height);\n\t}\n};\n\nPageElementWriter.prototype.commitUnbreakableBlock = function (forcedX, forcedY) {\n\tif (--this.transactionLevel === 0) {\n\t\tvar unbreakableContext = this.writer.context;\n\t\tthis.writer.popContext();\n\n\t\tvar nbPages = unbreakableContext.pages.length;\n\t\tif (nbPages > 0) {\n\t\t\t// no support for multi-page unbreakableBlocks\n\t\t\tvar fragment = unbreakableContext.pages[0];\n\t\t\tfragment.xOffset = forcedX;\n\t\t\tfragment.yOffset = forcedY;\n\n\t\t\t//TODO: vectors can influence height in some situations\n\t\t\tif (nbPages > 1) {\n\t\t\t\t// on out-of-context blocs (headers, footers, background) height should be the whole DocumentContext height\n\t\t\t\tif (forcedX !== undefined || forcedY !== undefined) {\n\t\t\t\t\tfragment.height = unbreakableContext.getCurrentPage().pageSize.height - unbreakableContext.pageMargins.top - unbreakableContext.pageMargins.bottom;\n\t\t\t\t} else {\n\t\t\t\t\tfragment.height = this.writer.context.getCurrentPage().pageSize.height - this.writer.context.pageMargins.top - this.writer.context.pageMargins.bottom;\n\t\t\t\t\tfor (var i = 0, l = this.repeatables.length; i < l; i++) {\n\t\t\t\t\t\tfragment.height -= this.repeatables[i].height;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfragment.height = unbreakableContext.y;\n\t\t\t}\n\n\t\t\tif (forcedX !== undefined || forcedY !== undefined) {\n\t\t\t\tthis.writer.addFragment(fragment, true, true, true);\n\t\t\t} else {\n\t\t\t\tthis.addFragment(fragment);\n\t\t\t}\n\t\t}\n\t}\n};\n\nPageElementWriter.prototype.currentBlockToRepeatable = function () {\n\tvar unbreakableContext = this.writer.context;\n\tvar rep = { items: [] };\n\n\tunbreakableContext.pages[0].items.forEach(function (item) {\n\t\trep.items.push(item);\n\t});\n\n\trep.xOffset = this.originalX;\n\n\t//TODO: vectors can influence height in some situations\n\trep.height = unbreakableContext.y;\n\n\trep.insertedOnPages = [];\n\n\treturn rep;\n};\n\nPageElementWriter.prototype.pushToRepeatables = function (rep) {\n\tthis.repeatables.push(rep);\n};\n\nPageElementWriter.prototype.popFromRepeatables = function () {\n\tthis.repeatables.pop();\n};\n\nPageElementWriter.prototype.context = function () {\n\treturn this.writer.context;\n};\n\nmodule.exports = PageElementWriter;\n\n\n/***/ }),\n/* 545 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Line = __webpack_require__(294);\nvar isNumber = __webpack_require__(0).isNumber;\nvar pack = __webpack_require__(0).pack;\nvar offsetVector = __webpack_require__(0).offsetVector;\nvar DocumentContext = __webpack_require__(293);\n\n/**\n * Creates an instance of ElementWriter - a line/vector writer, which adds\n * elements to current page and sets their positions based on the context\n */\nfunction ElementWriter(context, tracker) {\n\tthis.context = context;\n\tthis.contextStack = [];\n\tthis.tracker = tracker;\n}\n\nfunction addPageItem(page, item, index) {\n\tif (index === null || index === undefined || index < 0 || index > page.items.length) {\n\t\tpage.items.push(item);\n\t} else {\n\t\tpage.items.splice(index, 0, item);\n\t}\n}\n\nElementWriter.prototype.addLine = function (line, dontUpdateContextPosition, index) {\n\tvar height = line.getHeight();\n\tvar context = this.context;\n\tvar page = context.getCurrentPage(),\n\t\tposition = this.getCurrentPositionOnPage();\n\n\tif (context.availableHeight < height || !page) {\n\t\treturn false;\n\t}\n\n\tline.x = context.x + (line.x || 0);\n\tline.y = context.y + (line.y || 0);\n\n\tthis.alignLine(line);\n\n\taddPageItem(page, {\n\t\ttype: 'line',\n\t\titem: line\n\t}, index);\n\tthis.tracker.emit('lineAdded', line);\n\n\tif (!dontUpdateContextPosition) {\n\t\tcontext.moveDown(height);\n\t}\n\n\treturn position;\n};\n\nElementWriter.prototype.alignLine = function (line) {\n\tvar width = this.context.availableWidth;\n\tvar lineWidth = line.getWidth();\n\n\tvar alignment = line.inlines && line.inlines.length > 0 && line.inlines[0].alignment;\n\n\tvar offset = 0;\n\tswitch (alignment) {\n\t\tcase 'right':\n\t\t\toffset = width - lineWidth;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset = (width - lineWidth) / 2;\n\t\t\tbreak;\n\t}\n\n\tif (offset) {\n\t\tline.x = (line.x || 0) + offset;\n\t}\n\n\tif (alignment === 'justify' &&\n\t\t!line.newLineForced &&\n\t\t!line.lastLineInParagraph &&\n\t\tline.inlines.length > 1) {\n\t\tvar additionalSpacing = (width - lineWidth) / (line.inlines.length - 1);\n\n\t\tfor (var i = 1, l = line.inlines.length; i < l; i++) {\n\t\t\toffset = i * additionalSpacing;\n\n\t\t\tline.inlines[i].x += offset;\n\t\t\tline.inlines[i].justifyShift = additionalSpacing;\n\t\t}\n\t}\n};\n\nElementWriter.prototype.addImage = function (image, index, type) {\n\tvar context = this.context;\n\tvar page = context.getCurrentPage(),\n\t\tposition = this.getCurrentPositionOnPage();\n\n\tif (!page || (image.absolutePosition === undefined && context.availableHeight < image._height && page.items.length > 0)) {\n\t\treturn false;\n\t}\n\n\tif (image._x === undefined) {\n\t\timage._x = image.x || 0;\n\t}\n\n\timage.x = context.x + image._x;\n\timage.y = context.y;\n\n\tthis.alignImage(image);\n\n\taddPageItem(page, {\n\t\ttype: type || 'image',\n\t\titem: image\n\t}, index);\n\n\tcontext.moveDown(image._height);\n\n\treturn position;\n};\n\nElementWriter.prototype.addSVG = function (image, index) {\n\treturn this.addImage(image, index, 'svg')\n};\n\nElementWriter.prototype.addQr = function (qr, index) {\n\tvar context = this.context;\n\tvar page = context.getCurrentPage(),\n\t\tposition = this.getCurrentPositionOnPage();\n\n\tif (!page || (qr.absolutePosition === undefined && context.availableHeight < qr._height)) {\n\t\treturn false;\n\t}\n\n\tif (qr._x === undefined) {\n\t\tqr._x = qr.x || 0;\n\t}\n\n\tqr.x = context.x + qr._x;\n\tqr.y = context.y;\n\n\tthis.alignImage(qr);\n\n\tfor (var i = 0, l = qr._canvas.length; i < l; i++) {\n\t\tvar vector = qr._canvas[i];\n\t\tvector.x += qr.x;\n\t\tvector.y += qr.y;\n\t\tthis.addVector(vector, true, true, index);\n\t}\n\n\tcontext.moveDown(qr._height);\n\n\treturn position;\n};\n\nElementWriter.prototype.alignImage = function (image) {\n\tvar width = this.context.availableWidth;\n\tvar imageWidth = image._minWidth;\n\tvar offset = 0;\n\tswitch (image._alignment) {\n\t\tcase 'right':\n\t\t\toffset = width - imageWidth;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset = (width - imageWidth) / 2;\n\t\t\tbreak;\n\t}\n\n\tif (offset) {\n\t\timage.x = (image.x || 0) + offset;\n\t}\n};\n\nElementWriter.prototype.alignCanvas = function (node) {\n\tvar width = this.context.availableWidth;\n\tvar canvasWidth = node._minWidth;\n\tvar offset = 0;\n\tswitch (node._alignment) {\n\t\tcase 'right':\n\t\t\toffset = width - canvasWidth;\n\t\t\tbreak;\n\t\tcase 'center':\n\t\t\toffset = (width - canvasWidth) / 2;\n\t\t\tbreak;\n\t}\n\tif (offset) {\n\t\tnode.canvas.forEach(function (vector) {\n\t\t\toffsetVector(vector, offset, 0);\n\t\t});\n\t}\n};\n\nElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index) {\n\tvar context = this.context;\n\tvar page = context.getCurrentPage(),\n\t\tposition = this.getCurrentPositionOnPage();\n\n\tif (page) {\n\t\toffsetVector(vector, ignoreContextX ? 0 : context.x, ignoreContextY ? 0 : context.y);\n\t\taddPageItem(page, {\n\t\t\ttype: 'vector',\n\t\t\titem: vector\n\t\t}, index);\n\t\treturn position;\n\t}\n};\n\nElementWriter.prototype.beginClip = function (width, height) {\n\tvar ctx = this.context;\n\tvar page = ctx.getCurrentPage();\n\tpage.items.push({\n\t\ttype: 'beginClip',\n\t\titem: { x: ctx.x, y: ctx.y, width: width, height: height }\n\t});\n\treturn true;\n};\n\nElementWriter.prototype.endClip = function () {\n\tvar ctx = this.context;\n\tvar page = ctx.getCurrentPage();\n\tpage.items.push({\n\t\ttype: 'endClip'\n\t});\n\treturn true;\n};\n\nfunction cloneLine(line) {\n\tvar result = new Line(line.maxWidth);\n\n\tfor (var key in line) {\n\t\tif (line.hasOwnProperty(key)) {\n\t\t\tresult[key] = line[key];\n\t\t}\n\t}\n\n\treturn result;\n}\n\nElementWriter.prototype.addFragment = function (block, useBlockXOffset, useBlockYOffset, dontUpdateContextPosition) {\n\tvar ctx = this.context;\n\tvar page = ctx.getCurrentPage();\n\n\tif (!useBlockXOffset && block.height > ctx.availableHeight) {\n\t\treturn false;\n\t}\n\n\tblock.items.forEach(function (item) {\n\t\tswitch (item.type) {\n\t\t\tcase 'line':\n\t\t\t\tvar l = cloneLine(item.item);\n\n\t\t\t\tif (l._node) {\n\t\t\t\t\tl._node.positions[0].pageNumber = ctx.page + 1;\n\t\t\t\t}\n\t\t\t\tl.x = (l.x || 0) + (useBlockXOffset ? (block.xOffset || 0) : ctx.x);\n\t\t\t\tl.y = (l.y || 0) + (useBlockYOffset ? (block.yOffset || 0) : ctx.y);\n\n\t\t\t\tpage.items.push({\n\t\t\t\t\ttype: 'line',\n\t\t\t\t\titem: l\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase 'vector':\n\t\t\t\tvar v = pack(item.item);\n\n\t\t\t\toffsetVector(v, useBlockXOffset ? (block.xOffset || 0) : ctx.x, useBlockYOffset ? (block.yOffset || 0) : ctx.y);\n\t\t\t\tpage.items.push({\n\t\t\t\t\ttype: 'vector',\n\t\t\t\t\titem: v\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase 'image':\n\t\t\tcase 'svg':\n\t\t\t\tvar img = pack(item.item);\n\n\t\t\t\timg.x = (img.x || 0) + (useBlockXOffset ? (block.xOffset || 0) : ctx.x);\n\t\t\t\timg.y = (img.y || 0) + (useBlockYOffset ? (block.yOffset || 0) : ctx.y);\n\n\t\t\t\tpage.items.push({\n\t\t\t\t\ttype: item.type,\n\t\t\t\t\titem: img\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif (!dontUpdateContextPosition) {\n\t\tctx.moveDown(block.height);\n\t}\n\n\treturn true;\n};\n\n/**\n * Pushes the provided context onto the stack or creates a new one\n *\n * pushContext(context) - pushes the provided context and makes it current\n * pushContext(width, height) - creates and pushes a new context with the specified width and height\n * pushContext() - creates a new context for unbreakable blocks (with current availableWidth and full-page-height)\n */\nElementWriter.prototype.pushContext = function (contextOrWidth, height) {\n\tif (contextOrWidth === undefined) {\n\t\theight = this.context.getCurrentPage().height - this.context.pageMargins.top - this.context.pageMargins.bottom;\n\t\tcontextOrWidth = this.context.availableWidth;\n\t}\n\n\tif (isNumber(contextOrWidth)) {\n\t\tcontextOrWidth = new DocumentContext({ width: contextOrWidth, height: height }, { left: 0, right: 0, top: 0, bottom: 0 });\n\t}\n\n\tthis.contextStack.push(this.context);\n\tthis.context = contextOrWidth;\n};\n\nElementWriter.prototype.popContext = function () {\n\tthis.context = this.contextStack.pop();\n};\n\nElementWriter.prototype.getCurrentPositionOnPage = function () {\n\treturn (this.contextStack[0] || this.context).getCurrentPosition();\n};\n\n\nmodule.exports = ElementWriter;\n\n\n/***/ }),\n/* 546 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ColumnCalculator = __webpack_require__(198);\nvar isFunction = __webpack_require__(0).isFunction;\nvar isNumber = __webpack_require__(0).isNumber;\n\nfunction TableProcessor(tableNode) {\n\tthis.tableNode = tableNode;\n}\n\nTableProcessor.prototype.beginTable = function (writer) {\n\tvar tableNode;\n\tvar availableWidth;\n\tvar self = this;\n\n\ttableNode = this.tableNode;\n\tthis.offsets = tableNode._offsets;\n\tthis.layout = tableNode._layout;\n\n\tavailableWidth = writer.context().availableWidth - this.offsets.total;\n\tColumnCalculator.buildColumnWidths(tableNode.table.widths, availableWidth);\n\n\tthis.tableWidth = tableNode._offsets.total + getTableInnerContentWidth();\n\tthis.rowSpanData = prepareRowSpanData();\n\tthis.cleanUpRepeatables = false;\n\n\tthis.headerRows = tableNode.table.headerRows || 0;\n\tthis.rowsWithoutPageBreak = this.headerRows + (tableNode.table.keepWithHeaderRows || 0);\n\tthis.dontBreakRows = tableNode.table.dontBreakRows || false;\n\n\tif (this.rowsWithoutPageBreak) {\n\t\twriter.beginUnbreakableBlock();\n\t}\n\n\t// update the border properties of all cells before drawing any lines\n\tprepareCellBorders(this.tableNode.table.body);\n\n\tthis.drawHorizontalLine(0, writer);\n\n\tfunction getTableInnerContentWidth() {\n\t\tvar width = 0;\n\n\t\ttableNode.table.widths.forEach(function (w) {\n\t\t\twidth += w._calcWidth;\n\t\t});\n\n\t\treturn width;\n\t}\n\n\tfunction prepareRowSpanData() {\n\t\tvar rsd = [];\n\t\tvar x = 0;\n\t\tvar lastWidth = 0;\n\n\t\trsd.push({ left: 0, rowSpan: 0 });\n\n\t\tfor (var i = 0, l = self.tableNode.table.body[0].length; i < l; i++) {\n\t\t\tvar paddings = self.layout.paddingLeft(i, self.tableNode) + self.layout.paddingRight(i, self.tableNode);\n\t\t\tvar lBorder = self.layout.vLineWidth(i, self.tableNode);\n\t\t\tlastWidth = paddings + lBorder + self.tableNode.table.widths[i]._calcWidth;\n\t\t\trsd[rsd.length - 1].width = lastWidth;\n\t\t\tx += lastWidth;\n\t\t\trsd.push({ left: x, rowSpan: 0, width: 0 });\n\t\t}\n\n\t\treturn rsd;\n\t}\n\n\t// Iterate through all cells. If the current cell is the start of a\n\t// rowSpan/colSpan, update the border property of the cells on its\n\t// bottom/right accordingly. This is needed since each iteration of the\n\t// line-drawing loops draws lines for a single cell, not for an entire\n\t// rowSpan/colSpan.\n\tfunction prepareCellBorders(body) {\n\t\tfor (var rowIndex = 0; rowIndex < body.length; rowIndex++) {\n\t\t\tvar row = body[rowIndex];\n\n\t\t\tfor (var colIndex = 0; colIndex < row.length; colIndex++) {\n\t\t\t\tvar cell = row[colIndex];\n\n\t\t\t\tif (cell.border) {\n\t\t\t\t\tvar rowSpan = cell.rowSpan || 1;\n\t\t\t\t\tvar colSpan = cell.colSpan || 1;\n\n\t\t\t\t\tfor (var rowOffset = 0; rowOffset < rowSpan; rowOffset++) {\n\t\t\t\t\t\t// set left border\n\t\t\t\t\t\tif (cell.border[0] !== undefined && rowOffset > 0) {\n\t\t\t\t\t\t\tsetBorder(rowIndex + rowOffset, colIndex, 0, cell.border[0]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// set right border\n\t\t\t\t\t\tif (cell.border[2] !== undefined) {\n\t\t\t\t\t\t\tsetBorder(rowIndex + rowOffset, colIndex + colSpan - 1, 2, cell.border[2]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var colOffset = 0; colOffset < colSpan; colOffset++) {\n\t\t\t\t\t\t// set top border\n\t\t\t\t\t\tif (cell.border[1] !== undefined && colOffset > 0) {\n\t\t\t\t\t\t\tsetBorder(rowIndex, colIndex + colOffset, 1, cell.border[1]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// set bottom border\n\t\t\t\t\t\tif (cell.border[3] !== undefined) {\n\t\t\t\t\t\t\tsetBorder(rowIndex + rowSpan - 1, colIndex + colOffset, 3, cell.border[3]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// helper function to set the border for a given cell\n\t\tfunction setBorder(rowIndex, colIndex, borderIndex, borderValue) {\n\t\t\tvar cell = body[rowIndex][colIndex];\n\t\t\tcell.border = cell.border || {};\n\t\t\tcell.border[borderIndex] = borderValue;\n\t\t}\n\t}\n};\n\nTableProcessor.prototype.onRowBreak = function (rowIndex, writer) {\n\tvar self = this;\n\treturn function () {\n\t\tvar offset = self.rowPaddingTop + (!self.headerRows ? self.topLineWidth : 0);\n\t\twriter.context().availableHeight -= self.reservedAtBottom;\n\t\twriter.context().moveDown(offset);\n\t};\n};\n\nTableProcessor.prototype.beginRow = function (rowIndex, writer) {\n\tthis.topLineWidth = this.layout.hLineWidth(rowIndex, this.tableNode);\n\tthis.rowPaddingTop = this.layout.paddingTop(rowIndex, this.tableNode);\n\tthis.bottomLineWidth = this.layout.hLineWidth(rowIndex + 1, this.tableNode);\n\tthis.rowPaddingBottom = this.layout.paddingBottom(rowIndex, this.tableNode);\n\n\tthis.rowCallback = this.onRowBreak(rowIndex, writer);\n\twriter.tracker.startTracking('pageChanged', this.rowCallback);\n\tif (this.dontBreakRows) {\n\t\twriter.beginUnbreakableBlock();\n\t}\n\tthis.rowTopY = writer.context().y;\n\tthis.reservedAtBottom = this.bottomLineWidth + this.rowPaddingBottom;\n\n\twriter.context().availableHeight -= this.reservedAtBottom;\n\n\twriter.context().moveDown(this.rowPaddingTop);\n};\n\nTableProcessor.prototype.drawHorizontalLine = function (lineIndex, writer, overrideY) {\n\tvar lineWidth = this.layout.hLineWidth(lineIndex, this.tableNode);\n\tif (lineWidth) {\n\t\tvar style = this.layout.hLineStyle(lineIndex, this.tableNode);\n\t\tvar dash;\n\t\tif (style && style.dash) {\n\t\t\tdash = style.dash;\n\t\t}\n\n\t\tvar offset = lineWidth / 2;\n\t\tvar currentLine = null;\n\t\tvar body = this.tableNode.table.body;\n\t\tvar cellAbove;\n\t\tvar currentCell;\n\t\tvar rowCellAbove;\n\n\t\tfor (var i = 0, l = this.rowSpanData.length; i < l; i++) {\n\t\t\tvar data = this.rowSpanData[i];\n\t\t\tvar shouldDrawLine = !data.rowSpan;\n\t\t\tvar borderColor = null;\n\n\t\t\t// draw only if the current cell requires a top border or the cell in the\n\t\t\t// row above requires a bottom border\n\t\t\tif (shouldDrawLine && i < l - 1) {\n\t\t\t\tvar topBorder = false, bottomBorder = false, rowBottomBorder = false;\n\n\t\t\t\t// the cell in the row above\n\t\t\t\tif (lineIndex > 0) {\n\t\t\t\t\tcellAbove = body[lineIndex - 1][i];\n\t\t\t\t\tbottomBorder = cellAbove.border ? cellAbove.border[3] : this.layout.defaultBorder;\n\t\t\t\t\tif (bottomBorder && cellAbove.borderColor) {\n\t\t\t\t\t\tborderColor = cellAbove.borderColor[3];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// the current cell\n\t\t\t\tif (lineIndex < body.length) {\n\t\t\t\t\tcurrentCell = body[lineIndex][i];\n\t\t\t\t\ttopBorder = currentCell.border ? currentCell.border[1] : this.layout.defaultBorder;\n\t\t\t\t\tif (topBorder && borderColor == null && currentCell.borderColor) {\n\t\t\t\t\t\tborderColor = currentCell.borderColor[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tshouldDrawLine = topBorder || bottomBorder;\n\t\t\t}\n\n\t\t\tif (cellAbove && cellAbove._rowSpanCurrentOffset) {\n\t\t\t\trowCellAbove = body[lineIndex - 1 - cellAbove._rowSpanCurrentOffset][i];\n\t\t\t\trowBottomBorder = rowCellAbove && rowCellAbove.border ? rowCellAbove.border[3] : this.layout.defaultBorder;\n\t\t\t\tif (rowBottomBorder && rowCellAbove && rowCellAbove.borderColor) {\n\t\t\t\t\tborderColor = rowCellAbove.borderColor[3];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (borderColor == null) {\n\t\t\t\tborderColor = isFunction(this.layout.hLineColor) ? this.layout.hLineColor(lineIndex, this.tableNode, i) : this.layout.hLineColor;\n\t\t\t}\n\n\t\t\tif (!currentLine && shouldDrawLine) {\n\t\t\t\tcurrentLine = { left: data.left, width: 0 };\n\t\t\t}\n\n\t\t\tif (shouldDrawLine) {\n\t\t\t\tvar colSpanIndex = 0;\n\t\t\t\tif (rowCellAbove && rowCellAbove.colSpan && rowBottomBorder) {\n\t\t\t\t\twhile (rowCellAbove.colSpan > colSpanIndex) {\n\t\t\t\t\t\tcurrentLine.width += (this.rowSpanData[i + colSpanIndex++].width || 0);\n\t\t\t\t\t}\n\t\t\t\t\ti += colSpanIndex - 1;\n\t\t\t\t} else if (cellAbove && cellAbove.colSpan && bottomBorder) {\n\t\t\t\t\twhile (cellAbove.colSpan > colSpanIndex) {\n\t\t\t\t\t\tcurrentLine.width += (this.rowSpanData[i + colSpanIndex++].width || 0);\n\t\t\t\t\t}\n\t\t\t\t\ti += colSpanIndex - 1;\n\t\t\t\t} else if (currentCell && currentCell.colSpan && topBorder) {\n\t\t\t\t\twhile (currentCell.colSpan > colSpanIndex) {\n\t\t\t\t\t\tcurrentLine.width += (this.rowSpanData[i + colSpanIndex++].width || 0);\n\t\t\t\t\t}\n\t\t\t\t\ti += colSpanIndex - 1;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentLine.width += (this.rowSpanData[i].width || 0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar y = (overrideY || 0) + offset;\n\n\n\t\t\tif (shouldDrawLine) {\n\t\t\t\tif (currentLine && currentLine.width) {\n\t\t\t\t\twriter.addVector({\n\t\t\t\t\t\ttype: 'line',\n\t\t\t\t\t\tx1: currentLine.left,\n\t\t\t\t\t\tx2: currentLine.left + currentLine.width,\n\t\t\t\t\t\ty1: y,\n\t\t\t\t\t\ty2: y,\n\t\t\t\t\t\tlineWidth: lineWidth,\n\t\t\t\t\t\tdash: dash,\n\t\t\t\t\t\tlineColor: borderColor\n\t\t\t\t\t}, false, overrideY);\n\t\t\t\t\tcurrentLine = null;\n\t\t\t\t\tborderColor = null;\n\t\t\t\t\tcellAbove = null;\n\t\t\t\t\tcurrentCell = null;\n\t\t\t\t\trowCellAbove = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twriter.context().moveDown(lineWidth);\n\t}\n};\n\nTableProcessor.prototype.drawVerticalLine = function (x, y0, y1, vLineColIndex, writer, vLineRowIndex, beforeVLineColIndex) {\n\tvar width = this.layout.vLineWidth(vLineColIndex, this.tableNode);\n\tif (width === 0) {\n\t\treturn;\n\t}\n\tvar style = this.layout.vLineStyle(vLineColIndex, this.tableNode);\n\tvar dash;\n\tif (style && style.dash) {\n\t\tdash = style.dash;\n\t}\n\n\tvar body = this.tableNode.table.body;\n\tvar cellBefore;\n\tvar currentCell;\n\tvar borderColor;\n\n\t// the cell in the col before\n\tif (vLineColIndex > 0) {\n\t\tcellBefore = body[vLineRowIndex][beforeVLineColIndex];\n\t\tif (cellBefore && cellBefore.borderColor) {\n\t\t\tif (cellBefore.border ? cellBefore.border[2] : this.layout.defaultBorder) {\n\t\t\t\tborderColor = cellBefore.borderColor[2];\n\t\t\t}\n\t\t}\n\t}\n\n\t// the current cell\n\tif (borderColor == null && vLineColIndex < body.length) {\n\t\tcurrentCell = body[vLineRowIndex][vLineColIndex];\n\t\tif (currentCell && currentCell.borderColor) {\n\t\t\tif (currentCell.border ? currentCell.border[0] : this.layout.defaultBorder) {\n\t\t\t\tborderColor = currentCell.borderColor[0];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (borderColor == null && cellBefore && cellBefore._rowSpanCurrentOffset) {\n\t\tvar rowCellBeforeAbove = body[vLineRowIndex - cellBefore._rowSpanCurrentOffset][beforeVLineColIndex];\n\t\tif (rowCellBeforeAbove.borderColor) {\n\t\t\tif (rowCellBeforeAbove.border ? rowCellBeforeAbove.border[2] : this.layout.defaultBorder) {\n\t\t\t\tborderColor = rowCellBeforeAbove.borderColor[2];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (borderColor == null && currentCell && currentCell._rowSpanCurrentOffset) {\n\t\tvar rowCurrentCellAbove = body[vLineRowIndex - currentCell._rowSpanCurrentOffset][vLineColIndex];\n\t\tif (rowCurrentCellAbove.borderColor) {\n\t\t\tif (rowCurrentCellAbove.border ? rowCurrentCellAbove.border[2] : this.layout.defaultBorder) {\n\t\t\t\tborderColor = rowCurrentCellAbove.borderColor[2];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (borderColor == null) {\n\t\tborderColor = isFunction(this.layout.vLineColor) ? this.layout.vLineColor(vLineColIndex, this.tableNode, vLineRowIndex) : this.layout.vLineColor;\n\t}\n\twriter.addVector({\n\t\ttype: 'line',\n\t\tx1: x + width / 2,\n\t\tx2: x + width / 2,\n\t\ty1: y0,\n\t\ty2: y1,\n\t\tlineWidth: width,\n\t\tdash: dash,\n\t\tlineColor: borderColor\n\t}, false, true);\n\tcellBefore = null;\n\tcurrentCell = null;\n\tborderColor = null;\n};\n\nTableProcessor.prototype.endTable = function (writer) {\n\tif (this.cleanUpRepeatables) {\n\t\twriter.popFromRepeatables();\n\t}\n};\n\nTableProcessor.prototype.endRow = function (rowIndex, writer, pageBreaks) {\n\tvar l, i;\n\tvar self = this;\n\twriter.tracker.stopTracking('pageChanged', this.rowCallback);\n\twriter.context().moveDown(this.layout.paddingBottom(rowIndex, this.tableNode));\n\twriter.context().availableHeight += this.reservedAtBottom;\n\n\tvar endingPage = writer.context().page;\n\tvar endingY = writer.context().y;\n\n\tvar xs = getLineXs();\n\n\tvar ys = [];\n\n\tvar hasBreaks = pageBreaks && pageBreaks.length > 0;\n\tvar body = this.tableNode.table.body;\n\n\tys.push({\n\t\ty0: this.rowTopY,\n\t\tpage: hasBreaks ? pageBreaks[0].prevPage : endingPage\n\t});\n\n\tif (hasBreaks) {\n\t\tfor (i = 0, l = pageBreaks.length; i < l; i++) {\n\t\t\tvar pageBreak = pageBreaks[i];\n\t\t\tys[ys.length - 1].y1 = pageBreak.prevY;\n\n\t\t\tys.push({ y0: pageBreak.y, page: pageBreak.prevPage + 1 });\n\t\t}\n\t}\n\n\tys[ys.length - 1].y1 = endingY;\n\n\tvar skipOrphanePadding = (ys[0].y1 - ys[0].y0 === this.rowPaddingTop);\n\tfor (var yi = (skipOrphanePadding ? 1 : 0), yl = ys.length; yi < yl; yi++) {\n\t\tvar willBreak = yi < ys.length - 1;\n\t\tvar rowBreakWithoutHeader = (yi > 0 && !this.headerRows);\n\t\tvar hzLineOffset = rowBreakWithoutHeader ? 0 : this.topLineWidth;\n\t\tvar y1 = ys[yi].y0;\n\t\tvar y2 = ys[yi].y1;\n\n\t\tif (willBreak) {\n\t\t\ty2 = y2 + this.rowPaddingBottom;\n\t\t}\n\n\t\tif (writer.context().page != ys[yi].page) {\n\t\t\twriter.context().page = ys[yi].page;\n\n\t\t\t//TODO: buggy, availableHeight should be updated on every pageChanged event\n\t\t\t// TableProcessor should be pageChanged listener, instead of processRow\n\t\t\tthis.reservedAtBottom = 0;\n\t\t}\n\n\t\tfor (i = 0, l = xs.length; i < l; i++) {\n\t\t\tvar leftCellBorder = false;\n\t\t\tvar rightCellBorder = false;\n\t\t\tvar colIndex = xs[i].index;\n\n\t\t\t// current cell\n\t\t\tif (colIndex < body[rowIndex].length) {\n\t\t\t\tvar cell = body[rowIndex][colIndex];\n\t\t\t\tleftCellBorder = cell.border ? cell.border[0] : this.layout.defaultBorder;\n\t\t\t\trightCellBorder = cell.border ? cell.border[2] : this.layout.defaultBorder;\n\t\t\t}\n\n\t\t\t// before cell\n\t\t\tif (colIndex > 0 && !leftCellBorder) {\n\t\t\t\tvar cell = body[rowIndex][colIndex - 1];\n\t\t\t\tleftCellBorder = cell.border ? cell.border[2] : this.layout.defaultBorder;\n\t\t\t}\n\n\t\t\t// after cell\n\t\t\tif (colIndex + 1 < body[rowIndex].length && !rightCellBorder) {\n\t\t\t\tvar cell = body[rowIndex][colIndex + 1];\n\t\t\t\trightCellBorder = cell.border ? cell.border[0] : this.layout.defaultBorder;\n\t\t\t}\n\n\t\t\tif (leftCellBorder) {\n\t\t\t\tthis.drawVerticalLine(xs[i].x, y1 - hzLineOffset, y2 + this.bottomLineWidth, xs[i].index, writer, rowIndex, xs[i - 1] ? xs[i - 1].index : null);\n\t\t\t}\n\n\t\t\tif (i < l - 1) {\n\t\t\t\tvar fillColor = body[rowIndex][colIndex].fillColor;\n\t\t\t\tvar fillOpacity = body[rowIndex][colIndex].fillOpacity;\n\t\t\t\tif (!fillColor) {\n\t\t\t\t\tfillColor = isFunction(this.layout.fillColor) ? this.layout.fillColor(rowIndex, this.tableNode, colIndex) : this.layout.fillColor;\n\t\t\t\t}\n\t\t\t\tif (!isNumber(fillOpacity)) {\n\t\t\t\t\tfillOpacity = isFunction(this.layout.fillOpacity) ? this.layout.fillOpacity(rowIndex, this.tableNode, colIndex) : this.layout.fillOpacity;\n                                }\n\t\t\t\tif (fillColor) {\n\t\t\t\t\tvar widthLeftBorder = leftCellBorder ? this.layout.vLineWidth(colIndex, this.tableNode) : 0;\n\t\t\t\t\tvar widthRightBorder;\n\t\t\t\t\tif ((colIndex === 0 || colIndex + 1 == body[rowIndex].length) && !rightCellBorder) {\n\t\t\t\t\t\twidthRightBorder = this.layout.vLineWidth(colIndex + 1, this.tableNode);\n\t\t\t\t\t} else if (rightCellBorder) {\n\t\t\t\t\t\twidthRightBorder = this.layout.vLineWidth(colIndex + 1, this.tableNode) / 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twidthRightBorder = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar x1f = this.dontBreakRows ? xs[i].x + widthLeftBorder : xs[i].x + (widthLeftBorder / 2);\n\t\t\t\t\tvar y1f = this.dontBreakRows ? y1 : y1 - (hzLineOffset / 2);\n\t\t\t\t\tvar x2f = xs[i + 1].x + widthRightBorder;\n\t\t\t\t\tvar y2f = this.dontBreakRows ? y2 + this.bottomLineWidth : y2 + (this.bottomLineWidth / 2);\n\t\t\t\t\twriter.addVector({\n\t\t\t\t\t\ttype: 'rect',\n\t\t\t\t\t\tx: x1f,\n\t\t\t\t\t\ty: y1f,\n\t\t\t\t\t\tw: x2f - x1f,\n\t\t\t\t\t\th: y2f - y1f,\n\t\t\t\t\t\tlineWidth: 0,\n\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\tfillOpacity: fillOpacity\n\t\t\t\t\t}, false, true, writer.context().backgroundLength[writer.context().page]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (willBreak && this.layout.hLineWhenBroken !== false) {\n\t\t\tthis.drawHorizontalLine(rowIndex + 1, writer, y2);\n\t\t}\n\t\tif (rowBreakWithoutHeader && this.layout.hLineWhenBroken !== false) {\n\t\t\tthis.drawHorizontalLine(rowIndex, writer, y1);\n\t\t}\n\t}\n\n\twriter.context().page = endingPage;\n\twriter.context().y = endingY;\n\n\tvar row = this.tableNode.table.body[rowIndex];\n\tfor (i = 0, l = row.length; i < l; i++) {\n\t\tif (row[i].rowSpan) {\n\t\t\tthis.rowSpanData[i].rowSpan = row[i].rowSpan;\n\n\t\t\t// fix colSpans\n\t\t\tif (row[i].colSpan && row[i].colSpan > 1) {\n\t\t\t\tfor (var j = 1; j < row[i].rowSpan; j++) {\n\t\t\t\t\tthis.tableNode.table.body[rowIndex + j][i]._colSpan = row[i].colSpan;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// fix rowSpans\n\t\t\tif (row[i].rowSpan && row[i].rowSpan > 1) {\n\t\t\t\tfor (var j = 1; j < row[i].rowSpan; j++) {\n\t\t\t\t\tthis.tableNode.table.body[rowIndex + j][i]._rowSpanCurrentOffset = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.rowSpanData[i].rowSpan > 0) {\n\t\t\tthis.rowSpanData[i].rowSpan--;\n\t\t}\n\t}\n\n\tthis.drawHorizontalLine(rowIndex + 1, writer);\n\n\tif (this.headerRows && rowIndex === this.headerRows - 1) {\n\t\tthis.headerRepeatable = writer.currentBlockToRepeatable();\n\t}\n\n\tif (this.dontBreakRows) {\n\t\twriter.tracker.auto('pageChanged',\n\t\t\tfunction () {\n\t\t\t\tif (!self.headerRows && self.layout.hLineWhenBroken !== false) {\n\t\t\t\t\tself.drawHorizontalLine(rowIndex, writer);\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunction () {\n\t\t\t\twriter.commitUnbreakableBlock();\n\t\t\t}\n\t\t);\n\t}\n\n\tif (this.headerRepeatable && (rowIndex === (this.rowsWithoutPageBreak - 1) || rowIndex === this.tableNode.table.body.length - 1)) {\n\t\twriter.commitUnbreakableBlock();\n\t\twriter.pushToRepeatables(this.headerRepeatable);\n\t\tthis.cleanUpRepeatables = true;\n\t\tthis.headerRepeatable = null;\n\t}\n\n\tfunction getLineXs() {\n\t\tvar result = [];\n\t\tvar cols = 0;\n\n\t\tfor (var i = 0, l = self.tableNode.table.body[rowIndex].length; i < l; i++) {\n\t\t\tif (!cols) {\n\t\t\t\tresult.push({ x: self.rowSpanData[i].left, index: i });\n\n\t\t\t\tvar item = self.tableNode.table.body[rowIndex][i];\n\t\t\t\tcols = (item._colSpan || item.colSpan || 0);\n\t\t\t}\n\t\t\tif (cols > 0) {\n\t\t\t\tcols--;\n\t\t\t}\n\t\t}\n\n\t\tresult.push({ x: self.rowSpanData[self.rowSpanData.length - 1].left, index: self.rowSpanData.length - 1 });\n\n\t\treturn result;\n\t}\n};\n\nmodule.exports = TableProcessor;\n\n\n/***/ }),\n/* 547 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n\t'4A0': [4767.87, 6740.79],\n\t'2A0': [3370.39, 4767.87],\n\tA0: [2383.94, 3370.39],\n\tA1: [1683.78, 2383.94],\n\tA2: [1190.55, 1683.78],\n\tA3: [841.89, 1190.55],\n\tA4: [595.28, 841.89],\n\tA5: [419.53, 595.28],\n\tA6: [297.64, 419.53],\n\tA7: [209.76, 297.64],\n\tA8: [147.40, 209.76],\n\tA9: [104.88, 147.40],\n\tA10: [73.70, 104.88],\n\tB0: [2834.65, 4008.19],\n\tB1: [2004.09, 2834.65],\n\tB2: [1417.32, 2004.09],\n\tB3: [1000.63, 1417.32],\n\tB4: [708.66, 1000.63],\n\tB5: [498.90, 708.66],\n\tB6: [354.33, 498.90],\n\tB7: [249.45, 354.33],\n\tB8: [175.75, 249.45],\n\tB9: [124.72, 175.75],\n\tB10: [87.87, 124.72],\n\tC0: [2599.37, 3676.54],\n\tC1: [1836.85, 2599.37],\n\tC2: [1298.27, 1836.85],\n\tC3: [918.43, 1298.27],\n\tC4: [649.13, 918.43],\n\tC5: [459.21, 649.13],\n\tC6: [323.15, 459.21],\n\tC7: [229.61, 323.15],\n\tC8: [161.57, 229.61],\n\tC9: [113.39, 161.57],\n\tC10: [79.37, 113.39],\n\tRA0: [2437.80, 3458.27],\n\tRA1: [1729.13, 2437.80],\n\tRA2: [1218.90, 1729.13],\n\tRA3: [864.57, 1218.90],\n\tRA4: [609.45, 864.57],\n\tSRA0: [2551.18, 3628.35],\n\tSRA1: [1814.17, 2551.18],\n\tSRA2: [1275.59, 1814.17],\n\tSRA3: [907.09, 1275.59],\n\tSRA4: [637.80, 907.09],\n\tEXECUTIVE: [521.86, 756.00],\n\tFOLIO: [612.00, 936.00],\n\tLEGAL: [612.00, 1008.00],\n\tLETTER: [612.00, 792.00],\n\tTABLOID: [792.00, 1224.00]\n};\n\n\n/***/ }),\n/* 548 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar fs = __webpack_require__(53);\n\nfunction ImageMeasure(pdfKitDoc, imageDictionary) {\n\tthis.pdfKitDoc = pdfKitDoc;\n\tthis.imageDictionary = imageDictionary || {};\n}\n\nImageMeasure.prototype.measureImage = function (src) {\n\tvar image;\n\tvar that = this;\n\n\tif (!this.pdfKitDoc._imageRegistry[src]) {\n\t\ttry {\n\t\t\timage = this.pdfKitDoc.openImage(realImageSrc(src));\n\t\t\tif (!image) {\n\t\t\t\tthrow 'No image';\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow 'Invalid image: ' + error.toString() + '\\nImages dictionary should contain dataURL entries (or local file paths in node.js)';\n\t\t}\n\t\timage.embed(this.pdfKitDoc);\n\t\tthis.pdfKitDoc._imageRegistry[src] = image;\n\t} else {\n\t\timage = this.pdfKitDoc._imageRegistry[src];\n\t}\n\n\treturn { width: image.width, height: image.height };\n\n\tfunction realImageSrc(src) {\n\t\tvar img = that.imageDictionary[src];\n\n\t\tif (!img) {\n\t\t\treturn src;\n\t\t}\n\n\t\tif (fs.existsSync(img)) {\n\t\t\treturn fs.readFileSync(img);\n\t\t}\n\n\t\tvar index = img.indexOf('base64,');\n\t\tif (index < 0) {\n\t\t\treturn that.imageDictionary[src];\n\t\t}\n\n\t\treturn Buffer.from(img.substring(index + 7), 'base64');\n\t}\n};\n\nmodule.exports = ImageMeasure;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 549 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar xmldoc = __webpack_require__(550);\n\n/** Strip unit postfix, parse number, but return undefined instead of NaN for bad input */\nfunction stripUnits(textVal) {\n\tvar n = parseFloat(textVal);\n\tif (typeof n !== 'number' || isNaN(n)) {\n\t\treturn undefined;\n\t}\n\treturn n;\n}\n\n/** Make sure it's valid XML and the root tage is <svg/>, returns xmldoc DOM */\nfunction parseSVG(svgString) {\n\tvar doc;\n\t\n\ttry {\n\t\tdoc = new xmldoc.XmlDocument(svgString);\n\t} catch (err) {\n\t\tthrow new Error('SVGMeasure: ' + err);\n\t}\n\n\tif (doc.name !== \"svg\") {\n\t\tthrow new Error('SVGMeasure: expected <svg> document');\n\t}\n\n\treturn doc;\n}\n\nfunction SVGMeasure() {\n}\n\nSVGMeasure.prototype.measureSVG = function (svgString) {\n\n\tvar doc = parseSVG(svgString);\n\n\tvar docWidth = stripUnits(doc.attr.width);\n\tvar docHeight = stripUnits(doc.attr.height);\n\n\tif ((docWidth == undefined || docHeight == undefined) && typeof doc.attr.viewBox == 'string') {\n\t\tvar viewBoxParts = doc.attr.viewBox.split(/[,\\s]+/);\n\t\tif (viewBoxParts.length !== 4) {\n\t\t\tthrow new Error(\"Unexpected svg viewbox format, should have 4 entries but found: '\" + doc.attr.viewBox + \"'\");\n\t\t}\n\t\tif (docWidth == undefined) {\n\t\t\tdocWidth = stripUnits(viewBoxParts[2]);\n\t\t}\n\t\tif (docHeight == undefined) {\n\t\t\tdocHeight = stripUnits(viewBoxParts[3]);\n\t\t}\n\t}\n\n\treturn {\n\t\twidth: docWidth,\n\t\theight: docHeight\n\t};\n};\n\nSVGMeasure.prototype.writeDimensions = function (svgString, dimensions) {\n\n\tvar doc = parseSVG(svgString);\n\n\tdoc.attr.width = \"\" + dimensions.width;\n\tdoc.attr.height = \"\" + dimensions.height;\n\n\treturn doc.toString();\n};\n\nmodule.exports = SVGMeasure;\n\n\n/***/ }),\n/* 550 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// This file is just added for convenience so this repository can be\n// directly checked out into a project's deps folder\nmodule.exports = __webpack_require__(551);\n\n\n/***/ }),\n/* 551 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {(function () {\n\nvar sax;\n\nif ( true && module.exports && !global.xmldocAssumeBrowser) {\n  // We're being used in a Node-like environment\n  sax = __webpack_require__(552);\n}\nelse {\n  // assume it's attached to the Window object in a browser\n  sax = this.sax;\n\n  if (!sax) // no sax for you!\n    throw new Error(\"Expected sax to be defined. Make sure you're including sax.js before this file.\");\n}\n\n/*\nXmlElement is our basic building block. Everything is an XmlElement; even XmlDocument\nbehaves like an XmlElement by inheriting its attributes and functions.\n*/\n\nfunction XmlElement(tag) {\n  // Capture the parser object off of the XmlDocument delegate\n  var parser = delegates[delegates.length - 1].parser;\n\n  this.name = tag.name;\n  this.attr = tag.attributes;\n  this.val = \"\";\n  this.children = [];\n  this.firstChild = null;\n  this.lastChild = null;\n\n  // Assign parse information\n  this.line = parser.line;\n  this.column = parser.column;\n  this.position = parser.position;\n  this.startTagPosition = parser.startTagPosition;\n}\n\n// Private methods\n\nXmlElement.prototype._addChild = function(child) {\n  // add to our children array\n  this.children.push(child);\n\n  // update first/last pointers\n  if (!this.firstChild) this.firstChild = child;\n  this.lastChild = child;\n};\n\n// SaxParser handlers\n\nXmlElement.prototype._opentag = function(tag) {\n\n  var child = new XmlElement(tag);\n\n  this._addChild(child);\n\n  delegates.unshift(child);\n};\n\nXmlElement.prototype._closetag = function() {\n  delegates.shift();\n};\n\nXmlElement.prototype._text = function(text) {\n  if (typeof this.children === 'undefined')\n    return\n\n  this.val += text;\n\n  this._addChild(new XmlTextNode(text));\n};\n\nXmlElement.prototype._cdata = function(cdata) {\n  this.val += cdata;\n\n  this._addChild(new XmlCDataNode(cdata));\n};\n\nXmlElement.prototype._comment = function(comment) {\n  if (typeof this.children === 'undefined')\n    return\n\n  this._addChild(new XmlCommentNode(comment));\n};\n\nXmlElement.prototype._error = function(err) {\n  throw err;\n};\n\n// Useful functions\n\nXmlElement.prototype.eachChild = function(iterator, context) {\n  for (var i=0, l=this.children.length; i<l; i++)\n    if (this.children[i].type === \"element\")\n      if (iterator.call(context, this.children[i], i, this.children) === false) return;\n};\n\nXmlElement.prototype.childNamed = function(name) {\n  for (var i=0, l=this.children.length; i<l; i++) {\n    var child = this.children[i];\n    if (child.name === name) return child;\n  }\n  return undefined;\n};\n\nXmlElement.prototype.childrenNamed = function(name) {\n  var matches = [];\n\n  for (var i=0, l=this.children.length; i<l; i++)\n    if (this.children[i].name === name)\n      matches.push(this.children[i]);\n\n  return matches;\n};\n\nXmlElement.prototype.childWithAttribute = function(name,value) {\n  for (var i=0, l=this.children.length; i<l; i++) {\n    var child = this.children[i];\n    if (child.type === \"element\" && ((value && child.attr[name] === value) || (!value && child.attr[name])))\n      return child;\n  }\n  return undefined;\n};\n\nXmlElement.prototype.descendantWithPath = function(path) {\n  var descendant = this;\n  var components = path.split('.');\n\n  for (var i=0, l=components.length; i<l; i++)\n    if (descendant && descendant.type === \"element\")\n      descendant = descendant.childNamed(components[i]);\n    else\n      return undefined;\n\n  return descendant;\n};\n\nXmlElement.prototype.valueWithPath = function(path) {\n  var components = path.split('@');\n  var descendant = this.descendantWithPath(components[0]);\n  if (descendant)\n    return components.length > 1 ? descendant.attr[components[1]] : descendant.val;\n  else\n    return undefined;\n};\n\n// String formatting (for debugging)\n\nXmlElement.prototype.toString = function(options) {\n  return this.toStringWithIndent(\"\", options);\n};\n\nXmlElement.prototype.toStringWithIndent = function(indent, options) {\n  var s = indent + \"<\" + this.name;\n  var linebreak = options && options.compressed ? \"\" : \"\\n\";\n  var preserveWhitespace = options && options.preserveWhitespace;\n\n  for (var name in this.attr)\n    if (Object.prototype.hasOwnProperty.call(this.attr, name))\n        s += \" \" + name + '=\"' + escapeXML(this.attr[name]) + '\"';\n\n  if (this.children.length === 1 && this.children[0].type !== \"element\") {\n    s += \">\" + this.children[0].toString(options) + \"</\" + this.name + \">\";\n  }\n  else if (this.children.length) {\n    s += \">\" + linebreak;\n\n    var childIndent = indent + (options && options.compressed ? \"\" : \"  \");\n\n    for (var i=0, l=this.children.length; i<l; i++) {\n      s += this.children[i].toStringWithIndent(childIndent, options) + linebreak;\n    }\n\n    s += indent + \"</\" + this.name + \">\";\n  }\n  else if (options && options.html) {\n    var whiteList = [\n      \"area\", \"base\", \"br\", \"col\", \"embed\", \"frame\", \"hr\", \"img\", \"input\",\n      \"keygen\", \"link\", \"menuitem\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"\n    ];\n    if (whiteList.indexOf(this.name) !== -1) s += \"/>\";\n    else s += \"></\" + this.name + \">\";\n  }\n  else {\n    s += \"/>\";\n  }\n\n  return s;\n};\n\n// Alternative XML nodes\n\nfunction XmlTextNode (text) {\n  this.text = text;\n}\n\nXmlTextNode.prototype.toString = function(options) {\n  return formatText(escapeXML(this.text), options);\n};\n\nXmlTextNode.prototype.toStringWithIndent = function(indent, options) {\n  return indent+this.toString(options);\n};\n\nfunction XmlCDataNode (cdata) {\n  this.cdata = cdata;\n}\n\nXmlCDataNode.prototype.toString = function(options) {\n  return \"<![CDATA[\"+formatText(this.cdata, options)+\"]]>\";\n};\n\nXmlCDataNode.prototype.toStringWithIndent = function(indent, options) {\n  return indent+this.toString(options);\n};\n\nfunction XmlCommentNode (comment) {\n  this.comment = comment;\n}\n\nXmlCommentNode.prototype.toString = function(options) {\n  return \"<!--\"+formatText(escapeXML(this.comment), options)+\"-->\";\n};\n\nXmlCommentNode.prototype.toStringWithIndent = function(indent, options) {\n  return indent+this.toString(options);\n};\n\n// Node type tag\n\nXmlElement.prototype.type = \"element\";\nXmlTextNode.prototype.type = \"text\";\nXmlCDataNode.prototype.type = \"cdata\";\nXmlCommentNode.prototype.type = \"comment\";\n\n/*\nXmlDocument is the class we expose to the user; it uses the sax parser to create a hierarchy\nof XmlElements.\n*/\n\nfunction XmlDocument(xml) {\n  xml && (xml = xml.toString().trim());\n\n  if (!xml)\n    throw new Error(\"No XML to parse!\");\n\n  // Stores doctype (if defined)\n  this.doctype = \"\";\n\n  // Expose the parser to the other delegates while the parser is running\n  this.parser = sax.parser(true); // strict\n  addParserEvents(this.parser);\n\n  // We'll use the file-scoped \"delegates\" var to remember what elements we're currently\n  // parsing; they will push and pop off the stack as we get deeper into the XML hierarchy.\n  // It's safe to use a global because JS is single-threaded.\n  delegates = [this];\n\n  this.parser.write(xml);\n\n  // Remove the parser as it is no longer needed and should not be exposed to clients\n  delete this.parser;\n}\n\n// make XmlDocument inherit XmlElement's methods\nextend(XmlDocument.prototype, XmlElement.prototype);\n\nXmlDocument.prototype._opentag = function(tag) {\n  if (typeof this.children === 'undefined')\n    // the first tag we encounter should be the root - we'll \"become\" the root XmlElement\n    XmlElement.call(this,tag);\n  else\n    // all other tags will be the root element's children\n    XmlElement.prototype._opentag.apply(this,arguments);\n};\n\nXmlDocument.prototype._doctype = function(doctype) {\n  this.doctype += doctype;\n}\n\n// file-scoped global stack of delegates\nvar delegates = null;\n\n/*\nHelper functions\n*/\n\nfunction addParserEvents(parser) {\n  parser.onopentag = parser_opentag;\n  parser.onclosetag = parser_closetag;\n  parser.ontext = parser_text;\n  parser.oncdata = parser_cdata;\n  parser.oncomment = parser_comment;\n  parser.ondoctype = parser_doctype;\n  parser.onerror = parser_error;\n}\n\n// create these closures and cache them by keeping them file-scoped\nfunction parser_opentag() { delegates[0] && delegates[0]._opentag.apply(delegates[0],arguments) }\nfunction parser_closetag() { delegates[0] && delegates[0]._closetag.apply(delegates[0],arguments) }\nfunction parser_text() { delegates[0] && delegates[0]._text.apply(delegates[0],arguments) }\nfunction parser_cdata() { delegates[0] && delegates[0]._cdata.apply(delegates[0],arguments) }\nfunction parser_comment() { delegates[0] && delegates[0]._comment.apply(delegates[0],arguments) }\nfunction parser_doctype() { delegates[0] && delegates[0]._doctype.apply(delegates[0],arguments) }\nfunction parser_error() { delegates[0] && delegates[0]._error.apply(delegates[0],arguments) }\n\n// a relatively standard extend method\nfunction extend(destination, source) {\n  for (var prop in source)\n    if (source.hasOwnProperty(prop))\n      destination[prop] = source[prop];\n}\n\n// escapes XML entities like \"<\", \"&\", etc.\nfunction escapeXML(value){\n  return value.toString().replace(/&/g, '&amp;').replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/'/g, '&apos;').replace(/\"/g, '&quot;');\n}\n\n// formats some text for debugging given a few options\nfunction formatText(text, options) {\n  var finalText = text;\n\n  if (options && options.trimmed && text.length > 25)\n    finalText = finalText.substring(0,25).trim() + \"…\";\n  if (!(options && options.preserveWhitespace))\n    finalText = finalText.trim();\n\n  return finalText;\n}\n\n// Are we being used in a Node-like environment?\nif ( true && module.exports && !global.xmldocAssumeBrowser)\n    module.exports.XmlDocument = XmlDocument;\nelse\n    this.XmlDocument = XmlDocument;\n\n})();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ }),\n/* 552 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {;(function (sax) { // wrapper for non-node envs\n  sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n  sax.SAXParser = SAXParser\n  sax.SAXStream = SAXStream\n  sax.createStream = createStream\n\n  // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n  // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n  // since that's the earliest that a buffer overrun could occur.  This way, checks are\n  // as rare as required, but as often as necessary to ensure never crossing this bound.\n  // Furthermore, buffers are only tested at most once per write(), so passing a very\n  // large string into write() might have undesirable effects, but this is manageable by\n  // the caller, so it is assumed to be safe.  Thus, a call to write() may, in the extreme\n  // edge case, result in creating at most one complete copy of the string passed in.\n  // Set to Infinity to have unlimited buffers.\n  sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n  var buffers = [\n    'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n    'procInstName', 'procInstBody', 'entity', 'attribName',\n    'attribValue', 'cdata', 'script'\n  ]\n\n  sax.EVENTS = [\n    'text',\n    'processinginstruction',\n    'sgmldeclaration',\n    'doctype',\n    'comment',\n    'opentagstart',\n    'attribute',\n    'opentag',\n    'closetag',\n    'opencdata',\n    'cdata',\n    'closecdata',\n    'error',\n    'end',\n    'ready',\n    'script',\n    'opennamespace',\n    'closenamespace'\n  ]\n\n  function SAXParser (strict, opt) {\n    if (!(this instanceof SAXParser)) {\n      return new SAXParser(strict, opt)\n    }\n\n    var parser = this\n    clearBuffers(parser)\n    parser.q = parser.c = ''\n    parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n    parser.opt = opt || {}\n    parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n    parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n    parser.tags = []\n    parser.closed = parser.closedRoot = parser.sawRoot = false\n    parser.tag = parser.error = null\n    parser.strict = !!strict\n    parser.noscript = !!(strict || parser.opt.noscript)\n    parser.state = S.BEGIN\n    parser.strictEntities = parser.opt.strictEntities\n    parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n    parser.attribList = []\n\n    // namespaces form a prototype chain.\n    // it always points at the current tag,\n    // which protos to its parent tag.\n    if (parser.opt.xmlns) {\n      parser.ns = Object.create(rootNS)\n    }\n\n    // mostly just for error reporting\n    parser.trackPosition = parser.opt.position !== false\n    if (parser.trackPosition) {\n      parser.position = parser.line = parser.column = 0\n    }\n    emit(parser, 'onready')\n  }\n\n  if (!Object.create) {\n    Object.create = function (o) {\n      function F () {}\n      F.prototype = o\n      var newf = new F()\n      return newf\n    }\n  }\n\n  if (!Object.keys) {\n    Object.keys = function (o) {\n      var a = []\n      for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n      return a\n    }\n  }\n\n  function checkBufferLength (parser) {\n    var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n    var maxActual = 0\n    for (var i = 0, l = buffers.length; i < l; i++) {\n      var len = parser[buffers[i]].length\n      if (len > maxAllowed) {\n        // Text/cdata nodes can get big, and since they're buffered,\n        // we can get here under normal conditions.\n        // Avoid issues by emitting the text node now,\n        // so at least it won't get any bigger.\n        switch (buffers[i]) {\n          case 'textNode':\n            closeText(parser)\n            break\n\n          case 'cdata':\n            emitNode(parser, 'oncdata', parser.cdata)\n            parser.cdata = ''\n            break\n\n          case 'script':\n            emitNode(parser, 'onscript', parser.script)\n            parser.script = ''\n            break\n\n          default:\n            error(parser, 'Max buffer length exceeded: ' + buffers[i])\n        }\n      }\n      maxActual = Math.max(maxActual, len)\n    }\n    // schedule the next check for the earliest possible buffer overrun.\n    var m = sax.MAX_BUFFER_LENGTH - maxActual\n    parser.bufferCheckPosition = m + parser.position\n  }\n\n  function clearBuffers (parser) {\n    for (var i = 0, l = buffers.length; i < l; i++) {\n      parser[buffers[i]] = ''\n    }\n  }\n\n  function flushBuffers (parser) {\n    closeText(parser)\n    if (parser.cdata !== '') {\n      emitNode(parser, 'oncdata', parser.cdata)\n      parser.cdata = ''\n    }\n    if (parser.script !== '') {\n      emitNode(parser, 'onscript', parser.script)\n      parser.script = ''\n    }\n  }\n\n  SAXParser.prototype = {\n    end: function () { end(this) },\n    write: write,\n    resume: function () { this.error = null; return this },\n    close: function () { return this.write(null) },\n    flush: function () { flushBuffers(this) }\n  }\n\n  var Stream\n  try {\n    Stream = __webpack_require__(121).Stream\n  } catch (ex) {\n    Stream = function () {}\n  }\n\n  var streamWraps = sax.EVENTS.filter(function (ev) {\n    return ev !== 'error' && ev !== 'end'\n  })\n\n  function createStream (strict, opt) {\n    return new SAXStream(strict, opt)\n  }\n\n  function SAXStream (strict, opt) {\n    if (!(this instanceof SAXStream)) {\n      return new SAXStream(strict, opt)\n    }\n\n    Stream.apply(this)\n\n    this._parser = new SAXParser(strict, opt)\n    this.writable = true\n    this.readable = true\n\n    var me = this\n\n    this._parser.onend = function () {\n      me.emit('end')\n    }\n\n    this._parser.onerror = function (er) {\n      me.emit('error', er)\n\n      // if didn't throw, then means error was handled.\n      // go ahead and clear error, so we can write again.\n      me._parser.error = null\n    }\n\n    this._decoder = null\n\n    streamWraps.forEach(function (ev) {\n      Object.defineProperty(me, 'on' + ev, {\n        get: function () {\n          return me._parser['on' + ev]\n        },\n        set: function (h) {\n          if (!h) {\n            me.removeAllListeners(ev)\n            me._parser['on' + ev] = h\n            return h\n          }\n          me.on(ev, h)\n        },\n        enumerable: true,\n        configurable: false\n      })\n    })\n  }\n\n  SAXStream.prototype = Object.create(Stream.prototype, {\n    constructor: {\n      value: SAXStream\n    }\n  })\n\n  SAXStream.prototype.write = function (data) {\n    if (typeof Buffer === 'function' &&\n      typeof Buffer.isBuffer === 'function' &&\n      Buffer.isBuffer(data)) {\n      if (!this._decoder) {\n        var SD = __webpack_require__(125).StringDecoder\n        this._decoder = new SD('utf8')\n      }\n      data = this._decoder.write(data)\n    }\n\n    this._parser.write(data.toString())\n    this.emit('data', data)\n    return true\n  }\n\n  SAXStream.prototype.end = function (chunk) {\n    if (chunk && chunk.length) {\n      this.write(chunk)\n    }\n    this._parser.end()\n    return true\n  }\n\n  SAXStream.prototype.on = function (ev, handler) {\n    var me = this\n    if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n      me._parser['on' + ev] = function () {\n        var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n        args.splice(0, 0, ev)\n        me.emit.apply(me, args)\n      }\n    }\n\n    return Stream.prototype.on.call(me, ev, handler)\n  }\n\n  // this really needs to be replaced with character classes.\n  // XML allows all manner of ridiculous numbers and digits.\n  var CDATA = '[CDATA['\n  var DOCTYPE = 'DOCTYPE'\n  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n  var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n  var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n  // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n  // This implementation works on strings, a single character at a time\n  // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n  // without a significant breaking change to either this  parser, or the\n  // JavaScript language.  Implementation of an emoji-capable xml parser\n  // is left as an exercise for the reader.\n  var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n  var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n  var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n  var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n  function isWhitespace (c) {\n    return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n  }\n\n  function isQuote (c) {\n    return c === '\"' || c === '\\''\n  }\n\n  function isAttribEnd (c) {\n    return c === '>' || isWhitespace(c)\n  }\n\n  function isMatch (regex, c) {\n    return regex.test(c)\n  }\n\n  function notMatch (regex, c) {\n    return !isMatch(regex, c)\n  }\n\n  var S = 0\n  sax.STATE = {\n    BEGIN: S++, // leading byte order mark or whitespace\n    BEGIN_WHITESPACE: S++, // leading whitespace\n    TEXT: S++, // general stuff\n    TEXT_ENTITY: S++, // &amp and such.\n    OPEN_WAKA: S++, // <\n    SGML_DECL: S++, // <!BLARG\n    SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n    DOCTYPE: S++, // <!DOCTYPE\n    DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n    DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n    DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n    COMMENT_STARTING: S++, // <!-\n    COMMENT: S++, // <!--\n    COMMENT_ENDING: S++, // <!-- blah -\n    COMMENT_ENDED: S++, // <!-- blah --\n    CDATA: S++, // <![CDATA[ something\n    CDATA_ENDING: S++, // ]\n    CDATA_ENDING_2: S++, // ]]\n    PROC_INST: S++, // <?hi\n    PROC_INST_BODY: S++, // <?hi there\n    PROC_INST_ENDING: S++, // <?hi \"there\" ?\n    OPEN_TAG: S++, // <strong\n    OPEN_TAG_SLASH: S++, // <strong /\n    ATTRIB: S++, // <a\n    ATTRIB_NAME: S++, // <a foo\n    ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n    ATTRIB_VALUE: S++, // <a foo=\n    ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n    ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n    ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n    ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\"&quot;\"\n    ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot\n    CLOSE_TAG: S++, // </a\n    CLOSE_TAG_SAW_WHITE: S++, // </a   >\n    SCRIPT: S++, // <script> ...\n    SCRIPT_ENDING: S++ // <script> ... <\n  }\n\n  sax.XML_ENTITIES = {\n    'amp': '&',\n    'gt': '>',\n    'lt': '<',\n    'quot': '\"',\n    'apos': \"'\"\n  }\n\n  sax.ENTITIES = {\n    'amp': '&',\n    'gt': '>',\n    'lt': '<',\n    'quot': '\"',\n    'apos': \"'\",\n    'AElig': 198,\n    'Aacute': 193,\n    'Acirc': 194,\n    'Agrave': 192,\n    'Aring': 197,\n    'Atilde': 195,\n    'Auml': 196,\n    'Ccedil': 199,\n    'ETH': 208,\n    'Eacute': 201,\n    'Ecirc': 202,\n    'Egrave': 200,\n    'Euml': 203,\n    'Iacute': 205,\n    'Icirc': 206,\n    'Igrave': 204,\n    'Iuml': 207,\n    'Ntilde': 209,\n    'Oacute': 211,\n    'Ocirc': 212,\n    'Ograve': 210,\n    'Oslash': 216,\n    'Otilde': 213,\n    'Ouml': 214,\n    'THORN': 222,\n    'Uacute': 218,\n    'Ucirc': 219,\n    'Ugrave': 217,\n    'Uuml': 220,\n    'Yacute': 221,\n    'aacute': 225,\n    'acirc': 226,\n    'aelig': 230,\n    'agrave': 224,\n    'aring': 229,\n    'atilde': 227,\n    'auml': 228,\n    'ccedil': 231,\n    'eacute': 233,\n    'ecirc': 234,\n    'egrave': 232,\n    'eth': 240,\n    'euml': 235,\n    'iacute': 237,\n    'icirc': 238,\n    'igrave': 236,\n    'iuml': 239,\n    'ntilde': 241,\n    'oacute': 243,\n    'ocirc': 244,\n    'ograve': 242,\n    'oslash': 248,\n    'otilde': 245,\n    'ouml': 246,\n    'szlig': 223,\n    'thorn': 254,\n    'uacute': 250,\n    'ucirc': 251,\n    'ugrave': 249,\n    'uuml': 252,\n    'yacute': 253,\n    'yuml': 255,\n    'copy': 169,\n    'reg': 174,\n    'nbsp': 160,\n    'iexcl': 161,\n    'cent': 162,\n    'pound': 163,\n    'curren': 164,\n    'yen': 165,\n    'brvbar': 166,\n    'sect': 167,\n    'uml': 168,\n    'ordf': 170,\n    'laquo': 171,\n    'not': 172,\n    'shy': 173,\n    'macr': 175,\n    'deg': 176,\n    'plusmn': 177,\n    'sup1': 185,\n    'sup2': 178,\n    'sup3': 179,\n    'acute': 180,\n    'micro': 181,\n    'para': 182,\n    'middot': 183,\n    'cedil': 184,\n    'ordm': 186,\n    'raquo': 187,\n    'frac14': 188,\n    'frac12': 189,\n    'frac34': 190,\n    'iquest': 191,\n    'times': 215,\n    'divide': 247,\n    'OElig': 338,\n    'oelig': 339,\n    'Scaron': 352,\n    'scaron': 353,\n    'Yuml': 376,\n    'fnof': 402,\n    'circ': 710,\n    'tilde': 732,\n    'Alpha': 913,\n    'Beta': 914,\n    'Gamma': 915,\n    'Delta': 916,\n    'Epsilon': 917,\n    'Zeta': 918,\n    'Eta': 919,\n    'Theta': 920,\n    'Iota': 921,\n    'Kappa': 922,\n    'Lambda': 923,\n    'Mu': 924,\n    'Nu': 925,\n    'Xi': 926,\n    'Omicron': 927,\n    'Pi': 928,\n    'Rho': 929,\n    'Sigma': 931,\n    'Tau': 932,\n    'Upsilon': 933,\n    'Phi': 934,\n    'Chi': 935,\n    'Psi': 936,\n    'Omega': 937,\n    'alpha': 945,\n    'beta': 946,\n    'gamma': 947,\n    'delta': 948,\n    'epsilon': 949,\n    'zeta': 950,\n    'eta': 951,\n    'theta': 952,\n    'iota': 953,\n    'kappa': 954,\n    'lambda': 955,\n    'mu': 956,\n    'nu': 957,\n    'xi': 958,\n    'omicron': 959,\n    'pi': 960,\n    'rho': 961,\n    'sigmaf': 962,\n    'sigma': 963,\n    'tau': 964,\n    'upsilon': 965,\n    'phi': 966,\n    'chi': 967,\n    'psi': 968,\n    'omega': 969,\n    'thetasym': 977,\n    'upsih': 978,\n    'piv': 982,\n    'ensp': 8194,\n    'emsp': 8195,\n    'thinsp': 8201,\n    'zwnj': 8204,\n    'zwj': 8205,\n    'lrm': 8206,\n    'rlm': 8207,\n    'ndash': 8211,\n    'mdash': 8212,\n    'lsquo': 8216,\n    'rsquo': 8217,\n    'sbquo': 8218,\n    'ldquo': 8220,\n    'rdquo': 8221,\n    'bdquo': 8222,\n    'dagger': 8224,\n    'Dagger': 8225,\n    'bull': 8226,\n    'hellip': 8230,\n    'permil': 8240,\n    'prime': 8242,\n    'Prime': 8243,\n    'lsaquo': 8249,\n    'rsaquo': 8250,\n    'oline': 8254,\n    'frasl': 8260,\n    'euro': 8364,\n    'image': 8465,\n    'weierp': 8472,\n    'real': 8476,\n    'trade': 8482,\n    'alefsym': 8501,\n    'larr': 8592,\n    'uarr': 8593,\n    'rarr': 8594,\n    'darr': 8595,\n    'harr': 8596,\n    'crarr': 8629,\n    'lArr': 8656,\n    'uArr': 8657,\n    'rArr': 8658,\n    'dArr': 8659,\n    'hArr': 8660,\n    'forall': 8704,\n    'part': 8706,\n    'exist': 8707,\n    'empty': 8709,\n    'nabla': 8711,\n    'isin': 8712,\n    'notin': 8713,\n    'ni': 8715,\n    'prod': 8719,\n    'sum': 8721,\n    'minus': 8722,\n    'lowast': 8727,\n    'radic': 8730,\n    'prop': 8733,\n    'infin': 8734,\n    'ang': 8736,\n    'and': 8743,\n    'or': 8744,\n    'cap': 8745,\n    'cup': 8746,\n    'int': 8747,\n    'there4': 8756,\n    'sim': 8764,\n    'cong': 8773,\n    'asymp': 8776,\n    'ne': 8800,\n    'equiv': 8801,\n    'le': 8804,\n    'ge': 8805,\n    'sub': 8834,\n    'sup': 8835,\n    'nsub': 8836,\n    'sube': 8838,\n    'supe': 8839,\n    'oplus': 8853,\n    'otimes': 8855,\n    'perp': 8869,\n    'sdot': 8901,\n    'lceil': 8968,\n    'rceil': 8969,\n    'lfloor': 8970,\n    'rfloor': 8971,\n    'lang': 9001,\n    'rang': 9002,\n    'loz': 9674,\n    'spades': 9824,\n    'clubs': 9827,\n    'hearts': 9829,\n    'diams': 9830\n  }\n\n  Object.keys(sax.ENTITIES).forEach(function (key) {\n    var e = sax.ENTITIES[key]\n    var s = typeof e === 'number' ? String.fromCharCode(e) : e\n    sax.ENTITIES[key] = s\n  })\n\n  for (var s in sax.STATE) {\n    sax.STATE[sax.STATE[s]] = s\n  }\n\n  // shorthand\n  S = sax.STATE\n\n  function emit (parser, event, data) {\n    parser[event] && parser[event](data)\n  }\n\n  function emitNode (parser, nodeType, data) {\n    if (parser.textNode) closeText(parser)\n    emit(parser, nodeType, data)\n  }\n\n  function closeText (parser) {\n    parser.textNode = textopts(parser.opt, parser.textNode)\n    if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n    parser.textNode = ''\n  }\n\n  function textopts (opt, text) {\n    if (opt.trim) text = text.trim()\n    if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n    return text\n  }\n\n  function error (parser, er) {\n    closeText(parser)\n    if (parser.trackPosition) {\n      er += '\\nLine: ' + parser.line +\n        '\\nColumn: ' + parser.column +\n        '\\nChar: ' + parser.c\n    }\n    er = new Error(er)\n    parser.error = er\n    emit(parser, 'onerror', er)\n    return parser\n  }\n\n  function end (parser) {\n    if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n    if ((parser.state !== S.BEGIN) &&\n      (parser.state !== S.BEGIN_WHITESPACE) &&\n      (parser.state !== S.TEXT)) {\n      error(parser, 'Unexpected end')\n    }\n    closeText(parser)\n    parser.c = ''\n    parser.closed = true\n    emit(parser, 'onend')\n    SAXParser.call(parser, parser.strict, parser.opt)\n    return parser\n  }\n\n  function strictFail (parser, message) {\n    if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n      throw new Error('bad call to strictFail')\n    }\n    if (parser.strict) {\n      error(parser, message)\n    }\n  }\n\n  function newTag (parser) {\n    if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n    var parent = parser.tags[parser.tags.length - 1] || parser\n    var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n    // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n    if (parser.opt.xmlns) {\n      tag.ns = parent.ns\n    }\n    parser.attribList.length = 0\n    emitNode(parser, 'onopentagstart', tag)\n  }\n\n  function qname (name, attribute) {\n    var i = name.indexOf(':')\n    var qualName = i < 0 ? [ '', name ] : name.split(':')\n    var prefix = qualName[0]\n    var local = qualName[1]\n\n    // <x \"xmlns\"=\"http://foo\">\n    if (attribute && name === 'xmlns') {\n      prefix = 'xmlns'\n      local = ''\n    }\n\n    return { prefix: prefix, local: local }\n  }\n\n  function attrib (parser) {\n    if (!parser.strict) {\n      parser.attribName = parser.attribName[parser.looseCase]()\n    }\n\n    if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n      parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n      parser.attribName = parser.attribValue = ''\n      return\n    }\n\n    if (parser.opt.xmlns) {\n      var qn = qname(parser.attribName, true)\n      var prefix = qn.prefix\n      var local = qn.local\n\n      if (prefix === 'xmlns') {\n        // namespace binding attribute. push the binding into scope\n        if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n          strictFail(parser,\n            'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n            'Actual: ' + parser.attribValue)\n        } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n          strictFail(parser,\n            'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n            'Actual: ' + parser.attribValue)\n        } else {\n          var tag = parser.tag\n          var parent = parser.tags[parser.tags.length - 1] || parser\n          if (tag.ns === parent.ns) {\n            tag.ns = Object.create(parent.ns)\n          }\n          tag.ns[local] = parser.attribValue\n        }\n      }\n\n      // defer onattribute events until all attributes have been seen\n      // so any new bindings can take effect. preserve attribute order\n      // so deferred events can be emitted in document order\n      parser.attribList.push([parser.attribName, parser.attribValue])\n    } else {\n      // in non-xmlns mode, we can emit the event right away\n      parser.tag.attributes[parser.attribName] = parser.attribValue\n      emitNode(parser, 'onattribute', {\n        name: parser.attribName,\n        value: parser.attribValue\n      })\n    }\n\n    parser.attribName = parser.attribValue = ''\n  }\n\n  function openTag (parser, selfClosing) {\n    if (parser.opt.xmlns) {\n      // emit namespace binding events\n      var tag = parser.tag\n\n      // add namespace info to tag\n      var qn = qname(parser.tagName)\n      tag.prefix = qn.prefix\n      tag.local = qn.local\n      tag.uri = tag.ns[qn.prefix] || ''\n\n      if (tag.prefix && !tag.uri) {\n        strictFail(parser, 'Unbound namespace prefix: ' +\n          JSON.stringify(parser.tagName))\n        tag.uri = qn.prefix\n      }\n\n      var parent = parser.tags[parser.tags.length - 1] || parser\n      if (tag.ns && parent.ns !== tag.ns) {\n        Object.keys(tag.ns).forEach(function (p) {\n          emitNode(parser, 'onopennamespace', {\n            prefix: p,\n            uri: tag.ns[p]\n          })\n        })\n      }\n\n      // handle deferred onattribute events\n      // Note: do not apply default ns to attributes:\n      //   http://www.w3.org/TR/REC-xml-names/#defaulting\n      for (var i = 0, l = parser.attribList.length; i < l; i++) {\n        var nv = parser.attribList[i]\n        var name = nv[0]\n        var value = nv[1]\n        var qualName = qname(name, true)\n        var prefix = qualName.prefix\n        var local = qualName.local\n        var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n        var a = {\n          name: name,\n          value: value,\n          prefix: prefix,\n          local: local,\n          uri: uri\n        }\n\n        // if there's any attributes with an undefined namespace,\n        // then fail on them now.\n        if (prefix && prefix !== 'xmlns' && !uri) {\n          strictFail(parser, 'Unbound namespace prefix: ' +\n            JSON.stringify(prefix))\n          a.uri = prefix\n        }\n        parser.tag.attributes[name] = a\n        emitNode(parser, 'onattribute', a)\n      }\n      parser.attribList.length = 0\n    }\n\n    parser.tag.isSelfClosing = !!selfClosing\n\n    // process the tag\n    parser.sawRoot = true\n    parser.tags.push(parser.tag)\n    emitNode(parser, 'onopentag', parser.tag)\n    if (!selfClosing) {\n      // special case for <script> in non-strict mode.\n      if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n        parser.state = S.SCRIPT\n      } else {\n        parser.state = S.TEXT\n      }\n      parser.tag = null\n      parser.tagName = ''\n    }\n    parser.attribName = parser.attribValue = ''\n    parser.attribList.length = 0\n  }\n\n  function closeTag (parser) {\n    if (!parser.tagName) {\n      strictFail(parser, 'Weird empty close tag.')\n      parser.textNode += '</>'\n      parser.state = S.TEXT\n      return\n    }\n\n    if (parser.script) {\n      if (parser.tagName !== 'script') {\n        parser.script += '</' + parser.tagName + '>'\n        parser.tagName = ''\n        parser.state = S.SCRIPT\n        return\n      }\n      emitNode(parser, 'onscript', parser.script)\n      parser.script = ''\n    }\n\n    // first make sure that the closing tag actually exists.\n    // <a><b></c></b></a> will close everything, otherwise.\n    var t = parser.tags.length\n    var tagName = parser.tagName\n    if (!parser.strict) {\n      tagName = tagName[parser.looseCase]()\n    }\n    var closeTo = tagName\n    while (t--) {\n      var close = parser.tags[t]\n      if (close.name !== closeTo) {\n        // fail the first time in strict mode\n        strictFail(parser, 'Unexpected close tag')\n      } else {\n        break\n      }\n    }\n\n    // didn't find it.  we already failed for strict, so just abort.\n    if (t < 0) {\n      strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n      parser.textNode += '</' + parser.tagName + '>'\n      parser.state = S.TEXT\n      return\n    }\n    parser.tagName = tagName\n    var s = parser.tags.length\n    while (s-- > t) {\n      var tag = parser.tag = parser.tags.pop()\n      parser.tagName = parser.tag.name\n      emitNode(parser, 'onclosetag', parser.tagName)\n\n      var x = {}\n      for (var i in tag.ns) {\n        x[i] = tag.ns[i]\n      }\n\n      var parent = parser.tags[parser.tags.length - 1] || parser\n      if (parser.opt.xmlns && tag.ns !== parent.ns) {\n        // remove namespace bindings introduced by tag\n        Object.keys(tag.ns).forEach(function (p) {\n          var n = tag.ns[p]\n          emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n        })\n      }\n    }\n    if (t === 0) parser.closedRoot = true\n    parser.tagName = parser.attribValue = parser.attribName = ''\n    parser.attribList.length = 0\n    parser.state = S.TEXT\n  }\n\n  function parseEntity (parser) {\n    var entity = parser.entity\n    var entityLC = entity.toLowerCase()\n    var num\n    var numStr = ''\n\n    if (parser.ENTITIES[entity]) {\n      return parser.ENTITIES[entity]\n    }\n    if (parser.ENTITIES[entityLC]) {\n      return parser.ENTITIES[entityLC]\n    }\n    entity = entityLC\n    if (entity.charAt(0) === '#') {\n      if (entity.charAt(1) === 'x') {\n        entity = entity.slice(2)\n        num = parseInt(entity, 16)\n        numStr = num.toString(16)\n      } else {\n        entity = entity.slice(1)\n        num = parseInt(entity, 10)\n        numStr = num.toString(10)\n      }\n    }\n    entity = entity.replace(/^0+/, '')\n    if (isNaN(num) || numStr.toLowerCase() !== entity) {\n      strictFail(parser, 'Invalid character entity')\n      return '&' + parser.entity + ';'\n    }\n\n    return String.fromCodePoint(num)\n  }\n\n  function beginWhiteSpace (parser, c) {\n    if (c === '<') {\n      parser.state = S.OPEN_WAKA\n      parser.startTagPosition = parser.position\n    } else if (!isWhitespace(c)) {\n      // have to process this as a text node.\n      // weird, but happens.\n      strictFail(parser, 'Non-whitespace before first tag.')\n      parser.textNode = c\n      parser.state = S.TEXT\n    }\n  }\n\n  function charAt (chunk, i) {\n    var result = ''\n    if (i < chunk.length) {\n      result = chunk.charAt(i)\n    }\n    return result\n  }\n\n  function write (chunk) {\n    var parser = this\n    if (this.error) {\n      throw this.error\n    }\n    if (parser.closed) {\n      return error(parser,\n        'Cannot write after close. Assign an onready handler.')\n    }\n    if (chunk === null) {\n      return end(parser)\n    }\n    if (typeof chunk === 'object') {\n      chunk = chunk.toString()\n    }\n    var i = 0\n    var c = ''\n    while (true) {\n      c = charAt(chunk, i++)\n      parser.c = c\n\n      if (!c) {\n        break\n      }\n\n      if (parser.trackPosition) {\n        parser.position++\n        if (c === '\\n') {\n          parser.line++\n          parser.column = 0\n        } else {\n          parser.column++\n        }\n      }\n\n      switch (parser.state) {\n        case S.BEGIN:\n          parser.state = S.BEGIN_WHITESPACE\n          if (c === '\\uFEFF') {\n            continue\n          }\n          beginWhiteSpace(parser, c)\n          continue\n\n        case S.BEGIN_WHITESPACE:\n          beginWhiteSpace(parser, c)\n          continue\n\n        case S.TEXT:\n          if (parser.sawRoot && !parser.closedRoot) {\n            var starti = i - 1\n            while (c && c !== '<' && c !== '&') {\n              c = charAt(chunk, i++)\n              if (c && parser.trackPosition) {\n                parser.position++\n                if (c === '\\n') {\n                  parser.line++\n                  parser.column = 0\n                } else {\n                  parser.column++\n                }\n              }\n            }\n            parser.textNode += chunk.substring(starti, i - 1)\n          }\n          if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n            parser.state = S.OPEN_WAKA\n            parser.startTagPosition = parser.position\n          } else {\n            if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n              strictFail(parser, 'Text data outside of root node.')\n            }\n            if (c === '&') {\n              parser.state = S.TEXT_ENTITY\n            } else {\n              parser.textNode += c\n            }\n          }\n          continue\n\n        case S.SCRIPT:\n          // only non-strict\n          if (c === '<') {\n            parser.state = S.SCRIPT_ENDING\n          } else {\n            parser.script += c\n          }\n          continue\n\n        case S.SCRIPT_ENDING:\n          if (c === '/') {\n            parser.state = S.CLOSE_TAG\n          } else {\n            parser.script += '<' + c\n            parser.state = S.SCRIPT\n          }\n          continue\n\n        case S.OPEN_WAKA:\n          // either a /, ?, !, or text is coming next.\n          if (c === '!') {\n            parser.state = S.SGML_DECL\n            parser.sgmlDecl = ''\n          } else if (isWhitespace(c)) {\n            // wait for it...\n          } else if (isMatch(nameStart, c)) {\n            parser.state = S.OPEN_TAG\n            parser.tagName = c\n          } else if (c === '/') {\n            parser.state = S.CLOSE_TAG\n            parser.tagName = ''\n          } else if (c === '?') {\n            parser.state = S.PROC_INST\n            parser.procInstName = parser.procInstBody = ''\n          } else {\n            strictFail(parser, 'Unencoded <')\n            // if there was some whitespace, then add that in.\n            if (parser.startTagPosition + 1 < parser.position) {\n              var pad = parser.position - parser.startTagPosition\n              c = new Array(pad).join(' ') + c\n            }\n            parser.textNode += '<' + c\n            parser.state = S.TEXT\n          }\n          continue\n\n        case S.SGML_DECL:\n          if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n            emitNode(parser, 'onopencdata')\n            parser.state = S.CDATA\n            parser.sgmlDecl = ''\n            parser.cdata = ''\n          } else if (parser.sgmlDecl + c === '--') {\n            parser.state = S.COMMENT\n            parser.comment = ''\n            parser.sgmlDecl = ''\n          } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n            parser.state = S.DOCTYPE\n            if (parser.doctype || parser.sawRoot) {\n              strictFail(parser,\n                'Inappropriately located doctype declaration')\n            }\n            parser.doctype = ''\n            parser.sgmlDecl = ''\n          } else if (c === '>') {\n            emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n            parser.sgmlDecl = ''\n            parser.state = S.TEXT\n          } else if (isQuote(c)) {\n            parser.state = S.SGML_DECL_QUOTED\n            parser.sgmlDecl += c\n          } else {\n            parser.sgmlDecl += c\n          }\n          continue\n\n        case S.SGML_DECL_QUOTED:\n          if (c === parser.q) {\n            parser.state = S.SGML_DECL\n            parser.q = ''\n          }\n          parser.sgmlDecl += c\n          continue\n\n        case S.DOCTYPE:\n          if (c === '>') {\n            parser.state = S.TEXT\n            emitNode(parser, 'ondoctype', parser.doctype)\n            parser.doctype = true // just remember that we saw it.\n          } else {\n            parser.doctype += c\n            if (c === '[') {\n              parser.state = S.DOCTYPE_DTD\n            } else if (isQuote(c)) {\n              parser.state = S.DOCTYPE_QUOTED\n              parser.q = c\n            }\n          }\n          continue\n\n        case S.DOCTYPE_QUOTED:\n          parser.doctype += c\n          if (c === parser.q) {\n            parser.q = ''\n            parser.state = S.DOCTYPE\n          }\n          continue\n\n        case S.DOCTYPE_DTD:\n          parser.doctype += c\n          if (c === ']') {\n            parser.state = S.DOCTYPE\n          } else if (isQuote(c)) {\n            parser.state = S.DOCTYPE_DTD_QUOTED\n            parser.q = c\n          }\n          continue\n\n        case S.DOCTYPE_DTD_QUOTED:\n          parser.doctype += c\n          if (c === parser.q) {\n            parser.state = S.DOCTYPE_DTD\n            parser.q = ''\n          }\n          continue\n\n        case S.COMMENT:\n          if (c === '-') {\n            parser.state = S.COMMENT_ENDING\n          } else {\n            parser.comment += c\n          }\n          continue\n\n        case S.COMMENT_ENDING:\n          if (c === '-') {\n            parser.state = S.COMMENT_ENDED\n            parser.comment = textopts(parser.opt, parser.comment)\n            if (parser.comment) {\n              emitNode(parser, 'oncomment', parser.comment)\n            }\n            parser.comment = ''\n          } else {\n            parser.comment += '-' + c\n            parser.state = S.COMMENT\n          }\n          continue\n\n        case S.COMMENT_ENDED:\n          if (c !== '>') {\n            strictFail(parser, 'Malformed comment')\n            // allow <!-- blah -- bloo --> in non-strict mode,\n            // which is a comment of \" blah -- bloo \"\n            parser.comment += '--' + c\n            parser.state = S.COMMENT\n          } else {\n            parser.state = S.TEXT\n          }\n          continue\n\n        case S.CDATA:\n          if (c === ']') {\n            parser.state = S.CDATA_ENDING\n          } else {\n            parser.cdata += c\n          }\n          continue\n\n        case S.CDATA_ENDING:\n          if (c === ']') {\n            parser.state = S.CDATA_ENDING_2\n          } else {\n            parser.cdata += ']' + c\n            parser.state = S.CDATA\n          }\n          continue\n\n        case S.CDATA_ENDING_2:\n          if (c === '>') {\n            if (parser.cdata) {\n              emitNode(parser, 'oncdata', parser.cdata)\n            }\n            emitNode(parser, 'onclosecdata')\n            parser.cdata = ''\n            parser.state = S.TEXT\n          } else if (c === ']') {\n            parser.cdata += ']'\n          } else {\n            parser.cdata += ']]' + c\n            parser.state = S.CDATA\n          }\n          continue\n\n        case S.PROC_INST:\n          if (c === '?') {\n            parser.state = S.PROC_INST_ENDING\n          } else if (isWhitespace(c)) {\n            parser.state = S.PROC_INST_BODY\n          } else {\n            parser.procInstName += c\n          }\n          continue\n\n        case S.PROC_INST_BODY:\n          if (!parser.procInstBody && isWhitespace(c)) {\n            continue\n          } else if (c === '?') {\n            parser.state = S.PROC_INST_ENDING\n          } else {\n            parser.procInstBody += c\n          }\n          continue\n\n        case S.PROC_INST_ENDING:\n          if (c === '>') {\n            emitNode(parser, 'onprocessinginstruction', {\n              name: parser.procInstName,\n              body: parser.procInstBody\n            })\n            parser.procInstName = parser.procInstBody = ''\n            parser.state = S.TEXT\n          } else {\n            parser.procInstBody += '?' + c\n            parser.state = S.PROC_INST_BODY\n          }\n          continue\n\n        case S.OPEN_TAG:\n          if (isMatch(nameBody, c)) {\n            parser.tagName += c\n          } else {\n            newTag(parser)\n            if (c === '>') {\n              openTag(parser)\n            } else if (c === '/') {\n              parser.state = S.OPEN_TAG_SLASH\n            } else {\n              if (!isWhitespace(c)) {\n                strictFail(parser, 'Invalid character in tag name')\n              }\n              parser.state = S.ATTRIB\n            }\n          }\n          continue\n\n        case S.OPEN_TAG_SLASH:\n          if (c === '>') {\n            openTag(parser, true)\n            closeTag(parser)\n          } else {\n            strictFail(parser, 'Forward-slash in opening tag not followed by >')\n            parser.state = S.ATTRIB\n          }\n          continue\n\n        case S.ATTRIB:\n          // haven't read the attribute name yet.\n          if (isWhitespace(c)) {\n            continue\n          } else if (c === '>') {\n            openTag(parser)\n          } else if (c === '/') {\n            parser.state = S.OPEN_TAG_SLASH\n          } else if (isMatch(nameStart, c)) {\n            parser.attribName = c\n            parser.attribValue = ''\n            parser.state = S.ATTRIB_NAME\n          } else {\n            strictFail(parser, 'Invalid attribute name')\n          }\n          continue\n\n        case S.ATTRIB_NAME:\n          if (c === '=') {\n            parser.state = S.ATTRIB_VALUE\n          } else if (c === '>') {\n            strictFail(parser, 'Attribute without value')\n            parser.attribValue = parser.attribName\n            attrib(parser)\n            openTag(parser)\n          } else if (isWhitespace(c)) {\n            parser.state = S.ATTRIB_NAME_SAW_WHITE\n          } else if (isMatch(nameBody, c)) {\n            parser.attribName += c\n          } else {\n            strictFail(parser, 'Invalid attribute name')\n          }\n          continue\n\n        case S.ATTRIB_NAME_SAW_WHITE:\n          if (c === '=') {\n            parser.state = S.ATTRIB_VALUE\n          } else if (isWhitespace(c)) {\n            continue\n          } else {\n            strictFail(parser, 'Attribute without value')\n            parser.tag.attributes[parser.attribName] = ''\n            parser.attribValue = ''\n            emitNode(parser, 'onattribute', {\n              name: parser.attribName,\n              value: ''\n            })\n            parser.attribName = ''\n            if (c === '>') {\n              openTag(parser)\n            } else if (isMatch(nameStart, c)) {\n              parser.attribName = c\n              parser.state = S.ATTRIB_NAME\n            } else {\n              strictFail(parser, 'Invalid attribute name')\n              parser.state = S.ATTRIB\n            }\n          }\n          continue\n\n        case S.ATTRIB_VALUE:\n          if (isWhitespace(c)) {\n            continue\n          } else if (isQuote(c)) {\n            parser.q = c\n            parser.state = S.ATTRIB_VALUE_QUOTED\n          } else {\n            strictFail(parser, 'Unquoted attribute value')\n            parser.state = S.ATTRIB_VALUE_UNQUOTED\n            parser.attribValue = c\n          }\n          continue\n\n        case S.ATTRIB_VALUE_QUOTED:\n          if (c !== parser.q) {\n            if (c === '&') {\n              parser.state = S.ATTRIB_VALUE_ENTITY_Q\n            } else {\n              parser.attribValue += c\n            }\n            continue\n          }\n          attrib(parser)\n          parser.q = ''\n          parser.state = S.ATTRIB_VALUE_CLOSED\n          continue\n\n        case S.ATTRIB_VALUE_CLOSED:\n          if (isWhitespace(c)) {\n            parser.state = S.ATTRIB\n          } else if (c === '>') {\n            openTag(parser)\n          } else if (c === '/') {\n            parser.state = S.OPEN_TAG_SLASH\n          } else if (isMatch(nameStart, c)) {\n            strictFail(parser, 'No whitespace between attributes')\n            parser.attribName = c\n            parser.attribValue = ''\n            parser.state = S.ATTRIB_NAME\n          } else {\n            strictFail(parser, 'Invalid attribute name')\n          }\n          continue\n\n        case S.ATTRIB_VALUE_UNQUOTED:\n          if (!isAttribEnd(c)) {\n            if (c === '&') {\n              parser.state = S.ATTRIB_VALUE_ENTITY_U\n            } else {\n              parser.attribValue += c\n            }\n            continue\n          }\n          attrib(parser)\n          if (c === '>') {\n            openTag(parser)\n          } else {\n            parser.state = S.ATTRIB\n          }\n          continue\n\n        case S.CLOSE_TAG:\n          if (!parser.tagName) {\n            if (isWhitespace(c)) {\n              continue\n            } else if (notMatch(nameStart, c)) {\n              if (parser.script) {\n                parser.script += '</' + c\n                parser.state = S.SCRIPT\n              } else {\n                strictFail(parser, 'Invalid tagname in closing tag.')\n              }\n            } else {\n              parser.tagName = c\n            }\n          } else if (c === '>') {\n            closeTag(parser)\n          } else if (isMatch(nameBody, c)) {\n            parser.tagName += c\n          } else if (parser.script) {\n            parser.script += '</' + parser.tagName\n            parser.tagName = ''\n            parser.state = S.SCRIPT\n          } else {\n            if (!isWhitespace(c)) {\n              strictFail(parser, 'Invalid tagname in closing tag')\n            }\n            parser.state = S.CLOSE_TAG_SAW_WHITE\n          }\n          continue\n\n        case S.CLOSE_TAG_SAW_WHITE:\n          if (isWhitespace(c)) {\n            continue\n          }\n          if (c === '>') {\n            closeTag(parser)\n          } else {\n            strictFail(parser, 'Invalid characters in closing tag')\n          }\n          continue\n\n        case S.TEXT_ENTITY:\n        case S.ATTRIB_VALUE_ENTITY_Q:\n        case S.ATTRIB_VALUE_ENTITY_U:\n          var returnState\n          var buffer\n          switch (parser.state) {\n            case S.TEXT_ENTITY:\n              returnState = S.TEXT\n              buffer = 'textNode'\n              break\n\n            case S.ATTRIB_VALUE_ENTITY_Q:\n              returnState = S.ATTRIB_VALUE_QUOTED\n              buffer = 'attribValue'\n              break\n\n            case S.ATTRIB_VALUE_ENTITY_U:\n              returnState = S.ATTRIB_VALUE_UNQUOTED\n              buffer = 'attribValue'\n              break\n          }\n\n          if (c === ';') {\n            parser[buffer] += parseEntity(parser)\n            parser.entity = ''\n            parser.state = returnState\n          } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n            parser.entity += c\n          } else {\n            strictFail(parser, 'Invalid character in entity name')\n            parser[buffer] += '&' + parser.entity + c\n            parser.entity = ''\n            parser.state = returnState\n          }\n\n          continue\n\n        default:\n          throw new Error(parser, 'Unknown state: ' + parser.state)\n      }\n    } // while\n\n    if (parser.position >= parser.bufferCheckPosition) {\n      checkBufferLength(parser)\n    }\n    return parser\n  }\n\n  /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n  /* istanbul ignore next */\n  if (!String.fromCodePoint) {\n    (function () {\n      var stringFromCharCode = String.fromCharCode\n      var floor = Math.floor\n      var fromCodePoint = function () {\n        var MAX_SIZE = 0x4000\n        var codeUnits = []\n        var highSurrogate\n        var lowSurrogate\n        var index = -1\n        var length = arguments.length\n        if (!length) {\n          return ''\n        }\n        var result = ''\n        while (++index < length) {\n          var codePoint = Number(arguments[index])\n          if (\n            !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n            codePoint < 0 || // not a valid Unicode code point\n            codePoint > 0x10FFFF || // not a valid Unicode code point\n            floor(codePoint) !== codePoint // not an integer\n          ) {\n            throw RangeError('Invalid code point: ' + codePoint)\n          }\n          if (codePoint <= 0xFFFF) { // BMP code point\n            codeUnits.push(codePoint)\n          } else { // Astral code point; split in surrogate halves\n            // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n            codePoint -= 0x10000\n            highSurrogate = (codePoint >> 10) + 0xD800\n            lowSurrogate = (codePoint % 0x400) + 0xDC00\n            codeUnits.push(highSurrogate, lowSurrogate)\n          }\n          if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n            result += stringFromCharCode.apply(null, codeUnits)\n            codeUnits.length = 0\n          }\n        }\n        return result\n      }\n      /* istanbul ignore next */\n      if (Object.defineProperty) {\n        Object.defineProperty(String, 'fromCodePoint', {\n          value: fromCodePoint,\n          configurable: true,\n          writable: true\n        })\n      } else {\n        String.fromCodePoint = fromCodePoint\n      }\n    }())\n  }\n})( false ? undefined : exports)\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10).Buffer))\n\n/***/ }),\n/* 553 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isArray = __webpack_require__(0).isArray;\n\nfunction groupDecorations(line) {\n\tvar groups = [], currentGroup = null;\n\tfor (var i = 0, l = line.inlines.length; i < l; i++) {\n\t\tvar inline = line.inlines[i];\n\t\tvar decoration = inline.decoration;\n\t\tif (!decoration) {\n\t\t\tcurrentGroup = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isArray(decoration)) {\n\t\t\tdecoration = [decoration];\n\t\t}\n\t\tvar color = inline.decorationColor || inline.color || 'black';\n\t\tvar style = inline.decorationStyle || 'solid';\n\t\tfor (var ii = 0, ll = decoration.length; ii < ll; ii++) {\n\t\t\tvar decorationItem = decoration[ii];\n\t\t\tif (!currentGroup || decorationItem !== currentGroup.decoration ||\n\t\t\t\tstyle !== currentGroup.decorationStyle || color !== currentGroup.decorationColor) {\n\n\t\t\t\tcurrentGroup = {\n\t\t\t\t\tline: line,\n\t\t\t\t\tdecoration: decorationItem,\n\t\t\t\t\tdecorationColor: color,\n\t\t\t\t\tdecorationStyle: style,\n\t\t\t\t\tinlines: [inline]\n\t\t\t\t};\n\t\t\t\tgroups.push(currentGroup);\n\t\t\t} else {\n\t\t\t\tcurrentGroup.inlines.push(inline);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn groups;\n}\n\nfunction drawDecoration(group, x, y, pdfKitDoc) {\n\tfunction maxInline() {\n\t\tvar max = 0;\n\t\tfor (var i = 0, l = group.inlines.length; i < l; i++) {\n\t\t\tvar inline = group.inlines[i];\n\t\t\tmax = inline.fontSize > max ? i : max;\n\t\t}\n\t\treturn group.inlines[max];\n\t}\n\tfunction width() {\n\t\tvar sum = 0;\n\t\tfor (var i = 0, l = group.inlines.length; i < l; i++) {\n\t\t\tvar justifyShift = (group.inlines[i].justifyShift || 0);\n\t\t\tsum += group.inlines[i].width + justifyShift;\n\t\t}\n\t\treturn sum;\n\t}\n\tvar firstInline = group.inlines[0],\n\t\tbiggerInline = maxInline(),\n\t\ttotalWidth = width(),\n\t\tlineAscent = group.line.getAscenderHeight(),\n\t\tascent = biggerInline.font.ascender / 1000 * biggerInline.fontSize,\n\t\theight = biggerInline.height,\n\t\tdescent = height - ascent;\n\n\tvar lw = 0.5 + Math.floor(Math.max(biggerInline.fontSize - 8, 0) / 2) * 0.12;\n\n\tswitch (group.decoration) {\n\t\tcase 'underline':\n\t\t\ty += lineAscent + descent * 0.45;\n\t\t\tbreak;\n\t\tcase 'overline':\n\t\t\ty += lineAscent - (ascent * 0.85);\n\t\t\tbreak;\n\t\tcase 'lineThrough':\n\t\t\ty += lineAscent - (ascent * 0.25);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unkown decoration : ' + group.decoration;\n\t}\n\tpdfKitDoc.save();\n\n\tif (group.decorationStyle === 'double') {\n\t\tvar gap = Math.max(0.5, lw * 2);\n\t\tpdfKitDoc.fillColor(group.decorationColor)\n\t\t\t.rect(x + firstInline.x, y - lw / 2, totalWidth, lw / 2).fill()\n\t\t\t.rect(x + firstInline.x, y + gap - lw / 2, totalWidth, lw / 2).fill();\n\t} else if (group.decorationStyle === 'dashed') {\n\t\tvar nbDashes = Math.ceil(totalWidth / (3.96 + 2.84));\n\t\tvar rdx = x + firstInline.x;\n\t\tpdfKitDoc.rect(rdx, y, totalWidth, lw).clip();\n\t\tpdfKitDoc.fillColor(group.decorationColor);\n\t\tfor (var i = 0; i < nbDashes; i++) {\n\t\t\tpdfKitDoc.rect(rdx, y - lw / 2, 3.96, lw).fill();\n\t\t\trdx += 3.96 + 2.84;\n\t\t}\n\t} else if (group.decorationStyle === 'dotted') {\n\t\tvar nbDots = Math.ceil(totalWidth / (lw * 3));\n\t\tvar rx = x + firstInline.x;\n\t\tpdfKitDoc.rect(rx, y, totalWidth, lw).clip();\n\t\tpdfKitDoc.fillColor(group.decorationColor);\n\t\tfor (var ii = 0; ii < nbDots; ii++) {\n\t\t\tpdfKitDoc.rect(rx, y - lw / 2, lw, lw).fill();\n\t\t\trx += (lw * 3);\n\t\t}\n\t} else if (group.decorationStyle === 'wavy') {\n\t\tvar sh = 0.7, sv = 1;\n\t\tvar nbWaves = Math.ceil(totalWidth / (sh * 2)) + 1;\n\t\tvar rwx = x + firstInline.x - 1;\n\t\tpdfKitDoc.rect(x + firstInline.x, y - sv, totalWidth, y + sv).clip();\n\t\tpdfKitDoc.lineWidth(0.24);\n\t\tpdfKitDoc.moveTo(rwx, y);\n\t\tfor (var iii = 0; iii < nbWaves; iii++) {\n\t\t\tpdfKitDoc.bezierCurveTo(rwx + sh, y - sv, rwx + sh * 2, y - sv, rwx + sh * 3, y)\n\t\t\t\t.bezierCurveTo(rwx + sh * 4, y + sv, rwx + sh * 5, y + sv, rwx + sh * 6, y);\n\t\t\trwx += sh * 6;\n\t\t}\n\t\tpdfKitDoc.stroke(group.decorationColor);\n\t} else {\n\t\tpdfKitDoc.fillColor(group.decorationColor)\n\t\t\t.rect(x + firstInline.x, y - lw / 2, totalWidth, lw)\n\t\t\t.fill();\n\t}\n\tpdfKitDoc.restore();\n}\n\nfunction drawDecorations(line, x, y, pdfKitDoc) {\n\tvar groups = groupDecorations(line);\n\tfor (var i = 0, l = groups.length; i < l; i++) {\n\t\tdrawDecoration(groups[i], x, y, pdfKitDoc);\n\t}\n}\n\nfunction drawBackground(line, x, y, pdfKitDoc) {\n\tvar height = line.getHeight();\n\tfor (var i = 0, l = line.inlines.length; i < l; i++) {\n\t\tvar inline = line.inlines[i];\n\t\tif (!inline.background) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar justifyShift = (inline.justifyShift || 0);\n\t\tpdfKitDoc.fillColor(inline.background)\n\t\t\t.rect(x + inline.x - justifyShift, y, inline.width + justifyShift, height)\n\t\t\t.fill();\n\t}\n}\n\nmodule.exports = {\n\tdrawBackground: drawBackground,\n\tdrawDecorations: drawDecorations\n};\n\n\n/***/ }),\n/* 554 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\n__webpack_require__(212);\n\n__webpack_require__(213);\n\n__webpack_require__(195);\n\n__webpack_require__(28);\n\n__webpack_require__(46);\n\n__webpack_require__(224);\n\n__webpack_require__(225);\n\n__webpack_require__(229);\n\n__webpack_require__(31);\n\n__webpack_require__(118);\n\n__webpack_require__(161);\n\n__webpack_require__(231);\n\n__webpack_require__(232);\n\n__webpack_require__(233);\n\n__webpack_require__(234);\n\n__webpack_require__(120);\n\nvar SVGtoPDF = function SVGtoPDF(doc, svg, x, y, options) {\n  \"use strict\";\n\n  var NamedColors = {\n    aliceblue: [240, 248, 255],\n    antiquewhite: [250, 235, 215],\n    aqua: [0, 255, 255],\n    aquamarine: [127, 255, 212],\n    azure: [240, 255, 255],\n    beige: [245, 245, 220],\n    bisque: [255, 228, 196],\n    black: [0, 0, 0],\n    blanchedalmond: [255, 235, 205],\n    blue: [0, 0, 255],\n    blueviolet: [138, 43, 226],\n    brown: [165, 42, 42],\n    burlywood: [222, 184, 135],\n    cadetblue: [95, 158, 160],\n    chartreuse: [127, 255, 0],\n    chocolate: [210, 105, 30],\n    coral: [255, 127, 80],\n    cornflowerblue: [100, 149, 237],\n    cornsilk: [255, 248, 220],\n    crimson: [220, 20, 60],\n    cyan: [0, 255, 255],\n    darkblue: [0, 0, 139],\n    darkcyan: [0, 139, 139],\n    darkgoldenrod: [184, 134, 11],\n    darkgray: [169, 169, 169],\n    darkgrey: [169, 169, 169],\n    darkgreen: [0, 100, 0],\n    darkkhaki: [189, 183, 107],\n    darkmagenta: [139, 0, 139],\n    darkolivegreen: [85, 107, 47],\n    darkorange: [255, 140, 0],\n    darkorchid: [153, 50, 204],\n    darkred: [139, 0, 0],\n    darksalmon: [233, 150, 122],\n    darkseagreen: [143, 188, 143],\n    darkslateblue: [72, 61, 139],\n    darkslategray: [47, 79, 79],\n    darkslategrey: [47, 79, 79],\n    darkturquoise: [0, 206, 209],\n    darkviolet: [148, 0, 211],\n    deeppink: [255, 20, 147],\n    deepskyblue: [0, 191, 255],\n    dimgray: [105, 105, 105],\n    dimgrey: [105, 105, 105],\n    dodgerblue: [30, 144, 255],\n    firebrick: [178, 34, 34],\n    floralwhite: [255, 250, 240],\n    forestgreen: [34, 139, 34],\n    fuchsia: [255, 0, 255],\n    gainsboro: [220, 220, 220],\n    ghostwhite: [248, 248, 255],\n    gold: [255, 215, 0],\n    goldenrod: [218, 165, 32],\n    gray: [128, 128, 128],\n    grey: [128, 128, 128],\n    green: [0, 128, 0],\n    greenyellow: [173, 255, 47],\n    honeydew: [240, 255, 240],\n    hotpink: [255, 105, 180],\n    indianred: [205, 92, 92],\n    indigo: [75, 0, 130],\n    ivory: [255, 255, 240],\n    khaki: [240, 230, 140],\n    lavender: [230, 230, 250],\n    lavenderblush: [255, 240, 245],\n    lawngreen: [124, 252, 0],\n    lemonchiffon: [255, 250, 205],\n    lightblue: [173, 216, 230],\n    lightcoral: [240, 128, 128],\n    lightcyan: [224, 255, 255],\n    lightgoldenrodyellow: [250, 250, 210],\n    lightgray: [211, 211, 211],\n    lightgrey: [211, 211, 211],\n    lightgreen: [144, 238, 144],\n    lightpink: [255, 182, 193],\n    lightsalmon: [255, 160, 122],\n    lightseagreen: [32, 178, 170],\n    lightskyblue: [135, 206, 250],\n    lightslategray: [119, 136, 153],\n    lightslategrey: [119, 136, 153],\n    lightsteelblue: [176, 196, 222],\n    lightyellow: [255, 255, 224],\n    lime: [0, 255, 0],\n    limegreen: [50, 205, 50],\n    linen: [250, 240, 230],\n    magenta: [255, 0, 255],\n    maroon: [128, 0, 0],\n    mediumaquamarine: [102, 205, 170],\n    mediumblue: [0, 0, 205],\n    mediumorchid: [186, 85, 211],\n    mediumpurple: [147, 112, 219],\n    mediumseagreen: [60, 179, 113],\n    mediumslateblue: [123, 104, 238],\n    mediumspringgreen: [0, 250, 154],\n    mediumturquoise: [72, 209, 204],\n    mediumvioletred: [199, 21, 133],\n    midnightblue: [25, 25, 112],\n    mintcream: [245, 255, 250],\n    mistyrose: [255, 228, 225],\n    moccasin: [255, 228, 181],\n    navajowhite: [255, 222, 173],\n    navy: [0, 0, 128],\n    oldlace: [253, 245, 230],\n    olive: [128, 128, 0],\n    olivedrab: [107, 142, 35],\n    orange: [255, 165, 0],\n    orangered: [255, 69, 0],\n    orchid: [218, 112, 214],\n    palegoldenrod: [238, 232, 170],\n    palegreen: [152, 251, 152],\n    paleturquoise: [175, 238, 238],\n    palevioletred: [219, 112, 147],\n    papayawhip: [255, 239, 213],\n    peachpuff: [255, 218, 185],\n    peru: [205, 133, 63],\n    pink: [255, 192, 203],\n    plum: [221, 160, 221],\n    powderblue: [176, 224, 230],\n    purple: [128, 0, 128],\n    rebeccapurple: [102, 51, 153],\n    red: [255, 0, 0],\n    rosybrown: [188, 143, 143],\n    royalblue: [65, 105, 225],\n    saddlebrown: [139, 69, 19],\n    salmon: [250, 128, 114],\n    sandybrown: [244, 164, 96],\n    seagreen: [46, 139, 87],\n    seashell: [255, 245, 238],\n    sienna: [160, 82, 45],\n    silver: [192, 192, 192],\n    skyblue: [135, 206, 235],\n    slateblue: [106, 90, 205],\n    slategray: [112, 128, 144],\n    slategrey: [112, 128, 144],\n    snow: [255, 250, 250],\n    springgreen: [0, 255, 127],\n    steelblue: [70, 130, 180],\n    tan: [210, 180, 140],\n    teal: [0, 128, 128],\n    thistle: [216, 191, 216],\n    tomato: [255, 99, 71],\n    turquoise: [64, 224, 208],\n    violet: [238, 130, 238],\n    wheat: [245, 222, 179],\n    white: [255, 255, 255],\n    whitesmoke: [245, 245, 245],\n    yellow: [255, 255, 0]\n  };\n  var DefaultColors = {\n    black: [NamedColors.black, 1],\n    white: [NamedColors.white, 1],\n    transparent: [NamedColors.black, 0]\n  };\n  var Entities = {\n    quot: 34,\n    amp: 38,\n    lt: 60,\n    gt: 62,\n    apos: 39,\n    OElig: 338,\n    oelig: 339,\n    Scaron: 352,\n    scaron: 353,\n    Yuml: 376,\n    circ: 710,\n    tilde: 732,\n    ensp: 8194,\n    emsp: 8195,\n    thinsp: 8201,\n    zwnj: 8204,\n    zwj: 8205,\n    lrm: 8206,\n    rlm: 8207,\n    ndash: 8211,\n    mdash: 8212,\n    lsquo: 8216,\n    rsquo: 8217,\n    sbquo: 8218,\n    ldquo: 8220,\n    rdquo: 8221,\n    bdquo: 8222,\n    dagger: 8224,\n    Dagger: 8225,\n    permil: 8240,\n    lsaquo: 8249,\n    rsaquo: 8250,\n    euro: 8364,\n    nbsp: 160,\n    iexcl: 161,\n    cent: 162,\n    pound: 163,\n    curren: 164,\n    yen: 165,\n    brvbar: 166,\n    sect: 167,\n    uml: 168,\n    copy: 169,\n    ordf: 170,\n    laquo: 171,\n    not: 172,\n    shy: 173,\n    reg: 174,\n    macr: 175,\n    deg: 176,\n    plusmn: 177,\n    sup2: 178,\n    sup3: 179,\n    acute: 180,\n    micro: 181,\n    para: 182,\n    middot: 183,\n    cedil: 184,\n    sup1: 185,\n    ordm: 186,\n    raquo: 187,\n    frac14: 188,\n    frac12: 189,\n    frac34: 190,\n    iquest: 191,\n    Agrave: 192,\n    Aacute: 193,\n    Acirc: 194,\n    Atilde: 195,\n    Auml: 196,\n    Aring: 197,\n    AElig: 198,\n    Ccedil: 199,\n    Egrave: 200,\n    Eacute: 201,\n    Ecirc: 202,\n    Euml: 203,\n    Igrave: 204,\n    Iacute: 205,\n    Icirc: 206,\n    Iuml: 207,\n    ETH: 208,\n    Ntilde: 209,\n    Ograve: 210,\n    Oacute: 211,\n    Ocirc: 212,\n    Otilde: 213,\n    Ouml: 214,\n    times: 215,\n    Oslash: 216,\n    Ugrave: 217,\n    Uacute: 218,\n    Ucirc: 219,\n    Uuml: 220,\n    Yacute: 221,\n    THORN: 222,\n    szlig: 223,\n    agrave: 224,\n    aacute: 225,\n    acirc: 226,\n    atilde: 227,\n    auml: 228,\n    aring: 229,\n    aelig: 230,\n    ccedil: 231,\n    egrave: 232,\n    eacute: 233,\n    ecirc: 234,\n    euml: 235,\n    igrave: 236,\n    iacute: 237,\n    icirc: 238,\n    iuml: 239,\n    eth: 240,\n    ntilde: 241,\n    ograve: 242,\n    oacute: 243,\n    ocirc: 244,\n    otilde: 245,\n    ouml: 246,\n    divide: 247,\n    oslash: 248,\n    ugrave: 249,\n    uacute: 250,\n    ucirc: 251,\n    uuml: 252,\n    yacute: 253,\n    thorn: 254,\n    yuml: 255,\n    fnof: 402,\n    Alpha: 913,\n    Beta: 914,\n    Gamma: 915,\n    Delta: 916,\n    Epsilon: 917,\n    Zeta: 918,\n    Eta: 919,\n    Theta: 920,\n    Iota: 921,\n    Kappa: 922,\n    Lambda: 923,\n    Mu: 924,\n    Nu: 925,\n    Xi: 926,\n    Omicron: 927,\n    Pi: 928,\n    Rho: 929,\n    Sigma: 931,\n    Tau: 932,\n    Upsilon: 933,\n    Phi: 934,\n    Chi: 935,\n    Psi: 936,\n    Omega: 937,\n    alpha: 945,\n    beta: 946,\n    gamma: 947,\n    delta: 948,\n    epsilon: 949,\n    zeta: 950,\n    eta: 951,\n    theta: 952,\n    iota: 953,\n    kappa: 954,\n    lambda: 955,\n    mu: 956,\n    nu: 957,\n    xi: 958,\n    omicron: 959,\n    pi: 960,\n    rho: 961,\n    sigmaf: 962,\n    sigma: 963,\n    tau: 964,\n    upsilon: 965,\n    phi: 966,\n    chi: 967,\n    psi: 968,\n    omega: 969,\n    thetasym: 977,\n    upsih: 978,\n    piv: 982,\n    bull: 8226,\n    hellip: 8230,\n    prime: 8242,\n    Prime: 8243,\n    oline: 8254,\n    frasl: 8260,\n    weierp: 8472,\n    image: 8465,\n    real: 8476,\n    trade: 8482,\n    alefsym: 8501,\n    larr: 8592,\n    uarr: 8593,\n    rarr: 8594,\n    darr: 8595,\n    harr: 8596,\n    crarr: 8629,\n    lArr: 8656,\n    uArr: 8657,\n    rArr: 8658,\n    dArr: 8659,\n    hArr: 8660,\n    forall: 8704,\n    part: 8706,\n    exist: 8707,\n    empty: 8709,\n    nabla: 8711,\n    isin: 8712,\n    notin: 8713,\n    ni: 8715,\n    prod: 8719,\n    sum: 8721,\n    minus: 8722,\n    lowast: 8727,\n    radic: 8730,\n    prop: 8733,\n    infin: 8734,\n    ang: 8736,\n    and: 8743,\n    or: 8744,\n    cap: 8745,\n    cup: 8746,\n    int: 8747,\n    there4: 8756,\n    sim: 8764,\n    cong: 8773,\n    asymp: 8776,\n    ne: 8800,\n    equiv: 8801,\n    le: 8804,\n    ge: 8805,\n    sub: 8834,\n    sup: 8835,\n    nsub: 8836,\n    sube: 8838,\n    supe: 8839,\n    oplus: 8853,\n    otimes: 8855,\n    perp: 8869,\n    sdot: 8901,\n    lceil: 8968,\n    rceil: 8969,\n    lfloor: 8970,\n    rfloor: 8971,\n    lang: 9001,\n    rang: 9002,\n    loz: 9674,\n    spades: 9824,\n    clubs: 9827,\n    hearts: 9829,\n    diams: 9830\n  };\n  var PathArguments = {\n    A: 7,\n    a: 7,\n    C: 6,\n    c: 6,\n    H: 1,\n    h: 1,\n    L: 2,\n    l: 2,\n    M: 2,\n    m: 2,\n    Q: 4,\n    q: 4,\n    S: 4,\n    s: 4,\n    T: 2,\n    t: 2,\n    V: 1,\n    v: 1,\n    Z: 0,\n    z: 0\n  };\n  var PathFlags = {\n    A3: true,\n    A4: true,\n    a3: true,\n    a4: true\n  };\n  var Properties = {\n    'color': {\n      inherit: true,\n      initial: undefined\n    },\n    'visibility': {\n      inherit: true,\n      initial: 'visible',\n      values: {\n        'hidden': 'hidden',\n        'collapse': 'hidden',\n        'visible': 'visible'\n      }\n    },\n    'fill': {\n      inherit: true,\n      initial: DefaultColors.black\n    },\n    'stroke': {\n      inherit: true,\n      initial: 'none'\n    },\n    'stop-color': {\n      inherit: false,\n      initial: DefaultColors.black\n    },\n    'fill-opacity': {\n      inherit: true,\n      initial: 1\n    },\n    'stroke-opacity': {\n      inherit: true,\n      initial: 1\n    },\n    'stop-opacity': {\n      inherit: false,\n      initial: 1\n    },\n    'fill-rule': {\n      inherit: true,\n      initial: 'nonzero',\n      values: {\n        'nonzero': 'nonzero',\n        'evenodd': 'evenodd'\n      }\n    },\n    'clip-rule': {\n      inherit: true,\n      initial: 'nonzero',\n      values: {\n        'nonzero': 'nonzero',\n        'evenodd': 'evenodd'\n      }\n    },\n    'stroke-width': {\n      inherit: true,\n      initial: 1\n    },\n    'stroke-dasharray': {\n      inherit: true,\n      initial: []\n    },\n    'stroke-dashoffset': {\n      inherit: true,\n      initial: 0\n    },\n    'stroke-miterlimit': {\n      inherit: true,\n      initial: 4\n    },\n    'stroke-linejoin': {\n      inherit: true,\n      initial: 'miter',\n      values: {\n        'miter': 'miter',\n        'round': 'round',\n        'bevel': 'bevel'\n      }\n    },\n    'stroke-linecap': {\n      inherit: true,\n      initial: 'butt',\n      values: {\n        'butt': 'butt',\n        'round': 'round',\n        'square': 'square'\n      }\n    },\n    'font-size': {\n      inherit: true,\n      initial: 16,\n      values: {\n        'xx-small': 9,\n        'x-small': 10,\n        'small': 13,\n        'medium': 16,\n        'large': 18,\n        'x-large': 24,\n        'xx-large': 32\n      }\n    },\n    'font-family': {\n      inherit: true,\n      initial: 'sans-serif'\n    },\n    'font-weight': {\n      inherit: true,\n      initial: 'normal',\n      values: {\n        '600': 'bold',\n        '700': 'bold',\n        '800': 'bold',\n        '900': 'bold',\n        'bold': 'bold',\n        'bolder': 'bold',\n        '500': 'normal',\n        '400': 'normal',\n        '300': 'normal',\n        '200': 'normal',\n        '100': 'normal',\n        'normal': 'normal',\n        'lighter': 'normal'\n      }\n    },\n    'font-style': {\n      inherit: true,\n      initial: 'normal',\n      values: {\n        'italic': 'italic',\n        'oblique': 'italic',\n        'normal': 'normal'\n      }\n    },\n    'text-anchor': {\n      inherit: true,\n      initial: 'start',\n      values: {\n        'start': 'start',\n        'middle': 'middle',\n        'end': 'end'\n      }\n    },\n    'direction': {\n      inherit: true,\n      initial: 'ltr',\n      values: {\n        'ltr': 'ltr',\n        'rtl': 'rtl'\n      }\n    },\n    'dominant-baseline': {\n      inherit: true,\n      initial: 'baseline',\n      values: {\n        'auto': 'baseline',\n        'baseline': 'baseline',\n        'before-edge': 'before-edge',\n        'text-before-edge': 'before-edge',\n        'middle': 'middle',\n        'central': 'central',\n        'after-edge': 'after-edge',\n        'text-after-edge': 'after-edge',\n        'ideographic': 'ideographic',\n        'alphabetic': 'alphabetic',\n        'hanging': 'hanging',\n        'mathematical': 'mathematical'\n      }\n    },\n    'alignment-baseline': {\n      inherit: false,\n      initial: undefined,\n      values: {\n        'auto': 'baseline',\n        'baseline': 'baseline',\n        'before-edge': 'before-edge',\n        'text-before-edge': 'before-edge',\n        'middle': 'middle',\n        'central': 'central',\n        'after-edge': 'after-edge',\n        'text-after-edge': 'after-edge',\n        'ideographic': 'ideographic',\n        'alphabetic': 'alphabetic',\n        'hanging': 'hanging',\n        'mathematical': 'mathematical'\n      }\n    },\n    'baseline-shift': {\n      inherit: true,\n      initial: 'baseline',\n      values: {\n        'baseline': 'baseline',\n        'sub': 'sub',\n        'super': 'super'\n      }\n    },\n    'word-spacing': {\n      inherit: true,\n      initial: 0,\n      values: {\n        normal: 0\n      }\n    },\n    'letter-spacing': {\n      inherit: true,\n      initial: 0,\n      values: {\n        normal: 0\n      }\n    },\n    'text-decoration': {\n      inherit: false,\n      initial: 'none',\n      values: {\n        'none': 'none',\n        'underline': 'underline',\n        'overline': 'overline',\n        'line-through': 'line-through'\n      }\n    },\n    'xml:space': {\n      inherit: true,\n      initial: 'default',\n      css: 'white-space',\n      values: {\n        'preserve': 'preserve',\n        'default': 'default',\n        'pre': 'preserve',\n        'pre-line': 'preserve',\n        'pre-wrap': 'preserve',\n        'nowrap': 'default'\n      }\n    },\n    'marker-start': {\n      inherit: true,\n      initial: 'none'\n    },\n    'marker-mid': {\n      inherit: true,\n      initial: 'none'\n    },\n    'marker-end': {\n      inherit: true,\n      initial: 'none'\n    },\n    'opacity': {\n      inherit: false,\n      initial: 1\n    },\n    'transform': {\n      inherit: false,\n      initial: [1, 0, 0, 1, 0, 0]\n    },\n    'display': {\n      inherit: false,\n      initial: 'inline',\n      values: {\n        'none': 'none',\n        'inline': 'inline',\n        'block': 'inline'\n      }\n    },\n    'clip-path': {\n      inherit: false,\n      initial: 'none'\n    },\n    'mask': {\n      inherit: false,\n      initial: 'none'\n    },\n    'overflow': {\n      inherit: false,\n      initial: 'hidden',\n      values: {\n        'hidden': 'hidden',\n        'scroll': 'hidden',\n        'visible': 'visible'\n      }\n    }\n  };\n\n  function docBeginGroup(bbox) {\n    var group = new function PDFGroup() {}();\n    group.name = 'G' + (doc._groupCount = (doc._groupCount || 0) + 1);\n    group.resources = doc.ref();\n    group.xobj = doc.ref({\n      Type: 'XObject',\n      Subtype: 'Form',\n      FormType: 1,\n      BBox: bbox,\n      Group: {\n        S: 'Transparency',\n        CS: 'DeviceRGB',\n        I: true,\n        K: false\n      },\n      Resources: group.resources\n    });\n    group.xobj.write('');\n    group.savedMatrix = doc._ctm;\n    group.savedPage = doc.page;\n    groupStack.push(group);\n    doc._ctm = [1, 0, 0, 1, 0, 0];\n    doc.page = {\n      width: doc.page.width,\n      height: doc.page.height,\n      write: function write(data) {\n        group.xobj.write(data);\n      },\n      fonts: {},\n      xobjects: {},\n      ext_gstates: {},\n      patterns: {}\n    };\n    return group;\n  }\n\n  function docEndGroup(group) {\n    if (group !== groupStack.pop()) {\n      throw 'Group not matching';\n    }\n\n    if (Object.keys(doc.page.fonts).length) {\n      group.resources.data.Font = doc.page.fonts;\n    }\n\n    if (Object.keys(doc.page.xobjects).length) {\n      group.resources.data.XObject = doc.page.xobjects;\n    }\n\n    if (Object.keys(doc.page.ext_gstates).length) {\n      group.resources.data.ExtGState = doc.page.ext_gstates;\n    }\n\n    if (Object.keys(doc.page.patterns).length) {\n      group.resources.data.Pattern = doc.page.patterns;\n    }\n\n    group.resources.end();\n    group.xobj.end();\n    doc._ctm = group.savedMatrix;\n    doc.page = group.savedPage;\n  }\n\n  function docInsertGroup(group) {\n    doc.page.xobjects[group.name] = group.xobj;\n    doc.addContent('/' + group.name + ' Do');\n  }\n\n  function docApplyMask(group, clip) {\n    var name = 'M' + (doc._maskCount = (doc._maskCount || 0) + 1);\n    var gstate = doc.ref({\n      Type: 'ExtGState',\n      CA: 1,\n      ca: 1,\n      BM: 'Normal',\n      SMask: {\n        S: 'Luminosity',\n        G: group.xobj,\n        BC: clip ? [0, 0, 0] : [1, 1, 1]\n      }\n    });\n    gstate.end();\n    doc.page.ext_gstates[name] = gstate;\n    doc.addContent('/' + name + ' gs');\n  }\n\n  function docCreatePattern(group, dx, dy, matrix) {\n    var pattern = new function PDFPattern() {}();\n    pattern.group = group;\n    pattern.dx = dx;\n    pattern.dy = dy;\n    pattern.matrix = matrix || [1, 0, 0, 1, 0, 0];\n    return pattern;\n  }\n\n  function docUsePattern(pattern, stroke) {\n    var name = 'P' + (doc._patternCount = (doc._patternCount || 0) + 1);\n    var ref = doc.ref({\n      Type: 'Pattern',\n      PatternType: 1,\n      PaintType: 1,\n      TilingType: 2,\n      BBox: [0, 0, pattern.dx, pattern.dy],\n      XStep: pattern.dx,\n      YStep: pattern.dy,\n      Matrix: multiplyMatrix(doc._ctm, pattern.matrix),\n      Resources: {\n        ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n        XObject: function () {\n          var temp = {};\n          temp[pattern.group.name] = pattern.group.xobj;\n          return temp;\n        }()\n      }\n    });\n    ref.write('/' + pattern.group.name + ' Do');\n    ref.end();\n    doc.page.patterns[name] = ref;\n\n    if (stroke) {\n      doc.addContent('/Pattern CS');\n      doc.addContent('/' + name + ' SCN');\n    } else {\n      doc.addContent('/Pattern cs');\n      doc.addContent('/' + name + ' scn');\n    }\n  }\n\n  function docBeginText(font, size) {\n    if (!doc.page.fonts[font.id]) {\n      doc.page.fonts[font.id] = font.ref();\n    }\n\n    doc.addContent('BT').addContent('/' + font.id + ' ' + size + ' Tf');\n  }\n\n  function docSetTextMatrix(a, b, c, d, e, f) {\n    doc.addContent(validateNumber(a) + ' ' + validateNumber(b) + ' ' + validateNumber(-c) + ' ' + validateNumber(-d) + ' ' + validateNumber(e) + ' ' + validateNumber(f) + ' Tm');\n  }\n\n  function docSetTextMode(fill, stroke) {\n    var mode = fill && stroke ? 2 : stroke ? 1 : fill ? 0 : 3;\n    doc.addContent(mode + ' Tr');\n  }\n\n  function docWriteGlyph(glyph) {\n    doc.addContent('<' + glyph + '> Tj');\n  }\n\n  function docEndText() {\n    doc.addContent('ET');\n  }\n\n  function docFillColor(color) {\n    if (color[0].constructor.name === 'PDFPattern') {\n      doc.fillOpacity(color[1]);\n      docUsePattern(color[0], false);\n    } else {\n      doc.fillColor(color[0], color[1]);\n    }\n  }\n\n  function docStrokeColor(color) {\n    if (color[0].constructor.name === 'PDFPattern') {\n      doc.strokeOpacity(color[1]);\n      docUsePattern(color[0], true);\n    } else {\n      doc.strokeColor(color[0], color[1]);\n    }\n  }\n\n  function docInsertLink(x, y, w, h, url) {\n    var ref = doc.ref({\n      Type: 'Annot',\n      Subtype: 'Link',\n      Rect: [x, y, w, h],\n      Border: [0, 0, 0],\n      A: {\n        S: 'URI',\n        URI: new String(url)\n      }\n    });\n    ref.end();\n    links.push(ref);\n  }\n\n  function parseXml(xml) {\n    var SvgNode = function SvgNode(tag, type, value, error) {\n      this.error = error;\n      this.nodeName = tag;\n      this.nodeValue = value;\n      this.nodeType = type;\n      this.attributes = Object.create(null);\n      this.childNodes = [];\n      this.parentNode = null;\n      this.id = '';\n      this.textContent = '';\n      this.classList = [];\n    };\n\n    SvgNode.prototype.getAttribute = function (attr) {\n      return this.attributes[attr] != null ? this.attributes[attr] : null;\n    };\n\n    SvgNode.prototype.getElementById = function (id) {\n      var result = null;\n\n      (function recursive(node) {\n        if (result) {\n          return;\n        }\n\n        if (node.nodeType === 1) {\n          if (node.id === id) {\n            result = node;\n          }\n\n          for (var i = 0; i < node.childNodes.length; i++) {\n            recursive(node.childNodes[i]);\n          }\n        }\n      })(this);\n\n      return result;\n    };\n\n    SvgNode.prototype.getElementsByTagName = function (tag) {\n      var result = [];\n\n      (function recursive(node) {\n        if (node.nodeType === 1) {\n          if (node.nodeName === tag) {\n            result.push(node);\n          }\n\n          for (var i = 0; i < node.childNodes.length; i++) {\n            recursive(node.childNodes[i]);\n          }\n        }\n      })(this);\n\n      return result;\n    };\n\n    var parser = new StringParser(xml.trim()),\n        result,\n        child,\n        error = false;\n\n    var recursive = function recursive() {\n      var temp, child;\n\n      if (temp = parser.match(/^<([\\w:.-]+)\\s*/, true)) {\n        // Opening tag\n        var node = new SvgNode(temp[1], 1, null, error);\n\n        while (temp = parser.match(/^([\\w:.-]+)(?:\\s*=\\s*\"([^\"]*)\"|\\s*=\\s*'([^']*)')?\\s*/, true)) {\n          // Attribute\n          var attr = temp[1],\n              value = decodeEntities(temp[2] || temp[3] || '');\n\n          if (!node.attributes[attr]) {\n            node.attributes[attr] = value;\n\n            if (attr === 'id') {\n              node.id = value;\n            }\n\n            if (attr === 'class') {\n              node.classList = value.split(' ');\n            }\n          } else {\n            warningCallback('parseXml: duplicate attribute \"' + attr + '\"');\n            error = true;\n          }\n        }\n\n        if (parser.match(/^>/)) {\n          // End of opening tag\n          while (child = recursive()) {\n            node.childNodes.push(child);\n            child.parentNode = node;\n            node.textContent += child.nodeType === 3 || child.nodeType === 4 ? child.nodeValue : child.textContent;\n          }\n\n          if (temp = parser.match(/^<\\/([\\w:.-]+)\\s*>/, true)) {\n            // Closing tag\n            if (temp[1] === node.nodeName) {\n              return node;\n            } else {\n              warningCallback('parseXml: tag not matching, opening \"' + node.nodeName + '\" & closing \"' + temp[1] + '\"');\n              error = true;\n              return node;\n            }\n          } else {\n            warningCallback('parseXml: tag not matching, opening \"' + node.nodeName + '\" & not closing');\n            error = true;\n            return node;\n          }\n        } else if (parser.match(/^\\/>/)) {\n          // Self-closing tag\n          return node;\n        } else {\n          warningCallback('parseXml: tag could not be parsed \"' + node.nodeName + '\"');\n          error = true;\n        }\n      } else if (temp = parser.match(/^<!--[\\s\\S]*?-->/)) {\n        // Comment\n        return new SvgNode(null, 8, temp, error);\n      } else if (temp = parser.match(/^<\\?[\\s\\S]*?\\?>/)) {\n        // Processing instructions\n        return new SvgNode(null, 7, temp, error);\n      } else if (temp = parser.match(/^<!DOCTYPE\\s*([\\s\\S]*?)>/)) {\n        // Doctype\n        return new SvgNode(null, 10, temp, error);\n      } else if (temp = parser.match(/^<!\\[CDATA\\[([\\s\\S]*?)\\]\\]>/, true)) {\n        // Cdata node\n        return new SvgNode('#cdata-section', 4, temp[1], error);\n      } else if (temp = parser.match(/^([^<]+)/, true)) {\n        // Text node\n        return new SvgNode('#text', 3, decodeEntities(temp[1]), error);\n      }\n    };\n\n    while (child = recursive()) {\n      if (child.nodeType === 1 && !result) {\n        result = child;\n      } else if (child.nodeType === 1 || child.nodeType === 3 && child.nodeValue.trim() !== '') {\n        warningCallback('parseXml: data after document end has been discarded');\n      }\n    }\n\n    if (parser.matchAll()) {\n      warningCallback('parseXml: parsing error');\n    }\n\n    return result;\n  }\n\n  ;\n\n  function decodeEntities(str) {\n    return str.replace(/&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g, function (mt, m0, m1, m2) {\n      if (m0) {\n        return String.fromCharCode(parseInt(m0, 10));\n      } else if (m1) {\n        return String.fromCharCode(parseInt(m1, 16));\n      } else if (m2 && Entities[m2]) {\n        return String.fromCharCode(Entities[m2]);\n      } else {\n        return mt;\n      }\n    });\n  }\n\n  function parseColor(raw) {\n    var temp, result;\n    raw = (raw || '').trim();\n\n    if (temp = NamedColors[raw]) {\n      result = [temp.slice(), 1];\n    } else if (temp = raw.match(/^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i)) {\n      temp[1] = parseInt(temp[1]);\n      temp[2] = parseInt(temp[2]);\n      temp[3] = parseInt(temp[3]);\n      temp[4] = parseFloat(temp[4]);\n\n      if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256 && temp[4] <= 1) {\n        result = [temp.slice(1, 4), temp[4]];\n      }\n    } else if (temp = raw.match(/^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)$/i)) {\n      temp[1] = parseInt(temp[1]);\n      temp[2] = parseInt(temp[2]);\n      temp[3] = parseInt(temp[3]);\n\n      if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n        result = [temp.slice(1, 4), 1];\n      }\n    } else if (temp = raw.match(/^rgb\\(\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*\\)$/i)) {\n      temp[1] = 2.55 * parseFloat(temp[1]);\n      temp[2] = 2.55 * parseFloat(temp[2]);\n      temp[3] = 2.55 * parseFloat(temp[3]);\n\n      if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n        result = [temp.slice(1, 4), 1];\n      }\n    } else if (temp = raw.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i)) {\n      result = [[parseInt(temp[1], 16), parseInt(temp[2], 16), parseInt(temp[3], 16)], 1];\n    } else if (temp = raw.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i)) {\n      result = [[0x11 * parseInt(temp[1], 16), 0x11 * parseInt(temp[2], 16), 0x11 * parseInt(temp[3], 16)], 1];\n    }\n\n    return colorCallback ? colorCallback(result, raw) : result;\n  }\n\n  function opacityToColor(color, opacity, isMask) {\n    var newColor = color[0].slice(),\n        newOpacity = color[1] * opacity;\n\n    if (isMask) {\n      for (var i = 0; i < color.length; i++) {\n        newColor[i] *= newOpacity;\n      }\n\n      return [newColor, 1];\n    } else {\n      return [newColor, newOpacity];\n    }\n  }\n\n  function multiplyMatrix() {\n    function multiply(a, b) {\n      return [a[0] * b[0] + a[2] * b[1], a[1] * b[0] + a[3] * b[1], a[0] * b[2] + a[2] * b[3], a[1] * b[2] + a[3] * b[3], a[0] * b[4] + a[2] * b[5] + a[4], a[1] * b[4] + a[3] * b[5] + a[5]];\n    }\n\n    var result = arguments[0];\n\n    for (var i = 1; i < arguments.length; i++) {\n      result = multiply(result, arguments[i]);\n    }\n\n    return result;\n  }\n\n  function transformPoint(p, m) {\n    return [m[0] * p[0] + m[2] * p[1] + m[4], m[1] * p[0] + m[3] * p[1] + m[5]];\n  }\n\n  function getGlobalMatrix() {\n    var ctm = doc._ctm;\n\n    for (var i = groupStack.length - 1; i >= 0; i--) {\n      ctm = multiplyMatrix(groupStack[i].savedMatrix, ctm);\n    }\n\n    return ctm;\n  }\n\n  function getPageBBox() {\n    return new SvgShape().M(0, 0).L(doc.page.width, 0).L(doc.page.width, doc.page.height).L(0, doc.page.height).transform(inverseMatrix(getGlobalMatrix())).getBoundingBox();\n  }\n\n  function inverseMatrix(m) {\n    var dt = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / dt, -m[1] / dt, -m[2] / dt, m[0] / dt, (m[2] * m[5] - m[3] * m[4]) / dt, (m[1] * m[4] - m[0] * m[5]) / dt];\n  }\n\n  function validateMatrix(m) {\n    var m0 = validateNumber(m[0]),\n        m1 = validateNumber(m[1]),\n        m2 = validateNumber(m[2]),\n        m3 = validateNumber(m[3]),\n        m4 = validateNumber(m[4]),\n        m5 = validateNumber(m[5]);\n\n    if (isNotEqual(m0 * m3 - m1 * m2, 0)) {\n      return [m0, m1, m2, m3, m4, m5];\n    }\n  }\n\n  function solveEquation(curve) {\n    var a = curve[2] || 0,\n        b = curve[1] || 0,\n        c = curve[0] || 0;\n\n    if (isEqual(a, 0) && isEqual(b, 0)) {\n      return [];\n    } else if (isEqual(a, 0)) {\n      return [-c / b];\n    } else {\n      var d = b * b - 4 * a * c;\n\n      if (isNotEqual(d, 0) && d > 0) {\n        return [(-b + Math.sqrt(d)) / (2 * a), (-b - Math.sqrt(d)) / (2 * a)];\n      } else if (isEqual(d, 0)) {\n        return [-b / (2 * a)];\n      } else {\n        return [];\n      }\n    }\n  }\n\n  function getCurveValue(t, curve) {\n    return (curve[0] || 0) + (curve[1] || 0) * t + (curve[2] || 0) * t * t + (curve[3] || 0) * t * t * t;\n  }\n\n  function isEqual(number, ref) {\n    return Math.abs(number - ref) < 1e-10;\n  }\n\n  function isNotEqual(number, ref) {\n    return Math.abs(number - ref) >= 1e-10;\n  }\n\n  function validateNumber(n) {\n    return n > -1e21 && n < 1e21 ? Math.round(n * 1e6) / 1e6 : 0;\n  }\n\n  function isArrayLike(v) {\n    return typeof v === 'object' && v !== null && typeof v.length === 'number';\n  }\n\n  function parseTranform(v) {\n    var parser = new StringParser((v || '').trim()),\n        result = [1, 0, 0, 1, 0, 0],\n        temp;\n\n    while (temp = parser.match(/^([A-Za-z]+)\\s*[(]([^(]+)[)]/, true)) {\n      var func = temp[1],\n          nums = [],\n          parser2 = new StringParser(temp[2].trim()),\n          temp2 = void 0;\n\n      while (temp2 = parser2.matchNumber()) {\n        nums.push(Number(temp2));\n        parser2.matchSeparator();\n      }\n\n      if (func === 'matrix' && nums.length === 6) {\n        result = multiplyMatrix(result, [nums[0], nums[1], nums[2], nums[3], nums[4], nums[5]]);\n      } else if (func === 'translate' && nums.length === 2) {\n        result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], nums[1]]);\n      } else if (func === 'translate' && nums.length === 1) {\n        result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], 0]);\n      } else if (func === 'scale' && nums.length === 2) {\n        result = multiplyMatrix(result, [nums[0], 0, 0, nums[1], 0, 0]);\n      } else if (func === 'scale' && nums.length === 1) {\n        result = multiplyMatrix(result, [nums[0], 0, 0, nums[0], 0, 0]);\n      } else if (func === 'rotate' && nums.length === 3) {\n        var a = nums[0] * Math.PI / 180;\n        result = multiplyMatrix(result, [1, 0, 0, 1, nums[1], nums[2]], [Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0], [1, 0, 0, 1, -nums[1], -nums[2]]);\n      } else if (func === 'rotate' && nums.length === 1) {\n        var _a = nums[0] * Math.PI / 180;\n\n        result = multiplyMatrix(result, [Math.cos(_a), Math.sin(_a), -Math.sin(_a), Math.cos(_a), 0, 0]);\n      } else if (func === 'skewX' && nums.length === 1) {\n        var _a2 = nums[0] * Math.PI / 180;\n\n        result = multiplyMatrix(result, [1, 0, Math.tan(_a2), 1, 0, 0]);\n      } else if (func === 'skewY' && nums.length === 1) {\n        var _a3 = nums[0] * Math.PI / 180;\n\n        result = multiplyMatrix(result, [1, Math.tan(_a3), 0, 1, 0, 0]);\n      } else {\n        return;\n      }\n\n      parser.matchSeparator();\n    }\n\n    if (parser.matchAll()) {\n      return;\n    }\n\n    return result;\n  }\n\n  function parseAspectRatio(aspectRatio, availWidth, availHeight, elemWidth, elemHeight, initAlign) {\n    var temp = (aspectRatio || '').trim().match(/^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\\s+(meet|slice))?$/) || [],\n        ratioType = temp[1] || temp[4] || 'meet',\n        xAlign = temp[2] || 'Mid',\n        yAlign = temp[3] || 'Mid',\n        scaleX = availWidth / elemWidth,\n        scaleY = availHeight / elemHeight,\n        dx = {\n      'Min': 0,\n      'Mid': 0.5,\n      'Max': 1\n    }[xAlign] - (initAlign || 0),\n        dy = {\n      'Min': 0,\n      'Mid': 0.5,\n      'Max': 1\n    }[yAlign] - (initAlign || 0);\n\n    if (ratioType === 'slice') {\n      scaleY = scaleX = Math.max(scaleX, scaleY);\n    } else if (ratioType === 'meet') {\n      scaleY = scaleX = Math.min(scaleX, scaleY);\n    }\n\n    return [scaleX, 0, 0, scaleY, dx * (availWidth - elemWidth * scaleX), dy * (availHeight - elemHeight * scaleY)];\n  }\n\n  function parseStyleAttr(v) {\n    var result = Object.create(null);\n    v = (v || '').trim().split(/;/);\n\n    for (var i = 0; i < v.length; i++) {\n      var key = (v[i].split(':')[0] || '').trim(),\n          value = (v[i].split(':')[1] || '').trim();\n\n      if (key) {\n        result[key] = value;\n      }\n    }\n\n    if (result['marker']) {\n      if (!result['marker-start']) {\n        result['marker-start'] = result['marker'];\n      }\n\n      if (!result['marker-mid']) {\n        result['marker-mid'] = result['marker'];\n      }\n\n      if (!result['marker-end']) {\n        result['marker-end'] = result['marker'];\n      }\n    }\n\n    if (result['font']) {\n      var fontFamily = null,\n          fontSize = null,\n          fontStyle = \"normal\",\n          fontWeight = \"normal\",\n          fontVariant = \"normal\";\n      var parts = result['font'].split(/\\s+/);\n\n      for (var _i = 0; _i < parts.length; _i++) {\n        switch (parts[_i]) {\n          case \"normal\":\n            break;\n\n          case \"italic\":\n          case \"oblique\":\n            fontStyle = parts[_i];\n            break;\n\n          case \"small-caps\":\n            fontVariant = parts[_i];\n            break;\n\n          case \"bold\":\n          case \"bolder\":\n          case \"lighter\":\n          case \"100\":\n          case \"200\":\n          case \"300\":\n          case \"400\":\n          case \"500\":\n          case \"600\":\n          case \"700\":\n          case \"800\":\n          case \"900\":\n            fontWeight = parts[_i];\n            break;\n\n          default:\n            if (!fontSize) {\n              fontSize = parts[_i].split('/')[0];\n            } else {\n              if (!fontFamily) {\n                fontFamily = parts[_i];\n              } else {\n                fontFamily += ' ' + parts[_i];\n              }\n            }\n\n            break;\n        }\n      }\n\n      if (!result['font-style']) {\n        result['font-style'] = fontStyle;\n      }\n\n      if (!result['font-variant']) {\n        result['font-variant'] = fontVariant;\n      }\n\n      if (!result['font-weight']) {\n        result['font-weight'] = fontWeight;\n      }\n\n      if (!result['font-size']) {\n        result['font-size'] = fontSize;\n      }\n\n      if (!result['font-family']) {\n        result['font-family'] = fontFamily;\n      }\n    }\n\n    return result;\n  }\n\n  function parseSelector(v) {\n    var parts = v.split(/(?=[.#])/g),\n        ids = [],\n        classes = [],\n        tags = [],\n        temp;\n\n    for (var i = 0; i < parts.length; i++) {\n      if (temp = parts[i].match(/^[#]([_A-Za-z0-9-]+)$/)) {\n        ids.push(temp[1]);\n      } else if (temp = parts[i].match(/^[.]([_A-Za-z0-9-]+)$/)) {\n        classes.push(temp[1]);\n      } else if (temp = parts[i].match(/^([_A-Za-z0-9-]+)$/)) {\n        tags.push(temp[1]);\n      } else if (parts[i] !== '*') {\n        return;\n      }\n    }\n\n    return {\n      tags: tags,\n      ids: ids,\n      classes: classes,\n      specificity: ids.length * 10000 + classes.length * 100 + tags.length\n    };\n  }\n\n  function parseStyleSheet(v) {\n    var parser = new StringParser(v.trim()),\n        rules = [],\n        rule;\n\n    while (rule = parser.match(/^\\s*([^\\{\\}]*?)\\s*\\{([^\\{\\}]*?)\\}/, true)) {\n      var selectors = rule[1].split(/\\s*,\\s*/g),\n          css = parseStyleAttr(rule[2]);\n\n      for (var i = 0; i < selectors.length; i++) {\n        var selector = parseSelector(selectors[i]);\n\n        if (selector) {\n          rules.push({\n            selector: selector,\n            css: css\n          });\n        }\n      }\n    }\n\n    return rules;\n  }\n\n  function matchesSelector(elem, selector) {\n    if (elem.nodeType !== 1) {\n      return false;\n    }\n\n    for (var i = 0; i < selector.tags.length; i++) {\n      if (selector.tags[i] !== elem.nodeName) {\n        return false;\n      }\n    }\n\n    for (var _i2 = 0; _i2 < selector.ids.length; _i2++) {\n      if (selector.ids[_i2] !== elem.id) {\n        return false;\n      }\n    }\n\n    for (var _i3 = 0; _i3 < selector.classes.length; _i3++) {\n      if (elem.classList.indexOf(selector.classes[_i3]) === -1) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function getStyle(elem) {\n    var result = Object.create(null);\n    var specificities = Object.create(null);\n\n    for (var i = 0; i < styleRules.length; i++) {\n      var rule = styleRules[i];\n\n      if (matchesSelector(elem, rule.selector)) {\n        for (var key in rule.css) {\n          if (!(specificities[key] > rule.selector.specificity)) {\n            result[key] = rule.css[key];\n            specificities[key] = rule.selector.specificity;\n          }\n        }\n      }\n    }\n\n    return result;\n  }\n\n  function combineArrays(array1, array2) {\n    return array1.concat(array2.slice(array1.length));\n  }\n\n  function getAscent(font, size) {\n    return Math.max(font.ascender, (font.bbox[3] || font.bbox.maxY) * (font.scale || 1)) * size / 1000;\n  }\n\n  function getDescent(font, size) {\n    return Math.min(font.descender, (font.bbox[1] || font.bbox.minY) * (font.scale || 1)) * size / 1000;\n  }\n\n  function getXHeight(font, size) {\n    return (font.xHeight || 0.5 * (font.ascender - font.descender)) * size / 1000;\n  }\n\n  function getBaseline(font, size, baseline, shift) {\n    var dy1, dy2;\n\n    switch (baseline) {\n      case 'middle':\n        dy1 = 0.5 * getXHeight(font, size);\n        break;\n\n      case 'central':\n        dy1 = 0.5 * (getDescent(font, size) + getAscent(font, size));\n        break;\n\n      case 'after-edge':\n      case 'text-after-edge':\n        dy1 = getDescent(font, size);\n        break;\n\n      case 'alphabetic':\n      case 'auto':\n      case 'baseline':\n        dy1 = 0;\n        break;\n\n      case 'mathematical':\n        dy1 = 0.5 * getAscent(font, size);\n        break;\n\n      case 'hanging':\n        dy1 = 0.8 * getAscent(font, size);\n        break;\n\n      case 'before-edge':\n      case 'text-before-edge':\n        dy1 = getAscent(font, size);\n        break;\n\n      default:\n        dy1 = 0;\n        break;\n    }\n\n    switch (shift) {\n      case 'baseline':\n        dy2 = 0;\n        break;\n\n      case 'super':\n        dy2 = 0.6 * size;\n        break;\n\n      case 'sub':\n        dy2 = -0.6 * size;\n        break;\n\n      default:\n        dy2 = shift;\n        break;\n    }\n\n    return dy1 - dy2;\n  }\n\n  function getTextPos(font, size, text) {\n    var encoded = font.encode('' + text),\n        hex = encoded[0],\n        pos = encoded[1],\n        data = [];\n\n    for (var i = 0; i < hex.length; i++) {\n      var unicode = font.unicode ? font.unicode[parseInt(hex[i], 16)] : [text.charCodeAt(i)];\n      data.push({\n        glyph: hex[i],\n        unicode: unicode,\n        width: pos[i].advanceWidth * size / 1000,\n        xOffset: pos[i].xOffset * size / 1000,\n        yOffset: pos[i].yOffset * size / 1000,\n        xAdvance: pos[i].xAdvance * size / 1000,\n        yAdvance: pos[i].yAdvance * size / 1000\n      });\n    }\n\n    return data;\n  }\n\n  function createSVGElement(obj, inherits) {\n    switch (obj.nodeName) {\n      case 'use':\n        return new SvgElemUse(obj, inherits);\n\n      case 'symbol':\n        return new SvgElemSymbol(obj, inherits);\n\n      case 'g':\n        return new SvgElemGroup(obj, inherits);\n\n      case 'a':\n        return new SvgElemLink(obj, inherits);\n\n      case 'svg':\n        return new SvgElemSvg(obj, inherits);\n\n      case 'image':\n        return new SVGElemImage(obj, inherits);\n\n      case 'rect':\n        return new SvgElemRect(obj, inherits);\n\n      case 'circle':\n        return new SvgElemCircle(obj, inherits);\n\n      case 'ellipse':\n        return new SvgElemEllipse(obj, inherits);\n\n      case 'line':\n        return new SvgElemLine(obj, inherits);\n\n      case 'polyline':\n        return new SvgElemPolyline(obj, inherits);\n\n      case 'polygon':\n        return new SvgElemPolygon(obj, inherits);\n\n      case 'path':\n        return new SvgElemPath(obj, inherits);\n\n      case 'text':\n        return new SvgElemText(obj, inherits);\n\n      case 'tspan':\n        return new SvgElemTspan(obj, inherits);\n\n      case 'textPath':\n        return new SvgElemTextPath(obj, inherits);\n\n      case '#text':\n      case '#cdata-section':\n        return new SvgElemTextNode(obj, inherits);\n\n      default:\n        return new SvgElem(obj, inherits);\n    }\n  }\n\n  var StringParser = function StringParser(str) {\n    this.match = function (exp, all) {\n      var temp = str.match(exp);\n\n      if (!temp || temp.index !== 0) {\n        return;\n      }\n\n      str = str.substring(temp[0].length);\n      return all ? temp : temp[0];\n    };\n\n    this.matchSeparator = function () {\n      return this.match(/^(?:\\s*,\\s*|\\s*|)/);\n    };\n\n    this.matchSpace = function () {\n      return this.match(/^(?:\\s*)/);\n    };\n\n    this.matchLengthUnit = function () {\n      return this.match(/^(?:px|pt|cm|mm|in|pc|em|ex|%|)/);\n    };\n\n    this.matchNumber = function () {\n      return this.match(/^(?:[-+]?(?:[0-9]+[.][0-9]+|[0-9]+[.]|[.][0-9]+|[0-9]+)(?:[eE][-+]?[0-9]+)?)/);\n    };\n\n    this.matchAll = function () {\n      return this.match(/^[\\s\\S]+/);\n    };\n  };\n\n  var BezierSegment = function BezierSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n    var divisions = 6 * precision;\n    var equationX = [p1x, -3 * p1x + 3 * c1x, 3 * p1x - 6 * c1x + 3 * c2x, -p1x + 3 * c1x - 3 * c2x + p2x];\n    var equationY = [p1y, -3 * p1y + 3 * c1y, 3 * p1y - 6 * c1y + 3 * c2y, -p1y + 3 * c1y - 3 * c2y + p2y];\n    var derivativeX = [-3 * p1x + 3 * c1x, 6 * p1x - 12 * c1x + 6 * c2x, -3 * p1x + 9 * c1x - 9 * c2x + 3 * p2x];\n    var derivativeY = [-3 * p1y + 3 * c1y, 6 * p1y - 12 * c1y + 6 * c2y, -3 * p1y + 9 * c1y - 9 * c2y + 3 * p2y];\n    var lengthMap = [0];\n\n    for (var i = 1; i <= divisions; i++) {\n      var t = (i - 0.5) / divisions;\n      var dx = getCurveValue(t, derivativeX) / divisions,\n          dy = getCurveValue(t, derivativeY) / divisions,\n          l = Math.sqrt(dx * dx + dy * dy);\n      lengthMap[i] = lengthMap[i - 1] + l;\n    }\n\n    this.totalLength = lengthMap[divisions];\n    this.startPoint = [p1x, p1y, isEqual(p1x, c1x) && isEqual(p1y, c1y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(c1y - p1y, c1x - p1x)];\n    this.endPoint = [p2x, p2y, isEqual(c2x, p2x) && isEqual(c2y, p2y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(p2y - c2y, p2x - c2x)];\n\n    this.getBoundingBox = function () {\n      var temp;\n      var minX = getCurveValue(0, equationX),\n          minY = getCurveValue(0, equationY),\n          maxX = getCurveValue(1, equationX),\n          maxY = getCurveValue(1, equationY);\n\n      if (minX > maxX) {\n        temp = maxX;\n        maxX = minX;\n        minX = temp;\n      }\n\n      if (minY > maxY) {\n        temp = maxY;\n        maxY = minY;\n        minY = temp;\n      }\n\n      var rootsX = solveEquation(derivativeX);\n\n      for (var _i4 = 0; _i4 < rootsX.length; _i4++) {\n        if (rootsX[_i4] >= 0 && rootsX[_i4] <= 1) {\n          var _x = getCurveValue(rootsX[_i4], equationX);\n\n          if (_x < minX) {\n            minX = _x;\n          }\n\n          if (_x > maxX) {\n            maxX = _x;\n          }\n        }\n      }\n\n      var rootsY = solveEquation(derivativeY);\n\n      for (var _i5 = 0; _i5 < rootsY.length; _i5++) {\n        if (rootsY[_i5] >= 0 && rootsY[_i5] <= 1) {\n          var _y = getCurveValue(rootsY[_i5], equationY);\n\n          if (_y < minY) {\n            minY = _y;\n          }\n\n          if (_y > maxY) {\n            maxY = _y;\n          }\n        }\n      }\n\n      return [minX, minY, maxX, maxY];\n    };\n\n    this.getPointAtLength = function (l) {\n      if (isEqual(l, 0)) {\n        return this.startPoint;\n      }\n\n      if (isEqual(l, this.totalLength)) {\n        return this.endPoint;\n      }\n\n      if (l < 0 || l > this.totalLength) {\n        return;\n      }\n\n      for (var _i6 = 1; _i6 <= divisions; _i6++) {\n        var l1 = lengthMap[_i6 - 1],\n            l2 = lengthMap[_i6];\n\n        if (l1 <= l && l <= l2) {\n          var _t = (_i6 - (l2 - l) / (l2 - l1)) / divisions,\n              _x2 = getCurveValue(_t, equationX),\n              _y2 = getCurveValue(_t, equationY),\n              _dx = getCurveValue(_t, derivativeX),\n              _dy = getCurveValue(_t, derivativeY);\n\n          return [_x2, _y2, Math.atan2(_dy, _dx)];\n        }\n      }\n    };\n  };\n\n  var LineSegment = function LineSegment(p1x, p1y, p2x, p2y) {\n    this.totalLength = Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y));\n    this.startPoint = [p1x, p1y, Math.atan2(p2y - p1y, p2x - p1x)];\n    this.endPoint = [p2x, p2y, Math.atan2(p2y - p1y, p2x - p1x)];\n\n    this.getBoundingBox = function () {\n      return [Math.min(this.startPoint[0], this.endPoint[0]), Math.min(this.startPoint[1], this.endPoint[1]), Math.max(this.startPoint[0], this.endPoint[0]), Math.max(this.startPoint[1], this.endPoint[1])];\n    };\n\n    this.getPointAtLength = function (l) {\n      if (l >= 0 && l <= this.totalLength) {\n        var r = l / this.totalLength || 0,\n            _x3 = this.startPoint[0] + r * (this.endPoint[0] - this.startPoint[0]),\n            _y3 = this.startPoint[1] + r * (this.endPoint[1] - this.startPoint[1]);\n\n        return [_x3, _y3, this.startPoint[2]];\n      }\n    };\n  };\n\n  var SvgShape = function SvgShape() {\n    this.pathCommands = [];\n    this.pathSegments = [];\n    this.startPoint = null;\n    this.endPoint = null;\n    this.totalLength = 0;\n    var startX = 0,\n        startY = 0,\n        currX = 0,\n        currY = 0,\n        lastCom,\n        lastCtrlX,\n        lastCtrlY;\n\n    this.move = function (x, y) {\n      startX = currX = x;\n      startY = currY = y;\n      return null;\n    };\n\n    this.line = function (x, y) {\n      var segment = new LineSegment(currX, currY, x, y);\n      currX = x;\n      currY = y;\n      return segment;\n    };\n\n    this.curve = function (c1x, c1y, c2x, c2y, x, y) {\n      var segment = new BezierSegment(currX, currY, c1x, c1y, c2x, c2y, x, y);\n      currX = x;\n      currY = y;\n      return segment;\n    };\n\n    this.close = function () {\n      var segment = new LineSegment(currX, currY, startX, startY);\n      currX = startX;\n      currY = startY;\n      return segment;\n    };\n\n    this.addCommand = function (data) {\n      this.pathCommands.push(data);\n      var segment = this[data[0]].apply(this, data.slice(3));\n\n      if (segment) {\n        segment.hasStart = data[1];\n        segment.hasEnd = data[2];\n        this.startPoint = this.startPoint || segment.startPoint;\n        this.endPoint = segment.endPoint;\n        this.pathSegments.push(segment);\n        this.totalLength += segment.totalLength;\n      }\n    };\n\n    this.M = function (x, y) {\n      this.addCommand(['move', true, true, x, y]);\n      lastCom = 'M';\n      return this;\n    };\n\n    this.m = function (x, y) {\n      return this.M(currX + x, currY + y);\n    };\n\n    this.Z = this.z = function () {\n      this.addCommand(['close', true, true]);\n      lastCom = 'Z';\n      return this;\n    };\n\n    this.L = function (x, y) {\n      this.addCommand(['line', true, true, x, y]);\n      lastCom = 'L';\n      return this;\n    };\n\n    this.l = function (x, y) {\n      return this.L(currX + x, currY + y);\n    };\n\n    this.H = function (x) {\n      return this.L(x, currY);\n    };\n\n    this.h = function (x) {\n      return this.L(currX + x, currY);\n    };\n\n    this.V = function (y) {\n      return this.L(currX, y);\n    };\n\n    this.v = function (y) {\n      return this.L(currX, currY + y);\n    };\n\n    this.C = function (c1x, c1y, c2x, c2y, x, y) {\n      this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n      lastCom = 'C';\n      lastCtrlX = c2x;\n      lastCtrlY = c2y;\n      return this;\n    };\n\n    this.c = function (c1x, c1y, c2x, c2y, x, y) {\n      return this.C(currX + c1x, currY + c1y, currX + c2x, currY + c2y, currX + x, currY + y);\n    };\n\n    this.S = function (c1x, c1y, x, y) {\n      return this.C(currX + (lastCom === 'C' ? currX - lastCtrlX : 0), currY + (lastCom === 'C' ? currY - lastCtrlY : 0), c1x, c1y, x, y);\n    };\n\n    this.s = function (c1x, c1y, x, y) {\n      return this.C(currX + (lastCom === 'C' ? currX - lastCtrlX : 0), currY + (lastCom === 'C' ? currY - lastCtrlY : 0), currX + c1x, currY + c1y, currX + x, currY + y);\n    };\n\n    this.Q = function (cx, cy, x, y) {\n      var c1x = currX + 2 / 3 * (cx - currX),\n          c1y = currY + 2 / 3 * (cy - currY),\n          c2x = x + 2 / 3 * (cx - x),\n          c2y = y + 2 / 3 * (cy - y);\n      this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n      lastCom = 'Q';\n      lastCtrlX = cx;\n      lastCtrlY = cy;\n      return this;\n    };\n\n    this.q = function (c1x, c1y, x, y) {\n      return this.Q(currX + c1x, currY + c1y, currX + x, currY + y);\n    };\n\n    this.T = function (x, y) {\n      return this.Q(currX + (lastCom === 'Q' ? currX - lastCtrlX : 0), currY + (lastCom === 'Q' ? currY - lastCtrlY : 0), x, y);\n    };\n\n    this.t = function (x, y) {\n      return this.Q(currX + (lastCom === 'Q' ? currX - lastCtrlX : 0), currY + (lastCom === 'Q' ? currY - lastCtrlY : 0), currX + x, currY + y);\n    };\n\n    this.A = function (rx, ry, fi, fa, fs, x, y) {\n      if (isEqual(rx, 0) || isEqual(ry, 0)) {\n        this.addCommand(['line', true, true, x, y]);\n      } else {\n        fi = fi * (Math.PI / 180);\n        rx = Math.abs(rx);\n        ry = Math.abs(ry);\n        fa = 1 * !!fa;\n        fs = 1 * !!fs;\n        var x1 = Math.cos(fi) * (currX - x) / 2 + Math.sin(fi) * (currY - y) / 2,\n            y1 = Math.cos(fi) * (currY - y) / 2 - Math.sin(fi) * (currX - x) / 2,\n            lambda = x1 * x1 / (rx * rx) + y1 * y1 / (ry * ry);\n\n        if (lambda > 1) {\n          rx *= Math.sqrt(lambda);\n          ry *= Math.sqrt(lambda);\n        }\n\n        var r = Math.sqrt(Math.max(0, rx * rx * ry * ry - rx * rx * y1 * y1 - ry * ry * x1 * x1) / (rx * rx * y1 * y1 + ry * ry * x1 * x1)),\n            x2 = (fa === fs ? -1 : 1) * r * rx * y1 / ry,\n            y2 = (fa === fs ? 1 : -1) * r * ry * x1 / rx;\n        var cx = Math.cos(fi) * x2 - Math.sin(fi) * y2 + (currX + x) / 2,\n            cy = Math.sin(fi) * x2 + Math.cos(fi) * y2 + (currY + y) / 2,\n            th1 = Math.atan2((y1 - y2) / ry, (x1 - x2) / rx),\n            th2 = Math.atan2((-y1 - y2) / ry, (-x1 - x2) / rx);\n\n        if (fs === 0 && th2 - th1 > 0) {\n          th2 -= 2 * Math.PI;\n        } else if (fs === 1 && th2 - th1 < 0) {\n          th2 += 2 * Math.PI;\n        }\n\n        var segms = Math.ceil(Math.abs(th2 - th1) / (Math.PI / precision));\n\n        for (var i = 0; i < segms; i++) {\n          var th3 = th1 + i * (th2 - th1) / segms,\n              th4 = th1 + (i + 1) * (th2 - th1) / segms,\n              t = 4 / 3 * Math.tan((th4 - th3) / 4);\n          var c1x = cx + Math.cos(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) - Math.sin(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n              c1y = cy + Math.sin(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) + Math.cos(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n              c2x = cx + Math.cos(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) - Math.sin(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n              c2y = cy + Math.sin(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) + Math.cos(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n              endX = cx + Math.cos(fi) * rx * Math.cos(th4) - Math.sin(fi) * ry * Math.sin(th4),\n              endY = cy + Math.sin(fi) * rx * Math.cos(th4) + Math.cos(fi) * ry * Math.sin(th4);\n          this.addCommand(['curve', i === 0, i === segms - 1, c1x, c1y, c2x, c2y, endX, endY]);\n        }\n      }\n\n      lastCom = 'A';\n      return this;\n    };\n\n    this.a = function (rx, ry, fi, fa, fs, x, y) {\n      return this.A(rx, ry, fi, fa, fs, currX + x, currY + y);\n    };\n\n    this.path = function (d) {\n      var command,\n          value,\n          temp,\n          parser = new StringParser((d || '').trim());\n\n      while (command = parser.match(/^[astvzqmhlcASTVZQMHLC]/)) {\n        parser.matchSeparator();\n        var values = [];\n\n        while (value = PathFlags[command + values.length] ? parser.match(/^[01]/) : parser.matchNumber()) {\n          parser.matchSeparator();\n\n          if (values.length === PathArguments[command]) {\n            this[command].apply(this, values);\n            values = [];\n\n            if (command === 'M') {\n              command = 'L';\n            } else if (command === 'm') {\n              command = 'l';\n            }\n          }\n\n          values.push(Number(value));\n        }\n\n        if (values.length === PathArguments[command]) {\n          this[command].apply(this, values);\n        } else {\n          warningCallback('SvgPath: command ' + command + ' with ' + values.length + ' numbers');\n          return;\n        }\n      }\n\n      if (temp = parser.matchAll()) {\n        warningCallback('SvgPath: unexpected string ' + temp);\n      }\n\n      return this;\n    };\n\n    this.getBoundingBox = function () {\n      var bbox = [Infinity, Infinity, -Infinity, -Infinity];\n\n      function addBounds(bbox1) {\n        if (bbox1[0] < bbox[0]) {\n          bbox[0] = bbox1[0];\n        }\n\n        if (bbox1[2] > bbox[2]) {\n          bbox[2] = bbox1[2];\n        }\n\n        if (bbox1[1] < bbox[1]) {\n          bbox[1] = bbox1[1];\n        }\n\n        if (bbox1[3] > bbox[3]) {\n          bbox[3] = bbox1[3];\n        }\n      }\n\n      for (var i = 0; i < this.pathSegments.length; i++) {\n        addBounds(this.pathSegments[i].getBoundingBox());\n      }\n\n      if (bbox[0] === Infinity) {\n        bbox[0] = 0;\n      }\n\n      if (bbox[1] === Infinity) {\n        bbox[1] = 0;\n      }\n\n      if (bbox[2] === -Infinity) {\n        bbox[2] = 0;\n      }\n\n      if (bbox[3] === -Infinity) {\n        bbox[3] = 0;\n      }\n\n      return bbox;\n    };\n\n    this.getPointAtLength = function (l) {\n      if (l >= 0 && l <= this.totalLength) {\n        var temp;\n\n        for (var i = 0; i < this.pathSegments.length; i++) {\n          if (temp = this.pathSegments[i].getPointAtLength(l)) {\n            return temp;\n          }\n\n          l -= this.pathSegments[i].totalLength;\n        }\n\n        return this.endPoint;\n      }\n    };\n\n    this.transform = function (m) {\n      this.pathSegments = [];\n      this.startPoint = null;\n      this.endPoint = null;\n      this.totalLength = 0;\n\n      for (var i = 0; i < this.pathCommands.length; i++) {\n        var data = this.pathCommands.shift();\n\n        for (var j = 3; j < data.length; j += 2) {\n          var p = transformPoint([data[j], data[j + 1]], m);\n          data[j] = p[0];\n          data[j + 1] = p[1];\n        }\n\n        this.addCommand(data);\n      }\n\n      return this;\n    };\n\n    this.mergeShape = function (shape) {\n      for (var i = 0; i < shape.pathCommands.length; i++) {\n        this.addCommand(shape.pathCommands[i].slice());\n      }\n\n      return this;\n    };\n\n    this.clone = function () {\n      return new SvgShape().mergeShape(this);\n    };\n\n    this.insertInDocument = function () {\n      for (var i = 0; i < this.pathCommands.length; i++) {\n        var command = this.pathCommands[i][0],\n            values = this.pathCommands[i].slice(3);\n\n        switch (command) {\n          case 'move':\n            doc.moveTo(values[0], values[1]);\n            break;\n\n          case 'line':\n            doc.lineTo(values[0], values[1]);\n            break;\n\n          case 'curve':\n            doc.bezierCurveTo(values[0], values[1], values[2], values[3], values[4], values[5]);\n            break;\n\n          case 'close':\n            doc.closePath();\n            break;\n        }\n      }\n    };\n\n    this.getSubPaths = function () {\n      var subPaths = [],\n          shape = new SvgShape();\n\n      for (var i = 0; i < this.pathCommands.length; i++) {\n        var data = this.pathCommands[i],\n            command = this.pathCommands[i][0];\n\n        if (command === 'move' && i !== 0) {\n          subPaths.push(shape);\n          shape = new SvgShape();\n        }\n\n        shape.addCommand(data);\n      }\n\n      subPaths.push(shape);\n      return subPaths;\n    };\n\n    this.getMarkers = function () {\n      var markers = [],\n          subPaths = this.getSubPaths();\n\n      for (var i = 0; i < subPaths.length; i++) {\n        var subPath = subPaths[i],\n            subPathMarkers = [];\n\n        for (var j = 0; j < subPath.pathSegments.length; j++) {\n          var segment = subPath.pathSegments[j];\n\n          if (isNotEqual(segment.totalLength, 0) || j === 0 || j === subPath.pathSegments.length - 1) {\n            if (segment.hasStart) {\n              var startMarker = segment.getPointAtLength(0),\n                  prevEndMarker = subPathMarkers.pop();\n\n              if (prevEndMarker) {\n                startMarker[2] = 0.5 * (prevEndMarker[2] + startMarker[2]);\n              }\n\n              subPathMarkers.push(startMarker);\n            }\n\n            if (segment.hasEnd) {\n              var endMarker = segment.getPointAtLength(segment.totalLength);\n              subPathMarkers.push(endMarker);\n            }\n          }\n        }\n\n        markers = markers.concat(subPathMarkers);\n      }\n\n      return markers;\n    };\n  };\n\n  var SvgElem = function SvgElem(obj, inherits) {\n    var styleCache = Object.create(null);\n    var childrenCache = null;\n    this.name = obj.nodeName;\n    this.isOuterElement = obj === svg || !obj.parentNode;\n    this.inherits = inherits || (!this.isOuterElement ? createSVGElement(obj.parentNode, null) : null);\n    this.stack = this.inherits ? this.inherits.stack.concat(obj) : [obj];\n    this.style = parseStyleAttr(typeof obj.getAttribute === 'function' && obj.getAttribute('style'));\n    this.css = useCSS ? getComputedStyle(obj) : getStyle(obj);\n    this.allowedChildren = [];\n\n    this.attr = function (key) {\n      if (typeof obj.getAttribute === 'function') {\n        return obj.getAttribute(key);\n      }\n    };\n\n    this.resolveUrl = function (value) {\n      var temp = (value || '').match(/^\\s*(?:url\\(\"(.*)#(.*)\"\\)|url\\('(.*)#(.*)'\\)|url\\((.*)#(.*)\\)|(.*)#(.*))\\s*$/) || [];\n      var file = temp[1] || temp[3] || temp[5] || temp[7],\n          id = temp[2] || temp[4] || temp[6] || temp[8];\n\n      if (id) {\n        if (!file) {\n          var svgObj = svg.getElementById(id);\n\n          if (svgObj) {\n            if (this.stack.indexOf(svgObj) === -1) {\n              return svgObj;\n            } else {\n              warningCallback('SVGtoPDF: loop of circular references for id \"' + id + '\"');\n              return;\n            }\n          }\n        }\n\n        if (documentCallback) {\n          var svgs = documentCache[file];\n\n          if (!svgs) {\n            svgs = documentCallback(file);\n\n            if (!isArrayLike(svgs)) {\n              svgs = [svgs];\n            }\n\n            for (var i = 0; i < svgs.length; i++) {\n              if (typeof svgs[i] === 'string') {\n                svgs[i] = parseXml(svgs[i]);\n              }\n            }\n\n            documentCache[file] = svgs;\n          }\n\n          for (var _i7 = 0; _i7 < svgs.length; _i7++) {\n            var _svgObj = svgs[_i7].getElementById(id);\n\n            if (_svgObj) {\n              if (this.stack.indexOf(_svgObj) === -1) {\n                return _svgObj;\n              } else {\n                warningCallback('SVGtoPDF: loop of circular references for id \"' + file + '#' + id + '\"');\n                return;\n              }\n            }\n          }\n        }\n      }\n    };\n\n    this.computeUnits = function (value, unit, percent, isFontSize) {\n      if (unit === '%') {\n        return parseFloat(value) / 100 * (isFontSize || percent != null ? percent : this.getViewport());\n      } else if (unit === 'ex' || unit === 'em') {\n        return value * {\n          'em': 1,\n          'ex': 0.5\n        }[unit] * (isFontSize ? percent : this.get('font-size'));\n      } else {\n        return value * {\n          '': 1,\n          'px': 1,\n          'pt': 96 / 72,\n          'cm': 96 / 2.54,\n          'mm': 96 / 25.4,\n          'in': 96,\n          'pc': 96 / 6\n        }[unit];\n      }\n    };\n\n    this.computeLength = function (value, percent, initial, isFontSize) {\n      var parser = new StringParser((value || '').trim()),\n          temp1,\n          temp2;\n\n      if (typeof (temp1 = parser.matchNumber()) === 'string' && typeof (temp2 = parser.matchLengthUnit()) === 'string' && !parser.matchAll()) {\n        return this.computeUnits(temp1, temp2, percent, isFontSize);\n      }\n\n      return initial;\n    };\n\n    this.computeLengthList = function (value, percent, strict) {\n      var parser = new StringParser((value || '').trim()),\n          result = [],\n          temp1,\n          temp2;\n\n      while (typeof (temp1 = parser.matchNumber()) === 'string' && typeof (temp2 = parser.matchLengthUnit()) === 'string') {\n        result.push(this.computeUnits(temp1, temp2, percent));\n        parser.matchSeparator();\n      }\n\n      if (strict && parser.matchAll()) {\n        return;\n      }\n\n      return result;\n    };\n\n    this.getLength = function (key, percent, initial) {\n      return this.computeLength(this.attr(key), percent, initial);\n    };\n\n    this.getLengthList = function (key, percent) {\n      return this.computeLengthList(this.attr(key), percent);\n    };\n\n    this.getUrl = function (key) {\n      return this.resolveUrl(this.attr(key));\n    };\n\n    this.getNumberList = function (key) {\n      var parser = new StringParser((this.attr(key) || '').trim()),\n          result = [],\n          temp;\n\n      while (temp = parser.matchNumber()) {\n        result.push(Number(temp));\n        parser.matchSeparator();\n      }\n\n      result.error = parser.matchAll();\n      return result;\n    };\n\n    this.getViewbox = function (key, initial) {\n      var viewBox = this.getNumberList(key);\n\n      if (viewBox.length === 4 && viewBox[2] >= 0 && viewBox[3] >= 0) {\n        return viewBox;\n      }\n\n      return initial;\n    };\n\n    this.getPercent = function (key, initial) {\n      var value = this.attr(key);\n      var parser = new StringParser((value || '').trim()),\n          temp1,\n          temp2;\n      var number = parser.matchNumber();\n\n      if (!number) {\n        return initial;\n      }\n\n      if (parser.match('%')) {\n        number *= 0.01;\n      }\n\n      if (parser.matchAll()) {\n        return initial;\n      }\n\n      return Math.max(0, Math.min(1, number));\n    };\n\n    this.chooseValue = function (args) {\n      for (var i = 0; i < arguments.length; i++) {\n        if (arguments[i] != null && arguments[i] === arguments[i]) {\n          return arguments[i];\n        }\n      }\n\n      return arguments[arguments.length - 1];\n    };\n\n    this.get = function (key) {\n      if (styleCache[key] !== undefined) {\n        return styleCache[key];\n      }\n\n      var keyInfo = Properties[key] || {},\n          value,\n          result;\n\n      for (var i = 0; i < 3; i++) {\n        switch (i) {\n          case 0:\n            if (key !== 'transform') {\n              // the CSS transform behaves strangely\n              value = this.css[keyInfo.css || key];\n            }\n\n            break;\n\n          case 1:\n            value = this.style[key];\n            break;\n\n          case 2:\n            value = this.attr(key);\n            break;\n        }\n\n        if (value === 'inherit') {\n          result = this.inherits ? this.inherits.get(key) : keyInfo.initial;\n\n          if (result != null) {\n            return styleCache[key] = result;\n          }\n        }\n\n        if (keyInfo.values != null) {\n          result = keyInfo.values[value];\n\n          if (result != null) {\n            return styleCache[key] = result;\n          }\n        }\n\n        if (value != null) {\n          var parsed = void 0;\n\n          switch (key) {\n            case 'font-size':\n              result = this.computeLength(value, this.inherits ? this.inherits.get(key) : keyInfo.initial, undefined, true);\n              break;\n\n            case 'baseline-shift':\n              result = this.computeLength(value, this.get('font-size'));\n              break;\n\n            case 'font-family':\n              result = value || undefined;\n              break;\n\n            case 'opacity':\n            case 'stroke-opacity':\n            case 'fill-opacity':\n            case 'stop-opacity':\n              parsed = parseFloat(value);\n\n              if (!isNaN(parsed)) {\n                result = Math.max(0, Math.min(1, parsed));\n              }\n\n              break;\n\n            case 'transform':\n              result = parseTranform(value);\n              break;\n\n            case 'stroke-dasharray':\n              if (value === 'none') {\n                result = [];\n              } else if (parsed = this.computeLengthList(value, this.getViewport(), true)) {\n                var sum = 0,\n                    error = false;\n\n                for (var j = 0; j < parsed.length; j++) {\n                  if (parsed[j] < 0) {\n                    error = true;\n                  }\n\n                  sum += parsed[j];\n                }\n\n                if (!error) {\n                  if (parsed.length % 2 === 1) {\n                    parsed = parsed.concat(parsed);\n                  }\n\n                  result = sum === 0 ? [] : parsed;\n                }\n              }\n\n              break;\n\n            case 'color':\n              if (value === 'none' || value === 'transparent') {\n                result = 'none';\n              } else {\n                result = parseColor(value);\n              }\n\n              break;\n\n            case 'fill':\n            case 'stroke':\n              if (value === 'none' || value === 'transparent') {\n                result = 'none';\n              } else if (value === 'currentColor') {\n                result = this.get('color');\n              } else if (parsed = parseColor(value)) {\n                return parsed;\n              } else if (parsed = (value || '').split(' ')) {\n                var object = this.resolveUrl(parsed[0]),\n                    fallbackColor = parseColor(parsed[1]);\n\n                if (object == null) {\n                  result = fallbackColor;\n                } else if (object.nodeName === 'linearGradient' || object.nodeName === 'radialGradient') {\n                  result = new SvgElemGradient(object, null, fallbackColor);\n                } else if (object.nodeName === 'pattern') {\n                  result = new SvgElemPattern(object, null, fallbackColor);\n                } else {\n                  result = fallbackColor;\n                }\n              }\n\n              break;\n\n            case 'stop-color':\n              if (value === 'none' || value === 'transparent') {\n                result = 'none';\n              } else if (value === 'currentColor') {\n                result = this.get('color');\n              } else {\n                result = parseColor(value);\n              }\n\n              break;\n\n            case 'marker-start':\n            case 'marker-mid':\n            case 'marker-end':\n            case 'clip-path':\n            case 'mask':\n              if (value === 'none') {\n                result = 'none';\n              } else {\n                result = this.resolveUrl(value);\n              }\n\n              break;\n\n            case 'stroke-width':\n              parsed = this.computeLength(value, this.getViewport());\n\n              if (parsed != null && parsed >= 0) {\n                result = parsed;\n              }\n\n              break;\n\n            case 'stroke-miterlimit':\n              parsed = parseFloat(value);\n\n              if (parsed != null && parsed >= 1) {\n                result = parsed;\n              }\n\n              break;\n\n            case 'word-spacing':\n            case 'letter-spacing':\n              result = this.computeLength(value, this.getViewport());\n              break;\n\n            case 'stroke-dashoffset':\n              result = this.computeLength(value, this.getViewport());\n\n              if (result != null) {\n                if (result < 0) {\n                  // fix for crbug.com/660850\n                  var dasharray = this.get('stroke-dasharray');\n\n                  for (var _j = 0; _j < dasharray.length; _j++) {\n                    result += dasharray[_j];\n                  }\n                }\n              }\n\n              break;\n          }\n\n          if (result != null) {\n            return styleCache[key] = result;\n          }\n        }\n      }\n\n      return styleCache[key] = keyInfo.inherit && this.inherits ? this.inherits.get(key) : keyInfo.initial;\n    };\n\n    this.getChildren = function () {\n      if (childrenCache != null) {\n        return childrenCache;\n      }\n\n      var children = [];\n\n      for (var i = 0; i < obj.childNodes.length; i++) {\n        var child = obj.childNodes[i];\n\n        if (!child.error && this.allowedChildren.indexOf(child.nodeName) !== -1) {\n          children.push(createSVGElement(child, this));\n        }\n      }\n\n      return childrenCache = children;\n    };\n\n    this.getParentVWidth = function () {\n      return this.inherits ? this.inherits.getVWidth() : viewportWidth;\n    };\n\n    this.getParentVHeight = function () {\n      return this.inherits ? this.inherits.getVHeight() : viewportHeight;\n    };\n\n    this.getParentViewport = function () {\n      return Math.sqrt(0.5 * this.getParentVWidth() * this.getParentVWidth() + 0.5 * this.getParentVHeight() * this.getParentVHeight());\n    };\n\n    this.getVWidth = function () {\n      return this.getParentVWidth();\n    };\n\n    this.getVHeight = function () {\n      return this.getParentVHeight();\n    };\n\n    this.getViewport = function () {\n      return Math.sqrt(0.5 * this.getVWidth() * this.getVWidth() + 0.5 * this.getVHeight() * this.getVHeight());\n    };\n\n    this.getBoundingBox = function () {\n      var shape = this.getBoundingShape();\n      return shape.getBoundingBox();\n    };\n  };\n\n  var SvgElemStylable = function SvgElemStylable(obj, inherits) {\n    SvgElem.call(this, obj, inherits);\n\n    this.transform = function () {\n      doc.transform.apply(doc, this.getTransformation());\n    };\n\n    this.clip = function () {\n      if (this.get('clip-path') !== 'none') {\n        var clipPath = new SvgElemClipPath(this.get('clip-path'), null);\n        clipPath.useMask(this.getBoundingBox());\n        return true;\n      }\n    };\n\n    this.mask = function () {\n      if (this.get('mask') !== 'none') {\n        var mask = new SvgElemMask(this.get('mask'), null);\n        mask.useMask(this.getBoundingBox());\n        return true;\n      }\n    };\n\n    this.getFill = function (isClip, isMask) {\n      var opacity = this.get('opacity'),\n          fill = this.get('fill'),\n          fillOpacity = this.get('fill-opacity');\n\n      if (isClip) {\n        return DefaultColors.white;\n      }\n\n      if (fill !== 'none' && opacity && fillOpacity) {\n        if (fill instanceof SvgElemGradient || fill instanceof SvgElemPattern) {\n          return fill.getPaint(this.getBoundingBox(), fillOpacity * opacity, isClip, isMask);\n        }\n\n        return opacityToColor(fill, fillOpacity * opacity, isMask);\n      }\n    };\n\n    this.getStroke = function (isClip, isMask) {\n      var opacity = this.get('opacity'),\n          stroke = this.get('stroke'),\n          strokeOpacity = this.get('stroke-opacity');\n\n      if (isClip || isEqual(this.get('stroke-width'), 0)) {\n        return;\n      }\n\n      if (stroke !== 'none' && opacity && strokeOpacity) {\n        if (stroke instanceof SvgElemGradient || stroke instanceof SvgElemPattern) {\n          return stroke.getPaint(this.getBoundingBox(), strokeOpacity * opacity, isClip, isMask);\n        }\n\n        return opacityToColor(stroke, strokeOpacity * opacity, isMask);\n      }\n    };\n  };\n\n  var SvgElemHasChildren = function SvgElemHasChildren(obj, inherits) {\n    SvgElemStylable.call(this, obj, inherits);\n    this.allowedChildren = ['use', 'g', 'a', 'svg', 'image', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'path', 'text'];\n\n    this.getBoundingShape = function () {\n      var shape = new SvgShape(),\n          children = this.getChildren();\n\n      for (var i = 0; i < children.length; i++) {\n        if (children[i].get('display') !== 'none') {\n          if (typeof children[i].getBoundingShape === 'function') {\n            var childShape = children[i].getBoundingShape().clone();\n\n            if (typeof children[i].getTransformation === 'function') {\n              childShape.transform(children[i].getTransformation());\n            }\n\n            shape.mergeShape(childShape);\n          }\n        }\n      }\n\n      return shape;\n    };\n\n    this.drawChildren = function (isClip, isMask) {\n      var children = this.getChildren();\n\n      for (var i = 0; i < children.length; i++) {\n        if (children[i].get('display') !== 'none') {\n          if (typeof children[i].drawInDocument === 'function') {\n            children[i].drawInDocument(isClip, isMask);\n          }\n        }\n      }\n    };\n  };\n\n  var SvgElemContainer = function SvgElemContainer(obj, inherits) {\n    SvgElemHasChildren.call(this, obj, inherits);\n\n    this.drawContent = function (isClip, isMask) {\n      this.transform();\n      var clipped = this.clip(),\n          masked = this.mask(),\n          group;\n\n      if ((this.get('opacity') < 1 || clipped || masked) && !isClip) {\n        group = docBeginGroup(getPageBBox());\n      }\n\n      this.drawChildren(isClip, isMask);\n\n      if (group) {\n        docEndGroup(group);\n        doc.fillOpacity(this.get('opacity'));\n        docInsertGroup(group);\n      }\n    };\n  };\n\n  var SvgElemUse = function SvgElemUse(obj, inherits) {\n    SvgElemContainer.call(this, obj, inherits);\n    var x = this.getLength('x', this.getVWidth(), 0),\n        y = this.getLength('y', this.getVHeight(), 0),\n        child = this.getUrl('href') || this.getUrl('xlink:href');\n\n    if (child) {\n      child = createSVGElement(child, this);\n    }\n\n    this.getChildren = function () {\n      return child ? [child] : [];\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      doc.save();\n      this.drawContent(isClip, isMask);\n      doc.restore();\n    };\n\n    this.getTransformation = function () {\n      return multiplyMatrix(this.get('transform'), [1, 0, 0, 1, x, y]);\n    };\n  };\n\n  var SvgElemSymbol = function SvgElemSymbol(obj, inherits) {\n    SvgElemContainer.call(this, obj, inherits);\n    var width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n        height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight());\n\n    if (inherits instanceof SvgElemUse) {\n      width = inherits.getLength('width', inherits.getParentVWidth(), width);\n      height = inherits.getLength('height', inherits.getParentVHeight(), height);\n    }\n\n    var aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n        viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n\n    this.getVWidth = function () {\n      return viewBox[2];\n    };\n\n    this.getVHeight = function () {\n      return viewBox[3];\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      doc.save();\n      this.drawContent(isClip, isMask);\n      doc.restore();\n    };\n\n    this.getTransformation = function () {\n      return multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]), [1, 0, 0, 1, -viewBox[0], -viewBox[1]]);\n    };\n  };\n\n  var SvgElemGroup = function SvgElemGroup(obj, inherits) {\n    SvgElemContainer.call(this, obj, inherits);\n\n    this.drawInDocument = function (isClip, isMask) {\n      doc.save();\n\n      if (this.link && !isClip && !isMask) {\n        this.addLink();\n      }\n\n      this.drawContent(isClip, isMask);\n      doc.restore();\n    };\n\n    this.getTransformation = function () {\n      return this.get('transform');\n    };\n  };\n\n  var SvgElemLink = function SvgElemLink(obj, inherits) {\n    if (inherits && inherits.isText) {\n      SvgElemTspan.call(this, obj, inherits);\n      this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n    } else {\n      SvgElemGroup.call(this, obj, inherits);\n    }\n\n    this.link = this.attr('href') || this.attr('xlink:href');\n\n    this.addLink = function () {\n      if (this.link.match(/^(?:[a-z][a-z0-9+.-]*:|\\/\\/)?/i) && this.getChildren().length) {\n        var bbox = this.getBoundingShape().transform(getGlobalMatrix()).getBoundingBox();\n        docInsertLink(bbox[0], bbox[1], bbox[2], bbox[3], this.link);\n      }\n    };\n  };\n\n  var SvgElemSvg = function SvgElemSvg(obj, inherits) {\n    SvgElemContainer.call(this, obj, inherits);\n    var width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n        height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight()),\n        x = this.getLength('x', this.getParentVWidth(), 0),\n        y = this.getLength('y', this.getParentVHeight(), 0);\n\n    if (inherits instanceof SvgElemUse) {\n      width = inherits.getLength('width', inherits.getParentVWidth(), width);\n      height = inherits.getLength('height', inherits.getParentVHeight(), height);\n    }\n\n    var aspectRatio = this.attr('preserveAspectRatio'),\n        viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n\n    if (this.isOuterElement && preserveAspectRatio) {\n      x = y = 0;\n      width = viewportWidth;\n      height = viewportHeight;\n      aspectRatio = preserveAspectRatio;\n    }\n\n    this.getVWidth = function () {\n      return viewBox[2];\n    };\n\n    this.getVHeight = function () {\n      return viewBox[3];\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      doc.save();\n\n      if (this.get('overflow') === 'hidden') {\n        new SvgShape().M(x, y).L(x + width, y).L(x + width, y + height).L(x, y + height).Z().transform(this.get('transform')).insertInDocument();\n        doc.clip();\n      }\n\n      this.drawContent(isClip, isMask);\n      doc.restore();\n    };\n\n    this.getTransformation = function () {\n      return multiplyMatrix(this.get('transform'), [1, 0, 0, 1, x, y], parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]), [1, 0, 0, 1, -viewBox[0], -viewBox[1]]);\n    };\n  };\n\n  var SVGElemImage = function SVGElemImage(obj, inherits) {\n    SvgElemStylable.call(this, obj, inherits);\n    var link = imageCallback(this.attr('href') || this.attr('xlink:href') || ''),\n        x = this.getLength('x', this.getVWidth(), 0),\n        y = this.getLength('y', this.getVHeight(), 0),\n        width = this.getLength('width', this.getVWidth(), 'auto'),\n        height = this.getLength('height', this.getVHeight(), 'auto'),\n        image;\n\n    try {\n      image = doc.openImage(link);\n    } catch (e) {\n      warningCallback('SVGElemImage: failed to open image \"' + link + '\" in PDFKit');\n    }\n\n    if (image) {\n      if (width === 'auto' && height !== 'auto') {\n        width = height * image.width / image.height;\n      } else if (height === 'auto' && width !== 'auto') {\n        height = width * image.height / image.width;\n      } else if (width === 'auto' && height === 'auto') {\n        width = image.width;\n        height = image.height;\n      }\n    }\n\n    if (width === 'auto' || width < 0) {\n      width = 0;\n    }\n\n    if (height === 'auto' || height < 0) {\n      height = 0;\n    }\n\n    this.getTransformation = function () {\n      return this.get('transform');\n    };\n\n    this.getBoundingShape = function () {\n      return new SvgShape().M(x, y).L(x + width, y).M(x + width, y + height).L(x, y + height);\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      if (this.get('visibility') === 'hidden' || !image) {\n        return;\n      }\n\n      doc.save();\n      this.transform();\n\n      if (this.get('overflow') === 'hidden') {\n        doc.rect(x, y, width, height).clip();\n      }\n\n      this.clip();\n      this.mask();\n      doc.translate(x, y);\n      doc.transform.apply(doc, parseAspectRatio(this.attr('preserveAspectRatio'), width, height, image ? image.width : width, image ? image.height : height));\n\n      if (!isClip) {\n        doc.fillOpacity(this.get('opacity'));\n        doc.image(image, 0, 0);\n      } else {\n        doc.rect(0, 0, image.width, image.height);\n        docFillColor(DefaultColors.white).fill();\n      }\n\n      doc.restore();\n    };\n  };\n\n  var SvgElemPattern = function SvgElemPattern(obj, inherits, fallback) {\n    SvgElemHasChildren.call(this, obj, inherits);\n\n    this.ref = function () {\n      var ref = this.getUrl('href') || this.getUrl('xlink:href');\n\n      if (ref && ref.nodeName === obj.nodeName) {\n        return new SvgElemPattern(ref, inherits, fallback);\n      }\n    }.call(this);\n\n    var _attr = this.attr;\n\n    this.attr = function (key) {\n      var attr = _attr.call(this, key);\n\n      if (attr != null || key === 'href' || key === 'xlink:href') {\n        return attr;\n      }\n\n      return this.ref ? this.ref.attr(key) : null;\n    };\n\n    var _getChildren = this.getChildren;\n\n    this.getChildren = function () {\n      var children = _getChildren.call(this);\n\n      if (children.length > 0) {\n        return children;\n      }\n\n      return this.ref ? this.ref.getChildren() : [];\n    };\n\n    this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n      var bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n          bBoxUnitsContent = this.attr('patternContentUnits') === 'objectBoundingBox',\n          x = this.getLength('x', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n          y = this.getLength('y', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0),\n          width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n          height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n\n      if (bBoxUnitsContent && !bBoxUnitsPattern) {\n        // Use the same units for pattern & pattern content\n        x = (x - bBox[0]) / (bBox[2] - bBox[0]) || 0;\n        y = (y - bBox[1]) / (bBox[3] - bBox[1]) || 0;\n        width = width / (bBox[2] - bBox[0]) || 0;\n        height = height / (bBox[3] - bBox[1]) || 0;\n      } else if (!bBoxUnitsContent && bBoxUnitsPattern) {\n        x = bBox[0] + x * (bBox[2] - bBox[0]);\n        y = bBox[1] + y * (bBox[3] - bBox[1]);\n        width = width * (bBox[2] - bBox[0]);\n        height = height * (bBox[3] - bBox[1]);\n      }\n\n      var viewBox = this.getViewbox('viewBox', [0, 0, width, height]),\n          aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n          aspectRatioMatrix = multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3], 0), [1, 0, 0, 1, -viewBox[0], -viewBox[1]]),\n          matrix = parseTranform(this.attr('patternTransform'));\n\n      if (bBoxUnitsContent) {\n        matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n      }\n\n      matrix = multiplyMatrix(matrix, [1, 0, 0, 1, x, y]);\n\n      if ((matrix = validateMatrix(matrix)) && (aspectRatioMatrix = validateMatrix(aspectRatioMatrix)) && (width = validateNumber(width)) && (height = validateNumber(height))) {\n        var group = docBeginGroup([0, 0, width, height]);\n        doc.transform.apply(doc, aspectRatioMatrix);\n        this.drawChildren(isClip, isMask);\n        docEndGroup(group);\n        return [docCreatePattern(group, width, height, matrix), gOpacity];\n      } else {\n        return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n      }\n    };\n\n    this.getVWidth = function () {\n      var bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n          width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0);\n      return this.getViewbox('viewBox', [0, 0, width, 0])[2];\n    };\n\n    this.getVHeight = function () {\n      var bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n          height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n      return this.getViewbox('viewBox', [0, 0, 0, height])[3];\n    };\n  };\n\n  var SvgElemGradient = function SvgElemGradient(obj, inherits, fallback) {\n    SvgElem.call(this, obj, inherits);\n    this.allowedChildren = ['stop'];\n\n    this.ref = function () {\n      var ref = this.getUrl('href') || this.getUrl('xlink:href');\n\n      if (ref && ref.nodeName === obj.nodeName) {\n        return new SvgElemGradient(ref, inherits, fallback);\n      }\n    }.call(this);\n\n    var _attr = this.attr;\n\n    this.attr = function (key) {\n      var attr = _attr.call(this, key);\n\n      if (attr != null || key === 'href' || key === 'xlink:href') {\n        return attr;\n      }\n\n      return this.ref ? this.ref.attr(key) : null;\n    };\n\n    var _getChildren = this.getChildren;\n\n    this.getChildren = function () {\n      var children = _getChildren.call(this);\n\n      if (children.length > 0) {\n        return children;\n      }\n\n      return this.ref ? this.ref.getChildren() : [];\n    };\n\n    this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n      var children = this.getChildren();\n\n      if (children.length === 0) {\n        return;\n      }\n\n      if (children.length === 1) {\n        var child = children[0],\n            stopColor = child.get('stop-color');\n\n        if (stopColor === 'none') {\n          return;\n        }\n\n        return opacityToColor(stopColor, child.get('stop-opacity') * gOpacity, isMask);\n      }\n\n      var bBoxUnits = this.attr('gradientUnits') !== 'userSpaceOnUse',\n          matrix = parseTranform(this.attr('gradientTransform')),\n          spread = this.attr('spreadMethod'),\n          grad,\n          x1,\n          x2,\n          y1,\n          y2,\n          r2,\n          nAfter = 0,\n          nBefore = 0,\n          nTotal = 1;\n\n      if (bBoxUnits) {\n        matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n      }\n\n      if (matrix = validateMatrix(matrix)) {\n        if (this.name === 'linearGradient') {\n          x1 = this.getLength('x1', bBoxUnits ? 1 : this.getVWidth(), 0);\n          x2 = this.getLength('x2', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 1 : this.getVWidth());\n          y1 = this.getLength('y1', bBoxUnits ? 1 : this.getVHeight(), 0);\n          y2 = this.getLength('y2', bBoxUnits ? 1 : this.getVHeight(), 0);\n        } else {\n          x2 = this.getLength('cx', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 0.5 : 0.5 * this.getVWidth());\n          y2 = this.getLength('cy', bBoxUnits ? 1 : this.getVHeight(), bBoxUnits ? 0.5 : 0.5 * this.getVHeight());\n          r2 = this.getLength('r', bBoxUnits ? 1 : this.getViewport(), bBoxUnits ? 0.5 : 0.5 * this.getViewport());\n          x1 = this.getLength('fx', bBoxUnits ? 1 : this.getVWidth(), x2);\n          y1 = this.getLength('fy', bBoxUnits ? 1 : this.getVHeight(), y2);\n\n          if (r2 < 0) {\n            warningCallback('SvgElemGradient: negative r value');\n          }\n\n          var d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)),\n              multiplier = 1;\n\n          if (d > r2) {\n            // according to specification\n            multiplier = r2 / d;\n            x1 = x2 + (x1 - x2) * multiplier;\n            y1 = y2 + (y1 - y2) * multiplier;\n          }\n\n          r2 = Math.max(r2, d * multiplier * (1 + 1e-6)); // fix for edge-case gradients see issue #84\n        }\n\n        if (spread === 'reflect' || spread === 'repeat') {\n          var inv = inverseMatrix(matrix),\n              corner1 = transformPoint([bBox[0], bBox[1]], inv),\n              corner2 = transformPoint([bBox[2], bBox[1]], inv),\n              corner3 = transformPoint([bBox[2], bBox[3]], inv),\n              corner4 = transformPoint([bBox[0], bBox[3]], inv);\n\n          if (this.name === 'linearGradient') {\n            // See file 'gradient-repeat-maths.png'\n            nAfter = Math.max((corner1[0] - x2) * (x2 - x1) + (corner1[1] - y2) * (y2 - y1), (corner2[0] - x2) * (x2 - x1) + (corner2[1] - y2) * (y2 - y1), (corner3[0] - x2) * (x2 - x1) + (corner3[1] - y2) * (y2 - y1), (corner4[0] - x2) * (x2 - x1) + (corner4[1] - y2) * (y2 - y1)) / (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n            nBefore = Math.max((corner1[0] - x1) * (x1 - x2) + (corner1[1] - y1) * (y1 - y2), (corner2[0] - x1) * (x1 - x2) + (corner2[1] - y1) * (y1 - y2), (corner3[0] - x1) * (x1 - x2) + (corner3[1] - y1) * (y1 - y2), (corner4[0] - x1) * (x1 - x2) + (corner4[1] - y1) * (y1 - y2)) / (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n          } else {\n            nAfter = Math.sqrt(Math.max(Math.pow(corner1[0] - x2, 2) + Math.pow(corner1[1] - y2, 2), Math.pow(corner2[0] - x2, 2) + Math.pow(corner2[1] - y2, 2), Math.pow(corner3[0] - x2, 2) + Math.pow(corner3[1] - y2, 2), Math.pow(corner4[0] - x2, 2) + Math.pow(corner4[1] - y2, 2))) / r2 - 1;\n          }\n\n          nAfter = Math.ceil(nAfter + 0.5); // Add a little more because the stroke can extend outside of the bounding box\n\n          nBefore = Math.ceil(nBefore + 0.5);\n          nTotal = nBefore + 1 + nAfter; // How many times the gradient needs to be repeated to fill the object bounding box\n        }\n\n        if (this.name === 'linearGradient') {\n          grad = doc.linearGradient(x1 - nBefore * (x2 - x1), y1 - nBefore * (y2 - y1), x2 + nAfter * (x2 - x1), y2 + nAfter * (y2 - y1));\n        } else {\n          grad = doc.radialGradient(x1, y1, 0, x2, y2, r2 + nAfter * r2);\n        }\n\n        for (var n = 0; n < nTotal; n++) {\n          var offset = 0,\n              inOrder = spread !== 'reflect' || (n - nBefore) % 2 === 0;\n\n          for (var i = 0; i < children.length; i++) {\n            var _child = children[inOrder ? i : children.length - 1 - i],\n                _stopColor = _child.get('stop-color');\n\n            if (_stopColor === 'none') {\n              _stopColor = DefaultColors.transparent;\n            }\n\n            _stopColor = opacityToColor(_stopColor, _child.get('stop-opacity') * gOpacity, isMask);\n            offset = Math.max(offset, inOrder ? _child.getPercent('offset', 0) : 1 - _child.getPercent('offset', 0));\n\n            if (i === 0 && _stopColor[0].length === 4) {\n              grad._colorSpace = 'DeviceCMYK';\n            } // Fix until PR #763 is merged into PDFKit\n\n\n            if (i === 0 && offset > 0) {\n              grad.stop((n + 0) / nTotal, _stopColor[0], _stopColor[1]);\n            }\n\n            grad.stop((n + offset) / (nAfter + nBefore + 1), _stopColor[0], _stopColor[1]);\n\n            if (i === children.length - 1 && offset < 1) {\n              grad.stop((n + 1) / nTotal, _stopColor[0], _stopColor[1]);\n            }\n          }\n        }\n\n        grad.setTransform.apply(grad, matrix);\n        return [grad, 1];\n      } else {\n        return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n      }\n    };\n  };\n\n  var SvgElemBasicShape = function SvgElemBasicShape(obj, inherits) {\n    SvgElemStylable.call(this, obj, inherits);\n    this.dashScale = 1;\n\n    this.getBoundingShape = function () {\n      return this.shape;\n    };\n\n    this.getTransformation = function () {\n      return this.get('transform');\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      if (this.get('visibility') === 'hidden' || !this.shape) {\n        return;\n      }\n\n      doc.save();\n      this.transform();\n      this.clip();\n\n      if (!isClip) {\n        var masked = this.mask(),\n            group;\n\n        if (masked) {\n          group = docBeginGroup(getPageBBox());\n        }\n\n        var subPaths = this.shape.getSubPaths(),\n            fill = this.getFill(isClip, isMask),\n            stroke = this.getStroke(isClip, isMask),\n            lineWidth = this.get('stroke-width'),\n            lineCap = this.get('stroke-linecap');\n\n        if (fill || stroke) {\n          if (fill) {\n            docFillColor(fill);\n          }\n\n          if (stroke) {\n            for (var j = 0; j < subPaths.length; j++) {\n              if (isEqual(subPaths[j].totalLength, 0)) {\n                if ((lineCap === 'square' || lineCap === 'round') && lineWidth > 0) {\n                  if (subPaths[j].startPoint && subPaths[j].startPoint.length > 1) {\n                    var _x4 = subPaths[j].startPoint[0],\n                        _y4 = subPaths[j].startPoint[1];\n                    docFillColor(stroke);\n\n                    if (lineCap === 'square') {\n                      doc.rect(_x4 - 0.5 * lineWidth, _y4 - 0.5 * lineWidth, lineWidth, lineWidth);\n                    } else if (lineCap === 'round') {\n                      doc.circle(_x4, _y4, 0.5 * lineWidth);\n                    }\n\n                    doc.fill();\n                  }\n                }\n              }\n            }\n\n            var dashArray = this.get('stroke-dasharray'),\n                dashOffset = this.get('stroke-dashoffset');\n\n            if (isNotEqual(this.dashScale, 1)) {\n              for (var _j2 = 0; _j2 < dashArray.length; _j2++) {\n                dashArray[_j2] *= this.dashScale;\n              }\n\n              dashOffset *= this.dashScale;\n            }\n\n            docStrokeColor(stroke);\n            doc.lineWidth(lineWidth).miterLimit(this.get('stroke-miterlimit')).lineJoin(this.get('stroke-linejoin')).lineCap(lineCap).dash(dashArray, {\n              phase: dashOffset\n            });\n          }\n\n          for (var _j3 = 0; _j3 < subPaths.length; _j3++) {\n            if (subPaths[_j3].totalLength > 0) {\n              subPaths[_j3].insertInDocument();\n            }\n          }\n\n          if (fill && stroke) {\n            doc.fillAndStroke(this.get('fill-rule'));\n          } else if (fill) {\n            doc.fill(this.get('fill-rule'));\n          } else if (stroke) {\n            doc.stroke();\n          }\n        }\n\n        var markerStart = this.get('marker-start'),\n            markerMid = this.get('marker-mid'),\n            markerEnd = this.get('marker-end');\n\n        if (markerStart !== 'none' || markerMid !== 'none' || markerEnd !== 'none') {\n          var markersPos = this.shape.getMarkers();\n\n          if (markerStart !== 'none') {\n            var marker = new SvgElemMarker(markerStart, null);\n            marker.drawMarker(false, isMask, markersPos[0], lineWidth);\n          }\n\n          if (markerMid !== 'none') {\n            for (var i = 1; i < markersPos.length - 1; i++) {\n              var _marker = new SvgElemMarker(markerMid, null);\n\n              _marker.drawMarker(false, isMask, markersPos[i], lineWidth);\n            }\n          }\n\n          if (markerEnd !== 'none') {\n            var _marker2 = new SvgElemMarker(markerEnd, null);\n\n            _marker2.drawMarker(false, isMask, markersPos[markersPos.length - 1], lineWidth);\n          }\n        }\n\n        if (group) {\n          docEndGroup(group);\n          docInsertGroup(group);\n        }\n      } else {\n        this.shape.insertInDocument();\n        docFillColor(DefaultColors.white);\n        doc.fill(this.get('clip-rule'));\n      }\n\n      doc.restore();\n    };\n  };\n\n  var SvgElemRect = function SvgElemRect(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var x = this.getLength('x', this.getVWidth(), 0),\n        y = this.getLength('y', this.getVHeight(), 0),\n        w = this.getLength('width', this.getVWidth(), 0),\n        h = this.getLength('height', this.getVHeight(), 0),\n        rx = this.getLength('rx', this.getVWidth()),\n        ry = this.getLength('ry', this.getVHeight());\n\n    if (rx === undefined && ry === undefined) {\n      rx = ry = 0;\n    } else if (rx === undefined && ry !== undefined) {\n      rx = ry;\n    } else if (rx !== undefined && ry === undefined) {\n      ry = rx;\n    }\n\n    if (w > 0 && h > 0) {\n      if (rx && ry) {\n        rx = Math.min(rx, 0.5 * w);\n        ry = Math.min(ry, 0.5 * h);\n        this.shape = new SvgShape().M(x + rx, y).L(x + w - rx, y).A(rx, ry, 0, 0, 1, x + w, y + ry).L(x + w, y + h - ry).A(rx, ry, 0, 0, 1, x + w - rx, y + h).L(x + rx, y + h).A(rx, ry, 0, 0, 1, x, y + h - ry).L(x, y + ry).A(rx, ry, 0, 0, 1, x + rx, y).Z();\n      } else {\n        this.shape = new SvgShape().M(x, y).L(x + w, y).L(x + w, y + h).L(x, y + h).Z();\n      }\n    } else {\n      this.shape = new SvgShape();\n    }\n  };\n\n  var SvgElemCircle = function SvgElemCircle(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var cx = this.getLength('cx', this.getVWidth(), 0),\n        cy = this.getLength('cy', this.getVHeight(), 0),\n        r = this.getLength('r', this.getViewport(), 0);\n\n    if (r > 0) {\n      this.shape = new SvgShape().M(cx + r, cy).A(r, r, 0, 0, 1, cx - r, cy).A(r, r, 0, 0, 1, cx + r, cy).Z();\n    } else {\n      this.shape = new SvgShape();\n    }\n  };\n\n  var SvgElemEllipse = function SvgElemEllipse(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var cx = this.getLength('cx', this.getVWidth(), 0),\n        cy = this.getLength('cy', this.getVHeight(), 0),\n        rx = this.getLength('rx', this.getVWidth(), 0),\n        ry = this.getLength('ry', this.getVHeight(), 0);\n\n    if (rx > 0 && ry > 0) {\n      this.shape = new SvgShape().M(cx + rx, cy).A(rx, ry, 0, 0, 1, cx - rx, cy).A(rx, ry, 0, 0, 1, cx + rx, cy).Z();\n    } else {\n      this.shape = new SvgShape();\n    }\n  };\n\n  var SvgElemLine = function SvgElemLine(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var x1 = this.getLength('x1', this.getVWidth(), 0),\n        y1 = this.getLength('y1', this.getVHeight(), 0),\n        x2 = this.getLength('x2', this.getVWidth(), 0),\n        y2 = this.getLength('y2', this.getVHeight(), 0);\n    this.shape = new SvgShape().M(x1, y1).L(x2, y2);\n  };\n\n  var SvgElemPolyline = function SvgElemPolyline(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var points = this.getNumberList('points');\n    this.shape = new SvgShape();\n\n    for (var i = 0; i < points.length - 1; i += 2) {\n      if (i === 0) {\n        this.shape.M(points[i], points[i + 1]);\n      } else {\n        this.shape.L(points[i], points[i + 1]);\n      }\n    }\n\n    if (points.error) {\n      warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n    }\n\n    if (points.length % 2 === 1) {\n      warningCallback('SvgElemPolyline: uneven number of coordinates');\n    }\n  };\n\n  var SvgElemPolygon = function SvgElemPolygon(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    var points = this.getNumberList('points');\n    this.shape = new SvgShape();\n\n    for (var i = 0; i < points.length - 1; i += 2) {\n      if (i === 0) {\n        this.shape.M(points[i], points[i + 1]);\n      } else {\n        this.shape.L(points[i], points[i + 1]);\n      }\n    }\n\n    this.shape.Z();\n\n    if (points.error) {\n      warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n    }\n\n    if (points.length % 2 === 1) {\n      warningCallback('SvgElemPolygon: uneven number of coordinates');\n    }\n  };\n\n  var SvgElemPath = function SvgElemPath(obj, inherits) {\n    SvgElemBasicShape.call(this, obj, inherits);\n    this.shape = new SvgShape().path(this.attr('d'));\n    var pathLength = this.getLength('pathLength', this.getViewport());\n    this.pathLength = pathLength > 0 ? pathLength : undefined;\n    this.dashScale = this.pathLength !== undefined ? this.shape.totalLength / this.pathLength : 1;\n  };\n\n  var SvgElemMarker = function SvgElemMarker(obj, inherits) {\n    SvgElemHasChildren.call(this, obj, inherits);\n    var width = this.getLength('markerWidth', this.getParentVWidth(), 3),\n        height = this.getLength('markerHeight', this.getParentVHeight(), 3),\n        viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n\n    this.getVWidth = function () {\n      return viewBox[2];\n    };\n\n    this.getVHeight = function () {\n      return viewBox[3];\n    };\n\n    this.drawMarker = function (isClip, isMask, posArray, strokeWidth) {\n      doc.save();\n      var orient = this.attr('orient'),\n          units = this.attr('markerUnits'),\n          rotate = orient === 'auto' ? posArray[2] : (parseFloat(orient) || 0) * Math.PI / 180,\n          scale = units === 'userSpaceOnUse' ? 1 : strokeWidth;\n      doc.transform(Math.cos(rotate) * scale, Math.sin(rotate) * scale, -Math.sin(rotate) * scale, Math.cos(rotate) * scale, posArray[0], posArray[1]);\n      var refX = this.getLength('refX', this.getVWidth(), 0),\n          refY = this.getLength('refY', this.getVHeight(), 0),\n          aspectRatioMatrix = parseAspectRatio(this.attr('preserveAspectRatio'), width, height, viewBox[2], viewBox[3], 0.5);\n\n      if (this.get('overflow') === 'hidden') {\n        doc.rect(aspectRatioMatrix[0] * (viewBox[0] + viewBox[2] / 2 - refX) - width / 2, aspectRatioMatrix[3] * (viewBox[1] + viewBox[3] / 2 - refY) - height / 2, width, height).clip();\n      }\n\n      doc.transform.apply(doc, aspectRatioMatrix);\n      doc.translate(-refX, -refY);\n      var group;\n\n      if (this.get('opacity') < 1 && !isClip) {\n        group = docBeginGroup(getPageBBox());\n      }\n\n      this.drawChildren(isClip, isMask);\n\n      if (group) {\n        docEndGroup(group);\n        doc.fillOpacity(this.get('opacity'));\n        docInsertGroup(group);\n      }\n\n      doc.restore();\n    };\n  };\n\n  var SvgElemClipPath = function SvgElemClipPath(obj, inherits) {\n    SvgElemHasChildren.call(this, obj, inherits);\n\n    this.useMask = function (bBox) {\n      var group = docBeginGroup(getPageBBox());\n      doc.save();\n\n      if (this.attr('clipPathUnits') === 'objectBoundingBox') {\n        doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n      }\n\n      this.clip();\n      this.drawChildren(true, false);\n      doc.restore();\n      docEndGroup(group);\n      docApplyMask(group, true);\n    };\n  };\n\n  var SvgElemMask = function SvgElemMask(obj, inherits) {\n    SvgElemHasChildren.call(this, obj, inherits);\n\n    this.useMask = function (bBox) {\n      var group = docBeginGroup(getPageBBox());\n      doc.save();\n      var x, y, w, h;\n\n      if (this.attr('maskUnits') === 'userSpaceOnUse') {\n        x = this.getLength('x', this.getVWidth(), -0.1 * (bBox[2] - bBox[0]) + bBox[0]);\n        y = this.getLength('y', this.getVHeight(), -0.1 * (bBox[3] - bBox[1]) + bBox[1]);\n        w = this.getLength('width', this.getVWidth(), 1.2 * (bBox[2] - bBox[0]));\n        h = this.getLength('height', this.getVHeight(), 1.2 * (bBox[3] - bBox[1]));\n      } else {\n        x = this.getLength('x', this.getVWidth(), -0.1) * (bBox[2] - bBox[0]) + bBox[0];\n        y = this.getLength('y', this.getVHeight(), -0.1) * (bBox[3] - bBox[1]) + bBox[1];\n        w = this.getLength('width', this.getVWidth(), 1.2) * (bBox[2] - bBox[0]);\n        h = this.getLength('height', this.getVHeight(), 1.2) * (bBox[3] - bBox[1]);\n      }\n\n      doc.rect(x, y, w, h).clip();\n\n      if (this.attr('maskContentUnits') === 'objectBoundingBox') {\n        doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n      }\n\n      this.clip();\n      this.drawChildren(false, true);\n      doc.restore();\n      docEndGroup(group);\n      docApplyMask(group, true);\n    };\n  };\n\n  var SvgElemTextContainer = function SvgElemTextContainer(obj, inherits) {\n    SvgElemStylable.call(this, obj, inherits);\n    this.allowedChildren = ['tspan', '#text', '#cdata-section', 'a'];\n    this.isText = true;\n\n    this.getBoundingShape = function () {\n      var shape = new SvgShape();\n\n      for (var i = 0; i < this._pos.length; i++) {\n        var pos = this._pos[i];\n\n        if (!pos.hidden) {\n          var dx0 = pos.ascent * Math.sin(pos.rotate),\n              dy0 = -pos.ascent * Math.cos(pos.rotate),\n              dx1 = pos.descent * Math.sin(pos.rotate),\n              dy1 = -pos.descent * Math.cos(pos.rotate),\n              dx2 = pos.width * Math.cos(pos.rotate),\n              dy2 = pos.width * Math.sin(pos.rotate);\n          shape.M(pos.x + dx0, pos.y + dy0).L(pos.x + dx0 + dx2, pos.y + dy0 + dy2).M(pos.x + dx1 + dx2, pos.y + dy1 + dy2).L(pos.x + dx1, pos.y + dy1);\n        }\n      }\n\n      return shape;\n    };\n\n    this.drawTextInDocument = function (isClip, isMask) {\n      if (this.link && !isClip && !isMask) {\n        this.addLink();\n      }\n\n      if (this.get('text-decoration') === 'underline') {\n        this.decorate(0.05 * this._font.size, -0.075 * this._font.size, isClip, isMask);\n      }\n\n      if (this.get('text-decoration') === 'overline') {\n        this.decorate(0.05 * this._font.size, getAscent(this._font.font, this._font.size) + 0.075 * this._font.size, isClip, isMask);\n      }\n\n      var fill = this.getFill(isClip, isMask),\n          stroke = this.getStroke(isClip, isMask),\n          strokeWidth = this.get('stroke-width');\n\n      if (this._font.fauxBold) {\n        if (!stroke) {\n          stroke = fill;\n          strokeWidth = this._font.size * 0.03;\n        } else {\n          strokeWidth += this._font.size * 0.03;\n        }\n      }\n\n      var children = this.getChildren();\n\n      for (var i = 0; i < children.length; i++) {\n        var childElem = children[i];\n\n        switch (childElem.name) {\n          case 'tspan':\n          case 'textPath':\n          case 'a':\n            if (childElem.get('display') !== 'none') {\n              childElem.drawTextInDocument(isClip, isMask);\n            }\n\n            break;\n\n          case '#text':\n          case '#cdata-section':\n            if (this.get('visibility') === 'hidden') {\n              continue;\n            }\n\n            if (fill || stroke || isClip) {\n              if (fill) {\n                docFillColor(fill);\n              }\n\n              if (stroke && strokeWidth) {\n                docStrokeColor(stroke);\n                doc.lineWidth(strokeWidth).miterLimit(this.get('stroke-miterlimit')).lineJoin(this.get('stroke-linejoin')).lineCap(this.get('stroke-linecap')).dash(this.get('stroke-dasharray'), {\n                  phase: this.get('stroke-dashoffset')\n                });\n              }\n\n              docBeginText(this._font.font, this._font.size);\n              docSetTextMode(!!fill, !!stroke);\n\n              for (var j = 0, pos = childElem._pos; j < pos.length; j++) {\n                if (!pos[j].hidden && isNotEqual(pos[j].width, 0)) {\n                  var cos = Math.cos(pos[j].rotate),\n                      sin = Math.sin(pos[j].rotate),\n                      skew = this._font.fauxItalic ? -0.25 : 0;\n                  docSetTextMatrix(cos * pos[j].scale, sin * pos[j].scale, cos * skew - sin, sin * skew + cos, pos[j].x, pos[j].y);\n                  docWriteGlyph(pos[j].glyph);\n                }\n              }\n\n              docEndText();\n            }\n\n            break;\n        }\n      }\n\n      if (this.get('text-decoration') === 'line-through') {\n        this.decorate(0.05 * this._font.size, 0.5 * (getAscent(this._font.font, this._font.size) + getDescent(this._font.font, this._font.size)), isClip, isMask);\n      }\n    };\n\n    this.decorate = function (lineWidth, linePosition, isClip, isMask) {\n      var fill = this.getFill(isClip, isMask),\n          stroke = this.getStroke(isClip, isMask);\n\n      if (fill) {\n        docFillColor(fill);\n      }\n\n      if (stroke) {\n        docStrokeColor(stroke);\n        doc.lineWidth(this.get('stroke-width')).miterLimit(this.get('stroke-miterlimit')).lineJoin(this.get('stroke-linejoin')).lineCap(this.get('stroke-linecap')).dash(this.get('stroke-dasharray'), {\n          phase: this.get('stroke-dashoffset')\n        });\n      }\n\n      for (var j = 0, pos = this._pos; j < pos.length; j++) {\n        if (!pos[j].hidden && isNotEqual(pos[j].width, 0)) {\n          var dx0 = (linePosition + lineWidth / 2) * Math.sin(pos[j].rotate),\n              dy0 = -(linePosition + lineWidth / 2) * Math.cos(pos[j].rotate),\n              dx1 = (linePosition - lineWidth / 2) * Math.sin(pos[j].rotate),\n              dy1 = -(linePosition - lineWidth / 2) * Math.cos(pos[j].rotate),\n              dx2 = pos[j].width * Math.cos(pos[j].rotate),\n              dy2 = pos[j].width * Math.sin(pos[j].rotate);\n          new SvgShape().M(pos[j].x + dx0, pos[j].y + dy0).L(pos[j].x + dx0 + dx2, pos[j].y + dy0 + dy2).L(pos[j].x + dx1 + dx2, pos[j].y + dy1 + dy2).L(pos[j].x + dx1, pos[j].y + dy1).Z().insertInDocument();\n\n          if (fill && stroke) {\n            doc.fillAndStroke();\n          } else if (fill) {\n            doc.fill();\n          } else if (stroke) {\n            doc.stroke();\n          }\n        }\n      }\n    };\n  };\n\n  var SvgElemTextNode = function SvgElemTextNode(obj, inherits) {\n    this.name = obj.nodeName;\n    this.textContent = obj.nodeValue;\n  };\n\n  var SvgElemTspan = function SvgElemTspan(obj, inherits) {\n    SvgElemTextContainer.call(this, obj, inherits);\n  };\n\n  var SvgElemTextPath = function SvgElemTextPath(obj, inherits) {\n    SvgElemTextContainer.call(this, obj, inherits);\n    var pathObject, pathLength, temp;\n\n    if ((temp = this.attr('path')) && temp.trim() !== '') {\n      var _pathLength = this.getLength('pathLength', this.getViewport());\n\n      this.pathObject = new SvgShape().path(temp);\n      this.pathLength = _pathLength > 0 ? _pathLength : this.pathObject.totalLength;\n      this.pathScale = this.pathObject.totalLength / this.pathLength;\n    } else if ((temp = this.getUrl('href') || this.getUrl('xlink:href')) && temp.nodeName === 'path') {\n      var pathElem = new SvgElemPath(temp, this);\n      this.pathObject = pathElem.shape.clone().transform(pathElem.get('transform'));\n      this.pathLength = this.chooseValue(pathElem.pathLength, this.pathObject.totalLength);\n      this.pathScale = this.pathObject.totalLength / this.pathLength;\n    }\n  };\n\n  var SvgElemText = function SvgElemText(obj, inherits) {\n    SvgElemTextContainer.call(this, obj, inherits);\n    this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n\n    (function (textParentElem) {\n      var processedText = '',\n          remainingText = obj.textContent,\n          textPaths = [],\n          currentChunk = [],\n          currentAnchor,\n          currentDirection,\n          currentX = 0,\n          currentY = 0;\n\n      function doAnchoring() {\n        if (currentChunk.length) {\n          var last = currentChunk[currentChunk.length - 1];\n          var first = currentChunk[0];\n          var width = last.x + last.width - first.x;\n          var anchordx = {\n            'startltr': 0,\n            'middleltr': 0.5,\n            'endltr': 1,\n            'startrtl': 1,\n            'middlertl': 0.5,\n            'endrtl': 0\n          }[currentAnchor + currentDirection] * width || 0;\n\n          for (var i = 0; i < currentChunk.length; i++) {\n            currentChunk[i].x -= anchordx;\n          }\n        }\n\n        currentChunk = [];\n      }\n\n      function adjustLength(pos, length, spacingAndGlyphs) {\n        var firstChar = pos[0],\n            lastChar = pos[pos.length - 1],\n            startX = firstChar.x,\n            endX = lastChar.x + lastChar.width;\n\n        if (spacingAndGlyphs) {\n          var textScale = length / (endX - startX);\n\n          if (textScale > 0 && textScale < Infinity) {\n            for (var j = 0; j < pos.length; j++) {\n              pos[j].x = startX + textScale * (pos[j].x - startX);\n              pos[j].scale *= textScale;\n              pos[j].width *= textScale;\n            }\n          }\n        } else {\n          if (pos.length >= 2) {\n            var spaceDiff = (length - (endX - startX)) / (pos.length - 1);\n\n            for (var _j4 = 0; _j4 < pos.length; _j4++) {\n              pos[_j4].x += _j4 * spaceDiff;\n            }\n          }\n        }\n\n        currentX += length - (endX - startX);\n      }\n\n      function recursive(currentElem, parentElem) {\n        currentElem._x = combineArrays(currentElem.getLengthList('x', currentElem.getVWidth()), parentElem ? parentElem._x.slice(parentElem._pos.length) : []);\n        currentElem._y = combineArrays(currentElem.getLengthList('y', currentElem.getVHeight()), parentElem ? parentElem._y.slice(parentElem._pos.length) : []);\n        currentElem._dx = combineArrays(currentElem.getLengthList('dx', currentElem.getVWidth()), parentElem ? parentElem._dx.slice(parentElem._pos.length) : []);\n        currentElem._dy = combineArrays(currentElem.getLengthList('dy', currentElem.getVHeight()), parentElem ? parentElem._dy.slice(parentElem._pos.length) : []);\n        currentElem._rot = combineArrays(currentElem.getNumberList('rotate'), parentElem ? parentElem._rot.slice(parentElem._pos.length) : []);\n        currentElem._defRot = currentElem.chooseValue(currentElem._rot[currentElem._rot.length - 1], parentElem && parentElem._defRot, 0);\n\n        if (currentElem.name === 'textPath') {\n          currentElem._y = [];\n        }\n\n        var fontOptions = {\n          fauxItalic: false,\n          fauxBold: false\n        },\n            fontNameorLink = fontCallback(currentElem.get('font-family'), currentElem.get('font-weight') === 'bold', currentElem.get('font-style') === 'italic', fontOptions);\n\n        try {\n          doc.font(fontNameorLink);\n        } catch (e) {\n          warningCallback('SVGElemText: failed to open font \"' + fontNameorLink + '\" in PDFKit');\n        }\n\n        currentElem._pos = [];\n        currentElem._index = 0;\n        currentElem._font = {\n          font: doc._font,\n          size: currentElem.get('font-size'),\n          fauxItalic: fontOptions.fauxItalic,\n          fauxBold: fontOptions.fauxBold\n        };\n        var textLength = currentElem.getLength('textLength', currentElem.getVWidth(), undefined),\n            spacingAndGlyphs = currentElem.attr('lengthAdjust') === 'spacingAndGlyphs',\n            wordSpacing = currentElem.get('word-spacing'),\n            letterSpacing = currentElem.get('letter-spacing'),\n            textAnchor = currentElem.get('text-anchor'),\n            textDirection = currentElem.get('direction'),\n            baseline = getBaseline(currentElem._font.font, currentElem._font.size, currentElem.get('alignment-baseline') || currentElem.get('dominant-baseline'), currentElem.get('baseline-shift'));\n\n        if (currentElem.name === 'textPath') {\n          doAnchoring();\n          currentX = currentY = 0;\n        }\n\n        var children = currentElem.getChildren();\n\n        for (var i = 0; i < children.length; i++) {\n          var childElem = children[i];\n\n          switch (childElem.name) {\n            case 'tspan':\n            case 'textPath':\n            case 'a':\n              recursive(childElem, currentElem);\n              break;\n\n            case '#text':\n            case '#cdata-section':\n              var rawText = childElem.textContent,\n                  renderedText = rawText,\n                  words = void 0;\n              childElem._font = currentElem._font;\n              childElem._pos = [];\n              remainingText = remainingText.substring(rawText.length);\n\n              if (currentElem.get('xml:space') === 'preserve') {\n                renderedText = renderedText.replace(/[\\s]/g, ' ');\n              } else {\n                renderedText = renderedText.replace(/[\\s]+/g, ' ');\n\n                if (processedText.match(/[\\s]$|^$/)) {\n                  renderedText = renderedText.replace(/^[\\s]/, '');\n                }\n\n                if (remainingText.match(/^[\\s]*$/)) {\n                  renderedText = renderedText.replace(/[\\s]$/, '');\n                }\n              }\n\n              processedText += rawText;\n\n              if (wordSpacing === 0) {\n                words = [renderedText];\n              } else {\n                words = renderedText.split(/(\\s)/);\n              }\n\n              for (var w = 0; w < words.length; w++) {\n                var pos = getTextPos(currentElem._font.font, currentElem._font.size, words[w]);\n\n                for (var j = 0; j < pos.length; j++) {\n                  var index = currentElem._index,\n                      xAttr = currentElem._x[index],\n                      yAttr = currentElem._y[index],\n                      dxAttr = currentElem._dx[index],\n                      dyAttr = currentElem._dy[index],\n                      rotAttr = currentElem._rot[index],\n                      continuous = !(w === 0 && j === 0);\n\n                  if (xAttr !== undefined) {\n                    continuous = false;\n                    doAnchoring();\n                    currentX = xAttr;\n                  }\n\n                  if (yAttr !== undefined) {\n                    continuous = false;\n                    doAnchoring();\n                    currentY = yAttr;\n                  }\n\n                  if (dxAttr !== undefined) {\n                    continuous = false;\n                    currentX += dxAttr;\n                  }\n\n                  if (dyAttr !== undefined) {\n                    continuous = false;\n                    currentY += dyAttr;\n                  }\n\n                  if (rotAttr !== undefined || currentElem._defRot !== 0) {\n                    continuous = false;\n                  }\n\n                  var position = {\n                    glyph: pos[j].glyph,\n                    rotate: Math.PI / 180 * currentElem.chooseValue(rotAttr, currentElem._defRot),\n                    x: currentX + pos[j].xOffset,\n                    y: currentY + baseline + pos[j].yOffset,\n                    width: pos[j].width,\n                    ascent: getAscent(currentElem._font.font, currentElem._font.size),\n                    descent: getDescent(currentElem._font.font, currentElem._font.size),\n                    scale: 1,\n                    hidden: false,\n                    continuous: continuous\n                  };\n                  currentChunk.push(position);\n\n                  childElem._pos.push(position);\n\n                  currentElem._pos.push(position);\n\n                  currentElem._index += pos[j].unicode.length;\n\n                  if (currentChunk.length === 1) {\n                    currentAnchor = textAnchor;\n                    currentDirection = textDirection;\n                  }\n\n                  currentX += pos[j].xAdvance + letterSpacing;\n                  currentY += pos[j].yAdvance;\n                }\n\n                if (words[w] === ' ') {\n                  currentX += wordSpacing;\n                }\n              }\n\n              break;\n\n            default:\n              remainingText = remainingText.substring(childElem.textContent.length);\n          }\n        }\n\n        if (textLength && currentElem._pos.length) {\n          adjustLength(currentElem._pos, textLength, spacingAndGlyphs);\n        }\n\n        if (currentElem.name === 'textPath' || currentElem.name === 'text') {\n          doAnchoring();\n        }\n\n        if (currentElem.name === 'textPath') {\n          textPaths.push(currentElem);\n          var pathObject = currentElem.pathObject;\n\n          if (pathObject) {\n            currentX = pathObject.endPoint[0];\n            currentY = pathObject.endPoint[1];\n          }\n        }\n\n        if (parentElem) {\n          parentElem._pos = parentElem._pos.concat(currentElem._pos);\n          parentElem._index += currentElem._index;\n        }\n      }\n\n      function textOnPath(currentElem) {\n        var pathObject = currentElem.pathObject,\n            pathLength = currentElem.pathLength,\n            pathScale = currentElem.pathScale;\n\n        if (pathObject) {\n          var textOffset = currentElem.getLength('startOffset', pathLength, 0);\n\n          for (var j = 0; j < currentElem._pos.length; j++) {\n            var charMidX = textOffset + currentElem._pos[j].x + 0.5 * currentElem._pos[j].width;\n\n            if (charMidX > pathLength || charMidX < 0) {\n              currentElem._pos[j].hidden = true;\n            } else {\n              var pointOnPath = pathObject.getPointAtLength(charMidX * pathScale);\n\n              if (isNotEqual(pathScale, 1)) {\n                currentElem._pos[j].scale *= pathScale;\n                currentElem._pos[j].width *= pathScale;\n              }\n\n              currentElem._pos[j].x = pointOnPath[0] - 0.5 * currentElem._pos[j].width * Math.cos(pointOnPath[2]) - currentElem._pos[j].y * Math.sin(pointOnPath[2]);\n              currentElem._pos[j].y = pointOnPath[1] - 0.5 * currentElem._pos[j].width * Math.sin(pointOnPath[2]) + currentElem._pos[j].y * Math.cos(pointOnPath[2]);\n              currentElem._pos[j].rotate = pointOnPath[2] + currentElem._pos[j].rotate;\n              currentElem._pos[j].continuous = false;\n            }\n          }\n        } else {\n          for (var _j5 = 0; _j5 < currentElem._pos.length; _j5++) {\n            currentElem._pos[_j5].hidden = true;\n          }\n        }\n      }\n\n      recursive(textParentElem, null);\n\n      for (var i = 0; i < textPaths.length; i++) {\n        textOnPath(textPaths[i]);\n      }\n    })(this);\n\n    this.getTransformation = function () {\n      return this.get('transform');\n    };\n\n    this.drawInDocument = function (isClip, isMask) {\n      doc.save();\n      this.transform();\n      this.clip();\n      var masked = this.mask(),\n          group;\n\n      if (masked) {\n        group = docBeginGroup(getPageBBox());\n      }\n\n      this.drawTextInDocument(isClip, isMask);\n\n      if (group) {\n        docEndGroup(group);\n        docInsertGroup(group);\n      }\n\n      doc.restore();\n    };\n  };\n\n  options = options || {};\n  var pxToPt = options.assumePt ? 1 : 72 / 96,\n      // 1px = 72/96pt, but only if assumePt is false\n  viewportWidth = (options.width || doc.page.width) / pxToPt,\n      viewportHeight = (options.height || doc.page.height) / pxToPt,\n      preserveAspectRatio = options.preserveAspectRatio || null,\n      // default to null so that the attr can override if not passed\n  useCSS = options.useCSS && typeof SVGElement !== 'undefined' && svg instanceof SVGElement && typeof getComputedStyle === 'function',\n      warningCallback = options.warningCallback,\n      fontCallback = options.fontCallback,\n      imageCallback = options.imageCallback,\n      colorCallback = options.colorCallback,\n      documentCallback = options.documentCallback,\n      precision = Math.ceil(Math.max(1, options.precision)) || 3,\n      groupStack = [],\n      documentCache = {},\n      links = [],\n      styleRules = [];\n\n  if (typeof warningCallback !== 'function') {\n    warningCallback = function warningCallback(str) {\n      if (typeof console !== undefined && typeof console.warn === 'function') {\n        console.warn(str);\n      }\n    };\n  }\n\n  if (typeof fontCallback !== 'function') {\n    fontCallback = function fontCallback(family, bold, italic, fontOptions) {\n      // Check if the font is already registered in the document\n      if (bold && italic) {\n        if (doc._registeredFonts.hasOwnProperty(family + '-BoldItalic')) {\n          return family + '-BoldItalic';\n        } else if (doc._registeredFonts.hasOwnProperty(family + '-Italic')) {\n          fontOptions.fauxBold = true;\n          return family + '-Italic';\n        } else if (doc._registeredFonts.hasOwnProperty(family + '-Bold')) {\n          fontOptions.fauxItalic = true;\n          return family + '-Bold';\n        } else if (doc._registeredFonts.hasOwnProperty(family)) {\n          fontOptions.fauxBold = true;\n          fontOptions.fauxItalic = true;\n          return family;\n        }\n      }\n\n      if (bold && !italic) {\n        if (doc._registeredFonts.hasOwnProperty(family + '-Bold')) {\n          return family + '-Bold';\n        } else if (doc._registeredFonts.hasOwnProperty(family)) {\n          fontOptions.fauxBold = true;\n          return family;\n        }\n      }\n\n      if (!bold && italic) {\n        if (doc._registeredFonts.hasOwnProperty(family + '-Italic')) {\n          return family + '-Italic';\n        } else if (doc._registeredFonts.hasOwnProperty(family)) {\n          fontOptions.fauxItalic = true;\n          return family;\n        }\n      }\n\n      if (!bold && !italic) {\n        if (doc._registeredFonts.hasOwnProperty(family)) {\n          return family;\n        }\n      } // Use standard fonts as fallback\n\n\n      if (family.match(/(?:^|,)\\s*serif\\s*$/)) {\n        if (bold && italic) {\n          return 'Times-BoldItalic';\n        }\n\n        if (bold && !italic) {\n          return 'Times-Bold';\n        }\n\n        if (!bold && italic) {\n          return 'Times-Italic';\n        }\n\n        if (!bold && !italic) {\n          return 'Times-Roman';\n        }\n      } else if (family.match(/(?:^|,)\\s*monospace\\s*$/)) {\n        if (bold && italic) {\n          return 'Courier-BoldOblique';\n        }\n\n        if (bold && !italic) {\n          return 'Courier-Bold';\n        }\n\n        if (!bold && italic) {\n          return 'Courier-Oblique';\n        }\n\n        if (!bold && !italic) {\n          return 'Courier';\n        }\n      } else if (family.match(/(?:^|,)\\s*sans-serif\\s*$/) || true) {\n        if (bold && italic) {\n          return 'Helvetica-BoldOblique';\n        }\n\n        if (bold && !italic) {\n          return 'Helvetica-Bold';\n        }\n\n        if (!bold && italic) {\n          return 'Helvetica-Oblique';\n        }\n\n        if (!bold && !italic) {\n          return 'Helvetica';\n        }\n      }\n    };\n  }\n\n  if (typeof imageCallback !== 'function') {\n    imageCallback = function imageCallback(link) {\n      return link.replace(/\\s+/g, '');\n    };\n  }\n\n  if (typeof colorCallback !== 'function') {\n    colorCallback = null;\n  } else {\n    for (var color in DefaultColors) {\n      var newColor = colorCallback(DefaultColors[color]);\n      DefaultColors[color][0] = newColor[0];\n      DefaultColors[color][1] = newColor[1];\n    }\n  }\n\n  if (typeof documentCallback !== 'function') {\n    documentCallback = null;\n  }\n\n  if (typeof svg === 'string') {\n    svg = parseXml(svg);\n  }\n\n  if (svg) {\n    var styles = svg.getElementsByTagName('style');\n\n    for (var i = 0; i < styles.length; i++) {\n      styleRules = styleRules.concat(parseStyleSheet(styles[i].textContent));\n    }\n\n    var elem = createSVGElement(svg, null);\n\n    if (typeof elem.drawInDocument === 'function') {\n      if (options.useCSS && !useCSS) {\n        warningCallback('SVGtoPDF: useCSS option can only be used for SVG *elements* in compatible browsers');\n      }\n\n      var savedFillColor = doc._fillColor;\n      doc.save().translate(x || 0, y || 0).scale(pxToPt);\n      elem.drawInDocument();\n\n      for (var _i8 = 0; _i8 < links.length; _i8++) {\n        doc.page.annotations.push(links[_i8]);\n      }\n\n      doc.restore();\n      doc._fillColor = savedFillColor;\n    } else {\n      warningCallback('SVGtoPDF: this element can\\'t be rendered directly: ' + svg.nodeName);\n    }\n  } else {\n    warningCallback('SVGtoPDF: the input does not look like a valid SVG');\n  }\n};\n\nif ( true && module && typeof module.exports !== 'undefined') {\n  module.exports = SVGtoPDF;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(555)(module)))\n\n/***/ }),\n/* 555 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n/* 556 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Internet Explorer polyfills\nif (typeof window !== 'undefined' && !window.Promise) {\n\t__webpack_require__(557);\n}\n__webpack_require__(568);\n\nvar fetchUrl = function (url) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', url, true);\n\t\txhr.responseType = 'arraybuffer';\n\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState !== 4) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar ok = xhr.status >= 200 && xhr.status < 300;\n\t\t\tif (!ok) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\treject(new TypeError('Failed to fetch (url: \"' + url + '\")'));\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t};\n\n\t\txhr.onload = function () {\n\t\t\tvar ok = xhr.status >= 200 && xhr.status < 300;\n\t\t\tif (ok) {\n\t\t\t\tresolve(xhr.response);\n\t\t\t}\n\t\t};\n\n\t\txhr.onerror = function () {\n\t\t\tsetTimeout(function () {\n\t\t\t\treject(new TypeError('Network request failed (url: \"' + url + '\")'));\n\t\t\t}, 0);\n\t\t};\n\n\t\txhr.ontimeout = function () {\n\t\t\tsetTimeout(function () {\n\t\t\t\treject(new TypeError('Network request failed (url: \"' + url + '\")'));\n\t\t\t}, 0);\n\t\t};\n\n\t\txhr.send();\n\t});\n};\n\nfunction URLBrowserResolver(fs) {\n\tthis.fs = fs;\n\tthis.resolving = {};\n}\n\nURLBrowserResolver.prototype.resolve = function (url) {\n\tif (!this.resolving[url]) {\n\t\tvar _this = this;\n\t\tthis.resolving[url] = new Promise(function (resolve, reject) {\n\t\t\tif (url.toLowerCase().indexOf('https://') === 0 || url.toLowerCase().indexOf('http://') === 0) {\n\t\t\t\tfetchUrl(url).then(function (buffer) {\n\t\t\t\t\t_this.fs.writeFileSync(url, buffer);\n\t\t\t\t\tresolve();\n\t\t\t\t}, function (result) {\n\t\t\t\t\treject(result);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// cannot be resolved\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t}\n\n\treturn this.resolving[url];\n}\n\nURLBrowserResolver.prototype.resolved = function () {\n\tvar _this = this;\n\treturn new Promise(function (resolve, reject) {\n\t\tPromise.all(Object.values(_this.resolving)).then(function () {\n\t\t\tresolve();\n\t\t}, function (result) {\n\t\t\treject(result);\n\t\t});\n\t});\n}\n\nmodule.exports = URLBrowserResolver;\n\n\n/***/ }),\n/* 557 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(558);\n__webpack_require__(564);\n// TODO: Remove from `core-js@4`\n__webpack_require__(565);\n__webpack_require__(566);\n__webpack_require__(567);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 558 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(295);\n__webpack_require__(31);\n__webpack_require__(559);\n__webpack_require__(300);\n__webpack_require__(301);\n__webpack_require__(563);\n__webpack_require__(160);\n__webpack_require__(120);\nvar path = __webpack_require__(114);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 559 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(56);\nvar global = __webpack_require__(3);\nvar getBuiltIn = __webpack_require__(34);\nvar NativePromise = __webpack_require__(296);\nvar redefine = __webpack_require__(25);\nvar redefineAll = __webpack_require__(222);\nvar setToStringTag = __webpack_require__(95);\nvar setSpecies = __webpack_require__(158);\nvar isObject = __webpack_require__(14);\nvar aFunction = __webpack_require__(44);\nvar anInstance = __webpack_require__(157);\nvar inspectSource = __webpack_require__(140);\nvar iterate = __webpack_require__(136);\nvar checkCorrectnessOfIteration = __webpack_require__(155);\nvar speciesConstructor = __webpack_require__(36);\nvar task = __webpack_require__(297).set;\nvar microtask = __webpack_require__(560);\nvar promiseResolve = __webpack_require__(299);\nvar hostReportErrors = __webpack_require__(562);\nvar newPromiseCapabilityModule = __webpack_require__(109);\nvar perform = __webpack_require__(137);\nvar InternalStateModule = __webpack_require__(42);\nvar isForced = __webpack_require__(145);\nvar wellKnownSymbol = __webpack_require__(6);\nvar IS_NODE = __webpack_require__(199);\nvar V8_VERSION = __webpack_require__(148);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true;\n    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n  }\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  task.call(global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then;\n\n    // wrap native Promise#then for native async functions\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected);\n    // https://github.com/zloirock/core-js/issues/640\n    }, { unsafe: true });\n\n    // wrap fetch result\n    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input /* , init */) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.es/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.es/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.es/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.es/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n\n\n/***/ }),\n/* 560 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar getOwnPropertyDescriptor = __webpack_require__(54).f;\nvar macrotask = __webpack_require__(297).set;\nvar IS_IOS = __webpack_require__(298);\nvar IS_WEBOS_WEBKIT = __webpack_require__(561);\nvar IS_NODE = __webpack_require__(199);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    then = promise.then;\n    notify = function () {\n      then.call(promise, flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n\n\n/***/ }),\n/* 561 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(149);\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n\n\n/***/ }),\n/* 562 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n\n\n/***/ }),\n/* 563 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(56);\nvar NativePromise = __webpack_require__(296);\nvar fails = __webpack_require__(4);\nvar getBuiltIn = __webpack_require__(34);\nvar speciesConstructor = __webpack_require__(36);\nvar promiseResolve = __webpack_require__(299);\nvar redefine = __webpack_require__(25);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 564 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\n__webpack_require__(295);\n\n\n/***/ }),\n/* 565 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\n__webpack_require__(300);\n\n\n/***/ }),\n/* 566 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(1);\nvar newPromiseCapabilityModule = __webpack_require__(109);\nvar perform = __webpack_require__(137);\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true }, {\n  'try': function (callbackfn) {\n    var promiseCapability = newPromiseCapabilityModule.f(this);\n    var result = perform(callbackfn);\n    (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n    return promiseCapability.promise;\n  }\n});\n\n\n/***/ }),\n/* 567 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\n__webpack_require__(301);\n\n\n/***/ }),\n/* 568 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(569);\nvar path = __webpack_require__(114);\n\nmodule.exports = path.Object.values;\n\n\n/***/ }),\n/* 569 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(1);\nvar $values = __webpack_require__(570).values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n\n\n/***/ }),\n/* 570 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(13);\nvar objectKeys = __webpack_require__(94);\nvar toIndexedObject = __webpack_require__(27);\nvar propertyIsEnumerable = __webpack_require__(110).f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.es/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.es/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n\n\n/***/ }),\n/* 571 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// eslint-disable-next-line func-names\nmodule.exports = function () {\n  if (typeof globalThis === \"object\") {\n    return globalThis;\n  }\n\n  var g;\n\n  try {\n    // This works if eval is allowed (see CSP)\n    // eslint-disable-next-line no-new-func\n    g = this || new Function(\"return this\")();\n  } catch (e) {\n    // This works if the window reference is available\n    if (typeof window === \"object\") {\n      return window;\n    } // This works if the self reference is available\n\n\n    if (typeof self === \"object\") {\n      return self;\n    } // This works if the global reference is available\n\n\n    if (typeof global !== \"undefined\") {\n      return global;\n    }\n  }\n\n  return g;\n}();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdfmake.js.map"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/pdfmake/vfs_fonts.js",
    "content": "this.pdfMake = this.pdfMake || {}; this.pdfMake.vfs = {\n  \"Roboto-Italic.ttf\": \"AAEAAAASAQAABAAgR0RFRrRCsIIAAjGsAAACYkdQT1P/GhLXAAI0EAAAXcxHU1VC64LkWQACkdwAABWQT1MvMpeCsVIAAAGoAAAAYGNtYXABd1geAAAbWAAAEkZjdnQgBLst2gAAMKAAAABSZnBnbXP3H6sAAC2gAAABvGdhc3AACAATAAIxoAAAAAxnbHlm8oCfSQAAOxQAAfIkaGRteDpbTGEAABZAAAAFGGhlYWT8pdJlAAABLAAAADZoaGVhDKYSnAAAAWQAAAAkaG10eDNk1vwAAAIIAAAUOGxvY2F8sflRAAAw9AAACh5tYXhwBz4DAgAAAYgAAAAgbmFtZeyjGUsAAi04AAAER3Bvc3T/YQBkAAIxgAAAACBwcmVwvaJduAAAL1wAAAFEAAEAAAACIxI2CQuMXw889QAZCAAAAAAAxPARLgAAAADVAVLf+jj91QlMCHMAAgAJAAIAAAAAAAAAAQAAB2z+DAAACRb6OP5sCUwIAAGzAAAAAAAAAAAAAAAABQ4AAQAABQ4AkAAWAFYABQABAAAAAAAOAAACAAIaAAYAAQADBG8BkAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAAEAAP/9BgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwOWAGQAAAAAAAAAAAH2AAAB9gAAAgkAQwKFAMgE0QBSBGYASgW5ALsE3QA6AWQAqgKxAG0Cvf+PA2IAawRwAEwBkP+PAi4AGQIVADUDPf+PBGYAaARmAPkEZgAXBGYANARmAAUEZgByBGYAcARmAJ0EZgBBBGYAlAHrACsBrv+bA/wAQQRMAHAEGAA6A7QApQcCAEQFGv+vBN8AOwUXAHQFIQA7BHMAOwRUADsFUwB5BZIAOwImAEkEUgAKBOcAOwQ3ADsG0AA7BZIAOwVgAHcE7wA7BWAAbwTRADoEpQAnBKsAqAUSAGcE+gCkBuwAwwTn/9QEswCoBK//6wIZ//8DOQC/Ahn/egNIAE8Div+BAnAA0ARDADMEZQAfBBoARgRqAEsEJgBFArwAdARlAAQEUAAfAewALwHk/xQD+QAgAewALwbXAB4EUgAfBHcARQRl/9cEcwBJAqoAHwQKAC4CkwBDBFEAWwPMAG4F3wCAA+P/xAO2/6UD4//tAqoAOAHuACECqv+MBVEAaQHu//EESABSBIz/8wWSABIEHQBDAeb/9wTM/90DSADaBiMAYgOCAMMDrgBZBFYAgQYkAGEDmAD3AvAA6AQvACUC4gBcAuIAbgJ5ANUEb//lA9UAewIQAKUB9v/IAuIA3gORAMADrQAPBbkAuQYPALQGEwCeA7b/0wdL/4QELQAoBWAAIASgADgEpwAeBpcAEwSWAFwEeABEBG8AOQSD/+AErABLBXkANQH1AC4EWwAtBDgAIgIiACMFagA1BG8AJAdwAFQHFgBHAfcAMwVnAFECrv9JBV4AZwR5AEIFbwBnBNcAWgH+/wkEIQA+A7EBFwN8AScDmQD3A1oBBwHsAQ4CogEBAiP/rwOzAN0C7wDCAlL/6QAA/WoAAP3rAAD9CwAA/fUAAPzbAAD8uwIHASED9gDzAhEApQRbAEMFg/+xBVEAaQUg/8QEeAAMBZMARAR4/9oFmQBVBWgAhgUzAAoEbABIBKP/8APtAIQEbwBDBDkAKQQPAIIEbwAkBHUAcwKNAIUEVv+3A9gAPwSpAGAEb//cBDYATgRvAEoEFgCHBEUAZwWCAEEFeQBPBm4AZgSHAFEEKwBnBiIAZgXbAKEFRQB4CFn/zAhsAEMGWgC0BZIAQgTuADQF4P+LBxX/rASlACUFkgBDBYj/ygTqAJMGBwBbBbYAQQVaAM4HVwBCB44AQgXtAIkGwABFBOgANgVFAHQG+gBJBPv/6ARUAEYEeQAwA0sALQS5/40F+/+lA/sAIQSFAC8EOwAvBIb/yAXLADAEhAAvBIUALwPEAGAFqgBMBKMALwRCAHsGUAAvBnUAJATbAFYGEAAwBEEAMAQ2ADQGXwAwBEz/vwRQAB8ENgBOBp//wwa5AC8EcAAfBIUALwbcAG8GBgBPBD8ALgb+AEkF1AAsBLf/ugQv/6IG3wBaBecATganACYFvgApCMkASAefAC4EDf/OA8f/ygVRAGkEcgBCBO0ArQPuAIQFUQBqBG8ARAbVAHQF/wBSBtwAbwYGAE8FFABmBDAATQThAEAAAPzoAAD9CwAA/hcAAP47AAD6OAAA+k8F5QBDBNEALwQ/AC4E/gA6BHD/1wRLADUDfwAkBMAAQwPwACQHcf+sBjr/pQV5AEQEngAvBOwANgRmAC0GZAC7BWMAdAXbADsEvgAvB50AOgWSACQH/ABCBskAJAXKAHEEuABfBPv/1AQU/8QG/wCsBT0AVwWaAM4EfQB7BU8AxARSAJgFTwAcBgoAigSjAAcE7AA1BEMALQXa/8oE0//IBZAAQwRvACQF7QA7BNAALwchADsGGAAwBWcAUQSOADwEjv/8BJ3/+AOZ/+kFEP/UBCn/xATaADEGawAyBrkATAYvAK0FDQBoBDIArwPyAKAHj//fBk3/2gfIADsGeAAjBNoAagQHAEwFiwCaBQMAfQVFAGoF3v/KBNb/yAMSAPID/wAAB/QAAAP/AAAH9AAAAq4AAAIEAAABXAAABGYAAAIpAAABnwAAAQIAAADVAAAAAAAAAi0AGQItABkFIgCnBhkAmQOT/14BlwCuAZcAiQGV/5gBlwDUAsgAtgLPAJUCtv+UBFEAdwR2//YCpwCgA7EAOQU7ADkBfQBSB3kAlwJeAF8CXgACA5H/7wLiAGMDUAB+BIz/8wYuAAoGaAA5CD8AOgXIAAkGBgAfBGYAUQW3AEMEDABJBFwACgUp//IFMP/lBcQAzAO7AEsIBQA1BOUA6gT6AIIGAQC1BqwAkgalAI8GQwC+BHYATQVtACQElf+sBHkAqwSqAEEIBQBNAgb/GgRpADEETABwA/z/1AQZABkD8wBBAkQAeAKFAHAB/v/jBNcAdARWAFgEcgB0BqoAdAaqAHQE0gB0BnIAKQAAAAAH/v+rCDUAXALi/+kC4gBrAuIAHQP6AGsD+gAoA/oAcAP5AEsD+gBKA/r/9wP6ABYD+v/9A/oAvAP6AEoEDf/cBBUAdAQ9/7YF8ACVBE8AegRkAEUEEABtBAoAEQQzAB0EoQBFBEUAHQShAEoExwAdBd4AHQOiAB0EPQAdA7z/9gHjACoExwAdBJIATAO4AB0ECgASBB0ABgOPABkDnQAdBE//sAShAEoET/+wA3j/0wSzAB0D2//VBUgAUQT6AH4E1gAMBVIAbARkAEcHE//EByEAHQVUAG0EsgAdBEIAHwUH/4kF5/+vBCgAEQTQAB8ENwAeBKb/xAQJAFgFCgAdBFIAWgYqAB0GgwAdBQAAUAXNAB8ENwAfBGMAIAZOAB0Ebv/fA/z/+gYh/68EYQAeBOwAHgUZAGkFoABQBEcAdASO/7YGOgBsBFIAWgRSAB0FoQAvBK8AQQQoABEEoQBKBB3//wPPAB4H7gAdBJH/3QLi//sC4v/wAuIAFgLiAB4C4gAvAuIACwLiADYDhACTAqoBCwPSAB0EJP+aBKgASwUtAEMFBwBEA/4AJQUfAEQD+gAlBGcAHQRkAEcEOQAdBGz/pQH4APwDkgERAAD9KgPbANID3wAiA/kAzgPgAM0DnQAdA40BEQOMARIC4gCQAuIAYwLiAIkC4gCRAuIAogLiAH4C4gCpBWEAgQWMAIQFcgBEBb0AhQXAAIUDwgC7BGkAOQRB/4EEtP/TBFP/1QQYACsDkgETAY//vQZ7AEkEnwA/Aff/DwRm/6wEZv/jBGb/uQRmAC0EZgBWBGYAJQRmAGoEZgAdBGYAQQRmAQwCAP8JAf//CQH2AC4B9v96AfYALgQ5AB0E5ABkBAoAYgRlAB8EHABDBHoARwRzACQEhQBBBHT/1wSDAEYEJgBFBGUANQNoAKkEuwArA6L/6AYT/5oD5AAdBKH/9ATHAB0ExwAdAfYAAAIuABkFPwARBT8AEQRuAD0EqwCoApP/9AUa/68FGv+vBRr/rwUa/68FGv+vBRr/rwUa/68FFwB0BHMAOwRzADsEcwA7BHMAOwImAEkCJgBJAiYASQImAEkFkgA7BWAAdwVgAHcFYAB3BWAAdwVgAHcFEgBnBRIAZwUSAGcFEgBnBLMAqARDADMEQwAzBEMAMwRDADMEQwAzBEMAMwRDADMEGgBGBCYARQQmAEUEJgBFBCYARQH1AC4B9QAuAfUALgH1AC4EUgAfBHcARQR3AEUEdwBFBHcARQR3AEUEUQBbBFEAWwRRAFsEUQBbA7b/pQO2/6UFGv+vBEMAMwUa/68EQwAzBRr/rwRDADMFFwB0BBoARgUXAHQEGgBGBRcAdAQaAEYFFwB0BBoARgUhADsFAABLBHMAOwQmAEUEcwA7BCYARQRzADsEJgBFBHMAOwQmAEUEcwA7BCYARQVTAHkEZQAEBVMAeQRlAAQFUwB5BGUABAVTAHkEZQAEBZIAOwRQAB8CJgBJAfUAEQImAEkB9QAuAiYASQH1AC4CJv+OAez/cAImAEkGeABJA9AALwRSAAoB/v8JBOcAOwP5ACAENwA7AewALwQ3ADsB7P+jBDcAOwKCAC8ENwA7AsgALwWSADsEUgAfBZIAOwRSAB8FkgA7BFIAHwRSAB8FYAB3BHcARQVgAHcEdwBFBWAAdwR3AEUE0QA6AqoAHwTRADoCqv+fBNEAOgKqAB8EpQAnBAoALgSlACcECgAuBKUAJwQKAC4EpQAnBAoALgSlACcECgAuBKsAqAKTAEMEqwCoApMAQwSrAKgCuwBDBRIAZwRRAFsFEgBnBFEAWwUSAGcEUQBbBRIAZwRRAFsFEgBnBFEAWwUSAGcEUQBbBuwAwwXfAIAEswCoA7b/pQSzAKgEr//rA+P/7QSv/+sD4//tBK//6wPj/+0HS/+EBpcAEwVgACAEbwA5BGf/sARn/7AEEABtBGz/pQRs/6UEbP+lBGz/pQRs/6UEbP+lBGz/pQRkAEcD0gAdA9IAHQPSAB0D0gAdAeMAKgHjACoB4wAqAeMAKgTHAB0EoQBKBKEASgShAEoEoQBKBKEASgRkAEUEZABFBGQARQRkAEUEFQB0BGz/pQRs/6UEbP+lBGQARwRkAEcEZABHBGQARwRnAB0D0gAdA9IAHQPSAB0D0gAdA9IAHQSSAEwEkgBMBJIATASSAEwExwAdAeMADwHjACoB4wAqAeP/egHjACoDvP/2BD0AHQOiAB0DogAdA6IAHQOiAB0ExwAdBMcAHQTHAB0EoQBKBKEASgShAEoEMwAdBDMAHQQzAB0ECgARBAoAEQQKABEECgARBBAAbQQQAG0EEABtBGQARQRkAEUEZABFBGQARQRkAEUEZABFBfAAlQQVAHQEFQB0BA3/3AQN/9wEDf/cBRr/rwRz/58Fkv+tAib/swV0AFYFF/+KBUcAHgKNACAFGv+vBN8AOwRzADsEr//rBZIAOwImAEkE5wA7BtAAOwWSADsFYAB3BO8AOwSrAKgEswCoBOf/1AImAEkEswCoBGwASAQ5ACkEbwAkAo0AhQRFAGcEWwAtBHcARQRv/+UDzABuA+P/xAKNAGYERQBnBHcARQRFAGcGbgBmBHMAOwRbAEMEpQAnAiYASQImAEkEUgAKBQcARATnADsE6gCTBRr/rwTfADsEWwBDBHMAOwWSAEMG0AA7BZIAOwVgAHcFkwBEBO8AOwUXAHQEqwCoBOf/1ARDADMEJgBFBIUALwR3AEUEZf/XBBoARgO2/6UD4//EBCYARQNLAC0ECgAuAewALwH1AC4B5P8UBDsALwO2/6UG7ADDBd8AgAbsAMMF3wCABuwAwwXfAIAEswCoA7b/pQFkAKoChQDIBBIAQwH+/wkBlwCJBtAAOwbXAB4FGv+vBEMAMwRzADsFkgBDBCYARQSFAC8FaACGBXkATwTtAK0D7gCECC0ARQkWAHcEpQAlA/sAIQUXAHQEGgBGBLMAqAPtAIQCJgBJBxX/rAX7/6UCJgBJBRr/rwRDADMFGv+vBEMAMwdL/4QGlwATBHMAOwQmAEUFZwBRBCEAPgQhAD4HFf+sBfv/pQSlACUD+wAhBZIAQwSFAC8FkgBDBIUALwVgAHcEdwBFBVEAaQRyAEIFUQBpBHIAQgVFAHQENgA0BOoAkwO2/6UE6gCTA7b/pQTqAJMDtv+lBVoAzgRCAHsGwABFBhAAMARqAEsFGv+vBEMAMwUa/68EQwAzBRr/rwRDADMFGv+vBEMAMwUa/68EQwAzBRr/rwRDADMFGv+vBEMAMwUa/68EQwAzBRr/rwRDADMFGv+vBEMAMwUa/68EQwAzBRr/rwRDADMEcwA7BCYARQRzADsEJgBFBHMAOwQmAEUEcwA7BCYARQRzADsEJgBFBHMAOwQmAEUEcwA7BCYARQRzADsEJgBFAiYASQH1AC4CJgAOAez/8QVgAHcEdwBFBWAAdwR3AEUFYAB3BHcARQVgAHcEdwBFBWAAdwR3AEUFYAB3BHcARQVgAHcEdwBFBV4AZwR5AEIFXgBnBHkAQgVeAGcEeQBCBV4AZwR5AEIFXgBnBHkAQgUSAGcEUQBbBRIAZwRRAFsFbwBnBNcAWgVvAGcE1wBaBW8AZwTXAFoFbwBnBNcAWgVvAGcE1wBaBLMAqAO2/6UEswCoA7b/pQSzAKgDtv+lBIgAAASrAKgDxABgBVoAzgRCAHsEWwBDA0sALQYKAIoEowAHBFAAHwToACsE6AArBFsAEANL/+YFGwBJBBIAKwSzAKgD7QBdBOf/1APj/8QEOQApBFT/1wYZAJkEZgAXBGYANARmAAUEZgByBHoAhASOAFUEegCUBI4AfAVTAHkEZQAEBZIAOwRSAB8FGv+vBEMAMwRzADsEJgBFAib/3wH1/40FYAB3BHcARQTRADoCqgAfBRIAZwRRAFsEj/9OBN8AOwRlAB8FIQA7BGoASwUhADsEagBLBZIAOwRQAB8E5wA7A/kAIATnADsD+QAgBDcAOwHs//IG0AA7BtcAHgWSADsEUgAfBWAAdwTvADsEZf/XBNEAOgKq/+4EpQAnBAoALgSrAKgCkwBDBRIAZwT6AKQDzABuBPoApAPMAG4G7ADDBd8AgASv/+sD4//tBab+xgRs/6UEDv+lBQP/wQIf/8UEqwATBFH/XwTgABYEbP+lBDkAHQPSAB0EDf/cBMcAHQHjACoEPQAdBd4AHQTHAB0EoQBKBEUAHQQQAG0EFQB0BD3/tgHjACoEFQB0A9IAHQOdAB0ECgARAeMAKgHjACoDvP/2BD0AHQQJAFgEbP+lBDkAHQOdAB0D0gAdBNAAHwXeAB0ExwAdBKEASgSzAB0ERQAdBGQARwQQAG0EPf+2BCgAEQTHAB0EZABIBBUAdAWhAC8E0AAfBAkAWAVIAFEFnwAqBhP/mgSh//QECgARBfAAlQXwAJUF8ACVBBUAdAUa/68EQwAzBHMAOwQmAEUEbP+lA9IAHQH1//EAAAABAAAFEAkKBAAAAgICAwUFBgUCAwMEBQICAgQFBQUFBQUFBQUFAgIEBQUECAYFBgYFBQYGAgUGBQgGBgYGBQUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgQCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBQQHBAQFBwQDBQMDAwUEAgIDBAQGBwcECAUGBQUHBQUFBQUGAgUFAgYFCAgCBgMGBQYFAgUEBAQEAgMCBAMDAAAAAAAAAgQCBQYGBgUGBQYGBgUFBAUFBQUFAwUEBQUFBQUFBgYHBQUHBwYJCQcGBgcIBQYGBgcGBggJBwgGBggGBQUEBQcEBQUFBwUFBAYFBQcHBQcFBQcFBQUHCAUFCAcFCAcFBQgHBwYKCQUEBgUGBAYFCAcIBwYFBQAAAAAAAAcFBQYFBQQFBAgHBgUGBQcGBwUJBgkIBwUGBQgGBgUGBQYHBQYFBwUGBQcFCAcGBQUFBAYFBQcIBwYFBAkHCQcFBQYGBgcFAwUJBQkDAgIFAgIBAQACAgYHBAICAgIDAwMFBQMEBgIIAwMEAwQFBwcJBwcFBgUFBgYGBAkGBgcIBwcFBgUFBQkCBQUEBQQDAwIFBQUICAUHAAkJAwMDBAQEBAQEBAQEBAUFBQcFBQUFBQUFBQUHBAUEAgUFBAUFBAQFBQUEBQQGBgUGBQgIBgUFBgcFBQUFBQYFBwcGBwUFBwUEBwUGBgYFBQcFBQYFBQUFBAkFAwMDAwMDAwQDBAUFBgYEBgQFBQUFAgQABAQEBAQEBAMDAwMDAwMGBgYGBgQFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQYFBQUFBQUFBQUFBAUEBwQFBQUCAgYGBQUDBgYGBgYGBgYFBQUFAgICAgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQICAgICAgICAgcEBQIGBAUCBQIFAwUDBgUGBQYFBQYFBgUGBQUDBQMFAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUEBQQFBAgHBgUFBQUFBQUFBQUFBQQEBAQCAgICBQUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQUCAgICAgQFBAQEBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYCBgYGAwYFBQUGAgYIBgYGBQUGAgUFBQUDBQUFBQQEAwUFBQcFBQUCAgUGBgYGBQUFBggGBgYGBgUGBQUFBQUFBAQFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYGBgQJCgUEBgUFBAIIBwIGBQYFCAcFBQYFBQgHBQQGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUCAgICBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQQGBAUFBwUFBQUFBQUFBgUGBQYFBQUCAgYFBQMGBQUFBQYFBgUGBQYEBgQFAggIBgUGBgUFAwUFBQMGBgQGBAgHBQQGBQUGAgUFBQUFBAUFAgUHBQUFBQUFAgUEBAUCAgQFBQUFBAQFBwUFBQUFBQUFBQUFBgUFBgYHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJIAsgESAVIB4gIiAnIDAgMyA6IDwgRCB0IH8gpCCqIKwgsSC6IL0hBSETIRYhIiEmIS4hXiICIgYiDyISIhoiHiIrIkgiYCJlJcruAvbD+wT+///9//8AAAAAAAIADQAgAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExAVQBYAFoAX8BjwGSAaABrwHwAfoCGAI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBKAEqgSyBLsEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIAogECATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCmIKsgsSC5ILwhBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQAA//b/5AHY/8IBzP/BAAABvwAAAboAAAG2AAABtAAAAbIAAAGqAAABrP8W/wf/Bf74/usB7gAAAAD+Zf5EASP92P3X/cn9tP2o/af9ov2d/YoAAP/+//0AAAAA/QoAAP/e/P78+wAA/LoAAPyyAAD8pwAA/KEAAPyZAAD8kQAA/ygAAP8lAAD8XgAA5eLlouVT5X7k5+V85X3hcuFz4W8AAOFs4WvhaeFh46nhWeOh4VDhIeEXAADg8gAA4O3g5uDl4J7gkeCP4ITflOB54E3fqt6s357fnd+W35Pfh99r31TfUdvtE7cK9wa7AsMBxwABAAAAAAAAAAAAAAAAAAAAAADkAAAA7gAAARgAAAEyAAABMgAAATIAAAF0AAAAAAAAAAAAAAAAAAABdAF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAXQBkAAAAagAAAAAAAABwAAAAggAAAIwAAACUgAAAmIAAAKOAAACmgAAAr4AAALOAAAC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAtIAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAACwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ/AoACgQKCAoMChACBAnsCjwKQApECkgKTApQAggCDApUClgKXApgCmQCEAIUCmgKbApwCnQKeAp8AhgCHAqoCqwKsAq0CrgKvAIgAiQKwArECsgKzArQAigJ6AIsAjAJ8AI0C4wLkAuUC5gLnAugAjgLpAuoC6wLsAu0C7gLvAvAAjwCQAvEC8gLzAvQC9QL2AvcAkQCSAvgC+QL6AvsC/AL9AJMAlAMMAw0DEAMRAxIDEwJ9An4ChQKgAysDLAMtAy4DCgMLAw4DDwCuAK8DhgCwA4cDiAOJALEAsgOQA5EDkgCzA5MDlAC0A5UDlgC1A5cAtgOYALcDmQOaALgDmwC5ALoDnAOdA54DnwOgA6EDogOjAMQDpQOmAMUDpADGAMcAyADJAMoAywDMA6cAzQDOA+QDrQDSA64A0wOvA7ADsQOyANQA1QDWA7QD5QO1ANcDtgDYA7cDuADZA7kA2gDbANwDugOzAN0DuwO8A70DvgO/A8ADwQDeAN8DwgPDAOoA6wDsAO0DxADuAO8A8APFAPEA8gDzAPQDxgD1A8cDyAD2A8kA9wPKA+YDywECA8wBAwPNA84DzwPQAQQBBQEGA9ED5wPSAQcBCAEJBIED6APpARcBGAEZARoD6gPrA+0D7AEoASkBKgErBIABLAEtAS4BLwEwBIIEgwExATIBMwE0A+4D7wE1ATYBNwE4BIQEhQPwA/EEdwR4A/ID8wSGBIcEfwFMAU0EfQR+A/QD9QP2AU4BTwFQAVEBUgFTAVQBVQR5BHoBVgFXAVgEAQQABAIEAwQEBAUEBgFZAVoEewR8BBsEHAFbAVwBXQFeBIgEiQFfBB0EigFvAXABgQGCBIwEiwGXBHYBnQAMAAAAAAu8AAAAAAAAAPkAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAngAAAChAAAArAAAAGMAAACtAAAArQAAAnkAAACuAAAAvwAAAG8AAADAAAAAxQAAAn8AAADGAAAAxgAAAIEAAADHAAAAzwAAAoYAAADQAAAA0AAAAnsAAADRAAAA1gAAAo8AAADXAAAA2AAAAIIAAADZAAAA3QAAApUAAADeAAAA3wAAAIQAAADgAAAA5QAAApoAAADmAAAA5gAAAIYAAADnAAAA7wAAAqEAAADwAAAA8AAAAIcAAADxAAAA9gAAAqoAAAD3AAAA+AAAAIgAAAD5AAAA/QAAArAAAAD+AAAA/gAAAIoAAAD/AAABDwAAArUAAAEQAAABEAAAAnoAAAERAAABEQAAAIsAAAESAAABJQAAAsYAAAEmAAABJgAAAIwAAAEnAAABJwAAAnwAAAEoAAABMAAAAtoAAAExAAABMQAAAI0AAAEyAAABNwAAAuMAAAE4AAABOAAAAI4AAAE5AAABQAAAAukAAAFBAAABQgAAAI8AAAFDAAABSQAAAvEAAAFKAAABSwAAAJEAAAFMAAABUQAAAvgAAAFSAAABUwAAAJMAAAFUAAABXwAAAv4AAAFgAAABYQAAAwwAAAFiAAABZQAAAxAAAAFmAAABZwAAAn0AAAFoAAABfgAAAxQAAAF/AAABfwAAAJUAAAGPAAABjwAAAJYAAAGSAAABkgAAAJcAAAGgAAABoQAAAJgAAAGvAAABsAAAAJoAAAHwAAAB8AAAA94AAAH6AAAB+gAAAoUAAAH7AAAB+wAAAqAAAAH8AAAB/wAAAysAAAIYAAACGQAAAwoAAAIaAAACGwAAAw4AAAI3AAACNwAAAJwAAAJZAAACWQAAAJ0AAAK8AAACvAAAA98AAALGAAACxwAAAJ4AAALJAAACyQAAAKAAAALYAAAC3QAAAKEAAALzAAAC8wAAAKcAAAMAAAADAQAAAKgAAAMDAAADAwAAAKoAAAMJAAADCQAAAKsAAAMPAAADDwAAAKwAAAMjAAADIwAAAK0AAAOEAAADhQAAAK4AAAOGAAADhgAAA4YAAAOHAAADhwAAALAAAAOIAAADigAAA4cAAAOMAAADjAAAA4oAAAOOAAADkgAAA4sAAAOTAAADlAAAALEAAAOVAAADlwAAA5AAAAOYAAADmAAAALMAAAOZAAADmgAAA5MAAAObAAADmwAAALQAAAOcAAADnQAAA5UAAAOeAAADngAAALUAAAOfAAADnwAAA5cAAAOgAAADoAAAALYAAAOhAAADoQAAA5gAAAOjAAADowAAALcAAAOkAAADpQAAA5kAAAOmAAADpgAAALgAAAOnAAADpwAAA5sAAAOoAAADqQAAALkAAAOqAAADsAAAA5wAAAOxAAADuQAAALsAAAO6AAADugAAA6MAAAO7AAADuwAAAMQAAAO8AAADvQAAA6UAAAO+AAADvgAAAMUAAAO/AAADvwAAA6QAAAPAAAADxgAAAMYAAAPHAAADxwAAA6cAAAPIAAADyQAAAM0AAAPKAAADzgAAA6gAAAPRAAAD0gAAAM8AAAPWAAAD1gAAANEAAAQAAAAEAAAAA+QAAAQBAAAEAQAAA60AAAQCAAAEAgAAANIAAAQDAAAEAwAAA64AAAQEAAAEBAAAANMAAAQFAAAECAAAA68AAAQJAAAECwAAANQAAAQMAAAEDAAAA7QAAAQNAAAEDQAAA+UAAAQOAAAEDgAAA7UAAAQPAAAEDwAAANcAAAQQAAAEEAAAA7YAAAQRAAAEEQAAANgAAAQSAAAEEwAAA7cAAAQUAAAEFAAAANkAAAQVAAAEFQAAA7kAAAQWAAAEGAAAANoAAAQZAAAEGQAAA7oAAAQaAAAEGgAAA7MAAAQbAAAEGwAAAN0AAAQcAAAEIgAAA7sAAAQjAAAEJAAAAN4AAAQlAAAEJQAAA8IAAAQmAAAELwAAAOAAAAQwAAAEMAAAA8MAAAQxAAAENAAAAOoAAAQ1AAAENQAAA8QAAAQ2AAAEOAAAAO4AAAQ5AAAEOQAAA8UAAAQ6AAAEPQAAAPEAAAQ+AAAEPgAAA8YAAAQ/AAAEPwAAAPUAAARAAAAEQQAAA8cAAARCAAAEQgAAAPYAAARDAAAEQwAAA8kAAAREAAAERAAAAPcAAARFAAAERQAAA8oAAARGAAAETwAAAPgAAARQAAAEUAAAA+YAAARRAAAEUQAAA8sAAARSAAAEUgAAAQIAAARTAAAEUwAAA8wAAARUAAAEVAAAAQMAAARVAAAEWAAAA80AAARZAAAEWwAAAQQAAARcAAAEXAAAA9EAAARdAAAEXQAAA+cAAAReAAAEXgAAA9IAAARfAAAEYQAAAQcAAARiAAAEYgAABIEAAARjAAAEbwAAAQoAAARwAAAEcQAAA+gAAARyAAAEdQAAARcAAAR2AAAEdwAAA+oAAAR4AAAEeAAAA+0AAAR5AAAEeQAAA+wAAAR6AAAEhgAAARsAAASIAAAEiwAAASgAAASMAAAEjAAABIAAAASNAAAEkQAAASwAAASSAAAEkwAABIIAAASUAAAElwAAATEAAASYAAAEmQAAA+4AAASaAAAEnQAAATUAAASeAAAEnwAABIQAAASgAAAEqQAAATkAAASqAAAEqwAAA/AAAASsAAAErQAABHcAAASuAAAErwAAA/IAAASwAAAEsQAABIYAAASyAAAEugAAAUMAAAS7AAAEuwAABH8AAAS8AAAEvQAAAUwAAAS+AAAEvwAABH0AAATAAAAEwgAAA/QAAATDAAAEygAAAU4AAATLAAAEzAAABHkAAATNAAAEzgAAAVYAAATPAAAE1wAAA/cAAATYAAAE2AAAAVgAAATZAAAE2QAABAEAAATaAAAE2gAABAAAAATbAAAE3wAABAIAAATgAAAE4QAAAVkAAATiAAAE9QAABAcAAAT2AAAE9wAABHsAAAT4AAAE+QAABBsAAAT6AAAE/QAAAVsAAAT+AAAE/wAABIgAAAUAAAAFAAAAAV8AAAUBAAAFAQAABB0AAAUCAAAFEAAAAWAAAAURAAAFEQAABIoAAAUSAAAFEwAAAW8AAB4AAAAeAQAAA+IAAB4+AAAePwAAA+AAAB6AAAAehQAAA9MAAB6gAAAe8QAABB4AAB7yAAAe8wAAA9kAAB70AAAe+QAABHAAAB9NAAAfTQAABMoAACAAAAAgCQAAAXIAACAKAAAgCwAAAX0AACAQAAAgEQAAAX8AACATAAAgFAAAAYEAACAVAAAgFQAABIwAACAXAAAgHgAAAYMAACAgAAAgIgAAAYsAACAlAAAgJwAAAY4AACAwAAAgMAAAAZEAACAyAAAgMwAAA9sAACA5AAAgOgAAAZIAACA8AAAgPAAAA90AACBEAAAgRAAAAZQAACB0AAAgdAAAAZUAACB/AAAgfwAAAZYAACCjAAAgowAABIsAACCkAAAgpAAAAZcAACCmAAAgqgAAAZgAACCrAAAgqwAABHYAACCsAAAgrAAAAZ0AACCxAAAgsQAAAZ4AACC5AAAgugAAAZ8AACC8AAAgvQAAAaEAACEFAAAhBQAAAaMAACETAAAhEwAAAaQAACEWAAAhFgAAAaUAACEiAAAhIgAAAaYAACEmAAAhJgAAALoAACEuAAAhLgAAAacAACFbAAAhXgAAAagAACICAAAiAgAAAawAACIGAAAiBgAAALIAACIPAAAiDwAAAa0AACIRAAAiEgAAAa4AACIaAAAiGgAAAbAAACIeAAAiHgAAAbEAACIrAAAiKwAAAbIAACJIAAAiSAAAAbMAACJgAAAiYAAAAbQAACJkAAAiZQAAAbUAACXKAAAlygAAAbcAAO4BAADuAgAAAbgAAPbDAAD2wwAAAboAAPsBAAD7BAAAAbwAAP7/AAD+/wAAAcIAAP/8AAD//QAAAcMAALAALEuwCVBYsQEBjlm4Af+FsEQdsQkDX14tsAEsICBFaUSwAWAtsAIssAEqIS2wAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS/9LbAFLEsgsAMmUFhRWLCARBuwQERZGyEhIEWwwFBYsMBEGyFZWS2wBiwgIEVpRLABYCAgRX1pGESwAWAtsAcssAYqLbAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbDAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSCwAyZTWLADJUW4AYBQWCMhuAGAIyEbsAMlRSMhIyFZGyFZRC2wCSxLU1hFRBshIVktsAossCdFLbALLLAoRS2wDCyxJwGIIIpTWLlAAAQAY7gIAIhUWLkAJwPocFkbsCNTWLAgiLgQAFRYuQAnA+hwWVlZLbANLLBAiLggAFpYsSgARBu5ACgD6ERZLbAMK7AAKwCyAQ8CKwGyEAECKwG3EDowJRsQAAgrALcBSDsuIRQACCu3AlhIOCgUAAgrtwNSQzQlFgAIK7cEXk08KxkACCu3BTYsIhkPAAgrtwZxXUYyGwAIK7cHkXdcOiMACCu3CH5nUDkaAAgrtwlURTYmFAAIK7cKdmBLNh0ACCu3C4NkTjojAAgrtwzZsopjPAAIK7cNFBAMCQYACCu3DjwyJxwRAAgrtw9QQS4hFAAIKwCyEQsHK7AAIEV9aRhEslAVAXSyPxkBc7JfGQFzsn8ZAXOyLxkBdLJPGQF0sm8ZAXSyjxkBdLKvGQF0sv8ZAXSyHxkBdbI/GQF1sl8ZAXWyfxkBdbIPHQFzsm8dAXWyfx0Bc7LvHQFzsh8dAXSyXx0BdLKPHQF0ss8dAXSy/x0BdLI/HQF1si8fAXOybx8BcwAqAJ0AgACKAHgA1ABkAE4AWgCHAGAAVgA0AjwAvACOAMQAAAAU/mAAFAKbACADIQALBDoAFQSNABAFsAAUBhgAFQGmABEGwAAOBtkABgAAAAAAAAAAAGEAYQBhAGEAYQCgAMYBRgHHAncDGQMxA2EDkgPFA+0EDAQjBEgEXwTDBPIFTQXUBhoGhgb+BywHugg1CEoIXwh/CKgIyQk5CfcKNwqoCwsLWwufC9gMTwyUDK8M5w0+DWMNsw3xDlcOpw8TD3QP6xAXEFwQjBDgETURZhGgEccR3hIGEi0SSRJoEvATXBO6FCQUlRTvFXsVxhX7FkkWoha4Fy8XfxffGEwYuBj3GWsZxRoSGkEakBrYGxobVBuiG7kcBBxLHHwc4R1QHcAeJR5GHu0fKB/WIEsgVyB2IS4hSSGMIdIiJyKcIrwjECM8I10jliPJJBckIyQ9JFckcSTVJTwleiYEJl8m1SeoKBooaijwKVcp4ypHKmIqtCsCK0IrmCv4LIctQi10LeIuTi7CLy4vhi/lMBUwfjCsMNIw2jEHMSkxZTGeMeQyFzJbMngyljKfMtIzAzMlM0EzjjOWM74z6zRmNJM02DUINUc1uDYZNos3DjeLN784RDjHORw5bDnnOhs6czrqO0Q7pzwKPHA8uD0DPXc90z5LPtY/LT+wQBNAjUEHQYBB2kIaQnZC0ENBQ7xEA0RORI9FE0VMRZdF2EYlRoJG6kc6R6tIMkiTSQZJbEmUSepKX0rYSxNLbEu4TAJMYUyRTL9NZU2dTeZOJ05vTsxPKk96T+tQcVDSUVFRvFI6Uq9THVNcU8pULVScVS1Vz1YcVmxW2VdKV8dYMFjKWVdZ9lqeWxlbfVu+XAJcdFzhXbBecl75X3NfymAbYE5ga2CnYL5g1WGvYiNiPmJZYsljJ2OkY9ZkAmRfZLpkxmTSZN5k6mVEZatmAmZkZnBmfGbKZzdnm2f2aJtpNGlAaUxpoGnnafNp/2pZaqxq92t3a/BsTGyqbLZswm0fbYdtk22fbattt24sbpJu9m8FbxlvJW8xb4Nv7nCKcQhxenHpclNyyXM9c7Z0NXSUdOt1QHWadhp2JnYydmZ2ZnZmdmZ2ZnZmdmZ2ZnZmdmZ2ZnZmdmZ2ZnZudnZ2gHaKdsB233b9dxx3PHdId1R3hnfHeC14UnheeG54lnlseYh5pXm4ecx6Fnqke0d71nvifMx9KH2wfl1+wH9Ef6KAFYDFgTKBxoIogpKCrILGguCC+oNug5eD0oPuhCOErYT0hW2Fr4W9hcuGBIYRhjiGUYZdhsGHG4ewiDyIv4mWiZaLF4t0i8SL74xDjLKNPo1sjdeOOo58jwWPWo+Gj+iQJpBakJ+Q85EmkWORj5H+klOSspMDk2OToZPzlBuUX5SWlLSVApVqlaeWKZaXlvuXJpdcl9WYBphVmImYypk/maKaDppymuKbW5vVnC2caZzHnSCdlp4dnluerZ73nzyfeJ/BoAKgTKCpoLWhB6F8ogmiZ6K3o0CjpKQJpGqlF6UjpXalw6YYpmGm3adLp7GoJqjEqU2p8KpkqtarGat7q9ysCqyVrPmtEK1srbquea71r2qvurAAsEKwirDYsTWxrLHysgyyTLLIswuzVbPBtDS0X7TOtSG1NbVJtVu1b7WBtZi1rLYQtny2z7cyt5m3xbgbuHa4urkeuUe5rLnCulK6w7ryuvq7ArsKuxK7Grsiuyq7Mrs6u0K7SrtSu1q7Zbttu9u8NbxmvNS9Lr2aviW+hL7xv2C/zMBXwF/A8MFAwbDCBsKMwwPDV8NXw1/Dz8Q/xKHE6MVRxWjFf8WWxa3FxcXYxeTF8MYHxhnGMMZDxlrGbMaDxpbGrcbExtbG7ccExxfHLsdAx1fHasd8x5PHpce7x8zH38fyx/7ICsghyDPISchcyHLIg8iayLLIw8jayOzJAskTySbJPclPyWXJeMmKyZzJs8nJyeDJ8spgyxDLIss0y0bLV8tpy3vLjcuey7XLwcvTy+TL9swIzBrMLMyizTLNRM1VzWfNeM2KzZzNrs3AzczN3s3wzgTOFs4ozjrOTM5eznDOe86GzpjOpM6wzsLO1M7gzuzO/s8QzxzPKM89z0nPVc9hz3PPhc+Rz53PtM/Kz97P8NAB0BPQJdA40EvQXdBv0HvQh9Ce0LTQxtDY0OrQ+9EH0RPRJdE30U7RZNF20YjRlNGg0bfRy9Hd0e7SANIR0iPSNdJI0lvSbtKB0uPTU9Nl03fTidOa063Tv9PR0+jT/9QW1CzUQ9Ra1HHUiNSr1M7U3tT11QfVHdUu1UHVVNVg1WzVg9WV1abVuNXO1d/V8dYE1hbWLdY/1lHWY9Z21o3Wn9aw1sPW1dbm1vjXZdd314jXn9e218zX3dfu2AXYgdiX2KjYutjR2N3Y79kB2RPZJdkw2UbZWNlk2XXZgdmW2aLZtNnA2dfZ6dn72g7aINos2kLaVNpl2nHah9qZ2q/au9rM2t3a79sC2xXbgduT26TbttvI29/b9dwA3AzcGNwk3DDcPNxI3GPca9xz3Hvcg9yL3JPcm9yj3Kvcs9y73MPcy9zT3Obc+d0L3R3dL91A3VXdXd1l3W3ddd3o3freDN4e3jDeQt5a3nHe6N7w3wPfC98T3yrfQd9J31HfWd9h33Pfe9+D34vfk9+b36Pfq9+z37vfw9/V393f5eBD4EvgU+Bm4H3gheCN4KDgqOC/4NXg7OED4RrhMeFJ4WHheOGP4Zfhn+Gr4cLhyuHh4fjiBOIQ4ifiPuJV4mzidOJ84pTirOK44sTi0OLc4uji9OL84wTjDOMj4zrjQuNZ43DjiOOb46Pjq+O948/j4uPq4/3kEOQj5DbkSORa5GvkfuSR5KTkt+S/5Mfk2uTt5QDlE+Ul5TblSeVb5XPli+Wj5bXl0eXt5fXmAeYN5h/mMeZJ5mDmeOaP5qfmvubW5u3nCOci5zXnSOdb527ngeeU56fnuufV5/Dn/OgI6BroLOg+6E/oZ+h+6JborejF6Nzo9OkL6SbpQOlS6WTpcOl86YjplOmm6bjp0Onn6f/qFuou6kXqXep06o/qqerA6tfq7usF6xzrM+tK62DrbOt464TrkOui67Try+vi6/nsEOwn7D7sVexr7Hfsg+yP7Jvsrey/7NHs4uzy7P7tCu0W7SLtLu067UbtUu1a7cbuM+567sHvIe9978jwGfBx8Mzw1PDg8Orw8vD68QLxCvES8RrxIvEq8UHxWPFv8YbxnvG28c7x5vH+8hbyLvJG8l7ydvKO8qbysvK+8sry1vLi8vjzCvMW8yLzOfNL81fzY/Nv83vzh/OT85/zq/PI89/z9vQC9A70GvQm9DL0PvRR9Gj0fvSK9Jb0ovSu9Lr0xvTS9N706vT29QL1DvUa9Sb1LvU29T71RvVO9Vb1XvVm9W71dvV+9Yb1jvWW9a71xfXc9fP1+/YD9hv2I/Y69lD2WPZg9mj2cPaH9o/2l/af9qf2r/a39r/2x/dU96/4Ffgd+Cn4QPhW+F74avh2+IL4jvia+Kb4svi++Mr41vji+O74+vkG+RIAAAAFAGQAAAMoBbAAAwAGAAkADAAPAHGyDBARERI5sAwQsADQsAwQsAbQsAwQsAnQsAwQsA3QALAARViwAi8bsQIdPlmwAEVYsAAvG7EAET5ZsgQCABESObIFAgAREjmyBwIAERI5sggCABESObEKDPSyDAIAERI5sg0CABESObACELEODPQwMSEhESEDEQEBEQEDIQE1ASEDKP08AsQ2/u7+ugEM5AID/v4BAv39BbD6pAUH/X0Cd/sRAnj9XgJeiAJeAAIAQ//yAfQFsAADAA4AQLIJDxAREjmwCRCwANAAsABFWLACLxuxAh0+WbAARViwDS8bsQ0RPlmxBwWwCitYIdgb9FmyAQcCERI5sAEvMDEBIxMzATY2NzYWFRQGBiYBMaSpvv5PATowLjw8XjsBmwQV+qovPQICPC4vOwQ6AAIAyAQRAqYGCAAEAAkAGQCwAy+yAgoDERI5sAIvsAfQsAMQsAjQMDEBAwcTFxcDIxMXAYlTblCI71NuUIgFbv6kAQH3CZH+pAH2CQACAFIAAAT7BbAAGwAfAJEAsABFWLAMLxuxDB0+WbAARViwEC8bsRAdPlmwAEVYsAIvG7ECET5ZsABFWLAaLxuxGhE+WbIdDAIREjl8sB0vGLEAA7AKK1gh2Bv0WbAE0LAdELAG0LAdELAL0LALL7EIA7AKK1gh2Bv0WbALELAO0LALELAS0LAIELAU0LAdELAW0LAAELAY0LAIELAe0DAxASMDIxMjNzMTIzchEzMDMxMzAzMHIwMzByMDIwMzEyMCw/qWkJXmGP+A+BgBEpiRmfuYkpnEGN6A2BjxlZI0+oH6AZr+ZgGaiQFiiwGg/mABoP5gi/6eif5mAiMBYgAAAQBK/zAEPAacACsAcLIfLC0REjkAsABFWLAJLxuxCR0+WbAARViwIi8bsSIRPlmyAiIJERI5sAkQsAzQsAkQsBDQsAkQsRMBsAorWCHYG/RZsAIQsRkBsAorWCHYG/RZsCIQsB/QsCIQsCbQsCIQsSkBsAorWCHYG/RZMDEBNiYmJyY3NjY3NzMHFhYHIzYmJyYGBwYWBBYWBwYGBwcjNyYmNzMGFhcWNgMhCmr9S5QOC9exJ5IolJEPswhnZHGTDAldARKOQQcN5b0ikSOkqAu1C3V2f6sBflaAYT15xKTXF9veHfHAk50DAoNvVnxtd5pjq9IUv8EY6rqDnAIChQAABQC7/+YFOAXIAA0AGwApADcAOwCNsiU8PRESObAlELAF0LAlELAW0LAlELAr0LAlELA40ACwOC+wOi+wAEVYsAAvG7EAHT5ZsABFWLAjLxuxIxE+WbAAELAH0LAHL7ERBLAKK1gh2Bv0WbAAELEYBLAKK1gh2Bv0WbAjELAc0LAcL7AjELEtBLAKK1gh2Bv0WbAcELE0BLAKK1gh2Bv0WTAxARYWBwcGBicmJjc3NjYDBhYXFjY3NzYmJyYGBwEWFgcHBgYnJiY3NzY2AwYWFxY2Nzc2JicmBgcFJwEXAg15jwgGD7V9eZIIBg23QwVFQERlCwkHQkNFZgsC23yOCAYNtYB4kwgGDbI+BUNCRmMLCQdCQ0dkC/3zYwNxYwXGBKmBTYaqBAKsfkCQrf6BUV8CAmVRTkxmAgJmUf36BKt+Q42vBAKqgUSLrv6BUGECAmZRT0tmAgJmUPVIBGhHAAMAOv/pBIcFyAAcACUAMQCash4yMxESObAeELAP0LAeELAw0ACwAEVYsAkvG7EJHT5ZsABFWLAaLxuxGhE+WbAARViwFy8bsRcRPlmyIBoJERI5sikJGhESObIDICkREjmyDykgERI5shAaCRESObISGgkREjmyGBoJERI5shUQGBESObAaELEdAbAKK1gh2Bv0WbIfHRAREjmwCRCxLwGwCitYIdgb9FkwMRM2NzcnJjc2NhcWFgcGBwcTNjczBgcXIycGJyYmBRY3AQcGBwYWEwYXFzc2NzYmIyIGRw/PcitICAzYpIewCAnMk/lbF6Ebmp3KSa7RveYBqYaW/vErsxMPfnAIORuZawsGUkRTcAGAupJMTYRxpckEAqt/rI9i/oOHm/+s9XGIBALhTQN0AagefINsjgPcVGUvZ1BpQFR5AAEAqgQhAYkGAAAEABAAsAMvsgIFAxESObACLzAxAQMjEzMBdkyATZIFiv6XAd8AAAEAbf4qAxgGbAASABCyAhMUERI5ALAEL7ANLzAxEzYSADcXBgICFxQSFwcmAhM2N4UhswEEoBud4XoCa2Utp7EIAgwCS+cBtgE1T3x1/of9+fzP/sVbcHQBxgElYFcAAAH/j/4pAjgGawASABCyBxMUERI5ALAEL7AMLzAxAQYCAAcnABM2JwInNxYSEgcGBwIjI7j+/5wcAVdzLgIFyy9wm0kEAwwCSfT+Tf7VTnMBAgI75tUBrbpwTv79/qm4YVYAAQBrAl8DigWwAA4AIACwAEVYsAQvG7EEHT5ZsADQGbAALxiwCdAZsAkvGDAxASU3BRMzAyUXBRMHAwMnAYD+60QBFjOWRgEvE/7Fk4CD3nID21qQcQFc/qhsn1v+7VgBIv7oYgAAAQBMAJIENAS2AAsAGwCwCS+wANCwCRCxBgGwCitYIdgb9FmwA9AwMQEhByEDIxMhNyETMwKqAYof/ndQtlD+dh8BiUq2Aw2v/jQBzK8BqQAB/4/+3QDqANsABwAYALAIL7EEBbAKK1gh2Bv0WbAA0LAALzAxAyc2NzczBwYJaHQcGrEVJP7dS4+Nl4fkAAEAGQIfAg8CtgADABIAsAIvsQEBsAorWCHYG/RZMDEBITchAfT+JRsB2wIflwABADX/8gEVANMACAAjsgMJChESOQCwAEVYsAUvG7EFET5ZsQAFsAorWCHYG/RZMDE3NhYOAiY0NqQxQAJAYD4+0gE+Yj0EO2JBAAH/j/+DA5IFsAADABMAsAAvsABFWLACLxuxAh0+WTAxFyMBMzOkA2CjfQYtAAACAGj/5wQrBckAEQAhAEiyFyIjERI5sBcQsAjQALAARViwCS8bsQkdPlmwAEVYsAAvG7EAET5ZsAkQsRYBsAorWCHYG/RZsAAQsR4BsAorWCHYG/RZMDEFJiY3Njc3EgAXFhYHBgcHAgATNicmJyYGBwMGFxIXFjY3Adi4uAgCCSQwAQ7durcHAwkjNf70tQ4BBcCMrSIrDgEFv4WtJRQE/e5KSPMBNwEyBQT360tI6/63/tADhXlD/gcF2ej+3nRJ/vcHBtDiAAEA+QAAA1QFtwAGADoAsABFWLAFLxuxBR0+WbAARViwAC8bsQARPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZsgIDBRESOTAxISMTBTclMwJcttb+fR8CHCAEzIiwwwABABcAAAQrBccAGQBWsgMaGxESOQCwAEVYsBEvG7ERHT5ZsABFWLAALxuxABE+WbEZAbAKK1gh2Bv0WbAC0LIDERkREjmwERCxCQGwCitYIdgb9FmwERCwDNCyFxkRERI5MDEhITcBNzY3NiYnJgYHBz4CFxYWBwYHBwEhA7b8YRYCGWKpEg1wZoOwE7MNi+OFtdUPEcxc/iwCv40CCmGpj26LBAShjAGGz28DBNOowNRd/kMAAAEANP/oBCEFxwAoAIKyCCkqERI5ALAARViwDi8bsQ4dPlmwAEVYsBovG7EaET5ZsgAaDhESObAAL7LPAAFdsp8AAXGyLwABXbJfAAFysA4QsQcBsAorWCHYG/RZsA4QsArQsAAQsSgBsAorWCHYG/RZshQoABESObAaELAd0LAaELEhAbAKK1gh2Bv0WTAxARcyNjc2JicmBgcHNiQXFhYHBgYHFhYHBgQnJiY3FwYWFxY2NzYmJycBoHiEtQ0NcGtynxKzEQERvbfRDgmMfGNiCBD+58m73gi1BnhygKoMC4KBiwMyAYt3dIUCAol0AbThAgTdtWeqOCitdMXwBATgsQFwiQQEmoF3hQQBAAIABQAABB0FsAAKAA4ASgCwAEVYsAkvG7EJHT5ZsABFWLAELxuxBBE+WbIBCQQREjmwAS+xAgGwCitYIdgb9FmwBtCwARCwC9CyCAYLERI5sg0JBBESOTAxATMHIwMjEyE3ATMBIRMHA1nEG8M7tjv9fBUDIMb88wGwgh0B6Zf+rgFSdwPn/DkCzCoAAQBy/+cEagWwAB0Aa7IbHh8REjkAsABFWLABLxuxAR0+WbAARViwDS8bsQ0RPlmwARCxAwGwCitYIdgb9FmyBwENERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELAR0LANELEUAbAKK1gh2Bv0WbAaELAd0DAxExMhByEDNhcWEgcGACcmJiczFhYXFjY3NiYnJgYH27kC1hv9xnBugLXCEhP+6NGu1gapB3pogK8QDnp2SXE4At0C06v+ckECAv7z0OD+8AQC3Ld4hAIEvpqHrwQCMC0AAgBw/+YD+AWyABYAJgBlshgnKBESObAYELAO0ACwAEVYsAAvG7EAHT5ZsABFWLAOLxuxDhE+WbAAELEBAbAKK1gh2Bv0WbIHAA4REjmwBy+yBQcOERI5sRcBsAorWCHYG/RZsA4QsSABsAorWCHYG/RZMDEBByMGBAc2Fx4CBwYAJyYmJyY3EgAhASYGDwIUFhYXFjY3NiYmA7sQI8j+5E6ItnOkTQwU/uvKotAPCCFFAZcBOv7GYaouBwIyYkJ5rREKKmEFsp0E8OqIBAJ72YPd/uEGBObBabMBdQGK/XACdFpDUVKaUAEFvptallcAAQCdAAAEjAWwAAYAMwCwAEVYsAUvG7EFHT5ZsABFWLABLxuxARE+WbAFELEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNyEEevzpxgMT/QgYA7wFPvrCBRiYAAADAEH/6AQ2BcgAFwAjAC8AcrIbMDEREjmwGxCwFNCwGxCwKNAAsABFWLAVLxuxFR0+WbAARViwCS8bsQkRPlmyLRUJERI5sC0vsRsBsAorWCHYG/RZsgMtGxESObIPGy0REjmwCRCxIQGwCitYIdgb9FmwFRCxJwGwCitYIdgb9FkwMQEGBgcWFgcGBCcmJjc2NjcmJjc2JBcWFgE2JicmBgcGFhcWNhM2JicmBgcGFhcWNgQoCYl2XlsID/7iyr3cDwuahU5LCA4BBr+uzP7oDHhyfLAODHlvfrBiC2lhcJoNC2thbZsEPW2vOTa1a8HpBATir327OjakXrnkBATa/LBxlwQCoX90jAIEmwMhZYoEApN0aIYCApEAAAIAlP/+BBMFyAAYACgAaLISKSoREjmwEhCwGdAAsABFWLALLxuxCx0+WbAARViwEy8bsRMRPlmyAxMLERI5sAMvsgADCxESObATELEVAbAKK1gh2Bv0WbADELEZAbAKK1gh2Bv0WbALELEhAbAKK1gh2Bv0WTAxAQYGJy4CNz4CFxYWFxYHAgAFIzczNiQnFjY/AiYmJyYGBwYWFxYDN0qmUnOjSwwNiNuErsYIAxxC/nv+zy0QJdcBE9ZbqDYIAwRrZHyvDgcSGzYCgE5NAgJ+3IKQ8IMEBPTNa5/+iv6FBpwE6fkEb15JUZuoBAXJlz1+MGEA//8AK//yAaQERgAmABL2AAEHABIAjwNzABAAsABFWLAJLxuxCRk+WTAx////m/7dAY0ERgAnABIAeANzAQYAEAwAABAAsABFWLAALxuxABk+WTAxAAEAQQDIA7gETwAGABYAsABFWLAFLxuxBRk+WbAC0LACLzAxAQUHATcBBwEHAjUh/SYaA10kAoD9uwF7kgF6zQACAHABjwP/A88AAwAHACcAsAcvsAPQsAMvsQABsAorWCHYG/RZsAcQsQQBsAorWCHYG/RZMDEBITchAyE3IQPi/NYcAytl/NYcAysDLqH9wKAAAQA6AL8D1ARHAAYAFgCwAEVYsAIvG7ECGT5ZsAXQsAUvMDEBATcBBwE3Aw39qiEC/Br8gCQCjgEDtv6Fkf6EyQAAAgCl//IDvwXHABgAJABfsh4lJhESObAeELAK0ACwAEVYsBAvG7EQHT5ZsABFWLAiLxuxIhE+WbEcBbAKK1gh2Bv0WbAA0LAAL7IEEAAREjmwEBCxCQGwCitYIdgb9FmwEBCwDNCyFQAQERI5MDEBNjY3NzY3NiYnJgYHBzY2FxYWBwYHBwYHAzY2NzYWBxQGBwYmAUENYGxRfRAMVltmgxG0E/WxqLkOEbt6Yhf4ATowLj0BPC8vOwGZc7BgR296XnYEAnFZAaXHAgTMpbaoaFmX/sAvPQIBOy8uPAECOgACAET+OwabBZoANwBEAIyyQkVGERI5sEIQsAvQALAnL7AwL7AARViwBS8bsQURPlmwAEVYsAAvG7EAET5ZsgMwABESObIMMAAREjmwDC+wABCxEwKwCitYIdgb9FmwMBCxGgKwCitYIdgb9FmwJxCxIgKwCitYIdgb9FmwBRCxOgKwCitYIdgb9FmwDBCxQQKwCitYIdgb9FkwMQUmJicGJyYmNzYSNhcWFwMGFQYXFhITNgImJyYEAgMGEhYXFjcXBiMmJAI1JhIAJBcWBBIVFAIGAQYXFj8CEyYnJgIHBK9ZbQ2Ij3RwDAqY3IKLhYUKBWGTtgsHauep3f6G9QwIbuCiqaobi+W//uaaAp8BGwFpyMIBF5OD3f1OBXVrXSABhTQ3i8EiFAJZTawDAracoQFPsQIDZv3SQhuHAwYBVgEOtAESjAME/v4a/um1/uSRAQRSdVcBpwFB0tkBwwFXsQMDqP6+zOH+oLUBPqsDBZU1CwH6HAEF/ujtAAL/rwAABIsFsAAHAAoARwCwAEVYsAQvG7EEHT5ZsABFWLACLxuxAhE+WbAARViwBi8bsQYRPlmyCQQCERI5sAkvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIwEzASMBIQMDjf2yx8kDF6UBILn9wAHfeQF8/oQFsPpQAhoCpwAAAwA7AAAEoAWwAA0AFgAfAGuyGCAhERI5sBgQsA3QsBgQsBDQALAARViwAi8bsQIdPlmwAEVYsAAvG7EAET5ZshgCABESObAYL7EWAbAKK1gh2Bv0WbIHFhgREjmwABCxEAGwCitYIdgb9FmwAhCxHgGwCitYIdgb9FkwMTMTBTIWBwYHFhYHBgQjAwMFMjY3NiYnJQUyNjc2JiclO/0Bq9/eDhL1YmEJD/7i48hbASmIuA8Obnb+1AEPf68PDW1+/uIFsAHIs9FqJrhvxecCqf30AZJ8doQEmwGCcmpsBQEAAAEAdP/mBPkFyQAfAFCyFSAhERI5ALAARViwDS8bsQ0dPlmwAEVYsAMvG7EDET5ZsgANAxESObIQAw0REjmwDRCxFAGwCitYIdgb9FmwAxCxHAGwCitYIdgb9FkwMQEGACcuAicmNzcSAAUWEhcjAicnJgIPAgYWFxY2NwSRKv6744fKcAYECxEvAW8BB83wB7sN4yG9/SUWBgaPjZjHNAHQ4v74BgN/75FSTngBSAF7BQT+/+QBMhgCBf7d/JdYuNkEBZytAAIAOwAABNUFsAAKABUARbIOFhcREjmwDhCwAtAAsABFWLACLxuxAh0+WbAARViwAC8bsQARPlmxDQGwCitYIdgb9FmwAhCxFQGwCitYIdgb9FkwMTMTBTIEEgcHAgAhEwMXMgA3NicmJic7/QF6sgEBcBcKLP5q/s0ZxrnUAScsIwsPsJQFsAGy/sfCSf7C/oUFEvuLAQEI5riBm68EAAABADsAAASxBbAACwBRALAARViwBi8bsQYdPlmwAEVYsAQvG7EEET5ZsgsEBhESObALL7EAAbAKK1gh2Bv0WbAEELECAbAKK1gh2Bv0WbAGELEIAbAKK1gh2Bv0WTAxASEDIQchEyEHIQMhA9D9nFoCyBz8ff0DeRz9Q1ECZAKh/fydBbCe/iwAAQA7AAAEpAWwAAkAQgCwAEVYsAQvG7EEHT5ZsABFWLACLxuxAhE+WbIJAgQREjmwCS+xAAGwCitYIdgb9FmwBBCxBgGwCitYIdgb9FkwMQEhAyMTIQchAyEDt/2wcLz9A2wc/VBWAlECg/19BbCe/g4AAQB5/+oFBgXHACEAdLIfIiMREjkAsABFWLAMLxuxDB0+WbAARViwAy8bsQMRPlmyEAwDERI5sAwQsRMBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZsiEMAxESObAhL7S/Ic8hAl20DyEfIQJdtD8hTyECXbEeAbAKK1gh2Bv0WTAxJQYEJy4CJyYSEiQXFhYXIyYmJyYCAwcHFBYXFjcTITchBHtJ/umzj9Z6CQdJtgERsMvxEboLkH+8/SgTA6KS03w8/rgcAgDAZ28CA4DvmHcBlgEonAME6dOKlAQH/uT+74xMxdcCBW0BR5wAAAEAOwAABXcFsAALAFYAsABFWLAGLxuxBh0+WbAARViwCi8bsQodPlmwAEVYsAAvG7EAET5ZsABFWLAELxuxBBE+WbAAELAJ0LAJL7KfCQFysi8JAV2xAgGwCitYIdgb9FkwMSEjEyEDIxMzAyETMwR6vHX9OXW8/bxtAsZtvQKh/V8FsP2OAnIAAAEASQAAAgEFsAADAB0AsABFWLACLxuxAh0+WbAARViwAC8bsQARPlkwMSEjEzMBBLv9uwWwAAEACv/mBEoFsAAPAC8AsABFWLAALxuxAB0+WbAARViwBS8bsQURPlmwCdCwBRCxDAGwCitYIdgb9FkwMQEzAwYEJyYmNzMGFhcWNjcDjryvHf7szsDSDLsLcHB7qhMFsPv5zvUEBODEeI8CBKKBAAABADsAAAVQBbAACwB0ALAARViwBS8bsQUdPlmwAEVYsAcvG7EHHT5ZsABFWLACLxuxAhE+WbAARViwCy8bsQsRPlmyAAIFERI5QBFKAFoAagB6AIoAmgCqALoACF2yOQABXbIGBQIREjlAEzYGRgZWBmYGdgaGBpYGpga2BgldMDEBBwMjEzMDATMBASMCINVUvP28fALm8v1bAcXRAqO//hwFsP07AsX9dPzcAAABADsAAAOxBbAABQApALAARViwBC8bsQQdPlmwAEVYsAIvG7ECET5ZsQABsAorWCHYG/RZMDElIQchEzMBEwKeHPym/b2dnQWwAAEAOwAABrcFsAAOAFkAsABFWLAALxuxAB0+WbAARViwAi8bsQIdPlmwAEVYsAQvG7EEET5ZsABFWLAILxuxCBE+WbAARViwDC8bsQwRPlmyAQAEERI5sgcABBESObIKAAQREjkwMQETATMDIxMTASMBAwMjEwIl/wKc9/27ZHf9bJD+/FphvP0FsPteBKL6UAJAAkr7dgSh/Yz90wWwAAABADsAAAV3BbAACQBMsgEKCxESOQCwAEVYsAUvG7EFHT5ZsABFWLAILxuxCB0+WbAARViwAC8bsQARPlmwAEVYsAMvG7EDET5ZsgIFABESObIHBQAREjkwMSEjAQMjEzMBEzMEerb9+MS9/bYCCcW7BGr7lgWw+5EEbwAAAgB3/+cFDQXIABIAIgBIshcjJBESObAXELAJ0ACwAEVYsAovG7EKHT5ZsABFWLAALxuxABE+WbAKELEWAbAKK1gh2Bv0WbAAELEeAbAKK1gh2Bv0WTAxBS4CJyYSEjc2FxYSFxYCAgcGATYmJyYGAgcHBhYXFhITNgJRi812BgZConSdydX2CQQzg2WwAQ4GlpSG04cSAwaYkb35KRQUA4D5m3kBZAEeVnQEBP7h9Wn+vP7qXqQDl8XZBASY/tHoQcTeBAUBGwEAfgAAAgA7AAAE8wWwAAoAEwBPsgoUFRESObAKELAM0ACwAEVYsAMvG7EDHT5ZsABFWLABLxuxARE+WbILAwEREjmwCy+xAAGwCitYIdgb9FmwAxCxEgGwCitYIdgb9FkwMQEDIxMFMhYHBgQjJQUyNjc2JiclAVpjvP0B5uH0ERL+1/P+wQFEmcQREIaA/qcCOv3GBbAB78bR8J4Bmol7mQQBAAIAb/8KBQQFyAAXACgASLIcKSoREjmwHBCwBNAAsABFWLAPLxuxDx0+WbAARViwBS8bsQURPlmwDxCxGwGwCitYIdgb9FmwBRCxJAGwCitYIdgb9FkwMSUXBycGIy4CJyYSEjc2Fx4CFxYHBwIDNiYnJgYCBwcGFhYXFhI3NgOL2Yv+SkqJ0HMGBkGecKDOjdByBgMKDD5pB5iShtOHEgMEPodiuPsqFUzRcfMQAYP3nH4BXQEZVnoEA4L3nFRTVf5RAn3I1gQEmP7R6EFzyGgDBwEY/38AAAIAOgAABMIFsAAOABcAY7IFGBkREjmwBRCwFtAAsABFWLAELxuxBB0+WbAARViwAi8bsQIRPlmwAEVYsA0vG7ENET5ZshAEAhESObAQL7EAAbAKK1gh2Bv0WbILAAQREjmwBBCxFgGwCitYIdgb9FkwMQEhAyMTBRYWBwYGBxMHIwEFMjY3NiYnJQKt/rBmvf0BtuXwEwuxk+IByP3/ARSQxhEPgoX+3QJN/bMFsAEB5saJ0DX9mQ0C6gGZgH2OBAEAAQAn/+kEowXHACgAZLITKSoREjkAsABFWLAKLxuxCh0+WbAARViwHy8bsR8RPlmyAh8KERI5sAoQsA/QsAoQsRIBsAorWCHYG/RZsAIQsRgBsAorWCHYG/RZsB8QsCTQsB8QsSYBsAorWCHYG/RZMDEBNi8CJDc+AhceAgcnNiYnJgYHBh8CBAMOAicuAjcXBhYENgNtFrytOv7cEwqS8YiEz2wGvQqMgom4DhTLlUsBGhULkPeOieN2B7wJnwEivAF3oEo/GYXxebplAwNwyX4BhpMCAoRylU01IIL/AHuzYgMBc8h/AYKZBIIAAAEAqAAABQkFsAAHAC8AsABFWLAGLxuxBh0+WbAARViwAi8bsQIRPlmwBhCxAAGwCitYIdgb9FmwBNAwMQEhAyMTITchBO3+O+G74f47HARFBRL67gUSngABAGf/5wUgBbAAEgA9sg8TFBESOQCwAEVYsAovG7EKHT5ZsABFWLASLxuxEh0+WbAARViwBC8bsQQRPlmxDgGwCitYIdgb9FkwMQEDBgAnLgI3EzMDBhYXFjY3EwUgqCL+vOWP02QRqLmnEYqMmNEbqAWw/Cfj/vMEA3vfjgPa/CWZrwQGsaAD3AABAKQAAAVhBbAABgA4sgAHCBESOQCwAEVYsAEvG7EBHT5ZsABFWLAFLxuxBR0+WbAARViwAy8bsQMRPlmyAAEDERI5MDEBATMBIwEzAj4CT9T9EKb+2cUBAQSv+lAFsAABAMMAAAdBBbAAEgBZALAARViwAy8bsQMdPlmwAEVYsAgvG7EIHT5ZsABFWLARLxuxER0+WbAARViwCi8bsQoRPlmwAEVYsA8vG7EPET5ZsgEDChESObIGAwoREjmyDQMKERI5MDEBBzcBMxMXNwEzASMDJwcBIwMzAb4ERAGzn3MKPwF0wf3Gq34EKv4wq3K3AcGwrAPz/ACmyQPd+lAELWR0++MFsAAB/9QAAAUrBbAACwBrALAARViwAS8bsQEdPlmwAEVYsAovG7EKHT5ZsABFWLAELxuxBBE+WbAARViwBy8bsQcRPlmyAAEEERI5QAmGAJYApgC2AARdsgYBBBESOUAJiQaZBqkGuQYEXbIDAAYREjmyCQYAERI5MDEBATMBASMBASMBATMCmgGp6P3JAVPT/v7+SugCQ/620AODAi39Jf0rAjf9yQLnAskAAAEAqAAABTIFsAAIADEAsABFWLABLxuxAR0+WbAARViwBy8bsQcdPlmwAEVYsAQvG7EEET5ZsgABBBESOTAxAQEzAQMjEwEzAmMB7+D9c127YP67zALWAtr8Zf3rAioDhgAAAf/rAAAEzgWwAAkARgCwAEVYsAcvG7EHHT5ZsABFWLACLxuxAhE+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDE3IQchNwEhNyEH6gMiHPv7GwPG/QwcA9oanZ2aBHielwAB///+yAKjBoAABwAkALAEL7AHL7EAAbAKK1gh2Bv0WbAEELEDAbAKK1gh2Bv0WTAxASMBMwchASECirn++7oY/pEBNAFwBej5eJgHuAABAL//gwKeBbAAAwATALACL7AARViwAC8bsQAdPlkwMRMzASO/pAE7owWw+dMAAf96/sgCHwaAAAcAJwCwAi+wAS+wAhCxBQGwCitYIdgb9FmwARCxBgGwCitYIdgb9FkwMRMhASE3MwEjrwFw/sv+kBi7AQW8BoD4SJgGiAABAE8C2QMPBbAABgAnsgAHCBESOQCwAEVYsAMvG7EDHT5ZsADQsgEHAxESObABL7AF0DAxAQEjATMTIwIM/vSxAaF8o54Euf4gAtf9KQAB/4H/aQMWAAAAAwAcALAARViwAy8bsQMRPlmxAAGwCitYIdgb9FkwMQUhNyEC+/yGGwN6l5cAAAEA0ATaAisGAAADACMAsAEvsg8BAV2wANAZsAAvGLABELAC0LACL7QPAh8CAl0wMQEjAzMCK47NzQTaASYAAgAz/+gDzwRRACAAKwB8sgQsLRESObAEELAi0ACwAEVYsBgvG7EYGT5ZsABFWLAFLxuxBRE+WbAARViwAC8bsQARPlmyAxgFERI5sgsYBRESObALL7AYELEQAbAKK1gh2Bv0WbITCxgREjmwBRCxIQGwCitYIdgb9FmwCxCxJgGwCitYIdgb9FkwMSEmNTcGJyYmNzYkMxc3NiYnJgYHBz4CFxYWBwMHBhcHJRY2NzcnIgYHBhYCtQcDlaePswgKARnlvQwKX19djxC2CYLMbam8D1gFAg4C/ixXmzgniau2DAlZHRw5igQCsYWswQFWYXECAl9OAV+TUQIExaP96E03NhGMAldN3wFsY0xlAAACAB//6AP+BgAAEgAeAGayHB8gERI5sBwQsATQALAJL7AARViwDS8bsQ0ZPlmwAEVYsAQvG7EEET5ZsABFWLAHLxuxBxE+WbIGDQQREjmyCw0EERI5sA0QsRYBsAorWCHYG/RZsAQQsRsBsAorWCHYG/RZMDEBBgIGJyYnByMBMwM2FxYWFxYHJzYmJyYHAxYXFjY2A/UUjsp7xF8lpwELtW2CupyuBQEHrgNoa6l1UTylap9SAhim/vaAAwSPfgYA/cKQBATew0A8VJKbBASu/imlBASG8QABAEb/6QPmBFIAIABNsgAhIhESOQCwAEVYsBEvG7ERGT5ZsABFWLAILxuxCBE+WbEAAbAKK1gh2Bv0WbIEEQgREjmyFBEIERI5sBEQsRgBsAorWCHYG/RZMDElFjY3Nw4CJy4CNzc+AhcWFhUnJiYnJgYHBwYXFhYB6GGcGKsPhcpqh7tYDgUTkOiMqsypAnJhjbsXAwYEB3aCAnVfAWaoXgMCifWZMpz2iQQE3KkBaoMEA9jCGkBEdYgAAAIAS//oBHUGAAARAB0AZrIEHh8REjmwBBCwGtAAsAcvsABFWLAELxuxBBk+WbAARViwDS8bsQ0RPlmwAEVYsAovG7EKET5ZsgYEDRESObILBA0REjmwDRCxFQGwCitYIdgb9FmwBBCxGgGwCitYIdgb9FkwMRM2EjYXFhcTMwEjNwYnJiYnJhcGFhcWNxMmJyYGBlMUjtB9tWFotf72pROAvJayBwO2A2xonXpWPJ5ro1UCH6UBCoQDBIACNfoAdIwEBOO/OxaPngIHpQH0lAQDh/MAAgBF/+oD4ARRABcAHwBsshIgIRESObASELAZ0ACwAEVYsAgvG7EIGT5ZsABFWLAALxuxABE+WbIcCAAREjmwHC+0vxzPHAJdsQ4BsAorWCHYG/RZsAAQsRIBsAorWCHYG/RZshQIABESObAIELEYAbAKK1gh2Bv0WTAxBSYCNzc2EjYXFhYXFgcHIQYWFxY3FwYGAyYGBwU3NiYB88rkEgURneKDp74JAwcL/T0ShYSgiGhE1xFwpzECDgQQcRQEASLiK6EBCocDBNa3QUFTk84EBJRYYm8DzQOenAEQfqcAAAEAdAAAA1AGGQAWAGWyBhcYERI5ALAARViwCS8bsQkfPlmwAEVYsAMvG7EDGT5ZsABFWLASLxuxEhk+WbAARViwAC8bsQARPlmwAxCxAQGwCitYIdgb9FmwCRCxDgGwCitYIdgb9FmwARCwFNCwFdAwMTMTIzczNzY3NhcyFwcmJyIGBwczByMDd6SnGaYSGmRpozNOFjAxXnUOEOAZ4KMDq4+Ao1xgAhGXCgJ1YWuP/FUAAAIABP5PBCgEUgAdACkAhrILKisREjmwCxCwJtAAsABFWLAELxuxBBk+WbAARViwBy8bsQcZPlmwAEVYsAwvG7EMEz5ZsABFWLAYLxuxGBE+WbIGBBgREjmyEBgMERI5sAwQsRIBsAorWCHYG/RZshYEGBESObAYELEhAbAKK1gh2Bv0WbAEELEmAbAKK1gh2Bv0WTAxEzYSNhcWFzczAwYEJyYmJzcWFxY2NzcGJy4CJyYXBhYXFjcTJicmBgdUGI/NerxgJKa0Hf7qzG7JOmdioYGzHRSEsWWVUgQCtwNpaqJ1VTydk70RAh+xAQV9AwSKefvdz/kGAmRXb5EEBJiMYIQEA2fDeDsUj50EBKMB8ZQGBPjTAAABAB8AAAPjBgAAEgBKsgETFBESOQCwEi+wAEVYsAIvG7ECGT5ZsABFWLAPLxuxDxE+WbAARViwBy8bsQcRPlmyAAIPERI5sAIQsQwBsAorWCHYG/RZMDEBNhcWFgcDIxM2JyYnJgcDIwEzAXGOuZiTE3a1dwYFEZSmeIa1AQu1A7abBALNuf07AsgxKowDBLL8/AYAAAACAC8AAAHjBccAAwANADIAsABFWLACLxuxAhk+WbAARViwAS8bsQERPlmwAhCwCtCwCi+xBAWwCitYIdgb9FkwMTMjEzMDNhYVDgImNjbjtLy0Jy49ATtePAI6BDoBiwI7MC88BDpePgAAAv8U/kYB1QXHAAwAGAA+ALAARViwDC8bsQwZPlmwAEVYsAQvG7EEEz5ZsQkBsAorWCHYG/RZsAwQsBfQsBcvsRAFsAorWCHYG/RZMDEBAwYGJyYnNxYXMjcTEzY2NzYWFQYGBwYmAZbNFKWFNUIQJS6BGs8fATkwLj0BPC8tPAQ6+0WZoAICEpQJApoEuwEcLz4CAj0uLzwCAjwAAQAgAAAEGgYAAAwAdQCwAEVYsAQvG7EEHz5ZsABFWLAILxuxCBk+WbAARViwAi8bsQIRPlmwAEVYsAsvG7ELET5ZsgAIAhESOUAVOgBKAFoAagB6AIoAmgCqALoAygAKXbIGCAIREjlAFTYGRgZWBmYGdgaGBpYGpga2BsYGCl0wMQEHAyMBMwM3ATMBASMBo45AtQELtaBvAYDr/g8BVsYB83/+jAYA/GpwAWD+M/2TAAEALwAAAe4GAAADABMAsAIvsABFWLAALxuxABE+WTAxMyMBM+O0AQq1BgAAAQAeAAAGagRSACAAeLIWISIREjkAsABFWLADLxuxAxk+WbAARViwCC8bsQgZPlmwAEVYsAAvG7EAGT5ZsABFWLAXLxuxFxE+WbAARViwDS8bsQ0RPlmwAEVYsB4vG7EeET5ZsgEeAxESObIGAxcREjmwAxCxGwGwCitYIdgb9FmwEtAwMQEHNhcWFhc2FxYWBwMjEzYnJicmBgcDIxM2JicmBwMjEwGEF4jBZ48bmM+imhR3tHYGBhOfY6EXe7Z4DV1iqWSJtbwEO3mQBAJaUrIEBNKx/TkCyTQriAMCf2f9MQLIb3gCBJ786QQ6AAEAHwAAA+MEUgASAFSyAhMUERI5ALAARViwAy8bsQMZPlmwAEVYsAAvG7EAGT5ZsABFWLAQLxuxEBE+WbAARViwCC8bsQgRPlmyAQMQERI5sAMQsQ0BsAorWCHYG/RZMDEBBzYXFhYHAyMTNicmJyYHAyMTAYYakrqZkhN2tXcGBRGUo3uGtbwEO4mgBATMuf07AsgxKowDA7H8/AQ6AAACAEX/6AQfBFIAEAAiAEWyFyMkERI5sBcQsAjQALAARViwAC8bsQAZPlmwAEVYsAkvG7EJET5ZsRYBsAorWCHYG/RZsAAQsR8BsAorWCHYG/RZMDEBHgIHBw4CJy4CNzYSNgMGFxYWFxY2Njc2JyYmJyYGBwJ4iMJdDwITlu6Oh8NaDQ+Y7+AHBwp5ZVqYaA8IBQx6ZYzEFwROApD9lhae/44EApD4lagBDJP9uD9EdowDA1/AdVw/eYwEA+K3AAAC/9f+YAP8BFIAEgAeAGmyBB8gERI5sAQQsB3QALAARViwDS8bsQ0ZPlmwAEVYsAovG7EKGT5ZsABFWLAHLxuxBxM+WbAARViwBC8bsQQRPlmyCw0HERI5sA0QsRcBsAorWCHYG/RZsAQQsRwBsAorWCHYG/RZMDEBBgIGJyYnAyMBNwc2FxYWFxYHIzc0JicmBwMWFxY2A/MUisx8vGRhtQEEpBSGu5yuBQEGtQVvaZ1yWz2eh70CGKX++IMDBHv99gXaAXmQBATew0A8VJKbBASZ/fmQBAPZAAIASf5gBCgEUgAQABwAarIAHR4REjmwGtAAsABFWLAALxuxABk+WbAARViwAy8bsQMZPlmwAEVYsAUvG7EFEz5ZsABFWLAJLxuxCRE+WbICAAkREjmyBwAJERI5sRUBsAorWCHYG/RZsAAQsRoBsAorWCHYG/RZMDEBFhc3MwEjEwYnJiYnJhI2NgMHBhYXFjcTJicmBgJJt2Ahp/78tGKCrJi2BwZGi77PBQNvaJl2XkKWibwETwR/bvomAgR8BALiwHwBE81m/bhUkaECBJYCFIsEA9gAAAEAHwAAAtQEVAAMAEeyAw0OERI5ALAARViwCi8bsQoZPlmwAEVYsAcvG7EHGT5ZsABFWLAELxuxBBE+WbAKELEBDrAKK1gh2Bv0WbIICgEREjkwMQEnIgcDIxM3BzYXMhcCwFWuZIW1vK8bc5whNQOVCZ38/wQ6AX6XBA8AAAEALv/pA7YEUAAmAGayFicoERI5ALAARViwCC8bsQgZPlmwAEVYsB0vG7EdET5ZsgMdCBESObILCB0REjmwCBCxDwGwCitYIdgb9FmwAxCxFQGwCitYIdgb9FmyIAgdERI5sB0QsSQBsAorWCHYG/RZMDEBNicnJjc2NhcWFgcnNiYnJgcGBwYXFxYWBw4CJyYmNxcUFjMWNgK9D4q87ggH96ekzQS0AmpYXkQ/Cg2AW7qcBgZ4yHGs4AS1dGVjkAElcC43Ur6PtwICu5YBUWYCAjAtSV4rGTCacmWWTwMCxZsBW24CVwABAEP/7QKUBUAAFgBhshYXGBESOQCwAEVYsAEvG7EBGT5ZsABFWLAULxuxFBk+WbAARViwDi8bsQ4RPlmwARCwANCwAC+wARCxAwGwCitYIdgb9FmwDhCxCQGwCitYIdgb9FmwAxCwEtCwE9AwMQEDMwcjAwYXFjMyNwcGIyYmNxMjNzMTAf0uxRnEcQMCB04hNw5BQ2xsDG6/Gb8uBUD++o/9XxoWTgqXEgKbgwKejwEGAAABAFv/6AQeBDoAEwBNsgEUFRESOQCwAEVYsAYvG7EGGT5ZsABFWLAQLxuxEBk+WbAARViwAi8bsQIRPlmwAEVYsBMvG7ETET5ZsAIQsQ0BsAorWCHYG/RZMDElBicmJjcTMwMGFxYWFxY3EzMDIwLOf8SblRN0tXUFAwVMRMJqiLW8q2uDBATWuQK7/UIsKkhSAwajAxT7xgAAAQBuAAAD7QQ6AAYAOLIABwgREjkAsABFWLABLxuxARk+WbAARViwBS8bsQUZPlmwAEVYsAMvG7EDET5ZsgAFAxESOTAxJQEzASMDMwGoAYa//d+K1LL9Az37xgQ6AAEAgAAABf4EOgAMAGCyBQ0OERI5ALAARViwAS8bsQEZPlmwAEVYsAgvG7EIGT5ZsABFWLALLxuxCxk+WbAARViwAy8bsQMRPlmwAEVYsAYvG7EGET5ZsgALAxESObIFCwMREjmyCgsDERI5MDEBATMBIwMBIwMzEwEzA+oBWbv+E5Nw/nqTda1CAYCSAQADOvvGAzL8zgQ6/NoDJgAAAf/EAAAD9AQ6AAsAUwCwAEVYsAEvG7EBGT5ZsABFWLAKLxuxChk+WbAARViwBC8bsQQRPlmwAEVYsAcvG7EHET5ZsgAKBBESObIGCgQREjmyAwAGERI5sgkGABESOTAxAQEzAQEjAwEjAQEzAfABJt7+TgEIxbP+z90Bv/8AxgKwAYr94P3mAZT+bAIsAg4AAf+l/kUD7AQ6AA8AQLIAEBEREjkAsABFWLAPLxuxDxk+WbAARViwBS8bsQUTPlmyAAUPERI5sA8QsAHQsAUQsQkBsAorWCHYG/RZMDEBATMBAicmJzcXFjY3NwMzAaMBgcj9fobSJUgQL1Z9MEG7vQERAyn7Ev75AwERlgUEVV98BCMAAf/tAAADzgQ6AAkARgCwAEVYsAcvG7EHGT5ZsABFWLACLxuxAhE+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDE3IQchNwEhNyEH6gJgG/y+GQLF/cscAxwYl5eRAxCZjAABADj+kwMVBj8AHQAvsgweHxESOQCwAC+wDi+yCQAOERI5fLAJLxixCAOwCitYIdgb9FmyFAgJERI5MDEBJiY3NzYnJic3Njc3EiUXBgMHBgcWFxYPAhcWFwHenpQTHAYFEZMQ2SAfOwFfG9QtIiGyZwoDBB8CAhGG/pM176zPMSqICJEK6+QBU2V1Rv718MheTY4sK/NHH581AAABACH+8gHBBbAAAwATALAAL7AARViwAi8bsQIdPlkwMRMjATOzkgEOkv7yBr4AAf+M/pACagY7ABwAL7IZHR4REjkAsA4vsBwvshYcDhESOXywFi8YsRcDsAorWCHYG/RZsgUXFhESOTAxBzYTNzY3JicmPwImJzcWFgcHBhcWFwcGBwcCBXTZKx8fw3ENBAUfAgOVLZyQExsGBRCTD9ogHDP+lvtHARHi0F1Fkyot9ke4OnE176vQMimHCJEK7s/+nmgAAQBpAY4E3QMnABcAOrIRGBkREjkAsA8vsADQsA8QsBTQsBQvsQMBsAorWCHYG/RZsA8QsQgBsAorWCHYG/RZsAMQsAzQMDEBBgYnJicnJiMmDwI2NhcWFxcWMzI2NwTdDsOMfns8SEKILAicEMONd2xZRD9LaRIDCqPZAgNwOkMDpyUDotEEA11TPW5mAAL/8f6YAaEETwADAA4AJQCwAy+wAEVYsAwvG7EMGT5ZsQcFsAorWCHYG/RZsAHQsAEvMDETMwMjARQGBiY1NjY3Nhazpam+Aa86YDsBOy8uPQKs++wFTy8+BD4tMDsCAToAAQBS/wsD8wUmACIAVLIHIyQREjkAsABFWLASLxuxEhk+WbAARViwBy8bsQcRPlmxAAOwCitYIdgb9FmwBxCwA9CwBxCwCtCwEhCwFdCwGdCwFRCxHAOwCitYIdgb9FkwMSUWNjc3BgYHByM3JiYnJhI2Njc3MwcWFhUjNCYnJgIHBwYWAelhnRusFdGgLrUvd5EODCx5uncttS2Dk6pwYZjGDgEDdIICc2EBhr0e6ewevI1vAQvShRXi4SDLlWqEBAb/AOQqjp0AAAH/8wAABIkFygAfAG6yESAhERI5ALAARViwEi8bsRIdPlmwAEVYsAUvG7EFET5Zsh0SBRESObAdL7EAAbAKK1gh2Bv0WbAFELEDAbAKK1gh2Bv0WbAI0LAAELAL0LAdELAN0LIVEgUREjmwEhCxGQGwCitYIdgb9FkwMQEHBgclByE3FzY3NyM3Mzc2JBcWFgcnNiYnJgYHByEHAbgcFFgCyx38FR1DcR0boBucHxkBFsCowAi7B2JlbpoQIAE2GwJu1JlnA52cAindzp39zPYGBNGxAWp6BASkgfudAAIAEv/lBY0E8QAdAC0AQbIrLi8REjmwKxCwENAAsABFWLACLxuxAhE+WbAR0LARL7ACELEiAbAKK1gh2Bv0WbARELEqAbAKK1gh2Bv0WTAxJQYnJicHJzcmJyYSNyc3FzYXFhc3FwcWFxYCBxcHAQYWFhcWNjY3NiYmJyYGBgPku77HiJ1tnx4KE1lodY1ys7a8ia9vrSAMElFjc4/84g9Kn2x115EQDkmebHbYkG6GBAR+iJCGVVeWASF1nX+UegQCd5iSk1dZkP7meJZ/AnJy0HsEBH7ee3POeQQEftwAAQBDAAAEnwWwABYAcbILFxgREjkAsABFWLABLxuxAR0+WbAARViwCy8bsQsRPlmyAAsBERI5sgcBCxESObAHL7AD0LADL7EFArAKK1gh2Bv0WbAHELEJArAKK1gh2Bv0WbAN0LAHELAP0LAFELAR0LADELAT0LABELAV0DAxAQEzATMHIQchByEDIxMhNyE3ITchAzMCKAGd2v4f+Bb+xh0BOxb+xji9Of7LFgE0Hf7LFgEE58gDGgKW/TB9pXz+vgFCfKV9AtAAAAL/9/7yAdkFsAADAAcAGACwAC+wAEVYsAYvG7EGHT5ZsgUBAyswMQMTMwMTIxMzCYq2iqi2hLb+8gMX/OkDyAL2AAL/3f4OBKEFxgAxAD8AdwCwBy+wAEVYsCIvG7EiHT5ZshUHIhESObAVELE6AbAKK1gh2Bv0WbICFToREjmwBxCwC9CwBxCxDwGwCitYIdgb9FmyLiIHERI5sC4QsTMBsAorWCHYG/RZshszLhESObAiELAm0LAiELEpAbAKK1gh2Bv0WTAxAQYHFgcGBCcmJjc3BhYWFxY2Njc2JiQnJjc2NyY3NjY3NhcWFgcjNiYnJgYHBhYEFwQlJwYHBhcWBBc2NzYmJwQ/EtNnDQ7+4N7Z8gu1Bj+CWFOUXAkMa/7rUPIUDtJjDQiGd3uNz+EMtAiEfIe3DwtgAQ9HAQ3+FJqnFg5LMgECQa4WC193Abe/YGeprswCBObHAVV+RQECNmNFTW9ZJnPsuGdqpmytLzACBOXGfpYEAnVpUW1UH3QHNC+XZD0pURk0k0lwKgACANoE7gNRBccACwAXAB4AsAkvsQMFsAorWCHYG/RZsA/QsAkQsBXQsBUvMDETNjY3NhYHFAYHBiYlNjY3NhYHFAYHBibaATowLj0BPC8vOwGhATovMDwBPC8uPQVZLj0CATsvLjwCATotLj4CATswLzsCAToAAwBi/+oF7QXIABsAKQA6AIYAsABFWLAuLxuxLh0+WbAARViwNy8bsTcRPlmyAzcuERI5sAMvtA8DHwMCXbIKLjcREjmwCi+0AAoQCgJdsg4KAxESObERArAKK1gh2Bv0WbADELEZArAKK1gh2Bv0WbIbAwoREjmwNxCxHwSwCitYIdgb9FmwLhCxJgSwCitYIdgb9FkwMQEGBicmJjc3NjYXFhYHJzYmJyYGBhcXFhYXFjcFFgAXFiQSJyYAJyYEAgc2EiQXFgQSBwYCBCcjJiQCBEUOupWRoA4KFM+djpsGjwZFWl9/HQECB09EqiP9LRYBBL67AU23FBb/AMG9/rO2WxbkAV7CsgEcjhUX5P6ovAq3/uiOAlWXpwQE2KdivdsCBKOUAVViAgKR/x4jTVoDB78az/75AgTfAX2+zQECBQTg/ogmxwFkywQCxP6lxMv+nsgBBMQBWwAAAgDDArMDTgXHAB0AJwBjALAARViwFi8bsRYdPlmyAygWERI5sAMvsADQsAAvsgkDFhESObAJL7AWELEPA7AKK1gh2Bv0WbISCRYREjl8sBIvGLADELEeA7AKK1gh2Bv0WbAJELEhBLAKK1gh2Bv0WTAxAScGIyImNzY2Mxc3NicmJyYGByc2NhcWFgcDBwYXJTI3NyMGBgcGFgJ2BFxyaXgEBbqnbwkDAgdVOFcPnAuwg3uFCjYEAQj+u0tbHF1YaAgFNgK/SlZ7YXN8ATYbGE8DATE4C21/AgSVfP6lOi0uekSPA0A3Ky7//wBZAJcDjgOzACYBkvr+AAcBkgE6//4AAQCBAXcDxQMgAAUAGwCwBC+wAdCwAS+wBBCxAgGwCitYIdgb9FkwMQEjEyE3IQN7ti/9jR0DJwF3AQihAAAEAGH/5gXtBcgADwAfADkAQgCIALAARViwBC8bsQQdPlmwAEVYsAwvG7EMET5ZsRQEsAorWCHYG/RZsAQQsRwEsAorWCHYG/RZsiEMBBESObAhL7IjBAwREjmwIy+0ACMQIwJdsjohIxESObA6L7EgArAKK1gh2Bv0WbIqIDoREjmwIRCwMtCwMi+wIxCxQgKwCitYIdgb9FkwMRM2EiQXFgQSBwYCBCcmJAI3HgIXFiQSJy4CJyYEAgUDIxMFFhYHBgYHFhcHBhcXByMmPwI2JicnFzY2NzYmJyN2FuQBXsKvARuTFhfm/qXAs/7ok4QMgc1+uwFKuhMOgct+uf62vQG9NYqFAQGLlQcDRFFNCQELAgMCigYCBwYHMESUj0hlCQpBWYwC0scBZMsEAr/+pcnM/p3KBAS/AV4ug9x2AwTcAXzDhdh0AwTW/oNv/q4DUQEFgXI6YC4sYT1XH0ARJSRINkJFBIEBAkU6Pz4DAAEA9wUWA5sFpQADABmyAgQFERI5ALACL7EAD7AKK1gh2Bv0WTAxASE3IQOE/XMXAo0FFo8AAAIA6AO9AtgFxwALABcAMQCwAEVYsAMvG7EDHT5ZsA/QsA8vsQkCsAorWCHYG/RZsAMQsRUCsAorWCHYG/RZMDETNjYXFhYHBgYnJiY3BhYzMjY3NiYjIgbsBKFnYX8CBJ9mYoN9Bj0xNlUGBjg0NlcEt2+hAgKVZXCcAgKRZzFJUDgwT1UAAgAlAAAD/wTzAAsADwBIALAJL7AARViwDS8bsQ0RPlmwCRCwANCwCRCxBgGwCitYIdgb9FmwA9CwDRCxDgGwCitYIdgb9FmyBQ4GERI5tAsFGwUCXTAxASEHIQMjEyE3IRMzEyE3IQKeAWEY/qBBpEH+ihkBdUGjcfzVGAMrA1aX/mIBnpcBnfsNmAABAFwCmwLmBb8AFwBQALAARViwDy8bsQ8dPlmwAEVYsAAvG7EAFT5ZsRcCsAorWCHYG/RZsALQsgMXDxESObAPELEIArAKK1gh2Bv0WbILDwAREjmyFBcPERI5MDEBITcBNjc2JicmBgcHNjYXFhYHBg8CIQKi/boUAWNjDAc1MEJQDpoLroB4iwUIl0DEAXsCm3QBKlRKMDYBAUs+AXWVAgJ+Znt9M5EAAAEAbgKOAusFvQAkAHQAsABFWLANLxuxDR0+WbAARViwFy8bsRcVPlmyABcNERI5fLAALxi20ADgAPAAA12wDRCxBwKwCitYIdgb9FmyCQANERI5sAAQsSMEsAorWCHYG/RZshIjABESObIbFw0REjmwFxCxHgKwCitYIdgb9FkwMQEXNjY3NiYjIgcjNjYzFhYHBgcWBwYGJyYmNTMUFjMyNjc2JycBV05CXQcGPjJwHZwLn31+jgUHmHYEBbWFd5WXQjpAWwcNjVcEZgECPTYxMV1leQN2YXdCK4FvgQICfGwyN0A1ZgUBAAEA1QTaAqYGAAADACMAsAIvsg8CAV2wANCwAC+0DwAfAAJdsAIQsAPQGbADLxgwMQEzASMBv+f+zp8GAP7aAAAB/+X+YAQlBDoAEwBasg0UFRESOQCwAEVYsAAvG7EAGT5ZsABFWLAILxuxCBk+WbAARViwES8bsRETPlmwAEVYsA4vG7EOET5ZsABFWLALLxuxCxE+WbAOELEFAbAKK1gh2Bv0WTAxAQMGFxYXFjcTMwMjNwYnIicDIwEBnmcKAwqSt2GLtryiE2+ih1BZtAEEBDr9kFQ6twMGnQMh+8ZzigJL/ioF2gABAHsAAAPGBbEACwAksgAMDRESOQCwAEVYsAovG7EKHT5ZsABFWLAALxuxABE+WTAxIRMnJiY3PgIzBQMCFFtA0+EUDpTwkAEV/AIIAQP/yY7adQH6UAAAAQClAmgBhQNMAAsAEACwAy+wCbAKK1jYG9xZMDETNjY3NhYVBgYHBialAT0yMEABQDEtQQLWMUECAj4yMT8CAjsAAf/I/ksBEwAAAA0AOgCwAEVYsAYvG7EGEz5ZsABFWLANLxuxDRE+WbIBDQYREjmwBhCxBwawCitYIdgb9FmyDAYBERI5MDEzBxYHBgYHNzY3NicnN6cVgQQDrpYEphAMaC4uNx2GZnIDbAZlRwwGhQAAAQDeApsCbwWwAAYAQbIBBwgREjkAsABFWLAFLxuxBR0+WbAARViwAC8bsQAVPlmyBAAFERI5sAQvsQMCsAorWCHYG/RZsgIDBRESOTAxASMTBzclMwHsmmjcGAFkFQKbAlU4h3EAAgDAAq0DewXJAA0AGwA1ALAARViwAC8bsQAdPlmyBxwAERI5sAcvsREDsAorWCHYG/RZsAAQsRgDsAorWCHYG/RZMDEBFhYHBwYGJyYmNzc2NgMGFhcWNjc3NiYnJgYHAk2NoQ0HEdGWjqENBxHTSwpITU9wDwkISkhScA4FxQTFmUemyQQEyJZGqMj+SGBzAgNyaFFmbQICdGT//wAPAJgDVgO1ACYBkw0AAAcBkwFfAAD//wC5AAAFMwWtACcBxgBOApgAJwGUAREACAEHAiACwAAAABAAsABFWLAFLxuxBR0+WTAx//8AtAAABXkFrQAnAZQA5gAIACcBxgBJApgBBwHFAwYAAAAQALAARViwCS8bsQkdPlkwMf//AJ4AAAWMBb0AJwGUAYwACAAnAiADGQAAAQcCHwCjApsAEACwAEVYsCAvG7EgHT5ZMDEAAv/T/noC9gRPABgAJABIALAQL7AARViwIi8bsSIZPlmxHAWwCitYIdgb9FmwANCwAC+yAxAAERI5sBAQsQkBsAorWCHYG/RZsBAQsAzQshYAEBESOTAxAQYGBwcGBwYWFxY2NzcGBicmJjc2Nzc2NxMUBgcGJjU2Njc2FgJIDFNpYXcNDV5dYoUStBP0sa2+Dw+/dFsZ9jsvMDsBPC4uPQKpbaFkW3NzYnQCAnFeAafLBATKprevZlWVAUAvPgICPi0vOwIBOQAC/4QAAAd4BbAADwASAHsAsABFWLAGLxuxBh0+WbAARViwAC8bsQARPlmwAEVYsAQvG7EEET5ZshEGABESObARL7ECAbAKK1gh2Bv0WbAGELEIAbAKK1gh2Bv0WbILAAYREjmwCy+xDAGwCitYIdgb9FmwABCxDgGwCitYIdgb9FmyEgYAERI5MDEhIRMhASMBIQchAyEHIQMhASETBrf8py/95P776ARSA6Ib/WI/Aj4b/clHAq37HgG0YAFh/p8FsJj+KZf97QF4AtIAAAEAKADOBAIEYwALADgAsAMvsgkMAxESObAJL7IKCQMREjmyBAMJERI5sgEKBBESObADELAF0LIHBAoREjmwCRCwC9AwMRMBATcBARcBAQcBASgBe/77gAEGAXll/ogBBoD++f6FAVIBTwFQcv6yAU6D/rD+sHIBUP6wAAADACD/pAWcBesAGQAjAC0AaLIMLi8REjmwDBCwINCwDBCwKdAAsABFWLANLxuxDR0+WbAARViwAC8bsQARPlmyHA0AERI5siYNABESObAmELAd0LANELEfAbAKK1gh2Bv0WbAcELAn0LAAELEpAbAKK1gh2Bv0WTAxBSYnByM3Jjc2EhI2NhcWFzczAxYXFgICBwYBFhcBJicmAgcGATYnARYXFhITNgJOpnV8l71qBQExd7Lif86Bg5bQMQoOVuKfcP5gAh8Cxk2ctvwsIgMpBAv9TUpyv/0oFhUEUJvoq+ZhASwBA7lhAwR6pf8AdHqp/kT+wUIvAf9sUwOMaAUF/uz0wAFHTk78ijoEBQEmAQ6TAAACADgAAARiBbAADQAWAFyyEBcYERI5sBAQsAnQALAARViwAC8bsQAdPlmwAEVYsAsvG7ELET5ZsgEACxESObABL7IKCwAREjmwCi+wARCxDgGwCitYIdgb9FmwChCxDwGwCitYIdgb9FkwMQEDFxYWBw4CIyUDIxMTAwUyNjc2JicB6zPu0OwPC43ukf7pN7b9aV8BAYvCEQ6BdgWw/tsBAeO8gsVrAf7HBbD+Q/3eAZl/eI4EAAEAHv/nBBkGFQAsAF2yIC0uERI5ALAARViwBi8bsQYfPlmwAEVYsBQvG7EUET5ZsABFWLAALxuxABE+WbILBhQREjmwFBCxGQGwCitYIdgb9FmyHxQGERI5sAYQsSkBsAorWCHYG/RZMDEzIxM+AhcWFgcGBgcGHgIHBgYnJic3FhcyNjc2LgI3PgM3NiYnJgYH07W+Ena6eZ+uDQmiDAk2kjoDCuitsnI7anFliwsHN5M9BgU4QTkICkxRaYgVBFeGzmoCBLKUX/RMN2yUcTykuwQCSZlLAmNWOWuWdz87YVtfOlJsBAOXkQAAAwAT/+gGYQRSACwANwBBAMyyAkJDERI5sAIQsDHQsAIQsDvQALAARViwHC8bsRwZPlmwAEVYsAAvG7EAET5ZsABFWLAFLxuxBRE+WbIDHAAREjmyCxwAERI5sAsvtL8LzwsCXbAcELE4AbAKK1gh2Bv0WbAQ0LITCxwREjmwHBCwF9CyGhwAERI5sjwcABESObA8L7S/PM88Al2xIQGwCitYIdgb9FmwABCxJwGwCitYIdgb9FmyKhwAERI5sAUQsS0BsAorWCHYG/RZsAsQsTIBsAorWCHYG/RZMDEFJiYnBiUmJjc2NjMXNzYmJyYGByc2NhcWFhc2Fx4CBwchBhcWFhcWNjcXBiUWNjc3JyIGBwYWASYGByE3NicmJgRwebkzqf7skqkKCv7Z4gwMVlpokA+zEPy6baMiosJ/rkoREv1CCQkNgWhanUo1ivwVRp9CK8t4pgwJWgO7bqo1AgoGCQcLZhQCXVW4BAKtjaC0AVZoeQQCa1YTl7ACAldNqQQCft2KdkRAa30BAjwviXiVAkk57gFxW0pXAzUDnZ4gNzJQXAACAFz/6ARUBisAHAAoAFKyFikqERI5sBYQsCbQALAOL7AARViwGC8bsRgfPlmwAEVYsAcvG7EHET5ZshAOBxESObAOELEfAbAKK1gh2Bv0WbAHELElAbAKK1gh2Bv0WTAxARIDBwYCBicmAjc+AhcWFyYnByc3Jic3Fhc3FwMmJyYGBwYWFxY2NwOesTINGJ3hgrzgEw6K3oSabwRq7zvPZrJG3JbROuc4qpDEEw+AcH+2HwUT/tn+jVun/vaFAwQBE8mQ84gEBG+2mZRsflY0nTiIgm39N34FBMupi7sDBdvAAAADAEQAqQQuBL0AAwAOABkAQACwAi+xAQ6wCitYIdgb9FmwAhCwDbAKK1jYG9xZsAewCitY2BvcWbABELASsAorWNgb3FmwGLAKK1jYG9xZMDEBITchATQ2NzYWFQ4CJgM2Njc2FhUOAiYEDvw2IQPJ/eg9MjBAAT9iPo0BPTIwQAFAYj0CWLgBNzFBAgI+MjE+BDz9ADFBAgI+MjE+BD0AAwA5/3oEKgS4ABkAIQArAGiyDCwtERI5sAwQsB/QsAwQsCjQALAARViwAC8bsQAZPlmwAEVYsA0vG7ENET5ZshwADRESObIkAA0REjmwJBCwHdCwABCxHwGwCitYIdgb9FmwHBCwJdCwDRCxJwGwCitYIdgb9FkwMQEWFzcXBxYXFgcGAgYnJicHJzcmJyY3NxIAAwYXASYnJgIlJicBFhcWNjc2An5nW2aEkG4HAggTn/COWV1mhI12BwIGAiQBNrAKMwHLN0Cd0QJXAx/+ODI5jMkfDQRQAiuVAc+CxjdWnP75iAICI5UBzXzNPTwQAQcBM/1rhFsCuh0CBP7tE0pF/UwXAgPcu18AAAL/4P5gBAQGAAARAB0AX7IEHh8REjmwBBCwHNAAsAkvsABFWLANLxuxDRk+WbAARViwBy8bsQcTPlmwAEVYsAQvG7EEET5ZsgsNBxESObANELEWAbAKK1gh2Bv0WbAEELEbAbAKK1gh2Bv0WTAxAQYCBicmJwMjATMDNhcWFhcWBzc0JicmBwMWFxY2A/wUjMt8umVhtQFTtGqDtZ6tAwG6BXBooHBaPZ2JvQIYpv72gQMEfP32B6D9yYkEBOS9PT5UkZwCBJj9+Y8FA9sAAgBL/+cFEQYAABoAJgCPsgUnKBESObAFELAj0ACwFy+wAEVYsBAvG7EQGT5ZsABFWLAGLxuxBhE+WbAARViwAi8bsQIRPlmyLxcBXbIPFwFdshkXAhESObAZL7EAAbAKK1gh2Bv0WbIEAhcREjmyEgIXERI5sBPQsBkQsBXQsAYQsR4BsAorWCHYG/RZsBAQsSMBsAorWCHYG/RZMDEBIwMjNwYnJiYnJyY3NhI2FxYXEyE3MzczBzMBBhYXFjcTJicmBgYE97fVpROBuouvEwMDCBOPz361YTT+/xv/G7Ubt/vvA25noHdWPJ5ro1YE0fsvdI0GBMSyLzdYnwEKhAMEgAEGl5iY/E+SnAIEowHzlAQDhfQAAAIANQAABcEFsAATABcAbQCwAEVYsA8vG7EPHT5ZsABFWLAILxuxCBE+WbIUCA8REjmwFC+yEBQPERI5sBAvsADQsBAQsRcBsAorWCHYG/RZsAPQsAgQsAXQsBQQsQcBsAorWCHYG/RZsBcQsArQsBAQsA3QsA8QsBLQMDEBMwcjAyMTIQMjEyM3MxMzAyETMwEhNyEFPoMZgrK8df06db2yghmCMr0zAsYzvPwRAsUj/ToEjo78AAKh/V8EAI4BIv7eASL9jsIAAQAuAAABnwQ6AAMAHQCwAEVYsAIvG7ECGT5ZsABFWLABLxuxARE+WTAxMyMTM+O1vLUEOgAAAQAtAAAEVwQ6AAwAaQCwAEVYsAQvG7EEGT5ZsABFWLAILxuxCBk+WbAARViwAi8bsQIRPlmwAEVYsAsvG7ELET5ZsAIQsAbQsAYvsp8GAV20vwbPBgJdsi8GAV2y/wYBXbEBAbAKK1gh2Bv0WbIKAQYREjkwMQEjAyMTMwMzATMBASMBoW5Qtry2UVAB0ej95QF01AHN/jMEOv42Acr96v3cAAABACIAAAOwBbAADQBdALAARViwDC8bsQwdPlmwAEVYsAYvG7EGET5ZsgEMBhESObABL7AA0LABELECAbAKK1gh2Bv0WbAD0LAGELEEAbAKK1gh2Bv0WbADELAI0LAJ0LAAELAL0LAK0DAxASUHBQMhByETBzc3EzMBigEOGP7zYQKeHPymcooYiXS9A09ThFP90p0CjSmEKQKfAAABACMAAAI2BgAACwBLALAARViwCi8bsQofPlmwAEVYsAQvG7EEET5ZsgEEChESObABL7AA0LABELECAbAKK1gh2Bv0WbAD0LAG0LAH0LAAELAJ0LAI0DAxATcHBwMjEwc3NxMzAZGlGKOBtnWWF5WAtQNqPIM9/RoCnjaDNwLeAAEANf5FBWEFsAATAFuyBhQVERI5ALAARViwAC8bsQAdPlmwAEVYsBAvG7EQHT5ZsABFWLAELxuxBBM+WbAARViwDi8bsQ4RPlmwBBCxCQGwCitYIdgb9FmyDQ4QERI5shIOABESOTAxAQEGBiciJzcWMzI3NwEDIxMzARMFYf75GcGXNUMeOCmEJRH+DMa7/LUB+MUFsPn9rLwEFJkRvV4EcvuOBbD7kARwAAABACT+RwPyBFIAGwBcALAARViwAC8bsQAZPlmwAEVYsAMvG7EDGT5ZsABFWLAKLxuxChM+WbAARViwGS8bsRkRPlmyARkDERI5sAoQsQ8BsAorWCHYG/RZsAMQsRYBsAorWCHYG/RZMDEBBzYXFhYHAwYGJyInNxYzMjcTNicmJyYHAyMTAYEWjL+jmRV9Fr+WNUMfNS6MIHwGAw6kn3GOtrwEO5uyBATjvfz9proCFJwQxQL5NjCgBQSJ/NMEOgACAFT/7QdlBccAFgAkAJayFSUmERI5sBUQsBrQALAARViwCy8bsQsdPlmwAEVYsA0vG7ENHT5ZsABFWLAALxuxABE+WbAARViwAy8bsQMRPlmwDRCxDwGwCitYIdgb9FmyEg0AERI5sBIvsRMBsAorWCHYG/RZsAAQsRUBsAorWCHYG/RZsAMQsRcBsAorWCHYG/RZsAsQsRwBsAorWCHYG/RZMDEhIQcHJiYCNxMSAB8CIQchAyEHIQMhBRY3EyYjJgYHAwYXFhYGcvzU2UWY22EVLysBWfNK0wM5HP1DUQJkHP2dWgLI+6BMitFsX6/sIS8KBwqOEgEEngESnwErARIBSgICE57+LJ39/BgDDQSQEQLz1P7UTk6DlwAAAwBH/+YG4gRTACIAMwA9AKWyGT4/ERI5sBkQsC3QsBkQsDfQALAARViwBS8bsQUZPlmwAEVYsAAvG7EAGT5ZsABFWLAbLxuxGxE+WbAARViwFi8bsRYRPlmyAwUWERI5sjgFFhESObA4L7EKAbAKK1gh2Bv0WbAWELEQAbAKK1gh2Bv0WbISBRYREjmyGQUWERI5sBsQsSgBsAorWCHYG/RZsAUQsTABsAorWCHYG/RZsDTQMDEBFhYXNhceAgcHIQYXFhYXFjcXBgYnJiYnBicuAjc3EgADBhcWFhcWNj8CNCYnJgYHASYGBwU3NicmJgJ+eb4rstl9sEoRE/1MCAYKdWCskD1EyHN8vSyr9IW8VRACJAEtnQcEBXNliMMaAgVzbYzBFwRSZaU3Af4FCAcNZwROAnRj3QMCftyIej1AbIEDBm9/QUICAnFf2QYCjvmVEAEFATT9tz5EdY8DBdy7FlePpAQF57UBlwOalwEcNTFPWwABADMAAAMKBhoADQAsALAARViwBC8bsQQfPlmwAEVYsA0vG7ENET5ZsAQQsQkBsAorWCHYG/RZMDEzEzY2FzIXByYnIgYHAzPLFsaeL2MhLCxXdRHNBKurxAIWjwwCb2b7VAAAAgBR/+kFKgXGABoAJABUALAARViwEi8bsRIdPlmwAEVYsAAvG7EAET5ZsgUAEhESObAFL7ASELEMAbAKK1gh2Bv0WbAAELEbAbAKK1gh2Bv0WbAFELEfAbAKK1gh2Bv0WTAxBSYmAjc3BTc2JyYmJyYHJzY2FxYEEgcHBgIEJxY2NwUHBhcWFgJPru1jGhQD0AMVCQ+9mKbKI0TUgbgBAXEaDh/O/t+dpftH/OgHDwoQpBQCqAEvvnwDDGNgnLkDA1aRLzYDArP+vsZjyP64qqAF9fIBI1lQgZEAAAH/Sf5GAy8GGgAdAHSyEh4fERI5ALAARViwFC8bsRQfPlmwAEVYsA8vG7EPGT5ZsABFWLAcLxuxHBk+WbAARViwBS8bsQUTPlmwHBCxAAGwCitYIdgb9FmwBRCxCgGwCitYIdgb9FmwABCwDdCwDtCwFBCxGQGwCitYIdgb9FkwMQEjAwYGJyYnNxYzMjcTIzczNzY2FzIXByYjIgcHMwKDxJ0Uu5c1Phw1KoggnaYWpg4VxpgzXB03KLQdDcUDq/v8p7oCAhOSEM4D/o9xr8ACFZUM3WMAAAIAZ//pBhsGNwAYACgAUQCwAEVYsAovG7EKHT5ZsABFWLAALxuxABE+WbIMAAoREjmwDC+xEgKwCitYIdgb9FmwChCxHAGwCitYIdgb9FmwABCxJAGwCitYIdgb9FkwMQUuAicmNzYSJBcWFzY2NzcCBRYXFgICBAE2JicmAgMGBwYWFxYSNzYCQIvQcwYFGyLFARWn5YZkcxOhI/7kGgUGTbn+8AFUBpWVvv4mEwEGlpTE/CISFAOD9Zxtp88BQaADBJkKhYAB/rZCaWmY/nH+16ADlsTYBAX+2f7+f0i/4wQFAS/+gwACAEL/5wT/BLAAFgAlAFEAsABFWLAALxuxABk+WbAARViwDy8bsQ8RPlmyAg8AERI5sAIvsQkCsAorWCHYG/RZsA8QsRoBsAorWCHYG/RZsAAQsSIBsAorWCHYG/RZMDEBFhc2NjczBgYHFhcWAgQnLgI3NzYAAxQWFxY2NzYnJiYnJgYGAoLEeUtSE5AQeXYSBAqO/vSliL9YEAMiATSoeG6NyRsHBAl2Zm6uWwRPBIkOY32UpCBLS8f+qb0EBI74lRX+ATb9YIyhBAXjyT9FeY0EBI/4AAABAGf/6AaaBgIAGgBLALAARViwEi8bsRIdPlmwAEVYsA0vG7ENET5ZsBIQsBrQsBovsgENGhESObABL7EIArAKK1gh2Bv0WbANELEWAbAKK1gh2Bv0WTAxAQc2Njc3BgYHAw4CJyYCNxMzAwYWFxY2NxMFJh5vdxOZF9LAcBaf/5ja9BqouacRi4yV0ByrBbDZDoyQAc7WC/2DlOF5AwQBD9gD2vwlm64EBKqdA+UAAAEAWv/oBU4EkQAbAFgAsABFWLANLxuxDRk+WbAARViwBS8bsQURPlmwAEVYsAgvG7EIET5ZsA0QsBbQsBYvshgWCBESObAYL7EDArAKK1gh2Bv0WbAIELETAbAKK1gh2Bv0WTAxAQYGBwMjNwYnJiY3EzMDBhcWFhcWNxMzBzY2NwVODqKllqsXfcWclxV0tXUFAwVMRMFriLQYW1cUBJGongb8u2uDBATYtwK7/UIsKkhSAwilAxSGB1SBAAAB/wn+RgGvBDoADAApALAARViwDC8bsQwZPlmwAEVYsAQvG7EEEz5ZsQkBsAorWCHYG/RZMDEBAwYGJyYnNxYzMjcTAa/GFr6YNj4eNSqKJMYEOvtuprwCAhOSENMEiAACAD7/6QPfBE4AGAAiAFQAsABFWLAALxuxABk+WbAARViwCS8bsQkRPlmyDgAJERI5sA4vsAAQsRMBsAorWCHYG/RZsAkQsRkBsAorWCHYG/RZsA4QsRwBsAorWCHYG/RZMDEBHgIHBwYCBicmAjc3ITYnJiYnJgcnNjcDFjY3JQcGFxYWAkeGvFYPBBGV5YLBwBoSArMIBgp0YKmTPXvTTmSlN/4DBggIC2kETgKM9pUklv7/kQQGAQjUeT1AbYEDBm9+dwv8NgOalwEcNTFOXgABARcE4gNkBgAACAAyALAFL7AB0LABL7AAsAorWNgb3FmwBRCwB9CwBy+0DwcfBwJdsAPQsAAQsAbQsAYvMDEBFScnBwc1ATMDZJNxsJkBFmoE8A4CqagDEAEOAAEBJwTjA4EGAQAIACAAsAQvsALQsAIvtA8CHwICXbIABAIREjmwB9CwBy8wMQE3NxcBIwM1FwIwsZ8B/uJuzpYFVqgDDf7vARAOAv//APcFFgObBaUABgBwAAAAAQEHBMcDTAXYAAwAIwCwAy+yDwMBXbEJBLAKK1gh2Bv0WbAH0LAHL7AA0LAALzAxAQYGJyYmNxcGFxY2NwNMDKuAe5MCkweBR1IMBdd9kwQCknkBkgQBVUEAAQEOBOsB4wXFAAsAEgCwCS+xAwWwCitYIdgb9FkwMQE0Njc2FhUGBgcGJgEOOjAuPQE7Lyw+BVQvPgICOzAvPAICOQACAQEEswKkBlEACwAXACcAsAkvsBXQsBUvsQMIsAorWCHYG/RZsAkQsQ8IsAorWCHYG/RZMDEBNjYzMhYVBgYjIiY3BhYzMjY3NiYjIgYBAwKBWVJzAoFZVHNiBDYrLk8GBjgqLlAFeFt+dFVZfHJVLj9HMi5CSQAB/6/+TwEWADkADwA0ALAQL7AARViwCi8bsQoTPlmxBQOwCitYIdgb9FmwEBCwD9CwDy+yLw8BXbQMDxwPAl0wMQUHBgcGFxY3FwYjIiY3NiUBFkF6CQdBIEMERFNOXwIDARYDL1pZPwIBGnkrZVKxggABAN0E2gOuBecAFQBAALADL7AI0LAIL7QPCB8IAl2wAxCwCtCwCi+wCBCxDgOwCitYIdgb9FmwAxCxEwOwCitYIdgb9FmwDhCwFdAwMQEGBiMiLgIHBgcnNjYXMh4CNzI3A64Mel0lPTw+JFUfegx9XRsvajEbViAF3W+GHyYeAQNtB26MAhFBEgFxAAIAwgTQA74F/wADAAcAOwCwAi+wANCwAC+0DwAfAAJdsAIQsAPQGbADLxiwABCwBdCwBS+wAhCwBtCwBi+wAxCwB9AZsAcvGDAxATMBIwMzASMC5tj+xrM0zf73nwX//tEBL/7RAAL/6f5qATX/tgALABcAOwCwGC+wA9CwAy9ACwADEAMgAzADQAMFXbAP0LAPL7EJB7AKK1gh2Bv0WbADELEVB7AKK1gh2Bv0WTAxBzQ2MzIWFRQGIyImNwYWMzI2NzYmIyIGF2hGRFpjRkVeVAQoIB87BwQmHiU6+UlmX0NHY1lGHy8xJyEwOQAB/WoE2v6/BgAAAwAeALABL7AA0BmwAC8YsAEQsALQsAIvtA8CHwICXTAxASMDM/6/jcjNBNoBJgAAAf3rBNr/wgYAAAMAHgCwAi+wAdCwAS+0DwEfAQJdsAIQsAPQGbADLxgwMQEXASP+2uj+yaAGAAH+2wD///0LBNr/3AXnAAcApfwuAAAAAf31BNj/NgZzAA0ALQCwDS+wB9CwBy+0Lwc/BwJdsgwNBxESObIBBwwREjmxBgawCitYIdgb9FkwMQE3NzY3NiM3FhYHBgcH/fUWKWsKC5sPgowDB6IMBNmZBApCR2oDYFGCHUgAAvzbBOT/hgXuAAMABwA3ALABL7AA0BmwAC8YsAEQsAXQsAUvsAbQsAYvtg8GHwYvBgNdsAPQsAMvsAAQsATQGbAELxgwMQEjAzMBIwMz/oq0++oBwZ/B1gTkAQr+9gEKAAAB/Lv+n/2Q/3kACwASALADL7EJBbAKK1gh2Bv0WTAxBTY2NzYWFQYGBwYm/LsBOi8uPQE7Lyw++C8+AgI7MC88AgI5AAEBIQTuAkEGPwADAB0AsAIvsADQsAAvsg8AAV2yAwIAERI5GbADLxgwMQEzAyMBkbCsdAY//q8AAwDzBO0D7gaIAAMADgAZADsAsAwvsALQsAIvsADQsAAvsAIQsAPQGbADLxiwDBCxBgWwCitYIdgb9FmwDBCwFdCwFS+wBhCwGdAwMQEzAyMFPgIWFRQGBwYmJTYWFQYGBwYmNjYCir6Riv7GATpePDwvLD4CkCw/ATwuLzwCOgaI/vgoLz0EPC4vPAICOZ0CPC8vPAICOl4+//8ApQJoAYUDTAAGAHgAAAABAEMAAASlBbAABQAsALAARViwBC8bsQQdPlmwAEVYsAIvG7ECET5ZsAQQsQABsAorWCHYG/RZMDEBIQMjEyEEif1Y4b39A2UFEvruBbAAAAL/sQAABN4FsAADAAYAMACwAEVYsAAvG7EAHT5ZsABFWLACLxuxAhE+WbEEAbAKK1gh2Bv0WbIGAgAREjkwMQEzASElIQMDAqcBNfrTASMDMtQFsPpQnQQmAAMAaf/pBPwFyAADABYAJwBaALAARViwDS8bsQ0dPlmwAEVYsAQvG7EEET5ZsgIEDRESOXywAi8YtGACcAICXbEBAbAKK1gh2Bv0WbANELEbAbAKK1gh2Bv0WbAEELEjAbAKK1gh2Bv0WTAxASE3IQEmAicmEjc2JBcWEhcWBwcGAgQBNiYmJyYAAwYHBhYXFhITNgOv/gkbAff+eNP3CgUwQl0BML7U9gkDCgwfwv7nAVQEPIhjwf8AJBABBpaUuvspFAKTmPzBBAEf9GIBQozE0QQE/uP3VFNU2f62pQOVe79lAwX+zv74dEPA4QQHARsBAX4AAAH/xAAABHEFsAAGADEAsABFWLADLxuxAx0+WbAARViwAS8bsQERPlmwAEVYsAUvG7EFET5ZsgADARESOTAxAQEjATMBIwLs/anRAv+oAQbCBIf7eQWw+lAAAAMADAAABIYFsAADAAcACwBSALAARViwCC8bsQgdPlmwAEVYsAIvG7ECET5ZsQABsAorWCHYG/RZsAIQsAXQsAUvsi8FAV2xBgGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FkwMTchByETIQchEyEHISgDjhz8cuUC3Bv9IzgDeRz8hp2dAz+dAw6eAAEARAAABXAFsAAHADkAsABFWLAGLxuxBh0+WbAARViwAC8bsQARPlmwAEVYsAQvG7EEET5ZsAYQsQIBsAorWCHYG/RZMDEhIxMhAyMTIQRzvOH9SeG8/QQvBRL67gWwAAH/2gAABIkFsAAMAD4AsABFWLAILxuxCB0+WbAARViwAy8bsQMRPlmxAQGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIQchNwEBNyEHIQEC8v31AvEc/B4bAjj+khgDshz9MwFUAtD9zZ2YAkoCR4ee/dYAAAMAVQAABXMFsAAVABwAIwBeALAARViwFC8bsRQdPlmwAEVYsAovG7EKET5ZshMUChESObATL7AA0LILChQREjmwCy+wCNCwCxCxGQGwCitYIdgb9FmwExCxGgGwCitYIdgb9FmwINCwGRCwIdAwMQEeAgcGBgQHByM3LgI3NjYkNzczAQYWFxMGBgU2JicDNjYDnZHbahAQrf7qpiS+JJHbaxAQrAEYpia9/V0VkKOOsOYDdBWToI604gT1CI3zkaD8jQSvsQaM9JOf/I4Euf0aqMYOAwsG1KOmyQz89QjWAAABAIYAAAWdBbAAGQBdsgoaGxESOQCwAEVYsAQvG7EEHT5ZsABFWLAQLxuxEB0+WbAARViwGC8bsRgdPlmwAEVYsAsvG7ELET5ZshcECxESObAXL7AA0LAXELEMAbAKK1gh2Bv0WbAJ0DAxATY2NxMzAwYABwMjEyYCNxMzAwYXFhYXEzMC/5zNHVy8XSv+w+9EvUXQ1xtYvFkJBwp3ZKa9AggZ06MCGf3b6/7hF/6WAWweATbiAg798UVBao0YA6QAAAEACgAABNoFxwAmAFuyACcoERI5ALAARViwGi8bsRodPlmwAEVYsBAvG7EQET5ZsABFWLAlLxuxJRE+WbEjAbAKK1gh2Bv0WbAA0LAaELEIAbAKK1gh2Bv0WbAAELAP0LAjELAS0DAxJTYSPwI2JicmBgIXFhYXByE3NwITNzYSJBceAhcWAgcGBzcHIQJ7mMYmEQgDioio5kkEA2lfGf4iHNahKRQetQEInn/GdAkHPVlQd9gc/imhIQEY93lrqsQEBfn+SX6VrxiinQIBAwE0hLQBIZgDA3bfi2j+nJaHXgOdAAIASP/nBDIEVAAYACUAfLIVJicREjmwFRCwItAAsABFWLAVLxuxFRk+WbAARViwGC8bsRgZPlmwAEVYsA4vG7EOET5ZsABFWLAKLxuxChE+WbEFAbAKK1gh2Bv0WbIMFQoREjmyFxUKERI5sA4QsR0BsAorWCHYG/RZsBUQsSIBsAorWCHYG/RZMDEBAwYXFhczNxcGJyYnBicmAjc3NgAXFhc3AQcGFhcWNxMmJyYGBwQyhAgEBSoREAo1PYwQisCvtRcLLAEBucBYL/1+BQNtZqR1TDiajLYaBDr86zodOAIDiyABBJ+pBAMBHOdL+QEfBQadjv2zUYSWAgO+AcGzBwXtzAAC//D+gARMBccAEwApAGiyGyorERI5sBsQsBPQALAOL7AARViwAC8bsQAdPlmwAEVYsAsvG7ELET5ZshQACxESObAUL7EnAbAKK1gh2Bv0WbIFJxQREjmwABCxGgGwCitYIdgb9FmwCxCxIQGwCitYIdgb9FkwMQEWFgcGBxYWBwYEJyYnAyMTPgITNjY3NiYnJgYHAxYWMxY2NzYmJyc3AtKszg4R1l5gCRD+5susb1a2+RGL2A16mgsKaWJsqROOKYhJg7oQDmhhlxsFxATXprxyLrp9y/4EBF3+NAWxcrpq/ZECgW1hgQQCj2/8wzs4AqeFcZ8FAZcAAQCE/mAEGgQ6AAgAOLIACQoREjkAsABFWLABLxuxARk+WbAARViwBy8bsQcZPlmwAEVYsAQvG7EEEz5ZsgAHBBESOTAxAQEzAQMjEwMzAb4BnMD92FC1Vb6xARYDJPv0/jIB6wPvAAACAEP/5wQTBiAAIAAvAGWyAjAxERI5sAIQsCjQALAARViwAy8bsQMfPlmwAEVYsBUvG7EVET5ZsAMQsQgBsAorWCHYG/RZsi0VAxESObAtL7EOAbAKK1gh2Bv0WbIdLQ4REjmwFRCxJwGwCitYIdgb9FkwMQE2NhcWFwcmByIGBwYXFxYSBwcGACcuAjc3NjY3NyYmAwYXFhcWFxY2NzYmJyYGAU8H4qp6kBSCflV1Cg+PNbWlFAMh/tTSh71WDgMX2aMDTFRBBwULVzBNhcAeD3tth8QE7Y6lAgI3oT8CTkBdQRhL/uXCFfb+3QUEiPCSFrP9Hw0lhv1fPkGMQyUCBc7KieIPEucAAAEAKf/nA+UETQAoAHuyJikqERI5ALAARViwGS8bsRkZPlmwAEVYsA0vG7ENET5ZsicZDRESOXywJy8YsoAnAV20QCdQJwJdsQABsAorWCHYG/RZsA0QsQYBsAorWCHYG/RZsgoZDRESObITACcREjmyHRkNERI5sBkQsSEBsAorWCHYG/RZMDEBIgYHBhYXFjY3NwYEJyYnJjc2NyYmNzY2NzcWFgcnNiYnIgYHBhcXBwIFfJUKCXxqa6gRtRD+9MSLaKQKCudCTQQG2rwtrtUDsgJzY2yYDBPQ1BsB315ZSlwDAmtXAZ67BQI2Vq24UiJ0Q4utCgEFsI0BS10DW1GSBgGUAAABAIL+gAQ8BbAAHAA7shMdHhESOQCwDS+wFC+wAEVYsAAvG7EAHT5ZsRoBsAorWCHYG/RZsAHQsBQQsQgBsAorWCHYG/RZMDEBBwEHBgcGFhcXFgcGByc3Njc2JycmJjcSAQEhNwQ8F/4vKsYZCilKzYsKCsZcIk4KCF9vin4QHAFCAVb9nRsFsIH+IC3X0EtpG0UyhJiZWSRURDogISurkAEMAUoBTJgAAAEAJP5hA/MEUgASAFSyCBMUERI5ALAARViwAy8bsQMZPlmwAEVYsAAvG7EAGT5ZsABFWLAHLxuxBxM+WbAARViwEC8bsRARPlmyAQMHERI5sAMQsQ0BsAorWCHYG/RZMDEBBzYXFhYHAyMTNicmJyYHAyMTAYIVjrumlxW7tbsGBA2lqW6ItrwEO4mgBATTwfurBFI2L5wDBKn87gQ6AAADAHP/5QQrBcoAEQAbACQAabIZJSYREjmwGRCwANCwGRCwItAAsABFWLAJLxuxCR0+WbAARViwAC8bsQARPlmyEgAJERI5fLASLxiwCRCxGAGwCitYIdgb9FmwEhCxHQGwCitYIdgb9FmwABCxIgGwCitYIdgb9FkwMQUuAjc2Ejc2BRYSBwYHBwIAASE3NicCJyYGBwUhBhcWFhcWEwHceaVLBANOYpABA7a4BgIJHDP+6f6VAhgJDwILuIivKQH7/ekWAwNkWvRbFAN+7ZdzAd6f6QYE/vbtS0W3/rX+rgM7OXJKAREHBOjw0IBljJMDDAGRAAABAIX/9AHuBDoADgApALAARViwAC8bsQAZPlmwAEVYsAovG7EKET5ZsQUBsAorWCHYG/RZMDEBAwYXFhcyNwcGJyYmNxMBzIgDAgZPIjQMRz5sbAyHBDr81xoWSgMKmBICApiEAyYAAAH/t//wA8AF7AAZAE+yDhobERI5ALAAL7AARViwCi8bsQoRPlmwAEVYsA8vG7EPET5ZsAoQsQUBsAorWCHYG/RZsg4AChESObAAELEVAbAKK1gh2Bv0WbAX0DAxATIXExYXMzcHBgciJicDASMBJyYmJycHNzYBjrYo4hQ5ExIGHihQYiB9/mPRAjc0ESsjGBkMMAXsrvurUwMCmgkCVnUCTvz3BBDgOicCAQGOCwAAAQA//ncEDwXIAC4AVbIZLzAREjkAsBgvsB4vsABFWLAsLxuxLB0+WbECAbAKK1gh2Bv0WbIJLBgREjmwCS+xCwGwCitYIdgb9FmwHhCxEQGwCitYIdgb9FmyJQsJERI5MDEBJiMiBgcGFhcXByciBgcGHgQHBgYHJzc2NzYnJicmEzY2NyYmNzY3NhcWFwPlflmMsw0Pj5SLG3/B6BEMcfRZPyMDBWlgZDs+CApYp0T1Fwy7r11mBQukj8WDewUIJmlbZG8BAZgBr5tsnEMgLUUzSJxJVz1EPzoYLSF0ARaPzzkqlVa1XlEDAicAAAEAYP/0BKQEOgAWAF6yDRcYERI5ALAARViwFS8bsRUZPlmwAEVYsAsvG7ELET5ZsABFWLARLxuxERE+WbAVELEAAbAKK1gh2Bv0WbALELEGAbAKK1gh2Bv0WbAAELAP0LAQ0LAT0LAU0DAxASMDBhcWMxY3BwYnJiY3EyEDIxMjNyEEiZdvAwIHTyUvCUJCbW0MbP58obWhpBsEKQOh/XAaFkwCDJkSAQKYhQKN/F8DoZkAAAL/3P5gA/kEUwATACAAUrIPISIREjmwDxCwF9AAsABFWLAFLxuxBRk+WbAARViwEi8bsRITPlmwAEVYsA8vG7EPET5ZsRYBsAorWCHYG/RZsAUQsR0BsAorWCHYG/RZMDETNjY3NhceAhcWBw4CJyYnAyMBFhcWNjc3NiYnJgYHhhFXR4rGc6VYAwEJE4HJgbxjYbYBL0GZibcWCQdkbXqoHgJBcMlJkAUDbM1/PGKY84ECBHr99wKzjQQDzapro7AEAtS3AAEATv6JA+sEUwAhAEyyGSIjERI5ALATL7AARViwAC8bsQAZPlmwAEVYsBkvG7EZET5ZsgMAExESObAAELEHAbAKK1gh2Bv0WbAZELENAbAKK1gh2Bv0WTAxARYWByc2JicmBgcHAgUXFgcGBgcnNzY3NicnJgI3NzYSNgJ7q8UKqgdoZYO9GwQeATRWlQoFa11cKUcJB04uz8cTBBGW5wRPBNivAW2BBAXbvh3+8WMdOIhHoEdaK0tHPRcMOQEHxSuWAQCNAAIASv/mBK0EOwASACEATrIeIiMREjmwHhCwEdAAsABFWLASLxuxEhk+WbAARViwBy8bsQcRPlmwEhCxAQGwCitYIdgb9FmwBxCxFgGwCitYIdgb9FmwARCwHtAwMQEFFgcHBgAnLgInJjc3NgAzBQEUFhcWNjc2JyYmJyYGBgSS/u2QFwEe/szNbqxmCQUHAiABKtsCNfxVc2yLwRoJBQl1Y2qmWAOhA6nwCu7+2QYBZsB2QkMQ8wEqAf16j6AEBd+5WjxwhQMDgukAAAEAh//sBBAEOgARAEuyAxITERI5ALAARViwEC8bsRAZPlmwAEVYsAovG7EKET5ZsBAQsQABsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA7QsA/QMDEBIQMHFDMyNxcGJyYmNxMhNyED9v6YcAFIITseT11sZw1r/q8bA24DpP1oLVQXhDIBApaSAo2WAAEAZ//lA/oEPAAVAD2yBhYXERI5ALAARViwAC8bsQAZPlmwAEVYsAsvG7ELGT5ZsABFWLARLxuxERE+WbEFAbAKK1gh2Bv0WTAxAQMHFBYXFhIDJyYnFxYXEgAlJiY3EwGhbQVKR6TbBwIKIrYmBQ/+xv7+r6gXbQQ6/W1dXWoCBgF1ARY2g30CfYL+e/4vBgTwzQKOAAIAQf4iBTgEPgAaACMAYbIYJCUREjmwGBCwG9AAsBkvsABFWLARLxuxERk+WbAARViwBi8bsQYZPlmwAEVYsAAvG7EAET5ZsQ0BsAorWCHYG/RZsAAQsBjQsA0QsBvQsBEQsSEBsAorWCHYG/RZMDEFJgI3NhI3FwYCFxYWFxM2NhceAgcGAAUDIwE2EicmJgcGBwIC4OEdFKWOVoF7Ew6GbXsNkm5+wl0OG/6s/vxVtQEjwe0GB3hjPBIPHQE55qgBDFqIav7YhGyRGALPZ4ACApT4h/X+0hX+MwJjHwEUvo6mCARBAAABAE/+KAVPBDwAHQBFsh0eHxESOQCwDy+wAEVYsBYvG7EWGT5ZsABFWLARLxuxERE+WbEcAbAKK1gh2Bv0WbAB0LAWELAd0LAH0LARELAO0DAxAQM2EgMnJicXFhcSBQYHAyMTJgI3EzMDBhcWFhcTA2ul1u8JAwwltScIHf74pPJUtVXe0CFStVIKBAV5cKkEOvxLJQFCARU+gnsCe4H+JdqHE/45AcsfAUb8Aeb+F0xJe58ZA7EAAQBm/+QF/AQ8ACoAW7IhKywREjkAsABFWLAALxuxABk+WbAARViwGC8bsRgZPlmwAEVYsB8vG7EfET5ZsABFWLAkLxuxJBE+WbEIAbAKK1gh2Bv0WbIMHwAREjmwEtCyIggfERI5MDEBBwYCBxUUFhcWExMzAwYHBhYXFhM2JyYnFxYXFgIGJyYmJwYnLgI3EhMCCUhLWwJPStM8M7YvBgECUlC1TDQUDS23LwoRb+CbbJgUfd9nkEEDBdcEOX+D/vqfCn+FAw0BTwE//tQvOmt/AgcBKMzOg30CfILa/l7ZBAKBbPYHA3DSgAFeASwAAgBR/+cEbQXLACQALwBusiYwMRESObAmELAU0ACwAEVYsB4vG7EeHT5ZsABFWLAHLxuxBxE+WbIoHgcREjmwKC+xFwGwCitYIdgb9FmwAtCyDR4HERI5sAcQsRMBsAorWCHYG/RZsCgQsCLQsB4QsSwBsAorWCHYG/RZMDEBBgcHBgcGJy4CNxM3AwYXFhYXFjY3NyYCNzc2NhcWFgcDNjcBBhYXEzcmJyYGBwRnNGAfJ4KAuHq0VA82tjYHBwtpVXeXFh7A0g4CDsyVkZcSO042/eQKbn47BARvSFsKAnISDbfSc3AFA3XQfwFOAv6vODVWZAMDnZCpJgEUxRCaxwQEzqT+ngsOAVCAuSUBWEiNAgJpWQABAGcAAATYBcEAGgBKsgAbHBESOQCwAEVYsAQvG7EEHT5ZsABFWLAXLxuxFx0+WbAARViwDS8bsQ0RPlmyAAQNERI5sAQQsQkBsAorWCHYG/RZsBLQMDEBATY2FzIXByYjJgcBAyMTAyYnJgcnNjMWFhcCLQEtNnlPQEAvHRVCNv5qYbplrRo7DyYVNj5LZCADCAH7ZlgCHJcJAlP9a/3RAkgCe0kDAQiZGQJXYAACAGb/5AZEBDoAFgAsAGyyCS0uERI5sAkQsCfQALAARViwFS8bsRUZPlmwAEVYsAcvG7EHET5ZsABFWLAMLxuxDBE+WbAVELEAAbAKK1gh2Bv0WbIKFQcREjmwFNCwGdCwBxCxKQGwCitYIdgb9FmwINCyJBkHERI5MDEBIxYVFAIGJyYmJwYnLgI3NjY3BzchASYnJQYGBwYWFxYTNzMHBwYWFxYTNgYngAdyw4VvlxJ+3WGCOAYHREB1HAWm/rMDC/zTUEkHBT1C2TgmtycGB1JWqTwdA6FcWtD+hroEAoNr9wcDctt9ledvApn+slpbAYvqmn+OBQ4BaPf8RYSLAgQBTqEAAQCh//IFegWwABkAZACwAEVYsBgvG7EYHT5ZsABFWLAULxuxFBE+WbAARViwCi8bsQoRPlmwGBCxFwGwCitYIdgb9FmwAdCyBBQYERI5sAQvsAoQsQsBsAorWCHYG/RZsAQQsREBsAorWCHYG/RZMDEBIQM2FxYWBwYEBzc2Njc2JicmBwMjEyE3IQTq/gdWo3bW8BES/t7zC5e5Dw6JhXynerzh/m0cBEkFEv44MgMC8c7U7gSYAp6PhpECAy79WQUSngAAAQB4/+YE/wXHACQAbwCwAEVYsA0vG7ENHT5ZsABFWLADLxuxAxE+WbANELARsAorWNgb3FmwDRCxFAGwCitYIdgb9FmwAxCwGNCwGC+yLxgBXbEZAbAKK1gh2Bv0WbADELEhAbAKK1gh2Bv0WbADELAksAorWNgb3FkwMQEGACcuAicmEhI3NhcWEhcjJiYnJgYDIQclBwYHBhYWFxY2NwSXKv6744fJcQYGTeaobXvN8Ae6B4qBrvY7AjAc/d0CDAMGQYJcmsczAdDi/vgGA3/uknABuAFFQSsDBP7/5KihAwX8/v2dBQo0Om6/ZAMFnawAAAL/zAAAB/IFsAAYACEAcbIaIiMREjmwGhCwCtAAsABFWLAALxuxAB0+WbAARViwCC8bsQgRPlmwAEVYsBAvG7EQET5ZsgIACBESObACL7AAELEKAbAKK1gh2Bv0WbAQELESAbAKK1gh2Bv0WbAb0LACELEhAbAKK1gh2Bv0WTAxAQMFFhYHBgQjIRMhAwcCAgcjNzc2NhM3EwEDBTI2NzYmJwVeYwFIzOMRE/7W5P3l4v4ReB8+8LtMEiaEqCsVjwLhZAFKjMISD393BbD9ywEG8MDN9wUS/dSZ/s7+6QScAQboAQR3Aqr9Lf3AAaWHfJQEAAACAEMAAAf+BbAAEgAbAIWyARwdERI5sAEQsBPQALAARViwEi8bsRIdPlmwAEVYsAIvG7ECHT5ZsABFWLAPLxuxDxE+WbAARViwDC8bsQwRPlmyAAIPERI5sAAvsgQMAhESObAEL7AAELEOAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbAMELEUAbAKK1gh2Bv0WTAxASETMwMFFhYHBgQjIRMhAyMTMwEDBTI2NzYmJwGPArduu2oBN9HxDxH+2Of96HT9SXS9/bwC7lsBSYvAEQ99fQM5Anf9ngEB3bvH7QKc/WQFsP0B/fUBk39uhwQAAAEAtAAABaIFsAAXAFmyAxgZERI5ALAARViwFi8bsRYdPlmwAEVYsAgvG7EIET5ZsABFWLASLxuxEhE+WbAWELEVAbAKK1gh2Bv0WbAB0LIECBYREjmwBC+xDwGwCitYIdgb9FkwMQEhAzYXFhYHAyMTNicmJicmBwMjEyE3IQT8/gBRnKnf0xdLvUwICAxva4zDf7zi/nMcBEgFEv5PKQIE69L+OQHIRTZRUwMDKv09BRKeAAEAQv6ZBW4FsAALAEkAsAkvsABFWLAALxuxAB0+WbAARViwBC8bsQQdPlmwAEVYsAYvG7EGET5ZsABFWLAKLxuxChE+WbECAbAKK1gh2Bv0WbAD0DAxATMDIRMzAyEDIxMhAT+84QK34rv9/k4+vT/+PwWw+u0FE/pQ/pkBZwAAAgA0AAAElgWwAAwAFQBesg8WFxESObAPELAD0ACwAEVYsAsvG7ELHT5ZsABFWLAJLxuxCRE+WbALELEAAbAKK1gh2Bv0WbICCwkREjmwAi+xDQGwCitYIdgb9FmwCRCxDgGwCitYIdgb9FkwMQEhAwUWFgcGBCMhEyEBAwUyNjc2JicEev1YSwE22OwREP7Y6f3l/QNl/NZgAUqNwBEOfHwFEv5MAQHiv8f0BbD9EP3dAZ6DdogEAAL/i/6aBXoFsAAOABUAV7ISFhcREjmwEhCwC9AAsAQvsABFWLALLxuxCx0+WbAARViwAi8bsQIRPlmwBBCwAdCwAhCxBwGwCitYIdgb9FmwD9CwDdCwCxCxEQGwCitYIdgb9FkwMQEjEyEDIxMXNhM3EyEDMwUlEyEDBwIE9rs+/Aw/u1lrz2UUlANP4rn72AKzxv4kbh1d/psBZf6aAgMCqQF+TgKg+u0DAwR1/gty/qkAAAH/rAAAB3UFsAAVAIcAsABFWLAJLxuxCR0+WbAARViwDS8bsQ0dPlmwAEVYsBEvG7ERHT5ZsABFWLACLxuxAhE+WbAARViwBi8bsQYRPlmwAEVYsBQvG7EUET5ZsAIQsBDQsBAvsi8QAV2yzxABXbEAAbAKK1gh2Bv0WbAE0LIIEAAREjmwEBCwC9CyEwAQERI5MDEBIwMjEyMBIwEBMwEzEzMDMwEzAQEjBJWcc7x0mf399gJo/sXRAQqlbrtukgHm6f3JAVLcApj9aAKY/WgDCgKm/YgCeP2IAnj9R/0JAAABACX/6gSYBccAKgBjALAARViwDS8bsQ0dPlmwAEVYsBkvG7EZET5ZsA0QsQYBsAorWCHYG/RZsA0QsArQsBkQsCrQsCovsSkBsAorWCHYG/RZshIpKhESObAZELAd0LAZELEgAbAKK1gh2Bv0WTAxATI2NzYmJyYGBwc2JBcWFgcGBRYWBwYGBCcmJjcXBhYXFjY3Njc2JicnNwJtlL0ODZWAfrsUuhIBLNLb8BAR/vVnXwgLl/75mdDzCboIlHxFhjZuEA6ClK0cAzSFeHOCAgKJbwG24AIF3bXUdC2sb4TFawIE6L0BdZMEAiQlTH91ggUBngABAEMAAAVuBbAACQBdALAARViwAC8bsQAdPlmwAEVYsAcvG7EHHT5ZsABFWLACLxuxAhE+WbAARViwBS8bsQURPlmyBAACERI5QAmKBJoEqgS6BARdsgkAAhESOUAJhQmVCaUJtQkEXTAxATMDIxMBIxMzAwSswv27wfyPw/28wQWw+lAEVvuqBbD7qgAAAf/KAAAFZQWwABAAT7IEERIREjkAsABFWLAALxuxAB0+WbAARViwAS8bsQERPlmwAEVYsAgvG7EIET5ZsAAQsQMBsAorWCHYG/RZsAgQsQoBsAorWCHYG/RZMDEBAyMTIQMCBgcjNzc2Njc3EwVl/Lzh/ginQeKrVxIkh6YrFo8FsPpQBRL89v7z9QadAQjk/30CqgAAAQCT/+YFQAWwABAAPbIDERIREjkAsABFWLABLxuxAR0+WbAARViwEC8bsRAdPlmwAEVYsAYvG7EGET5ZsQoBsAorWCHYG/RZMDEBATMBBgYnJic3FzI/AgEzAoYB2OL9PVG0ejwvFlljRSQ6/tvJAmQDTPtCk3kCAgmYBmM4ZgQqAAMAW//EBd8F7AAYACEAKgBssh4rLBESObAeELAL0LAeELAj0ACwFy+yFhcrERI5sBYvsADQsAAvsg0rFxESObANL7AK0LAKL7ANELAM0LAML7ANELEdAbAKK1gh2Bv0WbAWELEfAbAKK1gh2Bv0WbAdELAj0LAfELAq0DAxARcWFhIHBgIEJyMHIzciJgI3NhIkNzM3MwEGFhcXEyMGBCUDMzYkNzYmJwPYFJjqcRASuv7bpyAntiio7HMQELMBHKI2KrD9Iheboi6fHrz+/wKSnh26AQEZFqSnBR0BA5f+95yo/uuZAcTFlgEMoKMBEJwEzvzfuOUMAgNpA/b3/JcD9Mi/5AcAAAEAQf6hBW0FsAALADwAsAkvsABFWLAALxuxAB0+WbAARViwBC8bsQQdPlmwAEVYsAovG7EKET5ZsQIBsAorWCHYG/RZsAbQMDEBMwMhEzMDMwMjEyEBPrzhArfiu+GVaqo++/YFsPrtBRP68f4AAV8AAAEAzgAABUQFsAASAEmyDxMUERI5ALAARViwEi8bsRIdPlmwAEVYsAovG7EKHT5ZsABFWLABLxuxARE+WbIPAQoREjl8sA8vGLEFAbAKK1gh2Bv0WTAxAQMjEwYnJiY3EzMDBhcWFxY3EwVE/bxvscnc1hdMvEsICBjPoeB9BbD6UAJcNwIC69UBx/44RTWlAwM2ArcAAAEAQgAABzgFsAALAEkAsABFWLAALxuxAB0+WbAARViwAy8bsQMdPlmwAEVYsAcvG7EHHT5ZsABFWLAJLxuxCRE+WbEBAbAKK1gh2Bv0WbAF0LAG0DAxAQMhEzMDIRMzAyETAfvhAeXhu+IB4uG8/foH/QWw+u0FE/rtBRP6UAWwAAABAEL+oQc4BbAADwBVALALL7AARViwAC8bsQAdPlmwAEVYsAMvG7EDHT5ZsABFWLAHLxuxBx0+WbAARViwDS8bsQ0RPlmxAQGwCitYIdgb9FmwBdCwBtCwCdCwCtCwAtAwMQEDIRMzAyETMwMzAyMTIRMB++EB5eG74gHi4bzij2miPfor/QWw+u0FE/rtBRP65/4KAV8FsAAAAgCJAAAFgAWwAAwAFQBhsgEWFxESObABELAN0ACwAEVYsAAvG7EAHT5ZsABFWLAJLxuxCRE+WbICAAkREjmwAi+wABCxCwGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FmwCRCxDgGwCitYIdgb9FkwMRMhAwUWFgcGBCMhEyEBAwUyNjc2JiekAkpnATba6RER/tno/ebi/nIB42ABSo2/EQ58ewWw/a4BAeW9yfEFGP2o/d0BnoN2iAQAAwBFAAAGlgWwAAoAEwAXAG+yEhgZERI5sBIQsAbQsBIQsBXQALAARViwCS8bsQkdPlmwAEVYsBYvG7EWHT5ZsABFWLAHLxuxBxE+WbAARViwFC8bsRQRPlmyAAkHERI5sAAvsQsBsAorWCHYG/RZsAcQsQwBsAorWCHYG/RZMDEBBRYWBwYEIyETMwMDBTI2NzYmJwEjEzMBlgE22OwREP7Y6f3n/LyCYAFKjcARDnx8AsC7/bsDXgEB4r/H9AWw/RD93QGeg3aIBP1BBbAAAAIANgAABIEFsAAKABMAT7INFBUREjmwDRCwAdAAsABFWLAJLxuxCR0+WbAARViwBy8bsQcRPlmyAAkHERI5sAAvsQsBsAorWCHYG/RZsAcQsQwBsAorWCHYG/RZMDEBBRYWBwYEIyETMwMDBTI2NzYmJwGHATbY7BEQ/tjp/ef8vIJgAUqNwBEOfHwDXgEB4r/H9AWw/RD93QGeg3aIBAABAHT/6QT8BcoAIgBjALAARViwFS8bsRUdPlmwAEVYsB8vG7EfET5ZsADQsB8QsQMBsAorWCHYG/RZsB8QsAjQsAgvsi8IAV2yzwgBXbEHAbAKK1gh2Bv0WbAVELEOAbAKK1gh2Bv0WbAVELAR0DAxARYWFxYSNwU3ITY3NiYnJgYHBzYAFx4CFxYCAgcGJyYmJwEwB42OrOw3/c0cAikJAgOZkY/FMbsuAT3cjM53BwZL26BvfdX5CAHPp5wEBQEI/QGeODu50gQFpKsB5gEIBgN97JRy/k/+vEQwAwT+4QAAAgBJ/+cGzgXHABcAJwB6sgEoKRESObABELAi0ACwAEVYsA8vG7EPHT5ZsABFWLAJLxuxCR0+WbAARViwAC8bsQARPlmwAEVYsAYvG7EGET5ZsgoGCRESOXywCi8YsQUBsAorWCHYG/RZsA8QsRsBsAorWCHYG/RZsAAQsSMBsAorWCHYG/RZMDEFJiYCNyMDIxMzAzM2EiQXFhIXFgICBwYBNiYnJgYCBwcGFhcWEhM2BBKb3mkQzm67/bt0xyHCARmm1fYJBDODZbABDgaWlIbThxIDBpiRvfkpFBQDogE2tv2DBbD9ZM4BQqMDBP7h9Wn+vP7qXqQDl8XZBASY/tHoQcTeBAUBGwEAfgAAAv/oAAAE2AWxAA0AFgBjshEXGBESObARELAC0ACwAEVYsAsvG7ELHT5ZsABFWLAALxuxABE+WbAARViwAy8bsQMRPlmyEgALERI5sBIvsQEBsAorWCHYG/RZsgUBCxESObALELEUAbAKK1gh2Bv0WTAxIRMhASMBJiY3NiQzBQMBBhYXBRMnIgYDHmP+wf550wG8cmgLEgE07AHR/f22EIV9ARlk/prGAjf9yQJwOsh/0PAB+lAD8nydBAECPgGaAAACAEb/5wRVBhEAHAArAE+yGSwtERI5sBkQsB3QALAUL7AARViwCC8bsQgRPlmyAAgUERI5sAAvshsACBESObAIELElAbAKK1gh2Bv0WbAAELErAbAKK1gh2Bv0WTAxAR4CBwcGACcuAj8CEgA3NzY3Mw4CBAYHNhcmBg8CFhYXFjY3NiYnAo16sVYMAx7+19GGwlkQBAUnASfycZcZlQpLiv660kCpmn+2GwcDA3lsibsaDn55A/wCfuCHF/T+3QUCjfGPHi0BTwGmMRUhb2B3SUC4p66bA6uVL1WEnQIDzsiYtQQAAAMAMAAABA0EOgANABYAHgBaALAARViwAS8bsQEZPlmwAEVYsAAvG7EAET5ZshcAARESOXywFy8YsQ4BsAorWCHYG/RZsgcOFxESObAAELEPAbAKK1gh2Bv0WbABELEeAbAKK1gh2Bv0WTAxMxMFFhYHBgcWFgcGBgcDAwUyNjc2JiclFzI2NzYnJzC8AX7K2QoKylBaBAbmwfE5AR5wiwsKYWH+5t6DkgsV7PEEOgEBk4ybVhiBVJKnAgHb/roBW1FITwOVAVJOjgcBAAEALQAAA4MEOgAFACwAsABFWLAELxuxBBk+WbAARViwAi8bsQIRPlmwBBCxAAGwCitYIdgb9FkwMQEhAyMTIQNn/h2htrwCmgOh/F8EOgAAAv+N/sIEPgQ6AA4AFABUshIVFhESObASELAJ0ACwDC+wAEVYsAQvG7EEGT5ZsABFWLAKLxuxChE+WbEAAbAKK1gh2Bv0WbAP0LAG0LAMELAJ0LAEELERAbAKK1gh2Bv0WTAxNzY2NxMhAzMDIxMhAyMTBSUTIQMCLW+IIFQCpqKHUrQ3/SU3tVMBJAHjhP6/RESUZvyuAZb8Xf4rAT7+wgHVAwMC+P67/uUAAAH/pQAABg4EOgAVAJEAsABFWLAJLxuxCRk+WbAARViwDS8bsQ0ZPlmwAEVYsBEvG7ERGT5ZsABFWLACLxuxAhE+WbAARViwBi8bsQYRPlmwAEVYsBQvG7EUET5ZsAIQsBDQsBAvsr8QAV2y/xABXbIvEAFdss8QAXGxAAGwCitYIdgb9FmwBNCyCBAAERI5sBAQsAvQshMAEBESOTAxASMDIxMjASMBAzMTMxMzAzMBMwEBIwO8g1G1Unf+iPEB4vXOwYBOtU9zAV/n/kgBEtcB1v4qAdb+KgI6AgD+QAHA/kABwP3r/dsAAAEAIf/qA6oEUAAnAG0AsABFWLANLxuxDRk+WbAARViwGS8bsRkRPlmwDRCxBgGwCitYIdgb9FmwDRCwCtCwGRCwJ9CwJy+yLycBXbK/JwFdsSYBsAorWCHYG/RZshImJxESObAZELAc0LAZELEgAbAKK1gh2Bv0WTAxATI2NzYmIyYGBwc2NhcWFgcGBxYWBw4CJyYmNxcGFhcWNjc2Jyc3AgFmewgJY1hajhG0EPmsqcEKCsJLRQUGd8x3qdUGsQR0X2eTCxXNuRwCdVZPR1gCYE4Bla8CAqWLnFkhfVFollADArqYAVJrAgJkVKEBAZwAAQAvAAAENwQ6AAkARQCwAEVYsAAvG7EAGT5ZsABFWLAHLxuxBxk+WbAARViwAi8bsQIRPlmwAEVYsAUvG7EFET5ZsgQHAhESObIJBwIREjkwMQEzAyMTASMTMwMDfLu8tYj9nLu8tIcEOvvGAwn89wQ6/PYAAAEALwAABFcEOgAMAHgAsABFWLAELxuxBBk+WbAARViwCC8bsQgZPlmwAEVYsAIvG7ECET5ZsABFWLALLxuxCxE+WbACELAG0LAGL7KfBgFdsv8GAV2yzwYBcbKfBgFxtL8GzwYCXbIvBgFdsm8GAXKxAQGwCitYIdgb9FmyCgEGERI5MDEBIwMjEzMDMwEzAQEjAb6JUbW8tVBuAbDp/f4BW9YBzf4zBDr+NgHK/e/91wAB/8gAAAQ5BDoAEQBPsgQSExESOQCwAEVYsAAvG7EAGT5ZsABFWLABLxuxARE+WbAARViwCS8bsQkRPlmwABCxAwGwCitYIdgb9FmwCRCxDAGwCitYIdgb9FkwMQEDIxMhAwcGBgcjNzc2Njc3EwQ5vLai/pxRFjW+lU4SJ2F8IBJiBDr7xgOh/o5s8s4DogIGoa5nAdoAAAEAMAAABX4EOgAMAFkAsABFWLABLxuxARk+WbAARViwCy8bsQsZPlmwAEVYsAMvG7EDET5ZsABFWLAGLxuxBhE+WbAARViwCS8bsQkRPlmyAAsDERI5sgULAxESObIICwMREjkwMSUBMwMjEwEjAwMjEzMCogH25ry1h/4sftCOtLzl9wND+8YDBfz7Ayz81AQ6AAABAC8AAAQ2BDoACwCLALAARViwBi8bsQYZPlmwAEVYsAovG7EKGT5ZsABFWLAALxuxABE+WbAARViwBC8bsQQRPlmwABCwCdCwCS+ybwkBXbS/Cc8JAl2yPwkBcbTPCd8JAnGyDwkBcrSfCa8JAnGy/wkBXbIPCQFxsp8JAV2yLwkBXbRvCX8JAnKxAgGwCitYIdgb9FkwMSEjEyEDIxMzAyETMwN6tVH+H1G1vLVRAeBStQHO/jIEOv4rAdUAAQAvAAAENwQ6AAcAOQCwAEVYsAYvG7EGGT5ZsABFWLAALxuxABE+WbAARViwBC8bsQQRPlmwBhCxAgGwCitYIdgb9FkwMSEjEyEDIxMhA3u1ov4eorW8A0wDofxfBDoAAQBgAAAD6AQ6AAcAMgCwAEVYsAYvG7EGGT5ZsABFWLACLxuxAhE+WbAGELEAAbAKK1gh2Bv0WbAE0LAF0DAxASEDIxMhNyEDzv6gorSh/qcaA24DpPxcA6SWAAADAEz+YAU9BgAAHwAsADoAgLInOzwREjmwJxCwEtCwJxCwNdAAsAMvsABFWLAALxuxABk+WbAARViwBy8bsQcZPlmwAEVYsBMvG7ETEz5ZsABFWLAXLxuxFxE+WbAQ0LAHELEkAbAKK1gh2Bv0WbAXELEyAbAKK1gh2Bv0WbAp0LAAELE3AbAKK1gh2Bv0WTAxARYXEzMDNhcWFxYPAgYCJyYnAyMTBiciJicmNzcSEgE2JyYnJgcDFhcWNjcFBhUXFhcWNxMmIyYGBwInUkFXtVlNUdVBHAIIAiLxuFdMULVRSUeQnwMBBgwt6wMICwMQpjM9jiw7f6ka/IwGAhOdLzqONCp9oSAEUAIeAdD+KiMBA+tndHgQ+f7kAwIh/lQBqR0B1bk7N1IBAAET/b1kR/MHAhT87xACAse2DTU+ML8HAhIDExICzc8AAAEAL/6/BDcEOgALADwAsAgvsABFWLAALxuxABk+WbAARViwBC8bsQQZPlmwAEVYsAovG7EKET5ZsQIBsAorWCHYG/RZsAbQMDETMwMhEzMDMwMjEyHrtaEB4aK1on5kojj86gQ6/F0Do/xd/igBQQABAHsAAAQABDsAEgBJsg4TFBESOQCwAEVYsBEvG7ERGT5ZsABFWLAJLxuxCRk+WbAARViwAS8bsQERPlmyDgEJERI5fLAOLxixBAGwCitYIdgb9FkwMSEjEwYnJiY3EzMDBhcWFxY3EzMDRLZLe3ayuxUytTMGBRCebolitgGJIQIC2rkBPP7DNC2UBgMfAhsAAAEALwAABggEOgALAEkAsABFWLAALxuxABk+WbAARViwAy8bsQMZPlmwAEVYsAcvG7EHGT5ZsABFWLAJLxuxCRE+WbEBAbAKK1gh2Bv0WbAF0LAG0DAxAQMhEzMDIRMzAyETAaChAX+htaIBfqK2vPrjvAQ6/F0Do/xdA6P7xgQ6AAABACT+vwX9BDoADwBMALAML7AARViwAC8bsQAZPlmwAEVYsAMvG7EDGT5ZsABFWLAHLxuxBxk+WbAARViwDS8bsQ0RPlmxAQGwCitYIdgb9FmwBdCwCdAwMQEDIRMzAyETMwMzAyMTIRMBlqIBf6K0oQF9orailGOjOPsDvAQ6/F0Do/xdA6P8Xf4oAUEEOgACAFYAAAR7BDoADAAVAGGyARYXERI5sAEQsA3QALAARViwAC8bsQAZPlmwAEVYsAkvG7EJET5ZsgIACRESObACL7AAELELAbAKK1gh2Bv0WbACELENAbAKK1gh2Bv0WbAJELEOAbAKK1gh2Bv0WTAxEyEDFxYWBwYGIyETIQEDBTY2NzYmJ3EB7EH+o74LC/O7/jWh/skBrEcBAGuHDQtWWAQ6/osBBLqYpckDov6M/mkBAnFeV2sEAAADADAAAAWpBDoACgATABcAXACwAEVYsAovG7EKGT5ZsABFWLAWLxuxFhk+WbAARViwCC8bsQgRPlmwAEVYsBUvG7EVET5ZsgAIChESObAAL7ELAbAKK1gh2Bv0WbAIELEMAbAKK1gh2Bv0WTAxARcWFgcGBiMhEzMDAwU2Njc2JicBIxMzAV/tscILC/O9/je8tVtHAQBrhw0LV1cCkrW8tQLFAgG7maXJBDr99P5pAQJxXldrBP3TBDoAAAIAMAAAA78EOgAKABMAT7IHFBUREjmwBxCwDdAAsABFWLAJLxuxCRk+WbAARViwBy8bsQcRPlmyAAkHERI5sAAvsQsBsAorWCHYG/RZsAcQsQwBsAorWCHYG/RZMDEBFxYWBwYGIyETMwMDBTY2NzYmJwFf7bHCCwvzvf43vLVbRwEAa4cNC1dXAsUCAbuZpckEOv30/mkBAnFeV2sEAAABADT/5wPEBFAAIQBrALAARViwCC8bsQgZPlmwAEVYsBIvG7ESET5ZsAgQsQABsAorWCHYG/RZsAgQsATQsBIQsBXQsBIQsRkBsAorWCHYG/RZsBIQsB7QsB4vsi8eAV2yvx4BXbIgHgFxsR0BsAorWCHYG/RZMDEBJgYHBz4CFx4CFxYHBwYAJyYmNxcGFhcWNjchNyE2JgI7Y5gUqwqDyWxspGMJBQYDHf7V0KXKCKsGa2B0sDH+cBsBhAhzA7cCeF4BZKtfAQNju3dBQRn7/sYFBNyoAWWJBAWxrpiRsAAAAgAw/+cGBwRUABUAJgCAALAARViwFS8bsRUZPlmwAEVYsAQvG7EEGT5ZsABFWLASLxuxEhE+WbAARViwDC8bsQwRPlmyABIVERI5fLAALxiygAABXbRAAFAAAl20UABgAAJxsREBsAorWCHYG/RZsAwQsRsBsAorWCHYG/RZsAQQsSMBsAorWCHYG/RZMDEBMzYAFx4CBwcCACcuAjcFAyMTMwEGFxQWFxY2NzYnJiYnJgYHAVD0QgEjwIi/Vw8BIv7M2H7BXQv+/1O0vLQBTwUBeG6LyxsHBQl2ZozIGgJv5QEABQSP+pgJ/vz+ygUChOCGAf4pBDr90CotjaEEBeTJP0V4jQQF47gAAAL/vwAAA/8EOwANABYAY7IUFxgREjmwFBCwDdAAsABFWLAALxuxABk+WbAARViwAS8bsQERPlmwAEVYsAUvG7EFET5ZshIAARESObASL7EDAbAKK1gh2Bv0WbIHAwAREjmwABCxEwGwCitYIdgb9FkwMQEDIxMhASMBJiY3NjYzAQYWFwUTJwYGA/+8tkn++f6/zwFfVVAGC/q4/vgKVk4BIj/3aY4EOvvGAaX+WwHFKpxdm7j+rE1YBAEBZwECZgAAAQAf/kUD4wYAACMAgwCwIS+wAEVYsAQvG7EEGT5ZsABFWLALLxuxCxM+WbAARViwGi8bsRoRPlmyvyEBXbIvIQFdsg8hAV2yIhohERI5sCIvsQEBsAorWCHYG/RZsgIaBBESObALELEQAbAKK1gh2Bv0WbAEELEXAbAKK1gh2Bv0WbABELAc0LAiELAf0DAxASEDNhcWFgcDBgYnIic3FjMyNxM2JyYnJgcDIxMjNzM3MwchArv+6zaOupqRE4EWwJUtSx8xMYsjgQYEEZWmeIa10p8anx+1HwEWBLn+/ZsEBM+1/OKougQUkg/TAxUxKowDBLL8/AS5mK+vAAABAE7/6AP9BFMAHgBoALAARViwDy8bsQ8ZPlmwAEVYsAgvG7EIET5ZsQABsAorWCHYG/RZsAgQsATQsA8QsBLQsA8QsRYBsAorWCHYG/RZsAgQsBrQsBovsr8aAV2y/xoBXbIvGgFdsRsBsAorWCHYG/RZMDElFjY3Nw4CJyYCNzcSABcWFgcjNCYnJgYHIQchBhYB8WGdG6wPhc5rytEXAx4BLdepygKqcV96sjEBjhv+fQ92ggJzYQFlqGADBQEo7RsBAgExBQTdqGuDBAWnrZiWtQAAAv/DAAAGLwQ6ABgAIQB9sgoiIxESObAKELAa0ACwAEVYsAAvG7EAGT5ZsABFWLAILxuxCBE+WbAARViwEC8bsRARPlmyAgAIERI5sAIvsAAQsQoBsAorWCHYG/RZsBAQsRMBsAorWCHYG/RZsAgQsRsBsAorWCHYG/RZsAIQsSEBsAorWCHYG/RZMDEBAxcWFgcGBiMhEyEDBwYGByM3NzY2NzcTAQMFNjY3NiYnBBZI/qW+CQnxvv42ov67URgzwJpIEyZhfCASYgJHQAEAZowLC1hbBDr+ZAEFrZGbvwOh/o5259EBogIGoa5nAdr9zP6PAQJtWUpaBQAAAgAvAAAGTwQ6ABIAGwB+sgEcHRESObABELAT0ACwAEVYsAIvG7ECGT5ZsABFWLARLxuxERk+WbAARViwCy8bsQsRPlmwAEVYsA8vG7EPET5ZsgERCxESObABL7AE0LABELENAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbALELEUAbAKK1gh2Bv0WTAxASETMwMXFhYHBgYjIRMhAyMTMwEDBTY2NzYmJwFZAeFHtUj+o8AJCfG+/jdb/h9btby1AjRAAQBmig0LV1wCoQGZ/mMBBK6Qm78CCv32BDr9zP6PAQJsWkpaBQAAAQAfAAAD4wYAABoAe7IDGxwREjkAsBcvsABFWLAELxuxBBk+WbAARViwCC8bsQgRPlmwAEVYsBEvG7ERET5Zsr8XAV2yLxcBXbIPFwFdshoRFxESObAaL7EAAbAKK1gh2Bv0WbICBBEREjmwBBCxDgGwCitYIdgb9FmwABCwE9CwGhCwFdAwMQEhAzYXFhYHAyMTNicmJyYHAyMTIzczNzMHIQLR/tExjrmYkxN2tXcGBRGUpniGtdOLG4oetSABLQS+/vibBALNuf07AsgxKowDBLL8/AS+l6urAAEAL/6cBDcEOgALAEYAsAgvsABFWLAALxuxABk+WbAARViwAy8bsQMZPlmwAEVYsAUvG7EFET5ZsABFWLAJLxuxCRE+WbEBAbAKK1gh2Bv0WTAxAQMhEzMDIQMjEyETAaChAeGitbz+uD+0Pv6xvAQ6/F0Do/vG/pwBZAQ6AAEAb//kBuMFsAAhAGGyBiIjERI5ALAARViwAC8bsQAdPlmwAEVYsBkvG7EZHT5ZsABFWLAOLxuxDh0+WbAARViwBC8bsQQRPlmwAEVYsAkvG7EJET5ZsRQBsAorWCHYG/RZsgcUBBESObAd0DAxAQMGBicmJicGJyYmNxMzAwYXFhYXFjY3EzMDBhYXFjY3EwbjtBv/uWqcIIvdq7QTtLyzBQQHUkVtnBG1wrMMXl5kjhW2BbD73cTjBAJfULcGBue2BCP73C0tTloDBZB6BCT73HiKAwOGdwQvAAABAE//5gXfBDoAIQBMALAARViwDi8bsQ4ZPlmwAEVYsBgvG7EYGT5ZsABFWLAhLxuxIRk+WbAARViwCS8bsQkRPlmwBNCwCRCxFAGwCitYIdgb9FmwHdAwMQEDBgYnJiYnBicmJjcTMwMGFxYWFxY2NxMzAwYWFxY2NxMF33oZ3axaiB97vpiiEXq0egQDA0Q8W4MSe7Z6Ck9PVXgSegQ6/SiwzAQCTUWYBATOpQLZ/SYmJkBQAwR4awLa/SZmdwIDdW0C2gACAC7//APDBhYAEgAbAHSyFRwdERI5sBUQsAnQALAARViwDy8bsQ8fPlmwAEVYsAkvG7EJET5ZshIPCRESObASL7EAAbAKK1gh2Bv0WbIDDwkREjmwAy+wABCwC9CwEhCwDdCwCRCxFQGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FkwMQEhAxcWFgcGBichEyM3MxMzAyEBAxc2Njc2JicC1v7JOv2lvAwO+7X+Nby6G7g5tjkBOP5aTf9ojgwNV1YEOv6wAQbEnrDVBAQ6lwFF/rv9gf5FAgJ7aVt3BAABAEn/5wazBcoAKwCKshgsLRESOQCwAEVYsCsvG7ErHT5ZsABFWLAGLxuxBh0+WbAARViwKC8bsSgRPlmwAEVYsCAvG7EgET5ZsgArKBESObAAL7AGELAK0LAGELENAbAKK1gh2Bv0WbAAELAQ0LAAELEnAbAKK1gh2Bv0WbAS0LAgELEZAbAKK1gh2Bv0WbAgELAc0DAxATM2Njc2FxYSFyMmJicmBgchByUGBwYWFhcWNjc3BgAnJgInJjc3BwMjEzMBlrkhfFqw+c/vBroHioGr8z0CFBv99w4CBj6BXZnINLov/rrjyvcHAw4Gxne8/bwDQJD5V6oFBP794qihAwX0+ZcBTj1uwGQDBZ2sAeP++wYEARjlUFAcAf1XBbAAAAEALP/oBY0EUwAkAMeyAyUmERI5ALAARViwBC8bsQQZPlmwAEVYsCQvG7EkGT5ZsABFWLAhLxuxIRE+WbAARViwHC8bsRwRPlmyDxwEERI5sA8vtL8Pzw8CXbQ/D08PAnG0zw/fDwJxtA8PHw8CcrSfD68PAnGy/w8BXbIPDwFxtC8PPw8CXbRvD38PAnKwANCyCA8EERI5sAQQsQsBsAorWCHYG/RZsA8QsRABsAorWCHYG/RZsBwQsRQBsAorWCHYG/RZshccBBESObAQELAf0DAxATM2JBcWFgcjNCYnJgYHIQchBhYXFjY3Nw4CJyYCNwcDIxMzAUyxQQEZw6fMAqpwX32xMAGuG/5dD3Z2ZpkarA+HzGu/2xPAULa8tgJn8PwFBN2oaoQEA6mql5a1AwJ1XwFlqV8DBAETzwH+MAQ6AAL/ugAABFMFsAALAA4AVwCwAEVYsAgvG7EIHT5ZsABFWLACLxuxAhE+WbAARViwBi8bsQYRPlmwAEVYsAovG7EKET5Zsg0IAhESObANL7EAAbAKK1gh2Bv0WbAE0LIOCAIREjkwMQEjAyMTIwMjATMTIwEhAwNVp0y4TZbeyQL6p/i4/hoBhlsBtv5KAbb+SgWw+lACWgJHAAAC/6IAAAOaBDoACwAQAFcAsABFWLAILxuxCBk+WbAARViwAi8bsQIRPlmwAEVYsAYvG7EGET5ZsABFWLAKLxuxChE+WbINAggREjmwDS+xAQGwCitYIdgb9FmwBNCyDwgCERI5MDEBIwMjEyMDIwEzEyMBIQMnBwKmdDS1NHKowQJonPSx/nYBJUgFKAEp/tcBKf7XBDr7xgHBAUZMWwAAAgBaAAAGVQWwABMAFgB9ALAARViwAi8bsQIdPlmwAEVYsBIvG7ESHT5ZsABFWLAELxuxBBE+WbAARViwCC8bsQgRPlmwAEVYsAwvG7EMET5ZsABFWLAQLxuxEBE+WbIVAgQREjmwFS+wANCwFRCxBgGwCitYIdgb9FmwCtCwBhCwDtCyFgIEERI5MDEBIQEzEyMDIwMjEyMDIxMhAyMTMwEhAwF/AXYBwaf4uUanTLhNleDI5/7CTb39vQGjAYVaAlkDV/pQAbb+SgG2/koBuP5IBbD8qgJHAAACAE4AAAVLBDoAEwAYAIAAsABFWLACLxuxAhk+WbAARViwEi8bsRIZPlmwAEVYsAQvG7EEET5ZsABFWLAILxuxCBE+WbAARViwDC8bsQwRPlmwAEVYsBAvG7EQET5ZsgAQEhESObAAL7AB0LEOAbAKK1gh2Bv0WbAL0LAH0LABELAU0LAV0LIXEgQREjkwMQEhATMTIwMjAyMTIwMjEyMDIxMzASEDJwcBUQECAWmb9LBDdTS1NXOowarGNLW8tgFRASVIBicBwQJ5+8YBKf7XASn+1wEo/tgEOv2HAUZMWwAAAgAmAAAGLwWwAB4AIgB4sg4jJBESObAOELAf0ACwAEVYsB0vG7EdHT5ZsABFWLAWLxuxFhE+WbAARViwBi8bsQYRPlmwAEVYsA4vG7EOET5ZshsOHRESObAbL7AA0LAbELESAbAKK1gh2Bv0WbAM0LAbELAf0LAdELEiAbAKK1gh2Bv0WTAxATMyFgcDIxM2JyYnJwcDIxMnJyYGBwMjEzYkMzMBBQEzAQUEQg3Y1Rg8vT0IBxXJdx5tvXIGgJmoGD28PR4BEPgk/vwEhv08DwFo/dUDJ+bQ/o8BckM0oAMCJf2XAngTAwKIkf6JAXHb3wKFAv18AegBAAIAKQAABQsEOgAcACAAWgCwAEVYsAUvG7EFGT5ZsABFWLAcLxuxHBE+WbIEHAUREjmwBC+wB9CwHBCwFdCwDNCwBBCxGAGwCitYIdgb9FmwEdCwBBCwHdCwBRCxIAGwCitYIdgb9FkwMTM3NjY3AyEBFhYHByM3NicmJycHAyMTJycmBgcHARcTISkaHu3WvAOj/o2rpxYZthkHAgq1NRFPtVQDOoObGBwB9Qnr/p+q0tcJAd7+HgvkxaSlPTOoBwIW/lABvAkBAoKPtwJcAQFHAAIASAAACFoFsAAkACgAm7IgKSoREjmwIBCwKNAAsABFWLAHLxuxBx0+WbAARViwCy8bsQsdPlmwAEVYsAAvG7EAET5ZsABFWLAFLxuxBRE+WbAARViwEy8bsRMRPlmwAEVYsBwvG7EcET5ZsgkFBxESObAJL7EEAbAKK1gh2Bv0WbAJELAN0LAEELAZ0LAEELAf0LAJELAl0LALELEoAbAKK1gh2Bv0WTAxIRM2NwUDIxMzAyEBIQEzFhcWBwMjEzYnJicnBwMjEycnJgYHAwEzAQUCR0MhX/5tc7z9vHADRf70BJD+ChPWaGgXPL09CAcUsJEfbbxyB4CVqhg+AokPAWj91QGMqGMD/WwFsP18AoT9dwFyc9D+jwFyQzSUDQQn/ZkCdxQCAoOV/okDKgHoAQAAAgAuAAAG7QQ6ACIAJgCOALAARViwCy8bsQsZPlmwAEVYsAgvG7EIGT5ZsABFWLAFLxuxBRE+WbAARViwAC8bsQARPlmwAEVYsBsvG7EbET5ZsABFWLASLxuxEhE+WbIJBQgREjmwCS+xBAGwCitYIdgb9FmwCRCwDdCwBBCwF9CwBBCwHtCwCRCwI9CwCxCxJgGwCitYIdgb9FkwMSE3NjcFAyMTMwMhAyEBFhYHByM3NicmJycHAyMTJyciBgcHARcTIQIKHB1f/pBPtby2VALBxAOk/oyupBYZthkHAgq1NRFPtVQDR4GUFxkB9Qnr/p+qs2oD/jwEOv4iAd7+HQ3kwqSlPTOoBwIW/lABvAgCiZmkAlwBAUcAAv/O/kgEIQeIAC0ANgCJALAzL7AARViwCS8bsQkdPlmwAEVYsB4vG7EeEz5ZsABFWLAYLxuxGBE+WbAJELEIAbAKK1gh2Bv0WbAYELAt0LAtL7EsAbAKK1gh2Bv0WbIQLC0REjmwGBCxJAGwCitYIdgb9FmyDzMBXbAzELA20LA2L7QPNh82Al2yLjM2ERI5sDDQsDAvMDEBMjY3NiYnJyU3BR4CBwYFFhYHDgIjJwYGBwYXByYmNzY2MzMyNjc2JicnNwE3NxUBIwM1FwGzk78QDHBzD/7LGwEeesNhCBH+7mpkCQqL7I00UVkGEI5RbWsDBb2pIIzADw6GkZUbAZyxoP7jb82WAzaDemF5CQEBmAEDY6px1XAsrnGCxWsBAz82b0R6OaFbfomafXmFBQGYA6aoAw3+7wEQDgIAAv/K/kgDmQYyACgAMQCnALAuL7AARViwCC8bsQgZPlmwAEVYsBsvG7EbEz5ZsABFWLAVLxuxFRE+WbAIELEHAbAKK1gh2Bv0WbAVELAo0LAoL7IvKAFdsv8oAV2yjygBcbIvKAFxsr8oAV2yzygBcbJfKAFysScBsAorWCHYG/RZsg8nKBESObAVELEhAbAKK1gh2Bv0WbAuELAw0LAwL7QPMB8wAl2yKS4wERI5sCvQsCsvMDEBMjY3NiYnJTcFFhYHBgYHFhYHBgQjIwYHBhcHJiY3NjYzMjY3NicnNwE3NxcBIwM1FwGIh5kLCWdt/s8cARi0zwgFZ3ZWUwQI/vvUIp8REI5SZ3EEBbq4jJkLFfikGwE/sZ8B/uJvzZYCaFZTP00DAZkBBaSCSXYzI3ZLmLMFc2tJeTahXn2KX1GWBgGYAx6oAw3+7wEQDgIAAwBp/+kE/AXIABIAGwAkAGmyCCUmERI5sAgQsBTQsAgQsB3QALAARViwCS8bsQkdPlmwAEVYsAAvG7EAET5ZsAkQsRMBsAorWCHYG/RZshYACRESOXywFi8YsAAQsRwBsAorWCHYG/RZsBYQsSABsAorWCHYG/RZMDEFJgInJhI3NiQXFhIXFgcHBgIEEyYCAyE2NzYmARY2NyEGFxQWAkLT9woFN0dgASi31PYJAwoMH8L+5zGx9zsC/ggCA5j+nq71Ov0CBwGYFAQBH/RuAVCKu8IEBP7j91RTVNn+tqUFNwX++f78ODy+0PtzBvz+Njmx0AAAAwBC/+cEIARTABEAGAAfAFAAsABFWLAELxuxBBk+WbAARViwDS8bsQ0RPlmxEgGwCitYIdgb9FmyHA0EERI5fLAcLxixFgGwCitYIdgb9FmwBBCxGQGwCitYIdgb9FkwMRM2EjYXHgIHBwYCBicuAjcBFjY3IQYWASYGByE2JlQUm++PiL9YEAIUnO+OiL9YEAGXeLg4/bAMfAEHebc1Ak0HfgIgngEGjwQEj/yWF53+/o0EBI74lf54BamwkMEDMgOqopC2AAABAK0AAAVLBcYADwBAALAARViwDy8bsQ8dPlmwAEVYsAYvG7EGHT5ZsABFWLANLxuxDRE+WbIBDQ8REjmwBhCxCA6wCitYIdgb9FkwMQEXNwE2NjMXByMmBwEjAzMCCQg8AX1Jm2ozFQpoRf3Cp+3EAW53hgMiqn0CqwOU+3gFsAAAAQCEAAAEPARQABAAR7ICERIREjkAsABFWLAFLxuxBRk+WbAARViwEC8bsRAZPlmwAEVYsA0vG7ENET5ZsgENEBESObAFELEKAbAKK1gh2Bv0WTAxARc3EzYzMhcHJiMiBwEjAzMBmgQs8GasPDQkFhNKOv5YibaxATJXaQIe7huSCXH8xQQ6AAIAav9zBPoGNQAVACkASgCwAEVYsAsvG7ELHT5ZsABFWLADLxuxAxE+WbAA0LALELAO0LALELEbAbAKK1gh2Bv0WbAY0LAAELElAbAKK1gh2Bv0WbAi0DAxBQcjNyYCJyY3EgA3NxcHFhIXFAcCABMCJwcnNwYCDwICFzcXBzYSNzYCmRu1G7DGAwEaMgE76hm1Gq+6Ah40/tHID7YUtRaazCQRCRTmFrUXl8QiHwyBgSABIOFumgEhAWEfdwF6J/7g3Hqi/ur+rwO/AQM9YgFmIv751XJl/ptGZwFmJwEH3skAAAIARP+IBC0EtgATACcATQCwAEVYsAAvG7EAGT5ZsABFWLANLxuxDRE+WbAAELAD0LANELAK0LEUAbAKK1gh2Bv0WbAAELEdAbAKK1gh2Bv0WbAa0LAUELAl0DAxATcXBxYSBwcGAgcHJzcmAjc3NhITNhI1NCYnByc3BgYHBwYVFBc3FwI2F7UYoaIWAhz/xRe1F56eFQMe/M+JmkpFFbUWcY0XAgeKFrUERXEBcSb+2s4X2/7cIGwBbiYBI8oW4wEh/GkvARbEZJAeYwFkK8qRFTM50EFnAQAAAwB0/+YGmgdWADEARABMAJ0AsABFWLAWLxuxFh0+WbAARViwDS8bsQ0RPlmwFhCwANCwDRCwCNCyCw0WERI5sBYQsRcBsAorWCHYG/RZsA0QsR8BsAorWCHYG/RZsiMWDRESObAo0LAXELAx0LAWELA80LA8L7A00LA0L7EyArAKK1gh2Bv0WbA0ELA30LA3L7FAArAKK1gh2Bv0WbA8ELBI0LBIL7BM0LBMLzAxARYWBwMOAicmJicGJyYmNzcTNjc2NwcGAwMGFxYWFxY2NxMzAwYWFxY2NxM2JyYmJxMHJyYkIyIGBwcnNzY2Fx4DATY3NxcHBgcFP6uwF1wTfMF6bKMjiNujsQoDXyN5eb4S2jFZBQICUEpsmRVHvEYOZmdhhhhdBgECTUmsCj5G/vBMNkUJAn0DCYVtMFe2W/4ATA8Smg8TmwWvCffF/cWJ0m4EAl1OsQQF4bkmAlTJcXAEngf+zf3VLTJZawQFjH4Brf5TdY0EA5WQAkMvMlVoBgHFgQIGejs1EgEkbHICARhPGP6SUUFgAWVvWQAAAwBS/+UFpgX2ACsAPwBHAJYAsABFWLATLxuxExk+WbAARViwDC8bsQwRPlmwExCwANCwDBCwB9CwExCxFAGwCitYIdgb9FmwDBCxGwGwCitYIdgb9FmyHwwTERI5sCTQsBQQsCvQsBMQsDbQsDYvsC3QsC0vsSwCsAorWCHYG/RZsC0QsDLQsDIvsTsCsAorWCHYG/RZsC0QsETQsEQvsEfQsEcvMDEBFhYHAwYGJyYmJwYnJiY3EzY2NwcGAwMHBhYXFjY3NzMHBhYXFjY3Ezc0JxMHLgMjJgYHByc3NjYXHgMBNjc3FwcGBwR0mpgSKhvZpGKOIX28mJ4TLB3XrhG5JykDA0JBW4MRJrQkC1lXUnATLQR87QpYUrFYLTVGCQJ9AguFbS9XvlX9/EkOFZsOFJgERAnhsv7fxN0EAk9EmgYD47UBL7/OBJgH/vP+5C1jawIFeWvs7GR6AgOIgAEzRKENAcqBAhdNGgE6NRIBJG1xAgEYUhX+iFA1bQFlclcAAAIAb//iBuMHAwAiACoAdwCwAEVYsBkvG7EZHT5ZsABFWLAPLxuxDx0+WbAARViwIi8bsSIdPlmwAEVYsAovG7EKET5ZsATQsggKDxESObAKELEVAbAKK1gh2Bv0WbAe0LAZELAp0LApL7Aq0LAqL7EkBrAKK1gh2Bv0WbAqELAn0LAnLzAxAQMGBgcjJiYnBicmJjcTMwMGFxYWFxY2NxMzAwYWFxY2NxMlNyEHIQcjNwbjtBv2sw5tmiCN26u0E7S8swUEB1JFa5oWtMKzDF5eZI4VtvyHEwMVEv6/FqQWBbD73cDiAQJgT7kIBue2BCP73C0tTloDBYqABCT73HiKAwOGdwQv6GtrfX0AAAIAT//mBd8FsAAgACgAYgCwAEVYsBcvG7EXGT5ZsABFWLAILxuxCBE+WbAE0LAXELAN0LAIELETAbAKK1gh2Bv0WbAc0LAXELAg0LAXELAn0LAnL7Ao0LAoL7EiBrAKK1gh2Bv0WbAoELAl0LAlLzAxAQMGBicmJwYnJiY3EzMDBhcWFhcWNjcTMwMGFhcWNjcTATchByEHIzcF33sX3qu+RHu+m58RerR6BAMDRDxbgxJ7tnoKT09VeBJ6/NsUAxQQ/r4XpRcEOv0or80EBY+YBATUnwLZ/SYmJkBQAwR4awLa/SZmdwIDdW0C2gELa2uAgAABAGb+hATyBcgAHABEALABL7AARViwCy8bsQsdPlmwAEVYsAIvG7ECET5ZsAsQsA/QsAsQsRIBsAorWCHYG/RZsAIQsRsBsAorWCHYG/RZMDEBIxMmJgI3NzYSJBcWEgcjNiYnJgYGBwMHFBYXFwJZu0WCskkUJh69AQma3fcOvAuQjmi2hBYqBI18e/6EAW4YsAENlPS/ASeTAwT+9dmcqwQDbuKJ/vJOpcQEAQABAE3+ggPkBFIAGQBEALABL7AARViwCy8bsQsZPlmwAEVYsAIvG7ECET5ZsAsQsA/QsAsQsRIBsAorWCHYG/RZsAIQsRgDsAorWCHYG/RZMDEBIxMuAjc3PgIXFhYHJzYmJyYCBwYWFxcB6bVGaYo6DgQTl+WIpckIqgZrX5nLAgNqZm7+ggFyGZTigiua/ooEBN6oAWWJBAb+2+SIowYBAAABAEAAAAS4BT4AEwATALAOL7AARViwBC8bsQQRPlkwMQEXBycDIwEnNxcBJzcXEzMBFwcnAiz8UvzqsAEl+1L+AQ39VPzyrP7U/1X6Abescqn+vgGVq3KqAXWrdKoBTP5hq3GpAAAB/OgEpv/QBfwABwASALAAL7EDBrAKK1gh2Bv0WTAxAQcnNyE3Fwf9oReiKgILEqEmBSN9AelsAdgAAf0LBRb/6gYUABMALQCwEi+wDdCwDS+xBQKwCitYIdgb9FmwEhCwCtCwEhCxEwKwCitYIdgb9FkwMQE+AxcWFgcHJzc2JyYGBgcHN/08QHhudz1lbwUDegIIYCxU+kNKDAWVASktKAEBb2YnARRkBAESZQUBfwAAAf4XBRX+5AZXAAUADACwAS+wBdCwBS8wMQE3MwcXB/4XFK8bJU0F5XKXcjkAAAH+OwUX/1EGVwAFAAwAsAMvsADQsAAvMDEBJzc3Mwf+gkdQFbEYBRdIeX+EAAAI+jj+wgGUBbEACwAXACMALwA7AEcAUwBfAH8AsD8vsEsvsFcvsDMvsABFWLADLxuxAx0+WbEJC7AKK1gh2Bv0WbA/ELAP0LA/ELFFC7AKK1gh2Bv0WbAV0LBLELAb0LBLELFRC7AKK1gh2Bv0WbAh0LBXELAn0LBXELFdC7AKK1gh2Bv0WbAt0LAzELE5C7AKK1gh2Bv0WTAxATY2FxYWFSc2IyYHATY2FzIWFSc2IyYHAzY2MxYWFSc2IyIHATY2FxYWFSc2IyIHATY2FxYWFSc2IyYHATY2FxYWFSc2IyYHATY2FxYWFSc2IyIHAzY2FxYWFSc2IyIH/ZMKcVtYaWwFUVMdAZ8JcVpYamwFUlIbEQhxW1hoawVRUx3+ewhzWFhoawVRVRr9MQpxW1hoawVRUh7+QgpzWlhpbAVRVBv+kAlwW1hoawVSVBsmCHNZWGlsBVJTGwTzWWUBAWZYAWYCZv7qWGYBaVYBZgJm/ghVZwFlWAFmZP34V2cCAWVYAWZk/uNZZQECZVgBZgJmBRlZZQECZVgBZgJm/ghYZQEBZVgBZmT9+FdnAgFlWAFmZAAACPpP/mMBUwXGAAQACQAOABMAGAAdACIAJwA5ALAhL7ASL7ALL7AbL7AmL7AARViwBy8bsQcdPlmwAEVYsBYvG7EWGz5ZsABFWLACLxuxAhM+WTAxBRcDIxMTJxMzAwE3BQclBQclNwUBNyUXBQEHBSclEycDNxMBFxMHA/3FDaxlf6ENq2R+AawLATcR/sD7jgr+yREBQAPNAwFMPf7N/GgD/rU+ATRpEV1DlAKzEF5FkjoS/q8BYASiEAFR/qH+EQp/XEU8Cn9bRAGuEZlNv/yNEplOvwLlAgFPPv7Q/OYC/rI/AS8A//8AQ/6aBW4HGgAmANwAAAAnAKEBXwFCAQcAEARR/70AEwCwAEVYsAgvG7EIHT5ZsA3cMDEA//8AL/6aBEQFxAAmAPAAAAAnAKEAmf/sAQcAEANa/70AEwCwAEVYsAgvG7EIGT5ZsA3cMDEAAAIALv/8A8MGcQASABsAd7IQHB0REjmwEBCwFdAAsABFWLANLxuxDR0+WbAARViwES8bsREdPlmwAEVYsAkvG7EJET5ZsBEQsQABsAorWCHYG/RZsgINCRESObACL7AAELAL0LAM0LACELETAbAKK1gh2Bv0WbAJELEUAbAKK1gh2Bv0WTAxASEDFxYWBwYGJyETIzczNzMHIQEDFzY2NzYmJwL9/slh/aW8DA77tf414robuSK2IgE4/jNN/2iODA1XVgUY/dIBBsSesNUEBRiYwcH8ov5FAgJ7aVt3BAAAAgA6AAAE7gWwAA8AHABPsg8dHhESObAPELAY0ACwAEVYsAQvG7EEHT5ZsABFWLABLxuxARE+WbIXBAEREjmwFy+xAAGwCitYIdgb9FmwBBCxFQGwCitYIdgb9FkwMQEDIxMFHgIHBgcXBycGIwE2NzYmJyUDITI3JzcBWmO9/QH9ic1kDhKDYnNqgKgBODUNEoZ+/qhjATxeWlV0Ajr9xgWwAQRtxH+6e5BemDYBG01XfpYEAf3FH4BdAAAC/9f+YAP9BFIAFQAmAHCyIicoERI5sCIQsAfQALAARViwEC8bsRAZPlmwAEVYsAwvG7EMGT5ZsABFWLAKLxuxChM+WbAARViwBy8bsQcRPlmyCRAHERI5sg4QBxESObAQELEaAbAKK1gh2Bv0WbAHELEfAbAKK1gh2Bv0WTAxAQYHFwcnBicmJwMjATcHNhcWFhcWByc3NiYnJgcDFhcyNyc3FzY3A/QgjVd0U2lluGRhtQEEpBSGu5uwBQEHtwYDb2udcls7mkRUTnRFSBcCF/Gdg157OAICe/32BdoBeZAEBODCQDwBVIuiBASZ/fmNBCl4XmhvjQAAAQA1AAAEzQcAAAkANrIDCgsREjkAsAgvsABFWLAGLxuxBh0+WbAARViwBC8bsQQRPlmwBhCxAgGwCitYIdgb9FkwMQEjFSEDIxMhEzMEhAP9UOG7/AKyPK4FGAb67gWwAVAAAAEAJAAAA7QFdgAHAC8AsAYvsABFWLAELxuxBBk+WbAARViwAi8bsQIRPlmwBBCxAAGwCitYIdgb9FkwMQEhAyMTIRMzA2P+GKG2vAHoOLQDofxfBDoBPAABAEP+3gSlBbAAFgBesgMXGBESOQCwCi+wAEVYsBUvG7EVHT5ZsABFWLATLxuxExE+WbAVELEAAbAKK1gh2Bv0WbIDFRMREjmwAy+wChCxCwOwCitYIdgb9FmwAxCxEQGwCitYIdgb9FkwMQEhAxcWFhIHAgAHNzY2NzYmJycDIxMhBIn9WFGkpupqERz+5OsOk7UXFqevs3S9/QNlBRL+LwEEjv8Ap/79/t4EkgPOx8PSAQH9YQWwAAABACT+4QN6BDoAFgBesgwXGBESOQCwCi+wAEVYsBUvG7EVGT5ZsABFWLATLxuxExE+WbAVELEAAbAKK1gh2Bv0WbICFRMREjmwAi+wChCxCwGwCitYIdgb9FmwAhCxEgGwCitYIdgb9FkwMQEhAxceAgcGAgcnNjY3NiYnJwMjEyEDX/4cMWOHzWQNEfayJHmeEA+Kf3pUtrwCmgOh/uQBBHjThKn+/yaWIJ1/iaIEAf4dBDoA////rP6ZB3UFsAAmANoAAAAHAlEGMAAA////pf6ZBg4EOgAmAO4AAAAHAlEE9QAA//8ARP6XBWoFsAAmAiwAAAAHAlEEA//+//8AL/6ZBFcEOgAmAPEAAAAHAlEDRgAAAAEANgAABUgFsAAUAGMAsABFWLAALxuxAB0+WbAARViwDC8bsQwdPlmwAEVYsAIvG7ECET5ZsABFWLAKLxuxChE+WbAP0LAPL7IvDwFdss8PAV2xCAGwCitYIdgb9FmyAQgPERI5sAXQsA8QsBLQMDEJAiMDIwcjNyMDIxMzAzMTMwMzAQVI/fwBKODiUiuRLGRyvPy9cGQtkS5FAakFsP1E/QwCjvT0/XIFsP1/AQD/AAKBAAEALQAABJMEOgAUAHwAsABFWLANLxuxDRk+WbAARViwFC8bsRQZPlmwAEVYsAovG7EKET5ZsABFWLADLxuxAxE+WbAKELAO0LAOL7KfDgFdsv8OAV2ynw4BcbS/Ds8OAl2yLw4BXbJvDgFysQkBsAorWCHYG/RZsgEJDhESObAF0LAOELAS0DAxCQIjAycHIzcjAyMTMwMzNzMHNwEEk/5XAQXZuzInkSNhULa8tlFhJpErJwFLBDr99P3SAc0Bw8L+MwQ6/jbV1wEBywAAAQC7AAAGzAWwAA4AbQCwAEVYsAYvG7EGHT5ZsABFWLAKLxuxCh0+WbAARViwAi8bsQIRPlmwAEVYsA0vG7ENET5ZsggGAhESObAIL7IvCAFdss8IAV2xAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIwMjEyE3IQMzATMBASMDhbFxveL+MxsCiW+JAlz3/WIBvdgCjv1yBRiY/X4Cgv02/RoAAQB0AAAFjAQ6AA4AggCwAEVYsAYvG7EGGT5ZsABFWLAKLxuxChk+WbAARViwAi8bsQIRPlmwAEVYsA0vG7ENET5ZsAIQsAnQsAkvsp8JAV2y/wkBXbKfCQFxtL8JzwkCXbIvCQFdsm8JAXKxAAGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAAJERI5MDEBIwMjEyE3IQMzATMBASMC8opQtqL+cBwCRFBuAbDq/fwBXNYBzf4zA6GZ/jYByv3v/dcA//8AO/6ZBXcFsAAmACwAAAAHAlEEZQAA//8AL/6ZBDYEOgAmAPQAAAAHAlEDZgAAAAEAOgAAB+AFsAANAGAAsABFWLACLxuxAh0+WbAARViwDC8bsQwdPlmwAEVYsAYvG7EGET5ZsABFWLAKLxuxChE+WbAB0LABL7IvAQFdsAIQsQQBsAorWCHYG/RZsAEQsQgBsAorWCHYG/RZMDEBIRMhByEDIxMhAyMTMwGHAsZtAyYb/Zbiu3X9OXW9/b0DPgJymProAqH9XwWwAAEAJAAABZQEOgANAJ0AsABFWLACLxuxAhk+WbAARViwDC8bsQwZPlmwAEVYsAYvG7EGET5ZsABFWLAKLxuxChE+WbAGELAB0LABL7JvAQFdtL8BzwECXbI/AQFxtM8B3wECcbIPAQFytJ8BrwECcbL/AQFdsg8BAXGynwEBXbIvAQFdtG8BfwECcrACELEEAbAKK1gh2Bv0WbABELEIAbAKK1gh2Bv0WTAxASETIQchAyMTIQMjEzMBRAHhUQIeG/6YorRQ/h9Qtry2AmUB1Zn8XwHO/jIEOgAAAQBC/t4HbwWwABcAa7IRGBkREjkAsAcvsABFWLAWLxuxFh0+WbAARViwFC8bsRQRPlmwAEVYsBEvG7ERET5ZsgEWBxESObABL7AHELEIAbAKK1gh2Bv0WbABELEOAbAKK1gh2Bv0WbAWELESAbAKK1gh2Bv0WTAxATMWAAcCAAc3NjY3NiYnIwMjEyEDIxMhBQFq/QEHGhz+5OsOk7UXFqKtgXS84f1J4bz9BC8DQAb+zP/+/f7eBJIDzsfA0gT9YgUS+u4FsAABACT+4QZBBDoAGABaALAIL7AARViwGC8bsRgZPlmwAEVYsBUvG7EVET5ZsBLQsgASGBESObAAL7AIELEJAbAKK1gh2Bv0WbAAELEQAbAKK1gh2Bv0WbAYELETAbAKK1gh2Bv0WTAxARceAgcGBgcnNjY3NiYnJwMjEyEDIxMhA+CWi9dpDhH1siSAlg8QkYmuVLSh/h6htrwDTAKFAQN31ISs/yaWIqJ4hKcEAf4dA6H8XwQ6AAIAcf/jBakFxwAqADkAhgCwAEVYsB8vG7EfHT5ZsABFWLAELxuxBBE+WbAA0LICBB8REjmwAi+wHxCwDtCxDwGwCitYIdgb9FmwBBCxFwGwCitYIdgb9FmwAhCxLQ6wCitYIdgb9FmyGQItERI5sigtAhESObAAELEqAbAKK1gh2Bv0WbAfELE0AbAKK1gh2Bv0WTAxBSYnBicuAicmNzcSADcHBgYPAhQWFxY3JhM3NhIXHgIXFgcHAgcWFwEWFzYTNzYnJicmBgcHBgUVzaObn43ZggsHDxkxASHUEoeyIRwDqJU6TL8pIif+umSSTgIBByQ1+F50/fIKmdsxIA4EC49okB4iCh0ERUICA4LwmlxgpAEaAU0FpQX83cJWueECAhDnATbd+gE1BQNtyXc/Oej+rsUUAgGx1neaATzOWVDjBwTJwdxCAAIAX//qBFoEVQAnADIAhgCwAEVYsB4vG7EeGT5ZsABFWLAELxuxBBE+WbAA0LICBB4REjmwAi+wHhCwDdCxDgGwCitYIdgb9FmwBBCxFgGwCitYIdgb9FmwAhCxKgGwCitYIdgb9FmyGAIqERI5siUqAhESObAAELEnAbAKK1gh2Bv0WbAeELEwAbAKK1gh2Bv0WTAxBSYnBicuAicmEjY2NwcGBgcHBhYWFxY3Jjc3NjYXFhYXFgcGBxYXAQYXNjY3NSYnJgMEG6WDhIJurmQHBzNwp2wSYHgQAwIuZkkjPo4dCxrBkXWGAwIWI5xDYf5uFoNMSgsFV4QhDQQ1QgIBcNKAdAEHuGsDngXOxjhgn1YBAQy28FnN8wUEvqBPhdudDwIBqNJ4TuG/KaoEBP7t////1P6ZBSsFsAAmADwAAAAHAlEDugAA////xP6ZA/QEOgAmAFwAAAAHAlECzwAAAAEArP6hBmMFsAATAF0AsBEvsABFWLAHLxuxBx0+WbAARViwDC8bsQwdPlmwAEVYsBMvG7ETET5ZsAcQsQgBsAorWCHYG/RZsADQsAcQsAXQsAPQsALQsBMQsQoBsAorWCHYG/RZsA7QMDEBITchNTMVIQchAyETMwMzAyMTIQIY/pQaAWS8AX4b/ovHArjhveGUa6g9+/YFGJcBAZf7hQUT+vH+AAFfAAEAV/6/BMgEOgAPAE0AsA0vsABFWLADLxuxAxk+WbAARViwDy8bsQ8RPlmwAxCxBAGwCitYIdgb9FmwANCwDxCxBgGwCitYIdgb9FmwAxCwCNCwBhCwCtAwMQEhNyEHIwMhEzMDMwMjEyEBYf72GgKxG/GIAeKitqJ9ZKI4/OoDo5eX/PQDo/xd/igBQf//AM7+mQVEBbAAJgDhAAAABwJRBCUAAP//AHv+mQQABDsAJgD5AAAABwJRAyUAAAABAMQAAAU5BbAAGQBSsgcaGxESOQCwAEVYsAAvG7EAHT5ZsABFWLAMLxuxDB0+WbAARViwDy8bsQ8RPlmyBgAPERI5fLAGLxiwCdCwBhCxFQGwCitYIdgb9FmwEtAwMQEDBhcWFhcTMwM2NxMzAyMTBgcHIzcmJjcTAeJLCQgMbms7kjhijny9/bxudX0uki7U0hdLBbD+N0Y1UFIGATb+0Q0hArf6UAJcIwzv6gfi2AHHAAABAJgAAAQaBDsAGABLALAARViwFy8bsRcZPlmwAEVYsAwvG7EMGT5ZsABFWLABLxuxARE+WbIRAQwREjl8sBEvGLEHAbAKK1gh2Bv0WbAE0LARELAU0DAxISMTBgcHIzcmJjcTMwMGFxYXEzMDNjcTMwNetko0ZRySHJaZEjK1NAUBA3s2kzQ9WmG2AYkPDYiHEtStATz+wysoix0BGP7pCBMCGwAAAQAcAAAEkQWwABQAR7IQFRYREjkAsABFWLABLxuxAR0+WbAARViwAC8bsQARPlmwAEVYsAkvG7EJET5ZsgUBABESObAFL7EQAbAKK1gh2Bv0WTAxMxMzAzYXFhYHAyMTNicmJicmBgcDHP28cLfE3tMXTLtLCAcMb2tkwGF8BbD9ozcDBOnU/joBx0U2UVMDAh8X/UsAAgCK/+sFxQXIACMALgBaALAARViwES8bsREdPlmwAEVYsAAvG7EAET5ZsiUAERESObAlL7EXAbAKK1gh2Bv0WbAF0LAlELAN0LAAELEeAbAKK1gh2Bv0WbARELEqAbAKK1gh2Bv0WTAxBSYmAjc3JiY3FwYXFhc3EgAXFhIXFgcHIQcGFxYWFxY2NxcGASU2NzYmJyYGBwcDc6v6bRsThYALkwQDCmsUTgE82MnkBQENEPyeDwwLEKiLXqpVIoD94AKrDgIDioSN0zwPFQGlAR+rZxrGmAIoJHYrTAEKAScFBP727VpSZF5aU4aaAwIuJZBgA1cCTjyhsQQEytA6AAIAB//qBEcEUwAfACkAYQCwAEVYsA8vG7EPGT5ZsABFWLAALxuxABE+WbIkAA8REjmwJC+0vyTPJAJdsRUBsAorWCHYG/RZsAXQsCQQsAzQsAAQsRkBsAorWCHYG/RZsA8QsSABsAorWCHYG/RZMDEFLgI3NyYmNxcHBhc2JBcWFhcWBwchBhYXFjY3FwYGEyYGBwU3NicmJgJQhctXFwRgXQePBAM/RgEYqaa9BgIIDP09E4R/XJE9aEjcBW2tNAIOBAgHC2kUApDwiRMeq4YBN14t0O0FBNi2QEFTmMoDAlFBWGhpA80FnZ8CEjU0VGcAAQA1/tMFRAWwABYAX7IVFxgREjkAsA4vsABFWLACLxuxAh0+WbAARViwBi8bsQYdPlmwAEVYsAAvG7EAET5ZsgQAAhESObAEL7AI0LAOELEPAbAKK1gh2Bv0WbAEELEWAbAKK1gh2Bv0WTAxMyMTMwMzATMBFhIHAgAHNzY2NzYmJyXyvf29bXgCX+v9kNPYGBr+3uoLkrUXFqOt/vUFsP2PAnH9hBj+z+r+/f7bBpoCzcTA0wEBAAEALf76BFYEOgAWAGUAsAYvsABFWLASLxuxEhk+WbAARViwFS8bsRUZPlmwAEVYsA8vG7EPET5ZsBPQsBMvtL8TzxMCXbIvEwFdsv8TAV2wANCwBhCxBwGwCitYIdgb9FmwExCxDgGwCitYIdgb9FkwMQEWFgcGBgcnNjY3NiYnJwMjEzMDMwEzAmyjqhAR87Ekf5cND4yTsFC2vLZRUAHO6gJgIOiipfIllh+ab3+QBQH+MwQ6/jYBygD////K/poFZQWwACYA3QAAAAcAEARG/73////I/poERgQ6ACYA8gAAAAcAEANc/70AAQBD/kcFbQWwABQAaACwCC+wAEVYsAAvG7EAHT5ZsABFWLADLxuxAx0+WbAARViwEi8bsRIRPlmyARIAERI5fLABLxiyHwEBcbRgAXABAl2ykAEBXbAIELENAbAKK1gh2Bv0WbABELERAbAKK1gh2Bv0WTAxAQMhEzMBBgYnIic3FjMyNxMhAyMTAfxyArVzu/75GcKVLkkeOCiMI3j9S2+9/QWw/W4Ckvn8rbgCFJkR0gLK/X8FsAAAAQAk/kcEKwQ6ABQAgACwAEVYsAAvG7EAGT5ZsABFWLADLxuxAxk+WbAARViwCC8bsQgTPlmwAEVYsBIvG7ESET5ZsAHQsAEvsm8BAV20vwHPAQJdsv8BAV2yDwEBcbKfAQFdsi8BAV2yPwEBcbAIELENAbAKK1gh2Bv0WbABELERAbAKK1gh2Bv0WTAxAQMhEzMDBgYnIic3FjMyNxMhAyMTAZZSAeFStMcWvpYsSx81K4wjWv4fULa8BDr+KwHV+22nuQIUkhDTAhz+MgQ6//8AO/6aBXcFsAAmACwAAAAHABAEWP+9//8AL/6aBEMEOgAmAPQAAAAHABADWf+9//8AO/6aBrcFsAAmADEAAAAHABAFjf+9//8AMP6aBYwEOgAmAPMAAAAHABAEov+9AAIAUf/pBSoFxgAaACQAYbIaJSYREjmwGhCwHNAAsABFWLAALxuxAB0+WbAARViwCS8bsQkRPlmyDwAJERI5sA8vsAAQsRUBsAorWCHYG/RZsAkQsRsBsAorWCHYG/RZsA8QsR8DsAorWCHYG/RZMDEBFgQSBwcGAgQnJiYCNzcFNzYnJiYnJgcnNjYDFjY3BQcGFxYWAwC4AQFxGgwd0P7dpa/sYxoUA9ADFQkPvZimyiNE1Cil+0f86AcPChCkBcMCs/6+xlXO/rCqAwSnAS2/fAMMY2CcuQMDVpEvNvrDBfXyASNZUIGRAAEAPP/nBHsFsAAbAGiyGRwdERI5ALAARViwAi8bsQIdPlmwAEVYsAwvG7EMET5ZsAIQsQABsAorWCHYG/RZsgQAAhESObIFAgwREjmwBS+wDBCwENCwDBCxEwGwCitYIdgb9FmwBRCxGQOwCitYIdgb9FkwMQEhNyEHARYWBw4CJyYmNzMGFhcWNjc2JicnNwN8/ZEcA1IX/iO0xA4LkPKNvt0Mugh7boO/EBGCi5QcBRKehv4kEOa6g8hsAwTsunSTBASWf4ySBAGgAAH//P5xBDUEOgAaAGWyBRscERI5ALALL7AARViwAi8bsQIZPlmxAAGwCitYIdgb9FmyBAACERI5shoLAhESObAaL7AF0LALELAPsAorWNgb3FmwCxCxEgGwCitYIdgb9FmwGhCxGQGwCitYIdgb9FkwMQEhNyEHARYWBwYEJyYmNzMGFhcWNjc2JicnNwMs/aIbA0wV/ie0vw4R/tXavd0MtAh8cIbDDxCIipQbA6GZf/4WEuK1xPMEBOy4c5gEBJt+jZAEAaD////4/kUE5wWwACYAsUIAACYCJrlAAAcCVADpAAD////p/kUD0AQ6ACYA7E0AACYCJpuOAQcCVADaAAAACACyAAkBXTAx////1P5FBSsFsAAmADwAAAAHAlQDiwAA////xP5FA/QEOgAmAFwAAAAHAlQCoAAAAAIAMQAABOEFsAAKABMAUrIEFBUREjmwBBCwDdAAsABFWLABLxuxAR0+WbAARViwAy8bsQMRPlmyAAEDERI5sAAvsAMQsQsBsAorWCHYG/RZsAAQsQwBsAorWCHYG/RZMDEBEzMDJSYmNzYkMxMTJSIGBwYWFwPAY779/fvJ5RERAS7f4mP+to2/ERB6ewNzAj36UAEG68PN8v0pAjgBmoR3nQYAAgAy//4GMwWwABcAIABcshghIhESObAYELAH0ACwAEVYsAgvG7EIHT5ZsABFWLAXLxuxFxE+WbIGFwgREjmwBi+wFxCxGAGwCitYIdgb9FmwCtCyEAYXERI5sAYQsRoBsAorWCHYG/RZMDElJiY3NiQzBRMzAxc2NicmJxcWFxYCBiclEyUiBgcGFhcB4s3jERMBK+IBYGS94kuNngUCE68PCA9z5ZP+/mL+tozAERB9eAEI7b/N8gECPfrrAQLn0VJQAVFQq/7rlgKdAjgBmoR5nQQAAAIATP/mBkEGGAAjADMAg7IGNDUREjmwBhCwJNAAsABFWLAHLxuxBx8+WbAARViwBC8bsQQZPlmwAEVYsB4vG7EeET5ZsABFWLAaLxuxGhE+WbIGBB4REjmxDgGwCitYIdgb9FmyFAQeERI5shwEHhESObAEELEmAbAKK1gh2Bv0WbAeELEvAbAKK1gh2Bv0WTAxEzYSNhcWFxMzAwYXFhYXFhITNic3FhcWAgQnJicGJyYmJyY3ASYnJgYHBwYXFhYXFjY3N1UVjMuArl1ttc8EBAVCOaPGCAIQqA0DB4j+/abuLYvMl7EHAwYC4j+QiLYeAwcDBWthV4MzBgICsgEWhwMEgAJO+0AkJT9KAwkBQQEiY2QBZGPX/qC/AwWxuwQC1LU9OwFCgAQF39MUPD9tfwMDU0I/AAEArf/oBaoFsAAtAF8AsABFWLAOLxuxDh0+WbAARViwKi8bsSoRPlmyBS4OERI5sAUvsQQBsAorWCHYG/RZsA4QsQ0BsAorWCHYG/RZshUEBRESObAqELEdAbAKK1gh2Bv0WbIjKg4REjkwMQE2JicnNxcyNjc2JiclNwUWFxYHBgUWFhcWBwYWFxY2Ejc2JzMWFxYCBicmJjcCgQljY8kcgqG4EA17gP6ZHAE5+3JfDxX+9UZSBgQMBzs/XZBXBgMQrwwEBoLwn4+XCAF1docFAp4BhYRyfAQBngEBf2qo53AfelE0eUdcBAWEARfAY2RkY9b+n78CAqibAAEAaP/jBLgEOgAnAFwAsABFWLAeLxuxHhk+WbAARViwDi8bsQ4RPlmxAgGwCitYIdgb9FmyBw4eERI5shYoHhESObAWL7EVAbAKK1gh2Bv0WbAeELEdAbAKK1gh2Bv0WbIlFRYREjkwMSUGFxY2NzYnFxYXFgIGJyYmNzc2Jyc3FzI2NzYnJTcXFhYHBgcHFgcCkQhSapYYGiipDwkSceWQfX0GCAux2BmrdYwKFdT+9xT4t8cKCJk+mA/TUwQFopCenQFOTpz+2aEDAnxyTYwKAZYBWVGfCwGWAQWljolPHTiyAAEAr/7WA5UFrwAnAFkAsBsvsABFWLAKLxuxCh0+WbAARViwHi8bsR4RPlmyASgKERI5sAEvsQABsAorWCHYG/RZsAoQsQkBsAorWCHYG/RZshEAARESObAeELAXsAorWNgb3FkwMRM3FzI2NzYmJyU3FxYWBwYGBxYXFg8CNwcGByc2NyMmJyY3NzYmJ68bk6e8Dw17gP7oG+7d5RELiYSQEAQHFwaqFyS5aFcvYCEFBAgWDWdqAnmXAYuBeIAEAZcBAdi8cac7QKszNYgYAY3dlExndytHJT+cc44EAAEAoP7GA3YEOgAjAFkAsBovsABFWLAKLxuxChk+WbAARViwHS8bsR0RPlmyASQKERI5sAEvsQABsAorWCHYG/RZsAoQsQkBsAorWCHYG/RZshEAARESObAdELAWsAorWNgb3FkwMRM3FzI2NzYmJyU3BRYWBwYGBxYXFgcHNwcGByc2NyMmNzc2J6AZxHaOCwphZ/7gGwEItccKBWtydxAFBgybFiK8Z14sXCkGEQ+xAbiXAVhTUVYDAZYBBaWOUHotLX4pKEsBjtuVTHN7K1SPnwkAAf/f/+UHOwWwACQAZbIjJSYREjkAsABFWLAOLxuxDh0+WbAARViwIS8bsSERPlmwAEVYsAYvG7EGET5ZsA4QsQABsAorWCHYG/RZsAYQsQgBsAorWCHYG/RZsCEQsRUBsAorWCHYG/RZshsOBhESOTAxASEDBwICByM3NzY2NzcTIQMGFxYWFxYSEzYnNxYXFgIEJyYmNwSA/it3Jz/tt0sRM36dKxmQA0e8BAQFQTefwwgCEa8NAweJ/v2koJ0RBRL93bz+2/72BJwDDN3wjgKq+6kjJD5JAwkBPQEhY2QBZGPZ/qDABAbCqQAB/9r/5QYFBDoAJABlsgAlJhESOQCwAEVYsA4vG7EOGT5ZsABFWLAhLxuxIRE+WbAARViwBi8bsQYRPlmwDhCxAAGwCitYIdgb9FmwBhCxCQGwCitYIdgb9FmwIRCxFQGwCitYIdgb9FmyGiEOERI5MDEBIQMHBgYHIzc3NjY3NxMhAwYXFhYXFhITNiczFhcWAgYnJiY3A1H+x1IWNb6VThMmZH4gDWICnHsDAwVDN4mhBQERqA0FCHnkkJudEQOh/o5s8s4DogIGqcNKAdr9HiMlQE0BBgEmAQReXl5exP6zsAQEwKwAAQA7/+YHPAWwAB4AfQCwAEVYsBsvG7EbHT5ZsABFWLAeLxuxHh0+WbAARViwGC8bsRgRPlmwAEVYsBIvG7ESET5ZsQYBsAorWCHYG/RZsgsSHhESObAYELAc0LAcL7L/HAFdsl8cAV2yzxwBXbIvHAFdsh8cAXGyTxwBcbEXAbAKK1gh2Bv0WTAxAQMGFxYWFxYSEzYnNxYXFgIEJyYmNxMhAyMTMwMhEwVYugMDBUI1n8QGAhGwDQQHif7+ppycDS/9WG+9/b1zAqhyBbD7pyMkPkkBCAE/AR5jZAFkY9v+o8ADBMSpASf9fwWw/W4CkgABACP/5wYXBDoAHgCNALAARViwBS8bsQUZPlmwAEVYsAgvG7EIGT5ZsABFWLAbLxuxGxE+WbAARViwAi8bsQIRPlmwBtCwBi+ybwYBXbL/BgFdsg8GAXG0nwavBgJxsj8GAXG0vwbPBgJdsi8GAV20zwbfBgJxsQEBsAorWCHYG/RZsBsQsQ8BsAorWCHYG/RZshQbCBESOTAxASEDIxMzAyETMwMGFxYWFxYSEzYnMxYXFgIGJyYmNwMS/hZQtby1UgHpUrV7BAQFQTiJpAMBEacOBQh54pOZnQ8Bzf4zBDr+KgHW/R4jJUFKAwYBKQEBXl5eXcj+t68CAsaoAAEAav/oBIIFyAAiAEIAsABFWLAJLxuxCR0+WbAARViwAC8bsQARPlmwCRCxDgGwCitYIdgb9FmwABCxFwGwCitYIdgb9FmyHQAJERI5MDEFJiYnJjc3EgAXFhcHJicmAgcHBhcWFhcWNjY3NCczFxYCBAJIxv4TBwonLQFq/MmLRX6XsP8jJwcCA56GaKdXAQuzCgeG/v4VBfzOTE/5AR4BXAICVotFAgL++tz2NDadxAIDaMKyWlmz1f7xlAABAEz/5wOKBFIAHwA/ALAARViwEy8bsRMZPlmwAEVYsAsvG7ELET5ZsQABsAorWCHYG/RZsgULExESObATELEYAbAKK1gh2Bv0WTAxJRY2NjcnMxcWBgYnLgI3NzYAFxYXByYjJgYHBhcWFgH2SmouAgKpBgNlwnmHv1gQAx0BKtKoajlhfoXAGgwGCnuCAj9ydHV0n7xkAwSN+JIa+wE4AgJEjj0C2rFnRnSMAAABAJr/5QUgBbAAGgBFALAARViwAy8bsQMdPlmwAEVYsBcvG7EXET5ZsAMQsQQBsAorWCHYG/RZsADQsBcQsQkBsAorWCHYG/RZsg8XAxESOTAxASE3IQchAwYWFxY2Ejc2JzcWFxYCBwYnJiY3Amf+MxwEXxz+K6EIQ0Nro1kDARCuDgMFX16U3ZigDQUSnp78R2JtAgSQARmwY2QBZGO1/slopQQCw6wAAAEAff/oBIgEOgAaAE+yBRscERI5ALAARViwAi8bsQIZPlmwAEVYsBcvG7EXET5ZsAIQsQABsAorWCHYG/RZsATQsAXQsBcQsQsBsAorWCHYG/RZshACFxESOTAxASE3IQchAwYXFhYXFhInJicXFhcWAgYnJiY3Adj+pRoDcRr+oGEEBAVCOYWjBgMSpw4JEHHjk5qdDQOklpb9tCQlP0sDBgEC01FPAU9Pov7YoAECxKoAAAEAav/pBSMFxwAsAGmyGi0uERI5ALAARViwGy8bsRsdPlmwAEVYsA4vG7EOET5ZsQYBsAorWCHYG/RZsgobDhESObAOELAr0LArL7EsAbAKK1gh2Bv0WbIULCsREjmyHxsOERI5sBsQsSMBsAorWCHYG/RZMDEBIgYHBhYXFjY3NwYGBCcuAjc2JSYmNzY2JBceAgcnNiYnJgcGBwYWFxcHAs290A4PsJ2V4RW8Dp/++ZuZ8XQKFQEyX2QFCJQBD6eG2HYFuwWchZxrdxAOmZu0HAKYj391iwMCk3sBhMFmAwJsunr/YzCgXYDBaQIDZbZ3AW2EBQJASH9xegEBnv///8r+RQVlBbAAJgDdAAAABwJUBCQAAP///8j+RQRJBDoAJgDyAAAABwJUAzoAAAACAPIEcgNMBdYABQAQACAAsA0vsg8NAV2wBtCwBi+wAdCwAS+wDRCwBdCwBS8wMQETMwcBBwMzBwYXFhcHJiY3AeqjvwH+9ljipA0KCAgmSEhICQSVAUEW/sUCAVNPPjY3MzcujFYA//8AGQIfAg8CtgAGABEAAP//ABkCHwIPArYABgARAAD//wCnAosElQMiAEYBr9oATM1AAP//AJoCiwXWAyIARgGviABmZkAAAAL/Xv5rAx4AAAADAAcAQgCwAEVYsAYvG7EGET5ZsALQsAIvsrACAV1ACQACEAIgAjACBF2xAQGwCitYIdgb9FmwBhCxBQGwCitYIdgb9FkwMQEhNyE3ITchAtj8hhsDeRL8hhsDef5rl2eXAAEArgQxAgUGEwAHABYAsABFWLAALxuxAB8+WbAF0LAFLzAxARcGBwcjNzYBoWRwGxi0EiQGE0qMhoZw3gAAAQCJBBYB4AYAAAcAFgCwAEVYsAQvG7EEHz5ZsADQsAAvMDETJzY3NzMHBu1kdhgXshMkBBZKk4qDeeEAAf+Y/uUA6gC1AAcAGACwCC+xBAWwCitYIdgb9FmwANCwAC8wMQMnNjc3MwcGBWNzGBK1DyP+5UuQi2pg3AABANQEFwG6BgAACwAMALALL7AG0LAGLzAxAQcGFxYXByYnJjc3AaEWCwoKJmpnEAUGFQYAhU1GR0VFap0xMYD//wC2BDEDPgYTACYBhAgAAAcBhAE5AAD//wCVBBYDFQYAACYBhQwAAAcBhQE1AAAAAv+U/tICFQD2AAcADwAkALAQL7EEBbAKK1gh2Bv0WbAM0LAML7AI0LAIL7AA0LAALzAxAyc2NzczBwYXJzY3NzMHBgRodBsetBknZmd0Gh61GSf+0kuXl6uc8ZdLmpSrnPAAAAEAdwAABFEFsAALAEwAsABFWLAILxuxCB0+WbAARViwBi8bsQYZPlmwAEVYsAovG7EKGT5ZsABFWLACLxuxAhE+WbAKELEAAbAKK1gh2Bv0WbAE0LAF0DAxASEDIxMhNyETMwMhBDj+eZK1kf58GAGDO7Y7AYkDofxfA6GZAXb+igAB//b+YARgBbAAEwB+ALAARViwDC8bsQwdPlmwAEVYsAovG7EKGT5ZsABFWLAOLxuxDhk+WbAARViwAi8bsQITPlmwAEVYsAAvG7EAET5ZsABFWLAELxuxBBE+WbEGAbAKK1gh2Bv0WbAOELEIAbAKK1gh2Bv0WbAJ0LAQ0LAR0LAGELAS0LAT0DAxISEDIxMhNyETITchEzMDIQchAyEDt/52QbZC/n4YAYF6/n4YAYE7tjsBihj+dnkBiv5gAaCXAwqZAXb+ipn89gABAKACFQIsA8wADQAXsgoODxESOQCwAy+wCrAKK1jYG9xZMDETNjYzMhYVBwYGIyImNaEGdVZRaQIGcVpSZwL9XnFtWCpabmpV//8AOf/yAsEA0wAmABIEAAAHABIBrAAA//8AOf/yBFMA0wAmABIEAAAnABIBrAAAAAcAEgM+AAAAAQBSAf8BJwLXAA0AGbIDDg8REjkAsAIvsQoFsAorWCHYG/RZMDETNDY3Nh4CFQYGBwYmUzovFygcEAE7Ly87AmgvPQIBDxwnFy88AgI7AAAGAJf/5wb+BccAFwAmACoAOABGAFQAiQCwKS+wJy+wAEVYsBgvG7EYHT5ZsABFWLARLxuxERE+WbAA0LAAL7AF0LAFL7ARELAN0LANL7AYELAf0LAfL7ARELEuBLAKK1gh2Bv0WbAAELE1BLAKK1gh2Bv0WbAuELA80LA1ELBD0LAfELFKBLAKK1gh2Bv0WbAYELFRBLAKK1gh2Bv0WTAxARYWFzYXFhcWBwcGBicmJwYnJiY3NzY2ARYWBwcGBicmJjc3PgIDJwEXAQYWFxY2Nzc2JicmBgcFBhYXFjY3NzYmJyYGBwEGFhcWNjc3NiYnJgYHBDtCcB5mh3hIRggGDbeClT5khXiRCAYNt/4xfI4IBg+2fXmSCAcIWY09YgNxYv6tB0RCRmMLCQdCQ0ZjDAG0B0NCR2MLCQdCQ0ZjDPvsB0RCQ2UMCQdCQ0hjCwKTAjw8egICV1V+Q46tAgV0ewQCq39Cja8DMQSrf02GqgQCrH5MVY9M+qlIBGhH/DxOZAICZ1FPTmMCAmNTUExmAgJpT09LZgICY1MC5E1kAgJjVE5MZgICaE8AAAEAXwCZAlQDtQAGABAAsAUvsgIHBRESObACLzAxARMjAzcBMwELsn3hAgFbmAIc/n0BgxQBhQAAAQACAJgB9wO1AAYAEACwAC+yAwcAERI5sAMvMDEBEwcBIwEDARbhAv6lmAFIsQO1/n0V/nsBmAGFAAH/7wBwA8IFIAADAAkAsAAvsAIvMDE3JwEXUWIDcWJwSARoSAD//wBjApsC5gWwAwcCIABzApsAEwCwAEVYsAkvG7EJHT5ZsA3QMDEAAAEAfgKLA0oFugARAE0AsABFWLAALxuxAB0+WbAARViwAy8bsQMdPlmwAEVYsA8vG7EPFT5ZsABFWLAILxuxCBU+WbIBAw8REjmwAxCxDAOwCitYIdgb9FkwMQEXNjMyFgcDIxM3JicmBwMjEwGEAVyGcXIMU6ZNAwRmY0Ngp4sFrHyKopH+BAHdQn4DAm/9zQMgAAAB//MAAASJBcoAJwCUALAARViwFy8bsRcdPlmwAEVYsAYvG7EGET5ZsicGFxESObAnL7EAArAKK1gh2Bv0WbAGELEFAbAKK1gh2Bv0WbAJ0LAAELAN0LAnELAP0LAnELAj0LAjL7YPIx8jLyMDXbEkArAKK1gh2Bv0WbAR0LAjELAT0LAXELAbsAorWNgb3FmwFxCxHgGwCitYIdgb9FkwMQEhBwYHJQchNxc2NzcHNzM3IzczNzYkFxYWByc2JicmBgcHIQchByEC5/6+CRhUAssd/BUdQ2klC6sWoRSeFpkVGQEWwKjACLsHZGNvmg8VAVIW/rMUAUoB1kSUYwKdnAIm0EcBfYh9r832BgTRsQFreQQEp32vfYgAAAUACgAABkIFsAAbAB8AIwAmACkAswCwAEVYsBcvG7EXHT5ZsABFWLAaLxuxGh0+WbAARViwDC8bsQwRPlmwAEVYsAkvG7EJET5ZshAMFxESObAQL7AU0LAUL7QPFB8UAl2wJNCwJC+wGNCwGC+wANCwAC+wFBCxEwGwCitYIdgb9FmwH9CwI9CwA9CwEBCwHNCwHC+wINCwIC+wBNCwBC+wEBCxDwGwCitYIdgb9FmwC9CwKdCwB9CyJhcMERI5sicJGhESOTAxATMHIwczByMDIwMhAyMTIzczNyM3MxMzEyETMwEhJyMFMzchJTMnATcjBWrYGtga2BrYVbfh/mpVvFXTG9Ia0xvSWrXtAYhau/vuATdE2AHjyxr+2P55eVcCPB1qA6yYlJj+GAHo/hgB6JiUmAIE/fwCBPzQlJSUmL7816cAAgA5/+0GJQWwACAAKQCMALAARViwHC8bsRwZPlmwAEVYsBYvG7EWHT5ZsABFWLAULxuxFBE+WbAARViwCy8bsQsRPlmwHBCwH9CxAQGwCitYIdgb9FmwCxCxBgGwCitYIdgb9FmwARCwD9CyIRYUERI5sCEvsRMBsAorWCHYG/RZsBwQsB3QsB0vsBYQsSkBsAorWCHYG/RZMDEBIwMGFxYzMjcHBicmJjcTIwIhJwMjEwUeAgc3EzMDMwEXPgInJicnBgvDcgMCB08gNQtCRGtsDG6Bb/50xWO1/QFieLRbBZAvtS7F+0WweJtDDBO8xQOr/WAaF00KmBIBApWIAp7+iQH9ywWwAQNcp3ABAQb++v6SAQJqxGupCAEA//8AOv/pB+oFsAAmADYAAAAHAFcENAAAAAcACQAABhYFsAAfACMAJwArADAANQA6AQ+yKzs8ERI5sCsQsB7QsCsQsCLQsCsQsCTQsCsQsC3QsCsQsDXQsCsQsDbQALAARViwAi8bsQIdPlmwAEVYsAwvG7EMET5ZsABFWLAQLxuxEBE+WbIIAgwREjmwCC+wBNCwBC+wANCwBBCxBgGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FmwDtCwChCwEtCwCBCwFNCwBhCwFtCwBBCwGNCwAhCwGtCwBBCwHNCwAhCwHtCyIAIMERI5sCAvsAYQsCLQsAgQsCTQsAYQsCbQsAgQsCjQsAYQsCrQsCAQsS0PsAorWCHYG/RZsjACDBESObIzCAoREjmyNQIMERI5sCgQsDbQsDYvsjkCDBESOTAxATMTMwMzByMHMwcjAyMRIwMjAyM3MycjNzMDMxMzEzMBMzcjBTM3IwUzNyMBNyMHByU3BxUHAz8CBwPL4qjBtIAaoErJG+e3tN2osxLnG8gGoRuAD7cF6aav/cZrRbICPWdFrP7GqAFj/u8GNAEVAnsFMxC6LwILNgPUAdz+JJjCmP4eAeL+HgHimMKYAdz+JAHc/MrCwsLCwv6aDwrU0wwBC8wCwgELp6oAAAIAH//8BcgEOgAOABsATACwAEVYsBYvG7EWGT5ZsABFWLAMLxuxDBE+WbAP0LESAbAKK1gh2Bv0WbAWELAO0LIFEg4REjmxCwGwCitYIdgb9FmyEAsPERI5MDEBFhYHAyMTNicmJyUDIxsCMwMFMjcTMwMGBicC65mPEzW1NgYCCpL+waG1vMGAtWUBKuEodLVyGcurBDgFzcD+twFMMCyVBQL8XwQ6+8YC3f27AvUCr/1Zyc4EAAABAFH/7ASIBccAJQCOsh8mJxESOQCwAEVYsBgvG7EYHT5ZsABFWLALLxuxCxE+WbIlGAsREjmwJS+xAAKwCitYIdgb9FmwCxCxBgGwCitYIdgb9FmwABCwD9CwJRCwENCwJRCwFdCwFS+2DxUfFS8VA12xEgKwCitYIdgb9FmwGBCxHQGwCitYIdgb9FmwFRCwINCwEhCwItAwMQEhBhcWFhcWNxcGJyYCNwc3MzcjNzMSABcyFwcmJyYGByEHIQchAy7+jgkHDIZyX3wFcnfi7iC0FqwZrRalPgE76FmUImpjodMuAXoW/owYAXUCHUpHeIYDAyKhHQIEATb2AXyJfQENARsCHqQkAgLKwn2JAAQAQwAABfsFsAAZAB4AIwAoAMQAsABFWLALLxuxCx0+WbAARViwAS8bsQERPlmwCxCxKAGwCitYIdgb9FmwJNCwJC9ACQAkECQgJDAkBF2wBtCwBi+0DwYfBgJdtCAGMAYCXbKwBgFdsCPQsCMvtLAjwCMCXUAJACMQIyAjMCMEXbEAAbAKK1gh2Bv0WbAGELEDAbAKK1gh2Bv0WbAkELEcAbAKK1gh2Bv0WbAH0LAkELAK0LAKL7AkELAP0LAcELAS0LAGELAd0LAU0LADELAi0LAX0DAxAQMjEyM3MzcjNzM3BTIWFzMHJwcHNwcHBiEBNwUHBQU2NwUHEyUmJyEBlGO7jcAawBHBG8AqAe2l4ifuG7gKDsEb1Jj+pAF2Cf18EAJ9/pyhcv26EFQCNjiV/qcCOv3GAzCXXpf0AX51lwEzLgKXAfYBuTQBXgHwAloCWQHlAk8FAAABAEkAAARyBbAAGgBiALAARViwGS8bsRkdPlmwAEVYsAwvG7EMET5ZsBkQsRgBsAorWCHYG/RZsAHQsBgQsBPQsBMvsAPQsBMQsRIBsAorWCHYG/RZsAbQsBIQsA7QsA4vsQkBsAorWCHYG/RZMDEBBxYHMwcjBgQHAQcjATcXMjcFNyEmJiclNyEEKeYnBM9JjzT/AOUBfAHZ/mMU4vVm/cZJAgEGfGj+4EkDiQUSAV5nnrKvB/3IDgJydALLAZ5dZAQBngABAAr/6QQUBbAAHgCQALAARViwES8bsREdPlmwAEVYsAUvG7EFET5ZshMRBRESObATL7AX0LAXL7IAFwFdsRgBsAorWCHYG/RZsBnQsAjQsAnQsBcQsBbQsAvQsArQsBMQsRQBsAorWCHYG/RZsBXQsAzQsA3QsBMQsBLQsA/QsA7QsAUQsRoBsAorWCHYG/RZsh4FERESObAeLzAxAQcGAgQnJicTBT8CBTclEzMHJQcFByUHBQM2Ejc3BBQKG8H+5a5KcmL+/yL/Gv7/IQEAO7wtAQgh/vkZAQgh/vlhv/MlDgMDTtX+s6oCAhMCVG68b45uvG8BVPtyvHKPcrxz/eEFARXwawAB//IAAASGBDoAHABWALAARViwHC8bsRwZPlmwAEVYsAgvG7EIET5ZsABFWLAPLxuxDxE+WbAARViwFS8bsRURPlmyAA8cERI5sAAvsQ4BsAorWCHYG/RZsBHQsAAQsBrQMDEBHgIVFAcHIzc2JyYmJwMjEwYCBwcjNxIANzczAxR2p1UKHrUcFAYLaV2BtYGXxicitR8vATbqKLUDbxeT7YtLSLqqfGeMmBz9MwLMJf8A2c65ASsBaiPJAAL/5QAABTUFsAAWAB8AcACwAEVYsAwvG7EMHT5ZsABFWLADLxuxAxE+WbIGAwwREjmwBi+xBQGwCitYIdgb9FmwAdCwBhCwCtCwCi+0DwofCgJdsQkBsAorWCHYG/RZsBTQsAYQsBXQsAoQsBfQsAwQsR8BsAorWCHYG/RZMDEBIQMjEyM3MzcjNzMTBRYWBwYEIyUHIQEFMjY3NiYnJQKt/rwwuzDJHMgZyhzIfwH90+oREv7V8P6lGAFF/u4BRZnDERCHfv6mARP+7QETnomdAtkBB+y+0vMBiQEmAZyLepYEAQAABADM/+YFOQXIABsAKQA3ADsAkQCwOC+wOi+wAEVYsAovG7EKHT5ZsABFWLAjLxuxIxE+WbAKELAD0LADL7IAAwoREjm2JQA1AEUAA12yDgoDERI5tikOOQ5JDgNdsAoQsREEsAorWCHYG/RZsAMQsRgEsAorWCHYG/RZsCMQsBzQsBwvsCMQsS0EsAorWCHYG/RZsBwQsTQEsAorWCHYG/RZMDEBBgYnJiY3NzY2FxYWByc2JiciBgcHBhYXMjY3ARYWBwcGBicmJjc3NjYDBhYXFjY3NzYmJyYGBwUnARcC5Qyfc3OICQYNq3xviQKHAzZAQVwKCAg4PDxODQHQe48IBg21gXmRCAYMtD8FQ0JIYQsJB0NCRWYL/fNkA3FjBB5zjwQCq35Di68CAo9xATpNAmhWRkpnAks7/nQEqX9Dja8EAquARIut/oJQYQICaU5PTGYCAmZR9UgEaEcAAAIAS//rA8MGFwAcACQAVgCwCS+wAEVYsA8vG7EPHz5ZsABFWLAALxuxABE+WbAJELEIAbAKK1gh2Bv0WbAW0LAAELEcAbAKK1gh2Bv0WbAJELAd0LAPELEiAbAKK1gh2Bv0WTAxBSYmJyY3NwYHNzY3EzY2FxYWBwcGAAcHBhUGFhcDNhI3NicmBwJVg6gUDQ8EZG0UZWxeGK6EcXoKAxP/AMcRCAJSUG1+jQYEQ24ZFQaUgU9YFBsCsAIhAiG2yQMEr4cfx/6NcWM1MlViBQJfbwEKpG0FBuUABAA1AAAH7wXFAAMAEQAgACoAiwCwAEVYsCcvG7EnHT5ZsABFWLApLxuxKR0+WbAARViwBC8bsQQdPlmwAEVYsCEvG7EhET5ZsABFWLAkLxuxJBE+WbAEELAL0LALL7AC0LACL7EBA7AKK1gh2Bv0WbALELEVA7AKK1gh2Bv0WbAEELEdA7AKK1gh2Bv0WbIjKSQREjmyKCEpERI5MDEBITchAxYWBwcGBicmJjc3NjYDBhYXFjY/AyYnJgYHASMBAyMTMwETMwdJ/aoaAlaikJ4MCRHQlo+hDAgP1EoIS0pOaxECCwEGiFJtDv4Ewf6Dx7T8wQF/x7MBnI4DlwTDk1elwgQEwpJWosj+PmNnAgNlYAxjKaADAm1i+5kEdvuKBbD7hwR5AAACAOoDlgStBbAADAAUAG4AsABFWLAGLxuxBh0+WbAARViwCS8bsQkdPlmwAEVYsBMvG7ETHT5ZsgEVBhESObABL7IACQEREjmyAwEGERI5sATQsggBCRESObABELAL0LAGELANsAorWNgb3FmwARCwD9CwDRCwEdCwEtAwMQEDBwMDIxMzExMzAyMBIwMjEyM3IQQ6wzRGR1leakXScV5Y/mqOUFlPjw4BeAUS/oYCAZH+cAIZ/nMBjf3nAcj+OAHIUQAAAgCC/+kEfARSABUAHABlsgIdHhESObACELAW0ACwAEVYsAovG7EKGT5ZsABFWLACLxuxAhE+WbIaCgIREjmwGi+xDwqwCitYIdgb9FmwAhCxEwqwCitYIdgb9FmyFQoCERI5sAoQsRYKsAorWCHYG/RZMDElBicmJgI3NhIkFx4CBwchAxYXFjcDJgcDIRMmA7C4voTQZA4OsgEEioC+YAsF/RQ7X4+q1s6ImjMCCzNdXXQEApoBAomSARGbBASK+5Ix/rZnBAd/AysDfP7qAR9sAP//ALX/9AV0BZsAJwHGAEoChgAnAZQA3wAAAQcCJAL8AAAAEACwAEVYsAUvG7EFHT5ZMDH//wCS//QGEAW2ACcCHwCXApQAJwGUAZgAAAEHAiQDmAAAABAAsABFWLANLxuxDR0+WTAx//8Aj//0BgYFpAAnAiEAeQKPACcBlAF3AAABBwIkA44AAAAQALAARViwAS8bsQEdPlkwMf//AL7/9AW8BaQAJwIjAI8CjwAnAZQBFwAAAQcCJANEAAAAEACwAEVYsAUvG7EFHT5ZMDEAAgBN/+cENwXsAB4ALABKALAPL7AARViwFy8bsRcRPlmyAA8XERI5sAAvsA8QsQkBsAorWCHYG/RZsAAQsR8BsAorWCHYG/RZsBcQsSYBsAorWCHYG/RZMDEBFhYXNicuAicmBgcnNhcWFhIHAgIEJyYCPwI2ABcmBgYXFhYXFjY3NzYmAmRWlzQEAgRBeVJLj0YCk6WTw1QIDZ7+/qS71gYDAh0BItVsrFYLCXJjj8IkCgOTA/4CS0UuNWWyYAMCIxiYRAEDnv7TwP7b/nrLBAUBBNMxEuUBFZ0DfeSPcoMEBfPlQVR5AAEAJP8rBUYFsAAHACgAsAQvsABFWLAGLxuxBh0+WbAEELAB0LAGELECAbAKK1gh2Bv0WTAxBSMTIQMjASEEQbXu/UzttQEFBB3VBe36EwaFAAAB/6z+8wTSBbAADAA3ALADL7AARViwCC8bsQgdPlmwAxCxAgGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIQchNwEBNyEHIQEDT/1aA2Mb+7saAsz+LRgD+xv82QHBAkL9SZiYAswC0oeY/UQAAQCrAosD8QMiAAMAHACwAEVYsAIvG7ECFz5ZsQEBsAorWCHYG/RZMDEBITchA9b81RsDKwKLlwABAEEAAAUOBbAACAA9sgMJChESOQCwBy+wAEVYsAEvG7EBHT5ZsABFWLADLxuxAxE+WbIAAQMREjmwBxCxBgGwCitYIdgb9FkwMQEBMwEjAyM3IQHlAmnA/PaKgbgcAS4BHgSS+lACdJoAAwBN/+YHoQRSABkAKgA7AEYAsABFWLAGLxuxBhE+WbAA0LAGELAN0LANL7AT0LAGELEdAbAKK1gh2Bv0WbANELEnAbAKK1gh2Bv0WbAv0LAdELA40DAxBSYmJwYGJyYmJyYSJBcWFhc2NhceAgcCAAEUFhcWNjY3NzYmJyYnJgYGBTcmJicmBgYHBwYWFhcWNjcFaY7UKH30haPUEhOSAQuejdUoevaKgbtZDx7+yPrVd2pUq4kcBwU/OE5eaaViBc8EA3NpVKiOHQcGTYdPjcQXFQTHn8mlAwTlt6wBWsIEBMahxKsDBJP7jf79/rkBzImnAgJuwl0qSqg6UQQEg/cPU4+hBAJpw2ApT71zBAXnswAAAf8a/kUDBwYaABUAP7ICFhcREjkAsABFWLAOLxuxDh8+WbAARViwAy8bsQMTPlmxCAGwCitYIdgb9FmwDhCxEwGwCitYIdgb9FkwMRcGBicmJzcWFxY3EzY2FxYXByYjIgfxE7mVNUEcNBmcHsMTxZ02XCIwKLcja6OtAgIUkg4BB8kFDKjEAgEVjw3lAAIAMQEVBC0D8wAWACkAbwCwGS+wAtCwAi+wCNCwCC+wAhCwC9CwCBCxDgGwCitYIdgb9FmwAhCxFAGwCitYIdgb9FmwDhCwFtCwGRCwHdCwHS+wGRCwH9CwHRCxIgGwCitYIdgb9FmwGRCxJgGwCitYIdgb9FmwIhCwKdAwMRM2MzIXFxYWMzI2NwcGJyImJycmIyIHBzYzNhYWMzI3BwYnIiYmIyIHB4xtkFNQODFeOjx3TRVvgjtgMTJUUn+JOG6NMlPUTXqEFG+CLErZVGxwLQOGbSsfHSk4R71vAikdHC9/5m4BGnh/vG8CFnpZJgAAAQBwAJ0D/wTTABMAOQCwEy+xAAGwCitYIdgb9FmwBNCwExCwB9CwExCwD9CwDy+xEAGwCitYIdgb9FmwCNCwDxCwC9AwMQEhByc3IzczNyE3IRMXBzMHIQchA5r+A7NbhaQc/b3+chwB6cFbkrgd/u68AaMBj/JBsaD/oQEEQcOh/wD////UAAIDyQRCAGYAIBFhQAA5mgAHAa//Kf13//8AGQABA+gETABmACIUc0AAOZoABwGv/279dgACAEEAAAPUBbAABQAJADiyCAoLERI5sAgQsAHQALAARViwAC8bsQAdPlmwAEVYsAMvG7EDET5ZsgYAAxESObIIAAMREjkwMQEzAQEjCQITAQI9iQEO/gWK/vICKP6PtAFyBbD9Hf0zAuECBP3n/f4CF///AHgApAHwBPcAJwASAEMAsgAHABIA2wQkAAIAcAJ5AncEOgADAAcAJQCwAEVYsAMvG7EDGT5ZsADQsAAvsAXQsAUvsAMQsAbQsAYvMDETIxMzEyMTM/qKTorgik+KAnkBwf4/AcEAAAH/4/9fAQ8A7wAHAAwAsAQvsADQsAAvMDEXJzY3NzMHBkZjWxYPrAkeoUp7eVI/0wD//wB0AAAFawYZACYASgAAAAcASgIbAAAAAgBYAAAEBQYZABYAGgBrALAARViwCS8bsQkfPlmwAEVYsBMvG7ETGT5ZsABFWLAZLxuxGRk+WbAARViwFi8bsRYRPlmwAEVYsBgvG7EYET5ZsBMQsRQBsAorWCHYG/RZsAHQsBMQsATQsAkQsQ8BsAorWCHYG/RZMDEzEyM/AjY3NhcWFhcHJicmBwczByMDISMTM1ujphmmDht4c69HhUYscW/lIg3XGdajAji2vLYDq48BZLdkXwICIxieMwIE5FeP/FUEOgABAHQAAARiBhoAGABeALAARViwEy8bsRMfPlmwAEVYsAcvG7EHGT5ZsABFWLAKLxuxChE+WbAARViwGC8bsRgRPlmwExCxAgGwCitYIdgb9FmwBxCxCAGwCitYIdgb9FmwDNCwBxCwD9AwMQEmIyIGBwczByMDIxMjNzM3NjYXFhcXAyMDn4E7Y3gPEuEZ4KO1pKcZphIa2KZtuGD+tQVlFm9fc4/8VQOrj3+nugICKhT6KAACAHQAAAZXBhsAJwArAJoAsABFWLAILxuxCB8+WbAARViwFi8bsRYfPlmwAEVYsCAvG7EgGT5ZsABFWLAqLxuxKhk+WbAARViwJy8bsScRPlmwAEVYsCQvG7EkET5ZsABFWLApLxuxKRE+WbAgELEhAbAKK1gh2Bv0WbAl0LAB0LAgELAS0LAE0LAIELENAbAKK1gh2Bv0WbAWELEcAbAKK1gh2Bv0WTAxMxMjNzM3NjYXFhcHJiciBgcHITc2NhcWFhcHJicmBwczByMDIxMhAyEjEzN3pKcZphEX1KA2SxYwMVl1ERMBgw4a57VIiUQvc2/kIg3YGdejtaP+faMEb7W8tQOrj3mowAICEJgKAmpeeWWxyQICJhibMwIC4leP/FUDq/xVBDoAAQB0AAAGmQYbACoAjQCwAEVYsAkvG7EJHz5ZsABFWLAXLxuxFx8+WbAARViwIy8bsSMZPlmwAEVYsCovG7EqET5ZsABFWLAnLxuxJxE+WbAARViwHC8bsRwRPlmwIxCxJAGwCitYIdgb9FmwKNCwAdCwIxCwE9CwBNCwCRCxDgGwCitYIdgb9FmwFxCxHwGwCitYIdgb9FkwMTMTIzczNzY3NhcWFwcmIyIGBwchNzY2FxYXFwMjEyYjJgcHMwcjAyMTIQN3o6YZphIdemaONUsWOihbdRARAYQPGdaqVnG//rXzgTzNIg7hGt+jtaP+faMDq49/tl5OAgIQmAxuZ2xrtMECAhYo+igFZBYC41+P/FUDq/xVAAEAdP/tBMgGGgAmAIQAsABFWLAiLxuxIh8+WbAARViwHi8bsR4ZPlmwAEVYsBEvG7ERGT5ZsABFWLAlLxuxJRk+WbAARViwCy8bsQsRPlmwAEVYsBkvG7EZET5ZsB4QsRsBsAorWCHYG/RZsBDQsAHQsAsQsQYBsAorWCHYG/RZsCIQsRUBsAorWCHYG/RZMDEBIwMGFxYzMjcHBicmJjcTIzczEyYnIgYHAyMTIzczNzY2FxYXAzMErsNyAwIHTyIyCkJBbmwMbsAavzNFalVyEs21pKcZphEXxZ6s1TzFA6v9YBoXTQqYEgECm4ICno8BISQCa2n7UwOrj3ilwwIDZv6LAAABACn/6QZ2BhMATQC8ALAARViwSC8bsUgfPlmwAEVYsEEvG7FBGT5ZsABFWLASLxuxEhk+WbAARViwLi8bsS4RPlmwAEVYsAovG7EKET5ZsBIQsEzQsQEBsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAEQsA/QsEgQsRcBsAorWCHYG/RZsh9BLhESObBBELEiAbAKK1gh2Bv0WbI6LkEREjmwOhCxJwGwCitYIdgb9FmyMi5BERI5sC4QsTUBsAorWCHYG/RZMDEBIwMHFBcWNwcGJyYmNzcTIzczNzYnJicmBh8CFgcjNiYnJgYHBgQXFgcOAicmJjczFBYXFjY3NicnJjc+AjMWFyY3NjYXFhYHBzMGXcRsAVIbOAxLOmFqAwJqtxm1DAUEDotlegwFFgcGtQJoWF2EDA4BJzzKCwZ5ynKr3Qa0cWVkkAwSkqD/CwV1xW1bWRMHD92UqbEUDcQDq/19NGQDAQuYEwIBkIckAoGPVisqjgMDiZI7q0A8UmUCAltLaU0bWbRkllADAsWbXWsCAldNcy0uVcBglFMBH3s/hqMCBNKqVwAAFv+r/nIIRgWuAA0AHAApADgAPgBEAEoAUABXAFsAXwBjAGcAawBvAHcAewB/AIMAhwCLAI8BFACwPi+wAEVYsEcvG7FHHT5Zsn9KAyuyfHsDK7J4gwMrsoA7AyuyCj5HERI5sAovsAPQsAMvsA7QsA4vsAoQsA/QsA8vslEODxESObBRL7FwB7AKK1gh2Bv0WbIWUXAREjmwChCxIAewCitYIdgb9FmwAxCxJgewCitYIdgb9FmwDxCwKtCwKi+wDhCwL9CwLy+xNQewCitYIdgb9FmwPhCxPQqwCitYIdgb9FmwPhCwbNCwaNCwZNCwP9CwPRCwbdCwadCwZdCwQNCwRxCxSAqwCitYIdgb9FmwYNCwXNCwWNCwS9CwRxCwYdCwXdCwWdCwTNCwDhCxUgewCitYIdgb9FmwDxCxdwewCitYIdgb9FkwMQEGBicmJjc3NjYXFhYHExMXFhYHBgYHFhUGBwYHATYmJyYGBwcGFhY2NwEzAwYGIyImJxcGNzY2NwETMwczByE3MzczAwETIQcjByU3IQMjNwEHMzY3NicBNyEHITchByE3IQcTNyEHITchByE3IQcBNzY3Ni8CASM3MzcjNzMDIzczJSM3MzcjNzMDIzczAxAKi19edAQJCItgXXQCC2CqXl8DAjcnTwEWNIX+uAU4OjtWDA0HOXhVCwPQYTsKa01SZgFZBFgsOQn5YzdvJL8UBP8UwCRtN/m1MgEtFL4eBdsUAS4ybR776B5vbw4NUgFKFQEPFf1uFQEOFf1vFQENFc0UAQ8U/W4UAQ4U/W8UAQ0UAVhXew0KRSFe/M5vLW8Vbyxvr28tbwcAbSxtFW0tba9tLG0B1GV6AgJ6YW5lewICemD+uAIlAQNKQjA5FR1YMCFOBAFLQ04CAk5Icj9SBFFFAU/+hU9bUlUCXwIBOCn8ygE7ynFxyv7FBh8BHXSpqXT+46n8tqkFVEgHA0t0dHR0dHT5OHFxcXFxcQPCAQZRNwcDAf7S/H76/BX5fvx++vwV+QAFAFz91QfXCHMAAwAcACAAJAAoADQAsCUvsCEvshweAyuwJRCwANCwAC+wIRCwAtCwAi+yDQAcERI5sA0vsh8CHhESObAfLzAxCQMFNDY3NjY1NCYjIgYHMzY2MzIWFRQHBgYVFyMVMwMzFSMDMxUjBBgDv/xB/EQEDx4kSlynlZCgAssCOis5OF1bL8rKyksEBAIEBAZS/DH8MQPP8To6GCeHSoCXi38zNEA0XzxBXExbqv1MBAqeBAAB/+kAAAJzAyQAFwBJALAARViwDy8bsQ8XPlmwAEVYsAEvG7EBET5ZsRYCsAorWCHYG/RZsALQsgMPFhESObAPELEIArAKK1gh2Bv0WbIVFg8REjkwMSEhNwE2NzYmJyYGBwc2NhcWFgcGDwIhAi/9uhQBY2MMBzUwQlAOmguugHiLBQiXQMQBe3QBKlRKMDYBAUs+AXWVAgJ+Znt9M5EAAQBrAAAB/AMVAAYAMwCwAEVYsAUvG7EFFz5ZsABFWLABLxuxARE+WbIEAQUREjmwBC+xAwKwCitYIdgb9FkwMSEjEwc3JTMBeZpo3BgBZBUCVTiHcQACAB3/8AKBAyUADQAZAEiyEBobERI5sBAQsAfQALAARViwBy8bsQcXPlmwAEVYsAAvG7EAET5ZsAcQsRACsAorWCHYG/RZsAAQsRYCsAorWCHYG/RZMDEFJiY3NzY2FxYWBwcGBhMmJyYPAhYXFjc3ASCCgQwNE62JgYEMDhOrNARjhR0UAQRlhB0TDAS0mXquuAQEtZmBqrQCMXwDA8SzN38DBsm2AAACAGv/+QOrBKAAFAAjAFsAsABFWLAJLxuxCRs+WbAARViwES8bsRERPlmyAhEJERI5sAIvsgACCRESObARELESAbAKK1gh2Bv0WbACELEVAbAKK1gh2Bv0WbAJELEeAbAKK1gh2Bv0WTAxAQYnJiY3PgIXFhIHBwIABSM3MyQDFjY3NzYnJiYnJgYHBhYCxnadma8NCX/JdrO5Fwoq/pD+2BwQLAFqdlCELAkGBQtbTGWWDQtiAexwAgLVqHfDaQME/v/SVf7U/rYCmAkBdgJQQUQwM1hjAwKTcmiHAAADACj/7QOuBKAAFgAiAC4AeQCwAEVYsBQvG7EUGz5ZsABFWLAJLxuxCRE+WbIsCRQREjmwLC+yvywBXbTfLO8sAl20HywvLAJdtK8svywCcbEaAbAKK1gh2Bv0WbICGiwREjmyDiwaERI5sAkQsSABsAorWCHYG/RZsBQQsSYBsAorWCHYG/RZMDEBBgcWFgcOAicmJjc2NyYmNzY2FxYWAzYmJyYGBwYWFxY2EzYmIyIGBwYWMzI2A6UO0U5UBQZ6zXSszgkO70JFBQfns6DB/QlvXWSXCwlqYWWXSQhlT1mACghhUFqCA2OwYSmMWWmcUgMCso/DZyh/TZW6AgWr/WBTaAICcF9UYgICbAJrTF9mVUxfZgAAAQBwAAAEBgSNAAYAMwCwAEVYsAUvG7EFGz5ZsABFWLACLxuxAhE+WbAFELEEAbAKK1gh2Bv0WbIABAUREjkwMQEBIwEhNyED8v1HyQK3/WAbA2QEGvvmA/SZAAACAEv/6wOKBJQAFAAhAFgAsABFWLAALxuxABs+WbAARViwDC8bsQwRPlmwABCxAQGwCitYIdgb9FmyBgwAERI5sAYvsgQGDBESObEVAbAKK1gh2Bv0WbAMELEcAbAKK1gh2Bv0WTAxAQcjBAM2FxYWBwYGJy4CNzcSACUBJgYHBwYWFxY2NzYmA0wRJ/6Pe4Gbma0NEP+1dapPDgkpAXcBK/7pUYosBQ1jYmWWDQtgBJScCf6cewQC1aW35AQCd9F9RQE8AVsC/dgCUEIogagDBI5vZYIAAQBK/+oD2QSNABwAYACwAEVYsAEvG7EBGz5ZsABFWLAOLxuxDhE+WbABELEEAbAKK1gh2Bv0WbIHDgEREjmwBy+wBdCwDhCwEtCwDhCxFAGwCitYIdgb9FmwBxCxGgGwCitYIdgb9FmwHNAwMRMTIQchAzYXMhYWBwYGJyYmJzMWFxY2NzYmJyYHmqgClx3+Bl9jbWmfTggO/7ydywarELxskg0Kb2NnbQJGAkei/t4xAmCubrjaBAK2k60EAol0YnsCAkUAAv/3AAADpwSNAAoADgBCALAARViwCS8bsQkbPlmwAEVYsAUvG7EFET5ZsgYFCRESObAGL7AD0LEAAbAKK1gh2Bv0WbAM0LAI0LAJELAN0DAxATMHIwMjEyE3ATMBIRMHAv2qG6kuti79yhICscX9VwFxXyIBnZf++gEGfAML/RAB/jEAAQAW/+0DpwSgACgAiACwAEVYsA4vG7EOGz5ZsABFWLAaLxuxGhE+WbIAGg4REjmwAC+yvwABXbSvAL8AAnG03wDvAAJdtB8ALwACXbRvAH8AAnKwDhCxBwGwCitYIdgb9FmwDhCwCtCwABCxKAGwCitYIdgb9FmyEygAERI5sBoQsB7QsBoQsSIBsAorWCHYG/RZMDEBFzI2NzYmJyYGBwc2NhcWFgcGBxYWBw4CJyYmNxcGFxYXFjY3NicnAWNudJgKCWBcXYcQtQ70rqvBCwrcVk8GB3vQdanPBbMDJjRya5QLFf1wApsBaFhQWwICXE8BkrECBa+PqmEhiFtrn1UDArKWAUMtPgMCaV24AgEAAAH//QAAA6sEoQAXAE8AsABFWLAPLxuxDxs+WbAARViwAC8bsQARPlmxFwGwCitYIdgb9FmwAtCyAw8XERI5sA8QsQgBsAorWCHYG/RZsA8QsAvQshUXDxESOTAxISE3ATY3NiYnJgYHBzYkFxYWBwYHBwEhA0b8txkCTnUOC11Tc5QStREBDLmkvQsNz1X+jQJkiwH4bWNMZgICcmwBq8wEBbSNpbpK/ukAAQC8AAAC5wSQAAYAMwCwAEVYsAUvG7EFGz5ZsABFWLABLxuxARE+WbIEAQUREjmwBC+xAwGwCitYIdgb9FkwMSEjEwU3JTMCIraj/q0eAe8eA6tipqEAAAIASv/rA6MEogARACIASLIgIyQREjmwIBCwCdAAsABFWLAJLxuxCRs+WbAARViwAC8bsQARPlmwCRCxFwGwCitYIdgb9FmwABCxHwGwCitYIdgb9FkwMQUmJicmNzcSEhcWFhcWBwcCAhM2NTQmJyYGDwIGFhcWNjcBn6CvBAIHFyP9wpGtEQoLFSP8gwZYVW6UGyEFBlhbbZQbEATQsT0/pgEAAQsFBKuWXVug/vv+8ALSMzljdQQFoajsSHqJBAWkqgAB/9wAAAQOBI0ACQBNsgUKCxESOQCwAEVYsAcvG7EHGz5ZsABFWLACLxuxAhE+WbEBAbAKK1gh2Bv0WbIEAgEREjmwBxCxBgGwCitYIdgb9FmyCQYHERI5MDE3IQchNwEhNyEH4AKWG/yBGAMV/YsbA18Xl5eFA2+ZggAAAQB0AAAEZQSNAAgAOLIACQoREjkAsABFWLABLxuxARs+WbAARViwBy8bsQcbPlmwAEVYsAQvG7EEET5ZsgABBBESOTAxAQEzAQMjEwEzAfwBk9b91EW1S/7qwAJLAkL9AP5zAa0C4AAB/7YAAARtBI0ACwBMsgAMDRESOQCwAEVYsAEvG7EBGz5ZsABFWLAKLxuxChs+WbAARViwBC8bsQQRPlmwAEVYsAcvG7EHET5ZsgABBBESObIGAQQREjkwMQEBMwEBIwMBIwEBMwIoAWHk/hQBIsnV/pTjAfj+6MgC2wGy/bT9vwG6/kYCVQI4AAABAJUAAAYpBI4AEgBZALAARViwAy8bsQMbPlmwAEVYsBIvG7ESGz5ZsABFWLAILxuxCBs+WbAARViwDy8bsQ8RPlmwAEVYsAsvG7ELET5ZsgEPEhESObIGCwgREjmyDRILERI5MDEBBzcBMxMXNwEzASMDNQcBIwM3AWsGGwGLoVEBHwFTuf4VqloE/l6qVacBJlJCA3f8hj1cA1v7cwOVCgv8bASNAQABAHoAAASZBI4ACAA4sgUJChESOQCwAEVYsAgvG7EIGz5ZsABFWLADLxuxAxs+WbAARViwBS8bsQURPlmyAQgFERI5MDEBFzcBMwEjAzcB0gcsAcvJ/Xqp8LUBJFthA2P7cwSNAQABAEX/6gRXBI0AEQAvALAARViwCS8bsQkbPlmwAEVYsAQvG7EEET5ZsQ0BsAorWCHYG/RZsAkQsBHQMDEBAwYEJyYmNxMzAwYWFxY2NxMEV4MZ/urIv9kTg7OEDXV0eqkVhASN/PW63gQE3LMDDPzzdYEDBIJ7Aw0AAAEAbQAABEIEjQAHAC8AsABFWLAGLxuxBhs+WbAARViwAy8bsQMRPlmwBhCxBQGwCitYIdgb9FmwAdAwMQEhAyMTITchBCb+frC1sP5+HAO5A/T8DAP0mQABABH/6wPtBJ0AJwBXALAARViwCi8bsQobPlmwAEVYsB4vG7EeET5ZsgMeChESObAKELESAbAKK1gh2Bv0WbAO0LADELEXAbAKK1gh2Bv0WbAeELElAbAKK1gh2Bv0WbAi0DAxATYvAiQ3NjY3NxYWByc2JyYnIgYHBhcXFhYHBgQnJiY3FwYWFzI2AtkSpH0+/v8NCOezKbPXBbQFKTd/cZIMEbpCu6UICv73wbrvBbUHgHx4lgExezYnF2bOjLIKAQTEnQFRNEUDXlJxORQ3snuYsQUCx6UBZXECXAACAB0AAAQBBI0ADQAWAE8AsABFWLAELxuxBBs+WbAARViwAi8bsQIRPlmyDgIEERI5sA4vsQEBsAorWCHYG/RZsgoBBBESObACELAN0LAEELEWAbAKK1gh2Bv0WTAxASEDIxMFFhYHBgUTFSMBFzI2NzYmJycCM/7tTrXLAZG9ywwS/vnGwP5Y5HegDAtobvQBwf4/BI0BBbid6GH+IwwCWAF0YFtoBQEAAAIARf83BEsEowATACMAOwCwAEVYsA0vG7ENGz5ZsABFWLAFLxuxBRE+WbANELEXAbAKK1gh2Bv0WbAFELEfAbAKK1gh2Bv0WTAxJRcHJwYjJgI/AhIAFxYWEgcHAgMmJicmBgcGFxYWFxY2NzYDDLaC20I3x+AMAwYfAUDkkMZYEgYqgAl+bpXPHRUICXxtlc4fFkGkZsULAwEd6Cc1AQgBRgYEkf79njL+pwIdeosEBdi2hF96jwQF0L2FAAACAB0AAAQpBI0ACgATAE+yChQVERI5sAoQsAzQALAARViwAy8bsQMbPlmwAEVYsAEvG7EBET5ZsgwDARESObAML7EKAbAKK1gh2Bv0WbADELETAbAKK1gh2Bv0WTAxAQMjEwUWFgcGBCMlBTI2NzYmJyUBHky1ywG5s9ULDP760f79AQd9nw4Lb2f+5AG2/koEjQEEwqCsxZkBcmVfbAQBAAACAEr/6gROBKMADwAfAEiyHCAhERI5sBwQsAjQALAARViwCC8bsQgbPlmwAEVYsAAvG7EAET5ZsAgQsRMBsAorWCHYG/RZsAAQsRsBsAorWCHYG/RZMDEFJiYCNzcSABceAgcHAgATJiYnJgYHBhcWFhcWNjc2AfaPxVgRBSABP+WPxFcQBBz+wq4JfW2V0R0VCAp+bJTOHxUQBJEBA5wrAQ0BRwYEjv6fKf7w/rUDE3iJBAXXtoVffI0EBdG8gwABAB0AAASaBI0ACQBMsgEKCxESOQCwAEVYsAUvG7EFGz5ZsABFWLAILxuxCBs+WbAARViwAC8bsQARPlmwAEVYsAMvG7EDET5ZsgIFABESObIHBQAREjkwMSEjAQMjEzMBEzMDz63+Spq1y60Bt5q0A3T8jASN/IsDdQAAAQAdAAAFsASNAA4AYLIIDxAREjkAsABFWLAALxuxABs+WbAARViwAi8bsQIbPlmwAEVYsAQvG7EEET5ZsABFWLAILxuxCBE+WbAARViwDC8bsQwRPlmyAQAEERI5sgcABBESObIKAAQREjkwMQETATMDIxMTASMLAiMTAc3dAhfvyrRHav3lheJMRLTLBI38cwON+3MBmwH7/GoDrP3b/nkEjQABAB0AAAMjBI0ABQAwsgUGBxESOQCwAEVYsAQvG7EEGz5ZsABFWLACLxuxAhE+WbEBAbAKK1gh2Bv0WTAxNyEHIRMz7AI3G/0Vy7SXlwSNAAEAHQAABH8EjQAMAEyyCg0OERI5ALAARViwBC8bsQQbPlmwAEVYsAgvG7EIGz5ZsABFWLACLxuxAhE+WbAARViwCy8bsQsRPlmyAAQCERI5sgYEAhESOTAxAQcDIxMzAzcBMwEBIwHCsEC1y7RfkgHD7f3MAXzMAgaV/o8Ejf3giQGX/fD9gwAB//b/6wObBI0ADgAwsgwPEBESOQCwAEVYsAAvG7EAGz5ZsABFWLAFLxuxBRE+WbELAbAKK1gh2Bv0WTAxATMDBgYnJiY3FwYXFjY3AuS3jBbsqK3CCLUMyFt+EQSN/MWjxAQEuaABwQQCb2QAAAEAKgAAAaoEjQADACSyAgQFERI5ALAARViwAi8bsQIbPlmwAEVYsAAvG7EAET5ZMDEzIxMz4LbKtgSNAAEAHQAABJoEjQALAGmyAQwNERI5ALAARViwCi8bsQobPlmwAEVYsAcvG7EHGz5ZsABFWLAELxuxBBE+WbAARViwAS8bsQERPlmyCAQHERI5fLAILxi0YAhwCAJxsqAIAV20YAhwCAJdsQMBsAorWCHYG/RZMDEhIxMhAyMTMwMhEzMDz7RW/bhXtcu0WQJIWrUB8v4OBI39/QIDAAEATP/uBEEEowAfAF+yHiAhERI5ALAARViwCy8bsQsbPlmwAEVYsAMvG7EDET5Zsg4LAxESObALELERAbAKK1gh2Bv0WbADELEZAbAKK1gh2Bv0WbIfCwMREjmwHy+xHAGwCitYIdgb9FkwMSUGBicuAjc3EgAXFhYXJyYnJgYHBhcWFhcWNzchNyED1j/wnpHPXREHIQE76LPWELEU2pTMIBwLDIVvpWot/u4aAcOWUVcDApD8nTsBFgE2BgTArwHTCAXIuJ9feogDBU7ukAABAB0AAAPiBI0ACQBJsgcKCxESOQCwAEVYsAQvG7EEGz5ZsABFWLACLxuxAhE+WbIIAgQREjmwCC+xAQGwCitYIdgb9FmwBBCxBwGwCitYIdgb9FkwMQEhAyMTIQchAyEDIf4IV7XLAvob/bs/AfkB8/4NBI2Z/pgAAAEAEv8TA+8FcwAsAHCyIC0uERI5ALAARViwCS8bsQkbPlmwAEVYsCMvG7EjET5ZsgQjCRESObAJELAM0LAJELAQ0LAMELEUAbAKK1gh2Bv0WbAEELEZAbAKK1gh2Bv0WbAjELAg0LAjELAn0LAgELEqAbAKK1gh2Bv0WTAxATYvAiQ3NjY3NzMHFhYHJzYnJiciBgcGFhYXFgcGBgcHIzcmJjcXBhYXMjYC2hKkfT7+/w0J3q8skSuRnQa0BSk3f3GSDAda70jFDAjTtyySLaK4BrQFfnx4lgExezYnF2bOiawR2d0cv4MBUTRFA15SPFVGJmi9hKoS4eMYwY8BZnACXAAAAQAGAAAD2ASiAB4AbbIaHyAREjkAsABFWLATLxuxExs+WbAARViwBi8bsQYRPlmyHgYTERI5sB4vsQAEsAorWCHYG/RZsAYQsQUBsAorWCHYG/RZsAjQsAAQsAzQsB4QsA/QsBMQsBfQsBMQsRkBsAorWCHYG/RZMDEBJQYHByUHITcXNjc3BzczNzY2FxYWByc2JyYGBwchAvT+giMyIQKEG/ydFglmIxSmFpwLF+qtp6oKthCtYH0QDQGJAfQBzlw1ApiWASnFcgF5atvwBQTSrgHiBwOZjnIAAAEAGQAAA98EjQAXAG+yABgZERI5ALAARViwAS8bsQEbPlmwAEVYsAwvG7EMET5ZsgAMARESObIIAQwREjmwCC+wA9B8sAMvGLAFsAorWNgb3FmwCBCwCrAKK1jYG9xZsA7QsAgQsBDQsAUQsBLQsAMQsBTQsAEQsBbQMDEBATMBMwchBwchByEHIzchNyE3ITczAzMBvQFZyf5vyxb+/wgSAQ8W/vcntSf+9hUBCQ7+9hXZtrkCTwI+/Yx2C0V23d12UHYCdAAAAQAdAAADzQSNAAUAM7IBBgcREjkAsABFWLAELxuxBBs+WbAARViwAi8bsQIRPlmwBBCxAQGwCitYIdgb9FkwMQEhAyMTIQOy/dCwtcsC5QP0/AwEjQAC/7AAAAPOBI0AAwAIAD2yAgkKERI5sAIQsAbQALAARViwAi8bsQIbPlmwAEVYsAAvG7EAET5ZsgUCABESObEIAbAKK1gh2Bv0WTAxISEBMwMnBwEhA8774gKGpnIKJv59AjQEjf7PbFf9JwADAEr/6gRYBKQAAwASACIAarIXIyQREjmwFxCwAtCwFxCwBNAAsABFWLALLxuxCxs+WbAARViwBC8bsQQRPlmwAtCwAi+y3wIBXbIfAgFdsQEBsAorWCHYG/RZsAsQsRYBsAorWCHYG/RZsAQQsR4BsAorWCHYG/RZMDEBITchASYCNzcSABcWFhIHBwIAEyYmJyYGBwYXFhYXFjY3NgM7/iwbAdT+qtbgGwUgAUDkj8RXEAYh/sSzCXxultAdFQgIf22Uzh8VAfmZ/V4FATv0LAEMAUgGBI7/AJ80/u/+wgMUeIgEBdm0hGB5kAQF0byEAAH/sAAAA84EjQAIADiyAgkKERI5ALAARViwAi8bsQIbPlmwAEVYsAAvG7EAET5ZsABFWLAELxuxBBE+WbIHAgAREjkwMTMjATMTIwMnB2S0Aoam8sedCioEjftzA1xsYAAAA//TAAADlQSNAAMABwALAGeyAAwNERI5sATQsAAQsArQALAARViwCi8bsQobPlmwAEVYsAAvG7EAET5ZsQMBsAorWCHYG/RZsAAQsAfQsAcvsh8HAV2y3wcBXbEEAbAKK1gh2Bv0WbAKELEJAbAKK1gh2Bv0WTAxISE3IREhNyETITchAsr9CRsC9/2KGwJ2ev0JGwL3mAF7mAFJmQABAB0AAASGBI0ABwBAsgEICRESOQCwAEVYsAYvG7EGGz5ZsABFWLAALxuxABE+WbAARViwBC8bsQQRPlmwBhCxAwGwCitYIdgb9FkwMSEjEyEDIxMhA7y2sP3MsLXLA54D9PwMBI0AAAH/1QAAA94EjQAMAEWyBg0OERI5ALAARViwCC8bsQgbPlmwAEVYsAMvG7EDET5ZsQIBsAorWCHYG/RZsAXQsAgQsQsBsAorWCHYG/RZsAfQMDEBASEHITcBAzchByETAln+fgKIG/yRGgGU/BgDPxz9m/4COv5fmZkBuAG1h5n+YAADAFEAAATzBI0AEgAYAB4AcbIHHyAREjmwBxCwFtCwBxCwHNAAsABFWLARLxuxERs+WbAARViwCC8bsQgRPlmyEBEIERI5sBAvsADQsgkIERESObAJL7AG0LAJELEVAbAKK1gh2Bv0WbAAELEbAbAKK1gh2Bv0WbAW0LAVELAc0DAxARYWBwYABwcjNyYmNz4CNzczAQIFEwYGBRIlAzY2A0nJ4Q8S/svrGLUYy+ERDJP4nBm1/bIfARh0oroDCh/+6nWguwQUE/XA0P7/DW5wEf28itF5CXb9rf7uHwJ0Dad8AQ8f/YwNqAABAH4AAAT1BI0AGgBdshkbHBESOQCwAEVYsAMvG7EDGz5ZsABFWLARLxuxERs+WbAARViwGS8bsRkbPlmwAEVYsAkvG7EJET5ZshgDCRESObAYL7AA0LAYELELAbAKK1gh2Bv0WbAI0DAxASQTEzMDBgAHAyMTJiYnJjcTMwMGFxYWFxMzArIBHzs0tTUk/ubgOLY4l7YUDQ00tjQJAgJkXYK2Abk6AWIBOP7I9/7bGP7fASEWwJpfZQE4/sdAQXKRFwLUAAABAAwAAARqBKEAIgBbsgAjJBESOQCwAEVYsBgvG7EYGz5ZsABFWLAPLxuxDxE+WbAARViwIS8bsSERPlmxIAGwCitYIdgb9FmwANCwGBCxBgGwCitYIdgb9FmwABCwDtCwIBCwEdAwMSUkEzc2JicmBgcGBxcWFwchNzcmJyYSJBcWEg8CAgc3ByECVQEfNAUThIyZ0xYMAQEOqhj+ShypYAEElAESp8jpBwMGKdSyG/5JnEMBjSSpxgMEza10OSniN52XAo7F1AE2qwQE/vjTLyz+zp0DlwABAGz/6wToBI0AGABrsgcZGhESOQCwAEVYsAIvG7ECGz5ZsABFWLAOLxuxDhE+WbAARViwFy8bsRcRPlmwAhCxAQGwCitYIdgb9FmwBdCyCAIXERI5sAgvsA4QsQ8BsAorWCHYG/RZsAgQsRQBsAorWCHYG/RZMDEBITchByEDNhcWFgcGBgc3JDc2JicmBwMjAcX+pxsDbxv+nzqVlbnFDA7/6A8BFxkNXXJ+tma0A/SZmf7WNAQEzri8xwKXBeluggIDMv3NAAEAR//sBDcEowAfAG2yEyAhERI5ALAARViwCy8bsQsbPlmwAEVYsAMvG7EDET5ZsAsQsA/QsAsQsRIBsAorWCHYG/RZsAMQsBbQsBYvst8WAV2yHxYBXbEXAbAKK1gh2Bv0WbADELEdAbAKK1gh2Bv0WbADELAf0DAxAQYEJy4CNzcSABcWFhcjJiYnJgYHIQchBhcWFhcWNwPmI/7tyIrBVhEMJQE54LjVCLMFbXiQwi4BuRv+UggGCHln+0wBervTBASM+5hYAQgBMAYE1bZyggQDub2YQkFugAQI+gAAAv/EAAAGqASNABcAIAB6sgghIhESObAIELAZ0ACwAEVYsBUvG7EVGz5ZsABFWLAGLxuxBhE+WbAARViwDS8bsQ0RPlmwFRCxCQGwCitYIdgb9FmwDRCxEAGwCitYIdgb9FmyFwYVERI5sBcvsRgBsAorWCHYG/RZsAYQsRoBsAorWCHYG/RZMDEBFhYHBgQjIRMhAwYGByM3MzI2NzcTIQMHAwUyNjc2JicFLa7NCw3+/sr+Nq/+bXM2ypxDFiJjgSESbQL5TRpJAQJyng0LZGYC1gS/narMA/T9yunUAaSkvmsCHP5KmP5ZAXxmV2kFAAACAB0AAAa1BI0AEgAbAIeyARwdERI5sAEQsBTQALAARViwAi8bsQIbPlmwAEVYsBEvG7ERGz5ZsABFWLALLxuxCxE+WbAARViwDy8bsQ8RPlmyAA8RERI5fLAALxiyBAsCERI5sAQvsAAQsQ4BsAorWCHYG/RZsAQQsRMBsAorWCHYG/RZsAsQsRUBsAorWCHYG/RZMDEBIRMzAwUWFgcGBCMhEyEDIxMzAQMFMjY3NiYnAUMCNVq0TAEArs0LC/7+y/41V/3LV7XLtAKESgECcp8NC2JoAooCA/5KAQS/najOAfL+DgSN/bL+WQF6aFZqBQAAAQBtAAAE7QSNABYAWbIHFxgREjkAsABFWLACLxuxAhs+WbAARViwDC8bsQwRPlmwAEVYsBUvG7EVET5ZsAIQsQEBsAorWCHYG/RZsAXQsggMAhESObAIL7ESAbAKK1gh2Bv0WTAxASE3IQchAzYXFhYHAyMTNicmJyYHAyMBxv6nHANvG/6fOpGavMQUOrU5BwYWqIGzZrUD9JmZ/tYyAwLYu/6cAWU4LpEGAzL9zQABAB3+mwSFBI0ACwBDsgEMDRESOQCwAi+wAEVYsAYvG7EGGz5ZsABFWLAKLxuxChs+WbAARViwAC8bsQARPlmwBNCxCAGwCitYIdgb9FkwMSEhAyMTIRMzAyETMwO7/o0+tT7+isu0sAI1sLT+mwFlBI38CwP1AAACAB//+wPbBI0ADAAVAF6yExYXERI5sBMQsAPQALAARViwCy8bsQsbPlmwAEVYsAovG7EKET5ZsAsQsQEBsAorWCHYG/RZsgIKCxESObACL7EUAbAKK1gh2Bv0WbAKELEVAbAKK1gh2Bv0WTAxASEDBRYWBwYEJyUTIQE2Njc2JiclAwPB/cAyARmtvhQW/uvB/kzKAvL+KXGUBAJyZ/7/SgP3/uABBL6erc4EAQSN/AoCeGdbZgUB/lkAAAL/if6sBJoEjQAOABUAV7ISFhcREjmwEhCwBNAAsAwvsABFWLAELxuxBBs+WbAARViwCi8bsQoRPlmxBgGwCitYIdgb9FmwDBCwCdCwBhCwDtCwENCwBBCxEQGwCitYIdgb9FkwMTc2NjcTIQMzAyMTIQMjEwUlEyEDBwItbIYnYgLysItWtTz81Du2VwEjAjKV/nNMEEWWYvi3Aeb8C/4UAVT+rQHrAwMDXP6QQ/7tAAAB/68AAAYEBI0AFQCTsg0WFxESOQCwAEVYsAkvG7EJGz5ZsABFWLANLxuxDRs+WbAARViwES8bsREbPlmwAEVYsAIvG7ECET5ZsABFWLAGLxuxBhE+WbAARViwFC8bsRQRPlmyDAINERI5fLAMLxiyoAwBXbRgDHAMAl2xBAGwCitYIdgb9FmwAdCyCAQMERI5sAwQsA/QshMMBBESOTAxAScDIxMjASMBAzMTMxMzAzMBMwEBIwOgaFe2WFr+d/EB6vDOy1tYtllPAXzn/jwBENQB9QH+CgH2/goCWwIy/gMB/f4DAf39w/2wAAEAEf/uA94EoAAoAIWyGikqERI5ALAARViwDy8bsQ8bPlmwAEVYsBsvG7EbET5ZsA8QsQcBsAorWCHYG/RZsgwPGxESObIoDxsREjmwKC+yvygBXbIvKAFdtN8o7ygCXbSvKL8oAnGxJwGwCitYIdgb9FmyFCcoERI5sh8bDxESObAbELEhAbAKK1gh2Bv0WTAxATI2NzYnJicmBwYHBzY2FxYWBwYHFhYHDgInJiY3MxQXFjY3NiUnNwIBf5IKBxkzlmtFQxG2EPu3vtcKCvJVYAUHfeKJtdMFstmBqQsY/vuEGwKfYVc2JU0EAi0sUQGWsAIDpo24YiGGXWudVAICtZqxBQNmW7wCAZgAAAEAHwAABKEEjQAJAEyyAwoLERI5ALAARViwAC8bsQAbPlmwAEVYsAcvG7EHGz5ZsABFWLACLxuxAhE+WbAARViwBS8bsQURPlmyBAACERI5sgkAAhESOTAxATMDIxMBIxMzAwP1rMqynP0Jq8qynASN+3MDf/yBBI38gQABAB4AAARXBI0ADABpsgoNDhESOQCwAEVYsAQvG7EEGz5ZsABFWLAILxuxCBs+WbAARViwAi8bsQIRPlmwAEVYsAsvG7ELET5ZsgYEAhESOXywBi8YsqAGAV20YAZwBgJdsQEBsAorWCHYG/RZsgoBBhESOTAxASMDIxMzAzMBMwEBIwGXbVe1y7RYWAHS6P3XAXDaAfb+CgSN/gMB/f28/bcAAAH/xAAABHkEjQAQAE+yBBESERI5ALAARViwAC8bsQAbPlmwAEVYsAEvG7EBET5ZsABFWLAILxuxCBE+WbAAELEDAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WTAxAQMjEyEDBgYHIzc3NjY3NxMEecu0r/5tdTbHlUsWKWB8IBJvBI37cwP0/c/o1wSkAgeeuG4CHAABAFj/6ARUBI0AEQBEsgESExESOQCwAEVYsAIvG7ECGz5ZsABFWLAQLxuxEBs+WbAARViwCC8bsQgRPlmyAQIIERI5sQ0BsAorWCHYG/RZMDEBFwEzAQ4CIyInNxY3MjcDMwHeFAGJ2f3aPmN8UDU0EzodXlLryAInbQLT/GRwZTQJlQgBbwOfAAABAB3+rASGBI0ACwBDsgkMDRESOQCwAi+wAEVYsAYvG7EGGz5ZsABFWLAKLxuxChs+WbAARViwBC8bsQQRPlmxAAGwCitYIdgb9FmwCdAwMSUzAyMTIRMzAyETMwPXqGeiO/xsy7SwAjWwtZj+FAFUBI38CwP1AAABAFoAAAQuBI0AEgBJsg8TFBESOQCwAEVYsAgvG7EIGz5ZsABFWLARLxuxERs+WbAARViwAC8bsQARPlmyDgAIERI5fLAOLxixBAGwCitYIdgb9FkwMSEjEwYnJiY3EzMDBhcWFxY3EzMDZLVVj526xBQ5tToHBxaqgrBmtAHDMQIC1r4BY/6cOC6TAwMxAjIAAAEAHQAABf0EjQALAE2yBgwNERI5ALAARViwAi8bsQIbPlmwAEVYsAYvG7EGGz5ZsABFWLAKLxuxChs+WbAARViwAC8bsQARPlmxCQGwCitYIdgb9FmwBdAwMSEhEzMDIRMzAyETMwUy+uvLtLABe7C2sAF7sLUEjfwLA/X8CwP1AAABAB3+rAX+BI0ADwBTsgwQERESOQCwAi+wAEVYsAYvG7EGGz5ZsABFWLAKLxuxChs+WbAARViwDi8bsQ4bPlmwAEVYsAQvG7EEET5ZsQABsAorWCHYG/RZsA3QsAnQMDElMwMjEyETMwMhEzMDIRMzBU6pZ6M8+vTLtLABe7C2sAF7sLaY/hQBVASN/AsD9fwLA/UAAgBQ//sEmwSNAAwAFQBesgYWFxESObAGELAN0ACwAEVYsAovG7EKGz5ZsABFWLAHLxuxBxE+WbAKELEJAbAKK1gh2Bv0WbIMBwoREjmwDC+xFAGwCitYIdgb9FmwBxCxFQGwCitYIdgb9FkwMQEWFgcGBCclEyE3IQMTNjY3NiYnJQMDMK2+FBb+7MH+SrD+uhsB+Uy1c5EEAnFo/wBKAtYEvp6r0AQBA/SZ/kr9wAJ5ZlpnBQH+WQD//wAf//sFoQSNACYCCAAAAAcB4wP3AAAAAgAf//sD0wSNAAoAEwBPsgsUFRESObALELAG0ACwAEVYsAgvG7EIGz5ZsABFWLAHLxuxBxE+WbIKBwgREjmwCi+xEgGwCitYIdgb9FmwBxCxEwGwCitYIdgb9FkwMQEWFgcGBCclEzMDEzY2NzYmJyUDAmitvhQW/uzC/kzKsky1cZQEBHJp/v9KAtYEvp6r0AQBBI3+Sv3AAnhnVmsFAf5ZAAABACD/6gQaBKEAHwB2sgQgIRESOQCwAEVYsBUvG7EVGz5ZsABFWLAcLxuxHBE+WbAA0LAcELEDAbAKK1gh2Bv0WbIIHBUREjl8sAgvGLRgCHAIAl2yoAgBXbRgCHAIAnGxBwGwCitYIdgb9FmwFRCxDgGwCitYIdgb9FmwFRCwEtAwMRMWFhcWNjchNyE2JyYmJyYGBwc2JBcWEgcHAgAnJiYn0wd0e4y8Lf5IGwGsCAYMfGmAmyK1JgEPxdPhGwoi/szevdwIAXp3egMDur6YQ0JsfgQEhHYBvNYEBP7O70/++P7JBgTTswACAB3/6gX3BKIAFQAmAI2yAScoERI5sAEQsCLQALAARViwCS8bsQkbPlmwAEVYsA4vG7EOGz5ZsABFWLAGLxuxBhE+WbAARViwAC8bsQARPlmyCgYJERI5fLAKLxi0YApwCgJxsqAKAV20YApwCgJdsQUBsAorWCHYG/RZsA4QsRsBsAorWCHYG/RZsAAQsSMBsAorWCHYG/RZMDEFLgI3BwMjEzMDMzYAFxYWEgcHAgATNicmJicmBgcGFxYWFxY2NwOfhshgEddZtcu0V8lAASzTj8RXEAYh/sWwBwQJfm6S0B8WCAl+bZbOHhACifWPAf4CBI3+CfkBEwQEjv8AnzP+7/7BAoFGR3qMBAXRtYRneo8EBdTAAAAC/98AAARABI4ADQAVAGOyEBYXERI5sBAQsAfQALAARViwBy8bsQcbPlmwAEVYsAAvG7EAET5ZsABFWLAJLxuxCRE+WbIRBwAREjmwES+xCwGwCitYIdgb9FmyAQsRERI5sAcQsRIBsAorWCHYG/RZMDEjASYmNzY2MwUDIxMhARMGFwUTJyIGIQF9XFsGC/nJAcjKtVT+4P61thbjAQJC/naRAhEmlWSmuAH7cwHf/iEDKa8BAQF8AWsAAAH/+gAABCwEjQANAGeyCw4PERI5ALAARViwCC8bsQgbPlmwAEVYsAIvG7ECET5ZsgcCCBESOXywBy8YsqAHAV20YAdwBwJdtGAHcAcCcbEEAbAKK1gh2Bv0WbAB0LAIELELAbAKK1gh2Bv0WbAHELAM0DAxASMDIxMjNzMTIQchAzMCZdtZtVnbG9pYAuUb/dA92wH9/gMB/ZcB+Zn+oAAB/6/+rAYEBI0AGQCvshQaGxESOQCwAy+wAEVYsBAvG7EQGz5ZsABFWLAULxuxFBs+WbAARViwGC8bsRgbPlmwAEVYsAUvG7EFET5ZsABFWLAJLxuxCRE+WbAARViwDS8bsQ0RPlmyFhAFERI5fLAWLxiyoBYBXbRgFnAWAl20YBZwFgJxsQgBsAorWCHYG/RZsgAIFhESObAFELEBAbAKK1gh2Bv0WbAIELAL0LIPFggREjmwFhCwEtAwMQETMwMjEyMDIwMjEyMBIwEDMxMzEzMDMwEzBEDLm1WkPHDcZVe2WFr+d/EB6vDOy1tYtllPAXznAlD+Rv4WAVQB9v4KAfb+CgJbAjL+AwH9/gMB/QAAAQAe/qwEVwSNABAAgrIAERIREjkAsAMvsABFWLALLxuxCxs+WbAARViwDy8bsQ8bPlmwAEVYsAYvG7EGET5ZsABFWLAJLxuxCRE+WbINCQsREjl8sA0vGLRgDXANAnGyoA0BXbRgDXANAl2xCAGwCitYIdgb9FmyAAgNERI5sAYQsQEBsAorWCHYG/RZMDEBATMDIxMjASMDIxMzAzMBMwIuARGhVaU8Xv7TbVe1y7RYWAHS6AJJ/k3+FgFUAfb+CgSN/gMB/QABAB4AAAUNBI0AFAB5sgUVFhESOQCwAEVYsAYvG7EGGz5ZsABFWLATLxuxExs+WbAARViwCS8bsQkRPlmwAEVYsBEvG7ERET5ZsgAGCRESOXywAC8YsqAAAV20YABwAAJdtGAAcAACcbAE0LAAELEQAbAKK1gh2Bv0WbIIEAAREjmwDNAwMQE3NzMHMwEzAQEjAScHIzcjAyMTMwE/UyeRLTYB0uj91gFw2v7UQSmRJUxYtcuvAo8B5OUB/v28/bcB9gHPzv4KBI0AAQBpAAAFOgSNAA4Af7IHDxAREjkAsABFWLAGLxuxBhs+WbAARViwCi8bsQobPlmwAEVYsAIvG7ECET5ZsABFWLANLxuxDRE+WbIIBgIREjl8sAgvGLKgCAFdtGAIcAgCXbRgCHAIAnGxAQGwCitYIdgb9FmwBhCxBQGwCitYIdgb9FmyDAEIERI5MDEBIwMjEyE3IQM3ATMBASMCeWxXtrD+uRsB/FlZAdHp/dYBcNoB9v4KA/WY/gMBAfz9vP23AAACAFD/6gU4BKIAJAAxAKeyFjIzERI5sBYQsCXQALAARViwCy8bsQsbPlmwAEVYsBsvG7EbGz5ZsABFWLAELxuxBBE+WbAARViwAC8bsQARPlmyAgQbERI5sAIvsAsQsQwBsAorWCHYG/RZsAQQsRQBsAorWCHYG/RZsAIQsScBsAorWCHYG/RZshYUJxESObAAELEkAbAKK1gh2Bv0WbIiJCcREjmwGxCxLgGwCitYIdgb9FkwMQUmJwYnJgITNxIANwcGBgIXFhcWFzI3JhMSEhcWFhcWBwIHFhcBFhc2EzY3NSYnJgYHBODMm5WX//4eAyABGtsRdaNLDhF3QmkwP6QfGu+4lqADAQ0p20h//f0HlscmDAMKinuEBhUENzwCBAFQARIgAQMBJwSeAZn+0ZCrSikBCcQBLgECARsFBMyrQW7+2rYMAgGAz2OHARVpPC61BgXy0QD//wB0AAAEZQSNACYB0wAAAAcCJgAQ/t4AAf+2/qwEbQSNABAAW7IAERIREjkAsAcvsABFWLABLxuxARs+WbAARViwDy8bsQ8bPlmwAEVYsAwvG7EMET5ZsABFWLAKLxuxChE+WbIAAQcREjmxBAGwCitYIdgb9FmyCwEHERI5MDEBATMBEzUXAyMTIwMBIwEBMwIoAWHk/hTVq1SlPGrV/pTjAfj+6MgC2wGy/bT+VQME/hcBVAG6/kYCVQI4AAEAbP6sBX8EjQAPAFiyCxARERI5ALACL7AARViwCC8bsQgbPlmwAEVYsA4vG7EOGz5ZsABFWLAELxuxBBE+WbEAAbAKK1gh2Bv0WbAIELEHAbAKK1gh2Bv0WbAL0LAAELAN0DAxJTMDIxMhEyE3IQchAyETMwTPqWeiPPxsr/6mGwNvG/6glQIzsLaY/hQBVAP0mZn8pAP1AAABAFoAAAQtBI0AGABSsgQZGhESOQCwAEVYsAsvG7ELGz5ZsABFWLAXLxuxFxs+WbAARViwAC8bsQARPlmyEQsAERI5fLARLxixBwGwCitYIdgb9FmwBNCwERCwFNAwMSEjEwYHByM3JiY3EzMDBhcWFzczBzY3EzMDY7VVZ2cnkieooRI6tTsGAwqNL5EtWXNmtAHDIgrHxRLVrgFj/pwwKocc8O4NIAIyAAEAHQAAA+wEjQATAEeyEBQVERI5ALAARViwAC8bsQAbPlmwAEVYsAkvG7EJET5ZsABFWLASLxuxEhE+WbIEEgAREjmwBC+xDwGwCitYIdgb9FkwMRMzAzYXHgIHAyMTNicmJyYHAyPotVWWlH2tUA06tToHBhaqfLdmtQSN/j0yAgNgunn+nAFlOC6RBgMz/c4AAgAv//EFYQShAB4AJwBssg4oKRESObAOELAg0ACwAEVYsA8vG7EPGz5ZsABFWLAALxuxABE+WbIjAA8REjmwIy+yvyMBXbEUAbAKK1gh2Bv0WbAF0LAjELAM0LAAELEaAbAKK1gh2Bv0WbAPELEfAbAKK1gh2Bv0WTAxBS4CNzcmJjcXBhYXNgAXHgIHByEGFxYWFxY3FwYDJgYHBTYnJiYDH5PqahwBkJYLlQlIUjgBN9WT0VkTFPzLDQwTl3eInS1+XY7PKgKFEQsThg8BjPWPCAvJoQFjbRDtARYEAojwmoZQQml0AQJIk1UEEQPBqQFjPV5nAAACAEH/7ARkBJwAFwAhAGGyEyIjERI5sBMQsBjQALAARViwAC8bsQAbPlmwAEVYsAgvG7EIET5Zsg0IABESObANL7AAELETAbAKK1gh2Bv0WbAIELEYAbAKK1gh2Bv0WbANELEdAbAKK1gh2Bv0WTAxAR4CBwcGACcuAjc3BTYnJiYnJgcnNhMWNzY3JQYXFhYCkpTaZBEQIv673pXPWRMUAzIUDBScdYSjKopQsnNCIP17EQwRiAScA4nzlHX3/s8EA4XwmoYFWUJmdQECSZRV++0El1h9AWE/XWkAAQAR/+gD8ASNABsAabILHB0REjkAsABFWLACLxuxAhs+WbAARViwDC8bsQwRPlmwAhCxAQGwCitYIdgb9FmwBNCyGwwCERI5sBsvsRkBsAorWCHYG/RZsgUbGRESObIQDAIREjmwDBCxEwGwCitYIdgb9FkwMQEhNyEHARYWBw4CJyYmNzMUFhcWNjc2JicnNwLg/dQcAyAU/nSTsAgHhuCGtdIFsnJmhqYMCnBziB4D9Jl+/p8UuYdzp1gDBbWcWGMCAnRnWGMFAa4AAwBK/+oEWASkAA4AFQAcAHayFx0eERI5sBcQsADQsBcQsBDQALAARViwBy8bsQcbPlmwAEVYsAAvG7EAET5ZsQ8BsAorWCHYG/RZshkABxESOXywGS8YsqAZAV20YBlwGQJdtGAZcBkCcbETAbAKK1gh2Bv0WbAHELEWAbAKK1gh2Bv0WTAxBSYCNzcSABcWFhIHBwIAJxY2NyEGFgEmBgchNiYCANbgGwUgAUDkj8RXEAUc/sLgjMgu/YgPgwEeisouAncRgBAFATv0LAEMAUgGBI7/AJ4v/vP+uJ8FvbmlxwN0Bb63pMcAAf//AAAD2ASiACcAs7IlKCkREjkAsABFWLAeLxuxHhs+WbAARViwDC8bsQwRPlmyBgweERI5sAYvsg8GAV2wAdCwAS9ACR8BLwE/AU8BBF2yAAEBXbECBLAKK1gh2Bv0WbAGELEHBLAKK1gh2Bv0WbAMELELAbAKK1gh2Bv0WbAO0LAHELAT0LAGELAU0LACELAY0LABELAZ0LAeELAi0LIPIgFdsj0iAV2yTCIBXbAeELEkAbAKK1gh2Bv0WTAxASEHIQcHJQclBgclByE3FzY3Nwc3Fzc3IzczNzY2FxYWByc2JyYGBwGDAZEV/nkQBQGJFf5/Jy8ChBv8nRYJRCYRoRabBBCdFpMIH+aqp6oKthCtWXoYAqh5XBIBeQFvRQKYlgEdZzEBeQESXHk62uYFBNKuAeIHA4WEAAEAHv/wA98EoQAiAJmyAyMkERI5ALAARViwFi8bsRYbPlmwAEVYsAkvG7EJET5ZsiIJFhESObAiL7IMIgFdtBAiICICXbAO0LENBLAKK1gh2Bv0WbAB0LAJELEEAbAKK1gh2Bv0WbAiELAe0LAeL0AJHx4vHj8eTx4EXbIAHgFdsBPQsRAEsAorWCHYG/RZsBYQsRsBsAorWCHYG/RZsBAQsCDQMDEBBQYWFxY3FwYnJiY3BzczNyM3MzYkFxYXByYjJgMhByEHIQL2/nQEdnFQeQ1wbLrbCp4VkhSTFY49AQ/EXIokWW/5WgGTFv5xEwGQAZYBfosCAx2XHQIC4sEBeW1509kCAh+VHwT+6XltAAAEAB0AAAemBKIAAwARAB8AKQCrsigqKxESObAoELAB0LAoELAN0LAoELAT0ACwAEVYsCYvG7EmGz5ZsABFWLAoLxuxKBs+WbAARViwBC8bsQQbPlmwAEVYsCAvG7EgET5ZsABFWLAjLxuxIxE+WbAEELAL0LALL7AC0LACL7QAAhACAl2xAQOwCitYIdgb9FmwCxCxFQOwCitYIdgb9FmwBBCxHAOwCitYIdgb9FmyIiYgERI5sicgJhESOTAxJSE3IQMWFgcHBgYnJiY3NzY2AwYWFxY2Nzc2JicmBgcBIwEDIxMzARMzBu794xkCHpKQoAwHD9CXjqEKBw/TSQdLS1FsDgkHTElRcAv+Lq3+Spq1y60Bt5q0vY4DUwS+jkmewAQEu5BJn8D+VlpmAgJpXVVcZAICbV/8uQN0/IwEjfyLA3UAAAL/3QAABHAEjQAWAB8AeQCwAEVYsAwvG7EMGz5ZsABFWLADLxuxAxE+WbIGAwwREjmwBi+wFdCxAQGwCitYIdgb9FmwBNCwBhCwCtCwCi+0vgrOCgJdQAkOCh4KLgo+CgRdsQgBsAorWCHYG/RZsBTQsAoQsBfQsAwQsR8BsAorWCHYG/RZMDElIwcjNyM3MzcjNzMTBRYWBwYEIyUHMycFNjY3NiYnJQJI+iC2ILsbuhC7G7pnAbWuygsL/vvG/ukQ+9EBAnOcDQxoX/7ptLS0mFmYAlABBMifqtMBWfECAn1lYXAEAQAB//v/8wJ4AyIAJABvALAARViwDS8bsQ0XPlmwAEVYsBcvG7EXET5ZsgAXDRESOXywAC8YtoAAkACgAANdtqAAsADAAANxsA0QsQcCsAorWCHYG/RZsAAQsSQCsAorWCHYG/RZshIkABESObAXELEeArAKK1gh2Bv0WTAxExc2Njc2JiMiByM2NjMWFgcGBxYHBgYnJiY1MxQWMzI2NzYnJ+ROQl0HBj4ycB2cC599fo4FB5h2BAW1hXeVl0I6QFsHDY1XAcsBAj02MTFdZXkDdmF3QiuBb4ECAnxsMjdANWYFAQAC//AAAAJzAxUACgAOAEYAsABFWLAJLxuxCRc+WbAARViwBS8bsQURPlmyDAUJERI5sAwvsADQsQMCsAorWCHYG/RZsAbQsAwQsAjQsg0JBRESOTAxATMHIwcjNyE3ATMBMxMHAgtoF2cemh7+lQ0Bv6T+QdA6FgErgqmpcAH8/hYBIx4AAAEAFv/zAo8DFQAbAGMAsABFWLABLxuxARc+WbAARViwDS8bsQ0RPlmwARCxBAKwCitYIdgb9FmyBw0BERI5sAcvsAXQsA0QsBHQsA0QsRMCsAorWCHYG/RZsAcQsRkCsAorWCHYG/RZsAcQsBvQMDETEyEHIQc2MzIWBwYGJyYmJxcWNzI2NzYmJyIHRnYB0xj+sDtAQm2BBAaug3WRBZQJb0FWCAZBPEM/AYYBj4SrHIVzfJsCAoBjAWUCUkQ8RgEqAAACAB7/8gJoAyAAEgAdAFgAsABFWLAALxuxABc+WbAARViwDC8bsQwRPlmwABCxAQKwCitYIdgb9FmyBgwAERI5sAYvsgQGDBESObETArAKK1gh2Bv0WbAMELEYArAKK1gh2Bv0WTAxAQcjJgc2FzIWBwYGJiY3NzYkMwMmBwcGFjI2NzYmAjwNC/5WUmZqdgYGsPySCwUWAQnUx109BAc6flcGBzwDH4MD4U4Ck2x6nwSsjDjM7v5uAlEiR2BXPTlKAAEALwAAArMDFQAGADMAsABFWLAFLxuxBRc+WbAARViwAi8bsQIRPlmwBRCxBAKwCitYIdgb9FmyAAQFERI5MDEBASMBITchAqH+O60Bxf5OFwJaArH9TwKTggAAAwAL//QCeAMjABQAIAAsAIEAsABFWLASLxuxEhc+WbAARViwCC8bsQgRPlmyKggSERI5fLAqLxi0UCpgKgJxtqAqsCrAKgNxtoAqkCqgKgNdtCAqMCoCcrEYArAKK1gh2Bv0WbICKhgREjmyDRgqERI5sAgQsR4CsAorWCHYG/RZsBIQsSQCsAorWCHYG/RZMDEBBgcWBwYGByMmJjc2NyY3NjYXFhYDNiYjIgYHBhYzMjYTNiYjIgYHBhYzMjYCcweIbAQDo30QfpAFB5xbBASjeHSJxAVCNj5VBwZCNj5WLwU2MDZJBgY4LjJOAktxSTt2aYADA3digkk3aWt9AgJ3/kIxN0A0MjdBAYoqNTwvKzU9AAACADb/9wJ3AyIAEwAhAFQAsABFWLAILxuxCBc+WbAARViwDy8bsQ8RPlmyAg8IERI5sAIvsA8QsRECsAorWCHYG/RZsAIQsRQCsAorWCHYG/RZsAgQsRwCsAorWCHYG/RZMDEBBiMiJjc2NhcWFgcHBgQjJzcyNicWNzc2JyYmIyIGBwYWAcJNWmt6Bgavgn+FCwQW/v/UFA2Hm1hRPQgDAwU3LT1VBwY7AUBAjnF7qAICsZAz0uEBf16iBEs+HR0vOFxCPEwAAAEAkwKLAxgDIgADABIAsAIvsQEBsAorWCHYG/RZMDEBITchAv39lhsCagKLlwADAQsEPwMbBnEAAwAPABkAYgCwAEVYsA0vG7ENGT5ZsAfQsAcvsALQsAIvQAt/Ao8CnwKvAr8CBV2wANCwAC9AEQ8AHwAvAD8ATwBfAG8AfwAIXbANELESB7AKK1gh2Bv0WbAHELEYB7AKK1gh2Bv0WTAxATMHIwc0NjMyFhUUBiMiJjcWMzI2NzYmIyICU8j2f5tlR0NZYUZFXFIFPiE6BwQiIkQGcbbeRmhdREVmW0RQMycfNAAAAQAdAAAD7wSNAAsAZLIJDA0REjkAsABFWLAGLxuxBhs+WbAARViwBC8bsQQRPlmyCwYEERI5sAsvtB8LLwsCXbK/CwFdsQABsAorWCHYG/RZsAQQsQIBsAorWCHYG/RZsAYQsQgBsAorWCHYG/RZMDEBIQMhByETIQchAyEDMf39QgJZG/zzywMHG/2uOgIEAg7+iZcEjZn+sgAAA/+a/kcESQRSACoAOABGAJQAsABFWLAnLxuxJxk+WbAARViwFi8bsRYTPlmwJxCwKtCwKi+xAAOwCitYIdgb9FmyCBYnERI5sAgvsg8IFhESObAPL7SQD6APAl2xOAGwCitYIdgb9FmyHDgPERI5siAIJxESObAWELExAbAKK1gh2Bv0WbAIELE8AbAKK1gh2Bv0WbAnELFDAbAKK1gh2Bv0WTAxAQcWBwcGBwYnIicGBwYXFxYWBwYGBCcmJjc2NjcmNzY3Jjc3Njc2HwIFAScGBwYWMzI2Njc2JicDBhYXFjY3NzYmJyYGBwQvkCEJBRyefJdJTUIICWCwurUIBpP+6obC4gcFcV8mBgqLggsBEZ6AoyZrAXH89U+CEQmBclyvZQkKU27fBnVZY5wPAgdwXWKcEAOnAVxhJK5jTQIXODlGBAIGlINjnGADBY55WYswLz98XmywDL5nUwICEwH78gc/eUlSM1o5P0QDAp1WbwICeFsWVnUCAnVeAAIAS//kBIcEUgATACUAcLIiJicREjmwIhCwC9AAsABFWLALLxuxCxk+WbAARViwDy8bsQ8ZPlmwAEVYsAIvG7ECET5ZsABFWLATLxuxExE+WbIAAgsREjmyDgsCERI5sAIQsRkBsAorWCHYG/RZsAsQsSIBsAorWCHYG/RZMDElAicmJicmNzYSNhcWFhc3MwMTIwEGFxYWFxY3Njc3NicmJyYGBwMyl/yZsQcDCBSNz358qiBQsMoQqP3iBwMFbGCgbzEXBQYdM4OMtBry/vIHBNS1OVanARuJAwSKde791v3wAe08P2+AAwPQXWIjbmSvBgXtzAAAAgBDAAAE5QWvABwAJQBjsh4mJxESObAeELAc0ACwAEVYsAMvG7EDHT5ZsABFWLABLxuxARE+WbAARViwEy8bsRMRPlmyHQEDERI5sB0vsQABsAorWCHYG/RZsgkAHRESObADELElAbAKK1gh2Bv0WTAxAQMjEwUyFgcGBRYXFgcHBhcWFwcjJicmNzc2JiclBTI2NzYmJyUBbW29/QHd3uoRFf71kBAEBhYHAwQhA7kgBQMJFA1paP62ASWiuRANen/+tQJ0/YwFrwHXv+RwQKszNZU3KDoqGS1GLkWKdIkGngGIgnR+BAEAAQBEAAAFagWwAAwAZbIKDQ4REjkAsABFWLAELxuxBB0+WbAARViwCC8bsQgdPlmwAEVYsAIvG7ECET5ZsABFWLALLxuxCxE+WbIGAgQREjmwBi+yzwYBXbIvBgFdsQEBsAorWCHYG/RZsgoBBhESOTAxASMDIxMzAzMBMwEBIwIjsnG8/btviQJd9/1hAbzWAo79cgWw/X4Cgv01/RsAAAEAJQAABB4GAAAMAFGyBQ0OERI5ALAEL7AARViwCC8bsQgZPlmwAEVYsAIvG7ECET5ZsABFWLALLxuxCxE+WbIGAggREjmwBi+xAQGwCitYIdgb9FmyCgEGERI5MDEBIwMjATMDMwEzAQEjAbSCV7YBC7WZcgF85P4yATfIAfX+CwYA/I4BrP4K/bwAAQBEAAAFSgWwAAsATLIJDA0REjkAsABFWLADLxuxAx0+WbAARViwBy8bsQcdPlmwAEVYsAEvG7EBET5ZsABFWLAKLxuxChE+WbIAAwEREjmyBQMBERI5MDEBAyMTMwMzATMBASMBeXm8/bt2CQLB+vz6AiHXArz9RAWw/XgCiP0y/R4AAQAlAAAEBgYYAAwAU7IFDQ4REjkAsABFWLAELxuxBB8+WbAARViwCC8bsQgZPlmwAEVYsAIvG7ECET5ZsABFWLALLxuxCxE+WbIABAIREjmyBgQCERI5sgoHABESOTAxASMDIwEzAxcBMwEBIwE8Blu2AQ+2pwIByPn92QGFzAHz/g0GGPxzAQGw/gT9wgAAAgAdAAAEDwSNAAoAFQBFshUWFxESObAVELAC0ACwAEVYsAIvG7ECGz5ZsABFWLAALxuxABE+WbENAbAKK1gh2Bv0WbACELEVAbAKK1gh2Bv0WTAxMxMFHgIHBwIAIRMDFzI2Nzc2JyYnHcsBUpbaZRAFHP6i/voIlpS88xkGEjhFrASNAQSN+Jow/vz+ywP0/KMB28cxomZ8BgAAAQBH/+wENwSjABwAULITHR4REjkAsABFWLALLxuxCxs+WbAARViwAy8bsQMRPlmyAAsDERI5sg4DCxESObALELESAbAKK1gh2Bv0WbADELEaAbAKK1gh2Bv0WTAxAQYEJy4CNzcSABcWFhcjJiYnJgYHBhcWFhcWNwPmI/7tyIrBVhEMJQE54LjVCLMFbXiTyh8bBgV2bPtMAXq70wQEjPuYWAEIATAGBNW2coIEBcq2nmN1iwQK/AAAAwAdAAAD5wSNAA0AFgAeAH6yGB8gERI5sBgQsA3QsBgQsBbQALAARViwAS8bsQEbPlmwAEVYsAAvG7EAET5ZshcAARESObAXL7K/FwFdtB8XLxcCXbTfF+8XAl2xDgGwCitYIdgb9FmyBw4XERI5sAAQsQ8BsAorWCHYG/RZsAEQsR4BsAorWCHYG/RZMDEzEwUWFgcGBxYWBwYGBwMDFzI2NzYmJycXMjY3NicnHcsBfr/CCgrST1YECO3Av0L0bpUMC1dk+dlvjgoU1+EEjQEFpIyqUxqOXZ21AwIS/oUBZlpUYgWOAV1ToAUBAAL/pQAAA+MEjQAHAAoAVLIECwwREjmwBBCwCtAAsABFWLAELxuxBBs+WbAARViwAi8bsQIRPlmwAEVYsAcvG7EHET5ZsggCBBESObAIL7EAAbAKK1gh2Bv0WbIKAgQREjkwMQEhAyMBMwEjASEDAvn+CZzBApuiAQGw/iMBhGgBF/7pBI37cwGuAfsAAQD8BI4CJwY9AAcADACwBS+wANCwAC8wMQEXBgcHIzc2AcBnSxQYtBEdBj1XbmaEcsEAAAIBEQTfA1wGigAOABIAOACwBC+xCwSwCitYIdgb9FmwDtCwDi+wCdCwCS+wDhCwEtCwEi+wENCwEC+wEhCwEdAZsBEvGDAxAQYGByMmJic1FwYXFjY3JTMXIwNcCp1/D4GTApIEgz1ZDv7hiUtWBbBibQIDb2ABAnMCATk828YAAv0qBL7/ZgaTABQAGACfALADL7IPAwFdsv8DAV2ycAMBXbAH0LAHL0ALDwcfBy8HPwdPBwVdsAMQsAnQsAkvsAcQsQ0DsAorWCHYG/RZsAMQsRIDsAorWCHYG/RZsA0QsBTQsAcQsBfQsBcvQBEPFx8XLxc/F08XXxdvF38XCHFAFw8XHxcvFz8XTxdfF28XfxePF58XrxcLXbAV0LAVL0AJHxUvFT8VTxUEXTAxAwYGIyImJgcGByc2NjMyFhcWNzY3JxcHB6YMXEIlcyQURR5TDF9GHjIYQyVEHlu02YIFgFRjQwsBA1UUUmYaDykDA1n8Ad8BAAACANIE4QT7BpUABgAKAFQAsAMvsAHQsAEvtg8BHwEvAQNdsAMQsALQGbACLxiwARCwBNCwAxCwBdCwBS+wAhCwBtAZsAYvGLADELAJ0LAJL7AH0LAHL7AJELAK0BmwCi8YMDEBMxMjJwcjATMDIwIbleuviMDSA1nQ8ZYF6P75np4BtP79AAIAIgTPA5MGggAGAAoAYgCwAS+wANAZsAAvGLABELAD0LADL7AF0LAFL7YPBR8FLwUDXbAC0LAAELAE0BmwBC8YsAEQsAjQfLAILxi2DwgfCC8IA12wB9AZsAcvGLAIELAK0LAKL7YPCh8KLwoDXTAxASMnByMBMwUjAzMDk6+KwNABR5T+j3yWtgTPnZ0BBlUBAgACAM4E5AR5Bs8ABgAVAIMAsAEvsADQGbAALxiwARCwBtCwBi+2DwYfBi8GA12wAtCwARCwA9CwAy+wABCwBNAZsAQvGLABELAH0HywBy8Ysr8HAV1ADQ8HHwcvBz8HTwdfBwZdsA7QsA4vQAsfDi8OPw5PDl8OBV2yCAcOERI5sA2wCitY2BvcWbIUDgcREjkwMQEjJwcHATMXNzc2NicnNxYWBwYGBwcDlpSg3rYBNreoEytWDmEfC3dyAwNESgoE5Lm4AQEGfIMFC2oFAl0HUEM2RRA9AAACAM0E5AOWBtMABgAYAI8AsAEvsAbQsAYvQAkPBh8GLwY/BgRdsgABBhESORmwAC8YsAYQsALQsAEQsAPQsAMvsAAQsATQGbAELxiwBhCwCtCwCi9ACx8KLwo/Ck8KXwoFXbAN0LANL7Q/DU8NAl2wChCwD9CwDy+wDRCxEwawCitYIdgb9FmwChCxFgawCitYIdgb9FmwExCwGNAwMQEjJwcjJTM3BgYjIiYHBgcnNjYzMhY3NjcDlpOl2rcBT4DrC109KXEnPiJPC11AJnYmQCIE5J2d9OZGWUoBBEYTRV1JAQJGAAEAHQAABAMFxAAHACwAsABFWLAGLxuxBhs+WbAARViwBC8bsQQRPlmwBhCxAwGwCitYIdgb9FkwMQEzAyEDIxMhA061Uf3QsLXLAjAFxP4w/AwEjQAAAgERBN8DXAaKAA4AEgCUALAEL7ELBLAKK1gh2Bv0WbAO0LAOL7AJ0LAJL7AEELAR0HywES8YQBMPER8RLxE/EU8RXxFvEX8RjxEJXUAXDxEfES8RPxFPEV8RbxF/EY8RnxGvEQtxQBU/EU8RXxFvEX8RjxGfEa8RvxHPEQpysA/QsA8vQA8PDx8PLw8/D08PXw9vDwddsBEQsBLQGbASLxgwMQEGBgcjJiYnNRcGFxY2NycXBwcDXAqdfw+BkwKSBIM9WQ45osJxBbBibQIDb2ABAnMCATk82wHEAQAAAgESBN4DRQcDAAsAGgBFALADL7EJBLAKK1gh2Bv0WbAL0LALL7AH0LAHL7ALELAa0LAaL7AU0LAUL7IZGhQREjmyDRQZERI5sBOwCitY2BvcWTAxAQYGJyYmNRcGFzI3Jzc3Njc2JiM3FxYHBgcHA0ULoXx6kYwGgIQbvxIvYQcEQFIMF/QEA5sKBbFmbQICcGACcgJzEnwDCDMaG1MBDH1iGD8A//8AkAKIAvQFvQMHAccAcwKYABMAsABFWLAHLxuxBx0+WbAQ0DAxAP//AGMCmALmBa0DBwIgAHMCmAATALAARViwCS8bsQkdPlmwDdAwMQD//wCJAosDAgWtAwcCIQBzApgAEACwAEVYsAEvG7EBHT5ZMDH//wCRAooC2wW4AwcCIgBzApgAEwCwAEVYsBIvG7ESHT5ZsBPQMDEA//8AogKYAyYFrQMHAiMAcwKYABAAsABFWLAFLxuxBR0+WTAx//8AfgKMAusFuwMHAiQAcwKYABkAsABFWLASLxuxEh0+WbAY0LASELAk0DAxAP//AKkCjwLqBboDBwIlAHMCmAATALAARViwCC8bsQgdPlmwHNAwMQAAAQCB/+cFQQXIAB8AULILICEREjkAsABFWLAMLxuxDB0+WbAARViwAy8bsQMRPlmyAAwDERI5shADDBESObAMELEUAbAKK1gh2Bv0WbADELEdAbAKK1gh2Bv0WTAxAQYAJy4CJyYSEiQXFgAXIyYnJicmBgIHBxQWFhcEEwTcLP6244/bgwoLXdABFJ7VAQQIuwY9T5uH35cTA02SZQEyZwHP4P74BAOE/p2iAW0BHo4DBP7534pTawQEmP7U1FR8zWwDCwFRAAABAIT/6AVDBccAIQBfshQiIxESOQCwAEVYsA0vG7ENHT5ZsABFWLADLxuxAxE+WbIRAw0REjmwDRCxEwGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FmyIA0DERI5sCAvsR8BsAorWCHYG/RZMDElBgQnLgInJjc2EiQXFhYXIwIlJgYCFxQWFhcWNxMhNyEEtkn+3rOY5IgLBQ0ezwEtsdf+Erkc/ueW7JICUZ1s3oA8/rkcAgC+ZXEDA4f/oFF+2AFcsAME6dMBGggEuv6gyHvTcAEFbgFGmwACAEQAAAUWBbAADAAXAEiyCxgZERI5sAsQsBfQALAARViwAS8bsQEdPlmwAEVYsAAvG7EAET5ZsAEQsQ0BsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZMDEzEwUyBBcWBwcGAgQHAwMXMjY2EicmJidE/QGPvQETPTkUAxjZ/qjMCcbNlPioOxAWwJ0FsAG9pp6/G9L+t7gBBRL7iwF/7AExf6G1BAAAAgCF/+gFXgXIABMAIABIsgghIhESObAIELAY0ACwAEVYsAkvG7EJHT5ZsABFWLAALxuxABE+WbAJELEXAbAKK1gh2Bv0WbAAELEdAbAKK1gh2Bv0WTAxBSYmAicmEhIkFx4CFxYHBwYCBAE0JicmBgISFhcWNhICgo3ZgAsMY9UBEZmM2YILBQkGHdH+0QFvqZmT85UGq5aR85IVA4kBAZ6tAV8BGI4DA4f/nlZUK9P+qLYDh8DuBAS8/qf+cO4EBrgBXQAAAgCF/wQFZAXIABUAIwBIsgMkJRESObADELAa0ACwAEVYsA4vG7EOHT5ZsABFWLAFLxuxBRE+WbAOELEZAbAKK1gh2Bv0WbAFELEgAbAKK1gh2Bv0WTAxJRcHJwYjJiYCJyYSEiQXFhYSFxYCAhMmJicmBgIXFhYXFjYSA6zQi/84OorWhAsMZdMBEJqN3H8LCmHJZwOplpL1lAMDq5aS9ZA9yHHyCgGGAQOhrQFhARWOAwOJ/wCerf6h/vwC4szkBAS+/qbFyO4EBrsBYQABALsAAAMRBI0ABgAzALAARViwBS8bsQUbPlmwAEVYsAEvG7EBET5ZsgQFARESObAEL7EDAbAKK1gh2Bv0WTAxISMTBTclMwJMtKH+giACFCIDoYqwxgAAAQA5AAAD+QSjABgATwCwAEVYsBAvG7EQGz5ZsABFWLAALxuxABE+WbEYAbAKK1gh2Bv0WbAC0LIEEBgREjmwEBCxCQGwCitYIdgb9FmwEBCwDNCyFhgQERI5MDEhITcBNzY3NiYnJgYHBzYkFx4CBwYHASEDmfygGQIyKYAMC2VbdaYVshEBHL9rqlYIEOj+XgJdiwHBI29zUWYCBJB4AbPrAgNTk2C7uf6zAAH/gf6hBBAEjQAaAFEAsA0vsABFWLACLxuxAhs+WbEBAbAKK1gh2Bv0WbAE0LIFDQIREjmwBS+wDRCxEgGwCitYIdgb9FmwBRCxGQGwCitYIdgb9FmyGgUZERI5MDEBITchBwEeAgcGBgQnJic3FhcWJDc2JicnNwMN/Y8bA1kW/kRnlUcJD6X+66i10T6Sq64BABYTlaRBDwP0mX7+cBN7u2ug/Y0CAmSMVwQE0qybpwUBbwAAAv/T/rYEMASNAAoADgBHALAARViwCS8bsQkbPlmwAEVYsAYvG7EGET5ZsQwBsAorWCHYG/RZsADQsAYQsAPQsAYQsAXQsAUvsAwQsAjQsAkQsA3QMDElMwcjAyMTITcBMwEhEwcDcMAbvzm2Ov0yFQNwyfynAfKMJZaX/rcBSXcEF/wJAv43AAH/1f6aBEQEjAAcAF6yBx0eERI5ALAOL7AARViwAS8bsQEbPlmxAwGwCitYIdgb9FmyBwEOERI5sAcvsAXQshEBDhESObAOELETAbAKK1gh2Bv0WbAHELEZAbAKK1gh2Bv0WbAHELAc0DAxExMhByEDNhceAgcGACcmJzcWFxY2NzYmJyYGB1jtAv8e/ZSCb5B6rE0NGP6z6cezRHPInuITD3t6W4YqAXYDFqv+c0MCAX7chu7+1AQEb4xjBQLdpIWzBAM+UQAAAQAr/rYENwSNAAYAKbIBBwgREjkAsAEvsABFWLAFLxuxBRs+WbEDAbAKK1gh2Bv0WbAA0DAxAQEjASE3IQQj/Me/Ay79NhsDjQQZ+p0FP5gAAAIBEwTXA3MGzwALAB4AXwCwAy+xCQSwCitYIdgb9FmwB9CwBy+wC9CwCy+wBxCwD9CwDy+wEtCwEi+yPxIBXbAPELAU0LAUL7ASELEYBLAKK1gh2Bv0WbAPELEcBLAKK1gh2Bv0WbAYELAe0DAxAQYGJyYmNRcGFzI3EwYGIyImBwYHJzY2MzIWFjc2NwNMCaR/e5KQBH2DHLgJXkYpgidFHlIMYUMkeCQTQyIFr2ZyAgJ1YAJ1AnYBDVBnTwEDVRRTZUYKAQNWAAAB/73+mQDMAJkAAwASALAEL7AC0LACL7AA0LAALzAxEyMTM3O2Wbb+mQIAAAIASf/yBqcEoAAWACIAorILIyQREjmwCxCwGdAAsABFWLANLxuxDRs+WbAARViwCi8bsQobPlmwAEVYsAIvG7ECET5ZsABFWLAALxuxABE+WbANELEPAbAKK1gh2Bv0WbISDQAREjmwEi+0HxIvEgJdsr8SAV2xEwGwCitYIdgb9FmwABCxFgGwCitYIdgb9FmwAhCxFwGwCitYIdgb9FmwChCxGgGwCitYIdgb9FkwMSEhBSMmAjc3EgAXMhYzIQchAyEHIQMhBTcTJyYGBwYXFBYXBeP9lf7ZVdTfGwYgAT/mXMhgAnQb/a47AgUb/f1CAlr8eXOh4prUGw0BfHQOBQE68zIBCgFAAhGZ/rKY/okKAwNpDALewnAxkKUEAAIAP/6lBD4EpgAZACcAVLIbKCkREjmwGxCwDdAAsBUvsABFWLANLxuxDRs+WbAVELEAAbAKK1gh2Bv0WbIEFQ0REjmwBC+xGgGwCitYIdgb9FmwDRCxIgGwCitYIdgb9FkwMQUEEwYnLgI3NjY3NhcWEgcHBgIEJyYnNxYBFjY/AjYmJyYGBwYWAUABWJ6IqX61VA0KVkaP0djVHicjw/7jqZJ8M20BN2WnNRcGA3Z0hrURD3PBBwHWbAQBgeCLbMdJlwQF/sz9+dr+s6cDAj2MMgH8BFxVllqMoAQD1qWPwwAB/w/+RQEPAJgADAAoALANL7AARViwBC8bsQQTPlmxCQGwCitYIdgb9FmwDRCwDNCwDC8wMSUDBgYnJic3FhcyNzcBDycbvI80PxsuMYUkKZj++6CuAgIRnw4Cs/z///+s/qEEOwSNAAYCTCsA////4/6aBFIEjAAGAk4OAP///7n+tgQWBI0ABgJN5gD//wAtAAAD7QSjAAYCS/QA//8AVv62BGIEjQAGAk8rAP//ACX/5wQ5BKYABgJlwQD//wBq/+YD8gWyAgYAGvoA//8AHf6lBBwEpgAGAlPeAP//AEH/6AQ2BcgCBgAcAAD//wEMAAADYgSNAAYCSlEA////Cf5GAa8EOgAGAJwAAP///wn+RgGvBDoABgCcAAD//wAuAAABnwQ6AAYAjQAA////ev5ZAZ8EOgAmAI0AAAAGAKTLCv//AC4AAAGfBDoABgCNAAAAAQAd/+cD1ASiACEAYgCwAEVYsBUvG7EVGz5ZsABFWLAQLxuxEBE+WbAARViwHy8bsR8RPlmxAgGwCitYIdgb9FmyCR8VERI5sAkvsQgDsAorWCHYG/RZsBUQsQwBsAorWCHYG/RZshkJCBESOTAxJRYXMjY3NicnNwEmJyYGBwMjEzY2FxYWFwEWFgcGBicmJwFlSlVhiQwT7V0ZARg8Y2qGFIC0gB3ovGezXP68jpcHDPCya3G1MwKDZasDAZIBITwCApOG/Q8C8dXcBARYXP6yEp18r9cCAjEAAAIAZP/nBHgEpgARACAAOwCwAEVYsAovG7EKGz5ZsABFWLAALxuxABE+WbAKELEVAbAKK1gh2Bv0WbAAELEcAbAKK1gh2Bv0WTAxBSYmAjc3NjY3NhcWEgcHBgIGAScmJyYCBxUUFhcWNjc2AhmVyFgSAhBjUaLrz+AKBBOg/gECBB/XseQHg3md1xwKFQSWAQyoFH7kUqUFBf7i8Te2/uCZAt4//ggG/tj5IZuuBAXsz1wAAAEAYgAABEoFsAAGADqyAQcIERI5ALAARViwBS8bsQUdPlmwAEVYsAIvG7ECET5ZsAUQsQMBsAorWCHYG/RZsgADBRESOTAxAQEjASE3IQQ2/Ou/AxL9PhsDfQU9+sMFGJgAAgAf/+YEEQYAABMAIABmsgUhIhESObAFELAd0ACwCi+wAEVYsA4vG7EOGT5ZsABFWLAILxuxCBE+WbAARViwBS8bsQURPlmyBw4IERI5sgwOCBESObAOELEXAbAKK1gh2Bv0WbAFELEcAbAKK1gh2Bv0WTAxAQYGBwYnJicHIwEzAzYXHgIXFicmJicmBwMWFxY2NzYECRBZQ4vFx14rngELtW2CumeeVwUCuAlzZKl1UTqmisYaCQIYedJMmwUEk4IGAP3CkAQBaMR1PUJ1iQMErv4ppgQF3rpaAAEAQ//oA/YEVAAcAE2yAB0eERI5ALAARViwDy8bsQ8ZPlmwAEVYsAgvG7EIET5ZsQABsAorWCHYG/RZsgQPCBESObISCA8REjmwDxCxFgGwCitYIdgb9FkwMSUWNjc3DgInJgI3NxIAFxYWByM0JicmAgcHFBYB6mGdG6wQhsxrytUZAx4BLtimzQKqcV+byQsBdoICcmIBZalfAwQBLOobAQABNAYE2axrgwQG/vjiJJSXAAIAR//nBIUGAAASACAAY7IEISIREjmwBBCwHdAAsAcvsABFWLAELxuxBBk+WbAARViwCi8bsQoRPlmwAEVYsA0vG7ENET5ZsgYEChESObILBAoREjmxGAGwCitYIdgb9FmwBBCxHQGwCitYIdgb9FkwMRM2EjYXFhcTMwEjNwYnJiYnJjczBhcUFhcWNxMmJyYGB1ATltmAtGFptf71mw6EvJu7DAQGtQUBeGuidVY8nY7GGwIfoAENhgMEgAI1+gB4kQQE5bs/PCksiaMCBKMB9JMEBdy2AAIAJP5QBDYEVAAbACoAf7ILKywREjmwCxCwJtAAsABFWLAELxuxBBk+WbAARViwBy8bsQcZPlmwAEVYsAwvG7EMEz5ZsABFWLAWLxuxFhE+WbIGBBYREjmwDBCxEQGwCitYIdgb9FmyFAQWERI5sBYQsSEBsAorWCHYG/RZsAQQsSYBsAorWCHYG/RZMDETNjc2FxYXNzMDBgAnJic3FhcEEzcGJyYmJyY3MwYXFhYXFjcTJicmBwYHUBdilfLBXyubrCP+59a4nEF4ngEEUROIsJu7CgQGtQcFCXRjondVOqC+ajgPAh/BlOAGBJGB/BTw/vIEBGaLWgQGATJVhAQE5bo/PD5DdYkEBKUB7pYGA7tkdwAAAgBB/+gEKARSABIAIQBFsggiIxESObAIELAX0ACwAEVYsAAvG7EAGT5ZsABFWLAJLxuxCRE+WbEWAbAKK1gh2Bv0WbAAELEeAbAKK1gh2Bv0WTAxAR4CBwcOAicmJicmNzc2EjYDFhYXFjY3NicmJicmBgYCgIrDWw8DFZ31j6LXGgwJAxWg8PcDe3CM0h0FAQN8cW2yYQROBI/6lxag/40EBMuuUFEWowEFiv1fh6QEBeLKKy6IqQQEjPsAAAL/1/5gBBAEUgARAB4AZrIAHyAREjmwG9AAsABFWLAJLxuxCRk+WbAARViwBi8bsQYZPlmwAEVYsAMvG7EDEz5ZsABFWLAALxuxABE+WbIHCQMREjmwCRCxFQGwCitYIdgb9FmwABCxGgGwCitYIdgb9FkwMQUmJwMjATcHNhcWFhcWBwcGABMmJicmBwMWFxY2NzYCDLtkYbUBBJoPiL6guAkDBwkq/vONC3hknnJbPZ2OzRkIFQR7/fYF2gF+lQQE3sFAPjvt/uECy3aIAwSZ/fmPBQPktVwAAgBG/mAENQRUABEAHgBtsgMfIBESObADELAc0ACwAEVYsAYvG7EGGT5ZsABFWLADLxuxAxk+WbAARViwCC8bsQgTPlmwAEVYsAwvG7EMET5ZsgUGDBESObIKBgwREjmxFwGwCitYIdgb9FmwAxCxHAGwCitYIdgb9FkwMRM2ABcWFzczASMTBicuAicmNwYXFhYXFjcTJicmBk8gARnOuWEnnv78tWKCrGaeWwcEvAcGCXdjmXddQZWQzAIe+QE9BQSEc/omAgR8BAFnwnc4RD5Ed4sDBJcCE4kGBeUAAgBF/+sD+wRTABUAHwBisgAgIRESObAX0ACwAEVYsAgvG7EIGT5ZsABFWLAALxuxABE+WbIaCAAREjmwGi+0vxrPGgJdsQwBsAorWCHYG/RZsAAQsRABsAorWCHYG/RZsAgQsRYBsAorWCHYG/RZMDEFJgI3NxI3NhcWEgcHIQYWFxY3FwYGAyYGBwU3NicmJgIM2O8VAx2glsbDwhsT/T4Pk4uNkixAtgJurjQCEQUJBw1oEwIBL+ccAQGekwUG/vLYepfJBARdgTk4A8wFm6EBGzczU10AAgA1/lAEKARSABwAKgB/sgsrLBESObALELAn0ACwAEVYsAcvG7EHGT5ZsABFWLAELxuxBBk+WbAARViwDC8bsQwTPlmwAEVYsBYvG7EWET5ZsgYHFhESObAMELERAbAKK1gh2Bv0WbIUBxYREjmwFhCxIgGwCitYIdgb9FmwBBCxJwGwCitYIdgb9FkwMRM2EjYXFhc3MwMGACcmJzcWFxYTNwYnJiYnJyY3MwYXFhYXFjcTJicmBgdVFIvPf8FfK5uuI/7p1qiNQW+I/U8ahLGMrBQEAga2BwMEaWKeeVU8nYq3GwIepAELhQMEkYD8Aun+/QQEU4tJAgYBFXKEBATBqTY+OztDd4kEB6cB8ZQGA9bBAP//AKkAAAMEBbcABgAVsAAAAwAr/+0EJwSgAB4AJwAzAHSyMDQ1ERI5sDAQsB7QsDAQsCHQALAARViwDS8bsQ0bPlmwAEVYsBsvG7EbET5ZsABFWLAALxuxABE+WbIVDRsREjmyHQAVERI5sR8BsAorWCHYG/RZsiINGxESObIrDRsREjmwDRCxMQGwCitYIdgb9FkwMQUmJjc2Njc3JiY3NjYXFhYHBgYHBxM2NzMGBxcjJwYnFjcDBwYHBhYTBhcXNzY3NiYjIgYBgpi/CQVkbltNKwQHv4t1oQYDVk5pzFwaohuflrxIsbR9iN9dawsKXF4HNCNJXAsGPDcyWA8CnnxWk0c6a3M4eJsCAo5uRYQ2Rf7qd5vip89fcpwEUQEwPkhaSVIC9j1GLTJBTjM+RwAB/+gAAAMjBI0ADQBhsgsODxESOQCwAEVYsAovG7EKGz5ZsABFWLAELxuxBBE+WbINBAoREjmwDS+xAAmwCitYIdgb9FmwAdCwBBCxAgGwCitYIdgb9FmwARCwBtCwB9CwDRCwDNCwCdCwCNAwMQEFAyEHIRMHNzcTMwMlAkX+8EkCNxv9FVmOF45btFEBEgKNVP5elwH+K4QrAgv+MFQAAv+aAAAF/wSNAA8AEgCNshITFBESObASELAK0ACwAEVYsAovG7EKGz5ZsABFWLAELxuxBBE+WbAARViwCC8bsQgRPlmyDwoEERI5sA8vsr8PAV2xAAGwCitYIdgb9FmwBBCxAg+wCitYIdgb9FmyEQoEERI5sBEvsQYBsAorWCHYG/RZsAoQsQwBsAorWCHYG/RZshIKBBESOTAxASEDIQchEyEDIwEhByEDIQUhEwVT/kI1Ahcb/Tsq/nnTzQNNAxgb/fQuAcP8NQE0TgIV/oCVAS3+0wSNlv605wImAAACAB0AAAOkBI0ADAAVAFmyAxYXERI5sAMQsBXQALAARViwAC8bsQAbPlmwAEVYsAsvG7ELET5ZsgMLABESObADL7IPAAsREjmwDy+xCQGwCitYIdgb9FmwAxCxDQGwCitYIdgb9FkwMRMzBxcWFgcGBCMnByMBAxcyNjc2JifotSSSvdwLDP7+1LsqtQFCSqZ8oA4La2sEjcsBAcClrMQB7AMq/loBcGdbbwUAA//0/8cEogS2ABYAIAAqAGqyBissERI5sAYQsBzQsAYQsCfQALAARViwEi8bsRIbPlmwAEVYsAcvG7EHET5ZshkHEhESObIaEgcREjmwEhCxHAGwCitYIdgb9FmyIxIHERI5siQHEhESObAHELEmAbAKK1gh2Bv0WTAxARYXFgIGBicmJwcnNyY3NxIAFxYXNxcBBhcBJicmBgcGATYnARYXFjY3NgP/MAsNMp7ylo5vYJ6lXxsHJAE+45pvWZ/8WgESAjc8bpzSHRICmAIO/c86ZZXOIhUD+l5lg/66+4YCAkZwAb+p9DYBCwE9BAJNZwH86kJBAq41BQTkyH4BCT4+/VcuBQPNwngAAAIAHQAABNAEjQATABcAlrIDGBkREjmwAxCwF9AAsABFWLAMLxuxDBs+WbAARViwEC8bsRAbPlmwAEVYsAIvG7ECET5ZsABFWLAGLxuxBhE+WbIVDAIREjmwFS+yExUQERI5sBMvsg8TAV2xAAGwCitYIdgb9FmwFRCxBAGwCitYIdgb9FmwABCwCNCwCdCwExCwCtCwExCwDtCwCRCwFtCwF9AwMQEjAyMTIQMjEyM3MzczByE3MwczASE3IQTAYJG0Vv24V7WTVxpXHrUeAkgetBtS/HMCSCP9twNP/LEB8v4OA0+Xp6enp/6kxQABAB3+RgSaBI0AEwBbsggUFRESOQCwAEVYsA8vG7EPGz5ZsABFWLASLxuxEhs+WbAARViwAy8bsQMTPlmwAEVYsA0vG7ENET5ZsAMQsQgBsAorWCHYG/RZsgwPDRESObIRDQ8REjkwMQUGBiciJzcWFzI3NwEDIxMzARMzA8UWvZQzQRouMoohD/5OmrXLrQG3mrRZp7oCEp8OAr5lA2j8jASN/IsDdf//ABkCHwIPArYCBgARAAAAAgARAAAE8wWwAA4AHQBwALAARViwBS8bsQUdPlmwAEVYsAAvG7EAET5ZsgMABRESObADL7LPAwFdsp8DAXGyLwMBXbRvA38DAnKxAgGwCitYIdgb9FmwENCwABCxEQGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwAxCwHdAwMTMTIzczEwUyBBIHBwIAIRMjAxcyADc2JyYmJycDM1lzuxu7bwF6sgEBcBcKLP5q/s2e81i51AEnLCMLD7CU31T0ApqXAn8Bsv7Hwkn+wv6FApr+AwEBCOa4gZuvBAH+HwACABEAAATzBbAADgAdAHCyDx4fERI5sA8QsAbQALAARViwBi8bsQYdPlmwAEVYsAAvG7EAET5ZsAPQsAMvsi8DAV2yzwMBXbECAbAKK1gh2Bv0WbAQ0LAAELESAbAKK1gh2Bv0WbAGELEaAbAKK1gh2Bv0WbADELAc0LAd0DAxMxMjNzMTBTIEEgcHAgAhEyMDFzIANzYnJiYnJwMzWXO7G7tvAXqyAQFwFwos/mr+zZ7zWLnUAScsIwsPsJTfVPQCmpcCfwGy/sfCSf7C/oUCmv4DAQEI5riBm68EAf4fAAEAPQAABAEGAAAaAGUAsBgvsABFWLAELxuxBBk+WbAARViwES8bsRERPlmwAEVYsAkvG7EJET5Zsi8YAV2yDxgBXbIWERgREjmwFi+xEwGwCitYIdgb9FmwAdCwBBCxDgGwCitYIdgb9FmwFhCwGdAwMQEjAzYXFhYHAyMTNicmJyYHAyMTIzczNzMHMwK59TWOuZiTE3a1dwYFEZSmeIa11sQbwxu1HfQE0v7kmwQCzbn9OwLIMSqMAwSy/PwE0peXlwABAKgAAAUJBbAADwBOALAARViwCi8bsQodPlmwAEVYsAIvG7ECET5ZsgYCChESObAGL7EFAbAKK1gh2Bv0WbAB0LAKELEJAbAKK1gh2Bv0WbAN0LAGELAO0DAxASMDIxMjNzMTITchByEDMwO03467jtAbzzn+OxwERRz+OzngAzf8yQM3lwFEnp7+vAAAAf/0/+0ClAVAAB4AbQCwAEVYsBkvG7EZGT5ZsABFWLALLxuxCxE+WbAZELAd0LAdL7IAHQFdsBLQsQ8BsAorWCHYG/RZsAHQsAsQsQYBsAorWCHYG/RZsBkQsRwBsAorWCHYG/RZsBPQsBkQsBbQsBkQsBjQsBgvMDEBIwMGFxYzMjcHBiMmJjcTIzczNyM3MxMzAzMHIwczAl7gOAMCB04hNw5BQ2xsDDbWG9Qfvxm/LrQuxRnEH+ECWv6wGhZOCpcSApuDAU2Xuo8BBv76j7r///+vAAAEiwc2AiYAJQAAAQcARAFpATYAEwCwAEVYsAQvG7EEHT5ZsAzcMDEA////rwAABJkHNgImACUAAAEHAHUB8wE2ABMAsABFWLAFLxuxBR0+WbAN3DAxAP///68AAASLBzYCJgAlAAABBwCeAPkBNgATALAARViwBC8bsQQdPlmwENwwMQD///+vAAAErwchAiYAJQAAAQcApQEBAToAEwCwAEVYsAUvG7EFHT5ZsA7cMDEA////rwAABIsG/QImACUAAAEHAGoBMwE2ABYAsABFWLAELxuxBB0+WbAU3LAg0DAx////rwAABIsHkgImACUAAAEHAKMBfgFBAAwAsAQvsBTcsBfQMDH///+vAAAEnQeTAiYAJQAAAAcCJwGCASL//wB0/kIE+QXJAiYAJwAAAAcAeQHC//f//wA7AAAEsQdCAiYAKQAAAQcARAE3AUIAEwCwAEVYsAYvG7EGHT5ZsA3cMDEA//8AOwAABLEHQgImACkAAAEHAHUBwQFCAAkAsAYvsA7cMDEA//8AOwAABLEHQgImACkAAAEHAJ4AxwFCABMAsABFWLAGLxuxBh0+WbAR3DAxAP//ADsAAASxBwkCJgApAAABBwBqAQEBQgAMALAGL7Ah3LAM0DAx//8ASQAAAhkHQgImAC0AAAEHAET/7gFCABMAsABFWLACLxuxAh0+WbAF3DAxAP//AEkAAAMdB0ICJgAtAAABBwB1AHcBQgAJALACL7AG3DAxAP//AEkAAALiB0ICJgAtAAABBwCe/34BQgATALAARViwAi8bsQIdPlmwCdwwMQD//wBJAAADCQcJAiYALQAAAQcAav+4AUIADACwAi+wGdywBNAwMf//ADsAAAV3ByECJgAyAAABBwClATUBOgATALAARViwCC8bsQgdPlmwDdwwMQD//wB3/+cFDQc4AiYAMwAAAQcARAGKATgAEwCwAEVYsAovG7EKHT5ZsCTcMDEA//8Ad//nBQ0HOAImADMAAAEHAHUCFAE4AAkAsAovsCXcMDEA//8Ad//nBQ0HOAImADMAAAEHAJ4BGgE4ABMAsABFWLAKLxuxCh0+WbAo3DAxAP//AHf/5wUNByMCJgAzAAABBwClASIBPAATALAARViwCi8bsQodPlmwJtwwMQD//wB3/+cFDQb/AiYAMwAAAQcAagFUATgADACwCi+wONywI9AwMf//AGf/5wUgBzYCJgA5AAABBwBEAWQBNgATALAARViwCi8bsQodPlmwFNwwMQD//wBn/+cFIAc2AiYAOQAAAQcAdQHuATYACQCwAC+wFdwwMQD//wBn/+cFIAc2AiYAOQAAAQcAngD0ATYAEwCwAEVYsAovG7EKHT5ZsBjcMDEA//8AZ//nBSAG/QImADkAAAEHAGoBLgE2AAwAsAAvsCjcsBPQMDH//wCoAAAFMgc2AiYAPQAAAQcAdQG9ATYACQCwAS+wC9wwMQD//wAz/+gDzwYAAiYARQAAAQcARADbAAAAEwCwAEVYsBgvG7EYGT5ZsC3cMDEA//8AM//oBAsGAAImAEUAAAEHAHUBZQAAAAkAsBgvsC7cMDEA//8AM//oA88GAAImAEUAAAEGAJ5rAAATALAARViwGC8bsRgZPlmwMdwwMQD//wAz/+gEIQXrAiYARQAAAQYApXMEAAkAsBgvsDbcMDEA//8AM//oA/YFxwImAEUAAAEHAGoApQAAAAwAsBgvsEHcsCzQMDH//wAz/+gDzwZcAiYARQAAAQcAowDwAAsADACwGC+wNdywONAwMf//ADP/6AQPBl4CJgBFAAAABwInAPT/7f//AEb+QgPmBFICJgBHAAAABwB5AT7/9///AEX/6gPgBgACJgBJAAABBwBEAMAAAAATALAARViwCC8bsQgZPlmwIdwwMQD//wBF/+oD8AYAAiYASQAAAQcAdQFKAAAACQCwCC+wItwwMQD//wBF/+oD4AYAAiYASQAAAQYAnlAAABMAsABFWLAILxuxCBk+WbAl3DAxAP//AEX/6gPgBccCJgBJAAABBwBqAIoAAAAMALAIL7A13LAg0DAx//8ALgAAAccF/wImAI0AAAEGAESc/wATALAARViwAi8bsQIZPlmwBdwwMQD//wAuAAACywX/AiYAjQAAAQYAdSX/AAkAsAIvsAbcMDEA//8ALgAAApAF/wImAI0AAAEHAJ7/LP//ABMAsABFWLACLxuxAhk+WbAJ3DAxAP//AC4AAAK3BcYCJgCNAAABBwBq/2b//wAWALAARViwAi8bsQIZPlmwDdywGdAwMf//AB8AAAQYBesCJgBSAAABBgClagQACQCwAy+wHdwwMQD//wBF/+gEHwYAAiYAUwAAAQcARADJAAAAEwCwAEVYsAAvG7EAGT5ZsCTcMDEA//8ARf/oBB8GAAImAFMAAAEHAHUBUwAAAAkAsAAvsCXcMDEA//8ARf/oBB8GAAImAFMAAAEGAJ5ZAAATALAARViwAC8bsQAZPlmwKNwwMQD//wBF/+gEHwXrAiYAUwAAAQYApWEEAAkAsAAvsC3cMDEA//8ARf/oBB8FxwImAFMAAAEHAGoAkwAAAAwAsAAvsDjcsCPQMDH//wBb/+gEHgYAAiYAWQAAAQcARADNAAAAEwCwAEVYsAcvG7EHGT5ZsBXcMDEA//8AW//oBB4GAAImAFkAAAEHAHUBVwAAAAkAsAYvsBbcMDEA//8AW//oBB4GAAImAFkAAAEGAJ5dAAATALAARViwBi8bsQYZPlmwGdwwMQD//wBb/+gEHgXHAiYAWQAAAQcAagCXAAAADACwBi+wKdywFNAwMf///6X+RQPsBgACJgBdAAABBwB1AR4AAAAJALABL7AS3DAxAP///6X+RQPsBccCJgBdAAABBgBqXgAADACwAS+wJdywENAwMf///68AAASfBuMCJgAlAAABBwBwAQQBPgATALAARViwBC8bsQQdPlmwDNwwMQD//wAz/+gEEQWtAiYARQAAAQYAcHYIABMAsABFWLAYLxuxGBk+WbAt3DAxAP///68AAASLBw8CJgAlAAABBwChAS4BNwATALAARViwBC8bsQQdPlmwDtwwMQD//wAz/+gD7AXZAiYARQAAAQcAoQCgAAEACQCwGC+wL9wwMQAAAv+v/k8EiwWwABcAGgB2shUbHBESObAVELAa0ACwAEVYsBUvG7EVHT5ZsABFWLATLxuxExE+WbAARViwFy8bsRcRPlmwAEVYsAsvG7ELEz5ZsQYDsAorWCHYG/RZsBcQsBDQsBAvshgTFRESObAYL7ESAbAKK1gh2Bv0WbIaFRMREjkwMSEXBwYHBhcWNxcGIyImNzY3AyEDIwEzAQEhAwRlBEF6CQdBIEMERFNOXwIDyEL9ssfJAxelASD9BwHfeQMvWlk/AgEaeStlUppxAWv+hAWw+lACGgKnAAIAM/5PA88EUQAvADoAobITOzwREjmwExCwMdAAsABFWLAnLxuxJxk+WbAARViwCy8bsQsTPlmwAEVYsBQvG7EUET5ZsABFWLAvLxuxLxE+WbALELEGA7AKK1gh2Bv0WbAvELAQ0LAQL7ISJxQREjmyGicUERI5sBovsCcQsR8BsAorWCHYG/RZsiIaJxESObAUELEwAbAKK1gh2Bv0WbAaELE1AbAKK1gh2Bv0WTAxIRcHBgcGFxY3FwYjIiY3NjcnNwYnJiY3NiQzFzc2JicmBgcHPgIXFhYHAwcGFwclFjY3NyciBgcGFgNEBEF6CQdBIEMERFNOXwIDywMDlaePswgKARnlvQwKX19djxC2CYLMbam8D1gFAg4C/ixXmzgniau2DAlZAy9aWT8CARp5K2VSmnIwMIoEArGFrMEBVmFxAgJfTgFfk1ECBMWj/ehNNzYRjAJXTd8BbGNMZf//AHT/5gT5B1cCJgAnAAABBwB1Af8BVwAJALANL7Ai3DAxAP//AEb/6QPmBgACJgBHAAABBwB1ASoAAAAJALARL7Aj3DAxAP//AHT/5gT5B1cCJgAnAAABBwCeAQUBVwAJALANL7Ah3DAxAP//AEb/6QPmBgACJgBHAAABBgCeMAAACQCwES+wItwwMQD//wB0/+YE+QccAiYAJwAAAQcAogHbAVcACQCwDS+wKdwwMQD//wBG/+kD5gXFAiYARwAAAQcAogEGAAAACQCwES+wKtwwMQD//wB0/+YE+QdZAiYAJwAAAQcAnwEZAVgACQCwDS+wJNwwMQD//wBG/+kD5gYCAiYARwAAAQYAn0QBAAkAsBEvsCXcMDEA//8AOwAABNUHRAImACgAAAEHAJ8A0QFDABMAsABFWLACLxuxAh0+WbAb3DAxAP//AEv/6AWmBgIAJgBIAAAABwG6BJcFE///ADsAAASxBu8CJgApAAABBwBwANIBSgAJALAGL7AM3DAxAP//AEX/6gP2Ba0CJgBJAAABBgBwWwgACQCwCC+wINwwMQD//wA7AAAEsQcbAiYAKQAAAQcAoQD8AUMACQCwBi+wD9wwMQD//wBF/+oD4AXZAiYASQAAAQcAoQCFAAEACQCwCC+wI9wwMQD//wA7AAAEsQcHAiYAKQAAAQcAogGdAUIACQCwBi+wFdwwMQD//wBF/+oD4AXFAiYASQAAAQcAogEmAAAACQCwCC+wKdwwMQAAAQA7/k8EsQWwABwAhLIUHR4REjkAsABFWLAXLxuxFx0+WbAARViwEC8bsRATPlmwAEVYsAQvG7EEET5ZsABFWLAVLxuxFRE+WbIcFwQREjmwHC+xAAGwCitYIdgb9FmwFRCxAgGwCitYIdgb9FmwA9CwEBCxCwOwCitYIdgb9FmwFxCxGQGwCitYIdgb9FkwMQEhAyEHIxcHBgcGFxY3FwYjIiY3NjchEyEHIQMhA9D9nFoCyBxLBEF6CQdBIEMERFNOXwIDq/17/QN5HP1DUQJkAqH9/J0DL1pZPwIBGnkrZVKRaQWwnv4sAAACAEX+aAPZBFEAJgAuAIKyBC8wERI5sAQQsCjQALAML7AARViwGi8bsRoZPlmwAEVYsBEvG7ERET5ZsSQBsAorWCHYG/RZsgIRJBESObAMELEHA7AKK1gh2Bv0WbIrGhEREjmwKy+0vyvPKwJdsSABsAorWCHYG/RZsiYaERESObAaELEnAbAKK1gh2Bv0WTAxJQYHBwYHBhcWNxcGIyImNzY3LgI3NzYSNhcWFhcWBwchBhYXFjcDJgYHBTc2JgOLU4U7dQoHQSBDBERTTl8CA3B8tFYLBRGd4oOnvgkDBwv9PRKFhKCIxHCnMQIOBBBxu3c1K1dZPwIBGnkrZVJyXQqJ6IsroQEKhwME1rdBQVOTzgQElAKkA56cARB+p///ADsAAASxB0QCJgApAAABBwCfANsBQwAJALAGL7AQ3DAxAP//AEX/6gPlBgICJgBJAAABBgCfZAEACQCwCC+wJNwwMQD//wB5/+oFBgdXAiYAKwAAAQcAngD9AVcACQCwDC+wI9wwMQD//wAE/k8EKAYAAiYASwAAAQYAnlMAAAkAsAQvsCvcMDEA//8Aef/qBQYHMAImACsAAAEHAKEBMgFYAAkAsAwvsCXcMDEA//8ABP5PBCgF2QImAEsAAAEHAKEAiAABAAkAsAQvsC3cMDEA//8Aef/qBQYHHAImACsAAAEHAKIB0wFXAAkAsAwvsCvcMDEA//8ABP5PBCgFxQImAEsAAAEHAKIBKQAAAAkAsAQvsDPcMDEA//8Aef32BQYFxwImACsAAAAHAboBjf6X//8ABP5PBCgGlQImAEsAAAEHAjQBMgBYAAkAsAQvsC7cMDEA//8AOwAABXcHQgImACwAAAEHAJ4BIQFCAAkAsAYvsA3cMDEA//8AHwAAA+MHQQImAEwAAAEHAJ4AVAFBAA4AsBEvsBTcst8UAV0wMf//AEkAAAM0By0CJgAtAAABBwCl/4YBRgAJALACL7AO3DAxAP//ABEAAALiBekCJgCNAAABBwCl/zQAAgAJALACL7AO3DAxAP//AEkAAAMkBu8CJgAtAAABBwBw/4kBSgAJALACL7AE3DAxAP//AC4AAALSBasCJgCNAAABBwBw/zcABgAJALACL7AE3DAxAP//AEkAAAL/BxsCJgAtAAABBwCh/7MBQwAJALACL7AH3DAxAP//AC4AAAKtBdgCJgCNAAABBwCh/2EAAAAJALACL7AH3DAxAP///47+WAIBBbACJgAtAAAABgCk3wn///9w/k8B4wXHAiYATQAAAAYApMEA//8ASQAAAjYHBwImAC0AAAEHAKIAUwFCAAkAsAIvsA3cMDEA//8ASf/mBnAFsAAmAC0AAAAHAC4CJgAA//8AL/5GA8EFxwAmAE0AAAAHAE4B7AAA//8ACv/mBQoHNQImAC4AAAEHAJ4BpgE1AAkAsAAvsBHcMDEA////Cf5GApYF2AImAJwAAAEHAJ7/Mv/YAAkAsAAvsA7cMDEA//8AO/5YBVAFsAImAC8AAAAHAboBWv75//8AIP5FBBoGAAImAE8AAAAHAboA2P7m//8AOwAAA7EHMQImADAAAAEHAHUAZQExAAkAsAQvsAjcMDEA//8ALwAAAw8HlgImAFAAAAEHAHUAaQGWAAkAsAIvsAbcMDEA//8AO/4JA7EFsAImADAAAAAHAboBJf6q////o/4JAe4GAAImAFAAAAAHAbr/wP6q//8AOwAAA7EFsQImADAAAAEHAboCmgTCABAAsABFWLAKLxuxCh0+WTAx//8ALwAAAzsGAgAmAFAAAAAHAboCLAUT//8AOwAAA7EFsAImADAAAAAHAKIBTP3F//8ALwAAAqwGAAAmAFAAAAAHAKIAyf22//8AOwAABXcHNgImADIAAAEHAHUCJwE2AAkAsAUvsAzcMDEA//8AHwAABAIGAAImAFIAAAEHAHUBXAAAAAkAsAMvsBXcMDEA//8AO/4JBXcFsAImADIAAAAHAboBhv6q//8AH/4JA+MEUgImAFIAAAAHAboA7v6q//8AOwAABXcHOAImADIAAAEHAJ8BQQE3ABMAsABFWLAGLxuxBh0+WbAP3DAxAP//AB8AAAP3BgICJgBSAAABBgCfdgEAEwCwAEVYsAMvG7EDGT5ZsBfcMDEA//8AHwAAA+MGBAImAFIAAAEHAboARQUVAA0Ask8XAV2ynxcBXTAxAP//AHf/5wUNBuUCJgAzAAABBwBwASUBQAAJALAKL7Aj3DAxAP//AEX/6AQfBa0CJgBTAAABBgBwZAgACQCwAC+wI9wwMQD//wB3/+cFDQcRAiYAMwAAAQcAoQFPATkACQCwCi+wJtwwMQD//wBF/+gEHwXZAiYAUwAAAQcAoQCOAAEACQCwAC+wJtwwMQD//wB3/+cFVAc3AiYAMwAAAQcApgGWATgADACwCi+wJdywJ9AwMf//AEX/6ASTBf8CJgBTAAABBwCmANUAAAAMALAAL7Al3LAn0DAx//8AOgAABMIHNgImADYAAAEHAHUBtgE2AAkAsAQvsBrcMDEA//8AHwAAA2IGAAImAFYAAAEHAHUAvAAAAAkAsAovsA/cMDEA//8AOv4JBMIFsAImADYAAAAHAboBHf6q////n/4JAtQEVAImAFYAAAAHAbr/vP6q//8AOgAABMIHOAImADYAAAEHAJ8A0AE3ABMAsABFWLAFLxuxBR0+WbAd3DAxAP//AB8AAANYBgICJgBWAAABBgCf1wEAEwCwAEVYsAcvG7EHGT5ZsBLcMDEA//8AJ//pBKMHOAImADcAAAEHAHUBwgE4AAkAsAovsCvcMDEA//8ALv/pA+0GAAImAFcAAAEHAHUBRwAAAAkAsAgvsCncMDEA//8AJ//pBKMHOAImADcAAAEHAJ4AyAE4AAkAsAovsCrcMDEA//8ALv/pA7YGAAImAFcAAAEGAJ5NAAAJALAIL7Ao3DAxAP//ACf+SwSjBccCJgA3AAAABwB5AZIAAP//AC7+QwO2BFACJgBXAAAABwB5AVv/+P//ACf9/wSjBccCJgA3AAABBwG6ASz+oAAKALRALlAuAl0wMf//AC799gO2BFACJgBXAAABBwG6APX+lwAKALRALFAsAl0wMf//ACf/6QSjBzoCJgA3AAABBwCfANwBOQATALAARViwCi8bsQodPlmwLdwwMQD//wAu/+kD4gYCAiYAVwAAAQYAn2EBABMAsABFWLAILxuxCBk+WbAr3DAxAP//AKj9/wUJBbACJgA4AAABBwG6AR7+oAAKALRADVANAl0wMf//AEP9/wKUBUACJgBYAAABBwG6AIL+oAAKALRAHFAcAl0wMf//AKj+SwUJBbACJgA4AAAABwB5AYQAAP//AEP+SwKUBUACJgBYAAAABwB5AOgAAP//AKgAAAUJBzgCJgA4AAABBwCfANEBNwATALAARViwBi8bsQYdPlmwDdwwMQD//wBD/+0DjQZ5ACYAWAAAAQcBugJ+BYoADQCyDxsBXbKfGwFdMDEA//8AZ//nBSAHIQImADkAAAEHAKUA/AE6AAkAsAAvsB3cMDEA//8AW//oBB4F6wImAFkAAAEGAKVlBAAJALAGL7Ae3DAxAP//AGf/5wUgBuMCJgA5AAABBwBwAP8BPgAJALAAL7AT3DAxAP//AFv/6AQeBa0CJgBZAAABBgBwaAgACQCwBi+wFNwwMQD//wBn/+cFIAcPAiYAOQAAAQcAoQEpATcACQCwAC+wFtwwMQD//wBb/+gEHgXZAiYAWQAAAQcAoQCSAAEACQCwBi+wF9wwMQD//wBn/+cFIAeSAiYAOQAAAQcAowF5AUEADACwAC+wHNywH9AwMf//AFv/6AQeBlwCJgBZAAABBwCjAOIACwAMALAGL7Ad3LAg0DAx//8AZ//nBS4HNQImADkAAAEHAKYBcAE2AAwAsAAvsBXcsBfQMDH//wBb/+gElwX/AiYAWQAAAQcApgDZAAAADACwBi+wFtywGNAwMQABAGf+ewUoBbAAHwBSALAARViwFy8bsRcdPlmwAEVYsA0vG7ENEz5ZsABFWLASLxuxEhE+WbEbAbAKK1gh2Bv0WbIEEhsREjmwDRCxCAOwCitYIdgb9FmwFxCwH9AwMQEDBgYHBgcGFxY3FwYjIiY3NjcmAjcTMwMGFhcWNjcTBSioF72WlQkHQSBDBERTTl8CBFbZ8RmouacRioyY0RuoBbD8J5/0NmdgPwIBGnkrZVJnUgYBD9YD2vwlma8EBrGgA9wAAQBb/k8EHgQ6ACMAZQCwAEVYsBgvG7EYGT5ZsABFWLATLxuxExE+WbAARViwIy8bsSMRPlmwAEVYsAsvG7ELEz5ZsQYDsAorWCHYG/RZsCMQsBDQshETGBESObATELEeAbAKK1gh2Bv0WbAYELAh0DAxIRcHBgcGFxY3FwYjIiY3Njc3BicmJjcTMwMGFxYWFxY3EzMDA1QEQXoJB0EgQwREU05fAgPEFH/Em5UTdLV1BQMFTETCaoi1vAMvWlk/AgEaeStlUpdxXYMEBNa5Arv9QiwqSFIDBqMDFPvGAP//AMMAAAdBBzYCJgA7AAABBwCeAdwBNgAJALADL7AU3DAxAP//AIAAAAX+BgACJgBbAAABBwCeARsAAAAJALABL7AO3DAxAP//AKgAAAUyBzYCJgA9AAABBwCeAMMBNgAJALABL7AK3DAxAP///6X+RQPsBgACJgBdAAABBgCeJAAACQCwAS+wEdwwMQD//wCoAAAFMgb9AiYAPQAAAQcAagD9ATYADACwAS+wHtywCdAwMf///+sAAATOBzYCJgA+AAABBwB1AbwBNgAJALAHL7AM3DAxAP///+0AAAPOBgACJgBeAAABBwB1ASQAAAAJALAHL7AM3DAxAP///+sAAATOBvsCJgA+AAABBwCiAZgBNgATALAARViwBy8bsQcdPlmwE9wwMQD////tAAADzgXFAiYAXgAAAQcAogEAAAAAEwCwAEVYsAcvG7EHGT5ZsBPcMDEA////6wAABM4HOAImAD4AAAEHAJ8A1gE3ABMAsABFWLAHLxuxBx0+WbAP3DAxAP///+0AAAPOBgICJgBeAAABBgCfPgEAEwCwAEVYsAcvG7EHGT5ZsA/cMDEA////hAAAB3gHQgImAIEAAAEHAHUC9wFCABMAsABFWLAGLxuxBh0+WbAV3DAxAP//ABP/6AZhBgECJgCGAAABBwB1AnMAAQATALAARViwFy8bsRcZPlmwRNwwMQD//wAg/6QFnAeAAiYAgwAAAQcAdQIoAYAAEwCwAEVYsA0vG7ENHT5ZsDDcMDEA//8AOf96BCoGAAImAIkAAAEHAHUBOQAAABMAsABFWLAALxuxABk+WbAu3DAxAP///7AAAAQPBI0CJgIwAAABBwIm/x3/eAAsALIfGQFxtN8Z7xkCcbQfGS8ZAl2ybxkBcrJPGQFxtO8Z/xkCXbJfGQFdMDH///+wAAAEDwSNAiYCMAAAAQcCJv8d/3gALACyHxkBcbTfGe8ZAnG0HxkvGQJdsm8ZAXKyTxkBcbTvGf8ZAl2yXxkBXTAx//8AbQAABEIEjQImAdgAAAEGAiY94AAIALIACwFdMDH///+lAAAD4wYeAiYCMwAAAQcARADgAB4AEwCwAEVYsAQvG7EEGz5ZsAzcMDEA////pQAABBAGHgImAjMAAAEHAHUBagAeAAkAsAQvsA3cMDEA////pQAAA+MGHgImAjMAAAEGAJ5wHgATALAARViwBC8bsQQbPlmwENwwMQD///+lAAAEJgYJAiYCMwAAAQYApXgiAAkAsAQvsBXcMDEA////pQAAA/sF5QImAjMAAAEHAGoAqgAeAAwAsAQvsCDcsAvQMDH///+lAAAD4wZ6AiYCMwAAAQcAowD1ACkADACwBC+wFNywF9AwMf///6UAAAQUBnsCJgIzAAAABwInAPkACv//AEf+SAQ3BKMCJgIxAAAABwB5AWj//f//AB0AAAPvBh4CJgIoAAABBwBEALQAHgATALAARViwBi8bsQYbPlmwDdwwMQD//wAdAAAD7wYeAiYCKAAAAQcAdQE+AB4ACQCwBi+wDtwwMQD//wAdAAAD7wYeAiYCKAAAAQYAnkQeAAkAsAYvsA3cMDEA//8AHQAAA+8F5QImAigAAAEGAGp+HgAMALAGL7Ah3LAM0DAx//8AKgAAAcUGHgImAeMAAAEGAESaHgATALAARViwAi8bsQIbPlmwBdwwMQD//wAqAAACyQYeAiYB4wAAAQYAdSMeAAkAsAIvsAbcMDEA//8AKgAAAo4GHgImAeMAAAEHAJ7/KgAeAAkAsAIvsAXcMDEA//8AKgAAArUF5QImAeMAAAEHAGr/ZAAeAAwAsAIvsBncsATQMDH//wAdAAAEmgYJAiYB3gAAAQcApQCiACIACQCwBS+wFNwwMQD//wBK/+oETgYeAiYB3QAAAQcARAD4AB4AEwCwAEVYsAgvG7EIGz5ZsCHcMDEA//8ASv/qBE4GHgImAd0AAAEHAHUBggAeAAkAsAgvsCLcMDEA//8ASv/qBE4GHgImAd0AAAEHAJ4AiAAeAAkAsAgvsCHcMDEA//8ASv/qBE4GCQImAd0AAAEHAKUAkAAiAAkAsAgvsCrcMDEA//8ASv/qBE4F5QImAd0AAAEHAGoAwgAeAAwAsAgvsDXcsCDQMDH//wBF/+oEVwYeAiYB1wAAAQcARADaAB4AEwCwAEVYsAkvG7EJGz5ZsBPcMDEA//8ARf/qBFcGHgImAdcAAAEHAHUBZAAeAAkAsAAvsBTcMDEA//8ARf/qBFcGHgImAdcAAAEGAJ5qHgAJALAAL7AT3DAxAP//AEX/6gRXBeUCJgHXAAABBwBqAKQAHgAMALAAL7An3LAS0DAx//8AdAAABGUGHgImAdMAAAEHAHUBOgAeAAkAsAEvsAvcMDEA////pQAABBYFywImAjMAAAEGAHB7JgAJALAEL7AL3DAxAP///6UAAAPxBfcCJgIzAAABBwChAKUAHwAJALAEL7AO3DAxAAAC/6X+TwPjBI0AFwAaAHOyFRscERI5sBUQsBrQALAARViwFS8bsRUbPlmwAEVYsBMvG7ETET5ZsABFWLAXLxuxFxE+WbAARViwCy8bsQsTPlmxBgOwCitYIdgb9FmwFxCwENCyGBUTERI5sBgvsREBsAorWCHYG/RZshoVExESOTAxIRcHBgcGFxY3FwYjIiY3NjcDIQMjATMBASEDA70EQXoJB0EgQwREU05fAgPPNf4JnMECm6IBAf1zAYRoAy9aWT8CARp5K2VSmnUBAv7pBI37cwGuAfsA//8AR//sBDcGHgImAjEAAAEHAHUBbwAeAAkAsAsvsB/cMDEA//8AR//sBDcGHgImAjEAAAEGAJ51HgAJALALL7Ae3DAxAP//AEf/7AQ3BeMCJgIxAAABBwCiAUsAHgATALAARViwCy8bsQsbPlmwJtwwMQD//wBH/+wENwYgAiYCMQAAAQcAnwCJAB8AEwCwAEVYsAsvG7ELGz5ZsCLcMDEA//8AHQAABA8GIAImAjAAAAEGAJ80HwATALAARViwAi8bsQIbPlmwG9wwMQD//wAdAAAD7wXLAiYCKAAAAQYAcE8mAAkAsAYvsAzcMDEA//8AHQAAA+8F9wImAigAAAEGAKF5HwAJALAGL7AP3DAxAP//AB0AAAPvBeMCJgIoAAABBwCiARoAHgATALAARViwBi8bsQYbPlmwFdwwMQAAAQAd/k8D7wSNABwAkLIRHR4REjkAsABFWLAXLxuxFxs+WbAARViwEC8bsRATPlmwAEVYsAQvG7EEET5ZsABFWLAVLxuxFRE+WbIcFwQREjmwHC+0HxwvHAJdsr8cAV2xAAGwCitYIdgb9FmwFRCxAgGwCitYIdgb9FmwA9CwEBCxCwOwCitYIdgb9FmwFxCxGQGwCitYIdgb9FkwMQEhAyEHIxcHBgcGFxY3FwYjIiY3NjchEyEHIQMhAzH9/UICWRs/BEF6CQdBIEMERFNOXwIDq/3lywMHG/2uOgIEAg7+iZcDL1pZPwIBGnkrZVKRaQSNmf6yAP//AB0AAAPvBiACJgIoAAABBgCfWB8AEwCwAEVYsAYvG7EGGz5ZsBHcMDEA//8ATP/uBEEGHgImAeUAAAEGAJ5zHgAJALALL7Ah3DAxAP//AEz/7gRBBfcCJgHlAAABBwChAKgAHwAJALALL7Aj3DAxAP//AEz/7gRBBeMCJgHlAAABBwCiAUkAHgATALAARViwCy8bsQsbPlmwKdwwMQD//wBM/fwEQQSjAiYB5QAAAAcBugEH/p3//wAdAAAEmgYeAiYB5AAAAQcAngCRAB4ACQCwBi+wDdwwMQD//wAPAAAC4AYJAiYB4wAAAQcApf8yACIACQCwAi+wDtwwMQD//wAqAAAC0AXLAiYB4wAAAQcAcP81ACYACQCwAi+wBNwwMQD//wAqAAACqwX3AiYB4wAAAQcAof9fAB8ACQCwAi+wB9wwMQD///96/k8BqgSNAiYB4wAAAAYApMsA//8AKgAAAeMF4wImAeMAAAEGAKIAHgATALAARViwAi8bsQIbPlmwDdwwMQD////2/+sEaAYeAiYB4gAAAQcAngEEAB4ACQCwAC+wENwwMQD//wAd/gUEfwSNAiYB4QAAAAcBugDP/qb//wAdAAADIwYeAiYB4AAAAQYAdRceAAkAsAQvsAjcMDEA//8AHf4HAyMEjQImAeAAAAAHAboAzP6o//8AHQAAAyMEjgImAeAAAAEHAboCEwOfABAAsABFWLAKLxuxChs+WTAx//8AHQAAAyMEjQImAeAAAAAHAKIA4P03//8AHQAABJoGHgImAd4AAAEHAHUBlAAeAAkAsAUvsAzcMDEA//8AHf4DBJoEjQImAd4AAAAHAboBJP6k//8AHQAABJoGIAImAd4AAAEHAJ8ArgAfABMAsABFWLAFLxuxBRs+WbAP3DAxAP//AEr/6gROBcsCJgHdAAABBwBwAJMAJgAJALAIL7Ag3DAxAP//AEr/6gROBfcCJgHdAAABBwChAL0AHwAJALAIL7Aj3DAxAP//AEr/6gTCBh0CJgHdAAABBwCmAQQAHgAMALAIL7Ai3LAk0DAx//8AHQAABAEGHgImAdoAAAEHAHUBLwAeAAkAsAQvsBncMDEA//8AHf4HBAEEjQImAdoAAAAHAboAyf6o//8AHQAABAEGIAImAdoAAAEGAJ9JHwATALAARViwBC8bsQQbPlmwHNwwMQD//wAR/+sD7QYeAiYB2QAAAQcAdQFFAB4ACQCwCi+wKtwwMQD//wAR/+sD7QYeAiYB2QAAAQYAnkseAAkAsAovsCncMDEA//8AEf5LA+0EnQImAdkAAAAHAHkBSQAA//8AEf/rA+0GIAImAdkAAAEGAJ9fHwATALAARViwCi8bsQobPlmwLdwwMQD//wBt/gEEQgSNAiYB2AAAAQcBugDP/qIACgC0QA1QDQJdMDH//wBtAAAEQgYgAiYB2AAAAQYAn1MfABMAsABFWLAGLxuxBhs+WbAN3DAxAP//AG3+TQRCBI0CJgHYAAAABwB5ATUAAv//AEX/6gRXBgkCJgHXAAABBgClciIACQCwAC+wHNwwMQD//wBF/+oEVwXLAiYB1wAAAQYAcHUmAAkAsAAvsBLcMDEA//8ARf/qBFcF9wImAdcAAAEHAKEAnwAfAAkAsAAvsBXcMDEA//8ARf/qBFcGegImAdcAAAEHAKMA7wApAAwAsAAvsBvcsB7QMDH//wBF/+oEpAYdAiYB1wAAAQcApgDmAB4ADACwAC+wFNywFtAwMQABAEX+dARXBI0AIABjsgkhIhESOQCwAEVYsCAvG7EgGz5ZsABFWLAYLxuxGBs+WbAARViwDi8bsQ4TPlmwAEVYsBMvG7ETET5ZsgQTIBESObAOELEJA7AKK1gh2Bv0WbATELEcAbAKK1gh2Bv0WTAxAQMGBgcGBgcGFxY3FwYjIiY3NjcmJjcTMwMGFhcWNjcTBFeDE6SAVEoEB0EgQwREU05fAgRitMcTg7OEDXV0eqkVhASN/PWHxyo7YC8/AgEaeStlUnBVDdqqAwz883WBAwSCewMNAP//AJUAAAYpBh4CJgHVAAABBwCeATcAHgAJALASL7AU3DAxAP//AHQAAARlBh4CJgHTAAABBgCeQB4ACQCwAS+wCtwwMQD//wB0AAAEZQXlAiYB0wAAAQYAanoeAAwAsAEvsB7csAnQMDH////cAAAEDgYeAiYB0gAAAQcAdQE6AB4ACQCwBy+wDNwwMQD////cAAAEDgXjAiYB0gAAAQcAogEWAB4AEwCwAEVYsAcvG7EHGz5ZsBPcMDEA////3AAABA4GIAImAdIAAAEGAJ9UHwATALAARViwBy8bsQcbPlmwD9wwMQD///+vAAAEiwY/AiYAJQAAAAYArgQA////nwAABLEGPwImACkAAAAHAK7+fgAA////rQAABXcGQQImACwAAAAHAK7+jAAC////swAAAgEGQAImAC0AAAAHAK7+kgAB//8AVv/nBSEGPwAmADMUAAAHAK7/NQAA////igAABZYGPwAmAD1kAAAHAK7+aQAA//8AHgAABO4GPwAmALoUAAAHAK7/OAAA//8AIP/0AxsGdAImAMMAAAEHAK//Lf/sABwAsABFWLAOLxuxDhk+WbAb3LAR0LAbELAk0DAx////rwAABIsFsAIGACUAAP//ADsAAASgBbACBgAmAAD//wA7AAAEsQWwAgYAKQAA////6wAABM4FsAIGAD4AAP//ADsAAAV3BbACBgAsAAD//wBJAAACAQWwAgYALQAA//8AOwAABVAFsAIGAC8AAP//ADsAAAa3BbACBgAxAAD//wA7AAAFdwWwAgYAMgAA//8Ad//nBQ0FyAIGADMAAP//ADsAAATzBbACBgA0AAD//wCoAAAFCQWwAgYAOAAA//8AqAAABTIFsAIGAD0AAP///9QAAAUrBbACBgA8AAD//wBJAAADCQcJAiYALQAAAQcAav+4AUIADACwAi+wGdywBNAwMf//AKgAAAUyBv0CJgA9AAABBwBqAP0BNgAMALABL7Ae3LAJ0DAx//8ASP/nBDIGOgImALsAAAEHAK4BaP/7AAkAsBUvsCjcMDEA//8AKf/nA+UGOQImAL8AAAEHAK4BIf/6AAkAsBovsCvcMDEA//8AJP5hA/MGOgImAMEAAAEHAK4BO//7AAkAsAMvsBXcMDEA//8Ahf/0AmUGJQImAMMAAAEGAK4k5gAJALAAL7AR3DAxAP//AGf/5QQKBnQCJgDLAAABBgCvHOwAEgCwCy+wK9ywFtCwKxCwGtAwMf//AC0AAARXBDoCBgCOAAD//wBF/+gEHwRSAgYAUwAA////5f5gBCUEOgIGAHYAAP//AG4AAAPtBDoCBgBaAAAAAf+//kkEUQRHAB0AcQCwAEVYsAAvG7EAGT5ZsABFWLAFLxuxBRk+WbAARViwEC8bsRATPlmwAEVYsBUvG7EVEz5ZsgQVBRESObIUFQUREjmyBwQUERI5sBAQsQsBsAorWCHYG/RZshcUBBESObAAELEaAbAKK1gh2Bv0WTAxARYWFxMBMwETFhYXFzcHBgcGJycDASMBAyYnBzc2AQNZeCpCAVHA/iZ4FzIkLy89IxWSRR1V/ozJAgdsJ1dGDj4ERgJ1k/78AgL9JP4tUEAEAQOdDQEFvFcBRP3BAxsBpIMFA5UNAP//AGb/9ALdBbMCJgDDAAABBgBqjOwADACwAC+wJNywD9AwMf//AGf/5QP6BbMCJgDLAAABBgBqe+wADACwCy+wK9ywFtAwMf//AEX/6AQfBjoCJgBTAAABBwCuASz/+wAJALAAL7Al3DAxAP//AGf/5QP6BiUCJgDLAAABBwCuART/5gAJALALL7AY3DAxAP//AGb/5AX8BiICJgDOAAABBwCuAjz/4wAJALAYL7At3DAxAP//ADsAAASxBwkCJgApAAABBwBqAQEBQgAWALAARViwBi8bsQYdPlmwFdywIdAwMf//AEMAAASlB0ICJgCxAAABBwB1AccBQgATALAARViwBC8bsQQdPlmwCNwwMQAAAQAn/+kEowXHACgAZLITKSoREjkAsABFWLAKLxuxCh0+WbAARViwHy8bsR8RPlmyAh8KERI5sAoQsA/QsAoQsRIBsAorWCHYG/RZsAIQsRgBsAorWCHYG/RZsB8QsCTQsB8QsScBsAorWCHYG/RZMDEBNi8CJDc+AhceAgcnNiYnJgYHBh8CBAMOAicuAjcXBhYENgNtFrytOv7cEwqS8YiEz2wGvQqMgom4DhTLlUsBGhULkPeOieN2B7wJnwEivAF3oEo/GYXxebplAwNwyX4BhpMCAoRylU01IIL/AHuzYgMBc8h/AYKZBIIA//8ASQAAAgEFsAIGAC0AAP//AEkAAAMJBwkCJgAtAAABBwBq/7gBQgAMALACL7AZ3LAE0DAx//8ACv/mBEoFsAIGAC4AAP//AEQAAAVqBbACBgIsAAD//wA7AAAFUAcwAiYALwAAAQcAdQGwATAAEwCwAEVYsAUvG7EFHT5ZsA7cMDEA//8Ak//mBUAHGwImAN4AAAEHAKEBFgFDABMAsABFWLAQLxuxEB0+WbAU3DAxAP///68AAASLBbACBgAlAAD//wA7AAAEoAWwAgYAJgAA//8AQwAABKUFsAIGALEAAP//ADsAAASxBbACBgApAAD//wBDAAAFbgcbAiYA3AAAAQcAoQFrAUMACQCwAC+wDdwwMQD//wA7AAAGtwWwAgYAMQAA//8AOwAABXcFsAIGACwAAP//AHf/5wUNBcgCBgAzAAD//wBEAAAFcAWwAgYAtgAA//8AOwAABPMFsAIGADQAAP//AHT/5gT5BckCBgAnAAD//wCoAAAFCQWwAgYAOAAA////1AAABSsFsAIGADwAAP//ADP/6APPBFECBgBFAAD//wBF/+oD4ARRAgYASQAA//8ALwAABDcFxQImAPAAAAEHAKEApf/tAAkAsAAvsA3cMDEA//8ARf/oBB8EUgIGAFMAAP///9f+YAP8BFICBgBUAAAAAQBG/+kD5gRSACAATbIAISIREjkAsABFWLARLxuxERk+WbAARViwCC8bsQgRPlmxAAGwCitYIdgb9FmyBBEIERI5shQRCBESObARELEYAbAKK1gh2Bv0WTAxJRY2NzcOAicuAjc3PgIXFhYVJyYmJyYGBwcGFxYWAehhnBirD4XKaoe7WA4FE5DojKrMqQJyYY27FwMGBAd2ggJ1XwFmqF4DAon1mTKc9okEBNypAWqDBAPYwhpARHWIAP///6X+RQPsBDoCBgBdAAD////EAAAD9AQ6AgYAXAAA//8ARf/qA+AFxwImAEkAAAEHAGoAigAAAAwAsAgvsDXcsCDQMDH//wAtAAADgwXsAiYA7AAAAQcAdQDP/+wAEwCwAEVYsAUvG7EFGT5ZsAjcMDEA//8ALv/pA7YEUAIGAFcAAP//AC8AAAHjBccCBgBNAAD//wAuAAACtwXGAiYAjQAAAQcAav9m//8ADACwAi+wGdywBNAwMf///xT+RgHVBccCBgBOAAD//wAvAAAEVwXrAiYA8QAAAQcAdQE5/+sAEwCwAEVYsAgvG7EIGT5ZsA/cMDEA////pf5FA+wF2QImAF0AAAEGAKFZAQATALAARViwDy8bsQ8ZPlmwE9wwMQD//wDDAAAHQQc2AiYAOwAAAQcARAJMATYAEwCwAEVYsAQvG7EEHT5ZsBTcMDEA//8AgAAABf4GAAImAFsAAAEHAEQBiwAAABMAsABFWLALLxuxCxk+WbAO3DAxAP//AMMAAAdBBzYCJgA7AAABBwB1AtYBNgATALAARViwBC8bsQQdPlmwFdwwMQD//wCAAAAF/gYAAiYAWwAAAQcAdQIVAAAAEwCwAEVYsAwvG7EMGT5ZsA/cMDEA//8AwwAAB0EG/QImADsAAAEHAGoCFgE2ABYAsABFWLADLxuxAx0+WbAc3LAo0DAx//8AgAAABf4FxwImAFsAAAEHAGoBVQAAABYAsABFWLALLxuxCxk+WbAW3LAi0DAx//8AqAAABTIHNgImAD0AAAEHAEQBMwE2ABMAsABFWLAILxuxCB0+WbAK3DAxAP///6X+RQPsBgACJgBdAAABBwBEAJQAAAATALAARViwDy8bsQ8ZPlmwEdwwMQD//wCqBCEBiQYAAgYACwAA//8AyAQRAqYGCAIGAAYAAP//AEP/8gP9BbAAJgAFAAAABwAFAgkAAP///wn+RgLHBdoCJgCcAAABBwCf/0b/2QATALAARViwDC8bsQwZPlmwEtwwMQD//wCJBBYB4AYAAgYBhQAA//8AOwAABrcHNgImADEAAAEHAHUCxgE2ABMAsABFWLACLxuxAh0+WbAR3DAxAP//AB4AAAZqBgACJgBRAAABBwB1AqQAAAATALAARViwAy8bsQMZPlmwI9wwMQD///+v/moEiwWwAiYAJQAAAAcApwF0AAD//wAz/moDzwRRAiYARQAAAAcApwDBAAD//wA7AAAEsQdCAiYAKQAAAQcARAE3AUIAEwCwAEVYsAYvG7EGHT5ZsA3cMDEA//8AQwAABW4HQgImANwAAAEHAEQBpgFCABMAsABFWLAILxuxCB0+WbAL3DAxAP//AEX/6gPgBgACJgBJAAABBwBEAMAAAAATALAARViwCC8bsQgZPlmwIdwwMQD//wAvAAAENwXsAiYA8AAAAQcARADg/+wAEwCwAEVYsAgvG7EIGT5ZsAvcMDEA//8AhgAABZ0FsAIGALkAAP//AE/+KAVPBDwCBgDNAAD//wCtAAAFSwboAiYBGQAAAQcArAREAPoAFgCwAEVYsA8vG7EPHT5ZsBHcsBXQMDH//wCEAAAEPAXBAiYBGgAAAQcArAOu/9MAFgCwAEVYsBAvG7EQGT5ZsBLcsBbQMDH//wBF/kUIYwRSACYAUwAAAAcAXQR3AAD//wB3/kUJTAXIACYAMwAAAAcAXQVgAAD//wAl/lEEmAXHAiYA2wAAAAcCUQGD/7j//wAh/lIDqgRQAiYA7wAAAAcCUQEt/7n//wB0/lEE+QXJAiYAJwAAAAcCUQHK/7j//wBG/lED5gRSAiYARwAAAAcCUQFG/7j//wCoAAAFMgWwAgYAPQAA//8AhP5gBBoEOgIGAL0AAP//AEkAAAIBBbACBgAtAAD///+sAAAHdQcbAiYA2gAAAQcAoQIsAUMAEwCwAEVYsA0vG7ENHT5ZsBncMDEA////pQAABg4FxQImAO4AAAEHAKEBXP/tABMAsABFWLANLxuxDRk+WbAZ3DAxAP//AEkAAAIBBbACBgAtAAD///+vAAAEiwcPAiYAJQAAAQcAoQEuATcAEwCwAEVYsAQvG7EEHT5ZsA7cMDEA//8AM//oA+wF2QImAEUAAAEHAKEAoAABABMAsABFWLAYLxuxGBk+WbAv3DAxAP///68AAASLBv0CJgAlAAABBwBqATMBNgAWALAARViwBC8bsQQdPlmwFNywINAwMf//ADP/6AP2BccCJgBFAAABBwBqAKUAAAAMALAYL7BB3LAs0DAx////hAAAB3gFsAIGAIEAAP//ABP/6AZhBFICBgCGAAD//wA7AAAEsQcbAiYAKQAAAQcAoQD8AUMACQCwBi+wD9wwMQD//wBF/+oD4AXZAiYASQAAAQcAoQCFAAEACQCwCC+wI9wwMQD//wBR/+kFKgbbAiYBWAAAAQcAagEIARQADACwAC+wOtywJdAwMf//AD7/6QPfBE4CBgCdAAD//wA+/+kD4AXIAiYAnQAAAQcAagCPAAEADACwAC+wONywI9AwMf///6wAAAd1BwkCJgDaAAABBwBqAjEBQgAMALAJL7Ar3LAW0DAx////pQAABg4FswImAO4AAAEHAGoBYf/sAAwAsAkvsCvcsBbQMDH//wAl/+oEmAceAiYA2wAAAQcAagD4AVcADACwDS+wQNywK9AwMf//ACH/6gO4BccCJgDvAAABBgBqZwAADACwDS+wPdywKNAwMf//AEMAAAVuBu8CJgDcAAABBwBwAUEBSgAJALAAL7AK3DAxAP//AC8AAAQ3BZkCJgDwAAABBgBwe/QACQCwAC+wCtwwMQD//wBDAAAFbgcJAiYA3AAAAQcAagFwAUIADACwAC+wH9ywCtAwMf//AC8AAAQ3BbMCJgDwAAABBwBqAKr/7AAMALAAL7Af3LAK0DAx//8Ad//nBQ0G/wImADMAAAEHAGoBVAE4AAwAsAovsDjcsCPQMDH//wBF/+gEHwXHAiYAUwAAAQcAagCTAAAADACwAC+wONywI9AwMf//AGn/6QT8BcgCBgEXAAD//wBC/+cEIARTAgYBGAAA//8Aaf/pBPwHBAImARcAAAEHAGoBYAE9AAwAsAkvsDrcsCXQMDH//wBC/+cEIAXJAiYBGAAAAQcAagCQAAIADACwBC+wNdywINAwMf//AHT/6QT8Bx8CJgDnAAABBwBqAUwBWAAMALAVL7A43LAj0DAx//8ANP/nA9UFxwImAP8AAAEHAGoAhAAAAAwAsAgvsDfcsCLQMDH//wCT/+YFQAbvAiYA3gAAAQcAcADsAUoACQCwAS+wEdwwMQD///+l/kUD7AWtAiYAXQAAAQYAcC8IAAkAsAEvsBDcMDEA//8Ak//mBUAHCQImAN4AAAEHAGoBGwFCAAwAsAEvsCbcsBHQMDH///+l/kUD7AXHAiYAXQAAAQYAal4AAAwAsAEvsCXcsBDQMDH//wCT/+YFQAdBAiYA3gAAAQcApgFdAUIAFgCwAEVYsAEvG7EBHT5ZsBPcsBfQMDH///+l/kUEXgX/AiYAXQAAAQcApgCgAAAAFgCwAEVYsAEvG7EBGT5ZsBLcsBbQMDH//wDOAAAFRAcJAiYA4QAAAQcAagFEAUIAFgCwAEVYsBIvG7ESHT5ZsCjcsBzQMDH//wB7AAAEAAWzAiYA+QAAAQYAamnsAAwAsAgvsCjcsBPQMDH//wBFAAAGlgcJACYA5g8AACcALQSVAAABBwBqAggBQgAWALAARViwCi8bsQodPlmwIdywLdAwMf//ADAAAAWpBbMAJgD+AAAAJwCNBAoAAAEHAGoBav/sABYAsABFWLAKLxuxChk+WbAh3LAt0DAx//8AS//oBHUGAAIGAEgAAP///6/+nwSLBbACJgAlAAAABwCtBNwAAP//ADP+nwPPBFECJgBFAAAABwCtBCkAAP///68AAASLB7kCJgAlAAABBwCrBQEBRgAJALAEL7AY3DAxAP//ADP/6APPBoMCJgBFAAABBwCrBHMAEAAJALAYL7A53DAxAP///68AAAXtB8MCJgAlAAABBwI3APIBLgAWALAARViwBS8bsQUdPlmwDtywFNAwMf//ADP/6AVfBo4CJgBFAAABBgI3ZPkAFgCwAEVYsBgvG7EYGT5ZsC/csDXQMDH///+vAAAEiwe/AiYAJQAAAQcCOAD4AT0AFgCwAEVYsAUvG7EFHT5ZsAzcsBPQMDH//wAz/+gD/QaJAiYARQAAAQYCOGoHABYAsABFWLAYLxuxGBk+WbAv3LA00DAx////rwAABWwH6gImACUAAAEHAjkA8wEbABYAsABFWLAFLxuxBR0+WbAM3LAg0DAx//8AM//oBN4GtQImAEUAAAEGAjll5gAWALAARViwGC8bsRgZPlmwL9ywM9AwMf///68AAASLB9kCJgAlAAABBwI6AO8BBgAWALAARViwBC8bsQQdPlmwDtywFdAwMf//ADP/6AP3BqQCJgBFAAABBgI6YdEAFgCwAEVYsBgvG7EYGT5ZsC3csDbQMDH///+v/p8Eiwc2AiYAJQAAACcAngD5ATYBBwCtBNwAAAATALAARViwBC8bsQQdPlmwENwwMQD//wAz/p8DzwYAAiYARQAAACYAnmsAAQcArQQpAAAAEwCwAEVYsBgvG7EYGT5ZsDHcMDEA////rwAABIsHtwImACUAAAEHAjwBFwEtAAwAsAQvsA7csBrQMDH//wAz/+gD5QaCAiYARQAAAQcCPACJ//gADACwGC+wL9ywO9AwMf///68AAASLB7cCJgAlAAABBwI1ARcBLQAMALAEL7AO3LAa0DAx//8AM//oA+UGggImAEUAAAEHAjUAif/4AAwAsBgvsC/csDvQMDH///+vAAAEiwhAAiYAJQAAAQcCPQEeAT0ADACwBC+wDtywF9AwMf//ADP/6APVBwoCJgBFAAABBwI9AJAABwAMALAYL7Av3LA40DAx////rwAABJIIFAImACUAAAEHAlABHwFFAAwAsAQvsA7csBfQMDH//wAz/+gEBAbeAiYARQAAAQcCUACRAA8ADACwGC+wL9ywONAwMf///6/+nwSLBw8CJgAlAAAAJwChAS4BNwEHAK0E3AAAABMAsABFWLAELxuxBB0+WbAO3DAxAP//ADP+nwPsBdkCJgBFAAAAJwChAKAAAQEHAK0EKQAAABMAsABFWLAYLxuxGBk+WbAv3DAxAP//ADv+qQSxBbACJgApAAAABwCtBJ0ACv//AEX+nwPgBFECJgBJAAAABwCtBHQAAP//ADsAAASxB8UCJgApAAABBwCrBM8BUgAJALAGL7AZ3DAxAP//AEX/6gPgBoMCJgBJAAABBwCrBFgAEAAJALAIL7At3DAxAP//ADsAAASxBy0CJgApAAABBwClAM8BRgAJALAGL7AW3DAxAP//AEX/6gQGBesCJgBJAAABBgClWAQACQCwCC+wKtwwMQD//wA7AAAFuwfPAiYAKQAAAQcCNwDAAToAFgCwAEVYsAYvG7EGHT5ZsBHcsBXQMDH//wBF/+oFRAaOAiYASQAAAQYCN0n5ABYAsABFWLAILxuxCBk+WbAj3LAp0DAx//8AOwAABLEHywImACkAAAEHAjgAxgFJABYAsABFWLAGLxuxBh0+WbAP3LAU0DAx//8ARf/qA+IGiQImAEkAAAEGAjhPBwAWALAARViwCC8bsQgZPlmwI9ywKNAwMf//ADsAAAU6B/YCJgApAAABBwI5AMEBJwAWALAARViwBi8bsQYdPlmwD9ywIdAwMf//AEX/6gTDBrUCJgBJAAABBgI5SuYAFgCwAEVYsAgvG7EIGT5ZsCHcsDXQMDH//wA7AAAEsQflAiYAKQAAAQcCOgC9ARIAFgCwAEVYsAYvG7EGHT5ZsA/csBbQMDH//wBF/+oD4AakAiYASQAAAQYCOkbRABYAsABFWLAILxuxCBk+WbAj3LAq0DAx//8AO/6pBLEHQgImACkAAAAnAJ4AxwFCAQcArQSdAAoAEwCwAEVYsAYvG7EGHT5ZsBHcMDEA//8ARf6fA+AGAAImAEkAAAAmAJ5QAAEHAK0EdAAAABMAsABFWLAILxuxCBk+WbAl3DAxAP//AEkAAAK7B8UCJgAtAAABBwCrA4UBUgAJALACL7AR3DAxAP//AC4AAAJpBoECJgCNAAABBwCrAzMADgAJALACL7AR3DAxAP//AA7+qAIBBbACJgAtAAAABwCtA1MACf////H+qQHjBccCJgBNAAAABwCtAzYACv//AHf+nwUNBcgCJgAzAAAABwCtBPEAAP//AEX+nwQfBFICJgBTAAAABwCtBIQAAP//AHf/5wUNB7sCJgAzAAABBwCrBSIBSAAJALAKL7Aw3DAxAP//AEX/6AQfBoMCJgBTAAABBwCrBGEAEAAJALAAL7Aw3DAxAP//AHf/5wYOB8UCJgAzAAABBwI3ARMBMAAWALAARViwCi8bsQodPlmwJtywLNAwMf//AEX/6AVNBo4CJgBTAAABBgI3UvkAFgCwAEVYsAAvG7EAGT5ZsCbcsCzQMDH//wB3/+cFDQfBAiYAMwAAAQcCOAEZAT8AFgCwAEVYsAovG7EKHT5ZsCbcsCvQMDH//wBF/+gEHwaJAiYAUwAAAQYCOFgHABYAsABFWLAALxuxABk+WbAm3LAr0DAx//8Ad//nBY0H7AImADMAAAEHAjkBFAEdABYAsABFWLAKLxuxCh0+WbAm3LAq0DAx//8ARf/oBMwGtQImAFMAAAEGAjlT5gAWALAARViwAC8bsQAZPlmwJNywONAwMf//AHf/5wUNB9sCJgAzAAABBwI6ARABCAAWALAARViwCi8bsQodPlmwJNywLdAwMf//AEX/6AQfBqQCJgBTAAABBgI6T9EAFgCwAEVYsAAvG7EAGT5ZsCTcsC3QMDH//wB3/p8FDQc4AiYAMwAAACcAngEaATgBBwCtBPEAAAATALAARViwCi8bsQodPlmwKNwwMQD//wBF/p8EHwYAAiYAUwAAACYAnlkAAQcArQSEAAAAEwCwAEVYsAAvG7EAGT5ZsCjcMDEA//8AZ//pBhsHMQImAJgAAAEHAHUCDwExABMAsABFWLAKLxuxCh0+WbAr3DAxAP//AEL/5wT/BgACJgCZAAABBwB1AWYAAAATALAARViwAC8bsQAZPlmwKNwwMQD//wBn/+kGGwcxAiYAmAAAAQcARAGFATEAEwCwAEVYsAovG7EKHT5ZsCrcMDEA//8AQv/nBP8GAAImAJkAAAEHAEQA3AAAABMAsABFWLAALxuxABk+WbAn3DAxAP//AGf/6QYbB7QCJgCYAAABBwCrBR0BQQATALAARViwCi8bsQodPlmwKdwwMQD//wBC/+cE/waDAiYAmQAAAQcAqwR0ABAAEwCwAEVYsAAvG7EAGT5ZsCbcMDEA//8AZ//pBhsHHAImAJgAAAEHAKUBHQE1ABMAsABFWLAKLxuxCh0+WbAs3DAxAP//AEL/5wT/BesCJgCZAAABBgCldAQAEwCwAEVYsAAvG7EAGT5ZsCncMDEA//8AZ/6fBhsGNwImAJgAAAAHAK0E4wAA//8AQv6WBP8EsAImAJkAAAAHAK0Edv/3//8AZ/6fBSAFsAImADkAAAAHAK0EyAAA//8AW/6fBB4EOgImAFkAAAAHAK0EMAAA//8AZ//nBSAHuQImADkAAAEHAKsE/AFGAAkAsAAvsCDcMDEA//8AW//oBB4GgwImAFkAAAEHAKsEZQAQAAkAsAYvsCHcMDEA//8AZ//oBpoHQgImAJoAAAEHAHUCCQFCABMAsABFWLAaLxuxGh0+WbAd3DAxAP//AFr/6AVOBewCJgCbAAABBwB1AWD/7AATALAARViwFi8bsRYZPlmwHtwwMQD//wBn/+gGmgdCAiYAmgAAAQcARAF/AUIAEwCwAEVYsBIvG7ESHT5ZsBzcMDEA//8AWv/oBU4F7AImAJsAAAEHAEQA1v/sABMAsABFWLANLxuxDRk+WbAd3DAxAP//AGf/6AaaB8UCJgCaAAABBwCrBRcBUgATALAARViwGi8bsRodPlmwKNwwMQD//wBa/+gFTgZvAiYAmwAAAQcAqwRu//wAEwCwAEVYsA0vG7ENGT5ZsBzcMDEA//8AZ//oBpoHLQImAJoAAAEHAKUBFwFGABMAsABFWLAaLxuxGh0+WbAe3DAxAP//AFr/6AVOBdcCJgCbAAABBgClbvAAEwCwAEVYsBYvG7EWGT5ZsB/cMDEA//8AZ/6XBpoGAgImAJoAAAAHAK0E4f/4//8AWv6fBU4EkQImAJsAAAAHAK0EZAAA//8AqP6fBTIFsAImAD0AAAAHAK0ElwAA////pf4CA+wEOgImAF0AAAAHAK0E2v9j//8AqAAABTIHuQImAD0AAAEHAKsEywFGAAkAsAEvsBbcMDEA////pf5FA+wGgwImAF0AAAEHAKsELAAQAAkAsAEvsB3cMDEA//8AqAAABTIHIQImAD0AAAEHAKUAywE6AAkAsAEvsBPcMDEA////pf5FA+wF6wImAF0AAAEGAKUsBAAJALABL7Aa3DAxAP//AAD+zQURBgAAJgBIAAAAJwImAfkCRwAHAEMAf/9k//8AqP6ZBQkFsAImADgAAAAHAlECLQAA//8AYP6ZA+gEOgImAPYAAAAHAlEBuAAA//8Azv6ZBUQFsAImAOEAAAAHAlEC5wAA//8Ae/6ZBAAEOwImAPkAAAAHAlEB5gAA//8AQ/6ZBKUFsAImALEAAAAHAlEA5wAA//8ALf6ZA4MEOgImAOwAAAAHAlEAzgAA//8Aiv5VBcUFyAImAUwAAAAHAlEC4/+8//8AB/5ZBEcEUwImAU0AAAAHAlEB5//A//8AHwAAA+MGAAIGAEwAAAACACsAAASBBbAAEgAbAHGyFRwdERI5sBUQsADQALAARViwDy8bsQ8dPlmwAEVYsAkvG7EJET5Zsg4PCRESObAOL7ELAbAKK1gh2Bv0WbAA0LICDwkREjmwAi+wDhCwEdCwAhCxEwGwCitYIdgb9FmwCRCxFAGwCitYIdgb9FkwMQEjBwUWFgcGBCMhEyM3MzczBzMBAwUyNjc2JicCleQqATbY7BEQ/tjp/ee/yhvJI7wj5f68YAFKjcARDnx8BFDyAQHiv8f0BFCXycn92f3dAZ6DdogEAAACACsAAASBBbAAEgAbAHSyFRwdERI5sBUQsADQALAARViwEC8bsRAdPlmwAEVYsAkvG7EJET5ZshIQCRESObASL7EAAbAKK1gh2Bv0WbIDEAkREjmwAy+wABCwC9CwEhCwDdCwCRCxFQGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FkwMQEjBwUWFgcGBCMhEyM3MzczBzMBAwUyNjc2JicCleQqATbY7BEQ/tjp/ee/yhvJI7wj5f68YAFKjcARDnx8BFDyAQHiv8f0BFCXycn92f3dAZ6DdogEAAEAEAAABKUFsAANAFKyCw4PERI5ALAARViwCC8bsQgdPlmwAEVYsAIvG7ECET5Zsg0IAhESObANL7EAAbAKK1gh2Bv0WbAE0LANELAG0LAIELEKAbAKK1gh2Bv0WTAxASEDIxMjNzMTIQchAyECev78dr13qhupbANlHP1YUQEFAqz9VAKslwJtnv4xAAAB/+YAAAODBDoADQBSsgsODxESOQCwAEVYsAgvG7EIGT5ZsABFWLACLxuxAhE+WbINCAIREjmwDS+xAAGwCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhAyMTIzczEyEHIQMhAlD+5lO2U5obmU8Cmhz+HTQBGwHf/iEB35cBxJn+1QAAAQBJAAAFfgWwABQAbwCwAEVYsBIvG7ESHT5ZsABFWLAELxuxBB0+WbAARViwCy8bsQsRPlmwAEVYsAgvG7EIET5ZshMSCxESObATL7AQ0LENAbAKK1gh2Bv0WbAB0LALELAC0LACL7EKAbAKK1gh2Bv0WbIGCgIREjkwMQEjAzMBMwEBIwEjAyMTIzczNzMHMwKz5C6JAl33/WEBvNb+crJxvLvKG8kouyflBDf+9wKC/TX9GwKO/XIEN5fi4gAAAQArAAAEMgYAABQAaACwES+wAEVYsAQvG7EEGT5ZsABFWLALLxuxCxE+WbAARViwCC8bsQgRPlmyEBELERI5sBAvsBPQsQEBsAorWCHYG/RZsAsQsALQsAIvsQoBsAorWCHYG/RZsgYKAhESObABELAN0DAxASMDMwEzAQEjASMDIxMjNzM3MwczApXUYXIBfOT+MgE3yP71gle20+Eb4R21HdQEwf3NAaz+Cv28AfX+CwTBl6ioAAEAqAAABTIFsAAOAFeyCg8QERI5ALAARViwCC8bsQgdPlmwAEVYsAsvG7ELHT5ZsABFWLACLxuxAhE+WbIGAggREjmwBi+xBQGwCitYIdgb9FmwANCyCggCERI5sAYQsA7QMDEBIwMjEyM3MwEzEwEzATMDfNlbu1rVG5X+5szvAe/g/dWQAgn99wIJlwMQ/SYC2vzwAAEAXf5gBBoEOgAOAGSyAQ8QERI5ALAARViwCS8bsQkZPlmwAEVYsAsvG7ELGT5ZsABFWLADLxuxAxM+WbAARViwAC8bsQARPlmwAEVYsAQvG7EEET5ZsQYBsAorWCHYG/RZsgoLABESObAN0LAO0DAxBSMDIxMjNzMDMxMBMwEzAsffRrVG1hu9sbGJAZzA/gq+C/5rAZWXA6783AMk/FIAAAH/1AAABSsFsAARAGMAsABFWLAMLxuxDB0+WbAARViwDi8bsQ4dPlmwAEVYsAUvG7EFET5ZsABFWLADLxuxAxE+WbIJDAUREjl8sAkvGLAQ0LEAAbAKK1gh2Bv0WbIEBQwREjmwCNCyDQwFERI5MDEBIwEjAQEjASM3MwEzEwEzATMDsaQBOtP+/v5K6AIKlxuR/trQ/QGp6P4TjgKe/WICN/3JAp6XAnv90wIt/YUAAf/EAAAD9AQ6ABEAawCwAEVYsAwvG7EMGT5ZsABFWLAOLxuxDhk+WbAARViwBS8bsQURPlmwAEVYsAMvG7EDET5ZsgkFDBESOXywCS8YsQgBsAorWCHYG/RZsAHQsgQFDBESObINDAUREjmwCRCwEdB8sBEvGDAxASMTIwMBIwEjNzMDMxMBMwEzAw+x7MWz/s/dAYKhG57bxqcBJt7+mZ0B4f4fAZT+bAHhlwHC/nYBiv4+AP//ACn/5wPlBE0CBgC/AAD////XAAAEpAWwAiYAKgAAAAcCJv9E/n///wCaAosF1gMiAEYBr4gAZmZAAP//ABcAAAQrBccCBgAWAAD//wA0/+gEIQXHAgYAFwAA//8ABQAABB0FsAIGABgAAP//AHL/5wRqBbACBgAZAAD//wCE/+YEDAWyAAYAGhQA//8AVf/oBEoFyAAGABwUAP//AJT//gQTBcgABgAdAAD//wB8/+cEPwXJAAYAFBQA//8Aef/qBQYHVwImACsAAAEHAHUB9wFXABMAsABFWLAMLxuxDB0+WbAk3DAxAP//AAT+TwQoBgACJgBLAAABBwB1AU0AAAATALAARViwBC8bsQQZPlmwLNwwMQD//wA7AAAFdwc2AiYAMgAAAQcARAGdATYAEwCwAEVYsAYvG7EGHT5ZsAvcMDEA//8AHwAAA+MGAAImAFIAAAEHAEQA0gAAABMAsABFWLADLxuxAxk+WbAU3DAxAP///68AAASLByACJgAlAAABBwCsBIABMgAWALAARViwBC8bsQQdPlmwDNywENAwMf//ADP/6APPBesCJgBFAAABBwCsA/L//QAWALAARViwGC8bsRgZPlmwLdywMdAwMf//ADsAAASxBywCJgApAAABBwCsBE4BPgAWALAARViwBi8bsQYdPlmwDdywEdAwMf//AEX/6gPgBesCJgBJAAABBwCsA9f//QAWALAARViwCC8bsQgZPlmwIdywJdAwMf///98AAAKKBywCJgAtAAABBwCsAwQBPgAWALAARViwAi8bsQIdPlmwBdywCdAwMf///40AAAI4BekCJgCNAAABBwCsArL/+wAWALAARViwAi8bsQIZPlmwBdywCdAwMf//AHf/5wUNByICJgAzAAABBwCsBKEBNAAWALAARViwCi8bsQodPlmwJNywKNAwMf//AEX/6AQfBesCJgBTAAABBwCsA+D//QAWALAARViwAC8bsQAZPlmwJNywKNAwMf//ADoAAATCByACJgA2AAABBwCsBEMBMgAWALAARViwBC8bsQQdPlmwGdywHdAwMf//AB8AAALUBesCJgBWAAABBwCsA0n//QAWALAARViwCi8bsQoZPlmwEtywDdAwMf//AGf/5wUgByACJgA5AAABBwCsBHsBMgAWALAARViwCi8bsQodPlmwFNywGNAwMf//AFv/6AQeBesCJgBZAAABBwCsA+T//QAWALAARViwBy8bsQcZPlmwFdywGdAwMf///04AAAU8Bj8AJgDQZAAABwCu/i0AAP//ADv+qQSgBbACJgAmAAAABwCtBJgACv//AB/+lgP+BgACJgBGAAAABwCtBIb/9///ADv+qQTVBbACJgAoAAAABwCtBJcACv//AEv+nwR1BgACJgBIAAAABwCtBJkAAP//ADv+CQTVBbACJgAoAAABBwG6AR/+qgARALIAGgFdtkAaUBpgGgNdMDEA//8AS/3/BHUGAAImAEgAAAEHAboBIf6gAAoAtEAiUCICXTAx//8AO/6pBXcFsAImACwAAAAHAK0E+gAK//8AH/6pA+MGAAImAEwAAAAHAK0EfwAK//8AOwAABVAHMAImAC8AAAEHAHUBsAEwABMAsABFWLAFLxuxBR0+WbAO3DAxAP//ACAAAAQjB0ECJgBPAAABBwB1AX0BQQAJALAFL7AP3DAxAP//ADv++AVQBbACJgAvAAAABwCtBNIAWf//ACD+5QQaBgACJgBPAAAABwCtBFAARv//ADv+qQOxBbACJgAwAAAABwCtBJ0ACv////L+qQHuBgACJgBQAAAABwCtAzcACv//ADv+qQa3BbACJgAxAAAABwCtBacACv//AB7+qQZqBFICJgBRAAAABwCtBasACv//ADv+qQV3BbACJgAyAAAABwCtBP4ACv//AB/+qQPjBFICJgBSAAAABwCtBGYACv//AHf/5wUNB+YCJgAzAAABBwI2BR8BUwAgALAKL7As3LJ/LAFxsu8sAXGyTywBcbIvLAFxsDjQMDH//wA7AAAE8wdCAiYANAAAAQcAdQG0AUIAEwCwAEVYsAMvG7EDHT5ZsBbcMDEA////1/5gBDcF9wImAFQAAAEHAHUBkf/3ABMAsABFWLANLxuxDRk+WbAh3DAxAP//ADr+qQTCBbACJgA2AAAABwCtBJUACv///+7+qQLUBFQCJgBWAAAABwCtAzMACv//ACf+nwSjBccCJgA3AAAABwCtBKQAAP//AC7+lwO2BFACJgBXAAAABwCtBG3/+P//AKj+nwUJBbACJgA4AAAABwCtBJYAAP//AEP+nwKUBUACJgBYAAAABwCtA/oAAP//AGf/5wUgB+QCJgA5AAABBwI2BPkBUQAMALAAL7Ac3LAo0DAx//8ApAAABWEHLQImADoAAAEHAKUA4QFGABMAsABFWLABLxuxAR0+WbAK3DAxAP//AG4AAAPtBeICJgBaAAABBgClG/sAEwCwAEVYsAEvG7EBGT5ZsArcMDEA//8ApP6pBWEFsAImADoAAAAHAK0EygAK//8Abv6pA+0EOgImAFoAAAAHAK0EOAAK//8Aw/6pB0EFsAImADsAAAAHAK0FzQAK//8AgP6pBf4EOgImAFsAAAAHAK0FLAAK////6/6pBM4FsAImAD4AAAAHAK0EmAAK////7f6pA84EOgImAF4AAAAHAK0EQgAK///+xv/nBVMF1gAmADNGAAAHAXH91AAA////pQAAA+MFHAImAjMAAAAHAK7/q/7d////pQAABCsFHwAmAig8AAAHAK7+hP7g////wQAABNYFHAAmAeQ8AAAHAK7+oP7d////xQAAAeYFHgAmAeM8AAAHAK7+pP7f//8AE//qBFgFHAAmAd0KAAAHAK7+8v7d////XwAABKEFHAAmAdM8AAAHAK7+Pv7d//8AFgAABHQFGwAmAfMKAAAHAK7/Cv7c////pQAAA+MEjQIGAjMAAP//AB0AAAPnBI0CBgIyAAD//wAdAAAD7wSNAgYCKAAA////3AAABA4EjQIGAdIAAP//AB0AAASaBI0CBgHkAAD//wAqAAABqgSNAgYB4wAA//8AHQAABH8EjQIGAeEAAP//AB0AAAWwBI0CBgHfAAD//wAdAAAEmgSNAgYB3gAA//8ASv/qBE4EowIGAd0AAP//AB0AAAQpBI0CBgHcAAD//wBtAAAEQgSNAgYB2AAA//8AdAAABGUEjQIGAdMAAP///7YAAARtBI0CBgHUAAD//wAqAAACtQXlAiYB4wAAAQcAav9kAB4AFgCwAEVYsAIvG7ECGz5ZsA3csBnQMDH//wB0AAAEZQXlAiYB0wAAAQYAanoeABYAsABFWLAILxuxCBs+WbAS3LAe0DAx//8AHQAAA+8F5QImAigAAAEGAGp+HgAWALAARViwBi8bsQYbPlmwFdywIdAwMf//AB0AAAPhBh4CJgHqAAABBwB1ATsAHgATALAARViwBS8bsQUbPlmwCNwwMQD//wAR/+sD7QSdAgYB2QAA//8AKgAAAaoEjQIGAeMAAP//ACoAAAK1BeUCJgHjAAABBwBq/2QAHgAWALAARViwAi8bsQIbPlmwDdywGdAwMf////b/6wObBI0CBgHiAAD//wAdAAAEfwYeAiYB4QAAAQcAdQEtAB4AEwCwAEVYsAgvG7EIGz5ZsA/cMDEA//8AWP/oBFQF9wImAgEAAAEGAKF0HwATALAARViwAi8bsQIbPlmwFdwwMQD///+lAAAD4wSNAgYCMwAA//8AHQAAA+cEjQIGAjIAAP//AB0AAAPNBI0CBgHqAAD//wAdAAAD7wSNAgYCKAAA//8AHwAABKEF9wImAf4AAAEHAKEA1AAfABMAsABFWLAILxuxCBs+WbAN3DAxAP//AB0AAAWwBI0CBgHfAAD//wAdAAAEmgSNAgYB5AAA//8ASv/qBE4EowIGAd0AAP//AB0AAASGBI0CBgHvAAD//wAdAAAEKQSNAgYB3AAA//8AR//sBDcEowIGAjEAAP//AG0AAARCBI0CBgHYAAD///+2AAAEbQSNAgYB1AAAAAEAEf5QA94EoAAqAIkAsABFWLAPLxuxDxs+WbAARViwHS8bsR0RPlmwAEVYsBsvG7EbEz5ZsA8QsQcBsAorWCHYG/RZsA8QsAzQsiodDxESOXywKi8YtGAqcCoCXbKgKgFdtGAqcCoCcbEpAbAKK1gh2Bv0WbIUKSoREjmwHRCwGtCwIdCwGhCxIwGwCitYIdgb9FkwMQEyNjc2JyYnJgcGBwc2NhcWFgcGBxYWBwYGBwMjEyYmNzMUFxY2NzYlJzcCAX+SCgcZM5ZrRUMRthD7t77XCgryVWAFCOS8SLZKi5AFstmBqQsY/vuEGwKfYVc2JU0EAi0sUQGWsAIDpo24YiGGXZG4D/5eAawcqn+xBQNmW7wCAZgAAAEAHf6ZBJoEjQAPAHQAsAEvsABFWLAJLxuxCRs+WbAARViwDC8bsQwbPlmwAEVYsAYvG7EGET5ZsABFWLACLxuxAhE+WbIKBgkREjl8sAovGLRgCnAKAnGyoAoBXbRgCnAKAl2xBQGwCitYIdgb9FmwAhCxDgGwCitYIdgb9FkwMQEjEyMTIQMjEzMDIRMzAzMELrY+m1b9uFe1y7RZAkhatbGe/pkBZwHy/g4Ejf39AgP8DAAAAQBI/lYEPwSjAB4AWgCwAEVYsA0vG7ENGz5ZsABFWLADLxuxAxE+WbAARViwBC8bsQQTPlmwAxCwBtCwDRCwEdCwDRCxFAGwCitYIdgb9FmwAxCxHAGwCitYIdgb9FmwAxCwHtAwMQEGBgcDIxMmAjc3EgAXFhYXIyYmJyYGBwYXFhYXFjcD7h/srEe2Sp2fGAwlATnguNUIswVteJPKHxsGBXZs+0wBeqnRDv5kAakoASbGWAEIATAGBNW2coIEBcq2nmN1iwQK/AD//wB0AAAEZQSNAgYB0wAA//8AL/5RBWEEoQImAhcAAAAHAlECm/+4//8AHwAABKEFywImAf4AAAEHAHAAqgAmABMAsABFWLAILxuxCBs+WbAL3DAxAP//AFj/6ARUBcsCJgIBAAABBgBwSiYAEwCwAEVYsBEvG7ERGz5ZsBPcMDEA//8AUQAABPMEjQIGAfEAAP//ACr/6wV+BI0AJgHjAAAABwHiAeMAAP///5oAAAX/BgACJgJzAAAABwB1ApUAAP////T/xwSiBh4CJgJ1AAAABwB1AYIAHv//ABH9/wPtBJ0CJgHZAAAABwG6AOP+oP//AJUAAAYpBh4CJgHVAAAABwBEAacAHv//AJUAAAYpBh4CJgHVAAAABwB1AjEAHv//AJUAAAYpBeUCJgHVAAAABwBqAXEAHv//AHQAAARlBh4CJgHTAAAABwBEALAAHv///6/+TwSLBbACJgAlAAAABwCkAWcAAP//ADP+TwPPBFECJgBFAAAABwCkALQAAP//ADv+WQSxBbACJgApAAAABwCkASgACv//AEX+TwPgBFECJgBJAAAABwCkAP8AAP///6X+TwPjBI0CJgIzAAAABwCkAQwAAP//AB3+VwPvBI0CJgIoAAAABwCkANgACP////H+qQGfBDoCJgCNAAAABwCtAzYACgAAABoBPgABAAAAAAAAAC8AAAABAAAAAAABAAYALwABAAAAAAACAAYANQABAAAAAAADAA0AOwABAAAAAAAEAA0AOwABAAAAAAAFABMASAABAAAAAAAGAA0AWwABAAAAAAAHACAAaAABAAAAAAAJAAYAiAABAAAAAAALAAoAjgABAAAAAAAMABMAmAABAAAAAAANAC4AqwABAAAAAAAOACoA2QADAAEECQAAAF4BAwADAAEECQABAAwBYQADAAEECQACAAwBbQADAAEECQADABoBeQADAAEECQAEABoBeQADAAEECQAFACYBkwADAAEECQAGABoBuQADAAEECQAHAEAB0wADAAEECQAJAAwCEwADAAEECQALABQCHwADAAEECQAMACYCMwADAAEECQANAFwCWQADAAEECQAOAFQCtUNvcHlyaWdodCAyMDExIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuUm9ib3RvSXRhbGljUm9ib3RvIEl0YWxpY1ZlcnNpb24gMi4xMzc7IDIwMTdSb2JvdG8tSXRhbGljUm9ib3RvIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZS5Hb29nbGVHb29nbGUuY29tQ2hyaXN0aWFuIFJvYmVydHNvbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAbwBiAG8AdABvAEkAdABhAGwAaQBjAFIAbwBiAG8AdABvACAASQB0AGEAbABpAGMAVgBlAHIAcwBpAG8AbgAgADIALgAxADMANwA7ACAAMgAwADEANwBSAG8AYgBvAHQAbwAtAEkAdABhAGwAaQBjAFIAbwBiAG8AdABvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAARwBvAG8AZwBsAGUALgBHAG8AbwBnAGwAZQBHAG8AbwBnAGwAZQAuAGMAbwBtAEMAaAByAGkAcwB0AGkAYQBuACAAUgBvAGIAZQByAHQAcwBvAG4ATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAAAAwAA//QAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIACAAC//8ADwABAAIADgAAAAAAAAIoAAIAWQAlAD4AAQBFAF4AAQB5AHkAAQCBAIEAAQCDAIMAAQCGAIYAAQCJAIkAAQCLAJYAAQCYAJ0AAQCkAKQAAQCoAK0AAwCxALEAAQC6ALsAAQC/AL8AAQDBAMEAAQDDAMMAAQDHAMcAAQDLAMsAAQDNAM4AAQDQANEAAQDTANMAAQDaAN4AAQDhAOEAAQDlAOUAAQDnAOkAAQDrAPsAAQD9AP0AAQD/AQEAAQEDAQMAAQEIAQkAAQEWARoAAQEcARwAAQEgASIAAQEkASUAAwEqASsAAQEzATQAAQE2ATYAAQE7ATwAAQFBAUQAAQFHAUgAAQFLAU0AAQFRAVEAAQFUAVgAAQFdAV4AAQFiAWIAAQFkAWQAAQFoAWgAAQFqAWwAAQFuAW4AAQFwAXAAAQG6AboAAwG7AcEAAgHSAeYAAQHqAeoAAQHzAfMAAQH1AfUAAQH8Af4AAQIAAgEAAQIDAgMAAQIHAgcAAQIJAgsAAQIRAhEAAQIWAhgAAQIaAhoAAQIoAigAAQIrAisAAQItAi0AAQIwAjMAAQJfAmMAAQJ6AuIAAQLlA4sAAQONA6QAAQOmA7IAAQO0A70AAQO/A9oAAQPeA94AAQPgA+cAAQPpA+sAAQPuA/IAAQP0BHwAAQR/BH8AAQSCBIMAAQSFBIYAAQSIBIsAAQSVBNAAAQTSBPEAAQTzBPoAAQT8BP0AAQUHBQ0AAQABAAIAAAAMAAAALAABAA4AqACoAKkAqQCqAKoAqwCrAKwArAEkASUBJgEnAAEABQB5AKQArQCtAboAAAABAAAACgAyAEwABERGTFQAGmN5cmwAGmdyZWsAGmxhdG4AGgAEAAAAAP//AAIAAAABAAJjcHNwAA5rZXJuABQAAAABAAAAAAABAAEAAgAGAhAAAQAAAAEACAABAAoABQAkAEgAAQD6AAgACgAUABUAFgAXABgAGQAaABsAHAAdACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgBlAGcAgQCDAIQAjACPAJEAkwCxALIAswC0ALUAtgC3ALgAuQC6ANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA6ADpAS8BMwE1ATcBOQE7AUEBQwFFAUkBSwFMAVgBWQGXAZ0BogGlAnoCewJ9An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZArYCuAK6ArwCvgLAAsICxALGAsgCygLMAs4C0ALSAtQC1gLYAtoC3ALeAuAC4gLjAuUC5wLpAusC7QLvAvEC8wL1AvgC+gL8Av4DAAMCAwQDBgMIAwoDDAMOAxADEgMUAxYDGAMaAxwDHgMgAyIDJAMlAycDKQMrAy0DhgOHA4gDiQOKA4sDjAOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8ID0wPVA9cD2QPuA/AD8gQHBA0EEwR9BIIEhgUHBQkAAgAAAAIACjoYAAED8gAEAAAB9AfONMY0xgf8CF42/jeuNMw5zDd6CGQ4GDgYN7g4AjgYOBg5zDhEDAIM0DiKOVg5lDTeNoQ5sg1GN1w4ZjWMDYw4Og7CODo4OjeIOGY4fA/EOXYQJjU8OXYQQDhmOcwQhjXGNv45zDb+EQgSBhMIE+oUjDl2FJIUnDg6F4YZeBpqG3AbhhuMG5IejB6SHswfAh+MNaA1oCG+OBgiYCNeNN4lwDgYOBg1QjgYOBg4GCaWNaA4GDWgKEApBimYKfoq4DWWK241PDNGK5gtcjhmMQAxOjMkMyQ4ZjJwMvozJDMkMyQ2/jeIOVg5djNGOGY1xjWWNN41PDe4N7g3uDgYNN41PDgYOBg5zDWWNN41PDTGM3A0xjTGNMY6CDQSNGA6AjS8Oeo58DoCOfA56jnqOeo56jSuOfA0zDnMOcw5zDnMOIo2/jb+Nv42/jb+Nv42/jTMN3o3ejd6N3o4GDgYOBg4GDgYOcw5zDnMOcw5zDaEN1w3XDdcN1w3XDdcN1w1jDWMNYw1jDg6N4g3iDeIN4g3iDl2OXY2/jdcNv43XDb+N1w0zDTMNMw0zDnMN3o1jDd6NYw3ejWMN3o1jDd6NYw4GDg6OBg4GDgYOBg4GDe4OAI4AjgCOAI4GDg6OBg4OjgYODo4OjnMN4g5zDeIOcw3iDh8OHw4fDiKOIo4ijmUNoQ5djaEObI5sjmyOgI6AjoIOfA58DnwOfA58DnwOfA6AjoCOgI6AjoCOfA58DnwOgI56jS8NLw0vDS8OgI6AjoCOgg2/jd6OBg4GDnMNoQ2/jeuN3o5sjgYOBg3uDgYOBg5zDhEOIo2hDTeOBg2hDg6N4g5djeIN3o1xjgYOBg3uDe4NUI2/jeuNcY3ejgYOBg5zDhENMw4ijTeN1w1jDeIOGY5djU8NYw1ljl2OZQ5lDmUNoQ5djTGNMY0xjgYODo2/jdcN3o1jDlYOXY0zDaEOXY4GDTeNTw4GDb+N1w2/jdcN3o1jDWMNYw03jU8Ocw3iDeIOGY1Qjl2NUI5djVCOXY2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w3ejWMN3o1jDd6NYw3ejWMN3o1jDd6NYw3ejWMN3o1jDgYOBg5zDeIOcw3iDnMN4g5zDeIOcw3iDnMN4g5zDeIN4g2hDl2NoQ5djaEOXY4ijXGNZY4OjWgNcY3uDaEOBg4Ojb+N1w3ejgYOcw3iDh8N644ZjnMOcw4GDg6N7g3uDgCOBg4OjgYODo5zDhEOGY4fDiKOVg5djlYOXY5lDmyOcw58DoCOfA56joIOeo58DoCOggAAgCkAAQABAAAAAYABgABAAsADAACABMAEwAEACUAKgAFACwALQALAC8ANgANADgAOAAVADoAPwAWAEUARgAcAEkASgAeAEwATAAgAE8ATwAhAFEAVAAiAFYAVgAmAFgAWAAnAFoAXQAoAF8AXwAsAIoAigAtAJYAlgAuAJ0AnQAvALEAtQAwALcAuQA1ALsAuwA4AL0AvgA5AMAAwQA7AMMAxQA9AMcAzgBAANIA0gBIANQA3gBJAOAA7wBUAPEA8QBkAPYA+ABlAPsA/ABoAP4BAABqAQMBBQBtAQoBCgBwAQ0BDQBxARgBGgByASIBIgB1AS4BMAB2ATMBNQB5ATcBNwB8ATkBOQB9ATsBOwB+AUMBRAB/AVQBVACBAVYBVgCCAVgBWACDAVwBXgCEAYQBhQCHAYcBiQCJAdgB2ACMAdoB2wCNAd0B3QCPAeAB4QCQAesB7QCSAf8B/wCVAg4CEACWAjACMACZAjMCMwCaAkUCRQCbAkcCSACcAnoCewCeAn0CfQCgAn8ClAChApkCoAC3AqICpQC/AqoCrwDDArQCvADJAr4CvgDSAsACwADTAsICwgDUAsQCxADVAsYCzwDWAtgC2gDgAtwC3ADjAt4C3gDkAuAC4ADlAuIC4gDmAucC5wDnAukC6QDoAusC6wDpAu0C7QDqAu8C7wDrAvEC/QDsAv8C/wD5AwEDAQD6AwMDAwD7Aw4DDgD8AxADEAD9AxIDEgD+AyADIAD/AyIDJQEAAycDJwEEAykDKQEFAy8DOAEGA0MDRwEQA00DTwEVA1QDVAEYA2UDaQEZA20DbwEeA3gDeAEhA4YDiwEiA44DnQEoA6ADoAE4A6QDpAE5A6YDpgE6A6oDqgE7A60DrgE8A7ADsQE+A7MDuQFAA7sDvQFHA78DxAFKA8YDxwFQA8kDzAFSA9ID0wFWA9UD1QFYA9cD1wFZA9kD3AFaA98D5AFeA+YD5gFkA+oD6wFlA/AD8AFnA/ID+wFoA/4D/wFyBAEEBAF0BAsEDAF4BBAEEAF6BBIEGAF7BB4ERgGCBEgESAGrBEoEVwGsBF8EXwG6BHAEdQG7BHcEdwHBBHsEfAHCBH8EfwHEBIEEggHFBIQEhAHHBIYEhgHIBJcEmwHJBJ0EnQHOBJ8EoAHPBKIEogHRBKYEqAHSBKoEqgHVBKwErgHWBLAEsAHZBLIEsgHaBLQEugHbBLwEvAHiBL8EvwHjBMIExgHkBMgEyAHpBMoEywHqBM8EzwHsBNIE0gHtBNgE2AHuBN0E3QHvBOgE6AHwBOoE6gHxBPEE8QHyBPUE9QHzAAsAOP/YANL/2ADW/9gBOf/YAUX/2AMO/9gDEP/YAxL/2APB/9gEd//YBL//2AAYADoAFAA7ABIAPQAWARkAFAKZABYDIAASAyIAFgMkABYDiwAWA5oAFgOdABYD0wASA9UAEgPXABID2QAWA+oAFAPyABYEcAAWBHIAFgR0ABYEhgAWBMIAFATEABQExgASAAEAE/8gAOcAEP8WABL/FgAl/1YALv74ADgAFABF/94AR//rAEj/6wBJ/+sAS//rAFP/6wBV/+sAVv/mAFn/6gBa/+gAXf/oAJT/6wCZ/+sAm//qALL/VgC0/1YAu//rAL3/6ADI/+sAyf/rAMv/6gDSABQA1gAUAPf/6wED/+sBDf9WARj/6wEa/+gBHv/rASL/6wE5ABQBQv/rAUUAFAFg/+sBYf/rAWv/6wGG/xYBiv8WAY7/FgGP/xYB6//AAe3/wAIz/8ACf/9WAoD/VgKB/1YCgv9WAoP/VgKE/1YChf9WApr/3gKb/94CnP/eAp3/3gKe/94Cn//eAqD/3gKh/+sCov/rAqP/6wKk/+sCpf/rAqv/6wKs/+sCrf/rAq7/6wKv/+sCsP/qArH/6gKy/+oCs//qArT/6AK1/+gCtv9WArf/3gK4/1YCuf/eArr/VgK7/94Cvf/rAr//6wLB/+sCw//rAsX/6wLH/+sCyf/rAsv/6wLN/+sCz//rAtH/6wLT/+sC1f/rAtf/6wLl/vgC+f/rAvv/6wL9/+sDDgAUAxAAFAMSABQDFf/qAxf/6gMZ/+oDG//qAx3/6gMf/+oDI//oAzL/wAMz/8ADNP/AAzX/wAM2/8ADN//AAzj/wANN/8ADTv/AA0//wAOG/1YDjv9WA57/6wOi/+oDpP/rA6b/6AOp/+oDqv/rA6v/6gOy/vgDtv9WA8EAFAPD/94DxP/rA8b/6wPI/+sDyf/oA8v/6wPS/+gD2v/oA+L/VgPj/94D5v/rA+v/6APs/+sD8f/rA/P/6AP4/1YD+f/eA/r/VgP7/94D///rBAH/6wQC/+sEDP/rBA7/6wQQ/+sEFP/oBBb/6AQY/+gEHf/rBB7/VgQf/94EIP9WBCH/3gQi/1YEI//eBCT/VgQl/94EJv9WBCf/3gQo/1YEKf/eBCr/VgQr/94ELP9WBC3/3gQu/1YEL//eBDD/VgQx/94EMv9WBDP/3gQ0/1YENf/eBDf/6wQ5/+sEO//rBD3/6wQ//+sEQf/rBEP/6wRF/+sES//rBE3/6wRP/+sEUf/rBFP/6wRV/+sEV//rBFn/6wRb/+sEXf/rBF//6wRh/+sEY//qBGX/6gRn/+oEaf/qBGv/6gRt/+oEb//qBHH/6ARz/+gEdf/oBHcAFASZ/1YEmv/eBJz/6wSg/+sEpP/qBKn/6wSr/+sEvwAUBMP/6ATF/+gEy//ABNL/wATq/8AAMwA4/9UAOv/kADv/7AA9/90A0v/VANb/1QEZ/+QBOf/VAUX/1QHrAA4B7QAOAjMADgKZ/90DDv/VAxD/1QMS/9UDIP/sAyL/3QMk/90DMgAOAzMADgM0AA4DNQAOAzYADgM3AA4DOAAOA00ADgNOAA4DTwAOA4v/3QOa/90Dnf/dA8H/1QPT/+wD1f/sA9f/7APZ/90D6v/kA/L/3QRw/90Ecv/dBHT/3QR3/9UEhv/dBL//1QTC/+QExP/kBMb/7ATLAA4E0gAOBOoADgAdADj/sAA6/+0APf/QANL/sADW/7ABGf/tATn/sAFF/7ACmf/QAw7/sAMQ/7ADEv+wAyL/0AMk/9ADi//QA5r/0AOd/9ADwf+wA9n/0APq/+0D8v/QBHD/0ARy/9AEdP/QBHf/sASG/9AEv/+wBML/7QTE/+0AEQAu/+4AOf/uApX/7gKW/+4Cl//uApj/7gLl/+4DFP/uAxb/7gMY/+4DGv/uAxz/7gMe/+4Dsv/uBGL/7gRk/+4Ewf/uAE0ABgAQAAsAEAANABQAQQASAEf/6ABI/+gASf/oAEv/6ABV/+gAYQATAJT/6ACZ/+gAu//oAMj/6ADJ/+gA9//oAQP/6AEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEABABhQAQAYcAEAGIABABiQAQAqH/6AKi/+gCo//oAqT/6AKl/+gCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AOe/+gDxP/oA8j/6APL/+gD2wAQA9wAEAPfABAD5v/oA+z/6APx/+gD///oBAH/6AQC/+gEDv/oBB3/6AQ3/+gEOf/oBDv/6AQ9/+gEP//oBEH/6ARD/+gERf/oBFn/6ARb/+gEXf/oBGH/6ASc/+gEqf/oBKv/6ABAAEf/7ABI/+wASf/sAEv/7ABV/+wAlP/sAJn/7AC7/+wAyP/sAMn/7AD3/+wBA//sAR7/7AEi/+wBQv/sAWD/7AFh/+wBa//sAqH/7AKi/+wCo//sAqT/7AKl/+wCvf/sAr//7ALB/+wCw//sAsX/7ALH/+wCyf/sAsv/7ALN/+wCz//sAtH/7ALT/+wC1f/sAtf/7AOe/+wDxP/sA8j/7APL/+wD5v/sA+z/7APx/+wD///sBAH/7AQC/+wEDv/sBB3/7AQ3/+wEOf/sBDv/7AQ9/+wEP//sBEH/7ARD/+wERf/sBFn/7ARb/+wEXf/sBGH/7ASc/+wEqf/sBKv/7AAYAFP/7AEY/+wCq//sAqz/7AKt/+wCrv/sAq//7AL5/+wC+//sAv3/7AOk/+wDqv/sA8b/7AQM/+wEEP/sBEv/7ARN/+wET//sBFH/7ART/+wEVf/sBFf/7ARf/+wEoP/sAAYAEP+EABL/hAGG/4QBiv+EAY7/hAGP/4QAEQAu/+wAOf/sApX/7AKW/+wCl//sApj/7ALl/+wDFP/sAxb/7AMY/+wDGv/sAxz/7AMe/+wDsv/sBGL/7ARk/+wEwf/sACAABv/yAAv/8gBa//MAXf/zAL3/8wD2//UBGv/zAYT/8gGF//IBh//yAYj/8gGJ//ICtP/zArX/8wMj//MDpv/zA8n/8wPS//MD2v/zA9v/8gPc//ID3//yA+v/8wPz//MEFP/zBBb/8wQY//MEcf/zBHP/8wR1//MEw//zBMX/8wA/ACf/8wAr//MAM//zADX/8wCD//MAk//zAJj/8wCz//MAxAANANP/8wEI//MBF//zARv/8wEd//MBH//zASH/8wFB//MBav/zAkX/8wJG//MCSP/zAkn/8wKG//MCkP/zApH/8wKS//MCk//zApT/8wK8//MCvv/zAsD/8wLC//MC0P/zAtL/8wLU//MC1v/zAvj/8wL6//MC/P/zAy3/8wOK//MDl//zA73/8wPA//MD7f/zA/D/8wQL//MEDf/zBA//8wRK//METP/zBE7/8wRQ//MEUv/zBFT/8wRW//MEWP/zBFr/8wRc//MEXv/zBGD/8wSf//MEuP/zAEAAJ//mACv/5gAz/+YANf/mAIP/5gCT/+YAmP/mALP/5gC4/8IAxAAQANP/5gEI/+YBF//mARv/5gEd/+YBH//mASH/5gFB/+YBav/mAkX/5gJG/+YCSP/mAkn/5gKG/+YCkP/mApH/5gKS/+YCk//mApT/5gK8/+YCvv/mAsD/5gLC/+YC0P/mAtL/5gLU/+YC1v/mAvj/5gL6/+YC/P/mAy3/5gOK/+YDl//mA73/5gPA/+YD7f/mA/D/5gQL/+YEDf/mBA//5gRK/+YETP/mBE7/5gRQ/+YEUv/mBFT/5gRW/+YEWP/mBFr/5gRc/+YEXv/mBGD/5gSf/+YEuP/mADgAJf/kADz/0gA9/9MAsv/kALT/5ADE/+IA2v/SAQ3/5AEz/9IBQ//SAV3/0gJ//+QCgP/kAoH/5AKC/+QCg//kAoT/5AKF/+QCmf/TArb/5AK4/+QCuv/kAyL/0wMk/9MDhv/kA4v/0wOO/+QDmv/TA5v/0gOd/9MDtv/kA8L/0gPZ/9MD4v/kA/L/0wP1/9ID+P/kA/r/5AQD/9IEHv/kBCD/5AQi/+QEJP/kBCb/5AQo/+QEKv/kBCz/5AQu/+QEMP/kBDL/5AQ0/+QEcP/TBHL/0wR0/9MEhv/TBJn/5AAoABD/HgAS/x4AJf/NALL/zQC0/80Ax//yAQ3/zQGG/x4Biv8eAY7/HgGP/x4Cf//NAoD/zQKB/80Cgv/NAoP/zQKE/80Chf/NArb/zQK4/80Cuv/NA4b/zQOO/80Dtv/NA+L/zQP4/80D+v/NBB7/zQQg/80EIv/NBCT/zQQm/80EKP/NBCr/zQQs/80ELv/NBDD/zQQy/80ENP/NBJn/zQABAMQADgACAMr/7QD2/8AAugBH/9wASP/cAEn/3ABL/9wAUf/zAFL/8wBT/9YAVP/zAFX/3ABZ/90AWv/hAF3/4QCU/9wAmf/cAJv/3QC7/9wAvf/hAL7/7gC//+YAwf/zAML/6wDD/+kAxf/wAMb/5wDI/9wAyf/cAMr/4wDL/90AzP/OAM3/1ADO/9sA7P/zAPD/8wDx//MA8//zAPT/8wD1//MA9//cAPj/8wD6//MA+//zAP7/8wEA//MBA//cAQX/8wEY/9YBGv/hAR7/3AEi/9wBK//zATb/8wE8//MBPv/zAUL/3AFT//MBVf/zAVf/8wFc//MBYP/cAWH/3AFr/9wCof/cAqL/3AKj/9wCpP/cAqX/3AKq//MCq//WAqz/1gKt/9YCrv/WAq//1gKw/90Csf/dArL/3QKz/90CtP/hArX/4QK9/9wCv//cAsH/3ALD/9wCxf/cAsf/3ALJ/9wCy//cAs3/3ALP/9wC0f/cAtP/3ALV/9wC1//cAvL/8wL0//MC9v/zAvf/8wL5/9YC+//WAv3/1gMV/90DF//dAxn/3QMb/90DHf/dAx//3QMj/+EDnv/cA6D/8wOi/90DpP/WA6b/4QOp/90Dqv/WA6v/3QPE/9wDxf/zA8b/1gPH//MDyP/cA8n/4QPL/9wDzP/zA9H/8wPS/+ED2v/hA+H/8wPm/9wD5//zA+v/4QPs/9wD8f/cA/P/4QP//9wEAf/cBAL/3AQI//MECv/zBAz/1gQO/9wEEP/WBBT/4QQW/+EEGP/hBBz/8wQd/9wEN//cBDn/3AQ7/9wEPf/cBD//3ARB/9wEQ//cBEX/3ARL/9YETf/WBE//1gRR/9YEU//WBFX/1gRX/9YEWf/cBFv/3ARd/9wEX//WBGH/3ARj/90EZf/dBGf/3QRp/90Ea//dBG3/3QRv/90Ecf/hBHP/4QR1/+EEfP/zBJj/8wSc/9wEoP/WBKT/3QSp/9wEq//cBLX/8wS3//MEw//hBMX/4QB8AAb/2gAL/9oAR//wAEj/8ABJ//AAS//wAFX/8ABZ/+8AWv/cAF3/3ACU//AAmf/wAJv/7wC7//AAvf/cAML/7ADEAA8Axv/qAMj/8ADJ//AAyv/EAMv/7wDM/+cA9//wAQP/8AEa/9wBHv/wASL/8AFC//ABYP/wAWH/8AFr//ABhP/aAYX/2gGH/9oBiP/aAYn/2gKh//ACov/wAqP/8AKk//ACpf/wArD/7wKx/+8Csv/vArP/7wK0/9wCtf/cAr3/8AK///ACwf/wAsP/8ALF//ACx//wAsn/8ALL//ACzf/wAs//8ALR//AC0//wAtX/8ALX//ADFf/vAxf/7wMZ/+8DG//vAx3/7wMf/+8DI//cA57/8AOi/+8Dpv/cA6n/7wOr/+8DxP/wA8j/8APJ/9wDy//wA9L/3APa/9wD2//aA9z/2gPf/9oD5v/wA+v/3APs//AD8f/wA/P/3AP///AEAf/wBAL/8AQO//AEFP/cBBb/3AQY/9wEHf/wBDf/8AQ5//AEO//wBD3/8AQ///AEQf/wBEP/8ARF//AEWf/wBFv/8ARd//AEYf/wBGP/7wRl/+8EZ//vBGn/7wRr/+8Ebf/vBG//7wRx/9wEc//cBHX/3ASc//AEpP/vBKn/8ASr//AEw//cBMX/3AA8AAb/oAAL/6AASv/pAFn/8QBa/8UAXf/FAJv/8QC9/8UAwv/uAMQAEADG/+wAyv8gAMv/8QEa/8UBhP+gAYX/oAGH/6ABiP+gAYn/oAKw//ECsf/xArL/8QKz//ECtP/FArX/xQMV//EDF//xAxn/8QMb//EDHf/xAx//8QMj/8UDov/xA6b/xQOp//EDq//xA8n/xQPS/8UD2v/FA9v/oAPc/6AD3/+gA+v/xQPz/8UEFP/FBBb/xQQY/8UEY//xBGX/8QRn//EEaf/xBGv/8QRt//EEb//xBHH/xQRz/8UEdf/FBKT/8QTD/8UExf/FAEEAR//nAEj/5wBJ/+cAS//nAFX/5wCU/+cAmf/nALv/5wDEAA8AyP/nAMn/5wD3/+cBA//nAR7/5wEi/+cBQv/nAWD/5wFh/+cBa//nAqH/5wKi/+cCo//nAqT/5wKl/+cCvf/nAr//5wLB/+cCw//nAsX/5wLH/+cCyf/nAsv/5wLN/+cCz//nAtH/5wLT/+cC1f/nAtf/5wOe/+cDxP/nA8j/5wPL/+cD5v/nA+z/5wPx/+cD///nBAH/5wQC/+cEDv/nBB3/5wQ3/+cEOf/nBDv/5wQ9/+cEP//nBEH/5wRD/+cERf/nBFn/5wRb/+cEXf/nBGH/5wSc/+cEqf/nBKv/5wAFAMr/6gDt/+4A9v+rATr/7AFt/+wAAQD2/9UAAQDKAAsAvgAGAAwACwAMAEf/6ABI/+gASf/oAEoADABL/+gAU//qAFX/6ABaAAsAXQALAJT/6ACZ/+gAu//oAL0ACwC+/+0AxgALAMj/6ADJ/+gAygAMAPf/6AED/+gBGP/qARoACwEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEAAwBhQAMAYcADAGIAAwBiQAMAdMADQHWAA0B2AAOAdn/9QHb/+wB3f/tAeX/7AHr/78B7P/tAe3/vwH0AA4B9f/tAfgADgIQAA4CEf/tAhIADQIUAA4CGv/tAjH/7gIz/78Cof/oAqL/6AKj/+gCpP/oAqX/6AKr/+oCrP/qAq3/6gKu/+oCr//qArQACwK1AAsCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AL5/+oC+//qAv3/6gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/+gDpP/qA6YACwOq/+oDxP/oA8b/6gPI/+gDyQALA8v/6APSAAsD2gALA9sADAPcAAwD3wAMA+b/6APrAAsD7P/oA/H/6APzAAsD///oBAH/6AQC/+gEDP/qBA7/6AQQ/+oEFAALBBYACwQYAAsEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gES//qBE3/6gRP/+oEUf/qBFP/6gRV/+oEV//qBFn/6ARb/+gEXf/oBF//6gRh/+gEcQALBHMACwR1AAsEnP/oBKD/6gSp/+gEq//oBMMACwTFAAsEy/+/BM//7QTQAA0E0v+/BN4ADQThAA0E6v+/BPH/7QT0/+0E9QAOBPn/7QT6AA0AAQD2/9gADgBc/+0AXv/tAO7/7QD2/6oBNP/tAUT/7QFe/+0DJv/tAyj/7QMq/+0Dyv/tA/b/7QQE/+0Eyf/tAA0AXP/yAF7/8gDu//IBNP/yAUT/8gFe//IDJv/yAyj/8gMq//IDyv/yA/b/8gQE//IEyf/yACIAWv/0AFz/8gBd//QAXv/zAL3/9ADu//IBGv/0ATT/8gFE//IBXv/yArT/9AK1//QDI//0Ayb/8wMo//MDKv/zA6b/9APJ//QDyv/yA9L/9APa//QD6//0A/P/9AP2//IEBP/yBBT/9AQW//QEGP/0BHH/9ARz//QEdf/0BMP/9ATF//QEyf/zAIwABv/KAAv/ygA4/9IAOv/UADz/9AA9/9MAUf/RAFL/0QBU/9EAWv/mAFz/7wBd/+YAvf/mAMH/0QDS/9IA1v/SANr/9ADe/+0A4f/hAOb/1ADs/9EA7v/vAPD/0QDx/9EA8//RAPT/0QD1/9EA9v/JAPj/0QD6/9EA+//RAP7/0QEA/9EBBf/RAQn/5QEZ/9QBGv/mASD/4wEr/9EBM//0ATT/7wE2/9EBOf/SATr/xAE8/9EBPv/RAUP/9AFE/+8BRf/SAUf/4QFJ/+EBU//RAVX/0QFX/9EBXP/RAV3/9AFe/+8BYv/UAWP/9QFk/+cBbP/SAW3/yQGE/8oBhf/KAYf/ygGI/8oBif/KApn/0wKq/9ECtP/mArX/5gLy/9EC9P/RAvb/0QL3/9EDDv/SAxD/0gMS/9IDIv/TAyP/5gMk/9MDi//TA5r/0wOb//QDnf/TA6D/0QOm/+YDtf/tA8H/0gPC//QDxf/RA8f/0QPJ/+YDyv/vA8z/0QPR/9ED0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD4f/RA+f/0QPq/9QD6//mA/L/0wPz/+YD9f/0A/b/7wQD//QEBP/vBAj/0QQK/9EEE//tBBT/5gQV/+0EFv/mBBf/7QQY/+YEGf/hBBz/0QRw/9MEcf/mBHL/0wRz/+YEdP/TBHX/5gR3/9IEef/hBHz/0QSG/9MEmP/RBLX/0QS3/9EEv//SBML/1ATD/+YExP/UBMX/5gAoADj/vgBa/+8AXf/vAL3/7wDS/74A1v++AOb/yQD2/98BCf/tARr/7wEg/+sBOf++ATr/3wFF/74BTP/pAWP/9QFt/+ACtP/vArX/7wMO/74DEP++AxL/vgMj/+8Dpv/vA8H/vgPJ/+8D0v/vA9r/7wPr/+8D8//vBBT/7wQW/+8EGP/vBHH/7wRz/+8Edf/vBHf/vgS//74Ew//vBMX/7wA/ADj/5gA6/+cAPP/yAD3/5wBc//EA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7v/xAPb/0AEZ/+cBM//yATT/8QE5/+YBOv/OAUP/8gFE//EBRf/mAUf/6AFJ/+gBXf/yAV7/8QFi/+cBZP/tAWz/5gFt/9ACmf/nAw7/5gMQ/+YDEv/mAyL/5wMk/+cDi//nA5r/5wOb//IDnf/nA7X/7gPB/+YDwv/yA8r/8QPZ/+cD6v/nA/L/5wP1//ID9v/xBAP/8gQE//EEE//uBBX/7gQX/+4EGf/oBHD/5wRy/+cEdP/nBHf/5gR5/+gEhv/nBL//5gTC/+cExP/nAJgAJQAQACf/6AAr/+gAM//oADX/6AA4/+AAOv/gAD3/3wCD/+gAk//oAJj/6ACyABAAs//oALQAEADS/+AA0//oANQAEADW/+AA2QAUAN0AEADh/+EA5v/gAO0AEwDyABAA+f/gAQQAEAEI/+gBDQAQARf/6AEZ/+ABG//oAR3/6AEf/+gBIf/oATn/4AFB/+gBRf/gAUf/4QFI/+ABSf/hAUr/4AFN/+EBUAAQAVEAEAFY/+kBYv/fAWT/3gFmABABav/oAWz/3wFu//IBbwAQAXAAEAJF/+gCRv/oAkj/6AJJ/+gCfwAQAoAAEAKBABACggAQAoMAEAKEABAChQAQAob/6AKQ/+gCkf/oApL/6AKT/+gClP/oApn/3wK2ABACuAAQAroAEAK8/+gCvv/oAsD/6ALC/+gC0P/oAtL/6ALU/+gC1v/oAvj/6AL6/+gC/P/oAw7/4AMQ/+ADEv/gAyL/3wMk/98DLf/oA4YAEAOK/+gDi//fA44AEAOX/+gDmv/fA53/3wO2ABADvf/oA8D/6APB/+AD2f/fA+IAEAPq/+AD7f/oA/D/6APy/98D+AAQA/oAEAQL/+gEDf/oBA//6AQZ/+EEGv/gBB4AEAQgABAEIgAQBCQAEAQmABAEKAAQBCoAEAQsABAELgAQBDAAEAQyABAENAAQBEr/6ARM/+gETv/oBFD/6ARS/+gEVP/oBFb/6ARY/+gEWv/oBFz/6ARe/+gEYP/oBHD/3wRy/98EdP/fBHf/4AR5/+EEev/gBIb/3wSZABAEn//oBLj/6AS//+AEwv/gBMT/4AA1ABv/8gA4//EAOv/0ADz/9AA9//AA0v/xANT/9QDW//EA2v/0AN3/9QDe//MA5v/xARn/9AEz//QBOf/xAUP/9AFF//EBUP/1AV3/9AFi//IBZP/yAWb/9QFs//IBb//1Apn/8AMO//EDEP/xAxL/8QMi//ADJP/wA4v/8AOa//ADm//0A53/8AO1//MDwf/xA8L/9APZ//AD6v/0A/L/8AP1//QEA//0BBP/8wQV//MEF//zBHD/8ARy//AEdP/wBHf/8QSG//AEv//xBML/9ATE//QAagAlAA8AOP/mADr/5gA8AA4APf/mALIADwC0AA8A0v/mANQADgDW/+YA2QATANoADgDdAA4A3gALAOH/5QDm/+YA5//0AO0AEgDyAA8A9v/nAPn/6AEEAA8BDQAPARn/5gEzAA4BOf/mATr/5wFDAA4BRf/mAUf/5QFI/+gBSf/lAUr/6AFM/+QBUAAOAVEADwFdAA4BYv/mAWT/5gFmAA4BbP/mAW3/5wFvAA4BcAAPAn8ADwKAAA8CgQAPAoIADwKDAA8ChAAPAoUADwKZ/+YCtgAPArgADwK6AA8DDv/mAxD/5gMS/+YDIv/mAyT/5gOGAA8Di//mA44ADwOa/+YDmwAOA53/5gO1AAsDtgAPA8H/5gPCAA4D2f/mA+IADwPq/+YD8v/mA/UADgP4AA8D+gAPBAMADgQTAAsEFQALBBcACwQZ/+UEGv/oBB4ADwQgAA8EIgAPBCQADwQmAA8EKAAPBCoADwQsAA8ELgAPBDAADwQyAA8ENAAPBHD/5gRy/+YEdP/mBHf/5gR5/+UEev/oBIb/5gSZAA8Ev//mBML/5gTE/+YAMQA4/+MAPP/lAD3/5ADS/+MA1P/lANb/4wDZ/+IA2v/lAN3/5QDe/+kA8v/qAQT/6gEz/+UBOf/jAUP/5QFF/+MBUP/lAVH/6gFd/+UBZv/lAWz/5AFv/+UBcP/qApn/5AMO/+MDEP/jAxL/4wMi/+QDJP/kA4v/5AOa/+QDm//lA53/5AO1/+kDwf/jA8L/5QPZ/+QD8v/kA/X/5QQD/+UEE//pBBX/6QQX/+kEcP/kBHL/5AR0/+QEd//jBIb/5AS//+MAJAA4/+IAPP/kANL/4gDU/+QA1v/iANn/4QDa/+QA3f/kAN7/6QDt/+QA8v/rAQT/6wEz/+QBOf/iAUP/5AFF/+IBUP/kAVH/6wFd/+QBZv/kAW//5AFw/+sDDv/iAxD/4gMS/+IDm//kA7X/6QPB/+IDwv/kA/X/5AQD/+QEE//pBBX/6QQX/+kEd//iBL//4gAYADj/6wA9//MA0v/rANb/6wE5/+sBRf/rApn/8wMO/+sDEP/rAxL/6wMi//MDJP/zA4v/8wOa//MDnf/zA8H/6wPZ//MD8v/zBHD/8wRy//MEdP/zBHf/6wSG//MEv//rADkAUf/vAFL/7wBU/+8AXP/wAMH/7wDs/+8A7f/uAO7/8ADw/+8A8f/vAPP/7wD0/+8A9f/vAPb/7gD4/+8A+v/vAPv/7wD+/+8BAP/vAQX/7wEJ//QBIP/xASv/7wE0//ABNv/vATr/7wE8/+8BPv/vAUT/8AFT/+8BVf/vAVf/7wFc/+8BXv/wAW3/7wKq/+8C8v/vAvT/7wL2/+8C9//vA6D/7wPF/+8Dx//vA8r/8APM/+8D0f/vA+H/7wPn/+8D9v/wBAT/8AQI/+8ECv/vBBz/7wR8/+8EmP/vBLX/7wS3/+8AIwAG//IAC//yAFr/9QBd//UAvf/1APb/9AEJ//UBGv/1ATr/9QFt//UBhP/yAYX/8gGH//IBiP/yAYn/8gK0//UCtf/1AyP/9QOm//UDyf/1A9L/9QPa//UD2//yA9z/8gPf//ID6//1A/P/9QQU//UEFv/1BBj/9QRx//UEc//1BHX/9QTD//UExf/1AAoA7QAUAPb/7QD5/+0A/P/iATr/7QFI/+0BSv/tAW3/7QQa/+0Eev/tAHYAR//wAEj/8ABJ//AAS//wAFP/6wBV//AAlP/wAJn/8AC7//AAyP/wAMn/8AD3//ABA//wARj/6wEc/+sBHv/wASL/8AFC//ABYP/wAWH/8AFr//AB2//rAd3/6wHl/+kB7P/rAfX/6wIR/+sCGv/rAjH/6wKh//ACov/wAqP/8AKk//ACpf/wAqv/6wKs/+sCrf/rAq7/6wKv/+sCvf/wAr//8ALB//ACw//wAsX/8ALH//ACyf/wAsv/8ALN//ACz//wAtH/8ALT//AC1f/wAtf/8AL5/+sC+//rAv3/6wM5/+sDQ//rA0T/6wNF/+sDRv/rA0f/6wNQ/+sDUf/rA1L/6wNT/+sDWv/rA1v/6wNc/+sDXf/rA23/6wNu/+sDb//rA57/8AOk/+sDqv/rA8T/8APG/+sDyP/wA8v/8APm//AD7P/wA/H/8AP///AEAf/wBAL/8AQM/+sEDv/wBBD/6wQd//AEN//wBDn/8AQ7//AEPf/wBD//8ARB//AEQ//wBEX/8ARL/+sETf/rBE//6wRR/+sEU//rBFX/6wRX/+sEWf/wBFv/8ARd//AEX//rBGH/8ASc//AEoP/rBKn/8ASr//AEz//rBPH/6wT0/+sE+f/rAOMABgANAAsADQBF//AAR/+wAEj/sABJ/7AASgANAEv/sABT/9YAVf+wAFoACwBdAAsAlP+wAJn/sAC7/7AAvQALAL7/sADH/6sAyP/AAMn/sADM/9UA7f+qAPL/rwD3/7ABA/+wAQT/rwEY/9YBGgALARz/4gEe/7ABIAAMASL/sAFC/7ABUf+vAWD/sAFh/7ABYwALAWUACwFr/7ABcP+vAYQADQGFAA0BhwANAYgADQGJAA0B0wANAdYADQHYAA4B2f/1Adv/7AHd/+0B5f/sAev/vwHs/+0B7f+/AfQADgH1/+0B+AAOAhAADgIR/+0CEgANAhQADgIa/+0CMf/uAjP/vwKa//ACm//wApz/8AKd//ACnv/wAp//8AKg//ACof+wAqL/sAKj/7ACpP+wAqX/sAKr/9YCrP/WAq3/1gKu/9YCr//WArQACwK1AAsCt//wArn/8AK7//ACvf+wAr//sALB/7ACw/+wAsX/sALH/7ACyf+wAsv/sALN/7ACz/+wAtH/sALT/7AC1f+wAtf/sAL5/9YC+//WAv3/1gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/7ADpP/WA6YACwOq/9YDw//wA8T/sAPG/9YDyP+wA8kACwPL/7AD0gALA9oACwPbAA0D3AANA98ADQPj//AD5v+wA+sACwPs/7AD8f+wA/MACwP5//AD+//wA///sAQB/7AEAv+wBAz/1gQO/7AEEP/WBBQACwQWAAsEGAALBB3/sAQf//AEIf/wBCP/8AQl//AEJ//wBCn/8AQr//AELf/wBC//8AQx//AEM//wBDX/8AQ3/7AEOf+wBDv/sAQ9/7AEP/+wBEH/sARD/7AERf+wBEv/1gRN/9YET//WBFH/1gRT/9YEVf/WBFf/1gRZ/7AEW/+wBF3/sARf/9YEYf+wBHEACwRzAAsEdQALBJr/8ASc/7AEoP/WBKn/sASr/7AEwwALBMUACwTL/78Ez//tBNAADQTS/78E3gANBOEADQTq/78E8f/tBPT/7QT1AA4E+f/tBPoADQAOAO0AFADyABAA9v/wAPn/8AEBAAwBBAAQATr/8AFI//ABSv/mAVEAEAFt//ABcAAQBBr/8AR6//AATQBHAAwASAAMAEkADABLAAwAVQAMAJQADACZAAwAuwAMAMgADADJAAwA7QA6APIAGAD2/+MA9wAMAPn/9wEDAAwBBAAYAR4ADAEiAAwBOv/iAUIADAFI//cBSv/jAVEAGAFgAAwBYQAMAWsADAFt/+MBcAAYAqEADAKiAAwCowAMAqQADAKlAAwCvQAMAr8ADALBAAwCwwAMAsUADALHAAwCyQAMAssADALNAAwCzwAMAtEADALTAAwC1QAMAtcADAOeAAwDxAAMA8gADAPLAAwD5gAMA+wADAPxAAwD/wAMBAEADAQCAAwEDgAMBBr/9wQdAAwENwAMBDkADAQ7AAwEPQAMBD8ADARBAAwEQwAMBEUADARZAAwEWwAMBF0ADARhAAwEev/3BJwADASpAAwEqwAMACIAWv/0AFz/8ABd//QAvf/0AO3/7wDu//AA8v/zAQT/8wEa//QBNP/wAUT/8AFR//MBXv/wAXD/8wK0//QCtf/0AyP/9AOm//QDyf/0A8r/8APS//QD2v/0A+v/9APz//QD9v/wBAT/8AQU//QEFv/0BBj/9ARx//QEc//0BHX/9ATD//QExf/0AAoABv/WAAv/1gGE/9YBhf/WAYf/1gGI/9YBif/WA9v/1gPc/9YD3//WAAgA9v+6AQn/zwEg/9sBOv9QAUr/nQFj//ABZf/yAW3/TAAKAAb/9QAL//UBhP/1AYX/9QGH//UBiP/1AYn/9QPb//UD3P/1A9//9QAoAEwAIABPACAAUAAgAFP/gABX/5AAWwALARj/gAHB/5ACq/+AAqz/gAKt/4ACrv+AAq//gAL5/4AC+/+AAv3/gAMF/5ADB/+QAwn/kAML/5ADDf+QA6T/gAOq/4ADxv+AA83/kAQM/4AEEP+ABEv/gARN/4AET/+ABFH/gART/4AEVf+ABFf/gARf/4AEoP+ABK0AIASvACAEsQAgBL7/kAATAdP/7gHV//UB1v/xAdj/8gH0//IB+P/yAhD/8gIS/+4CFP/yA0z/7gN4//IDgP/1A4H/7gOC/+4E0P/uBN7/7gTh/+4E9f/yBPr/7gATAdP/5QHV//EB1v/rAdj/6QH0/+kB+P/pAhD/6QIS/+UCFP/pA0z/5QN4/+kDgP/xA4H/5QOC/+UE0P/lBN7/5QTh/+UE9f/pBPr/5QADAdX/9QHW/+4DgP/1AAIB1v+3Adv/8AABAFsACwAEAA3/5gBB//QAYf/vAU3/7QAXALj/1AC+//AAwv/tAMQAEQDK/+AAzP/nAM3/5QDO/+4A2QASAOr/6QD2/9cBOv/XAUr/0wFM/9YBTf/FAVj/5wFiAA0BZAAMAW3/1gFu//IB2//pAeX/5wIx/+kAAQEc//EAEgDZ/64A5gASAOv/4ADt/60A7//WAP3/3wEB/9IBB//gARz/zgEu/90BMP/iATj/4AFA/+ABSv/pAU3/2gFf/70Baf/fAWwAEQACAPb/9QGF/7AAAgDt/8kBHP/uAAkA5v/DAPb/zwE6/84BSf/nAUz/3wFi/9EBZP/sAWz/oAFt/9EALwBW/20AW/+MAG39vwB8/n0Agf68AIb/KwCJ/0sAuP9hAL7/jwC//w8Aw/7oAMb/HwDH/uUAyv9GAMz+7QDN/v0Azv7ZANn/UgDmAAUA6v+9AOv/SQDt/v4A7/8TAPb/aAD9/w4A//8TAQH/BwEH/w4BCf8RARz/PAEg/6wBLv8VATD/PAE4/w4BOv9qAUD/SQFK/wwBTP8/AU3+8QFY/8ABX/7vAWP/MQFl/18Baf8KAWwABQFt/zABbv/VAB4ACv/iAA0AFAAO/88AQQASAEr/6gBW/9gAWP/qAGEAEwBt/64AfP/NAIH/oACG/8EAif/AALj/0AC8/+oAvv/uAL//xgDAAA0Awv/pAMP/1gDG/+gAx/+6AMr/6QDM/8sAzf/aAM7/xwGN/9MB2//LAeX/ywIx/80AFwAj/8MAWP/vAFv/3wCa/+4AuP/lALn/0QDEABEAyv/IANkAEwDm/8UA9v/KATr/nwFJ/1EBSv97AUz/ygFN/90BWP/yAWL/dQFk/8oBbP9PAW3/jAHW/80B5f/1AAcA9v/wAQn/8QEg//MBOv/xAWP/8wFl/+kBbf/TAAMASv/uAFv/6gHW//AACQDK/+oA7f+4APb/6gEJ//ABIP/xATr/6wFj//UBbf/sAYX/sAACAREACwFs/+YAEgBb/8EAuP/FAMr/tADq/9cA9v+5AQn/sgEc/9IBIP/IATr/oAFK/8UBWP/kAWP/zAFl/8wBbf/LAW7/7wHb/+cB5f/mAjH/6AAFAFv/pAHW/1QB2//xAeX/8QIx//MACADZABUA7QAVAUn/5AFK/+UBTP/kAWL/4wFk/+IBbP/kAAIA9v/AAYX/sAAIAFgADgCB/58Avv/1AMT/3gDH/+UA2f+oAO3/ygFf/+MABQDK/+oA7f/uAPb/sAE6/+wBbf/sAAMASgAPAFgAMgBbABEAMwAE/9gAVv+1AFv/xwBt/rgAfP8oAIH/TQCG/44Aif+hALj/rgC+/8kAv/9+AMP/ZwDG/4cAx/9lAMr/ngDM/2oAzf9zAM7/XgDZ/6UA5gAPAOr/5ADr/6AA7f90AO//gAD2/7IA/f99AP//gAEB/3kBB/99AQn/fwEc/5gBIP/aAS7/gQEw/5gBOP99ATr/swFA/6ABSv98AUz/mgFN/2wBWP/mAV//awFj/5IBZf+tAWn/ewFsAA8Bbf+RAW7/8gHb/7kB5f+5AjH/uQAHAA0AFABBABEAVv/iAGEAEwHb/9kB5f/ZAjH/2QAHAEoADQC+//UAxgALAMf/6gDKAAwA7f/IARz/8QAHAA0ADwBBAAwAVv/rAGEADgHb/+cB5f/nAjH/6QAGAFv/5QC4/8sAzf/kAdv/7AHl/+sCMf/tAAcAgf/fALX/8wC3//AAxP/qANn/3wDm/+ABbP/gAAEB2//rAAQB1v/HAdv/8gHl//ICMf/yAAEB1v/xAAEB1gANAAILDAAEAAAOrBdoACYAJQAAAAAAAAAAAAAAAAASAAAAAAAAAAD/4//kAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAABEAAAARAAAAAAAAAAD/5P/lAAAAAAAAAAAAAAAAAAAAAAAA/+sAAAAAAAAAAP/l/9X/7QAAAAAAAP/qAAD/6QAAAAAAAAAAAAD/4f+aAAD/9f/qAAAAAAAAAAAAAAAAAAAAAAAA//UAAP/0//UAAAAA//X/zv/v/3//ogAAAAAADAAAAAD/8QAA/4gAAP+7/8T/xwARAAAAEgAA/6kAAAAA/8n/jwAAAAD/3QAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAP/wAAAAAAAAAAD/eP/rAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAP/t/+8AAAAAAAD/5gAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAAAAAAAAAD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAA//EAAAAAAAAAAP/j//EAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAAAAAAAAAAAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAAAA//EAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAD/lf/XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+oAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/m/+H/6f/l/+kAAAAA/+f/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAD/owAAAAAAAAAA/7//4//Y/7//2f+i/7f/y//s/6AAEQAS/6v/xv/i//AADQAAAAAAAP/pABEAAP/zAAD/LQAA/+8AEgAA/8wAAAAAAAD/oP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/q/+4AAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAP+d/+T/k/+d/6H/sf+P/7n/uAAAABAAEP+v/4z/xP/wAAAAAAAAAAD/swAPAAD/8f/L/yb/fv/tABD/vP8YAAD/fAAA/xD/8QAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAD/v//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAD/8AAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/r/+YAAP/r/+0ADQAA/+z/5QAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+b/5wAA/+v/6wAAAAD/5//hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAAADgAA/9IAAP/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAA/+wAAAAA/9gAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAD/hQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAD/8wAA/3b/9QAAAA8AAAAAAAD/xgAAAAAAAP/hAAD/5gAAAAAAAAAAAAD/yf68/9kAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vwAAAAD/1AATAAD/8v97/8r+7f8RABMAAAAAAAAAAP/aAAD+sAAA/3H/P/87AAAAAAAAAAD/UQAAAAAAAAAAAAAAAP+RAAD/xQAA/+z/wwAA/4j/zgAAAAAAAAAAAAAAAP+wAAAAAAAAAAAAAP+VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAAAAAAAAAAAAAAAAAAAAAAA/+EAAAAA/+H/7f/V/9//5wAAAAAADgAA/8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/hQAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/l/8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/oAAAAAAAAAAD/8wAAAAAAAP/U//MAAP/S/+T/tf/S/9n/9QAAAAAAAP+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x8AAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/90AAAAAAAAAAAAAAAAAAAAAAAAAAP95//UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vX/rQAAAAAAAAAA//AAAAAA/8D/yQAAAAAAAP/1AAAAAAAA/8gAAAAA/+cAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/VgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RP+9/zP/RP9L/z7/LAAA/3IAAAAHAAcAAP8n/4b/0QAAAAAAAAAA/2oABQAAAAD/kv56/w8AAAAHAAD+YgAA/wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7wAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAD/tP+7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAD/vf/p/5r/vQAA/6X/kQAAAAAAAAASABIAAP/SAAAAAAAAAAAAAAAAAAAAAAAAAAD/yv5t/7sAAAAAAAD/iQAA/+kAAAAAAAAAAgCaAAYABgAAAAsACwABABAAEAACABIAEgADACUAKQAEACwANAAJADgAPgASAEUARwAZAEkASQAcAEwATAAdAFEAVAAeAFYAVgAiAFoAWgAjAFwAXgAkAIoAigAnAJYAlgAoALEAtAApAL0AvQAtAMEAwQAuAMcAxwAvANQA1QAwANcA1wAyANoA2gAzANwA3gA0AOAA5gA3AOwA7AA+AO4A7gA/APcA9wBAAPwA/ABBAP4A/wBCAQQBBQBEAQoBCgBGAQ0BDQBHARgBGgBIAS4BMABLATMBNQBOATcBNwBRATkBOQBSATsBOwBTAUMBRABUAVQBVABWAVYBVgBXAVgBWABYAVwBXgBZAYQBigBcAY4BjwBjAdgB2ABlAd0B3QBmAeAB4QBnAesB7QBpAf8B/wBsAg4CEABtAjACMABwAjMCMwBxAkUCRQByAkcCSABzAnoCewB1An0CfQB3An8CpQB4AqoCrwCfArQCxAClAsYCzwC2AtgC2gDAAtwC3ADDAt4C3gDEAuAC4ADFAuIC4gDGAuUC5QDHAucC5wDIAukC6QDJAusC6wDKAu0C7QDLAu8C7wDMAvEC/QDNAv8C/wDaAwEDAQDbAwMDAwDcAw4DDgDdAxADEADeAxIDEgDfAxQDFADgAxYDFgDhAxgDGADiAxoDGgDjAxwDHADkAx4DHgDlAyADIADmAyIDKgDnAy8DOADwA0MDRwD6A00DTwD/A1QDVAECA2UDaQEDA20DbwEIA3gDeAELA4YDiwEMA44DnQESA6ADoAEiA6QDpAEjA6YDpgEkA6oDqgElA60DrgEmA7ADuQEoA7sDvQEyA78DxAE1A8YDzAE7A9ID0wFCA9UD1QFEA9cD1wFFA9kD3AFGA98D5AFKA+YD5gFQA+oD6wFRA/AD+wFTA/4D/wFfBAEEBAFhBAsEDAFlBBAEEAFnBBIEGAFoBB4ERgFvBEgESAGYBEoEVwGZBF8EXwGnBGIEYgGoBGQEZAGpBHAEdQGqBHcEdwGwBHsEfAGxBH8EfwGzBIEEggG0BIQEhAG2BIYEhgG3BJcEmwG4BJ0EnQG9BJ8EoAG+BKIEogHABKYEqAHBBKoEqgHEBKwErgHFBLAEsAHIBLIEsgHJBLQEugHKBLwEvAHRBL8EvwHSBMEExgHTBMgEywHZBM8EzwHdBNIE0gHeBNgE2AHfBN0E3QHgBOgE6AHhBOoE6gHiBPEE8QHjBPUE9QHkAAIBdAAGAAYAGQALAAsAGQAQABAAIQASABIAIQAlACUAAgAmACYAHAAnACcAEwAoACgAAQApACkABQAuAC4ACgAvAC8ACwAwADAAGAAzADMAAQA0ADQAFgA4ADgADgA5ADkACgA6ADoAHQA7ADsAGwA8ADwAEgA9AD0ADAA+AD4AEQBFAEUABgBGAEYABwBHAEcAFwBJAEkACABMAEwABABRAFIABABTAFMAAwBUAFQABwBWAFYAFQBaAFoACQBcAFwAFABdAF0ACQBeAF4AEACKAIoABwCWAJYAAQCxALEAIgCyALIAAgCzALMAAQC0ALQAAgC9AL0ACQDBAMEABADHAMcABwDUANUAIADaANoAEgDeAN4AJQDkAOQAIADmAOYAIADsAOwAGgDuAO4AFAD3APcABwD8APwAHwD+AP4AHwD/AP8ABwEEAQUAHwEKAQoAHwENAQ0AAgEYARgAAwEZARkAHQEaARoACQEuAS4ABwEvAS8AIgEwATAAGgEzATMAEgE0ATQAFAE1ATUACwE3ATcACwE5ATkACwFDAUMAEgFEAUQAFAFYAVgAAQFcAVwAGgFdAV0AEgFeAV4AFAGEAYUAGQGGAYYAIQGHAYkAGQGKAYoAIQGOAY8AIQHYAdgAIwHdAd0ADQHgAeAAJAHhAeEAHgHrAesADwHsAewADQHtAe0ADwH/Af8AHgIOAhAAHgIwAjAADQIzAjMADwJFAkUAEwJHAkgAAQJ6AnsAAQJ9An0ADgJ/AoUAAgKGAoYAEwKHAooABQKQApQAAQKVApgACgKZApkADAKaAqAABgKhAqEAFwKiAqUACAKqAqoABAKrAq8AAwK0ArUACQK2ArYAAgK3ArcABgK4ArgAAgK5ArkABgK6AroAAgK7ArsABgK8ArwAEwK9Ar0AFwK+Ar4AEwK/Ar8AFwLAAsAAEwLBAsEAFwLCAsIAEwLDAsMAFwLEAsQAAQLGAsYABQLHAscACALIAsgABQLJAskACALKAsoABQLLAssACALMAswABQLNAs0ACALOAs4ABQLPAs8ACALZAtkABALlAuUACgLnAucACwLpAukAGALrAusAGALtAu0AGALvAu8AGALyAvIABAL0AvQABAL2AvcABAL4AvgAAQL5AvkAAwL6AvoAAQL7AvsAAwL8AvwAAQL9Av0AAwL/Av8AFQMBAwEAFQMDAwMAFQMOAw4ADgMQAxAADgMSAxIADgMUAxQACgMWAxYACgMYAxgACgMaAxoACgMcAxwACgMeAx4ACgMgAyAAGwMiAyIADAMjAyMACQMkAyQADAMlAyUAEQMmAyYAEAMnAycAEQMoAygAEAMpAykAEQMqAyoAEAMvAzAADQMxAzEAIwMyAzgADwNDA0cADQNNA08ADwNUA1QADQNlA2UAHgNmA2kAJANtA28ADQN4A3gAIwOGA4YAAgOHA4cABQOKA4oAAQOLA4sADAOOA44AAgOPA48AHAOQA5AABQORA5EAEQOUA5QACwOXA5cAAQOYA5gAFgOZA5kADgOaA5oADAObA5sAEgOdA50ADAOgA6AABAOkA6QAAwOmA6YACQOqA6oAAwOtA60ABQOuA64AIgOyA7IACgOzA7QACwO1A7UAJQO2A7YAAgO3A7cAHAO4A7gAIgO5A7kABQO9A70AAQO/A78AFgPAA8AAEwPBA8EADgPCA8IAEgPDA8MABgPEA8QACAPGA8YAAwPHA8cABwPIA8gAFwPJA8kACQPKA8oAFAPLA8sACAPMA8wAGgPSA9IACQPTA9MAGwPVA9UAGwPXA9cAGwPZA9kADAPaA9oACQPbA9wAGQPfA98AGQPhA+EABAPiA+IAAgPjA+MABgPkA+QABQPmA+YACAPqA+oAHQPrA+sACQPwA/AAEwPxA/EAFwPyA/IADAPzA/MACQP1A/UAEgP2A/YAFAP4A/gAAgP5A/kABgP6A/oAAgP7A/sABgP+A/4ABQP/A/8ACAQBBAIACAQDBAMAEgQEBAQAFAQLBAsAAQQMBAwAAwQQBBAAAwQSBBIABwQTBBMAJQQUBBQACQQVBBUAJQQWBBYACQQXBBcAJQQYBBgACQQeBB4AAgQfBB8ABgQgBCAAAgQhBCEABgQiBCIAAgQjBCMABgQkBCQAAgQlBCUABgQmBCYAAgQnBCcABgQoBCgAAgQpBCkABgQqBCoAAgQrBCsABgQsBCwAAgQtBC0ABgQuBC4AAgQvBC8ABgQwBDAAAgQxBDEABgQyBDIAAgQzBDMABgQ0BDQAAgQ1BDUABgQ2BDYABQQ3BDcACAQ4BDgABQQ5BDkACAQ6BDoABQQ7BDsACAQ8BDwABQQ9BD0ACAQ+BD4ABQQ/BD8ACARABEAABQRBBEEACARCBEIABQRDBEMACAREBEQABQRFBEUACARKBEoAAQRLBEsAAwRMBEwAAQRNBE0AAwROBE4AAQRPBE8AAwRQBFAAAQRRBFEAAwRSBFIAAQRTBFMAAwRUBFQAAQRVBFUAAwRWBFYAAQRXBFcAAwRfBF8AAwRiBGIACgRkBGQACgRwBHAADARxBHEACQRyBHIADARzBHMACQR0BHQADAR1BHUACQR3BHcADgR7BHsAIgR8BHwAGgR/BH8ABASBBIEAIASCBIIAIgSEBIQACwSGBIYADASYBJgABASZBJkAAgSaBJoABgSbBJsABQSfBJ8AAQSgBKAAAwSiBKIAFQSmBKYAHASnBKcABwSoBKgAAQSqBKoAAQStBK0ABASuBK4ACwSwBLAACwSyBLIAGAS1BLUABAS3BLcABAS4BLgAAQS5BLkAFgS6BLoABwS8BLwAFQS/BL8ADgTBBMEACgTCBMIAHQTDBMMACQTEBMQAHQTFBMUACQTGBMYAGwTIBMgAEQTJBMkAEATKBMoAAQTLBMsADwTPBM8ADQTSBNIADwTYBNgAHgTdBN0AIwToBOgAHgTqBOoADwTxBPEADQT1BPUAIwABAAYE9QAUAAAAAAAAAAAAFAAAAAAAAAAAABoAHwAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAIAAAAAACMAAAAAAAAAAAACAAAAAgAAABAACwAKAB0AFgARAAwAEwAAAAAAAAAAAAAAAAAHAAAAAQABAAEAAAABAAAAAAAAAAAAAAADAAMABAADAAEAAAAOAAAABQAJAAAAFQAJAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAgABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAgAGAAAAAAAAAAAAAAAAAAEAAAAJAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQABAAAABQAAAAAAAAAAAAAAAAALAAIAGQAAAAsAAAAAAAAAEQAAAAAAGQAiAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABUAAAADAAMAGwADAAMAAwAAAAEAAwAhAAMAAwAAAAAAAwAAAAMAAAAAAAEAGwADAAAAAAACAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAACAAQAHQAJAAIAAAACAAEAAgAAAAIAAQAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABEAFQAAAAMAAAAAAAsAAAAAAAMAAAADAAAAAAACAAEAEQAVAAsAAAAgACEAAAAAAAAAAAAAAAAAAAAZABsAAAADAAAAAwAAAAMAAAAAAAAAAAADABEAFQAAAAEAAQAAAAAAAAAAABkAAAAAAAAAAgABAAAAAAAAABkAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwAAABQAFAAaABQAFAAUABoAAAAAAAAAGgAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcACQAAAASABgAHgAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADQAIAA0AAAAAAAAAAAAAAAAAGAAIAAAAAAAYAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYAAgAFwAcABgAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAGAAYABgAGAAYABgAGAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAoACgAKAAoADAAHAAcABwAHAAcABwAHAAEAAQABAAEAAQAAAAAAAAAAAAMABAAEAAQABAAEAAUABQAFAAUACQAJAAYABwAGAAcABgAHAAIAAQACAAEAAgABAAIAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQACAAEAAgABAAIAAQACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwADAAIABAACAAQAAgAEAAAAAAAAAAAAAAAAABAADgAQAA4AEAAOABAADgAQAA4ACwAAAAsAAAALAAAACgAFAAoABQAKAAUACgAFAAoABQAKAAUAFgAAAAwACQAMABMADwATAA8AEwAPAAAAAAACAAAAAAAAAAAADQANAA0ADQANAA0ADQAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAASABIAEgASABcADQANAA0ACAAIAAgACAAAAAAAAAAAAAAAAAAIAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAAAAAAAAB4AHgAeAB4AAAAYAAAAEgASABIAEgASABIAJAAXABcAAAAAAAAABgAAAAAAAAACAAwAAAAAAAYAAAAAABMAAAAAAAAAAAAAAAIAAAAAAAwAEQAAAAwAAQAAAAMAAAAFAAAABAAAAAkAAAAAAAUABAAFAAAAAAAAAAAAAAAAACMAAAAAACIABgAAAAAAAAAAAAAAAAACAAAAAAACAAsAEQAHAAEAAwAEAAMAAQAJABUAAQADAA4AAAAAAAAAAwAJABYAAAAWAAAAFgAAAAwACQAUABQAAAAAABQAAAADAAYABwAAAAAAAQADAAAAAAAdAAkAAQACAAAAAAACAAEADAAJAAAAEQAVAAAABgAHAAYABwAAAAAAAAABAAAAAQABABEAFQAAAAAAAAADAAAAAwACAAQAAgABAAIABAAAAAAAIgAJACIACQAiAAkAIAAhAAAAAwABAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgABAAIAAQACAAEAAgAEAAIAAQAKAAUACgAFAAAABQAAAAUAAAAFAAAABQAAAAUADAAJAAwACQAMAAkAAAALAAAAIAAhAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAYABwAAAAEAAAAAAAIABAAAAAAAAAAFAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAgAAAAAAAAAAABAADgALAAAACgAdAAkAHQAJABYAAAATAA8AAAANAAAAAAAAAAgAFwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAHAAAABcAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAACAAAAAAACAAYABwAAAAAAAgAFwABAAAACgFiApIABERGTFQAGmN5cmwAGmdyZWsAGmxhdG4ASAAEAAAAAP//ABIAAAABAAIAAwAEAAgADAANAA4ADwAQABEAEgATABQAFQAWABcALgAHQVpFIADkQ1JUIADkRlJBIABaTU9MIAC2TkFWIACIUk9NIAC2VFJLIADkAAD//wATAAAAAQACAAMABAAHAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAJAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAoADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABMAAAABAAIAAwAEAAUACAAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYYzJzYwCSY2NtcACYZGxpZwCgZG5vbQCmZnJhYwCsbGlnYQC2bGlnYQC8bGlnYQDIbG51bQDQbG9jbADWbG9jbADcbG9jbADibnVtcgDob251bQDucG51bQD0c21jcAD6c3MwMQEAc3MwMgEGc3MwMwEMc3MwNAESc3MwNQEYc3MwNgEec3MwNwEkdG51bQEqAAAAAQAAAAAAAgACAAQAAAABAAoAAAABABgAAAADABYAFwAZAAAAAQAJAAAABAAIAAkACAAJAAAAAgAIAAkAAAABABUAAAABAAcAAAABAAUAAAABAAYAAAABABkAAAABABIAAAABABMAAAABAAEAAAABAAsAAAABAAwAAAABAA0AAAABAA4AAAABAA8AAAABABAAAAABABEAAAABABQAGgA2BDAH7gigCMoPbg+ED64Pwg/mEBAQTBBgEHQQiBCaELQQ9hEUEWYRrBIOEmwSgBKwEtIAAQAAAAEACAACAfoA+gHnAnEB0QHQAc8BzgHNAcwBywHKAckByAIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB6AHpAnMCdQJ0AnYCcgJ3AlIB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4CAAIBBP4CAgIDAgQCBQIGAgcCCAIJAgoCCwI7Ag0CDgIPAhAE+AIRAhMCFAIVAhYCFwIYAhkCGwIcAh4CHQMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2ME/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UFAAUBBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wH/BOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BQMFBAUFBQYE9wT5BPoE/AIaBP0E+wIMAhIFCwUMAAEA+gAIAAoAFAAVABYAFwAYABkAGgAbABwAHQAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4AZQBnAIEAgwCEAIwAjwCRAJMAsQCyALMAtAC1ALYAtwC4ALkAugDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QEvATMBNQE3ATkBOwFBAUMBRQFJAUsBTAFYAVkBlwGdAaIBpQJ6AnsCfQJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQK2ArgCugK8Ar4CwALCAsQCxgLIAsoCzALOAtAC0gLUAtYC2ALaAtwC3gLgAuIC4wLlAucC6QLrAu0C7wLxAvMC9QL4AvoC/AL+AwADAgMEAwYDCAMKAwwDDgMQAxIDFAMWAxgDGgMcAx4DIAMiAyQDJQMnAykDKwMtA4YDhwOIA4kDigOLA4wDjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA9MD1QPXA9kD7gPwA/IEBwQNBBMEfQSCBIYFBwUJAAEAAAABAAgAAgHcAOsCcQIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdICZAJzAzACdQJ0Ay8B4wJyAncCUgTSBNMB6gHrBNQE1QTWAewE1wHtAe4B7wTcAfAB8ATdBN4B8QHyAfMB+gTrBOwB+wH8Af0B/gH/AgAE7wTwBPIE9QT+AgICAwIEAgUCBgIHAggCCQIKAgsB9AH1AfYB9wH4AfkCOwINAg4CDwIQBPgCEQITAhQCFQIXAhkCdgMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA4IDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgT/A2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1BQIDdgN3A3kDeAN6A3sDfAN9A34DfwOAA4EDgwOEA4UFAAUBBMsEzATNBM4E2ATbBNkE2gTfBOAE4QTPBNAE0QTqBO0E7gTxBPME9AIBBPYE4gTjBOQE5QTmBOcE6ATpBQMFBAUFBQYE9wT5BPoCGAT8AhoE/QT7AhYCDAISBQsFDAABAOsACgBFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AhQCGAIcAiQCKAIsAjQCQAJIAlAC7ALwAvQC+AL8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4A6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wEAAQEBAgEDAQQBBQEGAQcBMAE0ATYBOAE6ATwBQgFEAUYBSgFNAVoCfAJ+ApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtwK5ArsCvQK/AsECwwLFAscCyQLLAs0CzwLRAtMC1QLXAtkC2wLdAt8C4QLkAuYC6ALqAuwC7gLwAvIC9AL2AvkC+wL9Av8DAQMDAwUDBwMJAwsDDQMPAxEDEwMVAxcDGQMbAx0DHwMhAyMDJgMoAyoDLAMuA54DnwOgA6EDowOkA6UDpgOnA6gDqQOqA6sDrAPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9QD1gPYA9oD7wPxA/MEAQQIBA4EFAR+BH8EgwSHBQgFCgAGAAAABgASACoAQgBaAHIAigADAAAAAQASAAEAkAABAAAAAwABAAEATQADAAAAAQASAAEAeAABAAAAAwABAAEATgADAAAAAQASAAEAYAABAAAAAwABAAEC4QADAAAAAQASAAEASAABAAAAAwABAAEDzgADAAAAAQASAAEAMAABAAAAAwABAAED0AADAAAAAQASAAEAGAABAAAAAwABAAEESQACAAIAqACsAAABJAEnAAUAAQAAAAEACAACABIABgJhAl8CYgJjAmAFDQABAAYATQBOAuEDzgPQBEkABAAAAAEACAABBjIANgByAKQArgC4AMoA/AEOARgBSgFkAX4BkAG6AfYCAAIiAjwCTgKKApwCtgLgAvIDJAMuAzgDSgN8A4YDkAOaA7QDzgPgBAoEPARGBGgEggSUBMYE2ATyBRwFLgU4BUIFTAVWBYAFqgXUBf4GKAAGAA4AFAAaACAAJgAsAoAAAgCpBB4AAgCtAn8AAgCoBCAAAgCrAoIAAgCqBJkAAgCsAAEABASmAAIArQABAAQCvAACAKkAAgAGAAwEqgACAboEqAACAK0ABgAOABQAGgAgACYALAKIAAIAqQQ2AAIArQKHAAIAqAQ4AAIAqwQ6AAIAqgSbAAIArAACAAYADASVAAIAqQLWAAIBugABAAQErAACAK0ABgAOABQAGgAgACYALAKMAAIAqQRIAAIArQKLAAIAqARGAAIAqwLaAAIAqgSdAAIArAADAAgADgAUBK4AAgCpAucAAgG6BLAAAgCtAAMACAAOABQC6QACAKkC6wACAboEsgACAK0AAgAGAAwD4AACAKkEtAACAK0ABQAMABIAGAAeACQC8QACAKkC8wACAboEtgACAK0ElwACAKgCjwACAKoABwAQABgAHgAkACoAMAA2BLgAAwCqAKkCkQACAKkESgACAK0CkAACAKgETAACAKsCkwACAKoEnwACAKwAAQAEBLkAAgCpAAQACgAQABYAHAL+AAIAqQMAAAIBugS7AAIArQShAAIArAADAAgADgAUAwQAAgCpAwoAAgG6BL0AAgCtAAIABgAMAw4AAgG6BL8AAgCtAAcAEAAYAB4AJAAqADAANgTBAAMAqgCpApYAAgCpBGIAAgCtApUAAgCoBGQAAgCrAxQAAgCqBKMAAgCsAAIABgAMBMQAAgCtBMIAAgCqAAMACAAOABQD1QACAKkExgACAK0D0wACAKgABQAMABIAGAAeACQCmQACAKkEcAACAK0D2QACAKgEcgACAKsEdAACAKoAAgAGAAwDJQACAKkEyAACAK0ABgAOABQAGgAgACYALAKbAAIAqQQfAAIArQKaAAIAqAQhAAIAqwKdAAIAqgSaAAIArAABAAQEpwACAK0AAQAEAr0AAgCpAAIABgAMBKsAAgG6BKkAAgCtAAYADgAUABoAIAAmACwCowACAKkENwACAK0CogACAKgEOQACAKsEOwACAKoEnAACAKwAAQAEBJYAAgCpAAEABAStAAIArQABAAQESQACAK0AAwAIAA4AFASvAAIAqQLoAAIBugSxAAIArQADAAgADgAUAuoAAgCpAuwAAgG6BLMAAgCtAAIABgAMA+EAAgCpBLUAAgCtAAUADAASABgAHgAkAvIAAgCpAvQAAgG6BLcAAgCtBJgAAgCoAqoAAgCqAAYADgAUABoAIAAmACwCrAACAKkESwACAK0CqwACAKgETQACAKsCrgACAKoEoAACAKwAAQAEBLoAAgCpAAQACgAQABYAHAL/AAIAqQMBAAIBugS8AAIArQSiAAIArAADAAgADgAUAwUAAgCpAwsAAgG6BL4AAgCtAAIABgAMAw8AAgG6BMAAAgCtAAYADgAUABoAIAAmACwCsQACAKkEYwACAK0CsAACAKgEZQACAKsDFQACAKoEpAACAKwAAgAGAAwExQACAK0EwwACAKoAAwAIAA4AFAPWAAIAqQTHAAIArQPUAAIAqAAFAAwAEgAYAB4AJAK0AAIAqQRxAAIArQPaAAIAqARzAAIAqwR1AAIAqgACAAYADAMmAAIAqQTJAAIArQABAAQDKwACAKkAAQAEAy0AAgCpAAEABAMsAAIAqQABAAQDLgACAKkABQAMABIAGAAeACQCpwACAKkCpgACAKgERwACAKsC2wACAKoEngACAKwABQAMABIAGAAeACQEWAACAKkEYAACAK0EWgACAKgEXAACAKsEXgACAKoABQAMABIAGAAeACQEWQACAKkEYQACAK0EWwACAKgEXQACAKsEXwACAKoABQAMABIAGAAeACQEZgACAKkEbgACAK0EaAACAKgEagACAKsEbAACAKoABQAMABIAGAAeACQEZwACAKkEbwACAK0EaQACAKgEawACAKsEbQACAKoAAQAEBKUAAgCpAAIAEQAlACkAAAArAC0ABQAvADQACAA2ADsADgA9AD4AFABFAEkAFgBLAE0AGwBPAFQAHgBWAFsAJABdAF4AKgCBAIEALACDAIMALQCGAIYALgCJAIkALwCNAI0AMACYAJsAMQDQANAANQABAAAAAQAIAAEABgACAAEAAgMIAwkAAQAAAAEACAACABIABgUHBQgFCQUKBQsFDAABAAYCugK7AswCzQNPA1gAAQAAAAEACAABAAYAAQABAAEBewAEAAAAAQAIAAEAQAABAAgAAgAGAA4BvgADAEoATQG8AAIATQAEAAAAAQAIAAEAHAABAAgAAgAGAA4BvwADAEoAUAG9AAIAUAABAAEASgAEAAAAAQAIAAEAKgADAAwAFgAgAAEABAG7AAIASgABAAQBwQACAFgAAQAEAcAAAgBYAAEAAwBKAFcAlQABAAAAAQAIAAEABgHeAAEAAQBLAAEAAAABAAgAAQAGAW8AAQABALsAAQAAAAEACAABAAYB9QABAAEANgABAAAAAQAIAAIAHAACAiwCLQABAAAAAQAIAAIACgACAi4CLwABAAIALwBPAAEAAAABAAgAAgAeAAwCRQJHAkYCSAJJAmcCaAJpAmoCawJsAm0AAQAMACcAKAArADMANQBGAEcASABLAFMAVABVAAEAAAABAAgAAgAMAAMCbgJvAm8AAQADAEkASwJqAAEAAAABAAgAAgAuABQCWgJeAlgCVQJXAlYCWwJZAl0CXAJPAkoCSwJMAk0CTgAaABwCUwJlAAIABAAUAB0AAAJmAmYACgJwAnAACwSNBJQADAABAAAAAQAIAAIALgAUBJQCcASNBI4EjwSQBJECZgSSBJMCTAJOAk0CSwJPAmUAGgJTABwCSgACAAIAFAAdAAACVQJeAAoAAQAAAAEACAACAC4AFAJbAl0CXgJYAlUCVwJWAlkCXAJaABsAFQAWABcAGAAZABoAHAAdABQAAQAUABoAHAJKAksCTAJNAk4CTwJTAmUCZgJwBI0EjgSPBJAEkQSSBJMElAABAAAAAQAIAAIALgAUBJEEkgJwBI0EjgSPBJACZgSTABcAGQAYABYAGwAUABoAHQAcABUElAACAAYAGgAaAAAAHAAcAAECSgJPAAICUwJTAAgCVQJeAAkCZQJlABMAAQAAAAEACAABAAYBgQABAAEAEwAGAAAAAQAIAAMAAQASAAEAbAAAAAEAAAAYAAIAAwGUAZQAAAHFAccAAQIfAiUABAABAAAAAQAIAAIAPAAKAccBxgHFAh8CIAIhAiICIwIkAiUAAQAAAAEACAACABoACgI+AHoAcwB0Aj8CQAJBAkICQwJEAAIAAQAUAB0AAA==\",\n  \"Roboto-Medium.ttf\": \"AAEAAAASAQAABAAgR0RFRrRCsIIAAiL8AAACYkdQT1P5bkuGAAIlYAAAZS5HU1VC64LkWQACipAAABWQT1MvMpfmsboAAAGoAAAAYGNtYXABd1geAAAbWAAAEkZjdnQgMRwGSwAAMLAAAABcZnBnbYf8JKsAAC2gAAABvGdhc3AACAATAAIi8AAAAAxnbHlmLxqHrwAAOywAAeM8aGRteGSHdJIAABZAAAAFGGhlYWT8n9JyAAABLAAAADZoaGVhCu8KxwAAAWQAAAAkaG10ePLLTfcAAAIIAAAUOGxvY2HtyG6oAAAxDAAACh5tYXhwBz4DDwAAAYgAAAAgbmFtZQAt58MAAh5oAAAEaHBvc3T/bQBkAAIi0AAAACBwcmVwGgKjKQAAL1wAAAFTAAEAAAACIxK00yQ2Xw889QAZCAAAAAAAxPARLgAAAADVAVLs+iT91QlcCHMAAAAJAAIAAAAAAAAAAQAAB2z+DAAACWv6JP5BCVwAAQAAAAAAAAAAAAAAAAAABQ4AAQAABQ4AjwAWAE4ABQABAAAAAAAOAAACAAIwAAYAAQADBJgB9AAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAEAAAP/9BgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwOMAGQAAAAAAAAAAAH+AAAB/gAAAiUAjwKYAGUE4gBgBIwAZAXgAGMFHQBWAVoAUgLKAIAC0gAoA4kAGwR1AEQBwgAcAqAARwI8AIcDKgACBIwAaQSMAKgEjABRBIwATwSMADQEjACBBIwAdQSMAEUEjABoBIwAXQIfAIIB5wAuBBEAPwR6AJEEKgCAA+QAPAcoAFsFUwASBQwAlAU5AGYFOgCUBIYAlARlAJQFcgBqBa8AlAJCAKMEcQAtBQsAlARUAJQHAQCUBa4AlAWGAGYFHQCUBYYAYAT+AJQE1ABKBNsALQU3AH0FLQASBwoAMAUQACkE4AAHBNEAUAIxAIQDWAAUAjEADANrADUDnAADApQAMQRUAFoEgQB8BDAATwSEAE8ESwBTAtYALQSJAFIEcQB5AgsAfQIB/7UELQB9AgsAjAb2AHwEcwB5BI4ATwSBAHwEiwBPAtAAfAQhAEsCqQAIBHIAdwP1ABYF8gAhBAYAHwPlAAwEBgBSAq8AOAICAK4CrwAbBVEAdQIeAIYEfQBkBLUAXgWdAF0EQAALAfwAiAT4AFoDhQBdBkQAVwORAI0D4gBXBG0AfwZEAFcD2wCbAwoAfwRKAF8C9gA8AvYANwKbAHAEuwCSA+0ARQJCAI4CEABtAvYAgAOnAHcD4gBdBdAAWQYrAFAGVwBnA+QAQgeF//YERABNBYQAaQTKAJQE5wCIBsEASASnAGcEkQBDBIgATwSXAIIE7QBPBbAAHwIaAI8EmACOBGQAIgJPACEFkwCQBIgAfge0AGQHOgBbAgwAiwWIAFEC0P/kBYoAWASeAE8FpAB9BPIAdwIm/7UEPABZA+YAlAOwAHID3ACbA3wAdQILAIECsgB4Ak0AKQPYAHoDHwBJAmwAggAA/I4AAP1eAAD8cwAA/T4AAPwMAAD9HAJdAMYEPABnAkIAjgR1AJsFvwAZBXoAWwU4ACAEkABsBbEAmwSQAEcF7wBKBaoARAVbAGsEhABWBMYAlgQOACAEiABUBGAAYAQaAGEEiAB+BKEAcwKqAKkEagAWBBMAZATzAC0EiACABDcAUgSQAFIELQA/BGAAgAXQAEQFyQBPBpQAZgSzAHYEe//hBnEAMwX+ACIFWQBoCIgALQiPAJsGWwAxBaoAkgUIAJAGBgAkB6IAFgTWAEkFqACUBakALQUKADkGXwBPBfkAkgWJAI4HmwCYB/kAmAYaABgG+QCbBQcAkAVQAGsHVACgBPcAIAR9AFsEjwCPA1oAhQT2ACcGdgAeBBYATQSYAIYEbgCPBJoAIQYDAI8ElwCGBJgAhgP1ACMF0wBUBNMAhgRmAF8GjgCGBuwAfgUXAB8GbwCPBGgAjwQ8AFEGhACRBHAAJwRx/9sEPABUBtEAHgbkAIYEif/uBJgAhgdJAIgGTwBwBGf/4AcoAJgGAQCGBQwAHARgAAoHQgCsBjYAnQbtAIAF5gCCCTIAowf5AI8EIAAoA/AAMwV6AF8EiABPBRoAEAQOACAFegBfBIgATwdFAIgGRAB0B0kAiAZPAHAFGgBmBEoAXAT/AG0AAPxmAAD8cwAA/XsAAP2lAAD6JAAA+k0GKgCUBRsAhgRn/+AFEwCUBIYAfARqAI8DoQB+BPIAmwQgAH4IHAAWBtMAHgXMAJsE+gCPBSwAkASrAI4GlQA0BaQAPQYoAJQFDQCGB9AAlAWqAH4IRwCbBvUAfgYqAGcE/wBhBTkAKQRGAB8HMQAtBXAAJgX6AI4E3ABfBXQAgARzAHQFhgCEBiQAFgTD/8sFIQCQBHgAjgYoAC0FHQAhBa8AmwSIAH4GNQCUBRoAhgd+AJQGeACPBYgAUQSmAFsEpgBdBMcANAOvAC0FZwApBHQAHwUHAFIG8QBoBt0AXgZTADwFKAAvBHsASAQ+AHQHvgBCBp0AQAf9AJQGngB3BQQAXQQsAFUFqgAhBR0ARAVVAIEGSQAtBT4AIQMsAGcEFAAACCkAAAQUAAAIKQAAArkAAAIKAAABXAAABH8AAAIwAAABogAAAQAAAADRAAAAAAAAAqEARwKhAEcFKQCdBjAAgQOcAAMBwABjAbwAMwHOADIBqABKAxQAbAMbAEADCAAyBF0AQASZAFwCywCIA/oAigWmAIoByABaB6cASgJyAGwCaQBUA5wALQL2ADUDXABpBLUAXwZwACEGuACYCJMAlAYoACEGjAB8BIwAXgX1ACEENAAoBKIAIQVeAE8FfQAoBeQAcAPiAEwILgCQBQkAbQUUAJYGNQBZBt0AVAbRAFsGogBYBJEAYgWWAKYE2QBABIMAngSyADsIRQBeAi3/rwSOAGUEegCRBBEAPAQqAIAEDAAkAlsAoQKYAGMB8QBFBRsALQSoABgEvAAtByMALQcjAC0FEQAtBrcASwAAAAAIMABZCDUAXAL2ADwC9gCAAvYASwQdAE8EHQBYBB0AOQQcAGAEHQBnBB0AMAQdAD4EHQBCBB0AlgQdAFkEKgBBBDwABQReABUGBwAoBHsACQSEAGcEOwAkBDQAPgRcAHYEwABMBG0AdgTAAE8E3QB2BgYAdgO5AHYEWwB2A9UAJAH8AIUE3gB2BKYAVAPFAHYENAA+BGYAOAOkAAkDuQB2BHsACQTAAE8EewAJA5gAQgTYAHYEGQBEBZ0AUAVUAFAE5ABfBZEAJASAAE8HVAAkB1cAdgWXACQE1wB2BHEAdgVZACcGOgAaBEYAQgTkAHYEXAB2BMsAJARGAB8FXQB2BIwAQQaEAHYHCgB2BVoACgYgAHYEZwB2BIAAPAaSAHYEiABDBCIACgaSABoEnQB2BRoAdgVuACQF8ABPBFoABQTEABUGlQAkBIwAQQSMAHYF/gAKBNIATwRGAEIEwABPBGYAOAP3AEYINgB2BOsAKAL2ADcC9gA1AvYATwL2AE0C9gA2AvYASwL2AEYDuQCQArIAlgPgAHYEOwAKBLsAVgVEAJsFKACbBDAAgQU5AJsELQCBBHoAdgSAAE8EYAB2BJ4ACQIFAJQDoQB1AAD8nQQLAHoEC/9MBAsAdQQLAHUDuQB2A6EAdQOhAHUC9gBLAvYANQL2AE8C9gBNAvYANgL2AEsC9gBGBXoAawWiAGsFhgCbBeAAawXiAGsEGwCXBIIAbgRXAA8EvgA1BGsAZgQuAEMDoQB1AbMAXAaYAE8EtABzAhD/sASMADkEjABqBIwALASMAGYEjABjBIwANQSMAG8EjABZBIwAaASMAOMCJv+1Aib/tQIbAI8CG//7AhsAjwRgAHYE6wBiBDMAOgSIAHwEPQBQBJgATwSTAE8EoQBMBJQAfASfAE8ESwBTBIkAUQOkAFsFAwBdA8QAAwZG//EECQB2BMAATwUJADEE3QB2Af4AAAKgAEcFWP/3BVj/9wSP/9QE2wAtAqn/6AVTABIFUwASBVMAEgVTABIFUwASBVMAEgVTABIFOQBmBIYAlASGAJQEhgCUBIYAlAJC/8gCQgCjAkL/ywJC/78FrgCUBYYAZgWGAGYFhgBmBYYAZgWGAGYFNwB9BTcAfQU3AH0FNwB9BOAABwRUAFoEVABaBFQAWgRUAFoEVABaBFQAWgRUAFoEMABPBEsAUwRLAFMESwBTBEsAUwIa/7QCGgCPAhr/twIa/6sEcwB5BI4ATwSOAE8EjgBPBI4ATwSOAE8EcgB3BHIAdwRyAHcEcgB3A+UADAPlAAwFUwASBFQAWgVTABIEVABaBVMAEgRUAFoFOQBmBDAATwU5AGYEMABPBTkAZgQwAE8FOQBmBDAATwU6AJQFGgBPBIYAlARLAFMEhgCUBEsAUwSGAJQESwBTBIYAlARLAFMEhgCUBEsAUwVyAGoEiQBSBXIAagSJAFIFcgBqBIkAUgVyAGoEiQBSBa8AlARxAHkCQv+zAhr/nwJC/80CGv+5AkL/3wIa/8sCQgAXAgsAAAJCAJ0GswCjBAwAfQRxAC0CJv+1BQsAlAQtAH0EVACUAgsAigRUAJQCCwBVBFQAlAKhAIwEVACUAucAjAWuAJQEcwB5Ba4AlARzAHkFrgCUBHMAeQRz/6UFhgBmBI4ATwWGAGYEjgBPBYYAZgSOAE8E/gCUAtAAfAT+AJQC0ABPBP4AlALQADgE1ABKBCEASwTUAEoEIQBLBNQASgQhAEsE1ABKBCEASwTUAEoEIQBLBNsALQKpAAgE2wAtAqkACATbAC0C0QAIBTcAfQRyAHcFNwB9BHIAdwU3AH0EcgB3BTcAfQRyAHcFNwB9BHIAdwU3AH0EcgB3BwoAMAXyACEE4AAHA+UADATgAAcE0QBQBAYAUgTRAFAEBgBSBNEAUAQGAFIHhf/2BsEASAWEAGkEiABPBHr/pgR6/6YEOwAkBJ4ACQSeAAkEngAJBJ4ACQSeAAkEngAJBJ4ACQSAAE8D4AB2A+AAdgPgAHYD4AB2Afz/pgH8AIMB/P+pAfz/nQTdAHYEwABPBMAATwTAAE8EwABPBMAATwSEAGcEhABnBIQAZwSEAGcEPAAFBJ4ACQSeAAkEngAJBIAATwSAAE8EgABPBIAATwR6AGoD4AB2A+AAdgPgAHYD4AB2A+AAdgSmAFQEpgBUBKYAVASmAFQE3gB2Afz/kQH8/6sB/P+9AfwAFQH8AHwD1QAkBFsAdgO5AHYDuQB2A7kAdgO5AHYE3QB2BN0AdgTdAHYEwABPBMAATwTAAE8EXAB2BFwAdgRcAHYENAA+BDQAPgQ0AD4ENAA+BDsAJAQ7ACQEOwAkBIQAZwSEAGcEhABnBIQAZwSEAGcEhABnBgcAKAQ8AAUEPAAFBCoAQQQqAEEEKgBBBVMAEgSG/ucFr/7wAkL+8wWa/6cFRP7hBW//sgKq/4cFUwASBQwAlASGAJQE0QBQBa8AlAJCAKMFCwCUBwEAlAWuAJQFhgBmBR0AlATbAC0E4AAHBRAAKQJC/78E4AAHBIQAVgRgAGAEiAB+AqoAqQRgAIAEmACOBI4ATwS7AJID9QAWBAYAHwKq/8wEYACABI4ATwRgAIAGlABmBIYAlAR1AJsE1ABKAkIAowJC/78EcQAtBSgAmwULAJQFCgA5BVMAEgUMAJQEdQCbBIYAlAWoAJQHAQCUBa8AlAWGAGYFsQCbBR0AlAU5AGYE2wAtBRAAKQRUAFoESwBTBJgAhgSOAE8EgQB8BDAATwPlAAwEBgAfBEsAUwNaAIUEIQBLAgsAfQIa/6sCAf+1BG4AjwPlAAwHCgAwBfIAIQcKADAF8gAhBwoAMAXyACEE4AAHA+UADAFaAFICmABlBEoAjwIm/7EBvAAzBwEAlAb2AHwFUwASBFQAWgSGAJQFqACUBEsAUwSYAIYFqgBEBckATwUaABAEDv/xCHMATwlrAGYE1gBJBBYATQU5AGYEMABPBOAABwQOACACQgCjB6IAFgZ2AB4CQgCjBVMAEgRUAFoFUwASBFQAWgeF//YGwQBIBIYAlARLAFMFiABRBDwAWQQ8AFkHogAWBnYAHgTWAEkEFgBNBagAlASYAIYFqACUBJgAhgWGAGYEjgBPBXoAXwSIAE8FegBfBIgATwVQAGsEPABRBQoAOQPlAAwFCgA5A+UADAUKADkD5QAMBYkAjgRmAF8G+QCbBm8AjwSEAE8FUwASBFQAWgVTABIEVABaBVMAEgRUAFoFUwAQBFT/mgVTABIEVABaBVMAEgRUAFoFUwASBFQAWgVTABIEVABaBVMAEgRUAFoFUwASBFQAWgVTABIEVABaBVMAEgRUAFoEhgCUBEsAUwSGAJQESwBTBIYAlARLAFMEhgCUBEsAUwSG/9UES/+OBIYAlARLAFMEhgCUBEsAUwSGAJQESwBTAkIAowIaAI8CQgCUAgsAeAWGAGYEjgBPBYYAZgSOAE8FhgBmBI4ATwWGACcEjv+jBYYAZgSOAE8FhgBmBI4ATwWGAGYEjgBPBYoAWASeAE8FigBYBJ4ATwWKAFgEngBPBYoAWASeAE8FigBYBJ4ATwU3AH0EcgB3BTcAfQRyAHcFpAB9BPIAdwWkAH0E8gB3BaQAfQTyAHcFpAB9BPIAdwWkAH0E8gB3BOAABwPlAAwE4AAHA+UADATgAAcD5QAMBKIATwTbAC0D9QAjBYkAjgRmAF8EdQCbA1oAhQYkABYEw//LBHEAeQUH/9AFB//QBHX/8ANa/+IFPP/jBET/rgTgAAcEDgAgBRAAKQQGAB8EYABgBGUAAgYwAIEEjABRBIwATwSMADQEjACBBKAAiQS0AHwEoABdBLQAfQVyAGoEiQBSBa4AlARzAHkFUwASBFQADQSGAEgESwABAkL+9gIa/uIFhgBmBI4AFgT+ADIC0P9uBTcAcQRyAA8E3/6sBQwAlASBAHwFOgCUBIQATwU6AJQEhABPBa8AlARxAHkFCwCUBC0AfQULAJQELQB9BFQAlAILAHgHAQCUBvYAfAWuAJQEcwB5BYYAZgUdAJQEgQB8BP4AlALQAHIE1ABKBCEASwTbAC0CqQAIBTcAfQUtABID9QAWBS0AEgP1ABYHCgAwBfIAIQTRAFAEBgBSBcz+HASeAAkEHP8qBRr/NwI4/zkEyv+TBHj+6ATu/6QEngAJBGAAdgPgAHYEKgBBBN4AdgH8AIUEWwB2BgYAdgTdAHYEwABPBG0AdgQ7ACQEPAAFBF4AFQH8/50EPAAFA+AAdgO5AHYENAA+AfwAhQH8/50D1QAkBFsAdgRGAB8EngAJBGAAdgO5AHYD4AB2BOQAdgYGAHYE3gB2BMAATwTYAHYEbQB2BIAATwQ7ACQEXgAVBEYAQgTeAHYEgABPBDwABQX+AAoE5AB2BEYAHwWdAFAF0QCFBkb/8QTAAE8ENAA+BgcAKAYHACgGBwAoBDwABQVTABIEVABaBIYAlARLAFMEngAJA+AAdgIaAHgAAAABAAAFEAkLBAAAAgICAwYFBwYCAwMEBQIDAwQFBQUFBQUFBQUFAgIFBQUECAYGBgYFBQYGAwUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcFBAUDAgMGAgUFBgUCBgQHBAQFBwQDBQMDAwUEAwIDBAQHBwcECAUGBQYIBQUFBQYGAgUFAwYFCQgCBgMGBQYGAgUEBAQEAgMDBAQDAAAAAAAAAwUDBQYGBgUGBQcGBgUFBQUFBQUFAwUFBgUFBQUFBwcHBQUHBwYKCgcGBgcJBQYGBgcHBgkJBwgGBggGBQUEBgcFBQUFBwUFBAcFBQcIBgcFBQcFBQUICAUFCAcFCAcGBQgHCAcKCQUEBgUGBQYFCAcIBwYFBgAAAAAAAAcGBQYFBQQGBQkIBwYGBQcGBwYJBgkIBwYGBQgGBwUGBQYHBQYFBwYGBQcGCAcGBQUFBAYFBggIBwYFBQkHCQcGBQYGBgcGBAUJBQkDAgIFAgIBAQADAwYHBAICAgIDBAMFBQMEBgIJAwMEAwQFBwgKBwcFBwUFBgYHBAkGBgcICAcFBgUFBQkCBQUFBQUDAwIGBQUICAYIAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQUHBAUEAgUFBAUFBAQFBQUEBQUGBgYGBQgIBgUFBgcFBgUFBQYFBwgGBwUFBwUFBwUGBgcFBQcFBQcFBQUFBAkGAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABQUFBQQEBAMDAwMDAwMGBgYHBwUFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQYFBQUFBQUFBQUFBAYEBwUFBgUCAwYGBQUDBgYGBgYGBgYFBQUFAwMDAwYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQMCAwIDAgMCAwgFBQIGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUFBQUFBQgIBgUFBQUFBQUFBQUFBQQEBAQCAgICBQUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQUCAgICAgQFBAQEBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYDBgYGAwYGBQUGAwYIBgYGBQUGAwUFBQUDBQUFBQQFAwUFBQcFBQUDAwUGBgYGBgUFBggGBgYGBgUGBQUFBQUFBAUFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYHBgUKCwUFBgUFBQMJBwMGBQYFCAgFBQYFBQkHBQUGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUDAgMCBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYGBgYGBgYGBgYFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQUGBQUFBwUFBQUFBQUFBgUGBQYFBQUDAgYFBgMGBQUGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwUFBQMGBgQGBAgHBQUHBQUGAwUFBgUFBAUFAgUHBQUFBQUFAgUEBAUCAgQFBQUFBAQGBwUFBQUFBQUFBQUFBwYFBgcHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJIAsgESAVIB4gIiAnIDAgMyA6IDwgRCB0IH8gpCCqIKwgsSC6IL0hBSETIRYhIiEmIS4hXiICIgYiDyISIhoiHiIrIkgiYCJlJcruAvbD+wT+///9//8AAAAAAAIADQAgAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExAVQBYAFoAX8BjwGSAaABrwHwAfoCGAI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBKAEqgSyBLsEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIAogECATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCmIKsgsSC5ILwhBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQAA//b/5AHY/8IBzP/BAAABvwAAAboAAAG2AAABtAAAAbIAAAGqAAABrP8W/wf/Bf74/usB7gAAAAD+Zf5EASP92P3X/cn9tP2o/af9ov2d/YoAAP/+//0AAAAA/QoAAP/e/P78+wAA/LoAAPyyAAD8pwAA/KEAAPyZAAD8kQAA/ygAAP8lAAD8XgAA5eLlouVT5X7k5+V85X3hcuFz4W8AAOFs4WvhaeFh46nhWeOh4VDhIeEXAADg8gAA4O3g5uDl4J7gkeCP4ITflOB54E3fqt6s357fnd+W35Pfh99r31TfUdvtE7cK9wa7AsMBxwABAAAAAAAAAAAAAAAAAAAAAADkAAAA7gAAARgAAAEyAAABMgAAATIAAAF0AAAAAAAAAAAAAAAAAAABdAF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAXQBkAAAAagAAAAAAAABwAAAAggAAAIwAAACUgAAAmIAAAKOAAACmgAAAr4AAALOAAAC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAtIAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAACwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ/AoACgQKCAoMChACBAnsCjwKQApECkgKTApQAggCDApUClgKXApgCmQCEAIUCmgKbApwCnQKeAp8AhgCHAqoCqwKsAq0CrgKvAIgAiQKwArECsgKzArQAigJ6AIsAjAJ8AI0C4wLkAuUC5gLnAugAjgLpAuoC6wLsAu0C7gLvAvAAjwCQAvEC8gLzAvQC9QL2AvcAkQCSAvgC+QL6AvsC/AL9AJMAlAMMAw0DEAMRAxIDEwJ9An4ChQKgAysDLAMtAy4DCgMLAw4DDwCuAK8DhgCwA4cDiAOJALEAsgOQA5EDkgCzA5MDlAC0A5UDlgC1A5cAtgOYALcDmQOaALgDmwC5ALoDnAOdA54DnwOgA6EDogOjAMQDpQOmAMUDpADGAMcAyADJAMoAywDMA6cAzQDOA+QDrQDSA64A0wOvA7ADsQOyANQA1QDWA7QD5QO1ANcDtgDYA7cDuADZA7kA2gDbANwDugOzAN0DuwO8A70DvgO/A8ADwQDeAN8DwgPDAOoA6wDsAO0DxADuAO8A8APFAPEA8gDzAPQDxgD1A8cDyAD2A8kA9wPKA+YDywECA8wBAwPNA84DzwPQAQQBBQEGA9ED5wPSAQcBCAEJBIED6APpARcBGAEZARoD6gPrA+0D7AEoASkBKgErBIABLAEtAS4BLwEwBIIEgwExATIBMwE0A+4D7wE1ATYBNwE4BIQEhQPwA/EEdwR4A/ID8wSGBIcEfwFMAU0EfQR+A/QD9QP2AU4BTwFQAVEBUgFTAVQBVQR5BHoBVgFXAVgEAQQABAIEAwQEBAUEBgFZAVoEewR8BBsEHAFbAVwBXQFeBIgEiQFfBB0EigFvAXABgQGCBIwEiwGXBHYBnQAMAAAAAAu8AAAAAAAAAPkAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAngAAAChAAAArAAAAGMAAACtAAAArQAAAnkAAACuAAAAvwAAAG8AAADAAAAAxQAAAn8AAADGAAAAxgAAAIEAAADHAAAAzwAAAoYAAADQAAAA0AAAAnsAAADRAAAA1gAAAo8AAADXAAAA2AAAAIIAAADZAAAA3QAAApUAAADeAAAA3wAAAIQAAADgAAAA5QAAApoAAADmAAAA5gAAAIYAAADnAAAA7wAAAqEAAADwAAAA8AAAAIcAAADxAAAA9gAAAqoAAAD3AAAA+AAAAIgAAAD5AAAA/QAAArAAAAD+AAAA/gAAAIoAAAD/AAABDwAAArUAAAEQAAABEAAAAnoAAAERAAABEQAAAIsAAAESAAABJQAAAsYAAAEmAAABJgAAAIwAAAEnAAABJwAAAnwAAAEoAAABMAAAAtoAAAExAAABMQAAAI0AAAEyAAABNwAAAuMAAAE4AAABOAAAAI4AAAE5AAABQAAAAukAAAFBAAABQgAAAI8AAAFDAAABSQAAAvEAAAFKAAABSwAAAJEAAAFMAAABUQAAAvgAAAFSAAABUwAAAJMAAAFUAAABXwAAAv4AAAFgAAABYQAAAwwAAAFiAAABZQAAAxAAAAFmAAABZwAAAn0AAAFoAAABfgAAAxQAAAF/AAABfwAAAJUAAAGPAAABjwAAAJYAAAGSAAABkgAAAJcAAAGgAAABoQAAAJgAAAGvAAABsAAAAJoAAAHwAAAB8AAAA94AAAH6AAAB+gAAAoUAAAH7AAAB+wAAAqAAAAH8AAAB/wAAAysAAAIYAAACGQAAAwoAAAIaAAACGwAAAw4AAAI3AAACNwAAAJwAAAJZAAACWQAAAJ0AAAK8AAACvAAAA98AAALGAAACxwAAAJ4AAALJAAACyQAAAKAAAALYAAAC3QAAAKEAAALzAAAC8wAAAKcAAAMAAAADAQAAAKgAAAMDAAADAwAAAKoAAAMJAAADCQAAAKsAAAMPAAADDwAAAKwAAAMjAAADIwAAAK0AAAOEAAADhQAAAK4AAAOGAAADhgAAA4YAAAOHAAADhwAAALAAAAOIAAADigAAA4cAAAOMAAADjAAAA4oAAAOOAAADkgAAA4sAAAOTAAADlAAAALEAAAOVAAADlwAAA5AAAAOYAAADmAAAALMAAAOZAAADmgAAA5MAAAObAAADmwAAALQAAAOcAAADnQAAA5UAAAOeAAADngAAALUAAAOfAAADnwAAA5cAAAOgAAADoAAAALYAAAOhAAADoQAAA5gAAAOjAAADowAAALcAAAOkAAADpQAAA5kAAAOmAAADpgAAALgAAAOnAAADpwAAA5sAAAOoAAADqQAAALkAAAOqAAADsAAAA5wAAAOxAAADuQAAALsAAAO6AAADugAAA6MAAAO7AAADuwAAAMQAAAO8AAADvQAAA6UAAAO+AAADvgAAAMUAAAO/AAADvwAAA6QAAAPAAAADxgAAAMYAAAPHAAADxwAAA6cAAAPIAAADyQAAAM0AAAPKAAADzgAAA6gAAAPRAAAD0gAAAM8AAAPWAAAD1gAAANEAAAQAAAAEAAAAA+QAAAQBAAAEAQAAA60AAAQCAAAEAgAAANIAAAQDAAAEAwAAA64AAAQEAAAEBAAAANMAAAQFAAAECAAAA68AAAQJAAAECwAAANQAAAQMAAAEDAAAA7QAAAQNAAAEDQAAA+UAAAQOAAAEDgAAA7UAAAQPAAAEDwAAANcAAAQQAAAEEAAAA7YAAAQRAAAEEQAAANgAAAQSAAAEEwAAA7cAAAQUAAAEFAAAANkAAAQVAAAEFQAAA7kAAAQWAAAEGAAAANoAAAQZAAAEGQAAA7oAAAQaAAAEGgAAA7MAAAQbAAAEGwAAAN0AAAQcAAAEIgAAA7sAAAQjAAAEJAAAAN4AAAQlAAAEJQAAA8IAAAQmAAAELwAAAOAAAAQwAAAEMAAAA8MAAAQxAAAENAAAAOoAAAQ1AAAENQAAA8QAAAQ2AAAEOAAAAO4AAAQ5AAAEOQAAA8UAAAQ6AAAEPQAAAPEAAAQ+AAAEPgAAA8YAAAQ/AAAEPwAAAPUAAARAAAAEQQAAA8cAAARCAAAEQgAAAPYAAARDAAAEQwAAA8kAAAREAAAERAAAAPcAAARFAAAERQAAA8oAAARGAAAETwAAAPgAAARQAAAEUAAAA+YAAARRAAAEUQAAA8sAAARSAAAEUgAAAQIAAARTAAAEUwAAA8wAAARUAAAEVAAAAQMAAARVAAAEWAAAA80AAARZAAAEWwAAAQQAAARcAAAEXAAAA9EAAARdAAAEXQAAA+cAAAReAAAEXgAAA9IAAARfAAAEYQAAAQcAAARiAAAEYgAABIEAAARjAAAEbwAAAQoAAARwAAAEcQAAA+gAAARyAAAEdQAAARcAAAR2AAAEdwAAA+oAAAR4AAAEeAAAA+0AAAR5AAAEeQAAA+wAAAR6AAAEhgAAARsAAASIAAAEiwAAASgAAASMAAAEjAAABIAAAASNAAAEkQAAASwAAASSAAAEkwAABIIAAASUAAAElwAAATEAAASYAAAEmQAAA+4AAASaAAAEnQAAATUAAASeAAAEnwAABIQAAASgAAAEqQAAATkAAASqAAAEqwAAA/AAAASsAAAErQAABHcAAASuAAAErwAAA/IAAASwAAAEsQAABIYAAASyAAAEugAAAUMAAAS7AAAEuwAABH8AAAS8AAAEvQAAAUwAAAS+AAAEvwAABH0AAATAAAAEwgAAA/QAAATDAAAEygAAAU4AAATLAAAEzAAABHkAAATNAAAEzgAAAVYAAATPAAAE1wAAA/cAAATYAAAE2AAAAVgAAATZAAAE2QAABAEAAATaAAAE2gAABAAAAATbAAAE3wAABAIAAATgAAAE4QAAAVkAAATiAAAE9QAABAcAAAT2AAAE9wAABHsAAAT4AAAE+QAABBsAAAT6AAAE/QAAAVsAAAT+AAAE/wAABIgAAAUAAAAFAAAAAV8AAAUBAAAFAQAABB0AAAUCAAAFEAAAAWAAAAURAAAFEQAABIoAAAUSAAAFEwAAAW8AAB4AAAAeAQAAA+IAAB4+AAAePwAAA+AAAB6AAAAehQAAA9MAAB6gAAAe8QAABB4AAB7yAAAe8wAAA9kAAB70AAAe+QAABHAAAB9NAAAfTQAABMoAACAAAAAgCQAAAXIAACAKAAAgCwAAAX0AACAQAAAgEQAAAX8AACATAAAgFAAAAYEAACAVAAAgFQAABIwAACAXAAAgHgAAAYMAACAgAAAgIgAAAYsAACAlAAAgJwAAAY4AACAwAAAgMAAAAZEAACAyAAAgMwAAA9sAACA5AAAgOgAAAZIAACA8AAAgPAAAA90AACBEAAAgRAAAAZQAACB0AAAgdAAAAZUAACB/AAAgfwAAAZYAACCjAAAgowAABIsAACCkAAAgpAAAAZcAACCmAAAgqgAAAZgAACCrAAAgqwAABHYAACCsAAAgrAAAAZ0AACCxAAAgsQAAAZ4AACC5AAAgugAAAZ8AACC8AAAgvQAAAaEAACEFAAAhBQAAAaMAACETAAAhEwAAAaQAACEWAAAhFgAAAaUAACEiAAAhIgAAAaYAACEmAAAhJgAAALoAACEuAAAhLgAAAacAACFbAAAhXgAAAagAACICAAAiAgAAAawAACIGAAAiBgAAALIAACIPAAAiDwAAAa0AACIRAAAiEgAAAa4AACIaAAAiGgAAAbAAACIeAAAiHgAAAbEAACIrAAAiKwAAAbIAACJIAAAiSAAAAbMAACJgAAAiYAAAAbQAACJkAAAiZQAAAbUAACXKAAAlygAAAbcAAO4BAADuAgAAAbgAAPbDAAD2wwAAAboAAPsBAAD7BAAAAbwAAP7/AAD+/wAAAcIAAP/8AAD//QAAAcMAALAALEuwCVBYsQEBjlm4Af+FsEQdsQkDX14tsAEsICBFaUSwAWAtsAIssAEqIS2wAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS/9LbAFLEsgsAMmUFhRWLCARBuwQERZGyEhIEWwwFBYsMBEGyFZWS2wBiwgIEVpRLABYCAgRX1pGESwAWAtsAcssAYqLbAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbDAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSCwAyZTWLADJUW4AYBQWCMhuAGAIyEbsAMlRSMhIyFZGyFZRC2wCSxLU1hFRBshIVktsAossCxFLbALLLAtRS2wDCyxJwGIIIpTWLlAAAQAY7gIAIhUWLkALAPocFkbsCNTWLAgiLgQAFRYuQAsA+hwWVlZLbANLLBAiLggAFpYsS0ARBu5AC0D6ERZLbAMK7AAKwCyAQ4CKwGyDwECKwG3DzowJRsQAAgrALcBOC4kGhEACCu3Ak5AMiMVAAgrtwNIOy4hFAAIK7cETkAyIxUACCu3BTAoHxYOAAgrtwZjUT8tGwAIK7cHQDQkGhEACCu3CFtKOikZAAgrtwmDZE46IwAIK7cKd2JMNiEACCu3C5F3XDojAAgrtwx2YEs2HQAIK7cNLCQcFAwACCu3DkM3Kx8SAAgrALIQDgcrsAAgRX1pGESygBQBc7KwFAFzslAUAXSygBQBdLI/HAFzsl8cAXOyfxwBc7IvHAF0sk8cAXSybxwBdLKPHAF0sq8cAXSy/xwBdLIfHAF1sj8cAXWyXxwBdbJ/HAF1sg8gAXOybyABdbJ/IAFzsu8gAXOyHyABdLJfIAF0so8gAXSyzyABdLL/IAF0sj8gAXWyLyIBc7JvIgFzsi8qAXOyPyoBcwAAKgDMAJEAngCRAOwAcgCyAH0AVgBfAE4AYAEEAKoAxAAAABT+YAAUApsAEP85AA3+lwASAyEACwQ6ABQEjQAQBbAAFAYYABUGwAAQAlsAEgcEAAUG3gABAAAAAAAAAGAAYABgAGAAYACbAMUBQgHCAl0C+gMUA0ADbwOiA8gD6gQBBCgEPwSUBMIFFAWIBcwGMwacBskHSAezB78HywfqCBIIMQiYCUYJhwnzCkcKkQrTCwoLawupC8QL+Aw/DGMMvAz4DVMNnw4ADloOyQ70DzMPZA+zD/4QLxBoEI0QpBDKEPERDBEtEa4SDxJkEsITNxOBE/0UPRR3FMMVChUlFZEV2hYpFo4W7xctF5wX6BgvGF8YrRj2GTcZcBmzGcoaDBpRGo8a8htXG7kcGxw6HNcdCR2sHiweOB5WHwgfIh9iH6Yf+iBtII0g3yELISwhYiGRIdwh6CICIhwiNiKgIwYjRCPAJBIkfyVAJbkmESaEJuQnYCe/J9ooJyhxKK8pByljKekqhiq3KxwrhCvyLFcsrC0HLTgtnC3TLfsuAy4yLlUuji67Lv8vNC95L5kvuS/CL/MwJTBBMFowoDCoMM8w/TF4MaYx6DIXMlQyyTMjM400AjRzNKY1HDWbNfY2QDa0NuI3OzesN/44WDi2OQ05UjmSOf86UjqzOyw7fDvyPFU8xT08PbI+BD5BPpo+9z9jP+NAHEBmQK1BH0FVQZZB1EIdQndC3EMpQ6BEIER7RORFUEV3Rc1GOka6RvNHREeMR9ZIMEhfSItJFklMSY5JzEoRSmZKyUsUS4ZL/0xZTNNNQk24TilOjk7KTypPik/zUHlQ+1FIUZdSA1JxUuRTVlPgVGlVCVWdVgxWd1a8VwNXb1fXWJlZU1nNWk1ao1r3WyxbSFt8W5JbqFx8XOpdBV0gXYld4V5RXoFeql8BX01fWV9lX3FffV/TYCZgd2DNYNlg5WFFYZRh9GJLYtxjaGN0Y4Bjx2QLZBdkI2R2ZMVlCGV5ZflmWmavZrtmx2cmZ4JnjmeaZ6ZnsmgaaH1o2WjoaPhpBGkQaWBpyWpSasVrMGuYa/1samzWbTttqW4Fblhuq279b3RvgG+Mb7tvu2+7b7tvu2+7b7tvu2+7b7tvu2+7b7tvu2/Db8tv1W/fb/dwGnA8cFxwe3CHcJNwxnEFcWdxi3GXcadxynKacrZy0nLlcvlzQXPFdGh09nUCdcp2MHawd2d3znhJeKJ5EnmxehN6qnsIe2x7hnuge7p71HxBfGh8oXy4fO19gH3DfkR+hH6TfqJ+237ofxZ/L387f59/9YCQgRyBj4JZglmEDYR2hMmE84U8haGGJoZXhr6HI4dth/OISYh6iMiJAYkyiXuJxYn2ii+KWorFix6LeovEjBmMUoykjMiNC402jVGNrI4LjkKOuY8kj4aPsI/mkFqQjZDYkQqRTpG9kg+Sc5LSk02TwpRTlKSU5JU7lZKWDZaNlsmXIpdsl6+X6ZgrmGSYo5j7mQeZVJnLmlyasJrzm3Wb25xBnKSdNZ1BnZOd4J4unnCe4J9Gn6agHaCxoTih0KJHorui/aNdo7uj6KRupNCk56U7pX2mLqaYpvynRaeMp86oD6hYqK6pM6lyqZWp46pEqouq0asoq5qrx6wVrHCshKyYrKqsvqzQrOes+61PrbKt/q5brr2u6K9Ar5iv4LA/sGaw17DtsW2x0rIDshSyJbI4skmyWrJtsoCyk7KpsrGyubLBssmy1LLcs0OzlrPDtCO0d7TYtVa1o7YJtm2237dbt2O35rghuI+437lYuca6GLoYuiC6kbsCu2S7p7wMvCO8OrxRvGO8e7yOvJq8pry9vNS8670DvRq9Mb1IvWC9cr2JvaC9t73Ovea9/b4Pvia+Pr5Vvmy+fr6Uvqq+wb7ZvuW+8b8Ivxq/ML9Hv12/c7+Kv6K/s7/Kv9y/8sADwBvAMsBEwFrAccCDwJrAscDCwNnA8MFbwf/CEcIjwjrCUMJnwn7CkMKhwrPCw8LawuvDAsMYwy/DRsO1xE7EZcR2xI3Eo8S6xNDE58T+xQrFHMUzxUXFXMVuxYXFnMWzxcrF1cXgxffGA8YPxibGPcZJxlXGbMaDxo/Gm8awxsXG0cbdxvTHBscSxx7HNcdGx1vHcseDx5rHscfJx+HH88gFyBHIHcgvyEDIUshkyHvIkcidyKnItcjByNPI5MjwyPzJCMkUySvJN8lOyWTJdsmMyaPJusnNyeDJ+MoLymrKzcrkyvvLEssoy0DLV8tuy4XLnMuuy7/L1svoy//MFsxGzHbMhsydzLTMyszbzPPNC80XzSPNOs1RzWfNfs2VzavNws3azezOA84VzivOPM5UzmvOgs6YzrDOx87dzvTPXM9uz4TPm8+sz73P08/p0ADQb9CF0JvQstDJ0NXQ69D90RTRK9E20UzRY9Fv0YXRkdGm0bLRydHV0ezR/dIU0ifSOdJF0lbSaNJ+0orSm9Kn0r3SydLf0vDTB9Ma0y3Tj9Om07zT09Pq1AHUF9Qi1C7UOtRG1FLUXtRq1IXUjdSV1J3UpdSt1LXUvdTF1M3U1dTd1OXU7dT11Q3VJdU31UnVW9Vs1YbVjtWW1Z7VptYR1inWQNZS1mTWdtaO1qXXFNcc1zTXPNdE11vXctd614LXiteS16nXsde518HXydfR19nX4dfp1/HX+dgQ2BjYINh12H3Yhdic2LPYu9jD2NvY49j62RDZJ9k+2VXZbNmE2ZzZs9nJ2d3Z/NoI2hraIto52kvaV9pj2nrakdqo2r/ax9rP2ufa/9sL2xfbI9sv2zvbR9tP21fbX9t2243bldus28Pb29vy2/rcAtwZ3C/cR9xP3GbcftyW3K7cxdzc3PLdCt0i3TrdUt1a3WLdet2R3andwN3S3ePd+94S3ireQt5a3nHejd6p3rHevd7J3tve7d8G3x3fNt9N32XffN+U36vfxt/g3/PgBeAY4CrgPeBP4GfgfuCZ4LTgwODM4N7g8OEC4RPhLOFD4Vzhc+GL4aLhuuHR4eziBuIY4iriNuJC4k7iWuJx4oPim+Ky4sri4eL54xDjKOM/41rjdOOL46LjuePQ4+fj/uQV5CvkN+RD5E/kW+Rt5H/kluSt5MTk2+Ty5QnlIOU25ULlTuVa5WbleOWK5ZzlreXH5dPl3+Xr5ffmA+YP5hvmJ+Yv5pbm/ec853zn2+g76Ibo1ekw6Ynpkemd6afpr+m36b/px+nP6dfp3+nn6fnqC+oi6jnqUepp6oHqmeqx6snq4er56xHrKetB61nrZetx633rieuV66HrtOvA68zr3uvw6/zsCOwU7CDsLOw47ETsUOxo7HrsjOyY7KTssOy87Mjs1Ozn7PntCu0W7SLtLu067UbtUu1e7Wrtdu2C7Y7tmu2m7bLtuu3C7crt0u3a7eLt6u3y7fruAu4K7hLuGu4i7jruUe5o7nrugu6K7qLuqu687tLu2u7i7uru8u8J7xHvGe8h7ynvMe8570HvSe/X8Enwq/Cz8L/w0fDi8Orw9vEC8Q7xGvEm8TLxPvFK8VbxYvFu8XrxhvGS8Z4AAAAFAGQAAAMoBbAAAwAGAAkADAAPAG+yDBARERI5sAwQsADQsAwQsAbQsAwQsAnQsAwQsA3QALAARViwAi8bsQIgPlmwAEVYsAAvG7EAED5ZsgQCABESObIFAgAREjmyBwIAERI5sggCABESObAK3LIMAgAREjmyDQIAERI5sAIQsA7cMDEhIREhAxEBAREBAyEBNQEhAyj9PALENv7u/roBDOQCA/7+AQL9/QWw+qQFB/19Anf7EQJ4/V4CXogCXgACAI//8gGjBbAAAwANADyyBg4PERI5sAYQsAHQALAARViwAi8bsQIgPlmwAEVYsAwvG7EMED5ZsQYNsAorWCHYG/RZsAHQsAEvMDEBIwMhATQ2MhYVFAYiJgF+0RcBAP75SoBKSIRIAa0EA/rDOUtLOTdKSgAAAgBlA/QCQAYAAAQACQAlALAARViwAy8bsQMiPlmwAtCwAi+wB9CwBy+wAxCwCNCwCC8wMQEDIxEzBQMjETMBEyOLrgEtI4uuBXf+fQIMif59AgwAAgBgAAAEvAWwABsAHwCPALAARViwDC8bsQwgPlmwAEVYsBAvG7EQID5ZsABFWLACLxuxAhA+WbAARViwGi8bsRoQPlmyHQwCERI5sB0vsQADsAorWCHYG/RZsATQsB0QsAbQsB0QsAvQsAsvsQgDsAorWCHYG/RZsAsQsA7QsAsQsBLQsAgQsBTQsB0QsBbQsAAQsBjQsAgQsB7QMDEBIwMjEyM1IRMjNSETMwMzEzMDMxUjAzMVIwMjAzMTIwLP4EyoTOcBBTrzARFOp07hTqdO0O463ftMp3bgOuABmv5mAZqeATmfAaD+YAGg/mCf/see/mYCOAE5AAEAZP8tBCYGmwAsAICyKi0uERI5ALAARViwDC8bsQwgPlmwAEVYsAkvG7EJID5ZsABFWLAjLxuxIxA+WbAARViwIC8bsSAQPlmyGQwgERI5sBkQsQIBsAorWCHYG/RZsg8JIxESObAMELETAbAKK1gh2Bv0WbInIwkREjmwIxCxKgGwCitYIdgb9FkwMQE0JiYnJjU0Njc1MxUWFhUjNCYjIgYVFBYEHgIVFAYHFSM1JiY1MxQWMzI2AzNs/Ebpyq2grr7ycWFgbGsBAJJkNs+5n8bV8390cncBfFVvWSZ99abWFNrcGfXEfpFoYVdpXlBnhlqp0hPDwhbwxn6KbgAFAGP/7AWJBcUADQAaACcANQA5AI2yBTo7ERI5sAUQsBPQsAUQsBvQsAUQsCjQsAUQsDbQALA2L7A4L7AARViwAy8bsQMgPlmwAEVYsCUvG7ElED5ZsAMQsArQsAovsRECsAorWCHYG/RZsAMQsRgCsAorWCHYG/RZsCUQsB7QsB4vsCUQsSsCsAorWCHYG/RZsB4QsTICsAorWCHYG/RZMDETNDYzMhYVFRQGIyImNRcUFjMyNjU1NCYiBhUBNDYzMhYVFRQGICY1FxQWMzI2NTU0JiMiBhUFJwEXY6qKjKmpioevqk0/PkxNfksCEq6HiK2n/uirqk8+QElOPT5N/gJ9Asd9BJiEqamJSIOopYwGRVVVSUlFVldH/NCGpqaNR4Kpp4kFRFdTS0tGVFRK9EgEckgAAwBW/+wFEQXEABwAJQAxAJqyLjIzERI5sC4QsBDQsC4QsB7QALAARViwCS8bsQkgPlmwAEVYsBsvG7EbED5ZsABFWLAYLxuxGBA+WbIgGwkREjmyKAkbERI5sgMgKBESObIQKCAREjmyExsJERI5shETGBESObIZGBMREjmyFhEZERI5sBsQsR0BsAorWCHYG/RZsh8dERESObAJELEvAbAKK1gh2Bv0WTAxEzQ2NyYmNTQ2MzIWFRQGBwcBNjUzEAcXIScGICQFMjcBBwYVFBYDFBc3NzY1NCYjIgZWbqJVQ9Cwn8tcaWMBGT3Tftb+5lKc/lD+/QHie2v+wh94ghlnbx8+VkJHVAGJZal0a5ZGq8e7iluZTEj+tHiT/vOs/WF15SNSAXcWW3VlfgOqVH9MGTdWOVFgAAABAFID/AELBgAABAAWALAARViwAy8bsQMiPlmwAtCwAi8wMQEDIxEzAQsan7kFg/55AgQAAQCA/jECogZfABAAELIHERIREjkAsAQvsA0vMDETNBISNxcGAgMHEBIXByYCAoB88IYwja8IAauaMIbxewJQ5wGfAUdCjmv+Sf7lVv7R/iV8h0IBSQGdAAEAKP4xAlEGXwASABCyBxMUERI5ALAEL7AOLzAxARQCAgcnNhIRNRACJyc3FhISFwJReviHMJavmI4fMIDwgAgCQN7+Y/6tQYd0Ad0BMhcBFgHJihyIPv7E/nnQAAABABsCTQN0BbAADgAgALAARViwBC8bsQQgPlmwANAZsAAvGLAJ0BmwCS8YMDEBJTcFAzMDJRcFEwcDAycBTP7PNwEuD7MPASk2/srIkbSykgPMWKl1AVj+onOsWP72agEg/ulmAAABAEQAkgQqBLYACwAbALAJL7AA0LAJELEGAbAKK1gh2Bv0WbAD0DAxASEVIREjESE1IREzAq4BfP6E7P6CAX7sAyHe/k8Bsd4BlQAAAQAc/rgBXQDrAAkAGbIJCgsREjkAsAovsQUNsAorWCHYG/RZMDETJzY2NzUzBwYGn4M6KwHbAQFp/rhOW4dGva9q1QABAEcCCQJUAs0AAwASALACL7EBAbAKK1gh2Bv0WTAxASE1IQJU/fMCDQIJxAAAAQCH//UBogEAAAoAI7IACwwREjkAsABFWLAGLxuxBhA+WbEADbAKK1gh2Bv0WTAxATIWFRQGIyImNDYBFERKSkRBTEoBAE06OUtKdE0AAQAC/4MC/gWwAAMAEwCwAC+wAEVYsAIvG7ECID5ZMDEXIwEzwb8CPb99Bi0AAAIAaf/sBCIFxAANABsASLIDHB0REjmwAxCwEdAAsABFWLAKLxuxCiA+WbAARViwAy8bsQMQPlmwChCxEQGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMQEQAiMiAgM1EBIzMhITJzQmIyIGBxEUFjMyNjcEIuvw7O8D6/Hv6wPzcHp3cANyenVwAwJl/sb+wQE3ATH8AToBOv7O/s8Uzb+1wP62zMi5xQAAAQCoAAAC/wW1AAYAOgCwAEVYsAUvG7EFID5ZsABFWLAALxuxABA+WbIEAAUREjmwBC+xAwGwCitYIdgb9FmyAgMFERI5MDEhIxEFNSUzAv/y/psCOB8EkXrN0QABAFEAAARABcQAGQBQshEaGxESOQCwAEVYsBEvG7ERID5ZsABFWLAALxuxABA+WbIDEQAREjmwERCxCQGwCitYIdgb9FmyFhEAERI5sAAQsRgBsAorWCHYG/RZMDEhITUBNjY1NCYjIgYVIzQ2NjMyFhUUBgcBIQRA/C0B5WlZdWN2gvN54ZPU9XuM/pwCpKcCEXWdT2iAkH2F1XbVvG3vmP6DAAEAT//sBBUFxAApAHGyByorERI5ALAARViwDy8bsQ8gPlmwAEVYsBsvG7EbED5ZsgEPGxESObABL7IfAQFxsp8BAV2yPwEBcbAPELEHAbAKK1gh2Bv0WbABELEoAbAKK1gh2Bv0WbIVKAEREjmwGxCxIgGwCitYIdgb9FkwMQEzNjY1NCYjIgYVIzQ2NjMyFhUUBgcWFhUUBCMiJDUzFBYzMjY1NCYjIwGGlHCDbXBifvN31YTa+X1jeH3+89vS/vTzgW1xgoiGjwNHAXJsaHNxW3C4Z9vDYq0sKbB6xOjgumB4eHJzfAACADQAAARYBbAACgAOAEoAsABFWLAJLxuxCSA+WbAARViwBC8bsQQQPlmyAQkEERI5sAEvsQIBsAorWCHYG/RZsAbQsAEQsAvQsggGCxESObINCQQREjkwMQEzFSMRIxEhJwEzASERBwOjtbXz/YsHAnT7/ZABfRICB8P+vAFElAPY/FcCYCAAAQCB/+wEOgWwAB0AbbIaHh8REjkAsABFWLABLxuxASA+WbAARViwDS8bsQ0QPlmwARCxAwGwCitYIdgb9FmyBwENERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELEUAbAKK1gh2Bv0WbIRFBoREjmyHRoUERI5MDETEyEVIQM2MzISFRQAIyIkJzMWFjMyNjU0JiMiBgeuTwMO/bwoZX/Q5/8A38j++QvrDnxkcH2KeUJcNgLSAt7S/qQ6/vbh3v7547pqcaCKhZsjMwACAHX/7AQ3BbcAFAAfAGWyFSAhERI5sBUQsA3QALAARViwAC8bsQAgPlmwAEVYsA0vG7ENED5ZsAAQsQEBsAorWCHYG/RZsgcADRESObAHL7IFBw0REjmxFQGwCitYIdgb9FmwDRCxGwGwCitYIdgb9FkwMQEVIwYGBzYzMhIVFAAjIgARNRAAIQMiBgcVFBYyNhAmA2EezPQXdbbB3/771Nr+8QF1AV7sUIUfiNh+gAW3yQPayHv+8Nfe/u0BQgEFUwF/AbL9SVpLSqK/ogEIpgABAEUAAAQ2BbAABgAzALAARViwBS8bsQUgPlmwAEVYsAEvG7EBED5ZsAUQsQMBsAorWCHYG/RZsgADBRESOTAxAQEjASE1IQQ2/br/AkX9DwPxBSn61wTtwwADAGj/7AQiBcQAFwAhACsAd7IJLC0REjmwCRCwGtCwCRCwJNAAsABFWLAVLxuxFSA+WbAARViwCS8bsQkQPlmyKQkVERI5sCkvsh8pAXGxGgGwCitYIdgb9FmyAxopERI5sg8pGhESObAJELEfAbAKK1gh2Bv0WbAVELElAbAKK1gh2Bv0WTAxARQGBxYWFRQEIyIkNTQ2NyYmNTQ2MzIWAzQmIgYVFBYyNgM0JiIGFRQWMjYEAm5fcnv+/NjZ/vt8cF5t8MzN8NOB1H993HsfbrpsbbptBDBrpzA1uHTA4eK/dboyMKdrutra/K9shYRta4B8Av1fe3VlZHZ2AAIAXf/6BBIFxAAVACEAZ7IJIiMREjmwCRCwFtAAsABFWLAJLxuxCSA+WbAARViwES8bsREQPlmyFhEJERI5fLAWLxixAgGwCitYIdgb9FmyAAIJERI5sBEQsRIBsAorWCHYG/RZsAkQsR0BsAorWCHYG/RZMDEBBiMiAjU0NjYzMgARFRAABSM1MzY2AzI2NzU0JiIGFRQWAx56o8DkdNaN3AEC/pz+nx0j1+bcSYAjhNJ9fgJhgQEN25Dqgv64/u1E/nb+YgPJA8kBD1RKX6HErYSJqP//AIL/9QGdBFEAJgAS+wAABwAS//sDUf//AC7+uAGIBFEAJwAS/+YDUQAGABASAAABAD8ApAOEBE4ABgAXsgAHCBESOQCwAEVYsAUvG7EFHD5ZMDEBBRUBNQEVATYCTvy7A0UCd+DzAXXBAXTzAAIAkQFkA+8D1gADAAcAJwCwBy+wA9CwAy+xAAGwCitYIdgb9FmwBxCxBAGwCitYIdgb9FkwMQEhNSERITUhA+/8ogNe/KIDXgMMyv2OyQAAAQCAAKUD4AROAAYAF7IABwgREjkAsABFWLACLxuxAhw+WTAxASU1ARUBNQLq/ZYDYPygAnzj7/6Mwf6M7wACADz/9AOYBcQAGAAjAGCyCSQlERI5sAkQsBzQALAARViwEC8bsRAgPlmwAEVYsCIvG7EiED5ZsRwNsAorWCHYG/RZsADQsAAvsgQAEBESObAQELEJAbAKK1gh2Bv0WbIMEAAREjmyFQAQERI5MDEBNDY2NzY1NCYjIgYVIzY2MzIWFRQHBwYHAzQ2MzIWFRQGIiYBXkLDGihdWlZp8wLtw8nhmHtCAvRKP0BKSIRHAayFnr0oPUdeY2FTsc7Mt6OeeUuQ/sk7SUs5N0pKAAIAW/47BtkFkAA2AEIAgLI7Q0QREjmwOxCwI9AAsCovsDMvsABFWLADLxuxAxA+WbAARViwCC8bsQgQPlmyBTMIERI5sg8zCBESObAPL7AIELE6ArAKK1gh2Bv0WbAV0LAzELEbArAKK1gh2Bv0WbAqELEjArAKK1gh2Bv0WbAPELFAArAKK1gh2Bv0WTAxAQYCIyInBgYjIiY3NhI2MzIWFwMGMzI2NxIAISIEAgcGEgQzMjY3FwYGIyIkJyYTEhIkMzIEEgEGFjMyNjcTJiMiBgbNDN6+tT0zh0qSlxIQf8NuVIFXNBOFZoMGEf7B/sDE/tGyCQyLAR/PVLdAJj3Paf7+lFteCwzeAYH2+QFnsvwDDUpRNmAeLTIvb4wCBvr+35pMTPDJowEGjypC/c3G264BcQGIxP6N7fH+o7YoIokoMdfM0wEmARIBtfLb/mX+jIiNX1MB7RPRAAIAEgAABUIFsAAHAAoARwCwAEVYsAQvG7EEID5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmyCQQCERI5sAkvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIQEzASEBIQMDw/3Mdv75AibjAif++P2cAabTAVP+rQWw+lACHwJcAAADAJQAAASjBbAADgAWAB8AcLICICEREjmwAhCwEdCwAhCwHtAAsABFWLABLxuxASA+WbAARViwAC8bsQAQPlmyFwABERI5sBcvsh8XAXGxDwGwCitYIdgb9FmyCA8XERI5sAAQsRABsAorWCHYG/RZsAEQsR4BsAorWCHYG/RZMDEzESEyBBUUBgcWFhUUBCMBESEyNjU0JyUzMjY1NCYjI5QB8/cBAmxodoH++fX+6gEZd4bo/tL4doV7gvYFsMbEZKAsILF8zdwCkf45dmnjBbprYmxgAAABAGb/7ATrBcQAHQBCsgMeHxESOQCwAEVYsAwvG7EMID5ZsABFWLADLxuxAxA+WbAMELETAbAKK1gh2Bv0WbADELEaAbAKK1gh2Bv0WTAxAQYAIyIkAic1NBIkMzIAFyMmJiMiBgcVFBYzMjY3BOsW/tT5rv73kAOSARGz8QEmGPwSk46lsQKpo5WWFAHa6f77pQEwyYjOATqq/vrvnYvx6YHs+IacAAACAJQAAATSBbAACwAVAEiyAhYXERI5sAIQsBXQALAARViwAS8bsQEgPlmwAEVYsAAvG7EAED5ZsAEQsQwBsAorWCHYG/RZsAAQsQ0BsAorWCHYG/RZMDEzESEyBBIVFRQCBCMDETMyNjc1NCYjlAGuwQErpKX+z8WmpcfVAs7EBbCs/sTMSc/+xqoE5Pvm+elR7foAAQCUAAAETAWwAAsAUQCwAEVYsAYvG7EGID5ZsABFWLAELxuxBBA+WbILBgQREjmwCy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FkwMQEhESEVIREhFSERIQPn/aoCu/xIA7H9TAJWAor+QMoFsMz+bgAAAQCUAAAEMQWwAAkAQgCwAEVYsAQvG7EEID5ZsABFWLACLxuxAhA+WbIJBAIREjmwCS+xAAGwCitYIdgb9FmwBBCxBgGwCitYIdgb9FkwMQEhESMRIRUhESED2/22/QOd/WACSgJp/ZcFsMz+TwABAGr/7ATwBcQAHgBYsgsfIBESOQCwAEVYsAsvG7ELID5ZsABFWLADLxuxAxA+WbALELERAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbIeCwMREjmwHi+xGwGwCitYIdgb9FkwMSUGBCMiJAInNRAAITIEFyMCISIGBxUUEjMyNxEhNSEE8E/+6LK3/uaZAwE8ARvzAR4d+Cr++aqxA8exwlL+1AIovWdqpgE1znIBSgFz8OIBB/XtcOz++1gBHcAAAAEAlAAABRgFsAALAE0AsABFWLAGLxuxBiA+WbAARViwCi8bsQogPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbIJBgAREjmwCS+xAgGwCitYIdgb9FkwMSEjESERIxEzESERMwUY/P11/f0Ci/wCh/15BbD9ogJeAAABAKMAAAGfBbAAAwAdALAARViwAi8bsQIgPlmwAEVYsAAvG7EAED5ZMDEhIxEzAZ/8/AWwAAABAC3/7APkBbAADwAwsgUQERESOQCwAEVYsAAvG7EAID5ZsABFWLAFLxuxBRA+WbEMAbAKK1gh2Bv0WTAxATMRFAQjIiY1MxQWMzI2NQLo/P771uT4/HNtZnkFsPwD0fbmzXR1h3cAAAEAlAAABRgFsAAMAFMAsABFWLAELxuxBCA+WbAARViwCC8bsQggPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIABAIREjm0agB6AAJdsgYEAhESObRlBnUGAl0wMQEHESMRMxE3ASEBASECNqX9/YwBqgEy/eMCPP7UAnWv/joFsP1VrQH+/Xv81QABAJQAAAQmBbAABQApALAARViwBC8bsQQgPlmwAEVYsAIvG7ECED5ZsQABsAorWCHYG/RZMDElIRUhETMBkQKV/G79ysoFsAABAJQAAAZqBbAADgBuALAARViwAC8bsQAgPlmwAEVYsAIvG7ECID5ZsABFWLAELxuxBBA+WbAARViwCC8bsQgQPlmwAEVYsAwvG7EMED5ZsgEABBESObRlAXUBAl2yBwAEERI5tGoHegcCXbIKAAQREjm0agp6CgJdMDEJAiERIxETASMBExEjEQHcAaQBowFH/Bn+UrX+Uxn8BbD7pARc+lAB4AKC+54EYf1//iAFsAAAAQCUAAAFFwWwAAkATLIBCgsREjkAsABFWLAFLxuxBSA+WbAARViwCC8bsQggPlmwAEVYsAAvG7EAED5ZsABFWLADLxuxAxA+WbICBQAREjmyBwUAERI5MDEhIwERIxEzAREzBRf9/Xf9/QKL+wQJ+/cFsPvzBA0AAgBm/+wFHgXEABAAHgBIsgQfIBESObAEELAU0ACwAEVYsAwvG7EMID5ZsABFWLAELxuxBBA+WbAMELEUAbAKK1gh2Bv0WbAEELEbAbAKK1gh2Bv0WTAxARQCBCMiJAInNTQSJCAEEhcHNAIjIgIHFRQSMzISNQUelP7ts7H+65cBlwETAWQBE5YB/beopLkCu6aotQKy1v69ra0BQNFS1QFGrav+v9UF8gEC/v/rVPD++gEA9gACAJQAAATUBbAACgATAE+yChQVERI5sAoQsAzQALAARViwAy8bsQMgPlmwAEVYsAEvG7EBED5ZsgsBAxESObALL7EAAbAKK1gh2Bv0WbADELETAbAKK1gh2Bv0WTAxAREjESEyBBUUBCMlITI2NTQmJyEBkf0CLfQBH/7n/f7TATCHjpB+/skCHf3jBbD+0dbuy394do0CAAIAYP8EBRoFxAAVACMASLIIJCUREjmwCBCwINAAsABFWLARLxuxESA+WbAARViwCC8bsQgQPlmwERCxGQGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEUAgcXByUGIyIkAic1NBIkMzIEEhcHNCYjIgIHFRQSMzISNQUZg3b6pP7KPUaw/uuXAZcBE7G0AROWAf64qKO5ArmnqbUCss/+0VnDlPUNrQFA0VLVAUatq/6/1QX2/v7/6lXs/vYBAPYAAgCUAAAE3gWwAA4AFwBcsgUYGRESObAFELAQ0ACwAEVYsAQvG7EEID5ZsABFWLACLxuxAhA+WbIPAgQREjmwDy+xAQGwCitYIdgb9FmyCwEPERI5sAIQsA7QsAQQsRcBsAorWCHYG/RZMDEBIREjESEyBBUUBgcBFSEBITI2NTQmJyECq/7m/QIA/AESjX4BR/7x/cIBBICQhYT+9QIx/c8FsOLWksU1/aENAvyBcHWAAgAAAQBK/+wEigXEACcAZrIRKCkREjkAsABFWLAJLxuxCSA+WbAARViwHS8bsR0QPlmyAh0JERI5sg4JHRESObAJELERAbAKK1gh2Bv0WbACELEXAbAKK1gh2Bv0WbIiHQkREjmwHRCxJQGwCitYIdgb9FkwMQE0JiQnJjU0JDMyFhYVIzQmIyIGFRQWBBYWFRQEIyIkJjUzFBYzMjYDjYf+oGjHAR/lmO6I/I+FfImUAVTOYP7p757+95P9pJmEhQF3YGhqQX3JsORwz35ygWpfUGtlgadwttd1zol8iGsAAQAtAAAEsAWwAAcALwCwAEVYsAYvG7EGID5ZsABFWLACLxuxAhA+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSEEsP46+/4+BIME5PscBOTMAAABAH3/7AS9BbAAEAA9sgQREhESOQCwAEVYsAkvG7EJID5ZsABFWLAQLxuxECA+WbAARViwBC8bsQQQPlmxDQGwCitYIdgb9FkwMQERFAAjIgA1ETMRFBYzIBERBL3+1/f6/tr8lJABJAWw/DPo/vEBC+0DzPwykpoBNAPGAAABABIAAAUdBbAABgA4sgAHCBESOQCwAEVYsAEvG7EBID5ZsABFWLAFLxuxBSA+WbAARViwAy8bsQMQPlmyAAEDERI5MDEBASEBIwEhApUBcgEW/fT1/fYBFQE9BHP6UAWwAAEAMAAABuUFsAAMAGCyBQ0OERI5ALAARViwAS8bsQEgPlmwAEVYsAgvG7EIID5ZsABFWLALLxuxCyA+WbAARViwAy8bsQMQPlmwAEVYsAYvG7EGED5ZsgABAxESObIFAQMREjmyCgEDERI5MDEBEzMBIwEBIwEzEwEzBQrg+/6w8v7r/uXz/rD74gEW1AFoBEj6UAQn+9kFsPu6BEYAAQApAAAE6QWwAAsAUwCwAEVYsAEvG7EBID5ZsABFWLAKLxuxCiA+WbAARViwBC8bsQQQPlmwAEVYsAcvG7EHED5ZsgABBBESObIGAQQREjmyAwAGERI5sgkGABESOTAxAQEhAQEhAQEhAQEhAokBMgEk/kgBwv7Z/sf+xv7aAcP+RwEkA6ICDv0u/SICFv3qAt4C0gAAAQAHAAAE1gWwAAgAMQCwAEVYsAEvG7EBID5ZsABFWLAHLxuxByA+WbAARViwBC8bsQQQPlmyAAEEERI5MDEBASEBESMRASECbwFPARj+GP7+FwEZAv4Csvxo/egCGAOYAAABAFAAAASMBbAACQBGALAARViwBy8bsQcgPlmwAEVYsAIvG7ECED5ZsQABsAorWCHYG/RZsgQAAhESObAHELEFAbAKK1gh2Bv0WbIJBQcREjkwMSUhFSE1ASE1IRUBggMK+8QC8f0UBB/KyqQEQMygAAABAIT+vAIcBo4ABwAkALAEL7AHL7EAAbAKK1gh2Bv0WbAEELEDAbAKK1gh2Bv0WTAxASMRMxUhESECHKWl/mgBmAXQ+am9B9IAAAEAFP+DA2QFsAADABMAsAIvsABFWLAALxuxACA+WTAxEzMBIxTwAmDwBbD50wABAAz+vAGmBo4ABwAnALACL7ABL7ACELEFAbAKK1gh2Bv0WbABELEGAbAKK1gh2Bv0WTAxEyERITUzESMMAZr+ZqenBo74Lr0GVwAAAQA1AtkDNQWwAAYAJ7IABwgREjkAsABFWLADLxuxAyA+WbAA0LIBBwMREjmwAS+wBdAwMQEDIwEzASMBtbLOASurASrNBKb+MwLX/SkAAQAD/0EDmAAAAAMAHACwAEVYsAMvG7EDED5ZsQABsAorWCHYG/RZMDEFITUhA5j8awOVv78AAQAxBNECCQYAAAMAJACwAS+yDwEBXbAD0LADL7QPAx8DAl2yAAEDERI5GbAALxgwMQEjASECCcr+8gEVBNEBLwAAAgBa/+wD+wROAB4AKQCIshcqKxESObAXELAg0ACwAEVYsBcvG7EXHD5ZsABFWLAELxuxBBA+WbAARViwAC8bsQAQPlmyAhcEERI5sgsXBBESObALL7AXELEPAbAKK1gh2Bv0WbISCw8REjlACQwSHBIsEjwSBF2wBBCxHwGwCitYIdgb9FmwCxCxIwewCitYIdgb9FkwMSEmJwYjIiY1NCQzMzU0JiMiBhUjNDY2MzIWFxEUFxUlMjY3NSMiBhUUFgMDEAx0qKPOAQHvlV5gU2rzdst9vuIDKf39SH8gg4eIXR9GebqJrblHVGVTQFmbWL+t/hiSVxGvRjvMXlZGUwAAAgB8/+wEMgYAAA8AGwBmshMcHRESObATELAM0ACwCS+wAEVYsAwvG7EMHD5ZsABFWLADLxuxAxA+WbAARViwBi8bsQYQPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInByMRMxE2MzISESc0JiMiBxEWMzI2NwQy4cW+agzc82myxuLzfHaeQEGfcnwCAhL8/taJdQYA/dJ8/tr++AewsIr+Qo2qrAABAE//7AP1BE4AHABNsgAdHhESOQCwAEVYsA8vG7EPHD5ZsABFWLAILxuxCBA+WbEAAbAKK1gh2Bv0WbIDCA8REjmyEw8IERI5sA8QsRYBsAorWCHYG/RZMDElMjY3Mw4CIyIAETU0ADMyFhcjJiYjIgYHFRQWAjlbeATlBHbKdeP+9gEI5MHzBuUEd1x2gAF/rmpOZa9mASYBAxn3ASnht114q64nsK0AAAIAT//sBAMGAAAOABkAZrIXGhsREjmwFxCwA9AAsAYvsABFWLADLxuxAxw+WbAARViwDC8bsQwQPlmwAEVYsAgvG7EIED5ZsgUDDBESObIKAwwREjmwDBCxEgGwCitYIdgb9FmwAxCxFwGwCitYIdgb9FkwMRM0EjMyFxEzESMnBiMiAjcUFjMyNxEmIyIGT+jDrGrz3Axttr7r8391lUVDlXaAAiX6AS94Air6AHCEATLypbmFAc6CuwAAAgBT/+wECwROABUAHQCGshYeHxESObAWELAI0ACwAEVYsAgvG7EIHD5ZsABFWLAALxuxABA+WbIaAAgREjmwGi+0vxrPGgJdtF8abxoCcbQfGi8aAnG07xr/GgJxsowaAV2xDAewCitYIdgb9FmwABCxEAGwCitYIdgb9FmyEggAERI5sAgQsRYBsAorWCHYG/RZMDEFIgA1NTQ2NjMyEhEVIRYWMzI3FwYGAyIGByE1JiYCWef+4X3ii93x/T0LnXenaYNB2aRkexEBzwhyFAEj8h6i/47+5v7+Yoach31hawOfjH0Sen0AAQAtAAAC1gYVABQAVbIHFRYREjkAsABFWLAILxuxCCI+WbAARViwBC8bsQQcPlmwAEVYsAAvG7EAED5ZsAQQsBDQsRMBsAorWCHYG/RZsAHQsAgQsQ0BsAorWCHYG/RZMDEzESM1MzU0NjMyFwcmIyIVFTMVIxHSpaXItEBIBig1rtzcA4a0Y7TEEr4Is2C0/HoAAAIAUv5WBAwETgAZACQAhrIiJSYREjmwIhCwC9AAsABFWLADLxuxAxw+WbAARViwBi8bsQYcPlmwAEVYsAsvG7ELEj5ZsABFWLAXLxuxFxA+WbIFAxcREjmwCxCxEQGwCitYIdgb9FmyDxEXERI5shUDFxESObAXELEdAbAKK1gh2Bv0WbADELEiAbAKK1gh2Bv0WTAxEzQSMzIXNzMRFAQjIiYnNxYzMjY1NQYjIgI3FBYzMjcRJiMiBlLtxLlqC9v+9+F34ztzcKR5jGmvvvHyhXaTR0WTeIUCJfwBLYFt++fV9mNQkoWDf0l1AS72o7t+Adx7vgAAAQB5AAAD+AYAABAAQ7IKERIREjkAsBAvsABFWLACLxuxAhw+WbAARViwDS8bsQ0QPlmwAEVYsAYvG7EGED5ZsAIQsQoBsAorWCHYG/RZMDEBNjMgExEjETQmIyIHESMRMwFsd7YBWgXzYV6SSPPzA8SK/nX9PQK6cF2C/PsGAAACAH0AAAGQBdUAAwANAD+yBg4PERI5sAYQsAHQALAARViwAi8bsQIcPlmwAEVYsAEvG7EBED5ZsAIQsAzQsAwvsQYNsAorWCHYG/RZMDEhIxEzATQ2MhYVFAYiJgF/8/P+/keESEiERwQ6ARk4Sko4N0lJAAL/tf5LAYUF1QAMABYAS7IDFxgREjmwAxCwENAAsABFWLAMLxuxDBw+WbAARViwBC8bsQQSPlmxCQGwCitYIdgb9FmwDBCwFdCwFS+xDw2wCitYIdgb9FkwMQERFAYjIic1FjMyNxEDNDYyFhUUBiImAXqln0M+JjB5AxVHhEhIhEcEOvtmpq8RwAmEBKMBGThKSjg3SUkAAQB9AAAENgYAAAwAUwCwAEVYsAQvG7EEIj5ZsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgAIAhESObRqAHoAAl2yBggCERI5tGUGdQYCXTAxAQcRIxEzETcBIQEBIQHcbPPzTAErAST+bgG9/ucB0G/+nwYA/IpfAVH+Pf2JAAEAjAAAAX8GAAADAB0AsABFWLACLxuxAiI+WbAARViwAC8bsQAQPlkwMSEjETMBf/PzBgAAAAEAfAAABnkETgAdAHiyBB4fERI5ALAARViwAy8bsQMcPlmwAEVYsAcvG7EHHD5ZsABFWLAALxuxABw+WbAARViwGy8bsRsQPlmwAEVYsBUvG7EVED5ZsABFWLAMLxuxDBA+WbIBAxsREjmyBQcVERI5sAcQsRABsAorWCHYG/RZsBjQMDEBFzYzMhc2MzIWFxEjETQmIyIGBxMjESYjIgcRIxEBYQdyxtlQdtazrwLzWmhTaRUB8wW+kj3zBDpxhaamxsH9OQLAZ2BZSP0aAsi/d/zwBDoAAAEAeQAAA/gETgAQAFSyCxESERI5ALAARViwAy8bsQMcPlmwAEVYsAAvG7EAHD5ZsABFWLAOLxuxDhA+WbAARViwBy8bsQcQPlmyAQ4DERI5sAMQsQsBsAorWCHYG/RZMDEBFzYzIBMRIxE0JiMiBxEjEQFeB3jDAVIG81llk0jzBDp9kf59/TUCvWdjhfz+BDoAAgBP/+wEPQROAA8AGgBFsgwbHBESObAMELAY0ACwAEVYsAQvG7EEHD5ZsABFWLAMLxuxDBA+WbESAbAKK1gh2Bv0WbAEELEYAbAKK1gh2Bv0WTAxEzQ2NjMyABcXFAYGIyIANRcUFjI2NTQmIyIGT37klNsBEQsBe+WW5f7t84r2iY15d4wCJ5//if7m6Tmg/IoBMf4Jp73AuaTAvQACAHz+YAQwBE4ADwAaAHCyExscERI5sBMQsAzQALAARViwDC8bsQwcPlmwAEVYsAkvG7EJHD5ZsABFWLAGLxuxBhI+WbAARViwAy8bsQMQPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInESMRMxc2MzISESc0JiMiBxEWMzI2BDDkwLJr8+AKa7jG4fKBeJVBQpZ0gwIS+/7Vdf3/Bdpugv7Z/voGor57/iB+uwAAAgBP/mAEAgROAA4AGQBtshcaGxESObAXELAD0ACwAEVYsAMvG7EDHD5ZsABFWLAGLxuxBhw+WbAARViwCC8bsQgSPlmwAEVYsAwvG7EMED5ZsgUDDBESObIKAwwREjmxEgGwCitYIdgb9FmwAxCxFwGwCitYIdgb9FkwMRM0EjMyFzczESMRBiMiAjcUFjMyNxEmIyIGT+jGtWoO2PNqqsLq84N0kEZGjnSFAib+ASp/a/omAfxwAS/2pr17Aex2ugABAHwAAAK0BE4ADQBHsgkODxESOQCwAEVYsAgvG7EIHD5ZsABFWLALLxuxCxw+WbAARViwBS8bsQUQPlmwCxCxAgGwCitYIdgb9FmyCQsFERI5MDEBJiMiBxEjETMXNjMyFwKzMDOnOvPoBlicNCIDXAiA/RwEOnmNDgAAAQBL/+wDygROACYAa7IJJygREjkAsABFWLAJLxuxCRw+WbAARViwHC8bsRwQPlmyAhwJERI5sAIQsBbQsAkQsRABsAorWCHYG/RZsg0WEBESObQMDRwNAl2wHBCxJAGwCitYIdgb9FmyISQCERI5tAMhEyECXTAxATQmJicmNTQ2MzIWFSM0JiMiBhUUFgQWFhUUBiMiJiY1MxYWMzI2Attr+FO27LbC7/NoVlBlXgEeo0/yxIXQdOwFeGNgZAEmQUQ0KFinjLzAmUZdSj44Pj9XeleStWCoYVZdSQAAAQAI/+wCcgVBABQAVLIAFRYREjkAsABFWLATLxuxExw+WbAARViwDS8bsQ0QPlmwExCwAdCwANCwAC+wARCxBAGwCitYIdgb9FmwDRCxCAGwCitYIdgb9FmwBBCwENAwMQERMxUjERQWMzI3FQYjIBERIzUzEQGtv78xPyorU03+6LKyBUH++bT9pD43CrwXATUCZbQBBwABAHf/7AP3BDoAEABUsgoREhESOQCwAEVYsAcvG7EHHD5ZsABFWLANLxuxDRw+WbAARViwAi8bsQIQPlmwAEVYsA8vG7EPED5ZsgACDRESObACELEKAbAKK1gh2Bv0WTAxJQYjIiY1ETMRFDMyNxEzESMDDGvFsLXzq7E+8+Vqfs7DAr39Rs5/Awn7xgAAAQAWAAAD2gQ6AAYAOLIABwgREjkAsABFWLABLxuxARw+WbAARViwBS8bsQUcPlmwAEVYsAMvG7EDED5ZsgAFAxESOTAxARMzASMBMwH65fv+idP+hvwBNAMG+8YEOgAAAQAhAAAFzAQ6AAwAYLIFDQ4REjkAsABFWLABLxuxARw+WbAARViwCC8bsQgcPlmwAEVYsAsvG7ELHD5ZsABFWLADLxuxAxA+WbAARViwBi8bsQYQPlmyAAsDERI5sgULAxESObIKCwMREjkwMQETMwEjAwMjATMTEzMEM6zt/tnI6OTI/tjtr963AU8C6/vGAuf9GQQ6/R0C4wAAAQAfAAAD6AQ6AAsAUwCwAEVYsAEvG7EBHD5ZsABFWLAKLxuxChw+WbAARViwBC8bsQQQPlmwAEVYsAcvG7EHED5ZsgAKBBESObIGCgQREjmyAwAGERI5sgkGABESOTAxARMhAQEhAwMhAQEhAgHOAQ7+tQFW/vTY1/7yAVb+tgEMAtYBZP3r/dsBcv6OAiUCFQABAAz+SwPWBDoADwBAsgAQERESOQCwAEVYsA8vG7EPHD5ZsABFWLAFLxuxBRI+WbIABQ8REjmwDxCwAdCwBRCxCQGwCitYIdgb9FkwMQETIQECIyInNRcyNjc3ASEB99wBA/5SY+01QC5cXRsj/oQBBgFcAt77Iv7vErwDQ09dBDUAAQBSAAADwAQ6AAkARgCwAEVYsAcvG7EHHD5ZsABFWLACLxuxAhA+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDElIRUhNQEhNSEVAYACQPySAiX95QNPwsKfAtfEmgAAAQA4/pgCkQY9ABcAN7ISGBkREjkAsAwvsABFWLAALxuxABg+WbIGAAwREjmwBi+xBQewCitYIdgb9FmyEgUGERI5MDEBJAM1NCM1MjU1NjY3FwYHFRQHFhUVFhcCYf6fB8HBA7WwMK0Gra0Grf6YYwFg1eGy4tS03jKMOPrY4Vtc49X6OAABAK7+8gFVBbAAAwATALAAL7AARViwAi8bsQIgPlkwMQEjETMBVaen/vIGvgAAAQAb/pgCdQY9ABgAN7IFGRoREjkAsAsvsABFWLAYLxuxGBg+WbIRGAsREjmwES+xEgewCitYIdgb9FmyBRIRERI5MDEXNjc1NDcmNTUmJzcWFhUVFDMVIhUVFAYHG7AEtrYEsDC2ssLCs7XbOf/Q51ZW6s//OYwz5bnI4bLhxbvlMwAAAQB1AYME3AMvABcAQbIRGBkREjkAsA8vsgMYDxESObADL7APELEIAbAKK1gh2Bv0WbADELAL0LADELEUAbAKK1gh2Bv0WbAPELAX0DAxARQGIyIuAiMiBhUjNDYzMh4CMzI2NQTcvo5KfZpDJkNNwbaUSoWRQydDVAMSsN84iSFoVKvbO4QicFQAAgCG/pQBmQRNAAMADwA/sgcQERESObAHELAA0ACwAEVYsA0vG7ENHD5ZsABFWLADLxuxAxg+WbANELEHDbAKK1gh2Bv0WbAA0LAALzAxEzMTIQEUBiMiJjU0NjMyFqrRGP7/AQdIQUJISEJBSAKW+/4FNzhLSzg3S0sAAAEAZP8LBAoFJgAgAF+yGyEiERI5ALAARViwES8bsREcPlmwAEVYsAovG7EKED5ZsQABsAorWCHYG/RZsgMKERESObAKELAH0LAHL7ARELAU0LAUL7IYEQoREjmwERCxGwGwCitYIdgb9FkwMSUyNjczBgYHFSM1JgI1NTQSNzUzFRYWFyMmJiMiAwcUFgJPWXgG5ATFksi3zMy3yJ65BOQHdlvmEAF/rmhQiM0c6uoiAR/cHNUBICLh4BzYnGB1/shIsK0AAAEAXgAABHwFwwAfAGiyGiAhERI5ALAARViwEi8bsRIgPlmwAEVYsAUvG7EFED5ZsQQBsAorWCHYG/RZsAjQsh4FEhESObAeL7EfAbAKK1gh2Bv0WbAM0LAeELAP0LIWBRIREjmwEhCxGQGwCitYIdgb9FkwMQEXFAchByE1MzY2NScjNTMnNDYgFhUjNCYjIgYVFyEVAf0HQAK4AfvnUicrB6GbCPoBluj1aV5ZZwkBNwJWsIdVysoJb1u5x/LK6tq4X2mCaPLHAAACAF3/5QVPBPEAGwAoAEGyAikqERI5sAIQsB/QALAARViwAi8bsQIQPlmwENCwEC+wAhCxIAewCitYIdgb9FmwEBCxJgewCitYIdgb9FkwMSUGIyInByc3JjU0Nyc3FzYzMhc3FwcWFRQHFwcBFBYWMjY2NCYmIgYGBD2fy8qegY2HZG2QjY6bwMKbkY6Ua2KLjvx4br7cvm1tvd6+bWt/foSQiZzFyKWTkJFzdZSRl5/KwZyNkQJ7eM51ds7uzHV1zAAAAQALAAAENAWwABYAcbIAFxgREjkAsABFWLABLxuxASA+WbAARViwCy8bsQsQPlmyAAsBERI5sgcBCxESObAHL7AD0LADL7EFA7AKK1gh2Bv0WbAHELEJA7AKK1gh2Bv0WbAN0LAHELAP0LAFELAR0LADELAT0LABELAV0DAxAQEhATMVIRUhFSERIxEhNSE1ITUzASECIQEGAQ3+q+r+0QEv/tH8/swBNP7M+P6pAREDTwJh/TaYipf+0wEtl4qYAsoAAAIAiP7yAW0FsAADAAcAGACwAC+wAEVYsAYvG7EGID5ZsgUBAyswMRMRMxERIxEziOXl5f7yAxv85QPIAvYAAgBa/iYEjAXEAC8APQCGsiA+PxESObAgELAw0ACwBy+wAEVYsCAvG7EgID5ZsjkgBxESObA5ELETAbAKK1gh2Bv0WbICORMREjmwBxCxDgGwCitYIdgb9FmyCw4TERI5sjIgBxESObAyELEsAbAKK1gh2Bv0WbIaMiwREjmwIBCxJwGwCitYIdgb9FmyJCwnERI5MDEBFAcWFRQEIyIkNTcUFjMyNjU0JicuAjU0NyYmNTQkMzIEFSM0JiMiBhUUFgQWFiUmJwYVFBYfAjY1NCYEjKuH/vLq9v7g8pyIeY2Gu7y+XalBRAET5vABDPOReHuLeAGDwlr9zVFMbGOVsy5ziAHHuFlkua3G2c8BbnhfT01bNzNumm24WjKIZKrM4cxqgF9SVFdocZluFRwofFFWLzUQL3VRYQACAF0E3wMjBcwACAARACMAsAcvsg8HAV2xAgWwCitYIdgb9FmwC9CwBxCwENCwEC8wMRM0NjIWFAYiJiU0NjIWFAYiJl1DdkREdkMByUN2RER2QwVWMkREZEREMTJERGRERAAAAwBX/+wF4gXEABoAKAA2AJKyHzc4ERI5sB8QsAnQsB8QsDPQALAARViwMy8bsTMQPlmwLdCwLS+yAjMtERI5sAIvtA8CHwICXbIJLTMREjmwCS+0AAkQCQJdsg0JAhESObEQArAKK1gh2Bv0WbACELEXArAKK1gh2Bv0WbIaAgkREjmwLRCxHwiwCitYIdgb9FmwMxCxJQiwCitYIdgb9FkwMQEUBiAmNTU0NjMyFhUjNCYjIgYVFRQWMzI2NSU0AiQjIgQCEBIEICQSJTQSJCAEEhACBCMiJAIEXq/+wL2/nqOtnFxYXGdoW1laAaaW/u6jn/7vnJsBEQFAAROY+u+7AUsBgAFKu7v+uMLB/re8AlSYotW0ca7VpZVgU4h2dXaGUWKFpgEdq6T+4P6s/uCnqgEgp8oBWsfH/qb+bP6mycgBWgACAI0CswMRBcQAGgAkAJKyDSUmERI5sA0QsBzQALAARViwFC8bsRQgPlmyAyUUERI5sAMvsADQsAAvsgEDFBESObIKAxQREjmwCi+wFBCxDQKwCitYIdgb9FmyEAoNERI5sswQAV1AEwwQHBAsEDwQTBBcEGwQfBCMEAldsroQAXGwAxCxGwKwCitYIdgb9FmwChCxHwKwCitYIdgb9FkwMQEnBiMiJjU0NjMzNTQjIgYVJzQ2MzIWFREUFyUyNjc1IwYGFRQCYBFNfHaDqK1mdEFJra+IiZoa/qAoVBtqTFYCwURSe2lueTN/MzAOaIGRhP7EYVGCJBmJATwxWAD//wBXAIoDhQOpACYBkusAAAcBkgFSAAAAAQB/AXYDwgMlAAUAGwCwBC+wAdCwAS+wBBCxAgGwCitYIdgb9FkwMQEjESE1IQPCyP2FA0MBdgEEqwAABABX/+wF4gXEAA0AGwAxADoAobIKOzwREjmwChCwEtCwChCwMdCwChCwM9AAsABFWLADLxuxAyA+WbAARViwCi8bsQoQPlmwAxCxEgiwCitYIdgb9FmwChCxGAiwCitYIdgb9FmyHQoDERI5sB0vsh8DChESObAfL7QAHxAfAl2yMh0fERI5sDIvsRwIsAorWCHYG/RZsiUcMhESObAdELAs0LAfELE6CLAKK1gh2Bv0WTAxEzQSJCAEEhACBCMiJAIlNAIkIyIEAhASBCAkEiURIxEhMhYVFAcWFhQWFxUjJjU0JiMnMzI2NTQmJyNXuwFLAYABSru7/rjCwf63vAURlv7uo5/+75ybAREBQAETmP0llwEZmax4QTQHCpsNQk2ej0VdR12NAtnKAVrHx/6m/mz+psnIAVrLpgEdq6T+4P6s/uCnqgEgW/6vA1KHfXU/HW+jRBcQIqBMQ4Y+NkY7AQABAJsFDANKBaoAAwAZsgEEBRESOQCwAi+xAAOwCitYIdgb9FkwMQEhNSEDSv1RAq8FDJ4AAgB/A68CiwXEAAkAEwA7sgAUFRESObAK0ACwAEVYsAAvG7EAID5ZsArQsAovsQUCsAorWCHYG/RZsAAQsRACsAorWCHYG/RZMDEBMhYUBiMiJjQ2EzI2NTQmIgYUFgGHapqYbG2bnWs1RUVqSEkFxJ7cm5vcnv54RzU0TExoSAACAF8AAQPzBPwACwAPAEgAsAkvsABFWLANLxuxDRA+WbAJELAA0LAJELEGAbAKK1gh2Bv0WbAD0LANELEOAbAKK1gh2Bv0WbIFDgYREjm0CwUbBQJdMDEBIRUhESMRITUhETMBITUhApwBV/6p2P6bAWXYATL8rwNRA4PH/nwBhMcBefsFxAAAAQA8ApsCsgW7ABcAW7IIGBkREjkAsABFWLAPLxuxDyA+WbAARViwAC8bsQAUPlmxFgKwCitYIdgb9FmyAgAWERI5sgMPABESObAPELEIArAKK1gh2Bv0WbIMDwAREjmyEw8AERI5MDEBITUBNjU0JiMiBhUjNDYzMhYVFA8CIQKy/ZwBHXE2NDpCuqmHj5xqYowBcwKbfQEFZ0MqNUI2dJmAc2tmV3EAAQA3ApACqQW7ACQAgLIeJSYREjkAsABFWLANLxuxDSA+WbAARViwFy8bsRcUPlmyARcNERI5fLABLxi2QAFQAWABA3GykAEBXbANELEGArAKK1gh2Bv0WbIJAQ0REjmwARCxIwKwCitYIdgb9FmyEiMBERI5shsXDRESObAXELEeArAKK1gh2Bv0WTAxATMyNTQmIyIGFSM0NjMyFhUUBxYVFAYjIiY1MxQWMzI2NTQnIwEMUYQ2PjBBuqWCj6OHlbGPh6u6RTw/PYZcBG1hIzUnI2N8eWl3MymOan5/cSY1NyplAQABAHAE0QJIBgAAAwAjALACL7IPAgFdsADQsAAvtA8AHwACXbACELAD0BmwAy8YMDEBIQEjATMBFf7rwwYA/tEAAQCS/mAEHwQ6ABIAYbINExQREjkAsABFWLAALxuxABw+WbAARViwBy8bsQccPlmwAEVYsBAvG7EQEj5ZsABFWLANLxuxDRA+WbAARViwCi8bsQoQPlmwDRCxBAGwCitYIdgb9FmyCw0HERI5MDEBERYWMzI3ETMRIycGIyInESMRAYQCWWqoO/PfB1yTeU3yBDr9hI2CeQMS+8ZWazf+PgXaAAABAEUAAANWBbAACgArsgILDBESOQCwAEVYsAgvG7EIID5ZsABFWLAALxuxABA+WbIBAAgREjkwMSERIyIkNTQkMyERAoRQ5v73AQrmASECCP7W1f/6UAAAAQCOAkUBqQNSAAoAF7IICwwREjkAsAIvsAiwCitY2BvcWTAxEzQ2MhYVFAYjIiaOSoZLTkBBTALKOk5OOjtKSgAAAQBt/kEByQADAA4ANbIJDxAREjkAsAYvsABFWLAOLxuxDhA+WbAGELAHsAorWNgb3FmyDQcOERI5sgENDhESOTAxJQcWFRQGIycyNjU0Jic3AT4LlqybB0JHR1AgAzYbkml2iS8qLSMFiwAAAQCAApsCAgWuAAYAOrIBBwgREjkAsABFWLAFLxuxBSA+WbAARViwAC8bsQAUPlmyBAUAERI5sAQQsQMCsAorWCHYG/RZMDEBIxEHNSUzAgK5yQFvEwKbAjowkncAAAIAdwKyAywFxAAMABoAQrIJGxwREjmwCRCwENAAsABFWLACLxuxAiA+WbIJGwIREjmwCS+xEAKwCitYIdgb9FmwAhCxFwKwCitYIdgb9FkwMRM0NiAWFRUUBiMiJjUXFBYzMjY3NTQmIyIGFXe/ATbAvJ2evq9dUE5bAV1PTl0EYaDDwqZIn8PEowVibmxhUGFubWYA//8AXQCKA5kDqQAmAZMJAAAHAZMBfgAA//8AWQAABYMFqwAnAcb/2QKYACcBlAEbAAgBBwIgAsUAAAAQALAARViwBS8bsQUgPlkwMf//AFAAAAXMBa4AJwGUAPAACAAnAcb/0AKbAQcBxQMaAAAAEACwAEVYsAkvG7EJID5ZMDH//wBnAAAF/AW7ACcBlAGoAAgAJwIgAz4AAAEHAh8AMAKbABAAsABFWLAgLxuxICA+WTAxAAIAQv5/A6UETgAZACMAY7IQJCUREjmwEBCwHdAAsABFWLAhLxuxIRw+WbAARViwEC8bsRAYPlmwIRCxHQ2wCitYIdgb9FmwANCwAC+yAwAQERI5sBAQsQkBsAorWCHYG/RZsgwQABESObIWEAAREjkwMQEGBgcHBhUUFjMyNjUzBgYjIiY1NDc3Njc3ExQGIiY1NDYyFgJ2AjVJZ1piWVhq8wLvws7im1xOCgL3R4RISIRHApV8kU9qYWpeXWRTsdDJuKWjXUhzNQE3OEtLODdLSwAAAv/2AAAHVwWwAA8AEgB7ALAARViwBi8bsQYgPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbIRBgAREjmwES+xAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmyCwYAERI5sAsvsQwBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZshIGABESOTAxISEDIQMhASEVIRMhFSETIQEhAwdX/H4P/gq4/t4DQwPg/XoRAiT95BQCl/rtAXkbAVT+rAWwxf5oxf42AWcCiAAAAQBNANYD7ASGAAsAOACwAy+yCQwDERI5sAkvsgoJAxESObIEAwkREjmyAQoEERI5sAMQsAXQsgcEChESObAJELAL0DAxEwEBNwEBFwEBBwEBTQE8/sSUATsBPJT+xAE8lP7E/sUBbAFCAUKW/r4BQpb+vv6+lgFB/r8AAAMAaf+hBSIF7gAXACAAKQBoshAqKxESObAQELAd0LAQELAm0ACwAEVYsBAvG7EQID5ZsABFWLAELxuxBBA+WbIaEAQREjmyIxAEERI5sCMQsBvQsBAQsR0BsAorWCHYG/RZsBoQsCTQsAQQsSYBsAorWCHYG/RZMDEBFAIEIyInByM3JhE1NBIkMzIXNzMHFhMFFBcBJiMiAgcFNCcBFjMyEjUFIpT+7bSkhFupkcOWARSyxY9Xp5OdAfxERwH2V4ekuQICvyz+F05pqbUCstb+va1Llu7DAWdD1QFEr2WP88H+w0vPgAM6Vf7/6wimcvzcNgEA9gAAAgCUAAAEfgWwAAwAFABZsgIVFhESObACELAP0ACwAEVYsAAvG7EAID5ZsABFWLAKLxuxChA+WbIBCgAREjmwAS+yDgoAERI5sA4vsQkBsAorWCHYG/RZsAEQsQ0BsAorWCHYG/RZMDEBETMyBBUUBCMjESMRExEzMjY0JicBh/H0ARL+7vPy8/P2fZGMegWw/ujuyMfv/tQFsP4l/hqC3oQCAAABAIj/7ASbBhUALABdsiMtLhESOQCwAEVYsAUvG7EFIj5ZsABFWLAVLxuxFRA+WbAARViwAC8bsQAQPlmyDgUVERI5sBUQsRwBsAorWCHYG/RZsiIVBRESObAFELEqAbAKK1gh2Bv0WTAxISMRNDYzMhYVFA4CFRQeAhUUBiMiJic3FhYzMjY1NC4CNTQ2NTQmIyIHAXry5c671xtFFkGyUdnGUKsmMS1/NmFaRq5RflxQuAQEUdbuu6k+YnFBJyxUlIlLq7knGcMcJVZDMVuIiFBYyU1RYfcAAAMASP/sBoQEUAApADQAPADQsgI9PhESObACELAt0LACELA40ACwAEVYsBcvG7EXHD5ZsABFWLAFLxuxBRA+WbAA0LAAL7IMBRcREjmwDC+yjwwBXbAXELEQAbAKK1gh2Bv0WbAXELAb0LAbL7I4ABsREjmwOC+0HzgvOAJxtO84/zgCcbRfOG84AnG0vzjPOAJdsow4AV2xIAewCitYIdgb9FmwABCxIwGwCitYIdgb9FmwBRCxKgGwCitYIdgb9FmwDBCxLwewCitYIdgb9FmwGxCxNQGwCitYIdgb9FkwMQUiJwYGIyImNTQ2MzM1NCYjIgYVJzQ2MzIXNhcyEhUVIRYWMzI3NxcGBiUyNjc1IwYGFRQWASIGByE1NCYE5v2MQdaGsMju6b9fWFtz8v3F32+DyNTu/UkJmIaJaz1JRtH8mDqILcRoeF0DK2N/EAHEbRShTVSwnJ6sR1tnWUITkrmFhwL+/euJi546IqY4QLg7K9ECX0ZBTwLnin8ecXoAAgBn/+wEQAYsAB0AKwBosgcsLRESObAHELAo0ACwAEVYsBkvG7EZIj5ZsABFWLAHLxuxBxA+WbIPBxkREjmwDy+yEQ8HERI5sBkQsRgBsAorWCHYG/RZsA8QsSIBsAorWCHYG/RZsAcQsSgBsAorWCHYG/RZMDEBEhEVFAIGIyImJjU0NjYzMhcmJwcnNyYnNxYXNxcDJyYmIyIGFRQWMzI2NQNC/n7ljIrifnHOhJJxMX7MTqx+okvusbROjwEge05+i41ub4kFF/73/m9Spv75kn7iiJXnfVupeodtclIqwzKHeG39GRIwOKiVfqjIrQADAEMAkwQ3BMwAAwANABkAV7IEGhsREjmwBBCwANCwBBCwEdAAsAMvsQABsAorWCHYG/RZsAMQsAmwCitY2BvcWbEEDbAKK1gh2Bv0WbAAELARsAorWNgb3FmxFw2wCitYIdgb9FkwMQEhNSEBMhYUBiMiJjQ2AzQ2MzIWFRQGIyImBDf8DAP0/glESkpEQ0pKSkpDREpKRENKAkbUAbJMcktLckz8SjpMTDo5SkoAAAMAT/93BD0EuwAVAB0AJQBosgQmJxESObAEELAb0LAEELAj0ACwAEVYsAQvG7EEHD5ZsABFWLAPLxuxDxA+WbIYBA8REjmyIAQPERI5sCAQsBnQsAQQsRsBsAorWCHYG/RZsBgQsCHQsA8QsSMBsAorWCHYG/RZMDETNDY2MzIXNzMHFhEUBgYjIicHIzcmExQXASYjIgYFNCcBFjMyNk9+5JRqWEeRZsR75ZZdWkiRZs7zQAErLzl3jAIJOv7YKzN7iQInn/+JIo/Qmf7AoPyKHpPPlgE2nGICYRa9p5Rd/acRwAAAAgCC/mAENwYAAA8AGgBmshMbHBESObATELAM0ACwCS+wAEVYsAwvG7EMHD5ZsABFWLAGLxuxBhI+WbAARViwAy8bsQMQPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInESMRMxE2MzISESc0JiMiBxEWMzI2BDfjwrJr8/NqsMXj84N2lUFClnSDAhL3/tF1/f8HoP3Xd/7a/voFprp7/iB+uwAAAgBP/+wEsgYAABYAIQCPsh8iIxESObAfELAQ0ACwEy+wAEVYsAwvG7EMHD5ZsABFWLAGLxuxBhA+WbAARViwAi8bsQIQPlmyLxMBXbIPEwFdshYCExESObAWL7EAB7AKK1gh2Bv0WbIEDAYREjmyDgwGERI5sA/QsBYQsBHQsAYQsRoBsAorWCHYG/RZsAwQsR8BsAorWCHYG/RZMDEBIxEjJwYjIgIRNBIzMhc1IzUzNTMVMwEUFjMyNxEmIyIGBLKv3Axttr7r6MOsavv786/8kH91lUVDlXaABMj7OHCEATIBB/oBL3jyqo6O/J6luYUBzoK7AAACAB8AAAWdBbAAEwAXAG0AsABFWLAPLxuxDyA+WbAARViwCC8bsQgQPlmyFAgPERI5sBQvshAUDxESObAQL7AA0LAQELEXB7AKK1gh2Bv0WbAD0LAIELAF0LAUELEHAbAKK1gh2Bv0WbAXELAK0LAQELAN0LAPELAS0DAxATMVIxEjESERIxEjNTMRMxEhETMBITUhBR5/f/z9dfx8fPwCi/z8eQKL/XUErqL79AKH/XkEDKIBAv7+AQL9oroAAQCPAAABggQ6AAMAHQCwAEVYsAIvG7ECHD5ZsABFWLAALxuxABA+WTAxISMRMwGC8/MEOgAAAQCOAAAEawQ6AAwAYACwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgYCBBESObAGL7QfBi8GAnGyjwYBXbEBAbAKK1gh2Bv0WbIKAQYREjkwMQEjESMRMxEzASEBASEB72/y8lUBUAEs/mEBuf7LAaz+VAQ6/lABsP3z/dMAAAEAIgAABDYFsAANAF0AsABFWLAMLxuxDCA+WbAARViwBi8bsQYQPlmyAQwGERI5sAEvsADQsAEQsQIHsAorWCHYG/RZsAPQsAYQsQQBsAorWCHYG/RZsAMQsAjQsAnQsAAQsAvQsArQMDEBNxUHESEVIREHNTcRMwGh6uoClfxugoL9A2dHk0f99soChyeTJwKWAAABACEAAAIuBgAACwBLALAARViwCi8bsQoiPlmwAEVYsAQvG7EEED5ZsgEEChESObABL7AA0LABELECB7AKK1gh2Bv0WbAD0LAG0LAH0LAAELAJ0LAI0DAxATcVBxEjEQc1NxEzAZqUlPOGhvMDeTWSNf0ZApAvki8C3gAAAQCQ/ksFCQWwABMAaLIGFBUREjkAsABFWLAALxuxACA+WbAARViwEC8bsRAgPlmwAEVYsAQvG7EEEj5ZsABFWLAMLxuxDBA+WbAARViwDi8bsQ4QPlmwBBCxCQGwCitYIdgb9FmyDQAMERI5shIOABESOTAxAREUBiMiJzcWMzI1NQERIxEzAREFCb6pRjwOKDp7/YH8/AJ/BbD6GLfGEccMuDEEFfvrBbD77AQUAAABAH7+SwQGBE4AGgBjshUbHBESOQCwAEVYsAMvG7EDHD5ZsABFWLAALxuxABw+WbAARViwCi8bsQoSPlmwAEVYsBgvG7EYED5ZsgEYAxESObAKELEPAbAKK1gh2Bv0WbADELEVAbAKK1gh2Bv0WTAxARc2MzIWFxEUBiMiJzcWMzI1ETQmIyIHESMRAVwNc8SwtQG7pkU6Dig7fF1pkUvzBDqWqtbS/Ru0whHGDLAC2XhwZ/zgBDoAAgBk/+wHLQXEABcAIwCWsgEkJRESObABELAa0ACwAEVYsAwvG7EMID5ZsABFWLAOLxuxDiA+WbAARViwAy8bsQMQPlmwAEVYsAAvG7EAED5ZsA4QsRABsAorWCHYG/RZshIADhESObASL7EVAbAKK1gh2Bv0WbAAELEXAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbAMELEdAbAKK1gh2Bv0WTAxISEGIyIkAicRNBIkMzIXIRUhESEVIREhBTI3ESYjIgYHERQWBy38nad5p/73lAKRAQuoe6cDXP1MAlb9qgK7+31jaHJboa8BshSTAQ2qATqsARKWFMz+bsj+QBwNBDgOz7z+ysHRAAMAW//sBvIETwAeACoAMgCeshkzNBESObAZELAk0LAZELAu0ACwAEVYsAMvG7EDHD5ZsABFWLAILxuxCBw+WbAARViwFy8bsRcQPlmwAEVYsBsvG7EbED5ZsgUIFxESObIvFwgREjmwLy+0Hy8vLwJxsowvAV2xDAewCitYIdgb9FmwFxCxEAGwCitYIdgb9FmyGQgXERI5sCLQsAMQsSgBsAorWCHYG/RZsCvQMDETNAAzMhc2NhcyEhUVIRYWMzI2NxcGBiMiJwYjIgARFxQWMzI2NTQmIyIGJSIGByE1NCZbAQ/g+YZBt23W7v1WC5F1WY9HT0fNePeMhvbj/vLyhnl3hod4dYgD4VV4FAG1cQIn+AEvsVReAf797IiLnioynj9Brq4BLQECCaq6ucCmvrq6iXkZb3oAAQCLAAAClQYVAAwAM7IDDQ4REjkAsABFWLAELxuxBCI+WbAARViwAC8bsQAQPlmwBBCxCQGwCitYIdgb9FkwMTMRNDYzMhcHJiMiFRGLwrA/WRkqMqMEnLbDFbkLuvtoAAACAFH/7AUeBcQAFgAeAF6yAB8gERI5sBfQALAARViwDy8bsQ8gPlmwAEVYsAAvG7EAED5ZsgUPABESObAFL7APELEIAbAKK1gh2Bv0WbAAELEXAbAKK1gh2Bv0WbAFELEaAbAKK1gh2Bv0WTAxBSAAETUhJiYjIgcHJzc2MyAAERUUAgQnMjY3IRUUFgK4/tz+vQPQBd/Mp5c0MSGw2gE6AWui/uWplr4S/S+6FAFgAUmJ4PA0E8YPSP6L/rdrw/7Dr9TavR+5vwAAAf/k/ksC0wYVAB4AdLIUHyAREjkAsABFWLAVLxuxFSI+WbAARViwEC8bsRAcPlmwAEVYsB0vG7EdHD5ZsABFWLAFLxuxBRI+WbAdELEAAbAKK1gh2Bv0WbAFELELAbAKK1gh2Bv0WbAAELAO0LAP0LAVELEaAbAKK1gh2Bv0WTAxASMRFAYjIic3FhYzMjURIzUzNTQ2MzIXByYjIgcVMwKEybWkSDYPB0QSeKWlwrE9WxkmO50ByQOG/DWwwBG/AwquA8q0YrbDFbwKrWcAAAIAWP/sBaoGLgAYACYAXrIEJygREjmwBBCwI9AAsABFWLANLxuxDSA+WbAARViwBC8bsQQQPlmyDw0EERI5sA8vsRYIsAorWCHYG/RZsA0QsRwBsAorWCHYG/RZsAQQsSMBsAorWCHYG/RZMDEBFAIEIyIkAic1NBIkMzIXNjY1MxQGBxYXBzQmIyICBxUUEjMyEjUFEJT+7bSw/uuXAZcBE7H/ok9Mu3l8VwT9uKikuQK5qKm1ArLW/r2trQFA0VLVAUatqA2DgqTRI6ffEvb+/v/rVOz+9gEA9gACAE//7AS7BKgAFwAiAF6yFCMkERI5sBQQsCDQALAARViwBC8bsQQcPlmwAEVYsBQvG7EUED5ZsgYEFBESObAGL7ENCLAKK1gh2Bv0WbAUELEaAbAKK1gh2Bv0WbAEELEgAbAKK1gh2Bv0WTAxEzQ2NjMyFzY2NTMUBgcWFxUUBgYjIgARFxQWMjY1NCYjIgZPfeSU4Yo1MKdYZz8Ce+eV4/7s8or2iY15d4wCJ6H9iZUTanKGsyV9nh2g/IoBLgEBCae9wLmnvb0AAQB9/+wGPQYBABgAVrIMGRoREjkAsABFWLAYLxuxGCA+WbAARViwES8bsREgPlmwAEVYsAwvG7EMED5ZsgEMGBESObABL7EICLAKK1gh2Bv0WbAMELEVAbAKK1gh2Bv0WTAxARU2NjUzFAYHERQAIyIANREzERQWMyAREQS9bV61u8X+1/f6/tr8lJABJAWw3AqCoeTWCf2l6P7xAQvtA8z8MpKaATQDxgABAHf/7AUoBJMAGQBjsgcaGxESOQCwAEVYsA0vG7ENHD5ZsABFWLAILxuxCBA+WbAARViwBC8bsQQQPlmwDRCwE9CyFRMIERI5sBUvsQMIsAorWCHYG/RZsgYVCBESObAIELEQAbAKK1gh2Bv0WTAxARQGBxEjJwYjIiY1ETMRFDMyNxEzFTY2NzcFKI+i5QZrxbC186uxPvNIQQUCBJOypQv8z2p+zsMCvf1Gzn8DCYgHQkxMAAH/tf5LAZMEOgAMADCyAw0OERI5ALAARViwDC8bsQwcPlmwAEVYsAQvG7EEEj5ZsQkBsAorWCHYG/RZMDEBEQYGIyInNxYzMjURAZMBuKdGOA8nOnwEOvuFssIRvw3ABGwAAgBZ/+wD+ARPABYAHgBhsggfIBESObAIELAX0ACwAEVYsAAvG7EAHD5ZsABFWLAILxuxCBA+WbIMAAgREjmwDC+wABCxEAGwCitYIdgb9FmwCBCxFwGwCitYIdgb9FmwDBCxGgewCitYIdgb9FkwMQEyABUVFAYGJyICNTUhJiYjIgYHJzY2EzI2NyEVFBYCAOQBFHvahtXvAqoLj3dWi05PRtKRVngT/ktxBE/+1PYfmvuNAQEB7YiIoSc1nj5D/GCOdBlvegABAJQE4ANDBgEACABFALAEL7IPBAFdslAEAV2ycAQBXbAC0LACL7AB0BmwAS8YsAQQsAfQsAcvtA8HHwcCXbIDBwQREjmwARCwBdAZsAUvGDAxARUjJwcjNQEzA0PDlpXBAQ+PBOsLnJwNARQAAAEAcgTgAzQGAQAIACUAsAQvsg8EAV2wAdCwAS+0DwEfAQJdsgAEARESObAI0LAILzAxATczFQEjATUzAdKS0P7plv7rzgVmmwr+6QEYCQD//wCbBQwDSgWqAAYAcAAAAAEAdQTMAvsF5gALADAAsAMvsg8DAV2wBtCwBi+0DwYfBgJdsAMQsQgCsAorWCHYG/RZsAYQsAvQsAsvMDEBFAYgJjUzFBYyNjUC+7D+2rC2S4RKBeZ+nJx+QklJQgABAIEE3wGHBdUACQAesgMKCxESOQCwCC+yDwgBXbECBbAKK1gh2Bv0WTAxEzQ2MhYVFAYiJoFEfkREfkQFWTVHRzU0RkYAAgB4BI0CMwYqAAkAFAAsALAFL7IPBQFdsBPQsBMvsQAKsAorWCHYG/RZsAUQsQ0KsAorWCHYG/RZMDEBMhYUBiMiJjQ2BxQWMzI2NTQmIgYBVl2AfWBhfX8RQi4vQT9iPwYqe6p4eKp70C9BQDAuQ0MAAQAp/lIBoQA8AA8AI7IPEBEREjkAsABFWLAKLxuxChI+WbEFA7AKK1gh2Bv0WTAxIQYGFRQzMjcXBiMiJjU0NwGMV0pHLC4VSVxfdPQ4XjFEF44sblu1bAAAAQB6BNsDVwX1ABUAQgCwAy+wCNCwCC+2DwgfCC8IA12wAxCwC9CwCy+wCBCxDwOwCitYIdgb9FmwAxCxEgOwCitYIdgb9FmwDxCwFdAwMQEUBiMiLgIjIgYVJzQ2MzIWMzI2NQNXf2AnOWkrGiY1lX9fOaE0JjYF6W6SETwMOS4IbpZaOS8AAAIASQTRA1YF/wADAAcAQACwAi+yDwIBXbAA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGLAAELAF0LAFL7ACELAG0LAGL7ADELAH0BmwBy8YMDEBMwEjAzMDIwJo7v72xZDp3rkF//7SAS7+0gACAIL+agHs/74ACwAXAD8AsBgvsAPQsAMvQA8AAxADIAMwA0ADUANgAwddsA/QsA8vsQkJsAorWCHYG/RZsAMQsRUJsAorWCHYG/RZMDEXNDYzMhYVFAYjIiY3FBYzMjY1NCYjIgaCaU5JampJTmllMCIhLS0hIjDuSWNhS0peYEghLi0iJDAwAAAB/I4E0f5mBgAAAwAjALABL7IPAQFdsADQGbAALxiwARCwAtCwAi+0DwIfAgJdMDEBIwEh/mbK/vIBFQTRAS8AAf1eBNH/NgYAAAMAIwCwAi+yDwIBXbAB0LABL7QPAR8BAl2wAhCwA9AZsAMvGDAxASEBI/4hARX+68MGAP7R///8cwTb/1AF9QAHAKX7+QAAAAH9PgTm/pkGfwAOACsAsAAvsAbQsAYvsh8GAV2yAQAGERI5sQcIsAorWCHYG/RZsg0BABESOTAxASc2NjU0IzcyFhUUBgcV/VEHSUGWB6mrTkgE5pIFHCNIe2hYPE4KRQAAAvwMBOT/NAXuAAMABwA3ALABL7AA0BmwAC8YsAEQsAXQsAUvsAbQsAYvtg8GHwYvBgNdsAPQsAMvsAAQsATQGbAELxgwMQEjASEBIwMz/gfQ/tUBBgIiw/X6BOQBCv72AQoAAAH9HP6U/i//iwAIABIAsAIvsQYFsAorWCHYG/RZMDEFNDYyFhQGIib9HEeESEiER/E1R0dqRkYAAQDGBOkB4gZBAAMAFwCwAi+wANCwAC+wAhCwA9AZsAMvGDAxATMDIwED34yQBkH+qAADAGcE3wO6Bq8AAwAMABUAPACwFC+wAtCwAi+wAdCwAS+0DwEfAQJdsAIQsAPQGbADLxiwFBCwC9CwCy+xBgWwCitYIdgb9FmwD9AwMQEzAyMFNDYyFhQGIiYlNDYyFhQGIiYB7uWCkv6oRHZDQ3ZEAlZDdkREdkMGr/7WLzJERGRERDEyRERkREQA//8AjgJFAakDUgIGAHgAAAABAJsAAAQ3BbAABQAsALAARViwBC8bsQQgPlmwAEVYsAIvG7ECED5ZsAQQsQABsAorWCHYG/RZMDEBIREjESEEN/1g/AOcBOT7HAWwAAACABkAAAWgBbAAAwAGADAAsABFWLAALxuxACA+WbAARViwAi8bsQIQPlmxBAGwCitYIdgb9FmyBgIAERI5MDEBMwEhJSEBAm/zAj76eQFVAuD+mAWw+lDKA7sAAAMAW//sBRMFxAADABQAIgB5sggjJBESObAIELAB0LAIELAf0ACwAEVYsBAvG7EQID5ZsABFWLAILxuxCBA+WbICCBAREjl8sAIvGLRgAnACAl20MAJAAgJdsgACAXGxAQGwCitYIdgb9FmwEBCxGAGwCitYIdgb9FmwCBCxHwGwCitYIdgb9FkwMQEhNSEFFAIEIyIkAic1NBIkIAQSFwc0AiMiAgcVFBIzMhI1A6P+QAHAAXCU/u2zsP7umQOWARQBZAETlgH8t6mkuQK7pqm1AnnCidb+va2qATzNXdUBRK+r/r/VBe8BBf7/61Tw/voBAPYAAAEAIAAABRIFsAAGADEAsABFWLADLxuxAyA+WbAARViwAS8bsQEQPlmwAEVYsAUvG7EFED5ZsgADARESOTAxAQEhATMBIQKY/pf+8QH+9QH//vAERPu8BbD6UAAAAwBsAAAELgWwAAMABwALAE4AsABFWLAILxuxCCA+WbAARViwAi8bsQIQPlmxAAGwCitYIdgb9FmyBQgCERI5sAUvsQYBsAorWCHYG/RZsAgQsQoBsAorWCHYG/RZMDE3IRUhEyEVIQMhFSFsA8L8PmQC9v0KVwOZ/GfKygNNxgMpzAAAAQCbAAAFFAWwAAcAOQCwAEVYsAYvG7EGID5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmwBhCxAgGwCitYIdgb9FkwMSEjESERIxEhBRT8/X/8BHkE5PscBbAAAAEARwAABE0FsAAMAD4AsABFWLAILxuxCCA+WbAARViwAy8bsQMQPlmxAQGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIRUhNQEBNSEVIQEDHP51Arz7+gHJ/jcD4v1rAYgC0P36ypcCQgI/mMz9/wAAAwBKAAAFrgWwABQAGwAiAG6yCSMkERI5sAkQsBjQsAkQsB/QALAARViwEy8bsRMgPlmwAEVYsAgvG7EIED5ZshITCBESObASL7AA0LIgEwgREjmwIC+xBwGwCitYIdgb9FmwCtCwIBCwGNCwEhCxGQGwCitYIdgb9FmwH9AwMQEWBBYQBgQHFSM1JiQmNTQ2JDc1MwEUFhcRBgYFNCYnETY2A3yjAQSLjP7+pP2o/v6LjgECpf39xqCdm6IDdKGZnJ4E/gSP+/7C940FqakEjPefoP6NBLL9H5ywBgKuBbafnrUG/VMHsQAAAQBEAAAFXAWwABcAXbIAGBkREjkAsABFWLARLxuxESA+WbAARViwFi8bsRYgPlmwAEVYsAQvG7EEID5ZsABFWLALLxuxCxA+WbIVCxYREjmwFS+wANCwFRCxDAGwCitYIdgb9FmwCdAwMQE2NjURMxEGAAcRIxEmACcRMxEWFhcRMwNMg5D9A/7p9vzw/ugE/AGPgPwCQxe+pwHx/gb2/s8Z/ooBdRcBMPUB//4LncIYA2wAAQBrAAAE3QXDACUAXrIHJicREjkAsABFWLAaLxuxGiA+WbAARViwDy8bsQ8QPlmwAEVYsCQvG7EkED5ZsA8QsREBsAorWCHYG/RZsA7QsADQsBoQsQcBsAorWCHYG/RZsBEQsCLQsCPQMDElNhI3NTQmIyIGFRUUEhcVITUzJgI1NTQSJDMyBBIVFRQCBzMVIQLfdHsBnZCOm393/gfYa3iOAQWkpQEGkHdr1P4QzyABEOdtytrZzWTr/usez8tnAR+eYrYBHZ+e/uK1ZZf+3GfLAAACAFb/6wR5BE4AFgAhAHyyHyIjERI5sB8QsBPQALAARViwEy8bsRMcPlmwAEVYsAAvG7EAHD5ZsABFWLAMLxuxDBA+WbAARViwCC8bsQgQPlmxAwGwCitYIdgb9FmyChMMERI5shUTDBESObAMELEaAbAKK1gh2Bv0WbATELEfAbAKK1gh2Bv0WTAxAREWMzI3FwYjIicGIyICNTUQEjMyFzcBFBYzMjcRJiMiBgP9A0YRChgzTKI1ZsHD4+TEtWcT/hx6doxGRopzfwQ6/Pp7BLQeo6IBHfgNAQoBNpeD/b+erYgBx47FAAACAJb+dwRqBcQAFAAoAGiyJykqERI5sCcQsADQALAPL7AARViwAC8bsQAgPlmwAEVYsAwvG7EMED5ZsicADBESObAnL7EkAbAKK1gh2Bv0WbIGJCcREjmwABCxGAGwCitYIdgb9FmwDBCxHgGwCitYIdgb9FkwMQEyFhUUBgcWFhUUBiMiJxEjETQ2NgE0JiMiBhURFjMyNjU0JicjNTMyAmnP8mNYeYLy0aV68nzZAUxxXWCBWJ1xiXpne0jUBcTYsl+bMCy9gs3sU/44BalzwXD+bVp2fmj85VKJbm2RAbkAAQAg/l8D9QQ6AAgAOLIACQoREjkAsABFWLABLxuxARw+WbAARViwBy8bsQccPlmwAEVYsAQvG7EEEj5ZsgAHBBESOTAxARMzAREjEQEzAg7s+/6P8/6P+wE7Av/78P41AdAECwAAAgBU/+wEOAYgAB8AKwBlshYsLRESObAWELAj0ACwAEVYsAMvG7EDIj5ZsABFWLAWLxuxFhA+WbADELEJAbAKK1gh2Bv0WbIOFgMREjmwDi+xKQGwCitYIdgb9FmyHSkOERI5sBYQsSMBsAorWCHYG/RZMDETNDYzMhYXFSYjIgYVFBcWEhcVFAYGIyIAETQ2NycmJhMUFjMyNjU0JiciBtDUt0lxT5dpTlq84N4CeuGV4v7uuIkCW2h2iXl3h5FteYkE6pGlFhvDNT00XUJP/urMHJv2hwEjAQOl/yIFKIn9faK8vLZ4yxe+AAABAGD/7AQMBE0AJwCOshYoKRESOQCwAEVYsAkvG7EJHD5ZsABFWLAlLxuxJRA+WbIXCSUREjl8sBcvGLRAF1AXAl200BfgFwJdsRgHsAorWCHYG/RZsgMYFxESObAJELEQAbAKK1gh2Bv0WbINFxAREjmyHA0BXbILDQFdsCUQsR4BsAorWCHYG/RZsiEeGBESObQEIRQhAl0wMRM0NjcmJjU0NjMyFhUjNCYjIgYVFBYzMxUjBhUUFjMyNjUzFAQjIiRgaWJXYfjSv//yellecmBpx9HSfWZigvL+/MvV/vgBMlx/ICR5SJaltZE8T00/PEutA5M/V1lCm7qyAAEAYf5+A8oFsAAeAEyyCB8gERI5ALAPL7AARViwAC8bsQAgPlmwAEVYsBUvG7EVED5ZsAAQsRwBsAorWCHYG/RZsgEcABESObAVELEIAbAKK1gh2Bv0WTAxARUBBgYVFBYXFxYWFRQGByc2NTYnJyYnJjUQATchNQPK/mBWRj1L3WFPelJ9XQJuaMRKOQEl3P3EBbCR/gptumtUWhhCH2JRR7o+ZWdGPSEbMmlQiwEgAVH9wwAAAQB+/mEEBgROABEAVLIMEhMREjkAsABFWLADLxuxAxw+WbAARViwAC8bsQAcPlmwAEVYsAcvG7EHEj5ZsABFWLAPLxuxDxA+WbIBAw8REjmwAxCxDAGwCitYIdgb9FkwMQEXNjMyFhcRIxE0JiMiBxEjEQFcDHfBtq0D815olkbzBDqDl8TF+5wEU25pevzvBDoAAAMAc//sBCwFxAANABYAHgB8sgMfIBESObADELAT0LADELAb0ACwAEVYsAovG7EKID5ZsABFWLADLxuxAxA+WbIOAwoREjl8sA4vGLRgDnAOAl20MA5ADgJdsgAOAXGwChCxEwGwCitYIdgb9FmwDhCxGAGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FkwMQEQAiMiAgM1EBIzMhITBSE1NCYjIgYVBSEVFBYyNjcELPjj3/oF9ubi9gX9OgHUenFvegHU/ix74HcCAnL+xP62AUEBLekBNQFM/sT+0yMwzsvLzu8q0NHKygABAKn/9AJhBDoADAApALAARViwAC8bsQAcPlmwAEVYsAkvG7EJED5ZsQQBsAorWCHYG/RZMDEBERQWMzI3FQYjIBERAZwyPiorSlb+6AQ6/PY9Ngq8FwE1AxEAAAEAFv/uBEoF+wAZAFKyAxobERI5ALAAL7AARViwCy8bsQsQPlmwAEVYsBAvG7EQED5ZsAsQsQcBsAorWCHYG/RZsg8ACxESObAPELAS0LAAELEVAbAKK1gh2Bv0WTAxATIWFwEWFxc3FwYjIiYnAwMhAScmJyMHJzYBEmx4HwGrJDEgEQQqNG11K8r2/vcBgVsiSSIbAzsF+1VQ+79WBwEBwApYbwIU/TcED9pLAwK2EAABAGT+dgPUBcQALABZsgMtLhESOQCwFi+wAEVYsCovG7EqID5ZsQIBsAorWCHYG/RZsggtKhESObAIL7EJAbAKK1gh2Bv0WbIdLSoREjmwHRCxDgGwCitYIdgb9FmyJAkIERI5MDEBJiMiBhUUITMVIyARFBYEFhcWFQYGByc2NjU0JiQnJiY1NDY3JiY1NCQzMhcDg4pXeogBHImM/p6BARlvI1ECe1CDNS4//v1Mf3ajkG58AQLjmX0E2iRWS7jG/uNiiEIlGDhtSLs7ZDlQKSMtRCA1t5SRxC0ojmGmxSwAAQAt//QEzwQ6ABQAXrILFRYREjkAsABFWLATLxuxExw+WbAARViwCi8bsQoQPlmwAEVYsA8vG7EPED5ZsBMQsQAHsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA3QsA7QsBHQsBLQMDEBIxEUFjMyNxUGIyARESERIxEjNSEEqZ8xPyYvSlb+6P6086sEfAN8/bY+Nwq8FwE1AlP8hAN8vgACAID+YAQxBE4ADgAaAFmyERscERI5sBEQsADQALAARViwAC8bsQAcPlmwAEVYsAovG7EKEj5ZsABFWLAHLxuxBxA+WbIJAAcREjmxEQGwCitYIdgb9FmwABCxFwGwCitYIdgb9FkwMQEyEhEVFAIjIicRIxE0AAMWMzI2NTQmIyIGFQJW4PvgwbNq8wEDEEOVdn18cmZ3BE7+y/7vD/L+5Xf9/QPb8gEh/NV1rbO4xcGgAAABAFL+igPpBE4AIgBPshsjJBESOQCwAEVYsAAvG7EAHD5ZsABFWLAULxuxFBg+WbAAELAE0LAAELEHAbAKK1gh2Bv0WbIcIwAREjmwHBCxDQGwCitYIdgb9FkwMQEyFhUjNCYjIgYVFRQWBBYWFxQGByc2NjU0JicmJic1NDY2AjjE7eRtYHGDlAEuYDEBf0x/Myo8Qe7tAXjcBE7du2F0vKoag5tWOVNCSL84ZTdOLCgqDzf+0Sed+okAAAIAUv/sBH4EOgAPABsATrIHHB0REjmwBxCwE9AAsABFWLAOLxuxDhw+WbAARViwBy8bsQcQPlmwDhCxAAGwCitYIdgb9FmwBxCxEwGwCitYIdgb9FmwABCwGdAwMQEhFhUUBgYjIgARNTQANyEBFBYzMjY1NCYjIgYEfv71unrekeL+8AEM3wJB/MeFenWBg3V2hwN2kvuO7IMBLAEDDO4BIwL92Km7vL2cs7AAAAEAP//sA+wEOgAQAEuyARESERI5ALAARViwDy8bsQ8cPlmwAEVYsAovG7EKED5ZsA8QsQABsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA3QsA7QMDEBIREUFjMyNxcGIyADESE1IQPs/pgrMyc3JlBs/uwF/q4DrQN5/bA7OxaxLAE5AlTBAAEAgP/rBAgEOgASADmyDhMUERI5ALAARViwAC8bsQAcPlmwAEVYsA4vG7EOED5ZsQMBsAorWCHYG/RZsAAQsAjQsAgvMDEBERAzMjY1JgMzFhEQACMiJicRAXKhcZEDbvFz/vzny9EBBDr9dv796aDnAR3m/uL+9P7B4tgClQAAAgBE/iIFhQRBABoAIwBhshAkJRESObAQELAb0ACwGS+wAEVYsBEvG7ERHD5ZsABFWLAGLxuxBhw+WbAARViwAC8bsQAQPlmxDQGwCitYIdgb9FmwABCwGNCwDRCwG9CwERCxIQGwCitYIdgb9FkwMQUkADU0EjcXBgYHFBYXETQ2MzIWFhUUAAURIxM2NjUmJiMiFQJl/vz+435zmEhMApqUnnyT7If+3v718/OVpQKNdDcOHAE3/6QBBVOSRrxooc0eAoB3ko37kvP+1xr+MQKUGcGXl78+AAABAE/+IgV+BDoAGABFsgAZGhESOQCwDS+wAEVYsBQvG7EUHD5ZsABFWLAPLxuxDxA+WbEXAbAKK1gh2Bv0WbAB0LAUELAY0LAG0LAPELAM0DAxARE2NjUmAzMWERAABREjESQAAxEzERAFEQNSk6cFcO55/uH+8/P+/P71AfMBHQQ6/H0bzqTiARTj/u3+/P7KGv4yAdAeATMBCgHt/hj+ojwDggAAAQBm/+wGLQQ6ACAAV7IaISIREjkAsABFWLAALxuxABw+WbAARViwGC8bsRgQPlmwAEVYsBwvG7EcED5ZsQUBsAorWCHYG/RZsgkAHBESObAO0LAAELAT0LATL7IaBRgREjkwMQECBxQWMzI2NREzERYWMzI2NSYDMxYQAiMiJwYjIgIQNwHlhgdhWFtg+wJfWlhhB4XxjdXL6Fxc5svWjQQ6/untvcudlAFG/q+OmMu97wEV6P3I/tLe3gEuAjjoAAACAHb/7ASYBcQAIAApAG6yDyorERI5sA8QsCHQALAARViwGi8bsRogPlmwAEVYsAYvG7EGED5ZsiQaBhESObAkL7ETAbAKK1gh2Bv0WbAC0LILGgYREjmwBhCxDwGwCitYIdgb9FmwJBCwHtCwGhCxJwGwCitYIdgb9FkwMQEGBxUUBiMiADURNxEUFjMyNjU1JgAnNTQ2MzIWFRE2NwEUFhcRJiMiBgSYOkT61dP+/uyCbmJt0f8AA8Wlp7xLKv2qfWsEbTRDAlcUC3Xa/QEF1AEdAv7efY+Gg3wmARPAG6nM0Lv+zgwLASNsoiABRZpJAAH/4QAABJ4FwwAaAEOyABscERI5ALAARViwBC8bsQQgPlmwAEVYsA0vG7ENED5ZsgAEDRESObAEELEJAbAKK1gh2Bv0WbAS0LAEELAX0DAxARM2NjMyFwcmIyIHAREjEQEmIyIHJzYzMhYXAj/SK3pgRkImDShBH/7Z/P7bIUArCiQ8Smd9LAMHAfhkYBrCBUX9a/3uAhACl0UFwRtkbAACADP/7AZUBDoAEgAmAHKyCCcoERI5sAgQsB7QALAARViwES8bsREcPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbARELEAAbAKK1gh2Bv0WbIIEQYREjmwD9CwENCwFdCwFtCwChCxGwGwCitYIdgb9FmyHxAKERI5sCTQMDEBIxYVEAIjIicGIyICETQ3IzUhASYnIQYHFBYzMjY3NTMVFhYzMjYGVIA3yrzuXFzuvcg2bwYh/sUEPfzGPARTS1xmAfoCY11LUwODnq/+4v7U4uIBLgEcsZy3/fygrbGcvsqXlejuj5fKAAEAIv/yBbwFsAAYAHGyERkaERI5ALAARViwFy8bsRcgPlmwAEVYsAkvG7EJED5ZsABFWLATLxuxExA+WbAXELEAAbAKK1gh2Bv0WbIEFwkREjmwBC+wCRCxCgGwCitYIdgb9FmwBBCxEAGwCitYIdgb9FmwABCwFdCwFtAwMQEhETYzMgQQBCMnMjY1JiYjIgcRIxEhNSEEkP4TlHL7ARj+7v4BiYwBj4+GeP3+fARuBOT+dCbw/lDsv3mEd4cg/XQE5MwAAAEAaP/sBO8FxAAfAHSyAyAhERI5ALAARViwDC8bsQwgPlmwAEVYsAMvG7EDED5ZsAwQsRMBsAorWCHYG/RZshcMAxESOXywFy8YtDAXQBcCXbRgF3AXAl200BfgFwJdsgAXAXGxGAGwCitYIdgb9FmwAxCxHAGwCitYIdgb9FkwMQEGACMiJAInNTQSJDMyABcjJiYjIgYHIRUhFhYzMjY3BO4W/tT4r/71kQGSARG08wElGPwSlI6hsAgB+/4EB6udk5YUAdno/vulATbPe88BOqr+9uycjuXSyt3lh50AAgAtAAAIQQWwABkAIgB3sgkjJBESObAJELAa0ACwAEVYsBgvG7EYID5ZsABFWLAILxuxCBA+WbAARViwEC8bsRAQPlmyABgIERI5sAAvsBgQsQoBsAorWCHYG/RZsBAQsRIBsAorWCHYG/RZsAAQsRoBsAorWCHYG/RZsBIQsBvQsBzQMDEBIR4CFRQEByERIQMCAgYjIzU3PgI3EyERESEyNjU0JicFDQExmet//uvl/cr+QhoPY7yeQChXXzEKHAOrASl+kY96A6EBddSHzv0FBOT9zf74/t2GygMIatfRAsn9Jv30k3VzjwIAAAIAmwAACEcFsAATABwAirIBHR4REjmwARCwFNAAsABFWLACLxuxAiA+WbAARViwEy8bsRMgPlmwAEVYsBAvG7EQED5ZsABFWLANLxuxDRA+WbIAEBMREjmwAC+ynwABXbIEDQIREjmwBC+wABCxDwGwCitYIdgb9FmwBBCxFAGwCitYIdgb9FmwDRCxFQGwCitYIdgb9FkwMQEhETMRITIWFhUUBCMhESERIxEzAREhMjY1NCYjAZcCgPwBK5zuf/7j8/3g/YD8/AN8ASl+kpR8A0UCa/3SbsuFzfcCev2GBbD9CP4YhnBvgwAAAQAxAAAFyAWwABUAWACwAEVYsBQvG7EUID5ZsABFWLAILxuxCBA+WbAARViwEC8bsRAQPlmwFBCxAAGwCitYIdgb9FmyBBAUERI5sAQvsQ0BsAorWCHYG/RZsAAQsBLQsBPQMDEBIRE2MyAEFREjETQmIyIHESMRITUhBJL+EYOPAQwBB/x9moyG/P6KBGEE5P6bG+zl/jcByot6HP1NBOTMAAABAJL+mAUNBbAACwBJALAJL7AARViwAC8bsQAgPlmwAEVYsAQvG7EEID5ZsABFWLAGLxuxBhA+WbAARViwCi8bsQoQPlmxAgGwCitYIdgb9FmwA9AwMRMzESERMxEhESMRIZL9AoH9/kv9/jcFsPsaBOb6UP6YAWgAAAIAkAAABMEFsAANABYAXrIQFxgREjmwEBCwA9AAsABFWLAMLxuxDCA+WbAARViwCi8bsQoQPlmwDBCxAAGwCitYIdgb9FmyAgwKERI5sAIvsQ4BsAorWCHYG/RZsAoQsQ8BsAorWCHYG/RZMDEBIREhMhYWFRQEByERIQERITI2NTQmJwQs/WEBKqDufP7r7/3TA5z9YQEpgI+MfATk/p9uyoXM+AIFsP0I/hKLc26AAgACACT+mgXcBbAADgAUAGeyEhUWERI5sBIQsAvQALAARViwCy8bsQsgPlmwAEVYsAQvG7EEGD5ZsABFWLACLxuxAhA+WbAEELAB0LACELEGAbAKK1gh2Bv0WbAN0LAO0LAP0LAQ0LALELERAbAKK1gh2Bv0WTAxASMRIREjAzM2EjcTIREzISERIQMCBc/w/EH0CHVXaA8mA5a5+9sCcP5XGBv+mgFm/poCMFQBQcsChvsaBBr+Zv5lAAABABYAAAebBbAAFQB+ALAARViwCS8bsQkgPlmwAEVYsA0vG7ENID5ZsABFWLARLxuxESA+WbAARViwAi8bsQIQPlmwAEVYsAYvG7EGED5ZsABFWLAULxuxFBA+WbIQCQIREjmwEC+xAAGwCitYIdgb9FmwBNCyCBAAERI5sBAQsAvQshMAEBESOTAxASMRIxEjASEBASEBMxEzETMBIQEBIQT/o/yq/pv+xQHV/koBMgFcnfyWAVkBMf5OAdH+xgJ0/YwCdP2MAwcCqf2gAmD9oAJg/Vn89wABAEn/7QR/BcMAKQCJsiUqKxESOQCwAEVYsAsvG7ELID5ZsABFWLAXLxuxFxA+WbALELEDAbAKK1gh2Bv0WbIoCxcREjl8sCgvGLIQKAFdtDAoQCgCXbRgKHAoAl20oCiwKAJdsgYoAxESObElAbAKK1gh2Bv0WbIRJSgREjmwFxCxHwGwCitYIdgb9FmyHCUfERI5MDEBNCYjIgYVIzQ2NjMyBBUUBgcWFhUUBCMiJiY1MxQWMzI2NTQmIyM1MyADbJR/bZL8hOqN+gEVeGx6gf7U+pr5ffyceIajj4qrogEMBCNidHNbd7pn2sRjpjAqq3/E526+e16BfmV7b8gAAQCUAAAFDQWwAAkARQCwAEVYsAAvG7EAID5ZsABFWLAHLxuxByA+WbAARViwAi8bsQIQPlmwAEVYsAUvG7EFED5ZsgQAAhESObIJAAIREjkwMQEzESMRASMRMxEEEP39/YH9/QWw+lAEDfvzBbD78gAAAQAtAAAFDQWwABEAT7IEEhMREjkAsABFWLAALxuxACA+WbAARViwAS8bsQEQPlmwAEVYsAkvG7EJED5ZsAAQsQMBsAorWCHYG/RZsAkQsQsBsAorWCHYG/RZMDEBESMRIQMCAgYjIzU3PgI3EwUN/P5CGg9jvJ5AKFdfMQocBbD6UATk/c3++P7dhsoDCGrX0QLJAAEAOf/rBN0FsAAPAEqyABARERI5ALAARViwDy8bsQ8gPlmwAEVYsAYvG7EGED5ZsgAPBhESObAPELAB0LABL7AGELEKAbAKK1gh2Bv0WbINBg8REjkwMQEBIQEHBiMnNxYzMjc3ASECoAEkARn+BS5k4GgCGD1sLDT+DgEUArcC+ftIW7IGyARcewQkAAADAE//xAYYBewAGQAiACsAXbIMLC0REjmwDBCwIdCwDBCwI9AAsAsvsBgvshYYCxESObAWL7AA0LIlGAsREjmwJS+xCQGwCitYIdgb9FmwDdCwFhCxGgGwCitYIdgb9FmwJRCwINCwGhCwI9AwMQEzMgQSFRQCBAcjFSM1IyIkAjU0EiQzMzUzASIGFRQWMzMRMxEzMjY1NCYjA64WqAETmZn+8aga8xip/uyXmAESqhjz/vWovbysFfMYqLu7qwUml/7uq6r+8ZYBvr6XAQ6pqwESmcb+b9K5tM8DDvzy0rO30gABAJL+oQW9BbAACwA8ALAJL7AARViwAC8bsQAgPlmwAEVYsAQvG7EEID5ZsABFWLAKLxuxChA+WbECAbAKK1gh2Bv0WbAG0DAxEzMRIREzETMDIxEhkv0Cgf2wFOj70QWw+xoE5vsc/dUBXwABAI4AAATuBbAAEQBAALAARViwAC8bsQAgPlmwAEVYsAkvG7EJID5ZsABFWLABLxuxARA+WbIOAQkREjmwDi+xBQGwCitYIdgb9FkwMQERIxEGIyAkJxEzERYWMzI3EQTu/KKw/vv+9AH8AX6XrqQFsPpQAj0p5ugBzv4wi3YqAqcAAQCYAAAHAwWwAAsASQCwAEVYsAAvG7EAID5ZsABFWLADLxuxAyA+WbAARViwBy8bsQcgPlmwAEVYsAkvG7EJED5ZsQEBsAorWCHYG/RZsAXQsAbQMDEBESERMxEhETMRIREBlgG8/AG5/PmVBbD7GgTm+xoE5vpQBbAAAAEAmP6iB60FsAAPAFUAsAsvsABFWLAALxuxACA+WbAARViwAy8bsQMgPlmwAEVYsAcvG7EHID5ZsABFWLANLxuxDRA+WbEBAbAKK1gh2Bv0WbAF0LAG0LAJ0LAK0LAC0DAxAREhETMRIREzETMDIxEhEQGWAbz8Abn8qhTe+d0FsPsaBOb7GgTm+xL94AFeBbAAAgAYAAAF1AWwAA0AFgBhsgEXGBESObABELAO0ACwAEVYsAAvG7EAID5ZsABFWLAKLxuxChA+WbICAAoREjmwAi+wABCxDAGwCitYIdgb9FmwAhCxDgGwCitYIdgb9FmwChCxDwGwCitYIdgb9FkwMRMhESEyFhYVFAQHIREhAREhMjY1NCYnGAKHASqg7n3+6e791P51AocBKYCPjHwFsP3TbsmGzfcCBO39y/4Si3NugAIAAwCbAAAGWAWwAAsADwAYAG+yAhkaERI5sAIQsA3QsAIQsBfQALAARViwCy8bsQsgPlmwAEVYsA4vG7EOID5ZsABFWLAILxuxCBA+WbAARViwDC8bsQwQPlmyAAgLERI5sAAvsRABsAorWCHYG/RZsAgQsREBsAorWCHYG/RZMDEBITIWFhUUBAchETMBIxEzAREhMjY1NCYnAZgBKqDufP7r7/3T/QTA/Pz7QAEpgI+MfAODbsqFzPgCBbD6UAWw/Qj+EotzboACAAIAkAAABMEFsAALABQAT7IOFRYREjmwDhCwAdAAsABFWLALLxuxCyA+WbAARViwCS8bsQkQPlmyAAkLERI5sAAvsQwBsAorWCHYG/RZsAkQsQ0BsAorWCHYG/RZMDEBITIWFhUUBAchETMRESEyNjU0JicBjQEqoO58/uvv/dP9ASmAj4x8A4NuyoXM+AIFsP0I/hKLc26AAgABAGv/7ATxBcQAHwCCsgMgIRESOQCwAEVYsBMvG7ETID5ZsABFWLAcLxuxHBA+WbIJExwREjl8sAkvGLRgCXAJAl200AngCQJdtDAJQAkCXbIACQFxsQYBsAorWCHYG/RZsBwQsQMBsAorWCHYG/RZsgAGAxESObATELEMAbAKK1gh2Bv0WbIPCQwREjkwMQEWFjMyNjchNSEmJiMiBgcjNgAzMgQSFxUUAgQjIgAnAWgUl5Ocqwb9/gICCLGgjJUS/BgBJfKzARCTAY/+9LD4/tQWAdmehuTXzNjkjJ7uAQio/sjNe8/+x6gBBegAAgCg/+wHBwXEABcAJQCBshImJxESObASELAd0ACwAEVYsBMvG7ETID5ZsABFWLANLxuxDSA+WbAARViwBC8bsQQQPlmwAEVYsAovG7EKED5Zsg4KDRESOXywDi8YtGAOcA4CXbEIAbAKK1gh2Bv0WbATELEbAbAKK1gh2Bv0WbAEELEiAbAKK1gh2Bv0WTAxARQCBCMiJAInIxEjETMRMzYSJDMyBBIXBzQCIyICBxUUEjMyEjUHB5T+7bOn/vieDrb8/LMGmgEPrbIBE5YB/beopLkCu6aotQKy1v69rZgBHL39owWw/XHJATWlq/6/1QXyAQL+/+tU8P76AQD2AAIAIAAABF8FsAAMABUAY7IQFhcREjmwEBCwCtAAsABFWLAKLxuxCiA+WbAARViwAC8bsQAQPlmwAEVYsAMvG7EDED5ZshEKABESObARL7EBAbAKK1gh2Bv0WbIFAREREjmwChCxEgGwCitYIdgb9FkwMSERIQEhASYRNCQ3IREBFBYzMxEjIgYDYv7m/uf+8QFF/gET9gHv/QSKiuvrjIgCIP3gAmt4ARHR6QL6UAPpe4oCAIYAAgBb/+sEPAYTABoAJgBWsg4nKBESObAOELAb0ACwAEVYsBEvG7ERIj5ZsABFWLAHLxuxBxA+WbIAEQcREjmwAC+yGQAHERI5sRsBsAorWCHYG/RZsAcQsSEBsAorWCHYG/RZMDEBMhIVFRQAIyIAETUQEjc2NjUzFAYGBwYGBzYXIgYVFBYzMjY1NCYCesz2/vXl3/7u+PaKUcRCiKaYnxuRk3aGhHp5hYUD/v7v6gzq/t4BKAEARgFeAZgzHD82ZX5PIyCkkZXDn6Wcrq+wjKMAAwCPAAAEOgQ6AA4AFQAcAHuyAh0eERI5sAIQsBXQsAIQsBfQALAARViwAS8bsQEcPlmwAEVYsAAvG7EAED5ZshYBABESOXywFi8YtEAWUBYCXbTQFuAWAl2xDwewCitYIdgb9FmyCA8WERI5sAAQsRABsAorWCHYG/RZsAEQsRsBsAorWCHYG/RZMDEzESEyFhUUBgcWFhUUBiMBESEyNTQjJTMyNTQnI48Bt97oXVtqfN/R/vgBCru+/vnIz8TTBDqbkUt3IBaGW5eeAc3+84aHrnqABAAAAQCFAAADTQQ6AAUALACwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhA+WbAEELEAAbAKK1gh2Bv0WTAxASERIxEhA03+KvICyAN2/IoEOgAAAgAn/r4ExQQ6AA4AFABdshIVFhESObASELAE0ACwDC+wAEVYsAQvG7EEHD5ZsABFWLAKLxuxChA+WbEAAbAKK1gh2Bv0WbAG0LAH0LAMELAJ0LAHELAP0LAQ0LAEELERAbAKK1gh2Bv0WTAxNzY2NxMhETMRIxEhESMTISERIQcCgWVFBw4C75by/Ur2AQF2AZ/+7wcOwnHLngGe/Ij9/AFC/r4CBAKnz/7WAAEAHgAABlwEOgAVAIMAsABFWLAJLxuxCRw+WbAARViwDS8bsQ0cPlmwAEVYsBEvG7ERHD5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmwAEVYsBQvG7EUED5ZshARAhESObAQL7KPEAFdsQABsAorWCHYG/RZsATQsggQABESObAQELAL0LITABAREjkwMQEjESMRIwMhAQEhEzMRMxEzEyEBASEENYHzgPn+1gFn/qwBKfVy83P2ASn+rQFp/tIBs/5NAbP+TQIzAgf+VwGp/lcBqf38/coAAQBN/+wDxARNACcAkLIeKCkREjkAsABFWLAlLxuxJRw+WbAARViwCC8bsQgQPlmyGSUIERI5fLAZLxi0QBlQGQJdtNAZ4BkCXbEWB7AKK1gh2Bv0WbIDFhkREjmwCBCxEAewCitYIdgb9FmyDRYQERI5tAMNEw0CXbAlELEeB7AKK1gh2Bv0WbIhGR4REjlACQshGyErITshBF0wMQEUBgcWFRQGIyImJjUzFBYzMjY1NCYjIzUzNjU0JiMiBhUjNDYzMhYDsFdPuvLLfMxy8nZaWWlcYK60o15SUG7y8LnJ4AMSSHkkQbqVsVOZaUJZU0NPRq8ChEJKTzyPt6QAAAEAhgAABBIEOgAJAEUAsABFWLAALxuxABw+WbAARViwBy8bsQccPlmwAEVYsAIvG7ECED5ZsABFWLAFLxuxBRA+WbIEBwIREjmyCQcCERI5MDEBMxEjEQEjETMRAyDy8v5Y8vIEOvvGAtL9LgQ6/S4AAAEAjwAABGUEOgAMAGkAsABFWLAELxuxBBw+WbAARViwCC8bsQgcPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIGAgQREjl8sAYvGLTTBuMGAl20QwZTBgJdshMGAXGxAQGwCitYIdgb9FmyCgEGERI5MDEBIxEjETMRMwEhAQEhAf178/NrASsBLP55Aaj+xAGs/lQEOv5QAbD9+v3MAAEAIQAABBQEOgAPAE+yBBARERI5ALAARViwAC8bsQAcPlmwAEVYsAEvG7EBED5ZsABFWLAILxuxCBA+WbAAELEDAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WTAxAREjESEDAgYjIyc3NjY3EwQU8/7OFBOrsEsBMlBJChQEOvvGA3b+h/7w7coFC63lAc4AAAEAjwAABW8EOgAMAFkAsABFWLABLxuxARw+WbAARViwCy8bsQscPlmwAEVYsAMvG7EDED5ZsABFWLAGLxuxBhA+WbAARViwCS8bsQkQPlmyAAsDERI5sgULAxESObIICwMREjkwMQEBIREjEQEjAREjESEC/wFAATDz/tal/tXzATIBKwMP+8YCzP00AtD9MAQ6AAABAIYAAAQRBDoACwCGALAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmyCQoAERI5sAkvtL8JzwkCXbRfCW8JAnG07wn/CQJxsl8JAXK0Lwk/CQJysr8JAXG0HwkvCQJxso8JAV20jwmfCQJysQIBsAorWCHYG/RZMDEhIxEhESMRMxEhETMEEfP+W/PzAaXzAbX+SwQ6/j0BwwABAIYAAAQSBDoABwA5ALAARViwBi8bsQYcPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbAGELECAbAKK1gh2Bv0WTAxISMRIREjESEEEvP+WvMDjAN2/IoEOgAAAQAjAAAD0AQ6AAcAMgCwAEVYsAYvG7EGHD5ZsABFWLACLxuxAhA+WbAGELEAAbAKK1gh2Bv0WbAE0LAF0DAxASERIxEhNSED0P6h8/6lA60DefyHA3nBAAMAVP5gBX8GAAAaACQALwCBsgcwMRESObAHELAg0LAHELAq0ACwBi+wAEVYsAMvG7EDHD5ZsABFWLAKLxuxChw+WbAARViwEy8bsRMSPlmwAEVYsBAvG7EQED5ZsABFWLAXLxuxFxA+WbAKELEeAbAKK1gh2Bv0WbAQELEjAbAKK1gh2Bv0WbAo0LAeELAt0DAxExASMzIXETMRNjMyEhEUAiMiJxEjEQYjIgInJTQmIyIHERYzMgEUFjMyNxEmIyIGVNG7TD7yQFa609S3U0XyPU+v0QkEN3RqLSUhM9z8umxqLSEiKmhwAg4BCQE3HAHO/i4g/sv+4PP+5h7+VgGmGgED4zy2xw39OgoBS6KpCgLJCsEAAQCG/r8EpQQ6AAsAPACwCC+wAEVYsAAvG7EAHD5ZsABFWLAELxuxBBw+WbAARViwCi8bsQoQPlmxAgGwCitYIdgb9FmwBtAwMRMzESERMxEzAyMRIYbzAabzkxTd/NIEOvyIA3j8iP39AUEAAQBfAAAD4AQ7ABEASbIEEhMREjkAsABFWLAJLxuxCRw+WbAARViwEC8bsRAcPlmwAEVYsAEvG7EBED5Zsg0BCRESOXywDS8YsQQBsAorWCHYG/RZMDEhIxEGIyImNREzERQWMzI3ETMD4PNeaN7q82lsYmTzAWkW1ccBTP60dmIXAgwAAQCGAAAGAwQ6AAsASQCwAEVYsAAvG7EAHD5ZsABFWLADLxuxAxw+WbAARViwBy8bsQccPlmwAEVYsAkvG7EJED5ZsQEBsAorWCHYG/RZsAXQsAbQMDEBESERMxEhETMRIREBeQFS8wFT8vqDBDr8iAN4/IgDePvGBDoAAAEAfv6/BrQEOgAPAEwAsAwvsABFWLAALxuxABw+WbAARViwAy8bsQMcPlmwAEVYsAcvG7EHHD5ZsABFWLANLxuxDRA+WbEBAbAKK1gh2Bv0WbAF0LAJ0DAxAREhETMRIREzETMDIxEhEQFxAVLzAVPyuRTd+rsEOvyIA3j8iAN4/Ij9/QFBBDoAAAIAHwAABOoEOgANABUAXrIAFhcREjmwDtAAsABFWLAMLxuxDBw+WbAARViwCC8bsQgQPlmyAAwIERI5sAAvsAwQsQoBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZsAgQsQ8BsAorWCHYG/RZMDEBMzIWFhUUBgchESE1IRERMzI2NCYnAkruhcZn7MT+Hf7IAivtWWdlVgLiXKZup8oBA3bE/eX+o1mkXwEAAwCPAAAFyQQ6AAsADwAXAG+yBxgZERI5sAcQsA3QsAcQsBTQALAARViwCi8bsQocPlmwAEVYsA4vG7EOHD5ZsABFWLAILxuxCBA+WbAARViwDC8bsQwQPlmyAA4IERI5sAAvsRABsAorWCHYG/RZsAgQsREBsAorWCHYG/RZMDEBMzIWFhUUBgchETMBIxEzAREzMjY0JicBgu6FxmfsxP4d8wRH8/P7ue1ZZ2VWAuJcpm6nygEEOvvGBDr95f6jWaRfAQAAAgCPAAAEIgQ6AAsAEwBPsg4UFRESObAOELAB0ACwAEVYsAovG7EKHD5ZsABFWLAILxuxCBA+WbIACggREjmwAC+xDAGwCitYIdgb9FmwCBCxDQGwCitYIdgb9FkwMQEzMhYWFRQGByERMxERMzI2NCYnAYLuhcZn7MT+HfPtWWdlVgLiXKZup8oBBDr95f6jWaRfAQAAAQBR/+wD6AROACAAgLIQISIREjkAsABFWLAILxuxCBw+WbAARViwEC8bsRAQPlmwCBCxAAGwCitYIdgb9FmyHggQERI5fLAeLxi0QB5QHgJdsgMeABESObIcAwFdsgsDAV2xGwewCitYIdgb9FmwEBCxGAGwCitYIdgb9FmyFRsYERI5tAQVFBUCXTAxASIGFSM0NjYzMgAVFRQGBiMiJiY1MxQWMzI2NyE1ISYmAgFVduV0ynLcAQt53JF7yG7ldlZmfgz+rAFTDn4Di2lPZK9o/tL8GZv8iGe6dV13mYmohI8AAgCR/+wGOAROABQAHwCIshUgIRESObAVELAN0ACwAEVYsAQvG7EEHD5ZsABFWLATLxuxExw+WbAARViwES8bsREQPlmwAEVYsAwvG7EMED5ZsgERExESOXywAS8YtNAB4AECXbRAAVABAl2xDwGwCitYIdgb9FmwDBCxFwGwCitYIdgb9FmwBBCxHQGwCitYIdgb9FkwMQEzNiQzMgAXFxQGBiMiACcjESMRMwEUFjI2NTQmIyIGAYTMGwEKy9sBEQsBe+WW0v7zFcrz8wG5ivaIjXh3jAKHz/j+5uk5oPyKAQTU/jwEOv3Yp73Auae9vQACACcAAAPfBDoADQAWAGOyFBcYERI5sBQQsATQALAARViwAC8bsQAcPlmwAEVYsAEvG7EBED5ZsABFWLAFLxuxBRA+WbISAAEREjmwEi+xAwGwCitYIdgb9FmyBwMSERI5sAAQsRMBsAorWCHYG/RZMDEBESMRIwMjEyYmNTQ2NwMUFjMzESMiBgPf8uPn/P9ka+nGvGVP7+BZagQ6+8YBjf5zAbUqnGWXwQL+oERVAThaAAAB/9v+SwP4BgAAIQCOshUiIxESOQCwHi+wAEVYsAQvG7EEHD5ZsABFWLAKLxuxChI+WbAARViwGC8bsRgQPlm2nx6vHr8eA12yLx4BXbIPHgFdsiEYHhESObAhL7EAB7AKK1gh2Bv0WbICGAQREjmwChCxDwGwCitYIdgb9FmwBBCxFQGwCitYIdgb9FmwABCwGtCwIRCwHNAwMQEhFTYzIBMRFAYjIic3FjMyNRE0JiMiBxEjESM1MzUzFSECd/71d7YBWgW5pkY6Dyc7e2Fekkjznp7zAQsEremK/nX8/rLEEb8NvwLtcF2C/PsErauoqAAAAQBU/+wD+QROAB0AfbIWHh8REjkAsABFWLAPLxuxDxw+WbAARViwCC8bsQgQPlmxAAGwCitYIdgb9FmyGQ8IERI5fLAZLxi0HxkvGQJxsRsHsAorWCHYG/RZsgMAGxESObQEAxQDAl2wDxCxFgGwCitYIdgb9FmyExkWERI5shwTAV2yCxMBXTAxJTI2NzMOAiMiABE1NAAzMhYXIyYmIyIGByEVIRICPll4BuQDeMp05P74AQjkwPUE5Ad2W259CgFb/qYZrmhQZrBkAScBAhn3ASnitmB1lI2o/uwAAgAeAAAGmgQ6ABYAHwB9sgkgIRESObAJELAX0ACwAEVYsAAvG7EAHD5ZsABFWLAILxuxCBA+WbAARViwDy8bsQ8QPlmyAQAIERI5sAEvsAAQsQoBsAorWCHYG/RZsA8QsREBsAorWCHYG/RZsAEQsRcBsAorWCHYG/RZsAgQsRgBsAorWCHYG/RZMDEBETMWFhUUBgchESEDAgYHIyc3NjY3EwERMzI2NTQmJwP6+MPl6cP+Gf7mFROor04CMlJHChQC8+1YaGRWBDr+hwO8n6DBAgN2/of+8u4BygULr+MBzv3F/sFYTUhRAQACAIYAAAaxBDoAEgAbAIWyARwdERI5sAEQsBPQALAARViwAi8bsQIcPlmwAEVYsBEvG7ERHD5ZsABFWLALLxuxCxA+WbAARViwDy8bsQ8QPlmyARELERI5sAEvsgQRCxESObAEL7ABELENAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbALELEUAbAKK1gh2Bv0WTAxASERMxEzFhYVFAYHIREhESMRMwERMzI2NTQmIwF5AaXz+MPl6cP+Gf5b8/MCmO1aZmRbAp8Bm/6HA7yfoMECAd3+IwQ6/cX+wVpLRlQAAf/uAAAD+AYAABgAe7IMGRoREjkAsBUvsABFWLAELxuxBBw+WbAARViwBy8bsQcQPlmwAEVYsA8vG7EPED5Zsr8VAV2yLxUBXbIPFQFdshgPFRESObAYL7EAB7AKK1gh2Bv0WbICBAcREjmwBBCxDAGwCitYIdgb9FmwABCwEdCwGBCwE9AwMQEhFTYzIBMRIxE0JiMiBxEjESM1MzUzFSECi/7hd7YBWgXzYV6SSPOLi/MBHwS18Yr+df09ArpwXYL8+wS1qqGhAAEAhv6aBBIEOgALAEYAsAgvsABFWLAALxuxABw+WbAARViwAy8bsQMcPlmwAEVYsAUvG7EFED5ZsABFWLAJLxuxCRA+WbEBAbAKK1gh2Bv0WTAxAREhETMRIREjESERAXkBpvP+tfP+sgQ6/IgDePvG/poBZgQ6AAEAiP/rBsEFsAAeAGGyBh8gERI5ALAARViwAC8bsQAgPlmwAEVYsAwvG7EMID5ZsABFWLAVLxuxFSA+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsgYABBESObERAbAKK1gh2Bv0WbAa0DAxAREUBiMiJwYjIiY1ETMRFBYzMjY1ESERFBYzMjY1EQbB+dLlbXHpz/P9Z15pcgEBbWNhbgWw+//W7qWl79UEAfv8dYKBdwQD+/x0g395BAMAAAEAcP/rBe0EOgAeAGGyBh8gERI5ALAARViwAC8bsQAcPlmwAEVYsAwvG7EMHD5ZsABFWLAVLxuxFRw+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsgYVBBESObERAbAKK1gh2Bv0WbAa0DAxAREGBiMiJwYjIiY1ETMRFBYzMjY1ETMRFBYzMjY1EQXtAdq9x2Bmy7jV81RGU2b0XE9KWwQ6/U7B3I6O3cMCr/1RcmxscgKv/VFybGxyAq8AAAL/4AAABCEGGAASABsAdLIVHB0REjmwFRCwA9AAsABFWLAPLxuxDyI+WbAARViwCS8bsQkQPlmyEg8JERI5sBIvsQAHsAorWCHYG/RZsgIPCRESObACL7AAELAL0LASELAN0LACELETAbAKK1gh2Bv0WbAJELEUAbAKK1gh2Bv0WTAxASERMxYWFRQGByERIzUzETMRIQERMzI2NTQmJwKj/t73xOXlwP4Srq7zASL+3u1bZWNXBDr+yQPOrq3TBAQ6qwEz/s39W/6CZVlVaQIAAAEAmP/tBs0FxQAlAJGyDiYnERI5ALAARViwJC8bsSQgPlmwAEVYsAUvG7EFID5ZsABFWLAcLxuxHBA+WbAARViwIi8bsSIQPlmyACIkERI5sAAvsh8AAXGyCCQcERI5sAUQsQwBsAorWCHYG/RZsAAQsA/QsAAQsSEBsAorWCHYG/RZsBLQsBwQsRUBsAorWCHYG/RZshgkHBESOTAxATM2EiQzMgAXIyYmIyIGByEVIRYWMzI2NzMGACMiJAInIxEjETMBlLULlgEJq/EBJhj8EpOOoasLAen+FgKoopWWFPwW/tP4rP74kwO0/PwDT74BHZv++u+di93Mw+Hyhpzp/vuhATTK/XQFsAABAIb/7AW6BE4AIwCVsg0kJRESOQCwAEVYsAQvG7EEHD5ZsABFWLAjLxuxIxw+WbAARViwGy8bsRsQPlmwAEVYsCAvG7EgED5Zsg4EGxESOXywDi8YtEAOUA4CXbAA0LAEELELAbAKK1gh2Bv0WbIIDgsREjmwDhCxDwewCitYIdgb9FmwGxCxEwGwCitYIdgb9FmyFhMPERI5sA8QsB7QMDEBMzYkMzIWFyMmJiMiAyEVIRYWMzI2NzMOAiMiJCcjESMRMwF5nRQBBNLB9QTkB3Zb2xoBfP6FCn1uWXgG5AN4ynTT/v0UnvPzAnHe/+K2YHX+5quKjmhQZrBk/tz+OgQ6AAIAHAAABRcFsAALAA4AVwCwAEVYsAgvG7EIID5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmwAEVYsAovG7EKED5Zsg0IAhESObANL7EAAbAKK1gh2Bv0WbAE0LIOCAIREjkwMQEjESMRIwMhATMBIQEhAwODfuFzj/76Agb1AgD++v3gAVOoAar+VgGq/lYFsPpQAmgB+AACAAoAAARFBDoACwAQAFcAsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbINAggREjmwDS+xAQGwCitYIdgb9FmwBNCyDwgCERI5MDEBIxEjESMDIwEzASMBMwMnBwLkXcNbaPcBqecBq/f+XPhkGRkBF/7pARf+6QQ6+8YBxAEGZGQAAAIArAAABzAFsAATABYAfQCwAEVYsAIvG7ECID5ZsABFWLASLxuxEiA+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsABFWLAMLxuxDBA+WbAARViwEC8bsRAQPlmyFQIEERI5sBUvsADQsBUQsQYBsAorWCHYG/RZsArQsAYQsA7QshYCBBESOTAxASEBMwEhAyMRIxEjAyETIREjETMBIQMBqAFoASv1AgD++o5+4nKP/vqY/tv8/AJiAVOpAmcDSfpQAar+VgGq/lYBq/5VBbD8uAH5AAIAnQAABhgEOgATABgAgACwAEVYsAIvG7ECHD5ZsABFWLASLxuxEhw+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsABFWLAMLxuxDBA+WbAARViwEC8bsRAQPlmyABASERI5sAAvsAHQsQ4BsAorWCHYG/RZsAvQsAfQsAEQsBTQsBXQshcSBBESOTAxATMTMwEjAyMRIxEjAyMTIxEjETMBMwMnBwGQ/vjnAav3al3DW2j3bbrz8wHt+GQZGQHEAnb7xgEX/ukBF/7pARf+6QQ6/YoBBmRkAAACAIAAAAZuBbAAGgAdAHyyGx4fERI5sBsQsA3QALAARViwGS8bsRkgPlmwAEVYsAQvG7EEED5ZsABFWLAMLxuxDBA+WbAARViwEy8bsRMQPlmyABkEERI5sAAvsQkBsAorWCHYG/RZsA7QsA/QsAAQsBjQshsZBBESObAZELEcAbAKK1gh2Bv0WTAxARYWFxEjESYmIyMHESMRIyIGBxEjETY2IQEhARMhBHr+8QX8AnaPaAb8fo91A/wD+gEP/oUE5P2O6f4vAygE2dj+jQFsgW8L/a8CXG5+/pABbOHbAoj9igGpAAIAggAABWQEOgAaAB0AfLIbHh8REjmwGxCwFNAAsABFWLAFLxuxBRw+WbAARViwAC8bsQAQPlmwAEVYsAsvG7ELED5ZsABFWLATLxuxExA+WbIEBQAREjmwBC+wB9CwBBCxEAewCitYIdgb9FmwFdCwFtCyGwUAERI5sAUQsRwBsAorWCHYG/RZMDEzNTY2NwEhARYWFxUjNSYmJyMHESMRIyIGBxUBEyGCAsXM/usD9P7qxr4C8wFeci8B8i15YAMBhZX+1rLO0g0B2/4kEdPHs7F/cgID/l8BpG58ugJpASIAAAIAowAACLMFsAAgACMAmbIcJCUREjmwHBCwI9AAsABFWLAHLxuxByA+WbAARViwCy8bsQsgPlmwAEVYsAAvG7EAED5ZsABFWLAFLxuxBRA+WbAARViwES8bsREQPlmwAEVYsBkvG7EZED5ZsgkHABESObAJL7EDAbAKK1gh2Bv0WbAJELAN0LADELAc0LAX0LIhBwAREjmwCxCxIgGwCitYIdgb9FkwMSERNDchESMRMxEhASEBFhYXESMRJiYjIwcRIxEjIgYHEQETIQLFO/6f/PwDMP6HBOX+hP7xBfwCdo9oBfx/kXMDAgjp/i4BYKFl/ZoFsP17AoX9eATZ2P6NAWyBbwn9rQJccXz+kQM5AaoAAAIAjwAAB3YEOgAgACMAmbIdJCUREjmwHRCwI9AAsABFWLAHLxuxBxw+WbAARViwCy8bsQscPlmwAEVYsAAvG7EAED5ZsABFWLAFLxuxBRA+WbAARViwES8bsREQPlmwAEVYsBkvG7EZED5ZsgkLABESObAJL7EDB7AKK1gh2Bv0WbAJELAN0LADELAc0LAX0LIhCwAREjmwCxCxIgGwCitYIdgb9FkwMSE1NjchESMRMxEhASEBFhYXFSM1JiYnIwcRIxEjIgYHFQETIQKVATX+t/PzAqX+7AP0/urFvgLyAV5zLgHyLXlgAwGFlf7WsJRk/lgEOv4nAdn+JBHUxrOxf3ICA/5fAaRufLoCaQEiAAACACj+QAOqB4gAJwAwAKqyAjEyERI5sAIQsCjQALAsL7AARViwBS8bsQUgPlmwAEVYsBcvG7EXEj5ZsABFWLARLxuxERA+WbAFELEDAbAKK1gh2Bv0WbImBREREjl8sCYvGLIQJgFdskAmAV20YCZwJgJdsSMBsAorWCHYG/RZsgwjJhESObARELEdAbAKK1gh2Bv0WbIPLAFdsCwQsCnQsCkvtA8pHykCXbIoLCkREjmwMNCwMC8wMQE0JiMhNSEyBBUUBgcEFRQEIyMGFRQXByYmJzQ2NzM2NjU0ISM1MyADNzMVASMBNTMCloV6/uUBFe0BC31uAQz+9+g1ephShKICsaQ/con+z4mJARCUk8/+6pf+684EIV5qx8+1cKMsV/7F6ANja0GZKLd/hosCAX1l88cDn5sK/ukBGAkAAAIAM/5IA4gGHAAnADAAmLICMTIREjmwAhCwKNAAsCwvsABFWLAFLxuxBRw+WbAARViwFy8bsRcSPlmwAEVYsBIvG7ESED5ZsAUQsQQBsAorWCHYG/RZsiUSBRESOXywJS8YtEAlUCUCXbEkB7AKK1gh2Bv0WbIMJCUREjmwEhCxHQGwCitYIdgb9FmwLBCwKdCwKS+0DykfKQJdsigpLBESObAw0DAxATQmIyE1ITIWFRQGBxYVFAYjIwYVFBcHJiYnNDY3MzI2NTQhIzUzMgM3MxUBIwE1MwJ0c2n+5AEX3PhhV9n20DZ+kFGClgKpoTVsd/75kZXioJLQ/umW/uvNAv48R7mljU93JEKslq8EYmtBkTC2cH2HAVA/lKkDEpsL/uoBFwoAAwBf/+wFFwXEABAAFwAeAGmyBB8gERI5sAQQsBHQsAQQsBjQALAARViwDC8bsQwgPlmwAEVYsAQvG7EEED5ZsAwQsREBsAorWCHYG/RZshQEDBESOXywFC8YsAQQsRgBsAorWCHYG/RZsBQQsRwHsAorWCHYG/RZMDEBFAIEIyIkAic1NBIkIAQSFwEiBgchJiYDMjY3IRYWBReU/u2zsP7umQOWARQBZAETlgH9pKC2CAK8CLSgn7MK/UQKuAKy1v69raoBPM1d1QFEr6v+v9UB7/DZ2+77yuXe2eoAAwBP/+wEPQROAA8AFgAdAGqyBB4fERI5sAQQsBDQsAQQsBfQALAARViwBC8bsQQcPlmwAEVYsAwvG7EMED5ZsRABsAorWCHYG/RZshsEDBESOXywGy8YtEAbUBsCXbETB7AKK1gh2Bv0WbAEELEXAbAKK1gh2Bv0WTAxEzQ2NjMyABcXFAYGIyIAEQEyNjchFhYTIgYHISYmT33klNoBEwsBe+eV4/7sAfdrhRD9/xCEa2qFEAIAEIUCJ6H9if7n6jmg/IoBLgEB/pOSiYiTAt2VgoKVAAEAEAAABPMFwgAPAEeyAhARERI5ALAARViwBi8bsQYgPlmwAEVYsA8vG7EPID5ZsABFWLAMLxuxDBA+WbIBDA8REjmwBhCxCAGwCitYIdgb9FkwMQEXNxM2NjMXByMGBwEjASECYRsb5DWcei0CGFQn/pj0/g4BDQGLcm8C96yXAdcCfPuUBbAAAAEAIAAABBgETgARAEeyAhITERI5ALAARViwBS8bsQUcPlmwAEVYsBEvG7ERHD5ZsABFWLAOLxuxDhA+WbIBBQ4REjmwBRCxCgGwCitYIdgb9FkwMQEXNxMSMzIXByYjIgYHASMBMwHjFBR6Ws9DJxcMICI7Df720/6S+wFuYWEBvgEiFsAGNir84gQ6AAACAF//dgUXBi4AEwAnAFeyBSgpERI5sAUQsCHQALAARViwDS8bsQ0gPlmwAEVYsAMvG7EDED5ZsAbQsA0QsBDQsA0QsRoBsAorWCHYG/RZsBfQsAMQsSQBsAorWCHYG/RZsCHQMDEBEAAHFSM1JgADNRAANzUzFRYAESc0JicVIzUGBhUVFBYXNTMVNjY1BRf+8+nG6P7vAwES6cbqAQ39gnjGeYWEe8Z5gAKy/tr+iyN+fiMBcwEdVQEkAXojcXIj/ob+2QbO9SNgYSP1z0zH/SVgXyP2zwACAE//iAQ9BLQAEwAlAFqyAyYnERI5sAMQsBTQALAARViwAy8bsQMcPlmwAEVYsBAvG7EQED5ZsAMQsAbQsBAQsA3QsBAQsSMBsAorWCHYG/RZsBTQsAMQsR0BsAorWCHYG/RZsBrQMDETNBI3NTMVFhIVFRQCBxUjNSYCNQE2NjU0JicVIzUGBhUUFhc1M0/dvbi/3d+/uLvdAlBSWlpQuE9YVk+4AifaASYfbm0f/tjdEdv+2R1rbB8BJt3+px61l4KyH2BgIbKVg64haAAAAwCI/+sGtQc/ACoAPQBGAL6yMEdIERI5sDAQsAnQsDAQsEXQALAARViwAC8bsQAgPlmwAEVYsBIvG7ESID5ZsABFWLAHLxuxBxA+WbAARViwCy8bsQsQPlmyCQAHERI5sBIQsRMBsAorWCHYG/RZsAsQsRoBsAorWCHYG/RZsh4LEhESObAj0LATELAq0LASELA20LA2L7As0LAsL7ErCLAKK1gh2Bv0WbAsELAy0LAyL7E5CLAKK1gh2Bv0WbAsELBC0LBCL7BG0LBGLzAxATIWFxEUBiMiJwYjIiYnETQ2MxUiBhURFBYzMjY1ETMRFhYzMjY1ETQmIxMVIyIuAiMiFRUjNTQzMh4CATY3NTMVFAYHBPTO8gHx0ONycuPO8ATzz19mZl9pcvUBcWhfZmZfaiFTir8wFGiG6yVGyW/+KUEDqWA7BbD63f3q3fuenvbVAiDd/cyOgP3tgI6BdwGC/nlzgI6AAhOAjgHjhiNLCmgQItwPTxr+h1I8aGcxeB8AAAMAdP/rBdEF4wAqAD0ARgCzsglHSBESObAJELA60LAJELBG0ACwAEVYsBIvG7ESHD5ZsABFWLALLxuxCxA+WbASELAA0LAAL7ALELAH0LIJEgsREjmwEhCxEwGwCitYIdgb9FmwCxCxGgGwCitYIdgb9FmyHgsSERI5sCPQsBMQsCrQsBIQsDbQsDYvsC3QsC0vsSsIsAorWCHYG/RZsC0QsDLQsDIvsTkIsAorWCHYG/RZsDYQsEHQsEEvsEbQsEYvMDEBMhYXFRQGIyInBiMiJicRNDYzFSIGFRUUFjMyNjc1MxUWFjMyNjU1NCYjExUjIi4CIyIVFSM1NDMyHgIBNjc1MxUUBgcEOrrcAdS1xWFjwrLTBNy7SVtTQ1BeAewBXlFCVFtJvSRTisEsFWiH6yVGxXD+MEEDqWA7BEflzPjM55GR4MUBA83nw3V89Xx1cGrKympwdXz1fHUB54YjTAloECLcD04b/oVSPGhnMXgfAAIAiP/rBsEHEQAeACYAf7IGJygREjmwBhCwI9AAsABFWLANLxuxDSA+WbAARViwCC8bsQgQPlmwBNCyBggNERI5sAgQsREBsAorWCHYG/RZsA0QsBXQsBUvsBEQsBrQsBUQsB7QsB4vsA0QsCXQsCUvsCbQsCYvsSAIsAorWCHYG/RZsCYQsCPQsCMvMDEBERQGIyInBiMiJjURMxEUFjMyNjURIREUFjMyNjURJTUhFyEVIzUGwfnS5W1x6c/z/WdeaXIBAW1jYW78OQNVAf6mtQWw+//W7qWl79UEAfv8dYKBdwQD+/x0g395BAPnenp/fwACAHD/6wXtBbEAHgAmAIuyBicoERI5sAYQsCXQALAARViwDS8bsQ0cPlmwAEVYsBUvG7EVHD5ZsABFWLAeLxuxHhw+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsgYIFRESObERAbAKK1gh2Bv0WbAa0LANELAl0LAlL7Af0LAfL7EgCLAKK1gh2Bv0WbAfELAi0LAj0DAxAREGBiMiJwYjIiY1ETMRFBYzMjY1ETMRFBYzMjY1ESU1IRchFSM1Be0B2r3HYGbLuNXzVEZTZvRcT0pb/J0DOAT+srUEOv1OwdyOjt3DAq/9UXJsbHICr/1RcmxscgKv/Ht7f38AAQBm/owEtgXFABgAVbIXGRoREjkAsABFWLAKLxuxCiA+WbAARViwAC8bsQAYPlmwAEVYsAIvG7ECED5ZsAoQsA7QsAoQsRABsAorWCHYG/RZsAIQsRcBsAorWCHYG/RZMDEBIxEmADURNBIkMyAAFSMQISIGFREUFhczAzT70/8AjQEBowEAAR/8/t2MqamKn/6MAWYgAUf5ARGvARib/vfpASbfvP7ttt8BAAEAXP6JA/METgAaAFWyGRscERI5ALAARViwCi8bsQocPlmwAEVYsAAvG7EAGD5ZsABFWLACLxuxAhA+WbAKELAP0LAKELESAbAKK1gh2Bv0WbACELEZAbAKK1gh2Bv0WTAxASMRJgI1NTQ2NjMyFhYVIzQmIyIGFRUUFhczAtXzs9N525J8xm/ldFhxgn5wmP6JAWogASPcHJv8iWe7dlt6vagbobsCAAEAbQAABJMFPgATABMAsA4vsABFWLAELxuxBBA+WTAxAQUHJQMjEyU3BRMlNwUTMwMFByUCWwEhSP7dta/h/t9HASXK/t5JASO5rOQBJUz+4AHBrICq/sEBjquAqwFoq4KrAUb+a6t/qgAB/GYEov85Bf0ABwASALAAL7EDBrAKK1gh2Bv0WTAxARUnNyEnFxX9F7EBAiIBsQUgfgHubAHcAAH8cwUX/20GFQAPADAAsAsvsAfQsAcvsQAIsAorWCHYG/RZsAsQsATQsAQvsAsQsQwIsAorWCHYG/RZMDEBMhUVIzU0IyIEByM1MzYk/n/uiGo2/uKLKSd5ARgGFdwiEGh3AYYBdwAAAf17BRb+cgZgAAUADACwAS+wBdCwBS8wMQE1MwcXB/17vQE7UgXchJZwRAAB/aUFFv6cBmAABQAMALADL7AA0LAALzAxASc3JzMV/fdSOwG9BRZEcJaEAAj6JP7EAb8FrwAMABoAJwA1AEIATwBcAGoAfwCwRS+wUy+wYC+wOC+wAEVYsAIvG7ECID5ZsQkJsAorWCHYG/RZsEUQsBDQsEUQsUwJsAorWCHYG/RZsBfQsFMQsB7QsFMQsVoJsAorWCHYG/RZsCXQsGAQsCvQsGAQsWcJsAorWCHYG/RZsDLQsDgQsT8JsAorWCHYG/RZMDEBNDYyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUTNDYzMhYVIzQmIgYVATQ2MzIWFSM0JiMiBhUBNDYyFhUjNCYjIgYVATQ2MhYVIzQmIyIGFQE0NjMyFhUjNCYiBhUTNDYzMhYVIzQmIyIGFf0Rc750cDMwLjMB3nRdX3VxNS4sM0h1XV90cDVcM/7LdF1fdHA1Li0z/U9zvnRwMzAuM/1NdL50cDMwLjP+3nVdX3RwNVwzNXVdX3VxNS4tMwTzVGhoVC43NTD+61RoZ1UxNDUw/glVZ2hUMTQ3Lv35VGhoVDE0Ny7+5FRoaFQuNzcuBRpUaGhULjc1MP4JVWdoVDE0Ny79+VVnZ1UxNDUwAAAI+k3+YwGMBcYABAAJAA4AEwAYAB0AIgAnAC8AsCEvsBYvsBIvsAsvsBsvsCYvsABFWLAHLxuxByA+WbAARViwAi8bsQISPlkwMQUXAyMTAycTMwMBNwUVJQUHJTUFATclFwUBBwUnJQMnAzcTARcTBwP+UAt6YEY6DHpgRgIdDQFN/qb7dQ3+swFaA5wCAUBE/tv88wL+wEUBJisRlEHGA2ARlELEPA7+rQFhBKIOAVL+oP4RDHxiRzsMfGJHAa4QmUTI/I4RmUXIAuQCAUZF/tX84wL+u0cBKwD//wCU/n4F3QckACYA3AAAACcAoQEcAT4BBwAQBID/xgATALAARViwCC8bsQggPlmwDdwwMQD//wCG/n4E5AXZACYA8AAAACcAoQCX//MBBwAQA4f/xgATALAARViwCC8bsQgcPlmwDdwwMQAAAv/gAAAEIQZiABIAGwB3shUcHRESObAVELAD0ACwAEVYsA0vG7ENID5ZsABFWLARLxuxESA+WbAARViwCS8bsQkQPlmwERCxAAewCitYIdgb9FmyAg0JERI5sAIvsAAQsAvQsAzQsAIQsRMBsAorWCHYG/RZsAkQsRQBsAorWCHYG/RZMDEBIREzFhYVFAYHIREjNTM1MxUhAREzMjY1NCYnAqP+3vfE5eXA/hKurvMBIv7e7VtlY1cFBf3+A86urdMEBQWrsrL8kP6CZVlVaQIAAgCUAAAE2QWwAA4AGwBPsgQcHRESObAEELAX0ACwAEVYsAMvG7EDID5ZsABFWLABLxuxARA+WbIWAwEREjmwFi+xAAGwCitYIdgb9FmwAxCxFAGwCitYIdgb9FkwMQERIxEhMgQVFAcXBycGIxM2NTQmJyERITI3JzcBkf0CLfQBH3V6bYh5qvkckH7+yQEwTzpzbgId/eMFsP7RwXeHZJY3AUM1SnaNAv4EFoBkAAACAHz+YAQwBE4AEwAiAHCyFyMkERI5sBcQsBDQALAARViwEC8bsRAcPlmwAEVYsA0vG7ENHD5ZsABFWLAKLxuxChI+WbAARViwBy8bsQcQPlmyCRAHERI5sg4QBxESObAQELEXAbAKK1gh2Bv0WbAHELEcAbAKK1gh2Bv0WTAxARQHFwcnBiMiJxEjETMXNjMyEhEnNCYjIgcRFjMyNyc3FzYEMG5qb2hZcLJr8+AKa7jG4fKBeJVBQpZGMmpuWSICEvSXemN4NnX9/wXaboL+2f76BqK+e/4gfiF7ZGdYAAEAjwAABDQHEAAJADayAwoLERI5ALAIL7AARViwBi8bsQYgPlmwAEVYsAQvG7EEED5ZsAYQsQIBsAorWCHYG/RZMDEBIxUhESMRIREzBDQI/WD9ArLzBO0J+xwFsAFgAAEAfgAAA1sFcwAHACwAsABFWLAELxuxBBw+WbAARViwAi8bsQIQPlmwBBCxAAGwCitYIdgb9FkwMQEhESMRIREzA1v+FvMB6/IDdvyKBDoBOQABAJv+xgSdBbAAFABesg8VFhESOQCwCS+wAEVYsBMvG7ETID5ZsABFWLARLxuxERA+WbATELEAAbAKK1gh2Bv0WbIDEwkREjmwAy+wCRCxCgewCitYIdgb9FmwAxCxDwGwCitYIdgb9FkwMQEhETMgABEQACMnMjY1AiUjESMRIQQ3/WCoASIBPP728wGDiAL+q7z8A5wE5P5f/s3+7P70/ta6s8IBewn9hwWwAAABAH7+4gPbBDoAFQBMsgsWFxESOQCwCi+wAEVYsBQvG7EUHD5ZsABFWLASLxuxEhA+WbAUELEAAbAKK1gh2Bv0WbIDFAoREjmwAy+xEAGwCitYIdgb9FkwMQEhFTMgABUUBgYHJzY1NCYjIxEjESEDRv4rSQEBASBeq3NV3puOTvMCyAN25f763WDCjR2uStSBl/46BDoA//8AFv6aCAUFsAAmANoAAAAHAlEGtgAA//8AHv6aBrQEOgAmAO4AAAAHAlEFZQAA//8Am/6aBX8FsAAmAiwAAAAHAlEEMAAA//8Aj/6aBMIEOgAmAPEAAAAHAlEDcwAAAAEAkAAABTYFsAAUAGIAsABFWLAALxuxACA+WbAARViwDC8bsQwgPlmwAEVYsAIvG7ECED5ZsABFWLAKLxuxChA+WbIPCgwREjmwDy+ynw8BXbEIAbAKK1gh2Bv0WbIBCA8REjmwBdCwDxCwEtAwMQkCIQEjFSM1IxEjETMRMzUzFTMBBQ3+fAGt/sH+00GjWf39WaM3ARsFsP1b/PUCbenp/ZMFsP2a/v4CZgABAI4AAASuBDoAFABdALAARViwDS8bsQ0cPlmwAEVYsBQvG7EUHD5ZsABFWLAKLxuxChA+WbAARViwAy8bsQMQPlmyDgoNERI5sA4vsQkBsAorWCHYG/RZsgEJDhESObAF0LAOELAS0DAxCQIhAyMVIzUjESMRMxEzNTMVMxMElP7EAVb+y9gvm1fy8lebJ88EOv3+/cgBrLKy/lQEOv5Qx8cBsAAAAQA0AAAGogWwAA4AYwCwAEVYsAYvG7EGID5ZsABFWLAKLxuxCiA+WbAARViwAi8bsQIQPlmwAEVYsA0vG7ENED5ZsggGAhESObAIL7EBAbAKK1gh2Bv0WbAGELEEAbAKK1gh2Bv0WbIMAQgREjkwMQEjESMRITUhETMBIQEBIQO2rfz+JwLViwGtATb+DAIf/tACcP2QBOzE/ZwCZP1H/QkAAQA9AAAFqAQ6AA4AbQCwAEVYsAYvG7EGHD5ZsABFWLAKLxuxChw+WbAARViwAi8bsQIQPlmwAEVYsA0vG7ENED5ZsgkKAhESObAJL7IvCQFxsowJAV2xAAGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAAJERI5MDEBIxEjESE1IREzASEBASEDQHvy/moCiGwBKgEt/ngBqP7FAaz+VAN2xP5QAbD9+f3N//8AlP6aBdsFsAAmACwAAAAHAlEEjAAA//8Ahv6aBNUEOgAmAPQAAAAHAlEDhgAAAAEAlAAAB4MFsAANAIkAsABFWLACLxuxAiA+WbAARViwDC8bsQwgPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbIBAgYREjmwAS+ynwEBXbJvAQFxst8BAXGyDwEBcrKfAQFxsj8BAXG0LwE/AQJysnwBAV2wAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhESEVIREjESERIxEzAZECiwNn/ZX8/XX9/QNSAl7D+xMCh/15BbAAAAEAfgAABWYEOgANAGgAsABFWLACLxuxAhw+WbAARViwDC8bsQwcPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbIBDAYREjl8sAEvGLRAAVABAl2wAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhESEVIREjESERIxEzAXEBpQJQ/qPz/lvz8wJ3AcPE/IoBtf5LBDoAAQCb/sQH7wWwABYAa7IQFxgREjkAsAcvsABFWLAVLxuxFSA+WbAARViwEy8bsRMQPlmwAEVYsBAvG7EQED5ZsgEVBxESObABL7AHELEIB7AKK1gh2Bv0WbABELENAbAKK1gh2Bv0WbAVELERAbAKK1gh2Bv0WTAxATMgABEQACMnMjY1AiUjESMRIREjESEFFH0BIgE8/vbzAYOIAv6rkfz9f/wEeQNB/s3+7P70/ta6s8IBewn9iQTk+xwFsAAAAQB+/uYGugQ6ABgAWbISGRoREjkAsAgvsABFWLAXLxuxFxw+WbAARViwFS8bsRUQPlmwAEVYsBIvG7ESED5ZsgEXCBESObABL7EPAbAKK1gh2Bv0WbAXELETAbAKK1gh2Bv0WTAxATMgABUUBgYHJzY2NTQmIyMRIxEhESMRIQQKfQEHASxdq3NVdWmlmn/z/lrzA4wClP773mG/jh2tKI9ngpf+NgN2/IoEOgAAAgBn/+sF1wXFACUAMgCJshYzNBESObAWELAm0ACwAEVYsA0vG7ENID5ZsABFWLAdLxuxHSA+WbAARViwBC8bsQQQPlmwANCwAC+yAgQdERI5sAIvsA0QsQ4BsAorWCHYG/RZsAQQsRUBsAorWCHYG/RZsAAQsSUBsAorWCHYG/RZsAIQsCnQsB0QsS8BsAorWCHYG/RZMDEFIicGIyIkAic1NBI2MxUiBhUVFBIzMjcmETU0EjMyEhEVEAcWMwEUFhc2ETU0JiMiBhUF19+zlLe7/tSpA33hjGZ+27IxKeLtuMLzu1xq/Y5lY6JgWFReFUdHrgE2v8mvAR6h1OG9uNf++QfLAUTL8AE1/r/++sb+2soUAhmE1UiPAQnVrquvoQACAGH/6wTJBE4AIgAuAJCyBC8wERI5sAQQsCPQALAARViwCy8bsQscPlmwAEVYsBovG7EaHD5ZsABFWLAELxuxBBA+WbAARViwAC8bsQAQPlmyAgQaERI5sAIvsAsQsQwBsAorWCHYG/RZsAQQsRMBsAorWCHYG/RZsAAQsSIDsAorWCHYG/RZsAIQsCXQsBoQsSsBsAorWCHYG/RZMDEFIicGIyIAETU0EjMVBgYVFRQWMzcmNTU0NjMyFhUVFAcWMwEUFzY1NTQmIyIGFQTJupN6kOX+1NuqQEuafSWPtpSWvYFNWP4OeGM9MTI7EjY5AUIBBELPAQzKBJR7SabMApXiervq/81305QRAY+qbGOpe2uHeGr//wAp/poFIgWwACYAPAAAAAcCUQPTAAD//wAf/poEJwQ6ACYAXAAAAAcCUQLYAAAAAQAt/qEGtwWwAA8AUQCwDS+wAEVYsAgvG7EIID5ZsABFWLACLxuxAiA+WbAARViwDi8bsQ4QPlmwAhCxAAGwCitYIdgb9FmwBdCwDhCxBgGwCitYIdgb9FmwCtAwMQEhNSEVIREhETMRMwMjESEBjf6gA77+nwKB/LAU5/vRBOzExPveBOb7HP3VAV8AAAEAJv6/BToEOgAPAE0AsA0vsABFWLADLxuxAxw+WbAARViwDy8bsQ8QPlmwAxCxBAGwCitYIdgb9FmwANCwDxCxBgGwCitYIdgb9FmwAxCwCNCwBhCwCtAwMQEjNSEVIxEhETMRMwMjESEBG/UCw9sBpvOTFN380gN3w8P9SwN4/Ij9/QFBAP//AI7+mgWtBbAAJgDhAAAABwJRBF4AAP//AF/+mgSkBDsAJgD5AAAABwJRA1UAAAABAIAAAAThBbAAGABQsgUZGhESOQCwAEVYsAAvG7EAID5ZsABFWLALLxuxCyA+WbAARViwDi8bsQ4QPlmyBQ4AERI5sAUvsAjQsAUQsRQBsAorWCHYG/RZsBHQMDEBERYXFhcRMxE2NxEzESMRBgcVIzUmJicRAX0CTzVuo2xk/f1gcKP2+gEFsP4smDknBQEr/twKGQKn+lACPBgK6+UG6t8BzQAAAQB0AAAD9QQ7ABYAUrIGFxgREjkAsABFWLAVLxuxFRw+WbAARViwDC8bsQwcPlmwAEVYsAEvG7EBED5Zsg8BDBESOXywDy8YsQcBsAorWCHYG/RZsATQsA8QsBLQMDEhIxEGBxUjNSYmJxEzERYXETMRNjcRMwP180Uxo7a+AfIBgqM7O/MBaQ4FiosT0LEBUP6wrB8BC/7vBg4CDAABAIQAAATlBbAAEQBHsgUSExESOQCwAEVYsAEvG7EBID5ZsABFWLAALxuxABA+WbAARViwCS8bsQkQPlmyBQEAERI5sAUvsQ4BsAorWCHYG/RZMDEzETMRNjMgBBcRIxEmJiMiBxGE/aCyAQYBCgL9AX6WrqQFsP3CKefl/jEBz4t2Kv1aAAIAFv/pBbwFxAAcACQAZ7IWJSYREjmwFhCwI9AAsABFWLAOLxuxDiA+WbAARViwAC8bsQAQPlmyHgAOERI5sB4vsRIBsAorWCHYG/RZsATQsB4QsArQsAAQsRcBsAorWCHYG/RZsA4QsSIBsAorWCHYG/RZMDEFIAARNSYmNTMUFzQSJBcgABEVIRUUFjMyNxcGBgEhNTQmIyIGA9z+0v6qm6e1jZQBCJ4BCAEi/JjLvbGsMUPY/gUCbJqUjrAXAVQBKzwY1Kq2Kq4BHKAB/pz+uYQ1ytdGxSguA2wfuMDdAAAC/8v/7ASLBE4AGgAhAI+yICIjERI5sCAQsBTQALAARViwDS8bsQ0cPlmwAEVYsAAvG7EAED5ZshwADRESObAcL7S/HM8cAl20XxxvHAJxtB8cLxwCcbKPHAFdtO8c/xwCcbERB7AKK1gh2Bv0WbAE0LAcELAK0LAAELEVAbAKK1gh2Bv0WbIXAA0REjmwDRCxIAGwCitYIdgb9FkwMQUiJCcnJiY1MxQXNiQzMhIRFSEWFjMyNxcGBgEhNSYmIgYC2NT+5hQDgoapaB8BB7vd8f09C513qGeEQdr+bQHPCHLKehT70TIdwZOVMMXz/ub+/mKGnId9YWsClhJ6fYwAAQCQ/r8E7QWwABYAaLIVFxgREjkAsBAvsABFWLAELxuxBCA+WbAARViwCC8bsQggPlmwAEVYsAIvG7ECED5ZsgcEAhESOXywBy8YtAAHEAcCXbAK0LAQELERAbAKK1gh2Bv0WbAHELEWAbAKK1gh2Bv0WTAxASMRIxEzETMBIQEWABUQACMnIBECJSEBlQj9/XEBsgEy/iLpAQD+8PQBAQkC/q7++AJx/Y8FsP2kAlz9ih/+1/n+8/7TwgFvAXoGAAABAI7+6gRDBDoAFgBasg0XGBESOQCwBy+wAEVYsBEvG7ERHD5ZsABFWLAVLxuxFRw+WbAARViwDy8bsQ8QPlmyFBUPERI5fLAULxi0QBRQFAJdsQ4BsAorWCHYG/RZsgAUDhESOTAxARYWFRQGBgcnNic0JicjESMRMxEzASECza+8XqpzVeACjYuu8vJVAUEBLQJhKeOtYLqIHK1HynaFCf5UBDr+UAGw//8ALf5+BdsFsAAmAN0AAAAHABAEfv/G//8AIf5+BOUEOgAmAPIAAAAHABADiP/GAAEAm/5LBRMFsAAUAHayChUWERI5ALAARViwAC8bsQAgPlmwAEVYsAMvG7EDID5ZsABFWLASLxuxEhA+WbAARViwCC8bsQgSPlmyAgASERI5fLACLxi0YAJwAgJdtDACQAICXbAIELENAbAKK1gh2Bv0WbACELEQAbAKK1gh2Bv0WTAxAREhETMRFAYjIic3FjMyNREhESMRAZcCf/2+qUU8DiQ+e/2B/AWw/YMCffoYt8YRxwy6Apj9lwWwAAABAH7+SwQJBDoAFABvsgsVFhESOQCwAEVYsAAvG7EAHD5ZsABFWLADLxuxAxw+WbAARViwEi8bsRIQPlmwAEVYsAgvG7EIEj5ZsgIDEhESOXywAi8YtEACUAICXbAIELENAbAKK1gh2Bv0WbACELEQAbAKK1gh2Bv0WTAxAREhETMRBgYjIic3FjMyNREhESMRAXEBpfMBuqZFOg8nO3z+W/MEOv49AcP7hbPBEb8NwAHn/ksEOgD//wCU/n4F6AWwACYALAAAAAcAEASL/8b//wCG/n4E4gQ6ACYA9AAAAAcAEAOF/8b//wCU/n4HMQWwACYAMQAAAAcAEAXU/8b//wCP/n4GQQQ6ACYA8wAAAAcAEATk/8YAAgBR/+sFHgXEABYAHgBhsggfIBESObAIELAX0ACwAEVYsAAvG7EAID5ZsABFWLAILxuxCBA+WbINAAgREjmwDS+wABCxEAGwCitYIdgb9FmwCBCxFwGwCitYIdgb9FmwDRCxGgGwCitYIdgb9FkwMQEgABEVFAIEJyAAETUhJiYjIgcHJzc2ATI2NyEVFBYCcQFAAW2g/uOp/tz+vQPQBd/Mp5c0MRumASmWvhL9L7oFxP6M/rZrwf7CsQEBYAFJieDwNBPGDUr6/Nq9H7m/AAEAW//rBEsFsAAbAG6yCxwdERI5ALAARViwAi8bsQIgPlmwAEVYsAsvG7ELED5ZsAIQsQABsAorWCHYG/RZsgQCABESObIbCwIREjl8sBsvGLAF0LIQCwIREjmwCxCxEwGwCitYIdgb9FmwGxCxGQewCitYIdgb9FkwMQEhNSEXARYWFRQEIyImJjUzFBYzMjY1NCYjIzUC//2SA5EB/obI2v7l6ovifvyHaHmQmZGMBOTMo/5PGOrCxehnv4NfgH9klIWsAAEAXf51BEYEOgAbAF+yCxwdERI5ALALL7AARViwAi8bsQIcPlmxAAGwCitYIdgb9FmyBAACERI5shsLAhESObAbL7AF0LIQCwIREjmwCxCxEwGwCitYIdgb9FmwGxCxGQewCitYIdgb9FkwMQEhNSEXARYWFRQEIyImJjUzFBYzMjY1NCYjIzUC9P2bA4wB/ojL1/7q64nke/OJbHqUmpOPA3bEm/5DGem/wupov4FghYBploOrAP//ADT+SwSJBbAAJgCxUgAAJgImpCkABwJUATUAAP//AC3+SQOiBDoAJgDsVQAAJwIm/53/egAHAlQBC//+//8AKf5LBVEFsAAmADwAAAAHAlQDwwAA//8AH/5LBFUEOgAmAFwAAAAHAlQCxwAAAAIAUgAABIMFsAALABQAUrIEFRYREjmwBBCwDtAAsABFWLABLxuxASA+WbAARViwAy8bsQMQPlmyAAEDERI5sAAvsAMQsQwBsAorWCHYG/RZsAAQsQ0BsAorWCHYG/RZMDEBETMRISImJjU0JDcBESEiBhUUFhcDhv392p3ugAEV6wE0/td8kot5A5sCFfpQdNSIzPwD/S8CBol1dJEDAAACAGgAAAawBbAAGAAhAGKyByIjERI5sAcQsBnQALAARViwCC8bsQggPlmwAEVYsAAvG7EAED5ZsgcIABESObAHL7AAELEKAbAKK1gh2Bv0WbIRCAAREjmwGdCwBxCxGgGwCitYIdgb9FmwGRCwIdAwMSEiJDU0JDchETMRMzY2NzYmJzMWFgcGBgclESEiBhUUFhcCcuz+4gEV6wE0/EtebAUCIR31HyYCBPPM/rH+1n2Qjnr90876AwIV+xoCin1K2UxezEXU/APKAgaKdHWSAQACAF7/5wZ/BhgAHwArAIayGSwtERI5sBkQsCrQALAARViwBi8bsQYiPlmwAEVYsAMvG7EDHD5ZsABFWLAYLxuxGBA+WbAARViwHC8bsRwQPlmyBQMYERI5sBgQsQsBsAorWCHYG/RZshADGBESObIaAxgREjmwAxCxIgGwCitYIdgb9FmwHBCxKAGwCitYIdgb9FkwMRMQEjMyFxEzEQYWMzY2NzYnMxcWBw4CIwQnBiMiAicBJiMiBhUUFjMyNyde5MOjZfMCTkN0ggQEQOwXLwMCfeKM/v9Va8u54AsCrkeDc396do1FBgIOAQoBNngCQvtPT2kCt6m+1Vm3g6j5hQS3swEF3gFRaMHNnqpyRAAAAQA8/+cF4wWwACkAZrIjKisREjkAsABFWLAJLxuxCSA+WbAARViwIi8bsSIQPlmyASoJERI5sAEvsQABsAorWCHYG/RZsAkQsQcBsAorWCHYG/RZsg8AARESObAiELEVAbAKK1gh2Bv0WbIaIgkREjkwMRM1MzY2NTQhITUhFgQVFAcWExUGFjM2Njc2JzMWFgcOAiMGJic1NCYj5qeThP7z/qUBZPoBBv/2BQE8M2VyBARA9RorAgJ62oqnsgh8ZwJizQFtddHNAdPM5mQ//v5NOUkCtqO+1WLKZ6n4hQSnqj5ufgABAC//4gT+BDoAJABjsg8lJhESOQCwAEVYsB0vG7EdHD5ZsABFWLAOLxuxDhA+WbECAbAKK1gh2Bv0WbIHDh0REjmyFiUdERI5sBYvsRQHsAorWCHYG/RZsB0QsRsBsAorWCHYG/RZsiIUFhESOTAxJQYzNjY3NiczFhYHBgYjBiYnNTQjIyczNjU0IyMnIRYWEAcWFwMBAk5aYAMEQewtGAEE6byeoAii5gLCucv/BgEUy+SwuQbrWAKPf5aphoA5zPIDcYNIf70Eg5bDAqb+ykowrAAAAQBI/roENwWwACIAYrILIyQREjkAsBcvsABFWLAJLxuxCSA+WbAARViwGy8bsRsQPlmyAQkbERI5sAEvsQABsAorWCHYG/RZsAkQsQcBsAorWCHYG/RZsg8AARESObAbELESAbAKK1gh2Bv0WTAxEyczNjY1NCEhJyEWBBUUBxYTFTMVFAYHJzY2NyMmJzU0JiOXAc6Rgf7r/uoDAS7vAQPk4wPNZFqDJDgIozwDfnQCXMMBc2/rwwPcyd9mR/72hqxj2EtNOXdJMbGEcYUAAAEAdP6pBBoEOgAiAGKyBiMkERI5ALAYL7AARViwCS8bsQkcPlmwAEVYsBwvG7EcED5ZsgEJHBESObABL7EAB7AKK1gh2Bv0WbAJELEHAbAKK1gh2Bv0WbIQAAEREjmwHBCxEwGwCitYIdgb9FkwMRMnMzI1NCYjISchMhcWFRQHFhcVMxUUBgcnNjY3IyYnNTQjswHh0mtj/uEEASDjeGqtsQK7aFWDJjgGpisBwwGbs45KU8FkWZKeTzzDJKxl2kdNPX5PHoNUpgABAEL/6wd/BbAAIgBlsgAjJBESOQCwAEVYsA0vG7ENID5ZsABFWLAfLxuxHxA+WbAARViwBi8bsQYQPlmwDRCxAAGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmwHxCxEgGwCitYIdgb9FmyFx8NERI5MDEBIQMCAgYHIzU3NjYTEyERFBYzMjY3NiczFhYHDgIjIiY1BAf+YRgOYbmcSih6aA8cA45MP25/BARB9hwpAgJ/4IzDxgTj/eD+9v7TigLKAwnfARwC3/u8UmS0p7vYZsdmp/uEwb0AAAEAQP/rBloEOgAhAGWyICIjERI5ALAARViwDC8bsQwcPlmwAEVYsB4vG7EeED5ZsABFWLAFLxuxBRA+WbAMELEAAbAKK1gh2Bv0WbAFELEHAbAKK1gh2Bv0WbAeELERAbAKK1gh2Bv0WbIWHgwREjkwMQEhAwIGByMnNzY2NxMhERYWMzI2NzYnMxcWBw4CIyImJwMX/vcTEaitUwIyUEkKFALhAVFFWGcEBEDsFjADAnDHfcLHAQN0/pr+6fQDygULreUBzv0rUmSgmbXIULF8m+Z8vrkAAAEAlP/nB4YFsAAdAGeyFB4fERI5ALAARViwAC8bsQAgPlmwAEVYsBkvG7EZID5ZsABFWLAXLxuxFxA+WbAARViwES8bsREQPlmxBAGwCitYIdgb9FmyCQAXERI5shwAFxESObAcL7EVAbAKK1gh2Bv0WTAxAREUFjM2Njc2JzMXFgcOAiMGJic1IREjETMRIREFCk0+cH4EBEH2Fy8DAnzijrvDCf2C/PwCfgWw+7xWYAKzprvYWbeDqPeHBMDD//2XBbD9gwJ9AAABAHf/4wZcBDoAHAB6shsdHhESOQCwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsBovG7EaED5ZsgcIAhESOXywBy8YtNAH4AcCXbRAB1AHAl2xAAGwCitYIdgb9FmwGhCxDQGwCitYIdgb9FmyEggCERI5MDEBIREjETMRIREzEQYWMzY2NzYnMxYWBw4CIwQDAxr+UPPzAbDzAlJGXmQDBEDrGisCAnDHfv6KEwG6/kYEOv5DAb39LVJmAqaRr85dv2Gb5nwIAYQAAQBd/+sEuwXFACEASbIAIiMREjkAsABFWLAJLxuxCSA+WbAARViwAC8bsQAQPlmwCRCxDgGwCitYIdgb9FmwABCxFQGwCitYIdgb9FmyGgAJERI5MDEFIiQCJxE0EiQzMhcHJiMiBhURFBYzNjY3NiczFxYHDgICu6z+65sCmgEXrd+IP4aincXEnn2DAwM19ScTAQKB6hWcARitAQ+vAR2eWbhE57z/ALbpAoV0lcyxWFiLzW4AAAEAVf/rA+cETgAeAEayEx8gERI5ALAARViwEy8bsRMcPlmwAEVYsAsvG7ELED5ZsQABsAorWCHYG/RZsgULExESObATELEYAbAKK1gh2Bv0WTAxJTY2NzQnMxYHBgYjIgA1NTQ2NjMyFwcmIyIGFRUUFgJaUUUCE+sdAgTStef+4nzikrtgLmOKcouUrwJDR3dnjFKgsAEx+B6X+otCvTq9pCCavwABACH/5wVaBbAAGQBPsgUaGxESOQCwAEVYsAIvG7ECID5ZsABFWLAWLxuxFhA+WbACELEAAbAKK1gh2Bv0WbAE0LAF0LAWELEJAbAKK1gh2Bv0WbIOFgIREjkwMQEhNSEVIREUFjM2Njc2JzMWFgcOAiMGJicB4/4+BID+Pk0+cH4EBEH1GysDAn3ijLvDCQTjzc38h1RgAraju9hiymeo+YUEwMMAAQBE/+MEywQ6ABcAT7IFGBkREjkAsABFWLACLxuxAhw+WbAARViwFS8bsRUQPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCwFRCxCQGwCitYIdgb9FmyDhUCERI5MDEBITUhFSERFBYzNjY3NiczFhYHBgYjBAMBif67A4v+rVJFXmMDBEDrLBkBBPHC/okTA3fDw/3wVGQChHSTnnx+N8zyCAGEAAABAIH/6wT/BcUAKAB2siYpKhESOQCwAEVYsBYvG7EWID5ZsABFWLALLxuxCxA+WbEDAbAKK1gh2Bv0WbIkFgsREjl8sCQvGLJzJAFdsmAkAV2xJQGwCitYIdgb9FmyBgMlERI5shAlJBESObAWELEeAbAKK1gh2Bv0WbIbJB4REjkwMQEUFjMyNjUzFAYEIyAkNTQlJiY1NCQhMhYWFSM0JiMiBhUUITMVIyIGAX+3mYau/I3+/aD+8/6/AQ52ggEvAQmX+ov9o3yQqgEztr+dowGYZX6BXoK+aenE/VcxpmLF22m6d1l1c2PZyHD//wAt/ksF/AWwACYA3QAAAAcCVARuAAD//wAh/ksFBgQ6ACYA8gAAAAcCVAN4AAAAAgBnBG8C1gXXAAUADQAjALALL7AE0LAEL7AA0BmwAC8YsAsQsAfQsAcvsAHQsAEvMDEBEzMVAyMBMxUWFwcmNQGTcNPmXf7UsQNMULAEmAE/Ff7BAVRfe0ZIWr4A//8ARwIJAlQCzQAGABEAAP//AEcCCQJUAs0ABgARAAD//wCeAm0EmAMxAEYBr+AATM1AAP//AIICbQXQAzEARgGvhQBmZkAAAAIAA/5gA5kAAAADAAcACACyAgUDKzAxASE1ITUhNSEDmfxqA5b8agOW/mCdZ5wAAAEAYwQgAZYGGgAIAB2yCAkKERI5ALAARViwAC8bsQAiPlmwBNCwBC8wMQEXBgcVIzU2NgEafFsD1QFnBhpNhZCYimDRAAABADMEAAFlBgAACAAdsggJChESOQCwAEVYsAQvG7EEIj5ZsADQsAAvMDETJzY3NTMVFAavfFoD1WkEAE2Dkp6KZ9EAAAEAMv7WAWQAygAIABmyCAkKERI5ALAJL7EEDbAKK1gh2Bv0WTAxEyc2NzUzFQYGrXtVA9oBZv7WTn+Uk4Vd0AABAEoEAAF8BgAACAAWALAARViwCC8bsQgiPlmwBNCwBC8wMQEVFhcHJiY1NQEfA1p8TWkGAJ6Phk0+0WeK//8AbAQgAu8GGgAmAYQJAAAHAYQBWQAA//8AQAQAAsAGAAAmAYUNAAAHAYUBWwAAAAIAMv7CAqoA/wAJABIAIrILExQREjmwCxCwBdAAsBMvsQQNsAorWCHYG/RZsA7QMDETJzY3NTMVBgcGFyc2NzUzFRQGsX9VA9oBNzH4f1gE2mb+wk6Jncm6bHJkQU6Olsu2Y90AAAEAQAAABB4FsAALAEwAsABFWLAILxuxCCA+WbAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLACLxuxAhA+WbAKELEAAbAKK1gh2Bv0WbAE0LAF0DAxASERIxEhNSERMxEhBB7+iPP+jQFz8wF4A3L8jgNyyAF2/ooAAAEAXP5gBDkFsAATAH4AsABFWLAMLxuxDCA+WbAARViwCi8bsQocPlmwAEVYsA4vG7EOHD5ZsABFWLACLxuxAhI+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsQYBsAorWCHYG/RZsA4QsQgBsAorWCHYG/RZsAnQsBDQsBHQsAYQsBLQsBPQMDEhIREjESE1IREhNSERMxEhFSERIQQ5/ojz/o4Bcv6OAXLzAXj+iAF4/mABoMICtMQBdv6KxP1MAAABAIgCBgJEA9sADQAXsgMODxESOQCwAy+wCrAKK1jYG9xZMDETNDYzMhYVFRQGIyImJ4h5ZGd4d2djeQIDA195eWIlXndzXf//AIr/9QNvAQAAJgASAwAABwASAc0AAP//AIr/9QUoAQAAJgASAwAAJwASAc0AAAAHABIDhgAAAAEAWgHrAW0C7QALABmyAwwNERI5ALADL7EJDbAKK1gh2Bv0WTAxEzQ2MzIWFRQGIyImWkhBQkhIQkFIAms4Sko4N0lJAAAGAEr/7AdfBcQAFQAjACcANABBAE4AvLIoT1AREjmwKBCwAtCwKBCwG9CwKBCwJtCwKBCwNdCwKBCwR9AAsCQvsCYvsABFWLAZLxuxGSA+WbAARViwEi8bsRIQPlmwA9CwAy+yBQMSERI5sAfQsAcvsBIQsA7QsA4vshASAxESObAZELAg0LAgL7ASELErArAKK1gh2Bv0WbADELEyArAKK1gh2Bv0WbArELA40LAyELA/0LAgELFFArAKK1gh2Bv0WbAZELFMArAKK1gh2Bv0WTAxATQ2MzIXNjMyFhUVFAYjIicGIyImNQE0NjMyFhUVFAYjIiY1AScBFwMUFjMyNjU1NCYiBhUFFBYzMjY1NTQmIgYVARQWMzI2NTU0JiIGFQMvrIiWTk6Vhq+pipdOTpSKrP0bqIWKq6uIhaoBd30Cx32wTz5ASk58TQHHTz5ASk58TftOTT8+TE1+SwFlgqpvb6eMR4Gqbm6qhgN7g6qqiUaCqamJ/BtIBHJI/DhEV1JMS0ZUVEpKRFdSTEtGVFRKAupFVVVJSEZWV0kAAAEAbACKAjMDqQAGABAAsAUvsgIHBRESObACLzAxARMjATUBMwE896f+4AEgpwIZ/nEBhhMBhgAAAQBUAIoCGwOpAAYAEACwAC+yAwcAERI5sAMvMDETARUBIxMD+wEg/uCn9/cDqf56E/56AY8BkAABAC0AbQNxBScAAwAJALAAL7ACLzAxNycBF6p9Asd9bUgEckgA//8ANQKbAr4FsAMHAiAAAAKbABMAsABFWLAJLxuxCSA+WbAN0DAxAAABAGkCjAL/BboADwBUsgoQERESOQCwAEVYsAAvG7EAID5ZsABFWLADLxuxAyA+WbAARViwDS8bsQ0UPlmwAEVYsAcvG7EHFD5ZsgEDDRESObADELEKA7AKK1gh2Bv0WTAxARc2MyARESMRJiMiBxEjEQEBIEuQAQPFBX1jJ8UFrHmH/sn+CQHarVn90gMgAAABAF8AAAR8BcMAJwCSsh8oKRESOQCwAEVYsBcvG7EXID5ZsABFWLAGLxuxBhA+WbInBhcREjmwJy+xDQKwCitYIdgb9FmwAdCwBhCxBQGwCitYIdgb9FmwCdCwJxCwENCwJxCwI9CwIy+2DyMfIy8jA12xJQKwCitYIdgb9FmwEdCwIxCwFNCwFxCxHgGwCitYIdgb9FmyGyMeERI5MDEBIRcUByEHITUzNjY1JyM1MycjNTMnNDYgFhUjNCYjIgYVFyEVIRchAzL+0AJAArgB++dSJysCpaAEnJcF+gGW6PVpX1hnBgE//sYFATUB1C6HVcrKCW9bN5F5kKHK6tq4X2mCaKGQeQAFACEAAAZPBbAAGwAfACMAJgApAL+yCiorERI5sAoQsB/QsAoQsCHQsAoQsCbQsAoQsCjQALAARViwGi8bsRogPlmwAEVYsBcvG7EXID5ZsABFWLAMLxuxDBA+WbAARViwCS8bsQkQPlmyBQkaERI5sAUvsAHQsAEvsg8BAV2xAwOwCitYIdgb9FmwBRCxBwOwCitYIdgb9FmwJdCwCtCwDtCwBRCwHdCwIdCwEdCwAxCwHtCwItCwEtCwARCwGdCwJ9CwFdCwCRCwJNCwFxCwKdAwMQEzFSMVMxUjESMBIREjESM1MzUjNTMRMwEhETMBMzUjBTMnIwE1IwEzJwV32NjY2P3+yf6t/NPT09P8ATUBV/v+cZTz/mfuX48CjC/9oysrA8Wgl6D+EgHu/hIB7qCXoAHr/hUB6/zel5eX/n5LAddEAAIAmP/sBjoFsAAeACUAprIhJicREjmwIRCwENAAsABFWLAVLxuxFSA+WbAARViwGS8bsRkcPlmwAEVYsB0vG7EdHD5ZsABFWLAKLxuxChA+WbAARViwEy8bsRMQPlmwHRCxAAGwCitYIdgb9FmwChCxBQGwCitYIdgb9FmwABCwDdCwDtCyIBMVERI5sCAvsREBsAorWCHYG/RZsB0QsBzQsBwvsBUQsSQBsAorWCHYG/RZMDEBIxEUFjMyNxUGIyARESMGBgcjESMRITIWFzMRMxEzATMyETQnIwYzvzI/Ji9TTf7oeBz0yp76AYzU/Rh18r/7X5L05qADhv2kPTgKvBcBNQJlrbsD/eUFsMOzAQf++f6tAQD3BgD//wCU/+wIPAWwACYANgAAAAcAVwRyAAAABgAhAAAGBwWwAB8AIwAnACsALgAxAOyyKjIzERI5sCoQsA7QsCoQsCLQsCoQsCfQsCoQsC3QsCoQsDHQALAARViwAi8bsQIgPlmwAEVYsAwvG7EMED5ZsABFWLAQLxuxEBA+WbIIAgwREjmwCC+wBNCwBC+wANCwBBCxBgOwCitYIdgb9FmwCBCxCgOwCitYIdgb9FmwDtCwChCwEtCwCBCwFNCwBhCwFtCwBBCwGNCwAhCwGtCwBBCwHNCwAhCwHtCwCBCwINCwBhCwItCwCBCwJNCwBhCwJtCwCBCwKNCyKgIMERI5siwCDBESObAKELAt0LIvAgwREjmwChCwMNAwMQEzEzMDMxUjBzMVIwMjAyMDIwMjNTMnIzUzAzMTMxMzATM3IwUzNyMHMycjATcjBTcjA8LTPvxQiKghyep2+V58YPl348MhooFP+z/ZPeH+PXIapgJObRqh7UgaE/7yHz8CUR07BCoBhv56oKKg/bgCSP24AkigoqABhv56AYb9OKKioqKi/fnFu7sAAAIAfAAABhAEOgANABsAbbIIHB0REjmwCBCwENAAsABFWLAALxuxABw+WbAARViwFi8bsRYcPlmwAEVYsAsvG7ELED5ZsABFWLAOLxuxDhA+WbERAbAKK1gh2Bv0WbAAELEJAbAKK1gh2Bv0WbIFEQkREjmyEAkRERI5MDEBMhYXESMRNCYjIREjEQERMxEhMjY3ETMRBgYjAwy7rgLzWmn+rvMBmfMBUGpZAfQB79wEOsDL/rUBQm1j/IoEOvvGAtb97WFoAq79V7zVAAEAXv/tBDAFwwAjAI6yFSQlERI5ALAARViwFi8bsRYgPlmwAEVYsAkvG7EJED5ZsiMWCRESObAjL7EAArAKK1gh2Bv0WbAJELEEAbAKK1gh2Bv0WbAAELAM0LAjELAO0LAjELAT0LATL7YPEx8TLxMDXbEQArAKK1gh2Bv0WbAWELEbAbAKK1gh2Bv0WbATELAe0LAQELAg0DAxASEWFjMyNxcGIyAAAyM1MzUjNTM2ADMyFwcmIyIGByEVIRUhA2r+nAajmG5fHHiA/wD+2gisrKytDQEs/WqFHGZll6IJAWP+nAFkAg+urCHMHQEgAQKNgI3/ARsfzSKspI2AAAAEACEAAAXUBbAAGgAfACQAKQDnsgwqKxESObAMELAc0LAMELAj0LAMELAo0ACwAEVYsAsvG7ELID5ZsABFWLABLxuxARA+WbALELEkAbAKK1gh2Bv0WbAg0LAgL0ATACAQICAgMCBAIFAgYCBwIIAgCV2wHtCwHi+2sB7AHtAeA11ACwAeEB4gHjAeQB4FXbEmA7AKK1gh2Bv0WbAn0LAnL0APMCdAJ1AnYCdwJ4AnkCcHXbEAAbAKK1gh2Bv0WbAmELAD0LAeELAG0LAgELAP0LESA7AKK1gh2Bv0WbAc0LAd0LAH0LAgELAK0LAeELAU0LAmELAX0DAxAREjESM1MzUjNTMRITIEFzMVIxcHMxUjBgYjASchFSElISYnIQEhFSEyAdb9uLi4uAItrQEBPOS9AgG84Tb6vQEVA/2+AkP9vQHwRnL+yAH0/gwBMXsCHf3jAx+gSKABCYiBoCYioH2FAcIoSOg7Av47NwABACgAAAQMBbAAGgBwshYbHBESOQCwAEVYsBkvG7EZID5ZsABFWLAMLxuxDBA+WbAZELEYAbAKK1gh2Bv0WbAB0LAZELAU0LAUL7AD0LAUELETB7AKK1gh2Bv0WbAG0LAUELAO0LAOL7EJB7AKK1gh2Bv0WbINCQ4REjkwMQEjFhczByMGBgcBFSEBJzMyNjchNyEmIyE3IQPZ2jMPyjKXFtzJAdL+4f4DAf1wgxb95jMB4zHY/vM2A64E+UtltqWvEf3fDQJRmV1MtpvMAAEAIf/sBFEFsAAeAJSyGx8gERI5ALAARViwES8bsREgPlmwAEVYsAUvG7EFED5ZshMRBRESObATL7AX0LAXL7IAFwFdsRgBsAorWCHYG/RZsBnQsAjQsAnQsBcQsBbQsAvQsArQsBMQsRQBsAorWCHYG/RZsBXQsAzQsA3QsBMQsBLQsA/QsA7QsAUQsRoBsAorWCHYG/RZsh4FERESOTAxARUGAgQjIicRBzU3NQc1NxEzFTcVBxU3FQcRNjY1NQRRApb+7bJrjNzc3Nz84eHh4aqyAv9Z0v7DqxQCXVfHV4lXyFcBO9dayFqJWshZ/fsC/PhNAAEATwAABQ8EOgAXAF2yABgZERI5ALAARViwFy8bsRccPlmwAEVYsBAvG7EQED5ZsABFWLALLxuxCxA+WbAARViwBS8bsQUQPlmyFQsXERI5sBUvsADQsBUQsQwBsAorWCHYG/RZsAnQMDEBFgATFSM1JiYnESMRBgYVFSM1EgA3NTMDKOABAwTzAYFy83GC8wMBBN/zA2op/pL+7L+4xe8q/WoClSrzx7G6ARQBcCvRAAACACgAAAUzBbAAFgAfAHuyGCAhERI5sBgQsA3QALAARViwDC8bsQwgPlmwAEVYsAIvG7ECED5ZsgYCDBESObAGL7EFAbAKK1gh2Bv0WbAB0LAGELAK0LAKL7IPCgFdsQkBsAorWCHYG/RZsBTQsAYQsBXQsAoQsBfQsAwQsR8BsAorWCHYG/RZMDElIRUjNSM1MzUjNTMRITIEFRQEByEVIQEhMjY1NCYnIQMz/r78zc3NzQIt8QEg/u70/sQBQv6+AS2IkI18/sTn5+fLa8sCyPvQ1PEDawE2fn1wjgMAAAQAcP/sBYkFxQAZACYANAA4AJiyGjk6ERI5sBoQsADQsBoQsCfQsBoQsDfQALA1L7A3L7AARViwCS8bsQkgPlmwAEVYsCQvG7EkED5ZsAkQsAPQsAMvsg0JAxESObAJELEQArAKK1gh2Bv0WbADELEXArAKK1gh2Bv0WbIZAwkREjmwJBCwHdCwHS+wJBCxKgKwCitYIdgb9FmwHRCxMQKwCitYIdgb9FkwMQEUBiAmNTU0NjMyFhUjNCYjIgYVFRQWMjY1ATQ2MzIWFRUUBiAmNRcUFjMyNjU1NCYjIgYVBScBFwKxn/8Aop6CgKGqQTY0QkNqQAEYroeIraf+6KuqTz5ASU49Pk39+34Cx34EJXOSp4pHgquUczVAVEpKRVVDMf1AhqamjUeCqaeJBURXU0tLRlRUSvRIBHJIAAIATP/rA5AF+QAXACEAXbIBIiMREjmwARCwGNAAsAwvsABFWLAALxuxABA+WbIGDAAREjmwBi+xBQewCitYIdgb9FmwE9CwABCxFwGwCitYIdgb9FmwBhCwGNCwDBCxHwGwCitYIdgb9FkwMQUiJjUGIzUyNxE2NjMyFhUVFAIHFRQWMwM2NjU1NCYjIgcC2+HtYWBhYAOymois17JobNRNVysgVgMV6+UTuxgB6b/WtJsmrf6pZ02OegJES8xmKT9AsgAEAJAAAAfCBcAAAwAPAB0AJwCpsh4oKRESObAeELAB0LAeELAE0LAeELAQ0ACwAEVYsCYvG7EmID5ZsABFWLAkLxuxJCA+WbAARViwBi8bsQYgPlmwAEVYsCEvG7EhED5ZsABFWLAfLxuxHxA+WbAGELAN0LANL7AC0LACL7IAAgFdsQECsAorWCHYG/RZsA0QsRMCsAorWCHYG/RZsAYQsRoCsAorWCHYG/RZsiAkIRESObIlHyYREjkwMQEhNSEBNDYgFhUVFAYgJjUXFBYzMjY1NTQmIyIGFQEhAREjESEBETMHl/2fAmH9dr4BOL+6/sK9r1xRT1tcUE9c/sf+9P4N9AELAfbyAZyVAi+fwcCmTpzCwqIGYGxsY1FfbW1i+6MECvv2BbD78wQNAAIAbQOUBFcFsAAMABQAbgCwAEVYsAYvG7EGID5ZsABFWLAJLxuxCSA+WbAARViwEy8bsRMgPlmyARUGERI5sAEvsgAJARESObIDAQYREjmwBNCyCAEJERI5sAEQsAvQsAYQsA2wCitY2BvcWbABELAP0LANELAR0LAS0DAxAQMjAxEjETMTEzMRIwEjESMRIzUhA+h8PnxviYGFhW/+EYp1jQGMBQn+iwF0/owCHP6DAX395AG9/kUBu18AAgCW/+wEkQROABUAHABlsgIdHhESObACELAW0ACwAEVYsAovG7EKHD5ZsABFWLACLxuxAhA+WbIZCgIREjmwGS+xDwqwCitYIdgb9FmwAhCxEwywCitYIdgb9FmyFQoCERI5sAoQsRYKsAorWCHYG/RZMDElBiMiJgI1NBI2MzIWFhcVIREWMzI3ASIHESERJgQUt7uR9IeQ+ISF44QD/QB3msSs/pCXegIcc15ynQEBk48BA5+L85A+/rhuegMqev7rAR5xAP//AFn/9QXLBZkAJwHG/9kChgAnAZQA+wAAAQcCJAMhAAAAEACwAEVYsAYvG7EGID5ZMDH//wBU//UGaAW0ACcCHwAdApQAJwGUAagAAAEHAiQDvgAAABAAsABFWLANLxuxDSA+WTAx//8AW//1BlwFqAAnAiEADAKTACcBlAGMAAABBwIkA7IAAAAQALAARViwAS8bsQEgPlkwMf//AFj/9QYaBaMAJwIjACICjgAnAZQBMwAAAQcCJANwAAAAEACwAEVYsAUvG7EFID5ZMDEAAgBi/+sEQwX1ABkAJgBeshMnKBESObATELAg0ACwCy+wAEVYsBMvG7ETED5ZsgALExESObAAL7ICCxMREjmwCxCxBQGwCitYIdgb9FmwABCxGgGwCitYIdgb9FmwExCxIAGwCitYIdgb9FkwMQEyFyYmIyIHJzc2MyAAERUUAgYjIgA1NTQSFyIGFRQWMzI2NTUmJgI4rncaxYR8ix08bo8BDQEneuOU4/7z/vR7hYR6eYUWiwQEfcLlNbcZLP5O/nI1wf7TpwEk9w3fARLCp6SasNDFVUxfAAABAKb/GwT0BbAABwAoALAEL7AARViwBi8bsQYgPlmwBBCwAdCwBhCxAgGwCitYIdgb9FkwMQUjESERIxEhBPT0/ZnzBE7lBdT6LAaVAAABAED+8wTBBbAADAA3ALADL7AARViwCC8bsQggPlmwAxCxAgGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIRUhNQEBNSEVIQEDj/3uA0T7fwJP/bEER/z2AhICQ/1zw5cCyALGmMP9cwABAJ4CbQPvAzEAAwASALACL7EBAbAKK1gh2Bv0WTAxASE1IQPv/K8DUQJtxAAAAQA7AAAEkgWwAAgAPbIACQoREjkAsAcvsABFWLABLxuxASA+WbAARViwAy8bsQMQPlmyAAEDERI5sAcQsQYBsAorWCHYG/RZMDEBATMBIwMjNSECQQF42f4XxdjRAWcBKwSF+lACQcUAAAMAXv/sB98ETgAaACoAOQB0sgc6OxESObAHELAi0LAHELAy0ACwAEVYsAQvG7EEED5ZsABFWLAJLxuxCRA+WbAEELAW0LAWL7IHFgQREjmwEtCwEi+yFBYEERI5sBYQsR4BsAorWCHYG/RZsAQQsScBsAorWCHYG/RZsC7QsB4QsDfQMDEBFAYGIyImJwIhIiYmNTU0EjYzIBMSITIWFhcHNCYjIgcGBxUWFxYzMjY1BRQWMzI2Nzc1JicmIyIGB9+A5pCN6VWq/t+P5YGB5I4BJKmpASSO5IEB75J6pG4oDw8ua595lfpdkntprCsHDyhupHmSAhGY/ZCjp/62jv+ZFZgBAI/+uQFHj/2XBJrGyUpCJEVVw8OiBZ3Ds5AaJEJKycMAAAH/r/5LAqgGFQAVAD+yAhYXERI5ALAARViwDi8bsQ4iPlmwAEVYsAMvG7EDEj5ZsQgBsAorWCHYG/RZsA4QsRMBsAorWCHYG/RZMDEFFAYjIic3FjMyNxE0NjMyFwcmIyIVAZC2qkI/EiwligLAsj9ZGSoyo0+wthO9DZ0E9LPDFbkLuAAAAgBlAQEEFQP6ABUAKwB8shAsLRESObAQELAc0ACwGS+wA9CwAy+wCNCwCC+wAxCwCtCwCBCxDQGwCitYIdgb9FmwAxCxEgGwCitYIdgb9FmwDRCwFdCwGRCwHtCwHi+wGRCwINCwHhCxIwGwCitYIdgb9FmwGRCxKAGwCitYIdgb9FmwIxCwK9AwMRM2NjM2FxcWMzI3FQYjIicnJgciBgcVNjYzNhcXFjMyNxUGIyInJyYHIgYHZTCEQlJMnEZRhGVmf1FGmE9UQocwMIBCVE+YRlGHZWaDUUacTFJChDADjjI4AiJOIH7ZaiBMJAJCPMsyOAIkTCB+2WogTiICQjwAAQCRAIAD7wTDABMAOQCwEy+xAAGwCitYIdgb9FmwBNCwExCwB9CwExCwD9CwDy+xEAGwCitYIdgb9FmwCNCwDxCwC9AwMQEhByc3IzUhNyE1ITcXBzMVIQchA+/94oBtXbABIX7+YQIQhm5jvf7RfQGsAWTkPqbJ38rtPq/K3///ADwAFAONBGsAZwAgAAAAi0AAOZoABwGv/579p///AIAAFAPgBGsAZwAiAAAAi0AAOZoABwGv/+L9pwACACQAAAPrBbAABQAJADiyBgoLERI5sAYQsATQALAARViwAC8bsQAgPlmwAEVYsAMvG7EDED5ZsgYAAxESObIIAAMREjkwMQEzAQEjAQEDExMBpMQBg/6Axf5+AeHt8uwFsP0n/SkC1wHW/ir+KQHXAP//AKEAqwG8BQcAJwASABoAtgAHABIAGgQHAAIAYwJ/Aj4EOQADAAcANLIACAkREjmwBdAAsABFWLACLxuxAhw+WbAARViwBi8bsQYcPlmyAAgCERI5sAAvsATQMDEBIxEzASMRMwEAnZ0BPp2dAn8Buv5GAboAAQBF/2cBWgEGAAgADACwBC+wANCwAC8wMRcnNjc1MxUGBsWASQPJAVOZTXN7ZE9duv//AC0AAAUaBhUAJgBKAAAABwBKAkQAAAACABgAAAQXBhUAFwAbAHWyCRwdERI5sAkQsBnQALAARViwCS8bsQkiPlmwAEVYsAQvG7EEHD5ZsABFWLAaLxuxGhw+WbAARViwFy8bsRcQPlmwAEVYsBkvG7EZED5ZsAQQsBPQsRYBsAorWCHYG/RZsAHQsAkQsQ8BsAorWCHYG/RZMDEzESM1MzU+AjMyFhcHJiMiBhUVMxUjESEjETO9paUBasKIUJNPJYpyb2TV1QJn8/MDhrRKf7ZcIhrJMGFhRLT8egQ6AAEALQAABCwGFQAWAGWyEhcYERI5ALAARViwEi8bsRIiPlmwAEVYsA4vG7EOHD5ZsABFWLAJLxuxCRA+WbAARViwFi8bsRYQPlmwEhCxAgGwCitYIdgb9FmwDhCwBdCwDhCxCwGwCitYIdgb9FmwCNAwMQEmIyIVFTMVIxEjESM1MzU2NjMyBREjAzlmSsTc3POlpQHXxHoBRPMFPw64W7T8egOGtGG3wzD6GwACAC0AAAaTBhUAKAAsALiyFC0uERI5sBQQsCrQALAARViwCC8bsQgiPlmwAEVYsBYvG7EWIj5ZsABFWLArLxuxKxw+WbAARViwIS8bsSEcPlmwAEVYsBEvG7ERHD5ZsABFWLAELxuxBBw+WbAARViwKC8bsSgQPlmwAEVYsCUvG7ElED5ZsABFWLAqLxuxKhA+WbAhELEiAbAKK1gh2Bv0WbAm0LAB0LAIELENAbAKK1gh2Bv0WbAWELEcAbAKK1gh2Bv0WTAxMxEjNTM1NDYzMhcHJiMiFRUhNT4CMzIWFwcmIyIGFRUzFSMRIxEhESEjETPSpaXItEBIBig1rgF0AWrCiFCTTyaIc29k1dXz/owEzvPzA4a0Y7TEEr4Is2BKf7ZcIhrJMGFhRLT8egOG/HoEOgAAAQAtAAAGkwYVACcAqLITKCkREjkAsABFWLAVLxuxFSI+WbAARViwCC8bsQgiPlmwAEVYsAQvG7EEHD5ZsABFWLAQLxuxEBw+WbAARViwHy8bsR8cPlmwAEVYsCcvG7EnED5ZsABFWLAkLxuxJBA+WbAARViwGS8bsRkQPlmwBBCxAQGwCitYIdgb9FmwCBCxDQGwCitYIdgb9FmwFRCxHAGwCitYIdgb9FmwARCwJtCwItAwMTMRIzUzNTQ2MzIXByYjIhUVITU2NjMyBREjESYjIhUVMxUjESMRIRHSpaXItEBIBig1rgF0AdfEegFE82ZKxNzc8/6MA4a0Y7TEEr4Is2Bht8Mw+hsFPw64W7T8egOG/HoAAAEALf/sBNEGFQAkAH2yEyUmERI5ALAARViwGy8bsRscPlmwAEVYsB8vG7EfIj5ZsABFWLAWLxuxFhA+WbAARViwCi8bsQoQPlmwGxCxGAGwCitYIdgb9FmwDtCwAdCwChCxBQGwCitYIdgb9FmwGxCwD9CwHxCxEwGwCitYIdgb9FmwDxCwI9AwMQEjERQWMzI3FQYjIBERIzUzNSYjIhURIxEjNTM1NDYzMhYXETMEy78xPyYvU03+6LKyRWyj86WlwrBl8XK/A4b9pD43CrwXATUCZbT4ILn7ZwOGtGK2wzgx/o4AAQBL/+wGgAYYAEwAyLJGTU4REjkAsABFWLBHLxuxRyI+WbAARViwQC8bsUAcPlmwAEVYsA8vG7EPHD5ZsABFWLBLLxuxSxw+WbAARViwCS8bsQkQPlmwAEVYsCwvG7EsED5ZsEsQsQABsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAAQsA3QsA7QsEcQsRQHsAorWCHYG/RZsh1ALBESObBAELEgB7AKK1gh2Bv0WbImLEAREjmyMSxAERI5sCwQsTQHsAorWCHYG/RZsjtALBESOTAxASMRFDMyNxUGIyImJxEjNTM1NCYjIgYVFB4CFSM0JiMiBhUUFgQWFhUUBiMiJiY1MxYWMzI2NTQmJicmNTQ2MzIXJjU0NjMyFhUVMwZ5v3EmL1NNh5ABrKxgWE9YHSEc9GhWUGVeAR6jT/LEhdB07AV4Y2Bka/hTtuy2W00t2a7J3r8Dhv23iAq8F6qiAk60WGJpVEU6aWZ5TUZdSj44Pj9XeleStWCoYVZdSTtBRDQoWKeMvBdsT4GlysVPAAAWAFn+cgfsBa4ADQAaACgANwA9AEMASQBPAFYAWgBeAGIAZgBqAG4AdgB6AH4AggCGAIoAjgHIshCPkBESObAQELAA0LAQELAb0LAQELAw0LAQELA80LAQELA+0LAQELBG0LAQELBK0LAQELBQ0LAQELBX0LAQELBb0LAQELBh0LAQELBj0LAQELBn0LAQELBt0LAQELBw0LAQELB30LAQELB70LAQELB/0LAQELCE0LAQELCI0LAQELCM0ACwPS+wAEVYsEYvG7FGID5Zsn1EAyuyfHkDK7J4gQMrsoA5AyuyCkY9ERI5sAovsAPQsAMvsA7QsA4vsAoQsA/QsA8vsm8ODxESOXywby8YsVALsAorWCHYG/RZshVQbxESObAKELEeC7AKK1gh2Bv0WbADELElC7AKK1gh2Bv0WbAPELAp0LApL7AOELAu0LAuL7E0C7AKK1gh2Bv0WbA9ELBr0LBn0LBj0LA+0LE/DLAKK1gh2Bv0WbBl0LBp0LBt0LA80LA5ELBB0LBGELFHDLAKK1gh2Bv0WbBb0LBX0LBK0LBGELBg0LBc0LBY0LBL0LBEELBO0LAOELFRC7AKK1gh2Bv0WbBHELBf0LAPELF2C7AKK1gh2Bv0WbB4ELCE0LB5ELCF0LB8ELCI0LB9ELCJ0LCAELCM0LCBELCN0DAxARQGIyImJzU0NjMyFhcTETMyFhUUBxYWFRQjATQmIyIGFRUUFjMyNjUBMxEUBiMiJjUzFDMyNjUBETMVMxUhNTM1MxEBESEVIxUlNSERIzUBFTMyNTQnEzUhFSE1IRUhNSEVATUhFSE1IRUhNSEVEzMyNTQmIyMBIzUzNSM1MxEjNTMlIzUzNSM1MxEjNTMDN4FkZoACfmhlgAJDvGJyVDI00P6PSkFASkpCQEkDulxpUlhtXWgpNvnEccQFKMdv+G0BNcQF7AE2b/xcfmdiywEW/VsBFf1cARQCCgEW/VsBFf1cARS8XXY6PF388XFxcXFxcQcib29vb29vAdRieXhedV98eF7+swIlSU1UIA1GLZsBSEVOTkVwRU5ORQFP/oZOXVFTWzYs/MkBO8pxccr+xQYfAR10qal0/uOp/LapU1IEA0p0dHR0dHT5OHFxcXFxcQPEUCke/tP8fvr8Ffl+/H76/BX5AAUAXP3VB9cIcwADABwAIAAkACgATACwIS+wJS+wANCwAC+wIRCwAtCwAi+yIAIAERI5sCAvsB3QsB0vsATQsAQvsg0AAhESObANL7AU0LAUL7IHBBQREjmyGRQEERI5MDEJAwU0Njc2NjU0JiMiBgczNjYzMhYVFAcGBhUXIxUzAzMVIwMzFSMEGAO//EH8RAQPHiRKXKeVkKACywI6Kzk4XVsvysrKSwQEAgQEBlL8MfwxA8/xOjoYJ4dKgJeLfzM0QDRfPEFcTFuq/UwECp4EAAEAPAAAArIDIAAXAFuyCBgZERI5ALAARViwDy8bsQ8aPlmwAEVYsAAvG7EAED5ZsRYCsAorWCHYG/RZsgIWABESObIDDwAREjmwDxCxCAKwCitYIdgb9FmyDAAPERI5shUADxESOTAxISE1ATY1NCYjIgYVIzQ2MzIWFRQPAiECsv2cAR1xNjQ6Qrqph4+camKMAXN9AQVnQyo1QjZ0mYBza2ZXcQABAIAAAAICAxMABgAyALAARViwBS8bsQUaPlmwAEVYsAEvG7EBED5ZsAUQsATQsAQvsQMCsAorWCHYG/RZMDEhIxEHNSUzAgK5yQFvEwI6MJJ3AAACAEv/9QKqAyAADQAXAEiyAxgZERI5sAMQsBDQALAARViwCi8bsQoaPlmwAEVYsAMvG7EDED5ZsAoQsRACsAorWCHYG/RZsAMQsRUCsAorWCHYG/RZMDEBFAYjIiY1NTQ2MzIWFSc0IyIHFRQzMjcCqp6Qkp+ekZCgu3VyA3dvBAE+n6qqnpidrq2eDKmfuKmaAAIAT//2A7cEnQAUACEAYLIVIiMREjmwFRCwCNAAsABFWLAILxuxCB4+WbAARViwDy8bsQ8QPlmyFQgPERI5fLAVLxixAgGwCitYIdgb9FmwDxCxEQGwCitYIdgb9FmwCBCxHAGwCitYIdgb9FkwMQEGIyImNTQ2MzIWFRUQAAUjNTM2NicyNjc1NCYjIgYVFBYCwWSRs8rywM7o/sD+xSQYwcCtRGQYallYaWkB1VvPtrLs/uVB/sP+vgTBAYztOipZbX57Xl9wAAADAFj/8APDBJ0AFwAiAC0AgbIJLi8REjmwCRCwINCwCRCwJtAAsABFWLAVLxuxFR4+WbAARViwCS8bsQkQPlmyKwkVERI5sCsvss8rAXGyPysBcbJfKwFysRsBsAorWCHYG/RZsgMbKxESObIPKxsREjmwCRCxIAGwCitYIdgb9FmwFRCxJgGwCitYIdgb9FkwMQEUBgcWFhUUBiMiJjU0NjcmJjU0NjMyFgM0JiMiBhQWMzI2AzQmIyIGFRQWMjYDplxRXmzux8bwbF5RXN65uuDWa1lYaWlaWGocWk5NV1icWANWVYMnKI9hm7SznGKPKCeCVZivrv1jSlZVllVVAkJCT01EQ1FRAAEAOQAAA9AEjQAGADqyAQcIERI5ALAARViwBS8bsQUePlmwAEVYsAEvG7EBED5ZsAUQsQMBsAorWCHYG/RZsgADBRESOTAxAQEhASE1IQPQ/f7/AAIC/WkDlwQF+/sDycQAAgBg//AD1wSaABMAIABlshshIhESObAbELAM0ACwAEVYsAAvG7EAHj5ZsABFWLAMLxuxDBA+WbAAELEBAbAKK1gh2Bv0WbIGAAwREjmwBi+yBAYMERI5sRQBsAorWCHYG/RZsAwQsRsBsAorWCHYG/RZMDEBFSIGBzYzMhYVFAYjIiY1NRAAJQMiBgcVFBYzMjY1NCYDE9rSEWuhrcjuxND1AU0BOMRIbBpuX1ltaQSax52dbdSyr+H53kgBNwFQBP2qPS0udIZzWVtrAAABAGf/8APRBI0AHQBtshoeHxESOQCwAEVYsAEvG7EBHj5ZsABFWLANLxuxDRA+WbABELEDAbAKK1gh2Bv0WbIHAQ0REjmwBy+xGgGwCitYIdgb9FmyBRoHERI5sA0QsRQBsAorWCHYG/RZshEUGhESObIdGhQREjkwMRMTIRUhBzYzMhYVFAYjIiYnMxYWMzI2NTQmIyIHB4hJAsP+BiFkZbnW6cu1+gfuCGxUWmh2ZF48IgI7AlLI8yvLtbHcu5VKRGpkXW0nFwAAAgAwAAAD7ASNAAoADgBXsg4PEBESObAOELAJ0ACwAEVYsAkvG7EJHj5ZsABFWLAELxuxBBA+WbIBCQQREjmwAS+xAgGwCitYIdgb9FmwBtCyCAYBERI5sAEQsAvQsg0JBBESOTAxATMVIxUjNSEnATMBIREHA1KamvP92woCKvj90gE7FAG8xPj4mwL6/S8BmiEAAAEAPv/wA7wEnQAmAKGyICcoERI5ALAARViwDi8bsQ4ePlmwAEVYsBkvG7EZED5ZsgEOGRESObABL7I/AQFxss8BAXGyXwEBcrKPAQFysv8BAXGyDwEBcrRvAX8BAnG0rwG/AQJdsr8BAXKwDhCxBwGwCitYIdgb9FmyCg4ZERI5sAEQsSUBsAorWCHYG/RZshQlARESObIdGQ4REjmwGRCxIAGwCitYIdgb9FkwMQEzMjY1NCYjIgYVIzQ2MzIWFRQGBxYVFAYjIiY1MxQWMzI2NTQjIwFngGllYllSaPPvusvnY2HY/MrF8/RyWmNo5X0CqVdGR01IOpG0sZxPhiU90525uZ5CU1hIqAABAEIAAAPXBJ0AGABbsggZGhESOQCwAEVYsA8vG7EPHj5ZsABFWLAALxuxABA+WbEXAbAKK1gh2Bv0WbICFwAREjmyAw8AERI5sA8QsQgBsAorWCHYG/RZsgsADxESObIVAA8REjkwMSEhNQE2NTQmIyIGFSM0NjMyFhUUBgcHBSED1/yFAamxYE9jbvT3ycXiUmZg/wACRqUBjpxuR1ZlW6nau6JSmmRb0wAAAQCWAAACxASNAAYAQLIBBwgREjkAsABFWLAFLxuxBR4+WbAARViwAC8bsQAQPlmwBRCwBNCwBC+xAwGwCitYIdgb9FmyAgMFERI5MDEhIxEFNSUzAsTz/sUCEhwDb1PDrgACAFn/8APDBJ0ADQAXAEiyAxgZERI5sAMQsBDQALAARViwCi8bsQoePlmwAEVYsAMvG7EDED5ZsAoQsRABsAorWCHYG/RZsAMQsRUBsAorWCHYG/RZMDEBFAIjIiYnNTQSMzISFycQIyIDERAzMhMDw+PRzOcD4tLR5AH0wr0FxLoGAeHw/v/47dbvAQP/AO8UARf++f76/uYBBgABAEEAAAPzBI0ACQBGALAARViwBy8bsQcePlmwAEVYsAIvG7ECED5ZsQABsAorWCHYG/RZsgQAAhESObAHELEFAbAKK1gh2Bv0WbIJBQcREjkwMSUhFSE1ASE1IRUBeAJ7/E4CbP2VA6DCwo0DPMSKAAABAAUAAAQ2BI0ACAAxALAARViwAS8bsQEePlmwAEVYsAcvG7EHHj5ZsABFWLAELxuxBBA+WbIAAQQREjkwMQEBIQERIxEBIQIdAQ4BC/5d8v5kAQsCegIT/Qf+bAGhAuwAAAEAFQAABEoEjQALAFMAsABFWLABLxuxAR4+WbAARViwCi8bsQoePlmwAEVYsAQvG7EEED5ZsABFWLAHLxuxBxA+WbIAAQQREjmyBgEEERI5sgMABhESObIJBgAREjkwMQETIQEBIQMDIQEBIQIn8gEc/okBjP7g//r+5AGB/ogBGgL6AZP9vv21AZn+ZwJLAkIAAQAoAAAF5QSNAAwAWQCwAEVYsAEvG7EBHj5ZsABFWLAILxuxCB4+WbAARViwCy8bsQsePlmwAEVYsAMvG7EDED5ZsABFWLAGLxuxBhA+WbIAAQMREjmyBQEDERI5sgoBAxESOTAxARMzASMDAyMBMxMTMwRKr+z+5uvY2+v+5uyx2NYBKwNi+3MDQfy/BI38nANkAAEACQAABHIEjQAIADEAsABFWLADLxuxAx4+WbAARViwBy8bsQcePlmwAEVYsAUvG7EFED5ZsgEDBRESOTAxARc3ASEBIwEhAioTEgEiAQH+Rvb+RwEBAThNSwNX+3MEjQAAAQBn//AEHgSNAA8ANrIMEBEREjkAsABFWLAILxuxCB4+WbAARViwBC8bsQQQPlmxDAGwCitYIdgb9FmwCBCwD9AwMQERFAQgJDURMxEUFjMyNxEEHv7//kr/APF+bOUEBI39Ab7g3cEC//0Ac2jUAwcAAQAkAAAEFgSNAAcALwCwAEVYsAYvG7EGHj5ZsABFWLACLxuxAhA+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSEEFv5+8/6DA/IDyfw3A8nEAAABAD7/8APvBJ0AJQBmsgkmJxESOQCwAEVYsAkvG7EJHj5ZsABFWLAcLxuxHBA+WbIDHAkREjmyDQkcERI5sAkQsRABsAorWCHYG/RZsAMQsRUBsAorWCHYG/RZsiEcCRESObAcELEjAbAKK1gh2Bv0WTAxATQmJCYmNTQ2MzIWFSM0JiMiBhUUFhcWFhUUBiMiJiY1MxQhMjYDAmj+z7BT9sPS/vN4ZV9ucY/dwPjMiuV+9AEAYW8BMkJPTGKDXJK7yKBRXU1AOkwjNrKOma5dqnHASgAAAgB2AAAEOQSNAA0AFgBjsgUXGBESObAFELAP0ACwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhA+WbAARViwDS8bsQ0QPlmyDgIEERI5sA4vsQABsAorWCHYG/RZsgoADhESObAEELEVAbAKK1gh2Bv0WTAxASMRIxEhMhYVFAcBFSEBMzI2NTQmIyMCSN/zAcja8OEBEv78/jTVbGxpb9UBqf5XBI23qutb/iULAmtfTlFgAAIATP8wBGwEnQAUACIASLIIIyQREjmwCBCwH9AAsABFWLARLxuxER4+WbAARViwCC8bsQgQPlmwERCxGAGwCitYIdgb9FmwCBCxHwGwCitYIdgb9FkwMQEUBgcXByUGIyImAic1NBI2MzIAESc0JiMiBhUVFBYzMjY1BGxuY8+d/vYyNJryhAGC8ZzvASLxl4mGl5eIiZUCLKPxSJiIyQmLAQGqOasBBY7+yP70CLfAw7YzsMnDtgACAHYAAAQsBI0ACgATAE+yBBQVERI5sAQQsAzQALAARViwAy8bsQMePlmwAEVYsAEvG7EBED5ZsgsBAxESObALL7EAAbAKK1gh2Bv0WbADELESAbAKK1gh2Bv0WTAxAREjESEyFhUUBgcnMzI2NTQmIyMBafMB5dT98dT+8mh3eWXzAZn+ZwSN1a2pxgPEWFRXaQAAAgBP//AEbwSdAA4AHABIsgMdHhESObADELAS0ACwAEVYsAsvG7ELHj5ZsABFWLADLxuxAxA+WbALELESAbAKK1gh2Bv0WbADELEZAbAKK1gh2Bv0WTAxARAAIyIAETU0EjYzMgARJzQmIyIGFRUUFjMyNjUEb/7f7ez+2oXwm/ABIPKWiIaYmYeIlAIs/vj+zAE1AQwurAEHi/7H/vUIt8DAtzWyx8O2AAABAHYAAARnBI0ACQBFALAARViwBS8bsQUePlmwAEVYsAgvG7EIHj5ZsABFWLAALxuxABA+WbAARViwAy8bsQMQPlmyAgUAERI5sgcFABESOTAxISMBESMRMwERMwRn8v308/MCDPIDG/zlBI385AMcAAABAHYAAAWPBI0ADgBgsgEPEBESOQCwAEVYsAAvG7EAHj5ZsABFWLACLxuxAh4+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsABFWLAMLxuxDBA+WbIBAAQREjmyBwAEERI5sgoABBESOTAxCQIhESMREwEjARMRIxEBsgFRAU4BPvIZ/qCo/qEZ8gSN/LUDS/tzATsCOvyLA3D9y/7FBI0AAAEAdgAAA5QEjQAFACkAsABFWLAELxuxBB4+WbAARViwAi8bsQIQPlmxAAGwCitYIdgb9FkwMSUhFSERMwFpAiv84vPCwgSNAAEAdgAABGgEjQAMAEsAsABFWLAELxuxBB4+WbAARViwCC8bsQgePlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIGAgQREjmwBhCwAdCyCgEGERI5MDEBBxEjETMRNwEhAQEhAfCH8/NuAU8BLP5DAdP+3gHbg/6oBI39/YYBff33/XwAAQAk//ADZASNAA4AI7IFDxAREjkAsABFWLAFLxuxBRA+WbELAbAKK1gh2Bv0WTAxATMRFAYjIiY1MxQzMjY1AnHz47LK4fS3S1cEjfzgrs/Ar61eXQABAIUAAAF3BI0AAwAdALAARViwAi8bsQIePlmwAEVYsAAvG7EAED5ZMDEhIxEzAXfy8gSNAAABAHYAAARoBI0ACwCHALAARViwBi8bsQYePlmwAEVYsAovG7EKHj5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmyCQYAERI5sAkvtK8JvwkCXbI/CQFxss8JAXGyPwkBcrL/CQFxsg8JAXK0bwl/CQJxtN8J7wkCXbJfCQFytBwJLAkCXbECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBGjz/fTz8wIM8wHb/iUEjf4RAe8AAAEAVP/wBEgEnQAcAF+yGh0eERI5ALAARViwCi8bsQoePlmwAEVYsAMvG7EDED5Zsg4DChESObAKELERAbAKK1gh2Bv0WbADELEXAbAKK1gh2Bv0WbIbAwoREjmwGy+xGQewCitYIdgb9FkwMSUHBiEiABE1EAAzMhYXIyYmIyARFRQWIDc1IzUhBEgXlv7V+P7cARb01/oZ7RJ5bP7koAEoRvkB65MYiwEuAQlBAQkBLMPAZFz+iUC3ujnIsQABAHYAAAOeBI0ACQBCALAARViwBC8bsQQePlmwAEVYsAIvG7ECED5ZsgkEAhESObAJL7EAAbAKK1gh2Bv0WbAEELEGAbAKK1gh2Bv0WTAxASERIxEhFSERIQNb/g7zAyj9ywHyAdv+JQSNxP7VAAEAPv8TA+8FcwAqAHKyEyssERI5ALAARViwCS8bsQkePlmwAEVYsCIvG7EiED5ZsgMiCRESObAJELAM0LADELEYAbAKK1gh2Bv0WbAJELETAbAKK1gh2Bv0WbIQGBMREjmwIhCwH9CwIhCxKAGwCitYIdgb9FmyJgMoERI5MDEBNCYkJiY1NDY3NTMVFhYVIzQmIyIGFRQWFxYWFRQGBxUjNSYmNTMUITI2AwJo/s+wU8+poKbL83hlX25xj93Aw66gveP0AQBhbwEyQk9MYoNchrQQ2dwVwI1RXU1AOkwjNrKOhqwR4eETx5rASgABADgAAAQaBJ0AHwBxshsgIRESOQCwAEVYsBMvG7ETHj5ZsABFWLAFLxuxBRA+WbIfEwUREjmwHy+xAAKwCitYIdgb9FmwBRCxAwGwCitYIdgb9FmwB9CwCNCwABCwDNCwHxCwDtCwExCxGgGwCitYIdgb9FmyFx8aERI5MDEBIRYHIQchNTM2NicnIzUzJyY2MzIWFSM0JiMiBhcXIQNH/oUGUAKYAfxlCikrAwGgmwMG2L/C2fNXUE1XBQQBgAHlsnDDwwuTfQeTac7u1Lxhan55aQAAAQAJAAADmQSNABgAb7IAGRoREjkAsABFWLABLxuxAR4+WbAARViwDC8bsQwQPlmyAAwBERI5sggBDBESObAIL7AD0HywAy8YsAWwCitY2BvcWbAIELAKsAorWNgb3FmwDtCwCBCwENCwBRCwE9CwAxCwFdCwARCwF9AwMQETMwEzFSEHFSEVIRUjNSE1ITUnITUzASEB0sj//vq//v8KAQv+9fL+9AEMBP74xv76AQECjgH//beTFzCR2dmRPgmTAkkAAAEAdgAAA5cEjQAFADOyAQYHERI5ALAARViwBC8bsQQePlmwAEVYsAMvG7EDED5ZsAQQsQABsAorWCHYG/RZMDEBIREjESEDl/3S8wMhA8n8NwSNAAIACQAABHIEjQADAAgAPbIFCQoREjmwBRCwAtAAsABFWLACLxuxAh4+WbAARViwAC8bsQAQPlmyBQACERI5sQcBsAorWCHYG/RZMDEhIQEzAycHAyEEcvuXAbn2aRIT3gHjBI3+yUtN/W8AAAMAT//wBG8EnQADABIAIAB5sgchIhESObAHELAB0LAHELAW0ACwAEVYsA8vG7EPHj5ZsABFWLAHLxuxBxA+WbIDDwcREjl8sAMvGLRgA3ADAl20MANAAwJdsgADAXGxAAGwCitYIdgb9FmwDxCxFgGwCitYIdgb9FmwBxCxHQGwCitYIdgb9FkwMQEhNSEFEAAjIgARNTQSNjMyABEnNCYjIgYVFRQWMzI2NQM4/loBpgE3/t/t7P7ahfCb8AEg8paIhpiZh4iUAd/Ddv74/swBNQEMLqwBB4v+x/71CLfAwLc1ssfDtgABAAkAAARyBI0ACAA4sgcJChESOQCwAEVYsAIvG7ECHj5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmyBwIAERI5MDEhIQEzASEBJwcBCv7/Abn2Abr+//7eEhMEjftzA1ZLTQADAEIAAANVBI0AAwAHAAsAYbIEDA0REjmwBBCwANCwBBCwCNAAsABFWLAKLxuxCh4+WbAARViwAC8bsQAQPlmxAgGwCitYIdgb9FmyBwoAERI5sAcvsQQBsAorWCHYG/RZsAoQsQgBsAorWCHYG/RZMDEhITUhAyE1IRMhNSEDVfztAxNJ/X4Cgkn87QMTwwE4xAEKxAABAHYAAARiBI0ABwBAsgEICRESOQCwAEVYsAYvG7EGHj5ZsABFWLAELxuxBBA+WbAARViwAS8bsQEQPlmwBhCxAgGwCitYIdgb9FkwMSEjESERIxEhBGL0/fvzA+wDyfw3BI0AAQBEAAAD5gSNAAwATbIADQ4REjkAsABFWLAILxuxCB4+WbAARViwAy8bsQMQPlmxAQGwCitYIdgb9FmyBQEDERI5sAgQsQoBsAorWCHYG/RZsgcKCBESOTAxAQEhFSE1AQE1IRUhAQKQ/uYCcPxeAT/+wQN8/boBFgJF/n/EmAG3AaaYxP6PAAMAUAAABU0EjQARABYAHABxsggdHhESObAIELAU0LAIELAa0ACwAEVYsBAvG7EQHj5ZsABFWLAILxuxCBA+WbIPEAgREjmwDy+wANCyCQgQERI5sAkvsAbQsAkQsRQBsAorWCHYG/RZsA8QsRUBsAorWCHYG/RZsBrQsBQQsBvQMDEBFgQVFAQHFSM1JiQ1NCQ3NTMBAgURBAU0JicRJANJ8AEU/unt8/D+6gEX7/P9+QQBGP7sAxmQggESBBUP9srQ+g9tbA/50M33DXj9t/79FQIqFfuFgQr91hUAAAEAUAAABQMEjQAYAEyyABkaERI5ALAARViwEi8bsRIePlmwAEVYsAwvG7EMED5ZshYMEhESObAWL7AA0LASELAX0LAE0LAWELENAbAKK1gh2Bv0WbAK0DAxATY2NREzEQYHBgcRIxEmAgMRMxEUFhcRMwMjf27zAWh9+vPj+wLzcH3zAd0YwqcBL/7N45OvHf7oARcWASoBAAE2/tGowBgCrwAAAQBfAAAEhASdACMAXrIHJCUREjkAsABFWLAZLxuxGR4+WbAARViwDy8bsQ8QPlmwAEVYsCIvG7EiED5ZsA8QsREBsAorWCHYG/RZsA7QsADQsBkQsQcBsAorWCHYG/RZsBEQsCDQsCHQMDElNjY1NTQmIyIGFRUUFhcVITUzJhE1NDY2MzIAFRUUBgczFSECrXhslI2KlHZ0/jCwvYPynOoBKmNZtv4vyCLJsCuerKmkKLHHI8jEmwEnFpHshP7j7RmN30rEAAABACT/7AVSBI0AGQBushYaGxESOQCwAEVYsAIvG7ECHj5ZsABFWLAOLxuxDhA+WbAARViwGC8bsRgQPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCyCAIOERI5sAgvsA4QsQ8HsAorWCHYG/RZsAgQsRUBsAorWCHYG/RZMDEBITUhFSEVNjMyFhUUBiM1MjY1NCYjIgcRIwF+/qYDrf6gio3a8PDrc3Z0dYGF8wPJxMTuJ9TGvMC9VGlyZyb95wAAAQBP//AEQwSdAB0AkrIDHh8REjkAsABFWLALLxuxCx4+WbAARViwAy8bsQMQPlmyDwsDERI5sAsQsRIBsAorWCHYG/RZshULAxESObAVL7L/FQFxsg8VAXKyPxUBcbLPFQFxtG8VfxUCcbSvFb8VAl2yXxUBcrKPFQFysRYBsAorWCHYG/RZsAMQsRoBsAorWCHYG/RZsh0DCxESOTAxAQYEIyIAETU0NjYzMgQXIyYmIyIDIRUhFhYzMjY3BEIR/vfZ7P7sfuyc1gEEFPMMfXL7FgGA/oAKfoN4fA0BhL/VASwBC0Sp/4rawnBp/s/ElJ9icAAAAgAkAAAHFQSNABcAIAB6sgQhIhESObAEELAY0ACwAEVYsBIvG7ESHj5ZsABFWLADLxuxAxA+WbAARViwCy8bsQsQPlmwEhCxBQGwCitYIdgb9FmwCxCxDgGwCitYIdgb9FmyFBIDERI5sBQvsRgBsAorWCHYG/RZsAMQsRkBsAorWCHYG/RZMDEBFAYHIREhAwYCBiMjNzc2NjcTIREzMhYlETMyNjU0JiMHFfnP/hX+pA4LWKyRNAEmYE4MFQM77Nr6/UDxZ3V2ZgF/q9ICA8n+nO/+/3XNAgef7QIr/mzQDP6Oa1NRYwAAAgB2AAAHGASNABMAHADEsgEdHhESObABELAU0ACwAEVYsBMvG7ETHj5ZsABFWLACLxuxAh4+WbAARViwEC8bsRAQPlmwAEVYsA0vG7ENED5ZsgAQExESObAAL7SvAL8AAl2yPwABcbLPAAFxsj8AAXKyXwABcrL/AAFxsg8AAXK0bwB/AAJxtN8A7wACXbQfAC8AAl2ynwABcrIEDQIREjmwBC+wABCxDwGwCitYIdgb9FmwBBCxFAGwCitYIdgb9FmwDRCxFQGwCitYIdgb9FkwMQEhETMRMzIWFhUUBiMhESERIxEzAREzMjY1NCYjAWkB/fPyjNJv/9L+H/4D8/MC8PFndXZmAp4B7/5sX6twr9AB2/4lBI39qP6Oa1NRYwABACQAAAVSBI0AFQBZshIWFxESOQCwAEVYsAMvG7EDHj5ZsABFWLAULxuxFBA+WbAARViwDS8bsQ0QPlmwAxCxBAGwCitYIdgb9FmwANCyCBQDERI5sAgvsREBsAorWCHYG/RZMDEBITUhFSEVNjMyFhcRIxE0JiMiBxEjAX7+pgOt/qCGjt7rBPN0dIGF8wPJxMTtJs/L/pgBWnxpJv3nAAABAHb+nwRhBI0ACwBQsgMMDRESOQCwAi+wAEVYsAYvG7EGHj5ZsABFWLAKLxuxCh4+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsQgBsAorWCHYG/RZsAnQMDEhIREjESERMxEhETMEYf6K8/5+8wIF8/6fAWEEjfw2A8oAAAIAdgAABCgEjQALABQAYbIIFRYREjmwCBCwDNAAsABFWLAKLxuxCh4+WbAARViwCC8bsQgQPlmwChCxAAGwCitYIdgb9FmyAwoIERI5sAMvsAgQsQwBsAorWCHYG/RZsAMQsRIBsAorWCHYG/RZMDEBIRUzFhYQBiMhESEBMjY1NCYnIxEDsv23/M/0+Nn+HwM8/qhoc3Bm9gPL4APE/qjMBI38NmNUT10B/pwAAAIAJ/6vBRUEjQAPABUAXbITFhcREjmwExCwBdAAsA0vsABFWLAFLxuxBR4+WbAARViwCy8bsQsQPlmxAAGwCitYIdgb9FmwB9CwCNCwDRCwCtCwCBCwENCwEdCwBRCxEgGwCitYIdgb9FkwMTc+AjcTIREzESMRIREjEyEhESEHAoJKQiMFDAM9lvL89/MBAXQB8P6hBw3DUYa0fgHB/Db97AFR/q8CFAMG/P6uAAEAGgAABh8EjQAVAJ+yARYXERI5ALAARViwES8bsREePlmwAEVYsA4vG7EOHj5ZsABFWLAKLxuxCh4+WbAARViwBi8bsQYQPlmwAEVYsAMvG7EDED5ZsABFWLAVLxuxFRA+WbIMAw4REjmwDC+yPwwBcbJfDAFyss8MAXG0rwy/DAJdtI8MnwwCcrAP0LEBAbAKK1gh2Bv0WbAE0LIIDwQREjmyEwEPERI5MDEBIxEjESMDIQEBIRMzETMRMxMhAQEhA/Vf82D8/tMBXP7EAR73VPNU9wEe/sIBXv7TAdX+KwHV/isCVAI5/iAB4P4gAeD90P2jAAEAQv/wA+cEnQAnAI2yJigpERI5ALAARViwCi8bsQoePlmwAEVYsBYvG7EWED5ZsAoQsQMBsAorWCHYG/RZsgYKFhESObImChYREjmwJi+yzyYBcbI/JgFxtK8mvyYCXbL/JgFxsg8mAXKyXyYBcrEjAbAKK1gh2Bv0WbIQIyYREjmyHBYKERI5sBYQsR4BsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYWFRQEIyImJyY1MxYzMjY1NCcjNTM2AuJwa1tm8/PD2PRuXW9u/v7cXa8/fPMLynd04JSaxwNDRk9GPJSzp5ZbiickkVuftS0vW5+TV0imA7AEAAABAHYAAARuBI0ACQBMsgAKCxESOQCwAEVYsAAvG7EAHj5ZsABFWLAILxuxCB4+WbAARViwBS8bsQUQPlmwAEVYsAMvG7EDED5ZsgQDABESObIJBQgREjkwMQEzESMRASMRMxEDe/Pz/e7z8wSN+3MDI/zdBI384AABAHYAAARABI0ADAB4sgANDhESOQCwAEVYsAgvG7EIHj5ZsABFWLAFLxuxBR4+WbAARViwAi8bsQIQPlmwAEVYsAwvG7EMED5ZsgYCBRESObAGL7I/BgFxsl8GAXKyzwYBcbSvBr8GAl20jwafBgJysQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBIQEBIQHTavPzYwE4AR3+cgGt/tEB1f4rBI3+IAHg/cX9rgAAAQAkAAAEVQSNABAAT7IEERIREjkAsABFWLAALxuxAB4+WbAARViwAS8bsQEQPlmwAEVYsAkvG7EJED5ZsAAQsQMBsAorWCHYG/RZsAkQsQwBsAorWCHYG/RZMDEBESMRIQMGAgYHIzc3NjY3EwRV8/6kDwxXqow6ASdiSgwWBI37cwPJ/p/t/v54Ac0EC6DmAisAAAEAH//sBDkEjQAPAESyABARERI5ALAARViwDy8bsQ8ePlmwAEVYsAIvG7ECHj5ZsABFWLAILxuxCBA+WbIBCA8REjmxCwGwCitYIdgb9FkwMQEXEyEBDgIjJzcXMjcBIQIpE/MBCv5wOFp+WmYBV2Az/lsBDgJLNwJ5/H5+aTgFwARhA38AAQB2/q8FJASNAAsAQ7IJDA0REjkAsAMvsABFWLAHLxuxBx4+WbAARViwCi8bsQoePlmwAEVYsAUvG7EFED5ZsQgBsAorWCHYG/RZsADQMDElMwMjESERMxEhETMEYsIU3fxD8wIF9MP97AFRBI38NgPKAAABAEEAAAQWBI0AEQBHsgQSExESOQCwAEVYsAkvG7EJHj5ZsABFWLAQLxuxEB4+WbAARViwAS8bsQEQPlmyDQEJERI5sA0vsQQBsAorWCHYG/RZMDEhIxEGIyImJxEzERQWMzI3ETMEFvOGgerwAfNveYKF8wGqJtLRAWb+nndsJgIfAAABAHYAAAYOBI0ACwBCsgcMDRESOQCwAEVYsAMvG7EDHj5ZsABFWLABLxuxARA+WbEEAbAKK1gh2Bv0WbADELAG0LAEELAI0LAGELAK0DAxISERMxEhETMRIREzBg76aPMBX/MBYPMEjfw2A8r8NgPKAAABAHb+rwbRBI0ADwBCsgsQERESOQCwAy+wAEVYsAcvG7EHHj5ZsABFWLAELxuxBBA+WbEAAbAKK1gh2Bv0WbAN0LAJ0LAHELAK0LAO0DAxJTMDIxEhETMRIREzESERMwYPwhTd+pbzAV/zAWD0w/3sAVEEjfw2A8r8NgPKAAACAAoAAAUbBI0ADAAVAGGyCBYXERI5sAgQsBTQALAARViwBy8bsQcePlmwAEVYsAMvG7EDED5ZsAcQsQUBsAorWCHYG/RZsgoHAxESObAKL7ADELENAbAKK1gh2Bv0WbAKELETAbAKK1gh2Bv0WTAxARQGByERITUhETMyFgEyNjU0JicjEQUb+c/+Ff6iAlLr2/n+MmZ1cWL5AX+r0gIDycT+bND+mmtTT2MC/o4A//8AdgAABakEjQAmAggAAAAHAeMEMgAAAAIAdgAABCgEjQALABQAT7IDFRYREjmwAxCwDNAAsABFWLAGLxuxBh4+WbAARViwBC8bsQQQPlmyBwQGERI5sAcvsRMBsAorWCHYG/RZsAQQsRQBsAorWCHYG/RZMDEBFAYjIREzETMyFhYBMjY1NCYnIxEEKP/S/h/z8ozSb/4yZnVxYvkBf6/QBI3+bF+r/tRrU09jAv6OAAABADz/8AQwBJ0AHQCKsgMeHxESOQCwAEVYsBIvG7ESHj5ZsABFWLAaLxuxGhA+WbIAGhIREjmxAwGwCitYIdgb9FmyCRIaERI5sAkvss8JAXGyPwkBcbRvCX8JAnG0rwm/CQJdsv8JAXGyDwkBcrJfCQFysQYBsAorWCHYG/RZsBIQsQsBsAorWCHYG/RZsg4SGhESOTAxARYWMzI2NyE1IQIjIgYHIzYkMzIAFxcUBgYjIiQnAS8NfHiCgAr+fwGAFvtyfQzzFAEE1uIBFwwBe+qb3P74DwGEcGKflMQBMWlwwtr+6PB1qf+I2roAAgB2//AGQQSdABMAIQCysgQiIxESObAEELAZ0ACwAEVYsBAvG7EQHj5ZsABFWLALLxuxCx4+WbAARViwAy8bsQMQPlmwAEVYsAgvG7EIED5Zsg0ICxESObANL7SvDb8NAl20bw1/DQJxsv8NAXGyDw0BcrSPDZ8NAnKyXw0BcrLPDQFxsj8NAXG0Hw0vDQJdss8NAXKxBgGwCitYIdgb9FmwEBCxFwGwCitYIdgb9FmwAxCxHgGwCitYIdgb9FkwMQEQACMiACcjESMRMxEzNgAzMgARJzQmIyIGFRUUFjMyNjUGQf7f7d7+4hO88vK8FAEd3PABIPKWiIaYmYeIlAIs/vj+zAEQ4v4eBI3+GOkBD/7H/vUIt8DAtzWyx8O2AAACAEMAAAQSBI0ADAAVAFyyBhYXERI5sAYQsBDQALAARViwBy8bsQcePlmwAEVYsAkvG7EJED5ZshEJBxESObARL7EKAbAKK1gh2Bv0WbIBChEREjmwCRCwDNCwBxCxEgGwCitYIdgb9FkwMTMBJjU0NjMhESMRIwMTFBYzMxEjIgZDARbW8NMBzPPx5i5ha93dYWsCClbRo7n7cwG8/kQDIkpZAUpXAAABAAoAAAP/BI0ADQBSsgEODxESOQCwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhA+WbIHAggREjmwBy+xBAewCitYIdgb9FmwAdCwCBCxCwGwCitYIdgb9FmwBxCwDNAwMQEjESMRIzUzESEVIREzAqfW89TUAyH90tYB5v4aAeaqAf3E/scAAAEAGv6vBm0EjQAZAKayCBobERI5ALADL7AARViwES8bsREePlmwAEVYsAUvG7EFED5ZsABFWLAJLxuxCRA+WbAARViwDS8bsQ0QPlmyFwkRERI5sBcvsj8XAXGyXxcBcrLPFwFxtK8XvxcCXbSPF58XAnKxBwGwCitYIdgb9FmyAAcXERI5sAUQsQEBsAorWCHYG/RZsAcQsAvQsg8XBxESObAXELAS0LARELAU0LAY0DAxARMzESMRIwMjESMRIwMhAQEhEzMRMxEzEyEEwe6+0Kv9X/Ng/P7TAVz+xAEe91TzVPcBHgJd/mX97QFRAdX+KwHV/isCVAI5/iAB4P4gAeAAAQB2/q8EfASNABAAirIAERIREjkAsAQvsABFWLAMLxuxDB4+WbAARViwDy8bsQ8ePlmwAEVYsAkvG7EJED5ZsABFWLAGLxuxBhA+WbINCQwREjmwDS+yPw0BcbJfDQFyss8NAXG0rw2/DQJdtI8Nnw0CcrEIAbAKK1gh2Bv0WbIACA0REjmwBhCxAQGwCitYIdgb9FkwMQEBMxEjESMBIxEjETMRMwEhApMBIcjQm/7CavPzYwE4AR0CUv5w/e0BUQHV/isEjf4gAeAAAQB2AAAE/gSNABQAgbIFFRYREjkAsABFWLAULxuxFB4+WbAARViwBi8bsQYePlmwAEVYsBEvG7ERED5ZsABFWLAKLxuxChA+WbIAERQREjmwAC+yPwABcbJfAAFyss8AAXG0rwC/AAJdtI8AnwACcrAE0LAAELEQAbAKK1gh2Bv0WbAM0LIIDAAREjkwMQEzNTMVMwEhAQEhASMVIzUjESMRMwFpR6M3ATgBHP5yAa7+0f7CPqNH8/MCrd7eAeD9xP2vAdXLy/4rBI0AAQAkAAAFTgSNAA4Ah7IJDxAREjkAsABFWLAHLxuxBx4+WbAARViwCi8bsQoePlmwAEVYsAIvG7ECED5ZsABFWLAOLxuxDhA+WbIIAgcREjmwCC+yPwgBcbJfCAFyss8IAXG0rwi/CAJdtI8InwgCcrEBAbAKK1gh2Bv0WbAHELEEAbAKK1gh2Bv0WbIMAQgREjkwMQEjESMRITUhETMBIQEBIQLhavP+oAJTYwE4AR3+cgGt/tEB1f4rA8rD/iAB4P3E/a8AAgBP/+sFmASlACMALgCQshUvMBESObAVELAk0ACwAEVYsBsvG7EbHj5ZsABFWLALLxuxCx4+WbAARViwBC8bsQQQPlmwAEVYsAAvG7EAED5ZsgIEGxESObACL7ALELEMAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbAAELEjAbAKK1gh2Bv0WbACELAm0LAbELEsAbAKK1gh2Bv0WTAxBSInBiMgAAM1NAAzFSIGFRUUFjMzNyYDNTQSMzISFxUQBxYzARAXNjc1NCYjIhEFmOOukan+2v6sBAEI23F/y8AbG8AC3L/G3QGjX1z9lL6iAVNbsxA5PgE8ARg6/gEuzLSxJsvNAqoBHizqAQ3+/OxI/v+tCwHS/vRvePM1oJD+0v//AAUAAAQ2BI0AJgHTAAAABwImADv+1QABABX+rwSLBI0ADwBbsgoQERESOQCwBy+wAEVYsAEvG7EBHj5ZsABFWLAPLxuxDx4+WbAARViwCy8bsQsQPlmwAEVYsAkvG7EJED5ZsgAPCxESObEEAbAKK1gh2Bv0WbIKCw8REjkwMQETIQEBMxEjESMDAyEBASECJ/IBHP6JAQnEz5L/+v7kAYH+iAEaAvoBk/2+/nf97QFRAZn+ZwJLAkIAAAEAJP6vBi4EjQAPAF6yCRARERI5ALACL7AARViwCC8bsQgePlmwAEVYsA4vG7EOHj5ZsABFWLAELxuxBBA+WbEAAbAKK1gh2Bv0WbAIELEGAbAKK1gh2Bv0WbAK0LAL0LAAELAM0LAN0DAxJTMDIxEhESE1IRUhESERMwVqxBTe/ET+pAOi/qwCBvLD/ewBUQPJxMT8+gPKAAABAEEAAAQWBI0AFwBQsgQYGRESOQCwAEVYsAwvG7EMHj5ZsABFWLAWLxuxFh4+WbAARViwAS8bsQEQPlmyEAEMERI5sBAvsQcBsAorWCHYG/RZsATQsBAQsBPQMDEhIxEGBxUjNSYmJxEzERQWFzUzFTY3ETMEFvNMVqPMzwLzVFajSljzAaoWCszIDdG/AWr+n2tpDPPyCRgCHwABAHYAAARLBI0AEQBHsgQSExESOQCwAEVYsAEvG7EBHj5ZsABFWLAQLxuxEBA+WbAARViwCS8bsQkQPlmyBBABERI5sAQvsQ0BsAorWCHYG/RZMDETMxE2MzIWFREjETQmIyIHESN284aA7e/zdXSBhfMEjf5WJtbR/p4BYXxpJv3gAAACAAr/8AWoBKMAGwAjAGeyDSQlERI5sA0QsB3QALAARViwDi8bsQ4ePlmwAEVYsAAvG7EAED5ZsiAOABESObAgL7ESAbAKK1gh2Bv0WbAD0LAgELAK0LAAELEVAbAKK1gh2Bv0WbAOELEcAbAKK1gh2Bv0WTAxBSAAJyYmNTMUFhc+AjMgABEVIRIhMjc3FwYGAyIGByE1NCYDyf76/sAMrr/BVFgJj/GRAQABF/zAEgFPhnMvQTvFoYCgCAJMlRABEeoL3btddgyS5H7+5f73lf7QKxK6ISwD7qWMFoaVAAIAT//wBIEEowAWAB4AYbIIHyAREjmwCBCwF9AAsABFWLAALxuxAB4+WbAARViwCC8bsQgQPlmyDQAIERI5sA0vsAAQsRABsAorWCHYG/RZsAgQsRcBsAorWCHYG/RZsA0QsRoBsAorWCHYG/RZMDEBIAAXFRQGBiMgABE1ISYmIyIHByc2NhMyNjchFRQWAjkBCwE7Aoz5lv7+/usDPwezpoZ2LUFAyZiBngr9tJQEo/7c+Xqb+YgBHAEIlZaaLBG6Iiv8EqOOFoaVAAEAQv/sA+gEjQAZAGyyEhobERI5ALAARViwAi8bsQIePlmwAEVYsAsvG7ELED5ZsAIQsQABsAorWCHYG/RZsgQCABESObIZCwIREjmwGS+wBdCyDwsCERI5sAsQsRIBsAorWCHYG/RZsBkQsRgHsAorWCHYG/RZMDEBITUhFwEWFhUUBCMiJjUzFhYzMjY1NCMjNQKN/d4DUgH+xqLC/wDf0PfzBHFlc3PxfQPJxJv+wBS/i6jAuaFJUFpTsLsAAAMAT//wBG8EnQAOABUAHACBsgMdHhESObADELAP0LADELAW0ACwAEVYsAsvG7ELHj5ZsABFWLADLxuxAxA+WbALELEPAbAKK1gh2Bv0WbITCwMREjl8sBMvGLRgE3ATAl20MBNAEwJdsvATAV2yABMBcbADELEWAbAKK1gh2Bv0WbATELEZAbAKK1gh2Bv0WTAxARAAIyIAETU0EjYzMgARASIGByEmJgMyNjchFhYEb/7f7ez+2oXwm/ABIP3weZQOAjYOk3h5kQ79zA+VAiz++P7MATUBDC6sAQeL/sf+9QF/nZWVnfzbnZOTnQABADgAAAQaBJ0AJwCysiUoKRESOQCwAEVYsB0vG7EdHj5ZsABFWLAMLxuxDBA+WbIGHQwREjmwBi+yDwYBXbAB0LABL7LPAQFdQAkfAS8BPwFPAQRdsgABAV2xAgKwCitYIdgb9FmwBhCxBwKwCitYIdgb9FmwDBCxCgGwCitYIdgb9FmwDtCwD9CwBxCwEdCwBhCwE9CwAhCwFtCwARCwGNCwHRCxJAGwCitYIdgb9FmyISQBERI5sgwhAV0wMQEhFSEXFSEVIQYHIQchNTM2NyM1MzUnIzUzJyY2MzIWFSM0JiMiBhcBxAGD/oIDAXv+cxImApgB/GUKNBKWoQOemQEG2L/E1/NUU01XBQK6kkIWk0U1w8MObJMOSpInzu7QtlpnfnkAAAEARv/wA7AEngAiAKSyCiMkERI5ALAARViwFi8bsRYePlmwAEVYsAkvG7EJED5ZsiIWCRESObAiL7IPIgFdtBAiICICXbEAArAKK1gh2Bv0WbAJELEEAbAKK1gh2Bv0WbAAELAM0LAiELAO0LAiELAT0LATL7LPEwFdth8TLxM/EwNdsgATAV2xEAKwCitYIdgb9FmwFhCxGwGwCitYIdgb9FmwExCwHdCwEBCwH9AwMQEhFhYzMjcXBiMiJCcjNTM1IzUzNjYzMhcHJiMiByEVIRUhA07+gxF7b1B5G3Zu1P7/GpeSkpga/9NsehZbddYiAXz+fQGDAYRqaBy/H9DEklyTw9YgvxzWk1wAAAQAdgAAB8cEngADAA8AHQAnAK2yHigpERI5sB4QsAHQsB4QsATQsB4QsBDQALAARViwJi8bsSYePlmwAEVYsCQvG7EkHj5ZsABFWLAGLxuxBh4+WbAARViwIS8bsSEQPlmwAEVYsB8vG7EfED5ZsAYQsA3QsA0vsALQsAIvtgACEAIgAgNdsQECsAorWCHYG/RZsA0QsRMCsAorWCHYG/RZsAYQsRoCsAorWCHYG/RZsiAkIRESObIlHyYREjkwMSUhNSEBNDYgFhUVFAYgJjUXFBYzMjY3NTQmIyIGFQEjAREjETMBETMHiP3FAjv9ir8BNsC+/srBr1pTUFgCXU9OXf6m8v308/MCDPLIlQHylrm4nEiWuLibBVdlYlRTV2RjW/y0Axv85QSN/OQDHAACACgAAASqBI0AFQAeAI+yDR8gERI5sA0QsBfQALAARViwDC8bsQwePlmwAEVYsAMvG7EDED5ZsgYDDBESObAGL7EFAbAKK1gh2Bv0WbAB0LAGELAK0LAKL7YPCh8KLwoDXbaPCp8KrwoDXbQfCi8KAnGxCQGwCitYIdgb9FmwE9CwBhCwFNCwChCwFtCwDBCxHgGwCitYIdgb9FkwMSUhFSM1IzUzNSM1MxEhMhYQBgchFSEBMzI2NTQmIyMC9v7189DQ0NAB69H27cj+9gEL/vX4YXN1XvmZmZm2TbcCOtP+tM0FTQEEZ1VWZQAAAQA3//UCqQMgACQAgrIeJSYREjkAsABFWLANLxuxDRo+WbAARViwFy8bsRcQPlmyABcNERI5fLAALxi0UABgAAJxtoAAkACgAANdsA0QsQYCsAorWCHYG/RZsgoABhESObAAELEkArAKK1gh2Bv0WbISJAAREjmwFxCxHgKwCitYIdgb9FmyGyQeERI5MDEBMzI1NCYjIgYVIzQ2MzIWFRQHFhUUBiMiJjUzFBYzMjY1NCcjAQxRhDY+MEG6pYKPo4eVsY+Hq7pFPD89hlwB0mEjNScjY3x5aXczKY5qfn9xJjU3KmUBAAIANQAAAr4DFQAKAA4ASgCwAEVYsAkvG7EJGj5ZsABFWLAELxuxBBA+WbIBCQQREjmwAS+xAgKwCitYIdgb9FmwBtCwARCwC9CyCAsGERI5sg0JBBESOTAxATMVIxUjNSEnATMBMzUHAl9fX7v+mgkBbb3+i7oOATqXo6N5Afn+JfIWAAEAT//1Aq4DFQAaAG2yDRscERI5ALAARViwAi8bsQIaPlmwAEVYsA0vG7ENED5ZsAIQsQMCsAorWCHYG/RZsgcCDRESObAHL7EYArAKK1gh2Bv0WbIFGAcREjmwDRCxEwKwCitYIdgb9FmyERMYERI5shoYExESOTAxExMhFSEHNjMyFhUUBiMiJiczFjMyNTQmIyIHYjQB7P6sFD5Hg4yjjIGtArkFcnVDQkM1AX8BlpaUG4Z6eJmEY1J9OEQoAAIATf/1ArkDIgATAB4AXrIUHyAREjmwFBCwDNAAsABFWLAALxuxABo+WbAARViwDC8bsQwQPlmwABCxAQKwCitYIdgb9FmyBgwAERI5sAYvsRQCsAorWCHYG/RZsAwQsRoCsAorWCHYG/RZMDEBFSIGBzYzMhYVFAYjIiY1NTQ2MwMiBgcVFDMyNjU0AjKRiQ1Ha3WHqIaTq/Deli1CD381RAMimV9iRY56d5mnmzHS6P5XJBckkUY2dAAAAQA2AAACrgMVAAYAMwCwAEVYsAUvG7EFGj5ZsABFWLACLxuxAhA+WbAFELEEArAKK1gh2Bv0WbIABAUREjkwMQEBIwEhNSECrv6txAFT/kwCeAKs/VQCf5YAAwBL//UCqgMgABMAHAAkAJmyByUmERI5sAcQsBTQsAcQsCLQALAARViwES8bsREaPlmwAEVYsAcvG7EHED5ZsiIHERESOXywIi8YtoAikCKgIgNdtFAiYCICcbQAIhAiAnG0QCJQIgJdtNAi4CICcbEZArAKK1gh2Bv0WbICIhkREjmyDBkiERI5sAcQsRQCsAorWCHYG/RZsBEQsR8CsAorWCHYG/RZMDEBFAcWFRQGIyImNTQ3JjU0NjMyFgEyNjQmIgYUFhM0IhUUFjI2ApdxhKGOjKSEcZuBgpv+5DVAQWpAQJfEM2AxAkF0Nz2Aanp5a4A9N3Rpdnb94DNaMDBaMwGrVlYnMDAAAAIARv/3AqMDIAATAB8AY7IUICEREjmwFBCwCNAAsABFWLAILxuxCBo+WbAARViwEC8bsRAQPlmyAhAIERI5fLACLxiwEBCxEQKwCitYIdgb9FmwAhCxFAKwCitYIdgb9FmwCBCxGgKwCitYIdgb9FkwMQEGIyImNTQ2MzIWFxUUBgcjNTI2JzI3NTQmIyIGFRQWAedCWn6HqoSLogLc4BOPeWNOI0I0M0E8ATY5in14pKaXO9fZAZNSrDRFSEFOOTdEAAABAJAChwMtAzEAAwASALACL7EBB7AKK1gh2Bv0WTAxASE1IQMt/WMCnQKHqgAAAwCWBEgCogaVAAMADwAbAFAAsA0vsBnQsBkvsQcJsAorWCHYG/RZsALQsAIvsADQsAAvQA8PAB8ALwA/AE8AXwBvAAddsAIQsAPQGbADLxiwDRCxEwmwCitYIdgb9FkwMQEzByMHNDYzMhYVFAYjIiY3FBYzMjY1NCYjIgYBvOb1lYJuTkxsaU9Ra2M0JSQwMCQlNAaVwt5OZGVNSmNiSyUxMSUnMzMAAQB2AAADtQSNAAsAUQCwAEVYsAYvG7EGHj5ZsABFWLAELxuxBBA+WbILBgQREjmwCy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FkwMQEhESEVIREhFSERIQNf/goCTPzBAzz9twH2Afj+ysIEjcT+8gAAAwAK/koEGwROACkANgBDAKCyCERFERI5sAgQsDDQsAgQsDrQALAARViwJi8bsSYcPlmwAEVYsBYvG7EWEj5ZsCYQsCjQsCgvsQADsAorWCHYG/RZsggWJhESObAIL7IPFggREjmwDy+xNQGwCitYIdgb9FmyGzUPERI5sh8IJhESObAWELEwAbAKK1gh2Bv0WbAIELE6AbAKK1gh2Bv0WbAmELFBAbAKK1gh2Bv0WTAxASMWFRUUBgYjIicGFRQXMxYWFRQGBiMiJDU0NyY1NDcmJjU1NDYzMhchAQYGFRQWMzI2NTQnJQMUFjMyNjU1NCYiBhUEG4o6c86AUUUlc8LDyo/6mtn+9bYydVpk/MdVSwFx/TAkMYhyhqyT/upAellYd3W4dQOgVWkWZKlfEiMvSgMBmo5YpmKbeaVZMkh3UTGeXxaiyhT75RNIMEJNXkBrCQICs0tmZ04SSmZmTQAAAgBW/+sEXwROABAAHQBwshseHxESObAbELAJ0ACwAEVYsAkvG7EJHD5ZsABFWLAMLxuxDBw+WbAARViwAi8bsQIQPlmwAEVYsBAvG7EQED5ZsgAJAhESObILCQIREjmwAhCxFAGwCitYIdgb9FmwCRCxGwGwCitYIdgb9FkwMSUGIyICNTUQEjMyFzczAxMjARQWMzI2NzUmJiMiBgNjbvLH5ujH6XEc3Wxz3f3HfHRgfBcRfWNzf8TZASD0DwEKATbXw/3i/eQB+aCsq6YvpbnFAAACAJsAAATyBbAAFgAeAGOyGB8gERI5sBgQsATQALAARViwAy8bsQMgPlmwAEVYsAEvG7EBED5ZsABFWLAPLxuxDxA+WbIXAwEREjmwFy+xAAGwCitYIdgb9FmyCQAXERI5sAMQsR0BsAorWCHYG/RZMDEBESMRITIWFRQHFhMVFBcVISYnNTQmIyUhMjY1NCEhAZf8Ain1//flBUf+/DsEe3D+0wEUkIH++P7jAlb9qgWw2c3jZUX+9nOpPRoxuHl0gMpxbeYAAAEAmwAABTAFsAAMAFkAsABFWLAELxuxBCA+WbAARViwCC8bsQggPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIGAgQREjmwBi+yHwYBcbEBAbAKK1gh2Bv0WbIKAQYREjkwMQEjESMRMxEzASEBASECQ6z8/IsBrAE2/gwCIP7QAnD9kAWw/ZwCZP1H/QkAAQCBAAAENQYAAAwAVACwAEVYsAQvG7EEIj5ZsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgcIAhESObAHL7EAAbAKK1gh2Bv0WbIKAAcREjkwMQEjESMRMxEzASEBASEB4m/y8mkBDwEc/p8Bj/7mAdn+JwYA/JwBnv4R/bUAAAEAmwAABRIFsAALAEwAsABFWLADLxuxAyA+WbAARViwBy8bsQcgPlmwAEVYsAEvG7EBED5ZsABFWLAKLxuxChA+WbIAAwEREjmyBQMBERI5sgkABRESOTAxAREjETMRMwEhAQEhAZf8/AYCGQE4/aUCf/7IApr9ZgWw/X8Cgf01/RsAAAEAgQAABCIGGAAKAEwAsABFWLADLxuxAyI+WbAARViwBi8bsQYcPlmwAEVYsAEvG7EBED5ZsABFWLAJLxuxCRA+WbIABgEREjmyBQYBERI5sggABRESOTAxAREjETMRASEBASEBc/LyAVkBKv5QAdz+2wHr/hUGGPyEAZ7+DP26AAACAHYAAAQqBI0ACwATAEiyExQVERI5sBMQsALQALAARViwAS8bsQEePlmwAEVYsAAvG7EAED5ZsAEQsQwBsAorWCHYG/RZsAAQsQ0BsAorWCHYG/RZMDEzESEyBBYXFRQGBCMDETMgEzUQJXYBe6QBA5ACj/75qIOCAUcG/skEjYr7nz2j/osDyfz5AVxDAWAIAAEAT//wBEMEnQAbAFCyAxwdERI5ALAARViwCy8bsQsePlmwAEVYsAMvG7EDED5Zsg8LAxESObALELESAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbIbAwsREjkwMQEGBCMiABE1NDY2MzIEFyMmJiMgERUUFjMyNjcEQhH+99ns/ux+7JzWAQQU8wx9cv7thod4fA0BhL/VASwBC0Sp/4rawnBp/o5IubVicAADAHYAAAQKBI0ADgAWAB8Ap7IeICEREjmwHhCwAtCwHhCwEdAAsABFWLABLxuxAR4+WbAARViwAC8bsQAQPlmyFwEAERI5sBcvtK8XvxcCXbRvF38XAnGy/xcBcbIPFwFytI8XnxcCcrJfFwFyss8XAXGyPxcBcbQfFy8XAl20vxfPFwJysQ8BsAorWCHYG/RZsggPFxESObAAELEQAbAKK1gh2Bv0WbABELEeAbAKK1gh2Bv0WTAxMxEhMhYVFAYHFhYVFAYjAxEzMjY1NCcnMzY2NTQmIyN2Aa/e61lbYHDi3eLkZmS0+tRbY2dlxgSNpZxPgyMXj2OjqwH7/sdVQZ4FqgJIRU9GAAIACQAABJQEjQAHAAoARwCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmyCQQCERI5sAkvsQABsAorWCHYG/RZsgoEAhESOTAxJSEHIwEzASMBIQMDP/4eX/UB198B1fb+BgFUqvn5BI37cwGyAboAAAEAlARpAakGKwAIAB2yCAkKERI5ALAARViwAC8bsQAiPlmwBNCwBC8wMQEXBgcHIzU0NgEmgz8CAdNVBitTbXyGhVm2AAACAHUE1AMABn4ADQARAF4AsAMvsAbQsAYvQAsPBh8GLwY/Bk8GBV2wAxCxCgawCitYIdgb9FmwBhCwDdCwDS+wBhCwEdCwES+wDtCwDi9ADw8OHw4vDj8OTw5fDm8OB12wERCwENAZsBAvGDAxARQGIyImNTMUFjMyNjUlMxcjAwCvlpWxsUxJR0z+lLdygAWxYXx6YzQ8PDTNwAAC/J0EvP7WBowAEwAXAHYAsAMvsAbQsAYvQA0PBh8GLwY/Bk8GXwYGXbADELAJ0LAJL7AGELENCLAKK1gh2Bv0WbADELEQCLAKK1gh2Bv0WbANELAT0LAGELAW0HywFi8YQAkPFh8WLxY/FgRdsBTQsBQvtj8UTxRfFANdtA8UHxQCXTAxARQGIyImIyIGFSc0NjMyFjMyNjUnMwcj/tZfRjiDKR8qZ19GLI4qHSyIw7aNBYJMaUYyJRxLbUYxJezUAAIAegTnBIsGkAAGAAoAWwCwAy+wBdCwBS+wANCwAC9ACQ8AHwAvAD8ABF2wAxCwAtAZsAIvGLIEAwAREjmwBtAZsAYvGLADELAJ0LAJL7AH0LAHL7YPBx8HLwcDXbAJELAK0BmwCi8YMDEBMwUjJwcjATMDIwGdoQEj1J+f1QMz3tidBeH6jo4Bqf71AAAC/0wE2gNcBoMABgAKAFsAsAMvsATQGbAELxiwANAZsAAvGLADELAB0LABL7AG0LAGL0AJDwYfBi8GPwYEXbICAwYREjmwAxCwCNCwCC+wB9AZsAcvGLAIELAK0LAKL7YPCh8KLwoDXTAxASMnByMlMwUjAzMDXNWfn9QBI6H+h53X3QTajo76XAELAAIAdQTnBAoGywAGABUAYQCwAS+wA9CwAy+wBNAZsAQvGLAA0BmwAC8YsAMQsAXQsAUvQAkPBR8FLwU/BQRdsgIDBRESObABELAH0LAHL7AN0LANL7IIBw0REjmxDgawCitYIdgb9FmyFAgHERI5MDEBIycHIyUzFyc2NjU0IzcyFhUUBgcHA1zBs7LBARa7uQc/OIEHiYxJOAEE56Ki+nR9BRgdPmlZSzdBBzsAAAIAdQTnA1wG0QAGABoAjwCwAS+wA9CwAy+wBNAZsAQvGLAA0BmwAC8YsAMQsAXQsAUvQAkPBR8FLwU/BQRdsgIFAxESObAK0LAKL0AJPwpPCl8KbwoEXbAN0LANL0APDw0fDS8NPw1PDV8Nbw0HXbAKELAQ0LAQL7ANELEUBrAKK1gh2Bv0WbAKELEXBrAKK1gh2Bv0WbAUELAa0DAxASMnByMlMzcUBiMiJiMiBhUnNDYzMhYzMjY1A1zBs7LBASqTulk9MXskGylaWTwqfyYaLATnjo7t3z5fQiwbGEBgQS0cAAEAdgAAA5cFxAAHADOyAwgJERI5ALAARViwBi8bsQYePlmwAEVYsAUvG7EFED5ZsAYQsQIBsAorWCHYG/RZMDEBMxEhESMRIQKk8/3S8wIuBcT+Bfw3BI0AAAIAdQTTAwAGfgANABEAXgCwAy+wBtCwBi9ACw8GHwYvBj8GTwYFXbADELEKBrAKK1gh2Bv0WbAGELAN0LANL7AGELAQ0LAQL7AO0LAOL0APDw4fDi8OPw5PDl8Obw4HXbAQELAR0BmwES8YMDEBFAYjIiY1MxQWMzI2NSczByMDAK+WlbGxTElHTGW2qYAFsGF8emM0PDw0zsAAAAIAdQTVAvYHCAANABwAWwCwAy+wB9CwBy9ACw8HHwcvBz8HTwcFXbADELEKBrAKK1gh2Bv0WbAHELAN0LANL7AHELAO0LAOL7AU0LAUL7IPDhQREjmxFQywCitYIdgb9FmyGw4PERI5MDEBFAYjIiY1MxQWMzI2NScnNjY1NCM3MhYVFAYHBwL2r5GSr61QREVN3whIP5IHnp9ORAEFsGJ5eWI0OTozGXYCFxo2YFBELzoIOgD//wBLAo0CqgW4AwcBxwAAApgAEwCwAEVYsAovG7EKID5ZsBDQMDEA//8ANQKYAr4FrQMHAiAAAAKYABMAsABFWLAJLxuxCSA+WbAN0DAxAP//AE8CjQKuBa0DBwIhAAACmAAQALAARViwAS8bsQEgPlkwMf//AE0CjQK5BboDBwIiAAACmAATALAARViwAC8bsQAgPlmwFNAwMQD//wA2ApgCrgWtAwcCIwAAApgAEACwAEVYsAUvG7EFID5ZMDH//wBLAo0CqgW4AwcCJAAAApgAGQCwAEVYsBEvG7ERID5ZsBnQsBEQsB/QMDEA//8ARgKPAqMFuAMHAiUAAAKYABMAsABFWLAILxuxCCA+WbAa0DAxAAABAGv/6wUmBcUAHQBCsgweHxESOQCwAEVYsAwvG7EMID5ZsABFWLADLxuxAxA+WbAMELETAbAKK1gh2Bv0WbADELEaAbAKK1gh2Bv0WTAxAQYAIyIkAic1NBIkMzIAFyMmJiMiAhUVFBIzMjY3BSQX/tL5tv7coAGeASC3+wE0F/0Wo5CszNKskZsWAdrp/vq0AUXSPNUBSrT+8+mYkv7m7zTr/uSPlgABAGv/6wUmBcUAIABYsgwhIhESOQCwAEVYsAwvG7EMID5ZsABFWLADLxuxAxA+WbAMELESAbAKK1gh2Bv0WbADELEZAbAKK1gh2Bv0WbIgDAMREjmwIC+xHQGwCitYIdgb9FkwMSUGBCMiJAInNTQSJDMyBBcjAiEiAgcVFBIzMjY3ESE1IQUmRv7csMD+zq0CnwEjt/gBKx/5Lv7pqtMD6Lxkmx/+3QIfvF9ysgFI0THZAU+28OMBB/7l6TPs/t8wJAEbwAACAJsAAAUXBbAACwAVAEiyAxYXERI5sAMQsA/QALAARViwAS8bsQEgPlmwAEVYsAAvG7EAED5ZsAEQsQwBsAorWCHYG/RZsAAQsQ0BsAorWCHYG/RZMDEzESEyBBIXFRQCBAcDETMyEjU1NAIjmwG+yAFBsgOw/sDMxK7c+PHaBbCx/sPIOMz+v7IDBOT75gEO8CbqAQwAAAIAa//rBXIFxQARACAASLIEISIREjmwBBCwHdAAsABFWLANLxuxDSA+WbAARViwBC8bsQQQPlmwDRCxFQGwCitYIdgb9FmwBBCxHQGwCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFwc0AiMiAhUVFBYWMzISNwVypv7YtLL+2KoBpQEqtLIBJqgE+9ytqd9mtm6k2AoCw87+sLq6AU7JMcsBTcC3/rnGEuQBIv7b6CWT8YYBCdoAAAIAa/8DBXIFxQAUACMASLIIJCUREjmwCBCwINAAsABFWLAQLxuxECA+WbAARViwCC8bsQgQPlmwEBCxGAGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEUAgcXByUGIyIkAic1NBIkIAQSFwc0AiMiAhUVFBYWMzISNQVyl4nvpf7VQz6z/tqqAqcBKAFoASeoAfvcrareZrVvrtkCxsr+vWLAlPUNtwFNyy7QAVK7t/6vzgXsAR/+3e8dl/KEASD1AAABAJcAAALvBIwABgAzALAARViwBS8bsQUePlmwAEVYsAAvG7EAED5ZsgQABRESObAEL7EDAbAKK1gh2Bv0WTAxISMRBTUlMwLv8/6bAjkfA2l6zdAAAAEAbgAABCwEngAZAFuyCRobERI5ALAARViwES8bsREePlmwAEVYsAAvG7EAED5ZsRgBsAorWCHYG/RZsgIYABESObIDABEREjmwERCxCQGwCitYIdgb9FmyDAARERI5shcRABESOTAxISE1ATY2NTQmIyIGFSM0NjYzMhYVFAYHASEELPxgAftGOWlaZ3vzedeFyupXbv6xAkmfAbo/Y0BIWnhgc7xqt5xan2b+1gAAAQAP/qMD8gSNABkAXLISGhsREjkAsAwvsABFWLACLxuxAh4+WbEAAbAKK1gh2Bv0WbIEAAIREjmyBQwCERI5sAUvsAwQsREBsAorWCHYG/RZsAUQsRcDsAorWCHYG/RZshkXBRESOTAxASE1IRUBFhYVFAYEIyInNxYzMjY1NCYjIzUCnv26A3f+navbkP7ysMfOOZ2tpMSqt0gDycSP/oAa97Cj84Rntli4kpaSewACADX+xASLBIwACgAOAFMAsABFWLAJLxuxCR4+WbAARViwAi8bsQIQPlmwAEVYsAYvG7EGED5ZsQABsAorWCHYG/RZsAYQsAXQsAUvsggGABESObAAELAM0LINCQIREjkwMSUzFSMRIxEhJwEzASERBwPVtrby/VgGAqb6/WQBqhfCw/7FATuUA/n8NgKAKgABAGb+oAQeBIwAHABgshkdHhESOQCwDi+wAEVYsAEvG7EBHj5ZsQMBsAorWCHYG/RZsgcBDhESObAHL7EZAbAKK1gh2Bv0WbIFBxkREjmwDhCxEwGwCitYIdgb9FmyERMZERI5shwZExESOTAxExMhFSEDNjc2EhUUBgYjIic3FjMyNjU0JiMiBgeHWgMp/ZotZYbP7YX1peS1SoS9j6uOeFNmGwF1AxfS/qoyAgL+9+SY84J1smOzlIeiNTsAAQBD/sQEEASMAAYAJgCwAS+wAEVYsAUvG7EFHj5ZsQMBsAorWCHYG/RZsgADBRESOTAxAQEjASE1IQQQ/bbzAj79MgPNBAb6vgUFwwAAAgB1BNAC9wbcAAwAIAB+ALADL7AG0LAGL0ALDwYfBi8GPwZPBgVdsAMQsQkGsAorWCHYG/RZsAYQsAzQsAwvsAYQsBDQsBAvsBPQsBMvQA0PEx8TLxM/E08TXxMGXbAQELAW0LAWL7ATELEaCLAKK1gh2Bv0WbAQELEdCLAKK1gh2Bv0WbAaELAg0DAxARQGICY1MxQWMzI2NRMUBiMiJiMiBhUnNDYzMhYzMjY1Avew/t6wr0xGSEqQX0c4gSofKmhhRS+ILB4sBbBle3tlNTo8MwEPS2tHMiUbTWxHMiQAAAEAXP6aAU8AtQADABIAsAQvsALQsAIvsAHQsAEvMDEBIxEzAU/z8/6aAhsAAgBP//AGbQSdABQAHgCWshYfIBESObAWELAL0ACwAEVYsAovG7EKHj5ZsABFWLALLxuxCx4+WbAARViwAC8bsQAQPlmwAEVYsAIvG7ECED5ZsAsQsQ0BsAorWCHYG/RZshAACxESObAQL7ERAbAKK1gh2Bv0WbAAELETAbAKK1gh2Bv0WbACELEVAbAKK1gh2Bv0WbAKELEYAbAKK1gh2Bv0WTAxISEFIgARNTQSNjMFIRUhESEVIREhBTcRJyIGFRUUFgZt/Uf+rez+2oXwmwFTArj9twH2/goCTPv0zc+GmJkQATUBDC6sAQeLEMT+8sP+yg8IAxQJwLc1sscAAAIAc/60BFQEoAAYACQAVrIfJSYREjmwHxCwDNAAsBQvsABFWLAMLxuxDB4+WbAUELEAAbAKK1gh2Bv0WbIZFAwREjl8sBkvGLEFAbAKK1gh2Bv0WbAMELEfAbAKK1gh2Bv0WTAxBTI2NwYjIgI1NDY2MzIAERUUAgQjIic3FhMyNzU0JiMiBhUUFgHpmL0ZcqrR93vah/EBFJH+87KehC990bBSiH9th4qJyL5aARLlme2A/tH+9s7l/rKyPLYvAel4rKW0sZKKsAAB/7D+SwGOAM0ADQAvsgMODxESOQCwDi+wAEVYsAUvG7EFEj5ZsQoBsAorWCHYG/RZsA4QsA3QsA0vMDElERQHBiMiJzcWMzI1EQGOcFuVRjgOJD18zf73yGJPEcYMsgEF//8AOf6jBBwEjQEGAkwqAAAQALAARViwAi8bsQIePlkwMf//AGr+oAQiBIwBBgJOBAAAEACwAEVYsAEvG7EBHj5ZMDH//wAs/sQEggSMAQYCTfcAABMAsABFWLAJLxuxCR4+WbAN0DAxAP//AGYAAAQkBJ4BBgJL+AAAEACwAEVYsBEvG7ERHj5ZMDH//wBj/sQEMASMAQYCTyAAABAAsABFWLAFLxuxBR4+WTAx//8ANf/rBFgEoAEGAmXTAAATALAARViwCi8bsQoePlmwEdAwMQD//wBv/+wEMQW3AwYAGvoAABMAsABFWLAALxuxACA+WbAV0DAxAP//AFn+tAQ6BKABBgJT5gAAEwCwAEVYsAwvG7EMHj5ZsB/QMDEA//8AaP/sBCIFxAMGABwAAAAZALAARViwFS8bsRUgPlmwG9CwFRCwJdAwMQD//wDjAAADOwSMAAYCSkwA////tf5LAZMEOgIGAJwAAP///7X+SwGTBDoCBgCcAAD//wCPAAABggQ6AAYAjQAA////+/5cAYIEOgAmAI0AAAAGAKTSCv//AI8AAAGCBDoABgCNAAAAAQB2/+sEFgScACEAaLIBIiMREjkAsABFWLAVLxuxFR4+WbAARViwHy8bsR8QPlmwAEVYsBAvG7EQED5ZsB8QsQIBsAorWCHYG/RZsgofFRESObAKL7AZ0LEIA7AKK1gh2Bv0WbAVELENAbAKK1gh2Bv0WTAxJRYzMjY1NCYjIzUTJiMiFREjETY2MzIWFwMWFhUUBiMiJwHrS0hNXHx0VMpGUbHvAdHPeM1o+aGq2a98bNsxZVJYR6MBATn5/RwC8NfVYW/+1Bekga/KNgACAGL/6wSFBKAADQAaAEiyAxscERI5sAMQsBfQALAARViwCi8bsQoePlmwAEVYsAMvG7EDED5ZsAoQsREBsAorWCHYG/RZsAMQsRYBsAorWCHYG/RZMDEBEAAjIiYCNRAAMzIWEgc0JiAGFRUUFjMyNjcEhf7j857zggEf8p/ygfKb/vaZmoaFlwICPv7p/sSOAQzHARYBPo7+86e4x8i6LLXNxbQAAQA6AAAD6gWwAAYAMwCwAEVYsAUvG7EFID5ZsABFWLABLxuxARA+WbAFELEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNSED6v3U9AIs/UQDsAUp+tcE7cMAAgB8/+wERgYAAA8AGgBmshMbHBESObATELAM0ACwCS+wAEVYsAwvG7EMHD5ZsABFWLADLxuxAxA+WbAARViwBi8bsQYQPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInByMRMxE2MzISESc0JiMiBxEWMzI2BEbzx8BtEdLzabLM8POLe5pER5l6igIR9P7PjnoGAP3SfP7W/voIpruF/jeHvAAAAQBQ/+wEAAROAB0ATbIXHh8REjkAsABFWLAQLxuxEBw+WbAARViwCC8bsQgQPlmxAAGwCitYIdgb9FmyAwgQERI5shQQCBESObAQELEXAbAKK1gh2Bv0WTAxJTI2NzMOAiMiADU1NDY2MzIWFyMmJiMiBhUVFBYCQlp6BuQEesp05v7yeuGYw/QG5Ad4XHmFha5pT2awZAEr/hme+4fktF92s7IbrbAAAgBP/+wEFwYAABEAHABmshodHhESObAaELAE0ACwBy+wAEVYsAQvG7EEHD5ZsABFWLANLxuxDRA+WbAARViwCS8bsQkQPlmyBgQNERI5sgsEDRESObANELEVAbAKK1gh2Bv0WbAEELEaAbAKK1gh2Bv0WTAxEzQ2NjMyFxEzESMnBiMiJiY1NxQWMzI3ESYjIgZPcM2CrGrz0xFsu37LdPONe5RGRpJ9jQImn/2MdwIp+gB1iYz9mwGdwoEB133BAAACAE/+VgQXBE4AGwAmAIayHycoERI5sB8QsAzQALAARViwBC8bsQQcPlmwAEVYsAcvG7EHHD5ZsABFWLAMLxuxDBI+WbAARViwGC8bsRgQPlmyBgQYERI5sAwQsRIBsAorWCHYG/RZshASGBESObIWBBgREjmwGBCxHwGwCitYIdgb9FmwBBCxJAGwCitYIdgb9FkwMRM0NjYzMhc3MxEUACMiJic3FjMyNjU1BiMiJiY3FBYzMjcRJiMiBk9tzYW/aRDR/vvvVblJNYKQjoNqrn/McvOPeJVGRZR8jQImoPuNhnL8HPb+9i8tsEycmxZ3jPydn8CBAdl7wQACAEz/7ARVBE4ADwAZAEWyBBobERI5sAQQsBfQALAARViwBC8bsQQcPlmwAEVYsAwvG7EMED5ZsRIBsAorWCHYG/RZsAQQsRcBsAorWCHYG/RZMDETNDY2MzIAFRUUBgYjIgA1FxQWMjY1NCYiBkyC65bmASB/7Zjm/uHylfyTl/iVAief/Yv+zfwNnfyNATH+CaDExLWfxcYAAgB8/mAERAROABAAGwBwshkcHRESObAZELAN0ACwAEVYsA0vG7ENHD5ZsABFWLAKLxuxChw+WbAARViwBy8bsQcSPlmwAEVYsAQvG7EEED5ZsgYNBBESObILDQQREjmwDRCxFAGwCitYIdgb9FmwBBCxGQGwCitYIdgb9FkwMQEUBgYjIicRIxEzFzYzMhIXBzQmIyIHERYzMjYERG/IgbFs89kObLrB7wrxkXySREWTeJMCEZ79inT+AAXacYX+6+wnn8J4/hd4wwAAAgBP/mAEFgROABAAGwBtshkcHRESObAZELAE0ACwAEVYsAQvG7EEHD5ZsABFWLAHLxuxBxw+WbAARViwCS8bsQkSPlmwAEVYsA0vG7ENED5ZsgYEDRESObILBA0REjmxFAGwCitYIdgb9FmwBBCxGQGwCitYIdgb9FkwMRM0NjYzMhc3MxEjEQYjIgInNxQWMzI3ESYjIgZPb82Gt2sR0vNqqr72C/KTeJBGSIx+jwImovyKgm76JgH8cAEc4ieexXYB9HPGAAACAFP/7AQLBE4AFgAeAH+yCB8gERI5sAgQsBfQALAARViwCC8bsQgcPlmwAEVYsAAvG7EAED5ZshsIABESObAbL7S/G88bAl20XxtvGwJxtB8bLxsCcbKPGwFdtO8b/xsCcbEMB7AKK1gh2Bv0WbAAELEQAbAKK1gh2Bv0WbAIELEXAbAKK1gh2Bv0WTAxBSIANTU0NjYzMhIVFSEWFjMyNjcXBgYDIgYHITU0JgJ28v7PfeKL3fH9Pg+pjVWSMTo/vadmfBAB0HMUASj3IZ75i/7093uFnS8gpjI5A5+NfBpwfwACAFH+VgQEBE4AGQAkAIayIiUmERI5sCIQsAvQALAARViwAy8bsQMcPlmwAEVYsAYvG7EGHD5ZsABFWLALLxuxCxI+WbAARViwFy8bsRcQPlmyBQMXERI5sAsQsREBsAorWCHYG/RZsg8RFxESObIVAxcREjmwFxCxHQGwCitYIdgb9FmwAxCxIgGwCitYIdgb9FkwMRM0EjMyFzczERQAIyImJzcWMzI2NTUGIyICNxQWMzI3ESYjIgZR58O9axHQ/vrtV683NXWDjoJqrr7q8oFzl0NElHaAAib9ASuGcvwQ8v7+LiGwP5aUInYBL/aot4UB0X+1//8AWwAAArIFtQAGABWzAAADAF3/7wS3BJ0AHQAmADIAbLIsMzQREjmwLBCwE9CwLBCwH9AAsABFWLANLxuxDR4+WbAARViwAC8bsQAQPlmwAEVYsBovG7EaED5ZshQNGhESObAAELAesAorWNgb3FmyIQ0aERI5sioNGhESObANELAwsAorWNgb3FkwMQUiJjU0Njc3JyY1NDYzMhYVFAcHFzY1MxQHFyEnBicyNwMHBhUUFgMUFhc3NjU0JiMiBgH7uuRScjJAXL6UmbudSOg61IDJ/vRKm790WP1FQlwXOSo/SUI3Mz8RqoVVhk4iRWlzeZqge5JsMvBjhtygz0xdwy0BBDAwSD9KAsMpSiorNUEsOjwAAQADAAADngSNAA0APrIBDg8REjkAsABFWLAKLxuxCh4+WbAARViwBC8bsQQQPlmxAgGwCitYIdgb9FmyBgoEERI5sgwKBBESOTAxAQcRIRUhEQc1NxEzETcCbfoCK/zifX3z+gKdTP5xwgIIJpMmAfL+V0wAAAL/8QAABgMEjQAPABIAirIFExQREjmwBRCwEdAAsABFWLAKLxuxCh4+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5Zsg8KBBESOXywDy8YsQABsAorWCHYG/RZsAQQsQIBsAorWCHYG/RZshEKBBESObARL7EGAbAKK1gh2Bv0WbAKELEMAbAKK1gh2Bv0WbISCgQREjkwMQEhEyEVIQMhAyEBIRUhEyEFIQMFmP5FDAIa/P0K/oKD/vwCbQN3/fYLAcL8QAEWFAH+/sLAAQf++QSNwf70+QIFAAACAHYAAAPSBI0ADAAVAFmyCRYXERI5sAkQsA/QALAARViwAC8bsQAePlmwAEVYsAsvG7ELED5ZsgIACxESObACL7IPAAsREjmwDy+xCQGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FkwMRMzFTMyFhUUBgcjFSMTETMyNjU0Jid285XX/fbXnPPzmWtzdmMEjbfQqq7KAeMDEv6UX1VSZQEAAwBP/8kEbwS6ABYAHwAoAGqyBikqERI5sAYQsBzQsAYQsCXQALAARViwEi8bsRIePlmwAEVYsAYvG7EGED5ZshkSBhESObIaEgYREjmwEhCxHAGwCitYIdgb9FmyIhIGERI5siMGEhESObAGELElAbAKK1gh2Bv0WTAxARYXFRAAIyInByM3JgM1NBI2MzIXNzMBFBcBJiMiBhUhNCcBFjMyNjUD5IcE/t/tnnpMpIeQAYXwm6N7SKT82CgBm0NihpgCPCT+Z0JfiJQD+5r0Qf74/sxHbsObAQQ0rAEHi0xp/XKBWQJSNMC3d1n9sjDDtgACADEAAATXBI0AEwAXAI2yBRgZERI5sAUQsBTQALAARViwDC8bsQwePlmwAEVYsBAvG7EQHj5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmyEwwCERI5sBMvsg8TAV2xAA6wCitYIdgb9FmyFQwCERI5sBUvsQQBsAorWCHYG/RZsAAQsAjQsBMQsArQsBMQsA7QsAAQsBbQMDEBIxEjESERIxEjNTM1MxUhNTMVMwEhNSEE11ry/fPzWlrzAg3yWvynAg398wNP/LEB2/4lA0+qlJSUlP6lsQAAAQB2/ksEZwSNABMAW7ICFBUREjkAsABFWLAMLxuxDB4+WbAARViwDy8bsQ8ePlmwAEVYsAAvG7EAEj5ZsABFWLAKLxuxChA+WbAAELEFAbAKK1gh2Bv0WbIJDAAREjmyDgwAERI5MDEBIic3FjMyNTUBESMRMwERMxEGBgMHRzgOJD58/fXz8wIM8gG4/ksRxgyyOQMa/OUEjfzkAxz7MrLCAP//AEcCCQJUAs0CBgARAAAAAv/3AAAE8AWwAA8AHQCFshAeHxESObAQELAG0ACwAEVYsAUvG7EFID5ZsABFWLAALxuxABA+WbIDAAUREjmwAy+yzwMBXbI/AwFxsm8DAXGyHwMBcbKfAwFdsg8DAXKxAgewCitYIdgb9FmwEdCwABCxEgGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwAxCwHdAwMTMRIzUzESEyBBIVFRQCBCMTIxEzMjY1NTQmIyMRM7K7uwGuwQErpKX+z8U/5aPL1c7EseUCjKoCeqz+xMxJz/7GqgKM/j798Ebt+v5SAAL/9wAABPAFsAAPAB0AhbIQHh8REjmwEBCwBtAAsABFWLAFLxuxBSA+WbAARViwAC8bsQAQPlmyAwAFERI5sAMvss8DAV2yPwMBcbJvAwFxsh8DAXGynwMBXbIPAwFysQIHsAorWCHYG/RZsBHQsAAQsRIBsAorWCHYG/RZsAUQsRsBsAorWCHYG/RZsAMQsB3QMDEzESM1MxEhMgQSFRUUAgQjEyMRMzI2NTU0JiMjETOyu7sBrsEBK6Sl/s/FP+Wjy9XOxLHlAoyqAnqs/sTMSc/+xqoCjP4+/fBG7fr+UgAB/9QAAAQWBgAAGAB2sgwZGhESOQCwFS+wAEVYsAQvG7EEHD5ZsABFWLAHLxuxBxA+WbAARViwDy8bsQ8QPlmyLxUBXbIPFQFdshgPFRESObAYL7EAB7AKK1gh2Bv0WbICBA8REjmwBBCxDAGwCitYIdgb9FmwABCwEdCwGBCwE9AwMQEjETYzIBMRIxE0JiMiBxEjESM1MzUzFTMCced3tgFaBfNhXpJI88PD8+cEx/79iv51/T0CunBdgvz7BMeqj48AAQAtAAAEsAWwAA8ATgCwAEVYsAovG7EKID5ZsABFWLACLxuxAhA+WbIPCgIREjmwDy+xAAewCitYIdgb9FmwBNCwDxCwBtCwChCxCAGwCitYIdgb9FmwDNAwMQEjESMRIzUzESE1IRUhETMDuc/709P+PgSD/jrPAxL87gMSqgEozMz+2AAB/+j/7AKFBUEAHAB1sgAdHhESOQCwAEVYsBsvG7EbHD5ZsABFWLARLxuxERA+WbAbELAB0LAbELEYAbAKK1gh2Bv0WbAE0LAbELAX0LAXL7AF0LAFL7AXELEUB7AKK1gh2Bv0WbAI0LARELEMAbAKK1gh2Bv0WbAbELAc0LAcLzAxAREzFSMVMxUjERQWMzI3FQYjIBERIzUzNSM1MxEBrb+/2NgxPyorU03+6NLSsrIFQf75tKWq/vM+Nwq8FwE1ARaqpbQBBwD//wASAAAFQgc2AiYAJQAAAQcARAEjATYAEwCwAEVYsAQvG7EEID5ZsAzcMDEA//8AEgAABUIHNgImACUAAAEHAHUBwgE2ABMAsABFWLAFLxuxBSA+WbAN3DAxAP//ABIAAAVCBzcCJgAlAAABBwCeAMMBNgATALAARViwBC8bsQQgPlmwD9wwMQD//wASAAAFQgcsAiYAJQAAAQcApQDFATcACQCwBC+wFtwwMQD//wASAAAFQgcCAiYAJQAAAQcAagDuATYAFgCwAEVYsAQvG7EEID5ZsBLcsBvQMDH//wASAAAFQgeUAiYAJQAAAQcAowFYAWoADACwBC+wENywFdAwMf//ABIAAAVCB7ECJgAlAAAABwInAV4BHP//AGb+PATrBcQCJgAnAAAABwB5Acn/+///AJQAAARMBz0CJgApAAABBwBEAOgBPQATALAARViwBi8bsQYgPlmwDdwwMQD//wCUAAAETAc9AiYAKQAAAQcAdQGHAT0AEwCwAEVYsAYvG7EGID5ZsA7cMDEA//8AlAAABEwHPgImACkAAAEHAJ4AiAE9ABMAsABFWLAGLxuxBiA+WbAQ3DAxAP//AJQAAARMBwkCJgApAAABBwBqALMBPQAWALAARViwBi8bsQYgPlmwE9ywHNAwMf///8gAAAGgBz0CJgAtAAABBwBE/5cBPQATALAARViwAi8bsQIgPlmwBdwwMQD//wCjAAACfQc9AiYALQAAAQcAdQA1AT0AEwCwAEVYsAMvG7EDID5ZsAbcMDEA////ywAAAnoHPgImAC0AAAEHAJ7/NwE9ABMAsABFWLACLxuxAiA+WbAI3DAxAP///78AAAKFBwkCJgAtAAABBwBq/2IBPQAWALAARViwAi8bsQIgPlmwC9ywFNAwMf//AJQAAAUXBywCJgAyAAABBwClAO4BNwAJALAFL7AV3DAxAP//AGb/7AUeBzYCJgAzAAABBwBEAToBNgATALAARViwDC8bsQwgPlmwINwwMQD//wBm/+wFHgc2AiYAMwAAAQcAdQHZATYAEwCwAEVYsA0vG7ENID5ZsCHcMDEA//8AZv/sBR4HNwImADMAAAEHAJ4A2gE2ABMAsABFWLAMLxuxDCA+WbAj3DAxAP//AGb/7AUeBywCJgAzAAABBwClANwBNwATALAARViwDS8bsQ0gPlmwItwwMQD//wBm/+wFHgcCAiYAMwAAAQcAagEFATYAFgCwAEVYsAwvG7EMID5ZsCbcsC/QMDH//wB9/+wEvQc2AiYAOQAAAQcARAERATYAEwCwAEVYsAkvG7EJID5ZsBLcMDEA//8Aff/sBL0HNgImADkAAAEHAHUBsAE2AAkAsAAvsBPcMDEA//8Aff/sBL0HNwImADkAAAEHAJ4AsQE2ABMAsABFWLAJLxuxCSA+WbAV3DAxAP//AH3/7AS9BwICJgA5AAABBwBqANwBNgAWALAARViwCS8bsQkgPlmwGNywIdAwMf//AAcAAATWBzYCJgA9AAABBwB1AYcBNgATALAARViwAS8bsQEgPlmwC9wwMQD//wBa/+wD+wYAAiYARQAAAQcARACtAAAAEwCwAEVYsBcvG7EXHD5ZsCvcMDEA//8AWv/sA/sGAAImAEUAAAEHAHUBTAAAAAkAsBcvsCzcMDEA//8AWv/sA/sGAQImAEUAAAEGAJ5NAAATALAARViwFy8bsRccPlmwLtwwMQD//wBa/+wD+wX2AiYARQAAAQYApU8BABMAsABFWLAXLxuxFxw+WbAt3DAxAP//AFr/7AP7BcwCJgBFAAABBgBqeAAAFgCwAEVYsBcvG7EXHD5ZsDHcsDrQMDH//wBa/+wD+wZeAiYARQAAAQcAowDiADQAFgCwAEVYsBcvG7EXHD5ZsC/csDfQMDH//wBa/+wD+wZ8AiYARQAAAAcCJwDo/+f//wBP/jwD9QROAiYARwAAAAcAeQE9//v//wBT/+wECwYAAiYASQAAAQcARAChAAAAEwCwAEVYsAgvG7EIHD5ZsB/cMDEA//8AU//sBAsGAAImAEkAAAEHAHUBQAAAAAkAsAgvsCDcMDEA//8AU//sBAsGAQImAEkAAAEGAJ5BAAATALAARViwCC8bsQgcPlmwItwwMQD//wBT/+wECwXMAiYASQAAAQYAamwAABYAsABFWLAILxuxCBw+WbAl3LAu0DAx////tAAAAYwF+QImAI0AAAEGAESD+QATALAARViwAi8bsQIcPlmwBdwwMQD//wCPAAACaQX5AiYAjQAAAQYAdSH5ABMAsABFWLADLxuxAxw+WbAG3DAxAP///7cAAAJmBfoCJgCNAAABBwCe/yP/+QATALAARViwAi8bsQIcPlmwCNwwMQD///+rAAACcQXFAiYAjQAAAQcAav9O//kAFgCwAEVYsAIvG7ECHD5ZsAvcsBTQMDH//wB5AAAD+AX2AiYAUgAAAQYApVUBAAkAsAMvsBzcMDEA//8AT//sBD0GAAImAFMAAAEHAEQAtgAAABMAsABFWLAELxuxBBw+WbAc3DAxAP//AE//7AQ9BgACJgBTAAABBwB1AVUAAAAJALAEL7Ad3DAxAP//AE//7AQ9BgECJgBTAAABBgCeVgAAEwCwAEVYsAQvG7EEHD5ZsB/cMDEA//8AT//sBD0F9gImAFMAAAEGAKVYAQAJALAEL7Am3DAxAP//AE//7AQ9BcwCJgBTAAABBwBqAIEAAAAWALAARViwBC8bsQQcPlmwItywK9AwMf//AHf/7AP3BgACJgBZAAABBwBEAK8AAAATALAARViwBy8bsQccPlmwEtwwMQD//wB3/+wD9wYAAiYAWQAAAQcAdQFOAAAACQCwBi+wE9wwMQD//wB3/+wD9wYBAiYAWQAAAQYAnk8AABMAsABFWLAHLxuxBxw+WbAV3DAxAP//AHf/7AP3BcwCJgBZAAABBgBqegAAFgCwAEVYsAcvG7EHHD5ZsBjcsCHQMDH//wAM/ksD1gYAAiYAXQAAAQcAdQEWAAAACQCwAS+wEtwwMQD//wAM/ksD1gXMAiYAXQAAAQYAakIAABYAsABFWLAPLxuxDxw+WbAX3LAg0DAx//8AEgAABUIG5AImACUAAAEHAHAAvgE6ABMAsABFWLAELxuxBCA+WbAM3DAxAP//AFr/7AP7Ba4CJgBFAAABBgBwSAQACQCwFy+wKtwwMQD//wASAAAFQgccAiYAJQAAAQcAoQD2ATYAEwCwAEVYsAQvG7EEID5ZsA7cMDEA//8AWv/sA/sF5gImAEUAAAEHAKEAgAAAABMAsABFWLAXLxuxFxw+WbAt3DAxAAACABL+UgVCBbAAFgAZAHayGRobERI5sBkQsBbQALAARViwFi8bsRYgPlmwAEVYsBQvG7EUED5ZsABFWLABLxuxARA+WbAARViwDC8bsQwSPlmxBwOwCitYIdgb9FmwARCwEdCwES+yFxQWERI5sBcvsRMBsAorWCHYG/RZshkWFBESOTAxAQEjBgYVFDMyNxcGIyImNTQ3AyEDIQEDIQMDGwInPldKRywuFUlcX3SVc/3Mdv75AiZiAabTBbD6UDheMUQXjixuW41iAUn+rQWw/G8CXAAAAgBa/lID+wROAC0AOACqshc5OhESObAXELAv0ACwAEVYsBcvG7EXHD5ZsABFWLApLxuxKRI+WbAARViwBC8bsQQQPlmwAEVYsB4vG7EeED5ZsADQsAAvsgIXBBESObILFwQREjmwCy+wFxCxDwGwCitYIdgb9FmyEgsPERI5QAkMEhwSLBI8EgRdsCkQsSQDsAorWCHYG/RZsAQQsS4BsAorWCHYG/RZsAsQsTIBsAorWCHYG/RZMDElJicGIyImNTQkMzM1NCYjIgYVIzQ2NjMyFhcRFBcVIwYGFRQzMjcXBiMiJjU0AzI2NzUjIgYVFBYC/wsNdKijzgEB75VeYFNq83bLfb7iAykqV0pHLC4VSVxfdHZIfyCDh4hdBxlFebqJrblHVGVTQFmbWL+t/hiSVxE4XjFEF44sbluMAQhGO8xeVkZT//8AZv/sBOsHSwImACcAAAEHAHUBwAFLAAkAsAwvsCDcMDEA//8AT//sA/UGAAImAEcAAAEHAHUBKQAAAAkAsA8vsB/cMDEA//8AZv/sBOsHTAImACcAAAEHAJ4AwQFLABMAsABFWLAMLxuxDCA+WbAg3DAxAP//AE//7AP1BgECJgBHAAABBgCeKgAAEwCwAEVYsA8vG7EPHD5ZsB/cMDEA//8AZv/sBOsHKQImACcAAAEHAKIBpwFUABMAsABFWLAMLxuxDCA+WbAm3DAxAP//AE//7AP1Bd4CJgBHAAABBwCiARAACQATALAARViwDy8bsQ8cPlmwJdwwMQD//wBm/+wE6wdMAiYAJwAAAQcAnwDYAUsACQCwDC+wItwwMQD//wBP/+wD9QYBAiYARwAAAQYAn0EAAAkAsA8vsCHcMDEA//8AlAAABNIHPgImACgAAAEHAJ8AZwE9AAkAsAEvsBrcMDEA//8AT//sBVsGAgAmAEgAAAEHAboEAQT8AAYAsB4vMDH//wCUAAAETAbrAiYAKQAAAQcAcACDAUEAEwCwAEVYsAYvG7EGID5ZsA3cMDEA//8AU//sBAsFrgImAEkAAAEGAHA8BAAJALAIL7Ae3DAxAP//AJQAAARMByMCJgApAAABBwChALsBPQATALAARViwBi8bsQYgPlmwD9wwMQD//wBT/+wECwXmAiYASQAAAQYAoXQAABMAsABFWLAILxuxCBw+WbAh3DAxAP//AJQAAARMBxsCJgApAAABBwCiAW4BRgATALAARViwBi8bsQYgPlmwFNwwMQD//wBT/+wECwXeAiYASQAAAQcAogEnAAkAEwCwAEVYsAgvG7EIHD5ZsCbcMDEAAAEAlP5SBEwFsAAbAISyERwdERI5ALAARViwFi8bsRYgPlmwAEVYsA8vG7EPEj5ZsABFWLAELxuxBBA+WbAARViwFC8bsRQQPlmyGhQWERI5sBovsQEBsAorWCHYG/RZsBQQsQIBsAorWCHYG/RZsAPQsA8QsQoDsAorWCHYG/RZsBYQsRgBsAorWCHYG/RZMDEBIREhFSMGBhUUMzI3FwYjIiY1NDchESEVIREhA+f9qgK7b1dKRywuFUlcX3SH/ZMDsf1MAlYCiv5AyjheMUQXjixuW4ZfBbDM/m4AAAIAU/5tBAsETgAjACsAqbIRLC0REjmwERCwJNAAsABFWLAZLxuxGRw+WbAARViwDC8bsQwSPlmwAEVYsBEvG7ERED5ZsgIRGRESObAMELEHA7AKK1gh2Bv0WbIoGREREjmwKC+0HygvKAJxtL8ozygCXbKPKAFdtF8obygCcbTvKP8oAnGxHQewCitYIdgb9FmwERCxIQGwCitYIdgb9FmyIxkRERI5sBkQsSQBsAorWCHYG/RZMDElBgcGBhUUMzI3FwYjIiY1NDcmACc1NDY2MzISERUhFhYzMjcBIgYHITUmJgP6SXFXSkcsLhVJXF90UM/++wZ94ovd8f09C513p2n+xWR7EQHPCHK4ajM4XjFEF44sbltmUg0BE9c6ov+O/ub+/mKGnIcCVox9Enp9//8AlAAABEwHPgImACkAAAEHAJ8AnwE9ABMAsABFWLAGLxuxBiA+WbAR3DAxAP//AFP/7AQLBgECJgBJAAABBgCfWAAACQCwCC+wItwwMQD//wBq/+wE8AdMAiYAKwAAAQcAngC+AUsAEwCwAEVYsAsvG7ELID5ZsCHcMDEA//8AUv5WBAwGAQImAEsAAAEGAJ5AAAATALAARViwAy8bsQMcPlmwJ9wwMQD//wBq/+wE8AcxAiYAKwAAAQcAoQDxAUsAEwCwAEVYsAsvG7ELID5ZsCLcMDEA//8AUv5WBAwF5gImAEsAAAEGAKFzAAATALAARViwAy8bsQMcPlmwKNwwMQD//wBq/+wE8AcpAiYAKwAAAQcAogGkAVQAEwCwAEVYsAsvG7ELID5ZsCfcMDEA//8AUv5WBAwF3gImAEsAAAEHAKIBJgAJABMAsABFWLADLxuxAxw+WbAt3DAxAP//AGr98wTwBcQCJgArAAAABwG6AeP+jP//AFL+VgQMBqkCJgBLAAABBwI0AScAfgAJALADL7Ap3DAxAP//AJQAAAUYBz4CJgAsAAABBwCeAOIBPQATALAARViwBy8bsQcgPlmwENwwMQD//wB5AAAD+AdeAiYATAAAAQcAngAXAV0ACQCwEC+wE9wwMQD///+zAAACkAczAiYALQAAAQcApf85AT4AEwCwAEVYsAMvG7EDID5ZsAfcMDEA////nwAAAnwF7wImAI0AAAEHAKX/Jf/6AAkAsAIvsA/cMDEA////zQAAAnwG6wImAC0AAAEHAHD/MgFBABMAsABFWLACLxuxAiA+WbAF3DAxAP///7kAAAJoBacCJgCNAAABBwBw/x7//QATALAARViwAi8bsQIcPlmwBdwwMQD////fAAACZQcjAiYALQAAAQcAof9qAT0AEwCwAEVYsAIvG7ECID5ZsAfcMDEA////ywAAAlEF3wImAI0AAAEHAKH/Vv/5ABMAsABFWLACLxuxAhw+WbAH3DAxAP//ABf+WAGfBbACJgAtAAAABgCk7gb//wAA/lIBkAXVAiYATQAAAAYApNcA//8AnQAAAaMHGwImAC0AAAEHAKIAHAFGABMAsABFWLACLxuxAiA+WbAM3DAxAP//AKP/7AYmBbAAJgAtAAAABwAuAkIAAP//AH3+SwOQBdUAJgBNAAAABwBOAgsAAP//AC3/7ASrBzcCJgAuAAABBwCeAWgBNgATALAARViwAC8bsQAgPlmwFNwwMQD///+1/ksCawXfAiYAnAAAAQcAnv8o/94AEwCwAEVYsAwvG7EMHD5ZsBHcMDEA//8AlP5EBRgFsAImAC8AAAAHAboBnf7d//8Aff4vBDYGAAImAE8AAAAHAboBLf7I//8AlAAABCYHNgImADAAAAEHAHUAKQE2ABMAsABFWLAFLxuxBSA+WbAI3DAxAP//AIoAAAJiB5ECJgBQAAABBwB1ABoBkQATALAARViwAy8bsQMiPlmwBtwwMQD//wCU/gMEJgWwAiYAMAAAAAcBugFt/pz//wBV/gMBfwYAAiYAUAAAAAcBugAQ/pz//wCUAAAEJgWxAiYAMAAAAQcBugIKBKsAEACwAEVYsAovG7EKID5ZMDH//wCMAAAC5wYCACYAUAAAAQcBugGNBPwAEACwAEVYsAgvG7EIIj5ZMDH//wCUAAAEJgWwAiYAMAAAAAcAogHK/dT//wCMAAAC6wYAACYAUAAAAAcAogFk/a///wCUAAAFFwc2AiYAMgAAAQcAdQHrATYAEwCwAEVYsAgvG7EIID5ZsAzcMDEA//8AeQAAA/gGAAImAFIAAAEHAHUBUgAAAAkAsAMvsBPcMDEA//8AlP3/BRcFsAImADIAAAAHAboB3P6Y//8Aef4DA/gETgImAFIAAAAHAboBQf6c//8AlAAABRcHNwImADIAAAEHAJ8BAwE2ABMAsABFWLAGLxuxBiA+WbAP3DAxAP//AHkAAAP4BgECJgBSAAABBgCfagAACQCwAy+wFdwwMQD///+lAAAD+AYDAiYAUgAAAQcBuv9gBP0AEACwAEVYsBUvG7EVIj5ZMDH//wBm/+wFHgbkAiYAMwAAAQcAcADVAToAEwCwAEVYsAwvG7EMID5ZsCDcMDEA//8AT//sBD0FrgImAFMAAAEGAHBRBAAJALAEL7Ab3DAxAP//AGb/7AUeBxwCJgAzAAABBwChAQ0BNgATALAARViwDC8bsQwgPlmwItwwMQD//wBP/+wEPQXmAiYAUwAAAQcAoQCJAAAAEwCwAEVYsAQvG7EEHD5ZsB7cMDEA//8AZv/sBR4HNQImADMAAAEHAKYBYwE2ABYAsABFWLANLxuxDSA+WbAh3LAl0DAx//8AT//sBD0F/wImAFMAAAEHAKYA3wAAABYAsABFWLAELxuxBBw+WbAd3LAh0DAx//8AlAAABN4HNgImADYAAAEHAHUBcQE2AAkAsAQvsBrcMDEA//8AfAAAAvUGAAImAFYAAAEHAHUArQAAAAkAsAsvsBDcMDEA//8AlP4DBN4FsAImADYAAAAHAboBbv6c//8AT/4DArQETgImAFYAAAAHAboACv6c//8AlAAABN4HNwImADYAAAEHAJ8AiQE2AAkAsAQvsBzcMDEA//8AOAAAAvoGAQImAFYAAAEGAJ/GAAAJALALL7AS3DAxAP//AEr/7ASKBzYCJgA3AAABBwB1AY4BNgAJALAJL7Aq3DAxAP//AEv/7APKBgACJgBXAAABBwB1AToAAAAJALAJL7Ap3DAxAP//AEr/7ASKBzcCJgA3AAABBwCeAI8BNgATALAARViwCS8bsQkgPlmwKtwwMQD//wBL/+wDygYBAiYAVwAAAQYAnjsAABMAsABFWLAJLxuxCRw+WbAp3DAxAP//AEr+QQSKBcQCJgA3AAAABwB5AZ0AAP//AEv+OAPKBE4CJgBXAAAABwB5AUT/9///AEr9+QSKBcQCJgA3AAAABwG6AYn+kv//AEv97wPKBE4CJgBXAAAABwG6ATD+iP//AEr/7ASKBzcCJgA3AAABBwCfAKYBNgAJALAJL7As3DAxAP//AEv/7APKBgECJgBXAAABBgCfUgAACQCwCS+wK9wwMQD//wAt/fwEsAWwAiYAOAAAAAcBugF3/pX//wAI/fkCcgVBAiYAWAAAAAcBugDI/pL//wAt/kQEsAWwAiYAOAAAAAcAeQGLAAP//wAI/kECpQVBAiYAWAAAAAcAeQDcAAD//wAtAAAEsAc3AiYAOAAAAQcAnwCYATYAEwCwAEVYsAYvG7EGID5ZsA3cMDEA//8ACP/sAycGgwAmAFgAAAAHAboBzQV9//8Aff/sBL0HLAImADkAAAEHAKUAswE3ABMAsABFWLAQLxuxECA+WbAU3DAxAP//AHf/7AP3BfYCJgBZAAABBgClUQEAEwCwAEVYsA0vG7ENHD5ZsBTcMDEA//8Aff/sBL0G5AImADkAAAEHAHAArAE6AAkAsAAvsBHcMDEA//8Ad//sA/cFrgImAFkAAAEGAHBKBAATALAARViwBi8bsQYcPlmwEtwwMQD//wB9/+wEvQccAiYAOQAAAQcAoQDkATYAEwCwAEVYsAkvG7EJID5ZsBTcMDEA//8Ad//sA/cF5gImAFkAAAEHAKEAggAAABMAsABFWLAHLxuxBxw+WbAU3DAxAP//AH3/7AS9B5QCJgA5AAABBwCjAUYBagAMALAAL7AW3LAb0DAx//8Ad//sA/cGXgImAFkAAAEHAKMA5AA0AAwAsAYvsBbcsBvQMDH//wB9/+wEvQc1AiYAOQAAAQcApgE6ATYAFgCwAEVYsBAvG7EQID5ZsBPcsBfQMDH//wB3/+wELgX/AiYAWQAAAQcApgDYAAAADACwBi+wE9ywFdAwMQABAH3+iQS9BbAAHwBZshwgIRESOQCwAEVYsBgvG7EYID5ZsABFWLATLxuxExA+WbAARViwDi8bsQ4YPlmyBBMYERI5sQkDsAorWCHYG/RZsBMQsRwBsAorWCHYG/RZsBgQsB/QMDEBERQGBwYGFRQzMjcXBiMiJjU0NyAANREzERQWMyAREQS9hX49T0csLhVJXF90Nv8A/tv8lJABJAWw/DKY5D0pWTdEF44sbltVRQEM6wPN/DKSmgE0A8YAAQB3/lID9wQ6AB8AaLIaICEREjkAsABFWLAXLxuxFxw+WbAARViwEi8bsRIQPlmwAEVYsB8vG7EfED5ZsABFWLAKLxuxChI+WbEFA7AKK1gh2Bv0WbAfELAP0LAPL7ASELEaAbAKK1gh2Bv0WbAXELAd0DAxIQYGFRQzMjcXBiMiJjU0NycGIyImNREzERQzMjcRMxED4ldKRywuFUlcX3SSBWvFsLXzq7E+8zheMUQXjixuW4xhYn7OwwK9/UbOfwMJ+8b//wAwAAAG5Qc3AiYAOwAAAQcAngGoATYAEwCwAEVYsAwvG7EMID5ZsA/cMDEA//8AIQAABcwGAQImAFsAAAEHAJ4BCgAAABMAsABFWLALLxuxCxw+WbAR3DAxAP//AAcAAATWBzcCJgA9AAABBwCeAIgBNgATALAARViwAS8bsQEgPlmwC9wwMQD//wAM/ksD1gYBAiYAXQAAAQYAnhcAABMAsABFWLAPLxuxDxw+WbAU3DAxAP//AAcAAATWBwICJgA9AAABBwBqALMBNgAWALAARViwCC8bsQggPlmwENywGdAwMf//AFAAAASMBzYCJgA+AAABBwB1AYMBNgATALAARViwBy8bsQcgPlmwDNwwMQD//wBSAAADwAYAAiYAXgAAAQcAdQEbAAAAEwCwAEVYsAcvG7EHHD5ZsAzcMDEA//8AUAAABIwHFAImAD4AAAEHAKIBagE/ABMAsABFWLAHLxuxByA+WbAS3DAxAP//AFIAAAPABd4CJgBeAAABBwCiAQIACQATALAARViwBy8bsQccPlmwEtwwMQD//wBQAAAEjAc3AiYAPgAAAQcAnwCbATYACQCwBy+wDtwwMQD//wBSAAADwAYBAiYAXgAAAQYAnzMAAAkAsAcvsA7cMDEA////9gAAB1cHQgImAIEAAAEHAHUCuwFCABMAsABFWLAGLxuxBiA+WbAV3DAxAP//AEj/7AaEBgECJgCGAAABBwB1AnEAAQAJALAXL7A/3DAxAP//AGn/oQUiB4ACJgCDAAABBwB1AeABgAATALAARViwEC8bsRAgPlmwLNwwMQD//wBP/3cEPQX+AiYAiQAAAQcAdQEw//4AEwCwAEVYsAQvG7EEHD5ZsCjcMDEA////pgAABCoEjQImAjAAAAEHAib/Fv9uAEYAsh8XAXGybxcBcbL/FwFxsg8XAXK2rxe/F88XA3Ky/xcBcrJfFwFytr8XzxffFwNxsj8XAXG03xfvFwJdtB8XLxcCXTAx////pgAABCoEjQImAjAAAAEHAib/Fv9uAEYAsh8XAXGybxcBcbL/FwFxsg8XAXK2rxe/F88XA3Ky/xcBcrJfFwFytr8XzxffFwNxsj8XAXG03xfvFwJdtB8XLxcCXTAx//8AJAAABBYEjQImAdgAAAEGAiYyvgAIALIACwFdMDH//wAJAAAElAYeAiYCMwAAAQcARADHAB4AEwCwAEVYsAQvG7EEHj5ZsAzcMDEA//8ACQAABJQGHgImAjMAAAEHAHUBZgAeABMAsABFWLAFLxuxBR4+WbAN3DAxAP//AAkAAASUBh8CJgIzAAABBgCeZx4AEwCwAEVYsAQvG7EEHj5ZsA/cMDEA//8ACQAABJQGFAImAjMAAAEGAKVpHwAJALAEL7AW3DAxAP//AAkAAASUBeoCJgIzAAABBwBqAJIAHgAWALAARViwBC8bsQQePlmwEtywG9AwMf//AAkAAASUBnwCJgIzAAABBwCjAPwAUgAWALAARViwBC8bsQQePlmwENywGNAwMf//AAkAAASUBpkCJgIzAAAABwInAQIABP//AE/+QQRDBJ0CJgIxAAAABwB5AWsAAP//AHYAAAO1Bh4CJgIoAAABBwBEAJYAHgATALAARViwBi8bsQYePlmwDdwwMQD//wB2AAADtQYeAiYCKAAAAQcAdQE1AB4AEwCwAEVYsAcvG7EHHj5ZsA7cMDEA//8AdgAAA7UGHwImAigAAAEGAJ42HgATALAARViwBi8bsQYePlmwENwwMQD//wB2AAADtQXqAiYCKAAAAQYAamEeABYAsABFWLAGLxuxBh4+WbAT3LAc0DAx////pgAAAX4GHgImAeMAAAEHAET/dQAeABMAsABFWLACLxuxAh4+WbAF3DAxAP//AIMAAAJbBh4CJgHjAAABBgB1Ex4AEwCwAEVYsAMvG7EDHj5ZsAbcMDEA////qQAAAlgGHwImAeMAAAEHAJ7/FQAeABMAsABFWLACLxuxAh4+WbAI3DAxAP///50AAAJjBeoCJgHjAAABBwBq/0AAHgAWALAARViwAi8bsQIePlmwC9ywFNAwMf//AHYAAARnBhQCJgHeAAABBwClAIgAHwAJALAFL7AV3DAxAP//AE//8ARvBh4CJgHdAAABBwBEANUAHgATALAARViwCy8bsQsePlmwHtwwMQD//wBP//AEbwYeAiYB3QAAAQcAdQF0AB4ACQCwCy+wH9wwMQD//wBP//AEbwYfAiYB3QAAAQYAnnUeABMAsABFWLALLxuxCx4+WbAh3DAxAP//AE//8ARvBhQCJgHdAAABBgCldx8ACQCwCy+wKNwwMQD//wBP//AEbwXqAiYB3QAAAQcAagCgAB4AFgCwAEVYsAsvG7ELHj5ZsCTcsC3QMDH//wBn//AEHgYeAiYB1wAAAQcARAC1AB4AEwCwAEVYsAgvG7EIHj5ZsBHcMDEA//8AZ//wBB4GHgImAdcAAAEHAHUBVAAeABMAsABFWLAPLxuxDx4+WbAS3DAxAP//AGf/8AQeBh8CJgHXAAABBgCeVR4AEwCwAEVYsAgvG7EIHj5ZsBTcMDEA//8AZ//wBB4F6gImAdcAAAEHAGoAgAAeABYAsABFWLAILxuxCB4+WbAX3LAg0DAx//8ABQAABDYGHgImAdMAAAEHAHUBLQAeABMAsABFWLABLxuxAR4+WbAL3DAxAP//AAkAAASUBcwCJgIzAAABBgBwYiIAEwCwAEVYsAQvG7EEHj5ZsAzcMDEA//8ACQAABJQGBAImAjMAAAEHAKEAmgAeABMAsABFWLAELxuxBB4+WbAO3DAxAAACAAn+UgSUBI0AFgAZAHOyGRobERI5sBkQsBbQALAARViwAC8bsQAePlmwAEVYsBQvG7EUED5ZsABFWLABLxuxARA+WbAARViwDC8bsQwSPlmxBwOwCitYIdgb9FmwARCwEdCyFxQAERI5sBcvsRMBsAorWCHYG/RZshkAFBESOTAxAQEjBgYVFDMyNxcGIyImNTQ3JyEHIwEDIQMCvwHVNldKRywuFUlcX3SdWf4eX/UB1zwBVKoEjftzOF4xRBeOLG5bkmHr+QSN/SUBugD//wBP//AEQwYeAiYCMQAAAQcAdQFjAB4ACQCwCy+wHtwwMQD//wBP//AEQwYfAiYCMQAAAQYAnmQeABMAsABFWLALLxuxCx4+WbAg3DAxAP//AE//8ARDBfwCJgIxAAABBwCiAUoAJwATALAARViwCy8bsQsePlmwJNwwMQD//wBP//AEQwYfAiYCMQAAAQYAn3seAAkAsAsvsCDcMDEA//8AagAABCoGHwImAjAAAAEGAJ/4HgAJALABL7AY3DAxAP//AHYAAAO1BcwCJgIoAAABBgBwMSIAEwCwAEVYsAYvG7EGHj5ZsA3cMDEA//8AdgAAA7UGBAImAigAAAEGAKFpHgATALAARViwBi8bsQYePlmwD9wwMQD//wB2AAADtQX8AiYCKAAAAQcAogEcACcAEwCwAEVYsAYvG7EGHj5ZsBTcMDEAAAEAdv5SA7UEjQAbAISyERwdERI5ALAARViwFi8bsRYePlmwAEVYsA8vG7EPEj5ZsABFWLAELxuxBBA+WbAARViwFC8bsRQQPlmyGxYEERI5sBsvsQABsAorWCHYG/RZsBQQsQIBsAorWCHYG/RZsAPQsA8QsQoDsAorWCHYG/RZsBYQsRgBsAorWCHYG/RZMDEBIREhFSMGBhUUMzI3FwYjIiY1NDchESEVIREhA1/+CgJMXldKRywuFUlcX3SH/fsDPP23AfYB+P7KwjheMUQXjixuW4ZfBI3E/vIA//8AdgAAA7UGHwImAigAAAEGAJ9NHgATALAARViwBi8bsQYePlmwEdwwMQD//wBU//AESAYfAiYB5QAAAQYAnmgeABMAsABFWLAKLxuxCh4+WbAh3DAxAP//AFT/8ARIBgQCJgHlAAABBwChAJsAHgATALAARViwCi8bsQoePlmwINwwMQD//wBU//AESAX8AiYB5QAAAQcAogFOACcAEwCwAEVYsAovG7EKHj5ZsCXcMDEA//8AVP35BEgEnQImAeUAAAAHAboBav6S//8AdgAABGgGHwImAeQAAAEGAJ57HgATALAARViwBy8bsQcePlmwENwwMQD///+RAAACbgYUAiYB4wAAAQcApf8XAB8ACQCwAi+wD9wwMQD///+rAAACWgXMAiYB4wAAAQcAcP8QACIAEwCwAEVYsAIvG7ECHj5ZsAXcMDEA////vQAAAkMGBAImAeMAAAEHAKH/SAAeABMAsABFWLACLxuxAh4+WbAH3DAxAP//ABX+UgGNBI0CJgHjAAAABgCk7AD//wB8AAABggX8AiYB4wAAAQYAovsnABMAsABFWLACLxuxAh4+WbAM3DAxAP//ACT/8AQ3Bh8CJgHiAAABBwCeAPQAHgATALAARViwAC8bsQAePlmwE9wwMQD//wB2/gAEaASNAiYB4QAAAAcBugES/pn//wB2AAADlAYeAiYB4AAAAQYAdQoeABMAsABFWLAFLxuxBR4+WbAI3DAxAP//AHb+AQOUBI0CJgHgAAAABwG6ARD+mv//AHYAAAOUBJACJgHgAAABBwG6AZUDigAQALAARViwCi8bsQoePlkwMf//AHYAAAOUBI0CJgHgAAAABwCiAXL9Rv//AHYAAARnBh4CJgHeAAABBwB1AYUAHgATALAARViwCC8bsQgePlmwDNwwMQD//wB2/fkEZwSNAiYB3gAAAAcBugF4/pL//wB2AAAEZwYfAiYB3gAAAQcAnwCdAB4AEwCwAEVYsAYvG7EGHj5ZsA/cMDEA//8AT//wBG8FzAImAd0AAAEGAHBwIgAJALALL7Ad3DAxAP//AE//8ARvBgQCJgHdAAABBwChAKgAHgATALAARViwCy8bsQsePlmwINwwMQD//wBP//AEbwYdAiYB3QAAAQcApgD+AB4ADACwCy+wH9ywIdAwMf//AHYAAAQ5Bh4CJgHaAAABBwB1ARcAHgAJALAEL7AZ3DAxAP//AHb+AQQ5BI0CJgHaAAAABwG6ARj+mv//AHYAAAQ5Bh8CJgHaAAABBgCfLx4ACQCwBC+wG9wwMQD//wA+//AD7wYeAiYB2QAAAQcAdQFBAB4ACQCwCS+wKNwwMQD//wA+//AD7wYfAiYB2QAAAQYAnkIeABMAsABFWLAJLxuxCR4+WbAq3DAxAP//AD7+QQPvBJ0CJgHZAAAABwB5AU8AAP//AD7/8APvBh8CJgHZAAABBgCfWR4ACQCwCS+wKtwwMQD//wAk/f8EFgSNAiYB2AAAAAcBugEl/pj//wAkAAAEFgYfAiYB2AAAAQYAn0ceABMAsABFWLAGLxuxBh4+WbAN3DAxAP//ACT+RwQWBI0CJgHYAAAABwB5ATkABv//AGf/8AQeBhQCJgHXAAABBgClVx8AEwCwAEVYsA8vG7EPHj5ZsBPcMDEA//8AZ//wBB4FzAImAdcAAAEGAHBQIgAJALAAL7AQ3DAxAP//AGf/8AQeBgQCJgHXAAABBwChAIgAHgATALAARViwCC8bsQgePlmwE9wwMQD//wBn//AEHgZ8AiYB1wAAAQcAowDqAFIADACwAC+wFdywGtAwMf//AGf/8AQ0Bh0CJgHXAAABBwCmAN4AHgAMALAAL7AS3LAU0DAxAAEAZ/6CBB4EjQAeAGOyGx8gERI5ALAARViwFy8bsRcePlmwAEVYsAAvG7EAHj5ZsABFWLANLxuxDRg+WbAARViwEi8bsRIQPlmyBBIAERI5sA0QsQgDsAorWCHYG/RZsBIQsRsBsAorWCHYG/RZMDEBEQYGBwYVFDMyNxcGIyImNTQ3JiYnETMRFBYzMjcRBB4BfXd/RywuFUlcX3RAzfIC8X5s5QQEjfz8gb0yVlpEF44sbltdSQbWuwMF/QBzaNQDB///ACgAAAXlBh8CJgHVAAABBwCeARkAHgATALAARViwAS8bsQEePlmwD9wwMQD//wAFAAAENgYfAiYB0wAAAQYAni4eABMAsABFWLAILxuxCB4+WbAN3DAxAP//AAUAAAQ2BeoCJgHTAAABBgBqWR4AFgCwAEVYsAgvG7EIHj5ZsBDcsBnQMDH//wBBAAAD8wYeAiYB0gAAAQcAdQEwAB4AEwCwAEVYsAgvG7EIHj5ZsAzcMDEA//8AQQAAA/MF/AImAdIAAAEHAKIBFwAnABMAsABFWLAHLxuxBx4+WbAS3DAxAP//AEEAAAPzBh8CJgHSAAABBgCfSB4AEwCwAEVYsAcvG7EHHj5ZsA/cMDEA//8AEgAABUIGQQImACUAAAAGAK6/AP///ucAAARMBkECJgApAAAABwCu/iEAAP///vAAAAUYBkECJgAsAAAABwCu/ioAAP///vMAAAGfBkMCJgAtAAAABwCu/i0AAv///6f/7AUyBkEAJgAzFAAABwCu/uEAAP///uEAAAU6BkEAJgA9ZAAABwCu/hsAAP///7IAAATxBkEAJgC6FAAABwCu/uwAAP///4f/9ALaBpoCJgDDAAABBwCv/yD/6wAcALAARViwDC8bsQwcPlmwGNywENCwGBCwIdAwMf//ABIAAAVCBbACBgAlAAD//wCUAAAEowWwAgYAJgAA//8AlAAABEwFsAIGACkAAP//AFAAAASMBbACBgA+AAD//wCUAAAFGAWwAgYALAAA//8AowAAAZ8FsAIGAC0AAP//AJQAAAUYBbACBgAvAAD//wCUAAAGagWwAgYAMQAA//8AlAAABRcFsAIGADIAAP//AGb/7AUeBcQCBgAzAAD//wCUAAAE1AWwAgYANAAA//8ALQAABLAFsAIGADgAAP//AAcAAATWBbACBgA9AAD//wApAAAE6QWwAgYAPAAA////vwAAAoUHCQImAC0AAAEHAGr/YgE9ABYAsABFWLACLxuxAiA+WbAL3LAU0DAx//8ABwAABNYHAgImAD0AAAEHAGoAswE2ABYAsABFWLAILxuxCCA+WbAQ3LAZ0DAx//8AVv/rBHkGQQImALsAAAEHAK4BUAAAAAkAsBMvsCTcMDEA//8AYP/sBAwGQQImAL8AAAEHAK4BGQAAAAkAsAkvsCrcMDEA//8Afv5hBAYGQQImAMEAAAEHAK4BIwAAAAkAsAMvsBTcMDEA//8Aqf/0AmEGLAImAMMAAAEGAK4P6wAJALAAL7AP3DAxAP//AID/6wQIBqICJgDLAAABBgCvHfMAHACwAEVYsAAvG7EAHD5ZsB7csBXQsB4QsCfQMDH//wCOAAAEawQ6AgYAjgAA//8AT//sBD0ETgIGAFMAAP//AJL+YAQfBDoCBgB2AAD//wAWAAAD2gQ6AgYAWgAAAAEAPv5JBGUESgAcAGqyEx0eERI5ALAARViwAC8bsQAcPlmwAEVYsAUvG7EFHD5ZsABFWLAPLxuxDxI+WbAARViwFC8bsRQSPlmyBAAPERI5sA8QsQsBsAorWCHYG/RZshMADxESObAAELEZAbAKK1gh2Bv0WTAxEzIWFxMTMwETFhcXNwcGJyYnJwMDIwEDJiMHJzbBZo0ycuH1/p/GNUwpKCgqNppbG374+AF8pkJwQwJCBEpodP7+Ac79KP4+ewgBA8YQBQe0OAEf/gADDAF+mAW6E////8z/9AKSBbcCJgDDAAABBwBq/2//6wAWALAARViwDC8bsQwcPlmwFNywHdAwMf//AID/6wQIBb8CJgDLAAABBgBqbPMAFgCwAEVYsAAvG7EAHD5ZsBrcsCPQMDH//wBP/+wEPQZBAiYAUwAAAQcArgEiAAAACQCwBC+wHdwwMQD//wCA/+sECAY0AiYAywAAAQcArgEN//MACQCwAC+wFdwwMQD//wBm/+wGLQYyAiYAzgAAAQcArgIs//EACQCwAC+wI9wwMQD//wCUAAAETAcJAiYAKQAAAQcAagCzAT0AFgCwAEVYsAYvG7EGID5ZsBPcsBzQMDH//wCbAAAENwc9AiYAsQAAAQcAdQGCAT0AEwCwAEVYsAQvG7EEID5ZsAjcMDEAAAEASv/sBIoFxAAnAGayESgpERI5ALAARViwCS8bsQkgPlmwAEVYsB0vG7EdED5ZsgIdCRESObIOCR0REjmwCRCxEQGwCitYIdgb9FmwAhCxFwGwCitYIdgb9FmyIh0JERI5sB0QsSUBsAorWCHYG/RZMDEBNCYkJyY1NCQzMhYWFSM0JiMiBhUUFgQWFhUUBCMiJCY1MxQWMzI2A42H/qBoxwEf5ZjuiPyPhXyJlAFUzmD+6e+e/veT/aSZhIUBd2BoakF9ybDkcM9+coFqX1BrZYGncLbXdc6JfIhr//8AowAAAZ8FsAIGAC0AAP///78AAAKFBwkCJgAtAAABBwBq/2IBPQAWALAARViwAi8bsQIgPlmwC9ywFNAwMf//AC3/7APkBbACBgAuAAD//wCbAAAFMAWwAgYCLAAA//8AlAAABRgHNgImAC8AAAEHAHUBbgE2ABMAsABFWLAFLxuxBSA+WbAP3DAxAP//ADn/6wTdByMCJgDeAAABBwChANkBPQATALAARViwDy8bsQ8gPlmwE9wwMQD//wASAAAFQgWwAgYAJQAA//8AlAAABKMFsAIGACYAAP//AJsAAAQ3BbACBgCxAAD//wCUAAAETAWwAgYAKQAA//8AlAAABQ0HIwImANwAAAEHAKEBHQE9ABMAsABFWLAILxuxCCA+WbAN3DAxAP//AJQAAAZqBbACBgAxAAD//wCUAAAFGAWwAgYALAAA//8AZv/sBR4FxAIGADMAAP//AJsAAAUUBbACBgC2AAD//wCUAAAE1AWwAgYANAAA//8AZv/sBOsFxAIGACcAAP//AC0AAASwBbACBgA4AAD//wApAAAE6QWwAgYAPAAA//8AWv/sA/sETgIGAEUAAP//AFP/7AQLBE4CBgBJAAD//wCGAAAEEgXZAiYA8AAAAQcAoQCX//MAEwCwAEVYsAgvG7EIHD5ZsA3cMDEA//8AT//sBD0ETgIGAFMAAP//AHz+YAQwBE4CBgBUAAAAAQBP/+wD9QROABwATbIAHR4REjkAsABFWLAPLxuxDxw+WbAARViwCC8bsQgQPlmxAAGwCitYIdgb9FmyAwgPERI5shMPCBESObAPELEWAbAKK1gh2Bv0WTAxJTI2NzMOAiMiABE1NAAzMhYXIyYmIyIGBxUUFgI5W3gE5QR2ynXj/vYBCOTB8wblBHdcdoABf65qTmWvZgEmAQMZ9wEp4bddeKuuJ7CtAP//AAz+SwPWBDoCBgBdAAD//wAfAAAD6AQ6AgYAXAAA//8AU//sBAsFzAImAEkAAAEGAGpsAAAWALAARViwCC8bsQgcPlmwJdywLtAwMf//AIUAAANNBfMCJgDsAAABBwB1AML/8wATALAARViwBC8bsQQcPlmwCNwwMQD//wBL/+wDygROAgYAVwAA//8AfQAAAZAF1QIGAE0AAP///6sAAAJxBcUCJgCNAAABBwBq/07/+QAWALAARViwAi8bsQIcPlmwC9ywFNAwMf///7X+SwGFBdUCBgBOAAD//wCPAAAEZQXyAiYA8QAAAQcAdQFE//IAEwCwAEVYsAQvG7EEHD5ZsA/cMDEA//8ADP5LA9YF5gImAF0AAAEGAKFKAAATALAARViwDy8bsQ8cPlmwE9wwMQD//wAwAAAG5Qc2AiYAOwAAAQcARAIIATYAEwCwAEVYsAsvG7ELID5ZsA7cMDEA//8AIQAABcwGAAImAFsAAAEHAEQBagAAABMAsABFWLALLxuxCxw+WbAO3DAxAP//ADAAAAblBzYCJgA7AAABBwB1AqcBNgATALAARViwDC8bsQwgPlmwD9wwMQD//wAhAAAFzAYAAiYAWwAAAQcAdQIJAAAAEwCwAEVYsAwvG7EMHD5ZsA/cMDEA//8AMAAABuUHAgImADsAAAEHAGoB0wE2ABYAsABFWLALLxuxCyA+WbAU3LAd0DAx//8AIQAABcwFzAImAFsAAAEHAGoBNQAAABYAsABFWLALLxuxCxw+WbAU3LAd0DAx//8ABwAABNYHNgImAD0AAAEHAEQA6AE2ABMAsABFWLAILxuxCCA+WbAK3DAxAP//AAz+SwPWBgACJgBdAAABBgBEdwAAEwCwAEVYsA8vG7EPHD5ZsBHcMDEA//8AUgP8AQsGAAMGAAsAAAAWALAARViwBC8bsQQiPlmwAdCwAS8wMf//AGUD9AJABgADBgAGAAAALACwAEVYsAkvG7EJIj5ZsABFWLAELxuxBCI+WbAJELAG0LAGL7AB0LABLzAx//8Aj//yA8gFsAAmAAUAAAAHAAUCJQAA////sf5LAnMF3wImAJwAAAEHAJ//P//eAAkAsAAvsBHcMDEA//8AMwQAAWUGAAIGAYUAAP//AJQAAAZqBzYCJgAxAAABBwB1ApABNgATALAARViwAi8bsQIgPlmwEdwwMQD//wB8AAAGeQYAAiYAUQAAAQcAdQKgAAAACQCwAy+wINwwMQD//wAS/m0FQgWwAiYAJQAAAAcApwF6AAP//wBa/nED+wROAiYARQAAAAcApwCtAAf//wCUAAAETAc9AiYAKQAAAQcARADoAT0AEwCwAEVYsAYvG7EGID5ZsA3cMDEA//8AlAAABQ0HPQImANwAAAEHAEQBSgE9ABMAsABFWLAILxuxCCA+WbAL3DAxAP//AFP/7AQLBgACJgBJAAABBwBEAKEAAAATALAARViwCC8bsQgcPlmwH9wwMQD//wCGAAAEEgXzAiYA8AAAAQcARADE//MAEwCwAEVYsAgvG7EIHD5ZsAvcMDEA//8ARAAABVwFsAIGALkAAP//AE/+IgV+BDoCBgDNAAD//wAQAAAE8wb8AiYBGQAAAQcArARJAQ4AFgCwAEVYsA8vG7EPID5ZsBHcsBXQMDH////xAAAEGAXQAiYBGgAAAQcArAPl/+IAFgCwAEVYsBEvG7ERHD5ZsBPcsBfQMDH//wBP/ksIZAROACYAUwAAAAcAXQSOAAD//wBm/ksJXAXEACYAMwAAAAcAXQWGAAD//wBJ/joEfwXDAiYA2wAAAAcCUQGS/6D//wBN/jsDxARNAiYA7wAAAAcCUQE5/6H//wBm/j4E6wXEAiYAJwAAAAcCUQHW/6T//wBP/j4D9QROAiYARwAAAAcCUQFK/6T//wAHAAAE1gWwAgYAPQAA//8AIP5fA/UEOgIGAL0AAP//AKMAAAGfBbACBgAtAAD//wAWAAAHmwcjAiYA2gAAAQcAoQIdAT0AEwCwAEVYsA0vG7ENID5ZsBncMDEA//8AHgAABlwF2QImAO4AAAEHAKEBh//zABMAsABFWLANLxuxDRw+WbAZ3DAxAP//AKMAAAGfBbACBgAtAAD//wASAAAFQgccAiYAJQAAAQcAoQD2ATYAEwCwAEVYsAQvG7EEID5ZsA7cMDEA//8AWv/sA/sF5gImAEUAAAEHAKEAgAAAABMAsABFWLAXLxuxFxw+WbAt3DAxAP//ABIAAAVCBwICJgAlAAABBwBqAO4BNgAWALAARViwBC8bsQQgPlmwEtywG9AwMf//AFr/7AP7BcwCJgBFAAABBgBqeAAAFgCwAEVYsBcvG7EXHD5ZsDHcsDrQMDH////2AAAHVwWwAgYAgQAA//8ASP/sBoQEUAIGAIYAAP//AJQAAARMByMCJgApAAABBwChALsBPQATALAARViwBi8bsQYgPlmwD9wwMQD//wBT/+wECwXmAiYASQAAAQYAoXQAABMAsABFWLAILxuxCBw+WbAh3DAxAP//AFH/6wUeBtsCJgFYAAABBwBqAMIBDwAWALAARViwAC8bsQAgPlmwJtywL9AwMf//AFn/7AP4BE8CBgCdAAD//wBZ/+wD+AXNAiYAnQAAAQYAamkBABYAsABFWLAALxuxABw+WbAm3LAv0DAx//8AFgAAB5sHCQImANoAAAEHAGoCFQE9ABYAsABFWLANLxuxDSA+WbAd3LAm0DAx//8AHgAABlwFvwImAO4AAAEHAGoBf//zABYAsABFWLANLxuxDRw+WbAd3LAm0DAx//8ASf/tBH8HFwImANsAAAEHAGoAowFLABYAsABFWLALLxuxCyA+WbAx3LA60DAx//8ATf/sA8QFzAImAO8AAAEGAGpOAAAWALAARViwJS8bsSUcPlmwL9ywONAwMf//AJQAAAUNBusCJgDcAAABBwBwAOUBQQATALAARViwCC8bsQggPlmwC9wwMQD//wCGAAAEEgWhAiYA8AAAAQYAcF/3ABMAsABFWLAHLxuxBxw+WbAL3DAxAP//AJQAAAUNBwkCJgDcAAABBwBqARUBPQAWALAARViwCC8bsQggPlmwEdywGtAwMf//AIYAAAQSBb8CJgDwAAABBwBqAI//8wAWALAARViwCC8bsQgcPlmwEdywGtAwMf//AGb/7AUeBwICJgAzAAABBwBqAQUBNgAWALAARViwDC8bsQwgPlmwJtywL9AwMf//AE//7AQ9BcwCJgBTAAABBwBqAIEAAAAWALAARViwBC8bsQQcPlmwItywK9AwMf//AF//7AUXBcQCBgEXAAD//wBP/+wEPQROAgYBGAAA//8AX//sBRcHBgImARcAAAEHAGoBEwE6ABYAsABFWLAMLxuxDCA+WbAm3LAv0DAx//8AT//sBD0FzAImARgAAAEGAGpzAAAWALAARViwBC8bsQQcPlmwJdywLtAwMf//AGv/7ATxBxgCJgDnAAABBwBqAOMBTAAWALAARViwEy8bsRMgPlmwJ9ywMNAwMf//AFH/7APoBcwCJgD/AAABBgBqWQAAFgCwAEVYsAgvG7EIHD5ZsCjcsDHQMDH//wA5/+sE3QbrAiYA3gAAAQcAcAChAUEACQCwAS+wENwwMQD//wAM/ksD1gWuAiYAXQAAAQYAcBIEAAkAsAEvsBDcMDEA//8AOf/rBN0HCQImAN4AAAEHAGoA0QE9ABYAsABFWLAPLxuxDyA+WbAX3LAg0DAx//8ADP5LA9YFzAImAF0AAAEGAGpCAAAWALAARViwDy8bsQ8cPlmwF9ywINAwMf//ADn/6wTdBzwCJgDeAAABBwCmAS8BPQAWALAARViwDy8bsQ8gPlmwFtywEtAwMf//AAz+SwP2Bf8CJgBdAAABBwCmAKAAAAAWALAARViwDy8bsQ8cPlmwFtywEtAwMf//AI4AAATuBwkCJgDhAAABBwBqAQ8BPQAWALAARViwCi8bsQogPlmwGdywItAwMf//AF8AAAPgBb8CJgD5AAABBgBqZ/MAFgCwAEVYsAkvG7EJHD5ZsBncsCLQMDH//wCbAAAGWAcKACYA5gsAACcALQS5AAABBwBqAcIBPgAWALAARViwCy8bsQsgPlmwINywKdAwMf//AI8AAAXJBb8AJgD+AAAAJwCNBEcAAAEHAGoBdP/zABYAsABFWLALLxuxCxw+WbAf3LAo0DAx//8AT//sBAMGAAIGAEgAAP//ABL+lwVCBbACJgAlAAAABwCtBQ0AA///AFr+mwP7BE4CJgBFAAAABwCtBEAAB///ABIAAAVCB7sCJgAlAAABBwCrBQUBPAAJALAEL7AL3DAxAP//AFr/7AP7BoUCJgBFAAABBwCrBI8ABgAJALAXL7Aq3DAxAP//ABIAAAVKB7ECJgAlAAABBwI3AL8BIQAXALAARViwBS8bsQUgPlmxDgn0sBTQMDEA//8AWv/sBNQGfAImAEUAAAEGAjdJ7AAWALAARViwFy8bsRccPlmwLdywM9AwMf//ABAAAAVCB64CJgAlAAABBwI4AMQBKwAXALAARViwBC8bsQQgPlmxDgn0sBPQMDEA////mv/sA/sGeQImAEUAAAEGAjhO9gAWALAARViwFy8bsRccPlmwLdywMtAwMf//ABIAAAVCB94CJgAlAAABBwI5AMMBEwAWALAARViwBC8bsQQgPlmwDtywEtAwMf//AFr/7ARXBqkCJgBFAAABBgI5Td4AFgCwAEVYsBcvG7EXHD5ZsCvcsDHQMDH//wASAAAFQgfWAiYAJQAAAQcCOgDEAQUAFgCwAEVYsAUvG7EFID5ZsAzcsBXQMDH//wBa/+wD+wahAiYARQAAAQYCOk7QABYAsABFWLAXLxuxFxw+WbAr3LA00DAx//8AEv6XBUIHNwImACUAAAAnAJ4AwwE2AQcArQUNAAMAEwCwAEVYsAUvG7EFID5ZsA3cMDEA//8AWv6bA/sGAQImAEUAAAAmAJ5NAAEHAK0EQAAHABMAsABFWLAXLxuxFxw+WbAu3DAxAP//ABIAAAVCB64CJgAlAAABBwI8AO8BMAAMALAEL7AO3LAZ0DAx//8AWv/sA/sGeQImAEUAAAEGAjx5+wAMALAXL7At3LA40DAx//8AEgAABUIHrgImACUAAAEHAjUA7wEwAAwAsAQvsA7csBnQMDH//wBa/+wD+wZ5AiYARQAAAQYCNXn7AAwAsBcvsC3csDjQMDH//wASAAAFQgg+AiYAJQAAAQcCPQDuATYADACwBC+wDtywGdAwMf//AFr/7AP7BwgCJgBFAAABBgI9eAAADACwFy+wLdywONAwMf//ABIAAAVCCBgCJgAlAAABBwJQAPEBPAAWALAARViwBC8bsQQgPlmwDtywG9AwMf//AFr/7AP7BuICJgBFAAABBgJQewYAFgCwAEVYsBcvG7EXHD5ZsCzcsDrQMDH//wAS/pcFQgccAiYAJQAAACcAoQD2ATYBBwCtBQ0AAwATALAARViwBC8bsQQgPlmwDtwwMQD//wBa/psD+wXmAiYARQAAACcAoQCAAAABBwCtBEAABwATALAARViwFy8bsRccPlmwLNwwMQD//wCU/p4ETAWwAiYAKQAAAAcArQTLAAr//wBT/pQECwROAiYASQAAAAcArQSPAAD//wCUAAAETAfCAiYAKQAAAQcAqwTKAUMACQCwBi+wDNwwMQD//wBT/+wECwaFAiYASQAAAQcAqwSDAAYACQCwCC+wHtwwMQD//wCUAAAETAczAiYAKQAAAQcApQCKAT4ACQCwBi+wF9wwMQD//wBT/+wECwX2AiYASQAAAQYApUMBAAkAsAgvsCncMDEA//8AlAAABQ8HuAImACkAAAEHAjcAhAEoABcAsABFWLAHLxuxByA+WbEPCfSwFdAwMQD//wBT/+wEyAZ8AiYASQAAAQYCNz3sABYAsABFWLAILxuxCBw+WbAh3LAn0DAx////1QAABEwHtQImACkAAAEHAjgAiQEyABcAsABFWLAGLxuxBiA+WbEPCfSwFNAwMQD///+O/+wECwZ5AiYASQAAAQYCOEL2ABYAsABFWLAILxuxCBw+WbAh3LAm0DAx//8AlAAABJIH5QImACkAAAEHAjkAiAEaABYAsABFWLAGLxuxBiA+WbAP3LAT0DAx//8AU//sBEsGqQImAEkAAAEGAjlB3gAWALAARViwCC8bsQgcPlmwH9ywJdAwMf//AJQAAARMB90CJgApAAABBwI6AIkBDAAWALAARViwBi8bsQYgPlmwD9ywFtAwMf//AFP/7AQLBqECJgBJAAABBgI6QtAAFgCwAEVYsAgvG7EIHD5ZsCHcsCjQMDH//wCU/p4ETAc+AiYAKQAAACcAngCIAT0BBwCtBMsACgATALAARViwBi8bsQYgPlmwENwwMQD//wBT/pQECwYBAiYASQAAACYAnkEAAQcArQSPAAAAEwCwAEVYsAgvG7EIHD5ZsCLcMDEA//8AowAAAhEHwgImAC0AAAEHAKsDeAFDAAkAsAIvsATcMDEA//8AjwAAAf0GfgImAI0AAAEHAKsDZP//AAkAsAIvsATcMDEA//8AlP6aAacFsAImAC0AAAAHAK0DeAAG//8AeP6eAZAF1QImAE0AAAAHAK0DXAAK//8AZv6UBR4FxAImADMAAAAHAK0FHQAA//8AT/6SBD0ETgImAFMAAAAHAK0Enf/+//8AZv/sBR4HuwImADMAAAEHAKsFHAE8ABMAsABFWLAMLxuxDCA+WbAf3DAxAP//AE//7AQ9BoUCJgBTAAABBwCrBJgABgAJALAEL7Ab3DAxAP//AGb/7AVhB7ECJgAzAAABBwI3ANYBIQAWALAARViwDC8bsQwgPlmwJNywKdAwMf//AE//7ATdBnwCJgBTAAABBgI3UuwAFgCwAEVYsAQvG7EEHD5ZsB7csCTQMDH//wAn/+wFHgeuAiYAMwAAAQcCOADbASsAFgCwAEVYsA0vG7ENID5ZsCLcsCfQMDH///+j/+wEPQZ5AiYAUwAAAQYCOFf2ABYAsABFWLAELxuxBBw+WbAe3LAj0DAx//8AZv/sBR4H3gImADMAAAEHAjkA2gETABYAsABFWLAMLxuxDCA+WbAg3LAm0DAx//8AT//sBGAGqQImAFMAAAEGAjlW3gAWALAARViwBC8bsQQcPlmwHNywItAwMf//AGb/7AUeB9YCJgAzAAABBwI6ANsBBQAWALAARViwDC8bsQwgPlmwINywKdAwMf//AE//7AQ9BqECJgBTAAABBgI6V9AAFgCwAEVYsAQvG7EEHD5ZsBzcsCXQMDH//wBm/pQFHgc3AiYAMwAAACcAngDaATYBBwCtBR0AAAATALAARViwDC8bsQwgPlmwI9wwMQD//wBP/pIEPQYBAiYAUwAAACYAnlYAAQcArQSd//4AEwCwAEVYsAQvG7EEHD5ZsB3cMDEA//8AWP/sBaoHMwImAJgAAAEHAHUB0wEzABMAsABFWLANLxuxDSA+WbAp3DAxAP//AE//7AS7BgACJgCZAAABBwB1AVgAAAATALAARViwBC8bsQQcPlmwJdwwMQD//wBY/+wFqgczAiYAmAAAAQcARAE0ATMAEwCwAEVYsA0vG7ENID5ZsCjcMDEA//8AT//sBLsGAAImAJkAAAEHAEQAuQAAABMAsABFWLAELxuxBBw+WbAk3DAxAP//AFj/7AWqB7gCJgCYAAABBwCrBRYBOQATALAARViwDS8bsQ0gPlmwNdwwMQD//wBP/+wEuwaFAiYAmQAAAQcAqwSbAAYAEwCwAEVYsAQvG7EEHD5ZsCPcMDEA//8AWP/sBaoHKQImAJgAAAEHAKUA1gE0ABMAsABFWLANLxuxDSA+WbAq3DAxAP//AE//7AS7BfYCJgCZAAABBgClWwEAEwCwAEVYsAQvG7EEHD5ZsCbcMDEA//8AWP6UBaoGLgImAJgAAAAHAK0FBgAA//8AT/6LBLsEqAImAJkAAAAHAK0Emv/3//8Aff6UBL0FsAImADkAAAAHAK0E8gAA//8Ad/6UA/cEOgImAFkAAAAHAK0EQgAA//8Aff/sBL0HuwImADkAAAEHAKsE8wE8AAkAsAAvsBHcMDEA//8Ad//sA/cGhQImAFkAAAEHAKsEkQAGAAkAsAYvsBHcMDEA//8Aff/sBj0HQgImAJoAAAEHAHUB1wFCABMAsABFWLAYLxuxGCA+WbAb3DAxAP//AHf/7AUoBewCJgCbAAABBwB1AVf/7AATALAARViwEy8bsRMcPlmwHNwwMQD//wB9/+wGPQdCAiYAmgAAAQcARAE4AUIAEwCwAEVYsBEvG7ERID5ZsBrcMDEA//8Ad//sBSgF7AImAJsAAAEHAEQAuP/sABMAsABFWLANLxuxDRw+WbAb3DAxAP//AH3/7AY9B8cCJgCaAAABBwCrBRoBSAATALAARViwGC8bsRggPlmwJ9wwMQD//wB3/+wFKAZxAiYAmwAAAQcAqwSa//IAEwCwAEVYsBMvG7ETHD5ZsCjcMDEA//8Aff/sBj0HOAImAJoAAAEHAKUA2gFDABMAsABFWLAYLxuxGCA+WbAc3DAxAP//AHf/7AUoBeICJgCbAAABBgClWu0AEwCwAEVYsBMvG7ETHD5ZsB3cMDEA//8Aff6LBj0GAQImAJoAAAAHAK0FGf/3//8Ad/6UBSgEkwImAJsAAAAHAK0EjgAA//8AB/6kBNYFsAImAD0AAAAHAK0ExgAQ//8ADP4PA9YEOgImAF0AAAAHAK0FRv97//8ABwAABNYHuwImAD0AAAEHAKsEygE8AAkAsAEvsAncMDEA//8ADP5LA9YGhQImAF0AAAEHAKsEWQAGAAkAsAEvsBDcMDEA//8ABwAABNYHLAImAD0AAAEHAKUAigE3AAkAsAEvsBTcMDEA//8ADP5LA9YF9gImAF0AAAEGAKUZAQAJALABL7Ab3DAxAP//AE/+rgSyBgAAJgBIAAAAJwImAYUCQgEHAEMAmf9tABIAsi8cAV2yHxwBcbKfHAFdMDH//wAt/poEsAWwAiYAOAAAAAcCUQJNAAD//wAj/poD0AQ6AiYA9gAAAAcCUQHmAAD//wCO/poE7gWwAiYA4QAAAAcCUQLPAAD//wBf/poD4AQ7AiYA+QAAAAcCUQHGAAD//wCb/poENwWwAiYAsQAAAAcCUQEHAAD//wCF/poDTQQ6AiYA7AAAAAcCUQDsAAD//wAW/kMFvAXEAiYBTAAAAAcCUQLt/6n////L/kYEiwROAiYBTQAAAAcCUQH1/6z//wB5AAAD+AYAAgYATAAAAAL/0AAABMEFsAATABwAcbIAHR4REjmwFtAAsABFWLAQLxuxECA+WbAARViwCi8bsQoQPlmyExAKERI5sBMvsQAHsAorWCHYG/RZsgIQChESObACL7AAELAM0LATELAO0LACELEUAbAKK1gh2Bv0WbAKELEVAbAKK1gh2Bv0WTAxASMVITIWFhUUBAchESM1MzUzFTMDESEyNjU0JicCbeABKqDufP7r7/3TwMD94OABKYCPjHwER8RuyoXM+AIER6q/v/3H/hKLc26AAgAAAv/QAAAEwQWwABMAHABxsgAdHhESObAW0ACwAEVYsBAvG7EQID5ZsABFWLAKLxuxChA+WbITEAoREjmwEy+xAAewCitYIdgb9FmyAhAKERI5sAIvsAAQsAzQsBMQsA7QsAIQsRQBsAorWCHYG/RZsAoQsRUBsAorWCHYG/RZMDEBIxUhMhYWFRQEByERIzUzNTMVMwMRITI2NTQmJwJt4AEqoO58/uvv/dPAwP3g4AEpgI+MfARHxG7Khcz4AgRHqr+//cf+EotzboACAAAB//AAAAQ3BbAADQBLALAARViwCC8bsQggPlmwAEVYsAIvG7ECED5Zsg0IAhESObANL7EAB7AKK1gh2Bv0WbAE0LANELAG0LAIELEKAbAKK1gh2Bv0WTAxASMRIxEjNTMRIRUhETMCjfb8q6sDnP1g9gKf/WECn6oCZ8z+ZQAB/+IAAANNBDoADQBLALAARViwCC8bsQgcPlmwAEVYsAIvG7ECED5Zsg0IAhESObANL7EAB7AKK1gh2Bv0WbAE0LANELAG0LAIELEKAbAKK1gh2Bv0WTAxASERIxEjNTMRIRUhFSECf/748qOjAsj+KgEIAdH+LwHRqgG/xPsAAAH/4wAABUQFsAAUAHYAsABFWLAILxuxCCA+WbAARViwEC8bsRAgPlmwAEVYsAIvG7ECED5ZsABFWLATLxuxExA+WbIOCAIREjmwDi+xAQGwCitYIdgb9FmyBwgCERI5sAcvsQQBsAorWCHYG/RZsAcQsArQsAQQsAzQshIBDhESOTAxASMRIxEjNTM1MxUzFSMVMwEhAQEhAles/MzM/NXViwGsATb+DAIg/tACcP2QBD+qx8eq8wJk/Uf9CQAB/64AAARJBgAAFAB2ALAARViwCC8bsQgiPlmwAEVYsBAvG7EQHD5ZsABFWLACLxuxAhA+WbAARViwEy8bsRMQPlmyDhACERI5sA4vsQEBsAorWCHYG/RZsgcIEBESObAHL7EEB7AKK1gh2Bv0WbAHELAK0LAEELAM0LISAQ4REjkwMQEjESMRIzUzNTMVMxUjETMBIQEBIQH2b/Ln5/LExGkBDwEc/p8Bj/7mAdn+JwS7qpubqv3hAZ7+Ef21AAABAAcAAATWBbAADgBXsgoPEBESOQCwAEVYsAgvG7EIID5ZsABFWLALLxuxCyA+WbAARViwAi8bsQIQPlmyBgIIERI5sAYvsQUHsAorWCHYG/RZsAHQsgoIAhESObAGELAO0DAxASMRIxEjNTMBIQEBIQEzA8PV/sp6/mcBGQFPAU8BGP5nhgIE/fwCBKoDAv1OArL8/gABACD+XwP1BDoADgBksgoPEBESOQCwAEVYsAgvG7EIHD5ZsABFWLALLxuxCxw+WbAARViwAi8bsQISPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbEGB7AKK1gh2Bv0WbIKCwAREjmwDdCwDtAwMQUjESMRIzUzATMTEzMBMwNg3PPOov67+/Ps+/68rwH+YAGgqgOR/QEC//xvAAEAKQAABOkFsAARAGQAsABFWLALLxuxCyA+WbAARViwDi8bsQ4gPlmwAEVYsAIvG7ECED5ZsABFWLAFLxuxBRA+WbIRCwIREjmwES+xAAewCitYIdgb9FmyBAsCERI5sAfQsBEQsAnQsg0LAhESOTAxASMBIQEBIQEjNTMBIQEBIQEzA9uHAZX+2f7H/sb+2gGWgXP+ggEkATIBMgEk/oN5ApX9awIW/eoClaoCcf3yAg79jwAAAQAfAAAD6AQ6ABEAZACwAEVYsAsvG7ELHD5ZsABFWLAOLxuxDhw+WbAARViwAi8bsQIQPlmwAEVYsAUvG7EFED5ZshEOAhESObARL7EAB7AKK1gh2Bv0WbIEDgIREjmwB9CwERCwCdCyDQ4CERI5MDEBIwEhAwMhASM1MwEhExMhATMDV5UBJv702Nf+8gElioL+7wEMys4BDv7ujAHX/ikBcv6OAdeqAbn+nAFk/kcA//8AYP/sBAwETQIGAL8AAP//AAIAAAQxBbACJgAqAAAABwIm/3L+af//AIICbQXQAzEARgGvhQBmZkAA//8AUQAABEAFxAIGABYAAP//AE//7AQVBcQCBgAXAAD//wA0AAAEWAWwAgYAGAAA//8Agf/sBDoFsAIGABkAAP//AIn/7ARLBbcABgAaFAD//wB8/+wENgXEAAYAHBQA//8AXf/6BBIFxAAGAB0AAP//AH3/7AQ2BcQABgAUFAD//wBq/+wE8AdLAiYAKwAAAQcAdQG9AUsACQCwCy+wIdwwMQD//wBS/lYEDAYAAiYASwAAAQcAdQE/AAAACQCwAy+wJ9wwMQD//wCUAAAFFwc2AiYAMgAAAQcARAFMATYAEwCwAEVYsAYvG7EGID5ZsAvcMDEA//8AeQAAA/gGAAImAFIAAAEHAEQAswAAABMAsABFWLAALxuxABw+WbAS3DAxAP//ABIAAAVCByECJgAlAAABBwCsBHcBMwAWALAARViwBC8bsQQgPlmwDNywENAwMf//AA3/7AP7BewCJgBFAAABBwCsBAH//gAWALAARViwFy8bsRccPlmwK9ywL9AwMf//AEgAAARMBygCJgApAAABBwCsBDwBOgAWALAARViwBi8bsQYgPlmwDdywEdAwMf//AAH/7AQLBewCJgBJAAABBwCsA/X//gAWALAARViwCC8bsQgcPlmwH9ywI9AwMf///vYAAAIeBygCJgAtAAABBwCsAuoBOgAWALAARViwAi8bsQIgPlmwBdywCdAwMf///uIAAAIKBeQCJgCNAAABBwCsAtb/9gAWALAARViwAi8bsQIcPlmwBdywCdAwMf//AGb/7AUeByECJgAzAAABBwCsBI4BMwAWALAARViwDC8bsQwgPlmwINywJNAwMf//ABb/7AQ9BewCJgBTAAABBwCsBAr//gAWALAARViwBC8bsQQcPlmwHNywINAwMf//ADIAAATeByECJgA2AAABBwCsBCYBMwAWALAARViwBC8bsQQgPlmwGdywHdAwMf///24AAAK0BewCJgBWAAABBwCsA2L//gAWALAARViwBy8bsQccPlmwD9ywE9AwMf//AHH/7AS9ByECJgA5AAABBwCsBGUBMwAWALAARViwCS8bsQkgPlmwEtywFtAwMf//AA//7AP3BewCJgBZAAABBwCsBAP//gAWALAARViwBy8bsQccPlmwEtywFtAwMf///qwAAAUCBkEAJgDQZAAABwCu/eYAAP//AJT+ngSjBbACJgAmAAAABwCtBLkACv//AHz+iwQyBgACJgBGAAAABwCtBMv/9///AJT+ngTSBbACJgAoAAAABwCtBJQACv//AE/+lAQDBgACJgBIAAAABwCtBLQAAP//AJT+AwTSBbACJgAoAAAABwG6AUj+nP//AE/9+QQDBgACJgBIAAABBwG6AWj+kgAMALYwHkAeUB4DXTAx//8AlP6eBRgFsAImACwAAAAHAK0FJgAK//8Aef6eA/gGAAImAEwAAAAHAK0EoQAK//8AlAAABRgHNgImAC8AAAEHAHUBbgE2AAkAsAQvsA/cMDEA//8AfQAABDYHPQImAE8AAAEHAHUBawE9AAkAsAQvsA/cMDEA//8AlP7fBRgFsAImAC8AAAAHAK0E6QBL//8Aff7KBDYGAAImAE8AAAAHAK0EeQA2//8AlP6eBCYFsAImADAAAAAHAK0EuQAK//8AeP6eAYsGAAImAFAAAAAHAK0DXAAK//8AlP6eBmoFsAImADEAAAAHAK0F1gAK//8AfP6eBnkETgImAFEAAAAHAK0F2QAK//8AlP6aBRcFsAImADIAAAAHAK0FKAAG//8Aef6eA/gETgImAFIAAAAHAK0EjQAK//8AZv/sBR4H3wImADMAAAEHAjYFBQFTABYAsABFWLAMLxuxDCA+WbAi3LA10DAx//8AlAAABNQHQgImADQAAAEHAHUBcgFCAAkAsAMvsBbcMDEA//8AfP5gBDAF9wImAFQAAAEHAHUBnf/3AAkAsAwvsB3cMDEA//8AlP6eBN4FsAImADYAAAAHAK0EugAK//8Acv6eArQETgImAFYAAAAHAK0DVgAK//8ASv6UBIoFxAImADcAAAAHAK0E1QAA//8AS/6LA8oETgImAFcAAAAHAK0EfP/3//8ALf6XBLAFsAImADgAAAAHAK0EwwAD//8ACP6UAnIFQQImAFgAAAAHAK0EFAAA//8Aff/sBL0H3wImADkAAAEHAjYE3AFTAAwAsAAvsBrcsCXQMDH//wASAAAFHQc4AiYAOgAAAQcApQCwAUMACQCwAS+wEtwwMQD//wAWAAAD2gXtAiYAWgAAAQYApRj4AAkAsAEvsBLcMDEA//8AEv6eBR0FsAImADoAAAAHAK0E7wAK//8AFv6eA9oEOgImAFoAAAAHAK0EVwAK//8AMP6eBuUFsAImADsAAAAHAK0F5gAK//8AIf6eBcwEOgImAFsAAAAHAK0FTgAK//8AUP6eBIwFsAImAD4AAAAHAK0EwQAK//8AUv6eA8AEOgImAF4AAAAHAK0EYwAK///+HP/sBWQF1wAmADNGAAAHAXH9tQAA//8ACQAABJQFHgImAjMAAAAHAK7/dv7d////KgAAA/EFIQAmAig8AAAHAK7+ZP7g////NwAABKQFHAAmAeQ8AAAHAK7+cf7b////OQAAAbMFIQAmAeM8AAAHAK7+c/7g////k//wBHkFHgAmAd0KAAAHAK7+zf7d///+6AAABHIFHgAmAdM8AAAHAK7+Iv7d////pAAABI4FHgAmAfMKAAAHAK7+3v7d//8ACQAABJQEjQIGAjMAAP//AHYAAAQKBI0CBgIyAAD//wB2AAADtQSNAgYCKAAA//8AQQAAA/MEjQIGAdIAAP//AHYAAARoBI0CBgHkAAD//wCFAAABdwSNAgYB4wAA//8AdgAABGgEjQIGAeEAAP//AHYAAAWPBI0CBgHfAAD//wB2AAAEZwSNAgYB3gAA//8AT//wBG8EnQIGAd0AAP//AHYAAAQsBI0CBgHcAAD//wAkAAAEFgSNAgYB2AAA//8ABQAABDYEjQIGAdMAAP//ABUAAARKBI0CBgHUAAD///+dAAACYwXqAiYB4wAAAQcAav9AAB4AFgCwAEVYsAIvG7ECHj5ZsAvcsBTQMDH//wAFAAAENgXqAiYB0wAAAQYAalkeABYAsABFWLAILxuxCB4+WbAQ3LAZ0DAx//8AdgAAA7UF6gImAigAAAEGAGphHgAWALAARViwBi8bsQYePlmwE9ywHNAwMf//AHYAAAOXBh4CJgHqAAABBwB1ASMAHgAJALAEL7AI3DAxAP//AD7/8APvBJ0CBgHZAAD//wCFAAABdwSNAgYB4wAA////nQAAAmMF6gImAeMAAAEHAGr/QAAeABYAsABFWLACLxuxAh4+WbAL3LAU0DAx//8AJP/wA2QEjQIGAeIAAP//AHYAAARoBh4CJgHhAAABBwB1ARcAHgAJALAEL7AP3DAxAP//AB//7AQ5BgQCJgIBAAABBgCheh4AEwCwAEVYsA8vG7EPHj5ZsBPcMDEA//8ACQAABJQEjQIGAjMAAP//AHYAAAQKBI0CBgIyAAD//wB2AAADlwSNAgYB6gAA//8AdgAAA7UEjQIGAigAAP//AHYAAARuBgQCJgH+AAABBwChALoAHgATALAARViwCC8bsQgePlmwDdwwMQD//wB2AAAFjwSNAgYB3wAA//8AdgAABGgEjQIGAeQAAP//AE//8ARvBJ0CBgHdAAD//wB2AAAEYgSNAgYB7wAA//8AdgAABCwEjQIGAdwAAP//AE//8ARDBJ0CBgIxAAD//wAkAAAEFgSNAgYB2AAA//8AFQAABEoEjQIGAdQAAAABAEL+OQPnBJ0AKACnsicpKhESOQCwFy+wAEVYsAovG7EKHj5ZsABFWLAZLxuxGRA+WbAKELEDAbAKK1gh2Bv0WbIGChkREjmyJxkKERI5sCcvsl8nAXKyPycBcbLPJwFxsv8nAXGyDycBcrRvJ38nAnG0rye/JwJdso8nAXKyvycBcrEkAbAKK1gh2Bv0WbIQJCcREjmwGRCwFtCyHRkKERI5sBkQsR8BsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYWFRQGBxEjESYmNTMWMzI2NTQnIzUzNgLicGtbZvPzw9j0bl1vbrus85uw8wvKd3TglJrHA0NGT0Y8lLOnlluKJySRW4auGP5BAcIYrIeTV0imA7AEAAEAdv6aBSwEjQAPAKqyAxARERI5ALAARViwDC8bsQwePlmwAEVYsAkvG7EJHj5ZsABFWLABLxuxARg+WbAARViwBi8bsQYQPlmwAEVYsAMvG7EDED5ZsgoGCRESObAKL7SvCr8KAl2yPwoBcbLPCgFxsj8KAXKy/woBcbIPCgFytG8KfwoCcbTfCu8KAl20HwovCgJdsl8KAXKxBQGwCitYIdgb9FmwAxCxDgewCitYIdgb9FkwMQEjESMRIREjETMRIREzETMFLPPE/fTz8wIM88T+mgFmAdv+JQSN/hEB7/woAAEAT/5DBEMEnQAeAGCyGx8gERI5ALAARViwDi8bsQ4ePlmwAEVYsAQvG7EEEj5ZsABFWLADLxuxAxA+WbAG0LISDgMREjmwDhCxFQGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FmyHgMOERI5MDEBBgYHESMRJgInNTQ2NjMyBBcjJiYjIBEVFBYzMjY3BEIMxqnztc8Bfuyc1gEEFPMMfXL+7YaHeHwNAYSf0Bv+SQG5JAEf3U+p/4rawnBp/o5IubVicP//AAUAAAQ2BI0CBgHTAAD//wAK/joFqASjAiYCFwAAAAcCUQLm/6D//wB2AAAEbgXMAiYB/gAAAQcAcACCACIACQCwAC+wCtwwMQD//wAf/+wEOQXMAiYCAQAAAQYAcEIiAAkAsAIvsBDcMDEA//8AUAAABU0EjQIGAfEAAP//AIX/8AVgBI0AJgHjAAAABwHiAfwAAP////EAAAYDBgACJgJzAAAABwB1AoMAAP//AE//yQRvBh4CJgJ1AAAABwB1AXQAHv//AD79+QPvBJ0CJgHZAAAABwG6ATv+kv//ACgAAAXlBh4CJgHVAAAABwBEAXkAHv//ACgAAAXlBh4CJgHVAAAABwB1AhgAHv//ACgAAAXlBeoCJgHVAAAABwBqAUQAHv//AAUAAAQ2Bh4CJgHTAAAABwBEAI4AHv//ABL+VQVCBbACJgAlAAAABwCkAYIAA///AFr+WQP7BE4CJgBFAAAABwCkALUAB///AJT+XARMBbACJgApAAAABwCkAUAACv//AFP+UgQLBE4CJgBJAAAABwCkAQQAAP//AAn+UgSUBI0CJgIzAAAABwCkASMAAP//AHb+WgO1BI0CJgIoAAAABwCkAO4ACP//AHj+ngGLBDoCJgCNAAAABwCtA1wACgAAABwBVgABAAAAAAAAAC8AAAABAAAAAAABAA0ALwABAAAAAAACAAcAPAABAAAAAAADAA0ALwABAAAAAAAEAA0ALwABAAAAAAAFABMAQwABAAAAAAAGAA0AVgABAAAAAAAHACAAYwABAAAAAAAJAAYAgwABAAAAAAALAAoAiQABAAAAAAAMABMAkwABAAAAAAANAC4ApgABAAAAAAAOACoA1AADAAEECQAAAF4A/gADAAEECQABABoBXAADAAEECQACAA4BdgADAAEECQADABoBXAADAAEECQAEABoBXAADAAEECQAFACYBhAADAAEECQAGABoBqgADAAEECQAHAEABxAADAAEECQAJAAwCBAADAAEECQALABQCEAADAAEECQAMACYCJAADAAEECQANAFwCSgADAAEECQAOAFQCpgADAAEECQAQAAwC+gADAAEECQARAAwDBkNvcHlyaWdodCAyMDExIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuUm9ib3RvIE1lZGl1bVJlZ3VsYXJWZXJzaW9uIDIuMTM3OyAyMDE3Um9ib3RvLU1lZGl1bVJvYm90byBpcyBhIHRyYWRlbWFyayBvZiBHb29nbGUuR29vZ2xlR29vZ2xlLmNvbUNocmlzdGlhbiBSb2JlcnRzb25MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4waHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEAMQAgAEcAbwBvAGcAbABlACAASQBuAGMALgAgAEEAbABsACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgBSAG8AYgBvAHQAbwAgAE0AZQBkAGkAdQBtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADIALgAxADMANwA7ACAAMgAwADEANwBSAG8AYgBvAHQAbwAtAE0AZQBkAGkAdQBtAFIAbwBiAG8AdABvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAARwBvAG8AZwBsAGUALgBHAG8AbwBnAGwAZQBHAG8AbwBnAGwAZQAuAGMAbwBtAEMAaAByAGkAcwB0AGkAYQBuACAAUgBvAGIAZQByAHQAcwBvAG4ATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMABSAG8AYgBvAHQAbwBNAGUAZABpAHUAbQADAAAAAAAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgAIAAL//wAPAAEAAgAOAAAAAAAAAigAAgBZACUAPgABAEUAXgABAHkAeQABAIEAgQABAIMAgwABAIYAhgABAIkAiQABAIsAlgABAJgAnQABAKQApAABAKgArQADALEAsQABALoAuwABAL8AvwABAMEAwQABAMMAwwABAMcAxwABAMsAywABAM0AzgABANAA0QABANMA0wABANoA3gABAOEA4QABAOUA5QABAOcA6QABAOsA+wABAP0A/QABAP8BAQABAQMBAwABAQgBCQABARYBGgABARwBHAABASABIgABASQBJQADASoBKwABATMBNAABATYBNgABATsBPAABAUEBRAABAUcBSAABAUsBTQABAVEBUQABAVQBWAABAV0BXgABAWIBYgABAWQBZAABAWgBaAABAWoBbAABAW4BbgABAXABcAABAboBugADAbsBwQACAdIB5gABAeoB6gABAfMB8wABAfUB9QABAfwB/gABAgACAQABAgMCAwABAgcCBwABAgkCCwABAhECEQABAhYCGAABAhoCGgABAigCKAABAisCKwABAi0CLQABAjACMwABAl8CYwABAnoC4gABAuUDiwABA40DpAABA6YDsgABA7QDvQABA78D2gABA94D3gABA+AD5wABA+kD6wABA+4D8gABA/QEfAABBH8EfwABBIIEgwABBIUEhgABBIgEiwABBJUE0AABBNIE8QABBPME+gABBPwE/QABBQcFDQABAAEAAgAAAAwAAAAsAAEADgCoAKgAqQCpAKoAqgCrAKsArACsASQBJQEmAScAAQAFAHkApACtAK0BugAAAAEAAAAKADIATAAEREZMVAAaY3lybAAaZ3JlawAabGF0bgAaAAQAAAAA//8AAgAAAAEAAmNwc3AADmtlcm4AFAAAAAEAAAAAAAEAAQACAAYCEAABAAAAAQAIAAEACgAFACQASAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQACAAAAAgAKQXoAAQPuAAQAAAHyB9A8GDwYB/4IYD5QPwg8HkEuPtQIZj92P3Y/Ej9gP3Y/dkEuP6IMBAzSP+xAvkD2PDA92kEUDUg+sj/APNoNjg7EDs4/mD+YPuI/wD/aD9BA3BA2PIpA3BBQP8BBLhCWPRg+UEEuPlARGBIWExgT+hScQNwUoj+YF4gZehqYGrIauBq+Hbgdvh34Hi4euCBCIgwj4j92JTAm2jwwKTw/dj92PJA/dj92P3YqEivAP3Y87iyqLXAuAi5kL0o85C/cPIowsjDcMrY/wDZANn43vDmKP8A4RjjUOP45VDmKPlA+4kC+QNw5sD/APRg85DwwPIo/Ej8SPxI/djwwPIo/dj92QS485DwwPIo8GDnaPBg8GDwYQWo7ZDuyQWQ8DkFMQVJBZEFSQUxBTEFMQUw8AEFSPB5BLkEuQS5BLj/sPlA+UD5QPlA+UD5QPlA8Hj7UPtQ+1D7UP3Y/dj92P3Y/dkEuQS5BLkEuQS492j6yPrI+sj6yPrI+sj6yPNo82jzaPNo/mD7iPuI+4j7iPuJA3EDcPlA+sj5QPrI+UD6yPB48HjwePB5BLj7UPNo+1DzaPtQ82j7UPNo+1DzaP3Y/mD92P3Y/dj92P3Y/Ej9gP2A/YD9gP3Y/mD92P5g/dj+YP5hBLj7iQS4+4kEuPuI/2j/aP9o/7D/sP+xA9j3aQNw92kEUQRRBFEFkQWRBakFSQVJBUkFSQVJBUkFSQWRBZEFkQWRBZEFSQVJBUkFkQUw8DjwOPA48DkFkQWRBZEFqPlA+1D92P3ZBLj3aPlA/CD7UQRQ/dj92PxI/dj92QS4/oj/sPdo8MD92Pdo/mD7iQNw+4j7UPRg/dj92PxI/EjyQPlA/CD0YPtQ/dj92QS4/ojweP+w8MD6yPNo+4j/AQNw8ijzaPORA3ED2QPZA9j3aQNw8GDwYPBg/dj+YPlA+sj7UPNpAvkDcPB492kDcP3Y8MDyKP3Y+UD6yPlA+sj7UPNo82jzaPDA8ikEuPuI+4j/APJBA3DyQQNw8kEDcPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPtQ82j7UPNo+1DzaPtQ82j7UPNo+1DzaPtQ82j7UPNo/dj92QS4+4kEuPuJBLj7iQS4+4kEuPuJBLj7iQS4+4j7iPdpA3D3aQNw92kDcP+w9GDzkP5g87j0YPxI92j92P5g+UD6yPtQ/dkEuPuI/2j8IP8BBLkEuP3Y/mD8SPxI/YD92P5g/dj+YQS4/oj/AP9o/7EC+QNxAvkDcQPZBFEEuQVJBZEFSQUxBakFMQVJBZEFqAAIApQAEAAQAAAAGAAYAAQALAAwAAgATABMABAAlACoABQAsAC0ACwAvADYADQA4ADgAFQA6AD8AFgBFAEYAHABJAEoAHgBMAEwAIABPAE8AIQBRAFQAIgBWAFYAJgBYAFgAJwBaAF0AKABfAF8ALACKAIoALQCWAJYALgCdAJ0ALwCxALUAMAC3ALkANQC7ALsAOAC9AL0AOQDAAMEAOgDDAMMAPADFAMUAPQDHAM4APgDSANIARgDUAN4ARwDgAO8AUgDxAPEAYgD2APgAYwD7APwAZgD+AQAAaAEDAQUAawEKAQoAbgENAQ0AbwEYARoAcAEiASIAcwEuATAAdAEzATUAdwE3ATcAegE5ATkAewE7ATsAfAFDAUQAfQFUAVQAfwFWAVYAgAFYAVgAgQFcAV4AggGEAYUAhQGHAYkAhwHYAdgAigHaAdsAiwHdAd0AjQHgAeEAjgHrAe0AkAH/Af8AkwIOAhAAlAIwAjAAlwIzAjMAmAJFAkUAmQJHAkgAmgJ6AnsAnAJ9An0AngJ/ApQAnwKZAqAAtQKiAqUAvQKqAq8AwQK0ArwAxwK+Ar4A0ALAAsAA0QLCAsIA0gLEAsQA0wLGAs8A1ALYAtoA3gLcAtwA4QLeAt4A4gLgAuAA4wLiAuIA5ALnAucA5QLpAukA5gLrAusA5wLtAu0A6ALvAu8A6QLxAv0A6gL/Av8A9wMBAwEA+AMDAwMA+QMOAw4A+gMQAxAA+wMSAxIA/AMgAyAA/QMiAyUA/gMnAycBAgMpAykBAwMvAzgBBANDA0cBDgNNA08BEwNUA1QBFgNlA2kBFwNtA28BHAN4A3gBHwOGA4sBIAOOA50BJgOgA6ABNgOkA6QBNwOmA6YBOAOqA6oBOQOtA64BOgOwA7EBPAOzA7kBPgO7A70BRQO/A8QBSAPGA8cBTgPJA8wBUAPSA9MBVAPVA9UBVgPXA9cBVwPZA9wBWAPfA+QBXAPmA+YBYgPqA+sBYwPwA/ABZQPyA/sBZgP+A/8BcAQBBAQBcgQLBAwBdgQQBBABeAQSBBgBeQQeBEYBgARIBEgBqQRKBFcBqgRfBF8BuARwBHUBuQR3BHcBvwR7BHwBwAR/BH8BwgSBBIIBwwSEBIQBxQSGBIYBxgSXBJsBxwSdBJ0BzASfBKABzQSiBKIBzwSmBKgB0ASqBKoB0wSsBK4B1ASwBLAB1wSyBLIB2AS0BLoB2QS8BLwB4AS/BL8B4QTCBMYB4gTIBMgB5wTKBMsB6ATPBM8B6gTSBNIB6wTYBNgB7ATdBN0B7QToBOgB7gTqBOoB7wTxBPEB8AT1BPUB8QALADj/xADS/8QA1v/EATn/xAFF/8QDDv/EAxD/xAMS/8QDwf/EBHf/xAS//8QAGAA6ABQAOwAmAD0AFgEZABQCmQAWAyAAJgMiABYDJAAWA4sAFgOaABYDnQAWA9MAJgPVACYD1wAmA9kAFgPqABQD8gAWBHAAFgRyABYEdAAWBIYAFgTCABQExAAUBMYAJgABABP/CADnABD+7gAS/u4AJf9AAC7/MAA4ABQARf/eAEf/6wBI/+sASf/rAEv/6wBT/+sAVf/rAFb/5gBZ/+oAWv/oAF3/6ACU/+sAmf/rAJv/6gCy/0AAtP9AALv/6wC9/+gAyP/rAMn/6wDL/+oA0gAUANYAFAD3/+sBA//rAQ3/QAEY/+sBGv/oAR7/6wEi/+sBOQAUAUL/6wFFABQBYP/rAWH/6wFr/+sBhv7uAYr+7gGO/u4Bj/7uAev/wAHt/8ACM//AAn//QAKA/0ACgf9AAoL/QAKD/0AChP9AAoX/QAKa/94Cm//eApz/3gKd/94Cnv/eAp//3gKg/94Cof/rAqL/6wKj/+sCpP/rAqX/6wKr/+sCrP/rAq3/6wKu/+sCr//rArD/6gKx/+oCsv/qArP/6gK0/+gCtf/oArb/QAK3/94CuP9AArn/3gK6/0ACu//eAr3/6wK//+sCwf/rAsP/6wLF/+sCx//rAsn/6wLL/+sCzf/rAs//6wLR/+sC0//rAtX/6wLX/+sC5f8wAvn/6wL7/+sC/f/rAw4AFAMQABQDEgAUAxX/6gMX/+oDGf/qAxv/6gMd/+oDH//qAyP/6AMy/8ADM//AAzT/wAM1/8ADNv/AAzf/wAM4/8ADTf/AA07/wANP/8ADhv9AA47/QAOe/+sDov/qA6T/6wOm/+gDqf/qA6r/6wOr/+oDsv8wA7b/QAPBABQDw//eA8T/6wPG/+sDyP/rA8n/6APL/+sD0v/oA9r/6APi/0AD4//eA+b/6wPr/+gD7P/rA/H/6wPz/+gD+P9AA/n/3gP6/0AD+//eA///6wQB/+sEAv/rBAz/6wQO/+sEEP/rBBT/6AQW/+gEGP/oBB3/6wQe/0AEH//eBCD/QAQh/94EIv9ABCP/3gQk/0AEJf/eBCb/QAQn/94EKP9ABCn/3gQq/0AEK//eBCz/QAQt/94ELv9ABC//3gQw/0AEMf/eBDL/QAQz/94ENP9ABDX/3gQ3/+sEOf/rBDv/6wQ9/+sEP//rBEH/6wRD/+sERf/rBEv/6wRN/+sET//rBFH/6wRT/+sEVf/rBFf/6wRZ/+sEW//rBF3/6wRf/+sEYf/rBGP/6gRl/+oEZ//qBGn/6gRr/+oEbf/qBG//6gRx/+gEc//oBHX/6AR3ABQEmf9ABJr/3gSc/+sEoP/rBKT/6gSp/+sEq//rBL8AFATD/+gExf/oBMv/wATS/8AE6v/AADMAOP/fADr/5AA7/+wAPf/dANL/3wDW/98BGf/kATn/3wFF/98B6wAOAe0ADgIzAA4Cmf/dAw7/3wMQ/98DEv/fAyD/7AMi/90DJP/dAzIADgMzAA4DNAAOAzUADgM2AA4DNwAOAzgADgNNAA4DTgAOA08ADgOL/90Dmv/dA53/3QPB/98D0//sA9X/7APX/+wD2f/dA+r/5APy/90EcP/dBHL/3QR0/90Ed//fBIb/3QS//98Ewv/kBMT/5ATG/+wEywAOBNIADgTqAA4AHQA4/84AOv/tAD3/0ADS/84A1v/OARn/7QE5/84BRf/OApn/0AMO/84DEP/OAxL/zgMi/9ADJP/QA4v/0AOa/9ADnf/QA8H/zgPZ/9AD6v/tA/L/0ARw/9AEcv/QBHT/0AR3/84Ehv/QBL//zgTC/+0ExP/tABEALv/uADn/7gKV/+4Clv/uApf/7gKY/+4C5f/uAxT/7gMW/+4DGP/uAxr/7gMc/+4DHv/uA7L/7gRi/+4EZP/uBMH/7gBNAAYAEAALABAADQAUAEEAEgBH/+gASP/oAEn/6ABL/+gAVf/oAGEAEwCU/+gAmf/oALv/6ADI/+gAyf/oAPf/6AED/+gBHv/oASL/6AFC/+gBYP/oAWH/6AFr/+gBhAAQAYUAEAGHABABiAAQAYkAEAKh/+gCov/oAqP/6AKk/+gCpf/oAr3/6AK//+gCwf/oAsP/6ALF/+gCx//oAsn/6ALL/+gCzf/oAs//6ALR/+gC0//oAtX/6ALX/+gDnv/oA8T/6API/+gDy//oA9sAEAPcABAD3wAQA+b/6APs/+gD8f/oA///6AQB/+gEAv/oBA7/6AQd/+gEN//oBDn/6AQ7/+gEPf/oBD//6ARB/+gEQ//oBEX/6ARZ/+gEW//oBF3/6ARh/+gEnP/oBKn/6ASr/+gAAgD2/9YBhf+YAEAAR//sAEj/7ABJ/+wAS//sAFX/7ACU/+wAmf/sALv/7ADI/+wAyf/sAPf/7AED/+wBHv/sASL/7AFC/+wBYP/sAWH/7AFr/+wCof/sAqL/7AKj/+wCpP/sAqX/7AK9/+wCv//sAsH/7ALD/+wCxf/sAsf/7ALJ/+wCy//sAs3/7ALP/+wC0f/sAtP/7ALV/+wC1//sA57/7APE/+wDyP/sA8v/7APm/+wD7P/sA/H/7AP//+wEAf/sBAL/7AQO/+wEHf/sBDf/7AQ5/+wEO//sBD3/7AQ//+wEQf/sBEP/7ARF/+wEWf/sBFv/7ARd/+wEYf/sBJz/7ASp/+wEq//sABkAU//iARj/4gGFABgCq//iAqz/4gKt/+ICrv/iAq//4gL5/+IC+//iAv3/4gOk/+IDqv/iA8b/4gQM/+IEEP/iBEv/4gRN/+IET//iBFH/4gRT/+IEVf/iBFf/4gRf/+IEoP/iAAYAEP+EABL/hAGG/4QBiv+EAY7/hAGP/4QAEQAu/+wAOf/sApX/7AKW/+wCl//sApj/7ALl/+wDFP/sAxb/7AMY/+wDGv/sAxz/7AMe/+wDsv/sBGL/7ARk/+wEwf/sACAABv/yAAv/8gBa//MAXf/zAL3/8wD2//UBGv/zAYT/8gGF//IBh//yAYj/8gGJ//ICtP/zArX/8wMj//MDpv/zA8n/8wPS//MD2v/zA9v/8gPc//ID3//yA+v/8wPz//MEFP/zBBb/8wQY//MEcf/zBHP/8wR1//MEw//zBMX/8wA/ACf/8wAr//MAM//zADX/8wCD//MAk//zAJj/8wCz//MAxAANANP/8wEI//MBF//zARv/8wEd//MBH//zASH/8wFB//MBav/zAkX/8wJG//MCSP/zAkn/8wKG//MCkP/zApH/8wKS//MCk//zApT/8wK8//MCvv/zAsD/8wLC//MC0P/zAtL/8wLU//MC1v/zAvj/8wL6//MC/P/zAy3/8wOK//MDl//zA73/8wPA//MD7f/zA/D/8wQL//MEDf/zBA//8wRK//METP/zBE7/8wRQ//MEUv/zBFT/8wRW//MEWP/zBFr/8wRc//MEXv/zBGD/8wSf//MEuP/zAEAAJ//mACv/5gAz/+YANf/mAIP/5gCT/+YAmP/mALP/5gC4/8IAxAAQANP/5gEI/+YBF//mARv/5gEd/+YBH//mASH/5gFB/+YBav/mAkX/5gJG/+YCSP/mAkn/5gKG/+YCkP/mApH/5gKS/+YCk//mApT/5gK8/+YCvv/mAsD/5gLC/+YC0P/mAtL/5gLU/+YC1v/mAvj/5gL6/+YC/P/mAy3/5gOK/+YDl//mA73/5gPA/+YD7f/mA/D/5gQL/+YEDf/mBA//5gRK/+YETP/mBE7/5gRQ/+YEUv/mBFT/5gRW/+YEWP/mBFr/5gRc/+YEXv/mBGD/5gSf/+YEuP/mADgAJf/kADz/0gA9/9MAsv/kALT/5ADE/+IA2v/SAQ3/5AEz/9IBQ//SAV3/0gJ//+QCgP/kAoH/5AKC/+QCg//kAoT/5AKF/+QCmf/TArb/5AK4/+QCuv/kAyL/0wMk/9MDhv/kA4v/0wOO/+QDmv/TA5v/0gOd/9MDtv/kA8L/0gPZ/9MD4v/kA/L/0wP1/9ID+P/kA/r/5AQD/9IEHv/kBCD/5AQi/+QEJP/kBCb/5AQo/+QEKv/kBCz/5AQu/+QEMP/kBDL/5AQ0/+QEcP/TBHL/0wR0/9MEhv/TBJn/5AAoABD/RgAS/0YAJf/NALL/zQC0/80Ax//yAQ3/zQGG/0YBiv9GAY7/RgGP/0YCf//NAoD/zQKB/80Cgv/NAoP/zQKE/80Chf/NArb/zQK4/80Cuv/NA4b/zQOO/80Dtv/NA+L/zQP4/80D+v/NBB7/zQQg/80EIv/NBCT/zQQm/80EKP/NBCr/zQQs/80ELv/NBDD/zQQy/80ENP/NBJn/zQABAMQADgC5AEf/3ABI/9wASf/cAEv/3ABR/8EAUv/BAFP/1gBU/8EAVf/cAFn/3QBa/+EAXf/hAJT/3ACZ/9wAm//dALv/3AC9/+EAv//mAMH/wQDC/+sAw//pAMX/8ADG/+cAyP/cAMn/3ADK/+MAy//dAMz/zgDN/9QAzv/bAOz/wQDw/8EA8f/BAPP/wQD0/8EA9f/BAPf/3AD4/8EA+v/BAPv/wQD+/8EBAP/BAQP/3AEF/8EBGP/WARr/4QEe/9wBIv/cASv/wQE2/8EBPP/BAT7/wQFC/9wBU//BAVX/wQFX/8EBXP/BAWD/3AFh/9wBa//cAqH/3AKi/9wCo//cAqT/3AKl/9wCqv/BAqv/1gKs/9YCrf/WAq7/1gKv/9YCsP/dArH/3QKy/90Cs//dArT/4QK1/+ECvf/cAr//3ALB/9wCw//cAsX/3ALH/9wCyf/cAsv/3ALN/9wCz//cAtH/3ALT/9wC1f/cAtf/3ALy/8EC9P/BAvb/wQL3/8EC+f/WAvv/1gL9/9YDFf/dAxf/3QMZ/90DG//dAx3/3QMf/90DI//hA57/3AOg/8EDov/dA6T/1gOm/+EDqf/dA6r/1gOr/90DxP/cA8X/wQPG/9YDx//BA8j/3APJ/+EDy//cA8z/wQPR/8ED0v/hA9r/4QPh/8ED5v/cA+f/wQPr/+ED7P/cA/H/3APz/+ED///cBAH/3AQC/9wECP/BBAr/wQQM/9YEDv/cBBD/1gQU/+EEFv/hBBj/4QQc/8EEHf/cBDf/3AQ5/9wEO//cBD3/3AQ//9wEQf/cBEP/3ARF/9wES//WBE3/1gRP/9YEUf/WBFP/1gRV/9YEV//WBFn/3ARb/9wEXf/cBF//1gRh/9wEY//dBGX/3QRn/90Eaf/dBGv/3QRt/90Eb//dBHH/4QRz/+EEdf/hBHz/wQSY/8EEnP/cBKD/1gSk/90Eqf/cBKv/3AS1/8EEt//BBMP/4QTF/+EAfAAG/9oAC//aAEf/8ABI//AASf/wAEv/8ABV//AAWf/vAFr/3ABd/9wAlP/wAJn/8ACb/+8Au//wAL3/3ADC/+wAxAAPAMb/6gDI//AAyf/wAMr/zgDL/+8AzP/nAPf/8AED//ABGv/cAR7/8AEi//ABQv/wAWD/8AFh//ABa//wAYT/2gGF/9oBh//aAYj/2gGJ/9oCof/wAqL/8AKj//ACpP/wAqX/8AKw/+8Csf/vArL/7wKz/+8CtP/cArX/3AK9//ACv//wAsH/8ALD//ACxf/wAsf/8ALJ//ACy//wAs3/8ALP//AC0f/wAtP/8ALV//AC1//wAxX/7wMX/+8DGf/vAxv/7wMd/+8DH//vAyP/3AOe//ADov/vA6b/3AOp/+8Dq//vA8T/8API//ADyf/cA8v/8APS/9wD2v/cA9v/2gPc/9oD3//aA+b/8APr/9wD7P/wA/H/8APz/9wD///wBAH/8AQC//AEDv/wBBT/3AQW/9wEGP/cBB3/8AQ3//AEOf/wBDv/8AQ9//AEP//wBEH/8ARD//AERf/wBFn/8ARb//AEXf/wBGH/8ARj/+8EZf/vBGf/7wRp/+8Ea//vBG3/7wRv/+8Ecf/cBHP/3AR1/9wEnP/wBKT/7wSp//AEq//wBMP/3ATF/9wARwAQAAwAEgAMAEf/5wBI/+cASf/nAEv/5wBV/+cAlP/nAJn/5wC7/+cAxAAPAMj/5wDJ/+cA9//nAQP/5wEe/+cBIv/nAUL/5wFg/+cBYf/nAWv/5wGGAAwBigAMAY4ADAGPAAwCof/nAqL/5wKj/+cCpP/nAqX/5wK9/+cCv//nAsH/5wLD/+cCxf/nAsf/5wLJ/+cCy//nAs3/5wLP/+cC0f/nAtP/5wLV/+cC1//nA57/5wPE/+cDyP/nA8v/5wPm/+cD7P/nA/H/5wP//+cEAf/nBAL/5wQO/+cEHf/nBDf/5wQ5/+cEO//nBD3/5wQ//+cEQf/nBEP/5wRF/+cEWf/nBFv/5wRd/+cEYf/nBJz/5wSp/+cEq//nAAYAyv/qAO3/7gD2/9UA/v/tATr/7AFt/+wAAQD2/8AAAQDKACAAvgAGAAwACwAMAEf/6ABI/+gASf/oAEoADABL/+gAU//qAFX/6ABaAAsAXQALAJT/6ACZ/+gAu//oAL0ACwDE/5AAxgALAMj/6ADJ/+gAygAMAPf/6AED/+gBGP/qARoACwEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEAAwBhQAMAYcADAGIAAwBiQAMAdMADQHWAA0B2AAOAdn/9QHb/+wB3f/tAeX/7AHr/78B7P/tAe3/vwH0AA4B9f/tAfgADgIQAA4CEf/tAhIADQIUAA4CGv/tAjH/7gIz/78Cof/oAqL/6AKj/+gCpP/oAqX/6AKr/+oCrP/qAq3/6gKu/+oCr//qArQACwK1AAsCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AL5/+oC+//qAv3/6gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/+gDpP/qA6YACwOq/+oDxP/oA8b/6gPI/+gDyQALA8v/6APSAAsD2gALA9sADAPcAAwD3wAMA+b/6APrAAsD7P/oA/H/6APzAAsD///oBAH/6AQC/+gEDP/qBA7/6AQQ/+oEFAALBBYACwQYAAsEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gES//qBE3/6gRP/+oEUf/qBFP/6gRV/+oEV//qBFn/6ARb/+gEXf/oBF//6gRh/+gEcQALBHMACwR1AAsEnP/oBKD/6gSp/+gEq//oBMMACwTFAAsEy/+/BM//7QTQAA0E0v+/BN4ADQThAA0E6v+/BPH/7QT0/+0E9QAOBPn/7QT6AA0AAQD2/+IADgBc/+0AXv/tAO7/7QD2/8ABNP/tAUT/7QFe/+0DJv/tAyj/7QMq/+0Dyv/tA/b/7QQE/+0Eyf/tAA0AXP/yAF7/8gDu//IBNP/yAUT/8gFe//IDJv/yAyj/8gMq//IDyv/yA/b/8gQE//IEyf/yACIAWv/0AFz/8gBd//QAXv/zAL3/9ADu//IBGv/0ATT/8gFE//IBXv/yArT/9AK1//QDI//0Ayb/8wMo//MDKv/zA6b/9APJ//QDyv/yA9L/9APa//QD6//0A/P/9AP2//IEBP/yBBT/9AQW//QEGP/0BHH/9ARz//QEdf/0BMP/9ATF//QEyf/zAGIABv/KAAv/ygA4/9IAOv/UADz/9AA9/9MAWv/mAFz/7wBd/+YAvf/mANL/0gDW/9IA2v/0AN7/7QDh/+EA5v/UAO7/7wD2/8kA/v/RAQn/5QEZ/9QBGv/mASD/4wEz//QBNP/vATn/0gE6/8QBQ//0AUT/7wFF/9IBR//hAUn/4QFd//QBXv/vAWL/1AFj//UBZP/nAWz/ZAFt/8kBhP/KAYX/ygGH/8oBiP/KAYn/ygKZ/9MCtP/mArX/5gMO/9IDEP/SAxL/0gMi/9MDI//mAyT/0wOL/9MDmv/TA5v/9AOd/9MDpv/mA7X/7QPB/9IDwv/0A8n/5gPK/+8D0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD6v/UA+v/5gPy/9MD8//mA/X/9AP2/+8EA//0BAT/7wQT/+0EFP/mBBX/7QQW/+YEF//tBBj/5gQZ/+EEcP/TBHH/5gRy/9MEc//mBHT/0wR1/+YEd//SBHn/4QSG/9MEv//SBML/1ATD/+YExP/UBMX/5gByAAb/wAAL/8AAOP+dADr/xwA8//AAPf+rAFH/0gBS/9IAVP/SAMH/0gDS/50A1P/1ANb/nQDa//AA3f/1AN7/6gDh/+UA5v/BAOz/0gDw/9IA8f/SAPP/0gD0/9IA9f/SAPb/zQD4/9IA+v/SAPv/0gD+/9IBAP/SAQX/0gEZ/8cBK//SATP/8AE2/9IBOf+dATr/zAE8/9IBPv/SAUP/8AFF/50BR//lAUn/5QFM/98BUP/1AVP/0gFV/9IBV//SAVz/0gFd//ABYv/OAWT/6gFm//UBbP+eAW3/zgFv//UBhP/AAYX/wAGH/8ABiP/AAYn/wAKZ/6sCqv/SAvL/0gL0/9IC9v/SAvf/0gMO/50DEP+dAxL/nQMi/6sDJP+rA4v/qwOa/6sDm//wA53/qwOg/9IDtf/qA8H/nQPC//ADxf/SA8f/0gPM/9ID0f/SA9n/qwPb/8AD3P/AA9//wAPh/9ID5//SA+r/xwPy/6sD9f/wBAP/8AQI/9IECv/SBBP/6gQV/+oEF//qBBn/5QQc/9IEcP+rBHL/qwR0/6sEd/+dBHn/5QR8/9IEhv+rBJj/0gS1/9IEt//SBL//nQTC/8cExP/HAHUABv+xAAv/sQA4/54AOv/FADz/8gA9/6gAUf/PAFL/zwBU/88AXP/vAMH/zwDS/54A1v+eANr/8gDe/+wA4f/hAOb/wgDs/88A7v/vAPD/zwDx/88A8//PAPT/zwD1/88A9v/GAPj/zwD6/88A+//PAP7/zwEA/88BBf/PARn/xQEr/88BM//yATT/7wE2/88BOf+eATr/wAE8/88BPv/PAUP/8gFE/+8BRf+eAUf/4QFJ/+EBTP/fAVP/zwFV/88BV//PAVz/zwFd//IBXv/vAWL/zQFk/+gBbP+fAW3/xgGE/7EBhf+xAYf/sQGI/7EBif+xApn/qAKq/88C8v/PAvT/zwL2/88C9//PAw7/ngMQ/54DEv+eAyL/qAMk/6gDi/+oA5r/qAOb//IDnf+oA6D/zwO1/+wDwf+eA8L/8gPF/88Dx//PA8r/7wPM/88D0f/PA9n/qAPb/7ED3P+xA9//sQPh/88D5//PA+r/xQPy/6gD9f/yA/b/7wQD//IEBP/vBAj/zwQK/88EE//sBBX/7AQX/+wEGf/hBBz/zwRw/6gEcv+oBHT/qAR3/54Eef/hBHz/zwSG/6gEmP/PBLX/zwS3/88Ev/+eBML/xQTE/8UAUwA4/74AUf/hAFL/4QBU/+EAWv/vAF3/7wC9/+8Awf/hANL/vgDW/74A5v/JAOz/4QDw/+EA8f/hAPP/4QD0/+EA9f/hAPb/3wD4/+EA+v/hAPv/4QD+/+EBAP/hAQX/4QEJ/+0BGv/vASD/6wEr/+EBNv/hATn/vgE6/98BPP/hAT7/4QFF/74BTP/pAVP/4QFV/+EBV//hAVz/4QFj//UBbf/gAqr/4QK0/+8Ctf/vAvL/4QL0/+EC9v/hAvf/4QMO/74DEP++AxL/vgMj/+8DoP/hA6b/7wPB/74Dxf/hA8f/4QPJ/+8DzP/hA9H/4QPS/+8D2v/vA+H/4QPn/+ED6//vA/P/7wQI/+EECv/hBBT/7wQW/+8EGP/vBBz/4QRx/+8Ec//vBHX/7wR3/74EfP/hBJj/4QS1/+EEt//hBL//vgTD/+8Exf/vAGoAOP/mADr/5wA8//IAPf/nAFH/1gBS/9YAVP/WAFz/8QDB/9YA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7P/WAO7/8QDw/9YA8f/WAPP/1gD0/9YA9f/WAPb/0AD4/9YA+v/WAPv/1gD+/9YBAP/WAQX/1gEZ/+cBK//WATP/8gE0//EBNv/WATn/5gE6/84BPP/WAT7/1gFD//IBRP/xAUX/5gFH/+gBSf/oAVP/1gFV/9YBV//WAVz/1gFd//IBXv/xAWL/5wFk/+0BbP/mAW3/0AKZ/+cCqv/WAvL/1gL0/9YC9v/WAvf/1gMO/+YDEP/mAxL/5gMi/+cDJP/nA4v/5wOa/+cDm//yA53/5wOg/9YDtf/uA8H/5gPC//IDxf/WA8f/1gPK//EDzP/WA9H/1gPZ/+cD4f/WA+f/1gPq/+cD8v/nA/X/8gP2//EEA//yBAT/8QQI/9YECv/WBBP/7gQV/+4EF//uBBn/6AQc/9YEcP/nBHL/5wR0/+cEd//mBHn/6AR8/9YEhv/nBJj/1gS1/9YEt//WBL//5gTC/+cExP/nAJgAJQAQACf/6AAr/+gAM//oADX/6AA4/+AAOv/gAD3/3wCD/+gAk//oAJj/6ACyABAAs//oALQAEADS/+AA0//oANQAEADW/+AA2QAUAN0AEADh/+EA5v/gAO0AEwDyABAA+f/gAQQAEAEI/+gBDQAQARf/6AEZ/+ABG//oAR3/6AEf/+gBIf/oATn/4AFB/+gBRf/gAUf/4QFI/+ABSf/hAUr/4AFN/+EBUAAQAVEAEAFY/+kBYv/fAWT/3gFmABABav/oAWz/3wFu//IBbwAQAXAAEAJF/+gCRv/oAkj/6AJJ/+gCfwAQAoAAEAKBABACggAQAoMAEAKEABAChQAQAob/6AKQ/+gCkf/oApL/6AKT/+gClP/oApn/3wK2ABACuAAQAroAEAK8/+gCvv/oAsD/6ALC/+gC0P/oAtL/6ALU/+gC1v/oAvj/6AL6/+gC/P/oAw7/4AMQ/+ADEv/gAyL/3wMk/98DLf/oA4YAEAOK/+gDi//fA44AEAOX/+gDmv/fA53/3wO2ABADvf/oA8D/6APB/+AD2f/fA+IAEAPq/+AD7f/oA/D/6APy/98D+AAQA/oAEAQL/+gEDf/oBA//6AQZ/+EEGv/gBB4AEAQgABAEIgAQBCQAEAQmABAEKAAQBCoAEAQsABAELgAQBDAAEAQyABAENAAQBEr/6ARM/+gETv/oBFD/6ARS/+gEVP/oBFb/6ARY/+gEWv/oBFz/6ARe/+gEYP/oBHD/3wRy/98EdP/fBHf/4AR5/+EEev/gBIb/3wSZABAEn//oBLj/6AS//+AEwv/gBMT/4AA1ABv/8gA4//EAOv/0ADz/9AA9//AA0v/xANT/9QDW//EA2v/0AN3/9QDe//MA5v/xARn/9AEz//QBOf/xAUP/9AFF//EBUP/1AV3/9AFi//IBZP/yAWb/9QFs//IBb//1Apn/8AMO//EDEP/xAxL/8QMi//ADJP/wA4v/8AOa//ADm//0A53/8AO1//MDwf/xA8L/9APZ//AD6v/0A/L/8AP1//QEA//0BBP/8wQV//MEF//zBHD/8ARy//AEdP/wBHf/8QSG//AEv//xBML/9ATE//QAawAlAA8AOP/mADr/5gA8AA4APf/mALIADwC0AA8A0v/mANQADgDW/+YA2QATANoADgDdAA4A3gALAOH/5QDm/+YA5//0AO0AEgDyAA8A9v/nAPn/6AD+/+cBBAAPAQ0ADwEZ/+YBMwAOATn/5gE6/+cBQwAOAUX/5gFH/+UBSP/oAUn/5QFK/+gBTP/kAVAADgFRAA8BXQAOAWL/5gFk/+YBZgAOAWz/5gFt/+cBbwAOAXAADwJ/AA8CgAAPAoEADwKCAA8CgwAPAoQADwKFAA8Cmf/mArYADwK4AA8CugAPAw7/5gMQ/+YDEv/mAyL/5gMk/+YDhgAPA4v/5gOOAA8Dmv/mA5sADgOd/+YDtQALA7YADwPB/+YDwgAOA9n/5gPiAA8D6v/mA/L/5gP1AA4D+AAPA/oADwQDAA4EEwALBBUACwQXAAsEGf/lBBr/6AQeAA8EIAAPBCIADwQkAA8EJgAPBCgADwQqAA8ELAAPBC4ADwQwAA8EMgAPBDQADwRw/+YEcv/mBHT/5gR3/+YEef/lBHr/6ASG/+YEmQAPBL//5gTC/+YExP/mADoABv+/AAv/vwA4/58AOv/JAD3/rQDS/58A1v+fAN7/7ADh/+YA5v/EAPb/zQD+/9UBGf/JATn/nwE6/8wBRf+fAUf/5gFJ/+YBTP/fAWL/0QFk/+wBbP+hAW3/zwGE/78Bhf+/AYf/vwGI/78Bif+/Apn/rQMO/58DEP+fAxL/nwMi/60DJP+tA4v/rQOa/60Dnf+tA7X/7APB/58D2f+tA9v/vwPc/78D3/+/A+r/yQPy/60EE//sBBX/7AQX/+wEGf/mBHD/rQRy/60EdP+tBHf/nwR5/+YEhv+tBL//nwTC/8kExP/JADEAOP/jADz/5QA9/+QA0v/jANT/5QDW/+MA2f/iANr/5QDd/+UA3v/pAPL/6gEE/+oBM//lATn/4wFD/+UBRf/jAVD/5QFR/+oBXf/lAWb/5QFs/+QBb//lAXD/6gKZ/+QDDv/jAxD/4wMS/+MDIv/kAyT/5AOL/+QDmv/kA5v/5QOd/+QDtf/pA8H/4wPC/+UD2f/kA/L/5AP1/+UEA//lBBP/6QQV/+kEF//pBHD/5ARy/+QEdP/kBHf/4wSG/+QEv//jACQAOP/iADz/5ADS/+IA1P/kANb/4gDZ/+EA2v/kAN3/5ADe/+kA7f/kAPL/6wEE/+sBM//kATn/4gFD/+QBRf/iAVD/5AFR/+sBXf/kAWb/5AFv/+QBcP/rAw7/4gMQ/+IDEv/iA5v/5AO1/+kDwf/iA8L/5AP1/+QEA//kBBP/6QQV/+kEF//pBHf/4gS//+IAGAA4/+sAPf/zANL/6wDW/+sBOf/rAUX/6wKZ//MDDv/rAxD/6wMS/+sDIv/zAyT/8wOL//MDmv/zA53/8wPB/+sD2f/zA/L/8wRw//MEcv/zBHT/8wR3/+sEhv/zBL//6wA5AFH/7wBS/+8AVP/vAFz/8ADB/+8A7P/vAO3/7gDu//AA8P/vAPH/7wDz/+8A9P/vAPX/7wD2/+4A+P/vAPr/7wD7/+8A/v/vAQD/7wEF/+8BCf/0ASD/8QEr/+8BNP/wATb/7wE6/+8BPP/vAT7/7wFE//ABU//vAVX/7wFX/+8BXP/vAV7/8AFt/+8Cqv/vAvL/7wL0/+8C9v/vAvf/7wOg/+8Dxf/vA8f/7wPK//ADzP/vA9H/7wPh/+8D5//vA/b/8AQE//AECP/vBAr/7wQc/+8EfP/vBJj/7wS1/+8Et//vACQABv/yAAv/8gBa//UAXf/1AL3/9QD2//QA/v/0AQn/9QEa//UBOv/1AW3/9QGE//IBhf/yAYf/8gGI//IBif/yArT/9QK1//UDI//1A6b/9QPJ//UD0v/1A9r/9QPb//ID3P/yA9//8gPr//UD8//1BBT/9QQW//UEGP/1BHH/9QRz//UEdf/1BMP/9QTF//UANQBR/+4AUv/uAFT/7gDB/+4A7P/uAO0AFADw/+4A8f/uAPP/7gD0/+4A9f/uAPb/7QD4/+4A+f/tAPr/7gD7/+4A/P/QAP7/7gEA/+4BBf/uASv/7gE2/+4BOv/tATz/7gE+/+4BSP/tAUr/7QFT/+4BVf/uAVf/7gFc/+4Bbf/tAqr/7gLy/+4C9P/uAvb/7gL3/+4DoP/uA8X/7gPH/+4DzP/uA9H/7gPh/+4D5//uBAj/7gQK/+4EGv/tBBz/7gR6/+0EfP/uBJj/7gS1/+4Et//uAAoABv/1AAv/9QGE//UBhf/1AYf/9QGI//UBif/1A9v/9QPc//UD3//1AHYAR//wAEj/8ABJ//AAS//wAFP/xwBV//AAlP/wAJn/8AC7//AAyP/wAMn/8AD3//ABA//wARj/xwEc/+sBHv/wASL/8AFC//ABYP/wAWH/8AFr//AB2//rAd3/6wHl/+kB7P/rAfX/6wIR/+sCGv/rAjH/6wKh//ACov/wAqP/8AKk//ACpf/wAqv/xwKs/8cCrf/HAq7/xwKv/8cCvf/wAr//8ALB//ACw//wAsX/8ALH//ACyf/wAsv/8ALN//ACz//wAtH/8ALT//AC1f/wAtf/8AL5/8cC+//HAv3/xwM5/+sDQ//rA0T/6wNF/+sDRv/rA0f/6wNQ/+sDUf/rA1L/6wNT/+sDWv/rA1v/6wNc/+sDXf/rA23/6wNu/+sDb//rA57/8AOk/8cDqv/HA8T/8APG/8cDyP/wA8v/8APm//AD7P/wA/H/8AP///AEAf/wBAL/8AQM/8cEDv/wBBD/xwQd//AEN//wBDn/8AQ7//AEPf/wBD//8ARB//AEQ//wBEX/8ARL/8cETf/HBE//xwRR/8cEU//HBFX/xwRX/8cEWf/wBFv/8ARd//AEX//HBGH/8ASc//AEoP/HBKn/8ASr//AEz//rBPH/6wT0/+sE+f/rAOIABgANAAsADQBF//AAR//AAEj/wABJ/8AASgANAEv/wABT/+IAVf/AAFoACwBdAAsAlP/AAJn/wAC7/8AAvQALAMf/1gDI/8AAyf/AAMz/1QDt/8gA8v/XAPf/wAED/8ABBP/XARj/4gEaAAsBHP/sAR7/wAEgAAwBIv/AAUL/wAFR/9cBYP/AAWH/wAFjAAsBZQALAWv/wAFw/9cBhAANAYUADQGHAA0BiAANAYkADQHTAA0B1gANAdgADgHZ//UB2//sAd3/7QHl/+wB6/+/Aez/7QHt/78B9AAOAfX/7QH4AA4CEAAOAhH/7QISAA0CFAAOAhr/7QIx/+4CM/+/Apr/8AKb//ACnP/wAp3/8AKe//ACn//wAqD/8AKh/8ACov/AAqP/wAKk/8ACpf/AAqv/4gKs/+ICrf/iAq7/4gKv/+ICtAALArUACwK3//ACuf/wArv/8AK9/8ACv//AAsH/wALD/8ACxf/AAsf/wALJ/8ACy//AAs3/wALP/8AC0f/AAtP/wALV/8AC1//AAvn/4gL7/+IC/f/iAyMACwMy/78DM/+/AzT/vwM1/78DNv+/Azf/vwM4/78DOf/tA0P/7QNE/+0DRf/tA0b/7QNH/+0DTAANA03/vwNO/78DT/+/A1D/7QNR/+0DUv/tA1P/7QNa/+0DW//tA1z/7QNd/+0Dbf/tA27/7QNv/+0Dc//1A3T/9QN1//UDdv/1A3gADgOBAA0DggANA57/wAOk/+IDpgALA6r/4gPD//ADxP/AA8b/4gPI/8ADyQALA8v/wAPSAAsD2gALA9sADQPcAA0D3wANA+P/8APm/8AD6wALA+z/wAPx/8AD8wALA/n/8AP7//AD///ABAH/wAQC/8AEDP/iBA7/wAQQ/+IEFAALBBYACwQYAAsEHf/ABB//8AQh//AEI//wBCX/8AQn//AEKf/wBCv/8AQt//AEL//wBDH/8AQz//AENf/wBDf/wAQ5/8AEO//ABD3/wAQ//8AEQf/ABEP/wARF/8AES//iBE3/4gRP/+IEUf/iBFP/4gRV/+IEV//iBFn/wARb/8AEXf/ABF//4gRh/8AEcQALBHMACwR1AAsEmv/wBJz/wASg/+IEqf/ABKv/wATDAAsExQALBMv/vwTP/+0E0AANBNL/vwTeAA0E4QANBOr/vwTx/+0E9P/tBPUADgT5/+0E+gANAA8A7QAUAPIAEAD2//AA+f/wAP7/8AEBABYBBAAQATr/5gFI//ABSv/cAVEAEAFt//ABcAAQBBr/8AR6//AATwBH/+4ASP/uAEn/7gBL/+4AVf/uAJT/7gCZ/+4Au//uAMj/7gDJ/+4A7QASAPIADgD2/+MA9//uAPn/4wD8/7gA/v/jAQP/7gEEAA4BHv/uASL/7gE6/7oBQv/uAUj/4wFK/9kBUQAOAWD/7gFh/+4Ba//uAW3/4wFwAA4Cof/uAqL/7gKj/+4CpP/uAqX/7gK9/+4Cv//uAsH/7gLD/+4Cxf/uAsf/7gLJ/+4Cy//uAs3/7gLP/+4C0f/uAtP/7gLV/+4C1//uA57/7gPE/+4DyP/uA8v/7gPm/+4D7P/uA/H/7gP//+4EAf/uBAL/7gQO/+4EGv/jBB3/7gQ3/+4EOf/uBDv/7gQ9/+4EP//uBEH/7gRD/+4ERf/uBFn/7gRb/+4EXf/uBGH/7gR6/+MEnP/uBKn/7gSr/+4AIgBa/8AAXf/AAL3/wAD2/4AA+f/uAP7/8AEJ/9sBGv/AASD/3AE6/0cBSP/uAUr/7gFjAAcBZf/0AW3/fwK0/8ACtf/AAyP/wAOm/8ADyf/AA9L/wAPa/8AD6//AA/P/wAQU/8AEFv/ABBj/wAQa/+4Ecf/ABHP/wAR1/8AEev/uBMP/wATF/8AAIwBa//QAXP/wAF3/9AC9//QA7f/vAO7/8ADy//MA/v/uAQT/8wEa//QBNP/wAUT/8AFR//MBXv/wAXD/8wK0//QCtf/0AyP/9AOm//QDyf/0A8r/8APS//QD2v/0A+v/9APz//QD9v/wBAT/8AQU//QEFv/0BBj/9ARx//QEc//0BHX/9ATD//QExf/0AAoABv/WAAv/1gGE/9YBhf/WAYf/1gGI/9YBif/WA9v/1gPc/9YD3//WABUAXP/gAO7/4AD2/3YA+f/CAP7/0wEJ/9kBIP/bATT/4AE6/x4BRP/gAUj/wgFK/+0BXv/gAWP/8AFl//IBbf9WA8r/4AP2/+AEBP/gBBr/wgR6/8IADQD2/2QA+f/SAP7/2QEJ/9kBIP/bATr/HgFI/9IBSv/tAWP/8AFl//IBbf9WBBr/0gR6/9IACQD2/2oA/v/GAQn/2QEg/9sBOv8eAUr/7QFj//ABZf/yAW3/VgAKAAb/1wAL/9cBhP/XAYX/1wGH/9cBiP/XAYn/1wPb/9cD3P/XA9//1wBiAEf/mABI/5gASf+YAEv/mABT/3AAVf+YAFf/GABbAAsAlP+YAJn/mAC7/5gAyP+YAMn/mAD3/5gBA/+YARj/cAEe/5gBIv+YAUL/mAFg/5gBYf+YAWv/mAHB/xgCof+YAqL/mAKj/5gCpP+YAqX/mAKr/3ACrP9wAq3/cAKu/3ACr/9wAr3/mAK//5gCwf+YAsP/mALF/5gCx/+YAsn/mALL/5gCzf+YAs//mALR/5gC0/+YAtX/mALX/5gC+f9wAvv/cAL9/3ADBf8YAwf/GAMJ/xgDC/8YAw3/GAOe/5gDpP9wA6r/cAPE/5gDxv9wA8j/mAPL/5gDzf8YA+b/mAPs/5gD8f+YA///mAQB/5gEAv+YBAz/cAQO/5gEEP9wBB3/mAQ3/5gEOf+YBDv/mAQ9/5gEP/+YBEH/mARD/5gERf+YBEv/cARN/3AET/9wBFH/cART/3AEVf9wBFf/cARZ/5gEW/+YBF3/mARf/3AEYf+YBJz/mASg/3AEqf+YBKv/mAS+/xgAEwHT/+4B1f/1Adb/8QHY//IB9P/yAfj/8gIQ//ICEv/uAhT/8gNM/+4DeP/yA4D/9QOB/+4Dgv/uBND/7gTe/+4E4f/uBPX/8gT6/+4AEwHT/+UB1f/xAdb/6wHY/+kB9P/pAfj/6QIQ/+kCEv/lAhT/6QNM/+UDeP/pA4D/8QOB/+UDgv/lBND/5QTe/+UE4f/lBPX/6QT6/+UAAwHV//UB1v/uA4D/9QACAdb/twHb//AAAQBbAAsABAAN/+YAQf/0AGH/7wFN/+0AFgC4/9QAwv/tAMQAEQDK/+AAzP/nAM3/5QDO/+4A2QASAOr/6QD2/9cBOv/XAUr/0wFM/9YBTf/FAVj/5wFiAA0BZAAMAW3/1gFu//IB2//pAeX/5wIx/+kAAQEc//EAEgDZ/64A5gASAOv/4ADt/60A7//WAP3/3wEB/9IBB//gARz/zgEu/90BMP/iATj/4AFA/+ABSv/pAU3/2gFf/70Baf/fAWwAEQACAPb/9QGF/8AAAgDt/2gBHP/uAAoA5v/DAPb/zwD+/9QBOv/OAUn/5wFM/98BYv/RAWT/7AFs/6ABbf/RADAAVv9+AFv/nQBt/vEAfP70AIH+qwCG/14Aif9LALj/cgC//w8Aw/8KAMb/QQDH/wcAyv9oAMz/DwDN/w4Azv8MANn/YwDmAAUA6v+9AOv/SQDt/v4A7/8TAPb/aAD9/w4A/v9oAP//EwEB/wcBAgAwAQf/DgEJ/xEBHP7nASD/rAEu/xUBMP88ATj/DgE6/2oBQP9JAUr/DAFM/z8BTf7xAVj/wAFf/u8BY/8xAWX/XwFp/woBbAAFAW3/MAFu/9UAHQAK/+IADQAUAA7/zwBBABIASv/qAFb/2ABY/+oAYQATAG3/rgB8/80Agf+gAIb/wQCJ/8AAuP/QALz/6gC//8YAwAANAML/6QDD/9YAxv/oAMf/ugDK/+kAzP/LAM3/2gDO/8cBjf/TAdv/ywHl/8sCMf/NABgAI/+vAFj/7wBb/98Amv/uALj/5QC5/9EAxAARAMr/yADZABMA5v/FAPb/ygD+/9ABOv+BAUn/ZQFK/4UBTP9mAU3/3QFY//IBYv+xAWT/ygFs/6kBbf/IAdb/zQHl//UACAD2//AA/v/wAQn/8QEg//MBOv/xAWP/8wFl//MBbf/xAAMASv/uAFv/6gHW//AACQDK/+oA7f+4APb/4gEJ//ABIP/xATr/6wFj//UBbf/sAYX/kAACAREACwFs/+YAEwBb/8EAuP/FAMr/tADq/9cA9v+5AP7/6QEJ/7IBHP/SASD/yAE6/6ABSv/FAVj/5AFj/8wBZf/MAW3/ywFu/+8B2//nAeX/5gIx/+gABQBb/8wB1v+4Adv/8gHl//ECMf/zAAgA2QAVAO0AFQFJ/+QBSv/lAUz/5AFi/+MBZP/iAWz/5AACAPb/1gGF/4gABwBYAA4Agf7XAMT/mADH/8cA2f8SAO3/UgFf/88ABgDK/+oA7f/uAPb/1gD+/+0BOv/sAW3/7AAEAEoAFABYADIAWwARAYUAEAA0AAT/xABW/78AW//RAG3/bAB8/24Agf9DAIb/rACJ/6EAuP+4AL//fgDD/3sAxv+bAMf/eQDK/7IAzP9+AM3/fQDO/3wA2f+vAOYADwDq/+QA6/+gAO3/dADv/4AA9v+yAP3/fQD+/7IA//+AAQH/eQECACgBB/99AQn/fwEc/2YBIP/aAS7/gQEw/5gBOP99ATr/swFA/6ABSv98AUz/mgFN/2wBWP/mAV//awFj/5IBZf+tAWn/ewFsAA8Bbf+RAW7/8gHb/7kB5f+5AjH/uQAHAA0AFABBABEAVv/iAGEAEwHb/9kB5f/ZAjH/2QAGAEoADQDGAAsAx//qAMoADADt/8gBHP/xAAcADQAPAEEADABW/+sAYQAOAdv/5wHl/+cCMf/pAAYAW//lALj/ywDN/+QB2//sAeX/6wIx/+0ABwCB/98Atf/zALf/8ADE/+oA2f/fAOb/4AFs/+AAAQHb/+sABAHW/8cB2//yAeX/8gIx//IAAQHW//EAAQHWAA0AAgsMAAQAAA6sF2gAJgAlAAAAAAAAAAAAAAAAABIAAAAAAAAAAP/j/+QAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAEQAAABEAAAAAAAAAAP/k/+UAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAA/6v/1f/tAAAAAAAA/+oAAP/pAAAAAAAAAAAAAP/h/4YAAP/1/+oAAAAAAAAAAAAAAAAAAAAAAAD/6//Q//T/9QAAAAD/9f/O/+//iP9qAAAAAAAMAAAAAP/xAAD/iAAA/9n/xP/HABEAAAASAAD/swAAAAD/yf/fAAAAAP/dAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAA//AAAAAAAAAAAP+o/+sAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAA/+3/7wAAAAAAAP/mAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAD/8QAAAAAAAAAA/+P/8QAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAD/8QAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAP9Z/9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+b/4QAA/+X/6QAAAAD/5//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1wAAP+jAAAAAAAAAAD/v//j/9j/v//Z/2r/wf/L/+z/oAARABL/q//G/+L/8AANAAAAAAAA/+kAEQAA//MAAP8ZAAD/7wASAAD/aAAAAAAAAP+g//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+r/7gAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/6f/5P+n/zD/v/+I/1j/uf+uAAAAEAAQ/6//tP/E//AAAAAAAAAAAP+zAA8AAP/x/8v+/v9+/+0AEP+8/vAAAP98AAD/KP/xAAAAAAAAAAAAAAAAAAAAAP/yAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAP+//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gAAP/wAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+v/5gAA/+v/7QANAAD/7P/lAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5v/nAAD/6//rAAAAAP/n/+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABEAAAAOAAD/ZAAA/9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAD/3AAAAAD/4gAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAP9TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAP/zAAD/Tv/1AAAADwAAAAAAAP+AAAAAAAAA/80AAP/cAAAAAAAAAAAAAP9v/mz/pwAAAAAAAAAAAAAAAAAA/0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAP/yABMAAP/y/4X/6P8z/ukAEwAAAAAAAAAA/+4AAP7gAAD/o/+3/70AAAAAAAAAAP8yAAAAAAAAAAAAAAAA/9cAAP/FAAD/7P+lAAD/iP/OAAAAAAAAAAAAAAAA/6QAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAD/4QAAAAD/4f/t/9X/3//nAAAAAAAOAAD/ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9xAAAAAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+X/yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+gAAAAAAAAAAP/zAAAAAAAA/9T/8wAA/9L/5P+1/9L/2f/1AAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KQAAAAAAAAAA/2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tQAAAAAAAAAAAAAAAAAAAAAAAAAA/3n/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/n/+tAAAAAAAAAAAAAAAAAAD/wP/JAAAAAAAAAAAAAAAAAAD/yAAAAAD/5wAA/+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9V/73/Vf9m/37/M/9fAAD/YQAAAAcABwAA/2v/hv/RAAAAAAAAAAD/agAFAAAAAP+S/jb/DwAAAAcAAP4eAAD/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAP+0/7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAP+9/+n/rv+9AAD/pf+vAAAAAAAAABIAEgAA/9IAAAAAAAAAAAAAAAAAAAAAAAAAAP/K/nf/uwAAAAAAAP85AAD/6QAAAAAAAAACAJoABgAGAAAACwALAAEAEAAQAAIAEgASAAMAJQApAAQALAA0AAkAOAA+ABIARQBHABkASQBJABwATABMAB0AUQBUAB4AVgBWACIAWgBaACMAXABeACQAigCKACcAlgCWACgAsQC0ACkAvQC9AC0AwQDBAC4AxwDHAC8A1ADVADAA1wDXADIA2gDaADMA3ADeADQA4ADmADcA7ADsAD4A7gDuAD8A9wD3AEAA/AD8AEEA/gD/AEIBBAEFAEQBCgEKAEYBDQENAEcBGAEaAEgBLgEwAEsBMwE1AE4BNwE3AFEBOQE5AFIBOwE7AFMBQwFEAFQBVAFUAFYBVgFWAFcBWAFYAFgBXAFeAFkBhAGKAFwBjgGPAGMB2AHYAGUB3QHdAGYB4AHhAGcB6wHtAGkB/wH/AGwCDgIQAG0CMAIwAHACMwIzAHECRQJFAHICRwJIAHMCegJ7AHUCfQJ9AHcCfwKlAHgCqgKvAJ8CtALEAKUCxgLPALYC2ALaAMAC3ALcAMMC3gLeAMQC4ALgAMUC4gLiAMYC5QLlAMcC5wLnAMgC6QLpAMkC6wLrAMoC7QLtAMsC7wLvAMwC8QL9AM0C/wL/ANoDAQMBANsDAwMDANwDDgMOAN0DEAMQAN4DEgMSAN8DFAMUAOADFgMWAOEDGAMYAOIDGgMaAOMDHAMcAOQDHgMeAOUDIAMgAOYDIgMqAOcDLwM4APADQwNHAPoDTQNPAP8DVANUAQIDZQNpAQMDbQNvAQgDeAN4AQsDhgOLAQwDjgOdARIDoAOgASIDpAOkASMDpgOmASQDqgOqASUDrQOuASYDsAO5ASgDuwO9ATIDvwPEATUDxgPMATsD0gPTAUID1QPVAUQD1wPXAUUD2QPcAUYD3wPkAUoD5gPmAVAD6gPrAVED8AP7AVMD/gP/AV8EAQQEAWEECwQMAWUEEAQQAWcEEgQYAWgEHgRGAW8ESARIAZgESgRXAZkEXwRfAacEYgRiAagEZARkAakEcAR1AaoEdwR3AbAEewR8AbEEfwR/AbMEgQSCAbQEhASEAbYEhgSGAbcElwSbAbgEnQSdAb0EnwSgAb4EogSiAcAEpgSoAcEEqgSqAcQErASuAcUEsASwAcgEsgSyAckEtAS6AcoEvAS8AdEEvwS/AdIEwQTGAdMEyATLAdkEzwTPAd0E0gTSAd4E2ATYAd8E3QTdAeAE6AToAeEE6gTqAeIE8QTxAeME9QT1AeQAAgF0AAYABgAZAAsACwAZABAAEAAhABIAEgAhACUAJQACACYAJgAcACcAJwATACgAKAABACkAKQAFAC4ALgAKAC8ALwALADAAMAAYADMAMwABADQANAAWADgAOAAOADkAOQAKADoAOgAdADsAOwAbADwAPAASAD0APQAMAD4APgARAEUARQAGAEYARgAHAEcARwAXAEkASQAIAEwATAAEAFEAUgAEAFMAUwADAFQAVAAHAFYAVgAVAFoAWgAJAFwAXAAUAF0AXQAJAF4AXgAQAIoAigAHAJYAlgABALEAsQAiALIAsgACALMAswABALQAtAACAL0AvQAJAMEAwQAEAMcAxwAHANQA1QAgANoA2gASAN4A3gAlAOQA5AAgAOYA5gAgAOwA7AAaAO4A7gAUAPcA9wAHAPwA/AAfAP4A/gAfAP8A/wAHAQQBBQAfAQoBCgAfAQ0BDQACARgBGAADARkBGQAdARoBGgAJAS4BLgAHAS8BLwAiATABMAAaATMBMwASATQBNAAUATUBNQALATcBNwALATkBOQALAUMBQwASAUQBRAAUAVgBWAABAVwBXAAaAV0BXQASAV4BXgAUAYQBhQAZAYYBhgAhAYcBiQAZAYoBigAhAY4BjwAhAdgB2AAjAd0B3QANAeAB4AAkAeEB4QAeAesB6wAPAewB7AANAe0B7QAPAf8B/wAeAg4CEAAeAjACMAANAjMCMwAPAkUCRQATAkcCSAABAnoCewABAn0CfQAOAn8ChQACAoYChgATAocCigAFApAClAABApUCmAAKApkCmQAMApoCoAAGAqECoQAXAqICpQAIAqoCqgAEAqsCrwADArQCtQAJArYCtgACArcCtwAGArgCuAACArkCuQAGAroCugACArsCuwAGArwCvAATAr0CvQAXAr4CvgATAr8CvwAXAsACwAATAsECwQAXAsICwgATAsMCwwAXAsQCxAABAsYCxgAFAscCxwAIAsgCyAAFAskCyQAIAsoCygAFAssCywAIAswCzAAFAs0CzQAIAs4CzgAFAs8CzwAIAtkC2QAEAuUC5QAKAucC5wALAukC6QAYAusC6wAYAu0C7QAYAu8C7wAYAvIC8gAEAvQC9AAEAvYC9wAEAvgC+AABAvkC+QADAvoC+gABAvsC+wADAvwC/AABAv0C/QADAv8C/wAVAwEDAQAVAwMDAwAVAw4DDgAOAxADEAAOAxIDEgAOAxQDFAAKAxYDFgAKAxgDGAAKAxoDGgAKAxwDHAAKAx4DHgAKAyADIAAbAyIDIgAMAyMDIwAJAyQDJAAMAyUDJQARAyYDJgAQAycDJwARAygDKAAQAykDKQARAyoDKgAQAy8DMAANAzEDMQAjAzIDOAAPA0MDRwANA00DTwAPA1QDVAANA2UDZQAeA2YDaQAkA20DbwANA3gDeAAjA4YDhgACA4cDhwAFA4oDigABA4sDiwAMA44DjgACA48DjwAcA5ADkAAFA5EDkQARA5QDlAALA5cDlwABA5gDmAAWA5kDmQAOA5oDmgAMA5sDmwASA50DnQAMA6ADoAAEA6QDpAADA6YDpgAJA6oDqgADA60DrQAFA64DrgAiA7IDsgAKA7MDtAALA7UDtQAlA7YDtgACA7cDtwAcA7gDuAAiA7kDuQAFA70DvQABA78DvwAWA8ADwAATA8EDwQAOA8IDwgASA8MDwwAGA8QDxAAIA8YDxgADA8cDxwAHA8gDyAAXA8kDyQAJA8oDygAUA8sDywAIA8wDzAAaA9ID0gAJA9MD0wAbA9UD1QAbA9cD1wAbA9kD2QAMA9oD2gAJA9sD3AAZA98D3wAZA+ED4QAEA+ID4gACA+MD4wAGA+QD5AAFA+YD5gAIA+oD6gAdA+sD6wAJA/AD8AATA/ED8QAXA/ID8gAMA/MD8wAJA/UD9QASA/YD9gAUA/gD+AACA/kD+QAGA/oD+gACA/sD+wAGA/4D/gAFA/8D/wAIBAEEAgAIBAMEAwASBAQEBAAUBAsECwABBAwEDAADBBAEEAADBBIEEgAHBBMEEwAlBBQEFAAJBBUEFQAlBBYEFgAJBBcEFwAlBBgEGAAJBB4EHgACBB8EHwAGBCAEIAACBCEEIQAGBCIEIgACBCMEIwAGBCQEJAACBCUEJQAGBCYEJgACBCcEJwAGBCgEKAACBCkEKQAGBCoEKgACBCsEKwAGBCwELAACBC0ELQAGBC4ELgACBC8ELwAGBDAEMAACBDEEMQAGBDIEMgACBDMEMwAGBDQENAACBDUENQAGBDYENgAFBDcENwAIBDgEOAAFBDkEOQAIBDoEOgAFBDsEOwAIBDwEPAAFBD0EPQAIBD4EPgAFBD8EPwAIBEAEQAAFBEEEQQAIBEIEQgAFBEMEQwAIBEQERAAFBEUERQAIBEoESgABBEsESwADBEwETAABBE0ETQADBE4ETgABBE8ETwADBFAEUAABBFEEUQADBFIEUgABBFMEUwADBFQEVAABBFUEVQADBFYEVgABBFcEVwADBF8EXwADBGIEYgAKBGQEZAAKBHAEcAAMBHEEcQAJBHIEcgAMBHMEcwAJBHQEdAAMBHUEdQAJBHcEdwAOBHsEewAiBHwEfAAaBH8EfwAEBIEEgQAgBIIEggAiBIQEhAALBIYEhgAMBJgEmAAEBJkEmQACBJoEmgAGBJsEmwAFBJ8EnwABBKAEoAADBKIEogAVBKYEpgAcBKcEpwAHBKgEqAABBKoEqgABBK0ErQAEBK4ErgALBLAEsAALBLIEsgAYBLUEtQAEBLcEtwAEBLgEuAABBLkEuQAWBLoEugAHBLwEvAAVBL8EvwAOBMEEwQAKBMIEwgAdBMMEwwAJBMQExAAdBMUExQAJBMYExgAbBMgEyAARBMkEyQAQBMoEygABBMsEywAPBM8EzwANBNIE0gAPBNgE2AAeBN0E3QAjBOgE6AAeBOoE6gAPBPEE8QANBPUE9QAjAAEABgT1ABQAAAAAAAAAAAAUAAAAAAAAAAAAGgAfABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAAAAAAAAgAAAAAAIwAAAAAAAAAAAAIAAAACAAAAEAALAAoAHQAWABEADAATAAAAAAAAAAAAAAAAAAcAAAABAAEAAQAAAAEAAAAAAAAAAAAAAAMAAwAEAAMAAQAAAA4AAAAFAAkAAAAVAAkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAQAAAAAAAAACAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgACAAYAAAAAAAAAAAAAAAAAAQAAAAkAAAAAAAAAAwAAAAAAAAAAAAAAAAABAAEAAAAFAAAAAAAAAAAAAAAAAAsAAgAZAAAACwAAAAAAAAARAAAAAAAZACIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAAAMAAwAbAAMAAwADAAAAAQADACEAAwADAAAAAAADAAAAAwAAAAAAAQAbAAMAAAAAAAIAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAIABAAdAAkAAgAAAAIAAQACAAAAAgABAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAEQAVAAAAAwAAAAAACwAAAAAAAwAAAAMAAAAAAAIAAQARABUACwAAACAAIQAAAAAAAAAAAAAAAAAAABkAGwAAAAMAAAADAAAAAwAAAAAAAAAAAAMAEQAVAAAAAQABAAAAAAAAAAAAGQAAAAAAAAACAAEAAAAAAAAAGQAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAAAAFAAUABoAFAAUABQAGgAAAAAAAAAaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABwAJAAAABIAGAAeAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAANAAgADQAAAAAAAAAAAAAAAAAYAAgAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAABgACAAXABwAGAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAAACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAYABgAGAAYABgAGAAYAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIACgAKAAoACgAMAAcABwAHAAcABwAHAAcAAQABAAEAAQABAAAAAAAAAAAAAwAEAAQABAAEAAQABQAFAAUABQAJAAkABgAHAAYABwAGAAcAAgABAAIAAQACAAEAAgABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAIAAQACAAEAAgABAAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAMAAgAEAAIABAACAAQAAAAAAAAAAAAAAAAAEAAOABAADgAQAA4AEAAOABAADgALAAAACwAAAAsAAAAKAAUACgAFAAoABQAKAAUACgAFAAoABQAWAAAADAAJAAwAEwAPABMADwATAA8AAAAAAAIAAAAAAAAAAAANAA0ADQANAA0ADQANAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIABIAEgASABIAFwANAA0ADQAIAAgACAAIAAAAAAAAAAAAAAAAAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgAAAAAAAAAHgAeAB4AHgAAABgAAAASABIAEgASABIAEgAkABcAFwAAAAAAAAAGAAAAAAAAAAIADAAAAAAABgAAAAAAEwAAAAAAAAAAAAAAAgAAAAAADAARAAAADAABAAAAAwAAAAUAAAAEAAAACQAAAAAABQAEAAUAAAAAAAAAAAAAAAAAIwAAAAAAIgAGAAAAAAAAAAAAAAAAAAIAAAAAAAIACwARAAcAAQADAAQAAwABAAkAFQABAAMADgAAAAAAAAADAAkAFgAAABYAAAAWAAAADAAJABQAFAAAAAAAFAAAAAMABgAHAAAAAAABAAMAAAAAAB0ACQABAAIAAAAAAAIAAQAMAAkAAAARABUAAAAGAAcABgAHAAAAAAAAAAEAAAABAAEAEQAVAAAAAAAAAAMAAAADAAIABAACAAEAAgAEAAAAAAAiAAkAIgAJACIACQAgACEAAAADAAEABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAEAAgABAAIAAQACAAQAAgABAAoABQAKAAUAAAAFAAAABQAAAAUAAAAFAAAABQAMAAkADAAJAAwACQAAAAsAAAAgACEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABgAHAAAAAQAAAAAAAgAEAAAAAAAAAAUAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwACAAAAAAAAAAAAEAAOAAsAAAAKAB0ACQAdAAkAFgAAABMADwAAAA0AAAAAAAAACAAXAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcAAAAFwAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAIAAAAAAAIABgAHAAAAAAACAAXAAAAAQAAAAoBYgKSAARERkxUABpjeXJsABpncmVrABpsYXRuAEgABAAAAAD//wASAAAAAQACAAMABAAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAC4AB0FaRSAA5ENSVCAA5EZSQSAAWk1PTCAAtk5BViAAiFJPTSAAtlRSSyAA5AAA//8AEwAAAAEAAgADAAQABwAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACQAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAKAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wATAAAAAQACAAMABAAFAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAGGMyc2MAkmNjbXAAmGRsaWcAoGRub20ApmZyYWMArGxpZ2EAtmxpZ2EAvGxpZ2EAyGxudW0A0GxvY2wA1mxvY2wA3GxvY2wA4m51bXIA6G9udW0A7nBudW0A9HNtY3AA+nNzMDEBAHNzMDIBBnNzMDMBDHNzMDQBEnNzMDUBGHNzMDYBHnNzMDcBJHRudW0BKgAAAAEAAAAAAAIAAgAEAAAAAQAKAAAAAQAYAAAAAwAWABcAGQAAAAEACQAAAAQACAAJAAgACQAAAAIACAAJAAAAAQAVAAAAAQAHAAAAAQAFAAAAAQAGAAAAAQAZAAAAAQASAAAAAQATAAAAAQABAAAAAQALAAAAAQAMAAAAAQANAAAAAQAOAAAAAQAPAAAAAQAQAAAAAQARAAAAAQAUABoANgQwB+4IoAjKD24PhA+uD8IP5hAQEEwQYBB0EIgQmhC0EPYRFBFmEawSDhJsEoASsBLSAAEAAAABAAgAAgH6APoB5wJxAdEB0AHPAc4BzQHMAcsBygHJAcgCMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAegB6QJzAnUCdAJ2AnICdwJSAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+AgACAQT+AgICAwIEAgUCBgIHAggCCQIKAgsCOwINAg4CDwIQBPgCEQITAhQCFQIWAhcCGAIZAhsCHAIeAh0DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjBP8DZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UFAgN2A3cDeQN4A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFBQAFAQTLBMwEzQTOBM8E0ATRBNIE0wTUBNUE1gTXBNgE2QTaBNsE3ATdBN4E3wTgBOEE4gTjBOQE5QTmBOcB/wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gUDBQQFBQUGBPcE+QT6BPwCGgT9BPsCDAISBQsFDAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQABAAAAAQAIAAIB3ADrAnECMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAmQCcwMwAnUCdAMvAeMCcgJ3AlIE0gTTAeoB6wTUBNUE1gHsBNcB7QHuAe8E3AHwAfAE3QTeAfEB8gHzAfoE6wTsAfsB/AH9Af4B/wIABO8E8ATyBPUE/gICAgMCBAIFAgYCBwIIAgkCCgILAfQB9QH2AfcB+AH5AjsCDQIOAg8CEAT4AhECEwIUAhUCFwIZAnYDMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTAOCA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IE/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4MDhAOFBQAFAQTLBMwEzQTOBNgE2wTZBNoE3wTgBOEEzwTQBNEE6gTtBO4E8QTzBPQCAQT2BOIE4wTkBOUE5gTnBOgE6QUDBQQFBQUGBPcE+QT6AhgE/AIaBP0E+wIWAgwCEgULBQwAAQDrAAoARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAIUAhgCHAIkAigCLAI0AkACSAJQAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8BAAEBAQIBAwEEAQUBBgEHATABNAE2ATgBOgE8AUIBRAFGAUoBTQFaAnwCfgKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArcCuQK7Ar0CvwLBAsMCxQLHAskCywLNAs8C0QLTAtUC1wLZAtsC3QLfAuEC5ALmAugC6gLsAu4C8ALyAvQC9gL5AvsC/QL/AwEDAwMFAwcDCQMLAw0DDwMRAxMDFQMXAxkDGwMdAx8DIQMjAyYDKAMqAywDLgOeA58DoAOhA6MDpAOlA6YDpwOoA6kDqgOrA6wDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPUA9YD2APaA+8D8QPzBAEECAQOBBQEfgR/BIMEhwUIBQoABgAAAAYAEgAqAEIAWgByAIoAAwAAAAEAEgABAJAAAQAAAAMAAQABAE0AAwAAAAEAEgABAHgAAQAAAAMAAQABAE4AAwAAAAEAEgABAGAAAQAAAAMAAQABAuEAAwAAAAEAEgABAEgAAQAAAAMAAQABA84AAwAAAAEAEgABADAAAQAAAAMAAQABA9AAAwAAAAEAEgABABgAAQAAAAMAAQABBEkAAgACAKgArAAAASQBJwAFAAEAAAABAAgAAgASAAYCYQJfAmICYwJgBQ0AAQAGAE0ATgLhA84D0ARJAAQAAAABAAgAAQYyADYAcgCkAK4AuADKAPwBDgEYAUoBZAF+AZABugH2AgACIgI8Ak4CigKcArYC4ALyAyQDLgM4A0oDfAOGA5ADmgO0A84D4AQKBDwERgRoBIIElATGBNgE8gUcBS4FOAVCBUwFVgWABaoF1AX+BigABgAOABQAGgAgACYALAKAAAIAqQQeAAIArQJ/AAIAqAQgAAIAqwKCAAIAqgSZAAIArAABAAQEpgACAK0AAQAEArwAAgCpAAIABgAMBKoAAgG6BKgAAgCtAAYADgAUABoAIAAmACwCiAACAKkENgACAK0ChwACAKgEOAACAKsEOgACAKoEmwACAKwAAgAGAAwElQACAKkC1gACAboAAQAEBKwAAgCtAAYADgAUABoAIAAmACwCjAACAKkESAACAK0CiwACAKgERgACAKsC2gACAKoEnQACAKwAAwAIAA4AFASuAAIAqQLnAAIBugSwAAIArQADAAgADgAUAukAAgCpAusAAgG6BLIAAgCtAAIABgAMA+AAAgCpBLQAAgCtAAUADAASABgAHgAkAvEAAgCpAvMAAgG6BLYAAgCtBJcAAgCoAo8AAgCqAAcAEAAYAB4AJAAqADAANgS4AAMAqgCpApEAAgCpBEoAAgCtApAAAgCoBEwAAgCrApMAAgCqBJ8AAgCsAAEABAS5AAIAqQAEAAoAEAAWABwC/gACAKkDAAACAboEuwACAK0EoQACAKwAAwAIAA4AFAMEAAIAqQMKAAIBugS9AAIArQACAAYADAMOAAIBugS/AAIArQAHABAAGAAeACQAKgAwADYEwQADAKoAqQKWAAIAqQRiAAIArQKVAAIAqARkAAIAqwMUAAIAqgSjAAIArAACAAYADATEAAIArQTCAAIAqgADAAgADgAUA9UAAgCpBMYAAgCtA9MAAgCoAAUADAASABgAHgAkApkAAgCpBHAAAgCtA9kAAgCoBHIAAgCrBHQAAgCqAAIABgAMAyUAAgCpBMgAAgCtAAYADgAUABoAIAAmACwCmwACAKkEHwACAK0CmgACAKgEIQACAKsCnQACAKoEmgACAKwAAQAEBKcAAgCtAAEABAK9AAIAqQACAAYADASrAAIBugSpAAIArQAGAA4AFAAaACAAJgAsAqMAAgCpBDcAAgCtAqIAAgCoBDkAAgCrBDsAAgCqBJwAAgCsAAEABASWAAIAqQABAAQErQACAK0AAQAEBEkAAgCtAAMACAAOABQErwACAKkC6AACAboEsQACAK0AAwAIAA4AFALqAAIAqQLsAAIBugSzAAIArQACAAYADAPhAAIAqQS1AAIArQAFAAwAEgAYAB4AJALyAAIAqQL0AAIBugS3AAIArQSYAAIAqAKqAAIAqgAGAA4AFAAaACAAJgAsAqwAAgCpBEsAAgCtAqsAAgCoBE0AAgCrAq4AAgCqBKAAAgCsAAEABAS6AAIAqQAEAAoAEAAWABwC/wACAKkDAQACAboEvAACAK0EogACAKwAAwAIAA4AFAMFAAIAqQMLAAIBugS+AAIArQACAAYADAMPAAIBugTAAAIArQAGAA4AFAAaACAAJgAsArEAAgCpBGMAAgCtArAAAgCoBGUAAgCrAxUAAgCqBKQAAgCsAAIABgAMBMUAAgCtBMMAAgCqAAMACAAOABQD1gACAKkExwACAK0D1AACAKgABQAMABIAGAAeACQCtAACAKkEcQACAK0D2gACAKgEcwACAKsEdQACAKoAAgAGAAwDJgACAKkEyQACAK0AAQAEAysAAgCpAAEABAMtAAIAqQABAAQDLAACAKkAAQAEAy4AAgCpAAUADAASABgAHgAkAqcAAgCpAqYAAgCoBEcAAgCrAtsAAgCqBJ4AAgCsAAUADAASABgAHgAkBFgAAgCpBGAAAgCtBFoAAgCoBFwAAgCrBF4AAgCqAAUADAASABgAHgAkBFkAAgCpBGEAAgCtBFsAAgCoBF0AAgCrBF8AAgCqAAUADAASABgAHgAkBGYAAgCpBG4AAgCtBGgAAgCoBGoAAgCrBGwAAgCqAAUADAASABgAHgAkBGcAAgCpBG8AAgCtBGkAAgCoBGsAAgCrBG0AAgCqAAEABASlAAIAqQACABEAJQApAAAAKwAtAAUALwA0AAgANgA7AA4APQA+ABQARQBJABYASwBNABsATwBUAB4AVgBbACQAXQBeACoAgQCBACwAgwCDAC0AhgCGAC4AiQCJAC8AjQCNADAAmACbADEA0ADQADUAAQAAAAEACAABAAYAAgABAAIDCAMJAAEAAAABAAgAAgASAAYFBwUIBQkFCgULBQwAAQAGAroCuwLMAs0DTwNYAAEAAAABAAgAAQAGAAEAAQABAXsABAAAAAEACAABAEAAAQAIAAIABgAOAb4AAwBKAE0BvAACAE0ABAAAAAEACAABABwAAQAIAAIABgAOAb8AAwBKAFABvQACAFAAAQABAEoABAAAAAEACAABACoAAwAMABYAIAABAAQBuwACAEoAAQAEAcEAAgBYAAEABAHAAAIAWAABAAMASgBXAJUAAQAAAAEACAABAAYB3gABAAEASwABAAAAAQAIAAEABgFvAAEAAQC7AAEAAAABAAgAAQAGAfUAAQABADYAAQAAAAEACAACABwAAgIsAi0AAQAAAAEACAACAAoAAgIuAi8AAQACAC8ATwABAAAAAQAIAAIAHgAMAkUCRwJGAkgCSQJnAmgCaQJqAmsCbAJtAAEADAAnACgAKwAzADUARgBHAEgASwBTAFQAVQABAAAAAQAIAAIADAADAm4CbwJvAAEAAwBJAEsCagABAAAAAQAIAAIALgAUAloCXgJYAlUCVwJWAlsCWQJdAlwCTwJKAksCTAJNAk4AGgAcAlMCZQACAAQAFAAdAAACZgJmAAoCcAJwAAsEjQSUAAwAAQAAAAEACAACAC4AFASUAnAEjQSOBI8EkASRAmYEkgSTAkwCTgJNAksCTwJlABoCUwAcAkoAAgACABQAHQAAAlUCXgAKAAEAAAABAAgAAgAuABQCWwJdAl4CWAJVAlcCVgJZAlwCWgAbABUAFgAXABgAGQAaABwAHQAUAAEAFAAaABwCSgJLAkwCTQJOAk8CUwJlAmYCcASNBI4EjwSQBJEEkgSTBJQAAQAAAAEACAACAC4AFASRBJICcASNBI4EjwSQAmYEkwAXABkAGAAWABsAFAAaAB0AHAAVBJQAAgAGABoAGgAAABwAHAABAkoCTwACAlMCUwAIAlUCXgAJAmUCZQATAAEAAAABAAgAAQAGAYEAAQABABMABgAAAAEACAADAAEAEgABAGwAAAABAAAAGAACAAMBlAGUAAABxQHHAAECHwIlAAQAAQAAAAEACAACADwACgHHAcYBxQIfAiACIQIiAiMCJAIlAAEAAAABAAgAAgAaAAoCPgB6AHMAdAI/AkACQQJCAkMCRAACAAEAFAAdAAA=\",\n  \"Roboto-MediumItalic.ttf\": \"AAEAAAASAQAABAAgR0RFRrRCsIIAAjW8AAACYkdQT1P5bkuGAAI4IAAAZS5HU1VC64LkWQACnVAAABWQT1MvMpfmsWQAAAGoAAAAYGNtYXABd1geAAAbWAAAEkZjdnQgMRwGTQAAMLQAAABcZnBnbYf8JKsAAC2gAAABvGdhc3AACAATAAI1sAAAAAxnbHlmY+A8RwAAOzAAAfWaaGRteE9zaHUAABZAAAAFGGhlYWT82tJ2AAABLAAAADZoaGVhDNsSswAAAWQAAAAkaG10eHXfmYAAAAIIAAAUOGxvY2GwCyu3AAAxEAAACh5tYXhwBz4DHwAAAYgAAAAgbmFtZaExfDcAAjDMAAAEwXBvc3T/YQBkAAI1kAAAACBwcmVwOd2J9QAAL1wAAAFYAAEAAAACIxJkzjlMXw889QAZCAAAAAAAxPARLgAAAADVAVLw+kH91Ql4CHMAAgAJAAIAAAAAAAAAAQAAB2z+DAAACTf6Qf5iCXgIAAGzAAAAAAAAAAAAAAAABQ4AAQAABQ4AjwAWAFYABQABAAAAAAAOAAACAAI4AAYAAQADBIEB9AAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAAEAAP/9BgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwOWAGQAAAAAAAAAAAH5AAAB+QAAAh8ANwKOAKEExwA7BHMAQgW9ALUFAAAtAVoAkAK/AGgCxv+UA3gAZwRdAD0Bv/+JApYANgI1ADADHP9/BHMAYARzAO8EcwALBHMAJgRzAAkEcwBaBHMAYwRzAIYEcwA7BHMAjgIZACsB4v+aA/wAMgRiAGIEFAAvA9AAlQb7ADIFNP+kBO8AJwUbAGUFHAAnBG0AJwRNACcFUgBrBY0AJwI7ADUEWQADBO4AJwQ9ACcG1QAnBYwAJwVmAGsFAAAnBWYAZATiACcEuQAkBMAAnAUZAFsFDwCbBt4AtwTz/8MExQChBLb/5QIq/+8DSACsAir/egNbAEQDiv95AooAygQ9ACIEaAAQBBoAOARrADsENAA7AsoAXwRw//cEWQANAgUAHwH8/wwEFwARAgUAHwbLABAEWwANBHUAOQRo/8cEcgA7AsQAEAQLABwCnwA7BFoASgPhAGQFzgB3A/H/uQPR/7UD8f/nAqQAMAH9ACACpP+ZBTIAWwIY/+YEZQBMBJv/9gV8AAgEKQAyAff/7ATc/9wDdADRBh4AXgOAAL4DzgBJBFUAgAYeAF4DxwEBAv0A5AQzABsC6QBWAukAZwKRAMgEof/dA9kAfQI7AJ4CCv/TAukA4AOVAL4DzgACBa0AuQYGALEGMACWA9D/0gdV/4cELQAjBWQAFQSvACcEywAbBpcADwSNAEYEeAA9BG8AKgR+/80E0QA7BY4ALgIUACIEfwAhBEwAIQJHAB8FcgAjBG8AEQeDAFAHDQBCAgYAHgVoAE4CxP9KBWkAWwSFADYFgwBbBNYASgIg/w8EJQA2A9IBAgOeAQ0DyAEBA2sA/gIFAQICpwD6AkX/qAPEAN4DEQCsAmP/7gAA/VQAAP3XAAD89gAA/dYAAPy/AAD8oAJVAS4EJQDoAjsAngRdAC4Fnf+qBVoAXgUa/7IEdwAABY8ALgR3/9wFywBSBYkAdQU8AAkEawA+BKv/5QP5AHcEbwA4BEgAKAQFAGYEbwARBIcAbAKgAG4EUv+oA/4APgTXAF0Eb//LBCEAOwR3ADgEFwBuBEgAVwWtADIFpwA/BmsAVASZAFAEYwBtBkoAVwXaAJEFOgBnCFD/yghXAC4GNACgBYkAJQTrACMF4v+EB3H/pQS7AB4FhwAnBYj/ygTtAJsGOABWBdUAJQVoAMUHawArB8YAKwX1AIkGzQAuBOoAIwUxAE8HJgAyBNv/sARlAEMEdgAiA0oAGATa/4UGTv+tBAEAFgR/ABkEVgAiBIH/vwXfACIEfgAZBH8AGQPhAFMFsAA9BLgAGQROAHAGZgAZBsEAEgT6AE8GSAAiBFAAIgQlACMGXAAkBFj/tgRZAA0EJQA7Bqf/vQa5ABkEcAANBH8AGQcbAGAGKQBEBE8AIQb7ACsF3QAZBO//rgRI/5wHFAA+BhAAMAbCABQFwwAWCPUANQfGACIECv+qA9z/tQVaAGIEbwA2BP0AqAP5AHcFWgBmBG8AOAcXAGIGHgBLBxsAYAYpAEQE/QBWBDMARQTjADgAAPzmAAD9DgAA/isAAP48AAD6QQAA+m8GBQAnBP4AGQRPACEE9gAnBG3/xwRSACIDjwARBNYALgQKABEH6P+lBqn/rQWpAC4E3gAiBQ4AIwSRACEGbACkBYMAbAYDACcE8AAZB54AJwWJABEIEQAuBsoAEQYFAGUE4wBLBRv/wwQv/7kHBACdBVAAVgXWAMUEwQBwBVQAuQRbAIUFZgAXBf8AYgSo//QFBAAjBGAAIQYD/8oFAP+/BY0ALgRvABEGDwAnBP0AGQdOACcGUAAiBWgASASMAC8EjP/wBKwAMwOdAAkFSP/DBFz/uQTqADAGxgBFBrIARwYsAKoFCgBhBGMAkgQnAIwHjf/eBnT/3gfKACcGdQALBOcATAQWAD0FiQCQBQAAcwU2AFYGI//KBSD/vwMeAOwD/wAAB/QAAAP/AAAH9AAAAq4AAAIEAAABXAAABGYAAAIpAAABnwAAAQIAAADVAAAAAAAAApcANgKXADYFCwCcBgoAggOK/1IBvQCuAbkAigHK/6QBpQDNAwYAtwMNAJcC+/+hBEUAaQSA//sCwACeA+UAMwWFADMBxABbB3YAnQJpAF0CYP/5A4r/4QLpAGQDTABuBJv/9gZJAA0GjgArCFsAJwYDABwGZAAQBHMATgXRAEIEHgA7BIgAEAU//+QFXf/mBcEAwgPOADEH+QAjBOwA7QT3AH0GDwC2BrIAgganAIgGeQC1BHgARQV1AB8Evv+nBGoAnASYADQIDwBJAib/FwR1ADAEYgBiA/z/1QQUABcD9wA6AlMAaQKOAGYB7P/PBP4AXwSOAEsEogBfBvYAXwb2AF8E9ABfBo0AFwAAAAAH+/+pCDUAXALp/+MC6QBtAukAFwQHAGQEBwAhBAcAWAQGADwEBwAxBAf//AQHAAgEB//xBAcAsgQHADoEFP/WBCUAbQRG/6QF4wCMBGMAcARrADkEJQBiBB4ADgRFAAoEpgA3BFUACgSmADoEwgAKBeIACgOmAAoERAAKA8L/8gH3ABgEwwAKBIwAPwOyAAoEHgAOBE4AEQOSAAMDpgAKBGP/pwSmADoEY/+nA4b/1wS9AAoEBP/ZBXwAQwU1AHAEyAAABXAAYgRnADkHJv/BBykACgV2AGIEvAAKBFkACwU6/4MGFP+pBC8ADATIAAsERQAKBLD/wQQvAHIFPgAKBHMAXQZcAAoG3gAKBTsASgX7AAsETwALBGcAEwZqAAoEb//SBAz/9QZq/6kEhAAKBP0ACgVOAGIFzABABEMAbQSp/6QGbABiBHMAXQRzAAoF2gA3BLcANAQvAAwEpgA6BE4ABAPjAB4IAQAKBM//2QLp//QC6f/xAukACgLpABYC6QAjAukACALpADMDpgCTAqcBBgPMAAoEJf+HBKEAOwUmAC4FCgAuBBoAFAUbAC4EFwAUBGIACgRnADkESAAKBIX/mwH/AOsDjwEEAAD9JgP2ANwD9gATA/YA2AP2ANcDpgAKA48BBAOPAQUC6QCKAukAZALpAH0C6QCJAukAlgLpAHsC6QCmBVoAbwWBAHEFZgAuBb0AcgW/AHIEBQCrBGkAHwRA/38EpP/RBFP/1AQYACcDjwEEAbD/sgZvADoEmgBHAgr/BwRz/6gEc//YBHP/yARzABcEcwBGBHMAIgRzAF0EcwAuBHMAOwRzAPUCIP8PAiD/DwIVACICFf99AhUAIgRIAAoEzwBOBB0AVQRvABAEJgA3BH8AOwR6ACoEhwA0BHv/xwSGADsENAA7BHAAMAOSAKQE5wAiA7H/7QYg/4ID9AAKBKb/3ATsAB4EwgAKAfkAAAKWADYFOv//BTr//wR3ACsEwACcAp//4gU0/6QFNP+kBTT/pAU0/6QFNP+kBTT/pAU0/6QFGwBlBG0AJwRtACcEbQAnBG0AJwI7ADUCOwA1AjsANQI7ADUFjAAnBWYAawVmAGsFZgBrBWYAawVmAGsFGQBbBRkAWwUZAFsFGQBbBMUAoQQ9ACIEPQAiBD0AIgQ9ACIEPQAiBD0AIgQ9ACIEGgA4BDQAOwQ0ADsENAA7BDQAOwIUACICFAAiAhQAIgIUACIEWwANBHUAOQR1ADkEdQA5BHUAOQR1ADkEWgBKBFoASgRaAEoEWgBKA9H/tQPR/7UFNP+kBD0AIgU0/6QEPQAiBTT/pAQ9ACIFGwBlBBoAOAUbAGUEGgA4BRsAZQQaADgFGwBlBBoAOAUcACcFAQA7BG0AJwQ0ADsEbQAnBDQAOwRtACcENAA7BG0AJwQ0ADwEbQAnBDQAOwVSAGsEcP/3BVIAawRw//cFUgBrBHD/9wVSAGsEcP/3BY0AJwRZAA0COwA1AhQAFAI7ADUCFAAiAjsANQIUACICO/+OAgX/dgI7ADUGlAA1BAEAHwRZAAMCIP8PBO4AJwQXABEEPQAnAgUAHwQ9ACcCBf+iBD0AJwKbAB8EPQAnAuEAHwWMACcEWwANBYwAJwRbAA0FjAAnBFsADQRbAA0FZgBrBHUAOQVmAGsEdQA5BWYAawR1ADkE4gAnAsQAEATiACcCxP+cBOIAJwLEABAEuQAkBAsAHAS5ACQECwAcBLkAJAQLABwEuQAkBAsAHAS5ACQECwAcBMAAnAKfADsEwACcAp8AOwTAAJwCxwA7BRkAWwRaAEoFGQBbBFoASgUZAFsEWgBKBRkAWwRaAEoFGQBbBFoASgUZAFsEWgBKBt4AtwXOAHcExQChA9H/tQTFAKEEtv/lA/H/5wS2/+UD8f/nBLb/5QPx/+cHVf+HBpcADwVkABUEbwAqBGL/lwRi/5cEJQBiBIX/mwSF/5sEhf+bBIX/mwSF/5sEhf+bBIX/mwRnADkDzAAKA8wACgPMAAoDzAAKAfcAGAH3ABgB9wAYAfcAGATCAAoEpgA6BKYAOgSmADoEpgA6BKYAOgRrADkEawA5BGsAOQRrADkEJQBtBIX/mwSF/5sEhf+bBGcAOQRnADkEZwA5BGcAOQRiAAoDzAAKA8wACgPMAAoDzAAKA8wACgSMAD8EjAA/BIwAPwSMAD8EwwAKAfcADQH3ABgB9wAYAff/igH3ABgDwv/yBEQACgOmAAoDpgAKA6YACgOmAAoEwgAKBMIACgTCAAoEpgA6BKYAOgSmADoERQAKBEUACgRFAAoEHgAOBB4ADgQeAA4EHgAOBCUAYgQlAGIEJQBiBGsAOQRrADkEawA5BGsAOQRrADkEawA6BeMAjAQlAG0EJQBtBBT/1gQU/9YEFP/WBTT/pARt/14Fjf9mAjv/agV6ABgFKf9YBVAAHQKgAAsFNP+kBO8AJwRtACcEtv/lBY0AJwI7ADUE7gAnBtUAJwWMACcFZgBrBQAAJwTAAJwExQChBPP/wwI7ADUExQChBGsAPgRIACgEbwARAqAAbgRIAFcEfwAhBHUAOQSh/90D4QBkA/H/uQKgAEwESABXBHUAOQRIAFcGawBUBG0AJwRdAC4EuQAkAjsANQI7ADUEWQADBQoALgTuACcE7QCbBTT/pATvACcEXQAuBG0AJwWHACcG1QAnBY0AJwVmAGsFjwAuBQAAJwUbAGUEwACcBPP/wwQ9ACIENAA7BH8AGQR1ADkEaP/HBBoAOAPR/7UD8f+5BDQAOwNKABgECwAcAgUAHwIUACIB/P8MBFYAIgPR/7UG3gC3Bc4AdwbeALcFzgB3Bt4AtwXOAHcExQChA9H/tQFaAJACjgChBD4ANwIg/w8BuQCKBtUAJwbLABAFNP+kBD0AIgRtACcFhwAnBDQAOwR/ABkFiQB1BacAPwT9AKgD+QB3CEYAOQk3AGsEuwAeBAEAFgUbAGUEGgA4BMUAoQP5AHcCOwA1B3H/pQZO/60COwA1BTT/pAQ9ACIFNP+kBD0AIgdV/4cGlwAPBG0AJwQ0ADsFaABIBCUANgQlADYHcf+lBk7/rQS7AB4EAQAWBYcAJwR/ABkFhwAnBH8AGQVmAGsEdQA5BVoAYgRvADYFWgBiBG8ANgUxAE8EJQAjBO0AmwPR/7UE7QCbA9H/tQTtAJsD0f+1BWgAxQROAHAGzQAuBkgAIgRrADsFNP+kBD0AIgU0/6QEPQAiBTT/pAQ9ACIFNP+kBD0AIgU0/6QEPQAiBTT/pAQ9ACIFNP+kBD0AIgU0/6QEPQAiBTT/pAQ9ACIFNP+kBD0AIgU0/6QEPQAiBTT/pAQ9ACIEbQAnBDQAOwRtACcENAA7BG0AJwQ0ADsEbQAnBDQAOwRtACcENAA7BG0AJwQ0ADsEbQAnBDQAOwRtACcENAA7AjsANQIUACICO///AgX/5AVmAGsEdQA5BWYAawR1ADkFZgBrBHUAOQVmAGsEdQA5BWYAawR1ADkFZgBrBHUAOQVmAGsEdQA5BWkAWwSFADYFaQBbBIUANgVpAFsEhQA2BWkAWwSFADYFaQBbBIUANgUZAFsEWgBKBRkAWwRaAEoFgwBbBNYASgWDAFsE1gBKBYMAWwTWAEoFgwBbBNYASgWDAFsE1gBKBMUAoQPR/7UExQChA9H/tQTFAKED0f+1BIn/9ATAAJwD4QBTBWgAxQROAHAEXQAuA0oAGAX/AGIEqP/0BFkADQTqACME6gAjBF3//ANK/8sFHgA3BC4AGQTFAKED+QBUBPP/wwPx/7kESAAoBE3/wwYKAIIEcwALBHMAJgRzAAkEcwBaBIcAdwSbAE8EhwCOBJsAdAVSAGsEcP/3BYwAJwRbAA0FNP+kBD0AIgRtACcENAA7Ajv/yQIU/34FZgBrBHUAOQTiACcCxAAHBRkAWwRaAEoEx/8kBO8AJwRoABAFHAAnBGsAOwUcACcEawA7BY0AJwRZAA0E7gAnBBcAEQTuACcEFwARBD0AJwIF/+QG1QAnBssAEAWMACcEWwANBWYAawUAACcEaP/HBOIAJwLE/94EuQAkBAsAHATAAJwCnwA7BRkAWwUPAJsD4QBkBQ8AmwPhAGQG3gC3Bc4AdwS2/+UD8f/nBaz+swSF/5sECP9tBP//eAIz/3sEsP/SBGH/LATS/+IEhf+bBEgACgPMAAoEFP/WBMMACgH3ABgERAAKBeIACgTCAAoEpgA6BFUACgQlAGIEJQBtBEb/pAH3ABgEJQBtA8wACgOmAAoEHgAOAfcAGAH3ABgDwv/yBEQACgQvAHIEhf+bBEgACgOmAAoDzAAKBMgACwXiAAoEwwAKBKYAOgS9AAoEVQAKBGcAOQQlAGIERv+kBC8ADQTDAAoEZwA6BCUAbQXaADcEyAALBC8AcgV8AEMFuQAYBiD/ggSm/9wEHgAOBeMAjAXjAIwF4wCMBCUAbQU0/6QEPQAiBG0AJwQ0ADsEhf+bA8wACgIU/+QAAAABAAAFEAkKBAAAAgICAwUFBgYCAwMEBQIDAgQFBQUFBQUFBQUFAgIEBQUECAYGBgYFBQYGAwUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBQQHBAQFBwQDBQMDAwUEAwIDBAQGBwcECAUGBQUHBQUFBQUGAgUFAwYFCAgCBgMGBQYFAgUEBAQEAgMDBAMDAAAAAAAAAwUDBQYGBgUGBQcGBgUFBAUFBQUFAwUEBQUFBQUFBgYHBQUHBwYJCQcGBgcIBQYGBgcHBggJBwgGBggFBQUEBQcFBQUFBwUFBAYFBQcIBgcFBQcFBQUHCAUFCAcFCAcGBQgHCAYKCQUEBgUGBAYFCAcIBwYFBgAAAAAAAAcGBQYFBQQFBQkIBgUGBQcGBwYJBgkIBwYGBQgGBwUGBQYHBQYFBwYGBQcGCAcGBQUFBAYFBggIBwYFBQkHCQcGBQYGBgcGBAUJBQkDAgIFAgIBAQADAwYHBAICAgIDAwMFBQMEBgIIAwMEAwQFBwcJBwcFBwUFBgYGBAkGBgcIBwcFBgUFBQkCBQUEBQQDAwIGBQUICAYHAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQUHBAUEAgUFBAUFBAQFBQUEBQUGBgUGBQgIBgUFBgcFBQUFBQYFBwgGBwUFBwUFBwUGBgcFBQcFBQcFBQUFBAkFAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABAQEBAQEBAMDAwMDAwMGBgYGBgUFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQUFBQUFBQUFBQUFBAYEBwQFBgUCAwYGBQUDBgYGBgYGBgYFBQUFAwMDAwYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQMCAwIDAgMCAwcFBQIGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUEBQQFBAgHBgUFBQUFBQUFBQUFBQQEBAQCAgICBQUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQUCAgICAgQFBAQEBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYDBgYGAwYGBQUGAwYIBgYGBQUGAwUFBQUDBQUFBQQEAwUFBQcFBQUDAwUGBgYGBgUFBggGBgYGBgUGBQUFBQUFBAQFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYGBgQJCgUFBgUFBAMIBwMGBQYFCAcFBQYFBQgHBQUGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUDAgMCBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQQGBAUFBwUFBQUFBQUFBgUGBQYFBQUDAgYFBgMGBQUGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwUFBQMGBgQGBAgHBQQGBQUGAgUFBQUFBAUFAgUHBQUFBQUFAgUEBAUCAgQFBQUFBAQFBwUFBQUFBQUFBQUFBwUFBgYHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJIAsgESAVIB4gIiAnIDAgMyA6IDwgRCB0IH8gpCCqIKwgsSC6IL0hBSETIRYhIiEmIS4hXiICIgYiDyISIhoiHiIrIkgiYCJlJcruAvbD+wT+///9//8AAAAAAAIADQAgAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExAVQBYAFoAX8BjwGSAaABrwHwAfoCGAI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBKAEqgSyBLsEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIAogECATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCmIKsgsSC5ILwhBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQAA//b/5AHY/8IBzP/BAAABvwAAAboAAAG2AAABtAAAAbIAAAGqAAABrP8W/wf/Bf74/usB7gAAAAD+Zf5EASP92P3X/cn9tP2o/af9ov2d/YoAAP/+//0AAAAA/QoAAP/e/P78+wAA/LoAAPyyAAD8pwAA/KEAAPyZAAD8kQAA/ygAAP8lAAD8XgAA5eLlouVT5X7k5+V85X3hcuFz4W8AAOFs4WvhaeFh46nhWeOh4VDhIeEXAADg8gAA4O3g5uDl4J7gkeCP4ITflOB54E3fqt6s357fnd+W35Pfh99r31TfUdvtE7cK9wa7AsMBxwABAAAAAAAAAAAAAAAAAAAAAADkAAAA7gAAARgAAAEyAAABMgAAATIAAAF0AAAAAAAAAAAAAAAAAAABdAF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAXQBkAAAAagAAAAAAAABwAAAAggAAAIwAAACUgAAAmIAAAKOAAACmgAAAr4AAALOAAAC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAtIAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAACwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ/AoACgQKCAoMChACBAnsCjwKQApECkgKTApQAggCDApUClgKXApgCmQCEAIUCmgKbApwCnQKeAp8AhgCHAqoCqwKsAq0CrgKvAIgAiQKwArECsgKzArQAigJ6AIsAjAJ8AI0C4wLkAuUC5gLnAugAjgLpAuoC6wLsAu0C7gLvAvAAjwCQAvEC8gLzAvQC9QL2AvcAkQCSAvgC+QL6AvsC/AL9AJMAlAMMAw0DEAMRAxIDEwJ9An4ChQKgAysDLAMtAy4DCgMLAw4DDwCuAK8DhgCwA4cDiAOJALEAsgOQA5EDkgCzA5MDlAC0A5UDlgC1A5cAtgOYALcDmQOaALgDmwC5ALoDnAOdA54DnwOgA6EDogOjAMQDpQOmAMUDpADGAMcAyADJAMoAywDMA6cAzQDOA+QDrQDSA64A0wOvA7ADsQOyANQA1QDWA7QD5QO1ANcDtgDYA7cDuADZA7kA2gDbANwDugOzAN0DuwO8A70DvgO/A8ADwQDeAN8DwgPDAOoA6wDsAO0DxADuAO8A8APFAPEA8gDzAPQDxgD1A8cDyAD2A8kA9wPKA+YDywECA8wBAwPNA84DzwPQAQQBBQEGA9ED5wPSAQcBCAEJBIED6APpARcBGAEZARoD6gPrA+0D7AEoASkBKgErBIABLAEtAS4BLwEwBIIEgwExATIBMwE0A+4D7wE1ATYBNwE4BIQEhQPwA/EEdwR4A/ID8wSGBIcEfwFMAU0EfQR+A/QD9QP2AU4BTwFQAVEBUgFTAVQBVQR5BHoBVgFXAVgEAQQABAIEAwQEBAUEBgFZAVoEewR8BBsEHAFbAVwBXQFeBIgEiQFfBB0EigFvAXABgQGCBIwEiwGXBHYBnQAMAAAAAAu8AAAAAAAAAPkAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAngAAAChAAAArAAAAGMAAACtAAAArQAAAnkAAACuAAAAvwAAAG8AAADAAAAAxQAAAn8AAADGAAAAxgAAAIEAAADHAAAAzwAAAoYAAADQAAAA0AAAAnsAAADRAAAA1gAAAo8AAADXAAAA2AAAAIIAAADZAAAA3QAAApUAAADeAAAA3wAAAIQAAADgAAAA5QAAApoAAADmAAAA5gAAAIYAAADnAAAA7wAAAqEAAADwAAAA8AAAAIcAAADxAAAA9gAAAqoAAAD3AAAA+AAAAIgAAAD5AAAA/QAAArAAAAD+AAAA/gAAAIoAAAD/AAABDwAAArUAAAEQAAABEAAAAnoAAAERAAABEQAAAIsAAAESAAABJQAAAsYAAAEmAAABJgAAAIwAAAEnAAABJwAAAnwAAAEoAAABMAAAAtoAAAExAAABMQAAAI0AAAEyAAABNwAAAuMAAAE4AAABOAAAAI4AAAE5AAABQAAAAukAAAFBAAABQgAAAI8AAAFDAAABSQAAAvEAAAFKAAABSwAAAJEAAAFMAAABUQAAAvgAAAFSAAABUwAAAJMAAAFUAAABXwAAAv4AAAFgAAABYQAAAwwAAAFiAAABZQAAAxAAAAFmAAABZwAAAn0AAAFoAAABfgAAAxQAAAF/AAABfwAAAJUAAAGPAAABjwAAAJYAAAGSAAABkgAAAJcAAAGgAAABoQAAAJgAAAGvAAABsAAAAJoAAAHwAAAB8AAAA94AAAH6AAAB+gAAAoUAAAH7AAAB+wAAAqAAAAH8AAAB/wAAAysAAAIYAAACGQAAAwoAAAIaAAACGwAAAw4AAAI3AAACNwAAAJwAAAJZAAACWQAAAJ0AAAK8AAACvAAAA98AAALGAAACxwAAAJ4AAALJAAACyQAAAKAAAALYAAAC3QAAAKEAAALzAAAC8wAAAKcAAAMAAAADAQAAAKgAAAMDAAADAwAAAKoAAAMJAAADCQAAAKsAAAMPAAADDwAAAKwAAAMjAAADIwAAAK0AAAOEAAADhQAAAK4AAAOGAAADhgAAA4YAAAOHAAADhwAAALAAAAOIAAADigAAA4cAAAOMAAADjAAAA4oAAAOOAAADkgAAA4sAAAOTAAADlAAAALEAAAOVAAADlwAAA5AAAAOYAAADmAAAALMAAAOZAAADmgAAA5MAAAObAAADmwAAALQAAAOcAAADnQAAA5UAAAOeAAADngAAALUAAAOfAAADnwAAA5cAAAOgAAADoAAAALYAAAOhAAADoQAAA5gAAAOjAAADowAAALcAAAOkAAADpQAAA5kAAAOmAAADpgAAALgAAAOnAAADpwAAA5sAAAOoAAADqQAAALkAAAOqAAADsAAAA5wAAAOxAAADuQAAALsAAAO6AAADugAAA6MAAAO7AAADuwAAAMQAAAO8AAADvQAAA6UAAAO+AAADvgAAAMUAAAO/AAADvwAAA6QAAAPAAAADxgAAAMYAAAPHAAADxwAAA6cAAAPIAAADyQAAAM0AAAPKAAADzgAAA6gAAAPRAAAD0gAAAM8AAAPWAAAD1gAAANEAAAQAAAAEAAAAA+QAAAQBAAAEAQAAA60AAAQCAAAEAgAAANIAAAQDAAAEAwAAA64AAAQEAAAEBAAAANMAAAQFAAAECAAAA68AAAQJAAAECwAAANQAAAQMAAAEDAAAA7QAAAQNAAAEDQAAA+UAAAQOAAAEDgAAA7UAAAQPAAAEDwAAANcAAAQQAAAEEAAAA7YAAAQRAAAEEQAAANgAAAQSAAAEEwAAA7cAAAQUAAAEFAAAANkAAAQVAAAEFQAAA7kAAAQWAAAEGAAAANoAAAQZAAAEGQAAA7oAAAQaAAAEGgAAA7MAAAQbAAAEGwAAAN0AAAQcAAAEIgAAA7sAAAQjAAAEJAAAAN4AAAQlAAAEJQAAA8IAAAQmAAAELwAAAOAAAAQwAAAEMAAAA8MAAAQxAAAENAAAAOoAAAQ1AAAENQAAA8QAAAQ2AAAEOAAAAO4AAAQ5AAAEOQAAA8UAAAQ6AAAEPQAAAPEAAAQ+AAAEPgAAA8YAAAQ/AAAEPwAAAPUAAARAAAAEQQAAA8cAAARCAAAEQgAAAPYAAARDAAAEQwAAA8kAAAREAAAERAAAAPcAAARFAAAERQAAA8oAAARGAAAETwAAAPgAAARQAAAEUAAAA+YAAARRAAAEUQAAA8sAAARSAAAEUgAAAQIAAARTAAAEUwAAA8wAAARUAAAEVAAAAQMAAARVAAAEWAAAA80AAARZAAAEWwAAAQQAAARcAAAEXAAAA9EAAARdAAAEXQAAA+cAAAReAAAEXgAAA9IAAARfAAAEYQAAAQcAAARiAAAEYgAABIEAAARjAAAEbwAAAQoAAARwAAAEcQAAA+gAAARyAAAEdQAAARcAAAR2AAAEdwAAA+oAAAR4AAAEeAAAA+0AAAR5AAAEeQAAA+wAAAR6AAAEhgAAARsAAASIAAAEiwAAASgAAASMAAAEjAAABIAAAASNAAAEkQAAASwAAASSAAAEkwAABIIAAASUAAAElwAAATEAAASYAAAEmQAAA+4AAASaAAAEnQAAATUAAASeAAAEnwAABIQAAASgAAAEqQAAATkAAASqAAAEqwAAA/AAAASsAAAErQAABHcAAASuAAAErwAAA/IAAASwAAAEsQAABIYAAASyAAAEugAAAUMAAAS7AAAEuwAABH8AAAS8AAAEvQAAAUwAAAS+AAAEvwAABH0AAATAAAAEwgAAA/QAAATDAAAEygAAAU4AAATLAAAEzAAABHkAAATNAAAEzgAAAVYAAATPAAAE1wAAA/cAAATYAAAE2AAAAVgAAATZAAAE2QAABAEAAATaAAAE2gAABAAAAATbAAAE3wAABAIAAATgAAAE4QAAAVkAAATiAAAE9QAABAcAAAT2AAAE9wAABHsAAAT4AAAE+QAABBsAAAT6AAAE/QAAAVsAAAT+AAAE/wAABIgAAAUAAAAFAAAAAV8AAAUBAAAFAQAABB0AAAUCAAAFEAAAAWAAAAURAAAFEQAABIoAAAUSAAAFEwAAAW8AAB4AAAAeAQAAA+IAAB4+AAAePwAAA+AAAB6AAAAehQAAA9MAAB6gAAAe8QAABB4AAB7yAAAe8wAAA9kAAB70AAAe+QAABHAAAB9NAAAfTQAABMoAACAAAAAgCQAAAXIAACAKAAAgCwAAAX0AACAQAAAgEQAAAX8AACATAAAgFAAAAYEAACAVAAAgFQAABIwAACAXAAAgHgAAAYMAACAgAAAgIgAAAYsAACAlAAAgJwAAAY4AACAwAAAgMAAAAZEAACAyAAAgMwAAA9sAACA5AAAgOgAAAZIAACA8AAAgPAAAA90AACBEAAAgRAAAAZQAACB0AAAgdAAAAZUAACB/AAAgfwAAAZYAACCjAAAgowAABIsAACCkAAAgpAAAAZcAACCmAAAgqgAAAZgAACCrAAAgqwAABHYAACCsAAAgrAAAAZ0AACCxAAAgsQAAAZ4AACC5AAAgugAAAZ8AACC8AAAgvQAAAaEAACEFAAAhBQAAAaMAACETAAAhEwAAAaQAACEWAAAhFgAAAaUAACEiAAAhIgAAAaYAACEmAAAhJgAAALoAACEuAAAhLgAAAacAACFbAAAhXgAAAagAACICAAAiAgAAAawAACIGAAAiBgAAALIAACIPAAAiDwAAAa0AACIRAAAiEgAAAa4AACIaAAAiGgAAAbAAACIeAAAiHgAAAbEAACIrAAAiKwAAAbIAACJIAAAiSAAAAbMAACJgAAAiYAAAAbQAACJkAAAiZQAAAbUAACXKAAAlygAAAbcAAO4BAADuAgAAAbgAAPbDAAD2wwAAAboAAPsBAAD7BAAAAbwAAP7/AAD+/wAAAcIAAP/8AAD//QAAAcMAALAALEuwCVBYsQEBjlm4Af+FsEQdsQkDX14tsAEsICBFaUSwAWAtsAIssAEqIS2wAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS/9LbAFLEsgsAMmUFhRWLCARBuwQERZGyEhIEWwwFBYsMBEGyFZWS2wBiwgIEVpRLABYCAgRX1pGESwAWAtsAcssAYqLbAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbDAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSCwAyZTWLADJUW4AYBQWCMhuAGAIyEbsAMlRSMhIyFZGyFZRC2wCSxLU1hFRBshIVktsAossCxFLbALLLAtRS2wDCyxJwGIIIpTWLlAAAQAY7gIAIhUWLkALAPocFkbsCNTWLAgiLgQAFRYuQAsA+hwWVlZLbANLLBAiLggAFpYsS0ARBu5AC0D6ERZLbAMK7AAKwCyAQ4CKwGyDwECKwG3DzowJRsQAAgrALcBOC4kGhEACCu3Ak5AMiMVAAgrtwNIOy4hFAAIK7cETkAyIxUACCu3BTAoHxYOAAgrtwZjUT8tGwAIK7cHQDQkGhEACCu3CFtKOikZAAgrtwmDZE46IwAIK7cKd2JMNiEACCu3C5F3XDojAAgrtwx2YEs2HQAIK7cNLCQcFAwACCu3DkM3Kx8SAAgrALIQDgcrsAAgRX1pGESygBQBc7KwFAFzslAUAXSygBQBdLJwFAF1sj8cAXOyXxwBc7J/HAFzsi8cAXSyTxwBdLJvHAF0so8cAXSyrxwBdLL/HAF0sh8cAXWyPxwBdbJfHAF1sn8cAXWyDyABc7JvIAF1sn8gAXOy7yABc7IfIAF0sl8gAXSyjyABdLLPIAF0sv8gAXSyPyABdbIvIgFzsm8iAXOyLyoBc7I/KgFzACoAzACRAJ4AkQDsAHIAsgB9AFYAXwBOAGABBACqAMQAAAAU/mAAFAKbABD/OQAN/pcAEgMhAAsEOgAWBI0AEAWwABQGGAAVBsAAEAJbABIHBAAFBt4AAQAAAAAAAABgAGAAYABgAGAAnQDIAUcB0QKBAxUDMANfA4oDvQPlBAUEHARFBFwEvgTtBUcFwwYJBnYG6QcXB6EIEggeCCoISwh0CJUJBQnDCgoKegrbCywLcAupDBUMWQx0DK8M+A0dDXcNtQ4aDmsO1w80D6sP1xAdEE4QnRDnERkRVBF7EZIRuhHhEf0SHRKrExcTbhPXFFUUrhU8FYcVxRYYFmEWfRb2F0YXohgQGIIYwhk9GZYZ5BoUGmMaqxrwGysbehuRG98cJRxjHMgdNx2lHgoeKx7NHwMfuiA1IEEgYCEmIUEhhCHKIiQimyK7Iw4jPSNiI5UjxSQbJCckQSRbJHUk5yVOJYomCSZiJtgnwCg7KJkpGCl8KgEqZSqAKs4rGytbK7csGyyrLWstoS4VLoIu/y91L9MwOjBpMNUxEDE4MUAxcTGXMdcyBTJNMoMyyjLpMwkzEjNEM3YzlzOwNAI0CjQyNF806jUXNVo1ijXJNkU2pjcWN6E4HThRONM5ZjnEOhQ6nDrOOyo7ojv7PF88yT06PYM9zz5APqM/Hz+gP/tAe0DkQWRB5EJdQrlC+UNXQ7FEH0SoRONFMEV2RfdGMEZ3RrhHBUdiR8tIHUieSSxJjUoMSo9Kt0sRS4BMF0xSTKVM7006TZdNx031TpZOzk8WT1dPn0/7UGJQslEmUbJSElKTUv1TeFPwVFtUmlULVXhV6FZ0VwNXUFefWAxYfFj1WWhZ+1qMWytb21xaXMxdEV1XXcxeO18YX+9ggGERYW9hymH+YhtiVWJsYoNjYGPPY+pkBWR1ZNJlT2WAZatmCWZZZmVmcWZ9Zolm42c6Z41n5WfxZ/1oS2idaQRpX2oMaqlqtWrBawtrUmtea2prwWwSbFls3W1sbc9uK243bkNup28GbxJvHm8qbzZvqnATcHZwhXCVcKFwrXEBcWxyBnKEcv1zcnPidFd0x3U7da52EHZodsJ3Gnehd613uXfsd+x37Hfsd+x37Hfsd+x37Hfsd+x37Hfsd+x39Hf8eAZ4EHhCeGR4hnimeMh41HjgeRR5VXm7eeF57Xn9eix7GHs0e1F7ZHt4e8N8VHz+fZt9p359ful/coAwgJWBF4F3ge6CoYMPg6+EEYR8hJaEsITKhOSFX4WIhcOF2oYPhq+G94dwh7KHwYfQiAmIFohEiGGIbYjdiUCJ6oqIixaL74vvjbmOIo57jqaO+Y9oj/aQKJCXkP6RSpHWkjSSZpLCkv2TLpN4k8OT85Q3lGOU3JU4lZyV65ZNloeW2pb/l0SXe5eWl/OYYZidmR6ZipnumhmaT5rNmv6bS5t/m8ScNpyXnQOdZ53jnlme0Z8qn2yfyqAioJ+hAaE/oZmh3qIoomSirKLnoymjh6OTo+akX6TtpUylkqYbpoOm7adTp+yn+KhLqJuo76k3qayqFqp9qv+rmawkrMitS63BrgaucK7ZrwevmLAHsB6wc7C6sYGx+bJxsryzBbNJs4yz27Q4tMm1B7UmtXS15bYstnK20LdHt3W3xbgnuDu4T7hhuHW4h7ieuLK5E7mEudW6Qbqxut27ObuXu+G8RbxsvOK8+L2Fvfi+Kr4yvjq+Tb5Vvma+br52vn6+hr6Ovpa+nr6mvrG+ub8pv4i/tsAkwH3A6MFzwdXCP8KuwynDssO6xETEgsTxxUfFyMY9xpHGkcaZxwfHdcfgyCfInMizyMrI4cjzyP/JEskeySrJQclYyW/Je8mSyanJwMnMyd7J9coHyhnKK8o3yk7KZcp8yojKn8q2ys3K48r5ywXLHcspyzXLTMtjy3nLhMuay7DLx8vTy+nMAMwXzC3MQ8xOzGXMd8yIzJTMpsyxzMjM2czrzP3Nbs4ezjDOQs5UzmXOd86JzpvOrM7Dzs/O5s73zwnPGs8szz7PtNBV0GzQfdCP0KDQstDD0NXQ59Dz0QXRHNEu0UDRUtFp0YDRktGk0a/RutHM0djR5NH20g3SGdIl0jzSU9Jf0mvSgNKQ0pzSqNK/0tHS3dLp0wDTEdMh0zPTRNNW02jTe9OO06DTstO+08rT3NPt0//UEdQj1DTUQNRM1FjUZNR21IfUk9Sf1KvUt9TO1NrU7NT91Q/VINUy1UTVV9Vq1X3VkNX81nbWjdak1rvW0dbd1vTXC9cd1y/XQddS12nXe9eS16nX1Nf/2A/YJtg92FPYZNhw2IPYj9ib2LLYydjf2OrZANkW2S3ZOdlL2WLZdNmF2ZfZo9m62czZ3dnp2gDaFtoo2p3ar9rA2tLa49r52w/bINsy26jbvtvP2+Hb89v/3BXcJ9w+3FDcW9xs3IPcj9yl3LHcxtzS3Onc9d0M3R3dL91C3VTdYN1x3YPdlN2g3bHdvd3T3d/d8N4B3hPeJt453qTeu97R3tze898F3xvfJt8y3z7fSt9W32Lfbt+E34zflN+c36TfrN+037zfxN/M39Tf3N/k3+zf9OAA4AzgHuAw4ELgU+Bo4HDgeOCA4Ijg7+D74QbhGOEq4TzhSOFf4dbh3uHq4fLh+uIR4iPiK+Iz4jviQ+JV4l3iZeJt4nXifeKF4o3ileKd4qXit+K/4sfjHuMm4y7jOeNQ41jjYONs43Tji+Oc47PjyuPh4/jkBOQQ5CfkPeRM5GPkb+SB5I3kpOS25MLkzuTl5PzlE+Uq5TLlOuVS5WrlduWC5Y7lmuWm5bLluuXC5crl3OXu5fbmCOYa5ibmMuY65kLmVOZl5nHmeeaE5pDmnOao5rPmyubg5uzm+OcE5w/nF+cf5yvnNudC503nX+dw53znh+ea57LnvufJ59nn6efx5/3oCegb6C3oRehc6HToi+ij6Lro0ujp6QTpHuk26U3pYOly6YXpl+mq6bzp1+ny6f7qCuoc6i7qQOpR6mnqgOqY6q/qx+re6vbrDeso60LrVOtm63LrfuuK65brqOu669Lr6ewB7BjsMOxH7F/sduyR7KvswuzZ7PDtB+0e7TXtTO1i7W7teu2G7ZLtqe3A7dft7u4F7hzuM+5K7mHud+6D7o/um+6n7rnuy+7d7u7vCO8U7yDvLO8470TvUO9c72jvcO/f8E7wkPDT8TTxk/Hf8jDyivLi8ury9vMA8wjzEPMY8yDzKPMw8zjzQPNS82Tze/OS86rzwvPa8/L0CvQi9Dr0UvRq9IL0mvSy9L70yvTW9OL07vT69Qb1EvUe9TD1QvVO9Vr1ZvVy9X71ivWW9aL1tfXH9dn15fXx9f32CfYV9iH2NPZG9lf2Y/Zv9nv2h/aT9p/2q/a39sP2z/bb9uf28/b/9wf3D/cX9x/3J/cv9zf3P/dH90/3V/df92f3b/d794b3kfej96v3s/e/98f32ffr9/P3+/gD+Av4Hfgl+C34Nfg9+EX4TfhV+F34+/lx+dr54vnu+gD6EfoZ+iX6Mfo9+kn6Vfph+m36efqF+pH6nfqp+rX6wfrNAAAABQBkAAADKAWwAAMABgAJAAwADwBvsgwQERESObAMELAA0LAMELAG0LAMELAJ0LAMELAN0ACwAEVYsAIvG7ECID5ZsABFWLAALxuxABA+WbIEAgAREjmyBQIAERI5sgcCABESObIIAgAREjmwCtyyDAIAERI5sg0CABESObACELAO3DAxISERIQMRAQERAQMhATUBIQMo/TwCxDb+7v66AQzkAgP+/gEC/f0FsPqkBQf9fQJ3+xECeP1eAl6IAl4AAgA3/+8CIAWwAAMADgA8sgIPEBESObACELAL0ACwAEVYsAIvG7ECID5ZsABFWLAMLxuxDBA+WbEHDbAKK1gh2Bv0WbAB0LABLzAxASMTMwE0Njc2FhQGBwYmAVbMnPr+F0s6OU5LOjdQAa0EA/q/O0wCAkpySwICRwACAKED9ALCBgAABAAJACUAsABFWLADLxuxAyI+WbAC0LACL7AH0LAHL7ADELAI0LAILzAxAQMjEzMFAyMTMwGHXIpTqgENXIpTqgVs/ogCDJT+iAIMAAIAOwAABOUFsAAbAB8AjwCwAEVYsAwvG7EMID5ZsABFWLAQLxuxECA+WbAARViwAi8bsQIQPlmwAEVYsBovG7EaED5Zsh0MAhESObAdL7EAA7AKK1gh2Bv0WbAE0LAdELAG0LAdELAL0LALL7EIA7AKK1gh2Bv0WbALELAO0LALELAS0LAIELAU0LAdELAW0LAAELAY0LAIELAe0DAxASMDIxMjNzMTIzchEzMDMxMzAzMHIwMzByMDIwMzEyMCltORqpHeHPpv6RwBBZWpldSUqZTHHORu1BzxkakJ02/TAZr+ZgGangE5nwGg/mABoP5gn/7Hnv5mAjgBOQAAAQBC/y0EUQabACsAgrIfLC0REjkAsAovsABFWLAJLxuxCSA+WbAARViwIC8bsSAWPlmwAEVYsB8vG7EfED5ZsgIfCRESObAJELAM0LIQCR8REjmwCRCxEwGwCitYIdgb9FmwAhCxGQGwCitYIdgb9FmwHxCwItCyJh8JERI5sB8QsSkBsAorWCHYG/RZMDEBNiYmJyY3NjY3NzMHFhYHIzYmJyYGBwYWFhcWBwYGBwcjNyYmNxcGFhcWNgL+CVHrSKoOC+S0KJ0plJcK7AlVV1x9DQlQ6D+4DwvtvCScJaiwCe0HZmJpkQGDTHFiN4HPqtkV2t4f8r9/jQMCcGJMbGYtgtqt1RPDxBryvwF/hwICcwAABQC1/+cFPgXIAA0AGwApADcAOwCNsic8PRESObAnELAF0LAnELAW0LAnELAr0LAnELA40ACwOC+wOi+wAEVYsAAvG7EAID5ZsABFWLAjLxuxIxA+WbAAELAH0LAHL7ERArAKK1gh2Bv0WbAAELEYArAKK1gh2Bv0WbAjELAc0LAcL7AjELEtArAKK1gh2Bv0WbAcELE0ArAKK1gh2Bv0WTAxARYWBwcGBicmJjc3NjYDBhYXFjY3NzYmJyYGBwEWFgcHBgYnJiY3NzY2AwYWFxY2Nzc2JicmBgcFJwEXAg+DkggGD7mCfpkIBw23JAc4OjxYCwkHODs9WggCvYKTCAYOuoJ8mgYFC7kiBTo3PVUMCgU6N0BYCP3xeANveAXGBKqATYmmBAKqf0qJqv6BQFcCAldGTkFYAgJdSv4CBKp+ToepBAKmhEGOrf6CRVMCAlNLT0hQAgJdSO5PBGdPAAMALf/pBKEFyAAeACgANAB0si01NhESObAtELAR0LAtELAh0ACwAEVYsAkvG7EJID5ZsABFWLAYLxuxGBA+WbAARViwHC8bsRwQPlmyEgkYERI5shUJGBESObEfAbAKK1gh2Bv0WbIjCRgREjmyLAkYERI5sAkQsTIBsAorWCHYG/RZMDETNjc3JiY3NjYXHgIHBgYHBxM2NzcCBxchJwYnJiYFFjY3AwcGBwYWEwYXFzc2NzYmIyIGOAzGcj0oBAzkrF2WUAUFaXZ51lMVyxigof7+PbDHu+wBt0R4OPMiiREMaHAKMBdjgQwGSDdIZAGBtoxLcI0/qtQEA1KRV1qdUlD+vHyQAf7wrfpfdgQC3h4BNCMBcRZgd2B4A6BFXCo+Umo5SWkAAQCQA/wBlgYAAAQAFgCwAEVYsAMvG7EDIj5ZsALQsAIvMDEBAyMTMwGBVJ1RtQV3/oUCBAAAAQBo/jEDIAZgABEAELIGEhMREjkAsAMvsAwvMDETEgA3FwADBgcGEhcHJgITNjeANQFP+CT+qmYlAQJkYjirtwgCDAJMAW0COW6Q/vj9zM6/y/7RV4VqAcABKmBWAAH/lP4vAlAGXwAPABCyCRARERI5ALAIL7AALzAxAyc2EhM3ECc3FhYSBwICAEcl1PAaBMQ5c6NPBAmz/t7+L4qlAi8Bf3wBpayGRv3+pLX+6f31/pcAAQBnAksDpQWwAA4AIACwAEVYsAQvG7EEID5ZsADQGbAALxiwCdAZsAkvGDAxASU3BRMzAyUXBRMHAwMnAX/+6E8BFy2wSwEuGP7Bl5V83IYD0VihdwFd/qhwtFj+8WIBIf7sbgAAAQA9AJIELgS2AAsAGwCwCS+wANCwCRCxBgGwCitYIdgb9FmwA9AwMQEhByEDIxMhNyETMwK9AXEn/pBL50z+jCgBckbnAyHe/k8Bsd4BlQAB/4n+uAEUAOsABwAZsgcICRESOQCwCC+xBA2wCitYIdgb9FkwMRMnNjc3MwcGCH92GyXVGij+uFCed86h9wAAAQA2AgkCWALNAAMAEgCwAi+xAQGwCitYIdgb9FkwMQEhNyECNf4BIwH/AgnEAAEAMP/yAUMBAwALACOyCAwNERI5ALAARViwCS8bsQkQPlmxAw2wCitYIdgb9FkwMTc0Njc2FhUUBgcGJjBNPDtPTD07T3U9TQICSzs6TQICSgAB/3//gwOCBbAAAwATALAAL7AARViwAi8bsQIgPlkwMRcjATNDxAM+xX0GLQAAAgBg/+cEOgXJABEAIABIshchIhESObAXELAA0ACwAEVYsAkvG7EJID5ZsABFWLAALxuxABA+WbAJELEWAbAKK1gh2Bv0WbAAELEeAbAKK1gh2Bv0WTAxBSYmNzY3ExIAFxYWBwYHBwIAEzY1JicmBgcDBhcUFxYTAd+9wgMBCScxARjevMMDAQknM/7riA0FoHqUHi4MAaTiQRQE/eRKSgEEATIBLgUE+ORLSf3+x/7NA5ByMOIHBbzN/sNnPOoHDQFuAAEA7wAAA3gFtQAGADoAsABFWLAFLxuxBSA+WbAARViwAC8bsQAQPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZsgIDBRESOTAxISMTBTclMwKB7Mr+kCUCQCQEjHrXzAABAAsAAAQ/BccAGABXsgkZGhESOQCwAEVYsBAvG7EQID5ZsABFWLAALxuxABA+WbIDEAAREjmwEBCxCAGwCitYIdgb9FmyDBAAERI5shUQABESObAAELEXAbAKK1gh2Bv0WTAxISE3ATY3NiYnJgYHBz4CFxYWBwYHBwEhA8L8SRwCXakRDVpab5gQ7AqP7Yq+3Q0R5D7+WwKHsQJFpYZffwQEk38BhtZ3AwTUsszjPf50AAABACb/6AQ5BcUAKgBqsggrLBESOQCwAEVYsA8vG7EPID5ZsABFWLAbLxuxGxA+WbAB0LABL7APELEHAbAKK1gh2Bv0WbAPELAL0LABELEpAbAKK1gh2Bv0WbIVKQEREjmwGxCwINCwGxCxIwGwCitYIdgb9FkwMQEXMjY3NiYnJgYHBz4CFxYWBwYGBxYXFQYEJy4CNxcGFhcWNjc2JicnAaCBdZwLC15dXooO7QmI23/D4Q0Hhn+tCw3+2dZ7xGkE7ARnY22ZDAxzbJkDRwF+aWNxAgJyXQF1uGMBBNu4ZKc8UMYwxPQEAWe7eAFgdQMEiG5vdAMBAAIACQAABCoFsAAKAA4ASgCwAEVYsAkvG7EJID5ZsABFWLAELxuxBBA+WbIBCQQREjmwAS+xAgGwCitYIdgb9FmwBtCwARCwC9CyCAYLERI5sg0JBBESOTAxATMHIwMjEyE3ATMBIRMHA3qwIq857Tj9nhUDAv39BwFpcRgCB8P+vAFEoAPM/FcCYyIAAQBa/+cEcwWwAB0AbbIaHh8REjkAsABFWLABLxuxASA+WbAARViwDS8bsQ0QPlmwARCxAwGwCitYIdgb9FmyBwENERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELEUAbAKK1gh2Bv0WbIRFBoREjmyHRoUERI5MDETEyEHIQM2MxYSBwYAJyYmJzMWFhcWNjc2JicmBge6vwL6If3PZ2Z4uccSEv7c17bjBuMHZVtvlw8MamlAZTAC1QLb0v6jOgL+9NXb/uoEBOK5ZnMCA6iMfJkCAi0oAAACAGP/6AQTBbgAFwAlAF6yGSYnERI5sBkQsAbQALAARViwAC8bsQAgPlmwAEVYsA8vG7EPED5ZsAAQsQIBsAorWCHYG/RZsgcADxESObAHL7EYAbAKK1gh2Bv0WbAPELEgAbAKK1gh2Bv0WTAxAQcnJgQHNhceAgcOAicmJicmNxIAIQEmBgcGFxQWFxY2NzYmA8wUDcD+5lCEqXWkTAwMjuWIrdgPCSBBAakBSP60UIwwCwFeWGyXDw1gBbjKAQLT1oAEAn/dgo7tgQME7sJrswFlAZb9SQJZUmUrgJYCA6iIf6IAAAEAhgAABJwFsAAGADMAsABFWLAFLxuxBSA+WbAARViwAS8bsQEQPlmwBRCxAwGwCitYIdgb9FmyAAMFERI5MDEBASEBITchBIX9BP79Avn9Kh8D1AUd+uME7cMAAwA7/+gERQXIABYAIgAuAG6yGi8wERI5sBoQsBLQsBoQsCfQALAARViwEy8bsRMgPlmwAEVYsAgvG7EIED5ZsCzQsCwvsRoBsAorWCHYG/RZsgIsGhESObINGiwREjmwCBCxIAGwCitYIdgb9FmwExCxJgGwCitYIdgb9FkwMQEGBxYWBwYEJyYmNzYlJiY3NiQXHgIBNiYnJgYHBhYXFjYTNiYnJgYHBhYXFjYEPBLuWVcIDf7g1cLlDRIBEUtIBg4BDMd3tVr+tQtkXmqWDAtmXWyTYAlVU1uBCwlWUVyBBDjZdzmwasDtBATftfN9NqFcvOUEA2S0/PhlgwICj21newICigL7WnYCAoBmXnICAoIAAgCO//kELwXIABgAJgBbshknKBESObAZELAV0ACwAEVYsA0vG7ENID5ZsABFWLAWLxuxFhA+WbEAAbAKK1gh2Bv0WbIFFg0REjmwBS+xGQGwCitYIdgb9FmwDRCxIQGwCitYIdgb9FkwMTcWJDcGJy4CNz4CFx4CFxYHAgAhIzcBFjY/AjYmJyYGFxYW99QBCkKImHGmUgwNj+SHda1gBwUcQP5c/rwWEwFKSoQwDQQDWFh9oA8HWsIC0dGEAgJ34IiR8oQEA3HRgWug/o7+eMoB2gJVS2FGgpkEBPioWWwA//8AK//yAdAEVAAmABL7AAAHABIAjQNR////mv64AbwEVAAnABIAeQNRAAYAEBEAAAEAMgCqA8MEVAAGABeyAAcIERI5ALAARViwBS8bsQUcPlkwMQEFBwE3AQcBMgIWKf0TIgNvLQJy4OgBdcEBdP4AAAIAYgFkBBQD1gADAAcAJwCwBy+wA9CwAy+xAAGwCitYIdgb9FmwBxCxBAGwCitYIdgb9FkwMQEhNyEDITchA/H8uiQDRW38uyMDRgMMyv2OyQABAC8AnwPZBEkABgAXsgAHCBESOQCwAEVYsAIvG7ECHD5ZMDEBJTcBBwE3Atv9zygDByL8eCwCgePl/ovB/oz6AAACAJX/8QPfBckAGAAkAGCyHiUmERI5sB4QsArQALAARViwEC8bsRAgPlmwAEVYsCIvG7EiED5ZsRwNsAorWCHYG/RZsADQsAAvsgQQABESObAQELEJAbAKK1gh2Bv0WbINECIREjmyFQAQERI5MDEBPgI3NicmJicmBgcHNiQXFhYHBgcHBgcBNDY3NhYVFAYjBiYBPwxdyx9eEghIOVJxEewRAQC+scoOD716XhT+1ks6OE5PNjhOAat9sKwkbHY0PQECY1UBstIEBM6qsaNmVo3+xTtMAgJKOT1JAkcAAAIAMv47BqQFkwA7AEcAgLIeSEkREjmwHhCwRdAAsCsvsDQvsABFWLAALxuxABA+WbAARViwBS8bsQUQPlmyAzQAERI5sgw0ABESObAML7AAELE+BLAKK1gh2Bv0WbAU0LA0ELEdArAKK1gh2Bv0WbArELEmBLAKK1gh2Bv0WbAMELFEBLAKK1gh2Bv0WTAxBSYmJwYnJiY3NhI2FxYWFwMHBhYXFjYSNzYmJyYnJgQCAgcGEhYXFjcXBiMmJAInJhIAJBcWBBIXFgIGAQYXFjY3EyYnJgYHBKZNdhSDi3J6CQef4oRVhUOGCAcoL1mJVgcEOzx98qf+2uuFBwhp25+mrRuK5cP+3ZwEBJ4BIAFvycABGpoEBIHn/WMFajh3HYEtKYKxJBUCSk6cAwK1oKEBT64CAjkw/ck8P0kCBJABE6yG1keSBAOR/t/+i76t/vSLAQJLjFYBpAE4090BwAFasQMDov7JyNP+ksQBTKIDA2tMAfERAgX75QAAAv+kAAAErgWwAAcACgBUsgQLDBESObAEELAK0ACwAEVYsAQvG7EEID5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmyCAQCERI5sAgvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIQEzASMBIQMDff3frv72AxLeARr4/g4BmGMBU/6tBbD6UAIfAloAAAMAJwAABLwFsAANABYAHgBsshgfIBESObAYELAN0LAYELAQ0ACwAEVYsAIvG7ECID5ZsABFWLAALxuxABA+WbAX0LAXL7KfFwFdsQ4BsAorWCHYG/RZsgcOFxESObAAELEQAbAKK1gh2Bv0WbACELEdAbAKK1gh2Bv0WTAxMxMFFhYHBgcWFgcGBCMDAwUyNjc2JiclFzI2NzYnJSf9Ab/s7Q4S8VpiBw7+2/CtTwEDdaQPDlpo/vjjepoOGdb+/wWwAQHLtNRrIKp2yOgCkf45AXxsZ3QEuwF0Y7sHAQAAAQBl/+gFDQXHAB4AULILHyAREjkAsABFWLAMLxuxDCA+WbAARViwAy8bsQMQPlmyAAwDERI5shAMAxESObAMELETAbAKK1gh2Bv0WbADELEcAbAKK1gh2Bv0WTAxAQYAJy4CJyYSEiQXFhIXIyYmJyYGDwIGFhYXBBMEqiX+sPGL0XYHBkTBARms2f0I9QV5d6PcJhQJCC1yWAEXTwHb5P7xBAN+8ZhyAYkBOJ4DBP736ZyLAwX06YVmZ7VfAwsBLQACACcAAATgBbAACwAWAEiyChcYERI5sAoQsA/QALAARViwAS8bsQEgPlmwAEVYsAAvG7EAED5ZsAEQsQwBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZMDEzEwUyBBIHBwYCBCMTAxcyJDc2JyYmJyf8AYq2AQd2Fwsezf68wiq2ksYBBSUaBwmXhgWwAbX+wcBPyf7JrATk++YB+92YcZGkBAABACcAAAS6BbAACwBRALAARViwBi8bsQYgPlmwAEVYsAQvG7EEED5ZsgsGBBESObALL7EAAbAKK1gh2Bv0WbAEELECAbAKK1gh2Bv0WbAGELEIAbAKK1gh2Bv0WTAxASEDIQchEyEHIQMhA9P9vE4CpiP8Y/wDlyT9YUYCRQKK/kDKBbDM/m4AAQAnAAAEpwWwAAkAQgCwAEVYsAQvG7EEID5ZsABFWLACLxuxAhA+WbIJBAIREjmwCS+xAAGwCitYIdgb9FmwBBCxBgGwCitYIdgb9FkwMQEhAyMTIQchAyEDwf3Ia/f8A4Qk/XRLAjkCaf2XBbDM/k8AAQBr/+oFFgXIACEAXrIfIiMREjkAsABFWLANLxuxDSA+WbAARViwAy8bsQMQPlmwDRCwENCwDRCxEwGwCitYIdgb9FmwAxCxGwGwCitYIdgb9FmyIA0DERI5sCAvsR8BsAorWCHYG/RZMDElBgQnLgInJhISNzYXFhYXJwInJgYHBgcGFhcWNxMhNyEEkFD+3LSQ3IEJB0CldqDO2/cQ7xbjqtsoFwIGj4mvcTb+3CICF71oawIBf/ObeAF0ASFSbwQE9NwBAQEHBfnriVezzgIEWwEdwAAAAQAnAAAFhwWwAAsAVLIHDA0REjkAsABFWLAGLxuxBiA+WbAARViwCi8bsQogPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbIJBgAREjmwCS+xAgGwCitYIdgb9FkwMSEjEyEDIxMzAyETMwSK9nD9inD3/fdqAnZp9wKH/XkFsP2iAl4AAAEANQAAAigFsAADAB0AsABFWLACLxuxAiA+WbAARViwAC8bsQAQPlkwMSEjEzMBK/b99gWwAAEAA//nBGEFsAAOADeyDA8QERI5ALAARViwAC8bsQAgPlmwAEVYsAUvG7EFED5ZsggABRESObELAbAKK1gh2Bv0WTAxATMDBgQnJiY3FwYXFjY3A2v2rh/+49HM1wr2DsBkjxUFsPwD1PgEBOrHAeUEBIZ6AAABACcAAAVxBbAADABTALAARViwBC8bsQQgPlmwAEVYsAgvG7EIID5ZsABFWLACLxuxAhA+WbAARViwCy8bsQsQPlmyAAQCERI5tGoAegACXbIGBAIREjm0ZQZ1BgJdMDEBBwMjEzMDNwEhAQEhAjPITff993WZAfYBPP14AZn+7AJzt/5EBbD9Y58B/v1v/OEAAAEAJwAAA8MFsAAFACkAsABFWLAELxuxBCA+WbAARViwAi8bsQIQPlmxAAGwCitYIdgb9FkwMSUhByETMwFBAoIk/Ij998rKBbAAAQAnAAAGzgWwAA4AbgCwAEVYsAAvG7EAID5ZsABFWLACLxuxAiA+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5ZsABFWLAMLxuxDBA+WbIBAAQREjm0ZQF1AQJdsgcABBESObRqB3oHAl2yCgAEERI5tGoKegoCXTAxARMBIQMjExMBIwsCIxMCXtUCVwFE/PZVgf2ost9bUfb9BbD7pgRa+lAB7QJf+7QEbf1m/i0FsAAAAQAnAAAFhgWwAAkATLIBCgsREjkAsABFWLAFLxuxBSA+WbAARViwCC8bsQggPlmwAEVYsAAvG7EAED5ZsABFWLADLxuxAxA+WbICBQAREjmyBwUAERI5MDEhIwEDIxMzARMzBInv/jm19/3vAce29gQT++0FsPvpBBcAAAIAa//nBSEFyAASACIASLIZIyQREjmwGRCwANAAsABFWLAKLxuxCiA+WbAARViwAC8bsQAQPlmwChCxGAGwCitYIdgb9FmwABCxHwGwCitYIdgb9FkwMQUuAicmEhI3NhcWABcWAgIHBhM3NiYmJyYGAgcGFhcWEjcCV47XeAgHO5dprePYAQEMBjmLZ7LaCQYyd1t+w3kKCoSEreEjFAOC9519AU4BE1eOBAT+3vd8/r/+81qcAxhqbblhAwSW/s7nt9IEBQEO9QACACcAAAUEBbAACgATAE+yChQVERI5sAoQsAzQALAARViwAy8bsQMgPlmwAEVYsAEvG7EBED5ZsgsBAxESObALL7EAAbAKK1gh2Bv0WbADELETAbAKK1gh2Bv0WTAxAQMjEwUyBAcGBCMlBTI2NzYmJyUBfF73/QH45AEEERL+yvv+7wEbhqsRDm9w/swCHf3jBbAB+c3U+cwCiHpvhwUBAAACAGT/BAUaBcgAFgAmAEiyAycoERI5sAMQsCTQALAARViwDi8bsQ4gPlmwAEVYsAUvG7EFED5ZsA4QsRwBsAorWCHYG/RZsAUQsSMBsAorWCHYG/RZMDElFwclBicmACcmEhI3NhceAhcWBwcCAzc2JiYnJgIDBhYWFxYSNwOr0K7/AFAv1f79DAY7nXOo2JDWegcECgw+rQkGM3hbxPEOBjR3WaXiKFbIivQMAQIBJPZ9AUkBHlmCBAOC+5xWVlf+bgHtam64YAMG/pf+uG+6YQMHAQDzAAACACcAAATYBbAADgAXAFyyBRgZERI5sAUQsBDQALAARViwBC8bsQQgPlmwAEVYsAIvG7ECED5Zsg8CBBESObAPL7EBAbAKK1gh2Bv0WbILAQ8REjmwAhCwDtCwBBCxFwGwCitYIdgb9FkwMQEhAyMTBTIWBwYGBxMHIQEXMjY3NiYnJQKW/upi9/0By+38EQumltcB/vr+Uu+BrQ8PbnD++AIx/c8FsAHky43PO/2mDwL8Aod0cXkEAQABACT/6gS7BccAKQBksgMqKxESOQCwAEVYsAovG7EKID5ZsABFWLAfLxuxHxA+WbIDHwoREjmwChCwDtCwChCxEgGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FmwHxCwJNCwHxCxJwGwCitYIdgb9FkwMQE2JycmJjc+AhceAgcnNiYnJgYHBhcXFhYHDgInLgI3FwYWFxY2A0wWs1HivgkImfqNiNRwBPYHc3R1oQ4UvkvltgsKjvuXj+l8BfcIioF4oQF+kEYeT9iPfL1mAwNxyYEBcn4DAnJhf0kbUt2Xe7dkAgF20YUBfIYCAmoAAQCcAAAFIgWwAAcALwCwAEVYsAYvG7EGID5ZsABFWLACLxuxAhA+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASEDIxMhNyEE/v5I2fba/kskBGIE5PscBOTMAAEAW//mBS8FsAASAD2yDxMUERI5ALAARViwAC8bsQAgPlmwAEVYsAkvG7EJID5ZsABFWLAELxuxBBA+WbEOAbAKK1gh2Bv0WTAxAQMGACcmAjc3EzMDBhYXFjY3EwUvpSL+teva/QsDpfalEnZ7h7QZpwWw/DPp/uwEBAEAziYDzvwxi5wEBJqQA9QAAQCbAAAFgQWwAAYAOLIABwgREjkAsABFWLABLxuxASA+WbAARViwBS8bsQUgPlmwAEVYsAMvG7EDED5ZsgABAxESOTAxAQEhASMBIQJRAhgBGP0g7/7pAQYBPwRx+lAFsAABALcAAAc6BbAADABgsgUNDhESOQCwAEVYsAEvG7EBID5ZsABFWLAILxuxCCA+WbAARViwCy8bsQsgPlmwAEVYsAMvG7EDED5ZsABFWLAGLxuxBhA+WbIAAQMREjmyBQEDERI5sgoBAxESOTAxAQEzASMDASMDMxMBMwS7AYT7/dbsZf5I7mLvMAG3zwFqBEb6UAQk+9wFsPu/BEEAAAH/wwAABUcFsAALAFMAsABFWLABLxuxASA+WbAARViwCi8bsQogPlmwAEVYsAQvG7EEED5ZsABFWLAHLxuxBxA+WbIAAQQREjmyBgEEERI5sgMABhESObIJBgAREjkwMQEBIQEBIQMBIQEBIQKjAXoBKv3bAT7+7tz+fP7VAjH+yQEQA6MCDf0j/S0CFf3rAukCxwABAKEAAAVNBbAACAAxALAARViwAS8bsQEgPlmwAEVYsAcvG7EHID5ZsABFWLAELxuxBBA+WbIAAQQREjkwMQEBIQEDIxMBIQJzAbwBHv1+W/hg/skBBQMAArD8W/31AiUDiwAAAf/lAAAE5wWwAAkARgCwAEVYsAcvG7EHID5ZsABFWLACLxuxAhA+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDElIQchNwEhNyEHAToC7CT74x8Djf0yJAQAHsrKsAQ0zKwAAAH/7/68ArUGjgAHACQAsAQvsAcvsQABsAorWCHYG/RZsAQQsQMBsAorWCHYG/RZMDEBIwMzByEBIQKXn/6gHv5zATkBjQXQ+am9B9IAAAEArP+DAsgFsAADABMAsAIvsABFWLAALxuxACA+WTAxEzMBI6zgATzgBbD50wAB/3r+vAJDBo4ABwAnALACL7ABL7ACELEFAbAKK1gh2Bv0WbABELEGAbAKK1gh2Bv0WTAxEyEBITczEyO0AY/+x/5wHqL+owaO+C69BlcAAAEARALZAy4FsAAGACeyAAcIERI5ALAARViwAy8bsQMgPlmwANCyAQcDERI5sAEvsAXQMDEBAyMBMxMjAhT90wGgp6O9BKT+NQLX/SkAAAH/ef9BAxYAAAADABwAsABFWLADLxuxAxA+WbEAAbAKK1gh2Bv0WTAxBSE3IQL0/IUiA3u/vwAAAQDKBNECVgYAAAMAJACwAS+yDwEBXbAD0LADL7QPAx8DAl2yAAEDERI5GbAALxgwMQEjAzMCVrXX/gTRAS8AAAIAIv/oA9wEUAAgACsAiLIKLC0REjmwChCwJtAAsABFWLAYLxuxGBw+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsgIEGBESObIKGAAREjmwCi+wGBCxEAewCitYIdgb9FmyEwoQERI5QAkMExwTLBM8EwRdsAQQsSEBsAorWCHYG/RZsAoQsSYHsAorWCHYG/RZMDEhJjcGJyYmNzYkMxc3NicmJyYGBwc+AhcWFgcDBwYXByUWNjc3JyIGBwYWApMMAoabjbkGCAEY7JoOBgYUe0xzDe0HgNR2scYRUwgDEgH+IUuALSVxhqALCEsoPX0EArGIq8QCSicibAMCUUQCZJdUAgTNo/4FWjs4Eq4CSTrNAWVYQ00AAgAQ/+gEDwYAABEAHgBmsgQfIBESObAEELAb0ACwCS+wAEVYsA0vG7ENHD5ZsABFWLAHLxuxBxA+WbAARViwBC8bsQQQPlmyBg0HERI5sgsNBxESObANELEVAbAKK1gh2Bv0WbAEELEaAbAKK1gh2Bv0WTAxAQYCBicmJwcjATMDNhcWFhcWJzQmJyYHAxYXFjY3NgQHFInLf7VcJtkBCu5seaadsQUB7FpVj2NOLJF4mxYIAhil/vWAAwSHdgYA/dGBBATewTwvbXsCBI7+QIgFA76tVQAAAQA4/+kD7gRSABwATbIAHR4REjkAsABFWLARLxuxERw+WbAARViwCC8bsQgQPlmxAAGwCitYIdgb9FmyBBEIERI5shUIERESObARELEYAbAKK1gh2Bv0WTAxJRY2NzcOAicuAjc3PgIXFhYVIzQmJyYGBwIB6FWDEuALhdBxi8RaDwMRleyQsNLeW1aLoAYHrQJnUwFrsGIDAoz3mCOd/4oEBOG0XXYEBPTe/vMAAgA7/+cEiAYAABIAHQBjsgQeHxESObAEELAb0ACwBy+wAEVYsAQvG7EEHD5ZsABFWLAJLxuxCRA+WbAARViwDS8bsQ0QPlmyBgQJERI5sgsECRESObEWAbAKK1gh2Bv0WbAEELEbAbAKK1gh2Bv0WTAxEzYSNhcWFxMzASM3BicmJicmNxcGFhcWNxMmJyYGRBSMzn6lXWju/vXUEH6ql7UHAwbpB1taiWRRL4eIpgIepwEKgwMEdwIs+gBwiQQC5b4+O0h8kgIEiQHRfQQE+AAAAgA7/+oEAgRRABYAHwCGshEgIRESObARELAX0ACwAEVYsAkvG7EJHD5ZsABFWLAALxuxABA+WbIaAAkREjmwGi+0vxrPGgJdtF8abxoCcbQfGi8aAnGyjxoBXbTvGv8aAnGxDQewCitYIdgb9FmwABCxEQGwCitYIdgb9FmyEwkAERI5sAkQsRcBsAorWCHYG/RZMDEFLgI3NzYSNhcWEgcHIQYWFxY3FwYGAyYDBTc2JyYmAfqNz2MMAxKd6onLyxkO/VcJemuZgXhE3h+8XgHBBAcGC1oUA4jskSmlAQeIAwT+2uxogZ4CBYp+YWsDogb+8AEVLixHUgAAAQBfAAADXgYaABUAZbIVFhcREjkAsABFWLAILxuxCCI+WbAARViwAy8bsQMcPlmwAEVYsBEvG7ERHD5ZsABFWLAALxuxABA+WbADELEBAbAKK1gh2Bv0WbAIELENAbAKK1gh2Bv0WbABELAT0LAU0DAxMxMjNzM3NjYXFhcHJiMmBgcHMwcjA2OdoSCgEBrbrT1QGiwtVWwPD9Yg1Z0DhrR0qMQCAhK+CgFeU2a0/HoAAAL/9/5PBEIEUQAcACoAhrIEKywREjmwBBCwI9AAsABFWLAILxuxCBw+WbAARViwBC8bsQQcPlmwAEVYsAwvG7EMEj5ZsABFWLAYLxuxGBA+WbIGCBgREjmwDBCxEgGwCitYIdgb9FmyEBIYERI5shYIGBESObAYELEiAbAKK1gh2Bv0WbAEELEnAbAKK1gh2Bv0WTAxEzYSNhcWFzcXAwYEJyYmJzcWFxY2NzcGJyYmJyY3BhcWFhcWNxMmJyYGB0YTidCGslsl2LMe/tfVcsw+fl+ZdKccEX2fmLcJA/MGAgJcVYdlVTSFeKQZAh6iAQaLAgR/bwH75NT7BgJkUo+DBASHfUx5BALivzw+MztqfAMFggHedwQDwK0AAQANAAAD+QYAABIASrIBExQREjkAsBEvsABFWLACLxuxAhw+WbAARViwBi8bsQYQPlmwAEVYsA8vG7EPED5ZsgACBhESObACELEMAbAKK1gh2Bv0WTAxATYXFhYHAyMTNicmJyYHAyMBMwGXh6yalRN07XYFAw2DhGiH7QEK7gPDjgQC1r39SAK7KyV6AwKE/PoGAAAAAgAfAAACCQXYAAMADwA/sgQQERESObAEELAA0ACwAEVYsAIvG7ECHD5ZsABFWLAALxuxABA+WbACELAN0LANL7EHDbAKK1gh2Bv0WTAxISMTMwM0Njc2FhUUBgcGJgEM7bzty0g9Ok1LOjlOBDoBFTdOAgJLNjlKAgJJAAL/DP5GAf4F2AAMABgAS7IBGRoREjmwARCwDdAAsABFWLAALxuxABw+WbAARViwBC8bsQQSPlmxCQGwCitYIdgb9FmwABCwFtCwFi+xEA2wCitYIdgb9FkwMQEDBgYnJic3FjMyNxMTNDY3NhYVFAYHIiYBw8cWvJdARxQuJn8ayR1IPDpNSzo8SgQ6+2eoswICEcALlQSVARU6SwICSTg5SgJHAAABABEAAARKBgAADABTALAARViwBC8bsQQiPlmwAEVYsAgvG7EIHD5ZsABFWLACLxuxAhA+WbAARViwCy8bsQsQPlmyAAgCERI5tGoAegACXbIGCAIREjm0ZQZ1BgJdMDEBBwMjATMDNwEhAQEhAb+GO+0BCu2YUwFYAS/+IAE8/v8Bznf+qQYA/JhWAUz+Mv2UAAEAHwAAAhcGAAADAB0AsABFWLACLxuxAiI+WbAARViwAC8bsQAQPlkwMSEjATMBDO0BC+0GAAAAAQAQAAAGaARSACEAeLIWIiMREjkAsABFWLADLxuxAxw+WbAARViwCC8bsQgcPlmwAEVYsAAvG7EAHD5ZsABFWLAMLxuxDBA+WbAARViwFi8bsRYQPlmwAEVYsB8vG7EfED5ZsgEIDBESObIGCAwREjmwCBCxEgGwCitYIdgb9FmwHNAwMQEHNhcWFhc2FxYWBwMjEzYnJicmBwcDIxM2JyYnJgcDIxMBqRWGumaHGJbCnpkTde12BQQQhJNVA3zudgUEEISFWYntuwQ7c4oEAlpKqgQE0bz9QwK/LCV1AwSlFv0vArwrJXkDAnn87wQ6AAABAA0AAAP6BFIAEgBUsgITFBESOQCwAEVYsAMvG7EDHD5ZsABFWLAALxuxABw+WbAARViwBy8bsQcQPlmwAEVYsBAvG7EQED5ZsgEDBxESObADELENAbAKK1gh2Bv0WTAxAQc2FxYWBwMjEzYnJicmBwMjEwGnGIu2mJITde12BQQNgYdmh+27BDt/lgQD0739RQK+KyV3AwKH/P0EOgAAAgA5/+gEJwRSABAAIABFshshIhESObAbELAE0ACwAEVYsAQvG7EEHD5ZsABFWLAMLxuxDBA+WbEUAbAKK1gh2Bv0WbAEELEbAbAKK1gh2Bv0WTAxEzYSNhceAgcGAgYnLgI3FxYWFxY2Nzc0JicmBwYHBkkRmfCSi8pdDhCb8ZOKyV4N7AVlWnqlFQZmYZhYNQ4IAiGfAQSOBAKQ+pms/viNBAKP+ZZ0aX8DA8KoYoCSBASZXXlUAAL/x/5gBA0EUgASAB4AabIEHyAREjmwBBCwHdAAsABFWLANLxuxDRw+WbAARViwCi8bsQocPlmwAEVYsAcvG7EHEj5ZsABFWLAELxuxBBA+WbILDQcREjmwDRCxFwGwCitYIdgb9FmwBBCxHAGwCitYIdgb9FkwMQEGAgYnJicDIwE3BzYXHgIXFgc3NiYnJgcDFhcWNgQFFIXNf6lhYe4BBNkSfKtnmFEDAfIFA1tbhmJULYp2oQIZov74hwMEdP39BdoBcIcEAWfEeD0/SYGOAgR//h15BAO+AAACADv+YAQ4BFIAEgAgAG2yBCEiERI5sAQQsBjQALAARViwCC8bsQgcPlmwAEVYsAQvG7EEHD5ZsABFWLAJLxuxCRI+WbAARViwDS8bsQ0QPlmyBggNERI5sgsIDRESObEXAbAKK1gh2Bv0WbAEELEdAbAKK1gh2Bv0WTAxEzYSNhcWFzcXASMTBicmJicmNzMHBhYXFjY3EyYnJgYHRBSOzn+sXCfW/vztYnmcm7QHAwbuBQNbWEtvLVg0gnKfHAIfqwEJfwMEfW0B+iYB/XUEAuO+PzxIh4sCA0U4Ae5yBAOypAABABAAAALvBFMADQBHsgkODxESOQCwAEVYsAgvG7EIHD5ZsABFWLALLxuxCxw+WbAARViwBS8bsQUQPlmwCxCxAgGwCitYIdgb9FmyCQsFERI5MDEBJiMmBwMjEzcHNhcyFwLULi+cXILtu+EYb5EhOgNcCgSF/RsEOgF7kwMPAAEAHP/pA8QEUAAkAHeyIyUmERI5ALAARViwCC8bsQgcPlmwAEVYsBsvG7EbED5ZsgMbCBESObILCBsREjmyHAsBXbILCwFdsAgQsQ8BsAorWCHYG/RZsAMQsRMBsAorWCHYG/RZsh4IGxESObQEHhQeAl2wGxCxIgGwCitYIdgb9FkwMQE2JCcmNzY2FxYWByc2JiciBgcGBBcWBw4CJyYmNxcWFhcyNgKXEf7dNc4HBf+yrNkC6wJWS09xCQ4BHETGBwV90nax6QLlAmRXWHUBLGNNF1i0kr8CAr6aAUtVAk4/W0ceV7lnmVEDAsqeAVdaAUkAAAEAO//tAq4FQQAWAF6yFhcYERI5ALAARViwAS8bsQEcPlmwAEVYsBQvG7EUHD5ZsABFWLAOLxuxDhA+WbABELAA0LAAL7ABELEDAbAKK1gh2Bv0WbAOELEJAbAKK1gh2Bv0WbADELAS0DAxAQMzByMDBhcWFzI3BwYjJiY3EyM3MxMCIy65H7pmAwIGSiUvEEpLfHsNZa0grC4FQf75tP2iGRRBAwm+FQKliAJqtAEHAAABAEr/6AQxBDoAEwBRsgEUFRESOQCwAEVYsAcvG7EHHD5ZsABFWLAQLxuxEBw+WbAARViwEi8bsRIQPlmwAEVYsAIvG7ECED5ZsgAQEhESObENAbAKK1gh2Bv0WTAxJQYnLgI3EzMDBhcWFxY3EzMDIwKte7lpizsMde12BAMKc51hiO273muDBAJks3kCvP1BJSN8BQaEAwr7xgABAGQAAAQNBDoABgA4sgAHCBESOQCwAEVYsAEvG7EBHD5ZsABFWLAFLxuxBRw+WbAARViwAy8bsQMQPlmyAAUDERI5MDEBATMBIwMzAboBVv39687G7gE3AwP7xgQ6AAABAHcAAAX4BDoADABgsgUNDhESOQCwAEVYsAEvG7EBHD5ZsABFWLAILxuxCBw+WbAARViwCy8bsQscPlmwAEVYsAMvG7EDED5ZsABFWLAGLxuxBhA+WbIACwMREjmyBQsDERI5sgoLAxESOTAxAQEzASMDASMDMxMBMwPhASnu/ibDX/6ixGPgKQFWswFRAun7xgLk/RwEOv0iAt4AAAH/uQAABBMEOgALAFMAsABFWLABLxuxARw+WbAARViwCi8bsQocPlmwAEVYsAQvG7EEED5ZsABFWLAHLxuxBxA+WbIACgQREjmyBgoEERI5sgMABhESObIJBgAREjkwMQETIQETIwMBIQEDMwH//wEV/mLx+Jf+9v7sAavp+ALYAWL94P3mAXH+jwIwAgoAAAH/tf5FBBIEOgAPAESyABARERI5ALAARViwDy8bsQ8cPlmwAEVYsAEvG7EBHD5ZsABFWLAFLxuxBRI+WbIABQ8REjmxCQGwCitYIdgb9FkwMQEBIQECJyYnNxcWNjc3AzMBuAFUAQb9f4bbNkUUK1ZwJjm19gFeAtz7C/8AAwISvAQDR0twBCcAAAH/5wAAA+QEOgAJAEYAsABFWLAHLxuxBxw+WbAARViwAi8bsQIQPlmxAAGwCitYIdgb9FmyBAACERI5sAcQsQUBsAorWCHYG/RZsgkFBxESOTAxJSEHITcBITchBwE4AiYi/KseAoj9/SMDNx3CwqsCy8SlAAABADD+mQMFBkAAGwA3sgwcHRESOQCwDi+wAEVYsAAvG7EAGD5ZsgkOABESObAJL7EIB7AKK1gh2Bv0WbIUCAkREjkwMQEmJjc3NicmJzc2NzcSJRcGAwcGBxYWDwIGFwHNnpwTHAUEDYYRxx8fOQFjI8EjHSG5STYJHgMDg/6ZM/CuzC0neguyCt3gAVBoj0b++trFYDeiWOZHqjoAAAEAIP7yAdIFsAADABMAsAAvsABFWLACLxuxAiA+WTAxEyMBM8SkAQ6k/vIGvgAB/5n+lQJvBjsAHAA3shodHhESOQCwDi+wAEVYsBwvG7EcGD5ZshYOHBESObAWL7EXB7AKK1gh2Bv0WbIFFxYREjkwMQc2Nzc2NyYnJj8CNCc3FhYHBwYXFhcHBgcHAgVnuCkiI75wDgUFHgSBN6OQEhwFBA2HEsgeHzn+ndtA+PTDW0qQKy3mSKo5iTbxqMwuJnwLsgrb3/6sZgABAFsBfgTKAzQAFgA+sgUXGBESOQCwDi+wANCyAxcOERI5sAMvsA4QsQgBsAorWCHYG/RZsAMQsArQsAMQsRMBsAorWCHYG/RZMDEBBgYnLgMjJgcjNjYXHgMzMjY3BMoMxJRRfnRDIYciuw7HkVKCcEQfRF0QAxSu6AQCSnQkA8Cv3AQCTHIkaVwAAAL/5v6UAc4EUAADAA4AP7ILDxAREjmwCxCwAtAAsABFWLAMLxuxDBw+WbAARViwAi8bsQIYPlmwDBCxBw2wCitYIdgb9FmwAdCwAS8wMRMzAyMBFAYGJjU0Njc2Fq/MmvsB6Ep2TEo7Ok0Clvv+BTs5TQRKODlMAgJLAAABAEz/CwQGBSYAIQBZshIiIxESOQCwAEVYsBUvG7EVHD5ZsABFWLAHLxuxBxA+WbEAAbAKK1gh2Bv0WbIEBxUREjmwBxCwCtCwFRCwEtCyGRUHERI5sBUQsRwBsAorWCHYG/RZMDElFjY3NwYGBwcjNy4CNzc2Ejc3MwcWFgcjNCYnJgIVFBYB9liAFN8O1qAvxDBriToOAhn2wS7DLoSTAt1cU4+pXK0CaFIBjccd6uwbk9+EFOUBIiLh4yHSm2FxBAb+9vBqfQAAAf/2AAAEpQXHACAAbbIcISIREjkAsABFWLATLxuxEyA+WbAARViwBS8bsQUQPlmyHhMFERI5sB4vsQABsAorWCHYG/RZsAUQsQMBsAorWCHYG/RZsAjQsAAQsAvQsB4QsA3QsBMQsBbQsBMQsRoBsAorWCHYG/RZMDEBBwYHJQchNxc2NzcjNzM3PgIXFhYHJzYmJyYGBwchBwHuFhFZAqgk/AQkRWQcGJ0jlx8Qi9l/tMsI7wVSU1p/Dh0BLiMCVq6CXwPKyQIksrnH+3/HaQQE2bYBX2cEAoZw6scAAgAI/+UFfwTxABwALABBsiItLhESObAiELAQ0ACwAEVYsAIvG7ECED5ZsBHQsBEvsAIQsSEHsAorWCHYG/RZsBEQsSkHsAorWCHYG/RZMDElBicmJwcnNyYnJhI3JzcXNhcWFzcXBxYHBgcXBwEGFhYXFjY2NzYmJicmBgYD1La8w4eYeJobChNYZnOXbq+yuYiqeak+FBqDb5j8+A9Emmlx0Y8QD0SaaXLTjGmBBAR6hJuAVVaTARx1m4WPdAQCcpScjrmnyZ6VhgJybsl5BAR52Xdux3gEBHrUAAEAMgAABLAFsAAWAHGyCxcYERI5ALAARViwAS8bsQEgPlmwAEVYsAsvG7ELED5ZsgALARESObIHAQsREjmwBy+wA9CwAy+xBQOwCitYIdgb9FmwBxCxCQKwCitYIdgb9FmwDdCwBxCwD9CwBRCwEdCwAxCwE9CwARCwFdAwMQEBIQEzByEHIQchAyMTITchNyE3MwMzAjYBZwET/jndG/7bGQEnG/7bNfY0/tUbASoZ/tQb99H+A1ECX/02mIqX/tMBLZeKmALKAAAC/+z+8gH4BbAAAwAHABgAsAAvsABFWLAGLxuxBiA+WbIFAQMrMDEDEzMDEyMTMxSL34qo4ITg/vIDG/zlA8gC9gAC/9z+IwSxBcYALgA5AISyJzo7ERI5sCcQsDTQALAIL7AARViwHy8bsR8gPlmyAggfERI5sAgQsAzQsAgQsQ8BsAorWCHYG/RZshUIHxESObIaHwgREjmwHxCwI9CwHxCxJgGwCitYIdgb9FmyLAgfERI5sBUQsTMBsAorWCHYG/RZsCwQsTkBsAorWCHYG/RZMDEBBgcWBw4CJyYmNzMGFhcyNjc2LwIkNzY3Jjc2JBcWFgcnNiYnJgcGBwYEFxYlBgcGHwI2NzYnBFIOyGENCY/wkeD7BfAGfnh4nQ0VuZJZ/usVDsZgDQ4BKuPW6wnsBnRpck5TDhYBfFTl/W55FBa2wyiBFBbCAc+1aWioeaxZAwLixWt5AmJTeEEwI3f1uGdtpLDQAgTkxgFsewICLjFahnErdCA3dog9QA87coFEAAACANEE3gODBc0ACgAWAB4AsAYvsQAFsAorWCHYG/RZsA7QsAYQsBTQsBQvMDEBMhYVFAYHIiY0NgU0NjcyFhUUBgciJgFMNkZGNThERAF4RzM4REY1OEMFzUMxM0UCRGBIeTVDAkQwM0UCQwADAF7/6AXpBccAGwApADoAmbIuOzwREjmwLhCwEtCwLhCwJ9AAsABFWLAvLxuxLyA+WbAARViwNy8bsTcQPlmyAzcvERI5sAMvtA8DHwMCXbIKLzcREjmwCi+0AAoQCgJdsgADChESObIOCgMREjmxEQKwCitYIdgb9FmwAxCxGQKwCitYIdgb9FmwNxCxHwiwCitYIdgb9FmwLxCxJgiwCitYIdgb9FkwMQEGBicmJjc3NjYXFhYHJzYmJyYGBhUXFhYXFjcFFgAXFiQSJyYCJyYEAgc2EjYkFxYEEgcGAgQnJiQCBEMMuZmSpA4KE9CelZoEmAVIUV17HQIFS0KnH/09EwEBvLgBSbcSE/zAuf63uWIRieABDZCyAR6PFRbm/qW/tv7mkAJUlqgEBNinZbzcAgSpjwFaWQICjvgbLEtYAwe5GMz++wIE2wF3wcoBAQUE2v6JKJYBF9lvAwLF/qbEyf6ayAQExAFcAAACAL4CswNQBccAHQAnAG+yEigpERI5sBIQsB7QALAARViwFi8bsRYgPlmyBCgWERI5sAQvsADQsAAvsgoEFhESObAKL7AWELEQArAKK1gh2Bv0WbAKELASsAorWNgb3FmwBBCxHgKwCitYIdgb9FmwChCwIrAKK1jYG9xZMDEBJjcGIyImNzY2Mxc3NicmJyYHJzY2FxYWBwMHBhclMjc3IwYGBwYWAm4FAl1tankEAruoaAsEAQdMdxusC7GCeowKNgQBCf61RVobU1JmCAcxAr8oHlJ7YXN9ATUZFksDBGcOb30CApZ9/qU6LS+CPooDPjUmLP//AEkAigOtA6kAJgGS7AAABwGSAUgAAAABAIABdgPKAyUABQAbALAEL7AB0LABL7AEELECAbAKK1gh2Bv0WTAxASMTITchA3/ELv2XHwMrAXYBBKsAAAQAXv/oBekFyAAPAB8AOABBAKOyOkJDERI5sDoQsAPQsDoQsB3QsDoQsDjQALAARViwBC8bsQQgPlmwAEVYsAwvG7EMED5ZsRQIsAorWCHYG/RZsAQQsRwIsAorWCHYG/RZsiEMBBESObAhL7IkBAwREjmwJC+0ACQQJAJdsiAhJBESObAgL7IgIAFdsTkIsAorWCHYG/RZsikgORESObAhELAx0LAkELFACLAKK1gh2Bv0WTAxEzYSJBcWBBIHBgIEJyYkAjceAhcWJBI3NgImJyYEAgUDIxMFFhYHBgcWFxYGFxcHIyY3Njc2JicnFzY2NzYmJydzFt4BXsWyAR6PFRbm/qW/tv7mkIoMfsl+nAEnyRcVaeCYuf63uAG4NZSFAQSPlAUHiUkHAg0BBAGVBQIBDAYsQpCBSmUKCztZigLSxgFhzwQCxf6mxMn+msgEBMQBXCuD13YDBKQBLaufAR6mBATa/oxw/q8DUgEFhnF0TC5kH3kcPhIlJCFfP0QEiAECQzY7PQMBAAEBAQUMA7cFqgADABmyAgQFERI5ALACL7EAA7AKK1gh2Bv0WTAxASE3IQOe/WMaApwFDJ4AAAIA5AOsAuQFxwALABcAMQCwAEVYsAMvG7EDID5ZsA/QsA8vsQkCsAorWCHYG/RZsAMQsRUCsAorWCHYG/RZMDETNjYXFhYHBgYnJiY3BhYzMjY3NiYjIgbmAqRvY4YCBKBsZoiKBjYxN1AGBjUvNlQEr2+pAgKZaXKjAgKWayxJTzQxSVQAAgAbAAEEBQT8AAsADwBIALAJL7AARViwDS8bsQ0QPlmwCRCwANCwCRCxBgGwCitYIdgb9FmwA9CwDRCxDgGwCitYIdgb9FmyBQ4GERI5tAsFGwUCXTAxASEHIQMjEyE3IRMzEyE3IQK4AU0g/rQ90z3+pSABWTzTYfzHHwM5A4PH/nwBhMcBefsFxAABAFYCmwLxBb8AFwBbsggYGRESOQCwAEVYsA8vG7EPID5ZsABFWLAALxuxABQ+WbEWArAKK1gh2Bv0WbICABYREjmyAw8AERI5sA8QsQgCsAorWCHYG/RZsgwPABESObITDwAREjkwMQEhNwE2NzYmJyIGBwc2NhcWFgcGDwIFAqn9rRgBVmEMByspOkMMtgqvgn+SBQWWT50BXwKbhwEZU0MpLwFHNAF5mAICg2h+dzxuAgABAGcCjgL4Bb8AJABysgklJhESOQCwAEVYsA0vG7ENID5ZsABFWLAYLxuxGBQ+WbIBGA0REjl8sAEvGLANELEHArAKK1gh2Bv0WbIKAQcREjmwARCxIwKwCitYIdgb9FmyEyMBERI5sBgQsR4CsAorWCHYG/RZshwjHhESOTAxATM2Njc2JycmBwc2NhcWFgcGBgcWBwYGJyYmNRcWFzI2NzYnIwFZUz1NBwlKF10cugmmfYGZBQNJUnYEA7yLfZmxBGo2UwcNeFwEbQI4LkMNAgJMAWl6AgN3YjtXJimBb4ICAoNtAVkCOC9ZBQAAAQDIBNEC0gYAAAMAIwCwAi+yDwIBXbAA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGDAxASEBIwG1AR3+xM4GAP7RAAH/3f5gBFQEOgATAFeyDRQVERI5ALAARViwAC8bsQAcPlmwAEVYsAgvG7EIHD5ZsABFWLARLxuxERI+WbAARViwCi8bsQoQPlmwAEVYsA4vG7EOED5ZsQUBsAorWCHYG/RZMDEBAwYXFhcWNxMzAyM3BiciJwMjAQHNZggCBYWYWortu9cPaIxsUlbsAQQEOv2SVSidAwR8AxP7xlZuAjn+PQXaAAABAH0AAAPcBbEACgArsgILDBESOQCwAEVYsAgvG7EIID5ZsABFWLAALxuxABA+WbIBAAgREjkwMSETJyYmNzYAMwUDAhJaONPkFBMBK+EBLP0CCAED/8nTAQoB+lAAAQCeAkIBsQNVAAsAGbIDDA0REjkAsAMvsQkNsAorWCHYG/RZMDETNDY3NhYVFAYHBiaeTTs9Tk48O04Cxj1OAgJPODtNAgJKAAAB/9P+PQEvAAQADgAqsgIPEBESOQCwAC+wBy+xCAKwCitYIdgb9FmyDQgAERI5sgEADRESOTAxNwcWFgcGBgc3Njc2Jyc3xRM+PwECsqcCiRAJUjgtBDsOVT9tdwaNBlo8DQaJAAABAOACmwKABa4ABgA6sgEHCBESOQCwAEVYsAUvG7EFID5ZsABFWLAALxuxABQ+WbIEBQAREjmwBBCxAwKwCitYIdgb9FkwMQEjEwc3JTMB/rVjzBsBbhcCmwI2L5lzAAACAL4CrQN9BcgADgAcAEKyER0eERI5sBEQsA7QALAARViwAC8bsQAgPlmyBx0AERI5sAcvsRICsAorWCHYG/RZsAAQsRkCsAorWCHYG/RZMDEBFhYHBwYGJyYmNzc+AgMGFhcWNjc3NiYnJgYHAkqQowsGD9KZjacLBgpnpnEIRUZPbAwICEVGUGwLBcUEx5lCpM4EBMSbQm6pW/5JYWwCAnVnRmRpAgJ2ZAD//wACAIoDdQOpACYBkwkAAAcBkwFzAAD//wC5AAAFKgWrACcBxgBMApgAJwGUARQACAEHAiACsAAAABAAsABFWLAFLxuxBSA+WTAx//8AsQAABYAFrgAnAZQA6gAIACcBxgBEApsBBwHFAwIAAAAQALAARViwCS8bsQkgPlkwMf//AJYAAAWfBb8AJwGUAZ0ACAAnAiADJQAAAQcCHwCiApsAEACwAEVYsCAvG7EgID5ZMDEAAv/S/noDIwRRABgAJABjsiElJhESObAhELAC0ACwAEVYsCIvG7EiHD5ZsABFWLAQLxuxEBg+WbAiELEcDbAKK1gh2Bv0WbAA0LAAL7IEEAAREjmwEBCxCQGwCitYIdgb9FmyDBAAERI5shUAEBESOTAxAQYGBwcGBwYWFxY2NzMGBCcmJjc2Nzc2NwEUBgcGJjU0Njc2FgJrC1dfUngOC0pOU3MR7RH+/Ly3yQ0Pw21fFAEsSjo7TEo7OkwClnSrV0ptb1JgAgJlV7PTBATMqbOrXlaMATs7SwICSjg5TAICSgAAAv+HAAAHeAWwAA8AEgB7ALAARViwBi8bsQYgPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbIRBgAREjmwES+xAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmyCwYAERI5sAsvsQwBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZshIGABESOTAxISETIQMhASEHIQMhByEDIQEhEwa3/Jks/iHu/tgEJgPLI/2ONwIVI/30PAKE+1gBZlUBVP6sBbDF/mjF/jYBZwJ6AAABACMA1gQUBIYACwA4ALADL7IJDAMREjmwCS+yCgkDERI5sgQDCRESObIBCgQREjmwAxCwBdCyBwQKERI5sAkQsAvQMDETAQM3EwEXARMHAwEjAWv7nvoBan/+lfue+/6XAXcBQQFDi/6/AUGh/r/+vYsBQP7AAAADABX/oQWYBe0AFwAhACsAV7IeLC0REjmwHhCwC9CwHhCwJ9AAsABFWLAMLxuxDCA+WbAARViwAC8bsQAQPlmxJwGwCitYIdgb9FmwJdCwGtCwDBCxHQGwCitYIdgb9FmwG9CwJNAwMQUmJwcnNyY3NxISJBcWFzczBxYXFgICBAEGFwEmJyYCBwYBNicBFhcWEjc3Alece3a1wmwCAxPBATW+voBws8Q4DhFKyf7k/mEDFAJ9PoGm4ikaAtAFBv2TP2Cw4yQRFQRJlwHwsOJPAQwBfsoCBGOP9HmAqv5l/sibAiJVUwM/TgUF/wDplQEQRkf81jICBQEX+nkAAAIAJwAABIIFsAAMABUAWbIPFhcREjmwDxCwCNAAsABFWLAALxuxACA+WbAARViwCi8bsQoQPlmyAgAKERI5sAIvsg8AChESObAPL7EIAbAKK1gh2Bv0WbACELEVAbAKK1gh2Bv0WTAxAQMXFhYHBgQjJwMjExMDFzY2NzYmJwIRMcve+Q8Q/s3r/DXt/ZtV4YCsDw5wagWw/ugBAerCy/QB/tQFsP4l/hoCAolxa3wEAAABABv/5wRMBhoALQBasiEuLxESOQCwAEVYsAUvG7EFIj5ZsABFWLAALxuxABA+WbAARViwFS8bsRUQPlmyDgUVERI5sRoBsAorWCHYG/RZsiAVBRESObAFELEqAbAKK1gh2Bv0WTAxISMTNiQXFhYHDgMHBh4CBwYGJyYnNxYzMjY3NiYnJjc+Azc2JicmBgcBCO29HAEAyKe+DQQkYBwHCC6INQIJ+L2rcURnbFh2CwgyRn4JBDI8NAcJRUZadRQEUdL3BAS9nDFXmkImMWaZbjitxQQCQcFCWUk0ZkuGbzldWVw3TFwEA4OHAAMAD//oBnAEUgArADUAPgD+sgI/QBESObACELAv0LACELA50ACwAEVYsB0vG7EdHD5ZsABFWLAZLxuxGRw+WbAARViwAC8bsQAQPlmwAEVYsAUvG7EFED5ZsgMdABESObILBRkREjmwCy+wGRCxEQGwCitYIdgb9FmyFAsRERI5QAkMFBwULBQ8FARdshsdABESObI6HQAREjmwOi+0HzovOgJxso86AV20XzpvOgJxtL86zzoCXbTvOv86AnGxIQewCitYIdgb9FmwABCxJQGwCitYIdgb9FmyKB0AERI5sAUQsSwHsAorWCHYG/RZsAsQsTAHsAorWCHYG/RZsB0QsTYBsAorWCHYG/RZMDEFIiYnBicmJjc2JDMXNzYnJicmBgcnPgIXFhc2FxYSBwchBhYXFjY3FwYGJTI3NycGBgcGFgEmBgchNzYnJgRqc7w1rP2atAgKAQXmvw0GBBF3V3cN7Qd723vXWpu5wscaFf1jDndzVZdKOkHT/LZyiiipa5EMCU4DjWCSLgG2BgcEDhNTTKQEAq+TobICSiYidQMCVEkTYplTAgWAiAQG/vLWjYidAgI1J6g5Prhm0gEDXk8/SALnA4eHIS0qjQAAAgBG/+gESgYsAB4AKgBhshArLBESObAQELAo0ACwAEVYsBovG7EaIj5ZsABFWLAILxuxCBA+WbIQGggREjmwEC+wGhCxGQGwCitYIdgb9FmwEBCxIQewCitYIdgb9FmwCBCxJwGwCitYIdgb9FkwMQEWEgcHBgIGJy4CNz4CFxYXJicHJzcmJzcWFzcXASYnJgYHBhYXFjY3A6VbQRcMF6jsiX/FYAwNiOCFimsEYOA/uFulW96UyT7++DaTf6sQDmlidqMZBRSb/ryzVqf+7IkDBIDcgZDwhgQEWZmKiHlsSTDCNoN6ef05YQUCtpN4pQMF0K0AAwA9AJAEOgTPAAMADwAbAFeyGBwdERI5sBgQsADQsBgQsAbQALADL7EAAbAKK1gh2Bv0WbADELANsAorWNgb3FmxBw2wCitYIdgb9FmwABCwE7AKK1jYG9xZsRkNsAorWCHYG/RZMDEBITchATQ2NzYWFRQGBwYmAzQ2NzYWFRQGBwYmBBT8KSUD2P3CTjo9Tks+O0+OTD05UUw9OVECRtQBKT1LAgJMODlOAgJI/Qo5UAICSTw7SwICSAADACr/dwQzBLsAGwAkAC4AV7IrLzAREjmwKxCwEdCwKxCwItAAsABFWLAFLxuxBRw+WbAARViwEi8bsRIQPlmxKgGwCitYIdgb9FmwKNCwHtCwBRCxIQGwCitYIdgb9FmwH9CwJ9AwMRM2Njc2FxYXNxcHFhcWBwYCBicmJwcnNyYnJjcXBhcBJicmBgYlNicBFhcWNjc2RA9eTpzfXl9hm5JwBwIIFJv0lFZbZZuSdggDB+EBFAGUJjVkl1ACEAES/nAoKnmrHgwCIHbTTp0EAiOQAdKEwzpTn/7+iwICH5QB0YLHPTx8Pz0CZxMCAYHxgzw8/aEOAgO+r1QAAAL/zf5gBBQGAAARAB0AWLIEHh8REjmwBBCwHNAAsAkvsABFWLANLxuxDRw+WbAARViwBy8bsQcSPlmwAEVYsAQvG7EEED5ZsA0QsRYBsAorWCHYG/RZsAQQsRsBsAorWCHYG/RZMDEBBgIGJyYnAyMBMwM2FxYWFxYHNzYmJyYHAxYXFjYEDBSIzX2oYmHuAVPtanqjnbEFAfMFA1pdhWJVL4l2oQIYpP73hAMEdf39B6D91nwEBN7BPEFKf40EBH/+HXkEA74AAgA7/+gFGQYAABoAJwCCALAXL7AARViwEC8bsRAcPlmwAEVYsAYvG7EGED5ZsABFWLADLxuxAxA+WbIPFwFdsi8XAV2yFRcQERI5sBUvsRQHsAorWCHYG/RZsAHQsgQGEBESObISEAYREjmwFRCwGdCwBhCxIAGwCitYIdgb9FmwEBCxJQGwCitYIdgb9FkwMQEjAyM3BicuAicmNzYSNhcWFzcjNzM3MwczAQYXFBYXFjcTJicmBgT7qdXUEH+pY5dVBAMIFI3PfaReM/Ue8xrtGar8FQYBWlSJZVEviHafBMj7OHCIBAFpxng4WKIBCoIDBHbzqo6O/JczO2mAAgSKAdF8BAO6AAACAC4AAAXbBbAAEwAXAG0AsABFWLAPLxuxDyA+WbAARViwCC8bsQgQPlmyFAgPERI5sBQvshAUDxESObAQL7AA0LAQELEXB7AKK1gh2Bv0WbAD0LAIELAF0LAUELEHAbAKK1gh2Bv0WbAXELAK0LAQELAN0LAPELAS0DAxATMHIwMjEyEDIxMjNzMTMwMhEzMBITchBV98HXuz9nD9inD2s3gceC33LgJ2Lfb8KwJ2If2KBK6i+/QCh/15BAyiAQL+/gEC/aK6AAEAIgAAAcsEOgADAB0AsABFWLACLxuxAhw+WbAARViwAC8bsQAQPlkwMSEjEzMBD+287QQ6AAEAIQAABI0EOgAMAGAAsABFWLAELxuxBBw+WbAARViwCC8bsQgcPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIGAgQREjmwBi+0HwYvBgJxso8GAV2xAQGwCitYIdgb9FmyCgEGERI5MDEBIwMjEzMDMwEhAQEhActzS+y87EtIAZEBNv4HAUX+5QGs/lQEOv5QAbD95/3fAAEAIQAAA9IFsAANAF0AsABFWLAMLxuxDCA+WbAARViwBi8bsQYQPlmyAQwGERI5sAEvsADQsAEQsQIHsAorWCHYG/RZsAPQsAYQsQQBsAorWCHYG/RZsAMQsAjQsAnQsAAQsAvQsArQMDEBNwcHAyEHIRMHNzcTMwHF8BzvWgKCI/yHcIUbhXL3A2xGm0f9+soCgiabJwKSAAABAB8AAAJbBgAACwBLALAARViwCi8bsQoiPlmwAEVYsAQvG7EEED5ZsgEEChESObABL7AA0LABELECB7AKK1gh2Bv0WbAD0LAG0LAH0LAAELAJ0LAI0DAxATcHBwMjEwc3NxMzAcKZHJiA7nKMHIp/7QN/NJw1/R4Ciy+cLwLZAAEAI/5GBXgFsAATAGiyBhQVERI5ALAARViwAC8bsQAgPlmwAEVYsBAvG7EQID5ZsABFWLAELxuxBBI+WbAARViwDC8bsQwQPlmwAEVYsA4vG7EOED5ZsAQQsQkBsAorWCHYG/RZsg0ADBESObISDgAREjkwMQEBBgYnIic3FjMyNzcBAyMTMwETBXj+/xjXpTtMIzYpgSIH/ki39v3uAbu3BbD6GLbMAhTGDsQoBB/74QWw++IEHgABABH+RgQGBFIAGwBjsgIcHRESOQCwAEVYsAMvG7EDHD5ZsABFWLAALxuxABw+WbAARViwCi8bsQoSPlmwAEVYsBkvG7EZED5ZsgEDGRESObAKELEPAbAKK1gh2Bv0WbADELEWAbAKK1gh2Bv0WTAxAQc2FxYWBwMGBicmJzcWMzI3EzYnJicmBwMjEwGlF4a7oZYWdhjQo0FEIzkngR92BQIHi4Nlje68BDuYrwQD5sT9ILXGAgETxQ+7AtMtKYwFBGr83wQ6AAIAUP/uB4oFxQAXACUAlrIbJicREjmwGxCwFtAAsABFWLAMLxuxDCA+WbAARViwDi8bsQ4gPlmwAEVYsAMvG7EDED5ZsABFWLAALxuxABA+WbAOELEQAbAKK1gh2Bv0WbITAA4REjmwEy+xFAGwCitYIdgb9FmwABCxFwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FmwDBCxHQGwCitYIdgb9FkwMSEhBwcmJgI3EzYSJDMXFyEHIQMhByEDIQUWNxMmJyYGBwMGFxYWBpT8xcRXnudpFDIctQETpUrPA1Ik/WFGAkUk/b1OAqb7kE97xnNMoNoeLwkGCIERAQSdARChAT2pAQ2SAhPM/m7I/kAZAwwEOw4CAtnC/tNIRnSIAAMAQv/oBtwEUgAgAC8AOQC9sho6OxESObAaELAp0LAaELAz0ACwAEVYsAkvG7EJHD5ZsABFWLAELxuxBBw+WbAARViwHC8bsRwQPlmwAEVYsBcvG7EXED5ZsgcJHBESObI0CRwREjmwNC+yjzQBXbQfNC80AnGxDQewCitYIdgb9FmwFxCxEQGwCitYIdgb9FmyExcJERI5shoJHBESObAcELElAbAKK1gh2Bv0WbAEELEsAbAKK1gh2Bv0WbAJELEwAbAKK1gh2Bv0WTAxEzYSNhcWFhc2FxYSBwchBhYXFjcXBgYnJiYnBicuAjczBxcWFxY2Nzc1JicmBgcBJgYHITc2JyYmVBSY7pRytzGmzsPJGhb9cA1raJqaQUPMe3a1MablisJYEOwFAQ6se6QVBwi0cqAcA/tShTYBpwUHBQhTAiChAQSMAgJeUbQEBP7z14+FnwMFX6A+QQICXE6xBAKO+ZZLLt8HA8alYR3yCAOxpAFTAXqMHC0pQ00AAAEAHgAAAyAGGgANADOyAg4PERI5ALAARViwBC8bsQQiPlmwAEVYsAAvG7EAED5ZsAQQsQkBsAorWCHYG/RZMDEzEzY2FxYXByYnIgYHAx7JF9qqPGIsLC1QaA/KBJ+xygIBF7gMAmNZ+2YAAAIATv/oBS8FwwAaACQAYbINJSYREjmwDRCwHNAAsABFWLASLxuxEiA+WbAARViwAC8bsQAQPlmyCBIAERI5sAgvsBIQsQ0BsAorWCHYG/RZsAAQsRsBsAorWCHYG/RZsAgQsR4BsAorWCHYG/RZMDEFJiQnJyY3NwU2JyYmJyYHJzYhFgQSBwcGAgQnFjY3IQcGFxYWAknT/vsaBAUMFgOvDwoSqouk0R6GAR++AQt3GQ8ey/7WnZHaQ/1FBw4KEJEUBOvUMlRajwFbU4eXAwNJyVQDsP7DxGjN/ryu1wPL0SJOQ2x3AAAB/0r+RgNMBhkAHQB0sgIeHxESOQCwAEVYsBQvG7EUIj5ZsABFWLAPLxuxDxw+WbAARViwHC8bsRwcPlmwAEVYsAUvG7EFEj5ZsBwQsQABsAorWCHYG/RZsAUQsQoBsAorWCHYG/RZsAAQsA3QsA7QsBQQsRkBsAorWCHYG/RZMDEBIwMGBicmJzcWFzI3EyM3Mzc2NhcWFwcmIyIHBzMCocOUE8iiQ0AgNyR4HZehHaAMFdiqNWcqNyekGwvDA4b8NK7GAgISvg4CqQPTtGWyyAIBFrsMxVIAAAIAW//oBiYGLgAaACsAXrIgLC0REjmwIBCwGtAAsABFWLAKLxuxCiA+WbAARViwAC8bsQAQPlmyDQoAERI5sA0vsRMIsAorWCHYG/RZsAoQsR8BsAorWCHYG/RZsAAQsSgBsAorWCHYG/RZMDEFLgInJhISNzYXFhYXNjY3MwIFFhcWAgIHBhM3NiYnJgIPAgYWFhcWEjcCSI/UewgHP5lsq953xUNSZRO1IP7yFQUFPaN1pfQJCoOGrOUjCQgGNXdZpeIoFAOB96F+AVABEleJBAJYUA+Ahf6uR2dlhv6d/ttYewMYarXQBAX+7vVAaW28YQMHAQDzAAACADb/5gUFBKgAGAAnAF6yHSgpERI5sB0QsATQALAARViwBC8bsQQcPlmwAEVYsBUvG7EVED5ZsgcEFRESObAHL7EOCLAKK1gh2Bv0WbAVELEcAbAKK1gh2Bv0WbAEELEjAbAKK1gh2Bv0WTAxEzYSNhcWFhc2NzczBgYHFhcWBwIAJyYCNxcWFhcWNjc3NiYnJgYHBlESnfGUYq8+ZxsOoQ5zbg8DAggl/srd1OAY6gNjWXqoGAcDY2J6phkIAiCgAQaLAgJJTSl8TJCpJ0hHR0n+8f7MBQYBNeVzaX8EA8KpYn2VBAPDrFEAAAEAW//oBq0GAgAaAFayFxscERI5ALAARViwAC8bsQAgPlmwAEVYsBEvG7ERID5ZsABFWLAMLxuxDBA+WbIBAAwREjmwAS+xCAiwCitYIdgb9FmwDBCxFgGwCitYIdgb9FkwMQEHNjY3NwYGBwMGACcuAjcTMwMGFhcWNjcTBTIoancVrRPVzWwi/rnwldxnEaX2pRJ1fYezGacFsN8LiZwB1uIM/aTo/u4EA37kkQPO/DGKngQEmpED1AAAAQBK/+gFYQSUABsAarIUHB0REjkAsABFWLANLxuxDRw+WbAARViwFi8bsRYcPlmwAEVYsAQvG7EEED5ZsABFWLAILxuxCBA+WbIYFgQREjmwGC+xAwiwCitYIdgb9FmyBhYEERI5sAgQsRMBsAorWCHYG/RZMDEBBgYHAyM3BicuAjcTMwMGFxYXFjcTMwc2NjcFYQ+kpZPeFXu5aYs7DHXtdQQDB3aeX4jtH1JSEgSUrqkM/M9rgwQCZLN5Arz9QSUjfAUGhAMKiw1cewAB/w/+SAHcBDoADAApALAARViwDC8bsQwcPlmwAEVYsAQvG7EEEj5ZsQkBsAorWCHYG/RZMDEBAwYGIyInNxYzMjcTAdzDGMyjPUYfNSp/IcIEOvuItcURwRDCBG4AAgA2/+oD9gRQABUAHQBoshAeHxESObAQELAW0ACwAEVYsAAvG7EAHD5ZsABFWLAILxuxCBA+WbIMAAgREjmwDC+wABCxEAGwCitYIdgb9FmyEgwQERI5sAgQsRYBsAorWCHYG/RZsAwQsRgHsAorWCHYG/RZMDEBFhIHBw4CJyYCNzchNiYnJgcnNjYTFhMhBhcWFgJFzuMWBxWa5IPFyBoWApAMammXnEFDzAeoZ/5YDQYIVQROBP7V5jmX/IMDBgEM1Y+DoQMFX6A+QvxdBgELSSlDTwAAAQECBN0DnwYBAAgASgCwBS+yDwUBXbAG0BmwBi8YsADQGbAALxiwBRCwAdCwAS+wBRCwBNCwBC+wAtCwAi+wBRCwB9CwBy+0DwcfBwJdsgMFBxESOTAxARUnJwcHJwEzA5+5da3BAQEtiATuEQObmgQSARIAAAEBDQTgA7wGBQAIACUAsAQvsg8EAV2wAtCwAi+0DwIfAgJdsgAEAhESObAH0LAHLzAxATc3FQEjAzUXAkKp0f7MkunEBWeZBBD+7AEVEAT//wEBBQwDtwWqAAYAcAAAAAEA/gTIA2wF5wAMAC0AsAMvsg8DAV2wANCwAC+0DwAfAAJdsAbQsAYvsAMQsQkCsAorWCHYG/RZMDEBBgYnJiY1FwYzMjY3A2wKuoeEn7AFeENMDAXnhZoEApmAAYxOPQAAAQECBNwCAQXYAAoAHrIACwwREjkAsAgvsg8IAV2xAgWwCitYIdgb9FkwMQE0NjYWFRQGBwYmAQJHbkpHNzZLBVU4RwRFNjlEAgJFAAIA+gSMAqgGKwALABcAMQCwCS+yDwkBXbAV0LAVL7IPFQFdsQMMsAorWCHYG/RZsAkQsQ8KsAorWCHYG/RZMDETNDYzMhYVFAYjIiY3BhYzMjY3NiYjIgb6hV1SeoRdV3ZrBjIrMkkGBjErMkoFUlp/dVRZfXRUKEJILitASQAAAf+o/lEBJAA9AA8AHACwAEVYsAovG7EKEj5ZsQUDsAorWCHYG/RZMDEFBwYHBhcWNxcGJyImNzYlASQvgwcFOBs9DEVVV2kCAwEIAx9WVjkDAReQKwJtVLN2AAABAN4E2wPJBfQAFABDALADL7AI0LAIL7QPCB8IAl2xDgOwCitYIdgb9FmwFNCwANCwAxCwCtCwCi+wC9CwCy+wAxCxEgOwCitYIdgb9FkwMQEGBiMiLgIHBgcnNjYXFhYXFzY3A8kMgV4YLWs0HU8blQqCYDCWIhlRHAXpd4wOPRMBA2UIcpcCAVkEAQNmAAACAKwE0QPpBf8AAwAHAEAAsAIvsg8CAV2wANCwAC+0DwAfAAJdsAIQsAPQGbADLxiwABCwBdCwBS+wAhCwBtCwBi+wAxCwB9AZsAcvGDAxATMBIwMzASMC7/r+ydJW8/70xQX//tIBLv7SAAAC/+7+aQFN/78ACwAXAD8AsBgvsAPQsAMvQA8AAxADIAMwA0ADUANgAwddsA/QsA8vsQkJsAorWCHYG/RZsAMQsRUJsAorWCHYG/RZMDEHNDYzMhYVFAYjIiY3BhYzMjY3NiYnIgYSaktJYWlISmRhBCUdITYGBR4gIzn1TWdiREpmXkYfKzMhHTEBNgAAAf1UBNH+2QYAAAMAIwCwAS+yDwEBXbAA0BmwAC8YsAEQsALQsAIvtA8CHwICXTAxASMDM/7ZtNH8BNEBLwAB/dcE0f/pBgAAAwAjALACL7IPAgFdsAHQsAEvtA8BHwECXbACELAD0BmwAy8YMDEBIQEj/skBIP6+0AYA/tH///z2BNv/4QX0AAcApfwYAAAAAf3WBOX/PQZ/AA4AJgCwDi+wB9CwBy+yAQ4HERI5sQgIsAorWCHYG/RZsg0BDhESOTAxATc3Njc2Jyc3FwQHBgcH/dYOL18JCmsiESgBDAMDoAoE5pIFCzo8BAF8AhahfR5GAAL8vwTk/7MF7gADAAcANwCwAS+wANAZsAAvGLABELAF0LAFL7AG0LAGL7YPBh8GLwYDXbAD0LADL7AAELAE0BmwBC8YMDEBIwMhASMDIf6R3fUBEgHizsABBATkAQr+9gEKAAAB/KD+kf2s/44ACwASALADL7EJDbAKK1gh2Bv0WTAxBTQ2NzYWFRQGBwYm/KBLOjdQSjs6TfU2SQICRDc5RQICRgABAS4E6QKIBkEAAwAXALACL7AA0LAAL7ACELAD0BmwAy8YMDEBMwMjAabixJYGQf6oAAMA6ATcBCMGrwADAA8AGwA/ALANL7AC0LACL7AA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGLANELEHBbAKK1gh2Bv0WbAT0LANELAZ0LAZLzAxATMDIwU0Njc2FhUGBgcGJiU2Njc2FhUUBgcGJgKd6LOX/q1ENzJKAUYzMksCRAFGMzJLRTY0SAav/tYyMEgCAkI0NEQCAkIzNEQCAkI0MEgCAkT//wCeAkIBsQNVAgYAeAAAAAEALgAABKwFsAAFACwAsABFWLAELxuxBCA+WbAARViwAi8bsQIQPlmwBBCxAAGwCitYIdgb9FkwMQEhAyMTIQSI/XXZ9vwDggTk+xwFsAAAAv+qAAAFCQWwAAMABgAwALAARViwAC8bsQAgPlmwAEVYsAIvG7ECED5ZsQQBsAorWCHYG/RZsgYCABESOTAxATMBISUhAwLr7QEx+qEBegLJtwWw+lDKA7kAAwBe/+cFFgXIAAMAFQAlAIayGyYnERI5sBsQsALQsBsQsA3QALAARViwDS8bsQ0gPlmwAEVYsAQvG7EEED5ZsgIEDRESOXywAi8YsmACAV2yQgIBXbJyAgFdtNAC4AICXbIwAgFdsgACAXGxAQGwCitYIdgb9FmwDRCxGgGwCitYIdgb9FmwBBCxIgGwCitYIdgb9FkwMQEhNyEBLgInJhISNzYEABcWAgIHBhM3NiYnJgIPAgYWFxYSNwOQ/ksjAbT+mo/WeggHOp90qAGwAQEMBjmLZ7LcCQeDg6/iIgoICoSFpeIoAnnC/LEDg/idcwFRASFaggj+3vd8/r/+81qcAxlqvMkEBf7t7Udpt9IEBwEA8wAB/7IAAAR/BbAABgAxALAARViwAy8bsQMgPlmwAEVYsAEvG7EBED5ZsABFWLAFLxuxBRA+WbIAAwEREjkwMQEBIQEzEyEC3v3l/u8C6+/z/wAEQfu/BbD6UAADAAAAAASIBbAAAwAHAAsATgCwAEVYsAgvG7EIID5ZsABFWLACLxuxAhA+WbEAAbAKK1gh2Bv0WbIFCAIREjmwBS+xBgGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FkwMTchByETIQchEyEHISQDpiP8WfQC4SP9HzgDfyP8gMrKA03GAynMAAEALgAABYMFsAAHADkAsABFWLAGLxuxBiA+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsAYQsQIBsAorWCHYG/RZMDEhIxMhAyMTIQSG9tn9lNn2/ARZBOT7HAWwAAH/3AAABJ8FsAAMAD4AsABFWLAILxuxCCA+WbAARViwAy8bsQMQPlmxAQGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIQchNwEBNyEHIQEDG/4vAp4j/BccAiD+qBkDxiT9dgErAtH9+cqiAkMCPo3M/gEAAAMAUgAABasFsAAUABsAIgBxshIjJBESObASELAZ0LASELAg0ACwAEVYsBMvG7ETID5ZsABFWLAJLxuxCRA+WbIAEwkREjmwAC+yIBMJERI5sCAvsQgBsAorWCHYG/RZsAvQsAAQsBLQsCAQsBjQsAAQsRkBsAorWCHYG/RZsB/QMDEBFhIHBwYGBAcHIzcmADc2EiQ3NzMBBhYXEwYGBTYmJwM2NgPc0P8FAw+q/umqJPck4P8AFg+tARmoJvf9WBN9hoKaxANDEnqFgZ29BPwL/uvTMKD8jgWqqwwBLOSiAQGPBLP9F5KsDQKyCr6Nl6wP/U8MuwAAAQB1AAAF1wWwABkAXbIKGhsREjkAsABFWLAELxuxBCA+WbAARViwEC8bsRAgPlmwAEVYsBgvG7EYID5ZsABFWLAKLxuxChA+WbIXBAoREjmwFy+wANCwFxCxDAGwCitYIdgb9FmwCdAwMQE2NjcTMwMGAAcDIxMmAjcTMwMGFxYWFxMzA0GGqxlV91Yq/sH2SPZI3NsdU/ZUCAMFY1me9AI/G8WaAff+Avn+1Rf+iQF3HwFB6AHx/g4+PGKHGANtAAABAAkAAAT3BccAIwBbsgAkJRESOQCwAEVYsBkvG7EZID5ZsABFWLAPLxuxDxA+WbAARViwIi8bsSIQPlmxIQGwCitYIdgb9FmwANCwGRCxBwGwCitYIdgb9FmwABCwDtCwIRCwEdAwMSU2EhM3NQInJgYCBwYWFwchNzcCEzc2EiQXFhYSBwcCBTcHIQKAj6shBgvPkL4+AwVRUSD+FCXRoSUNGrQBEqSd4GYVDTX+9tEk/h3OJwEzATdPMwEPCAXb/nx2kK8Z0MsCAQ4BEl24ASafBASk/t6oV/6e0QTLAAIAPv/qBDMEUQAdACsAfLIaLC0REjmwGhCwJNAAsABFWLAaLxuxGhw+WbAARViwAC8bsQAcPlmwAEVYsBAvG7EQED5ZsABFWLAKLxuxChA+WbEFAbAKK1gh2Bv0WbINGhAREjmyHBoQERI5sBAQsSMBsAorWCHYG/RZsBoQsSgBsAorWCHYG/RZMDEBAwYXFhczNxcGJyYmJwYGJyYmJyY3NzYSNhcWFzcBBhcWFhcWNxMmJyYGBwQzgAcCAicODQY1QE5eDTyUZJq0BwMGAxWLzICtVTH9zAYBAllShGJQL395nhYEOv0GNBo0AgO3HQICVEtLWQIC27U9PBWsAROGAwSVhf24MzhkdAIDiwHJiQQF07YAAv/l/ncEawXHABQAKQBoshQqKxESObAUELAc0ACwDy+wAEVYsAAvG7EAID5ZsABFWLAMLxuxDBA+WbIVAAwREjmwFS+xJwGwCitYIdgb9FmyBScVERI5sAAQsRsBsAorWCHYG/RZsAwQsSEBsAorWCHYG/RZMDEBFhYHBgcWFgcOAicmJwMjEz4CEzY2NzYmJyYGBwMWFzI2NzYmJyc3Atu42A0O3F5eCAqG24SddFfs9xCS4hdpggsJWFFgkRKLSpFxoxAOWViEGgXEBNWpw3UuunWF0W8DBFL+NgWod8Rt/ZQCdGlYbgQCgGb83lACj3JljAUBuAABAHf+XwQwBDoACAA4sgAJChESOQCwAEVYsAEvG7EBHD5ZsABFWLAHLxuxBxw+WbAARViwBC8bsQQSPlmyAAcEERI5MDEBATMBAyMTAzMByQFp/v3fTu1TsOwBPgL8++L+QwHeA/0AAAIAOP/nBDgGJAAfAC4AZbICLzAREjmwAhCwJtAAsABFWLADLxuxAyI+WbAARViwFS8bsRUQPlmwAxCxCAGwCitYIdgb9FmyDhUDERI5sA4vsSsBsAorWCHYG/RZshwrDhESObAVELElAbAKK1gh2Bv0WTAxATY2FxYXByYHIgYHBhcXBAMHDgInLgI3NjY3NSYmAwYXFhYXFjY3NiYnBgYHAUEH67FsmRWEakxrCg9wLAGGJwMUme+QisRcDhLbnkhNBwYDA2NXd6QcDmZgeqUYBOKVrQICMcQ4AkE3TTcUrP51FJ36iAQEh/GUvv8cDyeG/XM1O2h9AwO9vH+7HgO6qgAAAQAo/+oEAgRRACcAo7IUKCkREjkAsABFWLAILxuxCBw+WbAARViwJS8bsSUQPlmyFQglERI5sBUvso8VAV20HxUvFQJxtF8VbxUCcbS/Fc8VAl207xX/FQJxsloVAV2xFwewCitYIdgb9FmyAhcVERI5sAgQsQ8BsAorWCHYG/RZsgwVDxESObYMDBwMLAwDXbAlELEdAbAKK1gh2Bv0WbIgFx0REjm0AyATIAJdMDETNjcmJjc2JBcWFhUnNCYjJgYHBhcXByciBgcGFhcWNjczDgInJiYvCuY9TwIFAQ3OstvpZU5ZhgoTsdEftG6ECQhnXFqODu4Jgt1+w+wBKbdTIW1Imq4EBbKQAUJIAlBEeQYBrQFVSj9OAwJVSmucUAIEqgAAAQBm/n0EUAWwABsAUbISHB0REjkAsAwvsABFWLAALxuxACA+WbEZAbAKK1gh2Bv0WbIBGQAREjmyAgwAERI5shMMABESObATELEGAbAKK1gh2Bv0WbIYAAwREjkwMQEHAQYXFhcXFhYHBgcnNzY3NicnJBM2EjcBITcEUBz+FuIHA12wWUkECt56Kz8LCk51/u8cDqqxART93iIFsJz+CfTZXiQ9IWFJpaRrL0g6NxwkWwENigEqsgEPwwABABH+YQQGBFIAEgBUsggTFBESOQCwAEVYsAMvG7EDHD5ZsABFWLAALxuxABw+WbAARViwBy8bsQcSPlmwAEVYsBAvG7EQED5ZsgEDEBESObADELENAbAKK1gh2Bv0WTAxAQc2FxYWBwMjEzYnJicmBwMjEwGlFIq1oZUTu+28BQMOhohlie68BDuFnAQE1MD7qwRULCeAAwR9/O4EOgAAAwBs/+cEPwXJABEAGQAiAImyICMkERI5sCAQsADQsCAQsBjQALAARViwCS8bsQkgPlmwAEVYsAAvG7EAED5ZshMJABESOXywEy8YsmATAV2yQhMBXbJyEwFdtNAT4BMCXbIwEwFdsgATAXGwCRCxFwGwCitYIdgb9FmwExCxGgGwCitYIdgb9FmwABCxIAGwCitYIdgb9FkwMQUmAjc0NzcSABcWEgcGBwcCAAEhNjUmJyYDASEGFxQWFxYTAei4xAIJHzEBHt+5wgEBCSI0/uf+tgHJFQWf2UsBn/43FQFUTtZOFAQBBetLR8wBQgFJBQT+/OdLR93+xf68A1GDUe8HCP6i/s2DS3mCAwwBZAABAG7/9AIKBDoADQApALAARViwAC8bsQAcPlmwAEVYsAkvG7EJED5ZsQQBsAorWCHYG/RZMDEBAxUWFzI3BwYnJiY3EwHrgwNLJy0QSkt8ew2DBDr89S1AAwm+FgICo4kDFgAAAf+o//AD1gX7ABoAU7IPGxwREjkAsAAvsABFWLALLxuxCxA+WbAARViwEC8bsRAQPlmwCxCxBgGwCitYIdgb9FmyDwAQERI5shIQABESObAAELEWAbAKK1gh2Bv0WTAxARYXExYWFzM3BwYjJiYnAwEhAScmJicnBzc2AZm4MOgIHiQSEQ0qKl9yHWn+lv70AjEuCyorGxsOPgX5BKX7xB82BQHDCAJmawIE/TkEHcAoLQIBAbgPAAEAPv51BCYFxQAtAFmyBS4vERI5ALAXL7AARViwKy8bsSsgPlmxAgGwCitYIdgb9FmyBy4rERI5sAcvsQoBsAorWCHYG/RZsh4XKxESObAeELEQAbAKK1gh2Bv0WbIlCgcREjkwMQEmIyIGBwYFFwcnIgYHBhYfAhYHBgYHJzc2NzYnJyYnJhM2NjcmJjc2JDMyFwPue1h8mAwbAQ+FI36s0xILYWCELqkIBXhsgC9CCQc/KqBC2hUKuKtUYAQIAR/bjIgE2iZbTq8CAcYBmY5dgxwlDzyQUqlNajFIPTIZDzMjcgEBjcs4KIlYrsYuAAEAXf/1BNoEOgAWAF6yDRcYERI5ALAARViwFS8bsRUcPlmwAEVYsAsvG7ELED5ZsABFWLARLxuxERA+WbAVELEAAbAKK1gh2Bv0WbALELEGAbAKK1gh2Bv0WbAAELAP0LAQ0LAT0LAU0DAxASMDBhcWFzI3BwYjJiY3EyEDIxMjNyEEuZtjAwIGSiYvEUVQfHsNYv7Am+2bpyIEWwN8/bQZFEEDCb4VAqOKAlj8hAN8vgAC/8v+YAQMBFMAEgAgAFKyDiEiERI5sA4QsBbQALAARViwBS8bsQUcPlmwAEVYsBEvG7EREj5ZsABFWLAOLxuxDhA+WbEVAbAKK1gh2Bv0WbAFELEdAbAKK1gh2Bv0WTAxEzY2NzYXFhYXFgcHBgYnJicDIwEWFxY2NzYnJiYnJgYHdRBbSJDQsMgJAwcNLPexqWFh7gFrNIN1nhULAwhVTmuOGQI+b8lJlAUE6cdFRVPf+AUEdv37Ar9vBAOzn3U9cWwDAr+iAAEAO/6JA/AEUwAgAFyyDSEiERI5ALAARViwAC8bsQAcPlmwAEVYsBovG7EaED5ZsABFWLATLxuxExg+WbAAELADsAorWNgb3FmwABCxBwGwCitYIdgb9FmwGhCxDQGwCitYIdgb9FkwMQEWFgcnNiYnJgYHBwYXFxYHBgYHJzc2NzYmJyYCNzcSAAJztMkI3gVVVHOhFgQc7m2gBwN7bHkpQwkEJTrNvxMCHQExBE4E4bQBZG4EA8CjI+1XJz2PUatNayxKPyEoED4BBMQUAQIBNQAAAgA4/+gEtgQ7ABEAIgBkshgjJBESObAYELAH0ACwAEVYsBAvG7EQHD5ZsABFWLARLxuxERw+WbAARViwCC8bsQgQPlmwERCxAAGwCitYIdgb9FmwCBCxFwGwCitYIdgb9FmwEBCxIAGwCitYIdgb9FkwMQEFFgcHDgInLgI3NzYAMwUBBhcWFhcWNjc3NicmJicmBgSS/v6DEQMQlu+Ki8RZEAIiATHeAjv8gAYCBGBXb50cBwYCBV5VeKADdgOrxxaR7YUEApD8lRD7ASEB/dE2PW58AgOspS80OmZ3AwO2AAEAbv/rBCMEOgARAEuyAxITERI5ALAARViwEC8bsRAcPlmwAEVYsAovG7EKED5ZsBAQsQABsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA7QsA/QMDEBIQMHFDMWNxcGJyYmNxMhNyEEAf6jZQI/IT0VUl98eg5h/rciA5MDef2vKEoBFbQrAgKrlgJJwQAAAQBX/+UD/gQ8ABYAPbIQFxgREjkAsABFWLAKLxuxChw+WbAARViwAC8bsQAcPlmwAEVYsBEvG7ERED5ZsQUBsAorWCHYG/RZMDEBAwcGFhcWEgMmJxcWBwYCBicmJjc3EwG/bQUCOzmVww4GIeI6Cw+b+JmpuAoDbgQ6/WtMTF8CBgF0ASSBfQGp1/v+xqEEA9fAJgKRAAACADL+IgVtBEQAGwAkAFuyGSUmERI5sBkQsBzQALAaL7AARViwEi8bsRIcPlmwAEVYsAcvG7EHHD5ZsABFWLAALxuxABA+WbAZ0LEcAbAKK1gh2Bv0WbAO0LASELEiAbAKK1gh2Bv0WTAxBSYnJjc2EjcXBgIXFhYXEzY2Fx4CBwYABQMjATY2JyYmBwYHAfrucmgZE5uGiHFuDApxYHEOpnuH0WYOGv6v/vNX7QFercoCA2dWNgwMI6qc4KABCVuWaP70fWOGGgKFdZMCApD1jfT+0Rr+MQKRJPGrgZAGBDYAAQA//iIFigQ8AB0AU7IOHh8REjkAsA8vsABFWLAALxuxABw+WbAARViwCC8bsQgcPlmwAEVYsBUvG7EVHD5ZsABFWLARLxuxERA+WbAO0LEBAbAKK1gh2Bv0WbAc0DAxAQM2NhInJicXFhcSBwYFAyMTJgI3EzMDBhcWFhcTA56jkr9EDAkj3isKH++p/vRX7Vfh2SBS7VIJAwNnX6IEOvx6IrcBDqt+eAJ2f/5E4Z8Z/jIB0iIBRPcB6f4UQkBrjhwDgwAAAQBU/+QGEAQ9ACsAYLIjLC0REjkAsABFWLAALxuxABw+WbAARViwGy8bsRscPlmwAEVYsCEvG7EhED5ZsABFWLAmLxuxJhA+WbEHAbAKK1gh2Bv0WbIMIQAREjmwIRCxEgGwCitYIdgb9FkwMQEHBgYHBhYXFjY3EzMDBhcXFhcWNjc3NicmJxcWFxYCBicmJicGJyYmNxATAihST0YDA0M9W30TNfU0CQMCEHJWeRwKEQwMLeI0DBNy5qRqmBiF06KsAt4EOZiV6IN3ewMGoJkBRv66SzEbmAMEqapAgoKBfAN4gt3+WdUEAnhl5gcE6dcBXwErAAACAFD/5gSNBckAHgAoAG6yFCkqERI5sBQQsCDQALAARViwGS8bsRkgPlmwAEVYsAYvG7EGED5ZsiEZBhESObAhL7ETAbAKK1gh2Bv0WbAC0LIMGQYREjmwBhCxEAGwCitYIdgb9FmwIRCwHdCwGRCxJQGwCitYIdgb9FkwMQEGBwcGBCcuAjcTNwMGFhcWEzcmAjc2NhcWFgcDNwEGFxM3NCcmBgcEgjlLEyX+58h+vFsPL+cwDmRhyjQUt8sOE9yfmKESNHL98RK6OARUOUoLAlYTC3Xh/AYDedeAASMC/tp4jgMHASBvLAEVu7/RBATZrf7LGAEh4UwBODdwAgJUTQABAG0AAAUGBckAGABWsgwZGhESOQCwAEVYsAQvG7EEID5ZsABFWLAWLxuxFiA+WbAARViwDC8bsQwQPlmyABYMERI5sAQQsQgBsAorWCHYG/RZsBYQsREBsAorWCHYG/RZMDEBATY2FxYXBycGBwEDIxMDJicmByc2MxYXAkcBEz+KVztRNTNBLP5oWfZepxU4ESURPECvPwMJAed5YAICGcMGA0X9Xf38Ah8CiT4DAQXEGATLAAIAV//jBn0EOgAUACoAaLIJKywREjmwCRCwIdAAsABFWLATLxuxExw+WbAARViwDC8bsQwQPlmwExCxAQGwCitYIdgb9FmwDBCwB9CyChMMERI5sAEQsBfQsBLQsAwQsR0BsAorWCHYG/RZsiEMEhESObAn0DAxAScXBgIGBicmJicGJyYmNxI3BzchASYnJQYGBwYXFjY3NzMHBhcWFxYTNgZaeAMCPHixb2ucGIbamKEGBHhyIgX0/n4BB/zdSDwGC3Bbfhgk9CIIAwqBkzYbA4MBpIr+29xtAwJ4aesHBOvdAQDQArb+plFSAonXfPYGB5ad6eNJNbIDBAEplwABAJH/8QWFBbAAGQBxsgEaGxESOQCwAEVYsBgvG7EYID5ZsABFWLAKLxuxChA+WbAARViwFC8bsRQQPlmwGBCxAAGwCitYIdgb9FmyBBgUERI5sAQvsAoQsQsBsAorWCHYG/RZsAQQsREBsAorWCHYG/RZsAAQsBbQsBfQMDEBIQM2FxYWBwYEBzc2Njc2JicmBwMjEyE3IQTf/iJNjW/f9hES/sj+E4ujDw1yeW6SdvfZ/ockBE4E5P5zJwIC88rZ8QK/BIl6boEEAyD9cwTkzAABAGf/6AURBccAIACIshQhIhESOQCwAEVYsAwvG7EMID5ZsABFWLADLxuxAxA+WbIADAMREjmyEAMMERI5sAwQsRMBsAorWCHYG/RZshYMAxESOXywFi8YsmAWAV2ychYBXbJCFgFdsjAWAV200BbgFgJdsgAWAXGxGQGwCitYIdgb9FmwAxCxHQGwCitYIdgb9FkwMQEGACcuAicmEhIkFxYSFyMmJicmBgclByEHBhYXFjY3BKkh/q/wi9F3BwZEwgEcqdj8C/UFe3aW1D0B9CT+GQkGfnyLtiQB2+P+8AQDfu+acQGJATmeAwT++OueiwMF0+sBymKkuQQGl5MAAv/KAAAH9QWwABkAIgB9sgojJBESObAKELAb0ACwAEVYsBgvG7EYID5ZsABFWLAILxuxCBA+WbAARViwEC8bsRAQPlmyARgIERI5sAEvsBgQsQoBsAorWCHYG/RZsBAQsRIBsAorWCHYG/RZsAgQsRwBsAorWCHYG/RZsAEQsSIBsAorWCHYG/RZMDEBBR4CBwYAIyETIQMHAgIHIzc3NjY3NxMhAwMFNjY3NiYnBSABEYrUZgsR/sX0/d/Z/lJxHkP7wlsWJH+iKROKA5F/WwESf7ASD3FpA6EBBHbMgtP++wTk/fWS/s/+7wXKAQnf928Cl/0m/fQCApR9bogEAAIALgAAB/0FsAASABsAhbIBHB0REjmwARCwFNAAsABFWLACLxuxAiA+WbAARViwES8bsREgPlmwAEVYsAsvG7ELED5ZsABFWLAPLxuxDxA+WbIBAgsREjmwAS+yBQILERI5sAUvsAEQsQ0BsAorWCHYG/RZsAsQsRUBsAorWCHYG/RZsAUQsRsBsAorWCHYG/RZMDEBIRMzAxcWFgcGBCMhEyEDIxMzAQMFNjY3NiYnAbUCa2z2Yfzi/g8Q/sb0/d9u/ZVu9vz2At5VARKBrg8OcWsDRQJr/dIBAfHDzv4Cev2GBbD9CP4YAgKMc2h8BAAAAQCgAAAFmAWwABYAX7IBFxgREjkAsABFWLAVLxuxFSA+WbAARViwCC8bsQgQPlmwAEVYsBEvG7ERED5ZsBUQsQABsAorWCHYG/RZsgQVCBESObAEL7EOAbAKK1gh2Bv0WbAAELAT0LAU0DAxASEDNhcWFgcDIxM2JyYnJgcDIxMhNyEE4f4gRoKG6usYS/dMCAcVvmSvffbZ/pUkBEEE5P6aHAIE9df+OAHJQDCOBgMc/UwE5MwAAAEAJf6YBXwFsAALAEkAsAkvsABFWLAALxuxACA+WbAARViwBC8bsQQgPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbECAbAKK1gh2Bv0WbAD0DAxATMDIRMzAyEDIxMhASL32gJs2vf9/lk/9z/+RAWw+xoE5vpQ/pgBaAAAAgAjAAAEoQWwAAwAFQBhsg8WFxESObAPELAJ0ACwAEVYsAsvG7ELID5ZsABFWLAJLxuxCRA+WbALELEAAbAKK1gh2Bv0WbIDCwkREjmwAy+wCRCxDwGwCitYIdgb9FmwAxCxFQGwCitYIdgb9FkwMQEhAxcWFgcGBCMhEyEBAwU2Njc2JicEff12Pf7j/REQ/sf0/d38A4L88lYBEoGuDw5wawTk/p8BAe/E0P4FsP0I/hICApB3aXkEAAAC/4T+mgWRBbAADgAVAFeyEhYXERI5sBIQsAvQALABL7AARViwCy8bsQsgPlmwAEVYsAIvG7ECED5ZsAEQsATQsAIQsQ0BsAorWCHYG/RZsBDQsAbQsAsQsREBsAorWCHYG/RZMDEBIxMhAyMTFzYSExMhAzMFJRMhAwcCBP7rPvxgP+5bZXOeN4gDfdm0+/YCX7f+Zm4RVf6aAWb+mgIwA1MBMwEOAlX7GgQEBBr+GkL+vAAB/6UAAAfgBbAAFQB+ALAARViwCS8bsQkgPlmwAEVYsA0vG7ENID5ZsABFWLARLxuxESA+WbAARViwAi8bsQIQPlmwAEVYsAYvG7EGED5ZsABFWLAULxuxFBA+WbIQCQIREjmwEC+xAAGwCitYIdgb9FmwBNCyCBAAERI5sBAQsAvQshMAEBESOTAxASMDIxMjASEBASETMxMzAzMBIQEBIQTko272bp3+Of6+Alj+0gEb6Z1q9mqKAbcBOf3bATf+3QJ0/YwCdP2MAxMCnf2gAmD9oAJg/U39AwAAAQAe/+0EqAXFACkAhLIHKisREjkAsABFWLAOLxuxDiA+WbAARViwGi8bsRoQPlmyAA4aERI5sAAvsh8AAXGynwABXbJ6AAFdskoAAV2wDhCxBgGwCitYIdgb9FmyCg4aERI5sAAQsScBsAorWCHYG/RZshMnABESObIdDhoREjmwGhCxIQGwCitYIdgb9FkwMQEyNjc2JicmBgcHPgIXFhYHBgUWFgcGBAcHJiQ3FwYWFxY2NzYvAjcCd36hDAx9bWeiEfUJjviM4PgOEf79Y1wHDP7Z5TXS/v8H8wSCZn7BDhvRJLUjA0l4al5wAgJwYQF3umkCBdi5z3gurGy76wwBAue/AWR5AgSBbsUZAwHIAAEAJwAABXwFsAAJAEUAsABFWLAALxuxACA+WbAARViwBy8bsQcgPlmwAEVYsAIvG7ECED5ZsABFWLAFLxuxBRA+WbIEAAIREjmyCQACERI5MDEBMwMjEwEjEzMDBH3//fey/Ov+/feyBbD6UAP+/AIFsPwBAAAB/8oAAAV8BbAAEQBPsgQSExESOQCwAEVYsAAvG7EAID5ZsABFWLABLxuxARA+WbAARViwCS8bsQkQPlmwABCxAwGwCitYIdgb9FmwCRCxDAGwCitYIdgb9FkwMQEDIxMhAwcCAgcjNzc2Njc3EwV8/fbZ/lJxHkT8w1gWIn6hKhaKBbD6UATk/fWS/sv+8ALKAgfU8IIClwAAAQCb/+cFUwWwABAARLIAERIREjkAsABFWLABLxuxASA+WbAARViwDy8bsQ8gPlmwAEVYsAYvG7EGED5ZsgABBhESObELAbAKK1gh2Bv0WTAxAQEhAQYGJyInNxY3Mjc3ASEClwGfAR39TVTCfy9BFzQfbkNE/tcBAgK4Avj7VZuDAgfIBwFsfAQWAAADAFb/xAYTBewAGQAiACwAY7IXLS4REjmwFxCwH9CwFxCwJNAAsAwvsBkvsgAZDBESObAAL7IkDBkREjmwJC+xCwGwCitYIdgb9FmwDtCwABCwF9CwFy+wJBCwHtCwHi+wABCxIwGwCitYIdgb9FmwH9AwMQEyFhcWBwYCBwYnJwcjNyImAjc2EiQXFzczAQYWFxcTIwYGJQMzMjYSJyYmJwQMoOs8QBEQr4udtRoo7Sip7XMQEbkBKKscKub9IBSLkh2TFqjkApCREYbPYBIPjG4FJJKCjKqk/vFPWQMBv8CYAQ6eqgEZnAEBx/zcqcoIAQMRAt3e/O+SAQSIb38EAAABACX+oQV8BbAACwA8ALAJL7AARViwAC8bsQAgPlmwAEVYsAQvG7EEID5ZsABFWLAKLxuxChA+WbECAbAKK1gh2Bv0WbAG0DAxATMDIRMzAzMDIxMhASL32gJs2vfZq3TjPfvxBbD7GgTm+xz91QFfAAABAMUAAAVqBbAAEABHsgUREhESOQCwAEVYsAAvG7EAID5ZsABFWLAJLxuxCSA+WbAARViwAS8bsQEQPlmyDQEJERI5sA0vsQUBsAorWCHYG/RZMDEBAyMTBicmJjcTMwMGFgQ3EwVq/fZrmq3m8BlM9kwQYAEGznwFsPpQAj4sBALz3AHJ/jaAggYqAqgAAQArAAAHYwWwAAsASQCwAEVYsAAvG7EAID5ZsABFWLADLxuxAyA+WbAARViwBy8bsQcgPlmwAEVYsAkvG7EJED5ZsQEBsAorWCHYG/RZsAXQsAbQMDEBAyETMwMhEzMDIRMCH9kBrdn32gGq2vb9+cX8BbD7GgTm+xoE5vpQBbAAAAEAK/6iB2MFsAAPAFUAsAsvsABFWLAALxuxACA+WbAARViwAy8bsQMgPlmwAEVYsAcvG7EHID5ZsABFWLANLxuxDRA+WbEBAbAKK1gh2Bv0WbAF0LAG0LAJ0LAK0LAC0DAxAQMhEzMDIRMzAzMDIxMhEwIf2QGt2ffaAara9tulctk9+gz8BbD7GgTm+xoE5vsS/eABXgWwAAACAIkAAAWdBbAADAAVAGGyARYXERI5sAEQsA3QALAARViwAC8bsQAgPlmwAEVYsAkvG7EJED5ZsgMACRESObADL7AAELELAbAKK1gh2Bv0WbAJELEPAbAKK1gh2Bv0WbADELEVAbAKK1gh2Bv0WTAxEyEDFxYWBwYEIyETIQEDBTI2NzYmJ6sCdWD94f8PEP7H9v3f2/6AAhRWARKArw8NbW0FsP3TAQHsxtH+BO39y/4SAZF3Z3sEAAADAC4AAAa9BbAACgATABcAcrIGGBkREjmwBhCwD9CwBhCwFdAAsABFWLAJLxuxCSA+WbAARViwFi8bsRYgPlmwAEVYsAcvG7EHED5ZsABFWLAULxuxFBA+WbIBCQcREjmwAS+wBxCxDQGwCitYIdgb9FmwARCxEwGwCitYIdgb9FkwMQEXFhYHBgQjIRMzAwMFNjY3NiYnASMTMwHB/uP9ERD+x/T93f33hFYBEoGuDw5wawL19v32A4MBAe/E0P4FsP0I/hICApB3aXkE/UkFsAACACMAAASUBbAACgATAFKyDRQVERI5sA0QsAfQALAARViwCS8bsQkgPlmwAEVYsAcvG7EHED5ZsgEJBxESObABL7AHELENAbAKK1gh2Bv0WbABELETAbAKK1gh2Bv0WTAxARcWFgcGBCMhEzMDAwU2Njc2JicBtv7j/REQ/sf0/d3994RWARKBrg8OcGsDgwEB78TQ/gWw/Qj+EgICkHdpeQQAAAEAT//pBPcFyAAgAIiyDiEiERI5ALAARViwFC8bsRQgPlmwAEVYsB0vG7EdED5ZsQMBsAorWCHYG/RZsggUHRESOXywCC8YsjAIAV2ycggBXbLiCAFdskIIAV2yYAgBXbLQCAFdsgAIAXGxBwGwCitYIdgb9FmwFBCxDQGwCitYIdgb9FmyERQdERI5siAdFBESOTAxARYWFxY2NwU3ITc2JicmBgcHNgAXHgIXFgICBCcmACcBQwd+fJTOOv4FJAHuCAODfoqwI/UoAUvrjtR5CQZHvf7sp97+/QgB2puIAwXW7AHMZJ+2BASalAHmARQEA37xmHj+c/7RnQMEAQXlAAIAMv/nBvkFxwAYACgAhrINKSoREjmwDRCwJNAAsABFWLAILxuxCCA+WbAARViwEC8bsRAgPlmwAEVYsAYvG7EGED5ZsABFWLAALxuxABA+WbIKCAYREjl8sAovGLIfCgFxtGAKcAoCXbEEAbAKK1gh2Bv0WbAQELEeAbAKK1gh2Bv0WbAAELElAbAKK1gh2Bv0WTAxBSYAETcjAyMTMwMzNhI3NhcWABcWAgIHBhM3NiYmJyYGAgcGFhcWEjcEL+P+/AG4afb99nKsJ++ub3zYAQEMBjmLZ7LaCQYyd1t+w3kKCoSEreEjFAUBPAEJJ/2jBbD9ceIBVEQsAwT+3vd8/r/+81qcAxhqbblhAwSW/s7nt9IEBQEO9QAAAv+wAAAE0wWxAA4AFwBjshIYGRESObASELAL0ACwAEVYsA0vG7ENID5ZsABFWLAALxuxABA+WbAARViwAy8bsQMQPlmyEw0AERI5sBMvsQEBsAorWCHYG/RZsgUTARESObANELEUAbAKK1gh2Bv0WTAxIRMhASEBJiY3PgIzBQMBBhYXFxMnIgYC31/+9/6Q/usBsWdYCguX/p4B6f39yg9rc/FZ14atAiD94AJvQcV3jc1rAfpQA+FxhwQBAgACiwACAEP/5gRhBhMAGwArAGSyGCwtERI5sBgQsB3QALAARViwEy8bsRMiPlmwAEVYsAYvG7EGED5ZsgATBhESObAAL7IXABMREjmyERMXERI5shoABhESObEcAbAKK1gh2Bv0WbAGELElAbAKK1gh2Bv0WTAxARYSBwYAJy4CNzc1NxIANzc2NzMOAgQGBzYXJgYGBwYXFhYXFjY3NzYmAp66zxIW/tHgi8dbEAIKMQEj516TFcEIUpr+179BnoBPfU0LBwQHYlh1oBUCDWcD/gT+7Nf3/s4EBI75lhUDSwFQAY4yEh1mZIBTOaSXmMQCTYxbSjpkcwMDsKAVi6AAAAMAIgAABBYEOgAOABcAHwCRshkgIRESObAZELAO0LAZELAR0ACwAEVYsAEvG7EBHD5ZsABFWLAALxuxABA+WbIYAAEREjmwGC+yjBgBXbRfGG8YAnG07xj/GAJxtL8YzxgCXbQcGCwYAnGyWhgBXbEPB7AKK1gh2Bv0WbIIDxgREjmwABCxEAGwCitYIdgb9FmwARCxHwGwCitYIdgb9FkwMTMTBRYXFgcGBxYWBwYGBwMDFzY2NzYmJycXMjc2JicnIrwBnpRipAkK0FRhAgXpzMwv9GFvCQpHUvK21BYJTWTLBDoBBCtJqqBRGXpWlKYDAc3+8wEDSkE5QwOvAYI6PwMBAAABABgAAAOJBDoABQAsALAARViwBC8bsQQcPlmwAEVYsAIvG7ECED5ZsAQQsQABsAorWCHYG/RZMDEBIQMjEyEDZv45mu28ArUDdvyKBDoAAAL/hf6+BGQEOgAOABQAXbISFRYREjmwEhCwBNAAsAwvsABFWLAELxuxBBw+WbAARViwCi8bsQoQPlmxAAGwCitYIdgb9FmwBtCwB9CwDBCwCdCwBxCwD9CwENCwBBCxEQGwCitYIdgb9FkwMTc2NjcTIQMzAyMTIQMjEwUlEyEDAjFqgR9OAtuakVrsOP1hOPFbAWgBlXb++TY/v2HvqgGB/Ij9/AFC/r4CAwMEAqf+9f70AAH/rQAABnIEOgAVAIMAsABFWLAJLxuxCRw+WbAARViwDS8bsQ0cPlmwAEVYsBEvG7ERHD5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmwAEVYsBQvG7EUED5ZshARAhESObAQL7KPEAFdsQABsAorWCHYG/RZsATQsggQABESObAQELAL0LITABAREjkwMQEjAyMTIwEhAQMhEzMTMwMzASEBEyED/4NM7Uxz/sL+zwHI6wETpHRK7UpnATkBMP5T+P7oAbP+TQGz/k0CPwH7/lcBqf5XAan98P3WAAEAFv/pA7wEUAApAKayGSorERI5ALAARViwJi8bsSYcPlmwAEVYsAovG7EKED5ZshkmChESObAZL7TvGf8ZAnG0HxkvGQJxsr8ZAXG0XxlvGQJxtL8ZzxkCXbKMGQFdsloZAV2xFgewCitYIdgb9FmyAxYZERI5sAoQsREBsAorWCHYG/RZsg4WERESObQDDhMOAl2wJhCxHwGwCitYIdgb9FmyIhkfERI5tAwiHCICXTAxAQYGBxYWBw4CJyYmNzMGFjMyNjc2Jyc3FzY2NzYmIyYGBwc2NhceAgO2BV5mSEUEBXzXfbDbBOkCYlBXeQsVpbgfnFVnCQdPREtzD+0M+bhzsFwDGkp2MyF9T2mXUQMCvZdFVlVIhwUBrwECSUQ/RwJNQQGUtQICSokAAQAZAAAESAQ6AAkARQCwAEVYsAAvG7EAHD5ZsABFWLAHLxuxBxw+WbAARViwAi8bsQIQPlmwAEVYsAUvG7EFED5ZsgQHAhESObIJBwIREjkwMQEzAyMTASMTMwMDVPS87Xz98vS87XwEOvvGAsL9PgQ6/T4AAAEAIgAABIEEOgAMAGkAsABFWLAELxuxBBw+WbAARViwCC8bsQgcPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIGAgQREjl8sAYvGLTTBuMGAl20QwZTBgJdshMGAXGxAQGwCitYIdgb9FmyCgEGERI5MDEBIwMjEzMDMwEhAQEhAdh+S+287UteAW0BNv4fATT+3QGs/lQEOv5QAbD97v3YAAAB/7///wRJBDoAEABPsgQREhESOQCwAEVYsAAvG7EAHD5ZsABFWLABLxuxARA+WbAARViwCC8bsQgQPlmwABCxAwGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FkwMQEDIxMhAwYGJyM3NzY2NzcTBEm77pr+2mM1zJ9SFiRbcx8PYAQ6+8YDdv485s0ByQMIl69SAc4AAQAiAAAFmgQ6AAwAWQCwAEVYsAEvG7EBHD5ZsABFWLALLxuxCxw+WbAARViwAy8bsQMQPlmwAEVYsAYvG7EGED5ZsABFWLAJLxuxCRA+WbIACwMREjmyBQsDERI5sggLAxESOTAxAQEhAyMTASMDAyMTIQKvAb0BLrztev5soqaA7bwBJQEtAw37xgK6/UYC2v0mBDoAAQAZAAAERwQ6AAsAhgCwAEVYsAYvG7EGHD5ZsABFWLAKLxuxChw+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsgkKABESObAJL7S/Cc8JAl20XwlvCQJxtO8J/wkCcbJfCQFytC8JPwkCcrK/CQFxtB8JLwkCcbKPCQFdtI8JnwkCcrECAbAKK1gh2Bv0WTAxISMTIQMjEzMDIRMzA4vuTP5qTO687k8Bl07uAbX+SwQ6/j0BwwAAAQAZAAAESAQ6AAcAOQCwAEVYsAYvG7EGHD5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmwBhCxAgGwCitYIdgb9FkwMSEjEyEDIxMhA4zumv5pmu68A3MDdvyKBDoAAQBTAAAECAQ6AAcAMgCwAEVYsAYvG7EGHD5ZsABFWLACLxuxAhA+WbAGELEAAbAKK1gh2Bv0WbAE0LAF0DAxASEDIxMhNyED5v6sm+2a/q8iA5MDefyHA3nBAAADAD3+YAVRBgAAIQAsADgAfrITOToREjmwExCwKdCwExCwNNAAsAMvsABFWLAALxuxABw+WbAARViwBy8bsQccPlmwAEVYsBQvG7EUEj5ZsABFWLAYLxuxGBA+WbAARViwES8bsREQPlmwABCxNgGwCitYIdgb9FmwJtCwGBCxMQGwCitYIdgb9FmwK9AwMQEWFxMzAzYXFhYHBgcHDgInJicDIxMGIyImJyY3NzYSNgE2JyYnJgcDFjMyAQYXFhcWNxMmIyYDAhhERVjtWkZImJ8BAQYFF4S8cU9IUu1SPkaSoQMBBgYagb8CuQkBBZAjMYMnJub9BAkDCogYN4QkIdc7BFACHQHP/i0hAgLx0UA4JKPwcgMBIP5VAacZ2bg8Nyu0AQR+/cJbOdkHAgz9NwsBR1cwtAcBCALMCwT+mQAAAQAZ/r8ESAQ6AAsAPACwCC+wAEVYsAAvG7EAHD5ZsABFWLAELxuxBBw+WbAARViwCi8bsQoQPlmxAgGwCitYIdgb9FmwBtAwMRMzAyETMwMzAyMTIdXumwGYmu6bkG3ZOPzqBDr8iAN4/Ij9/QFBAAEAcAAABCAEOwASAEmyDhMUERI5ALAARViwCC8bsQgcPlmwAEVYsBEvG7ERHD5ZsABFWLAALxuxABA+WbIOEQAREjl8sA4vGLEEAbAKK1gh2Bv0WTAxISMTBiMmJjcTMwMGFxYXFjcTMwNk7UZbYcLPEzXuNgYFDJJTcmHtAWsWAty8AUz+szAmeQYDFwINAAEAGQAABioEOgALAEkAsABFWLAALxuxABw+WbAARViwAy8bsQMcPlmwAEVYsAcvG7EHHD5ZsABFWLAJLxuxCRA+WbEBAbAKK1gh2Bv0WbAF0LAG0DAxAQMhEzMDIRMzAyETAcObAUab7ZoBR5rtvPqrvAQ6/IgDePyIA3j7xgQ6AAABABL+vwY8BDoADwBMALAML7AARViwAC8bsQAcPlmwAEVYsAMvG7EDHD5ZsABFWLAHLxuxBxw+WbAARViwDS8bsQ0QPlmxAQGwCitYIdgb9FmwBdCwCdAwMQEDIRMzAyETMwMzAyMTIRMBu5sBR5rtmgFHm+yatG3ZOfrjuwQ6/IgDePyIA3j8iP39AUEEOgACAE8AAASmBDoADAAVAGGyDBYXERI5sAwQsA3QALAARViwCy8bsQscPlmwAEVYsAcvG7EHED5ZsgELBxESObABL7ALELEJAbAKK1gh2Bv0WbAHELEPAbAKK1gh2Bv0WbABELEVAbAKK1gh2Bv0WTAxARcWFgcGBCMhEyE3IQMDFzY2NzYmJwJR1rDPCQv+/Mv+IZr+0SICHF092Fx8DQtMTALiAQTCoanRA3bE/eX+owECXlNNWQQAAwAiAAAF8QQ6AAoAEwAXAG+yAhgZERI5sAIQsBHQsAIQsBXQALAARViwCS8bsQkcPlmwAEVYsBYvG7EWHD5ZsABFWLAHLxuxBxA+WbAARViwFC8bsRQQPlmyAQcJERI5sAEvsQsBsAorWCHYG/RZsAcQsQ0BsAorWCHYG/RZMDEBFxYWBwYEIyETMwMDFzY2NzYmJwEjEzMBj9awzwkL/vzL/iG87V092Fx8DQtNSwLU7bztAuIBBMKhqdEEOv3l/qMBAl5TTVkE/eIEOgACACIAAAPkBDoACgATAE+yDRQVERI5sA0QsAfQALAARViwCS8bsQkcPlmwAEVYsAcvG7EHED5ZsgEHCRESObABL7ELAbAKK1gh2Bv0WbAHELENAbAKK1gh2Bv0WTAxARcWFgcGBCMhEzMDAxc2Njc2JicBj9awzwkL/vzL/iG87V092Fx8DQtNSwLiAQTCoanRBDr95f6jAQJeU01ZBAAAAQAj/+gD1ARQAB8Ad7IAICEREjkAsABFWLAILxuxCBw+WbAARViwES8bsREQPlmwCBCxAAGwCitYIdgb9FmyHAgRERI5fLAcLxiyUxwBXbJAHAFdsgMcABESObEbB7AKK1gh2Bv0WbARELEYAbAKK1gh2Bv0WbIVGxgREjmyUxUBXTAxASYGBwc+AhceAgcHBgIGJyYmNxcGFhcWEwU3ITYmAixUfRDfCYPOcoi9Vw8DEpbujqvQBt8FV1HHXP6uHgFDCF0DjAJpUQFssGEBBIz4lhuf/v6NBATgswFbdgQGASoBqH6TAAIAJP/pBhAEUwAXACcAjrImKCkREjmwJhCwD9AAsABFWLAWLxuxFhw+WbAARViwBC8bsQQcPlmwAEVYsBQvG7EUED5ZsABFWLAOLxuxDhA+WbIAFhQREjmwAC+0HwAvAAJxsr8AAXGyjwABXbJfAAFysRMBsAorWCHYG/RZsA4QsR0BsAorWCHYG/RZsAQQsSQBsAorWCHYG/RZMDEBMzYkFx4CBwcGAgcGJy4CNwcDIxMzAQYXFhYXFjY3NzQmJyYGBwGBu0cBIcCLxF0QAha0jWR6fsVjCMtP7bztAU0GAwNiWneqGQdhYHmnGQKH2/EEBIz9mBau/u8/LQMDfdeCAf48BDr90Tc8aYADBcGsYYSPBAPBrwAC/7YAAAQWBDsADQAWAGOyFBcYERI5sBQQsATQALAARViwAC8bsQAcPlmwAEVYsAEvG7EBED5ZsABFWLAFLxuxBRA+WbISAAEREjmwEi+xAwGwCitYIdgb9FmyBwMSERI5sAAQsRMBsAorWCHYG/RZMDEBAyMTIwEhASYmNzYkMwMGFhcXEycGBgQWvOxF0/7a/vwBTlBNBQoBCMXrC05E8zbLXH8EOvvGAY3+cwG6LZZbocL+l0BOAgEBOAECXwABAA3+RwP5BgAAIwCIsgMkJRESOQCwIS+wAEVYsAQvG7EEHD5ZsABFWLALLxuxCxI+WbAARViwGi8bsRoQPlm2nyGvIb8hA12yLyEBXbIPIQFdsiMaIRESObAjL7Af0LEcB7AKK1gh2Bv0WbAB0LICGgQREjmwCxCxEAGwCitYIdgb9FmwBBCxFwGwCitYIdgb9FkwMQEhBzYXFhYHAwYGIyYnNxYzMjcTNicmJyYHAyMTIzczNzMHIQLM/v4zh6uZlxN6GMmlQ0IfNSt/IHwFBA2DhWaH7c+ZHpkd7h4BBASt6o4EAtPA/Qm1xQIQwRDCAu8rJXoDAoT8+gStq6ioAAABADv/6AP2BFQAHwBlshggIRESOQCwAEVYsBAvG7EQHD5ZsABFWLAILxuxCBA+WbEAAbAKK1gh2Bv0WbIaEAgREjl8sBovGLEcB7AKK1gh2Bv0WbIDABwREjmwEBCxFwGwCitYIdgb9FmyFBoXERI5MDElFjY3Nw4CJy4CNzcSABcWFgcjNCYnJgYHJQchBhYB5VaDFN8LhNVxjL9WEAIdATDesM4C3VxTaJMtAVge/rcNX60CZ1MBa69kAwSK95gUAQIBNgYE4bRhcgQDjJoBqICTAAL/vQAABkYEOgAXAB8AfbIKICEREjmwChCwGdAAsABFWLAALxuxABw+WbAARViwCC8bsQgQPlmwAEVYsA8vG7EPED5ZsgIACBESObACL7AAELEKAbAKK1gh2Bv0WbAPELERAbAKK1gh2Bv0WbAIELEaAbAKK1gh2Bv0WbACELEfAbAKK1gh2Bv0WTAxAQMXFhYHBgQjIRMhAwIGByM3NzY2NzcTAQMXNjY3NicEMEHWss8JC/8AzP4hmv7xSzfJpmQVJVxvHhJgAns32Fl9DRKjBDr+hwEFt5mlxgN2/qv+1fEFyQMIlp1lAc79xf7BAQJcT4gKAAIAGQAABlwEOgASABsAhbIBHB0REjmwARCwE9AAsABFWLACLxuxAhw+WbAARViwES8bsREcPlmwAEVYsAsvG7ELED5ZsABFWLAPLxuxDxA+WbIBEQsREjmwAS+yBBELERI5sAQvsAEQsQ0BsAorWCHYG/RZsAQQsRMBsAorWCHYG/RZsAsQsRQBsAorWCHYG/RZMDEBIRMzAxcWFgcGBCMhEyEDIxMzAQMXNjY3NiYnAXsBl0fuQtayzwkJ/v/N/iFT/mpT7rzuAiE42F17CwpKUQKfAZv+hwEFt5mkxwHd/iMEOv3F/sEBAl9MQE0FAAEADQAAA/kGAAAaAHWyAxscERI5ALAYL7AARViwBC8bsQQcPlmwAEVYsBEvG7ERED5ZsABFWLAJLxuxCRA+WbK/GAFdsi8YAV2yDxgBXbIaERgREjmwGi+wFtCxEwewCitYIdgb9FmwAdCyAgQRERI5sAQQsQ4BsAorWCHYG/RZMDEBIQc2FxYWBwMjEzYnJicmBwMjEyM3MzczByEC4f7kLoesmpUTdO12BQMNg4Roh+3Qhx6HHO4fARkEtfKOBALWvf1IArsrJXoDAoT8+gS1qqGhAAABABn+mgRIBDoACwBGALAIL7AARViwAC8bsQAcPlmwAEVYsAMvG7EDHD5ZsABFWLAFLxuxBRA+WbAARViwCS8bsQkQPlmxAQGwCitYIdgb9FkwMQEDIRMzAyEDIxMhEwHDmwGYmu68/r8+7j/+u7wEOvyIA3j7xv6aAWYEOgABAGD/5gcuBbAAIwBhsgYkJRESOQCwAEVYsAAvG7EAID5ZsABFWLANLxuxDSA+WbAARViwGC8bsRggPlmwAEVYsAQvG7EEED5ZsABFWLAJLxuxCRA+WbIHAAQREjmxFAGwCitYIdgb9FmwH9AwMQEDBgQnJiYnBicmJjcTMwMGFxYWFxY2NxMzAwYXFhYXFjY3Ewcurx3+785soCWO2rvPFa73rwUDBUtDZIkUr/uvBQUHUEVfgRWvBbD7/dD3BAJXTKkEBPrEBAT7+yorSFcDBIN4BAX7+y0rS1EDA397BAUAAQBE/+YGHgQ6ACIAXbIXIyQREjkAsABFWLAALxuxABw+WbAARViwDS8bsQ0cPlmwAEVYsBcvG7EXHD5ZsABFWLAJLxuxCRA+WbAE0LAEL7IHFwkREjmwCRCxEwGwCitYIdgb9FmwHtAwMQEDBgYnJiYnBicmJjcTMwMHFBYXFjY3EzMDBhcWFhcWNjcTBh5zHPK3W44igrqpshNz7XIEODhTdBNz7nIEAgJCO09oEHMEOv1SxOIEAkpCkQQE5rYCr/1QR0NRAwVzcAKw/VAmJkNOAQN2awKwAAACACH//APpBhgAEgAbAHSyFRwdERI5sBUQsAPQALAARViwDy8bsQ8iPlmwAEVYsAkvG7EJED5ZshIPCRESObASL7EAB7AKK1gh2Bv0WbICDwkREjmwAi+wABCwC9CwEhCwDdCwAhCxEwGwCitYIdgb9FmwCRCxFAGwCitYIdgb9FkwMQEhAxcWFgcGBCchEyM3MxMzAyEBAxc2Njc2JicC4/7nNse51QwN/vTC/h+8qR6oNu02ARr+ckPZYHwLCkZPBDr+yQEBzKm22gQEOqsBM/7N/Vv+ggICcFZMZgUAAAEAK//pBt8FygAmAIyyHCcoERI5ALAARViwJS8bsSUgPlmwAEVYsAQvG7EEID5ZsABFWLAjLxuxIxA+WbAARViwGy8bsRsQPlmyACUjERI5sAAvsgcEGxESObAEELELAbAKK1gh2Bv0WbAAELAO0LAAELEiAbAKK1gh2Bv0WbAR0LAbELEVAbAKK1gh2Bv0WbIYGwQREjkwMQEXEgAXFhIXIyYmJyYGByUHIQcGFhcEEzcGACcuAicmNwcDIxMzAbSmUAFd+tj7C/UFeXeV0jwB4iL+KwoNfX8BF0/2J/6u8InReAYEDrVx9vz3A08BATIBSgUE/vrsnIsDBc/hAcNkqsIECwEtAeT+8gQDfuqSUVIB/XQFsAABABn/6AWkBFMAJgCYsg0nKBESOQCwAEVYsCYvG7EmHD5ZsABFWLAELxuxBBw+WbAARViwIy8bsSMQPlmwAEVYsB4vG7EeED5Zsg4eBBESOXywDi8YslIOAV2yQA4BXbAB0LAEELELAbAKK1gh2Bv0WbIIDgsREjmwDhCxDwewCitYIdgb9FmwHhCxFgGwCitYIdgb9FmyGRYPERI5sA8QsCHQMDEBMzYkFxYWByM0JicmAyUHIQYXFhcWFxY2NzcOAicmAjcHAyMTMwFzjkUBHMOv0ALdWVbRVgF5Hv6WBQULSiU6WIET4AuI03DF4RKhTu687gJx7fUFBOC1X3QEBv7eAasyMmwwGAECaVEBbLBiAwQBEccB/joEOgAAAv+uAAAEhAWwAAsADgBXALAARViwCC8bsQggPlmwAEVYsAIvG7ECED5ZsABFWLAGLxuxBhA+WbAARViwCi8bsQoQPlmyDQgCERI5sA0vsQABsAorWCHYG/RZsATQsg4IAhESOTAxASMDIxMjAyEBMxMjASEDA059StxKadX+9wLz7/T2/lwBSEsBqv5WAar+VgWw+lACaAH1AAL/nAAAA7gEOgALABAAVwCwAEVYsAgvG7EIHD5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmwAEVYsAovG7EKED5Zsg0CCBESObANL7EBAbAKK1gh2Bv0WbAE0LIPCAIREjkwMQEjAyMTIwMjATMTIwEzAycHAp9jML4xUpb7Aljh4+L+s/A2BS4BF/7pARf+6QQ6+8YBxAETVG0AAgA+AAAGjQWwABMAFgB9ALAARViwAi8bsQIgPlmwAEVYsBIvG7ESID5ZsABFWLAELxuxBBA+WbAARViwCC8bsQgQPlmwAEVYsAwvG7EMED5ZsABFWLAQLxuxEBA+WbIVAgQREjmwFS+wANCwFRCxBgGwCitYIdgb9FmwCtCwBhCwDtCyFgIEERI5MDEBIQEzEyMDIwMjEyMDIRMhAyMTMwEhAwGfAVgBsvD09kB9St1KaNX+9t7+60v2/fYBwgFITAJnA0n6UAGq/lYBqv5WAav+VQWw/LgB9gACADAAAAV9BDoAEwAYAIAAsABFWLACLxuxAhw+WbAARViwEi8bsRIcPlmwAEVYsAQvG7EEED5ZsABFWLAILxuxCBA+WbAARViwDC8bsQwQPlmwAEVYsBAvG7EQED5ZsgAQEhESObAAL7AB0LEOAbAKK1gh2Bv0WbAL0LAH0LABELAU0LAV0LIXEgQREjkwMQEzATMTIwMjAyMTIwMjEyMDIxMzATMDJwcBa/ABXuHj5zZdMr4xUpb7m64x7bvuAXXwNgUuAcQCdvvGARf+6QEX/ukBF/7pBDr9igETVG0AAAIAFAAABmQFsAAbAB4AebIMHyAREjmwDBCwHNAAsABFWLAaLxuxGiA+WbAARViwBC8bsQQQPlmwAEVYsAwvG7EMED5ZsABFWLATLxuxExA+WbIYGgQREjmwGC+wANCwGBCxDwGwCitYIdgb9FmwCdCyHBoEERI5sBoQsR0BsAorWCHYG/RZMDEBFhYHAyMTNiYnJwcDIxMnJgYHAyMTNiQlFwMhAQEhBHnZ1Bc59jkQVnxoDGz2aWyFnxY69jkgARsBARH2BMD9JAEs/j4DJATv0f6gAWF5fQUDD/2wAlwCAXOG/poBYOTjAgECiP2MAacAAgAWAAAFKgQ6ABsAHgB1shwfIBESObAcELAU0ACwAEVYsAUvG7EFHD5ZsABFWLAALxuxABA+WbAARViwCy8bsQsQPlmwAEVYsBQvG7EUED5ZsATQsAQvsAfQsAQQsRIBsAorWCHYG/RZsBfQshwFABESObAFELEdAbAKK1gh2Bv0WTAxMzc2NjcDIQEWFgcHIzc2JyYnJwcDIxMnIgYHBwETIRYaHefQsQPX/pSknxQZ7hoGAQaaJAZN7E4mcoQVHAHdwv7gr8zXDgHa/iAQ476pqjQtjQ0CCP5hAaYBc362AmsBIAACADUAAAiZBbAAIQAkAJmyHSUmERI5sB0QsCTQALAARViwBy8bsQcgPlmwAEVYsAsvG7ELID5ZsABFWLAALxuxABA+WbAARViwBS8bsQUQPlmwAEVYsBEvG7ERED5ZsABFWLAaLxuxGhA+WbIJBwAREjmwCS+xHQGwCitYIdgb9FmwA9CwCRCwDdCwHRCwF9CyIgcAERI5sAsQsSMBsAorWCHYG/RZMDEhEzY3BQMjEzMDIQMhARYWBwMjEzYnJicnBwMjEycmBgcDAQEhAkc7F1b+p2v2/fZwAx3+BML+E9nUFzn2OgcGErJnC2z2aW6EnxY7AoABK/49AV+fawP9mgWw/XsChf10BO/R/qABYT0uigYDDf2uAlwCAXOG/poDOgGpAAACACIAAActBDoAIQAkAJuyGyUmERI5sBsQsCTQALAARViwBy8bsQccPlmwAEVYsAsvG7ELHD5ZsABFWLAALxuxABA+WbAARViwBS8bsQUQPlmwAEVYsBEvG7ERED5ZsABFWLAaLxuxGhA+WbAFELAJ0LAJL7AK0LEcAbAKK1gh2Bv0WbAE0LAKELAN0LAcELAX0LIiCwAREjmwCxCxIwGwCitYIdgb9FkwMSE3NjcFAyMTMwMhAyEBFhYHByM3NicmJycHAyMTIwYGBwcBEyECGBwaTf6+Su287VIClrkD1/6VoaAUGe0aBwIHmiMGTexOK3OBFBoB3cL+4KmeZAP+WAQ6/icB2f4gEOK/qao1LJEJAgj+YQGmAXaFqgJrASAAAAL/qv5CBDEHjAAqADMAjrIJNDUREjmwCRCwM9AAsBsvsDAvsABFWLAJLxuxCSA+WbAARViwFS8bsRUQPlmyAAkVERI5sAAvsAkQsQYBsAorWCHYG/RZsAAQsSgBsAorWCHYG/RZsg8oABESObAVELEiAbAKK1gh2Bv0WbIPMAFdsDAQsDLQsDIvsg8yAV2yKzAyERI5sC3QsC0vMDEBMjY3NiYnJTcXHgIHBgUWFgcGBCcnBgcGFwcmJjc2NjMXMjY3NiYnJzcBNzcVASMDNRcBpH2kDgtla/7eI/iH0moIEf72ZmgHD/7V2zWMERCHW3SFBgXGqjRyqQ8OeICZIwGUqtD+zZPpxANNc2pWYwUBxwEBXKl04W0sq3DJ7wIBBWloPpUquXGElwGBbGt5BQHHA6CZBBD+7AEVEAQAAAL/tf5KA8UGIAAlAC4AwrIrLzAREjmwKxCwBNAAsCsvsABFWLAHLxuxBxw+WbAARViwFy8bsRcSPlmwAEVYsBEvG7ERED5ZsgARBxESObAAL7S/AM8AAl20XwBvAAJxtC8APwACcrTvAP8AAnG0HwAvAAJxso8AAV2yvwABcrAHELEEAbAKK1gh2Bv0WbAAELEjB7AKK1gh2Bv0WbIMIwAREjmwERCxHQGwCitYIdgb9FmwKxCwLdCwLS+0Dy0fLQJdsiYrLRESObAo0LAoLzAxATY3NichNxcWFgcGBxYHBgQjIwYHBhcHJiY3NjYzFzI2NzYnIzcBNzcXASMDNRcBhOQXEsL+3iHvzukHCtGsBAX+89YlkxEQf1loggQFv6EwaI0NFOahHgFPqtAB/syT6cMCbgaRdQe5AQGajZ1cRpqerwVqYUKPLrFtf48BUEaGB6kDE5kEEf7tARQRBAADAGL/5wUaBcgAEgAbACQAc7IUJSYREjmwFBCwCdCwFBCwHdAAsABFWLAKLxuxCiA+WbAARViwAC8bsQAQPlmwChCxEwGwCitYIdgb9FmyFgoAERI5fLAWLxiycxYBXbJgFgFdsAAQsRwBsAorWCHYG/RZsBYQsSAHsAorWCHYG/RZMDEFLgInJhI3NiQXFgAXFgICBwYDJgYHJTY3NiYBFjY3BQYVFBYCUI/WeggHOEVgATO92AEBDAY5i2eyGpnaPgKoBwEDhP68mtU+/VgGhhQDg/idcwFDh7vJBAT+3vd8/r/+81qcBQwF3vIBMDWnuvvMBdvvATAzp7YAAAMANv/nBCYEUgARABcAHQBtshgeHxESObAYELAM0LAYELAS0ACwAEVYsAQvG7EEHD5ZsABFWLANLxuxDRA+WbESAbAKK1gh2Bv0WbIaBA0REjl8sBovGLJSGgFdskAaAV2xFQewCitYIdgb9FmwBBCxGAGwCitYIdgb9FkwMRM2EjYXHgIHBwYCBicmAjc3ARYTBQYWEyYDJTYmRhKb85OLx1sQAhSc85LI4QoDAafSYf4OCGXlzWQB8QhoAiCeAQWPBASO/JYWn/7+jAQFARnaKP6iBwEkAYOWAtwH/uABfZgAAAEAqAAABV4FxgAPAEeyAhARERI5ALAARViwBi8bsQYgPlmwAEVYsA8vG7EPID5ZsABFWLAMLxuxDBA+WbIBDA8REjmwBhCxCAGwCitYIdgb9FkwMQEXNwE2NhcXByciBwEjAzMCKgQyAVdLtHYyGRFbPv3i7uf+AYBjdgLtspQCAdcBgfuUBbAAAAEAdwAABEQEUgAQAEeyDRESERI5ALAARViwBS8bsQUcPlmwAEVYsBAvG7EQHD5ZsABFWLANLxuxDRA+WbIBDRAREjmwBRCxCgGwCitYIdgb9FkwMQEXNxMSMzIXByYHIgcBIwM3AakCJL93zzg4JxgSSzf+e86n5wFuYGABwgEiGMEKAm/87gQ6AQAAAgBm/3UFFAYvABQAJgBXshknKBESObAZELAA0ACwAEVYsA0vG7ENID5ZsABFWLADLxuxAxA+WbAA0LANELAK0LANELEXAbAKK1gh2Bv0WbAa0LADELEgAbAKK1gh2Bv0WbAj0DAxBQcnNyYCJzcSACU3FwcWEhcWBwIAEyYnByc3BgIDFRYXNxcHJBM2AqQcwRyxyAQBEgFNARAZwRmvxwUCHDT+xpUFnBXCFqWyDwyYFcIWAQ8+GAx/AYAkAR7iTAFuAcMmcgF0JP7h5niW/uf+qgOh8EBiAWQ1/rL+xULjPWIBYlcBlLYAAgA4/4cENQS1ABMAIwBasgAkJRESObAU0ACwAEVYsAAvG7EAHD5ZsABFWLAKLxuxChA+WbAAELAD0LAKELAN0LAKELEUAbAKK1gh2Bv0WbAAELEcAbAKK1gh2Bv0WbAZ0LAUELAh0DAxATcXBxYSBwcGAAcHJzcmAjc3NhITNjY3NicHJzcGBgcGFzcXAjUZtBmmphUCHP76yBi0GKWjFQcj/9RvfQYEbhW0Fm15BwdsF7QERm8Bbyf+288W4P7bHGwBbicBI8sx2gES/JIt7LO4PGEBYzDnsbY/aQEAAwBi/+UG3AdEADEARgBPALOyPVBRERI5sD0QsAnQsD0QsEfQALAARViwFC8bsRQgPlmwAEVYsAcvG7EHED5ZsBQQsADQsAAvsgoHFBESObAHELAM0LAUELEVAbAKK1gh2Bv0WbAHELEpAbAKK1gh2Bv0WbAe0LIiFAcREjmwFRCwMdCwFBCwPtCwPi+wM9CwMy+xMgiwCitYIdgb9FmwMxCwOdCwOS+xQgiwCitYIdgb9FmwPhCwS9CwSy+wT9CwTy8wMQEWEgcDBgAnJiYnBicuAjcTNiQ3BwYGBwMGFxYWFxY2NxMzAwYXFhYXFjY3EzY1JicTByMuAyMiBgcHJzc2NhceAwE2Njc3FwcGBwVYvccXVR7+78lnoymS0HyzUg9VHwER1RdhgBVVBQECSURmiRQ/7z8FBQhVR158FlYGBIqxCR47cXFtNzNACQKDAgiCbDBatWL97SsnCBKlDRGeBbEJ/vvN/e3c/v8EAlNJowYCedqDAhPe+gTMAoyC/ewqLlNfBAWGewF//nwvLElRAwOKiAIVLS6mCgHmiAInLyQ4MRMBJmxxAgEXSRn+ijE+JV4BZm9bAAMAS//lBcMF6AAwAEUATQCzsjpOTxESObA6ELAK0LA6ELBG0ACwAEVYsBUvG7EVHD5ZsABFWLANLxuxDRA+WbAVELAA0LAAL7ANELAI0LILDRUREjmwFRCxFgGwCitYIdgb9FmwDRCxHQGwCitYIdgb9FmyIRUNERI5sCjQsBYQsDDQsBUQsD3QsD0vsDLQsDIvsTEIsAorWCHYG/RZsDIQsDjQsDgvsUEIsAorWCHYG/RZsD0QsEnQsEkvsE3QsE0vMDEBHgIHBwYGJyYmJwYnJiY3EzY3NjcHBg8CBhYXFjY3NzMHBhcWFhcWNjcTNzYmJwEHIy4DIyIGBwcnNzY2Fx4DATY3NxcHBgcEa3GeSQ0hHeyyWY0jgLCorhQkIYx3rxWpJyQEBDc2UG8RH+YdBAMDRTtHYhEmBAI7OgEDCSE6bXhrNzJACQKEAgiCbDBav1n98EsPEaYNEKAESAZvxHzu0+0FAktElAQE8b4BA9hvXgPDB+X9SEhfAgV3bMfHJiZCUAEDenUBDD9FVQYB6ogCJTIjODETASZscQIBF00V/ohVP14BZW9cAAACAGD/5ActBxEAIwArAIeyBiwtERI5sAYQsCrQALAARViwAC8bsQAgPlmwAEVYsA0vG7ENID5ZsABFWLAYLxuxGCA+WbAARViwCS8bsQkQPlmwBNCwBC+yBwAJERI5sAkQsRQBsAorWCHYG/RZsB/QsAAQsCrQsCovsCjQsCgvsSYIsAorWCHYG/RZsCgQsCvQsCsvMDEBAwYEJyYmJwYnJiY3EzMDBhcWFhcWNjcTMwMGFxYWFxY2NxMlNyEHIQcjNwctrx3+7s1poiaP2b/KFK73rwUDBUtDZIkUr/uvBQUHUEVdgxWv/H0WAz0V/rEXsRcFsPv90PkEAldOqgQG+8IEBPv7KitKVQMEg3gEBfv7LStLUQMDfnwEBed6en9/AAIARP/mBh4FsQAiACoAi7IXKywREjmwFxCwKdAAsABFWLAALxuxABw+WbAARViwDS8bsQ0cPlmwAEVYsBcvG7EXHD5ZsABFWLAELxuxBBA+WbAARViwCS8bsQkQPlmyBxcEERI5sRMBsAorWCHYG/RZsB7QsBcQsCnQsCkvsCrQsCovsSQIsAorWCHYG/RZsCoQsCfQsCcvMDEBAwYGJyYmJwYnJiY3EzMDBxQWFxY2NxMzAwYXFhYXFjY3EyU3IQchByM3Bh5zHPO2W44ig7mpshNz7XIEODhTcxN07nIEAgJCO09oEHP84hYDIRP+vhexFgQ6/VLG4AQCSkKSBATptAKv/VBHQ1EDA3BrArb9UCYmQ04BA3ZrArD8e3t/fwAAAQBW/owE6gXKABkAVbIAGhsREjkAsABFWLAKLxuxCiA+WbAARViwAC8bsQAYPlmwAEVYsAIvG7ECED5ZsAoQsA7QsAoQsRABsAorWCHYG/RZsAIQsRgBsAorWCHYG/RZMDEBIxMmJgI3ExIAFxYSBycSJyYGBwMHBhYXFwJ69UV9rUoTKi0BXfLk9wz2EviPyyAtAwN0aqf+jAFoGqkBApIBDAEfAVQFBP735gEBIAcD4sj+4UCRqQQBAAABAEX+iQP8BFMAGQBVsgAaGxESOQCwAEVYsAovG7EKHD5ZsABFWLAALxuxABg+WbAARViwAi8bsQIQPlmwChCwDtCwChCxEQGwCitYIdgb9FmwAhCxGAGwCitYIdgb9FkwMQEjEyYCNzcSNzYXFhYHJzYmJyYGBwcGFhcXAiTtRZucFgEdmZnWrM8G3wVWUnGjFgoHVlid/okBbCcBIMwLAQaenAUE47IBW3cEBcKjanyTBAIAAAEAOAAABLoFPgATABMAsA4vsABFWLAELxuxBBA+WTAxARcHJwMjASc3FwEnNxcTNwEFBycCMPtU/em5ASb7VP4BC/1W/e23/tUBAFn5Abisdar+vwGXq3WrAXOrd6sBRwH+Yqt0qQAAAfzmBKL/4gX9AAcAEgCwAC+xAwawCitYIdgb9FkwMQEHJzchNxcH/aoWrisCEROtJwUgfgHubAHcAAH9DgUW//MGFAASAC0AsAQvsAjQsAgvsQACsAorWCHYG/RZsAQQsA3QsA0vsQ4CsAorWCHYG/RZMDEDFhYHByc3NicmBgQHBzcyPgLkZHMEA4ICBlYqU/7zQUMLSlfRYQYTAmxnKAEUXQQCEGIFAYcTTRcAAf4rBRX/AgZgAAUADACwAS+wBdCwBS8wMQE3MwcXB/4rFrkeJlAF53mkbDsAAAH+PAUX/1sGYAAFAAwAsAMvsADQsAAvMDEBJzc3Mwf+ik5PF7kZBRdOcomPAAAI+kH+wgGeBbEACwAXACMALwA7AEcAUwBfAH8AsD8vsEsvsFcvsDMvsABFWLADLxuxAyA+WbEJCbAKK1gh2Bv0WbA/ELAP0LA/ELFFCbAKK1gh2Bv0WbAV0LBLELAb0LBLELFRCbAKK1gh2Bv0WbAh0LBXELAn0LBXELFdCbAKK1gh2Bv0WbAt0LAzELE5CbAKK1gh2Bv0WTAxATY2FzIWFSc2IyYHATY2MxYWFyc2IyIHAzY2FxYWFyc2IyYHATY2FxYWFyc2IyYHATY2FxYWFyc2IyYHATY2FzIWFSc2IyIHATY2FxYWFyc2IyYHAzY2FxYWFyc2IyYH/Z0Ib1tXbWsFUFUbAZ0Ib1pZawJsBVBSHRIIbltYagJrBVBTHv56CHFXWGoCawVQUh79MAhwW1hqAmsFUFMe/kIIcFtXbWsFT1Qd/o8IbltYagJrBVBTHicIb1pYawJsBVBSHgTzWGYBaVYBZgJm/upXZgFmWAFmZP4HWGYBAWZXAWYCZv33WWYCAWZXAWYCZv7jWWUBAWdXAWYCZgUZWWUBaVYBZmT+B1hmAQFmVwFmAmb991hmAQFmVwFmAmYACPpv/mMBcwXGAAQACQAOABMAGAAdACIAJwAvALAhL7AWL7ASL7ALL7AbL7AmL7AARViwBy8bsQcgPlmwAEVYsAIvG7ECEj5ZMDEFFwMjExMnEzMDATcFByUFByU3BQE3JRcFAQcFJyUTJwM3EwEXEwcD/eQOq2Z9pA6qZn0BqQoBORD+wPuPCv7HEQE/A84DAUo//tD8ZgP+tkABMm0RX0GWArERX0OUOhP+sAFgBKERAVH+of4RCoBaRDwKgFpEAa4SmE6+/I0TmE+/AuQBAVM7/tD85gH+rj0BMAD//wAn/n4FfAclACYA3AAAACcAoQFKAT4BBwAQBFP/xgATALAARViwCC8bsQggPlmwDdwwMQD//wAZ/n4EdgXaACYA8AAAACcAoQCQ//MBBwAQA2L/xgATALAARViwCC8bsQgcPlmwDdwwMQAAAgAh//wD6QZiABIAGwB3shUcHRESObAVELAD0ACwAEVYsA0vG7ENID5ZsABFWLARLxuxESA+WbAARViwCS8bsQkQPlmwERCxAAewCitYIdgb9FmyAg0JERI5sAIvsAAQsAvQsAzQsAIQsRMBsAorWCHYG/RZsAkQsRQBsAorWCHYG/RZMDEBIQMXFhYHBgQnIRMjNzM3MwchAQMXNjY3NiYnAwb+51nHudUMDf70wv4f36keqCDtHwEZ/k9D2WB8CwpGTwUF/f4BAcypttoEBQWrsrL8kP6CAgJwVkxmBQACACcAAAUFBbAADgAbAE+yBBwdERI5sAQQsBfQALAARViwAy8bsQMgPlmwAEVYsAEvG7EBED5ZshYDARESObAWL7EAAbAKK1gh2Bv0WbADELEUAbAKK1gh2Bv0WTAxAQMjEwUyBAcGBxcHJwYjATY3NiYnJQMhNjcnNwF8Xvf9AffmAQQTE5RfcWeCqwEbLAsScW3+zFgBGUdOWHICHf3jBbAB+8zDgY1aljYBQ0RDbooEAf4EAheIWQAC/8f+YAQPBFIAFQAmAHCyBScoERI5sAUQsB/QALAARViwDi8bsQ4cPlmwAEVYsAsvG7ELHD5ZsABFWLAILxuxCBI+WbAARViwBS8bsQUQPlmyBw4FERI5sgwOBRESObAOELEZAbAKK1gh2Bv0WbAFELEeAbAKK1gh2Bv0WTAxJRcHJwYnJicDIwE3BzYXFhYXFgcHBgMmJicmBwMWFzI3JzcXNjc2A1RRcU5jZqViYe4BBNkSfKycsQYCBwUjwQJcVYViVS6EO0lRc0Q4EgqCgFl4NgICc/3+BdoBcIcEBNzEQD0k7wGDa34CBH/+HXgCIoNZaGFxSQAAAQAiAAAE3wcQAAkAM7IDCgsREjkAsABFWLAGLxuxBiA+WbAARViwBC8bsQQQPlmwBhCxAgGwCitYIdgb9FkwMQEjByEDIxMhEzMEjgcB/WzZ9/0CnT3mBO0J+xwFsAFgAAABABEAAAPMBXMABwAsALAARViwBC8bsQQcPlmwAEVYsAIvG7ECED5ZsAQQsQABsAorWCHYG/RZMDEBIQMjEyETMwN0/iWa7rwB3DfsA3b8igQ6ATkAAAEALv7EBKwFsAAXAF6yAxgZERI5ALAKL7AARViwFi8bsRYgPlmwAEVYsBQvG7EUED5ZsBYQsQABsAorWCHYG/RZsgMWFBESObADL7AKELELB7AKK1gh2Bv0WbADELESAbAKK1gh2Bv0WTAxASEDMxYWEgcCAAc3NhM2JyYmJyMDIxMhBIj9dUmYqe5rERv+zvwS70cgDQ2Gd7Rt9vwDggTk/l4Ej/79qf77/swGuwYBF4BxbnkE/YgFsAAAAQAR/t8DggQ6ABUATLIPFhcREjkAsAovsABFWLAULxuxFBw+WbAARViwEi8bsRIQPlmwFBCxAAGwCitYIdgb9FmyAxQSERI5sAMvsRABsAorWCHYG/RZMDEBIQcXHgIHBgIHJzY3NiYnJwMjEyEDX/46KECP2WkND/O0QuseDnV1XE/uvAK1A3blAQN51oij/vwws1HUeZEEAf46BDoA////pf6aB+AFsAAmANoAAAAHAlEGggAA////rf6aBnIEOgAmAO4AAAAHAlEFPAAA//8ALv6aBXsFsAAmAiwAAAAHAlEEEAAA//8AIv6aBIEEOgAmAPEAAAAHAlEDWQAAAAEAIwAABYMFsAAUAGIAsABFWLAALxuxACA+WbAARViwDC8bsQwgPlmwAEVYsAIvG7ECED5ZsABFWLAKLxuxChA+WbIPCgwREjmwDy+ynw8BXbEIAbAKK1gh2Bv0WbIBCA8REjmwBdCwDxCwEtAwMQkCIQMnByM3IwMjEzMDMzczAzMBBYP+CAEV/ta2QS6fKVVs9/33a1QtoDMyAX8FsP1O/QICbQHq6f2TBbD9mv7/AAJoAAEAIQAABM0EOgAUAF0AsABFWLANLxuxDRw+WbAARViwFC8bsRQcPlmwAEVYsAovG7EKED5ZsABFWLADLxuxAxA+WbIOCg0REjmwDi+xCQGwCitYIdgb9FmyAQkOERI5sAXQsA4QsBLQMDEBARMhAycHIzcjAyMTMwMzNzMHMwEEzf5q5f7ghi8kmCBTS+y87EtSJJgpIgEWBDr98f3VAawBs7L+VAQ6/lDHyQGyAAEApAAABuMFsAAOAGMAsABFWLAGLxuxBiA+WbAARViwCi8bsQogPlmwAEVYsAIvG7ECED5ZsABFWLANLxuxDRA+WbIIBgIREjmwCC+xAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIwMjEyE3IQMzASEBASEDpq9s9tr+NSMCwGp9AgsBPv2XAYb+6AJw/ZAE7MT9nAJk/Tv9FQABAGwAAAW7BDoADgBtALAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLACLxuxAhA+WbAARViwDS8bsQ0QPlmyCQoCERI5sAkvsi8JAXGyjAkBXbEAAbAKK1gh2Bv0WbAGELEEAbAKK1gh2Bv0WbIMAAkREjkwMQEjAyMTITchAzMBIQEBIQMRfkrtmv52IgJ3TF8BbQE2/h4BNP7eAaz+VAN2xP5QAbD97f3Z//8AJ/6aBYcFsAAmACwAAAAHAlEEaQAA//8AGf6aBGkEOgAmAPQAAAAHAlEDawAAAAEAJwAAB98FsAANAF8AsABFWLACLxuxAiA+WbAARViwDC8bsQwgPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbIBAgYREjmwAS+wAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhEyEHIQMjEyEDIxMzAbECdmkDTyL9qNv2cP2KcPf99wNSAl7D+xMCh/15BbAAAAEAEQAABZIEOgANAGgAsABFWLACLxuxAhw+WbAARViwDC8bsQwcPlmwAEVYsAYvG7EGED5ZsABFWLAKLxuxChA+WbIBDAYREjl8sAEvGLRAAVABAl2wAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhEyEHIQMjEyEDIxMzAWwBl04CQSP+rprtTP5pTO687gJ3AcPE/IoBtf5LBDoAAQAu/sIHhgWwABkAa7IUGhsREjkAsAgvsABFWLAYLxuxGCA+WbAARViwEi8bsRIQPlmwAEVYsBYvG7EWED5ZsgEYEhESObABL7AIELEJB7AKK1gh2Bv0WbABELEQAbAKK1gh2Bv0WbAYELEUAbAKK1gh2Bv0WTAxATMWFhIHAgAHNzYTNicmJicjAyMTIQMjEyEFFm6p7msRG/7O/BLvRyANDYZ3im322f2U2fb8BFkDQASP/v2p/vv+zAa7BgEXgHFueQT9igTk+xwFsAABABH+4wZSBDoAFwBZshAYGRESOQCwBy+wAEVYsBYvG7EWHD5ZsABFWLAQLxuxEBA+WbAARViwFC8bsRQQPlmyARYQERI5sAEvsQ4BsAorWCHYG/RZsBYQsRIBsAorWCHYG/RZMDEBFxYABwYCByc2Njc2JicnAyMTIQMjEyED9mHuAQ0TD/SzQnmEDA9/f41Q7Zn+aZruvANzApQBAv781Kb/ADCyKphjeJMEAf42A3b8igQ6AAIAZf/oBdkFxwArADoAkLIZOzwREjmwGRCwOtAAsABFWLAgLxuxICA+WbAARViwDi8bsQ4gPlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbICBCAREjmwAi+wDhCxDwGwCitYIdgb9FmwBBCxFwGwCitYIdgb9FmwABCxKwGwCitYIdgb9FmwAhCwL9CwIBCxNgGwCitYIdgb9FkwMQUmJwYnLgInJjc3EgA3BwYGAgYXFhYXMjcmEzc2EjYXFhYXFxYHBwIHFhcBFhYXNhM3NjU0JyYDBwYFStKkq6KQ6ZAQCQwaLgE44Bhvmj8JBgyZfzEypSUgGJLGdpG1EwQBByIx209p/gADRT6tLCIKf6s2JAkXB0FJBAJ/6pZXVqsBKwFSBdQCzv6IeDyOpwMI8AEW0aQBCH0DBNG1N0I92v7awg4CAaRamjmNAQDiUzLOBwj+xu89AAACAEv/6gSSBFIAJwAyAJCyGzM0ERI5sBsQsCnQALAARViwHS8bsR0cPlmwAEVYsAwvG7EMHD5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmyAgQdERI5sAIvsAwQsQ0BsAorWCHYG/RZsAQQsRQBsAorWCHYG/RZsAAQsScDsAorWCHYG/RZsAIQsCrQsB0QsTABsAorWCHYG/RZMDEFJicGJyYmAjc3NhI3BwYHBxUWFhczNyY3Nz4CFxYWFxYHBwYHFhcBBhc2PwI0JyYHBE2zh4mBjtBgEQca870WlyYOBWdbFxZfFhMSbZpae5IGAgURIZ45Yf5pEV9rFw8GS28dFAQ0OgICmgEImDvcAQsGyhP+eE1vhQMCqcaOesRcAwTBnjQvftWWCwIBjqdwZaSBV5kDBvYA////w/6aBUcFsAAmADwAAAAHAlEDtgAA////uf6aBBMEOgAmAFwAAAAHAlECwgAAAAEAnf6hBm4FsAAPAFEAsA0vsABFWLAILxuxCCA+WbAARViwAi8bsQIgPlmwAEVYsA4vG7EOED5ZsAIQsQABsAorWCHYG/RZsAXQsA4QsQYBsAorWCHYG/RZsArQMDEBITchByEDIRMzAzMDIxMhAfP+qiMDoyP+qrgCbdn22atz4z778ATsxMT73gTm+xz91QFfAAABAFb+vwTYBDoADwBNALANL7AARViwAy8bsQMcPlmwAEVYsA8vG7EPED5ZsAMQsQQBsAorWCHYG/RZsADQsA8QsQYBsAorWCHYG/RZsAMQsAjQsAYQsArQMDEBIzchByMDIRMzAzMDIxMhAUTuIgKwI9R4AZeb7ZqPbdg4/OoDd8PD/UsDePyI/f0BQQD//wDF/poFagWwACYA4QAAAAcCUQQ8AAD//wBw/poEOQQ7ACYA+QAAAAcCUQM7AAAAAQC5AAAFXAWwABgAULIFGRoREjkAsABFWLAALxuxACA+WbAARViwCy8bsQsgPlmwAEVYsA4vG7EOED5ZsgUOABESObAFL7AI0LAFELEUAbAKK1gh2Bv0WbAR0DAxAQMGFxYXEzMDNjcTMwMjEwYHByM3JiY3EwISSwcFDKk7nzhecHv3/fdrUX8uoC/Y0xdLBbD+NToujREBK/7bCxgCqPpQAj0WDOznDPbPAckAAQCFAAAENAQ7ABUAULIEFhcREjkAsABFWLAKLxuxChw+WbAARViwFC8bsRQcPlmwAEVYsAAvG7EAED5Zsg8UABESObAPL7EGAbAKK1gh2Bv0WbAD0LAPELAS0DAxISMTBwcjNyYmNxMzAwcGFxMzAzcTMwN57kV1HaAfnZsSNuw4BANZNaA1dGDtAWoTi40X26QBTP6yQGsiAQv+7hQCDQAAAQAXAAAEvQWwABEAR7IOEhMREjkAsABFWLABLxuxASA+WbAARViwAC8bsQAQPlmwAEVYsAkvG7EJED5ZsgUBABESObAFL7EOAbAKK1gh2Bv0WTAxMxMzAzYXFhYHAyMTNiYnJgcDF/33a5iv5vAZTPdMEF6DjcV8BbD9wSwEAvXa/jgByX+DAwMq/VkAAAIAYv/qBcEFyAAhACwAZ7IcLS4REjmwHBCwK9AAsABFWLAQLxuxECA+WbAARViwAC8bsQAQPlmyIwAQERI5sCMvsRYBsAorWCHYG/RZsAXQsCMQsAzQsAAQsR0BsAorWCHYG/RZsBAQsSkBsAorWCHYG/RZMDEFJiQCNzcmJjcXBxQXNhIkFxYSFxYHByUHBhcWFhcWNxcGASU3NicmJicmBgcDaLD+93QeDYOBCbACXiW8AQuf0OkFAQsW/LoMDwoOm4Cdwx10/fECWwcLAwV2aIfENxYBpAEhr0gc06UBRHQotAEhmQQE/urqUlGJAThTSnWIAwNIyFMDZQUhQkJwgQMFxs8AAAL/9P/qBIMEUwAcACYAlLINJygREjmwDRCwHtAAsABFWLAOLxuxDhw+WbAARViwAC8bsQAQPlmyIQ4AERI5sCEvtL8hzyECXbRfIW8hAnGyvyEBcbQfIS8hAnGyjyEBXbTvIf8hAnGxEgewCitYIdgb9FmwBNCwIRCwC9CwABCxFwGwCitYIdgb9FmyGQ4AERI5sA4QsR0BsAorWCHYG/RZMDEFLgI3JiY3FwcGFzYkFxYSBwchBhYWFxY3FwYGAyYGBwU3NicmJgJti9BhFGloB6QEA0JJARqzyskeD/1XBy1oSZqAeEPiD16NNQHBBQcFClgUA4jtiSC7lAE4Xy3T6QUF/tnqaFGBTQIFiX1hawOiA32QAhYuLEdSAAABACP+vQVbBbAAGQBgshgaGxESOQCwEC+wAEVYsAQvG7EEID5ZsABFWLAILxuxCCA+WbAARViwAi8bsQIQPlmyBwQCERI5sAcvsRgBsAorWCHYG/RZsgoHGBESObAQELERAbAKK1gh2Bv0WTAxASMDIxMzAzMBIQEWEgcCAAc3NjYSJyYmJycBlQhz9/33amQCDgE8/bfIyBgb/sf8E3GcSA0NhHL9AnL9jgWw/aQCXP2GH/7M4/73/soEwwSJAQF3bXkEAgABACH+5wSABDoAFgBgsgYXGBESOQCwBi+wAEVYsBEvG7ERHD5ZsABFWLAVLxuxFRw+WbAARViwDy8bsQ8QPlmyEw8RERI5sBMvsQ4BsAorWCHYG/RZsgAOExESObAGELEHB7AKK1gh2Bv0WTAxARYWBwYGByc2Njc2JicnAyMTMwMzASECt4+WDg/yskJ1hgwOcm62S+y87EtIAYMBNwJcKuado/cusiWRYm2HBgH+VAQ6/lABsAD////K/n4FfAWwACYA3QAAAAcAEARR/8b///+//n4EdwQ6ACYA8gAAAAcAEANj/8YAAQAu/kYFggWwABQAdrIKFRYREjkAsABFWLAALxuxACA+WbAARViwAy8bsQMgPlmwAEVYsBIvG7ESED5ZsABFWLAILxuxCBI+WbICABIREjl8sAIvGLRgAnACAl20MAJAAgJdsAgQsQ0BsAorWCHYG/RZsAIQsRABsAorWCHYG/RZMDEBAyETMwEGBiciJzcWMzI3EyEDIxMCIG4Cam/3/v4Y1qY3TiM2KYAhb/2Wa/b8BbD9gwJ9+he4yQITxw7EApH9lwWwAAABABH+RwQ/BDoAFABvsgsVFhESOQCwAEVYsAAvG7EAHD5ZsABFWLADLxuxAxw+WbAARViwEi8bsRIQPlmwAEVYsAgvG7EIEj5ZsgIDEhESOXywAi8YtEACUAICXbAIELENAbAKK1gh2Bv0WbACELEQAbAKK1gh2Bv0WTAxAQMhEzMDBgYjIic3FjMyNxMhAyMTAbtPAZdP7cMYzaM7SB49I4AhUv5pTO68BDr+PQHD+4e0xhLBEMIB6f5LBDr//wAn/n4FhwWwACYALAAAAAcAEARe/8b//wAZ/n4EdAQ6ACYA9AAAAAcAEANg/8b//wAn/n4GzgWwACYAMQAAAAcAEAWd/8b//wAi/n4FyAQ6ACYA8wAAAAcAEAS0/8YAAgBI/+gFNwXDABoAJABhshUlJhESObAVELAc0ACwAEVYsAAvG7EAID5ZsABFWLAKLxuxChA+WbIQAAoREjmwEC+wABCxFQGwCitYIdgb9FmwChCxGwGwCitYIdgb9FmwEBCxHgGwCitYIdgb9FkwMQEWBBcWBwcGAgQnJiYCNzcFNicmJicmByc2NhMWNjchBwYXFhYC770BDz0/GRAdyv7WrLPyZBoWA68PChKqi6TRHkDBDJHaQ/1FBw4KEJEFwwKumqDKbsb+vK8EBKoBMMWPAVtTh5cDA0nJKSv6/APL0SJOQ2x3AAEAL//mBJwFsAAbAG2yGRwdERI5ALAARViwAi8bsQIgPlmwAEVYsAwvG7EMED5ZsAIQsQABsAorWCHYG/RZsgQAAhESObIbDAIREjmwGy+xGQewCitYIdgb9FmyBRsZERI5shAMGRESObAMELETAbAKK1gh2Bv0WTAxASE3IQcBFhYHDgInJiY3MwYWFxY2NzYmJyc3A1P9riQDdx3+RaiwDguW+5PI6Aj0BG1ab60QEXSBlyAE5Myu/lUZ76+GyWsEBOy7ZHkCBH9vgYsEAbcAAAH/8P5yBFQEOgAbAGCyCxwdERI5ALAML7AARViwAi8bsQIcPlmxAAGwCitYIdgb9FmyBAACERI5shsMAhESObAbL7EZB7AKK1gh2Bv0WbIFGRsREjmyDwIMERI5sAwQsRMBsAorWCHYG/RZMDEBITchBwEWFgcOAicmJjcXBhYXFjY3NiYnJzcDCf22IwNyHP5FpbUPC5b4ksbnCOwEa19ysRARdoKaIAN2xKb+ShnrsIXIawME67oBZH4CBINwg4oEAbYA//8AM/5GBPwFsAAmALFQAAAmAiauKQAHAlQBLAAA//8ACf5EA9sEOgAmAOxSAAAnAib/if96AAcCVAEC//7////D/kYFRwWwACYAPAAAAAcCVAOmAAD///+5/kYEEwQ6ACYAXAAAAAcCVAKyAAAAAgAwAAAE+AWwAAwAFQBSsgwWFxESObAMELAP0ACwAEVYsAEvG7EBID5ZsABFWLADLxuxAxA+WbIAAQMREjmwAC+wAxCxDQGwCitYIdgb9FmwABCxDgGwCitYIdgb9FkwMQETMwMlLgI3PgIzExMlBgYHBhYXA6Rd9/39+YvSZwsLmf+ZsFr+7oCtDxFvaQObAhX6UAEEc8yEjNVz/S4CBgICj3dvjAQAAgBFAAAGgAWwABgAIQBcshkiIxESObAZELAJ0ACwAEVYsAovG7EKID5ZsABFWLAYLxuxGBA+WbIIChgREjmwCC+wGBCxDAGwCitYIdgb9FmyEgoYERI5sBnQsAgQsRoBsAorWCHYG/RZMDElLgI3PgIzBRMzAxc2NjU0JxcWFxIAIyUTJQYGBwYWFwIIi9JmCwua/ZkBLl322Tt/mhXmEgYQ/t/5/tda/ux9rhEPbmkBBHTLhIzWcgECFfsaAgLm311YAVlb/tb+m8oCBgICjXhwjAQAAAIAR//mBlEGGAAjADIAg7IGMzQREjmwBhCwJNAAsABFWLAHLxuxByI+WbAARViwGi8bsRoQPlmwAEVYsB8vG7EfED5ZsgQHHxESObAEL7IGBx8REjmwGhCxDgGwCitYIdgb9FmyEwcfERI5sh0HHxESObAEELEmAbAKK1gh2Bv0WbAfELEvAbAKK1gh2Bv0WTAxEzYSNhcWFxMzAwYXFhYXFhITNicXFhcWAgQnIiYnBicmJicmASYnJgYHBwYXFhYXFjc3TxWKy4GcWW3tzQMDAzcvjq8HAhLfDgQHi/71qXafHIa/mbIHAwLRN3d8nRUDBgECWlJ+ZQYCB7ABFYYDBHcCRPtOHh83QAMJASsBDWRkAWRj2/6ivQNaWbgEBNO4OwFuYwQCz7EUMzhmcwIEdUUAAQCq/+gFugWwACoAZrIVKywREjkAsABFWLANLxuxDSA+WbAARViwJy8bsScQPlmyBisNERI5sAYvsQMBsAorWCHYG/RZsA0QsQwBsAorWCHYG/RZshQDBhESObAnELEbAbAKK1gh2Bv0WbIgDScREjkwMQE2JicnNxcyNjc2JyU3BRYWBwYGBxYWBwcGFhcWEhM2JxcWFxYCBicmJjcCZAlVV+Ekj5WkDhnm/p0kAS/v9Q8IkZliXwkHBS0tgpoHAhHoDQQHif+nl54IAXtlewUCzQF4dL8JAc0BAdbAb6s+IqR+RjZIAgkBMAEBZGQBZGPd/qS9AgKwmwAAAQBh/+MEzQQ6ACkAY7IlKisREjkAsABFWLAfLxuxHxw+WbAARViwEC8bsRAQPlmxAwGwCitYIdgb9FmyCRAfERI5shgqHxESObAYL7EXAbAKK1gh2Bv0WbAfELEeAbAKK1gh2Bv0WbImFxgREjkwMSUVFhcWNjYnJicXFhcWAgYnJiY3NzYnJzcXNjc2JyU3FxYWBwYGBxYWBwKuAzdJcj0FBBTeEQkScOWVl5EFCQuD8B+lzhQVq/70HPa9zAgFY2tPRgbpITMDBWzVeU9OAU5Omv7WoAEDfHRMcQcCvQEGiYQKAcMBBaaPT3UvGnhSAAABAJL+uQPZBbAAJwBisiQoKRESOQCwGy+wAEVYsAovG7EKID5ZsABFWLAfLxuxHxA+WbIBKAoREjmwAS+xAAGwCitYIdgb9FmwChCxCQGwCitYIdgb9FmyEAABERI5sB8QsRgFsAorWCHYG/RZMDETNxcyNjc2JiclNxcWFgcGBRYWFxYPAjcHBgcnNjcHJicmNzc2JieSIrWOpw4Obmv+2h/45fIPEf76R1QIBAcWA88aKMeDZCyVJQQDChIOXV4CXMMBeXNtcQQBwwEB3sDedR54VDM1dwwEoPecUYdvAS5HLEx9bYAEAAABAIz+qAO5BDoAIwBish8kJRESOQCwGS+wAEVYsAkvG7EJHD5ZsABFWLAdLxuxHRA+WbIBJAkREjmwAS+xAAGwCitYIdgb9FmwCRCxCAGwCitYIdgb9FmyEAABERI5sB0QsRUBsAorWCHYG/RZMDETNxc2NzYmJyU3BRYWBwYGBxYXFgcHNwcGByc2NwcmNzc2JieMH9LWFwpUVP7aHgENvdUKBWVnbg0EBga+GSbIg2somSMGDwlNTAGbswEGkENQAgHBAQWwkFB7MTR7JighAaHxoVGWcQEtToBOTgMAAAH/3v/lB0oFsAAjAGWyIyQlERI5ALAARViwDS8bsQ0gPlmwAEVYsCAvG7EgED5ZsABFWLAFLxuxBRA+WbANELEAAbAKK1gh2Bv0WbAFELEIAbAKK1gh2Bv0WbAgELEUAbAKK1gh2Bv0WbIZDQUREjkwMQEhAwICByM3NzY2NzcTIQMGFxYWFxYSEzYnFxYXFgIEJyYmNwRZ/m+QQ/nAXhczdJspFIsDdboDAwM1LomqBQIS6Q4EB47++KetrxIE4/1b/tT+8wXKAwzW6XICpvu5HR80QAMJASUBDGRkAWRj3/6jvQQEz64AAAH/3v/nBiYEOgAiAGWyACMkERI5ALAARViwDS8bsQ0cPlmwAEVYsAUvG7EFED5ZsABFWLAfLxuxHxA+WbANELEAAbAKK1gh2Bv0WbAFELEHAbAKK1gh2Bv0WbAfELESAbAKK1gh2Bv0WbIYDQUREjkwMQEjAwYGJyM3NzY2NzcTIQMGFhcWNjc3NicXFhcWAgYnJiY3AzD+YjfOoE0VJVtzHw5gAsx5CDw+boYNAgES3w4FCnntmayzEgN0/j/qzQTJAwiasE4Bzv0sUWUCBOncPF5eAV5ew/62tgMCzK8AAQAn/+YHUAWwAB4Ac7IWHyAREjkAsABFWLAALxuxACA+WbAARViwGi8bsRogPlmwAEVYsBIvG7ESED5ZsABFWLAYLxuxGBA+WbASELEGAbAKK1gh2Bv0WbILABgREjmyHQAYERI5fLAdLxi0MB1AHQJdsRYBsAorWCHYG/RZMDEBAwYXFhYXFhITNicXFhcWAgQnJiY3NyEDIxMzAyETBXi3AwMEMy2JqwUCEukOBAeO/vmpp68OJ/2Xa/b99m8CaW8FsPu3HR42PwEIASIBDmRkAWRj4P6juwMCzrH//ZcFsP2DAn0AAAEAC//mBikEOgAeAHayCB8gERI5ALAARViwBC8bsQQcPlmwAEVYsAgvG7EIHD5ZsABFWLAbLxuxGxA+WbAARViwAi8bsQIQPlmyBwgCERI5fLAHLxiyUwcBXbJABwFdsQABsAorWCHYG/RZsBsQsQ8BsAorWCHYG/RZshQIAhESOTAxASEDIxMzAyETMwMGFxYWFxYSNzQnFxYXFgIGJyYmNwLn/l5N7bztTgGiTe15AwMFOzB3jQIR3g4FCnjumamxDAG6/kYEOv5DAb39LB8gNkEBBgET715eAV5evv6yuAMCyrIAAQBM/+gElAXHACEASbIXIiMREjkAsABFWLAJLxuxCSA+WbAARViwAC8bsQAQPlmwCRCxDgGwCitYIdgb9FmwABCxFwGwCitYIdgb9FmyHAkAERI5MDEFJiYCNxM2EiQXFhcHJicmBgcHBhcWFhcWNicmJxcXFgIEAlKj8nEWKRy/ASKszI9Qepui6h4oCgkNjW+TrgEBDesNCov+8hUEpAEcpgEGswEemwEEWLZFAgLuvv1GSnmTAwLQ4lhXAa7W/u+WAAEAPf/nA6oEUQAfAEWyACAhERI5ALAARViwEy8bsRMcPlmwAEVYsAovG7EKED5ZsQABsAorWCHYG/RZsAoQsATQsBMQsRgBsAorWCHYG/RZMDElFjY3JzMXFgYGJy4CNzc+AhcWFwcmIyIGBwYXFhYCBVliAgXfCAZszH6Ny18OBRKZ8pGobUFdgXiqFwsGCWyvAmmWbm2ew2UDBI71lCqZ/YwBAkS7Pb+dXz9oegAAAQCQ/+YFNAWwABoAT7IJGxwREjkAsABFWLACLxuxAiA+WbAARViwFy8bsRcQPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCwFxCxCgGwCitYIdgb9FmyEAIXERI5MDEBITchByEDBxYWFxYSNzc2JxcWFxYCBCcmJjcCRf5LJARfJP5MlgEDNS6HpwsBAhLoDgMHif74q6ivDgTjzc38hTs0QAMGARH/HmRkAWRj2f6hwAMCzrEAAQBz/+gElwQ6ABkAT7IKGhsREjkAsABFWLACLxuxAhw+WbAARViwFi8bsRYQPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCwFhCxCwGwCitYIdgb9FmyEAIWERI5MDEBITchByEDBhcWFhcWNicmJxcWBwYEJyYmNwGv/sQiA3Ij/rhYAwMFOzF3iAoFFN0pDhn+98Kpsg4Dd8PD/e8fIDdAAQTssEtKAbR3zfsCAsyvAAABAFb/6AUiBcgAKwB3shssLRESOQCwAEVYsBwvG7EcID5ZsABFWLAOLxuxDhA+WbIpHA4REjmwKS+yHykBcbJKKQFdsQABsAorWCHYG/RZsA4QsQYBsAorWCHYG/RZsgocDhESObIUACkREjmyHxwOERI5sBwQsSMBsAorWCHYG/RZMDEBIgYHBhYXFjY3NwYGBCcuAjc2JSYnJjc2NiQXFgQHJzYmJyYGBwYWFxcHAsOguw8Nm4eCvxH1C6H+9Zuc+ncKEQEwUDE+BgifARCm1QEIBPQEhm6NwQ8Og4S9JAKDfHdjdwMCfmUBhcJmAwJuu3r7ZyxDVWaIwGQDBeG1AV1vAgN5Z2VrAQHIAP///8r+RgWLBbAAJgDdAAAABwJUBEwAAP///7/+RgScBDoAJgDyAAAABwJUA10AAAACAOwEcQNgBdgABQAOACMAsAwvsATQsAQvsADQGbAALxiwDBCwBtCwBi+wAtCwAi8wMQETNwcBBwMzBwYWFwcmNwH1nc4B/vFd660PCQ4mTZgQBJkBPgEY/sMBAVVTPGQwQ12xAP//ADYCCQJYAs0ABgARAAD//wA2AgkCWALNAAYAEQAA//8AnAJtBKQDMQBGAa/hAEzNQAD//wCDAm0F4wMxAEYBr4kAZmZAAAAC/1L+YAMXAAAAAwAHADoAsABFWLAGLxuxBhA+WbAC0LACL7YAAhACIAIDXbEBA7AKK1gh2Bv0WbAGELEFA7AKK1gh2Bv0WTAxASE3ITchNyECzvyEHAN8EfyEHAN8/mCdZ5wAAQCuBCACIgYaAAcAHbIHCAkREjkAsABFWLAALxuxACI+WbAE0LAELzAxARcGBwcjNzYBq3drHB3QFCYGGk+Nf5985wABAIoEAAH+BgAABwAdsgIICRESOQCwAEVYsAQvG7EEIj5ZsADQsAAvMDEBJzY3NzMHBgEBd2ocHtAWJQQAT4uBpYjiAAH/pP7WARUAygAHABmyBwgJERI5ALAIL7EEDbAKK1gh2Bv0WTAxEyc2NzczBwYadmYbHNQTI/7WUImBmnvgAAABAM0EAQHSBgAACgATsggLDBESOQCwAC+wBtCwBi8wMQEHBhcWFwcmJjc3AcAZDAoJJHtFRQwWBgCRTkhJRklHyGKO//8AtwQgA3EGGgAmAYQJAAAHAYQBTwAA//8AlwQAA08GAAAmAYUNAAAHAYUBUQAAAAL/of7CAlsA/wAIABEAIrINEhMREjmwDRCwBdAAsBIvsQQNsAorWCHYG/RZsA3QMDETJzY3NzMHBgYXJzY3NzMHBgYbem8aINQdEnvfenQZINUeEn7+wlCglLm2cc9HUKORubd0yQAAAQBpAAAESwWwAAsATACwAEVYsAgvG7EIID5ZsABFWLAGLxuxBhw+WbAARViwCi8bsQocPlmwAEVYsAIvG7ECED5ZsAoQsQABsAorWCHYG/RZsATQsAXQMDEBIQMjEyE3IRMzAyEEK/6Uiu6L/pcgAWc77jsBbQNy/I4DcsgBdv6KAAH/+/5gBGUFsAATAH4AsABFWLAMLxuxDCA+WbAARViwCi8bsQocPlmwAEVYsA4vG7EOHD5ZsABFWLACLxuxAhI+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsQYBsAorWCHYG/RZsA4QsQgBsAorWCHYG/RZsAnQsBDQsBHQsAYQsBLQsBPQMDEhIQMjEyE3IRMhNyETMwMhByEDIQO8/pNB7UH+mR8BZmz+mR8BZzruOwFtH/6UbQFu/mABoMICtMQBdv6KxP1MAAEAngIEAk0D3AANABeyAw4PERI5ALADL7AKsAorWNgb3FkwMRM2NjMWFhUHBgYjIiY1nwZ9YFtwAgd9X1pwAvxkfAJ2Xitkc3RbAP//ADP/8gMCAQMAJgASAwAABwASAb8AAP//ADP/8gSuAQMAJgASAwAAJwASAb8AAAAHABIDawAAAAEAWwHpAWYC7wATABmyDxQVERI5ALAEL7EODbAKK1gh2Bv0WTAxEzQ+Ajc2HgIVFA4CBwYuAlsTIzEdHDIkFRQkMRwcMSQVAmcdMSQUAQESIi8dHTAjFAEBEiEuAAAGAJ3/6AcGBccAFgAkACgANgBEAFIAvLICU1QREjmwAhCwGdCwAhCwJ9CwAhCwK9CwAhCwONCwAhCwTdAAsCUvsCcvsABFWLAXLxuxFyA+WbAARViwEy8bsRMQPlmwA9CwAy+yBQMTERI5sAfQsAcvsBMQsA7QsA4vshETAxESObAXELAe0LAeL7ATELEsArAKK1gh2Bv0WbADELEzArAKK1gh2Bv0WbAsELA60LAzELBB0LAeELFIArAKK1gh2Bv0WbAXELFPArAKK1gh2Bv0WTAxATY2FxYXNhcWFgcHBgYnJiYnBicmJjcDFhYHBwYGJyYmNzc2NhMnARcBBhYXFjY3NzYmJyYGBwUGFhcWNjc3NiYnJgYHAQYWFxY2Nzc2JicmBgcC6w6+hJQ8Z4J9lQgGDbqHQHEgZoJ9lQb2gJYIBw28gXqVCAULtQJ4A295/q8FOjdBVAsJBzo5PlcLAbAFOjg/VQsKBzo5PloJ+/cFOjc9VgwKBTg6PVYMAWSGqwIFa3ACAqqARIytAgE2OG8CAqp/BK4EqoBKiKoEAqt/QIyw+qhPBGdP/D9FUwICWEZPQlYCAlhFUEVTAgJXR09CVgICWkoC60hQAgJWSE1FVQICVkkAAQBdAIoCZQOpAAYAEACwBS+yAgcFERI5sAIvMDEBEyMDNwEzASamlNsBAVSzAgz+fgGFFAGGAAAB//kAigICA6kABgAQALAAL7IDBwAREjmwAy8wMQETBwEjAQMBJtwC/q20AT+lA6n+fBX+egGbAYQAAf/hAG8DyQUlAAMACQCwAC+wAi8wMTcnARdaeQNweG9PBGdPAP//AGQCmwLtBbEDBwIgAHMCmwATALAARViwCS8bsQkgPlmwDdAwMQAAAQBuAowDUwW6ABIATbIPExQREjkAsABFWLAELxuxBCA+WbAARViwAC8bsQAgPlmwAEVYsBAvG7EQFD5ZsABFWLAILxuxCBQ+WbAEELENA7AKK1gh2Bv0WTAxARc2NjMyFgcDIxM3NicmBwMjEwGKAjRsQXJ0D1LBSwQEX1Y/YcGLBa16SD+njP4FAco9fwICW/3RAyAAAf/2AAAEpQXJACYAnrIWJygREjkAsABFWLAXLxuxFyA+WbAARViwBi8bsQYQPlmyJRcGERI5sCUvsQACsAorWCHYG/RZsAYQsQkBsAorWCHYG/RZsATQsAQvsAAQsA3QsCUQsA/QsA8vsCUQsBPQsBMvtg8THxMvEwNdsRACsAorWCHYG/RZsBcQsR0BsAorWCHYG/RZshsTHRESObATELAh0LAQELAj0DAxASEHBgclByE3FzY3Nwc3MzcjNzM3NiQXFhYHJzYnJgYHByEHIQchAwP+4QcUWwKoJPwEJEVkHwqoGpsSmBmTExgBFce0ywjvCapafg4SATYa/tARAS0B1C2BXwPKyQEksTgBkXmQoMb1BgTZtgHFBAKFaaCQeQAFAA0AAAZfBbAAGwAfACMAJgApAL+yCiorERI5sAoQsB/QsAoQsCHQsAoQsCbQsAoQsCjQALAARViwGi8bsRogPlmwAEVYsBcvG7EXID5ZsABFWLAMLxuxDBA+WbAARViwCS8bsQkQPlmyBQkaERI5sAUvsAHQsAEvsg8BAV2xAwOwCitYIdgb9FmwBRCxBwOwCitYIdgb9FmwJdCwCtCwDtCwBRCwHdCwIdCwEdCwAxCwHtCwItCwEtCwARCwGdCwJ9CwFdCwCRCwJNCwFxCwKdAwMQEzByMHMwcjAyMDIQMjEyM3MzcjNzMTMxMhEzMBMzcjBTMnIwE3BwE3JwWN0hzRG9Ic0Vbv2P6xVvZWzRzMG80czFbu1gFTVvX96pUb8v5g7kKRAjATL/4HKhsDxaCXoP4SAe7+EgHuoJegAev+FQHr/N6Xl5f+fU4DAdUDRgAAAgAr/+0GWAWwACAAKQCmsiYqKxESObAmELAY0ACwAEVYsBcvG7EXID5ZsABFWLAcLxuxHBw+WbAARViwHy8bsR8cPlmwAEVYsBQvG7EUED5ZsABFWLALLxuxCxA+WbAfELEAAbAKK1gh2Bv0WbALELEGAbAKK1gh2Bv0WbAAELAP0LAQ0LIiFBcREjmwIi+xEgGwCitYIdgb9FmwHxCwHtCwHi+wFxCxKAGwCitYIdgb9FkwMQEjAwYXFhcyNwcGJyYmNxMjAiEnAyMTBR4CBzcTMwMzARc2NzYnJicnBjm5ZwMCBkomLxFLSnt7DWVpgv5wm170/AFzfL9oBHku7S65+0iCykIjCxOgmwOG/aIZFEEDCb4VAQKjiQJq/pQB/eUFsAEDXKhvAQEH/vn+rQIDrFxdjggBAP//ACf/6QgUBbAAJgA2AAAABwBXBFAAAAAGABwAAAY7BbAAHwAjACcAKwAuADEBA7IoMjMREjmwKBCwHtCwKBCwItCwKBCwJNCwKBCwLdCwKBCwL9AAsABFWLACLxuxAiA+WbAARViwDC8bsQwQPlmwAEVYsBAvG7EQED5ZsggCDBESObAIL7AE0LAEL7AA0LAEELEGA7AKK1gh2Bv0WbAIELEKA7AKK1gh2Bv0WbIoAgwREjmwKC+xDgOwCitYIdgb9FmwChCwEtCwCBCwFNCwBhCwFtCwBBCwGNCwAhCwGtCwBBCwHNCwAhCwHtCyIAIMERI5sCAvsAYQsCLQsCAQsCTQsAYQsCbQsioCDBESObIsAgwREjmwIBCxLQOwCitYIdgb9FmyLwIMERI5sDDQMDEBMxMzAzMHIwczByMDIxMjAyMDIzczJyM3MwMzAzMTMwEzNyMFMzcjBTc3IwE3IwU3IwP0zID7kYEcoD3BHODY9At3w/IO4B2/A6EcgAnwB9F/3P3PbTafAh9oNpr+/UQLEf6YRTwCGUI6BCoBhv56oKKg/bgCSP24AkigoqABhv56AYb9OKKioqUBpv38wri4AAIAEP/8BjYEOgAOABsAarIAHB0REjmwEdAAsABFWLAOLxuxDhw+WbAARViwFi8bsRYcPlmwAEVYsAwvG7EMED5ZsABFWLAPLxuxDxA+WbESAbAKK1gh2Bv0WbAOELELAbAKK1gh2Bv0WbIFEgsREjmyEAsSERI5MDEBFhYHAyMTNicmJyUDIxsCMwMFFjcTMwMGBCcDOaSXFTPuNQUCCoP+rprtu9F/7V0BOcgnde5xG/71zgQ5BczE/sABQiwleAUC/IoEOvvGAtb97QICxAK3/VvE1QQAAAEATv/tBJ4FxgAmAI6yDCcoERI5ALAARViwGS8bsRkgPlmwAEVYsAsvG7ELED5ZsiYZCxESObAmL7EAArAKK1gh2Bv0WbALELEGAbAKK1gh2Bv0WbAAELAQ0LAmELAR0LAmELAW0LAWL7YPFh8WLxYDXbETArAKK1gh2Bv0WbAZELEeAbAKK1gh2Bv0WbAWELAh0LATELAj0DAxASEGFxYWFxY3FwYnLgI3BzczNyM3MxIAFxYXByYnJgYHIQchByEDRP6rCQgLemlbcwd6c5ndZRSvGaYXqBmgQgFI8GOMMV9flMIuAWEZ/qcXAVoCD0Q9Y3EDAiLPGwIDivmbAY2AjQEHARYCAh7NIwICrqeNgAAEAEIAAAYPBbAAGgAfACQAKQDfshoqKxESObAaELAd0LAaELAj0LAaELAo0ACwAEVYsAsvG7ELID5ZsABFWLABLxuxARA+WbALELEkAbAKK1gh2Bv0WbAK0LAKL0ARAAoQCiAKMApAClAKYApwCghdsQcDsAorWCHYG/RZsAbQsAYvQAsABhAGIAYwBkAGBV2xAwOwCitYIdgb9FmwJ9CwJy9ADzAnQCdQJ2AncCeAJ5AnB12xAAGwCitYIdgb9FmwChCwINCwIC+wD9CwDy+wBxCwHdCwEtCwBhCwHtCwHi+wFNCwFC+wAxCwJtCwF9AwMQEDIxMjNxc3BzczEwUyFhczBycGBzcHBwYEIwE3IQchJSUmJyUBBQclNgG/XveLsx2tFbgdsi8B/LTqJekdsQgPvh7OUf7+tgFNCf3OFAIw/fgB4y92/tUBlP4dEQEbdwId/eMDH6ACTAKgAQkBjHygAikkA6ABg38BxClM6AQ5AQP+PAE7AgEAAAEAOwAABIcFsAAZAGmyEBobERI5ALAARViwGC8bsRggPlmwAEVYsAwvG7EMED5ZsBgQsRcBsAorWCHYG/RZsADQsBcQsBPQsBMvsAPQsBMQsRIHsAorWCHYG/RZsAbQsBIQsA7QsA4vsQkHsAorWCHYG/RZMDEBIxYHNwcjBgYHARUhATcXMjcFNyEmJyU3IQQ01RsE0VCNN+3QAWb+7v5xGOnLZf3tUQHUDsL+5VkDmwT5VlsBtqirFP3jDwJcjgKtAraVBQHMAAABABD/5wRHBbAAHgCUshsfIBESOQCwAEVYsBEvG7ERID5ZsABFWLAFLxuxBRA+WbITEQUREjmwEy+wF9CwFy+yABcBXbEYAbAKK1gh2Bv0WbAZ0LAI0LAJ0LAXELAW0LAL0LAK0LATELEUAbAKK1gh2Bv0WbAV0LAM0LAN0LATELAS0LAP0LAO0LAFELEaAbAKK1gh2Bv0WbIeBREREjkwMQEHBgIEJyYnEwc/Agc3NxMzBzcPAjcHBwM2Ejc3BEcIG8X+27B0g2LlJeQW5SXkNvcl6iXpF+sl6l2u3h8IAv9M0/61rgICFQJXVtFXflbSVwE20VnSWn5Z0ln9/gUBB+xNAAH/5AAABKwEOgAaAF2yDRscERI5ALAARViwGS8bsRkcPlmwAEVYsAYvG7EGED5ZsABFWLANLxuxDRA+WbAARViwEi8bsRIQPlmyAA0ZERI5sAAvsQwBsAorWCHYG/RZsA/QsAAQsBjQMDEBFhYXFgcHIzc3NiYnAyMTBgMHIzcSAD8CMwM6nbsRCQ4d7SEIBU1Tee56+EYm7SM0ASzaDCvtA2go+rxvbK/OaYG3KP1pAphh/qbdywEZAVopAtEAAAL/5gAABWAFsAAWAB8Ae7IYICEREjmwGBCwDdAAsABFWLAMLxuxDCA+WbAARViwAi8bsQIQPlmyBgIMERI5sAYvsQUBsAorWCHYG/RZsAHQsAYQsArQsAovsg8KAV2xCQGwCitYIdgb9FmwFNCwBhCwFdCwChCwF9CwDBCxHwGwCitYIdgb9FkwMSUhByM3IzczNyM3MxMFMgQHBgQjJQchAQUyNjc2JiclAtv+ySn2KMckxhPHI8d8AffmAQEREv7G9f7LEwE5/v0BF4WwEQ5za/7L5+fny2vLAsgB+MrZ+AFrATYCh39uhQQBAAAEAML/5wU+BckAHAAqADgAPACYsgE9PhESObABELAo0LABELAs0LABELA50ACwOS+wOy+wAEVYsAovG7EKID5ZsABFWLAkLxuxJBA+WbAKELAD0LADL7IOAwoREjmwChCxEQKwCitYIdgb9FmwAxCxGQKwCitYIdgb9FmyHAMKERI5sCQQsB3QsB0vsCQQsS4CsAorWCHYG/RZsB0QsTUCsAorWCHYG/RZMDEBBgYnJiY3NzY2FxYWFSc2JiMiBgcHFRYWFzI2NwEWFgcHBgYnJiY3NzY2AwYWFxY2Nzc2JicmBgcFJwEXAuwKoXt3jQgGDax/eYylAjIyN0wKCQItJzBDDgHifpcIBg23h36ZCAULuiQFPDY+VAwKBTo3P1gJ/ep5A296BCV4kAICq39Eja0CBJRzAThAWEVOMi44ATw3/mwCqIFEjK4EAqqAQo2s/oNHUgICVUpPSFACAltJ708EZ04AAgAx/+oD4gX/ABoAJABdshYlJhESObAWELAb0ACwDi+wAEVYsAAvG7EAED5ZsggADhESObAIL7EHB7AKK1gh2Bv0WbAV0LAAELEaAbAKK1gh2Bv0WbAIELAb0LAOELEhAbAKK1gh2Bv0WTAxBS4CNzcGBzc2NxM2NhcWFgcHBgAHBwYVFBcDNj8CNCcmBwcCZoO7UBYES3YUW2ZUGsuVgI4LBBT++sUPCJ1rxx0FAjZTGgcWB3PKfxARBbwCFQHfyN4FBLmMLLf+sGZOMy6YCwI/tNMlJVUFBZksAAQAIwAAB+kFxQADABEAHwApAKSyICorERI5sCAQsAHQsCAQsBDQsCAQsBPQALAARViwJS8bsSUgPlmwAEVYsCgvG7EoID5ZsABFWLAHLxuxByA+WbAARViwIC8bsSAQPlmwAEVYsCMvG7EjED5ZsAcQsA7QsA4vsAPQsAMvsQACsAorWCHYG/RZsA4QsRUCsAorWCHYG/RZsAcQsRwCsAorWCHYG/RZsiIlIBESObInJSAREjkwMQEhNyEBNjYXFhYHBwYGJyYmNxcGFhcWNjc3NiYnJgYHASMBAyMTMwETMwc9/a8bAlD95BHTl46lCwcQ1JWQpAqsCEVHTWoPCghESFBpDv4Q//7Ntu79/gE1t+wBnJUCLp/HBATDmkqoxQQExJcCYGkCA21jVV9rAgJxXvugBBT77AWw++kEFwAAAgDtA5MEywWwAAwAFABuALAARViwBi8bsQYgPlmwAEVYsAkvG7EJID5ZsABFWLATLxuxEyA+WbIBFQYREjmwAS+yAAkBERI5sgMBBhESObAE0LIIAQkREjmwARCwC9CwBhCwDbAKK1jYG9xZsAEQsA/QsA0QsBHQsBLQMDEBAwcDAyMTMxMTMwMjASMDIxMjNyEEPq48PENuX4I5w4debf5vhk1zTYkRAYIE9v6fAgF+/oMCHP6GAXr95AG9/kUBu18AAAIAff/pBHcEUgAWAB0AZbIUHh8REjmwFBCwGNAAsABFWLAKLxuxChw+WbAARViwAi8bsQIQPlmyGgoCERI5sBovsQ8MsAorWCHYG/RZsAIQsRMMsAorWCHYG/RZshYKAhESObAKELEXDLAKK1gh2Bv0WTAxJQYnJiYCNzYSJBceAgcHIQMWFxY2NwMmBwMhEyYDrLLChM9oDg6xAQOJgsBfCgX9Ezxdj1O6dcqKmjQCCjVcXHMEApcBAoyRARSZBASO+JEx/rZnBAM3RAMrA3z+6gEga///ALb/8gWJBZkAJwHGAEkChgAnAZQA8wAAAQcCJAMJAAAAEACwAEVYsAUvG7EFID5ZMDH//wCC//IGIQW4ACcCHwCOApQAJwGUAZsAAAEHAiQDoQAAABAAsABFWLANLxuxDSA+WTAx//8AiP/yBhYFqAAnAiEAfgKTACcBlAGAAAABBwIkA5YAAAAQALAARViwAS8bsQEgPlkwMf//ALX/8gXWBaMAJwIjAJICjgAnAZQBKgAAAQcCJANWAAAAEACwAEVYsAUvG7EFID5ZMDEAAgBF/+cESAX1AB0ALQBXsgguLxESObAIELAe0ACwDS+wAEVYsBUvG7EVED5ZsgANFRESObAAL7ANELEHAbAKK1gh2Bv0WbAAELEeAbAKK1gh2Bv0WbAVELEnAbAKK1gh2Bv0WTAxARYXNicmJicmBgcnNhcWEhMVAgIEJy4CNzc+AhcmBgcHBhcWFhcWNjc3JiYCZKRrAwIKhG5Fg0IMkaLQ3QYNnv75qYrDWxACEZHimXamFQMGBAVhV3qlIA0OdAQFBHsqMJWyBAMgFblDAQT+1/7qRv7X/nfSBAKK8ZMWkep9xgOolBU2OWRzAwXOzlVOWwAAAQAf/xsFVQWwAAcAKACwBC+wAEVYsAYvG7EGID5ZsAQQsAHQsAYQsQIBsAorWCHYG/RZMDEFIxMhAyMBIQRN7un9rentAQcEL+UF1PosBpUAAAH/p/7zBPoFsAAMADcAsAMvsABFWLAILxuxCCA+WbADELECAbAKK1gh2Bv0WbAF0LAIELEKAbAKK1gh2Bv0WbAH0DAxAQEhByE3AQE3IQchAQNz/ZQDIiL7oBwCuf49GQQoIv0EAZkCRf1xw6ICyALGjcP9dQABAJwCbQP4AzEAAwASALACL7EBAbAKK1gh2Bv0WTAxASE3IQPV/McjAzkCbcQAAQA0AAAFCQWwAAgAPbIACQoREjkAsAcvsABFWLABLxuxASA+WbAARViwAy8bsQMQPlmyAAEDERI5sAcQsQYBsAorWCHYG/RZMDEBATMBIwMjNyEB9wI13f0pwG7QIwFZAS0Eg/pQAkHFAAMASf/oB64EUgAeAC8AQQBksgZCQxESObAGELAp0LAGELA70ACwAEVYsAovG7EKED5ZsATQsAoQsBPQsBMvsBnQsgcZChESObIWGQoREjmwExCxPwGwCitYIdgb9FmwJNCwChCxNQGwCitYIdgb9FmwLNAwMQEGAgYnJiYnBgYnLgI3NzYSNhcWFhc2NhcWFhcWByc2JycmJyYGBwcGFhYXFjY3BQYXFhYXFjY2Nzc2JicmJyYGB58Sn/SPiNUuevCFhMRgDwISn/OOi9YtePGHicksJg3pBgQFIp513SoHBkZ6RXyyF/qLBgUHZlhLl38bBgQmJVFqe7ACGJv+/JEEBLKVtJsDBI79lBeXAQWRBASykrKZAwKeiHaCATU9Jb4FAtaGJEulaAIFyqMQNjxpfAMCXq5YJDd4M2wEBcsAAf8X/kUDIgYZABYAP7IBFxgREjkAsABFWLAOLxuxDiI+WbAARViwAy8bsQMSPlmxCAGwCitYIdgb9FmwDhCxEwGwCitYIdgb9FkwMQUGBiciJzcWMxY3EzY2FxYXByYjIgYHAR8VyqM5TSM5FY8bvhXXqjVnKTApUGUNT6+9BBW8DwSwBOuxxgIBFrgNYFMAAgAwAP4ENQP5ABIAJQB8sg4mJxESObAOELAg0ACwAi+wBtCwBi+wAhCwCNCwBhCxCwGwCitYIdgb9FmwAhCxEAGwCitYIdgb9FmwCxCwEtCwAhCwFdCwFS+wGdCwGS+wFRCwG9CwGRCxHgGwCitYIdgb9FmwFRCxIwGwCitYIdgb9FmwHhCwJdAwMRM2MzIWFjMyNwcGJyIuAiMGBwc2MzIWFjMyNwcGJyIuAiMGB45tjV3ZTS17ghZtfDxka2Y/hogzbYld20wteocYa4AxVqZVLoeDA5BpeRd92WsCKT0qAnzKaXkXfdlrAhxcGAJ8AAABAGIAggQUBMEAEwA5ALATL7EAAbAKK1gh2Bv0WbAE0LATELAH0LATELAP0LAPL7EQAbAKK1gh2Bv0WbAI0LAPELAL0DAxASEHJzcjNyE3ITchNxcHMwchByEDp/36o2pypCMBEaH+dCQB+KtqebEj/uGgAZkBZOJFncnfyutFpsrfAP///9UAFAPbBHAAZwAgABgAi0AAOZoABwGv/zn9p///ABcAEwPzBHMAZwAiABoAmEAAOZoABwGv/3v9pgACADoAAAPiBbAABQAJADiyBgoLERI5sAYQsATQALAARViwAC8bsQAgPlmwAEVYsAMvG7EDED5ZsgYAAxESObIIAAMREjkwMQEzEwEjAwEBEwECJb/+/hbA/gIq/sCUAT8FsP0a/TYC5AHH/h/+NwHjAP//AGkAqAIOBQoAJwASADkAtgAHABIAywQHAAIAZgJ/AoIEOQADAAcAM7IACAkREjmwBdAAsABFWLACLxuxAhw+WbAARViwBi8bsQYcPlmwAhCwANCwAC+wBNAwMQEjEzMTIxMzAQCaTZrnmk6aAn8Buv5GAboAAf/P/2cBFgEGAAcAFQCwBC+2MARABFAEA12wANCwAC8wMRcnNjc3MwcGSntfFQ/EDSSZT4V4U1bF//8AXwAABZEGGgAmAEoAAAAHAEoCMwAAAAIASwAABEwGGgAVABkAhbIHGhsREjmwBxCwF9AAsABFWLAILxuxCCI+WbAARViwAy8bsQMcPlmwAEVYsBIvG7ESHD5ZsABFWLAYLxuxGBw+WbAARViwAC8bsQAQPlmwAEVYsBYvG7EWED5ZsAMQsQEBsAorWCHYG/RZsAgQsQ4BsAorWCHYG/RZsAEQsBPQsBTQMDEzEyM3Fzc2NhcWFhcHJiMmBwc3ByMDISMTM0+coCCYDiP8w06VSjl+cNQoDdcgzp0CVe687QOGtAFRvtIEASYXyDMCykIBtPx6BDoAAQBfAAAEpAYZABgAb7ISGRoREjkAsABFWLATLxuxEyI+WbAARViwBi8bsQYcPlmwAEVYsA4vG7EOHD5ZsABFWLAKLxuxChA+WbAARViwFy8bsRcQPlmwExCxAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmwDNCwDdAwMQEmByIGBwczByMDIxMjPwI2NhcWFxcDIwOfbTVdeA8O1yDVne2doSCfDhrvu21t2v/sBUIQAV9eWrT8egOGtAFltsMCAhAg+hsAAgBfAAAGtQYaACcAKwDBshMsLRESObATELAp0ACwAEVYsBYvG7EWIj5ZsABFWLADLxuxAxw+WbAARViwES8bsREcPlmwAEVYsCAvG7EgHD5ZsABFWLAqLxuxKhw+WbAARViwCC8bsQgiPlmwAEVYsAAvG7EAED5ZsABFWLAjLxuxIxA+WbAARViwKC8bsSgQPlmwAxCxAQGwCitYIdgb9FmwCBCxDQGwCitYIdgb9FmwFhCxHAGwCitYIdgb9FmwARCwIdCwItCwJdCwJtAwMTMTIzczNzY2FxYXByYjJgYHBwU3NjYXFhYXByYnJgcHNwcjAyMTIQMhIxMzY52hIKANGd+uPFAaLC1VbA8PAWARJvjATpZKOnp00ygN1yDOne2c/pmdBKntvO0DhrRgt8kCAhK+CgFeU2YBYbbJAgImF8gxAgLKQgG0/HoDhvx6BDoAAAEAXwAABvkGGwAqAK6yEyssERI5ALAARViwCC8bsQgiPlmwAEVYsBYvG7EWIj5ZsABFWLADLxuxAxw+WbAARViwES8bsREcPlmwAEVYsCIvG7EiHD5ZsABFWLAALxuxABA+WbAARViwGi8bsRoQPlmwAEVYsCYvG7EmED5ZsAMQsQEBsAorWCHYG/RZsAgQsQ0BsAorWCHYG/RZsBYQsR4BsAorWCHYG/RZsAEQsCTQsCXQsCjQsCnQMDEzEyM3Mzc2NhcWFwcmIyYGBwclNzY2FxYXFwEjEyYjIgYHBzMHIwMjEyEDY52hIKANGeKtMlgaNyFVbA8QAWcNGu+7ZmTr/wDt7YYhW3kQDtYf1Z3tnP6ZnQOGtF+4ygQBEr4KAV9SZgFltsMCAQ4j+hsFQRBcW2C0/HoDhvx6AAABAF//7QT7BhkAJwCXshAoKRESOQCwAEVYsCIvG7EiIj5ZsABFWLARLxuxERw+WbAARViwHS8bsR0cPlmwAEVYsCYvG7EmHD5ZsABFWLAZLxuxGRA+WbAARViwCy8bsQsQPlmwJhCxAAGwCitYIdgb9FmwCxCxBgGwCitYIdgb9FmwABCwD9CwENCwIhCxFQGwCitYIdgb9FmwEBCwG9CwHNAwMQEjAwYXFhcWNwcGJyYmNxMjNzM3JiMiBgcDIxMjNzM3NjYXFhYXAzME27lmAwIGSSMyEUpKe3wNZa0grC9CY01nD8vtnaEgoA0Z16py22k6uQOG/aIZFEADAgq+FQECo4kCarT6Il1Y+18DhrRfuMgCAT8r/o4AAAEAF//pBp0GGgBKAMayKUtMERI5ALAARViwPi8bsT4cPlmwAEVYsEUvG7FFIj5ZsABFWLAQLxuxEBw+WbAARViwSS8bsUkcPlmwAEVYsCwvG7EsED5ZsABFWLAKLxuxChA+WbBJELEBAbAKK1gh2Bv0WbAKELEFAbAKK1gh2Bv0WbABELAO0LBFELEVB7AKK1gh2Bv0WbIdSSwREjmwPhCxIAGwCitYIdgb9FmyNyw+ERI5sDcQsSYBsAorWCHYG/RZsCwQsTMBsAorWCHYG/RZMDEBIwMHFhcWNwcGJyYmNxMjNzM3NiYnJgYfAhYHBzYmJyIGBwYEFxYHDgInJiY3MxQWFzI2NzYkJyY3NiQXMhcmNzY2FxYWBwczBn65ZAIDSyMyEUtKe3gPYKcfpg0KSk1dcwkEEwYE7gJSTE5zCw8BEETNCgV+1Xax5ALmY1ZadQwR/u4W+AgHAQWxS18TBg7rqLnFFQy5A4b9ti9SAwIKvhUBArSZAkm0WV9pAgOFjTyqOjkBS1YCTUFaRR1Xu2iZUQMCyZ9YWQJJQWBOCFjDlr4CGXw5iaUCBNasWAAAFv+p/nIIRQWuAA0AGgAoADcAPQBDAEkATwBWAFoAXgBiAGYAagBuAHYAegB+AIIAhgCKAI4BqbJbj5AREjmwWxCwDNCwWxCwGtCwWxCwHNCwWxCwMdCwWxCwPNCwWxCwPtCwWxCwRtCwWxCwStCwWxCwUtCwWxCwV9CwWxCwYdCwWxCwY9CwWxCwadCwWxCwbdCwWxCwcNCwWxCwetCwWxCwftCwWxCwgtCwWxCwhNCwWxCwiNCwWxCwjNAAsD0vsABFWLBGLxuxRiA+WbJ/OgMrsneCAyuye3oDK7JJfgMrsolOAyuyhYgDK7KNhAMrskGMAyuyCj1GERI5sAovsAPQsAMvsA7QsA4vsAoQsA/QsA8vsm8ODxESOXywby8YsVALsAorWCHYG/RZshVQbxESObAKELEeC7AKK1gh2Bv0WbADELElC7AKK1gh2Bv0WbAPELAp0LApL7AOELAu0LAuL7E0C7AKK1gh2Bv0WbA9ELBr0LBn0LBj0LA+0LE/DLAKK1gh2Bv0WbBl0LBp0LBt0LA80LBGELFHDLAKK1gh2Bv0WbBf0LBb0LBX0LBK0LBGELBg0LBc0LBY0LBL0LAOELFRC7AKK1gh2Bv0WbAPELF2C7AKK1gh2Bv0WTAxAQYGJyYmNzc2NhcWFgcTExcWBwYGBxYVFAYHATYmJyYGBwcGFhcWNjcBMwMGBiMGJicXBjcyNjcBEzMHMwchNzM3MwMBEyEHIwclNyEDIzcBBzM2NzYnATchByE3IQchNyEHEzchByE3IQchNyEHATc2NzYvAgEjNzM3IzczAyM3MyUjNzM3IzczAyM3MwMPCohgYXQECAiFZV11AgxgqL8DAiY4T21g/rUHNzo/VQsPBzg7P1QLA9BjOwhpT1NnAlgEVi06CflkN28kvxQE/xTAJG03+bUyAS0Uvh4F2xQBLzNtHvvoHm1uEg1RAUgVARAV/W0VAQ8V/W4VAQ4VzBQBDxT9bhQBDhT9bxQBDRQBV1Z6EApAI2D8znAtbxVvLHCvcC1vBwBtLG4UbSxur24tbQHUZnkCAn1ecGB+AgJ4Yv64AiUBBoknOCAdWElWAwFMQFACAlRDcUBRAgJRRQFP/oVNXQFTVQJfAjkq/MkBO8pxccr+xQYfAR10qal0/uOp/LapBVVHBwNLdHR0dHR0+ThxcXFxcXEDwgEGUTYIAwL+0fx++vwV+X78fvr8FfkAAAUAXP3VB9cIcwADABwAIAAkACgATACwIS+wJS+wANCwAC+wIRCwAtCwAi+yIAIAERI5sCAvsB3QsB0vsATQsAQvsg0AAhESObANL7AU0LAUL7IHBBQREjmyGRQEERI5MDEJAwU0Njc2NjU0JiMiBgczNjYzMhYVFAcGBhUXIxUzAzMVIwMzFSMEGAO//EH8RAQPHiRKXKeVkKACywI6Kzk4XVsvysrKSwQEAgQEBlL8MfwxA8/xOjoYJ4dKgJeLfzM0QDRfPEFcTFuq/UwECp4EAAH/4wAAAn4DJAAXAFuyCBgZERI5ALAARViwDy8bsQ8aPlmwAEVYsAAvG7EAED5ZsRYCsAorWCHYG/RZsgIWABESObIDDwAREjmwDxCxCAKwCitYIdgb9FmyDAAPERI5shUADxESOTAxISE3ATY3NiYnIgYHBzY2FxYWBwYPAgUCNv2tGAFWYQwHKyk6Qwy2Cq+Cf5IFBZZPnQFfhwEZU0MpLwFHNAF5mAICg2h+dzxuAgABAG0AAAINAxMABgAyALAARViwBS8bsQUaPlmwAEVYsAEvG7EBED5ZsAUQsATQsAQvsQMCsAorWCHYG/RZMDEhIxMHNyUzAYu1Y8wbAW4XAjYvmXMAAAIAF//wAowDJQANABkASLIRGhsREjmwERCwB9AAsABFWLAHLxuxBxo+WbAARViwAC8bsQAQPlmwBxCxEQKwCitYIdgb9FmwABCxFwKwCitYIdgb9FkwMQUmJjc3NjYXFhYHBwYGEzc0JyYPAhQXFjcBJYSKCxATsoiEiQsPErEdAlZ2FxYCWXYXDASwlo+osAQEspaPprAB8zdvAwO1sDBvAwfDAAACAGT/9QO9BKEAFgAkAFuyEyUmERI5sBMQsBfQALAARViwDC8bsQwePlmwAEVYsBQvG7EUED5ZsQABsAorWCHYG/RZsgUUDBESObAFL7EXAbAKK1gh2Bv0WbAMELEfAbAKK1gh2Bv0WTAxNxY2NwYnJiY3PgIXHgIHBwIABSM3ARY3NzYnJiYnJgYHBhbUtuM5bYegrg0JhNN4fKxMDQYj/oD+xhoUASp0WA4FBAdLP1Z9DAtQtgKPk10CAtKoeMZsAwJ61og5/sD+qwHCAXkEaFsoKUdRAQKAY1VxAAADACH/7QO+BKAAFgAiAC4AgbIhLzAREjmwIRCwCNCwIRCwJ9AAsABFWLAULxuxFB4+WbAARViwCS8bsQkQPlmyLBQJERI5sCwvss8sAXGyPywBcbJfLAFysRoBsAorWCHYG/RZsgIsGhESObIPGiwREjmwCRCxIAGwCitYIdgb9FmwFBCxJgGwCitYIdgb9FkwMQEGBxYWBw4CJy4CNzY3Jjc2NhcWFgE2JiMiBgcGFjMyNhM2JiMiBgcGFjMyNgO3CspJTwQGftJ5c7RgBgrqggYH77msxP7PCVpNWHgJCVhOV3pFCE1CSmgHCExBSGsDX6llKopWbJ1RAwJPk2LCZliXmboCBaz9bEVVXkpFVV0CQj9MV0I+UFYAAAEAWAAABBYEjQAGADqyAQcIERI5ALAARViwBS8bsQUePlmwAEVYsAEvG7EBED5ZsAUQsQMBsAorWCHYG/RZsgADBRESOTAxAQEhASE3IQP8/WP++QKb/YMjA30D+PwIA8nEAAACADz/6wOtBJsAFAAhAF6yEyIjERI5sBMQsBXQALAARViwAC8bsQAePlmwAEVYsA0vG7ENED5ZsAAQsQIBsAorWCHYG/RZsgcADRESObAHL7EVAbAKK1gh2Bv0WbANELEcAbAKK1gh2Bv0WTAxAQcnJgYHNhcWFgcGBCcmAjc3EgAlASYHBhcWFhcWNjc2JgNlFQuz+EF3lpmuDQ7+87y+zxUJKgGAATP+5YZZCwUJUEJXgQoLVASbyAECmKZxBALWpbbnBAQBAsxOAS8BWAX9qgRxVi5NVAECe1tUaQABADH/6gPcBI0AGwBtshkcHRESOQCwAEVYsAEvG7EBHj5ZsABFWLANLxuxDRA+WbABELEDAbAKK1gh2Bv0WbIHAQ0REjmwBy+xGQewCitYIdgb9FmyBRkHERI5sA0QsRMBsAorWCHYG/RZshETGRESObIbGRMREjkwMRMTIQchBzYzMhYHBgQnJiYnFxYXMjY3NiYjJgd9rgKxI/4YVVhopboMDv71wKfYBuUJo1x7CgpbV1tgAj8CTsj1K8+nueIEBLqWAYwCdl9VbAI+AAL//AAAA7QEjQAKAA4AV7IODxAREjmwDhCwCdAAsABFWLAJLxuxCR4+WbAARViwBC8bsQQQPlmyAQkEERI5sAEvsQIBsAorWCHYG/RZsAbQsggGARESObABELAL0LINCQQREjkwMQEzByMHIzchNwEzASETBwMflSKVLO0s/ewSApP7/W4BJ1AaAbzE+PinAu79LwGdIwAAAQAI/+0DwgSgACcAkrIiKCkREjkAsABFWLAOLxuxDh4+WbAARViwGi8bsRoQPlmyAQ4aERI5sAEvtK8BvwECXbRvAX8BAnGyPwEBcbIvAQFdsv8BAXGyDwEBcrAOELEHAbAKK1gh2Bv0WbILDhoREjmwARCxJgewCitYIdgb9FmyEyYBERI5sh0OGhESObAaELEhAbAKK1gh2Bv0WTAxARc2Njc2JiMmBgcHNjYXFhYHBgcWFgcOAicmJjcXBhYzFjY3NicnAWxwZn0KCVNLS28O7gr7uLnOCQrfVVIFBoHefLHYBOsCX1BZgQsV034CqQEDVk1DSwJGPwGUtAIFsJGtWyCHW2ygVQMCu5sBRU8CWk+dAgEAAAH/8QAAA78EoAAXAGCyAxgZERI5ALAARViwDy8bsQ8ePlmwAEVYsAAvG7EAED5ZsRcBsAorWCHYG/RZsgIXABESORmwAi8YsgMPABESObAPELEIAbAKK1gh2Bv0WbIMDwAREjmyFQAPERI5MDEhITcBNjc2JicmBgcHNiQXFhYHBgcHBQUDUvyfHgIRkREKSUdgeQ/sDQEKxLPJCwzZZv7fAi2vAbd5aEFTAgJoXAKu2QIFupettVLQAgAAAQCyAAADCwSNAAYAQLIBBwgREjkAsABFWLAFLxuxBR4+WbAARViwAC8bsQAQPlmwBRCwBNCwBC+xAwGwCitYIdgb9FmyAgMFERI5MDEhIxMFNyUzAkjumP7AJAIVIANrU8uqAAIAOv/rA9kEogANABwASLIaHR4REjmwGhCwANAAsABFWLAHLxuxBx4+WbAARViwAC8bsQAQPlmwBxCxEgGwCitYIdgb9FmwABCxGQGwCitYIdgb9FkwMQUmAjc3NgAXFhIHBwYAEzc0JicmAwMHFxYXFjY3Aba+vhkbIgEHxsC8GRwk/vxZBUlFvC4lBQELg1p7FhAFAQvhw/gBBgUF/vHew/z+/wLZW1ZkAgb+9v70WxeiBwWIkQAB/9YAAAQnBI0ACQBGALAARViwBy8bsQcePlmwAEVYsAIvG7ECED5ZsQABsAorWCHYG/RZsgQAAhESObAHELEFAbAKK1gh2Bv0WbIJBQcREjkwMSUhByE3ASE3IQcBMAJgI/xpGwLf/a8jA4UawsKYAzHElgAAAQBtAAAEgASNAAgAMQCwAEVYsAEvG7EBHj5ZsABFWLAHLxuxBx4+WbAARViwBC8bsQQQPlmyAAEEERI5MDEBASEBAyMTATMCDAFiARL93ETsS/729wJ8AhH8+v55Aa4C3wAB/6QAAASABI0ACwBTALAARViwAS8bsQEePlmwAEVYsAovG7EKHj5ZsABFWLAELxuxBBA+WbAARViwBy8bsQcQPlmyAAEEERI5sgYBBBESObIDAAYREjmyCQYAERI5MDEBASEBASEDASEBASECKwExAST+JQEV/vew/sf+3AHm/vwBBAL7AZL9sv3BAZj+aAJXAjYAAQCMAAAGHgSNAAwAWQCwAEVYsAEvG7EBHj5ZsABFWLAILxuxCB4+WbAARViwCy8bsQsePlmwAEVYsAMvG7EDED5ZsABFWLAGLxuxBhA+WbIAAQMREjmyBQEDERI5sgoBAxESOTAxAQEzASMDASMDMxMBMwPyAUDs/iTlQP6c5kfgFAFn0QEuA1/7cwM+/MIEjfyhA18AAQBwAAAEuASOAAgAMQCwAEVYsAMvG7EDHj5ZsABFWLAHLxuxBx4+WbAARViwBS8bsQUQPlmyAQMFERI5MDEBFzcBIQEjAzcB5AUjAagBBP2J8OHqAThKUwNM+3MEjQEAAQA5/+sEagSNABEAPbIOEhMREjkAsABFWLAALxuxAB4+WbAARViwCC8bsQgePlmwAEVYsAQvG7EEED5ZsQ0BsAorWCHYG/RZMDEBAwYEJyYmNxMzAwYWFxY2NxMEaoAb/uXSyeAUgeyCC1tna44SgwSN/QHC4QQE5bUDAPz/ZXIDBG9pAwcAAAEAYgAABFoEjQAHAC8AsABFWLAGLxuxBh4+WbAARViwAi8bsQIQPlmwBhCxAAGwCitYIdgb9FmwBNAwMQEhAyMTITchBDf+iqjtqP6OIwPVA8n8NwPJxAABAA7/7QP/BJ8AJgBwshEnKBESOQCwAEVYsAkvG7EJHj5ZsABFWLAcLxuxHBA+WbICHAkREjmyDAkcERI5sgwMAV2wCRCxEAGwCitYIdgb9FmwAhCxFQGwCitYIdgb9FmyIAkcERI5sgMgAV2wHBCxJAGwCitYIdgb9FkwMQE2LwImNzYkFxYWByc2JiciBgcGBBcWBw4CJyYnJjcXBhYzMjYCuxGPdkf9DQkBC7+84ALrA2dUXXsMEQE9RsQKB3/YgJ5ypgTsBW1uYXsBOWovJBpk1Ju8AgXCogFWVgFQQ2FdJWfGbJdPAwJHaMgBXWJNAAIACgAABBYEjQANABUAYLIAFhcREjmwD9AAsABFWLAELxuxBB4+WbAARViwAi8bsQIQPlmwAEVYsAwvG7EMED5Zsg8EAhESObAPL7EAAbAKK1gh2Bv0WbIKAA8REjmwBBCxFQGwCitYIdgb9FkwMQEjAyMTBRYWBwYFExUjARc2Njc2JycCH95K7coBrMXRCg//ALn8/qjDaIYMFrrcAan+VwSNAQW3m/Bh/ikNAmsCAmBVnwkBAAACADf/MARgBKMAEwAiAEiyAyMkERI5sAMQsB/QALAARViwDS8bsQ0ePlmwAEVYsAUvG7EFED5ZsA0QsRcBsAorWCHYG/RZsAUQsR4BsAorWCHYG/RZMDElFwcnBiMmJgI3NxIAFxYWEgcHAgMmJicmAgcVFhYXFjY3NgMqr6XdOiiRz14RAyABSe2Tz10RBy6yB2ximb8KBWxigLQfFkyefsgHApUBBp4bAREBSwYEkv75oTr+vwICb4AEBv785khxhgQFt6p3AAIACgAABDYEjQAKABMAT7IEFBUREjmwBBCwDNAAsABFWLADLxuxAx4+WbAARViwAS8bsQEQPlmyCwEDERI5sAsvsQABsAorWCHYG/RZsAMQsRIBsAorWCHYG/RZMDEBAyMTBRYWBwYEIycXMjY3NiYnJwE+R+3KAci83gsK/u3X191rjAwLXFj4AZn+ZwSNAQTQpa/MxQFgVVJhBAEAAgA6/+oEYwShABAAIABIsh4hIhESObAeELAI0ACwAEVYsAkvG7EJHj5ZsABFWLAALxuxABA+WbAJELEWAbAKK1gh2Bv0WbAAELEdAbAKK1gh2Bv0WTAxBSYmAjc3NhI2FxYWEgcHAgATNicmJicmAgcXFhYXFjY3AfuT0V0RCRil/JiTzl0RAyD+uX4GAwVrYprACQEFbWGHuBkQBJUBA51DpQEFiwQEkv77nBz+6f63An49QG6CBAb++uVIcYUEBc6/AAEACgAABKgEjQAJAEUAsABFWLAFLxuxBR4+WbAARViwCC8bsQgePlmwAEVYsAAvG7EAED5ZsABFWLADLxuxAxA+WbICBQAREjmyBwUAERI5MDEhIwEDIxMzARMzA97k/omM7crlAXeM7AMl/NsEjfzaAyYAAQAKAAAFyASNAA4AYLIBDxAREjkAsABFWLAALxuxAB4+WbAARViwAi8bsQIePlmwAEVYsAQvG7EEED5ZsABFWLAILxuxCBA+WbAARViwDC8bsQwQPlmyAQAEERI5sgcABBESObIKAAQREjkwMQETASEDIxMTASMLAiMTAgO0AdUBPMvsOXT+HaW+TTXsygSN/LcDSftzAUgCF/yhA3z9sv7SBI0AAAEACgAAAzQEjQAFACkAsABFWLAELxuxBB4+WbAARViwAi8bsQIQPlmxAAGwCitYIdgb9FkwMSUhByETMwEZAhsj/PnK7cLCBI0AAQAKAAAEnQSNAAwASwCwAEVYsAQvG7EEHj5ZsABFWLAILxuxCB4+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgYCBBESObAGELAB0LIKAQYREjkwMQEHAyMTMwM3ASEBASEB1aQ67crtV3wBgAE3/eoBUP72AdmL/rIEjf4LfgF3/ez9hwAAAf/y/+sDsASNAA4AMLIFDxAREjkAsABFWLAALxuxAB4+WbAARViwBS8bsQUQPlmxCwGwCitYIdgb9FkwMQEzAwYGJyYmNxcGFxY2NwLD7YYZ9621xgbtCZ9KaA8Ejfzgs88EBMOqAasEAmNbAAABABgAAAHPBI0AAwAdALAARViwAi8bsQIePlmwAEVYsAAvG7EAED5ZMDEhIxMzAQXty+wEjQABAAoAAASpBI0ACwCHALAARViwBi8bsQYePlmwAEVYsAovG7EKHj5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmyCQYAERI5sAkvtK8JvwkCXbI/CQFxss8JAXGyPwkBcrL/CQFxsg8JAXK0bwl/CQJxtN8J7wkCXbJfCQFytBwJLAkCXbECAbAKK1gh2Bv0WTAxISMTIQMjEzMDIRMzA9/tUv4GU+3K7VYB+1btAdv+JQSN/hEB7wABAD//8ARRBKMAIABnsgIhIhESOQCwAEVYsAsvG7ELHj5ZsABFWLADLxuxAxA+WbIfCwMREjmwHy+wCxCxEQGwCitYIdgb9FmyDx8RERI5sgwPAV2wAxCxGgGwCitYIdgb9FmwHxCxHQGwCitYIdgb9FkwMSUGBQcuAjc3EgAXFhYXJyYnJgYHBwYXFhYXFjc3IzchA+d//to6ldRgEQYfAUHtwd0Q5BK9hrUbDAcFCHRmh1oo8yAB3ZKUDQECkP+eNwERATwGBMm4AbwGBbuqWkFBbnsDAjrIsQAAAQAKAAAD5gSNAAkARwCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhA+WbIJBAIREjmwCS+ySgkBXbEAAbAKK1gh2Bv0WbAEELEGAbAKK1gh2Bv0WTAxASEDIxMhByEDIQMs/h5T7coDEiP93DQB5AHb/iUEjcT+1QAAAQAO/xMD/wVzACsAcrIfLC0REjkAsABFWLAJLxuxCR4+WbAARViwIi8bsSIQPlmyAyIJERI5sAkQsAzQsAMQsRkBsAorWCHYG/RZsAkQsRMBsAorWCHYG/RZshAZExESObAiELAf0LAiELEpAbAKK1gh2Bv0WbIlAykREjkwMQE2JycmJjc2Njc3MwcWFgcnNiYnIgYHBhcXFhYHBgYHByM3JiY3FwYWMzI2ArsRjzzMrAcJ47MsnS2RowLrA2ZVXXsMEZ0+yKEICdq0LpwupLwE7AVubmB7ATlqLxI4rX6OtBHZ3xu7igFWVwFQQ2AwEj2zgI6rEeHjGMeUAV1iTQAAAQARAAAECQSiAB8AaLIbICEREjkAsABFWLAULxuxFB4+WbAARViwBi8bsQYQPlmyHwYUERI5sB8vsA/QsQ4CsAorWCHYG/RZsADQsAYQsQUBsAorWCHYG/RZsAjQsBQQsRoBsAorWCHYG/RZshcfGhESOTAxASUGBgclByE3FzY/Agc3Mzc2NhcWFgcnNicmBgcHIQMb/pgROzoCiST8fx0IXSINA6UclgwY8bitvQjuC49SZw0KAXYB5QFUkkADw8IBJa9HDgWTaNPvBATWuAHGBwKEfmIAAQADAAAD5gSNABgAb7IAGRoREjkAsABFWLABLxuxAR4+WbAARViwDC8bsQwQPlmyAAwBERI5sggBDBESObAIL7AD0HywAy8YsAWwCitY2BvcWbAIELAKsAorWNgb3FmwDtCwCBCwENCwBRCwE9CwAxCwFdCwARCwF9AwMQEBIQEzByMHByEHIQcjNyE3Mzc1ITczAzMByAEaAQT+nbMa9BMMAQga/v4n7Cb++xv+FP74G8aZ8AKQAf39t5EZMZHY2JE/C5ECSQABAAoAAAPfBI0ABQAzsgEGBxESOQCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhA+WbAEELEAAbAKK1gh2Bv0WTAxASEDIxMhA7z946jtygMLA8n8NwSNAAL/pwAAA+wEjQADAAgAPbIFCQoREjmwBRCwAtAAsABFWLACLxuxAh4+WbAARViwAC8bsQAQPlmyBQACERI5sQcBsAorWCHYG/RZMDEhIQEzAycHASED7Pu7AnbtogUc/q8B1wSN/rpeRP1iAAMAOv/qBGMEogADABQAIgB0shgjJBESObAYELAC0LAYELAN0ACwAEVYsA0vG7ENHj5ZsABFWLAELxuxBBA+WbIDDQQREjl8sAMvGLRgA3ADAl20MANAAwJdsQABsAorWCHYG/RZsA0QsRgBsAorWCHYG/RZsAQQsR8BsAorWCHYG/RZMDEBITchASYmAjc3Ejc2FxYWEgcHAgATJiYnJgIHFxYWFxYSNwMQ/mUjAZv+yZPRXhEDIbGh5JPOXREEIP65gwVsYprACQEFbGKXwAsB38P9TgKVAQSeHAEdqJgFBJL+/J4h/u3+uQL7bYMEBv786EdxhQQGAQDwAAH/pwAAA+wEjQAIADiyBwkKERI5ALAARViwAi8bsQIePlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbIHAgAREjkwMTMjATMTIQMnB5HqAnbt4v7/gwUiBI37cwNHXlEAA//XAAADnwSNAAMABwALAGGyBAwNERI5sAQQsADQsAQQsAjQALAARViwCi8bsQoePlmwAEVYsAAvG7EAED5ZsQIBsAorWCHYG/RZsgcKABESObAHL7EEAbAKK1gh2Bv0WbAKELEIAbAKK1gh2Bv0WTAxISE3IQMhNyETITchAtT9AyMC/RL9kCMCcHT9AyMC/cMBOMQBCsQAAAEACgAABKQEjQAHAECyAQgJERI5ALAARViwBi8bsQYePlmwAEVYsAQvG7EEED5ZsABFWLABLxuxARA+WbAGELECAbAKK1gh2Bv0WTAxISMTIQMjEyED2e6o/gyo7coD0APJ/DcEjQAAAf/ZAAAEBwSNAAwATbIADQ4REjkAsABFWLAILxuxCB4+WbAARViwAy8bsQMQPlmxAQGwCitYIdgb9FmyBQEDERI5sAgQsQoBsAorWCHYG/RZsgcKCBESOTAxAQEhByE3AQM3IQchEwJ7/rMCViP8eB0Bgu0ZA2Mj/cPVAkT+gMSkAbcBpozE/pAAAwBDAAAFNwSOABEAFwAdAG6yEB4fERI5sBAQsBXQsBAQsBvQALAARViwEC8bsRAePlmwAEVYsAcvG7EHED5Zsg8QBxESObAPL7AA0LIGBxAREjmwBi+wCdCxFAGwCitYIdgb9FmwDxCxFQGwCitYIdgb9FmwGtCwFBCwG9AwMQEWFgcGAAcHIzcmJjc2JDc3FwEGFxMGBgU2JwM2NgN+0OkPEP7K+RjuGdHoDxABOPcb7f2kH/Jqj54C7xvta4ujBBMU9bzR/wAQbW4T+sHP/A55Af2v7yICLhCTZ+ch/dIPlwAAAQBwAAAFUQSNABkAXbIYGhsREjkAsABFWLAELxuxBB4+WbAARViwEC8bsRAePlmwAEVYsBgvG7EYHj5ZsABFWLAKLxuxChA+WbIXBAoREjmwFy+wANCwFxCxDAGwCitYIdgb9FmwCdAwMQE2NjcTMwMGAAcDIxMmAjcTMwMGBwYWFxMzAwF6mRwz7jUp/t3kN+44y8QeMu0yCAEDUVR+7QHaGrmqATb+xfz+2xj+5wEZHQE57wEv/tA5PGmKGAKwAAABAAAAAAR4BKEAJABbsgAlJhESOQCwAEVYsBovG7EaHj5ZsABFWLAQLxuxEBA+WbAARViwIy8bsSMQPlmxIQGwCitYIdgb9FmwANCwGhCxCAGwCitYIdgb9FmwABCwD9CwIRCwEtAwMSU2Njc2JyYmJyYGBgcXFhcHITc3Jjc3PgIXHgIHBwIHNwchAk58lRkMBgxvYGmgVAMBDJIe/jwkqYEXBRKl/pON1GcNBSPgtCP+PMclyLFoPGJrAwNt0LckwzjJxAK3+iuS7n8EA4Pojyv+55wExAABAGL/6wUNBI0AFwBusgUYGRESOQCwAEVYsAIvG7ECHj5ZsABFWLAWLxuxFhA+WbAARViwDi8bsQ4QPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCyCAIWERI5sAgvsA4QsQ8HsAorWCHYG/RZsAgQsRMBsAorWCHYG/RZMDEBITchByEHNhcWFgcGBAc3Njc2JyYHAyMBsv6wIwOSI/6sMoSIwNMMDv728hTwGRrOZ59j7QPJxMTvKQMC1bm8xwK9BcHKBgMn/eYAAAEAOf/sBEkEowAeAIeyHB8gERI5ALAARViwCy8bsQsePlmwAEVYsAMvG7EDED5ZsgALAxESObIOCwMREjmwCxCxEgGwCitYIdgb9FmyFQsDERI5fLAVLxiy8BUBXbIAFQFxtDAVQBUCXbSAFZAVAnG0YBVwFQJdsRYBsAorWCHYG/RZsAMQsRwBsAorWCHYG/RZMDEBBgQnLgI3NxIAFxYWFycmJicmAyEHIQYXFhYXFjcD/Bz+39SQyVkSBiABQerB4grrA2Br7VwBfSL+kgYFB2VX4zkBhb3cBAKQ/580AQ4BQQYE3b0BZ3AEB/7HxDg2W2gDCNoAAv/B//8GxASNABgAIQBusgUiIxESObAFELAa0ACwAEVYsBMvG7ETHj5ZsABFWLADLxuxAxA+WbAARViwCy8bsQsQPlmwExCxBQGwCitYIdgb9FmyFhMDERI5sBYvsAMQsRsBsAorWCHYG/RZsBYQsSEBsAorWCHYG/RZMDEBBgQjIRMhAwcCBicjNzc2Njc3EyEDFxYWJQMXNjY3NiYnBrkL/u3a/h6p/rBEGTvnuj4YImZ8Hw9oAyRGx8bm/WtB3GaPDQtYWQGHr9gDyf62f/7s7QHMAQakwFwB+v5sAQHKCP6OAQJrWkxaBQACAAoAAAbHBI0AEgAbAIWyAhwdERI5sAIQsBTQALAARViwAi8bsQIePlmwAEVYsBEvG7ERHj5ZsABFWLALLxuxCxA+WbAARViwDy8bsQ8QPlmyAQILERI5sAEvsAIQsBuwCitY2BvcWbEFAbAKK1gh2Bv0WbABELENAbAKK1gh2Bv0WbALELEVAbAKK1gh2Bv0WTAxASETMwMXFhYHBgQjIRMhAyMTMwEDFzY2NzYmJwFrAexW7kfJxeULC/7t2P4dU/4UU+3K7QJyQdxojQ0LWFkCngHv/mwBAcqmr9gB2/4lBI39qP6OAQJrWkxaBQABAGIAAAUOBI0AFgBcsgUXGBESOQCwAEVYsAIvG7ECHj5ZsABFWLAMLxuxDBA+WbAARViwFS8bsRUQPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCyCAIMERI5sAgvsRIBsAorWCHYG/RZMDEBITchByEHNhcWFgcDIxM2JyYnJgcDIwGy/rAjA5Ij/qwygYrJzBQ47TkGBRObbJtj7QPJxMTuJwIE4ML+pgFbNCl/BgMm/eYAAQAK/p8EowSNAAsAULIDDA0REjkAsAIvsABFWLAGLxuxBh4+WbAARViwCi8bsQoePlmwAEVYsAAvG7EAED5ZsABFWLAELxuxBBA+WbEIAbAKK1gh2Bv0WbAJ0DAxISEDIxMhEzMDIRMzA9j+lj7tPv6Jyu2oAfSo7v6fAWEEjfw2A8oAAgAL//wD9wSNAA0AFgBhshQXGBESObAUELAJ0ACwAEVYsAwvG7EMHj5ZsABFWLALLxuxCxA+WbAMELEAAbAKK1gh2Bv0WbIDDAsREjmwAy+wCxCxDgGwCitYIdgb9FmwAxCxFAGwCitYIdgb9FkwMQEhBxcWFgcOAiclEyEBNjY3NCYnJwMD1f3JJ/nAxRUQkueF/jnLAyH+GWh8Amlc3D4Dy+ABBcOid7FcAwEEjfw1AmZXTFcCAf6cAAAC/4P+rwTABI0ADgAUAFmyEhUWERI5sBIQsAnQALAARViwBC8bsQQePlmwAEVYsAovG7EKED5ZsQABsAorWCHYG/RZsAywCitY2BvcWbAI0LIPBAoREjmwBBCxEQGwCitYIdgb9FkwMTc2NjcTIQMzAyMTIQMjEwUlEyEDAjFvgyRSAyepklztO/0QO+1dAWcB44b+rkBBwGX9xQGm/Db97AFR/q8CEwMEAwb+uP7cAAH/qQAABjsEjQAVAJ+yARYXERI5ALAARViwES8bsREePlmwAEVYsA4vG7EOHj5ZsABFWLAKLxuxCh4+WbAARViwBi8bsQYQPlmwAEVYsAMvG7EDED5ZsABFWLAVLxuxFRA+WbIMAw4REjmwDC+yPwwBcbJfDAFyss8MAXG0rwy/DAJdtI8MnwwCcrAP0LEBAbAKK1gh2Bv0WbAE0LIIDwQREjmyEwEPERI5MDEBIwMjEyMBIQEDIRMzEzMDMwEhARMhA8pmUe1SVf66/swBw8sBCZxXU+5USQFEAST+Yeb+7gHV/isB1f4rAmECLP4gAeD+IAHg/cP9sAABAAz/7gPvBKAAJgBDsiAnKBESOQCwAC+wAEVYsBgvG7EYED5ZsgkAGBESObIMABgREjmxHwGwCitYIdgb9FmwABCxJAewCitYIdgb9FkwMQEyNjc2JiIGBwc2NhcWFgcGBxYWBw4CJyYmNzMWFjMWNjc2Jyc3AgVmgAoKZbBqD+4M/cLD3ggK6VFaBAV87Iu53gTqAlxWapAMFdyHIAKqU01ETEU+AZiyAgOmjbVlI4ZZap1XAgK5nEdMA1lPoAEBsAAAAQALAAAErgSNAAkATLIACgsREjkAsABFWLAALxuxAB4+WbAARViwCC8bsQgePlmwAEVYsAUvG7EFED5ZsABFWLADLxuxAxA+WbIEAwAREjmyCQUIERI5MDEBMwMjEwEjEzMDA8vjy+qP/Wbjy+qPBI37cwMx/M8EjfzSAAEACgAABG0EjQAMAHiyAA0OERI5ALAARViwCC8bsQgePlmwAEVYsAUvG7EFHj5ZsABFWLACLxuxAhA+WbAARViwDC8bsQwQPlmyBgIFERI5sAYvsj8GAXGyXwYBcrLPBgFxtK8GvwYCXbSPBp8GAnKxAQGwCitYIdgb9FmyCgEGERI5MDEBIwMjEzMDMwEhAQEhAbZtUu3K7VRXAYMBJv4QATP+6QHV/isEjf4gAeD9uf26AAH/wQAABJcEjQARAECyBBITERI5ALAARViwAC8bsQAePlmwAEVYsAEvG7EBED5ZsABFWLAJLxuxCRA+WbAAELEDAbAKK1gh2Bv0WTAxAQMjEyEDBwIGByM3NzY2NzcTBJfK7qn+sUYZPOK0RxgkZ3scD2kEjftzA8n+tn3+7e0CzAMKqbhZAfoAAAEAcv/oBIIEjgAPAE+yARARERI5ALAHL7AARViwDy8bsQ8ePlmwAEVYsAgvG7EIED5ZsgEPCBESObICDwgREjmwAi+wCBCwCrAKK1jYG9xZsg4PCBESObAOLzAxARcBIQEGBiMnNxc2NjcDNwIQBwFcAQ/93VyydGsRUjpOI/r1Ako4Anv8dKN2BcQGATorA3wBAAABAAr+rwS4BI0ACwBDsgkMDRESOQCwAy+wAEVYsAcvG7EHHj5ZsABFWLAKLxuxCh4+WbAARViwBS8bsQUQPlmxCAGwCitYIdgb9FmwANAwMSUzAyMTIRMzAyETMwP7vXDYO/xfyu2oAfSo78P97AFRBI38NgPKAAABAF0AAARkBI0AEgBHsg4TFBESOQCwAEVYsAgvG7EIHj5ZsABFWLARLxuxER4+WbAARViwAC8bsQAQPlmyDggAERI5sA4vsQQBsAorWCHYG/RZMDEhIxMGJyYmNxMzAwYXFhcWNxMzA5ruUn9/0NMVOO46BgYTm2+YZO0BqycCAuDEAWH+njQpgAMDJQIgAAABAAoAAAZDBI0ACwBCsgcMDRESOQCwAEVYsAMvG7EDHj5ZsABFWLABLxuxARA+WbEEAbAKK1gh2Bv0WbADELAG0LAEELAI0LAGELAK0DAxISETMwMhEzMDIRMzBXj6ksrtqAFTqO6pAVSo7gSN/DYDyvw2A8oAAQAK/q8GWASNAA8AQrILEBEREjkAsAMvsABFWLAHLxuxBx4+WbAARViwBC8bsQQQPlmxAAGwCitYIdgb9FmwDdCwCdCwBxCwCtCwDtAwMSUzAyMTIRMzAyETMwMhEzMFm71w2Dv6v8rtqAFTqO6pAVSo78P97AFRBI38NgPK/DYDygAAAgBK//sE4wSNAAwAFQBhsgsWFxESObALELAU0ACwAEVYsAovG7EKHj5ZsABFWLAHLxuxBxA+WbIACgcREjmwAC+wChCxCAGwCitYIdgb9FmwBxCxDQGwCitYIdgb9FmwABCxEwGwCitYIdgb9FkwMQEWFgcGBCclEyE3IQMTNjY3NiYnJwMDXrvKFhj+1cz+OKj+rCMCPkaXZX8CAm1Y20EC+AXKorPZBAEDycT+bP3JAmtZTlwCAf6OAP//AAv/+wXhBI0AJgIIAAAABwHjBBIAAAACAAv/+wP3BI0ACgATAFKyERQVERI5sBEQsADQALAARViwCC8bsQgePlmwAEVYsAcvG7EHED5ZsAgQsBGwCitY2BvcWbEAAbAKK1gh2Bv0WbAHELELAbAKK1gh2Bv0WTAxARYWBwYEJyUTMwMTNjY3NiYnJwMCcrvKFhj+1cv+OMvqR5djggICbFrbQQL4Bcmjs9kEAQSN/mz9yQJrWU1dAgH+jgAAAQAT/+oEHgShAB0AhLILHh8REjkAsABFWLASLxuxEh4+WbAARViwGi8bsRoQPlmyABoSERI5sQMBsAorWCHYG/RZsggSGhESOXywCC8YtGAIcAgCXbQwCEAIAl2y8AgBXbIACAFxtIAIkAgCcbEFAbAKK1gh2Bv0WbASELELAbAKK1gh2Bv0WbIPEhoREjkwMRMWFhcWEyE3ITYmJyYGBwc2JBcWEg8CAgAnJiYn/QVlbO5W/oIjAW4NaW1xjBruIAEg0MroCAQGIf7D58PpCAGFamcDBwE7xI+gAwRzagG+4gQD/uvjNzP+8P7CBgTYuQACAAr/6wYiBKIAFgAjAJmyASQlERI5sAEQsB/QALAARViwDi8bsQ4ePlmwAEVYsAkvG7EJHj5ZsABFWLAGLxuxBhA+WbAARViwAC8bsQAQPlmyCgYJERI5fLAKLxi0YApwCgJdsvAKAV2yAAoBcbQwCkAKAl20gAqQCgJxsQUBsAorWCHYG/RZsA4QsRoBsAorWCHYG/RZsAAQsSABsAorWCHYG/RZMDEFLgI3BwMjEzMDMzYAFxYWEgcHBgIEEzQmJyYCBwYWFxYSNwO6h89nC75U7MrsVaxFATXSlM5dEQQVoP7/02tpncQCA2tsm78IEQSD5IkB/h4Ejf4Y9AEJBQST/v2eJLL+8JQC0oiQBAb+7/eGmwQGAQzuAAL/0gAABFYEjgANABYAY7IRFxgREjmwERCwDNAAsABFWLAHLxuxBx4+WbAARViwAC8bsQAQPlmwAEVYsAkvG7EJED5ZshIHABESObASL7ELAbAKK1gh2Bv0WbIBCxIREjmwBxCxEwGwCitYIdgb9FkwMSMBJiY3NiQzBQMjEyMBEwYWFxcTJyIGLgFyUlIGCQEHzwHRyu5O4v7UsQtVUeM6yV+DAg8rkV6nvgH7cwG8/kQDG0pPAgEBSgFbAAAB//UAAAREBI0ADQBSsgEODxESOQCwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhA+WbIHAggREjmwBy+xBAewCitYIdgb9FmwAdCwCBCxCwGwCitYIdgb9FmwBxCwDNAwMQEjAyMTIzczEyEHIQMzAoDPVe1Uzh7NWQMLI/3jNtAB5v4aAeaqAf3E/scAAAH/qf6vBjsEjQAZAKyyCBobERI5ALADL7AARViwES8bsREePlmwAEVYsAUvG7EFED5ZsABFWLAJLxuxCRA+WbAARViwDS8bsQ0QPlmyFwkRERI5sBcvsj8XAXGyXxcBcrLPFwFxtK8XvxcCXbSPF58XAnKxBwGwCitYIdgb9FmyAAcXERI5sAUQsQEBsAorWCHYG/RZsAcQsAvQsg8XBxESObAXELAS0LARELAU0LAUL7AY0LAYLzAxARMzAyMTIwMjAyMTIwEhAQMhEzMTMwMzASEEnJvAXcs7n6VhUu1SVf66/swBw8sBCZxXU+5USQFEASQCUP5y/e0BUQHV/isB1f4rAmECLP4gAeD+IAHgAAABAAr+rwRtBI0AEACKsgAREhESOQCwBC+wAEVYsAwvG7EMHj5ZsABFWLAPLxuxDx4+WbAARViwCS8bsQkQPlmwAEVYsAYvG7EGED5Zsg0JDBESObANL7I/DQFxsl8NAXKyzw0BcbSvDb8NAl20jw2fDQJysQgBsAorWCHYG/RZsgAIDRESObAGELEBAbAKK1gh2Bv0WTAxARMzAyMTIwMjAyMTMwMzASECfc3LXcs7j+NtUu3K7VRXAYMBJgJG/nz97QFRAdX+KwSN/iAB4AAAAQAKAAAFJASNABQAgbIFFRYREjkAsABFWLAULxuxFB4+WbAARViwBi8bsQYePlmwAEVYsBEvG7ERED5ZsABFWLAKLxuxChA+WbIAERQREjmwAC+yPwABcbJfAAFyss8AAXG0rwC/AAJdtI8AnwACcrAE0LAAELEQAbAKK1gh2Bv0WbAM0LIIDAAREjkwMQEzNzMHNwEhAQEhAycHIzcjAyMTMwFpRCugLjIBgwEl/hABNP7q4j8poClEVu3K5gKr4OABAeH9uP27AdUBzM3+KQSNAAABAGIAAAVyBI0ADgCHsgkPEBESOQCwAEVYsAcvG7EHHj5ZsABFWLAKLxuxCh4+WbAARViwAi8bsQIQPlmwAEVYsA4vG7EOED5ZsggCBxESObAIL7I/CAFxsl8IAXKyzwgBcbSvCL8IAl20jwifCAJysQEBsAorWCHYG/RZsAcQsQQBsAorWCHYG/RZsgwBCBESOTAxASMDIxMhNyEDMwEFAQEhArxtUu2o/qojAkJUVwGCASb+EQEz/ukB1f4rA8rD/iAB4AH9uf27AAACAED/6gV5BKkAJAAvAIayAzAxERI5sAMQsC/QALAARViwCy8bsQsePlmwAEVYsBsvG7EbHj5ZsABFWLAELxuxBBA+WbAA0LICBBsREjmwAi+wCxCxDAGwCitYIdgb9FmwBBCxEwGwCitYIdgb9FmwABCxJAGwCitYIdgb9FmwAhCwJ9CwGxCxLAGwCitYIdgb9FkwMQUmJwYnJAATNxIANwcGBgcHBhYXNyYmNzc2EhcWFhcWBwYHFjMBFhc2Nzc2JyYDBgUc252imP71/uEbAxwBLucWeJsaBhWepD9ILwwFHvu5nbEJBBEjx2dI/foDf7QgDQyHuicJEgczPgICAUcBEx4BCAE1BM0Cs64rwtACA2nhfibxAQ8FBMmtT3j5sQcBZbNcfvKO0AUG/sxhAP//AG0AAASABI0AJgHTAAAABwImAAX+1QAB/6T+rwSABI0ADwBbsgoQERESOQCwBy+wAEVYsAEvG7EBHj5ZsABFWLAPLxuxDx4+WbAARViwCy8bsQsQPlmwAEVYsAkvG7EJED5ZsgAPCxESObEEAbAKK1gh2Bv0WbIKCw8REjkwMQEBIQETMwMjEyMDASEBASECKwExAST+JbjGXMs7hrD+x/7cAeb+/AEEAvsBkv2y/oP97QFRAZj+aAJXAjYAAQBi/q8FugSNAA8AXrIJEBEREjkAsAIvsABFWLAILxuxCB4+WbAARViwDi8bsQ4ePlmwAEVYsAQvG7EEED5ZsQABsAorWCHYG/RZsAgQsQYBsAorWCHYG/RZsArQsAvQsAAQsAzQsA3QMDElMwMjEyETITchByEDIRMzBPu/cNk7/GCo/q4jA4ci/raGAfWo7cP97AFRA8nExPz6A8oAAAEAXQAABGQEjQAYAFCyBRkaERI5ALAARViwCy8bsQsePlmwAEVYsBcvG7EXHj5ZsABFWLAALxuxABA+WbIRCwAREjmwES+xBwGwCitYIdgb9FmwBNCwERCwFNAwMSEjEwYHByM3JiY3EzMDBhcWFzczBzY3EzMDmu5RRlwqnyqvsBQ57joHAgN1MZ8vRF1k7QGrFQvNyhLctgFh/qQrKHgb9PMKFwIgAAEACgAABBEEjQASAEeyDhMUERI5ALAARViwAC8bsQAePlmwAEVYsAgvG7EIED5ZsABFWLARLxuxERA+WbIEAAgREjmwBC+xDgGwCitYIdgb9FkwMRMzAzYXFhYHAyMTNicmJyYHAyPU7VGEeNDVFTntOgYGE5tsm2TtBI3+VScCAuHD/p8BYjQpfwYDJv3fAAIAN//xBaUEpwAbACQAZ7IOJSYREjmwDhCwHdAAsABFWLAPLxuxDx4+WbAARViwAC8bsQAQPlmyIA8AERI5sCAvsRMBsAorWCHYG/RZsATQsCAQsAzQsAAQsRcBsAorWCHYG/RZsA8QsRwBsAorWCHYG/RZMDEFLgI3JiY3FwYXFhc2ABcWEgcHIQYWFxY3FwYDJgYHITYnJiYDWJrydRCXmQu8AwMHcz0BQtnm7x0X/N4SkpGBqS93fX23LQI6EQsPdA8Bg+eREtu1ASckeBvoAQ8EBP7Y9JmOngIDP71KA+4Dn5dTN05YAAIANP/sBHoEogAVAB8AYbIRICEREjmwERCwF9AAsABFWLAALxuxAB4+WbAARViwCC8bsQgQPlmyDgAIERI5sA4vsAAQsREBsAorWCHYG/RZsAgQsRYBsAorWCHYG/RZsA4QsRkBsAorWCHYG/RZMDEBHgIHBwYAJy4CNzchNiYnJgcnNhMWNjchBwYXFhYCg5/rbRENIP6r55nXXBMYAyASko+AqzB6fHy3Lf3HBgsKEHUEogOK+Jxl+/7LBAOJ9Z+ZkZsCAz+8S/wSA5+XGT0zUFcAAQAM/+cEBQSNABoAbbITGxwREjkAsABFWLACLxuxAh4+WbAARViwDC8bsQwQPlmwAhCxAAGwCitYIdgb9FmyBAACERI5shoMAhESObAaL7EYAbAKK1gh2Bv0WbIFGBoREjmwDBCxEgGwCitYIdgb9FmyEBIYERI5MDEBITchBwEWFgcOAicmJjczFhcWNjc2JicnNwKx/fgiAzob/paJnggHhuiIvNoE6gS1bIwKCl9gkSIDycSl/sUXuYF1p1kDBbyclAUCYlRNVwMBxQADADr/7ARjBKMAEAAXAB4Ai7IZHyAREjmwGRCwENCwGRCwEtAAsABFWLAILxuxCB4+WbAARViwAC8bsQAQPlmwCBCxEQGwCitYIdgb9FmyFQgAERI5fLAVLxiyMBUBXbJDFQFdtGAVcBUCXbLwFQFdsgAVAXG0gBWQFQJxsAAQsRgBsAorWCHYG/RZsBUQsRsBsAorWCHYG/RZMDEFJiYCNzcSABcWFhIHBwYCBBEmBgchNiYDFjY3IQYWAfuS0V4RAx8BSe+Rz14RBBWg/v9yrTMCJQpv/3OrMv3cCnAQApUBBJ4cAREBTQYCkv76niSy/vGUA+0FmKCMovzeBZmdhqYAAAEABAAABAoEogAmAKqyJScoERI5ALAARViwHi8bsR4ePlmwAEVYsAwvG7EMED5ZsgYeDBESObAGL7IPBgFdsAHQsAEvss8BAV1ACR8BLwE/AU8BBF2yAAEBXbECArAKK1gh2Bv0WbAGELEHArAKK1gh2Bv0WbAMELEPAbAKK1gh2Bv0WbAK0LAHELAT0LAGELAU0LACELAY0LABELAZ0LAeELEkAbAKK1gh2Bv0WbIhASQREjkwMQEhByUHByUHJQYHJQchNxc2NzcHNxc3Nwc3Mzc2NhcWFgcnNicmAwG+AYIa/pMPCAF2G/6JIzYCiST8fx0INB8TmByWBhCgG40DG/C9rr0I7QqQpCgCupICQxkCkwFEOgPDwgEWQCkDkwIRSwKSGNf5BATRswHAAwP+/wAAAQAe//AD6wSiACIAn7IdIyQREjkAsBUvsABFWLAILxuxCBA+WbIiFQgREjmwIi+yDyIBXbLPIgFdtBAiICICXbEAArAKK1gh2Bv0WbAIELEDAbAKK1gh2Bv0WbAAELAM0LAiELAN0LAiELAd0LAdL7LPHQFdth8dLx0/HQNdsgAdAV2xIAKwCitYIdgb9FmwD9CwHRCwEtCwEi+wFRCxGgGwCitYIdgb9FkwMQEhBhcWNxcGJyYmNwc3MzcjNzM2JBcWFwcmJyIGByUHIQchAxH+lQTCRYMMc2i+6QScGo0RjhqJQQEVx16FJVprZ48wAXka/okQAXgBhMsEAx3BHgIC3LUBklyTydQCAh7BHgJocwGTXAAEAAoAAAe+BKMAAwARAB8AKQCtsiAqKxESObAgELAB0LAgELAN0LAgELAT0ACwAEVYsCUvG7ElHj5ZsABFWLAoLxuxKB4+WbAARViwBC8bsQQePlmwAEVYsCAvG7EgED5ZsABFWLAjLxuxIxA+WbAEELAL0LALL7AD0LADL7YAAxADIAMDXbEAArAKK1gh2Bv0WbALELEVArAKK1gh2Bv0WbAEELEcArAKK1gh2Bv0WbIiJSAREjmyJyUgERI5MDElITchAxYWBwcGBicmJjc3NjYDBhYXFjY3NzYmJyYGBwEjAQMjEzMBEzMHCv3UGwIrm4+mCgYO0JmQpgoFDNU7B0ZHS2sOCgdGRkxsDv4f5P6JjO3K5QF3jOzIlQNCBLuRQpzCBAS+jUCdxP5dWWACBGhZTllgAgJkWvyxAyX82wSN/NoDJgAAAv/ZAAAEsgSNABYAHwCWsgAgIRESObAf0ACwAEVYsAwvG7EMHj5ZsABFWLACLxuxAhA+WbIGAgwREjmwBi+0HwYvBgJxsQUHsAorWCHYG/RZsAHQsAYQsArQsAovtB8KLwoCcbYPCh8KLwoDXbaPCp8KrwoDXbEJB7AKK1gh2Bv0WbAU0LAGELAV0LAKELAX0LAXL7AMELEfAbAKK1gh2Bv0WTAxJSEHIzcjNzM3IzczEwUWFgcGBCMnByEDFzY2NzYmJycCk/79G+0byiDJDsshyWMBzrnZCwr+8NL+DgEE1+Riiw0MV1T9mZmZtk23AjoBBcyfq9YBTQEEAQJqWU9fBAEAAAH/9P/zAoUDJAAkAHKyAiUmERI5ALAARViwDS8bsQ0aPlmwAEVYsBgvG7EYED5ZsgEYDRESOXywAS8YsA0QsQcCsAorWCHYG/RZsgkBBxESObABELEjArAKK1gh2Bv0WbITIwEREjmwGBCxHgKwCitYIdgb9FmyGx4jERI5MDETMzY2NzYnJyYHBzY2FxYWBwYGBxYHBgYnJiY1FxYXMjY3Nicj5lM9TQcJShddHLoJpn2BmQUDSVJ2BAO8i32ZsQRqNlMHDXhcAdICOC5DDQICTAFpegIDd2I7VyYpgW+CAgKDbQFZAjgvWQUAAv/xAAACegMWAAoADgBKALAARViwCS8bsQkaPlmwAEVYsAQvG7EEED5ZsgEJBBESObABL7ECArAKK1gh2Bv0WbAG0LABELAL0LIICwYREjmyDQkEERI5MDEBNwcjByM3ITcBNwEzNwcCFmQcXBy4Hv6lDQGwuv5TqjMSATkBl6OjhQHsAv4k9RgAAQAK//ICkQMVABwAbbIHHR4REjkAsABFWLACLxuxAho+WbAARViwDS8bsQ0QPlmwAhCxAwKwCitYIdgb9FmyBwINERI5sAcvsRoIsAorWCHYG/RZsgUHGhESObANELEUArAKK1gh2Bv0WbIRFBoREjmyHBoUERI5MDETEyEHJQc2NzYWBwYGJyYmJxcWFjc2Njc2JiciBzh4AeEb/rk3OENtgwQEuIJ4mwSwBDMvPEgIBzY1QTUBgwGSlgGXGQIChHR+ngICgmYBLyQBAUk5NT8BJwACABb/8gJzAyQAFAAhAF6yHSIjERI5sB0QsAfQALAARViwAC8bsQAaPlmwAEVYsA0vG7ENED5ZsAAQsQICsAorWCHYG/RZsgcNABESObAHL7EVArAKK1gh2Bv0WbANELEcArAKK1gh2Bv0WTAxAQcnJgYHNjMyFgcGBicmJjc3NjY3AyIHBwYXFjMyNjc2JgJEDgd0pTBQXWZ6BAS2g4iUCgcZ/smsTToFAwMKVjNSBgczAySbAQNba0WMc3ugAgKxjUXB4An+WD4kGxpaTjUyOwABACMAAAK7AxUABgAzALAARViwBS8bsQUaPlmwAEVYsAIvG7ECED5ZsAUQsQQCsAorWCHYG/RZsgAEBRESOTAxAQEjASE3IQKn/knNAbj+XxsCZgKf/WECf5YAAAMACP/yAoADIwAUACAALACNshctLhESObAXELAS0LAXELAk0ACwAEVYsBIvG7ESGj5ZsABFWLAILxuxCBA+WbIqCBIREjmwKi+23yrvKv8qA122DyofKi8qA122ryq/Ks8qA3GxGAKwCitYIdgb9FmyAxgqERI5sg0qGBESObAIELEeArAKK1gh2Bv0WbASELEkArAKK1gh2Bv0WTAxAQYGBxYHBgYnJiY3NjcmNzY2FxYWAzYmIyIGBwYWMzI2EzYmIyIGBwYWMzI2An0DQEZmBASvhn+WAwOaVgQEp3p2j94FMzAyTAcHNi4vTy8FKyYqQQcGLSYqQAJJOVgoPnFwfwICd2R8Tzpka34CAnT+RSgvOCsoMjQBfCcqMSonKzIAAgAz//UCggMjABQAIQBqsggiIxESObAIELAc0ACwAEVYsAgvG7EIGj5ZsABFWLAPLxuxDxA+WbICDwgREjmwAi+2DwIfAi8CA12wDxCxEgKwCitYIdgb9FmwAhCxFQKwCitYIdgb9FmwCBCxHAKwCitYIdgb9FkwMQEGIyImNzY2FxYWBwcGBCMnNzMWNicWNzc2JyYjIgYHBhYBsktMbXsEBrmAgYsJBRb+/NkVDQx3jkQ9OgwDAgtNNEwHBiwBNzmLc4GmAgSwkTTV3gGTAlSsAjZHGBlWVDoxQwAAAQCTAocDPAMxAAMAEgCwAi+xAQGwCitYIdgb9FkwMQEhNyEDHv11HgKLAoeqAAMBBgRHA1YGlQADAA4AGQBQALANL7AX0LAXL7EHCbAKK1gh2Bv0WbAC0LACL7AA0LAAL0APDwAfAC8APwBPAF8AbwAHXbACELAD0BmwAy8YsA0QsREJsAorWCHYG/RZMDEBFwUnBzQ2MzIWFRQGIiY3FjMyNjc2JiMiBgJh9f7wpppuTUxibJhlYQNAJDoGBCQeJjcGlQHBAeZPa2hETWhiR1E3JCQxNAAAAQAKAAAD+QSNAAsAVgCwAEVYsAYvG7EGHj5ZsABFWLAELxuxBBA+WbILBgQREjmwCy+ySQsBXbEAAbAKK1gh2Bv0WbAEELECAbAKK1gh2Bv0WbAGELEIAbAKK1gh2Bv0WTAxASEDIQchEyEHIQMhAzX+GjYCOyP82coDJSP9yS8B6AH4/srCBI3E/vIAAAP/h/5HBFAEUAArADkARwCgsidISRESObAnELA50LAnELBE0ACwAEVYsCgvG7EoHD5ZsABFWLAWLxuxFhI+WbAoELAr0LArL7EAA7AKK1gh2Bv0WbIHFigREjmwBy+yDhYHERI5sA4vsSwBsAorWCHYG/RZshssDhESObIgBygREjmwFhCxMwGwCitYIdgb9FmwBxCxPQGwCitYIdgb9FmwKBCxRAGwCitYIdgb9FkwMQEHFgcHBgQnIicGBwYWFxcWFgcGBgQnJiY3NjcmNzY2NyYmNzc2Njc3FxchASYnBgcGFjMyNjc2JicDBhYXMjY3NzYmJyYGBwQ2gyAJBBf+7bpDUjIHBik6rbO0BwWX/uSHz+kEB9AhBgdWO0dDBQMQ9bcoKnABdfzwOB5jDglxZ4W4DQk/V78GYFBYhQ0DBmBQVIgOA6ABXF4fo8cCFDInICIDAgaYg2aiYgMFjnilZjI9SWUmNphYIZbFCgEDE/veAwU7WT9JW0ozOAMCrUlgAmhOFU1fAgJmVAAAAgA7/+MEkQRUABIAIwBwshkkJRESObAZELAK0ACwAEVYsAovG7EKHD5ZsABFWLAOLxuxDhw+WbAARViwAi8bsQIQPlmwAEVYsBIvG7ESED5ZsgACChESObINCgIREjmwAhCxGAGwCitYIdgb9FmwChCxIAGwCitYIdgb9FkwMSUGJyYmPwI2ABcWFhc3MwMTIwEGFxYWFxY2PwInJicmBgcDEI7jq7kJAwgnAQbBbaAnRNzMEdP+MgYCAlxSZqIgBgEEG491mhvF4gcF/9wtOfoBKgUDcWbF/dP98wHyMzlldQIDvpwuRDXcBwXHwgAAAgAu//8E8AWwAB4AJwBjsiAoKRESObAgELAe0ACwAEVYsAMvG7EDID5ZsABFWLAVLxuxFRA+WbAARViwAS8bsQEQPlmyIAMBERI5sCAvsR4BsAorWCHYG/RZsgoeIBESObADELEnAbAKK1gh2Bv0WTAxAQMjEwUyFgcGBgcWFxYHBwYXFhcHByYnJjc3NicmJyUXMjY3NiYnJQGMaPb8Afbh7w8Ij5OUEQUGFAcEBCQC9SMFAwoSBgYUlP7w/4uiDg1paP7ZAlb9qgWwAdvCcKk9QKs0Nos3JD0pGwEsSixMeTAqjAnLAXdwam8EAQAAAQAuAAAFewWwAAwAWQCwAEVYsAQvG7EEID5ZsABFWLAILxuxCCA+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgYCBBESObAGL7IfBgFxsQEBsAorWCHYG/RZsgoBBhESOTAxASMDIxMzAzMBIQEBIQI+rmz2/PZqfQIKAT79mAGG/ugCcP2QBbD9nAJk/Tv9FQAAAQAUAAAERQYAAAwAVACwAEVYsAQvG7EEIj5ZsABFWLAILxuxCBw+WbAARViwAi8bsQIQPlmwAEVYsAsvG7ELED5ZsgcIAhESObAHL7EAAbAKK1gh2Bv0WbIKAAcREjkwMQEjAyMBMwMzASEBASEBxXJS7QEL7JddAU8BJf5JARj+/QHZ/icGAPycAZ7+Bf3BAAABAC4AAAVnBbAACwBMALAARViwAy8bsQMgPlmwAEVYsAcvG7EHID5ZsABFWLABLxuxARA+WbAARViwCi8bsQoQPlmyAAMBERI5sgUDARESObIJAAUREjkwMQEDIxMzAzcBIQEBIQGZdfb89nYCAngBQ/0vAeX+4wKj/V0FsP19AQKC/Sr9JgAAAQAUAAAENQYYAAoATACwAEVYsAMvG7EDIj5ZsABFWLAGLxuxBhw+WbAARViwAS8bsQEQPlmwAEVYsAkvG7EJED5ZsgAGARESObIFBgEREjmyCAAFERI5MDEBAyMBMwMBIQEBIQFYV+0BD+2aAYoBNf37AWL+9QH1/gsGGPyRAZH+Af3FAAACAAoAAAQaBI0ACgAWAEWyDhcYERI5sA4QsALQALAARViwAi8bsQIePlmwAEVYsAAvG7EAED5ZsQ0BsAorWCHYG/RZsAIQsRYBsAorWCHYG/RZMDEzEwUeAgcHBgAhEwMXMjY3NzYnJiYnCsoBYpfhbBAFHf6h/vcfhnCpzxgGCAYKeW4EjQEEj/2ZLP3+xgPJ/PkBwbUsR0BocgQAAAEAOf/sBEkEowAcAFCyEx0eERI5ALAARViwCy8bsQsePlmwAEVYsAMvG7EDED5ZsgALAxESObIOCwMREjmwCxCxEgGwCitYIdgb9FmwAxCxGgGwCitYIdgb9FkwMQEGBCcuAjc3EgAXFhYXJyYmJyYGBwYXFBYXFjcD/Bz+39SQyVkSBiABQenC4grrA2BrhbAaEAFkYeM4AYW93AQCkP+fNAEOAUEGBN29AWdwBAXAtIk/cH8ECNoAAAMACgAABAAEjQAOABYAHgCvshgfIBESObAYELAC0LAYELAW0ACwAEVYsAEvG7EBHj5ZsABFWLAALxuxABA+WbIYAAEREjmwGC+yvxgBcrSvGL8YAl20bxh/GAJxsv8YAXGyDxgBcrSPGJ8YAnKyXxgBcrLPGAFxsj8YAXG0HxgvGAJdsnkYAV2ySRgBXbEWAbAKK1gh2Bv0WbIIFhgREjmwABCxEQGwCitYIdgb9FmwARCxHgGwCitYIdgb9FkwMTMTBQQXFgcGBxYWBwYGIwMDFzY2NzYnJxc2Njc2JycKygGUASZUHgYKz0tUBAj33pA2z2V6DBam18FfcgwUss0EjQEIpDlTrFcaiFmksgH7/scBA1JJkgmrAQNPRYgFAQAAAv+bAAAEBQSNAAcACgBHALAARViwBC8bsQQePlmwAEVYsAIvG7ECED5ZsABFWLAGLxuxBhA+WbIJBAIREjmwCS+xAAGwCitYIdgb9FmyCgQCERI5MDElIQcjATMTIwEhAwLu/i6I+QKT2v3m/mIBSFf5+QSN+3MBsgG4AAEA6wRpAjYGLQAHABYAsABFWLAALxuxACI+WbAE0LAELzAxARcGBwcjNzYBtYFRFhbOER8GLVd9dnp31wAAAgEEBNEDegZ+AAsADwBbALADL7AG0LAGL0ALDwYfBi8GPwZPBgVdsADQsAAvsAMQsQkGsAorWCHYG/RZsAYQsA/QsA8vsAzQsAwvQA8PDB8MLww/DE8MXwxvDAddsA8QsA7QGbAOLxgwMQEGBicmJicXBhcWNyUzFyMDegi1jIugAqoEgIYb/tGiTm0FsWh4AwN4ZAJvAgJzzcAAAv0mBL3/eQaMABMAFwCOALADL7AH0LAHL0ALDwcfBy8HPwdPBwVdsAMQsAnQsAkvsAcQsQ0IsAorWCHYG/RZsAMQsREIsAorWCHYG/RZsA0QsBPQsAMQsBbQfLAWLxhAEw8WHxYvFj8WTxZfFm8WfxaPFgldsg8WAXGwFNCwFC9ADQ8UHxQvFD8UTxRfFAZdsBYQsBfQGbAXLxgwMQMGBiMiJiYHBgcnNjYzMhYWNzY3JxcHI5gKXEMlfCQVOx9lCl5EI38lFDsfXc/WmwWEVmNBCQEDVBxUZkIJAQNT7QHSAAIA3ATnBS0GkAAGAAoAWwCwAy+wBdCwBS+wANCwAC9ACQ8AHwAvAD8ABF2wAxCwAtAZsAIvGLIEAwAREjmwBtAZsAYvGLADELAJ0LAJL7AH0LAHL7YPBx8HLwcDXbAJELAK0BmwCi8YMDEBMxcjJwcjARcBIwIinfC5grLmA2no/wCqBeH6jY0BqQH+9gACABME2gOoBoMABgAKAFsAsAMvsATQGbAELxiwANAZsAAvGLADELAB0LABL7AG0LAGL0AJDwYfBi8GPwYEXbICAwYREjmwAxCwCNCwCC+wB9AZsAcvGLAIELAK0LAKL7YPCh8KLwoDXTAxASMnByMlMwUjAzMDqLuBsuUBRp3+h4qixwTajY36XAELAAIA2ATnBJQGywAGABUAaQCwAy+wBNAZsAQvGLAA0BmwAC8YsAMQsAHQsAEvsAMQsAXQsAUvQAkPBR8FLwU/BQRdsgIDBRESObADELAH0LAHL7AO0LAOL7I/DgFdsggHDhESObEPBrAKK1gh2Bv0WbIUCAcREjkwMQEjJwcnJTMXNzc2NzYnJzcWFgcGBwcDqqeRydEBObaoCyJaBwdNKg93gQEDiAkE56GhAfl0fQMKMy8GAmoDU0hrGT0AAgDXBOcDqQbQAAYAGgCQALADL7AE0BmwBC8YsADQGbAALxiwAxCwAdCwAS+wAxCwBdCwBS9ACQ8FHwUvBT8FBF2yAgMFERI5sArQsAovQAk/Ck8KXwpvCgRdsA7QsA4vQA0PDh8OLw4/Dk8OXw4GXbAKELAQ0LAQL7AOELEUBrAKK1gh2Bv0WbAKELEYBrAKK1gh2Bv0WbAUELAa0DAxASMnByMlMzcGBiMiJiYHBgcnNjYzMhYWNzY3A6mllcXTAUuP5glVOyNuJBIzIFoKUzwhcyESORwE542N7d9EWz0JAgNDGEhaPggBBEUAAAEACgAABBUFxAAHADOyAwgJERI5ALAARViwBi8bsQYePlmwAEVYsAUvG7EFED5ZsAYQsQIBsAorWCHYG/RZMDEBMwMhAyMTIQMn7ln946jtygIdBcT+Bfw3BI0AAgEEBNADegZ+AAwAEABbALADL7AG0LAGL0ALDwYfBi8GPwZPBgVdsADQsAAvsAMQsQkGsAorWCHYG/RZsAYQsA/QsA8vsA3QsA0vQA8PDR8NLw0/DU8NXw1vDQddsA8QsBDQGbAQLxgwMQEGBicmJicXBhcWNjcnFwcjA3oItYyLoAKqBIA6WQ5Aw8aPBbBoeAMDeGQCbwIBNzvOAb4AAAIBBQTSA24HCAAMABsAXwCwAy+wBtCwBi9ACw8GHwYvBj8GTwYFXbAA0LAAL7ADELEJBrAKK1gh2Bv0WbAGELAb0LAbL7AU0LAUL7Q/FE8UAl2yDhsUERI5sRUMsAorWCHYG/RZshoOGxESOTAxAQYGJyYmJxcGFxY2Nyc3NzY3NicnNxcWFQYHBwNuCbGIg6ICpgR+OlgO0AowVwkJXyoNSNgDlwkFsWt0AgJ2ZgJsAgE1Ohl2AgYwKwQBYQQTeF0YPP//AIoCiAL/Bb0DBwHHAHMCmAATALAARViwBy8bsQcgPlmwEdAwMQD//wBkApgC7QWuAwcCIABzApgAEwCwAEVYsAkvG7EJID5ZsA3QMDEA//8AfQKKAwQFrQMHAiEAcwKYABAAsABFWLABLxuxASA+WTAx//8AiQKKAuYFvAMHAiIAcwKYABMAsABFWLAULxuxFCA+WbAV0DAxAP//AJYCmAMuBa0DBwIjAHMCmAAQALAARViwBS8bsQUgPlkwMf//AHsCigLzBbsDBwIkAHMCmAAZALAARViwEi8bsRIgPlmwGNCwEhCwJNAwMQD//wCmAo0C9QW7AwcCJQBzApgAEwCwAEVYsAgvG7EIID5ZsBzQMDEAAAEAb//nBUYFyAAdAFCyDB4fERI5ALAARViwDS8bsQ0gPlmwAEVYsAMvG7EDED5ZsgANAxESObIRAw0REjmwDRCxEwGwCitYIdgb9FmwAxCxGgGwCitYIdgb9FkwMQEGACcuAicmNzYSJBcWABcjAicmAAMHBhYXFjY3BN4j/rH1kt6FCwgZI9MBKK3fAQoK9Q39yP8AEgIDk4iLuSYB3OP+7gQDhPuec5LNAUekAwT+9OcBJAcG/pf+5i+92AQGnI8AAQBx/+gFSgXIACQAX7IVJSYREjkAsABFWLAOLxuxDiA+WbAARViwAy8bsQMQPlmyEQ4DERI5sA4QsRQBsAorWCHYG/RZsAMQsR4BsAorWCHYG/RZsiMOAxESObAjL7EiAbAKK1gh2Bv0WTAxJQYEJy4CJyY3NzYSJBcWBBcnAicmBgYHBhcUFhYXFjcTITchBMBL/tq2mOyODggLBBvPATW23gEFEvAX9XTDiRcMAUiOYLpwNf7lIgIQvGNxAwOE+p5WXifTAVu1AwT03QEBAAgDf/ubXj11u2UBBVgBG8AAAAIALgAABR0FsAALABYARbIPFxgREjmwDxCwCtAAsABFWLACLxuxAiA+WbAARViwAC8bsQAQPlmxDgGwCitYIdgb9FmwAhCxFgGwCitYIdgb9FkwMTMTBTIEEgcHBgIEBxMDFzIANzYnJiYnLvwBmL0BG4MVBRnX/qbGCraa0wEpKhwPFLGRBbABt/69xizG/r24AgTk++YBAQHYkHeTowQAAAIAcv/oBXIFyAATACcASLIKKCkREjmwChCwG9AAsABFWLALLxuxCyA+WbAARViwAC8bsQAQPlmwCxCxGgGwCitYIdgb9FmwABCxJAGwCitYIdgb9FkwMQUuAicmNzc2EiQXHgIXFgICBAE2NzQmJicmAAcHBhUUFhYXFgA3An+P4YgNCAoMItUBM62Q4IgNDmTW/uYBTgYBQYNctf71IgIGQoNcsAECJxUDh/6gVldSwgFHrQMDhvyerv6Z/uqPAw40Om69ZAMF/sv2DzQ6cMBnAwcBIeUAAAIAcv8DBWwFyAAZACsASLIhLC0REjmwIRCwA9AAsABFWLAQLxuxECA+WbAARViwBS8bsQUQPlmwEBCxIAGwCitYIdgb9FmwBRCxJwGwCitYIdgb9FkwMSUXBycGIy4CJyY3NzYSJBcWFhIXFgcHBgIDNjc0JiYnJgYCFRQWFxY2EjcD2Mau9UY4kt2IDQcKCSDVATSxk+GHDAYKCB/ICAcBP4NeiduGl4pzxo4WU8aK9AsDhv+hV1c+xgFQsQMDiP8AnVhXN8r+xQI/NTpyvGUDBK7+wri83QQFfQECmgAAAQCrAAADNQSMAAYAMwCwAEVYsAUvG7EFHj5ZsABFWLAALxuxABA+WbIEAAUREjmwBC+xAwGwCitYIdgb9FkwMSEjEwU3JTMCce2X/pAmAkAkA2R618sAAAEAHwAABAoEoAAZAFeyChobERI5ALAARViwES8bsREePlmwAEVYsAAvG7EAED5ZsgMRABESObARELEJAbAKK1gh2Bv0WbINEQAREjmyFwARERI5sAAQsRkBsAorWCHYG/RZMDEhITcBNzY3NiYnJgYHBz4CFxYWBwYHBwEFA6X8eh4CGz1tDglTTmSKEOsJiOKCttAKDLdN/qcCMKkBpDNfZUZUAgJ6YgJ3vWgBBbKVp51A/vUCAAAB/3/+oAQVBI0AGABcsgUZGhESOQCwDC+wAEVYsAIvG7ECHj5ZsQABsAorWCHYG/RZsgQAAhESObIFDAIREjmwBS+wDBCxEQGwCitYIdgb9FmwBRCxFgOwCitYIdgb9FmyGBYFERI5MDEBITchBwEWFgcGBgQnJic3FhcWNjcSJSc3AsD91CMDXhv+ZJOnDQ6s/tyqstJKj6Oh6RMj/uFlEgPJxJr+hh70oaL5iwMDZrRZAgLAlwEKFAKGAAL/0f7EBCMEjAAKAA4AUwCwAEVYsAkvG7EJHj5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmxAAGwCitYIdgb9FmwBhCwBdCwBS+yCAYAERI5sAAQsAzQsg0JAhESOTAxJTMHIwMjEyE3ATMBIRMHA3KxIrA37Tf9bRUDOfz81wGUdx7Cw/7FATugA+38NgKDLAAB/9T+nQROBIwAHABgsgcdHhESOQCwDy+wAEVYsAEvG7EBHj5ZsQMBsAorWCHYG/RZsgcBDxESObAHL7EaAbAKK1gh2Bv0WbIFGgcREjmwDxCxFAGwCitYIdgb9FmyEhQaERI5shwaFBESOTAxExMhByEDNhcyFhYHBgYEJyYnNxYXFjY3NiYnJgdZ4QMUJf2vcWOAeq9QDQ+e/vekz7lad7KRzBMOaGmUSAF2AxbS/qg2AnrfiZfzjQIEda9kAgK+ln+fAwRyAAEAJ/7EBFQEjAAGACYAsAEvsABFWLAFLxuxBR4+WbEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNyEEOvzm+QMM/U0jA7ED+frLBQXDAAIBBATNA4IG2wALACAAeQCwAy+wBtCwBi9ACw8GHwYvBj8GTwYFXbAA0LAAL7ADELEJBrAKK1gh2Bv0WbAAELAQ0LAQL7AT0LATL0ALDxMfEy8TPxNPEwVdsBAQsBXQsBUvsBMQsRkIsAorWCHYG/RZsBAQsR4IsAorWCHYG/RZsBkQsCDQMDEBBgYnJiYnFwYXFjcTBgcGByImBwYHJzY2MzIWFxY3NjcDcQiyi4WhAqgEfYUbvQosLkYoiSg7H2YJXkYWJy9GKDwfBbBreAICe2YCbgICcgERVDIzAk4DA1QbUGsNGicDA1MAAf+y/poA/gC1AAMAEgCwBC+wAtCwAi+wAdCwAS8wMRMjEzOg7l7u/poCGwACADr/8gahBJ8AGAAkAJayASUmERI5sAEQsBvQALAARViwDC8bsQwePlmwAEVYsA8vG7EPHj5ZsABFWLACLxuxAhA+WbAARViwAC8bsQAQPlmwDxCxEQGwCitYIdgb9FmyFAAPERI5sBQvsRUBsAorWCHYG/RZsAAQsRgBsAorWCHYG/RZsAIQsRkBsAorWCHYG/RZsAwQsRwBsAorWCHYG/RZMDEhIQUjJiYCNzc2EjYXMhYzIQchAyEHIQMhBTcTJyYGBwYXFhYXBdn9e/7yTpHQXREGF6L/nVnEXQKBI/3KMAHoI/4aNgI7/GtllsSCtiEWBQVqXQ4ClAEDnTapAQiQARHE/vLD/soMBAMWDAK0qXBjcIQEAAACAEf+sARGBKMAGQAoAFSyIykqERI5sCMQsATQALAVL7AARViwDC8bsQwePlmwFRCxAAGwCitYIdgb9FmyBRUMERI5sAUvsRoBsAorWCHYG/RZsAwQsSIBsAorWCHYG/RZMDEFFjY3BicmAjc+AhcWFhIHBwYCBCcmJzcWARY3NzYnJiYnJgYGFxYWAVCR2lCCmbzNFA6U6IuTy1gTHSTF/uStjJFBcgEioXEcBwIDZFpbjkcKCV6LA7nSXQQCARXXk/iGAgSR/v6iwvH+pqsDAj20LwHpBHuuODxoegMDeNZnXG0AAAH/B/5GAT8AzQAMAC4AsA0vsABFWLAELxuxBBI+WbEJAbAKK1gh2Bv0WbANELEMBbAKK1gh2Bv0WTAxJQMGBicmJzcWMzI3EwE/KhjQokRAIjkmfiArzf70tMcCAhLFD68BDP///6j+oAQ+BI0ABgJMKQD////Y/p0EUgSMAAYCTgQA////yP7EBBoEjAEGAk33AAATALAARViwCS8bsQkePlmwDdAwMQD//wAXAAAEAgSgAAYCS/gA//8ARv7EBHMEjAEGAk8fAAAQALAARViwBS8bsQUePlkwMf//ACL/5gReBKUABgJl1AD//wBd/+gEDQW4AgYAGvoA//8ALv6wBC0EowAGAlPnAP//ADv/6ARFBcgCBgAcAAD//wD1AAADfwSMAAYCSkoA////D/5IAdwEOgIGAJwAAP///w/+SAHcBDoCBgCcAAD//wAiAAABywQ6AAYAjQAA////ff5bAcsEOgAmAI0AAAAGAKTVCv//ACIAAAHLBDoABgCNAAAAAQAK/+YD6AShACAAbLIHISIREjkAsABFWLAULxuxFB4+WbAARViwHi8bsR4QPlmwAEVYsA8vG7EPED5ZsB4QsQIBsAorWCHYG/RZsgkeFBESObAJL7EHB7AKK1gh2Bv0WbAUELEMB7AKK1gh2Bv0WbIYCQcREjkwMSUWMzI2NzYnJzc3JicmBwMjEzY2FxYWFwEWFgcGBicmJwGQRUVPbwsT0mAf7jVPsSp/6X4e8sFyv17+2IKOBgrwrm532zNuU5QCAa76NgID9/0UAuzW3wQEZ2r+0xahd6/YAgI2AAACAE7/5gSKBKUADAAdAEiyEh4fERI5sBIQsADQALAARViwBi8bsQYePlmwAEVYsAAvG7EAED5ZsAYQsREBsAorWCHYG/RZsAAQsRoBsAorWCHYG/RZMDEFJgITEgAXFhIDBwIAEzc0JicmBgcHBhcWFhcWNjcCGOLoGyQBR+/g5xsLMP7EjQVraIq8GQQGAwVsYYq7GRUFAUoBAQEhAUkFBf66/v5H/v7+3AKAU4yVBAXUwiA8QnSLBAXWxwAAAQBVAAAEYgWwAAYAMwCwAEVYsAUvG7EFID5ZsABFWLABLxuxARA+WbAFELEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNyEESP0H+gL3/V4iA5YFHPrkBO3DAAACABD/6AQjBgAAEgAfAGayBCAhERI5sAQQsBzQALAJL7AARViwDS8bsQ0cPlmwAEVYsAcvG7EHED5ZsABFWLAELxuxBBA+WbIGDQcREjmyCw0HERI5sA0QsRYBsAorWCHYG/RZsAQQsRsBsAorWCHYG/RZMDEBBgIGJyYnByMBMwM2FxYWFxYHJycmJyYHAxYXFjY3NgQaE5LWf7ddLc8BCu5seaahuwkDBuoEHJ6NZVEzi3ypGAgCGKD+84MDBIx7BgD90YEEBN+/QT5zJ7wFBIn+NYMEA8KoVAAAAQA3/+gEAwRUABsATbIAHB0REjkAsABFWLAPLxuxDxw+WbAARViwCC8bsQgQPlmxAAGwCitYIdgb9FmyBA8IERI5shMIDxESObAPELEWAbAKK1gh2Bv0WTAxJRY2NzcOAicmAjc3EgAXFhYVIyYmJyYGBwYWAfFXgxbfDobUcNPeGAIdATbfsNDdAl5SiqwIBmKtAmdTAWyvYwMFATDoFAEBATcGBOKzYnEEBvLigo0AAAIAO//nBJsGAAASAB8AY7IEICEREjmwBBCwGdAAsAcvsABFWLAELxuxBBw+WbAARViwCS8bsQkQPlmwAEVYsA0vG7ENED5ZsgYECRESObILBAkREjmxGAGwCitYIdgb9FmwBBCxHQGwCitYIdgb9FkwMRM2EjYXFhcTMwEjNwYnJiYnJjczBhcWFhcWNxMmJyYGRBOW1oGjX2jt/vbMDH+um74MBAbuBgQFYleFZ1Q1g32sAh+jAQyEAwR2Aiv6AHWOBATluz88NTtnfgQEhQHaeAQDwgACACr+UARMBFEAHAAqAH+yBCssERI5sAQQsCfQALAARViwBy8bsQccPlmwAEVYsAQvG7EEHD5ZsABFWLAMLxuxDBI+WbAARViwFi8bsRYQPlmyBgcWERI5sAwQsREBsAorWCHYG/RZshQHFhESObAWELEiAbAKK1gh2Bv0WbAEELEnAbAKK1gh2Bv0WTAxEzYSNhcWFzczAwYAJyYnNxYXBBM3BicuAicmNxcGFxYWFxY3EyYnJgYHRBOU14G2WirPqiL+1+Sum0JzjAEFSgd+oGWdXAYEBu4GBAViVYpkVTSGfqwXAh+jAQyDAwSDc/wZ8f7uBARZsk0CBwE8G3wEAWjDdj89ATU7Z30DBYUB23cEA8amAAIANP/oBD8EUQATACMARbIYJCUREjmwGBCwBNAAsABFWLAFLxuxBRw+WbAARViwDi8bsQ4QPlmxFwGwCitYIdgb9FmwBRCxHwGwCitYIdgb9FkwMRM2Ejc2Fx4CBwcGAgYnJiYnJjcXFhYXFjY3NicmJicmBgcGRRa7kmV5jMxhEAIUoPuTjc4vLQ/rB2lae7McBgQJall+shcIAiCwARNBLQMCkPyWFp7+/40EApJ/e5F2aXwDBcS9OD5rfwMDy6VRAAAC/8f+YAQhBFIAEgAeAGKyBB8gERI5sAQQsB3QALAARViwDS8bsQ0cPlmwAEVYsAovG7EKHD5ZsABFWLAHLxuxBxI+WbAARViwBC8bsQQQPlmwDRCxFwGwCitYIdgb9FmwBBCxHAGwCitYIdgb9FkwMQEGAgYnJicDIwE3BzYXFhYXFgcnNzQmJyYHAxYXFjYEGBOR1n+oYWHuAQTSDnyvnr0JAwbtBGZfhGNXMod6sQIYnv7zhQMEc/3+BdoBcokEAuS9QD4BS36NBAR8/hV0BAPGAAIAO/5gBEsEUQASAB4AbbIMHyAREjmwDBCwGNAAsABFWLAHLxuxBxw+WbAARViwBC8bsQQcPlmwAEVYsAkvG7EJEj5ZsABFWLANLxuxDRA+WbIGBw0REjmyCwcNERI5sRcBsAorWCHYG/RZsAQQsRwBsAorWCHYG/RZMDETNhI2FxYXNzMBIxMGJyYmJyY3FwcUFhcWNxMmJyYGRBKS2YWvXCrQ/vztY3mdnMAMBAbuBGReg2RZN399sQIfngEOhgMEf2/6JgH9dQQC4b8/PQFKe5QCBHkB928DA8cAAAIAO//rBAgEVAAVAB4Ag7IAHyAREjmwFtAAsABFWLAILxuxCBw+WbAARViwAC8bsQAQPlmyGQgAERI5sBkvtL8ZzxkCXbRfGW8ZAnG0HxkvGQJxso8ZAV207xn/GQJxsQwHsAorWCHYG/RZsAAQsRABsAorWCHYG/RZshIACBESObAIELEWAbAKK1gh2Bv0WTAxBS4CNzc2ABcWEgcHIQYWFxY3FwYGAyYDBTc2JyYmAg2Q2GoOAhkBOdfHzRsT/VgKhn2Jki0+vRHAYgHCBggFCFgTAYj0lxT+AUEGBP7q4oJ/nwIEUagzNwOhBv7wAR0vK0JPAAIAMP5QBDoEUQAbACkAf7IEKisREjmwBBCwJtAAsABFWLAHLxuxBxw+WbAARViwBC8bsQQcPlmwAEVYsAwvG7EMEj5ZsABFWLAWLxuxFhA+WbIGBxYREjmwDBCxEQGwCitYIdgb9FmyFAcWERI5sBYQsSEBsAorWCHYG/RZsAQQsSYBsAorWCHYG/RZMDETNhI2FxYXNzMDBgAnJic3FhcWEzcGJyYmJyY3MwYXFBYXFjcTJicmBgdGFIbOgrVcK86tIv7Y4aCSQmx7+EwRfp+asAcDBu0GAVhWi2JSMIh5nxYCH6UBBocCBIRz/Azt/vcEBEyxPwIHARBFegQE4ME+OzM7aH8EBIkB1HoEA8GrAP//AKQAAAMtBbUABgAVtQAAAwAi/+wERwSgABwAJQAxAG2yLjIzERI5sC4QsBLQsC4QsB/QALAARViwDC8bsQwePlmwAEVYsBkvG7EZED5ZsABFWLAALxuxABA+WbITDBkREjmxHQGwCitYIdgb9FmyIAwZERI5sikMGRESObAMELEvB7AKK1gh2Bv0WTAxBSYmNzY3NycmNzY2FxYWBwYHBxc2NzMGBxcjJwYnFjcnBwYHBhYTBhYXNzY3NiYjIgYBlaPQBwipdS5BBwfMkYesBwe8T69PFs4VpJfxN7GiY3O8QloLCkldBBcwLWkJBTgrL08QA6CCnHRISGxhf58CApt2mncy52WF3aLMSl7GAjP/Kj1JOkMCuR48Ox1ERy0yQgAAAf/tAAADPQSNAA0APrILDg8REjkAsABFWLAKLxuxCh4+WbAARViwBC8bsQQQPlmxAgGwCitYIdgb9FmyBgoEERI5sgwKBBESOTAxAQcDIQchEwc3NxMzAyUCZv9FAhsi/PhagBuAVu1JAQACmUz+dcICAyWbJgHu/lxLAAL/ggAABgwEjQAPABIAirISExQREjmwEhCwCtAAsABFWLAKLxuxCh4+WbAARViwBC8bsQQQPlmwAEVYsAgvG7EIED5Zsg8KBBESOXywDy8YsQABsAorWCHYG/RZsAQQsQIBsAorWCHYG/RZshEKBBESObARL7EGAbAKK1gh2Bv0WbAKELEMAbAKK1gh2Bv0WbISCgQREjkwMQEhAyEHIRMhAyEBIQchAyEFIRMFXv5TLAILIv0TJP6Vrf71AyUDZSP+BiQBtvw3AQZFAf7+wsABB/75BI3B/vT5AfcAAAIACgAAA8AEjQAMABUAWbIDFhcREjmwAxCwFdAAsABFWLAALxuxAB4+WbAARViwCy8bsQsQPlmwABCwFbAKK1jYG9xZsQMBsAorWCHYG/RZsg8ACxESObAPL7EJAbAKK1gh2Bv0WTAxEzMHFxYWBwYEIycHIwEDFzI2NzYmJ9TuIXPI5AsK/vHboijtAXZAh2iODQtZWwSNtwECy6Su1AHjAxL+lAFiW0xeBQAD/9z/yQS6BLoAFQAdACYAarIbJygREjmwGxCwEdCwGxCwJNAAsABFWLARLxuxER4+WbAARViwBi8bsQYQPlmyGAYRERI5shkRBhESObARELEbAbAKK1gh2Bv0WbIgEQYREjmyIQYRERI5sAYQsSMBsAorWCHYG/RZMDEBFgcHAgAnJicHJzcmNzcSABcWFzcXAQYXASYnJgIFNicBFhcWNjcEDVoaBB/+u/CUc2GxsGEbBiQBSueacl2w/GsECAH9NlmaxgI5AgX+BjdWmb4WA/iw5iP+8v66BAJHbwHFqvAuAQ4BPQQCTGoB/QY3NwJXLwQG/vwTMzX9rCwCBPr/AAACAB4AAAT1BI0AEwAXAJGyAxgZERI5sAMQsBfQALAARViwDC8bsQwePlmwAEVYsBAvG7EQHj5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmwEBCwALAKK1jYG9xZshUMAhESObAVL7EEAbAKK1gh2Bv0WbAAELAI0LAJ0LAAELETDrAKK1gh2Bv0WbAK0LATELAO0LAJELAW0LAX0DAxASMDIxMhAyMTIzczNzMHITczBzMBITchBORgkexT/gRT7ZNXHVcb7RsB/BvsGE/8igH8H/4FA0/8sQHb/iUDT6qUlJSU/qWxAAABAAr+RgSoBI0AEwBbsgMUFRESOQCwAEVYsA8vG7EPHj5ZsABFWLASLxuxEh4+WbAARViwAy8bsQMSPlmwAEVYsA0vG7ENED5ZsAMQsQgBsAorWCHYG/RZsgwPAxESObIRDwMREjkwMQUGBiciJzcWMzI3NwEDIxMzARMzA9gY0aE8SSM2KYMgCP6NjO3K5QF3jOw+tMgCFMUOvzEDIvzbBI382gMmAP//ADYCCQJYAs0CBgARAAAAAv//AAAE/gWwAA8AHgBssh4fIBESObAeELAO0ACwAEVYsAUvG7EFID5ZsABFWLAALxuxABA+WbIDAAUREjl8sAMvGLECB7AKK1gh2Bv0WbAR0LAAELETAbAKK1gh2Bv0WbAFELEcAbAKK1gh2Bv0WbADELAd0LAe0DAxMxMjNzMTBTIEEgcHBgIEIxMjAxcyJDc2JyYmJycDM0Vxtx62bgGKtgEHdhcLHs3+vMKf3U6SxgEFJRoHCZeGuUveAoyqAnoBtf7BwE/J/smsAoz+PgH73ZhxkaQEAf5SAAL//wAABP4FsAAPAB4AbLIeHyAREjmwHhCwDtAAsABFWLAFLxuxBSA+WbAARViwAC8bsQAQPlmyAwAFERI5fLADLxixAgewCitYIdgb9FmwEdCwABCxEwGwCitYIdgb9FmwBRCxHAGwCitYIdgb9FmwAxCwHdCwHtAwMTMTIzczEwUyBBIHBwYCBCMTIwMXMiQ3NicmJicnAzNFcbcetm4BirYBB3YXCx7N/rzCn91OksYBBSUaBwmXhrlL3gKMqgJ6AbX+wcBPyf7JrAKM/j4B+92YcZGkBAH+UgABACsAAAQXBgAAGgB2sgMbHBESOQCwGC+wAEVYsAQvG7EEHD5ZsABFWLARLxuxERA+WbAARViwCS8bsQkQPlmyLxgBXbIPGAFdshoRGBESObAaL7EBB7AKK1gh2Bv0WbICEQQREjmwBBCxDgGwCitYIdgb9FmwARCwE9CwGhCwFtAwMQEjAzYXFhYHAyMTNicmJyYHAyMTIzczNzMHMwLL5DKHrJqVE3TtdgUDDYOEaIft1L8evhnuHOIEx/78jgQC1r39SAK7KyV6AwKE/PoEx6qPjwAAAQCcAAAFIgWwAA8ATgCwAEVYsAovG7EKID5ZsABFWLACLxuxAhA+WbIPCgIREjmwDy+xAAewCitYIdgb9FmwBNCwDxCwBtCwChCxCAGwCitYIdgb9FmwDNAwMQEjAyMTIzczEyE3IQchAzMDvsmI9onNHsw0/kskBGIk/kg0ygMS/O4DEqoBKMzM/tgAAAH/4v/tAq4FQQAeAIOyFx8gERI5ALAARViwFS8bsRUcPlmwAEVYsBkvG7EZHD5ZsABFWLALLxuxCxA+WbIeGQsREjmwHi+xAAewCitYIdgb9FmwCxCxBgGwCitYIdgb9FmwABCwD9CwHhCwEdCwFRCxEwGwCitYIdgb9FmwFRCwF9CwFy+wExCwG9CwHNAwMQEjAwYXFhcyNwcGIyYmNxMjNzM3IzczEzMDMwcjBzMCbdEtAwIGSiUvEEpLfHsNLs8ezRutIKwu7i65H7oc0gI3/vEZFEEDCb4VAqWIARuqpbQBB/75tKUA////pAAABK4HNgImACUAAAEHAEQBWwE2ABMAsABFWLAELxuxBCA+WbAM3DAxAP///6QAAATIBzYCJgAlAAABBwB1AfYBNgATALAARViwBS8bsQUgPlmwDdwwMQD///+kAAAErgc3AiYAJQAAAQcAngDyATYAEwCwAEVYsAQvG7EEID5ZsA/cMDEA////pAAABMkHKwImACUAAAEHAKUBAAE3AAkAsAQvsBXcMDEA////pAAABK4HAwImACUAAAAHAGoBKAE2////pAAABK4HlQImACUAAAEHAKMBjAFqAAwAsAQvsBTcsBfQMDH///+kAAAE2gexAiYAJQAAAAcCJwGEARz//wBl/jgFDQXHAiYAJwAAAAcAeQG6//v//wAnAAAEugc9AiYAKQAAAQcARAEjAT0AEwCwAEVYsAYvG7EGID5ZsA3cMDEA//8AJwAABLoHPQImACkAAAEHAHUBvgE9ABMAsABFWLAGLxuxBiA+WbAO3DAxAP//ACcAAAS6Bz4CJgApAAABBwCeALoBPQATALAARViwBi8bsQYgPlmwEdwwMQD//wAnAAAEugcKAiYAKQAAAAcAagDwAT3//wA1AAACMgc9AiYALQAAAQcARP/cAT0AEwCwAEVYsAIvG7ECID5ZsAXcMDEA//8ANQAAA0gHPQImAC0AAAEHAHUAdgE9ABMAsABFWLADLxuxAyA+WbAG3DAxAP//ADUAAAMSBz4CJgAtAAABBwCe/3MBPQATALAARViwAi8bsQIgPlmwCNwwMQD//wA1AAADLAcKAiYALQAAAAcAav+pAT3//wAnAAAFhgcrAiYAMgAAAQcApQEoATcACQCwBS+wFNwwMQD//wBr/+cFIQc2AiYAMwAAAQcARAFyATYAEwCwAEVYsAovG7EKID5ZsCTcMDEA//8Aa//nBSEHNgImADMAAAEHAHUCDQE2AAkAsAovsCXcMDEA//8Aa//nBSEHNwImADMAAAEHAJ4BCQE2AAkAsAovsCTcMDEA//8Aa//nBSEHKwImADMAAAEHAKUBFwE3AAkAsAovsC3cMDEA//8Aa//nBSEHAwImADMAAAAHAGoBPwE2//8AW//mBS8HNgImADkAAAEHAEQBSgE2ABMAsABFWLAKLxuxCiA+WbAU3DAxAP//AFv/5gUvBzYCJgA5AAABBwB1AeUBNgATALAARViwEi8bsRIgPlmwFdwwMQD//wBb/+YFLwc3AiYAOQAAAQcAngDhATYAEwCwAEVYsAovG7EKID5ZsBfcMDEA//8AW//mBS8HAwImADkAAAAHAGoBFwE2//8AoQAABU0HNgImAD0AAAEHAHUBvQE2ABMAsABFWLABLxuxASA+WbAL3DAxAP//ACL/6APcBgACJgBFAAABBwBEALMAAAATALAARViwGC8bsRgcPlmwLdwwMQD//wAi/+gEIAYAAiYARQAAAQcAdQFOAAAAEwCwAEVYsBgvG7EYHD5ZsC7cMDEA//8AIv/oA+kGAQImAEUAAAEGAJ5KAAATALAARViwGC8bsRgcPlmwMNwwMQD//wAi/+gEIQX1AiYARQAAAQYApVgBABMAsABFWLAYLxuxGBw+WbAv3DAxAP//ACL/6AQDBc0CJgBFAAAABwBqAIAAAP//ACL/6APcBl8CJgBFAAABBwCjAOQANAAWALAARViwGC8bsRgcPlmwNdywO9AwMf//ACL/6AQyBnwCJgBFAAAABwInANz/5///ADj+OAPuBFICJgBHAAAABwB5ATz/+///ADv/6gQCBgACJgBJAAABBwBEAJwAAAATALAARViwCS8bsQkcPlmwIdwwMQD//wA7/+oECQYAAiYASQAAAQcAdQE3AAAAEwCwAEVYsAkvG7EJHD5ZsCLcMDEA//8AO//qBAIGAQImAEkAAAEGAJ4zAAATALAARViwCS8bsQkcPlmwJNwwMQD//wA7/+oEAgXNAiYASQAAAAYAamkA//8AIgAAAecF+QImAI0AAAEGAESR+QATALAARViwAi8bsQIcPlmwBdwwMQD//wAiAAAC/QX5AiYAjQAAAQYAdSv5ABMAsABFWLADLxuxAxw+WbAG3DAxAP//ACIAAALHBfoCJgCNAAABBwCe/yj/+QATALAARViwAi8bsQIcPlmwCNwwMQD//wAiAAAC4QXGAiYAjQAAAAcAav9e//n//wANAAAEJwX1AiYAUgAAAQYApV4BABMAsABFWLADLxuxAxw+WbAW3DAxAP//ADn/6AQnBgACJgBTAAABBwBEALAAAAATALAARViwBC8bsQQcPlmwItwwMQD//wA5/+gEJwYAAiYAUwAAAQcAdQFLAAAAEwCwAEVYsAQvG7EEHD5ZsCPcMDEA//8AOf/oBCcGAQImAFMAAAEGAJ5HAAATALAARViwBC8bsQQcPlmwJdwwMQD//wA5/+gEJwX1AiYAUwAAAQYApVUBABMAsABFWLAELxuxBBw+WbAk3DAxAP//ADn/6AQnBc0CJgBTAAAABgBqfQD//wBK/+gEMQYAAiYAWQAAAQcARAC1AAAAEwCwAEVYsAgvG7EIHD5ZsBXcMDEA//8ASv/oBDEGAAImAFkAAAEHAHUBUAAAAAkAsAcvsBbcMDEA//8ASv/oBDEGAQImAFkAAAEGAJ5MAAAJALAHL7AV3DAxAP//AEr/6AQxBc0CJgBZAAAABwBqAIIAAP///7X+RQQSBgACJgBdAAABBwB1ARoAAAAJALABL7AS3DAxAP///7X+RQQSBc0CJgBdAAAABgBqTAD///+kAAAEsQbkAiYAJQAAAQcAcAD6AToAEwCwAEVYsAQvG7EEID5ZsAzcMDEA//8AIv/oBAkFrgImAEUAAAEGAHBSBAAJALAYL7As3DAxAP///6QAAASuBx0CJgAlAAABBwChATABNgAJALAEL7AO3DAxAP//ACL/6AP0BecCJgBFAAABBwChAIgAAAAJALAYL7Av3DAxAAAC/6T+UQSuBbAAFwAaAHmyFRscERI5sBUQsBrQALAARViwFS8bsRUgPlmwAEVYsAsvG7ELEj5ZsABFWLATLxuxExA+WbAARViwFy8bsRcQPlmwCxCxBgOwCitYIdgb9FmwFxCwENCwEC+yGRMVERI5sBkvsREBsAorWCHYG/RZshoVExESOTAxIRcHBgcGFxY3FwYnIiY3NjcDIQMhATMBASEDBHEFL4MHBTgbPQxFVVdpAgO0Nv3frv72AxLeARr9FgGYYwMfVlY5AwEXkCsCbVSVaQFB/q0FsPpQAh8CWgAAAgAi/lED3ARQADAAOwCesho8PRESObAaELA20ACwAEVYsCgvG7EoHD5ZsABFWLALLxuxCxI+WbAARViwAC8bsQAQPlmwAEVYsBQvG7EUED5ZsAAQsBDQsBAvshIoABESObIaFCgREjmwGi+wKBCxIAewCitYIdgb9FmyJBogERI5QAkMJBwkLCQ8JARdsBQQsTEBsAorWCHYG/RZsBoQsTYHsAorWCHYG/RZMDEhFwcGBwYXFjcXBiciJjc2Nyc1BicmJjc2JDMXNzYnJicmBgcHPgIXFhYHAwcGFwclFjY3NyciBgcGFgNKBS+DBwU4Gz0MRVVXaQIDtQSGm425BggBGOyaDgYGFHtMcw3tB4DUdrHGEVMIAxIB/iFLgC0lcYagCwhLAx9WVjkDAReQKwJtVJZpKSl9BAKxiKvEAkonImwDAlFEAmSXVAIEzaP+BVo7OBKuAkk6zQFlWENN//8AZf/oBQ0HSwImACcAAAEHAHUB+AFLAAkAsAwvsCHcMDEA//8AOP/pA/MGAAImAEcAAAEHAHUBIQAAAAkAsBEvsB/cMDEA//8AZf/oBQ0HTAImACcAAAEHAJ4A9AFLAAkAsAwvsCDcMDEA//8AOP/pA+4GAQImAEcAAAEGAJ4dAAAJALARL7Ae3DAxAP//AGX/6AUNBywCJgAnAAABBwCiAdUBVAAJALAML7An3DAxAP//ADj/6QPuBeECJgBHAAABBwCiAP4ACQAJALARL7Al3DAxAP//AGX/6AUNB1ACJgAnAAABBwCfAQsBSwAJALAML7Aj3DAxAP//ADj/6QPwBgUCJgBHAAABBgCfNAAACQCwES+wIdwwMQD//wAnAAAE4AdCAiYAKAAAAQcAnwCbAT0AEwCwAEVYsAEvG7EBID5ZsBzcMDEA//8AO//nBdUGAgAmAEgAAAAHAboEvwT8//8AJwAABLoG6wImACkAAAEHAHAAwgFBABMAsABFWLAGLxuxBiA+WbAN3DAxAP//ADv/6gQCBa4CJgBJAAABBgBwOwQACQCwCS+wINwwMQD//wAnAAAEugckAiYAKQAAAQcAoQD4AT0ACQCwBi+wD9wwMQD//wA7/+oEAgXnAiYASQAAAQYAoXEAAAkAsAkvsCPcMDEA//8AJwAABLoHHgImACkAAAEHAKIBmwFGAAkAsAYvsBTcMDEA//8AO//qBAIF4QImAEkAAAEHAKIBFAAJAAkAsAkvsCjcMDEAAAEAJ/5RBLoFsAAcAISyER0eERI5ALAARViwFy8bsRcgPlmwAEVYsBAvG7EQEj5ZsABFWLAELxuxBBA+WbAARViwFS8bsRUQPlmyGxUXERI5sBsvsQEBsAorWCHYG/RZsBUQsQIBsAorWCHYG/RZsAPQsBAQsQsDsAorWCHYG/RZsBcQsRkBsAorWCHYG/RZMDEBIQMhByMXBwYHBhcWNxcGJyImNzY3IRMhByEDIQPT/bxOAqYjcQUvgwcFOBs9DEVVV2kCA5b9sPwDlyT9YUYCRQKK/kDKAx9WVjkDAReQKwJtVIxgBbDM/m4AAgA8/mwECARRACMALACksgYtLhESObAGELAk0ACwAEVYsBkvG7EZHD5ZsABFWLAMLxuxDBI+WbAARViwES8bsREQPlmwA9CyJi0ZERI5sCYvso8mAV20HyYvJgJxtJ8mryYCcbRfJm8mAnG0vybPJgJdtO8m/yYCcbQvJj8mAnKxHQewCitYIdgb9FmwERCxIQGwCitYIdgb9FmyIxEZERI5sBkQsSQBsAorWCHYG/RZMDElBgcHBgcGFxY3FwYnIiY3NjcmAjc3NhI2FxYSBwchBhYXFjcDJgMFNzYnJiYDplWNMW0IBTgbPQxFVVdpAgJgt8wRAxKd6onLyxkO/VcJemuZgcm8XgHBBAcGC1q2eDIhTFI5AwEXkCsCbVRtVRkBHM4ppQEHiAME/trsaIGeAgWKAlgG/vABFS4sR1IA//8AJwAABLoHQgImACkAAAEHAJ8A0QE9ABMAsABFWLAGLxuxBiA+WbAR3DAxAP//ADv/6gQGBgUCJgBJAAABBgCfSgAACQCwCS+wJNwwMQD//wBr/+oFFgdMAiYAKwAAAQcAngDxAUsACQCwDS+wI9wwMQD////3/k8EQgYBAiYASwAAAQYAnj4AAAkAsAQvsCzcMDEA//8Aa//qBRYHMgImACsAAAEHAKEBLwFLAAkAsA0vsCXcMDEA////9/5PBEIF5wImAEsAAAEGAKF8AAAJALAEL7Au3DAxAP//AGv/6gUWBywCJgArAAABBwCiAdIBVAAJALANL7Aq3DAxAP////f+TwRCBeECJgBLAAABBwCiAR8ACQAJALAEL7Az3DAxAP//AGv98wUWBcgCJgArAAAABwG6AZT+jP////f+TwRCBqsCJgBLAAABBwI0ATQAfgAJALAEL7Av3DAxAP//ACcAAAWHBz4CJgAsAAABBwCeARIBPQATALAARViwBy8bsQcgPlmwENwwMQD//wANAAAD+QdeAiYATAAAAQcAngBSAV0ACQCwES+wFNwwMQD//wA1AAADSgcyAiYALQAAAQcApf+BAT4ACQCwAi+wDtwwMQD//wAUAAAC/wXuAiYAjQAAAQcApf82//oACQCwAi+wDtwwMQD//wA1AAADMgbrAiYALQAAAQcAcP97AUEAEwCwAEVYsAIvG7ECID5ZsAXcMDEA//8AIgAAAucFpwImAI0AAAEHAHD/MP/9ABMAsABFWLACLxuxAhw+WbAF3DAxAP//ADUAAAMdByQCJgAtAAABBwCh/7EBPQAJALACL7AH3DAxAP//ACIAAALSBeACJgCNAAABBwCh/2b/+QAJALACL7AH3DAxAP///47+VwIoBbACJgAtAAAABgCk5gb///92/lECCQXYAiYATQAAAAYApM4A//8ANQAAAlQHHgImAC0AAAEHAKIAUwFGAAkAsAIvsAzcMDEA//8ANf/nBpwFsAAmAC0AAAAHAC4COwAA//8AH/5GBAMF2AAmAE0AAAAHAE4CBQAA//8AA//nBTEHNwImAC4AAAEHAJ4BkgE2AAkAsAAvsBDcMDEA////D/5IAscF3wImAJwAAAEHAJ7/KP/eABMAsABFWLAMLxuxDBw+WbAR3DAxAP//ACf+RAVxBbACJgAvAAAABwG6AV/+3f//ABH+LwRKBgACJgBPAAAABwG6AO7+yP//ACcAAAPDBzYCJgAwAAABBwB1AGoBNgATALAARViwBS8bsQUgPlmwCNwwMQD//wAfAAADPQeRAiYAUAAAAQcAdQBrAZEAEwCwAEVYsAMvG7EDIj5ZsAbcMDEA//8AJ/4DA8MFsAImADAAAAAHAboBJf6c////ov4DAhcGAAImAFAAAAAHAbr/0/6c//8AJwAAA98FsQImADAAAAEHAboCyQSrABAAsABFWLAKLxuxCiA+WTAx//8AHwAAA3QGAgAmAFAAAAEHAboCXgT8AAYAsAgvMDH//wAnAAADwwWwAiYAMAAAAAcAogFc/dT//wAfAAAC8wYAACYAUAAAAAcAogDy/a///wAnAAAFhgc2AiYAMgAAAQcAdQIeATYAEwCwAEVYsAgvG7EIID5ZsAzcMDEA//8ADQAABCYGAAImAFIAAAEHAHUBVAAAAAkAsAMvsBXcMDEA//8AJ/3/BYYFsAImADIAAAAHAboBkP6Y//8ADf4DA/oEUgImAFIAAAAHAboA+v6c//8AJwAABYYHOwImADIAAAEHAJ8BMQE2ABMAsABFWLAGLxuxBiA+WbAP3DAxAP//AA0AAAQjBgUCJgBSAAABBgCfZwAACQCwAy+wF9wwMQD//wANAAAD+gYDAiYAUgAAAQcBugBABP0ABgCwFy8wMf//AGv/5wUhBuQCJgAzAAABBwBwAREBOgAJALAKL7Aj3DAxAP//ADn/6AQnBa4CJgBTAAABBgBwTwQACQCwBC+wIdwwMQD//wBr/+cFIQcdAiYAMwAAAQcAoQFHATYACQCwCi+wJtwwMQD//wA5/+gEJwXnAiYAUwAAAQcAoQCFAAAACQCwBC+wJNwwMQD//wBr/+cFdwc1AiYAMwAAAQcApgGOATYADACwCi+wJdywJ9AwMf//ADn/6AS1Bf8CJgBTAAABBwCmAMwAAAAMALAEL7Aj3LAl0DAx//8AJwAABNgHNgImADYAAAEHAHUBqAE2AAkAsAQvsBrcMDEA//8AEAAAA4YGAAImAFYAAAEHAHUAtAAAAAkAsAsvsBDcMDEA//8AJ/4DBNgFsAImADYAAAAHAboBJv6c////nP4DAu8EUwImAFYAAAAHAbr/zf6c//8AJwAABNgHOwImADYAAAEHAJ8AuwE2AAkAsAQvsBzcMDEA//8AEAAAA4QGBQImAFYAAAEGAJ/IAAAJALALL7AS3DAxAP//ACT/6gS7BzYCJgA3AAABBwB1AcQBNgAJALAKL7As3DAxAP//ABz/6QQDBgACJgBXAAABBwB1ATEAAAAJALAIL7An3DAxAP//ACT/6gS7BzcCJgA3AAABBwCeAMABNgAJALAKL7Ar3DAxAP//ABz/6QPMBgECJgBXAAABBgCeLQAACQCwCC+wJtwwMQD//wAk/j0EuwXHAiYANwAAAAcAeQGQAAD//wAc/jQDxARQAiYAVwAAAAcAeQFC//f//wAk/fkEuwXHAiYANwAAAAcBugE+/pL//wAc/e8DxARQAiYAVwAAAAcBugDw/oj//wAk/+oEuwc7AiYANwAAAQcAnwDXATYACQCwCi+wLtwwMQD//wAc/+kEAAYFAiYAVwAAAQYAn0QAAAkAsAgvsCncMDEA//8AnP38BSIFsAImADgAAAAHAboBLf6V//8AO/35Aq4FQQImAFgAAAAHAboAg/6S//8AnP5ABSIFsAImADgAAAAHAHkBfwAD//8AO/49Aq4FQQImAFgAAAAHAHkA1QAA//8AnAAABSIHOwImADgAAAEHAJ8AyQE2ABMAsABFWLAGLxuxBiA+WbAN3DAxAP//ADv/7QPIBoMAJgBYAAAABwG6ArIFff//AFv/5gUvBysCJgA5AAABBwClAO8BNwAJALAAL7Ad3DAxAP//AEr/6AQxBfUCJgBZAAABBgClWgEACQCwBy+wHtwwMQD//wBb/+YFLwbkAiYAOQAAAQcAcADpAToACQCwAC+wE9wwMQD//wBK/+gEMQWuAiYAWQAAAQYAcFQEAAkAsAcvsBTcMDEA//8AW//mBS8HHQImADkAAAEHAKEBHwE2AAkAsAAvsBbcMDEA//8ASv/oBDEF5wImAFkAAAEHAKEAigAAAAkAsAcvsBfcMDEA//8AW//mBS8HlQImADkAAAEHAKMBewFqAAwAsAAvsBzcsB/QMDH//wBK/+gEMQZfAiYAWQAAAQcAowDmADQADACwBy+wHdywINAwMf//AFv/5gVPBzUCJgA5AAABBwCmAWYBNgAMALAAL7AV3LAX0DAx//8ASv/oBLoF/wImAFkAAAEHAKYA0QAAAAwAsAcvsBbcsBjQMDEAAQBb/ogFMgWwACAAY7IHISIREjkAsABFWLAALxuxACA+WbAARViwFy8bsRcgPlmwAEVYsA0vG7ENGD5ZsABFWLASLxuxEhA+WbIEEgAREjmwDRCxCAOwCitYIdgb9FmwEhCxHAGwCitYIdgb9FkwMQEDBgYHBgcGFxY3FwYnIiY3NjcuAjcTMwMGFhcWNjcTBTKlF76VegoFOBs9DEVVV2kCAj2Q0mARpfalEnZ7h7QZpwWw/DOk9jhQWDkDAReQKwJtVFhICITfjAPO/DGLnAQEmpAD1AAAAQBK/lEEMQQ6ACMAebISJCUREjkAsABFWLAYLxuxGBw+WbAARViwIS8bsSEcPlmwAEVYsAsvG7ELEj5ZsABFWLAALxuxABA+WbAARViwEy8bsRMQPlmwCxCxBgOwCitYIdgb9FmwABCwENCwEC+yESEAERI5sBMQsR4BsAorWCHYG/RZMDEhFwcGBwYXFjcXBiciJjc2NzcGJy4CNxMzAwYXFhcWNxMzAwNcBS+DBwU4Gz0MRVVXaQIDsRJ7uWmLOwx17XYEAwpznWGI7bsDH1ZWOQMBF5ArAm1UlmdagwQCZLN5Arz9QSUjfAUGhAMK+8YA//8AtwAABzoHNwImADsAAAEHAJ4BvwE2ABMAsABFWLAMLxuxDCA+WbAP3DAxAP//AHcAAAX4BgECJgBbAAABBwCeAQIAAAATALAARViwCy8bsQscPlmwEdwwMQD//wChAAAFTQc3AiYAPQAAAQcAngC5ATYAEwCwAEVYsAEvG7EBID5ZsAvcMDEA////tf5FBBIGAQImAF0AAAEGAJ4WAAATALAARViwDy8bsQ8cPlmwFNwwMQD//wChAAAFTQcDAiYAPQAAAAcAagDvATb////lAAAE5wc2AiYAPgAAAQcAdQG5ATYAEwCwAEVYsAcvG7EHID5ZsAzcMDEA////5wAAA/EGAAImAF4AAAEHAHUBHwAAABMAsABFWLAHLxuxBxw+WbAM3DAxAP///+UAAATnBxcCJgA+AAABBwCiAZYBPwAJALAHL7AS3DAxAP///+cAAAPkBeECJgBeAAABBwCiAPwACQAJALAHL7AS3DAxAP///+UAAATnBzsCJgA+AAABBwCfAMwBNgAJALAHL7AO3DAxAP///+cAAAPuBgUCJgBeAAABBgCfMgAACQCwBy+wDtwwMQD///+HAAAHeAdCAiYAgQAAAQcAdQLqAUIAEwCwAEVYsAYvG7EGID5ZsBXcMDEA//8AD//oBnAGAQImAIYAAAEHAHUCawABAAkAsBkvsEHcMDEA//8AFf+hBZgHgAImAIMAAAEHAHUCIAGAABMAsABFWLAMLxuxDCA+WbAu3DAxAP//ACr/dwQzBf4CJgCJAAABBwB1ATP//gATALAARViwBS8bsQUcPlmwMdwwMQD///+XAAAEGgSNAiYCMAAAAQcCJv8E/24AOwCyHxoBcbJvGgFxsv8aAXGyDxoBcrKfGgFysl8aAXK2vxrPGt8aA3GyPxoBcbLfGgFdtB8aLxoCXTAxAP///5cAAAQaBI0CJgIwAAABBwIm/wT/bgA7ALIfGgFxsm8aAXGy/xoBcbIPGgFysp8aAXKyXxoBcra/Gs8a3xoDcbI/GgFxst8aAV20HxovGgJdMDEA//8AYgAABFoEjQImAdgAAAEGAiYlvgAIALIACwFdMDH///+bAAAEBQYeAiYCMwAAAQcARADSAB4AEwCwAEVYsAQvG7EEHj5ZsAzcMDEA////mwAABD8GHgImAjMAAAEHAHUBbQAeABMAsABFWLAFLxuxBR4+WbAN3DAxAP///5sAAAQIBh8CJgIzAAABBgCeaR4AEwCwAEVYsAQvG7EEHj5ZsA/cMDEA////mwAABEAGEwImAjMAAAEGAKV3HwAJALAEL7AV3DAxAP///5sAAAQiBesCJgIzAAAABwBqAJ8AHv///5sAAAQFBn0CJgIzAAABBwCjAQMAUgAMALAEL7AU3LAX0DAx////mwAABFEGmQImAjMAAAAHAicA+wAE//8AOf49BEkEowImAjEAAAAHAHkBYAAA//8ACgAAA/kGHgImAigAAAEHAEQAogAeABMAsABFWLAGLxuxBh4+WbAN3DAxAP//AAoAAAQPBh4CJgIoAAABBwB1AT0AHgATALAARViwBy8bsQcePlmwDtwwMQD//wAKAAAD+QYfAiYCKAAAAQYAnjkeABMAsABFWLAGLxuxBh4+WbAQ3DAxAP//AAoAAAP5BesCJgIoAAAABgBqbx7//wAYAAAB4AYeAiYB4wAAAQYARIoeABMAsABFWLACLxuxAh4+WbAF3DAxAP//ABgAAAL2Bh4CJgHjAAABBgB1JB4AEwCwAEVYsAMvG7EDHj5ZsAbcMDEA//8AGAAAAsAGHwImAeMAAAEHAJ7/IQAeABMAsABFWLACLxuxAh4+WbAI3DAxAP//ABgAAALaBesCJgHjAAAABwBq/1cAHv//AAoAAASoBhMCJgHeAAABBwClAJUAHwAJALAFL7AU3DAxAP//ADr/6gRjBh4CJgHdAAABBwBEAN8AHgATALAARViwCS8bsQkePlmwItwwMQD//wA6/+oEYwYeAiYB3QAAAQcAdQF6AB4ACQCwCS+wI9wwMQD//wA6/+oEYwYfAiYB3QAAAQYAnnYeAAkAsAkvsCLcMDEA//8AOv/qBGMGEwImAd0AAAEHAKUAhAAfAAkAsAkvsCvcMDEA//8AOv/qBGMF6wImAd0AAAAHAGoArAAe//8AOf/rBGoGHgImAdcAAAEHAEQAwAAeABMAsABFWLAJLxuxCR4+WbAT3DAxAP//ADn/6wRqBh4CJgHXAAABBwB1AVsAHgAJALAAL7AU3DAxAP//ADn/6wRqBh8CJgHXAAABBgCeVx4ACQCwAC+wE9wwMQD//wA5/+sEagXrAiYB1wAAAAcAagCNAB7//wBtAAAEgAYeAiYB0wAAAQcAdQE1AB4AEwCwAEVYsAEvG7EBHj5ZsAvcMDEA////mwAABCgFzAImAjMAAAEGAHBxIgATALAARViwBC8bsQQePlmwDNwwMQD///+bAAAEEwYFAiYCMwAAAQcAoQCnAB4ACQCwBC+wDtwwMQAAAv+b/lEEBQSNABcAGgCGshUbHBESObAVELAa0ACwAEVYsBUvG7EVHj5ZsABFWLALLxuxCxI+WbAARViwAC8bsQAQPlmwAEVYsBMvG7ETED5ZsABFWLABLxuxARA+WbALELEGA7AKK1gh2Bv0WbABELAQ0LAQL7IZFQAREjmwGS+xEQewCitYIdgb9FmyGhUAERI5MDEhFwcGBwYXFjcXBiciJjc2NychByMBMxMBIQMD0AUvgwcFOBs9DEVVV2kCA7ws/i6I+QKT2v39fAFIVwMfVlY5AwEXkCsCbVSYa+L5BI37cwGyAbj//wA5/+wESQYeAiYCMQAAAQcAdQFqAB4ACQCwCy+wH9wwMQD//wA5/+wESQYfAiYCMQAAAQYAnmYeAAkAsAsvsB7cMDEA//8AOf/sBEkF/wImAjEAAAEHAKIBRwAnAAkAsAsvsCXcMDEA//8AOf/sBEkGIwImAjEAAAEGAJ99HgAJALALL7Ah3DAxAP//AAoAAAQaBiMCJgIwAAABBgCf/h4AEwCwAEVYsAIvG7ECHj5ZsBvcMDEA//8ACgAAA/kFzAImAigAAAEGAHBBIgATALAARViwBi8bsQYePlmwDdwwMQD//wAKAAAD+QYFAiYCKAAAAQYAoXceAAkAsAYvsA/cMDEA//8ACgAAA/kF/wImAigAAAEHAKIBGgAnAAkAsAYvsBTcMDEAAAEACv5RA/kEjQAcAISyFR0eERI5ALAARViwFy8bsRcePlmwAEVYsBAvG7EQEj5ZsABFWLAELxuxBBA+WbAARViwFS8bsRUQPlmyHBcEERI5sBwvsQABsAorWCHYG/RZsBUQsQIBsAorWCHYG/RZsAPQsBAQsQsDsAorWCHYG/RZsBcQsRkBsAorWCHYG/RZMDEBIQMhByMXBwYHBhcWNxcGJyImNzY3IRMhByEDIQM1/ho2AjsjYAUvgwcFOBs9DEVVV2kCA5b+FcoDJSP9yS8B6AH4/srCAx9WVjkDAReQKwJtVIxgBI3E/vL//wAKAAAEDAYjAiYCKAAAAQYAn1AeABMAsABFWLAGLxuxBh4+WbAR3DAxAP//AD//8ARRBh8CJgHlAAABBgCeah4ACQCwCy+wItwwMQD//wA///AEUQYFAiYB5QAAAQcAoQCoAB4ACQCwCy+wJNwwMQD//wA///AEUQX/AiYB5QAAAQcAogFLACcACQCwCy+wKdwwMQD//wA//fkEUQSjAiYB5QAAAAcBugEg/pL//wAKAAAEqQYfAiYB5AAAAQYAnnweABMAsABFWLAHLxuxBx4+WbAQ3DAxAP//AA0AAAL4BhMCJgHjAAABBwCl/y8AHwAJALACL7AO3DAxAP//ABgAAALgBcwCJgHjAAABBwBw/ykAIgATALAARViwAi8bsQIePlmwBdwwMQD//wAYAAACywYFAiYB4wAAAQcAof9fAB4ACQCwAi+wB9wwMQD///+K/lEBzwSNAiYB4wAAAAYApOIA//8AGAAAAgIF/wImAeMAAAEGAKIBJwAJALACL7AM3DAxAP////L/6wSQBh8CJgHiAAABBwCeAPEAHgATALAARViwAC8bsQAePlmwE9wwMQD//wAK/gAEnQSNAiYB4QAAAAcBugDM/pn//wAKAAADNAYeAiYB4AAAAQYAdRseABMAsABFWLAFLxuxBR4+WbAI3DAxAP//AAr+AQM0BI0CJgHgAAAABwG6AMr+mv//AAoAAAM7BJACJgHgAAABBwG6AiUDigAQALAARViwCi8bsQoePlkwMf//AAoAAAM0BI0CJgHgAAAABwCiAO79Rv//AAoAAASoBh4CJgHeAAABBwB1AYsAHgATALAARViwCC8bsQgePlmwDNwwMQD//wAK/fkEqASNAiYB3gAAAAcBugEu/pL//wAKAAAEqAYjAiYB3gAAAQcAnwCeAB4AEwCwAEVYsAYvG7EGHj5ZsA/cMDEA//8AOv/qBGMFzAImAd0AAAEGAHB+IgAJALAJL7Ah3DAxAP//ADr/6gRjBgUCJgHdAAABBwChALQAHgAJALAJL7Ak3DAxAP//ADr/6gTkBh0CJgHdAAABBwCmAPsAHgAMALAJL7Aj3LAl0DAx//8ACgAABBYGHgImAdoAAAEHAHUBIAAeAAkAsAQvsBjcMDEA//8ACv4BBBYEjQImAdoAAAAHAboA0v6a//8ACgAABBYGIwImAdoAAAEGAJ8zHgAJALAEL7Aa3DAxAP//AA7/7QQbBh4CJgHZAAABBwB1AUkAHgAJALAJL7Ap3DAxAP//AA7/7QP/Bh8CJgHZAAABBgCeRR4ACQCwCS+wKNwwMQD//wAO/j0D/wSfAiYB2QAAAAcAeQFFAAD//wAO/+0EGAYjAiYB2QAAAQYAn1weAAkAsAkvsCvcMDEA//8AYv3/BFoEjQImAdgAAAAHAboA3v6Y//8AYgAABFoGIwImAdgAAAEGAJ9KHgATALAARViwBi8bsQYePlmwDdwwMQD//wBi/kMEWgSNAiYB2AAAAAcAeQEwAAb//wA5/+sEagYTAiYB1wAAAQYApWUfAAkAsAAvsBzcMDEA//8AOf/rBGoFzAImAdcAAAEGAHBfIgAJALAAL7AS3DAxAP//ADn/6wRqBgUCJgHXAAABBwChAJUAHgAJALAAL7AV3DAxAP//ADn/6wRqBn0CJgHXAAABBwCjAPEAUgAMALAAL7Ab3LAe0DAx//8AOf/rBMUGHQImAdcAAAEHAKYA3AAeAAwAsAAvsBTcsBbQMDEAAQA6/oEEagSNAB8AY7IFICEREjkAsABFWLAALxuxAB4+WbAARViwFi8bsRYePlmwAEVYsA0vG7ENGD5ZsABFWLASLxuxEhA+WbIEEgAREjmwDRCxCAOwCitYIdgb9FmwEhCxGwGwCitYIdgb9FkwMQEDBgYHBgcGFxY3FwYnIiY3NjcmJjcTMwMGFhcWNjcTBGqCGKeEeQoFOBs9DEVVV2kCAkuywhOB7IILW2drjhKDBI389Y3DKU9YOQMBF5ArAm1UYk0T3aoDAPz/ZXIDBG9pAwcA//8AjAAABh4GHwImAdUAAAEHAJ4BFQAeABMAsABFWLABLxuxAR4+WbAP3DAxAP//AG0AAASABh8CJgHTAAABBgCeMR4AEwCwAEVYsAgvG7EIHj5ZsA3cMDEA//8AbQAABIAF6wImAdMAAAAGAGpnHv///9YAAAQnBh4CJgHSAAABBwB1ATgAHgATALAARViwCC8bsQgePlmwDNwwMQD////WAAAEJwX/AiYB0gAAAQcAogEVACcACQCwBy+wEtwwMQD////WAAAEJwYjAiYB0gAAAQYAn0seABMAsABFWLAHLxuxBx4+WbAP3DAxAP///6QAAASuBkECJgAlAAAABgCuwQD///9eAAAEugZBAiYAKQAAAAcArv4wAAD///9mAAAFhwZBAiYALAAAAAcArv44AAD///9qAAACKAZDAiYALQAAAAcArv48AAL//wAY/+cFNQZBACYAMxQAAAcArv7qAAD///9YAAAFsQZBACYAPWQAAAcArv4qAAD//wAdAAAFCwZBACYAuhQAAAcArv70AAD//wAL//QDRgaaAiYAwwAAAQcAr/8j/+sAEgCwAC+wJ9ywDtCwJxCwEtAwMf///6QAAASuBbACBgAlAAD//wAnAAAEvAWwAgYAJgAA//8AJwAABLoFsAIGACkAAP///+UAAATnBbACBgA+AAD//wAnAAAFhwWwAgYALAAA//8ANQAAAigFsAIGAC0AAP//ACcAAAVxBbACBgAvAAD//wAnAAAGzgWwAgYAMQAA//8AJwAABYYFsAIGADIAAP//AGv/5wUhBcgCBgAzAAD//wAnAAAFBAWwAgYANAAA//8AnAAABSIFsAIGADgAAP//AKEAAAVNBbACBgA9AAD////DAAAFRwWwAgYAPAAA//8ANQAAAywHCgImAC0AAAAHAGr/qQE9//8AoQAABU0HAwImAD0AAAAHAGoA7wE2//8APv/qBDMGQQImALsAAAEHAK4BRgAAAAkAsBovsC7cMDEA//8AKP/qBAIGQQImAL8AAAEHAK4BEAAAAAkAsAgvsCrcMDEA//8AEf5hBAYGQQImAMEAAAEHAK4BGgAAAAkAsAMvsBXcMDEA//8Abv/0ApIGLAImAMMAAAEGAK4K6wAJALAAL7AQ3DAxAP//AFf/5QQ9BqICJgDLAAABBgCvGvMAEgCwCi+wMNywF9CwMBCwG9AwMf//ACEAAASNBDoCBgCOAAD//wA5/+gEJwRSAgYAUwAA////3f5gBFQEOgIGAHYAAP//AGQAAAQNBDoCBgBaAAAAAf+l/k0EaQRJAB4AWbITHyAREjkAsABFWLAFLxuxBRw+WbAARViwAC8bsQAcPlmwAEVYsBUvG7EVEj5ZsABFWLAQLxuxEBI+WbEMAbAKK1gh2Bv0WbAAELEbAbAKK1gh2Bv0WTAxExYWFxcBMwETFxYXFzcHBicmJicnASMBAyYmJwc3Nv5ihik1ASn8/iJxCxw7KSk6MyRYeCk6/rj/AgFeGEQwRQ9BBEcCepHMAcz9Gv5PI1YKAwPHDAIGjZ3f/gIDGQFzT0EDA7sSAP//AEz/9AL+BbgCJgDDAAAABwBq/3v/6///AFf/5QP+BcACJgDLAAAABgBqcvP//wA5/+gEJwZBAiYAUwAAAQcArgENAAAACQCwBC+wI9wwMQD//wBX/+UD/gY0AiYAywAAAQcArgEC//MACQCwCi+wGdwwMQD//wBU/+QGEAYyAiYAzgAAAQcArgIY//EACQCwGi+wLtwwMQD//wAnAAAEugcKAiYAKQAAAAcAagDwAT3//wAuAAAErAc9AiYAsQAAAQcAdQG5AT0AEwCwAEVYsAQvG7EEID5ZsAjcMDEAAAEAJP/qBLsFxwApAGSyAyorERI5ALAARViwCi8bsQogPlmwAEVYsB8vG7EfED5ZsgMfChESObAKELAO0LAKELESAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbAfELAk0LAfELEnAbAKK1gh2Bv0WTAxATYnJyYmNz4CFx4CByc2JicmBgcGFxcWFgcOAicuAjcXBhYXFjYDTBazUeK+CQiZ+o2I1HAE9gdzdHWhDhS+S+W2CwqO+5eP6XwF9wiKgXihAX6QRh5P2I98vWYDA3HJgQFyfgMCcmF/SRtS3Zd7t2QCAXbRhQF8hgICav//ADUAAAIoBbACBgAtAAD//wA1AAADLAcKAiYALQAAAAcAav+pAT3//wAD/+cEYQWwAgYALgAA//8ALgAABXsFsAIGAiwAAP//ACcAAAVxBzYCJgAvAAABBwB1AaUBNgATALAARViwBS8bsQUgPlmwD9wwMQD//wCb/+cFUwckAiYA3gAAAQcAoQEVAT0ACQCwAS+wFNwwMQD///+kAAAErgWwAgYAJQAA//8AJwAABLwFsAIGACYAAP//AC4AAASsBbACBgCxAAD//wAnAAAEugWwAgYAKQAA//8AJwAABXwHJAImANwAAAEHAKEBVwE9AAkAsAAvsA3cMDEA//8AJwAABs4FsAIGADEAAP//ACcAAAWHBbACBgAsAAD//wBr/+cFIQXIAgYAMwAA//8ALgAABYMFsAIGALYAAP//ACcAAAUEBbACBgA0AAD//wBl/+gFDQXHAgYAJwAA//8AnAAABSIFsAIGADgAAP///8MAAAVHBbACBgA8AAD//wAi/+gD3ARQAgYARQAA//8AO//qBAIEUQIGAEkAAP//ABkAAARIBdoCJgDwAAABBwChAJz/8wAJALAAL7AN3DAxAP//ADn/6AQnBFICBgBTAAD////H/mAEDQRSAgYAVAAAAAEAOP/pA+4EUgAcAE2yAB0eERI5ALAARViwES8bsREcPlmwAEVYsAgvG7EIED5ZsQABsAorWCHYG/RZsgQRCBESObIVCBEREjmwERCxGAGwCitYIdgb9FkwMSUWNjc3DgInLgI3Nz4CFxYWFSM0JicmBgcCAehVgxLgC4XQcYvEWg8DEZXskLDS3ltWi6AGB60CZ1MBa7BiAwKM95gjnf+KBAThtF12BAT03v7z////tf5FBBIEOgIGAF0AAP///7kAAAQTBDoCBgBcAAD//wA7/+oEAgXNAiYASQAAAAYAamkA//8AGAAAA5gF8wImAOwAAAEHAHUAxv/zABMAsABFWLAELxuxBBw+WbAI3DAxAP//ABz/6QPEBFACBgBXAAD//wAfAAACCQXYAgYATQAA//8AIgAAAuEFxgImAI0AAAAHAGr/Xv/5////DP5GAf4F2AIGAE4AAP//ACIAAASBBfICJgDxAAABBwB1AUT/8gATALAARViwBC8bsQQcPlmwD9wwMQD///+1/kUEEgXnAiYAXQAAAQYAoVQAAAkAsAEvsBPcMDEA//8AtwAABzoHNgImADsAAAEHAEQCKAE2ABMAsABFWLALLxuxCyA+WbAO3DAxAP//AHcAAAX4BgACJgBbAAABBwBEAWsAAAATALAARViwCy8bsQscPlmwDtwwMQD//wC3AAAHOgc2AiYAOwAAAQcAdQLDATYAEwCwAEVYsAwvG7EMID5ZsA/cMDEA//8AdwAABfgGAAImAFsAAAEHAHUCBgAAABMAsABFWLAMLxuxDBw+WbAP3DAxAP//ALcAAAc6BwMCJgA7AAAABwBqAfUBNv//AHcAAAX4Bc0CJgBbAAAABwBqATgAAP//AKEAAAVNBzYCJgA9AAABBwBEASIBNgATALAARViwCC8bsQggPlmwCtwwMQD///+1/kUEEgYAAiYAXQAAAQYARH8AABMAsABFWLAPLxuxDxw+WbAR3DAxAP//AJAD/AGWBgADBgALAAAADACwBC+wAdCwAS8wMf//AKED9ALCBgADBgAGAAAAGwCwCS+wBtCwBi+wAdCwAS+wCRCwBNCwBC8wMQD//wA3/+8EPwWwACYABQAAAAcABQIfAAD///8P/kgC+wXjAiYAnAAAAQcAn/8//94ACQCwAC+wEdwwMQD//wCKBAAB/gYAAwYBhQAAAAYAsAQvMDH//wAnAAAGzgc2AiYAMQAAAQcAdQK+ATYAEwCwAEVYsAIvG7ECID5ZsBHcMDEA//8AEAAABmgGAAImAFEAAAEHAHUCmAAAAAkAsAMvsCTcMDEA////pP5sBK4FsAImACUAAAAHAKcBbwAD//8AIv5wA9wEUAImAEUAAAAHAKcAqQAH//8AJwAABLoHPQImACkAAAEHAEQBIwE9ABMAsABFWLAGLxuxBiA+WbAN3DAxAP//ACcAAAV8Bz0CJgDcAAABBwBEAYIBPQATALAARViwCC8bsQggPlmwC9wwMQD//wA7/+oEAgYAAiYASQAAAQcARACcAAAAEwCwAEVYsAkvG7EJHD5ZsCHcMDEA//8AGQAABEgF8wImAPAAAAEHAEQAx//zABMAsABFWLAILxuxCBw+WbAL3DAxAP//AHUAAAXXBbACBgC5AAD//wA//iIFigQ8AgYAzQAA//8AqAAABV4G/AImARkAAAEHAKwEVwEOABYAsABFWLAPLxuxDyA+WbAR3LAV0DAx//8AdwAABEQF0AImARoAAAEHAKwDwv/iABYAsABFWLAPLxuxDxw+WbAS3LAW0DAx//8AOf5FCIcEUgAmAFMAAAAHAF0EdQAA//8Aa/5FCXgFyAAmADMAAAAHAF0FZgAA//8AHv46BKgFxQImANsAAAAHAlEBdf+g//8AFv47A7wEUAImAO8AAAAHAlEBH/+h//8AZf4+BQ0FxwImACcAAAAHAlEBuP+k//8AOP4+A+4EUgImAEcAAAAHAlEBOv+k//8AoQAABU0FsAIGAD0AAP//AHf+XwQwBDoCBgC9AAD//wA1AAACKAWwAgYALQAA////pQAAB+AHJAImANoAAAEHAKECUAE9AAkAsAkvsBncMDEA////rQAABnIF2gImAO4AAAEHAKEBhf/zAAkAsAkvsBncMDEA//8ANQAAAigFsAIGAC0AAP///6QAAASuBx0CJgAlAAABBwChATABNgAJALAEL7AO3DAxAP//ACL/6AP0BecCJgBFAAABBwChAIgAAAAJALAYL7Av3DAxAP///6QAAASuBwMCJgAlAAAABwBqASgBNv//ACL/6AQDBc0CJgBFAAAABwBqAIAAAP///4cAAAd4BbACBgCBAAD//wAP/+gGcARSAgYAhgAA//8AJwAABLoHJAImACkAAAEHAKEA+AE9AAkAsAYvsA/cMDEA//8AO//qBAIF5wImAEkAAAEGAKFxAAAJALAJL7Aj3DAxAP//AEj/6AU3BtwCJgFYAAAABwBqAPcBD///ADb/6gP2BFACBgCdAAD//wA2/+oD9gXOAiYAnQAAAAYAanIB////pQAAB+AHCgImANoAAAAHAGoCSAE9////rQAABnIFwAImAO4AAAAHAGoBff/z//8AHv/tBKgHGAImANsAAAAHAGoA4wFL//8AFv/pA9oFzQImAO8AAAAGAGpXAP//ACcAAAV8BusCJgDcAAABBwBwASEBQQATALAARViwCC8bsQggPlmwC9wwMQD//wAZAAAESAWhAiYA8AAAAQYAcGb3ABMAsABFWLAHLxuxBxw+WbAL3DAxAP//ACcAAAV8BwoCJgDcAAAABwBqAU8BPf//ABkAAARIBcACJgDwAAAABwBqAJT/8///AGv/5wUhBwMCJgAzAAAABwBqAT8BNv//ADn/6AQnBc0CJgBTAAAABgBqfQD//wBi/+cFGgXIAgYBFwAA//8ANv/nBCYEUgIGARgAAP//AGL/5wUaBwcCJgEXAAAABwBqAU0BOv//ADb/5wQmBc0CJgEYAAAABgBqewD//wBP/+kE9wcZAiYA5wAAAAcAagEhAUz//wAj/+gD5QXNAiYA/wAAAAYAamIA//8Am//nBVMG6wImAN4AAAEHAHAA3wFBAAkAsAEvsBHcMDEA////tf5FBBIFrgImAF0AAAEGAHAeBAAJALABL7AQ3DAxAP//AJv/5wVTBwoCJgDeAAAABwBqAQ0BPf///7X+RQQSBc0CJgBdAAAABgBqTAD//wCb/+cFUwc8AiYA3gAAAQcApgFcAT0ADACwAS+wE9ywFdAwMf///7X+RQSEBf8CJgBdAAABBwCmAJsAAAAWALAARViwDy8bsQ8cPlmwFtywEtAwMf//AMUAAAVqBwoCJgDhAAAABwBqAUkBPf//AHAAAAQgBcACJgD5AAAABgBqbfP//wAuAAAGvQcLACYA5gsAACcALQSVAAAABwBqAfcBPv//ACIAAAXxBcAAJgD+AAAAJwCNBCYAAAAHAGoBcv/z//8AO//nBIgGAAIGAEgAAP///6T+lASuBbACJgAlAAAABwCtBOcAA///ACL+mAPcBFACJgBFAAAABwCtBCEAB////6QAAASuB7sCJgAlAAABBwCrBRUBPAAJALAEL7AZ3DAxAP//ACL/6APcBoUCJgBFAAABBwCrBG0ABgAJALAYL7A63DAxAP///6QAAAYYB7ECJgAlAAABBwI3AOsBIQAWALAARViwBS8bsQUgPlmwDtywFNAwMf//ACL/6AVwBnwCJgBFAAABBgI3Q+wAFgCwAEVYsBgvG7EYHD5ZsC/csDXQMDH///+kAAAErgeuAiYAJQAAAQcCOADyASsAFgCwAEVYsAQvG7EEID5ZsA7csBPQMDH//wAi/+gD8gZ5AiYARQAAAQYCOEr2ABYAsABFWLAYLxuxGBw+WbAt3LA00DAx////pAAABYAH3gImACUAAAEHAjkA7AETABYAsABFWLAFLxuxBSA+WbAM3LAS0DAx//8AIv/oBNgGqQImAEUAAAEGAjlE3gAWALAARViwGC8bsRgcPlmwLdywM9AwMf///6QAAASuB9UCJgAlAAABBwI6AOsBBQAWALAARViwBC8bsQQgPlmwDtywFdAwMf//ACL/6APsBqACJgBFAAABBgI6Q9AAFgCwAEVYsBgvG7EYHD5ZsC3csDbQMDH///+k/pQErgc3AiYAJQAAACcAngDyATYBBwCtBOcAAwATALAARViwBC8bsQQgPlmwD9wwMQD//wAi/pgD6QYBAiYARQAAACYAnkoAAQcArQQhAAcAEwCwAEVYsBgvG7EYHD5ZsDDcMDEA////pAAABK4HrgImACUAAAEHAjwBHAEwABYAsABFWLAELxuxBCA+WbAO3LAa0DAx//8AIv/oA+4GeQImAEUAAAEGAjx0+wAWALAARViwGC8bsRgcPlmwL9ywO9AwMf///6QAAASuB64CJgAlAAABBwI1ARwBMAAMALAEL7AO3LAa0DAx//8AIv/oA+4GeQImAEUAAAEGAjV0+wAMALAYL7Av3LA40DAx////pAAABK4IPgImACUAAAEHAj0BHAE2AAwAsAQvsA7csBjQMDH//wAi/+gD4gcIAiYARQAAAQYCPXQAAAwAsBgvsC/csDnQMDH///+kAAAErggXAiYAJQAAAQcCUAEgATwADACwBC+wDtywF9AwMf//ACL/6AP6BuECJgBFAAABBgJQeAYADACwGC+wL9ywONAwMf///6T+lASuBx0CJgAlAAAAJwChATABNgEHAK0E5wADABMAsABFWLAELxuxBCA+WbAO3DAxAP//ACL+mAP0BecCJgBFAAAAJwChAIgAAAEHAK0EIQAHABMAsABFWLAYLxuxGBw+WbAv3DAxAP//ACf+mwS6BbACJgApAAAABwCtBKgACv//ADv+kQQCBFECJgBJAAAABwCtBHYAAP//ACcAAAS6B8ICJgApAAABBwCrBN0BQwAJALAGL7Aa3DAxAP//ADv/6gQCBoUCJgBJAAABBwCrBFYABgAJALAJL7Au3DAxAP//ACcAAAS6BzICJgApAAABBwClAMgBPgAJALAGL7AW3DAxAP//ADv/6gQKBfUCJgBJAAABBgClQQEACQCwCS+wKtwwMQD//wAnAAAF4Ae4AiYAKQAAAQcCNwCzASgAFgCwAEVYsAcvG7EHID5ZsA/csBXQMDH//wA7/+oFWQZ8AiYASQAAAQYCNyzsABYAsABFWLAJLxuxCRw+WbAj3LAp0DAx//8AJwAABLoHtQImACkAAAEHAjgAugEyABYAsABFWLAGLxuxBiA+WbAP3LAU0DAx//8AO//qBAIGeQImAEkAAAEGAjgz9gAWALAARViwCS8bsQkcPlmwI9ywKNAwMf//ACcAAAVIB+UCJgApAAABBwI5ALQBGgAWALAARViwBi8bsQYgPlmwD9ywE9AwMf//ADv/6gTBBqkCJgBJAAABBgI5Ld4AFgCwAEVYsAkvG7EJHD5ZsCHcsCfQMDH//wAnAAAEugfcAiYAKQAAAQcCOgCzAQwAFgCwAEVYsAYvG7EGID5ZsA/csBbQMDH//wA7/+oEAgagAiYASQAAAQYCOizQABYAsABFWLAJLxuxCRw+WbAh3LAq0DAx//8AJ/6bBLoHPgImACkAAAAnAJ4AugE9AQcArQSoAAoAEwCwAEVYsAYvG7EGID5ZsBDcMDEA//8AO/6RBAIGAQImAEkAAAAmAJ4zAAEHAK0EdgAAABMAsABFWLAJLxuxCRw+WbAk3DAxAP//ADUAAALSB8ICJgAtAAABBwCrA5UBQwAJALACL7AS3DAxAP//ACIAAAKHBn4CJgCNAAABBwCrA0r//wAJALACL7AS3DAxAP/////+lwIoBbACJgAtAAAABwCtA18ABv///+T+mwIJBdgCJgBNAAAABwCtA0QACv//AGv+kQUhBcgCJgAzAAAABwCtBPYAAP//ADn+jwQnBFICJgBTAAAABwCtBIT//v//AGv/5wUhB7sCJgAzAAABBwCrBSwBPAAJALAKL7Ax3DAxAP//ADn/6AQnBoUCJgBTAAABBwCrBGoABgAJALAEL7Av3DAxAP//AGv/5wYvB7ECJgAzAAABBwI3AQIBIQAWALAARViwCi8bsQogPlmwJtywLNAwMf//ADn/6AVtBnwCJgBTAAABBgI3QOwAFgCwAEVYsAQvG7EEHD5ZsCTcsCrQMDH//wBr/+cFIQeuAiYAMwAAAQcCOAEJASsAFgCwAEVYsAovG7EKID5ZsCTcsCvQMDH//wA5/+gEJwZ5AiYAUwAAAQYCOEf2ABYAsABFWLAELxuxBBw+WbAk3LAp0DAx//8Aa//nBZcH3gImADMAAAEHAjkBAwETABYAsABFWLAKLxuxCiA+WbAk3LAq0DAx//8AOf/oBNUGqQImAFMAAAEGAjlB3gAWALAARViwBC8bsQQcPlmwItywKNAwMf//AGv/5wUhB9UCJgAzAAABBwI6AQIBBQAWALAARViwCi8bsQogPlmwJNywLdAwMf//ADn/6AQnBqACJgBTAAABBgI6QNAAFgCwAEVYsAQvG7EEHD5ZsCLcsCvQMDH//wBr/pEFIQc3AiYAMwAAACcAngEJATYBBwCtBPYAAAATALAARViwCi8bsQogPlmwJdwwMQD//wA5/o8EJwYBAiYAUwAAACYAnkcAAQcArQSE//4AEwCwAEVYsAQvG7EEHD5ZsCPcMDEA//8AW//oBiYHMwImAJgAAAEHAHUCBgEzABMAsABFWLAKLxuxCiA+WbAu3DAxAP//ADb/5gUFBgACJgCZAAABBwB1AVoAAAATALAARViwBC8bsQQcPlmwKtwwMQD//wBb/+gGJgczAiYAmAAAAQcARAFrATMAEwCwAEVYsAovG7EKID5ZsC3cMDEA//8ANv/mBQUGAAImAJkAAAEHAEQAvwAAABMAsABFWLAELxuxBBw+WbAp3DAxAP//AFv/6AYmB7gCJgCYAAABBwCrBSUBOQATALAARViwCi8bsQogPlmwOtwwMQD//wA2/+YFBQaFAiYAmQAAAQcAqwR5AAYAEwCwAEVYsAQvG7EEHD5ZsCjcMDEA//8AW//oBiYHKAImAJgAAAEHAKUBEAE0ABMAsABFWLAKLxuxCiA+WbAv3DAxAP//ADb/5gUFBfUCJgCZAAABBgClZAEAEwCwAEVYsAQvG7EEHD5ZsCvcMDEA//8AW/6RBiYGLgImAJgAAAAHAK0E4AAA//8ANv6IBQUEqAImAJkAAAAHAK0Edf/3//8AW/6RBS8FsAImADkAAAAHAK0EzAAA//8ASv6RBDEEOgImAFkAAAAHAK0EIgAA//8AW//mBS8HuwImADkAAAEHAKsFBAE8ABMAsABFWLAKLxuxCiA+WbAT3DAxAP//AEr/6AQxBoUCJgBZAAABBwCrBG8ABgATALAARViwCC8bsQgcPlmwFNwwMQD//wBb/+gGrQdCAiYAmgAAAQcAdQINAUIAEwCwAEVYsBovG7EaID5ZsB3cMDEA//8ASv/oBWEF7AImAJsAAAEHAHUBVf/sABMAsABFWLAWLxuxFhw+WbAe3DAxAP//AFv/6AatB0ICJgCaAAABBwBEAXIBQgATALAARViwEi8bsRIgPlmwHNwwMQD//wBK/+gFYQXsAiYAmwAAAQcARAC6/+wAEwCwAEVYsA4vG7EOHD5ZsB3cMDEA//8AW//oBq0HxwImAJoAAAEHAKsFLAFIABMAsABFWLASLxuxEiA+WbAb3DAxAP//AEr/6AVhBnECJgCbAAABBwCrBHT/8gATALAARViwDi8bsQ4cPlmwHNwwMQD//wBb/+gGrQc3AiYAmgAAAQcApQEXAUMAEwCwAEVYsBovG7EaID5ZsB7cMDEA//8ASv/oBWEF4QImAJsAAAEGAKVf7QATALAARViwFi8bsRYcPlmwH9wwMQD//wBb/ogGrQYCAiYAmgAAAAcArQTw//f//wBK/pEFYQSUAiYAmwAAAAcArQRrAAD//wCh/qEFTQWwAiYAPQAAAAcArQSkABD///+1/gwEEgQ6AiYAXQAAAAcArQUH/3v//wChAAAFTQe7AiYAPQAAAQcAqwTcATwACQCwAS+wF9wwMQD///+1/kUEEgaFAiYAXQAAAQcAqwQ5AAYACQCwAS+wHtwwMQD//wChAAAFTQcrAiYAPQAAAQcApQDHATcACQCwAS+wE9wwMQD///+1/kUEEgX1AiYAXQAAAQYApSQBAAkAsAEvsBrcMDEA////9P6uBRkGAAAmAEgAAAAnAiYB3QJCAQcAQwB7/20AEgCyLyEBXbIfIQFxsp8hAV0wMf//AJz+mgUiBbACJgA4AAAABwJRAjsAAP//AFP+mgQIBDoCJgD2AAAABwJRAdgAAP//AMX+mgVqBbACJgDhAAAABwJRAroAAP//AHD+mgQgBDsCJgD5AAAABwJRAbkAAP//AC7+mgSsBbACJgCxAAAABwJRAP8AAP//ABj+mgOJBDoCJgDsAAAABwJRAOUAAP//AGL+QwXBBcgCJgFMAAAABwJRAsf/qf////T+RgSDBFMCJgFNAAAABwJRAdf/rP//AA0AAAP5BgACBgBMAAAAAgAjAAAElAWwABIAGwB3shUcHRESObAVELAJ0ACwAEVYsA8vG7EPID5ZsABFWLAJLxuxCRA+WbISCQ8REjmwEi+xAAewCitYIdgb9FmyAw8JERI5sAMvsAAQsAvQsAzQsBIQsA3QsAkQsRUBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZMDEBIwcXFhYHBgQjIRMjNzM3MwczAQMFNjY3NiYnArHZIv7j/REQ/sf0/d2+ux67Ifci2v7EVgESga4PDnBrBEfEAQHvxND+BEeqv7/9x/4SAgKQd2l5BAAAAgAjAAAElAWwABIAGwB3shUcHRESObAVELAJ0ACwAEVYsA8vG7EPID5ZsABFWLAJLxuxCRA+WbISCQ8REjmwEi+xAAewCitYIdgb9FmyAw8JERI5sAMvsAAQsAvQsAzQsBIQsA3QsAkQsRUBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZMDEBIwcXFhYHBgQjIRMjNzM3MwczAQMFNjY3NiYnArHZIv7j/REQ/sf0/d2+ux67Ifci2v7EVgESga4PDnBrBEfEAQHvxND+BEeqv7/9x/4SAgKQd2l5BAAAAf/8AAAErAWwAA0ASwCwAEVYsAgvG7EIID5ZsABFWLACLxuxAhA+WbINCAIREjmwDS+xAAewCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEjAyMTIzczEyEHIQMzAofvdPZ0ph6lawOCJP11R+8Cn/1hAp+qAmfM/mUAAf/LAAADiQQ6AA0ASwCwAEVYsAgvG7EIHD5ZsABFWLACLxuxAhA+WbINCAIREjmwDS+xAAewCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhAyMTIzczEyEHIQchAlb/AFHtUZ4enU4CtSP+OSwBAQHR/i8B0aoBv8T7AAABADcAAAWPBbAAFABwALAARViwBC8bsQQgPlmwAEVYsBIvG7ESID5ZsABFWLALLxuxCxA+WbAARViwCC8bsQgQPlmyExILERI5sBMvsBDQsQ0HsAorWCHYG/RZsAHQsgILEhESObACL7EKAbAKK1gh2Bv0WbIGCgIREjkwMQEjBzMBIQEBIQEjAyMTIzczNzMHMwLCzip9AgoBPv2YAYb+6P69rmz2vMcexiP2I88EP/MCZP07/RUCcP2QBD+qx8cAAAEAGQAABFkGAAAUAGwAsBIvsABFWLAELxuxBBw+WbAARViwCy8bsQsQPlmwAEVYsAgvG7EIED5ZshMSCxESObATL7EBB7AKK1gh2Bv0WbICCwQREjmwAi+xCgGwCitYIdgb9FmyBgoCERI5sAEQsA3QsBMQsBDQMDEBIwMzASEBASEDIwMjEyM3MzczBzMCpL5eXQFPASX+SQEY/v3eclLt0uEe4RvsG74Eu/3hAZ7+Bf3BAdn+JwS7qpubAAABAKEAAAVNBbAADgBXsgoPEBESOQCwAEVYsAgvG7EIID5ZsABFWLALLxuxCyA+WbAARViwAi8bsQIQPlmyBgIIERI5sAYvsQUHsAorWCHYG/RZsAHQsgoIAhESObAGELAO0DAxASMDIxMjNzMBIRMBIQEzA5nPWvhaxB59/vgBBc0BvAEe/e58AgT9/AIEqgMC/VACsPz+AAEAVP5fBDAEOgAOAGSyCg8QERI5ALAARViwCC8bsQgcPlmwAEVYsAsvG7ELHD5ZsABFWLACLxuxAhI+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZsQYHsAorWCHYG/RZsgoLABESObAN0LAO0DAxBSMDIxMjNzMDMxMBMwEzAt/VSe1IyB6inexmAWn+/iilAf5gAaCqA5H9BAL8/G8AAAH/wwAABUcFsAARAGQAsABFWLALLxuxCyA+WbAARViwDi8bsQ4gPlmwAEVYsAIvG7ECED5ZsABFWLAFLxuxBRA+WbIRCwIREjmwES+xAAewCitYIdgb9FmyBAsCERI5sAfQsBEQsAnQsg0LAhESOTAxASMBIQMBIQEjNzMBIRMBIQEzA8eKASP+7tz+fP7VAfF4HnT+7wEQ1gF6ASr+LHIClf1rAhX96wKVqgJx/fMCDf2PAAH/uQAABBMEOgARAGQAsABFWLALLxuxCxw+WbAARViwDi8bsQ4cPlmwAEVYsAIvG7ECED5ZsABFWLAFLxuxBRA+WbIRDgIREjmwES+xAAewCitYIdgb9FmyBA4CERI5sAfQsBEQsAnQsg0OAhESOTAxASMTIwMBIQEjNzMDMxMTIQEzAymW0/iX/vb+7AFngh6ExfiM/wEV/rCEAdf+KQFx/o8B16oBuf6eAWL+RwD//wAo/+oEAgRRAgYAvwAA////wwAABKcFsAImACoAAAAHAib/MP5p//8AgwJtBeMDMQBGAa+JAGZmQAD//wALAAAEPwXHAgYAFgAA//8AJv/oBDkFxQIGABcAAP//AAkAAAQqBbACBgAYAAD//wBa/+cEcwWwAgYAGQAA//8Ad//oBCcFuAAGABoUAP//AE//6ARZBcgABgAcFAD//wCO//kELwXIAAYAHQAA//8AdP/nBE4FyQAGABQUAP//AGv/6gUWB0sCJgArAAABBwB1AfUBSwAJALANL7Ak3DAxAP////f+TwRCBgACJgBLAAABBwB1AUIAAAAJALAEL7At3DAxAP//ACcAAAWGBzYCJgAyAAABBwBEAYMBNgATALAARViwBi8bsQYgPlmwC9wwMQD//wANAAAD+gYAAiYAUgAAAQcARAC5AAAAEwCwAEVYsAMvG7EDHD5ZsBTcMDEA////pAAABK4HIQImACUAAAEHAKwEigEzABYAsABFWLAELxuxBCA+WbAM3LAQ0DAx//8AIv/oA9wF7AImAEUAAAEHAKwD4v/+ABYAsABFWLAYLxuxGBw+WbAt3LAx0DAx//8AJwAABLoHKAImACkAAAEHAKwEUgE6ABYAsABFWLAGLxuxBiA+WbAN3LAR0DAx//8AO//qBAIF7AImAEkAAAEHAKwDy//+ABYAsABFWLAJLxuxCRw+WbAh3LAl0DAx////yQAAAr0HKAImAC0AAAEHAKwDCgE6ABYAsABFWLACLxuxAiA+WbAF3LAJ0DAx////fgAAAnIF5AImAI0AAAEHAKwCv//2ABYAsABFWLACLxuxAhw+WbAF3LAJ0DAx//8Aa//nBSEHIQImADMAAAEHAKwEoQEzABYAsABFWLAKLxuxCiA+WbAk3LAo0DAx//8AOf/oBCcF7AImAFMAAAEHAKwD3//+ABYAsABFWLAELxuxBBw+WbAi3LAm0DAx//8AJwAABNgHIQImADYAAAEHAKwEPAEzABYAsABFWLAELxuxBCA+WbAZ3LAd0DAx//8ABwAAAvsF7AImAFYAAAEHAKwDSP/+ABYAsABFWLAHLxuxBxw+WbAP3LAT0DAx//8AW//mBS8HIQImADkAAAEHAKwEeQEzABYAsABFWLAKLxuxCiA+WbAU3LAY0DAx//8ASv/oBDEF7AImAFkAAAEHAKwD5P/+ABYAsABFWLAILxuxCBw+WbAV3LAZ0DAx////JAAABWoGQQAmANBkAAAHAK799gAA//8AJ/6bBLwFsAImACYAAAAHAK0ElwAK//8AEP6IBA8GAAImAEYAAAAHAK0Epf/3//8AJ/6bBOAFsAImACgAAAAHAK0EcwAK//8AO/6RBIgGAAImAEgAAAAHAK0EkAAA//8AJ/4DBOAFsAImACgAAAAHAboBAf6c//8AO/35BIgGAAImAEgAAAAHAboBHv6S//8AJ/6bBYcFsAImACwAAAAHAK0FAAAK//8ADf6bA/kGAAImAEwAAAAHAK0EfwAK//8AJwAABXEHNgImAC8AAAEHAHUBpQE2AAkAsAQvsA/cMDEA//8AEQAABHUHPQImAE8AAAEHAHUBowE9AAkAsAQvsA/cMDEA//8AJ/7cBXEFsAImAC8AAAAHAK0E0QBL//8AEf7HBEoGAAImAE8AAAAHAK0EYAA2//8AJ/6bA8MFsAImADAAAAAHAK0ElwAK////5P6bAhcGAAImAFAAAAAHAK0DRAAK//8AJ/6bBs4FsAImADEAAAAHAK0FqwAK//8AEP6bBmgEUgImAFEAAAAHAK0FrgAK//8AJ/6XBYYFsAImADIAAAAHAK0FAgAG//8ADf6bA/oEUgImAFIAAAAHAK0EbAAK//8Aa//nBSEH3wImADMAAAEHAjYFGQFTAAwAsAovsCzcsDfQMDH//wAnAAAFBAdCAiYANAAAAQcAdQGrAUIACQCwAy+wFtwwMQD////H/mAEbQX3AiYAVAAAAQcAdQGb//cACQCwDS+wIdwwMQD//wAn/psE2AWwAiYANgAAAAcArQSYAAr////e/psC7wRTAiYAVgAAAAcArQM+AAr//wAk/pEEuwXHAiYANwAAAAcArQSwAAD//wAc/ogDxARQAiYAVwAAAAcArQRi//f//wCc/pQFIgWwAiYAOAAAAAcArQSfAAP//wA7/pECrgVBAiYAWAAAAAcArQP1AAD//wBb/+YFLwffAiYAOQAAAQcCNgTxAVMADACwAC+wHNywJ9AwMf//AJsAAAWBBzcCJgA6AAABBwClAN0BQwAJALABL7AR3DAxAP//AGQAAAQNBewCJgBaAAABBgClFvgACQCwAS+wEdwwMQD//wCb/psFgQWwAiYAOgAAAAcArQTVAAr//wBk/psEDQQ6AiYAWgAAAAcArQRCAAr//wC3/psHOgWwAiYAOwAAAAcArQXFAAr//wB3/psF+AQ6AiYAWwAAAAcArQUnAAr////l/psE5wWwAiYAPgAAAAcArQSfAAr////n/psD5AQ6AiYAXgAAAAcArQRDAAr///6z/+cFZwXYACYAM0YAAAcBcf3HAAD///+bAAAEBQUeAiYCMwAAAAcArv9I/t3///9tAAAENQUhACYCKDwAAAcArv4//uD///94AAAE5QUcACYB5DwAAAcArv5K/tv///97AAACCwUhACYB4zwAAAcArv5N/uD////S/+oEbQUeACYB3QoAAAcArv6k/t3///8sAAAEvAUeACYB0zwAAAcArv3+/t3////iAAAEggUeACYB8woAAAcArv60/t3///+bAAAEBQSNAgYCMwAA//8ACgAABAAEjQIGAjIAAP//AAoAAAP5BI0CBgIoAAD////WAAAEJwSNAgYB0gAA//8ACgAABKkEjQIGAeQAAP//ABgAAAHPBI0CBgHjAAD//wAKAAAEnQSNAgYB4QAA//8ACgAABcgEjQIGAd8AAP//AAoAAASoBI0CBgHeAAD//wA6/+oEYwShAgYB3QAA//8ACgAABDYEjQIGAdwAAP//AGIAAARaBI0CBgHYAAD//wBtAAAEgASNAgYB0wAA////pAAABIAEjQIGAdQAAP//ABgAAALaBesCJgHjAAAABwBq/1cAHv//AG0AAASABesCJgHTAAAABgBqZx7//wAKAAAD+QXrAiYCKAAAAAYAam8e//8ACgAAA/4GHgImAeoAAAEHAHUBLAAeAAkAsAQvsAjcMDEA//8ADv/tA/8EnwIGAdkAAP//ABgAAAHPBI0CBgHjAAD//wAYAAAC2gXrAiYB4wAAAAcAav9XAB7////y/+sDsASNAgYB4gAA//8ACgAABJ0GHgImAeEAAAEHAHUBIAAeAAkAsAQvsA/cMDEA//8Acv/oBIIGBQImAgEAAAEHAKEAiAAeAAkAsA8vsBPcMDEA////mwAABAUEjQIGAjMAAP//AAoAAAQABI0CBgIyAAD//wAKAAAD3wSNAgYB6gAA//8ACgAAA/kEjQIGAigAAP//AAsAAASuBgUCJgH+AAABBwChAMYAHgAJALAAL7AN3DAxAP//AAoAAAXIBI0CBgHfAAD//wAKAAAEqQSNAgYB5AAA//8AOv/qBGMEoQIGAd0AAP//AAoAAASkBI0CBgHvAAD//wAKAAAENgSNAgYB3AAA//8AOf/sBEkEowIGAjEAAP//AGIAAARaBI0CBgHYAAD///+kAAAEgASNAgYB1AAAAAEADf45A+4EoAAoALOyIikqERI5ALAYL7AARViwDC8bsQwePlmwAEVYsBcvG7EXED5ZsAwQsQYBsAorWCHYG/RZsigXDBESObAoL7K/KAFytK8ovygCXbRvKH8oAnGy/ygBcbIPKAFysl8oAXKyzygBcbI/KAFxtB8oLygCXbKPKAFyskooAV2yCSgGERI5sSYBsAorWCHYG/RZshEmKBESObAXELAa0LAXELEhAbAKK1gh2Bv0WbIeJiEREjkwMQEyNjc2JiIGBwc2NhcWFgcGBxYWBwYGBwMjEyYmNzMWFjMWNjc2Jyc3AgRmgAoKZbBqD+4M/cLD3ggK6VFaBAfYtk3uT4aGAuoCXFZqkAwV3IcgAqpTTURMRT4BmLICA6aNtWUjhlmOtRT+RAHII6p5R0wDWU+gAQGwAAABAAr+mgS9BI0ADwCqsgMQERESOQCwAEVYsAwvG7EMHj5ZsABFWLAJLxuxCR4+WbAARViwAS8bsQEYPlmwAEVYsAYvG7EGED5ZsABFWLADLxuxAxA+WbIKBgkREjmwCi+0rwq/CgJdsj8KAXGyzwoBcbI/CgFysv8KAXGyDwoBcrRvCn8KAnG03wrvCgJdtB8KLwoCXbJfCgFysQUBsAorWCHYG/RZsAMQsQ4HsAorWCHYG/RZMDEBIxMjEyEDIxMzAyETMwMzBF/uPr1S/gZT7crtVgH7Vu2rv/6aAWYB2/4lBI3+EQHv/CgAAAEAOv5DBE8EowAeAGCyAx8gERI5ALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsABFWLADLxuxAxA+WbIAAw0REjmwBtCyEQ0DERI5sA0QsRQBsAorWCHYG/RZsAMQsRwBsAorWCHYG/RZMDEBBgYHAyMTJgI3NxIAFxYWFycmJicmBgcGFxQWFxY3BAIZ6KxL7k6blRcGIAFB6cLiCusDYGuFsBoQAWRh4zgBhafUFf5OAcEvASjFNAEOAUEGBN29AWdwBAXAtIk/cH8ECNoA//8AbQAABIAEjQIGAdMAAP//ADf+OgWlBKcCJgIXAAAABwJRAr//oP//AAsAAASuBcwCJgH+AAABBwBwAJAAIgAJALAAL7AK3DAxAP//AHL/6ASCBcwCJgIBAAABBgBwUiIACQCwDy+wENwwMQD//wBDAAAFNwSOAgYB8QAA//8AGP/rBacEjQAmAeMAAAAHAeIB9wAA////ggAABgwGAAImAnMAAAAHAHUCfAAA////3P/JBLoGHgImAnUAAAAHAHUBegAe//8ADv35A/8EnwImAdkAAAAHAboA8/6S//8AjAAABh4GHgImAdUAAAAHAEQBfgAe//8AjAAABh4GHgImAdUAAAAHAHUCGQAe//8AjAAABh4F6wImAdUAAAAHAGoBSwAe//8AbQAABIAGHgImAdMAAAAHAEQAmgAe////pP5UBK4FsAImACUAAAAHAKQBbQAD//8AIv5YA9wEUAImAEUAAAAHAKQApwAH//8AJ/5bBLoFsAImACkAAAAHAKQBLgAK//8AO/5RBAIEUQImAEkAAAAHAKQA/AAA////m/5RBAUEjQImAjMAAAAHAKQBEAAA//8ACv5ZA/kEjQImAigAAAAHAKQA3gAI////5P6bAcsEOgImAI0AAAAHAK0DRAAKAAAAAAAcAVYAAQAAAAAAAAAvAAAAAQAAAAAAAQANAC8AAQAAAAAAAgAGADwAAQAAAAAAAwAUAEIAAQAAAAAABAAUAEIAAQAAAAAABQATAFYAAQAAAAAABgATAGkAAQAAAAAABwAgAHwAAQAAAAAACQAGAJwAAQAAAAAACwAKAKIAAQAAAAAADAATAKwAAQAAAAAADQAuAL8AAQAAAAAADgAqAO0AAwABBAkAAABeARcAAwABBAkAAQAaAXUAAwABBAkAAgAMAY8AAwABBAkAAwAoAZsAAwABBAkABAAoAZsAAwABBAkABQAmAcMAAwABBAkABgAmAekAAwABBAkABwBAAg8AAwABBAkACQAMAk8AAwABBAkACwAUAlsAAwABBAkADAAmAm8AAwABBAkADQBcApUAAwABBAkADgBUAvEAAwABBAkAEAAMA0UAAwABBAkAEQAaA1FDb3B5cmlnaHQgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlJvYm90byBNZWRpdW1JdGFsaWNSb2JvdG8gTWVkaXVtIEl0YWxpY1ZlcnNpb24gMi4xMzc7IDIwMTdSb2JvdG8tTWVkaXVtSXRhbGljUm9ib3RvIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZS5Hb29nbGVHb29nbGUuY29tQ2hyaXN0aWFuIFJvYmVydHNvbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAbwBiAG8AdABvACAATQBlAGQAaQB1AG0ASQB0AGEAbABpAGMAUgBvAGIAbwB0AG8AIABNAGUAZABpAHUAbQAgAEkAdABhAGwAaQBjAFYAZQByAHMAaQBvAG4AIAAyAC4AMQAzADcAOwAgADIAMAAxADcAUgBvAGIAbwB0AG8ALQBNAGUAZABpAHUAbQBJAHQAYQBsAGkAYwBSAG8AYgBvAHQAbwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEcAbwBvAGcAbABlAC4ARwBvAG8AZwBsAGUARwBvAG8AZwBsAGUALgBjAG8AbQBDAGgAcgBpAHMAdABpAGEAbgAgAFIAbwBiAGUAcgB0AHMAbwBuAEwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAQQBwAGEAYwBoAGUAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAUgBvAGIAbwB0AG8ATQBlAGQAaQB1AG0AIABJAHQAYQBsAGkAYwAAAAADAAD/9AAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgAIAAL//wAPAAEAAgAOAAAAAAAAAigAAgBZACUAPgABAEUAXgABAHkAeQABAIEAgQABAIMAgwABAIYAhgABAIkAiQABAIsAlgABAJgAnQABAKQApAABAKgArQADALEAsQABALoAuwABAL8AvwABAMEAwQABAMMAwwABAMcAxwABAMsAywABAM0AzgABANAA0QABANMA0wABANoA3gABAOEA4QABAOUA5QABAOcA6QABAOsA+wABAP0A/QABAP8BAQABAQMBAwABAQgBCQABARYBGgABARwBHAABASABIgABASQBJQADASoBKwABATMBNAABATYBNgABATsBPAABAUEBRAABAUcBSAABAUsBTQABAVEBUQABAVQBWAABAV0BXgABAWIBYgABAWQBZAABAWgBaAABAWoBbAABAW4BbgABAXABcAABAboBugADAbsBwQACAdIB5gABAeoB6gABAfMB8wABAfUB9QABAfwB/gABAgACAQABAgMCAwABAgcCBwABAgkCCwABAhECEQABAhYCGAABAhoCGgABAigCKAABAisCKwABAi0CLQABAjACMwABAl8CYwABAnoC4gABAuUDiwABA40DpAABA6YDsgABA7QDvQABA78D2gABA94D3gABA+AD5wABA+kD6wABA+4D8gABA/QEfAABBH8EfwABBIIEgwABBIUEhgABBIgEiwABBJUE0AABBNIE8QABBPME+gABBPwE/QABBQcFDQABAAEAAgAAAAwAAAAsAAEADgCoAKgAqQCpAKoAqgCrAKsArACsASQBJQEmAScAAQAFAHkApACtAK0BugAAAAEAAAAKADIATAAEREZMVAAaY3lybAAaZ3JlawAabGF0bgAaAAQAAAAA//8AAgAAAAEAAmNwc3AADmtlcm4AFAAAAAEAAAAAAAEAAQACAAYCEAABAAAAAQAIAAEACgAFACQASAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQACAAAAAgAKQXoAAQPuAAQAAAHyB9A8GDwYB/4IYD5QPwg8HkEuPtQIZj92P3Y/Ej9gP3Y/dkEuP6IMBAzSP+xAvkD2PDA92kEUDUg+sj/APNoNjg7EDs4/mD+YPuI/wD/aD9BA3BA2PIpA3BBQP8BBLhCWPRg+UEEuPlARGBIWExgT+hScQNwUoj+YF4gZehqYGrIauBq+Hbgdvh34Hi4euCBCIgwj4j92JTAm2jwwKTw/dj92PJA/dj92P3YqEivAP3Y87iyqLXAuAi5kL0o85C/cPIowsjDcMrY/wDZANn43vDmKP8A4RjjUOP45VDmKPlA+4kC+QNw5sD/APRg85DwwPIo/Ej8SPxI/djwwPIo/dj92QS485DwwPIo8GDnaPBg8GDwYQWo7ZDuyQWQ8DkFMQVJBZEFSQUxBTEFMQUw8AEFSPB5BLkEuQS5BLj/sPlA+UD5QPlA+UD5QPlA8Hj7UPtQ+1D7UP3Y/dj92P3Y/dkEuQS5BLkEuQS492j6yPrI+sj6yPrI+sj6yPNo82jzaPNo/mD7iPuI+4j7iPuJA3EDcPlA+sj5QPrI+UD6yPB48HjwePB5BLj7UPNo+1DzaPtQ82j7UPNo+1DzaP3Y/mD92P3Y/dj92P3Y/Ej9gP2A/YD9gP3Y/mD92P5g/dj+YP5hBLj7iQS4+4kEuPuI/2j/aP9o/7D/sP+xA9j3aQNw92kEUQRRBFEFkQWRBakFSQVJBUkFSQVJBUkFSQWRBZEFkQWRBZEFSQVJBUkFkQUw8DjwOPA48DkFkQWRBZEFqPlA+1D92P3ZBLj3aPlA/CD7UQRQ/dj92PxI/dj92QS4/oj/sPdo8MD92Pdo/mD7iQNw+4j7UPRg/dj92PxI/EjyQPlA/CD0YPtQ/dj92QS4/ojweP+w8MD6yPNo+4j/AQNw8ijzaPORA3ED2QPZA9j3aQNw8GDwYPBg/dj+YPlA+sj7UPNpAvkDcPB492kDcP3Y8MDyKP3Y+UD6yPlA+sj7UPNo82jzaPDA8ikEuPuI+4j/APJBA3DyQQNw8kEDcPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPlA+sj5QPrI+UD6yPtQ82j7UPNo+1DzaPtQ82j7UPNo+1DzaPtQ82j7UPNo/dj92QS4+4kEuPuJBLj7iQS4+4kEuPuJBLj7iQS4+4j7iPdpA3D3aQNw92kDcP+w9GDzkP5g87j0YPxI92j92P5g+UD6yPtQ/dkEuPuI/2j8IP8BBLkEuP3Y/mD8SPxI/YD92P5g/dj+YQS4/oj/AP9o/7EC+QNxAvkDcQPZBFEEuQVJBZEFSQUxBakFMQVJBZEFqAAIApQAEAAQAAAAGAAYAAQALAAwAAgATABMABAAlACoABQAsAC0ACwAvADYADQA4ADgAFQA6AD8AFgBFAEYAHABJAEoAHgBMAEwAIABPAE8AIQBRAFQAIgBWAFYAJgBYAFgAJwBaAF0AKABfAF8ALACKAIoALQCWAJYALgCdAJ0ALwCxALUAMAC3ALkANQC7ALsAOAC9AL0AOQDAAMEAOgDDAMMAPADFAMUAPQDHAM4APgDSANIARgDUAN4ARwDgAO8AUgDxAPEAYgD2APgAYwD7APwAZgD+AQAAaAEDAQUAawEKAQoAbgENAQ0AbwEYARoAcAEiASIAcwEuATAAdAEzATUAdwE3ATcAegE5ATkAewE7ATsAfAFDAUQAfQFUAVQAfwFWAVYAgAFYAVgAgQFcAV4AggGEAYUAhQGHAYkAhwHYAdgAigHaAdsAiwHdAd0AjQHgAeEAjgHrAe0AkAH/Af8AkwIOAhAAlAIwAjAAlwIzAjMAmAJFAkUAmQJHAkgAmgJ6AnsAnAJ9An0AngJ/ApQAnwKZAqAAtQKiAqUAvQKqAq8AwQK0ArwAxwK+Ar4A0ALAAsAA0QLCAsIA0gLEAsQA0wLGAs8A1ALYAtoA3gLcAtwA4QLeAt4A4gLgAuAA4wLiAuIA5ALnAucA5QLpAukA5gLrAusA5wLtAu0A6ALvAu8A6QLxAv0A6gL/Av8A9wMBAwEA+AMDAwMA+QMOAw4A+gMQAxAA+wMSAxIA/AMgAyAA/QMiAyUA/gMnAycBAgMpAykBAwMvAzgBBANDA0cBDgNNA08BEwNUA1QBFgNlA2kBFwNtA28BHAN4A3gBHwOGA4sBIAOOA50BJgOgA6ABNgOkA6QBNwOmA6YBOAOqA6oBOQOtA64BOgOwA7EBPAOzA7kBPgO7A70BRQO/A8QBSAPGA8cBTgPJA8wBUAPSA9MBVAPVA9UBVgPXA9cBVwPZA9wBWAPfA+QBXAPmA+YBYgPqA+sBYwPwA/ABZQPyA/sBZgP+A/8BcAQBBAQBcgQLBAwBdgQQBBABeAQSBBgBeQQeBEYBgARIBEgBqQRKBFcBqgRfBF8BuARwBHUBuQR3BHcBvwR7BHwBwAR/BH8BwgSBBIIBwwSEBIQBxQSGBIYBxgSXBJsBxwSdBJ0BzASfBKABzQSiBKIBzwSmBKgB0ASqBKoB0wSsBK4B1ASwBLAB1wSyBLIB2AS0BLoB2QS8BLwB4AS/BL8B4QTCBMYB4gTIBMgB5wTKBMsB6ATPBM8B6gTSBNIB6wTYBNgB7ATdBN0B7QToBOgB7gTqBOoB7wTxBPEB8AT1BPUB8QALADj/xADS/8QA1v/EATn/xAFF/8QDDv/EAxD/xAMS/8QDwf/EBHf/xAS//8QAGAA6ABQAOwAmAD0AFgEZABQCmQAWAyAAJgMiABYDJAAWA4sAFgOaABYDnQAWA9MAJgPVACYD1wAmA9kAFgPqABQD8gAWBHAAFgRyABYEdAAWBIYAFgTCABQExAAUBMYAJgABABP/CADnABD+7gAS/u4AJf9AAC7/MAA4ABQARf/eAEf/6wBI/+sASf/rAEv/6wBT/+sAVf/rAFb/5gBZ/+oAWv/oAF3/6ACU/+sAmf/rAJv/6gCy/0AAtP9AALv/6wC9/+gAyP/rAMn/6wDL/+oA0gAUANYAFAD3/+sBA//rAQ3/QAEY/+sBGv/oAR7/6wEi/+sBOQAUAUL/6wFFABQBYP/rAWH/6wFr/+sBhv7uAYr+7gGO/u4Bj/7uAev/wAHt/8ACM//AAn//QAKA/0ACgf9AAoL/QAKD/0AChP9AAoX/QAKa/94Cm//eApz/3gKd/94Cnv/eAp//3gKg/94Cof/rAqL/6wKj/+sCpP/rAqX/6wKr/+sCrP/rAq3/6wKu/+sCr//rArD/6gKx/+oCsv/qArP/6gK0/+gCtf/oArb/QAK3/94CuP9AArn/3gK6/0ACu//eAr3/6wK//+sCwf/rAsP/6wLF/+sCx//rAsn/6wLL/+sCzf/rAs//6wLR/+sC0//rAtX/6wLX/+sC5f8wAvn/6wL7/+sC/f/rAw4AFAMQABQDEgAUAxX/6gMX/+oDGf/qAxv/6gMd/+oDH//qAyP/6AMy/8ADM//AAzT/wAM1/8ADNv/AAzf/wAM4/8ADTf/AA07/wANP/8ADhv9AA47/QAOe/+sDov/qA6T/6wOm/+gDqf/qA6r/6wOr/+oDsv8wA7b/QAPBABQDw//eA8T/6wPG/+sDyP/rA8n/6APL/+sD0v/oA9r/6APi/0AD4//eA+b/6wPr/+gD7P/rA/H/6wPz/+gD+P9AA/n/3gP6/0AD+//eA///6wQB/+sEAv/rBAz/6wQO/+sEEP/rBBT/6AQW/+gEGP/oBB3/6wQe/0AEH//eBCD/QAQh/94EIv9ABCP/3gQk/0AEJf/eBCb/QAQn/94EKP9ABCn/3gQq/0AEK//eBCz/QAQt/94ELv9ABC//3gQw/0AEMf/eBDL/QAQz/94ENP9ABDX/3gQ3/+sEOf/rBDv/6wQ9/+sEP//rBEH/6wRD/+sERf/rBEv/6wRN/+sET//rBFH/6wRT/+sEVf/rBFf/6wRZ/+sEW//rBF3/6wRf/+sEYf/rBGP/6gRl/+oEZ//qBGn/6gRr/+oEbf/qBG//6gRx/+gEc//oBHX/6AR3ABQEmf9ABJr/3gSc/+sEoP/rBKT/6gSp/+sEq//rBL8AFATD/+gExf/oBMv/wATS/8AE6v/AADMAOP/fADr/5AA7/+wAPf/dANL/3wDW/98BGf/kATn/3wFF/98B6wAOAe0ADgIzAA4Cmf/dAw7/3wMQ/98DEv/fAyD/7AMi/90DJP/dAzIADgMzAA4DNAAOAzUADgM2AA4DNwAOAzgADgNNAA4DTgAOA08ADgOL/90Dmv/dA53/3QPB/98D0//sA9X/7APX/+wD2f/dA+r/5APy/90EcP/dBHL/3QR0/90Ed//fBIb/3QS//98Ewv/kBMT/5ATG/+wEywAOBNIADgTqAA4AHQA4/84AOv/tAD3/0ADS/84A1v/OARn/7QE5/84BRf/OApn/0AMO/84DEP/OAxL/zgMi/9ADJP/QA4v/0AOa/9ADnf/QA8H/zgPZ/9AD6v/tA/L/0ARw/9AEcv/QBHT/0AR3/84Ehv/QBL//zgTC/+0ExP/tABEALv/uADn/7gKV/+4Clv/uApf/7gKY/+4C5f/uAxT/7gMW/+4DGP/uAxr/7gMc/+4DHv/uA7L/7gRi/+4EZP/uBMH/7gBNAAYAEAALABAADQAUAEEAEgBH/+gASP/oAEn/6ABL/+gAVf/oAGEAEwCU/+gAmf/oALv/6ADI/+gAyf/oAPf/6AED/+gBHv/oASL/6AFC/+gBYP/oAWH/6AFr/+gBhAAQAYUAEAGHABABiAAQAYkAEAKh/+gCov/oAqP/6AKk/+gCpf/oAr3/6AK//+gCwf/oAsP/6ALF/+gCx//oAsn/6ALL/+gCzf/oAs//6ALR/+gC0//oAtX/6ALX/+gDnv/oA8T/6API/+gDy//oA9sAEAPcABAD3wAQA+b/6APs/+gD8f/oA///6AQB/+gEAv/oBA7/6AQd/+gEN//oBDn/6AQ7/+gEPf/oBD//6ARB/+gEQ//oBEX/6ARZ/+gEW//oBF3/6ARh/+gEnP/oBKn/6ASr/+gAAgD2/9YBhf+YAEAAR//sAEj/7ABJ/+wAS//sAFX/7ACU/+wAmf/sALv/7ADI/+wAyf/sAPf/7AED/+wBHv/sASL/7AFC/+wBYP/sAWH/7AFr/+wCof/sAqL/7AKj/+wCpP/sAqX/7AK9/+wCv//sAsH/7ALD/+wCxf/sAsf/7ALJ/+wCy//sAs3/7ALP/+wC0f/sAtP/7ALV/+wC1//sA57/7APE/+wDyP/sA8v/7APm/+wD7P/sA/H/7AP//+wEAf/sBAL/7AQO/+wEHf/sBDf/7AQ5/+wEO//sBD3/7AQ//+wEQf/sBEP/7ARF/+wEWf/sBFv/7ARd/+wEYf/sBJz/7ASp/+wEq//sABkAU//iARj/4gGFABgCq//iAqz/4gKt/+ICrv/iAq//4gL5/+IC+//iAv3/4gOk/+IDqv/iA8b/4gQM/+IEEP/iBEv/4gRN/+IET//iBFH/4gRT/+IEVf/iBFf/4gRf/+IEoP/iAAYAEP+EABL/hAGG/4QBiv+EAY7/hAGP/4QAEQAu/+wAOf/sApX/7AKW/+wCl//sApj/7ALl/+wDFP/sAxb/7AMY/+wDGv/sAxz/7AMe/+wDsv/sBGL/7ARk/+wEwf/sACAABv/yAAv/8gBa//MAXf/zAL3/8wD2//UBGv/zAYT/8gGF//IBh//yAYj/8gGJ//ICtP/zArX/8wMj//MDpv/zA8n/8wPS//MD2v/zA9v/8gPc//ID3//yA+v/8wPz//MEFP/zBBb/8wQY//MEcf/zBHP/8wR1//MEw//zBMX/8wA/ACf/8wAr//MAM//zADX/8wCD//MAk//zAJj/8wCz//MAxAANANP/8wEI//MBF//zARv/8wEd//MBH//zASH/8wFB//MBav/zAkX/8wJG//MCSP/zAkn/8wKG//MCkP/zApH/8wKS//MCk//zApT/8wK8//MCvv/zAsD/8wLC//MC0P/zAtL/8wLU//MC1v/zAvj/8wL6//MC/P/zAy3/8wOK//MDl//zA73/8wPA//MD7f/zA/D/8wQL//MEDf/zBA//8wRK//METP/zBE7/8wRQ//MEUv/zBFT/8wRW//MEWP/zBFr/8wRc//MEXv/zBGD/8wSf//MEuP/zAEAAJ//mACv/5gAz/+YANf/mAIP/5gCT/+YAmP/mALP/5gC4/8IAxAAQANP/5gEI/+YBF//mARv/5gEd/+YBH//mASH/5gFB/+YBav/mAkX/5gJG/+YCSP/mAkn/5gKG/+YCkP/mApH/5gKS/+YCk//mApT/5gK8/+YCvv/mAsD/5gLC/+YC0P/mAtL/5gLU/+YC1v/mAvj/5gL6/+YC/P/mAy3/5gOK/+YDl//mA73/5gPA/+YD7f/mA/D/5gQL/+YEDf/mBA//5gRK/+YETP/mBE7/5gRQ/+YEUv/mBFT/5gRW/+YEWP/mBFr/5gRc/+YEXv/mBGD/5gSf/+YEuP/mADgAJf/kADz/0gA9/9MAsv/kALT/5ADE/+IA2v/SAQ3/5AEz/9IBQ//SAV3/0gJ//+QCgP/kAoH/5AKC/+QCg//kAoT/5AKF/+QCmf/TArb/5AK4/+QCuv/kAyL/0wMk/9MDhv/kA4v/0wOO/+QDmv/TA5v/0gOd/9MDtv/kA8L/0gPZ/9MD4v/kA/L/0wP1/9ID+P/kA/r/5AQD/9IEHv/kBCD/5AQi/+QEJP/kBCb/5AQo/+QEKv/kBCz/5AQu/+QEMP/kBDL/5AQ0/+QEcP/TBHL/0wR0/9MEhv/TBJn/5AAoABD/RgAS/0YAJf/NALL/zQC0/80Ax//yAQ3/zQGG/0YBiv9GAY7/RgGP/0YCf//NAoD/zQKB/80Cgv/NAoP/zQKE/80Chf/NArb/zQK4/80Cuv/NA4b/zQOO/80Dtv/NA+L/zQP4/80D+v/NBB7/zQQg/80EIv/NBCT/zQQm/80EKP/NBCr/zQQs/80ELv/NBDD/zQQy/80ENP/NBJn/zQABAMQADgC5AEf/3ABI/9wASf/cAEv/3ABR/8EAUv/BAFP/1gBU/8EAVf/cAFn/3QBa/+EAXf/hAJT/3ACZ/9wAm//dALv/3AC9/+EAv//mAMH/wQDC/+sAw//pAMX/8ADG/+cAyP/cAMn/3ADK/+MAy//dAMz/zgDN/9QAzv/bAOz/wQDw/8EA8f/BAPP/wQD0/8EA9f/BAPf/3AD4/8EA+v/BAPv/wQD+/8EBAP/BAQP/3AEF/8EBGP/WARr/4QEe/9wBIv/cASv/wQE2/8EBPP/BAT7/wQFC/9wBU//BAVX/wQFX/8EBXP/BAWD/3AFh/9wBa//cAqH/3AKi/9wCo//cAqT/3AKl/9wCqv/BAqv/1gKs/9YCrf/WAq7/1gKv/9YCsP/dArH/3QKy/90Cs//dArT/4QK1/+ECvf/cAr//3ALB/9wCw//cAsX/3ALH/9wCyf/cAsv/3ALN/9wCz//cAtH/3ALT/9wC1f/cAtf/3ALy/8EC9P/BAvb/wQL3/8EC+f/WAvv/1gL9/9YDFf/dAxf/3QMZ/90DG//dAx3/3QMf/90DI//hA57/3AOg/8EDov/dA6T/1gOm/+EDqf/dA6r/1gOr/90DxP/cA8X/wQPG/9YDx//BA8j/3APJ/+EDy//cA8z/wQPR/8ED0v/hA9r/4QPh/8ED5v/cA+f/wQPr/+ED7P/cA/H/3APz/+ED///cBAH/3AQC/9wECP/BBAr/wQQM/9YEDv/cBBD/1gQU/+EEFv/hBBj/4QQc/8EEHf/cBDf/3AQ5/9wEO//cBD3/3AQ//9wEQf/cBEP/3ARF/9wES//WBE3/1gRP/9YEUf/WBFP/1gRV/9YEV//WBFn/3ARb/9wEXf/cBF//1gRh/9wEY//dBGX/3QRn/90Eaf/dBGv/3QRt/90Eb//dBHH/4QRz/+EEdf/hBHz/wQSY/8EEnP/cBKD/1gSk/90Eqf/cBKv/3AS1/8EEt//BBMP/4QTF/+EAfAAG/9oAC//aAEf/8ABI//AASf/wAEv/8ABV//AAWf/vAFr/3ABd/9wAlP/wAJn/8ACb/+8Au//wAL3/3ADC/+wAxAAPAMb/6gDI//AAyf/wAMr/zgDL/+8AzP/nAPf/8AED//ABGv/cAR7/8AEi//ABQv/wAWD/8AFh//ABa//wAYT/2gGF/9oBh//aAYj/2gGJ/9oCof/wAqL/8AKj//ACpP/wAqX/8AKw/+8Csf/vArL/7wKz/+8CtP/cArX/3AK9//ACv//wAsH/8ALD//ACxf/wAsf/8ALJ//ACy//wAs3/8ALP//AC0f/wAtP/8ALV//AC1//wAxX/7wMX/+8DGf/vAxv/7wMd/+8DH//vAyP/3AOe//ADov/vA6b/3AOp/+8Dq//vA8T/8API//ADyf/cA8v/8APS/9wD2v/cA9v/2gPc/9oD3//aA+b/8APr/9wD7P/wA/H/8APz/9wD///wBAH/8AQC//AEDv/wBBT/3AQW/9wEGP/cBB3/8AQ3//AEOf/wBDv/8AQ9//AEP//wBEH/8ARD//AERf/wBFn/8ARb//AEXf/wBGH/8ARj/+8EZf/vBGf/7wRp/+8Ea//vBG3/7wRv/+8Ecf/cBHP/3AR1/9wEnP/wBKT/7wSp//AEq//wBMP/3ATF/9wARwAQAAwAEgAMAEf/5wBI/+cASf/nAEv/5wBV/+cAlP/nAJn/5wC7/+cAxAAPAMj/5wDJ/+cA9//nAQP/5wEe/+cBIv/nAUL/5wFg/+cBYf/nAWv/5wGGAAwBigAMAY4ADAGPAAwCof/nAqL/5wKj/+cCpP/nAqX/5wK9/+cCv//nAsH/5wLD/+cCxf/nAsf/5wLJ/+cCy//nAs3/5wLP/+cC0f/nAtP/5wLV/+cC1//nA57/5wPE/+cDyP/nA8v/5wPm/+cD7P/nA/H/5wP//+cEAf/nBAL/5wQO/+cEHf/nBDf/5wQ5/+cEO//nBD3/5wQ//+cEQf/nBEP/5wRF/+cEWf/nBFv/5wRd/+cEYf/nBJz/5wSp/+cEq//nAAYAyv/qAO3/7gD2/9UA/v/tATr/7AFt/+wAAQD2/8AAAQDKACAAvgAGAAwACwAMAEf/6ABI/+gASf/oAEoADABL/+gAU//qAFX/6ABaAAsAXQALAJT/6ACZ/+gAu//oAL0ACwDE/5AAxgALAMj/6ADJ/+gAygAMAPf/6AED/+gBGP/qARoACwEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEAAwBhQAMAYcADAGIAAwBiQAMAdMADQHWAA0B2AAOAdn/9QHb/+wB3f/tAeX/7AHr/78B7P/tAe3/vwH0AA4B9f/tAfgADgIQAA4CEf/tAhIADQIUAA4CGv/tAjH/7gIz/78Cof/oAqL/6AKj/+gCpP/oAqX/6AKr/+oCrP/qAq3/6gKu/+oCr//qArQACwK1AAsCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AL5/+oC+//qAv3/6gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/+gDpP/qA6YACwOq/+oDxP/oA8b/6gPI/+gDyQALA8v/6APSAAsD2gALA9sADAPcAAwD3wAMA+b/6APrAAsD7P/oA/H/6APzAAsD///oBAH/6AQC/+gEDP/qBA7/6AQQ/+oEFAALBBYACwQYAAsEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gES//qBE3/6gRP/+oEUf/qBFP/6gRV/+oEV//qBFn/6ARb/+gEXf/oBF//6gRh/+gEcQALBHMACwR1AAsEnP/oBKD/6gSp/+gEq//oBMMACwTFAAsEy/+/BM//7QTQAA0E0v+/BN4ADQThAA0E6v+/BPH/7QT0/+0E9QAOBPn/7QT6AA0AAQD2/+IADgBc/+0AXv/tAO7/7QD2/8ABNP/tAUT/7QFe/+0DJv/tAyj/7QMq/+0Dyv/tA/b/7QQE/+0Eyf/tAA0AXP/yAF7/8gDu//IBNP/yAUT/8gFe//IDJv/yAyj/8gMq//IDyv/yA/b/8gQE//IEyf/yACIAWv/0AFz/8gBd//QAXv/zAL3/9ADu//IBGv/0ATT/8gFE//IBXv/yArT/9AK1//QDI//0Ayb/8wMo//MDKv/zA6b/9APJ//QDyv/yA9L/9APa//QD6//0A/P/9AP2//IEBP/yBBT/9AQW//QEGP/0BHH/9ARz//QEdf/0BMP/9ATF//QEyf/zAGIABv/KAAv/ygA4/9IAOv/UADz/9AA9/9MAWv/mAFz/7wBd/+YAvf/mANL/0gDW/9IA2v/0AN7/7QDh/+EA5v/UAO7/7wD2/8kA/v/RAQn/5QEZ/9QBGv/mASD/4wEz//QBNP/vATn/0gE6/8QBQ//0AUT/7wFF/9IBR//hAUn/4QFd//QBXv/vAWL/1AFj//UBZP/nAWz/ZAFt/8kBhP/KAYX/ygGH/8oBiP/KAYn/ygKZ/9MCtP/mArX/5gMO/9IDEP/SAxL/0gMi/9MDI//mAyT/0wOL/9MDmv/TA5v/9AOd/9MDpv/mA7X/7QPB/9IDwv/0A8n/5gPK/+8D0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD6v/UA+v/5gPy/9MD8//mA/X/9AP2/+8EA//0BAT/7wQT/+0EFP/mBBX/7QQW/+YEF//tBBj/5gQZ/+EEcP/TBHH/5gRy/9MEc//mBHT/0wR1/+YEd//SBHn/4QSG/9MEv//SBML/1ATD/+YExP/UBMX/5gByAAb/wAAL/8AAOP+dADr/xwA8//AAPf+rAFH/0gBS/9IAVP/SAMH/0gDS/50A1P/1ANb/nQDa//AA3f/1AN7/6gDh/+UA5v/BAOz/0gDw/9IA8f/SAPP/0gD0/9IA9f/SAPb/zQD4/9IA+v/SAPv/0gD+/9IBAP/SAQX/0gEZ/8cBK//SATP/8AE2/9IBOf+dATr/zAE8/9IBPv/SAUP/8AFF/50BR//lAUn/5QFM/98BUP/1AVP/0gFV/9IBV//SAVz/0gFd//ABYv/OAWT/6gFm//UBbP+eAW3/zgFv//UBhP/AAYX/wAGH/8ABiP/AAYn/wAKZ/6sCqv/SAvL/0gL0/9IC9v/SAvf/0gMO/50DEP+dAxL/nQMi/6sDJP+rA4v/qwOa/6sDm//wA53/qwOg/9IDtf/qA8H/nQPC//ADxf/SA8f/0gPM/9ID0f/SA9n/qwPb/8AD3P/AA9//wAPh/9ID5//SA+r/xwPy/6sD9f/wBAP/8AQI/9IECv/SBBP/6gQV/+oEF//qBBn/5QQc/9IEcP+rBHL/qwR0/6sEd/+dBHn/5QR8/9IEhv+rBJj/0gS1/9IEt//SBL//nQTC/8cExP/HAHUABv+xAAv/sQA4/54AOv/FADz/8gA9/6gAUf/PAFL/zwBU/88AXP/vAMH/zwDS/54A1v+eANr/8gDe/+wA4f/hAOb/wgDs/88A7v/vAPD/zwDx/88A8//PAPT/zwD1/88A9v/GAPj/zwD6/88A+//PAP7/zwEA/88BBf/PARn/xQEr/88BM//yATT/7wE2/88BOf+eATr/wAE8/88BPv/PAUP/8gFE/+8BRf+eAUf/4QFJ/+EBTP/fAVP/zwFV/88BV//PAVz/zwFd//IBXv/vAWL/zQFk/+gBbP+fAW3/xgGE/7EBhf+xAYf/sQGI/7EBif+xApn/qAKq/88C8v/PAvT/zwL2/88C9//PAw7/ngMQ/54DEv+eAyL/qAMk/6gDi/+oA5r/qAOb//IDnf+oA6D/zwO1/+wDwf+eA8L/8gPF/88Dx//PA8r/7wPM/88D0f/PA9n/qAPb/7ED3P+xA9//sQPh/88D5//PA+r/xQPy/6gD9f/yA/b/7wQD//IEBP/vBAj/zwQK/88EE//sBBX/7AQX/+wEGf/hBBz/zwRw/6gEcv+oBHT/qAR3/54Eef/hBHz/zwSG/6gEmP/PBLX/zwS3/88Ev/+eBML/xQTE/8UAUwA4/74AUf/hAFL/4QBU/+EAWv/vAF3/7wC9/+8Awf/hANL/vgDW/74A5v/JAOz/4QDw/+EA8f/hAPP/4QD0/+EA9f/hAPb/3wD4/+EA+v/hAPv/4QD+/+EBAP/hAQX/4QEJ/+0BGv/vASD/6wEr/+EBNv/hATn/vgE6/98BPP/hAT7/4QFF/74BTP/pAVP/4QFV/+EBV//hAVz/4QFj//UBbf/gAqr/4QK0/+8Ctf/vAvL/4QL0/+EC9v/hAvf/4QMO/74DEP++AxL/vgMj/+8DoP/hA6b/7wPB/74Dxf/hA8f/4QPJ/+8DzP/hA9H/4QPS/+8D2v/vA+H/4QPn/+ED6//vA/P/7wQI/+EECv/hBBT/7wQW/+8EGP/vBBz/4QRx/+8Ec//vBHX/7wR3/74EfP/hBJj/4QS1/+EEt//hBL//vgTD/+8Exf/vAGoAOP/mADr/5wA8//IAPf/nAFH/1gBS/9YAVP/WAFz/8QDB/9YA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7P/WAO7/8QDw/9YA8f/WAPP/1gD0/9YA9f/WAPb/0AD4/9YA+v/WAPv/1gD+/9YBAP/WAQX/1gEZ/+cBK//WATP/8gE0//EBNv/WATn/5gE6/84BPP/WAT7/1gFD//IBRP/xAUX/5gFH/+gBSf/oAVP/1gFV/9YBV//WAVz/1gFd//IBXv/xAWL/5wFk/+0BbP/mAW3/0AKZ/+cCqv/WAvL/1gL0/9YC9v/WAvf/1gMO/+YDEP/mAxL/5gMi/+cDJP/nA4v/5wOa/+cDm//yA53/5wOg/9YDtf/uA8H/5gPC//IDxf/WA8f/1gPK//EDzP/WA9H/1gPZ/+cD4f/WA+f/1gPq/+cD8v/nA/X/8gP2//EEA//yBAT/8QQI/9YECv/WBBP/7gQV/+4EF//uBBn/6AQc/9YEcP/nBHL/5wR0/+cEd//mBHn/6AR8/9YEhv/nBJj/1gS1/9YEt//WBL//5gTC/+cExP/nAJgAJQAQACf/6AAr/+gAM//oADX/6AA4/+AAOv/gAD3/3wCD/+gAk//oAJj/6ACyABAAs//oALQAEADS/+AA0//oANQAEADW/+AA2QAUAN0AEADh/+EA5v/gAO0AEwDyABAA+f/gAQQAEAEI/+gBDQAQARf/6AEZ/+ABG//oAR3/6AEf/+gBIf/oATn/4AFB/+gBRf/gAUf/4QFI/+ABSf/hAUr/4AFN/+EBUAAQAVEAEAFY/+kBYv/fAWT/3gFmABABav/oAWz/3wFu//IBbwAQAXAAEAJF/+gCRv/oAkj/6AJJ/+gCfwAQAoAAEAKBABACggAQAoMAEAKEABAChQAQAob/6AKQ/+gCkf/oApL/6AKT/+gClP/oApn/3wK2ABACuAAQAroAEAK8/+gCvv/oAsD/6ALC/+gC0P/oAtL/6ALU/+gC1v/oAvj/6AL6/+gC/P/oAw7/4AMQ/+ADEv/gAyL/3wMk/98DLf/oA4YAEAOK/+gDi//fA44AEAOX/+gDmv/fA53/3wO2ABADvf/oA8D/6APB/+AD2f/fA+IAEAPq/+AD7f/oA/D/6APy/98D+AAQA/oAEAQL/+gEDf/oBA//6AQZ/+EEGv/gBB4AEAQgABAEIgAQBCQAEAQmABAEKAAQBCoAEAQsABAELgAQBDAAEAQyABAENAAQBEr/6ARM/+gETv/oBFD/6ARS/+gEVP/oBFb/6ARY/+gEWv/oBFz/6ARe/+gEYP/oBHD/3wRy/98EdP/fBHf/4AR5/+EEev/gBIb/3wSZABAEn//oBLj/6AS//+AEwv/gBMT/4AA1ABv/8gA4//EAOv/0ADz/9AA9//AA0v/xANT/9QDW//EA2v/0AN3/9QDe//MA5v/xARn/9AEz//QBOf/xAUP/9AFF//EBUP/1AV3/9AFi//IBZP/yAWb/9QFs//IBb//1Apn/8AMO//EDEP/xAxL/8QMi//ADJP/wA4v/8AOa//ADm//0A53/8AO1//MDwf/xA8L/9APZ//AD6v/0A/L/8AP1//QEA//0BBP/8wQV//MEF//zBHD/8ARy//AEdP/wBHf/8QSG//AEv//xBML/9ATE//QAawAlAA8AOP/mADr/5gA8AA4APf/mALIADwC0AA8A0v/mANQADgDW/+YA2QATANoADgDdAA4A3gALAOH/5QDm/+YA5//0AO0AEgDyAA8A9v/nAPn/6AD+/+cBBAAPAQ0ADwEZ/+YBMwAOATn/5gE6/+cBQwAOAUX/5gFH/+UBSP/oAUn/5QFK/+gBTP/kAVAADgFRAA8BXQAOAWL/5gFk/+YBZgAOAWz/5gFt/+cBbwAOAXAADwJ/AA8CgAAPAoEADwKCAA8CgwAPAoQADwKFAA8Cmf/mArYADwK4AA8CugAPAw7/5gMQ/+YDEv/mAyL/5gMk/+YDhgAPA4v/5gOOAA8Dmv/mA5sADgOd/+YDtQALA7YADwPB/+YDwgAOA9n/5gPiAA8D6v/mA/L/5gP1AA4D+AAPA/oADwQDAA4EEwALBBUACwQXAAsEGf/lBBr/6AQeAA8EIAAPBCIADwQkAA8EJgAPBCgADwQqAA8ELAAPBC4ADwQwAA8EMgAPBDQADwRw/+YEcv/mBHT/5gR3/+YEef/lBHr/6ASG/+YEmQAPBL//5gTC/+YExP/mADoABv+/AAv/vwA4/58AOv/JAD3/rQDS/58A1v+fAN7/7ADh/+YA5v/EAPb/zQD+/9UBGf/JATn/nwE6/8wBRf+fAUf/5gFJ/+YBTP/fAWL/0QFk/+wBbP+hAW3/zwGE/78Bhf+/AYf/vwGI/78Bif+/Apn/rQMO/58DEP+fAxL/nwMi/60DJP+tA4v/rQOa/60Dnf+tA7X/7APB/58D2f+tA9v/vwPc/78D3/+/A+r/yQPy/60EE//sBBX/7AQX/+wEGf/mBHD/rQRy/60EdP+tBHf/nwR5/+YEhv+tBL//nwTC/8kExP/JADEAOP/jADz/5QA9/+QA0v/jANT/5QDW/+MA2f/iANr/5QDd/+UA3v/pAPL/6gEE/+oBM//lATn/4wFD/+UBRf/jAVD/5QFR/+oBXf/lAWb/5QFs/+QBb//lAXD/6gKZ/+QDDv/jAxD/4wMS/+MDIv/kAyT/5AOL/+QDmv/kA5v/5QOd/+QDtf/pA8H/4wPC/+UD2f/kA/L/5AP1/+UEA//lBBP/6QQV/+kEF//pBHD/5ARy/+QEdP/kBHf/4wSG/+QEv//jACQAOP/iADz/5ADS/+IA1P/kANb/4gDZ/+EA2v/kAN3/5ADe/+kA7f/kAPL/6wEE/+sBM//kATn/4gFD/+QBRf/iAVD/5AFR/+sBXf/kAWb/5AFv/+QBcP/rAw7/4gMQ/+IDEv/iA5v/5AO1/+kDwf/iA8L/5AP1/+QEA//kBBP/6QQV/+kEF//pBHf/4gS//+IAGAA4/+sAPf/zANL/6wDW/+sBOf/rAUX/6wKZ//MDDv/rAxD/6wMS/+sDIv/zAyT/8wOL//MDmv/zA53/8wPB/+sD2f/zA/L/8wRw//MEcv/zBHT/8wR3/+sEhv/zBL//6wA5AFH/7wBS/+8AVP/vAFz/8ADB/+8A7P/vAO3/7gDu//AA8P/vAPH/7wDz/+8A9P/vAPX/7wD2/+4A+P/vAPr/7wD7/+8A/v/vAQD/7wEF/+8BCf/0ASD/8QEr/+8BNP/wATb/7wE6/+8BPP/vAT7/7wFE//ABU//vAVX/7wFX/+8BXP/vAV7/8AFt/+8Cqv/vAvL/7wL0/+8C9v/vAvf/7wOg/+8Dxf/vA8f/7wPK//ADzP/vA9H/7wPh/+8D5//vA/b/8AQE//AECP/vBAr/7wQc/+8EfP/vBJj/7wS1/+8Et//vACQABv/yAAv/8gBa//UAXf/1AL3/9QD2//QA/v/0AQn/9QEa//UBOv/1AW3/9QGE//IBhf/yAYf/8gGI//IBif/yArT/9QK1//UDI//1A6b/9QPJ//UD0v/1A9r/9QPb//ID3P/yA9//8gPr//UD8//1BBT/9QQW//UEGP/1BHH/9QRz//UEdf/1BMP/9QTF//UANQBR/+4AUv/uAFT/7gDB/+4A7P/uAO0AFADw/+4A8f/uAPP/7gD0/+4A9f/uAPb/7QD4/+4A+f/tAPr/7gD7/+4A/P/QAP7/7gEA/+4BBf/uASv/7gE2/+4BOv/tATz/7gE+/+4BSP/tAUr/7QFT/+4BVf/uAVf/7gFc/+4Bbf/tAqr/7gLy/+4C9P/uAvb/7gL3/+4DoP/uA8X/7gPH/+4DzP/uA9H/7gPh/+4D5//uBAj/7gQK/+4EGv/tBBz/7gR6/+0EfP/uBJj/7gS1/+4Et//uAAoABv/1AAv/9QGE//UBhf/1AYf/9QGI//UBif/1A9v/9QPc//UD3//1AHYAR//wAEj/8ABJ//AAS//wAFP/xwBV//AAlP/wAJn/8AC7//AAyP/wAMn/8AD3//ABA//wARj/xwEc/+sBHv/wASL/8AFC//ABYP/wAWH/8AFr//AB2//rAd3/6wHl/+kB7P/rAfX/6wIR/+sCGv/rAjH/6wKh//ACov/wAqP/8AKk//ACpf/wAqv/xwKs/8cCrf/HAq7/xwKv/8cCvf/wAr//8ALB//ACw//wAsX/8ALH//ACyf/wAsv/8ALN//ACz//wAtH/8ALT//AC1f/wAtf/8AL5/8cC+//HAv3/xwM5/+sDQ//rA0T/6wNF/+sDRv/rA0f/6wNQ/+sDUf/rA1L/6wNT/+sDWv/rA1v/6wNc/+sDXf/rA23/6wNu/+sDb//rA57/8AOk/8cDqv/HA8T/8APG/8cDyP/wA8v/8APm//AD7P/wA/H/8AP///AEAf/wBAL/8AQM/8cEDv/wBBD/xwQd//AEN//wBDn/8AQ7//AEPf/wBD//8ARB//AEQ//wBEX/8ARL/8cETf/HBE//xwRR/8cEU//HBFX/xwRX/8cEWf/wBFv/8ARd//AEX//HBGH/8ASc//AEoP/HBKn/8ASr//AEz//rBPH/6wT0/+sE+f/rAOIABgANAAsADQBF//AAR//AAEj/wABJ/8AASgANAEv/wABT/+IAVf/AAFoACwBdAAsAlP/AAJn/wAC7/8AAvQALAMf/1gDI/8AAyf/AAMz/1QDt/8gA8v/XAPf/wAED/8ABBP/XARj/4gEaAAsBHP/sAR7/wAEgAAwBIv/AAUL/wAFR/9cBYP/AAWH/wAFjAAsBZQALAWv/wAFw/9cBhAANAYUADQGHAA0BiAANAYkADQHTAA0B1gANAdgADgHZ//UB2//sAd3/7QHl/+wB6/+/Aez/7QHt/78B9AAOAfX/7QH4AA4CEAAOAhH/7QISAA0CFAAOAhr/7QIx/+4CM/+/Apr/8AKb//ACnP/wAp3/8AKe//ACn//wAqD/8AKh/8ACov/AAqP/wAKk/8ACpf/AAqv/4gKs/+ICrf/iAq7/4gKv/+ICtAALArUACwK3//ACuf/wArv/8AK9/8ACv//AAsH/wALD/8ACxf/AAsf/wALJ/8ACy//AAs3/wALP/8AC0f/AAtP/wALV/8AC1//AAvn/4gL7/+IC/f/iAyMACwMy/78DM/+/AzT/vwM1/78DNv+/Azf/vwM4/78DOf/tA0P/7QNE/+0DRf/tA0b/7QNH/+0DTAANA03/vwNO/78DT/+/A1D/7QNR/+0DUv/tA1P/7QNa/+0DW//tA1z/7QNd/+0Dbf/tA27/7QNv/+0Dc//1A3T/9QN1//UDdv/1A3gADgOBAA0DggANA57/wAOk/+IDpgALA6r/4gPD//ADxP/AA8b/4gPI/8ADyQALA8v/wAPSAAsD2gALA9sADQPcAA0D3wANA+P/8APm/8AD6wALA+z/wAPx/8AD8wALA/n/8AP7//AD///ABAH/wAQC/8AEDP/iBA7/wAQQ/+IEFAALBBYACwQYAAsEHf/ABB//8AQh//AEI//wBCX/8AQn//AEKf/wBCv/8AQt//AEL//wBDH/8AQz//AENf/wBDf/wAQ5/8AEO//ABD3/wAQ//8AEQf/ABEP/wARF/8AES//iBE3/4gRP/+IEUf/iBFP/4gRV/+IEV//iBFn/wARb/8AEXf/ABF//4gRh/8AEcQALBHMACwR1AAsEmv/wBJz/wASg/+IEqf/ABKv/wATDAAsExQALBMv/vwTP/+0E0AANBNL/vwTeAA0E4QANBOr/vwTx/+0E9P/tBPUADgT5/+0E+gANAA8A7QAUAPIAEAD2//AA+f/wAP7/8AEBABYBBAAQATr/5gFI//ABSv/cAVEAEAFt//ABcAAQBBr/8AR6//AATwBH/+4ASP/uAEn/7gBL/+4AVf/uAJT/7gCZ/+4Au//uAMj/7gDJ/+4A7QASAPIADgD2/+MA9//uAPn/4wD8/7gA/v/jAQP/7gEEAA4BHv/uASL/7gE6/7oBQv/uAUj/4wFK/9kBUQAOAWD/7gFh/+4Ba//uAW3/4wFwAA4Cof/uAqL/7gKj/+4CpP/uAqX/7gK9/+4Cv//uAsH/7gLD/+4Cxf/uAsf/7gLJ/+4Cy//uAs3/7gLP/+4C0f/uAtP/7gLV/+4C1//uA57/7gPE/+4DyP/uA8v/7gPm/+4D7P/uA/H/7gP//+4EAf/uBAL/7gQO/+4EGv/jBB3/7gQ3/+4EOf/uBDv/7gQ9/+4EP//uBEH/7gRD/+4ERf/uBFn/7gRb/+4EXf/uBGH/7gR6/+MEnP/uBKn/7gSr/+4AIgBa/8AAXf/AAL3/wAD2/4AA+f/uAP7/8AEJ/9sBGv/AASD/3AE6/0cBSP/uAUr/7gFjAAcBZf/0AW3/fwK0/8ACtf/AAyP/wAOm/8ADyf/AA9L/wAPa/8AD6//AA/P/wAQU/8AEFv/ABBj/wAQa/+4Ecf/ABHP/wAR1/8AEev/uBMP/wATF/8AAIwBa//QAXP/wAF3/9AC9//QA7f/vAO7/8ADy//MA/v/uAQT/8wEa//QBNP/wAUT/8AFR//MBXv/wAXD/8wK0//QCtf/0AyP/9AOm//QDyf/0A8r/8APS//QD2v/0A+v/9APz//QD9v/wBAT/8AQU//QEFv/0BBj/9ARx//QEc//0BHX/9ATD//QExf/0AAoABv/WAAv/1gGE/9YBhf/WAYf/1gGI/9YBif/WA9v/1gPc/9YD3//WABUAXP/gAO7/4AD2/3YA+f/CAP7/0wEJ/9kBIP/bATT/4AE6/x4BRP/gAUj/wgFK/+0BXv/gAWP/8AFl//IBbf9WA8r/4AP2/+AEBP/gBBr/wgR6/8IADQD2/2QA+f/SAP7/2QEJ/9kBIP/bATr/HgFI/9IBSv/tAWP/8AFl//IBbf9WBBr/0gR6/9IACQD2/2oA/v/GAQn/2QEg/9sBOv8eAUr/7QFj//ABZf/yAW3/VgAKAAb/1wAL/9cBhP/XAYX/1wGH/9cBiP/XAYn/1wPb/9cD3P/XA9//1wBiAEf/mABI/5gASf+YAEv/mABT/3AAVf+YAFf/GABbAAsAlP+YAJn/mAC7/5gAyP+YAMn/mAD3/5gBA/+YARj/cAEe/5gBIv+YAUL/mAFg/5gBYf+YAWv/mAHB/xgCof+YAqL/mAKj/5gCpP+YAqX/mAKr/3ACrP9wAq3/cAKu/3ACr/9wAr3/mAK//5gCwf+YAsP/mALF/5gCx/+YAsn/mALL/5gCzf+YAs//mALR/5gC0/+YAtX/mALX/5gC+f9wAvv/cAL9/3ADBf8YAwf/GAMJ/xgDC/8YAw3/GAOe/5gDpP9wA6r/cAPE/5gDxv9wA8j/mAPL/5gDzf8YA+b/mAPs/5gD8f+YA///mAQB/5gEAv+YBAz/cAQO/5gEEP9wBB3/mAQ3/5gEOf+YBDv/mAQ9/5gEP/+YBEH/mARD/5gERf+YBEv/cARN/3AET/9wBFH/cART/3AEVf9wBFf/cARZ/5gEW/+YBF3/mARf/3AEYf+YBJz/mASg/3AEqf+YBKv/mAS+/xgAEwHT/+4B1f/1Adb/8QHY//IB9P/yAfj/8gIQ//ICEv/uAhT/8gNM/+4DeP/yA4D/9QOB/+4Dgv/uBND/7gTe/+4E4f/uBPX/8gT6/+4AEwHT/+UB1f/xAdb/6wHY/+kB9P/pAfj/6QIQ/+kCEv/lAhT/6QNM/+UDeP/pA4D/8QOB/+UDgv/lBND/5QTe/+UE4f/lBPX/6QT6/+UAAwHV//UB1v/uA4D/9QACAdb/twHb//AAAQBbAAsABAAN/+YAQf/0AGH/7wFN/+0AFgC4/9QAwv/tAMQAEQDK/+AAzP/nAM3/5QDO/+4A2QASAOr/6QD2/9cBOv/XAUr/0wFM/9YBTf/FAVj/5wFiAA0BZAAMAW3/1gFu//IB2//pAeX/5wIx/+kAAQEc//EAEgDZ/64A5gASAOv/4ADt/60A7//WAP3/3wEB/9IBB//gARz/zgEu/90BMP/iATj/4AFA/+ABSv/pAU3/2gFf/70Baf/fAWwAEQACAPb/9QGF/8AAAgDt/2gBHP/uAAoA5v/DAPb/zwD+/9QBOv/OAUn/5wFM/98BYv/RAWT/7AFs/6ABbf/RADAAVv9+AFv/nQBt/vEAfP70AIH+qwCG/14Aif9LALj/cgC//w8Aw/8KAMb/QQDH/wcAyv9oAMz/DwDN/w4Azv8MANn/YwDmAAUA6v+9AOv/SQDt/v4A7/8TAPb/aAD9/w4A/v9oAP//EwEB/wcBAgAwAQf/DgEJ/xEBHP7nASD/rAEu/xUBMP88ATj/DgE6/2oBQP9JAUr/DAFM/z8BTf7xAVj/wAFf/u8BY/8xAWX/XwFp/woBbAAFAW3/MAFu/9UAHQAK/+IADQAUAA7/zwBBABIASv/qAFb/2ABY/+oAYQATAG3/rgB8/80Agf+gAIb/wQCJ/8AAuP/QALz/6gC//8YAwAANAML/6QDD/9YAxv/oAMf/ugDK/+kAzP/LAM3/2gDO/8cBjf/TAdv/ywHl/8sCMf/NABgAI/+vAFj/7wBb/98Amv/uALj/5QC5/9EAxAARAMr/yADZABMA5v/FAPb/ygD+/9ABOv+BAUn/ZQFK/4UBTP9mAU3/3QFY//IBYv+xAWT/ygFs/6kBbf/IAdb/zQHl//UACAD2//AA/v/wAQn/8QEg//MBOv/xAWP/8wFl//MBbf/xAAMASv/uAFv/6gHW//AACQDK/+oA7f+4APb/4gEJ//ABIP/xATr/6wFj//UBbf/sAYX/kAACAREACwFs/+YAEwBb/8EAuP/FAMr/tADq/9cA9v+5AP7/6QEJ/7IBHP/SASD/yAE6/6ABSv/FAVj/5AFj/8wBZf/MAW3/ywFu/+8B2//nAeX/5gIx/+gABQBb/8wB1v+4Adv/8gHl//ECMf/zAAgA2QAVAO0AFQFJ/+QBSv/lAUz/5AFi/+MBZP/iAWz/5AACAPb/1gGF/4gABwBYAA4Agf7XAMT/mADH/8cA2f8SAO3/UgFf/88ABgDK/+oA7f/uAPb/1gD+/+0BOv/sAW3/7AAEAEoAFABYADIAWwARAYUAEAA0AAT/xABW/78AW//RAG3/bAB8/24Agf9DAIb/rACJ/6EAuP+4AL//fgDD/3sAxv+bAMf/eQDK/7IAzP9+AM3/fQDO/3wA2f+vAOYADwDq/+QA6/+gAO3/dADv/4AA9v+yAP3/fQD+/7IA//+AAQH/eQECACgBB/99AQn/fwEc/2YBIP/aAS7/gQEw/5gBOP99ATr/swFA/6ABSv98AUz/mgFN/2wBWP/mAV//awFj/5IBZf+tAWn/ewFsAA8Bbf+RAW7/8gHb/7kB5f+5AjH/uQAHAA0AFABBABEAVv/iAGEAEwHb/9kB5f/ZAjH/2QAGAEoADQDGAAsAx//qAMoADADt/8gBHP/xAAcADQAPAEEADABW/+sAYQAOAdv/5wHl/+cCMf/pAAYAW//lALj/ywDN/+QB2//sAeX/6wIx/+0ABwCB/98Atf/zALf/8ADE/+oA2f/fAOb/4AFs/+AAAQHb/+sABAHW/8cB2//yAeX/8gIx//IAAQHW//EAAQHWAA0AAgsMAAQAAA6sF2gAJgAlAAAAAAAAAAAAAAAAABIAAAAAAAAAAP/j/+QAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAEQAAABEAAAAAAAAAAP/k/+UAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAA/6v/1f/tAAAAAAAA/+oAAP/pAAAAAAAAAAAAAP/h/4YAAP/1/+oAAAAAAAAAAAAAAAAAAAAAAAD/6//Q//T/9QAAAAD/9f/O/+//iP9qAAAAAAAMAAAAAP/xAAD/iAAA/9n/xP/HABEAAAASAAD/swAAAAD/yf/fAAAAAP/dAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAA//AAAAAAAAAAAP+o/+sAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAA/+3/7wAAAAAAAP/mAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAD/8QAAAAAAAAAA/+P/8QAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAD/8QAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAP9Z/9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+b/4QAA/+X/6QAAAAD/5//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1wAAP+jAAAAAAAAAAD/v//j/9j/v//Z/2r/wf/L/+z/oAARABL/q//G/+L/8AANAAAAAAAA/+kAEQAA//MAAP8ZAAD/7wASAAD/aAAAAAAAAP+g//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+r/7gAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/6f/5P+n/zD/v/+I/1j/uf+uAAAAEAAQ/6//tP/E//AAAAAAAAAAAP+zAA8AAP/x/8v+/v9+/+0AEP+8/vAAAP98AAD/KP/xAAAAAAAAAAAAAAAAAAAAAP/yAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAP+//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gAAP/wAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+v/5gAA/+v/7QANAAD/7P/lAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5v/nAAD/6//rAAAAAP/n/+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAABEAAAAOAAD/ZAAA/9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAD/3AAAAAD/4gAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAP9TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAP/zAAD/Tv/1AAAADwAAAAAAAP+AAAAAAAAA/80AAP/cAAAAAAAAAAAAAP9v/mz/pwAAAAAAAAAAAAAAAAAA/0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAP/yABMAAP/y/4X/6P8z/ukAEwAAAAAAAAAA/+4AAP7gAAD/o/+3/70AAAAAAAAAAP8yAAAAAAAAAAAAAAAA/9cAAP/FAAD/7P+lAAD/iP/OAAAAAAAAAAAAAAAA/6QAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAD/4QAAAAD/4f/t/9X/3//nAAAAAAAOAAD/ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9xAAAAAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+X/yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+gAAAAAAAAAAP/zAAAAAAAA/9T/8wAA/9L/5P+1/9L/2f/1AAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KQAAAAAAAAAA/2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tQAAAAAAAAAAAAAAAAAAAAAAAAAA/3n/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/n/+tAAAAAAAAAAAAAAAAAAD/wP/JAAAAAAAAAAAAAAAAAAD/yAAAAAD/5wAA/+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9V/73/Vf9m/37/M/9fAAD/YQAAAAcABwAA/2v/hv/RAAAAAAAAAAD/agAFAAAAAP+S/jb/DwAAAAcAAP4eAAD/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/vAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAP+0/7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAP+9/+n/rv+9AAD/pf+vAAAAAAAAABIAEgAA/9IAAAAAAAAAAAAAAAAAAAAAAAAAAP/K/nf/uwAAAAAAAP85AAD/6QAAAAAAAAACAJoABgAGAAAACwALAAEAEAAQAAIAEgASAAMAJQApAAQALAA0AAkAOAA+ABIARQBHABkASQBJABwATABMAB0AUQBUAB4AVgBWACIAWgBaACMAXABeACQAigCKACcAlgCWACgAsQC0ACkAvQC9AC0AwQDBAC4AxwDHAC8A1ADVADAA1wDXADIA2gDaADMA3ADeADQA4ADmADcA7ADsAD4A7gDuAD8A9wD3AEAA/AD8AEEA/gD/AEIBBAEFAEQBCgEKAEYBDQENAEcBGAEaAEgBLgEwAEsBMwE1AE4BNwE3AFEBOQE5AFIBOwE7AFMBQwFEAFQBVAFUAFYBVgFWAFcBWAFYAFgBXAFeAFkBhAGKAFwBjgGPAGMB2AHYAGUB3QHdAGYB4AHhAGcB6wHtAGkB/wH/AGwCDgIQAG0CMAIwAHACMwIzAHECRQJFAHICRwJIAHMCegJ7AHUCfQJ9AHcCfwKlAHgCqgKvAJ8CtALEAKUCxgLPALYC2ALaAMAC3ALcAMMC3gLeAMQC4ALgAMUC4gLiAMYC5QLlAMcC5wLnAMgC6QLpAMkC6wLrAMoC7QLtAMsC7wLvAMwC8QL9AM0C/wL/ANoDAQMBANsDAwMDANwDDgMOAN0DEAMQAN4DEgMSAN8DFAMUAOADFgMWAOEDGAMYAOIDGgMaAOMDHAMcAOQDHgMeAOUDIAMgAOYDIgMqAOcDLwM4APADQwNHAPoDTQNPAP8DVANUAQIDZQNpAQMDbQNvAQgDeAN4AQsDhgOLAQwDjgOdARIDoAOgASIDpAOkASMDpgOmASQDqgOqASUDrQOuASYDsAO5ASgDuwO9ATIDvwPEATUDxgPMATsD0gPTAUID1QPVAUQD1wPXAUUD2QPcAUYD3wPkAUoD5gPmAVAD6gPrAVED8AP7AVMD/gP/AV8EAQQEAWEECwQMAWUEEAQQAWcEEgQYAWgEHgRGAW8ESARIAZgESgRXAZkEXwRfAacEYgRiAagEZARkAakEcAR1AaoEdwR3AbAEewR8AbEEfwR/AbMEgQSCAbQEhASEAbYEhgSGAbcElwSbAbgEnQSdAb0EnwSgAb4EogSiAcAEpgSoAcEEqgSqAcQErASuAcUEsASwAcgEsgSyAckEtAS6AcoEvAS8AdEEvwS/AdIEwQTGAdMEyATLAdkEzwTPAd0E0gTSAd4E2ATYAd8E3QTdAeAE6AToAeEE6gTqAeIE8QTxAeME9QT1AeQAAgF0AAYABgAZAAsACwAZABAAEAAhABIAEgAhACUAJQACACYAJgAcACcAJwATACgAKAABACkAKQAFAC4ALgAKAC8ALwALADAAMAAYADMAMwABADQANAAWADgAOAAOADkAOQAKADoAOgAdADsAOwAbADwAPAASAD0APQAMAD4APgARAEUARQAGAEYARgAHAEcARwAXAEkASQAIAEwATAAEAFEAUgAEAFMAUwADAFQAVAAHAFYAVgAVAFoAWgAJAFwAXAAUAF0AXQAJAF4AXgAQAIoAigAHAJYAlgABALEAsQAiALIAsgACALMAswABALQAtAACAL0AvQAJAMEAwQAEAMcAxwAHANQA1QAgANoA2gASAN4A3gAlAOQA5AAgAOYA5gAgAOwA7AAaAO4A7gAUAPcA9wAHAPwA/AAfAP4A/gAfAP8A/wAHAQQBBQAfAQoBCgAfAQ0BDQACARgBGAADARkBGQAdARoBGgAJAS4BLgAHAS8BLwAiATABMAAaATMBMwASATQBNAAUATUBNQALATcBNwALATkBOQALAUMBQwASAUQBRAAUAVgBWAABAVwBXAAaAV0BXQASAV4BXgAUAYQBhQAZAYYBhgAhAYcBiQAZAYoBigAhAY4BjwAhAdgB2AAjAd0B3QANAeAB4AAkAeEB4QAeAesB6wAPAewB7AANAe0B7QAPAf8B/wAeAg4CEAAeAjACMAANAjMCMwAPAkUCRQATAkcCSAABAnoCewABAn0CfQAOAn8ChQACAoYChgATAocCigAFApAClAABApUCmAAKApkCmQAMApoCoAAGAqECoQAXAqICpQAIAqoCqgAEAqsCrwADArQCtQAJArYCtgACArcCtwAGArgCuAACArkCuQAGAroCugACArsCuwAGArwCvAATAr0CvQAXAr4CvgATAr8CvwAXAsACwAATAsECwQAXAsICwgATAsMCwwAXAsQCxAABAsYCxgAFAscCxwAIAsgCyAAFAskCyQAIAsoCygAFAssCywAIAswCzAAFAs0CzQAIAs4CzgAFAs8CzwAIAtkC2QAEAuUC5QAKAucC5wALAukC6QAYAusC6wAYAu0C7QAYAu8C7wAYAvIC8gAEAvQC9AAEAvYC9wAEAvgC+AABAvkC+QADAvoC+gABAvsC+wADAvwC/AABAv0C/QADAv8C/wAVAwEDAQAVAwMDAwAVAw4DDgAOAxADEAAOAxIDEgAOAxQDFAAKAxYDFgAKAxgDGAAKAxoDGgAKAxwDHAAKAx4DHgAKAyADIAAbAyIDIgAMAyMDIwAJAyQDJAAMAyUDJQARAyYDJgAQAycDJwARAygDKAAQAykDKQARAyoDKgAQAy8DMAANAzEDMQAjAzIDOAAPA0MDRwANA00DTwAPA1QDVAANA2UDZQAeA2YDaQAkA20DbwANA3gDeAAjA4YDhgACA4cDhwAFA4oDigABA4sDiwAMA44DjgACA48DjwAcA5ADkAAFA5EDkQARA5QDlAALA5cDlwABA5gDmAAWA5kDmQAOA5oDmgAMA5sDmwASA50DnQAMA6ADoAAEA6QDpAADA6YDpgAJA6oDqgADA60DrQAFA64DrgAiA7IDsgAKA7MDtAALA7UDtQAlA7YDtgACA7cDtwAcA7gDuAAiA7kDuQAFA70DvQABA78DvwAWA8ADwAATA8EDwQAOA8IDwgASA8MDwwAGA8QDxAAIA8YDxgADA8cDxwAHA8gDyAAXA8kDyQAJA8oDygAUA8sDywAIA8wDzAAaA9ID0gAJA9MD0wAbA9UD1QAbA9cD1wAbA9kD2QAMA9oD2gAJA9sD3AAZA98D3wAZA+ED4QAEA+ID4gACA+MD4wAGA+QD5AAFA+YD5gAIA+oD6gAdA+sD6wAJA/AD8AATA/ED8QAXA/ID8gAMA/MD8wAJA/UD9QASA/YD9gAUA/gD+AACA/kD+QAGA/oD+gACA/sD+wAGA/4D/gAFA/8D/wAIBAEEAgAIBAMEAwASBAQEBAAUBAsECwABBAwEDAADBBAEEAADBBIEEgAHBBMEEwAlBBQEFAAJBBUEFQAlBBYEFgAJBBcEFwAlBBgEGAAJBB4EHgACBB8EHwAGBCAEIAACBCEEIQAGBCIEIgACBCMEIwAGBCQEJAACBCUEJQAGBCYEJgACBCcEJwAGBCgEKAACBCkEKQAGBCoEKgACBCsEKwAGBCwELAACBC0ELQAGBC4ELgACBC8ELwAGBDAEMAACBDEEMQAGBDIEMgACBDMEMwAGBDQENAACBDUENQAGBDYENgAFBDcENwAIBDgEOAAFBDkEOQAIBDoEOgAFBDsEOwAIBDwEPAAFBD0EPQAIBD4EPgAFBD8EPwAIBEAEQAAFBEEEQQAIBEIEQgAFBEMEQwAIBEQERAAFBEUERQAIBEoESgABBEsESwADBEwETAABBE0ETQADBE4ETgABBE8ETwADBFAEUAABBFEEUQADBFIEUgABBFMEUwADBFQEVAABBFUEVQADBFYEVgABBFcEVwADBF8EXwADBGIEYgAKBGQEZAAKBHAEcAAMBHEEcQAJBHIEcgAMBHMEcwAJBHQEdAAMBHUEdQAJBHcEdwAOBHsEewAiBHwEfAAaBH8EfwAEBIEEgQAgBIIEggAiBIQEhAALBIYEhgAMBJgEmAAEBJkEmQACBJoEmgAGBJsEmwAFBJ8EnwABBKAEoAADBKIEogAVBKYEpgAcBKcEpwAHBKgEqAABBKoEqgABBK0ErQAEBK4ErgALBLAEsAALBLIEsgAYBLUEtQAEBLcEtwAEBLgEuAABBLkEuQAWBLoEugAHBLwEvAAVBL8EvwAOBMEEwQAKBMIEwgAdBMMEwwAJBMQExAAdBMUExQAJBMYExgAbBMgEyAARBMkEyQAQBMoEygABBMsEywAPBM8EzwANBNIE0gAPBNgE2AAeBN0E3QAjBOgE6AAeBOoE6gAPBPEE8QANBPUE9QAjAAEABgT1ABQAAAAAAAAAAAAUAAAAAAAAAAAAGgAfABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAAAAAAAAgAAAAAAIwAAAAAAAAAAAAIAAAACAAAAEAALAAoAHQAWABEADAATAAAAAAAAAAAAAAAAAAcAAAABAAEAAQAAAAEAAAAAAAAAAAAAAAMAAwAEAAMAAQAAAA4AAAAFAAkAAAAVAAkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAQAAAAAAAAACAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgACAAYAAAAAAAAAAAAAAAAAAQAAAAkAAAAAAAAAAwAAAAAAAAAAAAAAAAABAAEAAAAFAAAAAAAAAAAAAAAAAAsAAgAZAAAACwAAAAAAAAARAAAAAAAZACIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAAAMAAwAbAAMAAwADAAAAAQADACEAAwADAAAAAAADAAAAAwAAAAAAAQAbAAMAAAAAAAIAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAIABAAdAAkAAgAAAAIAAQACAAAAAgABAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAEQAVAAAAAwAAAAAACwAAAAAAAwAAAAMAAAAAAAIAAQARABUACwAAACAAIQAAAAAAAAAAAAAAAAAAABkAGwAAAAMAAAADAAAAAwAAAAAAAAAAAAMAEQAVAAAAAQABAAAAAAAAAAAAGQAAAAAAAAACAAEAAAAAAAAAGQAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAAAAFAAUABoAFAAUABQAGgAAAAAAAAAaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABwAJAAAABIAGAAeAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAANAAgADQAAAAAAAAAAAAAAAAAYAAgAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAABgACAAXABwAGAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAAACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAYABgAGAAYABgAGAAYAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIACgAKAAoACgAMAAcABwAHAAcABwAHAAcAAQABAAEAAQABAAAAAAAAAAAAAwAEAAQABAAEAAQABQAFAAUABQAJAAkABgAHAAYABwAGAAcAAgABAAIAAQACAAEAAgABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAIAAQACAAEAAgABAAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAMAAgAEAAIABAACAAQAAAAAAAAAAAAAAAAAEAAOABAADgAQAA4AEAAOABAADgALAAAACwAAAAsAAAAKAAUACgAFAAoABQAKAAUACgAFAAoABQAWAAAADAAJAAwAEwAPABMADwATAA8AAAAAAAIAAAAAAAAAAAANAA0ADQANAA0ADQANAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIABIAEgASABIAFwANAA0ADQAIAAgACAAIAAAAAAAAAAAAAAAAAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgAAAAAAAAAHgAeAB4AHgAAABgAAAASABIAEgASABIAEgAkABcAFwAAAAAAAAAGAAAAAAAAAAIADAAAAAAABgAAAAAAEwAAAAAAAAAAAAAAAgAAAAAADAARAAAADAABAAAAAwAAAAUAAAAEAAAACQAAAAAABQAEAAUAAAAAAAAAAAAAAAAAIwAAAAAAIgAGAAAAAAAAAAAAAAAAAAIAAAAAAAIACwARAAcAAQADAAQAAwABAAkAFQABAAMADgAAAAAAAAADAAkAFgAAABYAAAAWAAAADAAJABQAFAAAAAAAFAAAAAMABgAHAAAAAAABAAMAAAAAAB0ACQABAAIAAAAAAAIAAQAMAAkAAAARABUAAAAGAAcABgAHAAAAAAAAAAEAAAABAAEAEQAVAAAAAAAAAAMAAAADAAIABAACAAEAAgAEAAAAAAAiAAkAIgAJACIACQAgACEAAAADAAEABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAEAAgABAAIAAQACAAQAAgABAAoABQAKAAUAAAAFAAAABQAAAAUAAAAFAAAABQAMAAkADAAJAAwACQAAAAsAAAAgACEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABgAHAAAAAQAAAAAAAgAEAAAAAAAAAAUAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwACAAAAAAAAAAAAEAAOAAsAAAAKAB0ACQAdAAkAFgAAABMADwAAAA0AAAAAAAAACAAXAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcAAAAFwAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAIAAAAAAAIABgAHAAAAAAACAAXAAAAAQAAAAoBYgKSAARERkxUABpjeXJsABpncmVrABpsYXRuAEgABAAAAAD//wASAAAAAQACAAMABAAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAC4AB0FaRSAA5ENSVCAA5EZSQSAAWk1PTCAAtk5BViAAiFJPTSAAtlRSSyAA5AAA//8AEwAAAAEAAgADAAQABwAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACQAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAKAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wATAAAAAQACAAMABAAFAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAGGMyc2MAkmNjbXAAmGRsaWcAoGRub20ApmZyYWMArGxpZ2EAtmxpZ2EAvGxpZ2EAyGxudW0A0GxvY2wA1mxvY2wA3GxvY2wA4m51bXIA6G9udW0A7nBudW0A9HNtY3AA+nNzMDEBAHNzMDIBBnNzMDMBDHNzMDQBEnNzMDUBGHNzMDYBHnNzMDcBJHRudW0BKgAAAAEAAAAAAAIAAgAEAAAAAQAKAAAAAQAYAAAAAwAWABcAGQAAAAEACQAAAAQACAAJAAgACQAAAAIACAAJAAAAAQAVAAAAAQAHAAAAAQAFAAAAAQAGAAAAAQAZAAAAAQASAAAAAQATAAAAAQABAAAAAQALAAAAAQAMAAAAAQANAAAAAQAOAAAAAQAPAAAAAQAQAAAAAQARAAAAAQAUABoANgQwB+4IoAjKD24PhA+uD8IP5hAQEEwQYBB0EIgQmhC0EPYRFBFmEawSDhJsEoASsBLSAAEAAAABAAgAAgH6APoB5wJxAdEB0AHPAc4BzQHMAcsBygHJAcgCMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAegB6QJzAnUCdAJ2AnICdwJSAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+AgACAQT+AgICAwIEAgUCBgIHAggCCQIKAgsCOwINAg4CDwIQBPgCEQITAhQCFQIWAhcCGAIZAhsCHAIeAh0DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjBP8DZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UFAgN2A3cDeQN4A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFBQAFAQTLBMwEzQTOBM8E0ATRBNIE0wTUBNUE1gTXBNgE2QTaBNsE3ATdBN4E3wTgBOEE4gTjBOQE5QTmBOcB/wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gUDBQQFBQUGBPcE+QT6BPwCGgT9BPsCDAISBQsFDAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQABAAAAAQAIAAIB3ADrAnECMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAmQCcwMwAnUCdAMvAeMCcgJ3AlIE0gTTAeoB6wTUBNUE1gHsBNcB7QHuAe8E3AHwAfAE3QTeAfEB8gHzAfoE6wTsAfsB/AH9Af4B/wIABO8E8ATyBPUE/gICAgMCBAIFAgYCBwIIAgkCCgILAfQB9QH2AfcB+AH5AjsCDQIOAg8CEAT4AhECEwIUAhUCFwIZAnYDMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTAOCA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IE/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4MDhAOFBQAFAQTLBMwEzQTOBNgE2wTZBNoE3wTgBOEEzwTQBNEE6gTtBO4E8QTzBPQCAQT2BOIE4wTkBOUE5gTnBOgE6QUDBQQFBQUGBPcE+QT6AhgE/AIaBP0E+wIWAgwCEgULBQwAAQDrAAoARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAIUAhgCHAIkAigCLAI0AkACSAJQAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8BAAEBAQIBAwEEAQUBBgEHATABNAE2ATgBOgE8AUIBRAFGAUoBTQFaAnwCfgKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArcCuQK7Ar0CvwLBAsMCxQLHAskCywLNAs8C0QLTAtUC1wLZAtsC3QLfAuEC5ALmAugC6gLsAu4C8ALyAvQC9gL5AvsC/QL/AwEDAwMFAwcDCQMLAw0DDwMRAxMDFQMXAxkDGwMdAx8DIQMjAyYDKAMqAywDLgOeA58DoAOhA6MDpAOlA6YDpwOoA6kDqgOrA6wDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPUA9YD2APaA+8D8QPzBAEECAQOBBQEfgR/BIMEhwUIBQoABgAAAAYAEgAqAEIAWgByAIoAAwAAAAEAEgABAJAAAQAAAAMAAQABAE0AAwAAAAEAEgABAHgAAQAAAAMAAQABAE4AAwAAAAEAEgABAGAAAQAAAAMAAQABAuEAAwAAAAEAEgABAEgAAQAAAAMAAQABA84AAwAAAAEAEgABADAAAQAAAAMAAQABA9AAAwAAAAEAEgABABgAAQAAAAMAAQABBEkAAgACAKgArAAAASQBJwAFAAEAAAABAAgAAgASAAYCYQJfAmICYwJgBQ0AAQAGAE0ATgLhA84D0ARJAAQAAAABAAgAAQYyADYAcgCkAK4AuADKAPwBDgEYAUoBZAF+AZABugH2AgACIgI8Ak4CigKcArYC4ALyAyQDLgM4A0oDfAOGA5ADmgO0A84D4AQKBDwERgRoBIIElATGBNgE8gUcBS4FOAVCBUwFVgWABaoF1AX+BigABgAOABQAGgAgACYALAKAAAIAqQQeAAIArQJ/AAIAqAQgAAIAqwKCAAIAqgSZAAIArAABAAQEpgACAK0AAQAEArwAAgCpAAIABgAMBKoAAgG6BKgAAgCtAAYADgAUABoAIAAmACwCiAACAKkENgACAK0ChwACAKgEOAACAKsEOgACAKoEmwACAKwAAgAGAAwElQACAKkC1gACAboAAQAEBKwAAgCtAAYADgAUABoAIAAmACwCjAACAKkESAACAK0CiwACAKgERgACAKsC2gACAKoEnQACAKwAAwAIAA4AFASuAAIAqQLnAAIBugSwAAIArQADAAgADgAUAukAAgCpAusAAgG6BLIAAgCtAAIABgAMA+AAAgCpBLQAAgCtAAUADAASABgAHgAkAvEAAgCpAvMAAgG6BLYAAgCtBJcAAgCoAo8AAgCqAAcAEAAYAB4AJAAqADAANgS4AAMAqgCpApEAAgCpBEoAAgCtApAAAgCoBEwAAgCrApMAAgCqBJ8AAgCsAAEABAS5AAIAqQAEAAoAEAAWABwC/gACAKkDAAACAboEuwACAK0EoQACAKwAAwAIAA4AFAMEAAIAqQMKAAIBugS9AAIArQACAAYADAMOAAIBugS/AAIArQAHABAAGAAeACQAKgAwADYEwQADAKoAqQKWAAIAqQRiAAIArQKVAAIAqARkAAIAqwMUAAIAqgSjAAIArAACAAYADATEAAIArQTCAAIAqgADAAgADgAUA9UAAgCpBMYAAgCtA9MAAgCoAAUADAASABgAHgAkApkAAgCpBHAAAgCtA9kAAgCoBHIAAgCrBHQAAgCqAAIABgAMAyUAAgCpBMgAAgCtAAYADgAUABoAIAAmACwCmwACAKkEHwACAK0CmgACAKgEIQACAKsCnQACAKoEmgACAKwAAQAEBKcAAgCtAAEABAK9AAIAqQACAAYADASrAAIBugSpAAIArQAGAA4AFAAaACAAJgAsAqMAAgCpBDcAAgCtAqIAAgCoBDkAAgCrBDsAAgCqBJwAAgCsAAEABASWAAIAqQABAAQErQACAK0AAQAEBEkAAgCtAAMACAAOABQErwACAKkC6AACAboEsQACAK0AAwAIAA4AFALqAAIAqQLsAAIBugSzAAIArQACAAYADAPhAAIAqQS1AAIArQAFAAwAEgAYAB4AJALyAAIAqQL0AAIBugS3AAIArQSYAAIAqAKqAAIAqgAGAA4AFAAaACAAJgAsAqwAAgCpBEsAAgCtAqsAAgCoBE0AAgCrAq4AAgCqBKAAAgCsAAEABAS6AAIAqQAEAAoAEAAWABwC/wACAKkDAQACAboEvAACAK0EogACAKwAAwAIAA4AFAMFAAIAqQMLAAIBugS+AAIArQACAAYADAMPAAIBugTAAAIArQAGAA4AFAAaACAAJgAsArEAAgCpBGMAAgCtArAAAgCoBGUAAgCrAxUAAgCqBKQAAgCsAAIABgAMBMUAAgCtBMMAAgCqAAMACAAOABQD1gACAKkExwACAK0D1AACAKgABQAMABIAGAAeACQCtAACAKkEcQACAK0D2gACAKgEcwACAKsEdQACAKoAAgAGAAwDJgACAKkEyQACAK0AAQAEAysAAgCpAAEABAMtAAIAqQABAAQDLAACAKkAAQAEAy4AAgCpAAUADAASABgAHgAkAqcAAgCpAqYAAgCoBEcAAgCrAtsAAgCqBJ4AAgCsAAUADAASABgAHgAkBFgAAgCpBGAAAgCtBFoAAgCoBFwAAgCrBF4AAgCqAAUADAASABgAHgAkBFkAAgCpBGEAAgCtBFsAAgCoBF0AAgCrBF8AAgCqAAUADAASABgAHgAkBGYAAgCpBG4AAgCtBGgAAgCoBGoAAgCrBGwAAgCqAAUADAASABgAHgAkBGcAAgCpBG8AAgCtBGkAAgCoBGsAAgCrBG0AAgCqAAEABASlAAIAqQACABEAJQApAAAAKwAtAAUALwA0AAgANgA7AA4APQA+ABQARQBJABYASwBNABsATwBUAB4AVgBbACQAXQBeACoAgQCBACwAgwCDAC0AhgCGAC4AiQCJAC8AjQCNADAAmACbADEA0ADQADUAAQAAAAEACAABAAYAAgABAAIDCAMJAAEAAAABAAgAAgASAAYFBwUIBQkFCgULBQwAAQAGAroCuwLMAs0DTwNYAAEAAAABAAgAAQAGAAEAAQABAXsABAAAAAEACAABAEAAAQAIAAIABgAOAb4AAwBKAE0BvAACAE0ABAAAAAEACAABABwAAQAIAAIABgAOAb8AAwBKAFABvQACAFAAAQABAEoABAAAAAEACAABACoAAwAMABYAIAABAAQBuwACAEoAAQAEAcEAAgBYAAEABAHAAAIAWAABAAMASgBXAJUAAQAAAAEACAABAAYB3gABAAEASwABAAAAAQAIAAEABgFvAAEAAQC7AAEAAAABAAgAAQAGAfUAAQABADYAAQAAAAEACAACABwAAgIsAi0AAQAAAAEACAACAAoAAgIuAi8AAQACAC8ATwABAAAAAQAIAAIAHgAMAkUCRwJGAkgCSQJnAmgCaQJqAmsCbAJtAAEADAAnACgAKwAzADUARgBHAEgASwBTAFQAVQABAAAAAQAIAAIADAADAm4CbwJvAAEAAwBJAEsCagABAAAAAQAIAAIALgAUAloCXgJYAlUCVwJWAlsCWQJdAlwCTwJKAksCTAJNAk4AGgAcAlMCZQACAAQAFAAdAAACZgJmAAoCcAJwAAsEjQSUAAwAAQAAAAEACAACAC4AFASUAnAEjQSOBI8EkASRAmYEkgSTAkwCTgJNAksCTwJlABoCUwAcAkoAAgACABQAHQAAAlUCXgAKAAEAAAABAAgAAgAuABQCWwJdAl4CWAJVAlcCVgJZAlwCWgAbABUAFgAXABgAGQAaABwAHQAUAAEAFAAaABwCSgJLAkwCTQJOAk8CUwJlAmYCcASNBI4EjwSQBJEEkgSTBJQAAQAAAAEACAACAC4AFASRBJICcASNBI4EjwSQAmYEkwAXABkAGAAWABsAFAAaAB0AHAAVBJQAAgAGABoAGgAAABwAHAABAkoCTwACAlMCUwAIAlUCXgAJAmUCZQATAAEAAAABAAgAAQAGAYEAAQABABMABgAAAAEACAADAAEAEgABAGwAAAABAAAAGAACAAMBlAGUAAABxQHHAAECHwIlAAQAAQAAAAEACAACADwACgHHAcYBxQIfAiACIQIiAiMCJAIlAAEAAAABAAgAAgAaAAoCPgB6AHMAdAI/AkACQQJCAkMCRAACAAEAFAAdAAA=\",\n  \"Roboto-Regular.ttf\": \"AAEAAAASAQAABAAgR0RFRrRCsIIAAijcAAACYkdQT1P/GhLXAAIrQAAAXcxHU1VC64LkWQACiQwAABWQT1MvMpeCsagAAAGoAAAAYGNtYXABd1geAAAbWAAAEkZjdnQgK6gHnQAAMKgAAABUZnBnbXf4YKsAAC2gAAABvGdhc3AACAATAAIo0AAAAAxnbHlmJroL9AAAOxwAAelsaGRteFV6YHoAABZAAAAFGGhlYWT8atJ6AAABLAAAADZoaGVhCroKrgAAAWQAAAAkaG10eK5yj5cAAAIIAAAUOGxvY2GAd/+7AAAw/AAACh5tYXhwBz4DCQAAAYgAAAAgbmFtZeakFYkAAiSIAAAEJnBvc3T/bQBkAAIosAAAACBwcmVwomb6yQAAL1wAAAFJAAEAAAACIxKKf3BIXw889QAZCAAAAAAAxPARLgAAAADVAVL0+hv91QkwCHMAAAAJAAIAAAAAAAAAAQAAB2z+DAAACUn6G/5KCTAAAQAAAAAAAAAAAAAAAAAABQ4AAQAABQ4AjwAWAFQABQABAAAAAAAOAAACAAIkAAYAAQADBIYBkAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAEAAAP/9BgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwOMAGQAAAAAAAAAAAH7AAAB+wAAAg8AoAKPAIgE7QB3BH4AbgXcAGkE+QBlAWUAZwK8AIUCyAAmA3IAHASJAE4BkgAdAjUAJQIbAJADTAASBH4AcwR+AKoEfgBdBH4AXgR+ADUEfgCaBH4AhAR+AE0EfgBwBH4AZAHwAIYBsQApBBEASARkAJgELgCGA8cASwcvAGoFOAAcBPsAqQU1AHcFPwCpBIwAqQRsAKkFcwB6BbQAqQItALcEagA1BQQAqQROAKkG/ACpBbQAqQWAAHYFDACpBYAAbQTtAKgEvwBQBMYAMQUwAIwFFwAcBxkAPQUEADkEzgAPBMoAVgIfAJIDSAAoAh8ACQNYAEADnAAEAnkAOQRaAG0EfQCMBDAAXASDAF8EPQBdAscAPAR9AGAEaACMAfEAjQHp/78EDgCNAfEAnAcDAIsEagCMBJAAWwR9AIwEjABfArUAjAQgAF8CnQAJBGkAiAPgACEGAwArA/cAKQPJABYD9wBYArUAQAHzAK8CtQATBXEAgwHzAIsEYABpBKYAWwW0AGkEMwAPAesAkwToAFoDWABlBkkAWwOTAJMDwQBmBG4AfwZKAFoDqgCOAv0AggRGAGEC7wBCAu8APgKCAHsEiACaA+kAQwIWAJMB+wB0Au8AegOjAHoDwABmBdwAVQY1AFAGOQBvA8kARAd6//IERABZBYAAdgS6AKYEwgCLBsEATgSwAH4EkQBHBIgAWwScAJUExwBfBZoAHQH6AJsEcwCaBE8AIgIpACIFiwCiBIgAkQehAGgHRABhAfwAoAWHAF0Cuf/kBX4AZQSSAFsFkACMBPMAiAID/7QENwBiA8QAqQONAI0DqwCOA2oAgQHxAI0CrQB5AioAMgPGAHsC/ABeAloAfgAA/KcAAP1vAAD8iwAA/V4AAPwnAAD9OAINALcECwBxAhcAkwRzALEFpAAfBXEAZwU+ADIEkQB4BbUAsgSRAEUFuwBNBYkAWgVSAHEEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI4AegKXAMMEbgAlA+wAZQTEACkEiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegShAHkEQv/aBkgASgX/ACoFZAB7CJEAMQikALEGggA+BbQAsAULAKIGBAAyB0MAGwS/AFAFtACxBakALwUHAE0GLABTBdkArwV6AJYHhwCwB8AAsAYSABAG6wCyBQUAowVkAJMHJwC3BRgAWQRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAALAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp4AkQT3AB4GNgCdBFgAnQRNAGQGhwCdBGQALwRo/+gETQBnBskAJwbkAJwEif/9BJ4AnAcIAJwGKwCBBFb/3AcrALcF+ACZBNIAKARGAA8HCwDJBgsAvAbRAJMF4QCWCQQAtgfRAJsEIwBQA9sATAVxAGcEiwBbBQoAFgQDAC4FcQBnBIgAWwcBAJwGJAB+BwgAnAYrAIEFMgB1BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6GwAA+iwGCQCxBO0AnARW/9wFGwCoBIkAjARjAKIDkACRBNsAsQQFAJEHogAbBmEAFQWaALIEuACcBQkAowR+AJoGjABEBYMAPgX/AKkE2QCcB88AqAW0AJEIMQCwBvQAkQXuAHEE0wBtBRgAOQQqACkHLAA0BVwAHwW8AJYElgBnBW8AlgRqAIMFbwCJBi8APwS9/94FCQCjBFoAmgX+AC8E7wAsBbIAsQSIAJEGEgCpBOwAnAdPAKkGPgCdBYcAXQSoAGgEqABpBLcAOgOrADsFLgA5BEAAKQT2AFcGlABZBuQAZAZWADYFKwAxBEkAUgQHAHkHwQBEBnUAPwf7AKkGoQCQBPYAdgQdAGUFrQAjBSAARgVkAJYGAgAvBPIALAMgAG8EFAAACCkAAAQUAAAIKQAAArkAAAIKAAABXAAABH8AAAIwAAABogAAAQAAAADRAAAAAAAAAjQAJQI0ACUFQACiBj8AkAOlAA0BmQBgAZkAMAGXACQBmQBPAtQAaALbADwCwQAkBGkARgSPAFcCsgCKA8QAlAVaAJQBfgBSB6oARAJmAGwCZgBZA6MAOwLvADYDYAB6BKYAWwZVAB8GkACnCHYAqAXrAB8GKwCMBH4AXwXaAB8EIgAqBHQAIAVIAF0FTwAfBecAegPOAGgIOgCiBQEAZwUXAJgGJgBUBtcAZAbPAGMGagBZBI8AagWOAKkErwBFBJIAqATFAD8IOgBiAgz/sASCAGUEZACYBBEAPgQvAIUECAArAkwAtQKPAG4CAwBcBPMAPARuAB8EiwA8BtQAPAbUADwE7gA8BpsAXwAAAAAIMwBbCDUAXALvAEIC7wB6Au8AUAQPAFUEDwBgBA8AQgQOAHIEDwCABA8AMAQPAE4EDwBOBA8AmAQPAGMEIwBHBCsADQRUACYGFQAxBGcAFAR8AHQEJgAoBCAAQwRKAIoEuwBZBFwAigS7AGAE4wCKBgIAigO0AIoEVACKA88AKwHoAJcE4wCKBKwAYwPLAIoEIABDBDMAMAOhAA0DrwCKBGcAFAS7AGAEZwAUA4kAPgTOAIoD7wA/BWcAYAUXAGAE8gB1BXIAJgR8AGAHQQAnB08AigV0ACgEzQCKBFkAigUkAC4GCwAfBD8ARwTsAIoETgCLBMEAJwQfACIFKACKBGoAPQZRAIoGrACKBR0ACAXxAIoETgCKBHsASwZ2AIoEhwBQBBEACwZHAB8EeQCLBQkAiwU3ACMFwgBgBF8ADQSoACYGYQAmBGoAPQRqAIoFwwACBMoAXgQ/AEcEuwBgBDMAMAPjAEIIIgCKBKsAKALvAD4C7wA2Au8AWwLvAFYC7wA6Au8ATwLvAEkDlgCPArUAngPmAIoEOgAeBMMAZAVMALEFJACyBBMAkgU9ALIEDwCSBIAAigR8AGAEUACKBIUAEwH9AJ8DpACBAAD8pAPvAG4D8/9eBA4AaQP0AGkDrwCKA58AgQOeAIEC7wBQAu8ANgLvAFsC7wBWAu8AOgLvAE8C7wBJBYEAfgWuAH4FkwCyBeAAfgXjAH4D1QCgBIIAgwRYAA8EzwA+BGsAZQQuAEoDpACDAZEAZwakAGAEuQCCAfz/tgR/ADsEfwBzBH8AIwR/AHcEfwB2BH8ANwR/AH4EfwBfBH8AcAR/APQCBv+0AgT/tAH7AJsB+//6AfsAmwRQAIoFAAB4BCAAOwR9AIwEMgBcBJMAWwSMAFsEngBaBI0AjAScAFsEPQBdBH0AYAN5AFcE1gBnA7QAAAY5AAkD+ACKBLsAYATjADAE4wCKAfsAAAI1ACUFXQAHBV0ABwSG/+IExgAxAp3/9AU4ABwFOAAcBTgAHAU4ABwFOAAcBTgAHAU4ABwFNQB3BIwAqQSMAKkEjACpBIwAqQIt/+ACLQCwAi3/6QIt/9UFtACpBYAAdgWAAHYFgAB2BYAAdgWAAHYFMACMBTAAjAUwAIwFMACMBM4ADwRaAG0EWgBtBFoAbQRaAG0EWgBtBFoAbQRaAG0EMABcBD0AXQQ9AF0EPQBdBD0AXQH6/8YB+gCWAfr/zwH6/7sEagCMBJAAWwSQAFsEkABbBJAAWwSQAFsEaQCIBGkAiARpAIgEaQCIA8kAFgPJABYFOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FNQB3BDAAXAU1AHcEMABcBTUAdwQwAFwFNQB3BDAAXAU/AKkFGQBfBIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQVzAHoEfQBgBXMAegR9AGAFcwB6BH0AYAVzAHoEfQBgBbQAqQRoAIwCLf+3Afr/nQIt/8wB+v+yAi3/7AH6/9ICLQAYAfH/+wItAKkGlwC3A9oAjQRqADUCA/+0BQQAqQQOAI0ETgChAfEAkwROAKkB8QBXBE4AqQKHAJwETgCpAs0AnAW0AKkEagCMBbQAqQRqAIwFtACpBGoAjARq/7wFgAB2BJAAWwWAAHYEkABbBYAAdgSQAFsE7QCoArUAjATtAKgCtQBTBO0AqAK1AGMEvwBQBCAAXwS/AFAEIABfBL8AUAQgAF8EvwBQBCAAXwS/AFAEIABfBMYAMQKdAAkExgAxAp0ACQTGADECxQAJBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBxkAPQYDACsEzgAPA8kAFgTOAA8EygBWA/cAWATKAFYD9wBYBMoAVgP3AFgHev/yBsEATgWAAHYEiABbBID/vgSA/74EJgAoBIUAEwSFABMEhQATBIUAEwSFABMEhQATBIUAEwR8AGAD5gCKA+YAigPmAIoD5gCKAej/vgHoAI4B6P/HAej/swTjAIoEuwBgBLsAYAS7AGAEuwBgBLsAYAR8AHQEfAB0BHwAdAR8AHQEKwANBIUAEwSFABMEhQATBHwAYAR8AGAEfABgBHwAYASAAIoD5gCKA+YAigPmAIoD5gCKA+YAigSsAGMErABjBKwAYwSsAGME4wCKAej/lQHo/6oB6P/KAegABgHoAIgDzwArBFQAigO0AIIDtACKA7QAigO0AIoE4wCKBOMAigTjAIoEuwBgBLsAYAS7AGAESgCKBEoAigRKAIoEIABDBCAAQwQgAEMEIABDBCYAKAQmACgEJgAoBHwAdAR8AHQEfAB0BHwAdAR8AHQEfAB0BhUAMQQrAA0EKwANBCMARwQjAEcEIwBHBTgAHASM/ykFtP83Ai3/PQWU/+YFMv8UBWb/6QKX/5sFOAAcBPsAqQSMAKkEygBWBbQAqQItALcFBACpBvwAqQW0AKkFgAB2BQwAqQTGADEEzgAPBQQAOQIt/9UEzgAPBIUAZARQAGMEiACRApcAwwRdAI8EcwCaBJAAWwSIAJoD4AAhA/cAKQKX/+UEXQCPBJAAWwRdAI8GlwB6BIwAqQRzALEEvwBQAi0AtwIt/9UEagA1BSQAsgUEAKkFBwBNBTgAHAT7AKkEcwCxBIwAqQW0ALEG/ACpBbQAqQWAAHYFtQCyBQwAqQU1AHcExgAxBQQAOQRaAG0EPQBdBJ4AnASQAFsEfQCMBDAAXAPJABYD9wApBD0AXQNbAJoEIABfAfEAjQH6/7sB6f+/BFIAnAPJABYHGQA9BgMAKwcZAD0GAwArBxkAPQYDACsEzgAPA8kAFgFlAGcCjwCIBB4AoAID/7QBmQAwBvwAqQcDAIsFOAAcBFoAbQSMAKkFtACxBD0AXQSeAJwFiQBaBZoAXwUKABYEA//7CFkAWwlJAHYEvwBQBBAAWAU1AHcEMABcBM4ADwQCAC4CLQC3B0MAGwYgABUCLQC3BTgAHARaAG0FOAAcBFoAbQd6//IGwQBOBIwAqQQ9AF0FhwBdBDcAYgQ3AGIHQwAbBiAAFQS/AFAEEABYBbQAsQSeAJwFtACxBJ4AnAWAAHYEkABbBXEAZwSLAFsFcQBnBIsAWwVkAJMETQBkBQcATQPJABYFBwBNA8kAFgUHAE0DyQAWBXoAlgRZAGcG6wCyBjYAnQSDAF8FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFr/ygU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQSM//AEPf+6BIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdAi0AtwH6AJsCLQCjAfEAhQWAAHYEkABbBYAAdgSQAFsFgAB2BJAAWwWAAEcEkP/EBYAAdgSQAFsFgAB2BJAAWwWAAHYEkABbBX4AZQSSAFsFfgBlBJIAWwV+AGUEkgBbBX4AZQSSAFsFfgBlBJIAWwUwAIwEaQCIBTAAjARpAIgFkACMBPMAiAWQAIwE8wCIBZAAjATzAIgFkACMBPMAiAWQAIwE8wCIBM4ADwPJABYEzgAPA8kAFgTOAA8DyQAWBKEAXwTGADED2AAoBXoAlgRZAGcEcwCxA1sAmgYvAD8Evf/eBGgAjAUF/9QFBf/UBHMAAwNb//wFOP/3BCf/vwTOAA8EAgAuBQQAOQP3ACkEUABjBGwAEgY/AJAEfgBdBH4AXgR+ADUEfgCaBJIAmASmAIQEkgBkBKYAhwVzAHoEfQBgBbQAqQRqAIwFOAAcBFoAOQSMAF8EPQApAi3/CgH6/vAFgAB2BJAAMwTtAFUCtf+LBTAAjARpACsEpv7WBPsAqQR9AIwFPwCpBIMAXwU/AKkEgwBfBbQAqQRoAIwFBACpBA4AjQUEAKkEDgCNBE4AqQHxAIYG/ACpBwMAiwW0AKkEagCMBYAAdgUMAKkEfQCMBO0AqAK1AIIEvwBQBCAAXwTGADECnQAJBTAAjAUXABwD4AAhBRcAHAPgACEHGQA9BgMAKwTKAFYD9wBYBcb+MgSFABMEIv9jBR//gAIk/4QExf/VBGf/GwT8/+4EhQATBFAAigPmAIoEIwBHBOMAigHoAJcEVACKBgIAigTjAIoEuwBgBFwAigQmACgEKwANBFQAJgHo/7MEKwANA+YAigOvAIoEIABDAegAlwHo/7MDzwArBFQAigQfACIEhQATBFAAigOvAIoD5gCKBOwAigYCAIoE4wCKBLsAYATOAIoEXACKBHwAYAQmACgEVAAmBD8ARwTjAIoEfABgBCsADQXDAAIE7ACKBB8AIgVnAGAFtwCXBjkACQS7AGAEIABDBhUAMQYVADEGFQAxBCsADQU4ABwEWgBtBIwAqQQ9AF0EhQATA+YAigH6AIUAAAABAAAFEAkKBAAAAgICAwYFBwYCAwMEBQICAgQFBQUFBQUFBQUFAgIFBQUECAYGBgYFBQYGAgUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBgQHBAQFBwQDBQMDAwUEAgIDBAQHBwcECAUGBQUIBQUFBQUGAgUFAgYFCQgCBgMGBQYGAgUEBAQEAgMCBAMDAAAAAAAAAgUCBQYGBgUGBQYGBgUFBQUFBQUFAwUEBQUFBQUFBgYHBQUHBwYKCgcGBgcIBQYGBgcHBggJBwgGBggGBQUEBQcFBQUFBwUFBAcFBQcHBgcFBQcFBQUICAUFCAcFCAcFBQgHCAcKCQUEBgUGBQYFCAcIBwYFBgAAAAAAAAcGBQYFBQQFBQkHBgUGBQcGBwUJBgkIBwUGBQgGBgUGBQYHBQYFBwYGBQcGCAcGBQUFBAYFBgcIBwYFBQkHCQcGBQYGBgcGBAUJBQkDAgIFAgIBAQACAgYHBAICAgIDAwMFBQMEBgIJAwMEAwQFBwcKBwcFBwUFBgYHBAkGBgcICAcFBgUFBQkCBQUFBQUDAwIGBQUICAYHAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQYHBAUEAgYFBAUFBAQFBQUEBQQGBgYGBQgIBgUFBgcFBgUFBQYFBwgGBwUFBwUFBwUGBgYFBQcFBQYFBQUFBAkFAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABAQFBAQEBAMDAwMDAwMGBgYHBwQFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQYFBQUFBQUFBQUFBAUEBwQFBgYCAgYGBQUDBgYGBgYGBgYFBQUFAgICAgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQICAgICAgICAgcEBQIGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUEBQQFBAgIBgUFBQUFBQUFBQUFBQQEBAQCAgICBgUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQYCAgICAgQFBAQEBAYGBgUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYCBgYGAwYGBQUGAgYIBgYGBQUGAgUFBQUDBQUFBQQEAwUFBQcFBQUCAgUGBgYGBgUFBggGBgYGBgUGBQUFBQUFBAQFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYGBgUJCgUFBgUFBQIIBwIGBQYFCAgFBQYFBQgHBQUGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUCAgICBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYGBgYGBgYGBgYFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQUGBAUFBwUFBQUFBQUFBgUGBQYFBQUCAgYFBgMGBQUGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwUFBQMGBgQGBAgHBQQHBQUGAgUFBgUFBAUGAgUHBgUFBQUFAgUEBAUCAgQFBQUFBAQGBwYFBQUFBQUFBgUFBgYFBgYHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJIAsgESAVIB4gIiAnIDAgMyA6IDwgRCB0IH8gpCCqIKwgsSC6IL0hBSETIRYhIiEmIS4hXiICIgYiDyISIhoiHiIrIkgiYCJlJcruAvbD+wT+///9//8AAAAAAAIADQAgAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExAVQBYAFoAX8BjwGSAaABrwHwAfoCGAI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBKAEqgSyBLsEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIAogECATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCmIKsgsSC5ILwhBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQAA//b/5AHY/8IBzP/BAAABvwAAAboAAAG2AAABtAAAAbIAAAGqAAABrP8W/wf/Bf74/usB7gAAAAD+Zf5EASP92P3X/cn9tP2o/af9ov2d/YoAAP/+//0AAAAA/QoAAP/e/P78+wAA/LoAAPyyAAD8pwAA/KEAAPyZAAD8kQAA/ygAAP8lAAD8XgAA5eLlouVT5X7k5+V85X3hcuFz4W8AAOFs4WvhaeFh46nhWeOh4VDhIeEXAADg8gAA4O3g5uDl4J7gkeCP4ITflOB54E3fqt6s357fnd+W35Pfh99r31TfUdvtE7cK9wa7AsMBxwABAAAAAAAAAAAAAAAAAAAAAADkAAAA7gAAARgAAAEyAAABMgAAATIAAAF0AAAAAAAAAAAAAAAAAAABdAF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAXQBkAAAAagAAAAAAAABwAAAAggAAAIwAAACUgAAAmIAAAKOAAACmgAAAr4AAALOAAAC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAtIAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAACwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ/AoACgQKCAoMChACBAnsCjwKQApECkgKTApQAggCDApUClgKXApgCmQCEAIUCmgKbApwCnQKeAp8AhgCHAqoCqwKsAq0CrgKvAIgAiQKwArECsgKzArQAigJ6AIsAjAJ8AI0C4wLkAuUC5gLnAugAjgLpAuoC6wLsAu0C7gLvAvAAjwCQAvEC8gLzAvQC9QL2AvcAkQCSAvgC+QL6AvsC/AL9AJMAlAMMAw0DEAMRAxIDEwJ9An4ChQKgAysDLAMtAy4DCgMLAw4DDwCuAK8DhgCwA4cDiAOJALEAsgOQA5EDkgCzA5MDlAC0A5UDlgC1A5cAtgOYALcDmQOaALgDmwC5ALoDnAOdA54DnwOgA6EDogOjAMQDpQOmAMUDpADGAMcAyADJAMoAywDMA6cAzQDOA+QDrQDSA64A0wOvA7ADsQOyANQA1QDWA7QD5QO1ANcDtgDYA7cDuADZA7kA2gDbANwDugOzAN0DuwO8A70DvgO/A8ADwQDeAN8DwgPDAOoA6wDsAO0DxADuAO8A8APFAPEA8gDzAPQDxgD1A8cDyAD2A8kA9wPKA+YDywECA8wBAwPNA84DzwPQAQQBBQEGA9ED5wPSAQcBCAEJBIED6APpARcBGAEZARoD6gPrA+0D7AEoASkBKgErBIABLAEtAS4BLwEwBIIEgwExATIBMwE0A+4D7wE1ATYBNwE4BIQEhQPwA/EEdwR4A/ID8wSGBIcEfwFMAU0EfQR+A/QD9QP2AU4BTwFQAVEBUgFTAVQBVQR5BHoBVgFXAVgEAQQABAIEAwQEBAUEBgFZAVoEewR8BBsEHAFbAVwBXQFeBIgEiQFfBB0EigFvAXABgQGCBIwEiwGXBHYBnQAMAAAAAAu8AAAAAAAAAPkAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAngAAAChAAAArAAAAGMAAACtAAAArQAAAnkAAACuAAAAvwAAAG8AAADAAAAAxQAAAn8AAADGAAAAxgAAAIEAAADHAAAAzwAAAoYAAADQAAAA0AAAAnsAAADRAAAA1gAAAo8AAADXAAAA2AAAAIIAAADZAAAA3QAAApUAAADeAAAA3wAAAIQAAADgAAAA5QAAApoAAADmAAAA5gAAAIYAAADnAAAA7wAAAqEAAADwAAAA8AAAAIcAAADxAAAA9gAAAqoAAAD3AAAA+AAAAIgAAAD5AAAA/QAAArAAAAD+AAAA/gAAAIoAAAD/AAABDwAAArUAAAEQAAABEAAAAnoAAAERAAABEQAAAIsAAAESAAABJQAAAsYAAAEmAAABJgAAAIwAAAEnAAABJwAAAnwAAAEoAAABMAAAAtoAAAExAAABMQAAAI0AAAEyAAABNwAAAuMAAAE4AAABOAAAAI4AAAE5AAABQAAAAukAAAFBAAABQgAAAI8AAAFDAAABSQAAAvEAAAFKAAABSwAAAJEAAAFMAAABUQAAAvgAAAFSAAABUwAAAJMAAAFUAAABXwAAAv4AAAFgAAABYQAAAwwAAAFiAAABZQAAAxAAAAFmAAABZwAAAn0AAAFoAAABfgAAAxQAAAF/AAABfwAAAJUAAAGPAAABjwAAAJYAAAGSAAABkgAAAJcAAAGgAAABoQAAAJgAAAGvAAABsAAAAJoAAAHwAAAB8AAAA94AAAH6AAAB+gAAAoUAAAH7AAAB+wAAAqAAAAH8AAAB/wAAAysAAAIYAAACGQAAAwoAAAIaAAACGwAAAw4AAAI3AAACNwAAAJwAAAJZAAACWQAAAJ0AAAK8AAACvAAAA98AAALGAAACxwAAAJ4AAALJAAACyQAAAKAAAALYAAAC3QAAAKEAAALzAAAC8wAAAKcAAAMAAAADAQAAAKgAAAMDAAADAwAAAKoAAAMJAAADCQAAAKsAAAMPAAADDwAAAKwAAAMjAAADIwAAAK0AAAOEAAADhQAAAK4AAAOGAAADhgAAA4YAAAOHAAADhwAAALAAAAOIAAADigAAA4cAAAOMAAADjAAAA4oAAAOOAAADkgAAA4sAAAOTAAADlAAAALEAAAOVAAADlwAAA5AAAAOYAAADmAAAALMAAAOZAAADmgAAA5MAAAObAAADmwAAALQAAAOcAAADnQAAA5UAAAOeAAADngAAALUAAAOfAAADnwAAA5cAAAOgAAADoAAAALYAAAOhAAADoQAAA5gAAAOjAAADowAAALcAAAOkAAADpQAAA5kAAAOmAAADpgAAALgAAAOnAAADpwAAA5sAAAOoAAADqQAAALkAAAOqAAADsAAAA5wAAAOxAAADuQAAALsAAAO6AAADugAAA6MAAAO7AAADuwAAAMQAAAO8AAADvQAAA6UAAAO+AAADvgAAAMUAAAO/AAADvwAAA6QAAAPAAAADxgAAAMYAAAPHAAADxwAAA6cAAAPIAAADyQAAAM0AAAPKAAADzgAAA6gAAAPRAAAD0gAAAM8AAAPWAAAD1gAAANEAAAQAAAAEAAAAA+QAAAQBAAAEAQAAA60AAAQCAAAEAgAAANIAAAQDAAAEAwAAA64AAAQEAAAEBAAAANMAAAQFAAAECAAAA68AAAQJAAAECwAAANQAAAQMAAAEDAAAA7QAAAQNAAAEDQAAA+UAAAQOAAAEDgAAA7UAAAQPAAAEDwAAANcAAAQQAAAEEAAAA7YAAAQRAAAEEQAAANgAAAQSAAAEEwAAA7cAAAQUAAAEFAAAANkAAAQVAAAEFQAAA7kAAAQWAAAEGAAAANoAAAQZAAAEGQAAA7oAAAQaAAAEGgAAA7MAAAQbAAAEGwAAAN0AAAQcAAAEIgAAA7sAAAQjAAAEJAAAAN4AAAQlAAAEJQAAA8IAAAQmAAAELwAAAOAAAAQwAAAEMAAAA8MAAAQxAAAENAAAAOoAAAQ1AAAENQAAA8QAAAQ2AAAEOAAAAO4AAAQ5AAAEOQAAA8UAAAQ6AAAEPQAAAPEAAAQ+AAAEPgAAA8YAAAQ/AAAEPwAAAPUAAARAAAAEQQAAA8cAAARCAAAEQgAAAPYAAARDAAAEQwAAA8kAAAREAAAERAAAAPcAAARFAAAERQAAA8oAAARGAAAETwAAAPgAAARQAAAEUAAAA+YAAARRAAAEUQAAA8sAAARSAAAEUgAAAQIAAARTAAAEUwAAA8wAAARUAAAEVAAAAQMAAARVAAAEWAAAA80AAARZAAAEWwAAAQQAAARcAAAEXAAAA9EAAARdAAAEXQAAA+cAAAReAAAEXgAAA9IAAARfAAAEYQAAAQcAAARiAAAEYgAABIEAAARjAAAEbwAAAQoAAARwAAAEcQAAA+gAAARyAAAEdQAAARcAAAR2AAAEdwAAA+oAAAR4AAAEeAAAA+0AAAR5AAAEeQAAA+wAAAR6AAAEhgAAARsAAASIAAAEiwAAASgAAASMAAAEjAAABIAAAASNAAAEkQAAASwAAASSAAAEkwAABIIAAASUAAAElwAAATEAAASYAAAEmQAAA+4AAASaAAAEnQAAATUAAASeAAAEnwAABIQAAASgAAAEqQAAATkAAASqAAAEqwAAA/AAAASsAAAErQAABHcAAASuAAAErwAAA/IAAASwAAAEsQAABIYAAASyAAAEugAAAUMAAAS7AAAEuwAABH8AAAS8AAAEvQAAAUwAAAS+AAAEvwAABH0AAATAAAAEwgAAA/QAAATDAAAEygAAAU4AAATLAAAEzAAABHkAAATNAAAEzgAAAVYAAATPAAAE1wAAA/cAAATYAAAE2AAAAVgAAATZAAAE2QAABAEAAATaAAAE2gAABAAAAATbAAAE3wAABAIAAATgAAAE4QAAAVkAAATiAAAE9QAABAcAAAT2AAAE9wAABHsAAAT4AAAE+QAABBsAAAT6AAAE/QAAAVsAAAT+AAAE/wAABIgAAAUAAAAFAAAAAV8AAAUBAAAFAQAABB0AAAUCAAAFEAAAAWAAAAURAAAFEQAABIoAAAUSAAAFEwAAAW8AAB4AAAAeAQAAA+IAAB4+AAAePwAAA+AAAB6AAAAehQAAA9MAAB6gAAAe8QAABB4AAB7yAAAe8wAAA9kAAB70AAAe+QAABHAAAB9NAAAfTQAABMoAACAAAAAgCQAAAXIAACAKAAAgCwAAAX0AACAQAAAgEQAAAX8AACATAAAgFAAAAYEAACAVAAAgFQAABIwAACAXAAAgHgAAAYMAACAgAAAgIgAAAYsAACAlAAAgJwAAAY4AACAwAAAgMAAAAZEAACAyAAAgMwAAA9sAACA5AAAgOgAAAZIAACA8AAAgPAAAA90AACBEAAAgRAAAAZQAACB0AAAgdAAAAZUAACB/AAAgfwAAAZYAACCjAAAgowAABIsAACCkAAAgpAAAAZcAACCmAAAgqgAAAZgAACCrAAAgqwAABHYAACCsAAAgrAAAAZ0AACCxAAAgsQAAAZ4AACC5AAAgugAAAZ8AACC8AAAgvQAAAaEAACEFAAAhBQAAAaMAACETAAAhEwAAAaQAACEWAAAhFgAAAaUAACEiAAAhIgAAAaYAACEmAAAhJgAAALoAACEuAAAhLgAAAacAACFbAAAhXgAAAagAACICAAAiAgAAAawAACIGAAAiBgAAALIAACIPAAAiDwAAAa0AACIRAAAiEgAAAa4AACIaAAAiGgAAAbAAACIeAAAiHgAAAbEAACIrAAAiKwAAAbIAACJIAAAiSAAAAbMAACJgAAAiYAAAAbQAACJkAAAiZQAAAbUAACXKAAAlygAAAbcAAO4BAADuAgAAAbgAAPbDAAD2wwAAAboAAPsBAAD7BAAAAbwAAP7/AAD+/wAAAcIAAP/8AAD//QAAAcMAALAALEuwCVBYsQEBjlm4Af+FsIQdsQkDX14tsAEsICBFaUSwAWAtsAIssAEqIS2wAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS/9LbAFLEsgsAMmUFhRWLCARBuwQERZGyEhIEWwwFBYsMBEGyFZWS2wBiwgIEVpRLABYCAgRX1pGESwAWAtsAcssAYqLbAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbDAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSCwAyZTWLADJUW4AYBQWCMhuAGAIyEbsAMlRSMhIyFZGyFZRC2wCSxLU1hFRBshIVktsAossChFLbALLLApRS2wDCyxJwGIIIpTWLlAAAQAY7gIAIhUWLkAKAPocFkbsCNTWLAgiLgQAFRYuQAoA+hwWVlZLbANLLBAiLggAFpYsSkARBu5ACkD6ERZLbAMK7AAKwCyARACKwGyEQECKwG3ETowJRsQAAgrALcBSDsuIRQACCu3AlhIOCgUAAgrtwNSQzQlFgAIK7cEXk08KxkACCu3BTYsIhkPAAgrtwZxXUYyGwAIK7cHkXdcOiMACCu3CH5nUDkaAAgrtwlURTYmFAAIK7cKdmBLNh0ACCu3C4NkTjojAAgrtwzZsopjPAAIK7cNFBAMCQYACCu3DjwyJxwRAAgrtw9ANCkdFAAIK7cQUEEuIRQACCsAshILByuwACBFfWkYRLI/GgFzsl8aAXOyfxoBc7IvGgF0sk8aAXSybxoBdLKPGgF0sq8aAXSy/xoBdLIfGgF1sj8aAXWyXxoBdbJ/GgF1sg8eAXOyfx4Bc7LvHgFzsh8eAXSyXx4BdLKPHgF0ss8eAXSy/x4BdLI/HgF1sm8eAXWyLyABc7JvIAFzAAAAACoAnQCAAIoAeADUAGQATgBaAIcAYABWADQCPAC8ALIAjgDEAAAAFP5gABQCmwAgAyEACwQ6ABQEjQAQBbAAFAYYABUBpgARBsAADgbZAAYAAAAAAAAAYQBhAGEAYQBhAJQAuQE6Aa4CQALUAusDFQM/A3IDmAO3A84D8AQHBFUEgwTTBUoFjgXwBlEGfgbzB1sHcAeFB6QHzAfrCEoI7wk1CZUJ6gowCnIKqQsWC2ELfAuvDAQMKAx2DLINCA1UDboOFw6DDq4O8A8gD3UPyg/6EDMQWBBvEJUQvBDXEPcRcRHQEiQSgxLsEz8TuhQAFDkUhhTdFPgVZBWvFf4WYxbFFwMXbxfCGAkYORiHGM4ZFBlNGY4ZpRnlGi0aYRq+GzEblRv3HBYcvRzsHZQeBB4QHi4e6B8CHz8fgx/UIFAgcCC6IOYhBiFCIXQhvyHLIeUh/yIZInsi4CMeI5oj7yRgJSAlkCXjJlUmtScsJ4snpif2KEEofyjQKSwpsSpMKn0q5CtMK7csGCxsLMYs9S1aLYgtrC26LeYuBi4/LnUuui7tLysvSC9lL24voS/SL+4wCjBOMFowgTCvMSwxWTGdMcwyCTJ+MtgzQTO3NC40YTTUNUI1nzXqNms2mTbzN2M3tTgQOGw4xDkIOUo5tDoROng68DtEO7s8FzySPQo9fj3TPhA+aT7CPzE/qD/tQDhAgEDyQShBbUGrQfRCTUKxQv5DfUQPRGtE3EVURXtF0kZGRsFG+kdSR5pH4kg/SG5ImkkmSVxJnUnbSiBKeErbSyZLmUwgTHxM9U13Te5OXU7FTwFPZE/FUC5QslFOUZpR6VJUUsNTOVOpVDVUwFVSVe1WcFbqVy9XdVfiWEpZBVnBWkFawVsTW2FblluyW+pcAFwWXOpdXV14XZNd/V5ZXs1e/V8oX35f1F/gX+xf+GAEYFtgvmETYXNhf2GLYdZiQGKfYv9joGQ5ZEVkUWSiZOZk8mT+ZU5lnGXeZlBmwmcbZ4BnjGeYaBJoimiWaKJormi6aSRphWngae9qA2oPahtqaWrNa1Vrx2w2bJps/G1rbdZuYG7jb0Bvk2/mcDhwr3C7cMdw9nD2cPZw9nD2cPZw9nD2cPZw9nD2cPZw9nD2cP5xBnEQcRpxMnFWcXpxnXG4ccRx0HIIckdyqXLNctly6XMMc99z+3QYdCt0P3SGdRB1rnY/dkt3K3ePeA14rHkQeYt55XpRewN7anwAfF58wnzcfPZ9EH0qfZx9w338fhh+TX7gfyJ/r3/wgA6ALIBlgHKAnIC/gMuBNIGHghSCg4L2g8ODw4V2heKGMoZehqiHBod9h66IFYh5iMCJPomSicSKEopLinuKxIsci0yLiou1jByMdYzUjR+Nc42sjf2OIY5kjpqOtY72j1aPjpACkGeQxpDwkSaRjpHAkg6SQJKAkueTP5OhlACUcpTolV6VsZXxlkqWopcWl5GXzZgdmGaYrJjnmSmZaZmzmg2aGZpnmtebVZutm/CcdpzYnTmdl54snj2emJ7lnzOfdZ/moEqgsKEhobWiO6LSo0WjtaP4pFWkr6TcpVmluKXPpjWmeqclp4mn7ag9qIOoxKkGqU6po6oKqkqqZKqzqyircKu4rBishqyzrQKtYq12rYqtnK2wrcKt2a3trkmuu68Ir2iv0a/8sFCworDmsT2xZLHVseuyb7LSsv6zD7MgszOzRLNVs2ize7OOs6SzrLO0s7yzzbPYs+C0SLSXtMS1JbV4tdm2VLaetwS3ZrfKuEO4S7jmuTO5n7nvumi61rsnuye7L7uVu/u8WrydvQO9Gr0xvUi9X714vZG9nb2pvcC9173uvge+Hr41vky+Zb58vpO+qr7Bvti+8b8Ivx+/Nr9Pv2a/fb+Uv6q/wL/Zv/K//sAKwCHAOMBOwGfAfcCTwKrAw8DZwPDBB8EdwTPBTMFjwXrBkMGpwcDB2MHvwgXCHMIzwpfDL8NGw13DdMOKw6HDuMPPw+XD/MQtxETEWsRxxIjEn8S2xSDFpsW9xdPF6sYAxhfGLsZFxlzGaMZ/xpbGqMa/xtbG7ccExxvHMsc9x0jHX8drx3fHjselx7HHvcfUx+vH98gDyBjITchZyGXIfMiTyJ/Iq8jCyNjI7ckEyRrJMclIyWHJesmRyajJtMnAydfJ7coEyhvKMspIylTKYMpsynjKj8qlyrHKvcrJytXK7MsCyxnLL8tGy1zLc8uKy6PLvMvVy+7MTMyzzMrM4cz4zQ7NJ80+zVXNbM2DzZrNsM3Hzd7N9c4Mzi/OV85qzoHOmM6uzsTO3c72zwLPDs8lzzzPUs9qz4DPls+tz8bP3c/00AvQItA50FLQadCA0JbQr9DG0NzQ89FX0W7RhNGb0bLRyNHe0fTSC9J20ozSotK50tDS3NLz0wrTIdM400PTWdNw03zTktOe07PTv9PW0+LT+dQQ1CfUQNRX1GPUedSQ1KbUstTI1NTU6tT21QzVItU51VLVa9XI1d/V9dYN1iTWO9ZR1lzWaNZ01oDWjNaY1qTWwNbI1tDW2Nbg1ujW8Nb41wDXCNcQ1xjXINco1zDXSddi13nXkNen173X2Nfg1+jX8Nf42GPYe9iT2KrYwdjY2PHZCNl02XzZldmd2aXZvNnT2dvZ49nr2fPaCtoS2hraItoq2jLaOtpC2kraUtpa2nHaedqB2tXa3drl2v7bFdsd2yXbPttG213bc9uK26HbuNvP2+jcAdwY3C/cN9w/3EvcYtxq3IHcmNyk3LDcx9ze3PXdDN0U3RzdNd1O3VrdZt1y3X7dit2W3Z7dpt2u3cXd3N3k3fveEt4r3kTeTN5U3mvegt6b3qPevN7V3u7fB98f3zbfTN9l337fl9+w37jfwN/Z3/LgC+Aj4DrgUOBp4IHgmuCz4Mzg5OEB4R7hJuEy4T7hVeFs4YXhneG24c7h5+H/4hjiMOJL4mXifuKX4rDiyeLi4vvjFOMt40jjY+Nv43vjkuOp48Dj1uPv5AfkIOQ45FHkaeSC5JrkteTP5Obk/eUJ5RXlIeUt5UTlW+V05YzlpeW95dbl7uYH5h/mOuZU5mvmguaZ5rDmx+be5vXnC+cX5yPnL+c751LnaeeA55fnrufF59zn8+gK6CDoLOg46EToUOhn6H7oleir6MDozOjY6OTo8Oj86QjpFOkg6SjpiOno6ivqa+rP6y7reOvI7CHseOyA7Izsluye7Kbsruy27L7sxuzO7Nbs7e0E7RvtMu1L7WTtfe2W7a/tyO3h7fruE+4s7kXuXu5q7nbugu6O7pruq+637sPuz+7m7vjvBO8Q7xzvKO8070DvTO9Y73rvke+o77TvwO/M79jv5O/w8AjwH/A18EHwTfBZ8GXwcfB98InwlfCh8K3wufDF8NHw3fDl8O3w9fD98QXxDfEV8R3xJfEt8TXxPfFF8U3xZvF+8ZbxrfG18b3x1vHe8fXyC/IT8hvyI/Ir8kLySvJS8lryYvJq8nLyevKC8w3zWvO588HzzfPk8/r0AvQO9Br0JvQy9D70SvRW9GL0bvR69Ib0kvSe9Kr0tgAAAAUAZAAAAygFsAADAAYACQAMAA8AcbIMEBEREjmwDBCwANCwDBCwBtCwDBCwCdCwDBCwDdAAsABFWLACLxuxAh4+WbAARViwAC8bsQASPlmyBAIAERI5sgUCABESObIHAgAREjmyCAIAERI5sQoM9LIMAgAREjmyDQIAERI5sAIQsQ4M9DAxISERIQMRAQERAQMhATUBIQMo/TwCxDb+7v66AQzkAgP+/gEC/f0FsPqkBQf9fQJ3+xECeP1eAl6IAl4AAgCg//UBewWwAAMADAAwALAARViwAi8bsQIePlmwAEVYsAsvG7ELEj5ZsQYFsAorWCHYG/RZsgEGAhESOTAxASMDMwM0NjIWFAYiJgFbpw3CyTdsODhsNwGbBBX6rS09PVo7OwAAAgCIBBICIwYAAAQACQAZALADL7ICCgMREjmwAi+wB9CwAxCwCNAwMQEDIxMzBQMjEzMBFR5vAYwBDh5vAYwFeP6aAe6I/poB7gACAHcAAATTBbAAGwAfAJEAsABFWLAMLxuxDB4+WbAARViwEC8bsRAePlmwAEVYsAIvG7ECEj5ZsABFWLAaLxuxGhI+WbIdDAIREjl8sB0vGLEAA7AKK1gh2Bv0WbAE0LAdELAG0LAdELAL0LALL7EIA7AKK1gh2Bv0WbALELAO0LALELAS0LAIELAU0LAdELAW0LAAELAY0LAIELAe0DAxASEDIxMjNSETITUhEzMDIRMzAzMVIwMzFSMDIwMhEyEC/f74UI9Q7wEJRf7+AR1Sj1IBCFKQUsznReH7UJCeAQhF/vgBmv5mAZqJAWKLAaD+YAGg/mCL/p6J/mYCIwFiAAABAG7/MAQRBpwAKwBpALAARViwCS8bsQkePlmwAEVYsCIvG7EiEj5ZsgIiCRESObAJELAM0LAJELAQ0LAJELETAbAKK1gh2Bv0WbACELEZAbAKK1gh2Bv0WbAiELAf0LAiELAm0LAiELEpAbAKK1gh2Bv0WTAxATQmJyYmNTQ2NzUzFRYWFSM0JiMiBhUUFgQWFhUUBgcVIzUmJjUzFBYzMjYDWIGZ1cO/p5Wou7iGcnd+hQExq1HLt5S607mShoOWAXdcfjNB0aGk0hTb3BfszY2me25meWN3nmqpzhO/vxHnxouWfgAABQBp/+sFgwXFAA0AGgAmADQAOAB8ALAARViwAy8bsQMePlmwAEVYsCMvG7EjEj5ZsAMQsArQsAovsREEsAorWCHYG/RZsAMQsRgEsAorWCHYG/RZsCMQsB3QsB0vsCMQsSoEsAorWCHYG/RZsB0QsTEEsAorWCHYG/RZsjUjAxESObA1L7I3AyMREjmwNy8wMRM0NjMyFhUVFAYjIiY1FxQWMzI2NTU0JiIGFQE0NiAWFRUUBiAmNRcUFjMyNjU1NCYjIgYVBScBF2mng4Wlp4GCqopYSkdXVpRWAjunAQaop/78qopYSkhWV0lHWf4HaQLHaQSYg6qriEeEp6eLB05lYlVJTmZmUvzRg6moi0eDqaeLBk9lY1VKT2RjVPNCBHJCAAMAZf/sBPMFxAAeACcAMwCHALAARViwCS8bsQkePlmwAEVYsBwvG7EcEj5ZsABFWLAYLxuxGBI+WbIiHAkREjmyKgkcERI5sgMiKhESObIQKiIREjmyEQkcERI5shMcCRESObIZHAkREjmyFhEZERI5sBwQsR8BsAorWCHYG/RZsiEfERESObAJELExAbAKK1gh2Bv0WTAxEzQ2NyYmNTQ2MzIWFRQGBwcBNjUzFAcXIycGBiMiJAUyNwEHBhUUFgMUFzc2NjU0JiMiBmV1pWFCxKiWxFlvawFERKd70N5hSsdn1f7+AdeTev6dIaeZInZ2RDJkTFJgAYdpsHV2kEemvK+FWJVST/59gp//qPlzQkXiS3ABqRh7gnaOA+VgkFMwVz5DWW8AAQBnBCEA/QYAAAQAEACwAy+yAgUDERI5sAIvMDETAyMTM/0VgQGVBZH+kAHfAAEAhf4qApUGawARAAkAsA4vsAQvMDETNBISNxcGAgMHEBMWFwcmJwKFefCBJpK7CQGNVXUmhXnsAk/iAaABVEZ6cP40/uNV/n7+5KpgcUquAVQAAAEAJv4qAjcGawARAAkAsA4vsAQvMDEBFAICByc2EhM1NAICJzcWEhICN3XxhCeauwJYnWInhO93AkXf/mf+pklxdgHxAS8g0gFpAR5QcUn+qv5kAAEAHAJhA1UFsAAOACAAsABFWLAELxuxBB4+WbAA0BmwAC8YsAnQGbAJLxgwMQElNwUDMwMlFwUTBwMDJwFK/tIuAS4JmQoBKS7+zcZ8urR9A9dal3ABWP6jbphb/vFeASD+51sAAAEATgCSBDQEtgALABsAsAkvsADQsAkQsQYBsAorWCHYG/RZsAPQMDEBIRUhESMRITUhETMCngGW/mq6/moBlroDDa/+NAHMrwGpAAABAB3+3gE0ANsACAAYALAJL7EEBbAKK1gh2Bv0WbAA0LAALzAxEyc2NzUzFRQGhmleBLVj/t5Ig4unkWXKAAEAJQIfAg0CtgADABIAsAIvsQEBsAorWCHYG/RZMDEBITUhAg3+GAHoAh+XAAABAJD/9QF2ANEACQAcALAARViwBy8bsQcSPlmxAgWwCitYIdgb9FkwMTc0NjIWFRQGIiaQOXI7O3I5YTBAQDAuPj4AAAEAEv+DAxAFsAADABMAsAAvsABFWLACLxuxAh4+WTAxFyMBM7GfAmCefQYtAAACAHP/7AQKBcQADQAbADsAsABFWLAKLxuxCh4+WbAARViwAy8bsQMSPlmwChCxEQGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMQEQAiMiAgM1EBIzMhITJzQmIyIGBxEUFjMyNjcECt7s6eAE3u3r3gO5hI+OggKJi4mFAwJt/rv+xAE1ATP3AUEBOP7T/sYN69fW3v7Y7OHU5AABAKoAAALZBbcABgA6ALAARViwBS8bsQUePlmwAEVYsAAvG7EAEj5ZsgQABRESObAEL7EDAbAKK1gh2Bv0WbICAwUREjkwMSEjEQU1JTMC2br+iwISHQTRiajHAAEAXQAABDMFxAAXAE8AsABFWLAQLxuxEB4+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyAxAXERI5sBAQsQkBsAorWCHYG/RZsBAQsAzQshUXEBESOTAxISE1ATY2NTQmIyIGFSM0JDMyFhUUAQEhBDP8RgH4cFWKc4qZuQED2cvs/u7+egLbhQIwf59VcpKdjMn41bHX/tf+WQABAF7/7AP5BcQAJgB7ALAARViwDS8bsQ0ePlmwAEVYsBkvG7EZEj5ZsgANGRESObAAL7LPAAFdsp8AAXGyLwABXbJfAAFysA0QsQYBsAorWCHYG/RZsA0QsAnQsAAQsSYBsAorWCHYG/RZshMmABESObAZELAc0LAZELEfAbAKK1gh2Bv0WTAxATM2NjUQIyIGFSM0NjMyFhUUBgcWFhUUBCAkNTMUFjMyNjU0JicjAYaLg5b/eI+5/cPO6ntqeIP/AP5m/v+6ln6GjpyTiwMyAoZyAQCJca3l2sJfsiwmsH/E5t62c4qMg3+IAgAAAgA1AAAEUAWwAAoADgBKALAARViwCS8bsQkePlmwAEVYsAQvG7EEEj5ZsgEJBBESObABL7ECAbAKK1gh2Bv0WbAG0LABELAL0LIIBgsREjmyDQkEERI5MDEBMxUjESMRITUBMwEhEQcDhsrKuv1pAozF/YEBxRYB6Zf+rgFSbQPx/DkCyigAAAEAmv/sBC0FsAAdAGQAsABFWLABLxuxAR4+WbAARViwDS8bsQ0SPlmwARCxBAGwCitYIdgb9FmyBw0BERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELAR0LANELEUAbAKK1gh2Bv0WbAHELAd0DAxExMhFSEDNjMyEhUUAiMiJiczFhYzMjY1NCYjIgcHzkoC6v2zLGuIx+rz2sH0Ea8RkHaBk5+EeUUxAtoC1qv+cz/++eDh/v3WvX1/sJuSsTUoAAACAIT/7AQcBbEAFAAhAFEAsABFWLAALxuxAB4+WbAARViwDS8bsQ0SPlmwABCxAQGwCitYIdgb9FmyBw0AERI5sAcvsRUBsAorWCHYG/RZsA0QsRwBsAorWCHYG/RZMDEBFSMGBAc2MzISFRQCIyIANTUQACUDIgYHFRQWMzI2NTQmA08i2P8AFHPHvuP1ztH+/AFXAVPSX6Afonl9j5EFsZ0E+OGE/vTU4f7yAUH9RwGSAakF/XByVkS03LiVlrkAAAEATQAABCUFsAAGADMAsABFWLAFLxuxBR4+WbAARViwAS8bsQESPlmwBRCxAwGwCitYIdgb9FmyAAMFERI5MDEBASMBITUhBCX9pcICWfzsA9gFSPq4BRiYAAMAcP/sBA4FxAAXACEAKwBkALAARViwFS8bsRUePlmwAEVYsAkvG7EJEj5ZsicJFRESObAnL7LPJwFdsRoBsAorWCHYG/RZsgMaJxESObIPJxoREjmwCRCxHwGwCitYIdgb9FmwFRCxIgGwCitYIdgb9FkwMQEUBgcWFhUUBiMiJjU0NjcmJjU0NjMyFgM0JiIGFBYzMjYBIgYVFBYyNjQmA+xzYnKF/9DS/YFyYXDswcDtl5v6l5ODgpT+6m2Hhd6FigQ0baowMbx3veDhvHa+MTCqbLjY2PyhepqY+I6PBBqHdG+Jid6MAAIAZP//A/gFxAAXACQAWwCwAEVYsAsvG7ELHj5ZsABFWLATLxuxExI+WbIDEwsREjmwAy+yAAMLERI5sBMQsRQBsAorWCHYG/RZsAMQsRgBsAorWCHYG/RZsAsQsR8BsAorWCHYG/RZMDEBBgYjIiYmNTQ2NjMyEhEVEAAFIzUzNjYlMjY3NTQmIyIGFRQWAz46oWB+u2ZvzIjY+f6w/q0kJ+X2/u5dnSSeeXqUjwKARVR84YiS6nz+vf7pNv5X/nkFnATn+nJUSrbku5mVwf//AIb/9QFtBEQAJgAS9gABBwAS//cDcwAQALAARViwDS8bsQ0aPlkwMf//ACn+3gFVBEQAJwAS/98DcwEGABAMAAAQALAARViwAy8bsQMaPlkwMQABAEgAwwN6BEoABgAWALAARViwBS8bsQUaPlmwAtCwAi8wMQEFFQE1ARUBCAJy/M4DMgKE/cQBe5IBesQAAAIAmAGPA9oDzwADAAcAJwCwBy+wA9CwAy+xAAGwCitYIdgb9FmwBxCxBAGwCitYIdgb9FkwMQEhNSERITUhA9r8vgNC/L4DQgMuof3AoAAAAQCGAMQD3ARLAAYAFgCwAEVYsAIvG7ECGj5ZsAXQsAUvMDEBATUBFQE1Axv9awNW/KoCigEDvv6Gkv6FwAACAEv/9QN2BcQAGAAhAFMAsABFWLAQLxuxEB4+WbAARViwIC8bsSASPlmxGwWwCitYIdgb9FmyABsQERI5sgQQABESObAQELEJAbAKK1gh2Bv0WbAQELAM0LIVABAREjkwMQE2Njc3NjU0JiMiBhUjNjYzMhYVFAcHBhUDNDYyFhQGIiYBZQIyTYNUbmlmfLkC47a906JtScE3bDg4bDcBmneKVIdfbWl3bFuix8uxr6psUZj+wy09PVo7OwAAAgBq/jsG1gWXADUAQgBsALAyL7AARViwCC8bsQgSPlmwA9CyDzIIERI5sA8vsgUIDxESObAIELE5ArAKK1gh2Bv0WbAV0LAyELEbArAKK1gh2Bv0WbAIELAq0LAqL7EjArAKK1gh2Bv0WbAPELFAArAKK1gh2Bv0WTAxAQYCIyInBgYjIiY3NhI2MzIWFwMGMzI2NxIAISIEAgcGEgQzMjY3FwYGIyIkAhMSEiQzMgQSAQYWMzI2NzcTJiMiBgbKDNi1uzU2i0qOkhMPeb9pUYBQNBOTcYwGE/65/rLJ/si0CwyQASfRWrU8JT7Nafr+mLMMDN4BfO/5AWSu+/IOUVg8byQBLjhAdZkB9vL+6KhVU+jNpQEDlCs//dbn4LQBhQGYx/6I9vj+k8EsI3MnMuEBpwEbARMBt+/g/lr+kI6YZl8JAfcd7gAAAgAcAAAFHQWwAAcACgBUsgoLDBESObAKELAE0ACwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyCAQCERI5sAgvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIwEzASMBIQMDzf2eicYCLKgCLcX9TQHv+AF8/oQFsPpQAhoCqQADAKkAAASIBbAADgAWAB8AWACwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbIXAAEREjmwFy+xDwGwCitYIdgb9FmyCA8XERI5sAAQsRABsAorWCHYG/RZsAEQsR8BsAorWCHYG/RZMDEzESEyFhUUBgcWFhUUBiMBESEyNjUQISUhMjY1NCYjIakB3O3vdGR2if7o/scBPYab/uL+wAEifpeMj/7kBbDEwGadKyG5gMTgAqn99It6AQeafmx4bQABAHf/7ATYBcQAHABHALAARViwCy8bsQsePlmwAEVYsAMvG7EDEj5ZsAsQsA/QsAsQsRIBsAorWCHYG/RZsAMQsRkBsAorWCHYG/RZsAMQsBzQMDEBBgQjIAARNTQSJDMyABcjJiYjIgIVFRQSMzI2NwTYG/7h7v7+/smRAQqv6AEYF8EZp5a40cayoKscAc7n+wFyATaMywE0pf795a6c/vD7je3+6JG0AAIAqQAABMYFsAALABUAOwCwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbABELEMAbAKK1gh2Bv0WbAAELENAbAKK1gh2Bv0WTAxMxEhMgQSFxUUAgQHAxEzMhI1NTQCJ6kBm74BJJ8Bn/7ZxNPK3vfp1gWwqP7KyV3O/sqmAgUS+4sBFP9V+AETAgAAAQCpAAAERgWwAAsAUQCwAEVYsAYvG7EGHj5ZsABFWLAELxuxBBI+WbILBAYREjmwCy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FkwMQEhESEVIREhFSERIQPg/YkC3fxjA5P9LQJ3AqH9/J0FsJ7+LAAAAQCpAAAELwWwAAkAQgCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbIJAgQREjmwCS+xAAGwCitYIdgb9FmwBBCxBgGwCitYIdgb9FkwMQEhESMRIRUhESEDzP2dwAOG/ToCYwKD/X0FsJ7+DgABAHr/7ATcBcQAHwBsALAARViwCy8bsQsePlmwAEVYsAMvG7EDEj5ZsAsQsA/QsAsQsREBsAorWCHYG/RZsAMQsRgBsAorWCHYG/RZsh4DCxESObAeL7S/Hs8eAl20Dx4fHgJdtD8eTx4CXbEdAbAKK1gh2Bv0WTAxJQYEIyIkAic1EAAhMgQXIwIhIgIDFRQSMzI2NxEhNSEE3Er+97Cy/uyXAgEzARbkARYfwDb+3sHHAeC/bKI1/q8CEL9qaacBNMt/AUkBaunWASH+8f7/d/X+3zA5AUecAAEAqQAABQgFsAALAGcAsABFWLAGLxuxBh4+WbAARViwCi8bsQoePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAAELAJ0LAJL7LvCQFdtM8J3wkCcbKPCQFxsi8JAV2ynwkBcrECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBQjB/SLAwALewQKh/V8FsP2OAnIAAAEAtwAAAXcFsAADAB0AsABFWLACLxuxAh4+WbAARViwAC8bsQASPlkwMSEjETMBd8DABbAAAAEANf/sA8wFsAAPAC8AsABFWLAALxuxAB4+WbAARViwBS8bsQUSPlmwCdCwBRCxDAGwCitYIdgb9FkwMQEzERQGIyImNTMUFjMyNjcDC8H70dnywImCd5MBBbD7+dHs3sh9jJaHAAEAqQAABQUFsAALAHQAsABFWLAFLxuxBR4+WbAARViwBy8bsQcePlmwAEVYsAIvG7ECEj5ZsABFWLALLxuxCxI+WbIAAgUREjlAEUoAWgBqAHoAigCaAKoAugAIXbI5AAFdsgYFAhESOUATNgZGBlYGZgZ2BoYGlgamBrYGCV0wMQEHESMRMxEBMwEBIwIbssDAAofo/cMCauYCpbn+FAWw/TAC0P19/NMAAQCpAAAEHAWwAAUAKQCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WTAxJSEVIREzAWoCsvyNwZ2dBbAAAQCpAAAGUgWwAA4AWQCwAEVYsAAvG7EAHj5ZsABFWLACLxuxAh4+WbAARViwBC8bsQQSPlmwAEVYsAgvG7EIEj5ZsABFWLAMLxuxDBI+WbIBAAQREjmyBwAEERI5sgoABBESOTAxCQIzESMREwEjARMRIxEBoQHcAdz5wBL+IpP+IxPABbD7XASk+lACNwJk+2UEmP2f/ckFsAAAAQCpAAAFCAWwAAkATLIBCgsREjkAsABFWLAFLxuxBR4+WbAARViwCC8bsQgePlmwAEVYsAAvG7EAEj5ZsABFWLADLxuxAxI+WbICBQAREjmyBwUAERI5MDEhIwERIxEzAREzBQjB/SPBwQLfvwRi+54FsPuZBGcAAgB2/+wFCQXEABEAHwA7ALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsA0QsRUBsAorWCHYG/RZsAQQsRwBsAorWCHYG/RZMDEBFAIEIyIkAic1NBIkMzIEEhUnEAIjIgIHFRQSMzISNwUJkP74sKz+9pMCkgELrK8BC5C/0Lu20QPTubrMAwKp1v7BqKkBOc5p0gFCq6n+v9UCAQMBFf7r9mv7/uEBD/0AAAIAqQAABMAFsAAKABMAT7IKFBUREjmwChCwDNAAsABFWLADLxuxAx4+WbAARViwAS8bsQESPlmyCwMBERI5sAsvsQABsAorWCHYG/RZsAMQsRIBsAorWCHYG/RZMDEBESMRITIEFRQEIyUhMjY1NCYnIQFpwAIZ7wEP/vf3/qkBWZqkpI/+nAI6/cYFsPTJ1OWdkYmCnAMAAgBt/woFBgXEABUAIgBPsggjJBESObAIELAZ0ACwAEVYsBEvG7ERHj5ZsABFWLAILxuxCBI+WbIDCBEREjmwERCxGQGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEUAgcFByUGIyIkAic1NBIkMzIEEhUnEAIjIgIHFRQSIBI3BQGGeQEEg/7NSFCs/vaTApIBC6ywAQuQwM2+tdED0QF0zAMCqdP+z1bMefQSqQE5zmnSAUKrqv7B1QEBAQEX/uv2a/r+4AEP/QAAAgCoAAAEyQWwAA4AFwBjsgUYGRESObAFELAW0ACwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbAARViwDS8bsQ0SPlmyEAQCERI5sBAvsQABsAorWCHYG/RZsgsABBESObAEELEWAbAKK1gh2Bv0WTAxASERIxEhMgQVFAYHARUjASEyNjU0JichAr/+qsEB4vYBCZODAVbO/W4BJ4+poZj+2gJN/bMFsODWiMoy/ZYMAuqUfIeQAQAAAQBQ/+wEcgXEACYAZLIAJygREjkAsABFWLAGLxuxBh4+WbAARViwGi8bsRoSPlmwBhCwC9CwBhCxDgGwCitYIdgb9FmyJhoGERI5sCYQsRQBsAorWCHYG/RZsBoQsB/QsBoQsSIBsAorWCHYG/RZMDEBJiY1NCQzMhYWFSM0JiMiBhUUFgQWFhUUBCMiJCY1MxQWMzI2NCYCVvfhARPcluuBwaiZjp+XAWvNY/7s55b+/I3Bw6OYopYCiUfPmKzhdMx5hJd9b1l7Znukb7HVc8h/hJl81nUAAQAxAAAElwWwAAcALwCwAEVYsAYvG7EGHj5ZsABFWLACLxuxAhI+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSEEl/4sv/4tBGYFEvruBRKeAAABAIz/7ASqBbAAEgA9sgUTFBESOQCwAEVYsAAvG7EAHj5ZsABFWLAJLxuxCR4+WbAARViwBS8bsQUSPlmxDgGwCitYIdgb9FkwMQERBgAHByIAJxEzERQWMzI2NREEqgH+/9wz7/7kAr6uoaOtBbD8Is7++hACAQLiA+D8Jp6vrp4D2wABABwAAAT9BbAABgA4sgAHCBESOQCwAEVYsAEvG7EBHj5ZsABFWLAFLxuxBR4+WbAARViwAy8bsQMSPlmyAAEDERI5MDElATMBIwEzAosBoNL95Kr95dH/BLH6UAWwAAABAD0AAAbtBbAAEgBZALAARViwAy8bsQMePlmwAEVYsAgvG7EIHj5ZsABFWLARLxuxER4+WbAARViwCi8bsQoSPlmwAEVYsA8vG7EPEj5ZsgEDChESObIGAwoREjmyDQMKERI5MDEBFzcBMwEXNxMzASMBJwcBIwEzAeMcKQEgogEZKB/iwf6fr/7UFxf+ya/+oMABy8CtA/j8CLDEA+T6UAQlb2/72wWwAAEAOQAABM4FsAALAGsAsABFWLABLxuxAR4+WbAARViwCi8bsQoePlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIAAQQREjlACYYAlgCmALYABF2yBgEEERI5QAmJBpkGqQa5BgRdsgMABhESObIJBgAREjkwMQEBMwEBIwEBIwEBMwKEAV3i/jQB1+T+mv6Y4wHY/jPhA4ICLv0u/SICOP3IAt4C0gAAAQAPAAAEuwWwAAgAMQCwAEVYsAEvG7EBHj5ZsABFWLAHLxuxBx4+WbAARViwBC8bsQQSPlmyAAEEERI5MDEBATMBESMRATMCZQF82v4KwP4K3ALVAtv8b/3hAh8DkQAAAQBWAAAEegWwAAkARgCwAEVYsAcvG7EHHj5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDElIRUhNQEhNSEVATkDQfvcAx787wP3nZ2QBIKejQAAAQCS/sgCCwaAAAcAJACwBC+wBy+xAAGwCitYIdgb9FmwBBCxAwGwCitYIdgb9FkwMQEjETMVIREhAgu/v/6HAXkF6Pl4mAe4AAABACj/gwM4BbAAAwATALACL7AARViwAC8bsQAePlkwMRMzASMosAJgsAWw+dMAAQAJ/sgBgwaAAAcAJwCwAi+wAS+wAhCxBQGwCitYIdgb9FmwARCxBgGwCitYIdgb9FkwMRMhESE1MxEjCQF6/obBwQaA+EiYBogAAAEAQALZAxQFsAAGACeyAAcIERI5ALAARViwAy8bsQMePlmwANCyAQcDERI5sAEvsAXQMDEBAyMBMwEjAaq+rAErfwEqqwS7/h4C1/0pAAEABP9pA5gAAAADABwAsABFWLADLxuxAxI+WbEAAbAKK1gh2Bv0WTAxBSE1IQOY/GwDlJeXAAEAOQTaAdoGAAADACMAsAEvsg8BAV2wANAZsAAvGLABELAC0LACL7QPAh8CAl0wMQEjATMB2p/+/t8E2gEmAAACAG3/7APqBE4AHgAoAHyyFykqERI5sBcQsCDQALAARViwFy8bsRcaPlmwAEVYsAQvG7EEEj5ZsABFWLAALxuxABI+WbICFwQREjmyCxcEERI5sAsvsBcQsQ8BsAorWCHYG/RZshILFxESObAEELEfAbAKK1gh2Bv0WbALELEjAbAKK1gh2Bv0WTAxISYnBiMiJjU0JDMzNTQmIyIGFSM0NjYzMhYXERQXFSUyNjc1IyAVFBYDKBAKgbOgzQEB6bR0cWOGunPFdrvUBCb+C1ecI5H+rHQgUoa1i6m7VWFzZEdRl1i7pP4OlVgQjVpI3sdXYgAAAgCM/+wEIAYAAA4AGQBmshIaGxESObASELAD0ACwCC+wAEVYsAwvG7EMGj5ZsABFWLADLxuxAxI+WbAARViwBi8bsQYSPlmyBQgDERI5sgoMAxESObAMELESAbAKK1gh2Bv0WbADELEXAbAKK1gh2Bv0WTAxARQCIyInByMRMxE2IBIRJzQmIyIHERYzMjYEIOTAzXAJqrlwAYrhuZKJt1BVtIWUAhH4/tORfQYA/cOL/tb+/QW9zqr+LKrOAAEAXP/sA+wETgAdAEuyEB4fERI5ALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsQABsAorWCHYG/RZsAgQsAPQsBAQsBTQsBAQsRcBsAorWCHYG/RZMDElMjY3Mw4CIyIAETU0NjYzMhYXIyYmIyIGFRUUFgI+Y5QIrwV2xW7d/vt02ZS28QivCI9pjZuag3haXahkAScBAB+e9ojarmmHy8Aju8oAAAIAX//sA/AGAAAPABoAZrIYGxwREjmwGBCwA9AAsAYvsABFWLADLxuxAxo+WbAARViwDC8bsQwSPlmwAEVYsAgvG7EIEj5ZsgUDDBESObIKAwwREjmwDBCxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFxEzESMnBiMiAjUXFBYzMjcRJiMiBl/sv75vuaoJb8a87bmYhrBRU6yImAIm+QEvggI0+gB0iAE0+Ae40J4B8ZnSAAACAF3/7APzBE4AFQAdAGyyCB4fERI5sAgQsBbQALAARViwCC8bsQgaPlmwAEVYsAAvG7EAEj5ZshoIABESObAaL7S/Gs8aAl2xDAGwCitYIdgb9FmwABCxEAGwCitYIdgb9FmyEwgAERI5sAgQsRYBsAorWCHYG/RZMDEFIgA1NTQ2NjMyEhEVIRYWMzI2NxcGASIGByE1JiYCTdz+7HvdgdPq/SMEs4piiDNxiP7ZcJgSAh4IiBQBIfIiof2P/ur+/U2gxVBCWNEDyqOTDo2bAAABADwAAALKBhUAFQBlsg8WFxESOQCwAEVYsAgvG7EIID5ZsABFWLADLxuxAxo+WbAARViwES8bsREaPlmwAEVYsAAvG7EAEj5ZsAMQsQEBsAorWCHYG/RZsAgQsQ0BsAorWCHYG/RZsAEQsBPQsBTQMDEzESM1MzU0NjMyFwcmIyIGFRUzFSMR56uruqpAPwovNVpi5+cDq49vrr4RlglpYnKP/FUAAgBg/lYD8gROABkAJACGsiIlJhESObAiELAL0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCy8bsQsUPlmwAEVYsBcvG7EXEj5ZsgUDFxESObIPFwsREjmwCxCxEQGwCitYIdgb9FmyFQMXERI5sBcQsR0BsAorWCHYG/RZsAMQsSIBsAorWCHYG/RZMDETNBIzMhc3MxEUBiMiJic3FjMyNjU1BiMiAjcUFjMyNxEmIyIGYOrBxm8JqfnSdeA7YHesh5dvwL7rupaHr1JVqoeYAib9ASuMePvg0vJkV2+TmIpdgAEy87fRnwHum9IAAQCMAAAD3wYAABEASrIKEhMREjkAsBAvsABFWLACLxuxAho+WbAARViwBS8bsQUSPlmwAEVYsA4vG7EOEj5ZsgACBRESObACELEKAbAKK1gh2Bv0WTAxATYzIBMRIxEmJiMiBgcRIxEzAUV7xQFXA7kBaW9aiCa5uQO3l/59/TUCzHVwYE78/QYAAAACAI0AAAFoBcQAAwAMAD+yBg0OERI5sAYQsAHQALAARViwAi8bsQIaPlmwAEVYsAAvG7EAEj5ZsAIQsArQsAovsQYFsAorWCHYG/RZMDEhIxEzAzQ2MhYUBiImAVW5ucg3bDg4bDcEOgEfLT4+Wjw8AAAC/7/+SwFZBcQADAAWAEuyEBcYERI5sBAQsADQALAARViwDC8bsQwaPlmwAEVYsAMvG7EDFD5ZsQgBsAorWCHYG/RZsAwQsBXQsBUvsRAFsAorWCHYG/RZMDEBERAhIic1FjMyNjURAzQ2MzIWFAYiJgFL/uU9NCA0PkETNzU2ODhsNgQ6+0n+yBKUCENTBLsBHyw/Plo8PAAAAQCNAAAEDAYAAAwAdQCwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgAIAhESOUAVOgBKAFoAagB6AIoAmgCqALoAygAKXbIGCAIREjlAFTYGRgZWBmYGdgaGBpYGpga2BsYGCl0wMQEHESMRMxE3ATMBASMBunS5uWMBUeH+WwHW2QH1ef6EBgD8X3cBZP48/YoAAQCcAAABVQYAAAMAHQCwAEVYsAIvG7ECID5ZsABFWLAALxuxABI+WTAxISMRMwFVubkGAAAAAQCLAAAGeAROAB0AeLIEHh8REjkAsABFWLADLxuxAxo+WbAARViwCC8bsQgaPlmwAEVYsAAvG7EAGj5ZsABFWLALLxuxCxI+WbAARViwFC8bsRQSPlmwAEVYsBsvG7EbEj5ZsgEICxESObIFCAsREjmwCBCxEAGwCitYIdgb9FmwGNAwMQEXNjMyFzY2MyATESMRNCYjIgYHESMRNCMiBxEjEQE6BXfK41I2rXYBZAa5an1niAu657ZDuQQ6eIyuTmD+h/0rAsp0c3to/TICxeyb/OoEOgAAAQCMAAAD3wROABEAVLILEhMREjkAsABFWLADLxuxAxo+WbAARViwAC8bsQAaPlmwAEVYsAYvG7EGEj5ZsABFWLAPLxuxDxI+WbIBAwYREjmwAxCxCwGwCitYIdgb9FkwMQEXNjMgExEjESYmIyIGBxEjEQE7BnzIAVcDuQFpb1qIJrkEOoic/n39NQLMdXBgTvz9BDoAAgBb/+wENAROAA8AGwBFsgwcHRESObAMELAT0ACwAEVYsAQvG7EEGj5ZsABFWLAMLxuxDBI+WbETAbAKK1gh2Bv0WbAEELEZAbAKK1gh2Bv0WTAxEzQ2NjMyABUVFAYGIyIANRcUFjMyNjU0JiMiBlt934/dARF54ZLc/u+6p4yNpqmMiagCJ5/+iv7O/g2e+4wBMvwJtNrdx7Ld2gACAIz+YAQeBE4ADwAaAHCyExscERI5sBMQsAzQALAARViwDC8bsQwaPlmwAEVYsAkvG7EJGj5ZsABFWLAGLxuxBhQ+WbAARViwAy8bsQMSPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInESMRMxc2MzISESc0JiMiBxEWMzI2BB7iwcVxuakJccnD47mciKhUU6uFnQIR9/7Sff33Bdp4jP7a/voEt9SV/fuU0wAAAgBf/mAD7wROAA8AGgBtshgbHBESObAYELAD0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCC8bsQgUPlmwAEVYsAwvG7EMEj5ZsgUDDBESObIKAwwREjmxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFzczESMRBiMiAjUXFBYzMjcRJiMiBl/qxcBvCKq5cLrE6bmdhaVXWKKGngIm/wEpgW36JgIEeAEx/Ai61JICEo/VAAEAjAAAApcETgANAEeyBA4PERI5ALAARViwCy8bsQsaPlmwAEVYsAgvG7EIGj5ZsABFWLAFLxuxBRI+WbALELECAbAKK1gh2Bv0WbIJCwUREjkwMQEmIyIHESMRMxc2MzIXApcqMbZBubQDW6c2HAOUB5v9AAQ6fZEOAAABAF//7AO7BE4AJgBksgknKBESOQCwAEVYsAkvG7EJGj5ZsABFWLAcLxuxHBI+WbIDHAkREjmwCRCwDdCwCRCxEAGwCitYIdgb9FmwAxCxFQGwCitYIdgb9FmwHBCwIdCwHBCxJAGwCitYIdgb9FkwMQE0JiQmJjU0NjMyFhUjNCYjIgYVFBYEFhYVFAYjIiYmNTMWFjMyNgMCcf7npU/hr7jluoFiZXJqARWsU+i5gshxuQWLcml/AR9LUzxUdFCFuL6UTG5YR0NEPlZ5V5GvXKVgXW1VAAABAAn/7AJWBUAAFQBhsg4WFxESOQCwAEVYsAEvG7EBGj5ZsABFWLATLxuxExo+WbAARViwDS8bsQ0SPlmwARCwANCwAC+wARCxAwGwCitYIdgb9FmwDRCxCAGwCitYIdgb9FmwAxCwEdCwEtAwMQERMxUjERQWMzI3FQYjIiY1ESM1MxEBh8rKNkEgOElFfH7FxQVA/vqP/WFBQQyWFJaKAp+PAQYAAQCI/+wD3AQ6ABAAVLIKERIREjkAsABFWLAGLxuxBho+WbAARViwDS8bsQ0aPlmwAEVYsAIvG7ECEj5ZsABFWLAQLxuxEBI+WbIADQIREjmwAhCxCgGwCitYIdgb9FkwMSUGIyImJxEzERQzMjcRMxEjAyhs0a21AbnI1Ea5sGt/ycUCwP1F9p4DE/vGAAEAIQAAA7oEOgAGADiyAAcIERI5ALAARViwAS8bsQEaPlmwAEVYsAUvG7EFGj5ZsABFWLADLxuxAxI+WbIABQMREjkwMSUBMwEjATMB8QEMvf58jf54vfsDP/vGBDoAAAEAKwAABdMEOgAMAGCyBQ0OERI5ALAARViwAS8bsQEaPlmwAEVYsAgvG7EIGj5ZsABFWLALLxuxCxo+WbAARViwAy8bsQMSPlmwAEVYsAYvG7EGEj5ZsgALAxESObIFCwMREjmyCgsDERI5MDElEzMBIwEBIwEzExMzBErQuf7Flv75/wCW/sa41fyV/wM7+8YDNPzMBDr81gMqAAEAKQAAA8oEOgALAFMAsABFWLABLxuxARo+WbAARViwCi8bsQoaPlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIACgQREjmyBgoEERI5sgMABhESObIJBgAREjkwMQETMwEBIwMDIwEBMwH38Nj+ngFt1vr61wFt/p7WAq8Bi/3p/d0Blf5rAiMCFwABABb+SwOwBDoADwBKsgAQERESOQCwAEVYsAEvG7EBGj5ZsABFWLAOLxuxDho+WbAARViwBS8bsQUUPlmyAA4FERI5sQkBsAorWCHYG/RZsAAQsA3QMDEBEzMBAiMnJzUXMjY3NwEzAe78xv5NZdwjRTJeaSIp/n7KAQ8DK/sf/vIDDZYETGVuBC4AAAEAWAAAA7MEOgAJAEYAsABFWLAHLxuxBxo+WbAARViwAi8bsQISPlmxAAGwCitYIdgb9FmyBAACERI5sAcQsQUBsAorWCHYG/RZsgkFBxESOTAxJSEVITUBITUhFQE6Ann8pQJV/bQDNJeXiAMZmYMAAAEAQP6SAp4GPQAYADKyExkaERI5ALANL7AAL7IHDQAREjmwBy+yHwcBXbEGA7AKK1gh2Bv0WbITBgcREjkwMQEmJjU1NCM1MjU1NjY3FwYRFRQHFhUVEhcCeLGz1NQCr7Mm0aenA87+kjLlvMfzkfLQt+Ezc0P+5srjWVrlzv7tQgABAK/+8gFEBbAAAwATALAAL7AARViwAi8bsQIePlkwMQEjETMBRJWV/vIGvgAAAQAT/pICcgY9ABgAMrIFGRoREjkAsAsvsBgvshELGBESObARL7IfEQFdsRIDsAorWCHYG/RZsgUSERESOTAxFzYTNTQ3JjU1ECc3FhYXFRQzFSIVFRQGBxPLB7W10SaxsgHU1LWv+0EBCtznVFLpywEaQ3My4bnS75HzyrziMgABAIMBkgTvAyIAFwBEshEYGRESOQCwAEVYsA8vG7EPGD5ZsADQsA8QsBTQsBQvsQMBsAorWCHYG/RZsA8QsQgBsAorWCHYG/RZsAMQsAvQMDEBFAYjIi4CIyIGFQc0NjMyFhYXFzI2NQTvu4lIgKlKKk5UobiLTIywQB1MXwMJntk1lCRrXgKgzkChCgJ0XwACAIv+mAFmBE0AAwAMADOyBg0OERI5sAYQsADQALACL7AARViwCy8bsQsaPlmxBgWwCitYIdgb9FmyAQIGERI5MDETMxMjExQGIiY0NjIWqqgNwsk3bDg4bDcCrPvsBUwtPj5aPDwAAAEAaf8LA/kFJgAhAFSyACIjERI5ALAARViwFC8bsRQaPlmwAEVYsAovG7EKEj5ZsAfQsQABsAorWCHYG/RZsAoQsAPQsBQQsBHQsBQQsBjQsBQQsRsBsAorWCHYG/RZMDElMjY3MwYGBxUjNSYCNTU0Ejc1MxUWFhcjJiYjIgYVFRQWAkpklAivBsaQubPIyrG5lsAGrwiPaY2bm4N5WX7JGunqIgEc3CPUAR0h4t8X1JZph8vAI7vKAAEAWwAABGgFxAAhAH+yHCIjERI5ALAARViwFC8bsRQePlmwAEVYsAUvG7EFEj5Zsh8UBRESObAfL7JfHwFyso8fAXGyvx8BXbEAAbAKK1gh2Bv0WbAFELEDAbAKK1gh2Bv0WbAH0LAI0LAAELAN0LAfELAP0LAUELAY0LAUELEbAbAKK1gh2Bv0WTAxARcUByEHITUzNjY3NScjNTMDNDYzMhYVIzQmIyIGFRMhFQHBCD4C3QH7+E0oMgIIpaAJ9ci+3r9/b2mCCQE/Am7cmludnQmDYAjdnQEEx+7UsWt8mn3+/J0AAgBp/+UFWwTxABsAKgBBsgIrLBESObACELAn0ACwAEVYsAIvG7ECEj5ZsBDQsBAvsAIQsR8BsAorWCHYG/RZsBAQsScBsAorWCHYG/RZMDElBiMiJwcnNyY1NDcnNxc2MzIXNxcHFhUUBxcHARQWFjI2NjU0JiYjIgYGBE+f0c+fhoKLaHCTgpOew8SflYSXbmaPhPxgc8TixHFxxXBxxHNwhIKIh42cys6jl4iWeHmYiZqjy8SfkIgCe3vUenvTe3rTeXjUAAABAA8AAAQkBbAAFgBxsgAXGBESOQCwAEVYsAEvG7EBHj5ZsABFWLALLxuxCxI+WbIACwEREjmyBwELERI5sAcvsAPQsAMvsQUCsAorWCHYG/RZsAcQsQkCsAorWCHYG/RZsA3QsAcQsA/QsAUQsBHQsAMQsBPQsAEQsBXQMDEBATMBIRUhFSEVIREjESE1ITUhNSEBMwIbATTV/pEBBf68AUT+vMH+wgE+/sIBB/6R2AMZApf9MH2lfP6+AUJ8pX0C0AAAAgCT/vIBTQWwAAMABwAYALAAL7AARViwBi8bsQYePlmyBQEDKzAxExEzEREjETOTurq6/vIDF/zpA8gC9gACAFr+EQR5BcQANABEAISyI0VGERI5sCMQsDXQALAIL7AARViwIy8bsSMePlmyFggjERI5sBYQsT8BsAorWCHYG/RZsgIWPxESObAIELAO0LAIELERAbAKK1gh2Bv0WbIwIwgREjmwMBCxNwGwCitYIdgb9FmyHTcwERI5sCMQsCfQsCMQsSoBsAorWCHYG/RZMDEBFAcWFhUUBCMiJicmNTcUFjMyNjU0JicuAjU0NyYmNTQkMzIEFSM0JiMiBhUUFhYEHgIlJicGBhUUFhYEFzY2NTQmBHm6RUj+/ORwyUaLurSciKaO0bbAXbZCRwEL3ugBBLmoi46hOIcBH6lxOv3hWktQSzaFARwsTlSLAa+9VTGIZKjHODlxzQKCl3VgWWk+MG+bb7pYMYhkpsjizX2bc2JFUEFQSGGBqxgbE2VFRlBCUhEUZUVYbQAAAgBlBPAC7gXFAAgAEQAeALAHL7ECBbAKK1gh2Bv0WbAL0LAHELAQ0LAQLzAxEzQ2MhYUBiImJTQ2MhYUBiImZTdsODhsNwGuN2w4OGw3BVstPT1aPDwrLT4+Wjw8AAMAW//rBeYFxAAbACoAOQCZsic6OxESObAnELAD0LAnELA20ACwAEVYsC4vG7EuHj5ZsABFWLA2LxuxNhI+WbIDNi4REjmwAy+0DwMfAwJdsgouNhESObAKL7QAChAKAl2yDgoDERI5sRECsAorWCHYG/RZsAMQsRgCsAorWCHYG/RZshsDChESObA2ELEgBLAKK1gh2Bv0WbAuELEnBLAKK1gh2Bv0WTAxARQGIyImNTU0NjMyFhUjNCYjIgYVFRQWMzI2NSUUEgQgJBI1NAIkIyIEAgc0EiQgBBIVFAIEIyIkAgRfrZ6dvb+boKySX1tebGxeXF39AaABEwFAARKgnv7toaD+7J9zuwFLAYABSru0/rXGxf61tgJVmaHTtm6w06SVY1WKe3F4ilRlhKz+26amASWsqgEip6X+3KrKAVrHx/6mysX+qNHPAVgAAAIAkwKzAw8FxAAbACUAb7IOJicREjmwDhCwHdAAsABFWLAVLxuxFR4+WbIEJhUREjmwBC+wANCyAgQVERI5sgsEFRESObALL7AVELEOA7AKK1gh2Bv0WbIRCxUREjmwBBCxHAOwCitYIdgb9FmwCxCxIASwCitYIdgb9FkwMQEmJwYjIiY1NDYzMzU0IyIGFSc0NjMyFhURFBclMjY3NSMGBhUUAmoMBkyAd4KnrGx8RU+hrImFmhr+pCtYHHBTWQLBIiZWfGdveDSHNjMMZ4KPhv7EYVF7KBuOAT8zXgD//wBmAJcDZAOzACYBkvr+AAcBkgFE//4AAQB/AXcDvgMgAAUAGwCwBC+wAdCwAS+wBBCxAgGwCitYIdgb9FkwMQEjESE1IQO+uv17Az8BdwEIoQAABABa/+sF5QXEAA4AHgA0AD0ArbI2Pj8REjmwNhCwC9CwNhCwE9CwNhCwI9AAsABFWLADLxuxAx4+WbAARViwCy8bsQsSPlmxEwSwCitYIdgb9FmwAxCxGwSwCitYIdgb9FmyIAsDERI5sCAvsiIDCxESObAiL7QAIhAiAl2yNSAiERI5sDUvsr81AV20ADUQNQJdsR8CsAorWCHYG/RZsigfNRESObAgELAv0LAvL7AiELE9ArAKK1gh2Bv0WTAxEzQSJCAEEhUUAgQjIiQCNxQSBDMyJBI1NAIkIyIEAgURIxEhMhYVFAcWFxUUFxUjJjQnJicnMzY2NTQmIyNauwFLAYABSru0/rXGxf61tnOgAROgoQEUnZ3+7KGg/uyfAcCNARSZqYB6ARGRDgMQc7CcSFhOZIoC2coBWsfH/qbKxf6o0c8BWMes/tumqQEirKsBIael/tz1/q4DUYN9e0Eymj1WJhAkuRFgBIACQjZJPQAAAQCOBRYDLgWlAAMAGbIBBAUREjkAsAIvsQAQsAorWCHYG/RZMDEBITUhAy79YAKgBRaPAAIAggPAAnwFxAALABYAMQCwAEVYsAMvG7EDHj5ZsAzQsAwvsQkCsAorWCHYG/RZsAMQsRICsAorWCHYG/RZMDETNDYzMhYVFAYjIiYXMjY1NCYjIgYUFoKVamiTk2hplv82Sko2N0tLBMBonJtpapaWFkc5OktPbEoAAgBhAAAD9QTzAAsADwBIALAJL7AARViwDS8bsQ0SPlmwCRCwANCwCRCxBgGwCitYIdgb9FmwA9CwDRCxDgGwCitYIdgb9FmyBQ4GERI5tAsFGwUCXTAxASEVIREjESE1IREzASE1IQKJAWz+lKf+fwGBpwFB/L0DQwNWl/5iAZ6XAZ37DZgAAAEAQgKbAqsFuwAWAFayCBcYERI5ALAARViwDi8bsQ4ePlmwAEVYsAAvG7EAFj5ZsRYCsAorWCHYG/RZsALQsgMOFhESObAOELEIArAKK1gh2Bv0WbAOELAL0LIUFg4REjkwMQEhNQE2NTQmIyIGFSM0NiAWFRQPAiECq/2pASxtQDxLR52nAQiaa1SwAY8Cm2wBGmZFMT1MOXKUf25oa0+RAAEAPgKQApoFuwAmAIyyICcoERI5ALAARViwDi8bsQ4ePlmwAEVYsBkvG7EZFj5ZsgAZDhESObAAL7ZvAH8AjwADXbI/AAFxtg8AHwAvAANdsl8AAXKwDhCxBwKwCitYIdgb9FmyCg4ZERI5sAAQsSYEsAorWCHYG/RZshQmABESObIdGQ4REjmwGRCxIAKwCitYIdgb9FkwMQEzMjY1NCYjIgYVIzQ2MzIWFRQGBxYVFAYjIiY1MxQWMzI2NTQnIwEJVEpIP0Y5S52jfImcRkKVqoiEpp5PQ0ZJnFgEZj0wLTozKWJ7eWg3Wxkpj2p9fmstPDwzcQIAAQB7BNoCHAYAAAMAIwCwAi+yDwIBXbAA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGDAxATMBIwE84P70lQYA/toAAAEAmv5gA+4EOgASAFGyDRMUERI5ALAARViwAC8bsQAaPlmwAEVYsAcvG7EHGj5ZsABFWLAQLxuxEBQ+WbAARViwDS8bsQ0SPlmxBAGwCitYIdgb9FmyCwcNERI5MDEBERYWMzI3ETMRIycGIyInESMRAVMBZ3THPrqnCV2qk1G5BDr9h6OcmAMg+8Zzh0n+KwXaAAABAEMAAANABbAACgArsgILDBESOQCwAEVYsAgvG7EIHj5ZsABFWLAALxuxABI+WbIBAAgREjkwMSERIyIkNTQkMyERAoZU5v73AQrmAQ0CCP7W1f/6UAAAAQCTAmsBeQNJAAkAF7IDCgsREjkAsAIvsAiwCitY2BvcWTAxEzQ2MhYVFAYiJpM5cjs7cjkC2TBAQDAvPz8AAAEAdP5NAaoAAAAOAEKyBQ8QERI5ALAARViwAC8bsQASPlmwAEVYsAYvG7EGFD5ZtBMGIwYCXbIBBgAREjmwB7AKK1jYG9xZsAEQsA3QMDEhBxYVFAYjJzI2NTQmJzcBHQyZoI8HT1dAYiA0G5JhcWs0LywqCYYAAAEAegKbAe8FsAAGAEGyAQcIERI5ALAARViwBS8bsQUePlmwAEVYsAAvG7EAFj5ZsgQABRESObAEL7EDArAKK1gh2Bv0WbICAwUREjkwMQEjEQc1JTMB753YAWMSApsCWTmAdQACAHoCsgMnBcQADAAaAEKyAxscERI5sAMQsBDQALAARViwAy8bsQMePlmyChsDERI5sAovsRADsAorWCHYG/RZsAMQsRcDsAorWCHYG/RZMDETNDYzMhYVFRQGICY1FxQWMzI2NTU0JiMiBgd6vJqbvLv+zL6jYVRTX2FTUWACBGOew8GmSp/CwqUGZHJzZU5jcm5hAP//AGYAmAN4A7UAJgGTDQAABwGTAWoAAP//AFUAAAWRBa0AJwHG/9sCmAAnAZQBGAAIAQcCIALWAAAAEACwAEVYsAUvG7EFHj5ZMDH//wBQAAAFyQWtACcBlADsAAgAJwHG/9YCmAEHAcUDHgAAABAAsABFWLAJLxuxCR4+WTAx//8AbwAABe0FuwAnAZQBlwAIACcCIAMyAAABBwIfADECmwAQALAARViwIS8bsSEePlkwMQACAET+fwN4BE0AGAAiAFmyCSMkERI5sAkQsBzQALAQL7AARViwIS8bsSEaPlmyABAhERI5sgMQABESObAQELEJAbAKK1gh2Bv0WbAQELAM0LIVABAREjmwIRCxGwWwCitYIdgb9FkwMQEOAwcHFBYzMjY1MwYGIyImNTQ3NzY1ExQGIiY1NDYyFgJMASlguAsCdG1kfbkC4bfE1qBtQsE3bDg4bDcCqGp/dsFjJW1zcVuhzMmzra9xTpIBPS0+Pi0sPDwAAv/yAAAHVwWwAA8AEgB7ALAARViwBi8bsQYePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbIRBgAREjmwES+xAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmyCwAGERI5sAsvsQwBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZshIGABESOTAxISEDIQMjASEVIRMhFSETIQEhAwdX/I0P/czN4gNwA7f9TRQCTv24FgLB+q8ByB8BYf6fBbCY/imX/e0BeALdAAEAWQDOA90EYwALADgAsAMvsgkMAxESObAJL7IKCQMREjmyBAMJERI5sgEKBBESObADELAF0LIHBAoREjmwCRCwC9AwMRMBATcBARcBAQcBAVkBSv64dwFJAUl3/rgBSnf+tf61AUkBUAFPe/6xAU97/rH+sHsBUf6vAAADAHb/owUdBewAFwAgACkAaLIEKisREjmwBBCwHdCwBBCwJtAAsABFWLAQLxuxEB4+WbAARViwBC8bsQQSPlmyGhAEERI5siMQBBESObAjELAb0LAQELEdAbAKK1gh2Bv0WbAaELAk0LAEELEmAbAKK1gh2Bv0WTAxARQCBCMiJwcjNyYRNTQSJDMyFzczBxYTBRQXASYjIgIHBTQnARYzMhI3BQmQ/viwq4NhjpC+kgELrNaUZ42fiQL8LGICNGamttEDAxU4/dtbebrMAwKp1v7BqFKb58ABaFPSAUKrfaX/u/7aY/SNA4hv/uv2DbaD/I9AAQ/9AAIApgAABF0FsAANABYAWbIJFxgREjmwCRCwENAAsABFWLAALxuxAB4+WbAARViwCy8bsQsSPlmyAQALERI5sAEvshAACxESObAQL7EJAbAKK1gh2Bv0WbABELEOAbAKK1gh2Bv0WTAxAREhMhYWFRQEIyERIxETESEyNjU0JicBYAEXk9x3/vjj/u66ugEVjqCgiAWw/ttpwn7C5/7HBbD+Q/3el3h7lwEAAQCL/+wEagYSACoAa7IhKywREjkAsABFWLAFLxuxBSA+WbAARViwEy8bsRMSPlmwAEVYsAAvG7EAEj5ZsgoTBRESObIOBRMREjmwExCxGgGwCitYIdgb9FmyIBMFERI5siMFExESObAFELEoAbAKK1gh2Bv0WTAxISMRNDYzMhYVFAYVFB4CFRQGIyImJzcWFjMyNjU0LgI1NDY1NCYjIhEBRLnPurTFgEu8Vsu2UbUmKzGHNWtxSr1Xi2hY2gRX0Ouzn33LRTNfkIhMn7IsHJsgLF5SNGCTilFZz1Rea/7bAAMATv/sBnwETgAqADUAPQDKsgI+PxESObACELAu0LACELA50ACwAEVYsBcvG7EXGj5ZsABFWLAdLxuxHRo+WbAARViwAC8bsQASPlmwAEVYsAUvG7EFEj5ZsgIdABESObIMBRcREjmwDC+0vwzPDAJdsBcQsRABsAorWCHYG/RZshMMFxESObIaHQAREjmyOh0AERI5sDovtL86zzoCXbEhAbAKK1gh2Bv0WbAAELElAbAKK1gh2Bv0WbIoHQAREjmwK9CwDBCxLwGwCitYIdgb9FmwEBCwNtAwMQUgJwYGIyImNTQ2MzM1NCYjIgYVJzQ2MzIWFzY2MzISFRUhFhYzMjc3FwYlMjY3NSMGBhUUFgEiBgchNTQmBO7++4hB4o2nvOPd325oaYy48rtzsDI/rmnS6P0oB66VlHkvQJ78CUieMuR1jGoDUHOVEQIahhS0Vl6tl52uVWt7blETj7VTU09X/v/pc7C/TB+IeZZKNu0CblNNXQM0q4sfhJMAAAIAfv/sBC0GLAAdACsAVrIHLC0REjmwBxCwKNAAsABFWLAZLxuxGSA+WbAARViwBy8bsQcSPlmyDxkHERI5sA8vshEZBxESObEiAbAKK1gh2Bv0WbAHELEoAbAKK1gh2Bv0WTAxARIRFRQGBiMiJiY1NDY2MzIXJicHJzcmJzcWFzcXAycmJiMiBhUUFjMyNjUDNPl12IaH3Hlwz4GjeTCN2knAhLc576+9SWgCIYtckaKngH2ZBRX++P5nXZ79kIHghpPpgnLDjZRjg1sxnzaLgWT88zg9Sb+njMTiuAAAAwBHAKwELQS6AAMADQAXAFOyBxgZERI5sAcQsADQsAcQsBHQALACL7EBAbAKK1gh2Bv0WbACELAMsAorWNgb3FmwBrAKK1jYG9xZsAEQsBCwCitY2BvcWbAWsAorWNgb3FkwMQEhNSEBNDYyFhUUBiImETQ2MhYVFAYiJgQt/BoD5v2gOXI7O3I5OXI7O3I5Ali4ATowQEAwLz4+/P4wQEAwLj8/AAMAW/96BDQEuAAVAB0AJgBlsgQnKBESObAEELAb0LAEELAj0ACwAEVYsAQvG7EEGj5ZsABFWLAPLxuxDxI+WbEjAbAKK1gh2Bv0WbIhIwQREjmwIRCwGNCwBBCxGwGwCitYIdgb9FmyGRsPERI5sBkQsCDQMDETNDY2MzIXNzMHFhEUBgYjIicHIzcmExQXASYjIgYFNCcBFjMyNjVbe+GPbl5JfGbDfOCQaFZKfGTNuWEBVz5IiqgCZlf+rDdCi6cCJ5/9iyqUzZr+wJ7+iSOVy5UBN8JvArYg2rW2b/1QGdu5AAIAlf5gBCcGAAAPABoAZrIYGxwREjmwGBCwDNAAsAgvsABFWLAMLxuxDBo+WbAARViwBi8bsQYUPlmwAEVYsAMvG7EDEj5ZsgUMAxESObIKDAMREjmwDBCxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMQEUAiMiJxEjETMRNjMyEhEnNCYjIgcRFjMyNgQn4sHFcbm5ccLD47mciKhUU6uFnQIR9/7Sff33B6D9yoT+2v76BLfUlf37lNMAAAIAX//sBKwGAAAXACIAggCwFC+wAEVYsA0vG7ENGj5ZsABFWLADLxuxAxI+WbAARViwBi8bsQYSPlmyDxQBXbIvFAFdshMDFBESObATL7EQAbAKK1gh2Bv0WbAB0LIEBg0REjmyDw0GERI5sBMQsBbQsAYQsRsBsAorWCHYG/RZsA0QsSABsAorWCHYG/RZMDEBIxEjJwYjIgI1NTQSMzIXESE1ITUzFTMBFBYzMjcRJiMiBgSsvKoJb8a87ey/vm/++AEIubz8bJiGsFFTrIiYBNH7L3SIATT4DvkBL4IBBZeYmPypuNCeAfGZ0gACAB0AAAWIBbAAEwAXAG0AsABFWLAPLxuxDx4+WbAARViwCC8bsQgSPlmyFAgPERI5sBQvshAUDxESObAQL7AA0LAQELEXAbAKK1gh2Bv0WbAD0LAIELAF0LAUELEHAbAKK1gh2Bv0WbAXELAK0LAQELAN0LAPELAS0DAxATMVIxEjESERIxEjNTMRMxEhETMBITUhBQKGhsH9I8GGhsEC3cH8YgLd/SMEjo78AAKh/V8EAI4BIv7eASL9jsIAAQCbAAABVQQ6AAMAHQCwAEVYsAIvG7ECGj5ZsABFWLAALxuxABI+WTAxISMRMwFVuroEOgAAAQCaAAAEPwQ6AAwAaQCwAEVYsAQvG7EEGj5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsAIQsAbQsAYvsp8GAV20vwbPBgJdsi8GAV2y/wYBXbEBAbAKK1gh2Bv0WbIKAQYREjkwMQEjESMRMxEzATMBASMBv2u6ulsBjd/+PAHo6QHN/jMEOv42Acr98/3TAAEAIgAABBsFsAANAF0AsABFWLAMLxuxDB4+WbAARViwBi8bsQYSPlmyAQwGERI5sAEvsADQsAEQsQIBsAorWCHYG/RZsAPQsAYQsQQBsAorWCHYG/RZsAMQsAjQsAnQsAAQsAvQsArQMDEBJRUFESEVIREHNTcRMwFpAQf++QKy/I2GhsEDS1R9VP3PnQKRKn0qAqIAAAEAIgAAAgoGAAALAEsAsABFWLAKLxuxCiA+WbAARViwBC8bsQQSPlmyAQQKERI5sAEvsADQsAEQsQIBsAorWCHYG/RZsAPQsAbQsAfQsAAQsAnQsAjQMDEBNxUHESMRBzU3ETMBbJ6eupCQugNlPXs9/RYCozd7NwLiAAABAKL+SwTxBbAAEwBbsgYUFRESOQCwAEVYsAAvG7EAHj5ZsABFWLAQLxuxEB4+WbAARViwBC8bsQQUPlmwAEVYsA4vG7EOEj5ZsAQQsQkBsAorWCHYG/RZsg0OEBESObISDgAREjkwMQERFAYjIic3FjMyNTUBESMRMwERBPGrnD02DiU9iP0zwMACzQWw+f2ouhKaDtBHBGr7lgWw+5gEaAABAJH+SwPwBE4AGgBjsg0bHBESOQCwAEVYsAMvG7EDGj5ZsABFWLAALxuxABo+WbAARViwCi8bsQoUPlmwAEVYsBgvG7EYEj5ZsgEYAxESObAKELEPAbAKK1gh2Bv0WbADELEVAbAKK1gh2Bv0WTAxARc2MzIWFxEUBiMiJzcWMzI1ETQmIyIHESMRATcNdMuzuAKnmz02DiNCiW99r1G6BDqartDL/PSkuBKdDcIC94uAhfzUBDoAAgBo/+sHCQXEABcAIwCWsgEkJRESObABELAa0ACwAEVYsAwvG7EMHj5ZsABFWLAOLxuxDh4+WbAARViwAC8bsQASPlmwAEVYsAMvG7EDEj5ZsA4QsRABsAorWCHYG/RZshMADhESObATL7EUAbAKK1gh2Bv0WbAAELEWAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbAMELEdAbAKK1gh2Bv0WTAxISEGIyImAicRNBI2MzIXIRUhESEVIREhBTI3ESYjIgYHERQWBwn8sLJyov6MAYv+onyqA0b9LQJ3/YkC3fuMcWZtbK3CAsMVlgEPqwE1rAERlxSe/iyd/fwbDgSOD+XP/sfT6wADAGH/7AcABE4AIAAsADQAmbIGNTYREjmwBhCwJtCwBhCwMNAAsABFWLAELxuxBBo+WbAARViwCi8bsQoaPlmwAEVYsBcvG7EXEj5ZsABFWLAdLxuxHRI+WbIHChcREjmyMQoXERI5sDEvsQ4BsAorWCHYG/RZsBcQsRIBsAorWCHYG/RZshQKFxESObIaChcREjmwJNCwBBCxKgGwCitYIdgb9FmwLdAwMRM0NjYzMhYXNjYzMhYVFSEWFjMyNxcGIyImJwYGIyIANRcUFjMyNjU0JiMiBiUiBgchNTQmYXnbjonJPUHEcM/q/TIHpIa8eEqJ9YfNPz7Hhtz++Lmgi4mgoYqHogQtY5YWAg6JAieg/ol1ZGZz/ut0qsVsfoRwZGNxATD+CbfY18622dbWo4oafZYAAQCgAAACggYVAAwAM7IDDQ4REjkAsABFWLAELxuxBCA+WbAARViwAC8bsQASPlmwBBCxCQGwCitYIdgb9FkwMTMRNjYzMhcHJiMiFRGgAbCiO1QXKDO3BK6pvhWOC937YAACAF3/7AUSBcQAFwAfAF6yACAhERI5sBjQALAARViwEC8bsRAePlmwAEVYsAAvG7EAEj5ZsgUQABESObAFL7AQELEJAbAKK1gh2Bv0WbAAELEYAbAKK1gh2Bv0WbAFELEbAbAKK1gh2Bv0WTAxBSAAETUhNRACIyIHByc3NjMgABEVFAIEJzISNyEVFBYCuf7j/sED9PTdpYs9Lxae6AEuAWSc/uqnqd4P/M/TFAFZAUV1BwECARw6Go8NWP6H/rFUxf6/tp4BBdsi2uQAAAH/5P5LArwGFQAeAHSyFB8gERI5ALAARViwFS8bsRUgPlmwAEVYsBAvG7EQGj5ZsABFWLAdLxuxHRo+WbAARViwBS8bsQUUPlmwHRCxAAGwCitYIdgb9FmwBRCxCgGwCitYIdgb9FmwABCwDtCwD9CwFRCxGgGwCitYIdgb9FkwMQEjERQGIyInNxYzMjY1ESM1MzU2NjMyFwcmIyIHFTMCYMuomj0yDh5DQUerqwKvoTtUFiY8qwTLA6v7/qe3EpMNaFwEBI94p7wVkwrDegACAGX/7AWdBjcAFwAlAFWyBCYnERI5sAQQsCLQALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5Zsg8NBBESObAPELAV0LANELEbAbAKK1gh2Bv0WbAEELEiAbAKK1gh2Bv0WTAxARQCBCMiJAInNTQSJDMyFzY2NTMQBRYXBxACIyICBxUUEjMyEhEE+JD++LCr/vaVAZIBC6zwm2Bdp/75YQG+z7220QPTub/LAqnW/sGoqAE+z2TSAUGsmweDhP6zPaz2BAECARb+6/Zr+/7hARoBAQAAAgBb/+wEugSwABYAIwBVshMkJRESObATELAa0ACwAEVYsAQvG7EEGj5ZsABFWLATLxuxExI+WbIGBBMREjmwBhCwDNCwExCxGgGwCitYIdgb9FmwBBCxIQGwCitYIdgb9FkwMRM0NjYzMhc2NjUzEAcWFRUUBgYjIgA1FxQWMzI2NTU0JiMiBlt74Y/PiEdAls9JfOCQ3v7xuaeNi6epi4qoAief/YuKCGSA/t0ziqkWnv6JATP7CbTa27kQtdraAAABAIz/7AYdBgIAGgBNsgwbHBESOQCwAEVYsBIvG7ESHj5ZsABFWLAaLxuxGh4+WbAARViwDS8bsQ0SPlmyAQ0aERI5sAEQsAjQsA0QsRYBsAorWCHYG/RZMDEBFTY2NTMUBgcRBgIHByIAJxEzERQWMzI2NREEqnNhn7HCAfTTSe/+5AK+rqGjrQWw1QuJk9LRDP1+x/78FgQBAuID4Pwmnq+ungPbAAABAIj/7AUPBJAAGQBhsgcaGxESOQCwAEVYsBMvG7ETGj5ZsABFWLANLxuxDRo+WbAARViwCC8bsQgSPlmwAEVYsAUvG7EFEj5ZshUIExESObAVELAD0LIGCBMREjmwCBCxEAGwCitYIdgb9FkwMQEUBgcRIycGIyImJxEzERQzMjcRMxU+AjUFD5OgsARs0a21AbnI1Ea5REQdBJC0kwT8u2t/ycUCwP1F9p4DE4MCI0hsAAAB/7T+SwFlBDoADQApALAARViwAC8bsQAaPlmwAEVYsAQvG7EEFD5ZsQkBsAorWCHYG/RZMDEBERQGIyInNxYzMjY1EQFlqpg7NA4eQ0FIBDr7baqyEpMNaFwEkwAAAgBi/+wD6QRPABQAHABosggdHhESObAIELAV0ACwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBI+WbINAAgREjmwDS+wABCxEAGwCitYIdgb9FmyEgAIERI5sAgQsRUBsAorWCHYG/RZsA0QsRgBsAorWCHYG/RZMDEBMgAVFRQGBiciJjU1ISYmIyIHJzYBMjY3IRUUFgH/3AEOfNh60OkCzQehiLp7SYwBDmKXFf3ziQRP/tT5JJX4jQH+6XSoyGx9hvw1pIkafZYAAAEAqQTkAwYGAAAIADQAsAQvsAfQsAcvtA8HHwcCXbIFBAcREjkZsAUvGLAB0BmwAS8YsAQQsALQsgMEBxESOTAxARUjJwcjNRMzAwaZlpWZ9nAE7gqqqgwBEAAAAQCNBOMC9wX/AAgAIACwBC+wAdCwAS+0DwEfAQJdsgAEARESObAI0LAILzAxATczFQMjAzUzAcGWoP5x+50FVaoK/u4BEgr//wCOBRYDLgWlAQYAcAAAAAoAsAEvsQID9DAxAAEAgQTLAtgF1wAMACeyCQ0OERI5ALADL7IPAwFdsQkEsAorWCHYG/RZsAbQsAYvsAzQMDEBFAYgJjUzFBYzMjY1Atil/vSml0xJRk8F13mTlHhGT05HAAABAI0E7gFoBcIACAAZsgIJChESOQCwBy+xAgWwCitYIdgb9FkwMRM0NjIWFAYiJo03bDg4bDcFVy0+Plo8PAAAAgB5BLQCJwZQAAkAFAAqsgMVFhESObADELAN0ACwAy+wB9CwBy+yPwcBXbADELAN0LAHELAS0DAxARQGIyImNDYyFgUUFjMyNjQmIyIGAid8W1x7e7h7/rVDMTBEQzEyQgWAV3V2rHp6Vi9EQmJFRgAAAQAy/k8BkgA4ABAAMrIFERIREjkAsBAvsABFWLAKLxuxChQ+WbEFA7AKK1gh2Bv0WUAJDxAfEC8QPxAEXTAxIQcGFRQzMjcXBiMiJjU0NjcBfjpxTjA0DUZaWWeGey1bVkgaeSxoVlmaOAAAAQB7BNkDPgXoABcAQACwAy+wCNCwCC+0DwgfCAJdsAMQsAvQsAsvsAgQsQ8DsAorWCHYG/RZsAMQsRQDsAorWCHYG/RZsA8QsBfQMDEBFAYjIi4CIyIGFSc0NjMyHgIzMjY1Az57XCk8YSscKTp8eV0jOGAzHys5BdxshhQ+DT8xB2uMFDoSRC0AAgBeBNADLAX/AAMABwA7ALACL7AA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGLAAELAF0LAFL7ACELAG0LAGL7ADELAH0BmwBy8YMDEBMwEjAzMDIwJdz/7zqW3F2pYF//7RAS/+0QAAAgB+/msB1f+1AAsAFgA0ALADL0ALAAMQAyADMANAAwVdsAnQsAkvQAkwCUAJUAlgCQRdsgAJAV2wDtCwAxCwFNAwMRc0NjMyFhUUBiMiJjcUFjI2NTQmIyIGfmRKR2JgSUxiVzRGMDAjJTLyRmFgR0ZdXkUjMDAjJDI0AAH8pwTa/kgGAAADAB4AsAEvsADQGbAALxiwARCwAtCwAi+0DwIfAgJdMDEBIwEz/kif/v7gBNoBJgAB/W8E2v8QBgAAAwAeALACL7AB0LABL7QPAR8BAl2wAhCwA9AZsAMvGDAxATMBI/4w4P70lQYA/tr///yLBNn/TgXoAAcApfwQAAAAAf1eBNn+lAZ0AA4ALgCwAC+yDwABXbAH0LAHL0AJDwcfBy8HPwcEXbAG0LIBAAYREjmyDQAHERI5MDEBJzY2NCYjNzIWFRQGBwf9dAFLRltLB5WaTk0BBNmZBR5OJ2pnVT1QC0cAAvwnBOT/BwXuAAMABwA3ALABL7AA0BmwAC8YsAEQsAXQsAUvsAbQsAYvtg8GHwYvBgNdsAPQsAMvsAAQsATQGbAELxgwMQEjATMBIwMz/gKp/s7hAf+W9s4E5AEK/vYBCgAB/Tj+ov4T/3YACAASALACL7EHBbAKK1gh2Bv0WTAxBTQ2MhYUBiIm/Tg3bDg4bDf1LT4+Wjw8AAEAtwTuAZsGPwADAB0AsAIvsADQsAAvsg8AAV2yAwIAERI5GbADLxgwMRMzAyPtrnRwBj/+rwAAAwBxBPADgwaIAAMADAAVADgAsAsvsALQsAIvsAHQsAEvsAIQsAPQGbADLxiwCxCxBgWwCitYIdgb9FmwD9CwCxCwFNCwFC8wMQEzAyMFNDYyFhQGIiYlNDYyFhQGIiYB4bxlh/7AN2w4OGw3Ajc3bDg4bDcGiP74JS09PVo8PCstPj5aPDwA//8AkwJrAXkDSQEGAHgAAAAGALACLzAxAAEAsQAABDAFsAAFACwAsABFWLAELxuxBB4+WbAARViwAi8bsQISPlmwBBCxAAGwCitYIdgb9FkwMQEhESMRIQQw/ULBA38FEvruBbAAAAIAHwAABXMFsAADAAYAMACwAEVYsAAvG7EAHj5ZsABFWLACLxuxAhI+WbEEAbAKK1gh2Bv0WbIGAgAREjkwMQEzASElIQEChqoCQ/qsAQYDTP5nBbD6UJ0EKAAAAwBn/+wE+gXEAAMAFQAjAHqyCCQlERI5sAgQsAHQsAgQsCDQALAARViwES8bsREePlmwAEVYsAgvG7EIEj5ZsgIIERESObACL7LPAgFdsv8CAV2yLwIBXbS/As8CAnGxAQGwCitYIdgb9FmwERCxGQGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEhNSEFFAIEIyIkAic1NBIkMzIEEhcHEAIjIgIHFRQSMzISNwPA/fsCBQE6j/74saz+9pMCkgELrK8BCJECv9C7ttED0bu6zAMCk5iC1f7CqqkBOc5p0gFCq6j+xc8LAQMBFf7r9mv6/uABD/0AAAEAMgAABQMFsAAGADEAsABFWLADLxuxAx4+WbAARViwAS8bsQESPlmwAEVYsAUvG7EFEj5ZsgADARESOTAxAQEjATMBIwKa/mbOAhKsAhPPBIn7dwWw+lAAAAMAeAAABCEFsAADAAcACwBSALAARViwCC8bsQgePlmwAEVYsAIvG7ECEj5ZsQABsAorWCHYG/RZsAIQsAXQsAUvsi8FAV2xBgGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FkwMTchFSETIRUhAyEVIXgDqfxXVwLy/Q5TA5T8bJ2dAz+dAw6eAAABALIAAAUBBbAABwA5ALAARViwBi8bsQYePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAGELECAbAKK1gh2Bv0WTAxISMRIREjESEFAcH9MsAETwUS+u4FsAAAAQBFAAAERAWwAAwAPgCwAEVYsAgvG7EIHj5ZsABFWLADLxuxAxI+WbEBAbAKK1gh2Bv0WbAF0LAIELEKAbAKK1gh2Bv0WbAH0DAxAQEhFSE1AQE1IRUhAQLy/kMDD/wBAeH+HwPO/SQBuwLO/c+djwJKAkeQnv3UAAADAE0AAAV0BbAAFQAcACMAbrIKJCUREjmwChCwGdCwChCwINAAsABFWLAULxuxFB4+WbAARViwCS8bsQkSPlmyExQJERI5sBMvsADQsggJFBESObAIL7AL0LAIELEhAbAKK1gh2Bv0WbAZ0LATELEaAbAKK1gh2Bv0WbAg0DAxARYEFhUUBgYHFSM1JgA1NDY3Njc1MwEUFhcRBgYFNCYnETY2A0KhAQGQj/+kwvv+yH10i7fC/crCsrTAA6nBsrS/BPcDivqcnvqJBK+vBAEv8JTuSVcDuf0iuMgEAwkEyrW1ygT89wTLAAABAFoAAAUhBbAAGABdsgAZGhESOQCwAEVYsAQvG7EEHj5ZsABFWLARLxuxER4+WbAARViwFy8bsRcePlmwAEVYsAsvG7ELEj5ZshYECxESObAWL7AA0LAWELENAbAKK1gh2Bv0WbAK0DAxATY2NREzERQGBgcRIxEmACcRMxEWFhcRMwMWnK7Bf+2fwef+7wPAAaWVwQILF9eqAg398J/1kw/+lgFqFwEq7QIY/e+j1xkDpAABAHEAAATLBcQAJABeshklJhESOQCwAEVYsBkvG7EZHj5ZsABFWLAOLxuxDhI+WbAARViwIy8bsSMSPlmwDhCxEAGwCitYIdgb9FmwDdCwANCwGRCxBgGwCitYIdgb9FmwEBCwIdCwItAwMSU2Ejc1NCYgBhUVFBIXFSE1MyYCNTU0EjYzMhYSFxUUAgczFSEC4YqaA8L+rsCdkf4U3Wp4jf6hoP2OA3hq3P4cohsBHOqG5/b65XHw/tgcop1mATOib7oBJJ+c/uS0gqD+zWadAAACAGT/6wR3BE4AFgAhAH+yHyIjERI5sB8QsBPQALAARViwEy8bsRMaPlmwAEVYsBYvG7EWGj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmwCBCxAwGwCitYIdgb9FmyChMIERI5shUTCBESObAMELEaAbAKK1gh2Bv0WbATELEfAbAKK1gh2Bv0WTAxAREWMzI3FwYjIicGIyICNTUQEjMyFzcBFBYzMjcRJiMiBgPuAk4TDxcwSpMma9HA5OLEy2sR/cySh61SVaiGlQQ6/OOMBYkipaUBG/QPAQgBPaGN/bqvw7oBvrzjAAIAoP6ABE0FxAAUACoAbLIAKywREjmwGNAAsA8vsABFWLAALxuxAB4+WbAARViwDC8bsQwSPlmyKAAMERI5sCgvsSUBsAorWCHYG/RZsgYlKBESObIODAAREjmwABCxGAGwCitYIdgb9FmwDBCxHwGwCitYIdgb9FkwMQEyFhUUBgcWFhUUBiMiJxEjETQ2NgE0JiMiBgcRFhYzMjY1NCYnIzUzMjYCXcHrYlh7g/nNtXi6es8BZ4hrbJYBLJBehpqMbZZVeH4FxNuuW5guLcOCze9f/jUFsWy8a/57ZoeOa/zDND+ggXalA5h3AAABAC7+YAPfBDoACAA4sgAJChESOQCwAEVYsAEvG7EBGj5ZsABFWLAHLxuxBxo+WbAARViwBC8bsQQUPlmyAAcEERI5MDEBATMBESMRATMCCgEYvf6Fuv6EvQEUAyb7//4nAeAD+gACAGD/7AQnBhwAHgAqAGGyFCssERI5sBQQsCLQALAARViwAy8bsQMgPlmwAEVYsBQvG7EUEj5ZsAMQsQgBsAorWCHYG/RZshsUAxESObAbL7EoC7AKK1gh2Bv0WbAM0LAUELEiAbAKK1gh2Bv0WTAxEzQ2MzIXByYjIgYVFAQSFxUUBgYjIgA1NTQSNycmJhMUFjMyNjU0JiciBt3Lr4uGApd8VmUBu88FdtuR3v75vJABY2s+oYmIoKl9iKQE9YifN6A7SD5smf7zxCeZ84UBJ/INpQEIIwUnjP1jsMvKxojbGc0AAAEAY//sA+wETQAlAHKyAyYnERI5ALAARViwFS8bsRUaPlmwAEVYsAovG7EKEj5ZsQMBsAorWCHYG/RZsAoQsAbQsAoQsCLQsCIvsi8iAV2yvyIBXbEjAbAKK1gh2Bv0WbIPIyIREjmyGRUiERI5sBUQsRwBsAorWCHYG/RZMDEBFBYzMjY1MxQGIyImNTQ3JiY1NDYzMhYVIzQmIyIGFRQzMxUjBgEek3Zxm7n/xsz4zVhi58q6+bmPa3CH9MTg6gEwTWJuUZu5sZO6QiR6SZSms45GZVtKoJQGAAABAG3+gQPDBbAAHwBNsgggIRESOQCwDy+wAEVYsAAvG7EAHj5ZsR0BsAorWCHYG/RZsAHQshUgABESObICFQAREjmwFRCxBwGwCitYIdgb9FmyHAAVERI5MDEBFQEGBhUUFhcXFhYVBgYHJzY2NTQkJyYmNTQSNwEhNQPD/qKKZkNS91FHAmxDYi8z/sw2Z1uSfwEd/YMFsHj+VaHlhVphGUgYWE5FrDZUNVUtRE4YLZmBggFAlgFDmAABAJH+YQPwBE4AEgBUsgwTFBESOQCwAEVYsAMvG7EDGj5ZsABFWLAALxuxABo+WbAARViwBy8bsQcUPlmwAEVYsBAvG7EQEj5ZsgEQAxESObADELEMAbAKK1gh2Bv0WTAxARc2MzIWFxEjETQmIyIGBxEjEQE4C3jIvq4BuWyAXIIiugQ6iJzFzPukBFGIfFdO/O8EOgADAHr/7AQSBcQADQAWAB4AlbIDHyAREjmwAxCwE9CwAxCwG9AAsABFWLAKLxuxCh4+WbAARViwAy8bsQMSPlmyDgMKERI5sA4vsl8OAV2y/w4BXbSPDp8OAnG0vw7PDgJxsi8OAXGyzw4BXbIvDgFdtO8O/w4CcbAKELETAbAKK1gh2Bv0WbAOELEYAbAKK1gh2Bv0WbADELEbAbAKK1gh2Bv0WTAxARACIyICAzUQEjMyEhMFITU0JiMiBhUFIRUUFiA2NwQS7N/b7gTs397rBP0hAiWLiIaMAiX925IBBI0CAoD+v/6tAUwBNM0BPQFO/rz+zSw34/Hx488n5frw4wABAMP/9AJLBDoADAApALAARViwAC8bsQAaPlmwAEVYsAkvG7EJEj5ZsQQBsAorWCHYG/RZMDEBERQWMzI3FwYjIhERAXw3QDAnAUZJ+QQ6/Nc/QAyXEwEmAyAAAAEAJf/vBDsF7gAaAFKyEBscERI5ALAAL7AARViwCy8bsQsSPlmwAEVYsBEvG7EREj5ZsAsQsQcBsAorWCHYG/RZshAACxESObAQELAT0LAAELEXAbAKK1gh2Bv0WTAxATIWFwEWFjM3FwYjIiYmJwMBIwEnJiYjByc2AQVieCEBqxQtIyYGJCpNTj4d5v7izgGKYBc1LS8BKgXuUF/7qzMnA5gMJVZQAlH89QQF6zguAo4MAAEAZf53A6kFxAAtAFmyAy4vERI5ALAXL7AARViwKy8bsSsePlmxAgGwCitYIdgb9FmyCC4rERI5sAgvsQkBsAorWCHYG/RZsh4uKxESObAeELEPAbAKK1gh2Bv0WbIlCQgREjkwMQEmIyIGFRQhMxUjBgYVFBYEFhcWFRQGByc3NjU0LgQ1NDY3JiY1NCQzMhcDcoRhjaABTYWWtseQAQ98IE9oSGs5MUzmqXdBpJZ2gwEC5JFwBQgkZ1XbmAKco3CdQSUUMWlApz1UQDw+Jy4zQmmZb5HLLiqYYJ+5JwAAAQAp//QEpAQ6ABQAXrILFRYREjkAsABFWLATLxuxExo+WbAARViwCi8bsQoSPlmwAEVYsA8vG7EPEj5ZsBMQsQABsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA3QsA7QsBHQsBLQMDEBIxEUFjMyNxcGIyIRESERIxEjNSEEcZw2QTAnAUZJ+f5vuakESAOh/XJAQQyXEwEmAof8XwOhmQACAJH+YAQfBE4ADwAbAFmyEhwdERI5sBIQsADQALAARViwAC8bsQAaPlmwAEVYsAovG7EKFD5ZsABFWLAHLxuxBxI+WbIJAAcREjmxEgGwCitYIdgb9FmwABCxGAGwCitYIdgb9FkwMQEyEhcXFAIjIicRIxE0NjYDFjMyNjU0JiMiBhUCUM/0CwHgv8NyunHNhFOrh5aRhXWQBE7+5v5C8P7ofP34A+Se7ID8yJPDw83g2KkAAAEAZf6KA+EETgAiAEuyACMkERI5ALAUL7AARViwAC8bsQAaPlmwAEVYsBsvG7EbEj5ZsAAQsATQsAAQsQcBsAorWCHYG/RZsBsQsQ0BsAorWCHYG/RZMDEBMhYVIzQmIyIGFRUQBRcWFhUGBgcnNzY1NCYnJgI1NTQ2NgI9veevhm+EmwFAhmJQAmNKYi8xRlbs+HfXBE7VtG6D27Mg/vxjJh1gUD+nPlU2PEYrKxM0AQHTKpj7iQACAGD/7AR7BDoAEQAdAE6yCB4fERI5sAgQsBXQALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsBAQsQABsAorWCHYG/RZsAgQsRUBsAorWCHYG/RZsAAQsBvQMDEBIRYRFRQGBiMiADU1NDY2NyEBFBYzMjY1NCYjIgYEe/7kyHrdjNr+9nbZjAJA/J+gioufoYuJnwOhlP7vEYzriAEv/w2Y8ogB/de319nLrM7MAAEAUf/sA9kEOgAQAEuyChESERI5ALAARViwDy8bsQ8aPlmwAEVYsAkvG7EJEj5ZsA8QsQABsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAAQsA3QsA7QMDEBIREUMzI3FwYjIiYnESE1IQPZ/o1pKzEqTGp9dQH+pQOIA6T9aYUagjSTkgKTlgABAI//7AP2BDoAEgA9sg4TFBESOQCwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBo+WbAARViwDi8bsQ4SPlmxAwGwCitYIdgb9FkwMQEREDMyNjUmAzMWERAAIyImJxEBScmBqgV2w3H+/9rCyAIEOv15/s/6tucBIfH+6f75/sHg1wKXAAACAFf+IgVMBDoAGQAiAF6yDyMkERI5sA8QsBrQALAYL7AARViwBi8bsQYaPlmwAEVYsBAvG7EQGj5ZsABFWLAXLxuxFxI+WbAA0LAXELEaAbAKK1gh2Bv0WbAM0LAQELEgAbAKK1gh2Bv0WTAxBSQANTQSNxcGBxQWFxE0NjMyFhYVFAAFESMTNjY1JiYjIhUCbP8A/uuBf2WhCrWminGC4YL+3v77ubmqxAWlgkIRFwEz+6gBB1eFjPWt5RoCzGl9jfiV8/7XFf4zAmYW3qSp2FIAAAEAX/4oBUMEOgAZAFmyABobERI5ALANL7AARViwAC8bsQAaPlmwAEVYsAYvG7EGGj5ZsABFWLATLxuxExo+WbAARViwDC8bsQwSPlmxAQGwCitYIdgb9FmwDBCwD9CwARCwGNAwMQERNjY1JgMzFhEQAAURIxEmABERMxEWFhcRAxyrwwV6wnb+4/72uf/++7oCpqIEOvxOGOWy6AEb7P7p/v3+0BX+OQHJGgE2ARMB5v4OwuQZA7EAAAEAev/sBhkEOgAjAFuyGyQlERI5ALAARViwAC8bsQAaPlmwAEVYsBMvG7ETGj5ZsABFWLAZLxuxGRI+WbAARViwHi8bsR4SPlmxBQGwCitYIdgb9FmyCQAeERI5sA7QshsTGRESOTAxAQIHFBYzMjY1ETMRFhYzMjY1JgMzFhEQAiMiJwYGIyICERA3AcSKB3JqbHG7AXFranIHisOHz7zwVSmkd7zPhwQ6/uXvy+OtpgEt/s6kquLM7wEb9P7q/u3+z+51eQExARMBH+sAAgB5/+wEeQXGAB8AKABxshQpKhESObAUELAm0ACwAEVYsBkvG7EZHj5ZsABFWLAGLxuxBhI+WbIdGQYREjmwHS+xAgGwCitYIdgb9FmyCxkGERI5sAYQsQ8BsAorWCHYG/RZsAIQsBPQsB0QsCPQsBkQsSYBsAorWCHYG/RZMDEBBgcVBgYjIiY1ETcRFBYzMjY1NSYANTQ2MzIWFRE2NwEUFhcRJiMiFQR5PFMC5cjL97qMfHSC2f7zuJafsj9I/ZSiigWTlAJzFwmm0+731wFHAv6wj5uSmKYfARrZoLvFsv6hBRMBUoW9HgFoxsQAAf/aAAAEbgW8ABoASrIAGxwREjkAsABFWLAELxuxBB4+WbAARViwFy8bsRcePlmwAEVYsA0vG7ENEj5ZsgAEDRESObAEELEJAbAKK1gh2Bv0WbAS0DAxARM2NjMyFwcmIyIHAREjEQEmIyIHJzYzMhYXAiThK2tXSDQkDSdGJP7Xv/7YJ0MnDSQ0R1hrKgMGAftjWBuXCE/9d/3GAjwCh08IlhxUXQAAAgBK/+wGGwQ6ABIAJgBysggnKBESObAIELAe0ACwAEVYsBEvG7ERGj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwERCxAAGwCitYIdgb9FmyCBEGERI5sA/QsBDQsBXQsBbQsAoQsRsBsAorWCHYG/RZsh8KERESObAk0DAxASMWFRACIyInBiMiAhE0NyM1IQEmJyEGBxQWMzI2NxEzERYWMzI2BhuIQLyr8VNT8Kq9QHQF0f7+BEr8u0sEYFhpcQK7AnFqVmADoazF/u/+ze/vATABFL+ymf32qsfIqcvjp6IBB/75oqfiAAEAKv/1BbEFsAAYAGSyERkaERI5ALAARViwFy8bsRcePlmwAEVYsAkvG7EJEj5ZsBcQsQABsAorWCHYG/RZsgQXCRESObAEL7AJELEKAbAKK1gh2Bv0WbAEELEQAbAKK1gh2Bv0WbAAELAV0LAW0DAxASERNjMyBBAEIycyNjUmJiMiBxEjESE1IQSU/fadhPQBEv787QKbmAKjopaKwf5hBGoFEv45MPH+TuOWkZSOli79WgUSngABAHv/7ATcBcQAHwCJsgMgIRESOQCwAEVYsAsvG7ELHj5ZsABFWLADLxuxAxI+WbALELAP0LALELESAbAKK1gh2Bv0WbIWAwsREjmwFi+0vxbPFgJxss8WAV2ynxYBcbL/FgFdsi8WAV2yXxYBcrKPFgFysRcBsAorWCHYG/RZsAMQsRwBsAorWCHYG/RZsAMQsB/QMDEBBgQjIAARNTQSJDMyABcjJiYjIgIHIRUhFRQSMzI2NwTcG/7h7v7+/smPAQuw6AEYF8AZp5e5zgICOv3GxrKgqxwBzuf7AXIBNovJATWn/v3lrJ7+8eqdAu3+6JG0AAACADEAAAg7BbAAGAAhAHeyCSIjERI5sAkQsBnQALAARViwAC8bsQAePlmwAEVYsAgvG7EIEj5ZsABFWLAQLxuxEBI+WbIBAAgREjmwAS+wABCxCgGwCitYIdgb9FmwEBCxEgGwCitYIdgb9FmwARCxGQGwCitYIdgb9FmwEhCwGtCwG9AwMQERIRYEFRQEByERIQMCAgYHIzU3PgI3EwERITI2NTQmJwTuAWneAQb+/t790/4AGg9ZrJA/KF1kNAseA3cBX4yinYoFsP3LA/DLxvMEBRL9v/7e/tyJAp0CB2vq8wLC/S39wJ6EgJwCAAACALEAAAhNBbAAEgAbAIWyARwdERI5sAEQsBPQALAARViwEi8bsRIePlmwAEVYsAIvG7ECHj5ZsABFWLAPLxuxDxI+WbAARViwDC8bsQwSPlmyAAIPERI5sAAvsgQMAhESObAEL7AAELEOAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbAMELEUAbAKK1gh2Bv0WTAxASERMxEhFgQVFAQHIREhESMRMwERITI2NTQmJwFyAs7AAWriAQH+/9/90/0ywcEDjgFfjqCYigM5Anf9ngPivb/pBAKc/WQFsP0B/fWOenSMAwAAAQA+AAAF1AWwABUAX7IOFhcREjkAsABFWLAULxuxFB4+WbAARViwCC8bsQgSPlmwAEVYsBAvG7EQEj5ZsBQQsQABsAorWCHYG/RZsgQUCBESObAEL7ENAbAKK1gh2Bv0WbAAELAS0LAT0DAxASERNjMyFhcRIxEmJiMiBxEjESE1IQSm/fCgr/ryA8EBiaSppsD+aARoBRL+UCja3f4tAc6Yhir9PgUSngABALD+mQT/BbAACwBJALAJL7AARViwAC8bsQAePlmwAEVYsAQvG7EEHj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmxAgGwCitYIdgb9FmwA9AwMRMzESERMxEhESMRIbDBAs7A/kDB/jIFsPrtBRP6UP6ZAWcAAAIAogAABLEFsAAMABUAXrIPFhcREjmwDxCwA9AAsABFWLALLxuxCx4+WbAARViwCS8bsQkSPlmwCxCxAAGwCitYIdgb9FmyAgsJERI5sAIvsQ0BsAorWCHYG/RZsAkQsQ4BsAorWCHYG/RZMDEBIREhFgQVFAQHIREhAREhMjY1NCYnBCH9QgFq5AEA/v7f/dIDf/1CAV+Pn5mNBRL+TAPkxMXqBAWw/RD93ZiAe44CAAACADL+mgXJBbAADgAVAF2yEhYXERI5sBIQsAvQALAEL7AARViwCy8bsQsePlmwAEVYsAIvG7ECEj5ZsAQQsAHQsAIQsQYBsAorWCHYG/RZsA3QsA7QsA/QsBDQsAsQsREBsAorWCHYG/RZMDEBIxEhESMDMzYSNxMhETMhIREhAwYCBce/++vAAXdebw4gA2e++7sCxv4TFQ1r/psBZf6aAgNqAWXVAm/67QR1/lT7/p4AAQAbAAAHNQWwABUAhwCwAEVYsAkvG7EJHj5ZsABFWLANLxuxDR4+WbAARViwES8bsREePlmwAEVYsAIvG7ECEj5ZsABFWLAGLxuxBhI+WbAARViwFC8bsRQSPlmwAhCwENCwEC+yLxABXbLPEAFdsQABsAorWCHYG/RZsATQsggQABESObAQELAL0LITABAREjkwMQEjESMRIwEjAQEzATMRMxEzATMBASMEqJzApf5k8AHq/jzjAYOlwJ4Bg+L+PAHq7wKY/WgCmP1oAwACsP2IAnj9iAJ4/VH8/wAAAQBQ/+wEagXEACgAdbIDKSoREjkAsABFWLALLxuxCx4+WbAARViwFi8bsRYSPlmwCxCxAwGwCitYIdgb9FmwCxCwBtCyJRYLERI5sCUvss8lAV2ynyUBcbEkAbAKK1gh2Bv0WbIRJCUREjmwFhCwG9CwFhCxHgGwCitYIdgb9FkwMQE0JiMiBhUjNDY2MzIEFRQGBwQVFAQjIiYmNTMUFjMyNjUQJSM1MzY2A5SpmYCtwH/kivQBDnxvAQH+3PSR7YTAtoydu/7DtLOSlgQpdImNaHS4Z9vDZaYwVv/E5me+g3OZkngBAAWeA34AAAEAsQAABP8FsAAJAF0AsABFWLAALxuxAB4+WbAARViwBy8bsQcePlmwAEVYsAIvG7ECEj5ZsABFWLAFLxuxBRI+WbIEAAIREjlACYoEmgSqBLoEBF2yCQACERI5QAmFCZUJpQm1CQRdMDEBMxEjEQEjETMRBD/AwP0zwcEFsPpQBGL7ngWw+54AAAEALwAABPYFsAARAE+yBBITERI5ALAARViwAC8bsQAePlmwAEVYsAEvG7EBEj5ZsABFWLAJLxuxCRI+WbAAELEDAbAKK1gh2Bv0WbAJELELAbAKK1gh2Bv0WTAxAREjESEDAgIGByM1Nz4CNxME9sD99hoPWayQPyhdZDQLHgWw+lAFEv2//t7+3IkCnQIHa+rzAsIAAAEATf/rBMsFsAARAEuyBBITERI5ALAARViwAS8bsQEePlmwAEVYsBAvG7EQHj5ZsABFWLAHLxuxBxI+WbIAAQcREjmxCwGwCitYIdgb9FmyDwcQERI5MDEBATMBDgIjIic3FzI/AgEzAp0BT9/9/TRaeVtPFgZbaTMZJv4Q1wJjA037Q3RhMwmYBGU0WQQ2AAMAU//EBeMF7AAYACEAKgBdsgwrLBESObAMELAg0LAMELAi0ACwCy+wFy+yFRcLERI5sBUvsADQsgkLFxESObAJL7AN0LAVELEZAbAKK1gh2Bv0WbAJELEkAbAKK1gh2Bv0WbAf0LAZELAi0DAxATMWBBIVFAIEByMVIzUjIiQCEBIkMzM1MwMiBhUUFjMzETMRMzI2NTQmIwN4H6UBEJeY/vSkI7ocp/7vl5cBEaccuta829q/Grocv9fXwwUeAZj+9aWm/vKXAsTEmAEMAU4BDJjO/pvnzc7lA2f8mevKyOoAAAEAr/6hBZcFsAALADwAsAkvsABFWLAALxuxAB4+WbAARViwBC8bsQQePlmwAEVYsAovG7EKEj5ZsQIBsAorWCHYG/RZsAbQMDETMxEhETMRMwMjESGvwQLOwJkSrfvXBbD67QUT+vH+AAFfAAEAlgAABMgFsAASAEeyBRMUERI5ALAARViwAC8bsQAePlmwAEVYsAovG7EKHj5ZsABFWLABLxuxARI+WbIPAAEREjmwDy+xBgGwCitYIdgb9FkwMQERIxEGBiMiJicRMxEWFjMyNxEEyMFprG758gPBAYmjvsUFsPpQAlseF9jfAdP+MpiGNgK2AAEAsAAABtcFsAALAEkAsABFWLAALxuxAB4+WbAARViwAy8bsQMePlmwAEVYsAcvG7EHHj5ZsABFWLAJLxuxCRI+WbEBAbAKK1gh2Bv0WbAF0LAG0DAxAREhETMRIREzESERAXEB9b8B8sD52QWw+u0FE/rtBRP6UAWwAAABALD+oQdqBbAADwBVALALL7AARViwAC8bsQAePlmwAEVYsAMvG7EDHj5ZsABFWLAHLxuxBx4+WbAARViwDS8bsQ0SPlmxAQGwCitYIdgb9FmwBdCwBtCwCdCwCtCwAtAwMQERIREzESERMxEzAyMRIREBcQH1vwHywJMSpfn9BbD67QUT+u0FE/rn/goBXwWwAAIAEAAABbgFsAAMABUAYbIBFhcREjmwARCwDdAAsABFWLAALxuxAB4+WbAARViwCS8bsQkSPlmyAgAJERI5sAIvsAAQsQsBsAorWCHYG/RZsAIQsQ0BsAorWCHYG/RZsAkQsQ4BsAorWCHYG/RZMDETIREhMgQVFAQHIREhAREhMjY1NCYnEAJbAVrvAQT+/uL91v5mAlsBX46fmYwFsP2u5cbF6wMFGP2o/d2YgHuOAgADALIAAAYwBbAACgATABcAb7ISGBkREjmwEhCwBtCwEhCwFdAAsABFWLAJLxuxCR4+WbAARViwFi8bsRYePlmwAEVYsAcvG7EHEj5ZsABFWLAULxuxFBI+WbIACQcREjmwAC+xCwGwCitYIdgb9FmwBxCxDAGwCitYIdgb9FkwMQEhFgQVFAQHIREzEREhMjY1NCYnASMRMwFyAWrkAQD+/t/908ABX4+fmY0DV8DAA14D5MTF6gQFsP0Q/d2YgHuOAv1ABbAAAAIAowAABLEFsAAKABMAT7INFBUREjmwDRCwAdAAsABFWLAJLxuxCR4+WbAARViwBy8bsQcSPlmyAAkHERI5sAAvsQsBsAorWCHYG/RZsAcQsQwBsAorWCHYG/RZMDEBIRYEFRQEByERMxERITI2NTQmJwFjAWrkAQD+/t/908ABX4+fmY0DXgPkxMXqBAWw/RD93ZiAe44CAAABAJP/7AT0BcQAHwCSsgwgIRESOQCwAEVYsBMvG7ETHj5ZsABFWLAcLxuxHBI+WbAA0LAcELEDAbAKK1gh2Bv0WbIIHBMREjmwCC+07wj/CAJxss8IAV2yLwgBcbS/CM8IAnGynwgBcbL/CAFdsi8IAV2yXwgBcrKPCAFysQYBsAorWCHYG/RZsBMQsQwBsAorWCHYG/RZsBMQsA/QMDEBFhYzMhI3ITUhNAIjIgYHIzYAMzIEEhUVFAIEIyIkJwFUHKugrckC/cMCPc+6lqcZwRcBGOiwAQuPjv79qO7+4RsBzrSRAQ7wnu0BFJyu5QEDp/7LyZHJ/syl++cAAAIAt//sBtoFxAAXACUApLIhJicREjmwIRCwEtAAsABFWLATLxuxEx4+WbAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsABFWLAKLxuxChI+WbIPCg0REjmwDy+yXw8BXbL/DwFdtE8PXw8CcbSPD58PAnGyLw8BcbLPDwFdsi8PAV2yzw8BcbEIAbAKK1gh2Bv0WbATELEbAbAKK1gh2Bv0WbAEELEiAbAKK1gh2Bv0WTAxARQCBCMiJAInIxEjETMRMzYSJDMyBBIVJxACIyICBxUUEjMyEjcG2pD++LCm/vmVCNHAwNADkAEKrK8BC5C/0Lu20QPTubrMAwKp1v7BqKABKsf9gwWw/WTOATerqf6/1QIBAwEV/uv2a/v+4QEP/QACAFkAAARkBbAADAAVAGOyEBYXERI5sBAQsArQALAARViwCi8bsQoePlmwAEVYsAAvG7EAEj5ZsABFWLADLxuxAxI+WbIRCgAREjmwES+xAQGwCitYIdgb9FmyBQEKERI5sAoQsRIBsAorWCHYG/RZMDEhESEBIwEkETQkMyERARQWFyERISIGA6P+sP7TzQFS/uYBEfMBz/ztpZMBGv7vnKUCN/3JAmxvAR7Q5/pQA/mEoAECPpQAAgBh/+wEKAYRABsAKABkshwpKhESObAcELAI0ACwAEVYsBIvG7ESID5ZsABFWLAILxuxCBI+WbIAEggREjmwAC+yFwASERI5sg8SFxESObIaAAgREjmxHAGwCitYIdgb9FmwCBCxIwGwCitYIdgb9FkwMQEyEhUVFAYGIyIANTUQEjc2NjUzFAYHBwYGBzYXIgYVFRQWMzI2NTQmAmfM9XbdkNr+9v33jGKYcXyKpaUZk6+IoKGJiqChA/z+798RmfGFASP1WgFVAZIsGUg/fYwdHye5mqqYt6IQrsvMxJm5AAMAnQAABCkEOgAOABYAHACRshgdHhESObAYELAC0LAYELAW0ACwAEVYsAEvG7EBGj5ZsABFWLAALxuxABI+WbIXAQAREjmwFy+0vxfPFwJdtJ8XrxcCcbL/FwFdsg8XAXG0Lxc/FwJdtG8XfxcCcrEPAbAKK1gh2Bv0WbIIDxcREjmwABCxEAGwCitYIdgb9FmwARCxGwGwCitYIdgb9FkwMTMRITIWFRQGBxYWFRQGIwERITI2NTQjJTMgECcjnQGm2OdaWGJ328j+0AEydHPu/tXvAQT2/QQ6l5JLeSAXhl2VngHb/rpWTqKUATAFAAEAmgAAA0cEOgAFACwAsABFWLAELxuxBBo+WbAARViwAi8bsQISPlmwBBCxAAGwCitYIdgb9FkwMQEhESMRIQNH/g26Aq0DofxfBDoAAAIALv7CBJMEOgAOABQAXbISFRYREjmwEhCwBNAAsAwvsABFWLAELxuxBBo+WbAARViwCi8bsQoSPlmxAAGwCitYIdgb9FmwBtCwB9CwDBCwCdCwBxCwD9CwENCwBBCxEQGwCitYIdgb9FkwMTc3NhMTIREzESMRIREjEyEhESEDAoNAbA8RArmLuf0NuQEBLwHx/rMLEZdPjAEYAbD8Xf4rAT7+wgHVAvj+/v69AAEAFQAABgQEOgAVAJEAsABFWLAJLxuxCRo+WbAARViwDS8bsQ0aPlmwAEVYsBEvG7ERGj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmwAEVYsBQvG7EUEj5ZsAIQsBDQsBAvsr8QAV2y/xABXbIvEAFdss8QAXGxAAGwCitYIdgb9FmwBNCyCBAAERI5sBAQsAvQshMAEBESOTAxASMRIxEjASMBATMBMxEzETMBMwEBIwPrgrmC/tHqAYP+ouABF3+5fgEZ4P6hAYPqAdb+KgHW/ioCMAIK/kABwP5AAcD99f3RAAABAFj/7QOsBE0AJgCJsgMnKBESOQCwAEVYsAovG7EKGj5ZsABFWLAVLxuxFRI+WbAKELEDAbAKK1gh2Bv0WbIlChUREjmwJS+0LyU/JQJdtL8lzyUCXbSfJa8lAnG0byV/JQJysgYlChESObEiAbAKK1gh2Bv0WbIQIiUREjmyGRUKERI5sBUQsRwBsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYVFAYjIiY1MxQWMzI2NTQmIyM1MzYC33RlYoO47LG+1FhRvebAu/O4jWlqgm1zucm9AxJMWWZFjbSjl0l6JEC8la63nE9xYk5bT5wFAAABAJwAAAQBBDoACQBFALAARViwAC8bsQAaPlmwAEVYsAcvG7EHGj5ZsABFWLACLxuxAhI+WbAARViwBS8bsQUSPlmyBAcCERI5sgkHAhESOTAxATMRIxEBIxEzEQNIubn+Dbm5BDr7xgMV/OsEOvzqAAABAJwAAAQ/BDoADAB4ALAARViwBC8bsQQaPlmwAEVYsAgvG7EIGj5ZsABFWLACLxuxAhI+WbAARViwCy8bsQsSPlmwAhCwBtCwBi+ynwYBXbL/BgFdss8GAXGynwYBcbS/Bs8GAl2yLwYBXbJvBgFysQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwHdh7q6eQFs4P5UAdDrAc3+MwQ6/jYByv34/c4AAAEALAAABAMEOgAPAE+yBBARERI5ALAARViwAC8bsQAaPlmwAEVYsAEvG7EBEj5ZsABFWLAILxuxCBI+WbAAELEDAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WTAxAREjESEDAgYHIzU3NjY3EwQDuv6QFhKXpEo1Wk4LFAQ6+8YDof5r/unwBaMECrz+Ac8AAAEAnQAABVIEOgAMAFkAsABFWLABLxuxARo+WbAARViwCy8bsQsaPlmwAEVYsAMvG7EDEj5ZsABFWLAGLxuxBhI+WbAARViwCS8bsQkSPlmyAAsDERI5sgULAxESObIICwMREjkwMSUBMxEjEQEjAREjETMC+wFw57n+ooD+m7nw9QNF+8YDE/ztAyT83AQ6AAEAnAAABAAEOgALAIsAsABFWLAGLxuxBho+WbAARViwCi8bsQoaPlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAAELAJ0LAJL7JvCQFdtL8JzwkCXbI/CQFxtM8J3wkCcbIPCQFytJ8JrwkCcbL/CQFdsg8JAXGynwkBXbIvCQFdtG8JfwkCcrECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBAC5/g+6ugHxuQHO/jIEOv4rAdUAAAEAnAAABAEEOgAHADkAsABFWLAGLxuxBho+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEhIxEhESMRIQQBuf4OugNlA6H8XwQ6AAABACgAAAOwBDoABwAyALAARViwBi8bsQYaPlmwAEVYsAIvG7ECEj5ZsAYQsQABsAorWCHYG/RZsATQsAXQMDEBIREjESE1IQOw/pW5/pwDiAOk/FwDpJYAAwBk/mAFaQYAABoAJQAwAIGyBzEyERI5sAcQsCDQsAcQsCvQALAGL7AARViwAy8bsQMaPlmwAEVYsAovG7EKGj5ZsABFWLATLxuxExQ+WbAARViwEC8bsRASPlmwAEVYsBcvG7EXEj5ZsAoQsR4BsAorWCHYG/RZsBAQsSMBsAorWCHYG/RZsCnQsB4QsC7QMDETEBIzMhcRMxE2MzISERQCIyInESMRBiMiAjUlNCYjIgcRFjMyNiUUFjMyNxEmIyIGZNK3VUC5Rl640tG3YUW5QlW20QRMjHs/Ly1DfIn8bYJ6Oi8qPXqEAgkBDwE2HQHP/isj/sr+3O/+5iD+VQGoHQEa9Q/M4RT88RHAsra8EgMREdoAAAEAnP6/BIIEOgALADwAsAgvsABFWLAALxuxABo+WbAARViwBC8bsQQaPlmwAEVYsAovG7EKEj5ZsQIBsAorWCHYG/RZsAbQMDETMxEhETMRMwMjESGcugHyuYESpvzSBDr8XQOj/F3+KAFBAAEAZwAAA70EOwAQAEeyBBESERI5ALAARViwCC8bsQgaPlmwAEVYsA8vG7EPGj5ZsABFWLAALxuxABI+WbIMDwAREjmwDC+xBAGwCitYIdgb9FkwMSEjEQYjIiYnETMRFjMyNxEzA726eoDL1QK5BeSAeroBiCDQwAFD/rfyIAIaAAABAJwAAAXgBDoACwBJALAARViwAC8bsQAaPlmwAEVYsAMvG7EDGj5ZsABFWLAHLxuxBxo+WbAARViwCS8bsQkSPlmxAQGwCitYIdgb9FmwBdCwBtAwMQERIREzESERMxEhEQFWAYy5AYu6+rwEOvxdA6P8XQOj+8YEOgAAAQCR/r8GbQQ6AA8ATACwDC+wAEVYsAAvG7EAGj5ZsABFWLADLxuxAxo+WbAARViwBy8bsQcaPlmwAEVYsA0vG7ENEj5ZsQEBsAorWCHYG/RZsAXQsAnQMDEBESERMxEhETMRMwMjESERAUsBjLkBi7qYEqb63AQ6/F0Do/xdA6P8Xf4oAUEEOgAAAgAeAAAEvwQ6AAwAFQBhsgEWFxESObABELAN0ACwAEVYsAAvG7EAGj5ZsABFWLAJLxuxCRI+WbICAAkREjmwAi+wABCxCwGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FmwCRCxDgGwCitYIdgb9FkwMRMhESEWFhUUBiMhESEBESEyNjU0JiceAfoBGbjW3Lr+Nv6/AfoBE2hyb2QEOv6LAryhosQDov6M/mlrXVpzAgADAJ0AAAV/BDoACgAOABcAb7IGGBkREjmwBhCwDNCwBhCwE9AAsABFWLAJLxuxCRo+WbAARViwDS8bsQ0aPlmwAEVYsAcvG7EHEj5ZsABFWLALLxuxCxI+WbIADQcREjmwAC+xDwGwCitYIdgb9FmwBxCxEAGwCitYIdgb9FkwMQEhFhYVFAYjIREzASMRMwERITI2NTQmJwFWARm41ty6/ja5BCm6uvvXARNocm9kAsUCvKGixAQ6+8YEOv30/mlrXVpzAgACAJ0AAAP9BDoACgATAE+yBxQVERI5sAcQsA3QALAARViwCS8bsQkaPlmwAEVYsAcvG7EHEj5ZsgAJBxESObAAL7ELAbAKK1gh2Bv0WbAHELEMAbAKK1gh2Bv0WTAxASEWFhUUBiMhETMRESEyNjU0JicBVgEZuNbcuv42uQETaHJvZALFAryhosQEOv30/mlrXVpzAgABAGT/7APgBE4AHwCFsgAgIRESOQCwAEVYsAgvG7EIGj5ZsABFWLAQLxuxEBI+WbAIELEAAbAKK1gh2Bv0WbIdCBAREjmwHS+0Lx0/HQJdtL8dzx0CXbSfHa8dAnG0bx1/HQJysgMIHRESObIUEAgREjmwEBCxFwGwCitYIdgb9FmwHRCxGgGwCitYIdgb9FkwMQEiBhUjNDY2MzIAFRUUBgYjIiY1MxQWMzI2NyE1ISYmAghjkbB2xGrTAQV314q08LCOZneaDP5qAZQOlgO2flZdqmX+z/YfmPuJ4Kdmi7ihmJKxAAIAnf/sBjAETgAUAB8AoLINICEREjmwDRCwFdAAsABFWLAULxuxFBo+WbAARViwBC8bsQQaPlmwAEVYsBEvG7EREj5ZsABFWLAMLxuxDBI+WbIAERQREjmwAC+0vwDPAAJdtJ8ArwACcbL/AAFdsg8AAXG0LwA/AAJdtl8AbwB/AANysRABsAorWCHYG/RZsAwQsRgBsAorWCHYG/RZsAQQsR0BsAorWCHYG/RZMDEBITYAMzIAFxcUBgYjIgAnIREjETMBFBYgNjU0JiMiBgFWAQQVAQnK1AEOCwF84JDR/vYQ/v25uQG6pwEapaiMiqgCb9gBB/7i5Tqe/okBEdr+KQQ6/de02t7Gsd7aAAIALwAAA8cEOgANABYAY7IUFxgREjmwFBCwDdAAsABFWLAALxuxABo+WbAARViwAS8bsQESPlmwAEVYsAUvG7EFEj5ZshIAARESObASL7EDAbAKK1gh2Bv0WbIHAwAREjmwABCxEwGwCitYIdgb9FkwMQERIxEhAyMBJiY1NDY3AxQWFyERISIGA8e6/un/yAEQaG/eut5sWQEm/vZnegQ6+8YBpf5bAcEmn2qUtQH+tE9hAQFnZQAB/+j+SwPfBgAAIgCHsg0jJBESOQCwHy+wAEVYsAQvG7EEGj5ZsABFWLAZLxuxGRI+WbAARViwCi8bsQoUPlmyvx8BXbIvHwFdsg8fAV2yHhkfERI5sB4vsCHQsQEBsAorWCHYG/RZsgIZBBESObAKELEPAbAKK1gh2Bv0WbAEELEVAbAKK1gh2Bv0WbABELAb0DAxASERNjMgExEUBiMiJzcWMjY1ETQmIyIGBxEjESM1MzUzFSECY/7ie8UBVwOqmD02DyOCSGlwWogmuaSkuQEeBLn+/pf+ffzcqrISkw1oXAMgeHJgTvz9BLmYr68AAAEAZ//sA/cETgAfAJ+yACAhERI5ALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsQABsAorWCHYG/RZsgMIEBESObIbEAgREjmwGy+0DxsfGwJytL8bzxsCXbSfG68bAnG0zxvfGwJxsv8bAV2yDxsBcbQvGz8bAl20bxt/GwJysr8bAXKyFBAbERI5sBAQsRcBsAorWCHYG/RZsBsQsRwBsAorWCHYG/RZMDElMjY3Mw4CIyIAETU0NjYzMhYXIyYmIyIGByEVIRYWAkhjlAiwBXjEbt7+/XXYlLbxCLAIj2iCmgoBlP5sCpmDeFpeqGMBKAEAHp/3htquaYexnZigrQAAAgAnAAAGhgQ6ABYAHwB9sgkgIRESObAJELAX0ACwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBI+WbAARViwDy8bsQ8SPlmyAQAIERI5sAEvsAAQsQoBsAorWCHYG/RZsA8QsREBsAorWCHYG/RZsAEQsRcBsAorWCHYG/RZsAgQsRgBsAorWCHYG/RZMDEBESEWFhUUBgchESEDAgYHIzU3NjY3EwERITI2NTQmJwPfAR6209O3/in+rxcUnKVBNlVNDRcCvAETZXVyYwQ6/mQDtZSTvAMDof5a/uvkAqMECqfTAg/9zP6PaVZRYAEAAAIAnAAABqcEOgASABsAfrIBHB0REjmwARCwE9AAsABFWLACLxuxAho+WbAARViwES8bsREaPlmwAEVYsAsvG7ELEj5ZsABFWLAPLxuxDxI+WbIBEQsREjmwAS+wBNCwARCxDQGwCitYIdgb9FmwBBCxEwGwCitYIdgb9FmwCxCxFAGwCitYIdgb9FkwMQEhETMRIRYWFRQGIyERIREjETMBESEyNjU0JicBVgHxuQEitNHZvf42/g+6ugKqARNldXJjAqEBmf5jBLGWl7sCCv32BDr9zP6PaVZRYAEAAAH//QAAA98GAAAZAHuyDBobERI5ALAWL7AARViwBC8bsQQaPlmwAEVYsAcvG7EHEj5ZsABFWLAQLxuxEBI+WbK/FgFdsi8WAV2yDxYBXbIZEBYREjmwGS+xAAGwCitYIdgb9FmyAgQHERI5sAQQsQwBsAorWCHYG/RZsAAQsBLQsBkQsBTQMDEBIRE2MyATESMRJiYjIgYHESMRIzUzNTMVIQJ5/sx7xQFXA7kBaW9aiCa5j4+5ATQEvv75l/59/TUCzHVwYE78/QS+l6urAAABAJz+nAQBBDoACwBGALAIL7AARViwAC8bsQAaPlmwAEVYsAMvG7EDGj5ZsABFWLAFLxuxBRI+WbAARViwCS8bsQkSPlmxAQGwCitYIdgb9FkwMQERIREzESERIxEhEQFWAfK5/q25/qcEOvxdA6P7xv6cAWQEOgABAJz/7AZ1BbAAIABhsgchIhESOQCwAEVYsAAvG7EAHj5ZsABFWLAOLxuxDh4+WbAARViwFy8bsRcePlmwAEVYsAQvG7EEEj5ZsABFWLAKLxuxChI+WbIHAAQREjmxEwGwCitYIdgb9FmwHNAwMQERFAYjIiYnBgYjIiYnETMRFBYzMjY1ETMRFBYzMjY1EQZ14cNtqzE0snG91wHBcmJygsd8aWp6BbD73sbcV1lZV9vDBCb73XuKiXwEI/vdfYiJfQQiAAABAIH/6wWtBDoAHgBhsgYfIBESOQCwAEVYsAAvG7EAGj5ZsABFWLAMLxuxDBo+WbAARViwFS8bsRUaPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbIGFQQREjmxEQGwCitYIdgb9FmwGtAwMQERFAYjIicGIyImJxEzERYWMzI2NREzERQWMzI2NxEFrcquxllfzqfAAbkBW1Nib7plXFllAQQ6/SewxpSUw7AC3P0jZnV4ZwLZ/SdneHVmAt0AAAL/3AAAA/wGFgARABoAdLIUGxwREjmwFBCwA9AAsABFWLAOLxuxDiA+WbAARViwCC8bsQgSPlmyEQ4IERI5sBEvsQABsAorWCHYG/RZsgIOCBESObACL7AAELAK0LARELAM0LACELESAbAKK1gh2Bv0WbAIELETAbAKK1gh2Bv0WTAxASERIRYWEAYHIREjNTMRMxEhAREhMjY1NCYnApb+vwEYu9TUt/4qv7+6AUH+vwESaXFvZAQ6/rACyv620QMEOpcBRf67/YH+RXdkYX0CAAEAt//tBqAFxQAmAIqyHicoERI5ALAARViwBS8bsQUePlmwAEVYsCYvG7EmHj5ZsABFWLAdLxuxHRI+WbAARViwIy8bsSMSPlmyEAUdERI5sBAvsADQsAUQsAnQsAUQsQwBsAorWCHYG/RZsBAQsREBsAorWCHYG/RZsB0QsRYBsAorWCHYG/RZsB0QsBnQsBEQsCHQMDEBMzYSJDMyABcjJiYjIgIHIRUhFRQSMzI2NzMGBCMgABE1IxEjETMBeMcFkwEGrOYBGRjAGaeXtM8GAh794sayo6kcwBv+4e7+/v7Jx8HBA0DBASae/wDorJ7+++KXGu3+6JOy5/sBcgE2FP1XBbAAAAEAmf/sBaEETgAkAMeyAyUmERI5ALAARViwBC8bsQQaPlmwAEVYsCQvG7EkGj5ZsABFWLAhLxuxIRI+WbAARViwHC8bsRwSPlmyDxwEERI5sA8vtL8Pzw8CXbQ/D08PAnG0zw/fDwJxtA8PHw8CcrSfD68PAnGy/w8BXbIPDwFxtC8PPw8CXbRvD38PAnKwANCyCA8EERI5sAQQsQsBsAorWCHYG/RZsA8QsRABsAorWCHYG/RZsBwQsRQBsAorWCHYG/RZshccBBESObAQELAf0DAxATM2EjMyFhcjJiYjIgYHIRUhFhYzMjY3Mw4CIyICJyMRIxEzAVO/EP/RtvEIsAiPaISYCgG1/ksKmYNjlAiwBXjEbtH+EMC6ugJn3wEI2q5ph7Gel6CteFpeqGMBBt7+MAQ6AAIAKAAABOQFsAALAA4AVwCwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmwAEVYsAovG7EKEj5Zsg0IAhESObANL7EAAbAKK1gh2Bv0WbAE0LIOCAIREjkwMQEjESMRIwMjATMBIwEhAwOJqryemMUCDasCBMX9nwGTxwG2/koBtv5KBbD6UAJaAkkAAgAPAAAEJQQ6AAsAEABXALAARViwCC8bsQgaPlmwAEVYsAIvG7ECEj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmyDQIIERI5sA0vsQEBsAorWCHYG/RZsATQsg8IAhESOTAxASMRIxEjAyMBMwEjASEDJwcC7XW5fHe9AbqfAb2+/hkBL4AYGAEp/tcBKf7XBDr7xgHBATtZWQACAMkAAAb1BbAAEwAWAH0AsABFWLACLxuxAh4+WbAARViwEi8bsRIePlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmwAEVYsBAvG7EQEj5ZshUCBBESObAVL7AA0LAVELEGAbAKK1gh2Bv0WbAK0LAGELAO0LIWAgQREjkwMQEhATMBIwMjESMRIwMjEyERIxEzASEDAYoBhwE1qwIExZaqvJ6YxZ7+s8HBAkUBk8cCWQNX+lABtv5KAbb+SgG4/kgFsPyqAkkAAgC8AAAF5AQ6ABMAGACAALAARViwAi8bsQIaPlmwAEVYsBIvG7ESGj5ZsABFWLAELxuxBBI+WbAARViwCC8bsQgSPlmwAEVYsAwvG7EMEj5ZsABFWLAQLxuxEBI+WbIAEBIREjmwAC+wAdCxDgGwCitYIdgb9FmwC9CwB9CwARCwFNCwFdCyFxIEERI5MDEBIQEzASMDIxEjESMDIxMjESMRMwEhAycHAXYBDwEDnwG9vnp1uXx3vXnRuroByQEvgBgYAcECefvGASn+1wEp/tcBKP7YBDr9hwE7WVkAAgCTAAAGPwWwAB0AIQB4sh4iIxESObAeELAO0ACwAEVYsBwvG7EcHj5ZsABFWLAFLxuxBRI+WbAARViwDS8bsQ0SPlmwAEVYsBUvG7EVEj5ZsgENHBESObABL7EKAbAKK1gh2Bv0WbAQ0LABELAa0LABELAe0LAcELEgAbAKK1gh2Bv0WTAxATMyFhcRIxEmJicjBxEjEScjIgYHESMRNjYzMwEhATMBIQRBG/TsA8EBfJqFFcENiJ6CBMAD7PMq/ngEsv2fEAEa/bsDKtTY/oIBeJCCAiP9lwJ2FnuN/nwBftjUAob9egHoAAACAJYAAAVLBDoAGwAfAHWyHCAhERI5sBwQsBTQALAARViwBi8bsQYaPlmwAEVYsBsvG7EbEj5ZsABFWLAULxuxFBI+WbAARViwDC8bsQwSPlmyHBQGERI5sBwvsATQsBwQsAfQsRABsAorWCHYG/RZsBfQsAYQsR4BsAorWCHYG/RZMDEzNTY2NwEhARYWFxUjNSYmIyMHESMRJyMiBgcVATMTIZYEytL+4QO//uDOxQK6AnOMNQu5Bj6MdQIBogi3/ou2zdIGAd/+IQvT0K2xkoET/k8Buwl+lbECXAFGAAIAtgAACHIFsAAiACYAlbImJygREjmwJhCwHtAAsABFWLAILxuxCB4+WbAARViwCy8bsQsePlmwAEVYsAUvG7EFEj5ZsABFWLAiLxuxIhI+WbAARViwGy8bsRsSPlmwAEVYsBMvG7ETEj5ZsgkFCBESObAJL7EEAbAKK1gh2Bv0WbAJELAj0LAN0LAEELAe0LAY0LALELEmAbAKK1gh2Bv0WTAxIRE2NyERIxEzESEBIQEzMhYXESMRJiYnIwcRIxEnIyIGBxEBMwEhAsUBT/5iwcEDWf55BLP+eBv07APBAXyahRbADoeeggQCFRABGv27AXizaf1sBbD9fAKE/XrU2P6CAXiQggIl/ZkCdRd7jf58AyoB6AACAJsAAAc7BDoAIQAlAJiyHiYnERI5sB4QsCXQALAARViwBy8bsQcaPlmwAEVYsAsvG7ELGj5ZsABFWLAALxuxABI+WbAARViwBS8bsQUSPlmwAEVYsBEvG7EREj5ZsABFWLAZLxuxGRI+WbIKCwAREjmwCi+xHQGwCitYIdgb9FmwA9CwChCwDdCwHRCwFtCwChCwItCwCxCxJAGwCitYIdgb9FkwMSE1NjchESMRMxEhASEBFhYXFSM1JiYjIwcRIxEnIwYGBxUBMxMhAoYCRv6HuroC0f7hA7/+4M7FAroCc4w1C7kGS4VvAgGiCLf+i6+taP48BDr+IgHe/iEL09CtsZKBE/5PAbsJAoCTrwJcAUYAAAIAUP5GA6oHhgApADIAirIqMzQREjmwKhCwAtAAsBkvsC4vsABFWLAFLxuxBR4+WbAARViwEi8bsRISPlmwBRCxAwGwCitYIdgb9FmyKAUSERI5sCgvsSUBsAorWCHYG/RZsgwlKBESObASELEfAbAKK1gh2Bv0WbIPLgFdsC4QsCvQsCsvtA8rHysCXbIqLisREjmwMtAwMQE0JiMhNSEyBBUUBgcWFhUUBCMjBhUUFxcHJiY1NDY3MzY2NRAlIzUzIAM3MxUDIwM1MwLanYf+zgEr3gEGgXOCif734DSNgh9Keo2lojSGn/6+mYYBP7uXoP5y+p0EKm6AmNiyZ6QtKa2CxOUDbWlCD301qGN6gwEBlHkBCAWYA6WqCv7uARIKAAACAEz+RgN2BjAAKQAyAJ+yLjM0ERI5sC4QsB/QALAYL7AuL7AARViwBS8bsQUaPlmwAEVYsBEvG7EREj5ZsAUQsQMBsAorWCHYG/RZsigFERESObAoL7IvKAFdtL8ozygCXbSfKK8oAnG0byh/KAJysSUBsAorWCHYG/RZsgwlKBESObARELEeAbAKK1gh2Bv0WbAuELAr0LArL7QPKx8rAl2yKi4rERI5sDLQMDEBNCYnITUhMhYVFAYHFhUUBiMjBhUUFxcHJiY1NDY3MzY3NjU0JSM1MyADNzMVAyMDNTMCp39w/skBJ8ruZlvX88gyjYIfS3yKpaI2ckM//uiZiAET2Zeg/nL6nQMJQ1MCmaqLSXckQq+UrwNtaUIPfTeoYXqDAQIwLkiiA5gDHaoK/u4BEgoAAwBn/+wE+gXEABEAGAAfAIyyBCAhERI5sAQQsBLQsAQQsBnQALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsA0QsRIBsAorWCHYG/RZshYNBBESObAWL7IvFgFdss8WAV2yLxYBcbL/FgFdsl8WAV20TxZfFgJxsp8WAXGwBBCxGQGwCitYIdgb9FmwFhCxHAGwCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFwEiAgchJgIDMhI3IRYSBPqP/vixrP72kwKSAQusrwEIkQL9trbQBAMUBM62tsoI/OwI0wKp1f7CqqkBOc5p0gFCq6j+xc8CDf7t8vgBDftwAQD07P74AAMAW//sBDQETgAPABUAHACKsgQdHhESObAEELAT0LAEELAW0ACwAEVYsAQvG7EEGj5ZsABFWLAMLxuxDBI+WbIaDAQREjmwGi+0vxrPGgJdtJ8arxoCcbL/GgFdsg8aAXG0Lxo/GgJdtM8a3xoCcbEQAbAKK1gh2Bv0WbAMELEUAbAKK1gh2Bv0WbAEELEWAbAKK1gh2Bv0WTAxEzQ2NjMyABcXFAYGIyIANQUhFhYgNgEiBgchJiZbe+GP1AEOCwF84JDe/vEDHP2fDaQBAqH+3H2iDwJeEqMCJ5/9i/7i5Tqe/okBM/tEm7i6Anm1k5exAAABABYAAATdBcMADwBHsgIQERESOQCwAEVYsAYvG7EGHj5ZsABFWLAPLxuxDx4+WbAARViwDC8bsQwSPlmyAQYMERI5sAYQsQgBsAorWCHYG/RZMDEBFzcBNjYzFwciBgcBIwEzAkMhIwEIM4ZnLgFAQB/+fKr+B9ABdoKBAz+XeAGrPFT7eQWwAAABAC4AAAQLBE0AEQBHsgISExESOQCwAEVYsAUvG7EFGj5ZsABFWLARLxuxERo+WbAARViwDi8bsQ4SPlmyAQUOERI5sAUQsQoBsAorWCHYG/RZMDEBFzcTNjMyFwcmIyIGBwEjATMB2xcZnU2sRyMVDR0fPBD+143+g70BPGRkAh/yGJQIMC38tAQ6AAIAZ/9zBPoGNAATACcAVLIFKCkREjmwBRCwGdAAsABFWLANLxuxDR4+WbAARViwAy8bsQMSPlmwBtCwDRCwENCxFwGwCitYIdgb9FmwGtCwAxCxJAGwCitYIdgb9FmwIdAwMQEQAAcVIzUmAAM1EAA3NTMVFgARJzQCJxUjNQYCFRUUEhc1MxU2EjUE+v7+47nl/vEBAQ7nueIBA7+ZjbmTo6SSuY+XAqn+3f6RI4F/HwFxASNgASQBdh92eCX+kP7ZB+ABCSNhZB/+7t9d3v7sH2ZkIgEL4gAAAgBb/4kENAS1ABMAJQBasgMmJxESObADELAc0ACwAEVYsAMvG7EDGj5ZsABFWLAQLxuxEBI+WbADELAG0LAQELAN0LAQELEjAbAKK1gh2Bv0WbAU0LADELEdAbAKK1gh2Bv0WbAa0DAxEzQSNzUzFRYSFRUUAgcVIzUmAjUBNjY1NCYnFSM1BgYVFBYXNTNb1Lm5utndtrm02QJGY3Z0ZblicnFjuQIn0gEqInBvIP7Y3RDY/tgda2wfASfc/nkfzauR0CBiYSHQpZLLImYAAAMAnP/rBm8HUQAsAEAASQCqsgpKSxESObAKELAy0LAKELBJ0ACwAEVYsBQvG7EUHj5ZsABFWLANLxuxDRI+WbAUELAA0LANELAH0LIKDRQREjmwFBCxFQGwCitYIdgb9FmwDRCxHAGwCitYIdgb9FmyIBQNERI5sCXQsBUQsCzQsBQQsDjQsDgvsC/QsS0CsAorWCHYG/RZsC8QsDTQsDQvsTwCsAorWCHYG/RZsDgQsETQsEnQsEkvMDEBMhYVERQGIyImJwYGIyImJxE0NjMVIgYVERQWMzI2NREzERQWMzI2NRE0JiMTFSMiLgIjIhUVIzU0NjMyHgIBNjc1MxUUBgcE27vZ2btwsjQ0sHC52ATYvWNxcmJygsGCc2Nwb2RoK1CCuDQYcYB/bihIv2r+QEIDnVs7Ba/w1v3G1PBVWFhV6M0CStTxnp2J/cSMm4l8Aaz+VHqLnIwCOoifAcJ/IlAMcA8kbmwRUhv+kFA8aWYydSAAAwB+/+sFqgXxACsAPwBIALCyCUlKERI5sAkQsDzQsAkQsEjQALAARViwEy8bsRMaPlmwAEVYsAwvG7EMEj5ZsBMQsADQsAwQsAfQsgkMExESObATELEUAbAKK1gh2Bv0WbAMELEbAbAKK1gh2Bv0WbIfEwwREjmwJNCwFBCwK9CwExCwN9CwNy+wLdCwLS+xLAKwCitYIdgb9FmwLRCwM9CwMy+xOwKwCitYIdgb9FmwNxCwQ9CwQy+wSNCwSC8wMQEyFhURFAYjIicGBiMiJicRNDYzFSIGFREUFjMyNjU1MxUWFjMyNjURNCYjExUjIi4CIyIVFSM1NDYzMh4CATY3NTMVFAYHBEKowMCo0F8vnGKjwQTAqFJdXFNib7kBcGFRXV1RqixPfsAwGHKAf28pSrdt/kFBA55bOwRE28L+38HalUtK0LsBMsHbmIh8/t57iXhn6+5ndYh9ASF8iAHHfyBSC28PJG5sElAc/oZOP2hmMnUgAAIAnP/sBnUHAwAgACgAhLIHKSoREjmwBxCwJ9AAsABFWLAPLxuxDx4+WbAARViwFy8bsRcePlmwAEVYsCAvG7EgHj5ZsABFWLAKLxuxChI+WbAE0LIHCg8REjmwChCxEwGwCitYIdgb9FmwHNCwDxCwJ9CwJy+wKNCwKC+xIgawCitYIdgb9FmwKBCwJdCwJS8wMQERFAYjIiYnBgYjIiYnETMRFBYzMjY1ETMRFBYzMjY1ESU1IRchFSM1BnXhw22rMTSycb3XAcFyYnKCx3xpanr8QgMsAf61qAWw+97G3FdZWVfbwwQm+917iol8BCP73X2IiX0EIuhra319AAACAIH/6wWtBbAAHgAmAIeyBicoERI5sAYQsCPQALAARViwDS8bsQ0aPlmwAEVYsBUvG7EVGj5ZsABFWLAeLxuxHho+WbAARViwCC8bsQgSPlmwBNCwBC+yBggNERI5sAgQsREBsAorWCHYG/RZsBrQsA0QsCXQsCUvsCbQsCYvsSAGsAorWCHYG/RZsCYQsCPQsCMvMDEBERQGIyInBiMiJicRMxEWFjMyNjURMxEUFjMyNjcRATUhFyEVIzUFrcquxllfzqfAAbkBW1Nib7plXFllAfyTAywD/rOpBDr9J7DGlJTDsALc/SNmdXhnAtn9J2d4dWYC3QELa2uAgAAAAQB1/oQEvAXFABkAS7IYGhsREjkAsAAvsABFWLAKLxuxCh4+WbAARViwAi8bsQISPlmwChCwDtCwChCxEQGwCitYIdgb9FmwAhCxGQGwCitYIdgb9FkwMQEjESYANTU0EiQzMgAXIyYmIyICFRUUEhczAxS/2P74jgEAoPcBIALBArWhoM3FnXz+hAFsHAFW//SxASCf/vjgnqz+/NT0yv77BAABAGT+ggPgBE4AGQBLshgaGxESOQCwAC+wAEVYsAovG7EKGj5ZsABFWLACLxuxAhI+WbAKELAO0LAKELERAbAKK1gh2Bv0WbACELEYAbAKK1gh2Bv0WTAxASMRJgI1NTQ2NjMyFhUjNCYjIgYVFRQWFzMCormx1HfXi7Pwr49lhJyWgm3+ggFwHgEm2SOZ+YrhqGWM2rUfqNsDAAABAHQAAASQBT4AEwATALAOL7AARViwBC8bsQQSPlkwMQEFByUDIxMlNwUTJTcFEzMDBQclAlgBIUT+3bao4f7fRAElzf7eRgEjvKXnASVI/uABvqx7qv6/AY6re6sBbat9qwFL/mireqoAAfxnBKb/JwX8AAcAEgCwAC+xAwawCitYIdgb9FkwMQEVJzchJxcV/Q2mAQIbAaUFI30B6WwB2AAB/HEFF/9kBhUAEwAwALAOL7AI0LAIL7EAArAKK1gh2Bv0WbAOELAF0LAFL7AOELEPArAKK1gh2Bv0WTAxATIWFRUjNTQjIgcHBgcjNTI+Av52b3+Aciotb4l2PGxqwUcGFWxuJA5wEi86An4bUxEAAf1mBRb+VAZXAAUADACwAS+wBdCwBS8wMQE1MxUXB/1msztNBdx7jHRBAAAB/aQFFv6TBlcABQAMALADL7AA0LAALzAxASc3JzMV/fFNOwG1BRZBdIx7AAj6G/7EAbYFrwAMABoAJwA1AEIATwBcAGoAfwCwRS+wUy+wYC+wOC+wAEVYsAIvG7ECHj5ZsQkLsAorWCHYG/RZsEUQsBDQsEUQsUwLsAorWCHYG/RZsBfQsFMQsB7QsFMQsVoLsAorWCHYG/RZsCXQsGAQsCvQsGAQsWcLsAorWCHYG/RZsDLQsDgQsT8LsAorWCHYG/RZMDEBNDYyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUTNDYzMhYVIzQmIgYVATQ2MzIWFSM0JiMiBhUBNDYyFhUjNCYjIgYVATQ2MhYVIzQmIyIGFQE0NjMyFhUjNCYiBhUTNDYzMhYVIzQmIyIGFf0Ic750cDMwLjMB3nRdX3VxNS4sM0h1XV90cDVcM/7LdF1fdHA1Li0z/U9zvnRwMzAuM/1NdL50cDMwLjP+3nVdX3RwNVwzNXVdX3VxNS4tMwTzVGhoVC43NTD+61RoZ1UxNDUw/glVZ2hUMTQ3Lv35VGhoVDE0Ny7+5FRoaFQuNzcuBRpUaGhULjc1MP4JVWdoVDE0Ny79+VVnZ1UxNDUwAAAI+iz+YwFrBcYABAAJAA4AEwAYAB0AIgAnADkAsCEvsBIvsAsvsBsvsCYvsABFWLAHLxuxBx4+WbAARViwFi8bsRYcPlmwAEVYsAIvG7ECFD5ZMDEFFwMjEwMnEzMDATcFFSUFByU1BQE3JRcFAQcFJyUDJwM3EwEXEwcD/i8LemBGOgx6YEYCHQ0BTf6m+3UN/rMBWgOcAgFARP7b/PMC/sBFASYrEZRBxgNgEZRCxDwO/q0BYQSiDgFS/qD+EQx8Ykc7DHxiRwGuEJlEyPyOEZlFyALkAgFGRf7V/OMC/rtHASsA//8Asf6bBbMHGQAmANwAAAAnAKEBMQFCAQcAEAR//70AEwCwAEVYsAgvG7EIHj5ZsA3cMDEA//8AnP6bBLUFwwAmAPAAAAAnAKEAof/sAQcAEAOB/70AEwCwAEVYsAgvG7EIGj5ZsA3cMDEAAAL/3AAAA/wGcQARABoAd7IUGxwREjmwFBCwA9AAsABFWLAMLxuxDB4+WbAARViwEC8bsRAePlmwAEVYsAgvG7EIEj5ZsBAQsQABsAorWCHYG/RZsgIMCBESObACL7AAELAK0LAL0LACELESAbAKK1gh2Bv0WbAIELETAbAKK1gh2Bv0WTAxASERIRYWEAYHIREjNTM1MxUhAREhMjY1NCYnApb+vwEYu9TUt/4qv7+6AUH+vwESaXFvZAUY/dICyv620QMFGJjBwfyi/kV3ZGF9AgAAAgCoAAAE1wWwAA4AGwBWsgQcHRESObAEELAX0ACwAEVYsAMvG7EDHj5ZsABFWLABLxuxARI+WbIWAwEREjmwFi+xAAGwCitYIdgb9FmyCQADERI5sAMQsRQBsAorWCHYG/RZMDEBESMRITIEFRQHFwcnBiMBNjU0JichESEyNyc3AWnBAhnsARNnfm2LdqgBGSWlkf6gAVhiRW5uAjr9xgWw8su6cIpnmTcBG0Fbgp0C/cUdeWYAAAIAjP5gBCMETgATACIAd7IcIyQREjmwHBCwENAAsABFWLAQLxuxEBo+WbAARViwDS8bsQ0aPlmwAEVYsAovG7EKFD5ZsABFWLAHLxuxBxI+WbICBxAREjmyCRAHERI5sg4QBxESObAQELEXAbAKK1gh2Bv0WbAHELEcAbAKK1gh2Bv0WTAxARQHFwcnBiMiJxEjETMXNjMyEhEnNCYjIgcRFjMyNyc3FzYEHmpvbm5Zc8VxuakJccnD47mciKhUU6tSPGZuWjICEe6XfWZ7OH399wXaeIz+2v76BLfUlf37lCdzZ2diAAABAKIAAAQjBwAACQA2sgMKCxESOQCwCC+wAEVYsAYvG7EGHj5ZsABFWLAELxuxBBI+WbAGELECAbAKK1gh2Bv0WTAxASMVIREjESERMwQjA/1CwALIuQUYBvruBbABUAABAJEAAANCBXYABwAvALAGL7AARViwBC8bsQQaPlmwAEVYsAIvG7ECEj5ZsAQQsQABsAorWCHYG/RZMDEBIREjESERMwNC/gm6Afi5A6H8XwQ6ATwAAAEAsf7fBHwFsAAVAF6yChYXERI5ALAJL7AARViwFC8bsRQePlmwAEVYsBIvG7ESEj5ZsBQQsQABsAorWCHYG/RZsgMUCRESObADL7AJELEKAbAKK1gh2Bv0WbADELEQAbAKK1gh2Bv0WTAxASERMyAAERACIycyNjUmJiMjESMRIQQw/UKyARwBPPXkApGQAczOtcEDfwUS/i/+z/7w/vj+55PDy8vU/WEFsAABAJH+5QO+BDoAFgBesgsXGBESOQCwCi+wAEVYsBUvG7EVGj5ZsABFWLATLxuxExI+WbAVELEAAbAKK1gh2Bv0WbIDFQoREjmwAy+wChCxCwGwCitYIdgb9FmwAxCxEQGwCitYIdgb9FkwMQEhETMyABUUBgYHJzY2NTQmIyMRIxEhAz7+DWzvARhiqnUwgHiymHC6Aq0Dof7k/vzXYsiGFZIhmXmRqP4dBDr//wAb/pkHggWwACYA2gAAAAcCUQZhAAD//wAV/pkGPQQ6ACYA7gAAAAcCUQUcAAD//wCy/pcFRAWwACYCLAAAAAcCUQQj//7//wCc/pkEgQQ6ACYA8QAAAAcCUQNgAAAAAQCjAAAE/wWwABQAYwCwAEVYsAAvG7EAHj5ZsABFWLAMLxuxDB4+WbAARViwAi8bsQISPlmwAEVYsAovG7EKEj5ZsA/QsA8vsi8PAV2yzw8BXbEIAbAKK1gh2Bv0WbIBCA8REjmwBdCwDxCwEtAwMQkCIwEjFSM1IxEjETMRMxEzETMBBNL+cAG98f6iUJRowcFolE0BQwWw/U79AgKO9PT9cgWw/X8BAP8AAoEAAQCaAAAEfwQ6ABQAfACwAEVYsA0vG7ENGj5ZsABFWLAULxuxFBo+WbAARViwCi8bsQoSPlmwAEVYsAMvG7EDEj5ZsAoQsA7QsA4vsp8OAV2y/w4BXbKfDgFxtL8Ozw4CXbIvDgFdsm8OAXKxCQGwCitYIdgb9FmyAQkOERI5sAXQsA4QsBLQMDEJAiMBIxUjNSMRIxEzETM1MxUzAQRa/q4Bd+v+6zKUZbq6ZZQqAQMEOv3+/cgBzcLC/jMEOv421dUBygAAAQBEAAAGiwWwAA4AbQCwAEVYsAYvG7EGHj5ZsABFWLAKLxuxCh4+WbAARViwAi8bsQISPlmwAEVYsA0vG7ENEj5ZsggGAhESObAIL7IvCAFdss8IAV2xAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIxEjESE1IREzATMBASMDkLDB/iUCnJYB/O/91AJW7AKO/XIFGJj9fgKC/T/9EQABAD4AAAV9BDoADgCCALAARViwBi8bsQYaPlmwAEVYsAovG7EKGj5ZsABFWLACLxuxAhI+WbAARViwDS8bsQ0SPlmwAhCwCdCwCS+ynwkBXbL/CQFdsp8JAXG0vwnPCQJdsi8JAV2ybwkBcrEAAbAKK1gh2Bv0WbAGELEEAbAKK1gh2Bv0WbIMAAkREjkwMQEjESMRITUhETMBMwEBIwMbiLr+ZQJVegFr4f5TAdHrAc3+MwOhmf42Acr9+P3OAP//AKn+mQWpBbAAJgAsAAAABwJRBIgAAP//AJz+mQSiBDoAJgD0AAAABwJRA4EAAAABAKgAAAeEBbAADQBgALAARViwAi8bsQIePlmwAEVYsAwvG7EMHj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwAdCwAS+yLwEBXbACELEEAbAKK1gh2Bv0WbABELEIAbAKK1gh2Bv0WTAxASERIRUhESMRIREjETMBaQLeAz39g8D9IsHBAz4Ccpj66AKh/V8FsAABAJEAAAVpBDoADQCdALAARViwAi8bsQIaPlmwAEVYsAwvG7EMGj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwBhCwAdCwAS+ybwEBXbS/Ac8BAl2yPwEBcbTPAd8BAnGyDwEBcrSfAa8BAnGy/wEBXbIPAQFxsp8BAV2yLwEBXbRvAX8BAnKwAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhESEVIREjESERIxEzAUsB8QIt/oy5/g+6ugJlAdWZ/F8Bzv4yBDoAAAEAsP7fB80FsAAXAGuyERgZERI5ALAHL7AARViwFi8bsRYePlmwAEVYsBQvG7EUEj5ZsABFWLARLxuxERI+WbIBFgcREjmwAS+wBxCxCAGwCitYIdgb9FmwARCxDgGwCitYIdgb9FmwFhCxEgGwCitYIdgb9FkwMQEzIAAREAIjJzI2NSYmIyMRIxEhESMRIQT/dgEcATz15AKRkAHMznnB/TLABE8DQf7P/vD++P7nk8PLy9T9YQUS+u4FsAABAJH+5QawBDoAGABrshIZGhESOQCwCC+wAEVYsBcvG7EXGj5ZsABFWLAVLxuxFRI+WbAARViwEi8bsRISPlmyARcIERI5sAEvsAgQsQkBsAorWCHYG/RZsAEQsQ8BsAorWCHYG/RZsBcQsRMBsAorWCHYG/RZMDEBMzIAFQcGBgcnNjY1NCYjIxEjESERIxEhA/ag+AEiAxTRmTB8e7ygpLn+DroDZQKF/vzXJqPhG5Igln2Sp/4dA6H8XwQ6AAACAHH/5AWiBcUAKAA2AKCyGDc4ERI5sBgQsCnQALAARViwDS8bsQ0ePlmwAEVYsB8vG7EfHj5ZsABFWLAELxuxBBI+WbAA0LAAL7ICBB8REjmwAi+wDRCxDgGwCitYIdgb9FmwBBCxFQGwCitYIdgb9FmwAhCxLAGwCitYIdgb9FmyFwIsERI5siYsAhESObAAELEoAbAKK1gh2Bv0WbAfELEzAbAKK1gh2Bv0WTAxBSInBiMiJAI1NTQSNjMXIgYVFRQSMzI3JgI1NTQ2NjMyEhUVFAIHFjMBFBYXNjY1NTQmIyIGFQWi17OOrLL+5J910oQBdpTsv0Y4eYRovXa25m9maHn9fXh1Ymh5Y2F6HElCsgFCxKyxASKjpf7Zpuz+1w1hARWq45r9jf7M/eue/vZfGgI0mO1KSOeN+bHO0rIAAgBt/+sEnARPACQALwCnsgQwMRESObAEELAl0ACwAEVYsAwvG7EMGj5ZsABFWLAcLxuxHBo+WbAARViwBC8bsQQSPlmwAEVYsAAvG7EAEj5ZsgIEHBESObACL7AMELENAbAKK1gh2Bv0WbAEELEUAbAKK1gh2Bv0WbACELEnAbAKK1gh2Bv0WbIWFCcREjmwABCxJAGwCitYIdgb9FmyIickERI5sBwQsSwBsAorWCHYG/RZMDEFIicGIyImAjU1NBIzFSIGFRUUFjMyNyYRNTQ2MzIWFRUUBxYzARQXNjc1NCYiBgcEnLKMdo+M4X/Fm0ldqYkuLMGtj4yygE9h/g+fZgNJeEYBDDlClQESpzrNAQ6erZI4wfALogERXsDr+c5i450VAanWdHO6dYKejXr//wA5/pkE+AWwACYAPAAAAAcCUQPXAAD//wAp/pkEBgQ6ACYAXAAAAAcCUQLlAAAAAQA0/qEGkwWwABMAXQCwES+wAEVYsAcvG7EHHj5ZsABFWLAMLxuxDB4+WbAARViwEy8bsRMSPlmwBxCxCAGwCitYIdgb9FmwANCwBxCwBdCwA9CwAtCwExCxCgGwCitYIdgb9FmwDtAwMQEhNSE1MxUhFSERIREzETMDIxEhAav+iQF3wQGB/n8CzsGYEqz71gUYlwEBl/uFBRP68f4AAV8AAQAf/r8FFgQ6AA8ATQCwDS+wAEVYsAMvG7EDGj5ZsABFWLAPLxuxDxI+WbADELEEAbAKK1gh2Bv0WbAA0LAPELEGAbAKK1gh2Bv0WbADELAI0LAGELAK0DAxASE1IRUjESERMxEzAyMRIQEx/u4CxPkB8rqAEqX80gOjl5f89AOj/F3+KAFB//8Alv6ZBWcFsAAmAOEAAAAHAlEERgAA//8AZ/6ZBF8EOwAmAPkAAAAHAlEDPgAAAAEAlgAABMgFsAAXAFCyBBgZERI5ALAARViwAC8bsQAePlmwAEVYsAovG7EKHj5ZsABFWLAMLxuxDBI+WbIHAAwREjmwBy+wBNCwBxCxEAGwCitYIdgb9FmwE9AwMQERFhYzETMRNjcRMxEjEQYHFSM1IiYnEQFXAYmglXl4wcFyf5X47wQFsP4ymoQBNv7SDSECtvpQAlsiDe7o2doB1wABAIMAAAPZBDsAFgBQsgYXGBESOQCwAEVYsAsvG7ELGj5ZsABFWLAVLxuxFRo+WbAARViwAC8bsQASPlmyDxUAERI5sA8vsQcBsAorWCHYG/RZsATQsA8QsBLQMDEhIxEGBxUjNSYmJxEzERYXETMRNjcRMwPZukZTlrC7ArkFr5ZURboBiBMJh4UNzLUBQ/610xoBGP7qChECGgABAIkAAAS6BbAAEQBHsgUSExESOQCwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbAARViwCS8bsQkSPlmyBQEAERI5sAUvsQ4BsAorWCHYG/RZMDEzETMRNjMyFhcRIxEmJiMiBxGJwLnL+PIDwAGJo7zIBbD9pDXY3/4uAc2Yhjf9TAACAD//6gW9BcMAHQAlAGeyFyYnERI5sBcQsCTQALAARViwDy8bsQ8ePlmwAEVYsAAvG7EAEj5Zsh8PABESObAfL7ETAbAKK1gh2Bv0WbAE0LAfELAL0LAAELEYAbAKK1gh2Bv0WbAPELEjAbAKK1gh2Bv0WTAxBSAAETUmJjUzFBYXNBI2MyAAERUhFRQWMzI3FwYGASE1NCYjIgID6f7i/rOZpphQV479lgECARz8gt7Ms6YvQNL94AK+s6uewhYBUQEpWxPFolp9FLQBH6L+o/6+bF3c91OPLTUDWiHZ5f79AAAC/97/7ARjBE4AGQAhAHWyFCIjERI5sBQQsBvQALAARViwDS8bsQ0aPlmwAEVYsAAvG7EAEj5Zsh4NABESObAeL7S/Hs8eAl2xEQGwCitYIdgb9FmwA9CwHhCwCdCwABCxFQGwCitYIdgb9FmyFw0AERI5sA0QsRoBsAorWCHYG/RZMDEFIgA1JiY1MxQXPgIzMhIRFSEWFjMyNxcGASIGByE1JiYCvdz+7Hh3k2UUhMhw0+r9IwSziq5vcYj+2XCYEgIeCIgUASH6Ha6GkzCCyW7+6v79TaDFkljRA8qjkw6NmwABAKP+1gTMBbAAFgBfshUXGBESOQCwDi+wAEVYsAIvG7ECHj5ZsABFWLAGLxuxBh4+WbAARViwAC8bsQASPlmyBAACERI5sAQvsAjQsA4QsQ8BsAorWCHYG/RZsAQQsRYBsAorWCHYG/RZMDEhIxEzETMBMwEWABUQAiMnMjY1JiYnIQFkwcGFAgHi/fj4AQ355gKQkALHx/7sBbD9jwJx/YgW/tL6/vj+5JjBycrSAQAAAQCa/v4EGQQ6ABYAe7INFxgREjkAsAcvsABFWLARLxuxERo+WbAARViwFS8bsRUaPlmwAEVYsA8vG7EPEj5ZsBPQsBMvsp8TAV2y/xMBXbKfEwFxtL8TzxMCXbIvEwFdss8TAXGwANCwBxCxCAGwCitYIdgb9FmwExCxDgGwCitYIdgb9FkwMQEWFhUUBgYHJzY1NCYnIxEjETMRMwEzAn/DzmSscDD4raWyurpbAYrgAmQf4rRdxXwTkjnmipIC/jMEOv42AcoA//8AL/6bBagFsAAmAN0AAAAHABAEdP+9//8ALP6bBLcEOgAmAPIAAAAHABADg/+9AAEAsf5LBP4FsAAVAKmyChYXERI5ALAARViwAC8bsQAePlmwAEVYsAMvG7EDHj5ZsABFWLAILxuxCBQ+WbAARViwEy8bsRMSPlmwAtCwAi+yXwIBXbLPAgFdsh8CAXG0bwJ/AgJxtL8CzwICcbQPAh8CAnKy7wIBcbKfAgFxsk8CAXGy/wIBXbKvAgFdsi8CAV2yPwIBcrAIELENAbAKK1gh2Bv0WbACELERAbAKK1gh2Bv0WTAxAREhETMRFAYjIic3FjMyNjURIREjEQFyAszAq5w8Ng4lPUFI/TTBBbD9bgKS+f2ouhKaDmdcAtX9fwWwAAABAJH+SwP1BDoAFgChsgoXGBESOQCwAEVYsAAvG7EAGj5ZsABFWLADLxuxAxo+WbAARViwCC8bsQgUPlmwAEVYsBQvG7EUEj5ZsALQsAIvsm8CAV20vwLPAgJdsj8CAXG0zwLfAgJxsg8CAXK0nwKvAgJxsv8CAV2yDwIBcbKfAgFdsi8CAV20bwJ/AgJysAgQsQ4BsAorWCHYG/RZsAIQsRIBsAorWCHYG/RZMDEBESERMxEUBiMiJzcWFxcyNjURIREjEQFLAfG5q5g8NA8RPBRCSP4PugQ6/isB1fttqrISkwcFAWhcAif+MgQ6AP//AKn+mwW7BbAAJgAsAAAABwAQBIf/vf//AJz+mwS0BDoAJgD0AAAABwAQA4D/vf//AKn+mwb5BbAAJgAxAAAABwAQBcX/vf//AJ3+mwYHBDoAJgDzAAAABwAQBNP/vQACAF3/7AUSBcQAFwAfAGGyCCAhERI5sAgQsBjQALAARViwAC8bsQAePlmwAEVYsAgvG7EIEj5Zsg0ACBESObANL7AAELERAbAKK1gh2Bv0WbAIELEYAbAKK1gh2Bv0WbANELEbAbAKK1gh2Bv0WTAxASAAERUUAgQjIAARNSE1EAIjIgcHJzc2ATISNyEVFBYCgAEuAWSc/uqn/uP+wQP09N2liz0vFp4BIaneD/zP0wXE/of+sVTF/r+2AVkBRXUHAQIBHDoajw1Y+sYBBdsi2uQAAAEAaP/rBCwFsAAbAGqyCxwdERI5ALAARViwAi8bsQIePlmwAEVYsAsvG7ELEj5ZsAIQsQABsAorWCHYG/RZsATQsgUCCxESObAFL7ALELAQ0LALELETAbAKK1gh2Bv0WbAFELEZAbAKK1gh2Bv0WbAFELAb0DAxASE1IRcBFhYVFAQjIiYmNTMUFjMyNjU0JiMjNQMd/XYDawH+a9np/vPghtt2wJx7iaOmno0FEp59/h4O58bD6Gm+gnKaknidjpcAAQBp/nUEKAQ6ABoAXbILGxwREjkAsAsvsABFWLACLxuxAho+WbEAAbAKK1gh2Bv0WbAE0LIFAgsREjmwBS+wCxCwENCwCxCxEwGwCitYIdgb9FmwBRCxGAOwCitYIdgb9FmwBRCwGtAwMQEhNSEXARYWFRQEIyImJjUzFBYzMjY1ECUjNQMM/YgDZQH+ctTo/vTehNd6up59jaT+yaADoZl2/hEQ4cXD52a/g3GflXkBIgiXAP//ADr+SwR0BbAAJgCxRAAAJgImq0AABwJUAPAAAP//ADv+SwOWBDoAJgDsTwAAJgImrI4BBwJUAOEAAAAIALIABgFdMDH//wA5/ksFDgWwACYAPAAAAAcCVAOnAAD//wAp/ksEHAQ6ACYAXAAAAAcCVAK1AAAAAgBXAAAEZQWwAAoAEwBSsgQUFRESObAEELAN0ACwAEVYsAEvG7EBHj5ZsABFWLADLxuxAxI+WbIAAQMREjmwAC+wAxCxCwGwCitYIdgb9FmwABCxDAGwCitYIdgb9FkwMQERMxEhIiQ1NDY3AREhIgYVFBYXA6PC/d/k/vf/4AFt/qGMoZ+KA3MCPfpQ8svH6wT9KgI4loCCnwEAAgBZAAAGZwWwABcAHwBcsgcgIRESObAHELAY0ACwAEVYsAgvG7EIHj5ZsABFWLAALxuxABI+WbIHCAAREjmwBy+wABCxGAGwCitYIdgb9FmwCtCyEAAIERI5sAcQsRkBsAorWCHYG/RZMDEhIiQ1NCQ3IREzETc2Njc2JzMXFgcGBiMlESEiBhQWFwJH5f73AQHjAWrBWG9yAwRAuhYvAwTlw/7v/qCOnpiF9MnG7QMCPfrrAQKSe6KnRJduw+idAjiX/p8EAAACAGT/5wZuBhgAHwArAIayGiwtERI5sBoQsCrQALAARViwBi8bsQYgPlmwAEVYsAMvG7EDGj5ZsABFWLAYLxuxGBI+WbAARViwHC8bsRwSPlmyBQMYERI5sBgQsQsBsAorWCHYG/RZshEDGBESObIaAxgREjmwAxCxIgGwCitYIdgb9FmwHBCxKAGwCitYIdgb9FkwMRMQEjMyFxEzEQYWMzY2NzYnNxYWBw4CIwYnBiMiAjUBJiMiBhUUFjMyNydk4sS3arkCX06JlwQEQbMcKQICedmJ8k5s28DkAsdSoYeUkYinUwUCCQEIAT2DAk37QV94AtC9utgBZsdmqfmEBLq2ARv0ATGG396tv5M+AAEANv/jBdUFsAAnAGayECgpERI5ALAARViwCS8bsQkePlmwAEVYsCEvG7EhEj5ZsgEoCRESObABL7EAAbAKK1gh2Bv0WbAJELEHAbAKK1gh2Bv0WbIPAAEREjmwIRCxFQGwCitYIdgb9FmyGiEJERI5MDETNTM2NjU0ISE1IRYWFRQHFhMVFBYzNjY3NiczFxYHBgIjBAM1NCYn/pufk/7L/qABa+/87dsFU0F0hgQEQboXMAME9sf+vQ+HdQJ5ngJ7g/ueAdHJ6GJF/vxQT1sCzrm72Fi7gP3+1wgBTUB4kAEAAAEAMf/jBOgEOgAnAGOyDygpERI5ALAARViwHy8bsR8aPlmwAEVYsA4vG7EOEj5ZsQIBsAorWCHYG/RZsgcOHxESObIXKB8REjmwFy+xFAGwCitYIdgb9FmwHxCxHQGwCitYIdgb9FmyJRQXERI5MDElBjM2Njc2JzMWFgcGBiMGJic1NCMjJzM2NjU0JiMhJyEWFhUUBxYXAucCX3B2AwRCtC0YAQTnuIeJB9jNAsB6bn11/vsGARjE3Ly2BNVYApuJmaaGgDnN8ANwg0edlgFXSlVdlgOnmJ1KNLIAAAEAUv7XA/UFrwAhAGCyICIjERI5ALAXL7AARViwCS8bsQkePlmwAEVYsBovG7EaEj5ZsgEiCRESObABL7EAAbAKK1gh2Bv0WbAJELEHAbAKK1gh2Bv0WbIPAAEREjmwGhCwErAKK1jYG9xZMDETNTM2NjUQISE1IRYWFRQHFhMVMxUUBgcnNjcjJic1NCYjr6mkm/7K/vEBIej05d4EqWFNalEOazwDkncCeZcBfYUBBZcD0sniZEb++KmUYchASHNuNKuPfo0AAQB5/scD2QQ6ACAAYLIgISIREjkAsBcvsABFWLAILxuxCBo+WbAARViwGi8bsRoSPlmyASEIERI5sAEvsQABsAorWCHYG/RZsAgQsQYBsAorWCHYG/RZsg8AARESObAaELASsAorWNgb3FkwMRMnMzY1NCMhNSEWFxYVFAcWFxUzFRQGByc2NyMmJzU0I8IB2+n1/ukBJ91sVr69AZpiTWlUDWczAtoBuJcCobKWA2dThKFJNcpMlGHKPkh0fSGFXrQAAAEARP/rB3AFsAAjAGWyACQlERI5ALAARViwDi8bsQ4ePlmwAEVYsCAvG7EgEj5ZsABFWLAHLxuxBxI+WbAOELEAAbAKK1gh2Bv0WbAHELEIAbAKK1gh2Bv0WbAgELETAbAKK1gh2Bv0WbIZDiAREjkwMQEhAwICBgcjNTc+AjcTIREUFjMyNjc2JzcWFgcGAgcHIiY1BCf+GhoPWayQPyhdZDQLHgNfWU+ClwQCP7ocKQID6cMus7cFEv2//t7+3IkCnQIHa+rzAsL7rGB0zbzA0gFmx2bs/toSArq0AAEAP//rBjoEOgAhAGWyICIjERI5ALAARViwDC8bsQwaPlmwAEVYsB4vG7EeEj5ZsABFWLAGLxuxBhI+WbAMELEAAbAKK1gh2Bv0WbAGELEHAbAKK1gh2Bv0WbAeELERAbAKK1gh2Bv0WbIWHgwREjkwMQEhAwIGByM1NzY2NxMhERQWMzI2NzYnMxcWBw4CIyImJwMx/rsXFJylQTZVTQ0XAq9aT2x7BARBsxYwAwJsvniuswEDof5a/uvkAqMECqfTAg/9IWB5t6uyy1CxfJrmebixAAABAKn/5wdxBbAAHQCwshQeHxESOQCwAEVYsAAvG7EAHj5ZsABFWLAZLxuxGR4+WbAARViwES8bsRESPlmwAEVYsBcvG7EXEj5ZsBEQsQQBsAorWCHYG/RZsgoAERESObAXELAc0LAcL7LvHAFxsl8cAV2yzxwBXbIfHAFxtG8cfxwCcbS/HM8cAnGynxwBcbJPHAFxsv8cAV2yrxwBXbIvHAFdtA8cHxwCcrI/HAFysRUBsAorWCHYG/RZMDEBERQWMzY2NzYnNxYWBw4CIwYmJxEhESMRMxEhEQTpXUqGlAQEQrsbKwICe9iKq7UI/ULBwQK+BbD7rGVvAs26t9sBYspnqPuDBLi7ASf9fwWw/W4CkgABAJD/5wZNBDoAHAClshsdHhESOQCwAEVYsAQvG7EEGj5ZsABFWLAILxuxCBo+WbAARViwGS8bsRkSPlmwAEVYsAIvG7ECEj5ZsAfQsAcvsm8HAV20vwfPBwJdsj8HAXG0zwffBwJxsg8HAXK0nwevBwJxsv8HAV2yDwcBcbKfBwFdsi8HAV20bwd/BwJysQABsAorWCHYG/RZsBkQsQ0BsAorWCHYG/RZshIZCBESOTAxASERIxEzESERMxEUFjM2Njc2JzMXFgcGAiMGJicDQ/4GubkB+rlcTWx8BARBshcwAwTmu6ezCAHN/jMEOv4qAdb9IWR1ArWrrNFTsXnq/vEEt7sAAQB2/+sEoAXFACIASbIVIyQREjkAsABFWLAJLxuxCR4+WbAARViwAC8bsQASPlmwCRCxDgGwCitYIdgb9FmwABCxFgGwCitYIdgb9FmyGwAJERI5MDEFIiQCJxE0EiQzMhcHJiMiAhUVFBYWMzY2NzYnMxcWBw4CArmk/viVApQBCqXchzuGoqzXYrBxjZYDAzW6JhMBAnveFZsBGK0BEK8BHp1YikT+/tL+g9V1ApmGms+zW1uIyW0AAQBl/+sDxwROAB4ARrITHyAREjkAsABFWLATLxuxExo+WbAARViwCy8bsQsSPlmxAAGwCitYIdgb9FmyBQsTERI5sBMQsRgBsAorWCHYG/RZMDElNjY3NCczFgcGBiMiADU1NDY2MzIXByYjIgYVFRQWAlFgWgIUshwBBMSt3P7wdtaLuWAsY4qDm6aCAlBZenKWVpmpATL3Hpf5jEKQOtyzH6vbAAEAI//nBUcFsAAYAE+yBRkaERI5ALAARViwAi8bsQIePlmwAEVYsBUvG7EVEj5ZsAIQsQABsAorWCHYG/RZsATQsAXQsBUQsQkBsAorWCHYG/RZsg4CFRESOTAxASE1IRUhERQWMzY2Eic3FhYHDgIjBiYnAf7+JQSA/hxcTIaUCEK6GysDAnnZiaq3CAUSnp78SGByAtABbtsBYspnqfmEBLe8AAABAEb/5wS3BDoAGABPshYZGhESOQCwAEVYsAIvG7ECGj5ZsABFWLAVLxuxFRI+WbACELEAAbAKK1gh2Bv0WbAE0LAF0LAVELEJAbAKK1gh2Bv0WbIOFQIREjkwMQEhNSEVIREUFjM2Njc2JzMWFgcGBiMGJicBrP6aA4v+lV5NcXcDBECyKhsBBOi5qrMIA6SWlv21Y3QCnYmXrn2MPNDvBLm5AAEAlv/sBP8FxQApAHKyJCorERI5ALAARViwFi8bsRYePlmwAEVYsAsvG7ELEj5ZsQMBsAorWCHYG/RZsAsQsAbQsiULFhESObAlL7LPJQFdsp8lAXGxJgGwCitYIdgb9FmyECYlERI5sBYQsBvQsBYQsR4BsAorWCHYG/RZMDEBFBYzMjY1MxQGBiMgJDU0JSYmNTQkITIWFhUjNCYjIgYVFBYXMxUjBgYBWM+wm8zBjf6d/vv+xAEUeIYBJQEGk/WMwcGSp8Kto8TEsbUBkniSmHSDvmflxf9WMKZlxNtlunVnj4h2dX0CngJ+AP//AC/+SwWsBbAAJgDdAAAABwJUBEUAAP//ACz+SwS7BDoAJgDyAAAABwJUA1QAAAACAG8EcALJBdYABQANACMAsAsvsAfQsAcvsAHQsAEvsAsQsATQsAQvsAXQGbAFLxgwMQETMxUDIwEzFRYXByY1AZF0xN9Z/t6oA1BJsgSUAUIV/sMBUlt7VTtfuwD//wAlAh8CDQK2AAYAEQAA//8AJQIfAg0CtgAGABEAAP//AKMCiwSNAyIARgGv2QBMzUAA//8AkQKLBckDIgBGAa+EAGZmQAAAAgAN/msDoQAAAAMABwAIALIFAgMrMDEBITUhNSE1IQOh/GwDlPxsA5T+a5dnlwAAAQBgBDEBeAYTAAgAIbIICQoREjkAsABFWLAALxuxACA+WbIFCQAREjmwBS8wMQEXBgcVIzU0NgEOal0DuGEGE0h/k4h0ZsgAAQAwBBYBRwYAAAgAIbIICQoREjkAsABFWLAELxuxBCA+WbIACQQREjmwAC8wMRMnNjc1MxUGBplpXQO3AWEEFkiCkJCCZMcAAQAk/uUBOwC1AAgAH7IICQoREjkAsAkvsQQFsAorWCHYG/RZsADQsAAvMDETJzY3NTMVFAaNaVsDuWP+5Ul/knZkZcoAAAEATwQWAWcGAAAIAAwAsAgvsATQsAQvMDEBFRYXByYmJzUBBgRdak1fAgYAk5B/SEDCYYcA//8AaAQxArsGEwAmAYQIAAAHAYQBQwAA//8APAQWAoYGAAAmAYUMAAAHAYUBPwAAAAIAJP7TAmQA9gAIABEAMbIKEhMREjmwChCwBdAAsBIvsQQFsAorWCHYG/RZsADQsAAvsAnQsAkvsAQQsA3QMDETJzY3NTMVFAYXJzY3NTMVFAaNaVsDuWPdaVsDumH+00iJmbmkbNNASImZuaRr0QABAEYAAAQkBbAACwBMALAARViwCC8bsQgePlmwAEVYsAYvG7EGGj5ZsABFWLAKLxuxCho+WbAARViwAi8bsQISPlmwChCxAAGwCitYIdgb9FmwBNCwBdAwMQEhESMRITUhETMRIQQk/my6/nABkLoBlAOh/F8DoZkBdv6KAAABAFf+YAQ0BbAAEwB+ALAARViwDC8bsQwePlmwAEVYsAovG7EKGj5ZsABFWLAOLxuxDho+WbAARViwAi8bsQIUPlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbEGAbAKK1gh2Bv0WbAOELEIAbAKK1gh2Bv0WbAJ0LAQ0LAR0LAGELAS0LAT0DAxISERIxEhNSERITUhETMRIRUhESEENP5quv5zAY3+cwGNugGW/moBlv5gAaCXAwqZAXb+ipn89gAAAQCKAhcCIgPLAA0AF7IKDg8REjkAsAMvsAqwCitY2BvcWTAxEzQ2MzIWFRUUBiMiJjWKb1xbcm5eXW8DBFdwbV0lV25vWAD//wCU//UDLwDRACYAEgQAAAcAEgG5AAD//wCU//UEzgDRACYAEgQAACcAEgG5AAAABwASA1gAAAABAFICAgEsAtUACwAZsgMMDRESOQCwAy+xCQWwCitYIdgb9FkwMRM0NjMyFhUUBiMiJlI2NjY4ODY2NgJrLT09LS08PAAABgBE/+sHVwXFABUAIwAnADUAQwBRALyyAlJTERI5sAIQsBvQsAIQsCbQsAIQsCjQsAIQsDbQsAIQsEnQALAARViwGS8bsRkePlmwAEVYsBIvG7ESEj5ZsAPQsAMvsAfQsAcvsBIQsA7QsA4vsBkQsCDQsCAvsiQSGRESObAkL7ImGRIREjmwJi+wEhCxKwSwCitYIdgb9FmwAxCxMgSwCitYIdgb9FmwKxCwOdCwMhCwQNCwIBCxRwSwCitYIdgb9FmwGRCxTgSwCitYIdgb9FkwMQE0NjMyFzYzMhYVFRQGIyInBiMiJjUBNDYzMhYVFRQGIyImNQEnARcDFBYzMjY1NTQmIyIGFQUUFjMyNjU1NCYjIgYVARQWMzI2NTU0JiMiBhUDN6eDmE1Pl4Oop4KZT0yXgqr9DaeDhKelhIKqAWloAsdos1hKSFZXSUdZActYSUhWV0lIV/tCWEpHV1ZKSFgBZYOpeXmoi0eDqXh4p4sDe4OqqohIgaqni/wcQgRyQvw3T2VjVUpPZGNUSk9lZlJKT2RkUwLqTmViVUlOZmVTAAABAGwAmQIgA7UABgAQALAFL7ICBwUREjmwAi8wMQEBIwE1ATMBHgECjf7ZASeNAib+cwGEEwGFAAEAWQCYAg4DtQAGABAAsAAvsgMHABESObADLzAxEwEVASMBAecBJ/7ZjgEC/v4Dtf57E/57AY4BjwABADsAbgNqBSIAAwAJALAAL7ACLzAxNycBF6NoAsdobkIEckIA//8ANgKbArsFsAMHAiAAAAKbABMAsABFWLAJLxuxCR4+WbAN0DAxAAABAHoCiwL4BboADwBUsgoQERESOQCwAEVYsAAvG7EAHj5ZsABFWLADLxuxAx4+WbAARViwDS8bsQ0WPlmwAEVYsAYvG7EGFj5ZsgENAxESObADELEKA7AKK1gh2Bv0WTAxExc2MyARESMRJiMiBxEjEfoeSpIBBKoDjW4sqgWre4r+xv4LAea5bf3OAyAAAQBbAAAEaAXEACkAmrIhKisREjkAsABFWLAZLxuxGR4+WbAARViwBi8bsQYSPlmyKRkGERI5sCkvsQACsAorWCHYG/RZsAYQsQQBsAorWCHYG/RZsAjQsAnQsAAQsA7QsCkQsBDQsCkQsBXQsBUvtg8VHxUvFQNdsRICsAorWCHYG/RZsBkQsB3QsBkQsSABsAorWCHYG/RZsBUQsCTQsBIQsCbQMDEBIRcUByEHITUzNjY3NScjNTMnIzUzJzQ2MzIWFSM0JiMiBhUXIRUhFyEDFf6xAz4C3QH7+E0oMgIDqqYEop0G9ci+3r9/b2mCBgFc/qkEAVMB1kSaW52dCYNgCEV9iH23x+7UsWt8mn23fYgABQAfAAAGNgWwABsAHwAjACYAKQCzALAARViwFy8bsRcePlmwAEVYsBovG7EaHj5ZsABFWLAMLxuxDBI+WbAARViwCS8bsQkSPlmyEAwXERI5sBAvsBTQsBQvtA8UHxQCXbAk0LAkL7AY0LAYL7AA0LAAL7AUELETAbAKK1gh2Bv0WbAf0LAj0LAD0LAQELAc0LAcL7Ag0LAgL7AE0LAEL7AQELEPAbAKK1gh2Bv0WbAL0LAp0LAH0LImFwwREjmyJwkaERI5MDEBMxUjFTMVIxEjASERIxEjNTM1IzUzETMBIREzASEnIwUzNSElMycBNSMFV9/f39/C/sH+YsDZ2dnZwAFRAY+//GEBO2HaAhTM/tT+THd3AuBoA6yYlJj+GAHo/hgB6JiUmAIE/fwCBPzQlJSUmLb8558AAAIAp//sBgMFsAAfACgAprIjKSoREjmwIxCwEdAAsABFWLAWLxuxFh4+WbAARViwGi8bsRoaPlmwAEVYsB4vG7EeGj5ZsABFWLAKLxuxChI+WbAARViwFC8bsRQSPlmwHhCxAAGwCitYIdgb9FmwChCxBQGwCitYIdgb9FmwABCwDtCwD9CyIRQWERI5sCEvsRIBsAorWCHYG/RZsB4QsB3QsB0vsBYQsScBsAorWCHYG/RZMDEBIxEUFjMyNxcGIyImNREjBgYHIxEjESEyFhczETMRMwEzMjY1NCYnIwX+yjZBIzQBSUZ8fo8U58fJuQF5yu0Uj7rK+2LAi4uHhMsDq/1hQUEMlhSWigKft70C/csFsMC2AQb++v6SjZeYjgL//wCo/+wIEAWwACYANgAAAAcAVwRVAAAABwAfAAAFzAWwAB8AIwAnACsAMAA1ADoA/rI5OzwREjmwORCwHtCwORCwItCwORCwJ9CwORCwK9CwORCwLdCwORCwM9AAsABFWLACLxuxAh4+WbAARViwDC8bsQwSPlmwAEVYsBAvG7EQEj5ZsggCDBESObAIL7AE0LAEL7AA0LAEELEGAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WbAO0LAKELAS0LAIELAU0LAGELAW0LAEELAY0LACELAa0LAEELAc0LACELAe0LAIELAg0LAGELAi0LAIELAk0LAGELAm0LAIELAo0LAGELAq0LAKELAt0LIwAgwREjmwChCwMtCyNQIMERI5sAQQsDbQsjkCDBESOTAxATMTMwMzFSMHMxUjAyMDIwMjAyM1MycjNTMDMxMzEzMBMzcjBTM3IwUzJyMDNyMXFyU3IxcXATMnJwcDp+pYwWWHqCnR8Wa4VuVYuGfszCmjgmXAW/FWs/5IcCO4AnFsJLP+3K4iaNYCNwEXAmUBNQIb/sAyARgYA9QB3P4kmMKY/h4B4v4eAeKYwpgB3P4kAdz8ysLCwsLC/pwKBtLSBgfLAsQHrbEAAAIAjAAABZ4EOgANABsAZgCwAEVYsBYvG7EWGj5ZsABFWLAALxuxABo+WbAARViwCy8bsQsSPlmwAEVYsA4vG7EOEj5ZsREBsAorWCHYG/RZsgURABESObAFL7AAELEKAbAKK1gh2Bv0WbIPCgsREjmwDy8wMQEyFhcRIxE0JichESMRAREzESEyNjcRMxEGBgcCuq+oBLllb/69uQGJuQE+cWcBuQKlrQQ6wb/+owFMf3gB/F8EOvvGAt39u3V+Aq/9TsLEAgAAAQBf/+wEHAXEACMAi7IVJCUREjkAsABFWLAWLxuxFh4+WbAARViwCS8bsQkSPlmyIwkWERI5sCMvsQACsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAAQsAzQsCMQsA/QsCMQsB/QsB8vtg8fHx8vHwNdsSACsAorWCHYG/RZsBDQsB8QsBPQsBYQsRsBsAorWCHYG/RZMDEBIRYWMzI3FwYjIgADIzUzNSM1MxIAMzIXByYjIgYHIRUhFSEDUf6ABLSldGYUeHj4/uMGsrKysgoBHfNqhxRtbqSxBgF//oABgAIdw9IioB4BJQEMfIl9AQYBHx+iI8u8fYkABAAfAAAFvAWwABkAHgAjACgAvACwAEVYsAsvG7ELHj5ZsABFWLABLxuxARI+WbALELEoAbAKK1gh2Bv0WbIkKAEREjmwJC+ycCQBcbYAJBAkICQDXbEcAbAKK1gh2Bv0WbAd0LAdL7JwHQFxtgAdEB0gHQNdsSABsAorWCHYG/RZsCHQsCEvsnAhAXGyICEBXbEAAbAKK1gh2Bv0WbAgELAD0LAdELAG0LAGL7AcELAH0LAkELAK0LAkELAP0LAcELAS0LAdELAU0LAULzAxAREjESM1MzUjNTM1ITIWFzMVIxcHMxUjBiEBJyEVIQchFSEyASEmIyEBpcDGxsbGAhmx6zbswwMCwuVr/owBRAT9bQKVP/2qAVms/fsCSlSe/qgCOv3GAzCXXpf0hHCXMiyX9gG3NF6XWQHlVgAAAQAqAAAD+AWwABoAaQCwAEVYsBkvG7EZHj5ZsABFWLAMLxuxDBI+WbAZELEYAbAKK1gh2Bv0WbAB0LAYELAU0LAUL7AD0LAUELETAbAKK1gh2Bv0WbAG0LATELAO0LAOL7EJAbAKK1gh2Bv0WbINCQ4REjkwMQEjFhczByMGBiMBFSMBJzM2NjchNyEmJyE3IQPK7EARyS6YEvbbAe3j/e4B+X2cFf29LgITMPb+5y8DnQUSUXWesrT9xAwCaX0Ba1yevgieAAABACD/7gQaBbAAHgCQALAARViwES8bsREePlmwAEVYsAUvG7EFEj5ZshMRBRESObATL7AX0LAXL7IAFwFdsRgBsAorWCHYG/RZsBnQsAjQsAnQsBcQsBbQsAvQsArQsBMQsRQBsAorWCHYG/RZsBXQsAzQsA3QsBMQsBLQsA/QsA7QsAUQsRoBsAorWCHYG/RZsh4FERESObAeLzAxARUGAgQjIicRBzU3NQc1NxEzETcVBxU3FQcRNhIRNQQaApD+969QbPT09PTA+/v7+77JAwNk0v7HphICWm+yb5lvsm8BWf7/c7JzmXOyc/3eAgEQAQlYAAABAF0AAATrBDoAFwBdsgAYGRESOQCwAEVYsBYvG7EWGj5ZsABFWLAELxuxBBI+WbAARViwCi8bsQoSPlmwAEVYsBAvG7EQEj5ZsgAKFhESObAAL7EJAbAKK1gh2Bv0WbAM0LAAELAV0DAxARYAERUjNSYCJxEjEQYCBxUjNRIANzUzAv/nAQW5Ap6TuY+fArkDAQffuQNxIf6N/tq3yN8BBSD9NALKIf712MbFAR0BbSLJAAACAB8AAAUDBbAAFgAfAHAAsABFWLAMLxuxDB4+WbAARViwAy8bsQMSPlmyBgMMERI5sAYvsQUBsAorWCHYG/RZsAHQsAYQsArQsAovtA8KHwoCXbEJAbAKK1gh2Bv0WbAU0LAGELAV0LAKELAX0LAMELEfAbAKK1gh2Bv0WTAxASERIxEjNTM1IzUzESEyBBUUBAchFSEBITI2NTQmJyEC/P6xv8/Pz88CGeoBEv758v6jAU/+sQFam6Koj/6gARP+7QETnomdAtnuy9XnAYkBJpKMf50BAAAEAHr/6wWDBcUAGwAnADUAOQC7shw6OxESObAcELAA0LAcELAo0LAcELA40ACwAEVYsAovG7EKHj5ZsABFWLAlLxuxJRI+WbAKELAD0LADL7IOCgMREjm2Kg46DkoOA12wChCxEQSwCitYIdgb9FmwAxCxGASwCitYIdgb9FmyGwMKERI5tDYbRhsCXbIlGwFdsCUQsB/QsB8vsCUQsSsEsAorWCHYG/RZsB8QsTIEsAorWCHYG/RZsjYlChESObA2L7I4CiUREjmwOC8wMQEUBiMiJjU1NDYzMhYVIzQmIyIGFRUUFjMyNjUBNDYgFhUVFAYgJjUXFBYzMjY1NTQmIyIGFQUnARcCqJh7eqGee3mciklCQU1PQT1MARCnAQaop/78qopYSkhWV0lHWf4GaQLHaQQebpCoiUeCq5FvOk1mUklOZUw6/UeDqaiLR4Opp4sGT2VjVUpPZGNU80IEckIAAAIAaP/rA2oGEwAXACEAZ7ITIiMREjmwExCwGNAAsABFWLAMLxuxDCA+WbAARViwAC8bsQASPlmyBgwAERI5sAYvsQUBsAorWCHYG/RZsBPQsAAQsRcBsAorWCHYG/RZsAYQsBjQsAwQsR8BsAorWCHYG/RZMDEFIiY1BiM1MjcRNjYzMhYVFRQCBxUUFjMDNjY1NTQmIyIHAszC0mJucV8BnYV4l86ra3DbWWcwJmcDFerrHLAjAiSyxq2TJcH+j2timo0CY1X1eydSTNEABACiAAAHxgXAAAMAEAAeACgAprIfKSoREjmwHxCwAdCwHxCwBNCwHxCwEdAAsABFWLAnLxuxJx4+WbAARViwJS8bsSUePlmwAEVYsAcvG7EHHj5ZsABFWLAiLxuxIhI+WbAARViwIC8bsSASPlmwBxCwDdCwAtCwAi+yEAIBXbEBA7AKK1gh2Bv0WbANELEUA7AKK1gh2Bv0WbAHELEbA7AKK1gh2Bv0WbIhJSAREjmyJiAlERI5MDEBITUhATQ2IBYVFRQGIyImNRcUFjMyNjc1NCYjIgYVASMBESMRMwERMwek/ZkCZ/11ugE4u7mcnrqjX1ZUXQFfVVRf/rzM/a+5ywJUtwGcjgI9m767o12duruhBWJramBlYWtrY/ubBG77kgWw+48EcQAAAgBnA5cEOAWwAAwAFABuALAARViwBi8bsQYePlmwAEVYsAkvG7EJHj5ZsABFWLATLxuxEx4+WbIBFQYREjmwAS+yAAkBERI5sgMBBhESObAE0LIIAQkREjmwARCwC9CwBhCwDbAKK1jYG9xZsAEQsA/QsA0QsBHQsBLQMDEBAyMDESMRMxMTMxEjASMRIxEjNSED3ow0jFpwkJBwWv4Lk1uUAYIFIf52AYn+dwIZ/nEBj/3nAcj+OAHIUQACAJj/7ASTBE4AFQAcAGWyAh0eERI5sAIQsBbQALAARViwCi8bsQoaPlmwAEVYsAIvG7ECEj5ZshoKAhESObAaL7EPCrAKK1gh2Bv0WbACELETCrAKK1gh2Bv0WbIVCgIREjmwChCxFgqwCitYIdgb9FkwMSUGIyImAjU0EjYzMhYWFxUhERYzMjcBIgcRIREmBBa3u5H0h5D4hIXjhAP9AHeaxKz+kJd6AhxzXnKdAQGTjwEDn4vzkD7+uG56Ayp6/usBHnEA//8AVP/1BbMFmwAnAcb/2gKGACcBlADmAAABBwIkAxQAAAAQALAARViwBS8bsQUePlkwMf//AGT/9QZTBbQAJwIfACYClAAnAZQBpQAAAQcCJAO0AAAAEACwAEVYsA4vG7EOHj5ZMDH//wBj//UGSQWkACcCIQAIAo8AJwGUAYMAAAEHAiQDqgAAABAAsABFWLABLxuxAR4+WTAx//8AWf/1Bf0FpAAnAiMAHwKPACcBlAEgAAABBwIkA14AAAAQALAARViwBS8bsQUePlkwMQACAGr/6wQyBewAGwAqAF6yFSssERI5sBUQsCPQALANL7AARViwFS8bsRUSPlmyAA0VERI5sAAvsgMAFRESObANELEHAbAKK1gh2Bv0WbAAELEcAbAKK1gh2Bv0WbAVELEjAbAKK1gh2Bv0WTAxATIWFy4CIyIHJzc2MyAAERUUAgYjIgA1NTQAFyIGFRUUFjMyNjU1JyYmAjxdpjoOaaZggZsQMXSXAQcBH3jekNr++AEA5Iyfn4qOnwQcoAP+TUSM2Xk7lxUw/k7+bjK8/talASP2DtwBEJi7oBCqz/nbPQ9aagABAKn/KwTlBbAABwAoALAEL7AARViwBi8bsQYePlmwBBCwAdCwBhCxAgGwCitYIdgb9FkwMQUjESERIxEhBOW5/Ta5BDzVBe36EwaFAAABAEX+8wSrBbAADAA3ALADL7AARViwCC8bsQgePlmwAxCxAgGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIRUhNQEBNSEVIQEDa/27A4X7mgJh/Z8EGfzHAkYCQf1KmI8CzALSkJj9QgABAKgCiwPrAyIAAwAcALAARViwAi8bsQIYPlmxAQGwCitYIdgb9FkwMQEhNSED6/y9A0MCi5cAAAEAPwAABJgFsAAIAD2yAwkKERI5ALAHL7AARViwAS8bsQEePlmwAEVYsAMvG7EDEj5ZsgABAxESObAHELEGAbAKK1gh2Bv0WTAxAQEzASMDIzUhAjABq7394o31uQE7ARwElPpQAnSaAAADAGL/6wfLBE4AHAAsADwAcbIHPT4REjmwBxCwJNCwBxCwNNAAsABFWLAELxuxBBI+WbAARViwCi8bsQoSPlmwE9CwEy+wGdCwGS+yBxkEERI5shYZBBESObAKELEgAbAKK1gh2Bv0WbATELEpAbAKK1gh2Bv0WbAw0LAgELA50DAxARQCBiMiJicGBiMiJgI1NTQSNjMyFhc2NjMyABUFFBYzMjY3NzUuAiMiBhUlNCYjIgYHBxUeAjMyNjUHy37fiZHuUFHskInegH7fiJHtUVDvks4BFvlQpohyuTQLGHKSUIamBfemhXO8NQkWdZBQiKUCD5P/AJG4sbO2jwEAlxiTAQCSt7Oxuf7B8w2x3LyjJypjwGHcuQiu372oHyphxWDeuAAB/7D+SwKOBhUAFQA/sgIWFxESOQCwAEVYsA4vG7EOID5ZsABFWLADLxuxAxQ+WbEIAbAKK1gh2Bv0WbAOELETAbAKK1gh2Bv0WTAxBRQGIyInNxYzMjURNDYzMhcHJiMiFQFlpJ45OhIuIZuxoTxUGCU2tmuiqBSRDbEFGaq+FY4L2wACAGUBGAQLA/QAFQArAJGyHCwtERI5sBwQsAXQALADL7IPAwFdsA3QsA0vsgANAV2xCAGwCitYIdgb9FmwAxCwCtCwCi+wAxCxEgGwCitYIdgb9FmwDRCwFdCwFS+wDRCwGdCwGS+wI9CwIy+yACMBXbEeAbAKK1gh2Bv0WbAZELAg0LAgL7AZELEoAbAKK1gh2Bv0WbAjELAr0LArLzAxEzY2MzYXFxYzMjcVBiMiJycmByIGBwc2NjM2FxcWMzI3FwYjIicnJgciBgdmMINCUkqYQk6GZmeFTkKhRE9CgzABMIJCUkqVRFCFZgFnhU5CmEpSQoMwA4UzOgIjTh+Avm0fUx8CRDzlMzsCI00hgL1tH04jAkQ8AAABAJgAmwPaBNUAEwA5ALATL7EAAbAKK1gh2Bv0WbAE0LATELAH0LATELAP0LAPL7EQAbAKK1gh2Bv0WbAI0LAPELAL0DAxASEHJzcjNSE3ITUhExcHMxUhByED2v3tjl9srgELlf5gAf6ZX3fD/t+UAbUBj/Q7uaD/oQEGO8uh/wD//wA+AAIDgQQ9AGYAIABhQAA5mgEHAa//lv13AB0AsABFWLAFLxuxBRo+WbAARViwCC8bsQgSPlkwMQD//wCFAAED3ARQAGYAIgBzQAA5mgEHAa//3f12AB0AsABFWLACLxuxAho+WbAARViwCC8bsQgSPlkwMQAAAgArAAAD3AWwAAUACQA4sggKCxESObAIELAB0ACwAEVYsAAvG7EAHj5ZsABFWLADLxuxAxI+WbIGAAMREjmyCAADERI5MDEBMwEBIwkEAbyMAZT+cI3+bAHW/ukBHAEYBbD9J/0pAtcCD/3x/fICDgD//wC1AKcBmwT1ACcAEgAlALIABwASACUEJAACAG4CeQIzBDoAAwAHACwAsABFWLACLxuxAho+WbAARViwBi8bsQYaPlmwAhCwANCwAC+wBNCwBdAwMRMjETMBIxEz+42NATiNjQJ5AcH+PwHBAAABAFz/XwFXAO8ACAAgsggJChESOQCwCS+wBNCwBC+0QARQBAJdsADQsAAvMDEXJzY3NTMVFAbFaUgCsU+hSG1/XExbswD//wA8AAAE9gYVACYASgAAAAcASgIsAAAAAgAfAAADzQYVABUAGQCFsggaGxESObAIELAX0ACwAEVYsAgvG7EIID5ZsABFWLADLxuxAxo+WbAARViwES8bsREaPlmwAEVYsBgvG7EYGj5ZsABFWLAALxuxABI+WbAARViwFi8bsRYSPlmwAxCxAQGwCitYIdgb9FmwCBCxDQGwCitYIdgb9FmwARCwE9CwFNAwMTMRIzUzNTQ2MzIXByYjIgYVFTMVIxEhIxEzyqurz71wqx99cXdp3d0CSbq6A6uPXLXKPZwya2tej/xVBDoAAQA8AAAD6QYVABYAXgCwAEVYsBIvG7ESID5ZsABFWLAGLxuxBho+WbAARViwCS8bsQkSPlmwAEVYsBYvG7EWEj5ZsBIQsQIBsAorWCHYG/RZsAYQsQcBsAorWCHYG/RZsAvQsAYQsA7QMDEBJiMiFRUzFSMRIxEjNTM1NjYzMgURIwMwfEzI5+e5q6sBwLFlASu5BWMU0muP/FUDq492rbg9+igAAAIAPAAABjIGFQAnACsAnwCwAEVYsBYvG7EWID5ZsABFWLAILxuxCCA+WbAARViwIC8bsSAaPlmwAEVYsBIvG7ESGj5ZsABFWLAELxuxBBo+WbAARViwKi8bsSoaPlmwAEVYsCkvG7EpEj5ZsABFWLAjLxuxIxI+WbAARViwJy8bsScSPlmwIBCxIQGwCitYIdgb9FmwJdCwAdCwCBCxDQGwCitYIdgb9FmwG9AwMTMRIzUzNTQ2MzIXByYjIgYVFSE1NDYzMhcHJiMiBhUVMxUjESMRIREhIxEz56uruqpAPwovNVpiAZDPvXCrH31yd2ne3rn+cASSubkDq49vrr4RlglpYnJctco9nDJqbF6P/FUDq/xVBDoAAAEAPAAABjIGFQAoAGwAsABFWLAILxuxCCA+WbAARViwIS8bsSEaPlmwAEVYsCgvG7EoEj5ZsCEQsSIBsAorWCHYG/RZsCbQsAHQsCEQsBLQsATQsAgQsQ0BsAorWCHYG/RZsAgQsBbQsCgQsCXQsBrQsA0QsB3QMDEzESM1MzU0NjMyFwcmIyIGFRUhNTY2MzIFESMRJiMiFRUzFSMRIxEhEeerq7qqQD8KLzVaYgGQAcCxZQEruXxMyOfnuf5wA6uPb66+EZYJaWJydq24PfooBWMU0muP/FUDq/xVAAEAPP/sBJsGFQAmAHYAsABFWLAhLxuxISA+WbAARViwHS8bsR0aPlmwAEVYsBgvG7EYEj5ZsABFWLAKLxuxChI+WbAdELAQ0LAl0LEBAbAKK1gh2Bv0WbAKELEFAbAKK1gh2Bv0WbABELAO0LAhELEVAbAKK1gh2Bv0WbAOELAa0DAxASMRFBYzMjcXBiMiJjURIzUzESYnJyIVESMRIzUzNTQ2MzIWFxEzBJbKNkEjNAFJRnx+xcU9Zhi3uaurs6Bd21rKA6v9YUFBDJYUlooCn48BHxwHAd37YAOrj3Ctvjks/ooAAQBf/+wGVAYRAEwAzbIWTU4REjkAsABFWLBHLxuxRyA+WbAARViwDy8bsQ8aPlmwAEVYsEsvG7FLGj5ZsABFWLBALxuxQBo+WbAARViwCS8bsQkSPlmwAEVYsCwvG7EsEj5ZsEsQsQEBsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAEQsA3QsEcQsRQBsAorWCHYG/RZsh1ALBESObBAELEgAbAKK1gh2Bv0WbI6LEAREjmwOhCxJQGwCitYIdgb9FmyMSxAERI5sCwQsTQBsAorWCHYG/RZMDEBIxEUMzI3FwYjIiY1ESM1MzU0JiMiBhUUHgIVIzQmIyIGFRQWBBYWFRQGIyImJjUzFhYzMjY1NCYkJiY1NDYzMhcmNTQ2MzIWFRUzBk/KdyM0AU1CdoS8vGZiWFwfJR66gWJlcmoBFaxT6LmCyHG5BYtyaX9x/uelT+GvYFYsypu5ycoDq/1+nwyWFKaXAoKPVXJ1WEY7aXB8TExuWEdDRD5WeVeRr1ylYF1tVUdLUzxUdFCFuB5uUnylx8NNAAAWAFv+cgfuBa4ADQAaACgANwA9AEMASQBPAFYAWgBeAGIAZgBqAG4AdgB6AH4AggCGAIoAjgHGshCPkBESObAQELAA0LAQELAb0LAQELAw0LAQELA80LAQELA+0LAQELBG0LAQELBK0LAQELBQ0LAQELBX0LAQELBb0LAQELBh0LAQELBj0LAQELBn0LAQELBt0LAQELBw0LAQELB30LAQELB70LAQELB/0LAQELCE0LAQELCI0LAQELCM0ACwPS+wAEVYsEYvG7FGHj5Zsn5JAyuyensDK7KCdwMrsn86AyuyCj1GERI5sAovsAPQsAMvsA7QsA4vsAoQsA/QsA8vslAODxESObBQL7FvB7AKK1gh2Bv0WbIVUG8REjmwChCxHgewCitYIdgb9FmwAxCxJQewCitYIdgb9FmwDxCwKdCwKS+wDhCwLtCwLi+xNAewCitYIdgb9FmwPRCxPAqwCitYIdgb9FmwPRCwa9CwZ9CwY9CwPtCwPBCwbNCwaNCwZNCwP9CwOhCwQdCwRhCwYNCwXNCwWNCwS9CxSgqwCitYIdgb9FmwWtCwXtCwYtCwR9CwSRCwTtCwDhCxUQewCitYIdgb9FmwDxCxdgewCitYIdgb9FmwdxCwhNCwehCwhdCwexCwiNCwfhCwidCwfxCwjNCwghCwjdAwMQEUBiMiJic1NDYzMhYXExEzMhYVFAcWFhUUIwE0JiMiBhUVFBYzMjY1ATMRFAYjIiY1MxQzMjY1AREzFTMVITUzNTMRAREhFSMVJTUhESM1ARUzMjU0JxM1IRUhNSEVITUhFQE1IRUhNSEVITUhFRMzMjU0JiMjASM1MzUjNTMRIzUzJSM1MzUjNTMRIzUzAzmBZGaAAn5oZYACQ7xiclQyNND+j0pBQEpKQkBJA7pcaVJYbV1oKTb5xHHEBSjHb/htATXEBewBNm/8XH5nYssBFv1bARX9XAEUAgoBFv1bARX9XAEUvF12Ojxd/PFxcXFxcXEHIm9vb29vbwHUYnl4XnVffHhe/rMCJUlNVCANRi2bAUhFTk5FcEVOTkUBT/6GTl1RU1s2LPzJATvKcXHK/sUGHwEddKmpdP7jqfy2qVNSBANKdHR0dHR0+ThxcXFxcXEDxFApHv7T/H76/BX5fvx++vwV+QAFAFz91QfXCHMAAwAcACAAJAAoAFKzEREQBCuzBBEcBCuzChEXBCuwBBCwHdCwHBCwHtAAsCEvsCUvshweAyuwJRCwANCwAC+wIRCwAtCwAi+yDQACERI5sA0vsh8eAhESObAfLzAxCQMFNDY3NjY1NCYjIgYHMzY2MzIWFRQHBgYVFyMVMwMzFSMDMxUjBBgDv/xB/EQEDx4kSlynlZCgAssCOis5OF1bL8rKyksEBAIEBAZS/DH8MQPP8To6GCeHSoCXi38zNEA0XzxBXExbqv1MBAqeBAABAEIAAAKrAyAAFgBWsggXGBESOQCwAEVYsA4vG7EOGD5ZsABFWLAALxuxABI+WbEVArAKK1gh2Bv0WbAC0LIUFQ4REjmyAw4UERI5sA4QsQgCsAorWCHYG/RZsA4QsAvQMDEhITUBNjU0JiMiBhUjNDYgFhUUDwIhAqv9qQEsbUA8S0edpwEImmtUsAGPbAEaZkUxPUw5cpR/bmhrT5EAAQB6AAAB7wMVAAYANgCwAEVYsAUvG7EFGD5ZsABFWLABLxuxARI+WbIEBQEREjmwBC+xAwKwCitYIdgb9FmwAtAwMSEjEQc1JTMB753YAWMSAlk5gHUAAAIAUP/1Ap0DIAANABcASLIDGBkREjmwAxCwENAAsABFWLAKLxuxChg+WbAARViwAy8bsQMSPlmwChCxEAKwCitYIdgb9FmwAxCxFQKwCitYIdgb9FkwMQEUBiMiJic1NDYzMhYXJzQjIgcVFDMyNwKdmI2LnAGbi42YAp2KhQSLhAQBRaKurKCOo66snQfAtLPCtQACAFX/+gOaBJ0AEwAgAFQAsABFWLAILxuxCBw+WbAARViwEC8bsRASPlmyAhAIERI5sAIvsBAQsREBsAorWCHYG/RZsAIQsRQBsAorWCHYG/RZsAgQsRsBsAorWCHYG/RZMDEBBiMiJjU0NjMyFhUVEAAFIzUzJAMyNjc1NCYjIgYVFBYC32Wrrszlusbg/sz+1CkjAZTXT4MehGlof3wB7G7XsLTk/uI//sH+wAWYBwF4T0BChJ6PbG2LAAMAYP/wA60EnQAVACEALABlALAARViwEy8bsRMcPlmwAEVYsAkvG7EJEj5ZsCrQsCovst8qAV2yHyoBXbEZAbAKK1gh2Bv0WbIDKhkREjmyDhkqERI5sAkQsR8BsAorWCHYG/RZsBMQsSUBsAorWCHYG/RZMDEBFAYHFhYVFAYgJjU0NjcmJjU0NiAWAzQmIyIGFRQWMzI2AzQmIyIGFRQWMjYDkGNVYnPo/oTpcWJVYNYBYtqcg2xrgH9ubYAedF1ebm++cANaVocmJpNil7WzmWOSJyaGVpSvr/1YVm5sWFtkZwJlTmRhUVBiYwABAEIAAAPABI0ABgA6sgEHCBESOQCwAEVYsAUvG7EFHD5ZsABFWLABLxuxARI+WbAFELEDAbAKK1gh2Bv0WbIABQMREjkwMQEBIwEhNSEDwP3owwIX/UYDfgQk+9wD9JkAAAIAcv/wA7sEkwAVACAAZbIHISIREjmwBxCwFtAAsABFWLAALxuxABw+WbAARViwDi8bsQ4SPlmwABCxAQGwCitYIdgb9FmyCA4AERI5sAgvsgUIDhESObEWAbAKK1gh2Bv0WbAOELEcAbAKK1gh2Bv0WTAxARUjBgYHNjYzMhYVFAYjIiY1NRAAIQMiBgcVFBYyNjQmAwAeyOAONJZOrsnfvsLqAUABPNBQgyCJ0n57BJOcA7ixOT/XrrDe+9RLAT8BSv3YTUAoiqSF2IYAAQCA//ADxQSNAB0Aa7IaHh8REjkAsABFWLABLxuxARw+WbAARViwDS8bsQ0SPlmwARCxAwGwCitYIdgb9FmyBwENERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELAR0LANELEUAbAKK1gh2Bv0WbAHELAd0DAxExMhFSEDNjMyFhUUBiMiJiczFhYzMjY1NCYjIgcHpEUCqP30JWNzuNffxKvqDbIOgGJweYxzaUIpAkMCSqL+3zDStLLSsZdbVoJxan8qGwACADAAAAPkBI0ACgAOAFCyDg8QERI5sA4QsAnQALAARViwCS8bsQkcPlmwAEVYsAQvG7EEEj5ZsgEJBBESObABL7ECAbAKK1gh2Bv0WbAG0LABELAL0LINCQQREjkwMQEzFSMRIxEhJwEzASERBwM1r6+6/bgDAkLD/cEBhRoBnZf++gEGcwMU/RAB/C8AAQBO//ADnwSdACYAj7IgJygREjkAsABFWLAOLxuxDhw+WbAARViwGS8bsRkSPlmyAQ4ZERI5sAEvsr8BAV20rwG/AQJxtN8B7wECXbQfAS8BAl20bwF/AQJysA4QsQcBsAorWCHYG/RZsA4QsArQsAEQsSUBsAorWCHYG/RZshQlARESObAZELAd0LAZELEgAbAKK1gh2Bv0WTAxATMyNjU0JiMiBhUjNDYzMhYVFAYHFhUUBiMiJjUzFBYzMjY1NCEjAWB6doFscGJ/ueazvNplW9Xpwb3quYNscH/+7HECm2NUU2BbTYy0r5xPiSVA0Zq6s5ZPY2JbwwAAAQBOAAADygSdABgAVrIJGRoREjkAsABFWLAQLxuxEBw+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyAxAAERI5sBAQsQkBsAorWCHYG/RZsBAQsAzQshYAEBESOTAxISE1ATY2NTQmIyIGFSM0NjMyFhUUBgcBIQPK/J8Bq2dddF55hbr1w7bWY5v+uAJ+gwGdXotBUmlwa6XOupVRrqH+6QAAAQCYAAACnQSQAAYAQbIBBwgREjkAsABFWLAFLxuxBRw+WbAARViwAC8bsQASPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZsgIDBRESOTAxISMRBTUlMwKduv61AesaA69jn6UAAAIAY//wA6sEnQANABgASLIDGRoREjmwAxCwENAAsABFWLAKLxuxChw+WbAARViwAy8bsQMSPlmwChCxEAGwCitYIdgb9FmwAxCxFgGwCitYIdgb9FkwMQEUAiMiAic1NBIzMhIXJxAjIhEVFBYzMhEDq9jLydoC2crL1wO66+p6cukB8fj+9wEF9Lb5AQX+/u8PAUn+s+GnqAFTAAEARwAAA+AEjQAJAEYAsABFWLAHLxuxBxw+WbAARViwAi8bsQISPlmxAAGwCitYIdgb9FmyBAACERI5sAcQsQUBsAorWCHYG/RZsgkFBxESOTAxJSEVITUBITUhFQEvArH8ZwKY/XEDeJeXfAN4mXkAAAEADQAABBwEjQAIADEAsABFWLABLxuxARw+WbAARViwBy8bsQccPlmwAEVYsAQvG7EEEj5ZsgABBBESOTAxAQEzAREjEQEzAhQBOND+Urn+WNACSgJD/Qr+aQGiAusAAAEAJgAABDEEjQALAFMAsABFWLABLxuxARw+WbAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIAAQQREjmyBgEEERI5sgMABhESObIJBgAREjkwMQEBMwEBIwEBIwEBMwIoAR/c/nUBmdz+1f7Y3AGW/nPbAtoBs/2+/bUBu/5FAksCQgAAAQAxAAAF8QSNABIAYLIOExQREjkAsABFWLADLxuxAxw+WbAARViwCC8bsQgcPlmwAEVYsBEvG7ERHD5ZsABFWLAKLxuxChI+WbAARViwDy8bsQ8SPlmyAQMKERI5sgYDChESObINAwoREjkwMQEXNxMzExc3EzMBIwEnBwEjATMBrwsP+KX0DQzGuP7Wrv78AQH+9K3+17cBJlBAA3f8hjtQA2X7cwOVBQX8awSNAAABABQAAARTBI0ACAAxALAARViwAy8bsQMcPlmwAEVYsAcvG7EHHD5ZsABFWLAFLxuxBRI+WbIBAwUREjkwMQEXNwEzASMBMwIaGRoBQMb+N63+N8cBJF5cA2v7cwSNAAABAHT/8AQKBI0AEQA9sgQSExESOQCwAEVYsAAvG7EAHD5ZsABFWLAILxuxCBw+WbAARViwBC8bsQQSPlmxDQGwCitYIdgb9FkwMQERFAYjIiYnETMRFBYzMjY1EQQK+tHS9gO3j4WDjwSN/PS229O2AxT89HmBf3sDDAAAAQAoAAAD/QSNAAcALwCwAEVYsAYvG7EGHD5ZsABFWLACLxuxAhI+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSED/f5xuf5zA9UD9PwMA/SZAAABAEP/8APdBJ0AJQBdALAARViwCS8bsQkcPlmwAEVYsBwvG7EcEj5ZsgIcCRESObAJELAN0LAJELEQAbAKK1gh2Bv0WbACELEWAbAKK1gh2Bv0WbAcELAg0LAcELEjAbAKK1gh2Bv0WTAxATQmJCcmNTQ2MzIWFSM0JiMiBhUUFgQWFhUUBiMiJDUzFBYzMjYDI3n+2lbD87/E+bmNeXGGewE4sFbzx8/+77qajH6CASpQWEorYrOPssicYmtZUEFYUGWIW5Opy6JmclsAAAIAigAABCUEjQANABYAY7IVFxgREjmwFRCwBdAAsABFWLAELxuxBBw+WbAARViwAi8bsQISPlmwAEVYsAwvG7EMEj5Zsg8EAhESObAPL7EAAbAKK1gh2Bv0WbIKAAQREjmwBBCxFQGwCitYIdgb9FkwMQEhESMRITIWFRQHARUjATMyNjU0JiMjAlr+6bkBqtXn6wEgxv3k9nWJhn7wAcH+PwSNuqrkWf4eCgJYbV1kbgACAFn/NgRXBJ0AEwAhAE+yCCIjERI5sAgQsB7QALAARViwEC8bsRAcPlmwAEVYsAgvG7EIEj5ZsgMIEBESObAQELEXAbAKK1gh2Bv0WbAIELEeAbAKK1gh2Bv0WTAxARQGBxcHJQYjIgARNTQSNjMyABEnNCYjIgYHFRQWMzI2NQRVcGbYfP75Nkbk/uV/6JbqARW3rJyUrASumJyqAiSm80agb8cNATEBCD6pAQOK/s3++QbG0s+5VcLY08cAAgCKAAAEGwSNAAoAEwBPsgoUFRESObAKELAM0ACwAEVYsAMvG7EDHD5ZsABFWLABLxuxARI+WbILAwEREjmwCy+xAAGwCitYIdgb9FmwAxCxEgGwCitYIdgb9FkwMQERIxEhMhYVFAYjJSEyNjU0JichAUO5AdPM8urW/ugBGnyIiHf+4QG2/koEjceoqr6YamRgdwEAAgBg//AEWgSdAA0AGwBIsgMcHRESObADELAR0ACwAEVYsAovG7EKHD5ZsABFWLADLxuxAxI+WbAKELERAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARAAIyIAETUQADMyABcHNCYjIgYVFRQWMzI2NQRa/uzo5f7nARfl6QETAresm5avsJecqQIk/vv+0QEyAQc+AQIBNP7Q/wXG0tbFQsPX08cAAQCKAAAEWASNAAkARQCwAEVYsAUvG7EFHD5ZsABFWLAILxuxCBw+WbAARViwAC8bsQASPlmwAEVYsAMvG7EDEj5ZsgIFABESObIHBQAREjkwMSEjAREjETMBETMEWLj9o7m5Al24A2z8lASN/JMDbQAAAQCKAAAFdwSNAA4AYLIBDxAREjkAsABFWLAALxuxABw+WbAARViwAi8bsQIcPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmyAQAEERI5sgcABBESObIKAAQREjkwMQkCMxEjERMBIwETESMRAXoBhwGF8bgT/nKI/nMTuASN/HEDj/tzAZECFfxaA6L97/5vBI0AAQCKAAADiwSNAAUAKQCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WTAxJSEVIREzAUMCSPz/uZeXBI0AAQCKAAAEVwSNAAwATACwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgACCBESObIGAgQREjmyCgIIERI5MDEBBxEjETMRNwEzAQEjAdaTubmCAY3j/iECAeECB47+hwSN/dWQAZv9+f16AAABACv/8ANNBI0ADwA2sgUQERESOQCwAEVYsAAvG7EAHD5ZsABFWLAFLxuxBRI+WbAJ0LAFELEMAbAKK1gh2Bv0WTAxATMRFAYjIiY1MxQWMzI2NQKSu9Sxwtu6cXJcbgSN/MWdxbekXmZtXwABAJcAAAFRBI0AAwAdALAARViwAi8bsQIcPlmwAEVYsAAvG7EAEj5ZMDEhIxEzAVG6ugSNAAABAIoAAARYBI0ACwBUALAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyCQAKERI5fLAJLxiyowkBXbECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBFi5/aS5uQJcuQHy/g4Ejf39AgMAAQBj//AENQSdAB0AYrIKHh8REjkAsABFWLAKLxuxChw+WbAARViwAy8bsQMSPlmyHQoDERI5sB0vsg0dChESObAKELEQAbAKK1gh2Bv0WbADELEXAbAKK1gh2Bv0WbAdELEaA7AKK1gh2Bv0WTAxJQYGIyIAJzUQADMyFhcjJiMiBhUVFBYzMjc1ITUhBDVC6Zfu/uACAQvyyPIbuCb1n6a5oLZR/ucB0ZZTUwEq/FoBBgEnvLXZzsdUvtdK7pAAAQCKAAADmwSNAAkAQwCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbAJ0LAJL7IfCQFdsQABsAorWCHYG/RZsAQQsQYBsAorWCHYG/RZMDEBIREjESEVIREhA0v9+LkDEf2oAggB8/4NBI2Z/pgAAAEAQ/8TA90FcwArAGkAsABFWLAJLxuxCRw+WbAARViwIi8bsSISPlmyAiIJERI5sAkQsAzQsAkQsBDQsAkQsRMBsAorWCHYG/RZsAIQsRkBsAorWCHYG/RZsCIQsB/QsCIQsCbQsCIQsSkBsAorWCHYG/RZMDEBNCYkJyY1NDY3NTMVFhYVIzQmIyIGFRQWBBYWFRQGBxUjNSYmNTMUFjMyNgMjef7aVsPLppWjxrmNeXGGewE4sFbDqZW637qajH6CASpQWEorYrOCrBDZ2xXCiGJrWVBBWFBliFuCphDh4RPClGZyWwABADAAAAPvBJ0AIABjALAARViwFC8bsRQcPlmwAEVYsAcvG7EHEj5Zsg8HFBESObAPL7EOBLAKK1gh2Bv0WbAB0LAHELEEAbAKK1gh2Bv0WbAI0LAUELAY0LAUELEbAbAKK1gh2Bv0WbAPELAf0DAxASEXFgchByE1MzY3NycjNTMnJjYzMhYVIzQmIyIGFxchAx3+cAEFOAKUAfyECk8JAQGkoAQGy7W3yrloYF1oBAQBlAH0IstvmJgX3UYieXvJ7My3cHePinsAAQANAAADkgSNABcAbbIAGBkREjkAsABFWLABLxuxARw+WbAARViwDC8bsQwSPlmyAAwBERI5sggBDBESObAIL7AD0LADL7AFsAorWNgb3FmwCBCwCrAKK1jYG9xZsA7QsAgQsBDQsAUQsBLQsAMQsBTQsAEQsBbQMDEBEzMBMxUhBxUhFSEVIzUhNSE1ITUzATMB0f3E/tTV/vEDARL+7rn+7gES/u7b/tTHAk0CQP2MeQdEeN3deEt5AnQAAAEAigAAA4UEjQAFADOyAQYHERI5ALAARViwBC8bsQQcPlmwAEVYsAIvG7ECEj5ZsAQQsQABsAorWCHYG/RZMDEBIREjESEDhf2+uQL7A/T8DASNAAIAFAAABFMEjQADAAgAPbIFCQoREjmwBRCwAtAAsABFWLACLxuxAhw+WbAARViwAC8bsQASPlmyBQIAERI5sQcBsAorWCHYG/RZMDEhIQEzAycHASEEU/vBAcmtPRoZ/vgCQwSN/t1cXv0wAAMAYP/wBFoEnQADABEAHwBhALAARViwDi8bsQ4cPlmwAEVYsAcvG7EHEj5ZsgIHDhESOXywAi8YtGACcAICcbRgAnACAl2xAQGwCitYIdgb9FmwDhCxFQGwCitYIdgb9FmwBxCxHAGwCitYIdgb9FkwMQEhNSEFEAAjIgARNRAAMzIAFwc0JiMiBhUVFBYzMjY1A1X+HwHhAQX+7Ojl/ucBF+XpARMCt6yblq+wl5ypAfmZbv77/tEBMgEHPgECATT+0P8FxtLWxULD19PHAAABABQAAARTBI0ACAA4sgcJChESOQCwAEVYsAIvG7ECHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyBwIAERI5MDEzIwEzASMBJwfbxwHJrQHJxv7AGhkEjftzA2pcXgAAAwA+AAADSwSNAAMABwALAGayBAwNERI5sAQQsAHQsAQQsAnQALAARViwCi8bsQocPlmwAEVYsAAvG7EAEj5ZsQIBsAorWCHYG/RZsgcKABESObAHL7K/BwFdsQQBsAorWCHYG/RZsAoQsQgBsAorWCHYG/RZMDEhITUhAyE1IRMhNSEDS/zzAw1D/XcCiUP88wMNmAF7mAFJmQAAAQCKAAAERASNAAcAQLIBCAkREjkAsABFWLAGLxuxBhw+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEhIxEhESMRIQREuv25uQO6A/T8DASNAAEAPwAAA8gEjQAMAEWyBg0OERI5ALAARViwCC8bsQgcPlmwAEVYsAMvG7EDEj5ZsQEBsAorWCHYG/RZsAXQsAgQsQoBsAorWCHYG/RZsAfQMDEBASEVITUBATUhFSEBAm/+tgKj/HcBUf6vA1f9jwFKAjr+X5mQAbcBtpCZ/l8AAwBgAAAFBgSNABEAFwAeAF4AsABFWLAQLxuxEBw+WbAARViwCC8bsQgSPlmyDxAIERI5sA8vsADQsgkIEBESObAJL7AG0LAJELEUAbAKK1gh2Bv0WbAPELEVAbAKK1gh2Bv0WbAb0LAUELAc0DAxARYEFRQEBxUjNSYkNTQkNzUzARAFEQYGBTQmJxE2NgMQ5gEQ/u3juer+8wEQ57n+CAE/mqUDNqaYmKYEFg36y838DW5uDf3KzPwNdv21/tgRAnIJlpiZlQn9jgqWAAABAGAAAAS2BI0AFQBdsgAWFxESOQCwAEVYsAMvG7EDHD5ZsABFWLAPLxuxDxw+WbAARViwFC8bsRQcPlmwAEVYsAkvG7EJEj5ZshMDCRESObATL7AA0LATELELAbAKK1gh2Bv0WbAI0DAxASQRETMRBgIHESMRJgInETMREAURMwLoARW5A/LZutnwBboBFLoBuzMBawE0/r3z/uIY/t8BHxQBHfIBS/7L/o4tAtQAAAEAdQAABH4EnQAhAF6yByIjERI5ALAARViwGC8bsRgcPlmwAEVYsA8vG7EPEj5ZsABFWLAgLxuxIBI+WbAPELERAbAKK1gh2Bv0WbAO0LAA0LAYELEHAbAKK1gh2Bv0WbARELAe0LAf0DAxJTY2NTU0JiMiBhUVFBYXFSE1MyYRNTQAMzIAFRUQBzMVIQK7iH+unZysjX/+Pq+zARvn6AEcsrX+PZ0f380ms8DBtyHM3yCdl50BOh7uASP+3PUc/suclwABACb/7AUsBI0AGQBushYaGxESOQCwAEVYsAIvG7ECHD5ZsABFWLAOLxuxDhI+WbAARViwGC8bsRgSPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCyCAIOERI5sAgvsA4QsQ8BsAorWCHYG/RZsAgQsRUBsAorWCHYG/RZMDEBITUhFSERNjMyFhUUBiM1MjY1NCYjIgcRIwGK/pwDif6Ul5zU4uXgjX99gJ2WuQP0mZn+1zHQxL6+l214g3ky/c4AAQBg//AEMASdAB4AgLIDHyAREjkAsABFWLALLxuxCxw+WbAARViwAy8bsQMSPlmyDwsDERI5sAsQsRIBsAorWCHYG/RZshYLAxESOXywFi8YsqAWAV20YBZwFgJdsjAWAXG0YBZwFgJxsRcBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZsh4DCxESOTAxAQYGIyIAETU0NjYzMhYXIyYmIyIGByEVIRYWMzI2NwQwFPzR4P7xe+eYzPcTuRKNfpmiBgG//kEEoZGHjRQBebvOAScBA16k+YjTu4J0w6+YssJvgwAAAgAnAAAG+wSNABcAIAB6sgQhIhESObAEELAY0ACwAEVYsBIvG7ESHD5ZsABFWLADLxuxAxI+WbAARViwCy8bsQsSPlmwEhCxBQGwCitYIdgb9FmwCxCxDgGwCitYIdgb9FmyFBIDERI5sBQvsRgBsAorWCHYG/RZsAMQsRkBsAorWCHYG/RZMDEBFAYHIREhAw4CByM3NzY2ExMhESEWFiURITI2NTQmIwb75sP+K/5eDwtNl3s7BC5gUQoUAw4BJMHg/TsBFXKEg3MBbqXHAgP0/mXt9nUBpQEEvgEJAhz+SgTBLf5ZdWNfcAACAIoAAAcJBI0AEgAbAIyyARwdERI5sAEQsBPQALAARViwAi8bsQIcPlmwAEVYsBEvG7ERHD5ZsABFWLALLxuxCxI+WbAARViwDy8bsQ8SPlmyAQILERI5fLABLxiyoAEBXbIEAgsREjmwBC+wARCxDQGwCitYIdgb9FmwBBCxEwGwCitYIdgb9FmwCxCxFAGwCitYIdgb9FkwMQEhETMRIRYWFRQGByERIREjETMBESEyNjU0JicBQwJIuQEkweDmw/4r/bi5uQMBARVzhH1uAooCA/5KBMGkpccCAfL+DgSN/bL+WXdhW3EDAAEAKAAABS4EjQAVAFyyBxYXERI5ALAARViwAi8bsQIcPlmwAEVYsAwvG7EMEj5ZsABFWLAULxuxFBI+WbACELEAAbAKK1gh2Bv0WbAE0LAF0LIIAgwREjmwCC+xEQGwCitYIdgb9FkwMQEhNSEVIRE2MzIWFxEjETQmIyIHESMBi/6dA4n+lJOg1N4Eun1/nZa6A/SZmf7XMcrB/o8BZId5Mv3OAAABAIr+mwRDBI0ACwBQsgMMDRESOQCwAi+wAEVYsAYvG7EGHD5ZsABFWLAKLxuxChw+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsQgBsAorWCHYG/RZsAnQMDEhIREjESERMxEhETMEQ/6Buf5/uQJHuf6bAWUEjfwLA/UAAAIAigAABAgEjQAMABUAYbIDFhcREjmwAxCwDdAAsABFWLALLxuxCxw+WbAARViwCS8bsQkSPlmwCxCxAAGwCitYIdgb9FmyAwsJERI5sAMvsAkQsQ0BsAorWCHYG/RZsAMQsRMBsAorWCHYG/RZMDEBIREhMhYVFAYHIREhATI2NTQmJyERA5X9rgERzubkxf4rAwv+w3OEfW7+3wP3/uDEpaTIAgSN/At3YVtxA/5ZAAACAC7+rATnBI0ADwAVAF2yExYXERI5sBMQsAXQALAJL7AARViwBS8bsQUcPlmwAEVYsAsvG7ELEj5ZsQABsAorWCHYG/RZsAfQsAjQsAkQsA3QsAgQsBDQsBHQsAUQsRIBsAorWCHYG/RZMDE3NzY2NxMhETMRIxEhESMTISERIQMChSlHRwcOAwePufy6ugEBLgJC/mQMEZgxVv3YAZn8C/4UAVT+rQHrA1z+yP6ZAAEAHwAABesEjQAVAJKyARYXERI5ALAARViwCS8bsQkcPlmwAEVYsA0vG7ENHD5ZsABFWLARLxuxERw+WbAARViwAi8bsQISPlmwAEVYsAYvG7EGEj5ZsABFWLAULxuxFBI+WbIQCQIREjl8sBAvGLKgEAFdtGAQcBACXbEAAbAKK1gh2Bv0WbAE0LITEAAREjmwExCwCNCwEBCwC9AwMQEjESMRIwEjAQEzATMRMxEzATMBASMDxWO6ZP7F6gGG/p7gASxZulkBLOD+nAGI6gH2/goB9v4KAlECPP4DAf3+AwH9/c39pgABAEf/8APUBJ0AKACAsiQpKhESOQCwAEVYsAovG7EKHD5ZsABFWLAWLxuxFhI+WbAKELEDAbAKK1gh2Bv0WbIGChYREjmyJwoWERI5sCcvtB8nLycCXbK/JwFdtN8n7ycCXbEkAbAKK1gh2Bv0WbIQJCcREjmyHBYKERI5sBYQsR8BsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYWFRQGIyImJyY1MxYWMzI2NTQlIzUzNgMIin1ugbrtvNPubmd2cf7VW6k9ebkFg3mIkv7/nZzvA1BUXVhPjrWollaNKSSSW560LC5ZnVZgYFjBBZgFAAABAIoAAARhBI0ACQBMsgAKCxESOQCwAEVYsAAvG7EAHD5ZsABFWLAHLxuxBxw+WbAARViwAi8bsQISPlmwAEVYsAUvG7EFEj5ZsgQAAhESObIJAAIREjkwMQEzESMRASMRMxEDqLm5/Zu5uQSN+3MDdPyMBI38jAABAIsAAAQsBI0ADABpsgoNDhESOQCwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgYCBBESOXywBi8YsqAGAV20YAZwBgJdsQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwGuarm5ZAGF3/41AevvAfb+CgSN/gMB/f3F/a4AAQAnAAAENgSNAA8AT7IEEBEREjkAsABFWLAALxuxABw+WbAARViwAS8bsQESPlmwAEVYsAgvG7EIEj5ZsAAQsQMBsAorWCHYG/RZsAgQsQoBsAorWCHYG/RZMDEBESMRIQMCAgcjNzc2NjcTBDa5/l4PDaSwRAQpXlANGQSN+3MD9P6C/qr+5QWlAwee4gJeAAABACL/7AQLBI0AEQBEsgESExESOQCwAEVYsAIvG7ECHD5ZsABFWLAQLxuxEBw+WbAARViwCC8bsQgSPlmyAQgCERI5sQwBsAorWCHYG/RZMDEBFwEzAQcGBwciJzcXMjY3ATMB9S0BFNX+XiVQqiZQFAZcMUkg/mbWAjB4AtX8RUmRCwEIkwUxOwOfAAEAiv6sBPEEjQALAEayCQwNERI5ALACL7AARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAELxuxBBI+WbEAAbAKK1gh2Bv0WbAI0LAJ0DAxJTMDIxEhETMRIREzBEStEqX8ULkCR7qY/hQBVASN/AsD9QABAD0AAAPfBI0AEQBHsgQSExESOQCwAEVYsAgvG7EIHD5ZsABFWLAQLxuxEBw+WbAARViwAC8bsQASPlmyDQgAERI5sA0vsQQBsAorWCHYG/RZMDEhIxEGIyImJxEzERQWMzI3ETMD37mQo9TeBLl+f52WuQHCMMrBAXD+nYd5MgIxAAABAIoAAAXGBI0ACwBQsgUMDRESOQCwAEVYsAIvG7ECHD5ZsABFWLAGLxuxBhw+WbAARViwCi8bsQocPlmwAEVYsAAvG7EAEj5ZsQQBsAorWCHYG/RZsAjQsAnQMDEhIREzESERMxEhETMFxvrEuQGIugGIuQSN/AsD9fwLA/UAAAEAiv6sBnUEjQAPAFmyCxARERI5ALACL7AARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAOLxuxDhw+WbAARViwBC8bsQQSPlmxAAGwCitYIdgb9FmwCNCwCdCwDNCwDdAwMSUzAyMRIREzESERMxEhETMFx64SpvrNuQGIugGIupj+FAFUBI38CwP1/AsD9QACAAgAAATWBI0ADQAWAGGyCBcYERI5sAgQsBXQALAARViwBy8bsQccPlmwAEVYsAMvG7EDEj5ZsAcQsQUBsAorWCHYG/RZsgoHAxESObAKL7ADELEOAbAKK1gh2Bv0WbAKELEUAbAKK1gh2Bv0WTAxARQGByERITUhESEyFhYBMjY1NCYjIREE1uTE/ir+sAIKARaEwmj+UXKEg3P+6wFupMgCA/SZ/kpYo/68dWNfcP5ZAP//AIoAAAVnBI0AJgIIAAAABwHjBBYAAAACAIoAAAQIBI0ACgATAFKyCBQVERI5sAgQsAvQALAARViwBS8bsQUcPlmwAEVYsAMvG7EDEj5ZsggFAxESObAIL7ADELELAbAKK1gh2Bv0WbAIELERAbAKK1gh2Bv0WTAxARQGByERMxEhMhYBMjY1NCYnIREECOTF/iu5ARHO5v5Qc4R9bv7fAW6kyAIEjf5KxP6Fd2FbcQP+WQABAEv/8AQbBJ0AHgB9sgMfIBESOQCwAEVYsBMvG7ETHD5ZsABFWLAbLxuxGxI+WbIAGxMREjmxAwGwCitYIdgb9FmyCRMbERI5fLAJLxiyoAkBXbRgCXAJAl2yMAkBcbRgCXAJAnGxBgGwCitYIdgb9FmwExCxDAGwCitYIdgb9FmyDxMbERI5MDEBFhYzMjY3ITUhJiYjIgYHIzY2MzIAFxUUBgYjIiYnAQQUjYeNogf+QQG+BaOYfo0SuRP3zOQBEQV44pXP/hQBeYNvu7mYr8N0grvT/t/0daP5h867AAIAiv/wBhUEnQATACEAjbIEIiMREjmwBBCwGNAAsABFWLAQLxuxEBw+WbAARViwCy8bsQscPlmwAEVYsAMvG7EDEj5ZsABFWLAILxuxCBI+WbINCAsREjl8sA0vGLRgDXANAnGyoA0BXbRgDXANAl2xBgGwCitYIdgb9FmwEBCxFwGwCitYIdgb9FmwAxCxHgGwCitYIdgb9FkwMQEQACMiACcjESMRMxEzNgAzMgAXBzQmIyIGFRUUFjMyNjUGFf7s6N3+6wzYubnYDgEU2ukBEwK3rJuWr7CXnKkCJP77/tEBHPL+AgSN/gnxARb+0P8FxtLWxULD19PHAAIAUAAAA/wEjQANABQAY7ITFRYREjmwExCwB9AAsABFWLAHLxuxBxw+WbAARViwAC8bsQASPlmwAEVYsAkvG7EJEj5ZshEHABESObARL7ELAbAKK1gh2Bv0WbIBCwcREjmwBxCxEgGwCitYIdgb9FkwMTMBJiY1NDY3IREjESEDExQXIREhIlABInpx3MgB0bn+0P8u5gEb/u/wAg0mnWihsgL7cwHf/iEDMLQEAXwAAQALAAAD5wSNAA0AUrIBDg8REjkAsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmyDQgCERI5sA0vsQABsAorWCHYG/RZsATQsA0QsAbQsAgQsQoBsAorWCHYG/RZMDEBIxEjESM1MxEhFSERMwKH4rnh4QL7/b7iAf3+AwH9lwH5mf6gAAABAB/+rAYiBI0AGQCssggaGxESOQCwAEVYsBAvG7EQHD5ZsABFWLAULxuxFBw+WbAARViwGC8bsRgcPlmwAEVYsA0vG7ENEj5ZsABFWLAKLxuxChI+WbAARViwBS8bsQUSPlmyFwoYERI5fLAXLxiyoBcBXbRgF3AXAl20YBdwFwJxsQcBsAorWCHYG/RZsgAHFxESObAFELEBAbAKK1gh2Bv0WbAHELAL0LIPFwcREjmwFxCwEtAwMQEBMxEjESMBIxEjESMBIwEBMwEzETMRMwEzBGMBJpmnev7EY7pk/sXqAYb+nuABLFm6WQEs4AJa/jz+FgFUAfb+CgH2/goCUQI8/gMB/f4DAf0AAQCL/qwETgSNABAAgrIAERIREjkAsAMvsABFWLALLxuxCxw+WbAARViwDy8bsQ8cPlmwAEVYsAkvG7EJEj5ZsABFWLAFLxuxBRI+WbINCQsREjl8sA0vGLRgDXANAnGyoA0BXbRgDXANAl2xCAGwCitYIdgb9FmyAAgNERI5sAUQsQEBsAorWCHYG/RZMDEBATMRIxEjASMRIxEzETMBMwJBAW+eqGn+cWq5uWQBhd8CUv5E/hYBVAH2/goEjf4DAf0AAAEAiwAABOcEjQAUAHmyCxUWERI5ALAARViwBi8bsQYcPlmwAEVYsBMvG7ETHD5ZsABFWLAJLxuxCRI+WbAARViwES8bsRESPlmyABETERI5fLAALxiyoAABXbRgAHAAAl20YABwAAJxsATQsAAQsRABsAorWCHYG/RZsggQABESObAM0DAxATM1MxUzATMBASMBIxUjNSMRIxEzAURQlDwBhOD+NAHr7/5xQZRQubkCkOTkAf39xf2uAfbOzv4KBI0AAQAjAAAFFQSNAA4Af7IADxAREjkAsABFWLAGLxuxBhw+WbAARViwCi8bsQocPlmwAEVYsAIvG7ECEj5ZsABFWLANLxuxDRI+WbIIAgYREjl8sAgvGLKgCAFdtGAIcAgCXbRgCHAIAnGxAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIxEjESE1IREzATMBASMCl2m6/q8CC2MBheD+NAHr7wH2/goD9Zj+AwH9/cX9rgACAGD/6wVbBJ8AIwAuAJiyFC8wERI5sBQQsCTQALAARViwCy8bsQscPlmwAEVYsBsvG7EbHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyAgQbERI5sAIvsAsQsQwBsAorWCHYG/RZsAQQsRMBsAorWCHYG/RZsAIQsSYBsAorWCHYG/RZshUTJhESObIhAiYREjmwGxCxLAGwCitYIdgb9FkwMQUiJwYjIAARNRASMxciBhUVFBYzMjcmAzU0EjMyEhUVEAcWMwEQFzYRNTQmIyIDBVvZpomj/ur+xvTSAX6Q0Mc2MuMBz7W4zbZedv2S4bZiasYFFDs8AUUBKhoBAwEonsPIIejlCLIBRSfrAQT+//E4/tqyEgH9/sx5gQEeOKyj/sP//wANAAAEHASNACYB0wAAAQcCJgBE/t4ACACyAAoBXTAxAAEAJv6sBHEEjQAQAGyyCxESERI5ALAHL7AARViwAS8bsQEcPlmwAEVYsA8vG7EPHD5ZsABFWLAJLxuxCRI+WbAARViwDC8bsQwSPlmyAAEMERI5sgsMARESObIDCwAREjmwCRCxBAGwCitYIdgb9FmyDgALERI5MDEBATMBATUzESMRIwEBIwEBMwIoAR/c/nUBMaiodP7V/tjcAZb+c9sC2gGz/b7+SgH+FgFUAbv+RQJLAkIAAQAm/qwF8gSNAA8AXrIJEBEREjkAsAIvsABFWLAILxuxCBw+WbAARViwDi8bsQ4cPlmwAEVYsAQvG7EEEj5ZsQABsAorWCHYG/RZsAgQsQYBsAorWCHYG/RZsArQsAvQsAAQsAzQsA3QMDElMwMjESERITUhFSERIREzBUSuEqX8UP6bA4n+lQJGupj+FAFUA/SZmfykA/UAAAEAPQAAA98EjQAXAFCyBBgZERI5ALAARViwCy8bsQscPlmwAEVYsBYvG7EWHD5ZsABFWLAALxuxABI+WbIQCwAREjmwEC+xBwGwCitYIdgb9FmwBNCwEBCwE9AwMSEjEQYHFSM1JiYnETMRFBYXNTMVNjcRMwPfuWNplbzJA7lnaJVnZbkBwiELxsMKyboBbf6de3gL8O0LIgIxAAEAigAABCwEjQARAEeyBBITERI5ALAARViwAC8bsQAcPlmwAEVYsAgvG7EIEj5ZsABFWLAQLxuxEBI+WbIEAAgREjmwBC+xDQGwCitYIdgb9FkwMRMzETYzMhYXESMRNCYjIgcRI4q5mpnU3gS5fn+Ym7kEjf4+McrB/o8BZId5M/3PAAIAAv/wBWsEnQAcACQAbLIVJSYREjmwFRCwHtAAsABFWLAOLxuxDhw+WbAARViwAC8bsQASPlmyIQ4AERI5sCEvsr8hAV2xEgGwCitYIdgb9FmwA9CwIRCwCtCwABCxFgGwCitYIdgb9FmwDhCxHQGwCitYIdgb9FkwMQUiADUmJjUzFBYXPgIzMgARFSEUFjMyNjcXBgYDIgYHITU0JgOR//7OpriZX2YFh+mO+AEQ/K7Bt0yHUDk8uJaPtQYCma4QASLzC8aoXncMk+yB/uv+/YKxwB8okigvBBHCpBuhqgACAF7/8ARpBJ0AFgAeAGGyCB8gERI5sAgQsBfQALAARViwAC8bsQAcPlmwAEVYsAgvG7EIEj5Zsg0ACBESObANL7AAELERAbAKK1gh2Bv0WbAIELEXAbAKK1gh2Bv0WbANELEaAbAKK1gh2Bv0WTAxATIAFxUUBgYjIgARNSE1NCYjIgcnNjYTMjY3IRUUFgJH9wEpAoTsk/j+8ANSwbeTkDlBwImRswb9Z60Enf7g74iZ9IkBFQEBggGxwUiSKS/77cahG6CsAAEAR//tA9QEjQAcAHCyGh0eERI5ALAARViwAi8bsQIcPlmwAEVYsAsvG7ELEj5ZsAIQsQABsAorWCHYG/RZsgQAAhESObIFCwIREjmwBS+yEQsCERI5sAsQsRQBsAorWCHYG/RZsAUQsRoBsAorWCHYG/RZshwFGhESOTAxASE1IRcBFhYVFAYjIiYnJjUzFhYzMjY1NCYjIzUCs/28AzgC/qmx0fzXWas8erkFiXOIkoqGgAP0mXb+mxDFi6e+LS5anllkaGpfaqUAAAMAYP/wBFoEnQANABQAGwB2sgMcHRESObADELAO0LADELAV0ACwAEVYsAovG7EKHD5ZsABFWLADLxuxAxI+WbEOAbAKK1gh2Bv0WbIZCgMREjl8sBkvGLKgGQFdtGAZcBkCXbRgGXAZAnGxEQGwCitYIdgb9FmwChCxFQGwCitYIdgb9FkwMQEQACMiABE1EAAzMgAXATI2NyEWFhMiBgchJiYEWv7s6OX+5wEX5ekBEwL+BJOoCf12Cq2NkasIAooJqgIk/vv+0QEyAQc+AQIBNP7Q//4cvLSwwAN3w6yzvAABADAAAAPvBJ0AJwCysh0oKRESOQCwAEVYsB0vG7EdHD5ZsABFWLAMLxuxDBI+WbIGHQwREjmwBi+yDwYBcbIPBgFdsk8GAXGwAdCwAS9ACR8BLwE/AU8BBF2yAAEBXbECBLAKK1gh2Bv0WbAGELEHBLAKK1gh2Bv0WbAMELEKAbAKK1gh2Bv0WbAO0LAP0LAHELAR0LAGELAT0LACELAW0LABELAY0LIhAR0REjmwHRCxJAGwCitYIdgb9FkwMQEhFSEXFSEVIQYHIQchNTM2NyM1MzUnIzUzJyY2MzIWFSM0JiMiBhcBhwGW/m4DAY/+bAokApQB/IQKPxSfpQOingIGy7W3yrloYF1oBAKoeV0QeWpHmJgSn3kQXXlAyezMt3B3j4oAAAEAQv/wA54EnQAhAKKyFCIjERI5ALAARViwFS8bsRUcPlmwAEVYsAgvG7EIEj5ZsiEVCBESObAhL7IPIQFdtBAhICECXbEABLAKK1gh2Bv0WbAIELEDAbAKK1gh2Bv0WbAAELAL0LAhELAN0LAhELAS0LASL0AJHxIvEj8STxIEXbIAEgFdsQ8EsAorWCHYG/RZsBUQsRoBsAorWCHYG/RZsBIQsBzQsA8QsB7QMDEBIRIhMjcXBiMiJicjNTM1IzUzNjYzMhcHJiMgAyEVIRUhAy/+aCABAmJoG3Zv0/UUm5eXmxb1z2CHFVl5/wAgAZj+ZAGcAZb+8RyVHtrMeW15zNwflRz+8HltAAAEAIoAAAetBJ0AAwAQAB4AKACrsh8pKhESObAfELAB0LAfELAE0LAfELAR0ACwAEVYsCcvG7EnHD5ZsABFWLAlLxuxJRw+WbAARViwBy8bsQccPlmwAEVYsCIvG7EiEj5ZsABFWLAgLxuxIBI+WbAHELAN0LANL7AC0LACL7QAAhACAl2xAQOwCitYIdgb9FmwDRCxFAOwCitYIdgb9FmwBxCxGwOwCitYIdgb9FmyIScgERI5siYgJxESOTAxJSE1IQE0NiAWFRUUBiMiJjUXFBYzMjY1NTQmIyIGFQEjAREjETMBETMHbv3TAi39krwBNL2+l5m/o15XVF5hU1Jh/rW4/aO5uQJduL2OAgOVuribUJi2t5wFWWppXFJaaGde/LUDbPyUBI38kwNtAAIAKAAABGYEjQAWAB8AhrIAICEREjmwGNAAsABFWLAMLxuxDBw+WbAARViwAi8bsQISPlmyFgwCERI5sBYvsQABsAorWCHYG/RZsATQsBYQsAbQsBYQsAvQsAsvQAkPCx8LLws/CwRdtL8LzwsCXbEIAbAKK1gh2Bv0WbAT0LALELAX0LAMELEeAbAKK1gh2Bv0WTAxJSEVIzUjNTM1IzUzESEyFhUUBgchFSElITI2NTQmIyECpP7+usDAwMABz8Xq477+3QEC/v4BFXKDhHD+6rS0tJhZmAJQzKilywRZ8XhiZHoAAQA+//UCmgMgACYAdACwAEVYsA4vG7EOGD5ZsABFWLAZLxuxGRI+WbIAGQ4REjl8sAAvGLaAAJAAoAADXbAOELEHArAKK1gh2Bv0WbIKAAcREjmwABCxJgKwCitYIdgb9FmyFCYAERI5sBkQsSACsAorWCHYG/RZsh0mIBESOTAxATMyNjU0JiMiBhUjNDYzMhYVFAYHFhUUBiMiJjUzFBYzMjY1NCcjAQlUSkg/RjlLnaN8iZxGQpWqiISmnk9DRkmcWAHLPTAtOjMpYnt5aDdbGSmPan1+ay08PDNxAgACADYAAAK7AxUACgAOAEoAsABFWLAJLxuxCRg+WbAARViwBC8bsQQSPlmyAQkEERI5sAEvsQICsAorWCHYG/RZsAbQsAEQsAvQsggLBhESObINCQQREjkwMQEzFSMVIzUhJwEzATMRBwJQa2ud/okGAXmh/oTfEQErgqmpZgIG/hYBIRwAAAEAW//1AqcDFQAbAGQAsABFWLABLxuxARg+WbAARViwDS8bsQ0SPlmwARCxBAmwCitYIdgb9FmyBw0BERI5sAcvsRkCsAorWCHYG/RZsgUHGRESObANELAR0LANELETArAKK1gh2Bv0WbAHELAb0DAxExMhFSEHNjMyFhUUBiMiJiczFjMyNjU0JiMiB3AyAd7+oxZBSoCPoIZ5pwabCoFBSE5KSTsBgwGShKodiXl8kX5lY0tEPk0rAAIAVv/1AqsDHgATAB8AUQCwAEVYsAAvG7EAGD5ZsABFWLAMLxuxDBI+WbAAELEBArAKK1gh2Bv0WbIGDAAREjmwBi+xFAKwCitYIdgb9FmwDBCxGwKwCitYIdgb9FkwMQEVIwQHNjMyFhUUBiMiJjU1NDY3AyIGBxUUFjMyNjQmAigR/vQXSHJ2h5+Ei6fezX4zTRFTPz1ORwMegwLbTZF3dJqmlzPQ5AX+biwgIlRVT3xMAAEAOgAAAqUDFQAGADMAsABFWLAFLxuxBRg+WbAARViwAi8bsQISPlmwBRCxBAKwCitYIdgb9FmyAAUEERI5MDEBASMBITUhAqX+o6YBXf47AmsCu/1FApOCAAMAT//1Ap8DIAATAB4AKAB9ALAARViwES8bsREYPlmwAEVYsAYvG7EGEj5ZsiQGERESObAkL7bfJO8k/yQDXbYPJB8kLyQDXbL/JAFxtA8kHyQCcrEXArAKK1gh2Bv0WbICJBcREjmyDBckERI5sAYQsR0CsAorWCHYG/RZsBEQsR8CsAorWCHYG/RZMDEBFAcWFRQGICY1NDY3JjU0NjMyFgM0JiMiBhUUFjI2AyIGFRQWMjY0JgKLd4ug/vCgSkB3l31+l4lOPj9LTH5MjDc/P3A/QAJDdjc7g2p5eWpCYRs3dmd2dv46NDo6NDU6OgHwNTAuODhcNwACAEn/+QKVAyAAEgAeAF0AsABFWLAILxuxCBg+WbAARViwDy8bsQ8SPlmyAg8IERI5sAIvtg8CHwIvAgNdsA8QsRACsAorWCHYG/RZsAIQsRMCsAorWCHYG/RZsAgQsRkCsAorWCHYG/RZMDEBBiMiJjU0NjMyFhcVEAUHNTI2JzI3NTQmIyIGFRQWAfZFZXaNo4GJnAP+czeWhHteKk88O0xKAUBBin55oKWUPf5kFAF/Yp5HPFNQVENBTgAAAQCPAosDCwMiAAMAEgCwAi+xAQGwCitYIdgb9FkwMQEhNSEDC/2EAnwCi5cAAAMAngRAAm4GcgADAA8AGwB0ALAARViwDS8bsQ0aPlmwB9CwBy9ACT8HTwdfB28HBF2wAtCwAi+2PwJPAl8CA12wANCwAC9AEQ8AHwAvAD8ATwBfAG8AfwAIXbACELAD0BmwAy8YsA0QsRMHsAorWCHYG/RZsAcQsRkHsAorWCHYG/RZMDEBMwcjBzQ2MzIWFRQGIyImNxQWMzI2NTQmIyIGAbG93HKCZEhEY2FGSGRVMyQjMDAjJTIGcrjXRmFeSUdcXkUjMjEkJjI0AAEAigAAA64EjQALAFcAsABFWLAGLxuxBhw+WbAARViwBC8bsQQSPlmwC9CwCy+y3wsBXbIfCwFdsQABsAorWCHYG/RZsAQQsQIBsAorWCHYG/RZsAYQsQgBsAorWCHYG/RZMDEBIREhFSERIRUhESEDV/3sAmv83AMe/ZsCFAIO/omXBI2Z/rIAAAMAHv5KBBEETgApADcARACUALAARViwJi8bsSYaPlmwAEVYsBYvG7EWFD5ZsCYQsCnQsCkvsQADsAorWCHYG/RZsggWJhESObAIL7IOCBYREjmwDi+0kA6gDgJdsTcBsAorWCHYG/RZshw3DhESObIgCCYREjmwFhCxMAGwCitYIdgb9FmwCBCxOwGwCitYIdgb9FmwJhCxQgGwCitYIdgb9FkwMQEjFhcVFAYGIyInBhUUFzMWFhUUBgYjIiY1NDY3JjU0NyY1NTQ2MzIXIQEGBhUUFjMyNjU0JicjAxQWMzI2NTU0JiIGFQQRlzoBb8N4T0k0erfIzo30l9H/XlQ4c67xu1BHAW/9PDg8lIOSzWhs73SMaWeKitKKA6dUaRlipl4VKkBQAgGVj1ShYJt6U4oqL0p8UmrFC53KFPv4Gl03SllyTEpBAgKlU3t6WBJXeHhaAAIAZP/rBFgETgAQABwAYwCwAEVYsAkvG7EJGj5ZsABFWLAMLxuxDBo+WbAARViwAi8bsQISPlmwAEVYsBAvG7EQEj5ZsgACCRESObILCQIREjmwAhCxFAGwCitYIdgb9FmwCRCxGgGwCitYIdgb9FkwMSUCISICNTUQEjMgEzczAxMjARQWMzITNSYmIyIGA4Js/vLA5OLEAQlsIrBqcbD9dZKH00gckmuGlfH++gEb9A8BCAE9/v/t/eL95AH0r8MBhyS+y+MAAgCxAAAE4wWvABYAHgBjshgfIBESObAYELAE0ACwAEVYsAMvG7EDHj5ZsABFWLABLxuxARI+WbAARViwDy8bsQ8SPlmyFwMBERI5sBcvsQABsAorWCHYG/RZsgkXABESObADELEdAbAKK1gh2Bv0WTAxAREjESEyFhUUBxYTFRYXFSMmJzU0JiMlITI2NRAhIQFywQIO8Pvt3gUCQcY7A4x//p4BOaKd/s/+uQJ0/YwFr9LM5WNF/vqcjT0YNqyLeI+dfIQBAAABALIAAAUdBbAADABpALAARViwBC8bsQQePlmwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhI+WbAARViwCy8bsQsSPlmyBgIEERI5fLAGLxi0YwZzBgJdtDMGQwYCXbKTBgFdsQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwIjscDAlgH97/3UAlXrAo79cgWw/X4Cgv0+/RIAAQCSAAAEFAYAAAwAVACwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgcIAhESObAHL7EAAbAKK1gh2Bv0WbIKAAcREjkwMQEjESMRMxEzATMBASMBzIC6un4BO9v+hgGu2wH1/gsGAPyOAaz+E/2zAAABALIAAAT6BbAACwBMALAARViwAy8bsQMePlmwAEVYsAcvG7EHHj5ZsABFWLABLxuxARI+WbAARViwCi8bsQoSPlmyAAMBERI5sgUDARESObIJAAUREjkwMQERIxEzETMBMwEBIwFywMAMAmPx/WsCve0Ctf1LBbD9eQKH/Tv9FQAAAQCSAAAD8QYYAAwATACwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgAIAhESObIGCAIREjmyCgYAERI5MDEBIxEjETMRMwEzAQEjAVAEuroBAYrw/isB/+QB8/4NBhj8dQGt/g39uQAAAgCKAAAEHwSNAAoAFABIsgIVFhESObACELAU0ACwAEVYsAEvG7EBHD5ZsABFWLAALxuxABI+WbABELELAbAKK1gh2Bv0WbAAELEMAbAKK1gh2Bv0WTAxMxEhMhYWFxUUACEDETMyNjU1NCYjigFpovuMA/7J/vmepLrGvbcEjYX2n038/tYD9Pyj0MBAwM0AAQBg//AEMASdABwATrIDHR4REjkAsABFWLALLxuxCxw+WbAARViwAy8bsQMSPlmwCxCwD9CwCxCxEgGwCitYIdgb9FmwAxCxGQGwCitYIdgb9FmwAxCwHNAwMQEGBiMiABE1NDY2MzIWFyMmJiMiBgcVFBYzMjY3BDAU/NHg/vF755jM9xO5Eo1+macBn5eHjRQBebvOAScBA16k+YjTu4J0y71qvc9vgwADAIoAAAPvBI0ADgAWAB4AawCwAEVYsAEvG7EBHD5ZsABFWLAALxuxABI+WbIXAAEREjmwFy+yvxcBXbQfFy8XAl203xfvFwJdsQ8BsAorWCHYG/RZsggPFxESObAAELEQAbAKK1gh2Bv0WbABELEeAbAKK1gh2Bv0WTAxMxEhMhYVFAYHFhYVFAYHAREhMjY1NCMlMzI2NTQnI4oBltHeX1hjdNrJ/vcBBnN66/746mx85e0EjaObUX4hGJVlnq4BAhL+hWJVxI1VU6gFAAIAEwAABHAEjQAHAAoARwCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyCQQCERI5sAkvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIwEzASMBIQMDRv34br0B36YB2Lz9xgGRxwEX/ukEjftzAa4B/QAAAQCfBI4BlgY7AAgADACwAC+wBNCwBC8wMQEXBgcVIzU0NgErazsDuVQGO1Njb4iCTa0AAAIAgQTfAuAGigANABEAYACwAy+wB9CwBy9ADQ8HHwcvBz8HTwdfBwZdsAMQsQoEsAorWCHYG/RZsAcQsA3QsA0vsAcQsBHQsBEvsA/QsA8vQA8PDx8PLw8/D08PXw9vDwddsBEQsBDQGbAQLxgwMQEUBiMiJjUzFBYzMjY1JTMXIwLgqIeIqJhPSUdP/qaacGUFsF9ycl83PT812sYAAvykBLz+zAaTABQAGACaALADL7IPAwFdsv8DAV2ycAMBXbAH0LAHL0ALDwcfBy8HPwdPBwVdsAMQsArQsAovsAcQsQ4DsAorWCHYG/RZsAMQsREDsAorWCHYG/RZsA4QsBTQsA4QsBfQsBcvQBk/F08XXxdvF38XjxefF68XvxfPF98X7xcMXbAV0LAVL0ALDxUfFS8VPxVPFQVdsBcQsBjQGbAYLxgwMQEUBiMiJiYjIgYVJzQ2MzIWMzI2NSczByP+zGBGNXEiFCMvVGBGL4EsIzCNq7Z4BX1KaUIJMyYVS2tLMyb+4QAAAgBuBOEEWAaVAAYACgBdALADL7IPAwFdsAXQsAUvsADQsAAvtg8AHwAvAANdsAMQsALQGbACLxiyBAMAERI5sAbQGbAGLxiwAxCwCdCwCS+wB9CwBy+2DwcfBy8HA12wCRCwCtAZsAovGDAxATMBIycHIwEzAyMBkpgBIsWpqsYDIsjJjQXo/vmfnwG0/v0AAv9eBM8DRgaCAAYACgBdALADL7IPAwFdsATQGbAELxiwANAZsAAvGLADELAB0LABL7AG0LAGL7YPBh8GLwYDXbICAwYREjmwAxCwCNCwCC+wB9AZsAcvGLAIELAK0LAKL7YPCh8KLwoDXTAxASMnByMBMwUjAzMDRsWqqsQBIpj+j4zIxwTPnp4BBlUBAgAAAgBpBOQD7AbPAAYAFQBzALADL7AF0LAFL7YPBR8FLwUDXbIEAwUREjkZsAQvGLAA0LADELAB0LABL7ICBQMREjmwB9B8sAcvGEANDwcfBy8HPwdPB18HBl2wDtCwDi9ADQ8OHw4vDj8OTw5fDgZdsA3QsggHDRESObIUDgcREjkwMQEjJwcjATMXJzY2NTQjNzIWFRQGBwcDRqrFxakBELy+AUE7jQWAhko8AQTkuroBBnyDBBohQ1xYSTtCBzwAAgBpBOQDRgbUAAYAGgCHALADL7AB0LABL7AG0LAGL0AJDwYfBi8GPwYEXbIEAwYREjkZsAQvGLAA0LICBgEREjmwBhCwCtCwCi+0PwpPCgJdsA3QsA0vQA0PDR8NLw0/DU8NXw0GXbAKELAQ0LAQL7ANELEUBLAKK1gh2Bv0WbAKELEXBLAKK1gh2Bv0WbAUELAa0DAxASMnByMlMzcUBiMiJiMiBhUnNDYzMhYzMjY1A0aqxcWpAS2Dw2BBNm4oHTZNYEAqfCYfNATknp705T5eRy4dEz9iRi0cAAEAigAAA4UFxAAHADOyAwgJERI5ALAARViwBi8bsQYcPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEBMxEhESMRIQLMuf2+uQJCBcT+MPwMBI0AAAIAgQTfAuAGigANABEAYACwAy+wB9CwBy9ADQ8HHwcvBz8HTwdfBwZdsAMQsQoEsAorWCHYG/RZsAcQsA3QsA0vsAcQsBDQsBAvsA/QsA8vQA8PDx8PLw8/D08PXw9vDwddsBAQsBHQGbARLxgwMQEUBiMiJjUzFBYzMjY1JzMHIwLgqIeIqJhPSUdPYJmkZgWwX3JyXzc9PzXaxgAAAgCBBOACygcDAA0AHABmALADL7AH0LAHL0ANDwcfBy8HPwdPB18HBl2wAxCxCgSwCitYIdgb9FmwBxCwDdCwDS+wBxCwDtCwDi+wFdCwFS9ADw8VHxUvFT8VTxVfFW8VB12wFNCyDxQOERI5shsOFRESOTAxARQGIyImNTMUFjMyNjUnJzY2NTQjNzIWFRQGBwcCyqGDhKGSSklFTMkBSkKgB5CUUUQBBbBecnNdNT49NhF8BBgdO1JOQjI7Bz7//wBQAo0CnQW4AwcBxwAAApgAEwCwAEVYsAovG7EKHj5ZsBDQMDEA//8ANgKYArsFrQMHAiAAAAKYABMAsABFWLAJLxuxCR4+WbAN0DAxAP//AFsCjQKnBa0DBwIhAAACmAAQALAARViwAS8bsQEePlkwMf//AFYCjQKrBbYDBwIiAAACmAATALAARViwAC8bsQAePlmwFNAwMQD//wA6ApgCpQWtAwcCIwAAApgAEACwAEVYsAUvG7EFHj5ZMDH//wBPAo0CnwW4AwcCJAAAApgAGQCwAEVYsBEvG7ERHj5ZsBfQsBEQsB/QMDEA//8ASQKRApUFuAMHAiUAAAKYABMAsABFWLAILxuxCB4+WbAZ0DAxAAABAH7/6wUdBcUAHgBOsgwfIBESOQCwAEVYsAwvG7EMHj5ZsABFWLADLxuxAxI+WbAMELAQ0LAMELETAbAKK1gh2Bv0WbADELEbAbAKK1gh2Bv0WbADELAe0DAxAQYAIyIkAic1NBIkMzIAFyMmJiMiAhEVFBIWMzI2NwUcGP7b7rH+4aIBnQEbsu0BLxnBGL+dwOpuyH2hsBoBzt/+/LQBR8tE0wFKs/7646Oo/sv+/jeh/wCQnakAAQB+/+sFHgXEACIAcLIMIyQREjkAsABFWLAMLxuxDB4+WbAARViwAy8bsQMSPlmyEAMMERI5sBAvsAwQsRMBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZsiIMAxESObAiL7Q/Ik8iAl20DyIfIgJdsR8BsAorWCHYG/RZMDElBgQjIiQCJzU0EiQzMgQXIyYmIyICBwcUEhYzMjY3ESE1IQUeQ/7jsLv+1qgDmwEctfEBISLAHrqctewKAXjThXK1Kv6wAg++YXK0AUfSLdsBTrbl2pWM/tzyRqz+9ow6MAFGmwAAAgCyAAAFEQWwAAsAFQBIsgMWFxESObADELAV0ACwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbABELEMAbAKK1gh2Bv0WbAAELENAbAKK1gh2Bv0WTAxMxEhMgQSFxUUAgQHAxEzMgARNTQAI7IBscEBOLEErf7Cy+nf6gET/vfoBbCs/sTIPtD+wbECBRL7iwEqAQMk/AEoAAIAfv/rBV8FxQARACIASLIEIyQREjmwBBCwH9AAsABFWLANLxuxDR4+WbAARViwBC8bsQQSPlmwDRCxFgGwCitYIdgb9FmwBBCxHwGwCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFwc0AiYjIgYGBxUUEhYzMhI1BV+i/uKvq/7hpgKkASGrrQEgowG/bsd9eMZyAXHJecHvAsLO/rC5uQFKyDfNAU+8uf60zAWiAQCPj/6cNaD+/pIBO/8AAAIAfv8EBV8FxQAVACYAT7IIJygREjmwCBCwI9AAsABFWLARLxuxER4+WbAARViwCC8bsQgSPlmyAwgRERI5sBEQsRoBsAorWCHYG/RZsAgQsSMBsAorWCHYG/RZMDEBFAIHFwclBiMiJAInNTQSJDMyBBIVJzQCJiMiBgYHFRQSFjMyEjUFX6mU+oP+zDk8q/7gpAOiASKsrgEhor9ux314x3EBccl5we8CwtT+rFrDefMMugFGxjrMAVC+u/6wzgGjAQGPkP+cM6D+/pIBO/8AAAEAoAAAAskEjQAGADMAsABFWLAFLxuxBRw+WbAARViwAC8bsQASPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZMDEhIxEFNSUzAsm5/pACCh8DpouoygAAAQCDAAAEIASgABgAVrIJGRoREjkAsABFWLARLxuxERw+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyFhcRERI5sgMRFhESObARELEJAbAKK1gh2Bv0WbARELAM0DAxISE1ATY3NzQmIyIGFSM0NjYzMhYVFAcBIQQg/IcB/X0KA31mepW5eNJ+u+HF/oYCeIMByXNUNVRsjnVwv2y4mLG0/qwAAQAP/qMD3gSNABgAUQCwCy+wAEVYsAIvG7ECHD5ZsQEBsAorWCHYG/RZsATQsgULAhESObAFL7ALELEQAbAKK1gh2Bv0WbAFELEXAbAKK1gh2Bv0WbIYFwUREjkwMQEhNSEVARYWFRQAIyInNxYzMjY1NCYjIzUC5P10A3L+gLLi/sz/ytI0pbG017nAPAP0mXb+bBj2s/n+2meLWMqlq6VnAAACAD7+tgSgBI0ACgAOAEwAsABFWLAJLxuxCRw+WbAARViwAi8bsQISPlmwAEVYsAYvG7EGEj5ZsQABsAorWCHYG/RZsAYQsAXQsAUvsAAQsAzQsg0JAhESOTAxJTMVIxEjESE1ATMBIREHA9vFxbr9HQLWx/08Agoclpf+twFJbQQh/AkC/DUAAQBl/qAEBQSMABsAUQCwDS+wAEVYsAEvG7EBHD5ZsQQBsAorWCHYG/RZsgcNARESObAHL7EYAbAKK1gh2Bv0WbIFBxgREjmwDRCxEgGwCitYIdgb9FmwBxCwG9AwMRMTIRUhAzY3NhIVFAAjIic3FjMyNjU0JiMiBgeGZgMU/X42b5XI8f7g8eCvOoLTmb+lh2p1IgF0Axir/nRAAgL+9eHv/uJyi2XPpI+2OlMAAQBK/rYD8gSNAAYAJgCwAS+wAEVYsAUvG7EFHD5ZsQMBsAorWCHYG/RZsgADBRESOTAxAQEjASE1IQPy/aC6Alf9GwOoBCP6kwU/mAAAAgCDBNkC0gbQAA0AIQB+ALADL7AH0LAHL0ANDwcfBy8HPwdPB18HBl2wAxCxCgSwCitYIdgb9FmwBxCwDdCwDS+wBxCwEdCwES+wFNCwFC9ACw8UHxQvFD8UTxQFXbARELAX0LAXL7AUELEbBLAKK1gh2Bv0WbARELEeBLAKK1gh2Bv0WbAbELAh0DAxARQGIyImNTMUFjMyNjUTFAYjIiYjIgYVJzQ2MzIWMzI2NQLSoYaHoZZKSEdKjWBGOncsIjBTYEUwgSwjMAWuX3Z2XzZAQDYBCkppSzMmFUtrSzMmAAEAZ/6ZASEAmQADABIAsAQvsALQsAIvsAHQsAEvMDEBIxEzASG6uv6ZAgAAAgBg//AGbQSdABMAHQCfshUeHxESObAVELAK0ACwAEVYsAkvG7EJHD5ZsABFWLALLxuxCxw+WbAARViwAi8bsQISPlmwAEVYsAAvG7EAEj5ZsAsQsQwBsAorWCHYG/RZsAAQsA/QsA8vsh8PAV2y3w8BXbEQAbAKK1gh2Bv0WbAAELETAbAKK1gh2Bv0WbACELEUAbAKK1gh2Bv0WbAJELEXAbAKK1gh2Bv0WTAxISEFIgARNRAAMwUhFSERIRUhESEFNxEnIgYVFRQWBm39Y/6O5f7nARflAVsCr/2bAhT97AJs+/Hq7JavsBABMgEHPgECATQQmf6ymP6JDQcDZwnWxULD1wAAAgCC/qkEPwShABgAJQBOALAUL7AARViwDC8bsQwcPlmwFBCxAAGwCitYIdgb9FmyBRQMERI5sAUvsgMFDBESObEaAbAKK1gh2Bv0WbAMELEgAbAKK1gh2Bv0WTAxBTI2NwYjIgI1NDY2MzIAExUUAgQjIic3FhMyNjc1NCYjIgYVFBYB37HcFXe30v910oTrAQUCkv7zr592JnrgaZ8ioZJ/mKO/9NlpARTinOx+/tz+9vrc/rquPI4yAfxcUpTFxcOrlckAAf+2/ksBZwCYAAwAKACwDS+wAEVYsAQvG7EEFD5ZsQkBsAorWCHYG/RZsA0QsAzQsAwvMDElFQYGIyInNxYzMjU1AWcBqpc7NA4eQ4mY9aiwEp0NwukA//8AO/6jBAoEjQEGAkwsAAAQALAARViwAi8bsQIcPlkwMf//AHP+oAQTBIwBBgJODgAAEACwAEVYsAEvG7EBHD5ZMDH//wAj/rYEhQSNAQYCTeUAABMAsABFWLAGLxuxBhI+WbAM0DAxAP//AHcAAAQUBKABBgJL9AAAEACwAEVYsBEvG7ERHD5ZMDH//wB2/rYEHgSNAQYCTywAABAAsABFWLAFLxuxBRw+WTAx//8AN//rBEgEoQEGAmW/AAATALAARViwCC8bsQgcPlmwD9AwMQD//wB+/+wEFgWxAQYAGvoAABMAsABFWLAALxuxAB4+WbAV0DAxAP//AF/+qQQcBKEBBgJT3QAAEwCwAEVYsAwvG7EMHD5ZsCDQMDEA//8AcP/sBA4FxAEGABwAAAAZALAARViwFS8bsRUePlmwG9CwFRCwItAwMQD//wD0AAADHQSNAAYCSlQA////tP5LAWUEOgAGAJwAAP///7T+SwFlBDoABgCcAAD//wCbAAABVQQ6AQYAjQAAABAAsABFWLACLxuxAho+WTAx////+v5ZAVoEOgAmAI0AAAAGAKTICv//AJsAAAFVBDoABgCNAAAAAQCK/+wD+QSdACEAZgCwAEVYsBUvG7EVHD5ZsABFWLAQLxuxEBI+WbAARViwHy8bsR8SPlmxAgGwCitYIdgb9FmyGR8VERI5sBkvtB8ZLxkCXbAIsAorWNgb3FmwGRCwCtCwFRCxDQGwCitYIdgb9FkwMSUWMzI2NTQmIyM1EyYjIgMRIxE2NjMyFhcBFhYVFAYjIicBw1JYYXKIh1TtTmPTBLgBxclrw2X+7qm217V3aLUze2NiVYkBJz7+9f0GAvXS1lVi/rYPo4aszDEAAAIAeP/rBIkEoQALABkAOwCwAEVYsAgvG7EIHD5ZsABFWLADLxuxAxI+WbAIELEPAbAKK1gh2Bv0WbADELEWAbAKK1gh2Bv0WTAxARAAIAADNRAAIAATJzQmIyIGBxUUFjMyNjcEif7o/iL+5gEBGQHeARkBurKdm7ICtpuasQICPP7q/sUBPAEUFAEUAT7+xP7rDcri4MU0yeXdygAAAQA7AAAD0gWwAAYAMwCwAEVYsAUvG7EFHj5ZsABFWLABLxuxARI+WbAFELEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNSED0v2+ugJA/SUDlwVI+rgFGJgAAgCM/+wENAYAABAAGwBmshQcHRESObAUELAN0ACwCS+wAEVYsA0vG7ENGj5ZsABFWLAELxuxBBI+WbAARViwBy8bsQcSPlmyBg0EERI5sgsNBBESObANELEUAbAKK1gh2Bv0WbAEELEZAbAKK1gh2Bv0WTAxARQGBiMiJwcjETMRNjMyEhEnNCYjIgcRFjMyNgQ0b8mA0XAPoLlwxcnxuaOMt1BVtIqjAhKf/IuVgQYA/cOL/tP+/we01qr+LKvYAAABAFz/7APvBE4AHQBLsgAeHxESOQCwAEVYsBAvG7EQGj5ZsABFWLAILxuxCBI+WbEAAbAKK1gh2Bv0WbAIELAD0LAQELAU0LAQELEXAbAKK1gh2Bv0WTAxJTI2NzMOAiMiADU1NDY2MzIWFyMmJiMiBhUVFBYCQGOUCLAFeMRu3/77dtuTtvEIsAiPaI+bnYN4Wl6oYwEq/CCd+YbarmmHzr8hvMkAAgBb/+wEAAYAABEAHABmshodHhESObAaELAE0ACwBy+wAEVYsAQvG7EEGj5ZsABFWLANLxuxDRI+WbAARViwCS8bsQkSPlmyBgQNERI5sgsEDRESObANELEVAbAKK1gh2Bv0WbAEELEaAbAKK1gh2Bv0WTAxEzQ2NjMyFxEzESMnBiMiJiYnNxQWMzI3ESYjIgZbcc6Avm+5oQ5vynzLdQG5qIqvUlOsjacCJp/8jYICNPoAeIyM+5gGsdifAfGZ1gACAFv+VgQABE4AGwAmAH+yHycoERI5sB8QsAvQALAARViwAy8bsQMaPlmwAEVYsAYvG7EGGj5ZsABFWLALLxuxCxQ+WbAARViwGC8bsRgSPlmyBQMYERI5sAsQsRIBsAorWCHYG/RZshYDGBESObAYELEfAbAKK1gh2Bv0WbADELEkAbAKK1gh2Bv0WTAxEzQSMzIXNzMRBgIjIiYnNxYWMzI2NTUGIyICNRcUFjMyNxEmIyIGW/jGzG8PnQL04FbISDc/n0+Vim/Bwvq5pouvU1OtjqUCJvYBMpSA/A7v/v03MooqMrCoKIEBOPQHsNmhAeud1wACAFr/7AREBE4AEAAcADgAsABFWLAELxuxBBo+WbAARViwDC8bsQwSPlmxFAGwCitYIdgb9FmwBBCxGgGwCitYIdgb9FkwMRM0NjYzMgAVFRQGBiMiJiYnNxQWMzI2NTQmIyIGWoDjkN0BGn7lko/jgQK5r42OrrGNi68CJ5z/jP7M+w6d/IyI+ZoKsN7gxK/g3gAAAgCM/mAEMgROABAAGwBwshkcHRESObAZELAN0ACwAEVYsA0vG7ENGj5ZsABFWLAKLxuxCho+WbAARViwBy8bsQcUPlmwAEVYsAQvG7EEEj5ZsgYNBBESObILDQQREjmwDRCxFAGwCitYIdgb9FmwBBCxGQGwCitYIdgb9FkwMQEUBgYjIicRIxEzFzYzMhIXBzQmIyIHERYzMjYEMm7IgcVxuZ8PdMrB7gq4qY+oVFOrjKoCEZ78i3399wXafZH+6eonsNuV/fuU3wAAAgBb/mAD/wROAA8AGgBtshgbHBESObAYELAD0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCC8bsQgUPlmwAEVYsAwvG7EMEj5ZsgUDDBESObIKAwwREjmxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFzczESMRBiMiAjUXFBYzMjcRJiMiBlv3zMRvDqC5cLrH+rmqjKZWWKKOqgIl9QE0hnL6JgIEeAE19geu35MCEY/fAAIAXf/sA/METgAUABwAZbIIHR4REjmwCBCwFdAAsABFWLAILxuxCBo+WbAARViwAC8bsQASPlmyGQgAERI5sBkvtL8ZzxkCXbEMAbAKK1gh2Bv0WbAAELEQAbAKK1gh2Bv0WbAIELEVAbAKK1gh2Bv0WTAxBSIAJyc0NjYzMhIVFSEWFjMyNxcGASIGByE1NCYCceX+3QsBfN2A1ej9JAjCmaB4OYP+7nOYEQIgiRQBF+NOm/WK/v7wdJ3IWn9yA8qglhmDmgAAAgBg/lYD8gROABoAJQB/siMmJxESObAjELAL0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCy8bsQsUPlmwAEVYsBcvG7EXEj5ZsgUDFxESObALELERAbAKK1gh2Bv0WbIVAxcREjmwFxCxHgGwCitYIdgb9FmwAxCxIwGwCitYIdgb9FkwMRM0EjMyFzczERQGIyImJzcWMzI2NTUGIyICNRcUFjMyNxEmIyIGYOjDynAQnfXhUq9BN3qPlYlvwL7rupWIr1JVqomWAiX6AS+Tf/wF6v8tKYpJp546gAEy+gi106AB7pvQAP//AFcAAAKGBbcABgAVrQAAAwBn//AEkQSdAB0AJgAyAJqyLDM0ERI5sCwQsA7QsCwQsB/QALAARViwDS8bsQ0cPlmwAEVYsAAvG7EAEj5ZsABFWLAaLxuxGhI+WbIqDRoREjmyIQ0aERI5sgcqIRESObITISoREjmwABCxHgGwCitYIdgb9FmyFB4NERI5shYNABESObIcAA0REjmyGRQcERI5siAeFBESObANELEwAbAKK1gh2Bv0WTAxBSImNTQ2NzcnJjU0NjMyFhUUBwcBNjUzFAcXIycGJzI3AQcGFRQWAxQXFzc2NTQmIyIGAeir1k5oS0tdrZCGsZtJAQxFqH/H0l6X0ZFq/ttkTGsVPzZCU0hCOEgQpYFWhks2T2hsc5SWcJBvNP7jdJ3gptJhcZlLATNJO1RJXQMAOkY5MDxNNEVGAAEAAAAAA4sEjQANAGGyAA4PERI5ALAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5Zsg0EChESObANL7EAArAKK1gh2Bv0WbAB0LAEELECAbAKK1gh2Bv0WbABELAG0LAH0LANELAM0LAJ0LAI0DAxAQURIRUhEQc1NxEzESUCTf72Akj8/4qKuQEKApFV/luXAgIsfSwCDv4sVQACAAkAAAXxBI0ADwASAIiyBRMUERI5sAUQsBHQALAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbIPCgQREjmwDy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmyEQoEERI5sBEvsQYBsAorWCHYG/RZsAoQsQwBsAorWCHYG/RZshIKBBESOTAxASETIRUhAyEDIwEhFSETIQUhAwWI/jUOAib9Jgv+ZqPGApYDKf3kDAHQ/DsBRBMCFf6AlQEt/tMEjZb+tOcCMgACAIoAAAO3BI0ADAAVAFmyFRYXERI5sBUQsAnQALAARViwAC8bsQAcPlmwAEVYsAsvG7ELEj5ZsgIACxESObACL7IPAAsREjmwDy+xCQGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FkwMRMzFTMWFhUUBiMjFSMTETMyNjU0JieKucXE6+rWtLm5toCEiHcEjcsExaapvuwDKv5abGJgdwEAAwBg/8cEWgS2ABUAHgAnAGqyBigpERI5sAYQsBvQsAYQsCTQALAARViwES8bsREcPlmwAEVYsAYvG7EGEj5ZshgRBhESObIZEQYREjmwERCxGwGwCitYIdgb9FmyIREGERI5siIGERESObAGELEkAbAKK1gh2Bv0WTAxARYRFRAAIyInByM3JhE1EAAzMhc3MwEUFwEmIyIGFSU0JwEWMzI2NQPWhP7s6Jp0S5V/jwEX5aF7RZX8xT0ByU9ylq8CjDT+O0pqnKkD/Jn+/z7++/7RR3C+mgEJPwECATROZ/1un2kCqjvWxQOXYv1cNNPHAAACADAAAASzBI0AEwAXAI2yAxgZERI5sAMQsBTQALAARViwDC8bsQwcPlmwAEVYsBAvG7EQHD5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyEwwCERI5sBMvsg8TAV2xAAGwCitYIdgb9FmyFQwCERI5sBUvsQQBsAorWCHYG/RZsAAQsAjQsBMQsArQsBMQsA7QsAAQsBbQMDEBIxEjESERIxEjNTM1MxUhNTMVMwEhNSEEs1u5/aS5Wlq5Aly5W/yQAlz9pANP/LEB8v4OA0+Xp6enp/6kxQAAAQCK/ksEWASNABMAW7ICFBUREjkAsABFWLAMLxuxDBw+WbAARViwDy8bsQ8cPlmwAEVYsAAvG7EAFD5ZsABFWLAKLxuxChI+WbAAELEFAbAKK1gh2Bv0WbIJDAoREjmyDgoMERI5MDEBIic3FjMyNTUBESMRMwERMxEUBgMXPDQNI0CI/aS5uQJduKr+SxKdDcNRA2v8lASN/JMDbfsaqbP//wAlAh8CDQK2AgYAEQAAAAIABwAABOQFsAAPAB0AaQCwAEVYsAUvG7EFHj5ZsABFWLAALxuxABI+WbIEAAUREjmwBC+yzwQBXbIvBAFdsp8EAXGxAQGwCitYIdgb9FmwEdCwABCxEgGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwBBCwHNAwMTMRIzUzESEyBBIXFRQCBAcTIxEzMhI3NTQCJyMRM8fAwAGbvgEknwGf/tnEKfzJ3vcB6dbg/AKalwJ/qP7KyV3O/sqmAgKa/gMBEvld+AETAv4fAAIABwAABOQFsAAPAB0AaQCwAEVYsAUvG7EFHj5ZsABFWLAALxuxABI+WbIEAAUREjmwBC+yzwQBXbIvBAFdsp8EAXGxAQGwCitYIdgb9FmwEdCwABCxEgGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwBBCwHNAwMTMRIzUzESEyBBIXFRQCBAcTIxEzMhI3NTQCJyMRM8fAwAGbvgEknwGf/tnEKfzJ3vcB6dbg/AKalwJ/qP7KyV3O/sqmAgKa/gMBEvld+AETAv4fAAH/4gAAA/0GAAAZAGwAsBcvsABFWLAELxuxBBo+WbAARViwEC8bsRASPlmwAEVYsAgvG7EIEj5Zsi8XAV2yDxcBXbIVEBcREjmwFS+xEgGwCitYIdgb9FmwAdCyAhAEERI5sAQQsQwBsAorWCHYG/RZsBUQsBjQMDEBIxE2MyATESMRJiYjIgYHESMRIzUzNTMVMwJe+3vFAVcDuQFpb1qIJrnIyLn7BNL+5Zf+ff01Asx1cGBO/P0E0peXlwABADEAAASXBbAADwBOALAARViwCi8bsQoePlmwAEVYsAIvG7ECEj5Zsg8KAhESObAPL7EAAbAKK1gh2Bv0WbAE0LAPELAG0LAKELEIAbAKK1gh2Bv0WbAM0DAxASMRIxEjNTMRITUhFSERMwOq57/W1v4tBGb+LOcDN/zJAzeXAUSenv68AAH/9P/sAnAFQAAdAHYAsABFWLABLxuxARo+WbAARViwES8bsRESPlmwARCwANCwAC+wARCxBAGwCitYIdgb9FmwARCwBdCwBS+yAAUBXbEIAbAKK1gh2Bv0WbARELEMAbAKK1gh2Bv0WbAIELAV0LAFELAY0LAEELAZ0LABELAc0DAxAREzFSMVMxUjERQWMzI3FQYjIiY1ESM1MzUjNTMRAYfKyunpNkEgOElFfH7a2sXFBUD++o+6l/6yQUEMlhSWigFOl7qPAQYA//8AHAAABR0HNgImACUAAAEHAEQBMAE2ABQAsABFWLAELxuxBB4+WbEMCPQwMf//ABwAAAUdBzYCJgAlAAABBwB1Ab8BNgAUALAARViwBS8bsQUePlmxDQj0MDH//wAcAAAFHQc2AiYAJQAAAQcAngDJATYAFACwAEVYsAQvG7EEHj5ZsQ8G9DAx//8AHAAABR0HIgImACUAAAEHAKUAxQE6ABQAsABFWLAFLxuxBR4+WbEOBPQwMf//ABwAAAUdBvsCJgAlAAABBwBqAPkBNgAXALAARViwBC8bsQQePlmxEQT0sBvQMDEA//8AHAAABR0HkQImACUAAAEHAKMBUAFBABcAsABFWLAELxuxBB4+WbEOBvSwGNAwMQD//wAcAAAFHQeUAiYAJQAAAAcCJwFaASL//wB3/kQE2AXEAiYAJwAAAAcAeQHS//f//wCpAAAERgdCAiYAKQAAAQcARAD7AUIAFACwAEVYsAYvG7EGHj5ZsQ0I9DAx//8AqQAABEYHQgImACkAAAEHAHUBigFCABQAsABFWLAGLxuxBh4+WbEOCPQwMf//AKkAAARGB0ICJgApAAABBwCeAJQBQgAUALAARViwBi8bsQYePlmxEAb0MDH//wCpAAAERgcHAiYAKQAAAQcAagDEAUIAFwCwAEVYsAYvG7EGHj5ZsRIE9LAb0DAxAP///+AAAAGBB0ICJgAtAAABBwBE/6cBQgAUALAARViwAi8bsQIePlmxBQj0MDH//wCwAAACUQdCAiYALQAAAQcAdQA1AUIAFACwAEVYsAMvG7EDHj5ZsQYI9DAx////6QAAAkYHQgImAC0AAAEHAJ7/QAFCABQAsABFWLACLxuxAh4+WbEIBvQwMf///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCgT0sBTQMDEA//8AqQAABQgHIgImADIAAAEHAKUA+wE6ABQAsABFWLAGLxuxBh4+WbENBPQwMf//AHb/7AUJBzgCJgAzAAABBwBEAVIBOAAUALAARViwDS8bsQ0ePlmxIQj0MDH//wB2/+wFCQc4AiYAMwAAAQcAdQHhATgAFACwAEVYsA0vG7ENHj5ZsSII9DAx//8Adv/sBQkHOAImADMAAAEHAJ4A6wE4ABQAsABFWLANLxuxDR4+WbEiBvQwMf//AHb/7AUJByQCJgAzAAABBwClAOcBPAAUALAARViwDS8bsQ0ePlmxIwT0MDH//wB2/+wFCQb9AiYAMwAAAQcAagEbATgAFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AIz/7ASqBzYCJgA5AAABBwBEASsBNgAUALAARViwCi8bsQoePlmxFAj0MDH//wCM/+wEqgc2AiYAOQAAAQcAdQG6ATYAFACwAEVYsBIvG7ESHj5ZsRUI9DAx//8AjP/sBKoHNgImADkAAAEHAJ4AxAE2ABQAsABFWLAKLxuxCh4+WbEXBvQwMf//AIz/7ASqBvsCJgA5AAABBwBqAPQBNgAXALAARViwCi8bsQoePlmxGQT0sCPQMDEA//8ADwAABLsHNgImAD0AAAEHAHUBiAE2ABQAsABFWLABLxuxAR4+WbELCPQwMf//AG3/7APqBgACJgBFAAABBwBEANUAAAAUALAARViwFy8bsRcaPlmxKgn0MDH//wBt/+wD6gYAAiYARQAAAQcAdQFkAAAAFACwAEVYsBcvG7EXGj5ZsSsJ9DAx//8Abf/sA+oGAAImAEUAAAEGAJ5uAAAUALAARViwFy8bsRcaPlmxKwH0MDH//wBt/+wD6gXsAiYARQAAAQYApWoEABQAsABFWLAXLxuxFxo+WbEsAfQwMf//AG3/7APqBcUCJgBFAAABBwBqAJ4AAAAXALAARViwFy8bsRcaPlmxMAH0sDnQMDEA//8Abf/sA+oGWwImAEUAAAEHAKMA9QALABcAsABFWLAXLxuxFxo+WbEsBPSwNtAwMQD//wBt/+wD6gZfAiYARQAAAAcCJwD//+3//wBc/kQD7AROAiYARwAAAAcAeQE///f//wBd/+wD8wYAAiYASQAAAQcARADFAAAAFACwAEVYsAgvG7EIGj5ZsR8J9DAx//8AXf/sA/MGAAImAEkAAAEHAHUBVAAAABQAsABFWLAILxuxCBo+WbEgCfQwMf//AF3/7APzBgACJgBJAAABBgCeXgAAFACwAEVYsAgvG7EIGj5ZsSAB9DAx//8AXf/sA/MFxQImAEkAAAEHAGoAjgAAABcAsABFWLAILxuxCBo+WbElAfSwLtAwMQD////GAAABZwX/AiYAjQAAAQYARI3/ABQAsABFWLACLxuxAho+WbEFCfQwMf//AJYAAAI3Bf8CJgCNAAABBgB1G/8AFACwAEVYsAMvG7EDGj5ZsQYJ9DAx////zwAAAiwF/wImAI0AAAEHAJ7/Jv//ABQAsABFWLACLxuxAho+WbEIAfQwMf///7sAAAJEBcQCJgCNAAABBwBq/1b//wAXALAARViwAi8bsQIaPlmxCwH0sBTQMDEA//8AjAAAA98F7AImAFIAAAEGAKVhBAAUALAARViwAy8bsQMaPlmxFQH0MDH//wBb/+wENAYAAiYAUwAAAQcARADPAAAAFACwAEVYsAQvG7EEGj5ZsR0J9DAx//8AW//sBDQGAAImAFMAAAEHAHUBXgAAABQAsABFWLAELxuxBBo+WbEeCfQwMf//AFv/7AQ0BgACJgBTAAABBgCeaAAAFACwAEVYsAQvG7EEGj5ZsR4B9DAx//8AW//sBDQF7AImAFMAAAEGAKVkBAAUALAARViwBC8bsQQaPlmxHwH0MDH//wBb/+wENAXFAiYAUwAAAQcAagCYAAAAFwCwAEVYsAQvG7EEGj5ZsSMB9LAs0DAxAP//AIj/7APcBgACJgBZAAABBwBEAMcAAAAUALAARViwBy8bsQcaPlmxEgn0MDH//wCI/+wD3AYAAiYAWQAAAQcAdQFWAAAAFACwAEVYsA0vG7ENGj5ZsRMJ9DAx//8AiP/sA9wGAAImAFkAAAEGAJ5gAAAUALAARViwBy8bsQcaPlmxFQH0MDH//wCI/+wD3AXFAiYAWQAAAQcAagCQAAAAFwCwAEVYsAcvG7EHGj5ZsRgB9LAh0DAxAP//ABb+SwOwBgACJgBdAAABBwB1ARsAAAAUALAARViwAS8bsQEaPlmxEgn0MDH//wAW/ksDsAXFAiYAXQAAAQYAalUAABcAsABFWLAPLxuxDxo+WbEXAfSwINAwMQD//wAcAAAFHQbjAiYAJQAAAQcAcADHAT4AEwCwAEVYsAQvG7EEHj5ZsAzcMDEA//8Abf/sA+oFrQImAEUAAAEGAHBsCAATALAARViwFy8bsRcaPlmwKtwwMQD//wAcAAAFHQcOAiYAJQAAAQcAoQD0ATcAEwCwAEVYsAQvG7EEHj5ZsA3cMDEA//8Abf/sA+oF2AImAEUAAAEHAKEAmQABABMAsABFWLAXLxuxFxo+WbAr3DAxAAACABz+TwUdBbAAFgAZAGkAsABFWLAWLxuxFh4+WbAARViwFC8bsRQSPlmwAEVYsAEvG7EBEj5ZsABFWLAMLxuxDBQ+WbEHA7AKK1gh2Bv0WbABELAR0LARL7IXFBYREjmwFy+xEwGwCitYIdgb9FmyGRYUERI5MDEBASMHBhUUMzI3FwYjIiY1NDcDIQMjAQMhAwLwAi0mOnFOMDQNRlpZZ6mH/Z6JxgIsowHv+AWw+lAtW1ZIGnksaFaQbAFz/oQFsPxqAqkAAAIAbf5PA+oETgAtADcAlACwAEVYsBcvG7EXGj5ZsABFWLAELxuxBBI+WbAARViwHi8bsR4SPlmwAEVYsCkvG7EpFD5ZsB4QsADQsAAvsgIEFxESObILFwQREjmwCy+wFxCxDwGwCitYIdgb9FmyEgsXERI5sCkQsSQDsAorWCHYG/RZsAQQsS4BsAorWCHYG/RZsAsQsTMBsAorWCHYG/RZMDElJicGIyImNTQkMzM1NCYjIgYVIzQ2NjMyFhcRFBcVIwcGFRQzMjcXBiMiJjU0JzI2NzUjIBUUFgMkDweBs6DNAQHptHRxY4a6c8V2u9QEJiE6cU4wNA1GWllniFecI5H+rHQHJkWGtYupu1Vhc2RHUZdYu6T+DpVYEC1bVkgaeSxoVpDwWkjex1diAP//AHf/7ATYB1cCJgAnAAABBwB1AcYBVwAUALAARViwCy8bsQsePlmxHwj0MDH//wBc/+wD7AYAAiYARwAAAQcAdQEzAAAAFACwAEVYsBAvG7EQGj5ZsSAJ9DAx//8Ad//sBNgHVwImACcAAAEHAJ4A0AFXABQAsABFWLALLxuxCx4+WbEfBvQwMf//AFz/7APsBgACJgBHAAABBgCePQAAFACwAEVYsBAvG7EQGj5ZsSAB9DAx//8Ad//sBNgHGQImACcAAAEHAKIBrQFXABQAsABFWLALLxuxCx4+WbEjBPQwMf//AFz/7APsBcICJgBHAAABBwCiARoAAAAUALAARViwEC8bsRAaPlmxJAH0MDH//wB3/+wE2AdXAiYAJwAAAQcAnwDlAVgAFACwAEVYsAsvG7ELHj5ZsSEG9DAx//8AXP/sA+wGAAImAEcAAAEGAJ9SAQAUALAARViwEC8bsRAaPlmxIgH0MDH//wCpAAAExgdCAiYAKAAAAQcAnwCeAUMAFACwAEVYsAEvG7EBHj5ZsRsG9DAx//8AX//sBSsGAgAmAEgAAAEHAboD1AUTAEgAsvAfAXKyHx8BXbKfHwFdsh8fAXG0zx/fHwJxst8fAXKyXx8BcrJPHwFxss8fAV20Tx9fHwJdsmAfAV2y4B8BcbLgHwFdMDH//wCpAAAERgbvAiYAKQAAAQcAcACSAUoAEwCwAEVYsAYvG7EGHj5ZsA3cMDEA//8AXf/sA/MFrQImAEkAAAEGAHBcCAATALAARViwCC8bsQgaPlmwH9wwMQD//wCpAAAERgcaAiYAKQAAAQcAoQC/AUMAEwCwAEVYsAYvG7EGHj5ZsA/cMDEA//8AXf/sA/MF2AImAEkAAAEHAKEAiQABABMAsABFWLAILxuxCBo+WbAh3DAxAP//AKkAAARGBwQCJgApAAABBwCiAXEBQgAUALAARViwBi8bsQYePlmxEwT0MDH//wBd/+wD8wXCAiYASQAAAQcAogE7AAAAFACwAEVYsAgvG7EIGj5ZsSUB9DAxAAEAqf5PBEYFsAAbAHoAsABFWLAWLxuxFh4+WbAARViwFS8bsRUSPlmwAEVYsA8vG7EPFD5ZsABFWLAELxuxBBI+WbIaFRYREjmwGi+xAQGwCitYIdgb9FmwFRCxAgGwCitYIdgb9FmwDxCxCgOwCitYIdgb9FmwFhCxGQGwCitYIdgb9FkwMQEhESEVIwcGFRQzMjcXBiMiJjU0NyERIRUhESED4P2JAt1JOnFOMDQNRlpZZ5v9XQOT/S0CdwKh/fydLVtWSBp5LGhWimkFsJ7+LAAAAgBd/mgD8wROACUALQB+ALAARViwGi8bsRoaPlmwAEVYsA0vG7ENFD5ZsABFWLASLxuxEhI+WbAE0LANELEIA7AKK1gh2Bv0WbIqEhoREjmwKi+0vyrPKgJdsR4BsAorWCHYG/RZsBIQsSIBsAorWCHYG/RZsiUSGhESObAaELEmAbAKK1gh2Bv0WTAxJQYHMwcGFRQzMjcXBiMiJjU0NyYANTU0NjYzMhIRFSEWFjMyNjcBIgYHITUmJgPlR3MBOnFOMDQNRlpZZ2La/vV73YHT6v0jBLOKYogz/sJwmBICHgiIvW42LVtWSBp5LGhWbFoEASHvIaH9j/7q/v1NoMVQQgKho5MOjZsA//8AqQAABEYHQgImACkAAAEHAJ8AqQFDABQAsABFWLAGLxuxBh4+WbERBvQwMf//AF3/7APzBgACJgBJAAABBgCfcwEAFACwAEVYsAgvG7EIGj5ZsSIB9DAx//8Aev/sBNwHVwImACsAAAEHAJ4AyAFXABQAsABFWLALLxuxCx4+WbEiBvQwMf//AGD+VgPyBgACJgBLAAABBgCeVQAAFACwAEVYsAMvG7EDGj5ZsScB9DAx//8Aev/sBNwHLwImACsAAAEHAKEA8wFYABMAsABFWLALLxuxCx4+WbAi3DAxAP//AGD+VgPyBdgCJgBLAAABBwChAIAAAQATALAARViwAy8bsQMaPlmwJ9wwMQD//wB6/+wE3AcZAiYAKwAAAQcAogGlAVcAFACwAEVYsAsvG7ELHj5ZsScE9DAx//8AYP5WA/IFwgImAEsAAAEHAKIBMgAAABQAsABFWLADLxuxAxo+WbEsAfQwMf//AHr99gTcBcQCJgArAAAABwG6Adr+l///AGD+VgPyBpMCJgBLAAABBwI0ASsAWAATALAARViwAy8bsQMaPlmwKtwwMQD//wCpAAAFCAdCAiYALAAAAQcAngDxAUIAFACwAEVYsAcvG7EHHj5ZsRAG9DAx//8AjAAAA98HQQImAEwAAAEHAJ4AHQFBAAkAsBEvsBTcMDEA////twAAAnoHLgImAC0AAAEHAKX/PAFGABQAsABFWLADLxuxAx4+WbEHBPQwMf///50AAAJgBeoCJgCNAAABBwCl/yIAAgAUALAARViwAy8bsQMaPlmxBwH0MDH////MAAACbAbvAiYALQAAAQcAcP8+AUoAEwCwAEVYsAIvG7ECHj5ZsAXcMDEA////sgAAAlIFqwImAI0AAAEHAHD/JAAGABMAsABFWLACLxuxAho+WbAF3DAxAP///+wAAAJDBxoCJgAtAAABBwCh/2sBQwATALAARViwAi8bsQIePlmwB9wwMQD////SAAACKQXXAiYAjQAAAQcAof9RAAAAEwCwAEVYsAIvG7ECGj5ZsAfcMDEA//8AGP5YAXgFsAImAC0AAAAGAKTmCf////v+TwFoBcQCJgBNAAAABgCkyQD//wCpAAABhAcEAiYALQAAAQcAogAcAUIAFACwAEVYsAIvG7ECHj5ZsQsE9DAx//8At//sBfkFsAAmAC0AAAAHAC4CLQAA//8Ajf5LA0oFxAAmAE0AAAAHAE4B8QAA//8ANf/sBIIHNQImAC4AAAEHAJ4BfAE1ABQAsABFWLAALxuxAB4+WbEUBvQwMf///7T+SwI5BdgCJgCcAAABBwCe/zP/2AAUALAARViwDS8bsQ0aPlmxEgT0MDH//wCp/lgFBQWwAiYALwAAAAcBugGU/vn//wCN/kUEDAYAAiYATwAAAAcBugER/ub//wChAAAEHAcxAiYAMAAAAQcAdQAmATEAFACwAEVYsAUvG7EFHj5ZsQgI9DAx//8AkwAAAjQHlgImAFAAAAEHAHUAGAGWABQAsABFWLADLxuxAyA+WbEGCfQwMf//AKn+CQQcBbACJgAwAAAABwG6AWz+qv//AFf+CQFVBgACJgBQAAAABwG6//v+qv//AKkAAAQcBbECJgAwAAABBwG6AdUEwgAQALAARViwCi8bsQoePlkwMf//AJwAAAKtBgIAJgBQAAABBwG6AVYFEwBQALIfCAFdsp8IAV20HwgvCAJxsq8IAXG0Lwg/CAJyst8IAXK2XwhvCH8IA3K0zwjfCAJxsk8IAXGyzwgBXbRPCF8IAl2yYAgBXbLwCAFyMDH//wCpAAAEHAWwAiYAMAAAAAcAogG8/cX//wCcAAACoAYAACYAUAAAAAcAogE4/bb//wCpAAAFCAc2AiYAMgAAAQcAdQH1ATYAFACwAEVYsAgvG7EIHj5ZsQwI9DAx//8AjAAAA98GAAImAFIAAAEHAHUBWwAAABQAsABFWLADLxuxAxo+WbEUCfQwMf//AKn+CQUIBbACJgAyAAAABwG6AdD+qv//AIz+CQPfBE4CJgBSAAAABwG6ATP+qv//AKkAAAUIBzYCJgAyAAABBwCfARQBNwAUALAARViwBi8bsQYePlmxDwb0MDH//wCMAAAD3wYAAiYAUgAAAQYAn3oBABQAsABFWLADLxuxAxo+WbEWAfQwMf///7wAAAPfBgQCJgBSAAABBwG6/2AFFQAQALAXL7JPFwFdsp8XAV0wMf//AHb/7AUJBuUCJgAzAAABBwBwAOkBQAATALAARViwDS8bsQ0ePlmwIdwwMQD//wBb/+wENAWtAiYAUwAAAQYAcGYIABMAsABFWLAELxuxBBo+WbAd3DAxAP//AHb/7AUJBxACJgAzAAABBwChARYBOQATALAARViwDS8bsQ0ePlmwItwwMQD//wBb/+wENAXYAiYAUwAAAQcAoQCTAAEAEwCwAEVYsAQvG7EEGj5ZsB/cMDEA//8Adv/sBQkHNwImADMAAAEHAKYBawE4ABcAsABFWLANLxuxDR4+WbEmCPSwItAwMQD//wBb/+wENAX/AiYAUwAAAQcApgDoAAAAFwCwAEVYsAQvG7EEGj5ZsSIJ9LAe0DAxAP//AKgAAATJBzYCJgA2AAABBwB1AYABNgAUALAARViwBC8bsQQePlmxGgj0MDH//wCMAAAC0gYAAiYAVgAAAQcAdQC2AAAAFACwAEVYsAsvG7ELGj5ZsRAJ9DAx//8AqP4JBMkFsAImADYAAAAHAboBY/6q//8AU/4JApcETgImAFYAAAAHAbr/9/6q//8AqAAABMkHNgImADYAAAEHAJ8AnwE3ABQAsABFWLAELxuxBB4+WbEdBvQwMf//AGMAAALNBgACJgBWAAABBgCf1gEAFACwAEVYsAsvG7ELGj5ZsRIB9DAx//8AUP/sBHIHOAImADcAAAEHAHUBjQE4ABQAsABFWLAGLxuxBh4+WbEpCPQwMf//AF//7AO7BgACJgBXAAABBwB1AVEAAAAUALAARViwCS8bsQkaPlmxKQn0MDH//wBQ/+wEcgc4AiYANwAAAQcAngCXATgAFACwAEVYsAYvG7EGHj5ZsSkG9DAx//8AX//sA7sGAAImAFcAAAEGAJ5bAAAUALAARViwCS8bsQkaPlmxKQH0MDH//wBQ/k0EcgXEAiYANwAAAAcAeQGfAAD//wBf/kUDuwROAiYAVwAAAAcAeQFd//j//wBQ/f8EcgXEAiYANwAAAAcBugF1/qD//wBf/fYDuwROAiYAVwAAAAcBugEz/pf//wBQ/+wEcgc4AiYANwAAAQcAnwCsATkAFACwAEVYsAYvG7EGHj5ZsSsG9DAx//8AX//sA7sGAAImAFcAAAEGAJ9wAQAUALAARViwCS8bsQkaPlmxKwH0MDH//wAx/f8ElwWwAiYAOAAAAAcBugFm/qD//wAJ/f8CVgVAAiYAWAAAAAcBugDF/qD//wAx/k0ElwWwAiYAOAAAAAcAeQGQAAD//wAJ/k0CmQVAAiYAWAAAAAcAeQDvAAD//wAxAAAElwc2AiYAOAAAAQcAnwChATcAFACwAEVYsAYvG7EGHj5ZsQ0G9DAx//8ACf/sAuwGeQAmAFgAAAEHAboBlQWKABIAsg8aAV2ynxoBXbJPGgFdMDH//wCM/+wEqgciAiYAOQAAAQcApQDAAToAFACwAEVYsBIvG7ESHj5ZsRYE9DAx//8AiP/sA9wF7AImAFkAAAEGAKVcBAAUALAARViwDS8bsQ0aPlmxFAH0MDH//wCM/+wEqgbjAiYAOQAAAQcAcADCAT4AEwCwAEVYsBIvG7ESHj5ZsBPcMDEA//8AiP/sA9wFrQImAFkAAAEGAHBeCAATALAARViwBy8bsQcaPlmwEtwwMQD//wCM/+wEqgcOAiYAOQAAAQcAoQDvATcAEwCwAEVYsAovG7EKHj5ZsBbcMDEA//8AiP/sA9wF2AImAFkAAAEHAKEAiwABABMAsABFWLAHLxuxBxo+WbAU3DAxAP//AIz/7ASqB5ECJgA5AAABBwCjAUsBQQAXALAARViwCi8bsQoePlmxFgb0sCDQMDEA//8AiP/sA9wGWwImAFkAAAEHAKMA5wALABcAsABFWLAHLxuxBxo+WbEUBPSwHtAwMQD//wCM/+wEqgc1AiYAOQAAAQcApgFEATYAFwCwAEVYsBIvG7ESHj5ZsRUI9LAZ0DAxAP//AIj/7AQMBf8CJgBZAAABBwCmAOAAAAAXALAARViwDS8bsQ0aPlmxEwn0sBfQMDEAAAEAjP57BKoFsAAgAFUAsABFWLAYLxuxGB4+WbAARViwDS8bsQ0UPlmwAEVYsBMvG7ETEj5ZsBgQsCDQsgQTIBESObANELEIA7AKK1gh2Bv0WbATELEcAbAKK1gh2Bv0WTAxAREGBgcGFRQzMjcXBiMiJjU0NwciACcRMxEUFjMyNjURBKoBioObTjA0DUZaWWdPFu/+5AK+rqGjrQWw/CGU4jtyYEgaeSxoVmFTAQEC4gPg/Caer66eA9sAAQCI/k8D5gQ6AB8AbwCwAEVYsBcvG7EXGj5ZsABFWLAdLxuxHRo+WbAARViwHy8bsR8SPlmwAEVYsBIvG7ESEj5ZsABFWLAKLxuxChQ+WbEFA7AKK1gh2Bv0WbAfELAP0LAPL7IQEh0REjmwEhCxGgGwCitYIdgb9FkwMSEHBhUUMzI3FwYjIiY1NDcnBiMiJicRMxEUMzI3ETMRA9I6cU4wNA1GWllnpgRs0a21AbnI1Ea5LVtWSBp5LGhWj2plf8nFAsD9RfaeAxP7xv//AD0AAAbtBzYCJgA7AAABBwCeAcUBNgAUALAARViwAy8bsQMePlmxFwb0MDH//wArAAAF0wYAAiYAWwAAAQcAngEkAAAAFACwAEVYsAwvG7EMGj5ZsQ8B9DAx//8ADwAABLsHNgImAD0AAAEHAJ4AkgE2ABQAsABFWLABLxuxAR4+WbELBvQwMf//ABb+SwOwBgACJgBdAAABBgCeJQAAFACwAEVYsA8vG7EPGj5ZsRQB9DAx//8ADwAABLsG+wImAD0AAAEHAGoAwgE2ABcAsABFWLAILxuxCB4+WbEQBPSwGdAwMQD//wBWAAAEegc2AiYAPgAAAQcAdQGHATYAFACwAEVYsAcvG7EHHj5ZsQwI9DAx//8AWAAAA7MGAAImAF4AAAEHAHUBIQAAABQAsABFWLAHLxuxBxo+WbEMCfQwMf//AFYAAAR6BvgCJgA+AAABBwCiAW4BNgAUALAARViwBy8bsQcePlmxEQT0MDH//wBYAAADswXCAiYAXgAAAQcAogEIAAAAFACwAEVYsAcvG7EHGj5ZsREB9DAx//8AVgAABHoHNgImAD4AAAEHAJ8ApgE3ABQAsABFWLAHLxuxBx4+WbEPBvQwMf//AFgAAAOzBgACJgBeAAABBgCfQAEAFACwAEVYsAcvG7EHGj5ZsQ8B9DAx////8gAAB1cHQgImAIEAAAEHAHUCyQFCABQAsABFWLAGLxuxBh4+WbEVCPQwMf//AE7/7AZ8BgECJgCGAAABBwB1AnoAAQAUALAARViwHS8bsR0aPlmxQAn0MDH//wB2/6MFHQeAAiYAgwAAAQcAdQHpAYAAFACwAEVYsBAvG7EQHj5ZsSwI9DAx//8AW/96BDQGAAImAIkAAAEHAHUBNwAAABQAsABFWLAELxuxBBo+WbEpCfQwMf///74AAAQfBI0CJgIwAAABBwIm/y//eAAsALIfGAFxtN8Y7xgCcbQfGC8YAl2yHxgBcrJPGAFxtO8Y/xgCXbJfGAFdMDH///++AAAEHwSNAiYCMAAAAQcCJv8v/3gANgC07xf/FwJdsk8XAXGyHxcBcrLfFwFysm8XAXK03xfvFwJxsh8XAXGyXxcBXbQfFy8XAl0wMf//ACgAAAP9BI0CJgHYAAABBgImReAADQCyAwoBXbKwCgFdMDEA//8AEwAABHAGHgImAjMAAAEHAEQA1QAeABQAsABFWLAELxuxBBw+WbEMBvQwMf//ABMAAARwBh4CJgIzAAABBwB1AWQAHgAUALAARViwBS8bsQUcPlmxDQb0MDH//wATAAAEcAYeAiYCMwAAAQYAnm4eABQAsABFWLAELxuxBBw+WbEPBPQwMf//ABMAAARwBgoCJgIzAAABBgClaiIAFACwAEVYsAUvG7EFHD5ZsQ4C9DAx//8AEwAABHAF4wImAjMAAAEHAGoAngAeABcAsABFWLAELxuxBBw+WbESAvSwG9AwMQD//wATAAAEcAZ5AiYCMwAAAQcAowD1ACkAFwCwAEVYsAQvG7EEHD5ZsQ4G9LAY0DAxAP//ABMAAARwBnwCJgIzAAAABwInAP8ACv//AGD+SgQwBJ0CJgIxAAAABwB5AXT//f//AIoAAAOuBh4CJgIoAAABBwBEAKgAHgAUALAARViwBi8bsQYcPlmxDQb0MDH//wCKAAADrgYeAiYCKAAAAQcAdQE3AB4AFACwAEVYsAcvG7EHHD5ZsQ4G9DAx//8AigAAA64GHgImAigAAAEGAJ5BHgAUALAARViwBi8bsQYcPlmxEAT0MDH//wCKAAADrgXjAiYCKAAAAQYAanEeABcAsABFWLAGLxuxBhw+WbETAvSwHNAwMQD///++AAABXwYeAiYB4wAAAQYARIUeABQAsABFWLACLxuxAhw+WbEFBvQwMf//AI4AAAIvBh4CJgHjAAABBgB1Ex4AFACwAEVYsAMvG7EDHD5ZsQYG9DAx////xwAAAiQGHgImAeMAAAEHAJ7/HgAeABQAsABFWLACLxuxAhw+WbEIBPQwMf///7MAAAI8BeMCJgHjAAABBwBq/04AHgAXALAARViwAi8bsQIcPlmxCwL0sBTQMDEA//8AigAABFgGCgImAd4AAAEHAKUAlQAiABQAsABFWLAGLxuxBhw+WbENAvQwMf//AGD/8ARaBh4CJgHdAAABBwBEAO4AHgAUALAARViwCi8bsQocPlmxHQb0MDH//wBg//AEWgYeAiYB3QAAAQcAdQF9AB4AFACwAEVYsAovG7EKHD5ZsR4G9DAx//8AYP/wBFoGHgImAd0AAAEHAJ4AhwAeABQAsABFWLAKLxuxChw+WbEgBPQwMf//AGD/8ARaBgoCJgHdAAABBwClAIMAIgAUALAARViwCi8bsQocPlmxHwL0MDH//wBg//AEWgXjAiYB3QAAAQcAagC3AB4AFwCwAEVYsAovG7EKHD5ZsSMC9LAs0DAxAP//AHT/8AQKBh4CJgHXAAABBwBEAM8AHgAUALAARViwCS8bsQkcPlmxEwb0MDH//wB0//AECgYeAiYB1wAAAQcAdQFeAB4AFACwAEVYsBEvG7ERHD5ZsRQG9DAx//8AdP/wBAoGHgImAdcAAAEGAJ5oHgAUALAARViwCS8bsQkcPlmxFgT0MDH//wB0//AECgXjAiYB1wAAAQcAagCYAB4AFwCwAEVYsAkvG7EJHD5ZsRkC9LAi0DAxAP//AA0AAAQcBh4CJgHTAAABBwB1ATMAHgAUALAARViwAS8bsQEcPlmxCwb0MDH//wATAAAEcAXLAiYCMwAAAQYAcGwmABMAsABFWLAELxuxBBw+WbAM3DAxAP//ABMAAARwBfYCJgIzAAABBwChAJkAHwAUALAARViwBC8bsQQcPlmxDgj0MDEAAgAT/k8EcASNABYAGQBpALAARViwAC8bsQAcPlmwAEVYsBQvG7EUEj5ZsABFWLABLxuxARI+WbAARViwDC8bsQwUPlmxBwOwCitYIdgb9FmwARCwEdCwES+yFxQAERI5sBcvsRMBsAorWCHYG/RZshkAFBESOTAxAQEjBwYVFDMyNxcGIyImNTQ3AyEDIwEDIQMCmAHYJjpxTjA0DUZaWWewaP34br0B33gBkccEjftzLVtWSBp5LGhWlGwBCv7pBI39IQH9AP//AGD/8AQwBh4CJgIxAAABBwB1AWkAHgAUALAARViwCy8bsQscPlmxHwb0MDH//wBg//AEMAYeAiYCMQAAAQYAnnMeABQAsABFWLALLxuxCxw+WbEhBPQwMf//AGD/8AQwBeACJgIxAAABBwCiAVAAHgAUALAARViwCy8bsQscPlmxIwL0MDH//wBg//AEMAYeAiYCMQAAAQcAnwCIAB8AFACwAEVYsAsvG7ELHD5ZsSEG9DAx//8AigAABB8GHgImAjAAAAEGAJ8xHwAUALAARViwAS8bsQEcPlmxGgb0MDH//wCKAAADrgXLAiYCKAAAAQYAcD8mABMAsABFWLAGLxuxBhw+WbAN3DAxAP//AIoAAAOuBfYCJgIoAAABBgChbB8AFACwAEVYsAYvG7EGHD5ZsQ8I9DAx//8AigAAA64F4AImAigAAAEHAKIBHgAeABQAsABFWLAGLxuxBhw+WbETAvQwMQABAIr+TwOuBI0AGwB8ALAARViwFi8bsRYcPlmwAEVYsBQvG7EUEj5ZsABFWLAPLxuxDxQ+WbAUELAb0LAbL7IfGwFdst8bAV2xAAGwCitYIdgb9FmwFBCxAgGwCitYIdgb9FmwFBCwBdCwDxCxCgOwCitYIdgb9FmwFhCxGQGwCitYIdgb9FkwMQEhESEVIwcGFRQzMjcXBiMiJjU0NyERIRUhESEDV/3sAms9OnFOMDQNRlpZZ5v9ygMe/ZsCFAIO/omXLVtWSBp5LGhWimkEjZn+sgD//wCKAAADrgYeAiYCKAAAAQYAn1YfABQAsABFWLAGLxuxBhw+WbERBvQwMf//AGP/8AQ1Bh4CJgHlAAABBgCecR4AFACwAEVYsAovG7EKHD5ZsSAE9DAx//8AY//wBDUF9gImAeUAAAEHAKEAnAAfABQAsABFWLAKLxuxChw+WbEgCPQwMf//AGP/8AQ1BeACJgHlAAABBwCiAU4AHgAUALAARViwCi8bsQocPlmxJQL0MDH//wBj/fwENQSdAiYB5QAAAAcBugFP/p3//wCKAAAEWAYeAiYB5AAAAQcAngCQAB4AFACwAEVYsAcvG7EHHD5ZsRAE9DAx////lQAAAlgGCgImAeMAAAEHAKX/GgAiABQAsABFWLADLxuxAxw+WbEHAvQwMf///6oAAAJKBcsCJgHjAAABBwBw/xwAJgATALAARViwAi8bsQIcPlmwBdwwMQD////KAAACIQX2AiYB4wAAAQcAof9JAB8AFACwAEVYsAIvG7ECHD5ZsQcI9DAx//8ABv5PAWYEjQImAeMAAAAGAKTUAP//AIgAAAFjBeACJgHjAAABBgCi+x4AFACwAEVYsAIvG7ECHD5ZsQsC9DAx//8AK//wBA0GHgImAeIAAAEHAJ4BBwAeABQAsABFWLAALxuxABw+WbEUBPQwMf//AIr+BQRXBI0CJgHhAAAABwG6ART+pv//AIIAAAOLBh4CJgHgAAABBgB1Bx4AFACwAEVYsAUvG7EFHD5ZsQgG9DAx//8Aiv4HA4sEjQImAeAAAAAHAboBEP6o//8AigAAA4sEjgImAeAAAAEHAboBfgOfABAAsABFWLAKLxuxChw+WTAx//8AigAAA4sEjQImAeAAAAAHAKIBZv03//8AigAABFgGHgImAd4AAAEHAHUBjwAeABQAsABFWLAILxuxCBw+WbEMBvQwMf//AIr+AwRYBI0CJgHeAAAABwG6AWz+pP//AIoAAARYBh4CJgHeAAABBwCfAK4AHwAUALAARViwBi8bsQYcPlmxDwb0MDH//wBg//AEWgXLAiYB3QAAAQcAcACFACYAEwCwAEVYsAovG7EKHD5ZsB3cMDEA//8AYP/wBFoF9gImAd0AAAEHAKEAsgAfABQAsABFWLAKLxuxChw+WbEfCPQwMf//AGD/8ARaBh0CJgHdAAABBwCmAQcAHgAXALAARViwCi8bsQocPlmxHgb0sCLQMDEA//8AigAABCUGHgImAdoAAAEHAHUBJwAeABQAsABFWLAFLxuxBRw+WbEZBvQwMf//AIr+BwQlBI0CJgHaAAAABwG6AQ3+qP//AIoAAAQlBh4CJgHaAAABBgCfRh8AFACwAEVYsAQvG7EEHD5ZsRwG9DAx//8AQ//wA90GHgImAdkAAAEHAHUBPgAeABQAsABFWLAJLxuxCRw+WbEoBvQwMf//AEP/8APdBh4CJgHZAAABBgCeSB4AFACwAEVYsAkvG7EJHD5ZsSoE9DAx//8AQ/5NA90EnQImAdkAAAAHAHkBUwAA//8AQ//wA90GHgImAdkAAAEGAJ9dHwAUALAARViwCS8bsQkcPlmxKgb0MDH//wAo/gED/QSNAiYB2AAAAAcBugEU/qL//wAoAAAD/QYeAiYB2AAAAQYAn1AfABQAsABFWLAGLxuxBhw+WbENBvQwMf//ACj+TwP9BI0CJgHYAAAABwB5AT4AAv//AHT/8AQKBgoCJgHXAAABBgClZCIAFACwAEVYsBEvG7ERHD5ZsRUC9DAx//8AdP/wBAoFywImAdcAAAEGAHBmJgATALAARViwCS8bsQkcPlmwE9wwMQD//wB0//AECgX2AiYB1wAAAQcAoQCTAB8AFACwAEVYsAkvG7EJHD5ZsRUI9DAx//8AdP/wBAoGeQImAdcAAAEHAKMA7wApABcAsABFWLAJLxuxCRw+WbEVBvSwH9AwMQD//wB0//AEFAYdAiYB1wAAAQcApgDoAB4AFwCwAEVYsBEvG7ERHD5ZsRQG9LAY0DAxAAABAHT+dAQKBI0AIABVALAARViwGC8bsRgcPlmwAEVYsA4vG7EOFD5ZsABFWLATLxuxExI+WbAYELAg0LIFEyAREjmwDhCxCQOwCitYIdgb9FmwExCxHAGwCitYIdgb9FkwMQERFAYHBwYVFDMyNxcGIyImNTQ3IiYnETMRFBYzMjY1EQQKeG8ybE4wNA1GWllnWs35BLePhYOPBI3883q6MChbUkgaeSxoVmhWzrgDF/z0eYF/ewMMAP//ADEAAAXxBh4CJgHVAAABBwCeATsAHgAUALAARViwAy8bsQMcPlmxFwT0MDH//wANAAAEHAYeAiYB0wAAAQYAnj0eABQAsABFWLAILxuxCBw+WbENBPQwMf//AA0AAAQcBeMCJgHTAAABBgBqbR4AFwCwAEVYsAgvG7EIHD5ZsRAC9LAZ0DAxAP//AEcAAAPgBh4CJgHSAAABBwB1ATMAHgAUALAARViwCC8bsQgcPlmxDAb0MDH//wBHAAAD4AXgAiYB0gAAAQcAogEaAB4AFACwAEVYsAcvG7EHHD5ZsREC9DAx//8ARwAAA+AGHgImAdIAAAEGAJ9SHwAUALAARViwBy8bsQccPlmxDwb0MDH//wAcAAAFHQY/AiYAJQAAAAYArgQA////KQAABEYGPwImACkAAAAHAK7+cgAA////NwAABQgGQQImACwAAAAHAK7+gAAC////PQAAAXcGQAImAC0AAAAHAK7+hgAB////5v/sBR0GPwAmADMUAAAHAK7/LwAA////FAAABR8GPwAmAD1kAAAHAK7+XQAA////6QAABN8GPwAmALoUAAAHAK7/MgAA////m//0Aq0GdAImAMMAAAEHAK//Kv/sAB0AsABFWLAMLxuxDBo+WbEYAfSwD9CwGBCwIdAwMQD//wAcAAAFHQWwAgYAJQAA//8AqQAABIgFsAIGACYAAP//AKkAAARGBbACBgApAAD//wBWAAAEegWwAgYAPgAA//8AqQAABQgFsAIGACwAAP//ALcAAAF3BbACBgAtAAD//wCpAAAFBQWwAgYALwAA//8AqQAABlIFsAIGADEAAP//AKkAAAUIBbACBgAyAAD//wB2/+wFCQXEAgYAMwAA//8AqQAABMAFsAIGADQAAP//ADEAAASXBbACBgA4AAD//wAPAAAEuwWwAgYAPQAA//8AOQAABM4FsAIGADwAAP///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCwT0sBTQMDEA//8ADwAABLsG+wImAD0AAAEHAGoAwgE2ABcAsABFWLAILxuxCB4+WbEQBPSwGdAwMQD//wBk/+sEdwY6AiYAuwAAAQcArgF1//sAFACwAEVYsBMvG7ETGj5ZsSQB9DAx//8AY//sA+wGOQImAL8AAAEHAK4BK//6ABQAsABFWLAVLxuxFRo+WbEoAfQwMf//AJH+YQPwBjoCJgDBAAABBwCuAUb/+wAUALAARViwAy8bsQMaPlmxFQH0MDH//wDD//QCSwYlAiYAwwAAAQYArirmABQAsABFWLAMLxuxDBo+WbEPAfQwMf//AI//7AP2BnQCJgDLAAABBgCvIewAHQCwAEVYsAAvG7EAGj5ZsR0B9LAV0LAdELAn0DAxAP//AJoAAAQ/BDoCBgCOAAD//wBb/+wENAROAgYAUwAA//8Amv5gA+4EOgIGAHYAAP//ACEAAAO6BDoCBgBaAAAAAQBa/kwEdARJABsAbgCwAEVYsAQvG7EEGj5ZsABFWLAALxuxABo+WbAARViwEy8bsRMUPlmwAEVYsA4vG7EOFD5ZsgMEExESObISEwQREjmyBgMSERI5sQkBsAorWCHYG/RZshUSAxESObAAELEYAbAKK1gh2Bv0WTAxEzIXExMzARMWFzM3BwYjIiYnAwEjAQMmIwcnNsKuWJX/u/6g2j1EGkgvGCVbeD6i/ufEAYOoSWtEAUQEScD+rQIE/S/+DoADBZ4PXoYBcv2/AxABg7cFlA8A////5f/0Am4FsQImAMMAAAEGAGqA7AAXALAARViwDC8bsQwaPlmxFAH0sB3QMDEA//8Aj//sA/YFsQImAMsAAAEGAGp37AAXALAARViwAC8bsQAaPlmxGgH0sCPQMDEA//8AW//sBDQGOgImAFMAAAEHAK4BQ//7ABQAsABFWLAELxuxBBo+WbEeAfQwMf//AI//7AP2BiUCJgDLAAABBwCuASL/5gAUALAARViwAC8bsQAaPlmxFQH0MDH//wB6/+wGGQYiAiYAzgAAAQcArgJT/+MAFACwAEVYsAAvG7EAGj5ZsSYB9DAx//8AqQAABEYHBwImACkAAAEHAGoAxAFCABcAsABFWLAGLxuxBh4+WbETBPSwHNAwMQD//wCxAAAEMAdCAiYAsQAAAQcAdQGQAUIAFACwAEVYsAQvG7EEHj5ZsQgI9DAxAAEAUP/sBHIFxAAmAGSyACcoERI5ALAARViwBi8bsQYePlmwAEVYsBovG7EaEj5ZsAYQsAvQsAYQsQ4BsAorWCHYG/RZsiYaBhESObAmELEUAbAKK1gh2Bv0WbAaELAf0LAaELEiAbAKK1gh2Bv0WTAxASYmNTQkMzIWFhUjNCYjIgYVFBYEFhYVFAQjIiQmNTMUFjMyNjQmAlb34QET3JbrgcGomY6flwFrzWP+7OeW/vyNwcOjmKKWAolHz5is4XTMeYSXfW9Ze2Z7pG+x1XPIf4SZfNZ1//8AtwAAAXcFsAIGAC0AAP///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCwT0sBTQMDEA//8ANf/sA8wFsAIGAC4AAP//ALIAAAUdBbACBgIsAAD//wCpAAAFBQcwAiYALwAAAQcAdQF7ATAAFACwAEVYsAUvG7EFHj5ZsQ4I9DAx//8ATf/rBMsHGgImAN4AAAEHAKEA2gFDABMAsABFWLARLxuxER4+WbAV3DAxAP//ABwAAAUdBbACBgAlAAD//wCpAAAEiAWwAgYAJgAA//8AsQAABDAFsAIGALEAAP//AKkAAARGBbACBgApAAD//wCxAAAE/wcaAiYA3AAAAQcAoQExAUMAEwCwAEVYsAgvG7EIHj5ZsA3cMDEA//8AqQAABlIFsAIGADEAAP//AKkAAAUIBbACBgAsAAD//wB2/+wFCQXEAgYAMwAA//8AsgAABQEFsAIGALYAAP//AKkAAATABbACBgA0AAD//wB3/+wE2AXEAgYAJwAA//8AMQAABJcFsAIGADgAAP//ADkAAATOBbACBgA8AAD//wBt/+wD6gROAgYARQAA//8AXf/sA/METgIGAEkAAP//AJwAAAQBBcQCJgDwAAABBwChAKL/7QATALAARViwCC8bsQgaPlmwDdwwMQD//wBb/+wENAROAgYAUwAA//8AjP5gBB4ETgIGAFQAAAABAFz/7APsBE4AHQBLshAeHxESOQCwAEVYsBAvG7EQGj5ZsABFWLAILxuxCBI+WbEAAbAKK1gh2Bv0WbAIELAD0LAQELAU0LAQELEXAbAKK1gh2Bv0WTAxJTI2NzMOAiMiABE1NDY2MzIWFyMmJiMiBhUVFBYCPmOUCK8FdsVu3f77dNmUtvEIrwiPaY2bmoN4Wl2oZAEnAQAfnvaI2q5ph8vAI7vKAP//ABb+SwOwBDoCBgBdAAD//wApAAADygQ6AgYAXAAA//8AXf/sA/MFxQImAEkAAAEHAGoAjgAAABcAsABFWLAILxuxCBo+WbElAfSwLtAwMQD//wCaAAADRwXsAiYA7AAAAQcAdQDN/+wAFACwAEVYsAQvG7EEGj5ZsQgJ9DAx//8AX//sA7sETgIGAFcAAP//AI0AAAFoBcQCBgBNAAD///+7AAACRAXEAiYAjQAAAQcAav9W//8AFwCwAEVYsAIvG7ECGj5ZsQsB9LAU0DAxAP///7/+SwFZBcQCBgBOAAD//wCcAAAEPwXrAiYA8QAAAQcAdQE7/+sAFACwAEVYsAQvG7EEGj5ZsQ8J9DAx//8AFv5LA7AF2AImAF0AAAEGAKFQAQATALAARViwDy8bsQ8aPlmwE9wwMQD//wA9AAAG7Qc2AiYAOwAAAQcARAIsATYAFACwAEVYsAMvG7EDHj5ZsRQI9DAx//8AKwAABdMGAAImAFsAAAEHAEQBiwAAABQAsABFWLALLxuxCxo+WbEOCfQwMf//AD0AAAbtBzYCJgA7AAABBwB1ArsBNgAUALAARViwBC8bsQQePlmxFQj0MDH//wArAAAF0wYAAiYAWwAAAQcAdQIaAAAAFACwAEVYsAwvG7EMGj5ZsQ8J9DAx//8APQAABu0G+wImADsAAAEHAGoB9QE2ABcAsABFWLADLxuxAx4+WbEaBPSwI9AwMQD//wArAAAF0wXFAiYAWwAAAQcAagFUAAAAFwCwAEVYsAsvG7ELGj5ZsRQB9LAd0DAxAP//AA8AAAS7BzYCJgA9AAABBwBEAPkBNgAUALAARViwCC8bsQgePlmxCgj0MDH//wAW/ksDsAYAAiYAXQAAAQcARACMAAAAFACwAEVYsA8vG7EPGj5ZsREJ9DAx//8AZwQhAP0GAAIGAAsAAP//AIgEEgIjBgACBgAGAAD//wCg//UDigWwACYABQAAAAcABQIPAAD///+0/ksCPwXYAiYAnAAAAQcAn/9I/9kAFACwAEVYsA0vG7ENGj5ZsRMB9DAx//8AMAQWAUcGAAIGAYUAAP//AKkAAAZSBzYCJgAxAAABBwB1ApkBNgAUALAARViwAi8bsQIePlmxEQj0MDH//wCLAAAGeAYAAiYAUQAAAQcAdQKtAAAAFACwAEVYsAMvG7EDGj5ZsSAJ9DAx//8AHP5rBR0FsAImACUAAAAHAKcBfwAA//8Abf5rA+oETgImAEUAAAAHAKcAxwAA//8AqQAABEYHQgImACkAAAEHAEQA+wFCABQAsABFWLAGLxuxBh4+WbENCPQwMf//ALEAAAT/B0ICJgDcAAABBwBEAW0BQgAUALAARViwCC8bsQgePlmxCwj0MDH//wBd/+wD8wYAAiYASQAAAQcARADFAAAAFACwAEVYsAgvG7EIGj5ZsR8J9DAx//8AnAAABAEF7AImAPAAAAEHAEQA3v/sABQAsABFWLAILxuxCBo+WbELCfQwMf//AFoAAAUhBbACBgC5AAD//wBf/igFQwQ6AgYAzQAA//8AFgAABN0G6AImARkAAAEHAKwEOQD6ABcAsABFWLAPLxuxDx4+WbERCPSwFdAwMQD////7AAAECwXBAiYBGgAAAQcArAPU/9MAFwCwAEVYsBEvG7ERGj5ZsRMJ9LAX0DAxAP//AFv+SwhABE4AJgBTAAAABwBdBJAAAP//AHb+SwkwBcQAJgAzAAAABwBdBYAAAP//AFD+UQRqBcQCJgDbAAAABwJRAZz/uP//AFj+UgOsBE0CJgDvAAAABwJRAUP/uf//AHf+UQTYBcQCJgAnAAAABwJRAeX/uP//AFz+UQPsBE4CJgBHAAAABwJRAVL/uP//AA8AAAS7BbACBgA9AAD//wAu/mAD3wQ6AgYAvQAA//8AtwAAAXcFsAIGAC0AAP//ABsAAAc1BxoCJgDaAAABBwChAfgBQwATALAARViwDS8bsQ0ePlmwGdwwMQD//wAVAAAGBAXEAiYA7gAAAQcAoQFf/+0AEwCwAEVYsA0vG7ENGj5ZsBncMDEA//8AtwAAAXcFsAIGAC0AAP//ABwAAAUdBw4CJgAlAAABBwChAPQBNwATALAARViwBC8bsQQePlmwDtwwMQD//wBt/+wD6gXYAiYARQAAAQcAoQCZAAEAEwCwAEVYsBcvG7EXGj5ZsCzcMDEA//8AHAAABR0G+wImACUAAAEHAGoA+QE2ABcAsABFWLAELxuxBB4+WbESBPSwG9AwMQD//wBt/+wD6gXFAiYARQAAAQcAagCeAAAAFwCwAEVYsBcvG7EXGj5ZsTAB9LA50DAxAP////IAAAdXBbACBgCBAAD//wBO/+wGfAROAgYAhgAA//8AqQAABEYHGgImACkAAAEHAKEAvwFDABMAsABFWLAGLxuxBh4+WbAP3DAxAP//AF3/7APzBdgCJgBJAAABBwChAIkAAQATALAARViwCC8bsQgaPlmwIdwwMQD//wBd/+wFEgbZAiYBWAAAAQcAagDTARQAFwCwAEVYsAAvG7EAHj5ZsScE9LAw0DAxAP//AGL/7APpBE8CBgCdAAD//wBi/+wD6QXGAiYAnQAAAQcAagCHAAEAFwCwAEVYsAAvG7EAGj5ZsSQB9LAt0DAxAP//ABsAAAc1BwcCJgDaAAABBwBqAf0BQgAXALAARViwDS8bsQ0ePlmxHQT0sCbQMDEA//8AFQAABgQFsQImAO4AAAEHAGoBZP/sABcAsABFWLANLxuxDRo+WbEdAfSwJtAwMQD//wBQ/+wEagccAiYA2wAAAQcAagC3AVcAFwCwAEVYsAsvG7ELHj5ZsTAE9LA50DAxAP//AFj/7QOsBcUCJgDvAAABBgBqXgAAFwCwAEVYsAovG7EKGj5ZsS4B9LA30DAxAP//ALEAAAT/Bu8CJgDcAAABBwBwAQQBSgATALAARViwCC8bsQgePlmwC9wwMQD//wCcAAAEAQWZAiYA8AAAAQYAcHX0ABMAsABFWLAHLxuxBxo+WbAL3DAxAP//ALEAAAT/BwcCJgDcAAABBwBqATYBQgAXALAARViwCC8bsQgePlmxEQT0sBrQMDEA//8AnAAABAEFsQImAPAAAAEHAGoAp//sABcAsABFWLAILxuxCBo+WbERAfSwGtAwMQD//wB2/+wFCQb9AiYAMwAAAQcAagEbATgAFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AFv/7AQ0BcUCJgBTAAABBwBqAJgAAAAXALAARViwBC8bsQQaPlmxIwH0sCzQMDEA//8AZ//sBPoFxAIGARcAAP//AFv/7AQ0BE4CBgEYAAD//wBn/+wE+gcCAiYBFwAAAQcAagEnAT0AFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AFv/7AQ0BccCJgEYAAABBwBqAIgAAgAXALAARViwBC8bsQQaPlmxJAH0sC3QMDEA//8Ak//sBPQHHQImAOcAAAEHAGoBDQFYABcAsABFWLATLxuxEx4+WbEnBPSwMNAwMQD//wBk/+wD4AXFAiYA/wAAAQYAanwAABcAsABFWLAILxuxCBo+WbEnAfSwMNAwMQD//wBN/+sEywbvAiYA3gAAAQcAcACtAUoAEwCwAEVYsBEvG7ERHj5ZsBPcMDEA//8AFv5LA7AFrQImAF0AAAEGAHAjCAATALAARViwDi8bsQ4aPlmwEdwwMQD//wBN/+sEywcHAiYA3gAAAQcAagDfAUIAFwCwAEVYsBEvG7ERHj5ZsRkE9LAi0DAxAP//ABb+SwOwBcUCJgBdAAABBgBqVQAAFwCwAEVYsA8vG7EPGj5ZsRcB9LAg0DAxAP//AE3/6wTLB0ECJgDeAAABBwCmAS8BQgAXALAARViwAS8bsQEePlmxFAj0sBjQMDEA//8AFv5LA9EF/wImAF0AAAEHAKYApQAAABcAsABFWLAPLxuxDxo+WbEWCfSwEtAwMQD//wCWAAAEyAcHAiYA4QAAAQcAagEJAUIAFwCwAEVYsAsvG7ELHj5ZsRoE9LAj0DAxAP//AGcAAAO9BbECJgD5AAABBgBqZOwAFwCwAEVYsAkvG7EJGj5ZsRgB9LAh0DAxAP//ALIAAAYwBwcAJgDmDwAAJwAtBLkAAAEHAGoB0wFCABcAsABFWLAKLxuxCh4+WbEfBPSwKNAwMQD//wCdAAAFfwWxACYA/gAAACcAjQQqAAABBwBqAW3/7AAXALAARViwCi8bsQoaPlmxHwH0sCjQMDEA//8AX//sA/AGAAIGAEgAAP//ABz+ogUdBbACJgAlAAAABwCtBQIAAP//AG3+ogPqBE4CJgBFAAAABwCtBEoAAP//ABwAAAUdB7oCJgAlAAABBwCrBO4BRgAUALAARViwBC8bsQQePlmxCwj0MDH//wBt/+wD6gaEAiYARQAAAQcAqwSTABAAFACwAEVYsBcvG7EXGj5ZsSkB9DAx//8AHAAABR0HwwImACUAAAEHAjcAwwEuABcAsABFWLAFLxuxBR4+WbEODPSwFNAwMQD//wBt/+wEwAaOAiYARQAAAQYCN2j5ABcAsABFWLAXLxuxFxo+WbEsCPSwMtAwMQD//wAcAAAFHQe/AiYAJQAAAQcCOADHAT0AFwCwAEVYsAQvG7EEHj5ZsQ4M9LAT0DAxAP///8r/7APqBokCJgBFAAABBgI4bAcAFwCwAEVYsBcvG7EXGj5ZsSwI9LAx0DAxAP//ABwAAAUdB+oCJgAlAAABBwI5AMgBGwAXALAARViwBS8bsQUePlmxDAz0sCDQMDEA//8Abf/sBFkGtQImAEUAAAEGAjlt5gAXALAARViwFy8bsRcaPlmxKgj0sDDQMDEA//8AHAAABR0H2gImACUAAAEHAjoAxwEGABcAsABFWLAFLxuxBR4+WbEMDPSwFdAwMQD//wBt/+wD6galAiYARQAAAQYCOmzRABcAsABFWLAXLxuxFxo+WbEqCPSwM9AwMQD//wAc/qIFHQc2AiYAJQAAACcAngDJATYBBwCtBQIAAAAUALAARViwBC8bsQQePlmxDwb0MDH//wBt/qID6gYAAiYARQAAACYAnm4AAQcArQRKAAAAFACwAEVYsBcvG7EXGj5ZsS0B9DAx//8AHAAABR0HtwImACUAAAEHAjwA6gEtABcAsABFWLAELxuxBB4+WbEOB/SwG9AwMQD//wBt/+wD6gaCAiYARQAAAQcCPACP//gAFwCwAEVYsBcvG7EXGj5ZsSwE9LA50DAxAP//ABwAAAUdB7cCJgAlAAABBwI1AOoBLQAXALAARViwBC8bsQQePlmxDgf0sBzQMDEA//8Abf/sA+oGggImAEUAAAEHAjUAj//4ABcAsABFWLAXLxuxFxo+WbEsBPSwOtAwMQD//wAcAAAFHQhAAiYAJQAAAQcCPQDuAT0AFwCwAEVYsAQvG7EEHj5ZsQ4H9LAn0DAxAP//AG3/7APqBwoCJgBFAAABBwI9AJMABwAXALAARViwFy8bsRcaPlmxLAT0sEXQMDEA//8AHAAABR0IFQImACUAAAEHAlAA7gFFABcAsABFWLAELxuxBB4+WbEOB/SwHNAwMQD//wBt/+wD6gbfAiYARQAAAQcCUACTAA8AFwCwAEVYsBcvG7EXGj5ZsSwE9LA60DAxAP//ABz+ogUdBw4CJgAlAAAAJwChAPQBNwEHAK0FAgAAABMAsABFWLAELxuxBB4+WbAO3DAxAP//AG3+ogPqBdgCJgBFAAAAJwChAJkAAQEHAK0ESgAAABMAsABFWLAXLxuxFxo+WbAs3DAxAP//AKn+rARGBbACJgApAAAABwCtBMAACv//AF3+ogPzBE4CJgBJAAAABwCtBIwAAP//AKkAAARGB8YCJgApAAABBwCrBLkBUgAUALAARViwBi8bsQYePlmxDAj0MDH//wBd/+wD8waEAiYASQAAAQcAqwSDABAAFACwAEVYsAgvG7EIGj5ZsR4B9DAx//8AqQAABEYHLgImACkAAAEHAKUAkAFGABQAsABFWLAGLxuxBh4+WbEPBPQwMf//AF3/7APzBewCJgBJAAABBgClWgQAFACwAEVYsAgvG7EIGj5ZsSEB9DAx//8AqQAABOYHzwImACkAAAEHAjcAjgE6ABcAsABFWLAHLxuxBx4+WbEPDPSwFdAwMQD//wBd/+wEsAaOAiYASQAAAQYCN1j5ABcAsABFWLAILxuxCBo+WbEhCPSwJ9AwMQD////wAAAERgfLAiYAKQAAAQcCOACSAUkAFwCwAEVYsAYvG7EGHj5ZsQ8M9LAU0DAxAP///7r/7APzBokCJgBJAAABBgI4XAcAFwCwAEVYsAgvG7EIGj5ZsSEI9LAm0DAxAP//AKkAAAR/B/YCJgApAAABBwI5AJMBJwAXALAARViwBi8bsQYePlmxDwz0sBPQMDEA//8AXf/sBEkGtQImAEkAAAEGAjld5gAXALAARViwCC8bsQgaPlmxHwj0sCXQMDEA//8AqQAABEYH5gImACkAAAEHAjoAkgESABcAsABFWLAGLxuxBh4+WbEPDPSwFtAwMQD//wBd/+wD8walAiYASQAAAQYCOlzRABcAsABFWLAILxuxCBo+WbEhCPSwKNAwMQD//wCp/qwERgdCAiYAKQAAACcAngCUAUIBBwCtBMAACgAUALAARViwBi8bsQYePlmxEAb0MDH//wBd/qID8wYAAiYASQAAACYAnl4AAQcArQSMAAAAFACwAEVYsAgvG7EIGj5ZsSAB9DAx//8AtwAAAfgHxgImAC0AAAEHAKsDZAFSABQAsABFWLACLxuxAh4+WbEECPQwMf//AJsAAAHeBoICJgCNAAABBwCrA0oADgAUALAARViwAi8bsQIaPlmxBAH0MDH//wCj/qsBfgWwAiYALQAAAAcArQNrAAn//wCF/qwBaAXEAiYATQAAAAcArQNNAAr//wB2/qIFCQXEAiYAMwAAAAcArQUYAAD//wBb/qIENAROAiYAUwAAAAcArQSdAAD//wB2/+wFCQe8AiYAMwAAAQcAqwUQAUgAFACwAEVYsA0vG7ENHj5ZsS4I9DAx//8AW//sBDQGhAImAFMAAAEHAKsEjQAQABQAsABFWLAELxuxBBo+WbEqAfQwMf//AHb/7AU9B8UCJgAzAAABBwI3AOUBMAAXALAARViwDS8bsQ0ePlmxIwz0sCnQMDEA//8AW//sBLoGjgImAFMAAAEGAjdi+QAXALAARViwBC8bsQQaPlmxHwj0sCXQMDEA//8AR//sBQkHwQImADMAAAEHAjgA6QE/ABcAsABFWLANLxuxDR4+WbEhDPSwKNAwMQD////E/+wENAaJAiYAUwAAAQYCOGYHABcAsABFWLAELxuxBBo+WbEdCPSwJNAwMQD//wB2/+wFCQfsAiYAMwAAAQcCOQDqAR0AFwCwAEVYsA0vG7ENHj5ZsSEM9LAn0DAxAP//AFv/7ARTBrUCJgBTAAABBgI5Z+YAFwCwAEVYsAQvG7EEGj5ZsR0I9LAj0DAxAP//AHb/7AUJB9wCJgAzAAABBwI6AOkBCAAXALAARViwDS8bsQ0ePlmxIQz0sCrQMDEA//8AW//sBDQGpQImAFMAAAEGAjpm0QAXALAARViwBC8bsQQaPlmxHQj0sCbQMDEA//8Adv6iBQkHOAImADMAAAAnAJ4A6wE4AQcArQUYAAAAFACwAEVYsA0vG7ENHj5ZsSIG9DAx//8AW/6iBDQGAAImAFMAAAAmAJ5oAAEHAK0EnQAAABQAsABFWLAELxuxBBo+WbEeAfQwMf//AGX/7AWdBzECJgCYAAABBwB1Ad0BMQAUALAARViwDS8bsQ0ePlmxKAj0MDH//wBb/+wEugYAAiYAmQAAAQcAdQFlAAAAFACwAEVYsAQvG7EEGj5ZsSYJ9DAx//8AZf/sBZ0HMQImAJgAAAEHAEQBTgExABQAsABFWLANLxuxDR4+WbEnCPQwMf//AFv/7AS6BgACJgCZAAABBwBEANYAAAAUALAARViwBC8bsQQaPlmxJQn0MDH//wBl/+wFnQe1AiYAmAAAAQcAqwUMAUEAFACwAEVYsA0vG7ENHj5ZsTQI9DAx//8AW//sBLoGhAImAJkAAAEHAKsElAAQABQAsABFWLAELxuxBBo+WbEyAfQwMf//AGX/7AWdBx0CJgCYAAABBwClAOMBNQAUALAARViwDS8bsQ0ePlmxKQT0MDH//wBb/+wEugXsAiYAmQAAAQYApWsEABQAsABFWLAELxuxBBo+WbEnAfQwMf//AGX+ogWdBjcCJgCYAAAABwCtBQkAAP//AFv+mQS6BLACJgCZAAAABwCtBJv/9///AIz+ogSqBbACJgA5AAAABwCtBO4AAP//AIj+ogPcBDoCJgBZAAAABwCtBFEAAP//AIz/7ASqB7oCJgA5AAABBwCrBOkBRgAUALAARViwCi8bsQoePlmxEwj0MDH//wCI/+wD3AaEAiYAWQAAAQcAqwSFABAAFACwAEVYsAcvG7EHGj5ZsREB9DAx//8AjP/sBh0HQgImAJoAAAEHAHUB1AFCABQAsABFWLAaLxuxGh4+WbEdCPQwMf//AIj/7AUPBewCJgCbAAABBwB1AWP/7AAUALAARViwEy8bsRMaPlmxHAn0MDH//wCM/+wGHQdCAiYAmgAAAQcARAFFAUIAFACwAEVYsBIvG7ESHj5ZsRwI9DAx//8AiP/sBQ8F7AImAJsAAAEHAEQA1P/sABQAsABFWLANLxuxDRo+WbEbCfQwMf//AIz/7AYdB8YCJgCaAAABBwCrBQMBUgAUALAARViwGi8bsRoePlmxKQj0MDH//wCI/+wFDwZwAiYAmwAAAQcAqwSS//wAFACwAEVYsBMvG7ETGj5ZsSgB9DAx//8AjP/sBh0HLgImAJoAAAEHAKUA2gFGABQAsABFWLASLxuxEh4+WbEeBPQwMf//AIj/7AUPBdgCJgCbAAABBgClafAAFACwAEVYsBMvG7ETGj5ZsR0B9DAx//8AjP6aBh0GAgImAJoAAAAHAK0FCf/4//8AiP6iBQ8EkAImAJsAAAAHAK0EhwAA//8AD/6iBLsFsAImAD0AAAAHAK0EuwAA//8AFv4FA7AEOgImAF0AAAAHAK0FHP9j//8ADwAABLsHugImAD0AAAEHAKsEtwFGABQAsABFWLAILxuxCB4+WbEJCPQwMf//ABb+SwOwBoQCJgBdAAABBwCrBEoAEAAUALAARViwDy8bsQ8aPlmxEAH0MDH//wAPAAAEuwciAiYAPQAAAQcApQCOAToAFACwAEVYsAEvG7EBHj5ZsQwE9DAx//8AFv5LA7AF7AImAF0AAAEGAKUhBAAUALAARViwAS8bsQEaPlmxEwH0MDH//wBf/s0ErAYAACYASAAAACcCJgGhAkcBBwBDAJ//ZAAIALIvHgFdMDH//wAx/pkElwWwAiYAOAAAAAcCUQI/AAD//wAo/pkDsAQ6AiYA9gAAAAcCUQHGAAD//wCW/pkEyAWwAiYA4QAAAAcCUQL+AAD//wBn/pkDvQQ7AiYA+QAAAAcCUQH1AAD//wCx/pkEMAWwAiYAsQAAAAcCUQDvAAD//wCa/pkDRwQ6AiYA7AAAAAcCUQDVAAD//wA//lUFvQXDAiYBTAAAAAcCUQMG/7z////e/lkEYwROAiYBTQAAAAcCUQIB/8D//wCMAAAD3wYAAgYATAAAAAL/1AAABLEFsAASABsAZACwAEVYsA8vG7EPHj5ZsABFWLAKLxuxChI+WbICCg8REjmwAi+yDg8CERI5sA4vsQsBsAorWCHYG/RZsAHQsA4QsBHQsAIQsRMBsAorWCHYG/RZsAoQsRQBsAorWCHYG/RZMDEBIxUhFgQVFAQHIREjNTM1MxUzAxEhMjY1NCYnAlDtAWrkAQD+/t/908/PwO3tAV+Pn5mNBFDyA+TExeoEBFCXycn92f3dmIB7jgIAAAL/1AAABLEFsAASABsAZACwAEVYsBAvG7EQHj5ZsABFWLAKLxuxChI+WbICChAREjmwAi+yEQIQERI5sBEvsQEBsAorWCHYG/RZsAvQsBEQsA7QsAIQsRMBsAorWCHYG/RZsAoQsRQBsAorWCHYG/RZMDEBIxUhFgQVFAQHIREjNTM1MxUzAxEhMjY1NCYnAlDtAWrkAQD+/t/908/PwO3tAV+Pn5mNBFDyA+TExeoEBFCXycn92f3dmIB7jgIAAAEAAwAABDAFsAANAFAAsABFWLAILxuxCB4+WbAARViwAi8bsQISPlmyDQgCERI5sA0vsnoNAV2xAAGwCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhESMRIzUzESEVIREhAn/+88GurgN//UIBDQKs/VQCrJcCbZ7+MQAAAf/8AAADRwQ6AA0ASwCwAEVYsAgvG7EIGj5ZsABFWLACLxuxAhI+WbINCAIREjmwDS+xAAGwCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhESMRIzUzESEVIREhAnj+3LqengKt/g0BJAHf/iEB35cBxJn+1QAB//cAAAUxBbAAFACAALAARViwCC8bsQgePlmwAEVYsBAvG7EQHj5ZsABFWLACLxuxAhI+WbAARViwEy8bsRMSPlmyDggCERI5sA4vsi8OAV2yzw4BXbEBAbAKK1gh2Bv0WbIHCAIREjmwBy+xBAGwCitYIdgb9FmwBxCwCtCwBBCwDNCyEgEOERI5MDEBIxEjESM1MzUzFTMVIxEzATMBASMCN7HAz8/A7e2WAf3v/dQCVesCjv1yBDeX4uKX/vcCgv0+/RIAAAH/vwAABCgGAAAUAHYAsABFWLAILxuxCCA+WbAARViwEC8bsRAaPlmwAEVYsAIvG7ECEj5ZsABFWLATLxuxExI+WbIOEAIREjmwDi+xAQGwCitYIdgb9FmyBwgQERI5sAcvsQQBsAorWCHYG/RZsAcQsArQsAQQsAzQshIBDhESOTAxASMRIxEjNTM1MxUzFSMRMwEzAQEjAeCAuufnutvbfgE72/6GAa7bAfX+CwTBl6iol/3NAaz+E/2zAAABAA8AAAS7BbAADgBXsgoPEBESOQCwAEVYsAgvG7EIHj5ZsABFWLALLxuxCx4+WbAARViwAi8bsQISPlmyBggCERI5sAYvsQUBsAorWCHYG/RZsADQsgoIAhESObAGELAO0DAxASMRIxEjNTMBMwEBMwEzA6bhwNuU/lHcAXoBfNr+UZoCCf33AgmXAxD9JQLb/PAAAQAu/mAD3wQ6AA4AZLIKDxAREjkAsABFWLAILxuxCBo+WbAARViwCy8bsQsaPlmwAEVYsAIvG7ECFD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmxBgGwCitYIdgb9FmyCgsAERI5sA3QsA7QMDEFIxEjESM1MwEzAQEzATMDSua63L/+ob0BHwEYvf6jyAv+awGVlwOu/NoDJvxSAAEAOQAABM4FsAARAGQAsABFWLALLxuxCx4+WbAARViwDi8bsQ4ePlmwAEVYsAIvG7ECEj5ZsABFWLAFLxuxBRI+WbIRCwIREjmwES+xAAGwCitYIdgb9FmyBAsCERI5sAfQsBEQsAnQsg0LAhESOTAxASMBIwEBIwEjNTMBMwEBMwEzA8SkAa7k/pr+mOMBr6CR/mvhAV8BXeL+a5YCnv1iAjj9yAKelwJ7/dICLv2FAAABACkAAAPKBDoAEQBkALAARViwCy8bsQsaPlmwAEVYsA4vG7EOGj5ZsABFWLACLxuxAhI+WbAARViwBS8bsQUSPlmyEQ4CERI5sBEvsQABsAorWCHYG/RZsgQOAhESObAH0LARELAJ0LINDgIREjkwMQEjASMDAyMBIzUzATMTEzMBMwM8swFB1vr61wFBqp7+1tbt8Nj+1qcB4f4fAZX+awHhlwHC/nUBi/4+AP//AGP/7APsBE0CBgC/AAD//wASAAAELwWwAiYAKgAAAAcCJv+D/n///wCRAosFyQMiAEYBr4QAZmZAAP//AF0AAAQzBcQCBgAWAAD//wBe/+wD+QXEAgYAFwAA//8ANQAABFAFsAIGABgAAP//AJr/7AQtBbACBgAZAAD//wCY/+wEMAWxAAYAGhQA//8AhP/sBCIFxAAGABwUAP//AGT//wP4BcQABgAdAAD//wCH/+wEHgXEAAYAFBQA//8Aev/sBNwHVwImACsAAAEHAHUBvgFXABQAsABFWLALLxuxCx4+WbEiCPQwMf//AGD+VgPyBgACJgBLAAABBwB1AUsAAAAUALAARViwAy8bsQMaPlmxJwn0MDH//wCpAAAFCAc2AiYAMgAAAQcARAFmATYAFACwAEVYsAYvG7EGHj5ZsQsI9DAx//8AjAAAA98GAAImAFIAAAEHAEQAzAAAABQAsABFWLADLxuxAxo+WbETCfQwMf//ABwAAAUdByACJgAlAAABBwCsBG0BMgAXALAARViwBC8bsQQePlmxDAj0sBDQMDEA//8AOf/sA+oF6wImAEUAAAEHAKwEEv/9ABcAsABFWLAXLxuxFxo+WbEqCfSwLtAwMQD//wBfAAAERgcsAiYAKQAAAQcArAQ4AT4AFwCwAEVYsAYvG7EGHj5ZsQ0I9LAR0DAxAP//ACn/7APzBesCJgBJAAABBwCsBAL//QAXALAARViwCC8bsQgaPlmxHwn0sCPQMDEA////CgAAAeoHLAImAC0AAAEHAKwC4wE+ABcAsABFWLACLxuxAh4+WbEFCPSwCdAwMQD///7wAAAB0AXpAiYAjQAAAQcArALJ//sAFwCwAEVYsAIvG7ECGj5ZsQUJ9LAJ0DAxAP//AHb/7AUJByICJgAzAAABBwCsBI8BNAAXALAARViwDS8bsQ0ePlmxIQj0sCXQMDEA//8AM//sBDQF6wImAFMAAAEHAKwEDP/9ABcAsABFWLAELxuxBBo+WbEdCfSwIdAwMQD//wBVAAAEyQcgAiYANgAAAQcArAQuATIAFwCwAEVYsAQvG7EEHj5ZsRkI9LAd0DAxAP///4sAAAKXBesCJgBWAAABBwCsA2T//QAXALAARViwCy8bsQsaPlmxDwn0sBPQMDEA//8AjP/sBKoHIAImADkAAAEHAKwEaAEyABcAsABFWLAJLxuxCR4+WbEUCPSwGNAwMQD//wAr/+wD3AXrAiYAWQAAAQcArAQE//0AFwCwAEVYsAcvG7EHGj5ZsRIJ9LAW0DAxAP///tYAAATSBj8AJgDQZAAABwCu/h8AAP//AKn+rASIBbACJgAmAAAABwCtBLoACv//AIz+mQQgBgACJgBGAAAABwCtBKv/9///AKn+rATGBbACJgAoAAAABwCtBLkACv//AF/+ogPwBgACJgBIAAAABwCtBL0AAP//AKn+CQTGBbACJgAoAAABBwG6AWX+qgAIALIAGgFdMDH//wBf/f8D8AYAAiYASAAAAAcBugFp/qD//wCp/qwFCAWwAiYALAAAAAcArQUfAAr//wCM/qwD3wYAAiYATAAAAAcArQShAAr//wCpAAAFBQcwAiYALwAAAQcAdQF7ATAAFACwAEVYsAUvG7EFHj5ZsQ4I9DAx//8AjQAABAwHQQImAE8AAAEHAHUBRAFBAAkAsAUvsA/cMDEA//8Aqf77BQUFsAImAC8AAAAHAK0E6ABZ//8Ajf7oBAwGAAImAE8AAAAHAK0EZQBG//8Aqf6sBBwFsAImADAAAAAHAK0EwAAK//8Ahv6sAWEGAAImAFAAAAAHAK0DTgAK//8Aqf6sBlIFsAImADEAAAAHAK0F0gAK//8Ai/6sBngETgImAFEAAAAHAK0F1gAK//8Aqf6sBQgFsAImADIAAAAHAK0FJAAK//8AjP6sA98ETgImAFIAAAAHAK0EhwAK//8Adv/sBQkH5gImADMAAAEHAjYFCwFTACoAsABFWLANLxuxDR4+WbAj3LJ/IwFxsu8jAXGyTyMBcbIvIwFxsDfQMDH//wCpAAAEwAdCAiYANAAAAQcAdQF8AUIAFACwAEVYsAMvG7EDHj5ZsRYI9DAx//8AjP5gBB4F9wImAFQAAAEHAHUBk//3ABQAsABFWLAMLxuxDBo+WbEdCfQwMf//AKj+rATJBbACJgA2AAAABwCtBLcACv//AIL+rAKXBE4CJgBWAAAABwCtA0oACv//AFD+ogRyBcQCJgA3AAAABwCtBMkAAP//AF/+mgO7BE4CJgBXAAAABwCtBIf/+P//ADH+ogSXBbACJgA4AAAABwCtBLoAAP//AAn+ogJWBUACJgBYAAAABwCtBBkAAP//AIz/7ASqB+QCJgA5AAABBwI2BOQBUQAWALAARViwEi8bsRIePlmwFtywKtAwMf//ABwAAAT9By4CJgA6AAABBwClALQBRgAUALAARViwBi8bsQYePlmxCgT0MDH//wAhAAADugXjAiYAWgAAAQYApR37ABQAsABFWLABLxuxARo+WbEKAfQwMf//ABz+rAT9BbACJgA6AAAABwCtBOQACv//ACH+rAO6BDoCJgBaAAAABwCtBE0ACv//AD3+rAbtBbACJgA7AAAABwCtBe8ACv//ACv+rAXTBDoCJgBbAAAABwCtBVMACv//AFb+rAR6BbACJgA+AAAABwCtBLoACv//AFj+rAOzBDoCJgBeAAAABwCtBGIACv///jL/7AVPBdYAJgAzRgAABwFx/cMAAP//ABMAAARwBRwCJgIzAAAABwCu/9z+3f///2MAAAPqBR8AJgIoPAAABwCu/qz+4P///4AAAASUBRwAJgHkPAAABwCu/sn+3f///4QAAAGNBR4AJgHjPAAABwCu/s3+3////9X/8ARkBRwAJgHdCgAABwCu/x7+3f///xsAAARYBRwAJgHTPAAABwCu/mT+3f///+4AAASIBRsAJgHzCgAABwCu/zf+3P//ABMAAARwBI0CBgIzAAD//wCKAAAD7wSNAgYCMgAA//8AigAAA64EjQIGAigAAP//AEcAAAPgBI0CBgHSAAD//wCKAAAEWASNAgYB5AAA//8AlwAAAVEEjQIGAeMAAP//AIoAAARXBI0CBgHhAAD//wCKAAAFdwSNAgYB3wAA//8AigAABFgEjQIGAd4AAP//AGD/8ARaBJ0CBgHdAAD//wCKAAAEGwSNAgYB3AAA//8AKAAAA/0EjQIGAdgAAP//AA0AAAQcBI0CBgHTAAD//wAmAAAEMQSNAgYB1AAA////swAAAjwF4wImAeMAAAEHAGr/TgAeABcAsABFWLACLxuxAhw+WbELAvSwFNAwMQD//wANAAAEHAXjAiYB0wAAAQYAam0eABcAsABFWLAILxuxCBw+WbEQAvSwGdAwMQD//wCKAAADrgXjAiYCKAAAAQYAanEeABcAsABFWLAGLxuxBhw+WbETAvSwHNAwMQD//wCKAAADhQYeAiYB6gAAAQcAdQE0AB4AFACwAEVYsAQvG7EEHD5ZsQgG9DAx//8AQ//wA90EnQIGAdkAAP//AJcAAAFRBI0CBgHjAAD///+zAAACPAXjAiYB4wAAAQcAav9OAB4AFwCwAEVYsAIvG7ECHD5ZsQsC9LAU0DAxAP//ACv/8ANNBI0CBgHiAAD//wCKAAAEVwYeAiYB4QAAAQcAdQElAB4AFACwAEVYsAUvG7EFHD5ZsQ8G9DAx//8AIv/sBAsF9gImAgEAAAEGAKFnHwAUALAARViwAi8bsQIcPlmxFAj0MDH//wATAAAEcASNAgYCMwAA//8AigAAA+8EjQIGAjIAAP//AIoAAAOFBI0CBgHqAAD//wCKAAADrgSNAgYCKAAA//8AigAABGEF9gImAf4AAAEHAKEAyQAfABQAsABFWLAILxuxCBw+WbENCPQwMf//AIoAAAV3BI0CBgHfAAD//wCKAAAEWASNAgYB5AAA//8AYP/wBFoEnQIGAd0AAP//AIoAAAREBI0CBgHvAAD//wCKAAAEGwSNAgYB3AAA//8AYP/wBDAEnQIGAjEAAP//ACgAAAP9BI0CBgHYAAD//wAmAAAEMQSNAgYB1AAAAAEAR/5QA9QEnQApAJ0AsABFWLAKLxuxChw+WbAARViwGS8bsRkSPlmwAEVYsBgvG7EYFD5ZsAoQsQMBsAorWCHYG/RZsgYKGRESObInGQoREjl8sCcvGLLwJwFdsgAnAXGyoCcBXbRgJ3AnAl2yMCcBcbRgJ3AnAnGxJgGwCitYIdgb9FmyECYnERI5sBkQsBbQsh0ZChESObAZELEgAbAKK1gh2Bv0WTAxATQmIyIGFSM0NjMyFhUUBgcWFhUUBgcRIxEmJjUzFhYzMjY1NCUjNTM2AwiKfW6Buu280+5uZ3Zxy6+6o7a5BYN5iJL+/52c7wNQVF1YT461qJZWjSkkkluMrxL+WwGnFK2IVmBgWMEFmAUAAQCK/pkE+gSNAA8AXwCwAS+wAEVYsAkvG7EJHD5ZsABFWLADLxuxAxI+WbAARViwBi8bsQYSPlmyCwMJERI5fLALLxiyoAsBXbEEAbAKK1gh2Bv0WbAJELAM0LADELEOAbAKK1gh2Bv0WTAxASMRIxEhESMRMxEhETMRMwT6uqH9pLm5Aly5ov6ZAWcB8v4OBI39/QID/AwAAAEAYP5WBDAEnQAfAFoAsABFWLAOLxuxDhw+WbAARViwAy8bsQMSPlmwAEVYsAUvG7EFFD5ZsAMQsAbQsA4QsBLQsA4QsRUBsAorWCHYG/RZsAMQsRwBsAorWCHYG/RZsAMQsB/QMDEBBgYHESMRJgI1NTQ2NjMyFhcjJiYjIgYHFRQWMzI2NwQwFMupurfXe+eYzPcTuRKNfpmnAZ+Xh40UAXmoxxT+YAGiHgEe42Gk+YjTu4J0y71qvc9vg///AA0AAAQcBI0CBgHTAAD//wAC/lEFawSdAiYCFwAAAAcCUQK8/7j//wCKAAAEYQXLAiYB/gAAAQcAcACcACYAEwCwAEVYsAgvG7EIHD5ZsAvcMDEA//8AIv/sBAsFywImAgEAAAEGAHA6JgATALAARViwES8bsREcPlmwE9wwMQD//wBgAAAFBgSNAgYB8QAA//8Al//wBTUEjQAmAeMAAAAHAeIB6AAA//8ACQAABfEGAAImAnMAAAAHAHUCngAA//8AYP/HBFoGHgImAnUAAAAHAHUBfQAe//8AQ/3/A90EnQImAdkAAAAHAboBKf6g//8AMQAABfEGHgImAdUAAAAHAEQBogAe//8AMQAABfEGHgImAdUAAAAHAHUCMQAe//8AMQAABfEF4wImAdUAAAAHAGoBawAe//8ADQAABBwGHgImAdMAAAAHAEQApAAe//8AHP5PBR0FsAImACUAAAAHAKQBfAAA//8Abf5PA+oETgImAEUAAAAHAKQAxAAA//8Aqf5ZBEYFsAImACkAAAAHAKQBOgAK//8AXf5PA/METgImAEkAAAAHAKQBBgAA//8AE/5PBHAEjQImAjMAAAAHAKQBHgAA//8Aiv5XA64EjQImAigAAAAHAKQA5wAI//8Ahf6sAWAEOgImAI0AAAAHAK0DTQAKAAAAGgE+AAEAAAAAAAAALwAAAAEAAAAAAAEABgAvAAEAAAAAAAIABwA1AAEAAAAAAAMABgAvAAEAAAAAAAQABgAvAAEAAAAAAAUAEwA8AAEAAAAAAAYADgBPAAEAAAAAAAcAIABdAAEAAAAAAAkABgB9AAEAAAAAAAsACgCDAAEAAAAAAAwAEwCNAAEAAAAAAA0ALgCgAAEAAAAAAA4AKgDOAAMAAQQJAAAAXgD4AAMAAQQJAAEADAFWAAMAAQQJAAIADgFiAAMAAQQJAAMADAFWAAMAAQQJAAQADAFWAAMAAQQJAAUAJgFwAAMAAQQJAAYAHAGWAAMAAQQJAAcAQAGyAAMAAQQJAAkADAHyAAMAAQQJAAsAFAH+AAMAAQQJAAwAJgISAAMAAQQJAA0AXAI4AAMAAQQJAA4AVAKUQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5Sb2JvdG9SZWd1bGFyVmVyc2lvbiAyLjEzNzsgMjAxN1JvYm90by1SZWd1bGFyUm9ib3RvIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZS5Hb29nbGVHb29nbGUuY29tQ2hyaXN0aWFuIFJvYmVydHNvbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAbwBiAG8AdABvAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADIALgAxADMANwA7ACAAMgAwADEANwBSAG8AYgBvAHQAbwAtAFIAZQBnAHUAbABhAHIAUgBvAGIAbwB0AG8AIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAuAEcAbwBvAGcAbABlAEcAbwBvAGcAbABlAC4AYwBvAG0AQwBoAHIAaQBzAHQAaQBhAG4AIABSAG8AYgBlAHIAdABzAG8AbgBMAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEEAcABhAGMAaABlACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADIALgAwAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAHAAYQBjAGgAZQAuAG8AcgBnAC8AbABpAGMAZQBuAHMAZQBzAC8ATABJAEMARQBOAFMARQAtADIALgAwAAAAAwAAAAAAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIACAAC//8ADwABAAIADgAAAAAAAAIoAAIAWQAlAD4AAQBFAF4AAQB5AHkAAQCBAIEAAQCDAIMAAQCGAIYAAQCJAIkAAQCLAJYAAQCYAJ0AAQCkAKQAAQCoAK0AAwCxALEAAQC6ALsAAQC/AL8AAQDBAMEAAQDDAMMAAQDHAMcAAQDLAMsAAQDNAM4AAQDQANEAAQDTANMAAQDaAN4AAQDhAOEAAQDlAOUAAQDnAOkAAQDrAPsAAQD9AP0AAQD/AQEAAQEDAQMAAQEIAQkAAQEWARoAAQEcARwAAQEgASIAAQEkASUAAwEqASsAAQEzATQAAQE2ATYAAQE7ATwAAQFBAUQAAQFHAUgAAQFLAU0AAQFRAVEAAQFUAVgAAQFdAV4AAQFiAWIAAQFkAWQAAQFoAWgAAQFqAWwAAQFuAW4AAQFwAXAAAQG6AboAAwG7AcEAAgHSAeYAAQHqAeoAAQHzAfMAAQH1AfUAAQH8Af4AAQIAAgEAAQIDAgMAAQIHAgcAAQIJAgsAAQIRAhEAAQIWAhgAAQIaAhoAAQIoAigAAQIrAisAAQItAi0AAQIwAjMAAQJfAmMAAQJ6AuIAAQLlA4sAAQONA6QAAQOmA7IAAQO0A70AAQO/A9oAAQPeA94AAQPgA+cAAQPpA+sAAQPuA/IAAQP0BHwAAQR/BH8AAQSCBIMAAQSFBIYAAQSIBIsAAQSVBNAAAQTSBPEAAQTzBPoAAQT8BP0AAQUHBQ0AAQABAAIAAAAMAAAALAABAA4AqACoAKkAqQCqAKoAqwCrAKwArAEkASUBJgEnAAEABQB5AKQArQCtAboAAAABAAAACgAyAEwABERGTFQAGmN5cmwAGmdyZWsAGmxhdG4AGgAEAAAAAP//AAIAAAABAAJjcHNwAA5rZXJuABQAAAABAAAAAAABAAEAAgAGAhAAAQAAAAEACAABAAoABQAkAEgAAQD6AAgACgAUABUAFgAXABgAGQAaABsAHAAdACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgBlAGcAgQCDAIQAjACPAJEAkwCxALIAswC0ALUAtgC3ALgAuQC6ANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA6ADpAS8BMwE1ATcBOQE7AUEBQwFFAUkBSwFMAVgBWQGXAZ0BogGlAnoCewJ9An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZArYCuAK6ArwCvgLAAsICxALGAsgCygLMAs4C0ALSAtQC1gLYAtoC3ALeAuAC4gLjAuUC5wLpAusC7QLvAvEC8wL1AvgC+gL8Av4DAAMCAwQDBgMIAwoDDAMOAxADEgMUAxYDGAMaAxwDHgMgAyIDJAMlAycDKQMrAy0DhgOHA4gDiQOKA4sDjAOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8ID0wPVA9cD2QPuA/AD8gQHBA0EEwR9BIIEhgUHBQkAAgAAAAIACjoYAAED8gAEAAAB9AfONMY0xgf8CF42/jeuNMw5zDd6CGQ4GDgYN7g4AjgYOBg5zDhEDAIM0DiKOVg5lDTeNoQ5sg1GN1w4ZjWMDYw4Og7CODo4OjeIOGY4fA/EOXYQJjU8OXYQQDhmOcwQhjXGNv45zDb+EQgSBhMIE+oUjDl2FJIUnDg6F4YZeBpqG3AbhhuMG5IejB6SHswfAh+MNaA1oCG+OBgiYCNeNN4lwDgYOBg1QjgYOBg4GCaWNaA4GDWgKEApBimYKfoq4DWWK241PDNGK5gtcjhmMQAxOjMkMyQ4ZjJwMvozJDMkMyQ2/jeIOVg5djNGOGY1xjWWNN41PDe4N7g3uDgYNN41PDgYOBg5zDWWNN41PDTGM3A0xjTGNMY6CDQSNGA6AjS8Oeo58DoCOfA56jnqOeo56jSuOfA0zDnMOcw5zDnMOIo2/jb+Nv42/jb+Nv42/jTMN3o3ejd6N3o4GDgYOBg4GDgYOcw5zDnMOcw5zDaEN1w3XDdcN1w3XDdcN1w1jDWMNYw1jDg6N4g3iDeIN4g3iDl2OXY2/jdcNv43XDb+N1w0zDTMNMw0zDnMN3o1jDd6NYw3ejWMN3o1jDd6NYw4GDg6OBg4GDgYOBg4GDe4OAI4AjgCOAI4GDg6OBg4OjgYODo4OjnMN4g5zDeIOcw3iDh8OHw4fDiKOIo4ijmUNoQ5djaEObI5sjmyOgI6AjoIOfA58DnwOfA58DnwOfA6AjoCOgI6AjoCOfA58DnwOgI56jS8NLw0vDS8OgI6AjoCOgg2/jd6OBg4GDnMNoQ2/jeuN3o5sjgYOBg3uDgYOBg5zDhEOIo2hDTeOBg2hDg6N4g5djeIN3o1xjgYOBg3uDe4NUI2/jeuNcY3ejgYOBg5zDhENMw4ijTeN1w1jDeIOGY5djU8NYw1ljl2OZQ5lDmUNoQ5djTGNMY0xjgYODo2/jdcN3o1jDlYOXY0zDaEOXY4GDTeNTw4GDb+N1w2/jdcN3o1jDWMNYw03jU8Ocw3iDeIOGY1Qjl2NUI5djVCOXY2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w3ejWMN3o1jDd6NYw3ejWMN3o1jDd6NYw3ejWMN3o1jDgYOBg5zDeIOcw3iDnMN4g5zDeIOcw3iDnMN4g5zDeIN4g2hDl2NoQ5djaEOXY4ijXGNZY4OjWgNcY3uDaEOBg4Ojb+N1w3ejgYOcw3iDh8N644ZjnMOcw4GDg6N7g3uDgCOBg4OjgYODo5zDhEOGY4fDiKOVg5djlYOXY5lDmyOcw58DoCOfA56joIOeo58DoCOggAAgCkAAQABAAAAAYABgABAAsADAACABMAEwAEACUAKgAFACwALQALAC8ANgANADgAOAAVADoAPwAWAEUARgAcAEkASgAeAEwATAAgAE8ATwAhAFEAVAAiAFYAVgAmAFgAWAAnAFoAXQAoAF8AXwAsAIoAigAtAJYAlgAuAJ0AnQAvALEAtQAwALcAuQA1ALsAuwA4AL0AvgA5AMAAwQA7AMMAxQA9AMcAzgBAANIA0gBIANQA3gBJAOAA7wBUAPEA8QBkAPYA+ABlAPsA/ABoAP4BAABqAQMBBQBtAQoBCgBwAQ0BDQBxARgBGgByASIBIgB1AS4BMAB2ATMBNQB5ATcBNwB8ATkBOQB9ATsBOwB+AUMBRAB/AVQBVACBAVYBVgCCAVgBWACDAVwBXgCEAYQBhQCHAYcBiQCJAdgB2ACMAdoB2wCNAd0B3QCPAeAB4QCQAesB7QCSAf8B/wCVAg4CEACWAjACMACZAjMCMwCaAkUCRQCbAkcCSACcAnoCewCeAn0CfQCgAn8ClAChApkCoAC3AqICpQC/AqoCrwDDArQCvADJAr4CvgDSAsACwADTAsICwgDUAsQCxADVAsYCzwDWAtgC2gDgAtwC3ADjAt4C3gDkAuAC4ADlAuIC4gDmAucC5wDnAukC6QDoAusC6wDpAu0C7QDqAu8C7wDrAvEC/QDsAv8C/wD5AwEDAQD6AwMDAwD7Aw4DDgD8AxADEAD9AxIDEgD+AyADIAD/AyIDJQEAAycDJwEEAykDKQEFAy8DOAEGA0MDRwEQA00DTwEVA1QDVAEYA2UDaQEZA20DbwEeA3gDeAEhA4YDiwEiA44DnQEoA6ADoAE4A6QDpAE5A6YDpgE6A6oDqgE7A60DrgE8A7ADsQE+A7MDuQFAA7sDvQFHA78DxAFKA8YDxwFQA8kDzAFSA9ID0wFWA9UD1QFYA9cD1wFZA9kD3AFaA98D5AFeA+YD5gFkA+oD6wFlA/AD8AFnA/ID+wFoA/4D/wFyBAEEBAF0BAsEDAF4BBAEEAF6BBIEGAF7BB4ERgGCBEgESAGrBEoEVwGsBF8EXwG6BHAEdQG7BHcEdwHBBHsEfAHCBH8EfwHEBIEEggHFBIQEhAHHBIYEhgHIBJcEmwHJBJ0EnQHOBJ8EoAHPBKIEogHRBKYEqAHSBKoEqgHVBKwErgHWBLAEsAHZBLIEsgHaBLQEugHbBLwEvAHiBL8EvwHjBMIExgHkBMgEyAHpBMoEywHqBM8EzwHsBNIE0gHtBNgE2AHuBN0E3QHvBOgE6AHwBOoE6gHxBPEE8QHyBPUE9QHzAAsAOP/YANL/2ADW/9gBOf/YAUX/2AMO/9gDEP/YAxL/2APB/9gEd//YBL//2AAYADoAFAA7ABIAPQAWARkAFAKZABYDIAASAyIAFgMkABYDiwAWA5oAFgOdABYD0wASA9UAEgPXABID2QAWA+oAFAPyABYEcAAWBHIAFgR0ABYEhgAWBMIAFATEABQExgASAAEAE/8gAOcAEP8WABL/FgAl/1YALv74ADgAFABF/94AR//rAEj/6wBJ/+sAS//rAFP/6wBV/+sAVv/mAFn/6gBa/+gAXf/oAJT/6wCZ/+sAm//qALL/VgC0/1YAu//rAL3/6ADI/+sAyf/rAMv/6gDSABQA1gAUAPf/6wED/+sBDf9WARj/6wEa/+gBHv/rASL/6wE5ABQBQv/rAUUAFAFg/+sBYf/rAWv/6wGG/xYBiv8WAY7/FgGP/xYB6//AAe3/wAIz/8ACf/9WAoD/VgKB/1YCgv9WAoP/VgKE/1YChf9WApr/3gKb/94CnP/eAp3/3gKe/94Cn//eAqD/3gKh/+sCov/rAqP/6wKk/+sCpf/rAqv/6wKs/+sCrf/rAq7/6wKv/+sCsP/qArH/6gKy/+oCs//qArT/6AK1/+gCtv9WArf/3gK4/1YCuf/eArr/VgK7/94Cvf/rAr//6wLB/+sCw//rAsX/6wLH/+sCyf/rAsv/6wLN/+sCz//rAtH/6wLT/+sC1f/rAtf/6wLl/vgC+f/rAvv/6wL9/+sDDgAUAxAAFAMSABQDFf/qAxf/6gMZ/+oDG//qAx3/6gMf/+oDI//oAzL/wAMz/8ADNP/AAzX/wAM2/8ADN//AAzj/wANN/8ADTv/AA0//wAOG/1YDjv9WA57/6wOi/+oDpP/rA6b/6AOp/+oDqv/rA6v/6gOy/vgDtv9WA8EAFAPD/94DxP/rA8b/6wPI/+sDyf/oA8v/6wPS/+gD2v/oA+L/VgPj/94D5v/rA+v/6APs/+sD8f/rA/P/6AP4/1YD+f/eA/r/VgP7/94D///rBAH/6wQC/+sEDP/rBA7/6wQQ/+sEFP/oBBb/6AQY/+gEHf/rBB7/VgQf/94EIP9WBCH/3gQi/1YEI//eBCT/VgQl/94EJv9WBCf/3gQo/1YEKf/eBCr/VgQr/94ELP9WBC3/3gQu/1YEL//eBDD/VgQx/94EMv9WBDP/3gQ0/1YENf/eBDf/6wQ5/+sEO//rBD3/6wQ//+sEQf/rBEP/6wRF/+sES//rBE3/6wRP/+sEUf/rBFP/6wRV/+sEV//rBFn/6wRb/+sEXf/rBF//6wRh/+sEY//qBGX/6gRn/+oEaf/qBGv/6gRt/+oEb//qBHH/6ARz/+gEdf/oBHcAFASZ/1YEmv/eBJz/6wSg/+sEpP/qBKn/6wSr/+sEvwAUBMP/6ATF/+gEy//ABNL/wATq/8AAMwA4/9UAOv/kADv/7AA9/90A0v/VANb/1QEZ/+QBOf/VAUX/1QHrAA4B7QAOAjMADgKZ/90DDv/VAxD/1QMS/9UDIP/sAyL/3QMk/90DMgAOAzMADgM0AA4DNQAOAzYADgM3AA4DOAAOA00ADgNOAA4DTwAOA4v/3QOa/90Dnf/dA8H/1QPT/+wD1f/sA9f/7APZ/90D6v/kA/L/3QRw/90Ecv/dBHT/3QR3/9UEhv/dBL//1QTC/+QExP/kBMb/7ATLAA4E0gAOBOoADgAdADj/sAA6/+0APf/QANL/sADW/7ABGf/tATn/sAFF/7ACmf/QAw7/sAMQ/7ADEv+wAyL/0AMk/9ADi//QA5r/0AOd/9ADwf+wA9n/0APq/+0D8v/QBHD/0ARy/9AEdP/QBHf/sASG/9AEv/+wBML/7QTE/+0AEQAu/+4AOf/uApX/7gKW/+4Cl//uApj/7gLl/+4DFP/uAxb/7gMY/+4DGv/uAxz/7gMe/+4Dsv/uBGL/7gRk/+4Ewf/uAE0ABgAQAAsAEAANABQAQQASAEf/6ABI/+gASf/oAEv/6ABV/+gAYQATAJT/6ACZ/+gAu//oAMj/6ADJ/+gA9//oAQP/6AEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEABABhQAQAYcAEAGIABABiQAQAqH/6AKi/+gCo//oAqT/6AKl/+gCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AOe/+gDxP/oA8j/6APL/+gD2wAQA9wAEAPfABAD5v/oA+z/6APx/+gD///oBAH/6AQC/+gEDv/oBB3/6AQ3/+gEOf/oBDv/6AQ9/+gEP//oBEH/6ARD/+gERf/oBFn/6ARb/+gEXf/oBGH/6ASc/+gEqf/oBKv/6ABAAEf/7ABI/+wASf/sAEv/7ABV/+wAlP/sAJn/7AC7/+wAyP/sAMn/7AD3/+wBA//sAR7/7AEi/+wBQv/sAWD/7AFh/+wBa//sAqH/7AKi/+wCo//sAqT/7AKl/+wCvf/sAr//7ALB/+wCw//sAsX/7ALH/+wCyf/sAsv/7ALN/+wCz//sAtH/7ALT/+wC1f/sAtf/7AOe/+wDxP/sA8j/7APL/+wD5v/sA+z/7APx/+wD///sBAH/7AQC/+wEDv/sBB3/7AQ3/+wEOf/sBDv/7AQ9/+wEP//sBEH/7ARD/+wERf/sBFn/7ARb/+wEXf/sBGH/7ASc/+wEqf/sBKv/7AAYAFP/7AEY/+wCq//sAqz/7AKt/+wCrv/sAq//7AL5/+wC+//sAv3/7AOk/+wDqv/sA8b/7AQM/+wEEP/sBEv/7ARN/+wET//sBFH/7ART/+wEVf/sBFf/7ARf/+wEoP/sAAYAEP+EABL/hAGG/4QBiv+EAY7/hAGP/4QAEQAu/+wAOf/sApX/7AKW/+wCl//sApj/7ALl/+wDFP/sAxb/7AMY/+wDGv/sAxz/7AMe/+wDsv/sBGL/7ARk/+wEwf/sACAABv/yAAv/8gBa//MAXf/zAL3/8wD2//UBGv/zAYT/8gGF//IBh//yAYj/8gGJ//ICtP/zArX/8wMj//MDpv/zA8n/8wPS//MD2v/zA9v/8gPc//ID3//yA+v/8wPz//MEFP/zBBb/8wQY//MEcf/zBHP/8wR1//MEw//zBMX/8wA/ACf/8wAr//MAM//zADX/8wCD//MAk//zAJj/8wCz//MAxAANANP/8wEI//MBF//zARv/8wEd//MBH//zASH/8wFB//MBav/zAkX/8wJG//MCSP/zAkn/8wKG//MCkP/zApH/8wKS//MCk//zApT/8wK8//MCvv/zAsD/8wLC//MC0P/zAtL/8wLU//MC1v/zAvj/8wL6//MC/P/zAy3/8wOK//MDl//zA73/8wPA//MD7f/zA/D/8wQL//MEDf/zBA//8wRK//METP/zBE7/8wRQ//MEUv/zBFT/8wRW//MEWP/zBFr/8wRc//MEXv/zBGD/8wSf//MEuP/zAEAAJ//mACv/5gAz/+YANf/mAIP/5gCT/+YAmP/mALP/5gC4/8IAxAAQANP/5gEI/+YBF//mARv/5gEd/+YBH//mASH/5gFB/+YBav/mAkX/5gJG/+YCSP/mAkn/5gKG/+YCkP/mApH/5gKS/+YCk//mApT/5gK8/+YCvv/mAsD/5gLC/+YC0P/mAtL/5gLU/+YC1v/mAvj/5gL6/+YC/P/mAy3/5gOK/+YDl//mA73/5gPA/+YD7f/mA/D/5gQL/+YEDf/mBA//5gRK/+YETP/mBE7/5gRQ/+YEUv/mBFT/5gRW/+YEWP/mBFr/5gRc/+YEXv/mBGD/5gSf/+YEuP/mADgAJf/kADz/0gA9/9MAsv/kALT/5ADE/+IA2v/SAQ3/5AEz/9IBQ//SAV3/0gJ//+QCgP/kAoH/5AKC/+QCg//kAoT/5AKF/+QCmf/TArb/5AK4/+QCuv/kAyL/0wMk/9MDhv/kA4v/0wOO/+QDmv/TA5v/0gOd/9MDtv/kA8L/0gPZ/9MD4v/kA/L/0wP1/9ID+P/kA/r/5AQD/9IEHv/kBCD/5AQi/+QEJP/kBCb/5AQo/+QEKv/kBCz/5AQu/+QEMP/kBDL/5AQ0/+QEcP/TBHL/0wR0/9MEhv/TBJn/5AAoABD/HgAS/x4AJf/NALL/zQC0/80Ax//yAQ3/zQGG/x4Biv8eAY7/HgGP/x4Cf//NAoD/zQKB/80Cgv/NAoP/zQKE/80Chf/NArb/zQK4/80Cuv/NA4b/zQOO/80Dtv/NA+L/zQP4/80D+v/NBB7/zQQg/80EIv/NBCT/zQQm/80EKP/NBCr/zQQs/80ELv/NBDD/zQQy/80ENP/NBJn/zQABAMQADgACAMr/7QD2/8AAugBH/9wASP/cAEn/3ABL/9wAUf/zAFL/8wBT/9YAVP/zAFX/3ABZ/90AWv/hAF3/4QCU/9wAmf/cAJv/3QC7/9wAvf/hAL7/7gC//+YAwf/zAML/6wDD/+kAxf/wAMb/5wDI/9wAyf/cAMr/4wDL/90AzP/OAM3/1ADO/9sA7P/zAPD/8wDx//MA8//zAPT/8wD1//MA9//cAPj/8wD6//MA+//zAP7/8wEA//MBA//cAQX/8wEY/9YBGv/hAR7/3AEi/9wBK//zATb/8wE8//MBPv/zAUL/3AFT//MBVf/zAVf/8wFc//MBYP/cAWH/3AFr/9wCof/cAqL/3AKj/9wCpP/cAqX/3AKq//MCq//WAqz/1gKt/9YCrv/WAq//1gKw/90Csf/dArL/3QKz/90CtP/hArX/4QK9/9wCv//cAsH/3ALD/9wCxf/cAsf/3ALJ/9wCy//cAs3/3ALP/9wC0f/cAtP/3ALV/9wC1//cAvL/8wL0//MC9v/zAvf/8wL5/9YC+//WAv3/1gMV/90DF//dAxn/3QMb/90DHf/dAx//3QMj/+EDnv/cA6D/8wOi/90DpP/WA6b/4QOp/90Dqv/WA6v/3QPE/9wDxf/zA8b/1gPH//MDyP/cA8n/4QPL/9wDzP/zA9H/8wPS/+ED2v/hA+H/8wPm/9wD5//zA+v/4QPs/9wD8f/cA/P/4QP//9wEAf/cBAL/3AQI//MECv/zBAz/1gQO/9wEEP/WBBT/4QQW/+EEGP/hBBz/8wQd/9wEN//cBDn/3AQ7/9wEPf/cBD//3ARB/9wEQ//cBEX/3ARL/9YETf/WBE//1gRR/9YEU//WBFX/1gRX/9YEWf/cBFv/3ARd/9wEX//WBGH/3ARj/90EZf/dBGf/3QRp/90Ea//dBG3/3QRv/90Ecf/hBHP/4QR1/+EEfP/zBJj/8wSc/9wEoP/WBKT/3QSp/9wEq//cBLX/8wS3//MEw//hBMX/4QB8AAb/2gAL/9oAR//wAEj/8ABJ//AAS//wAFX/8ABZ/+8AWv/cAF3/3ACU//AAmf/wAJv/7wC7//AAvf/cAML/7ADEAA8Axv/qAMj/8ADJ//AAyv/EAMv/7wDM/+cA9//wAQP/8AEa/9wBHv/wASL/8AFC//ABYP/wAWH/8AFr//ABhP/aAYX/2gGH/9oBiP/aAYn/2gKh//ACov/wAqP/8AKk//ACpf/wArD/7wKx/+8Csv/vArP/7wK0/9wCtf/cAr3/8AK///ACwf/wAsP/8ALF//ACx//wAsn/8ALL//ACzf/wAs//8ALR//AC0//wAtX/8ALX//ADFf/vAxf/7wMZ/+8DG//vAx3/7wMf/+8DI//cA57/8AOi/+8Dpv/cA6n/7wOr/+8DxP/wA8j/8APJ/9wDy//wA9L/3APa/9wD2//aA9z/2gPf/9oD5v/wA+v/3APs//AD8f/wA/P/3AP///AEAf/wBAL/8AQO//AEFP/cBBb/3AQY/9wEHf/wBDf/8AQ5//AEO//wBD3/8AQ///AEQf/wBEP/8ARF//AEWf/wBFv/8ARd//AEYf/wBGP/7wRl/+8EZ//vBGn/7wRr/+8Ebf/vBG//7wRx/9wEc//cBHX/3ASc//AEpP/vBKn/8ASr//AEw//cBMX/3AA8AAb/oAAL/6AASv/pAFn/8QBa/8UAXf/FAJv/8QC9/8UAwv/uAMQAEADG/+wAyv8gAMv/8QEa/8UBhP+gAYX/oAGH/6ABiP+gAYn/oAKw//ECsf/xArL/8QKz//ECtP/FArX/xQMV//EDF//xAxn/8QMb//EDHf/xAx//8QMj/8UDov/xA6b/xQOp//EDq//xA8n/xQPS/8UD2v/FA9v/oAPc/6AD3/+gA+v/xQPz/8UEFP/FBBb/xQQY/8UEY//xBGX/8QRn//EEaf/xBGv/8QRt//EEb//xBHH/xQRz/8UEdf/FBKT/8QTD/8UExf/FAEEAR//nAEj/5wBJ/+cAS//nAFX/5wCU/+cAmf/nALv/5wDEAA8AyP/nAMn/5wD3/+cBA//nAR7/5wEi/+cBQv/nAWD/5wFh/+cBa//nAqH/5wKi/+cCo//nAqT/5wKl/+cCvf/nAr//5wLB/+cCw//nAsX/5wLH/+cCyf/nAsv/5wLN/+cCz//nAtH/5wLT/+cC1f/nAtf/5wOe/+cDxP/nA8j/5wPL/+cD5v/nA+z/5wPx/+cD///nBAH/5wQC/+cEDv/nBB3/5wQ3/+cEOf/nBDv/5wQ9/+cEP//nBEH/5wRD/+cERf/nBFn/5wRb/+cEXf/nBGH/5wSc/+cEqf/nBKv/5wAFAMr/6gDt/+4A9v+rATr/7AFt/+wAAQD2/9UAAQDKAAsAvgAGAAwACwAMAEf/6ABI/+gASf/oAEoADABL/+gAU//qAFX/6ABaAAsAXQALAJT/6ACZ/+gAu//oAL0ACwC+/+0AxgALAMj/6ADJ/+gAygAMAPf/6AED/+gBGP/qARoACwEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEAAwBhQAMAYcADAGIAAwBiQAMAdMADQHWAA0B2AAOAdn/9QHb/+wB3f/tAeX/7AHr/78B7P/tAe3/vwH0AA4B9f/tAfgADgIQAA4CEf/tAhIADQIUAA4CGv/tAjH/7gIz/78Cof/oAqL/6AKj/+gCpP/oAqX/6AKr/+oCrP/qAq3/6gKu/+oCr//qArQACwK1AAsCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AL5/+oC+//qAv3/6gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/+gDpP/qA6YACwOq/+oDxP/oA8b/6gPI/+gDyQALA8v/6APSAAsD2gALA9sADAPcAAwD3wAMA+b/6APrAAsD7P/oA/H/6APzAAsD///oBAH/6AQC/+gEDP/qBA7/6AQQ/+oEFAALBBYACwQYAAsEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gES//qBE3/6gRP/+oEUf/qBFP/6gRV/+oEV//qBFn/6ARb/+gEXf/oBF//6gRh/+gEcQALBHMACwR1AAsEnP/oBKD/6gSp/+gEq//oBMMACwTFAAsEy/+/BM//7QTQAA0E0v+/BN4ADQThAA0E6v+/BPH/7QT0/+0E9QAOBPn/7QT6AA0AAQD2/9gADgBc/+0AXv/tAO7/7QD2/6oBNP/tAUT/7QFe/+0DJv/tAyj/7QMq/+0Dyv/tA/b/7QQE/+0Eyf/tAA0AXP/yAF7/8gDu//IBNP/yAUT/8gFe//IDJv/yAyj/8gMq//IDyv/yA/b/8gQE//IEyf/yACIAWv/0AFz/8gBd//QAXv/zAL3/9ADu//IBGv/0ATT/8gFE//IBXv/yArT/9AK1//QDI//0Ayb/8wMo//MDKv/zA6b/9APJ//QDyv/yA9L/9APa//QD6//0A/P/9AP2//IEBP/yBBT/9AQW//QEGP/0BHH/9ARz//QEdf/0BMP/9ATF//QEyf/zAIwABv/KAAv/ygA4/9IAOv/UADz/9AA9/9MAUf/RAFL/0QBU/9EAWv/mAFz/7wBd/+YAvf/mAMH/0QDS/9IA1v/SANr/9ADe/+0A4f/hAOb/1ADs/9EA7v/vAPD/0QDx/9EA8//RAPT/0QD1/9EA9v/JAPj/0QD6/9EA+//RAP7/0QEA/9EBBf/RAQn/5QEZ/9QBGv/mASD/4wEr/9EBM//0ATT/7wE2/9EBOf/SATr/xAE8/9EBPv/RAUP/9AFE/+8BRf/SAUf/4QFJ/+EBU//RAVX/0QFX/9EBXP/RAV3/9AFe/+8BYv/UAWP/9QFk/+cBbP/SAW3/yQGE/8oBhf/KAYf/ygGI/8oBif/KApn/0wKq/9ECtP/mArX/5gLy/9EC9P/RAvb/0QL3/9EDDv/SAxD/0gMS/9IDIv/TAyP/5gMk/9MDi//TA5r/0wOb//QDnf/TA6D/0QOm/+YDtf/tA8H/0gPC//QDxf/RA8f/0QPJ/+YDyv/vA8z/0QPR/9ED0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD4f/RA+f/0QPq/9QD6//mA/L/0wPz/+YD9f/0A/b/7wQD//QEBP/vBAj/0QQK/9EEE//tBBT/5gQV/+0EFv/mBBf/7QQY/+YEGf/hBBz/0QRw/9MEcf/mBHL/0wRz/+YEdP/TBHX/5gR3/9IEef/hBHz/0QSG/9MEmP/RBLX/0QS3/9EEv//SBML/1ATD/+YExP/UBMX/5gAoADj/vgBa/+8AXf/vAL3/7wDS/74A1v++AOb/yQD2/98BCf/tARr/7wEg/+sBOf++ATr/3wFF/74BTP/pAWP/9QFt/+ACtP/vArX/7wMO/74DEP++AxL/vgMj/+8Dpv/vA8H/vgPJ/+8D0v/vA9r/7wPr/+8D8//vBBT/7wQW/+8EGP/vBHH/7wRz/+8Edf/vBHf/vgS//74Ew//vBMX/7wA/ADj/5gA6/+cAPP/yAD3/5wBc//EA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7v/xAPb/0AEZ/+cBM//yATT/8QE5/+YBOv/OAUP/8gFE//EBRf/mAUf/6AFJ/+gBXf/yAV7/8QFi/+cBZP/tAWz/5gFt/9ACmf/nAw7/5gMQ/+YDEv/mAyL/5wMk/+cDi//nA5r/5wOb//IDnf/nA7X/7gPB/+YDwv/yA8r/8QPZ/+cD6v/nA/L/5wP1//ID9v/xBAP/8gQE//EEE//uBBX/7gQX/+4EGf/oBHD/5wRy/+cEdP/nBHf/5gR5/+gEhv/nBL//5gTC/+cExP/nAJgAJQAQACf/6AAr/+gAM//oADX/6AA4/+AAOv/gAD3/3wCD/+gAk//oAJj/6ACyABAAs//oALQAEADS/+AA0//oANQAEADW/+AA2QAUAN0AEADh/+EA5v/gAO0AEwDyABAA+f/gAQQAEAEI/+gBDQAQARf/6AEZ/+ABG//oAR3/6AEf/+gBIf/oATn/4AFB/+gBRf/gAUf/4QFI/+ABSf/hAUr/4AFN/+EBUAAQAVEAEAFY/+kBYv/fAWT/3gFmABABav/oAWz/3wFu//IBbwAQAXAAEAJF/+gCRv/oAkj/6AJJ/+gCfwAQAoAAEAKBABACggAQAoMAEAKEABAChQAQAob/6AKQ/+gCkf/oApL/6AKT/+gClP/oApn/3wK2ABACuAAQAroAEAK8/+gCvv/oAsD/6ALC/+gC0P/oAtL/6ALU/+gC1v/oAvj/6AL6/+gC/P/oAw7/4AMQ/+ADEv/gAyL/3wMk/98DLf/oA4YAEAOK/+gDi//fA44AEAOX/+gDmv/fA53/3wO2ABADvf/oA8D/6APB/+AD2f/fA+IAEAPq/+AD7f/oA/D/6APy/98D+AAQA/oAEAQL/+gEDf/oBA//6AQZ/+EEGv/gBB4AEAQgABAEIgAQBCQAEAQmABAEKAAQBCoAEAQsABAELgAQBDAAEAQyABAENAAQBEr/6ARM/+gETv/oBFD/6ARS/+gEVP/oBFb/6ARY/+gEWv/oBFz/6ARe/+gEYP/oBHD/3wRy/98EdP/fBHf/4AR5/+EEev/gBIb/3wSZABAEn//oBLj/6AS//+AEwv/gBMT/4AA1ABv/8gA4//EAOv/0ADz/9AA9//AA0v/xANT/9QDW//EA2v/0AN3/9QDe//MA5v/xARn/9AEz//QBOf/xAUP/9AFF//EBUP/1AV3/9AFi//IBZP/yAWb/9QFs//IBb//1Apn/8AMO//EDEP/xAxL/8QMi//ADJP/wA4v/8AOa//ADm//0A53/8AO1//MDwf/xA8L/9APZ//AD6v/0A/L/8AP1//QEA//0BBP/8wQV//MEF//zBHD/8ARy//AEdP/wBHf/8QSG//AEv//xBML/9ATE//QAagAlAA8AOP/mADr/5gA8AA4APf/mALIADwC0AA8A0v/mANQADgDW/+YA2QATANoADgDdAA4A3gALAOH/5QDm/+YA5//0AO0AEgDyAA8A9v/nAPn/6AEEAA8BDQAPARn/5gEzAA4BOf/mATr/5wFDAA4BRf/mAUf/5QFI/+gBSf/lAUr/6AFM/+QBUAAOAVEADwFdAA4BYv/mAWT/5gFmAA4BbP/mAW3/5wFvAA4BcAAPAn8ADwKAAA8CgQAPAoIADwKDAA8ChAAPAoUADwKZ/+YCtgAPArgADwK6AA8DDv/mAxD/5gMS/+YDIv/mAyT/5gOGAA8Di//mA44ADwOa/+YDmwAOA53/5gO1AAsDtgAPA8H/5gPCAA4D2f/mA+IADwPq/+YD8v/mA/UADgP4AA8D+gAPBAMADgQTAAsEFQALBBcACwQZ/+UEGv/oBB4ADwQgAA8EIgAPBCQADwQmAA8EKAAPBCoADwQsAA8ELgAPBDAADwQyAA8ENAAPBHD/5gRy/+YEdP/mBHf/5gR5/+UEev/oBIb/5gSZAA8Ev//mBML/5gTE/+YAMQA4/+MAPP/lAD3/5ADS/+MA1P/lANb/4wDZ/+IA2v/lAN3/5QDe/+kA8v/qAQT/6gEz/+UBOf/jAUP/5QFF/+MBUP/lAVH/6gFd/+UBZv/lAWz/5AFv/+UBcP/qApn/5AMO/+MDEP/jAxL/4wMi/+QDJP/kA4v/5AOa/+QDm//lA53/5AO1/+kDwf/jA8L/5QPZ/+QD8v/kA/X/5QQD/+UEE//pBBX/6QQX/+kEcP/kBHL/5AR0/+QEd//jBIb/5AS//+MAJAA4/+IAPP/kANL/4gDU/+QA1v/iANn/4QDa/+QA3f/kAN7/6QDt/+QA8v/rAQT/6wEz/+QBOf/iAUP/5AFF/+IBUP/kAVH/6wFd/+QBZv/kAW//5AFw/+sDDv/iAxD/4gMS/+IDm//kA7X/6QPB/+IDwv/kA/X/5AQD/+QEE//pBBX/6QQX/+kEd//iBL//4gAYADj/6wA9//MA0v/rANb/6wE5/+sBRf/rApn/8wMO/+sDEP/rAxL/6wMi//MDJP/zA4v/8wOa//MDnf/zA8H/6wPZ//MD8v/zBHD/8wRy//MEdP/zBHf/6wSG//MEv//rADkAUf/vAFL/7wBU/+8AXP/wAMH/7wDs/+8A7f/uAO7/8ADw/+8A8f/vAPP/7wD0/+8A9f/vAPb/7gD4/+8A+v/vAPv/7wD+/+8BAP/vAQX/7wEJ//QBIP/xASv/7wE0//ABNv/vATr/7wE8/+8BPv/vAUT/8AFT/+8BVf/vAVf/7wFc/+8BXv/wAW3/7wKq/+8C8v/vAvT/7wL2/+8C9//vA6D/7wPF/+8Dx//vA8r/8APM/+8D0f/vA+H/7wPn/+8D9v/wBAT/8AQI/+8ECv/vBBz/7wR8/+8EmP/vBLX/7wS3/+8AIwAG//IAC//yAFr/9QBd//UAvf/1APb/9AEJ//UBGv/1ATr/9QFt//UBhP/yAYX/8gGH//IBiP/yAYn/8gK0//UCtf/1AyP/9QOm//UDyf/1A9L/9QPa//UD2//yA9z/8gPf//ID6//1A/P/9QQU//UEFv/1BBj/9QRx//UEc//1BHX/9QTD//UExf/1AAoA7QAUAPb/7QD5/+0A/P/iATr/7QFI/+0BSv/tAW3/7QQa/+0Eev/tAHYAR//wAEj/8ABJ//AAS//wAFP/6wBV//AAlP/wAJn/8AC7//AAyP/wAMn/8AD3//ABA//wARj/6wEc/+sBHv/wASL/8AFC//ABYP/wAWH/8AFr//AB2//rAd3/6wHl/+kB7P/rAfX/6wIR/+sCGv/rAjH/6wKh//ACov/wAqP/8AKk//ACpf/wAqv/6wKs/+sCrf/rAq7/6wKv/+sCvf/wAr//8ALB//ACw//wAsX/8ALH//ACyf/wAsv/8ALN//ACz//wAtH/8ALT//AC1f/wAtf/8AL5/+sC+//rAv3/6wM5/+sDQ//rA0T/6wNF/+sDRv/rA0f/6wNQ/+sDUf/rA1L/6wNT/+sDWv/rA1v/6wNc/+sDXf/rA23/6wNu/+sDb//rA57/8AOk/+sDqv/rA8T/8APG/+sDyP/wA8v/8APm//AD7P/wA/H/8AP///AEAf/wBAL/8AQM/+sEDv/wBBD/6wQd//AEN//wBDn/8AQ7//AEPf/wBD//8ARB//AEQ//wBEX/8ARL/+sETf/rBE//6wRR/+sEU//rBFX/6wRX/+sEWf/wBFv/8ARd//AEX//rBGH/8ASc//AEoP/rBKn/8ASr//AEz//rBPH/6wT0/+sE+f/rAOMABgANAAsADQBF//AAR/+wAEj/sABJ/7AASgANAEv/sABT/9YAVf+wAFoACwBdAAsAlP+wAJn/sAC7/7AAvQALAL7/sADH/6sAyP/AAMn/sADM/9UA7f+qAPL/rwD3/7ABA/+wAQT/rwEY/9YBGgALARz/4gEe/7ABIAAMASL/sAFC/7ABUf+vAWD/sAFh/7ABYwALAWUACwFr/7ABcP+vAYQADQGFAA0BhwANAYgADQGJAA0B0wANAdYADQHYAA4B2f/1Adv/7AHd/+0B5f/sAev/vwHs/+0B7f+/AfQADgH1/+0B+AAOAhAADgIR/+0CEgANAhQADgIa/+0CMf/uAjP/vwKa//ACm//wApz/8AKd//ACnv/wAp//8AKg//ACof+wAqL/sAKj/7ACpP+wAqX/sAKr/9YCrP/WAq3/1gKu/9YCr//WArQACwK1AAsCt//wArn/8AK7//ACvf+wAr//sALB/7ACw/+wAsX/sALH/7ACyf+wAsv/sALN/7ACz/+wAtH/sALT/7AC1f+wAtf/sAL5/9YC+//WAv3/1gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/7ADpP/WA6YACwOq/9YDw//wA8T/sAPG/9YDyP+wA8kACwPL/7AD0gALA9oACwPbAA0D3AANA98ADQPj//AD5v+wA+sACwPs/7AD8f+wA/MACwP5//AD+//wA///sAQB/7AEAv+wBAz/1gQO/7AEEP/WBBQACwQWAAsEGAALBB3/sAQf//AEIf/wBCP/8AQl//AEJ//wBCn/8AQr//AELf/wBC//8AQx//AEM//wBDX/8AQ3/7AEOf+wBDv/sAQ9/7AEP/+wBEH/sARD/7AERf+wBEv/1gRN/9YET//WBFH/1gRT/9YEVf/WBFf/1gRZ/7AEW/+wBF3/sARf/9YEYf+wBHEACwRzAAsEdQALBJr/8ASc/7AEoP/WBKn/sASr/7AEwwALBMUACwTL/78Ez//tBNAADQTS/78E3gANBOEADQTq/78E8f/tBPT/7QT1AA4E+f/tBPoADQAOAO0AFADyABAA9v/wAPn/8AEBAAwBBAAQATr/8AFI//ABSv/mAVEAEAFt//ABcAAQBBr/8AR6//AATQBHAAwASAAMAEkADABLAAwAVQAMAJQADACZAAwAuwAMAMgADADJAAwA7QA6APIAGAD2/+MA9wAMAPn/9wEDAAwBBAAYAR4ADAEiAAwBOv/iAUIADAFI//cBSv/jAVEAGAFgAAwBYQAMAWsADAFt/+MBcAAYAqEADAKiAAwCowAMAqQADAKlAAwCvQAMAr8ADALBAAwCwwAMAsUADALHAAwCyQAMAssADALNAAwCzwAMAtEADALTAAwC1QAMAtcADAOeAAwDxAAMA8gADAPLAAwD5gAMA+wADAPxAAwD/wAMBAEADAQCAAwEDgAMBBr/9wQdAAwENwAMBDkADAQ7AAwEPQAMBD8ADARBAAwEQwAMBEUADARZAAwEWwAMBF0ADARhAAwEev/3BJwADASpAAwEqwAMACIAWv/0AFz/8ABd//QAvf/0AO3/7wDu//AA8v/zAQT/8wEa//QBNP/wAUT/8AFR//MBXv/wAXD/8wK0//QCtf/0AyP/9AOm//QDyf/0A8r/8APS//QD2v/0A+v/9APz//QD9v/wBAT/8AQU//QEFv/0BBj/9ARx//QEc//0BHX/9ATD//QExf/0AAoABv/WAAv/1gGE/9YBhf/WAYf/1gGI/9YBif/WA9v/1gPc/9YD3//WAAgA9v+6AQn/zwEg/9sBOv9QAUr/nQFj//ABZf/yAW3/TAAKAAb/9QAL//UBhP/1AYX/9QGH//UBiP/1AYn/9QPb//UD3P/1A9//9QAoAEwAIABPACAAUAAgAFP/gABX/5AAWwALARj/gAHB/5ACq/+AAqz/gAKt/4ACrv+AAq//gAL5/4AC+/+AAv3/gAMF/5ADB/+QAwn/kAML/5ADDf+QA6T/gAOq/4ADxv+AA83/kAQM/4AEEP+ABEv/gARN/4AET/+ABFH/gART/4AEVf+ABFf/gARf/4AEoP+ABK0AIASvACAEsQAgBL7/kAATAdP/7gHV//UB1v/xAdj/8gH0//IB+P/yAhD/8gIS/+4CFP/yA0z/7gN4//IDgP/1A4H/7gOC/+4E0P/uBN7/7gTh/+4E9f/yBPr/7gATAdP/5QHV//EB1v/rAdj/6QH0/+kB+P/pAhD/6QIS/+UCFP/pA0z/5QN4/+kDgP/xA4H/5QOC/+UE0P/lBN7/5QTh/+UE9f/pBPr/5QADAdX/9QHW/+4DgP/1AAIB1v+3Adv/8AABAFsACwAEAA3/5gBB//QAYf/vAU3/7QAXALj/1AC+//AAwv/tAMQAEQDK/+AAzP/nAM3/5QDO/+4A2QASAOr/6QD2/9cBOv/XAUr/0wFM/9YBTf/FAVj/5wFiAA0BZAAMAW3/1gFu//IB2//pAeX/5wIx/+kAAQEc//EAEgDZ/64A5gASAOv/4ADt/60A7//WAP3/3wEB/9IBB//gARz/zgEu/90BMP/iATj/4AFA/+ABSv/pAU3/2gFf/70Baf/fAWwAEQACAPb/9QGF/7AAAgDt/8kBHP/uAAkA5v/DAPb/zwE6/84BSf/nAUz/3wFi/9EBZP/sAWz/oAFt/9EALwBW/20AW/+MAG39vwB8/n0Agf68AIb/KwCJ/0sAuP9hAL7/jwC//w8Aw/7oAMb/HwDH/uUAyv9GAMz+7QDN/v0Azv7ZANn/UgDmAAUA6v+9AOv/SQDt/v4A7/8TAPb/aAD9/w4A//8TAQH/BwEH/w4BCf8RARz/PAEg/6wBLv8VATD/PAE4/w4BOv9qAUD/SQFK/wwBTP8/AU3+8QFY/8ABX/7vAWP/MQFl/18Baf8KAWwABQFt/zABbv/VAB4ACv/iAA0AFAAO/88AQQASAEr/6gBW/9gAWP/qAGEAEwBt/64AfP/NAIH/oACG/8EAif/AALj/0AC8/+oAvv/uAL//xgDAAA0Awv/pAMP/1gDG/+gAx/+6AMr/6QDM/8sAzf/aAM7/xwGN/9MB2//LAeX/ywIx/80AFwAj/8MAWP/vAFv/3wCa/+4AuP/lALn/0QDEABEAyv/IANkAEwDm/8UA9v/KATr/nwFJ/1EBSv97AUz/ygFN/90BWP/yAWL/dQFk/8oBbP9PAW3/jAHW/80B5f/1AAcA9v/wAQn/8QEg//MBOv/xAWP/8wFl/+kBbf/TAAMASv/uAFv/6gHW//AACQDK/+oA7f+4APb/6gEJ//ABIP/xATr/6wFj//UBbf/sAYX/sAACAREACwFs/+YAEgBb/8EAuP/FAMr/tADq/9cA9v+5AQn/sgEc/9IBIP/IATr/oAFK/8UBWP/kAWP/zAFl/8wBbf/LAW7/7wHb/+cB5f/mAjH/6AAFAFv/pAHW/1QB2//xAeX/8QIx//MACADZABUA7QAVAUn/5AFK/+UBTP/kAWL/4wFk/+IBbP/kAAIA9v/AAYX/sAAIAFgADgCB/58Avv/1AMT/3gDH/+UA2f+oAO3/ygFf/+MABQDK/+oA7f/uAPb/sAE6/+wBbf/sAAMASgAPAFgAMgBbABEAMwAE/9gAVv+1AFv/xwBt/rgAfP8oAIH/TQCG/44Aif+hALj/rgC+/8kAv/9+AMP/ZwDG/4cAx/9lAMr/ngDM/2oAzf9zAM7/XgDZ/6UA5gAPAOr/5ADr/6AA7f90AO//gAD2/7IA/f99AP//gAEB/3kBB/99AQn/fwEc/5gBIP/aAS7/gQEw/5gBOP99ATr/swFA/6ABSv98AUz/mgFN/2wBWP/mAV//awFj/5IBZf+tAWn/ewFsAA8Bbf+RAW7/8gHb/7kB5f+5AjH/uQAHAA0AFABBABEAVv/iAGEAEwHb/9kB5f/ZAjH/2QAHAEoADQC+//UAxgALAMf/6gDKAAwA7f/IARz/8QAHAA0ADwBBAAwAVv/rAGEADgHb/+cB5f/nAjH/6QAGAFv/5QC4/8sAzf/kAdv/7AHl/+sCMf/tAAcAgf/fALX/8wC3//AAxP/qANn/3wDm/+ABbP/gAAEB2//rAAQB1v/HAdv/8gHl//ICMf/yAAEB1v/xAAEB1gANAAILDAAEAAAOrBdoACYAJQAAAAAAAAAAAAAAAAASAAAAAAAAAAD/4//kAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAABEAAAARAAAAAAAAAAD/5P/lAAAAAAAAAAAAAAAAAAAAAAAA/+sAAAAAAAAAAP/l/9X/7QAAAAAAAP/qAAD/6QAAAAAAAAAAAAD/4f+aAAD/9f/qAAAAAAAAAAAAAAAAAAAAAAAA//UAAP/0//UAAAAA//X/zv/v/3//ogAAAAAADAAAAAD/8QAA/4gAAP+7/8T/xwARAAAAEgAA/6kAAAAA/8n/jwAAAAD/3QAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAP/wAAAAAAAAAAD/eP/rAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/tAAAAAP/t/+8AAAAAAAD/5gAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAAAAAAAAAD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAA//EAAAAAAAAAAP/j//EAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAAAAAAAAAAAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAAAA//EAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAD/lf/XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+oAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/m/+H/6f/l/+kAAAAA/+f/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAD/owAAAAAAAAAA/7//4//Y/7//2f+i/7f/y//s/6AAEQAS/6v/xv/i//AADQAAAAAAAP/pABEAAP/zAAD/LQAA/+8AEgAA/8wAAAAAAAD/oP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/q/+4AAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAP+d/+T/k/+d/6H/sf+P/7n/uAAAABAAEP+v/4z/xP/wAAAAAAAAAAD/swAPAAD/8f/L/yb/fv/tABD/vP8YAAD/fAAA/xD/8QAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAD/v//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAD/8AAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/r/+YAAP/r/+0ADQAA/+z/5QAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+b/5wAA/+v/6wAAAAD/5//hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAAADgAA/9IAAP/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAA/+wAAAAA/9gAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAD/hQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAD/8wAA/3b/9QAAAA8AAAAAAAD/xgAAAAAAAP/hAAD/5gAAAAAAAAAAAAD/yf68/9kAAAAAAAAAAAAAAAAAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vwAAAAD/1AATAAD/8v97/8r+7f8RABMAAAAAAAAAAP/aAAD+sAAA/3H/P/87AAAAAAAAAAD/UQAAAAAAAAAAAAAAAP+RAAD/xQAA/+z/wwAA/4j/zgAAAAAAAAAAAAAAAP+wAAAAAAAAAAAAAP+VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAAAAAAAAAAAAAAAAAAAAAAA/+EAAAAA/+H/7f/V/9//5wAAAAAADgAA/8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/hQAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/l/8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/oAAAAAAAAAAD/8wAAAAAAAP/U//MAAP/S/+T/tf/S/9n/9QAAAAAAAP+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x8AAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/90AAAAAAAAAAAAAAAAAAAAAAAAAAP95//UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vX/rQAAAAAAAAAA//AAAAAA/8D/yQAAAAAAAP/1AAAAAAAA/8gAAAAA/+cAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/VgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RP+9/zP/RP9L/z7/LAAA/3IAAAAHAAcAAP8n/4b/0QAAAAAAAAAA/2oABQAAAAD/kv56/w8AAAAHAAD+YgAA/wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7wAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAD/tP+7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VAAD/vf/p/5r/vQAA/6X/kQAAAAAAAAASABIAAP/SAAAAAAAAAAAAAAAAAAAAAAAAAAD/yv5t/7sAAAAAAAD/iQAA/+kAAAAAAAAAAgCaAAYABgAAAAsACwABABAAEAACABIAEgADACUAKQAEACwANAAJADgAPgASAEUARwAZAEkASQAcAEwATAAdAFEAVAAeAFYAVgAiAFoAWgAjAFwAXgAkAIoAigAnAJYAlgAoALEAtAApAL0AvQAtAMEAwQAuAMcAxwAvANQA1QAwANcA1wAyANoA2gAzANwA3gA0AOAA5gA3AOwA7AA+AO4A7gA/APcA9wBAAPwA/ABBAP4A/wBCAQQBBQBEAQoBCgBGAQ0BDQBHARgBGgBIAS4BMABLATMBNQBOATcBNwBRATkBOQBSATsBOwBTAUMBRABUAVQBVABWAVYBVgBXAVgBWABYAVwBXgBZAYQBigBcAY4BjwBjAdgB2ABlAd0B3QBmAeAB4QBnAesB7QBpAf8B/wBsAg4CEABtAjACMABwAjMCMwBxAkUCRQByAkcCSABzAnoCewB1An0CfQB3An8CpQB4AqoCrwCfArQCxAClAsYCzwC2AtgC2gDAAtwC3ADDAt4C3gDEAuAC4ADFAuIC4gDGAuUC5QDHAucC5wDIAukC6QDJAusC6wDKAu0C7QDLAu8C7wDMAvEC/QDNAv8C/wDaAwEDAQDbAwMDAwDcAw4DDgDdAxADEADeAxIDEgDfAxQDFADgAxYDFgDhAxgDGADiAxoDGgDjAxwDHADkAx4DHgDlAyADIADmAyIDKgDnAy8DOADwA0MDRwD6A00DTwD/A1QDVAECA2UDaQEDA20DbwEIA3gDeAELA4YDiwEMA44DnQESA6ADoAEiA6QDpAEjA6YDpgEkA6oDqgElA60DrgEmA7ADuQEoA7sDvQEyA78DxAE1A8YDzAE7A9ID0wFCA9UD1QFEA9cD1wFFA9kD3AFGA98D5AFKA+YD5gFQA+oD6wFRA/AD+wFTA/4D/wFfBAEEBAFhBAsEDAFlBBAEEAFnBBIEGAFoBB4ERgFvBEgESAGYBEoEVwGZBF8EXwGnBGIEYgGoBGQEZAGpBHAEdQGqBHcEdwGwBHsEfAGxBH8EfwGzBIEEggG0BIQEhAG2BIYEhgG3BJcEmwG4BJ0EnQG9BJ8EoAG+BKIEogHABKYEqAHBBKoEqgHEBKwErgHFBLAEsAHIBLIEsgHJBLQEugHKBLwEvAHRBL8EvwHSBMEExgHTBMgEywHZBM8EzwHdBNIE0gHeBNgE2AHfBN0E3QHgBOgE6AHhBOoE6gHiBPEE8QHjBPUE9QHkAAIBdAAGAAYAGQALAAsAGQAQABAAIQASABIAIQAlACUAAgAmACYAHAAnACcAEwAoACgAAQApACkABQAuAC4ACgAvAC8ACwAwADAAGAAzADMAAQA0ADQAFgA4ADgADgA5ADkACgA6ADoAHQA7ADsAGwA8ADwAEgA9AD0ADAA+AD4AEQBFAEUABgBGAEYABwBHAEcAFwBJAEkACABMAEwABABRAFIABABTAFMAAwBUAFQABwBWAFYAFQBaAFoACQBcAFwAFABdAF0ACQBeAF4AEACKAIoABwCWAJYAAQCxALEAIgCyALIAAgCzALMAAQC0ALQAAgC9AL0ACQDBAMEABADHAMcABwDUANUAIADaANoAEgDeAN4AJQDkAOQAIADmAOYAIADsAOwAGgDuAO4AFAD3APcABwD8APwAHwD+AP4AHwD/AP8ABwEEAQUAHwEKAQoAHwENAQ0AAgEYARgAAwEZARkAHQEaARoACQEuAS4ABwEvAS8AIgEwATAAGgEzATMAEgE0ATQAFAE1ATUACwE3ATcACwE5ATkACwFDAUMAEgFEAUQAFAFYAVgAAQFcAVwAGgFdAV0AEgFeAV4AFAGEAYUAGQGGAYYAIQGHAYkAGQGKAYoAIQGOAY8AIQHYAdgAIwHdAd0ADQHgAeAAJAHhAeEAHgHrAesADwHsAewADQHtAe0ADwH/Af8AHgIOAhAAHgIwAjAADQIzAjMADwJFAkUAEwJHAkgAAQJ6AnsAAQJ9An0ADgJ/AoUAAgKGAoYAEwKHAooABQKQApQAAQKVApgACgKZApkADAKaAqAABgKhAqEAFwKiAqUACAKqAqoABAKrAq8AAwK0ArUACQK2ArYAAgK3ArcABgK4ArgAAgK5ArkABgK6AroAAgK7ArsABgK8ArwAEwK9Ar0AFwK+Ar4AEwK/Ar8AFwLAAsAAEwLBAsEAFwLCAsIAEwLDAsMAFwLEAsQAAQLGAsYABQLHAscACALIAsgABQLJAskACALKAsoABQLLAssACALMAswABQLNAs0ACALOAs4ABQLPAs8ACALZAtkABALlAuUACgLnAucACwLpAukAGALrAusAGALtAu0AGALvAu8AGALyAvIABAL0AvQABAL2AvcABAL4AvgAAQL5AvkAAwL6AvoAAQL7AvsAAwL8AvwAAQL9Av0AAwL/Av8AFQMBAwEAFQMDAwMAFQMOAw4ADgMQAxAADgMSAxIADgMUAxQACgMWAxYACgMYAxgACgMaAxoACgMcAxwACgMeAx4ACgMgAyAAGwMiAyIADAMjAyMACQMkAyQADAMlAyUAEQMmAyYAEAMnAycAEQMoAygAEAMpAykAEQMqAyoAEAMvAzAADQMxAzEAIwMyAzgADwNDA0cADQNNA08ADwNUA1QADQNlA2UAHgNmA2kAJANtA28ADQN4A3gAIwOGA4YAAgOHA4cABQOKA4oAAQOLA4sADAOOA44AAgOPA48AHAOQA5AABQORA5EAEQOUA5QACwOXA5cAAQOYA5gAFgOZA5kADgOaA5oADAObA5sAEgOdA50ADAOgA6AABAOkA6QAAwOmA6YACQOqA6oAAwOtA60ABQOuA64AIgOyA7IACgOzA7QACwO1A7UAJQO2A7YAAgO3A7cAHAO4A7gAIgO5A7kABQO9A70AAQO/A78AFgPAA8AAEwPBA8EADgPCA8IAEgPDA8MABgPEA8QACAPGA8YAAwPHA8cABwPIA8gAFwPJA8kACQPKA8oAFAPLA8sACAPMA8wAGgPSA9IACQPTA9MAGwPVA9UAGwPXA9cAGwPZA9kADAPaA9oACQPbA9wAGQPfA98AGQPhA+EABAPiA+IAAgPjA+MABgPkA+QABQPmA+YACAPqA+oAHQPrA+sACQPwA/AAEwPxA/EAFwPyA/IADAPzA/MACQP1A/UAEgP2A/YAFAP4A/gAAgP5A/kABgP6A/oAAgP7A/sABgP+A/4ABQP/A/8ACAQBBAIACAQDBAMAEgQEBAQAFAQLBAsAAQQMBAwAAwQQBBAAAwQSBBIABwQTBBMAJQQUBBQACQQVBBUAJQQWBBYACQQXBBcAJQQYBBgACQQeBB4AAgQfBB8ABgQgBCAAAgQhBCEABgQiBCIAAgQjBCMABgQkBCQAAgQlBCUABgQmBCYAAgQnBCcABgQoBCgAAgQpBCkABgQqBCoAAgQrBCsABgQsBCwAAgQtBC0ABgQuBC4AAgQvBC8ABgQwBDAAAgQxBDEABgQyBDIAAgQzBDMABgQ0BDQAAgQ1BDUABgQ2BDYABQQ3BDcACAQ4BDgABQQ5BDkACAQ6BDoABQQ7BDsACAQ8BDwABQQ9BD0ACAQ+BD4ABQQ/BD8ACARABEAABQRBBEEACARCBEIABQRDBEMACAREBEQABQRFBEUACARKBEoAAQRLBEsAAwRMBEwAAQRNBE0AAwROBE4AAQRPBE8AAwRQBFAAAQRRBFEAAwRSBFIAAQRTBFMAAwRUBFQAAQRVBFUAAwRWBFYAAQRXBFcAAwRfBF8AAwRiBGIACgRkBGQACgRwBHAADARxBHEACQRyBHIADARzBHMACQR0BHQADAR1BHUACQR3BHcADgR7BHsAIgR8BHwAGgR/BH8ABASBBIEAIASCBIIAIgSEBIQACwSGBIYADASYBJgABASZBJkAAgSaBJoABgSbBJsABQSfBJ8AAQSgBKAAAwSiBKIAFQSmBKYAHASnBKcABwSoBKgAAQSqBKoAAQStBK0ABASuBK4ACwSwBLAACwSyBLIAGAS1BLUABAS3BLcABAS4BLgAAQS5BLkAFgS6BLoABwS8BLwAFQS/BL8ADgTBBMEACgTCBMIAHQTDBMMACQTEBMQAHQTFBMUACQTGBMYAGwTIBMgAEQTJBMkAEATKBMoAAQTLBMsADwTPBM8ADQTSBNIADwTYBNgAHgTdBN0AIwToBOgAHgTqBOoADwTxBPEADQT1BPUAIwABAAYE9QAUAAAAAAAAAAAAFAAAAAAAAAAAABoAHwAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAIAAAAAACMAAAAAAAAAAAACAAAAAgAAABAACwAKAB0AFgARAAwAEwAAAAAAAAAAAAAAAAAHAAAAAQABAAEAAAABAAAAAAAAAAAAAAADAAMABAADAAEAAAAOAAAABQAJAAAAFQAJAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAgABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAgAGAAAAAAAAAAAAAAAAAAEAAAAJAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQABAAAABQAAAAAAAAAAAAAAAAALAAIAGQAAAAsAAAAAAAAAEQAAAAAAGQAiAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABUAAAADAAMAGwADAAMAAwAAAAEAAwAhAAMAAwAAAAAAAwAAAAMAAAAAAAEAGwADAAAAAAACAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAACAAQAHQAJAAIAAAACAAEAAgAAAAIAAQAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABEAFQAAAAMAAAAAAAsAAAAAAAMAAAADAAAAAAACAAEAEQAVAAsAAAAgACEAAAAAAAAAAAAAAAAAAAAZABsAAAADAAAAAwAAAAMAAAAAAAAAAAADABEAFQAAAAEAAQAAAAAAAAAAABkAAAAAAAAAAgABAAAAAAAAABkAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwAAABQAFAAaABQAFAAUABoAAAAAAAAAGgAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcACQAAAASABgAHgAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADQAIAA0AAAAAAAAAAAAAAAAAGAAIAAAAAAAYAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYAAgAFwAcABgAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAGAAYABgAGAAYABgAGAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAoACgAKAAoADAAHAAcABwAHAAcABwAHAAEAAQABAAEAAQAAAAAAAAAAAAMABAAEAAQABAAEAAUABQAFAAUACQAJAAYABwAGAAcABgAHAAIAAQACAAEAAgABAAIAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQACAAEAAgABAAIAAQACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwADAAIABAACAAQAAgAEAAAAAAAAAAAAAAAAABAADgAQAA4AEAAOABAADgAQAA4ACwAAAAsAAAALAAAACgAFAAoABQAKAAUACgAFAAoABQAKAAUAFgAAAAwACQAMABMADwATAA8AEwAPAAAAAAACAAAAAAAAAAAADQANAA0ADQANAA0ADQAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAASABIAEgASABcADQANAA0ACAAIAAgACAAAAAAAAAAAAAAAAAAIAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAAAAAAAAB4AHgAeAB4AAAAYAAAAEgASABIAEgASABIAJAAXABcAAAAAAAAABgAAAAAAAAACAAwAAAAAAAYAAAAAABMAAAAAAAAAAAAAAAIAAAAAAAwAEQAAAAwAAQAAAAMAAAAFAAAABAAAAAkAAAAAAAUABAAFAAAAAAAAAAAAAAAAACMAAAAAACIABgAAAAAAAAAAAAAAAAACAAAAAAACAAsAEQAHAAEAAwAEAAMAAQAJABUAAQADAA4AAAAAAAAAAwAJABYAAAAWAAAAFgAAAAwACQAUABQAAAAAABQAAAADAAYABwAAAAAAAQADAAAAAAAdAAkAAQACAAAAAAACAAEADAAJAAAAEQAVAAAABgAHAAYABwAAAAAAAAABAAAAAQABABEAFQAAAAAAAAADAAAAAwACAAQAAgABAAIABAAAAAAAIgAJACIACQAiAAkAIAAhAAAAAwABAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgABAAIAAQACAAEAAgAEAAIAAQAKAAUACgAFAAAABQAAAAUAAAAFAAAABQAAAAUADAAJAAwACQAMAAkAAAALAAAAIAAhAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAYABwAAAAEAAAAAAAIABAAAAAAAAAAFAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAgAAAAAAAAAAABAADgALAAAACgAdAAkAHQAJABYAAAATAA8AAAANAAAAAAAAAAgAFwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAHAAAABcAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAACAAAAAAACAAYABwAAAAAAAgAFwABAAAACgFiApIABERGTFQAGmN5cmwAGmdyZWsAGmxhdG4ASAAEAAAAAP//ABIAAAABAAIAAwAEAAgADAANAA4ADwAQABEAEgATABQAFQAWABcALgAHQVpFIADkQ1JUIADkRlJBIABaTU9MIAC2TkFWIACIUk9NIAC2VFJLIADkAAD//wATAAAAAQACAAMABAAHAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAJAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAoADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABMAAAABAAIAAwAEAAUACAAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYYzJzYwCSY2NtcACYZGxpZwCgZG5vbQCmZnJhYwCsbGlnYQC2bGlnYQC8bGlnYQDIbG51bQDQbG9jbADWbG9jbADcbG9jbADibnVtcgDob251bQDucG51bQD0c21jcAD6c3MwMQEAc3MwMgEGc3MwMwEMc3MwNAESc3MwNQEYc3MwNgEec3MwNwEkdG51bQEqAAAAAQAAAAAAAgACAAQAAAABAAoAAAABABgAAAADABYAFwAZAAAAAQAJAAAABAAIAAkACAAJAAAAAgAIAAkAAAABABUAAAABAAcAAAABAAUAAAABAAYAAAABABkAAAABABIAAAABABMAAAABAAEAAAABAAsAAAABAAwAAAABAA0AAAABAA4AAAABAA8AAAABABAAAAABABEAAAABABQAGgA2BDAH7gigCMoPbg+ED64Pwg/mEBAQTBBgEHQQiBCaELQQ9hEUEWYRrBIOEmwSgBKwEtIAAQAAAAEACAACAfoA+gHnAnEB0QHQAc8BzgHNAcwBywHKAckByAIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB6AHpAnMCdQJ0AnYCcgJ3AlIB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4CAAIBBP4CAgIDAgQCBQIGAgcCCAIJAgoCCwI7Ag0CDgIPAhAE+AIRAhMCFAIVAhYCFwIYAhkCGwIcAh4CHQMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2ME/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UFAAUBBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wH/BOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BQMFBAUFBQYE9wT5BPoE/AIaBP0E+wIMAhIFCwUMAAEA+gAIAAoAFAAVABYAFwAYABkAGgAbABwAHQAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4AZQBnAIEAgwCEAIwAjwCRAJMAsQCyALMAtAC1ALYAtwC4ALkAugDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QEvATMBNQE3ATkBOwFBAUMBRQFJAUsBTAFYAVkBlwGdAaIBpQJ6AnsCfQJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQK2ArgCugK8Ar4CwALCAsQCxgLIAsoCzALOAtAC0gLUAtYC2ALaAtwC3gLgAuIC4wLlAucC6QLrAu0C7wLxAvMC9QL4AvoC/AL+AwADAgMEAwYDCAMKAwwDDgMQAxIDFAMWAxgDGgMcAx4DIAMiAyQDJQMnAykDKwMtA4YDhwOIA4kDigOLA4wDjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA9MD1QPXA9kD7gPwA/IEBwQNBBMEfQSCBIYFBwUJAAEAAAABAAgAAgHcAOsCcQIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdICZAJzAzACdQJ0Ay8B4wJyAncCUgTSBNMB6gHrBNQE1QTWAewE1wHtAe4B7wTcAfAB8ATdBN4B8QHyAfMB+gTrBOwB+wH8Af0B/gH/AgAE7wTwBPIE9QT+AgICAwIEAgUCBgIHAggCCQIKAgsB9AH1AfYB9wH4AfkCOwINAg4CDwIQBPgCEQITAhQCFQIXAhkCdgMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA4IDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgT/A2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1BQIDdgN3A3kDeAN6A3sDfAN9A34DfwOAA4EDgwOEA4UFAAUBBMsEzATNBM4E2ATbBNkE2gTfBOAE4QTPBNAE0QTqBO0E7gTxBPME9AIBBPYE4gTjBOQE5QTmBOcE6ATpBQMFBAUFBQYE9wT5BPoCGAT8AhoE/QT7AhYCDAISBQsFDAABAOsACgBFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AhQCGAIcAiQCKAIsAjQCQAJIAlAC7ALwAvQC+AL8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4A6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wEAAQEBAgEDAQQBBQEGAQcBMAE0ATYBOAE6ATwBQgFEAUYBSgFNAVoCfAJ+ApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtwK5ArsCvQK/AsECwwLFAscCyQLLAs0CzwLRAtMC1QLXAtkC2wLdAt8C4QLkAuYC6ALqAuwC7gLwAvIC9AL2AvkC+wL9Av8DAQMDAwUDBwMJAwsDDQMPAxEDEwMVAxcDGQMbAx0DHwMhAyMDJgMoAyoDLAMuA54DnwOgA6EDowOkA6UDpgOnA6gDqQOqA6sDrAPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9QD1gPYA9oD7wPxA/MEAQQIBA4EFAR+BH8EgwSHBQgFCgAGAAAABgASACoAQgBaAHIAigADAAAAAQASAAEAkAABAAAAAwABAAEATQADAAAAAQASAAEAeAABAAAAAwABAAEATgADAAAAAQASAAEAYAABAAAAAwABAAEC4QADAAAAAQASAAEASAABAAAAAwABAAEDzgADAAAAAQASAAEAMAABAAAAAwABAAED0AADAAAAAQASAAEAGAABAAAAAwABAAEESQACAAIAqACsAAABJAEnAAUAAQAAAAEACAACABIABgJhAl8CYgJjAmAFDQABAAYATQBOAuEDzgPQBEkABAAAAAEACAABBjIANgByAKQArgC4AMoA/AEOARgBSgFkAX4BkAG6AfYCAAIiAjwCTgKKApwCtgLgAvIDJAMuAzgDSgN8A4YDkAOaA7QDzgPgBAoEPARGBGgEggSUBMYE2ATyBRwFLgU4BUIFTAVWBYAFqgXUBf4GKAAGAA4AFAAaACAAJgAsAoAAAgCpBB4AAgCtAn8AAgCoBCAAAgCrAoIAAgCqBJkAAgCsAAEABASmAAIArQABAAQCvAACAKkAAgAGAAwEqgACAboEqAACAK0ABgAOABQAGgAgACYALAKIAAIAqQQ2AAIArQKHAAIAqAQ4AAIAqwQ6AAIAqgSbAAIArAACAAYADASVAAIAqQLWAAIBugABAAQErAACAK0ABgAOABQAGgAgACYALAKMAAIAqQRIAAIArQKLAAIAqARGAAIAqwLaAAIAqgSdAAIArAADAAgADgAUBK4AAgCpAucAAgG6BLAAAgCtAAMACAAOABQC6QACAKkC6wACAboEsgACAK0AAgAGAAwD4AACAKkEtAACAK0ABQAMABIAGAAeACQC8QACAKkC8wACAboEtgACAK0ElwACAKgCjwACAKoABwAQABgAHgAkACoAMAA2BLgAAwCqAKkCkQACAKkESgACAK0CkAACAKgETAACAKsCkwACAKoEnwACAKwAAQAEBLkAAgCpAAQACgAQABYAHAL+AAIAqQMAAAIBugS7AAIArQShAAIArAADAAgADgAUAwQAAgCpAwoAAgG6BL0AAgCtAAIABgAMAw4AAgG6BL8AAgCtAAcAEAAYAB4AJAAqADAANgTBAAMAqgCpApYAAgCpBGIAAgCtApUAAgCoBGQAAgCrAxQAAgCqBKMAAgCsAAIABgAMBMQAAgCtBMIAAgCqAAMACAAOABQD1QACAKkExgACAK0D0wACAKgABQAMABIAGAAeACQCmQACAKkEcAACAK0D2QACAKgEcgACAKsEdAACAKoAAgAGAAwDJQACAKkEyAACAK0ABgAOABQAGgAgACYALAKbAAIAqQQfAAIArQKaAAIAqAQhAAIAqwKdAAIAqgSaAAIArAABAAQEpwACAK0AAQAEAr0AAgCpAAIABgAMBKsAAgG6BKkAAgCtAAYADgAUABoAIAAmACwCowACAKkENwACAK0CogACAKgEOQACAKsEOwACAKoEnAACAKwAAQAEBJYAAgCpAAEABAStAAIArQABAAQESQACAK0AAwAIAA4AFASvAAIAqQLoAAIBugSxAAIArQADAAgADgAUAuoAAgCpAuwAAgG6BLMAAgCtAAIABgAMA+EAAgCpBLUAAgCtAAUADAASABgAHgAkAvIAAgCpAvQAAgG6BLcAAgCtBJgAAgCoAqoAAgCqAAYADgAUABoAIAAmACwCrAACAKkESwACAK0CqwACAKgETQACAKsCrgACAKoEoAACAKwAAQAEBLoAAgCpAAQACgAQABYAHAL/AAIAqQMBAAIBugS8AAIArQSiAAIArAADAAgADgAUAwUAAgCpAwsAAgG6BL4AAgCtAAIABgAMAw8AAgG6BMAAAgCtAAYADgAUABoAIAAmACwCsQACAKkEYwACAK0CsAACAKgEZQACAKsDFQACAKoEpAACAKwAAgAGAAwExQACAK0EwwACAKoAAwAIAA4AFAPWAAIAqQTHAAIArQPUAAIAqAAFAAwAEgAYAB4AJAK0AAIAqQRxAAIArQPaAAIAqARzAAIAqwR1AAIAqgACAAYADAMmAAIAqQTJAAIArQABAAQDKwACAKkAAQAEAy0AAgCpAAEABAMsAAIAqQABAAQDLgACAKkABQAMABIAGAAeACQCpwACAKkCpgACAKgERwACAKsC2wACAKoEngACAKwABQAMABIAGAAeACQEWAACAKkEYAACAK0EWgACAKgEXAACAKsEXgACAKoABQAMABIAGAAeACQEWQACAKkEYQACAK0EWwACAKgEXQACAKsEXwACAKoABQAMABIAGAAeACQEZgACAKkEbgACAK0EaAACAKgEagACAKsEbAACAKoABQAMABIAGAAeACQEZwACAKkEbwACAK0EaQACAKgEawACAKsEbQACAKoAAQAEBKUAAgCpAAIAEQAlACkAAAArAC0ABQAvADQACAA2ADsADgA9AD4AFABFAEkAFgBLAE0AGwBPAFQAHgBWAFsAJABdAF4AKgCBAIEALACDAIMALQCGAIYALgCJAIkALwCNAI0AMACYAJsAMQDQANAANQABAAAAAQAIAAEABgACAAEAAgMIAwkAAQAAAAEACAACABIABgUHBQgFCQUKBQsFDAABAAYCugK7AswCzQNPA1gAAQAAAAEACAABAAYAAQABAAEBewAEAAAAAQAIAAEAQAABAAgAAgAGAA4BvgADAEoATQG8AAIATQAEAAAAAQAIAAEAHAABAAgAAgAGAA4BvwADAEoAUAG9AAIAUAABAAEASgAEAAAAAQAIAAEAKgADAAwAFgAgAAEABAG7AAIASgABAAQBwQACAFgAAQAEAcAAAgBYAAEAAwBKAFcAlQABAAAAAQAIAAEABgHeAAEAAQBLAAEAAAABAAgAAQAGAW8AAQABALsAAQAAAAEACAABAAYB9QABAAEANgABAAAAAQAIAAIAHAACAiwCLQABAAAAAQAIAAIACgACAi4CLwABAAIALwBPAAEAAAABAAgAAgAeAAwCRQJHAkYCSAJJAmcCaAJpAmoCawJsAm0AAQAMACcAKAArADMANQBGAEcASABLAFMAVABVAAEAAAABAAgAAgAMAAMCbgJvAm8AAQADAEkASwJqAAEAAAABAAgAAgAuABQCWgJeAlgCVQJXAlYCWwJZAl0CXAJPAkoCSwJMAk0CTgAaABwCUwJlAAIABAAUAB0AAAJmAmYACgJwAnAACwSNBJQADAABAAAAAQAIAAIALgAUBJQCcASNBI4EjwSQBJECZgSSBJMCTAJOAk0CSwJPAmUAGgJTABwCSgACAAIAFAAdAAACVQJeAAoAAQAAAAEACAACAC4AFAJbAl0CXgJYAlUCVwJWAlkCXAJaABsAFQAWABcAGAAZABoAHAAdABQAAQAUABoAHAJKAksCTAJNAk4CTwJTAmUCZgJwBI0EjgSPBJAEkQSSBJMElAABAAAAAQAIAAIALgAUBJEEkgJwBI0EjgSPBJACZgSTABcAGQAYABYAGwAUABoAHQAcABUElAACAAYAGgAaAAAAHAAcAAECSgJPAAICUwJTAAgCVQJeAAkCZQJlABMAAQAAAAEACAABAAYBgQABAAEAEwAGAAAAAQAIAAMAAQASAAEAbAAAAAEAAAAYAAIAAwGUAZQAAAHFAccAAQIfAiUABAABAAAAAQAIAAIAPAAKAccBxgHFAh8CIAIhAiICIwIkAiUAAQAAAAEACAACABoACgI+AHoAcwB0Aj8CQAJBAkICQwJEAAIAAQAUAB0AAA==\"\n};"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/esm/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  var elementRect = void 0;\n  if (element.nodeName === 'HTML') {\n    var _getWindowSizes = getWindowSizes(element.ownerDocument),\n        width = _getWindowSizes.width,\n        height = _getWindowSizes.height;\n\n    elementRect = {\n      width: width,\n      height: height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement: computeAutoPlacement,\n  debounce: debounce,\n  findIndex: findIndex,\n  getBordersSize: getBordersSize,\n  getBoundaries: getBoundaries,\n  getBoundingClientRect: getBoundingClientRect,\n  getClientRect: getClientRect,\n  getOffsetParent: getOffsetParent,\n  getOffsetRect: getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes: getOuterSizes,\n  getParentNode: getParentNode,\n  getPopperOffsets: getPopperOffsets,\n  getReferenceOffsets: getReferenceOffsets,\n  getScroll: getScroll,\n  getScrollParent: getScrollParent,\n  getStyleComputedProperty: getStyleComputedProperty,\n  getSupportedPropertyName: getSupportedPropertyName,\n  getWindowSizes: getWindowSizes,\n  isFixed: isFixed,\n  isFunction: isFunction,\n  isModifierEnabled: isModifierEnabled,\n  isModifierRequired: isModifierRequired,\n  isNumeric: isNumeric,\n  removeEventListeners: removeEventListeners,\n  runModifiers: runModifiers,\n  setAttributes: setAttributes,\n  setStyles: setStyles,\n  setupEventListeners: setupEventListeners\n};\n\nexport { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };\nexport default index;\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/esm/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10) ? parseInt(html[`offset${axis}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width = sizes.width || element.clientWidth || result.width;\n  const height = sizes.height || element.clientHeight || result.height;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = isIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop);\n    const marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  const parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  const sortedAreas = Object.keys(rects).map(key => _extends({\n    key\n  }, rects[key], {\n    area: getArea(rects[key])\n  })).sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);\n\n  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n\nconst timeoutDuration = function () {\n  const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  let called = false;\n  return () => {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(() => {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  const getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired = !!requesting && modifiers.some(modifier => {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners\n};\n\nexport { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };\nexport default index;\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nconst timeoutDuration = function () {\n  const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  let called = false;\n  return () => {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(() => {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  const getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10) ? parseInt(html[`offset${axis}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width = sizes.width || element.clientWidth || result.width;\n  const height = sizes.height || element.clientHeight || result.height;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = isIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop);\n    const marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  const parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  const sortedAreas = Object.keys(rects).map(key => _extends({\n    key\n  }, rects[key], {\n    area: getArea(rects[key])\n  })).sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);\n\n  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  const placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  const { popper, reference } = data.offsets;\n  const { round, floor } = Math;\n  const noRound = v => v;\n\n  const referenceWidth = round(reference.width);\n  const popperWidth = round(popper.width);\n\n  const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  const isVariation = data.placement.indexOf('-') !== -1;\n  const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  const horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  const verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(data.instance.modifiers, modifier => modifier.name === 'applyStyle').gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  const gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position\n  };\n\n  const offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  const prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  let left, top;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = `${sideA}, ${sideB}`;\n  }\n\n  // Attributes\n  const attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired = !!requesting && modifiers.some(modifier => {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n  let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {\n    [side]: Math.round(sideValue),\n    [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nconst BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach((step, index) => {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    const flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    const flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    let size;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  const offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  const divider = fragments.indexOf(find(fragments, frag => frag.search(/,|\\s/) !== -1));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    let mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce((a, b) => {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(str => toValue(str, measurement, popperOffsets, referenceOffsets));\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((frag, index2) => {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  let boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return { [mainSide]: value };\n    }\n  };\n\n  order.forEach(placement => {\n    const side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement]\n      }\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(data.instance.modifiers, modifier => modifier.name === 'preventOverflow').boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: () => {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: () => {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nclass Popper {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  constructor(reference, popper, options = {}) {\n    this.scheduleUpdate = () => requestAnimationFrame(this.update);\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(name => {\n      this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(name => _extends({\n      name\n    }, this.options.modifiers[name]))\n    // sort the modifiers by order\n    .sort((a, b) => a.order - b.order);\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(this.reference, this.popper, this.options, modifierOptions, this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\n    return disableEventListeners.call(this);\n  }\n\n  /**\n   * Schedules an update. It will run on the next UI update available.\n   * @method scheduleUpdate\n   * @memberof Popper\n   */\n\n\n  /**\n   * Collection of utilities useful when writing custom modifiers.\n   * Starting from version 1.7, this method is available only if you\n   * include `popper-utils.js` before `popper.js`.\n   *\n   * **DEPRECATION**: This way to access PopperUtils is deprecated\n   * and will be removed in v2! Use the PopperUtils module directly instead.\n   * Due to the high instability of the methods contained in Utils, we can't\n   * guarantee them to follow semver. Use them at your own risk!\n   * @static\n   * @private\n   * @type {Object}\n   * @deprecated since version 1.8\n   * @member Utils\n   * @memberof Popper\n   */\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/umd/popper-utils.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.PopperUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nfunction getOffsetRect(element) {\n  var elementRect = void 0;\n  if (element.nodeName === 'HTML') {\n    var _getWindowSizes = getWindowSizes(element.ownerDocument),\n        width = _getWindowSizes.width,\n        height = _getWindowSizes.height;\n\n    elementRect = {\n      width: width,\n      height: height,\n      left: 0,\n      top: 0\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nvar index = {\n  computeAutoPlacement: computeAutoPlacement,\n  debounce: debounce,\n  findIndex: findIndex,\n  getBordersSize: getBordersSize,\n  getBoundaries: getBoundaries,\n  getBoundingClientRect: getBoundingClientRect,\n  getClientRect: getClientRect,\n  getOffsetParent: getOffsetParent,\n  getOffsetRect: getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes: getOuterSizes,\n  getParentNode: getParentNode,\n  getPopperOffsets: getPopperOffsets,\n  getReferenceOffsets: getReferenceOffsets,\n  getScroll: getScroll,\n  getScrollParent: getScrollParent,\n  getStyleComputedProperty: getStyleComputedProperty,\n  getSupportedPropertyName: getSupportedPropertyName,\n  getWindowSizes: getWindowSizes,\n  isFixed: isFixed,\n  isFunction: isFunction,\n  isModifierEnabled: isModifierEnabled,\n  isModifierRequired: isModifierRequired,\n  isNumeric: isNumeric,\n  removeEventListeners: removeEventListeners,\n  runModifiers: runModifiers,\n  setAttributes: setAttributes,\n  setStyles: setStyles,\n  setupEventListeners: setupEventListeners\n};\n\nexports.computeAutoPlacement = computeAutoPlacement;\nexports.debounce = debounce;\nexports.findIndex = findIndex;\nexports.getBordersSize = getBordersSize;\nexports.getBoundaries = getBoundaries;\nexports.getBoundingClientRect = getBoundingClientRect;\nexports.getClientRect = getClientRect;\nexports.getOffsetParent = getOffsetParent;\nexports.getOffsetRect = getOffsetRect;\nexports.getOffsetRectRelativeToArbitraryNode = getOffsetRectRelativeToArbitraryNode;\nexports.getOuterSizes = getOuterSizes;\nexports.getParentNode = getParentNode;\nexports.getPopperOffsets = getPopperOffsets;\nexports.getReferenceOffsets = getReferenceOffsets;\nexports.getScroll = getScroll;\nexports.getScrollParent = getScrollParent;\nexports.getStyleComputedProperty = getStyleComputedProperty;\nexports.getSupportedPropertyName = getSupportedPropertyName;\nexports.getWindowSizes = getWindowSizes;\nexports.isFixed = isFixed;\nexports.isFunction = isFunction;\nexports.isModifierEnabled = isModifierEnabled;\nexports.isModifierRequired = isModifierRequired;\nexports.isNumeric = isNumeric;\nexports.removeEventListeners = removeEventListeners;\nexports.runModifiers = runModifiers;\nexports.setAttributes = setAttributes;\nexports.setStyles = setStyles;\nexports.setupEventListeners = setupEventListeners;\nexports['default'] = index;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=popper-utils.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/umd/popper.js",
    "content": "/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/popper/umd/popper.js.flow",
    "content": "// @flow\n\nexport type Position = 'top' | 'right' | 'bottom' | 'left';\n\nexport type Placement =\n  | 'auto-start'\n  | 'auto'\n  | 'auto-end'\n  | 'top-start'\n  | 'top'\n  | 'top-end'\n  | 'right-start'\n  | 'right'\n  | 'right-end'\n  | 'bottom-end'\n  | 'bottom'\n  | 'bottom-start'\n  | 'left-end'\n  | 'left'\n  | 'left-start';\n\nexport type Offset = {\n  top: number,\n  left: number,\n  width: number,\n  height: number,\n  position: Position,\n};\n\nexport type Boundary = 'scrollParent' | 'viewport' | 'window';\n\nexport type Behavior = 'flip' | 'clockwise' | 'counterclockwise';\n\nexport type Data = {\n  instance: Popper,\n  placement: Placement,\n  originalPlacement: Placement,\n  flipped: boolean,\n  hide: boolean,\n  arrowElement: Element,\n  styles: CSSStyleDeclaration,\n  arrowStyles: CSSStyleDeclaration,\n  boundaries: Object,\n  offsets: {\n    popper: Offset,\n    reference: Offset,\n    arrow: {\n      top: number,\n      left: number,\n    },\n  },\n};\n\nexport type ModifierFn = (data: Data, options: Object) => Data;\n\nexport type Padding = {\n  top?: number,\n  bottom?: number,\n  left?: number,\n  right?: number,\n};\n\nexport type BaseModifier = {\n  order?: number,\n  enabled?: boolean,\n  fn?: ModifierFn,\n};\n\nexport type Modifiers = {\n  shift?: BaseModifier,\n  offset?: BaseModifier & {\n    offset?: number | string,\n  },\n  preventOverflow?: BaseModifier & {\n    priority?: Position[],\n    padding?: number | Padding,\n    boundariesElement?: Boundary | Element,\n    escapeWithReference?: boolean,\n  },\n  keepTogether?: BaseModifier,\n  arrow?: BaseModifier & {\n    element?: string | Element | null,\n  },\n  flip?: BaseModifier & {\n    behavior?: Behavior | Position[],\n    padding?: number | Padding,\n    boundariesElement?: Boundary | Element,\n    flipVariations?: boolean,\n    flipVariationsByContent?: boolean,\n  },\n  inner?: BaseModifier,\n  hide?: BaseModifier,\n  applyStyle?: BaseModifier & {\n    onLoad?: Function,\n    gpuAcceleration?: boolean,\n  },\n  computeStyle?: BaseModifier & {\n    gpuAcceleration?: boolean,\n    x?: 'bottom' | 'top',\n    y?: 'left' | 'right',\n  },\n\n  [name: string]: (BaseModifier & { [string]: * }) | null,\n};\n\nexport type Options = {\n  placement?: Placement,\n  positionFixed?: boolean,\n  eventsEnabled?: boolean,\n  modifiers?: Modifiers,\n  removeOnDestroy?: boolean,\n\n  onCreate?: (data: Data) => void,\n\n  onUpdate?: (data: Data) => void,\n};\n\nexport type ReferenceObject = {\n  +clientHeight: number,\n  +clientWidth: number,\n  +referenceNode?: Node,\n\n  getBoundingClientRect():\n    | ClientRect\n    | {\n        width: number,\n        height: number,\n        top: number,\n        right: number,\n        bottom: number,\n        left: number,\n      },\n};\n\nexport type Instance = {\n  destroy: () => void,\n  scheduleUpdate: () => void,\n  update: () => void,\n  enableEventListeners: () => void,\n  disableEventListeners: () => void,\n};\n\ndeclare class Popper {\n  static placements: Placement;\n\n  popper: Element;\n  reference: Element | ReferenceObject;\n\n  constructor(\n    reference: Element | ReferenceObject,\n    popper: Element,\n    options?: Options\n  ): Instance;\n}\n\ndeclare export default typeof Popper;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/raphael/Gruntfile.js",
    "content": "\"use strict\";\n\nmodule.exports = function(grunt) {\n\n    var pkg = grunt.file.readJSON(\"package.json\");\n\n    // Project configuration.\n    grunt.initConfig({\n        // Metadata.\n        pkg: pkg,\n        banner: grunt.file.read(\"dev/copy.js\").replace(/@VERSION/, pkg.version),\n        // Task configuration.\n        uglify: {\n            options: {\n                banner: \"<%= banner %>\"\n            },\n            dist: {\n                src: \"<%= concat.dist.dest %>\",\n                dest: \"<%= pkg.name %>-min.js\"\n            },\n            nodeps: {\n                src: \"<%= concat.nodeps.dest %>\",\n                dest: \"<%= pkg.name %>-nodeps-min.js\"\n            }\n        },\n        replace: {\n            dist: {\n                options: {\n                    patterns: [{\n                        match: \"VERSION\",\n                        replacement: \"<%= pkg.version %>\"\n                    }]\n                },\n                files: [{\n                    expand: true,\n                    flatten: true,\n                    src: [\"<%= concat.dist.dest %>\", \"<%= concat.nodeps.dest %>\"],\n                    dest: \"./\"\n                }]\n            }\n        },\n        concat: {\n            dist: {\n                dest: \"<%= pkg.name %>.js\",\n                src: [\n                    \"dev/eve.js\",\n                    \"dev/raphael.core.js\",\n                    \"dev/raphael.svg.js\",\n                    \"dev/raphael.vml.js\",\n                    \"dev/raphael.amd.js\"\n                ]\n            },\n            nodeps: {\n                dest: \"<%= pkg.name %>-nodeps.js\",\n                src: [\n                    \"dev/raphael.core.js\",\n                    \"dev/raphael.svg.js\",\n                    \"dev/raphael.vml.js\",\n                    \"dev/raphael.amd.js\"\n                ]\n            }\n        }\n    });\n\n    // These plugins provide necessary tasks.\n    grunt.loadNpmTasks(\"grunt-contrib-concat\");\n    grunt.loadNpmTasks(\"grunt-contrib-uglify\");\n    grunt.loadNpmTasks(\"grunt-replace\");\n\n    // Default task.\n    grunt.registerTask(\"default\", [\"concat\", \"replace\", \"uglify\"]);\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/raphael/license.txt",
    "content": "The MIT License\n\nCopyright (c) 2008-2010 Dmitry Baranovskiy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/raphael/raphael.js",
    "content": "// ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.3.0 - JavaScript Vector Library                                                             │ \\\\\n// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2016 Dmitry Baranovskiy (http://raphaeljs.com)                                       │ \\\\\n// │ Copyright © 2008-2016 Sencha Labs (http://sencha.com)                                                 │ \\\\\n// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (https://github.com/DmitryBaranovskiy/raphael/blob/master/license.txt) license.│ \\\\\n// └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Raphael\"] = factory();\n\telse\n\t\troot[\"Raphael\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./dev/raphael.amd.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./dev/raphael.amd.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.amd.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\"), __webpack_require__(/*! ./raphael.svg */ \"./dev/raphael.svg.js\"), __webpack_require__(/*! ./raphael.vml */ \"./dev/raphael.vml.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n\n    return R;\n\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n\n/***/ \"./dev/raphael.core.js\":\n/*!*****************************!*\\\n  !*** ./dev/raphael.core.js ***!\n  \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! eve */ \"./node_modules/eve-raphael/eve.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(eve) {\n\n    /*\\\n     * Raphael\n     [ method ]\n     **\n     * Creates a canvas object on which to draw.\n     * You must do this first, as all future calls to drawing methods\n     * from this instance will be bound to this canvas.\n     > Parameters\n     **\n     - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - x (number)\n     - y (number)\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add.\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\n     = (object) @Paper\n     > Usage\n     | // Each of the following examples create a canvas\n     | // that is 320px wide by 200px high.\n     | // Canvas is created at the viewport’s 10,50 coordinate.\n     | var paper = Raphael(10, 50, 320, 200);\n     | // Canvas is created at the top left corner of the #notepad element\n     | // (or its top right corner in dir=\"rtl\" elements)\n     | var paper = Raphael(document.getElementById(\"notepad\"), 320, 200);\n     | // Same as above\n     | var paper = Raphael(\"notepad\", 320, 200);\n     | // Image dump\n     | var set = Raphael([\"notepad\", 320, 200, {\n     |     type: \"rect\",\n     |     x: 10,\n     |     y: 10,\n     |     width: 25,\n     |     height: 25,\n     |     stroke: \"#f00\"\n     | }, {\n     |     type: \"text\",\n     |     x: 30,\n     |     y: 40,\n     |     text: \"Dump\"\n     | }]);\n    \\*/\n    function R(first) {\n        if (R.is(first, \"function\")) {\n            return loaded ? first() : eve.on(\"raphael.DOMload\", first);\n        } else if (R.is(first, array)) {\n            return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\n        } else {\n            var args = Array.prototype.slice.call(arguments, 0);\n            if (R.is(args[args.length - 1], \"function\")) {\n                var f = args.pop();\n                return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on(\"raphael.DOMload\", function () {\n                    f.call(R._engine.create[apply](R, args));\n                });\n            } else {\n                return R._engine.create[apply](R, arguments);\n            }\n        }\n    }\n    R.version = \"2.3.0\";\n    R.eve = eve;\n    var loaded,\n        separator = /[, ]+/,\n        elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\n        formatrg = /\\{(\\d+)\\}/g,\n        proto = \"prototype\",\n        has = \"hasOwnProperty\",\n        g = {\n            doc: document,\n            win: window\n        },\n        oldRaphael = {\n            was: Object.prototype[has].call(g.win, \"Raphael\"),\n            is: g.win.Raphael\n        },\n        Paper = function () {\n            /*\\\n             * Paper.ca\n             [ property (object) ]\n             **\n             * Shortcut for @Paper.customAttributes\n            \\*/\n            /*\\\n             * Paper.customAttributes\n             [ property (object) ]\n             **\n             * If you have a set of attributes that you would like to represent\n             * as a function of some number you can do it easily with custom attributes:\n             > Usage\n             | paper.customAttributes.hue = function (num) {\n             |     num = num % 1;\n             |     return {fill: \"hsb(\" + num + \", 0.75, 1)\"};\n             | };\n             | // Custom attribute “hue” will change fill\n             | // to be given hue with fixed saturation and brightness.\n             | // Now you can use it like this:\n             | var c = paper.circle(10, 10, 10).attr({hue: .45});\n             | // or even like this:\n             | c.animate({hue: 1}, 1e3);\n             |\n             | // You could also create custom attribute\n             | // with multiple parameters:\n             | paper.customAttributes.hsb = function (h, s, b) {\n             |     return {fill: \"hsb(\" + [h, s, b].join(\",\") + \")\"};\n             | };\n             | c.attr({hsb: \"0.5 .8 1\"});\n             | c.animate({hsb: [1, 0, 0.5]}, 1e3);\n            \\*/\n            this.ca = this.customAttributes = {};\n        },\n        paperproto,\n        appendChild = \"appendChild\",\n        apply = \"apply\",\n        concat = \"concat\",\n        //taken from Modernizr touch test: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js#L40\n        supportsTouch = ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n        E = \"\",\n        S = \" \",\n        Str = String,\n        split = \"split\",\n        events = \"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\"[split](S),\n        touchMap = {\n            mousedown: \"touchstart\",\n            mousemove: \"touchmove\",\n            mouseup: \"touchend\"\n        },\n        lowerCase = Str.prototype.toLowerCase,\n        math = Math,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        pow = math.pow,\n        PI = math.PI,\n        nu = \"number\",\n        string = \"string\",\n        array = \"array\",\n        toString = \"toString\",\n        fillString = \"fill\",\n        objectToString = Object.prototype.toString,\n        paper = {},\n        push = \"push\",\n        ISURL = R._ISURL = /^url\\(['\"]?(.+?)['\"]?\\)$/i,\n        colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i,\n        isnan = {\"NaN\": 1, \"Infinity\": 1, \"-Infinity\": 1},\n        bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n        round = math.round,\n        setAttribute = \"setAttribute\",\n        toFloat = parseFloat,\n        toInt = parseInt,\n        upperCase = Str.prototype.toUpperCase,\n        availableAttrs = R._availableAttrs = {\n            \"arrow-end\": \"none\",\n            \"arrow-start\": \"none\",\n            blur: 0,\n            \"clip-rect\": \"0 0 1e9 1e9\",\n            cursor: \"default\",\n            cx: 0,\n            cy: 0,\n            fill: \"#fff\",\n            \"fill-opacity\": 1,\n            font: '10px \"Arial\"',\n            \"font-family\": '\"Arial\"',\n            \"font-size\": \"10\",\n            \"font-style\": \"normal\",\n            \"font-weight\": 400,\n            gradient: 0,\n            height: 0,\n            href: \"http://raphaeljs.com/\",\n            \"letter-spacing\": 0,\n            opacity: 1,\n            path: \"M0,0\",\n            r: 0,\n            rx: 0,\n            ry: 0,\n            src: \"\",\n            stroke: \"#000\",\n            \"stroke-dasharray\": \"\",\n            \"stroke-linecap\": \"butt\",\n            \"stroke-linejoin\": \"butt\",\n            \"stroke-miterlimit\": 0,\n            \"stroke-opacity\": 1,\n            \"stroke-width\": 1,\n            target: \"_blank\",\n            \"text-anchor\": \"middle\",\n            title: \"Raphael\",\n            transform: \"\",\n            width: 0,\n            x: 0,\n            y: 0,\n            \"class\": \"\"\n        },\n        availableAnimAttrs = R._availableAnimAttrs = {\n            blur: nu,\n            \"clip-rect\": \"csv\",\n            cx: nu,\n            cy: nu,\n            fill: \"colour\",\n            \"fill-opacity\": nu,\n            \"font-size\": nu,\n            height: nu,\n            opacity: nu,\n            path: \"path\",\n            r: nu,\n            rx: nu,\n            ry: nu,\n            stroke: \"colour\",\n            \"stroke-opacity\": nu,\n            \"stroke-width\": nu,\n            transform: \"transform\",\n            width: nu,\n            x: nu,\n            y: nu\n        },\n        whitespace = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]/g,\n        commaSpaces = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,\n        hsrg = {hs: 1, rg: 1},\n        p2s = /,?([achlmqrstvxz]),?/gi,\n        pathCommand = /([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        tCommand = /([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/ig,\n        radial_gradient = R._radial_gradient = /^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,\n        eldata = {},\n        sortByKey = function (a, b) {\n            return a.key - b.key;\n        },\n        sortByNumber = function (a, b) {\n            return toFloat(a) - toFloat(b);\n        },\n        fun = function () {},\n        pipe = function (x) {\n            return x;\n        },\n        rectPath = R._rectPath = function (x, y, w, h, r) {\n            if (r) {\n                return [[\"M\", x + r, y], [\"l\", w - r * 2, 0], [\"a\", r, r, 0, 0, 1, r, r], [\"l\", 0, h - r * 2], [\"a\", r, r, 0, 0, 1, -r, r], [\"l\", r * 2 - w, 0], [\"a\", r, r, 0, 0, 1, -r, -r], [\"l\", 0, r * 2 - h], [\"a\", r, r, 0, 0, 1, r, -r], [\"z\"]];\n            }\n            return [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n        },\n        ellipsePath = function (x, y, rx, ry) {\n            if (ry == null) {\n                ry = rx;\n            }\n            return [[\"M\", x, y], [\"m\", 0, -ry], [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry], [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry], [\"z\"]];\n        },\n        getPath = R._getPath = {\n            path: function (el) {\n                return el.attr(\"path\");\n            },\n            circle: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.r);\n            },\n            ellipse: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.rx, a.ry);\n            },\n            rect: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height, a.r);\n            },\n            image: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height);\n            },\n            text: function (el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            },\n            set : function(el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            }\n        },\n        /*\\\n         * Raphael.mapPath\n         [ method ]\n         **\n         * Transform the path string with given matrix.\n         > Parameters\n         - path (string) path string\n         - matrix (object) see @Matrix\n         = (string) transformed path string\n        \\*/\n        mapPath = R.mapPath = function (path, matrix) {\n            if (!matrix) {\n                return path;\n            }\n            var x, y, i, j, ii, jj, pathi;\n            path = path2curve(path);\n            for (i = 0, ii = path.length; i < ii; i++) {\n                pathi = path[i];\n                for (j = 1, jj = pathi.length; j < jj; j += 2) {\n                    x = matrix.x(pathi[j], pathi[j + 1]);\n                    y = matrix.y(pathi[j], pathi[j + 1]);\n                    pathi[j] = x;\n                    pathi[j + 1] = y;\n                }\n            }\n            return path;\n        };\n\n    R._g = g;\n    /*\\\n     * Raphael.type\n     [ property (string) ]\n     **\n     * Can be “SVG”, “VML” or empty, depending on browser support.\n    \\*/\n    R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\") ? \"SVG\" : \"VML\");\n    if (R.type == \"VML\") {\n        var d = g.doc.createElement(\"div\"),\n            b;\n        d.innerHTML = '<v:shape adj=\"1\"/>';\n        b = d.firstChild;\n        b.style.behavior = \"url(#default#VML)\";\n        if (!(b && typeof b.adj == \"object\")) {\n            return (R.type = E);\n        }\n        d = null;\n    }\n    /*\\\n     * Raphael.svg\n     [ property (boolean) ]\n     **\n     * `true` if browser supports SVG.\n    \\*/\n    /*\\\n     * Raphael.vml\n     [ property (boolean) ]\n     **\n     * `true` if browser supports VML.\n    \\*/\n    R.svg = !(R.vml = R.type == \"VML\");\n    R._Paper = Paper;\n    /*\\\n     * Raphael.fn\n     [ property (object) ]\n     **\n     * You can add your own method to the canvas. For example if you want to draw a pie chart,\n     * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\n     * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\n     * Raphaël instance is created, otherwise it will take no effect. Please note that the\n     * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\n     * ensure any namespacing ensures proper context.\n     > Usage\n     | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\n     |     return this.path( ... );\n     | };\n     | // or create namespace\n     | Raphael.fn.mystuff = {\n     |     arrow: function () {…},\n     |     star: function () {…},\n     |     // etc…\n     | };\n     | var paper = Raphael(10, 10, 630, 480);\n     | // then use it\n     | paper.arrow(10, 10, 30, 30, 5).attr({fill: \"#f00\"});\n     | paper.mystuff.arrow();\n     | paper.mystuff.star();\n    \\*/\n    R.fn = paperproto = Paper.prototype = R.prototype;\n    R._id = 0;\n    /*\\\n     * Raphael.is\n     [ method ]\n     **\n     * Handful of replacements for `typeof` operator.\n     > Parameters\n     - o (…) any object or primitive\n     - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\n     = (boolean) is given value is of given type\n    \\*/\n    R.is = function (o, type) {\n        type = lowerCase.call(type);\n        if (type == \"finite\") {\n            return !isnan[has](+o);\n        }\n        if (type == \"array\") {\n            return o instanceof Array;\n        }\n        return  (type == \"null\" && o === null) ||\n                (type == typeof o && o !== null) ||\n                (type == \"object\" && o === Object(o)) ||\n                (type == \"array\" && Array.isArray && Array.isArray(o)) ||\n                objectToString.call(o).slice(8, -1).toLowerCase() == type;\n    };\n\n    function clone(obj) {\n        if (typeof obj == \"function\" || Object(obj) !== obj) {\n            return obj;\n        }\n        var res = new obj.constructor;\n        for (var key in obj) if (obj[has](key)) {\n            res[key] = clone(obj[key]);\n        }\n        return res;\n    }\n\n    /*\\\n     * Raphael.angle\n     [ method ]\n     **\n     * Returns angle between two or three points\n     > Parameters\n     - x1 (number) x coord of first point\n     - y1 (number) y coord of first point\n     - x2 (number) x coord of second point\n     - y2 (number) y coord of second point\n     - x3 (number) #optional x coord of third point\n     - y3 (number) #optional y coord of third point\n     = (number) angle in degrees.\n    \\*/\n    R.angle = function (x1, y1, x2, y2, x3, y3) {\n        if (x3 == null) {\n            var x = x1 - x2,\n                y = y1 - y2;\n            if (!x && !y) {\n                return 0;\n            }\n            return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n        } else {\n            return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\n        }\n    };\n    /*\\\n     * Raphael.rad\n     [ method ]\n     **\n     * Transform angle to radians\n     > Parameters\n     - deg (number) angle in degrees\n     = (number) angle in radians.\n    \\*/\n    R.rad = function (deg) {\n        return deg % 360 * PI / 180;\n    };\n    /*\\\n     * Raphael.deg\n     [ method ]\n     **\n     * Transform angle to degrees\n     > Parameters\n     - rad (number) angle in radians\n     = (number) angle in degrees.\n    \\*/\n    R.deg = function (rad) {\n        return Math.round ((rad * 180 / PI% 360)* 1000) / 1000;\n    };\n    /*\\\n     * Raphael.snapTo\n     [ method ]\n     **\n     * Snaps given value to given grid.\n     > Parameters\n     - values (array|number) given array of values or step of the grid\n     - value (number) value to adjust\n     - tolerance (number) #optional tolerance for snapping. Default is `10`.\n     = (number) adjusted value.\n    \\*/\n    R.snapTo = function (values, value, tolerance) {\n        tolerance = R.is(tolerance, \"finite\") ? tolerance : 10;\n        if (R.is(values, array)) {\n            var i = values.length;\n            while (i--) if (abs(values[i] - value) <= tolerance) {\n                return values[i];\n            }\n        } else {\n            values = +values;\n            var rem = value % values;\n            if (rem < tolerance) {\n                return value - rem;\n            }\n            if (rem > values - tolerance) {\n                return value - rem + values;\n            }\n        }\n        return value;\n    };\n\n    /*\\\n     * Raphael.createUUID\n     [ method ]\n     **\n     * Returns RFC4122, version 4 ID\n    \\*/\n    var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\n        return function () {\n            return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(uuidRegEx, uuidReplacer).toUpperCase();\n        };\n    })(/[xy]/g, function (c) {\n        var r = math.random() * 16 | 0,\n            v = c == \"x\" ? r : (r & 3 | 8);\n        return v.toString(16);\n    });\n\n    /*\\\n     * Raphael.setWindow\n     [ method ]\n     **\n     * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one.\n     > Parameters\n     - newwin (window) new window object\n    \\*/\n    R.setWindow = function (newwin) {\n        eve(\"raphael.setWindow\", R, g.win, newwin);\n        g.win = newwin;\n        g.doc = g.win.document;\n        if (R._engine.initWin) {\n            R._engine.initWin(g.win);\n        }\n    };\n    var toHex = function (color) {\n        if (R.vml) {\n            // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\n            var trim = /^\\s+|\\s+$/g;\n            var bod;\n            try {\n                var docum = new ActiveXObject(\"htmlfile\");\n                docum.write(\"<body>\");\n                docum.close();\n                bod = docum.body;\n            } catch(e) {\n                bod = createPopup().document.body;\n            }\n            var range = bod.createTextRange();\n            toHex = cacher(function (color) {\n                try {\n                    bod.style.color = Str(color).replace(trim, E);\n                    var value = range.queryCommandValue(\"ForeColor\");\n                    value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\n                    return \"#\" + (\"000000\" + value.toString(16)).slice(-6);\n                } catch(e) {\n                    return \"none\";\n                }\n            });\n        } else {\n            var i = g.doc.createElement(\"i\");\n            i.title = \"Rapha\\xebl Colour Picker\";\n            i.style.display = \"none\";\n            g.doc.body.appendChild(i);\n            toHex = cacher(function (color) {\n                i.style.color = color;\n                return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n            });\n        }\n        return toHex(color);\n    },\n    hsbtoString = function () {\n        return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n    },\n    hsltoString = function () {\n        return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n    },\n    rgbtoString = function () {\n        return this.hex;\n    },\n    prepareRGB = function (r, g, b) {\n        if (g == null && R.is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n            b = r.b;\n            g = r.g;\n            r = r.r;\n        }\n        if (g == null && R.is(r, string)) {\n            var clr = R.getRGB(r);\n            r = clr.r;\n            g = clr.g;\n            b = clr.b;\n        }\n        if (r > 1 || g > 1 || b > 1) {\n            r /= 255;\n            g /= 255;\n            b /= 255;\n        }\n\n        return [r, g, b];\n    },\n    packageRGB = function (r, g, b, o) {\n        r *= 255;\n        g *= 255;\n        b *= 255;\n        var rgb = {\n            r: r,\n            g: g,\n            b: b,\n            hex: R.rgb(r, g, b),\n            toString: rgbtoString\n        };\n        R.is(o, \"finite\") && (rgb.opacity = o);\n        return rgb;\n    };\n\n    /*\\\n     * Raphael.color\n     [ method ]\n     **\n     * Parses the color string and returns object with all values for the given color.\n     > Parameters\n     - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\n     = (object) Combined RGB & HSB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) `true` if string can’t be parsed,\n     o     h (number) hue,\n     o     s (number) saturation,\n     o     v (number) value (brightness),\n     o     l (number) lightness\n     o }\n    \\*/\n    R.color = function (clr) {\n        var rgb;\n        if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n            rgb = R.hsb2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n            rgb = R.hsl2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else {\n            if (R.is(clr, \"string\")) {\n                clr = R.getRGB(clr);\n            }\n            if (R.is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr) {\n                rgb = R.rgb2hsl(clr);\n                clr.h = rgb.h;\n                clr.s = rgb.s;\n                clr.l = rgb.l;\n                rgb = R.rgb2hsb(clr);\n                clr.v = rgb.b;\n            } else {\n                clr = {hex: \"none\"};\n                clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n            }\n        }\n        clr.toString = rgbtoString;\n        return clr;\n    };\n    /*\\\n     * Raphael.hsb2rgb\n     [ method ]\n     **\n     * Converts HSB values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - v (number) value or brightness\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n    \\*/\n    R.hsb2rgb = function (h, s, v, o) {\n        if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n            v = h.b;\n            s = h.s;\n            o = h.o;\n            h = h.h;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = v * s;\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = v - C;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.hsl2rgb\n     [ method ]\n     **\n     * Converts HSL values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n    \\*/\n    R.hsl2rgb = function (h, s, l, o) {\n        if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n            l = h.l;\n            s = h.s;\n            h = h.h;\n        }\n        if (h > 1 || s > 1 || l > 1) {\n            h /= 360;\n            s /= 100;\n            l /= 100;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = 2 * s * (l < .5 ? l : 1 - l);\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = l - C / 2;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.rgb2hsb\n     [ method ]\n     **\n     * Converts RGB values to HSB object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSB object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     b (number) brightness\n     o }\n    \\*/\n    R.rgb2hsb = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, V, C;\n        V = mmax(r, g, b);\n        C = V - mmin(r, g, b);\n        H = (C == 0 ? null :\n             V == r ? (g - b) / C :\n             V == g ? (b - r) / C + 2 :\n                      (r - g) / C + 4\n            );\n        H = ((H + 360) % 6) * 60 / 360;\n        S = C == 0 ? 0 : C / V;\n        return {h: H, s: S, b: V, toString: hsbtoString};\n    };\n    /*\\\n     * Raphael.rgb2hsl\n     [ method ]\n     **\n     * Converts RGB values to HSL object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSL object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     l (number) luminosity\n     o }\n    \\*/\n    R.rgb2hsl = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, L, M, m, C;\n        M = mmax(r, g, b);\n        m = mmin(r, g, b);\n        C = M - m;\n        H = (C == 0 ? null :\n             M == r ? (g - b) / C :\n             M == g ? (b - r) / C + 2 :\n                      (r - g) / C + 4);\n        H = ((H + 360) % 6) * 60 / 360;\n        L = (M + m) / 2;\n        S = (C == 0 ? 0 :\n             L < .5 ? C / (2 * L) :\n                      C / (2 - 2 * L));\n        return {h: H, s: S, l: L, toString: hsltoString};\n    };\n    R._path2string = function () {\n        return this.join(\",\").replace(p2s, \"$1\");\n    };\n    function repush(array, item) {\n        for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n            return array.push(array.splice(i, 1)[0]);\n        }\n    }\n    function cacher(f, scope, postprocessor) {\n        function newf() {\n            var arg = Array.prototype.slice.call(arguments, 0),\n                args = arg.join(\"\\u2400\"),\n                cache = newf.cache = newf.cache || {},\n                count = newf.count = newf.count || [];\n            if (cache[has](args)) {\n                repush(count, args);\n                return postprocessor ? postprocessor(cache[args]) : cache[args];\n            }\n            count.length >= 1e3 && delete cache[count.shift()];\n            count.push(args);\n            cache[args] = f[apply](scope, arg);\n            return postprocessor ? postprocessor(cache[args]) : cache[args];\n        }\n        return newf;\n    }\n\n    var preload = R._preload = function (src, f) {\n        var img = g.doc.createElement(\"img\");\n        img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n        img.onload = function () {\n            f.call(this);\n            this.onload = null;\n            g.doc.body.removeChild(this);\n        };\n        img.onerror = function () {\n            g.doc.body.removeChild(this);\n        };\n        g.doc.body.appendChild(img);\n        img.src = src;\n    };\n\n    function clrToString() {\n        return this.hex;\n    }\n\n    /*\\\n     * Raphael.getRGB\n     [ method ]\n     **\n     * Parses colour string as RGB object\n     > Parameters\n     - colour (string) colour string in one of formats:\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsl(•••, •••, •••) — same as hsb</li>\n     #     <li>hsl(•••%, •••%, •••%) — same as hsb</li>\n     # </ul>\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) true if string can’t be parsed\n     o }\n    \\*/\n    R.getRGB = cacher(function (colour) {\n        if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n            return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n        }\n        if (colour == \"none\") {\n            return {r: -1, g: -1, b: -1, hex: \"none\", toString: clrToString};\n        }\n        !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n        var res,\n            red,\n            green,\n            blue,\n            opacity,\n            t,\n            values,\n            rgb = colour.match(colourRegExp);\n        if (rgb) {\n            if (rgb[2]) {\n                blue = toInt(rgb[2].substring(5), 16);\n                green = toInt(rgb[2].substring(3, 5), 16);\n                red = toInt(rgb[2].substring(1, 3), 16);\n            }\n            if (rgb[3]) {\n                blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n                green = toInt((t = rgb[3].charAt(2)) + t, 16);\n                red = toInt((t = rgb[3].charAt(1)) + t, 16);\n            }\n            if (rgb[4]) {\n                values = rgb[4][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n            }\n            if (rgb[5]) {\n                values = rgb[5][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n                return R.hsb2rgb(red, green, blue, opacity);\n            }\n            if (rgb[6]) {\n                values = rgb[6][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n                return R.hsl2rgb(red, green, blue, opacity);\n            }\n            rgb = {r: red, g: green, b: blue, toString: clrToString};\n            rgb.hex = \"#\" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\n            R.is(opacity, \"finite\") && (rgb.opacity = opacity);\n            return rgb;\n        }\n        return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n    }, R);\n    /*\\\n     * Raphael.hsb\n     [ method ]\n     **\n     * Converts HSB values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - b (number) value or brightness\n     = (string) hex representation of the colour.\n    \\*/\n    R.hsb = cacher(function (h, s, b) {\n        return R.hsb2rgb(h, s, b).hex;\n    });\n    /*\\\n     * Raphael.hsl\n     [ method ]\n     **\n     * Converts HSL values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (string) hex representation of the colour.\n    \\*/\n    R.hsl = cacher(function (h, s, l) {\n        return R.hsl2rgb(h, s, l).hex;\n    });\n    /*\\\n     * Raphael.rgb\n     [ method ]\n     **\n     * Converts RGB values to hex representation of the colour.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (string) hex representation of the colour.\n    \\*/\n    R.rgb = cacher(function (r, g, b) {\n        function round(x) { return (x + 0.5) | 0; }\n        return \"#\" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1);\n    });\n    /*\\\n     * Raphael.getColor\n     [ method ]\n     **\n     * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\n     > Parameters\n     - value (number) #optional brightness, default is `0.75`\n     = (string) hex representation of the colour.\n    \\*/\n    R.getColor = function (value) {\n        var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\n            rgb = this.hsb2rgb(start.h, start.s, start.b);\n        start.h += .075;\n        if (start.h > 1) {\n            start.h = 0;\n            start.s -= .2;\n            start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\n        }\n        return rgb.hex;\n    };\n    /*\\\n     * Raphael.getColor.reset\n     [ method ]\n     **\n     * Resets spectrum position for @Raphael.getColor back to red.\n    \\*/\n    R.getColor.reset = function () {\n        delete this.start;\n    };\n\n    // http://schepers.cc/getting-to-the-point\n    function catmullRom2bezier(crp, z) {\n        var d = [];\n        for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n            var p = [\n                        {x: +crp[i - 2], y: +crp[i - 1]},\n                        {x: +crp[i],     y: +crp[i + 1]},\n                        {x: +crp[i + 2], y: +crp[i + 3]},\n                        {x: +crp[i + 4], y: +crp[i + 5]}\n                    ];\n            if (z) {\n                if (!i) {\n                    p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n                } else if (iLen - 4 == i) {\n                    p[3] = {x: +crp[0], y: +crp[1]};\n                } else if (iLen - 2 == i) {\n                    p[2] = {x: +crp[0], y: +crp[1]};\n                    p[3] = {x: +crp[2], y: +crp[3]};\n                }\n            } else {\n                if (iLen - 4 == i) {\n                    p[3] = p[2];\n                } else if (!i) {\n                    p[0] = {x: +crp[i], y: +crp[i + 1]};\n                }\n            }\n            d.push([\"C\",\n                  (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n                  (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n                  (p[1].x + 6 * p[2].x - p[3].x) / 6,\n                  (p[1].y + 6*p[2].y - p[3].y) / 6,\n                  p[2].x,\n                  p[2].y\n            ]);\n        }\n\n        return d;\n    }\n    /*\\\n     * Raphael.parsePathString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of arrays of path segments.\n     > Parameters\n     - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\n     = (array) array of segments.\n    \\*/\n    R.parsePathString = function (pathString) {\n        if (!pathString) {\n            return null;\n        }\n        var pth = paths(pathString);\n        if (pth.arr) {\n            return pathClone(pth.arr);\n        }\n\n        var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\n            data = [];\n        if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\n            data = pathClone(pathString);\n        }\n        if (!data.length) {\n            Str(pathString).replace(pathCommand, function (a, b, c) {\n                var params = [],\n                    name = b.toLowerCase();\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                if (name == \"m\" && params.length > 2) {\n                    data.push([b][concat](params.splice(0, 2)));\n                    name = \"l\";\n                    b = b == \"m\" ? \"l\" : \"L\";\n                }\n                if (name == \"r\") {\n                    data.push([b][concat](params));\n                } else while (params.length >= paramCounts[name]) {\n                    data.push([b][concat](params.splice(0, paramCounts[name])));\n                    if (!paramCounts[name]) {\n                        break;\n                    }\n                }\n            });\n        }\n        data.toString = R._path2string;\n        pth.arr = pathClone(data);\n        return data;\n    };\n    /*\\\n     * Raphael.parseTransformString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of transformations.\n     > Parameters\n     - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\n     = (array) array of transformations.\n    \\*/\n    R.parseTransformString = cacher(function (TString) {\n        if (!TString) {\n            return null;\n        }\n        var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n            data = [];\n        if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\n            data = pathClone(TString);\n        }\n        if (!data.length) {\n            Str(TString).replace(tCommand, function (a, b, c) {\n                var params = [],\n                    name = lowerCase.call(b);\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                data.push([b][concat](params));\n            });\n        }\n        data.toString = R._path2string;\n        return data;\n    }, this, function(elem) {\n        if (!elem) return elem;\n        var newData = [];\n        for (var i = 0; i < elem.length; i++) {\n            var newLevel = [];\n            for (var j = 0; j < elem[i].length; j++) {\n                newLevel.push(elem[i][j]);\n            }\n            newData.push(newLevel);\n        }\n      return newData; } );\n    // PATHS\n    var paths = function (ps) {\n        var p = paths.ps = paths.ps || {};\n        if (p[ps]) {\n            p[ps].sleep = 100;\n        } else {\n            p[ps] = {\n                sleep: 100\n            };\n        }\n        setTimeout(function () {\n            for (var key in p) if (p[has](key) && key != ps) {\n                p[key].sleep--;\n                !p[key].sleep && delete p[key];\n            }\n        });\n        return p[ps];\n    };\n    /*\\\n     * Raphael.findDotsAtSegment\n     [ method ]\n     **\n     * Utility method\n     **\n     * Find dot coordinates on the given cubic bezier curve at the given t.\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     - t (number) position on the curve (0..1)\n     = (object) point information in format:\n     o {\n     o     x: (number) x coordinate of the point\n     o     y: (number) y coordinate of the point\n     o     m: {\n     o         x: (number) x coordinate of the left anchor\n     o         y: (number) y coordinate of the left anchor\n     o     }\n     o     n: {\n     o         x: (number) x coordinate of the right anchor\n     o         y: (number) y coordinate of the right anchor\n     o     }\n     o     start: {\n     o         x: (number) x coordinate of the start of the curve\n     o         y: (number) y coordinate of the start of the curve\n     o     }\n     o     end: {\n     o         x: (number) x coordinate of the end of the curve\n     o         y: (number) y coordinate of the end of the curve\n     o     }\n     o     alpha: (number) angle of the curve derivative at the point\n     o }\n    \\*/\n    R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n        var t1 = 1 - t,\n            t13 = pow(t1, 3),\n            t12 = pow(t1, 2),\n            t2 = t * t,\n            t3 = t2 * t,\n            x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n            y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n            mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n            my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n            nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n            ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n            ax = t1 * p1x + t * c1x,\n            ay = t1 * p1y + t * c1y,\n            cx = t1 * c2x + t * p2x,\n            cy = t1 * c2y + t * p2y,\n            alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\n        (mx > nx || my < ny) && (alpha += 180);\n        return {\n            x: x,\n            y: y,\n            m: {x: mx, y: my},\n            n: {x: nx, y: ny},\n            start: {x: ax, y: ay},\n            end: {x: cx, y: cy},\n            alpha: alpha\n        };\n    };\n    /*\\\n     * Raphael.bezierBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given cubic bezier curve\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     * or\n     - bez (array) array of six points for bezier curve\n     = (object) point information in format:\n     o {\n     o     min: {\n     o         x: (number) x coordinate of the left point\n     o         y: (number) y coordinate of the top point\n     o     }\n     o     max: {\n     o         x: (number) x coordinate of the right point\n     o         y: (number) y coordinate of the bottom point\n     o     }\n     o }\n    \\*/\n    R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n        if (!R.is(p1x, \"array\")) {\n            p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n        }\n        var bbox = curveDim.apply(null, p1x);\n        return {\n            x: bbox.min.x,\n            y: bbox.min.y,\n            x2: bbox.max.x,\n            y2: bbox.max.y,\n            width: bbox.max.x - bbox.min.x,\n            height: bbox.max.y - bbox.min.y\n        };\n    };\n    /*\\\n     * Raphael.isPointInsideBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside bounding boxes.\n     > Parameters\n     - bbox (string) bounding box\n     - x (string) x coordinate of the point\n     - y (string) y coordinate of the point\n     = (boolean) `true` if point inside\n    \\*/\n    R.isPointInsideBBox = function (bbox, x, y) {\n        return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\n    };\n    /*\\\n     * Raphael.isBBoxIntersect\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if two bounding boxes intersect\n     > Parameters\n     - bbox1 (string) first bounding box\n     - bbox2 (string) second bounding box\n     = (boolean) `true` if they intersect\n    \\*/\n    R.isBBoxIntersect = function (bbox1, bbox2) {\n        var i = R.isPointInsideBBox;\n        return i(bbox2, bbox1.x, bbox1.y)\n            || i(bbox2, bbox1.x2, bbox1.y)\n            || i(bbox2, bbox1.x, bbox1.y2)\n            || i(bbox2, bbox1.x2, bbox1.y2)\n            || i(bbox1, bbox2.x, bbox2.y)\n            || i(bbox1, bbox2.x2, bbox2.y)\n            || i(bbox1, bbox2.x, bbox2.y2)\n            || i(bbox1, bbox2.x2, bbox2.y2)\n            || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n            && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n    };\n    function base3(t, p1, p2, p3, p4) {\n        var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n            t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n        return t * t2 - 3 * p1 + 3 * p2;\n    }\n    function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n        if (z == null) {\n            z = 1;\n        }\n        z = z > 1 ? 1 : z < 0 ? 0 : z;\n        var z2 = z / 2,\n            n = 12,\n            Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\n            Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n            sum = 0;\n        for (var i = 0; i < n; i++) {\n            var ct = z2 * Tvalues[i] + z2,\n                xbase = base3(ct, x1, x2, x3, x4),\n                ybase = base3(ct, y1, y2, y3, y4),\n                comb = xbase * xbase + ybase * ybase;\n            sum += Cvalues[i] * math.sqrt(comb);\n        }\n        return z2 * sum;\n    }\n    function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n        if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n            return;\n        }\n        var t = 1,\n            step = t / 2,\n            t2 = t - step,\n            l,\n            e = .01;\n        l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        while (abs(l - ll) > e) {\n            step /= 2;\n            t2 += (l < ll ? 1 : -1) * step;\n            l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        }\n        return t2;\n    }\n    function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n        if (\n            mmax(x1, x2) < mmin(x3, x4) ||\n            mmin(x1, x2) > mmax(x3, x4) ||\n            mmax(y1, y2) < mmin(y3, y4) ||\n            mmin(y1, y2) > mmax(y3, y4)\n        ) {\n            return;\n        }\n        var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n            ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n            denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n        if (!denominator) {\n            return;\n        }\n        var px = nx / denominator,\n            py = ny / denominator,\n            px2 = +px.toFixed(2),\n            py2 = +py.toFixed(2);\n        if (\n            px2 < +mmin(x1, x2).toFixed(2) ||\n            px2 > +mmax(x1, x2).toFixed(2) ||\n            px2 < +mmin(x3, x4).toFixed(2) ||\n            px2 > +mmax(x3, x4).toFixed(2) ||\n            py2 < +mmin(y1, y2).toFixed(2) ||\n            py2 > +mmax(y1, y2).toFixed(2) ||\n            py2 < +mmin(y3, y4).toFixed(2) ||\n            py2 > +mmax(y3, y4).toFixed(2)\n        ) {\n            return;\n        }\n        return {x: px, y: py};\n    }\n    function inter(bez1, bez2) {\n        return interHelper(bez1, bez2);\n    }\n    function interCount(bez1, bez2) {\n        return interHelper(bez1, bez2, 1);\n    }\n    function interHelper(bez1, bez2, justCount) {\n        var bbox1 = R.bezierBBox(bez1),\n            bbox2 = R.bezierBBox(bez2);\n        if (!R.isBBoxIntersect(bbox1, bbox2)) {\n            return justCount ? 0 : [];\n        }\n        var l1 = bezlen.apply(0, bez1),\n            l2 = bezlen.apply(0, bez2),\n            n1 = mmax(~~(l1 / 5), 1),\n            n2 = mmax(~~(l2 / 5), 1),\n            dots1 = [],\n            dots2 = [],\n            xy = {},\n            res = justCount ? 0 : [];\n        for (var i = 0; i < n1 + 1; i++) {\n            var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\n            dots1.push({x: p.x, y: p.y, t: i / n1});\n        }\n        for (i = 0; i < n2 + 1; i++) {\n            p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\n            dots2.push({x: p.x, y: p.y, t: i / n2});\n        }\n        for (i = 0; i < n1; i++) {\n            for (var j = 0; j < n2; j++) {\n                var di = dots1[i],\n                    di1 = dots1[i + 1],\n                    dj = dots2[j],\n                    dj1 = dots2[j + 1],\n                    ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n                    cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n                    is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n                if (is) {\n                    if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n                        continue;\n                    }\n                    xy[is.x.toFixed(4)] = is.y.toFixed(4);\n                    var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n                        t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n                    if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\n                        if (justCount) {\n                            res++;\n                        } else {\n                            res.push({\n                                x: is.x,\n                                y: is.y,\n                                t1: mmin(t1, 1),\n                                t2: mmin(t2, 1)\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.pathIntersection\n     [ method ]\n     **\n     * Utility method\n     **\n     * Finds intersections of two paths\n     > Parameters\n     - path1 (string) path string\n     - path2 (string) path string\n     = (array) dots of intersection\n     o [\n     o     {\n     o         x: (number) x coordinate of the point\n     o         y: (number) y coordinate of the point\n     o         t1: (number) t value for segment of path1\n     o         t2: (number) t value for segment of path2\n     o         segment1: (number) order number for segment of path1\n     o         segment2: (number) order number for segment of path2\n     o         bez1: (array) eight coordinates representing beziér curve for the segment of path1\n     o         bez2: (array) eight coordinates representing beziér curve for the segment of path2\n     o     }\n     o ]\n    \\*/\n    R.pathIntersection = function (path1, path2) {\n        return interPathHelper(path1, path2);\n    };\n    R.pathIntersectionNumber = function (path1, path2) {\n        return interPathHelper(path1, path2, 1);\n    };\n    function interPathHelper(path1, path2, justCount) {\n        path1 = R._path2curve(path1);\n        path2 = R._path2curve(path2);\n        var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n            res = justCount ? 0 : [];\n        for (var i = 0, ii = path1.length; i < ii; i++) {\n            var pi = path1[i];\n            if (pi[0] == \"M\") {\n                x1 = x1m = pi[1];\n                y1 = y1m = pi[2];\n            } else {\n                if (pi[0] == \"C\") {\n                    bez1 = [x1, y1].concat(pi.slice(1));\n                    x1 = bez1[6];\n                    y1 = bez1[7];\n                } else {\n                    bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n                    x1 = x1m;\n                    y1 = y1m;\n                }\n                for (var j = 0, jj = path2.length; j < jj; j++) {\n                    var pj = path2[j];\n                    if (pj[0] == \"M\") {\n                        x2 = x2m = pj[1];\n                        y2 = y2m = pj[2];\n                    } else {\n                        if (pj[0] == \"C\") {\n                            bez2 = [x2, y2].concat(pj.slice(1));\n                            x2 = bez2[6];\n                            y2 = bez2[7];\n                        } else {\n                            bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n                            x2 = x2m;\n                            y2 = y2m;\n                        }\n                        var intr = interHelper(bez1, bez2, justCount);\n                        if (justCount) {\n                            res += intr;\n                        } else {\n                            for (var k = 0, kk = intr.length; k < kk; k++) {\n                                intr[k].segment1 = i;\n                                intr[k].segment2 = j;\n                                intr[k].bez1 = bez1;\n                                intr[k].bez2 = bez2;\n                            }\n                            res = res.concat(intr);\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.isPointInsidePath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside a given closed path.\n     > Parameters\n     - path (string) path string\n     - x (number) x of the point\n     - y (number) y of the point\n     = (boolean) true, if point is inside the path\n    \\*/\n    R.isPointInsidePath = function (path, x, y) {\n        var bbox = R.pathBBox(path);\n        return R.isPointInsideBBox(bbox, x, y) &&\n               interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n    };\n    R._removedFactory = function (methodname) {\n        return function () {\n            eve(\"raphael.log\", null, \"Rapha\\xebl: you are calling to method \\u201c\" + methodname + \"\\u201d of removed object\", methodname);\n        };\n    };\n    /*\\\n     * Raphael.pathBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given path\n     > Parameters\n     - path (string) path string\n     = (object) bounding box\n     o {\n     o     x: (number) x coordinate of the left top point of the box\n     o     y: (number) y coordinate of the left top point of the box\n     o     x2: (number) x coordinate of the right bottom point of the box\n     o     y2: (number) y coordinate of the right bottom point of the box\n     o     width: (number) width of the box\n     o     height: (number) height of the box\n     o     cx: (number) x coordinate of the center of the box\n     o     cy: (number) y coordinate of the center of the box\n     o }\n    \\*/\n    var pathDimensions = R.pathBBox = function (path) {\n        var pth = paths(path);\n        if (pth.bbox) {\n            return clone(pth.bbox);\n        }\n        if (!path) {\n            return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\n        }\n        path = path2curve(path);\n        var x = 0,\n            y = 0,\n            X = [],\n            Y = [],\n            p;\n        for (var i = 0, ii = path.length; i < ii; i++) {\n            p = path[i];\n            if (p[0] == \"M\") {\n                x = p[1];\n                y = p[2];\n                X.push(x);\n                Y.push(y);\n            } else {\n                var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                X = X[concat](dim.min.x, dim.max.x);\n                Y = Y[concat](dim.min.y, dim.max.y);\n                x = p[5];\n                y = p[6];\n            }\n        }\n        var xmin = mmin[apply](0, X),\n            ymin = mmin[apply](0, Y),\n            xmax = mmax[apply](0, X),\n            ymax = mmax[apply](0, Y),\n            width = xmax - xmin,\n            height = ymax - ymin,\n                bb = {\n                x: xmin,\n                y: ymin,\n                x2: xmax,\n                y2: ymax,\n                width: width,\n                height: height,\n                cx: xmin + width / 2,\n                cy: ymin + height / 2\n            };\n        pth.bbox = clone(bb);\n        return bb;\n    },\n        pathClone = function (pathArray) {\n            var res = clone(pathArray);\n            res.toString = R._path2string;\n            return res;\n        },\n        pathToRelative = R._pathToRelative = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.rel) {\n                return pathClone(pth.rel);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == \"M\") {\n                x = pathArray[0][1];\n                y = pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res.push([\"M\", x, y]);\n            }\n            for (var i = start, ii = pathArray.length; i < ii; i++) {\n                var r = res[i] = [],\n                    pa = pathArray[i];\n                if (pa[0] != lowerCase.call(pa[0])) {\n                    r[0] = lowerCase.call(pa[0]);\n                    switch (r[0]) {\n                        case \"a\":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] - x).toFixed(3);\n                            r[7] = +(pa[7] - y).toFixed(3);\n                            break;\n                        case \"v\":\n                            r[1] = +(pa[1] - y).toFixed(3);\n                            break;\n                        case \"m\":\n                            mx = pa[1];\n                            my = pa[2];\n                        default:\n                            for (var j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\n                            }\n                    }\n                } else {\n                    r = res[i] = [];\n                    if (pa[0] == \"m\") {\n                        mx = pa[1] + x;\n                        my = pa[2] + y;\n                    }\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        res[i][k] = pa[k];\n                    }\n                }\n                var len = res[i].length;\n                switch (res[i][0]) {\n                    case \"z\":\n                        x = mx;\n                        y = my;\n                        break;\n                    case \"h\":\n                        x += +res[i][len - 1];\n                        break;\n                    case \"v\":\n                        y += +res[i][len - 1];\n                        break;\n                    default:\n                        x += +res[i][len - 2];\n                        y += +res[i][len - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.rel = pathClone(res);\n            return res;\n        },\n        pathToAbsolute = R._pathToAbsolute = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.abs) {\n                return pathClone(pth.abs);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            if (!pathArray || !pathArray.length) {\n                return [[\"M\", 0, 0]];\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == \"M\") {\n                x = +pathArray[0][1];\n                y = +pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res[0] = [\"M\", x, y];\n            }\n            var crz = pathArray.length == 3 && pathArray[0][0] == \"M\" && pathArray[1][0].toUpperCase() == \"R\" && pathArray[2][0].toUpperCase() == \"Z\";\n            for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n                res.push(r = []);\n                pa = pathArray[i];\n                if (pa[0] != upperCase.call(pa[0])) {\n                    r[0] = upperCase.call(pa[0]);\n                    switch (r[0]) {\n                        case \"A\":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] + x);\n                            r[7] = +(pa[7] + y);\n                            break;\n                        case \"V\":\n                            r[1] = +pa[1] + y;\n                            break;\n                        case \"H\":\n                            r[1] = +pa[1] + x;\n                            break;\n                        case \"R\":\n                            var dots = [x, y][concat](pa.slice(1));\n                            for (var j = 2, jj = dots.length; j < jj; j++) {\n                                dots[j] = +dots[j] + x;\n                                dots[++j] = +dots[j] + y;\n                            }\n                            res.pop();\n                            res = res[concat](catmullRom2bezier(dots, crz));\n                            break;\n                        case \"M\":\n                            mx = +pa[1] + x;\n                            my = +pa[2] + y;\n                        default:\n                            for (j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +pa[j] + ((j % 2) ? x : y);\n                            }\n                    }\n                } else if (pa[0] == \"R\") {\n                    dots = [x, y][concat](pa.slice(1));\n                    res.pop();\n                    res = res[concat](catmullRom2bezier(dots, crz));\n                    r = [\"R\"][concat](pa.slice(-2));\n                } else {\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        r[k] = pa[k];\n                    }\n                }\n                switch (r[0]) {\n                    case \"Z\":\n                        x = mx;\n                        y = my;\n                        break;\n                    case \"H\":\n                        x = r[1];\n                        break;\n                    case \"V\":\n                        y = r[1];\n                        break;\n                    case \"M\":\n                        mx = r[r.length - 2];\n                        my = r[r.length - 1];\n                    default:\n                        x = r[r.length - 2];\n                        y = r[r.length - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.abs = pathClone(res);\n            return res;\n        },\n        l2c = function (x1, y1, x2, y2) {\n            return [x1, y1, x2, y2, x2, y2];\n        },\n        q2c = function (x1, y1, ax, ay, x2, y2) {\n            var _13 = 1 / 3,\n                _23 = 2 / 3;\n            return [\n                    _13 * x1 + _23 * ax,\n                    _13 * y1 + _23 * ay,\n                    _13 * x2 + _23 * ax,\n                    _13 * y2 + _23 * ay,\n                    x2,\n                    y2\n                ];\n        },\n        a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n            // for more information of where this math came from visit:\n            // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n            var _120 = PI * 120 / 180,\n                rad = PI / 180 * (+angle || 0),\n                res = [],\n                xy,\n                rotate = cacher(function (x, y, rad) {\n                    var X = x * math.cos(rad) - y * math.sin(rad),\n                        Y = x * math.sin(rad) + y * math.cos(rad);\n                    return {x: X, y: Y};\n                });\n            if (!recursive) {\n                xy = rotate(x1, y1, -rad);\n                x1 = xy.x;\n                y1 = xy.y;\n                xy = rotate(x2, y2, -rad);\n                x2 = xy.x;\n                y2 = xy.y;\n                var cos = math.cos(PI / 180 * angle),\n                    sin = math.sin(PI / 180 * angle),\n                    x = (x1 - x2) / 2,\n                    y = (y1 - y2) / 2;\n                var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n                if (h > 1) {\n                    h = math.sqrt(h);\n                    rx = h * rx;\n                    ry = h * ry;\n                }\n                var rx2 = rx * rx,\n                    ry2 = ry * ry,\n                    k = (large_arc_flag == sweep_flag ? -1 : 1) *\n                        math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n                    cx = k * rx * y / ry + (x1 + x2) / 2,\n                    cy = k * -ry * x / rx + (y1 + y2) / 2,\n                    f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n                    f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n                f1 = x1 < cx ? PI - f1 : f1;\n                f2 = x2 < cx ? PI - f2 : f2;\n                f1 < 0 && (f1 = PI * 2 + f1);\n                f2 < 0 && (f2 = PI * 2 + f2);\n                if (sweep_flag && f1 > f2) {\n                    f1 = f1 - PI * 2;\n                }\n                if (!sweep_flag && f2 > f1) {\n                    f2 = f2 - PI * 2;\n                }\n            } else {\n                f1 = recursive[0];\n                f2 = recursive[1];\n                cx = recursive[2];\n                cy = recursive[3];\n            }\n            var df = f2 - f1;\n            if (abs(df) > _120) {\n                var f2old = f2,\n                    x2old = x2,\n                    y2old = y2;\n                f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n                x2 = cx + rx * math.cos(f2);\n                y2 = cy + ry * math.sin(f2);\n                res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n            }\n            df = f2 - f1;\n            var c1 = math.cos(f1),\n                s1 = math.sin(f1),\n                c2 = math.cos(f2),\n                s2 = math.sin(f2),\n                t = math.tan(df / 4),\n                hx = 4 / 3 * rx * t,\n                hy = 4 / 3 * ry * t,\n                m1 = [x1, y1],\n                m2 = [x1 + hx * s1, y1 - hy * c1],\n                m3 = [x2 + hx * s2, y2 - hy * c2],\n                m4 = [x2, y2];\n            m2[0] = 2 * m1[0] - m2[0];\n            m2[1] = 2 * m1[1] - m2[1];\n            if (recursive) {\n                return [m2, m3, m4][concat](res);\n            } else {\n                res = [m2, m3, m4][concat](res).join()[split](\",\");\n                var newres = [];\n                for (var i = 0, ii = res.length; i < ii; i++) {\n                    newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n                }\n                return newres;\n            }\n        },\n        findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n            var t1 = 1 - t;\n            return {\n                x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n                y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n            };\n        },\n        curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n            var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\n                b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\n                c = p1x - c1x,\n                t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                y = [p1y, p2y],\n                x = [p1x, p2x],\n                dot;\n            abs(t1) > \"1e12\" && (t1 = .5);\n            abs(t2) > \"1e12\" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\n            b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\n            c = p1y - c1y;\n            t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            abs(t1) > \"1e12\" && (t1 = .5);\n            abs(t2) > \"1e12\" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            return {\n                min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\n                max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\n            };\n        }),\n        path2curve = R._path2curve = cacher(function (path, path2) {\n            var pth = !path2 && paths(path);\n            if (!path2 && pth.curve) {\n                return pathClone(pth.curve);\n            }\n            var p = pathToAbsolute(path),\n                p2 = path2 && pathToAbsolute(path2),\n                attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                processPath = function (path, d, pcom) {\n                    var nx, ny, tq = {T:1, Q:1};\n                    if (!path) {\n                        return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n                    }\n                    !(path[0] in tq) && (d.qx = d.qy = null);\n                    switch (path[0]) {\n                        case \"M\":\n                            d.X = path[1];\n                            d.Y = path[2];\n                            break;\n                        case \"A\":\n                            path = [\"C\"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\n                            break;\n                        case \"S\":\n                            if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n                                nx = d.x * 2 - d.bx;          // And reflect the previous\n                                ny = d.y * 2 - d.by;          // command's control point relative to the current point.\n                            }\n                            else {                            // or some else or nothing\n                                nx = d.x;\n                                ny = d.y;\n                            }\n                            path = [\"C\", nx, ny][concat](path.slice(1));\n                            break;\n                        case \"T\":\n                            if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n                                d.qx = d.x * 2 - d.qx;        // And make a reflection similar\n                                d.qy = d.y * 2 - d.qy;        // to case \"S\".\n                            }\n                            else {                            // or something else or nothing\n                                d.qx = d.x;\n                                d.qy = d.y;\n                            }\n                            path = [\"C\"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n                            break;\n                        case \"Q\":\n                            d.qx = path[1];\n                            d.qy = path[2];\n                            path = [\"C\"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n                            break;\n                        case \"L\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, path[1], path[2]));\n                            break;\n                        case \"H\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, path[1], d.y));\n                            break;\n                        case \"V\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, d.x, path[1]));\n                            break;\n                        case \"Z\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, d.X, d.Y));\n                            break;\n                    }\n                    return path;\n                },\n                fixArc = function (pp, i) {\n                    if (pp[i].length > 7) {\n                        pp[i].shift();\n                        var pi = pp[i];\n                        while (pi.length) {\n                            pcoms1[i]=\"A\"; // if created multiple C:s, their original seg is saved\n                            p2 && (pcoms2[i]=\"A\"); // the same as above\n                            pp.splice(i++, 0, [\"C\"][concat](pi.splice(0, 6)));\n                        }\n                        pp.splice(i, 1);\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                fixM = function (path1, path2, a1, a2, i) {\n                    if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n                        path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n                        a1.bx = 0;\n                        a1.by = 0;\n                        a1.x = path1[i][1];\n                        a1.y = path1[i][2];\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                pcoms1 = [], // path commands of original path p\n                pcoms2 = [], // path commands of original path p2\n                pfirst = \"\", // temporary holder for original path command\n                pcom = \"\"; // holder for previous path command of original path\n            for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n                p[i] && (pfirst = p[i][0]); // save current path command\n\n                if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n                {\n                    pcoms1[i] = pfirst; // Save current path command\n                    i && ( pcom = pcoms1[i-1]); // Get previous path command pcom\n                }\n                p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n                if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n                // which may produce multiple C:s\n                // so we have to make sure that C is also C in original path\n\n                fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n                if (p2) { // the same procedures is done to p2\n                    p2[i] && (pfirst = p2[i][0]);\n                    if (pfirst != \"C\")\n                    {\n                        pcoms2[i] = pfirst;\n                        i && (pcom = pcoms2[i-1]);\n                    }\n                    p2[i] = processPath(p2[i], attrs2, pcom);\n\n                    if (pcoms2[i]!=\"A\" && pfirst==\"C\") pcoms2[i]=\"C\";\n\n                    fixArc(p2, i);\n                }\n                fixM(p, p2, attrs, attrs2, i);\n                fixM(p2, p, attrs2, attrs, i);\n                var seg = p[i],\n                    seg2 = p2 && p2[i],\n                    seglen = seg.length,\n                    seg2len = p2 && seg2.length;\n                attrs.x = seg[seglen - 2];\n                attrs.y = seg[seglen - 1];\n                attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n                attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n                attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n                attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n                attrs2.x = p2 && seg2[seg2len - 2];\n                attrs2.y = p2 && seg2[seg2len - 1];\n            }\n            if (!p2) {\n                pth.curve = pathClone(p);\n            }\n            return p2 ? [p, p2] : p;\n        }, null, pathClone),\n        parseDots = R._parseDots = cacher(function (gradient) {\n            var dots = [];\n            for (var i = 0, ii = gradient.length; i < ii; i++) {\n                var dot = {},\n                    par = gradient[i].match(/^([^:]*):?([\\d\\.]*)/);\n                dot.color = R.getRGB(par[1]);\n                if (dot.color.error) {\n                    return null;\n                }\n                dot.opacity = dot.color.opacity;\n                dot.color = dot.color.hex;\n                par[2] && (dot.offset = par[2] + \"%\");\n                dots.push(dot);\n            }\n            for (i = 1, ii = dots.length - 1; i < ii; i++) {\n                if (!dots[i].offset) {\n                    var start = toFloat(dots[i - 1].offset || 0),\n                        end = 0;\n                    for (var j = i + 1; j < ii; j++) {\n                        if (dots[j].offset) {\n                            end = dots[j].offset;\n                            break;\n                        }\n                    }\n                    if (!end) {\n                        end = 100;\n                        j = ii;\n                    }\n                    end = toFloat(end);\n                    var d = (end - start) / (j - i + 1);\n                    for (; i < j; i++) {\n                        start += d;\n                        dots[i].offset = start + \"%\";\n                    }\n                }\n            }\n            return dots;\n        }),\n        tear = R._tear = function (el, paper) {\n            el == paper.top && (paper.top = el.prev);\n            el == paper.bottom && (paper.bottom = el.next);\n            el.next && (el.next.prev = el.prev);\n            el.prev && (el.prev.next = el.next);\n        },\n        tofront = R._tofront = function (el, paper) {\n            if (paper.top === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = null;\n            el.prev = paper.top;\n            paper.top.next = el;\n            paper.top = el;\n        },\n        toback = R._toback = function (el, paper) {\n            if (paper.bottom === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = paper.bottom;\n            el.prev = null;\n            paper.bottom.prev = el;\n            paper.bottom = el;\n        },\n        insertafter = R._insertafter = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.top && (paper.top = el);\n            el2.next && (el2.next.prev = el);\n            el.next = el2.next;\n            el.prev = el2;\n            el2.next = el;\n        },\n        insertbefore = R._insertbefore = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.bottom && (paper.bottom = el);\n            el2.prev && (el2.prev.next = el);\n            el.prev = el2.prev;\n            el2.prev = el;\n            el.next = el2;\n        },\n        /*\\\n         * Raphael.toMatrix\n         [ method ]\n         **\n         * Utility method\n         **\n         * Returns matrix of transformations applied to a given path\n         > Parameters\n         - path (string) path string\n         - transform (string|array) transformation string\n         = (object) @Matrix\n        \\*/\n        toMatrix = R.toMatrix = function (path, transform) {\n            var bb = pathDimensions(path),\n                el = {\n                    _: {\n                        transform: E\n                    },\n                    getBBox: function () {\n                        return bb;\n                    }\n                };\n            extractTransform(el, transform);\n            return el.matrix;\n        },\n        /*\\\n         * Raphael.transformPath\n         [ method ]\n         **\n         * Utility method\n         **\n         * Returns path transformed by a given transformation\n         > Parameters\n         - path (string) path string\n         - transform (string|array) transformation string\n         = (string) path\n        \\*/\n        transformPath = R.transformPath = function (path, transform) {\n            return mapPath(path, toMatrix(path, transform));\n        },\n        extractTransform = R._extractTransform = function (el, tstr) {\n            if (tstr == null) {\n                return el._.transform;\n            }\n            tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || E);\n            var tdata = R.parseTransformString(tstr),\n                deg = 0,\n                dx = 0,\n                dy = 0,\n                sx = 1,\n                sy = 1,\n                _ = el._,\n                m = new Matrix;\n            _.transform = tdata || [];\n            if (tdata) {\n                for (var i = 0, ii = tdata.length; i < ii; i++) {\n                    var t = tdata[i],\n                        tlen = t.length,\n                        command = Str(t[0]).toLowerCase(),\n                        absolute = t[0] != command,\n                        inver = absolute ? m.invert() : 0,\n                        x1,\n                        y1,\n                        x2,\n                        y2,\n                        bb;\n                    if (command == \"t\" && tlen == 3) {\n                        if (absolute) {\n                            x1 = inver.x(0, 0);\n                            y1 = inver.y(0, 0);\n                            x2 = inver.x(t[1], t[2]);\n                            y2 = inver.y(t[1], t[2]);\n                            m.translate(x2 - x1, y2 - y1);\n                        } else {\n                            m.translate(t[1], t[2]);\n                        }\n                    } else if (command == \"r\") {\n                        if (tlen == 2) {\n                            bb = bb || el.getBBox(1);\n                            m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            deg += t[1];\n                        } else if (tlen == 4) {\n                            if (absolute) {\n                                x2 = inver.x(t[2], t[3]);\n                                y2 = inver.y(t[2], t[3]);\n                                m.rotate(t[1], x2, y2);\n                            } else {\n                                m.rotate(t[1], t[2], t[3]);\n                            }\n                            deg += t[1];\n                        }\n                    } else if (command == \"s\") {\n                        if (tlen == 2 || tlen == 3) {\n                            bb = bb || el.getBBox(1);\n                            m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            sx *= t[1];\n                            sy *= t[tlen - 1];\n                        } else if (tlen == 5) {\n                            if (absolute) {\n                                x2 = inver.x(t[3], t[4]);\n                                y2 = inver.y(t[3], t[4]);\n                                m.scale(t[1], t[2], x2, y2);\n                            } else {\n                                m.scale(t[1], t[2], t[3], t[4]);\n                            }\n                            sx *= t[1];\n                            sy *= t[2];\n                        }\n                    } else if (command == \"m\" && tlen == 7) {\n                        m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n                    }\n                    _.dirtyT = 1;\n                    el.matrix = m;\n                }\n            }\n\n            /*\\\n             * Element.matrix\n             [ property (object) ]\n             **\n             * Keeps @Matrix object, which represents element transformation\n            \\*/\n            el.matrix = m;\n\n            _.sx = sx;\n            _.sy = sy;\n            _.deg = deg;\n            _.dx = dx = m.e;\n            _.dy = dy = m.f;\n\n            if (sx == 1 && sy == 1 && !deg && _.bbox) {\n                _.bbox.x += +dx;\n                _.bbox.y += +dy;\n            } else {\n                _.dirtyT = 1;\n            }\n        },\n        getEmpty = function (item) {\n            var l = item[0];\n            switch (l.toLowerCase()) {\n                case \"t\": return [l, 0, 0];\n                case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n                case \"r\": if (item.length == 4) {\n                    return [l, 0, item[2], item[3]];\n                } else {\n                    return [l, 0];\n                }\n                case \"s\": if (item.length == 5) {\n                    return [l, 1, 1, item[3], item[4]];\n                } else if (item.length == 3) {\n                    return [l, 1, 1];\n                } else {\n                    return [l, 1];\n                }\n            }\n        },\n        equaliseTransform = R._equaliseTransform = function (t1, t2) {\n            t2 = Str(t2).replace(/\\.{3}|\\u2026/g, t1);\n            t1 = R.parseTransformString(t1) || [];\n            t2 = R.parseTransformString(t2) || [];\n            var maxlength = mmax(t1.length, t2.length),\n                from = [],\n                to = [],\n                i = 0, j, jj,\n                tt1, tt2;\n            for (; i < maxlength; i++) {\n                tt1 = t1[i] || getEmpty(t2[i]);\n                tt2 = t2[i] || getEmpty(tt1);\n                if ((tt1[0] != tt2[0]) ||\n                    (tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\n                    (tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\n                    ) {\n                    return;\n                }\n                from[i] = [];\n                to[i] = [];\n                for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\n                    j in tt1 && (from[i][j] = tt1[j]);\n                    j in tt2 && (to[i][j] = tt2[j]);\n                }\n            }\n            return {\n                from: from,\n                to: to\n            };\n        };\n    R._getContainer = function (x, y, w, h) {\n        var container;\n        container = h == null && !R.is(x, \"object\") ? g.doc.getElementById(x) : x;\n        if (container == null) {\n            return;\n        }\n        if (container.tagName) {\n            if (y == null) {\n                return {\n                    container: container,\n                    width: container.style.pixelWidth || container.offsetWidth,\n                    height: container.style.pixelHeight || container.offsetHeight\n                };\n            } else {\n                return {\n                    container: container,\n                    width: y,\n                    height: w\n                };\n            }\n        }\n        return {\n            container: 1,\n            x: x,\n            y: y,\n            width: w,\n            height: h\n        };\n    };\n    /*\\\n     * Raphael.pathToRelative\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to relative form\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n    \\*/\n    R.pathToRelative = pathToRelative;\n    R._engine = {};\n    /*\\\n     * Raphael.path2curve\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to a new path where all segments are cubic bezier curves.\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n    \\*/\n    R.path2curve = path2curve;\n    /*\\\n     * Raphael.matrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix based on given parameters.\n     > Parameters\n     - a (number)\n     - b (number)\n     - c (number)\n     - d (number)\n     - e (number)\n     - f (number)\n     = (object) @Matrix\n    \\*/\n    R.matrix = function (a, b, c, d, e, f) {\n        return new Matrix(a, b, c, d, e, f);\n    };\n    function Matrix(a, b, c, d, e, f) {\n        if (a != null) {\n            this.a = +a;\n            this.b = +b;\n            this.c = +c;\n            this.d = +d;\n            this.e = +e;\n            this.f = +f;\n        } else {\n            this.a = 1;\n            this.b = 0;\n            this.c = 0;\n            this.d = 1;\n            this.e = 0;\n            this.f = 0;\n        }\n    }\n    (function (matrixproto) {\n        /*\\\n         * Matrix.add\n         [ method ]\n         **\n         * Adds given matrix to existing one.\n         > Parameters\n         - a (number)\n         - b (number)\n         - c (number)\n         - d (number)\n         - e (number)\n         - f (number)\n         or\n         - matrix (object) @Matrix\n        \\*/\n        matrixproto.add = function (a, b, c, d, e, f) {\n            var out = [[], [], []],\n                m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\n                matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\n                x, y, z, res;\n\n            if (a && a instanceof Matrix) {\n                matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\n            }\n\n            for (x = 0; x < 3; x++) {\n                for (y = 0; y < 3; y++) {\n                    res = 0;\n                    for (z = 0; z < 3; z++) {\n                        res += m[x][z] * matrix[z][y];\n                    }\n                    out[x][y] = res;\n                }\n            }\n            this.a = out[0][0];\n            this.b = out[1][0];\n            this.c = out[0][1];\n            this.d = out[1][1];\n            this.e = out[0][2];\n            this.f = out[1][2];\n        };\n        /*\\\n         * Matrix.invert\n         [ method ]\n         **\n         * Returns inverted version of the matrix\n         = (object) @Matrix\n        \\*/\n        matrixproto.invert = function () {\n            var me = this,\n                x = me.a * me.d - me.b * me.c;\n            return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n        };\n        /*\\\n         * Matrix.clone\n         [ method ]\n         **\n         * Returns copy of the matrix\n         = (object) @Matrix\n        \\*/\n        matrixproto.clone = function () {\n            return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n        };\n        /*\\\n         * Matrix.translate\n         [ method ]\n         **\n         * Translate the matrix\n         > Parameters\n         - x (number)\n         - y (number)\n        \\*/\n        matrixproto.translate = function (x, y) {\n            this.add(1, 0, 0, 1, x, y);\n        };\n        /*\\\n         * Matrix.scale\n         [ method ]\n         **\n         * Scales the matrix\n         > Parameters\n         - x (number)\n         - y (number) #optional\n         - cx (number) #optional\n         - cy (number) #optional\n        \\*/\n        matrixproto.scale = function (x, y, cx, cy) {\n            y == null && (y = x);\n            (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\n            this.add(x, 0, 0, y, 0, 0);\n            (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\n        };\n        /*\\\n         * Matrix.rotate\n         [ method ]\n         **\n         * Rotates the matrix\n         > Parameters\n         - a (number)\n         - x (number)\n         - y (number)\n        \\*/\n        matrixproto.rotate = function (a, x, y) {\n            a = R.rad(a);\n            x = x || 0;\n            y = y || 0;\n            var cos = +math.cos(a).toFixed(9),\n                sin = +math.sin(a).toFixed(9);\n            this.add(cos, sin, -sin, cos, x, y);\n            this.add(1, 0, 0, 1, -x, -y);\n        };\n        /*\\\n         * Matrix.x\n         [ method ]\n         **\n         * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) x\n        \\*/\n        matrixproto.x = function (x, y) {\n            return x * this.a + y * this.c + this.e;\n        };\n        /*\\\n         * Matrix.y\n         [ method ]\n         **\n         * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) y\n        \\*/\n        matrixproto.y = function (x, y) {\n            return x * this.b + y * this.d + this.f;\n        };\n        matrixproto.get = function (i) {\n            return +this[Str.fromCharCode(97 + i)].toFixed(4);\n        };\n        matrixproto.toString = function () {\n            return R.svg ?\n                \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\" :\n                [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\n        };\n        matrixproto.toFilter = function () {\n            return \"progid:DXImageTransform.Microsoft.Matrix(M11=\" + this.get(0) +\n                \", M12=\" + this.get(2) + \", M21=\" + this.get(1) + \", M22=\" + this.get(3) +\n                \", Dx=\" + this.get(4) + \", Dy=\" + this.get(5) + \", sizingmethod='auto expand')\";\n        };\n        matrixproto.offset = function () {\n            return [this.e.toFixed(4), this.f.toFixed(4)];\n        };\n        function norm(a) {\n            return a[0] * a[0] + a[1] * a[1];\n        }\n        function normalize(a) {\n            var mag = math.sqrt(norm(a));\n            a[0] && (a[0] /= mag);\n            a[1] && (a[1] /= mag);\n        }\n        /*\\\n         * Matrix.split\n         [ method ]\n         **\n         * Splits matrix into primitive transformations\n         = (object) in format:\n         o dx (number) translation by x\n         o dy (number) translation by y\n         o scalex (number) scale by x\n         o scaley (number) scale by y\n         o shear (number) shear\n         o rotate (number) rotation in deg\n         o isSimple (boolean) could it be represented via simple transformations\n        \\*/\n        matrixproto.split = function () {\n            var out = {};\n            // translation\n            out.dx = this.e;\n            out.dy = this.f;\n\n            // scale and shear\n            var row = [[this.a, this.c], [this.b, this.d]];\n            out.scalex = math.sqrt(norm(row[0]));\n            normalize(row[0]);\n\n            out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n            row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n            out.scaley = math.sqrt(norm(row[1]));\n            normalize(row[1]);\n            out.shear /= out.scaley;\n\n            // rotation\n            var sin = -row[0][1],\n                cos = row[1][1];\n            if (cos < 0) {\n                out.rotate = R.deg(math.acos(cos));\n                if (sin < 0) {\n                    out.rotate = 360 - out.rotate;\n                }\n            } else {\n                out.rotate = R.deg(math.asin(sin));\n            }\n\n            out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n            out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n            out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n            return out;\n        };\n        /*\\\n         * Matrix.toTransformString\n         [ method ]\n         **\n         * Return transform string that represents given matrix\n         = (string) transform string\n        \\*/\n        matrixproto.toTransformString = function (shorter) {\n            var s = shorter || this[split]();\n            if (s.isSimple) {\n                s.scalex = +s.scalex.toFixed(4);\n                s.scaley = +s.scaley.toFixed(4);\n                s.rotate = +s.rotate.toFixed(4);\n                return  (s.dx || s.dy ? \"t\" + [s.dx, s.dy] : E) +\n                        (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E) +\n                        (s.rotate ? \"r\" + [s.rotate, 0, 0] : E);\n            } else {\n                return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n            }\n        };\n    })(Matrix.prototype);\n\n    var preventDefault = function () {\n        this.returnValue = false;\n    },\n    preventTouch = function () {\n        return this.originalEvent.preventDefault();\n    },\n    stopPropagation = function () {\n        this.cancelBubble = true;\n    },\n    stopTouch = function () {\n        return this.originalEvent.stopPropagation();\n    },\n    getEventPosition = function (e) {\n        var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n            scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n\n        return {\n            x: e.clientX + scrollX,\n            y: e.clientY + scrollY\n        };\n    },\n    addEvent = (function () {\n        if (g.doc.addEventListener) {\n            return function (obj, type, fn, element) {\n                var f = function (e) {\n                    var pos = getEventPosition(e);\n                    return fn.call(element, e, pos.x, pos.y);\n                };\n                obj.addEventListener(type, f, false);\n\n                if (supportsTouch && touchMap[type]) {\n                    var _f = function (e) {\n                        var pos = getEventPosition(e),\n                            olde = e;\n\n                        for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n                            if (e.targetTouches[i].target == obj) {\n                                e = e.targetTouches[i];\n                                e.originalEvent = olde;\n                                e.preventDefault = preventTouch;\n                                e.stopPropagation = stopTouch;\n                                break;\n                            }\n                        }\n\n                        return fn.call(element, e, pos.x, pos.y);\n                    };\n                    obj.addEventListener(touchMap[type], _f, false);\n                }\n\n                return function () {\n                    obj.removeEventListener(type, f, false);\n\n                    if (supportsTouch && touchMap[type])\n                        obj.removeEventListener(touchMap[type], _f, false);\n\n                    return true;\n                };\n            };\n        } else if (g.doc.attachEvent) {\n            return function (obj, type, fn, element) {\n                var f = function (e) {\n                    e = e || g.win.event;\n                    var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                        scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n                        x = e.clientX + scrollX,\n                        y = e.clientY + scrollY;\n                    e.preventDefault = e.preventDefault || preventDefault;\n                    e.stopPropagation = e.stopPropagation || stopPropagation;\n                    return fn.call(element, e, x, y);\n                };\n                obj.attachEvent(\"on\" + type, f);\n                var detacher = function () {\n                    obj.detachEvent(\"on\" + type, f);\n                    return true;\n                };\n                return detacher;\n            };\n        }\n    })(),\n    drag = [],\n    dragMove = function (e) {\n        var x = e.clientX,\n            y = e.clientY,\n            scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n            scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n            dragi,\n            j = drag.length;\n        while (j--) {\n            dragi = drag[j];\n            if (supportsTouch && e.touches) {\n                var i = e.touches.length,\n                    touch;\n                while (i--) {\n                    touch = e.touches[i];\n                    if (touch.identifier == dragi.el._drag.id) {\n                        x = touch.clientX;\n                        y = touch.clientY;\n                        (e.originalEvent ? e.originalEvent : e).preventDefault();\n                        break;\n                    }\n                }\n            } else {\n                e.preventDefault();\n            }\n            var node = dragi.el.node,\n                o,\n                next = node.nextSibling,\n                parent = node.parentNode,\n                display = node.style.display;\n            g.win.opera && parent.removeChild(node);\n            node.style.display = \"none\";\n            o = dragi.el.paper.getElementByPoint(x, y);\n            node.style.display = display;\n            g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n            o && eve(\"raphael.drag.over.\" + dragi.el.id, dragi.el, o);\n            x += scrollX;\n            y += scrollY;\n            eve(\"raphael.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n        }\n    },\n    dragUp = function (e) {\n        R.unmousemove(dragMove).unmouseup(dragUp);\n        var i = drag.length,\n            dragi;\n        while (i--) {\n            dragi = drag[i];\n            dragi.el._drag = {};\n            eve(\"raphael.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n        }\n        drag = [];\n    },\n    /*\\\n     * Raphael.el\n     [ property (object) ]\n     **\n     * You can add your own method to elements. This is useful when you want to hack default functionality or\n     * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\n     * you can redefine element method at any time. Expending element methods wouldn’t affect set.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: \"#f00\"});\n     | };\n     | // then use it\n     | paper.circle(100, 100, 20).red();\n    \\*/\n    elproto = R.el = {};\n    /*\\\n     * Element.click\n     [ method ]\n     **\n     * Adds event handler for click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unclick\n     [ method ]\n     **\n     * Removes event handler for click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.dblclick\n     [ method ]\n     **\n     * Adds event handler for double click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.undblclick\n     [ method ]\n     **\n     * Removes event handler for double click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mousedown\n     [ method ]\n     **\n     * Adds event handler for mousedown for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmousedown\n     [ method ]\n     **\n     * Removes event handler for mousedown for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mousemove\n     [ method ]\n     **\n     * Adds event handler for mousemove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmousemove\n     [ method ]\n     **\n     * Removes event handler for mousemove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseout\n     [ method ]\n     **\n     * Adds event handler for mouseout for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseout\n     [ method ]\n     **\n     * Removes event handler for mouseout for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseover\n     [ method ]\n     **\n     * Adds event handler for mouseover for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseover\n     [ method ]\n     **\n     * Removes event handler for mouseover for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseup\n     [ method ]\n     **\n     * Adds event handler for mouseup for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseup\n     [ method ]\n     **\n     * Removes event handler for mouseup for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchstart\n     [ method ]\n     **\n     * Adds event handler for touchstart for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchstart\n     [ method ]\n     **\n     * Removes event handler for touchstart for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchmove\n     [ method ]\n     **\n     * Adds event handler for touchmove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchmove\n     [ method ]\n     **\n     * Removes event handler for touchmove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchend\n     [ method ]\n     **\n     * Adds event handler for touchend for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchend\n     [ method ]\n     **\n     * Removes event handler for touchend for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchcancel\n     [ method ]\n     **\n     * Adds event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchcancel\n     [ method ]\n     **\n     * Removes event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n    for (var i = events.length; i--;) {\n        (function (eventName) {\n            R[eventName] = elproto[eventName] = function (fn, scope) {\n                if (R.is(fn, \"function\")) {\n                    this.events = this.events || [];\n                    this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\n                }\n                return this;\n            };\n            R[\"un\" + eventName] = elproto[\"un\" + eventName] = function (fn) {\n                var events = this.events || [],\n                    l = events.length;\n                while (l--){\n                    if (events[l].name == eventName && (R.is(fn, \"undefined\") || events[l].f == fn)) {\n                        events[l].unbind();\n                        events.splice(l, 1);\n                        !events.length && delete this.events;\n                    }\n                }\n                return this;\n            };\n        })(events[i]);\n    }\n\n    /*\\\n     * Element.data\n     [ method ]\n     **\n     * Adds or retrieves given value associated with given key.\n     **\n     * See also @Element.removeData\n     > Parameters\n     - key (string) key to store data\n     - value (any) #optional value to store\n     = (object) @Element\n     * or, if value is not specified:\n     = (any) value\n     * or, if key and value are not specified:\n     = (object) Key/value pairs for all the data associated with the element.\n     > Usage\n     | for (var i = 0, i < 5, i++) {\n     |     paper.circle(10 + 15 * i, 10, 10)\n     |          .attr({fill: \"#000\"})\n     |          .data(\"i\", i)\n     |          .click(function () {\n     |             alert(this.data(\"i\"));\n     |          });\n     | }\n    \\*/\n    elproto.data = function (key, value) {\n        var data = eldata[this.id] = eldata[this.id] || {};\n        if (arguments.length == 0) {\n            return data;\n        }\n        if (arguments.length == 1) {\n            if (R.is(key, \"object\")) {\n                for (var i in key) if (key[has](i)) {\n                    this.data(i, key[i]);\n                }\n                return this;\n            }\n            eve(\"raphael.data.get.\" + this.id, this, data[key], key);\n            return data[key];\n        }\n        data[key] = value;\n        eve(\"raphael.data.set.\" + this.id, this, value, key);\n        return this;\n    };\n    /*\\\n     * Element.removeData\n     [ method ]\n     **\n     * Removes value associated with an element by given key.\n     * If key is not provided, removes all the data of the element.\n     > Parameters\n     - key (string) #optional key\n     = (object) @Element\n    \\*/\n    elproto.removeData = function (key) {\n        if (key == null) {\n            delete eldata[this.id];\n        } else {\n            eldata[this.id] && delete eldata[this.id][key];\n        }\n        return this;\n    };\n     /*\\\n     * Element.getData\n     [ method ]\n     **\n     * Retrieves the element data\n     = (object) data\n    \\*/\n    elproto.getData = function () {\n        return clone(eldata[this.id] || {});\n    };\n    /*\\\n     * Element.hover\n     [ method ]\n     **\n     * Adds event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     - icontext (object) #optional context for hover in handler\n     - ocontext (object) #optional context for hover out handler\n     = (object) @Element\n    \\*/\n    elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n        return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n    };\n    /*\\\n     * Element.unhover\n     [ method ]\n     **\n     * Removes event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     = (object) @Element\n    \\*/\n    elproto.unhover = function (f_in, f_out) {\n        return this.unmouseover(f_in).unmouseout(f_out);\n    };\n    var draggable = [];\n    /*\\\n     * Element.drag\n     [ method ]\n     **\n     * Adds event handlers for drag of the element.\n     > Parameters\n     - onmove (function) handler for moving\n     - onstart (function) handler for drag start\n     - onend (function) handler for drag end\n     - mcontext (object) #optional context for moving handler\n     - scontext (object) #optional context for drag start handler\n     - econtext (object) #optional context for drag end handler\n     * Additionally following `drag` events will be triggered: `drag.start.<id>` on start,\n     * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element\n     * `drag.over.<id>` will be fired as well.\n     *\n     * Start event and start handler will be called in specified context or in context of the element with following parameters:\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * Move event and move handler will be called in specified context or in context of the element with following parameters:\n     o dx (number) shift by x from the start point\n     o dy (number) shift by y from the start point\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * End event and end handler will be called in specified context or in context of the element with following parameters:\n     o event (object) DOM event object\n     = (object) @Element\n    \\*/\n    elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n        function start(e) {\n            (e.originalEvent || e).preventDefault();\n            var x = e.clientX,\n                y = e.clientY,\n                scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n            this._drag.id = e.identifier;\n            if (supportsTouch && e.touches) {\n                var i = e.touches.length, touch;\n                while (i--) {\n                    touch = e.touches[i];\n                    this._drag.id = touch.identifier;\n                    if (touch.identifier == this._drag.id) {\n                        x = touch.clientX;\n                        y = touch.clientY;\n                        break;\n                    }\n                }\n            }\n            this._drag.x = x + scrollX;\n            this._drag.y = y + scrollY;\n            !drag.length && R.mousemove(dragMove).mouseup(dragUp);\n            drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n            onstart && eve.on(\"raphael.drag.start.\" + this.id, onstart);\n            onmove && eve.on(\"raphael.drag.move.\" + this.id, onmove);\n            onend && eve.on(\"raphael.drag.end.\" + this.id, onend);\n            eve(\"raphael.drag.start.\" + this.id, start_scope || move_scope || this, this._drag.x, this._drag.y, e);\n        }\n        this._drag = {};\n        draggable.push({el: this, start: start});\n        this.mousedown(start);\n        return this;\n    };\n    /*\\\n     * Element.onDragOver\n     [ method ]\n     **\n     * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id).\n     > Parameters\n     - f (function) handler for event, first argument would be the element you are dragging over\n    \\*/\n    elproto.onDragOver = function (f) {\n        f ? eve.on(\"raphael.drag.over.\" + this.id, f) : eve.unbind(\"raphael.drag.over.\" + this.id);\n    };\n    /*\\\n     * Element.undrag\n     [ method ]\n     **\n     * Removes all drag event handlers from given element.\n    \\*/\n    elproto.undrag = function () {\n        var i = draggable.length;\n        while (i--) if (draggable[i].el == this) {\n            this.unmousedown(draggable[i].start);\n            draggable.splice(i, 1);\n            eve.unbind(\"raphael.drag.*.\" + this.id);\n        }\n        !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\n        drag = [];\n    };\n    /*\\\n     * Paper.circle\n     [ method ]\n     **\n     * Draws a circle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - r (number) radius\n     = (object) Raphaël element object with type “circle”\n     **\n     > Usage\n     | var c = paper.circle(50, 50, 40);\n    \\*/\n    paperproto.circle = function (x, y, r) {\n        var out = R._engine.circle(this, x || 0, y || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.rect\n     [ method ]\n     *\n     * Draws a rectangle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the top left corner\n     - y (number) y coordinate of the top left corner\n     - width (number) width\n     - height (number) height\n     - r (number) #optional radius for rounded corners, default is 0\n     = (object) Raphaël element object with type “rect”\n     **\n     > Usage\n     | // regular rectangle\n     | var c = paper.rect(10, 10, 50, 50);\n     | // rectangle with rounded corners\n     | var c = paper.rect(40, 40, 50, 50, 10);\n    \\*/\n    paperproto.rect = function (x, y, w, h, r) {\n        var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.ellipse\n     [ method ]\n     **\n     * Draws an ellipse.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - rx (number) horizontal radius\n     - ry (number) vertical radius\n     = (object) Raphaël element object with type “ellipse”\n     **\n     > Usage\n     | var c = paper.ellipse(50, 50, 40, 20);\n    \\*/\n    paperproto.ellipse = function (x, y, rx, ry) {\n        var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.path\n     [ method ]\n     **\n     * Creates a path element by given path data string.\n     > Parameters\n     - pathString (string) #optional path string in SVG format.\n     * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\n     | \"M10,20L30,40\"\n     * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\n     *\n     # <p>Here is short list of commands available, for more details see <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path's data attribute's format are described in the SVG specification.\">SVG path string format</a>.</p>\n     # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n     # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n     # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n     # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n     # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n     # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n     # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n     # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n     # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n     # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n     # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n     # <tr><td>R</td><td><a href=\"http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline\">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n     * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\n     * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\n     > Usage\n     | var c = paper.path(\"M10 10L90 90\");\n     | // draw a diagonal line:\n     | // move to 10,10, line to 90,90\n     * For example of path strings, check out these icons: http://raphaeljs.com/icons/\n    \\*/\n    paperproto.path = function (pathString) {\n        pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\n        var out = R._engine.path(R.format[apply](R, arguments), this);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.image\n     [ method ]\n     **\n     * Embeds an image into the surface.\n     **\n     > Parameters\n     **\n     - src (string) URI of the source image\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - width (number) width of the image\n     - height (number) height of the image\n     = (object) Raphaël element object with type “image”\n     **\n     > Usage\n     | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n    \\*/\n    paperproto.image = function (src, x, y, w, h) {\n        var out = R._engine.image(this, src || \"about:blank\", x || 0, y || 0, w || 0, h || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.text\n     [ method ]\n     **\n     * Draws a text string. If you need line breaks, put “\\n” in the string.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - text (string) The text string to draw\n     = (object) Raphaël element object with type “text”\n     **\n     > Usage\n     | var t = paper.text(50, 50, \"Raphaël\\nkicks\\nbutt!\");\n    \\*/\n    paperproto.text = function (x, y, text) {\n        var out = R._engine.text(this, x || 0, y || 0, Str(text));\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.set\n     [ method ]\n     **\n     * Creates array-like object to keep and operate several elements at once.\n     * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\n     * Sets act as pseudo elements — all methods available to an element can be used on a set.\n     = (object) array-like object that represents set of elements\n     **\n     > Usage\n     | var st = paper.set();\n     | st.push(\n     |     paper.circle(10, 10, 5),\n     |     paper.circle(30, 10, 5)\n     | );\n     | st.attr({fill: \"red\"}); // changes the fill of both circles\n    \\*/\n    paperproto.set = function (itemsArray) {\n        !R.is(itemsArray, \"array\") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\n        var out = new Set(itemsArray);\n        this.__set__ && this.__set__.push(out);\n        out[\"paper\"] = this;\n        out[\"type\"] = \"set\";\n        return out;\n    };\n    /*\\\n     * Paper.setStart\n     [ method ]\n     **\n     * Creates @Paper.set. All elements that will be created after calling this method and before calling\n     * @Paper.setFinish will be added to the set.\n     **\n     > Usage\n     | paper.setStart();\n     | paper.circle(10, 10, 5),\n     | paper.circle(30, 10, 5)\n     | var st = paper.setFinish();\n     | st.attr({fill: \"red\"}); // changes the fill of both circles\n    \\*/\n    paperproto.setStart = function (set) {\n        this.__set__ = set || this.set();\n    };\n    /*\\\n     * Paper.setFinish\n     [ method ]\n     **\n     * See @Paper.setStart. This method finishes catching and returns resulting set.\n     **\n     = (object) set\n    \\*/\n    paperproto.setFinish = function (set) {\n        var out = this.__set__;\n        delete this.__set__;\n        return out;\n    };\n    /*\\\n     * Paper.getSize\n     [ method ]\n     **\n     * Obtains current paper actual size.\n     **\n     = (object)\n     \\*/\n    paperproto.getSize = function () {\n        var container = this.canvas.parentNode;\n        return {\n            width: container.offsetWidth,\n            height: container.offsetHeight\n                };\n        };\n    /*\\\n     * Paper.setSize\n     [ method ]\n     **\n     * If you need to change dimensions of the canvas call this method\n     **\n     > Parameters\n     **\n     - width (number) new width of the canvas\n     - height (number) new height of the canvas\n    \\*/\n    paperproto.setSize = function (width, height) {\n        return R._engine.setSize.call(this, width, height);\n    };\n    /*\\\n     * Paper.setViewBox\n     [ method ]\n     **\n     * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\n     * specifying new boundaries.\n     **\n     > Parameters\n     **\n     - x (number) new x position, default is `0`\n     - y (number) new y position, default is `0`\n     - w (number) new width of the canvas\n     - h (number) new height of the canvas\n     - fit (boolean) `true` if you want graphics to fit into new boundary box\n    \\*/\n    paperproto.setViewBox = function (x, y, w, h, fit) {\n        return R._engine.setViewBox.call(this, x, y, w, h, fit);\n    };\n    /*\\\n     * Paper.top\n     [ property ]\n     **\n     * Points to the topmost element on the paper\n    \\*/\n    /*\\\n     * Paper.bottom\n     [ property ]\n     **\n     * Points to the bottom element on the paper\n    \\*/\n    paperproto.top = paperproto.bottom = null;\n    /*\\\n     * Paper.raphael\n     [ property ]\n     **\n     * Points to the @Raphael object/function\n    \\*/\n    paperproto.raphael = R;\n    var getOffset = function (elem) {\n        var box = elem.getBoundingClientRect(),\n            doc = elem.ownerDocument,\n            body = doc.body,\n            docElem = doc.documentElement,\n            clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n            top  = box.top  + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n            left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n        return {\n            y: top,\n            x: left\n        };\n    };\n    /*\\\n     * Paper.getElementByPoint\n     [ method ]\n     **\n     * Returns you topmost element under given point.\n     **\n     = (object) Raphaël element object\n     > Parameters\n     **\n     - x (number) x coordinate from the top left corner of the window\n     - y (number) y coordinate from the top left corner of the window\n     > Usage\n     | paper.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n    \\*/\n    paperproto.getElementByPoint = function (x, y) {\n        var paper = this,\n            svg = paper.canvas,\n            target = g.doc.elementFromPoint(x, y);\n        if (g.win.opera && target.tagName == \"svg\") {\n            var so = getOffset(svg),\n                sr = svg.createSVGRect();\n            sr.x = x - so.x;\n            sr.y = y - so.y;\n            sr.width = sr.height = 1;\n            var hits = svg.getIntersectionList(sr, null);\n            if (hits.length) {\n                target = hits[hits.length - 1];\n            }\n        }\n        if (!target) {\n            return null;\n        }\n        while (target.parentNode && target != svg.parentNode && !target.raphael) {\n            target = target.parentNode;\n        }\n        target == paper.canvas.parentNode && (target = svg);\n        target = target && target.raphael ? paper.getById(target.raphaelid) : null;\n        return target;\n    };\n\n    /*\\\n     * Paper.getElementsByBBox\n     [ method ]\n     **\n     * Returns set of elements that have an intersecting bounding box\n     **\n     > Parameters\n     **\n     - bbox (object) bbox to check with\n     = (object) @Set\n     \\*/\n    paperproto.getElementsByBBox = function (bbox) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (R.isBBoxIntersect(el.getBBox(), bbox)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n\n    /*\\\n     * Paper.getById\n     [ method ]\n     **\n     * Returns you element by its internal ID.\n     **\n     > Parameters\n     **\n     - id (number) id\n     = (object) Raphaël element object\n    \\*/\n    paperproto.getById = function (id) {\n        var bot = this.bottom;\n        while (bot) {\n            if (bot.id == id) {\n                return bot;\n            }\n            bot = bot.next;\n        }\n        return null;\n    };\n    /*\\\n     * Paper.forEach\n     [ method ]\n     **\n     * Executes given function for each element on the paper\n     *\n     * If callback function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Paper object\n     > Usage\n     | paper.forEach(function (el) {\n     |     el.attr({ stroke: \"blue\" });\n     | });\n    \\*/\n    paperproto.forEach = function (callback, thisArg) {\n        var bot = this.bottom;\n        while (bot) {\n            if (callback.call(thisArg, bot) === false) {\n                return this;\n            }\n            bot = bot.next;\n        }\n        return this;\n    };\n    /*\\\n     * Paper.getElementsByPoint\n     [ method ]\n     **\n     * Returns set of elements that have common point inside\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (object) @Set\n    \\*/\n    paperproto.getElementsByPoint = function (x, y) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n    function x_y() {\n        return this.x + S + this.y;\n    }\n    function x_y_w_h() {\n        return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n    }\n    /*\\\n     * Element.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this element’s shape\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point inside the shape\n    \\*/\n    elproto.isPointInside = function (x, y) {\n        var rp = this.realPath = getPath[this.type](this);\n        if (this.attr('transform') && this.attr('transform').length) {\n            rp = R.transformPath(rp, this.attr('transform'));\n        }\n        return R.isPointInsidePath(rp, x, y);\n    };\n    /*\\\n     * Element.getBBox\n     [ method ]\n     **\n     * Return bounding box for a given element\n     **\n     > Parameters\n     **\n     - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\n     = (object) Bounding box object:\n     o {\n     o     x: (number) top left corner x\n     o     y: (number) top left corner y\n     o     x2: (number) bottom right corner x\n     o     y2: (number) bottom right corner y\n     o     width: (number) width\n     o     height: (number) height\n     o }\n    \\*/\n    elproto.getBBox = function (isWithoutTransform) {\n        if (this.removed) {\n            return {};\n        }\n        var _ = this._;\n        if (isWithoutTransform) {\n            if (_.dirty || !_.bboxwt) {\n                this.realPath = getPath[this.type](this);\n                _.bboxwt = pathDimensions(this.realPath);\n                _.bboxwt.toString = x_y_w_h;\n                _.dirty = 0;\n            }\n            return _.bboxwt;\n        }\n        if (_.dirty || _.dirtyT || !_.bbox) {\n            if (_.dirty || !this.realPath) {\n                _.bboxwt = 0;\n                this.realPath = getPath[this.type](this);\n            }\n            _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\n            _.bbox.toString = x_y_w_h;\n            _.dirty = _.dirtyT = 0;\n        }\n        return _.bbox;\n    };\n    /*\\\n     * Element.clone\n     [ method ]\n     **\n     = (object) clone of a given element\n     **\n    \\*/\n    elproto.clone = function () {\n        if (this.removed) {\n            return null;\n        }\n        var out = this.paper[this.type]().attr(this.attr());\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Element.glow\n     [ method ]\n     **\n     * Return set of elements that create glow-like effect around given element. See @Paper.set.\n     *\n     * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\n     **\n     > Parameters\n     **\n     - glow (object) #optional parameters object with all properties optional:\n     o {\n     o     width (number) size of the glow, default is `10`\n     o     fill (boolean) will it be filled, default is `false`\n     o     opacity (number) opacity, default is `0.5`\n     o     offsetx (number) horizontal offset, default is `0`\n     o     offsety (number) vertical offset, default is `0`\n     o     color (string) glow colour, default is `black`\n     o }\n     = (object) @Paper.set of elements that represents glow\n    \\*/\n    elproto.glow = function (glow) {\n        if (this.type == \"text\") {\n            return null;\n        }\n        glow = glow || {};\n        var s = {\n            width: (glow.width || 10) + (+this.attr(\"stroke-width\") || 1),\n            fill: glow.fill || false,\n            opacity: glow.opacity == null ? .5 : glow.opacity,\n            offsetx: glow.offsetx || 0,\n            offsety: glow.offsety || 0,\n            color: glow.color || \"#000\"\n        },\n            c = s.width / 2,\n            r = this.paper,\n            out = r.set(),\n            path = this.realPath || getPath[this.type](this);\n        path = this.matrix ? mapPath(path, this.matrix) : path;\n        for (var i = 1; i < c + 1; i++) {\n            out.push(r.path(path).attr({\n                stroke: s.color,\n                fill: s.fill ? s.color : \"none\",\n                \"stroke-linejoin\": \"round\",\n                \"stroke-linecap\": \"round\",\n                \"stroke-width\": +(s.width / c * i).toFixed(3),\n                opacity: +(s.opacity / c).toFixed(3)\n            }));\n        }\n        return out.insertBefore(this).translate(s.offsetx, s.offsety);\n    };\n    var curveslengths = {},\n    getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n        if (length == null) {\n            return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n        } else {\n            return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n        }\n    },\n    getLengthFactory = function (istotal, subpath) {\n        return function (path, length, onlystart) {\n            path = path2curve(path);\n            var x, y, p, l, sp = \"\", subpaths = {}, point,\n                len = 0;\n            for (var i = 0, ii = path.length; i < ii; i++) {\n                p = path[i];\n                if (p[0] == \"M\") {\n                    x = +p[1];\n                    y = +p[2];\n                } else {\n                    l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                    if (len + l > length) {\n                        if (subpath && !subpaths.start) {\n                            point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                            sp += [\"C\" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\n                            if (onlystart) {return sp;}\n                            subpaths.start = sp;\n                            sp = [\"M\" + point.x, point.y + \"C\" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\n                            len += l;\n                            x = +p[5];\n                            y = +p[6];\n                            continue;\n                        }\n                        if (!istotal && !subpath) {\n                            point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                            return {x: point.x, y: point.y, alpha: point.alpha};\n                        }\n                    }\n                    len += l;\n                    x = +p[5];\n                    y = +p[6];\n                }\n                sp += p.shift() + p;\n            }\n            subpaths.end = sp;\n            point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n            point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\n            return point;\n        };\n    };\n    var getTotalLength = getLengthFactory(1),\n        getPointAtLength = getLengthFactory(),\n        getSubpathsAtLength = getLengthFactory(0, 1);\n    /*\\\n     * Raphael.getTotalLength\n     [ method ]\n     **\n     * Returns length of the given path in pixels.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string.\n     **\n     = (number) length.\n    \\*/\n    R.getTotalLength = getTotalLength;\n    /*\\\n     * Raphael.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n    \\*/\n    R.getPointAtLength = getPointAtLength;\n    /*\\\n     * Raphael.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given path from given length to given length.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n    \\*/\n    R.getSubpath = function (path, from, to) {\n        if (this.getTotalLength(path) - to < 1e-6) {\n            return getSubpathsAtLength(path, from).end;\n        }\n        var a = getSubpathsAtLength(path, to, 1);\n        return from ? getSubpathsAtLength(a, from).end : a;\n    };\n    /*\\\n     * Element.getTotalLength\n     [ method ]\n     **\n     * Returns length of the path in pixels. Only works for element of “path” type.\n     = (number) length.\n    \\*/\n    elproto.getTotalLength = function () {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        if (this.node.getTotalLength) {\n            return this.node.getTotalLength();\n        }\n\n        return getTotalLength(path);\n    };\n    /*\\\n     * Element.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n    \\*/\n    elproto.getPointAtLength = function (length) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return getPointAtLength(path, length);\n    };\n    /*\\\n     * Element.getPath\n     [ method ]\n     **\n     * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\n     = (object) path\n     **\n    \\*/\n    elproto.getPath = function () {\n        var path,\n            getPath = R._getPath[this.type];\n\n        if (this.type == \"text\" || this.type == \"set\") {\n            return;\n        }\n\n        if (getPath) {\n            path = getPath(this);\n        }\n\n        return path;\n    };\n    /*\\\n     * Element.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given element from given length to given length. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n    \\*/\n    elproto.getSubpath = function (from, to) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return R.getSubpath(path, from, to);\n    };\n    /*\\\n     * Raphael.easing_formulas\n     [ property ]\n     **\n     * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\n     # <ul>\n     #     <li>“linear”</li>\n     #     <li>“&lt;” or “easeIn” or “ease-in”</li>\n     #     <li>“>” or “easeOut” or “ease-out”</li>\n     #     <li>“&lt;>” or “easeInOut” or “ease-in-out”</li>\n     #     <li>“backIn” or “back-in”</li>\n     #     <li>“backOut” or “back-out”</li>\n     #     <li>“elastic”</li>\n     #     <li>“bounce”</li>\n     # </ul>\n     # <p>See also <a href=\"http://raphaeljs.com/easing.html\">Easing demo</a>.</p>\n    \\*/\n    var ef = R.easing_formulas = {\n        linear: function (n) {\n            return n;\n        },\n        \"<\": function (n) {\n            return pow(n, 1.7);\n        },\n        \">\": function (n) {\n            return pow(n, .48);\n        },\n        \"<>\": function (n) {\n            var q = .48 - n / 1.04,\n                Q = math.sqrt(.1734 + q * q),\n                x = Q - q,\n                X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n                y = -Q - q,\n                Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n                t = X + Y + .5;\n            return (1 - t) * 3 * t * t + t * t * t;\n        },\n        backIn: function (n) {\n            var s = 1.70158;\n            return n * n * ((s + 1) * n - s);\n        },\n        backOut: function (n) {\n            n = n - 1;\n            var s = 1.70158;\n            return n * n * ((s + 1) * n + s) + 1;\n        },\n        elastic: function (n) {\n            if (n == !!n) {\n                return n;\n            }\n            return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\n        },\n        bounce: function (n) {\n            var s = 7.5625,\n                p = 2.75,\n                l;\n            if (n < (1 / p)) {\n                l = s * n * n;\n            } else {\n                if (n < (2 / p)) {\n                    n -= (1.5 / p);\n                    l = s * n * n + .75;\n                } else {\n                    if (n < (2.5 / p)) {\n                        n -= (2.25 / p);\n                        l = s * n * n + .9375;\n                    } else {\n                        n -= (2.625 / p);\n                        l = s * n * n + .984375;\n                    }\n                }\n            }\n            return l;\n        }\n    };\n    ef.easeIn = ef[\"ease-in\"] = ef[\"<\"];\n    ef.easeOut = ef[\"ease-out\"] = ef[\">\"];\n    ef.easeInOut = ef[\"ease-in-out\"] = ef[\"<>\"];\n    ef[\"back-in\"] = ef.backIn;\n    ef[\"back-out\"] = ef.backOut;\n\n    var animationElements = [],\n        requestAnimFrame = window.requestAnimationFrame       ||\n                           window.webkitRequestAnimationFrame ||\n                           window.mozRequestAnimationFrame    ||\n                           window.oRequestAnimationFrame      ||\n                           window.msRequestAnimationFrame     ||\n                           function (callback) {\n                               setTimeout(callback, 16);\n                           },\n        animation = function () {\n            var Now = +new Date,\n                l = 0;\n            for (; l < animationElements.length; l++) {\n                var e = animationElements[l];\n                if (e.el.removed || e.paused) {\n                    continue;\n                }\n                var time = Now - e.start,\n                    ms = e.ms,\n                    easing = e.easing,\n                    from = e.from,\n                    diff = e.diff,\n                    to = e.to,\n                    t = e.t,\n                    that = e.el,\n                    set = {},\n                    now,\n                    init = {},\n                    key;\n                if (e.initstatus) {\n                    time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\n                    e.status = e.initstatus;\n                    delete e.initstatus;\n                    e.stop && animationElements.splice(l--, 1);\n                } else {\n                    e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\n                }\n                if (time < 0) {\n                    continue;\n                }\n                if (time < ms) {\n                    var pos = easing(time / ms);\n                    for (var attr in from) if (from[has](attr)) {\n                        switch (availableAnimAttrs[attr]) {\n                            case nu:\n                                now = +from[attr] + pos * ms * diff[attr];\n                                break;\n                            case \"colour\":\n                                now = \"rgb(\" + [\n                                    upto255(round(from[attr].r + pos * ms * diff[attr].r)),\n                                    upto255(round(from[attr].g + pos * ms * diff[attr].g)),\n                                    upto255(round(from[attr].b + pos * ms * diff[attr].b))\n                                ].join(\",\") + \")\";\n                                break;\n                            case \"path\":\n                                now = [];\n                                for (var i = 0, ii = from[attr].length; i < ii; i++) {\n                                    now[i] = [from[attr][i][0]];\n                                    for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                    }\n                                    now[i] = now[i].join(S);\n                                }\n                                now = now.join(S);\n                                break;\n                            case \"transform\":\n                                if (diff[attr].real) {\n                                    now = [];\n                                    for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                        now[i] = [from[attr][i][0]];\n                                        for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                            now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                        }\n                                    }\n                                } else {\n                                    var get = function (i) {\n                                        return +from[attr][i] + pos * ms * diff[attr][i];\n                                    };\n                                    // now = [[\"r\", get(2), 0, 0], [\"t\", get(3), get(4)], [\"s\", get(0), get(1), 0, 0]];\n                                    now = [[\"m\", get(0), get(1), get(2), get(3), get(4), get(5)]];\n                                }\n                                break;\n                            case \"csv\":\n                                if (attr == \"clip-rect\") {\n                                    now = [];\n                                    i = 4;\n                                    while (i--) {\n                                        now[i] = +from[attr][i] + pos * ms * diff[attr][i];\n                                    }\n                                }\n                                break;\n                            default:\n                                var from2 = [][concat](from[attr]);\n                                now = [];\n                                i = that.paper.customAttributes[attr].length;\n                                while (i--) {\n                                    now[i] = +from2[i] + pos * ms * diff[attr][i];\n                                }\n                                break;\n                        }\n                        set[attr] = now;\n                    }\n                    that.attr(set);\n                    (function (id, that, anim) {\n                        setTimeout(function () {\n                            eve(\"raphael.anim.frame.\" + id, that, anim);\n                        });\n                    })(that.id, that, e.anim);\n                } else {\n                    (function(f, el, a) {\n                        setTimeout(function() {\n                            eve(\"raphael.anim.frame.\" + el.id, el, a);\n                            eve(\"raphael.anim.finish.\" + el.id, el, a);\n                            R.is(f, \"function\") && f.call(el);\n                        });\n                    })(e.callback, that, e.anim);\n                    that.attr(to);\n                    animationElements.splice(l--, 1);\n                    if (e.repeat > 1 && !e.next) {\n                        for (key in to) if (to[has](key)) {\n                            init[key] = e.totalOrigin[key];\n                        }\n                        e.el.attr(init);\n                        runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\n                    }\n                    if (e.next && !e.stop) {\n                        runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\n                    }\n                }\n            }\n            animationElements.length && requestAnimFrame(animation);\n        },\n        upto255 = function (color) {\n            return color > 255 ? 255 : color < 0 ? 0 : color;\n        };\n    /*\\\n     * Element.animateWith\n     [ method ]\n     **\n     * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\n     **\n     > Parameters\n     **\n     - el (object) element to sync with\n     - anim (object) animation to sync with\n     - params (object) #optional final attributes for the element, see also @Element.attr\n     - ms (number) #optional number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - element (object) element to sync with\n     - anim (object) animation to sync with\n     - animation (object) #optional animation object, see @Raphael.animation\n     **\n     = (object) original element\n    \\*/\n    elproto.animateWith = function (el, anim, params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\n            x, y;\n        runAnimation(a, element, a.percents[0], null, element.attr());\n        for (var i = 0, ii = animationElements.length; i < ii; i++) {\n            if (animationElements[i].anim == anim && animationElements[i].el == el) {\n                animationElements[ii - 1].start = animationElements[i].start;\n                break;\n            }\n        }\n        return element;\n        //\n        //\n        // var a = params ? R.animation(params, ms, easing, callback) : anim,\n        //     status = element.status(anim);\n        // return this.animate(a).status(a, status * anim.ms / a.ms);\n    };\n    function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n        var cx = 3 * p1x,\n            bx = 3 * (p2x - p1x) - cx,\n            ax = 1 - cx - bx,\n            cy = 3 * p1y,\n            by = 3 * (p2y - p1y) - cy,\n            ay = 1 - cy - by;\n        function sampleCurveX(t) {\n            return ((ax * t + bx) * t + cx) * t;\n        }\n        function solve(x, epsilon) {\n            var t = solveCurveX(x, epsilon);\n            return ((ay * t + by) * t + cy) * t;\n        }\n        function solveCurveX(x, epsilon) {\n            var t0, t1, t2, x2, d2, i;\n            for(t2 = x, i = 0; i < 8; i++) {\n                x2 = sampleCurveX(t2) - x;\n                if (abs(x2) < epsilon) {\n                    return t2;\n                }\n                d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\n                if (abs(d2) < 1e-6) {\n                    break;\n                }\n                t2 = t2 - x2 / d2;\n            }\n            t0 = 0;\n            t1 = 1;\n            t2 = x;\n            if (t2 < t0) {\n                return t0;\n            }\n            if (t2 > t1) {\n                return t1;\n            }\n            while (t0 < t1) {\n                x2 = sampleCurveX(t2);\n                if (abs(x2 - x) < epsilon) {\n                    return t2;\n                }\n                if (x > x2) {\n                    t0 = t2;\n                } else {\n                    t1 = t2;\n                }\n                t2 = (t1 - t0) / 2 + t0;\n            }\n            return t2;\n        }\n        return solve(t, 1 / (200 * duration));\n    }\n    elproto.onAnimation = function (f) {\n        f ? eve.on(\"raphael.anim.frame.\" + this.id, f) : eve.unbind(\"raphael.anim.frame.\" + this.id);\n        return this;\n    };\n    function Animation(anim, ms) {\n        var percents = [],\n            newAnim = {};\n        this.ms = ms;\n        this.times = 1;\n        if (anim) {\n            for (var attr in anim) if (anim[has](attr)) {\n                newAnim[toFloat(attr)] = anim[attr];\n                percents.push(toFloat(attr));\n            }\n            percents.sort(sortByNumber);\n        }\n        this.anim = newAnim;\n        this.top = percents[percents.length - 1];\n        this.percents = percents;\n    }\n    /*\\\n     * Animation.delay\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given delay.\n     **\n     > Parameters\n     **\n     - delay (number) number of ms to pass between animation start and actual animation\n     **\n     = (object) new altered Animation object\n     | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\n     | circle1.animate(anim); // run the given animation immediately\n     | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\n    \\*/\n    Animation.prototype.delay = function (delay) {\n        var a = new Animation(this.anim, this.ms);\n        a.times = this.times;\n        a.del = +delay || 0;\n        return a;\n    };\n    /*\\\n     * Animation.repeat\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given repetition.\n     **\n     > Parameters\n     **\n     - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\n     **\n     = (object) new altered Animation object\n    \\*/\n    Animation.prototype.repeat = function (times) {\n        var a = new Animation(this.anim, this.ms);\n        a.del = this.del;\n        a.times = math.floor(mmax(times, 0)) || 1;\n        return a;\n    };\n    function runAnimation(anim, element, percent, status, totalOrigin, times) {\n        percent = toFloat(percent);\n        var params,\n            isInAnim,\n            isInAnimSet,\n            percents = [],\n            next,\n            prev,\n            timestamp,\n            ms = anim.ms,\n            from = {},\n            to = {},\n            diff = {};\n        if (status) {\n            for (i = 0, ii = animationElements.length; i < ii; i++) {\n                var e = animationElements[i];\n                if (e.el.id == element.id && e.anim == anim) {\n                    if (e.percent != percent) {\n                        animationElements.splice(i, 1);\n                        isInAnimSet = 1;\n                    } else {\n                        isInAnim = e;\n                    }\n                    element.attr(e.totalOrigin);\n                    break;\n                }\n            }\n        } else {\n            status = +to; // NaN\n        }\n        for (var i = 0, ii = anim.percents.length; i < ii; i++) {\n            if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\n                percent = anim.percents[i];\n                prev = anim.percents[i - 1] || 0;\n                ms = ms / anim.top * (percent - prev);\n                next = anim.percents[i + 1];\n                params = anim.anim[percent];\n                break;\n            } else if (status) {\n                element.attr(anim.anim[anim.percents[i]]);\n            }\n        }\n        if (!params) {\n            return;\n        }\n        if (!isInAnim) {\n            for (var attr in params) if (params[has](attr)) {\n                if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\n                    from[attr] = element.attr(attr);\n                    (from[attr] == null) && (from[attr] = availableAttrs[attr]);\n                    to[attr] = params[attr];\n                    switch (availableAnimAttrs[attr]) {\n                        case nu:\n                            diff[attr] = (to[attr] - from[attr]) / ms;\n                            break;\n                        case \"colour\":\n                            from[attr] = R.getRGB(from[attr]);\n                            var toColour = R.getRGB(to[attr]);\n                            diff[attr] = {\n                                r: (toColour.r - from[attr].r) / ms,\n                                g: (toColour.g - from[attr].g) / ms,\n                                b: (toColour.b - from[attr].b) / ms\n                            };\n                            break;\n                        case \"path\":\n                            var pathes = path2curve(from[attr], to[attr]),\n                                toPath = pathes[1];\n                            from[attr] = pathes[0];\n                            diff[attr] = [];\n                            for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                diff[attr][i] = [0];\n                                for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                    diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\n                                }\n                            }\n                            break;\n                        case \"transform\":\n                            var _ = element._,\n                                eq = equaliseTransform(_[attr], to[attr]);\n                            if (eq) {\n                                from[attr] = eq.from;\n                                to[attr] = eq.to;\n                                diff[attr] = [];\n                                diff[attr].real = true;\n                                for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                    diff[attr][i] = [from[attr][i][0]];\n                                    for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\n                                    }\n                                }\n                            } else {\n                                var m = (element.matrix || new Matrix),\n                                    to2 = {\n                                        _: {transform: _.transform},\n                                        getBBox: function () {\n                                            return element.getBBox(1);\n                                        }\n                                    };\n                                from[attr] = [\n                                    m.a,\n                                    m.b,\n                                    m.c,\n                                    m.d,\n                                    m.e,\n                                    m.f\n                                ];\n                                extractTransform(to2, to[attr]);\n                                to[attr] = to2._.transform;\n                                diff[attr] = [\n                                    (to2.matrix.a - m.a) / ms,\n                                    (to2.matrix.b - m.b) / ms,\n                                    (to2.matrix.c - m.c) / ms,\n                                    (to2.matrix.d - m.d) / ms,\n                                    (to2.matrix.e - m.e) / ms,\n                                    (to2.matrix.f - m.f) / ms\n                                ];\n                                // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\n                                // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\n                                // extractTransform(to2, to[attr]);\n                                // diff[attr] = [\n                                //     (to2._.sx - _.sx) / ms,\n                                //     (to2._.sy - _.sy) / ms,\n                                //     (to2._.deg - _.deg) / ms,\n                                //     (to2._.dx - _.dx) / ms,\n                                //     (to2._.dy - _.dy) / ms\n                                // ];\n                            }\n                            break;\n                        case \"csv\":\n                            var values = Str(params[attr])[split](separator),\n                                from2 = Str(from[attr])[split](separator);\n                            if (attr == \"clip-rect\") {\n                                from[attr] = from2;\n                                diff[attr] = [];\n                                i = from2.length;\n                                while (i--) {\n                                    diff[attr][i] = (values[i] - from[attr][i]) / ms;\n                                }\n                            }\n                            to[attr] = values;\n                            break;\n                        default:\n                            values = [][concat](params[attr]);\n                            from2 = [][concat](from[attr]);\n                            diff[attr] = [];\n                            i = element.paper.customAttributes[attr].length;\n                            while (i--) {\n                                diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\n                            }\n                            break;\n                    }\n                }\n            }\n            var easing = params.easing,\n                easyeasy = R.easing_formulas[easing];\n            if (!easyeasy) {\n                easyeasy = Str(easing).match(bezierrg);\n                if (easyeasy && easyeasy.length == 5) {\n                    var curve = easyeasy;\n                    easyeasy = function (t) {\n                        return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\n                    };\n                } else {\n                    easyeasy = pipe;\n                }\n            }\n            timestamp = params.start || anim.start || +new Date;\n            e = {\n                anim: anim,\n                percent: percent,\n                timestamp: timestamp,\n                start: timestamp + (anim.del || 0),\n                status: 0,\n                initstatus: status || 0,\n                stop: false,\n                ms: ms,\n                easing: easyeasy,\n                from: from,\n                diff: diff,\n                to: to,\n                el: element,\n                callback: params.callback,\n                prev: prev,\n                next: next,\n                repeat: times || anim.times,\n                origin: element.attr(),\n                totalOrigin: totalOrigin\n            };\n            animationElements.push(e);\n            if (status && !isInAnim && !isInAnimSet) {\n                e.stop = true;\n                e.start = new Date - ms * status;\n                if (animationElements.length == 1) {\n                    return animation();\n                }\n            }\n            if (isInAnimSet) {\n                e.start = new Date - e.ms * status;\n            }\n            animationElements.length == 1 && requestAnimFrame(animation);\n        } else {\n            isInAnim.initstatus = status;\n            isInAnim.start = new Date - isInAnim.ms * status;\n        }\n        eve(\"raphael.anim.start.\" + element.id, element, anim);\n    }\n    /*\\\n     * Raphael.animation\n     [ method ]\n     **\n     * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\n     * See also @Animation.delay and @Animation.repeat methods.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     **\n     = (object) @Animation\n    \\*/\n    R.animation = function (params, ms, easing, callback) {\n        if (params instanceof Animation) {\n            return params;\n        }\n        if (R.is(easing, \"function\") || !easing) {\n            callback = callback || easing || null;\n            easing = null;\n        }\n        params = Object(params);\n        ms = +ms || 0;\n        var p = {},\n            json,\n            attr;\n        for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + \"%\" != attr) {\n            json = true;\n            p[attr] = params[attr];\n        }\n        if (!json) {\n            // if percent-like syntax is used and end-of-all animation callback used\n            if(callback){\n                // find the last one\n                var lastKey = 0;\n                for(var i in params){\n                    var percent = toInt(i);\n                    if(params[has](i) && percent > lastKey){\n                        lastKey = percent;\n                    }\n                }\n                lastKey += '%';\n                // if already defined callback in the last keyframe, skip\n                !params[lastKey].callback && (params[lastKey].callback = callback);\n            }\n          return new Animation(params, ms);\n        } else {\n            easing && (p.easing = easing);\n            callback && (p.callback = callback);\n            return new Animation({100: p}, ms);\n        }\n    };\n    /*\\\n     * Element.animate\n     [ method ]\n     **\n     * Creates and starts animation for given element.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - animation (object) animation object, see @Raphael.animation\n     **\n     = (object) original element\n    \\*/\n    elproto.animate = function (params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\n        runAnimation(anim, element, anim.percents[0], null, element.attr());\n        return element;\n    };\n    /*\\\n     * Element.setTime\n     [ method ]\n     **\n     * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\n     **\n     > Parameters\n     **\n     - anim (object) animation object\n     - value (number) number of milliseconds from the beginning of the animation\n     **\n     = (object) original element if `value` is specified\n     * Note, that during animation following events are triggered:\n     *\n     * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`.\n    \\*/\n    elproto.setTime = function (anim, value) {\n        if (anim && value != null) {\n            this.status(anim, mmin(value, anim.ms) / anim.ms);\n        }\n        return this;\n    };\n    /*\\\n     * Element.status\n     [ method ]\n     **\n     * Gets or sets the status of animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\n     **\n     = (number) status\n     * or\n     = (array) status if `anim` is not specified. Array of objects in format:\n     o {\n     o     anim: (object) animation object\n     o     status: (number) status\n     o }\n     * or\n     = (object) original element if `value` is specified\n    \\*/\n    elproto.status = function (anim, value) {\n        var out = [],\n            i = 0,\n            len,\n            e;\n        if (value != null) {\n            runAnimation(anim, this, -1, mmin(value, 1));\n            return this;\n        } else {\n            len = animationElements.length;\n            for (; i < len; i++) {\n                e = animationElements[i];\n                if (e.el.id == this.id && (!anim || e.anim == anim)) {\n                    if (anim) {\n                        return e.status;\n                    }\n                    out.push({\n                        anim: e.anim,\n                        status: e.status\n                    });\n                }\n            }\n            if (anim) {\n                return 0;\n            }\n            return out;\n        }\n    };\n    /*\\\n     * Element.pause\n     [ method ]\n     **\n     * Stops animation of the element with ability to resume it later on.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.pause = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve(\"raphael.anim.pause.\" + this.id, this, animationElements[i].anim) !== false) {\n                animationElements[i].paused = true;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.resume\n     [ method ]\n     **\n     * Resumes animation if it was paused with @Element.pause method.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.resume = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            var e = animationElements[i];\n            if (eve(\"raphael.anim.resume.\" + this.id, this, e.anim) !== false) {\n                delete e.paused;\n                this.status(e.anim, e.status);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.stop\n     [ method ]\n     **\n     * Stops animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.stop = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve(\"raphael.anim.stop.\" + this.id, this, animationElements[i].anim) !== false) {\n                animationElements.splice(i--, 1);\n            }\n        }\n        return this;\n    };\n    function stopAnimation(paper) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\n            animationElements.splice(i--, 1);\n        }\n    }\n    eve.on(\"raphael.remove\", stopAnimation);\n    eve.on(\"raphael.clear\", stopAnimation);\n    elproto.toString = function () {\n        return \"Rapha\\xebl\\u2019s object\";\n    };\n\n    // Set\n    var Set = function (items) {\n        this.items = [];\n        this.length = 0;\n        this.type = \"set\";\n        if (items) {\n            for (var i = 0, ii = items.length; i < ii; i++) {\n                if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\n                    this[this.items.length] = this.items[this.items.length] = items[i];\n                    this.length++;\n                }\n            }\n        }\n    },\n    setproto = Set.prototype;\n    /*\\\n     * Set.push\n     [ method ]\n     **\n     * Adds each argument to the current set.\n     = (object) original element\n    \\*/\n    setproto.push = function () {\n        var item,\n            len;\n        for (var i = 0, ii = arguments.length; i < ii; i++) {\n            item = arguments[i];\n            if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\n                len = this.items.length;\n                this[len] = this.items[len] = item;\n                this.length++;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.pop\n     [ method ]\n     **\n     * Removes last element and returns it.\n     = (object) element\n    \\*/\n    setproto.pop = function () {\n        this.length && delete this[this.length--];\n        return this.items.pop();\n    };\n    /*\\\n     * Set.forEach\n     [ method ]\n     **\n     * Executes given function for each element in the set.\n     *\n     * If function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Set object\n    \\*/\n    setproto.forEach = function (callback, thisArg) {\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            if (callback.call(thisArg, this.items[i], i) === false) {\n                return this;\n            }\n        }\n        return this;\n    };\n    for (var method in elproto) if (elproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname][apply](el, arg);\n                });\n            };\n        })(method);\n    }\n    setproto.attr = function (name, value) {\n        if (name && R.is(name, array) && R.is(name[0], \"object\")) {\n            for (var j = 0, jj = name.length; j < jj; j++) {\n                this.items[j].attr(name[j]);\n            }\n        } else {\n            for (var i = 0, ii = this.items.length; i < ii; i++) {\n                this.items[i].attr(name, value);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.clear\n     [ method ]\n     **\n     * Removes all elements from the set\n    \\*/\n    setproto.clear = function () {\n        while (this.length) {\n            this.pop();\n        }\n    };\n    /*\\\n     * Set.splice\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - index (number) position of the deletion\n     - count (number) number of element to remove\n     - insertion… (object) #optional elements to insert\n     = (object) set elements that were deleted\n    \\*/\n    setproto.splice = function (index, count, insertion) {\n        index = index < 0 ? mmax(this.length + index, 0) : index;\n        count = mmax(0, mmin(this.length - index, count));\n        var tail = [],\n            todel = [],\n            args = [],\n            i;\n        for (i = 2; i < arguments.length; i++) {\n            args.push(arguments[i]);\n        }\n        for (i = 0; i < count; i++) {\n            todel.push(this[index + i]);\n        }\n        for (; i < this.length - index; i++) {\n            tail.push(this[index + i]);\n        }\n        var arglen = args.length;\n        for (i = 0; i < arglen + tail.length; i++) {\n            this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n        }\n        i = this.items.length = this.length -= count - arglen;\n        while (this[i]) {\n            delete this[i++];\n        }\n        return new Set(todel);\n    };\n    /*\\\n     * Set.exclude\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - element (object) element to remove\n     = (boolean) `true` if object was found & removed from the set\n    \\*/\n    setproto.exclude = function (el) {\n        for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n            this.splice(i, 1);\n            return true;\n        }\n    };\n    setproto.animate = function (params, ms, easing, callback) {\n        (R.is(easing, \"function\") || !easing) && (callback = easing || null);\n        var len = this.items.length,\n            i = len,\n            item,\n            set = this,\n            collector;\n        if (!len) {\n            return this;\n        }\n        callback && (collector = function () {\n            !--len && callback.call(set);\n        });\n        easing = R.is(easing, string) ? easing : collector;\n        var anim = R.animation(params, ms, easing, collector);\n        item = this.items[--i].animate(anim);\n        while (i--) {\n            this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\n            (this.items[i] && !this.items[i].removed) || len--;\n        }\n        return this;\n    };\n    setproto.insertAfter = function (el) {\n        var i = this.items.length;\n        while (i--) {\n            this.items[i].insertAfter(el);\n        }\n        return this;\n    };\n    setproto.getBBox = function () {\n        var x = [],\n            y = [],\n            x2 = [],\n            y2 = [];\n        for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n            var box = this.items[i].getBBox();\n            x.push(box.x);\n            y.push(box.y);\n            x2.push(box.x + box.width);\n            y2.push(box.y + box.height);\n        }\n        x = mmin[apply](0, x);\n        y = mmin[apply](0, y);\n        x2 = mmax[apply](0, x2);\n        y2 = mmax[apply](0, y2);\n        return {\n            x: x,\n            y: y,\n            x2: x2,\n            y2: y2,\n            width: x2 - x,\n            height: y2 - y\n        };\n    };\n    setproto.clone = function (s) {\n        s = this.paper.set();\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            s.push(this.items[i].clone());\n        }\n        return s;\n    };\n    setproto.toString = function () {\n        return \"Rapha\\xebl\\u2018s set\";\n    };\n\n    setproto.glow = function(glowConfig) {\n        var ret = this.paper.set();\n        this.forEach(function(shape, index){\n            var g = shape.glow(glowConfig);\n            if(g != null){\n                g.forEach(function(shape2, index2){\n                    ret.push(shape2);\n                });\n            }\n        });\n        return ret;\n    };\n\n\n    /*\\\n     * Set.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this set’s elements\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point is inside any of the set's elements\n     \\*/\n    setproto.isPointInside = function (x, y) {\n        var isPointInside = false;\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                isPointInside = true;\n                return false; // stop loop\n            }\n        });\n        return isPointInside;\n    };\n\n    /*\\\n     * Raphael.registerFont\n     [ method ]\n     **\n     * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\n     * Returns original parameter, so it could be used with chaining.\n     # <a href=\"http://wiki.github.com/sorccu/cufon/about\">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a>\n     **\n     > Parameters\n     **\n     - font (object) the font to register\n     = (object) the font you passed in\n     > Usage\n     | Cufon.registerFont(Raphael.registerFont({…}));\n    \\*/\n    R.registerFont = function (font) {\n        if (!font.face) {\n            return font;\n        }\n        this.fonts = this.fonts || {};\n        var fontcopy = {\n                w: font.w,\n                face: {},\n                glyphs: {}\n            },\n            family = font.face[\"font-family\"];\n        for (var prop in font.face) if (font.face[has](prop)) {\n            fontcopy.face[prop] = font.face[prop];\n        }\n        if (this.fonts[family]) {\n            this.fonts[family].push(fontcopy);\n        } else {\n            this.fonts[family] = [fontcopy];\n        }\n        if (!font.svg) {\n            fontcopy.face[\"units-per-em\"] = toInt(font.face[\"units-per-em\"], 10);\n            for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\n                var path = font.glyphs[glyph];\n                fontcopy.glyphs[glyph] = {\n                    w: path.w,\n                    k: {},\n                    d: path.d && \"M\" + path.d.replace(/[mlcxtrv]/g, function (command) {\n                            return {l: \"L\", c: \"C\", x: \"z\", t: \"m\", r: \"l\", v: \"c\"}[command] || \"M\";\n                        }) + \"z\"\n                };\n                if (path.k) {\n                    for (var k in path.k) if (path[has](k)) {\n                        fontcopy.glyphs[glyph].k[k] = path.k[k];\n                    }\n                }\n            }\n        }\n        return font;\n    };\n    /*\\\n     * Paper.getFont\n     [ method ]\n     **\n     * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\n     **\n     > Parameters\n     **\n     - family (string) font family name or any word from it\n     - weight (string) #optional font weight\n     - style (string) #optional font style\n     - stretch (string) #optional font stretch\n     = (object) the font object\n     > Usage\n     | paper.print(100, 100, \"Test string\", paper.getFont(\"Times\", 800), 30);\n    \\*/\n    paperproto.getFont = function (family, weight, style, stretch) {\n        stretch = stretch || \"normal\";\n        style = style || \"normal\";\n        weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\n        if (!R.fonts) {\n            return;\n        }\n        var font = R.fonts[family];\n        if (!font) {\n            var name = new RegExp(\"(^|\\\\s)\" + family.replace(/[^\\w\\d\\s+!~.:_-]/g, E) + \"(\\\\s|$)\", \"i\");\n            for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\n                if (name.test(fontName)) {\n                    font = R.fonts[fontName];\n                    break;\n                }\n            }\n        }\n        var thefont;\n        if (font) {\n            for (var i = 0, ii = font.length; i < ii; i++) {\n                thefont = font[i];\n                if (thefont.face[\"font-weight\"] == weight && (thefont.face[\"font-style\"] == style || !thefont.face[\"font-style\"]) && thefont.face[\"font-stretch\"] == stretch) {\n                    break;\n                }\n            }\n        }\n        return thefont;\n    };\n    /*\\\n     * Paper.print\n     [ method ]\n     **\n     * Creates path that represent given text written using given font at given position with given size.\n     * Result of the method is path element that contains whole text as a separate path.\n     **\n     > Parameters\n     **\n     - x (number) x position of the text\n     - y (number) y position of the text\n     - string (string) text to print\n     - font (object) font object, see @Paper.getFont\n     - size (number) #optional size of the font, default is `16`\n     - origin (string) #optional could be `\"baseline\"` or `\"middle\"`, default is `\"middle\"`\n     - letter_spacing (number) #optional number in range `-1..1`, default is `0`\n     - line_spacing (number) #optional number in range `1..3`, default is `1`\n     = (object) resulting path element, which consist of all letters\n     > Usage\n     | var txt = r.print(10, 50, \"print\", r.getFont(\"Museo\"), 30).attr({fill: \"#fff\"});\n    \\*/\n    paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\n        origin = origin || \"middle\"; // baseline|middle\n        letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\n        line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\n        var letters = Str(string)[split](E),\n            shift = 0,\n            notfirst = 0,\n            path = E,\n            scale;\n        R.is(font, \"string\") && (font = this.getFont(font));\n        if (font) {\n            scale = (size || 16) / font.face[\"units-per-em\"];\n            var bb = font.face.bbox[split](separator),\n                top = +bb[0],\n                lineHeight = bb[3] - bb[1],\n                shifty = 0,\n                height = +bb[1] + (origin == \"baseline\" ? lineHeight + (+font.face.descent) : lineHeight / 2);\n            for (var i = 0, ii = letters.length; i < ii; i++) {\n                if (letters[i] == \"\\n\") {\n                    shift = 0;\n                    curr = 0;\n                    notfirst = 0;\n                    shifty += lineHeight * line_spacing;\n                } else {\n                    var prev = notfirst && font.glyphs[letters[i - 1]] || {},\n                        curr = font.glyphs[letters[i]];\n                    shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\n                    notfirst = 1;\n                }\n                if (curr && curr.d) {\n                    path += R.transformPath(curr.d, [\"t\", shift * scale, shifty * scale, \"s\", scale, scale, top, height, \"t\", (x - top) / scale, (y - height) / scale]);\n                }\n            }\n        }\n        return this.path(path).attr({\n            fill: \"#000\",\n            stroke: \"none\"\n        });\n    };\n\n    /*\\\n     * Paper.add\n     [ method ]\n     **\n     * Imports elements in JSON array in format `{type: type, <attributes>}`\n     **\n     > Parameters\n     **\n     - json (array)\n     = (object) resulting set of imported elements\n     > Usage\n     | paper.add([\n     |     {\n     |         type: \"circle\",\n     |         cx: 10,\n     |         cy: 10,\n     |         r: 5\n     |     },\n     |     {\n     |         type: \"rect\",\n     |         x: 10,\n     |         y: 10,\n     |         width: 10,\n     |         height: 10,\n     |         fill: \"#fc0\"\n     |     }\n     | ]);\n    \\*/\n    paperproto.add = function (json) {\n        if (R.is(json, \"array\")) {\n            var res = this.set(),\n                i = 0,\n                ii = json.length,\n                j;\n            for (; i < ii; i++) {\n                j = json[i] || {};\n                elements[has](j.type) && res.push(this[j.type]().attr(j));\n            }\n        }\n        return res;\n    };\n\n    /*\\\n     * Raphael.format\n     [ method ]\n     **\n     * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - … (string) rest of arguments will be treated as parameters for replacement\n     = (string) formated string\n     > Usage\n     | var x = 10,\n     |     y = 20,\n     |     width = 40,\n     |     height = 50;\n     | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n     | paper.path(Raphael.format(\"M{0},{1}h{2}v{3}h{4}z\", x, y, width, height, -width));\n    \\*/\n    R.format = function (token, params) {\n        var args = R.is(params, array) ? [0][concat](params) : arguments;\n        token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\n            return args[++i] == null ? E : args[i];\n        }));\n        return token || E;\n    };\n    /*\\\n     * Raphael.fullfill\n     [ method ]\n     **\n     * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - json (object) object which properties will be used as a replacement\n     = (string) formated string\n     > Usage\n     | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n     | paper.path(Raphael.fullfill(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n     |     x: 10,\n     |     y: 20,\n     |     dim: {\n     |         width: 40,\n     |         height: 50,\n     |         \"negative width\": -40\n     |     }\n     | }));\n    \\*/\n    R.fullfill = (function () {\n        var tokenRegex = /\\{([^\\}]+)\\}/g,\n            objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n            replacer = function (all, key, obj) {\n                var res = obj;\n                key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n                    name = name || quotedName;\n                    if (res) {\n                        if (name in res) {\n                            res = res[name];\n                        }\n                        typeof res == \"function\" && isFunc && (res = res());\n                    }\n                });\n                res = (res == null || res == obj ? all : res) + \"\";\n                return res;\n            };\n        return function (str, obj) {\n            return String(str).replace(tokenRegex, function (all, key) {\n                return replacer(all, key, obj);\n            });\n        };\n    })();\n    /*\\\n     * Raphael.ninja\n     [ method ]\n     **\n     * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\n     * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\n     **\n     = (object) Raphael object\n     > Usage\n     | (function (local_raphael) {\n     |     var paper = local_raphael(10, 10, 320, 200);\n     |     …\n     | })(Raphael.ninja());\n    \\*/\n    R.ninja = function () {\n        if (oldRaphael.was) {\n            g.win.Raphael = oldRaphael.is;\n        } else {\n            // IE8 raises an error when deleting window property\n            window.Raphael = undefined;\n            try {\n                delete window.Raphael;\n            } catch(e) {}\n        }\n        return R;\n    };\n    /*\\\n     * Raphael.st\n     [ property (object) ]\n     **\n     * You can add your own method to elements and sets. It is wise to add a set method for each element method\n     * you added, so you will be able to call the same method on sets too.\n     **\n     * See also @Raphael.el.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: \"#f00\"});\n     | };\n     | Raphael.st.red = function () {\n     |     this.forEach(function (el) {\n     |         el.red();\n     |     });\n     | };\n     | // then use it\n     | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\n    \\*/\n    R.st = setproto;\n\n    eve.on(\"raphael.DOMload\", function () {\n        loaded = true;\n    });\n\n    // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\n    (function (doc, loaded, f) {\n        if (doc.readyState == null && doc.addEventListener){\n            doc.addEventListener(loaded, f = function () {\n                doc.removeEventListener(loaded, f, false);\n                doc.readyState = \"complete\";\n            }, false);\n            doc.readyState = \"loading\";\n        }\n        function isLoaded() {\n            (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve(\"raphael.DOMload\");\n        }\n        isLoaded();\n    })(document, \"DOMContentLoaded\");\n\n    return R;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"./dev/raphael.svg.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.svg.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n    if (R && !R.svg) {\n        return;\n    }\n\n    var has = \"hasOwnProperty\",\n        Str = String,\n        toFloat = parseFloat,\n        toInt = parseInt,\n        math = Math,\n        mmax = math.max,\n        abs = math.abs,\n        pow = math.pow,\n        separator = /[, ]+/,\n        eve = R.eve,\n        E = \"\",\n        S = \" \";\n    var xlink = \"http://www.w3.org/1999/xlink\",\n        markers = {\n            block: \"M5,0 0,2.5 5,5z\",\n            classic: \"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",\n            diamond: \"M2.5,0 5,2.5 2.5,5 0,2.5z\",\n            open: \"M6,1 1,3.5 6,6\",\n            oval: \"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"\n        },\n        markerCounter = {};\n    R.toString = function () {\n        return  \"Your browser supports SVG.\\nYou are running Rapha\\xebl \" + this.version;\n    };\n    var $ = function (el, attr) {\n        if (attr) {\n            if (typeof el == \"string\") {\n                el = $(el);\n            }\n            for (var key in attr) if (attr[has](key)) {\n                if (key.substring(0, 6) == \"xlink:\") {\n                    el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\n                } else {\n                    el.setAttribute(key, Str(attr[key]));\n                }\n            }\n        } else {\n            el = R._g.doc.createElementNS(\"http://www.w3.org/2000/svg\", el);\n            el.style && (el.style.webkitTapHighlightColor = \"rgba(0,0,0,0)\");\n        }\n        return el;\n    },\n    addGradientFill = function (element, gradient) {\n        var type = \"linear\",\n            id = element.id + gradient,\n            fx = .5, fy = .5,\n            o = element.node,\n            SVG = element.paper,\n            s = o.style,\n            el = R._g.doc.getElementById(id);\n        if (!el) {\n            gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\n                type = \"radial\";\n                if (_fx && _fy) {\n                    fx = toFloat(_fx);\n                    fy = toFloat(_fy);\n                    var dir = ((fy > .5) * 2 - 1);\n                    pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\n                        (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\n                        fy != .5 &&\n                        (fy = fy.toFixed(5) - 1e-5 * dir);\n                }\n                return E;\n            });\n            gradient = gradient.split(/\\s*\\-\\s*/);\n            if (type == \"linear\") {\n                var angle = gradient.shift();\n                angle = -toFloat(angle);\n                if (isNaN(angle)) {\n                    return null;\n                }\n                var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\n                    max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\n                vector[2] *= max;\n                vector[3] *= max;\n                if (vector[2] < 0) {\n                    vector[0] = -vector[2];\n                    vector[2] = 0;\n                }\n                if (vector[3] < 0) {\n                    vector[1] = -vector[3];\n                    vector[3] = 0;\n                }\n            }\n            var dots = R._parseDots(gradient);\n            if (!dots) {\n                return null;\n            }\n            id = id.replace(/[\\(\\)\\s,\\xb0#]/g, \"_\");\n\n            if (element.gradient && id != element.gradient.id) {\n                SVG.defs.removeChild(element.gradient);\n                delete element.gradient;\n            }\n\n            if (!element.gradient) {\n                el = $(type + \"Gradient\", {id: id});\n                element.gradient = el;\n                $(el, type == \"radial\" ? {\n                    fx: fx,\n                    fy: fy\n                } : {\n                    x1: vector[0],\n                    y1: vector[1],\n                    x2: vector[2],\n                    y2: vector[3],\n                    gradientTransform: element.matrix.invert()\n                });\n                SVG.defs.appendChild(el);\n                for (var i = 0, ii = dots.length; i < ii; i++) {\n                    el.appendChild($(\"stop\", {\n                        offset: dots[i].offset ? dots[i].offset : i ? \"100%\" : \"0%\",\n                        \"stop-color\": dots[i].color || \"#fff\",\n                        \"stop-opacity\": isFinite(dots[i].opacity) ? dots[i].opacity : 1\n                    }));\n                }\n            }\n        }\n        $(o, {\n            fill: fillurl(id),\n            opacity: 1,\n            \"fill-opacity\": 1\n        });\n        s.fill = E;\n        s.opacity = 1;\n        s.fillOpacity = 1;\n        return 1;\n    },\n    isIE9or10 = function () {\n      var mode = document.documentMode;\n      return mode && (mode === 9 || mode === 10);\n    },\n    fillurl = function (id) {\n      if (isIE9or10()) {\n          return \"url('#\" + id + \"')\";\n      }\n      var location = document.location;\n      var locationString = (\n          location.protocol + '//' +\n          location.host +\n          location.pathname +\n          location.search\n      );\n      return \"url('\" + locationString + \"#\" + id + \"')\";\n    },\n    updatePosition = function (o) {\n        var bbox = o.getBBox(1);\n        $(o.pattern, {patternTransform: o.matrix.invert() + \" translate(\" + bbox.x + \",\" + bbox.y + \")\"});\n    },\n    addArrow = function (o, value, isEnd) {\n        if (o.type == \"path\") {\n            var values = Str(value).toLowerCase().split(\"-\"),\n                p = o.paper,\n                se = isEnd ? \"end\" : \"start\",\n                node = o.node,\n                attrs = o.attrs,\n                stroke = attrs[\"stroke-width\"],\n                i = values.length,\n                type = \"classic\",\n                from,\n                to,\n                dx,\n                refX,\n                attr,\n                w = 3,\n                h = 3,\n                t = 5;\n            while (i--) {\n                switch (values[i]) {\n                    case \"block\":\n                    case \"classic\":\n                    case \"oval\":\n                    case \"diamond\":\n                    case \"open\":\n                    case \"none\":\n                        type = values[i];\n                        break;\n                    case \"wide\": h = 5; break;\n                    case \"narrow\": h = 2; break;\n                    case \"long\": w = 5; break;\n                    case \"short\": w = 2; break;\n                }\n            }\n            if (type == \"open\") {\n                w += 2;\n                h += 2;\n                t += 2;\n                dx = 1;\n                refX = isEnd ? 4 : 1;\n                attr = {\n                    fill: \"none\",\n                    stroke: attrs.stroke\n                };\n            } else {\n                refX = dx = w / 2;\n                attr = {\n                    fill: attrs.stroke,\n                    stroke: \"none\"\n                };\n            }\n            if (o._.arrows) {\n                if (isEnd) {\n                    o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\n                    o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\n                } else {\n                    o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\n                    o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\n                }\n            } else {\n                o._.arrows = {};\n            }\n            if (type != \"none\") {\n                var pathId = \"raphael-marker-\" + type,\n                    markerId = \"raphael-marker-\" + se + type + w + h + \"-obj\" + o.id;\n                if (!R._g.doc.getElementById(pathId)) {\n                    p.defs.appendChild($($(\"path\"), {\n                        \"stroke-linecap\": \"round\",\n                        d: markers[type],\n                        id: pathId\n                    }));\n                    markerCounter[pathId] = 1;\n                } else {\n                    markerCounter[pathId]++;\n                }\n                var marker = R._g.doc.getElementById(markerId),\n                    use;\n                if (!marker) {\n                    marker = $($(\"marker\"), {\n                        id: markerId,\n                        markerHeight: h,\n                        markerWidth: w,\n                        orient: \"auto\",\n                        refX: refX,\n                        refY: h / 2\n                    });\n                    use = $($(\"use\"), {\n                        \"xlink:href\": \"#\" + pathId,\n                        transform: (isEnd ? \"rotate(180 \" + w / 2 + \" \" + h / 2 + \") \" : E) + \"scale(\" + w / t + \",\" + h / t + \")\",\n                        \"stroke-width\": (1 / ((w / t + h / t) / 2)).toFixed(4)\n                    });\n                    marker.appendChild(use);\n                    p.defs.appendChild(marker);\n                    markerCounter[markerId] = 1;\n                } else {\n                    markerCounter[markerId]++;\n                    use = marker.getElementsByTagName(\"use\")[0];\n                }\n                $(use, attr);\n                var delta = dx * (type != \"diamond\" && type != \"oval\");\n                if (isEnd) {\n                    from = o._.arrows.startdx * stroke || 0;\n                    to = R.getTotalLength(attrs.path) - delta * stroke;\n                } else {\n                    from = delta * stroke;\n                    to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                }\n                attr = {};\n                attr[\"marker-\" + se] = \"url(#\" + markerId + \")\";\n                if (to || from) {\n                    attr.d = R.getSubpath(attrs.path, from, to);\n                }\n                $(node, attr);\n                o._.arrows[se + \"Path\"] = pathId;\n                o._.arrows[se + \"Marker\"] = markerId;\n                o._.arrows[se + \"dx\"] = delta;\n                o._.arrows[se + \"Type\"] = type;\n                o._.arrows[se + \"String\"] = value;\n            } else {\n                if (isEnd) {\n                    from = o._.arrows.startdx * stroke || 0;\n                    to = R.getTotalLength(attrs.path) - from;\n                } else {\n                    from = 0;\n                    to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                }\n                o._.arrows[se + \"Path\"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\n                delete o._.arrows[se + \"Path\"];\n                delete o._.arrows[se + \"Marker\"];\n                delete o._.arrows[se + \"dx\"];\n                delete o._.arrows[se + \"Type\"];\n                delete o._.arrows[se + \"String\"];\n            }\n            for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\n                var item = R._g.doc.getElementById(attr);\n                item && item.parentNode.removeChild(item);\n            }\n        }\n    },\n    dasharray = {\n        \"-\": [3, 1],\n        \".\": [1, 1],\n        \"-.\": [3, 1, 1, 1],\n        \"-..\": [3, 1, 1, 1, 1, 1],\n        \". \": [1, 3],\n        \"- \": [4, 3],\n        \"--\": [8, 3],\n        \"- .\": [4, 3, 1, 3],\n        \"--.\": [8, 3, 1, 3],\n        \"--..\": [8, 3, 1, 3, 1, 3]\n    },\n    addDashes = function (o, value, params) {\n        value = dasharray[Str(value).toLowerCase()];\n        if (value) {\n            var width = o.attrs[\"stroke-width\"] || \"1\",\n                butt = {round: width, square: width, butt: 0}[o.attrs[\"stroke-linecap\"] || params[\"stroke-linecap\"]] || 0,\n                dashes = [],\n                i = value.length;\n            while (i--) {\n                dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\n            }\n            $(o.node, {\"stroke-dasharray\": dashes.join(\",\")});\n        }\n        else {\n          $(o.node, {\"stroke-dasharray\": \"none\"});\n        }\n    },\n    setFillAndStroke = function (o, params) {\n        var node = o.node,\n            attrs = o.attrs,\n            vis = node.style.visibility;\n        node.style.visibility = \"hidden\";\n        for (var att in params) {\n            if (params[has](att)) {\n                if (!R._availableAttrs[has](att)) {\n                    continue;\n                }\n                var value = params[att];\n                attrs[att] = value;\n                switch (att) {\n                    case \"blur\":\n                        o.blur(value);\n                        break;\n                    case \"title\":\n                        var title = node.getElementsByTagName(\"title\");\n\n                        // Use the existing <title>.\n                        if (title.length && (title = title[0])) {\n                          title.firstChild.nodeValue = value;\n                        } else {\n                          title = $(\"title\");\n                          var val = R._g.doc.createTextNode(value);\n                          title.appendChild(val);\n                          node.appendChild(title);\n                        }\n                        break;\n                    case \"href\":\n                    case \"target\":\n                        var pn = node.parentNode;\n                        if (pn.tagName.toLowerCase() != \"a\") {\n                            var hl = $(\"a\");\n                            pn.insertBefore(hl, node);\n                            hl.appendChild(node);\n                            pn = hl;\n                        }\n                        if (att == \"target\") {\n                            pn.setAttributeNS(xlink, \"show\", value == \"blank\" ? \"new\" : value);\n                        } else {\n                            pn.setAttributeNS(xlink, att, value);\n                        }\n                        break;\n                    case \"cursor\":\n                        node.style.cursor = value;\n                        break;\n                    case \"transform\":\n                        o.transform(value);\n                        break;\n                    case \"arrow-start\":\n                        addArrow(o, value);\n                        break;\n                    case \"arrow-end\":\n                        addArrow(o, value, 1);\n                        break;\n                    case \"clip-rect\":\n                        var rect = Str(value).split(separator);\n                        if (rect.length == 4) {\n                            o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\n                            var el = $(\"clipPath\"),\n                                rc = $(\"rect\");\n                            el.id = R.createUUID();\n                            $(rc, {\n                                x: rect[0],\n                                y: rect[1],\n                                width: rect[2],\n                                height: rect[3]\n                            });\n                            el.appendChild(rc);\n                            o.paper.defs.appendChild(el);\n                            $(node, {\"clip-path\": \"url(#\" + el.id + \")\"});\n                            o.clip = rc;\n                        }\n                        if (!value) {\n                            var path = node.getAttribute(\"clip-path\");\n                            if (path) {\n                                var clip = R._g.doc.getElementById(path.replace(/(^url\\(#|\\)$)/g, E));\n                                clip && clip.parentNode.removeChild(clip);\n                                $(node, {\"clip-path\": E});\n                                delete o.clip;\n                            }\n                        }\n                    break;\n                    case \"path\":\n                        if (o.type == \"path\") {\n                            $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : \"M0,0\"});\n                            o._.dirty = 1;\n                            if (o._.arrows) {\n                                \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                                \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                            }\n                        }\n                        break;\n                    case \"width\":\n                        node.setAttribute(att, value);\n                        o._.dirty = 1;\n                        if (attrs.fx) {\n                            att = \"x\";\n                            value = attrs.x;\n                        } else {\n                            break;\n                        }\n                    case \"x\":\n                        if (attrs.fx) {\n                            value = -attrs.x - (attrs.width || 0);\n                        }\n                    case \"rx\":\n                        if (att == \"rx\" && o.type == \"rect\") {\n                            break;\n                        }\n                    case \"cx\":\n                        node.setAttribute(att, value);\n                        o.pattern && updatePosition(o);\n                        o._.dirty = 1;\n                        break;\n                    case \"height\":\n                        node.setAttribute(att, value);\n                        o._.dirty = 1;\n                        if (attrs.fy) {\n                            att = \"y\";\n                            value = attrs.y;\n                        } else {\n                            break;\n                        }\n                    case \"y\":\n                        if (attrs.fy) {\n                            value = -attrs.y - (attrs.height || 0);\n                        }\n                    case \"ry\":\n                        if (att == \"ry\" && o.type == \"rect\") {\n                            break;\n                        }\n                    case \"cy\":\n                        node.setAttribute(att, value);\n                        o.pattern && updatePosition(o);\n                        o._.dirty = 1;\n                        break;\n                    case \"r\":\n                        if (o.type == \"rect\") {\n                            $(node, {rx: value, ry: value});\n                        } else {\n                            node.setAttribute(att, value);\n                        }\n                        o._.dirty = 1;\n                        break;\n                    case \"src\":\n                        if (o.type == \"image\") {\n                            node.setAttributeNS(xlink, \"href\", value);\n                        }\n                        break;\n                    case \"stroke-width\":\n                        if (o._.sx != 1 || o._.sy != 1) {\n                            value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\n                        }\n                        node.setAttribute(att, value);\n                        if (attrs[\"stroke-dasharray\"]) {\n                            addDashes(o, attrs[\"stroke-dasharray\"], params);\n                        }\n                        if (o._.arrows) {\n                            \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                            \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                        }\n                        break;\n                    case \"stroke-dasharray\":\n                        addDashes(o, value, params);\n                        break;\n                    case \"fill\":\n                        var isURL = Str(value).match(R._ISURL);\n                        if (isURL) {\n                            el = $(\"pattern\");\n                            var ig = $(\"image\");\n                            el.id = R.createUUID();\n                            $(el, {x: 0, y: 0, patternUnits: \"userSpaceOnUse\", height: 1, width: 1});\n                            $(ig, {x: 0, y: 0, \"xlink:href\": isURL[1]});\n                            el.appendChild(ig);\n\n                            (function (el) {\n                                R._preload(isURL[1], function () {\n                                    var w = this.offsetWidth,\n                                        h = this.offsetHeight;\n                                    $(el, {width: w, height: h});\n                                    $(ig, {width: w, height: h});\n                                });\n                            })(el);\n                            o.paper.defs.appendChild(el);\n                            $(node, {fill: \"url(#\" + el.id + \")\"});\n                            o.pattern = el;\n                            o.pattern && updatePosition(o);\n                            break;\n                        }\n                        var clr = R.getRGB(value);\n                        if (!clr.error) {\n                            delete params.gradient;\n                            delete attrs.gradient;\n                            !R.is(attrs.opacity, \"undefined\") &&\n                                R.is(params.opacity, \"undefined\") &&\n                                $(node, {opacity: attrs.opacity});\n                            !R.is(attrs[\"fill-opacity\"], \"undefined\") &&\n                                R.is(params[\"fill-opacity\"], \"undefined\") &&\n                                $(node, {\"fill-opacity\": attrs[\"fill-opacity\"]});\n                        } else if ((o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value)) {\n                            if (\"opacity\" in attrs || \"fill-opacity\" in attrs) {\n                                var gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n                                if (gradient) {\n                                    var stops = gradient.getElementsByTagName(\"stop\");\n                                    $(stops[stops.length - 1], {\"stop-opacity\": (\"opacity\" in attrs ? attrs.opacity : 1) * (\"fill-opacity\" in attrs ? attrs[\"fill-opacity\"] : 1)});\n                                }\n                            }\n                            attrs.gradient = value;\n                            attrs.fill = \"none\";\n                            break;\n                        }\n                        clr[has](\"opacity\") && $(node, {\"fill-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                    case \"stroke\":\n                        clr = R.getRGB(value);\n                        node.setAttribute(att, clr.hex);\n                        att == \"stroke\" && clr[has](\"opacity\") && $(node, {\"stroke-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                        if (att == \"stroke\" && o._.arrows) {\n                            \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                            \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                        }\n                        break;\n                    case \"gradient\":\n                        (o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value);\n                        break;\n                    case \"opacity\":\n                        if (attrs.gradient && !attrs[has](\"stroke-opacity\")) {\n                            $(node, {\"stroke-opacity\": value > 1 ? value / 100 : value});\n                        }\n                        // fall\n                    case \"fill-opacity\":\n                        if (attrs.gradient) {\n                            gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n                            if (gradient) {\n                                stops = gradient.getElementsByTagName(\"stop\");\n                                $(stops[stops.length - 1], {\"stop-opacity\": value});\n                            }\n                            break;\n                        }\n                    default:\n                        att == \"font-size\" && (value = toInt(value, 10) + \"px\");\n                        var cssrule = att.replace(/(\\-.)/g, function (w) {\n                            return w.substring(1).toUpperCase();\n                        });\n                        node.style[cssrule] = value;\n                        o._.dirty = 1;\n                        node.setAttribute(att, value);\n                        break;\n                }\n            }\n        }\n\n        tuneText(o, params);\n        node.style.visibility = vis;\n    },\n    leading = 1.2,\n    tuneText = function (el, params) {\n        if (el.type != \"text\" || !(params[has](\"text\") || params[has](\"font\") || params[has](\"font-size\") || params[has](\"x\") || params[has](\"y\"))) {\n            return;\n        }\n        var a = el.attrs,\n            node = el.node,\n            fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue(\"font-size\"), 10) : 10;\n\n        if (params[has](\"text\")) {\n            a.text = params.text;\n            while (node.firstChild) {\n                node.removeChild(node.firstChild);\n            }\n            var texts = Str(params.text).split(\"\\n\"),\n                tspans = [],\n                tspan;\n            for (var i = 0, ii = texts.length; i < ii; i++) {\n                tspan = $(\"tspan\");\n                i && $(tspan, {dy: fontSize * leading, x: a.x});\n                tspan.appendChild(R._g.doc.createTextNode(texts[i]));\n                node.appendChild(tspan);\n                tspans[i] = tspan;\n            }\n        } else {\n            tspans = node.getElementsByTagName(\"tspan\");\n            for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\n                $(tspans[i], {dy: fontSize * leading, x: a.x});\n            } else {\n                $(tspans[0], {dy: 0});\n            }\n        }\n        $(node, {x: a.x, y: a.y});\n        el._.dirty = 1;\n        var bb = el._getBBox(),\n            dif = a.y - (bb.y + bb.height / 2);\n        dif && R.is(dif, \"finite\") && $(tspans[0], {dy: dif});\n    },\n    getRealNode = function (node) {\n        if (node.parentNode && node.parentNode.tagName.toLowerCase() === \"a\") {\n            return node.parentNode;\n        } else {\n            return node;\n        }\n    },\n    Element = function (node, svg) {\n        var X = 0,\n            Y = 0;\n        /*\\\n         * Element.node\n         [ property (object) ]\n         **\n         * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n         **\n         * Note: Don’t mess with it.\n         > Usage\n         | // draw a circle at coordinate 10,10 with radius of 10\n         | var c = paper.circle(10, 10, 10);\n         | c.node.onclick = function () {\n         |     c.attr(\"fill\", \"red\");\n         | };\n        \\*/\n        this[0] = this.node = node;\n        /*\\\n         * Element.raphael\n         [ property (object) ]\n         **\n         * Internal reference to @Raphael object. In case it is not available.\n         > Usage\n         | Raphael.el.red = function () {\n         |     var hsb = this.paper.raphael.rgb2hsb(this.attr(\"fill\"));\n         |     hsb.h = 1;\n         |     this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\n         | }\n        \\*/\n        node.raphael = true;\n        /*\\\n         * Element.id\n         [ property (number) ]\n         **\n         * Unique id of the element. Especially useful when you want to listen to events of the element,\n         * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\n        \\*/\n        this.id = guid();\n        node.raphaelid = this.id;\n\n        /**\n        * Method that returns a 5 letter/digit id, enough for 36^5 = 60466176 elements\n        * @returns {string} id\n        */\n        function guid() {\n            return (\"0000\" + (Math.random()*Math.pow(36,5) << 0).toString(36)).slice(-5);\n        }\n\n        this.matrix = R.matrix();\n        this.realPath = null;\n        /*\\\n         * Element.paper\n         [ property (object) ]\n         **\n         * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\n         > Usage\n         | Raphael.el.cross = function () {\n         |     this.attr({fill: \"red\"});\n         |     this.paper.path(\"M10,10L50,50M50,10L10,50\")\n         |         .attr({stroke: \"red\"});\n         | }\n        \\*/\n        this.paper = svg;\n        this.attrs = this.attrs || {};\n        this._ = {\n            transform: [],\n            sx: 1,\n            sy: 1,\n            deg: 0,\n            dx: 0,\n            dy: 0,\n            dirty: 1\n        };\n        !svg.bottom && (svg.bottom = this);\n        /*\\\n         * Element.prev\n         [ property (object) ]\n         **\n         * Reference to the previous element in the hierarchy.\n        \\*/\n        this.prev = svg.top;\n        svg.top && (svg.top.next = this);\n        svg.top = this;\n        /*\\\n         * Element.next\n         [ property (object) ]\n         **\n         * Reference to the next element in the hierarchy.\n        \\*/\n        this.next = null;\n    },\n    elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n\n    R._engine.path = function (pathString, SVG) {\n        var el = $(\"path\");\n        SVG.canvas && SVG.canvas.appendChild(el);\n        var p = new Element(el, SVG);\n        p.type = \"path\";\n        setFillAndStroke(p, {\n            fill: \"none\",\n            stroke: \"#000\",\n            path: pathString\n        });\n        return p;\n    };\n    /*\\\n     * Element.rotate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds rotation by given angle around given point to the list of\n     * transformations of the element.\n     > Parameters\n     - deg (number) angle in degrees\n     - cx (number) #optional x coordinate of the centre of rotation\n     - cy (number) #optional y coordinate of the centre of rotation\n     * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\n     = (object) @Element\n    \\*/\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.scale\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds scale by given amount relative to given point to the list of\n     * transformations of the element.\n     > Parameters\n     - sx (number) horisontal scale amount\n     - sy (number) vertical scale amount\n     - cx (number) #optional x coordinate of the centre of scale\n     - cy (number) #optional y coordinate of the centre of scale\n     * If cx & cy aren’t specified centre of the shape is used instead.\n     = (object) @Element\n    \\*/\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n        this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.translate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds translation by given amount to the list of transformations of the element.\n     > Parameters\n     - dx (number) horisontal shift\n     - dy (number) vertical shift\n     = (object) @Element\n    \\*/\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n        return this;\n    };\n    /*\\\n     * Element.transform\n     [ method ]\n     **\n     * Adds transformation to the element which is separate to other attributes,\n     * i.e. translation doesn’t change `x` or `y` of the rectange. The format\n     * of transformation string is similar to the path string syntax:\n     | \"t100,100r30,100,100s2,2,100,100r45s1.5\"\n     * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\n     * scale and `m` is for matrix.\n     *\n     * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\n     *\n     * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\n     * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\n     * coordinates as optional parameters, the default is the centre point of the element.\n     * Matrix accepts six parameters.\n     > Usage\n     | var el = paper.rect(10, 20, 300, 200);\n     | // translate 100, 100, rotate 45°, translate -100, 0\n     | el.transform(\"t100,100r45t-100,0\");\n     | // if you want you can append or prepend transformations\n     | el.transform(\"...t50,50\");\n     | el.transform(\"s2...\");\n     | // or even wrap\n     | el.transform(\"t50,50...t-50-50\");\n     | // to reset transformation call method with empty string\n     | el.transform(\"\");\n     | // to get current value call it without parameters\n     | console.log(el.transform());\n     > Parameters\n     - tstr (string) #optional transformation string\n     * If tstr isn’t specified\n     = (string) current transformation string\n     * else\n     = (object) @Element\n    \\*/\n    elproto.transform = function (tstr) {\n        var _ = this._;\n        if (tstr == null) {\n            return _.transform;\n        }\n        R._extractTransform(this, tstr);\n\n        this.clip && $(this.clip, {transform: this.matrix.invert()});\n        this.pattern && updatePosition(this);\n        this.node && $(this.node, {transform: this.matrix});\n\n        if (_.sx != 1 || _.sy != 1) {\n            var sw = this.attrs[has](\"stroke-width\") ? this.attrs[\"stroke-width\"] : 1;\n            this.attr({\"stroke-width\": sw});\n        }\n\n        return this;\n    };\n    /*\\\n     * Element.hide\n     [ method ]\n     **\n     * Makes element invisible. See @Element.show.\n     = (object) @Element\n    \\*/\n    elproto.hide = function () {\n        if(!this.removed) this.node.style.display = \"none\";\n        return this;\n    };\n    /*\\\n     * Element.show\n     [ method ]\n     **\n     * Makes element visible. See @Element.hide.\n     = (object) @Element\n    \\*/\n    elproto.show = function () {\n        if(!this.removed) this.node.style.display = \"\";\n        return this;\n    };\n    /*\\\n     * Element.remove\n     [ method ]\n     **\n     * Removes element from the paper.\n    \\*/\n    elproto.remove = function () {\n        var node = getRealNode(this.node);\n        if (this.removed || !node.parentNode) {\n            return;\n        }\n        var paper = this.paper;\n        paper.__set__ && paper.__set__.exclude(this);\n        eve.unbind(\"raphael.*.*.\" + this.id);\n        if (this.gradient) {\n            paper.defs.removeChild(this.gradient);\n        }\n        R._tear(this, paper);\n\n        node.parentNode.removeChild(node);\n\n        // Remove custom data for element\n        this.removeData();\n\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto._getBBox = function () {\n        if (this.node.style.display == \"none\") {\n            this.show();\n            var hide = true;\n        }\n        var canvasHidden = false,\n            containerStyle;\n        if (this.paper.canvas.parentElement) {\n          containerStyle = this.paper.canvas.parentElement.style;\n        } //IE10+ can't find parentElement\n        else if (this.paper.canvas.parentNode) {\n          containerStyle = this.paper.canvas.parentNode.style;\n        }\n\n        if(containerStyle && containerStyle.display == \"none\") {\n          canvasHidden = true;\n          containerStyle.display = \"\";\n        }\n        var bbox = {};\n        try {\n            bbox = this.node.getBBox();\n        } catch(e) {\n            // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\n            bbox = {\n                x: this.node.clientLeft,\n                y: this.node.clientTop,\n                width: this.node.clientWidth,\n                height: this.node.clientHeight\n            }\n        } finally {\n            bbox = bbox || {};\n            if(canvasHidden){\n              containerStyle.display = \"none\";\n            }\n        }\n        hide && this.hide();\n        return bbox;\n    };\n    /*\\\n     * Element.attr\n     [ method ]\n     **\n     * Sets the attributes of the element.\n     > Parameters\n     - attrName (string) attribute’s name\n     - value (string) value\n     * or\n     - params (object) object of name/value pairs\n     * or\n     - attrName (string) attribute’s name\n     * or\n     - attrNames (array) in this case method returns array of current values for given attribute names\n     = (object) @Element if attrsName & value or params are passed in.\n     = (...) value of the attribute if only attrsName is passed in.\n     = (array) array of values of the attribute if attrsNames is passed in.\n     = (object) object of attributes if nothing is passed in.\n     > Possible parameters\n     # <p>Please refer to the <a href=\"http://www.w3.org/TR/SVG/\" title=\"The W3C Recommendation for the SVG language describes these properties in detail.\">SVG specification</a> for an explanation of these parameters.</p>\n     o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\n     o clip-rect (string) comma or space separated values: x, y, width and height\n     o cursor (string) CSS type of the cursor\n     o cx (number) the x-axis coordinate of the center of the circle, or ellipse\n     o cy (number) the y-axis coordinate of the center of the circle, or ellipse\n     o fill (string) colour, gradient or image\n     o fill-opacity (number)\n     o font (string)\n     o font-family (string)\n     o font-size (number) font size in pixels\n     o font-weight (string)\n     o height (number)\n     o href (string) URL, if specified element behaves as hyperlink\n     o opacity (number)\n     o path (string) SVG path string format\n     o r (number) radius of the circle, ellipse or rounded corner on the rect\n     o rx (number) horisontal radius of the ellipse\n     o ry (number) vertical radius of the ellipse\n     o src (string) image URL, only works for @Element.image element\n     o stroke (string) stroke colour\n     o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\n     o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\n     o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\n     o stroke-miterlimit (number)\n     o stroke-opacity (number)\n     o stroke-width (number) stroke width in pixels, default is '1'\n     o target (string) used with href\n     o text (string) contents of the text element. Use `\\n` for multiline text\n     o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\n     o title (string) will create tooltip with a given text\n     o transform (string) see @Element.transform\n     o width (number)\n     o x (number)\n     o y (number)\n     > Gradients\n     * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\n     * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\n     *\n     * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\n     * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\n     * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\n     > Path String\n     # <p>Please refer to <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path’s data attribute’s format are described in the SVG specification.\">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\n     > Colour Parsing\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li>\n     #     <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href=\"http://en.wikipedia.org/wiki/HSL_and_HSV\" title=\"HSL and HSV - Wikipedia, the free encyclopedia\">Wikipedia page</a></li>\n     #     <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li>\n     # </ul>\n    \\*/\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, \"string\")) {\n            if (name == \"fill\" && this.attrs.fill == \"none\" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            if (name == \"transform\") {\n                return this._.transform;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (value == null && R.is(name, \"array\")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        if (value != null) {\n            var params = {};\n            params[name] = value;\n        } else if (name != null && R.is(name, \"object\")) {\n            params = name;\n        }\n        for (var key in params) {\n            eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n        }\n        for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n            var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n            this.attrs[key] = params[key];\n            for (var subkey in par) if (par[has](subkey)) {\n                params[subkey] = par[subkey];\n            }\n        }\n        setFillAndStroke(this, params);\n        return this;\n    };\n    /*\\\n     * Element.toFront\n     [ method ]\n     **\n     * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\n     = (object) @Element\n    \\*/\n    elproto.toFront = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        node.parentNode.appendChild(node);\n        var svg = this.paper;\n        svg.top != this && R._tofront(this, svg);\n        return this;\n    };\n    /*\\\n     * Element.toBack\n     [ method ]\n     **\n     * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\n     = (object) @Element\n    \\*/\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        var parentNode = node.parentNode;\n        parentNode.insertBefore(node, parentNode.firstChild);\n        R._toback(this, this.paper);\n        var svg = this.paper;\n        return this;\n    };\n    /*\\\n     * Element.insertAfter\n     [ method ]\n     **\n     * Inserts current object after the given one.\n     = (object) @Element\n    \\*/\n    elproto.insertAfter = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var afterNode = getRealNode(element.node || element[element.length - 1].node);\n        if (afterNode.nextSibling) {\n            afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\n        } else {\n            afterNode.parentNode.appendChild(node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    /*\\\n     * Element.insertBefore\n     [ method ]\n     **\n     * Inserts current object before the given one.\n     = (object) @Element\n    \\*/\n    elproto.insertBefore = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var beforeNode = getRealNode(element.node || element[0].node);\n        beforeNode.parentNode.insertBefore(node, beforeNode);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        // Experimental. No Safari support. Use it on your own risk.\n        var t = this;\n        if (+size !== 0) {\n            var fltr = $(\"filter\"),\n                blur = $(\"feGaussianBlur\");\n            t.attrs.blur = size;\n            fltr.id = R.createUUID();\n            $(blur, {stdDeviation: +size || 1.5});\n            fltr.appendChild(blur);\n            t.paper.defs.appendChild(fltr);\n            t._blur = fltr;\n            $(t.node, {filter: \"url(#\" + fltr.id + \")\"});\n        } else {\n            if (t._blur) {\n                t._blur.parentNode.removeChild(t._blur);\n                delete t._blur;\n                delete t.attrs.blur;\n            }\n            t.node.removeAttribute(\"filter\");\n        }\n        return t;\n    };\n    R._engine.circle = function (svg, x, y, r) {\n        var el = $(\"circle\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, r: r, fill: \"none\", stroke: \"#000\"};\n        res.type = \"circle\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.rect = function (svg, x, y, w, h, r) {\n        var el = $(\"rect\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: \"none\", stroke: \"#000\"};\n        res.type = \"rect\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.ellipse = function (svg, x, y, rx, ry) {\n        var el = $(\"ellipse\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: \"none\", stroke: \"#000\"};\n        res.type = \"ellipse\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.image = function (svg, src, x, y, w, h) {\n        var el = $(\"image\");\n        $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: \"none\"});\n        el.setAttributeNS(xlink, \"href\", src);\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, src: src};\n        res.type = \"image\";\n        return res;\n    };\n    R._engine.text = function (svg, x, y, text) {\n        var el = $(\"text\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {\n            x: x,\n            y: y,\n            \"text-anchor\": \"middle\",\n            text: text,\n            \"font-family\": R._availableAttrs[\"font-family\"],\n            \"font-size\": R._availableAttrs[\"font-size\"],\n            stroke: \"none\",\n            fill: \"#000\"\n        };\n        res.type = \"text\";\n        setFillAndStroke(res, res.attrs);\n        return res;\n    };\n    R._engine.setSize = function (width, height) {\n        this.width = width || this.width;\n        this.height = height || this.height;\n        this.canvas.setAttribute(\"width\", this.width);\n        this.canvas.setAttribute(\"height\", this.height);\n        if (this._viewBox) {\n            this.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con && con.container;\n        if (!container) {\n            throw new Error(\"SVG container not found.\");\n        }\n        var x = con.x,\n            y = con.y,\n            width = con.width,\n            height = con.height,\n            cnvs = $(\"svg\"),\n            css = \"overflow:hidden;\",\n            isFloating;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        $(cnvs, {\n            height: height,\n            version: 1.1,\n            width: width,\n            xmlns: \"http://www.w3.org/2000/svg\",\n            \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\"\n        });\n        if (container == 1) {\n            cnvs.style.cssText = css + \"position:absolute;left:\" + x + \"px;top:\" + y + \"px\";\n            R._g.doc.body.appendChild(cnvs);\n            isFloating = 1;\n        } else {\n            cnvs.style.cssText = css + \"position:relative\";\n            if (container.firstChild) {\n                container.insertBefore(cnvs, container.firstChild);\n            } else {\n                container.appendChild(cnvs);\n            }\n        }\n        container = new R._Paper;\n        container.width = width;\n        container.height = height;\n        container.canvas = cnvs;\n        container.clear();\n        container._left = container._top = 0;\n        isFloating && (container.renderfix = function () {});\n        container.renderfix();\n        return container;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            size = mmax(w / paperSize.width, h / paperSize.height),\n            top = this.top,\n            aspectRatio = fit ? \"xMidYMid meet\" : \"xMinYMin\",\n            vb,\n            sw;\n        if (x == null) {\n            if (this._vbSize) {\n                size = 1;\n            }\n            delete this._vbSize;\n            vb = \"0 0 \" + this.width + S + this.height;\n        } else {\n            this._vbSize = size;\n            vb = x + S + y + S + w + S + h;\n        }\n        $(this.canvas, {\n            viewBox: vb,\n            preserveAspectRatio: aspectRatio\n        });\n        while (size && top) {\n            sw = \"stroke-width\" in top.attrs ? top.attrs[\"stroke-width\"] : 1;\n            top.attr({\"stroke-width\": sw});\n            top._.dirty = 1;\n            top._.dirtyT = 1;\n            top = top.prev;\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        return this;\n    };\n    /*\\\n     * Paper.renderfix\n     [ method ]\n     **\n     * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependent\n     * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\n     * This method fixes the issue.\n     **\n       Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\n    \\*/\n    R.prototype.renderfix = function () {\n        var cnvs = this.canvas,\n            s = cnvs.style,\n            pos;\n        try {\n            pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\n        } catch (e) {\n            pos = cnvs.createSVGMatrix();\n        }\n        var left = -pos.e % 1,\n            top = -pos.f % 1;\n        if (left || top) {\n            if (left) {\n                this._left = (this._left + left) % 1;\n                s.left = this._left + \"px\";\n            }\n            if (top) {\n                this._top = (this._top + top) % 1;\n                s.top = this._top + \"px\";\n            }\n        }\n    };\n    /*\\\n     * Paper.clear\n     [ method ]\n     **\n     * Clears the paper, i.e. removes all the elements.\n    \\*/\n    R.prototype.clear = function () {\n        R.eve(\"raphael.clear\", this);\n        var c = this.canvas;\n        while (c.firstChild) {\n            c.removeChild(c.firstChild);\n        }\n        this.bottom = this.top = null;\n        (this.desc = $(\"desc\")).appendChild(R._g.doc.createTextNode(\"Created with Rapha\\xebl \" + R.version));\n        c.appendChild(this.desc);\n        c.appendChild(this.defs = $(\"defs\"));\n    };\n    /*\\\n     * Paper.remove\n     [ method ]\n     **\n     * Removes the paper from the DOM.\n    \\*/\n    R.prototype.remove = function () {\n        eve(\"raphael.remove\", this);\n        this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n    };\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"./dev/raphael.vml.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.vml.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n    if (R && !R.vml) {\n        return;\n    }\n\n    var has = \"hasOwnProperty\",\n        Str = String,\n        toFloat = parseFloat,\n        math = Math,\n        round = math.round,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        fillString = \"fill\",\n        separator = /[, ]+/,\n        eve = R.eve,\n        ms = \" progid:DXImageTransform.Microsoft\",\n        S = \" \",\n        E = \"\",\n        map = {M: \"m\", L: \"l\", C: \"c\", Z: \"x\", m: \"t\", l: \"r\", c: \"v\", z: \"x\"},\n        bites = /([clmz]),?([^clmz]*)/gi,\n        blurregexp = / progid:\\S+Blur\\([^\\)]+\\)/g,\n        val = /-?[^,\\s-]+/g,\n        cssDot = \"position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)\",\n        zoom = 21600,\n        pathTypes = {path: 1, rect: 1, image: 1},\n        ovalTypes = {circle: 1, ellipse: 1},\n        path2vml = function (path) {\n            var total =  /[ahqstv]/ig,\n                command = R._pathToAbsolute;\n            Str(path).match(total) && (command = R._path2curve);\n            total = /[clmz]/g;\n            if (command == R._pathToAbsolute && !Str(path).match(total)) {\n                var res = Str(path).replace(bites, function (all, command, args) {\n                    var vals = [],\n                        isMove = command.toLowerCase() == \"m\",\n                        res = map[command];\n                    args.replace(val, function (value) {\n                        if (isMove && vals.length == 2) {\n                            res += vals + map[command == \"m\" ? \"l\" : \"L\"];\n                            vals = [];\n                        }\n                        vals.push(round(value * zoom));\n                    });\n                    return res + vals;\n                });\n                return res;\n            }\n            var pa = command(path), p, r;\n            res = [];\n            for (var i = 0, ii = pa.length; i < ii; i++) {\n                p = pa[i];\n                r = pa[i][0].toLowerCase();\n                r == \"z\" && (r = \"x\");\n                for (var j = 1, jj = p.length; j < jj; j++) {\n                    r += round(p[j] * zoom) + (j != jj - 1 ? \",\" : E);\n                }\n                res.push(r);\n            }\n            return res.join(S);\n        },\n        compensation = function (deg, dx, dy) {\n            var m = R.matrix();\n            m.rotate(-deg, .5, .5);\n            return {\n                dx: m.x(dx, dy),\n                dy: m.y(dx, dy)\n            };\n        },\n        setCoords = function (p, sx, sy, dx, dy, deg) {\n            var _ = p._,\n                m = p.matrix,\n                fillpos = _.fillpos,\n                o = p.node,\n                s = o.style,\n                y = 1,\n                flip = \"\",\n                dxdy,\n                kx = zoom / sx,\n                ky = zoom / sy;\n            s.visibility = \"hidden\";\n            if (!sx || !sy) {\n                return;\n            }\n            o.coordsize = abs(kx) + S + abs(ky);\n            s.rotation = deg * (sx * sy < 0 ? -1 : 1);\n            if (deg) {\n                var c = compensation(deg, dx, dy);\n                dx = c.dx;\n                dy = c.dy;\n            }\n            sx < 0 && (flip += \"x\");\n            sy < 0 && (flip += \" y\") && (y = -1);\n            s.flip = flip;\n            o.coordorigin = (dx * -kx) + S + (dy * -ky);\n            if (fillpos || _.fillsize) {\n                var fill = o.getElementsByTagName(fillString);\n                fill = fill && fill[0];\n                o.removeChild(fill);\n                if (fillpos) {\n                    c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\n                    fill.position = c.dx * y + S + c.dy * y;\n                }\n                if (_.fillsize) {\n                    fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\n                }\n                o.appendChild(fill);\n            }\n            s.visibility = \"visible\";\n        };\n    R.toString = function () {\n        return  \"Your browser doesn\\u2019t support SVG. Falling down to VML.\\nYou are running Rapha\\xebl \" + this.version;\n    };\n    var addArrow = function (o, value, isEnd) {\n        var values = Str(value).toLowerCase().split(\"-\"),\n            se = isEnd ? \"end\" : \"start\",\n            i = values.length,\n            type = \"classic\",\n            w = \"medium\",\n            h = \"medium\";\n        while (i--) {\n            switch (values[i]) {\n                case \"block\":\n                case \"classic\":\n                case \"oval\":\n                case \"diamond\":\n                case \"open\":\n                case \"none\":\n                    type = values[i];\n                    break;\n                case \"wide\":\n                case \"narrow\": h = values[i]; break;\n                case \"long\":\n                case \"short\": w = values[i]; break;\n            }\n        }\n        var stroke = o.node.getElementsByTagName(\"stroke\")[0];\n        stroke[se + \"arrow\"] = type;\n        stroke[se + \"arrowlength\"] = w;\n        stroke[se + \"arrowwidth\"] = h;\n    },\n    setFillAndStroke = function (o, params) {\n        // o.paper.canvas.style.display = \"none\";\n        o.attrs = o.attrs || {};\n        var node = o.node,\n            a = o.attrs,\n            s = node.style,\n            xy,\n            newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\n            isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\n            res = o;\n\n\n        for (var par in params) if (params[has](par)) {\n            a[par] = params[par];\n        }\n        if (newpath) {\n            a.path = R._getPath[o.type](o);\n            o._.dirty = 1;\n        }\n        params.href && (node.href = params.href);\n        params.title && (node.title = params.title);\n        params.target && (node.target = params.target);\n        params.cursor && (s.cursor = params.cursor);\n        \"blur\" in params && o.blur(params.blur);\n        if (params.path && o.type == \"path\" || newpath) {\n            node.path = path2vml(~Str(a.path).toLowerCase().indexOf(\"r\") ? R._pathToAbsolute(a.path) : a.path);\n            o._.dirty = 1;\n            if (o.type == \"image\") {\n                o._.fillpos = [a.x, a.y];\n                o._.fillsize = [a.width, a.height];\n                setCoords(o, 1, 1, 0, 0, 0);\n            }\n        }\n        \"transform\" in params && o.transform(params.transform);\n        if (isOval) {\n            var cx = +a.cx,\n                cy = +a.cy,\n                rx = +a.rx || +a.r || 0,\n                ry = +a.ry || +a.r || 0;\n            node.path = R.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\n            o._.dirty = 1;\n        }\n        if (\"clip-rect\" in params) {\n            var rect = Str(params[\"clip-rect\"]).split(separator);\n            if (rect.length == 4) {\n                rect[2] = +rect[2] + (+rect[0]);\n                rect[3] = +rect[3] + (+rect[1]);\n                var div = node.clipRect || R._g.doc.createElement(\"div\"),\n                    dstyle = div.style;\n                dstyle.clip = R.format(\"rect({1}px {2}px {3}px {0}px)\", rect);\n                if (!node.clipRect) {\n                    dstyle.position = \"absolute\";\n                    dstyle.top = 0;\n                    dstyle.left = 0;\n                    dstyle.width = o.paper.width + \"px\";\n                    dstyle.height = o.paper.height + \"px\";\n                    node.parentNode.insertBefore(div, node);\n                    div.appendChild(node);\n                    node.clipRect = div;\n                }\n            }\n            if (!params[\"clip-rect\"]) {\n                node.clipRect && (node.clipRect.style.clip = \"auto\");\n            }\n        }\n        if (o.textpath) {\n            var textpathStyle = o.textpath.style;\n            params.font && (textpathStyle.font = params.font);\n            params[\"font-family\"] && (textpathStyle.fontFamily = '\"' + params[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g, E) + '\"');\n            params[\"font-size\"] && (textpathStyle.fontSize = params[\"font-size\"]);\n            params[\"font-weight\"] && (textpathStyle.fontWeight = params[\"font-weight\"]);\n            params[\"font-style\"] && (textpathStyle.fontStyle = params[\"font-style\"]);\n        }\n        if (\"arrow-start\" in params) {\n            addArrow(res, params[\"arrow-start\"]);\n        }\n        if (\"arrow-end\" in params) {\n            addArrow(res, params[\"arrow-end\"], 1);\n        }\n        if (params.opacity != null ||\n            params.fill != null ||\n            params.src != null ||\n            params.stroke != null ||\n            params[\"stroke-width\"] != null ||\n            params[\"stroke-opacity\"] != null ||\n            params[\"fill-opacity\"] != null ||\n            params[\"stroke-dasharray\"] != null ||\n            params[\"stroke-miterlimit\"] != null ||\n            params[\"stroke-linejoin\"] != null ||\n            params[\"stroke-linecap\"] != null) {\n            var fill = node.getElementsByTagName(fillString),\n                newfill = false;\n            fill = fill && fill[0];\n            !fill && (newfill = fill = createNode(fillString));\n            if (o.type == \"image\" && params.src) {\n                fill.src = params.src;\n            }\n            params.fill && (fill.on = true);\n            if (fill.on == null || params.fill == \"none\" || params.fill === null) {\n                fill.on = false;\n            }\n            if (fill.on && params.fill) {\n                var isURL = Str(params.fill).match(R._ISURL);\n                if (isURL) {\n                    fill.parentNode == node && node.removeChild(fill);\n                    fill.rotate = true;\n                    fill.src = isURL[1];\n                    fill.type = \"tile\";\n                    var bbox = o.getBBox(1);\n                    fill.position = bbox.x + S + bbox.y;\n                    o._.fillpos = [bbox.x, bbox.y];\n\n                    R._preload(isURL[1], function () {\n                        o._.fillsize = [this.offsetWidth, this.offsetHeight];\n                    });\n                } else {\n                    fill.color = R.getRGB(params.fill).hex;\n                    fill.src = E;\n                    fill.type = \"solid\";\n                    if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != \"r\") && addGradientFill(res, params.fill, fill)) {\n                        a.fill = \"none\";\n                        a.gradient = params.fill;\n                        fill.rotate = false;\n                    }\n                }\n            }\n            if (\"fill-opacity\" in params || \"opacity\" in params) {\n                var opacity = ((+a[\"fill-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\n                opacity = mmin(mmax(opacity, 0), 1);\n                fill.opacity = opacity;\n                if (fill.src) {\n                    fill.color = \"none\";\n                }\n            }\n            node.appendChild(fill);\n            var stroke = (node.getElementsByTagName(\"stroke\") && node.getElementsByTagName(\"stroke\")[0]),\n            newstroke = false;\n            !stroke && (newstroke = stroke = createNode(\"stroke\"));\n            if ((params.stroke && params.stroke != \"none\") ||\n                params[\"stroke-width\"] ||\n                params[\"stroke-opacity\"] != null ||\n                params[\"stroke-dasharray\"] ||\n                params[\"stroke-miterlimit\"] ||\n                params[\"stroke-linejoin\"] ||\n                params[\"stroke-linecap\"]) {\n                stroke.on = true;\n            }\n            (params.stroke == \"none\" || params.stroke === null || stroke.on == null || params.stroke == 0 || params[\"stroke-width\"] == 0) && (stroke.on = false);\n            var strokeColor = R.getRGB(params.stroke);\n            stroke.on && params.stroke && (stroke.color = strokeColor.hex);\n            opacity = ((+a[\"stroke-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\n            var width = (toFloat(params[\"stroke-width\"]) || 1) * .75;\n            opacity = mmin(mmax(opacity, 0), 1);\n            params[\"stroke-width\"] == null && (width = a[\"stroke-width\"]);\n            params[\"stroke-width\"] && (stroke.weight = width);\n            width && width < 1 && (opacity *= width) && (stroke.weight = 1);\n            stroke.opacity = opacity;\n\n            params[\"stroke-linejoin\"] && (stroke.joinstyle = params[\"stroke-linejoin\"] || \"miter\");\n            stroke.miterlimit = params[\"stroke-miterlimit\"] || 8;\n            params[\"stroke-linecap\"] && (stroke.endcap = params[\"stroke-linecap\"] == \"butt\" ? \"flat\" : params[\"stroke-linecap\"] == \"square\" ? \"square\" : \"round\");\n            if (\"stroke-dasharray\" in params) {\n                var dasharray = {\n                    \"-\": \"shortdash\",\n                    \".\": \"shortdot\",\n                    \"-.\": \"shortdashdot\",\n                    \"-..\": \"shortdashdotdot\",\n                    \". \": \"dot\",\n                    \"- \": \"dash\",\n                    \"--\": \"longdash\",\n                    \"- .\": \"dashdot\",\n                    \"--.\": \"longdashdot\",\n                    \"--..\": \"longdashdotdot\"\n                };\n                stroke.dashstyle = dasharray[has](params[\"stroke-dasharray\"]) ? dasharray[params[\"stroke-dasharray\"]] : E;\n            }\n            newstroke && node.appendChild(stroke);\n        }\n        if (res.type == \"text\") {\n            res.paper.canvas.style.display = E;\n            var span = res.paper.span,\n                m = 100,\n                fontSize = a.font && a.font.match(/\\d+(?:\\.\\d*)?(?=px)/);\n            s = span.style;\n            a.font && (s.font = a.font);\n            a[\"font-family\"] && (s.fontFamily = a[\"font-family\"]);\n            a[\"font-weight\"] && (s.fontWeight = a[\"font-weight\"]);\n            a[\"font-style\"] && (s.fontStyle = a[\"font-style\"]);\n            fontSize = toFloat(a[\"font-size\"] || fontSize && fontSize[0]) || 10;\n            s.fontSize = fontSize * m + \"px\";\n            res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, \"&#60;\").replace(/&/g, \"&#38;\").replace(/\\n/g, \"<br>\"));\n            var brect = span.getBoundingClientRect();\n            res.W = a.w = (brect.right - brect.left) / m;\n            res.H = a.h = (brect.bottom - brect.top) / m;\n            // res.paper.canvas.style.display = \"none\";\n            res.X = a.x;\n            res.Y = a.y + res.H / 2;\n\n            (\"x\" in params || \"y\" in params) && (res.path.v = R.format(\"m{0},{1}l{2},{1}\", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\n            var dirtyattrs = [\"x\", \"y\", \"text\", \"font\", \"font-family\", \"font-weight\", \"font-style\", \"font-size\"];\n            for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\n                res._.dirty = 1;\n                break;\n            }\n\n            // text-anchor emulation\n            switch (a[\"text-anchor\"]) {\n                case \"start\":\n                    res.textpath.style[\"v-text-align\"] = \"left\";\n                    res.bbx = res.W / 2;\n                break;\n                case \"end\":\n                    res.textpath.style[\"v-text-align\"] = \"right\";\n                    res.bbx = -res.W / 2;\n                break;\n                default:\n                    res.textpath.style[\"v-text-align\"] = \"center\";\n                    res.bbx = 0;\n                break;\n            }\n            res.textpath.style[\"v-text-kern\"] = true;\n        }\n        // res.paper.canvas.style.display = E;\n    },\n    addGradientFill = function (o, gradient, fill) {\n        o.attrs = o.attrs || {};\n        var attrs = o.attrs,\n            pow = Math.pow,\n            opacity,\n            oindex,\n            type = \"linear\",\n            fxfy = \".5 .5\";\n        o.attrs.gradient = gradient;\n        gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\n            type = \"radial\";\n            if (fx && fy) {\n                fx = toFloat(fx);\n                fy = toFloat(fy);\n                pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\n                fxfy = fx + S + fy;\n            }\n            return E;\n        });\n        gradient = gradient.split(/\\s*\\-\\s*/);\n        if (type == \"linear\") {\n            var angle = gradient.shift();\n            angle = -toFloat(angle);\n            if (isNaN(angle)) {\n                return null;\n            }\n        }\n        var dots = R._parseDots(gradient);\n        if (!dots) {\n            return null;\n        }\n        o = o.shape || o.node;\n        if (dots.length) {\n            o.removeChild(fill);\n            fill.on = true;\n            fill.method = \"none\";\n            fill.color = dots[0].color;\n            fill.color2 = dots[dots.length - 1].color;\n            var clrs = [];\n            for (var i = 0, ii = dots.length; i < ii; i++) {\n                dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\n            }\n            fill.colors = clrs.length ? clrs.join() : \"0% \" + fill.color;\n            if (type == \"radial\") {\n                fill.type = \"gradientTitle\";\n                fill.focus = \"100%\";\n                fill.focussize = \"0 0\";\n                fill.focusposition = fxfy;\n                fill.angle = 0;\n            } else {\n                // fill.rotate= true;\n                fill.type = \"gradient\";\n                fill.angle = (270 - angle) % 360;\n            }\n            o.appendChild(fill);\n        }\n        return 1;\n    },\n    Element = function (node, vml) {\n        this[0] = this.node = node;\n        node.raphael = true;\n        this.id = R._oid++;\n        node.raphaelid = this.id;\n        this.X = 0;\n        this.Y = 0;\n        this.attrs = {};\n        this.paper = vml;\n        this.matrix = R.matrix();\n        this._ = {\n            transform: [],\n            sx: 1,\n            sy: 1,\n            dx: 0,\n            dy: 0,\n            deg: 0,\n            dirty: 1,\n            dirtyT: 1\n        };\n        !vml.bottom && (vml.bottom = this);\n        this.prev = vml.top;\n        vml.top && (vml.top.next = this);\n        vml.top = this;\n        this.next = null;\n    };\n    var elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n    elproto.transform = function (tstr) {\n        if (tstr == null) {\n            return this._.transform;\n        }\n        var vbs = this.paper._viewBoxShift,\n            vbt = vbs ? \"s\" + [vbs.scale, vbs.scale] + \"-1-1t\" + [vbs.dx, vbs.dy] : E,\n            oldt;\n        if (vbs) {\n            oldt = tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, this._.transform || E);\n        }\n        R._extractTransform(this, vbt + tstr);\n        var matrix = this.matrix.clone(),\n            skew = this.skew,\n            o = this.node,\n            split,\n            isGrad = ~Str(this.attrs.fill).indexOf(\"-\"),\n            isPatt = !Str(this.attrs.fill).indexOf(\"url(\");\n        matrix.translate(1, 1);\n        if (isPatt || isGrad || this.type == \"image\") {\n            skew.matrix = \"1 0 0 1\";\n            skew.offset = \"0 0\";\n            split = matrix.split();\n            if ((isGrad && split.noRotation) || !split.isSimple) {\n                o.style.filter = matrix.toFilter();\n                var bb = this.getBBox(),\n                    bbt = this.getBBox(1),\n                    dx = bb.x - bbt.x,\n                    dy = bb.y - bbt.y;\n                o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\n                setCoords(this, 1, 1, dx, dy, 0);\n            } else {\n                o.style.filter = E;\n                setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\n            }\n        } else {\n            o.style.filter = E;\n            skew.matrix = Str(matrix);\n            skew.offset = matrix.offset();\n        }\n        if (oldt !== null) { // empty string value is true as well\n            this._.transform = oldt;\n            R._extractTransform(this, oldt);\n        }\n        return this;\n    };\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        if (deg == null) {\n            return;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this._.dirtyT = 1;\n        this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n        return this;\n    };\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        if (this._.bbox) {\n            this._.bbox.x += dx;\n            this._.bbox.y += dy;\n        }\n        this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n        return this;\n    };\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n            isNaN(cx) && (cx = null);\n            isNaN(cy) && (cy = null);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n\n        this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n        this._.dirtyT = 1;\n        return this;\n    };\n    elproto.hide = function () {\n        !this.removed && (this.node.style.display = \"none\");\n        return this;\n    };\n    elproto.show = function () {\n        !this.removed && (this.node.style.display = E);\n        return this;\n    };\n    // Needed to fix the vml setViewBox issues\n    elproto.auxGetBBox = R.el.getBBox;\n    elproto.getBBox = function(){\n      var b = this.auxGetBBox();\n      if (this.paper && this.paper._viewBoxShift)\n      {\n        var c = {};\n        var z = 1/this.paper._viewBoxShift.scale;\n        c.x = b.x - this.paper._viewBoxShift.dx;\n        c.x *= z;\n        c.y = b.y - this.paper._viewBoxShift.dy;\n        c.y *= z;\n        c.width  = b.width  * z;\n        c.height = b.height * z;\n        c.x2 = c.x + c.width;\n        c.y2 = c.y + c.height;\n        return c;\n      }\n      return b;\n    };\n    elproto._getBBox = function () {\n        if (this.removed) {\n            return {};\n        }\n        return {\n            x: this.X + (this.bbx || 0) - this.W / 2,\n            y: this.Y - this.H,\n            width: this.W,\n            height: this.H\n        };\n    };\n    elproto.remove = function () {\n        if (this.removed || !this.node.parentNode) {\n            return;\n        }\n        this.paper.__set__ && this.paper.__set__.exclude(this);\n        R.eve.unbind(\"raphael.*.*.\" + this.id);\n        R._tear(this, this.paper);\n        this.node.parentNode.removeChild(this.node);\n        this.shape && this.shape.parentNode.removeChild(this.shape);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, \"string\")) {\n            if (name == fillString && this.attrs.fill == \"none\" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (this.attrs && value == null && R.is(name, \"array\")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        var params;\n        if (value != null) {\n            params = {};\n            params[name] = value;\n        }\n        value == null && R.is(name, \"object\") && (params = name);\n        for (var key in params) {\n            eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n        }\n        if (params) {\n            for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n                var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n                this.attrs[key] = params[key];\n                for (var subkey in par) if (par[has](subkey)) {\n                    params[subkey] = par[subkey];\n                }\n            }\n            // this.paper.canvas.style.display = \"none\";\n            if (params.text && this.type == \"text\") {\n                this.textpath.string = params.text;\n            }\n            setFillAndStroke(this, params);\n            // this.paper.canvas.style.display = E;\n        }\n        return this;\n    };\n    elproto.toFront = function () {\n        !this.removed && this.node.parentNode.appendChild(this.node);\n        this.paper && this.paper.top != this && R._tofront(this, this.paper);\n        return this;\n    };\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        if (this.node.parentNode.firstChild != this.node) {\n            this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\n            R._toback(this, this.paper);\n        }\n        return this;\n    };\n    elproto.insertAfter = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[element.length - 1];\n        }\n        if (element.node.nextSibling) {\n            element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\n        } else {\n            element.node.parentNode.appendChild(this.node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    elproto.insertBefore = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[0];\n        }\n        element.node.parentNode.insertBefore(this.node, element.node);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        var s = this.node.runtimeStyle,\n            f = s.filter;\n        f = f.replace(blurregexp, E);\n        if (+size !== 0) {\n            this.attrs.blur = size;\n            s.filter = f + S + ms + \".Blur(pixelradius=\" + (+size || 1.5) + \")\";\n            s.margin = R.format(\"-{0}px 0 0 -{0}px\", round(+size || 1.5));\n        } else {\n            s.filter = f;\n            s.margin = 0;\n            delete this.attrs.blur;\n        }\n        return this;\n    };\n\n    R._engine.path = function (pathString, vml) {\n        var el = createNode(\"shape\");\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = vml.coordorigin;\n        var p = new Element(el, vml),\n            attr = {fill: \"none\", stroke: \"#000\"};\n        pathString && (attr.path = pathString);\n        p.type = \"path\";\n        p.path = [];\n        p.Path = E;\n        setFillAndStroke(p, attr);\n        vml.canvas && vml.canvas.appendChild(el);\n        var skew = createNode(\"skew\");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.rect = function (vml, x, y, w, h, r) {\n        var path = R._rectPath(x, y, w, h, r),\n            res = vml.path(path),\n            a = res.attrs;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.r = r;\n        a.path = path;\n        res.type = \"rect\";\n        return res;\n    };\n    R._engine.ellipse = function (vml, x, y, rx, ry) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - rx;\n        res.Y = y - ry;\n        res.W = rx * 2;\n        res.H = ry * 2;\n        res.type = \"ellipse\";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            rx: rx,\n            ry: ry\n        });\n        return res;\n    };\n    R._engine.circle = function (vml, x, y, r) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - r;\n        res.Y = y - r;\n        res.W = res.H = r * 2;\n        res.type = \"circle\";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            r: r\n        });\n        return res;\n    };\n    R._engine.image = function (vml, src, x, y, w, h) {\n        var path = R._rectPath(x, y, w, h),\n            res = vml.path(path).attr({stroke: \"none\"}),\n            a = res.attrs,\n            node = res.node,\n            fill = node.getElementsByTagName(fillString)[0];\n        a.src = src;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.path = path;\n        res.type = \"image\";\n        fill.parentNode == node && node.removeChild(fill);\n        fill.rotate = true;\n        fill.src = src;\n        fill.type = \"tile\";\n        res._.fillpos = [x, y];\n        res._.fillsize = [w, h];\n        node.appendChild(fill);\n        setCoords(res, 1, 1, 0, 0, 0);\n        return res;\n    };\n    R._engine.text = function (vml, x, y, text) {\n        var el = createNode(\"shape\"),\n            path = createNode(\"path\"),\n            o = createNode(\"textpath\");\n        x = x || 0;\n        y = y || 0;\n        text = text || \"\";\n        path.v = R.format(\"m{0},{1}l{2},{1}\", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\n        path.textpathok = true;\n        o.string = Str(text);\n        o.on = true;\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = \"0 0\";\n        var p = new Element(el, vml),\n            attr = {\n                fill: \"#000\",\n                stroke: \"none\",\n                font: R._availableAttrs.font,\n                text: text\n            };\n        p.shape = el;\n        p.path = path;\n        p.textpath = o;\n        p.type = \"text\";\n        p.attrs.text = Str(text);\n        p.attrs.x = x;\n        p.attrs.y = y;\n        p.attrs.w = 1;\n        p.attrs.h = 1;\n        setFillAndStroke(p, attr);\n        el.appendChild(o);\n        el.appendChild(path);\n        vml.canvas.appendChild(el);\n        var skew = createNode(\"skew\");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.setSize = function (width, height) {\n        var cs = this.canvas.style;\n        this.width = width;\n        this.height = height;\n        width == +width && (width += \"px\");\n        height == +height && (height += \"px\");\n        cs.width = width;\n        cs.height = height;\n        cs.clip = \"rect(0 \" + width + \" \" + height + \" 0)\";\n        if (this._viewBox) {\n            R._engine.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        R.eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            width = paperSize.width,\n            height = paperSize.height,\n            H, W;\n        if (fit) {\n            H = height / h;\n            W = width / w;\n            if (w * H < width) {\n                x -= (width - w * H) / 2 / H;\n            }\n            if (h * W < height) {\n                y -= (height - h * W) / 2 / W;\n            }\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        this._viewBoxShift = {\n            dx: -x,\n            dy: -y,\n            scale: paperSize\n        };\n        this.forEach(function (el) {\n            el.transform(\"...\");\n        });\n        return this;\n    };\n    var createNode;\n    R._engine.initWin = function (win) {\n            var doc = win.document;\n            if (doc.styleSheets.length < 31) {\n                doc.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n            } else {\n                // no more room, add to the existing one\n                // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n                doc.styleSheets[0].addRule(\".rvml\", \"behavior:url(#default#VML)\");\n            }\n            try {\n                !doc.namespaces.rvml && doc.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n                createNode = function (tagName) {\n                    return doc.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n                };\n            } catch (e) {\n                createNode = function (tagName) {\n                    return doc.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n                };\n            }\n        };\n    R._engine.initWin(R._g.win);\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con.container,\n            height = con.height,\n            s,\n            width = con.width,\n            x = con.x,\n            y = con.y;\n        if (!container) {\n            throw new Error(\"VML container not found.\");\n        }\n        var res = new R._Paper,\n            c = res.canvas = R._g.doc.createElement(\"div\"),\n            cs = c.style;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        res.width = width;\n        res.height = height;\n        width == +width && (width += \"px\");\n        height == +height && (height += \"px\");\n        res.coordsize = zoom * 1e3 + S + zoom * 1e3;\n        res.coordorigin = \"0 0\";\n        res.span = R._g.doc.createElement(\"span\");\n        res.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\";\n        c.appendChild(res.span);\n        cs.cssText = R.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\", width, height);\n        if (container == 1) {\n            R._g.doc.body.appendChild(c);\n            cs.left = x + \"px\";\n            cs.top = y + \"px\";\n            cs.position = \"absolute\";\n        } else {\n            if (container.firstChild) {\n                container.insertBefore(c, container.firstChild);\n            } else {\n                container.appendChild(c);\n            }\n        }\n        res.renderfix = function () {};\n        return res;\n    };\n    R.prototype.clear = function () {\n        R.eve(\"raphael.clear\", this);\n        this.canvas.innerHTML = E;\n        this.span = R._g.doc.createElement(\"span\");\n        this.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\";\n        this.canvas.appendChild(this.span);\n        this.bottom = this.top = null;\n    };\n    R.prototype.remove = function () {\n        R.eve(\"raphael.remove\", this);\n        this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        return true;\n    };\n\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"./node_modules/eve-raphael/eve.js\":\n/*!*****************************************!*\\\n  !*** ./node_modules/eve-raphael/eve.js ***!\n  \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.5.0 - JavaScript Events Library                      │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n    var version = \"0.5.0\",\n        has = \"hasOwnProperty\",\n        separator = /[\\.\\/]/,\n        comaseparator = /\\s*,\\s*/,\n        wildcard = \"*\",\n        fun = function () {},\n        numsort = function (a, b) {\n            return a - b;\n        },\n        current_event,\n        stop,\n        events = {n: {}},\n        firstDefined = function () {\n            for (var i = 0, ii = this.length; i < ii; i++) {\n                if (typeof this[i] != \"undefined\") {\n                    return this[i];\n                }\n            }\n        },\n        lastDefined = function () {\n            var i = this.length;\n            while (--i) {\n                if (typeof this[i] != \"undefined\") {\n                    return this[i];\n                }\n            }\n        },\n        objtos = Object.prototype.toString,\n        Str = String,\n        isArray = Array.isArray || function (ar) {\n            return ar instanceof Array || objtos.call(ar) == \"[object Array]\";\n        };\n    /*\\\n     * eve\n     [ method ]\n\n     * Fires event with given `name`, given scope and other parameters.\n\n     > Arguments\n\n     - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n     - scope (object) context for the event handlers\n     - varargs (...) the rest of arguments will be sent to event handlers\n\n     = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.\n    \\*/\n        var eve = function (name, scope) {\n            var e = events,\n                oldstop = stop,\n                args = Array.prototype.slice.call(arguments, 2),\n                listeners = eve.listeners(name),\n                z = 0,\n                f = false,\n                l,\n                indexed = [],\n                queue = {},\n                out = [],\n                ce = current_event,\n                errors = [];\n            out.firstDefined = firstDefined;\n            out.lastDefined = lastDefined;\n            current_event = name;\n            stop = 0;\n            for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n                indexed.push(listeners[i].zIndex);\n                if (listeners[i].zIndex < 0) {\n                    queue[listeners[i].zIndex] = listeners[i];\n                }\n            }\n            indexed.sort(numsort);\n            while (indexed[z] < 0) {\n                l = queue[indexed[z++]];\n                out.push(l.apply(scope, args));\n                if (stop) {\n                    stop = oldstop;\n                    return out;\n                }\n            }\n            for (i = 0; i < ii; i++) {\n                l = listeners[i];\n                if (\"zIndex\" in l) {\n                    if (l.zIndex == indexed[z]) {\n                        out.push(l.apply(scope, args));\n                        if (stop) {\n                            break;\n                        }\n                        do {\n                            z++;\n                            l = queue[indexed[z]];\n                            l && out.push(l.apply(scope, args));\n                            if (stop) {\n                                break;\n                            }\n                        } while (l)\n                    } else {\n                        queue[l.zIndex] = l;\n                    }\n                } else {\n                    out.push(l.apply(scope, args));\n                    if (stop) {\n                        break;\n                    }\n                }\n            }\n            stop = oldstop;\n            current_event = ce;\n            return out;\n        };\n        // Undocumented. Debug only.\n        eve._events = events;\n    /*\\\n     * eve.listeners\n     [ method ]\n\n     * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n     > Arguments\n\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n     = (array) array of event handlers\n    \\*/\n    eve.listeners = function (name) {\n        var names = isArray(name) ? name : name.split(separator),\n            e = events,\n            item,\n            items,\n            k,\n            i,\n            ii,\n            j,\n            jj,\n            nes,\n            es = [e],\n            out = [];\n        for (i = 0, ii = names.length; i < ii; i++) {\n            nes = [];\n            for (j = 0, jj = es.length; j < jj; j++) {\n                e = es[j].n;\n                items = [e[names[i]], e[wildcard]];\n                k = 2;\n                while (k--) {\n                    item = items[k];\n                    if (item) {\n                        nes.push(item);\n                        out = out.concat(item.f || []);\n                    }\n                }\n            }\n            es = nes;\n        }\n        return out;\n    };\n    /*\\\n     * eve.separator\n     [ method ]\n\n     * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours\n     * here. Be aware that if you pass a string longer than one character it will be treated as\n     * a list of characters.\n\n     - separator (string) new separator. Empty string resets to default: `.` or `/`.\n    \\*/\n    eve.separator = function (sep) {\n        if (sep) {\n            sep = Str(sep).replace(/(?=[\\.\\^\\]\\[\\-])/g, \"\\\\\");\n            sep = \"[\" + sep + \"]\";\n            separator = new RegExp(sep);\n        } else {\n            separator = /[\\.\\/]/;\n        }\n    };\n    /*\\\n     * eve.on\n     [ method ]\n     **\n     * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n     | eve.on(\"*.under.*\", f);\n     | eve(\"mouse.under.floor\"); // triggers f\n     * Use @eve to trigger the listener.\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     - name (array) if you don’t want to use separators, you can use array of strings\n     - f (function) event handler function\n     **\n     = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment. \n     > Example:\n     | eve.on(\"mouse\", eatIt)(2);\n     | eve.on(\"mouse\", scream);\n     | eve.on(\"mouse\", catchIt)(1);\n     * This will ensure that `catchIt` function will be called before `eatIt`.\n     *\n     * If you want to put your handler before non-indexed handlers, specify a negative value.\n     * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n    \\*/\n    eve.on = function (name, f) {\n        if (typeof f != \"function\") {\n            return function () {};\n        }\n        var names = isArray(name) ? (isArray(name[0]) ? name : [name]) : Str(name).split(comaseparator);\n        for (var i = 0, ii = names.length; i < ii; i++) {\n            (function (name) {\n                var names = isArray(name) ? name : Str(name).split(separator),\n                    e = events,\n                    exist;\n                for (var i = 0, ii = names.length; i < ii; i++) {\n                    e = e.n;\n                    e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n                }\n                e.f = e.f || [];\n                for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n                    exist = true;\n                    break;\n                }\n                !exist && e.f.push(f);\n            }(names[i]));\n        }\n        return function (zIndex) {\n            if (+zIndex == +zIndex) {\n                f.zIndex = +zIndex;\n            }\n        };\n    };\n    /*\\\n     * eve.f\n     [ method ]\n     **\n     * Returns function that will fire given event with optional arguments.\n     * Arguments that will be passed to the result function will be also\n     * concated to the list of final arguments.\n     | el.onclick = eve.f(\"click\", 1, 2);\n     | eve.on(\"click\", function (a, b, c) {\n     |     console.log(a, b, c); // 1, 2, [event object]\n     | });\n     > Arguments\n     - event (string) event name\n     - varargs (…) and any other arguments\n     = (function) possible event handler function\n    \\*/\n    eve.f = function (event) {\n        var attrs = [].slice.call(arguments, 1);\n        return function () {\n            eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n        };\n    };\n    /*\\\n     * eve.stop\n     [ method ]\n     **\n     * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n    \\*/\n    eve.stop = function () {\n        stop = 1;\n    };\n    /*\\\n     * eve.nt\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     > Arguments\n     **\n     - subname (string) #optional subname of the event\n     **\n     = (string) name of the event, if `subname` is not specified\n     * or\n     = (boolean) `true`, if current event’s name contains `subname`\n    \\*/\n    eve.nt = function (subname) {\n        var cur = isArray(current_event) ? current_event.join(\".\") : current_event;\n        if (subname) {\n            return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(cur);\n        }\n        return cur;\n    };\n    /*\\\n     * eve.nts\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     **\n     = (array) names of the event\n    \\*/\n    eve.nts = function () {\n        return isArray(current_event) ? current_event : current_event.split(separator);\n    };\n    /*\\\n     * eve.off\n     [ method ]\n     **\n     * Removes given function from the list of event listeners assigned to given name.\n     * If no arguments specified all the events will be cleared.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n    \\*/\n    /*\\\n     * eve.unbind\n     [ method ]\n     **\n     * See @eve.off\n    \\*/\n    eve.off = eve.unbind = function (name, f) {\n        if (!name) {\n            eve._events = events = {n: {}};\n            return;\n        }\n        var names = isArray(name) ? (isArray(name[0]) ? name : [name]) : Str(name).split(comaseparator);\n        if (names.length > 1) {\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                eve.off(names[i], f);\n            }\n            return;\n        }\n        names = isArray(name) ? name : Str(name).split(separator);\n        var e,\n            key,\n            splice,\n            i, ii, j, jj,\n            cur = [events];\n        for (i = 0, ii = names.length; i < ii; i++) {\n            for (j = 0; j < cur.length; j += splice.length - 2) {\n                splice = [j, 1];\n                e = cur[j].n;\n                if (names[i] != wildcard) {\n                    if (e[names[i]]) {\n                        splice.push(e[names[i]]);\n                    }\n                } else {\n                    for (key in e) if (e[has](key)) {\n                        splice.push(e[key]);\n                    }\n                }\n                cur.splice.apply(cur, splice);\n            }\n        }\n        for (i = 0, ii = cur.length; i < ii; i++) {\n            e = cur[i];\n            while (e.n) {\n                if (f) {\n                    if (e.f) {\n                        for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n                            e.f.splice(j, 1);\n                            break;\n                        }\n                        !e.f.length && delete e.f;\n                    }\n                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n                        var funcs = e.n[key].f;\n                        for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n                            funcs.splice(j, 1);\n                            break;\n                        }\n                        !funcs.length && delete e.n[key].f;\n                    }\n                } else {\n                    delete e.f;\n                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n                        delete e.n[key].f;\n                    }\n                }\n                e = e.n;\n            }\n        }\n    };\n    /*\\\n     * eve.once\n     [ method ]\n     **\n     * Binds given event handler with a given name to only run once then unbind itself.\n     | eve.once(\"login\", f);\n     | eve(\"login\"); // triggers f\n     | eve(\"login\"); // no listeners\n     * Use @eve to trigger the listener.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     = (function) same return function as @eve.on\n    \\*/\n    eve.once = function (name, f) {\n        var f2 = function () {\n            eve.off(name, f2);\n            return f.apply(this, arguments);\n        };\n        return eve.on(name, f2);\n    };\n    /*\\\n     * eve.version\n     [ property (string) ]\n     **\n     * Current version of the library.\n    \\*/\n    eve.version = version;\n    eve.toString = function () {\n        return \"You are running Eve \" + version;\n    };\n    ( true && module.exports) ? (module.exports = eve) : ( true ? (!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { return eve; }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) : (undefined));\n})(this);\n\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/raphael/raphael.no-deps.js",
    "content": "// ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.3.0 - JavaScript Vector Library                                                             │ \\\\\n// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2016 Dmitry Baranovskiy (http://raphaeljs.com)                                       │ \\\\\n// │ Copyright © 2008-2016 Sencha Labs (http://sencha.com)                                                 │ \\\\\n// ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (https://github.com/DmitryBaranovskiy/raphael/blob/master/license.txt) license.│ \\\\\n// └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"eve\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"eve\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Raphael\"] = factory(require(\"eve\"));\n\telse\n\t\troot[\"Raphael\"] = factory(root[\"eve\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_eve__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./dev/raphael.amd.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./dev/raphael.amd.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.amd.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\"), __webpack_require__(/*! ./raphael.svg */ \"./dev/raphael.svg.js\"), __webpack_require__(/*! ./raphael.vml */ \"./dev/raphael.vml.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n\n    return R;\n\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n\n/***/ \"./dev/raphael.core.js\":\n/*!*****************************!*\\\n  !*** ./dev/raphael.core.js ***!\n  \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! eve */ \"eve\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(eve) {\n\n    /*\\\n     * Raphael\n     [ method ]\n     **\n     * Creates a canvas object on which to draw.\n     * You must do this first, as all future calls to drawing methods\n     * from this instance will be bound to this canvas.\n     > Parameters\n     **\n     - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - x (number)\n     - y (number)\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add.\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\n     = (object) @Paper\n     > Usage\n     | // Each of the following examples create a canvas\n     | // that is 320px wide by 200px high.\n     | // Canvas is created at the viewport’s 10,50 coordinate.\n     | var paper = Raphael(10, 50, 320, 200);\n     | // Canvas is created at the top left corner of the #notepad element\n     | // (or its top right corner in dir=\"rtl\" elements)\n     | var paper = Raphael(document.getElementById(\"notepad\"), 320, 200);\n     | // Same as above\n     | var paper = Raphael(\"notepad\", 320, 200);\n     | // Image dump\n     | var set = Raphael([\"notepad\", 320, 200, {\n     |     type: \"rect\",\n     |     x: 10,\n     |     y: 10,\n     |     width: 25,\n     |     height: 25,\n     |     stroke: \"#f00\"\n     | }, {\n     |     type: \"text\",\n     |     x: 30,\n     |     y: 40,\n     |     text: \"Dump\"\n     | }]);\n    \\*/\n    function R(first) {\n        if (R.is(first, \"function\")) {\n            return loaded ? first() : eve.on(\"raphael.DOMload\", first);\n        } else if (R.is(first, array)) {\n            return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\n        } else {\n            var args = Array.prototype.slice.call(arguments, 0);\n            if (R.is(args[args.length - 1], \"function\")) {\n                var f = args.pop();\n                return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on(\"raphael.DOMload\", function () {\n                    f.call(R._engine.create[apply](R, args));\n                });\n            } else {\n                return R._engine.create[apply](R, arguments);\n            }\n        }\n    }\n    R.version = \"2.3.0\";\n    R.eve = eve;\n    var loaded,\n        separator = /[, ]+/,\n        elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\n        formatrg = /\\{(\\d+)\\}/g,\n        proto = \"prototype\",\n        has = \"hasOwnProperty\",\n        g = {\n            doc: document,\n            win: window\n        },\n        oldRaphael = {\n            was: Object.prototype[has].call(g.win, \"Raphael\"),\n            is: g.win.Raphael\n        },\n        Paper = function () {\n            /*\\\n             * Paper.ca\n             [ property (object) ]\n             **\n             * Shortcut for @Paper.customAttributes\n            \\*/\n            /*\\\n             * Paper.customAttributes\n             [ property (object) ]\n             **\n             * If you have a set of attributes that you would like to represent\n             * as a function of some number you can do it easily with custom attributes:\n             > Usage\n             | paper.customAttributes.hue = function (num) {\n             |     num = num % 1;\n             |     return {fill: \"hsb(\" + num + \", 0.75, 1)\"};\n             | };\n             | // Custom attribute “hue” will change fill\n             | // to be given hue with fixed saturation and brightness.\n             | // Now you can use it like this:\n             | var c = paper.circle(10, 10, 10).attr({hue: .45});\n             | // or even like this:\n             | c.animate({hue: 1}, 1e3);\n             |\n             | // You could also create custom attribute\n             | // with multiple parameters:\n             | paper.customAttributes.hsb = function (h, s, b) {\n             |     return {fill: \"hsb(\" + [h, s, b].join(\",\") + \")\"};\n             | };\n             | c.attr({hsb: \"0.5 .8 1\"});\n             | c.animate({hsb: [1, 0, 0.5]}, 1e3);\n            \\*/\n            this.ca = this.customAttributes = {};\n        },\n        paperproto,\n        appendChild = \"appendChild\",\n        apply = \"apply\",\n        concat = \"concat\",\n        //taken from Modernizr touch test: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js#L40\n        supportsTouch = ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n        E = \"\",\n        S = \" \",\n        Str = String,\n        split = \"split\",\n        events = \"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\"[split](S),\n        touchMap = {\n            mousedown: \"touchstart\",\n            mousemove: \"touchmove\",\n            mouseup: \"touchend\"\n        },\n        lowerCase = Str.prototype.toLowerCase,\n        math = Math,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        pow = math.pow,\n        PI = math.PI,\n        nu = \"number\",\n        string = \"string\",\n        array = \"array\",\n        toString = \"toString\",\n        fillString = \"fill\",\n        objectToString = Object.prototype.toString,\n        paper = {},\n        push = \"push\",\n        ISURL = R._ISURL = /^url\\(['\"]?(.+?)['\"]?\\)$/i,\n        colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i,\n        isnan = {\"NaN\": 1, \"Infinity\": 1, \"-Infinity\": 1},\n        bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n        round = math.round,\n        setAttribute = \"setAttribute\",\n        toFloat = parseFloat,\n        toInt = parseInt,\n        upperCase = Str.prototype.toUpperCase,\n        availableAttrs = R._availableAttrs = {\n            \"arrow-end\": \"none\",\n            \"arrow-start\": \"none\",\n            blur: 0,\n            \"clip-rect\": \"0 0 1e9 1e9\",\n            cursor: \"default\",\n            cx: 0,\n            cy: 0,\n            fill: \"#fff\",\n            \"fill-opacity\": 1,\n            font: '10px \"Arial\"',\n            \"font-family\": '\"Arial\"',\n            \"font-size\": \"10\",\n            \"font-style\": \"normal\",\n            \"font-weight\": 400,\n            gradient: 0,\n            height: 0,\n            href: \"http://raphaeljs.com/\",\n            \"letter-spacing\": 0,\n            opacity: 1,\n            path: \"M0,0\",\n            r: 0,\n            rx: 0,\n            ry: 0,\n            src: \"\",\n            stroke: \"#000\",\n            \"stroke-dasharray\": \"\",\n            \"stroke-linecap\": \"butt\",\n            \"stroke-linejoin\": \"butt\",\n            \"stroke-miterlimit\": 0,\n            \"stroke-opacity\": 1,\n            \"stroke-width\": 1,\n            target: \"_blank\",\n            \"text-anchor\": \"middle\",\n            title: \"Raphael\",\n            transform: \"\",\n            width: 0,\n            x: 0,\n            y: 0,\n            \"class\": \"\"\n        },\n        availableAnimAttrs = R._availableAnimAttrs = {\n            blur: nu,\n            \"clip-rect\": \"csv\",\n            cx: nu,\n            cy: nu,\n            fill: \"colour\",\n            \"fill-opacity\": nu,\n            \"font-size\": nu,\n            height: nu,\n            opacity: nu,\n            path: \"path\",\n            r: nu,\n            rx: nu,\n            ry: nu,\n            stroke: \"colour\",\n            \"stroke-opacity\": nu,\n            \"stroke-width\": nu,\n            transform: \"transform\",\n            width: nu,\n            x: nu,\n            y: nu\n        },\n        whitespace = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]/g,\n        commaSpaces = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,\n        hsrg = {hs: 1, rg: 1},\n        p2s = /,?([achlmqrstvxz]),?/gi,\n        pathCommand = /([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        tCommand = /([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/ig,\n        radial_gradient = R._radial_gradient = /^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,\n        eldata = {},\n        sortByKey = function (a, b) {\n            return a.key - b.key;\n        },\n        sortByNumber = function (a, b) {\n            return toFloat(a) - toFloat(b);\n        },\n        fun = function () {},\n        pipe = function (x) {\n            return x;\n        },\n        rectPath = R._rectPath = function (x, y, w, h, r) {\n            if (r) {\n                return [[\"M\", x + r, y], [\"l\", w - r * 2, 0], [\"a\", r, r, 0, 0, 1, r, r], [\"l\", 0, h - r * 2], [\"a\", r, r, 0, 0, 1, -r, r], [\"l\", r * 2 - w, 0], [\"a\", r, r, 0, 0, 1, -r, -r], [\"l\", 0, r * 2 - h], [\"a\", r, r, 0, 0, 1, r, -r], [\"z\"]];\n            }\n            return [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n        },\n        ellipsePath = function (x, y, rx, ry) {\n            if (ry == null) {\n                ry = rx;\n            }\n            return [[\"M\", x, y], [\"m\", 0, -ry], [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry], [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry], [\"z\"]];\n        },\n        getPath = R._getPath = {\n            path: function (el) {\n                return el.attr(\"path\");\n            },\n            circle: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.r);\n            },\n            ellipse: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.rx, a.ry);\n            },\n            rect: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height, a.r);\n            },\n            image: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height);\n            },\n            text: function (el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            },\n            set : function(el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            }\n        },\n        /*\\\n         * Raphael.mapPath\n         [ method ]\n         **\n         * Transform the path string with given matrix.\n         > Parameters\n         - path (string) path string\n         - matrix (object) see @Matrix\n         = (string) transformed path string\n        \\*/\n        mapPath = R.mapPath = function (path, matrix) {\n            if (!matrix) {\n                return path;\n            }\n            var x, y, i, j, ii, jj, pathi;\n            path = path2curve(path);\n            for (i = 0, ii = path.length; i < ii; i++) {\n                pathi = path[i];\n                for (j = 1, jj = pathi.length; j < jj; j += 2) {\n                    x = matrix.x(pathi[j], pathi[j + 1]);\n                    y = matrix.y(pathi[j], pathi[j + 1]);\n                    pathi[j] = x;\n                    pathi[j + 1] = y;\n                }\n            }\n            return path;\n        };\n\n    R._g = g;\n    /*\\\n     * Raphael.type\n     [ property (string) ]\n     **\n     * Can be “SVG”, “VML” or empty, depending on browser support.\n    \\*/\n    R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\") ? \"SVG\" : \"VML\");\n    if (R.type == \"VML\") {\n        var d = g.doc.createElement(\"div\"),\n            b;\n        d.innerHTML = '<v:shape adj=\"1\"/>';\n        b = d.firstChild;\n        b.style.behavior = \"url(#default#VML)\";\n        if (!(b && typeof b.adj == \"object\")) {\n            return (R.type = E);\n        }\n        d = null;\n    }\n    /*\\\n     * Raphael.svg\n     [ property (boolean) ]\n     **\n     * `true` if browser supports SVG.\n    \\*/\n    /*\\\n     * Raphael.vml\n     [ property (boolean) ]\n     **\n     * `true` if browser supports VML.\n    \\*/\n    R.svg = !(R.vml = R.type == \"VML\");\n    R._Paper = Paper;\n    /*\\\n     * Raphael.fn\n     [ property (object) ]\n     **\n     * You can add your own method to the canvas. For example if you want to draw a pie chart,\n     * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\n     * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\n     * Raphaël instance is created, otherwise it will take no effect. Please note that the\n     * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\n     * ensure any namespacing ensures proper context.\n     > Usage\n     | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\n     |     return this.path( ... );\n     | };\n     | // or create namespace\n     | Raphael.fn.mystuff = {\n     |     arrow: function () {…},\n     |     star: function () {…},\n     |     // etc…\n     | };\n     | var paper = Raphael(10, 10, 630, 480);\n     | // then use it\n     | paper.arrow(10, 10, 30, 30, 5).attr({fill: \"#f00\"});\n     | paper.mystuff.arrow();\n     | paper.mystuff.star();\n    \\*/\n    R.fn = paperproto = Paper.prototype = R.prototype;\n    R._id = 0;\n    /*\\\n     * Raphael.is\n     [ method ]\n     **\n     * Handful of replacements for `typeof` operator.\n     > Parameters\n     - o (…) any object or primitive\n     - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\n     = (boolean) is given value is of given type\n    \\*/\n    R.is = function (o, type) {\n        type = lowerCase.call(type);\n        if (type == \"finite\") {\n            return !isnan[has](+o);\n        }\n        if (type == \"array\") {\n            return o instanceof Array;\n        }\n        return  (type == \"null\" && o === null) ||\n                (type == typeof o && o !== null) ||\n                (type == \"object\" && o === Object(o)) ||\n                (type == \"array\" && Array.isArray && Array.isArray(o)) ||\n                objectToString.call(o).slice(8, -1).toLowerCase() == type;\n    };\n\n    function clone(obj) {\n        if (typeof obj == \"function\" || Object(obj) !== obj) {\n            return obj;\n        }\n        var res = new obj.constructor;\n        for (var key in obj) if (obj[has](key)) {\n            res[key] = clone(obj[key]);\n        }\n        return res;\n    }\n\n    /*\\\n     * Raphael.angle\n     [ method ]\n     **\n     * Returns angle between two or three points\n     > Parameters\n     - x1 (number) x coord of first point\n     - y1 (number) y coord of first point\n     - x2 (number) x coord of second point\n     - y2 (number) y coord of second point\n     - x3 (number) #optional x coord of third point\n     - y3 (number) #optional y coord of third point\n     = (number) angle in degrees.\n    \\*/\n    R.angle = function (x1, y1, x2, y2, x3, y3) {\n        if (x3 == null) {\n            var x = x1 - x2,\n                y = y1 - y2;\n            if (!x && !y) {\n                return 0;\n            }\n            return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n        } else {\n            return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\n        }\n    };\n    /*\\\n     * Raphael.rad\n     [ method ]\n     **\n     * Transform angle to radians\n     > Parameters\n     - deg (number) angle in degrees\n     = (number) angle in radians.\n    \\*/\n    R.rad = function (deg) {\n        return deg % 360 * PI / 180;\n    };\n    /*\\\n     * Raphael.deg\n     [ method ]\n     **\n     * Transform angle to degrees\n     > Parameters\n     - rad (number) angle in radians\n     = (number) angle in degrees.\n    \\*/\n    R.deg = function (rad) {\n        return Math.round ((rad * 180 / PI% 360)* 1000) / 1000;\n    };\n    /*\\\n     * Raphael.snapTo\n     [ method ]\n     **\n     * Snaps given value to given grid.\n     > Parameters\n     - values (array|number) given array of values or step of the grid\n     - value (number) value to adjust\n     - tolerance (number) #optional tolerance for snapping. Default is `10`.\n     = (number) adjusted value.\n    \\*/\n    R.snapTo = function (values, value, tolerance) {\n        tolerance = R.is(tolerance, \"finite\") ? tolerance : 10;\n        if (R.is(values, array)) {\n            var i = values.length;\n            while (i--) if (abs(values[i] - value) <= tolerance) {\n                return values[i];\n            }\n        } else {\n            values = +values;\n            var rem = value % values;\n            if (rem < tolerance) {\n                return value - rem;\n            }\n            if (rem > values - tolerance) {\n                return value - rem + values;\n            }\n        }\n        return value;\n    };\n\n    /*\\\n     * Raphael.createUUID\n     [ method ]\n     **\n     * Returns RFC4122, version 4 ID\n    \\*/\n    var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\n        return function () {\n            return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(uuidRegEx, uuidReplacer).toUpperCase();\n        };\n    })(/[xy]/g, function (c) {\n        var r = math.random() * 16 | 0,\n            v = c == \"x\" ? r : (r & 3 | 8);\n        return v.toString(16);\n    });\n\n    /*\\\n     * Raphael.setWindow\n     [ method ]\n     **\n     * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one.\n     > Parameters\n     - newwin (window) new window object\n    \\*/\n    R.setWindow = function (newwin) {\n        eve(\"raphael.setWindow\", R, g.win, newwin);\n        g.win = newwin;\n        g.doc = g.win.document;\n        if (R._engine.initWin) {\n            R._engine.initWin(g.win);\n        }\n    };\n    var toHex = function (color) {\n        if (R.vml) {\n            // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\n            var trim = /^\\s+|\\s+$/g;\n            var bod;\n            try {\n                var docum = new ActiveXObject(\"htmlfile\");\n                docum.write(\"<body>\");\n                docum.close();\n                bod = docum.body;\n            } catch(e) {\n                bod = createPopup().document.body;\n            }\n            var range = bod.createTextRange();\n            toHex = cacher(function (color) {\n                try {\n                    bod.style.color = Str(color).replace(trim, E);\n                    var value = range.queryCommandValue(\"ForeColor\");\n                    value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\n                    return \"#\" + (\"000000\" + value.toString(16)).slice(-6);\n                } catch(e) {\n                    return \"none\";\n                }\n            });\n        } else {\n            var i = g.doc.createElement(\"i\");\n            i.title = \"Rapha\\xebl Colour Picker\";\n            i.style.display = \"none\";\n            g.doc.body.appendChild(i);\n            toHex = cacher(function (color) {\n                i.style.color = color;\n                return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n            });\n        }\n        return toHex(color);\n    },\n    hsbtoString = function () {\n        return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n    },\n    hsltoString = function () {\n        return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n    },\n    rgbtoString = function () {\n        return this.hex;\n    },\n    prepareRGB = function (r, g, b) {\n        if (g == null && R.is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n            b = r.b;\n            g = r.g;\n            r = r.r;\n        }\n        if (g == null && R.is(r, string)) {\n            var clr = R.getRGB(r);\n            r = clr.r;\n            g = clr.g;\n            b = clr.b;\n        }\n        if (r > 1 || g > 1 || b > 1) {\n            r /= 255;\n            g /= 255;\n            b /= 255;\n        }\n\n        return [r, g, b];\n    },\n    packageRGB = function (r, g, b, o) {\n        r *= 255;\n        g *= 255;\n        b *= 255;\n        var rgb = {\n            r: r,\n            g: g,\n            b: b,\n            hex: R.rgb(r, g, b),\n            toString: rgbtoString\n        };\n        R.is(o, \"finite\") && (rgb.opacity = o);\n        return rgb;\n    };\n\n    /*\\\n     * Raphael.color\n     [ method ]\n     **\n     * Parses the color string and returns object with all values for the given color.\n     > Parameters\n     - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\n     = (object) Combined RGB & HSB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) `true` if string can’t be parsed,\n     o     h (number) hue,\n     o     s (number) saturation,\n     o     v (number) value (brightness),\n     o     l (number) lightness\n     o }\n    \\*/\n    R.color = function (clr) {\n        var rgb;\n        if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n            rgb = R.hsb2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else if (R.is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n            rgb = R.hsl2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else {\n            if (R.is(clr, \"string\")) {\n                clr = R.getRGB(clr);\n            }\n            if (R.is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr) {\n                rgb = R.rgb2hsl(clr);\n                clr.h = rgb.h;\n                clr.s = rgb.s;\n                clr.l = rgb.l;\n                rgb = R.rgb2hsb(clr);\n                clr.v = rgb.b;\n            } else {\n                clr = {hex: \"none\"};\n                clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n            }\n        }\n        clr.toString = rgbtoString;\n        return clr;\n    };\n    /*\\\n     * Raphael.hsb2rgb\n     [ method ]\n     **\n     * Converts HSB values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - v (number) value or brightness\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n    \\*/\n    R.hsb2rgb = function (h, s, v, o) {\n        if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n            v = h.b;\n            s = h.s;\n            o = h.o;\n            h = h.h;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = v * s;\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = v - C;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.hsl2rgb\n     [ method ]\n     **\n     * Converts HSL values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n    \\*/\n    R.hsl2rgb = function (h, s, l, o) {\n        if (this.is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n            l = h.l;\n            s = h.s;\n            h = h.h;\n        }\n        if (h > 1 || s > 1 || l > 1) {\n            h /= 360;\n            s /= 100;\n            l /= 100;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = 2 * s * (l < .5 ? l : 1 - l);\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = l - C / 2;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.rgb2hsb\n     [ method ]\n     **\n     * Converts RGB values to HSB object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSB object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     b (number) brightness\n     o }\n    \\*/\n    R.rgb2hsb = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, V, C;\n        V = mmax(r, g, b);\n        C = V - mmin(r, g, b);\n        H = (C == 0 ? null :\n             V == r ? (g - b) / C :\n             V == g ? (b - r) / C + 2 :\n                      (r - g) / C + 4\n            );\n        H = ((H + 360) % 6) * 60 / 360;\n        S = C == 0 ? 0 : C / V;\n        return {h: H, s: S, b: V, toString: hsbtoString};\n    };\n    /*\\\n     * Raphael.rgb2hsl\n     [ method ]\n     **\n     * Converts RGB values to HSL object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSL object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     l (number) luminosity\n     o }\n    \\*/\n    R.rgb2hsl = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, L, M, m, C;\n        M = mmax(r, g, b);\n        m = mmin(r, g, b);\n        C = M - m;\n        H = (C == 0 ? null :\n             M == r ? (g - b) / C :\n             M == g ? (b - r) / C + 2 :\n                      (r - g) / C + 4);\n        H = ((H + 360) % 6) * 60 / 360;\n        L = (M + m) / 2;\n        S = (C == 0 ? 0 :\n             L < .5 ? C / (2 * L) :\n                      C / (2 - 2 * L));\n        return {h: H, s: S, l: L, toString: hsltoString};\n    };\n    R._path2string = function () {\n        return this.join(\",\").replace(p2s, \"$1\");\n    };\n    function repush(array, item) {\n        for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n            return array.push(array.splice(i, 1)[0]);\n        }\n    }\n    function cacher(f, scope, postprocessor) {\n        function newf() {\n            var arg = Array.prototype.slice.call(arguments, 0),\n                args = arg.join(\"\\u2400\"),\n                cache = newf.cache = newf.cache || {},\n                count = newf.count = newf.count || [];\n            if (cache[has](args)) {\n                repush(count, args);\n                return postprocessor ? postprocessor(cache[args]) : cache[args];\n            }\n            count.length >= 1e3 && delete cache[count.shift()];\n            count.push(args);\n            cache[args] = f[apply](scope, arg);\n            return postprocessor ? postprocessor(cache[args]) : cache[args];\n        }\n        return newf;\n    }\n\n    var preload = R._preload = function (src, f) {\n        var img = g.doc.createElement(\"img\");\n        img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n        img.onload = function () {\n            f.call(this);\n            this.onload = null;\n            g.doc.body.removeChild(this);\n        };\n        img.onerror = function () {\n            g.doc.body.removeChild(this);\n        };\n        g.doc.body.appendChild(img);\n        img.src = src;\n    };\n\n    function clrToString() {\n        return this.hex;\n    }\n\n    /*\\\n     * Raphael.getRGB\n     [ method ]\n     **\n     * Parses colour string as RGB object\n     > Parameters\n     - colour (string) colour string in one of formats:\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsl(•••, •••, •••) — same as hsb</li>\n     #     <li>hsl(•••%, •••%, •••%) — same as hsb</li>\n     # </ul>\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) true if string can’t be parsed\n     o }\n    \\*/\n    R.getRGB = cacher(function (colour) {\n        if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n            return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n        }\n        if (colour == \"none\") {\n            return {r: -1, g: -1, b: -1, hex: \"none\", toString: clrToString};\n        }\n        !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n        var res,\n            red,\n            green,\n            blue,\n            opacity,\n            t,\n            values,\n            rgb = colour.match(colourRegExp);\n        if (rgb) {\n            if (rgb[2]) {\n                blue = toInt(rgb[2].substring(5), 16);\n                green = toInt(rgb[2].substring(3, 5), 16);\n                red = toInt(rgb[2].substring(1, 3), 16);\n            }\n            if (rgb[3]) {\n                blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n                green = toInt((t = rgb[3].charAt(2)) + t, 16);\n                red = toInt((t = rgb[3].charAt(1)) + t, 16);\n            }\n            if (rgb[4]) {\n                values = rgb[4][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n            }\n            if (rgb[5]) {\n                values = rgb[5][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n                return R.hsb2rgb(red, green, blue, opacity);\n            }\n            if (rgb[6]) {\n                values = rgb[6][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == \"%\" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == \"%\" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == \"%\" && (blue *= 2.55);\n                (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n                return R.hsl2rgb(red, green, blue, opacity);\n            }\n            rgb = {r: red, g: green, b: blue, toString: clrToString};\n            rgb.hex = \"#\" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\n            R.is(opacity, \"finite\") && (rgb.opacity = opacity);\n            return rgb;\n        }\n        return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: clrToString};\n    }, R);\n    /*\\\n     * Raphael.hsb\n     [ method ]\n     **\n     * Converts HSB values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - b (number) value or brightness\n     = (string) hex representation of the colour.\n    \\*/\n    R.hsb = cacher(function (h, s, b) {\n        return R.hsb2rgb(h, s, b).hex;\n    });\n    /*\\\n     * Raphael.hsl\n     [ method ]\n     **\n     * Converts HSL values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (string) hex representation of the colour.\n    \\*/\n    R.hsl = cacher(function (h, s, l) {\n        return R.hsl2rgb(h, s, l).hex;\n    });\n    /*\\\n     * Raphael.rgb\n     [ method ]\n     **\n     * Converts RGB values to hex representation of the colour.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (string) hex representation of the colour.\n    \\*/\n    R.rgb = cacher(function (r, g, b) {\n        function round(x) { return (x + 0.5) | 0; }\n        return \"#\" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1);\n    });\n    /*\\\n     * Raphael.getColor\n     [ method ]\n     **\n     * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\n     > Parameters\n     - value (number) #optional brightness, default is `0.75`\n     = (string) hex representation of the colour.\n    \\*/\n    R.getColor = function (value) {\n        var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\n            rgb = this.hsb2rgb(start.h, start.s, start.b);\n        start.h += .075;\n        if (start.h > 1) {\n            start.h = 0;\n            start.s -= .2;\n            start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\n        }\n        return rgb.hex;\n    };\n    /*\\\n     * Raphael.getColor.reset\n     [ method ]\n     **\n     * Resets spectrum position for @Raphael.getColor back to red.\n    \\*/\n    R.getColor.reset = function () {\n        delete this.start;\n    };\n\n    // http://schepers.cc/getting-to-the-point\n    function catmullRom2bezier(crp, z) {\n        var d = [];\n        for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n            var p = [\n                        {x: +crp[i - 2], y: +crp[i - 1]},\n                        {x: +crp[i],     y: +crp[i + 1]},\n                        {x: +crp[i + 2], y: +crp[i + 3]},\n                        {x: +crp[i + 4], y: +crp[i + 5]}\n                    ];\n            if (z) {\n                if (!i) {\n                    p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n                } else if (iLen - 4 == i) {\n                    p[3] = {x: +crp[0], y: +crp[1]};\n                } else if (iLen - 2 == i) {\n                    p[2] = {x: +crp[0], y: +crp[1]};\n                    p[3] = {x: +crp[2], y: +crp[3]};\n                }\n            } else {\n                if (iLen - 4 == i) {\n                    p[3] = p[2];\n                } else if (!i) {\n                    p[0] = {x: +crp[i], y: +crp[i + 1]};\n                }\n            }\n            d.push([\"C\",\n                  (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n                  (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n                  (p[1].x + 6 * p[2].x - p[3].x) / 6,\n                  (p[1].y + 6*p[2].y - p[3].y) / 6,\n                  p[2].x,\n                  p[2].y\n            ]);\n        }\n\n        return d;\n    }\n    /*\\\n     * Raphael.parsePathString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of arrays of path segments.\n     > Parameters\n     - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\n     = (array) array of segments.\n    \\*/\n    R.parsePathString = function (pathString) {\n        if (!pathString) {\n            return null;\n        }\n        var pth = paths(pathString);\n        if (pth.arr) {\n            return pathClone(pth.arr);\n        }\n\n        var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\n            data = [];\n        if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\n            data = pathClone(pathString);\n        }\n        if (!data.length) {\n            Str(pathString).replace(pathCommand, function (a, b, c) {\n                var params = [],\n                    name = b.toLowerCase();\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                if (name == \"m\" && params.length > 2) {\n                    data.push([b][concat](params.splice(0, 2)));\n                    name = \"l\";\n                    b = b == \"m\" ? \"l\" : \"L\";\n                }\n                if (name == \"r\") {\n                    data.push([b][concat](params));\n                } else while (params.length >= paramCounts[name]) {\n                    data.push([b][concat](params.splice(0, paramCounts[name])));\n                    if (!paramCounts[name]) {\n                        break;\n                    }\n                }\n            });\n        }\n        data.toString = R._path2string;\n        pth.arr = pathClone(data);\n        return data;\n    };\n    /*\\\n     * Raphael.parseTransformString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of transformations.\n     > Parameters\n     - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\n     = (array) array of transformations.\n    \\*/\n    R.parseTransformString = cacher(function (TString) {\n        if (!TString) {\n            return null;\n        }\n        var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n            data = [];\n        if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\n            data = pathClone(TString);\n        }\n        if (!data.length) {\n            Str(TString).replace(tCommand, function (a, b, c) {\n                var params = [],\n                    name = lowerCase.call(b);\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                data.push([b][concat](params));\n            });\n        }\n        data.toString = R._path2string;\n        return data;\n    }, this, function(elem) {\n        if (!elem) return elem;\n        var newData = [];\n        for (var i = 0; i < elem.length; i++) {\n            var newLevel = [];\n            for (var j = 0; j < elem[i].length; j++) {\n                newLevel.push(elem[i][j]);\n            }\n            newData.push(newLevel);\n        }\n      return newData; } );\n    // PATHS\n    var paths = function (ps) {\n        var p = paths.ps = paths.ps || {};\n        if (p[ps]) {\n            p[ps].sleep = 100;\n        } else {\n            p[ps] = {\n                sleep: 100\n            };\n        }\n        setTimeout(function () {\n            for (var key in p) if (p[has](key) && key != ps) {\n                p[key].sleep--;\n                !p[key].sleep && delete p[key];\n            }\n        });\n        return p[ps];\n    };\n    /*\\\n     * Raphael.findDotsAtSegment\n     [ method ]\n     **\n     * Utility method\n     **\n     * Find dot coordinates on the given cubic bezier curve at the given t.\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     - t (number) position on the curve (0..1)\n     = (object) point information in format:\n     o {\n     o     x: (number) x coordinate of the point\n     o     y: (number) y coordinate of the point\n     o     m: {\n     o         x: (number) x coordinate of the left anchor\n     o         y: (number) y coordinate of the left anchor\n     o     }\n     o     n: {\n     o         x: (number) x coordinate of the right anchor\n     o         y: (number) y coordinate of the right anchor\n     o     }\n     o     start: {\n     o         x: (number) x coordinate of the start of the curve\n     o         y: (number) y coordinate of the start of the curve\n     o     }\n     o     end: {\n     o         x: (number) x coordinate of the end of the curve\n     o         y: (number) y coordinate of the end of the curve\n     o     }\n     o     alpha: (number) angle of the curve derivative at the point\n     o }\n    \\*/\n    R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n        var t1 = 1 - t,\n            t13 = pow(t1, 3),\n            t12 = pow(t1, 2),\n            t2 = t * t,\n            t3 = t2 * t,\n            x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n            y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n            mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n            my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n            nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n            ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n            ax = t1 * p1x + t * c1x,\n            ay = t1 * p1y + t * c1y,\n            cx = t1 * c2x + t * p2x,\n            cy = t1 * c2y + t * p2y,\n            alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\n        (mx > nx || my < ny) && (alpha += 180);\n        return {\n            x: x,\n            y: y,\n            m: {x: mx, y: my},\n            n: {x: nx, y: ny},\n            start: {x: ax, y: ay},\n            end: {x: cx, y: cy},\n            alpha: alpha\n        };\n    };\n    /*\\\n     * Raphael.bezierBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given cubic bezier curve\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     * or\n     - bez (array) array of six points for bezier curve\n     = (object) point information in format:\n     o {\n     o     min: {\n     o         x: (number) x coordinate of the left point\n     o         y: (number) y coordinate of the top point\n     o     }\n     o     max: {\n     o         x: (number) x coordinate of the right point\n     o         y: (number) y coordinate of the bottom point\n     o     }\n     o }\n    \\*/\n    R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n        if (!R.is(p1x, \"array\")) {\n            p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n        }\n        var bbox = curveDim.apply(null, p1x);\n        return {\n            x: bbox.min.x,\n            y: bbox.min.y,\n            x2: bbox.max.x,\n            y2: bbox.max.y,\n            width: bbox.max.x - bbox.min.x,\n            height: bbox.max.y - bbox.min.y\n        };\n    };\n    /*\\\n     * Raphael.isPointInsideBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside bounding boxes.\n     > Parameters\n     - bbox (string) bounding box\n     - x (string) x coordinate of the point\n     - y (string) y coordinate of the point\n     = (boolean) `true` if point inside\n    \\*/\n    R.isPointInsideBBox = function (bbox, x, y) {\n        return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\n    };\n    /*\\\n     * Raphael.isBBoxIntersect\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if two bounding boxes intersect\n     > Parameters\n     - bbox1 (string) first bounding box\n     - bbox2 (string) second bounding box\n     = (boolean) `true` if they intersect\n    \\*/\n    R.isBBoxIntersect = function (bbox1, bbox2) {\n        var i = R.isPointInsideBBox;\n        return i(bbox2, bbox1.x, bbox1.y)\n            || i(bbox2, bbox1.x2, bbox1.y)\n            || i(bbox2, bbox1.x, bbox1.y2)\n            || i(bbox2, bbox1.x2, bbox1.y2)\n            || i(bbox1, bbox2.x, bbox2.y)\n            || i(bbox1, bbox2.x2, bbox2.y)\n            || i(bbox1, bbox2.x, bbox2.y2)\n            || i(bbox1, bbox2.x2, bbox2.y2)\n            || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n            && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n    };\n    function base3(t, p1, p2, p3, p4) {\n        var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n            t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n        return t * t2 - 3 * p1 + 3 * p2;\n    }\n    function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n        if (z == null) {\n            z = 1;\n        }\n        z = z > 1 ? 1 : z < 0 ? 0 : z;\n        var z2 = z / 2,\n            n = 12,\n            Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\n            Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n            sum = 0;\n        for (var i = 0; i < n; i++) {\n            var ct = z2 * Tvalues[i] + z2,\n                xbase = base3(ct, x1, x2, x3, x4),\n                ybase = base3(ct, y1, y2, y3, y4),\n                comb = xbase * xbase + ybase * ybase;\n            sum += Cvalues[i] * math.sqrt(comb);\n        }\n        return z2 * sum;\n    }\n    function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n        if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n            return;\n        }\n        var t = 1,\n            step = t / 2,\n            t2 = t - step,\n            l,\n            e = .01;\n        l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        while (abs(l - ll) > e) {\n            step /= 2;\n            t2 += (l < ll ? 1 : -1) * step;\n            l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        }\n        return t2;\n    }\n    function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n        if (\n            mmax(x1, x2) < mmin(x3, x4) ||\n            mmin(x1, x2) > mmax(x3, x4) ||\n            mmax(y1, y2) < mmin(y3, y4) ||\n            mmin(y1, y2) > mmax(y3, y4)\n        ) {\n            return;\n        }\n        var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n            ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n            denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n        if (!denominator) {\n            return;\n        }\n        var px = nx / denominator,\n            py = ny / denominator,\n            px2 = +px.toFixed(2),\n            py2 = +py.toFixed(2);\n        if (\n            px2 < +mmin(x1, x2).toFixed(2) ||\n            px2 > +mmax(x1, x2).toFixed(2) ||\n            px2 < +mmin(x3, x4).toFixed(2) ||\n            px2 > +mmax(x3, x4).toFixed(2) ||\n            py2 < +mmin(y1, y2).toFixed(2) ||\n            py2 > +mmax(y1, y2).toFixed(2) ||\n            py2 < +mmin(y3, y4).toFixed(2) ||\n            py2 > +mmax(y3, y4).toFixed(2)\n        ) {\n            return;\n        }\n        return {x: px, y: py};\n    }\n    function inter(bez1, bez2) {\n        return interHelper(bez1, bez2);\n    }\n    function interCount(bez1, bez2) {\n        return interHelper(bez1, bez2, 1);\n    }\n    function interHelper(bez1, bez2, justCount) {\n        var bbox1 = R.bezierBBox(bez1),\n            bbox2 = R.bezierBBox(bez2);\n        if (!R.isBBoxIntersect(bbox1, bbox2)) {\n            return justCount ? 0 : [];\n        }\n        var l1 = bezlen.apply(0, bez1),\n            l2 = bezlen.apply(0, bez2),\n            n1 = mmax(~~(l1 / 5), 1),\n            n2 = mmax(~~(l2 / 5), 1),\n            dots1 = [],\n            dots2 = [],\n            xy = {},\n            res = justCount ? 0 : [];\n        for (var i = 0; i < n1 + 1; i++) {\n            var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\n            dots1.push({x: p.x, y: p.y, t: i / n1});\n        }\n        for (i = 0; i < n2 + 1; i++) {\n            p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\n            dots2.push({x: p.x, y: p.y, t: i / n2});\n        }\n        for (i = 0; i < n1; i++) {\n            for (var j = 0; j < n2; j++) {\n                var di = dots1[i],\n                    di1 = dots1[i + 1],\n                    dj = dots2[j],\n                    dj1 = dots2[j + 1],\n                    ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n                    cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n                    is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n                if (is) {\n                    if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n                        continue;\n                    }\n                    xy[is.x.toFixed(4)] = is.y.toFixed(4);\n                    var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n                        t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n                    if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\n                        if (justCount) {\n                            res++;\n                        } else {\n                            res.push({\n                                x: is.x,\n                                y: is.y,\n                                t1: mmin(t1, 1),\n                                t2: mmin(t2, 1)\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.pathIntersection\n     [ method ]\n     **\n     * Utility method\n     **\n     * Finds intersections of two paths\n     > Parameters\n     - path1 (string) path string\n     - path2 (string) path string\n     = (array) dots of intersection\n     o [\n     o     {\n     o         x: (number) x coordinate of the point\n     o         y: (number) y coordinate of the point\n     o         t1: (number) t value for segment of path1\n     o         t2: (number) t value for segment of path2\n     o         segment1: (number) order number for segment of path1\n     o         segment2: (number) order number for segment of path2\n     o         bez1: (array) eight coordinates representing beziér curve for the segment of path1\n     o         bez2: (array) eight coordinates representing beziér curve for the segment of path2\n     o     }\n     o ]\n    \\*/\n    R.pathIntersection = function (path1, path2) {\n        return interPathHelper(path1, path2);\n    };\n    R.pathIntersectionNumber = function (path1, path2) {\n        return interPathHelper(path1, path2, 1);\n    };\n    function interPathHelper(path1, path2, justCount) {\n        path1 = R._path2curve(path1);\n        path2 = R._path2curve(path2);\n        var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n            res = justCount ? 0 : [];\n        for (var i = 0, ii = path1.length; i < ii; i++) {\n            var pi = path1[i];\n            if (pi[0] == \"M\") {\n                x1 = x1m = pi[1];\n                y1 = y1m = pi[2];\n            } else {\n                if (pi[0] == \"C\") {\n                    bez1 = [x1, y1].concat(pi.slice(1));\n                    x1 = bez1[6];\n                    y1 = bez1[7];\n                } else {\n                    bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n                    x1 = x1m;\n                    y1 = y1m;\n                }\n                for (var j = 0, jj = path2.length; j < jj; j++) {\n                    var pj = path2[j];\n                    if (pj[0] == \"M\") {\n                        x2 = x2m = pj[1];\n                        y2 = y2m = pj[2];\n                    } else {\n                        if (pj[0] == \"C\") {\n                            bez2 = [x2, y2].concat(pj.slice(1));\n                            x2 = bez2[6];\n                            y2 = bez2[7];\n                        } else {\n                            bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n                            x2 = x2m;\n                            y2 = y2m;\n                        }\n                        var intr = interHelper(bez1, bez2, justCount);\n                        if (justCount) {\n                            res += intr;\n                        } else {\n                            for (var k = 0, kk = intr.length; k < kk; k++) {\n                                intr[k].segment1 = i;\n                                intr[k].segment2 = j;\n                                intr[k].bez1 = bez1;\n                                intr[k].bez2 = bez2;\n                            }\n                            res = res.concat(intr);\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.isPointInsidePath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside a given closed path.\n     > Parameters\n     - path (string) path string\n     - x (number) x of the point\n     - y (number) y of the point\n     = (boolean) true, if point is inside the path\n    \\*/\n    R.isPointInsidePath = function (path, x, y) {\n        var bbox = R.pathBBox(path);\n        return R.isPointInsideBBox(bbox, x, y) &&\n               interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n    };\n    R._removedFactory = function (methodname) {\n        return function () {\n            eve(\"raphael.log\", null, \"Rapha\\xebl: you are calling to method \\u201c\" + methodname + \"\\u201d of removed object\", methodname);\n        };\n    };\n    /*\\\n     * Raphael.pathBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given path\n     > Parameters\n     - path (string) path string\n     = (object) bounding box\n     o {\n     o     x: (number) x coordinate of the left top point of the box\n     o     y: (number) y coordinate of the left top point of the box\n     o     x2: (number) x coordinate of the right bottom point of the box\n     o     y2: (number) y coordinate of the right bottom point of the box\n     o     width: (number) width of the box\n     o     height: (number) height of the box\n     o     cx: (number) x coordinate of the center of the box\n     o     cy: (number) y coordinate of the center of the box\n     o }\n    \\*/\n    var pathDimensions = R.pathBBox = function (path) {\n        var pth = paths(path);\n        if (pth.bbox) {\n            return clone(pth.bbox);\n        }\n        if (!path) {\n            return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\n        }\n        path = path2curve(path);\n        var x = 0,\n            y = 0,\n            X = [],\n            Y = [],\n            p;\n        for (var i = 0, ii = path.length; i < ii; i++) {\n            p = path[i];\n            if (p[0] == \"M\") {\n                x = p[1];\n                y = p[2];\n                X.push(x);\n                Y.push(y);\n            } else {\n                var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                X = X[concat](dim.min.x, dim.max.x);\n                Y = Y[concat](dim.min.y, dim.max.y);\n                x = p[5];\n                y = p[6];\n            }\n        }\n        var xmin = mmin[apply](0, X),\n            ymin = mmin[apply](0, Y),\n            xmax = mmax[apply](0, X),\n            ymax = mmax[apply](0, Y),\n            width = xmax - xmin,\n            height = ymax - ymin,\n                bb = {\n                x: xmin,\n                y: ymin,\n                x2: xmax,\n                y2: ymax,\n                width: width,\n                height: height,\n                cx: xmin + width / 2,\n                cy: ymin + height / 2\n            };\n        pth.bbox = clone(bb);\n        return bb;\n    },\n        pathClone = function (pathArray) {\n            var res = clone(pathArray);\n            res.toString = R._path2string;\n            return res;\n        },\n        pathToRelative = R._pathToRelative = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.rel) {\n                return pathClone(pth.rel);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == \"M\") {\n                x = pathArray[0][1];\n                y = pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res.push([\"M\", x, y]);\n            }\n            for (var i = start, ii = pathArray.length; i < ii; i++) {\n                var r = res[i] = [],\n                    pa = pathArray[i];\n                if (pa[0] != lowerCase.call(pa[0])) {\n                    r[0] = lowerCase.call(pa[0]);\n                    switch (r[0]) {\n                        case \"a\":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] - x).toFixed(3);\n                            r[7] = +(pa[7] - y).toFixed(3);\n                            break;\n                        case \"v\":\n                            r[1] = +(pa[1] - y).toFixed(3);\n                            break;\n                        case \"m\":\n                            mx = pa[1];\n                            my = pa[2];\n                        default:\n                            for (var j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\n                            }\n                    }\n                } else {\n                    r = res[i] = [];\n                    if (pa[0] == \"m\") {\n                        mx = pa[1] + x;\n                        my = pa[2] + y;\n                    }\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        res[i][k] = pa[k];\n                    }\n                }\n                var len = res[i].length;\n                switch (res[i][0]) {\n                    case \"z\":\n                        x = mx;\n                        y = my;\n                        break;\n                    case \"h\":\n                        x += +res[i][len - 1];\n                        break;\n                    case \"v\":\n                        y += +res[i][len - 1];\n                        break;\n                    default:\n                        x += +res[i][len - 2];\n                        y += +res[i][len - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.rel = pathClone(res);\n            return res;\n        },\n        pathToAbsolute = R._pathToAbsolute = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.abs) {\n                return pathClone(pth.abs);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            if (!pathArray || !pathArray.length) {\n                return [[\"M\", 0, 0]];\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == \"M\") {\n                x = +pathArray[0][1];\n                y = +pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res[0] = [\"M\", x, y];\n            }\n            var crz = pathArray.length == 3 && pathArray[0][0] == \"M\" && pathArray[1][0].toUpperCase() == \"R\" && pathArray[2][0].toUpperCase() == \"Z\";\n            for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n                res.push(r = []);\n                pa = pathArray[i];\n                if (pa[0] != upperCase.call(pa[0])) {\n                    r[0] = upperCase.call(pa[0]);\n                    switch (r[0]) {\n                        case \"A\":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] + x);\n                            r[7] = +(pa[7] + y);\n                            break;\n                        case \"V\":\n                            r[1] = +pa[1] + y;\n                            break;\n                        case \"H\":\n                            r[1] = +pa[1] + x;\n                            break;\n                        case \"R\":\n                            var dots = [x, y][concat](pa.slice(1));\n                            for (var j = 2, jj = dots.length; j < jj; j++) {\n                                dots[j] = +dots[j] + x;\n                                dots[++j] = +dots[j] + y;\n                            }\n                            res.pop();\n                            res = res[concat](catmullRom2bezier(dots, crz));\n                            break;\n                        case \"M\":\n                            mx = +pa[1] + x;\n                            my = +pa[2] + y;\n                        default:\n                            for (j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +pa[j] + ((j % 2) ? x : y);\n                            }\n                    }\n                } else if (pa[0] == \"R\") {\n                    dots = [x, y][concat](pa.slice(1));\n                    res.pop();\n                    res = res[concat](catmullRom2bezier(dots, crz));\n                    r = [\"R\"][concat](pa.slice(-2));\n                } else {\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        r[k] = pa[k];\n                    }\n                }\n                switch (r[0]) {\n                    case \"Z\":\n                        x = mx;\n                        y = my;\n                        break;\n                    case \"H\":\n                        x = r[1];\n                        break;\n                    case \"V\":\n                        y = r[1];\n                        break;\n                    case \"M\":\n                        mx = r[r.length - 2];\n                        my = r[r.length - 1];\n                    default:\n                        x = r[r.length - 2];\n                        y = r[r.length - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.abs = pathClone(res);\n            return res;\n        },\n        l2c = function (x1, y1, x2, y2) {\n            return [x1, y1, x2, y2, x2, y2];\n        },\n        q2c = function (x1, y1, ax, ay, x2, y2) {\n            var _13 = 1 / 3,\n                _23 = 2 / 3;\n            return [\n                    _13 * x1 + _23 * ax,\n                    _13 * y1 + _23 * ay,\n                    _13 * x2 + _23 * ax,\n                    _13 * y2 + _23 * ay,\n                    x2,\n                    y2\n                ];\n        },\n        a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n            // for more information of where this math came from visit:\n            // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n            var _120 = PI * 120 / 180,\n                rad = PI / 180 * (+angle || 0),\n                res = [],\n                xy,\n                rotate = cacher(function (x, y, rad) {\n                    var X = x * math.cos(rad) - y * math.sin(rad),\n                        Y = x * math.sin(rad) + y * math.cos(rad);\n                    return {x: X, y: Y};\n                });\n            if (!recursive) {\n                xy = rotate(x1, y1, -rad);\n                x1 = xy.x;\n                y1 = xy.y;\n                xy = rotate(x2, y2, -rad);\n                x2 = xy.x;\n                y2 = xy.y;\n                var cos = math.cos(PI / 180 * angle),\n                    sin = math.sin(PI / 180 * angle),\n                    x = (x1 - x2) / 2,\n                    y = (y1 - y2) / 2;\n                var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n                if (h > 1) {\n                    h = math.sqrt(h);\n                    rx = h * rx;\n                    ry = h * ry;\n                }\n                var rx2 = rx * rx,\n                    ry2 = ry * ry,\n                    k = (large_arc_flag == sweep_flag ? -1 : 1) *\n                        math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n                    cx = k * rx * y / ry + (x1 + x2) / 2,\n                    cy = k * -ry * x / rx + (y1 + y2) / 2,\n                    f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n                    f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n                f1 = x1 < cx ? PI - f1 : f1;\n                f2 = x2 < cx ? PI - f2 : f2;\n                f1 < 0 && (f1 = PI * 2 + f1);\n                f2 < 0 && (f2 = PI * 2 + f2);\n                if (sweep_flag && f1 > f2) {\n                    f1 = f1 - PI * 2;\n                }\n                if (!sweep_flag && f2 > f1) {\n                    f2 = f2 - PI * 2;\n                }\n            } else {\n                f1 = recursive[0];\n                f2 = recursive[1];\n                cx = recursive[2];\n                cy = recursive[3];\n            }\n            var df = f2 - f1;\n            if (abs(df) > _120) {\n                var f2old = f2,\n                    x2old = x2,\n                    y2old = y2;\n                f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n                x2 = cx + rx * math.cos(f2);\n                y2 = cy + ry * math.sin(f2);\n                res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n            }\n            df = f2 - f1;\n            var c1 = math.cos(f1),\n                s1 = math.sin(f1),\n                c2 = math.cos(f2),\n                s2 = math.sin(f2),\n                t = math.tan(df / 4),\n                hx = 4 / 3 * rx * t,\n                hy = 4 / 3 * ry * t,\n                m1 = [x1, y1],\n                m2 = [x1 + hx * s1, y1 - hy * c1],\n                m3 = [x2 + hx * s2, y2 - hy * c2],\n                m4 = [x2, y2];\n            m2[0] = 2 * m1[0] - m2[0];\n            m2[1] = 2 * m1[1] - m2[1];\n            if (recursive) {\n                return [m2, m3, m4][concat](res);\n            } else {\n                res = [m2, m3, m4][concat](res).join()[split](\",\");\n                var newres = [];\n                for (var i = 0, ii = res.length; i < ii; i++) {\n                    newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n                }\n                return newres;\n            }\n        },\n        findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n            var t1 = 1 - t;\n            return {\n                x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n                y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n            };\n        },\n        curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n            var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\n                b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\n                c = p1x - c1x,\n                t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                y = [p1y, p2y],\n                x = [p1x, p2x],\n                dot;\n            abs(t1) > \"1e12\" && (t1 = .5);\n            abs(t2) > \"1e12\" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\n            b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\n            c = p1y - c1y;\n            t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            abs(t1) > \"1e12\" && (t1 = .5);\n            abs(t2) > \"1e12\" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            return {\n                min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\n                max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\n            };\n        }),\n        path2curve = R._path2curve = cacher(function (path, path2) {\n            var pth = !path2 && paths(path);\n            if (!path2 && pth.curve) {\n                return pathClone(pth.curve);\n            }\n            var p = pathToAbsolute(path),\n                p2 = path2 && pathToAbsolute(path2),\n                attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                processPath = function (path, d, pcom) {\n                    var nx, ny, tq = {T:1, Q:1};\n                    if (!path) {\n                        return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n                    }\n                    !(path[0] in tq) && (d.qx = d.qy = null);\n                    switch (path[0]) {\n                        case \"M\":\n                            d.X = path[1];\n                            d.Y = path[2];\n                            break;\n                        case \"A\":\n                            path = [\"C\"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\n                            break;\n                        case \"S\":\n                            if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n                                nx = d.x * 2 - d.bx;          // And reflect the previous\n                                ny = d.y * 2 - d.by;          // command's control point relative to the current point.\n                            }\n                            else {                            // or some else or nothing\n                                nx = d.x;\n                                ny = d.y;\n                            }\n                            path = [\"C\", nx, ny][concat](path.slice(1));\n                            break;\n                        case \"T\":\n                            if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n                                d.qx = d.x * 2 - d.qx;        // And make a reflection similar\n                                d.qy = d.y * 2 - d.qy;        // to case \"S\".\n                            }\n                            else {                            // or something else or nothing\n                                d.qx = d.x;\n                                d.qy = d.y;\n                            }\n                            path = [\"C\"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n                            break;\n                        case \"Q\":\n                            d.qx = path[1];\n                            d.qy = path[2];\n                            path = [\"C\"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n                            break;\n                        case \"L\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, path[1], path[2]));\n                            break;\n                        case \"H\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, path[1], d.y));\n                            break;\n                        case \"V\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, d.x, path[1]));\n                            break;\n                        case \"Z\":\n                            path = [\"C\"][concat](l2c(d.x, d.y, d.X, d.Y));\n                            break;\n                    }\n                    return path;\n                },\n                fixArc = function (pp, i) {\n                    if (pp[i].length > 7) {\n                        pp[i].shift();\n                        var pi = pp[i];\n                        while (pi.length) {\n                            pcoms1[i]=\"A\"; // if created multiple C:s, their original seg is saved\n                            p2 && (pcoms2[i]=\"A\"); // the same as above\n                            pp.splice(i++, 0, [\"C\"][concat](pi.splice(0, 6)));\n                        }\n                        pp.splice(i, 1);\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                fixM = function (path1, path2, a1, a2, i) {\n                    if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n                        path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n                        a1.bx = 0;\n                        a1.by = 0;\n                        a1.x = path1[i][1];\n                        a1.y = path1[i][2];\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                pcoms1 = [], // path commands of original path p\n                pcoms2 = [], // path commands of original path p2\n                pfirst = \"\", // temporary holder for original path command\n                pcom = \"\"; // holder for previous path command of original path\n            for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n                p[i] && (pfirst = p[i][0]); // save current path command\n\n                if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n                {\n                    pcoms1[i] = pfirst; // Save current path command\n                    i && ( pcom = pcoms1[i-1]); // Get previous path command pcom\n                }\n                p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n                if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n                // which may produce multiple C:s\n                // so we have to make sure that C is also C in original path\n\n                fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n                if (p2) { // the same procedures is done to p2\n                    p2[i] && (pfirst = p2[i][0]);\n                    if (pfirst != \"C\")\n                    {\n                        pcoms2[i] = pfirst;\n                        i && (pcom = pcoms2[i-1]);\n                    }\n                    p2[i] = processPath(p2[i], attrs2, pcom);\n\n                    if (pcoms2[i]!=\"A\" && pfirst==\"C\") pcoms2[i]=\"C\";\n\n                    fixArc(p2, i);\n                }\n                fixM(p, p2, attrs, attrs2, i);\n                fixM(p2, p, attrs2, attrs, i);\n                var seg = p[i],\n                    seg2 = p2 && p2[i],\n                    seglen = seg.length,\n                    seg2len = p2 && seg2.length;\n                attrs.x = seg[seglen - 2];\n                attrs.y = seg[seglen - 1];\n                attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n                attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n                attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n                attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n                attrs2.x = p2 && seg2[seg2len - 2];\n                attrs2.y = p2 && seg2[seg2len - 1];\n            }\n            if (!p2) {\n                pth.curve = pathClone(p);\n            }\n            return p2 ? [p, p2] : p;\n        }, null, pathClone),\n        parseDots = R._parseDots = cacher(function (gradient) {\n            var dots = [];\n            for (var i = 0, ii = gradient.length; i < ii; i++) {\n                var dot = {},\n                    par = gradient[i].match(/^([^:]*):?([\\d\\.]*)/);\n                dot.color = R.getRGB(par[1]);\n                if (dot.color.error) {\n                    return null;\n                }\n                dot.opacity = dot.color.opacity;\n                dot.color = dot.color.hex;\n                par[2] && (dot.offset = par[2] + \"%\");\n                dots.push(dot);\n            }\n            for (i = 1, ii = dots.length - 1; i < ii; i++) {\n                if (!dots[i].offset) {\n                    var start = toFloat(dots[i - 1].offset || 0),\n                        end = 0;\n                    for (var j = i + 1; j < ii; j++) {\n                        if (dots[j].offset) {\n                            end = dots[j].offset;\n                            break;\n                        }\n                    }\n                    if (!end) {\n                        end = 100;\n                        j = ii;\n                    }\n                    end = toFloat(end);\n                    var d = (end - start) / (j - i + 1);\n                    for (; i < j; i++) {\n                        start += d;\n                        dots[i].offset = start + \"%\";\n                    }\n                }\n            }\n            return dots;\n        }),\n        tear = R._tear = function (el, paper) {\n            el == paper.top && (paper.top = el.prev);\n            el == paper.bottom && (paper.bottom = el.next);\n            el.next && (el.next.prev = el.prev);\n            el.prev && (el.prev.next = el.next);\n        },\n        tofront = R._tofront = function (el, paper) {\n            if (paper.top === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = null;\n            el.prev = paper.top;\n            paper.top.next = el;\n            paper.top = el;\n        },\n        toback = R._toback = function (el, paper) {\n            if (paper.bottom === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = paper.bottom;\n            el.prev = null;\n            paper.bottom.prev = el;\n            paper.bottom = el;\n        },\n        insertafter = R._insertafter = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.top && (paper.top = el);\n            el2.next && (el2.next.prev = el);\n            el.next = el2.next;\n            el.prev = el2;\n            el2.next = el;\n        },\n        insertbefore = R._insertbefore = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.bottom && (paper.bottom = el);\n            el2.prev && (el2.prev.next = el);\n            el.prev = el2.prev;\n            el2.prev = el;\n            el.next = el2;\n        },\n        /*\\\n         * Raphael.toMatrix\n         [ method ]\n         **\n         * Utility method\n         **\n         * Returns matrix of transformations applied to a given path\n         > Parameters\n         - path (string) path string\n         - transform (string|array) transformation string\n         = (object) @Matrix\n        \\*/\n        toMatrix = R.toMatrix = function (path, transform) {\n            var bb = pathDimensions(path),\n                el = {\n                    _: {\n                        transform: E\n                    },\n                    getBBox: function () {\n                        return bb;\n                    }\n                };\n            extractTransform(el, transform);\n            return el.matrix;\n        },\n        /*\\\n         * Raphael.transformPath\n         [ method ]\n         **\n         * Utility method\n         **\n         * Returns path transformed by a given transformation\n         > Parameters\n         - path (string) path string\n         - transform (string|array) transformation string\n         = (string) path\n        \\*/\n        transformPath = R.transformPath = function (path, transform) {\n            return mapPath(path, toMatrix(path, transform));\n        },\n        extractTransform = R._extractTransform = function (el, tstr) {\n            if (tstr == null) {\n                return el._.transform;\n            }\n            tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || E);\n            var tdata = R.parseTransformString(tstr),\n                deg = 0,\n                dx = 0,\n                dy = 0,\n                sx = 1,\n                sy = 1,\n                _ = el._,\n                m = new Matrix;\n            _.transform = tdata || [];\n            if (tdata) {\n                for (var i = 0, ii = tdata.length; i < ii; i++) {\n                    var t = tdata[i],\n                        tlen = t.length,\n                        command = Str(t[0]).toLowerCase(),\n                        absolute = t[0] != command,\n                        inver = absolute ? m.invert() : 0,\n                        x1,\n                        y1,\n                        x2,\n                        y2,\n                        bb;\n                    if (command == \"t\" && tlen == 3) {\n                        if (absolute) {\n                            x1 = inver.x(0, 0);\n                            y1 = inver.y(0, 0);\n                            x2 = inver.x(t[1], t[2]);\n                            y2 = inver.y(t[1], t[2]);\n                            m.translate(x2 - x1, y2 - y1);\n                        } else {\n                            m.translate(t[1], t[2]);\n                        }\n                    } else if (command == \"r\") {\n                        if (tlen == 2) {\n                            bb = bb || el.getBBox(1);\n                            m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            deg += t[1];\n                        } else if (tlen == 4) {\n                            if (absolute) {\n                                x2 = inver.x(t[2], t[3]);\n                                y2 = inver.y(t[2], t[3]);\n                                m.rotate(t[1], x2, y2);\n                            } else {\n                                m.rotate(t[1], t[2], t[3]);\n                            }\n                            deg += t[1];\n                        }\n                    } else if (command == \"s\") {\n                        if (tlen == 2 || tlen == 3) {\n                            bb = bb || el.getBBox(1);\n                            m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            sx *= t[1];\n                            sy *= t[tlen - 1];\n                        } else if (tlen == 5) {\n                            if (absolute) {\n                                x2 = inver.x(t[3], t[4]);\n                                y2 = inver.y(t[3], t[4]);\n                                m.scale(t[1], t[2], x2, y2);\n                            } else {\n                                m.scale(t[1], t[2], t[3], t[4]);\n                            }\n                            sx *= t[1];\n                            sy *= t[2];\n                        }\n                    } else if (command == \"m\" && tlen == 7) {\n                        m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n                    }\n                    _.dirtyT = 1;\n                    el.matrix = m;\n                }\n            }\n\n            /*\\\n             * Element.matrix\n             [ property (object) ]\n             **\n             * Keeps @Matrix object, which represents element transformation\n            \\*/\n            el.matrix = m;\n\n            _.sx = sx;\n            _.sy = sy;\n            _.deg = deg;\n            _.dx = dx = m.e;\n            _.dy = dy = m.f;\n\n            if (sx == 1 && sy == 1 && !deg && _.bbox) {\n                _.bbox.x += +dx;\n                _.bbox.y += +dy;\n            } else {\n                _.dirtyT = 1;\n            }\n        },\n        getEmpty = function (item) {\n            var l = item[0];\n            switch (l.toLowerCase()) {\n                case \"t\": return [l, 0, 0];\n                case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n                case \"r\": if (item.length == 4) {\n                    return [l, 0, item[2], item[3]];\n                } else {\n                    return [l, 0];\n                }\n                case \"s\": if (item.length == 5) {\n                    return [l, 1, 1, item[3], item[4]];\n                } else if (item.length == 3) {\n                    return [l, 1, 1];\n                } else {\n                    return [l, 1];\n                }\n            }\n        },\n        equaliseTransform = R._equaliseTransform = function (t1, t2) {\n            t2 = Str(t2).replace(/\\.{3}|\\u2026/g, t1);\n            t1 = R.parseTransformString(t1) || [];\n            t2 = R.parseTransformString(t2) || [];\n            var maxlength = mmax(t1.length, t2.length),\n                from = [],\n                to = [],\n                i = 0, j, jj,\n                tt1, tt2;\n            for (; i < maxlength; i++) {\n                tt1 = t1[i] || getEmpty(t2[i]);\n                tt2 = t2[i] || getEmpty(tt1);\n                if ((tt1[0] != tt2[0]) ||\n                    (tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\n                    (tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\n                    ) {\n                    return;\n                }\n                from[i] = [];\n                to[i] = [];\n                for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\n                    j in tt1 && (from[i][j] = tt1[j]);\n                    j in tt2 && (to[i][j] = tt2[j]);\n                }\n            }\n            return {\n                from: from,\n                to: to\n            };\n        };\n    R._getContainer = function (x, y, w, h) {\n        var container;\n        container = h == null && !R.is(x, \"object\") ? g.doc.getElementById(x) : x;\n        if (container == null) {\n            return;\n        }\n        if (container.tagName) {\n            if (y == null) {\n                return {\n                    container: container,\n                    width: container.style.pixelWidth || container.offsetWidth,\n                    height: container.style.pixelHeight || container.offsetHeight\n                };\n            } else {\n                return {\n                    container: container,\n                    width: y,\n                    height: w\n                };\n            }\n        }\n        return {\n            container: 1,\n            x: x,\n            y: y,\n            width: w,\n            height: h\n        };\n    };\n    /*\\\n     * Raphael.pathToRelative\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to relative form\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n    \\*/\n    R.pathToRelative = pathToRelative;\n    R._engine = {};\n    /*\\\n     * Raphael.path2curve\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to a new path where all segments are cubic bezier curves.\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n    \\*/\n    R.path2curve = path2curve;\n    /*\\\n     * Raphael.matrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix based on given parameters.\n     > Parameters\n     - a (number)\n     - b (number)\n     - c (number)\n     - d (number)\n     - e (number)\n     - f (number)\n     = (object) @Matrix\n    \\*/\n    R.matrix = function (a, b, c, d, e, f) {\n        return new Matrix(a, b, c, d, e, f);\n    };\n    function Matrix(a, b, c, d, e, f) {\n        if (a != null) {\n            this.a = +a;\n            this.b = +b;\n            this.c = +c;\n            this.d = +d;\n            this.e = +e;\n            this.f = +f;\n        } else {\n            this.a = 1;\n            this.b = 0;\n            this.c = 0;\n            this.d = 1;\n            this.e = 0;\n            this.f = 0;\n        }\n    }\n    (function (matrixproto) {\n        /*\\\n         * Matrix.add\n         [ method ]\n         **\n         * Adds given matrix to existing one.\n         > Parameters\n         - a (number)\n         - b (number)\n         - c (number)\n         - d (number)\n         - e (number)\n         - f (number)\n         or\n         - matrix (object) @Matrix\n        \\*/\n        matrixproto.add = function (a, b, c, d, e, f) {\n            var out = [[], [], []],\n                m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\n                matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\n                x, y, z, res;\n\n            if (a && a instanceof Matrix) {\n                matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\n            }\n\n            for (x = 0; x < 3; x++) {\n                for (y = 0; y < 3; y++) {\n                    res = 0;\n                    for (z = 0; z < 3; z++) {\n                        res += m[x][z] * matrix[z][y];\n                    }\n                    out[x][y] = res;\n                }\n            }\n            this.a = out[0][0];\n            this.b = out[1][0];\n            this.c = out[0][1];\n            this.d = out[1][1];\n            this.e = out[0][2];\n            this.f = out[1][2];\n        };\n        /*\\\n         * Matrix.invert\n         [ method ]\n         **\n         * Returns inverted version of the matrix\n         = (object) @Matrix\n        \\*/\n        matrixproto.invert = function () {\n            var me = this,\n                x = me.a * me.d - me.b * me.c;\n            return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n        };\n        /*\\\n         * Matrix.clone\n         [ method ]\n         **\n         * Returns copy of the matrix\n         = (object) @Matrix\n        \\*/\n        matrixproto.clone = function () {\n            return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n        };\n        /*\\\n         * Matrix.translate\n         [ method ]\n         **\n         * Translate the matrix\n         > Parameters\n         - x (number)\n         - y (number)\n        \\*/\n        matrixproto.translate = function (x, y) {\n            this.add(1, 0, 0, 1, x, y);\n        };\n        /*\\\n         * Matrix.scale\n         [ method ]\n         **\n         * Scales the matrix\n         > Parameters\n         - x (number)\n         - y (number) #optional\n         - cx (number) #optional\n         - cy (number) #optional\n        \\*/\n        matrixproto.scale = function (x, y, cx, cy) {\n            y == null && (y = x);\n            (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\n            this.add(x, 0, 0, y, 0, 0);\n            (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\n        };\n        /*\\\n         * Matrix.rotate\n         [ method ]\n         **\n         * Rotates the matrix\n         > Parameters\n         - a (number)\n         - x (number)\n         - y (number)\n        \\*/\n        matrixproto.rotate = function (a, x, y) {\n            a = R.rad(a);\n            x = x || 0;\n            y = y || 0;\n            var cos = +math.cos(a).toFixed(9),\n                sin = +math.sin(a).toFixed(9);\n            this.add(cos, sin, -sin, cos, x, y);\n            this.add(1, 0, 0, 1, -x, -y);\n        };\n        /*\\\n         * Matrix.x\n         [ method ]\n         **\n         * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) x\n        \\*/\n        matrixproto.x = function (x, y) {\n            return x * this.a + y * this.c + this.e;\n        };\n        /*\\\n         * Matrix.y\n         [ method ]\n         **\n         * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) y\n        \\*/\n        matrixproto.y = function (x, y) {\n            return x * this.b + y * this.d + this.f;\n        };\n        matrixproto.get = function (i) {\n            return +this[Str.fromCharCode(97 + i)].toFixed(4);\n        };\n        matrixproto.toString = function () {\n            return R.svg ?\n                \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\" :\n                [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\n        };\n        matrixproto.toFilter = function () {\n            return \"progid:DXImageTransform.Microsoft.Matrix(M11=\" + this.get(0) +\n                \", M12=\" + this.get(2) + \", M21=\" + this.get(1) + \", M22=\" + this.get(3) +\n                \", Dx=\" + this.get(4) + \", Dy=\" + this.get(5) + \", sizingmethod='auto expand')\";\n        };\n        matrixproto.offset = function () {\n            return [this.e.toFixed(4), this.f.toFixed(4)];\n        };\n        function norm(a) {\n            return a[0] * a[0] + a[1] * a[1];\n        }\n        function normalize(a) {\n            var mag = math.sqrt(norm(a));\n            a[0] && (a[0] /= mag);\n            a[1] && (a[1] /= mag);\n        }\n        /*\\\n         * Matrix.split\n         [ method ]\n         **\n         * Splits matrix into primitive transformations\n         = (object) in format:\n         o dx (number) translation by x\n         o dy (number) translation by y\n         o scalex (number) scale by x\n         o scaley (number) scale by y\n         o shear (number) shear\n         o rotate (number) rotation in deg\n         o isSimple (boolean) could it be represented via simple transformations\n        \\*/\n        matrixproto.split = function () {\n            var out = {};\n            // translation\n            out.dx = this.e;\n            out.dy = this.f;\n\n            // scale and shear\n            var row = [[this.a, this.c], [this.b, this.d]];\n            out.scalex = math.sqrt(norm(row[0]));\n            normalize(row[0]);\n\n            out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n            row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n            out.scaley = math.sqrt(norm(row[1]));\n            normalize(row[1]);\n            out.shear /= out.scaley;\n\n            // rotation\n            var sin = -row[0][1],\n                cos = row[1][1];\n            if (cos < 0) {\n                out.rotate = R.deg(math.acos(cos));\n                if (sin < 0) {\n                    out.rotate = 360 - out.rotate;\n                }\n            } else {\n                out.rotate = R.deg(math.asin(sin));\n            }\n\n            out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n            out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n            out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n            return out;\n        };\n        /*\\\n         * Matrix.toTransformString\n         [ method ]\n         **\n         * Return transform string that represents given matrix\n         = (string) transform string\n        \\*/\n        matrixproto.toTransformString = function (shorter) {\n            var s = shorter || this[split]();\n            if (s.isSimple) {\n                s.scalex = +s.scalex.toFixed(4);\n                s.scaley = +s.scaley.toFixed(4);\n                s.rotate = +s.rotate.toFixed(4);\n                return  (s.dx || s.dy ? \"t\" + [s.dx, s.dy] : E) +\n                        (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E) +\n                        (s.rotate ? \"r\" + [s.rotate, 0, 0] : E);\n            } else {\n                return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n            }\n        };\n    })(Matrix.prototype);\n\n    var preventDefault = function () {\n        this.returnValue = false;\n    },\n    preventTouch = function () {\n        return this.originalEvent.preventDefault();\n    },\n    stopPropagation = function () {\n        this.cancelBubble = true;\n    },\n    stopTouch = function () {\n        return this.originalEvent.stopPropagation();\n    },\n    getEventPosition = function (e) {\n        var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n            scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n\n        return {\n            x: e.clientX + scrollX,\n            y: e.clientY + scrollY\n        };\n    },\n    addEvent = (function () {\n        if (g.doc.addEventListener) {\n            return function (obj, type, fn, element) {\n                var f = function (e) {\n                    var pos = getEventPosition(e);\n                    return fn.call(element, e, pos.x, pos.y);\n                };\n                obj.addEventListener(type, f, false);\n\n                if (supportsTouch && touchMap[type]) {\n                    var _f = function (e) {\n                        var pos = getEventPosition(e),\n                            olde = e;\n\n                        for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n                            if (e.targetTouches[i].target == obj) {\n                                e = e.targetTouches[i];\n                                e.originalEvent = olde;\n                                e.preventDefault = preventTouch;\n                                e.stopPropagation = stopTouch;\n                                break;\n                            }\n                        }\n\n                        return fn.call(element, e, pos.x, pos.y);\n                    };\n                    obj.addEventListener(touchMap[type], _f, false);\n                }\n\n                return function () {\n                    obj.removeEventListener(type, f, false);\n\n                    if (supportsTouch && touchMap[type])\n                        obj.removeEventListener(touchMap[type], _f, false);\n\n                    return true;\n                };\n            };\n        } else if (g.doc.attachEvent) {\n            return function (obj, type, fn, element) {\n                var f = function (e) {\n                    e = e || g.win.event;\n                    var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                        scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n                        x = e.clientX + scrollX,\n                        y = e.clientY + scrollY;\n                    e.preventDefault = e.preventDefault || preventDefault;\n                    e.stopPropagation = e.stopPropagation || stopPropagation;\n                    return fn.call(element, e, x, y);\n                };\n                obj.attachEvent(\"on\" + type, f);\n                var detacher = function () {\n                    obj.detachEvent(\"on\" + type, f);\n                    return true;\n                };\n                return detacher;\n            };\n        }\n    })(),\n    drag = [],\n    dragMove = function (e) {\n        var x = e.clientX,\n            y = e.clientY,\n            scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n            scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n            dragi,\n            j = drag.length;\n        while (j--) {\n            dragi = drag[j];\n            if (supportsTouch && e.touches) {\n                var i = e.touches.length,\n                    touch;\n                while (i--) {\n                    touch = e.touches[i];\n                    if (touch.identifier == dragi.el._drag.id) {\n                        x = touch.clientX;\n                        y = touch.clientY;\n                        (e.originalEvent ? e.originalEvent : e).preventDefault();\n                        break;\n                    }\n                }\n            } else {\n                e.preventDefault();\n            }\n            var node = dragi.el.node,\n                o,\n                next = node.nextSibling,\n                parent = node.parentNode,\n                display = node.style.display;\n            g.win.opera && parent.removeChild(node);\n            node.style.display = \"none\";\n            o = dragi.el.paper.getElementByPoint(x, y);\n            node.style.display = display;\n            g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n            o && eve(\"raphael.drag.over.\" + dragi.el.id, dragi.el, o);\n            x += scrollX;\n            y += scrollY;\n            eve(\"raphael.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n        }\n    },\n    dragUp = function (e) {\n        R.unmousemove(dragMove).unmouseup(dragUp);\n        var i = drag.length,\n            dragi;\n        while (i--) {\n            dragi = drag[i];\n            dragi.el._drag = {};\n            eve(\"raphael.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n        }\n        drag = [];\n    },\n    /*\\\n     * Raphael.el\n     [ property (object) ]\n     **\n     * You can add your own method to elements. This is useful when you want to hack default functionality or\n     * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\n     * you can redefine element method at any time. Expending element methods wouldn’t affect set.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: \"#f00\"});\n     | };\n     | // then use it\n     | paper.circle(100, 100, 20).red();\n    \\*/\n    elproto = R.el = {};\n    /*\\\n     * Element.click\n     [ method ]\n     **\n     * Adds event handler for click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unclick\n     [ method ]\n     **\n     * Removes event handler for click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.dblclick\n     [ method ]\n     **\n     * Adds event handler for double click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.undblclick\n     [ method ]\n     **\n     * Removes event handler for double click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mousedown\n     [ method ]\n     **\n     * Adds event handler for mousedown for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmousedown\n     [ method ]\n     **\n     * Removes event handler for mousedown for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mousemove\n     [ method ]\n     **\n     * Adds event handler for mousemove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmousemove\n     [ method ]\n     **\n     * Removes event handler for mousemove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseout\n     [ method ]\n     **\n     * Adds event handler for mouseout for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseout\n     [ method ]\n     **\n     * Removes event handler for mouseout for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseover\n     [ method ]\n     **\n     * Adds event handler for mouseover for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseover\n     [ method ]\n     **\n     * Removes event handler for mouseover for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.mouseup\n     [ method ]\n     **\n     * Adds event handler for mouseup for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.unmouseup\n     [ method ]\n     **\n     * Removes event handler for mouseup for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchstart\n     [ method ]\n     **\n     * Adds event handler for touchstart for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchstart\n     [ method ]\n     **\n     * Removes event handler for touchstart for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchmove\n     [ method ]\n     **\n     * Adds event handler for touchmove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchmove\n     [ method ]\n     **\n     * Removes event handler for touchmove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchend\n     [ method ]\n     **\n     * Adds event handler for touchend for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchend\n     [ method ]\n     **\n     * Removes event handler for touchend for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n\n    /*\\\n     * Element.touchcancel\n     [ method ]\n     **\n     * Adds event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n    \\*/\n    /*\\\n     * Element.untouchcancel\n     [ method ]\n     **\n     * Removes event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n    \\*/\n    for (var i = events.length; i--;) {\n        (function (eventName) {\n            R[eventName] = elproto[eventName] = function (fn, scope) {\n                if (R.is(fn, \"function\")) {\n                    this.events = this.events || [];\n                    this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\n                }\n                return this;\n            };\n            R[\"un\" + eventName] = elproto[\"un\" + eventName] = function (fn) {\n                var events = this.events || [],\n                    l = events.length;\n                while (l--){\n                    if (events[l].name == eventName && (R.is(fn, \"undefined\") || events[l].f == fn)) {\n                        events[l].unbind();\n                        events.splice(l, 1);\n                        !events.length && delete this.events;\n                    }\n                }\n                return this;\n            };\n        })(events[i]);\n    }\n\n    /*\\\n     * Element.data\n     [ method ]\n     **\n     * Adds or retrieves given value associated with given key.\n     **\n     * See also @Element.removeData\n     > Parameters\n     - key (string) key to store data\n     - value (any) #optional value to store\n     = (object) @Element\n     * or, if value is not specified:\n     = (any) value\n     * or, if key and value are not specified:\n     = (object) Key/value pairs for all the data associated with the element.\n     > Usage\n     | for (var i = 0, i < 5, i++) {\n     |     paper.circle(10 + 15 * i, 10, 10)\n     |          .attr({fill: \"#000\"})\n     |          .data(\"i\", i)\n     |          .click(function () {\n     |             alert(this.data(\"i\"));\n     |          });\n     | }\n    \\*/\n    elproto.data = function (key, value) {\n        var data = eldata[this.id] = eldata[this.id] || {};\n        if (arguments.length == 0) {\n            return data;\n        }\n        if (arguments.length == 1) {\n            if (R.is(key, \"object\")) {\n                for (var i in key) if (key[has](i)) {\n                    this.data(i, key[i]);\n                }\n                return this;\n            }\n            eve(\"raphael.data.get.\" + this.id, this, data[key], key);\n            return data[key];\n        }\n        data[key] = value;\n        eve(\"raphael.data.set.\" + this.id, this, value, key);\n        return this;\n    };\n    /*\\\n     * Element.removeData\n     [ method ]\n     **\n     * Removes value associated with an element by given key.\n     * If key is not provided, removes all the data of the element.\n     > Parameters\n     - key (string) #optional key\n     = (object) @Element\n    \\*/\n    elproto.removeData = function (key) {\n        if (key == null) {\n            delete eldata[this.id];\n        } else {\n            eldata[this.id] && delete eldata[this.id][key];\n        }\n        return this;\n    };\n     /*\\\n     * Element.getData\n     [ method ]\n     **\n     * Retrieves the element data\n     = (object) data\n    \\*/\n    elproto.getData = function () {\n        return clone(eldata[this.id] || {});\n    };\n    /*\\\n     * Element.hover\n     [ method ]\n     **\n     * Adds event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     - icontext (object) #optional context for hover in handler\n     - ocontext (object) #optional context for hover out handler\n     = (object) @Element\n    \\*/\n    elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n        return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n    };\n    /*\\\n     * Element.unhover\n     [ method ]\n     **\n     * Removes event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     = (object) @Element\n    \\*/\n    elproto.unhover = function (f_in, f_out) {\n        return this.unmouseover(f_in).unmouseout(f_out);\n    };\n    var draggable = [];\n    /*\\\n     * Element.drag\n     [ method ]\n     **\n     * Adds event handlers for drag of the element.\n     > Parameters\n     - onmove (function) handler for moving\n     - onstart (function) handler for drag start\n     - onend (function) handler for drag end\n     - mcontext (object) #optional context for moving handler\n     - scontext (object) #optional context for drag start handler\n     - econtext (object) #optional context for drag end handler\n     * Additionally following `drag` events will be triggered: `drag.start.<id>` on start,\n     * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element\n     * `drag.over.<id>` will be fired as well.\n     *\n     * Start event and start handler will be called in specified context or in context of the element with following parameters:\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * Move event and move handler will be called in specified context or in context of the element with following parameters:\n     o dx (number) shift by x from the start point\n     o dy (number) shift by y from the start point\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * End event and end handler will be called in specified context or in context of the element with following parameters:\n     o event (object) DOM event object\n     = (object) @Element\n    \\*/\n    elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n        function start(e) {\n            (e.originalEvent || e).preventDefault();\n            var x = e.clientX,\n                y = e.clientY,\n                scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n            this._drag.id = e.identifier;\n            if (supportsTouch && e.touches) {\n                var i = e.touches.length, touch;\n                while (i--) {\n                    touch = e.touches[i];\n                    this._drag.id = touch.identifier;\n                    if (touch.identifier == this._drag.id) {\n                        x = touch.clientX;\n                        y = touch.clientY;\n                        break;\n                    }\n                }\n            }\n            this._drag.x = x + scrollX;\n            this._drag.y = y + scrollY;\n            !drag.length && R.mousemove(dragMove).mouseup(dragUp);\n            drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n            onstart && eve.on(\"raphael.drag.start.\" + this.id, onstart);\n            onmove && eve.on(\"raphael.drag.move.\" + this.id, onmove);\n            onend && eve.on(\"raphael.drag.end.\" + this.id, onend);\n            eve(\"raphael.drag.start.\" + this.id, start_scope || move_scope || this, this._drag.x, this._drag.y, e);\n        }\n        this._drag = {};\n        draggable.push({el: this, start: start});\n        this.mousedown(start);\n        return this;\n    };\n    /*\\\n     * Element.onDragOver\n     [ method ]\n     **\n     * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id).\n     > Parameters\n     - f (function) handler for event, first argument would be the element you are dragging over\n    \\*/\n    elproto.onDragOver = function (f) {\n        f ? eve.on(\"raphael.drag.over.\" + this.id, f) : eve.unbind(\"raphael.drag.over.\" + this.id);\n    };\n    /*\\\n     * Element.undrag\n     [ method ]\n     **\n     * Removes all drag event handlers from given element.\n    \\*/\n    elproto.undrag = function () {\n        var i = draggable.length;\n        while (i--) if (draggable[i].el == this) {\n            this.unmousedown(draggable[i].start);\n            draggable.splice(i, 1);\n            eve.unbind(\"raphael.drag.*.\" + this.id);\n        }\n        !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\n        drag = [];\n    };\n    /*\\\n     * Paper.circle\n     [ method ]\n     **\n     * Draws a circle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - r (number) radius\n     = (object) Raphaël element object with type “circle”\n     **\n     > Usage\n     | var c = paper.circle(50, 50, 40);\n    \\*/\n    paperproto.circle = function (x, y, r) {\n        var out = R._engine.circle(this, x || 0, y || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.rect\n     [ method ]\n     *\n     * Draws a rectangle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the top left corner\n     - y (number) y coordinate of the top left corner\n     - width (number) width\n     - height (number) height\n     - r (number) #optional radius for rounded corners, default is 0\n     = (object) Raphaël element object with type “rect”\n     **\n     > Usage\n     | // regular rectangle\n     | var c = paper.rect(10, 10, 50, 50);\n     | // rectangle with rounded corners\n     | var c = paper.rect(40, 40, 50, 50, 10);\n    \\*/\n    paperproto.rect = function (x, y, w, h, r) {\n        var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.ellipse\n     [ method ]\n     **\n     * Draws an ellipse.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - rx (number) horizontal radius\n     - ry (number) vertical radius\n     = (object) Raphaël element object with type “ellipse”\n     **\n     > Usage\n     | var c = paper.ellipse(50, 50, 40, 20);\n    \\*/\n    paperproto.ellipse = function (x, y, rx, ry) {\n        var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.path\n     [ method ]\n     **\n     * Creates a path element by given path data string.\n     > Parameters\n     - pathString (string) #optional path string in SVG format.\n     * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\n     | \"M10,20L30,40\"\n     * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\n     *\n     # <p>Here is short list of commands available, for more details see <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path's data attribute's format are described in the SVG specification.\">SVG path string format</a>.</p>\n     # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n     # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n     # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n     # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n     # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n     # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n     # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n     # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n     # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n     # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n     # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n     # <tr><td>R</td><td><a href=\"http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline\">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n     * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\n     * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\n     > Usage\n     | var c = paper.path(\"M10 10L90 90\");\n     | // draw a diagonal line:\n     | // move to 10,10, line to 90,90\n     * For example of path strings, check out these icons: http://raphaeljs.com/icons/\n    \\*/\n    paperproto.path = function (pathString) {\n        pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\n        var out = R._engine.path(R.format[apply](R, arguments), this);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.image\n     [ method ]\n     **\n     * Embeds an image into the surface.\n     **\n     > Parameters\n     **\n     - src (string) URI of the source image\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - width (number) width of the image\n     - height (number) height of the image\n     = (object) Raphaël element object with type “image”\n     **\n     > Usage\n     | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n    \\*/\n    paperproto.image = function (src, x, y, w, h) {\n        var out = R._engine.image(this, src || \"about:blank\", x || 0, y || 0, w || 0, h || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.text\n     [ method ]\n     **\n     * Draws a text string. If you need line breaks, put “\\n” in the string.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - text (string) The text string to draw\n     = (object) Raphaël element object with type “text”\n     **\n     > Usage\n     | var t = paper.text(50, 50, \"Raphaël\\nkicks\\nbutt!\");\n    \\*/\n    paperproto.text = function (x, y, text) {\n        var out = R._engine.text(this, x || 0, y || 0, Str(text));\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.set\n     [ method ]\n     **\n     * Creates array-like object to keep and operate several elements at once.\n     * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\n     * Sets act as pseudo elements — all methods available to an element can be used on a set.\n     = (object) array-like object that represents set of elements\n     **\n     > Usage\n     | var st = paper.set();\n     | st.push(\n     |     paper.circle(10, 10, 5),\n     |     paper.circle(30, 10, 5)\n     | );\n     | st.attr({fill: \"red\"}); // changes the fill of both circles\n    \\*/\n    paperproto.set = function (itemsArray) {\n        !R.is(itemsArray, \"array\") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\n        var out = new Set(itemsArray);\n        this.__set__ && this.__set__.push(out);\n        out[\"paper\"] = this;\n        out[\"type\"] = \"set\";\n        return out;\n    };\n    /*\\\n     * Paper.setStart\n     [ method ]\n     **\n     * Creates @Paper.set. All elements that will be created after calling this method and before calling\n     * @Paper.setFinish will be added to the set.\n     **\n     > Usage\n     | paper.setStart();\n     | paper.circle(10, 10, 5),\n     | paper.circle(30, 10, 5)\n     | var st = paper.setFinish();\n     | st.attr({fill: \"red\"}); // changes the fill of both circles\n    \\*/\n    paperproto.setStart = function (set) {\n        this.__set__ = set || this.set();\n    };\n    /*\\\n     * Paper.setFinish\n     [ method ]\n     **\n     * See @Paper.setStart. This method finishes catching and returns resulting set.\n     **\n     = (object) set\n    \\*/\n    paperproto.setFinish = function (set) {\n        var out = this.__set__;\n        delete this.__set__;\n        return out;\n    };\n    /*\\\n     * Paper.getSize\n     [ method ]\n     **\n     * Obtains current paper actual size.\n     **\n     = (object)\n     \\*/\n    paperproto.getSize = function () {\n        var container = this.canvas.parentNode;\n        return {\n            width: container.offsetWidth,\n            height: container.offsetHeight\n                };\n        };\n    /*\\\n     * Paper.setSize\n     [ method ]\n     **\n     * If you need to change dimensions of the canvas call this method\n     **\n     > Parameters\n     **\n     - width (number) new width of the canvas\n     - height (number) new height of the canvas\n    \\*/\n    paperproto.setSize = function (width, height) {\n        return R._engine.setSize.call(this, width, height);\n    };\n    /*\\\n     * Paper.setViewBox\n     [ method ]\n     **\n     * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\n     * specifying new boundaries.\n     **\n     > Parameters\n     **\n     - x (number) new x position, default is `0`\n     - y (number) new y position, default is `0`\n     - w (number) new width of the canvas\n     - h (number) new height of the canvas\n     - fit (boolean) `true` if you want graphics to fit into new boundary box\n    \\*/\n    paperproto.setViewBox = function (x, y, w, h, fit) {\n        return R._engine.setViewBox.call(this, x, y, w, h, fit);\n    };\n    /*\\\n     * Paper.top\n     [ property ]\n     **\n     * Points to the topmost element on the paper\n    \\*/\n    /*\\\n     * Paper.bottom\n     [ property ]\n     **\n     * Points to the bottom element on the paper\n    \\*/\n    paperproto.top = paperproto.bottom = null;\n    /*\\\n     * Paper.raphael\n     [ property ]\n     **\n     * Points to the @Raphael object/function\n    \\*/\n    paperproto.raphael = R;\n    var getOffset = function (elem) {\n        var box = elem.getBoundingClientRect(),\n            doc = elem.ownerDocument,\n            body = doc.body,\n            docElem = doc.documentElement,\n            clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n            top  = box.top  + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n            left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n        return {\n            y: top,\n            x: left\n        };\n    };\n    /*\\\n     * Paper.getElementByPoint\n     [ method ]\n     **\n     * Returns you topmost element under given point.\n     **\n     = (object) Raphaël element object\n     > Parameters\n     **\n     - x (number) x coordinate from the top left corner of the window\n     - y (number) y coordinate from the top left corner of the window\n     > Usage\n     | paper.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n    \\*/\n    paperproto.getElementByPoint = function (x, y) {\n        var paper = this,\n            svg = paper.canvas,\n            target = g.doc.elementFromPoint(x, y);\n        if (g.win.opera && target.tagName == \"svg\") {\n            var so = getOffset(svg),\n                sr = svg.createSVGRect();\n            sr.x = x - so.x;\n            sr.y = y - so.y;\n            sr.width = sr.height = 1;\n            var hits = svg.getIntersectionList(sr, null);\n            if (hits.length) {\n                target = hits[hits.length - 1];\n            }\n        }\n        if (!target) {\n            return null;\n        }\n        while (target.parentNode && target != svg.parentNode && !target.raphael) {\n            target = target.parentNode;\n        }\n        target == paper.canvas.parentNode && (target = svg);\n        target = target && target.raphael ? paper.getById(target.raphaelid) : null;\n        return target;\n    };\n\n    /*\\\n     * Paper.getElementsByBBox\n     [ method ]\n     **\n     * Returns set of elements that have an intersecting bounding box\n     **\n     > Parameters\n     **\n     - bbox (object) bbox to check with\n     = (object) @Set\n     \\*/\n    paperproto.getElementsByBBox = function (bbox) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (R.isBBoxIntersect(el.getBBox(), bbox)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n\n    /*\\\n     * Paper.getById\n     [ method ]\n     **\n     * Returns you element by its internal ID.\n     **\n     > Parameters\n     **\n     - id (number) id\n     = (object) Raphaël element object\n    \\*/\n    paperproto.getById = function (id) {\n        var bot = this.bottom;\n        while (bot) {\n            if (bot.id == id) {\n                return bot;\n            }\n            bot = bot.next;\n        }\n        return null;\n    };\n    /*\\\n     * Paper.forEach\n     [ method ]\n     **\n     * Executes given function for each element on the paper\n     *\n     * If callback function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Paper object\n     > Usage\n     | paper.forEach(function (el) {\n     |     el.attr({ stroke: \"blue\" });\n     | });\n    \\*/\n    paperproto.forEach = function (callback, thisArg) {\n        var bot = this.bottom;\n        while (bot) {\n            if (callback.call(thisArg, bot) === false) {\n                return this;\n            }\n            bot = bot.next;\n        }\n        return this;\n    };\n    /*\\\n     * Paper.getElementsByPoint\n     [ method ]\n     **\n     * Returns set of elements that have common point inside\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (object) @Set\n    \\*/\n    paperproto.getElementsByPoint = function (x, y) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n    function x_y() {\n        return this.x + S + this.y;\n    }\n    function x_y_w_h() {\n        return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n    }\n    /*\\\n     * Element.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this element’s shape\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point inside the shape\n    \\*/\n    elproto.isPointInside = function (x, y) {\n        var rp = this.realPath = getPath[this.type](this);\n        if (this.attr('transform') && this.attr('transform').length) {\n            rp = R.transformPath(rp, this.attr('transform'));\n        }\n        return R.isPointInsidePath(rp, x, y);\n    };\n    /*\\\n     * Element.getBBox\n     [ method ]\n     **\n     * Return bounding box for a given element\n     **\n     > Parameters\n     **\n     - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\n     = (object) Bounding box object:\n     o {\n     o     x: (number) top left corner x\n     o     y: (number) top left corner y\n     o     x2: (number) bottom right corner x\n     o     y2: (number) bottom right corner y\n     o     width: (number) width\n     o     height: (number) height\n     o }\n    \\*/\n    elproto.getBBox = function (isWithoutTransform) {\n        if (this.removed) {\n            return {};\n        }\n        var _ = this._;\n        if (isWithoutTransform) {\n            if (_.dirty || !_.bboxwt) {\n                this.realPath = getPath[this.type](this);\n                _.bboxwt = pathDimensions(this.realPath);\n                _.bboxwt.toString = x_y_w_h;\n                _.dirty = 0;\n            }\n            return _.bboxwt;\n        }\n        if (_.dirty || _.dirtyT || !_.bbox) {\n            if (_.dirty || !this.realPath) {\n                _.bboxwt = 0;\n                this.realPath = getPath[this.type](this);\n            }\n            _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\n            _.bbox.toString = x_y_w_h;\n            _.dirty = _.dirtyT = 0;\n        }\n        return _.bbox;\n    };\n    /*\\\n     * Element.clone\n     [ method ]\n     **\n     = (object) clone of a given element\n     **\n    \\*/\n    elproto.clone = function () {\n        if (this.removed) {\n            return null;\n        }\n        var out = this.paper[this.type]().attr(this.attr());\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Element.glow\n     [ method ]\n     **\n     * Return set of elements that create glow-like effect around given element. See @Paper.set.\n     *\n     * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\n     **\n     > Parameters\n     **\n     - glow (object) #optional parameters object with all properties optional:\n     o {\n     o     width (number) size of the glow, default is `10`\n     o     fill (boolean) will it be filled, default is `false`\n     o     opacity (number) opacity, default is `0.5`\n     o     offsetx (number) horizontal offset, default is `0`\n     o     offsety (number) vertical offset, default is `0`\n     o     color (string) glow colour, default is `black`\n     o }\n     = (object) @Paper.set of elements that represents glow\n    \\*/\n    elproto.glow = function (glow) {\n        if (this.type == \"text\") {\n            return null;\n        }\n        glow = glow || {};\n        var s = {\n            width: (glow.width || 10) + (+this.attr(\"stroke-width\") || 1),\n            fill: glow.fill || false,\n            opacity: glow.opacity == null ? .5 : glow.opacity,\n            offsetx: glow.offsetx || 0,\n            offsety: glow.offsety || 0,\n            color: glow.color || \"#000\"\n        },\n            c = s.width / 2,\n            r = this.paper,\n            out = r.set(),\n            path = this.realPath || getPath[this.type](this);\n        path = this.matrix ? mapPath(path, this.matrix) : path;\n        for (var i = 1; i < c + 1; i++) {\n            out.push(r.path(path).attr({\n                stroke: s.color,\n                fill: s.fill ? s.color : \"none\",\n                \"stroke-linejoin\": \"round\",\n                \"stroke-linecap\": \"round\",\n                \"stroke-width\": +(s.width / c * i).toFixed(3),\n                opacity: +(s.opacity / c).toFixed(3)\n            }));\n        }\n        return out.insertBefore(this).translate(s.offsetx, s.offsety);\n    };\n    var curveslengths = {},\n    getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n        if (length == null) {\n            return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n        } else {\n            return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n        }\n    },\n    getLengthFactory = function (istotal, subpath) {\n        return function (path, length, onlystart) {\n            path = path2curve(path);\n            var x, y, p, l, sp = \"\", subpaths = {}, point,\n                len = 0;\n            for (var i = 0, ii = path.length; i < ii; i++) {\n                p = path[i];\n                if (p[0] == \"M\") {\n                    x = +p[1];\n                    y = +p[2];\n                } else {\n                    l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                    if (len + l > length) {\n                        if (subpath && !subpaths.start) {\n                            point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                            sp += [\"C\" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\n                            if (onlystart) {return sp;}\n                            subpaths.start = sp;\n                            sp = [\"M\" + point.x, point.y + \"C\" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\n                            len += l;\n                            x = +p[5];\n                            y = +p[6];\n                            continue;\n                        }\n                        if (!istotal && !subpath) {\n                            point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                            return {x: point.x, y: point.y, alpha: point.alpha};\n                        }\n                    }\n                    len += l;\n                    x = +p[5];\n                    y = +p[6];\n                }\n                sp += p.shift() + p;\n            }\n            subpaths.end = sp;\n            point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n            point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\n            return point;\n        };\n    };\n    var getTotalLength = getLengthFactory(1),\n        getPointAtLength = getLengthFactory(),\n        getSubpathsAtLength = getLengthFactory(0, 1);\n    /*\\\n     * Raphael.getTotalLength\n     [ method ]\n     **\n     * Returns length of the given path in pixels.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string.\n     **\n     = (number) length.\n    \\*/\n    R.getTotalLength = getTotalLength;\n    /*\\\n     * Raphael.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n    \\*/\n    R.getPointAtLength = getPointAtLength;\n    /*\\\n     * Raphael.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given path from given length to given length.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n    \\*/\n    R.getSubpath = function (path, from, to) {\n        if (this.getTotalLength(path) - to < 1e-6) {\n            return getSubpathsAtLength(path, from).end;\n        }\n        var a = getSubpathsAtLength(path, to, 1);\n        return from ? getSubpathsAtLength(a, from).end : a;\n    };\n    /*\\\n     * Element.getTotalLength\n     [ method ]\n     **\n     * Returns length of the path in pixels. Only works for element of “path” type.\n     = (number) length.\n    \\*/\n    elproto.getTotalLength = function () {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        if (this.node.getTotalLength) {\n            return this.node.getTotalLength();\n        }\n\n        return getTotalLength(path);\n    };\n    /*\\\n     * Element.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n    \\*/\n    elproto.getPointAtLength = function (length) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return getPointAtLength(path, length);\n    };\n    /*\\\n     * Element.getPath\n     [ method ]\n     **\n     * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\n     = (object) path\n     **\n    \\*/\n    elproto.getPath = function () {\n        var path,\n            getPath = R._getPath[this.type];\n\n        if (this.type == \"text\" || this.type == \"set\") {\n            return;\n        }\n\n        if (getPath) {\n            path = getPath(this);\n        }\n\n        return path;\n    };\n    /*\\\n     * Element.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given element from given length to given length. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n    \\*/\n    elproto.getSubpath = function (from, to) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return R.getSubpath(path, from, to);\n    };\n    /*\\\n     * Raphael.easing_formulas\n     [ property ]\n     **\n     * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\n     # <ul>\n     #     <li>“linear”</li>\n     #     <li>“&lt;” or “easeIn” or “ease-in”</li>\n     #     <li>“>” or “easeOut” or “ease-out”</li>\n     #     <li>“&lt;>” or “easeInOut” or “ease-in-out”</li>\n     #     <li>“backIn” or “back-in”</li>\n     #     <li>“backOut” or “back-out”</li>\n     #     <li>“elastic”</li>\n     #     <li>“bounce”</li>\n     # </ul>\n     # <p>See also <a href=\"http://raphaeljs.com/easing.html\">Easing demo</a>.</p>\n    \\*/\n    var ef = R.easing_formulas = {\n        linear: function (n) {\n            return n;\n        },\n        \"<\": function (n) {\n            return pow(n, 1.7);\n        },\n        \">\": function (n) {\n            return pow(n, .48);\n        },\n        \"<>\": function (n) {\n            var q = .48 - n / 1.04,\n                Q = math.sqrt(.1734 + q * q),\n                x = Q - q,\n                X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n                y = -Q - q,\n                Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n                t = X + Y + .5;\n            return (1 - t) * 3 * t * t + t * t * t;\n        },\n        backIn: function (n) {\n            var s = 1.70158;\n            return n * n * ((s + 1) * n - s);\n        },\n        backOut: function (n) {\n            n = n - 1;\n            var s = 1.70158;\n            return n * n * ((s + 1) * n + s) + 1;\n        },\n        elastic: function (n) {\n            if (n == !!n) {\n                return n;\n            }\n            return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\n        },\n        bounce: function (n) {\n            var s = 7.5625,\n                p = 2.75,\n                l;\n            if (n < (1 / p)) {\n                l = s * n * n;\n            } else {\n                if (n < (2 / p)) {\n                    n -= (1.5 / p);\n                    l = s * n * n + .75;\n                } else {\n                    if (n < (2.5 / p)) {\n                        n -= (2.25 / p);\n                        l = s * n * n + .9375;\n                    } else {\n                        n -= (2.625 / p);\n                        l = s * n * n + .984375;\n                    }\n                }\n            }\n            return l;\n        }\n    };\n    ef.easeIn = ef[\"ease-in\"] = ef[\"<\"];\n    ef.easeOut = ef[\"ease-out\"] = ef[\">\"];\n    ef.easeInOut = ef[\"ease-in-out\"] = ef[\"<>\"];\n    ef[\"back-in\"] = ef.backIn;\n    ef[\"back-out\"] = ef.backOut;\n\n    var animationElements = [],\n        requestAnimFrame = window.requestAnimationFrame       ||\n                           window.webkitRequestAnimationFrame ||\n                           window.mozRequestAnimationFrame    ||\n                           window.oRequestAnimationFrame      ||\n                           window.msRequestAnimationFrame     ||\n                           function (callback) {\n                               setTimeout(callback, 16);\n                           },\n        animation = function () {\n            var Now = +new Date,\n                l = 0;\n            for (; l < animationElements.length; l++) {\n                var e = animationElements[l];\n                if (e.el.removed || e.paused) {\n                    continue;\n                }\n                var time = Now - e.start,\n                    ms = e.ms,\n                    easing = e.easing,\n                    from = e.from,\n                    diff = e.diff,\n                    to = e.to,\n                    t = e.t,\n                    that = e.el,\n                    set = {},\n                    now,\n                    init = {},\n                    key;\n                if (e.initstatus) {\n                    time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\n                    e.status = e.initstatus;\n                    delete e.initstatus;\n                    e.stop && animationElements.splice(l--, 1);\n                } else {\n                    e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\n                }\n                if (time < 0) {\n                    continue;\n                }\n                if (time < ms) {\n                    var pos = easing(time / ms);\n                    for (var attr in from) if (from[has](attr)) {\n                        switch (availableAnimAttrs[attr]) {\n                            case nu:\n                                now = +from[attr] + pos * ms * diff[attr];\n                                break;\n                            case \"colour\":\n                                now = \"rgb(\" + [\n                                    upto255(round(from[attr].r + pos * ms * diff[attr].r)),\n                                    upto255(round(from[attr].g + pos * ms * diff[attr].g)),\n                                    upto255(round(from[attr].b + pos * ms * diff[attr].b))\n                                ].join(\",\") + \")\";\n                                break;\n                            case \"path\":\n                                now = [];\n                                for (var i = 0, ii = from[attr].length; i < ii; i++) {\n                                    now[i] = [from[attr][i][0]];\n                                    for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                    }\n                                    now[i] = now[i].join(S);\n                                }\n                                now = now.join(S);\n                                break;\n                            case \"transform\":\n                                if (diff[attr].real) {\n                                    now = [];\n                                    for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                        now[i] = [from[attr][i][0]];\n                                        for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                            now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                        }\n                                    }\n                                } else {\n                                    var get = function (i) {\n                                        return +from[attr][i] + pos * ms * diff[attr][i];\n                                    };\n                                    // now = [[\"r\", get(2), 0, 0], [\"t\", get(3), get(4)], [\"s\", get(0), get(1), 0, 0]];\n                                    now = [[\"m\", get(0), get(1), get(2), get(3), get(4), get(5)]];\n                                }\n                                break;\n                            case \"csv\":\n                                if (attr == \"clip-rect\") {\n                                    now = [];\n                                    i = 4;\n                                    while (i--) {\n                                        now[i] = +from[attr][i] + pos * ms * diff[attr][i];\n                                    }\n                                }\n                                break;\n                            default:\n                                var from2 = [][concat](from[attr]);\n                                now = [];\n                                i = that.paper.customAttributes[attr].length;\n                                while (i--) {\n                                    now[i] = +from2[i] + pos * ms * diff[attr][i];\n                                }\n                                break;\n                        }\n                        set[attr] = now;\n                    }\n                    that.attr(set);\n                    (function (id, that, anim) {\n                        setTimeout(function () {\n                            eve(\"raphael.anim.frame.\" + id, that, anim);\n                        });\n                    })(that.id, that, e.anim);\n                } else {\n                    (function(f, el, a) {\n                        setTimeout(function() {\n                            eve(\"raphael.anim.frame.\" + el.id, el, a);\n                            eve(\"raphael.anim.finish.\" + el.id, el, a);\n                            R.is(f, \"function\") && f.call(el);\n                        });\n                    })(e.callback, that, e.anim);\n                    that.attr(to);\n                    animationElements.splice(l--, 1);\n                    if (e.repeat > 1 && !e.next) {\n                        for (key in to) if (to[has](key)) {\n                            init[key] = e.totalOrigin[key];\n                        }\n                        e.el.attr(init);\n                        runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\n                    }\n                    if (e.next && !e.stop) {\n                        runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\n                    }\n                }\n            }\n            animationElements.length && requestAnimFrame(animation);\n        },\n        upto255 = function (color) {\n            return color > 255 ? 255 : color < 0 ? 0 : color;\n        };\n    /*\\\n     * Element.animateWith\n     [ method ]\n     **\n     * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\n     **\n     > Parameters\n     **\n     - el (object) element to sync with\n     - anim (object) animation to sync with\n     - params (object) #optional final attributes for the element, see also @Element.attr\n     - ms (number) #optional number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - element (object) element to sync with\n     - anim (object) animation to sync with\n     - animation (object) #optional animation object, see @Raphael.animation\n     **\n     = (object) original element\n    \\*/\n    elproto.animateWith = function (el, anim, params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\n            x, y;\n        runAnimation(a, element, a.percents[0], null, element.attr());\n        for (var i = 0, ii = animationElements.length; i < ii; i++) {\n            if (animationElements[i].anim == anim && animationElements[i].el == el) {\n                animationElements[ii - 1].start = animationElements[i].start;\n                break;\n            }\n        }\n        return element;\n        //\n        //\n        // var a = params ? R.animation(params, ms, easing, callback) : anim,\n        //     status = element.status(anim);\n        // return this.animate(a).status(a, status * anim.ms / a.ms);\n    };\n    function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n        var cx = 3 * p1x,\n            bx = 3 * (p2x - p1x) - cx,\n            ax = 1 - cx - bx,\n            cy = 3 * p1y,\n            by = 3 * (p2y - p1y) - cy,\n            ay = 1 - cy - by;\n        function sampleCurveX(t) {\n            return ((ax * t + bx) * t + cx) * t;\n        }\n        function solve(x, epsilon) {\n            var t = solveCurveX(x, epsilon);\n            return ((ay * t + by) * t + cy) * t;\n        }\n        function solveCurveX(x, epsilon) {\n            var t0, t1, t2, x2, d2, i;\n            for(t2 = x, i = 0; i < 8; i++) {\n                x2 = sampleCurveX(t2) - x;\n                if (abs(x2) < epsilon) {\n                    return t2;\n                }\n                d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\n                if (abs(d2) < 1e-6) {\n                    break;\n                }\n                t2 = t2 - x2 / d2;\n            }\n            t0 = 0;\n            t1 = 1;\n            t2 = x;\n            if (t2 < t0) {\n                return t0;\n            }\n            if (t2 > t1) {\n                return t1;\n            }\n            while (t0 < t1) {\n                x2 = sampleCurveX(t2);\n                if (abs(x2 - x) < epsilon) {\n                    return t2;\n                }\n                if (x > x2) {\n                    t0 = t2;\n                } else {\n                    t1 = t2;\n                }\n                t2 = (t1 - t0) / 2 + t0;\n            }\n            return t2;\n        }\n        return solve(t, 1 / (200 * duration));\n    }\n    elproto.onAnimation = function (f) {\n        f ? eve.on(\"raphael.anim.frame.\" + this.id, f) : eve.unbind(\"raphael.anim.frame.\" + this.id);\n        return this;\n    };\n    function Animation(anim, ms) {\n        var percents = [],\n            newAnim = {};\n        this.ms = ms;\n        this.times = 1;\n        if (anim) {\n            for (var attr in anim) if (anim[has](attr)) {\n                newAnim[toFloat(attr)] = anim[attr];\n                percents.push(toFloat(attr));\n            }\n            percents.sort(sortByNumber);\n        }\n        this.anim = newAnim;\n        this.top = percents[percents.length - 1];\n        this.percents = percents;\n    }\n    /*\\\n     * Animation.delay\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given delay.\n     **\n     > Parameters\n     **\n     - delay (number) number of ms to pass between animation start and actual animation\n     **\n     = (object) new altered Animation object\n     | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\n     | circle1.animate(anim); // run the given animation immediately\n     | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\n    \\*/\n    Animation.prototype.delay = function (delay) {\n        var a = new Animation(this.anim, this.ms);\n        a.times = this.times;\n        a.del = +delay || 0;\n        return a;\n    };\n    /*\\\n     * Animation.repeat\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given repetition.\n     **\n     > Parameters\n     **\n     - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\n     **\n     = (object) new altered Animation object\n    \\*/\n    Animation.prototype.repeat = function (times) {\n        var a = new Animation(this.anim, this.ms);\n        a.del = this.del;\n        a.times = math.floor(mmax(times, 0)) || 1;\n        return a;\n    };\n    function runAnimation(anim, element, percent, status, totalOrigin, times) {\n        percent = toFloat(percent);\n        var params,\n            isInAnim,\n            isInAnimSet,\n            percents = [],\n            next,\n            prev,\n            timestamp,\n            ms = anim.ms,\n            from = {},\n            to = {},\n            diff = {};\n        if (status) {\n            for (i = 0, ii = animationElements.length; i < ii; i++) {\n                var e = animationElements[i];\n                if (e.el.id == element.id && e.anim == anim) {\n                    if (e.percent != percent) {\n                        animationElements.splice(i, 1);\n                        isInAnimSet = 1;\n                    } else {\n                        isInAnim = e;\n                    }\n                    element.attr(e.totalOrigin);\n                    break;\n                }\n            }\n        } else {\n            status = +to; // NaN\n        }\n        for (var i = 0, ii = anim.percents.length; i < ii; i++) {\n            if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\n                percent = anim.percents[i];\n                prev = anim.percents[i - 1] || 0;\n                ms = ms / anim.top * (percent - prev);\n                next = anim.percents[i + 1];\n                params = anim.anim[percent];\n                break;\n            } else if (status) {\n                element.attr(anim.anim[anim.percents[i]]);\n            }\n        }\n        if (!params) {\n            return;\n        }\n        if (!isInAnim) {\n            for (var attr in params) if (params[has](attr)) {\n                if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\n                    from[attr] = element.attr(attr);\n                    (from[attr] == null) && (from[attr] = availableAttrs[attr]);\n                    to[attr] = params[attr];\n                    switch (availableAnimAttrs[attr]) {\n                        case nu:\n                            diff[attr] = (to[attr] - from[attr]) / ms;\n                            break;\n                        case \"colour\":\n                            from[attr] = R.getRGB(from[attr]);\n                            var toColour = R.getRGB(to[attr]);\n                            diff[attr] = {\n                                r: (toColour.r - from[attr].r) / ms,\n                                g: (toColour.g - from[attr].g) / ms,\n                                b: (toColour.b - from[attr].b) / ms\n                            };\n                            break;\n                        case \"path\":\n                            var pathes = path2curve(from[attr], to[attr]),\n                                toPath = pathes[1];\n                            from[attr] = pathes[0];\n                            diff[attr] = [];\n                            for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                diff[attr][i] = [0];\n                                for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                    diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\n                                }\n                            }\n                            break;\n                        case \"transform\":\n                            var _ = element._,\n                                eq = equaliseTransform(_[attr], to[attr]);\n                            if (eq) {\n                                from[attr] = eq.from;\n                                to[attr] = eq.to;\n                                diff[attr] = [];\n                                diff[attr].real = true;\n                                for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                    diff[attr][i] = [from[attr][i][0]];\n                                    for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\n                                    }\n                                }\n                            } else {\n                                var m = (element.matrix || new Matrix),\n                                    to2 = {\n                                        _: {transform: _.transform},\n                                        getBBox: function () {\n                                            return element.getBBox(1);\n                                        }\n                                    };\n                                from[attr] = [\n                                    m.a,\n                                    m.b,\n                                    m.c,\n                                    m.d,\n                                    m.e,\n                                    m.f\n                                ];\n                                extractTransform(to2, to[attr]);\n                                to[attr] = to2._.transform;\n                                diff[attr] = [\n                                    (to2.matrix.a - m.a) / ms,\n                                    (to2.matrix.b - m.b) / ms,\n                                    (to2.matrix.c - m.c) / ms,\n                                    (to2.matrix.d - m.d) / ms,\n                                    (to2.matrix.e - m.e) / ms,\n                                    (to2.matrix.f - m.f) / ms\n                                ];\n                                // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\n                                // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\n                                // extractTransform(to2, to[attr]);\n                                // diff[attr] = [\n                                //     (to2._.sx - _.sx) / ms,\n                                //     (to2._.sy - _.sy) / ms,\n                                //     (to2._.deg - _.deg) / ms,\n                                //     (to2._.dx - _.dx) / ms,\n                                //     (to2._.dy - _.dy) / ms\n                                // ];\n                            }\n                            break;\n                        case \"csv\":\n                            var values = Str(params[attr])[split](separator),\n                                from2 = Str(from[attr])[split](separator);\n                            if (attr == \"clip-rect\") {\n                                from[attr] = from2;\n                                diff[attr] = [];\n                                i = from2.length;\n                                while (i--) {\n                                    diff[attr][i] = (values[i] - from[attr][i]) / ms;\n                                }\n                            }\n                            to[attr] = values;\n                            break;\n                        default:\n                            values = [][concat](params[attr]);\n                            from2 = [][concat](from[attr]);\n                            diff[attr] = [];\n                            i = element.paper.customAttributes[attr].length;\n                            while (i--) {\n                                diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\n                            }\n                            break;\n                    }\n                }\n            }\n            var easing = params.easing,\n                easyeasy = R.easing_formulas[easing];\n            if (!easyeasy) {\n                easyeasy = Str(easing).match(bezierrg);\n                if (easyeasy && easyeasy.length == 5) {\n                    var curve = easyeasy;\n                    easyeasy = function (t) {\n                        return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\n                    };\n                } else {\n                    easyeasy = pipe;\n                }\n            }\n            timestamp = params.start || anim.start || +new Date;\n            e = {\n                anim: anim,\n                percent: percent,\n                timestamp: timestamp,\n                start: timestamp + (anim.del || 0),\n                status: 0,\n                initstatus: status || 0,\n                stop: false,\n                ms: ms,\n                easing: easyeasy,\n                from: from,\n                diff: diff,\n                to: to,\n                el: element,\n                callback: params.callback,\n                prev: prev,\n                next: next,\n                repeat: times || anim.times,\n                origin: element.attr(),\n                totalOrigin: totalOrigin\n            };\n            animationElements.push(e);\n            if (status && !isInAnim && !isInAnimSet) {\n                e.stop = true;\n                e.start = new Date - ms * status;\n                if (animationElements.length == 1) {\n                    return animation();\n                }\n            }\n            if (isInAnimSet) {\n                e.start = new Date - e.ms * status;\n            }\n            animationElements.length == 1 && requestAnimFrame(animation);\n        } else {\n            isInAnim.initstatus = status;\n            isInAnim.start = new Date - isInAnim.ms * status;\n        }\n        eve(\"raphael.anim.start.\" + element.id, element, anim);\n    }\n    /*\\\n     * Raphael.animation\n     [ method ]\n     **\n     * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\n     * See also @Animation.delay and @Animation.repeat methods.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     **\n     = (object) @Animation\n    \\*/\n    R.animation = function (params, ms, easing, callback) {\n        if (params instanceof Animation) {\n            return params;\n        }\n        if (R.is(easing, \"function\") || !easing) {\n            callback = callback || easing || null;\n            easing = null;\n        }\n        params = Object(params);\n        ms = +ms || 0;\n        var p = {},\n            json,\n            attr;\n        for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + \"%\" != attr) {\n            json = true;\n            p[attr] = params[attr];\n        }\n        if (!json) {\n            // if percent-like syntax is used and end-of-all animation callback used\n            if(callback){\n                // find the last one\n                var lastKey = 0;\n                for(var i in params){\n                    var percent = toInt(i);\n                    if(params[has](i) && percent > lastKey){\n                        lastKey = percent;\n                    }\n                }\n                lastKey += '%';\n                // if already defined callback in the last keyframe, skip\n                !params[lastKey].callback && (params[lastKey].callback = callback);\n            }\n          return new Animation(params, ms);\n        } else {\n            easing && (p.easing = easing);\n            callback && (p.callback = callback);\n            return new Animation({100: p}, ms);\n        }\n    };\n    /*\\\n     * Element.animate\n     [ method ]\n     **\n     * Creates and starts animation for given element.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - animation (object) animation object, see @Raphael.animation\n     **\n     = (object) original element\n    \\*/\n    elproto.animate = function (params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\n        runAnimation(anim, element, anim.percents[0], null, element.attr());\n        return element;\n    };\n    /*\\\n     * Element.setTime\n     [ method ]\n     **\n     * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\n     **\n     > Parameters\n     **\n     - anim (object) animation object\n     - value (number) number of milliseconds from the beginning of the animation\n     **\n     = (object) original element if `value` is specified\n     * Note, that during animation following events are triggered:\n     *\n     * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`.\n    \\*/\n    elproto.setTime = function (anim, value) {\n        if (anim && value != null) {\n            this.status(anim, mmin(value, anim.ms) / anim.ms);\n        }\n        return this;\n    };\n    /*\\\n     * Element.status\n     [ method ]\n     **\n     * Gets or sets the status of animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\n     **\n     = (number) status\n     * or\n     = (array) status if `anim` is not specified. Array of objects in format:\n     o {\n     o     anim: (object) animation object\n     o     status: (number) status\n     o }\n     * or\n     = (object) original element if `value` is specified\n    \\*/\n    elproto.status = function (anim, value) {\n        var out = [],\n            i = 0,\n            len,\n            e;\n        if (value != null) {\n            runAnimation(anim, this, -1, mmin(value, 1));\n            return this;\n        } else {\n            len = animationElements.length;\n            for (; i < len; i++) {\n                e = animationElements[i];\n                if (e.el.id == this.id && (!anim || e.anim == anim)) {\n                    if (anim) {\n                        return e.status;\n                    }\n                    out.push({\n                        anim: e.anim,\n                        status: e.status\n                    });\n                }\n            }\n            if (anim) {\n                return 0;\n            }\n            return out;\n        }\n    };\n    /*\\\n     * Element.pause\n     [ method ]\n     **\n     * Stops animation of the element with ability to resume it later on.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.pause = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve(\"raphael.anim.pause.\" + this.id, this, animationElements[i].anim) !== false) {\n                animationElements[i].paused = true;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.resume\n     [ method ]\n     **\n     * Resumes animation if it was paused with @Element.pause method.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.resume = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            var e = animationElements[i];\n            if (eve(\"raphael.anim.resume.\" + this.id, this, e.anim) !== false) {\n                delete e.paused;\n                this.status(e.anim, e.status);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.stop\n     [ method ]\n     **\n     * Stops animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n    \\*/\n    elproto.stop = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve(\"raphael.anim.stop.\" + this.id, this, animationElements[i].anim) !== false) {\n                animationElements.splice(i--, 1);\n            }\n        }\n        return this;\n    };\n    function stopAnimation(paper) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\n            animationElements.splice(i--, 1);\n        }\n    }\n    eve.on(\"raphael.remove\", stopAnimation);\n    eve.on(\"raphael.clear\", stopAnimation);\n    elproto.toString = function () {\n        return \"Rapha\\xebl\\u2019s object\";\n    };\n\n    // Set\n    var Set = function (items) {\n        this.items = [];\n        this.length = 0;\n        this.type = \"set\";\n        if (items) {\n            for (var i = 0, ii = items.length; i < ii; i++) {\n                if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\n                    this[this.items.length] = this.items[this.items.length] = items[i];\n                    this.length++;\n                }\n            }\n        }\n    },\n    setproto = Set.prototype;\n    /*\\\n     * Set.push\n     [ method ]\n     **\n     * Adds each argument to the current set.\n     = (object) original element\n    \\*/\n    setproto.push = function () {\n        var item,\n            len;\n        for (var i = 0, ii = arguments.length; i < ii; i++) {\n            item = arguments[i];\n            if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\n                len = this.items.length;\n                this[len] = this.items[len] = item;\n                this.length++;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.pop\n     [ method ]\n     **\n     * Removes last element and returns it.\n     = (object) element\n    \\*/\n    setproto.pop = function () {\n        this.length && delete this[this.length--];\n        return this.items.pop();\n    };\n    /*\\\n     * Set.forEach\n     [ method ]\n     **\n     * Executes given function for each element in the set.\n     *\n     * If function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Set object\n    \\*/\n    setproto.forEach = function (callback, thisArg) {\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            if (callback.call(thisArg, this.items[i], i) === false) {\n                return this;\n            }\n        }\n        return this;\n    };\n    for (var method in elproto) if (elproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname][apply](el, arg);\n                });\n            };\n        })(method);\n    }\n    setproto.attr = function (name, value) {\n        if (name && R.is(name, array) && R.is(name[0], \"object\")) {\n            for (var j = 0, jj = name.length; j < jj; j++) {\n                this.items[j].attr(name[j]);\n            }\n        } else {\n            for (var i = 0, ii = this.items.length; i < ii; i++) {\n                this.items[i].attr(name, value);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.clear\n     [ method ]\n     **\n     * Removes all elements from the set\n    \\*/\n    setproto.clear = function () {\n        while (this.length) {\n            this.pop();\n        }\n    };\n    /*\\\n     * Set.splice\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - index (number) position of the deletion\n     - count (number) number of element to remove\n     - insertion… (object) #optional elements to insert\n     = (object) set elements that were deleted\n    \\*/\n    setproto.splice = function (index, count, insertion) {\n        index = index < 0 ? mmax(this.length + index, 0) : index;\n        count = mmax(0, mmin(this.length - index, count));\n        var tail = [],\n            todel = [],\n            args = [],\n            i;\n        for (i = 2; i < arguments.length; i++) {\n            args.push(arguments[i]);\n        }\n        for (i = 0; i < count; i++) {\n            todel.push(this[index + i]);\n        }\n        for (; i < this.length - index; i++) {\n            tail.push(this[index + i]);\n        }\n        var arglen = args.length;\n        for (i = 0; i < arglen + tail.length; i++) {\n            this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n        }\n        i = this.items.length = this.length -= count - arglen;\n        while (this[i]) {\n            delete this[i++];\n        }\n        return new Set(todel);\n    };\n    /*\\\n     * Set.exclude\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - element (object) element to remove\n     = (boolean) `true` if object was found & removed from the set\n    \\*/\n    setproto.exclude = function (el) {\n        for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n            this.splice(i, 1);\n            return true;\n        }\n    };\n    setproto.animate = function (params, ms, easing, callback) {\n        (R.is(easing, \"function\") || !easing) && (callback = easing || null);\n        var len = this.items.length,\n            i = len,\n            item,\n            set = this,\n            collector;\n        if (!len) {\n            return this;\n        }\n        callback && (collector = function () {\n            !--len && callback.call(set);\n        });\n        easing = R.is(easing, string) ? easing : collector;\n        var anim = R.animation(params, ms, easing, collector);\n        item = this.items[--i].animate(anim);\n        while (i--) {\n            this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\n            (this.items[i] && !this.items[i].removed) || len--;\n        }\n        return this;\n    };\n    setproto.insertAfter = function (el) {\n        var i = this.items.length;\n        while (i--) {\n            this.items[i].insertAfter(el);\n        }\n        return this;\n    };\n    setproto.getBBox = function () {\n        var x = [],\n            y = [],\n            x2 = [],\n            y2 = [];\n        for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n            var box = this.items[i].getBBox();\n            x.push(box.x);\n            y.push(box.y);\n            x2.push(box.x + box.width);\n            y2.push(box.y + box.height);\n        }\n        x = mmin[apply](0, x);\n        y = mmin[apply](0, y);\n        x2 = mmax[apply](0, x2);\n        y2 = mmax[apply](0, y2);\n        return {\n            x: x,\n            y: y,\n            x2: x2,\n            y2: y2,\n            width: x2 - x,\n            height: y2 - y\n        };\n    };\n    setproto.clone = function (s) {\n        s = this.paper.set();\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            s.push(this.items[i].clone());\n        }\n        return s;\n    };\n    setproto.toString = function () {\n        return \"Rapha\\xebl\\u2018s set\";\n    };\n\n    setproto.glow = function(glowConfig) {\n        var ret = this.paper.set();\n        this.forEach(function(shape, index){\n            var g = shape.glow(glowConfig);\n            if(g != null){\n                g.forEach(function(shape2, index2){\n                    ret.push(shape2);\n                });\n            }\n        });\n        return ret;\n    };\n\n\n    /*\\\n     * Set.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this set’s elements\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point is inside any of the set's elements\n     \\*/\n    setproto.isPointInside = function (x, y) {\n        var isPointInside = false;\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                isPointInside = true;\n                return false; // stop loop\n            }\n        });\n        return isPointInside;\n    };\n\n    /*\\\n     * Raphael.registerFont\n     [ method ]\n     **\n     * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\n     * Returns original parameter, so it could be used with chaining.\n     # <a href=\"http://wiki.github.com/sorccu/cufon/about\">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a>\n     **\n     > Parameters\n     **\n     - font (object) the font to register\n     = (object) the font you passed in\n     > Usage\n     | Cufon.registerFont(Raphael.registerFont({…}));\n    \\*/\n    R.registerFont = function (font) {\n        if (!font.face) {\n            return font;\n        }\n        this.fonts = this.fonts || {};\n        var fontcopy = {\n                w: font.w,\n                face: {},\n                glyphs: {}\n            },\n            family = font.face[\"font-family\"];\n        for (var prop in font.face) if (font.face[has](prop)) {\n            fontcopy.face[prop] = font.face[prop];\n        }\n        if (this.fonts[family]) {\n            this.fonts[family].push(fontcopy);\n        } else {\n            this.fonts[family] = [fontcopy];\n        }\n        if (!font.svg) {\n            fontcopy.face[\"units-per-em\"] = toInt(font.face[\"units-per-em\"], 10);\n            for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\n                var path = font.glyphs[glyph];\n                fontcopy.glyphs[glyph] = {\n                    w: path.w,\n                    k: {},\n                    d: path.d && \"M\" + path.d.replace(/[mlcxtrv]/g, function (command) {\n                            return {l: \"L\", c: \"C\", x: \"z\", t: \"m\", r: \"l\", v: \"c\"}[command] || \"M\";\n                        }) + \"z\"\n                };\n                if (path.k) {\n                    for (var k in path.k) if (path[has](k)) {\n                        fontcopy.glyphs[glyph].k[k] = path.k[k];\n                    }\n                }\n            }\n        }\n        return font;\n    };\n    /*\\\n     * Paper.getFont\n     [ method ]\n     **\n     * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\n     **\n     > Parameters\n     **\n     - family (string) font family name or any word from it\n     - weight (string) #optional font weight\n     - style (string) #optional font style\n     - stretch (string) #optional font stretch\n     = (object) the font object\n     > Usage\n     | paper.print(100, 100, \"Test string\", paper.getFont(\"Times\", 800), 30);\n    \\*/\n    paperproto.getFont = function (family, weight, style, stretch) {\n        stretch = stretch || \"normal\";\n        style = style || \"normal\";\n        weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\n        if (!R.fonts) {\n            return;\n        }\n        var font = R.fonts[family];\n        if (!font) {\n            var name = new RegExp(\"(^|\\\\s)\" + family.replace(/[^\\w\\d\\s+!~.:_-]/g, E) + \"(\\\\s|$)\", \"i\");\n            for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\n                if (name.test(fontName)) {\n                    font = R.fonts[fontName];\n                    break;\n                }\n            }\n        }\n        var thefont;\n        if (font) {\n            for (var i = 0, ii = font.length; i < ii; i++) {\n                thefont = font[i];\n                if (thefont.face[\"font-weight\"] == weight && (thefont.face[\"font-style\"] == style || !thefont.face[\"font-style\"]) && thefont.face[\"font-stretch\"] == stretch) {\n                    break;\n                }\n            }\n        }\n        return thefont;\n    };\n    /*\\\n     * Paper.print\n     [ method ]\n     **\n     * Creates path that represent given text written using given font at given position with given size.\n     * Result of the method is path element that contains whole text as a separate path.\n     **\n     > Parameters\n     **\n     - x (number) x position of the text\n     - y (number) y position of the text\n     - string (string) text to print\n     - font (object) font object, see @Paper.getFont\n     - size (number) #optional size of the font, default is `16`\n     - origin (string) #optional could be `\"baseline\"` or `\"middle\"`, default is `\"middle\"`\n     - letter_spacing (number) #optional number in range `-1..1`, default is `0`\n     - line_spacing (number) #optional number in range `1..3`, default is `1`\n     = (object) resulting path element, which consist of all letters\n     > Usage\n     | var txt = r.print(10, 50, \"print\", r.getFont(\"Museo\"), 30).attr({fill: \"#fff\"});\n    \\*/\n    paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\n        origin = origin || \"middle\"; // baseline|middle\n        letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\n        line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\n        var letters = Str(string)[split](E),\n            shift = 0,\n            notfirst = 0,\n            path = E,\n            scale;\n        R.is(font, \"string\") && (font = this.getFont(font));\n        if (font) {\n            scale = (size || 16) / font.face[\"units-per-em\"];\n            var bb = font.face.bbox[split](separator),\n                top = +bb[0],\n                lineHeight = bb[3] - bb[1],\n                shifty = 0,\n                height = +bb[1] + (origin == \"baseline\" ? lineHeight + (+font.face.descent) : lineHeight / 2);\n            for (var i = 0, ii = letters.length; i < ii; i++) {\n                if (letters[i] == \"\\n\") {\n                    shift = 0;\n                    curr = 0;\n                    notfirst = 0;\n                    shifty += lineHeight * line_spacing;\n                } else {\n                    var prev = notfirst && font.glyphs[letters[i - 1]] || {},\n                        curr = font.glyphs[letters[i]];\n                    shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\n                    notfirst = 1;\n                }\n                if (curr && curr.d) {\n                    path += R.transformPath(curr.d, [\"t\", shift * scale, shifty * scale, \"s\", scale, scale, top, height, \"t\", (x - top) / scale, (y - height) / scale]);\n                }\n            }\n        }\n        return this.path(path).attr({\n            fill: \"#000\",\n            stroke: \"none\"\n        });\n    };\n\n    /*\\\n     * Paper.add\n     [ method ]\n     **\n     * Imports elements in JSON array in format `{type: type, <attributes>}`\n     **\n     > Parameters\n     **\n     - json (array)\n     = (object) resulting set of imported elements\n     > Usage\n     | paper.add([\n     |     {\n     |         type: \"circle\",\n     |         cx: 10,\n     |         cy: 10,\n     |         r: 5\n     |     },\n     |     {\n     |         type: \"rect\",\n     |         x: 10,\n     |         y: 10,\n     |         width: 10,\n     |         height: 10,\n     |         fill: \"#fc0\"\n     |     }\n     | ]);\n    \\*/\n    paperproto.add = function (json) {\n        if (R.is(json, \"array\")) {\n            var res = this.set(),\n                i = 0,\n                ii = json.length,\n                j;\n            for (; i < ii; i++) {\n                j = json[i] || {};\n                elements[has](j.type) && res.push(this[j.type]().attr(j));\n            }\n        }\n        return res;\n    };\n\n    /*\\\n     * Raphael.format\n     [ method ]\n     **\n     * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - … (string) rest of arguments will be treated as parameters for replacement\n     = (string) formated string\n     > Usage\n     | var x = 10,\n     |     y = 20,\n     |     width = 40,\n     |     height = 50;\n     | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n     | paper.path(Raphael.format(\"M{0},{1}h{2}v{3}h{4}z\", x, y, width, height, -width));\n    \\*/\n    R.format = function (token, params) {\n        var args = R.is(params, array) ? [0][concat](params) : arguments;\n        token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\n            return args[++i] == null ? E : args[i];\n        }));\n        return token || E;\n    };\n    /*\\\n     * Raphael.fullfill\n     [ method ]\n     **\n     * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - json (object) object which properties will be used as a replacement\n     = (string) formated string\n     > Usage\n     | // this will draw a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n     | paper.path(Raphael.fullfill(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n     |     x: 10,\n     |     y: 20,\n     |     dim: {\n     |         width: 40,\n     |         height: 50,\n     |         \"negative width\": -40\n     |     }\n     | }));\n    \\*/\n    R.fullfill = (function () {\n        var tokenRegex = /\\{([^\\}]+)\\}/g,\n            objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n            replacer = function (all, key, obj) {\n                var res = obj;\n                key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n                    name = name || quotedName;\n                    if (res) {\n                        if (name in res) {\n                            res = res[name];\n                        }\n                        typeof res == \"function\" && isFunc && (res = res());\n                    }\n                });\n                res = (res == null || res == obj ? all : res) + \"\";\n                return res;\n            };\n        return function (str, obj) {\n            return String(str).replace(tokenRegex, function (all, key) {\n                return replacer(all, key, obj);\n            });\n        };\n    })();\n    /*\\\n     * Raphael.ninja\n     [ method ]\n     **\n     * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\n     * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\n     **\n     = (object) Raphael object\n     > Usage\n     | (function (local_raphael) {\n     |     var paper = local_raphael(10, 10, 320, 200);\n     |     …\n     | })(Raphael.ninja());\n    \\*/\n    R.ninja = function () {\n        if (oldRaphael.was) {\n            g.win.Raphael = oldRaphael.is;\n        } else {\n            // IE8 raises an error when deleting window property\n            window.Raphael = undefined;\n            try {\n                delete window.Raphael;\n            } catch(e) {}\n        }\n        return R;\n    };\n    /*\\\n     * Raphael.st\n     [ property (object) ]\n     **\n     * You can add your own method to elements and sets. It is wise to add a set method for each element method\n     * you added, so you will be able to call the same method on sets too.\n     **\n     * See also @Raphael.el.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: \"#f00\"});\n     | };\n     | Raphael.st.red = function () {\n     |     this.forEach(function (el) {\n     |         el.red();\n     |     });\n     | };\n     | // then use it\n     | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\n    \\*/\n    R.st = setproto;\n\n    eve.on(\"raphael.DOMload\", function () {\n        loaded = true;\n    });\n\n    // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\n    (function (doc, loaded, f) {\n        if (doc.readyState == null && doc.addEventListener){\n            doc.addEventListener(loaded, f = function () {\n                doc.removeEventListener(loaded, f, false);\n                doc.readyState = \"complete\";\n            }, false);\n            doc.readyState = \"loading\";\n        }\n        function isLoaded() {\n            (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve(\"raphael.DOMload\");\n        }\n        isLoaded();\n    })(document, \"DOMContentLoaded\");\n\n    return R;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"./dev/raphael.svg.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.svg.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n    if (R && !R.svg) {\n        return;\n    }\n\n    var has = \"hasOwnProperty\",\n        Str = String,\n        toFloat = parseFloat,\n        toInt = parseInt,\n        math = Math,\n        mmax = math.max,\n        abs = math.abs,\n        pow = math.pow,\n        separator = /[, ]+/,\n        eve = R.eve,\n        E = \"\",\n        S = \" \";\n    var xlink = \"http://www.w3.org/1999/xlink\",\n        markers = {\n            block: \"M5,0 0,2.5 5,5z\",\n            classic: \"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",\n            diamond: \"M2.5,0 5,2.5 2.5,5 0,2.5z\",\n            open: \"M6,1 1,3.5 6,6\",\n            oval: \"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"\n        },\n        markerCounter = {};\n    R.toString = function () {\n        return  \"Your browser supports SVG.\\nYou are running Rapha\\xebl \" + this.version;\n    };\n    var $ = function (el, attr) {\n        if (attr) {\n            if (typeof el == \"string\") {\n                el = $(el);\n            }\n            for (var key in attr) if (attr[has](key)) {\n                if (key.substring(0, 6) == \"xlink:\") {\n                    el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\n                } else {\n                    el.setAttribute(key, Str(attr[key]));\n                }\n            }\n        } else {\n            el = R._g.doc.createElementNS(\"http://www.w3.org/2000/svg\", el);\n            el.style && (el.style.webkitTapHighlightColor = \"rgba(0,0,0,0)\");\n        }\n        return el;\n    },\n    addGradientFill = function (element, gradient) {\n        var type = \"linear\",\n            id = element.id + gradient,\n            fx = .5, fy = .5,\n            o = element.node,\n            SVG = element.paper,\n            s = o.style,\n            el = R._g.doc.getElementById(id);\n        if (!el) {\n            gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\n                type = \"radial\";\n                if (_fx && _fy) {\n                    fx = toFloat(_fx);\n                    fy = toFloat(_fy);\n                    var dir = ((fy > .5) * 2 - 1);\n                    pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\n                        (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\n                        fy != .5 &&\n                        (fy = fy.toFixed(5) - 1e-5 * dir);\n                }\n                return E;\n            });\n            gradient = gradient.split(/\\s*\\-\\s*/);\n            if (type == \"linear\") {\n                var angle = gradient.shift();\n                angle = -toFloat(angle);\n                if (isNaN(angle)) {\n                    return null;\n                }\n                var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\n                    max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\n                vector[2] *= max;\n                vector[3] *= max;\n                if (vector[2] < 0) {\n                    vector[0] = -vector[2];\n                    vector[2] = 0;\n                }\n                if (vector[3] < 0) {\n                    vector[1] = -vector[3];\n                    vector[3] = 0;\n                }\n            }\n            var dots = R._parseDots(gradient);\n            if (!dots) {\n                return null;\n            }\n            id = id.replace(/[\\(\\)\\s,\\xb0#]/g, \"_\");\n\n            if (element.gradient && id != element.gradient.id) {\n                SVG.defs.removeChild(element.gradient);\n                delete element.gradient;\n            }\n\n            if (!element.gradient) {\n                el = $(type + \"Gradient\", {id: id});\n                element.gradient = el;\n                $(el, type == \"radial\" ? {\n                    fx: fx,\n                    fy: fy\n                } : {\n                    x1: vector[0],\n                    y1: vector[1],\n                    x2: vector[2],\n                    y2: vector[3],\n                    gradientTransform: element.matrix.invert()\n                });\n                SVG.defs.appendChild(el);\n                for (var i = 0, ii = dots.length; i < ii; i++) {\n                    el.appendChild($(\"stop\", {\n                        offset: dots[i].offset ? dots[i].offset : i ? \"100%\" : \"0%\",\n                        \"stop-color\": dots[i].color || \"#fff\",\n                        \"stop-opacity\": isFinite(dots[i].opacity) ? dots[i].opacity : 1\n                    }));\n                }\n            }\n        }\n        $(o, {\n            fill: fillurl(id),\n            opacity: 1,\n            \"fill-opacity\": 1\n        });\n        s.fill = E;\n        s.opacity = 1;\n        s.fillOpacity = 1;\n        return 1;\n    },\n    isIE9or10 = function () {\n      var mode = document.documentMode;\n      return mode && (mode === 9 || mode === 10);\n    },\n    fillurl = function (id) {\n      if (isIE9or10()) {\n          return \"url('#\" + id + \"')\";\n      }\n      var location = document.location;\n      var locationString = (\n          location.protocol + '//' +\n          location.host +\n          location.pathname +\n          location.search\n      );\n      return \"url('\" + locationString + \"#\" + id + \"')\";\n    },\n    updatePosition = function (o) {\n        var bbox = o.getBBox(1);\n        $(o.pattern, {patternTransform: o.matrix.invert() + \" translate(\" + bbox.x + \",\" + bbox.y + \")\"});\n    },\n    addArrow = function (o, value, isEnd) {\n        if (o.type == \"path\") {\n            var values = Str(value).toLowerCase().split(\"-\"),\n                p = o.paper,\n                se = isEnd ? \"end\" : \"start\",\n                node = o.node,\n                attrs = o.attrs,\n                stroke = attrs[\"stroke-width\"],\n                i = values.length,\n                type = \"classic\",\n                from,\n                to,\n                dx,\n                refX,\n                attr,\n                w = 3,\n                h = 3,\n                t = 5;\n            while (i--) {\n                switch (values[i]) {\n                    case \"block\":\n                    case \"classic\":\n                    case \"oval\":\n                    case \"diamond\":\n                    case \"open\":\n                    case \"none\":\n                        type = values[i];\n                        break;\n                    case \"wide\": h = 5; break;\n                    case \"narrow\": h = 2; break;\n                    case \"long\": w = 5; break;\n                    case \"short\": w = 2; break;\n                }\n            }\n            if (type == \"open\") {\n                w += 2;\n                h += 2;\n                t += 2;\n                dx = 1;\n                refX = isEnd ? 4 : 1;\n                attr = {\n                    fill: \"none\",\n                    stroke: attrs.stroke\n                };\n            } else {\n                refX = dx = w / 2;\n                attr = {\n                    fill: attrs.stroke,\n                    stroke: \"none\"\n                };\n            }\n            if (o._.arrows) {\n                if (isEnd) {\n                    o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\n                    o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\n                } else {\n                    o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\n                    o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\n                }\n            } else {\n                o._.arrows = {};\n            }\n            if (type != \"none\") {\n                var pathId = \"raphael-marker-\" + type,\n                    markerId = \"raphael-marker-\" + se + type + w + h + \"-obj\" + o.id;\n                if (!R._g.doc.getElementById(pathId)) {\n                    p.defs.appendChild($($(\"path\"), {\n                        \"stroke-linecap\": \"round\",\n                        d: markers[type],\n                        id: pathId\n                    }));\n                    markerCounter[pathId] = 1;\n                } else {\n                    markerCounter[pathId]++;\n                }\n                var marker = R._g.doc.getElementById(markerId),\n                    use;\n                if (!marker) {\n                    marker = $($(\"marker\"), {\n                        id: markerId,\n                        markerHeight: h,\n                        markerWidth: w,\n                        orient: \"auto\",\n                        refX: refX,\n                        refY: h / 2\n                    });\n                    use = $($(\"use\"), {\n                        \"xlink:href\": \"#\" + pathId,\n                        transform: (isEnd ? \"rotate(180 \" + w / 2 + \" \" + h / 2 + \") \" : E) + \"scale(\" + w / t + \",\" + h / t + \")\",\n                        \"stroke-width\": (1 / ((w / t + h / t) / 2)).toFixed(4)\n                    });\n                    marker.appendChild(use);\n                    p.defs.appendChild(marker);\n                    markerCounter[markerId] = 1;\n                } else {\n                    markerCounter[markerId]++;\n                    use = marker.getElementsByTagName(\"use\")[0];\n                }\n                $(use, attr);\n                var delta = dx * (type != \"diamond\" && type != \"oval\");\n                if (isEnd) {\n                    from = o._.arrows.startdx * stroke || 0;\n                    to = R.getTotalLength(attrs.path) - delta * stroke;\n                } else {\n                    from = delta * stroke;\n                    to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                }\n                attr = {};\n                attr[\"marker-\" + se] = \"url(#\" + markerId + \")\";\n                if (to || from) {\n                    attr.d = R.getSubpath(attrs.path, from, to);\n                }\n                $(node, attr);\n                o._.arrows[se + \"Path\"] = pathId;\n                o._.arrows[se + \"Marker\"] = markerId;\n                o._.arrows[se + \"dx\"] = delta;\n                o._.arrows[se + \"Type\"] = type;\n                o._.arrows[se + \"String\"] = value;\n            } else {\n                if (isEnd) {\n                    from = o._.arrows.startdx * stroke || 0;\n                    to = R.getTotalLength(attrs.path) - from;\n                } else {\n                    from = 0;\n                    to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                }\n                o._.arrows[se + \"Path\"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\n                delete o._.arrows[se + \"Path\"];\n                delete o._.arrows[se + \"Marker\"];\n                delete o._.arrows[se + \"dx\"];\n                delete o._.arrows[se + \"Type\"];\n                delete o._.arrows[se + \"String\"];\n            }\n            for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\n                var item = R._g.doc.getElementById(attr);\n                item && item.parentNode.removeChild(item);\n            }\n        }\n    },\n    dasharray = {\n        \"-\": [3, 1],\n        \".\": [1, 1],\n        \"-.\": [3, 1, 1, 1],\n        \"-..\": [3, 1, 1, 1, 1, 1],\n        \". \": [1, 3],\n        \"- \": [4, 3],\n        \"--\": [8, 3],\n        \"- .\": [4, 3, 1, 3],\n        \"--.\": [8, 3, 1, 3],\n        \"--..\": [8, 3, 1, 3, 1, 3]\n    },\n    addDashes = function (o, value, params) {\n        value = dasharray[Str(value).toLowerCase()];\n        if (value) {\n            var width = o.attrs[\"stroke-width\"] || \"1\",\n                butt = {round: width, square: width, butt: 0}[o.attrs[\"stroke-linecap\"] || params[\"stroke-linecap\"]] || 0,\n                dashes = [],\n                i = value.length;\n            while (i--) {\n                dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\n            }\n            $(o.node, {\"stroke-dasharray\": dashes.join(\",\")});\n        }\n        else {\n          $(o.node, {\"stroke-dasharray\": \"none\"});\n        }\n    },\n    setFillAndStroke = function (o, params) {\n        var node = o.node,\n            attrs = o.attrs,\n            vis = node.style.visibility;\n        node.style.visibility = \"hidden\";\n        for (var att in params) {\n            if (params[has](att)) {\n                if (!R._availableAttrs[has](att)) {\n                    continue;\n                }\n                var value = params[att];\n                attrs[att] = value;\n                switch (att) {\n                    case \"blur\":\n                        o.blur(value);\n                        break;\n                    case \"title\":\n                        var title = node.getElementsByTagName(\"title\");\n\n                        // Use the existing <title>.\n                        if (title.length && (title = title[0])) {\n                          title.firstChild.nodeValue = value;\n                        } else {\n                          title = $(\"title\");\n                          var val = R._g.doc.createTextNode(value);\n                          title.appendChild(val);\n                          node.appendChild(title);\n                        }\n                        break;\n                    case \"href\":\n                    case \"target\":\n                        var pn = node.parentNode;\n                        if (pn.tagName.toLowerCase() != \"a\") {\n                            var hl = $(\"a\");\n                            pn.insertBefore(hl, node);\n                            hl.appendChild(node);\n                            pn = hl;\n                        }\n                        if (att == \"target\") {\n                            pn.setAttributeNS(xlink, \"show\", value == \"blank\" ? \"new\" : value);\n                        } else {\n                            pn.setAttributeNS(xlink, att, value);\n                        }\n                        break;\n                    case \"cursor\":\n                        node.style.cursor = value;\n                        break;\n                    case \"transform\":\n                        o.transform(value);\n                        break;\n                    case \"arrow-start\":\n                        addArrow(o, value);\n                        break;\n                    case \"arrow-end\":\n                        addArrow(o, value, 1);\n                        break;\n                    case \"clip-rect\":\n                        var rect = Str(value).split(separator);\n                        if (rect.length == 4) {\n                            o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\n                            var el = $(\"clipPath\"),\n                                rc = $(\"rect\");\n                            el.id = R.createUUID();\n                            $(rc, {\n                                x: rect[0],\n                                y: rect[1],\n                                width: rect[2],\n                                height: rect[3]\n                            });\n                            el.appendChild(rc);\n                            o.paper.defs.appendChild(el);\n                            $(node, {\"clip-path\": \"url(#\" + el.id + \")\"});\n                            o.clip = rc;\n                        }\n                        if (!value) {\n                            var path = node.getAttribute(\"clip-path\");\n                            if (path) {\n                                var clip = R._g.doc.getElementById(path.replace(/(^url\\(#|\\)$)/g, E));\n                                clip && clip.parentNode.removeChild(clip);\n                                $(node, {\"clip-path\": E});\n                                delete o.clip;\n                            }\n                        }\n                    break;\n                    case \"path\":\n                        if (o.type == \"path\") {\n                            $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : \"M0,0\"});\n                            o._.dirty = 1;\n                            if (o._.arrows) {\n                                \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                                \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                            }\n                        }\n                        break;\n                    case \"width\":\n                        node.setAttribute(att, value);\n                        o._.dirty = 1;\n                        if (attrs.fx) {\n                            att = \"x\";\n                            value = attrs.x;\n                        } else {\n                            break;\n                        }\n                    case \"x\":\n                        if (attrs.fx) {\n                            value = -attrs.x - (attrs.width || 0);\n                        }\n                    case \"rx\":\n                        if (att == \"rx\" && o.type == \"rect\") {\n                            break;\n                        }\n                    case \"cx\":\n                        node.setAttribute(att, value);\n                        o.pattern && updatePosition(o);\n                        o._.dirty = 1;\n                        break;\n                    case \"height\":\n                        node.setAttribute(att, value);\n                        o._.dirty = 1;\n                        if (attrs.fy) {\n                            att = \"y\";\n                            value = attrs.y;\n                        } else {\n                            break;\n                        }\n                    case \"y\":\n                        if (attrs.fy) {\n                            value = -attrs.y - (attrs.height || 0);\n                        }\n                    case \"ry\":\n                        if (att == \"ry\" && o.type == \"rect\") {\n                            break;\n                        }\n                    case \"cy\":\n                        node.setAttribute(att, value);\n                        o.pattern && updatePosition(o);\n                        o._.dirty = 1;\n                        break;\n                    case \"r\":\n                        if (o.type == \"rect\") {\n                            $(node, {rx: value, ry: value});\n                        } else {\n                            node.setAttribute(att, value);\n                        }\n                        o._.dirty = 1;\n                        break;\n                    case \"src\":\n                        if (o.type == \"image\") {\n                            node.setAttributeNS(xlink, \"href\", value);\n                        }\n                        break;\n                    case \"stroke-width\":\n                        if (o._.sx != 1 || o._.sy != 1) {\n                            value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\n                        }\n                        node.setAttribute(att, value);\n                        if (attrs[\"stroke-dasharray\"]) {\n                            addDashes(o, attrs[\"stroke-dasharray\"], params);\n                        }\n                        if (o._.arrows) {\n                            \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                            \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                        }\n                        break;\n                    case \"stroke-dasharray\":\n                        addDashes(o, value, params);\n                        break;\n                    case \"fill\":\n                        var isURL = Str(value).match(R._ISURL);\n                        if (isURL) {\n                            el = $(\"pattern\");\n                            var ig = $(\"image\");\n                            el.id = R.createUUID();\n                            $(el, {x: 0, y: 0, patternUnits: \"userSpaceOnUse\", height: 1, width: 1});\n                            $(ig, {x: 0, y: 0, \"xlink:href\": isURL[1]});\n                            el.appendChild(ig);\n\n                            (function (el) {\n                                R._preload(isURL[1], function () {\n                                    var w = this.offsetWidth,\n                                        h = this.offsetHeight;\n                                    $(el, {width: w, height: h});\n                                    $(ig, {width: w, height: h});\n                                });\n                            })(el);\n                            o.paper.defs.appendChild(el);\n                            $(node, {fill: \"url(#\" + el.id + \")\"});\n                            o.pattern = el;\n                            o.pattern && updatePosition(o);\n                            break;\n                        }\n                        var clr = R.getRGB(value);\n                        if (!clr.error) {\n                            delete params.gradient;\n                            delete attrs.gradient;\n                            !R.is(attrs.opacity, \"undefined\") &&\n                                R.is(params.opacity, \"undefined\") &&\n                                $(node, {opacity: attrs.opacity});\n                            !R.is(attrs[\"fill-opacity\"], \"undefined\") &&\n                                R.is(params[\"fill-opacity\"], \"undefined\") &&\n                                $(node, {\"fill-opacity\": attrs[\"fill-opacity\"]});\n                        } else if ((o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value)) {\n                            if (\"opacity\" in attrs || \"fill-opacity\" in attrs) {\n                                var gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n                                if (gradient) {\n                                    var stops = gradient.getElementsByTagName(\"stop\");\n                                    $(stops[stops.length - 1], {\"stop-opacity\": (\"opacity\" in attrs ? attrs.opacity : 1) * (\"fill-opacity\" in attrs ? attrs[\"fill-opacity\"] : 1)});\n                                }\n                            }\n                            attrs.gradient = value;\n                            attrs.fill = \"none\";\n                            break;\n                        }\n                        clr[has](\"opacity\") && $(node, {\"fill-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                    case \"stroke\":\n                        clr = R.getRGB(value);\n                        node.setAttribute(att, clr.hex);\n                        att == \"stroke\" && clr[has](\"opacity\") && $(node, {\"stroke-opacity\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                        if (att == \"stroke\" && o._.arrows) {\n                            \"startString\" in o._.arrows && addArrow(o, o._.arrows.startString);\n                            \"endString\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                        }\n                        break;\n                    case \"gradient\":\n                        (o.type == \"circle\" || o.type == \"ellipse\" || Str(value).charAt() != \"r\") && addGradientFill(o, value);\n                        break;\n                    case \"opacity\":\n                        if (attrs.gradient && !attrs[has](\"stroke-opacity\")) {\n                            $(node, {\"stroke-opacity\": value > 1 ? value / 100 : value});\n                        }\n                        // fall\n                    case \"fill-opacity\":\n                        if (attrs.gradient) {\n                            gradient = R._g.doc.getElementById(node.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g, E));\n                            if (gradient) {\n                                stops = gradient.getElementsByTagName(\"stop\");\n                                $(stops[stops.length - 1], {\"stop-opacity\": value});\n                            }\n                            break;\n                        }\n                    default:\n                        att == \"font-size\" && (value = toInt(value, 10) + \"px\");\n                        var cssrule = att.replace(/(\\-.)/g, function (w) {\n                            return w.substring(1).toUpperCase();\n                        });\n                        node.style[cssrule] = value;\n                        o._.dirty = 1;\n                        node.setAttribute(att, value);\n                        break;\n                }\n            }\n        }\n\n        tuneText(o, params);\n        node.style.visibility = vis;\n    },\n    leading = 1.2,\n    tuneText = function (el, params) {\n        if (el.type != \"text\" || !(params[has](\"text\") || params[has](\"font\") || params[has](\"font-size\") || params[has](\"x\") || params[has](\"y\"))) {\n            return;\n        }\n        var a = el.attrs,\n            node = el.node,\n            fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue(\"font-size\"), 10) : 10;\n\n        if (params[has](\"text\")) {\n            a.text = params.text;\n            while (node.firstChild) {\n                node.removeChild(node.firstChild);\n            }\n            var texts = Str(params.text).split(\"\\n\"),\n                tspans = [],\n                tspan;\n            for (var i = 0, ii = texts.length; i < ii; i++) {\n                tspan = $(\"tspan\");\n                i && $(tspan, {dy: fontSize * leading, x: a.x});\n                tspan.appendChild(R._g.doc.createTextNode(texts[i]));\n                node.appendChild(tspan);\n                tspans[i] = tspan;\n            }\n        } else {\n            tspans = node.getElementsByTagName(\"tspan\");\n            for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\n                $(tspans[i], {dy: fontSize * leading, x: a.x});\n            } else {\n                $(tspans[0], {dy: 0});\n            }\n        }\n        $(node, {x: a.x, y: a.y});\n        el._.dirty = 1;\n        var bb = el._getBBox(),\n            dif = a.y - (bb.y + bb.height / 2);\n        dif && R.is(dif, \"finite\") && $(tspans[0], {dy: dif});\n    },\n    getRealNode = function (node) {\n        if (node.parentNode && node.parentNode.tagName.toLowerCase() === \"a\") {\n            return node.parentNode;\n        } else {\n            return node;\n        }\n    },\n    Element = function (node, svg) {\n        var X = 0,\n            Y = 0;\n        /*\\\n         * Element.node\n         [ property (object) ]\n         **\n         * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n         **\n         * Note: Don’t mess with it.\n         > Usage\n         | // draw a circle at coordinate 10,10 with radius of 10\n         | var c = paper.circle(10, 10, 10);\n         | c.node.onclick = function () {\n         |     c.attr(\"fill\", \"red\");\n         | };\n        \\*/\n        this[0] = this.node = node;\n        /*\\\n         * Element.raphael\n         [ property (object) ]\n         **\n         * Internal reference to @Raphael object. In case it is not available.\n         > Usage\n         | Raphael.el.red = function () {\n         |     var hsb = this.paper.raphael.rgb2hsb(this.attr(\"fill\"));\n         |     hsb.h = 1;\n         |     this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\n         | }\n        \\*/\n        node.raphael = true;\n        /*\\\n         * Element.id\n         [ property (number) ]\n         **\n         * Unique id of the element. Especially useful when you want to listen to events of the element,\n         * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\n        \\*/\n        this.id = guid();\n        node.raphaelid = this.id;\n\n        /**\n        * Method that returns a 5 letter/digit id, enough for 36^5 = 60466176 elements\n        * @returns {string} id\n        */\n        function guid() {\n            return (\"0000\" + (Math.random()*Math.pow(36,5) << 0).toString(36)).slice(-5);\n        }\n\n        this.matrix = R.matrix();\n        this.realPath = null;\n        /*\\\n         * Element.paper\n         [ property (object) ]\n         **\n         * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\n         > Usage\n         | Raphael.el.cross = function () {\n         |     this.attr({fill: \"red\"});\n         |     this.paper.path(\"M10,10L50,50M50,10L10,50\")\n         |         .attr({stroke: \"red\"});\n         | }\n        \\*/\n        this.paper = svg;\n        this.attrs = this.attrs || {};\n        this._ = {\n            transform: [],\n            sx: 1,\n            sy: 1,\n            deg: 0,\n            dx: 0,\n            dy: 0,\n            dirty: 1\n        };\n        !svg.bottom && (svg.bottom = this);\n        /*\\\n         * Element.prev\n         [ property (object) ]\n         **\n         * Reference to the previous element in the hierarchy.\n        \\*/\n        this.prev = svg.top;\n        svg.top && (svg.top.next = this);\n        svg.top = this;\n        /*\\\n         * Element.next\n         [ property (object) ]\n         **\n         * Reference to the next element in the hierarchy.\n        \\*/\n        this.next = null;\n    },\n    elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n\n    R._engine.path = function (pathString, SVG) {\n        var el = $(\"path\");\n        SVG.canvas && SVG.canvas.appendChild(el);\n        var p = new Element(el, SVG);\n        p.type = \"path\";\n        setFillAndStroke(p, {\n            fill: \"none\",\n            stroke: \"#000\",\n            path: pathString\n        });\n        return p;\n    };\n    /*\\\n     * Element.rotate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds rotation by given angle around given point to the list of\n     * transformations of the element.\n     > Parameters\n     - deg (number) angle in degrees\n     - cx (number) #optional x coordinate of the centre of rotation\n     - cy (number) #optional y coordinate of the centre of rotation\n     * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\n     = (object) @Element\n    \\*/\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.scale\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds scale by given amount relative to given point to the list of\n     * transformations of the element.\n     > Parameters\n     - sx (number) horisontal scale amount\n     - sy (number) vertical scale amount\n     - cx (number) #optional x coordinate of the centre of scale\n     - cy (number) #optional y coordinate of the centre of scale\n     * If cx & cy aren’t specified centre of the shape is used instead.\n     = (object) @Element\n    \\*/\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n        this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.translate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds translation by given amount to the list of transformations of the element.\n     > Parameters\n     - dx (number) horisontal shift\n     - dy (number) vertical shift\n     = (object) @Element\n    \\*/\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n        return this;\n    };\n    /*\\\n     * Element.transform\n     [ method ]\n     **\n     * Adds transformation to the element which is separate to other attributes,\n     * i.e. translation doesn’t change `x` or `y` of the rectange. The format\n     * of transformation string is similar to the path string syntax:\n     | \"t100,100r30,100,100s2,2,100,100r45s1.5\"\n     * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\n     * scale and `m` is for matrix.\n     *\n     * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\n     *\n     * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\n     * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\n     * coordinates as optional parameters, the default is the centre point of the element.\n     * Matrix accepts six parameters.\n     > Usage\n     | var el = paper.rect(10, 20, 300, 200);\n     | // translate 100, 100, rotate 45°, translate -100, 0\n     | el.transform(\"t100,100r45t-100,0\");\n     | // if you want you can append or prepend transformations\n     | el.transform(\"...t50,50\");\n     | el.transform(\"s2...\");\n     | // or even wrap\n     | el.transform(\"t50,50...t-50-50\");\n     | // to reset transformation call method with empty string\n     | el.transform(\"\");\n     | // to get current value call it without parameters\n     | console.log(el.transform());\n     > Parameters\n     - tstr (string) #optional transformation string\n     * If tstr isn’t specified\n     = (string) current transformation string\n     * else\n     = (object) @Element\n    \\*/\n    elproto.transform = function (tstr) {\n        var _ = this._;\n        if (tstr == null) {\n            return _.transform;\n        }\n        R._extractTransform(this, tstr);\n\n        this.clip && $(this.clip, {transform: this.matrix.invert()});\n        this.pattern && updatePosition(this);\n        this.node && $(this.node, {transform: this.matrix});\n\n        if (_.sx != 1 || _.sy != 1) {\n            var sw = this.attrs[has](\"stroke-width\") ? this.attrs[\"stroke-width\"] : 1;\n            this.attr({\"stroke-width\": sw});\n        }\n\n        return this;\n    };\n    /*\\\n     * Element.hide\n     [ method ]\n     **\n     * Makes element invisible. See @Element.show.\n     = (object) @Element\n    \\*/\n    elproto.hide = function () {\n        if(!this.removed) this.node.style.display = \"none\";\n        return this;\n    };\n    /*\\\n     * Element.show\n     [ method ]\n     **\n     * Makes element visible. See @Element.hide.\n     = (object) @Element\n    \\*/\n    elproto.show = function () {\n        if(!this.removed) this.node.style.display = \"\";\n        return this;\n    };\n    /*\\\n     * Element.remove\n     [ method ]\n     **\n     * Removes element from the paper.\n    \\*/\n    elproto.remove = function () {\n        var node = getRealNode(this.node);\n        if (this.removed || !node.parentNode) {\n            return;\n        }\n        var paper = this.paper;\n        paper.__set__ && paper.__set__.exclude(this);\n        eve.unbind(\"raphael.*.*.\" + this.id);\n        if (this.gradient) {\n            paper.defs.removeChild(this.gradient);\n        }\n        R._tear(this, paper);\n\n        node.parentNode.removeChild(node);\n\n        // Remove custom data for element\n        this.removeData();\n\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto._getBBox = function () {\n        if (this.node.style.display == \"none\") {\n            this.show();\n            var hide = true;\n        }\n        var canvasHidden = false,\n            containerStyle;\n        if (this.paper.canvas.parentElement) {\n          containerStyle = this.paper.canvas.parentElement.style;\n        } //IE10+ can't find parentElement\n        else if (this.paper.canvas.parentNode) {\n          containerStyle = this.paper.canvas.parentNode.style;\n        }\n\n        if(containerStyle && containerStyle.display == \"none\") {\n          canvasHidden = true;\n          containerStyle.display = \"\";\n        }\n        var bbox = {};\n        try {\n            bbox = this.node.getBBox();\n        } catch(e) {\n            // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\n            bbox = {\n                x: this.node.clientLeft,\n                y: this.node.clientTop,\n                width: this.node.clientWidth,\n                height: this.node.clientHeight\n            }\n        } finally {\n            bbox = bbox || {};\n            if(canvasHidden){\n              containerStyle.display = \"none\";\n            }\n        }\n        hide && this.hide();\n        return bbox;\n    };\n    /*\\\n     * Element.attr\n     [ method ]\n     **\n     * Sets the attributes of the element.\n     > Parameters\n     - attrName (string) attribute’s name\n     - value (string) value\n     * or\n     - params (object) object of name/value pairs\n     * or\n     - attrName (string) attribute’s name\n     * or\n     - attrNames (array) in this case method returns array of current values for given attribute names\n     = (object) @Element if attrsName & value or params are passed in.\n     = (...) value of the attribute if only attrsName is passed in.\n     = (array) array of values of the attribute if attrsNames is passed in.\n     = (object) object of attributes if nothing is passed in.\n     > Possible parameters\n     # <p>Please refer to the <a href=\"http://www.w3.org/TR/SVG/\" title=\"The W3C Recommendation for the SVG language describes these properties in detail.\">SVG specification</a> for an explanation of these parameters.</p>\n     o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\n     o clip-rect (string) comma or space separated values: x, y, width and height\n     o cursor (string) CSS type of the cursor\n     o cx (number) the x-axis coordinate of the center of the circle, or ellipse\n     o cy (number) the y-axis coordinate of the center of the circle, or ellipse\n     o fill (string) colour, gradient or image\n     o fill-opacity (number)\n     o font (string)\n     o font-family (string)\n     o font-size (number) font size in pixels\n     o font-weight (string)\n     o height (number)\n     o href (string) URL, if specified element behaves as hyperlink\n     o opacity (number)\n     o path (string) SVG path string format\n     o r (number) radius of the circle, ellipse or rounded corner on the rect\n     o rx (number) horisontal radius of the ellipse\n     o ry (number) vertical radius of the ellipse\n     o src (string) image URL, only works for @Element.image element\n     o stroke (string) stroke colour\n     o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\n     o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\n     o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\n     o stroke-miterlimit (number)\n     o stroke-opacity (number)\n     o stroke-width (number) stroke width in pixels, default is '1'\n     o target (string) used with href\n     o text (string) contents of the text element. Use `\\n` for multiline text\n     o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\n     o title (string) will create tooltip with a given text\n     o transform (string) see @Element.transform\n     o width (number)\n     o x (number)\n     o y (number)\n     > Gradients\n     * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\n     * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\n     *\n     * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\n     * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\n     * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\n     > Path String\n     # <p>Please refer to <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path’s data attribute’s format are described in the SVG specification.\">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\n     > Colour Parsing\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li>\n     #     <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href=\"http://en.wikipedia.org/wiki/HSL_and_HSV\" title=\"HSL and HSV - Wikipedia, the free encyclopedia\">Wikipedia page</a></li>\n     #     <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li>\n     # </ul>\n    \\*/\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, \"string\")) {\n            if (name == \"fill\" && this.attrs.fill == \"none\" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            if (name == \"transform\") {\n                return this._.transform;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (value == null && R.is(name, \"array\")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        if (value != null) {\n            var params = {};\n            params[name] = value;\n        } else if (name != null && R.is(name, \"object\")) {\n            params = name;\n        }\n        for (var key in params) {\n            eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n        }\n        for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n            var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n            this.attrs[key] = params[key];\n            for (var subkey in par) if (par[has](subkey)) {\n                params[subkey] = par[subkey];\n            }\n        }\n        setFillAndStroke(this, params);\n        return this;\n    };\n    /*\\\n     * Element.toFront\n     [ method ]\n     **\n     * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\n     = (object) @Element\n    \\*/\n    elproto.toFront = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        node.parentNode.appendChild(node);\n        var svg = this.paper;\n        svg.top != this && R._tofront(this, svg);\n        return this;\n    };\n    /*\\\n     * Element.toBack\n     [ method ]\n     **\n     * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\n     = (object) @Element\n    \\*/\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        var parentNode = node.parentNode;\n        parentNode.insertBefore(node, parentNode.firstChild);\n        R._toback(this, this.paper);\n        var svg = this.paper;\n        return this;\n    };\n    /*\\\n     * Element.insertAfter\n     [ method ]\n     **\n     * Inserts current object after the given one.\n     = (object) @Element\n    \\*/\n    elproto.insertAfter = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var afterNode = getRealNode(element.node || element[element.length - 1].node);\n        if (afterNode.nextSibling) {\n            afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\n        } else {\n            afterNode.parentNode.appendChild(node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    /*\\\n     * Element.insertBefore\n     [ method ]\n     **\n     * Inserts current object before the given one.\n     = (object) @Element\n    \\*/\n    elproto.insertBefore = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var beforeNode = getRealNode(element.node || element[0].node);\n        beforeNode.parentNode.insertBefore(node, beforeNode);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        // Experimental. No Safari support. Use it on your own risk.\n        var t = this;\n        if (+size !== 0) {\n            var fltr = $(\"filter\"),\n                blur = $(\"feGaussianBlur\");\n            t.attrs.blur = size;\n            fltr.id = R.createUUID();\n            $(blur, {stdDeviation: +size || 1.5});\n            fltr.appendChild(blur);\n            t.paper.defs.appendChild(fltr);\n            t._blur = fltr;\n            $(t.node, {filter: \"url(#\" + fltr.id + \")\"});\n        } else {\n            if (t._blur) {\n                t._blur.parentNode.removeChild(t._blur);\n                delete t._blur;\n                delete t.attrs.blur;\n            }\n            t.node.removeAttribute(\"filter\");\n        }\n        return t;\n    };\n    R._engine.circle = function (svg, x, y, r) {\n        var el = $(\"circle\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, r: r, fill: \"none\", stroke: \"#000\"};\n        res.type = \"circle\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.rect = function (svg, x, y, w, h, r) {\n        var el = $(\"rect\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: \"none\", stroke: \"#000\"};\n        res.type = \"rect\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.ellipse = function (svg, x, y, rx, ry) {\n        var el = $(\"ellipse\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: \"none\", stroke: \"#000\"};\n        res.type = \"ellipse\";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.image = function (svg, src, x, y, w, h) {\n        var el = $(\"image\");\n        $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: \"none\"});\n        el.setAttributeNS(xlink, \"href\", src);\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, src: src};\n        res.type = \"image\";\n        return res;\n    };\n    R._engine.text = function (svg, x, y, text) {\n        var el = $(\"text\");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {\n            x: x,\n            y: y,\n            \"text-anchor\": \"middle\",\n            text: text,\n            \"font-family\": R._availableAttrs[\"font-family\"],\n            \"font-size\": R._availableAttrs[\"font-size\"],\n            stroke: \"none\",\n            fill: \"#000\"\n        };\n        res.type = \"text\";\n        setFillAndStroke(res, res.attrs);\n        return res;\n    };\n    R._engine.setSize = function (width, height) {\n        this.width = width || this.width;\n        this.height = height || this.height;\n        this.canvas.setAttribute(\"width\", this.width);\n        this.canvas.setAttribute(\"height\", this.height);\n        if (this._viewBox) {\n            this.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con && con.container;\n        if (!container) {\n            throw new Error(\"SVG container not found.\");\n        }\n        var x = con.x,\n            y = con.y,\n            width = con.width,\n            height = con.height,\n            cnvs = $(\"svg\"),\n            css = \"overflow:hidden;\",\n            isFloating;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        $(cnvs, {\n            height: height,\n            version: 1.1,\n            width: width,\n            xmlns: \"http://www.w3.org/2000/svg\",\n            \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\"\n        });\n        if (container == 1) {\n            cnvs.style.cssText = css + \"position:absolute;left:\" + x + \"px;top:\" + y + \"px\";\n            R._g.doc.body.appendChild(cnvs);\n            isFloating = 1;\n        } else {\n            cnvs.style.cssText = css + \"position:relative\";\n            if (container.firstChild) {\n                container.insertBefore(cnvs, container.firstChild);\n            } else {\n                container.appendChild(cnvs);\n            }\n        }\n        container = new R._Paper;\n        container.width = width;\n        container.height = height;\n        container.canvas = cnvs;\n        container.clear();\n        container._left = container._top = 0;\n        isFloating && (container.renderfix = function () {});\n        container.renderfix();\n        return container;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            size = mmax(w / paperSize.width, h / paperSize.height),\n            top = this.top,\n            aspectRatio = fit ? \"xMidYMid meet\" : \"xMinYMin\",\n            vb,\n            sw;\n        if (x == null) {\n            if (this._vbSize) {\n                size = 1;\n            }\n            delete this._vbSize;\n            vb = \"0 0 \" + this.width + S + this.height;\n        } else {\n            this._vbSize = size;\n            vb = x + S + y + S + w + S + h;\n        }\n        $(this.canvas, {\n            viewBox: vb,\n            preserveAspectRatio: aspectRatio\n        });\n        while (size && top) {\n            sw = \"stroke-width\" in top.attrs ? top.attrs[\"stroke-width\"] : 1;\n            top.attr({\"stroke-width\": sw});\n            top._.dirty = 1;\n            top._.dirtyT = 1;\n            top = top.prev;\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        return this;\n    };\n    /*\\\n     * Paper.renderfix\n     [ method ]\n     **\n     * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependent\n     * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\n     * This method fixes the issue.\n     **\n       Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\n    \\*/\n    R.prototype.renderfix = function () {\n        var cnvs = this.canvas,\n            s = cnvs.style,\n            pos;\n        try {\n            pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\n        } catch (e) {\n            pos = cnvs.createSVGMatrix();\n        }\n        var left = -pos.e % 1,\n            top = -pos.f % 1;\n        if (left || top) {\n            if (left) {\n                this._left = (this._left + left) % 1;\n                s.left = this._left + \"px\";\n            }\n            if (top) {\n                this._top = (this._top + top) % 1;\n                s.top = this._top + \"px\";\n            }\n        }\n    };\n    /*\\\n     * Paper.clear\n     [ method ]\n     **\n     * Clears the paper, i.e. removes all the elements.\n    \\*/\n    R.prototype.clear = function () {\n        R.eve(\"raphael.clear\", this);\n        var c = this.canvas;\n        while (c.firstChild) {\n            c.removeChild(c.firstChild);\n        }\n        this.bottom = this.top = null;\n        (this.desc = $(\"desc\")).appendChild(R._g.doc.createTextNode(\"Created with Rapha\\xebl \" + R.version));\n        c.appendChild(this.desc);\n        c.appendChild(this.defs = $(\"defs\"));\n    };\n    /*\\\n     * Paper.remove\n     [ method ]\n     **\n     * Removes the paper from the DOM.\n    \\*/\n    R.prototype.remove = function () {\n        eve(\"raphael.remove\", this);\n        this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n    };\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"./dev/raphael.vml.js\":\n/*!****************************!*\\\n  !*** ./dev/raphael.vml.js ***!\n  \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./raphael.core */ \"./dev/raphael.core.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function(R) {\n    if (R && !R.vml) {\n        return;\n    }\n\n    var has = \"hasOwnProperty\",\n        Str = String,\n        toFloat = parseFloat,\n        math = Math,\n        round = math.round,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        fillString = \"fill\",\n        separator = /[, ]+/,\n        eve = R.eve,\n        ms = \" progid:DXImageTransform.Microsoft\",\n        S = \" \",\n        E = \"\",\n        map = {M: \"m\", L: \"l\", C: \"c\", Z: \"x\", m: \"t\", l: \"r\", c: \"v\", z: \"x\"},\n        bites = /([clmz]),?([^clmz]*)/gi,\n        blurregexp = / progid:\\S+Blur\\([^\\)]+\\)/g,\n        val = /-?[^,\\s-]+/g,\n        cssDot = \"position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)\",\n        zoom = 21600,\n        pathTypes = {path: 1, rect: 1, image: 1},\n        ovalTypes = {circle: 1, ellipse: 1},\n        path2vml = function (path) {\n            var total =  /[ahqstv]/ig,\n                command = R._pathToAbsolute;\n            Str(path).match(total) && (command = R._path2curve);\n            total = /[clmz]/g;\n            if (command == R._pathToAbsolute && !Str(path).match(total)) {\n                var res = Str(path).replace(bites, function (all, command, args) {\n                    var vals = [],\n                        isMove = command.toLowerCase() == \"m\",\n                        res = map[command];\n                    args.replace(val, function (value) {\n                        if (isMove && vals.length == 2) {\n                            res += vals + map[command == \"m\" ? \"l\" : \"L\"];\n                            vals = [];\n                        }\n                        vals.push(round(value * zoom));\n                    });\n                    return res + vals;\n                });\n                return res;\n            }\n            var pa = command(path), p, r;\n            res = [];\n            for (var i = 0, ii = pa.length; i < ii; i++) {\n                p = pa[i];\n                r = pa[i][0].toLowerCase();\n                r == \"z\" && (r = \"x\");\n                for (var j = 1, jj = p.length; j < jj; j++) {\n                    r += round(p[j] * zoom) + (j != jj - 1 ? \",\" : E);\n                }\n                res.push(r);\n            }\n            return res.join(S);\n        },\n        compensation = function (deg, dx, dy) {\n            var m = R.matrix();\n            m.rotate(-deg, .5, .5);\n            return {\n                dx: m.x(dx, dy),\n                dy: m.y(dx, dy)\n            };\n        },\n        setCoords = function (p, sx, sy, dx, dy, deg) {\n            var _ = p._,\n                m = p.matrix,\n                fillpos = _.fillpos,\n                o = p.node,\n                s = o.style,\n                y = 1,\n                flip = \"\",\n                dxdy,\n                kx = zoom / sx,\n                ky = zoom / sy;\n            s.visibility = \"hidden\";\n            if (!sx || !sy) {\n                return;\n            }\n            o.coordsize = abs(kx) + S + abs(ky);\n            s.rotation = deg * (sx * sy < 0 ? -1 : 1);\n            if (deg) {\n                var c = compensation(deg, dx, dy);\n                dx = c.dx;\n                dy = c.dy;\n            }\n            sx < 0 && (flip += \"x\");\n            sy < 0 && (flip += \" y\") && (y = -1);\n            s.flip = flip;\n            o.coordorigin = (dx * -kx) + S + (dy * -ky);\n            if (fillpos || _.fillsize) {\n                var fill = o.getElementsByTagName(fillString);\n                fill = fill && fill[0];\n                o.removeChild(fill);\n                if (fillpos) {\n                    c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\n                    fill.position = c.dx * y + S + c.dy * y;\n                }\n                if (_.fillsize) {\n                    fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\n                }\n                o.appendChild(fill);\n            }\n            s.visibility = \"visible\";\n        };\n    R.toString = function () {\n        return  \"Your browser doesn\\u2019t support SVG. Falling down to VML.\\nYou are running Rapha\\xebl \" + this.version;\n    };\n    var addArrow = function (o, value, isEnd) {\n        var values = Str(value).toLowerCase().split(\"-\"),\n            se = isEnd ? \"end\" : \"start\",\n            i = values.length,\n            type = \"classic\",\n            w = \"medium\",\n            h = \"medium\";\n        while (i--) {\n            switch (values[i]) {\n                case \"block\":\n                case \"classic\":\n                case \"oval\":\n                case \"diamond\":\n                case \"open\":\n                case \"none\":\n                    type = values[i];\n                    break;\n                case \"wide\":\n                case \"narrow\": h = values[i]; break;\n                case \"long\":\n                case \"short\": w = values[i]; break;\n            }\n        }\n        var stroke = o.node.getElementsByTagName(\"stroke\")[0];\n        stroke[se + \"arrow\"] = type;\n        stroke[se + \"arrowlength\"] = w;\n        stroke[se + \"arrowwidth\"] = h;\n    },\n    setFillAndStroke = function (o, params) {\n        // o.paper.canvas.style.display = \"none\";\n        o.attrs = o.attrs || {};\n        var node = o.node,\n            a = o.attrs,\n            s = node.style,\n            xy,\n            newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\n            isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\n            res = o;\n\n\n        for (var par in params) if (params[has](par)) {\n            a[par] = params[par];\n        }\n        if (newpath) {\n            a.path = R._getPath[o.type](o);\n            o._.dirty = 1;\n        }\n        params.href && (node.href = params.href);\n        params.title && (node.title = params.title);\n        params.target && (node.target = params.target);\n        params.cursor && (s.cursor = params.cursor);\n        \"blur\" in params && o.blur(params.blur);\n        if (params.path && o.type == \"path\" || newpath) {\n            node.path = path2vml(~Str(a.path).toLowerCase().indexOf(\"r\") ? R._pathToAbsolute(a.path) : a.path);\n            o._.dirty = 1;\n            if (o.type == \"image\") {\n                o._.fillpos = [a.x, a.y];\n                o._.fillsize = [a.width, a.height];\n                setCoords(o, 1, 1, 0, 0, 0);\n            }\n        }\n        \"transform\" in params && o.transform(params.transform);\n        if (isOval) {\n            var cx = +a.cx,\n                cy = +a.cy,\n                rx = +a.rx || +a.r || 0,\n                ry = +a.ry || +a.r || 0;\n            node.path = R.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\n            o._.dirty = 1;\n        }\n        if (\"clip-rect\" in params) {\n            var rect = Str(params[\"clip-rect\"]).split(separator);\n            if (rect.length == 4) {\n                rect[2] = +rect[2] + (+rect[0]);\n                rect[3] = +rect[3] + (+rect[1]);\n                var div = node.clipRect || R._g.doc.createElement(\"div\"),\n                    dstyle = div.style;\n                dstyle.clip = R.format(\"rect({1}px {2}px {3}px {0}px)\", rect);\n                if (!node.clipRect) {\n                    dstyle.position = \"absolute\";\n                    dstyle.top = 0;\n                    dstyle.left = 0;\n                    dstyle.width = o.paper.width + \"px\";\n                    dstyle.height = o.paper.height + \"px\";\n                    node.parentNode.insertBefore(div, node);\n                    div.appendChild(node);\n                    node.clipRect = div;\n                }\n            }\n            if (!params[\"clip-rect\"]) {\n                node.clipRect && (node.clipRect.style.clip = \"auto\");\n            }\n        }\n        if (o.textpath) {\n            var textpathStyle = o.textpath.style;\n            params.font && (textpathStyle.font = params.font);\n            params[\"font-family\"] && (textpathStyle.fontFamily = '\"' + params[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g, E) + '\"');\n            params[\"font-size\"] && (textpathStyle.fontSize = params[\"font-size\"]);\n            params[\"font-weight\"] && (textpathStyle.fontWeight = params[\"font-weight\"]);\n            params[\"font-style\"] && (textpathStyle.fontStyle = params[\"font-style\"]);\n        }\n        if (\"arrow-start\" in params) {\n            addArrow(res, params[\"arrow-start\"]);\n        }\n        if (\"arrow-end\" in params) {\n            addArrow(res, params[\"arrow-end\"], 1);\n        }\n        if (params.opacity != null ||\n            params.fill != null ||\n            params.src != null ||\n            params.stroke != null ||\n            params[\"stroke-width\"] != null ||\n            params[\"stroke-opacity\"] != null ||\n            params[\"fill-opacity\"] != null ||\n            params[\"stroke-dasharray\"] != null ||\n            params[\"stroke-miterlimit\"] != null ||\n            params[\"stroke-linejoin\"] != null ||\n            params[\"stroke-linecap\"] != null) {\n            var fill = node.getElementsByTagName(fillString),\n                newfill = false;\n            fill = fill && fill[0];\n            !fill && (newfill = fill = createNode(fillString));\n            if (o.type == \"image\" && params.src) {\n                fill.src = params.src;\n            }\n            params.fill && (fill.on = true);\n            if (fill.on == null || params.fill == \"none\" || params.fill === null) {\n                fill.on = false;\n            }\n            if (fill.on && params.fill) {\n                var isURL = Str(params.fill).match(R._ISURL);\n                if (isURL) {\n                    fill.parentNode == node && node.removeChild(fill);\n                    fill.rotate = true;\n                    fill.src = isURL[1];\n                    fill.type = \"tile\";\n                    var bbox = o.getBBox(1);\n                    fill.position = bbox.x + S + bbox.y;\n                    o._.fillpos = [bbox.x, bbox.y];\n\n                    R._preload(isURL[1], function () {\n                        o._.fillsize = [this.offsetWidth, this.offsetHeight];\n                    });\n                } else {\n                    fill.color = R.getRGB(params.fill).hex;\n                    fill.src = E;\n                    fill.type = \"solid\";\n                    if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != \"r\") && addGradientFill(res, params.fill, fill)) {\n                        a.fill = \"none\";\n                        a.gradient = params.fill;\n                        fill.rotate = false;\n                    }\n                }\n            }\n            if (\"fill-opacity\" in params || \"opacity\" in params) {\n                var opacity = ((+a[\"fill-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\n                opacity = mmin(mmax(opacity, 0), 1);\n                fill.opacity = opacity;\n                if (fill.src) {\n                    fill.color = \"none\";\n                }\n            }\n            node.appendChild(fill);\n            var stroke = (node.getElementsByTagName(\"stroke\") && node.getElementsByTagName(\"stroke\")[0]),\n            newstroke = false;\n            !stroke && (newstroke = stroke = createNode(\"stroke\"));\n            if ((params.stroke && params.stroke != \"none\") ||\n                params[\"stroke-width\"] ||\n                params[\"stroke-opacity\"] != null ||\n                params[\"stroke-dasharray\"] ||\n                params[\"stroke-miterlimit\"] ||\n                params[\"stroke-linejoin\"] ||\n                params[\"stroke-linecap\"]) {\n                stroke.on = true;\n            }\n            (params.stroke == \"none\" || params.stroke === null || stroke.on == null || params.stroke == 0 || params[\"stroke-width\"] == 0) && (stroke.on = false);\n            var strokeColor = R.getRGB(params.stroke);\n            stroke.on && params.stroke && (stroke.color = strokeColor.hex);\n            opacity = ((+a[\"stroke-opacity\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\n            var width = (toFloat(params[\"stroke-width\"]) || 1) * .75;\n            opacity = mmin(mmax(opacity, 0), 1);\n            params[\"stroke-width\"] == null && (width = a[\"stroke-width\"]);\n            params[\"stroke-width\"] && (stroke.weight = width);\n            width && width < 1 && (opacity *= width) && (stroke.weight = 1);\n            stroke.opacity = opacity;\n\n            params[\"stroke-linejoin\"] && (stroke.joinstyle = params[\"stroke-linejoin\"] || \"miter\");\n            stroke.miterlimit = params[\"stroke-miterlimit\"] || 8;\n            params[\"stroke-linecap\"] && (stroke.endcap = params[\"stroke-linecap\"] == \"butt\" ? \"flat\" : params[\"stroke-linecap\"] == \"square\" ? \"square\" : \"round\");\n            if (\"stroke-dasharray\" in params) {\n                var dasharray = {\n                    \"-\": \"shortdash\",\n                    \".\": \"shortdot\",\n                    \"-.\": \"shortdashdot\",\n                    \"-..\": \"shortdashdotdot\",\n                    \". \": \"dot\",\n                    \"- \": \"dash\",\n                    \"--\": \"longdash\",\n                    \"- .\": \"dashdot\",\n                    \"--.\": \"longdashdot\",\n                    \"--..\": \"longdashdotdot\"\n                };\n                stroke.dashstyle = dasharray[has](params[\"stroke-dasharray\"]) ? dasharray[params[\"stroke-dasharray\"]] : E;\n            }\n            newstroke && node.appendChild(stroke);\n        }\n        if (res.type == \"text\") {\n            res.paper.canvas.style.display = E;\n            var span = res.paper.span,\n                m = 100,\n                fontSize = a.font && a.font.match(/\\d+(?:\\.\\d*)?(?=px)/);\n            s = span.style;\n            a.font && (s.font = a.font);\n            a[\"font-family\"] && (s.fontFamily = a[\"font-family\"]);\n            a[\"font-weight\"] && (s.fontWeight = a[\"font-weight\"]);\n            a[\"font-style\"] && (s.fontStyle = a[\"font-style\"]);\n            fontSize = toFloat(a[\"font-size\"] || fontSize && fontSize[0]) || 10;\n            s.fontSize = fontSize * m + \"px\";\n            res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, \"&#60;\").replace(/&/g, \"&#38;\").replace(/\\n/g, \"<br>\"));\n            var brect = span.getBoundingClientRect();\n            res.W = a.w = (brect.right - brect.left) / m;\n            res.H = a.h = (brect.bottom - brect.top) / m;\n            // res.paper.canvas.style.display = \"none\";\n            res.X = a.x;\n            res.Y = a.y + res.H / 2;\n\n            (\"x\" in params || \"y\" in params) && (res.path.v = R.format(\"m{0},{1}l{2},{1}\", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\n            var dirtyattrs = [\"x\", \"y\", \"text\", \"font\", \"font-family\", \"font-weight\", \"font-style\", \"font-size\"];\n            for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\n                res._.dirty = 1;\n                break;\n            }\n\n            // text-anchor emulation\n            switch (a[\"text-anchor\"]) {\n                case \"start\":\n                    res.textpath.style[\"v-text-align\"] = \"left\";\n                    res.bbx = res.W / 2;\n                break;\n                case \"end\":\n                    res.textpath.style[\"v-text-align\"] = \"right\";\n                    res.bbx = -res.W / 2;\n                break;\n                default:\n                    res.textpath.style[\"v-text-align\"] = \"center\";\n                    res.bbx = 0;\n                break;\n            }\n            res.textpath.style[\"v-text-kern\"] = true;\n        }\n        // res.paper.canvas.style.display = E;\n    },\n    addGradientFill = function (o, gradient, fill) {\n        o.attrs = o.attrs || {};\n        var attrs = o.attrs,\n            pow = Math.pow,\n            opacity,\n            oindex,\n            type = \"linear\",\n            fxfy = \".5 .5\";\n        o.attrs.gradient = gradient;\n        gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\n            type = \"radial\";\n            if (fx && fy) {\n                fx = toFloat(fx);\n                fy = toFloat(fy);\n                pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\n                fxfy = fx + S + fy;\n            }\n            return E;\n        });\n        gradient = gradient.split(/\\s*\\-\\s*/);\n        if (type == \"linear\") {\n            var angle = gradient.shift();\n            angle = -toFloat(angle);\n            if (isNaN(angle)) {\n                return null;\n            }\n        }\n        var dots = R._parseDots(gradient);\n        if (!dots) {\n            return null;\n        }\n        o = o.shape || o.node;\n        if (dots.length) {\n            o.removeChild(fill);\n            fill.on = true;\n            fill.method = \"none\";\n            fill.color = dots[0].color;\n            fill.color2 = dots[dots.length - 1].color;\n            var clrs = [];\n            for (var i = 0, ii = dots.length; i < ii; i++) {\n                dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\n            }\n            fill.colors = clrs.length ? clrs.join() : \"0% \" + fill.color;\n            if (type == \"radial\") {\n                fill.type = \"gradientTitle\";\n                fill.focus = \"100%\";\n                fill.focussize = \"0 0\";\n                fill.focusposition = fxfy;\n                fill.angle = 0;\n            } else {\n                // fill.rotate= true;\n                fill.type = \"gradient\";\n                fill.angle = (270 - angle) % 360;\n            }\n            o.appendChild(fill);\n        }\n        return 1;\n    },\n    Element = function (node, vml) {\n        this[0] = this.node = node;\n        node.raphael = true;\n        this.id = R._oid++;\n        node.raphaelid = this.id;\n        this.X = 0;\n        this.Y = 0;\n        this.attrs = {};\n        this.paper = vml;\n        this.matrix = R.matrix();\n        this._ = {\n            transform: [],\n            sx: 1,\n            sy: 1,\n            dx: 0,\n            dy: 0,\n            deg: 0,\n            dirty: 1,\n            dirtyT: 1\n        };\n        !vml.bottom && (vml.bottom = this);\n        this.prev = vml.top;\n        vml.top && (vml.top.next = this);\n        vml.top = this;\n        this.next = null;\n    };\n    var elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n    elproto.transform = function (tstr) {\n        if (tstr == null) {\n            return this._.transform;\n        }\n        var vbs = this.paper._viewBoxShift,\n            vbt = vbs ? \"s\" + [vbs.scale, vbs.scale] + \"-1-1t\" + [vbs.dx, vbs.dy] : E,\n            oldt;\n        if (vbs) {\n            oldt = tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, this._.transform || E);\n        }\n        R._extractTransform(this, vbt + tstr);\n        var matrix = this.matrix.clone(),\n            skew = this.skew,\n            o = this.node,\n            split,\n            isGrad = ~Str(this.attrs.fill).indexOf(\"-\"),\n            isPatt = !Str(this.attrs.fill).indexOf(\"url(\");\n        matrix.translate(1, 1);\n        if (isPatt || isGrad || this.type == \"image\") {\n            skew.matrix = \"1 0 0 1\";\n            skew.offset = \"0 0\";\n            split = matrix.split();\n            if ((isGrad && split.noRotation) || !split.isSimple) {\n                o.style.filter = matrix.toFilter();\n                var bb = this.getBBox(),\n                    bbt = this.getBBox(1),\n                    dx = bb.x - bbt.x,\n                    dy = bb.y - bbt.y;\n                o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\n                setCoords(this, 1, 1, dx, dy, 0);\n            } else {\n                o.style.filter = E;\n                setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\n            }\n        } else {\n            o.style.filter = E;\n            skew.matrix = Str(matrix);\n            skew.offset = matrix.offset();\n        }\n        if (oldt !== null) { // empty string value is true as well\n            this._.transform = oldt;\n            R._extractTransform(this, oldt);\n        }\n        return this;\n    };\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        if (deg == null) {\n            return;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this._.dirtyT = 1;\n        this.transform(this._.transform.concat([[\"r\", deg, cx, cy]]));\n        return this;\n    };\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        if (this._.bbox) {\n            this._.bbox.x += dx;\n            this._.bbox.y += dy;\n        }\n        this.transform(this._.transform.concat([[\"t\", dx, dy]]));\n        return this;\n    };\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n            isNaN(cx) && (cx = null);\n            isNaN(cy) && (cy = null);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n\n        this.transform(this._.transform.concat([[\"s\", sx, sy, cx, cy]]));\n        this._.dirtyT = 1;\n        return this;\n    };\n    elproto.hide = function () {\n        !this.removed && (this.node.style.display = \"none\");\n        return this;\n    };\n    elproto.show = function () {\n        !this.removed && (this.node.style.display = E);\n        return this;\n    };\n    // Needed to fix the vml setViewBox issues\n    elproto.auxGetBBox = R.el.getBBox;\n    elproto.getBBox = function(){\n      var b = this.auxGetBBox();\n      if (this.paper && this.paper._viewBoxShift)\n      {\n        var c = {};\n        var z = 1/this.paper._viewBoxShift.scale;\n        c.x = b.x - this.paper._viewBoxShift.dx;\n        c.x *= z;\n        c.y = b.y - this.paper._viewBoxShift.dy;\n        c.y *= z;\n        c.width  = b.width  * z;\n        c.height = b.height * z;\n        c.x2 = c.x + c.width;\n        c.y2 = c.y + c.height;\n        return c;\n      }\n      return b;\n    };\n    elproto._getBBox = function () {\n        if (this.removed) {\n            return {};\n        }\n        return {\n            x: this.X + (this.bbx || 0) - this.W / 2,\n            y: this.Y - this.H,\n            width: this.W,\n            height: this.H\n        };\n    };\n    elproto.remove = function () {\n        if (this.removed || !this.node.parentNode) {\n            return;\n        }\n        this.paper.__set__ && this.paper.__set__.exclude(this);\n        R.eve.unbind(\"raphael.*.*.\" + this.id);\n        R._tear(this, this.paper);\n        this.node.parentNode.removeChild(this.node);\n        this.shape && this.shape.parentNode.removeChild(this.shape);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == \"none\" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, \"string\")) {\n            if (name == fillString && this.attrs.fill == \"none\" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], \"function\")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (this.attrs && value == null && R.is(name, \"array\")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        var params;\n        if (value != null) {\n            params = {};\n            params[name] = value;\n        }\n        value == null && R.is(name, \"object\") && (params = name);\n        for (var key in params) {\n            eve(\"raphael.attr.\" + key + \".\" + this.id, this, params[key]);\n        }\n        if (params) {\n            for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \"function\")) {\n                var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n                this.attrs[key] = params[key];\n                for (var subkey in par) if (par[has](subkey)) {\n                    params[subkey] = par[subkey];\n                }\n            }\n            // this.paper.canvas.style.display = \"none\";\n            if (params.text && this.type == \"text\") {\n                this.textpath.string = params.text;\n            }\n            setFillAndStroke(this, params);\n            // this.paper.canvas.style.display = E;\n        }\n        return this;\n    };\n    elproto.toFront = function () {\n        !this.removed && this.node.parentNode.appendChild(this.node);\n        this.paper && this.paper.top != this && R._tofront(this, this.paper);\n        return this;\n    };\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        if (this.node.parentNode.firstChild != this.node) {\n            this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\n            R._toback(this, this.paper);\n        }\n        return this;\n    };\n    elproto.insertAfter = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[element.length - 1];\n        }\n        if (element.node.nextSibling) {\n            element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\n        } else {\n            element.node.parentNode.appendChild(this.node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    elproto.insertBefore = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[0];\n        }\n        element.node.parentNode.insertBefore(this.node, element.node);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        var s = this.node.runtimeStyle,\n            f = s.filter;\n        f = f.replace(blurregexp, E);\n        if (+size !== 0) {\n            this.attrs.blur = size;\n            s.filter = f + S + ms + \".Blur(pixelradius=\" + (+size || 1.5) + \")\";\n            s.margin = R.format(\"-{0}px 0 0 -{0}px\", round(+size || 1.5));\n        } else {\n            s.filter = f;\n            s.margin = 0;\n            delete this.attrs.blur;\n        }\n        return this;\n    };\n\n    R._engine.path = function (pathString, vml) {\n        var el = createNode(\"shape\");\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = vml.coordorigin;\n        var p = new Element(el, vml),\n            attr = {fill: \"none\", stroke: \"#000\"};\n        pathString && (attr.path = pathString);\n        p.type = \"path\";\n        p.path = [];\n        p.Path = E;\n        setFillAndStroke(p, attr);\n        vml.canvas && vml.canvas.appendChild(el);\n        var skew = createNode(\"skew\");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.rect = function (vml, x, y, w, h, r) {\n        var path = R._rectPath(x, y, w, h, r),\n            res = vml.path(path),\n            a = res.attrs;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.r = r;\n        a.path = path;\n        res.type = \"rect\";\n        return res;\n    };\n    R._engine.ellipse = function (vml, x, y, rx, ry) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - rx;\n        res.Y = y - ry;\n        res.W = rx * 2;\n        res.H = ry * 2;\n        res.type = \"ellipse\";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            rx: rx,\n            ry: ry\n        });\n        return res;\n    };\n    R._engine.circle = function (vml, x, y, r) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - r;\n        res.Y = y - r;\n        res.W = res.H = r * 2;\n        res.type = \"circle\";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            r: r\n        });\n        return res;\n    };\n    R._engine.image = function (vml, src, x, y, w, h) {\n        var path = R._rectPath(x, y, w, h),\n            res = vml.path(path).attr({stroke: \"none\"}),\n            a = res.attrs,\n            node = res.node,\n            fill = node.getElementsByTagName(fillString)[0];\n        a.src = src;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.path = path;\n        res.type = \"image\";\n        fill.parentNode == node && node.removeChild(fill);\n        fill.rotate = true;\n        fill.src = src;\n        fill.type = \"tile\";\n        res._.fillpos = [x, y];\n        res._.fillsize = [w, h];\n        node.appendChild(fill);\n        setCoords(res, 1, 1, 0, 0, 0);\n        return res;\n    };\n    R._engine.text = function (vml, x, y, text) {\n        var el = createNode(\"shape\"),\n            path = createNode(\"path\"),\n            o = createNode(\"textpath\");\n        x = x || 0;\n        y = y || 0;\n        text = text || \"\";\n        path.v = R.format(\"m{0},{1}l{2},{1}\", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\n        path.textpathok = true;\n        o.string = Str(text);\n        o.on = true;\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = \"0 0\";\n        var p = new Element(el, vml),\n            attr = {\n                fill: \"#000\",\n                stroke: \"none\",\n                font: R._availableAttrs.font,\n                text: text\n            };\n        p.shape = el;\n        p.path = path;\n        p.textpath = o;\n        p.type = \"text\";\n        p.attrs.text = Str(text);\n        p.attrs.x = x;\n        p.attrs.y = y;\n        p.attrs.w = 1;\n        p.attrs.h = 1;\n        setFillAndStroke(p, attr);\n        el.appendChild(o);\n        el.appendChild(path);\n        vml.canvas.appendChild(el);\n        var skew = createNode(\"skew\");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.setSize = function (width, height) {\n        var cs = this.canvas.style;\n        this.width = width;\n        this.height = height;\n        width == +width && (width += \"px\");\n        height == +height && (height += \"px\");\n        cs.width = width;\n        cs.height = height;\n        cs.clip = \"rect(0 \" + width + \" \" + height + \" 0)\";\n        if (this._viewBox) {\n            R._engine.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        R.eve(\"raphael.setViewBox\", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            width = paperSize.width,\n            height = paperSize.height,\n            H, W;\n        if (fit) {\n            H = height / h;\n            W = width / w;\n            if (w * H < width) {\n                x -= (width - w * H) / 2 / H;\n            }\n            if (h * W < height) {\n                y -= (height - h * W) / 2 / W;\n            }\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        this._viewBoxShift = {\n            dx: -x,\n            dy: -y,\n            scale: paperSize\n        };\n        this.forEach(function (el) {\n            el.transform(\"...\");\n        });\n        return this;\n    };\n    var createNode;\n    R._engine.initWin = function (win) {\n            var doc = win.document;\n            if (doc.styleSheets.length < 31) {\n                doc.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n            } else {\n                // no more room, add to the existing one\n                // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n                doc.styleSheets[0].addRule(\".rvml\", \"behavior:url(#default#VML)\");\n            }\n            try {\n                !doc.namespaces.rvml && doc.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n                createNode = function (tagName) {\n                    return doc.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n                };\n            } catch (e) {\n                createNode = function (tagName) {\n                    return doc.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n                };\n            }\n        };\n    R._engine.initWin(R._g.win);\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con.container,\n            height = con.height,\n            s,\n            width = con.width,\n            x = con.x,\n            y = con.y;\n        if (!container) {\n            throw new Error(\"VML container not found.\");\n        }\n        var res = new R._Paper,\n            c = res.canvas = R._g.doc.createElement(\"div\"),\n            cs = c.style;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        res.width = width;\n        res.height = height;\n        width == +width && (width += \"px\");\n        height == +height && (height += \"px\");\n        res.coordsize = zoom * 1e3 + S + zoom * 1e3;\n        res.coordorigin = \"0 0\";\n        res.span = R._g.doc.createElement(\"span\");\n        res.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\";\n        c.appendChild(res.span);\n        cs.cssText = R.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\", width, height);\n        if (container == 1) {\n            R._g.doc.body.appendChild(c);\n            cs.left = x + \"px\";\n            cs.top = y + \"px\";\n            cs.position = \"absolute\";\n        } else {\n            if (container.firstChild) {\n                container.insertBefore(c, container.firstChild);\n            } else {\n                container.appendChild(c);\n            }\n        }\n        res.renderfix = function () {};\n        return res;\n    };\n    R.prototype.clear = function () {\n        R.eve(\"raphael.clear\", this);\n        this.canvas.innerHTML = E;\n        this.span = R._g.doc.createElement(\"span\");\n        this.span.style.cssText = \"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\";\n        this.canvas.appendChild(this.span);\n        this.bottom = this.top = null;\n    };\n    R.prototype.remove = function () {\n        R.eve(\"raphael.remove\", this);\n        this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == \"function\" ? R._removedFactory(i) : null;\n        }\n        return true;\n    };\n\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n\n/***/ \"eve\":\n/*!**********************!*\\\n  !*** external \"eve\" ***!\n  \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_eve__;\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/css/select2.css",
    "content": ".select2-container {\n  box-sizing: border-box;\n  display: inline-block;\n  margin: 0;\n  position: relative;\n  vertical-align: middle; }\n  .select2-container .select2-selection--single {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    height: 28px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--single .select2-selection__rendered {\n      display: block;\n      padding-left: 8px;\n      padding-right: 20px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n    .select2-container .select2-selection--single .select2-selection__clear {\n      position: relative; }\n  .select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n    padding-right: 8px;\n    padding-left: 20px; }\n  .select2-container .select2-selection--multiple {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    min-height: 32px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--multiple .select2-selection__rendered {\n      display: inline-block;\n      overflow: hidden;\n      padding-left: 8px;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n  .select2-container .select2-search--inline {\n    float: left; }\n    .select2-container .select2-search--inline .select2-search__field {\n      box-sizing: border-box;\n      border: none;\n      font-size: 100%;\n      margin-top: 5px;\n      padding: 0; }\n      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\n        -webkit-appearance: none; }\n\n.select2-dropdown {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  box-sizing: border-box;\n  display: block;\n  position: absolute;\n  left: -100000px;\n  width: 100%;\n  z-index: 1051; }\n\n.select2-results {\n  display: block; }\n\n.select2-results__options {\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n\n.select2-results__option {\n  padding: 6px;\n  user-select: none;\n  -webkit-user-select: none; }\n  .select2-results__option[aria-selected] {\n    cursor: pointer; }\n\n.select2-container--open .select2-dropdown {\n  left: 0; }\n\n.select2-container--open .select2-dropdown--above {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--open .select2-dropdown--below {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-search--dropdown {\n  display: block;\n  padding: 4px; }\n  .select2-search--dropdown .select2-search__field {\n    padding: 4px;\n    width: 100%;\n    box-sizing: border-box; }\n    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\n      -webkit-appearance: none; }\n  .select2-search--dropdown.select2-search--hide {\n    display: none; }\n\n.select2-close-mask {\n  border: 0;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: fixed;\n  left: 0;\n  top: 0;\n  min-height: 100%;\n  min-width: 100%;\n  height: auto;\n  width: auto;\n  opacity: 0;\n  z-index: 99;\n  background-color: #fff;\n  filter: alpha(opacity=0); }\n\n.select2-hidden-accessible {\n  border: 0 !important;\n  clip: rect(0 0 0 0) !important;\n  -webkit-clip-path: inset(50%) !important;\n  clip-path: inset(50%) !important;\n  height: 1px !important;\n  overflow: hidden !important;\n  padding: 0 !important;\n  position: absolute !important;\n  width: 1px !important;\n  white-space: nowrap !important; }\n\n.select2-container--default .select2-selection--single {\n  background-color: #fff;\n  border: 1px solid #aaa;\n  border-radius: 4px; }\n  .select2-container--default .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--default .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold; }\n  .select2-container--default .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px; }\n    .select2-container--default .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  left: 1px;\n  right: auto; }\n\n.select2-container--default.select2-container--disabled .select2-selection--single {\n  background-color: #eee;\n  cursor: default; }\n  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\n    display: none; }\n\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\n  border-color: transparent transparent #888 transparent;\n  border-width: 0 4px 5px 4px; }\n\n.select2-container--default .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text; }\n  .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n    box-sizing: border-box;\n    list-style: none;\n    margin: 0;\n    padding: 0 5px;\n    width: 100%; }\n    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n      list-style: none; }\n  .select2-container--default .select2-selection--multiple .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-top: 5px;\n    margin-right: 10px;\n    padding: 1px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n    color: #999;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #333; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-search--inline {\n  float: right; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border: solid black 1px;\n  outline: 0; }\n\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\n  background-color: #eee;\n  cursor: default; }\n\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n  display: none; }\n\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--default .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa; }\n\n.select2-container--default .select2-search--inline .select2-search__field {\n  background: transparent;\n  border: none;\n  outline: 0;\n  box-shadow: none;\n  -webkit-appearance: textfield; }\n\n.select2-container--default .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--default .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--default .select2-results__option[aria-disabled=true] {\n  color: #999; }\n\n.select2-container--default .select2-results__option[aria-selected=true] {\n  background-color: #ddd; }\n\n.select2-container--default .select2-results__option .select2-results__option {\n  padding-left: 1em; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n    padding-left: 0; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n    margin-left: -1em;\n    padding-left: 2em; }\n    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n      margin-left: -2em;\n      padding-left: 3em; }\n      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n        margin-left: -3em;\n        padding-left: 4em; }\n        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n          margin-left: -4em;\n          padding-left: 5em; }\n          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n            margin-left: -5em;\n            padding-left: 6em; }\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n  background-color: #5897fb;\n  color: white; }\n\n.select2-container--default .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic .select2-selection--single {\n  background-color: #f7f7f7;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  outline: 0;\n  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n  .select2-container--classic .select2-selection--single:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--classic .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-right: 10px; }\n  .select2-container--classic .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--classic .select2-selection--single .select2-selection__arrow {\n    background-color: #ddd;\n    border: none;\n    border-left: 1px solid #aaa;\n    border-top-right-radius: 4px;\n    border-bottom-right-radius: 4px;\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px;\n    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\n    .select2-container--classic .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  border: none;\n  border-right: 1px solid #aaa;\n  border-radius: 0;\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n  left: 1px;\n  right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--single {\n  border: 1px solid #5897fb; }\n  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\n    background: transparent;\n    border: none; }\n    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\n      border-color: transparent transparent #888 transparent;\n      border-width: 0 4px 5px 4px; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\n\n.select2-container--classic .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text;\n  outline: 0; }\n  .select2-container--classic .select2-selection--multiple:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\n    list-style: none;\n    margin: 0;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__clear {\n    display: none; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\n    color: #888;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #555; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  float: right;\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--multiple {\n  border: 1px solid #5897fb; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--classic .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa;\n  outline: 0; }\n\n.select2-container--classic .select2-search--inline .select2-search__field {\n  outline: 0;\n  box-shadow: none; }\n\n.select2-container--classic .select2-dropdown {\n  background-color: white;\n  border: 1px solid transparent; }\n\n.select2-container--classic .select2-dropdown--above {\n  border-bottom: none; }\n\n.select2-container--classic .select2-dropdown--below {\n  border-top: none; }\n\n.select2-container--classic .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--classic .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--classic .select2-results__option[aria-disabled=true] {\n  color: grey; }\n\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\n  background-color: #3875d7;\n  color: white; }\n\n.select2-container--classic .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic.select2-container--open .select2-dropdown {\n  border-color: #5897fb; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/af.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/af\",[],function(){return{errorLoading:function(){return\"Die resultate kon nie gelaai word nie.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Verwyders asseblief \"+n+\" character\";return 1!=n&&(r+=\"s\"),r},inputTooShort:function(e){return\"Voer asseblief \"+(e.minimum-e.input.length)+\" of meer karakters\"},loadingMore:function(){return\"Meer resultate word gelaai…\"},maximumSelected:function(e){var n=\"Kies asseblief net \"+e.maximum+\" item\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"Geen resultate gevind\"},searching:function(){return\"Besig…\"},removeAllItems:function(){return\"Verwyder alle items\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ar.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ar\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(n){return\"الرجاء حذف \"+(n.input.length-n.maximum)+\" عناصر\"},inputTooShort:function(n){return\"الرجاء إضافة \"+(n.minimum-n.input.length)+\" عناصر\"},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(n){return\"تستطيع إختيار \"+n.maximum+\" بنود فقط\"},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"},removeAllItems:function(){return\"قم بإزالة كل العناصر\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/az.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/az\",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+\" simvol silin\"},inputTooShort:function(n){return n.minimum-n.input.length+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(n){return\"Sadəcə \"+n.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"},removeAllItems:function(){return\"Bütün elementləri sil\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/bg.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/bg\",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"Моля въведете с \"+e+\" по-малко символ\";return e>1&&(u+=\"a\"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u=\"Моля въведете още \"+e+\" символ\";return e>1&&(u+=\"a\"),u},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(n){var e=\"Можете да направите до \"+n.maximum+\" \";return n.maximum>1?e+=\"избора\":e+=\"избор\",e},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"},removeAllItems:function(){return\"Премахнете всички елементи\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/bn.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/bn\",[],function(){return{errorLoading:function(){return\"ফলাফলগুলি লোড করা যায়নি।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"অনুগ্রহ করে \"+e+\" টি অক্ষর মুছে দিন।\";return 1!=e&&(u=\"অনুগ্রহ করে \"+e+\" টি অক্ষর মুছে দিন।\"),u},inputTooShort:function(n){return n.minimum-n.input.length+\" টি অক্ষর অথবা অধিক অক্ষর লিখুন।\"},loadingMore:function(){return\"আরো ফলাফল লোড হচ্ছে ...\"},maximumSelected:function(n){var e=n.maximum+\" টি আইটেম নির্বাচন করতে পারবেন।\";return 1!=n.maximum&&(e=n.maximum+\" টি আইটেম নির্বাচন করতে পারবেন।\"),e},noResults:function(){return\"কোন ফলাফল পাওয়া যায়নি।\"},searching:function(){return\"অনুসন্ধান করা হচ্ছে ...\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/bs.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/bs\",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return\"Preuzimanje nije uspijelo.\"},inputTooLong:function(n){var r=n.input.length-n.maximum,t=\"Obrišite \"+r+\" simbol\";return t+=e(r,\"\",\"a\",\"a\")},inputTooShort:function(n){var r=n.minimum-n.input.length,t=\"Ukucajte bar još \"+r+\" simbol\";return t+=e(r,\"\",\"a\",\"a\")},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(n){var r=\"Možete izabrati samo \"+n.maximum+\" stavk\";return r+=e(n.maximum,\"u\",\"e\",\"i\")},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Uklonite sve stavke\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/build.txt",
    "content": "\naf.js\n----------------\naf.js\n\nar.js\n----------------\nar.js\n\naz.js\n----------------\naz.js\n\nbg.js\n----------------\nbg.js\n\nbn.js\n----------------\nbn.js\n\nbs.js\n----------------\nbs.js\n\nca.js\n----------------\nca.js\n\ncs.js\n----------------\ncs.js\n\nda.js\n----------------\nda.js\n\nde.js\n----------------\nde.js\n\ndsb.js\n----------------\ndsb.js\n\nel.js\n----------------\nel.js\n\nen.js\n----------------\nen.js\n\nes.js\n----------------\nes.js\n\net.js\n----------------\net.js\n\neu.js\n----------------\neu.js\n\nfa.js\n----------------\nfa.js\n\nfi.js\n----------------\nfi.js\n\nfr.js\n----------------\nfr.js\n\ngl.js\n----------------\ngl.js\n\nhe.js\n----------------\nhe.js\n\nhi.js\n----------------\nhi.js\n\nhr.js\n----------------\nhr.js\n\nhsb.js\n----------------\nhsb.js\n\nhu.js\n----------------\nhu.js\n\nhy.js\n----------------\nhy.js\n\nid.js\n----------------\nid.js\n\nis.js\n----------------\nis.js\n\nit.js\n----------------\nit.js\n\nja.js\n----------------\nja.js\n\nka.js\n----------------\nka.js\n\nkm.js\n----------------\nkm.js\n\nko.js\n----------------\nko.js\n\nlt.js\n----------------\nlt.js\n\nlv.js\n----------------\nlv.js\n\nmk.js\n----------------\nmk.js\n\nms.js\n----------------\nms.js\n\nnb.js\n----------------\nnb.js\n\nne.js\n----------------\nne.js\n\nnl.js\n----------------\nnl.js\n\npl.js\n----------------\npl.js\n\nps.js\n----------------\nps.js\n\npt-BR.js\n----------------\npt-BR.js\n\npt.js\n----------------\npt.js\n\nro.js\n----------------\nro.js\n\nru.js\n----------------\nru.js\n\nsk.js\n----------------\nsk.js\n\nsl.js\n----------------\nsl.js\n\nsq.js\n----------------\nsq.js\n\nsr-Cyrl.js\n----------------\nsr-Cyrl.js\n\nsr.js\n----------------\nsr.js\n\nsv.js\n----------------\nsv.js\n\nth.js\n----------------\nth.js\n\ntk.js\n----------------\ntk.js\n\ntr.js\n----------------\ntr.js\n\nuk.js\n----------------\nuk.js\n\nvi.js\n----------------\nvi.js\n\nzh-CN.js\n----------------\nzh-CN.js\n\nzh-TW.js\n----------------\nzh-TW.js\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ca.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/ca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Si us plau, elimina \"+n+\" car\";return r+=1==n?\"àcter\":\"àcters\"},inputTooShort:function(e){var n=e.minimum-e.input.length,r=\"Si us plau, introdueix \"+n+\" car\";return r+=1==n?\"àcter\":\"àcters\"},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var n=\"Només es pot seleccionar \"+e.maximum+\" element\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"},removeAllItems:function(){return\"Treu tots els elements\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/cs.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/cs\",[],function(){function e(e,n){switch(e){case 2:return n?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?\"Prosím, zadejte o jeden znak méně.\":t<=4?\"Prosím, zadejte o \"+e(t,!0)+\" znaky méně.\":\"Prosím, zadejte o \"+t+\" znaků méně.\"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?\"Prosím, zadejte ještě jeden znak.\":t<=4?\"Prosím, zadejte ještě další \"+e(t,!0)+\" znaky.\":\"Prosím, zadejte ještě dalších \"+t+\" znaků.\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(n){var t=n.maximum;return 1==t?\"Můžete zvolit jen jednu položku.\":t<=4?\"Můžete zvolit maximálně \"+e(t,!1)+\" položky.\":\"Můžete zvolit maximálně \"+t+\" položek.\"},noResults:function(){return\"Nenalezeny žádné položky.\"},searching:function(){return\"Vyhledávání…\"},removeAllItems:function(){return\"Odstraňte všechny položky\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/da.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/da\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){return\"Angiv venligst \"+(e.input.length-e.maximum)+\" tegn mindre\"},inputTooShort:function(e){return\"Angiv venligst \"+(e.minimum-e.input.length)+\" tegn mere\"},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var n=\"Du kan kun vælge \"+e.maximum+\" emne\";return 1!=e.maximum&&(n+=\"r\"),n},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"},removeAllItems:function(){return\"Fjern alle elementer\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/de.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/de\",[],function(){return{errorLoading:function(){return\"Die Ergebnisse konnten nicht geladen werden.\"},inputTooLong:function(e){return\"Bitte \"+(e.input.length-e.maximum)+\" Zeichen weniger eingeben\"},inputTooShort:function(e){return\"Bitte \"+(e.minimum-e.input.length)+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var n=\"Sie können nur \"+e.maximum+\" Element\";return 1!=e.maximum&&(n+=\"e\"),n+=\" auswählen\"},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"},removeAllItems:function(){return\"Entferne alle Elemente\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/dsb.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/dsb\",[],function(){var n=[\"znamuško\",\"znamušce\",\"znamuška\",\"znamuškow\"],e=[\"zapisk\",\"zapiska\",\"zapiski\",\"zapiskow\"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return\"Wuslědki njejsu se dali zacytaś.\"},inputTooLong:function(e){var a=e.input.length-e.maximum;return\"Pšosym lašuj \"+a+\" \"+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return\"Pšosym zapódaj nanejmjenjej \"+a+\" \"+u(a,n)},loadingMore:function(){return\"Dalšne wuslědki se zacytaju…\"},maximumSelected:function(n){return\"Móžoš jano \"+n.maximum+\" \"+u(n.maximum,e)+\"wubraś.\"},noResults:function(){return\"Žedne wuslědki namakane\"},searching:function(){return\"Pyta se…\"},removeAllItems:function(){return\"Remove all items\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/el.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/el\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"Παρακαλώ διαγράψτε \"+e+\" χαρακτήρ\";return 1==e&&(u+=\"α\"),1!=e&&(u+=\"ες\"),u},inputTooShort:function(n){return\"Παρακαλώ συμπληρώστε \"+(n.minimum-n.input.length)+\" ή περισσότερους χαρακτήρες\"},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(n){var e=\"Μπορείτε να επιλέξετε μόνο \"+n.maximum+\" επιλογ\";return 1==n.maximum&&(e+=\"ή\"),1!=n.maximum&&(e+=\"ές\"),e},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"},removeAllItems:function(){return\"Καταργήστε όλα τα στοιχεία\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/en.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Please delete \"+n+\" character\";return 1!=n&&(r+=\"s\"),r},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var n=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"},removeAllItems:function(){return\"Remove all items\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/es.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/es\",[],function(){return{errorLoading:function(){return\"No se pudieron cargar los resultados\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Por favor, elimine \"+n+\" car\";return r+=1==n?\"ácter\":\"acteres\"},inputTooShort:function(e){var n=e.minimum-e.input.length,r=\"Por favor, introduzca \"+n+\" car\";return r+=1==n?\"ácter\":\"acteres\"},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var n=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Eliminar todos los elementos\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/et.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/et\",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Sisesta \"+n+\" täht\";return 1!=n&&(t+=\"e\"),t+=\" vähem\"},inputTooShort:function(e){var n=e.minimum-e.input.length,t=\"Sisesta \"+n+\" täht\";return 1!=n&&(t+=\"e\"),t+=\" rohkem\"},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var n=\"Saad vaid \"+e.maximum+\" tulemus\";return 1==e.maximum?n+=\"e\":n+=\"t\",n+=\" valida\"},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"},removeAllItems:function(){return\"Eemalda kõik esemed\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/eu.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/eu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return n+=1==t?\"karaktere bat\":t+\" karaktere\",n+=\" gutxiago\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return n+=1==t?\"karaktere bat\":t+\" karaktere\",n+=\" gehiago\"},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return 1===e.maximum?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"},removeAllItems:function(){return\"Kendu elementu guztiak\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/fa.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/fa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(n){return\"لطفاً \"+(n.input.length-n.maximum)+\" کاراکتر را حذف نمایید\"},inputTooShort:function(n){return\"لطفاً تعداد \"+(n.minimum-n.input.length)+\" کاراکتر یا بیشتر وارد نمایید\"},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(n){return\"شما تنها می‌توانید \"+n.maximum+\" آیتم را انتخاب نمایید\"},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"},removeAllItems:function(){return\"همه موارد را حذف کنید\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/fi.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/fi\",[],function(){return{errorLoading:function(){return\"Tuloksia ei saatu ladattua.\"},inputTooLong:function(n){return\"Ole hyvä ja anna \"+(n.input.length-n.maximum)+\" merkkiä vähemmän\"},inputTooShort:function(n){return\"Ole hyvä ja anna \"+(n.minimum-n.input.length)+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(n){return\"Voit valita ainoastaan \"+n.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){return\"Haetaan…\"},removeAllItems:function(){return\"Poista kaikki kohteet\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/fr.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/fr\",[],function(){return{errorLoading:function(){return\"Les résultats ne peuvent pas être chargés.\"},inputTooLong:function(e){var n=e.input.length-e.maximum;return\"Supprimez \"+n+\" caractère\"+(n>1?\"s\":\"\")},inputTooShort:function(e){var n=e.minimum-e.input.length;return\"Saisissez au moins \"+n+\" caractère\"+(n>1?\"s\":\"\")},loadingMore:function(){return\"Chargement de résultats supplémentaires…\"},maximumSelected:function(e){return\"Vous pouvez seulement sélectionner \"+e.maximum+\" élément\"+(e.maximum>1?\"s\":\"\")},noResults:function(){return\"Aucun résultat trouvé\"},searching:function(){return\"Recherche en cours…\"},removeAllItems:function(){return\"Supprimer tous les éléments\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/gl.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/gl\",[],function(){return{errorLoading:function(){return\"Non foi posíbel cargar os resultados.\"},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?\"Elimine un carácter\":\"Elimine \"+n+\" caracteres\"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?\"Engada un carácter\":\"Engada \"+n+\" caracteres\"},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){return 1===e.maximum?\"Só pode seleccionar un elemento\":\"Só pode seleccionar \"+e.maximum+\" elementos\"},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Elimina todos os elementos\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/he.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/he\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=\"נא למחוק \";return r+=1===e?\"תו אחד\":e+\" תווים\"},inputTooShort:function(n){var e=n.minimum-n.input.length,r=\"נא להכניס \";return r+=1===e?\"תו אחד\":e+\" תווים\",r+=\" או יותר\"},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(n){var e=\"באפשרותך לבחור עד \";return 1===n.maximum?e+=\"פריט אחד\":e+=n.maximum+\" פריטים\",e},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"},removeAllItems:function(){return\"הסר את כל הפריטים\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/hi.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+\" अक्षर को हटा दें\";return e>1&&(r=e+\" अक्षरों को हटा दें \"),r},inputTooShort:function(n){return\"कृपया \"+(n.minimum-n.input.length)+\" या अधिक अक्षर दर्ज करें\"},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(n){return\"आप केवल \"+n.maximum+\" आइटम का चयन कर सकते हैं\"},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"},removeAllItems:function(){return\"सभी वस्तुओं को हटा दें\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/hr.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hr\",[],function(){function n(n){var e=\" \"+n+\" znak\";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+=\"a\"):e+=\"ova\",e}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(e){return\"Unesite \"+n(e.input.length-e.maximum)},inputTooShort:function(e){return\"Unesite još \"+n(e.minimum-e.input.length)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(n){return\"Maksimalan broj odabranih stavki je \"+n.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Ukloni sve stavke\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/hsb.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hsb\",[],function(){var n=[\"znamješko\",\"znamješce\",\"znamješka\",\"znamješkow\"],e=[\"zapisk\",\"zapiskaj\",\"zapiski\",\"zapiskow\"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return\"Wuslědki njedachu so začitać.\"},inputTooLong:function(e){var a=e.input.length-e.maximum;return\"Prošu zhašej \"+a+\" \"+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return\"Prošu zapodaj znajmjeńša \"+a+\" \"+u(a,n)},loadingMore:function(){return\"Dalše wuslědki so začitaja…\"},maximumSelected:function(n){return\"Móžeš jenož \"+n.maximum+\" \"+u(n.maximum,e)+\"wubrać\"},noResults:function(){return\"Žane wuslědki namakane\"},searching:function(){return\"Pyta so…\"},removeAllItems:function(){return\"Remove all items\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/hu.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/hu\",[],function(){return{errorLoading:function(){return\"Az eredmények betöltése nem sikerült.\"},inputTooLong:function(e){return\"Túl hosszú. \"+(e.input.length-e.maximum)+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){return\"Túl rövid. Még \"+(e.minimum-e.input.length)+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"},removeAllItems:function(){return\"Távolítson el minden elemet\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/hy.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hy\",[],function(){return{errorLoading:function(){return\"Արդյունքները հնարավոր չէ բեռնել։\"},inputTooLong:function(n){return\"Խնդրում ենք հեռացնել \"+(n.input.length-n.maximum)+\" նշան\"},inputTooShort:function(n){return\"Խնդրում ենք մուտքագրել \"+(n.minimum-n.input.length)+\" կամ ավել նշաններ\"},loadingMore:function(){return\"Բեռնվում են նոր արդյունքներ․․․\"},maximumSelected:function(n){return\"Դուք կարող եք ընտրել առավելագույնը \"+n.maximum+\" կետ\"},noResults:function(){return\"Արդյունքներ չեն գտնվել\"},searching:function(){return\"Որոնում․․․\"},removeAllItems:function(){return\"Հեռացնել բոլոր տարրերը\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/id.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/id\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(n){return\"Hapuskan \"+(n.input.length-n.maximum)+\" huruf\"},inputTooShort:function(n){return\"Masukkan \"+(n.minimum-n.input.length)+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(n){return\"Anda hanya dapat memilih \"+n.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"},removeAllItems:function(){return\"Hapus semua item\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/is.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/is\",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t<=1?e:e+\"i\"},inputTooShort:function(n){var t=n.minimum-n.input.length,e=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(e+=\"i\"),e+=\" í viðbót\"},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(n){return\"Þú getur aðeins valið \"+n.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"},removeAllItems:function(){return\"Fjarlægðu öll atriði\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/it.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/it\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Per favore cancella \"+n+\" caratter\";return t+=1!==n?\"i\":\"e\"},inputTooShort:function(e){return\"Per favore inserisci \"+(e.minimum-e.input.length)+\" o più caratteri\"},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var n=\"Puoi selezionare solo \"+e.maximum+\" element\";return 1!==e.maximum?n+=\"i\":n+=\"o\",n},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"},removeAllItems:function(){return\"Rimuovi tutti gli oggetti\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ja.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(n){return n.input.length-n.maximum+\" 文字を削除してください\"},inputTooShort:function(n){return\"少なくとも \"+(n.minimum-n.input.length)+\" 文字を入力してください\"},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(n){return n.maximum+\" 件しか選択できません\"},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"},removeAllItems:function(){return\"すべてのアイテムを削除\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ka.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ka\",[],function(){return{errorLoading:function(){return\"მონაცემების ჩატვირთვა შეუძლებელია.\"},inputTooLong:function(n){return\"გთხოვთ აკრიფეთ \"+(n.input.length-n.maximum)+\" სიმბოლოთი ნაკლები\"},inputTooShort:function(n){return\"გთხოვთ აკრიფეთ \"+(n.minimum-n.input.length)+\" სიმბოლო ან მეტი\"},loadingMore:function(){return\"მონაცემების ჩატვირთვა…\"},maximumSelected:function(n){return\"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს \"+n.maximum+\" ელემენტი\"},noResults:function(){return\"რეზულტატი არ მოიძებნა\"},searching:function(){return\"ძიება…\"},removeAllItems:function(){return\"ამოიღე ყველა ელემენტი\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/km.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/km\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(n){return\"សូមលុបចេញ  \"+(n.input.length-n.maximum)+\" អក្សរ\"},inputTooShort:function(n){return\"សូមបញ្ចូល\"+(n.minimum-n.input.length)+\" អក្សរ រឺ ច្រើនជាងនេះ\"},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(n){return\"អ្នកអាចជ្រើសរើសបានតែ \"+n.maximum+\" ជម្រើសប៉ុណ្ណោះ\"},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"},removeAllItems:function(){return\"លុបធាតុទាំងអស់\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ko.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(n){return\"너무 깁니다. \"+(n.input.length-n.maximum)+\" 글자 지워주세요.\"},inputTooShort:function(n){return\"너무 짧습니다. \"+(n.minimum-n.input.length)+\" 글자 더 입력해주세요.\"},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(n){return\"최대 \"+n.maximum+\"개까지만 선택 가능합니다.\"},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"},removeAllItems:function(){return\"모든 항목 삭제\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/lt.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/lt\",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t=\"Pašalinkite \"+i+\" simbol\";return t+=n(i,\"į\",\"ius\",\"ių\")},inputTooShort:function(e){var i=e.minimum-e.input.length,t=\"Įrašykite dar \"+i+\" simbol\";return t+=n(i,\"į\",\"ius\",\"ių\")},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(e){var i=\"Jūs galite pasirinkti tik \"+e.maximum+\" element\";return i+=n(e.maximum,\"ą\",\"us\",\"ų\")},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"},removeAllItems:function(){return\"Pašalinti visus elementus\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/lv.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/lv\",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i=\"Lūdzu ievadiet par  \"+u;return(i+=\" simbol\"+e(u,\"iem\",\"u\",\"iem\"))+\" mazāk\"},inputTooShort:function(n){var u=n.minimum-n.input.length,i=\"Lūdzu ievadiet vēl \"+u;return i+=\" simbol\"+e(u,\"us\",\"u\",\"us\")},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(n){var u=\"Jūs varat izvēlēties ne vairāk kā \"+n.maximum;return u+=\" element\"+e(n.maximum,\"us\",\"u\",\"us\")},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"},removeAllItems:function(){return\"Noņemt visus vienumus\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/mk.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/mk\",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,\"Ве молиме внесете \"+n.maximum+\" помалку карактер\");return 1!==n.maximum&&(e+=\"и\"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,\"Ве молиме внесете уште \"+n.maximum+\" карактер\");return 1!==n.maximum&&(e+=\"и\"),e},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(n){var e=\"Можете да изберете само \"+n.maximum+\" ставк\";return 1===n.maximum?e+=\"а\":e+=\"и\",e},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"},removeAllItems:function(){return\"Отстрани ги сите предмети\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ms.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(n){return\"Sila hapuskan \"+(n.input.length-n.maximum)+\" aksara\"},inputTooShort:function(n){return\"Sila masukkan \"+(n.minimum-n.input.length)+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(n){return\"Anda hanya boleh memilih \"+n.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"},removeAllItems:function(){return\"Keluarkan semua item\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/nb.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/nb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){return\"Vennligst fjern \"+(e.input.length-e.maximum)+\" tegn\"},inputTooShort:function(e){return\"Vennligst skriv inn \"+(e.minimum-e.input.length)+\" tegn til\"},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"},removeAllItems:function(){return\"Fjern alle elementer\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ne.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ne\",[],function(){return{errorLoading:function(){return\"नतिजाहरु देखाउन सकिएन।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"कृपया \"+e+\" अक्षर मेटाउनुहोस्।\";return 1!=e&&(u+=\"कृपया \"+e+\" अक्षरहरु मेटाउनुहोस्।\"),u},inputTooShort:function(n){return\"कृपया बाँकी रहेका \"+(n.minimum-n.input.length)+\" वा अरु धेरै अक्षरहरु भर्नुहोस्।\"},loadingMore:function(){return\"अरु नतिजाहरु भरिँदैछन् …\"},maximumSelected:function(n){var e=\"तँपाई \"+n.maximum+\" वस्तु मात्र छान्न पाउँनुहुन्छ।\";return 1!=n.maximum&&(e=\"तँपाई \"+n.maximum+\" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।\"),e},noResults:function(){return\"कुनै पनि नतिजा भेटिएन।\"},searching:function(){return\"खोजि हुँदैछ…\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/nl.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/nl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){return\"Gelieve \"+(e.input.length-e.maximum)+\" karakters te verwijderen\"},inputTooShort:function(e){return\"Gelieve \"+(e.minimum-e.input.length)+\" of meer karakters in te voeren\"},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var n=1==e.maximum?\"kan\":\"kunnen\",r=\"Er \"+n+\" maar \"+e.maximum+\" item\";return 1!=e.maximum&&(r+=\"s\"),r+=\" worden geselecteerd\"},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"},removeAllItems:function(){return\"Verwijder alle items\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/pl.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/pl\",[],function(){var n=[\"znak\",\"znaki\",\"znaków\"],e=[\"element\",\"elementy\",\"elementów\"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Usuń \"+t+\" \"+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Podaj przynajmniej \"+t+\" \"+r(t,n)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(n){return\"Możesz zaznaczyć tylko \"+n.maximum+\" \"+r(n.maximum,e)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"},removeAllItems:function(){return\"Usuń wszystkie przedmioty\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ps.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ps\",[],function(){return{errorLoading:function(){return\"پايلي نه سي ترلاسه کېدای\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=\"د مهربانۍ لمخي \"+e+\" توری ړنګ کړئ\";return 1!=e&&(r=r.replace(\"توری\",\"توري\")),r},inputTooShort:function(n){return\"لږ تر لږه \"+(n.minimum-n.input.length)+\" يا ډېر توري وليکئ\"},loadingMore:function(){return\"نوري پايلي ترلاسه کيږي...\"},maximumSelected:function(n){var e=\"تاسو يوازي \"+n.maximum+\" قلم په نښه کولای سی\";return 1!=n.maximum&&(e=e.replace(\"قلم\",\"قلمونه\")),e},noResults:function(){return\"پايلي و نه موندل سوې\"},searching:function(){return\"لټول کيږي...\"},removeAllItems:function(){return\"ټول توکي لرې کړئ\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/pt-BR.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/pt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Apague \"+n+\" caracter\";return 1!=n&&(r+=\"es\"),r},inputTooShort:function(e){return\"Digite \"+(e.minimum-e.input.length)+\" ou mais caracteres\"},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var n=\"Você só pode selecionar \"+e.maximum+\" ite\";return 1==e.maximum?n+=\"m\":n+=\"ns\",n},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Remover todos os itens\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/pt.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/pt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,n=\"Por favor apague \"+r+\" \";return n+=1!=r?\"caracteres\":\"caractere\"},inputTooShort:function(e){return\"Introduza \"+(e.minimum-e.input.length)+\" ou mais caracteres\"},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var r=\"Apenas pode seleccionar \"+e.maximum+\" \";return r+=1!=e.maximum?\"itens\":\"item\"},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"},removeAllItems:function(){return\"Remover todos os itens\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ro.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/ro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return 1!==t&&(n+=\"e\"),n},inputTooShort:function(e){return\"Vă rugăm să introduceți \"+(e.minimum-e.input.length)+\" sau mai multe caractere\"},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",1!==e.maximum&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"},removeAllItems:function(){return\"Eliminați toate elementele\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/ru.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ru\",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(e){var r=e.input.length-e.maximum,u=\"Пожалуйста, введите на \"+r+\" символ\";return u+=n(r,\"\",\"a\",\"ов\"),u+=\" меньше\"},inputTooShort:function(e){var r=e.minimum-e.input.length,u=\"Пожалуйста, введите ещё хотя бы \"+r+\" символ\";return u+=n(r,\"\",\"a\",\"ов\")},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(e){var r=\"Вы можете выбрать не более \"+e.maximum+\" элемент\";return r+=n(e.maximum,\"\",\"a\",\"ов\")},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"},removeAllItems:function(){return\"Удалить все элементы\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sk.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{errorLoading:function(){return\"Výsledky sa nepodarilo načítať.\"},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?\"Prosím, zadajte o jeden znak menej\":t>=2&&t<=4?\"Prosím, zadajte o \"+e[t](!0)+\" znaky menej\":\"Prosím, zadajte o \"+t+\" znakov menej\"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?\"Prosím, zadajte ešte jeden znak\":t<=4?\"Prosím, zadajte ešte ďalšie \"+e[t](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+t+\" znakov\"},loadingMore:function(){return\"Načítanie ďalších výsledkov…\"},maximumSelected:function(n){return 1==n.maximum?\"Môžete zvoliť len jednu položku\":n.maximum>=2&&n.maximum<=4?\"Môžete zvoliť najviac \"+e[n.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+n.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"},removeAllItems:function(){return\"Odstráňte všetky položky\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sl.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sl\",[],function(){return{errorLoading:function(){return\"Zadetkov iskanja ni bilo mogoče naložiti.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Prosim zbrišite \"+n+\" znak\";return 2==n?t+=\"a\":1!=n&&(t+=\"e\"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t=\"Prosim vpišite še \"+n+\" znak\";return 2==n?t+=\"a\":1!=n&&(t+=\"e\"),t},loadingMore:function(){return\"Nalagam več zadetkov…\"},maximumSelected:function(e){var n=\"Označite lahko največ \"+e.maximum+\" predmet\";return 2==e.maximum?n+=\"a\":1!=e.maximum&&(n+=\"e\"),n},noResults:function(){return\"Ni zadetkov.\"},searching:function(){return\"Iščem…\"},removeAllItems:function(){return\"Odstranite vse elemente\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sq.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sq\",[],function(){return{errorLoading:function(){return\"Rezultatet nuk mund të ngarkoheshin.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Të lutem fshi \"+n+\" karakter\";return 1!=n&&(t+=\"e\"),t},inputTooShort:function(e){return\"Të lutem shkruaj \"+(e.minimum-e.input.length)+\" ose më shumë karaktere\"},loadingMore:function(){return\"Duke ngarkuar më shumë rezultate…\"},maximumSelected:function(e){var n=\"Mund të zgjedhësh vetëm \"+e.maximum+\" element\";return 1!=e.maximum&&(n+=\"e\"),n},noResults:function(){return\"Nuk u gjet asnjë rezultat\"},searching:function(){return\"Duke kërkuar…\"},removeAllItems:function(){return\"Hiq të gjitha sendet\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sr-Cyrl.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sr-Cyrl\",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,u=\"Обришите \"+r+\" симбол\";return u+=n(r,\"\",\"а\",\"а\")},inputTooShort:function(e){var r=e.minimum-e.input.length,u=\"Укуцајте бар још \"+r+\" симбол\";return u+=n(r,\"\",\"а\",\"а\")},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(e){var r=\"Можете изабрати само \"+e.maximum+\" ставк\";return r+=n(e.maximum,\"у\",\"е\",\"и\")},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"},removeAllItems:function(){return\"Уклоните све ставке\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sr.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sr\",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,t=\"Obrišite \"+r+\" simbol\";return t+=n(r,\"\",\"a\",\"a\")},inputTooShort:function(e){var r=e.minimum-e.input.length,t=\"Ukucajte bar još \"+r+\" simbol\";return t+=n(r,\"\",\"a\",\"a\")},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(e){var r=\"Možete izabrati samo \"+e.maximum+\" stavk\";return r+=n(e.maximum,\"u\",\"e\",\"i\")},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Уклоните све ставке\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/sv.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(n){return\"Vänligen sudda ut \"+(n.input.length-n.maximum)+\" tecken\"},inputTooShort:function(n){return\"Vänligen skriv in \"+(n.minimum-n.input.length)+\" eller fler tecken\"},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(n){return\"Du kan max välja \"+n.maximum+\" element\"},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"},removeAllItems:function(){return\"Ta bort alla objekt\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/th.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/th\",[],function(){return{errorLoading:function(){return\"ไม่สามารถค้นข้อมูลได้\"},inputTooLong:function(n){return\"โปรดลบออก \"+(n.input.length-n.maximum)+\" ตัวอักษร\"},inputTooShort:function(n){return\"โปรดพิมพ์เพิ่มอีก \"+(n.minimum-n.input.length)+\" ตัวอักษร\"},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(n){return\"คุณสามารถเลือกได้ไม่เกิน \"+n.maximum+\" รายการ\"},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"},removeAllItems:function(){return\"ลบรายการทั้งหมด\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/tk.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/tk\",[],function(){return{errorLoading:function(){return\"Netije ýüklenmedi.\"},inputTooLong:function(e){return e.input.length-e.maximum+\" harp bozuň.\"},inputTooShort:function(e){return\"Ýene-de iň az \"+(e.minimum-e.input.length)+\" harp ýazyň.\"},loadingMore:function(){return\"Köpräk netije görkezilýär…\"},maximumSelected:function(e){return\"Diňe \"+e.maximum+\" sanysyny saýlaň.\"},noResults:function(){return\"Netije tapylmady.\"},searching:function(){return\"Gözlenýär…\"},removeAllItems:function(){return\"Remove all items\"}}}),e.define,e.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/tr.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/tr\",[],function(){return{errorLoading:function(){return\"Sonuç yüklenemedi\"},inputTooLong:function(n){return n.input.length-n.maximum+\" karakter daha girmelisiniz\"},inputTooShort:function(n){return\"En az \"+(n.minimum-n.input.length)+\" karakter daha girmelisiniz\"},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(n){return\"Sadece \"+n.maximum+\" seçim yapabilirsiniz\"},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"},removeAllItems:function(){return\"Tüm öğeleri kaldır\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/uk.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/uk\",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(e){return\"Будь ласка, видаліть \"+(e.input.length-e.maximum)+\" \"+n(e.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(n){return\"Будь ласка, введіть \"+(n.minimum-n.input.length)+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(e){return\"Ви можете вибрати лише \"+e.maximum+\" \"+n(e.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"},removeAllItems:function(){return\"Видалити всі елементи\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/vi.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/vi\",[],function(){return{inputTooLong:function(n){return\"Vui lòng xóa bớt \"+(n.input.length-n.maximum)+\" ký tự\"},inputTooShort:function(n){return\"Vui lòng nhập thêm từ \"+(n.minimum-n.input.length)+\" ký tự trở lên\"},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(n){return\"Chỉ có thể chọn được \"+n.maximum+\" lựa chọn\"},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"},removeAllItems:function(){return\"Xóa tất cả các mục\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/zh-CN.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/zh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(n){return\"请删除\"+(n.input.length-n.maximum)+\"个字符\"},inputTooShort:function(n){return\"请再输入至少\"+(n.minimum-n.input.length)+\"个字符\"},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(n){return\"最多只能选择\"+n.maximum+\"个项目\"},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"},removeAllItems:function(){return\"删除所有项目\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/i18n/zh-TW.js",
    "content": "/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/zh-TW\",[],function(){return{inputTooLong:function(n){return\"請刪掉\"+(n.input.length-n.maximum)+\"個字元\"},inputTooShort:function(n){return\"請再輸入\"+(n.minimum-n.input.length)+\"個字元\"},loadingMore:function(){return\"載入中…\"},maximumSelected:function(n){return\"你只能選擇最多\"+n.maximum+\"項\"},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"},removeAllItems:function(){return\"刪除所有項目\"}}}),n.define,n.require}();"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/select2.full.js",
    "content": "/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = function (root, jQuery) {\n      if (jQuery === undefined) {\n        // require('jQuery') returns a factory that requires window to\n        // build a jQuery instance, we normalize how we use modules\n        // that require this pattern but the window provided is a noop\n        // if it's defined (how jquery works)\n        if (typeof window !== 'undefined') {\n          jQuery = require('jquery');\n        }\n        else {\n          jQuery = require('jquery')(root);\n        }\n      }\n      factory(jQuery);\n      return jQuery;\n    };\n  } else {\n    // Browser globals\n    factory(jQuery);\n  }\n} (function (jQuery) {\n  // This is needed so we can catch the AMD loader configuration and use it\n  // The inner file should be wrapped (by `banner.start.js`) in a function that\n  // returns the AMD loader references.\n  var S2 =(function () {\n  // Restore the Select2 AMD loader so it can be used\n  // Needed mostly in the language files, where the loader is not inserted\n  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n    var S2 = jQuery.fn.select2.amd;\n  }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n    var main, req, makeMap, handlers,\n        defined = {},\n        waiting = {},\n        config = {},\n        defining = {},\n        hasOwn = Object.prototype.hasOwnProperty,\n        aps = [].slice,\n        jsSuffixRegExp = /\\.js$/;\n\n    function hasProp(obj, prop) {\n        return hasOwn.call(obj, prop);\n    }\n\n    /**\n     * Given a relative module name, like ./something, normalize it to\n     * a real name that can be mapped to a path.\n     * @param {String} name the relative name\n     * @param {String} baseName a real name that the name arg is relative\n     * to.\n     * @returns {String} normalized name\n     */\n    function normalize(name, baseName) {\n        var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n            foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n            baseParts = baseName && baseName.split(\"/\"),\n            map = config.map,\n            starMap = (map && map['*']) || {};\n\n        //Adjust any relative paths.\n        if (name) {\n            name = name.split('/');\n            lastIndex = name.length - 1;\n\n            // If wanting node ID compatibility, strip .js from end\n            // of IDs. Have to do this here, and not in nameToUrl\n            // because node allows either .js or non .js to map\n            // to same file.\n            if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n                name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n            }\n\n            // Starts with a '.' so need the baseName\n            if (name[0].charAt(0) === '.' && baseParts) {\n                //Convert baseName to array, and lop off the last part,\n                //so that . matches that 'directory' and not name of the baseName's\n                //module. For instance, baseName of 'one/two/three', maps to\n                //'one/two/three.js', but we want the directory, 'one/two' for\n                //this normalization.\n                normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n                name = normalizedBaseParts.concat(name);\n            }\n\n            //start trimDots\n            for (i = 0; i < name.length; i++) {\n                part = name[i];\n                if (part === '.') {\n                    name.splice(i, 1);\n                    i -= 1;\n                } else if (part === '..') {\n                    // If at the start, or previous value is still ..,\n                    // keep them so that when converted to a path it may\n                    // still work when converted to a path, even though\n                    // as an ID it is less than ideal. In larger point\n                    // releases, may be better to just kick out an error.\n                    if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n                        continue;\n                    } else if (i > 0) {\n                        name.splice(i - 1, 2);\n                        i -= 2;\n                    }\n                }\n            }\n            //end trimDots\n\n            name = name.join('/');\n        }\n\n        //Apply map config if available.\n        if ((baseParts || starMap) && map) {\n            nameParts = name.split('/');\n\n            for (i = nameParts.length; i > 0; i -= 1) {\n                nameSegment = nameParts.slice(0, i).join(\"/\");\n\n                if (baseParts) {\n                    //Find the longest baseName segment match in the config.\n                    //So, do joins on the biggest to smallest lengths of baseParts.\n                    for (j = baseParts.length; j > 0; j -= 1) {\n                        mapValue = map[baseParts.slice(0, j).join('/')];\n\n                        //baseName segment has  config, find if it has one for\n                        //this name.\n                        if (mapValue) {\n                            mapValue = mapValue[nameSegment];\n                            if (mapValue) {\n                                //Match, update name to the new value.\n                                foundMap = mapValue;\n                                foundI = i;\n                                break;\n                            }\n                        }\n                    }\n                }\n\n                if (foundMap) {\n                    break;\n                }\n\n                //Check for a star map match, but just hold on to it,\n                //if there is a shorter segment match later in a matching\n                //config, then favor over this star map.\n                if (!foundStarMap && starMap && starMap[nameSegment]) {\n                    foundStarMap = starMap[nameSegment];\n                    starI = i;\n                }\n            }\n\n            if (!foundMap && foundStarMap) {\n                foundMap = foundStarMap;\n                foundI = starI;\n            }\n\n            if (foundMap) {\n                nameParts.splice(0, foundI, foundMap);\n                name = nameParts.join('/');\n            }\n        }\n\n        return name;\n    }\n\n    function makeRequire(relName, forceSync) {\n        return function () {\n            //A version of a require function that passes a moduleName\n            //value for items that may need to\n            //look up paths relative to the moduleName\n            var args = aps.call(arguments, 0);\n\n            //If first arg is not require('string'), and there is only\n            //one arg, it is the array form without a callback. Insert\n            //a null so that the following concat is correct.\n            if (typeof args[0] !== 'string' && args.length === 1) {\n                args.push(null);\n            }\n            return req.apply(undef, args.concat([relName, forceSync]));\n        };\n    }\n\n    function makeNormalize(relName) {\n        return function (name) {\n            return normalize(name, relName);\n        };\n    }\n\n    function makeLoad(depName) {\n        return function (value) {\n            defined[depName] = value;\n        };\n    }\n\n    function callDep(name) {\n        if (hasProp(waiting, name)) {\n            var args = waiting[name];\n            delete waiting[name];\n            defining[name] = true;\n            main.apply(undef, args);\n        }\n\n        if (!hasProp(defined, name) && !hasProp(defining, name)) {\n            throw new Error('No ' + name);\n        }\n        return defined[name];\n    }\n\n    //Turns a plugin!resource to [plugin, resource]\n    //with the plugin being undefined if the name\n    //did not have a plugin prefix.\n    function splitPrefix(name) {\n        var prefix,\n            index = name ? name.indexOf('!') : -1;\n        if (index > -1) {\n            prefix = name.substring(0, index);\n            name = name.substring(index + 1, name.length);\n        }\n        return [prefix, name];\n    }\n\n    //Creates a parts array for a relName where first part is plugin ID,\n    //second part is resource ID. Assumes relName has already been normalized.\n    function makeRelParts(relName) {\n        return relName ? splitPrefix(relName) : [];\n    }\n\n    /**\n     * Makes a name map, normalizing the name, and using a plugin\n     * for normalization if necessary. Grabs a ref to plugin\n     * too, as an optimization.\n     */\n    makeMap = function (name, relParts) {\n        var plugin,\n            parts = splitPrefix(name),\n            prefix = parts[0],\n            relResourceName = relParts[1];\n\n        name = parts[1];\n\n        if (prefix) {\n            prefix = normalize(prefix, relResourceName);\n            plugin = callDep(prefix);\n        }\n\n        //Normalize according\n        if (prefix) {\n            if (plugin && plugin.normalize) {\n                name = plugin.normalize(name, makeNormalize(relResourceName));\n            } else {\n                name = normalize(name, relResourceName);\n            }\n        } else {\n            name = normalize(name, relResourceName);\n            parts = splitPrefix(name);\n            prefix = parts[0];\n            name = parts[1];\n            if (prefix) {\n                plugin = callDep(prefix);\n            }\n        }\n\n        //Using ridiculous property names for space reasons\n        return {\n            f: prefix ? prefix + '!' + name : name, //fullName\n            n: name,\n            pr: prefix,\n            p: plugin\n        };\n    };\n\n    function makeConfig(name) {\n        return function () {\n            return (config && config.config && config.config[name]) || {};\n        };\n    }\n\n    handlers = {\n        require: function (name) {\n            return makeRequire(name);\n        },\n        exports: function (name) {\n            var e = defined[name];\n            if (typeof e !== 'undefined') {\n                return e;\n            } else {\n                return (defined[name] = {});\n            }\n        },\n        module: function (name) {\n            return {\n                id: name,\n                uri: '',\n                exports: defined[name],\n                config: makeConfig(name)\n            };\n        }\n    };\n\n    main = function (name, deps, callback, relName) {\n        var cjsModule, depName, ret, map, i, relParts,\n            args = [],\n            callbackType = typeof callback,\n            usingExports;\n\n        //Use name if no relName\n        relName = relName || name;\n        relParts = makeRelParts(relName);\n\n        //Call the callback to define the module, if necessary.\n        if (callbackType === 'undefined' || callbackType === 'function') {\n            //Pull out the defined dependencies and pass the ordered\n            //values to the callback.\n            //Default to [require, exports, module] if no deps\n            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n            for (i = 0; i < deps.length; i += 1) {\n                map = makeMap(deps[i], relParts);\n                depName = map.f;\n\n                //Fast path CommonJS standard dependencies.\n                if (depName === \"require\") {\n                    args[i] = handlers.require(name);\n                } else if (depName === \"exports\") {\n                    //CommonJS module spec 1.1\n                    args[i] = handlers.exports(name);\n                    usingExports = true;\n                } else if (depName === \"module\") {\n                    //CommonJS module spec 1.1\n                    cjsModule = args[i] = handlers.module(name);\n                } else if (hasProp(defined, depName) ||\n                           hasProp(waiting, depName) ||\n                           hasProp(defining, depName)) {\n                    args[i] = callDep(depName);\n                } else if (map.p) {\n                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n                    args[i] = defined[depName];\n                } else {\n                    throw new Error(name + ' missing ' + depName);\n                }\n            }\n\n            ret = callback ? callback.apply(defined[name], args) : undefined;\n\n            if (name) {\n                //If setting exports via \"module\" is in play,\n                //favor that over return value and exports. After that,\n                //favor a non-undefined return value over exports use.\n                if (cjsModule && cjsModule.exports !== undef &&\n                        cjsModule.exports !== defined[name]) {\n                    defined[name] = cjsModule.exports;\n                } else if (ret !== undef || !usingExports) {\n                    //Use the return value from the function.\n                    defined[name] = ret;\n                }\n            }\n        } else if (name) {\n            //May just be an object definition for the module. Only\n            //worry about defining if have a module name.\n            defined[name] = callback;\n        }\n    };\n\n    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n        if (typeof deps === \"string\") {\n            if (handlers[deps]) {\n                //callback in this case is really relName\n                return handlers[deps](callback);\n            }\n            //Just return the module wanted. In this scenario, the\n            //deps arg is the module name, and second arg (if passed)\n            //is just the relName.\n            //Normalize module name, if it contains . or ..\n            return callDep(makeMap(deps, makeRelParts(callback)).f);\n        } else if (!deps.splice) {\n            //deps is a config object, not an array.\n            config = deps;\n            if (config.deps) {\n                req(config.deps, config.callback);\n            }\n            if (!callback) {\n                return;\n            }\n\n            if (callback.splice) {\n                //callback is an array, which means it is a dependency list.\n                //Adjust args if there are dependencies\n                deps = callback;\n                callback = relName;\n                relName = null;\n            } else {\n                deps = undef;\n            }\n        }\n\n        //Support require(['a'])\n        callback = callback || function () {};\n\n        //If relName is a function, it is an errback handler,\n        //so remove it.\n        if (typeof relName === 'function') {\n            relName = forceSync;\n            forceSync = alt;\n        }\n\n        //Simulate async callback;\n        if (forceSync) {\n            main(undef, deps, callback, relName);\n        } else {\n            //Using a non-zero value because of concern for what old browsers\n            //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n            //If want a value immediately, use require('id') instead -- something\n            //that works in almond on the global level, but not guaranteed and\n            //unlikely to work in other AMD implementations.\n            setTimeout(function () {\n                main(undef, deps, callback, relName);\n            }, 4);\n        }\n\n        return req;\n    };\n\n    /**\n     * Just drops the config on the floor, but returns req in case\n     * the config return value is used.\n     */\n    req.config = function (cfg) {\n        return req(cfg);\n    };\n\n    /**\n     * Expose module registry for debugging and tooling\n     */\n    requirejs._defined = defined;\n\n    define = function (name, deps, callback) {\n        if (typeof name !== 'string') {\n            throw new Error('See almond README: incorrect module build, no module name');\n        }\n\n        //This module may not have dependencies\n        if (!deps.splice) {\n            //deps is not an array, so probably means\n            //an object literal or factory function for\n            //the value. Adjust args.\n            callback = deps;\n            deps = [];\n        }\n\n        if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n            waiting[name] = [name, deps, callback];\n        }\n    };\n\n    define.amd = {\n        jQuery: true\n    };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n  var _$ = jQuery || $;\n\n  if (_$ == null && console && console.error) {\n    console.error(\n      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n      'found. Make sure that you are including jQuery before Select2 on your ' +\n      'web page.'\n    );\n  }\n\n  return _$;\n});\n\nS2.define('select2/utils',[\n  'jquery'\n], function ($) {\n  var Utils = {};\n\n  Utils.Extend = function (ChildClass, SuperClass) {\n    var __hasProp = {}.hasOwnProperty;\n\n    function BaseConstructor () {\n      this.constructor = ChildClass;\n    }\n\n    for (var key in SuperClass) {\n      if (__hasProp.call(SuperClass, key)) {\n        ChildClass[key] = SuperClass[key];\n      }\n    }\n\n    BaseConstructor.prototype = SuperClass.prototype;\n    ChildClass.prototype = new BaseConstructor();\n    ChildClass.__super__ = SuperClass.prototype;\n\n    return ChildClass;\n  };\n\n  function getMethods (theClass) {\n    var proto = theClass.prototype;\n\n    var methods = [];\n\n    for (var methodName in proto) {\n      var m = proto[methodName];\n\n      if (typeof m !== 'function') {\n        continue;\n      }\n\n      if (methodName === 'constructor') {\n        continue;\n      }\n\n      methods.push(methodName);\n    }\n\n    return methods;\n  }\n\n  Utils.Decorate = function (SuperClass, DecoratorClass) {\n    var decoratedMethods = getMethods(DecoratorClass);\n    var superMethods = getMethods(SuperClass);\n\n    function DecoratedClass () {\n      var unshift = Array.prototype.unshift;\n\n      var argCount = DecoratorClass.prototype.constructor.length;\n\n      var calledConstructor = SuperClass.prototype.constructor;\n\n      if (argCount > 0) {\n        unshift.call(arguments, SuperClass.prototype.constructor);\n\n        calledConstructor = DecoratorClass.prototype.constructor;\n      }\n\n      calledConstructor.apply(this, arguments);\n    }\n\n    DecoratorClass.displayName = SuperClass.displayName;\n\n    function ctr () {\n      this.constructor = DecoratedClass;\n    }\n\n    DecoratedClass.prototype = new ctr();\n\n    for (var m = 0; m < superMethods.length; m++) {\n      var superMethod = superMethods[m];\n\n      DecoratedClass.prototype[superMethod] =\n        SuperClass.prototype[superMethod];\n    }\n\n    var calledMethod = function (methodName) {\n      // Stub out the original method if it's not decorating an actual method\n      var originalMethod = function () {};\n\n      if (methodName in DecoratedClass.prototype) {\n        originalMethod = DecoratedClass.prototype[methodName];\n      }\n\n      var decoratedMethod = DecoratorClass.prototype[methodName];\n\n      return function () {\n        var unshift = Array.prototype.unshift;\n\n        unshift.call(arguments, originalMethod);\n\n        return decoratedMethod.apply(this, arguments);\n      };\n    };\n\n    for (var d = 0; d < decoratedMethods.length; d++) {\n      var decoratedMethod = decoratedMethods[d];\n\n      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n    }\n\n    return DecoratedClass;\n  };\n\n  var Observable = function () {\n    this.listeners = {};\n  };\n\n  Observable.prototype.on = function (event, callback) {\n    this.listeners = this.listeners || {};\n\n    if (event in this.listeners) {\n      this.listeners[event].push(callback);\n    } else {\n      this.listeners[event] = [callback];\n    }\n  };\n\n  Observable.prototype.trigger = function (event) {\n    var slice = Array.prototype.slice;\n    var params = slice.call(arguments, 1);\n\n    this.listeners = this.listeners || {};\n\n    // Params should always come in as an array\n    if (params == null) {\n      params = [];\n    }\n\n    // If there are no arguments to the event, use a temporary object\n    if (params.length === 0) {\n      params.push({});\n    }\n\n    // Set the `_type` of the first object to the event\n    params[0]._type = event;\n\n    if (event in this.listeners) {\n      this.invoke(this.listeners[event], slice.call(arguments, 1));\n    }\n\n    if ('*' in this.listeners) {\n      this.invoke(this.listeners['*'], arguments);\n    }\n  };\n\n  Observable.prototype.invoke = function (listeners, params) {\n    for (var i = 0, len = listeners.length; i < len; i++) {\n      listeners[i].apply(this, params);\n    }\n  };\n\n  Utils.Observable = Observable;\n\n  Utils.generateChars = function (length) {\n    var chars = '';\n\n    for (var i = 0; i < length; i++) {\n      var randomChar = Math.floor(Math.random() * 36);\n      chars += randomChar.toString(36);\n    }\n\n    return chars;\n  };\n\n  Utils.bind = function (func, context) {\n    return function () {\n      func.apply(context, arguments);\n    };\n  };\n\n  Utils._convertData = function (data) {\n    for (var originalKey in data) {\n      var keys = originalKey.split('-');\n\n      var dataLevel = data;\n\n      if (keys.length === 1) {\n        continue;\n      }\n\n      for (var k = 0; k < keys.length; k++) {\n        var key = keys[k];\n\n        // Lowercase the first letter\n        // By default, dash-separated becomes camelCase\n        key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n        if (!(key in dataLevel)) {\n          dataLevel[key] = {};\n        }\n\n        if (k == keys.length - 1) {\n          dataLevel[key] = data[originalKey];\n        }\n\n        dataLevel = dataLevel[key];\n      }\n\n      delete data[originalKey];\n    }\n\n    return data;\n  };\n\n  Utils.hasScroll = function (index, el) {\n    // Adapted from the function created by @ShadowScripter\n    // and adapted by @BillBarry on the Stack Exchange Code Review website.\n    // The original code can be found at\n    // http://codereview.stackexchange.com/q/13338\n    // and was designed to be used with the Sizzle selector engine.\n\n    var $el = $(el);\n    var overflowX = el.style.overflowX;\n    var overflowY = el.style.overflowY;\n\n    //Check both x and y declarations\n    if (overflowX === overflowY &&\n        (overflowY === 'hidden' || overflowY === 'visible')) {\n      return false;\n    }\n\n    if (overflowX === 'scroll' || overflowY === 'scroll') {\n      return true;\n    }\n\n    return ($el.innerHeight() < el.scrollHeight ||\n      $el.innerWidth() < el.scrollWidth);\n  };\n\n  Utils.escapeMarkup = function (markup) {\n    var replaceMap = {\n      '\\\\': '&#92;',\n      '&': '&amp;',\n      '<': '&lt;',\n      '>': '&gt;',\n      '\"': '&quot;',\n      '\\'': '&#39;',\n      '/': '&#47;'\n    };\n\n    // Do not try to escape the markup if it's not a string\n    if (typeof markup !== 'string') {\n      return markup;\n    }\n\n    return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n      return replaceMap[match];\n    });\n  };\n\n  // Append an array of jQuery nodes to a given element.\n  Utils.appendMany = function ($element, $nodes) {\n    // jQuery 1.7.x does not support $.fn.append() with an array\n    // Fall back to a jQuery object collection using $.fn.add()\n    if ($.fn.jquery.substr(0, 3) === '1.7') {\n      var $jqNodes = $();\n\n      $.map($nodes, function (node) {\n        $jqNodes = $jqNodes.add(node);\n      });\n\n      $nodes = $jqNodes;\n    }\n\n    $element.append($nodes);\n  };\n\n  // Cache objects in Utils.__cache instead of $.data (see #4346)\n  Utils.__cache = {};\n\n  var id = 0;\n  Utils.GetUniqueElementId = function (element) {\n    // Get a unique element Id. If element has no id,\n    // creates a new unique number, stores it in the id\n    // attribute and returns the new id.\n    // If an id already exists, it simply returns it.\n\n    var select2Id = element.getAttribute('data-select2-id');\n    if (select2Id == null) {\n      // If element has id, use it.\n      if (element.id) {\n        select2Id = element.id;\n        element.setAttribute('data-select2-id', select2Id);\n      } else {\n        element.setAttribute('data-select2-id', ++id);\n        select2Id = id.toString();\n      }\n    }\n    return select2Id;\n  };\n\n  Utils.StoreData = function (element, name, value) {\n    // Stores an item in the cache for a specified element.\n    // name is the cache key.\n    var id = Utils.GetUniqueElementId(element);\n    if (!Utils.__cache[id]) {\n      Utils.__cache[id] = {};\n    }\n\n    Utils.__cache[id][name] = value;\n  };\n\n  Utils.GetData = function (element, name) {\n    // Retrieves a value from the cache by its key (name)\n    // name is optional. If no name specified, return\n    // all cache items for the specified element.\n    // and for a specified element.\n    var id = Utils.GetUniqueElementId(element);\n    if (name) {\n      if (Utils.__cache[id]) {\n        if (Utils.__cache[id][name] != null) {\n          return Utils.__cache[id][name];\n        }\n        return $(element).data(name); // Fallback to HTML5 data attribs.\n      }\n      return $(element).data(name); // Fallback to HTML5 data attribs.\n    } else {\n      return Utils.__cache[id];\n    }\n  };\n\n  Utils.RemoveData = function (element) {\n    // Removes all cached items for a specified element.\n    var id = Utils.GetUniqueElementId(element);\n    if (Utils.__cache[id] != null) {\n      delete Utils.__cache[id];\n    }\n\n    element.removeAttribute('data-select2-id');\n  };\n\n  return Utils;\n});\n\nS2.define('select2/results',[\n  'jquery',\n  './utils'\n], function ($, Utils) {\n  function Results ($element, options, dataAdapter) {\n    this.$element = $element;\n    this.data = dataAdapter;\n    this.options = options;\n\n    Results.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(Results, Utils.Observable);\n\n  Results.prototype.render = function () {\n    var $results = $(\n      '<ul class=\"select2-results__options\" role=\"listbox\"></ul>'\n    );\n\n    if (this.options.get('multiple')) {\n      $results.attr('aria-multiselectable', 'true');\n    }\n\n    this.$results = $results;\n\n    return $results;\n  };\n\n  Results.prototype.clear = function () {\n    this.$results.empty();\n  };\n\n  Results.prototype.displayMessage = function (params) {\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    this.clear();\n    this.hideLoading();\n\n    var $message = $(\n      '<li role=\"alert\" aria-live=\"assertive\"' +\n      ' class=\"select2-results__option\"></li>'\n    );\n\n    var message = this.options.get('translations').get(params.message);\n\n    $message.append(\n      escapeMarkup(\n        message(params.args)\n      )\n    );\n\n    $message[0].className += ' select2-results__message';\n\n    this.$results.append($message);\n  };\n\n  Results.prototype.hideMessages = function () {\n    this.$results.find('.select2-results__message').remove();\n  };\n\n  Results.prototype.append = function (data) {\n    this.hideLoading();\n\n    var $options = [];\n\n    if (data.results == null || data.results.length === 0) {\n      if (this.$results.children().length === 0) {\n        this.trigger('results:message', {\n          message: 'noResults'\n        });\n      }\n\n      return;\n    }\n\n    data.results = this.sort(data.results);\n\n    for (var d = 0; d < data.results.length; d++) {\n      var item = data.results[d];\n\n      var $option = this.option(item);\n\n      $options.push($option);\n    }\n\n    this.$results.append($options);\n  };\n\n  Results.prototype.position = function ($results, $dropdown) {\n    var $resultsContainer = $dropdown.find('.select2-results');\n    $resultsContainer.append($results);\n  };\n\n  Results.prototype.sort = function (data) {\n    var sorter = this.options.get('sorter');\n\n    return sorter(data);\n  };\n\n  Results.prototype.highlightFirstItem = function () {\n    var $options = this.$results\n      .find('.select2-results__option[aria-selected]');\n\n    var $selected = $options.filter('[aria-selected=true]');\n\n    // Check if there are any selected options\n    if ($selected.length > 0) {\n      // If there are selected options, highlight the first\n      $selected.first().trigger('mouseenter');\n    } else {\n      // If there are no selected options, highlight the first option\n      // in the dropdown\n      $options.first().trigger('mouseenter');\n    }\n\n    this.ensureHighlightVisible();\n  };\n\n  Results.prototype.setClasses = function () {\n    var self = this;\n\n    this.data.current(function (selected) {\n      var selectedIds = $.map(selected, function (s) {\n        return s.id.toString();\n      });\n\n      var $options = self.$results\n        .find('.select2-results__option[aria-selected]');\n\n      $options.each(function () {\n        var $option = $(this);\n\n        var item = Utils.GetData(this, 'data');\n\n        // id needs to be converted to a string when comparing\n        var id = '' + item.id;\n\n        if ((item.element != null && item.element.selected) ||\n            (item.element == null && $.inArray(id, selectedIds) > -1)) {\n          $option.attr('aria-selected', 'true');\n        } else {\n          $option.attr('aria-selected', 'false');\n        }\n      });\n\n    });\n  };\n\n  Results.prototype.showLoading = function (params) {\n    this.hideLoading();\n\n    var loadingMore = this.options.get('translations').get('searching');\n\n    var loading = {\n      disabled: true,\n      loading: true,\n      text: loadingMore(params)\n    };\n    var $loading = this.option(loading);\n    $loading.className += ' loading-results';\n\n    this.$results.prepend($loading);\n  };\n\n  Results.prototype.hideLoading = function () {\n    this.$results.find('.loading-results').remove();\n  };\n\n  Results.prototype.option = function (data) {\n    var option = document.createElement('li');\n    option.className = 'select2-results__option';\n\n    var attrs = {\n      'role': 'option',\n      'aria-selected': 'false'\n    };\n\n    var matches = window.Element.prototype.matches ||\n      window.Element.prototype.msMatchesSelector ||\n      window.Element.prototype.webkitMatchesSelector;\n\n    if ((data.element != null && matches.call(data.element, ':disabled')) ||\n        (data.element == null && data.disabled)) {\n      delete attrs['aria-selected'];\n      attrs['aria-disabled'] = 'true';\n    }\n\n    if (data.id == null) {\n      delete attrs['aria-selected'];\n    }\n\n    if (data._resultId != null) {\n      option.id = data._resultId;\n    }\n\n    if (data.title) {\n      option.title = data.title;\n    }\n\n    if (data.children) {\n      attrs.role = 'group';\n      attrs['aria-label'] = data.text;\n      delete attrs['aria-selected'];\n    }\n\n    for (var attr in attrs) {\n      var val = attrs[attr];\n\n      option.setAttribute(attr, val);\n    }\n\n    if (data.children) {\n      var $option = $(option);\n\n      var label = document.createElement('strong');\n      label.className = 'select2-results__group';\n\n      var $label = $(label);\n      this.template(data, label);\n\n      var $children = [];\n\n      for (var c = 0; c < data.children.length; c++) {\n        var child = data.children[c];\n\n        var $child = this.option(child);\n\n        $children.push($child);\n      }\n\n      var $childrenContainer = $('<ul></ul>', {\n        'class': 'select2-results__options select2-results__options--nested'\n      });\n\n      $childrenContainer.append($children);\n\n      $option.append(label);\n      $option.append($childrenContainer);\n    } else {\n      this.template(data, option);\n    }\n\n    Utils.StoreData(option, 'data', data);\n\n    return option;\n  };\n\n  Results.prototype.bind = function (container, $container) {\n    var self = this;\n\n    var id = container.id + '-results';\n\n    this.$results.attr('id', id);\n\n    container.on('results:all', function (params) {\n      self.clear();\n      self.append(params.data);\n\n      if (container.isOpen()) {\n        self.setClasses();\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('results:append', function (params) {\n      self.append(params.data);\n\n      if (container.isOpen()) {\n        self.setClasses();\n      }\n    });\n\n    container.on('query', function (params) {\n      self.hideMessages();\n      self.showLoading(params);\n    });\n\n    container.on('select', function () {\n      if (!container.isOpen()) {\n        return;\n      }\n\n      self.setClasses();\n\n      if (self.options.get('scrollAfterSelect')) {\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('unselect', function () {\n      if (!container.isOpen()) {\n        return;\n      }\n\n      self.setClasses();\n\n      if (self.options.get('scrollAfterSelect')) {\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('open', function () {\n      // When the dropdown is open, aria-expended=\"true\"\n      self.$results.attr('aria-expanded', 'true');\n      self.$results.attr('aria-hidden', 'false');\n\n      self.setClasses();\n      self.ensureHighlightVisible();\n    });\n\n    container.on('close', function () {\n      // When the dropdown is closed, aria-expended=\"false\"\n      self.$results.attr('aria-expanded', 'false');\n      self.$results.attr('aria-hidden', 'true');\n      self.$results.removeAttr('aria-activedescendant');\n    });\n\n    container.on('results:toggle', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      if ($highlighted.length === 0) {\n        return;\n      }\n\n      $highlighted.trigger('mouseup');\n    });\n\n    container.on('results:select', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      if ($highlighted.length === 0) {\n        return;\n      }\n\n      var data = Utils.GetData($highlighted[0], 'data');\n\n      if ($highlighted.attr('aria-selected') == 'true') {\n        self.trigger('close', {});\n      } else {\n        self.trigger('select', {\n          data: data\n        });\n      }\n    });\n\n    container.on('results:previous', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      var $options = self.$results.find('[aria-selected]');\n\n      var currentIndex = $options.index($highlighted);\n\n      // If we are already at the top, don't move further\n      // If no options, currentIndex will be -1\n      if (currentIndex <= 0) {\n        return;\n      }\n\n      var nextIndex = currentIndex - 1;\n\n      // If none are highlighted, highlight the first\n      if ($highlighted.length === 0) {\n        nextIndex = 0;\n      }\n\n      var $next = $options.eq(nextIndex);\n\n      $next.trigger('mouseenter');\n\n      var currentOffset = self.$results.offset().top;\n      var nextTop = $next.offset().top;\n      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n      if (nextIndex === 0) {\n        self.$results.scrollTop(0);\n      } else if (nextTop - currentOffset < 0) {\n        self.$results.scrollTop(nextOffset);\n      }\n    });\n\n    container.on('results:next', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      var $options = self.$results.find('[aria-selected]');\n\n      var currentIndex = $options.index($highlighted);\n\n      var nextIndex = currentIndex + 1;\n\n      // If we are at the last option, stay there\n      if (nextIndex >= $options.length) {\n        return;\n      }\n\n      var $next = $options.eq(nextIndex);\n\n      $next.trigger('mouseenter');\n\n      var currentOffset = self.$results.offset().top +\n        self.$results.outerHeight(false);\n      var nextBottom = $next.offset().top + $next.outerHeight(false);\n      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n      if (nextIndex === 0) {\n        self.$results.scrollTop(0);\n      } else if (nextBottom > currentOffset) {\n        self.$results.scrollTop(nextOffset);\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      params.element.addClass('select2-results__option--highlighted');\n    });\n\n    container.on('results:message', function (params) {\n      self.displayMessage(params);\n    });\n\n    if ($.fn.mousewheel) {\n      this.$results.on('mousewheel', function (e) {\n        var top = self.$results.scrollTop();\n\n        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n        if (isAtTop) {\n          self.$results.scrollTop(0);\n\n          e.preventDefault();\n          e.stopPropagation();\n        } else if (isAtBottom) {\n          self.$results.scrollTop(\n            self.$results.get(0).scrollHeight - self.$results.height()\n          );\n\n          e.preventDefault();\n          e.stopPropagation();\n        }\n      });\n    }\n\n    this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n      function (evt) {\n      var $this = $(this);\n\n      var data = Utils.GetData(this, 'data');\n\n      if ($this.attr('aria-selected') === 'true') {\n        if (self.options.get('multiple')) {\n          self.trigger('unselect', {\n            originalEvent: evt,\n            data: data\n          });\n        } else {\n          self.trigger('close', {});\n        }\n\n        return;\n      }\n\n      self.trigger('select', {\n        originalEvent: evt,\n        data: data\n      });\n    });\n\n    this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n      function (evt) {\n      var data = Utils.GetData(this, 'data');\n\n      self.getHighlightedResults()\n          .removeClass('select2-results__option--highlighted');\n\n      self.trigger('results:focus', {\n        data: data,\n        element: $(this)\n      });\n    });\n  };\n\n  Results.prototype.getHighlightedResults = function () {\n    var $highlighted = this.$results\n    .find('.select2-results__option--highlighted');\n\n    return $highlighted;\n  };\n\n  Results.prototype.destroy = function () {\n    this.$results.remove();\n  };\n\n  Results.prototype.ensureHighlightVisible = function () {\n    var $highlighted = this.getHighlightedResults();\n\n    if ($highlighted.length === 0) {\n      return;\n    }\n\n    var $options = this.$results.find('[aria-selected]');\n\n    var currentIndex = $options.index($highlighted);\n\n    var currentOffset = this.$results.offset().top;\n    var nextTop = $highlighted.offset().top;\n    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n    var offsetDelta = nextTop - currentOffset;\n    nextOffset -= $highlighted.outerHeight(false) * 2;\n\n    if (currentIndex <= 2) {\n      this.$results.scrollTop(0);\n    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n      this.$results.scrollTop(nextOffset);\n    }\n  };\n\n  Results.prototype.template = function (result, container) {\n    var template = this.options.get('templateResult');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    var content = template(result, container);\n\n    if (content == null) {\n      container.style.display = 'none';\n    } else if (typeof content === 'string') {\n      container.innerHTML = escapeMarkup(content);\n    } else {\n      $(container).append(content);\n    }\n  };\n\n  return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n  var KEYS = {\n    BACKSPACE: 8,\n    TAB: 9,\n    ENTER: 13,\n    SHIFT: 16,\n    CTRL: 17,\n    ALT: 18,\n    ESC: 27,\n    SPACE: 32,\n    PAGE_UP: 33,\n    PAGE_DOWN: 34,\n    END: 35,\n    HOME: 36,\n    LEFT: 37,\n    UP: 38,\n    RIGHT: 39,\n    DOWN: 40,\n    DELETE: 46\n  };\n\n  return KEYS;\n});\n\nS2.define('select2/selection/base',[\n  'jquery',\n  '../utils',\n  '../keys'\n], function ($, Utils, KEYS) {\n  function BaseSelection ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    BaseSelection.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(BaseSelection, Utils.Observable);\n\n  BaseSelection.prototype.render = function () {\n    var $selection = $(\n      '<span class=\"select2-selection\" role=\"combobox\" ' +\n      ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\n      '</span>'\n    );\n\n    this._tabindex = 0;\n\n    if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n      this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n    } else if (this.$element.attr('tabindex') != null) {\n      this._tabindex = this.$element.attr('tabindex');\n    }\n\n    $selection.attr('title', this.$element.attr('title'));\n    $selection.attr('tabindex', this._tabindex);\n    $selection.attr('aria-disabled', 'false');\n\n    this.$selection = $selection;\n\n    return $selection;\n  };\n\n  BaseSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    this.container = container;\n\n    this.$selection.on('focus', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this.$selection.on('blur', function (evt) {\n      self._handleBlur(evt);\n    });\n\n    this.$selection.on('keydown', function (evt) {\n      self.trigger('keypress', evt);\n\n      if (evt.which === KEYS.SPACE) {\n        evt.preventDefault();\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      self.$selection.attr('aria-activedescendant', params.data._resultId);\n    });\n\n    container.on('selection:update', function (params) {\n      self.update(params.data);\n    });\n\n    container.on('open', function () {\n      // When the dropdown is open, aria-expanded=\"true\"\n      self.$selection.attr('aria-expanded', 'true');\n      self.$selection.attr('aria-owns', resultsId);\n\n      self._attachCloseHandler(container);\n    });\n\n    container.on('close', function () {\n      // When the dropdown is closed, aria-expanded=\"false\"\n      self.$selection.attr('aria-expanded', 'false');\n      self.$selection.removeAttr('aria-activedescendant');\n      self.$selection.removeAttr('aria-owns');\n\n      self.$selection.trigger('focus');\n\n      self._detachCloseHandler(container);\n    });\n\n    container.on('enable', function () {\n      self.$selection.attr('tabindex', self._tabindex);\n      self.$selection.attr('aria-disabled', 'false');\n    });\n\n    container.on('disable', function () {\n      self.$selection.attr('tabindex', '-1');\n      self.$selection.attr('aria-disabled', 'true');\n    });\n  };\n\n  BaseSelection.prototype._handleBlur = function (evt) {\n    var self = this;\n\n    // This needs to be delayed as the active element is the body when the tab\n    // key is pressed, possibly along with others.\n    window.setTimeout(function () {\n      // Don't trigger `blur` if the focus is still in the selection\n      if (\n        (document.activeElement == self.$selection[0]) ||\n        ($.contains(self.$selection[0], document.activeElement))\n      ) {\n        return;\n      }\n\n      self.trigger('blur', evt);\n    }, 1);\n  };\n\n  BaseSelection.prototype._attachCloseHandler = function (container) {\n\n    $(document.body).on('mousedown.select2.' + container.id, function (e) {\n      var $target = $(e.target);\n\n      var $select = $target.closest('.select2');\n\n      var $all = $('.select2.select2-container--open');\n\n      $all.each(function () {\n        if (this == $select[0]) {\n          return;\n        }\n\n        var $element = Utils.GetData(this, 'element');\n\n        $element.select2('close');\n      });\n    });\n  };\n\n  BaseSelection.prototype._detachCloseHandler = function (container) {\n    $(document.body).off('mousedown.select2.' + container.id);\n  };\n\n  BaseSelection.prototype.position = function ($selection, $container) {\n    var $selectionContainer = $container.find('.selection');\n    $selectionContainer.append($selection);\n  };\n\n  BaseSelection.prototype.destroy = function () {\n    this._detachCloseHandler(this.container);\n  };\n\n  BaseSelection.prototype.update = function (data) {\n    throw new Error('The `update` method must be defined in child classes.');\n  };\n\n  /**\n   * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n   * object.\n   *\n   * @return {true} if the instance is not disabled.\n   * @return {false} if the instance is disabled.\n   */\n  BaseSelection.prototype.isEnabled = function () {\n    return !this.isDisabled();\n  };\n\n  /**\n   * Helper method to abstract the \"disabled\" state of this object.\n   *\n   * @return {true} if the disabled option is true.\n   * @return {false} if the disabled option is false.\n   */\n  BaseSelection.prototype.isDisabled = function () {\n    return this.options.get('disabled');\n  };\n\n  return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n  'jquery',\n  './base',\n  '../utils',\n  '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n  function SingleSelection () {\n    SingleSelection.__super__.constructor.apply(this, arguments);\n  }\n\n  Utils.Extend(SingleSelection, BaseSelection);\n\n  SingleSelection.prototype.render = function () {\n    var $selection = SingleSelection.__super__.render.call(this);\n\n    $selection.addClass('select2-selection--single');\n\n    $selection.html(\n      '<span class=\"select2-selection__rendered\"></span>' +\n      '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\n        '<b role=\"presentation\"></b>' +\n      '</span>'\n    );\n\n    return $selection;\n  };\n\n  SingleSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    SingleSelection.__super__.bind.apply(this, arguments);\n\n    var id = container.id + '-container';\n\n    this.$selection.find('.select2-selection__rendered')\n      .attr('id', id)\n      .attr('role', 'textbox')\n      .attr('aria-readonly', 'true');\n    this.$selection.attr('aria-labelledby', id);\n\n    this.$selection.on('mousedown', function (evt) {\n      // Only respond to left clicks\n      if (evt.which !== 1) {\n        return;\n      }\n\n      self.trigger('toggle', {\n        originalEvent: evt\n      });\n    });\n\n    this.$selection.on('focus', function (evt) {\n      // User focuses on the container\n    });\n\n    this.$selection.on('blur', function (evt) {\n      // User exits the container\n    });\n\n    container.on('focus', function (evt) {\n      if (!container.isOpen()) {\n        self.$selection.trigger('focus');\n      }\n    });\n  };\n\n  SingleSelection.prototype.clear = function () {\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    $rendered.empty();\n    $rendered.removeAttr('title'); // clear tooltip on empty\n  };\n\n  SingleSelection.prototype.display = function (data, container) {\n    var template = this.options.get('templateSelection');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    return escapeMarkup(template(data, container));\n  };\n\n  SingleSelection.prototype.selectionContainer = function () {\n    return $('<span></span>');\n  };\n\n  SingleSelection.prototype.update = function (data) {\n    if (data.length === 0) {\n      this.clear();\n      return;\n    }\n\n    var selection = data[0];\n\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    var formatted = this.display(selection, $rendered);\n\n    $rendered.empty().append(formatted);\n\n    var title = selection.title || selection.text;\n\n    if (title) {\n      $rendered.attr('title', title);\n    } else {\n      $rendered.removeAttr('title');\n    }\n  };\n\n  return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n  'jquery',\n  './base',\n  '../utils'\n], function ($, BaseSelection, Utils) {\n  function MultipleSelection ($element, options) {\n    MultipleSelection.__super__.constructor.apply(this, arguments);\n  }\n\n  Utils.Extend(MultipleSelection, BaseSelection);\n\n  MultipleSelection.prototype.render = function () {\n    var $selection = MultipleSelection.__super__.render.call(this);\n\n    $selection.addClass('select2-selection--multiple');\n\n    $selection.html(\n      '<ul class=\"select2-selection__rendered\"></ul>'\n    );\n\n    return $selection;\n  };\n\n  MultipleSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    MultipleSelection.__super__.bind.apply(this, arguments);\n\n    this.$selection.on('click', function (evt) {\n      self.trigger('toggle', {\n        originalEvent: evt\n      });\n    });\n\n    this.$selection.on(\n      'click',\n      '.select2-selection__choice__remove',\n      function (evt) {\n        // Ignore the event if it is disabled\n        if (self.isDisabled()) {\n          return;\n        }\n\n        var $remove = $(this);\n        var $selection = $remove.parent();\n\n        var data = Utils.GetData($selection[0], 'data');\n\n        self.trigger('unselect', {\n          originalEvent: evt,\n          data: data\n        });\n      }\n    );\n  };\n\n  MultipleSelection.prototype.clear = function () {\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    $rendered.empty();\n    $rendered.removeAttr('title');\n  };\n\n  MultipleSelection.prototype.display = function (data, container) {\n    var template = this.options.get('templateSelection');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    return escapeMarkup(template(data, container));\n  };\n\n  MultipleSelection.prototype.selectionContainer = function () {\n    var $container = $(\n      '<li class=\"select2-selection__choice\">' +\n        '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\n          '&times;' +\n        '</span>' +\n      '</li>'\n    );\n\n    return $container;\n  };\n\n  MultipleSelection.prototype.update = function (data) {\n    this.clear();\n\n    if (data.length === 0) {\n      return;\n    }\n\n    var $selections = [];\n\n    for (var d = 0; d < data.length; d++) {\n      var selection = data[d];\n\n      var $selection = this.selectionContainer();\n      var formatted = this.display(selection, $selection);\n\n      $selection.append(formatted);\n\n      var title = selection.title || selection.text;\n\n      if (title) {\n        $selection.attr('title', title);\n      }\n\n      Utils.StoreData($selection[0], 'data', selection);\n\n      $selections.push($selection);\n    }\n\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n\n    Utils.appendMany($rendered, $selections);\n  };\n\n  return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n  '../utils'\n], function (Utils) {\n  function Placeholder (decorated, $element, options) {\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n    decorated.call(this, $element, options);\n  }\n\n  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n    if (typeof placeholder === 'string') {\n      placeholder = {\n        id: '',\n        text: placeholder\n      };\n    }\n\n    return placeholder;\n  };\n\n  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n    var $placeholder = this.selectionContainer();\n\n    $placeholder.html(this.display(placeholder));\n    $placeholder.addClass('select2-selection__placeholder')\n                .removeClass('select2-selection__choice');\n\n    return $placeholder;\n  };\n\n  Placeholder.prototype.update = function (decorated, data) {\n    var singlePlaceholder = (\n      data.length == 1 && data[0].id != this.placeholder.id\n    );\n    var multipleSelections = data.length > 1;\n\n    if (multipleSelections || singlePlaceholder) {\n      return decorated.call(this, data);\n    }\n\n    this.clear();\n\n    var $placeholder = this.createPlaceholder(this.placeholder);\n\n    this.$selection.find('.select2-selection__rendered').append($placeholder);\n  };\n\n  return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n  'jquery',\n  '../keys',\n  '../utils'\n], function ($, KEYS, Utils) {\n  function AllowClear () { }\n\n  AllowClear.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    if (this.placeholder == null) {\n      if (this.options.get('debug') && window.console && console.error) {\n        console.error(\n          'Select2: The `allowClear` option should be used in combination ' +\n          'with the `placeholder` option.'\n        );\n      }\n    }\n\n    this.$selection.on('mousedown', '.select2-selection__clear',\n      function (evt) {\n        self._handleClear(evt);\n    });\n\n    container.on('keypress', function (evt) {\n      self._handleKeyboardClear(evt, container);\n    });\n  };\n\n  AllowClear.prototype._handleClear = function (_, evt) {\n    // Ignore the event if it is disabled\n    if (this.isDisabled()) {\n      return;\n    }\n\n    var $clear = this.$selection.find('.select2-selection__clear');\n\n    // Ignore the event if nothing has been selected\n    if ($clear.length === 0) {\n      return;\n    }\n\n    evt.stopPropagation();\n\n    var data = Utils.GetData($clear[0], 'data');\n\n    var previousVal = this.$element.val();\n    this.$element.val(this.placeholder.id);\n\n    var unselectData = {\n      data: data\n    };\n    this.trigger('clear', unselectData);\n    if (unselectData.prevented) {\n      this.$element.val(previousVal);\n      return;\n    }\n\n    for (var d = 0; d < data.length; d++) {\n      unselectData = {\n        data: data[d]\n      };\n\n      // Trigger the `unselect` event, so people can prevent it from being\n      // cleared.\n      this.trigger('unselect', unselectData);\n\n      // If the event was prevented, don't clear it out.\n      if (unselectData.prevented) {\n        this.$element.val(previousVal);\n        return;\n      }\n    }\n\n    this.$element.trigger('input').trigger('change');\n\n    this.trigger('toggle', {});\n  };\n\n  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n    if (container.isOpen()) {\n      return;\n    }\n\n    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n      this._handleClear(evt);\n    }\n  };\n\n  AllowClear.prototype.update = function (decorated, data) {\n    decorated.call(this, data);\n\n    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n        data.length === 0) {\n      return;\n    }\n\n    var removeAll = this.options.get('translations').get('removeAllItems');\n\n    var $remove = $(\n      '<span class=\"select2-selection__clear\" title=\"' + removeAll() +'\">' +\n        '&times;' +\n      '</span>'\n    );\n    Utils.StoreData($remove[0], 'data', data);\n\n    this.$selection.find('.select2-selection__rendered').prepend($remove);\n  };\n\n  return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n  'jquery',\n  '../utils',\n  '../keys'\n], function ($, Utils, KEYS) {\n  function Search (decorated, $element, options) {\n    decorated.call(this, $element, options);\n  }\n\n  Search.prototype.render = function (decorated) {\n    var $search = $(\n      '<li class=\"select2-search select2-search--inline\">' +\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n        ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' +\n      '</li>'\n    );\n\n    this.$searchContainer = $search;\n    this.$search = $search.find('input');\n\n    var $rendered = decorated.call(this);\n\n    this._transferTabIndex();\n\n    return $rendered;\n  };\n\n  Search.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    decorated.call(this, container, $container);\n\n    container.on('open', function () {\n      self.$search.attr('aria-controls', resultsId);\n      self.$search.trigger('focus');\n    });\n\n    container.on('close', function () {\n      self.$search.val('');\n      self.$search.removeAttr('aria-controls');\n      self.$search.removeAttr('aria-activedescendant');\n      self.$search.trigger('focus');\n    });\n\n    container.on('enable', function () {\n      self.$search.prop('disabled', false);\n\n      self._transferTabIndex();\n    });\n\n    container.on('disable', function () {\n      self.$search.prop('disabled', true);\n    });\n\n    container.on('focus', function (evt) {\n      self.$search.trigger('focus');\n    });\n\n    container.on('results:focus', function (params) {\n      if (params.data._resultId) {\n        self.$search.attr('aria-activedescendant', params.data._resultId);\n      } else {\n        self.$search.removeAttr('aria-activedescendant');\n      }\n    });\n\n    this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n      self._handleBlur(evt);\n    });\n\n    this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n      evt.stopPropagation();\n\n      self.trigger('keypress', evt);\n\n      self._keyUpPrevented = evt.isDefaultPrevented();\n\n      var key = evt.which;\n\n      if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n        var $previousChoice = self.$searchContainer\n          .prev('.select2-selection__choice');\n\n        if ($previousChoice.length > 0) {\n          var item = Utils.GetData($previousChoice[0], 'data');\n\n          self.searchRemoveChoice(item);\n\n          evt.preventDefault();\n        }\n      }\n    });\n\n    this.$selection.on('click', '.select2-search--inline', function (evt) {\n      if (self.$search.val()) {\n        evt.stopPropagation();\n      }\n    });\n\n    // Try to detect the IE version should the `documentMode` property that\n    // is stored on the document. This is only implemented in IE and is\n    // slightly cleaner than doing a user agent check.\n    // This property is not available in Edge, but Edge also doesn't have\n    // this bug.\n    var msie = document.documentMode;\n    var disableInputEvents = msie && msie <= 11;\n\n    // Workaround for browsers which do not support the `input` event\n    // This will prevent double-triggering of events for browsers which support\n    // both the `keyup` and `input` events.\n    this.$selection.on(\n      'input.searchcheck',\n      '.select2-search--inline',\n      function (evt) {\n        // IE will trigger the `input` event when a placeholder is used on a\n        // search box. To get around this issue, we are forced to ignore all\n        // `input` events in IE and keep using `keyup`.\n        if (disableInputEvents) {\n          self.$selection.off('input.search input.searchcheck');\n          return;\n        }\n\n        // Unbind the duplicated `keyup` event\n        self.$selection.off('keyup.search');\n      }\n    );\n\n    this.$selection.on(\n      'keyup.search input.search',\n      '.select2-search--inline',\n      function (evt) {\n        // IE will trigger the `input` event when a placeholder is used on a\n        // search box. To get around this issue, we are forced to ignore all\n        // `input` events in IE and keep using `keyup`.\n        if (disableInputEvents && evt.type === 'input') {\n          self.$selection.off('input.search input.searchcheck');\n          return;\n        }\n\n        var key = evt.which;\n\n        // We can freely ignore events from modifier keys\n        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n          return;\n        }\n\n        // Tabbing will be handled during the `keydown` phase\n        if (key == KEYS.TAB) {\n          return;\n        }\n\n        self.handleSearch(evt);\n      }\n    );\n  };\n\n  /**\n   * This method will transfer the tabindex attribute from the rendered\n   * selection to the search box. This allows for the search box to be used as\n   * the primary focus instead of the selection container.\n   *\n   * @private\n   */\n  Search.prototype._transferTabIndex = function (decorated) {\n    this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n    this.$selection.attr('tabindex', '-1');\n  };\n\n  Search.prototype.createPlaceholder = function (decorated, placeholder) {\n    this.$search.attr('placeholder', placeholder.text);\n  };\n\n  Search.prototype.update = function (decorated, data) {\n    var searchHadFocus = this.$search[0] == document.activeElement;\n\n    this.$search.attr('placeholder', '');\n\n    decorated.call(this, data);\n\n    this.$selection.find('.select2-selection__rendered')\n                   .append(this.$searchContainer);\n\n    this.resizeSearch();\n    if (searchHadFocus) {\n      this.$search.trigger('focus');\n    }\n  };\n\n  Search.prototype.handleSearch = function () {\n    this.resizeSearch();\n\n    if (!this._keyUpPrevented) {\n      var input = this.$search.val();\n\n      this.trigger('query', {\n        term: input\n      });\n    }\n\n    this._keyUpPrevented = false;\n  };\n\n  Search.prototype.searchRemoveChoice = function (decorated, item) {\n    this.trigger('unselect', {\n      data: item\n    });\n\n    this.$search.val(item.text);\n    this.handleSearch();\n  };\n\n  Search.prototype.resizeSearch = function () {\n    this.$search.css('width', '25px');\n\n    var width = '';\n\n    if (this.$search.attr('placeholder') !== '') {\n      width = this.$selection.find('.select2-selection__rendered').width();\n    } else {\n      var minimumWidth = this.$search.val().length + 1;\n\n      width = (minimumWidth * 0.75) + 'em';\n    }\n\n    this.$search.css('width', width);\n  };\n\n  return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n  'jquery'\n], function ($) {\n  function EventRelay () { }\n\n  EventRelay.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n    var relayEvents = [\n      'open', 'opening',\n      'close', 'closing',\n      'select', 'selecting',\n      'unselect', 'unselecting',\n      'clear', 'clearing'\n    ];\n\n    var preventableEvents = [\n      'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n    ];\n\n    decorated.call(this, container, $container);\n\n    container.on('*', function (name, params) {\n      // Ignore events that should not be relayed\n      if ($.inArray(name, relayEvents) === -1) {\n        return;\n      }\n\n      // The parameters should always be an object\n      params = params || {};\n\n      // Generate the jQuery event for the Select2 event\n      var evt = $.Event('select2:' + name, {\n        params: params\n      });\n\n      self.$element.trigger(evt);\n\n      // Only handle preventable events if it was one\n      if ($.inArray(name, preventableEvents) === -1) {\n        return;\n      }\n\n      params.prevented = evt.isDefaultPrevented();\n    });\n  };\n\n  return EventRelay;\n});\n\nS2.define('select2/translation',[\n  'jquery',\n  'require'\n], function ($, require) {\n  function Translation (dict) {\n    this.dict = dict || {};\n  }\n\n  Translation.prototype.all = function () {\n    return this.dict;\n  };\n\n  Translation.prototype.get = function (key) {\n    return this.dict[key];\n  };\n\n  Translation.prototype.extend = function (translation) {\n    this.dict = $.extend({}, translation.all(), this.dict);\n  };\n\n  // Static functions\n\n  Translation._cache = {};\n\n  Translation.loadPath = function (path) {\n    if (!(path in Translation._cache)) {\n      var translations = require(path);\n\n      Translation._cache[path] = translations;\n    }\n\n    return new Translation(Translation._cache[path]);\n  };\n\n  return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n  var diacritics = {\n    '\\u24B6': 'A',\n    '\\uFF21': 'A',\n    '\\u00C0': 'A',\n    '\\u00C1': 'A',\n    '\\u00C2': 'A',\n    '\\u1EA6': 'A',\n    '\\u1EA4': 'A',\n    '\\u1EAA': 'A',\n    '\\u1EA8': 'A',\n    '\\u00C3': 'A',\n    '\\u0100': 'A',\n    '\\u0102': 'A',\n    '\\u1EB0': 'A',\n    '\\u1EAE': 'A',\n    '\\u1EB4': 'A',\n    '\\u1EB2': 'A',\n    '\\u0226': 'A',\n    '\\u01E0': 'A',\n    '\\u00C4': 'A',\n    '\\u01DE': 'A',\n    '\\u1EA2': 'A',\n    '\\u00C5': 'A',\n    '\\u01FA': 'A',\n    '\\u01CD': 'A',\n    '\\u0200': 'A',\n    '\\u0202': 'A',\n    '\\u1EA0': 'A',\n    '\\u1EAC': 'A',\n    '\\u1EB6': 'A',\n    '\\u1E00': 'A',\n    '\\u0104': 'A',\n    '\\u023A': 'A',\n    '\\u2C6F': 'A',\n    '\\uA732': 'AA',\n    '\\u00C6': 'AE',\n    '\\u01FC': 'AE',\n    '\\u01E2': 'AE',\n    '\\uA734': 'AO',\n    '\\uA736': 'AU',\n    '\\uA738': 'AV',\n    '\\uA73A': 'AV',\n    '\\uA73C': 'AY',\n    '\\u24B7': 'B',\n    '\\uFF22': 'B',\n    '\\u1E02': 'B',\n    '\\u1E04': 'B',\n    '\\u1E06': 'B',\n    '\\u0243': 'B',\n    '\\u0182': 'B',\n    '\\u0181': 'B',\n    '\\u24B8': 'C',\n    '\\uFF23': 'C',\n    '\\u0106': 'C',\n    '\\u0108': 'C',\n    '\\u010A': 'C',\n    '\\u010C': 'C',\n    '\\u00C7': 'C',\n    '\\u1E08': 'C',\n    '\\u0187': 'C',\n    '\\u023B': 'C',\n    '\\uA73E': 'C',\n    '\\u24B9': 'D',\n    '\\uFF24': 'D',\n    '\\u1E0A': 'D',\n    '\\u010E': 'D',\n    '\\u1E0C': 'D',\n    '\\u1E10': 'D',\n    '\\u1E12': 'D',\n    '\\u1E0E': 'D',\n    '\\u0110': 'D',\n    '\\u018B': 'D',\n    '\\u018A': 'D',\n    '\\u0189': 'D',\n    '\\uA779': 'D',\n    '\\u01F1': 'DZ',\n    '\\u01C4': 'DZ',\n    '\\u01F2': 'Dz',\n    '\\u01C5': 'Dz',\n    '\\u24BA': 'E',\n    '\\uFF25': 'E',\n    '\\u00C8': 'E',\n    '\\u00C9': 'E',\n    '\\u00CA': 'E',\n    '\\u1EC0': 'E',\n    '\\u1EBE': 'E',\n    '\\u1EC4': 'E',\n    '\\u1EC2': 'E',\n    '\\u1EBC': 'E',\n    '\\u0112': 'E',\n    '\\u1E14': 'E',\n    '\\u1E16': 'E',\n    '\\u0114': 'E',\n    '\\u0116': 'E',\n    '\\u00CB': 'E',\n    '\\u1EBA': 'E',\n    '\\u011A': 'E',\n    '\\u0204': 'E',\n    '\\u0206': 'E',\n    '\\u1EB8': 'E',\n    '\\u1EC6': 'E',\n    '\\u0228': 'E',\n    '\\u1E1C': 'E',\n    '\\u0118': 'E',\n    '\\u1E18': 'E',\n    '\\u1E1A': 'E',\n    '\\u0190': 'E',\n    '\\u018E': 'E',\n    '\\u24BB': 'F',\n    '\\uFF26': 'F',\n    '\\u1E1E': 'F',\n    '\\u0191': 'F',\n    '\\uA77B': 'F',\n    '\\u24BC': 'G',\n    '\\uFF27': 'G',\n    '\\u01F4': 'G',\n    '\\u011C': 'G',\n    '\\u1E20': 'G',\n    '\\u011E': 'G',\n    '\\u0120': 'G',\n    '\\u01E6': 'G',\n    '\\u0122': 'G',\n    '\\u01E4': 'G',\n    '\\u0193': 'G',\n    '\\uA7A0': 'G',\n    '\\uA77D': 'G',\n    '\\uA77E': 'G',\n    '\\u24BD': 'H',\n    '\\uFF28': 'H',\n    '\\u0124': 'H',\n    '\\u1E22': 'H',\n    '\\u1E26': 'H',\n    '\\u021E': 'H',\n    '\\u1E24': 'H',\n    '\\u1E28': 'H',\n    '\\u1E2A': 'H',\n    '\\u0126': 'H',\n    '\\u2C67': 'H',\n    '\\u2C75': 'H',\n    '\\uA78D': 'H',\n    '\\u24BE': 'I',\n    '\\uFF29': 'I',\n    '\\u00CC': 'I',\n    '\\u00CD': 'I',\n    '\\u00CE': 'I',\n    '\\u0128': 'I',\n    '\\u012A': 'I',\n    '\\u012C': 'I',\n    '\\u0130': 'I',\n    '\\u00CF': 'I',\n    '\\u1E2E': 'I',\n    '\\u1EC8': 'I',\n    '\\u01CF': 'I',\n    '\\u0208': 'I',\n    '\\u020A': 'I',\n    '\\u1ECA': 'I',\n    '\\u012E': 'I',\n    '\\u1E2C': 'I',\n    '\\u0197': 'I',\n    '\\u24BF': 'J',\n    '\\uFF2A': 'J',\n    '\\u0134': 'J',\n    '\\u0248': 'J',\n    '\\u24C0': 'K',\n    '\\uFF2B': 'K',\n    '\\u1E30': 'K',\n    '\\u01E8': 'K',\n    '\\u1E32': 'K',\n    '\\u0136': 'K',\n    '\\u1E34': 'K',\n    '\\u0198': 'K',\n    '\\u2C69': 'K',\n    '\\uA740': 'K',\n    '\\uA742': 'K',\n    '\\uA744': 'K',\n    '\\uA7A2': 'K',\n    '\\u24C1': 'L',\n    '\\uFF2C': 'L',\n    '\\u013F': 'L',\n    '\\u0139': 'L',\n    '\\u013D': 'L',\n    '\\u1E36': 'L',\n    '\\u1E38': 'L',\n    '\\u013B': 'L',\n    '\\u1E3C': 'L',\n    '\\u1E3A': 'L',\n    '\\u0141': 'L',\n    '\\u023D': 'L',\n    '\\u2C62': 'L',\n    '\\u2C60': 'L',\n    '\\uA748': 'L',\n    '\\uA746': 'L',\n    '\\uA780': 'L',\n    '\\u01C7': 'LJ',\n    '\\u01C8': 'Lj',\n    '\\u24C2': 'M',\n    '\\uFF2D': 'M',\n    '\\u1E3E': 'M',\n    '\\u1E40': 'M',\n    '\\u1E42': 'M',\n    '\\u2C6E': 'M',\n    '\\u019C': 'M',\n    '\\u24C3': 'N',\n    '\\uFF2E': 'N',\n    '\\u01F8': 'N',\n    '\\u0143': 'N',\n    '\\u00D1': 'N',\n    '\\u1E44': 'N',\n    '\\u0147': 'N',\n    '\\u1E46': 'N',\n    '\\u0145': 'N',\n    '\\u1E4A': 'N',\n    '\\u1E48': 'N',\n    '\\u0220': 'N',\n    '\\u019D': 'N',\n    '\\uA790': 'N',\n    '\\uA7A4': 'N',\n    '\\u01CA': 'NJ',\n    '\\u01CB': 'Nj',\n    '\\u24C4': 'O',\n    '\\uFF2F': 'O',\n    '\\u00D2': 'O',\n    '\\u00D3': 'O',\n    '\\u00D4': 'O',\n    '\\u1ED2': 'O',\n    '\\u1ED0': 'O',\n    '\\u1ED6': 'O',\n    '\\u1ED4': 'O',\n    '\\u00D5': 'O',\n    '\\u1E4C': 'O',\n    '\\u022C': 'O',\n    '\\u1E4E': 'O',\n    '\\u014C': 'O',\n    '\\u1E50': 'O',\n    '\\u1E52': 'O',\n    '\\u014E': 'O',\n    '\\u022E': 'O',\n    '\\u0230': 'O',\n    '\\u00D6': 'O',\n    '\\u022A': 'O',\n    '\\u1ECE': 'O',\n    '\\u0150': 'O',\n    '\\u01D1': 'O',\n    '\\u020C': 'O',\n    '\\u020E': 'O',\n    '\\u01A0': 'O',\n    '\\u1EDC': 'O',\n    '\\u1EDA': 'O',\n    '\\u1EE0': 'O',\n    '\\u1EDE': 'O',\n    '\\u1EE2': 'O',\n    '\\u1ECC': 'O',\n    '\\u1ED8': 'O',\n    '\\u01EA': 'O',\n    '\\u01EC': 'O',\n    '\\u00D8': 'O',\n    '\\u01FE': 'O',\n    '\\u0186': 'O',\n    '\\u019F': 'O',\n    '\\uA74A': 'O',\n    '\\uA74C': 'O',\n    '\\u0152': 'OE',\n    '\\u01A2': 'OI',\n    '\\uA74E': 'OO',\n    '\\u0222': 'OU',\n    '\\u24C5': 'P',\n    '\\uFF30': 'P',\n    '\\u1E54': 'P',\n    '\\u1E56': 'P',\n    '\\u01A4': 'P',\n    '\\u2C63': 'P',\n    '\\uA750': 'P',\n    '\\uA752': 'P',\n    '\\uA754': 'P',\n    '\\u24C6': 'Q',\n    '\\uFF31': 'Q',\n    '\\uA756': 'Q',\n    '\\uA758': 'Q',\n    '\\u024A': 'Q',\n    '\\u24C7': 'R',\n    '\\uFF32': 'R',\n    '\\u0154': 'R',\n    '\\u1E58': 'R',\n    '\\u0158': 'R',\n    '\\u0210': 'R',\n    '\\u0212': 'R',\n    '\\u1E5A': 'R',\n    '\\u1E5C': 'R',\n    '\\u0156': 'R',\n    '\\u1E5E': 'R',\n    '\\u024C': 'R',\n    '\\u2C64': 'R',\n    '\\uA75A': 'R',\n    '\\uA7A6': 'R',\n    '\\uA782': 'R',\n    '\\u24C8': 'S',\n    '\\uFF33': 'S',\n    '\\u1E9E': 'S',\n    '\\u015A': 'S',\n    '\\u1E64': 'S',\n    '\\u015C': 'S',\n    '\\u1E60': 'S',\n    '\\u0160': 'S',\n    '\\u1E66': 'S',\n    '\\u1E62': 'S',\n    '\\u1E68': 'S',\n    '\\u0218': 'S',\n    '\\u015E': 'S',\n    '\\u2C7E': 'S',\n    '\\uA7A8': 'S',\n    '\\uA784': 'S',\n    '\\u24C9': 'T',\n    '\\uFF34': 'T',\n    '\\u1E6A': 'T',\n    '\\u0164': 'T',\n    '\\u1E6C': 'T',\n    '\\u021A': 'T',\n    '\\u0162': 'T',\n    '\\u1E70': 'T',\n    '\\u1E6E': 'T',\n    '\\u0166': 'T',\n    '\\u01AC': 'T',\n    '\\u01AE': 'T',\n    '\\u023E': 'T',\n    '\\uA786': 'T',\n    '\\uA728': 'TZ',\n    '\\u24CA': 'U',\n    '\\uFF35': 'U',\n    '\\u00D9': 'U',\n    '\\u00DA': 'U',\n    '\\u00DB': 'U',\n    '\\u0168': 'U',\n    '\\u1E78': 'U',\n    '\\u016A': 'U',\n    '\\u1E7A': 'U',\n    '\\u016C': 'U',\n    '\\u00DC': 'U',\n    '\\u01DB': 'U',\n    '\\u01D7': 'U',\n    '\\u01D5': 'U',\n    '\\u01D9': 'U',\n    '\\u1EE6': 'U',\n    '\\u016E': 'U',\n    '\\u0170': 'U',\n    '\\u01D3': 'U',\n    '\\u0214': 'U',\n    '\\u0216': 'U',\n    '\\u01AF': 'U',\n    '\\u1EEA': 'U',\n    '\\u1EE8': 'U',\n    '\\u1EEE': 'U',\n    '\\u1EEC': 'U',\n    '\\u1EF0': 'U',\n    '\\u1EE4': 'U',\n    '\\u1E72': 'U',\n    '\\u0172': 'U',\n    '\\u1E76': 'U',\n    '\\u1E74': 'U',\n    '\\u0244': 'U',\n    '\\u24CB': 'V',\n    '\\uFF36': 'V',\n    '\\u1E7C': 'V',\n    '\\u1E7E': 'V',\n    '\\u01B2': 'V',\n    '\\uA75E': 'V',\n    '\\u0245': 'V',\n    '\\uA760': 'VY',\n    '\\u24CC': 'W',\n    '\\uFF37': 'W',\n    '\\u1E80': 'W',\n    '\\u1E82': 'W',\n    '\\u0174': 'W',\n    '\\u1E86': 'W',\n    '\\u1E84': 'W',\n    '\\u1E88': 'W',\n    '\\u2C72': 'W',\n    '\\u24CD': 'X',\n    '\\uFF38': 'X',\n    '\\u1E8A': 'X',\n    '\\u1E8C': 'X',\n    '\\u24CE': 'Y',\n    '\\uFF39': 'Y',\n    '\\u1EF2': 'Y',\n    '\\u00DD': 'Y',\n    '\\u0176': 'Y',\n    '\\u1EF8': 'Y',\n    '\\u0232': 'Y',\n    '\\u1E8E': 'Y',\n    '\\u0178': 'Y',\n    '\\u1EF6': 'Y',\n    '\\u1EF4': 'Y',\n    '\\u01B3': 'Y',\n    '\\u024E': 'Y',\n    '\\u1EFE': 'Y',\n    '\\u24CF': 'Z',\n    '\\uFF3A': 'Z',\n    '\\u0179': 'Z',\n    '\\u1E90': 'Z',\n    '\\u017B': 'Z',\n    '\\u017D': 'Z',\n    '\\u1E92': 'Z',\n    '\\u1E94': 'Z',\n    '\\u01B5': 'Z',\n    '\\u0224': 'Z',\n    '\\u2C7F': 'Z',\n    '\\u2C6B': 'Z',\n    '\\uA762': 'Z',\n    '\\u24D0': 'a',\n    '\\uFF41': 'a',\n    '\\u1E9A': 'a',\n    '\\u00E0': 'a',\n    '\\u00E1': 'a',\n    '\\u00E2': 'a',\n    '\\u1EA7': 'a',\n    '\\u1EA5': 'a',\n    '\\u1EAB': 'a',\n    '\\u1EA9': 'a',\n    '\\u00E3': 'a',\n    '\\u0101': 'a',\n    '\\u0103': 'a',\n    '\\u1EB1': 'a',\n    '\\u1EAF': 'a',\n    '\\u1EB5': 'a',\n    '\\u1EB3': 'a',\n    '\\u0227': 'a',\n    '\\u01E1': 'a',\n    '\\u00E4': 'a',\n    '\\u01DF': 'a',\n    '\\u1EA3': 'a',\n    '\\u00E5': 'a',\n    '\\u01FB': 'a',\n    '\\u01CE': 'a',\n    '\\u0201': 'a',\n    '\\u0203': 'a',\n    '\\u1EA1': 'a',\n    '\\u1EAD': 'a',\n    '\\u1EB7': 'a',\n    '\\u1E01': 'a',\n    '\\u0105': 'a',\n    '\\u2C65': 'a',\n    '\\u0250': 'a',\n    '\\uA733': 'aa',\n    '\\u00E6': 'ae',\n    '\\u01FD': 'ae',\n    '\\u01E3': 'ae',\n    '\\uA735': 'ao',\n    '\\uA737': 'au',\n    '\\uA739': 'av',\n    '\\uA73B': 'av',\n    '\\uA73D': 'ay',\n    '\\u24D1': 'b',\n    '\\uFF42': 'b',\n    '\\u1E03': 'b',\n    '\\u1E05': 'b',\n    '\\u1E07': 'b',\n    '\\u0180': 'b',\n    '\\u0183': 'b',\n    '\\u0253': 'b',\n    '\\u24D2': 'c',\n    '\\uFF43': 'c',\n    '\\u0107': 'c',\n    '\\u0109': 'c',\n    '\\u010B': 'c',\n    '\\u010D': 'c',\n    '\\u00E7': 'c',\n    '\\u1E09': 'c',\n    '\\u0188': 'c',\n    '\\u023C': 'c',\n    '\\uA73F': 'c',\n    '\\u2184': 'c',\n    '\\u24D3': 'd',\n    '\\uFF44': 'd',\n    '\\u1E0B': 'd',\n    '\\u010F': 'd',\n    '\\u1E0D': 'd',\n    '\\u1E11': 'd',\n    '\\u1E13': 'd',\n    '\\u1E0F': 'd',\n    '\\u0111': 'd',\n    '\\u018C': 'd',\n    '\\u0256': 'd',\n    '\\u0257': 'd',\n    '\\uA77A': 'd',\n    '\\u01F3': 'dz',\n    '\\u01C6': 'dz',\n    '\\u24D4': 'e',\n    '\\uFF45': 'e',\n    '\\u00E8': 'e',\n    '\\u00E9': 'e',\n    '\\u00EA': 'e',\n    '\\u1EC1': 'e',\n    '\\u1EBF': 'e',\n    '\\u1EC5': 'e',\n    '\\u1EC3': 'e',\n    '\\u1EBD': 'e',\n    '\\u0113': 'e',\n    '\\u1E15': 'e',\n    '\\u1E17': 'e',\n    '\\u0115': 'e',\n    '\\u0117': 'e',\n    '\\u00EB': 'e',\n    '\\u1EBB': 'e',\n    '\\u011B': 'e',\n    '\\u0205': 'e',\n    '\\u0207': 'e',\n    '\\u1EB9': 'e',\n    '\\u1EC7': 'e',\n    '\\u0229': 'e',\n    '\\u1E1D': 'e',\n    '\\u0119': 'e',\n    '\\u1E19': 'e',\n    '\\u1E1B': 'e',\n    '\\u0247': 'e',\n    '\\u025B': 'e',\n    '\\u01DD': 'e',\n    '\\u24D5': 'f',\n    '\\uFF46': 'f',\n    '\\u1E1F': 'f',\n    '\\u0192': 'f',\n    '\\uA77C': 'f',\n    '\\u24D6': 'g',\n    '\\uFF47': 'g',\n    '\\u01F5': 'g',\n    '\\u011D': 'g',\n    '\\u1E21': 'g',\n    '\\u011F': 'g',\n    '\\u0121': 'g',\n    '\\u01E7': 'g',\n    '\\u0123': 'g',\n    '\\u01E5': 'g',\n    '\\u0260': 'g',\n    '\\uA7A1': 'g',\n    '\\u1D79': 'g',\n    '\\uA77F': 'g',\n    '\\u24D7': 'h',\n    '\\uFF48': 'h',\n    '\\u0125': 'h',\n    '\\u1E23': 'h',\n    '\\u1E27': 'h',\n    '\\u021F': 'h',\n    '\\u1E25': 'h',\n    '\\u1E29': 'h',\n    '\\u1E2B': 'h',\n    '\\u1E96': 'h',\n    '\\u0127': 'h',\n    '\\u2C68': 'h',\n    '\\u2C76': 'h',\n    '\\u0265': 'h',\n    '\\u0195': 'hv',\n    '\\u24D8': 'i',\n    '\\uFF49': 'i',\n    '\\u00EC': 'i',\n    '\\u00ED': 'i',\n    '\\u00EE': 'i',\n    '\\u0129': 'i',\n    '\\u012B': 'i',\n    '\\u012D': 'i',\n    '\\u00EF': 'i',\n    '\\u1E2F': 'i',\n    '\\u1EC9': 'i',\n    '\\u01D0': 'i',\n    '\\u0209': 'i',\n    '\\u020B': 'i',\n    '\\u1ECB': 'i',\n    '\\u012F': 'i',\n    '\\u1E2D': 'i',\n    '\\u0268': 'i',\n    '\\u0131': 'i',\n    '\\u24D9': 'j',\n    '\\uFF4A': 'j',\n    '\\u0135': 'j',\n    '\\u01F0': 'j',\n    '\\u0249': 'j',\n    '\\u24DA': 'k',\n    '\\uFF4B': 'k',\n    '\\u1E31': 'k',\n    '\\u01E9': 'k',\n    '\\u1E33': 'k',\n    '\\u0137': 'k',\n    '\\u1E35': 'k',\n    '\\u0199': 'k',\n    '\\u2C6A': 'k',\n    '\\uA741': 'k',\n    '\\uA743': 'k',\n    '\\uA745': 'k',\n    '\\uA7A3': 'k',\n    '\\u24DB': 'l',\n    '\\uFF4C': 'l',\n    '\\u0140': 'l',\n    '\\u013A': 'l',\n    '\\u013E': 'l',\n    '\\u1E37': 'l',\n    '\\u1E39': 'l',\n    '\\u013C': 'l',\n    '\\u1E3D': 'l',\n    '\\u1E3B': 'l',\n    '\\u017F': 'l',\n    '\\u0142': 'l',\n    '\\u019A': 'l',\n    '\\u026B': 'l',\n    '\\u2C61': 'l',\n    '\\uA749': 'l',\n    '\\uA781': 'l',\n    '\\uA747': 'l',\n    '\\u01C9': 'lj',\n    '\\u24DC': 'm',\n    '\\uFF4D': 'm',\n    '\\u1E3F': 'm',\n    '\\u1E41': 'm',\n    '\\u1E43': 'm',\n    '\\u0271': 'm',\n    '\\u026F': 'm',\n    '\\u24DD': 'n',\n    '\\uFF4E': 'n',\n    '\\u01F9': 'n',\n    '\\u0144': 'n',\n    '\\u00F1': 'n',\n    '\\u1E45': 'n',\n    '\\u0148': 'n',\n    '\\u1E47': 'n',\n    '\\u0146': 'n',\n    '\\u1E4B': 'n',\n    '\\u1E49': 'n',\n    '\\u019E': 'n',\n    '\\u0272': 'n',\n    '\\u0149': 'n',\n    '\\uA791': 'n',\n    '\\uA7A5': 'n',\n    '\\u01CC': 'nj',\n    '\\u24DE': 'o',\n    '\\uFF4F': 'o',\n    '\\u00F2': 'o',\n    '\\u00F3': 'o',\n    '\\u00F4': 'o',\n    '\\u1ED3': 'o',\n    '\\u1ED1': 'o',\n    '\\u1ED7': 'o',\n    '\\u1ED5': 'o',\n    '\\u00F5': 'o',\n    '\\u1E4D': 'o',\n    '\\u022D': 'o',\n    '\\u1E4F': 'o',\n    '\\u014D': 'o',\n    '\\u1E51': 'o',\n    '\\u1E53': 'o',\n    '\\u014F': 'o',\n    '\\u022F': 'o',\n    '\\u0231': 'o',\n    '\\u00F6': 'o',\n    '\\u022B': 'o',\n    '\\u1ECF': 'o',\n    '\\u0151': 'o',\n    '\\u01D2': 'o',\n    '\\u020D': 'o',\n    '\\u020F': 'o',\n    '\\u01A1': 'o',\n    '\\u1EDD': 'o',\n    '\\u1EDB': 'o',\n    '\\u1EE1': 'o',\n    '\\u1EDF': 'o',\n    '\\u1EE3': 'o',\n    '\\u1ECD': 'o',\n    '\\u1ED9': 'o',\n    '\\u01EB': 'o',\n    '\\u01ED': 'o',\n    '\\u00F8': 'o',\n    '\\u01FF': 'o',\n    '\\u0254': 'o',\n    '\\uA74B': 'o',\n    '\\uA74D': 'o',\n    '\\u0275': 'o',\n    '\\u0153': 'oe',\n    '\\u01A3': 'oi',\n    '\\u0223': 'ou',\n    '\\uA74F': 'oo',\n    '\\u24DF': 'p',\n    '\\uFF50': 'p',\n    '\\u1E55': 'p',\n    '\\u1E57': 'p',\n    '\\u01A5': 'p',\n    '\\u1D7D': 'p',\n    '\\uA751': 'p',\n    '\\uA753': 'p',\n    '\\uA755': 'p',\n    '\\u24E0': 'q',\n    '\\uFF51': 'q',\n    '\\u024B': 'q',\n    '\\uA757': 'q',\n    '\\uA759': 'q',\n    '\\u24E1': 'r',\n    '\\uFF52': 'r',\n    '\\u0155': 'r',\n    '\\u1E59': 'r',\n    '\\u0159': 'r',\n    '\\u0211': 'r',\n    '\\u0213': 'r',\n    '\\u1E5B': 'r',\n    '\\u1E5D': 'r',\n    '\\u0157': 'r',\n    '\\u1E5F': 'r',\n    '\\u024D': 'r',\n    '\\u027D': 'r',\n    '\\uA75B': 'r',\n    '\\uA7A7': 'r',\n    '\\uA783': 'r',\n    '\\u24E2': 's',\n    '\\uFF53': 's',\n    '\\u00DF': 's',\n    '\\u015B': 's',\n    '\\u1E65': 's',\n    '\\u015D': 's',\n    '\\u1E61': 's',\n    '\\u0161': 's',\n    '\\u1E67': 's',\n    '\\u1E63': 's',\n    '\\u1E69': 's',\n    '\\u0219': 's',\n    '\\u015F': 's',\n    '\\u023F': 's',\n    '\\uA7A9': 's',\n    '\\uA785': 's',\n    '\\u1E9B': 's',\n    '\\u24E3': 't',\n    '\\uFF54': 't',\n    '\\u1E6B': 't',\n    '\\u1E97': 't',\n    '\\u0165': 't',\n    '\\u1E6D': 't',\n    '\\u021B': 't',\n    '\\u0163': 't',\n    '\\u1E71': 't',\n    '\\u1E6F': 't',\n    '\\u0167': 't',\n    '\\u01AD': 't',\n    '\\u0288': 't',\n    '\\u2C66': 't',\n    '\\uA787': 't',\n    '\\uA729': 'tz',\n    '\\u24E4': 'u',\n    '\\uFF55': 'u',\n    '\\u00F9': 'u',\n    '\\u00FA': 'u',\n    '\\u00FB': 'u',\n    '\\u0169': 'u',\n    '\\u1E79': 'u',\n    '\\u016B': 'u',\n    '\\u1E7B': 'u',\n    '\\u016D': 'u',\n    '\\u00FC': 'u',\n    '\\u01DC': 'u',\n    '\\u01D8': 'u',\n    '\\u01D6': 'u',\n    '\\u01DA': 'u',\n    '\\u1EE7': 'u',\n    '\\u016F': 'u',\n    '\\u0171': 'u',\n    '\\u01D4': 'u',\n    '\\u0215': 'u',\n    '\\u0217': 'u',\n    '\\u01B0': 'u',\n    '\\u1EEB': 'u',\n    '\\u1EE9': 'u',\n    '\\u1EEF': 'u',\n    '\\u1EED': 'u',\n    '\\u1EF1': 'u',\n    '\\u1EE5': 'u',\n    '\\u1E73': 'u',\n    '\\u0173': 'u',\n    '\\u1E77': 'u',\n    '\\u1E75': 'u',\n    '\\u0289': 'u',\n    '\\u24E5': 'v',\n    '\\uFF56': 'v',\n    '\\u1E7D': 'v',\n    '\\u1E7F': 'v',\n    '\\u028B': 'v',\n    '\\uA75F': 'v',\n    '\\u028C': 'v',\n    '\\uA761': 'vy',\n    '\\u24E6': 'w',\n    '\\uFF57': 'w',\n    '\\u1E81': 'w',\n    '\\u1E83': 'w',\n    '\\u0175': 'w',\n    '\\u1E87': 'w',\n    '\\u1E85': 'w',\n    '\\u1E98': 'w',\n    '\\u1E89': 'w',\n    '\\u2C73': 'w',\n    '\\u24E7': 'x',\n    '\\uFF58': 'x',\n    '\\u1E8B': 'x',\n    '\\u1E8D': 'x',\n    '\\u24E8': 'y',\n    '\\uFF59': 'y',\n    '\\u1EF3': 'y',\n    '\\u00FD': 'y',\n    '\\u0177': 'y',\n    '\\u1EF9': 'y',\n    '\\u0233': 'y',\n    '\\u1E8F': 'y',\n    '\\u00FF': 'y',\n    '\\u1EF7': 'y',\n    '\\u1E99': 'y',\n    '\\u1EF5': 'y',\n    '\\u01B4': 'y',\n    '\\u024F': 'y',\n    '\\u1EFF': 'y',\n    '\\u24E9': 'z',\n    '\\uFF5A': 'z',\n    '\\u017A': 'z',\n    '\\u1E91': 'z',\n    '\\u017C': 'z',\n    '\\u017E': 'z',\n    '\\u1E93': 'z',\n    '\\u1E95': 'z',\n    '\\u01B6': 'z',\n    '\\u0225': 'z',\n    '\\u0240': 'z',\n    '\\u2C6C': 'z',\n    '\\uA763': 'z',\n    '\\u0386': '\\u0391',\n    '\\u0388': '\\u0395',\n    '\\u0389': '\\u0397',\n    '\\u038A': '\\u0399',\n    '\\u03AA': '\\u0399',\n    '\\u038C': '\\u039F',\n    '\\u038E': '\\u03A5',\n    '\\u03AB': '\\u03A5',\n    '\\u038F': '\\u03A9',\n    '\\u03AC': '\\u03B1',\n    '\\u03AD': '\\u03B5',\n    '\\u03AE': '\\u03B7',\n    '\\u03AF': '\\u03B9',\n    '\\u03CA': '\\u03B9',\n    '\\u0390': '\\u03B9',\n    '\\u03CC': '\\u03BF',\n    '\\u03CD': '\\u03C5',\n    '\\u03CB': '\\u03C5',\n    '\\u03B0': '\\u03C5',\n    '\\u03CE': '\\u03C9',\n    '\\u03C2': '\\u03C3',\n    '\\u2019': '\\''\n  };\n\n  return diacritics;\n});\n\nS2.define('select2/data/base',[\n  '../utils'\n], function (Utils) {\n  function BaseAdapter ($element, options) {\n    BaseAdapter.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(BaseAdapter, Utils.Observable);\n\n  BaseAdapter.prototype.current = function (callback) {\n    throw new Error('The `current` method must be defined in child classes.');\n  };\n\n  BaseAdapter.prototype.query = function (params, callback) {\n    throw new Error('The `query` method must be defined in child classes.');\n  };\n\n  BaseAdapter.prototype.bind = function (container, $container) {\n    // Can be implemented in subclasses\n  };\n\n  BaseAdapter.prototype.destroy = function () {\n    // Can be implemented in subclasses\n  };\n\n  BaseAdapter.prototype.generateResultId = function (container, data) {\n    var id = container.id + '-result-';\n\n    id += Utils.generateChars(4);\n\n    if (data.id != null) {\n      id += '-' + data.id.toString();\n    } else {\n      id += '-' + Utils.generateChars(4);\n    }\n    return id;\n  };\n\n  return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n  './base',\n  '../utils',\n  'jquery'\n], function (BaseAdapter, Utils, $) {\n  function SelectAdapter ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    SelectAdapter.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(SelectAdapter, BaseAdapter);\n\n  SelectAdapter.prototype.current = function (callback) {\n    var data = [];\n    var self = this;\n\n    this.$element.find(':selected').each(function () {\n      var $option = $(this);\n\n      var option = self.item($option);\n\n      data.push(option);\n    });\n\n    callback(data);\n  };\n\n  SelectAdapter.prototype.select = function (data) {\n    var self = this;\n\n    data.selected = true;\n\n    // If data.element is a DOM node, use it instead\n    if ($(data.element).is('option')) {\n      data.element.selected = true;\n\n      this.$element.trigger('input').trigger('change');\n\n      return;\n    }\n\n    if (this.$element.prop('multiple')) {\n      this.current(function (currentData) {\n        var val = [];\n\n        data = [data];\n        data.push.apply(data, currentData);\n\n        for (var d = 0; d < data.length; d++) {\n          var id = data[d].id;\n\n          if ($.inArray(id, val) === -1) {\n            val.push(id);\n          }\n        }\n\n        self.$element.val(val);\n        self.$element.trigger('input').trigger('change');\n      });\n    } else {\n      var val = data.id;\n\n      this.$element.val(val);\n      this.$element.trigger('input').trigger('change');\n    }\n  };\n\n  SelectAdapter.prototype.unselect = function (data) {\n    var self = this;\n\n    if (!this.$element.prop('multiple')) {\n      return;\n    }\n\n    data.selected = false;\n\n    if ($(data.element).is('option')) {\n      data.element.selected = false;\n\n      this.$element.trigger('input').trigger('change');\n\n      return;\n    }\n\n    this.current(function (currentData) {\n      var val = [];\n\n      for (var d = 0; d < currentData.length; d++) {\n        var id = currentData[d].id;\n\n        if (id !== data.id && $.inArray(id, val) === -1) {\n          val.push(id);\n        }\n      }\n\n      self.$element.val(val);\n\n      self.$element.trigger('input').trigger('change');\n    });\n  };\n\n  SelectAdapter.prototype.bind = function (container, $container) {\n    var self = this;\n\n    this.container = container;\n\n    container.on('select', function (params) {\n      self.select(params.data);\n    });\n\n    container.on('unselect', function (params) {\n      self.unselect(params.data);\n    });\n  };\n\n  SelectAdapter.prototype.destroy = function () {\n    // Remove anything added to child elements\n    this.$element.find('*').each(function () {\n      // Remove any custom data set by Select2\n      Utils.RemoveData(this);\n    });\n  };\n\n  SelectAdapter.prototype.query = function (params, callback) {\n    var data = [];\n    var self = this;\n\n    var $options = this.$element.children();\n\n    $options.each(function () {\n      var $option = $(this);\n\n      if (!$option.is('option') && !$option.is('optgroup')) {\n        return;\n      }\n\n      var option = self.item($option);\n\n      var matches = self.matches(params, option);\n\n      if (matches !== null) {\n        data.push(matches);\n      }\n    });\n\n    callback({\n      results: data\n    });\n  };\n\n  SelectAdapter.prototype.addOptions = function ($options) {\n    Utils.appendMany(this.$element, $options);\n  };\n\n  SelectAdapter.prototype.option = function (data) {\n    var option;\n\n    if (data.children) {\n      option = document.createElement('optgroup');\n      option.label = data.text;\n    } else {\n      option = document.createElement('option');\n\n      if (option.textContent !== undefined) {\n        option.textContent = data.text;\n      } else {\n        option.innerText = data.text;\n      }\n    }\n\n    if (data.id !== undefined) {\n      option.value = data.id;\n    }\n\n    if (data.disabled) {\n      option.disabled = true;\n    }\n\n    if (data.selected) {\n      option.selected = true;\n    }\n\n    if (data.title) {\n      option.title = data.title;\n    }\n\n    var $option = $(option);\n\n    var normalizedData = this._normalizeItem(data);\n    normalizedData.element = option;\n\n    // Override the option's data with the combined data\n    Utils.StoreData(option, 'data', normalizedData);\n\n    return $option;\n  };\n\n  SelectAdapter.prototype.item = function ($option) {\n    var data = {};\n\n    data = Utils.GetData($option[0], 'data');\n\n    if (data != null) {\n      return data;\n    }\n\n    if ($option.is('option')) {\n      data = {\n        id: $option.val(),\n        text: $option.text(),\n        disabled: $option.prop('disabled'),\n        selected: $option.prop('selected'),\n        title: $option.prop('title')\n      };\n    } else if ($option.is('optgroup')) {\n      data = {\n        text: $option.prop('label'),\n        children: [],\n        title: $option.prop('title')\n      };\n\n      var $children = $option.children('option');\n      var children = [];\n\n      for (var c = 0; c < $children.length; c++) {\n        var $child = $($children[c]);\n\n        var child = this.item($child);\n\n        children.push(child);\n      }\n\n      data.children = children;\n    }\n\n    data = this._normalizeItem(data);\n    data.element = $option[0];\n\n    Utils.StoreData($option[0], 'data', data);\n\n    return data;\n  };\n\n  SelectAdapter.prototype._normalizeItem = function (item) {\n    if (item !== Object(item)) {\n      item = {\n        id: item,\n        text: item\n      };\n    }\n\n    item = $.extend({}, {\n      text: ''\n    }, item);\n\n    var defaults = {\n      selected: false,\n      disabled: false\n    };\n\n    if (item.id != null) {\n      item.id = item.id.toString();\n    }\n\n    if (item.text != null) {\n      item.text = item.text.toString();\n    }\n\n    if (item._resultId == null && item.id && this.container != null) {\n      item._resultId = this.generateResultId(this.container, item);\n    }\n\n    return $.extend({}, defaults, item);\n  };\n\n  SelectAdapter.prototype.matches = function (params, data) {\n    var matcher = this.options.get('matcher');\n\n    return matcher(params, data);\n  };\n\n  return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n  './select',\n  '../utils',\n  'jquery'\n], function (SelectAdapter, Utils, $) {\n  function ArrayAdapter ($element, options) {\n    this._dataToConvert = options.get('data') || [];\n\n    ArrayAdapter.__super__.constructor.call(this, $element, options);\n  }\n\n  Utils.Extend(ArrayAdapter, SelectAdapter);\n\n  ArrayAdapter.prototype.bind = function (container, $container) {\n    ArrayAdapter.__super__.bind.call(this, container, $container);\n\n    this.addOptions(this.convertToOptions(this._dataToConvert));\n  };\n\n  ArrayAdapter.prototype.select = function (data) {\n    var $option = this.$element.find('option').filter(function (i, elm) {\n      return elm.value == data.id.toString();\n    });\n\n    if ($option.length === 0) {\n      $option = this.option(data);\n\n      this.addOptions($option);\n    }\n\n    ArrayAdapter.__super__.select.call(this, data);\n  };\n\n  ArrayAdapter.prototype.convertToOptions = function (data) {\n    var self = this;\n\n    var $existing = this.$element.find('option');\n    var existingIds = $existing.map(function () {\n      return self.item($(this)).id;\n    }).get();\n\n    var $options = [];\n\n    // Filter out all items except for the one passed in the argument\n    function onlyItem (item) {\n      return function () {\n        return $(this).val() == item.id;\n      };\n    }\n\n    for (var d = 0; d < data.length; d++) {\n      var item = this._normalizeItem(data[d]);\n\n      // Skip items which were pre-loaded, only merge the data\n      if ($.inArray(item.id, existingIds) >= 0) {\n        var $existingOption = $existing.filter(onlyItem(item));\n\n        var existingData = this.item($existingOption);\n        var newData = $.extend(true, {}, item, existingData);\n\n        var $newOption = this.option(newData);\n\n        $existingOption.replaceWith($newOption);\n\n        continue;\n      }\n\n      var $option = this.option(item);\n\n      if (item.children) {\n        var $children = this.convertToOptions(item.children);\n\n        Utils.appendMany($option, $children);\n      }\n\n      $options.push($option);\n    }\n\n    return $options;\n  };\n\n  return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n  './array',\n  '../utils',\n  'jquery'\n], function (ArrayAdapter, Utils, $) {\n  function AjaxAdapter ($element, options) {\n    this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n    if (this.ajaxOptions.processResults != null) {\n      this.processResults = this.ajaxOptions.processResults;\n    }\n\n    AjaxAdapter.__super__.constructor.call(this, $element, options);\n  }\n\n  Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n  AjaxAdapter.prototype._applyDefaults = function (options) {\n    var defaults = {\n      data: function (params) {\n        return $.extend({}, params, {\n          q: params.term\n        });\n      },\n      transport: function (params, success, failure) {\n        var $request = $.ajax(params);\n\n        $request.then(success);\n        $request.fail(failure);\n\n        return $request;\n      }\n    };\n\n    return $.extend({}, defaults, options, true);\n  };\n\n  AjaxAdapter.prototype.processResults = function (results) {\n    return results;\n  };\n\n  AjaxAdapter.prototype.query = function (params, callback) {\n    var matches = [];\n    var self = this;\n\n    if (this._request != null) {\n      // JSONP requests cannot always be aborted\n      if ($.isFunction(this._request.abort)) {\n        this._request.abort();\n      }\n\n      this._request = null;\n    }\n\n    var options = $.extend({\n      type: 'GET'\n    }, this.ajaxOptions);\n\n    if (typeof options.url === 'function') {\n      options.url = options.url.call(this.$element, params);\n    }\n\n    if (typeof options.data === 'function') {\n      options.data = options.data.call(this.$element, params);\n    }\n\n    function request () {\n      var $request = options.transport(options, function (data) {\n        var results = self.processResults(data, params);\n\n        if (self.options.get('debug') && window.console && console.error) {\n          // Check to make sure that the response included a `results` key.\n          if (!results || !results.results || !$.isArray(results.results)) {\n            console.error(\n              'Select2: The AJAX results did not return an array in the ' +\n              '`results` key of the response.'\n            );\n          }\n        }\n\n        callback(results);\n      }, function () {\n        // Attempt to detect if a request was aborted\n        // Only works if the transport exposes a status property\n        if ('status' in $request &&\n            ($request.status === 0 || $request.status === '0')) {\n          return;\n        }\n\n        self.trigger('results:message', {\n          message: 'errorLoading'\n        });\n      });\n\n      self._request = $request;\n    }\n\n    if (this.ajaxOptions.delay && params.term != null) {\n      if (this._queryTimeout) {\n        window.clearTimeout(this._queryTimeout);\n      }\n\n      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n    } else {\n      request();\n    }\n  };\n\n  return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n  'jquery'\n], function ($) {\n  function Tags (decorated, $element, options) {\n    var tags = options.get('tags');\n\n    var createTag = options.get('createTag');\n\n    if (createTag !== undefined) {\n      this.createTag = createTag;\n    }\n\n    var insertTag = options.get('insertTag');\n\n    if (insertTag !== undefined) {\n        this.insertTag = insertTag;\n    }\n\n    decorated.call(this, $element, options);\n\n    if ($.isArray(tags)) {\n      for (var t = 0; t < tags.length; t++) {\n        var tag = tags[t];\n        var item = this._normalizeItem(tag);\n\n        var $option = this.option(item);\n\n        this.$element.append($option);\n      }\n    }\n  }\n\n  Tags.prototype.query = function (decorated, params, callback) {\n    var self = this;\n\n    this._removeOldTags();\n\n    if (params.term == null || params.page != null) {\n      decorated.call(this, params, callback);\n      return;\n    }\n\n    function wrapper (obj, child) {\n      var data = obj.results;\n\n      for (var i = 0; i < data.length; i++) {\n        var option = data[i];\n\n        var checkChildren = (\n          option.children != null &&\n          !wrapper({\n            results: option.children\n          }, true)\n        );\n\n        var optionText = (option.text || '').toUpperCase();\n        var paramsTerm = (params.term || '').toUpperCase();\n\n        var checkText = optionText === paramsTerm;\n\n        if (checkText || checkChildren) {\n          if (child) {\n            return false;\n          }\n\n          obj.data = data;\n          callback(obj);\n\n          return;\n        }\n      }\n\n      if (child) {\n        return true;\n      }\n\n      var tag = self.createTag(params);\n\n      if (tag != null) {\n        var $option = self.option(tag);\n        $option.attr('data-select2-tag', true);\n\n        self.addOptions([$option]);\n\n        self.insertTag(data, tag);\n      }\n\n      obj.results = data;\n\n      callback(obj);\n    }\n\n    decorated.call(this, params, wrapper);\n  };\n\n  Tags.prototype.createTag = function (decorated, params) {\n    var term = $.trim(params.term);\n\n    if (term === '') {\n      return null;\n    }\n\n    return {\n      id: term,\n      text: term\n    };\n  };\n\n  Tags.prototype.insertTag = function (_, data, tag) {\n    data.unshift(tag);\n  };\n\n  Tags.prototype._removeOldTags = function (_) {\n    var $options = this.$element.find('option[data-select2-tag]');\n\n    $options.each(function () {\n      if (this.selected) {\n        return;\n      }\n\n      $(this).remove();\n    });\n  };\n\n  return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n  'jquery'\n], function ($) {\n  function Tokenizer (decorated, $element, options) {\n    var tokenizer = options.get('tokenizer');\n\n    if (tokenizer !== undefined) {\n      this.tokenizer = tokenizer;\n    }\n\n    decorated.call(this, $element, options);\n  }\n\n  Tokenizer.prototype.bind = function (decorated, container, $container) {\n    decorated.call(this, container, $container);\n\n    this.$search =  container.dropdown.$search || container.selection.$search ||\n      $container.find('.select2-search__field');\n  };\n\n  Tokenizer.prototype.query = function (decorated, params, callback) {\n    var self = this;\n\n    function createAndSelect (data) {\n      // Normalize the data object so we can use it for checks\n      var item = self._normalizeItem(data);\n\n      // Check if the data object already exists as a tag\n      // Select it if it doesn't\n      var $existingOptions = self.$element.find('option').filter(function () {\n        return $(this).val() === item.id;\n      });\n\n      // If an existing option wasn't found for it, create the option\n      if (!$existingOptions.length) {\n        var $option = self.option(item);\n        $option.attr('data-select2-tag', true);\n\n        self._removeOldTags();\n        self.addOptions([$option]);\n      }\n\n      // Select the item, now that we know there is an option for it\n      select(item);\n    }\n\n    function select (data) {\n      self.trigger('select', {\n        data: data\n      });\n    }\n\n    params.term = params.term || '';\n\n    var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n    if (tokenData.term !== params.term) {\n      // Replace the search term if we have the search box\n      if (this.$search.length) {\n        this.$search.val(tokenData.term);\n        this.$search.trigger('focus');\n      }\n\n      params.term = tokenData.term;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n    var separators = options.get('tokenSeparators') || [];\n    var term = params.term;\n    var i = 0;\n\n    var createTag = this.createTag || function (params) {\n      return {\n        id: params.term,\n        text: params.term\n      };\n    };\n\n    while (i < term.length) {\n      var termChar = term[i];\n\n      if ($.inArray(termChar, separators) === -1) {\n        i++;\n\n        continue;\n      }\n\n      var part = term.substr(0, i);\n      var partParams = $.extend({}, params, {\n        term: part\n      });\n\n      var data = createTag(partParams);\n\n      if (data == null) {\n        i++;\n        continue;\n      }\n\n      callback(data);\n\n      // Reset the term to not include the tokenized portion\n      term = term.substr(i + 1) || '';\n      i = 0;\n    }\n\n    return {\n      term: term\n    };\n  };\n\n  return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n  function MinimumInputLength (decorated, $e, options) {\n    this.minimumInputLength = options.get('minimumInputLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MinimumInputLength.prototype.query = function (decorated, params, callback) {\n    params.term = params.term || '';\n\n    if (params.term.length < this.minimumInputLength) {\n      this.trigger('results:message', {\n        message: 'inputTooShort',\n        args: {\n          minimum: this.minimumInputLength,\n          input: params.term,\n          params: params\n        }\n      });\n\n      return;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n  function MaximumInputLength (decorated, $e, options) {\n    this.maximumInputLength = options.get('maximumInputLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MaximumInputLength.prototype.query = function (decorated, params, callback) {\n    params.term = params.term || '';\n\n    if (this.maximumInputLength > 0 &&\n        params.term.length > this.maximumInputLength) {\n      this.trigger('results:message', {\n        message: 'inputTooLong',\n        args: {\n          maximum: this.maximumInputLength,\n          input: params.term,\n          params: params\n        }\n      });\n\n      return;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n  function MaximumSelectionLength (decorated, $e, options) {\n    this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MaximumSelectionLength.prototype.bind =\n    function (decorated, container, $container) {\n      var self = this;\n\n      decorated.call(this, container, $container);\n\n      container.on('select', function () {\n        self._checkIfMaximumSelected();\n      });\n  };\n\n  MaximumSelectionLength.prototype.query =\n    function (decorated, params, callback) {\n      var self = this;\n\n      this._checkIfMaximumSelected(function () {\n        decorated.call(self, params, callback);\n      });\n  };\n\n  MaximumSelectionLength.prototype._checkIfMaximumSelected =\n    function (_, successCallback) {\n      var self = this;\n\n      this.current(function (currentData) {\n        var count = currentData != null ? currentData.length : 0;\n        if (self.maximumSelectionLength > 0 &&\n          count >= self.maximumSelectionLength) {\n          self.trigger('results:message', {\n            message: 'maximumSelected',\n            args: {\n              maximum: self.maximumSelectionLength\n            }\n          });\n          return;\n        }\n\n        if (successCallback) {\n          successCallback();\n        }\n      });\n  };\n\n  return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n  'jquery',\n  './utils'\n], function ($, Utils) {\n  function Dropdown ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    Dropdown.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(Dropdown, Utils.Observable);\n\n  Dropdown.prototype.render = function () {\n    var $dropdown = $(\n      '<span class=\"select2-dropdown\">' +\n        '<span class=\"select2-results\"></span>' +\n      '</span>'\n    );\n\n    $dropdown.attr('dir', this.options.get('dir'));\n\n    this.$dropdown = $dropdown;\n\n    return $dropdown;\n  };\n\n  Dropdown.prototype.bind = function () {\n    // Should be implemented in subclasses\n  };\n\n  Dropdown.prototype.position = function ($dropdown, $container) {\n    // Should be implemented in subclasses\n  };\n\n  Dropdown.prototype.destroy = function () {\n    // Remove the dropdown from the DOM\n    this.$dropdown.remove();\n  };\n\n  return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n  'jquery',\n  '../utils'\n], function ($, Utils) {\n  function Search () { }\n\n  Search.prototype.render = function (decorated) {\n    var $rendered = decorated.call(this);\n\n    var $search = $(\n      '<span class=\"select2-search select2-search--dropdown\">' +\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n        ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' +\n      '</span>'\n    );\n\n    this.$searchContainer = $search;\n    this.$search = $search.find('input');\n\n    $rendered.prepend($search);\n\n    return $rendered;\n  };\n\n  Search.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    decorated.call(this, container, $container);\n\n    this.$search.on('keydown', function (evt) {\n      self.trigger('keypress', evt);\n\n      self._keyUpPrevented = evt.isDefaultPrevented();\n    });\n\n    // Workaround for browsers which do not support the `input` event\n    // This will prevent double-triggering of events for browsers which support\n    // both the `keyup` and `input` events.\n    this.$search.on('input', function (evt) {\n      // Unbind the duplicated `keyup` event\n      $(this).off('keyup');\n    });\n\n    this.$search.on('keyup input', function (evt) {\n      self.handleSearch(evt);\n    });\n\n    container.on('open', function () {\n      self.$search.attr('tabindex', 0);\n      self.$search.attr('aria-controls', resultsId);\n\n      self.$search.trigger('focus');\n\n      window.setTimeout(function () {\n        self.$search.trigger('focus');\n      }, 0);\n    });\n\n    container.on('close', function () {\n      self.$search.attr('tabindex', -1);\n      self.$search.removeAttr('aria-controls');\n      self.$search.removeAttr('aria-activedescendant');\n\n      self.$search.val('');\n      self.$search.trigger('blur');\n    });\n\n    container.on('focus', function () {\n      if (!container.isOpen()) {\n        self.$search.trigger('focus');\n      }\n    });\n\n    container.on('results:all', function (params) {\n      if (params.query.term == null || params.query.term === '') {\n        var showSearch = self.showSearch(params);\n\n        if (showSearch) {\n          self.$searchContainer.removeClass('select2-search--hide');\n        } else {\n          self.$searchContainer.addClass('select2-search--hide');\n        }\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      if (params.data._resultId) {\n        self.$search.attr('aria-activedescendant', params.data._resultId);\n      } else {\n        self.$search.removeAttr('aria-activedescendant');\n      }\n    });\n  };\n\n  Search.prototype.handleSearch = function (evt) {\n    if (!this._keyUpPrevented) {\n      var input = this.$search.val();\n\n      this.trigger('query', {\n        term: input\n      });\n    }\n\n    this._keyUpPrevented = false;\n  };\n\n  Search.prototype.showSearch = function (_, params) {\n    return true;\n  };\n\n  return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n  function HidePlaceholder (decorated, $element, options, dataAdapter) {\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n    decorated.call(this, $element, options, dataAdapter);\n  }\n\n  HidePlaceholder.prototype.append = function (decorated, data) {\n    data.results = this.removePlaceholder(data.results);\n\n    decorated.call(this, data);\n  };\n\n  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n    if (typeof placeholder === 'string') {\n      placeholder = {\n        id: '',\n        text: placeholder\n      };\n    }\n\n    return placeholder;\n  };\n\n  HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n    var modifiedData = data.slice(0);\n\n    for (var d = data.length - 1; d >= 0; d--) {\n      var item = data[d];\n\n      if (this.placeholder.id === item.id) {\n        modifiedData.splice(d, 1);\n      }\n    }\n\n    return modifiedData;\n  };\n\n  return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n  'jquery'\n], function ($) {\n  function InfiniteScroll (decorated, $element, options, dataAdapter) {\n    this.lastParams = {};\n\n    decorated.call(this, $element, options, dataAdapter);\n\n    this.$loadingMore = this.createLoadingMore();\n    this.loading = false;\n  }\n\n  InfiniteScroll.prototype.append = function (decorated, data) {\n    this.$loadingMore.remove();\n    this.loading = false;\n\n    decorated.call(this, data);\n\n    if (this.showLoadingMore(data)) {\n      this.$results.append(this.$loadingMore);\n      this.loadMoreIfNeeded();\n    }\n  };\n\n  InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('query', function (params) {\n      self.lastParams = params;\n      self.loading = true;\n    });\n\n    container.on('query:append', function (params) {\n      self.lastParams = params;\n      self.loading = true;\n    });\n\n    this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n  };\n\n  InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n    var isLoadMoreVisible = $.contains(\n      document.documentElement,\n      this.$loadingMore[0]\n    );\n\n    if (this.loading || !isLoadMoreVisible) {\n      return;\n    }\n\n    var currentOffset = this.$results.offset().top +\n      this.$results.outerHeight(false);\n    var loadingMoreOffset = this.$loadingMore.offset().top +\n      this.$loadingMore.outerHeight(false);\n\n    if (currentOffset + 50 >= loadingMoreOffset) {\n      this.loadMore();\n    }\n  };\n\n  InfiniteScroll.prototype.loadMore = function () {\n    this.loading = true;\n\n    var params = $.extend({}, {page: 1}, this.lastParams);\n\n    params.page++;\n\n    this.trigger('query:append', params);\n  };\n\n  InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n    return data.pagination && data.pagination.more;\n  };\n\n  InfiniteScroll.prototype.createLoadingMore = function () {\n    var $option = $(\n      '<li ' +\n      'class=\"select2-results__option select2-results__option--load-more\"' +\n      'role=\"option\" aria-disabled=\"true\"></li>'\n    );\n\n    var message = this.options.get('translations').get('loadingMore');\n\n    $option.html(message(this.lastParams));\n\n    return $option;\n  };\n\n  return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n  'jquery',\n  '../utils'\n], function ($, Utils) {\n  function AttachBody (decorated, $element, options) {\n    this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n    decorated.call(this, $element, options);\n  }\n\n  AttachBody.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('open', function () {\n      self._showDropdown();\n      self._attachPositioningHandler(container);\n\n      // Must bind after the results handlers to ensure correct sizing\n      self._bindContainerResultHandlers(container);\n    });\n\n    container.on('close', function () {\n      self._hideDropdown();\n      self._detachPositioningHandler(container);\n    });\n\n    this.$dropdownContainer.on('mousedown', function (evt) {\n      evt.stopPropagation();\n    });\n  };\n\n  AttachBody.prototype.destroy = function (decorated) {\n    decorated.call(this);\n\n    this.$dropdownContainer.remove();\n  };\n\n  AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n    // Clone all of the container classes\n    $dropdown.attr('class', $container.attr('class'));\n\n    $dropdown.removeClass('select2');\n    $dropdown.addClass('select2-container--open');\n\n    $dropdown.css({\n      position: 'absolute',\n      top: -999999\n    });\n\n    this.$container = $container;\n  };\n\n  AttachBody.prototype.render = function (decorated) {\n    var $container = $('<span></span>');\n\n    var $dropdown = decorated.call(this);\n    $container.append($dropdown);\n\n    this.$dropdownContainer = $container;\n\n    return $container;\n  };\n\n  AttachBody.prototype._hideDropdown = function (decorated) {\n    this.$dropdownContainer.detach();\n  };\n\n  AttachBody.prototype._bindContainerResultHandlers =\n      function (decorated, container) {\n\n    // These should only be bound once\n    if (this._containerResultsHandlersBound) {\n      return;\n    }\n\n    var self = this;\n\n    container.on('results:all', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('results:append', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('results:message', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('select', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('unselect', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    this._containerResultsHandlersBound = true;\n  };\n\n  AttachBody.prototype._attachPositioningHandler =\n      function (decorated, container) {\n    var self = this;\n\n    var scrollEvent = 'scroll.select2.' + container.id;\n    var resizeEvent = 'resize.select2.' + container.id;\n    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n    $watchers.each(function () {\n      Utils.StoreData(this, 'select2-scroll-position', {\n        x: $(this).scrollLeft(),\n        y: $(this).scrollTop()\n      });\n    });\n\n    $watchers.on(scrollEvent, function (ev) {\n      var position = Utils.GetData(this, 'select2-scroll-position');\n      $(this).scrollTop(position.y);\n    });\n\n    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n      function (e) {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n  };\n\n  AttachBody.prototype._detachPositioningHandler =\n      function (decorated, container) {\n    var scrollEvent = 'scroll.select2.' + container.id;\n    var resizeEvent = 'resize.select2.' + container.id;\n    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n    $watchers.off(scrollEvent);\n\n    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n  };\n\n  AttachBody.prototype._positionDropdown = function () {\n    var $window = $(window);\n\n    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n    var newDirection = null;\n\n    var offset = this.$container.offset();\n\n    offset.bottom = offset.top + this.$container.outerHeight(false);\n\n    var container = {\n      height: this.$container.outerHeight(false)\n    };\n\n    container.top = offset.top;\n    container.bottom = offset.top + container.height;\n\n    var dropdown = {\n      height: this.$dropdown.outerHeight(false)\n    };\n\n    var viewport = {\n      top: $window.scrollTop(),\n      bottom: $window.scrollTop() + $window.height()\n    };\n\n    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n    var css = {\n      left: offset.left,\n      top: container.bottom\n    };\n\n    // Determine what the parent element is to use for calculating the offset\n    var $offsetParent = this.$dropdownParent;\n\n    // For statically positioned elements, we need to get the element\n    // that is determining the offset\n    if ($offsetParent.css('position') === 'static') {\n      $offsetParent = $offsetParent.offsetParent();\n    }\n\n    var parentOffset = {\n      top: 0,\n      left: 0\n    };\n\n    if (\n      $.contains(document.body, $offsetParent[0]) ||\n      $offsetParent[0].isConnected\n      ) {\n      parentOffset = $offsetParent.offset();\n    }\n\n    css.top -= parentOffset.top;\n    css.left -= parentOffset.left;\n\n    if (!isCurrentlyAbove && !isCurrentlyBelow) {\n      newDirection = 'below';\n    }\n\n    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n      newDirection = 'above';\n    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n      newDirection = 'below';\n    }\n\n    if (newDirection == 'above' ||\n      (isCurrentlyAbove && newDirection !== 'below')) {\n      css.top = container.top - parentOffset.top - dropdown.height;\n    }\n\n    if (newDirection != null) {\n      this.$dropdown\n        .removeClass('select2-dropdown--below select2-dropdown--above')\n        .addClass('select2-dropdown--' + newDirection);\n      this.$container\n        .removeClass('select2-container--below select2-container--above')\n        .addClass('select2-container--' + newDirection);\n    }\n\n    this.$dropdownContainer.css(css);\n  };\n\n  AttachBody.prototype._resizeDropdown = function () {\n    var css = {\n      width: this.$container.outerWidth(false) + 'px'\n    };\n\n    if (this.options.get('dropdownAutoWidth')) {\n      css.minWidth = css.width;\n      css.position = 'relative';\n      css.width = 'auto';\n    }\n\n    this.$dropdown.css(css);\n  };\n\n  AttachBody.prototype._showDropdown = function (decorated) {\n    this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n    this._positionDropdown();\n    this._resizeDropdown();\n  };\n\n  return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n  function countResults (data) {\n    var count = 0;\n\n    for (var d = 0; d < data.length; d++) {\n      var item = data[d];\n\n      if (item.children) {\n        count += countResults(item.children);\n      } else {\n        count++;\n      }\n    }\n\n    return count;\n  }\n\n  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n    this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n    if (this.minimumResultsForSearch < 0) {\n      this.minimumResultsForSearch = Infinity;\n    }\n\n    decorated.call(this, $element, options, dataAdapter);\n  }\n\n  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n    if (countResults(params.data.results) < this.minimumResultsForSearch) {\n      return false;\n    }\n\n    return decorated.call(this, params);\n  };\n\n  return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n  '../utils'\n], function (Utils) {\n  function SelectOnClose () { }\n\n  SelectOnClose.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('close', function (params) {\n      self._handleSelectOnClose(params);\n    });\n  };\n\n  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n    if (params && params.originalSelect2Event != null) {\n      var event = params.originalSelect2Event;\n\n      // Don't select an item if the close event was triggered from a select or\n      // unselect event\n      if (event._type === 'select' || event._type === 'unselect') {\n        return;\n      }\n    }\n\n    var $highlightedResults = this.getHighlightedResults();\n\n    // Only select highlighted results\n    if ($highlightedResults.length < 1) {\n      return;\n    }\n\n    var data = Utils.GetData($highlightedResults[0], 'data');\n\n    // Don't re-select already selected resulte\n    if (\n      (data.element != null && data.element.selected) ||\n      (data.element == null && data.selected)\n    ) {\n      return;\n    }\n\n    this.trigger('select', {\n        data: data\n    });\n  };\n\n  return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n  function CloseOnSelect () { }\n\n  CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('select', function (evt) {\n      self._selectTriggered(evt);\n    });\n\n    container.on('unselect', function (evt) {\n      self._selectTriggered(evt);\n    });\n  };\n\n  CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n    var originalEvent = evt.originalEvent;\n\n    // Don't close if the control key is being held\n    if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n      return;\n    }\n\n    this.trigger('close', {\n      originalEvent: originalEvent,\n      originalSelect2Event: evt\n    });\n  };\n\n  return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n  // English\n  return {\n    errorLoading: function () {\n      return 'The results could not be loaded.';\n    },\n    inputTooLong: function (args) {\n      var overChars = args.input.length - args.maximum;\n\n      var message = 'Please delete ' + overChars + ' character';\n\n      if (overChars != 1) {\n        message += 's';\n      }\n\n      return message;\n    },\n    inputTooShort: function (args) {\n      var remainingChars = args.minimum - args.input.length;\n\n      var message = 'Please enter ' + remainingChars + ' or more characters';\n\n      return message;\n    },\n    loadingMore: function () {\n      return 'Loading more results…';\n    },\n    maximumSelected: function (args) {\n      var message = 'You can only select ' + args.maximum + ' item';\n\n      if (args.maximum != 1) {\n        message += 's';\n      }\n\n      return message;\n    },\n    noResults: function () {\n      return 'No results found';\n    },\n    searching: function () {\n      return 'Searching…';\n    },\n    removeAllItems: function () {\n      return 'Remove all items';\n    }\n  };\n});\n\nS2.define('select2/defaults',[\n  'jquery',\n  'require',\n\n  './results',\n\n  './selection/single',\n  './selection/multiple',\n  './selection/placeholder',\n  './selection/allowClear',\n  './selection/search',\n  './selection/eventRelay',\n\n  './utils',\n  './translation',\n  './diacritics',\n\n  './data/select',\n  './data/array',\n  './data/ajax',\n  './data/tags',\n  './data/tokenizer',\n  './data/minimumInputLength',\n  './data/maximumInputLength',\n  './data/maximumSelectionLength',\n\n  './dropdown',\n  './dropdown/search',\n  './dropdown/hidePlaceholder',\n  './dropdown/infiniteScroll',\n  './dropdown/attachBody',\n  './dropdown/minimumResultsForSearch',\n  './dropdown/selectOnClose',\n  './dropdown/closeOnSelect',\n\n  './i18n/en'\n], function ($, require,\n\n             ResultsList,\n\n             SingleSelection, MultipleSelection, Placeholder, AllowClear,\n             SelectionSearch, EventRelay,\n\n             Utils, Translation, DIACRITICS,\n\n             SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n             EnglishTranslation) {\n  function Defaults () {\n    this.reset();\n  }\n\n  Defaults.prototype.apply = function (options) {\n    options = $.extend(true, {}, this.defaults, options);\n\n    if (options.dataAdapter == null) {\n      if (options.ajax != null) {\n        options.dataAdapter = AjaxData;\n      } else if (options.data != null) {\n        options.dataAdapter = ArrayData;\n      } else {\n        options.dataAdapter = SelectData;\n      }\n\n      if (options.minimumInputLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MinimumInputLength\n        );\n      }\n\n      if (options.maximumInputLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MaximumInputLength\n        );\n      }\n\n      if (options.maximumSelectionLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MaximumSelectionLength\n        );\n      }\n\n      if (options.tags) {\n        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n      }\n\n      if (options.tokenSeparators != null || options.tokenizer != null) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          Tokenizer\n        );\n      }\n\n      if (options.query != null) {\n        var Query = require(options.amdBase + 'compat/query');\n\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          Query\n        );\n      }\n\n      if (options.initSelection != null) {\n        var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          InitSelection\n        );\n      }\n    }\n\n    if (options.resultsAdapter == null) {\n      options.resultsAdapter = ResultsList;\n\n      if (options.ajax != null) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          InfiniteScroll\n        );\n      }\n\n      if (options.placeholder != null) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          HidePlaceholder\n        );\n      }\n\n      if (options.selectOnClose) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          SelectOnClose\n        );\n      }\n    }\n\n    if (options.dropdownAdapter == null) {\n      if (options.multiple) {\n        options.dropdownAdapter = Dropdown;\n      } else {\n        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n        options.dropdownAdapter = SearchableDropdown;\n      }\n\n      if (options.minimumResultsForSearch !== 0) {\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          MinimumResultsForSearch\n        );\n      }\n\n      if (options.closeOnSelect) {\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          CloseOnSelect\n        );\n      }\n\n      if (\n        options.dropdownCssClass != null ||\n        options.dropdownCss != null ||\n        options.adaptDropdownCssClass != null\n      ) {\n        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          DropdownCSS\n        );\n      }\n\n      options.dropdownAdapter = Utils.Decorate(\n        options.dropdownAdapter,\n        AttachBody\n      );\n    }\n\n    if (options.selectionAdapter == null) {\n      if (options.multiple) {\n        options.selectionAdapter = MultipleSelection;\n      } else {\n        options.selectionAdapter = SingleSelection;\n      }\n\n      // Add the placeholder mixin if a placeholder was specified\n      if (options.placeholder != null) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          Placeholder\n        );\n      }\n\n      if (options.allowClear) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          AllowClear\n        );\n      }\n\n      if (options.multiple) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          SelectionSearch\n        );\n      }\n\n      if (\n        options.containerCssClass != null ||\n        options.containerCss != null ||\n        options.adaptContainerCssClass != null\n      ) {\n        var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          ContainerCSS\n        );\n      }\n\n      options.selectionAdapter = Utils.Decorate(\n        options.selectionAdapter,\n        EventRelay\n      );\n    }\n\n    // If the defaults were not previously applied from an element, it is\n    // possible for the language option to have not been resolved\n    options.language = this._resolveLanguage(options.language);\n\n    // Always fall back to English since it will always be complete\n    options.language.push('en');\n\n    var uniqueLanguages = [];\n\n    for (var l = 0; l < options.language.length; l++) {\n      var language = options.language[l];\n\n      if (uniqueLanguages.indexOf(language) === -1) {\n        uniqueLanguages.push(language);\n      }\n    }\n\n    options.language = uniqueLanguages;\n\n    options.translations = this._processTranslations(\n      options.language,\n      options.debug\n    );\n\n    return options;\n  };\n\n  Defaults.prototype.reset = function () {\n    function stripDiacritics (text) {\n      // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n      function match(a) {\n        return DIACRITICS[a] || a;\n      }\n\n      return text.replace(/[^\\u0000-\\u007E]/g, match);\n    }\n\n    function matcher (params, data) {\n      // Always return the object if there is nothing to compare\n      if ($.trim(params.term) === '') {\n        return data;\n      }\n\n      // Do a recursive check for options with children\n      if (data.children && data.children.length > 0) {\n        // Clone the data object if there are children\n        // This is required as we modify the object to remove any non-matches\n        var match = $.extend(true, {}, data);\n\n        // Check each child of the option\n        for (var c = data.children.length - 1; c >= 0; c--) {\n          var child = data.children[c];\n\n          var matches = matcher(params, child);\n\n          // If there wasn't a match, remove the object in the array\n          if (matches == null) {\n            match.children.splice(c, 1);\n          }\n        }\n\n        // If any children matched, return the new object\n        if (match.children.length > 0) {\n          return match;\n        }\n\n        // If there were no matching children, check just the plain object\n        return matcher(params, match);\n      }\n\n      var original = stripDiacritics(data.text).toUpperCase();\n      var term = stripDiacritics(params.term).toUpperCase();\n\n      // Check if the text contains the term\n      if (original.indexOf(term) > -1) {\n        return data;\n      }\n\n      // If it doesn't contain the term, don't return anything\n      return null;\n    }\n\n    this.defaults = {\n      amdBase: './',\n      amdLanguageBase: './i18n/',\n      closeOnSelect: true,\n      debug: false,\n      dropdownAutoWidth: false,\n      escapeMarkup: Utils.escapeMarkup,\n      language: {},\n      matcher: matcher,\n      minimumInputLength: 0,\n      maximumInputLength: 0,\n      maximumSelectionLength: 0,\n      minimumResultsForSearch: 0,\n      selectOnClose: false,\n      scrollAfterSelect: false,\n      sorter: function (data) {\n        return data;\n      },\n      templateResult: function (result) {\n        return result.text;\n      },\n      templateSelection: function (selection) {\n        return selection.text;\n      },\n      theme: 'default',\n      width: 'resolve'\n    };\n  };\n\n  Defaults.prototype.applyFromElement = function (options, $element) {\n    var optionLanguage = options.language;\n    var defaultLanguage = this.defaults.language;\n    var elementLanguage = $element.prop('lang');\n    var parentLanguage = $element.closest('[lang]').prop('lang');\n\n    var languages = Array.prototype.concat.call(\n      this._resolveLanguage(elementLanguage),\n      this._resolveLanguage(optionLanguage),\n      this._resolveLanguage(defaultLanguage),\n      this._resolveLanguage(parentLanguage)\n    );\n\n    options.language = languages;\n\n    return options;\n  };\n\n  Defaults.prototype._resolveLanguage = function (language) {\n    if (!language) {\n      return [];\n    }\n\n    if ($.isEmptyObject(language)) {\n      return [];\n    }\n\n    if ($.isPlainObject(language)) {\n      return [language];\n    }\n\n    var languages;\n\n    if (!$.isArray(language)) {\n      languages = [language];\n    } else {\n      languages = language;\n    }\n\n    var resolvedLanguages = [];\n\n    for (var l = 0; l < languages.length; l++) {\n      resolvedLanguages.push(languages[l]);\n\n      if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n        // Extract the region information if it is included\n        var languageParts = languages[l].split('-');\n        var baseLanguage = languageParts[0];\n\n        resolvedLanguages.push(baseLanguage);\n      }\n    }\n\n    return resolvedLanguages;\n  };\n\n  Defaults.prototype._processTranslations = function (languages, debug) {\n    var translations = new Translation();\n\n    for (var l = 0; l < languages.length; l++) {\n      var languageData = new Translation();\n\n      var language = languages[l];\n\n      if (typeof language === 'string') {\n        try {\n          // Try to load it with the original name\n          languageData = Translation.loadPath(language);\n        } catch (e) {\n          try {\n            // If we couldn't load it, check if it wasn't the full path\n            language = this.defaults.amdLanguageBase + language;\n            languageData = Translation.loadPath(language);\n          } catch (ex) {\n            // The translation could not be loaded at all. Sometimes this is\n            // because of a configuration problem, other times this can be\n            // because of how Select2 helps load all possible translation files\n            if (debug && window.console && console.warn) {\n              console.warn(\n                'Select2: The language file for \"' + language + '\" could ' +\n                'not be automatically loaded. A fallback will be used instead.'\n              );\n            }\n          }\n        }\n      } else if ($.isPlainObject(language)) {\n        languageData = new Translation(language);\n      } else {\n        languageData = language;\n      }\n\n      translations.extend(languageData);\n    }\n\n    return translations;\n  };\n\n  Defaults.prototype.set = function (key, value) {\n    var camelKey = $.camelCase(key);\n\n    var data = {};\n    data[camelKey] = value;\n\n    var convertedData = Utils._convertData(data);\n\n    $.extend(true, this.defaults, convertedData);\n  };\n\n  var defaults = new Defaults();\n\n  return defaults;\n});\n\nS2.define('select2/options',[\n  'require',\n  'jquery',\n  './defaults',\n  './utils'\n], function (require, $, Defaults, Utils) {\n  function Options (options, $element) {\n    this.options = options;\n\n    if ($element != null) {\n      this.fromElement($element);\n    }\n\n    if ($element != null) {\n      this.options = Defaults.applyFromElement(this.options, $element);\n    }\n\n    this.options = Defaults.apply(this.options);\n\n    if ($element && $element.is('input')) {\n      var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n      this.options.dataAdapter = Utils.Decorate(\n        this.options.dataAdapter,\n        InputCompat\n      );\n    }\n  }\n\n  Options.prototype.fromElement = function ($e) {\n    var excludedData = ['select2'];\n\n    if (this.options.multiple == null) {\n      this.options.multiple = $e.prop('multiple');\n    }\n\n    if (this.options.disabled == null) {\n      this.options.disabled = $e.prop('disabled');\n    }\n\n    if (this.options.dir == null) {\n      if ($e.prop('dir')) {\n        this.options.dir = $e.prop('dir');\n      } else if ($e.closest('[dir]').prop('dir')) {\n        this.options.dir = $e.closest('[dir]').prop('dir');\n      } else {\n        this.options.dir = 'ltr';\n      }\n    }\n\n    $e.prop('disabled', this.options.disabled);\n    $e.prop('multiple', this.options.multiple);\n\n    if (Utils.GetData($e[0], 'select2Tags')) {\n      if (this.options.debug && window.console && console.warn) {\n        console.warn(\n          'Select2: The `data-select2-tags` attribute has been changed to ' +\n          'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n          'removed in future versions of Select2.'\n        );\n      }\n\n      Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n      Utils.StoreData($e[0], 'tags', true);\n    }\n\n    if (Utils.GetData($e[0], 'ajaxUrl')) {\n      if (this.options.debug && window.console && console.warn) {\n        console.warn(\n          'Select2: The `data-ajax-url` attribute has been changed to ' +\n          '`data-ajax--url` and support for the old attribute will be removed' +\n          ' in future versions of Select2.'\n        );\n      }\n\n      $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n      Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n    }\n\n    var dataset = {};\n\n    function upperCaseLetter(_, letter) {\n      return letter.toUpperCase();\n    }\n\n    // Pre-load all of the attributes which are prefixed with `data-`\n    for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n      var attributeName = $e[0].attributes[attr].name;\n      var prefix = 'data-';\n\n      if (attributeName.substr(0, prefix.length) == prefix) {\n        // Get the contents of the attribute after `data-`\n        var dataName = attributeName.substring(prefix.length);\n\n        // Get the data contents from the consistent source\n        // This is more than likely the jQuery data helper\n        var dataValue = Utils.GetData($e[0], dataName);\n\n        // camelCase the attribute name to match the spec\n        var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n        // Store the data attribute contents into the dataset since\n        dataset[camelDataName] = dataValue;\n      }\n    }\n\n    // Prefer the element's `dataset` attribute if it exists\n    // jQuery 1.x does not correctly handle data attributes with multiple dashes\n    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n      dataset = $.extend(true, {}, $e[0].dataset, dataset);\n    }\n\n    // Prefer our internal data cache if it exists\n    var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n    data = Utils._convertData(data);\n\n    for (var key in data) {\n      if ($.inArray(key, excludedData) > -1) {\n        continue;\n      }\n\n      if ($.isPlainObject(this.options[key])) {\n        $.extend(this.options[key], data[key]);\n      } else {\n        this.options[key] = data[key];\n      }\n    }\n\n    return this;\n  };\n\n  Options.prototype.get = function (key) {\n    return this.options[key];\n  };\n\n  Options.prototype.set = function (key, val) {\n    this.options[key] = val;\n  };\n\n  return Options;\n});\n\nS2.define('select2/core',[\n  'jquery',\n  './options',\n  './utils',\n  './keys'\n], function ($, Options, Utils, KEYS) {\n  var Select2 = function ($element, options) {\n    if (Utils.GetData($element[0], 'select2') != null) {\n      Utils.GetData($element[0], 'select2').destroy();\n    }\n\n    this.$element = $element;\n\n    this.id = this._generateId($element);\n\n    options = options || {};\n\n    this.options = new Options(options, $element);\n\n    Select2.__super__.constructor.call(this);\n\n    // Set up the tabindex\n\n    var tabindex = $element.attr('tabindex') || 0;\n    Utils.StoreData($element[0], 'old-tabindex', tabindex);\n    $element.attr('tabindex', '-1');\n\n    // Set up containers and adapters\n\n    var DataAdapter = this.options.get('dataAdapter');\n    this.dataAdapter = new DataAdapter($element, this.options);\n\n    var $container = this.render();\n\n    this._placeContainer($container);\n\n    var SelectionAdapter = this.options.get('selectionAdapter');\n    this.selection = new SelectionAdapter($element, this.options);\n    this.$selection = this.selection.render();\n\n    this.selection.position(this.$selection, $container);\n\n    var DropdownAdapter = this.options.get('dropdownAdapter');\n    this.dropdown = new DropdownAdapter($element, this.options);\n    this.$dropdown = this.dropdown.render();\n\n    this.dropdown.position(this.$dropdown, $container);\n\n    var ResultsAdapter = this.options.get('resultsAdapter');\n    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n    this.$results = this.results.render();\n\n    this.results.position(this.$results, this.$dropdown);\n\n    // Bind events\n\n    var self = this;\n\n    // Bind the container to all of the adapters\n    this._bindAdapters();\n\n    // Register any DOM event handlers\n    this._registerDomEvents();\n\n    // Register any internal event handlers\n    this._registerDataEvents();\n    this._registerSelectionEvents();\n    this._registerDropdownEvents();\n    this._registerResultsEvents();\n    this._registerEvents();\n\n    // Set the initial state\n    this.dataAdapter.current(function (initialData) {\n      self.trigger('selection:update', {\n        data: initialData\n      });\n    });\n\n    // Hide the original select\n    $element.addClass('select2-hidden-accessible');\n    $element.attr('aria-hidden', 'true');\n\n    // Synchronize any monitored attributes\n    this._syncAttributes();\n\n    Utils.StoreData($element[0], 'select2', this);\n\n    // Ensure backwards compatibility with $element.data('select2').\n    $element.data('select2', this);\n  };\n\n  Utils.Extend(Select2, Utils.Observable);\n\n  Select2.prototype._generateId = function ($element) {\n    var id = '';\n\n    if ($element.attr('id') != null) {\n      id = $element.attr('id');\n    } else if ($element.attr('name') != null) {\n      id = $element.attr('name') + '-' + Utils.generateChars(2);\n    } else {\n      id = Utils.generateChars(4);\n    }\n\n    id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n    id = 'select2-' + id;\n\n    return id;\n  };\n\n  Select2.prototype._placeContainer = function ($container) {\n    $container.insertAfter(this.$element);\n\n    var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n    if (width != null) {\n      $container.css('width', width);\n    }\n  };\n\n  Select2.prototype._resolveWidth = function ($element, method) {\n    var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n    if (method == 'resolve') {\n      var styleWidth = this._resolveWidth($element, 'style');\n\n      if (styleWidth != null) {\n        return styleWidth;\n      }\n\n      return this._resolveWidth($element, 'element');\n    }\n\n    if (method == 'element') {\n      var elementWidth = $element.outerWidth(false);\n\n      if (elementWidth <= 0) {\n        return 'auto';\n      }\n\n      return elementWidth + 'px';\n    }\n\n    if (method == 'style') {\n      var style = $element.attr('style');\n\n      if (typeof(style) !== 'string') {\n        return null;\n      }\n\n      var attrs = style.split(';');\n\n      for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n        var attr = attrs[i].replace(/\\s/g, '');\n        var matches = attr.match(WIDTH);\n\n        if (matches !== null && matches.length >= 1) {\n          return matches[1];\n        }\n      }\n\n      return null;\n    }\n\n    if (method == 'computedstyle') {\n      var computedStyle = window.getComputedStyle($element[0]);\n\n      return computedStyle.width;\n    }\n\n    return method;\n  };\n\n  Select2.prototype._bindAdapters = function () {\n    this.dataAdapter.bind(this, this.$container);\n    this.selection.bind(this, this.$container);\n\n    this.dropdown.bind(this, this.$container);\n    this.results.bind(this, this.$container);\n  };\n\n  Select2.prototype._registerDomEvents = function () {\n    var self = this;\n\n    this.$element.on('change.select2', function () {\n      self.dataAdapter.current(function (data) {\n        self.trigger('selection:update', {\n          data: data\n        });\n      });\n    });\n\n    this.$element.on('focus.select2', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this._syncA = Utils.bind(this._syncAttributes, this);\n    this._syncS = Utils.bind(this._syncSubtree, this);\n\n    if (this.$element[0].attachEvent) {\n      this.$element[0].attachEvent('onpropertychange', this._syncA);\n    }\n\n    var observer = window.MutationObserver ||\n      window.WebKitMutationObserver ||\n      window.MozMutationObserver\n    ;\n\n    if (observer != null) {\n      this._observer = new observer(function (mutations) {\n        self._syncA();\n        self._syncS(null, mutations);\n      });\n      this._observer.observe(this.$element[0], {\n        attributes: true,\n        childList: true,\n        subtree: false\n      });\n    } else if (this.$element[0].addEventListener) {\n      this.$element[0].addEventListener(\n        'DOMAttrModified',\n        self._syncA,\n        false\n      );\n      this.$element[0].addEventListener(\n        'DOMNodeInserted',\n        self._syncS,\n        false\n      );\n      this.$element[0].addEventListener(\n        'DOMNodeRemoved',\n        self._syncS,\n        false\n      );\n    }\n  };\n\n  Select2.prototype._registerDataEvents = function () {\n    var self = this;\n\n    this.dataAdapter.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerSelectionEvents = function () {\n    var self = this;\n    var nonRelayEvents = ['toggle', 'focus'];\n\n    this.selection.on('toggle', function () {\n      self.toggleDropdown();\n    });\n\n    this.selection.on('focus', function (params) {\n      self.focus(params);\n    });\n\n    this.selection.on('*', function (name, params) {\n      if ($.inArray(name, nonRelayEvents) !== -1) {\n        return;\n      }\n\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerDropdownEvents = function () {\n    var self = this;\n\n    this.dropdown.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerResultsEvents = function () {\n    var self = this;\n\n    this.results.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerEvents = function () {\n    var self = this;\n\n    this.on('open', function () {\n      self.$container.addClass('select2-container--open');\n    });\n\n    this.on('close', function () {\n      self.$container.removeClass('select2-container--open');\n    });\n\n    this.on('enable', function () {\n      self.$container.removeClass('select2-container--disabled');\n    });\n\n    this.on('disable', function () {\n      self.$container.addClass('select2-container--disabled');\n    });\n\n    this.on('blur', function () {\n      self.$container.removeClass('select2-container--focus');\n    });\n\n    this.on('query', function (params) {\n      if (!self.isOpen()) {\n        self.trigger('open', {});\n      }\n\n      this.dataAdapter.query(params, function (data) {\n        self.trigger('results:all', {\n          data: data,\n          query: params\n        });\n      });\n    });\n\n    this.on('query:append', function (params) {\n      this.dataAdapter.query(params, function (data) {\n        self.trigger('results:append', {\n          data: data,\n          query: params\n        });\n      });\n    });\n\n    this.on('keypress', function (evt) {\n      var key = evt.which;\n\n      if (self.isOpen()) {\n        if (key === KEYS.ESC || key === KEYS.TAB ||\n            (key === KEYS.UP && evt.altKey)) {\n          self.close(evt);\n\n          evt.preventDefault();\n        } else if (key === KEYS.ENTER) {\n          self.trigger('results:select', {});\n\n          evt.preventDefault();\n        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n          self.trigger('results:toggle', {});\n\n          evt.preventDefault();\n        } else if (key === KEYS.UP) {\n          self.trigger('results:previous', {});\n\n          evt.preventDefault();\n        } else if (key === KEYS.DOWN) {\n          self.trigger('results:next', {});\n\n          evt.preventDefault();\n        }\n      } else {\n        if (key === KEYS.ENTER || key === KEYS.SPACE ||\n            (key === KEYS.DOWN && evt.altKey)) {\n          self.open();\n\n          evt.preventDefault();\n        }\n      }\n    });\n  };\n\n  Select2.prototype._syncAttributes = function () {\n    this.options.set('disabled', this.$element.prop('disabled'));\n\n    if (this.isDisabled()) {\n      if (this.isOpen()) {\n        this.close();\n      }\n\n      this.trigger('disable', {});\n    } else {\n      this.trigger('enable', {});\n    }\n  };\n\n  Select2.prototype._isChangeMutation = function (evt, mutations) {\n    var changed = false;\n    var self = this;\n\n    // Ignore any mutation events raised for elements that aren't options or\n    // optgroups. This handles the case when the select element is destroyed\n    if (\n      evt && evt.target && (\n        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n      )\n    ) {\n      return;\n    }\n\n    if (!mutations) {\n      // If mutation events aren't supported, then we can only assume that the\n      // change affected the selections\n      changed = true;\n    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n      for (var n = 0; n < mutations.addedNodes.length; n++) {\n        var node = mutations.addedNodes[n];\n\n        if (node.selected) {\n          changed = true;\n        }\n      }\n    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n      changed = true;\n    } else if ($.isArray(mutations)) {\n      $.each(mutations, function(evt, mutation) {\n        if (self._isChangeMutation(evt, mutation)) {\n          // We've found a change mutation.\n          // Let's escape from the loop and continue\n          changed = true;\n          return false;\n        }\n      });\n    }\n    return changed;\n  };\n\n  Select2.prototype._syncSubtree = function (evt, mutations) {\n    var changed = this._isChangeMutation(evt, mutations);\n    var self = this;\n\n    // Only re-pull the data if we think there is a change\n    if (changed) {\n      this.dataAdapter.current(function (currentData) {\n        self.trigger('selection:update', {\n          data: currentData\n        });\n      });\n    }\n  };\n\n  /**\n   * Override the trigger method to automatically trigger pre-events when\n   * there are events that can be prevented.\n   */\n  Select2.prototype.trigger = function (name, args) {\n    var actualTrigger = Select2.__super__.trigger;\n    var preTriggerMap = {\n      'open': 'opening',\n      'close': 'closing',\n      'select': 'selecting',\n      'unselect': 'unselecting',\n      'clear': 'clearing'\n    };\n\n    if (args === undefined) {\n      args = {};\n    }\n\n    if (name in preTriggerMap) {\n      var preTriggerName = preTriggerMap[name];\n      var preTriggerArgs = {\n        prevented: false,\n        name: name,\n        args: args\n      };\n\n      actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n      if (preTriggerArgs.prevented) {\n        args.prevented = true;\n\n        return;\n      }\n    }\n\n    actualTrigger.call(this, name, args);\n  };\n\n  Select2.prototype.toggleDropdown = function () {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    if (this.isOpen()) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  Select2.prototype.open = function () {\n    if (this.isOpen()) {\n      return;\n    }\n\n    if (this.isDisabled()) {\n      return;\n    }\n\n    this.trigger('query', {});\n  };\n\n  Select2.prototype.close = function (evt) {\n    if (!this.isOpen()) {\n      return;\n    }\n\n    this.trigger('close', { originalEvent : evt });\n  };\n\n  /**\n   * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n   * object.\n   *\n   * @return {true} if the instance is not disabled.\n   * @return {false} if the instance is disabled.\n   */\n  Select2.prototype.isEnabled = function () {\n    return !this.isDisabled();\n  };\n\n  /**\n   * Helper method to abstract the \"disabled\" state of this object.\n   *\n   * @return {true} if the disabled option is true.\n   * @return {false} if the disabled option is false.\n   */\n  Select2.prototype.isDisabled = function () {\n    return this.options.get('disabled');\n  };\n\n  Select2.prototype.isOpen = function () {\n    return this.$container.hasClass('select2-container--open');\n  };\n\n  Select2.prototype.hasFocus = function () {\n    return this.$container.hasClass('select2-container--focus');\n  };\n\n  Select2.prototype.focus = function (data) {\n    // No need to re-trigger focus events if we are already focused\n    if (this.hasFocus()) {\n      return;\n    }\n\n    this.$container.addClass('select2-container--focus');\n    this.trigger('focus', {});\n  };\n\n  Select2.prototype.enable = function (args) {\n    if (this.options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n        ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n        ' instead.'\n      );\n    }\n\n    if (args == null || args.length === 0) {\n      args = [true];\n    }\n\n    var disabled = !args[0];\n\n    this.$element.prop('disabled', disabled);\n  };\n\n  Select2.prototype.data = function () {\n    if (this.options.get('debug') &&\n        arguments.length > 0 && window.console && console.warn) {\n      console.warn(\n        'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n        'should consider setting the value instead using `$element.val()`.'\n      );\n    }\n\n    var data = [];\n\n    this.dataAdapter.current(function (currentData) {\n      data = currentData;\n    });\n\n    return data;\n  };\n\n  Select2.prototype.val = function (args) {\n    if (this.options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n        ' removed in later Select2 versions. Use $element.val() instead.'\n      );\n    }\n\n    if (args == null || args.length === 0) {\n      return this.$element.val();\n    }\n\n    var newVal = args[0];\n\n    if ($.isArray(newVal)) {\n      newVal = $.map(newVal, function (obj) {\n        return obj.toString();\n      });\n    }\n\n    this.$element.val(newVal).trigger('input').trigger('change');\n  };\n\n  Select2.prototype.destroy = function () {\n    this.$container.remove();\n\n    if (this.$element[0].detachEvent) {\n      this.$element[0].detachEvent('onpropertychange', this._syncA);\n    }\n\n    if (this._observer != null) {\n      this._observer.disconnect();\n      this._observer = null;\n    } else if (this.$element[0].removeEventListener) {\n      this.$element[0]\n        .removeEventListener('DOMAttrModified', this._syncA, false);\n      this.$element[0]\n        .removeEventListener('DOMNodeInserted', this._syncS, false);\n      this.$element[0]\n        .removeEventListener('DOMNodeRemoved', this._syncS, false);\n    }\n\n    this._syncA = null;\n    this._syncS = null;\n\n    this.$element.off('.select2');\n    this.$element.attr('tabindex',\n    Utils.GetData(this.$element[0], 'old-tabindex'));\n\n    this.$element.removeClass('select2-hidden-accessible');\n    this.$element.attr('aria-hidden', 'false');\n    Utils.RemoveData(this.$element[0]);\n    this.$element.removeData('select2');\n\n    this.dataAdapter.destroy();\n    this.selection.destroy();\n    this.dropdown.destroy();\n    this.results.destroy();\n\n    this.dataAdapter = null;\n    this.selection = null;\n    this.dropdown = null;\n    this.results = null;\n  };\n\n  Select2.prototype.render = function () {\n    var $container = $(\n      '<span class=\"select2 select2-container\">' +\n        '<span class=\"selection\"></span>' +\n        '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\n      '</span>'\n    );\n\n    $container.attr('dir', this.options.get('dir'));\n\n    this.$container = $container;\n\n    this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n    Utils.StoreData($container[0], 'element', this.$element);\n\n    return $container;\n  };\n\n  return Select2;\n});\n\nS2.define('select2/compat/utils',[\n  'jquery'\n], function ($) {\n  function syncCssClasses ($dest, $src, adapter) {\n    var classes, replacements = [], adapted;\n\n    classes = $.trim($dest.attr('class'));\n\n    if (classes) {\n      classes = '' + classes; // for IE which returns object\n\n      $(classes.split(/\\s+/)).each(function () {\n        // Save all Select2 classes\n        if (this.indexOf('select2-') === 0) {\n          replacements.push(this);\n        }\n      });\n    }\n\n    classes = $.trim($src.attr('class'));\n\n    if (classes) {\n      classes = '' + classes; // for IE which returns object\n\n      $(classes.split(/\\s+/)).each(function () {\n        // Only adapt non-Select2 classes\n        if (this.indexOf('select2-') !== 0) {\n          adapted = adapter(this);\n\n          if (adapted != null) {\n            replacements.push(adapted);\n          }\n        }\n      });\n    }\n\n    $dest.attr('class', replacements.join(' '));\n  }\n\n  return {\n    syncCssClasses: syncCssClasses\n  };\n});\n\nS2.define('select2/compat/containerCss',[\n  'jquery',\n  './utils'\n], function ($, CompatUtils) {\n  // No-op CSS adapter that discards all classes by default\n  function _containerAdapter (clazz) {\n    return null;\n  }\n\n  function ContainerCSS () { }\n\n  ContainerCSS.prototype.render = function (decorated) {\n    var $container = decorated.call(this);\n\n    var containerCssClass = this.options.get('containerCssClass') || '';\n\n    if ($.isFunction(containerCssClass)) {\n      containerCssClass = containerCssClass(this.$element);\n    }\n\n    var containerCssAdapter = this.options.get('adaptContainerCssClass');\n    containerCssAdapter = containerCssAdapter || _containerAdapter;\n\n    if (containerCssClass.indexOf(':all:') !== -1) {\n      containerCssClass = containerCssClass.replace(':all:', '');\n\n      var _cssAdapter = containerCssAdapter;\n\n      containerCssAdapter = function (clazz) {\n        var adapted = _cssAdapter(clazz);\n\n        if (adapted != null) {\n          // Append the old one along with the adapted one\n          return adapted + ' ' + clazz;\n        }\n\n        return clazz;\n      };\n    }\n\n    var containerCss = this.options.get('containerCss') || {};\n\n    if ($.isFunction(containerCss)) {\n      containerCss = containerCss(this.$element);\n    }\n\n    CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\n\n    $container.css(containerCss);\n    $container.addClass(containerCssClass);\n\n    return $container;\n  };\n\n  return ContainerCSS;\n});\n\nS2.define('select2/compat/dropdownCss',[\n  'jquery',\n  './utils'\n], function ($, CompatUtils) {\n  // No-op CSS adapter that discards all classes by default\n  function _dropdownAdapter (clazz) {\n    return null;\n  }\n\n  function DropdownCSS () { }\n\n  DropdownCSS.prototype.render = function (decorated) {\n    var $dropdown = decorated.call(this);\n\n    var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n    if ($.isFunction(dropdownCssClass)) {\n      dropdownCssClass = dropdownCssClass(this.$element);\n    }\n\n    var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\n    dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\n\n    if (dropdownCssClass.indexOf(':all:') !== -1) {\n      dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n      var _cssAdapter = dropdownCssAdapter;\n\n      dropdownCssAdapter = function (clazz) {\n        var adapted = _cssAdapter(clazz);\n\n        if (adapted != null) {\n          // Append the old one along with the adapted one\n          return adapted + ' ' + clazz;\n        }\n\n        return clazz;\n      };\n    }\n\n    var dropdownCss = this.options.get('dropdownCss') || {};\n\n    if ($.isFunction(dropdownCss)) {\n      dropdownCss = dropdownCss(this.$element);\n    }\n\n    CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\n\n    $dropdown.css(dropdownCss);\n    $dropdown.addClass(dropdownCssClass);\n\n    return $dropdown;\n  };\n\n  return DropdownCSS;\n});\n\nS2.define('select2/compat/initSelection',[\n  'jquery'\n], function ($) {\n  function InitSelection (decorated, $element, options) {\n    if (options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `initSelection` option has been deprecated in favor' +\n        ' of a custom data adapter that overrides the `current` method. ' +\n        'This method is now called multiple times instead of a single ' +\n        'time when the instance is initialized. Support will be removed ' +\n        'for the `initSelection` option in future versions of Select2'\n      );\n    }\n\n    this.initSelection = options.get('initSelection');\n    this._isInitialized = false;\n\n    decorated.call(this, $element, options);\n  }\n\n  InitSelection.prototype.current = function (decorated, callback) {\n    var self = this;\n\n    if (this._isInitialized) {\n      decorated.call(this, callback);\n\n      return;\n    }\n\n    this.initSelection.call(null, this.$element, function (data) {\n      self._isInitialized = true;\n\n      if (!$.isArray(data)) {\n        data = [data];\n      }\n\n      callback(data);\n    });\n  };\n\n  return InitSelection;\n});\n\nS2.define('select2/compat/inputData',[\n  'jquery',\n  '../utils'\n], function ($, Utils) {\n  function InputData (decorated, $element, options) {\n    this._currentData = [];\n    this._valueSeparator = options.get('valueSeparator') || ',';\n\n    if ($element.prop('type') === 'hidden') {\n      if (options.get('debug') && console && console.warn) {\n        console.warn(\n          'Select2: Using a hidden input with Select2 is no longer ' +\n          'supported and may stop working in the future. It is recommended ' +\n          'to use a `<select>` element instead.'\n        );\n      }\n    }\n\n    decorated.call(this, $element, options);\n  }\n\n  InputData.prototype.current = function (_, callback) {\n    function getSelected (data, selectedIds) {\n      var selected = [];\n\n      if (data.selected || $.inArray(data.id, selectedIds) !== -1) {\n        data.selected = true;\n        selected.push(data);\n      } else {\n        data.selected = false;\n      }\n\n      if (data.children) {\n        selected.push.apply(selected, getSelected(data.children, selectedIds));\n      }\n\n      return selected;\n    }\n\n    var selected = [];\n\n    for (var d = 0; d < this._currentData.length; d++) {\n      var data = this._currentData[d];\n\n      selected.push.apply(\n        selected,\n        getSelected(\n          data,\n          this.$element.val().split(\n            this._valueSeparator\n          )\n        )\n      );\n    }\n\n    callback(selected);\n  };\n\n  InputData.prototype.select = function (_, data) {\n    if (!this.options.get('multiple')) {\n      this.current(function (allData) {\n        $.map(allData, function (data) {\n          data.selected = false;\n        });\n      });\n\n      this.$element.val(data.id);\n      this.$element.trigger('input').trigger('change');\n    } else {\n      var value = this.$element.val();\n      value += this._valueSeparator + data.id;\n\n      this.$element.val(value);\n      this.$element.trigger('input').trigger('change');\n    }\n  };\n\n  InputData.prototype.unselect = function (_, data) {\n    var self = this;\n\n    data.selected = false;\n\n    this.current(function (allData) {\n      var values = [];\n\n      for (var d = 0; d < allData.length; d++) {\n        var item = allData[d];\n\n        if (data.id == item.id) {\n          continue;\n        }\n\n        values.push(item.id);\n      }\n\n      self.$element.val(values.join(self._valueSeparator));\n      self.$element.trigger('input').trigger('change');\n    });\n  };\n\n  InputData.prototype.query = function (_, params, callback) {\n    var results = [];\n\n    for (var d = 0; d < this._currentData.length; d++) {\n      var data = this._currentData[d];\n\n      var matches = this.matches(params, data);\n\n      if (matches !== null) {\n        results.push(matches);\n      }\n    }\n\n    callback({\n      results: results\n    });\n  };\n\n  InputData.prototype.addOptions = function (_, $options) {\n    var options = $.map($options, function ($option) {\n      return Utils.GetData($option[0], 'data');\n    });\n\n    this._currentData.push.apply(this._currentData, options);\n  };\n\n  return InputData;\n});\n\nS2.define('select2/compat/matcher',[\n  'jquery'\n], function ($) {\n  function oldMatcher (matcher) {\n    function wrappedMatcher (params, data) {\n      var match = $.extend(true, {}, data);\n\n      if (params.term == null || $.trim(params.term) === '') {\n        return match;\n      }\n\n      if (data.children) {\n        for (var c = data.children.length - 1; c >= 0; c--) {\n          var child = data.children[c];\n\n          // Check if the child object matches\n          // The old matcher returned a boolean true or false\n          var doesMatch = matcher(params.term, child.text, child);\n\n          // If the child didn't match, pop it off\n          if (!doesMatch) {\n            match.children.splice(c, 1);\n          }\n        }\n\n        if (match.children.length > 0) {\n          return match;\n        }\n      }\n\n      if (matcher(params.term, data.text, data)) {\n        return match;\n      }\n\n      return null;\n    }\n\n    return wrappedMatcher;\n  }\n\n  return oldMatcher;\n});\n\nS2.define('select2/compat/query',[\n\n], function () {\n  function Query (decorated, $element, options) {\n    if (options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `query` option has been deprecated in favor of a ' +\n        'custom data adapter that overrides the `query` method. Support ' +\n        'will be removed for the `query` option in future versions of ' +\n        'Select2.'\n      );\n    }\n\n    decorated.call(this, $element, options);\n  }\n\n  Query.prototype.query = function (_, params, callback) {\n    params.callback = callback;\n\n    var query = this.options.get('query');\n\n    query.call(null, params);\n  };\n\n  return Query;\n});\n\nS2.define('select2/dropdown/attachContainer',[\n\n], function () {\n  function AttachContainer (decorated, $element, options) {\n    decorated.call(this, $element, options);\n  }\n\n  AttachContainer.prototype.position =\n    function (decorated, $dropdown, $container) {\n    var $dropdownContainer = $container.find('.dropdown-wrapper');\n    $dropdownContainer.append($dropdown);\n\n    $dropdown.addClass('select2-dropdown--below');\n    $container.addClass('select2-container--below');\n  };\n\n  return AttachContainer;\n});\n\nS2.define('select2/dropdown/stopPropagation',[\n\n], function () {\n  function StopPropagation () { }\n\n  StopPropagation.prototype.bind = function (decorated, container, $container) {\n    decorated.call(this, container, $container);\n\n    var stoppedEvents = [\n    'blur',\n    'change',\n    'click',\n    'dblclick',\n    'focus',\n    'focusin',\n    'focusout',\n    'input',\n    'keydown',\n    'keyup',\n    'keypress',\n    'mousedown',\n    'mouseenter',\n    'mouseleave',\n    'mousemove',\n    'mouseover',\n    'mouseup',\n    'search',\n    'touchend',\n    'touchstart'\n    ];\n\n    this.$dropdown.on(stoppedEvents.join(' '), function (evt) {\n      evt.stopPropagation();\n    });\n  };\n\n  return StopPropagation;\n});\n\nS2.define('select2/selection/stopPropagation',[\n\n], function () {\n  function StopPropagation () { }\n\n  StopPropagation.prototype.bind = function (decorated, container, $container) {\n    decorated.call(this, container, $container);\n\n    var stoppedEvents = [\n      'blur',\n      'change',\n      'click',\n      'dblclick',\n      'focus',\n      'focusin',\n      'focusout',\n      'input',\n      'keydown',\n      'keyup',\n      'keypress',\n      'mousedown',\n      'mouseenter',\n      'mouseleave',\n      'mousemove',\n      'mouseover',\n      'mouseup',\n      'search',\n      'touchend',\n      'touchstart'\n    ];\n\n    this.$selection.on(stoppedEvents.join(' '), function (evt) {\n      evt.stopPropagation();\n    });\n  };\n\n  return StopPropagation;\n});\n\n/*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n(function (factory) {\n    if ( typeof S2.define === 'function' && S2.define.amd ) {\n        // AMD. Register as an anonymous module.\n        S2.define('jquery-mousewheel',['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS style for Browserify\n        module.exports = factory;\n    } else {\n        // Browser globals\n        factory(jQuery);\n    }\n}(function ($) {\n\n    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n        slice  = Array.prototype.slice,\n        nullLowestDeltaTimeout, lowestDelta;\n\n    if ( $.event.fixHooks ) {\n        for ( var i = toFix.length; i; ) {\n            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n        }\n    }\n\n    var special = $.event.special.mousewheel = {\n        version: '3.1.12',\n\n        setup: function() {\n            if ( this.addEventListener ) {\n                for ( var i = toBind.length; i; ) {\n                    this.addEventListener( toBind[--i], handler, false );\n                }\n            } else {\n                this.onmousewheel = handler;\n            }\n            // Store the line height and page height for this particular element\n            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n        },\n\n        teardown: function() {\n            if ( this.removeEventListener ) {\n                for ( var i = toBind.length; i; ) {\n                    this.removeEventListener( toBind[--i], handler, false );\n                }\n            } else {\n                this.onmousewheel = null;\n            }\n            // Clean up the data we added to the element\n            $.removeData(this, 'mousewheel-line-height');\n            $.removeData(this, 'mousewheel-page-height');\n        },\n\n        getLineHeight: function(elem) {\n            var $elem = $(elem),\n                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n            if (!$parent.length) {\n                $parent = $('body');\n            }\n            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n        },\n\n        getPageHeight: function(elem) {\n            return $(elem).height();\n        },\n\n        settings: {\n            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n            normalizeOffset: true  // calls getBoundingClientRect for each event\n        }\n    };\n\n    $.fn.extend({\n        mousewheel: function(fn) {\n            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n        },\n\n        unmousewheel: function(fn) {\n            return this.unbind('mousewheel', fn);\n        }\n    });\n\n\n    function handler(event) {\n        var orgEvent   = event || window.event,\n            args       = slice.call(arguments, 1),\n            delta      = 0,\n            deltaX     = 0,\n            deltaY     = 0,\n            absDelta   = 0,\n            offsetX    = 0,\n            offsetY    = 0;\n        event = $.event.fix(orgEvent);\n        event.type = 'mousewheel';\n\n        // Old school scrollwheel delta\n        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }\n        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }\n        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }\n        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n            deltaX = deltaY * -1;\n            deltaY = 0;\n        }\n\n        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n        delta = deltaY === 0 ? deltaX : deltaY;\n\n        // New school wheel delta (wheel event)\n        if ( 'deltaY' in orgEvent ) {\n            deltaY = orgEvent.deltaY * -1;\n            delta  = deltaY;\n        }\n        if ( 'deltaX' in orgEvent ) {\n            deltaX = orgEvent.deltaX;\n            if ( deltaY === 0 ) { delta  = deltaX * -1; }\n        }\n\n        // No change actually happened, no reason to go any further\n        if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n        // Need to convert lines and pages to pixels if we aren't already in pixels\n        // There are three delta modes:\n        //   * deltaMode 0 is by pixels, nothing to do\n        //   * deltaMode 1 is by lines\n        //   * deltaMode 2 is by pages\n        if ( orgEvent.deltaMode === 1 ) {\n            var lineHeight = $.data(this, 'mousewheel-line-height');\n            delta  *= lineHeight;\n            deltaY *= lineHeight;\n            deltaX *= lineHeight;\n        } else if ( orgEvent.deltaMode === 2 ) {\n            var pageHeight = $.data(this, 'mousewheel-page-height');\n            delta  *= pageHeight;\n            deltaY *= pageHeight;\n            deltaX *= pageHeight;\n        }\n\n        // Store lowest absolute delta to normalize the delta values\n        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n        if ( !lowestDelta || absDelta < lowestDelta ) {\n            lowestDelta = absDelta;\n\n            // Adjust older deltas if necessary\n            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n                lowestDelta /= 40;\n            }\n        }\n\n        // Adjust older deltas if necessary\n        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n            // Divide all the things by 40!\n            delta  /= 40;\n            deltaX /= 40;\n            deltaY /= 40;\n        }\n\n        // Get a whole, normalized value for the deltas\n        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);\n        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n        // Normalise offsetX and offsetY properties\n        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n            var boundingRect = this.getBoundingClientRect();\n            offsetX = event.clientX - boundingRect.left;\n            offsetY = event.clientY - boundingRect.top;\n        }\n\n        // Add information to the event object\n        event.deltaX = deltaX;\n        event.deltaY = deltaY;\n        event.deltaFactor = lowestDelta;\n        event.offsetX = offsetX;\n        event.offsetY = offsetY;\n        // Go ahead and set deltaMode to 0 since we converted to pixels\n        // Although this is a little odd since we overwrite the deltaX/Y\n        // properties with normalized deltas.\n        event.deltaMode = 0;\n\n        // Add event and delta to the front of the arguments\n        args.unshift(event, delta, deltaX, deltaY);\n\n        // Clearout lowestDelta after sometime to better\n        // handle multiple device types that give different\n        // a different lowestDelta\n        // Ex: trackpad = 3 and mouse wheel = 120\n        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n        return ($.event.dispatch || $.event.handle).apply(this, args);\n    }\n\n    function nullLowestDelta() {\n        lowestDelta = null;\n    }\n\n    function shouldAdjustOldDeltas(orgEvent, absDelta) {\n        // If this is an older event and the delta is divisable by 120,\n        // then we are assuming that the browser is treating this as an\n        // older mouse wheel event and that we should divide the deltas\n        // by 40 to try and get a more usable deltaFactor.\n        // Side note, this actually impacts the reported scroll distance\n        // in older browsers and can cause scrolling to be slower than native.\n        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n    }\n\n}));\n\nS2.define('jquery.select2',[\n  'jquery',\n  'jquery-mousewheel',\n\n  './select2/core',\n  './select2/defaults',\n  './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n  if ($.fn.select2 == null) {\n    // All methods that should return the element\n    var thisMethods = ['open', 'close', 'destroy'];\n\n    $.fn.select2 = function (options) {\n      options = options || {};\n\n      if (typeof options === 'object') {\n        this.each(function () {\n          var instanceOptions = $.extend(true, {}, options);\n\n          var instance = new Select2($(this), instanceOptions);\n        });\n\n        return this;\n      } else if (typeof options === 'string') {\n        var ret;\n        var args = Array.prototype.slice.call(arguments, 1);\n\n        this.each(function () {\n          var instance = Utils.GetData(this, 'select2');\n\n          if (instance == null && window.console && console.error) {\n            console.error(\n              'The select2(\\'' + options + '\\') method was called on an ' +\n              'element that is not using Select2.'\n            );\n          }\n\n          ret = instance[options].apply(instance, args);\n        });\n\n        // Check if we should be returning `this`\n        if ($.inArray(options, thisMethods) > -1) {\n          return this;\n        }\n\n        return ret;\n      } else {\n        throw new Error('Invalid arguments for Select2: ' + options);\n      }\n    };\n  }\n\n  if ($.fn.select2.defaults == null) {\n    $.fn.select2.defaults = Defaults;\n  }\n\n  return Select2;\n});\n\n  // Return the AMD loader configuration so it can be used outside of this file\n  return {\n    define: S2.define,\n    require: S2.require\n  };\n}());\n\n  // Autoload the jQuery bindings\n  // We know that all of the modules exist above this, so we're safe\n  var select2 = S2.require('jquery.select2');\n\n  // Hold the AMD module references on the jQuery function that was just loaded\n  // This allows Select2 to use the internal loader outside of this file, such\n  // as in the language files.\n  jQuery.fn.select2.amd = S2;\n\n  // Return the Select2 instance for anyone who is importing it.\n  return select2;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2/js/select2.js",
    "content": "/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = function (root, jQuery) {\n      if (jQuery === undefined) {\n        // require('jQuery') returns a factory that requires window to\n        // build a jQuery instance, we normalize how we use modules\n        // that require this pattern but the window provided is a noop\n        // if it's defined (how jquery works)\n        if (typeof window !== 'undefined') {\n          jQuery = require('jquery');\n        }\n        else {\n          jQuery = require('jquery')(root);\n        }\n      }\n      factory(jQuery);\n      return jQuery;\n    };\n  } else {\n    // Browser globals\n    factory(jQuery);\n  }\n} (function (jQuery) {\n  // This is needed so we can catch the AMD loader configuration and use it\n  // The inner file should be wrapped (by `banner.start.js`) in a function that\n  // returns the AMD loader references.\n  var S2 =(function () {\n  // Restore the Select2 AMD loader so it can be used\n  // Needed mostly in the language files, where the loader is not inserted\n  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n    var S2 = jQuery.fn.select2.amd;\n  }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n    var main, req, makeMap, handlers,\n        defined = {},\n        waiting = {},\n        config = {},\n        defining = {},\n        hasOwn = Object.prototype.hasOwnProperty,\n        aps = [].slice,\n        jsSuffixRegExp = /\\.js$/;\n\n    function hasProp(obj, prop) {\n        return hasOwn.call(obj, prop);\n    }\n\n    /**\n     * Given a relative module name, like ./something, normalize it to\n     * a real name that can be mapped to a path.\n     * @param {String} name the relative name\n     * @param {String} baseName a real name that the name arg is relative\n     * to.\n     * @returns {String} normalized name\n     */\n    function normalize(name, baseName) {\n        var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n            foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n            baseParts = baseName && baseName.split(\"/\"),\n            map = config.map,\n            starMap = (map && map['*']) || {};\n\n        //Adjust any relative paths.\n        if (name) {\n            name = name.split('/');\n            lastIndex = name.length - 1;\n\n            // If wanting node ID compatibility, strip .js from end\n            // of IDs. Have to do this here, and not in nameToUrl\n            // because node allows either .js or non .js to map\n            // to same file.\n            if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n                name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n            }\n\n            // Starts with a '.' so need the baseName\n            if (name[0].charAt(0) === '.' && baseParts) {\n                //Convert baseName to array, and lop off the last part,\n                //so that . matches that 'directory' and not name of the baseName's\n                //module. For instance, baseName of 'one/two/three', maps to\n                //'one/two/three.js', but we want the directory, 'one/two' for\n                //this normalization.\n                normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n                name = normalizedBaseParts.concat(name);\n            }\n\n            //start trimDots\n            for (i = 0; i < name.length; i++) {\n                part = name[i];\n                if (part === '.') {\n                    name.splice(i, 1);\n                    i -= 1;\n                } else if (part === '..') {\n                    // If at the start, or previous value is still ..,\n                    // keep them so that when converted to a path it may\n                    // still work when converted to a path, even though\n                    // as an ID it is less than ideal. In larger point\n                    // releases, may be better to just kick out an error.\n                    if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n                        continue;\n                    } else if (i > 0) {\n                        name.splice(i - 1, 2);\n                        i -= 2;\n                    }\n                }\n            }\n            //end trimDots\n\n            name = name.join('/');\n        }\n\n        //Apply map config if available.\n        if ((baseParts || starMap) && map) {\n            nameParts = name.split('/');\n\n            for (i = nameParts.length; i > 0; i -= 1) {\n                nameSegment = nameParts.slice(0, i).join(\"/\");\n\n                if (baseParts) {\n                    //Find the longest baseName segment match in the config.\n                    //So, do joins on the biggest to smallest lengths of baseParts.\n                    for (j = baseParts.length; j > 0; j -= 1) {\n                        mapValue = map[baseParts.slice(0, j).join('/')];\n\n                        //baseName segment has  config, find if it has one for\n                        //this name.\n                        if (mapValue) {\n                            mapValue = mapValue[nameSegment];\n                            if (mapValue) {\n                                //Match, update name to the new value.\n                                foundMap = mapValue;\n                                foundI = i;\n                                break;\n                            }\n                        }\n                    }\n                }\n\n                if (foundMap) {\n                    break;\n                }\n\n                //Check for a star map match, but just hold on to it,\n                //if there is a shorter segment match later in a matching\n                //config, then favor over this star map.\n                if (!foundStarMap && starMap && starMap[nameSegment]) {\n                    foundStarMap = starMap[nameSegment];\n                    starI = i;\n                }\n            }\n\n            if (!foundMap && foundStarMap) {\n                foundMap = foundStarMap;\n                foundI = starI;\n            }\n\n            if (foundMap) {\n                nameParts.splice(0, foundI, foundMap);\n                name = nameParts.join('/');\n            }\n        }\n\n        return name;\n    }\n\n    function makeRequire(relName, forceSync) {\n        return function () {\n            //A version of a require function that passes a moduleName\n            //value for items that may need to\n            //look up paths relative to the moduleName\n            var args = aps.call(arguments, 0);\n\n            //If first arg is not require('string'), and there is only\n            //one arg, it is the array form without a callback. Insert\n            //a null so that the following concat is correct.\n            if (typeof args[0] !== 'string' && args.length === 1) {\n                args.push(null);\n            }\n            return req.apply(undef, args.concat([relName, forceSync]));\n        };\n    }\n\n    function makeNormalize(relName) {\n        return function (name) {\n            return normalize(name, relName);\n        };\n    }\n\n    function makeLoad(depName) {\n        return function (value) {\n            defined[depName] = value;\n        };\n    }\n\n    function callDep(name) {\n        if (hasProp(waiting, name)) {\n            var args = waiting[name];\n            delete waiting[name];\n            defining[name] = true;\n            main.apply(undef, args);\n        }\n\n        if (!hasProp(defined, name) && !hasProp(defining, name)) {\n            throw new Error('No ' + name);\n        }\n        return defined[name];\n    }\n\n    //Turns a plugin!resource to [plugin, resource]\n    //with the plugin being undefined if the name\n    //did not have a plugin prefix.\n    function splitPrefix(name) {\n        var prefix,\n            index = name ? name.indexOf('!') : -1;\n        if (index > -1) {\n            prefix = name.substring(0, index);\n            name = name.substring(index + 1, name.length);\n        }\n        return [prefix, name];\n    }\n\n    //Creates a parts array for a relName where first part is plugin ID,\n    //second part is resource ID. Assumes relName has already been normalized.\n    function makeRelParts(relName) {\n        return relName ? splitPrefix(relName) : [];\n    }\n\n    /**\n     * Makes a name map, normalizing the name, and using a plugin\n     * for normalization if necessary. Grabs a ref to plugin\n     * too, as an optimization.\n     */\n    makeMap = function (name, relParts) {\n        var plugin,\n            parts = splitPrefix(name),\n            prefix = parts[0],\n            relResourceName = relParts[1];\n\n        name = parts[1];\n\n        if (prefix) {\n            prefix = normalize(prefix, relResourceName);\n            plugin = callDep(prefix);\n        }\n\n        //Normalize according\n        if (prefix) {\n            if (plugin && plugin.normalize) {\n                name = plugin.normalize(name, makeNormalize(relResourceName));\n            } else {\n                name = normalize(name, relResourceName);\n            }\n        } else {\n            name = normalize(name, relResourceName);\n            parts = splitPrefix(name);\n            prefix = parts[0];\n            name = parts[1];\n            if (prefix) {\n                plugin = callDep(prefix);\n            }\n        }\n\n        //Using ridiculous property names for space reasons\n        return {\n            f: prefix ? prefix + '!' + name : name, //fullName\n            n: name,\n            pr: prefix,\n            p: plugin\n        };\n    };\n\n    function makeConfig(name) {\n        return function () {\n            return (config && config.config && config.config[name]) || {};\n        };\n    }\n\n    handlers = {\n        require: function (name) {\n            return makeRequire(name);\n        },\n        exports: function (name) {\n            var e = defined[name];\n            if (typeof e !== 'undefined') {\n                return e;\n            } else {\n                return (defined[name] = {});\n            }\n        },\n        module: function (name) {\n            return {\n                id: name,\n                uri: '',\n                exports: defined[name],\n                config: makeConfig(name)\n            };\n        }\n    };\n\n    main = function (name, deps, callback, relName) {\n        var cjsModule, depName, ret, map, i, relParts,\n            args = [],\n            callbackType = typeof callback,\n            usingExports;\n\n        //Use name if no relName\n        relName = relName || name;\n        relParts = makeRelParts(relName);\n\n        //Call the callback to define the module, if necessary.\n        if (callbackType === 'undefined' || callbackType === 'function') {\n            //Pull out the defined dependencies and pass the ordered\n            //values to the callback.\n            //Default to [require, exports, module] if no deps\n            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n            for (i = 0; i < deps.length; i += 1) {\n                map = makeMap(deps[i], relParts);\n                depName = map.f;\n\n                //Fast path CommonJS standard dependencies.\n                if (depName === \"require\") {\n                    args[i] = handlers.require(name);\n                } else if (depName === \"exports\") {\n                    //CommonJS module spec 1.1\n                    args[i] = handlers.exports(name);\n                    usingExports = true;\n                } else if (depName === \"module\") {\n                    //CommonJS module spec 1.1\n                    cjsModule = args[i] = handlers.module(name);\n                } else if (hasProp(defined, depName) ||\n                           hasProp(waiting, depName) ||\n                           hasProp(defining, depName)) {\n                    args[i] = callDep(depName);\n                } else if (map.p) {\n                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n                    args[i] = defined[depName];\n                } else {\n                    throw new Error(name + ' missing ' + depName);\n                }\n            }\n\n            ret = callback ? callback.apply(defined[name], args) : undefined;\n\n            if (name) {\n                //If setting exports via \"module\" is in play,\n                //favor that over return value and exports. After that,\n                //favor a non-undefined return value over exports use.\n                if (cjsModule && cjsModule.exports !== undef &&\n                        cjsModule.exports !== defined[name]) {\n                    defined[name] = cjsModule.exports;\n                } else if (ret !== undef || !usingExports) {\n                    //Use the return value from the function.\n                    defined[name] = ret;\n                }\n            }\n        } else if (name) {\n            //May just be an object definition for the module. Only\n            //worry about defining if have a module name.\n            defined[name] = callback;\n        }\n    };\n\n    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n        if (typeof deps === \"string\") {\n            if (handlers[deps]) {\n                //callback in this case is really relName\n                return handlers[deps](callback);\n            }\n            //Just return the module wanted. In this scenario, the\n            //deps arg is the module name, and second arg (if passed)\n            //is just the relName.\n            //Normalize module name, if it contains . or ..\n            return callDep(makeMap(deps, makeRelParts(callback)).f);\n        } else if (!deps.splice) {\n            //deps is a config object, not an array.\n            config = deps;\n            if (config.deps) {\n                req(config.deps, config.callback);\n            }\n            if (!callback) {\n                return;\n            }\n\n            if (callback.splice) {\n                //callback is an array, which means it is a dependency list.\n                //Adjust args if there are dependencies\n                deps = callback;\n                callback = relName;\n                relName = null;\n            } else {\n                deps = undef;\n            }\n        }\n\n        //Support require(['a'])\n        callback = callback || function () {};\n\n        //If relName is a function, it is an errback handler,\n        //so remove it.\n        if (typeof relName === 'function') {\n            relName = forceSync;\n            forceSync = alt;\n        }\n\n        //Simulate async callback;\n        if (forceSync) {\n            main(undef, deps, callback, relName);\n        } else {\n            //Using a non-zero value because of concern for what old browsers\n            //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n            //If want a value immediately, use require('id') instead -- something\n            //that works in almond on the global level, but not guaranteed and\n            //unlikely to work in other AMD implementations.\n            setTimeout(function () {\n                main(undef, deps, callback, relName);\n            }, 4);\n        }\n\n        return req;\n    };\n\n    /**\n     * Just drops the config on the floor, but returns req in case\n     * the config return value is used.\n     */\n    req.config = function (cfg) {\n        return req(cfg);\n    };\n\n    /**\n     * Expose module registry for debugging and tooling\n     */\n    requirejs._defined = defined;\n\n    define = function (name, deps, callback) {\n        if (typeof name !== 'string') {\n            throw new Error('See almond README: incorrect module build, no module name');\n        }\n\n        //This module may not have dependencies\n        if (!deps.splice) {\n            //deps is not an array, so probably means\n            //an object literal or factory function for\n            //the value. Adjust args.\n            callback = deps;\n            deps = [];\n        }\n\n        if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n            waiting[name] = [name, deps, callback];\n        }\n    };\n\n    define.amd = {\n        jQuery: true\n    };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n  var _$ = jQuery || $;\n\n  if (_$ == null && console && console.error) {\n    console.error(\n      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n      'found. Make sure that you are including jQuery before Select2 on your ' +\n      'web page.'\n    );\n  }\n\n  return _$;\n});\n\nS2.define('select2/utils',[\n  'jquery'\n], function ($) {\n  var Utils = {};\n\n  Utils.Extend = function (ChildClass, SuperClass) {\n    var __hasProp = {}.hasOwnProperty;\n\n    function BaseConstructor () {\n      this.constructor = ChildClass;\n    }\n\n    for (var key in SuperClass) {\n      if (__hasProp.call(SuperClass, key)) {\n        ChildClass[key] = SuperClass[key];\n      }\n    }\n\n    BaseConstructor.prototype = SuperClass.prototype;\n    ChildClass.prototype = new BaseConstructor();\n    ChildClass.__super__ = SuperClass.prototype;\n\n    return ChildClass;\n  };\n\n  function getMethods (theClass) {\n    var proto = theClass.prototype;\n\n    var methods = [];\n\n    for (var methodName in proto) {\n      var m = proto[methodName];\n\n      if (typeof m !== 'function') {\n        continue;\n      }\n\n      if (methodName === 'constructor') {\n        continue;\n      }\n\n      methods.push(methodName);\n    }\n\n    return methods;\n  }\n\n  Utils.Decorate = function (SuperClass, DecoratorClass) {\n    var decoratedMethods = getMethods(DecoratorClass);\n    var superMethods = getMethods(SuperClass);\n\n    function DecoratedClass () {\n      var unshift = Array.prototype.unshift;\n\n      var argCount = DecoratorClass.prototype.constructor.length;\n\n      var calledConstructor = SuperClass.prototype.constructor;\n\n      if (argCount > 0) {\n        unshift.call(arguments, SuperClass.prototype.constructor);\n\n        calledConstructor = DecoratorClass.prototype.constructor;\n      }\n\n      calledConstructor.apply(this, arguments);\n    }\n\n    DecoratorClass.displayName = SuperClass.displayName;\n\n    function ctr () {\n      this.constructor = DecoratedClass;\n    }\n\n    DecoratedClass.prototype = new ctr();\n\n    for (var m = 0; m < superMethods.length; m++) {\n      var superMethod = superMethods[m];\n\n      DecoratedClass.prototype[superMethod] =\n        SuperClass.prototype[superMethod];\n    }\n\n    var calledMethod = function (methodName) {\n      // Stub out the original method if it's not decorating an actual method\n      var originalMethod = function () {};\n\n      if (methodName in DecoratedClass.prototype) {\n        originalMethod = DecoratedClass.prototype[methodName];\n      }\n\n      var decoratedMethod = DecoratorClass.prototype[methodName];\n\n      return function () {\n        var unshift = Array.prototype.unshift;\n\n        unshift.call(arguments, originalMethod);\n\n        return decoratedMethod.apply(this, arguments);\n      };\n    };\n\n    for (var d = 0; d < decoratedMethods.length; d++) {\n      var decoratedMethod = decoratedMethods[d];\n\n      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n    }\n\n    return DecoratedClass;\n  };\n\n  var Observable = function () {\n    this.listeners = {};\n  };\n\n  Observable.prototype.on = function (event, callback) {\n    this.listeners = this.listeners || {};\n\n    if (event in this.listeners) {\n      this.listeners[event].push(callback);\n    } else {\n      this.listeners[event] = [callback];\n    }\n  };\n\n  Observable.prototype.trigger = function (event) {\n    var slice = Array.prototype.slice;\n    var params = slice.call(arguments, 1);\n\n    this.listeners = this.listeners || {};\n\n    // Params should always come in as an array\n    if (params == null) {\n      params = [];\n    }\n\n    // If there are no arguments to the event, use a temporary object\n    if (params.length === 0) {\n      params.push({});\n    }\n\n    // Set the `_type` of the first object to the event\n    params[0]._type = event;\n\n    if (event in this.listeners) {\n      this.invoke(this.listeners[event], slice.call(arguments, 1));\n    }\n\n    if ('*' in this.listeners) {\n      this.invoke(this.listeners['*'], arguments);\n    }\n  };\n\n  Observable.prototype.invoke = function (listeners, params) {\n    for (var i = 0, len = listeners.length; i < len; i++) {\n      listeners[i].apply(this, params);\n    }\n  };\n\n  Utils.Observable = Observable;\n\n  Utils.generateChars = function (length) {\n    var chars = '';\n\n    for (var i = 0; i < length; i++) {\n      var randomChar = Math.floor(Math.random() * 36);\n      chars += randomChar.toString(36);\n    }\n\n    return chars;\n  };\n\n  Utils.bind = function (func, context) {\n    return function () {\n      func.apply(context, arguments);\n    };\n  };\n\n  Utils._convertData = function (data) {\n    for (var originalKey in data) {\n      var keys = originalKey.split('-');\n\n      var dataLevel = data;\n\n      if (keys.length === 1) {\n        continue;\n      }\n\n      for (var k = 0; k < keys.length; k++) {\n        var key = keys[k];\n\n        // Lowercase the first letter\n        // By default, dash-separated becomes camelCase\n        key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n        if (!(key in dataLevel)) {\n          dataLevel[key] = {};\n        }\n\n        if (k == keys.length - 1) {\n          dataLevel[key] = data[originalKey];\n        }\n\n        dataLevel = dataLevel[key];\n      }\n\n      delete data[originalKey];\n    }\n\n    return data;\n  };\n\n  Utils.hasScroll = function (index, el) {\n    // Adapted from the function created by @ShadowScripter\n    // and adapted by @BillBarry on the Stack Exchange Code Review website.\n    // The original code can be found at\n    // http://codereview.stackexchange.com/q/13338\n    // and was designed to be used with the Sizzle selector engine.\n\n    var $el = $(el);\n    var overflowX = el.style.overflowX;\n    var overflowY = el.style.overflowY;\n\n    //Check both x and y declarations\n    if (overflowX === overflowY &&\n        (overflowY === 'hidden' || overflowY === 'visible')) {\n      return false;\n    }\n\n    if (overflowX === 'scroll' || overflowY === 'scroll') {\n      return true;\n    }\n\n    return ($el.innerHeight() < el.scrollHeight ||\n      $el.innerWidth() < el.scrollWidth);\n  };\n\n  Utils.escapeMarkup = function (markup) {\n    var replaceMap = {\n      '\\\\': '&#92;',\n      '&': '&amp;',\n      '<': '&lt;',\n      '>': '&gt;',\n      '\"': '&quot;',\n      '\\'': '&#39;',\n      '/': '&#47;'\n    };\n\n    // Do not try to escape the markup if it's not a string\n    if (typeof markup !== 'string') {\n      return markup;\n    }\n\n    return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n      return replaceMap[match];\n    });\n  };\n\n  // Append an array of jQuery nodes to a given element.\n  Utils.appendMany = function ($element, $nodes) {\n    // jQuery 1.7.x does not support $.fn.append() with an array\n    // Fall back to a jQuery object collection using $.fn.add()\n    if ($.fn.jquery.substr(0, 3) === '1.7') {\n      var $jqNodes = $();\n\n      $.map($nodes, function (node) {\n        $jqNodes = $jqNodes.add(node);\n      });\n\n      $nodes = $jqNodes;\n    }\n\n    $element.append($nodes);\n  };\n\n  // Cache objects in Utils.__cache instead of $.data (see #4346)\n  Utils.__cache = {};\n\n  var id = 0;\n  Utils.GetUniqueElementId = function (element) {\n    // Get a unique element Id. If element has no id,\n    // creates a new unique number, stores it in the id\n    // attribute and returns the new id.\n    // If an id already exists, it simply returns it.\n\n    var select2Id = element.getAttribute('data-select2-id');\n    if (select2Id == null) {\n      // If element has id, use it.\n      if (element.id) {\n        select2Id = element.id;\n        element.setAttribute('data-select2-id', select2Id);\n      } else {\n        element.setAttribute('data-select2-id', ++id);\n        select2Id = id.toString();\n      }\n    }\n    return select2Id;\n  };\n\n  Utils.StoreData = function (element, name, value) {\n    // Stores an item in the cache for a specified element.\n    // name is the cache key.\n    var id = Utils.GetUniqueElementId(element);\n    if (!Utils.__cache[id]) {\n      Utils.__cache[id] = {};\n    }\n\n    Utils.__cache[id][name] = value;\n  };\n\n  Utils.GetData = function (element, name) {\n    // Retrieves a value from the cache by its key (name)\n    // name is optional. If no name specified, return\n    // all cache items for the specified element.\n    // and for a specified element.\n    var id = Utils.GetUniqueElementId(element);\n    if (name) {\n      if (Utils.__cache[id]) {\n        if (Utils.__cache[id][name] != null) {\n          return Utils.__cache[id][name];\n        }\n        return $(element).data(name); // Fallback to HTML5 data attribs.\n      }\n      return $(element).data(name); // Fallback to HTML5 data attribs.\n    } else {\n      return Utils.__cache[id];\n    }\n  };\n\n  Utils.RemoveData = function (element) {\n    // Removes all cached items for a specified element.\n    var id = Utils.GetUniqueElementId(element);\n    if (Utils.__cache[id] != null) {\n      delete Utils.__cache[id];\n    }\n\n    element.removeAttribute('data-select2-id');\n  };\n\n  return Utils;\n});\n\nS2.define('select2/results',[\n  'jquery',\n  './utils'\n], function ($, Utils) {\n  function Results ($element, options, dataAdapter) {\n    this.$element = $element;\n    this.data = dataAdapter;\n    this.options = options;\n\n    Results.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(Results, Utils.Observable);\n\n  Results.prototype.render = function () {\n    var $results = $(\n      '<ul class=\"select2-results__options\" role=\"listbox\"></ul>'\n    );\n\n    if (this.options.get('multiple')) {\n      $results.attr('aria-multiselectable', 'true');\n    }\n\n    this.$results = $results;\n\n    return $results;\n  };\n\n  Results.prototype.clear = function () {\n    this.$results.empty();\n  };\n\n  Results.prototype.displayMessage = function (params) {\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    this.clear();\n    this.hideLoading();\n\n    var $message = $(\n      '<li role=\"alert\" aria-live=\"assertive\"' +\n      ' class=\"select2-results__option\"></li>'\n    );\n\n    var message = this.options.get('translations').get(params.message);\n\n    $message.append(\n      escapeMarkup(\n        message(params.args)\n      )\n    );\n\n    $message[0].className += ' select2-results__message';\n\n    this.$results.append($message);\n  };\n\n  Results.prototype.hideMessages = function () {\n    this.$results.find('.select2-results__message').remove();\n  };\n\n  Results.prototype.append = function (data) {\n    this.hideLoading();\n\n    var $options = [];\n\n    if (data.results == null || data.results.length === 0) {\n      if (this.$results.children().length === 0) {\n        this.trigger('results:message', {\n          message: 'noResults'\n        });\n      }\n\n      return;\n    }\n\n    data.results = this.sort(data.results);\n\n    for (var d = 0; d < data.results.length; d++) {\n      var item = data.results[d];\n\n      var $option = this.option(item);\n\n      $options.push($option);\n    }\n\n    this.$results.append($options);\n  };\n\n  Results.prototype.position = function ($results, $dropdown) {\n    var $resultsContainer = $dropdown.find('.select2-results');\n    $resultsContainer.append($results);\n  };\n\n  Results.prototype.sort = function (data) {\n    var sorter = this.options.get('sorter');\n\n    return sorter(data);\n  };\n\n  Results.prototype.highlightFirstItem = function () {\n    var $options = this.$results\n      .find('.select2-results__option[aria-selected]');\n\n    var $selected = $options.filter('[aria-selected=true]');\n\n    // Check if there are any selected options\n    if ($selected.length > 0) {\n      // If there are selected options, highlight the first\n      $selected.first().trigger('mouseenter');\n    } else {\n      // If there are no selected options, highlight the first option\n      // in the dropdown\n      $options.first().trigger('mouseenter');\n    }\n\n    this.ensureHighlightVisible();\n  };\n\n  Results.prototype.setClasses = function () {\n    var self = this;\n\n    this.data.current(function (selected) {\n      var selectedIds = $.map(selected, function (s) {\n        return s.id.toString();\n      });\n\n      var $options = self.$results\n        .find('.select2-results__option[aria-selected]');\n\n      $options.each(function () {\n        var $option = $(this);\n\n        var item = Utils.GetData(this, 'data');\n\n        // id needs to be converted to a string when comparing\n        var id = '' + item.id;\n\n        if ((item.element != null && item.element.selected) ||\n            (item.element == null && $.inArray(id, selectedIds) > -1)) {\n          $option.attr('aria-selected', 'true');\n        } else {\n          $option.attr('aria-selected', 'false');\n        }\n      });\n\n    });\n  };\n\n  Results.prototype.showLoading = function (params) {\n    this.hideLoading();\n\n    var loadingMore = this.options.get('translations').get('searching');\n\n    var loading = {\n      disabled: true,\n      loading: true,\n      text: loadingMore(params)\n    };\n    var $loading = this.option(loading);\n    $loading.className += ' loading-results';\n\n    this.$results.prepend($loading);\n  };\n\n  Results.prototype.hideLoading = function () {\n    this.$results.find('.loading-results').remove();\n  };\n\n  Results.prototype.option = function (data) {\n    var option = document.createElement('li');\n    option.className = 'select2-results__option';\n\n    var attrs = {\n      'role': 'option',\n      'aria-selected': 'false'\n    };\n\n    var matches = window.Element.prototype.matches ||\n      window.Element.prototype.msMatchesSelector ||\n      window.Element.prototype.webkitMatchesSelector;\n\n    if ((data.element != null && matches.call(data.element, ':disabled')) ||\n        (data.element == null && data.disabled)) {\n      delete attrs['aria-selected'];\n      attrs['aria-disabled'] = 'true';\n    }\n\n    if (data.id == null) {\n      delete attrs['aria-selected'];\n    }\n\n    if (data._resultId != null) {\n      option.id = data._resultId;\n    }\n\n    if (data.title) {\n      option.title = data.title;\n    }\n\n    if (data.children) {\n      attrs.role = 'group';\n      attrs['aria-label'] = data.text;\n      delete attrs['aria-selected'];\n    }\n\n    for (var attr in attrs) {\n      var val = attrs[attr];\n\n      option.setAttribute(attr, val);\n    }\n\n    if (data.children) {\n      var $option = $(option);\n\n      var label = document.createElement('strong');\n      label.className = 'select2-results__group';\n\n      var $label = $(label);\n      this.template(data, label);\n\n      var $children = [];\n\n      for (var c = 0; c < data.children.length; c++) {\n        var child = data.children[c];\n\n        var $child = this.option(child);\n\n        $children.push($child);\n      }\n\n      var $childrenContainer = $('<ul></ul>', {\n        'class': 'select2-results__options select2-results__options--nested'\n      });\n\n      $childrenContainer.append($children);\n\n      $option.append(label);\n      $option.append($childrenContainer);\n    } else {\n      this.template(data, option);\n    }\n\n    Utils.StoreData(option, 'data', data);\n\n    return option;\n  };\n\n  Results.prototype.bind = function (container, $container) {\n    var self = this;\n\n    var id = container.id + '-results';\n\n    this.$results.attr('id', id);\n\n    container.on('results:all', function (params) {\n      self.clear();\n      self.append(params.data);\n\n      if (container.isOpen()) {\n        self.setClasses();\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('results:append', function (params) {\n      self.append(params.data);\n\n      if (container.isOpen()) {\n        self.setClasses();\n      }\n    });\n\n    container.on('query', function (params) {\n      self.hideMessages();\n      self.showLoading(params);\n    });\n\n    container.on('select', function () {\n      if (!container.isOpen()) {\n        return;\n      }\n\n      self.setClasses();\n\n      if (self.options.get('scrollAfterSelect')) {\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('unselect', function () {\n      if (!container.isOpen()) {\n        return;\n      }\n\n      self.setClasses();\n\n      if (self.options.get('scrollAfterSelect')) {\n        self.highlightFirstItem();\n      }\n    });\n\n    container.on('open', function () {\n      // When the dropdown is open, aria-expended=\"true\"\n      self.$results.attr('aria-expanded', 'true');\n      self.$results.attr('aria-hidden', 'false');\n\n      self.setClasses();\n      self.ensureHighlightVisible();\n    });\n\n    container.on('close', function () {\n      // When the dropdown is closed, aria-expended=\"false\"\n      self.$results.attr('aria-expanded', 'false');\n      self.$results.attr('aria-hidden', 'true');\n      self.$results.removeAttr('aria-activedescendant');\n    });\n\n    container.on('results:toggle', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      if ($highlighted.length === 0) {\n        return;\n      }\n\n      $highlighted.trigger('mouseup');\n    });\n\n    container.on('results:select', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      if ($highlighted.length === 0) {\n        return;\n      }\n\n      var data = Utils.GetData($highlighted[0], 'data');\n\n      if ($highlighted.attr('aria-selected') == 'true') {\n        self.trigger('close', {});\n      } else {\n        self.trigger('select', {\n          data: data\n        });\n      }\n    });\n\n    container.on('results:previous', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      var $options = self.$results.find('[aria-selected]');\n\n      var currentIndex = $options.index($highlighted);\n\n      // If we are already at the top, don't move further\n      // If no options, currentIndex will be -1\n      if (currentIndex <= 0) {\n        return;\n      }\n\n      var nextIndex = currentIndex - 1;\n\n      // If none are highlighted, highlight the first\n      if ($highlighted.length === 0) {\n        nextIndex = 0;\n      }\n\n      var $next = $options.eq(nextIndex);\n\n      $next.trigger('mouseenter');\n\n      var currentOffset = self.$results.offset().top;\n      var nextTop = $next.offset().top;\n      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n      if (nextIndex === 0) {\n        self.$results.scrollTop(0);\n      } else if (nextTop - currentOffset < 0) {\n        self.$results.scrollTop(nextOffset);\n      }\n    });\n\n    container.on('results:next', function () {\n      var $highlighted = self.getHighlightedResults();\n\n      var $options = self.$results.find('[aria-selected]');\n\n      var currentIndex = $options.index($highlighted);\n\n      var nextIndex = currentIndex + 1;\n\n      // If we are at the last option, stay there\n      if (nextIndex >= $options.length) {\n        return;\n      }\n\n      var $next = $options.eq(nextIndex);\n\n      $next.trigger('mouseenter');\n\n      var currentOffset = self.$results.offset().top +\n        self.$results.outerHeight(false);\n      var nextBottom = $next.offset().top + $next.outerHeight(false);\n      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n      if (nextIndex === 0) {\n        self.$results.scrollTop(0);\n      } else if (nextBottom > currentOffset) {\n        self.$results.scrollTop(nextOffset);\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      params.element.addClass('select2-results__option--highlighted');\n    });\n\n    container.on('results:message', function (params) {\n      self.displayMessage(params);\n    });\n\n    if ($.fn.mousewheel) {\n      this.$results.on('mousewheel', function (e) {\n        var top = self.$results.scrollTop();\n\n        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n        if (isAtTop) {\n          self.$results.scrollTop(0);\n\n          e.preventDefault();\n          e.stopPropagation();\n        } else if (isAtBottom) {\n          self.$results.scrollTop(\n            self.$results.get(0).scrollHeight - self.$results.height()\n          );\n\n          e.preventDefault();\n          e.stopPropagation();\n        }\n      });\n    }\n\n    this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n      function (evt) {\n      var $this = $(this);\n\n      var data = Utils.GetData(this, 'data');\n\n      if ($this.attr('aria-selected') === 'true') {\n        if (self.options.get('multiple')) {\n          self.trigger('unselect', {\n            originalEvent: evt,\n            data: data\n          });\n        } else {\n          self.trigger('close', {});\n        }\n\n        return;\n      }\n\n      self.trigger('select', {\n        originalEvent: evt,\n        data: data\n      });\n    });\n\n    this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n      function (evt) {\n      var data = Utils.GetData(this, 'data');\n\n      self.getHighlightedResults()\n          .removeClass('select2-results__option--highlighted');\n\n      self.trigger('results:focus', {\n        data: data,\n        element: $(this)\n      });\n    });\n  };\n\n  Results.prototype.getHighlightedResults = function () {\n    var $highlighted = this.$results\n    .find('.select2-results__option--highlighted');\n\n    return $highlighted;\n  };\n\n  Results.prototype.destroy = function () {\n    this.$results.remove();\n  };\n\n  Results.prototype.ensureHighlightVisible = function () {\n    var $highlighted = this.getHighlightedResults();\n\n    if ($highlighted.length === 0) {\n      return;\n    }\n\n    var $options = this.$results.find('[aria-selected]');\n\n    var currentIndex = $options.index($highlighted);\n\n    var currentOffset = this.$results.offset().top;\n    var nextTop = $highlighted.offset().top;\n    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n    var offsetDelta = nextTop - currentOffset;\n    nextOffset -= $highlighted.outerHeight(false) * 2;\n\n    if (currentIndex <= 2) {\n      this.$results.scrollTop(0);\n    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n      this.$results.scrollTop(nextOffset);\n    }\n  };\n\n  Results.prototype.template = function (result, container) {\n    var template = this.options.get('templateResult');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    var content = template(result, container);\n\n    if (content == null) {\n      container.style.display = 'none';\n    } else if (typeof content === 'string') {\n      container.innerHTML = escapeMarkup(content);\n    } else {\n      $(container).append(content);\n    }\n  };\n\n  return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n  var KEYS = {\n    BACKSPACE: 8,\n    TAB: 9,\n    ENTER: 13,\n    SHIFT: 16,\n    CTRL: 17,\n    ALT: 18,\n    ESC: 27,\n    SPACE: 32,\n    PAGE_UP: 33,\n    PAGE_DOWN: 34,\n    END: 35,\n    HOME: 36,\n    LEFT: 37,\n    UP: 38,\n    RIGHT: 39,\n    DOWN: 40,\n    DELETE: 46\n  };\n\n  return KEYS;\n});\n\nS2.define('select2/selection/base',[\n  'jquery',\n  '../utils',\n  '../keys'\n], function ($, Utils, KEYS) {\n  function BaseSelection ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    BaseSelection.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(BaseSelection, Utils.Observable);\n\n  BaseSelection.prototype.render = function () {\n    var $selection = $(\n      '<span class=\"select2-selection\" role=\"combobox\" ' +\n      ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\n      '</span>'\n    );\n\n    this._tabindex = 0;\n\n    if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n      this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n    } else if (this.$element.attr('tabindex') != null) {\n      this._tabindex = this.$element.attr('tabindex');\n    }\n\n    $selection.attr('title', this.$element.attr('title'));\n    $selection.attr('tabindex', this._tabindex);\n    $selection.attr('aria-disabled', 'false');\n\n    this.$selection = $selection;\n\n    return $selection;\n  };\n\n  BaseSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    this.container = container;\n\n    this.$selection.on('focus', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this.$selection.on('blur', function (evt) {\n      self._handleBlur(evt);\n    });\n\n    this.$selection.on('keydown', function (evt) {\n      self.trigger('keypress', evt);\n\n      if (evt.which === KEYS.SPACE) {\n        evt.preventDefault();\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      self.$selection.attr('aria-activedescendant', params.data._resultId);\n    });\n\n    container.on('selection:update', function (params) {\n      self.update(params.data);\n    });\n\n    container.on('open', function () {\n      // When the dropdown is open, aria-expanded=\"true\"\n      self.$selection.attr('aria-expanded', 'true');\n      self.$selection.attr('aria-owns', resultsId);\n\n      self._attachCloseHandler(container);\n    });\n\n    container.on('close', function () {\n      // When the dropdown is closed, aria-expanded=\"false\"\n      self.$selection.attr('aria-expanded', 'false');\n      self.$selection.removeAttr('aria-activedescendant');\n      self.$selection.removeAttr('aria-owns');\n\n      self.$selection.trigger('focus');\n\n      self._detachCloseHandler(container);\n    });\n\n    container.on('enable', function () {\n      self.$selection.attr('tabindex', self._tabindex);\n      self.$selection.attr('aria-disabled', 'false');\n    });\n\n    container.on('disable', function () {\n      self.$selection.attr('tabindex', '-1');\n      self.$selection.attr('aria-disabled', 'true');\n    });\n  };\n\n  BaseSelection.prototype._handleBlur = function (evt) {\n    var self = this;\n\n    // This needs to be delayed as the active element is the body when the tab\n    // key is pressed, possibly along with others.\n    window.setTimeout(function () {\n      // Don't trigger `blur` if the focus is still in the selection\n      if (\n        (document.activeElement == self.$selection[0]) ||\n        ($.contains(self.$selection[0], document.activeElement))\n      ) {\n        return;\n      }\n\n      self.trigger('blur', evt);\n    }, 1);\n  };\n\n  BaseSelection.prototype._attachCloseHandler = function (container) {\n\n    $(document.body).on('mousedown.select2.' + container.id, function (e) {\n      var $target = $(e.target);\n\n      var $select = $target.closest('.select2');\n\n      var $all = $('.select2.select2-container--open');\n\n      $all.each(function () {\n        if (this == $select[0]) {\n          return;\n        }\n\n        var $element = Utils.GetData(this, 'element');\n\n        $element.select2('close');\n      });\n    });\n  };\n\n  BaseSelection.prototype._detachCloseHandler = function (container) {\n    $(document.body).off('mousedown.select2.' + container.id);\n  };\n\n  BaseSelection.prototype.position = function ($selection, $container) {\n    var $selectionContainer = $container.find('.selection');\n    $selectionContainer.append($selection);\n  };\n\n  BaseSelection.prototype.destroy = function () {\n    this._detachCloseHandler(this.container);\n  };\n\n  BaseSelection.prototype.update = function (data) {\n    throw new Error('The `update` method must be defined in child classes.');\n  };\n\n  /**\n   * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n   * object.\n   *\n   * @return {true} if the instance is not disabled.\n   * @return {false} if the instance is disabled.\n   */\n  BaseSelection.prototype.isEnabled = function () {\n    return !this.isDisabled();\n  };\n\n  /**\n   * Helper method to abstract the \"disabled\" state of this object.\n   *\n   * @return {true} if the disabled option is true.\n   * @return {false} if the disabled option is false.\n   */\n  BaseSelection.prototype.isDisabled = function () {\n    return this.options.get('disabled');\n  };\n\n  return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n  'jquery',\n  './base',\n  '../utils',\n  '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n  function SingleSelection () {\n    SingleSelection.__super__.constructor.apply(this, arguments);\n  }\n\n  Utils.Extend(SingleSelection, BaseSelection);\n\n  SingleSelection.prototype.render = function () {\n    var $selection = SingleSelection.__super__.render.call(this);\n\n    $selection.addClass('select2-selection--single');\n\n    $selection.html(\n      '<span class=\"select2-selection__rendered\"></span>' +\n      '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\n        '<b role=\"presentation\"></b>' +\n      '</span>'\n    );\n\n    return $selection;\n  };\n\n  SingleSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    SingleSelection.__super__.bind.apply(this, arguments);\n\n    var id = container.id + '-container';\n\n    this.$selection.find('.select2-selection__rendered')\n      .attr('id', id)\n      .attr('role', 'textbox')\n      .attr('aria-readonly', 'true');\n    this.$selection.attr('aria-labelledby', id);\n\n    this.$selection.on('mousedown', function (evt) {\n      // Only respond to left clicks\n      if (evt.which !== 1) {\n        return;\n      }\n\n      self.trigger('toggle', {\n        originalEvent: evt\n      });\n    });\n\n    this.$selection.on('focus', function (evt) {\n      // User focuses on the container\n    });\n\n    this.$selection.on('blur', function (evt) {\n      // User exits the container\n    });\n\n    container.on('focus', function (evt) {\n      if (!container.isOpen()) {\n        self.$selection.trigger('focus');\n      }\n    });\n  };\n\n  SingleSelection.prototype.clear = function () {\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    $rendered.empty();\n    $rendered.removeAttr('title'); // clear tooltip on empty\n  };\n\n  SingleSelection.prototype.display = function (data, container) {\n    var template = this.options.get('templateSelection');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    return escapeMarkup(template(data, container));\n  };\n\n  SingleSelection.prototype.selectionContainer = function () {\n    return $('<span></span>');\n  };\n\n  SingleSelection.prototype.update = function (data) {\n    if (data.length === 0) {\n      this.clear();\n      return;\n    }\n\n    var selection = data[0];\n\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    var formatted = this.display(selection, $rendered);\n\n    $rendered.empty().append(formatted);\n\n    var title = selection.title || selection.text;\n\n    if (title) {\n      $rendered.attr('title', title);\n    } else {\n      $rendered.removeAttr('title');\n    }\n  };\n\n  return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n  'jquery',\n  './base',\n  '../utils'\n], function ($, BaseSelection, Utils) {\n  function MultipleSelection ($element, options) {\n    MultipleSelection.__super__.constructor.apply(this, arguments);\n  }\n\n  Utils.Extend(MultipleSelection, BaseSelection);\n\n  MultipleSelection.prototype.render = function () {\n    var $selection = MultipleSelection.__super__.render.call(this);\n\n    $selection.addClass('select2-selection--multiple');\n\n    $selection.html(\n      '<ul class=\"select2-selection__rendered\"></ul>'\n    );\n\n    return $selection;\n  };\n\n  MultipleSelection.prototype.bind = function (container, $container) {\n    var self = this;\n\n    MultipleSelection.__super__.bind.apply(this, arguments);\n\n    this.$selection.on('click', function (evt) {\n      self.trigger('toggle', {\n        originalEvent: evt\n      });\n    });\n\n    this.$selection.on(\n      'click',\n      '.select2-selection__choice__remove',\n      function (evt) {\n        // Ignore the event if it is disabled\n        if (self.isDisabled()) {\n          return;\n        }\n\n        var $remove = $(this);\n        var $selection = $remove.parent();\n\n        var data = Utils.GetData($selection[0], 'data');\n\n        self.trigger('unselect', {\n          originalEvent: evt,\n          data: data\n        });\n      }\n    );\n  };\n\n  MultipleSelection.prototype.clear = function () {\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n    $rendered.empty();\n    $rendered.removeAttr('title');\n  };\n\n  MultipleSelection.prototype.display = function (data, container) {\n    var template = this.options.get('templateSelection');\n    var escapeMarkup = this.options.get('escapeMarkup');\n\n    return escapeMarkup(template(data, container));\n  };\n\n  MultipleSelection.prototype.selectionContainer = function () {\n    var $container = $(\n      '<li class=\"select2-selection__choice\">' +\n        '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\n          '&times;' +\n        '</span>' +\n      '</li>'\n    );\n\n    return $container;\n  };\n\n  MultipleSelection.prototype.update = function (data) {\n    this.clear();\n\n    if (data.length === 0) {\n      return;\n    }\n\n    var $selections = [];\n\n    for (var d = 0; d < data.length; d++) {\n      var selection = data[d];\n\n      var $selection = this.selectionContainer();\n      var formatted = this.display(selection, $selection);\n\n      $selection.append(formatted);\n\n      var title = selection.title || selection.text;\n\n      if (title) {\n        $selection.attr('title', title);\n      }\n\n      Utils.StoreData($selection[0], 'data', selection);\n\n      $selections.push($selection);\n    }\n\n    var $rendered = this.$selection.find('.select2-selection__rendered');\n\n    Utils.appendMany($rendered, $selections);\n  };\n\n  return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n  '../utils'\n], function (Utils) {\n  function Placeholder (decorated, $element, options) {\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n    decorated.call(this, $element, options);\n  }\n\n  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n    if (typeof placeholder === 'string') {\n      placeholder = {\n        id: '',\n        text: placeholder\n      };\n    }\n\n    return placeholder;\n  };\n\n  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n    var $placeholder = this.selectionContainer();\n\n    $placeholder.html(this.display(placeholder));\n    $placeholder.addClass('select2-selection__placeholder')\n                .removeClass('select2-selection__choice');\n\n    return $placeholder;\n  };\n\n  Placeholder.prototype.update = function (decorated, data) {\n    var singlePlaceholder = (\n      data.length == 1 && data[0].id != this.placeholder.id\n    );\n    var multipleSelections = data.length > 1;\n\n    if (multipleSelections || singlePlaceholder) {\n      return decorated.call(this, data);\n    }\n\n    this.clear();\n\n    var $placeholder = this.createPlaceholder(this.placeholder);\n\n    this.$selection.find('.select2-selection__rendered').append($placeholder);\n  };\n\n  return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n  'jquery',\n  '../keys',\n  '../utils'\n], function ($, KEYS, Utils) {\n  function AllowClear () { }\n\n  AllowClear.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    if (this.placeholder == null) {\n      if (this.options.get('debug') && window.console && console.error) {\n        console.error(\n          'Select2: The `allowClear` option should be used in combination ' +\n          'with the `placeholder` option.'\n        );\n      }\n    }\n\n    this.$selection.on('mousedown', '.select2-selection__clear',\n      function (evt) {\n        self._handleClear(evt);\n    });\n\n    container.on('keypress', function (evt) {\n      self._handleKeyboardClear(evt, container);\n    });\n  };\n\n  AllowClear.prototype._handleClear = function (_, evt) {\n    // Ignore the event if it is disabled\n    if (this.isDisabled()) {\n      return;\n    }\n\n    var $clear = this.$selection.find('.select2-selection__clear');\n\n    // Ignore the event if nothing has been selected\n    if ($clear.length === 0) {\n      return;\n    }\n\n    evt.stopPropagation();\n\n    var data = Utils.GetData($clear[0], 'data');\n\n    var previousVal = this.$element.val();\n    this.$element.val(this.placeholder.id);\n\n    var unselectData = {\n      data: data\n    };\n    this.trigger('clear', unselectData);\n    if (unselectData.prevented) {\n      this.$element.val(previousVal);\n      return;\n    }\n\n    for (var d = 0; d < data.length; d++) {\n      unselectData = {\n        data: data[d]\n      };\n\n      // Trigger the `unselect` event, so people can prevent it from being\n      // cleared.\n      this.trigger('unselect', unselectData);\n\n      // If the event was prevented, don't clear it out.\n      if (unselectData.prevented) {\n        this.$element.val(previousVal);\n        return;\n      }\n    }\n\n    this.$element.trigger('input').trigger('change');\n\n    this.trigger('toggle', {});\n  };\n\n  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n    if (container.isOpen()) {\n      return;\n    }\n\n    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n      this._handleClear(evt);\n    }\n  };\n\n  AllowClear.prototype.update = function (decorated, data) {\n    decorated.call(this, data);\n\n    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n        data.length === 0) {\n      return;\n    }\n\n    var removeAll = this.options.get('translations').get('removeAllItems');\n\n    var $remove = $(\n      '<span class=\"select2-selection__clear\" title=\"' + removeAll() +'\">' +\n        '&times;' +\n      '</span>'\n    );\n    Utils.StoreData($remove[0], 'data', data);\n\n    this.$selection.find('.select2-selection__rendered').prepend($remove);\n  };\n\n  return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n  'jquery',\n  '../utils',\n  '../keys'\n], function ($, Utils, KEYS) {\n  function Search (decorated, $element, options) {\n    decorated.call(this, $element, options);\n  }\n\n  Search.prototype.render = function (decorated) {\n    var $search = $(\n      '<li class=\"select2-search select2-search--inline\">' +\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n        ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' +\n      '</li>'\n    );\n\n    this.$searchContainer = $search;\n    this.$search = $search.find('input');\n\n    var $rendered = decorated.call(this);\n\n    this._transferTabIndex();\n\n    return $rendered;\n  };\n\n  Search.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    decorated.call(this, container, $container);\n\n    container.on('open', function () {\n      self.$search.attr('aria-controls', resultsId);\n      self.$search.trigger('focus');\n    });\n\n    container.on('close', function () {\n      self.$search.val('');\n      self.$search.removeAttr('aria-controls');\n      self.$search.removeAttr('aria-activedescendant');\n      self.$search.trigger('focus');\n    });\n\n    container.on('enable', function () {\n      self.$search.prop('disabled', false);\n\n      self._transferTabIndex();\n    });\n\n    container.on('disable', function () {\n      self.$search.prop('disabled', true);\n    });\n\n    container.on('focus', function (evt) {\n      self.$search.trigger('focus');\n    });\n\n    container.on('results:focus', function (params) {\n      if (params.data._resultId) {\n        self.$search.attr('aria-activedescendant', params.data._resultId);\n      } else {\n        self.$search.removeAttr('aria-activedescendant');\n      }\n    });\n\n    this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n      self._handleBlur(evt);\n    });\n\n    this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n      evt.stopPropagation();\n\n      self.trigger('keypress', evt);\n\n      self._keyUpPrevented = evt.isDefaultPrevented();\n\n      var key = evt.which;\n\n      if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n        var $previousChoice = self.$searchContainer\n          .prev('.select2-selection__choice');\n\n        if ($previousChoice.length > 0) {\n          var item = Utils.GetData($previousChoice[0], 'data');\n\n          self.searchRemoveChoice(item);\n\n          evt.preventDefault();\n        }\n      }\n    });\n\n    this.$selection.on('click', '.select2-search--inline', function (evt) {\n      if (self.$search.val()) {\n        evt.stopPropagation();\n      }\n    });\n\n    // Try to detect the IE version should the `documentMode` property that\n    // is stored on the document. This is only implemented in IE and is\n    // slightly cleaner than doing a user agent check.\n    // This property is not available in Edge, but Edge also doesn't have\n    // this bug.\n    var msie = document.documentMode;\n    var disableInputEvents = msie && msie <= 11;\n\n    // Workaround for browsers which do not support the `input` event\n    // This will prevent double-triggering of events for browsers which support\n    // both the `keyup` and `input` events.\n    this.$selection.on(\n      'input.searchcheck',\n      '.select2-search--inline',\n      function (evt) {\n        // IE will trigger the `input` event when a placeholder is used on a\n        // search box. To get around this issue, we are forced to ignore all\n        // `input` events in IE and keep using `keyup`.\n        if (disableInputEvents) {\n          self.$selection.off('input.search input.searchcheck');\n          return;\n        }\n\n        // Unbind the duplicated `keyup` event\n        self.$selection.off('keyup.search');\n      }\n    );\n\n    this.$selection.on(\n      'keyup.search input.search',\n      '.select2-search--inline',\n      function (evt) {\n        // IE will trigger the `input` event when a placeholder is used on a\n        // search box. To get around this issue, we are forced to ignore all\n        // `input` events in IE and keep using `keyup`.\n        if (disableInputEvents && evt.type === 'input') {\n          self.$selection.off('input.search input.searchcheck');\n          return;\n        }\n\n        var key = evt.which;\n\n        // We can freely ignore events from modifier keys\n        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n          return;\n        }\n\n        // Tabbing will be handled during the `keydown` phase\n        if (key == KEYS.TAB) {\n          return;\n        }\n\n        self.handleSearch(evt);\n      }\n    );\n  };\n\n  /**\n   * This method will transfer the tabindex attribute from the rendered\n   * selection to the search box. This allows for the search box to be used as\n   * the primary focus instead of the selection container.\n   *\n   * @private\n   */\n  Search.prototype._transferTabIndex = function (decorated) {\n    this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n    this.$selection.attr('tabindex', '-1');\n  };\n\n  Search.prototype.createPlaceholder = function (decorated, placeholder) {\n    this.$search.attr('placeholder', placeholder.text);\n  };\n\n  Search.prototype.update = function (decorated, data) {\n    var searchHadFocus = this.$search[0] == document.activeElement;\n\n    this.$search.attr('placeholder', '');\n\n    decorated.call(this, data);\n\n    this.$selection.find('.select2-selection__rendered')\n                   .append(this.$searchContainer);\n\n    this.resizeSearch();\n    if (searchHadFocus) {\n      this.$search.trigger('focus');\n    }\n  };\n\n  Search.prototype.handleSearch = function () {\n    this.resizeSearch();\n\n    if (!this._keyUpPrevented) {\n      var input = this.$search.val();\n\n      this.trigger('query', {\n        term: input\n      });\n    }\n\n    this._keyUpPrevented = false;\n  };\n\n  Search.prototype.searchRemoveChoice = function (decorated, item) {\n    this.trigger('unselect', {\n      data: item\n    });\n\n    this.$search.val(item.text);\n    this.handleSearch();\n  };\n\n  Search.prototype.resizeSearch = function () {\n    this.$search.css('width', '25px');\n\n    var width = '';\n\n    if (this.$search.attr('placeholder') !== '') {\n      width = this.$selection.find('.select2-selection__rendered').width();\n    } else {\n      var minimumWidth = this.$search.val().length + 1;\n\n      width = (minimumWidth * 0.75) + 'em';\n    }\n\n    this.$search.css('width', width);\n  };\n\n  return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n  'jquery'\n], function ($) {\n  function EventRelay () { }\n\n  EventRelay.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n    var relayEvents = [\n      'open', 'opening',\n      'close', 'closing',\n      'select', 'selecting',\n      'unselect', 'unselecting',\n      'clear', 'clearing'\n    ];\n\n    var preventableEvents = [\n      'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n    ];\n\n    decorated.call(this, container, $container);\n\n    container.on('*', function (name, params) {\n      // Ignore events that should not be relayed\n      if ($.inArray(name, relayEvents) === -1) {\n        return;\n      }\n\n      // The parameters should always be an object\n      params = params || {};\n\n      // Generate the jQuery event for the Select2 event\n      var evt = $.Event('select2:' + name, {\n        params: params\n      });\n\n      self.$element.trigger(evt);\n\n      // Only handle preventable events if it was one\n      if ($.inArray(name, preventableEvents) === -1) {\n        return;\n      }\n\n      params.prevented = evt.isDefaultPrevented();\n    });\n  };\n\n  return EventRelay;\n});\n\nS2.define('select2/translation',[\n  'jquery',\n  'require'\n], function ($, require) {\n  function Translation (dict) {\n    this.dict = dict || {};\n  }\n\n  Translation.prototype.all = function () {\n    return this.dict;\n  };\n\n  Translation.prototype.get = function (key) {\n    return this.dict[key];\n  };\n\n  Translation.prototype.extend = function (translation) {\n    this.dict = $.extend({}, translation.all(), this.dict);\n  };\n\n  // Static functions\n\n  Translation._cache = {};\n\n  Translation.loadPath = function (path) {\n    if (!(path in Translation._cache)) {\n      var translations = require(path);\n\n      Translation._cache[path] = translations;\n    }\n\n    return new Translation(Translation._cache[path]);\n  };\n\n  return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n  var diacritics = {\n    '\\u24B6': 'A',\n    '\\uFF21': 'A',\n    '\\u00C0': 'A',\n    '\\u00C1': 'A',\n    '\\u00C2': 'A',\n    '\\u1EA6': 'A',\n    '\\u1EA4': 'A',\n    '\\u1EAA': 'A',\n    '\\u1EA8': 'A',\n    '\\u00C3': 'A',\n    '\\u0100': 'A',\n    '\\u0102': 'A',\n    '\\u1EB0': 'A',\n    '\\u1EAE': 'A',\n    '\\u1EB4': 'A',\n    '\\u1EB2': 'A',\n    '\\u0226': 'A',\n    '\\u01E0': 'A',\n    '\\u00C4': 'A',\n    '\\u01DE': 'A',\n    '\\u1EA2': 'A',\n    '\\u00C5': 'A',\n    '\\u01FA': 'A',\n    '\\u01CD': 'A',\n    '\\u0200': 'A',\n    '\\u0202': 'A',\n    '\\u1EA0': 'A',\n    '\\u1EAC': 'A',\n    '\\u1EB6': 'A',\n    '\\u1E00': 'A',\n    '\\u0104': 'A',\n    '\\u023A': 'A',\n    '\\u2C6F': 'A',\n    '\\uA732': 'AA',\n    '\\u00C6': 'AE',\n    '\\u01FC': 'AE',\n    '\\u01E2': 'AE',\n    '\\uA734': 'AO',\n    '\\uA736': 'AU',\n    '\\uA738': 'AV',\n    '\\uA73A': 'AV',\n    '\\uA73C': 'AY',\n    '\\u24B7': 'B',\n    '\\uFF22': 'B',\n    '\\u1E02': 'B',\n    '\\u1E04': 'B',\n    '\\u1E06': 'B',\n    '\\u0243': 'B',\n    '\\u0182': 'B',\n    '\\u0181': 'B',\n    '\\u24B8': 'C',\n    '\\uFF23': 'C',\n    '\\u0106': 'C',\n    '\\u0108': 'C',\n    '\\u010A': 'C',\n    '\\u010C': 'C',\n    '\\u00C7': 'C',\n    '\\u1E08': 'C',\n    '\\u0187': 'C',\n    '\\u023B': 'C',\n    '\\uA73E': 'C',\n    '\\u24B9': 'D',\n    '\\uFF24': 'D',\n    '\\u1E0A': 'D',\n    '\\u010E': 'D',\n    '\\u1E0C': 'D',\n    '\\u1E10': 'D',\n    '\\u1E12': 'D',\n    '\\u1E0E': 'D',\n    '\\u0110': 'D',\n    '\\u018B': 'D',\n    '\\u018A': 'D',\n    '\\u0189': 'D',\n    '\\uA779': 'D',\n    '\\u01F1': 'DZ',\n    '\\u01C4': 'DZ',\n    '\\u01F2': 'Dz',\n    '\\u01C5': 'Dz',\n    '\\u24BA': 'E',\n    '\\uFF25': 'E',\n    '\\u00C8': 'E',\n    '\\u00C9': 'E',\n    '\\u00CA': 'E',\n    '\\u1EC0': 'E',\n    '\\u1EBE': 'E',\n    '\\u1EC4': 'E',\n    '\\u1EC2': 'E',\n    '\\u1EBC': 'E',\n    '\\u0112': 'E',\n    '\\u1E14': 'E',\n    '\\u1E16': 'E',\n    '\\u0114': 'E',\n    '\\u0116': 'E',\n    '\\u00CB': 'E',\n    '\\u1EBA': 'E',\n    '\\u011A': 'E',\n    '\\u0204': 'E',\n    '\\u0206': 'E',\n    '\\u1EB8': 'E',\n    '\\u1EC6': 'E',\n    '\\u0228': 'E',\n    '\\u1E1C': 'E',\n    '\\u0118': 'E',\n    '\\u1E18': 'E',\n    '\\u1E1A': 'E',\n    '\\u0190': 'E',\n    '\\u018E': 'E',\n    '\\u24BB': 'F',\n    '\\uFF26': 'F',\n    '\\u1E1E': 'F',\n    '\\u0191': 'F',\n    '\\uA77B': 'F',\n    '\\u24BC': 'G',\n    '\\uFF27': 'G',\n    '\\u01F4': 'G',\n    '\\u011C': 'G',\n    '\\u1E20': 'G',\n    '\\u011E': 'G',\n    '\\u0120': 'G',\n    '\\u01E6': 'G',\n    '\\u0122': 'G',\n    '\\u01E4': 'G',\n    '\\u0193': 'G',\n    '\\uA7A0': 'G',\n    '\\uA77D': 'G',\n    '\\uA77E': 'G',\n    '\\u24BD': 'H',\n    '\\uFF28': 'H',\n    '\\u0124': 'H',\n    '\\u1E22': 'H',\n    '\\u1E26': 'H',\n    '\\u021E': 'H',\n    '\\u1E24': 'H',\n    '\\u1E28': 'H',\n    '\\u1E2A': 'H',\n    '\\u0126': 'H',\n    '\\u2C67': 'H',\n    '\\u2C75': 'H',\n    '\\uA78D': 'H',\n    '\\u24BE': 'I',\n    '\\uFF29': 'I',\n    '\\u00CC': 'I',\n    '\\u00CD': 'I',\n    '\\u00CE': 'I',\n    '\\u0128': 'I',\n    '\\u012A': 'I',\n    '\\u012C': 'I',\n    '\\u0130': 'I',\n    '\\u00CF': 'I',\n    '\\u1E2E': 'I',\n    '\\u1EC8': 'I',\n    '\\u01CF': 'I',\n    '\\u0208': 'I',\n    '\\u020A': 'I',\n    '\\u1ECA': 'I',\n    '\\u012E': 'I',\n    '\\u1E2C': 'I',\n    '\\u0197': 'I',\n    '\\u24BF': 'J',\n    '\\uFF2A': 'J',\n    '\\u0134': 'J',\n    '\\u0248': 'J',\n    '\\u24C0': 'K',\n    '\\uFF2B': 'K',\n    '\\u1E30': 'K',\n    '\\u01E8': 'K',\n    '\\u1E32': 'K',\n    '\\u0136': 'K',\n    '\\u1E34': 'K',\n    '\\u0198': 'K',\n    '\\u2C69': 'K',\n    '\\uA740': 'K',\n    '\\uA742': 'K',\n    '\\uA744': 'K',\n    '\\uA7A2': 'K',\n    '\\u24C1': 'L',\n    '\\uFF2C': 'L',\n    '\\u013F': 'L',\n    '\\u0139': 'L',\n    '\\u013D': 'L',\n    '\\u1E36': 'L',\n    '\\u1E38': 'L',\n    '\\u013B': 'L',\n    '\\u1E3C': 'L',\n    '\\u1E3A': 'L',\n    '\\u0141': 'L',\n    '\\u023D': 'L',\n    '\\u2C62': 'L',\n    '\\u2C60': 'L',\n    '\\uA748': 'L',\n    '\\uA746': 'L',\n    '\\uA780': 'L',\n    '\\u01C7': 'LJ',\n    '\\u01C8': 'Lj',\n    '\\u24C2': 'M',\n    '\\uFF2D': 'M',\n    '\\u1E3E': 'M',\n    '\\u1E40': 'M',\n    '\\u1E42': 'M',\n    '\\u2C6E': 'M',\n    '\\u019C': 'M',\n    '\\u24C3': 'N',\n    '\\uFF2E': 'N',\n    '\\u01F8': 'N',\n    '\\u0143': 'N',\n    '\\u00D1': 'N',\n    '\\u1E44': 'N',\n    '\\u0147': 'N',\n    '\\u1E46': 'N',\n    '\\u0145': 'N',\n    '\\u1E4A': 'N',\n    '\\u1E48': 'N',\n    '\\u0220': 'N',\n    '\\u019D': 'N',\n    '\\uA790': 'N',\n    '\\uA7A4': 'N',\n    '\\u01CA': 'NJ',\n    '\\u01CB': 'Nj',\n    '\\u24C4': 'O',\n    '\\uFF2F': 'O',\n    '\\u00D2': 'O',\n    '\\u00D3': 'O',\n    '\\u00D4': 'O',\n    '\\u1ED2': 'O',\n    '\\u1ED0': 'O',\n    '\\u1ED6': 'O',\n    '\\u1ED4': 'O',\n    '\\u00D5': 'O',\n    '\\u1E4C': 'O',\n    '\\u022C': 'O',\n    '\\u1E4E': 'O',\n    '\\u014C': 'O',\n    '\\u1E50': 'O',\n    '\\u1E52': 'O',\n    '\\u014E': 'O',\n    '\\u022E': 'O',\n    '\\u0230': 'O',\n    '\\u00D6': 'O',\n    '\\u022A': 'O',\n    '\\u1ECE': 'O',\n    '\\u0150': 'O',\n    '\\u01D1': 'O',\n    '\\u020C': 'O',\n    '\\u020E': 'O',\n    '\\u01A0': 'O',\n    '\\u1EDC': 'O',\n    '\\u1EDA': 'O',\n    '\\u1EE0': 'O',\n    '\\u1EDE': 'O',\n    '\\u1EE2': 'O',\n    '\\u1ECC': 'O',\n    '\\u1ED8': 'O',\n    '\\u01EA': 'O',\n    '\\u01EC': 'O',\n    '\\u00D8': 'O',\n    '\\u01FE': 'O',\n    '\\u0186': 'O',\n    '\\u019F': 'O',\n    '\\uA74A': 'O',\n    '\\uA74C': 'O',\n    '\\u0152': 'OE',\n    '\\u01A2': 'OI',\n    '\\uA74E': 'OO',\n    '\\u0222': 'OU',\n    '\\u24C5': 'P',\n    '\\uFF30': 'P',\n    '\\u1E54': 'P',\n    '\\u1E56': 'P',\n    '\\u01A4': 'P',\n    '\\u2C63': 'P',\n    '\\uA750': 'P',\n    '\\uA752': 'P',\n    '\\uA754': 'P',\n    '\\u24C6': 'Q',\n    '\\uFF31': 'Q',\n    '\\uA756': 'Q',\n    '\\uA758': 'Q',\n    '\\u024A': 'Q',\n    '\\u24C7': 'R',\n    '\\uFF32': 'R',\n    '\\u0154': 'R',\n    '\\u1E58': 'R',\n    '\\u0158': 'R',\n    '\\u0210': 'R',\n    '\\u0212': 'R',\n    '\\u1E5A': 'R',\n    '\\u1E5C': 'R',\n    '\\u0156': 'R',\n    '\\u1E5E': 'R',\n    '\\u024C': 'R',\n    '\\u2C64': 'R',\n    '\\uA75A': 'R',\n    '\\uA7A6': 'R',\n    '\\uA782': 'R',\n    '\\u24C8': 'S',\n    '\\uFF33': 'S',\n    '\\u1E9E': 'S',\n    '\\u015A': 'S',\n    '\\u1E64': 'S',\n    '\\u015C': 'S',\n    '\\u1E60': 'S',\n    '\\u0160': 'S',\n    '\\u1E66': 'S',\n    '\\u1E62': 'S',\n    '\\u1E68': 'S',\n    '\\u0218': 'S',\n    '\\u015E': 'S',\n    '\\u2C7E': 'S',\n    '\\uA7A8': 'S',\n    '\\uA784': 'S',\n    '\\u24C9': 'T',\n    '\\uFF34': 'T',\n    '\\u1E6A': 'T',\n    '\\u0164': 'T',\n    '\\u1E6C': 'T',\n    '\\u021A': 'T',\n    '\\u0162': 'T',\n    '\\u1E70': 'T',\n    '\\u1E6E': 'T',\n    '\\u0166': 'T',\n    '\\u01AC': 'T',\n    '\\u01AE': 'T',\n    '\\u023E': 'T',\n    '\\uA786': 'T',\n    '\\uA728': 'TZ',\n    '\\u24CA': 'U',\n    '\\uFF35': 'U',\n    '\\u00D9': 'U',\n    '\\u00DA': 'U',\n    '\\u00DB': 'U',\n    '\\u0168': 'U',\n    '\\u1E78': 'U',\n    '\\u016A': 'U',\n    '\\u1E7A': 'U',\n    '\\u016C': 'U',\n    '\\u00DC': 'U',\n    '\\u01DB': 'U',\n    '\\u01D7': 'U',\n    '\\u01D5': 'U',\n    '\\u01D9': 'U',\n    '\\u1EE6': 'U',\n    '\\u016E': 'U',\n    '\\u0170': 'U',\n    '\\u01D3': 'U',\n    '\\u0214': 'U',\n    '\\u0216': 'U',\n    '\\u01AF': 'U',\n    '\\u1EEA': 'U',\n    '\\u1EE8': 'U',\n    '\\u1EEE': 'U',\n    '\\u1EEC': 'U',\n    '\\u1EF0': 'U',\n    '\\u1EE4': 'U',\n    '\\u1E72': 'U',\n    '\\u0172': 'U',\n    '\\u1E76': 'U',\n    '\\u1E74': 'U',\n    '\\u0244': 'U',\n    '\\u24CB': 'V',\n    '\\uFF36': 'V',\n    '\\u1E7C': 'V',\n    '\\u1E7E': 'V',\n    '\\u01B2': 'V',\n    '\\uA75E': 'V',\n    '\\u0245': 'V',\n    '\\uA760': 'VY',\n    '\\u24CC': 'W',\n    '\\uFF37': 'W',\n    '\\u1E80': 'W',\n    '\\u1E82': 'W',\n    '\\u0174': 'W',\n    '\\u1E86': 'W',\n    '\\u1E84': 'W',\n    '\\u1E88': 'W',\n    '\\u2C72': 'W',\n    '\\u24CD': 'X',\n    '\\uFF38': 'X',\n    '\\u1E8A': 'X',\n    '\\u1E8C': 'X',\n    '\\u24CE': 'Y',\n    '\\uFF39': 'Y',\n    '\\u1EF2': 'Y',\n    '\\u00DD': 'Y',\n    '\\u0176': 'Y',\n    '\\u1EF8': 'Y',\n    '\\u0232': 'Y',\n    '\\u1E8E': 'Y',\n    '\\u0178': 'Y',\n    '\\u1EF6': 'Y',\n    '\\u1EF4': 'Y',\n    '\\u01B3': 'Y',\n    '\\u024E': 'Y',\n    '\\u1EFE': 'Y',\n    '\\u24CF': 'Z',\n    '\\uFF3A': 'Z',\n    '\\u0179': 'Z',\n    '\\u1E90': 'Z',\n    '\\u017B': 'Z',\n    '\\u017D': 'Z',\n    '\\u1E92': 'Z',\n    '\\u1E94': 'Z',\n    '\\u01B5': 'Z',\n    '\\u0224': 'Z',\n    '\\u2C7F': 'Z',\n    '\\u2C6B': 'Z',\n    '\\uA762': 'Z',\n    '\\u24D0': 'a',\n    '\\uFF41': 'a',\n    '\\u1E9A': 'a',\n    '\\u00E0': 'a',\n    '\\u00E1': 'a',\n    '\\u00E2': 'a',\n    '\\u1EA7': 'a',\n    '\\u1EA5': 'a',\n    '\\u1EAB': 'a',\n    '\\u1EA9': 'a',\n    '\\u00E3': 'a',\n    '\\u0101': 'a',\n    '\\u0103': 'a',\n    '\\u1EB1': 'a',\n    '\\u1EAF': 'a',\n    '\\u1EB5': 'a',\n    '\\u1EB3': 'a',\n    '\\u0227': 'a',\n    '\\u01E1': 'a',\n    '\\u00E4': 'a',\n    '\\u01DF': 'a',\n    '\\u1EA3': 'a',\n    '\\u00E5': 'a',\n    '\\u01FB': 'a',\n    '\\u01CE': 'a',\n    '\\u0201': 'a',\n    '\\u0203': 'a',\n    '\\u1EA1': 'a',\n    '\\u1EAD': 'a',\n    '\\u1EB7': 'a',\n    '\\u1E01': 'a',\n    '\\u0105': 'a',\n    '\\u2C65': 'a',\n    '\\u0250': 'a',\n    '\\uA733': 'aa',\n    '\\u00E6': 'ae',\n    '\\u01FD': 'ae',\n    '\\u01E3': 'ae',\n    '\\uA735': 'ao',\n    '\\uA737': 'au',\n    '\\uA739': 'av',\n    '\\uA73B': 'av',\n    '\\uA73D': 'ay',\n    '\\u24D1': 'b',\n    '\\uFF42': 'b',\n    '\\u1E03': 'b',\n    '\\u1E05': 'b',\n    '\\u1E07': 'b',\n    '\\u0180': 'b',\n    '\\u0183': 'b',\n    '\\u0253': 'b',\n    '\\u24D2': 'c',\n    '\\uFF43': 'c',\n    '\\u0107': 'c',\n    '\\u0109': 'c',\n    '\\u010B': 'c',\n    '\\u010D': 'c',\n    '\\u00E7': 'c',\n    '\\u1E09': 'c',\n    '\\u0188': 'c',\n    '\\u023C': 'c',\n    '\\uA73F': 'c',\n    '\\u2184': 'c',\n    '\\u24D3': 'd',\n    '\\uFF44': 'd',\n    '\\u1E0B': 'd',\n    '\\u010F': 'd',\n    '\\u1E0D': 'd',\n    '\\u1E11': 'd',\n    '\\u1E13': 'd',\n    '\\u1E0F': 'd',\n    '\\u0111': 'd',\n    '\\u018C': 'd',\n    '\\u0256': 'd',\n    '\\u0257': 'd',\n    '\\uA77A': 'd',\n    '\\u01F3': 'dz',\n    '\\u01C6': 'dz',\n    '\\u24D4': 'e',\n    '\\uFF45': 'e',\n    '\\u00E8': 'e',\n    '\\u00E9': 'e',\n    '\\u00EA': 'e',\n    '\\u1EC1': 'e',\n    '\\u1EBF': 'e',\n    '\\u1EC5': 'e',\n    '\\u1EC3': 'e',\n    '\\u1EBD': 'e',\n    '\\u0113': 'e',\n    '\\u1E15': 'e',\n    '\\u1E17': 'e',\n    '\\u0115': 'e',\n    '\\u0117': 'e',\n    '\\u00EB': 'e',\n    '\\u1EBB': 'e',\n    '\\u011B': 'e',\n    '\\u0205': 'e',\n    '\\u0207': 'e',\n    '\\u1EB9': 'e',\n    '\\u1EC7': 'e',\n    '\\u0229': 'e',\n    '\\u1E1D': 'e',\n    '\\u0119': 'e',\n    '\\u1E19': 'e',\n    '\\u1E1B': 'e',\n    '\\u0247': 'e',\n    '\\u025B': 'e',\n    '\\u01DD': 'e',\n    '\\u24D5': 'f',\n    '\\uFF46': 'f',\n    '\\u1E1F': 'f',\n    '\\u0192': 'f',\n    '\\uA77C': 'f',\n    '\\u24D6': 'g',\n    '\\uFF47': 'g',\n    '\\u01F5': 'g',\n    '\\u011D': 'g',\n    '\\u1E21': 'g',\n    '\\u011F': 'g',\n    '\\u0121': 'g',\n    '\\u01E7': 'g',\n    '\\u0123': 'g',\n    '\\u01E5': 'g',\n    '\\u0260': 'g',\n    '\\uA7A1': 'g',\n    '\\u1D79': 'g',\n    '\\uA77F': 'g',\n    '\\u24D7': 'h',\n    '\\uFF48': 'h',\n    '\\u0125': 'h',\n    '\\u1E23': 'h',\n    '\\u1E27': 'h',\n    '\\u021F': 'h',\n    '\\u1E25': 'h',\n    '\\u1E29': 'h',\n    '\\u1E2B': 'h',\n    '\\u1E96': 'h',\n    '\\u0127': 'h',\n    '\\u2C68': 'h',\n    '\\u2C76': 'h',\n    '\\u0265': 'h',\n    '\\u0195': 'hv',\n    '\\u24D8': 'i',\n    '\\uFF49': 'i',\n    '\\u00EC': 'i',\n    '\\u00ED': 'i',\n    '\\u00EE': 'i',\n    '\\u0129': 'i',\n    '\\u012B': 'i',\n    '\\u012D': 'i',\n    '\\u00EF': 'i',\n    '\\u1E2F': 'i',\n    '\\u1EC9': 'i',\n    '\\u01D0': 'i',\n    '\\u0209': 'i',\n    '\\u020B': 'i',\n    '\\u1ECB': 'i',\n    '\\u012F': 'i',\n    '\\u1E2D': 'i',\n    '\\u0268': 'i',\n    '\\u0131': 'i',\n    '\\u24D9': 'j',\n    '\\uFF4A': 'j',\n    '\\u0135': 'j',\n    '\\u01F0': 'j',\n    '\\u0249': 'j',\n    '\\u24DA': 'k',\n    '\\uFF4B': 'k',\n    '\\u1E31': 'k',\n    '\\u01E9': 'k',\n    '\\u1E33': 'k',\n    '\\u0137': 'k',\n    '\\u1E35': 'k',\n    '\\u0199': 'k',\n    '\\u2C6A': 'k',\n    '\\uA741': 'k',\n    '\\uA743': 'k',\n    '\\uA745': 'k',\n    '\\uA7A3': 'k',\n    '\\u24DB': 'l',\n    '\\uFF4C': 'l',\n    '\\u0140': 'l',\n    '\\u013A': 'l',\n    '\\u013E': 'l',\n    '\\u1E37': 'l',\n    '\\u1E39': 'l',\n    '\\u013C': 'l',\n    '\\u1E3D': 'l',\n    '\\u1E3B': 'l',\n    '\\u017F': 'l',\n    '\\u0142': 'l',\n    '\\u019A': 'l',\n    '\\u026B': 'l',\n    '\\u2C61': 'l',\n    '\\uA749': 'l',\n    '\\uA781': 'l',\n    '\\uA747': 'l',\n    '\\u01C9': 'lj',\n    '\\u24DC': 'm',\n    '\\uFF4D': 'm',\n    '\\u1E3F': 'm',\n    '\\u1E41': 'm',\n    '\\u1E43': 'm',\n    '\\u0271': 'm',\n    '\\u026F': 'm',\n    '\\u24DD': 'n',\n    '\\uFF4E': 'n',\n    '\\u01F9': 'n',\n    '\\u0144': 'n',\n    '\\u00F1': 'n',\n    '\\u1E45': 'n',\n    '\\u0148': 'n',\n    '\\u1E47': 'n',\n    '\\u0146': 'n',\n    '\\u1E4B': 'n',\n    '\\u1E49': 'n',\n    '\\u019E': 'n',\n    '\\u0272': 'n',\n    '\\u0149': 'n',\n    '\\uA791': 'n',\n    '\\uA7A5': 'n',\n    '\\u01CC': 'nj',\n    '\\u24DE': 'o',\n    '\\uFF4F': 'o',\n    '\\u00F2': 'o',\n    '\\u00F3': 'o',\n    '\\u00F4': 'o',\n    '\\u1ED3': 'o',\n    '\\u1ED1': 'o',\n    '\\u1ED7': 'o',\n    '\\u1ED5': 'o',\n    '\\u00F5': 'o',\n    '\\u1E4D': 'o',\n    '\\u022D': 'o',\n    '\\u1E4F': 'o',\n    '\\u014D': 'o',\n    '\\u1E51': 'o',\n    '\\u1E53': 'o',\n    '\\u014F': 'o',\n    '\\u022F': 'o',\n    '\\u0231': 'o',\n    '\\u00F6': 'o',\n    '\\u022B': 'o',\n    '\\u1ECF': 'o',\n    '\\u0151': 'o',\n    '\\u01D2': 'o',\n    '\\u020D': 'o',\n    '\\u020F': 'o',\n    '\\u01A1': 'o',\n    '\\u1EDD': 'o',\n    '\\u1EDB': 'o',\n    '\\u1EE1': 'o',\n    '\\u1EDF': 'o',\n    '\\u1EE3': 'o',\n    '\\u1ECD': 'o',\n    '\\u1ED9': 'o',\n    '\\u01EB': 'o',\n    '\\u01ED': 'o',\n    '\\u00F8': 'o',\n    '\\u01FF': 'o',\n    '\\u0254': 'o',\n    '\\uA74B': 'o',\n    '\\uA74D': 'o',\n    '\\u0275': 'o',\n    '\\u0153': 'oe',\n    '\\u01A3': 'oi',\n    '\\u0223': 'ou',\n    '\\uA74F': 'oo',\n    '\\u24DF': 'p',\n    '\\uFF50': 'p',\n    '\\u1E55': 'p',\n    '\\u1E57': 'p',\n    '\\u01A5': 'p',\n    '\\u1D7D': 'p',\n    '\\uA751': 'p',\n    '\\uA753': 'p',\n    '\\uA755': 'p',\n    '\\u24E0': 'q',\n    '\\uFF51': 'q',\n    '\\u024B': 'q',\n    '\\uA757': 'q',\n    '\\uA759': 'q',\n    '\\u24E1': 'r',\n    '\\uFF52': 'r',\n    '\\u0155': 'r',\n    '\\u1E59': 'r',\n    '\\u0159': 'r',\n    '\\u0211': 'r',\n    '\\u0213': 'r',\n    '\\u1E5B': 'r',\n    '\\u1E5D': 'r',\n    '\\u0157': 'r',\n    '\\u1E5F': 'r',\n    '\\u024D': 'r',\n    '\\u027D': 'r',\n    '\\uA75B': 'r',\n    '\\uA7A7': 'r',\n    '\\uA783': 'r',\n    '\\u24E2': 's',\n    '\\uFF53': 's',\n    '\\u00DF': 's',\n    '\\u015B': 's',\n    '\\u1E65': 's',\n    '\\u015D': 's',\n    '\\u1E61': 's',\n    '\\u0161': 's',\n    '\\u1E67': 's',\n    '\\u1E63': 's',\n    '\\u1E69': 's',\n    '\\u0219': 's',\n    '\\u015F': 's',\n    '\\u023F': 's',\n    '\\uA7A9': 's',\n    '\\uA785': 's',\n    '\\u1E9B': 's',\n    '\\u24E3': 't',\n    '\\uFF54': 't',\n    '\\u1E6B': 't',\n    '\\u1E97': 't',\n    '\\u0165': 't',\n    '\\u1E6D': 't',\n    '\\u021B': 't',\n    '\\u0163': 't',\n    '\\u1E71': 't',\n    '\\u1E6F': 't',\n    '\\u0167': 't',\n    '\\u01AD': 't',\n    '\\u0288': 't',\n    '\\u2C66': 't',\n    '\\uA787': 't',\n    '\\uA729': 'tz',\n    '\\u24E4': 'u',\n    '\\uFF55': 'u',\n    '\\u00F9': 'u',\n    '\\u00FA': 'u',\n    '\\u00FB': 'u',\n    '\\u0169': 'u',\n    '\\u1E79': 'u',\n    '\\u016B': 'u',\n    '\\u1E7B': 'u',\n    '\\u016D': 'u',\n    '\\u00FC': 'u',\n    '\\u01DC': 'u',\n    '\\u01D8': 'u',\n    '\\u01D6': 'u',\n    '\\u01DA': 'u',\n    '\\u1EE7': 'u',\n    '\\u016F': 'u',\n    '\\u0171': 'u',\n    '\\u01D4': 'u',\n    '\\u0215': 'u',\n    '\\u0217': 'u',\n    '\\u01B0': 'u',\n    '\\u1EEB': 'u',\n    '\\u1EE9': 'u',\n    '\\u1EEF': 'u',\n    '\\u1EED': 'u',\n    '\\u1EF1': 'u',\n    '\\u1EE5': 'u',\n    '\\u1E73': 'u',\n    '\\u0173': 'u',\n    '\\u1E77': 'u',\n    '\\u1E75': 'u',\n    '\\u0289': 'u',\n    '\\u24E5': 'v',\n    '\\uFF56': 'v',\n    '\\u1E7D': 'v',\n    '\\u1E7F': 'v',\n    '\\u028B': 'v',\n    '\\uA75F': 'v',\n    '\\u028C': 'v',\n    '\\uA761': 'vy',\n    '\\u24E6': 'w',\n    '\\uFF57': 'w',\n    '\\u1E81': 'w',\n    '\\u1E83': 'w',\n    '\\u0175': 'w',\n    '\\u1E87': 'w',\n    '\\u1E85': 'w',\n    '\\u1E98': 'w',\n    '\\u1E89': 'w',\n    '\\u2C73': 'w',\n    '\\u24E7': 'x',\n    '\\uFF58': 'x',\n    '\\u1E8B': 'x',\n    '\\u1E8D': 'x',\n    '\\u24E8': 'y',\n    '\\uFF59': 'y',\n    '\\u1EF3': 'y',\n    '\\u00FD': 'y',\n    '\\u0177': 'y',\n    '\\u1EF9': 'y',\n    '\\u0233': 'y',\n    '\\u1E8F': 'y',\n    '\\u00FF': 'y',\n    '\\u1EF7': 'y',\n    '\\u1E99': 'y',\n    '\\u1EF5': 'y',\n    '\\u01B4': 'y',\n    '\\u024F': 'y',\n    '\\u1EFF': 'y',\n    '\\u24E9': 'z',\n    '\\uFF5A': 'z',\n    '\\u017A': 'z',\n    '\\u1E91': 'z',\n    '\\u017C': 'z',\n    '\\u017E': 'z',\n    '\\u1E93': 'z',\n    '\\u1E95': 'z',\n    '\\u01B6': 'z',\n    '\\u0225': 'z',\n    '\\u0240': 'z',\n    '\\u2C6C': 'z',\n    '\\uA763': 'z',\n    '\\u0386': '\\u0391',\n    '\\u0388': '\\u0395',\n    '\\u0389': '\\u0397',\n    '\\u038A': '\\u0399',\n    '\\u03AA': '\\u0399',\n    '\\u038C': '\\u039F',\n    '\\u038E': '\\u03A5',\n    '\\u03AB': '\\u03A5',\n    '\\u038F': '\\u03A9',\n    '\\u03AC': '\\u03B1',\n    '\\u03AD': '\\u03B5',\n    '\\u03AE': '\\u03B7',\n    '\\u03AF': '\\u03B9',\n    '\\u03CA': '\\u03B9',\n    '\\u0390': '\\u03B9',\n    '\\u03CC': '\\u03BF',\n    '\\u03CD': '\\u03C5',\n    '\\u03CB': '\\u03C5',\n    '\\u03B0': '\\u03C5',\n    '\\u03CE': '\\u03C9',\n    '\\u03C2': '\\u03C3',\n    '\\u2019': '\\''\n  };\n\n  return diacritics;\n});\n\nS2.define('select2/data/base',[\n  '../utils'\n], function (Utils) {\n  function BaseAdapter ($element, options) {\n    BaseAdapter.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(BaseAdapter, Utils.Observable);\n\n  BaseAdapter.prototype.current = function (callback) {\n    throw new Error('The `current` method must be defined in child classes.');\n  };\n\n  BaseAdapter.prototype.query = function (params, callback) {\n    throw new Error('The `query` method must be defined in child classes.');\n  };\n\n  BaseAdapter.prototype.bind = function (container, $container) {\n    // Can be implemented in subclasses\n  };\n\n  BaseAdapter.prototype.destroy = function () {\n    // Can be implemented in subclasses\n  };\n\n  BaseAdapter.prototype.generateResultId = function (container, data) {\n    var id = container.id + '-result-';\n\n    id += Utils.generateChars(4);\n\n    if (data.id != null) {\n      id += '-' + data.id.toString();\n    } else {\n      id += '-' + Utils.generateChars(4);\n    }\n    return id;\n  };\n\n  return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n  './base',\n  '../utils',\n  'jquery'\n], function (BaseAdapter, Utils, $) {\n  function SelectAdapter ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    SelectAdapter.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(SelectAdapter, BaseAdapter);\n\n  SelectAdapter.prototype.current = function (callback) {\n    var data = [];\n    var self = this;\n\n    this.$element.find(':selected').each(function () {\n      var $option = $(this);\n\n      var option = self.item($option);\n\n      data.push(option);\n    });\n\n    callback(data);\n  };\n\n  SelectAdapter.prototype.select = function (data) {\n    var self = this;\n\n    data.selected = true;\n\n    // If data.element is a DOM node, use it instead\n    if ($(data.element).is('option')) {\n      data.element.selected = true;\n\n      this.$element.trigger('input').trigger('change');\n\n      return;\n    }\n\n    if (this.$element.prop('multiple')) {\n      this.current(function (currentData) {\n        var val = [];\n\n        data = [data];\n        data.push.apply(data, currentData);\n\n        for (var d = 0; d < data.length; d++) {\n          var id = data[d].id;\n\n          if ($.inArray(id, val) === -1) {\n            val.push(id);\n          }\n        }\n\n        self.$element.val(val);\n        self.$element.trigger('input').trigger('change');\n      });\n    } else {\n      var val = data.id;\n\n      this.$element.val(val);\n      this.$element.trigger('input').trigger('change');\n    }\n  };\n\n  SelectAdapter.prototype.unselect = function (data) {\n    var self = this;\n\n    if (!this.$element.prop('multiple')) {\n      return;\n    }\n\n    data.selected = false;\n\n    if ($(data.element).is('option')) {\n      data.element.selected = false;\n\n      this.$element.trigger('input').trigger('change');\n\n      return;\n    }\n\n    this.current(function (currentData) {\n      var val = [];\n\n      for (var d = 0; d < currentData.length; d++) {\n        var id = currentData[d].id;\n\n        if (id !== data.id && $.inArray(id, val) === -1) {\n          val.push(id);\n        }\n      }\n\n      self.$element.val(val);\n\n      self.$element.trigger('input').trigger('change');\n    });\n  };\n\n  SelectAdapter.prototype.bind = function (container, $container) {\n    var self = this;\n\n    this.container = container;\n\n    container.on('select', function (params) {\n      self.select(params.data);\n    });\n\n    container.on('unselect', function (params) {\n      self.unselect(params.data);\n    });\n  };\n\n  SelectAdapter.prototype.destroy = function () {\n    // Remove anything added to child elements\n    this.$element.find('*').each(function () {\n      // Remove any custom data set by Select2\n      Utils.RemoveData(this);\n    });\n  };\n\n  SelectAdapter.prototype.query = function (params, callback) {\n    var data = [];\n    var self = this;\n\n    var $options = this.$element.children();\n\n    $options.each(function () {\n      var $option = $(this);\n\n      if (!$option.is('option') && !$option.is('optgroup')) {\n        return;\n      }\n\n      var option = self.item($option);\n\n      var matches = self.matches(params, option);\n\n      if (matches !== null) {\n        data.push(matches);\n      }\n    });\n\n    callback({\n      results: data\n    });\n  };\n\n  SelectAdapter.prototype.addOptions = function ($options) {\n    Utils.appendMany(this.$element, $options);\n  };\n\n  SelectAdapter.prototype.option = function (data) {\n    var option;\n\n    if (data.children) {\n      option = document.createElement('optgroup');\n      option.label = data.text;\n    } else {\n      option = document.createElement('option');\n\n      if (option.textContent !== undefined) {\n        option.textContent = data.text;\n      } else {\n        option.innerText = data.text;\n      }\n    }\n\n    if (data.id !== undefined) {\n      option.value = data.id;\n    }\n\n    if (data.disabled) {\n      option.disabled = true;\n    }\n\n    if (data.selected) {\n      option.selected = true;\n    }\n\n    if (data.title) {\n      option.title = data.title;\n    }\n\n    var $option = $(option);\n\n    var normalizedData = this._normalizeItem(data);\n    normalizedData.element = option;\n\n    // Override the option's data with the combined data\n    Utils.StoreData(option, 'data', normalizedData);\n\n    return $option;\n  };\n\n  SelectAdapter.prototype.item = function ($option) {\n    var data = {};\n\n    data = Utils.GetData($option[0], 'data');\n\n    if (data != null) {\n      return data;\n    }\n\n    if ($option.is('option')) {\n      data = {\n        id: $option.val(),\n        text: $option.text(),\n        disabled: $option.prop('disabled'),\n        selected: $option.prop('selected'),\n        title: $option.prop('title')\n      };\n    } else if ($option.is('optgroup')) {\n      data = {\n        text: $option.prop('label'),\n        children: [],\n        title: $option.prop('title')\n      };\n\n      var $children = $option.children('option');\n      var children = [];\n\n      for (var c = 0; c < $children.length; c++) {\n        var $child = $($children[c]);\n\n        var child = this.item($child);\n\n        children.push(child);\n      }\n\n      data.children = children;\n    }\n\n    data = this._normalizeItem(data);\n    data.element = $option[0];\n\n    Utils.StoreData($option[0], 'data', data);\n\n    return data;\n  };\n\n  SelectAdapter.prototype._normalizeItem = function (item) {\n    if (item !== Object(item)) {\n      item = {\n        id: item,\n        text: item\n      };\n    }\n\n    item = $.extend({}, {\n      text: ''\n    }, item);\n\n    var defaults = {\n      selected: false,\n      disabled: false\n    };\n\n    if (item.id != null) {\n      item.id = item.id.toString();\n    }\n\n    if (item.text != null) {\n      item.text = item.text.toString();\n    }\n\n    if (item._resultId == null && item.id && this.container != null) {\n      item._resultId = this.generateResultId(this.container, item);\n    }\n\n    return $.extend({}, defaults, item);\n  };\n\n  SelectAdapter.prototype.matches = function (params, data) {\n    var matcher = this.options.get('matcher');\n\n    return matcher(params, data);\n  };\n\n  return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n  './select',\n  '../utils',\n  'jquery'\n], function (SelectAdapter, Utils, $) {\n  function ArrayAdapter ($element, options) {\n    this._dataToConvert = options.get('data') || [];\n\n    ArrayAdapter.__super__.constructor.call(this, $element, options);\n  }\n\n  Utils.Extend(ArrayAdapter, SelectAdapter);\n\n  ArrayAdapter.prototype.bind = function (container, $container) {\n    ArrayAdapter.__super__.bind.call(this, container, $container);\n\n    this.addOptions(this.convertToOptions(this._dataToConvert));\n  };\n\n  ArrayAdapter.prototype.select = function (data) {\n    var $option = this.$element.find('option').filter(function (i, elm) {\n      return elm.value == data.id.toString();\n    });\n\n    if ($option.length === 0) {\n      $option = this.option(data);\n\n      this.addOptions($option);\n    }\n\n    ArrayAdapter.__super__.select.call(this, data);\n  };\n\n  ArrayAdapter.prototype.convertToOptions = function (data) {\n    var self = this;\n\n    var $existing = this.$element.find('option');\n    var existingIds = $existing.map(function () {\n      return self.item($(this)).id;\n    }).get();\n\n    var $options = [];\n\n    // Filter out all items except for the one passed in the argument\n    function onlyItem (item) {\n      return function () {\n        return $(this).val() == item.id;\n      };\n    }\n\n    for (var d = 0; d < data.length; d++) {\n      var item = this._normalizeItem(data[d]);\n\n      // Skip items which were pre-loaded, only merge the data\n      if ($.inArray(item.id, existingIds) >= 0) {\n        var $existingOption = $existing.filter(onlyItem(item));\n\n        var existingData = this.item($existingOption);\n        var newData = $.extend(true, {}, item, existingData);\n\n        var $newOption = this.option(newData);\n\n        $existingOption.replaceWith($newOption);\n\n        continue;\n      }\n\n      var $option = this.option(item);\n\n      if (item.children) {\n        var $children = this.convertToOptions(item.children);\n\n        Utils.appendMany($option, $children);\n      }\n\n      $options.push($option);\n    }\n\n    return $options;\n  };\n\n  return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n  './array',\n  '../utils',\n  'jquery'\n], function (ArrayAdapter, Utils, $) {\n  function AjaxAdapter ($element, options) {\n    this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n    if (this.ajaxOptions.processResults != null) {\n      this.processResults = this.ajaxOptions.processResults;\n    }\n\n    AjaxAdapter.__super__.constructor.call(this, $element, options);\n  }\n\n  Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n  AjaxAdapter.prototype._applyDefaults = function (options) {\n    var defaults = {\n      data: function (params) {\n        return $.extend({}, params, {\n          q: params.term\n        });\n      },\n      transport: function (params, success, failure) {\n        var $request = $.ajax(params);\n\n        $request.then(success);\n        $request.fail(failure);\n\n        return $request;\n      }\n    };\n\n    return $.extend({}, defaults, options, true);\n  };\n\n  AjaxAdapter.prototype.processResults = function (results) {\n    return results;\n  };\n\n  AjaxAdapter.prototype.query = function (params, callback) {\n    var matches = [];\n    var self = this;\n\n    if (this._request != null) {\n      // JSONP requests cannot always be aborted\n      if ($.isFunction(this._request.abort)) {\n        this._request.abort();\n      }\n\n      this._request = null;\n    }\n\n    var options = $.extend({\n      type: 'GET'\n    }, this.ajaxOptions);\n\n    if (typeof options.url === 'function') {\n      options.url = options.url.call(this.$element, params);\n    }\n\n    if (typeof options.data === 'function') {\n      options.data = options.data.call(this.$element, params);\n    }\n\n    function request () {\n      var $request = options.transport(options, function (data) {\n        var results = self.processResults(data, params);\n\n        if (self.options.get('debug') && window.console && console.error) {\n          // Check to make sure that the response included a `results` key.\n          if (!results || !results.results || !$.isArray(results.results)) {\n            console.error(\n              'Select2: The AJAX results did not return an array in the ' +\n              '`results` key of the response.'\n            );\n          }\n        }\n\n        callback(results);\n      }, function () {\n        // Attempt to detect if a request was aborted\n        // Only works if the transport exposes a status property\n        if ('status' in $request &&\n            ($request.status === 0 || $request.status === '0')) {\n          return;\n        }\n\n        self.trigger('results:message', {\n          message: 'errorLoading'\n        });\n      });\n\n      self._request = $request;\n    }\n\n    if (this.ajaxOptions.delay && params.term != null) {\n      if (this._queryTimeout) {\n        window.clearTimeout(this._queryTimeout);\n      }\n\n      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n    } else {\n      request();\n    }\n  };\n\n  return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n  'jquery'\n], function ($) {\n  function Tags (decorated, $element, options) {\n    var tags = options.get('tags');\n\n    var createTag = options.get('createTag');\n\n    if (createTag !== undefined) {\n      this.createTag = createTag;\n    }\n\n    var insertTag = options.get('insertTag');\n\n    if (insertTag !== undefined) {\n        this.insertTag = insertTag;\n    }\n\n    decorated.call(this, $element, options);\n\n    if ($.isArray(tags)) {\n      for (var t = 0; t < tags.length; t++) {\n        var tag = tags[t];\n        var item = this._normalizeItem(tag);\n\n        var $option = this.option(item);\n\n        this.$element.append($option);\n      }\n    }\n  }\n\n  Tags.prototype.query = function (decorated, params, callback) {\n    var self = this;\n\n    this._removeOldTags();\n\n    if (params.term == null || params.page != null) {\n      decorated.call(this, params, callback);\n      return;\n    }\n\n    function wrapper (obj, child) {\n      var data = obj.results;\n\n      for (var i = 0; i < data.length; i++) {\n        var option = data[i];\n\n        var checkChildren = (\n          option.children != null &&\n          !wrapper({\n            results: option.children\n          }, true)\n        );\n\n        var optionText = (option.text || '').toUpperCase();\n        var paramsTerm = (params.term || '').toUpperCase();\n\n        var checkText = optionText === paramsTerm;\n\n        if (checkText || checkChildren) {\n          if (child) {\n            return false;\n          }\n\n          obj.data = data;\n          callback(obj);\n\n          return;\n        }\n      }\n\n      if (child) {\n        return true;\n      }\n\n      var tag = self.createTag(params);\n\n      if (tag != null) {\n        var $option = self.option(tag);\n        $option.attr('data-select2-tag', true);\n\n        self.addOptions([$option]);\n\n        self.insertTag(data, tag);\n      }\n\n      obj.results = data;\n\n      callback(obj);\n    }\n\n    decorated.call(this, params, wrapper);\n  };\n\n  Tags.prototype.createTag = function (decorated, params) {\n    var term = $.trim(params.term);\n\n    if (term === '') {\n      return null;\n    }\n\n    return {\n      id: term,\n      text: term\n    };\n  };\n\n  Tags.prototype.insertTag = function (_, data, tag) {\n    data.unshift(tag);\n  };\n\n  Tags.prototype._removeOldTags = function (_) {\n    var $options = this.$element.find('option[data-select2-tag]');\n\n    $options.each(function () {\n      if (this.selected) {\n        return;\n      }\n\n      $(this).remove();\n    });\n  };\n\n  return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n  'jquery'\n], function ($) {\n  function Tokenizer (decorated, $element, options) {\n    var tokenizer = options.get('tokenizer');\n\n    if (tokenizer !== undefined) {\n      this.tokenizer = tokenizer;\n    }\n\n    decorated.call(this, $element, options);\n  }\n\n  Tokenizer.prototype.bind = function (decorated, container, $container) {\n    decorated.call(this, container, $container);\n\n    this.$search =  container.dropdown.$search || container.selection.$search ||\n      $container.find('.select2-search__field');\n  };\n\n  Tokenizer.prototype.query = function (decorated, params, callback) {\n    var self = this;\n\n    function createAndSelect (data) {\n      // Normalize the data object so we can use it for checks\n      var item = self._normalizeItem(data);\n\n      // Check if the data object already exists as a tag\n      // Select it if it doesn't\n      var $existingOptions = self.$element.find('option').filter(function () {\n        return $(this).val() === item.id;\n      });\n\n      // If an existing option wasn't found for it, create the option\n      if (!$existingOptions.length) {\n        var $option = self.option(item);\n        $option.attr('data-select2-tag', true);\n\n        self._removeOldTags();\n        self.addOptions([$option]);\n      }\n\n      // Select the item, now that we know there is an option for it\n      select(item);\n    }\n\n    function select (data) {\n      self.trigger('select', {\n        data: data\n      });\n    }\n\n    params.term = params.term || '';\n\n    var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n    if (tokenData.term !== params.term) {\n      // Replace the search term if we have the search box\n      if (this.$search.length) {\n        this.$search.val(tokenData.term);\n        this.$search.trigger('focus');\n      }\n\n      params.term = tokenData.term;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n    var separators = options.get('tokenSeparators') || [];\n    var term = params.term;\n    var i = 0;\n\n    var createTag = this.createTag || function (params) {\n      return {\n        id: params.term,\n        text: params.term\n      };\n    };\n\n    while (i < term.length) {\n      var termChar = term[i];\n\n      if ($.inArray(termChar, separators) === -1) {\n        i++;\n\n        continue;\n      }\n\n      var part = term.substr(0, i);\n      var partParams = $.extend({}, params, {\n        term: part\n      });\n\n      var data = createTag(partParams);\n\n      if (data == null) {\n        i++;\n        continue;\n      }\n\n      callback(data);\n\n      // Reset the term to not include the tokenized portion\n      term = term.substr(i + 1) || '';\n      i = 0;\n    }\n\n    return {\n      term: term\n    };\n  };\n\n  return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n  function MinimumInputLength (decorated, $e, options) {\n    this.minimumInputLength = options.get('minimumInputLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MinimumInputLength.prototype.query = function (decorated, params, callback) {\n    params.term = params.term || '';\n\n    if (params.term.length < this.minimumInputLength) {\n      this.trigger('results:message', {\n        message: 'inputTooShort',\n        args: {\n          minimum: this.minimumInputLength,\n          input: params.term,\n          params: params\n        }\n      });\n\n      return;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n  function MaximumInputLength (decorated, $e, options) {\n    this.maximumInputLength = options.get('maximumInputLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MaximumInputLength.prototype.query = function (decorated, params, callback) {\n    params.term = params.term || '';\n\n    if (this.maximumInputLength > 0 &&\n        params.term.length > this.maximumInputLength) {\n      this.trigger('results:message', {\n        message: 'inputTooLong',\n        args: {\n          maximum: this.maximumInputLength,\n          input: params.term,\n          params: params\n        }\n      });\n\n      return;\n    }\n\n    decorated.call(this, params, callback);\n  };\n\n  return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n  function MaximumSelectionLength (decorated, $e, options) {\n    this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n    decorated.call(this, $e, options);\n  }\n\n  MaximumSelectionLength.prototype.bind =\n    function (decorated, container, $container) {\n      var self = this;\n\n      decorated.call(this, container, $container);\n\n      container.on('select', function () {\n        self._checkIfMaximumSelected();\n      });\n  };\n\n  MaximumSelectionLength.prototype.query =\n    function (decorated, params, callback) {\n      var self = this;\n\n      this._checkIfMaximumSelected(function () {\n        decorated.call(self, params, callback);\n      });\n  };\n\n  MaximumSelectionLength.prototype._checkIfMaximumSelected =\n    function (_, successCallback) {\n      var self = this;\n\n      this.current(function (currentData) {\n        var count = currentData != null ? currentData.length : 0;\n        if (self.maximumSelectionLength > 0 &&\n          count >= self.maximumSelectionLength) {\n          self.trigger('results:message', {\n            message: 'maximumSelected',\n            args: {\n              maximum: self.maximumSelectionLength\n            }\n          });\n          return;\n        }\n\n        if (successCallback) {\n          successCallback();\n        }\n      });\n  };\n\n  return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n  'jquery',\n  './utils'\n], function ($, Utils) {\n  function Dropdown ($element, options) {\n    this.$element = $element;\n    this.options = options;\n\n    Dropdown.__super__.constructor.call(this);\n  }\n\n  Utils.Extend(Dropdown, Utils.Observable);\n\n  Dropdown.prototype.render = function () {\n    var $dropdown = $(\n      '<span class=\"select2-dropdown\">' +\n        '<span class=\"select2-results\"></span>' +\n      '</span>'\n    );\n\n    $dropdown.attr('dir', this.options.get('dir'));\n\n    this.$dropdown = $dropdown;\n\n    return $dropdown;\n  };\n\n  Dropdown.prototype.bind = function () {\n    // Should be implemented in subclasses\n  };\n\n  Dropdown.prototype.position = function ($dropdown, $container) {\n    // Should be implemented in subclasses\n  };\n\n  Dropdown.prototype.destroy = function () {\n    // Remove the dropdown from the DOM\n    this.$dropdown.remove();\n  };\n\n  return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n  'jquery',\n  '../utils'\n], function ($, Utils) {\n  function Search () { }\n\n  Search.prototype.render = function (decorated) {\n    var $rendered = decorated.call(this);\n\n    var $search = $(\n      '<span class=\"select2-search select2-search--dropdown\">' +\n        '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n        ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n        ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' +\n      '</span>'\n    );\n\n    this.$searchContainer = $search;\n    this.$search = $search.find('input');\n\n    $rendered.prepend($search);\n\n    return $rendered;\n  };\n\n  Search.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    var resultsId = container.id + '-results';\n\n    decorated.call(this, container, $container);\n\n    this.$search.on('keydown', function (evt) {\n      self.trigger('keypress', evt);\n\n      self._keyUpPrevented = evt.isDefaultPrevented();\n    });\n\n    // Workaround for browsers which do not support the `input` event\n    // This will prevent double-triggering of events for browsers which support\n    // both the `keyup` and `input` events.\n    this.$search.on('input', function (evt) {\n      // Unbind the duplicated `keyup` event\n      $(this).off('keyup');\n    });\n\n    this.$search.on('keyup input', function (evt) {\n      self.handleSearch(evt);\n    });\n\n    container.on('open', function () {\n      self.$search.attr('tabindex', 0);\n      self.$search.attr('aria-controls', resultsId);\n\n      self.$search.trigger('focus');\n\n      window.setTimeout(function () {\n        self.$search.trigger('focus');\n      }, 0);\n    });\n\n    container.on('close', function () {\n      self.$search.attr('tabindex', -1);\n      self.$search.removeAttr('aria-controls');\n      self.$search.removeAttr('aria-activedescendant');\n\n      self.$search.val('');\n      self.$search.trigger('blur');\n    });\n\n    container.on('focus', function () {\n      if (!container.isOpen()) {\n        self.$search.trigger('focus');\n      }\n    });\n\n    container.on('results:all', function (params) {\n      if (params.query.term == null || params.query.term === '') {\n        var showSearch = self.showSearch(params);\n\n        if (showSearch) {\n          self.$searchContainer.removeClass('select2-search--hide');\n        } else {\n          self.$searchContainer.addClass('select2-search--hide');\n        }\n      }\n    });\n\n    container.on('results:focus', function (params) {\n      if (params.data._resultId) {\n        self.$search.attr('aria-activedescendant', params.data._resultId);\n      } else {\n        self.$search.removeAttr('aria-activedescendant');\n      }\n    });\n  };\n\n  Search.prototype.handleSearch = function (evt) {\n    if (!this._keyUpPrevented) {\n      var input = this.$search.val();\n\n      this.trigger('query', {\n        term: input\n      });\n    }\n\n    this._keyUpPrevented = false;\n  };\n\n  Search.prototype.showSearch = function (_, params) {\n    return true;\n  };\n\n  return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n  function HidePlaceholder (decorated, $element, options, dataAdapter) {\n    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n    decorated.call(this, $element, options, dataAdapter);\n  }\n\n  HidePlaceholder.prototype.append = function (decorated, data) {\n    data.results = this.removePlaceholder(data.results);\n\n    decorated.call(this, data);\n  };\n\n  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n    if (typeof placeholder === 'string') {\n      placeholder = {\n        id: '',\n        text: placeholder\n      };\n    }\n\n    return placeholder;\n  };\n\n  HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n    var modifiedData = data.slice(0);\n\n    for (var d = data.length - 1; d >= 0; d--) {\n      var item = data[d];\n\n      if (this.placeholder.id === item.id) {\n        modifiedData.splice(d, 1);\n      }\n    }\n\n    return modifiedData;\n  };\n\n  return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n  'jquery'\n], function ($) {\n  function InfiniteScroll (decorated, $element, options, dataAdapter) {\n    this.lastParams = {};\n\n    decorated.call(this, $element, options, dataAdapter);\n\n    this.$loadingMore = this.createLoadingMore();\n    this.loading = false;\n  }\n\n  InfiniteScroll.prototype.append = function (decorated, data) {\n    this.$loadingMore.remove();\n    this.loading = false;\n\n    decorated.call(this, data);\n\n    if (this.showLoadingMore(data)) {\n      this.$results.append(this.$loadingMore);\n      this.loadMoreIfNeeded();\n    }\n  };\n\n  InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('query', function (params) {\n      self.lastParams = params;\n      self.loading = true;\n    });\n\n    container.on('query:append', function (params) {\n      self.lastParams = params;\n      self.loading = true;\n    });\n\n    this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n  };\n\n  InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n    var isLoadMoreVisible = $.contains(\n      document.documentElement,\n      this.$loadingMore[0]\n    );\n\n    if (this.loading || !isLoadMoreVisible) {\n      return;\n    }\n\n    var currentOffset = this.$results.offset().top +\n      this.$results.outerHeight(false);\n    var loadingMoreOffset = this.$loadingMore.offset().top +\n      this.$loadingMore.outerHeight(false);\n\n    if (currentOffset + 50 >= loadingMoreOffset) {\n      this.loadMore();\n    }\n  };\n\n  InfiniteScroll.prototype.loadMore = function () {\n    this.loading = true;\n\n    var params = $.extend({}, {page: 1}, this.lastParams);\n\n    params.page++;\n\n    this.trigger('query:append', params);\n  };\n\n  InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n    return data.pagination && data.pagination.more;\n  };\n\n  InfiniteScroll.prototype.createLoadingMore = function () {\n    var $option = $(\n      '<li ' +\n      'class=\"select2-results__option select2-results__option--load-more\"' +\n      'role=\"option\" aria-disabled=\"true\"></li>'\n    );\n\n    var message = this.options.get('translations').get('loadingMore');\n\n    $option.html(message(this.lastParams));\n\n    return $option;\n  };\n\n  return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n  'jquery',\n  '../utils'\n], function ($, Utils) {\n  function AttachBody (decorated, $element, options) {\n    this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n    decorated.call(this, $element, options);\n  }\n\n  AttachBody.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('open', function () {\n      self._showDropdown();\n      self._attachPositioningHandler(container);\n\n      // Must bind after the results handlers to ensure correct sizing\n      self._bindContainerResultHandlers(container);\n    });\n\n    container.on('close', function () {\n      self._hideDropdown();\n      self._detachPositioningHandler(container);\n    });\n\n    this.$dropdownContainer.on('mousedown', function (evt) {\n      evt.stopPropagation();\n    });\n  };\n\n  AttachBody.prototype.destroy = function (decorated) {\n    decorated.call(this);\n\n    this.$dropdownContainer.remove();\n  };\n\n  AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n    // Clone all of the container classes\n    $dropdown.attr('class', $container.attr('class'));\n\n    $dropdown.removeClass('select2');\n    $dropdown.addClass('select2-container--open');\n\n    $dropdown.css({\n      position: 'absolute',\n      top: -999999\n    });\n\n    this.$container = $container;\n  };\n\n  AttachBody.prototype.render = function (decorated) {\n    var $container = $('<span></span>');\n\n    var $dropdown = decorated.call(this);\n    $container.append($dropdown);\n\n    this.$dropdownContainer = $container;\n\n    return $container;\n  };\n\n  AttachBody.prototype._hideDropdown = function (decorated) {\n    this.$dropdownContainer.detach();\n  };\n\n  AttachBody.prototype._bindContainerResultHandlers =\n      function (decorated, container) {\n\n    // These should only be bound once\n    if (this._containerResultsHandlersBound) {\n      return;\n    }\n\n    var self = this;\n\n    container.on('results:all', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('results:append', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('results:message', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('select', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    container.on('unselect', function () {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n\n    this._containerResultsHandlersBound = true;\n  };\n\n  AttachBody.prototype._attachPositioningHandler =\n      function (decorated, container) {\n    var self = this;\n\n    var scrollEvent = 'scroll.select2.' + container.id;\n    var resizeEvent = 'resize.select2.' + container.id;\n    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n    $watchers.each(function () {\n      Utils.StoreData(this, 'select2-scroll-position', {\n        x: $(this).scrollLeft(),\n        y: $(this).scrollTop()\n      });\n    });\n\n    $watchers.on(scrollEvent, function (ev) {\n      var position = Utils.GetData(this, 'select2-scroll-position');\n      $(this).scrollTop(position.y);\n    });\n\n    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n      function (e) {\n      self._positionDropdown();\n      self._resizeDropdown();\n    });\n  };\n\n  AttachBody.prototype._detachPositioningHandler =\n      function (decorated, container) {\n    var scrollEvent = 'scroll.select2.' + container.id;\n    var resizeEvent = 'resize.select2.' + container.id;\n    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n    $watchers.off(scrollEvent);\n\n    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n  };\n\n  AttachBody.prototype._positionDropdown = function () {\n    var $window = $(window);\n\n    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n    var newDirection = null;\n\n    var offset = this.$container.offset();\n\n    offset.bottom = offset.top + this.$container.outerHeight(false);\n\n    var container = {\n      height: this.$container.outerHeight(false)\n    };\n\n    container.top = offset.top;\n    container.bottom = offset.top + container.height;\n\n    var dropdown = {\n      height: this.$dropdown.outerHeight(false)\n    };\n\n    var viewport = {\n      top: $window.scrollTop(),\n      bottom: $window.scrollTop() + $window.height()\n    };\n\n    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n    var css = {\n      left: offset.left,\n      top: container.bottom\n    };\n\n    // Determine what the parent element is to use for calculating the offset\n    var $offsetParent = this.$dropdownParent;\n\n    // For statically positioned elements, we need to get the element\n    // that is determining the offset\n    if ($offsetParent.css('position') === 'static') {\n      $offsetParent = $offsetParent.offsetParent();\n    }\n\n    var parentOffset = {\n      top: 0,\n      left: 0\n    };\n\n    if (\n      $.contains(document.body, $offsetParent[0]) ||\n      $offsetParent[0].isConnected\n      ) {\n      parentOffset = $offsetParent.offset();\n    }\n\n    css.top -= parentOffset.top;\n    css.left -= parentOffset.left;\n\n    if (!isCurrentlyAbove && !isCurrentlyBelow) {\n      newDirection = 'below';\n    }\n\n    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n      newDirection = 'above';\n    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n      newDirection = 'below';\n    }\n\n    if (newDirection == 'above' ||\n      (isCurrentlyAbove && newDirection !== 'below')) {\n      css.top = container.top - parentOffset.top - dropdown.height;\n    }\n\n    if (newDirection != null) {\n      this.$dropdown\n        .removeClass('select2-dropdown--below select2-dropdown--above')\n        .addClass('select2-dropdown--' + newDirection);\n      this.$container\n        .removeClass('select2-container--below select2-container--above')\n        .addClass('select2-container--' + newDirection);\n    }\n\n    this.$dropdownContainer.css(css);\n  };\n\n  AttachBody.prototype._resizeDropdown = function () {\n    var css = {\n      width: this.$container.outerWidth(false) + 'px'\n    };\n\n    if (this.options.get('dropdownAutoWidth')) {\n      css.minWidth = css.width;\n      css.position = 'relative';\n      css.width = 'auto';\n    }\n\n    this.$dropdown.css(css);\n  };\n\n  AttachBody.prototype._showDropdown = function (decorated) {\n    this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n    this._positionDropdown();\n    this._resizeDropdown();\n  };\n\n  return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n  function countResults (data) {\n    var count = 0;\n\n    for (var d = 0; d < data.length; d++) {\n      var item = data[d];\n\n      if (item.children) {\n        count += countResults(item.children);\n      } else {\n        count++;\n      }\n    }\n\n    return count;\n  }\n\n  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n    this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n    if (this.minimumResultsForSearch < 0) {\n      this.minimumResultsForSearch = Infinity;\n    }\n\n    decorated.call(this, $element, options, dataAdapter);\n  }\n\n  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n    if (countResults(params.data.results) < this.minimumResultsForSearch) {\n      return false;\n    }\n\n    return decorated.call(this, params);\n  };\n\n  return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n  '../utils'\n], function (Utils) {\n  function SelectOnClose () { }\n\n  SelectOnClose.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('close', function (params) {\n      self._handleSelectOnClose(params);\n    });\n  };\n\n  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n    if (params && params.originalSelect2Event != null) {\n      var event = params.originalSelect2Event;\n\n      // Don't select an item if the close event was triggered from a select or\n      // unselect event\n      if (event._type === 'select' || event._type === 'unselect') {\n        return;\n      }\n    }\n\n    var $highlightedResults = this.getHighlightedResults();\n\n    // Only select highlighted results\n    if ($highlightedResults.length < 1) {\n      return;\n    }\n\n    var data = Utils.GetData($highlightedResults[0], 'data');\n\n    // Don't re-select already selected resulte\n    if (\n      (data.element != null && data.element.selected) ||\n      (data.element == null && data.selected)\n    ) {\n      return;\n    }\n\n    this.trigger('select', {\n        data: data\n    });\n  };\n\n  return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n  function CloseOnSelect () { }\n\n  CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n    var self = this;\n\n    decorated.call(this, container, $container);\n\n    container.on('select', function (evt) {\n      self._selectTriggered(evt);\n    });\n\n    container.on('unselect', function (evt) {\n      self._selectTriggered(evt);\n    });\n  };\n\n  CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n    var originalEvent = evt.originalEvent;\n\n    // Don't close if the control key is being held\n    if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n      return;\n    }\n\n    this.trigger('close', {\n      originalEvent: originalEvent,\n      originalSelect2Event: evt\n    });\n  };\n\n  return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n  // English\n  return {\n    errorLoading: function () {\n      return 'The results could not be loaded.';\n    },\n    inputTooLong: function (args) {\n      var overChars = args.input.length - args.maximum;\n\n      var message = 'Please delete ' + overChars + ' character';\n\n      if (overChars != 1) {\n        message += 's';\n      }\n\n      return message;\n    },\n    inputTooShort: function (args) {\n      var remainingChars = args.minimum - args.input.length;\n\n      var message = 'Please enter ' + remainingChars + ' or more characters';\n\n      return message;\n    },\n    loadingMore: function () {\n      return 'Loading more results…';\n    },\n    maximumSelected: function (args) {\n      var message = 'You can only select ' + args.maximum + ' item';\n\n      if (args.maximum != 1) {\n        message += 's';\n      }\n\n      return message;\n    },\n    noResults: function () {\n      return 'No results found';\n    },\n    searching: function () {\n      return 'Searching…';\n    },\n    removeAllItems: function () {\n      return 'Remove all items';\n    }\n  };\n});\n\nS2.define('select2/defaults',[\n  'jquery',\n  'require',\n\n  './results',\n\n  './selection/single',\n  './selection/multiple',\n  './selection/placeholder',\n  './selection/allowClear',\n  './selection/search',\n  './selection/eventRelay',\n\n  './utils',\n  './translation',\n  './diacritics',\n\n  './data/select',\n  './data/array',\n  './data/ajax',\n  './data/tags',\n  './data/tokenizer',\n  './data/minimumInputLength',\n  './data/maximumInputLength',\n  './data/maximumSelectionLength',\n\n  './dropdown',\n  './dropdown/search',\n  './dropdown/hidePlaceholder',\n  './dropdown/infiniteScroll',\n  './dropdown/attachBody',\n  './dropdown/minimumResultsForSearch',\n  './dropdown/selectOnClose',\n  './dropdown/closeOnSelect',\n\n  './i18n/en'\n], function ($, require,\n\n             ResultsList,\n\n             SingleSelection, MultipleSelection, Placeholder, AllowClear,\n             SelectionSearch, EventRelay,\n\n             Utils, Translation, DIACRITICS,\n\n             SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n             EnglishTranslation) {\n  function Defaults () {\n    this.reset();\n  }\n\n  Defaults.prototype.apply = function (options) {\n    options = $.extend(true, {}, this.defaults, options);\n\n    if (options.dataAdapter == null) {\n      if (options.ajax != null) {\n        options.dataAdapter = AjaxData;\n      } else if (options.data != null) {\n        options.dataAdapter = ArrayData;\n      } else {\n        options.dataAdapter = SelectData;\n      }\n\n      if (options.minimumInputLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MinimumInputLength\n        );\n      }\n\n      if (options.maximumInputLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MaximumInputLength\n        );\n      }\n\n      if (options.maximumSelectionLength > 0) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          MaximumSelectionLength\n        );\n      }\n\n      if (options.tags) {\n        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n      }\n\n      if (options.tokenSeparators != null || options.tokenizer != null) {\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          Tokenizer\n        );\n      }\n\n      if (options.query != null) {\n        var Query = require(options.amdBase + 'compat/query');\n\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          Query\n        );\n      }\n\n      if (options.initSelection != null) {\n        var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n        options.dataAdapter = Utils.Decorate(\n          options.dataAdapter,\n          InitSelection\n        );\n      }\n    }\n\n    if (options.resultsAdapter == null) {\n      options.resultsAdapter = ResultsList;\n\n      if (options.ajax != null) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          InfiniteScroll\n        );\n      }\n\n      if (options.placeholder != null) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          HidePlaceholder\n        );\n      }\n\n      if (options.selectOnClose) {\n        options.resultsAdapter = Utils.Decorate(\n          options.resultsAdapter,\n          SelectOnClose\n        );\n      }\n    }\n\n    if (options.dropdownAdapter == null) {\n      if (options.multiple) {\n        options.dropdownAdapter = Dropdown;\n      } else {\n        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n        options.dropdownAdapter = SearchableDropdown;\n      }\n\n      if (options.minimumResultsForSearch !== 0) {\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          MinimumResultsForSearch\n        );\n      }\n\n      if (options.closeOnSelect) {\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          CloseOnSelect\n        );\n      }\n\n      if (\n        options.dropdownCssClass != null ||\n        options.dropdownCss != null ||\n        options.adaptDropdownCssClass != null\n      ) {\n        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n        options.dropdownAdapter = Utils.Decorate(\n          options.dropdownAdapter,\n          DropdownCSS\n        );\n      }\n\n      options.dropdownAdapter = Utils.Decorate(\n        options.dropdownAdapter,\n        AttachBody\n      );\n    }\n\n    if (options.selectionAdapter == null) {\n      if (options.multiple) {\n        options.selectionAdapter = MultipleSelection;\n      } else {\n        options.selectionAdapter = SingleSelection;\n      }\n\n      // Add the placeholder mixin if a placeholder was specified\n      if (options.placeholder != null) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          Placeholder\n        );\n      }\n\n      if (options.allowClear) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          AllowClear\n        );\n      }\n\n      if (options.multiple) {\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          SelectionSearch\n        );\n      }\n\n      if (\n        options.containerCssClass != null ||\n        options.containerCss != null ||\n        options.adaptContainerCssClass != null\n      ) {\n        var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n        options.selectionAdapter = Utils.Decorate(\n          options.selectionAdapter,\n          ContainerCSS\n        );\n      }\n\n      options.selectionAdapter = Utils.Decorate(\n        options.selectionAdapter,\n        EventRelay\n      );\n    }\n\n    // If the defaults were not previously applied from an element, it is\n    // possible for the language option to have not been resolved\n    options.language = this._resolveLanguage(options.language);\n\n    // Always fall back to English since it will always be complete\n    options.language.push('en');\n\n    var uniqueLanguages = [];\n\n    for (var l = 0; l < options.language.length; l++) {\n      var language = options.language[l];\n\n      if (uniqueLanguages.indexOf(language) === -1) {\n        uniqueLanguages.push(language);\n      }\n    }\n\n    options.language = uniqueLanguages;\n\n    options.translations = this._processTranslations(\n      options.language,\n      options.debug\n    );\n\n    return options;\n  };\n\n  Defaults.prototype.reset = function () {\n    function stripDiacritics (text) {\n      // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n      function match(a) {\n        return DIACRITICS[a] || a;\n      }\n\n      return text.replace(/[^\\u0000-\\u007E]/g, match);\n    }\n\n    function matcher (params, data) {\n      // Always return the object if there is nothing to compare\n      if ($.trim(params.term) === '') {\n        return data;\n      }\n\n      // Do a recursive check for options with children\n      if (data.children && data.children.length > 0) {\n        // Clone the data object if there are children\n        // This is required as we modify the object to remove any non-matches\n        var match = $.extend(true, {}, data);\n\n        // Check each child of the option\n        for (var c = data.children.length - 1; c >= 0; c--) {\n          var child = data.children[c];\n\n          var matches = matcher(params, child);\n\n          // If there wasn't a match, remove the object in the array\n          if (matches == null) {\n            match.children.splice(c, 1);\n          }\n        }\n\n        // If any children matched, return the new object\n        if (match.children.length > 0) {\n          return match;\n        }\n\n        // If there were no matching children, check just the plain object\n        return matcher(params, match);\n      }\n\n      var original = stripDiacritics(data.text).toUpperCase();\n      var term = stripDiacritics(params.term).toUpperCase();\n\n      // Check if the text contains the term\n      if (original.indexOf(term) > -1) {\n        return data;\n      }\n\n      // If it doesn't contain the term, don't return anything\n      return null;\n    }\n\n    this.defaults = {\n      amdBase: './',\n      amdLanguageBase: './i18n/',\n      closeOnSelect: true,\n      debug: false,\n      dropdownAutoWidth: false,\n      escapeMarkup: Utils.escapeMarkup,\n      language: {},\n      matcher: matcher,\n      minimumInputLength: 0,\n      maximumInputLength: 0,\n      maximumSelectionLength: 0,\n      minimumResultsForSearch: 0,\n      selectOnClose: false,\n      scrollAfterSelect: false,\n      sorter: function (data) {\n        return data;\n      },\n      templateResult: function (result) {\n        return result.text;\n      },\n      templateSelection: function (selection) {\n        return selection.text;\n      },\n      theme: 'default',\n      width: 'resolve'\n    };\n  };\n\n  Defaults.prototype.applyFromElement = function (options, $element) {\n    var optionLanguage = options.language;\n    var defaultLanguage = this.defaults.language;\n    var elementLanguage = $element.prop('lang');\n    var parentLanguage = $element.closest('[lang]').prop('lang');\n\n    var languages = Array.prototype.concat.call(\n      this._resolveLanguage(elementLanguage),\n      this._resolveLanguage(optionLanguage),\n      this._resolveLanguage(defaultLanguage),\n      this._resolveLanguage(parentLanguage)\n    );\n\n    options.language = languages;\n\n    return options;\n  };\n\n  Defaults.prototype._resolveLanguage = function (language) {\n    if (!language) {\n      return [];\n    }\n\n    if ($.isEmptyObject(language)) {\n      return [];\n    }\n\n    if ($.isPlainObject(language)) {\n      return [language];\n    }\n\n    var languages;\n\n    if (!$.isArray(language)) {\n      languages = [language];\n    } else {\n      languages = language;\n    }\n\n    var resolvedLanguages = [];\n\n    for (var l = 0; l < languages.length; l++) {\n      resolvedLanguages.push(languages[l]);\n\n      if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n        // Extract the region information if it is included\n        var languageParts = languages[l].split('-');\n        var baseLanguage = languageParts[0];\n\n        resolvedLanguages.push(baseLanguage);\n      }\n    }\n\n    return resolvedLanguages;\n  };\n\n  Defaults.prototype._processTranslations = function (languages, debug) {\n    var translations = new Translation();\n\n    for (var l = 0; l < languages.length; l++) {\n      var languageData = new Translation();\n\n      var language = languages[l];\n\n      if (typeof language === 'string') {\n        try {\n          // Try to load it with the original name\n          languageData = Translation.loadPath(language);\n        } catch (e) {\n          try {\n            // If we couldn't load it, check if it wasn't the full path\n            language = this.defaults.amdLanguageBase + language;\n            languageData = Translation.loadPath(language);\n          } catch (ex) {\n            // The translation could not be loaded at all. Sometimes this is\n            // because of a configuration problem, other times this can be\n            // because of how Select2 helps load all possible translation files\n            if (debug && window.console && console.warn) {\n              console.warn(\n                'Select2: The language file for \"' + language + '\" could ' +\n                'not be automatically loaded. A fallback will be used instead.'\n              );\n            }\n          }\n        }\n      } else if ($.isPlainObject(language)) {\n        languageData = new Translation(language);\n      } else {\n        languageData = language;\n      }\n\n      translations.extend(languageData);\n    }\n\n    return translations;\n  };\n\n  Defaults.prototype.set = function (key, value) {\n    var camelKey = $.camelCase(key);\n\n    var data = {};\n    data[camelKey] = value;\n\n    var convertedData = Utils._convertData(data);\n\n    $.extend(true, this.defaults, convertedData);\n  };\n\n  var defaults = new Defaults();\n\n  return defaults;\n});\n\nS2.define('select2/options',[\n  'require',\n  'jquery',\n  './defaults',\n  './utils'\n], function (require, $, Defaults, Utils) {\n  function Options (options, $element) {\n    this.options = options;\n\n    if ($element != null) {\n      this.fromElement($element);\n    }\n\n    if ($element != null) {\n      this.options = Defaults.applyFromElement(this.options, $element);\n    }\n\n    this.options = Defaults.apply(this.options);\n\n    if ($element && $element.is('input')) {\n      var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n      this.options.dataAdapter = Utils.Decorate(\n        this.options.dataAdapter,\n        InputCompat\n      );\n    }\n  }\n\n  Options.prototype.fromElement = function ($e) {\n    var excludedData = ['select2'];\n\n    if (this.options.multiple == null) {\n      this.options.multiple = $e.prop('multiple');\n    }\n\n    if (this.options.disabled == null) {\n      this.options.disabled = $e.prop('disabled');\n    }\n\n    if (this.options.dir == null) {\n      if ($e.prop('dir')) {\n        this.options.dir = $e.prop('dir');\n      } else if ($e.closest('[dir]').prop('dir')) {\n        this.options.dir = $e.closest('[dir]').prop('dir');\n      } else {\n        this.options.dir = 'ltr';\n      }\n    }\n\n    $e.prop('disabled', this.options.disabled);\n    $e.prop('multiple', this.options.multiple);\n\n    if (Utils.GetData($e[0], 'select2Tags')) {\n      if (this.options.debug && window.console && console.warn) {\n        console.warn(\n          'Select2: The `data-select2-tags` attribute has been changed to ' +\n          'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n          'removed in future versions of Select2.'\n        );\n      }\n\n      Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n      Utils.StoreData($e[0], 'tags', true);\n    }\n\n    if (Utils.GetData($e[0], 'ajaxUrl')) {\n      if (this.options.debug && window.console && console.warn) {\n        console.warn(\n          'Select2: The `data-ajax-url` attribute has been changed to ' +\n          '`data-ajax--url` and support for the old attribute will be removed' +\n          ' in future versions of Select2.'\n        );\n      }\n\n      $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n      Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n    }\n\n    var dataset = {};\n\n    function upperCaseLetter(_, letter) {\n      return letter.toUpperCase();\n    }\n\n    // Pre-load all of the attributes which are prefixed with `data-`\n    for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n      var attributeName = $e[0].attributes[attr].name;\n      var prefix = 'data-';\n\n      if (attributeName.substr(0, prefix.length) == prefix) {\n        // Get the contents of the attribute after `data-`\n        var dataName = attributeName.substring(prefix.length);\n\n        // Get the data contents from the consistent source\n        // This is more than likely the jQuery data helper\n        var dataValue = Utils.GetData($e[0], dataName);\n\n        // camelCase the attribute name to match the spec\n        var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n        // Store the data attribute contents into the dataset since\n        dataset[camelDataName] = dataValue;\n      }\n    }\n\n    // Prefer the element's `dataset` attribute if it exists\n    // jQuery 1.x does not correctly handle data attributes with multiple dashes\n    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n      dataset = $.extend(true, {}, $e[0].dataset, dataset);\n    }\n\n    // Prefer our internal data cache if it exists\n    var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n    data = Utils._convertData(data);\n\n    for (var key in data) {\n      if ($.inArray(key, excludedData) > -1) {\n        continue;\n      }\n\n      if ($.isPlainObject(this.options[key])) {\n        $.extend(this.options[key], data[key]);\n      } else {\n        this.options[key] = data[key];\n      }\n    }\n\n    return this;\n  };\n\n  Options.prototype.get = function (key) {\n    return this.options[key];\n  };\n\n  Options.prototype.set = function (key, val) {\n    this.options[key] = val;\n  };\n\n  return Options;\n});\n\nS2.define('select2/core',[\n  'jquery',\n  './options',\n  './utils',\n  './keys'\n], function ($, Options, Utils, KEYS) {\n  var Select2 = function ($element, options) {\n    if (Utils.GetData($element[0], 'select2') != null) {\n      Utils.GetData($element[0], 'select2').destroy();\n    }\n\n    this.$element = $element;\n\n    this.id = this._generateId($element);\n\n    options = options || {};\n\n    this.options = new Options(options, $element);\n\n    Select2.__super__.constructor.call(this);\n\n    // Set up the tabindex\n\n    var tabindex = $element.attr('tabindex') || 0;\n    Utils.StoreData($element[0], 'old-tabindex', tabindex);\n    $element.attr('tabindex', '-1');\n\n    // Set up containers and adapters\n\n    var DataAdapter = this.options.get('dataAdapter');\n    this.dataAdapter = new DataAdapter($element, this.options);\n\n    var $container = this.render();\n\n    this._placeContainer($container);\n\n    var SelectionAdapter = this.options.get('selectionAdapter');\n    this.selection = new SelectionAdapter($element, this.options);\n    this.$selection = this.selection.render();\n\n    this.selection.position(this.$selection, $container);\n\n    var DropdownAdapter = this.options.get('dropdownAdapter');\n    this.dropdown = new DropdownAdapter($element, this.options);\n    this.$dropdown = this.dropdown.render();\n\n    this.dropdown.position(this.$dropdown, $container);\n\n    var ResultsAdapter = this.options.get('resultsAdapter');\n    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n    this.$results = this.results.render();\n\n    this.results.position(this.$results, this.$dropdown);\n\n    // Bind events\n\n    var self = this;\n\n    // Bind the container to all of the adapters\n    this._bindAdapters();\n\n    // Register any DOM event handlers\n    this._registerDomEvents();\n\n    // Register any internal event handlers\n    this._registerDataEvents();\n    this._registerSelectionEvents();\n    this._registerDropdownEvents();\n    this._registerResultsEvents();\n    this._registerEvents();\n\n    // Set the initial state\n    this.dataAdapter.current(function (initialData) {\n      self.trigger('selection:update', {\n        data: initialData\n      });\n    });\n\n    // Hide the original select\n    $element.addClass('select2-hidden-accessible');\n    $element.attr('aria-hidden', 'true');\n\n    // Synchronize any monitored attributes\n    this._syncAttributes();\n\n    Utils.StoreData($element[0], 'select2', this);\n\n    // Ensure backwards compatibility with $element.data('select2').\n    $element.data('select2', this);\n  };\n\n  Utils.Extend(Select2, Utils.Observable);\n\n  Select2.prototype._generateId = function ($element) {\n    var id = '';\n\n    if ($element.attr('id') != null) {\n      id = $element.attr('id');\n    } else if ($element.attr('name') != null) {\n      id = $element.attr('name') + '-' + Utils.generateChars(2);\n    } else {\n      id = Utils.generateChars(4);\n    }\n\n    id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n    id = 'select2-' + id;\n\n    return id;\n  };\n\n  Select2.prototype._placeContainer = function ($container) {\n    $container.insertAfter(this.$element);\n\n    var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n    if (width != null) {\n      $container.css('width', width);\n    }\n  };\n\n  Select2.prototype._resolveWidth = function ($element, method) {\n    var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n    if (method == 'resolve') {\n      var styleWidth = this._resolveWidth($element, 'style');\n\n      if (styleWidth != null) {\n        return styleWidth;\n      }\n\n      return this._resolveWidth($element, 'element');\n    }\n\n    if (method == 'element') {\n      var elementWidth = $element.outerWidth(false);\n\n      if (elementWidth <= 0) {\n        return 'auto';\n      }\n\n      return elementWidth + 'px';\n    }\n\n    if (method == 'style') {\n      var style = $element.attr('style');\n\n      if (typeof(style) !== 'string') {\n        return null;\n      }\n\n      var attrs = style.split(';');\n\n      for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n        var attr = attrs[i].replace(/\\s/g, '');\n        var matches = attr.match(WIDTH);\n\n        if (matches !== null && matches.length >= 1) {\n          return matches[1];\n        }\n      }\n\n      return null;\n    }\n\n    if (method == 'computedstyle') {\n      var computedStyle = window.getComputedStyle($element[0]);\n\n      return computedStyle.width;\n    }\n\n    return method;\n  };\n\n  Select2.prototype._bindAdapters = function () {\n    this.dataAdapter.bind(this, this.$container);\n    this.selection.bind(this, this.$container);\n\n    this.dropdown.bind(this, this.$container);\n    this.results.bind(this, this.$container);\n  };\n\n  Select2.prototype._registerDomEvents = function () {\n    var self = this;\n\n    this.$element.on('change.select2', function () {\n      self.dataAdapter.current(function (data) {\n        self.trigger('selection:update', {\n          data: data\n        });\n      });\n    });\n\n    this.$element.on('focus.select2', function (evt) {\n      self.trigger('focus', evt);\n    });\n\n    this._syncA = Utils.bind(this._syncAttributes, this);\n    this._syncS = Utils.bind(this._syncSubtree, this);\n\n    if (this.$element[0].attachEvent) {\n      this.$element[0].attachEvent('onpropertychange', this._syncA);\n    }\n\n    var observer = window.MutationObserver ||\n      window.WebKitMutationObserver ||\n      window.MozMutationObserver\n    ;\n\n    if (observer != null) {\n      this._observer = new observer(function (mutations) {\n        self._syncA();\n        self._syncS(null, mutations);\n      });\n      this._observer.observe(this.$element[0], {\n        attributes: true,\n        childList: true,\n        subtree: false\n      });\n    } else if (this.$element[0].addEventListener) {\n      this.$element[0].addEventListener(\n        'DOMAttrModified',\n        self._syncA,\n        false\n      );\n      this.$element[0].addEventListener(\n        'DOMNodeInserted',\n        self._syncS,\n        false\n      );\n      this.$element[0].addEventListener(\n        'DOMNodeRemoved',\n        self._syncS,\n        false\n      );\n    }\n  };\n\n  Select2.prototype._registerDataEvents = function () {\n    var self = this;\n\n    this.dataAdapter.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerSelectionEvents = function () {\n    var self = this;\n    var nonRelayEvents = ['toggle', 'focus'];\n\n    this.selection.on('toggle', function () {\n      self.toggleDropdown();\n    });\n\n    this.selection.on('focus', function (params) {\n      self.focus(params);\n    });\n\n    this.selection.on('*', function (name, params) {\n      if ($.inArray(name, nonRelayEvents) !== -1) {\n        return;\n      }\n\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerDropdownEvents = function () {\n    var self = this;\n\n    this.dropdown.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerResultsEvents = function () {\n    var self = this;\n\n    this.results.on('*', function (name, params) {\n      self.trigger(name, params);\n    });\n  };\n\n  Select2.prototype._registerEvents = function () {\n    var self = this;\n\n    this.on('open', function () {\n      self.$container.addClass('select2-container--open');\n    });\n\n    this.on('close', function () {\n      self.$container.removeClass('select2-container--open');\n    });\n\n    this.on('enable', function () {\n      self.$container.removeClass('select2-container--disabled');\n    });\n\n    this.on('disable', function () {\n      self.$container.addClass('select2-container--disabled');\n    });\n\n    this.on('blur', function () {\n      self.$container.removeClass('select2-container--focus');\n    });\n\n    this.on('query', function (params) {\n      if (!self.isOpen()) {\n        self.trigger('open', {});\n      }\n\n      this.dataAdapter.query(params, function (data) {\n        self.trigger('results:all', {\n          data: data,\n          query: params\n        });\n      });\n    });\n\n    this.on('query:append', function (params) {\n      this.dataAdapter.query(params, function (data) {\n        self.trigger('results:append', {\n          data: data,\n          query: params\n        });\n      });\n    });\n\n    this.on('keypress', function (evt) {\n      var key = evt.which;\n\n      if (self.isOpen()) {\n        if (key === KEYS.ESC || key === KEYS.TAB ||\n            (key === KEYS.UP && evt.altKey)) {\n          self.close(evt);\n\n          evt.preventDefault();\n        } else if (key === KEYS.ENTER) {\n          self.trigger('results:select', {});\n\n          evt.preventDefault();\n        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n          self.trigger('results:toggle', {});\n\n          evt.preventDefault();\n        } else if (key === KEYS.UP) {\n          self.trigger('results:previous', {});\n\n          evt.preventDefault();\n        } else if (key === KEYS.DOWN) {\n          self.trigger('results:next', {});\n\n          evt.preventDefault();\n        }\n      } else {\n        if (key === KEYS.ENTER || key === KEYS.SPACE ||\n            (key === KEYS.DOWN && evt.altKey)) {\n          self.open();\n\n          evt.preventDefault();\n        }\n      }\n    });\n  };\n\n  Select2.prototype._syncAttributes = function () {\n    this.options.set('disabled', this.$element.prop('disabled'));\n\n    if (this.isDisabled()) {\n      if (this.isOpen()) {\n        this.close();\n      }\n\n      this.trigger('disable', {});\n    } else {\n      this.trigger('enable', {});\n    }\n  };\n\n  Select2.prototype._isChangeMutation = function (evt, mutations) {\n    var changed = false;\n    var self = this;\n\n    // Ignore any mutation events raised for elements that aren't options or\n    // optgroups. This handles the case when the select element is destroyed\n    if (\n      evt && evt.target && (\n        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n      )\n    ) {\n      return;\n    }\n\n    if (!mutations) {\n      // If mutation events aren't supported, then we can only assume that the\n      // change affected the selections\n      changed = true;\n    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n      for (var n = 0; n < mutations.addedNodes.length; n++) {\n        var node = mutations.addedNodes[n];\n\n        if (node.selected) {\n          changed = true;\n        }\n      }\n    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n      changed = true;\n    } else if ($.isArray(mutations)) {\n      $.each(mutations, function(evt, mutation) {\n        if (self._isChangeMutation(evt, mutation)) {\n          // We've found a change mutation.\n          // Let's escape from the loop and continue\n          changed = true;\n          return false;\n        }\n      });\n    }\n    return changed;\n  };\n\n  Select2.prototype._syncSubtree = function (evt, mutations) {\n    var changed = this._isChangeMutation(evt, mutations);\n    var self = this;\n\n    // Only re-pull the data if we think there is a change\n    if (changed) {\n      this.dataAdapter.current(function (currentData) {\n        self.trigger('selection:update', {\n          data: currentData\n        });\n      });\n    }\n  };\n\n  /**\n   * Override the trigger method to automatically trigger pre-events when\n   * there are events that can be prevented.\n   */\n  Select2.prototype.trigger = function (name, args) {\n    var actualTrigger = Select2.__super__.trigger;\n    var preTriggerMap = {\n      'open': 'opening',\n      'close': 'closing',\n      'select': 'selecting',\n      'unselect': 'unselecting',\n      'clear': 'clearing'\n    };\n\n    if (args === undefined) {\n      args = {};\n    }\n\n    if (name in preTriggerMap) {\n      var preTriggerName = preTriggerMap[name];\n      var preTriggerArgs = {\n        prevented: false,\n        name: name,\n        args: args\n      };\n\n      actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n      if (preTriggerArgs.prevented) {\n        args.prevented = true;\n\n        return;\n      }\n    }\n\n    actualTrigger.call(this, name, args);\n  };\n\n  Select2.prototype.toggleDropdown = function () {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    if (this.isOpen()) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  Select2.prototype.open = function () {\n    if (this.isOpen()) {\n      return;\n    }\n\n    if (this.isDisabled()) {\n      return;\n    }\n\n    this.trigger('query', {});\n  };\n\n  Select2.prototype.close = function (evt) {\n    if (!this.isOpen()) {\n      return;\n    }\n\n    this.trigger('close', { originalEvent : evt });\n  };\n\n  /**\n   * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n   * object.\n   *\n   * @return {true} if the instance is not disabled.\n   * @return {false} if the instance is disabled.\n   */\n  Select2.prototype.isEnabled = function () {\n    return !this.isDisabled();\n  };\n\n  /**\n   * Helper method to abstract the \"disabled\" state of this object.\n   *\n   * @return {true} if the disabled option is true.\n   * @return {false} if the disabled option is false.\n   */\n  Select2.prototype.isDisabled = function () {\n    return this.options.get('disabled');\n  };\n\n  Select2.prototype.isOpen = function () {\n    return this.$container.hasClass('select2-container--open');\n  };\n\n  Select2.prototype.hasFocus = function () {\n    return this.$container.hasClass('select2-container--focus');\n  };\n\n  Select2.prototype.focus = function (data) {\n    // No need to re-trigger focus events if we are already focused\n    if (this.hasFocus()) {\n      return;\n    }\n\n    this.$container.addClass('select2-container--focus');\n    this.trigger('focus', {});\n  };\n\n  Select2.prototype.enable = function (args) {\n    if (this.options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n        ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n        ' instead.'\n      );\n    }\n\n    if (args == null || args.length === 0) {\n      args = [true];\n    }\n\n    var disabled = !args[0];\n\n    this.$element.prop('disabled', disabled);\n  };\n\n  Select2.prototype.data = function () {\n    if (this.options.get('debug') &&\n        arguments.length > 0 && window.console && console.warn) {\n      console.warn(\n        'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n        'should consider setting the value instead using `$element.val()`.'\n      );\n    }\n\n    var data = [];\n\n    this.dataAdapter.current(function (currentData) {\n      data = currentData;\n    });\n\n    return data;\n  };\n\n  Select2.prototype.val = function (args) {\n    if (this.options.get('debug') && window.console && console.warn) {\n      console.warn(\n        'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n        ' removed in later Select2 versions. Use $element.val() instead.'\n      );\n    }\n\n    if (args == null || args.length === 0) {\n      return this.$element.val();\n    }\n\n    var newVal = args[0];\n\n    if ($.isArray(newVal)) {\n      newVal = $.map(newVal, function (obj) {\n        return obj.toString();\n      });\n    }\n\n    this.$element.val(newVal).trigger('input').trigger('change');\n  };\n\n  Select2.prototype.destroy = function () {\n    this.$container.remove();\n\n    if (this.$element[0].detachEvent) {\n      this.$element[0].detachEvent('onpropertychange', this._syncA);\n    }\n\n    if (this._observer != null) {\n      this._observer.disconnect();\n      this._observer = null;\n    } else if (this.$element[0].removeEventListener) {\n      this.$element[0]\n        .removeEventListener('DOMAttrModified', this._syncA, false);\n      this.$element[0]\n        .removeEventListener('DOMNodeInserted', this._syncS, false);\n      this.$element[0]\n        .removeEventListener('DOMNodeRemoved', this._syncS, false);\n    }\n\n    this._syncA = null;\n    this._syncS = null;\n\n    this.$element.off('.select2');\n    this.$element.attr('tabindex',\n    Utils.GetData(this.$element[0], 'old-tabindex'));\n\n    this.$element.removeClass('select2-hidden-accessible');\n    this.$element.attr('aria-hidden', 'false');\n    Utils.RemoveData(this.$element[0]);\n    this.$element.removeData('select2');\n\n    this.dataAdapter.destroy();\n    this.selection.destroy();\n    this.dropdown.destroy();\n    this.results.destroy();\n\n    this.dataAdapter = null;\n    this.selection = null;\n    this.dropdown = null;\n    this.results = null;\n  };\n\n  Select2.prototype.render = function () {\n    var $container = $(\n      '<span class=\"select2 select2-container\">' +\n        '<span class=\"selection\"></span>' +\n        '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\n      '</span>'\n    );\n\n    $container.attr('dir', this.options.get('dir'));\n\n    this.$container = $container;\n\n    this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n    Utils.StoreData($container[0], 'element', this.$element);\n\n    return $container;\n  };\n\n  return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n  'jquery'\n], function ($) {\n  // Used to shim jQuery.mousewheel for non-full builds.\n  return $;\n});\n\nS2.define('jquery.select2',[\n  'jquery',\n  'jquery-mousewheel',\n\n  './select2/core',\n  './select2/defaults',\n  './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n  if ($.fn.select2 == null) {\n    // All methods that should return the element\n    var thisMethods = ['open', 'close', 'destroy'];\n\n    $.fn.select2 = function (options) {\n      options = options || {};\n\n      if (typeof options === 'object') {\n        this.each(function () {\n          var instanceOptions = $.extend(true, {}, options);\n\n          var instance = new Select2($(this), instanceOptions);\n        });\n\n        return this;\n      } else if (typeof options === 'string') {\n        var ret;\n        var args = Array.prototype.slice.call(arguments, 1);\n\n        this.each(function () {\n          var instance = Utils.GetData(this, 'select2');\n\n          if (instance == null && window.console && console.error) {\n            console.error(\n              'The select2(\\'' + options + '\\') method was called on an ' +\n              'element that is not using Select2.'\n            );\n          }\n\n          ret = instance[options].apply(instance, args);\n        });\n\n        // Check if we should be returning `this`\n        if ($.inArray(options, thisMethods) > -1) {\n          return this;\n        }\n\n        return ret;\n      } else {\n        throw new Error('Invalid arguments for Select2: ' + options);\n      }\n    };\n  }\n\n  if ($.fn.select2.defaults == null) {\n    $.fn.select2.defaults = Defaults;\n  }\n\n  return Select2;\n});\n\n  // Return the AMD loader configuration so it can be used outside of this file\n  return {\n    define: S2.define,\n    require: S2.require\n  };\n}());\n\n  // Autoload the jQuery bindings\n  // We know that all of the modules exist above this, so we're safe\n  var select2 = S2.require('jquery.select2');\n\n  // Hold the AMD module references on the jQuery function that was just loaded\n  // This allows Select2 to use the internal loader outside of this file, such\n  // as in the language files.\n  jQuery.fn.select2.amd = S2;\n\n  // Return the Select2 instance for anyone who is importing it.\n  return select2;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/select2-bootstrap4-theme/select2-bootstrap4.css",
    "content": ".select2-container {\n  display: block; }\n  .select2-container *:focus {\n    outline: 0; }\n\n.input-group .select2-container--bootstrap4 {\n  -webkit-box-flex: 1;\n      -ms-flex-positive: 1;\n          flex-grow: 1; }\n\n.input-group-prepend ~ .select2-container--bootstrap4 .select2-selection {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.input-group > .select2-container--bootstrap4:not(:last-child) .select2-selection {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--bootstrap4 .select2-selection {\n  width: 100%;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n  transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .select2-container--bootstrap4 .select2-selection {\n      -webkit-transition: none;\n      transition: none; } }\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  border-color: #80bdff;\n  -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n          box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n\n.select2-container--bootstrap4.select2-container--focus.select2-container--open .select2-selection {\n  border-bottom: none;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.select2-container--bootstrap4.select2-container--open.select2-container--above .select2-selection {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--bootstrap4.select2-container--open.select2-container--below .select2-selection {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.select2-container--bootstrap4.select2-container--disabled .select2-selection, .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-selection {\n  cursor: not-allowed;\n  background-color: #e9ecef;\n  border-color: #ced4da;\n  -webkit-box-shadow: none;\n          box-shadow: none; }\n\n.select2-container--bootstrap4.select2-container--disabled .select2-search__field, .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-search__field {\n  background-color: transparent; }\n\nselect.is-invalid ~ .select2-container--bootstrap4 .select2-selection,\nform.was-validated select:invalid ~ .select2-container--bootstrap4 .select2-selection {\n  border-color: #dc3545; }\n\nselect.is-valid ~ .select2-container--bootstrap4 .select2-selection,\nform.was-validated select:valid ~ .select2-container--bootstrap4 .select2-selection {\n  border-color: #28a745; }\n\n.select2-container--bootstrap4 .select2-search {\n  width: 100%; }\n\n.select2-container--bootstrap4 .select2-dropdown {\n  border-color: #ced4da;\n  border-radius: 0; }\n  .select2-container--bootstrap4 .select2-dropdown.select2-dropdown--below {\n    border-top: none;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem; }\n  .select2-container--bootstrap4 .select2-dropdown.select2-dropdown--above {\n    border-top: 1px solid #ced4da;\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem; }\n  .select2-container--bootstrap4 .select2-dropdown .select2-results__option[aria-selected=\"true\"] {\n    color: #212529;\n    background-color: #f2f2f2; }\n\n.select2-container--bootstrap4 .select2-results__option--highlighted,\n.select2-container--bootstrap4 .select2-results__option--highlighted.select2-results__option[aria-selected=\"true\"] {\n  color: #fff;\n  background-color: #007bff; }\n\n.select2-container--bootstrap4 .select2-results__option[role=\"group\"] {\n  padding: 0; }\n  .select2-container--bootstrap4 .select2-results__option[role=\"group\"] .select2-results__options--nested .select2-results__option {\n    padding-left: 1em; }\n\n.select2-container--bootstrap4 .select2-results__option {\n  padding: 0.375rem 0.75rem; }\n\n.select2-container--bootstrap4 .select2-results > .select2-results__options {\n  max-height: 15em;\n  overflow-y: auto; }\n\n.select2-container--bootstrap4 .select2-results__group {\n  display: list-item;\n  padding: 6px;\n  color: #6c757d; }\n\n.select2-container--bootstrap4 .select2-selection__clear {\n  float: right;\n  width: .9em;\n  height: .9em;\n  padding-left: .15em;\n  margin-top: .7em;\n  margin-right: .3em;\n  line-height: .75em;\n  color: #f8f9fa;\n  background-color: #c8c8c8;\n  border-radius: 100%; }\n  .select2-container--bootstrap4 .select2-selection__clear:hover {\n    background-color: #afafaf; }\n\n.select2-container--bootstrap4 .select2-selection--single {\n  height: calc(1.5em + 0.75rem + 2px) !important; }\n  .select2-container--bootstrap4 .select2-selection--single .select2-selection__placeholder {\n    line-height: calc(1.5em + 0.75rem);\n    color: #6c757d; }\n  .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow {\n    position: absolute;\n    top: 50%;\n    right: 3px;\n    width: 20px; }\n    .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b {\n      position: absolute;\n      top: 60%;\n      left: 50%;\n      width: 0;\n      height: 0;\n      margin-top: -2px;\n      margin-left: -4px;\n      border-color: #343a40 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0; }\n  .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {\n    padding-left: 0.75rem;\n    line-height: calc(1.5em + 0.75rem);\n    color: #495057; }\n\n.select2-search--dropdown .select2-search__field {\n  padding: 0.375rem 0.75rem;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem; }\n\n.select2-results__message {\n  color: #6c757d; }\n\n.select2-container--bootstrap4 .select2-selection--multiple {\n  min-height: calc(1.5em + 0.75rem + 2px) !important; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__rendered {\n    -webkit-box-sizing: border-box;\n            box-sizing: border-box;\n    width: 100%;\n    padding: 0 0.375rem;\n    margin: 0;\n    list-style: none; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n    float: left;\n    padding: 0;\n    padding-right: 0.75rem;\n    margin-top: calc(0.375rem - 2px);\n    margin-right: 0.375rem;\n    color: #495057;\n    cursor: pointer;\n    border: 1px solid #bdc6d0;\n    border-radius: 0.2rem; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-search__field {\n    color: #495057; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice + .select2-search {\n    width: 0; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove {\n    float: left;\n    padding-right: 3px;\n    padding-left: 3px;\n    margin-right: 1px;\n    margin-left: 3px;\n    font-weight: 700;\n    color: #bdc6d0; }\n    .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #343a40; }\n  .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__clear {\n    position: absolute !important;\n    top: 0;\n    right: .7em;\n    float: none;\n    margin-right: 0; }\n\n.select2-container--bootstrap4.select2-container--disabled .select2-selection--multiple .select2-selection__choice {\n  padding: 0 5px;\n  cursor: not-allowed; }\n  .select2-container--bootstrap4.select2-container--disabled .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove {\n    display: none; }\n\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sparklines/sparkline.js",
    "content": "(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(factory);\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like enviroments that support module.exports,\n    // like Node.\n    module.exports = factory();\n  } else {\n    // Browser globals (root is window)\n    root.Sparkline = factory();\n  }\n}(window, function () {\n  function extend(specific, general) {\n    var obj = {};\n    for (var key in general) {\n      obj[key] = key in specific ? specific[key] : general[key];\n    }\n    return obj;\n  }\n\n  function Sparkline(element, options) {\n    this.element = element;\n    this.options = extend(options || {}, Sparkline.options);\n\n    init: {\n      this.element.innerHTML = \"<canvas></canvas>\";\n      this.canvas = this.element.firstChild;\n      this.context = this.canvas.getContext(\"2d\");\n      this.ratio = window.devicePixelRatio || 1;\n\n      if (this.options.tooltip) {\n        this.canvas.style.position = \"relative\";\n        this.canvas.onmousemove = showTooltip.bind(this);\n      }\n    }\n  }\n\n  Sparkline.options = {\n    width: 100,\n    height: null,\n    lineColor: \"black\",\n    lineWidth: 1.5,\n    startColor: \"transparent\",\n    endColor: \"black\",\n    maxColor: \"transparent\",\n    minColor: \"transparent\",\n    minValue: null,\n    maxValue: null,\n    minMaxValue: null,\n    maxMinValue: null,\n    dotRadius: 2.5,\n    tooltip: null,\n    fillBelow: true,\n    fillLighten: 0.5,\n    startLine: false,\n    endLine: false,\n    minLine: false,\n    maxLine: false,\n    bottomLine: false,\n    topLine: false,\n    averageLine: false\n  };\n\n  Sparkline.init = function (element, options) {\n    return new Sparkline(element, options);\n  };\n\n  Sparkline.draw = function (element, points, options) {\n    var sparkline = new Sparkline(element, options);\n    sparkline.draw(points);\n    return sparkline;\n  }\n\n  function getY(minValue, maxValue, offsetY, height, index) {\n    var range = maxValue - minValue;\n    if (range == 0) {\n      return offsetY + height / 2;\n    } else {\n      return (offsetY + height) - ((this[index] - minValue) / range) * height;\n    }\n  }\n\n  function drawDot(radius, x1, x2, color, line, x, y) {\n    this.context.beginPath();\n    this.context.fillStyle = color;\n    this.context.arc(x, y, radius, 0, Math.PI * 2, false);\n    this.context.fill();\n    drawLine.call(this, x1, x2, line, x, y);\n  }\n\n  function drawLine(x1, x2, style, x, y){\n    if(!style) return;\n\n    this.context.save();\n    this.context.strokeStyle = style.color || 'black';\n    this.context.lineWidth = (style.width || 1) * this.ratio;\n    this.context.globalAlpha = style.alpha || 1;\n    this.context.beginPath();\n    this.context.moveTo(style.direction != 'right' ? x1 : x, y);\n    this.context.lineTo(style.direction != 'left' ? x2 : x, y);\n    this.context.stroke();\n    this.context.restore();\n  }\n\n  function showTooltip(e) {\n    var x = e.offsetX || e.layerX || 0;\n    var delta = ((this.options.width - this.options.dotRadius * 2) / (this.points.length - 1));\n    var index = minmax(0, Math.round((x - this.options.dotRadius) / delta), this.points.length - 1);\n\n    this.canvas.title = this.options.tooltip(this.points[index], index, this.points);\n  }\n\n  Sparkline.prototype.draw = function (points) {\n\n    points = points || [];\n    this.points = points;\n\n    this.canvas.width = this.options.width * this.ratio;\n    this.canvas.style.width = this.options.width + 'px';\n\n    var pxHeight = this.options.height || this.element.offsetHeight;\n    this.canvas.height = pxHeight * this.ratio;\n    this.canvas.style.height = pxHeight + 'px';\n\n    var lineWidth = this.options.lineWidth * this.ratio;\n    var offsetX = Math.max(this.options.dotRadius * this.ratio, lineWidth/2);\n    var offsetY = Math.max(this.options.dotRadius * this.ratio, lineWidth/2);\n    var width = this.canvas.width - offsetX * 2;\n    var height = this.canvas.height - offsetY * 2;\n\n    var minValue = Math.min.apply(Math, points);\n    var maxValue = Math.max.apply(Math, points);\n    var bottomValue = this.options.minValue != undefined ? this.options.minValue : Math.min(minValue, this.options.maxMinValue != undefined ? this.options.maxMinValue : minValue);\n    var topValue = this.options.maxValue != undefined ? this.options.maxValue : Math.max(maxValue, this.options.minMaxValue != undefined ? this.options.minMaxValue : maxValue);\n    var minX = offsetX;\n    var maxX = offsetX;\n\n    var x = offsetX;\n    var y = getY.bind(points, bottomValue, topValue, offsetY, height);\n    var delta = width / (points.length - 1);\n\n    var dot = drawDot.bind(this, this.options.dotRadius * this.ratio, offsetX, width + offsetX);\n    var line = drawLine.bind(this, offsetX, width + offsetX);\n\n    this.context.save();\n\n    this.context.strokeStyle = this.options.lineColor;\n    this.context.fillStyle = this.options.lineColor;\n    this.context.lineWidth = lineWidth;\n    this.context.lineCap = 'round';\n    this.context.lineJoin = 'round';\n\n    if(this.options.fillBelow && points.length > 1){\n      this.context.save();\n      this.context.beginPath();\n      this.context.moveTo(x, y(0));\n      for (var i = 1; i < points.length; i++) {\n        x += delta;\n\n        minX = points[i] == minValue ? x : minX;\n        maxX = points[i] == maxValue ? x : maxX;\n\n        this.context.lineTo(x, y(i));\n      }\n      this.context.lineTo(width+offsetX, height + offsetY + lineWidth/2);\n      this.context.lineTo(offsetX, height + offsetY + lineWidth/2);\n      this.context.fill();\n      if(this.options.fillLighten > 0){\n        this.context.fillStyle = 'white';\n        this.context.globalAlpha = this.options.fillLighten;\n        this.context.fill();\n        this.context.globalAlpha = 1;\n      }else if(this.options.fillLighten < 0){\n        this.context.fillStyle = 'black';\n        this.context.globalAlpha = -this.options.fillLighten;\n        this.context.fill();\n      }\n      this.context.restore();\n    }\n\n    x = offsetX;\n    this.context.beginPath();\n    this.context.moveTo(x, y(0));\n    for (var i = 1; i < points.length; i++) {\n      x += delta;\n      this.context.lineTo(x, y(i));\n    }\n    this.context.stroke();\n\n    this.context.restore();\n\n    line(this.options.bottomLine, 0, offsetY);\n    line(this.options.topLine, 0, height + offsetY+lineWidth/2);\n\n    dot(this.options.startColor, this.options.startLine, offsetX + (points.length == 1 ? width / 2 : 0), y(0));\n    dot(this.options.endColor, this.options.endLine, offsetX + (points.length == 1 ? width / 2 : width), y(points.length-1));\n    dot(this.options.minColor, this.options.minLine, minX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(minValue)));\n    dot(this.options.maxColor, this.options.maxLine, maxX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(maxValue)));\n\n    //line(this.options.averageLine, )\n  }\n\n  function minmax(a, b, c) {\n    return Math.max(a, Math.min(b, c));\n  }\n\n  return Sparkline;\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sparklines/sparkline.mjs",
    "content": "export default class Sparkline {\n  constructor(element, options = {}) {\n    this.element = element;\n    this.options = { ...Sparkline.options, ...options };\n\n    init: {\n      this.element.innerHTML = \"<canvas></canvas>\";\n      this.canvas = this.element.firstChild;\n      this.context = this.canvas.getContext(\"2d\");\n      this.ratio = window.devicePixelRatio || 1;\n\n      if (this.options.tooltip) {\n        this.canvas.style.position = \"relative\";\n        this.canvas.addEventListener('mousemove', e => {\n          const x = e.offsetX || e.layerX || 0;\n          const delta = ((this.options.width - this.options.dotRadius * 2) / (this._points.length - 1));\n          const index = minmax(0, Math.round((x - this.options.dotRadius) / delta), this._points.length - 1);\n\n          this.canvas.title = this.options.tooltip(this._points[index], index, this._points);\n        }, false);\n      }\n    }\n  }\n\n  set points(points) {\n    this.draw(points);\n  }\n\n  get points() {\n    return this._points;\n  }\n\n  draw(points = []) {\n    this._points = points;\n\n    this.canvas.width = this.options.width * this.ratio;\n    this.canvas.style.width = `${this.options.width}px`;\n\n    const pxHeight = this.options.height || this.element.offsetHeight;\n    this.canvas.height = pxHeight * this.ratio;\n    this.canvas.style.height = `${pxHeight}px`;\n\n    const lineWidth = this.options.lineWidth * this.ratio;\n    const offsetX = Math.max(this.options.dotRadius * this.ratio, lineWidth / 2);\n    const offsetY = Math.max(this.options.dotRadius * this.ratio, lineWidth / 2);\n    const width = this.canvas.width - offsetX * 2;\n    const height = this.canvas.height - offsetY * 2;\n\n    const minValue = Math.min.apply(Math, points);\n    const maxValue = Math.max.apply(Math, points);\n    const bottomValue = this.options.minValue != undefined ? this.options.minValue : Math.min(minValue, this.options.maxMinValue != undefined ? this.options.maxMinValue : minValue);\n    const topValue = this.options.maxValue != undefined ? this.options.maxValue : Math.max(maxValue, this.options.minMaxValue != undefined ? this.options.minMaxValue : maxValue);\n    let minX = offsetX;\n    let maxX = offsetX;\n\n    let x = offsetX;\n    const y = index => (topValue === bottomValue)\n      ? offsetY + height / 2\n      : (offsetY + height) - ((points[index] - bottomValue) / (topValue - bottomValue)) * height;\n    const delta = width / (points.length - 1);\n\n    const line = (style, x, y) => {\n      if (!style) return;\n\n      this.context.save();\n      this.context.strokeStyle = style.color || 'black';\n      this.context.lineWidth = (style.width || 1) * this.ratio;\n      this.context.globalAlpha = style.alpha || 1;\n      this.context.beginPath();\n      this.context.moveTo(style.direction != 'right' ? offsetX : x, y);\n      this.context.lineTo(style.direction != 'left' ? width + offsetX : x, y);\n      this.context.stroke();\n      this.context.restore();\n    }\n\n    const dot = (color, lineStyle, x, y) => {\n      this.context.beginPath();\n      this.context.fillStyle = color;\n      this.context.arc(x, y, this.options.dotRadius * this.ratio, 0, Math.PI * 2, false);\n      this.context.fill();\n      line(lineStyle, x, y);\n    }\n\n    this.context.save();\n\n    this.context.strokeStyle = this.options.lineColor;\n    this.context.fillStyle = this.options.lineColor;\n    this.context.lineWidth = lineWidth;\n    this.context.lineCap = 'round';\n    this.context.lineJoin = 'round';\n\n    if (this.options.fillBelow && points.length > 1) {\n      this.context.save();\n      this.context.beginPath();\n      this.context.moveTo(x, y(0));\n      for (let i = 1; i < points.length; i++) {\n        x += delta;\n\n        minX = points[i] == minValue ? x : minX;\n        maxX = points[i] == maxValue ? x : maxX;\n\n        this.context.lineTo(x, y(i));\n      }\n      this.context.lineTo(width + offsetX, height + offsetY + lineWidth / 2);\n      this.context.lineTo(offsetX, height + offsetY + lineWidth / 2);\n      this.context.fill();\n      if (this.options.fillLighten > 0) {\n        this.context.fillStyle = 'white';\n        this.context.globalAlpha = this.options.fillLighten;\n        this.context.fill();\n        this.context.globalAlpha = 1;\n      } else if (this.options.fillLighten < 0) {\n        this.context.fillStyle = 'black';\n        this.context.globalAlpha = -this.options.fillLighten;\n        this.context.fill();\n      }\n      this.context.restore();\n    }\n\n    x = offsetX;\n    this.context.beginPath();\n    this.context.moveTo(x, y(0));\n    for (let i = 1; i < points.length; i++) {\n      x += delta;\n      this.context.lineTo(x, y(i));\n    }\n    this.context.stroke();\n\n    this.context.restore();\n\n    line(this.options.bottomLine, 0, offsetY);\n    line(this.options.topLine, 0, height + offsetY + lineWidth / 2);\n\n    dot(this.options.startColor, this.options.startLine, offsetX + (points.length == 1 ? width / 2 : 0), y(0));\n    dot(this.options.endColor, this.options.endLine, offsetX + (points.length == 1 ? width / 2 : width), y(points.length - 1));\n    dot(this.options.minColor, this.options.minLine, minX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(minValue)));\n    dot(this.options.maxColor, this.options.maxLine, maxX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(maxValue)));\n  }\n\n  static init(element, options) {\n    return new Sparkline(element, options);\n  }\n\n  static draw(element, points, options) {\n    const sparkline = new Sparkline(element, options);\n    sparkline.draw(points);\n    return sparkline;\n  }\n}\n\nSparkline.options = {\n  width: 100,\n  height: null,\n  lineColor: \"black\",\n  lineWidth: 1.5,\n  startColor: \"transparent\",\n  endColor: \"black\",\n  maxColor: \"transparent\",\n  minColor: \"transparent\",\n  minValue: null,\n  maxValue: null,\n  minMaxValue: null,\n  maxMinValue: null,\n  dotRadius: 2.5,\n  tooltip: null,\n  fillBelow: true,\n  fillLighten: 0.5,\n  startLine: false,\n  endLine: false,\n  minLine: false,\n  maxLine: false,\n  bottomLine: false,\n  topLine: false,\n  averageLine: false\n};\n\nfunction minmax(a, b, c) {\n  return Math.max(a, Math.min(b, c));\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ar-AR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ar-AR': {\n      font: {\n        bold: 'عريض',\n        italic: 'مائل',\n        underline: 'تحته خط',\n        clear: 'مسح التنسيق',\n        height: 'إرتفاع السطر',\n        name: 'الخط',\n        strikethrough: 'فى وسطه خط',\n        subscript: 'مخطوطة',\n        superscript: 'حرف فوقي',\n        size: 'الحجم'\n      },\n      image: {\n        image: 'صورة',\n        insert: 'إضافة صورة',\n        resizeFull: 'الحجم بالكامل',\n        resizeHalf: 'تصغير للنصف',\n        resizeQuarter: 'تصغير للربع',\n        floatLeft: 'تطيير لليسار',\n        floatRight: 'تطيير لليمين',\n        floatNone: 'ثابته',\n        shapeRounded: 'الشكل: تقريب',\n        shapeCircle: 'الشكل: دائرة',\n        shapeThumbnail: 'الشكل: صورة مصغرة',\n        shapeNone: 'الشكل: لا شيء',\n        dragImageHere: 'إدرج الصورة هنا',\n        dropImage: 'إسقاط صورة أو نص',\n        selectFromFiles: 'حدد ملف',\n        maximumFileSize: 'الحد الأقصى لحجم الملف',\n        maximumFileSizeError: 'تم تجاوز الحد الأقصى لحجم الملف',\n        url: 'رابط الصورة',\n        remove: 'حذف الصورة',\n        original: 'Original'\n      },\n      video: {\n        video: 'فيديو',\n        videoLink: 'رابط الفيديو',\n        insert: 'إدراج الفيديو',\n        url: 'رابط الفيديو',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'رابط',\n        insert: 'إدراج',\n        unlink: 'حذف الرابط',\n        edit: 'تعديل',\n        textToDisplay: 'النص',\n        url: 'مسار الرابط',\n        openInNewWindow: 'فتح في نافذة جديدة'\n      },\n      table: {\n        table: 'جدول',\n        addRowAbove: 'إضافة سطر أعلاه',\n        addRowBelow: 'إضافة سطر أدناه',\n        addColLeft: 'إضافة عمود قبله',\n        addColRight: 'إضافة عمود بعده',\n        delRow: 'حذف سطر',\n        delCol: 'حذف عمود',\n        delTable: 'حذف الجدول'\n      },\n      hr: {\n        insert: 'إدراج خط أفقي'\n      },\n      style: {\n        style: 'تنسيق',\n        p: 'عادي',\n        blockquote: 'إقتباس',\n        pre: 'شفيرة',\n        h1: 'عنوان رئيسي 1',\n        h2: 'عنوان رئيسي 2',\n        h3: 'عنوان رئيسي 3',\n        h4: 'عنوان رئيسي 4',\n        h5: 'عنوان رئيسي 5',\n        h6: 'عنوان رئيسي 6'\n      },\n      lists: {\n        unordered: 'قائمة مُنقطة',\n        ordered: 'قائمة مُرقمة'\n      },\n      options: {\n        help: 'مساعدة',\n        fullscreen: 'حجم الشاشة بالكامل',\n        codeview: 'شفيرة المصدر'\n      },\n      paragraph: {\n        paragraph: 'فقرة',\n        outdent: 'محاذاة للخارج',\n        indent: 'محاذاة للداخل',\n        left: 'محاذاة لليسار',\n        center: 'توسيط',\n        right: 'محاذاة لليمين',\n        justify: 'ملئ السطر'\n      },\n      color: {\n        recent: 'تم إستخدامه',\n        more: 'المزيد',\n        background: 'لون الخلفية',\n        foreground: 'لون النص',\n        transparent: 'شفاف',\n        setTransparent: 'بدون خلفية',\n        reset: 'إعادة الضبط',\n        resetToDefault: 'إعادة الضبط',\n        cpSelect: 'اختار'\n      },\n      shortcut: {\n        shortcuts: 'إختصارات',\n        close: 'غلق',\n        textFormatting: 'تنسيق النص',\n        action: 'Action',\n        paragraphFormatting: 'تنسيق الفقرة',\n        documentStyle: 'تنسيق المستند',\n        extraKeys: 'أزرار إضافية'\n      },\n      help: {\n        'insertParagraph': 'إدراج فقرة',\n        'undo': 'تراجع عن آخر أمر',\n        'redo': 'إعادة تنفيذ آخر أمر',\n        'tab': 'إزاحة (تاب)',\n        'untab': 'سحب النص باتجاه البداية',\n        'bold': 'تنسيق عريض',\n        'italic': 'تنسيق مائل',\n        'underline': 'تنسيق خط سفلي',\n        'strikethrough': 'تنسيق خط متوسط للنص',\n        'removeFormat': 'إزالة التنسيقات',\n        'justifyLeft': 'محاذاة لليسار',\n        'justifyCenter': 'محاذاة توسيط',\n        'justifyRight': 'محاذاة لليمين',\n        'justifyFull': 'محاذاة كاملة',\n        'insertUnorderedList': 'قائمة منقّطة',\n        'insertOrderedList': 'قائمة مرقّمة',\n        'outdent': 'إزاحة للأمام على الفقرة الحالية',\n        'indent': 'إزاحة للخلف على الفقرة الحالية',\n        'formatPara': 'تغيير التنسيق للكتلة الحالية إلى فقرة',\n        'formatH1': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 1',\n        'formatH2': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 2',\n        'formatH3': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 3',\n        'formatH4': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 4',\n        'formatH5': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 5',\n        'formatH6': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 6',\n        'insertHorizontalRule': 'إدراج خط أفقي',\n        'linkDialog.show': 'إظهار خصائص الرابط'\n      },\n      history: {\n        undo: 'تراجع',\n        redo: 'إعادة'\n      },\n      specialChar: {\n        specialChar: 'محارف خاصة',\n        select: 'اختر المحرف الخاص'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ar-AR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-az-AZ.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 8:\n/***/ (function(module, exports) {\n\n//Summernote WYSIWYG  editor ucun Azerbaycan dili fayli\n//Tercume etdi: RAMIL ALIYEV\n//Tarix: 20.07.2019\n//Baki Azerbaycan\n//Website: https://ramilaliyev.com\n//Azerbaijan language for Summernote WYSIWYG \n//Translated by: RAMIL ALIYEV\n//Date: 20.07.2019\n//Baku Azerbaijan\n//Website: https://ramilaliyev.com\n(function ($) {\n  $.extend($.summernote.lang, {\n    'az-AZ': {\n      font: {\n        bold: 'Qalın',\n        italic: 'Əyri',\n        underline: 'Altı xətli',\n        clear: 'Təmizlə',\n        height: 'Sətir hündürlüyü',\n        name: 'Yazı Tipi',\n        strikethrough: 'Üstü xətli',\n        subscript: 'Alt simvol',\n        superscript: 'Üst simvol',\n        size: 'Yazı ölçüsü'\n      },\n      image: {\n        image: 'Şəkil',\n        insert: 'Şəkil əlavə et',\n        resizeFull: 'Original ölçü',\n        resizeHalf: '1/2 ölçü',\n        resizeQuarter: '1/4 ölçü',\n        floatLeft: 'Sola çək',\n        floatRight: 'Sağa çək',\n        floatNone: 'Sola-sağa çəkilməni ləğv et',\n        shapeRounded: 'Şəkil: yuvarlaq künç',\n        shapeCircle: 'Şəkil: Dairə',\n        shapeThumbnail: 'Şəkil: Thumbnail',\n        shapeNone: 'Şəkil: Yox',\n        dragImageHere: 'Bura sürüşdür',\n        dropImage: 'Şəkil və ya mətni buraxın',\n        selectFromFiles: 'Sənəd seçin',\n        maximumFileSize: 'Maksimum sənəd ölçüsü',\n        maximumFileSizeError: 'Maksimum sənəd ölçüsünü keçdiniz.',\n        url: 'Şəkil linki',\n        remove: 'Şəkli sil',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video linki',\n        insert: 'Video əlavə et',\n        url: 'Video linki?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion və ya Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link əlavə et',\n        unlink: 'Linki sil',\n        edit: 'Linkə düzəliş et',\n        textToDisplay: 'Ekranda göstəriləcək link adı',\n        url: 'Link ünvanı?',\n        openInNewWindow: 'Yeni pəncərədə aç'\n      },\n      table: {\n        table: 'Cədvəl',\n        addRowAbove: 'Yuxarı sətir əlavə et',\n        addRowBelow: 'Aşağı sətir əlavə et',\n        addColLeft: 'Sola sütun əlavə et',\n        addColRight: 'Sağa sütun əlavə et',\n        delRow: 'Sətiri sil',\n        delCol: 'Sütunu sil',\n        delTable: 'Cədvəli sil'\n      },\n      hr: {\n        insert: 'Üfuqi xətt əlavə et'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'İstinad',\n        pre: 'Ön baxış',\n        h1: 'Başlıq 1',\n        h2: 'Başlıq 2',\n        h3: 'Başlıq 3',\n        h4: 'Başlıq 4',\n        h5: 'Başlıq 5',\n        h6: 'Başlıq 6'\n      },\n      lists: {\n        unordered: 'Nizamsız sıra',\n        ordered: 'Nizamlı sıra'\n      },\n      options: {\n        help: 'Kömək',\n        fullscreen: 'Tam ekran',\n        codeview: 'HTML Kodu'\n      },\n      paragraph: {\n        paragraph: 'Paraqraf',\n        outdent: 'Girintini artır',\n        indent: 'Girintini azalt',\n        left: 'Sola çək',\n        center: 'Ortaya çək',\n        right: 'Sağa çək',\n        justify: 'Sola və sağa çək'\n      },\n      color: {\n        recent: 'Son rənk',\n        more: 'Daha çox rənk',\n        background: 'Arxa fon rəngi',\n        foreground: 'Yazı rıngi',\n        transparent: 'Şəffaflıq',\n        setTransparent: 'Şəffaflığı nizamla',\n        reset: 'Sıfırla',\n        resetToDefault: 'Susyama görə sıfırla'\n      },\n      shortcut: {\n        shortcuts: 'Qısayollar',\n        close: 'Bağla',\n        textFormatting: 'Yazı formatlandırmaq',\n        action: 'Hadisə',\n        paragraphFormatting: 'Paraqraf formatlandırmaq',\n        documentStyle: 'Sənəd stili',\n        extraKeys: 'Əlavə'\n      },\n      help: {\n        'insertParagraph': 'Paraqraf əlavə etmək',\n        'undo': 'Son əmri geri alır',\n        'redo': 'Son əmri irəli alır',\n        'tab': 'Girintini artırır',\n        'untab': 'Girintini azaltır',\n        'bold': 'Qalın yazma stilini nizamlayır',\n        'italic': 'İtalik yazma stilini nizamlayır',\n        'underline': 'Altı xətli yazma stilini nizamlayır',\n        'strikethrough': 'Üstü xətli yazma stilini nizamlayır',\n        'removeFormat': 'Formatlandırmanı ləğv edir',\n        'justifyLeft': 'Yazını sola çəkir',\n        'justifyCenter': 'Yazını ortaya çəkir',\n        'justifyRight': 'Yazını sağa çəkir',\n        'justifyFull': 'Yazını hər iki tərəfə yazır',\n        'insertUnorderedList': 'Nizamsız sıra əlavə edir',\n        'insertOrderedList': 'Nizamlı sıra əlavə edir',\n        'outdent': 'Aktiv paraqrafın girintisini azaltır',\n        'indent': 'Aktiv paragrafın girintisini artırır',\n        'formatPara': 'Aktiv bloqun formatını paraqraf (p) olaraq dəyişdirir',\n        'formatH1': 'Aktiv bloqun formatını başlıq 1 (h1) olaraq dəyişdirir',\n        'formatH2': 'Aktiv bloqun formatını başlıq 2 (h2) olaraq dəyişdirir',\n        'formatH3': 'Aktiv bloqun formatını başlıq 3 (h3) olaraq dəyişdirir',\n        'formatH4': 'Aktiv bloqun formatını başlıq 4 (h4) olaraq dəyişdirir',\n        'formatH5': 'Aktiv bloqun formatını başlıq 5 (h5) olaraq dəyişdirir',\n        'formatH6': 'Aktiv bloqun formatını başlıq 6 (h6) olaraq dəyişdirir',\n        'insertHorizontalRule': 'Üfuqi xətt əlavə edir',\n        'linkDialog.show': 'Link parametrləri qutusunu göstərir'\n      },\n      history: {\n        undo: 'Əvvəlki vəziyyət',\n        redo: 'Sonrakı vəziyyət'\n      },\n      specialChar: {\n        specialChar: 'Xüsusi simvollar',\n        select: 'Xüsusi simvolları seçin'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-az-AZ.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-bg-BG.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 9);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'bg-BG': {\n      font: {\n        bold: 'Удебелен',\n        italic: 'Наклонен',\n        underline: 'Подчертан',\n        clear: 'Изчисти стиловете',\n        height: 'Височина',\n        name: 'Шрифт',\n        strikethrough: 'Задраскано',\n        subscript: 'Долен индекс',\n        superscript: 'Горен индекс',\n        size: 'Размер на шрифта'\n      },\n      image: {\n        image: 'Изображение',\n        insert: 'Постави картинка',\n        resizeFull: 'Цял размер',\n        resizeHalf: 'Размер на 50%',\n        resizeQuarter: 'Размер на 25%',\n        floatLeft: 'Подравни в ляво',\n        floatRight: 'Подравни в дясно',\n        floatNone: 'Без подравняване',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Пуснете изображението тук',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Изберете файл',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL адрес на изображение',\n        remove: 'Премахни изображение',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Връзка',\n        insert: 'Добави връзка',\n        unlink: 'Премахни връзка',\n        edit: 'Промени',\n        textToDisplay: 'Текст за показване',\n        url: 'URL адрес',\n        openInNewWindow: 'Отвори в нов прозорец'\n      },\n      table: {\n        table: 'Таблица',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Добави хоризонтална линия'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормален',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавие 1',\n        h2: 'Заглавие 2',\n        h3: 'Заглавие 3',\n        h4: 'Заглавие 4',\n        h5: 'Заглавие 5',\n        h6: 'Заглавие 6'\n      },\n      lists: {\n        unordered: 'Символен списък',\n        ordered: 'Цифров списък'\n      },\n      options: {\n        help: 'Помощ',\n        fullscreen: 'На цял екран',\n        codeview: 'Преглед на код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Намаляване на отстъпа',\n        indent: 'Абзац',\n        left: 'Подравняване в ляво',\n        center: 'Център',\n        right: 'Подравняване в дясно',\n        justify: 'Разтягане по ширина'\n      },\n      color: {\n        recent: 'Последния избран цвят',\n        more: 'Още цветове',\n        background: 'Цвят на фона',\n        foreground: 'Цвят на шрифта',\n        transparent: 'Прозрачен',\n        setTransparent: 'Направете прозрачен',\n        reset: 'Възстанови',\n        resetToDefault: 'Възстанови оригиналните',\n        cpSelect: 'Изберете'\n      },\n      shortcut: {\n        shortcuts: 'Клавишни комбинации',\n        close: 'Затвори',\n        textFormatting: 'Форматиране на текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматиране на параграф',\n        documentStyle: 'Стил на документа',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Назад',\n        redo: 'Напред'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-bg-BG.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ca-ES.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 10);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ca-ES': {\n      font: {\n        bold: 'Negreta',\n        italic: 'Cursiva',\n        underline: 'Subratllat',\n        clear: 'Treure estil de lletra',\n        height: 'Alçada de línia',\n        name: 'Font',\n        strikethrough: 'Ratllat',\n        subscript: 'Subíndex',\n        superscript: 'Superíndex',\n        size: 'Mida de lletra'\n      },\n      image: {\n        image: 'Imatge',\n        insert: 'Inserir imatge',\n        resizeFull: 'Redimensionar a mida completa',\n        resizeHalf: 'Redimensionar a la meitat',\n        resizeQuarter: 'Redimensionar a un quart',\n        floatLeft: 'Alinear a l\\'esquerra',\n        floatRight: 'Alinear a la dreta',\n        floatNone: 'No alinear',\n        shapeRounded: 'Forma: Arrodonit',\n        shapeCircle: 'Forma: Cercle',\n        shapeThumbnail: 'Forma: Marc',\n        shapeNone: 'Forma: Cap',\n        dragImageHere: 'Arrossegueu una imatge o text aquí',\n        dropImage: 'Deixa anar aquí una imatge o un text',\n        selectFromFiles: 'Seleccioneu des dels arxius',\n        maximumFileSize: 'Mida màxima de l\\'arxiu',\n        maximumFileSizeError: 'La mida màxima de l\\'arxiu s\\'ha superat.',\n        url: 'URL de la imatge',\n        remove: 'Eliminar imatge',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Enllaç del vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL del vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Enllaç',\n        insert: 'Inserir enllaç',\n        unlink: 'Treure enllaç',\n        edit: 'Editar',\n        textToDisplay: 'Text per mostrar',\n        url: 'Cap a quina URL porta l\\'enllaç?',\n        openInNewWindow: 'Obrir en una finestra nova'\n      },\n      table: {\n        table: 'Taula',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Inserir línia horitzontal'\n      },\n      style: {\n        style: 'Estil',\n        p: 'p',\n        blockquote: 'Cita',\n        pre: 'Codi',\n        h1: 'Títol 1',\n        h2: 'Títol 2',\n        h3: 'Títol 3',\n        h4: 'Títol 4',\n        h5: 'Títol 5',\n        h6: 'Títol 6'\n      },\n      lists: {\n        unordered: 'Llista desendreçada',\n        ordered: 'Llista endreçada'\n      },\n      options: {\n        help: 'Ajut',\n        fullscreen: 'Pantalla sencera',\n        codeview: 'Veure codi font'\n      },\n      paragraph: {\n        paragraph: 'Paràgraf',\n        outdent: 'Menys tabulació',\n        indent: 'Més tabulació',\n        left: 'Alinear a l\\'esquerra',\n        center: 'Alinear al mig',\n        right: 'Alinear a la dreta',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Últim color',\n        more: 'Més colors',\n        background: 'Color de fons',\n        foreground: 'Color de lletra',\n        transparent: 'Transparent',\n        setTransparent: 'Establir transparent',\n        reset: 'Restablir',\n        resetToDefault: 'Restablir per defecte'\n      },\n      shortcut: {\n        shortcuts: 'Dreceres de teclat',\n        close: 'Tancar',\n        textFormatting: 'Format de text',\n        action: 'Acció',\n        paragraphFormatting: 'Format de paràgraf',\n        documentStyle: 'Estil del document',\n        extraKeys: 'Tecles adicionals'\n      },\n      help: {\n        'insertParagraph': 'Inserir paràgraf',\n        'undo': 'Desfer l\\'última acció',\n        'redo': 'Refer l\\'última acció',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulació',\n        'bold': 'Establir estil negreta',\n        'italic': 'Establir estil cursiva',\n        'underline': 'Establir estil subratllat',\n        'strikethrough': 'Establir estil ratllat',\n        'removeFormat': 'Netejar estil',\n        'justifyLeft': 'Alinear a l\\'esquerra',\n        'justifyCenter': 'Alinear al centre',\n        'justifyRight': 'Alinear a la dreta',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Inserir llista desendreçada',\n        'insertOrderedList': 'Inserir llista endreçada',\n        'outdent': 'Reduïr tabulació del paràgraf',\n        'indent': 'Augmentar tabulació del paràgraf',\n        'formatPara': 'Canviar l\\'estil del bloc com a un paràgraf (etiqueta P)',\n        'formatH1': 'Canviar l\\'estil del bloc com a un H1',\n        'formatH2': 'Canviar l\\'estil del bloc com a un H2',\n        'formatH3': 'Canviar l\\'estil del bloc com a un H3',\n        'formatH4': 'Canviar l\\'estil del bloc com a un H4',\n        'formatH5': 'Canviar l\\'estil del bloc com a un H5',\n        'formatH6': 'Canviar l\\'estil del bloc com a un H6',\n        'insertHorizontalRule': 'Inserir una línia horitzontal',\n        'linkDialog.show': 'Mostrar panel d\\'enllaços'\n      },\n      history: {\n        undo: 'Desfer',\n        redo: 'Refer'\n      },\n      specialChar: {\n        specialChar: 'CARÀCTERS ESPECIALS',\n        select: 'Selecciona caràcters especials'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ca-ES.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-cs-CZ.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 11:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'cs-CZ': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podtržené',\n        clear: 'Odstranit styl písma',\n        height: 'Výška řádku',\n        strikethrough: 'Přeškrtnuté',\n        size: 'Velikost písma'\n      },\n      image: {\n        image: 'Obrázek',\n        insert: 'Vložit obrázek',\n        resizeFull: 'Původní velikost',\n        resizeHalf: 'Poloviční velikost',\n        resizeQuarter: 'Čtvrteční velikost',\n        floatLeft: 'Umístit doleva',\n        floatRight: 'Umístit doprava',\n        floatNone: 'Neobtékat textem',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Přetáhnout sem obrázek',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Vybrat soubor',\n        url: 'URL obrázku',\n        remove: 'Remove Image',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložit video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvořit odkaz',\n        unlink: 'Zrušit odkaz',\n        edit: 'Upravit',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na jaké URL má tento odkaz vést?',\n        openInNewWindow: 'Otevřít v novém okně'\n      },\n      table: {\n        table: 'Tabulka',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Vložit vodorovnou čáru'\n      },\n      style: {\n        style: 'Styl',\n        p: 'Normální',\n        blockquote: 'Citace',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový seznam',\n        ordered: 'Číselný seznam'\n      },\n      options: {\n        help: 'Nápověda',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odstavec',\n        outdent: 'Zvětšit odsazení',\n        indent: 'Zmenšit odsazení',\n        left: 'Zarovnat doleva',\n        center: 'Zarovnat na střed',\n        right: 'Zarovnat doprava',\n        justify: 'Zarovnat oboustranně'\n      },\n      color: {\n        recent: 'Aktuální barva',\n        more: 'Další barvy',\n        background: 'Barva pozadí',\n        foreground: 'Barva písma',\n        transparent: 'Průhlednost',\n        setTransparent: 'Nastavit průhlednost',\n        reset: 'Obnovit',\n        resetToDefault: 'Obnovit výchozí',\n        cpSelect: 'Vybrat'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové zkratky',\n        close: 'Zavřít',\n        textFormatting: 'Formátování textu',\n        action: 'Akce',\n        paragraphFormatting: 'Formátování odstavce',\n        documentStyle: 'Styl dokumentu'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok vpřed'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-cs-CZ.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-da-DK.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 12);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 12:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'da-DK': {\n      font: {\n        bold: 'Fed',\n        italic: 'Kursiv',\n        underline: 'Understreget',\n        clear: 'Fjern formatering',\n        height: 'Højde',\n        name: 'Skrifttype',\n        strikethrough: 'Gennemstreget',\n        subscript: 'Sænket skrift',\n        superscript: 'Hævet skrift',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Billede',\n        insert: 'Indsæt billede',\n        resizeFull: 'Original størrelse',\n        resizeHalf: 'Halv størrelse',\n        resizeQuarter: 'Kvart størrelse',\n        floatLeft: 'Venstrestillet',\n        floatRight: 'Højrestillet',\n        floatNone: 'Fjern formatering',\n        shapeRounded: 'Form: Runde kanter',\n        shapeCircle: 'Form: Cirkel',\n        shapeThumbnail: 'Form: Miniature',\n        shapeNone: 'Form: Ingen',\n        dragImageHere: 'Træk billede hertil',\n        dropImage: 'Slip billede',\n        selectFromFiles: 'Vælg billed-fil',\n        maximumFileSize: 'Maks fil størrelse',\n        maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!',\n        url: 'Billede URL',\n        remove: 'Fjern billede',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Indsæt Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Indsæt link',\n        unlink: 'Fjern link',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Hvor skal linket pege hen?',\n        openInNewWindow: 'Åbn i nyt vindue'\n      },\n      table: {\n        table: 'Tabel',\n        addRowAbove: 'Tilføj række over',\n        addRowBelow: 'Tilføj række under',\n        addColLeft: 'Tilføj venstre kolonne',\n        addColRight: 'Tilføj højre kolonne',\n        delRow: 'Slet række',\n        delCol: 'Slet kolonne',\n        delTable: 'Slet tabel'\n      },\n      hr: {\n        insert: 'Indsæt horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktopstillet liste',\n        ordered: 'Nummereret liste'\n      },\n      options: {\n        help: 'Hjælp',\n        fullscreen: 'Fuld skærm',\n        codeview: 'HTML-Visning'\n      },\n      paragraph: {\n        paragraph: 'Afsnit',\n        outdent: 'Formindsk indryk',\n        indent: 'Forøg indryk',\n        left: 'Venstrestillet',\n        center: 'Centreret',\n        right: 'Højrestillet',\n        justify: 'Blokjuster'\n      },\n      color: {\n        recent: 'Nyligt valgt farve',\n        more: 'Flere farver',\n        background: 'Baggrund',\n        foreground: 'Forgrund',\n        transparent: 'Transparent',\n        setTransparent: 'Sæt transparent',\n        reset: 'Nulstil',\n        resetToDefault: 'Gendan standardindstillinger'\n      },\n      shortcut: {\n        shortcuts: 'Genveje',\n        close: 'Luk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Afsnitsformatering',\n        documentStyle: 'Dokumentstil',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Indsæt paragraf',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Vis Link Dialog'\n      },\n      history: {\n        undo: 'Fortryd',\n        redo: 'Annuller fortryd'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Vælg special karakterer'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-da-DK.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-de-DE.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 13);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 13:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'de-DE': {\n      font: {\n        bold: 'Fett',\n        italic: 'Kursiv',\n        underline: 'Unterstreichen',\n        clear: 'Zurücksetzen',\n        height: 'Zeilenhöhe',\n        name: 'Schriftart',\n        strikethrough: 'Durchgestrichen',\n        subscript: 'Tiefgestellt',\n        superscript: 'Hochgestellt',\n        size: 'Schriftgröße'\n      },\n      image: {\n        image: 'Bild',\n        insert: 'Bild einfügen',\n        resizeFull: 'Originalgröße',\n        resizeHalf: '1/2 Größe',\n        resizeQuarter: '1/4 Größe',\n        floatLeft: 'Linksbündig',\n        floatRight: 'Rechtsbündig',\n        floatNone: 'Kein Textfluss',\n        shapeRounded: 'Abgerundeter Rahmen',\n        shapeCircle: 'Kreisförmiger Rahmen',\n        shapeThumbnail: 'Rahmenvorschau',\n        shapeNone: 'Kein Rahmen',\n        dragImageHere: 'Bild hierher ziehen',\n        dropImage: 'Bild oder Text nehmen',\n        selectFromFiles: 'Datei auswählen',\n        maximumFileSize: 'Maximale Dateigröße',\n        maximumFileSizeError: 'Maximale Dateigröße überschritten',\n        url: 'Bild URL',\n        remove: 'Bild entfernen',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Videolink',\n        insert: 'Video einfügen',\n        url: 'Video URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link einfügen',\n        unlink: 'Link entfernen',\n        edit: 'Bearbeiten',\n        textToDisplay: 'Anzeigetext',\n        url: 'Link URL',\n        openInNewWindow: 'In neuem Fenster öffnen'\n      },\n      table: {\n        table: 'Tabelle',\n        addRowAbove: '+ Zeile oberhalb',\n        addRowBelow: '+ Zeile unterhalb',\n        addColLeft: '+ Spalte links',\n        addColRight: '+ Spalte rechts',\n        delRow: 'Reihe löschen',\n        delCol: 'Spalte löschen',\n        delTable: 'Tabelle löschen'\n      },\n      hr: {\n        insert: 'Horizontale Linie einfügen'\n      },\n      style: {\n        style: 'Stil',\n        normal: 'Normal',\n        p: 'Normal',\n        blockquote: 'Zitat',\n        pre: 'Quellcode',\n        h1: 'Überschrift 1',\n        h2: 'Überschrift 2',\n        h3: 'Überschrift 3',\n        h4: 'Überschrift 4',\n        h5: 'Überschrift 5',\n        h6: 'Überschrift 6'\n      },\n      lists: {\n        unordered: 'Unnummerierte Liste',\n        ordered: 'Nummerierte Liste'\n      },\n      options: {\n        help: 'Hilfe',\n        fullscreen: 'Vollbild',\n        codeview: 'Quellcode anzeigen'\n      },\n      paragraph: {\n        paragraph: 'Absatz',\n        outdent: 'Einzug verkleinern',\n        indent: 'Einzug vergrößern',\n        left: 'Links ausrichten',\n        center: 'Zentriert ausrichten',\n        right: 'Rechts ausrichten',\n        justify: 'Blocksatz'\n      },\n      color: {\n        recent: 'Letzte Farbe',\n        more: 'Weitere Farben',\n        background: 'Hintergrundfarbe',\n        foreground: 'Schriftfarbe',\n        transparent: 'Transparenz',\n        setTransparent: 'Transparenz setzen',\n        reset: 'Zurücksetzen',\n        resetToDefault: 'Auf Standard zurücksetzen'\n      },\n      shortcut: {\n        shortcuts: 'Tastenkürzel',\n        close: 'Schließen',\n        textFormatting: 'Textformatierung',\n        action: 'Aktion',\n        paragraphFormatting: 'Absatzformatierung',\n        documentStyle: 'Dokumentenstil',\n        extraKeys: 'Weitere Tasten'\n      },\n      help: {\n        'insertParagraph': 'Absatz einfügen',\n        'undo': 'Letzte Anweisung rückgängig',\n        'redo': 'Letzte Anweisung wiederholen',\n        'tab': 'Einzug hinzufügen',\n        'untab': 'Einzug entfernen',\n        'bold': 'Schrift Fett',\n        'italic': 'Schrift Kursiv',\n        'underline': 'Unterstreichen',\n        'strikethrough': 'Durchstreichen',\n        'removeFormat': 'Entfernt Format',\n        'justifyLeft': 'Linksbündig',\n        'justifyCenter': 'Mittig',\n        'justifyRight': 'Rechtsbündig',\n        'justifyFull': 'Blocksatz',\n        'insertUnorderedList': 'Unnummerierte Liste',\n        'insertOrderedList': 'Nummerierte Liste',\n        'outdent': 'Aktuellen Absatz ausrücken',\n        'indent': 'Aktuellen Absatz einrücken',\n        'formatPara': 'Formatiert aktuellen Block als Absatz (P-Tag)',\n        'formatH1': 'Formatiert aktuellen Block als H1',\n        'formatH2': 'Formatiert aktuellen Block als H2',\n        'formatH3': 'Formatiert aktuellen Block als H3',\n        'formatH4': 'Formatiert aktuellen Block als H4',\n        'formatH5': 'Formatiert aktuellen Block als H5',\n        'formatH6': 'Formatiert aktuellen Block als H6',\n        'insertHorizontalRule': 'Fügt eine horizontale Linie ein',\n        'linkDialog.show': 'Zeigt Linkdialog'\n      },\n      history: {\n        undo: 'Rückgängig',\n        redo: 'Wiederholen'\n      },\n      specialChar: {\n        specialChar: 'Sonderzeichen',\n        select: 'Zeichen auswählen'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-de-DE.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-el-GR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 14);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 14:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'el-GR': {\n      font: {\n        bold: 'Έντονα',\n        italic: 'Πλάγια',\n        underline: 'Υπογραμμισμένα',\n        clear: 'Καθαρισμός',\n        height: 'Ύψος',\n        name: 'Γραμματοσειρά',\n        strikethrough: 'Διεγραμμένα',\n        subscript: 'Δείκτης',\n        superscript: 'Εκθέτης',\n        size: 'Μέγεθος',\n        sizeunit: 'Μονάδα μεγέθους'\n      },\n      image: {\n        image: 'Εικόνα',\n        insert: 'Εισαγωγή',\n        resizeFull: 'Πλήρες μέγεθος',\n        resizeHalf: 'Μισό μέγεθος',\n        resizeQuarter: '1/4 μέγεθος',\n        resizeNone: 'Αρχικό μέγεθος',\n        floatLeft: 'Μετατόπιση αριστερά',\n        floatRight: 'Μετατόπιση δεξιά',\n        floatNone: 'Χωρίς μετατόπιση',\n        shapeRounded: 'Σχήμα: Στρογγυλεμένο',\n        shapeCircle: 'Σχήμα: Κύκλος',\n        shapeThumbnail: 'Σχήμα: Μικρογραφία',\n        shapeNone: 'Σχήμα: Κανένα',\n        dragImageHere: 'Σύρτε την εικόνα εδώ',\n        dropImage: 'Αφήστε την εικόνα',\n        selectFromFiles: 'Επιλογή από αρχεία',\n        maximumFileSize: 'Μέγιστο μέγεθος αρχείου',\n        maximumFileSizeError: 'Το μέγεθος είναι μεγαλύτερο από το μέγιστο επιτρεπτό.',\n        url: 'URL',\n        remove: 'Αφαίρεση',\n        original: 'Αρχικό'\n      },\n      link: {\n        link: 'Σύνδεσμος',\n        insert: 'Εισαγωγή συνδέσμου',\n        unlink: 'Αφαίρεση συνδέσμου',\n        edit: 'Επεξεργασία συνδέσμου',\n        textToDisplay: 'Κείμενο συνδέσμου',\n        url: 'Σε ποιo URL πρέπει να πηγαίνει αυτός ο σύνδεσμος;',\n        openInNewWindow: 'Άνοιγμα σε νέο παράθυρο',\n        useProtocol: 'Χρήση προεπιλεγμένου πρωτοκόλλου'\n      },\n      video: {\n        video: 'Βίντεο',\n        videoLink: 'Σύνδεσμος Βίντεο',\n        insert: 'Εισαγωγή',\n        url: 'URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ή Youku)'\n      },\n      table: {\n        table: 'Πίνακας',\n        addRowAbove: 'Προσθήκη γραμμής πάνω',\n        addRowBelow: 'Προσθήκη γραμμής κάτω',\n        addColLeft: 'Προσθήκη στήλης αριστερά',\n        addColRight: 'Προσθήκη στήλης δεξία',\n        delRow: 'Διαγραφή γραμμής',\n        delCol: 'Διαγραφή στήλης',\n        delTable: 'Διαγραφή πίνακα'\n      },\n      hr: {\n        insert: 'Εισαγωγή οριζόντιας γραμμής'\n      },\n      style: {\n        style: 'Στυλ',\n        normal: 'Κανονικό',\n        blockquote: 'Παράθεση',\n        pre: 'Ως έχει',\n        h1: 'Κεφαλίδα 1',\n        h2: 'Κεφαλίδα 2',\n        h3: 'Κεφαλίδα 3',\n        h4: 'Κεφαλίδα 4',\n        h5: 'Κεφαλίδα 5',\n        h6: 'Κεφαλίδα 6'\n      },\n      lists: {\n        unordered: 'Αταξινόμητη λίστα',\n        ordered: 'Ταξινομημένη λίστα'\n      },\n      options: {\n        help: 'Βοήθεια',\n        fullscreen: 'Πλήρης οθόνη',\n        codeview: 'Προβολή HTML'\n      },\n      paragraph: {\n        paragraph: 'Παράγραφος',\n        outdent: 'Μείωση εσοχής',\n        indent: 'Άυξηση εσοχής',\n        left: 'Αριστερή στοίχιση',\n        center: 'Στοίχιση στο κέντρο',\n        right: 'Δεξιά στοίχιση',\n        justify: 'Πλήρης στοίχιση'\n      },\n      color: {\n        recent: 'Πρόσφατη επιλογή',\n        more: 'Περισσότερα',\n        background: 'Υπόβαθρο',\n        foreground: 'Μπροστά',\n        transparent: 'Διαφανές',\n        setTransparent: 'Επιλογή διαφάνειας',\n        reset: 'Επαναφορά',\n        resetToDefault: 'Επαναφορά στις προκαθορισμένες τιμές',\n        cpSelect: 'Επιλογή'\n      },\n      shortcut: {\n        shortcuts: 'Συντομεύσεις',\n        close: 'Κλείσιμο',\n        textFormatting: 'Διαμόρφωση κειμένου',\n        action: 'Ενέργεια',\n        paragraphFormatting: 'Διαμόρφωση παραγράφου',\n        documentStyle: 'Στυλ κειμένου',\n        extraKeys: 'Επιπλέον συντομεύσεις'\n      },\n      help: {\n        'escape': 'Έξοδος',\n        'insertParagraph': 'Εισαγωγή παραγράφου',\n        'undo': 'Αναιρεί την προηγούμενη εντολή',\n        'redo': 'Επαναλαμβάνει την προηγούμενη εντολή',\n        'tab': 'Εσοχή',\n        'untab': 'Αναίρεση εσοχής',\n        'bold': 'Ορισμός έντονου στυλ',\n        'italic': 'Ορισμός πλάγιου στυλ',\n        'underline': 'Ορισμός υπογεγραμμένου στυλ',\n        'strikethrough': 'Ορισμός διεγραμμένου στυλ',\n        'removeFormat': 'Αφαίρεση στυλ',\n        'justifyLeft': 'Ορισμός αριστερής στοίχισης',\n        'justifyCenter': 'Ορισμός κεντρικής στοίχισης',\n        'justifyRight': 'Ορισμός δεξιάς στοίχισης',\n        'justifyFull': 'Ορισμός πλήρους στοίχισης',\n        'insertUnorderedList': 'Ορισμός μη-ταξινομημένης λίστας',\n        'insertOrderedList': 'Ορισμός ταξινομημένης λίστας',\n        'outdent': 'Προεξοχή παραγράφου',\n        'indent': 'Εσοχή παραγράφου',\n        'formatPara': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε παράγραφο (P tag)',\n        'formatH1': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H1',\n        'formatH2': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H2',\n        'formatH3': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H3',\n        'formatH4': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H4',\n        'formatH5': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H5',\n        'formatH6': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H6',\n        'insertHorizontalRule': 'Εισαγωγή οριζόντιας γραμμής',\n        'linkDialog.show': 'Εμφάνιση διαλόγου συνδέσμου'\n      },\n      history: {\n        undo: 'Αναίρεση',\n        redo: 'Επαναληψη'\n      },\n      specialChar: {\n        specialChar: 'ΕΙΔΙΚΟΙ ΧΑΡΑΚΤΗΡΕΣ',\n        select: 'Επιλέξτε ειδικούς χαρακτήρες'\n      },\n      output: {\n        noSelection: 'Δεν έγινε επιλογή!'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-el-GR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-es-ES.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 15);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 15:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'es-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subrayado',\n        clear: 'Eliminar estilo de letra',\n        height: 'Altura de línea',\n        name: 'Tipo de letra',\n        strikethrough: 'Tachado',\n        subscript: 'Subíndice',\n        superscript: 'Superíndice',\n        size: 'Tamaño de la fuente',\n        sizeunit: 'Unidad del tamaño de letra'\n      },\n      image: {\n        image: 'Imagen',\n        insert: 'Insertar imagen',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar a la mitad',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        resizeNone: 'Tamaño original',\n        floatLeft: 'Flotar a la izquierda',\n        floatRight: 'Flotar a la derecha',\n        floatNone: 'No flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Miniatura',\n        shapeNone: 'Forma: Ninguna',\n        dragImageHere: 'Arrastre una imagen o texto aquí',\n        dropImage: 'Suelte una imagen o texto',\n        selectFromFiles: 'Seleccione un fichero',\n        maximumFileSize: 'Tamaño máximo del fichero',\n        maximumFileSizeError: 'Superado el tamaño máximo de fichero.',\n        url: 'URL de la imagen',\n        remove: 'Eliminar la imagen',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Enlace del vídeo',\n        insert: 'Insertar un vídeo',\n        url: 'URL del vídeo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Enlace',\n        insert: 'Insertar un enlace',\n        unlink: 'Quitar el enlace',\n        edit: 'Editar',\n        textToDisplay: 'Texto a mostrar',\n        url: '¿A qué URL lleva este enlace?',\n        openInNewWindow: 'Abrir en una nueva ventana',\n        useProtocol: 'Usar el protocolo predefinido'\n      },\n      table: {\n        table: 'Tabla',\n        addRowAbove: 'Añadir una fila encima',\n        addRowBelow: 'Añadir una fila debajo',\n        addColLeft: 'Añadir una columna a la izquierda',\n        addColRight: 'Añadir una columna a la derecha',\n        delRow: 'Borrar la fila',\n        delCol: 'Borrar la columna',\n        delTable: 'Borrar la tabla'\n      },\n      hr: {\n        insert: 'Insertar una línea horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'Normal',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ayuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver el código fuente'\n      },\n      paragraph: {\n        paragraph: 'Párrafo',\n        outdent: 'Reducir la sangría',\n        indent: 'Aumentar la sangría',\n        left: 'Alinear a la izquierda',\n        center: 'Centrar',\n        right: 'Alinear a la derecha',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Último color',\n        more: 'Más colores',\n        background: 'Color de fondo',\n        foreground: 'Color del texto',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restablecer',\n        resetToDefault: 'Restablecer a los valores predefinidos',\n        cpSelect: 'Seleccionar'\n      },\n      shortcut: {\n        shortcuts: 'Atajos de teclado',\n        close: 'Cerrar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de párrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionales'\n      },\n      help: {\n        insertParagraph: 'Insertar un párrafo',\n        undo: 'Deshacer la última acción',\n        redo: 'Rehacer la última acción',\n        tab: 'Tabular',\n        untab: 'Eliminar tabulación',\n        bold: 'Establecer estilo negrita',\n        italic: 'Establecer estilo cursiva',\n        underline: 'Establecer estilo subrayado',\n        strikethrough: 'Establecer estilo tachado',\n        removeFormat: 'Limpiar estilo',\n        justifyLeft: 'Alinear a la izquierda',\n        justifyCenter: 'Alinear al centro',\n        justifyRight: 'Alinear a la derecha',\n        justifyFull: 'Justificar',\n        insertUnorderedList: 'Insertar lista',\n        insertOrderedList: 'Insertar lista numerada',\n        outdent: 'Reducir sangría del párrafo',\n        indent: 'Aumentar sangría del párrafo',\n        formatPara: 'Cambiar el formato del bloque actual a párrafo (etiqueta P)',\n        formatH1: 'Cambiar el formato del bloque actual a H1',\n        formatH2: 'Cambiar el formato del bloque actual a H2',\n        formatH3: 'Cambiar el formato del bloque actual a H3',\n        formatH4: 'Cambiar el formato del bloque actual a H4',\n        formatH5: 'Cambiar el formato del bloque actual a H5',\n        formatH6: 'Cambiar el formato del bloque actual a H6',\n        insertHorizontalRule: 'Insertar una línea horizontal',\n        'linkDialog.show': 'Mostrar el panel de enlaces'\n      },\n      history: {\n        undo: 'Deshacer',\n        redo: 'Rehacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIALES',\n        select: 'Seleccionar caracteres especiales'\n      },\n      output: {\n        noSelection: '¡No ha seleccionado nada!'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-es-ES.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-es-EU.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 16);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'es-EU': {\n      font: {\n        bold: 'Lodia',\n        italic: 'Etzana',\n        underline: 'Azpimarratua',\n        clear: 'Estiloa kendu',\n        height: 'Lerro altuera',\n        name: 'Tipografia',\n        strikethrough: 'Marratua',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Letren neurria'\n      },\n      image: {\n        image: 'Irudia',\n        insert: 'Irudi bat txertatu',\n        resizeFull: 'Jatorrizko neurrira aldatu',\n        resizeHalf: 'Neurria erdira aldatu',\n        resizeQuarter: 'Neurria laurdenera aldatu',\n        floatLeft: 'Ezkerrean kokatu',\n        floatRight: 'Eskuinean kokatu',\n        floatNone: 'Kokapenik ez ezarri',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Irudi bat ezarri hemen',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Zure fitxategi bat aukeratu',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Irudiaren URL helbidea',\n        remove: 'Remove Image',\n        original: 'Original'\n      },\n      video: {\n        video: 'Bideoa',\n        videoLink: 'Bideorako esteka',\n        insert: 'Bideo berri bat txertatu',\n        url: 'Bideoaren URL helbidea',\n        providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)'\n      },\n      link: {\n        link: 'Esteka',\n        insert: 'Esteka bat txertatu',\n        unlink: 'Esteka ezabatu',\n        edit: 'Editatu',\n        textToDisplay: 'Estekaren testua',\n        url: 'Estekaren URL helbidea',\n        openInNewWindow: 'Leiho berri batean ireki'\n      },\n      table: {\n        table: 'Taula',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Marra horizontala txertatu'\n      },\n      style: {\n        style: 'Estiloa',\n        p: 'p',\n        blockquote: 'Aipamena',\n        pre: 'Kodea',\n        h1: '1. izenburua',\n        h2: '2. izenburua',\n        h3: '3. izenburua',\n        h4: '4. izenburua',\n        h5: '5. izenburua',\n        h6: '6. izenburua'\n      },\n      lists: {\n        unordered: 'Ordenatu gabeko zerrenda',\n        ordered: 'Zerrenda ordenatua'\n      },\n      options: {\n        help: 'Laguntza',\n        fullscreen: 'Pantaila osoa',\n        codeview: 'Kodea ikusi'\n      },\n      paragraph: {\n        paragraph: 'Paragrafoa',\n        outdent: 'Koska txikiagoa',\n        indent: 'Koska handiagoa',\n        left: 'Ezkerrean kokatu',\n        center: 'Erdian kokatu',\n        right: 'Eskuinean kokatu',\n        justify: 'Justifikatu'\n      },\n      color: {\n        recent: 'Azken kolorea',\n        more: 'Kolore gehiago',\n        background: 'Atzeko planoa',\n        foreground: 'Aurreko planoa',\n        transparent: 'Gardena',\n        setTransparent: 'Gardendu',\n        reset: 'Lehengoratu',\n        resetToDefault: 'Berrezarri lehenetsia'\n      },\n      shortcut: {\n        shortcuts: 'Lasterbideak',\n        close: 'Itxi',\n        textFormatting: 'Testuaren formatua',\n        action: 'Ekintza',\n        paragraphFormatting: 'Paragrafoaren formatua',\n        documentStyle: 'Dokumentuaren estiloa'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Desegin',\n        redo: 'Berregin'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-es-EU.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fa-IR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 17);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 17:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'fa-IR': {\n      font: {\n        bold: 'درشت',\n        italic: 'خمیده',\n        underline: 'میان خط',\n        clear: 'پاک کردن فرمت فونت',\n        height: 'فاصله ی خطی',\n        name: 'اسم فونت',\n        strikethrough: 'Strike',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'اندازه ی فونت'\n      },\n      image: {\n        image: 'تصویر',\n        insert: 'وارد کردن تصویر',\n        resizeFull: 'تغییر به اندازه ی کامل',\n        resizeHalf: 'تغییر به اندازه نصف',\n        resizeQuarter: 'تغییر به اندازه یک چهارم',\n        floatLeft: 'چسباندن به چپ',\n        floatRight: 'چسباندن به راست',\n        floatNone: 'بدون چسبندگی',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'یک تصویر را اینجا بکشید',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'فایل ها را انتخاب کنید',\n        maximumFileSize: 'حداکثر اندازه پرونده',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'آدرس تصویر',\n        remove: 'حذف تصویر',\n        original: 'Original'\n      },\n      video: {\n        video: 'ویدیو',\n        videoLink: 'لینک ویدیو',\n        insert: 'افزودن ویدیو',\n        url: 'آدرس ویدیو ؟',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)'\n      },\n      link: {\n        link: 'لینک',\n        insert: 'اضافه کردن لینک',\n        unlink: 'حذف لینک',\n        edit: 'ویرایش',\n        textToDisplay: 'متن جهت نمایش',\n        url: 'این لینک به چه آدرسی باید برود ؟',\n        openInNewWindow: 'در یک پنجره ی جدید باز شود'\n      },\n      table: {\n        table: 'جدول',\n        addRowAbove: 'افزودن ردیف بالا',\n        addRowBelow: 'افزودن ردیف پایین',\n        addColLeft: 'افزودن ستون چپ',\n        addColRight: 'افزودن ستون راست',\n        delRow: 'حذف ردیف',\n        delCol: 'حذف ستون',\n        delTable: 'حذف جدول'\n      },\n      hr: {\n        insert: 'افزودن خط افقی'\n      },\n      style: {\n        style: 'استیل',\n        p: 'نرمال',\n        blockquote: 'نقل قول',\n        pre: 'کد',\n        h1: 'سرتیتر 1',\n        h2: 'سرتیتر 2',\n        h3: 'سرتیتر 3',\n        h4: 'سرتیتر 4',\n        h5: 'سرتیتر 5',\n        h6: 'سرتیتر 6'\n      },\n      lists: {\n        unordered: 'لیست غیر ترتیبی',\n        ordered: 'لیست ترتیبی'\n      },\n      options: {\n        help: 'راهنما',\n        fullscreen: 'نمایش تمام صفحه',\n        codeview: 'مشاهده ی کد'\n      },\n      paragraph: {\n        paragraph: 'پاراگراف',\n        outdent: 'کاهش تو رفتگی',\n        indent: 'افزایش تو رفتگی',\n        left: 'چپ چین',\n        center: 'میان چین',\n        right: 'راست چین',\n        justify: 'بلوک چین'\n      },\n      color: {\n        recent: 'رنگ اخیرا استفاده شده',\n        more: 'رنگ بیشتر',\n        background: 'رنگ پس زمینه',\n        foreground: 'رنگ متن',\n        transparent: 'بی رنگ',\n        setTransparent: 'تنظیم حالت بی رنگ',\n        reset: 'بازنشاندن',\n        resetToDefault: 'حالت پیش فرض'\n      },\n      shortcut: {\n        shortcuts: 'دکمه های میان بر',\n        close: 'بستن',\n        textFormatting: 'فرمت متن',\n        action: 'عملیات',\n        paragraphFormatting: 'فرمت پاراگراف',\n        documentStyle: 'استیل سند',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'افزودن پاراگراف',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'چپ چین',\n        'justifyCenter': 'وسط چین',\n        'justifyRight': 'راست چین',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'واچیدن',\n        redo: 'بازچیدن'\n      },\n      specialChar: {\n        specialChar: 'کاراکتر خاص',\n        select: 'انتخاب کاراکتر خاص'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fa-IR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fi-FI.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 18);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 18:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'fi-FI': {\n      font: {\n        bold: 'Lihavointi',\n        italic: 'Kursivointi',\n        underline: 'Alleviivaus',\n        clear: 'Tyhjennä muotoilu',\n        height: 'Riviväli',\n        name: 'Kirjasintyyppi',\n        strikethrough: 'Yliviivaus',\n        subscript: 'Alaindeksi',\n        superscript: 'Yläindeksi',\n        size: 'Kirjasinkoko'\n      },\n      image: {\n        image: 'Kuva',\n        insert: 'Lisää kuva',\n        resizeFull: 'Koko leveys',\n        resizeHalf: 'Puolikas leveys',\n        resizeQuarter: 'Neljäsosa leveys',\n        floatLeft: 'Sijoita vasemmalle',\n        floatRight: 'Sijoita oikealle',\n        floatNone: 'Ei sijoitusta',\n        shapeRounded: 'Muoto: Pyöristetty',\n        shapeCircle: 'Muoto: Ympyrä',\n        shapeThumbnail: 'Muoto: Esikatselukuva',\n        shapeNone: 'Muoto: Ei muotoilua',\n        dragImageHere: 'Vedä kuva tähän',\n        selectFromFiles: 'Valitse tiedostoista',\n        maximumFileSize: 'Maksimi tiedosto koko',\n        maximumFileSizeError: 'Maksimi tiedosto koko ylitetty.',\n        url: 'URL-osoitteen mukaan',\n        remove: 'Poista kuva',\n        original: 'Alkuperäinen'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Linkki videoon',\n        insert: 'Lisää video',\n        url: 'Videon URL-osoite',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)'\n      },\n      link: {\n        link: 'Linkki',\n        insert: 'Lisää linkki',\n        unlink: 'Poista linkki',\n        edit: 'Muokkaa',\n        textToDisplay: 'Näytettävä teksti',\n        url: 'Linkin URL-osoite',\n        openInNewWindow: 'Avaa uudessa ikkunassa'\n      },\n      table: {\n        table: 'Taulukko',\n        addRowAbove: 'Lisää rivi yläpuolelle',\n        addRowBelow: 'Lisää rivi alapuolelle',\n        addColLeft: 'Lisää sarake vasemmalle puolelle',\n        addColRight: 'Lisää sarake oikealle puolelle',\n        delRow: 'Poista rivi',\n        delCol: 'Poista sarake',\n        delTable: 'Poista taulukko'\n      },\n      hr: {\n        insert: 'Lisää vaakaviiva'\n      },\n      style: {\n        style: 'Tyyli',\n        p: 'Normaali',\n        blockquote: 'Lainaus',\n        pre: 'Koodi',\n        h1: 'Otsikko 1',\n        h2: 'Otsikko 2',\n        h3: 'Otsikko 3',\n        h4: 'Otsikko 4',\n        h5: 'Otsikko 5',\n        h6: 'Otsikko 6'\n      },\n      lists: {\n        unordered: 'Luettelomerkitty luettelo',\n        ordered: 'Numeroitu luettelo'\n      },\n      options: {\n        help: 'Ohje',\n        fullscreen: 'Koko näyttö',\n        codeview: 'HTML-näkymä'\n      },\n      paragraph: {\n        paragraph: 'Kappale',\n        outdent: 'Pienennä sisennystä',\n        indent: 'Suurenna sisennystä',\n        left: 'Tasaa vasemmalle',\n        center: 'Keskitä',\n        right: 'Tasaa oikealle',\n        justify: 'Tasaa'\n      },\n      color: {\n        recent: 'Viimeisin väri',\n        more: 'Lisää värejä',\n        background: 'Korostusväri',\n        foreground: 'Tekstin väri',\n        transparent: 'Läpinäkyvä',\n        setTransparent: 'Aseta läpinäkyväksi',\n        reset: 'Palauta',\n        resetToDefault: 'Palauta oletusarvoksi'\n      },\n      shortcut: {\n        shortcuts: 'Pikanäppäimet',\n        close: 'Sulje',\n        textFormatting: 'Tekstin muotoilu',\n        action: 'Toiminto',\n        paragraphFormatting: 'Kappaleen muotoilu',\n        documentStyle: 'Asiakirjan tyyli'\n      },\n      help: {\n        'insertParagraph': 'Lisää kappale',\n        'undo': 'Kumoa viimeisin komento',\n        'redo': 'Tee uudelleen kumottu komento',\n        'tab': 'Sarkain',\n        'untab': 'Sarkainmerkin poisto',\n        'bold': 'Lihavointi',\n        'italic': 'Kursiivi',\n        'underline': 'Alleviivaus',\n        'strikethrough': 'Yliviivaus',\n        'removeFormat': 'Poista asetetut tyylit',\n        'justifyLeft': 'Tasaa vasemmalle',\n        'justifyCenter': 'Keskitä',\n        'justifyRight': 'Tasaa oikealle',\n        'justifyFull': 'Tasaa',\n        'insertUnorderedList': 'Luettelomerkillä varustettu lista',\n        'insertOrderedList': 'Numeroitu lista',\n        'outdent': 'Pienennä sisennystä',\n        'indent': 'Suurenna sisennystä',\n        'formatPara': 'Muuta kappaleen formaatti p',\n        'formatH1': 'Muuta kappaleen formaatti H1',\n        'formatH2': 'Muuta kappaleen formaatti H2',\n        'formatH3': 'Muuta kappaleen formaatti H3',\n        'formatH4': 'Muuta kappaleen formaatti H4',\n        'formatH5': 'Muuta kappaleen formaatti H5',\n        'formatH6': 'Muuta kappaleen formaatti H6',\n        'insertHorizontalRule': 'Lisää vaakaviiva',\n        'linkDialog.show': 'Lisää linkki'\n      },\n      history: {\n        undo: 'Kumoa',\n        redo: 'Toista'\n      },\n      specialChar: {\n        specialChar: 'ERIKOISMERKIT',\n        select: 'Valitse erikoismerkit'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fi-FI.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fr-FR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 19);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 19:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'fr-FR': {\n      font: {\n        bold: 'Gras',\n        italic: 'Italique',\n        underline: 'Souligné',\n        clear: 'Effacer la mise en forme',\n        height: 'Interligne',\n        name: 'Famille de police',\n        strikethrough: 'Barré',\n        superscript: 'Exposant',\n        subscript: 'Indice',\n        size: 'Taille de police'\n      },\n      image: {\n        image: 'Image',\n        insert: 'Insérer une image',\n        resizeFull: 'Taille originale',\n        resizeHalf: 'Redimensionner à 50 %',\n        resizeQuarter: 'Redimensionner à 25 %',\n        floatLeft: 'Aligné à gauche',\n        floatRight: 'Aligné à droite',\n        floatNone: 'Pas d\\'alignement',\n        shapeRounded: 'Forme: Rectangle arrondi',\n        shapeCircle: 'Forme: Cercle',\n        shapeThumbnail: 'Forme: Vignette',\n        shapeNone: 'Forme: Aucune',\n        dragImageHere: 'Faites glisser une image ou un texte dans ce cadre',\n        dropImage: 'Lachez l\\'image ou le texte',\n        selectFromFiles: 'Choisir un fichier',\n        maximumFileSize: 'Taille de fichier maximale',\n        maximumFileSizeError: 'Taille maximale du fichier dépassée',\n        url: 'URL de l\\'image',\n        remove: 'Supprimer l\\'image',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vidéo',\n        videoLink: 'Lien vidéo',\n        insert: 'Insérer une vidéo',\n        url: 'URL de la vidéo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Lien',\n        insert: 'Insérer un lien',\n        unlink: 'Supprimer un lien',\n        edit: 'Modifier',\n        textToDisplay: 'Texte à afficher',\n        url: 'URL du lien',\n        openInNewWindow: 'Ouvrir dans une nouvelle fenêtre'\n      },\n      table: {\n        table: 'Tableau',\n        addRowAbove: 'Ajouter une ligne au-dessus',\n        addRowBelow: 'Ajouter une ligne en dessous',\n        addColLeft: 'Ajouter une colonne à gauche',\n        addColRight: 'Ajouter une colonne à droite',\n        delRow: 'Supprimer la ligne',\n        delCol: 'Supprimer la colonne',\n        delTable: 'Supprimer le tableau'\n      },\n      hr: {\n        insert: 'Insérer une ligne horizontale'\n      },\n      style: {\n        style: 'Style',\n        p: 'Normal',\n        blockquote: 'Citation',\n        pre: 'Code source',\n        h1: 'Titre 1',\n        h2: 'Titre 2',\n        h3: 'Titre 3',\n        h4: 'Titre 4',\n        h5: 'Titre 5',\n        h6: 'Titre 6'\n      },\n      lists: {\n        unordered: 'Liste à puces',\n        ordered: 'Liste numérotée'\n      },\n      options: {\n        help: 'Aide',\n        fullscreen: 'Plein écran',\n        codeview: 'Afficher le code HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraphe',\n        outdent: 'Diminuer le retrait',\n        indent: 'Augmenter le retrait',\n        left: 'Aligner à gauche',\n        center: 'Centrer',\n        right: 'Aligner à droite',\n        justify: 'Justifier'\n      },\n      color: {\n        recent: 'Dernière couleur sélectionnée',\n        more: 'Plus de couleurs',\n        background: 'Couleur de fond',\n        foreground: 'Couleur de police',\n        transparent: 'Transparent',\n        setTransparent: 'Définir la transparence',\n        reset: 'Restaurer',\n        resetToDefault: 'Restaurer la couleur par défaut'\n      },\n      shortcut: {\n        shortcuts: 'Raccourcis',\n        close: 'Fermer',\n        textFormatting: 'Mise en forme du texte',\n        action: 'Action',\n        paragraphFormatting: 'Mise en forme des paragraphes',\n        documentStyle: 'Style du document',\n        extraKeys: 'Touches supplémentaires'\n      },\n      help: {\n        'insertParagraph': 'Insérer paragraphe',\n        'undo': 'Défaire la dernière commande',\n        'redo': 'Refaire la dernière commande',\n        'tab': 'Tabulation',\n        'untab': 'Tabulation arrière',\n        'bold': 'Mettre en caractère gras',\n        'italic': 'Mettre en italique',\n        'underline': 'Mettre en souligné',\n        'strikethrough': 'Mettre en texte barré',\n        'removeFormat': 'Nettoyer les styles',\n        'justifyLeft': 'Aligner à gauche',\n        'justifyCenter': 'Centrer',\n        'justifyRight': 'Aligner à droite',\n        'justifyFull': 'Justifier à gauche et à droite',\n        'insertUnorderedList': 'Basculer liste à puces',\n        'insertOrderedList': 'Basculer liste ordonnée',\n        'outdent': 'Diminuer le retrait du paragraphe',\n        'indent': 'Augmenter le retrait du paragraphe',\n        'formatPara': 'Changer le paragraphe en cours en normal (P)',\n        'formatH1': 'Changer le paragraphe en cours en entête H1',\n        'formatH2': 'Changer le paragraphe en cours en entête H2',\n        'formatH3': 'Changer le paragraphe en cours en entête H3',\n        'formatH4': 'Changer le paragraphe en cours en entête H4',\n        'formatH5': 'Changer le paragraphe en cours en entête H5',\n        'formatH6': 'Changer le paragraphe en cours en entête H6',\n        'insertHorizontalRule': 'Insérer séparation horizontale',\n        'linkDialog.show': 'Afficher fenêtre d\\'hyperlien'\n      },\n      history: {\n        undo: 'Annuler la dernière action',\n        redo: 'Restaurer la dernière action annulée'\n      },\n      specialChar: {\n        specialChar: 'Caractères spéciaux',\n        select: 'Choisir des caractères spéciaux'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-fr-FR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-gl-ES.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 20:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'gl-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subliñado',\n        clear: 'Quitar estilo de fonte',\n        height: 'Altura de liña',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        superscript: 'Superíndice',\n        subscript: 'Subíndice',\n        size: 'Tamaño da fonte'\n      },\n      image: {\n        image: 'Imaxe',\n        insert: 'Inserir imaxe',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar á metade',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        floatLeft: 'Flotar á esquerda',\n        floatRight: 'Flotar á dereita',\n        floatNone: 'Non flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Marco',\n        shapeNone: 'Forma: Ningunha',\n        dragImageHere: 'Arrastrar unha imaxe ou texto aquí',\n        dropImage: 'Solta a imaxe ou texto',\n        selectFromFiles: 'Seleccionar desde os arquivos',\n        maximumFileSize: 'Tamaño máximo do arquivo',\n        maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.',\n        url: 'URL da imaxe',\n        remove: 'Eliminar imaxe',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Ligazón do vídeo',\n        insert: 'Insertar vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)'\n      },\n      link: {\n        link: 'Ligazón',\n        insert: 'Inserir Ligazón',\n        unlink: 'Quitar Ligazón',\n        edit: 'Editar',\n        textToDisplay: 'Texto para amosar',\n        url: 'Cara a que URL leva a ligazón?',\n        openInNewWindow: 'Abrir nunha nova xanela'\n      },\n      table: {\n        table: 'Táboa',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Inserir liña horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'Normal',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista desordenada',\n        ordered: 'Lista ordenada'\n      },\n      options: {\n        help: 'Axuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver código fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menos tabulación',\n        indent: 'Máis tabulación',\n        left: 'Aliñar á esquerda',\n        center: 'Aliñar ao centro',\n        right: 'Aliñar á dereita',\n        justify: 'Xustificar'\n      },\n      color: {\n        recent: 'Última cor',\n        more: 'Máis cores',\n        background: 'Cor de fondo',\n        foreground: 'Cor de fuente',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar por defecto'\n      },\n      shortcut: {\n        shortcuts: 'Atallos de teclado',\n        close: 'Pechar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de parágrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionais'\n      },\n      help: {\n        'insertParagraph': 'Inserir parágrafo',\n        'undo': 'Desfacer última acción',\n        'redo': 'Refacer última acción',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulación',\n        'bold': 'Establecer estilo negrita',\n        'italic': 'Establecer estilo cursiva',\n        'underline': 'Establecer estilo subliñado',\n        'strikethrough': 'Establecer estilo riscado',\n        'removeFormat': 'Limpar estilo',\n        'justifyLeft': 'Aliñar á esquerda',\n        'justifyCenter': 'Aliñar ao centro',\n        'justifyRight': 'Aliñar á dereita',\n        'justifyFull': 'Xustificar',\n        'insertUnorderedList': 'Inserir lista desordenada',\n        'insertOrderedList': 'Inserir lista ordenada',\n        'outdent': 'Reducir tabulación do parágrafo',\n        'indent': 'Aumentar tabulación do parágrafo',\n        'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)',\n        'formatH1': 'Mudar estilo do bloque a H1',\n        'formatH2': 'Mudar estilo do bloque a H2',\n        'formatH3': 'Mudar estilo do bloque a H3',\n        'formatH4': 'Mudar estilo do bloque a H4',\n        'formatH5': 'Mudar estilo do bloque a H5',\n        'formatH6': 'Mudar estilo do bloque a H6',\n        'insertHorizontalRule': 'Inserir liña horizontal',\n        'linkDialog.show': 'Amosar panel ligazóns'\n      },\n      history: {\n        undo: 'Desfacer',\n        redo: 'Refacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIAIS',\n        select: 'Selecciona Caracteres especiais'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-gl-ES.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-he-IL.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 21);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'he-IL': {\n      font: {\n        bold: 'מודגש',\n        italic: 'נטוי',\n        underline: 'קו תחתון',\n        clear: 'נקה עיצוב',\n        height: 'גובה',\n        name: 'גופן',\n        strikethrough: 'קו חוצה',\n        subscript: 'כתב תחתי',\n        superscript: 'כתב עילי',\n        size: 'גודל גופן'\n      },\n      image: {\n        image: 'תמונה',\n        insert: 'הוסף תמונה',\n        resizeFull: 'גודל מלא',\n        resizeHalf: 'להקטין לחצי',\n        resizeQuarter: 'להקטין לרבע',\n        floatLeft: 'יישור לשמאל',\n        floatRight: 'יישור לימין',\n        floatNone: 'ישר',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'גרור תמונה לכאן',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'בחר מתוך קבצים',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'נתיב לתמונה',\n        remove: 'הסר תמונה',\n        original: 'Original'\n      },\n      video: {\n        video: 'סרטון',\n        videoLink: 'קישור לסרטון',\n        insert: 'הוסף סרטון',\n        url: 'קישור לסרטון',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)'\n      },\n      link: {\n        link: 'קישור',\n        insert: 'הוסף קישור',\n        unlink: 'הסר קישור',\n        edit: 'ערוך',\n        textToDisplay: 'טקסט להציג',\n        url: 'קישור',\n        openInNewWindow: 'פתח בחלון חדש'\n      },\n      table: {\n        table: 'טבלה',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'הוסף קו'\n      },\n      style: {\n        style: 'עיצוב',\n        p: 'טקסט רגיל',\n        blockquote: 'ציטוט',\n        pre: 'קוד',\n        h1: 'כותרת 1',\n        h2: 'כותרת 2',\n        h3: 'כותרת 3',\n        h4: 'כותרת 4',\n        h5: 'כותרת 5',\n        h6: 'כותרת 6'\n      },\n      lists: {\n        unordered: 'רשימת תבליטים',\n        ordered: 'רשימה ממוספרת'\n      },\n      options: {\n        help: 'עזרה',\n        fullscreen: 'מסך מלא',\n        codeview: 'תצוגת קוד'\n      },\n      paragraph: {\n        paragraph: 'פסקה',\n        outdent: 'הקטן כניסה',\n        indent: 'הגדל כניסה',\n        left: 'יישור לשמאל',\n        center: 'יישור למרכז',\n        right: 'יישור לימין',\n        justify: 'מיושר'\n      },\n      color: {\n        recent: 'צבע טקסט אחרון',\n        more: 'עוד צבעים',\n        background: 'צבע רקע',\n        foreground: 'צבע טקסט',\n        transparent: 'שקוף',\n        setTransparent: 'קבע כשקוף',\n        reset: 'איפוס',\n        resetToDefault: 'אפס לברירת מחדל'\n      },\n      shortcut: {\n        shortcuts: 'קיצורי מקלדת',\n        close: 'סגור',\n        textFormatting: 'עיצוב הטקסט',\n        action: 'פעולה',\n        paragraphFormatting: 'סגנונות פסקה',\n        documentStyle: 'עיצוב המסמך',\n        extraKeys: 'קיצורים נוספים'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'בטל פעולה',\n        redo: 'בצע שוב'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-he-IL.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-hr-HR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 22);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 22:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'hr-HR': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        name: 'Font Family',\n        strikethrough: 'Precrtano',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Ubaci sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Poravnaj lijevo',\n        floatRight: 'Poravnaj desno',\n        floatNone: 'Bez poravnanja',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Povuci sliku ovdje',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Izaberi iz datoteke',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza na video',\n        insert: 'Ubaci video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Ubaci vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tablica',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Ubaci horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kôd',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerirana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko cijelog ekrana',\n        codeview: 'Izvorni kôd'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povećaj uvlačenje',\n        left: 'Poravnaj lijevo',\n        center: 'Centrirano',\n        right: 'Poravnaj desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Posljednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Prozirna',\n        setTransparent: 'Prozirna',\n        reset: 'Poništi',\n        resetToDefault: 'Podrazumijevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice s tipkovnice',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-hr-HR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-hu-HU.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 23);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'hu-HU': {\n      font: {\n        bold: 'Félkövér',\n        italic: 'Dőlt',\n        underline: 'Aláhúzott',\n        clear: 'Formázás törlése',\n        height: 'Sorköz',\n        name: 'Betűtípus',\n        strikethrough: 'Áthúzott',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Betűméret'\n      },\n      image: {\n        image: 'Kép',\n        insert: 'Kép beszúrása',\n        resizeFull: 'Átméretezés teljes méretre',\n        resizeHalf: 'Átméretezés felére',\n        resizeQuarter: 'Átméretezés negyedére',\n        floatLeft: 'Igazítás balra',\n        floatRight: 'Igazítás jobbra',\n        floatNone: 'Igazítás törlése',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Ide húzhat képet vagy szöveget',\n        dropImage: 'Engedje el a képet vagy szöveget',\n        selectFromFiles: 'Fájlok kiválasztása',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Kép URL címe',\n        remove: 'Kép törlése',\n        original: 'Original'\n      },\n      video: {\n        video: 'Videó',\n        videoLink: 'Videó hivatkozás',\n        insert: 'Videó beszúrása',\n        url: 'Videó URL címe',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)'\n      },\n      link: {\n        link: 'Hivatkozás',\n        insert: 'Hivatkozás beszúrása',\n        unlink: 'Hivatkozás megszüntetése',\n        edit: 'Szerkesztés',\n        textToDisplay: 'Megjelenítendő szöveg',\n        url: 'Milyen URL címre hivatkozzon?',\n        openInNewWindow: 'Megnyitás új ablakban'\n      },\n      table: {\n        table: 'Táblázat',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Elválasztó vonal beszúrása'\n      },\n      style: {\n        style: 'Stílus',\n        p: 'Normál',\n        blockquote: 'Idézet',\n        pre: 'Kód',\n        h1: 'Fejléc 1',\n        h2: 'Fejléc 2',\n        h3: 'Fejléc 3',\n        h4: 'Fejléc 4',\n        h5: 'Fejléc 5',\n        h6: 'Fejléc 6'\n      },\n      lists: {\n        unordered: 'Listajeles lista',\n        ordered: 'Számozott lista'\n      },\n      options: {\n        help: 'Súgó',\n        fullscreen: 'Teljes képernyő',\n        codeview: 'Kód nézet'\n      },\n      paragraph: {\n        paragraph: 'Bekezdés',\n        outdent: 'Behúzás csökkentése',\n        indent: 'Behúzás növelése',\n        left: 'Igazítás balra',\n        center: 'Igazítás középre',\n        right: 'Igazítás jobbra',\n        justify: 'Sorkizárt'\n      },\n      color: {\n        recent: 'Jelenlegi szín',\n        more: 'További színek',\n        background: 'Háttérszín',\n        foreground: 'Betűszín',\n        transparent: 'Átlátszó',\n        setTransparent: 'Átlászóság beállítása',\n        reset: 'Visszaállítás',\n        resetToDefault: 'Alaphelyzetbe állítás'\n      },\n      shortcut: {\n        shortcuts: 'Gyorsbillentyű',\n        close: 'Bezárás',\n        textFormatting: 'Szöveg formázása',\n        action: 'Művelet',\n        paragraphFormatting: 'Bekezdés formázása',\n        documentStyle: 'Dokumentumstílus',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Új bekezdés',\n        'undo': 'Visszavonás',\n        'redo': 'Újra',\n        'tab': 'Behúzás növelése',\n        'untab': 'Behúzás csökkentése',\n        'bold': 'Félkövérre állítás',\n        'italic': 'Dőltre állítás',\n        'underline': 'Aláhúzás',\n        'strikethrough': 'Áthúzás',\n        'removeFormat': 'Formázás törlése',\n        'justifyLeft': 'Balra igazítás',\n        'justifyCenter': 'Középre igazítás',\n        'justifyRight': 'Jobbra igazítás',\n        'justifyFull': 'Sorkizárt',\n        'insertUnorderedList': 'Számozatlan lista be/ki',\n        'insertOrderedList': 'Számozott lista be/ki',\n        'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése',\n        'indent': 'Jelenlegi bekezdés behúzása',\n        'formatPara': 'Blokk formázása bekezdésként (P tag)',\n        'formatH1': 'Blokk formázása, mint Fejléc 1',\n        'formatH2': 'Blokk formázása, mint Fejléc 2',\n        'formatH3': 'Blokk formázása, mint Fejléc 3',\n        'formatH4': 'Blokk formázása, mint Fejléc 4',\n        'formatH5': 'Blokk formázása, mint Fejléc 5',\n        'formatH6': 'Blokk formázása, mint Fejléc 6',\n        'insertHorizontalRule': 'Vízszintes vonal beszúrása',\n        'linkDialog.show': 'Link párbeszédablak megjelenítése'\n      },\n      history: {\n        undo: 'Visszavonás',\n        redo: 'Újra'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-hu-HU.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-id-ID.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 24);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'id-ID': {\n      font: {\n        bold: 'Tebal',\n        italic: 'Miring',\n        underline: 'Garis bawah',\n        clear: 'Bersihkan gaya',\n        height: 'Jarak baris',\n        name: 'Jenis Tulisan',\n        strikethrough: 'Coret',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Ukuran font'\n      },\n      image: {\n        image: 'Gambar',\n        insert: 'Sisipkan gambar',\n        resizeFull: 'Ukuran penuh',\n        resizeHalf: 'Ukuran 50%',\n        resizeQuarter: 'Ukuran 25%',\n        floatLeft: 'Rata kiri',\n        floatRight: 'Rata kanan',\n        floatNone: 'Tanpa perataan',\n        shapeRounded: 'Bentuk: Membundar',\n        shapeCircle: 'Bentuk: Bundar',\n        shapeThumbnail: 'Bentuk: Thumbnail',\n        shapeNone: 'Bentuk: Tidak ada',\n        dragImageHere: 'Tarik gambar ke area ini',\n        dropImage: 'Letakkan gambar atau teks',\n        selectFromFiles: 'Pilih gambar dari berkas',\n        maximumFileSize: 'Ukuran maksimal berkas',\n        maximumFileSizeError: 'Ukuran maksimal berkas terlampaui.',\n        url: 'URL gambar',\n        remove: 'Hapus Gambar',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Sisipkan video',\n        url: 'Tautan video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)'\n      },\n      link: {\n        link: 'Tautan',\n        insert: 'Tambah tautan',\n        unlink: 'Hapus tautan',\n        edit: 'Edit',\n        textToDisplay: 'Tampilan teks',\n        url: 'Tautan tujuan',\n        openInNewWindow: 'Buka di jendela baru'\n      },\n      table: {\n        table: 'Tabel',\n        addRowAbove: 'Tambahkan baris ke atas',\n        addRowBelow: 'Tambahkan baris ke bawah',\n        addColLeft: 'Tambahkan kolom ke kiri',\n        addColRight: 'Tambahkan kolom ke kanan',\n        delRow: 'Hapus baris',\n        delCol: 'Hapus kolom',\n        delTable: 'Hapus tabel'\n      },\n      hr: {\n        insert: 'Masukkan garis horizontal'\n      },\n      style: {\n        style: 'Gaya',\n        p: 'p',\n        blockquote: 'Kutipan',\n        pre: 'Kode',\n        h1: 'Heading 1',\n        h2: 'Heading 2',\n        h3: 'Heading 3',\n        h4: 'Heading 4',\n        h5: 'Heading 5',\n        h6: 'Heading 6'\n      },\n      lists: {\n        unordered: 'Pencacahan',\n        ordered: 'Penomoran'\n      },\n      options: {\n        help: 'Bantuan',\n        fullscreen: 'Layar penuh',\n        codeview: 'Kode HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Rata kiri',\n        center: 'Rata tengah',\n        right: 'Rata kanan',\n        justify: 'Rata kanan kiri'\n      },\n      color: {\n        recent: 'Warna sekarang',\n        more: 'Selengkapnya',\n        background: 'Warna latar',\n        foreground: 'Warna font',\n        transparent: 'Transparan',\n        setTransparent: 'Atur transparansi',\n        reset: 'Atur ulang',\n        resetToDefault: 'Kembalikan kesemula'\n      },\n      shortcut: {\n        shortcuts: 'Jalan pintas',\n        close: 'Tutup',\n        textFormatting: 'Format teks',\n        action: 'Aksi',\n        paragraphFormatting: 'Format paragraf',\n        documentStyle: 'Gaya dokumen',\n        extraKeys: 'Shortcut tambahan'\n      },\n      help: {\n        'insertParagraph': 'Tambahkan paragraf',\n        'undo': 'Urungkan perintah terakhir',\n        'redo': 'Kembalikan perintah terakhir',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Mengaktifkan gaya tebal',\n        'italic': 'Mengaktifkan gaya italic',\n        'underline': 'Mengaktifkan gaya underline',\n        'strikethrough': 'Mengaktifkan gaya strikethrough',\n        'removeFormat': 'Hapus semua gaya',\n        'justifyLeft': 'Atur rata kiri',\n        'justifyCenter': 'Atur rata tengah',\n        'justifyRight': 'Atur rata kanan',\n        'justifyFull': 'Atur rata kiri-kanan',\n        'insertUnorderedList': 'Nyalakan urutan tanpa nomor',\n        'insertOrderedList': 'Nyalakan urutan bernomor',\n        'outdent': 'Outdent di paragraf terpilih',\n        'indent': 'Indent di paragraf terpilih',\n        'formatPara': 'Ubah format gaya tulisan terpilih menjadi paragraf',\n        'formatH1': 'Ubah format gaya tulisan terpilih menjadi Heading 1',\n        'formatH2': 'Ubah format gaya tulisan terpilih menjadi Heading 2',\n        'formatH3': 'Ubah format gaya tulisan terpilih menjadi Heading 3',\n        'formatH4': 'Ubah format gaya tulisan terpilih menjadi Heading 4',\n        'formatH5': 'Ubah format gaya tulisan terpilih menjadi Heading 5',\n        'formatH6': 'Ubah format gaya tulisan terpilih menjadi Heading 6',\n        'insertHorizontalRule': 'Masukkan garis horizontal',\n        'linkDialog.show': 'Tampilkan Link Dialog'\n      },\n      history: {\n        undo: 'Kembali',\n        redo: 'Ulang'\n      },\n      specialChar: {\n        specialChar: 'KARAKTER KHUSUS',\n        select: 'Pilih karakter khusus'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-id-ID.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-it-IT.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 25);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 25:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'it-IT': {\n      font: {\n        bold: 'Testo in grassetto',\n        italic: 'Testo in corsivo',\n        underline: 'Testo sottolineato',\n        clear: 'Elimina la formattazione del testo',\n        height: 'Altezza della linea di testo',\n        name: 'Famiglia Font',\n        strikethrough: 'Testo barrato',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Dimensione del carattere'\n      },\n      image: {\n        image: 'Immagine',\n        insert: 'Inserisci Immagine',\n        resizeFull: 'Dimensioni originali',\n        resizeHalf: 'Ridimensiona al 50%',\n        resizeQuarter: 'Ridimensiona al 25%',\n        floatLeft: 'Posiziona a sinistra',\n        floatRight: 'Posiziona a destra',\n        floatNone: 'Nessun posizionamento',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Trascina qui un\\'immagine',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Scegli dai Documenti',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL dell\\'immagine',\n        remove: 'Rimuovi immagine',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Collegamento ad un Video',\n        insert: 'Inserisci Video',\n        url: 'URL del Video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Collegamento',\n        insert: 'Inserisci Collegamento',\n        unlink: 'Elimina collegamento',\n        edit: 'Modifica collegamento',\n        textToDisplay: 'Testo del collegamento',\n        url: 'URL del collegamento',\n        openInNewWindow: 'Apri in una nuova finestra'\n      },\n      table: {\n        table: 'Tabella',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Inserisce una linea di separazione'\n      },\n      style: {\n        style: 'Stili',\n        p: 'pe',\n        blockquote: 'Citazione',\n        pre: 'Codice',\n        h1: 'Titolo 1',\n        h2: 'Titolo 2',\n        h3: 'Titolo 3',\n        h4: 'Titolo 4',\n        h5: 'Titolo 5',\n        h6: 'Titolo 6'\n      },\n      lists: {\n        unordered: 'Elenco non ordinato',\n        ordered: 'Elenco ordinato'\n      },\n      options: {\n        help: 'Aiuto',\n        fullscreen: 'Modalità a tutto schermo',\n        codeview: 'Visualizza codice'\n      },\n      paragraph: {\n        paragraph: 'Paragrafo',\n        outdent: 'Diminuisce il livello di rientro',\n        indent: 'Aumenta il livello di rientro',\n        left: 'Allinea a sinistra',\n        center: 'Centra',\n        right: 'Allinea a destra',\n        justify: 'Giustifica (allinea a destra e sinistra)'\n      },\n      color: {\n        recent: 'Ultimo colore utilizzato',\n        more: 'Altri colori',\n        background: 'Colore di sfondo',\n        foreground: 'Colore',\n        transparent: 'Trasparente',\n        setTransparent: 'Trasparente',\n        reset: 'Reimposta',\n        resetToDefault: 'Reimposta i colori'\n      },\n      shortcut: {\n        shortcuts: 'Scorciatoie da tastiera',\n        close: 'Chiudi',\n        textFormatting: 'Formattazione testo',\n        action: 'Azioni',\n        paragraphFormatting: 'Formattazione paragrafo',\n        documentStyle: 'Stili',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Annulla',\n        redo: 'Ripristina'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-it-IT.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ja-JP.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 26);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 26:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ja-JP': {\n      font: {\n        bold: '太字',\n        italic: '斜体',\n        underline: '下線',\n        clear: 'クリア',\n        height: '文字高',\n        name: 'フォント',\n        strikethrough: '取り消し線',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: '大きさ'\n      },\n      image: {\n        image: '画像',\n        insert: '画像挿入',\n        resizeFull: '最大化',\n        resizeHalf: '1/2',\n        resizeQuarter: '1/4',\n        floatLeft: '左寄せ',\n        floatRight: '右寄せ',\n        floatNone: '寄せ解除',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'ここに画像をドラッグしてください',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: '画像ファイルを選ぶ',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URLから画像を挿入する',\n        remove: '画像を削除する',\n        original: 'Original'\n      },\n      video: {\n        video: '動画',\n        videoLink: '動画リンク',\n        insert: '動画挿入',\n        url: '動画のURL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)'\n      },\n      link: {\n        link: 'リンク',\n        insert: 'リンク挿入',\n        unlink: 'リンク解除',\n        edit: '編集',\n        textToDisplay: 'リンク文字列',\n        url: 'URLを入力してください',\n        openInNewWindow: '新しいウィンドウで開く'\n      },\n      table: {\n        table: 'テーブル',\n        addRowAbove: '行を上に追加',\n        addRowBelow: '行を下に追加',\n        addColLeft: '列を左に追加',\n        addColRight: '列を右に追加',\n        delRow: '行を削除',\n        delCol: '列を削除',\n        delTable: 'テーブルを削除'\n      },\n      hr: {\n        insert: '水平線の挿入'\n      },\n      style: {\n        style: 'スタイル',\n        p: '標準',\n        blockquote: '引用',\n        pre: 'コード',\n        h1: '見出し1',\n        h2: '見出し2',\n        h3: '見出し3',\n        h4: '見出し4',\n        h5: '見出し5',\n        h6: '見出し6'\n      },\n      lists: {\n        unordered: '通常リスト',\n        ordered: '番号リスト'\n      },\n      options: {\n        help: 'ヘルプ',\n        fullscreen: 'フルスクリーン',\n        codeview: 'コード表示'\n      },\n      paragraph: {\n        paragraph: '文章',\n        outdent: '字上げ',\n        indent: '字下げ',\n        left: '左寄せ',\n        center: '中央寄せ',\n        right: '右寄せ',\n        justify: '均等割付'\n      },\n      color: {\n        recent: '現在の色',\n        more: 'もっと見る',\n        background: '背景色',\n        foreground: '文字色',\n        transparent: '透明',\n        setTransparent: '透明にする',\n        reset: '標準',\n        resetToDefault: '標準に戻す'\n      },\n      shortcut: {\n        shortcuts: 'ショートカット',\n        close: '閉じる',\n        textFormatting: '文字フォーマット',\n        action: 'アクション',\n        paragraphFormatting: '文章フォーマット',\n        documentStyle: 'ドキュメント形式',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': '改行挿入',\n        'undo': '一旦、行った操作を戻す',\n        'redo': '最後のコマンドをやり直す',\n        'tab': 'Tab',\n        'untab': 'タブ戻し',\n        'bold': '太文字',\n        'italic': '斜体',\n        'underline': '下線',\n        'strikethrough': '取り消し線',\n        'removeFormat': '装飾を戻す',\n        'justifyLeft': '左寄せ',\n        'justifyCenter': '真ん中寄せ',\n        'justifyRight': '右寄せ',\n        'justifyFull': 'すべてを整列',\n        'insertUnorderedList': '行頭に●を挿入',\n        'insertOrderedList': '行頭に番号を挿入',\n        'outdent': '字下げを戻す（アウトデント）',\n        'indent': '字下げする（インデント）',\n        'formatPara': '段落(P tag)指定',\n        'formatH1': 'H1指定',\n        'formatH2': 'H2指定',\n        'formatH3': 'H3指定',\n        'formatH4': 'H4指定',\n        'formatH5': 'H5指定',\n        'formatH6': 'H6指定',\n        'insertHorizontalRule': '&lt;hr /&gt;を挿入',\n        'linkDialog.show': 'リンク挿入'\n      },\n      history: {\n        undo: '元に戻す',\n        redo: 'やり直す'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ja-JP.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ko-KR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 27);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 27:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ko-KR': {\n      font: {\n        bold: '굵게',\n        italic: '기울임꼴',\n        underline: '밑줄',\n        clear: '서식 지우기',\n        height: '줄 간격',\n        name: '글꼴',\n        superscript: '위 첨자',\n        subscript: '아래 첨자',\n        strikethrough: '취소선',\n        size: '글자 크기'\n      },\n      image: {\n        image: '그림',\n        insert: '그림 삽입',\n        resizeFull: '100% 크기로 변경',\n        resizeHalf: '50% 크기로 변경',\n        resizeQuarter: '25% 크기로 변경',\n        resizeNone: '원본 크기',\n        floatLeft: '왼쪽 정렬',\n        floatRight: '오른쪽 정렬',\n        floatNone: '정렬하지 않음',\n        shapeRounded: '스타일: 둥근 모서리',\n        shapeCircle: '스타일: 원형',\n        shapeThumbnail: '스타일: 액자',\n        shapeNone: '스타일: 없음',\n        dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요',\n        dropImage: '텍스트 혹은 사진을 내려놓으세요',\n        selectFromFiles: '파일 선택',\n        maximumFileSize: '최대 파일 크기',\n        maximumFileSizeError: '최대 파일 크기를 초과했습니다.',\n        url: '사진 URL',\n        remove: '사진 삭제',\n        original: '원본'\n      },\n      video: {\n        video: '동영상',\n        videoLink: '동영상 링크',\n        insert: '동영상 삽입',\n        url: '동영상 URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)'\n      },\n      link: {\n        link: '링크',\n        insert: '링크 삽입',\n        unlink: '링크 삭제',\n        edit: '수정',\n        textToDisplay: '링크에 표시할 내용',\n        url: '이동할 URL',\n        openInNewWindow: '새창으로 열기'\n      },\n      table: {\n        table: '표',\n        addRowAbove: '위에 행 삽입',\n        addRowBelow: '아래에 행 삽입',\n        addColLeft: '왼쪽에 열 삽입',\n        addColRight: '오른쪽에 열 삽입',\n        delRow: '행 지우기',\n        delCol: '열 지우기',\n        delTable: '표 삭제'\n      },\n      hr: {\n        insert: '구분선 삽입'\n      },\n      style: {\n        style: '스타일',\n        p: '본문',\n        blockquote: '인용구',\n        pre: '코드',\n        h1: '제목 1',\n        h2: '제목 2',\n        h3: '제목 3',\n        h4: '제목 4',\n        h5: '제목 5',\n        h6: '제목 6'\n      },\n      lists: {\n        unordered: '글머리 기호',\n        ordered: '번호 매기기'\n      },\n      options: {\n        help: '도움말',\n        fullscreen: '전체 화면',\n        codeview: '코드 보기'\n      },\n      paragraph: {\n        paragraph: '문단 정렬',\n        outdent: '내어쓰기',\n        indent: '들여쓰기',\n        left: '왼쪽 정렬',\n        center: '가운데 정렬',\n        right: '오른쪽 정렬',\n        justify: '양쪽 정렬'\n      },\n      color: {\n        recent: '마지막으로 사용한 색',\n        more: '다른 색 선택',\n        background: '배경색',\n        foreground: '글자색',\n        transparent: '투명',\n        setTransparent: '투명으로 설정',\n        reset: '취소',\n        resetToDefault: '기본값으로 설정',\n        cpSelect: '고르다'\n      },\n      shortcut: {\n        shortcuts: '키보드 단축키',\n        close: '닫기',\n        textFormatting: '글자 스타일 적용',\n        action: '기능',\n        paragraphFormatting: '문단 스타일 적용',\n        documentStyle: '문서 스타일 적용',\n        extraKeys: '추가 키'\n      },\n      help: {\n        'insertParagraph': '문단 삽입',\n        'undo': '마지막 명령 취소',\n        'redo': '마지막 명령 재실행',\n        'tab': '탭',\n        'untab': '탭 제거',\n        'bold': '굵은 글자로 설정',\n        'italic': '기울임꼴 글자로 설정',\n        'underline': '밑줄 글자로 설정',\n        'strikethrough': '취소선 글자로 설정',\n        'removeFormat': '서식 삭제',\n        'justifyLeft': '왼쪽 정렬하기',\n        'justifyCenter': '가운데 정렬하기',\n        'justifyRight': '오른쪽 정렬하기',\n        'justifyFull': '좌우채움 정렬하기',\n        'insertUnorderedList': '글머리 기호 켜고 끄기',\n        'insertOrderedList': '번호 매기기 켜고 끄기',\n        'outdent': '현재 문단 내어쓰기',\n        'indent': '현재 문단 들여쓰기',\n        'formatPara': '현재 블록의 포맷을 문단(P)으로 변경',\n        'formatH1': '현재 블록의 포맷을 제목1(H1)로 변경',\n        'formatH2': '현재 블록의 포맷을 제목2(H2)로 변경',\n        'formatH3': '현재 블록의 포맷을 제목3(H3)로 변경',\n        'formatH4': '현재 블록의 포맷을 제목4(H4)로 변경',\n        'formatH5': '현재 블록의 포맷을 제목5(H5)로 변경',\n        'formatH6': '현재 블록의 포맷을 제목6(H6)로 변경',\n        'insertHorizontalRule': '구분선 삽입',\n        'linkDialog.show': '링크 대화상자 열기'\n      },\n      history: {\n        undo: '실행 취소',\n        redo: '재실행'\n      },\n      specialChar: {\n        specialChar: '특수문자',\n        select: '특수문자를 선택하세요'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ko-KR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-lt-LT.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 28);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 28:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'lt-LT': {\n      font: {\n        bold: 'Paryškintas',\n        italic: 'Kursyvas',\n        underline: 'Pabrėžtas',\n        clear: 'Be formatavimo',\n        height: 'Eilutės aukštis',\n        name: 'Šrifto pavadinimas',\n        strikethrough: 'Perbrauktas',\n        superscript: 'Viršutinis',\n        subscript: 'Indeksas',\n        size: 'Šrifto dydis'\n      },\n      image: {\n        image: 'Paveikslėlis',\n        insert: 'Įterpti paveikslėlį',\n        resizeFull: 'Pilnas dydis',\n        resizeHalf: 'Sumažinti dydį 50%',\n        resizeQuarter: 'Sumažinti dydį 25%',\n        floatLeft: 'Kairinis lygiavimas',\n        floatRight: 'Dešininis lygiavimas',\n        floatNone: 'Jokio lygiavimo',\n        shapeRounded: 'Forma: apvalūs kraštai',\n        shapeCircle: 'Forma: apskritimas',\n        shapeThumbnail: 'Forma: miniatiūra',\n        shapeNone: 'Forma: jokia',\n        dragImageHere: 'Vilkite paveikslėlį čia',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Pasirinkite failą',\n        maximumFileSize: 'Maskimalus failo dydis',\n        maximumFileSizeError: 'Maskimalus failo dydis viršytas!',\n        url: 'Paveikslėlio URL adresas',\n        remove: 'Ištrinti paveikslėlį',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Nuoroda',\n        insert: 'Įterpti nuorodą',\n        unlink: 'Pašalinti nuorodą',\n        edit: 'Redaguoti',\n        textToDisplay: 'Rodomas tekstas',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atidaryti naujame lange'\n      },\n      table: {\n        table: 'Lentelė',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Įterpti horizontalią liniją'\n      },\n      style: {\n        style: 'Stilius',\n        p: 'pus',\n        blockquote: 'Citata',\n        pre: 'Kodas',\n        h1: 'Antraštė 1',\n        h2: 'Antraštė 2',\n        h3: 'Antraštė 3',\n        h4: 'Antraštė 4',\n        h5: 'Antraštė 5',\n        h6: 'Antraštė 6'\n      },\n      lists: {\n        unordered: 'Suženklintasis sąrašas',\n        ordered: 'Sunumeruotas sąrašas'\n      },\n      options: {\n        help: 'Pagalba',\n        fullscreen: 'Viso ekrano režimas',\n        codeview: 'HTML kodo peržiūra'\n      },\n      paragraph: {\n        paragraph: 'Pastraipa',\n        outdent: 'Sumažinti įtrauką',\n        indent: 'Padidinti įtrauką',\n        left: 'Kairinė lygiuotė',\n        center: 'Centrinė lygiuotė',\n        right: 'Dešininė lygiuotė',\n        justify: 'Abipusis išlyginimas'\n      },\n      color: {\n        recent: 'Paskutinė naudota spalva',\n        more: 'Daugiau spalvų',\n        background: 'Fono spalva',\n        foreground: 'Šrifto spalva',\n        transparent: 'Permatoma',\n        setTransparent: 'Nustatyti skaidrumo intensyvumą',\n        reset: 'Atkurti',\n        resetToDefault: 'Atstatyti numatytąją spalvą'\n      },\n      shortcut: {\n        shortcuts: 'Spartieji klavišai',\n        close: 'Uždaryti',\n        textFormatting: 'Teksto formatavimas',\n        action: 'Veiksmas',\n        paragraphFormatting: 'Pastraipos formatavimas',\n        documentStyle: 'Dokumento stilius',\n        extraKeys: 'Papildomi klavišų deriniai'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Anuliuoti veiksmą',\n        redo: 'Perdaryti veiksmą'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-lt-LT.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-lt-LV.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 29);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 29:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'lv-LV': {\n      font: {\n        bold: 'Treknraksts',\n        italic: 'Kursīvs',\n        underline: 'Pasvītrots',\n        clear: 'Noņemt formatējumu',\n        height: 'Līnijas augstums',\n        name: 'Fonts',\n        strikethrough: 'Nosvītrots',\n        superscript: 'Augšraksts',\n        subscript: 'Apakšraksts',\n        size: 'Fonta lielums'\n      },\n      image: {\n        image: 'Attēls',\n        insert: 'Ievietot attēlu',\n        resizeFull: 'Pilns izmērts',\n        resizeHalf: 'Samazināt 50%',\n        resizeQuarter: 'Samazināt 25%',\n        floatLeft: 'Līdzināt pa kreisi',\n        floatRight: 'Līdzināt pa labi',\n        floatNone: 'Nelīdzināt',\n        shapeRounded: 'Forma: apaļām malām',\n        shapeCircle: 'Forma: aplis',\n        shapeThumbnail: 'Forma: rāmītis',\n        shapeNone: 'Forma: orģināla',\n        dragImageHere: 'Ievēlciet attēlu šeit',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Izvēlēties failu',\n        maximumFileSize: 'Maksimālais faila izmērs',\n        maximumFileSizeError: 'Faila izmērs pārāk liels!',\n        url: 'Attēla URL',\n        remove: 'Dzēst attēlu',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Saite',\n        insert: 'Ievietot saiti',\n        unlink: 'Noņemt saiti',\n        edit: 'Rediģēt',\n        textToDisplay: 'Saites saturs',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atvērt jaunā logā'\n      },\n      table: {\n        table: 'Tabula',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Ievietot līniju'\n      },\n      style: {\n        style: 'Stils',\n        p: 'Parasts',\n        blockquote: 'Citāts',\n        pre: 'Kods',\n        h1: 'Virsraksts h1',\n        h2: 'Virsraksts h2',\n        h3: 'Virsraksts h3',\n        h4: 'Virsraksts h4',\n        h5: 'Virsraksts h5',\n        h6: 'Virsraksts h6'\n      },\n      lists: {\n        unordered: 'Nenumurēts saraksts',\n        ordered: 'Numurēts saraksts'\n      },\n      options: {\n        help: 'Palīdzība',\n        fullscreen: 'Pa visu ekrānu',\n        codeview: 'HTML kods'\n      },\n      paragraph: {\n        paragraph: 'Paragrāfs',\n        outdent: 'Samazināt atkāpi',\n        indent: 'Palielināt atkāpi',\n        left: 'Līdzināt pa kreisi',\n        center: 'Centrēt',\n        right: 'Līdzināt pa labi',\n        justify: 'Līdzināt gar abām malām'\n      },\n      color: {\n        recent: 'Nesen izmantotās',\n        more: 'Citas krāsas',\n        background: 'Fona krāsa',\n        foreground: 'Fonta krāsa',\n        transparent: 'Caurspīdīgs',\n        setTransparent: 'Iestatīt caurspīdīgumu',\n        reset: 'Atjaunot',\n        resetToDefault: 'Atjaunot noklusējumu'\n      },\n      shortcut: {\n        shortcuts: 'Saīsnes',\n        close: 'Aizvērt',\n        textFormatting: 'Teksta formatēšana',\n        action: 'Darbība',\n        paragraphFormatting: 'Paragrāfa formatēšana',\n        documentStyle: 'Dokumenta stils',\n        extraKeys: 'Citas taustiņu kombinācijas'\n      },\n      help: {\n        insertParagraph: 'Ievietot Paragrāfu',\n        undo: 'Atcelt iepriekšējo darbību',\n        redo: 'Atkārtot atcelto darbību',\n        tab: 'Atkāpe',\n        untab: 'Samazināt atkāpi',\n        bold: 'Pārvērst tekstu treknrakstā',\n        italic: 'Pārvērst tekstu slīprakstā (kursīvā)',\n        underline: 'Pasvītrot tekstu',\n        strikethrough: 'Nosvītrot tekstu',\n        removeFormat: 'Notīrīt stilu no teksta',\n        justifyLeft: 'Līdzīnāt saturu pa kreisi',\n        justifyCenter: 'Centrēt saturu',\n        justifyRight: 'Līdzīnāt saturu pa labi',\n        justifyFull: 'Izlīdzināt saturu gar abām malām',\n        insertUnorderedList: 'Ievietot nenumurētu sarakstu',\n        insertOrderedList: 'Ievietot numurētu sarakstu',\n        outdent: 'Samazināt/noņemt atkāpi paragrāfam',\n        indent: 'Uzlikt atkāpi paragrāfam',\n        formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu',\n        formatH1: 'Mainīt bloka tipu uz virsrakstu H1',\n        formatH2: 'Mainīt bloka tipu uz virsrakstu H2',\n        formatH3: 'Mainīt bloka tipu uz virsrakstu H3',\n        formatH4: 'Mainīt bloka tipu uz virsrakstu H4',\n        formatH5: 'Mainīt bloka tipu uz virsrakstu H5',\n        formatH6: 'Mainīt bloka tipu uz virsrakstu H6',\n        insertHorizontalRule: 'Ievietot horizontālu līniju',\n        'linkDialog.show': 'Parādīt saites logu'\n      },\n      history: {\n        undo: 'Atsauks (undo)',\n        redo: 'Atkārtot (redo)'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-lt-LV.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-mn-MN.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 30);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n// Starsoft Mongolia LLC Temuujin Ariunbold\n(function ($) {\n  $.extend($.summernote.lang, {\n    'mn-MN': {\n      font: {\n        bold: 'Тод',\n        italic: 'Налуу',\n        underline: 'Доогуур зураас',\n        clear: 'Цэвэрлэх',\n        height: 'Өндөр',\n        name: 'Фонт',\n        superscript: 'Дээд илтгэгч',\n        subscript: 'Доод илтгэгч',\n        strikethrough: 'Дарах',\n        size: 'Хэмжээ'\n      },\n      image: {\n        image: 'Зураг',\n        insert: 'Оруулах',\n        resizeFull: 'Хэмжээ бүтэн',\n        resizeHalf: 'Хэмжээ 1/2',\n        resizeQuarter: 'Хэмжээ 1/4',\n        floatLeft: 'Зүүн талд байрлуулах',\n        floatRight: 'Баруун талд байрлуулах',\n        floatNone: 'Анхдагч байрлалд аваачих',\n        shapeRounded: 'Хүрээ: Дугуй',\n        shapeCircle: 'Хүрээ: Тойрог',\n        shapeThumbnail: 'Хүрээ: Хураангуй',\n        shapeNone: 'Хүрээгүй',\n        dragImageHere: 'Зургийг энд чирч авчирна уу',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Файлуудаас сонгоно уу',\n        maximumFileSize: 'Файлын дээд хэмжээ',\n        maximumFileSizeError: 'Файлын дээд хэмжээ хэтэрсэн',\n        url: 'Зургийн URL',\n        remove: 'Зургийг устгах',\n        original: 'Original'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Видео холбоос',\n        insert: 'Видео оруулах',\n        url: 'Видео URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion болон Youku)'\n      },\n      link: {\n        link: 'Холбоос',\n        insert: 'Холбоос оруулах',\n        unlink: 'Холбоос арилгах',\n        edit: 'Засварлах',\n        textToDisplay: 'Харуулах бичвэр',\n        url: 'Энэ холбоос хаашаа очих вэ?',\n        openInNewWindow: 'Шинэ цонхонд нээх'\n      },\n      table: {\n        table: 'Хүснэгт',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Хэвтээ шугам оруулах'\n      },\n      style: {\n        style: 'Хэв маяг',\n        p: 'p',\n        blockquote: 'Иш татах',\n        pre: 'Эх сурвалж',\n        h1: 'Гарчиг 1',\n        h2: 'Гарчиг 2',\n        h3: 'Гарчиг 3',\n        h4: 'Гарчиг 4',\n        h5: 'Гарчиг 5',\n        h6: 'Гарчиг 6'\n      },\n      lists: {\n        unordered: 'Эрэмбэлэгдээгүй',\n        ordered: 'Эрэмбэлэгдсэн'\n      },\n      options: {\n        help: 'Тусламж',\n        fullscreen: 'Дэлгэцийг дүүргэх',\n        codeview: 'HTML-Code харуулах'\n      },\n      paragraph: {\n        paragraph: 'Хэсэг',\n        outdent: 'Догол мөр хасах',\n        indent: 'Догол мөр нэмэх',\n        left: 'Зүүн тийш эгнүүлэх',\n        center: 'Төвд эгнүүлэх',\n        right: 'Баруун тийш эгнүүлэх',\n        justify: 'Мөрийг тэгшлэх'\n      },\n      color: {\n        recent: 'Сүүлд хэрэглэсэн өнгө',\n        more: 'Өөр өнгөнүүд',\n        background: 'Дэвсгэр өнгө',\n        foreground: 'Үсгийн өнгө',\n        transparent: 'Тунгалаг',\n        setTransparent: 'Тунгалаг болгох',\n        reset: 'Анхдагч өнгөөр тохируулах',\n        resetToDefault: 'Хэвд нь оруулах'\n      },\n      shortcut: {\n        shortcuts: 'Богино холбоос',\n        close: 'Хаалт',\n        textFormatting: 'Бичвэрийг хэлбэржүүлэх',\n        action: 'Үйлдэл',\n        paragraphFormatting: 'Догол мөрийг хэлбэржүүлэх',\n        documentStyle: 'Бичиг баримтын хэв загвар',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Буцаах',\n        redo: 'Дахин хийх'\n      },\n      specialChar: {\n        specialChar: 'Тусгай тэмдэгт',\n        select: 'Тусгай тэмдэгт сонгох'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-mn-MN.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-nb-NO.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 31);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 31:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'nb-NO': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understrek',\n        clear: 'Fjern formatering',\n        height: 'Linjehøyde',\n        name: 'Skrifttype',\n        strikethrough: 'Gjennomstrek',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Bilde',\n        insert: 'Sett inn bilde',\n        resizeFull: 'Sett full størrelse',\n        resizeHalf: 'Sett halv størrelse',\n        resizeQuarter: 'Sett kvart størrelse',\n        floatLeft: 'Flyt til venstre',\n        floatRight: 'Flyt til høyre',\n        floatNone: 'Fjern flyt',\n        shapeRounded: 'Form: Rundet',\n        shapeCircle: 'Form: Sirkel',\n        shapeThumbnail: 'Form: Miniatyr',\n        shapeNone: 'Form: Ingen',\n        dragImageHere: 'Dra et bilde hit',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Velg fra filer',\n        maximumFileSize: 'Max filstørrelse',\n        maximumFileSizeError: 'Maks filstørrelse overskredet.',\n        url: 'Bilde-URL',\n        remove: 'Fjern bilde',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Videolenke',\n        insert: 'Sett inn video',\n        url: 'Video-URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Lenke',\n        insert: 'Sett inn lenke',\n        unlink: 'Fjern lenke',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Til hvilken URL skal denne lenken peke?',\n        openInNewWindow: 'Åpne i nytt vindu'\n      },\n      table: {\n        table: 'Tabell',\n        addRowAbove: 'Legg til rad over',\n        addRowBelow: 'Legg til rad under',\n        addColLeft: 'Legg til kolonne på venstre side',\n        addColRight: 'Legg til kolonne på høyre side',\n        delRow: 'Slett rad',\n        delCol: 'Slett kolonne',\n        delTable: 'Slett tabell'\n      },\n      hr: {\n        insert: 'Sett inn horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'Paragraf',\n        blockquote: 'Sitat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktliste',\n        ordered: 'Nummerert liste'\n      },\n      options: {\n        help: 'Hjelp',\n        fullscreen: 'Fullskjerm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Avsnitt',\n        outdent: 'Tilbakerykk',\n        indent: 'Innrykk',\n        left: 'Venstrejustert',\n        center: 'Midtstilt',\n        right: 'Høyrejustert',\n        justify: 'Blokkjustert'\n      },\n      color: {\n        recent: 'Nylig valgt farge',\n        more: 'Flere farger',\n        background: 'Bakgrunnsfarge',\n        foreground: 'Skriftfarge',\n        transparent: 'Gjennomsiktig',\n        setTransparent: 'Sett gjennomsiktig',\n        reset: 'Nullstill',\n        resetToDefault: 'Nullstill til standard'\n      },\n      shortcut: {\n        shortcuts: 'Hurtigtaster',\n        close: 'Lukk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      help: {\n        'insertParagraph': 'Sett inn avsnitt',\n        'undo': 'Angre siste handling',\n        'redo': 'Gjør om siste handling',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Angi en fet stil',\n        'italic': 'Angi en kursiv stil',\n        'underline': 'Sett en understreket stil',\n        'strikethrough': 'Sett en gjennomgående sti',\n        'removeFormat': 'Tøm formattering',\n        'justifyLeft': 'Angi venstrejustering',\n        'justifyCenter': 'Angi sentrert justering',\n        'justifyRight': 'Angi høyre justering',\n        'justifyFull': 'Angi full justering',\n        'insertUnorderedList': 'Bytt uordnet liste',\n        'insertOrderedList': 'Bytt sortert liste',\n        'outdent': 'Utrykk på valgt avsnitt',\n        'indent': 'Innrykk på valgt avsnitt',\n        'formatPara': 'Endre gjeldende blokkformat til et avsnitt (P-kode)',\n        'formatH1': 'Endre gjeldende blokkformat til H1',\n        'formatH2': 'Endre gjeldende blokkformat til H2',\n        'formatH3': 'Endre gjeldende blokkformat til H3',\n        'formatH4': 'Endre gjeldende blokkformat til H4',\n        'formatH5': 'Endre gjeldende blokkformat til H5',\n        'formatH6': 'Endre gjeldende blokkformat til H6',\n        'insertHorizontalRule': 'Sett inn horisontal deler',\n        'linkDialog.show': 'Vis koblingsdialog'\n      },\n      history: {\n        undo: 'Angre',\n        redo: 'Gjør om'\n      },\n      specialChar: {\n        specialChar: 'SPESIELLE TEGN',\n        select: 'Velg spesielle tegn'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-nb-NO.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-nl-NL.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 32);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'nl-NL': {\n      font: {\n        bold: 'Vet',\n        italic: 'Cursief',\n        underline: 'Onderstrepen',\n        clear: 'Stijl verwijderen',\n        height: 'Regelhoogte',\n        name: 'Lettertype',\n        strikethrough: 'Doorhalen',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Tekstgrootte'\n      },\n      image: {\n        image: 'Afbeelding',\n        insert: 'Afbeelding invoegen',\n        resizeFull: 'Volledige breedte',\n        resizeHalf: 'Halve breedte',\n        resizeQuarter: 'Kwart breedte',\n        floatLeft: 'Links uitlijnen',\n        floatRight: 'Rechts uitlijnen',\n        floatNone: 'Geen uitlijning',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Sleep hier een afbeelding naar toe',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Selecteer een bestand',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL van de afbeelding',\n        remove: 'Verwijder afbeelding',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video link',\n        insert: 'Video invoegen',\n        url: 'URL van de video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link invoegen',\n        unlink: 'Link verwijderen',\n        edit: 'Wijzigen',\n        textToDisplay: 'Tekst van link',\n        url: 'Naar welke URL moet deze link verwijzen?',\n        openInNewWindow: 'Open in nieuw venster'\n      },\n      table: {\n        table: 'Tabel',\n        addRowAbove: 'Rij hierboven invoegen',\n        addRowBelow: 'Rij hieronder invoegen',\n        addColLeft: 'Kolom links toevoegen',\n        addColRight: 'Kolom rechts toevoegen',\n        delRow: 'Verwijder rij',\n        delCol: 'Verwijder kolom',\n        delTable: 'Verwijder tabel'\n      },\n      hr: {\n        insert: 'Horizontale lijn invoegen'\n      },\n      style: {\n        style: 'Stijl',\n        p: 'Normaal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Kop 1',\n        h2: 'Kop 2',\n        h3: 'Kop 3',\n        h4: 'Kop 4',\n        h5: 'Kop 5',\n        h6: 'Kop 6'\n      },\n      lists: {\n        unordered: 'Ongeordende lijst',\n        ordered: 'Geordende lijst'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Volledig scherm',\n        codeview: 'Bekijk Code'\n      },\n      paragraph: {\n        paragraph: 'Paragraaf',\n        outdent: 'Inspringen verkleinen',\n        indent: 'Inspringen vergroten',\n        left: 'Links uitlijnen',\n        center: 'Centreren',\n        right: 'Rechts uitlijnen',\n        justify: 'Uitvullen'\n      },\n      color: {\n        recent: 'Recente kleur',\n        more: 'Meer kleuren',\n        background: 'Achtergrond kleur',\n        foreground: 'Tekst kleur',\n        transparent: 'Transparant',\n        setTransparent: 'Transparant',\n        reset: 'Standaard',\n        resetToDefault: 'Standaard kleur'\n      },\n      shortcut: {\n        shortcuts: 'Toetsencombinaties',\n        close: 'sluiten',\n        textFormatting: 'Tekststijlen',\n        action: 'Acties',\n        paragraphFormatting: 'Paragraafstijlen',\n        documentStyle: 'Documentstijlen',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Alinea invoegen',\n        'undo': 'Laatste handeling ongedaan maken',\n        'redo': 'Laatste handeling opnieuw uitvoeren',\n        'tab': 'Tab',\n        'untab': 'Herstel tab',\n        'bold': 'Stel stijl in als vet',\n        'italic': 'Stel stijl in als cursief',\n        'underline': 'Stel stijl in als onderstreept',\n        'strikethrough': 'Stel stijl in als doorgestreept',\n        'removeFormat': 'Verwijder stijl',\n        'justifyLeft': 'Lijn links uit',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Lijn rechts uit',\n        'justifyFull': 'Lijn uit op volledige breedte',\n        'insertUnorderedList': 'Zet ongeordende lijstweergave aan',\n        'insertOrderedList': 'Zet geordende lijstweergave aan',\n        'outdent': 'Verwijder inspringing huidige alinea',\n        'indent': 'Inspringen op huidige alinea',\n        'formatPara': 'Wijzig formattering huidig blok in alinea(P tag)',\n        'formatH1': 'Formatteer huidig blok als H1',\n        'formatH2': 'Formatteer huidig blok als H2',\n        'formatH3': 'Formatteer huidig blok als H3',\n        'formatH4': 'Formatteer huidig blok als H4',\n        'formatH5': 'Formatteer huidig blok als H5',\n        'formatH6': 'Formatteer huidig blok als H6',\n        'insertHorizontalRule': 'Invoegen horizontale lijn',\n        'linkDialog.show': 'Toon Link Dialoogvenster'\n      },\n      history: {\n        undo: 'Ongedaan maken',\n        redo: 'Opnieuw doorvoeren'\n      },\n      specialChar: {\n        specialChar: 'SPECIALE TEKENS',\n        select: 'Selecteer Speciale Tekens'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-nl-NL.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pl-PL.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 33);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 33:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'pl-PL': {\n      font: {\n        bold: 'Pogrubienie',\n        italic: 'Pochylenie',\n        underline: 'Podkreślenie',\n        clear: 'Usuń formatowanie',\n        height: 'Interlinia',\n        name: 'Czcionka',\n        strikethrough: 'Przekreślenie',\n        subscript: 'Indeks dolny',\n        superscript: 'Indeks górny',\n        size: 'Rozmiar'\n      },\n      image: {\n        image: 'Grafika',\n        insert: 'Wstaw grafikę',\n        resizeFull: 'Zmień rozmiar na 100%',\n        resizeHalf: 'Zmień rozmiar na 50%',\n        resizeQuarter: 'Zmień rozmiar na 25%',\n        floatLeft: 'Po lewej',\n        floatRight: 'Po prawej',\n        floatNone: 'Równo z tekstem',\n        shapeRounded: 'Kształt: zaokrąglone',\n        shapeCircle: 'Kształt: okrąg',\n        shapeThumbnail: 'Kształt: miniatura',\n        shapeNone: 'Kształt: brak',\n        dragImageHere: 'Przeciągnij grafikę lub tekst tutaj',\n        dropImage: 'Przeciągnij grafikę lub tekst',\n        selectFromFiles: 'Wybierz z dysku',\n        maximumFileSize: 'Limit wielkości pliku',\n        maximumFileSizeError: 'Przekroczono limit wielkości pliku.',\n        url: 'Adres URL grafiki',\n        remove: 'Usuń grafikę',\n        original: 'Oryginał'\n      },\n      video: {\n        video: 'Wideo',\n        videoLink: 'Adres wideo',\n        insert: 'Wstaw wideo',\n        url: 'Adres wideo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)'\n      },\n      link: {\n        link: 'Odnośnik',\n        insert: 'Wstaw odnośnik',\n        unlink: 'Usuń odnośnik',\n        edit: 'Edytuj',\n        textToDisplay: 'Tekst do wyświetlenia',\n        url: 'Na jaki adres URL powinien przenosić ten odnośnik?',\n        openInNewWindow: 'Otwórz w nowym oknie'\n      },\n      table: {\n        table: 'Tabela',\n        addRowAbove: 'Dodaj wiersz powyżej',\n        addRowBelow: 'Dodaj wiersz poniżej',\n        addColLeft: 'Dodaj kolumnę po lewej',\n        addColRight: 'Dodaj kolumnę po prawej',\n        delRow: 'Usuń wiersz',\n        delCol: 'Usuń kolumnę',\n        delTable: 'Usuń tabelę'\n      },\n      hr: {\n        insert: 'Wstaw poziomą linię'\n      },\n      style: {\n        style: 'Styl',\n        p: 'pny',\n        blockquote: 'Cytat',\n        pre: 'Kod',\n        h1: 'Nagłówek 1',\n        h2: 'Nagłówek 2',\n        h3: 'Nagłówek 3',\n        h4: 'Nagłówek 4',\n        h5: 'Nagłówek 5',\n        h6: 'Nagłówek 6'\n      },\n      lists: {\n        unordered: 'Lista wypunktowana',\n        ordered: 'Lista numerowana'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Pełny ekran',\n        codeview: 'Źródło'\n      },\n      paragraph: {\n        paragraph: 'Akapit',\n        outdent: 'Zmniejsz wcięcie',\n        indent: 'Zwiększ wcięcie',\n        left: 'Wyrównaj do lewej',\n        center: 'Wyrównaj do środka',\n        right: 'Wyrównaj do prawej',\n        justify: 'Wyrównaj do lewej i prawej'\n      },\n      color: {\n        recent: 'Ostani kolor',\n        more: 'Więcej kolorów',\n        background: 'Tło',\n        foreground: 'Czcionka',\n        transparent: 'Przeźroczysty',\n        setTransparent: 'Przeźroczyste',\n        reset: 'Zresetuj',\n        resetToDefault: 'Domyślne'\n      },\n      shortcut: {\n        shortcuts: 'Skróty klawiaturowe',\n        close: 'Zamknij',\n        textFormatting: 'Formatowanie tekstu',\n        action: 'Akcja',\n        paragraphFormatting: 'Formatowanie akapitu',\n        documentStyle: 'Styl dokumentu',\n        extraKeys: 'Dodatkowe klawisze'\n      },\n      help: {\n        'insertParagraph': 'Wstaw paragraf',\n        'undo': 'Cofnij poprzednią operację',\n        'redo': 'Przywróć poprzednią operację',\n        'tab': 'Tabulacja',\n        'untab': 'Usuń tabulację',\n        'bold': 'Pogrubienie',\n        'italic': 'Kursywa',\n        'underline': 'Podkreślenie',\n        'strikethrough': 'Przekreślenie',\n        'removeFormat': 'Usuń formatowanie',\n        'justifyLeft': 'Wyrównaj do lewej',\n        'justifyCenter': 'Wyrównaj do środka',\n        'justifyRight': 'Wyrównaj do prawej',\n        'justifyFull': 'Justyfikacja',\n        'insertUnorderedList': 'Nienumerowana lista',\n        'insertOrderedList': 'Wypunktowana lista',\n        'outdent': 'Zmniejsz wcięcie paragrafu',\n        'indent': 'Zwiększ wcięcie paragrafu',\n        'formatPara': 'Zamień format bloku na paragraf (tag P)',\n        'formatH1': 'Zamień format bloku na H1',\n        'formatH2': 'Zamień format bloku na H2',\n        'formatH3': 'Zamień format bloku na H3',\n        'formatH4': 'Zamień format bloku na H4',\n        'formatH5': 'Zamień format bloku na H5',\n        'formatH6': 'Zamień format bloku na H6',\n        'insertHorizontalRule': 'Wstaw poziomą linię',\n        'linkDialog.show': 'Pokaż dialog linkowania'\n      },\n      history: {\n        undo: 'Cofnij',\n        redo: 'Ponów'\n      },\n      specialChar: {\n        specialChar: 'ZNAKI SPECJALNE',\n        select: 'Wybierz Znak specjalny'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pl-PL.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pt-BR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 34);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 34:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-BR': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        subscript: 'Subscrito',\n        superscript: 'Sobrescrito',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completamente',\n        resizeHalf: 'Redimensionar pela Metade',\n        resizeQuarter: 'Redimensionar a um Quarto',\n        floatLeft: 'Flutuar para Esquerda',\n        floatRight: 'Flutuar para Direita',\n        floatNone: 'Não Flutuar',\n        shapeRounded: 'Forma: Arredondado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Miniatura',\n        shapeNone: 'Forma: Nenhum',\n        dragImageHere: 'Arraste Imagem ou Texto para cá',\n        dropImage: 'Solte Imagem ou Texto',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        maximumFileSize: 'Tamanho máximo do arquivo',\n        maximumFileSizeError: 'Tamanho máximo do arquivo excedido.',\n        url: 'URL da imagem',\n        remove: 'Remover Imagem',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir link',\n        unlink: 'Remover link',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Para qual URL este link leva?',\n        openInNewWindow: 'Abrir em uma nova janela'\n      },\n      table: {\n        table: 'Tabela',\n        addRowAbove: 'Adicionar linha acima',\n        addRowBelow: 'Adicionar linha abaixo',\n        addColLeft: 'Adicionar coluna à esquerda',\n        addColRight: 'Adicionar coluna à direita',\n        delRow: 'Excluir linha',\n        delCol: 'Excluir coluna',\n        delTable: 'Excluir tabela'\n      },\n      hr: {\n        insert: 'Linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'Normal',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Tela cheia',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão',\n        cpSelect: 'Selecionar'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Inserir Parágrafo',\n        'undo': 'Desfazer o último comando',\n        'redo': 'Refazer o último comando',\n        'tab': 'Tab',\n        'untab': 'Desfazer tab',\n        'bold': 'Colocar em negrito',\n        'italic': 'Colocar em itálico',\n        'underline': 'Sublinhado',\n        'strikethrough': 'Tachado',\n        'removeFormat': 'Remover estilo',\n        'justifyLeft': 'Alinhar à esquerda',\n        'justifyCenter': 'Centralizar',\n        'justifyRight': 'Alinhar à esquerda',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Lista não ordenada',\n        'insertOrderedList': 'Lista ordenada',\n        'outdent': 'Recuar parágrafo atual',\n        'indent': 'Avançar parágrafo atual',\n        'formatPara': 'Alterar formato do bloco para parágrafo(tag P)',\n        'formatH1': 'Alterar formato do bloco para H1',\n        'formatH2': 'Alterar formato do bloco para H2',\n        'formatH3': 'Alterar formato do bloco para H3',\n        'formatH4': 'Alterar formato do bloco para H4',\n        'formatH5': 'Alterar formato do bloco para H5',\n        'formatH6': 'Alterar formato do bloco para H6',\n        'insertHorizontalRule': 'Inserir Régua horizontal',\n        'linkDialog.show': 'Inserir um Hiperlink'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIAIS',\n        select: 'Selecionar Caracteres Especiais'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pt-BR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pt-PT.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 35);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 35:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-PT': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completo',\n        resizeHalf: 'Redimensionar Metade',\n        resizeQuarter: 'Redimensionar Um Quarto',\n        floatLeft: 'Float Esquerda',\n        floatRight: 'Float Direita',\n        floatNone: 'Sem Float',\n        shapeRounded: 'Forma: Arredondado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Minhatura',\n        shapeNone: 'Forma: Nenhum',\n        dragImageHere: 'Arraste uma imagem para aqui',\n        dropImage: 'Arraste uma imagem ou texto',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        maximumFileSize: 'Tamanho máximo do fixeiro',\n        maximumFileSizeError: 'Tamanho máximo do fixeiro é maior que o permitido.',\n        url: 'Endereço da imagem',\n        remove: 'Remover Imagem',\n        original: 'Original'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir ligação',\n        unlink: 'Remover ligação',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Que endereço esta licação leva?',\n        openInNewWindow: 'Abrir numa nova janela'\n      },\n      table: {\n        table: 'Tabela',\n        addRowAbove: 'Adicionar linha acima',\n        addRowBelow: 'Adicionar linha abaixo',\n        addColLeft: 'Adicionar coluna à Esquerda',\n        addColRight: 'Adicionar coluna à Esquerda',\n        delRow: 'Excluir linha',\n        delCol: 'Excluir coluna',\n        delTable: 'Excluir tabela'\n      },\n      hr: {\n        insert: 'Inserir linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'Parágrafo',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Janela Completa',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão',\n        cpSelect: 'Selecionar'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento'\n      },\n      help: {\n        'insertParagraph': 'Inserir Parágrafo',\n        'undo': 'Desfazer o último comando',\n        'redo': 'Refazer o último comando',\n        'tab': 'Maior tabulação',\n        'untab': 'Menor tabulação',\n        'bold': 'Colocar em negrito',\n        'italic': 'Colocar em itálico',\n        'underline': 'Colocar em sublinhado',\n        'strikethrough': 'Colocar em riscado',\n        'removeFormat': 'Limpar o estilo',\n        'justifyLeft': 'Definir alinhado à esquerda',\n        'justifyCenter': 'Definir alinhado ao centro',\n        'justifyRight': 'Definir alinhado à direita',\n        'justifyFull': 'Definir justificado',\n        'insertUnorderedList': 'Alternar lista não ordenada',\n        'insertOrderedList': 'Alternar lista ordenada',\n        'outdent': 'Recuar parágrafo atual',\n        'indent': 'Avançar parágrafo atual',\n        'formatPara': 'Alterar formato do bloco para parágrafo',\n        'formatH1': 'Alterar formato do bloco para Título 1',\n        'formatH2': 'Alterar formato do bloco para Título 2',\n        'formatH3': 'Alterar formato do bloco para Título 3',\n        'formatH4': 'Alterar formato do bloco para Título 4',\n        'formatH5': 'Alterar formato do bloco para Título 5',\n        'formatH6': 'Alterar formato do bloco para Título 6',\n        'insertHorizontalRule': 'Inserir linha horizontal',\n        'linkDialog.show': 'Inserir uma ligração'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-pt-PT.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ro-RO.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 36);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 36:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ro-RO': {\n      font: {\n        bold: 'Îngroșat',\n        italic: 'Înclinat',\n        underline: 'Subliniat',\n        clear: 'Înlătură formatare font',\n        height: 'Înălțime rând',\n        name: 'Familie de fonturi',\n        strikethrough: 'Tăiat',\n        subscript: 'Indice',\n        superscript: 'Exponent',\n        size: 'Dimensiune font'\n      },\n      image: {\n        image: 'Imagine',\n        insert: 'Inserează imagine',\n        resizeFull: 'Redimensionează complet',\n        resizeHalf: 'Redimensionează 1/2',\n        resizeQuarter: 'Redimensionează 1/4',\n        floatLeft: 'Aliniere la stânga',\n        floatRight: 'Aliniere la dreapta',\n        floatNone: 'Fară aliniere',\n        shapeRounded: 'Formă: Rotund',\n        shapeCircle: 'Formă: Cerc',\n        shapeThumbnail: 'Formă: Pictogramă',\n        shapeNone: 'Formă: Nici una',\n        dragImageHere: 'Trage o imagine sau un text aici',\n        dropImage: 'Eliberează imaginea sau textul',\n        selectFromFiles: 'Alege din fişiere',\n        maximumFileSize: 'Dimensiune maximă fișier',\n        maximumFileSizeError: 'Dimensiune maximă fișier depășită.',\n        url: 'URL imagine',\n        remove: 'Șterge imagine',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Inserează video',\n        url: 'URL video?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserează link',\n        unlink: 'Înlătură link',\n        edit: 'Editează',\n        textToDisplay: 'Text ce va fi afişat',\n        url: 'La ce adresă URL trebuie să conducă acest link?',\n        openInNewWindow: 'Deschidere în fereastră nouă'\n      },\n      table: {\n        table: 'Tabel',\n        addRowAbove: 'Adaugă rând deasupra',\n        addRowBelow: 'Adaugă rând dedesubt',\n        addColLeft: 'Adaugă coloană stânga',\n        addColRight: 'Adaugă coloană dreapta',\n        delRow: 'Șterge rând',\n        delCol: 'Șterge coloană',\n        delTable: 'Șterge tabel'\n      },\n      hr: {\n        insert: 'Inserează o linie orizontală'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Preformatat',\n        h1: 'Titlu 1',\n        h2: 'Titlu 2',\n        h3: 'Titlu 3',\n        h4: 'Titlu 4',\n        h5: 'Titlu 5',\n        h6: 'Titlu 6'\n      },\n      lists: {\n        unordered: 'Listă neordonată',\n        ordered: 'Listă ordonată'\n      },\n      options: {\n        help: 'Ajutor',\n        fullscreen: 'Măreşte',\n        codeview: 'Sursă'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Creşte identarea',\n        indent: 'Scade identarea',\n        left: 'Aliniere la stânga',\n        center: 'Aliniere centrală',\n        right: 'Aliniere la dreapta',\n        justify: 'Aliniere în bloc'\n      },\n      color: {\n        recent: 'Culoare recentă',\n        more: 'Mai multe  culori',\n        background: 'Culoarea fundalului',\n        foreground: 'Culoarea textului',\n        transparent: 'Transparent',\n        setTransparent: 'Setează transparent',\n        reset: 'Resetează',\n        resetToDefault: 'Revino la iniţial'\n      },\n      shortcut: {\n        shortcuts: 'Scurtături tastatură',\n        close: 'Închide',\n        textFormatting: 'Formatare text',\n        action: 'Acţiuni',\n        paragraphFormatting: 'Formatare paragraf',\n        documentStyle: 'Stil paragraf',\n        extraKeys: 'Taste extra'\n      },\n      help: {\n        'insertParagraph': 'Inserează paragraf',\n        'undo': 'Revine la starea anterioară',\n        'redo': 'Revine la starea ulterioară',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Setează stil îngroșat',\n        'italic': 'Setează stil înclinat',\n        'underline': 'Setează stil subliniat',\n        'strikethrough': 'Setează stil tăiat',\n        'removeFormat': 'Înlătură formatare',\n        'justifyLeft': 'Setează aliniere stânga',\n        'justifyCenter': 'Setează aliniere centru',\n        'justifyRight': 'Setează aliniere dreapta',\n        'justifyFull': 'Setează aliniere bloc',\n        'insertUnorderedList': 'Comutare listă neordinată',\n        'insertOrderedList': 'Comutare listă ordonată',\n        'outdent': 'Înlătură indentare paragraf curent',\n        'indent': 'Adaugă indentare paragraf curent',\n        'formatPara': 'Schimbă formatarea selecției în paragraf',\n        'formatH1': 'Schimbă formatarea selecției în H1',\n        'formatH2': 'Schimbă formatarea selecției în H2',\n        'formatH3': 'Schimbă formatarea selecției în H3',\n        'formatH4': 'Schimbă formatarea selecției în H4',\n        'formatH5': 'Schimbă formatarea selecției în H5',\n        'formatH6': 'Schimbă formatarea selecției în H6',\n        'insertHorizontalRule': 'Adaugă linie orizontală',\n        'linkDialog.show': 'Inserează link'\n      },\n      history: {\n        undo: 'Starea anterioară',\n        redo: 'Starea ulterioară'\n      },\n      specialChar: {\n        specialChar: 'CARACTERE SPECIALE',\n        select: 'Alege caractere speciale'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ro-RO.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ru-RU.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 37);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ru-RU': {\n      font: {\n        bold: 'Полужирный',\n        italic: 'Курсив',\n        underline: 'Подчёркнутый',\n        clear: 'Убрать стили шрифта',\n        height: 'Высота линии',\n        name: 'Шрифт',\n        strikethrough: 'Зачёркнутый',\n        subscript: 'Нижний индекс',\n        superscript: 'Верхний индекс',\n        size: 'Размер шрифта'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставить картинку',\n        resizeFull: 'Восстановить размер',\n        resizeHalf: 'Уменьшить до 50%',\n        resizeQuarter: 'Уменьшить до 25%',\n        floatLeft: 'Расположить слева',\n        floatRight: 'Расположить справа',\n        floatNone: 'Расположение по-умолчанию',\n        shapeRounded: 'Форма: Закругленная',\n        shapeCircle: 'Форма: Круг',\n        shapeThumbnail: 'Форма: Миниатюра',\n        shapeNone: 'Форма: Нет',\n        dragImageHere: 'Перетащите сюда картинку',\n        dropImage: 'Перетащите картинку',\n        selectFromFiles: 'Выбрать из файлов',\n        maximumFileSize: 'Максимальный размер файла',\n        maximumFileSizeError: 'Превышен максимальный размер файла',\n        url: 'URL картинки',\n        remove: 'Удалить картинку',\n        original: 'Оригинал'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Ссылка на видео',\n        insert: 'Вставить видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Ссылка',\n        insert: 'Вставить ссылку',\n        unlink: 'Убрать ссылку',\n        edit: 'Редактировать',\n        textToDisplay: 'Отображаемый текст',\n        url: 'URL для перехода',\n        openInNewWindow: 'Открывать в новом окне'\n      },\n      table: {\n        table: 'Таблица',\n        addRowAbove: 'Добавить строку выше',\n        addRowBelow: 'Добавить строку ниже',\n        addColLeft: 'Добавить столбец слева',\n        addColRight: 'Добавить столбец справа',\n        delRow: 'Удалить строку',\n        delCol: 'Удалить столбец',\n        delTable: 'Удалить таблицу'\n      },\n      hr: {\n        insert: 'Вставить горизонтальную линию'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальный',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркированный список',\n        ordered: 'Нумерованный список'\n      },\n      options: {\n        help: 'Помощь',\n        fullscreen: 'На весь экран',\n        codeview: 'Исходный код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Уменьшить отступ',\n        indent: 'Увеличить отступ',\n        left: 'Выровнять по левому краю',\n        center: 'Выровнять по центру',\n        right: 'Выровнять по правому краю',\n        justify: 'Растянуть по ширине'\n      },\n      color: {\n        recent: 'Последний цвет',\n        more: 'Еще цвета',\n        background: 'Цвет фона',\n        foreground: 'Цвет шрифта',\n        transparent: 'Прозрачный',\n        setTransparent: 'Сделать прозрачным',\n        reset: 'Сброс',\n        resetToDefault: 'Восстановить умолчания'\n      },\n      shortcut: {\n        shortcuts: 'Сочетания клавиш',\n        close: 'Закрыть',\n        textFormatting: 'Форматирование текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматирование параграфа',\n        documentStyle: 'Стиль документа',\n        extraKeys: 'Дополнительные комбинации'\n      },\n      help: {\n        'insertParagraph': 'Новый параграф',\n        'undo': 'Отменить последнюю команду',\n        'redo': 'Повторить последнюю команду',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Установить стиль \"Жирный\"',\n        'italic': 'Установить стиль \"Наклонный\"',\n        'underline': 'Установить стиль \"Подчеркнутый\"',\n        'strikethrough': 'Установить стиль \"Зачеркнутый\"',\n        'removeFormat': 'Сборсить стили',\n        'justifyLeft': 'Выровнять по левому краю',\n        'justifyCenter': 'Выровнять по центру',\n        'justifyRight': 'Выровнять по правому краю',\n        'justifyFull': 'Растянуть на всю ширину',\n        'insertUnorderedList': 'Включить/отключить маркированный список',\n        'insertOrderedList': 'Включить/отключить нумерованный список',\n        'outdent': 'Убрать отступ в текущем параграфе',\n        'indent': 'Вставить отступ в текущем параграфе',\n        'formatPara': 'Форматировать текущий блок как параграф (тег P)',\n        'formatH1': 'Форматировать текущий блок как H1',\n        'formatH2': 'Форматировать текущий блок как H2',\n        'formatH3': 'Форматировать текущий блок как H3',\n        'formatH4': 'Форматировать текущий блок как H4',\n        'formatH5': 'Форматировать текущий блок как H5',\n        'formatH6': 'Форматировать текущий блок как H6',\n        'insertHorizontalRule': 'Вставить горизонтальную черту',\n        'linkDialog.show': 'Показать диалог \"Ссылка\"'\n      },\n      history: {\n        undo: 'Отменить',\n        redo: 'Повтор'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ru-RU.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sk-SK.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 38);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 38:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'sk-SK': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podčiarknutie',\n        clear: 'Odstrániť štýl písma',\n        height: 'Výška riadku',\n        strikethrough: 'Prečiarknuté',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Veľkosť písma'\n      },\n      image: {\n        image: 'Obrázok',\n        insert: 'Vložiť obrázok',\n        resizeFull: 'Pôvodná veľkosť',\n        resizeHalf: 'Polovičná veľkosť',\n        resizeQuarter: 'Štvrtinová veľkosť',\n        floatLeft: 'Umiestniť doľava',\n        floatRight: 'Umiestniť doprava',\n        floatNone: 'Bez zarovnania',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Pretiahnuť sem obrázok',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Vybrať súbor',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL obrázku',\n        remove: 'Remove Image',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložiť video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvoriť odkaz',\n        unlink: 'Zrušiť odkaz',\n        edit: 'Upraviť',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na akú URL adresu má tento odkaz viesť?',\n        openInNewWindow: 'Otvoriť v novom okne'\n      },\n      table: {\n        table: 'Tabuľka',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Vložit vodorovnú čiaru'\n      },\n      style: {\n        style: 'Štýl',\n        p: 'Normálny',\n        blockquote: 'Citácia',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový zoznam',\n        ordered: 'Číselný zoznam'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odsek',\n        outdent: 'Zväčšiť odsadenie',\n        indent: 'Zmenšiť odsadenie',\n        left: 'Zarovnať doľava',\n        center: 'Zarovnať na stred',\n        right: 'Zarovnať doprava',\n        justify: 'Zarovnať obojstranne'\n      },\n      color: {\n        recent: 'Aktuálna farba',\n        more: 'Dalšie farby',\n        background: 'Farba pozadia',\n        foreground: 'Farba písma',\n        transparent: 'Priehľadnosť',\n        setTransparent: 'Nastaviť priehľadnosť',\n        reset: 'Obnoviť',\n        resetToDefault: 'Obnoviť prednastavené'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové skratky',\n        close: 'Zavrieť',\n        textFormatting: 'Formátovanie textu',\n        action: 'Akcia',\n        paragraphFormatting: 'Formátovanie odseku',\n        documentStyle: 'Štýl dokumentu'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok dopredu'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sk-SK.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sl-SI.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 39);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 39:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'sl-SI': {\n      font: {\n        bold: 'Krepko',\n        italic: 'Ležeče',\n        underline: 'Podčrtano',\n        clear: 'Počisti oblikovanje izbire',\n        height: 'Razmik med vrsticami',\n        name: 'Pisava',\n        strikethrough: 'Prečrtano',\n        subscript: 'Podpisano',\n        superscript: 'Nadpisano',\n        size: 'Velikost pisave'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Vstavi sliko',\n        resizeFull: 'Razširi na polno velikost',\n        resizeHalf: 'Razširi na polovico velikosti',\n        resizeQuarter: 'Razširi na četrtino velikosti',\n        floatLeft: 'Leva poravnava',\n        floatRight: 'Desna poravnava',\n        floatNone: 'Brez poravnave',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Sem povlecite sliko',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Izberi sliko za nalaganje',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL naslov slike',\n        remove: 'Odstrani sliko',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video povezava',\n        insert: 'Vstavi video',\n        url: 'Povezava do videa',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)'\n      },\n      link: {\n        link: 'Povezava',\n        insert: 'Vstavi povezavo',\n        unlink: 'Odstrani povezavo',\n        edit: 'Uredi',\n        textToDisplay: 'Prikazano besedilo',\n        url: 'Povezava',\n        openInNewWindow: 'Odpri v novem oknu'\n      },\n      table: {\n        table: 'Tabela',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Vstavi horizontalno črto'\n      },\n      style: {\n        style: 'Slogi',\n        p: 'Navadno besedilo',\n        blockquote: 'Citat',\n        pre: 'Koda',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Označen seznam',\n        ordered: 'Oštevilčen seznam'\n      },\n      options: {\n        help: 'Pomoč',\n        fullscreen: 'Celozaslonski način',\n        codeview: 'Pregled HTML kode'\n      },\n      paragraph: {\n        paragraph: 'Slogi odstavka',\n        outdent: 'Zmanjšaj odmik',\n        indent: 'Povečaj odmik',\n        left: 'Leva poravnava',\n        center: 'Desna poravnava',\n        right: 'Sredinska poravnava',\n        justify: 'Obojestranska poravnava'\n      },\n      color: {\n        recent: 'Uporabi zadnjo barvo',\n        more: 'Več barv',\n        background: 'Barva ozadja',\n        foreground: 'Barva besedila',\n        transparent: 'Brez barve',\n        setTransparent: 'Brez barve',\n        reset: 'Ponastavi',\n        resetToDefault: 'Ponastavi na privzeto'\n      },\n      shortcut: {\n        shortcuts: 'Bljižnice',\n        close: 'Zapri',\n        textFormatting: 'Oblikovanje besedila',\n        action: 'Dejanja',\n        paragraphFormatting: 'Oblikovanje odstavka',\n        documentStyle: 'Oblikovanje naslova',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Razveljavi',\n        redo: 'Uveljavi'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sl-SI.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sr-RS-Latin.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 40);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 40:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        name: 'Font Family',\n        strikethrough: 'Precrtano',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Umetni sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Uz levu ivicu',\n        floatRight: 'Uz desnu ivicu',\n        floatNone: 'Bez ravnanja',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Prevuci sliku ovde',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Izaberi iz datoteke',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza ka videu',\n        insert: 'Umetni video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Umetni vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tabela',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Umetni horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Zaglavlje 1',\n        h2: 'Zaglavlje 2',\n        h3: 'Zaglavlje 3',\n        h4: 'Zaglavlje 4',\n        h5: 'Zaglavlje 5',\n        h6: 'Zaglavlje 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerisana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko celog ekrana',\n        codeview: 'Izvorni kod'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povečaj uvlačenje',\n        left: 'Poravnaj u levo',\n        center: 'Centrirano',\n        right: 'Poravnaj u desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Poslednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Providna',\n        setTransparent: 'Providna',\n        reset: 'Opoziv',\n        resetToDefault: 'Podrazumevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice sa tastature',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sr-RS-Latin.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sr-RS.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 41);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 41:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Подебљано',\n        italic: 'Курзив',\n        underline: 'Подвучено',\n        clear: 'Уклони стилове фонта',\n        height: 'Висина линије',\n        name: 'Font Family',\n        strikethrough: 'Прецртано',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Величина фонта'\n      },\n      image: {\n        image: 'Слика',\n        insert: 'Уметни слику',\n        resizeFull: 'Пуна величина',\n        resizeHalf: 'Умањи на 50%',\n        resizeQuarter: 'Умањи на 25%',\n        floatLeft: 'Уз леву ивицу',\n        floatRight: 'Уз десну ивицу',\n        floatNone: 'Без равнања',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Превуци слику овде',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Изабери из датотеке',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Адреса слике',\n        remove: 'Уклони слику',\n        original: 'Original'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Веза ка видеу',\n        insert: 'Уметни видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Веза',\n        insert: 'Уметни везу',\n        unlink: 'Уклони везу',\n        edit: 'Уреди',\n        textToDisplay: 'Текст за приказ',\n        url: 'Интернет адреса',\n        openInNewWindow: 'Отвори у новом прозору'\n      },\n      table: {\n        table: 'Табела',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Уметни хоризонталну линију'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормални',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавље 1',\n        h2: 'Заглавље 2',\n        h3: 'Заглавље 3',\n        h4: 'Заглавље 4',\n        h5: 'Заглавље 5',\n        h6: 'Заглавље 6'\n      },\n      lists: {\n        unordered: 'Обична листа',\n        ordered: 'Нумерисана листа'\n      },\n      options: {\n        help: 'Помоћ',\n        fullscreen: 'Преко целог екрана',\n        codeview: 'Изворни код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Смањи увлачење',\n        indent: 'Повечај увлачење',\n        left: 'Поравнај у лево',\n        center: 'Центрирано',\n        right: 'Поравнај у десно',\n        justify: 'Поравнај обострано'\n      },\n      color: {\n        recent: 'Последња боја',\n        more: 'Више боја',\n        background: 'Боја позадине',\n        foreground: 'Боја текста',\n        transparent: 'Провидна',\n        setTransparent: 'Провидна',\n        reset: 'Опозив',\n        resetToDefault: 'Подразумевана'\n      },\n      shortcut: {\n        shortcuts: 'Пречице са тастатуре',\n        close: 'Затвори',\n        textFormatting: 'Форматирање текста',\n        action: 'Акција',\n        paragraphFormatting: 'Форматирање параграфа',\n        documentStyle: 'Стил документа',\n        extraKeys: 'Додатне комбинације'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Поништи',\n        redo: 'Понови'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sr-RS.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sv-SE.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 42);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 42:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'sv-SE': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understruken',\n        clear: 'Radera formatering',\n        height: 'Radavstånd',\n        name: 'Teckensnitt',\n        strikethrough: 'Genomstruken',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Teckenstorlek'\n      },\n      image: {\n        image: 'Bild',\n        insert: 'Infoga bild',\n        resizeFull: 'Full storlek',\n        resizeHalf: 'Halv storlek',\n        resizeQuarter: 'En fjärdedel i storlek',\n        floatLeft: 'Vänsterjusterad',\n        floatRight: 'Högerjusterad',\n        floatNone: 'Ingen justering',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Dra en bild hit',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Välj från filer',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Länk till bild',\n        remove: 'Ta bort bild',\n        original: 'Original'\n      },\n      video: {\n        video: 'Filmklipp',\n        videoLink: 'Länk till filmklipp',\n        insert: 'Infoga filmklipp',\n        url: 'Länk till filmklipp',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Länk',\n        insert: 'Infoga länk',\n        unlink: 'Ta bort länk',\n        edit: 'Redigera',\n        textToDisplay: 'Visningstext',\n        url: 'Till vilken URL ska denna länk peka?',\n        openInNewWindow: 'Öppna i ett nytt fönster'\n      },\n      table: {\n        table: 'Tabell',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Infoga horisontell linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Rubrik 1',\n        h2: 'Rubrik 2',\n        h3: 'Rubrik 3',\n        h4: 'Rubrik 4',\n        h5: 'Rubrik 5',\n        h6: 'Rubrik 6'\n      },\n      lists: {\n        unordered: 'Punktlista',\n        ordered: 'Numrerad lista'\n      },\n      options: {\n        help: 'Hjälp',\n        fullscreen: 'Fullskärm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Justera text',\n        outdent: 'Minska indrag',\n        indent: 'Öka indrag',\n        left: 'Vänsterjusterad',\n        center: 'Centrerad',\n        right: 'Högerjusterad',\n        justify: 'Justera text'\n      },\n      color: {\n        recent: 'Senast använda färg',\n        more: 'Fler färger',\n        background: 'Bakgrundsfärg',\n        foreground: 'Teckenfärg',\n        transparent: 'Genomskinlig',\n        setTransparent: 'Gör genomskinlig',\n        reset: 'Nollställ',\n        resetToDefault: 'Återställ till standard'\n      },\n      shortcut: {\n        shortcuts: 'Kortkommandon',\n        close: 'Stäng',\n        textFormatting: 'Textformatering',\n        action: 'Funktion',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Ångra',\n        redo: 'Gör om'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-sv-SE.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ta-IN.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 43);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 43:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'ta-IN': {\n      font: {\n        bold: 'தடித்த',\n        italic: 'சாய்வு',\n        underline: 'அடிக்கோடு',\n        clear: 'நீக்கு',\n        height: 'வரி  உயரம்',\n        name: 'எழுத்துரு பெயர்',\n        strikethrough: 'குறுக்குக் கோடு',\n        size: 'எழுத்துரு அளவு',\n        superscript: 'மேல் ஒட்டு',\n        subscript: 'கீழ் ஒட்டு'\n      },\n      image: {\n        image: 'படம்',\n        insert: 'படத்தை செருகு',\n        resizeFull: 'முழு அளவை',\n        resizeHalf: 'அரை அளவை',\n        resizeQuarter: 'கால் அளவை',\n        floatLeft: 'இடப்பக்கமாக வை',\n        floatRight: 'வலப்பக்கமாக வை',\n        floatNone: 'இயல்புநிலையில் வை',\n        shapeRounded: 'வட்டமான வடிவம்',\n        shapeCircle: 'வட்ட வடிவம்',\n        shapeThumbnail: 'சிறு வடிவம்',\n        shapeNone: 'வடிவத்தை நீக்கு',\n        dragImageHere: 'படத்தை இங்கே இழுத்துவை',\n        dropImage: 'படத்தை விடு',\n        selectFromFiles: 'கோப்புகளை தேர்வு செய்',\n        maximumFileSize: 'அதிகபட்ச கோப்பு அளவு',\n        maximumFileSizeError: 'கோப்பு அதிகபட்ச அளவை மீறிவிட்டது',\n        url: 'இணையதள முகவரி',\n        remove: 'படத்தை நீக்கு',\n        original: 'Original'\n      },\n      video: {\n        video: 'காணொளி',\n        videoLink: 'காணொளி இணைப்பு',\n        insert: 'காணொளியை செருகு',\n        url: 'இணையதள முகவரி',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'இணைப்பு',\n        insert: 'இணைப்பை செருகு',\n        unlink: 'இணைப்பை நீக்கு',\n        edit: 'இணைப்பை தொகு',\n        textToDisplay: 'காட்சி வாசகம்',\n        url: 'இணையதள முகவரி',\n        openInNewWindow: 'புதிய சாளரத்தில் திறக்க'\n      },\n      table: {\n        table: 'அட்டவணை',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'கிடைமட்ட கோடு'\n      },\n      style: {\n        style: 'தொகுப்பு',\n        p: 'பத்தி',\n        blockquote: 'மேற்கோள்',\n        pre: 'குறியீடு',\n        h1: 'தலைப்பு 1',\n        h2: 'தலைப்பு 2',\n        h3: 'தலைப்பு 3',\n        h4: 'தலைப்பு 4',\n        h5: 'தலைப்பு 5',\n        h6: 'தலைப்பு 6'\n      },\n      lists: {\n        unordered: 'வரிசையிடாத',\n        ordered: 'வரிசையிட்ட'\n      },\n      options: {\n        help: 'உதவி',\n        fullscreen: 'முழுத்திரை',\n        codeview: 'நிரலாக்க காட்சி'\n      },\n      paragraph: {\n        paragraph: 'பத்தி',\n        outdent: 'வெளித்தள்ளு',\n        indent: 'உள்ளே தள்ளு',\n        left: 'இடது சீரமைப்பு',\n        center: 'நடு சீரமைப்பு',\n        right: 'வலது சீரமைப்பு',\n        justify: 'இருபுற சீரமைப்பு'\n      },\n      color: {\n        recent: 'அண்மை நிறம்',\n        more: 'மேலும்',\n        background: 'பின்புல நிறம்',\n        foreground: 'முன்புற நிறம்',\n        transparent: 'தெளிமையான',\n        setTransparent: 'தெளிமையாக்கு',\n        reset: 'மீட்டமைக்க',\n        resetToDefault: 'இயல்புநிலைக்கு மீட்டமை'\n      },\n      shortcut: {\n        shortcuts: 'குறுக்குவழி',\n        close: 'மூடு',\n        textFormatting: 'எழுத்து வடிவமைப்பு',\n        action: 'செயல்படுத்து',\n        paragraphFormatting: 'பத்தி வடிவமைப்பு',\n        documentStyle: 'ஆவண பாணி',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'மீளமை',\n        redo: 'மீண்டும்'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-ta-IN.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-th-TH.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 44);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 44:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'th-TH': {\n      font: {\n        bold: 'ตัวหนา',\n        italic: 'ตัวเอียง',\n        underline: 'ขีดเส้นใต้',\n        clear: 'ล้างรูปแบบตัวอักษร',\n        height: 'ความสูงบรรทัด',\n        name: 'แบบตัวอักษร',\n        strikethrough: 'ขีดฆ่า',\n        subscript: 'ตัวห้อย',\n        superscript: 'ตัวยก',\n        size: 'ขนาดตัวอักษร'\n      },\n      image: {\n        image: 'รูปภาพ',\n        insert: 'แทรกรูปภาพ',\n        resizeFull: 'ปรับขนาดเท่าจริง',\n        resizeHalf: 'ปรับขนาดลง 50%',\n        resizeQuarter: 'ปรับขนาดลง 25%',\n        floatLeft: 'ชิดซ้าย',\n        floatRight: 'ชิดขวา',\n        floatNone: 'ไม่จัดตำแหน่ง',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่',\n        dropImage: 'วางรูปภาพหรือข้อความ',\n        selectFromFiles: 'เลือกไฟล์รูปภาพ',\n        maximumFileSize: 'ขนาดไฟล์ใหญ่สุด',\n        maximumFileSizeError: 'ไฟล์เกินขนาดที่กำหนด',\n        url: 'ที่อยู่ URL ของรูปภาพ',\n        remove: 'ลบรูปภาพ',\n        original: 'Original'\n      },\n      video: {\n        video: 'วีดีโอ',\n        videoLink: 'ลิงก์ของวีดีโอ',\n        insert: 'แทรกวีดีโอ',\n        url: 'ที่อยู่ URL ของวีดีโอ',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)'\n      },\n      link: {\n        link: 'ตัวเชื่อมโยง',\n        insert: 'แทรกตัวเชื่อมโยง',\n        unlink: 'ยกเลิกตัวเชื่อมโยง',\n        edit: 'แก้ไข',\n        textToDisplay: 'ข้อความที่ให้แสดง',\n        url: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?',\n        openInNewWindow: 'เปิดในหน้าต่างใหม่'\n      },\n      table: {\n        table: 'ตาราง',\n        addRowAbove: 'เพิ่มแถวด้านบน',\n        addRowBelow: 'เพิ่มแถวด้านล่าง',\n        addColLeft: 'เพิ่มคอลัมน์ด้านซ้าย',\n        addColRight: 'เพิ่มคอลัมน์ด้านขวา',\n        delRow: 'ลบแถว',\n        delCol: 'ลบคอลัมน์',\n        delTable: 'ลบตาราง'\n      },\n      hr: {\n        insert: 'แทรกเส้นคั่น'\n      },\n      style: {\n        style: 'รูปแบบ',\n        p: 'ปกติ',\n        blockquote: 'ข้อความ',\n        pre: 'โค้ด',\n        h1: 'หัวข้อ 1',\n        h2: 'หัวข้อ 2',\n        h3: 'หัวข้อ 3',\n        h4: 'หัวข้อ 4',\n        h5: 'หัวข้อ 5',\n        h6: 'หัวข้อ 6'\n      },\n      lists: {\n        unordered: 'รายการแบบไม่มีลำดับ',\n        ordered: 'รายการแบบมีลำดับ'\n      },\n      options: {\n        help: 'ช่วยเหลือ',\n        fullscreen: 'ขยายเต็มหน้าจอ',\n        codeview: 'ซอร์สโค้ด'\n      },\n      paragraph: {\n        paragraph: 'ย่อหน้า',\n        outdent: 'เยื้องซ้าย',\n        indent: 'เยื้องขวา',\n        left: 'จัดหน้าชิดซ้าย',\n        center: 'จัดหน้ากึ่งกลาง',\n        right: 'จัดหน้าชิดขวา',\n        justify: 'จัดบรรทัดเสมอกัน'\n      },\n      color: {\n        recent: 'สีที่ใช้ล่าสุด',\n        more: 'สีอื่นๆ',\n        background: 'สีพื้นหลัง',\n        foreground: 'สีพื้นหน้า',\n        transparent: 'โปร่งแสง',\n        setTransparent: 'ตั้งค่าความโปร่งแสง',\n        reset: 'คืนค่า',\n        resetToDefault: 'คืนค่ามาตรฐาน'\n      },\n      shortcut: {\n        shortcuts: 'แป้นลัด',\n        close: 'ปิด',\n        textFormatting: 'การจัดรูปแบบข้อความ',\n        action: 'การกระทำ',\n        paragraphFormatting: 'การจัดรูปแบบย่อหน้า',\n        documentStyle: 'รูปแบบของเอกสาร',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'ทำตัวหนา',\n        'italic': 'ทำตัวเอียง',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H1',\n        'formatH2': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H2',\n        'formatH3': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H3',\n        'formatH4': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H4',\n        'formatH5': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H5',\n        'formatH6': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'เปิดหน้าแก้ไข Link'\n      },\n      history: {\n        undo: 'ยกเลิกการกระทำ',\n        redo: 'ทำซ้ำการกระทำ'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-th-TH.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-tr-TR.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'tr-TR': {\n      font: {\n        bold: 'Kalın',\n        italic: 'İtalik',\n        underline: 'Altı çizili',\n        clear: 'Temizle',\n        height: 'Satır yüksekliği',\n        name: 'Yazı Tipi',\n        strikethrough: 'Üstü çizili',\n        subscript: 'Alt Simge',\n        superscript: 'Üst Simge',\n        size: 'Yazı tipi boyutu'\n      },\n      image: {\n        image: 'Resim',\n        insert: 'Resim ekle',\n        resizeFull: 'Orjinal boyut',\n        resizeHalf: '1/2 boyut',\n        resizeQuarter: '1/4 boyut',\n        floatLeft: 'Sola hizala',\n        floatRight: 'Sağa hizala',\n        floatNone: 'Hizalamayı kaldır',\n        shapeRounded: 'Şekil: Yuvarlatılmış Köşe',\n        shapeCircle: 'Şekil: Daire',\n        shapeThumbnail: 'Şekil: K.Resim',\n        shapeNone: 'Şekil: Yok',\n        dragImageHere: 'Buraya sürükleyin',\n        dropImage: 'Resim veya metni bırakın',\n        selectFromFiles: 'Dosya seçin',\n        maximumFileSize: 'Maksimum dosya boyutu',\n        maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.',\n        url: 'Resim bağlantısı',\n        remove: 'Resimi Kaldır',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video bağlantısı',\n        insert: 'Video ekle',\n        url: 'Video bağlantısı?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)'\n      },\n      link: {\n        link: 'Bağlantı',\n        insert: 'Bağlantı ekle',\n        unlink: 'Bağlantıyı kaldır',\n        edit: 'Bağlantıyı düzenle',\n        textToDisplay: 'Görüntülemek için',\n        url: 'Bağlantı adresi?',\n        openInNewWindow: 'Yeni pencerede aç'\n      },\n      table: {\n        table: 'Tablo',\n        addRowAbove: 'Yukarı satır ekle',\n        addRowBelow: 'Aşağı satır ekle',\n        addColLeft: 'Sola sütun ekle',\n        addColRight: 'Sağa sütun ekle',\n        delRow: 'Satırı sil',\n        delCol: 'Sütunu sil',\n        delTable: 'Tabloyu sil'\n      },\n      hr: {\n        insert: 'Yatay çizgi ekle'\n      },\n      style: {\n        style: 'Biçim',\n        p: 'p',\n        blockquote: 'Alıntı',\n        pre: 'Önbiçimli',\n        h1: 'Başlık 1',\n        h2: 'Başlık 2',\n        h3: 'Başlık 3',\n        h4: 'Başlık 4',\n        h5: 'Başlık 5',\n        h6: 'Başlık 6'\n      },\n      lists: {\n        unordered: 'Madde işaretli liste',\n        ordered: 'Numaralı liste'\n      },\n      options: {\n        help: 'Yardım',\n        fullscreen: 'Tam ekran',\n        codeview: 'HTML Kodu'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Girintiyi artır',\n        indent: 'Girintiyi azalt',\n        left: 'Sola hizala',\n        center: 'Ortaya hizala',\n        right: 'Sağa hizala',\n        justify: 'Yasla'\n      },\n      color: {\n        recent: 'Son renk',\n        more: 'Daha fazla renk',\n        background: 'Arka plan rengi',\n        foreground: 'Yazı rengi',\n        transparent: 'Seffaflık',\n        setTransparent: 'Şeffaflığı ayarla',\n        reset: 'Sıfırla',\n        resetToDefault: 'Varsayılanlara sıfırla'\n      },\n      shortcut: {\n        shortcuts: 'Kısayollar',\n        close: 'Kapat',\n        textFormatting: 'Yazı biçimlendirme',\n        action: 'Eylem',\n        paragraphFormatting: 'Paragraf biçimlendirme',\n        documentStyle: 'Biçim',\n        extraKeys: 'İlave anahtarlar'\n      },\n      help: {\n        'insertParagraph': 'Paragraf ekler',\n        'undo': 'Son komudu geri alır',\n        'redo': 'Son komudu yineler',\n        'tab': 'Girintiyi artırır',\n        'untab': 'Girintiyi azaltır',\n        'bold': 'Kalın yazma stilini ayarlar',\n        'italic': 'İtalik yazma stilini ayarlar',\n        'underline': 'Altı çizgili yazma stilini ayarlar',\n        'strikethrough': 'Üstü çizgili yazma stilini ayarlar',\n        'removeFormat': 'Biçimlendirmeyi temizler',\n        'justifyLeft': 'Yazıyı sola hizalar',\n        'justifyCenter': 'Yazıyı ortalar',\n        'justifyRight': 'Yazıyı sağa hizalar',\n        'justifyFull': 'Yazıyı her iki tarafa yazlar',\n        'insertUnorderedList': 'Madde işaretli liste ekler',\n        'insertOrderedList': 'Numaralı liste ekler',\n        'outdent': 'Aktif paragrafın girintisini azaltır',\n        'indent': 'Aktif paragrafın girintisini artırır',\n        'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir',\n        'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir',\n        'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir',\n        'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir',\n        'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir',\n        'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir',\n        'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir',\n        'insertHorizontalRule': 'Yatay çizgi ekler',\n        'linkDialog.show': 'Bağlantı ayar kutusunu gösterir'\n      },\n      history: {\n        undo: 'Geri al',\n        redo: 'Yinele'\n      },\n      specialChar: {\n        specialChar: 'ÖZEL KARAKTERLER',\n        select: 'Özel Karakterleri seçin'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-tr-TR.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-uk-UA.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 46);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 46:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'uk-UA': {\n      font: {\n        bold: 'Напівжирний',\n        italic: 'Курсив',\n        underline: 'Підкреслений',\n        clear: 'Прибрати стилі шрифту',\n        height: 'Висота лінії',\n        name: 'Шрифт',\n        strikethrough: 'Закреслений',\n        subscript: 'Нижній індекс',\n        superscript: 'Верхній індекс',\n        size: 'Розмір шрифту'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставити картинку',\n        resizeFull: 'Відновити розмір',\n        resizeHalf: 'Зменшити до 50%',\n        resizeQuarter: 'Зменшити до 25%',\n        floatLeft: 'Розташувати ліворуч',\n        floatRight: 'Розташувати праворуч',\n        floatNone: 'Початкове розташування',\n        shapeRounded: 'Форма: Заокруглена',\n        shapeCircle: 'Форма: Коло',\n        shapeThumbnail: 'Форма: Мініатюра',\n        shapeNone: 'Форма: Немає',\n        dragImageHere: 'Перетягніть сюди картинку',\n        dropImage: 'Перетягніть картинку',\n        selectFromFiles: 'Вибрати з файлів',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL картинки',\n        remove: 'Видалити картинку',\n        original: 'Original'\n      },\n      video: {\n        video: 'Відео',\n        videoLink: 'Посилання на відео',\n        insert: 'Вставити відео',\n        url: 'URL відео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)'\n      },\n      link: {\n        link: 'Посилання',\n        insert: 'Вставити посилання',\n        unlink: 'Прибрати посилання',\n        edit: 'Редагувати',\n        textToDisplay: 'Текст, що відображається',\n        url: 'URL для переходу',\n        openInNewWindow: 'Відкривати у новому вікні'\n      },\n      table: {\n        table: 'Таблиця',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Вставити горизонтальну лінію'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальний',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркований список',\n        ordered: 'Нумерований список'\n      },\n      options: {\n        help: 'Допомога',\n        fullscreen: 'На весь екран',\n        codeview: 'Початковий код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Зменшити відступ',\n        indent: 'Збільшити відступ',\n        left: 'Вирівняти по лівому краю',\n        center: 'Вирівняти по центру',\n        right: 'Вирівняти по правому краю',\n        justify: 'Розтягнути по ширині'\n      },\n      color: {\n        recent: 'Останній колір',\n        more: 'Ще кольори',\n        background: 'Колір фону',\n        foreground: 'Колір шрифту',\n        transparent: 'Прозорий',\n        setTransparent: 'Зробити прозорим',\n        reset: 'Відновити',\n        resetToDefault: 'Відновити початкові'\n      },\n      shortcut: {\n        shortcuts: 'Комбінації клавіш',\n        close: 'Закрити',\n        textFormatting: 'Форматування тексту',\n        action: 'Дія',\n        paragraphFormatting: 'Форматування параграфу',\n        documentStyle: 'Стиль документу',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Відмінити',\n        redo: 'Повторити'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-uk-UA.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-uz-UZ.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 47);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 47:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'uz-UZ': {\n      font: {\n        bold: 'қалин',\n        italic: 'Курсив',\n        underline: 'Белгиланган',\n        clear: 'Ҳарф турларини олиб ташлаш',\n        height: 'Чизиқ баландлиги',\n        name: 'Ҳарф',\n        strikethrough: 'Ўчирилган',\n        subscript: 'Пастки индекс',\n        superscript: 'Юқори индекс',\n        size: 'ҳарф ҳажми'\n      },\n      image: {\n        image: 'Расм',\n        insert: 'расмни қўйиш',\n        resizeFull: 'Ҳажмни тиклаш',\n        resizeHalf: '50% гача кичрайтириш',\n        resizeQuarter: '25% гача кичрайтириш',\n        floatLeft: 'Чапда жойлаштириш',\n        floatRight: 'Ўнгда жойлаштириш',\n        floatNone: 'Стандарт бўйича жойлашув',\n        shapeRounded: 'Шакли: Юмалоқ',\n        shapeCircle: 'Шакли: Доира',\n        shapeThumbnail: 'Шакли: Миниатюра',\n        shapeNone: 'Шакли: Йўқ',\n        dragImageHere: 'Суратни кўчириб ўтинг',\n        dropImage: 'Суратни кўчириб ўтинг',\n        selectFromFiles: 'Файллардан бирини танлаш',\n        url: 'суратлар URL и',\n        remove: 'Суратни ўчириш'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Видеога ҳавола',\n        insert: 'Видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Ҳавола',\n        insert: 'Ҳаволани қўйиш',\n        unlink: 'Ҳаволани олиб ташлаш',\n        edit: 'Таҳрир қилиш',\n        textToDisplay: 'Кўринадиган матн',\n        url: 'URL ўтиш учун',\n        openInNewWindow: 'Янги дарчада очиш'\n      },\n      table: {\n        table: 'Жадвал'\n      },\n      hr: {\n        insert: 'Горизонтал чизиқни қўйиш'\n      },\n      style: {\n        style: 'Услуб',\n        p: 'Яхши',\n        blockquote: 'Жумла',\n        pre: 'Код',\n        h1: 'Сарлавҳа 1',\n        h2: 'Сарлавҳа  2',\n        h3: 'Сарлавҳа  3',\n        h4: 'Сарлавҳа  4',\n        h5: 'Сарлавҳа  5',\n        h6: 'Сарлавҳа  6'\n      },\n      lists: {\n        unordered: 'Белгиланган рўйҳат',\n        ordered: 'Рақамланган рўйҳат'\n      },\n      options: {\n        help: 'Ёрдам',\n        fullscreen: 'Бутун экран бўйича',\n        codeview: 'Бошланғич код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Орқага қайтишни камайтириш',\n        indent: 'Орқага қайтишни кўпайтириш',\n        left: 'Чап қирғоққа тўғрилаш',\n        center: 'Марказга тўғрилаш',\n        right: 'Ўнг қирғоққа тўғрилаш',\n        justify: 'Эни бўйлаб чўзиш'\n      },\n      color: {\n        recent: 'Охирги ранг',\n        more: 'Яна ранглар',\n        background: 'Фон  ранги',\n        foreground: 'Ҳарф ранги',\n        transparent: 'Шаффоф',\n        setTransparent: 'Шаффофдай қилиш',\n        reset: 'Бекор қилиш',\n        resetToDefault: 'Стандартга оид тиклаш'\n      },\n      shortcut: {\n        shortcuts: 'Клавишларнинг ҳамохҳанглиги',\n        close: 'Ёпиқ',\n        textFormatting: 'Матнни ',\n        action: 'Ҳаркат',\n        paragraphFormatting: 'Параграфни форматлаш',\n        documentStyle: 'Ҳужжатнинг тури',\n        extraKeys: 'Қўшимча имкониятлар'\n      },\n      history: {\n        undo: 'Бекор қилиш',\n        redo: 'Қайтариш'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-uz-UZ.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-vi-VN.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 48);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 48:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'vi-VN': {\n      font: {\n        bold: 'In Đậm',\n        italic: 'In Nghiêng',\n        underline: 'Gạch dưới',\n        clear: 'Bỏ định dạng',\n        height: 'Chiều cao dòng',\n        name: 'Phông chữ',\n        strikethrough: 'Gạch ngang',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Cỡ chữ'\n      },\n      image: {\n        image: 'Hình ảnh',\n        insert: 'Chèn',\n        resizeFull: '100%',\n        resizeHalf: '50%',\n        resizeQuarter: '25%',\n        floatLeft: 'Trôi về trái',\n        floatRight: 'Trôi về phải',\n        floatNone: 'Không trôi',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Thả Ảnh ở vùng này',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Chọn từ File',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'URL',\n        remove: 'Xóa',\n        original: 'Original'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link đến Video',\n        insert: 'Chèn Video',\n        url: 'URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Chèn Link',\n        unlink: 'Gỡ Link',\n        edit: 'Sửa',\n        textToDisplay: 'Văn bản hiển thị',\n        url: 'URL',\n        openInNewWindow: 'Mở ở Cửa sổ mới'\n      },\n      table: {\n        table: 'Bảng',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: 'Chèn'\n      },\n      style: {\n        style: 'Kiểu chữ',\n        p: 'Chữ thường',\n        blockquote: 'Đoạn trích',\n        pre: 'Mã Code',\n        h1: 'H1',\n        h2: 'H2',\n        h3: 'H3',\n        h4: 'H4',\n        h5: 'H5',\n        h6: 'H6'\n      },\n      lists: {\n        unordered: 'Liệt kê danh sách',\n        ordered: 'Liệt kê theo thứ tự'\n      },\n      options: {\n        help: 'Trợ giúp',\n        fullscreen: 'Toàn Màn hình',\n        codeview: 'Xem Code'\n      },\n      paragraph: {\n        paragraph: 'Canh lề',\n        outdent: 'Dịch sang trái',\n        indent: 'Dịch sang phải',\n        left: 'Canh trái',\n        center: 'Canh giữa',\n        right: 'Canh phải',\n        justify: 'Canh đều'\n      },\n      color: {\n        recent: 'Màu chữ',\n        more: 'Mở rộng',\n        background: 'Màu nền',\n        foreground: 'Màu chữ',\n        transparent: 'trong suốt',\n        setTransparent: 'Nền trong suốt',\n        reset: 'Thiết lập lại',\n        resetToDefault: 'Trở lại ban đầu'\n      },\n      shortcut: {\n        shortcuts: 'Phím tắt',\n        close: 'Đóng',\n        textFormatting: 'Định dạng Văn bản',\n        action: 'Hành động',\n        paragraphFormatting: 'Định dạng',\n        documentStyle: 'Kiểu văn bản',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Lùi lại',\n        redo: 'Làm lại'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-vi-VN.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-zh-CN.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 49);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 49:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-CN': {\n      font: {\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        clear: '清除格式',\n        height: '行高',\n        name: '字体',\n        strikethrough: '删除线',\n        subscript: '下标',\n        superscript: '上标',\n        size: '字号'\n      },\n      image: {\n        image: '图片',\n        insert: '插入图片',\n        resizeFull: '缩放至 100%',\n        resizeHalf: '缩放至 50%',\n        resizeQuarter: '缩放至 25%',\n        floatLeft: '靠左浮动',\n        floatRight: '靠右浮动',\n        floatNone: '取消浮动',\n        shapeRounded: '形状: 圆角',\n        shapeCircle: '形状: 圆',\n        shapeThumbnail: '形状: 缩略图',\n        shapeNone: '形状: 无',\n        dragImageHere: '将图片拖拽至此处',\n        dropImage: '拖拽图片或文本',\n        selectFromFiles: '从本地上传',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '图片地址',\n        remove: '移除图片',\n        original: '原始图片'\n      },\n      video: {\n        video: '视频',\n        videoLink: '视频链接',\n        insert: '插入视频',\n        url: '视频地址',\n        providers: '(优酷, 腾讯, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '链接',\n        insert: '插入链接',\n        unlink: '去除链接',\n        edit: '编辑链接',\n        textToDisplay: '显示文本',\n        url: '链接地址',\n        openInNewWindow: '在新窗口打开'\n      },\n      table: {\n        table: '表格',\n        addRowAbove: '在上方插入行',\n        addRowBelow: '在下方插入行',\n        addColLeft: '在左侧插入列',\n        addColRight: '在右侧插入列',\n        delRow: '删除行',\n        delCol: '删除列',\n        delTable: '删除表格'\n      },\n      hr: {\n        insert: '水平线'\n      },\n      style: {\n        style: '样式',\n        p: '普通',\n        blockquote: '引用',\n        pre: '代码',\n        h1: '标题 1',\n        h2: '标题 2',\n        h3: '标题 3',\n        h4: '标题 4',\n        h5: '标题 5',\n        h6: '标题 6'\n      },\n      lists: {\n        unordered: '无序列表',\n        ordered: '有序列表'\n      },\n      options: {\n        help: '帮助',\n        fullscreen: '全屏',\n        codeview: '源代码'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        left: '左对齐',\n        center: '居中对齐',\n        right: '右对齐',\n        justify: '两端对齐'\n      },\n      color: {\n        recent: '最近使用',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重置',\n        resetToDefault: '默认'\n      },\n      shortcut: {\n        shortcuts: '快捷键',\n        close: '关闭',\n        textFormatting: '文本格式',\n        action: '动作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文档样式',\n        extraKeys: '额外按键'\n      },\n      help: {\n        insertParagraph: '插入段落',\n        undo: '撤销',\n        redo: '重做',\n        tab: '增加缩进',\n        untab: '减少缩进',\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        strikethrough: '删除线',\n        removeFormat: '清除格式',\n        justifyLeft: '左对齐',\n        justifyCenter: '居中对齐',\n        justifyRight: '右对齐',\n        justifyFull: '两端对齐',\n        insertUnorderedList: '无序列表',\n        insertOrderedList: '有序列表',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        formatPara: '设置选中内容样式为 普通',\n        formatH1: '设置选中内容样式为 标题1',\n        formatH2: '设置选中内容样式为 标题2',\n        formatH3: '设置选中内容样式为 标题3',\n        formatH4: '设置选中内容样式为 标题4',\n        formatH5: '设置选中内容样式为 标题5',\n        formatH6: '设置选中内容样式为 标题6',\n        insertHorizontalRule: '插入水平线',\n        'linkDialog.show': '显示链接对话框'\n      },\n      history: {\n        undo: '撤销',\n        redo: '重做'\n      },\n      specialChar: {\n        specialChar: '特殊字符',\n        select: '选取特殊字符'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-zh-CN.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-zh-TW.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 50);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 50:\n/***/ (function(module, exports) {\n\n(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-TW': {\n      font: {\n        bold: '粗體',\n        italic: '斜體',\n        underline: '底線',\n        clear: '清除格式',\n        height: '行高',\n        name: '字體',\n        strikethrough: '刪除線',\n        subscript: '下標',\n        superscript: '上標',\n        size: '字號'\n      },\n      image: {\n        image: '圖片',\n        insert: '插入圖片',\n        resizeFull: '縮放至100%',\n        resizeHalf: '縮放至 50%',\n        resizeQuarter: '縮放至 25%',\n        floatLeft: '靠左浮動',\n        floatRight: '靠右浮動',\n        floatNone: '取消浮動',\n        shapeRounded: '形狀: 圓角',\n        shapeCircle: '形狀: 圓',\n        shapeThumbnail: '形狀: 縮略圖',\n        shapeNone: '形狀: 無',\n        dragImageHere: '將圖片拖曳至此處',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: '從本機上傳',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '圖片網址',\n        remove: '移除圖片',\n        original: 'Original'\n      },\n      video: {\n        video: '影片',\n        videoLink: '影片連結',\n        insert: '插入影片',\n        url: '影片網址',\n        providers: '(優酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '連結',\n        insert: '插入連結',\n        unlink: '取消連結',\n        edit: '編輯連結',\n        textToDisplay: '顯示文字',\n        url: '連結網址',\n        openInNewWindow: '在新視窗開啟'\n      },\n      table: {\n        table: '表格',\n        addRowAbove: 'Add row above',\n        addRowBelow: 'Add row below',\n        addColLeft: 'Add column left',\n        addColRight: 'Add column right',\n        delRow: 'Delete row',\n        delCol: 'Delete column',\n        delTable: 'Delete table'\n      },\n      hr: {\n        insert: '水平線'\n      },\n      style: {\n        style: '樣式',\n        p: '一般',\n        blockquote: '引用區塊',\n        pre: '程式碼區塊',\n        h1: '標題 1',\n        h2: '標題 2',\n        h3: '標題 3',\n        h4: '標題 4',\n        h5: '標題 5',\n        h6: '標題 6'\n      },\n      lists: {\n        unordered: '項目清單',\n        ordered: '編號清單'\n      },\n      options: {\n        help: '幫助',\n        fullscreen: '全螢幕',\n        codeview: '原始碼'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '取消縮排',\n        indent: '增加縮排',\n        left: '靠右對齊',\n        center: '靠中對齊',\n        right: '靠右對齊',\n        justify: '左右對齊'\n      },\n      color: {\n        recent: '字型顏色',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重設',\n        resetToDefault: '默認'\n      },\n      shortcut: {\n        shortcuts: '快捷鍵',\n        close: '關閉',\n        textFormatting: '文字格式',\n        action: '動作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文件格式',\n        extraKeys: '額外按鍵'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: '復原',\n        redo: '取消復原'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n})(jQuery);\n\n/***/ })\n\n/******/ });\n});"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/lang/summernote-zh-TW.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/plugin/databasic/summernote-ext-databasic.css",
    "content": ".ext-databasic {\n\tposition: relative;\n\tdisplay: block;\n\tmin-height: 50px;\n\tbackground-color: cyan;\n\ttext-align: center;\n\tpadding: 20px;\n\tborder: 1px solid white;\n\tborder-radius: 10px;\n}\n\n.ext-databasic p {\n\tcolor: white;\n\tfont-size: 1.2em;\n\tmargin: 0;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/plugin/databasic/summernote-ext-databasic.js",
    "content": "(function(factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function($) {\n  // pull in some summernote core functions\n  var ui = $.summernote.ui;\n  var dom = $.summernote.dom;\n\n  // define the popover plugin\n  var DataBasicPlugin = function(context) {\n    var self = this;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    self.icon = '<i class=\"fa fa-object-group\"/>';\n\n    // add context menu button for dialog\n    context.memo('button.databasic', function() {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.insert,\n        click: context.createInvokeHandler('databasic.showDialog'),\n      }).render();\n    });\n\n    // add popover edit button\n    context.memo('button.databasicDialog', function() {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.edit,\n        click: context.createInvokeHandler('databasic.showDialog'),\n      }).render();\n    });\n\n    //  add popover size buttons\n    context.memo('button.databasicSize100', function() {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: lang.image.resizeFull,\n        click: context.createInvokeHandler('editor.resize', '1'),\n      }).render();\n    });\n    context.memo('button.databasicSize50', function() {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: lang.image.resizeHalf,\n        click: context.createInvokeHandler('editor.resize', '0.5'),\n      }).render();\n    });\n    context.memo('button.databasicSize25', function() {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: lang.image.resizeQuarter,\n        click: context.createInvokeHandler('editor.resize', '0.25'),\n      }).render();\n    });\n\n    self.events = {\n      'summernote.init': function(we, e) {\n        // update existing containers\n        $('data.ext-databasic', e.editable).each(function() { self.setContent($(this)); });\n        // TODO: make this an undo snapshot...\n      },\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function() {\n        self.update();\n      },\n      'summernote.dialog.shown': function() {\n        self.hidePopover();\n      },\n    };\n\n    self.initialize = function() {\n      // create dialog markup\n      var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.databasic.testLabel + '</label>' +\n          '<input class=\"ext-databasic-test form-control\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary ext-databasic-save\">' + lang.databasic.insert + '</button>';\n\n      self.$dialog = ui.dialog({\n        title: lang.databasic.name,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer,\n      }).render().appendTo($container);\n\n      // create popover\n      self.$popover = ui.popover({\n        className: 'ext-databasic-popover',\n      }).render().appendTo('body');\n      var $content = self.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.databasic);\n    };\n\n    self.destroy = function() {\n      self.$popover.remove();\n      self.$popover = null;\n      self.$dialog.remove();\n      self.$dialog = null;\n    };\n\n    self.update = function() {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        self.hidePopover();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      var visible = false;\n\n      if (rng.isOnData()) {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n\n        if ($data.length) {\n          var pos = dom.posFromPlaceholder($data[0]);\n\n          self.$popover.css({\n            display: 'block',\n            left: pos.left,\n            top: pos.top,\n          });\n\n          // save editor target to let size buttons resize the container\n          context.invoke('editor.saveTarget', $data[0]);\n\n          visible = true;\n        }\n      }\n\n      // hide if not visible\n      if (!visible) {\n        self.hidePopover();\n      }\n    };\n\n    self.hidePopover = function() {\n      self.$popover.hide();\n    };\n\n    // define plugin dialog\n    self.getInfo = function() {\n      var rng = context.invoke('editor.createRange');\n\n      if (rng.isOnData()) {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n\n        if ($data.length) {\n          // Get the first node on range(for edit).\n          return {\n            node: $data,\n            test: $data.attr('data-test'),\n          };\n        }\n      }\n\n      return {};\n    };\n\n    self.setContent = function($node) {\n      $node.html('<p contenteditable=\"false\">' + self.icon + ' ' + lang.databasic.name + ': ' +\n        $node.attr('data-test') + '</p>');\n    };\n\n    self.updateNode = function(info) {\n      self.setContent(info.node\n        .attr('data-test', info.test));\n    };\n\n    self.createNode = function(info) {\n      var $node = $('<data class=\"ext-databasic\"></data>');\n\n      if ($node) {\n        // save node to info structure\n        info.node = $node;\n        // insert node into editor dom\n        context.invoke('editor.insertNode', $node[0]);\n      }\n\n      return $node;\n    };\n\n    self.showDialog = function() {\n      var info = self.getInfo();\n      var newNode = !info.node;\n      context.invoke('editor.saveRange');\n\n      self\n        .openDialog(info)\n        .then(function(dialogInfo) {\n          // [workaround] hide dialog before restore range for IE range focus\n          ui.hideDialog(self.$dialog);\n          context.invoke('editor.restoreRange');\n\n          // insert a new node\n          if (newNode) {\n            self.createNode(info);\n          }\n\n          // update info with dialog info\n          $.extend(info, dialogInfo);\n\n          self.updateNode(info);\n        })\n        .fail(function() {\n          context.invoke('editor.restoreRange');\n        });\n    };\n\n    self.openDialog = function(info) {\n      return $.Deferred(function(deferred) {\n        var $inpTest = self.$dialog.find('.ext-databasic-test');\n        var $saveBtn = self.$dialog.find('.ext-databasic-save');\n        var onKeyup = function(event) {\n          if (event.keyCode === 13) {\n            $saveBtn.trigger('click');\n          }\n        };\n\n        ui.onDialogShown(self.$dialog, function() {\n          context.triggerEvent('dialog.shown');\n\n          $inpTest.val(info.test).on('input', function() {\n            ui.toggleBtn($saveBtn, $inpTest.val());\n          }).trigger('focus').on('keyup', onKeyup);\n\n          $saveBtn\n            .text(info.node ? lang.databasic.edit : lang.databasic.insert)\n            .click(function(event) {\n              event.preventDefault();\n\n              deferred.resolve({ test: $inpTest.val() });\n            });\n\n          // init save button\n          ui.toggleBtn($saveBtn, $inpTest.val());\n        });\n\n        ui.onDialogHidden(self.$dialog, function() {\n          $inpTest.off('input keyup');\n          $saveBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  // Extends summernote\n  $.extend(true, $.summernote, {\n    plugins: {\n      databasic: DataBasicPlugin,\n    },\n\n    options: {\n      popover: {\n        databasic: [\n          ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']],\n        ],\n      },\n    },\n\n    // add localization texts\n    lang: {\n      'en-US': {\n        databasic: {\n          name: 'Basic Data Container',\n          insert: 'insert basic data container',\n          edit: 'edit basic data container',\n          testLabel: 'test input',\n        },\n      },\n    },\n\n  });\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/plugin/hello/summernote-ext-hello.js",
    "content": "(function(factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function($) {\n  // Extends plugins for adding hello.\n  //  - plugin is external module for customizing.\n  $.extend($.summernote.plugins, {\n    /**\n     * @param {Object} context - context object has status of editor.\n     */\n    'hello': function(context) {\n      var self = this;\n\n      // ui has renders to build ui elements.\n      //  - you can create a button with `ui.button`\n      var ui = $.summernote.ui;\n\n      // add hello button\n      context.memo('button.hello', function() {\n        // create button\n        var button = ui.button({\n          contents: '<i class=\"fa fa-child\"/> Hello',\n          tooltip: 'hello',\n          click: function() {\n            self.$panel.show();\n            self.$panel.hide(500);\n            // invoke insertText method with 'hello' on editor module.\n            context.invoke('editor.insertText', 'hello');\n          },\n        });\n\n        // create jQuery object from button instance.\n        var $hello = button.render();\n        return $hello;\n      });\n\n      // This events will be attached when editor is initialized.\n      this.events = {\n        // This will be called after modules are initialized.\n        'summernote.init': function(we, e) {\n          // eslint-disable-next-line\n          console.log('summernote initialized', we, e);\n        },\n        // This will be called when user releases a key on editable.\n        'summernote.keyup': function(we, e) {\n          // eslint-disable-next-line\n          console.log('summernote keyup', we, e);\n        },\n      };\n\n      // This method will be called when editor is initialized by $('..').summernote();\n      // You can create elements for plugin\n      this.initialize = function() {\n        this.$panel = $('<div class=\"hello-panel\"/>').css({\n          position: 'absolute',\n          width: 100,\n          height: 100,\n          left: '50%',\n          top: '50%',\n          background: 'red',\n        }).hide();\n\n        this.$panel.appendTo('body');\n      };\n\n      // This methods will be called when editor is destroyed by $('..').summernote('destroy');\n      // You should remove elements on `initialize`.\n      this.destroy = function() {\n        this.$panel.remove();\n        this.$panel = null;\n      };\n    },\n  });\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/plugin/specialchars/summernote-ext-specialchars.js",
    "content": "(function(factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function($) {\n  $.extend($.summernote.plugins, {\n    'specialchars': function(context) {\n      var self = this;\n      var ui = $.summernote.ui;\n\n      var $editor = context.layoutInfo.editor;\n      var options = context.options;\n      var lang = options.langInfo;\n\n      var KEY = {\n        UP: 38,\n        DOWN: 40,\n        LEFT: 37,\n        RIGHT: 39,\n        ENTER: 13,\n      };\n      var COLUMN_LENGTH = 15;\n      var COLUMN_WIDTH = 35;\n\n      var currentColumn = 0;\n      var currentRow = 0;\n      var totalColumn = 0;\n      var totalRow = 0;\n\n      // special characters data set\n      var specialCharDataSet = [\n        '&quot;', '&amp;', '&lt;', '&gt;', '&iexcl;', '&cent;',\n        '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;',\n        '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',\n        '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;',\n        '&sup3;', '&acute;', '&micro;', '&para;', '&middot;',\n        '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;',\n        '&frac12;', '&frac34;', '&iquest;', '&times;', '&divide;',\n        '&fnof;', '&circ;', '&tilde;', '&ndash;', '&mdash;',\n        '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;',\n        '&bdquo;', '&dagger;', '&Dagger;', '&bull;', '&hellip;',\n        '&permil;', '&prime;', '&Prime;', '&lsaquo;', '&rsaquo;',\n        '&oline;', '&frasl;', '&euro;', '&image;', '&weierp;',\n        '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;',\n        '&rarr;', '&darr;', '&harr;', '&crarr;', '&lArr;',\n        '&uArr;', '&rArr;', '&dArr;', '&hArr;', '&forall;',\n        '&part;', '&exist;', '&empty;', '&nabla;', '&isin;',\n        '&notin;', '&ni;', '&prod;', '&sum;', '&minus;',\n        '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;',\n        '&and;', '&or;', '&cap;', '&cup;', '&int;',\n        '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;',\n        '&equiv;', '&le;', '&ge;', '&sub;', '&sup;',\n        '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;',\n        '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;',\n        '&rfloor;', '&loz;', '&spades;', '&clubs;', '&hearts;',\n        '&diams;',\n      ];\n\n      context.memo('button.specialchars', function() {\n        return ui.button({\n          contents: '<i class=\"fa fa-font fa-flip-vertical\">',\n          tooltip: lang.specialChar.specialChar,\n          click: function() {\n            self.show();\n          },\n        }).render();\n      });\n\n      /**\n       * Make Special Characters Table\n       *\n       * @member plugin.specialChar\n       * @private\n       * @return {jQuery}\n       */\n      this.makeSpecialCharSetTable = function() {\n        var $table = $('<table/>');\n        $.each(specialCharDataSet, function(idx, text) {\n          var $td = $('<td/>').addClass('note-specialchar-node');\n          var $tr = (idx % COLUMN_LENGTH === 0) ? $('<tr/>') : $table.find('tr').last();\n\n          var $button = ui.button({\n            callback: function($node) {\n              $node.html(text);\n              $node.attr('title', text);\n              $node.attr('data-value', encodeURIComponent(text));\n              $node.css({\n                width: COLUMN_WIDTH,\n                'margin-right': '2px',\n                'margin-bottom': '2px',\n              });\n            },\n          }).render();\n\n          $td.append($button);\n\n          $tr.append($td);\n          if (idx % COLUMN_LENGTH === 0) {\n            $table.append($tr);\n          }\n        });\n\n        totalRow = $table.find('tr').length;\n        totalColumn = COLUMN_LENGTH;\n\n        return $table;\n      };\n\n      this.initialize = function() {\n        var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n        var body = '<div class=\"form-group row-fluid\">' + this.makeSpecialCharSetTable()[0].outerHTML + '</div>';\n\n        this.$dialog = ui.dialog({\n          title: lang.specialChar.select,\n          body: body,\n        }).render().appendTo($container);\n      };\n\n      this.show = function() {\n        var text = context.invoke('editor.getSelectedText');\n        context.invoke('editor.saveRange');\n        this.showSpecialCharDialog(text).then(function(selectChar) {\n          context.invoke('editor.restoreRange');\n\n          // build node\n          var $node = $('<span></span>').html(selectChar)[0];\n\n          if ($node) {\n            // insert video node\n            context.invoke('editor.insertNode', $node);\n          }\n        }).fail(function() {\n          context.invoke('editor.restoreRange');\n        });\n      };\n\n      /**\n       * show image dialog\n       *\n       * @param {jQuery} $dialog\n       * @return {Promise}\n       */\n      this.showSpecialCharDialog = function(text) {\n        return $.Deferred(function(deferred) {\n          var $specialCharDialog = self.$dialog;\n          var $specialCharNode = $specialCharDialog.find('.note-specialchar-node');\n          var $selectedNode = null;\n          var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT];\n          var ENTER_KEY = KEY.ENTER;\n\n          function addActiveClass($target) {\n            if (!$target) {\n              return;\n            }\n            $target.find('button').addClass('active');\n            $selectedNode = $target;\n          }\n\n          function removeActiveClass($target) {\n            $target.find('button').removeClass('active');\n            $selectedNode = null;\n          }\n\n          // find next node\n          function findNextNode(row, column) {\n            var findNode = null;\n            $.each($specialCharNode, function(idx, $node) {\n              var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH);\n              var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH;\n              if (findRow === row && findColumn === column) {\n                findNode = $node;\n                return false;\n              }\n            });\n            return $(findNode);\n          }\n\n          function arrowKeyHandler(keyCode) {\n            // left, right, up, down key\n            var $nextNode;\n            var lastRowColumnLength = $specialCharNode.length % totalColumn;\n\n            if (KEY.LEFT === keyCode) {\n              if (currentColumn > 1) {\n                currentColumn = currentColumn - 1;\n              } else if (currentRow === 1 && currentColumn === 1) {\n                currentColumn = lastRowColumnLength;\n                currentRow = totalRow;\n              } else {\n                currentColumn = totalColumn;\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.RIGHT === keyCode) {\n              if (currentRow === totalRow && lastRowColumnLength === currentColumn) {\n                currentColumn = 1;\n                currentRow = 1;\n              } else if (currentColumn < totalColumn) {\n                currentColumn = currentColumn + 1;\n              } else {\n                currentColumn = 1;\n                currentRow = currentRow + 1;\n              }\n            } else if (KEY.UP === keyCode) {\n              if (currentRow === 1 && lastRowColumnLength < currentColumn) {\n                currentRow = totalRow - 1;\n              } else {\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.DOWN === keyCode) {\n              currentRow = currentRow + 1;\n            }\n\n            if (currentRow === totalRow && currentColumn > lastRowColumnLength) {\n              currentRow = 1;\n            } else if (currentRow > totalRow) {\n              currentRow = 1;\n            } else if (currentRow < 1) {\n              currentRow = totalRow;\n            }\n\n            $nextNode = findNextNode(currentRow, currentColumn);\n\n            if ($nextNode) {\n              removeActiveClass($selectedNode);\n              addActiveClass($nextNode);\n            }\n          }\n\n          function enterKeyHandler() {\n            if (!$selectedNode) {\n              return;\n            }\n\n            deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value')));\n            $specialCharDialog.modal('hide');\n          }\n\n          function keyDownEventHandler(event) {\n            event.preventDefault();\n            var keyCode = event.keyCode;\n            if (keyCode === undefined || keyCode === null) {\n              return;\n            }\n            // check arrowKeys match\n            if (ARROW_KEYS.indexOf(keyCode) > -1) {\n              if ($selectedNode === null) {\n                addActiveClass($specialCharNode.eq(0));\n                currentColumn = 1;\n                currentRow = 1;\n                return;\n              }\n              arrowKeyHandler(keyCode);\n            } else if (keyCode === ENTER_KEY) {\n              enterKeyHandler();\n            }\n            return false;\n          }\n\n          // remove class\n          removeActiveClass($specialCharNode);\n\n          // find selected node\n          if (text) {\n            for (var i = 0; i < $specialCharNode.length; i++) {\n              var $checkNode = $($specialCharNode[i]);\n              if ($checkNode.text() === text) {\n                addActiveClass($checkNode);\n                currentRow = Math.ceil((i + 1) / COLUMN_LENGTH);\n                currentColumn = (i + 1) % COLUMN_LENGTH;\n              }\n            }\n          }\n\n          ui.onDialogShown(self.$dialog, function() {\n            $(document).on('keydown', keyDownEventHandler);\n\n            self.$dialog.find('button').tooltip();\n\n            $specialCharNode.on('click', function(event) {\n              event.preventDefault();\n              deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value')));\n              ui.hideDialog(self.$dialog);\n            });\n          });\n\n          ui.onDialogHidden(self.$dialog, function() {\n            $specialCharNode.off('click');\n\n            self.$dialog.find('button').tooltip('destroy');\n\n            $(document).off('keydown', keyDownEventHandler);\n\n            if (deferred.state() === 'pending') {\n              deferred.reject();\n            }\n          });\n\n          ui.showDialog(self.$dialog);\n        });\n      };\n    },\n  });\n}));\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-bs4.css",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n@font-face{font-family:\"summernote\";font-style:normal;font-weight:400;font-display:auto;src:url(font/summernote.eot);src:url(font/summernote.eot?#iefix) format(\"embedded-opentype\"),url(font/summernote.woff2) format(\"woff2\"),url(font/summernote.woff) format(\"woff\"),url(font/summernote.ttf) format(\"truetype\")}[class^=note-icon]:before,[class*=\" note-icon\"]:before{display:inline-block;font-family:summernote;font-style:normal;font-size:inherit;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.note-icon-fw{text-align:center;width:1.25em}.note-icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.note-icon-pull-left{float:left}.note-icon-pull-right{float:right}.note-icon.note-icon-pull-left{margin-right:.3em}.note-icon.note-icon-pull-right{margin-left:.3em}.note-icon-align::before{content:\"\"}.note-icon-align-center::before{content:\"\"}.note-icon-align-indent::before{content:\"\"}.note-icon-align-justify::before{content:\"\"}.note-icon-align-left::before{content:\"\"}.note-icon-align-outdent::before{content:\"\"}.note-icon-align-right::before{content:\"\"}.note-icon-arrow-circle-down::before{content:\"\"}.note-icon-arrow-circle-left::before{content:\"\"}.note-icon-arrow-circle-right::before{content:\"\"}.note-icon-arrow-circle-up::before{content:\"\"}.note-icon-arrows-alt::before{content:\"\"}.note-icon-arrows-h::before{content:\"\"}.note-icon-arrows-v::before{content:\"\"}.note-icon-bold::before{content:\"\"}.note-icon-caret::before{content:\"\"}.note-icon-chain-broken::before{content:\"\"}.note-icon-circle::before{content:\"\"}.note-icon-close::before{content:\"\"}.note-icon-code::before{content:\"\"}.note-icon-col-after::before{content:\"\"}.note-icon-col-before::before{content:\"\"}.note-icon-col-remove::before{content:\"\"}.note-icon-eraser::before{content:\"\"}.note-icon-float-left::before{content:\"\"}.note-icon-float-none::before{content:\"\"}.note-icon-float-right::before{content:\"\"}.note-icon-font::before{content:\"\"}.note-icon-frame::before{content:\"\"}.note-icon-italic::before{content:\"\"}.note-icon-link::before{content:\"\"}.note-icon-magic::before{content:\"\"}.note-icon-menu-check::before{content:\"\"}.note-icon-minus::before{content:\"\"}.note-icon-orderedlist::before{content:\"\"}.note-icon-pencil::before{content:\"\"}.note-icon-picture::before{content:\"\"}.note-icon-question::before{content:\"\"}.note-icon-redo::before{content:\"\"}.note-icon-rollback::before{content:\"\"}.note-icon-row-above::before{content:\"\"}.note-icon-row-below::before{content:\"\"}.note-icon-row-remove::before{content:\"\"}.note-icon-special-character::before{content:\"\"}.note-icon-square::before{content:\"\"}.note-icon-strikethrough::before{content:\"\"}.note-icon-subscript::before{content:\"\"}.note-icon-summernote::before{content:\"\"}.note-icon-superscript::before{content:\"\"}.note-icon-table::before{content:\"\"}.note-icon-text-height::before{content:\"\"}.note-icon-trash::before{content:\"\"}.note-icon-underline::before{content:\"\"}.note-icon-undo::before{content:\"\"}.note-icon-unorderedlist::before{content:\"\"}.note-icon-video::before{content:\"\"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;display:none;z-index:100;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;vertical-align:middle;text-align:center;font-size:28px;font-weight:700}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:none}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable img.note-float-left{margin-right:10px}.note-editor .note-editing-area .note-editable img.note-float-right{margin-left:10px}.note-editor.note-frame,.note-editor.note-airframe{border:1px solid #00000032}.note-editor.note-frame.codeview .note-editing-area .note-editable,.note-editor.note-airframe.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable,.note-editor.note-airframe.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area,.note-editor.note-airframe .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable,.note-editor.note-airframe .note-editing-area .note-editable{padding:10px;overflow:auto;word-wrap:break-word}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false],.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false]{background-color:#8080801d}.note-editor.note-frame .note-editing-area .note-codable,.note-editor.note-airframe .note-editing-area .note-codable{display:none;width:100%;padding:10px;border:none;box-shadow:none;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;resize:none;outline:none;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:0;margin-bottom:0}.note-editor.note-frame.fullscreen,.note-editor.note-airframe.fullscreen{position:fixed;top:0;left:0;width:100% !important;z-index:1050}.note-editor.note-frame.fullscreen .note-resizebar,.note-editor.note-airframe.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output,.note-editor.note-airframe .note-status-output{display:block;width:100%;font-size:14px;line-height:1.42857143;height:20px;margin-bottom:0;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty,.note-editor.note-airframe .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right,.note-editor.note-airframe .note-status-output .pull-right{float:right !important}.note-editor.note-frame .note-status-output .text-muted,.note-editor.note-airframe .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary,.note-editor.note-airframe .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success,.note-editor.note-airframe .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info,.note-editor.note-airframe .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning,.note-editor.note-airframe .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger,.note-editor.note-airframe .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert,.note-editor.note-airframe .note-status-output .alert{margin:-7px 0 0 0;padding:7px 10px 2px 10px;border-radius:0;color:#000;background-color:#f5f5f5}.note-editor.note-frame .note-status-output .alert .note-icon,.note-editor.note-airframe .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success,.note-editor.note-airframe .note-status-output .alert-success{color:#3c763d !important;background-color:#dff0d8 !important}.note-editor.note-frame .note-status-output .alert-info,.note-editor.note-airframe .note-status-output .alert-info{color:#31708f !important;background-color:#d9edf7 !important}.note-editor.note-frame .note-status-output .alert-warning,.note-editor.note-airframe .note-status-output .alert-warning{color:#8a6d3b !important;background-color:#fcf8e3 !important}.note-editor.note-frame .note-status-output .alert-danger,.note-editor.note-airframe .note-status-output .alert-danger{color:#a94442 !important;background-color:#f2dede !important}.note-editor.note-frame .note-statusbar,.note-editor.note-airframe .note-statusbar{background-color:#8080801d;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar .note-resizebar,.note-editor.note-airframe .note-statusbar .note-resizebar{padding-top:1px;height:9px;width:100%;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar.locked .note-resizebar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder,.note-editor.note-airframe .note-placeholder{padding:10px}.note-editor.note-airframe{border:0}.note-editor.note-airframe .note-editing-area .note-editable{padding:0}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative}.note-popover .popover-content,.note-editor .note-toolbar{margin:0;padding:0 0 5px 5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group{margin-top:5px;margin-left:0;margin-right:5px}.note-popover .popover-content .note-btn-group .note-table,.note-editor .note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-editor .note-toolbar .note-style .dropdown-style blockquote,.note-editor .note-toolbar .note-style .dropdown-style pre{margin:0;padding:5px 10px}.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-editor .note-toolbar .note-style .dropdown-style h1,.note-editor .note-toolbar .note-style .dropdown-style h2,.note-editor .note-toolbar .note-style .dropdown-style h3,.note-editor .note-toolbar .note-style .dropdown-style h4,.note-editor .note-toolbar .note-style .dropdown-style h5,.note-editor .note-toolbar .note-style .dropdown-style h6,.note-editor .note-toolbar .note-style .dropdown-style p{margin:0;padding:0}.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-editor .note-toolbar .note-color-all .note-dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-toggle,.note-editor .note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;margin:0;width:160px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{font-size:12px;margin:2px 7px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select{font-size:11px;margin:3px;padding:0 3px;cursor:pointer;width:100%;border-radius:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover{background:#eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn{display:none}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn{border:1px solid #eee}.note-popover .popover-content .note-para .note-dropdown-menu,.note-editor .note-toolbar .note-para .note-dropdown-menu{min-width:228px;padding:5px}.note-popover .popover-content .note-para .note-dropdown-menu>div+div,.note-editor .note-toolbar .note-para .note-dropdown-menu>div+div{margin-left:5px}.note-popover .popover-content .note-dropdown-menu,.note-editor .note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .popover-content .note-dropdown-menu.right,.note-editor .note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .note-dropdown-menu.right::before,.note-editor .note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.right::after,.note-editor .note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-editor .note-toolbar .note-dropdown-menu.note-check a i{color:#00bfff;visibility:hidden}.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.note-editor .note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.note-editor .note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.note-editor .note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:0;border-radius:0}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-editor .note-toolbar .note-color-palette div .note-color-btn:hover{transform:scale(1.2);transition:all .2s}.note-modal .modal-dialog{outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5)}.note-modal .form-group{margin-left:0;margin-right:0}.note-modal .note-modal-form{margin:0}.note-modal .note-image-dialog .note-dropzone{min-height:100px;font-size:30px;line-height:4;color:#d3d3d3;text-align:center;border:4px dashed #d3d3d3;margin-bottom:10px}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-sizing,.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{background-color:#000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:none;border-bottom:none}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:none;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:none;border-right:none}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:none;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;color:#fff;background-color:#000;font-size:12px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{padding:3px;max-height:150px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;white-space:nowrap;text-decoration:none;background-color:#428bca;outline:0;cursor:pointer}.note-toolbar{background:#8080801d}.note-btn-group .note-btn{border-color:#00000032;padding:.28rem .65rem;font-size:13px}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-bs4.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 53);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Renderer = /*#__PURE__*/function () {\n  function Renderer(markup, children, options, callback) {\n    _classCallCheck(this, Renderer);\n\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  _createClass(Renderer, [{\n    key: \"render\",\n    value: function render($parent) {\n      var $node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.markup);\n\n      if (this.options && this.options.contents) {\n        $node.html(this.options.contents);\n      }\n\n      if (this.options && this.options.className) {\n        $node.addClass(this.options.className);\n      }\n\n      if (this.options && this.options.data) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (this.options && this.options.click) {\n        $node.on('click', this.options.click);\n      }\n\n      if (this.children) {\n        var $container = $node.find('.note-children-container');\n        this.children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (this.callback) {\n        this.callback($node, this.options);\n      }\n\n      if (this.options && this.options.callback) {\n        this.options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    }\n  }]);\n\n  return Renderer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  create: function create(markup, callback) {\n    return function () {\n      var options = _typeof(arguments[1]) === 'object' ? arguments[1] : arguments[0];\n      var children = Array.isArray(arguments[0]) ? arguments[0] : [];\n\n      if (options && options.children) {\n        children = options.children;\n      }\n\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n});\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// CONCATENATED MODULE: ./src/js/base/summernote-en-US.js\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote || {\n  lang: {}\n};\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size',\n      sizeunit: 'Font Size Unit'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize full',\n      resizeHalf: 'Resize half',\n      resizeQuarter: 'Resize quarter',\n      resizeNone: 'Original size',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Remove float',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window',\n      useProtocol: 'Use default protocol'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Text Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default',\n      cpSelect: 'Select'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'escape': 'Escape',\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undo the last command',\n      'redo': 'Redo the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    },\n    output: {\n      noSelection: 'No Selection Made!'\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/env.js\n\nvar isSupportAmd = typeof define === 'function' && __webpack_require__(2); // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\n\nvar genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n\nfunction validFontName(fontName) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.inArray(fontName.toLowerCase(), genericFontFamilies) === -1 ? \"'\".concat(fontName, \"'\") : fontName;\n}\n\nfunction env_isFontInstalled(fontName) {\n  var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  var testText = 'mmmmmmmmmmwwwww';\n  var testSize = '200px';\n  var canvas = document.createElement('canvas');\n  var context = canvas.getContext('2d');\n  context.font = testSize + \" '\" + testFontName + \"'\";\n  var originalWidth = context.measureText(testText).width;\n  context.font = testSize + ' ' + validFontName(fontName) + ', \"' + testFontName + '\"';\n  var width = context.measureText(testText).width;\n  return originalWidth !== width;\n}\n\nvar userAgent = navigator.userAgent;\nvar isMSIE = /MSIE|Trident/i.test(userAgent);\nvar browserVersion;\n\nif (isMSIE) {\n  var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nvar isEdge = /Edge\\/\\d+/.test(userAgent);\nvar isSupportTouch = 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; // [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\n\nvar inputEventName = isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\n\n/* harmony default export */ var env = ({\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE: isMSIE,\n  isEdge: isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent) && !/chrome/i.test(userAgent),\n  browserVersion: browserVersion,\n  jqueryVersion: parseFloat(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.jquery),\n  isSupportAmd: isSupportAmd,\n  isSupportTouch: isSupportTouch,\n  isFontInstalled: env_isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName: inputEventName,\n  genericFontFamilies: genericFontFamilies,\n  validFontName: validFontName\n});\n// CONCATENATED MODULE: ./src/js/base/core/func.js\n\n/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\n\nfunction eq(itemA) {\n  return function (itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function (itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return function () {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function (item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction func_self(a) {\n  return a;\n}\n\nfunction func_invoke(obj, method) {\n  return function () {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nvar idCounter = 0;\n/**\n * reset globally-unique id\n *\n */\n\nfunction resetUniqueId() {\n  idCounter = 0;\n}\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\n\n\nfunction uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\n\n\nfunction rect2bnd(rect) {\n  var $document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\n\n\nfunction invertObject(obj) {\n  var inverted = {};\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n\n  return inverted;\n}\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\n\n\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function (name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\n\n\nfunction debounce(func, wait, immediate) {\n  var timeout;\n  return function () {\n    var context = this;\n    var args = arguments;\n\n    var later = function later() {\n      timeout = null;\n\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n/**\n *\n * @param {String} url\n * @return {Boolean}\n */\n\n\nfunction isValidUrl(url) {\n  var expression = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/gi;\n  return expression.test(url);\n}\n\n/* harmony default export */ var func = ({\n  eq: eq,\n  eq2: eq2,\n  peq2: peq2,\n  ok: ok,\n  fail: fail,\n  self: func_self,\n  not: not,\n  and: and,\n  invoke: func_invoke,\n  resetUniqueId: resetUniqueId,\n  uniqueId: uniqueId,\n  rect2bnd: rect2bnd,\n  invertObject: invertObject,\n  namespaceToCamel: namespaceToCamel,\n  debounce: debounce,\n  isValidUrl: isValidUrl\n});\n// CONCATENATED MODULE: ./src/js/base/core/lists.js\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\n\nfunction lists_head(array) {\n  return array[0];\n}\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\n\n\nfunction lists_last(array) {\n  return array[array.length - 1];\n}\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\n\n\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\n\n\nfunction tail(array) {\n  return array.slice(1);\n}\n/**\n * returns item of array\n */\n\n\nfunction find(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    var item = array[idx];\n\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\n\n\nfunction lists_all(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * returns true if the value is present in the list.\n */\n\n\nfunction contains(array, item) {\n  if (array && array.length && item) {\n    if (array.indexOf) {\n      return array.indexOf(item) !== -1;\n    } else if (array.contains) {\n      // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains`\n      return array.contains(item);\n    }\n  }\n\n  return false;\n}\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\n\n\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function (memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\n\n\nfunction from(collection) {\n  var result = [];\n  var length = collection.length;\n  var idx = -1;\n\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n\n  return result;\n}\n/**\n * returns whether list is empty or not\n */\n\n\nfunction lists_isEmpty(array) {\n  return !array || !array.length;\n}\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\n\n\nfunction clusterBy(array, fn) {\n  if (!array.length) {\n    return [];\n  }\n\n  var aTail = tail(array);\n  return aTail.reduce(function (memo, v) {\n    var aLast = lists_last(memo);\n\n    if (fn(lists_last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n\n    return memo;\n  }, [[lists_head(array)]]);\n}\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\n\n\nfunction compact(array) {\n  var aResult = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) {\n      aResult.push(array[idx]);\n    }\n  }\n\n  return aResult;\n}\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\n\n\nfunction unique(array) {\n  var results = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n/**\n * returns next item.\n * @param {Array} array\n */\n\n\nfunction lists_next(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx + 1];\n  }\n\n  return null;\n}\n/**\n * returns prev item.\n * @param {Array} array\n */\n\n\nfunction prev(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx - 1];\n  }\n\n  return null;\n}\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\n\n\n/* harmony default export */ var lists = ({\n  head: lists_head,\n  last: lists_last,\n  initial: initial,\n  tail: tail,\n  prev: prev,\n  next: lists_next,\n  find: find,\n  contains: contains,\n  all: lists_all,\n  sum: sum,\n  from: from,\n  isEmpty: lists_isEmpty,\n  clusterBy: clusterBy,\n  compact: compact,\n  unique: unique\n});\n// CONCATENATED MODULE: ./src/js/base/core/dom.js\n\n\n\n\nvar NBSP_CHAR = String.fromCharCode(160);\nvar ZERO_WIDTH_NBSP_CHAR = \"\\uFEFF\";\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction isEditable(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-editable');\n}\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction isControlSizing(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-control-sizing');\n}\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\n\n\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function (node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\n\n\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\n\n\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\n\n\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  } // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n\n\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nvar isPre = makePredByNodeName('PRE');\nvar isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nvar isTable = makePredByNodeName('TABLE');\nvar isData = makePredByNodeName('DATA');\n\nfunction dom_isInline(node) {\n  return !isBodyContainer(node) && !isList(node) && !isHr(node) && !isPara(node) && !isTable(node) && !isBlockquote(node) && !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nvar isHr = makePredByNodeName('HR');\n\nfunction dom_isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nvar isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return dom_isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nvar isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return dom_isInline(node) && !!dom_ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return dom_isInline(node) && !dom_ancestor(node, isPara);\n}\n\nvar isBody = makePredByNodeName('BODY');\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\n\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB || nodeA.previousSibling === nodeB;\n}\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\n\n\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n  var siblings = [];\n\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n\n  siblings.push(node);\n\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n\n  return siblings;\n}\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\n\n\nvar blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\n\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n/**\n * returns whether deepest child node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction deepestChildIsEmpty(node) {\n  do {\n    if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break;\n  } while (node = node.firstElementChild);\n\n  return dom_isEmpty(node);\n}\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction dom_isEmpty(node) {\n  var len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\n\n\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction dom_ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) {\n      break;\n    }\n\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n  var ancestors = [];\n  dom_ancestor(node, function (el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n/**\n * find farthest ancestor predicate hit\n */\n\n\nfunction lastAncestor(node, pred) {\n  var ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\n\n\nfunction dom_commonAncestor(nodeA, nodeB) {\n  var ancestors = listAncestor(nodeA);\n\n  for (var n = nodeB; n; n = n.parentNode) {\n    if (ancestors.indexOf(n) > -1) return n;\n  }\n\n  return null; // difference document area\n}\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listDescendant(node, pred) {\n  var descendants = [];\n  pred = pred || func.ok; // start DFS(depth first search) with node\n\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n\n    for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\n\n\nfunction wrap(node, wrapperName) {\n  var parent = node.parentNode;\n  var wrapper = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<' + wrapperName + '>')[0];\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n  return wrapper;\n}\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\n\n\nfunction insertAfter(node, preceding) {\n  var next = preceding.nextSibling;\n  var parent = preceding.parentNode;\n\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n\n  return node;\n}\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\n\n\nfunction appendChildNodes(node, aChild) {\n  external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(aChild, function (idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction dom_isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== 0) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && dom_isLeftEdgeOf(point.node, ancestor);\n}\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\n\n\nfunction dom_position(node) {\n  var offset = 0;\n\n  while (node = node.previousSibling) {\n    offset += 1;\n  }\n\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_prevPoint(point, isSkipInnerOffset) {\n  var node;\n  var offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = dom_position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_nextPoint(point, isSkipInnerOffset) {\n  var node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint with empty node\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointWithEmptyNode(point, isSkipInnerOffset) {\n  var node, offset; // if node is empty string node, return current node's sibling.\n\n  if (dom_isEmpty(point.node)) {\n    node = point.node.nextSibling;\n    offset = 0;\n    return {\n      node: node,\n      offset: offset\n    };\n  }\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    } // if next node is editable, return current node's sibling node.\n\n\n    if (isEditable(node)) {\n      node = point.node.nextSibling;\n      offset = 0;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/*\n* returns the next Text node index or 0 if not found.\n*/\n\n\nfunction getNextTextNode(actual) {\n  if (!actual.nextSibling) return undefined;\n  if (actual.parent !== actual.nextSibling.parent) return undefined;\n  if (isText(actual.nextSibling)) return actual.nextSibling;\n  return getNextTextNode(actual.nextSibling);\n}\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\n\n\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || dom_isEmpty(point.node)) {\n    return true;\n  }\n\n  var leftNode = point.node.childNodes[point.offset - 1];\n  var rightNode = point.node.childNodes[point.offset];\n\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_prevPoint(point);\n  }\n\n  return null;\n}\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_nextPoint(point);\n  }\n\n  return null;\n}\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && ch !== ' ' && ch !== NBSP_CHAR;\n}\n/**\n * returns whether point has space or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isSpacePoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch === ' ' || ch === NBSP_CHAR;\n}\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\n\n\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  var point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    var isSkipOffset = isSkipInnerOffset && startPoint.node !== point.node && endPoint.node !== point.node;\n    point = nextPointWithEmptyNode(point, isSkipOffset);\n  }\n}\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\n\n\nfunction makeOffsetPath(ancestor, node) {\n  var ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(dom_position).reverse();\n}\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\n\n\nfunction fromOffsetPath(ancestor, offsets) {\n  var current = ancestor;\n\n  for (var i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n\n  return current;\n}\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @param {Boolean} [options.isDiscardEmptySplits] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitNode(point, options) {\n  var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n  var isDiscardEmptySplits = options && options.isDiscardEmptySplits;\n\n  if (isDiscardEmptySplits) {\n    isSkipPaddingBlankHTML = true;\n  } // edge case\n\n\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  } // split #text\n\n\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    var childNode = point.node.childNodes[point.offset];\n    var clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    if (isDiscardEmptySplits) {\n      if (dom_isEmpty(point.node)) {\n        remove(point.node);\n      }\n\n      if (dom_isEmpty(clone)) {\n        remove(clone);\n        return point.node.nextSibling;\n      }\n    }\n\n    return clone;\n  }\n}\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  var ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function (node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? dom_position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\n\n\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  var pred = isInline ? isPara : isBodyContainer;\n  var ancestors = listAncestor(point.node, pred);\n  var topAncestor = lists.last(ancestors) || point.node;\n  var splitRoot, container;\n\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  } // if splitRoot is exists, split with splitTree\n\n\n  var pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  }); // if container is point.node, find pivot with point.offset\n\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction dom_create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\n\n\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) {\n    return;\n  }\n\n  if (node.removeNode) {\n    return node.removeNode(isRemoveChild);\n  }\n\n  var parent = node.parentNode;\n\n  if (!isRemoveChild) {\n    var nodes = [];\n\n    for (var i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (var _i = 0, _len = nodes.length; _i < _len; _i++) {\n      parent.insertBefore(nodes[_i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\n\n\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    var parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\n\n\nfunction dom_replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  var newNode = dom_create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n  return newNode;\n}\n\nvar isTextarea = makePredByNodeName('TEXTAREA');\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\n\nfunction dom_value($node, stripLinebreaks) {\n  var val = isTextarea($node[0]) ? $node.val() : $node.html();\n\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n\n  return val;\n}\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\n\n\nfunction dom_html($node, isNewlineOnBlock) {\n  var markup = dom_value($node);\n\n  if (isNewlineOnBlock) {\n    var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function (match, endSlash, name) {\n      name = name.toUpperCase();\n      var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && !!endSlash;\n      var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n      return match + (isEndOfInlineContainer || isBlockNode ? '\\n' : '');\n    });\n    markup = markup.trim();\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  var $placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(placeholder);\n  var pos = $placeholder.offset();\n  var height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.off(key, events[key]);\n  });\n}\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\n\n\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\n/* harmony default export */ var dom = ({\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR: NBSP_CHAR,\n\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n\n  /** @property {String} blank */\n  blank: blankHTML,\n\n  /** @property {String} emptyPara */\n  emptyPara: \"<p>\".concat(blankHTML, \"</p>\"),\n  makePredByNodeName: makePredByNodeName,\n  isEditable: isEditable,\n  isControlSizing: isControlSizing,\n  isText: isText,\n  isElement: isElement,\n  isVoid: isVoid,\n  isPara: isPara,\n  isPurePara: isPurePara,\n  isHeading: isHeading,\n  isInline: dom_isInline,\n  isBlock: func.not(dom_isInline),\n  isBodyInline: isBodyInline,\n  isBody: isBody,\n  isParaInline: isParaInline,\n  isPre: isPre,\n  isList: isList,\n  isTable: isTable,\n  isData: isData,\n  isCell: dom_isCell,\n  isBlockquote: isBlockquote,\n  isBodyContainer: isBodyContainer,\n  isAnchor: isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi: isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea: isTextarea,\n  deepestChildIsEmpty: deepestChildIsEmpty,\n  isEmpty: dom_isEmpty,\n  isEmptyAnchor: func.and(isAnchor, dom_isEmpty),\n  isClosestSibling: isClosestSibling,\n  withClosestSiblings: withClosestSiblings,\n  nodeLength: nodeLength,\n  isLeftEdgePoint: isLeftEdgePoint,\n  isRightEdgePoint: isRightEdgePoint,\n  isEdgePoint: isEdgePoint,\n  isLeftEdgeOf: dom_isLeftEdgeOf,\n  isRightEdgeOf: isRightEdgeOf,\n  isLeftEdgePointOf: isLeftEdgePointOf,\n  isRightEdgePointOf: isRightEdgePointOf,\n  prevPoint: dom_prevPoint,\n  nextPoint: dom_nextPoint,\n  nextPointWithEmptyNode: nextPointWithEmptyNode,\n  isSamePoint: isSamePoint,\n  isVisiblePoint: isVisiblePoint,\n  prevPointUntil: prevPointUntil,\n  nextPointUntil: nextPointUntil,\n  isCharPoint: isCharPoint,\n  isSpacePoint: isSpacePoint,\n  walkPoint: walkPoint,\n  ancestor: dom_ancestor,\n  singleChildAncestor: singleChildAncestor,\n  listAncestor: listAncestor,\n  lastAncestor: lastAncestor,\n  listNext: listNext,\n  listPrev: listPrev,\n  listDescendant: listDescendant,\n  commonAncestor: dom_commonAncestor,\n  wrap: wrap,\n  insertAfter: insertAfter,\n  appendChildNodes: appendChildNodes,\n  position: dom_position,\n  hasChildren: hasChildren,\n  makeOffsetPath: makeOffsetPath,\n  fromOffsetPath: fromOffsetPath,\n  splitTree: splitTree,\n  splitPoint: splitPoint,\n  create: dom_create,\n  createText: createText,\n  remove: remove,\n  removeWhile: removeWhile,\n  replace: dom_replace,\n  html: dom_html,\n  value: dom_value,\n  posFromPlaceholder: posFromPlaceholder,\n  attachEvents: attachEvents,\n  detachEvents: detachEvents,\n  isCustomStyleTag: isCustomStyleTag\n});\n// CONCATENATED MODULE: ./src/js/base/Context.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Context_Context = /*#__PURE__*/function () {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  function Context($note, options) {\n    _classCallCheck(this, Context);\n\n    this.$note = $note;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, options); // init ui with options\n\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui_template(this.options);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.initialize();\n  }\n  /**\n   * create layout and initialize modules and other resources\n   */\n\n\n  _createClass(Context, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.layoutInfo = this.ui.createLayout(this.$note);\n\n      this._initialize();\n\n      this.$note.hide();\n      return this;\n    }\n    /**\n     * destroy modules and other resources and remove layout\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._destroy();\n\n      this.$note.removeData('summernote');\n      this.ui.removeLayout(this.$note, this.layoutInfo);\n    }\n    /**\n     * destory modules and other resources and initialize it again\n     */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var disabled = this.isDisabled();\n      this.code(dom.emptyPara);\n\n      this._destroy();\n\n      this._initialize();\n\n      if (disabled) {\n        this.disable();\n      }\n    }\n  }, {\n    key: \"_initialize\",\n    value: function _initialize() {\n      var _this = this;\n\n      // set own id\n      this.options.id = func.uniqueId(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now()); // set default container for tooltips, popovers, and dialogs\n\n      this.options.container = this.options.container || this.layoutInfo.editor; // add optional buttons\n\n      var buttons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        _this.memo('button.' + key, buttons[key]);\n      });\n      var modules = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.modules, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.plugins || {}); // add and initialize modules\n\n      Object.keys(modules).forEach(function (key) {\n        _this.module(key, modules[key], true);\n      });\n      Object.keys(this.modules).forEach(function (key) {\n        _this.initializeModule(key);\n      });\n    }\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      var _this2 = this;\n\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        _this2.removeModule(key);\n      });\n      Object.keys(this.memos).forEach(function (key) {\n        _this2.removeMemo(key);\n      }); // trigger custom onDestroy callback\n\n      this.triggerEvent('destroy', this);\n    }\n  }, {\n    key: \"code\",\n    value: function code(html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.invoke('codeview.sync', html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n\n        this.$note.val(html);\n        this.triggerEvent('change', html, this.layoutInfo.editable);\n      }\n    }\n  }, {\n    key: \"isDisabled\",\n    value: function isDisabled() {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    }\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n      this.triggerEvent('disable', false);\n      this.options.editing = true;\n    }\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.options.editing = false;\n      this.invoke('toolbar.deactivate', true);\n      this.triggerEvent('disable', true);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n\n      if (callback) {\n        callback.apply(this.$note[0], args);\n      }\n\n      this.$note.trigger('summernote.' + namespace, args);\n    }\n  }, {\n    key: \"initializeModule\",\n    value: function initializeModule(key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n\n      if (!module.shouldInitialize()) {\n        return;\n      } // initialize module\n\n\n      if (module.initialize) {\n        module.initialize();\n      } // attach events\n\n\n      if (module.events) {\n        dom.attachEvents(this.$note, module.events);\n      }\n    }\n  }, {\n    key: \"module\",\n    value: function module(key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    }\n  }, {\n    key: \"removeModule\",\n    value: function removeModule(key) {\n      var module = this.modules[key];\n\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents(this.$note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    }\n  }, {\n    key: \"memo\",\n    value: function memo(key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n\n      this.memos[key] = obj;\n    }\n  }, {\n    key: \"removeMemo\",\n    value: function removeMemo(key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    }\n    /**\n     * Some buttons need to change their visual style immediately once they get pressed\n     */\n\n  }, {\n    key: \"createInvokeHandlerAndUpdateState\",\n    value: function createInvokeHandlerAndUpdateState(namespace, value) {\n      var _this3 = this;\n\n      return function (event) {\n        _this3.createInvokeHandler(namespace, value)(event);\n\n        _this3.invoke('buttons.updateCurrentStyle');\n      };\n    }\n  }, {\n    key: \"createInvokeHandler\",\n    value: function createInvokeHandler(namespace, value) {\n      var _this4 = this;\n\n      return function (event) {\n        event.preventDefault();\n        var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n\n        _this4.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n      };\n    }\n  }, {\n    key: \"invoke\",\n    value: function invoke() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && lists.head(splits);\n      var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n      var module = this.modules[moduleName || 'editor'];\n\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    }\n  }]);\n\n  return Context;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/summernote.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function summernote() {\n    var type = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.type(lists.head(arguments));\n    var isExternalAPICalled = type === 'string';\n    var hasInitOptions = type === 'object';\n    var options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options, hasInitOptions ? lists.head(arguments) : {}); // Update options\n\n    options.langInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'], external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang[options.lang]);\n    options.icons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n    this.each(function (idx, note) {\n      var $note = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(note);\n\n      if (!$note.data('summernote')) {\n        var context = new Context_Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n    var $note = this.first();\n\n    if ($note.length) {\n      var context = $note.data('summernote');\n\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/range.js\nfunction range_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction range_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction range_createClass(Constructor, protoProps, staticProps) { if (protoProps) range_defineProperties(Constructor.prototype, protoProps); if (staticProps) range_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\n\nfunction textRangeToPoint(textRange, isStart) {\n  var container = textRange.parentElement();\n  var offset;\n  var tester = document.body.createTextRange();\n  var prevContainer;\n  var childNodes = lists.from(container.childNodes);\n\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n\n    tester.moveToElementText(childNodes[offset]);\n\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    var textRangeStart = document.body.createTextRange();\n    var curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n    var pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    } // [workaround] enforce IE to re-reference curTextNode, hack\n\n\n    var dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\n\n\nfunction pointToTextRange(point) {\n  var textRangeInfo = function textRangeInfo(container, offset) {\n    var node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      var prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  var textRange = document.body.createTextRange();\n  var info = textRangeInfo(point.node, point.offset);\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\n\n\nvar range_WrappedRange = /*#__PURE__*/function () {\n  function WrappedRange(sc, so, ec, eo) {\n    range_classCallCheck(this, WrappedRange);\n\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo; // isOnEditable: judge whether range is on editable or not\n\n    this.isOnEditable = this.makeIsOn(dom.isEditable); // isOnList: judge whether range is on list node or not\n\n    this.isOnList = this.makeIsOn(dom.isList); // isOnAnchor: judge whether range is on anchor node or not\n\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor); // isOnCell: judge whether range is on cell node or not\n\n    this.isOnCell = this.makeIsOn(dom.isCell); // isOnData: judge whether range is on data node or not\n\n    this.isOnData = this.makeIsOn(dom.isData);\n  } // nativeRange: get nativeRange from sc, so, ec, eo\n\n\n  range_createClass(WrappedRange, [{\n    key: \"nativeRange\",\n    value: function nativeRange() {\n      if (env.isW3CRangeSupport) {\n        var w3cRange = document.createRange();\n        w3cRange.setStart(this.sc, this.so);\n        w3cRange.setEnd(this.ec, this.eo);\n        return w3cRange;\n      } else {\n        var textRange = pointToTextRange({\n          node: this.sc,\n          offset: this.so\n        });\n        textRange.setEndPoint('EndToEnd', pointToTextRange({\n          node: this.ec,\n          offset: this.eo\n        }));\n        return textRange;\n      }\n    }\n  }, {\n    key: \"getPoints\",\n    value: function getPoints() {\n      return {\n        sc: this.sc,\n        so: this.so,\n        ec: this.ec,\n        eo: this.eo\n      };\n    }\n  }, {\n    key: \"getStartPoint\",\n    value: function getStartPoint() {\n      return {\n        node: this.sc,\n        offset: this.so\n      };\n    }\n  }, {\n    key: \"getEndPoint\",\n    value: function getEndPoint() {\n      return {\n        node: this.ec,\n        offset: this.eo\n      };\n    }\n    /**\n     * select update visible range\n     */\n\n  }, {\n    key: \"select\",\n    value: function select() {\n      var nativeRng = this.nativeRange();\n\n      if (env.isW3CRangeSupport) {\n        var selection = document.getSelection();\n\n        if (selection.rangeCount > 0) {\n          selection.removeAllRanges();\n        }\n\n        selection.addRange(nativeRng);\n      } else {\n        nativeRng.select();\n      }\n\n      return this;\n    }\n    /**\n     * Moves the scrollbar to start container(sc) of current range\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"scrollIntoView\",\n    value: function scrollIntoView(container) {\n      var height = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(container).height();\n\n      if (container.scrollTop + height < this.sc.offsetTop) {\n        container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n      }\n\n      return this;\n    }\n    /**\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"normalize\",\n    value: function normalize() {\n      /**\n       * @param {BoundaryPoint} point\n       * @param {Boolean} isLeftToRight - true: prefer to choose right node\n       *                                - false: prefer to choose left node\n       * @return {BoundaryPoint}\n       */\n      var getVisiblePoint = function getVisiblePoint(point, isLeftToRight) {\n        if (!point) {\n          return point;\n        } // Just use the given point [XXX:Adhoc]\n        //  - case 01. if the point is on the middle of the node\n        //  - case 02. if the point is on the right edge and prefer to choose left node\n        //  - case 03. if the point is on the left edge and prefer to choose right node\n        //  - case 04. if the point is on the right edge and prefer to choose right node but the node is void\n        //  - case 05. if the point is on the left edge and prefer to choose left node but the node is void\n        //  - case 06. if the point is on the block node and there is no children\n\n\n        if (dom.isVisiblePoint(point)) {\n          if (!dom.isEdgePoint(point) || dom.isRightEdgePoint(point) && !isLeftToRight || dom.isLeftEdgePoint(point) && isLeftToRight || dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling) || dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling) || dom.isBlock(point.node) && dom.isEmpty(point.node)) {\n            return point;\n          }\n        } // point on block's edge\n\n\n        var block = dom.ancestor(point.node, dom.isBlock);\n        var hasRightNode = false;\n\n        if (!hasRightNode) {\n          var prevPoint = dom.prevPoint(point) || {\n            node: null\n          };\n          hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight;\n        }\n\n        var hasLeftNode = false;\n\n        if (!hasLeftNode) {\n          var _nextPoint = dom.nextPoint(point) || {\n            node: null\n          };\n\n          hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(_nextPoint.node)) && isLeftToRight;\n        }\n\n        if (hasRightNode || hasLeftNode) {\n          // returns point already on visible point\n          if (dom.isVisiblePoint(point)) {\n            return point;\n          } // reverse direction\n\n\n          isLeftToRight = !isLeftToRight;\n        }\n\n        var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n        return nextPoint || point;\n      };\n\n      var endPoint = getVisiblePoint(this.getEndPoint(), false);\n      var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns matched nodes on range\n     *\n     * @param {Function} [pred] - predicate function\n     * @param {Object} [options]\n     * @param {Boolean} [options.includeAncestor]\n     * @param {Boolean} [options.fullyContains]\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"nodes\",\n    value: function nodes(pred, options) {\n      pred = pred || func.ok;\n      var includeAncestor = options && options.includeAncestor;\n      var fullyContains = options && options.fullyContains; // TODO compare points and sort\n\n      var startPoint = this.getStartPoint();\n      var endPoint = this.getEndPoint();\n      var nodes = [];\n      var leftEdgeNodes = [];\n      dom.walkPoint(startPoint, endPoint, function (point) {\n        if (dom.isEditable(point.node)) {\n          return;\n        }\n\n        var node;\n\n        if (fullyContains) {\n          if (dom.isLeftEdgePoint(point)) {\n            leftEdgeNodes.push(point.node);\n          }\n\n          if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n            node = point.node;\n          }\n        } else if (includeAncestor) {\n          node = dom.ancestor(point.node, pred);\n        } else {\n          node = point.node;\n        }\n\n        if (node && pred(node)) {\n          nodes.push(node);\n        }\n      }, true);\n      return lists.unique(nodes);\n    }\n    /**\n     * returns commonAncestor of range\n     * @return {Element} - commonAncestor\n     */\n\n  }, {\n    key: \"commonAncestor\",\n    value: function commonAncestor() {\n      return dom.commonAncestor(this.sc, this.ec);\n    }\n    /**\n     * returns expanded range by pred\n     *\n     * @param {Function} pred - predicate function\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"expand\",\n    value: function expand(pred) {\n      var startAncestor = dom.ancestor(this.sc, pred);\n      var endAncestor = dom.ancestor(this.ec, pred);\n\n      if (!startAncestor && !endAncestor) {\n        return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n      }\n\n      var boundaryPoints = this.getPoints();\n\n      if (startAncestor) {\n        boundaryPoints.sc = startAncestor;\n        boundaryPoints.so = 0;\n      }\n\n      if (endAncestor) {\n        boundaryPoints.ec = endAncestor;\n        boundaryPoints.eo = dom.nodeLength(endAncestor);\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * @param {Boolean} isCollapseToStart\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"collapse\",\n    value: function collapse(isCollapseToStart) {\n      if (isCollapseToStart) {\n        return new WrappedRange(this.sc, this.so, this.sc, this.so);\n      } else {\n        return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n      }\n    }\n    /**\n     * splitText on range\n     */\n\n  }, {\n    key: \"splitText\",\n    value: function splitText() {\n      var isSameContainer = this.sc === this.ec;\n      var boundaryPoints = this.getPoints();\n\n      if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n        this.ec.splitText(this.eo);\n      }\n\n      if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n        boundaryPoints.sc = this.sc.splitText(this.so);\n        boundaryPoints.so = 0;\n\n        if (isSameContainer) {\n          boundaryPoints.ec = boundaryPoints.sc;\n          boundaryPoints.eo = this.eo - this.so;\n        }\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * delete contents on range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"deleteContents\",\n    value: function deleteContents() {\n      if (this.isCollapsed()) {\n        return this;\n      }\n\n      var rng = this.splitText();\n      var nodes = rng.nodes(null, {\n        fullyContains: true\n      }); // find new cursor point\n\n      var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n        return !lists.contains(nodes, point.node);\n      });\n      var emptyParents = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(nodes, function (idx, node) {\n        // find empty parents\n        var parent = node.parentNode;\n\n        if (point.node !== parent && dom.nodeLength(parent) === 1) {\n          emptyParents.push(parent);\n        }\n\n        dom.remove(node, false);\n      }); // remove empty parents\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyParents, function (idx, node) {\n        dom.remove(node, false);\n      });\n      return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();\n    }\n    /**\n     * makeIsOn: return isOn(pred) function\n     */\n\n  }, {\n    key: \"makeIsOn\",\n    value: function makeIsOn(pred) {\n      return function () {\n        var ancestor = dom.ancestor(this.sc, pred);\n        return !!ancestor && ancestor === dom.ancestor(this.ec, pred);\n      };\n    }\n    /**\n     * @param {Function} pred\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isLeftEdgeOf\",\n    value: function isLeftEdgeOf(pred) {\n      if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n        return false;\n      }\n\n      var node = dom.ancestor(this.sc, pred);\n      return node && dom.isLeftEdgeOf(this.sc, node);\n    }\n    /**\n     * returns whether range was collapsed or not\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    value: function isCollapsed() {\n      return this.sc === this.ec && this.so === this.eo;\n    }\n    /**\n     * wrap inline nodes which children of body with paragraph\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"wrapBodyInlineWithPara\",\n    value: function wrapBodyInlineWithPara() {\n      if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n        this.sc.innerHTML = dom.emptyPara;\n        return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n      }\n      /**\n       * [workaround] firefox often create range on not visible point. so normalize here.\n       *  - firefox: |<p>text</p>|\n       *  - chrome: <p>|text|</p>\n       */\n\n\n      var rng = this.normalize();\n\n      if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n        return rng;\n      } // find inline top ancestor\n\n\n      var topAncestor;\n\n      if (dom.isInline(rng.sc)) {\n        var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n        topAncestor = lists.last(ancestors);\n\n        if (!dom.isInline(topAncestor)) {\n          topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n        }\n      } else {\n        topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n      }\n\n      if (topAncestor) {\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); // wrap with paragraph\n\n        if (inlineSiblings.length) {\n          var para = dom.wrap(lists.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, lists.tail(inlineSiblings));\n        }\n      }\n\n      return this.normalize();\n    }\n    /**\n     * insert node at current cursor\n     *\n     * @param {Node} node\n     * @return {Node}\n     */\n\n  }, {\n    key: \"insertNode\",\n    value: function insertNode(node) {\n      var rng = this;\n\n      if (dom.isText(node) || dom.isInline(node)) {\n        rng = this.wrapBodyInlineWithPara().deleteContents();\n      }\n\n      var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n      if (info.rightNode) {\n        info.rightNode.parentNode.insertBefore(node, info.rightNode);\n\n        if (dom.isEmpty(info.rightNode) && dom.isPara(node)) {\n          info.rightNode.parentNode.removeChild(info.rightNode);\n        }\n      } else {\n        info.container.appendChild(node);\n      }\n\n      return node;\n    }\n    /**\n     * insert html at current cursor\n     */\n\n  }, {\n    key: \"pasteHTML\",\n    value: function pasteHTML(markup) {\n      markup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.trim(markup);\n      var contentsContainer = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').html(markup)[0];\n      var childNodes = lists.from(contentsContainer.childNodes); // const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n      var rng = this;\n      var reversed = false;\n\n      if (rng.so >= 0) {\n        childNodes = childNodes.reverse();\n        reversed = true;\n      }\n\n      childNodes = childNodes.map(function (childNode) {\n        return rng.insertNode(childNode);\n      });\n\n      if (reversed) {\n        childNodes = childNodes.reverse();\n      }\n\n      return childNodes;\n    }\n    /**\n     * returns text in range\n     *\n     * @return {String}\n     */\n\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var nativeRng = this.nativeRange();\n      return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n    }\n    /**\n     * returns range for word before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordRange\",\n    value: function getWordRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      if (!dom.isCharPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        return !dom.isCharPoint(point);\n      });\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordsRange\",\n    value: function getWordsRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      var isNotTextPoint = function isNotTextPoint(point) {\n        return !dom.isCharPoint(point) && !dom.isSpacePoint(point);\n      };\n\n      if (isNotTextPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint);\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, isNotTextPoint);\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor that match with a Regex\n     *\n     * example:\n     *  range: 'hi @Peter Pan'\n     *  regex: '/@[a-z ]+/i'\n     *  return range: '@Peter Pan'\n     *\n     * @param {RegExp} [regex]\n     * @return {WrappedRange|null}\n     */\n\n  }, {\n    key: \"getWordsMatchRange\",\n    value: function getWordsMatchRange(regex) {\n      var endPoint = this.getEndPoint();\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) {\n          return true;\n        }\n\n        var rng = new WrappedRange(point.node, point.offset, endPoint.node, endPoint.offset);\n        var result = regex.exec(rng.toString());\n        return result && result.index === 0;\n      });\n      var rng = new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n      var text = rng.toString();\n      var result = regex.exec(text);\n\n      if (result && result[0].length === text.length) {\n        return rng;\n      } else {\n        return null;\n      }\n    }\n    /**\n     * create offsetPath bookmark\n     *\n     * @param {Node} editable\n     */\n\n  }, {\n    key: \"bookmark\",\n    value: function bookmark(editable) {\n      return {\n        s: {\n          path: dom.makeOffsetPath(editable, this.sc),\n          offset: this.so\n        },\n        e: {\n          path: dom.makeOffsetPath(editable, this.ec),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * create offsetPath bookmark base on paragraph\n     *\n     * @param {Node[]} paras\n     */\n\n  }, {\n    key: \"paraBookmark\",\n    value: function paraBookmark(paras) {\n      return {\n        s: {\n          path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n          offset: this.so\n        },\n        e: {\n          path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * getClientRects\n     * @return {Rect[]}\n     */\n\n  }, {\n    key: \"getClientRects\",\n    value: function getClientRects() {\n      var nativeRng = this.nativeRange();\n      return nativeRng.getClientRects();\n    }\n  }]);\n\n  return WrappedRange;\n}();\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\n\n\n/* harmony default export */ var range = ({\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function create(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) {\n      // collapsed\n      ec = sc;\n      eo = so;\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else {\n      var wrappedRange = this.createFromSelection();\n\n      if (!wrappedRange && arguments.length === 1) {\n        var bodyElement = arguments[0];\n\n        if (dom.isEditable(bodyElement)) {\n          bodyElement = bodyElement.lastChild;\n        }\n\n        return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML);\n      }\n\n      return wrappedRange;\n    }\n  },\n  createFromBodyElement: function createFromBodyElement(bodyElement) {\n    var isCollapseToStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var wrappedRange = this.createFromNode(bodyElement);\n    return wrappedRange.collapse(isCollapseToStart);\n  },\n  createFromSelection: function createFromSelection() {\n    var sc, so, ec, eo;\n\n    if (env.isW3CRangeSupport) {\n      var selection = document.getSelection();\n\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      var nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else {\n      // IE8: TextRange\n      var textRange = document.selection.createRange();\n      var textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      var textRangeStart = textRange;\n      textRangeStart.collapse(true);\n      var startPoint = textRangeToPoint(textRangeStart, true);\n      var endPoint = textRangeToPoint(textRangeEnd, false); // same visible point case: range was collapsed.\n\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function createFromNode(node) {\n    var sc = node;\n    var so = 0;\n    var ec = node;\n    var eo = dom.nodeLength(ec); // browsers can't target a picture or void node\n\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function createFromNodeBefore(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function createFromNodeAfter(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function createFromBookmark(editable, bookmark) {\n    var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    var so = bookmark.s.offset;\n    var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    var eo = bookmark.e.offset;\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function createFromParaBookmark(bookmark, paras) {\n    var so = bookmark.s.offset;\n    var eo = bookmark.e.offset;\n    var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n    return new range_WrappedRange(sc, so, ec, eo);\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/key.js\n\n\nvar KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'ESCAPE': 27,\n  'SPACE': 32,\n  'DELETE': 46,\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221,\n  // Navigation\n  'HOME': 36,\n  'END': 35,\n  'PAGEUP': 33,\n  'PAGEDOWN': 34\n};\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\n\n/* harmony default export */ var core_key = ({\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: function isEdit(keyCode) {\n    return lists.contains([KEY_MAP.BACKSPACE, KEY_MAP.TAB, KEY_MAP.ENTER, KEY_MAP.SPACE, KEY_MAP.DELETE], keyCode);\n  },\n\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: function isMove(keyCode) {\n    return lists.contains([KEY_MAP.LEFT, KEY_MAP.UP, KEY_MAP.RIGHT, KEY_MAP.DOWN], keyCode);\n  },\n\n  /**\n   * @method isNavigation\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isNavigation: function isNavigation(keyCode) {\n    return lists.contains([KEY_MAP.HOME, KEY_MAP.END, KEY_MAP.PAGEUP, KEY_MAP.PAGEDOWN], keyCode);\n  },\n\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n});\n// CONCATENATED MODULE: ./src/js/base/core/async.js\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\n\nfunction readFileAsDataURL(file) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(new FileReader(), {\n      onload: function onload(e) {\n        var dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: function onerror(err) {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\n\nfunction createImage(url) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    var $img = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<img>');\n    $img.one('load', function () {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', function () {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n// CONCATENATED MODULE: ./src/js/base/editing/History.js\nfunction History_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction History_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction History_createClass(Constructor, protoProps, staticProps) { if (protoProps) History_defineProperties(Constructor.prototype, protoProps); if (staticProps) History_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar History_History = /*#__PURE__*/function () {\n  function History(context) {\n    History_classCallCheck(this, History);\n\n    this.stack = [];\n    this.stackOffset = -1;\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n    this.editable = this.$editable[0];\n  }\n\n  History_createClass(History, [{\n    key: \"makeSnapshot\",\n    value: function makeSnapshot() {\n      var rng = range.create(this.editable);\n      var emptyBookmark = {\n        s: {\n          path: [],\n          offset: 0\n        },\n        e: {\n          path: [],\n          offset: 0\n        }\n      };\n      return {\n        contents: this.$editable.html(),\n        bookmark: rng && rng.isOnEditable() ? rng.bookmark(this.editable) : emptyBookmark\n      };\n    }\n  }, {\n    key: \"applySnapshot\",\n    value: function applySnapshot(snapshot) {\n      if (snapshot.contents !== null) {\n        this.$editable.html(snapshot.contents);\n      }\n\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(this.editable, snapshot.bookmark).select();\n      }\n    }\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n\n  }, {\n    key: \"rewind\",\n    value: function rewind() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      } // Return to the first available snapshot.\n\n\n      this.stackOffset = 0; // Apply that snapshot.\n\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n    /**\n    *  @method commit\n    *  Resets history stack, but keeps current editor's content.\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Clear the editable area.\n\n      this.$editable.html(''); // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (this.stackOffset > 0) {\n        this.stackOffset--;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      if (this.stack.length - 1 > this.stackOffset) {\n        this.stackOffset++;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * recorded undo\n     */\n\n  }, {\n    key: \"recordUndo\",\n    value: function recordUndo() {\n      this.stackOffset++; // Wash out stack after stackOffset\n\n      if (this.stack.length > this.stackOffset) {\n        this.stack = this.stack.slice(0, this.stackOffset);\n      } // Create new snapshot and push it to the end\n\n\n      this.stack.push(this.makeSnapshot()); // If the stack size reachs to the limit, then slice it\n\n      if (this.stack.length > this.context.options.historyLimit) {\n        this.stack.shift();\n        this.stackOffset -= 1;\n      }\n    }\n  }]);\n\n  return History;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Style.js\nfunction Style_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Style_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Style_createClass(Constructor, protoProps, staticProps) { if (protoProps) Style_defineProperties(Constructor.prototype, protoProps); if (staticProps) Style_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Style_Style = /*#__PURE__*/function () {\n  function Style() {\n    Style_classCallCheck(this, Style);\n  }\n\n  Style_createClass(Style, [{\n    key: \"jQueryCSS\",\n\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    value: function jQueryCSS($obj, propertyNames) {\n      if (env.jqueryVersion < 1.9) {\n        var result = {};\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n\n      return $obj.css(propertyNames);\n    }\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"fromNode\",\n    value: function fromNode($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = this.jQueryCSS($node, properties) || {};\n      var fontSize = $node[0].style.fontSize || styleInfo['font-size'];\n      styleInfo['font-size'] = parseInt(fontSize, 10);\n      styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/);\n      return styleInfo;\n    }\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n\n  }, {\n    key: \"stylePara\",\n    value: function stylePara(rng, styleInfo) {\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css(styleInfo);\n      });\n    }\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"styleNodes\",\n    value: function styleNodes(rng, options) {\n      rng = rng.splitText();\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes(); // compose with partial contains predication\n\n          pred = func.and(pred, function (node) {\n            return lists.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = lists.head(siblings);\n          var tails = lists.tail(siblings);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return lists.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    }\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n\n  }, {\n    key: \"current\",\n    value: function current(rng) {\n      var $cont = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont); // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n\n      try {\n        styleInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n          'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n        });\n      } catch (e) {} // eslint-disable-next-line\n      // list-style-type to list-style(unordered, ordered)\n\n\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n      return styleInfo;\n    }\n  }]);\n\n  return Style;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Bullet.js\nfunction Bullet_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Bullet_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Bullet_createClass(Constructor, protoProps, staticProps) { if (protoProps) Bullet_defineProperties(Constructor.prototype, protoProps); if (staticProps) Bullet_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Bullet_Bullet = /*#__PURE__*/function () {\n  function Bullet() {\n    Bullet_classCallCheck(this, Bullet);\n  }\n\n  Bullet_createClass(Bullet, [{\n    key: \"insertOrderedList\",\n\n    /**\n     * toggle ordered list\n     */\n    value: function insertOrderedList(editable) {\n      this.toggleList('OL', editable);\n    }\n    /**\n     * toggle unordered list\n     */\n\n  }, {\n    key: \"insertUnorderedList\",\n    value: function insertUnorderedList(editable) {\n      this.toggleList('UL', editable);\n    }\n    /**\n     * indent\n     */\n\n  }, {\n    key: \"indent\",\n    value: function indent(editable) {\n      var _this = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          var previousList = _this.findList(head.previousSibling);\n\n          if (previousList) {\n            paras.map(function (para) {\n              return previousList.appendChild(para);\n            });\n          } else {\n            _this.wrapList(paras, head.parentNode.nodeName);\n\n            paras.map(function (para) {\n              return para.parentNode;\n            }).map(function (para) {\n              return _this.appendToPrevious(para);\n            });\n          }\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * outdent\n     */\n\n  }, {\n    key: \"outdent\",\n    value: function outdent(editable) {\n      var _this2 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          _this2.releaseList([paras]);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              val = parseInt(val, 10) || 0;\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n\n  }, {\n    key: \"toggleList\",\n    value: function toggleList(listName, editable) {\n      var _this3 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); // paragraph to list\n\n      if (lists.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(_this3.wrapList(paras, listName));\n        });\n        paras = wrappedParas; // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    }\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"wrapList\",\n    value: function wrapList(paras, listName) {\n      var head = lists.head(paras);\n      var last = lists.last(paras);\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); // P to LI\n\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      }); // append to list(<ul>, <ol>)\n\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    }\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"releaseList\",\n    value: function releaseList(clustereds, isEscapseToBody) {\n      var _this4 = this;\n\n      var releasedParas = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n        var last = lists.last(paras);\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n        var parentItem = headList.parentNode;\n\n        if (headList.parentNode.nodeName === 'LI') {\n          paras.map(function (para) {\n            var newList = _this4.findNextSiblings(para);\n\n            if (parentItem.nextSibling) {\n              parentItem.parentNode.insertBefore(para, parentItem.nextSibling);\n            } else {\n              parentItem.parentNode.appendChild(para);\n            }\n\n            if (newList.length) {\n              _this4.wrapList(newList, headList.nodeName);\n\n              para.appendChild(newList[0].parentNode);\n            }\n          });\n\n          if (headList.children.length === 0) {\n            parentItem.removeChild(headList);\n          }\n\n          if (parentItem.childNodes.length === 0) {\n            parentItem.parentNode.removeChild(parentItem);\n          }\n        } else {\n          var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n            node: last.parentNode,\n            offset: dom.position(last) + 1\n          }, {\n            isSkipPaddingBlankHTML: true\n          }) : null;\n          var middleList = dom.splitTree(headList, {\n            node: head.parentNode,\n            offset: dom.position(head)\n          }, {\n            isSkipPaddingBlankHTML: true\n          });\n          paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : lists.from(middleList.childNodes).filter(dom.isLi); // LI to P\n\n          if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n            paras = paras.map(function (para) {\n              return dom.replace(para, 'P');\n            });\n          }\n\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(lists.from(paras).reverse(), function (idx, para) {\n            dom.insertAfter(para, headList);\n          }); // remove empty lists\n\n          var rootLists = lists.compact([headList, middleList, lastList]);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rootLists, function (idx, rootList) {\n            var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(listNodes.reverse(), function (idx, listNode) {\n              if (!dom.nodeLength(listNode)) {\n                dom.remove(listNode, true);\n              }\n            });\n          });\n        }\n\n        releasedParas = releasedParas.concat(paras);\n      });\n      return releasedParas;\n    }\n    /**\n     * @method appendToPrevious\n     *\n     * Appends list to previous list item, if\n     * none exist it wraps the list in a new list item.\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"appendToPrevious\",\n    value: function appendToPrevious(node) {\n      return node.previousSibling ? dom.appendChildNodes(node.previousSibling, [node]) : this.wrapList([node], 'LI');\n    }\n    /**\n     * @method findList\n     *\n     * Finds an existing list in list item\n     *\n     * @param {HTMLNode} ListItem\n     * @return {Array[]}\n     */\n\n  }, {\n    key: \"findList\",\n    value: function findList(node) {\n      return node ? lists.find(node.children, function (child) {\n        return ['OL', 'UL'].indexOf(child.nodeName) > -1;\n      }) : null;\n    }\n    /**\n     * @method findNextSiblings\n     *\n     * Finds all list item siblings that follow it\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"findNextSiblings\",\n    value: function findNextSiblings(node) {\n      var siblings = [];\n\n      while (node.nextSibling) {\n        siblings.push(node.nextSibling);\n        node = node.nextSibling;\n      }\n\n      return siblings;\n    }\n  }]);\n\n  return Bullet;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Typing.js\nfunction Typing_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Typing_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Typing_createClass(Constructor, protoProps, staticProps) { if (protoProps) Typing_defineProperties(Constructor.prototype, protoProps); if (staticProps) Typing_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\n\nvar Typing_Typing = /*#__PURE__*/function () {\n  function Typing(context) {\n    Typing_classCallCheck(this, Typing);\n\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet_Bullet();\n    this.options = context.options;\n  }\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n\n\n  Typing_createClass(Typing, [{\n    key: \"insertTab\",\n    value: function insertTab(rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n      rng = range.create(tab, tabsize);\n      rng.select();\n    }\n    /**\n     * insert paragraph\n     *\n     * @param {jQuery} $editable\n     * @param {WrappedRange} rng Can be used in unit tests to \"mock\" the range\n     *\n     * blockquoteBreakingLevel\n     *   0 - No break, the new paragraph remains inside the quote\n     *   1 - Break the first blockquote in the ancestors list\n     *   2 - Break all blockquotes, so that the new paragraph is not quoted (this is the default)\n     */\n\n  }, {\n    key: \"insertParagraph\",\n    value: function insertParagraph(editable, rng) {\n      rng = rng || range.create(editable); // deleteContents on range.\n\n      rng = rng.deleteContents(); // Wrap range if it needs to be wrapped by paragraph\n\n      rng = rng.wrapBodyInlineWithPara(); // finding paragraph\n\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n      var nextPara; // on paragraph: split paragraph\n\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isLi(splitRoot) && (dom.isEmpty(splitRoot) || dom.deepestChildIsEmpty(splitRoot))) {\n          // toggle UL/OL and escape\n          this.bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        } else {\n          var blockquote = null;\n\n          if (this.options.blockquoteBreakingLevel === 1) {\n            blockquote = dom.ancestor(splitRoot, dom.isBlockquote);\n          } else if (this.options.blockquoteBreakingLevel === 2) {\n            blockquote = dom.lastAncestor(splitRoot, dom.isBlockquote);\n          }\n\n          if (blockquote) {\n            // We're inside a blockquote and options ask us to break it\n            nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0]; // If the split is right before a <br>, remove it so that there's no \"empty line\"\n            // after the split in the new blockquote created\n\n            if (dom.isRightEdgePoint(rng.getStartPoint()) && dom.isBR(rng.sc.nextSibling)) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(rng.sc.nextSibling).remove();\n            }\n\n            var split = dom.splitTree(blockquote, rng.getStartPoint(), {\n              isDiscardEmptySplits: true\n            });\n\n            if (split) {\n              split.parentNode.insertBefore(nextPara, split);\n            } else {\n              dom.insertAfter(nextPara, blockquote); // There's no split if we were at the end of the blockquote\n            }\n          } else {\n            nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); // not a blockquote, just insert the paragraph\n\n            var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n            emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyAnchors, function (idx, anchor) {\n              dom.remove(anchor);\n            }); // replace empty heading, pre or custom-made styleTag with P tag\n\n            if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n              nextPara = dom.replace(nextPara, 'p');\n            }\n          }\n        } // no paragraph: insert empty paragraph\n\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0];\n\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    }\n  }]);\n\n  return Typing;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Table.js\nfunction Table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Table_createClass(Constructor, protoProps, staticProps) { if (protoProps) Table_defineProperties(Constructor.prototype, protoProps); if (staticProps) Table_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\n\nvar TableResultAction = function TableResultAction(startPoint, where, action, domTable) {\n  var _startPoint = {\n    'colPos': 0,\n    'rowPos': 0\n  };\n  var _virtualTable = [];\n  var _actionCellList = []; /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th') {\n      // Impossible to identify start Cell point\n      return;\n    }\n\n    _startPoint.colPos = startPoint.cellIndex;\n\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      // Impossible to identify start Row point\n      return;\n    }\n\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n\n\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    var objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n\n\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n\n\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    var newCellIndex = cellIndex;\n\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n\n\n  function addCellInfoToVirtual(row, cell) {\n    var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    var cellHasColspan = cell.colSpan > 1;\n    var cellHasRowspan = cell.rowSpan > 1;\n    var isThisSelectedCell = row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos;\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false); // Add span rows to virtual Table.\n\n    var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n\n    if (rowspanNumber > 1) {\n      for (var rp = 1; rp < rowspanNumber; rp++) {\n        var rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    } // Add span cols to virtual table.\n\n\n    var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n\n    if (colspanNumber > 1) {\n      for (var cp = 1; cp < colspanNumber; cp++) {\n        var cellspanIndex = recoverCellIndex(row.rowIndex, cellIndex + cp);\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n\n\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n\n\n  function createVirtualTable() {\n    var rows = domTable.rows;\n\n    for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      var cells = rows[rowIndex].cells;\n\n      for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.RemoveCell;\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  } /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n\n\n  this.getActionList = function () {\n    var fixedRow = where === TableResultAction.where.Row ? _startPoint.rowPos : -1;\n    var fixedCol = where === TableResultAction.where.Column ? _startPoint.colPos : -1;\n    var actualPosition = 0;\n    var canContinue = true;\n\n    while (canContinue) {\n      var rowPosition = fixedRow >= 0 ? fixedRow : actualPosition;\n      var colPosition = fixedCol >= 0 ? fixedCol : actualPosition;\n      var row = _virtualTable[rowPosition];\n\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      var cell = row[colPosition];\n\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      } // Define action to be applied in this cell\n\n\n      var resultAction = TableResultAction.resultAction.Ignore;\n\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\n\n\nTableResultAction.where = {\n  'Row': 0,\n  'Column': 1\n};\n/**\n*\n* Requested action to apply enum.\n*/\n\nTableResultAction.requestAction = {\n  'Add': 0,\n  'Delete': 1\n};\n/**\n*\n* Result action to be executed enum.\n*/\n\nTableResultAction.resultAction = {\n  'Ignore': 0,\n  'SubtractSpanCount': 1,\n  'RemoveCell': 2,\n  'AddCell': 3,\n  'SumSpanCount': 4\n};\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\n\nvar Table_Table = /*#__PURE__*/function () {\n  function Table() {\n    Table_classCallCheck(this, Table);\n  }\n\n  Table_createClass(Table, [{\n    key: \"tab\",\n\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    value: function tab(rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n      var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    }\n    /**\n     * Add a new row\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (top/bottom)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addRow\",\n    value: function addRow(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var currentTr = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var trAttributes = this.recoverAttributes(currentTr);\n      var html = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<tr' + trAttributes + '></tr>');\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var idCell = 0; idCell < actions.length; idCell++) {\n        var currentCell = actions[idCell];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            {\n              if (position === 'top') {\n                var baseCellTr = currentCell.baseCell.parent;\n                var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n\n                if (isTopFromRowSpan) {\n                  var newTd = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n                  html.append(newTd);\n                  break;\n                }\n              }\n\n              var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n              rowspanNumber++;\n              currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n            }\n            break;\n        }\n      }\n\n      if (position === 'top') {\n        currentTr.before(html);\n      } else {\n        var cellHasRowspan = cell.rowSpan > 1;\n\n        if (cellHasRowspan) {\n          var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).parent().find('tr')[lastTrIndex]).after(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(html));\n          return;\n        }\n\n        currentTr.after(html);\n      }\n    }\n    /**\n     * Add a new col\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (left/right)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addCol\",\n    value: function addCol(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var rowsGroup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).siblings();\n      rowsGroup.push(row);\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        var currentCell = actions[actionIndex];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            if (position === 'right') {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            if (position === 'right') {\n              var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n              colspanNumber++;\n              currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n        }\n      }\n    }\n    /*\n    * Copy attributes from element.\n    *\n    * @param {object} Element to recover attributes.\n    * @return {string} Copied string elements.\n    */\n\n  }, {\n    key: \"recoverAttributes\",\n    value: function recoverAttributes(el) {\n      var resultStr = '';\n\n      if (!el) {\n        return resultStr;\n      }\n\n      var attrList = el.attributes || [];\n\n      for (var i = 0; i < attrList.length; i++) {\n        if (attrList[i].name.toLowerCase() === 'id') {\n          continue;\n        }\n\n        if (attrList[i].specified) {\n          resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n        }\n      }\n\n      return resultStr;\n    }\n    /**\n     * Delete current row\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var rowPos = row[0].rowIndex;\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        var baseCell = actions[actionIndex].baseCell;\n        var virtualPosition = actions[actionIndex].virtualTable;\n        var hasRowspan = baseCell.rowSpan && baseCell.rowSpan > 1;\n        var rowspanNumber = hasRowspan ? parseInt(baseCell.rowSpan, 10) : 0;\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.AddCell:\n            {\n              var nextRow = row.next('tr')[0];\n\n              if (!nextRow) {\n                continue;\n              }\n\n              var cloneRow = row[0].cells[cellPos];\n\n              if (hasRowspan) {\n                if (rowspanNumber > 2) {\n                  rowspanNumber--;\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n                  nextRow.cells[cellPos].innerHTML = '';\n                } else if (rowspanNumber === 2) {\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].removeAttribute('rowSpan');\n                  nextRow.cells[cellPos].innerHTML = '';\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            if (hasRowspan) {\n              if (rowspanNumber > 2) {\n                rowspanNumber--;\n                baseCell.setAttribute('rowSpan', rowspanNumber);\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              } else if (rowspanNumber === 2) {\n                baseCell.removeAttribute('rowSpan');\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              }\n            }\n\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            // Do not need remove cell because row will be deleted.\n            continue;\n        }\n      }\n\n      row.remove();\n    }\n    /**\n     * Delete current col\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            {\n              var baseCell = actions[actionIndex].baseCell;\n              var hasColspan = baseCell.colSpan && baseCell.colSpan > 1;\n\n              if (hasColspan) {\n                var colspanNumber = baseCell.colSpan ? parseInt(baseCell.colSpan, 10) : 0;\n\n                if (colspanNumber > 2) {\n                  colspanNumber--;\n                  baseCell.setAttribute('colSpan', colspanNumber);\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                } else if (colspanNumber === 2) {\n                  baseCell.removeAttribute('colSpan');\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            dom.remove(actions[actionIndex].baseCell, true);\n            continue;\n        }\n      }\n    }\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n\n  }, {\n    key: \"createTable\",\n    value: function createTable(colCount, rowCount, options) {\n      var tds = [];\n      var tdHTML;\n\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n\n      tdHTML = tds.join('');\n      var trs = [];\n      var trHTML;\n\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n\n      trHTML = trs.join('');\n      var $table = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<table>' + trHTML + '</table>');\n\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    }\n    /**\n     * Delete current table\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('table').remove();\n    }\n  }]);\n\n  return Table;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Editor.js\nfunction Editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) Editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) Editor_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar KEY_BOGUS = 'bogus';\n/**\n * @class Editor\n */\n\nvar Editor_Editor = /*#__PURE__*/function () {\n  function Editor(context) {\n    var _this = this;\n\n    Editor_classCallCheck(this, Editor);\n\n    this.context = context;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n    this.snapshot = null;\n    this.style = new Style_Style();\n    this.table = new Table_Table();\n    this.typing = new Typing_Typing(context);\n    this.bullet = new Bullet_Bullet();\n    this.history = new History_History(context);\n    this.context.memo('help.escape', this.lang.help.escape);\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName); // native commands(with execCommand), generate function for execCommand\n\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'formatBlock', 'removeFormat', 'backColor'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = function (sCmd) {\n        return function (value) {\n          _this.beforeCommand();\n\n          document.execCommand(sCmd, false, value);\n\n          _this.afterCommand(true);\n        };\n      }(commands[idx]);\n\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand(function (value) {\n      return _this.fontStyling('font-family', env.validFontName(value));\n    });\n    this.fontSize = this.wrapCommand(function (value) {\n      var unit = _this.currentStyle()['font-size-unit'];\n\n      return _this.fontStyling('font-size', value + unit);\n    });\n    this.fontSizeUnit = this.wrapCommand(function (value) {\n      var size = _this.currentStyle()['font-size'];\n\n      return _this.fontStyling('font-size', size + value);\n    });\n\n    for (var _idx = 1; _idx <= 6; _idx++) {\n      this['formatH' + _idx] = function (idx) {\n        return function () {\n          _this.formatBlock('H' + idx);\n        };\n      }(_idx);\n\n      this.context.memo('help.formatH' + _idx, this.lang.help['formatH' + _idx]);\n    }\n\n    this.insertParagraph = this.wrapCommand(function () {\n      _this.typing.insertParagraph(_this.editable);\n    });\n    this.insertOrderedList = this.wrapCommand(function () {\n      _this.bullet.insertOrderedList(_this.editable);\n    });\n    this.insertUnorderedList = this.wrapCommand(function () {\n      _this.bullet.insertUnorderedList(_this.editable);\n    });\n    this.indent = this.wrapCommand(function () {\n      _this.bullet.indent(_this.editable);\n    });\n    this.outdent = this.wrapCommand(function () {\n      _this.bullet.outdent(_this.editable);\n    });\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n\n    this.insertNode = this.wrapCommand(function (node) {\n      if (_this.isLimited(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).text().length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      rng.insertNode(node);\n\n      _this.setLastRange(range.createFromNodeAfter(node).select());\n    });\n    /**\n     * insert text\n     * @param {String} text\n     */\n\n    this.insertText = this.wrapCommand(function (text) {\n      if (_this.isLimited(text.length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      var textNode = rng.insertNode(dom.createText(text));\n\n      _this.setLastRange(range.create(textNode, dom.nodeLength(textNode)).select());\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      if (_this.isLimited(markup.length)) {\n        return;\n      }\n\n      markup = _this.context.invoke('codeview.purify', markup);\n\n      var contents = _this.getLastRange().pasteHTML(markup);\n\n      _this.setLastRange(range.createFromNodeAfter(lists.last(contents)).select());\n    });\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n\n    this.formatBlock = this.wrapCommand(function (tagName, $target) {\n      var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;\n\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);\n      } else {\n        _this.onFormatBlock(tagName, $target);\n      }\n    });\n    /**\n     * insert horizontal rule\n     */\n\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = _this.getLastRange().insertNode(dom.create('HR'));\n\n      if (hrNode.nextSibling) {\n        _this.setLastRange(range.create(hrNode.nextSibling, 0).normalize().select());\n      }\n    });\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n\n    this.lineHeight = this.wrapCommand(function (value) {\n      _this.style.stylePara(_this.getLastRange(), {\n        lineHeight: value\n      });\n    });\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var checkProtocol = linkInfo.checkProtocol;\n\n      var rng = linkInfo.range || _this.getLastRange();\n\n      var additionalTextLength = linkText.length - rng.toString().length;\n\n      if (additionalTextLength > 0 && _this.isLimited(additionalTextLength)) {\n        return;\n      }\n\n      var isTextChanged = rng.toString() !== linkText; // handle spaced urls from input\n\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (_this.options.onCreateLink) {\n        linkUrl = _this.options.onCreateLink(linkUrl);\n      } else if (checkProtocol) {\n        // if url doesn't have any protocol and not even a relative or a label, use http:// as default\n        linkUrl = /^([A-Za-z][A-Za-z0-9+-.]*\\:|#|\\/)/.test(linkUrl) ? linkUrl : _this.options.defaultProtocol + linkUrl;\n      }\n\n      var anchors = [];\n\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = _this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(anchors, function (idx, anchor) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href', linkUrl);\n\n        if (isNewWindow) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('target', '_blank');\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).removeAttr('target');\n        }\n      });\n\n      _this.setLastRange(_this.createRangeFromList(anchors).select());\n    });\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) {\n        document.execCommand('foreColor', false, foreColor);\n      }\n\n      if (backColor) {\n        document.execCommand('backColor', false, backColor);\n      }\n    });\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n\n    this.foreColor = this.wrapCommand(function (colorInfo) {\n      document.execCommand('foreColor', false, colorInfo);\n    });\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = _this.getLastRange().deleteContents();\n\n      rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));\n    });\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).parent();\n\n      if ($target.closest('figure').length) {\n        $target.closest('figure').remove();\n      } else {\n        $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).detach();\n      }\n\n      _this.context.triggerEvent('media.delete', $target, _this.$editable);\n    });\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value === 'none' ? '' : value);\n    });\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n\n    this.resize = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      value = parseFloat(value);\n\n      if (value === 0) {\n        $target.css('width', '');\n      } else {\n        $target.css({\n          width: value * 100 + '%',\n          height: ''\n        });\n      }\n    });\n  }\n\n  Editor_createClass(Editor, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      // bind custom events\n      this.$editable.on('keydown', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          _this2.context.triggerEvent('enter', event);\n        }\n\n        _this2.context.triggerEvent('keydown', event); // keep a snapshot to limit text on input event\n\n\n        _this2.snapshot = _this2.history.makeSnapshot();\n        _this2.hasKeyShortCut = false;\n\n        if (!event.isDefaultPrevented()) {\n          if (_this2.options.shortcuts) {\n            _this2.hasKeyShortCut = _this2.handleKeyMap(event);\n          } else {\n            _this2.preventDefaultEditableShortCuts(event);\n          }\n        }\n\n        if (_this2.isLimited(1, event)) {\n          var lastRange = _this2.getLastRange();\n\n          if (lastRange.eo - lastRange.so === 0) {\n            return false;\n          }\n        }\n\n        _this2.setLastRange(); // record undo in the key event except keyMap.\n\n\n        if (_this2.options.recordEveryKeystroke) {\n          if (_this2.hasKeyShortCut === false) {\n            _this2.history.recordUndo();\n          }\n        }\n      }).on('keyup', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        _this2.context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        _this2.context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        _this2.setLastRange();\n\n        _this2.history.recordUndo();\n\n        _this2.context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        _this2.context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('paste', event);\n      }).on('input', function () {\n        // To limit composition characters (e.g. Korean)\n        if (_this2.isLimited(0) && _this2.snapshot) {\n          _this2.history.applySnapshot(_this2.snapshot);\n        }\n      });\n      this.$editable.attr('spellcheck', this.options.spellCheck);\n      this.$editable.attr('autocorrect', this.options.spellCheck);\n\n      if (this.options.disableGrammar) {\n        this.$editable.attr('data-gramm', false);\n      } // init content before set event\n\n\n      this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n      this.$editable.on(env.inputEventName, func.debounce(function () {\n        _this2.context.triggerEvent('change', _this2.$editable.html(), _this2.$editable);\n      }, 10));\n      this.$editable.on('focusin', function (event) {\n        _this2.context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        _this2.context.triggerEvent('focusout', event);\n      });\n\n      if (this.options.airMode) {\n        if (this.options.overrideContextMenu) {\n          this.$editor.on('contextmenu', function (event) {\n            _this2.context.triggerEvent('contextmenu', event);\n\n            return false;\n          });\n        }\n      } else {\n        if (this.options.width) {\n          this.$editor.outerWidth(this.options.width);\n        }\n\n        if (this.options.height) {\n          this.$editable.outerHeight(this.options.height);\n        }\n\n        if (this.options.maxHeight) {\n          this.$editable.css('max-height', this.options.maxHeight);\n        }\n\n        if (this.options.minHeight) {\n          this.$editable.css('min-height', this.options.minHeight);\n        }\n      }\n\n      this.history.recordUndo();\n      this.setLastRange();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$editable.off();\n    }\n  }, {\n    key: \"handleKeyMap\",\n    value: function handleKeyMap(event) {\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) {\n        keys.push('CMD');\n      }\n\n      if (event.ctrlKey && !event.altKey) {\n        keys.push('CTRL');\n      }\n\n      if (event.shiftKey) {\n        keys.push('SHIFT');\n      }\n\n      var keyName = core_key.nameFromCode[event.keyCode];\n\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n\n      if (keyName === 'TAB' && !this.options.tabDisable) {\n        this.afterCommand();\n      } else if (eventName) {\n        if (this.context.invoke(eventName) !== false) {\n          event.preventDefault(); // if keyMap action was invoked\n\n          return true;\n        }\n      } else if (core_key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n\n      return false;\n    }\n  }, {\n    key: \"preventDefaultEditableShortCuts\",\n    value: function preventDefaultEditableShortCuts(event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) && lists.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"isLimited\",\n    value: function isLimited(pad, event) {\n      pad = pad || 0;\n\n      if (typeof event !== 'undefined') {\n        if (core_key.isMove(event.keyCode) || core_key.isNavigation(event.keyCode) || event.ctrlKey || event.metaKey || lists.contains([core_key.code.BACKSPACE, core_key.code.DELETE], event.keyCode)) {\n          return false;\n        }\n      }\n\n      if (this.options.maxTextLength > 0) {\n        if (this.$editable.text().length + pad > this.options.maxTextLength) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange() {\n      this.focus();\n      this.setLastRange();\n      return this.getLastRange();\n    }\n    /**\n     * create a new range from the list of elements\n     *\n     * @param {list} dom element list\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRangeFromList\",\n    value: function createRangeFromList(lst) {\n      var startRange = range.createFromNodeBefore(lists.head(lst));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(lists.last(lst));\n      var endPoint = endRange.getEndPoint();\n      return range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * set the last range\n     *\n     * if given rng is exist, set rng as the last range\n     * or create a new range at the end of the document\n     *\n     * @param {WrappedRange} rng\n     */\n\n  }, {\n    key: \"setLastRange\",\n    value: function setLastRange(rng) {\n      if (rng) {\n        this.lastRange = rng;\n      } else {\n        this.lastRange = range.create(this.editable);\n\n        if (external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.lastRange.sc).closest('.note-editable').length === 0) {\n          this.lastRange = range.createFromBodyElement(this.editable);\n        }\n      }\n    }\n    /**\n     * get the last range\n     *\n     * if there is a saved last range, return it\n     * or create a new range and return it\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      if (!this.lastRange) {\n        this.setLastRange();\n      }\n\n      return this.lastRange;\n    }\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n\n  }, {\n    key: \"saveRange\",\n    value: function saveRange(thenCollapse) {\n      if (thenCollapse) {\n        this.getLastRange().collapse().select();\n      }\n    }\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n\n  }, {\n    key: \"restoreRange\",\n    value: function restoreRange() {\n      if (this.lastRange) {\n        this.lastRange.select();\n        this.focus();\n      }\n    }\n  }, {\n    key: \"saveTarget\",\n    value: function saveTarget(node) {\n      this.$editable.data('target', node);\n    }\n  }, {\n    key: \"clearTarget\",\n    value: function clearTarget() {\n      this.$editable.removeData('target');\n    }\n  }, {\n    key: \"restoreTarget\",\n    value: function restoreTarget() {\n      return this.$editable.data('target');\n    }\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n\n  }, {\n    key: \"currentStyle\",\n    value: function currentStyle() {\n      var rng = range.create();\n\n      if (rng) {\n        rng = rng.normalize();\n      }\n\n      return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n    }\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"styleFromNode\",\n    value: function styleFromNode($node) {\n      return this.style.fromNode($node);\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.undo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /*\n    * commit\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.commit();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.redo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * before command\n     */\n\n  }, {\n    key: \"beforeCommand\",\n    value: function beforeCommand() {\n      this.context.triggerEvent('before.command', this.$editable.html()); // Set styleWithCSS before run a command\n\n      document.execCommand('styleWithCSS', false, this.options.styleWithCSS); // keep focus on editable before command execution\n\n      this.focus();\n    }\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n\n  }, {\n    key: \"afterCommand\",\n    value: function afterCommand(isPreventTrigger) {\n      this.normalizeContent();\n      this.history.recordUndo();\n\n      if (!isPreventTrigger) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n    }\n    /**\n     * handle tab key\n     */\n\n  }, {\n    key: \"tab\",\n    value: function tab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n\n        if (!this.isLimited(this.options.tabSize)) {\n          this.beforeCommand();\n          this.typing.insertTab(rng, this.options.tabSize);\n          this.afterCommand();\n        }\n      }\n    }\n    /**\n     * handle shift+tab key\n     */\n\n  }, {\n    key: \"untab\",\n    value: function untab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng, true);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n      }\n    }\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n\n  }, {\n    key: \"wrapCommand\",\n    value: function wrapCommand(fn) {\n      return function () {\n        this.beforeCommand();\n        fn.apply(this, arguments);\n        this.afterCommand();\n      };\n    }\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"insertImage\",\n    value: function insertImage(src, param) {\n      var _this3 = this;\n\n      return createImage(src, param).then(function ($image) {\n        _this3.beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n\n          $image.css('width', Math.min(_this3.$editable.width(), $image.width()));\n        }\n\n        $image.show();\n\n        _this3.getLastRange().insertNode($image[0]);\n\n        _this3.setLastRange(range.createFromNodeAfter($image[0]).select());\n\n        _this3.afterCommand();\n      }).fail(function (e) {\n        _this3.context.triggerEvent('image.upload.error', e);\n      });\n    }\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesAsDataURL\",\n    value: function insertImagesAsDataURL(files) {\n      var _this4 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(files, function (idx, file) {\n        var filename = file.name;\n\n        if (_this4.options.maximumImageFileSize && _this4.options.maximumImageFileSize < file.size) {\n          _this4.context.triggerEvent('image.upload.error', _this4.lang.image.maximumFileSizeError);\n        } else {\n          readFileAsDataURL(file).then(function (dataURL) {\n            return _this4.insertImage(dataURL, filename);\n          }).fail(function () {\n            _this4.context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    }\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesOrCallback\",\n    value: function insertImagesOrCallback(files) {\n      var callbacks = this.options.callbacks; // If onImageUpload set,\n\n      if (callbacks.onImageUpload) {\n        this.context.triggerEvent('image.upload', files); // else insert Image as dataURL\n      } else {\n        this.insertImagesAsDataURL(files);\n      }\n    }\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n\n  }, {\n    key: \"getSelectedText\",\n    value: function getSelectedText() {\n      var rng = this.getLastRange(); // if range on anchor, expand range with anchor\n\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    }\n  }, {\n    key: \"onFormatBlock\",\n    value: function onFormatBlock(tagName, $target) {\n      // [workaround] for MSIE, IE need `<`\n      document.execCommand('FormatBlock', false, env.isMSIE ? '<' + tagName + '>' : tagName); // support custom class\n\n      if ($target && $target.length) {\n        // find the exact element has given tagName\n        if ($target[0].tagName.toUpperCase() !== tagName.toUpperCase()) {\n          $target = $target.find(tagName);\n        }\n\n        if ($target && $target.length) {\n          var className = $target[0].className || '';\n\n          if (className) {\n            var currentRange = this.createRange();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()([currentRange.sc, currentRange.ec]).closest(tagName);\n            $parent.addClass(className);\n          }\n        }\n      }\n    }\n  }, {\n    key: \"formatPara\",\n    value: function formatPara() {\n      this.formatBlock('P');\n    }\n  }, {\n    key: \"fontStyling\",\n    value: function fontStyling(target, value) {\n      var rng = this.getLastRange();\n\n      if (rng !== '') {\n        var spans = this.style.styleNodes(rng);\n        this.$editor.find('.note-status-output').html('');\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(spans).css(target, value); // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n\n        if (rng.isCollapsed()) {\n          var firstSpan = lists.head(spans);\n\n          if (firstSpan && !dom.nodeLength(firstSpan)) {\n            firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n            range.createFromNode(firstSpan.firstChild).select();\n            this.setLastRange();\n            this.$editable.data(KEY_BOGUS, firstSpan);\n          }\n        } else {\n          this.setLastRange(this.createRangeFromList(spans).select());\n        }\n      } else {\n        var noteStatusOutput = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now();\n        this.$editor.find('.note-status-output').html('<div id=\"note-status-output-' + noteStatusOutput + '\" class=\"alert alert-info\">' + this.lang.output.noSelection + '</div>');\n        setTimeout(function () {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('#note-status-output-' + noteStatusOutput).remove();\n        }, 5000);\n      }\n    }\n    /**\n     * unlink\n     *\n     * @type command\n     */\n\n  }, {\n    key: \"unlink\",\n    value: function unlink() {\n      var rng = this.getLastRange();\n\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n        this.setLastRange();\n        this.beforeCommand();\n        document.execCommand('unlink');\n        this.afterCommand();\n      }\n    }\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n\n  }, {\n    key: \"getLinkInfo\",\n    value: function getLinkInfo() {\n      var rng = this.getLastRange().expand(dom.isAnchor); // Get the first anchor on range(for edit).\n\n      var $anchor = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(lists.head(rng.nodes(dom.isAnchor)));\n      var linkInfo = {\n        range: rng,\n        text: rng.toString(),\n        url: $anchor.length ? $anchor.attr('href') : ''\n      }; // When anchor exists,\n\n      if ($anchor.length) {\n        // Set isNewWindow by checking its target.\n        linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n      }\n\n      return linkInfo;\n    }\n  }, {\n    key: \"addRow\",\n    value: function addRow(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addRow(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"addCol\",\n    value: function addCol(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addCol(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteRow(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteCol(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteTable(rng);\n        this.afterCommand();\n      }\n    }\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n\n  }, {\n    key: \"resizeTo\",\n    value: function resizeTo(pos, $target, bKeepRatio) {\n      var imageSize;\n\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    }\n    /**\n     * returns whether editable area has focus or not.\n     */\n\n  }, {\n    key: \"hasFocus\",\n    value: function hasFocus() {\n      return this.$editable.is(':focus');\n    }\n    /**\n     * set focus\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        this.$editable.focus();\n      }\n    }\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    value: function isEmpty() {\n      return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n    }\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n\n  }, {\n    key: \"empty\",\n    value: function empty() {\n      this.context.invoke('code', dom.emptyPara);\n    }\n    /**\n     * normalize content\n     */\n\n  }, {\n    key: \"normalizeContent\",\n    value: function normalizeContent() {\n      this.$editable[0].normalize();\n    }\n  }]);\n\n  return Editor;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Clipboard.js\nfunction Clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) Clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) Clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Clipboard_Clipboard = /*#__PURE__*/function () {\n  function Clipboard(context) {\n    Clipboard_classCallCheck(this, Clipboard);\n\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  Clipboard_createClass(Clipboard, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.$editable.on('paste', this.pasteByEvent.bind(this));\n    }\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n\n  }, {\n    key: \"pasteByEvent\",\n    value: function pasteByEvent(event) {\n      var _this = this;\n\n      var clipboardData = event.originalEvent.clipboardData;\n\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = clipboardData.items.length > 1 ? clipboardData.items[1] : lists.head(clipboardData.items);\n\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          // paste img file\n          this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n          event.preventDefault();\n        } else if (item.kind === 'string') {\n          // paste text with maxTextLength check\n          if (this.context.invoke('editor.isLimited', clipboardData.getData('Text').length)) {\n            event.preventDefault();\n          }\n        }\n      } else if (window.clipboardData) {\n        // for IE\n        var text = window.clipboardData.getData('text');\n\n        if (this.context.invoke('editor.isLimited', text.length)) {\n          event.preventDefault();\n        }\n      } // Call editor.afterCommand after proceeding default event handler\n\n\n      setTimeout(function () {\n        _this.context.invoke('editor.afterCommand');\n      }, 10);\n    }\n  }]);\n\n  return Clipboard;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Dropzone.js\nfunction Dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) Dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) Dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Dropzone_Dropzone = /*#__PURE__*/function () {\n  function Dropzone(context) {\n    Dropzone_classCallCheck(this, Dropzone);\n\n    this.context = context;\n    this.$eventListener = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n    this.$dropzone = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-dropzone\">', '<div class=\"note-dropzone-message\"></div>', '</div>'].join('')).prependTo(this.$editor);\n  }\n  /**\n   * attach Drag and Drop Events\n   */\n\n\n  Dropzone_createClass(Dropzone, [{\n    key: \"initialize\",\n    value: function initialize() {\n      if (this.options.disableDragAndDrop) {\n        // prevent default drop event\n        this.documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        }; // do not consider outside of dropzone\n\n\n        this.$eventListener = this.$dropzone;\n        this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    }\n    /**\n     * attach Drag and Drop Events\n     */\n\n  }, {\n    key: \"attachDragAndDropEvent\",\n    value: function attachDragAndDropEvent() {\n      var _this = this;\n\n      var collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n      var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n      this.documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = _this.context.invoke('codeview.isActivated');\n\n        var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;\n\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          _this.$editor.addClass('dragover');\n\n          _this.$dropzone.width(_this.$editor.width());\n\n          _this.$dropzone.height(_this.$editor.height());\n\n          $dropzoneMessage.text(_this.lang.image.dragImageHere);\n        }\n\n        collection = collection.add(e.target);\n      };\n\n      this.documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target); // If nodeName is BODY, then just make it over (fix for IE)\n\n        if (!collection.length || e.target.nodeName === 'BODY') {\n          collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n          _this.$editor.removeClass('dragover');\n        }\n      };\n\n      this.documentEventHandlers.onDrop = function () {\n        collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n        _this.$editor.removeClass('dragover');\n      }; // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n\n\n      this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter).on('dragleave', this.documentEventHandlers.onDragleave).on('drop', this.documentEventHandlers.onDrop); // change dropzone's message on hover.\n\n      this.$dropzone.on('dragenter', function () {\n        _this.$dropzone.addClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dropImage);\n      }).on('dragleave', function () {\n        _this.$dropzone.removeClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dragImageHere);\n      }); // attach dropImage\n\n      this.$dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer; // stop the browser from opening the dropped content\n\n        event.preventDefault();\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          _this.$editable.focus();\n\n          _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(dataTransfer.types, function (idx, type) {\n            // skip moz-specific types\n            if (type.toLowerCase().indexOf('_moz_') > -1) {\n              return;\n            }\n\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              _this.context.invoke('editor.pasteHTML', content);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(content).each(function (idx, item) {\n                _this.context.invoke('editor.insertNode', item);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _this2 = this;\n\n      Object.keys(this.documentEventHandlers).forEach(function (key) {\n        _this2.$eventListener.off(key.substr(2).toLowerCase(), _this2.documentEventHandlers[key]);\n      });\n      this.documentEventHandlers = {};\n    }\n  }]);\n\n  return Dropzone;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Codeview.js\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Codeview_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Codeview_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Codeview_createClass(Constructor, protoProps, staticProps) { if (protoProps) Codeview_defineProperties(Constructor.prototype, protoProps); if (staticProps) Codeview_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n/**\n * @class Codeview\n */\n\nvar Codeview_CodeView = /*#__PURE__*/function () {\n  function CodeView(context) {\n    Codeview_classCallCheck(this, CodeView);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n    this.CodeMirrorConstructor = window.CodeMirror;\n\n    if (this.options.codemirror.CodeMirrorConstructor) {\n      this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor;\n    }\n  }\n\n  Codeview_createClass(CodeView, [{\n    key: \"sync\",\n    value: function sync(html) {\n      var isCodeview = this.isActivated();\n      var CodeMirror = this.CodeMirrorConstructor;\n\n      if (isCodeview) {\n        if (html) {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').getDoc().setValue(html);\n          } else {\n            this.$codable.val(html);\n          }\n        } else {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').save();\n          }\n        }\n      }\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.$codable.on('keyup', function (event) {\n        if (event.keyCode === core_key.code.ESCAPE) {\n          _this.deactivate();\n        }\n      });\n    }\n    /**\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isActivated\",\n    value: function isActivated() {\n      return this.$editor.hasClass('codeview');\n    }\n    /**\n     * toggle codeview\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n\n      this.context.triggerEvent('codeview.toggled');\n    }\n    /**\n     * purify input value\n     * @param value\n     * @returns {*}\n     */\n\n  }, {\n    key: \"purify\",\n    value: function purify(value) {\n      if (this.options.codeviewFilter) {\n        // filter code view regex\n        value = value.replace(this.options.codeviewFilterRegex, ''); // allow specific iframe tag\n\n        if (this.options.codeviewIframeFilter) {\n          var whitelist = this.options.codeviewIframeWhitelistSrc.concat(this.options.codeviewIframeWhitelistSrcBase);\n          value = value.replace(/(<iframe.*?>.*?(?:<\\/iframe>)?)/gi, function (tag) {\n            // remove if src attribute is duplicated\n            if (/<.+src(?==?('|\"|\\s)?)[\\s\\S]+src(?=('|\"|\\s)?)[^>]*?>/i.test(tag)) {\n              return '';\n            }\n\n            var _iterator = _createForOfIteratorHelper(whitelist),\n                _step;\n\n            try {\n              for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                var src = _step.value;\n\n                // pass if src is trusted\n                if (new RegExp('src=\"(https?:)?\\/\\/' + src.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') + '\\/(.+)\"').test(tag)) {\n                  return tag;\n                }\n              }\n            } catch (err) {\n              _iterator.e(err);\n            } finally {\n              _iterator.f();\n            }\n\n            return '';\n          });\n        }\n      }\n\n      return value;\n    }\n    /**\n     * activate code view\n     */\n\n  }, {\n    key: \"activate\",\n    value: function activate() {\n      var _this2 = this;\n\n      var CodeMirror = this.CodeMirrorConstructor;\n      this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n      this.$codable.height(this.$editable.height());\n      this.context.invoke('toolbar.updateCodeview', true);\n      this.context.invoke('airPopover.updateCodeview', true);\n      this.$editor.addClass('codeview');\n      this.$codable.focus(); // activate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror); // CodeMirror TernServer\n\n        if (this.options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(this.options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        cmEditor.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n        });\n        cmEditor.on('change', function () {\n          _this2.context.triggerEvent('change.codeview', cmEditor.getValue(), cmEditor);\n        }); // CodeMirror hasn't Padding.\n\n        cmEditor.setSize(null, this.$editable.outerHeight());\n        this.$codable.data('cmEditor', cmEditor);\n      } else {\n        this.$codable.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', _this2.$codable.val(), event);\n        });\n        this.$codable.on('input', function () {\n          _this2.context.triggerEvent('change.codeview', _this2.$codable.val(), _this2.$codable);\n        });\n      }\n    }\n    /**\n     * deactivate code view\n     */\n\n  }, {\n    key: \"deactivate\",\n    value: function deactivate() {\n      var CodeMirror = this.CodeMirrorConstructor; // deactivate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = this.$codable.data('cmEditor');\n        this.$codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = this.purify(dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara);\n      var isChange = this.$editable.html() !== value;\n      this.$editable.html(value);\n      this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n      this.$editor.removeClass('codeview');\n\n      if (isChange) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n\n      this.$editable.focus();\n      this.context.invoke('toolbar.updateCodeview', false);\n      this.context.invoke('airPopover.updateCodeview', false);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    }\n  }]);\n\n  return CodeView;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Statusbar.js\nfunction Statusbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Statusbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Statusbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Statusbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Statusbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar EDITABLE_PADDING = 24;\n\nvar Statusbar_Statusbar = /*#__PURE__*/function () {\n  function Statusbar(context) {\n    Statusbar_classCallCheck(this, Statusbar);\n\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  Statusbar_createClass(Statusbar, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      if (this.options.airMode || this.options.disableResizeEditor) {\n        this.destroy();\n        return;\n      }\n\n      this.$statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();\n\n        var onMouseMove = function onMouseMove(event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n          height = _this.options.minheight > 0 ? Math.max(height, _this.options.minheight) : height;\n          height = _this.options.maxHeight > 0 ? Math.min(height, _this.options.maxHeight) : height;\n\n          _this.$editable.height(height);\n        };\n\n        _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {\n          _this.$document.off('mousemove', onMouseMove);\n        });\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$statusbar.off();\n      this.$statusbar.addClass('locked');\n    }\n  }]);\n\n  return Statusbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Fullscreen.js\nfunction Fullscreen_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Fullscreen_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Fullscreen_createClass(Constructor, protoProps, staticProps) { if (protoProps) Fullscreen_defineProperties(Constructor.prototype, protoProps); if (staticProps) Fullscreen_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Fullscreen_Fullscreen = /*#__PURE__*/function () {\n  function Fullscreen(context) {\n    var _this = this;\n\n    Fullscreen_classCallCheck(this, Fullscreen);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$scrollbar = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('html, body');\n\n    this.onResize = function () {\n      _this.resizeTo({\n        h: _this.$window.height() - _this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  Fullscreen_createClass(Fullscreen, [{\n    key: \"resizeTo\",\n    value: function resizeTo(size) {\n      this.$editable.css('height', size.h);\n      this.$codable.css('height', size.h);\n\n      if (this.$codable.data('cmeditor')) {\n        this.$codable.data('cmeditor').setsize(null, size.h);\n      }\n    }\n    /**\n     * toggle fullscreen\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      this.$editor.toggleClass('fullscreen');\n\n      if (this.isFullscreen()) {\n        this.$editable.data('orgHeight', this.$editable.css('height'));\n        this.$editable.data('orgMaxHeight', this.$editable.css('maxHeight'));\n        this.$editable.css('maxHeight', '');\n        this.$window.on('resize', this.onResize).trigger('resize');\n        this.$scrollbar.css('overflow', 'hidden');\n      } else {\n        this.$window.off('resize', this.onResize);\n        this.resizeTo({\n          h: this.$editable.data('orgHeight')\n        });\n        this.$editable.css('maxHeight', this.$editable.css('orgMaxHeight'));\n        this.$scrollbar.css('overflow', 'visible');\n      }\n\n      this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    }\n  }, {\n    key: \"isFullscreen\",\n    value: function isFullscreen() {\n      return this.$editor.hasClass('fullscreen');\n    }\n  }]);\n\n  return Fullscreen;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Handle.js\nfunction Handle_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Handle_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Handle_createClass(Constructor, protoProps, staticProps) { if (protoProps) Handle_defineProperties(Constructor.prototype, protoProps); if (staticProps) Handle_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar Handle_Handle = /*#__PURE__*/function () {\n  function Handle(context) {\n    var _this = this;\n\n    Handle_classCallCheck(this, Handle);\n\n    this.context = context;\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        if (_this.update(e.target, e)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteScrollSummernoteChangeSummernoteDialogShown() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Handle_createClass(Handle, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$handle = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-handle\">', '<div class=\"note-control-selection\">', '<div class=\"note-control-selection-bg\"></div>', '<div class=\"note-control-holder note-control-nw\"></div>', '<div class=\"note-control-holder note-control-ne\"></div>', '<div class=\"note-control-holder note-control-sw\"></div>', '<div class=\"', this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing', ' note-control-se\"></div>', this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>', '</div>', '</div>'].join('')).prependTo(this.$editingArea);\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = _this2.$handle.find('.note-control-selection').data('target');\n\n          var posStart = $target.offset();\n\n          var scrollTop = _this2.$document.scrollTop();\n\n          var onMouseMove = function onMouseMove(event) {\n            _this2.context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            _this2.update($target[0], event);\n          };\n\n          _this2.$document.on('mousemove', onMouseMove).one('mouseup', function (e) {\n            e.preventDefault();\n\n            _this2.$document.off('mousemove', onMouseMove);\n\n            _this2.context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) {\n            // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      }); // Listen for scrolling on the handle overlay.\n\n      this.$handle.on('wheel', function (e) {\n        e.preventDefault();\n\n        _this2.update();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$handle.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n      this.context.invoke('imagePopover.update', target, event);\n\n      if (isImage) {\n        var $image = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target);\n        var position = $image.position();\n        var pos = {\n          left: position.left + parseInt($image.css('marginLeft'), 10),\n          top: position.top + parseInt($image.css('marginTop'), 10)\n        }; // exclude margin\n\n        var imageSize = {\n          w: $image.outerWidth(false),\n          h: $image.outerHeight(false)\n        };\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var origImageObj = new Image();\n        origImageObj.src = $image.attr('src');\n        var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n        $selection.find('.note-control-selection-info').text(sizingText);\n        this.context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    }\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    }\n  }]);\n\n  return Handle;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoLink.js\nfunction AutoLink_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoLink_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoLink_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoLink_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoLink_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar defaultScheme = 'http://';\nvar linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nvar AutoLink_AutoLink = /*#__PURE__*/function () {\n  function AutoLink(context) {\n    var _this = this;\n\n    AutoLink_classCallCheck(this, AutoLink);\n\n    this.context = context;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoLink_createClass(AutoLink, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var urlText = this.options.showDomainOnlyForAutolink ? keyword.replace(/^(?:https?:\\/\\/)?(?:tel?:?)?(?:mailto?:?)?(?:www\\.)?/i, '').split('/')[0] : keyword;\n        var node = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<a />').html(urlText).attr('href', link)[0];\n\n        if (this.context.options.linkTargetBlank) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).attr('target', '_blank');\n        }\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoLink;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoSync.js\nfunction AutoSync_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoSync_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoSync_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoSync_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoSync_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * textarea auto sync.\n */\n\nvar AutoSync_AutoSync = /*#__PURE__*/function () {\n  function AutoSync(context) {\n    var _this = this;\n\n    AutoSync_classCallCheck(this, AutoSync);\n\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': function summernoteChange() {\n        _this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  AutoSync_createClass(AutoSync, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return dom.isTextarea(this.$note[0]);\n    }\n  }]);\n\n  return AutoSync;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoReplace.js\nfunction AutoReplace_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoReplace_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoReplace_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoReplace_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoReplace_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar AutoReplace_AutoReplace = /*#__PURE__*/function () {\n  function AutoReplace(context) {\n    var _this = this;\n\n    AutoReplace_classCallCheck(this, AutoReplace);\n\n    this.context = context;\n    this.options = context.options.replace || {};\n    this.keys = [core_key.code.ENTER, core_key.code.SPACE, core_key.code.PERIOD, core_key.code.COMMA, core_key.code.SEMICOLON, core_key.code.SLASH];\n    this.previousKeydownCode = null;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoReplace_createClass(AutoReplace, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.match;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWord) {\n        return;\n      }\n\n      var self = this;\n      var keyword = this.lastWord.toString();\n      this.options.match(keyword, function (match) {\n        if (match) {\n          var node = '';\n\n          if (typeof match === 'string') {\n            node = dom.createText(match);\n          } else if (match instanceof jQuery) {\n            node = match[0];\n          } else if (match instanceof Node) {\n            node = match;\n          }\n\n          if (!node) return;\n          self.lastWord.insertNode(node);\n          self.lastWord = null;\n          self.context.invoke('editor.focus');\n        }\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      // this forces it to remember the last whole word, even if multiple termination keys are pressed\n      // before the previous key is let go.\n      if (this.previousKeydownCode && lists.contains(this.keys, this.previousKeydownCode)) {\n        this.previousKeydownCode = e.keyCode;\n        return;\n      }\n\n      if (lists.contains(this.keys, e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWord = wordRange;\n      }\n\n      this.previousKeydownCode = e.keyCode;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains(this.keys, e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoReplace;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Placeholder.js\nfunction Placeholder_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Placeholder_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Placeholder_createClass(Constructor, protoProps, staticProps) { if (protoProps) Placeholder_defineProperties(Constructor.prototype, protoProps); if (staticProps) Placeholder_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Placeholder_Placeholder = /*#__PURE__*/function () {\n  function Placeholder(context) {\n    var _this = this;\n\n    Placeholder_classCallCheck(this, Placeholder);\n\n    this.context = context;\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n\n    if (this.options.inheritPlaceholder === true) {\n      // get placeholder value from the original element\n      this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder;\n    }\n\n    this.events = {\n      'summernote.init summernote.change': function summernoteInitSummernoteChange() {\n        _this.update();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Placeholder_createClass(Placeholder, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.placeholder;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        _this2.context.invoke('focus');\n      }).html(this.options.placeholder).prependTo(this.$editingArea);\n      this.update();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$placeholder.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    }\n  }]);\n\n  return Placeholder;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Buttons.js\nfunction Buttons_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Buttons_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Buttons_createClass(Constructor, protoProps, staticProps) { if (protoProps) Buttons_defineProperties(Constructor.prototype, protoProps); if (staticProps) Buttons_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Buttons_Buttons = /*#__PURE__*/function () {\n  function Buttons(context) {\n    Buttons_classCallCheck(this, Buttons);\n\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);\n  }\n\n  Buttons_createClass(Buttons, [{\n    key: \"representShortcut\",\n    value: function representShortcut(editorMethod) {\n      var shortcut = this.invertedKeyMap[editorMethod];\n\n      if (!this.options.shortcuts || !shortcut) {\n        return '';\n      }\n\n      if (env.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\').replace('SLASH', '/').replace('LEFTBRACKET', '[').replace('RIGHTBRACKET', ']');\n      return ' (' + shortcut + ')';\n    }\n  }, {\n    key: \"button\",\n    value: function button(o) {\n      if (!this.options.tooltip && o.tooltip) {\n        delete o.tooltip;\n      }\n\n      o.container = this.options.container;\n      return this.ui.button(o);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.addTablePopoverButtons();\n      this.fontInstalledMap = {};\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      delete this.fontInstalledMap;\n    }\n  }, {\n    key: \"isFontInstalled\",\n    value: function isFontInstalled(name) {\n      if (!Object.prototype.hasOwnProperty.call(this.fontInstalledMap, name)) {\n        this.fontInstalledMap[name] = env.isFontInstalled(name) || lists.contains(this.options.fontNamesIgnoreCheck, name);\n      }\n\n      return this.fontInstalledMap[name];\n    }\n  }, {\n    key: \"isFontDeservedToAdd\",\n    value: function isFontDeservedToAdd(name) {\n      name = name.toLowerCase();\n      return name !== '' && this.isFontInstalled(name) && env.genericFontFamilies.indexOf(name) === -1;\n    }\n  }, {\n    key: \"colorPalette\",\n    value: function colorPalette(className, tooltip, backColor, foreColor) {\n      var _this = this;\n\n      return this.ui.buttonGroup({\n        className: 'note-color ' + className,\n        children: [this.button({\n          className: 'note-current-color-button',\n          contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n          tooltip: tooltip,\n          click: function click(e) {\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget);\n\n            if (backColor && foreColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            } else if (backColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor')\n              });\n            } else if (foreColor) {\n              _this.context.invoke('editor.color', {\n                foreColor: $button.attr('data-foreColor')\n              });\n            }\n          },\n          callback: function callback($button) {\n            var $recentColor = $button.find('.note-recent-color');\n\n            if (backColor) {\n              $recentColor.css('background-color', _this.options.colorButton.backColor);\n              $button.attr('data-backColor', _this.options.colorButton.backColor);\n            }\n\n            if (foreColor) {\n              $recentColor.css('color', _this.options.colorButton.foreColor);\n              $button.attr('data-foreColor', _this.options.colorButton.foreColor);\n            } else {\n              $recentColor.css('color', 'transparent');\n            }\n          }\n        }), this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('', this.options),\n          tooltip: this.lang.color.more,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), this.ui.dropdown({\n          items: (backColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.background + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"backColor\" data-value=\"transparent\">', this.lang.color.transparent, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"backColor\"><!-- back colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"backColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"backColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.backColor + '\" data-event=\"backColorPalette\">', '</div>', '<div class=\"note-holder-custom\" id=\"backColorPalette\" data-event=\"backColor\"></div>', '</div>'].join('') : '') + (foreColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">', this.lang.color.resetToDefault, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"foreColor\"><!-- fore colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"foreColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"foreColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.foreColor + '\" data-event=\"foreColorPalette\">', '</div>', // Fix missing Div, Commented to find easily if it's wrong\n          '<div class=\"note-holder-custom\" id=\"foreColorPalette\" data-event=\"foreColor\"></div>', '</div>'].join('') : ''),\n          callback: function callback($dropdown) {\n            $dropdown.find('.note-holder').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: _this.options.colors,\n                colorsName: _this.options.colorsName,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            /* TODO: do we have to record recent custom colors within cookies? */\n\n            var customColors = [['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF']];\n            $dropdown.find('.note-holder-custom').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: customColors,\n                colorsName: customColors,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            $dropdown.find('input[type=color]').each(function (idx, item) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).change(function () {\n                var $chip = $dropdown.find('#' + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this).data('event')).find('.note-color-btn').first();\n                var color = this.value.toUpperCase();\n                $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n                $chip.click();\n              });\n            });\n          },\n          click: function click(event) {\n            event.stopPropagation();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.' + className).find('.note-dropdown-menu');\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n            var eventName = $button.data('event');\n            var value = $button.attr('data-value');\n\n            if (eventName === 'openPalette') {\n              var $picker = $parent.find('#' + value);\n              var $palette = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()($parent.find('#' + $picker.data('event')).find('.note-color-row')[0]); // Shift palette chips\n\n              var $chip = $palette.find('.note-color-btn').last().detach(); // Set chip attributes\n\n              var color = $picker.val();\n              $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n              $palette.prepend($chip);\n              $picker.click();\n            } else {\n              if (lists.contains(['backColor', 'foreColor'], eventName)) {\n                var key = eventName === 'backColor' ? 'background-color' : 'color';\n                var $color = $button.closest('.note-color').find('.note-recent-color');\n                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n              }\n\n              _this.context.invoke('editor.' + eventName, value);\n            }\n          }\n        })]\n      }).render();\n    }\n  }, {\n    key: \"addToolbarButtons\",\n    value: function addToolbarButtons() {\n      var _this2 = this;\n\n      this.context.memo('button.style', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.magic), _this2.options),\n          tooltip: _this2.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          className: 'dropdown-style',\n          items: _this2.options.styleTags,\n          title: _this2.lang.style.style,\n          template: function template(item) {\n            // TBD: need to be simplified\n            if (typeof item === 'string') {\n              item = {\n                tag: item,\n                title: Object.prototype.hasOwnProperty.call(_this2.lang.style, item) ? _this2.lang.style[item] : item\n              };\n            }\n\n            var tag = item.tag;\n            var title = item.title;\n            var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            var className = item.className ? ' class=\"' + item.className + '\"' : '';\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: _this2.context.createInvokeHandler('editor.formatBlock')\n        })]).render();\n      });\n\n      var _loop = function _loop(styleIdx, styleLen) {\n        var item = _this2.options.styleTags[styleIdx];\n\n        _this2.context.memo('button.style.' + item, function () {\n          return _this2.button({\n            className: 'note-btn-style-' + item,\n            contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n            tooltip: _this2.lang.style[item],\n            click: _this2.context.createInvokeHandler('editor.formatBlock')\n          }).render();\n        });\n      };\n\n      for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n        _loop(styleIdx, styleLen);\n      }\n\n      this.context.memo('button.bold', function () {\n        return _this2.button({\n          className: 'note-btn-bold',\n          contents: _this2.ui.icon(_this2.options.icons.bold),\n          tooltip: _this2.lang.font.bold + _this2.representShortcut('bold'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.bold')\n        }).render();\n      });\n      this.context.memo('button.italic', function () {\n        return _this2.button({\n          className: 'note-btn-italic',\n          contents: _this2.ui.icon(_this2.options.icons.italic),\n          tooltip: _this2.lang.font.italic + _this2.representShortcut('italic'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.italic')\n        }).render();\n      });\n      this.context.memo('button.underline', function () {\n        return _this2.button({\n          className: 'note-btn-underline',\n          contents: _this2.ui.icon(_this2.options.icons.underline),\n          tooltip: _this2.lang.font.underline + _this2.representShortcut('underline'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.underline')\n        }).render();\n      });\n      this.context.memo('button.clear', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.eraser),\n          tooltip: _this2.lang.font.clear + _this2.representShortcut('removeFormat'),\n          click: _this2.context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n      this.context.memo('button.strikethrough', function () {\n        return _this2.button({\n          className: 'note-btn-strikethrough',\n          contents: _this2.ui.icon(_this2.options.icons.strikethrough),\n          tooltip: _this2.lang.font.strikethrough + _this2.representShortcut('strikethrough'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n        }).render();\n      });\n      this.context.memo('button.superscript', function () {\n        return _this2.button({\n          className: 'note-btn-superscript',\n          contents: _this2.ui.icon(_this2.options.icons.superscript),\n          tooltip: _this2.lang.font.superscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.superscript')\n        }).render();\n      });\n      this.context.memo('button.subscript', function () {\n        return _this2.button({\n          className: 'note-btn-subscript',\n          contents: _this2.ui.icon(_this2.options.icons.subscript),\n          tooltip: _this2.lang.font.subscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.subscript')\n        }).render();\n      });\n      this.context.memo('button.fontname', function () {\n        var styleInfo = _this2.context.invoke('editor.currentStyle');\n\n        if (_this2.options.addDefaultFonts) {\n          // Add 'default' fonts into the fontnames array if not exist\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(styleInfo['font-family'].split(','), function (idx, fontname) {\n            fontname = fontname.trim().replace(/['\"]+/g, '');\n\n            if (_this2.isFontDeservedToAdd(fontname)) {\n              if (_this2.options.fontNames.indexOf(fontname) === -1) {\n                _this2.options.fontNames.push(fontname);\n              }\n            }\n          });\n        }\n\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontname\"></span>', _this2.options),\n          tooltip: _this2.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontNames.filter(_this2.isFontInstalled.bind(_this2)),\n          title: _this2.lang.font.name,\n          template: function template(item) {\n            return '<span style=\"font-family: ' + env.validFontName(item) + '\">' + item + '</span>';\n          },\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })]).render();\n      });\n      this.context.memo('button.fontsize', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"></span>', _this2.options),\n          tooltip: _this2.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizes,\n          title: _this2.lang.font.size,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })]).render();\n      });\n      this.context.memo('button.fontsizeunit', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsizeunit\"></span>', _this2.options),\n          tooltip: _this2.lang.font.sizeunit,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsizeunit',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizeUnits,\n          title: _this2.lang.font.sizeunit,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSizeUnit')\n        })]).render();\n      });\n      this.context.memo('button.color', function () {\n        return _this2.colorPalette('note-color-all', _this2.lang.color.recent, true, true);\n      });\n      this.context.memo('button.forecolor', function () {\n        return _this2.colorPalette('note-color-fore', _this2.lang.color.foreground, false, true);\n      });\n      this.context.memo('button.backcolor', function () {\n        return _this2.colorPalette('note-color-back', _this2.lang.color.background, true, false);\n      });\n      this.context.memo('button.ul', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.unorderedlist),\n          tooltip: _this2.lang.lists.unordered + _this2.representShortcut('insertUnorderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n      this.context.memo('button.ol', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.orderedlist),\n          tooltip: _this2.lang.lists.ordered + _this2.representShortcut('insertOrderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n      var justifyLeft = this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n        click: this.context.createInvokeHandler('editor.justifyLeft')\n      });\n      var justifyCenter = this.button({\n        contents: this.ui.icon(this.options.icons.alignCenter),\n        tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n        click: this.context.createInvokeHandler('editor.justifyCenter')\n      });\n      var justifyRight = this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n        click: this.context.createInvokeHandler('editor.justifyRight')\n      });\n      var justifyFull = this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n        click: this.context.createInvokeHandler('editor.justifyFull')\n      });\n      var outdent = this.button({\n        contents: this.ui.icon(this.options.icons.outdent),\n        tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n        click: this.context.createInvokeHandler('editor.outdent')\n      });\n      var indent = this.button({\n        contents: this.ui.icon(this.options.icons.indent),\n        tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n        click: this.context.createInvokeHandler('editor.indent')\n      });\n      this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n      this.context.memo('button.indent', func.invoke(indent, 'render'));\n      this.context.memo('button.paragraph', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.alignLeft), _this2.options),\n          tooltip: _this2.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown([_this2.ui.buttonGroup({\n          className: 'note-align',\n          children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n        }), _this2.ui.buttonGroup({\n          className: 'note-list',\n          children: [outdent, indent]\n        })])]).render();\n      });\n      this.context.memo('button.height', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.textHeight), _this2.options),\n          tooltip: _this2.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          items: _this2.options.lineHeights,\n          checkClassName: _this2.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: _this2.lang.font.height,\n          click: _this2.context.createInvokeHandler('editor.lineHeight')\n        })]).render();\n      });\n      this.context.memo('button.table', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.table), _this2.options),\n          tooltip: _this2.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          title: _this2.lang.table.table,\n          className: 'note-table',\n          items: ['<div class=\"note-dimension-picker\">', '<div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"></div>', '<div class=\"note-dimension-picker-highlighted\"></div>', '<div class=\"note-dimension-picker-unhighlighted\"></div>', '</div>', '<div class=\"note-dimension-display\">1 x 1</div>'].join('')\n        })], {\n          callback: function callback($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: _this2.options.insertTableMaxSize.col + 'em',\n              height: _this2.options.insertTableMaxSize.row + 'em'\n            }).mousedown(_this2.context.createInvokeHandler('editor.insertTable')).on('mousemove', _this2.tableMoveHandler.bind(_this2));\n          }\n        }).render();\n      });\n      this.context.memo('button.link', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.link),\n          tooltip: _this2.lang.link.link + _this2.representShortcut('linkDialog.show'),\n          click: _this2.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.picture', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.picture),\n          tooltip: _this2.lang.image.image,\n          click: _this2.context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n      this.context.memo('button.video', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.video),\n          tooltip: _this2.lang.video.video,\n          click: _this2.context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n      this.context.memo('button.hr', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.minus),\n          tooltip: _this2.lang.hr.insert + _this2.representShortcut('insertHorizontalRule'),\n          click: _this2.context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n      this.context.memo('button.fullscreen', function () {\n        return _this2.button({\n          className: 'btn-fullscreen note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.arrowsAlt),\n          tooltip: _this2.lang.options.fullscreen,\n          click: _this2.context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n      this.context.memo('button.codeview', function () {\n        return _this2.button({\n          className: 'btn-codeview note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.code),\n          tooltip: _this2.lang.options.codeview,\n          click: _this2.context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n      this.context.memo('button.redo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.redo),\n          tooltip: _this2.lang.history.redo + _this2.representShortcut('redo'),\n          click: _this2.context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n      this.context.memo('button.undo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.undo),\n          tooltip: _this2.lang.history.undo + _this2.representShortcut('undo'),\n          click: _this2.context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n      this.context.memo('button.help', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.question),\n          tooltip: _this2.lang.options.help,\n          click: _this2.context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    }\n    /**\n     * image: [\n     *   ['imageResize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone']],\n     *   ['remove', ['removeMedia']],\n     * ],\n     */\n\n  }, {\n    key: \"addImagePopoverButtons\",\n    value: function addImagePopoverButtons() {\n      var _this3 = this;\n\n      // Image Size Buttons\n      this.context.memo('button.resizeFull', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: _this3.lang.image.resizeFull,\n          click: _this3.context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      this.context.memo('button.resizeHalf', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: _this3.lang.image.resizeHalf,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      this.context.memo('button.resizeQuarter', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: _this3.lang.image.resizeQuarter,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n      this.context.memo('button.resizeNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.resizeNone,\n          click: _this3.context.createInvokeHandler('editor.resize', '0')\n        }).render();\n      }); // Float Buttons\n\n      this.context.memo('button.floatLeft', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatLeft),\n          tooltip: _this3.lang.image.floatLeft,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n      this.context.memo('button.floatRight', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatRight),\n          tooltip: _this3.lang.image.floatRight,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n      this.context.memo('button.floatNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.floatNone,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      }); // Remove Buttons\n\n      this.context.memo('button.removeMedia', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.trash),\n          tooltip: _this3.lang.image.remove,\n          click: _this3.context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    }\n  }, {\n    key: \"addLinkPopoverButtons\",\n    value: function addLinkPopoverButtons() {\n      var _this4 = this;\n\n      this.context.memo('button.linkDialogShow', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.link),\n          tooltip: _this4.lang.link.edit,\n          click: _this4.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.unlink', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.unlink),\n          tooltip: _this4.lang.link.unlink,\n          click: _this4.context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    }\n    /**\n     * table : [\n     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n     * ],\n     */\n\n  }, {\n    key: \"addTablePopoverButtons\",\n    value: function addTablePopoverButtons() {\n      var _this5 = this;\n\n      this.context.memo('button.addRowUp', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowAbove),\n          tooltip: _this5.lang.table.addRowAbove,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'top')\n        }).render();\n      });\n      this.context.memo('button.addRowDown', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowBelow),\n          tooltip: _this5.lang.table.addRowBelow,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'bottom')\n        }).render();\n      });\n      this.context.memo('button.addColLeft', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colBefore),\n          tooltip: _this5.lang.table.addColLeft,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'left')\n        }).render();\n      });\n      this.context.memo('button.addColRight', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colAfter),\n          tooltip: _this5.lang.table.addColRight,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'right')\n        }).render();\n      });\n      this.context.memo('button.deleteRow', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowRemove),\n          tooltip: _this5.lang.table.delRow,\n          click: _this5.context.createInvokeHandler('editor.deleteRow')\n        }).render();\n      });\n      this.context.memo('button.deleteCol', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colRemove),\n          tooltip: _this5.lang.table.delCol,\n          click: _this5.context.createInvokeHandler('editor.deleteCol')\n        }).render();\n      });\n      this.context.memo('button.deleteTable', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.trash),\n          tooltip: _this5.lang.table.delTable,\n          click: _this5.context.createInvokeHandler('editor.deleteTable')\n        }).render();\n      });\n    }\n  }, {\n    key: \"build\",\n    value: function build($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = Array.isArray(group) ? group[0] : group;\n        var buttons = Array.isArray(group) ? group.length === 1 ? [group[0]] : group[1] : [group];\n        var $group = this.ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var btn = this.context.memo('button.' + buttons[idx]);\n\n          if (btn) {\n            $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n          }\n        }\n\n        $group.appendTo($container);\n      }\n    }\n    /**\n     * @param {jQuery} [$container]\n     */\n\n  }, {\n    key: \"updateCurrentStyle\",\n    value: function updateCurrentStyle($container) {\n      var _this6 = this;\n\n      var $cont = $container || this.$toolbar;\n      var styleInfo = this.context.invoke('editor.currentStyle');\n      this.updateBtnStates($cont, {\n        '.note-btn-bold': function noteBtnBold() {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function noteBtnItalic() {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function noteBtnUnderline() {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function noteBtnSubscript() {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function noteBtnSuperscript() {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function noteBtnStrikethrough() {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '').replace(/\\s+$/, '').replace(/^\\s+/, '');\n        });\n        var fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n        $cont.find('.dropdown-fontname a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontName + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $cont.find('.dropdown-fontsize a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare with string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontSize + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsize').text(fontSize);\n        var fontSizeUnit = styleInfo['font-size-unit'];\n        $cont.find('.dropdown-fontsizeunit a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n          var isChecked = $item.data('value') + '' === fontSizeUnit + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsizeunit').text(fontSizeUnit);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $cont.find('.dropdown-line-height li a').each(function (idx, item) {\n          // always compare with string to avoid creating another func.\n          var isChecked = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).data('value') + '' === lineHeight + '';\n          _this6.className = isChecked ? 'checked' : '';\n        });\n      }\n    }\n  }, {\n    key: \"updateBtnStates\",\n    value: function updateBtnStates($container, infos) {\n      var _this7 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(infos, function (selector, pred) {\n        _this7.ui.toggleBtnActive($container.find(selector), pred());\n      });\n    }\n  }, {\n    key: \"tableMoveHandler\",\n    value: function tableMoveHandler(event) {\n      var PX_PER_EM = 18;\n      var $picker = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target.parentNode); // target is mousecatcher\n\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n      var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox\n\n      if (event.offsetX === undefined) {\n        var posCatcher = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n      $highlighted.css({\n        width: dim.c + 'em',\n        height: dim.r + 'em'\n      });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n        $unhighlighted.css({\n          width: dim.c + 1 + 'em'\n        });\n      }\n\n      if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n        $unhighlighted.css({\n          height: dim.r + 1 + 'em'\n        });\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    }\n  }]);\n\n  return Buttons;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Toolbar.js\nfunction Toolbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Toolbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Toolbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Toolbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Toolbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Toolbar_Toolbar = /*#__PURE__*/function () {\n  function Toolbar(context) {\n    Toolbar_classCallCheck(this, Toolbar);\n\n    this.context = context;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.options = context.options;\n    this.isFollowing = false;\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  Toolbar_createClass(Toolbar, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !this.options.airMode;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.options.toolbar = this.options.toolbar || [];\n\n      if (!this.options.toolbar.length) {\n        this.$toolbar.hide();\n      } else {\n        this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n      }\n\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n\n      this.changeContainer(false);\n      this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        _this.context.invoke('buttons.updateCurrentStyle');\n      });\n      this.context.invoke('buttons.updateCurrentStyle');\n\n      if (this.options.followingToolbar) {\n        this.$window.on('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$toolbar.children().remove();\n\n      if (this.options.followingToolbar) {\n        this.$window.off('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"followScroll\",\n    value: function followScroll() {\n      if (this.$editor.hasClass('fullscreen')) {\n        return false;\n      }\n\n      var editorHeight = this.$editor.outerHeight();\n      var editorWidth = this.$editor.width();\n      var toolbarHeight = this.$toolbar.height();\n      var statusbarHeight = this.$statusbar.height(); // check if the web app is currently using another static bar\n\n      var otherBarHeight = 0;\n\n      if (this.options.otherStaticBar) {\n        otherBarHeight = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.otherStaticBar).outerHeight();\n      }\n\n      var currentOffset = this.$document.scrollTop();\n      var editorOffsetTop = this.$editor.offset().top;\n      var editorOffsetBottom = editorOffsetTop + editorHeight;\n      var activateOffset = editorOffsetTop - otherBarHeight;\n      var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight - statusbarHeight;\n\n      if (!this.isFollowing && currentOffset > activateOffset && currentOffset < deactivateOffsetBottom - toolbarHeight) {\n        this.isFollowing = true;\n        this.$editable.css({\n          marginTop: this.$toolbar.outerHeight()\n        });\n        this.$toolbar.css({\n          position: 'fixed',\n          top: otherBarHeight,\n          width: editorWidth,\n          zIndex: 1000\n        });\n      } else if (this.isFollowing && (currentOffset < activateOffset || currentOffset > deactivateOffsetBottom)) {\n        this.isFollowing = false;\n        this.$toolbar.css({\n          position: 'relative',\n          top: 0,\n          width: '100%',\n          zIndex: 'auto'\n        });\n        this.$editable.css({\n          marginTop: ''\n        });\n      }\n    }\n  }, {\n    key: \"changeContainer\",\n    value: function changeContainer(isFullscreen) {\n      if (isFullscreen) {\n        this.$toolbar.prependTo(this.$editor);\n      } else {\n        if (this.options.toolbarContainer) {\n          this.$toolbar.appendTo(this.options.toolbarContainer);\n        }\n      }\n\n      if (this.options.followingToolbar) {\n        this.followScroll();\n      }\n    }\n  }, {\n    key: \"updateFullscreen\",\n    value: function updateFullscreen(isFullscreen) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n      this.changeContainer(isFullscreen);\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    }\n  }, {\n    key: \"activate\",\n    value: function activate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, true);\n    }\n  }, {\n    key: \"deactivate\",\n    value: function deactivate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, false);\n    }\n  }]);\n\n  return Toolbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkDialog.js\nfunction LinkDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar LinkDialog_LinkDialog = /*#__PURE__*/function () {\n  function LinkDialog(context) {\n    LinkDialog_classCallCheck(this, LinkDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  LinkDialog_createClass(LinkDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.textToDisplay, \"</label>\"), \"<input id=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-link-text form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>', '<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.url, \"</label>\"), \"<input id=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-link-url form-control note-form-control note-input\\\" type=\\\"text\\\" value=\\\"http://\\\"/>\"), '</div>', !this.options.disableLinkTarget ? external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-open-in-new-window',\n        text: this.lang.link.openInNewWindow,\n        checked: true\n      }).render()).html() : '', external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-use-protocol',\n        text: this.lang.link.useProtocol,\n        checked: true\n      }).render()).html()].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.link.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        className: 'link-dialog',\n        title: this.lang.link.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n    /**\n     * toggle update button\n     */\n\n  }, {\n    key: \"toggleLinkBtn\",\n    value: function toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n      this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    }\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showLinkDialog\",\n    value: function showLinkDialog(linkInfo) {\n      var _this = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $linkText = _this.$dialog.find('.note-link-text');\n\n        var $linkUrl = _this.$dialog.find('.note-link-url');\n\n        var $linkBtn = _this.$dialog.find('.note-link-btn');\n\n        var $openInNewWindow = _this.$dialog.find('.sn-checkbox-open-in-new-window input[type=checkbox]');\n\n        var $useProtocol = _this.$dialog.find('.sn-checkbox-use-protocol input[type=checkbox]');\n\n        _this.ui.onDialogShown(_this.$dialog, function () {\n          _this.context.triggerEvent('dialog.shown'); // If no url was given and given text is valid URL then copy that into URL Field\n\n\n          if (!linkInfo.url && func.isValidUrl(linkInfo.text)) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.on('input paste propertychange', function () {\n            // If linktext was modified by input events,\n            // cloning text from linkUrl will be stopped.\n            linkInfo.text = $linkText.val();\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.text);\n          $linkUrl.on('input paste propertychange', function () {\n            // Display same text on `Text to display` as default\n            // when linktext has no text\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.url);\n\n          if (!env.isSupportTouch) {\n            $linkUrl.trigger('focus');\n          }\n\n          _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n\n          _this.bindEnterKey($linkUrl, $linkBtn);\n\n          _this.bindEnterKey($linkText, $linkBtn);\n\n          var isNewWindowChecked = linkInfo.isNewWindow !== undefined ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;\n          $openInNewWindow.prop('checked', isNewWindowChecked);\n          var useProtocolChecked = linkInfo.url ? false : _this.context.options.useProtocol;\n          $useProtocol.prop('checked', useProtocolChecked);\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked'),\n              checkProtocol: $useProtocol.is(':checked')\n            });\n\n            _this.ui.hideDialog(_this.$dialog);\n          });\n        });\n\n        _this.ui.onDialogHidden(_this.$dialog, function () {\n          // detach events\n          $linkText.off();\n          $linkUrl.off();\n          $linkBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this.ui.showDialog(_this.$dialog);\n      }).promise();\n    }\n    /**\n     * @param {Object} layoutInfo\n     */\n\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this2 = this;\n\n      var linkInfo = this.context.invoke('editor.getLinkInfo');\n      this.context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        _this2.context.invoke('editor.restoreRange');\n\n        _this2.context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        _this2.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return LinkDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkPopover.js\nfunction LinkPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar LinkPopover_LinkPopover = /*#__PURE__*/function () {\n  function LinkPopover(context) {\n    var _this = this;\n\n    LinkPopover_classCallCheck(this, LinkPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteChangeSummernoteScroll() {\n        _this.update();\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  LinkPopover_createClass(LinkPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.link);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-link-popover',\n        callback: function callback($node) {\n          var $content = $node.find('.popover-content,.note-popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.link);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!this.context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = this.context.invoke('editor.getLastRange');\n\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).text(href);\n        var pos = dom.posFromPlaceholder(anchor);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return LinkPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImageDialog.js\nfunction ImageDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImageDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImageDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar ImageDialog_ImageDialog = /*#__PURE__*/function () {\n  function ImageDialog(context) {\n    ImageDialog_classCallCheck(this, ImageDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  ImageDialog_createClass(ImageDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var imageLimitation = '';\n\n      if (this.options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = \"<small>\".concat(this.lang.image.maximumFileSize + ' : ' + readableSize, \"</small>\");\n      }\n\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group note-group-select-from-files\">', '<label for=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>', '<input id=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-image-input form-control-file note-form-control note-input\" ', ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\"/>', imageLimitation, '</div>', '<div class=\"form-group note-group-image-url\">', '<label for=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.url + '</label>', '<input id=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-image-url form-control note-form-control note-input\" type=\"text\"/>', '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.image.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.image.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') {\n          // image url\n          // If onImageLinkInsert set,\n          if (_this.options.callbacks.onImageLinkInsert) {\n            _this.context.triggerEvent('image.link.insert', data);\n          } else {\n            _this.context.invoke('editor.insertImage', data);\n          }\n        } else {\n          // array of files\n          _this.context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showImageDialog\",\n    value: function showImageDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $imageInput = _this2.$dialog.find('.note-image-input');\n\n        var $imageUrl = _this2.$dialog.find('.note-image-url');\n\n        var $imageBtn = _this2.$dialog.find('.note-image-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown'); // Cloning imageInput to clear element.\n\n\n          $imageInput.replaceWith($imageInput.clone().on('change', function (event) {\n            deferred.resolve(event.target.files || event.target.value);\n          }).val(''));\n          $imageUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($imageBtn, $imageUrl.val());\n          }).val('');\n\n          if (!env.isSupportTouch) {\n            $imageUrl.trigger('focus');\n          }\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($imageUrl.val());\n          });\n\n          _this2.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $imageInput.off();\n          $imageUrl.off();\n          $imageBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return ImageDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImagePopover.js\nfunction ImagePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImagePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImagePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImagePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImagePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\n\nvar ImagePopover_ImagePopover = /*#__PURE__*/function () {\n  function ImagePopover(context) {\n    var _this = this;\n\n    ImagePopover_classCallCheck(this, ImagePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n    this.events = {\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  ImagePopover_createClass(ImagePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.image);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.image);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (dom.isImg(target)) {\n        var position = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target).offset();\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        var pos = {};\n\n        if (this.options.popatmouse) {\n          pos.left = event.pageX - 20;\n          pos.top = event.pageY;\n        } else {\n          pos = position;\n        }\n\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return ImagePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/TablePopover.js\nfunction TablePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction TablePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction TablePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) TablePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) TablePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar TablePopover_TablePopover = /*#__PURE__*/function () {\n  function TablePopover(context) {\n    var _this = this;\n\n    TablePopover_classCallCheck(this, TablePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  TablePopover_createClass(TablePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.table);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-table-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.table); // [workaround] Disable Firefox's default table editor\n\n      if (env.isFF) {\n        document.execCommand('enableInlineTableEditing', false, false);\n      }\n\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isCell = dom.isCell(target);\n\n      if (isCell) {\n        var pos = dom.posFromPlaceholder(target);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n\n      return isCell;\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return TablePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/VideoDialog.js\nfunction VideoDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction VideoDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction VideoDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) VideoDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) VideoDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar VideoDialog_VideoDialog = /*#__PURE__*/function () {\n  function VideoDialog(context) {\n    VideoDialog_classCallCheck(this, VideoDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  VideoDialog_createClass(VideoDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group row-fluid\">', \"<label for=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.video.url, \" <small class=\\\"text-muted\\\">\").concat(this.lang.video.providers, \"</small></label>\"), \"<input id=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-video-url form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.video.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.video.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"createVideoNode\",\n    value: function createVideoNode(url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /\\/\\/(?:(?:www|m)\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))([\\w|-]{11})(?:(?:[\\?&]t=)(\\S+))?$/;\n      var ytRegExpForStart = /^(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?$/;\n      var ytMatch = url.match(ytRegExp);\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n      var qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n      var qqMatch = url.match(qqRegExp);\n      var qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n      var qqMatch2 = url.match(qqRegExp2);\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n      var fbRegExp = /(?:www\\.|\\/\\/)facebook\\.com\\/([^\\/]+)\\/videos\\/([0-9]+)/;\n      var fbMatch = url.match(fbRegExp);\n      var $video;\n\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        var start = 0;\n\n        if (typeof ytMatch[2] !== 'undefined') {\n          var ytMatchForStart = ytMatch[2].match(ytRegExpForStart);\n\n          if (ytMatchForStart) {\n            for (var n = [3600, 60, 1], i = 0, r = n.length; i < r; i++) {\n              start += typeof ytMatchForStart[i + 1] !== 'undefined' ? n[i] * parseInt(ytMatchForStart[i + 1], 10) : 0;\n            }\n          }\n        }\n\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.youtube.com/embed/' + youtubeId + (start > 0 ? '?start=' + start : '')).attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/').attr('width', '612').attr('height', '710').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', vMatch[0] + '/embed/simple').attr('width', '600').attr('height', '600').attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('src', '//player.vimeo.com/video/' + vimMatch[3]).attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2]).attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '498').attr('width', '510').attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (qqMatch && qqMatch[1].length || qqMatch2 && qqMatch2[2].length) {\n        var vid = qqMatch && qqMatch[1].length ? qqMatch[1] : qqMatch2[2];\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '310').attr('width', '500').attr('src', 'https://v.qq.com/txp/iframe/player.html?vid=' + vid + '&amp;auto=0');\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<video controls>').attr('src', url).attr('width', '640').attr('height', '360');\n      } else if (fbMatch && fbMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://www.facebook.com/plugins/video.php?href=' + encodeURIComponent(fbMatch[0]) + '&show_text=0&width=560').attr('width', '560').attr('height', '301').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n      return $video[0];\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      var text = this.context.invoke('editor.getSelectedText');\n      this.context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange'); // build node\n\n\n        var $node = _this.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          _this.context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show video dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showVideoDialog\",\n    value: function showVideoDialog()\n    /* text */\n    {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $videoUrl = _this2.$dialog.find('.note-video-url');\n\n        var $videoBtn = _this2.$dialog.find('.note-video-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          $videoUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($videoBtn, $videoUrl.val());\n          });\n\n          if (!env.isSupportTouch) {\n            $videoUrl.trigger('focus');\n          }\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($videoUrl.val());\n          });\n\n          _this2.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $videoUrl.off();\n          $videoBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return VideoDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HelpDialog.js\nfunction HelpDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HelpDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HelpDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) HelpDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) HelpDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar HelpDialog_HelpDialog = /*#__PURE__*/function () {\n  function HelpDialog(context) {\n    HelpDialog_classCallCheck(this, HelpDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  HelpDialog_createClass(HelpDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<p class=\"text-center\">', '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote 0.8.18</a> · ', '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ', '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>', '</p>'].join('');\n      this.$dialog = this.ui.dialog({\n        title: this.lang.options.help,\n        fade: this.options.dialogsFade,\n        body: this.createShortcutList(),\n        footer: body,\n        callback: function callback($node) {\n          $node.find('.modal-body,.note-modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"createShortcutList\",\n    value: function createShortcutList() {\n      var _this = this;\n\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div><div class=\"help-list-item\"></div></div>');\n        $row.append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<span/>').html(_this.context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    }\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showHelpDialog\",\n    value: function showHelpDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          deferred.resolve();\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      }).promise();\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this3 = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        _this3.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return HelpDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AirPopover.js\nfunction AirPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AirPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AirPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) AirPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) AirPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar AIRMODE_POPOVER_X_OFFSET = -5;\nvar AIRMODE_POPOVER_Y_OFFSET = 5;\n\nvar AirPopover_AirPopover = /*#__PURE__*/function () {\n  function AirPopover(context) {\n    var _this = this;\n\n    AirPopover_classCallCheck(this, AirPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.hidable = true;\n    this.onContextmenu = false;\n    this.pageX = null;\n    this.pageY = null;\n    this.events = {\n      'summernote.contextmenu': function summernoteContextmenu(e) {\n        if (_this.options.editing) {\n          e.preventDefault();\n          e.stopPropagation();\n          _this.onContextmenu = true;\n\n          _this.update(true);\n        }\n      },\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.pageX = e.pageX;\n        _this.pageY = e.pageY;\n      },\n      'summernote.keyup summernote.mouseup summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteScroll(we, e) {\n        if (_this.options.editing && !_this.onContextmenu) {\n          _this.pageX = e.pageX;\n          _this.pageY = e.pageY;\n\n          _this.update();\n        }\n\n        _this.onContextmenu = false;\n      },\n      'summernote.disable summernote.change summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteChangeSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.focusout': function summernoteFocusout() {\n        if (!_this.$popover.is(':active,:focus')) {\n          _this.hide();\n        }\n      }\n    };\n  }\n\n  AirPopover_createClass(AirPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$popover = this.ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.air); // disable hiding this popover preemptively by 'summernote.blur' event.\n\n      this.$popover.on('mousedown', function () {\n        _this2.hidable = false;\n      }); // (re-)enable hiding after 'summernote.blur' has been handled (aka. ignored).\n\n      this.$popover.on('mouseup', function () {\n        _this2.hidable = true;\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(forcelyOpen) {\n      var styleInfo = this.context.invoke('editor.currentStyle');\n\n      if (styleInfo.range && (!styleInfo.range.isCollapsed() || forcelyOpen)) {\n        var rect = {\n          left: this.pageX,\n          top: this.pageY\n        };\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        rect.top -= containerOffset.top;\n        rect.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(rect.left, 0) + AIRMODE_POPOVER_X_OFFSET,\n          top: rect.top + AIRMODE_POPOVER_Y_OFFSET\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$popover.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      if (this.hidable) {\n        this.$popover.hide();\n      }\n    }\n  }]);\n\n  return AirPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HintPopover.js\nfunction HintPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HintPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HintPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) HintPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) HintPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar POPOVER_DIST = 5;\n\nvar HintPopover_HintPopover = /*#__PURE__*/function () {\n  function HintPopover(context) {\n    var _this = this;\n\n    HintPopover_classCallCheck(this, HintPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = Array.isArray(this.hint) ? this.hint : [this.hint];\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  HintPopover_createClass(HintPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.hints.length > 0;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.lastWordRange = null;\n      this.matchingWord = null;\n      this.$popover = this.ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo(this.options.container);\n      this.$popover.hide();\n      this.$content = this.$popover.find('.popover-content,.note-popover-content');\n      this.$content.on('click', '.note-hint-item', function (e) {\n        _this2.$content.find('.active').removeClass('active');\n\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).addClass('active');\n\n        _this2.replace();\n      });\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"selectItem\",\n    value: function selectItem($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n      this.$content[0].scrollTop = $item[0].offsetTop - this.$content.innerHeight() / 2;\n    }\n  }, {\n    key: \"moveDown\",\n    value: function moveDown() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    }\n  }, {\n    key: \"moveUp\",\n    value: function moveUp() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item); // If matchingWord length = 0 -> capture OK / open hint / but as mention capture \"\" (\\w*)\n\n        if (this.matchingWord !== null && this.matchingWord.length === 0) {\n          this.lastWordRange.so = this.lastWordRange.eo; // Else si > 0 and normal case -> adjust range \"before\" for correct position of insertion\n        } else if (this.matchingWord !== null && this.matchingWord.length > 0 && !this.lastWordRange.isCollapsed()) {\n          var rangeCompute = this.lastWordRange.eo - this.lastWordRange.so - this.matchingWord.length;\n\n          if (rangeCompute > 0) {\n            this.lastWordRange.so += rangeCompute;\n          }\n        }\n\n        this.lastWordRange.insertNode(node);\n\n        if (this.options.hintSelect === 'next') {\n          var blank = document.createTextNode('');\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).after(blank);\n          range.createFromNodeBefore(blank).select();\n        } else {\n          range.createFromNodeAfter(node).select();\n        }\n\n        this.lastWordRange = null;\n        this.hide();\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"nodeFromItem\",\n    value: function nodeFromItem($item) {\n      var hint = this.hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n\n      return node;\n    }\n  }, {\n    key: \"createItemTemplates\",\n    value: function createItemTemplates(hintIdx, items) {\n      var hint = this.hints[hintIdx];\n      return items.map(function (item\n      /*, idx */\n      ) {\n        var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n        return $item;\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === core_key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === core_key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === core_key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    }\n  }, {\n    key: \"searchKeyword\",\n    value: function searchKeyword(index, keyword, callback) {\n      var hint = this.hints[index];\n\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        this.matchingWord = matches[0];\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    }\n  }, {\n    key: \"createGroup\",\n    value: function createGroup(idx, keyword) {\n      var _this3 = this;\n\n      var $group = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-group note-hint-group-' + idx + '\"></div>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n\n        if (items.length) {\n          $group.html(_this3.createItemTemplates(idx, items));\n\n          _this3.show();\n        }\n      });\n      return $group;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      var _this4 = this;\n\n      if (!lists.contains([core_key.code.ENTER, core_key.code.UP, core_key.code.DOWN], e.keyCode)) {\n        var _range = this.context.invoke('editor.getLastRange');\n\n        var wordRange, keyword;\n\n        if (this.options.hintMode === 'words') {\n          wordRange = _range.getWordsRange(_range);\n          keyword = wordRange.toString();\n          this.hints.forEach(function (hint) {\n            if (hint.match.test(keyword)) {\n              wordRange = _range.getWordsMatchRange(hint.match);\n              return false;\n            }\n          });\n\n          if (!wordRange) {\n            this.hide();\n            return;\n          }\n\n          keyword = wordRange.toString();\n        } else {\n          wordRange = _range.getWordRange();\n          keyword = wordRange.toString();\n        }\n\n        if (this.hints.length && keyword) {\n          this.$content.empty();\n          var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n          var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n\n          if (bnd) {\n            bnd.top -= containerOffset.top;\n            bnd.left -= containerOffset.left;\n            this.$popover.hide();\n            this.lastWordRange = wordRange;\n            this.hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                _this4.createGroup(idx, keyword).appendTo(_this4.$content);\n              }\n            }); // select first .note-hint-item\n\n            this.$content.find('.note-hint-item:first').addClass('active'); // set position for popover after group is created\n\n            if (this.direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n          }\n        } else {\n          this.hide();\n        }\n      }\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      this.$popover.show();\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return HintPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/settings.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  version: '0.8.18',\n  plugins: {},\n  dom: dom,\n  range: range,\n  lists: lists,\n  options: {\n    langInfo: external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'],\n    editing: true,\n    modules: {\n      'editor': Editor_Editor,\n      'clipboard': Clipboard_Clipboard,\n      'dropzone': Dropzone_Dropzone,\n      'codeview': Codeview_CodeView,\n      'statusbar': Statusbar_Statusbar,\n      'fullscreen': Fullscreen_Fullscreen,\n      'handle': Handle_Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover_HintPopover,\n      'autoLink': AutoLink_AutoLink,\n      'autoSync': AutoSync_AutoSync,\n      'autoReplace': AutoReplace_AutoReplace,\n      'placeholder': Placeholder_Placeholder,\n      'buttons': Buttons_Buttons,\n      'toolbar': Toolbar_Toolbar,\n      'linkDialog': LinkDialog_LinkDialog,\n      'linkPopover': LinkPopover_LinkPopover,\n      'imageDialog': ImageDialog_ImageDialog,\n      'imagePopover': ImagePopover_ImagePopover,\n      'tablePopover': TablePopover_TablePopover,\n      'videoDialog': VideoDialog_VideoDialog,\n      'helpDialog': HelpDialog_HelpDialog,\n      'airPopover': AirPopover_AirPopover\n    },\n    buttons: {},\n    lang: 'en-US',\n    followingToolbar: false,\n    toolbarPosition: 'top',\n    otherStaticBar: '',\n    // toolbar\n    codeviewKeepButton: false,\n    toolbar: [['style', ['style']], ['font', ['bold', 'underline', 'clear']], ['fontname', ['fontname']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']]],\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [['resize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], ['float', ['floatLeft', 'floatRight', 'floatNone']], ['remove', ['removeMedia']]],\n      link: [['link', ['linkDialogShow', 'unlink']]],\n      table: [['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]],\n      air: [['color', ['color']], ['font', ['bold', 'underline', 'clear']], ['para', ['ul', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture']], ['view', ['fullscreen', 'codeview']]]\n    },\n    // air mode: inline editor\n    airMode: false,\n    overrideContextMenu: false,\n    // TBD\n    width: null,\n    height: null,\n    linkTargetBlank: true,\n    useProtocol: true,\n    defaultProtocol: 'http://',\n    focus: false,\n    tabDisabled: false,\n    tabSize: 4,\n    styleWithCSS: false,\n    shortcuts: true,\n    textareaAutoSync: true,\n    tooltip: 'auto',\n    container: null,\n    maxTextLength: 0,\n    blockquoteBreakingLevel: 2,\n    spellCheck: true,\n    disableGrammar: false,\n    placeholder: null,\n    inheritPlaceholder: false,\n    // TODO: need to be documented\n    recordEveryKeystroke: false,\n    historyLimit: 200,\n    // TODO: need to be documented\n    showDomainOnlyForAutolink: false,\n    // TODO: need to be documented\n    hintMode: 'word',\n    hintSelect: 'after',\n    hintDirection: 'bottom',\n    styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n    fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana'],\n    fontNamesIgnoreCheck: [],\n    addDefaultFonts: true,\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n    fontSizeUnits: ['px', 'pt'],\n    // pallete colors(n x n)\n    colors: [['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'], ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'], ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'], ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'], ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'], ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'], ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'], ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']],\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'], ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'], ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'], ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'], ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'], ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'], ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'], ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']],\n    colorButton: {\n      foreColor: '#000000',\n      backColor: '#FFFF00'\n    },\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n    tableClassName: 'table table-bordered',\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n    // By default, dialogs are attached in container.\n    dialogsInBody: false,\n    dialogsFade: false,\n    maximumImageFileSize: null,\n    callbacks: {\n      onBeforeCommand: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onChange: null,\n      onChangeCodeview: null,\n      onDialogShown: null,\n      onEnter: null,\n      onFocus: null,\n      onImageLinkInsert: null,\n      onImageUpload: null,\n      onImageUploadError: null,\n      onInit: null,\n      onKeydown: null,\n      onKeyup: null,\n      onMousedown: null,\n      onMouseup: null,\n      onPaste: null,\n      onScroll: null\n    },\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n    codeviewFilter: false,\n    codeviewFilterRegex: /<\\/*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|ilayer|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|t(?:itle|extarea)|xml)[^>]*?>/gi,\n    codeviewIframeFilter: true,\n    codeviewIframeWhitelistSrc: [],\n    codeviewIframeWhitelistSrcBase: ['www.youtube.com', 'www.youtube-nocookie.com', 'www.facebook.com', 'vine.co', 'instagram.com', 'player.vimeo.com', 'www.dailymotion.com', 'player.youku.com', 'v.qq.com'],\n    keyMap: {\n      pc: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n      mac: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'floatLeft': 'note-icon-float-left',\n      'floatRight': 'note-icon-float-right',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'rollback': 'note-icon-rollback',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 53:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// EXTERNAL MODULE: ./src/js/base/renderer.js\nvar renderer = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./src/js/bs4/ui.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\nvar editor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-frame card\"/>');\nvar toolbar = renderer[\"a\" /* default */].create('<div class=\"note-toolbar card-header\" role=\"toolbar\"/>');\nvar editingArea = renderer[\"a\" /* default */].create('<div class=\"note-editing-area\"/>');\nvar codable = renderer[\"a\" /* default */].create('<textarea class=\"note-codable\" aria-multiline=\"true\"/>');\nvar editable = renderer[\"a\" /* default */].create('<div class=\"note-editable card-block\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nvar statusbar = renderer[\"a\" /* default */].create(['<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>', '<div class=\"note-statusbar\" role=\"status\">', '<div class=\"note-resizebar\" aria-label=\"Resize\">', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '</div>', '</div>'].join(''));\nvar airEditor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-airframe\"/>');\nvar airEditable = renderer[\"a\" /* default */].create(['<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"></div>', '<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>'].join(''));\nvar buttonGroup = renderer[\"a\" /* default */].create('<div class=\"note-btn-group btn-group\">');\nvar dropdown = renderer[\"a\" /* default */].create('<div class=\"note-dropdown-menu dropdown-menu\" role=\"list\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    var option = _typeof(item) === 'object' ? item.option : undefined;\n    var dataValue = 'data-value=\"' + value + '\"';\n    var dataOption = option !== undefined ? ' data-option=\"' + option + '\"' : '';\n    return '<a class=\"dropdown-item\" href=\"#\" ' + (dataValue + dataOption) + ' role=\"listitem\" aria-label=\"' + value + '\">' + content + '</a>';\n  }).join('') : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\n\nvar dropdownButtonContents = function dropdownButtonContents(contents) {\n  return contents;\n};\n\nvar dropdownCheck = renderer[\"a\" /* default */].create('<div class=\"note-dropdown-menu dropdown-menu note-check\" role=\"list\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    return '<a class=\"dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + item + '\">' + icon(options.checkClassName) + ' ' + content + '</a>';\n  }).join('') : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\nvar dialog = renderer[\"a\" /* default */].create('<div class=\"modal note-modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function ($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html(['<div class=\"modal-dialog\">', '<div class=\"modal-content\">', options.title ? '<div class=\"modal-header\">' + '<h4 class=\"modal-title\">' + options.title + '</h4>' + '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" aria-hidden=\"true\">&times;</button>' + '</div>' : '', '<div class=\"modal-body\">' + options.body + '</div>', options.footer ? '<div class=\"modal-footer\">' + options.footer + '</div>' : '', '</div>', '</div>'].join(''));\n});\nvar popover = renderer[\"a\" /* default */].create(['<div class=\"note-popover popover in\">', '<div class=\"arrow\"></div>', '<div class=\"popover-content note-children-container\"></div>', '</div>'].join(''), function ($node, options) {\n  var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n  $node.addClass(direction);\n\n  if (options.hideArrow) {\n    $node.find('.arrow').hide();\n  }\n});\nvar ui_checkbox = renderer[\"a\" /* default */].create('<div class=\"form-check\"></div>', function ($node, options) {\n  $node.html(['<label class=\"form-check-label\"' + (options.id ? ' for=\"note-' + options.id + '\"' : '') + '>', '<input type=\"checkbox\" class=\"form-check-input\"' + (options.id ? ' id=\"note-' + options.id + '\"' : ''), options.checked ? ' checked' : '', ' aria-label=\"' + (options.text ? options.text : '') + '\"', ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>', ' ' + (options.text ? options.text : '') + '</label>'].join(''));\n});\n\nvar icon = function icon(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"></' + tagName + '>';\n};\n\nvar ui_ui = function ui(editorOptions) {\n  return {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    dropdown: dropdown,\n    dropdownButtonContents: dropdownButtonContents,\n    dropdownCheck: dropdownCheck,\n    dialog: dialog,\n    popover: popover,\n    icon: icon,\n    checkbox: ui_checkbox,\n    options: editorOptions,\n    palette: function palette($node, options) {\n      return renderer[\"a\" /* default */].create('<div class=\"note-color-palette\"/>', function ($node, options) {\n        var contents = [];\n\n        for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n          var eventName = options.eventName;\n          var colors = options.colors[row];\n          var colorsName = options.colorsName[row];\n          var buttons = [];\n\n          for (var col = 0, colSize = colors.length; col < colSize; col++) {\n            var color = colors[col];\n            var colorName = colorsName[col];\n            buttons.push(['<button type=\"button\" class=\"note-color-btn\"', 'style=\"background-color:', color, '\" ', 'data-event=\"', eventName, '\" ', 'data-value=\"', color, '\" ', 'title=\"', colorName, '\" ', 'aria-label=\"', colorName, '\" ', 'data-toggle=\"button\" tabindex=\"-1\"></button>'].join(''));\n          }\n\n          contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n        }\n\n        $node.html(contents.join(''));\n\n        if (options.tooltip) {\n          $node.find('.note-color-btn').tooltip({\n            container: options.container || editorOptions.container,\n            trigger: 'hover',\n            placement: 'bottom'\n          });\n        }\n      })($node, options);\n    },\n    button: function button($node, options) {\n      return renderer[\"a\" /* default */].create('<button type=\"button\" class=\"note-btn btn btn-light btn-sm\" tabindex=\"-1\">', function ($node, options) {\n        if (options && options.tooltip) {\n          $node.attr({\n            title: options.tooltip,\n            'aria-label': options.tooltip\n          }).tooltip({\n            container: options.container || editorOptions.container,\n            trigger: 'hover',\n            placement: 'bottom'\n          }).on('click', function (e) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).tooltip('hide');\n          });\n        }\n\n        if (options && options.codeviewButton) {\n          $node.addClass('note-codeview-keep');\n        }\n      })($node, options);\n    },\n    toggleBtn: function toggleBtn($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n    toggleBtnActive: function toggleBtnActive($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n    onDialogShown: function onDialogShown($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n    onDialogHidden: function onDialogHidden($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n    showDialog: function showDialog($dialog) {\n      $dialog.modal('show');\n    },\n    hideDialog: function hideDialog($dialog) {\n      $dialog.modal('hide');\n    },\n    createLayout: function createLayout($note) {\n      var $editor = (editorOptions.airMode ? airEditor([editingArea([codable(), airEditable()])]) : editorOptions.toolbarPosition === 'bottom' ? editor([editingArea([codable(), editable()]), toolbar(), statusbar()]) : editor([toolbar(), editingArea([codable(), editable()]), statusbar()])).render();\n      $editor.insertAfter($note);\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n    removeLayout: function removeLayout($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n};\n\n/* harmony default export */ var bs4_ui = (ui_ui);\n// EXTERNAL MODULE: ./src/js/base/settings.js + 37 modules\nvar settings = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./src/styles/summernote-bs4.scss\nvar summernote_bs4 = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./src/js/bs4/settings.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  ui_template: bs4_ui,\n  \"interface\": 'bs4'\n});\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options.styleTags = ['p', {\n  title: 'Blockquote',\n  tag: 'blockquote',\n  className: 'blockquote',\n  value: 'blockquote'\n}, 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=summernote-bs4.js.map"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-bs4.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-lite.css",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n@font-face{font-family:\"summernote\";font-style:normal;font-weight:400;font-display:auto;src:url(font/summernote.eot);src:url(font/summernote.eot?#iefix) format(\"embedded-opentype\"),url(font/summernote.woff2) format(\"woff2\"),url(font/summernote.woff) format(\"woff\"),url(font/summernote.ttf) format(\"truetype\")}[class^=note-icon]:before,[class*=\" note-icon\"]:before{display:inline-block;font-family:summernote;font-style:normal;font-size:inherit;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.note-icon-fw{text-align:center;width:1.25em}.note-icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.note-icon-pull-left{float:left}.note-icon-pull-right{float:right}.note-icon.note-icon-pull-left{margin-right:.3em}.note-icon.note-icon-pull-right{margin-left:.3em}.note-icon-align::before{content:\"\"}.note-icon-align-center::before{content:\"\"}.note-icon-align-indent::before{content:\"\"}.note-icon-align-justify::before{content:\"\"}.note-icon-align-left::before{content:\"\"}.note-icon-align-outdent::before{content:\"\"}.note-icon-align-right::before{content:\"\"}.note-icon-arrow-circle-down::before{content:\"\"}.note-icon-arrow-circle-left::before{content:\"\"}.note-icon-arrow-circle-right::before{content:\"\"}.note-icon-arrow-circle-up::before{content:\"\"}.note-icon-arrows-alt::before{content:\"\"}.note-icon-arrows-h::before{content:\"\"}.note-icon-arrows-v::before{content:\"\"}.note-icon-bold::before{content:\"\"}.note-icon-caret::before{content:\"\"}.note-icon-chain-broken::before{content:\"\"}.note-icon-circle::before{content:\"\"}.note-icon-close::before{content:\"\"}.note-icon-code::before{content:\"\"}.note-icon-col-after::before{content:\"\"}.note-icon-col-before::before{content:\"\"}.note-icon-col-remove::before{content:\"\"}.note-icon-eraser::before{content:\"\"}.note-icon-float-left::before{content:\"\"}.note-icon-float-none::before{content:\"\"}.note-icon-float-right::before{content:\"\"}.note-icon-font::before{content:\"\"}.note-icon-frame::before{content:\"\"}.note-icon-italic::before{content:\"\"}.note-icon-link::before{content:\"\"}.note-icon-magic::before{content:\"\"}.note-icon-menu-check::before{content:\"\"}.note-icon-minus::before{content:\"\"}.note-icon-orderedlist::before{content:\"\"}.note-icon-pencil::before{content:\"\"}.note-icon-picture::before{content:\"\"}.note-icon-question::before{content:\"\"}.note-icon-redo::before{content:\"\"}.note-icon-rollback::before{content:\"\"}.note-icon-row-above::before{content:\"\"}.note-icon-row-below::before{content:\"\"}.note-icon-row-remove::before{content:\"\"}.note-icon-special-character::before{content:\"\"}.note-icon-square::before{content:\"\"}.note-icon-strikethrough::before{content:\"\"}.note-icon-subscript::before{content:\"\"}.note-icon-summernote::before{content:\"\"}.note-icon-superscript::before{content:\"\"}.note-icon-table::before{content:\"\"}.note-icon-text-height::before{content:\"\"}.note-icon-trash::before{content:\"\"}.note-icon-underline::before{content:\"\"}.note-icon-undo::before{content:\"\"}.note-icon-unorderedlist::before{content:\"\"}.note-icon-video::before{content:\"\"}.note-frame{-ms-box-sizing:border-box;box-sizing:border-box;color:#000;font-family:sans-serif;border-radius:4px}.note-toolbar{padding:10px 5px;border-bottom:1px solid #e2e2e2;color:#333;background-color:#f5f5f5;border-color:#ddd;border-top-left-radius:3px;border-top-right-radius:3px}.note-btn-group{position:relative;display:inline-block;margin-right:8px}.note-btn-group>.note-btn-group{margin-right:0}.note-btn-group>.note-btn:first-child{margin-left:0}.note-btn-group .note-btn+.note-btn,.note-btn-group .note-btn+.note-btn-group,.note-btn-group .note-btn-group+.note-btn,.note-btn-group .note-btn-group+.note-btn-group{margin-left:-1px}.note-btn-group>.note-btn:not(:first-child),.note-btn-group>.note-btn-group:not(:first-child)>.note-btn{border-top-left-radius:0;border-bottom-left-radius:0}.note-btn-group>.note-btn:not(:last-child):not(.dropdown-toggle),.note-btn-group>.note-btn-group:not(:last-child)>.note-btn{border-top-right-radius:0;border-bottom-right-radius:0}.note-btn-group.open>.note-dropdown{display:block}.note-btn{display:inline-block;font-weight:400;margin-bottom:0;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid #dae0e5;white-space:nowrap;outline:0;color:#333;background-color:#fff;border-color:#dae0e5;padding:5px 10px;font-size:14px;line-height:1.4;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.note-btn:focus,.note-btn.focus{color:#333;background-color:#ebebeb;border-color:#dae0e5}.note-btn:hover{color:#333;background-color:#ebebeb;border-color:#dae0e5}.note-btn.disabled:focus,.note-btn.disabled.focus,.note-btn[disabled]:focus,.note-btn[disabled].focus,fieldset[disabled] .note-btn:focus,fieldset[disabled] .note-btn.focus{background-color:#fff;border-color:#dae0e5}.note-btn:hover,.note-btn:focus,.note-btn.focus{color:#333;text-decoration:none;border:1px solid #dae0e5;background-color:#ebebeb;outline:0;border-radius:1px}.note-btn:active,.note-btn.active{outline:0;background-image:none;color:#333;text-decoration:none;border:1px solid #dae0e5;background-color:#ebebeb;outline:0;border-radius:1px;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.note-btn.disabled,.note-btn[disabled],fieldset[disabled] .note-btn{cursor:not-allowed;-webkit-opacity:.65;-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=65);filter:alpha(opacity=65);box-shadow:none}.note-btn>span.note-icon-caret:first-child{margin-left:-1px}.note-btn>span.note-icon-caret:nth-child(2){padding-left:3px;margin-right:-5px}.note-btn-primary{background:#fa6362;color:#fff}.note-btn-primary:hover,.note-btn-primary:focus,.note-btn-primary.focus{color:#fff;text-decoration:none;border:1px solid #dae0e5;background-color:#fa6362;border-radius:1px}.note-btn-block{display:block;width:100%}.note-btn-block+.note-btn-block{margin-top:5px}input[type=submit].note-btn-block,input[type=reset].note-btn-block,input[type=button].note-btn-block{width:100%}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.close{float:right;font-size:21px;line-height:1;color:#000;opacity:.2}.close:hover{-webkit-opacity:1;-khtml-opacity:1;-moz-opacity:1;-ms-filter:alpha(opacity=100);filter:alpha(opacity=100);opacity:1}.note-dropdown{position:relative}.note-color .dropdown-toggle{width:30px;padding-left:5px}.note-dropdown-menu{display:none;min-width:100px;position:absolute;top:100%;left:0;z-index:1000;float:left;text-align:left;background:#fff;border:1px solid #e2e2e2;padding:5px;background-clip:padding-box;box-shadow:0 1px 1px rgba(0,0,0,.06)}.note-dropdown-menu>*:last-child{margin-right:0}.note-btn-group.open .note-dropdown-menu{display:block}.note-dropdown-item{display:block}.note-dropdown-item:hover{background-color:#ebebeb}a.note-dropdown-item,a.note-dropdown-item:hover{margin:5px 0;color:#000;text-decoration:none}.note-modal{position:fixed;left:0;right:0;top:0;bottom:0;z-index:1050;-webkit-opacity:1;-khtml-opacity:1;-moz-opacity:1;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100);filter:alpha(opacity=100);display:none}.note-modal.open{display:block}.note-modal-content{position:relative;width:auto;margin:30px 20px;border:1px solid rgba(0,0,0,.2);background:#fff;background-clip:border-box;outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5)}.note-modal-header{padding:10px 20px;border:1px solid #ededef}.note-modal-body{position:relative;padding:20px 30px}.note-modal-body kbd{border-radius:2px;background-color:#000;color:#fff;padding:3px 5px;font-weight:700;-ms-box-sizing:border-box;box-sizing:border-box}.note-modal-footer{height:40px;padding:10px;text-align:center}.note-modal-footer a{color:#337ab7;text-decoration:none}.note-modal-footer a:hover,.note-modal-footer a:focus{color:#23527c;text-decoration:underline}.note-modal-footer .note-btn{float:right}.note-modal-title{font-size:20px;color:#42515f;margin:0;line-height:1.4}.note-modal-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:1040;background:#000;-webkit-opacity:.5;-khtml-opacity:.5;-moz-opacity:.5;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);filter:alpha(opacity=50);display:none}.note-modal-backdrop.open{display:block}@media(min-width: 768px){.note-modal-content{width:600px;margin:30px auto}}@media(min-width: 992px){.note-modal-content-large{width:900px}}.note-modal .note-help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}.note-modal .note-nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.note-modal .note-nav-link{display:block;padding:.5rem 1rem;color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}.note-modal .note-nav-link:focus,.note-modal .note-nav-link:hover{color:#0056b3;text-decoration:none}.note-modal .note-nav-link.disabled{color:#868e96}.note-modal .note-nav-tabs{border-bottom:1px solid #ddd}.note-modal .note-nav-tabs .note-nav-item{margin-bottom:-1px}.note-modal .note-nav-tabs .note-nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.note-modal .note-nav-tabs .note-nav-link:focus,.note-modal .note-nav-tabs .note-nav-link:hover{border-color:#e9ecef #e9ecef #ddd}.note-modal .note-nav-tabs .note-nav-link.disabled{color:#868e96;background-color:transparent;border-color:transparent}.note-modal .note-nav-tabs .note-nav-item.show .note-nav-link{color:#495057;background-color:#fff;border-color:#ddd #ddd #fff}.note-modal .note-tab-content{margin:15px auto}.note-modal .note-tab-content>.note-tab-pane:target~.note-tab-pane:last-child,.note-modal .note-tab-content>.note-tab-pane{display:none}.note-modal .note-tab-content>:last-child,.note-modal .note-tab-content>.note-tab-pane:target{display:block}.note-form-group{padding-bottom:20px}.note-form-group:last-child{padding-bottom:0}.note-form-label{display:block;width:100%;font-size:16px;color:#42515f;margin-bottom:10px;font-weight:700}.note-input{width:100%;display:block;border:1px solid #ededef;background:#fff;outline:0;padding:6px 4px;font-size:14px;-ms-box-sizing:border-box;box-sizing:border-box}.note-input::-webkit-input-placeholder{color:#eee}.note-input:-moz-placeholder{color:#eee}.note-input::-moz-placeholder{color:#eee}.note-input:-ms-input-placeholder{color:#eee}.note-tooltip{position:absolute;z-index:1070;display:block;font-size:13px;transition:opacity .15s;-webkit-opacity:0;-khtml-opacity:0;-moz-opacity:0;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);filter:alpha(opacity=0)}.note-tooltip.in{-webkit-opacity:.9;-khtml-opacity:.9;-moz-opacity:.9;opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=90);filter:alpha(opacity=90)}.note-tooltip.top{margin-top:-3px;padding:5px 0}.note-tooltip.right{margin-left:3px;padding:0 5px}.note-tooltip.bottom{margin-top:3px;padding:5px 0}.note-tooltip.left{margin-left:-3px;padding:0 5px}.note-tooltip.bottom .note-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.note-tooltip.top .note-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.note-tooltip.right .note-tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.note-tooltip.left .note-tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.note-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.note-tooltip-content{max-width:200px;font-family:sans-serif;padding:3px 8px;color:#fff;text-align:center;background-color:#000}.note-popover{position:absolute;z-index:1060;display:block;font-size:13px;font-family:sans-serif;display:none;background:#fff;border:1px solid rgba(0,0,0,.2);border:1px solid #ccc}.note-popover.in{display:block}.note-popover.top{margin-top:-10px;padding:5px 0}.note-popover.right{margin-left:10px;padding:0 5px}.note-popover.bottom{margin-top:10px;padding:5px 0}.note-popover.left{margin-left:-10px;padding:0 5px}.note-popover.bottom .note-popover-arrow{top:-11px;left:20px;margin-left:-10px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.note-popover.bottom .note-popover-arrow::after{top:1px;margin-left:-10px;content:\" \";border-top-width:0;border-bottom-color:#fff}.note-popover.top .note-popover-arrow{bottom:-11px;left:20px;margin-left:-10px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25)}.note-popover.top .note-popover-arrow::after{bottom:1px;margin-left:-10px;content:\" \";border-bottom-width:0;border-top-color:#fff}.note-popover.right .note-popover-arrow{top:50%;left:-11px;margin-top:-10px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.note-popover.right .note-popover-arrow::after{left:1px;margin-top:-10px;content:\" \";border-left-width:0;border-right-color:#fff}.note-popover.left .note-popover-arrow{top:50%;right:-11px;margin-top:-10px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.note-popover.left .note-popover-arrow::after{right:1px;margin-top:-10px;content:\" \";border-right-width:0;border-left-color:#fff}.note-popover-arrow{position:absolute;width:0;height:0;border:11px solid transparent}.note-popover-arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;content:\" \";border-width:10px}.note-popover-content{padding:3px 8px;color:#000;text-align:center;background-color:#fff;min-width:100px;min-height:30px}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;display:none;z-index:100;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;vertical-align:middle;text-align:center;font-size:28px;font-weight:700}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:none}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable img.note-float-left{margin-right:10px}.note-editor .note-editing-area .note-editable img.note-float-right{margin-left:10px}.note-editor.note-frame,.note-editor.note-airframe{border:1px solid #00000032}.note-editor.note-frame.codeview .note-editing-area .note-editable,.note-editor.note-airframe.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable,.note-editor.note-airframe.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area,.note-editor.note-airframe .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable,.note-editor.note-airframe .note-editing-area .note-editable{padding:10px;overflow:auto;word-wrap:break-word}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false],.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false]{background-color:#8080801d}.note-editor.note-frame .note-editing-area .note-codable,.note-editor.note-airframe .note-editing-area .note-codable{display:none;width:100%;padding:10px;border:none;box-shadow:none;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;resize:none;outline:none;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:0;margin-bottom:0}.note-editor.note-frame.fullscreen,.note-editor.note-airframe.fullscreen{position:fixed;top:0;left:0;width:100% !important;z-index:1050}.note-editor.note-frame.fullscreen .note-resizebar,.note-editor.note-airframe.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output,.note-editor.note-airframe .note-status-output{display:block;width:100%;font-size:14px;line-height:1.42857143;height:20px;margin-bottom:0;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty,.note-editor.note-airframe .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right,.note-editor.note-airframe .note-status-output .pull-right{float:right !important}.note-editor.note-frame .note-status-output .text-muted,.note-editor.note-airframe .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary,.note-editor.note-airframe .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success,.note-editor.note-airframe .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info,.note-editor.note-airframe .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning,.note-editor.note-airframe .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger,.note-editor.note-airframe .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert,.note-editor.note-airframe .note-status-output .alert{margin:-7px 0 0 0;padding:7px 10px 2px 10px;border-radius:0;color:#000;background-color:#f5f5f5}.note-editor.note-frame .note-status-output .alert .note-icon,.note-editor.note-airframe .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success,.note-editor.note-airframe .note-status-output .alert-success{color:#3c763d !important;background-color:#dff0d8 !important}.note-editor.note-frame .note-status-output .alert-info,.note-editor.note-airframe .note-status-output .alert-info{color:#31708f !important;background-color:#d9edf7 !important}.note-editor.note-frame .note-status-output .alert-warning,.note-editor.note-airframe .note-status-output .alert-warning{color:#8a6d3b !important;background-color:#fcf8e3 !important}.note-editor.note-frame .note-status-output .alert-danger,.note-editor.note-airframe .note-status-output .alert-danger{color:#a94442 !important;background-color:#f2dede !important}.note-editor.note-frame .note-statusbar,.note-editor.note-airframe .note-statusbar{background-color:#8080801d;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar .note-resizebar,.note-editor.note-airframe .note-statusbar .note-resizebar{padding-top:1px;height:9px;width:100%;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar.locked .note-resizebar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder,.note-editor.note-airframe .note-placeholder{padding:10px}.note-editor.note-airframe{border:0}.note-editor.note-airframe .note-editing-area .note-editable{padding:0}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative}.note-popover .popover-content,.note-editor .note-toolbar{margin:0;padding:0 0 5px 5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group{margin-top:5px;margin-left:0;margin-right:5px}.note-popover .popover-content .note-btn-group .note-table,.note-editor .note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-editor .note-toolbar .note-style .dropdown-style blockquote,.note-editor .note-toolbar .note-style .dropdown-style pre{margin:0;padding:5px 10px}.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-editor .note-toolbar .note-style .dropdown-style h1,.note-editor .note-toolbar .note-style .dropdown-style h2,.note-editor .note-toolbar .note-style .dropdown-style h3,.note-editor .note-toolbar .note-style .dropdown-style h4,.note-editor .note-toolbar .note-style .dropdown-style h5,.note-editor .note-toolbar .note-style .dropdown-style h6,.note-editor .note-toolbar .note-style .dropdown-style p{margin:0;padding:0}.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-editor .note-toolbar .note-color-all .note-dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-toggle,.note-editor .note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;margin:0;width:160px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{font-size:12px;margin:2px 7px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select{font-size:11px;margin:3px;padding:0 3px;cursor:pointer;width:100%;border-radius:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover{background:#eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn{display:none}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn{border:1px solid #eee}.note-popover .popover-content .note-para .note-dropdown-menu,.note-editor .note-toolbar .note-para .note-dropdown-menu{min-width:228px;padding:5px}.note-popover .popover-content .note-para .note-dropdown-menu>div+div,.note-editor .note-toolbar .note-para .note-dropdown-menu>div+div{margin-left:5px}.note-popover .popover-content .note-dropdown-menu,.note-editor .note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .popover-content .note-dropdown-menu.right,.note-editor .note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .note-dropdown-menu.right::before,.note-editor .note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.right::after,.note-editor .note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-editor .note-toolbar .note-dropdown-menu.note-check a i{color:#00bfff;visibility:hidden}.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.note-editor .note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.note-editor .note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.note-editor .note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:0;border-radius:0}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-editor .note-toolbar .note-color-palette div .note-color-btn:hover{transform:scale(1.2);transition:all .2s}.note-modal .modal-dialog{outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5)}.note-modal .form-group{margin-left:0;margin-right:0}.note-modal .note-modal-form{margin:0}.note-modal .note-image-dialog .note-dropzone{min-height:100px;font-size:30px;line-height:4;color:#d3d3d3;text-align:center;border:4px dashed #d3d3d3;margin-bottom:10px}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-sizing,.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{background-color:#000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:none;border-bottom:none}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:none;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:none;border-right:none}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:none;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;color:#fff;background-color:#000;font-size:12px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{padding:3px;max-height:150px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;white-space:nowrap;text-decoration:none;background-color:#428bca;outline:0;cursor:pointer}.note-editor .note-editing-area .note-editable table{width:100%;border-collapse:collapse}.note-editor .note-editing-area .note-editable table td,.note-editor .note-editing-area .note-editable table th{border:1px solid #ececec;padding:5px 3px}.note-editor .note-editing-area .note-editable a{background-color:inherit;text-decoration:inherit;font-family:inherit;font-weight:inherit;color:#337ab7}.note-editor .note-editing-area .note-editable a:hover,.note-editor .note-editing-area .note-editable a:focus{color:#23527c;text-decoration:underline;outline:0}.note-editor .note-editing-area .note-editable figure{margin:0}.note-modal .note-modal-body label{margin-bottom:2px;padding:2px 5px;display:inline-block}.note-modal .note-modal-body .help-list-item:hover{background-color:#e0e0e0}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.help-list-item label{margin-bottom:5px;display:inline-block}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-lite.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 51);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Renderer = /*#__PURE__*/function () {\n  function Renderer(markup, children, options, callback) {\n    _classCallCheck(this, Renderer);\n\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  _createClass(Renderer, [{\n    key: \"render\",\n    value: function render($parent) {\n      var $node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.markup);\n\n      if (this.options && this.options.contents) {\n        $node.html(this.options.contents);\n      }\n\n      if (this.options && this.options.className) {\n        $node.addClass(this.options.className);\n      }\n\n      if (this.options && this.options.data) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (this.options && this.options.click) {\n        $node.on('click', this.options.click);\n      }\n\n      if (this.children) {\n        var $container = $node.find('.note-children-container');\n        this.children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (this.callback) {\n        this.callback($node, this.options);\n      }\n\n      if (this.options && this.options.callback) {\n        this.options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    }\n  }]);\n\n  return Renderer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  create: function create(markup, callback) {\n    return function () {\n      var options = _typeof(arguments[1]) === 'object' ? arguments[1] : arguments[0];\n      var children = Array.isArray(arguments[0]) ? arguments[0] : [];\n\n      if (options && options.children) {\n        children = options.children;\n      }\n\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n});\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// CONCATENATED MODULE: ./src/js/base/summernote-en-US.js\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote || {\n  lang: {}\n};\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size',\n      sizeunit: 'Font Size Unit'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize full',\n      resizeHalf: 'Resize half',\n      resizeQuarter: 'Resize quarter',\n      resizeNone: 'Original size',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Remove float',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window',\n      useProtocol: 'Use default protocol'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Text Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default',\n      cpSelect: 'Select'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'escape': 'Escape',\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undo the last command',\n      'redo': 'Redo the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    },\n    output: {\n      noSelection: 'No Selection Made!'\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/env.js\n\nvar isSupportAmd = typeof define === 'function' && __webpack_require__(2); // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\n\nvar genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n\nfunction validFontName(fontName) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.inArray(fontName.toLowerCase(), genericFontFamilies) === -1 ? \"'\".concat(fontName, \"'\") : fontName;\n}\n\nfunction env_isFontInstalled(fontName) {\n  var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  var testText = 'mmmmmmmmmmwwwww';\n  var testSize = '200px';\n  var canvas = document.createElement('canvas');\n  var context = canvas.getContext('2d');\n  context.font = testSize + \" '\" + testFontName + \"'\";\n  var originalWidth = context.measureText(testText).width;\n  context.font = testSize + ' ' + validFontName(fontName) + ', \"' + testFontName + '\"';\n  var width = context.measureText(testText).width;\n  return originalWidth !== width;\n}\n\nvar userAgent = navigator.userAgent;\nvar isMSIE = /MSIE|Trident/i.test(userAgent);\nvar browserVersion;\n\nif (isMSIE) {\n  var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nvar isEdge = /Edge\\/\\d+/.test(userAgent);\nvar isSupportTouch = 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; // [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\n\nvar inputEventName = isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\n\n/* harmony default export */ var env = ({\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE: isMSIE,\n  isEdge: isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent) && !/chrome/i.test(userAgent),\n  browserVersion: browserVersion,\n  jqueryVersion: parseFloat(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.jquery),\n  isSupportAmd: isSupportAmd,\n  isSupportTouch: isSupportTouch,\n  isFontInstalled: env_isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName: inputEventName,\n  genericFontFamilies: genericFontFamilies,\n  validFontName: validFontName\n});\n// CONCATENATED MODULE: ./src/js/base/core/func.js\n\n/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\n\nfunction eq(itemA) {\n  return function (itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function (itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return function () {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function (item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction func_self(a) {\n  return a;\n}\n\nfunction func_invoke(obj, method) {\n  return function () {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nvar idCounter = 0;\n/**\n * reset globally-unique id\n *\n */\n\nfunction resetUniqueId() {\n  idCounter = 0;\n}\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\n\n\nfunction uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\n\n\nfunction rect2bnd(rect) {\n  var $document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\n\n\nfunction invertObject(obj) {\n  var inverted = {};\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n\n  return inverted;\n}\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\n\n\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function (name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\n\n\nfunction debounce(func, wait, immediate) {\n  var timeout;\n  return function () {\n    var context = this;\n    var args = arguments;\n\n    var later = function later() {\n      timeout = null;\n\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n/**\n *\n * @param {String} url\n * @return {Boolean}\n */\n\n\nfunction isValidUrl(url) {\n  var expression = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/gi;\n  return expression.test(url);\n}\n\n/* harmony default export */ var func = ({\n  eq: eq,\n  eq2: eq2,\n  peq2: peq2,\n  ok: ok,\n  fail: fail,\n  self: func_self,\n  not: not,\n  and: and,\n  invoke: func_invoke,\n  resetUniqueId: resetUniqueId,\n  uniqueId: uniqueId,\n  rect2bnd: rect2bnd,\n  invertObject: invertObject,\n  namespaceToCamel: namespaceToCamel,\n  debounce: debounce,\n  isValidUrl: isValidUrl\n});\n// CONCATENATED MODULE: ./src/js/base/core/lists.js\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\n\nfunction lists_head(array) {\n  return array[0];\n}\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\n\n\nfunction lists_last(array) {\n  return array[array.length - 1];\n}\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\n\n\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\n\n\nfunction tail(array) {\n  return array.slice(1);\n}\n/**\n * returns item of array\n */\n\n\nfunction find(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    var item = array[idx];\n\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\n\n\nfunction lists_all(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * returns true if the value is present in the list.\n */\n\n\nfunction contains(array, item) {\n  if (array && array.length && item) {\n    if (array.indexOf) {\n      return array.indexOf(item) !== -1;\n    } else if (array.contains) {\n      // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains`\n      return array.contains(item);\n    }\n  }\n\n  return false;\n}\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\n\n\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function (memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\n\n\nfunction from(collection) {\n  var result = [];\n  var length = collection.length;\n  var idx = -1;\n\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n\n  return result;\n}\n/**\n * returns whether list is empty or not\n */\n\n\nfunction lists_isEmpty(array) {\n  return !array || !array.length;\n}\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\n\n\nfunction clusterBy(array, fn) {\n  if (!array.length) {\n    return [];\n  }\n\n  var aTail = tail(array);\n  return aTail.reduce(function (memo, v) {\n    var aLast = lists_last(memo);\n\n    if (fn(lists_last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n\n    return memo;\n  }, [[lists_head(array)]]);\n}\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\n\n\nfunction compact(array) {\n  var aResult = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) {\n      aResult.push(array[idx]);\n    }\n  }\n\n  return aResult;\n}\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\n\n\nfunction unique(array) {\n  var results = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n/**\n * returns next item.\n * @param {Array} array\n */\n\n\nfunction lists_next(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx + 1];\n  }\n\n  return null;\n}\n/**\n * returns prev item.\n * @param {Array} array\n */\n\n\nfunction prev(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx - 1];\n  }\n\n  return null;\n}\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\n\n\n/* harmony default export */ var lists = ({\n  head: lists_head,\n  last: lists_last,\n  initial: initial,\n  tail: tail,\n  prev: prev,\n  next: lists_next,\n  find: find,\n  contains: contains,\n  all: lists_all,\n  sum: sum,\n  from: from,\n  isEmpty: lists_isEmpty,\n  clusterBy: clusterBy,\n  compact: compact,\n  unique: unique\n});\n// CONCATENATED MODULE: ./src/js/base/core/dom.js\n\n\n\n\nvar NBSP_CHAR = String.fromCharCode(160);\nvar ZERO_WIDTH_NBSP_CHAR = \"\\uFEFF\";\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction isEditable(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-editable');\n}\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction isControlSizing(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-control-sizing');\n}\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\n\n\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function (node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\n\n\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\n\n\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\n\n\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  } // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n\n\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nvar isPre = makePredByNodeName('PRE');\nvar isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nvar isTable = makePredByNodeName('TABLE');\nvar isData = makePredByNodeName('DATA');\n\nfunction dom_isInline(node) {\n  return !isBodyContainer(node) && !isList(node) && !isHr(node) && !isPara(node) && !isTable(node) && !isBlockquote(node) && !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nvar isHr = makePredByNodeName('HR');\n\nfunction dom_isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nvar isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return dom_isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nvar isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return dom_isInline(node) && !!dom_ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return dom_isInline(node) && !dom_ancestor(node, isPara);\n}\n\nvar isBody = makePredByNodeName('BODY');\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\n\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB || nodeA.previousSibling === nodeB;\n}\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\n\n\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n  var siblings = [];\n\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n\n  siblings.push(node);\n\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n\n  return siblings;\n}\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\n\n\nvar blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\n\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n/**\n * returns whether deepest child node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction deepestChildIsEmpty(node) {\n  do {\n    if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break;\n  } while (node = node.firstElementChild);\n\n  return dom_isEmpty(node);\n}\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction dom_isEmpty(node) {\n  var len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\n\n\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction dom_ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) {\n      break;\n    }\n\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n  var ancestors = [];\n  dom_ancestor(node, function (el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n/**\n * find farthest ancestor predicate hit\n */\n\n\nfunction lastAncestor(node, pred) {\n  var ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\n\n\nfunction dom_commonAncestor(nodeA, nodeB) {\n  var ancestors = listAncestor(nodeA);\n\n  for (var n = nodeB; n; n = n.parentNode) {\n    if (ancestors.indexOf(n) > -1) return n;\n  }\n\n  return null; // difference document area\n}\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listDescendant(node, pred) {\n  var descendants = [];\n  pred = pred || func.ok; // start DFS(depth first search) with node\n\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n\n    for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\n\n\nfunction wrap(node, wrapperName) {\n  var parent = node.parentNode;\n  var wrapper = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<' + wrapperName + '>')[0];\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n  return wrapper;\n}\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\n\n\nfunction insertAfter(node, preceding) {\n  var next = preceding.nextSibling;\n  var parent = preceding.parentNode;\n\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n\n  return node;\n}\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\n\n\nfunction appendChildNodes(node, aChild) {\n  external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(aChild, function (idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction dom_isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== 0) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && dom_isLeftEdgeOf(point.node, ancestor);\n}\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\n\n\nfunction dom_position(node) {\n  var offset = 0;\n\n  while (node = node.previousSibling) {\n    offset += 1;\n  }\n\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_prevPoint(point, isSkipInnerOffset) {\n  var node;\n  var offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = dom_position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_nextPoint(point, isSkipInnerOffset) {\n  var node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint with empty node\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointWithEmptyNode(point, isSkipInnerOffset) {\n  var node, offset; // if node is empty string node, return current node's sibling.\n\n  if (dom_isEmpty(point.node)) {\n    node = point.node.nextSibling;\n    offset = 0;\n    return {\n      node: node,\n      offset: offset\n    };\n  }\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    } // if next node is editable, return current node's sibling node.\n\n\n    if (isEditable(node)) {\n      node = point.node.nextSibling;\n      offset = 0;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/*\n* returns the next Text node index or 0 if not found.\n*/\n\n\nfunction getNextTextNode(actual) {\n  if (!actual.nextSibling) return undefined;\n  if (actual.parent !== actual.nextSibling.parent) return undefined;\n  if (isText(actual.nextSibling)) return actual.nextSibling;\n  return getNextTextNode(actual.nextSibling);\n}\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\n\n\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || dom_isEmpty(point.node)) {\n    return true;\n  }\n\n  var leftNode = point.node.childNodes[point.offset - 1];\n  var rightNode = point.node.childNodes[point.offset];\n\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_prevPoint(point);\n  }\n\n  return null;\n}\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_nextPoint(point);\n  }\n\n  return null;\n}\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && ch !== ' ' && ch !== NBSP_CHAR;\n}\n/**\n * returns whether point has space or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isSpacePoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch === ' ' || ch === NBSP_CHAR;\n}\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\n\n\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  var point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    var isSkipOffset = isSkipInnerOffset && startPoint.node !== point.node && endPoint.node !== point.node;\n    point = nextPointWithEmptyNode(point, isSkipOffset);\n  }\n}\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\n\n\nfunction makeOffsetPath(ancestor, node) {\n  var ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(dom_position).reverse();\n}\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\n\n\nfunction fromOffsetPath(ancestor, offsets) {\n  var current = ancestor;\n\n  for (var i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n\n  return current;\n}\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @param {Boolean} [options.isDiscardEmptySplits] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitNode(point, options) {\n  var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n  var isDiscardEmptySplits = options && options.isDiscardEmptySplits;\n\n  if (isDiscardEmptySplits) {\n    isSkipPaddingBlankHTML = true;\n  } // edge case\n\n\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  } // split #text\n\n\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    var childNode = point.node.childNodes[point.offset];\n    var clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    if (isDiscardEmptySplits) {\n      if (dom_isEmpty(point.node)) {\n        remove(point.node);\n      }\n\n      if (dom_isEmpty(clone)) {\n        remove(clone);\n        return point.node.nextSibling;\n      }\n    }\n\n    return clone;\n  }\n}\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  var ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function (node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? dom_position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\n\n\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  var pred = isInline ? isPara : isBodyContainer;\n  var ancestors = listAncestor(point.node, pred);\n  var topAncestor = lists.last(ancestors) || point.node;\n  var splitRoot, container;\n\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  } // if splitRoot is exists, split with splitTree\n\n\n  var pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  }); // if container is point.node, find pivot with point.offset\n\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction dom_create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\n\n\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) {\n    return;\n  }\n\n  if (node.removeNode) {\n    return node.removeNode(isRemoveChild);\n  }\n\n  var parent = node.parentNode;\n\n  if (!isRemoveChild) {\n    var nodes = [];\n\n    for (var i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (var _i = 0, _len = nodes.length; _i < _len; _i++) {\n      parent.insertBefore(nodes[_i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\n\n\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    var parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\n\n\nfunction dom_replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  var newNode = dom_create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n  return newNode;\n}\n\nvar isTextarea = makePredByNodeName('TEXTAREA');\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\n\nfunction dom_value($node, stripLinebreaks) {\n  var val = isTextarea($node[0]) ? $node.val() : $node.html();\n\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n\n  return val;\n}\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\n\n\nfunction dom_html($node, isNewlineOnBlock) {\n  var markup = dom_value($node);\n\n  if (isNewlineOnBlock) {\n    var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function (match, endSlash, name) {\n      name = name.toUpperCase();\n      var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && !!endSlash;\n      var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n      return match + (isEndOfInlineContainer || isBlockNode ? '\\n' : '');\n    });\n    markup = markup.trim();\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  var $placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(placeholder);\n  var pos = $placeholder.offset();\n  var height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.off(key, events[key]);\n  });\n}\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\n\n\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\n/* harmony default export */ var dom = ({\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR: NBSP_CHAR,\n\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n\n  /** @property {String} blank */\n  blank: blankHTML,\n\n  /** @property {String} emptyPara */\n  emptyPara: \"<p>\".concat(blankHTML, \"</p>\"),\n  makePredByNodeName: makePredByNodeName,\n  isEditable: isEditable,\n  isControlSizing: isControlSizing,\n  isText: isText,\n  isElement: isElement,\n  isVoid: isVoid,\n  isPara: isPara,\n  isPurePara: isPurePara,\n  isHeading: isHeading,\n  isInline: dom_isInline,\n  isBlock: func.not(dom_isInline),\n  isBodyInline: isBodyInline,\n  isBody: isBody,\n  isParaInline: isParaInline,\n  isPre: isPre,\n  isList: isList,\n  isTable: isTable,\n  isData: isData,\n  isCell: dom_isCell,\n  isBlockquote: isBlockquote,\n  isBodyContainer: isBodyContainer,\n  isAnchor: isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi: isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea: isTextarea,\n  deepestChildIsEmpty: deepestChildIsEmpty,\n  isEmpty: dom_isEmpty,\n  isEmptyAnchor: func.and(isAnchor, dom_isEmpty),\n  isClosestSibling: isClosestSibling,\n  withClosestSiblings: withClosestSiblings,\n  nodeLength: nodeLength,\n  isLeftEdgePoint: isLeftEdgePoint,\n  isRightEdgePoint: isRightEdgePoint,\n  isEdgePoint: isEdgePoint,\n  isLeftEdgeOf: dom_isLeftEdgeOf,\n  isRightEdgeOf: isRightEdgeOf,\n  isLeftEdgePointOf: isLeftEdgePointOf,\n  isRightEdgePointOf: isRightEdgePointOf,\n  prevPoint: dom_prevPoint,\n  nextPoint: dom_nextPoint,\n  nextPointWithEmptyNode: nextPointWithEmptyNode,\n  isSamePoint: isSamePoint,\n  isVisiblePoint: isVisiblePoint,\n  prevPointUntil: prevPointUntil,\n  nextPointUntil: nextPointUntil,\n  isCharPoint: isCharPoint,\n  isSpacePoint: isSpacePoint,\n  walkPoint: walkPoint,\n  ancestor: dom_ancestor,\n  singleChildAncestor: singleChildAncestor,\n  listAncestor: listAncestor,\n  lastAncestor: lastAncestor,\n  listNext: listNext,\n  listPrev: listPrev,\n  listDescendant: listDescendant,\n  commonAncestor: dom_commonAncestor,\n  wrap: wrap,\n  insertAfter: insertAfter,\n  appendChildNodes: appendChildNodes,\n  position: dom_position,\n  hasChildren: hasChildren,\n  makeOffsetPath: makeOffsetPath,\n  fromOffsetPath: fromOffsetPath,\n  splitTree: splitTree,\n  splitPoint: splitPoint,\n  create: dom_create,\n  createText: createText,\n  remove: remove,\n  removeWhile: removeWhile,\n  replace: dom_replace,\n  html: dom_html,\n  value: dom_value,\n  posFromPlaceholder: posFromPlaceholder,\n  attachEvents: attachEvents,\n  detachEvents: detachEvents,\n  isCustomStyleTag: isCustomStyleTag\n});\n// CONCATENATED MODULE: ./src/js/base/Context.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Context_Context = /*#__PURE__*/function () {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  function Context($note, options) {\n    _classCallCheck(this, Context);\n\n    this.$note = $note;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, options); // init ui with options\n\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui_template(this.options);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.initialize();\n  }\n  /**\n   * create layout and initialize modules and other resources\n   */\n\n\n  _createClass(Context, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.layoutInfo = this.ui.createLayout(this.$note);\n\n      this._initialize();\n\n      this.$note.hide();\n      return this;\n    }\n    /**\n     * destroy modules and other resources and remove layout\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._destroy();\n\n      this.$note.removeData('summernote');\n      this.ui.removeLayout(this.$note, this.layoutInfo);\n    }\n    /**\n     * destory modules and other resources and initialize it again\n     */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var disabled = this.isDisabled();\n      this.code(dom.emptyPara);\n\n      this._destroy();\n\n      this._initialize();\n\n      if (disabled) {\n        this.disable();\n      }\n    }\n  }, {\n    key: \"_initialize\",\n    value: function _initialize() {\n      var _this = this;\n\n      // set own id\n      this.options.id = func.uniqueId(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now()); // set default container for tooltips, popovers, and dialogs\n\n      this.options.container = this.options.container || this.layoutInfo.editor; // add optional buttons\n\n      var buttons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        _this.memo('button.' + key, buttons[key]);\n      });\n      var modules = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.modules, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.plugins || {}); // add and initialize modules\n\n      Object.keys(modules).forEach(function (key) {\n        _this.module(key, modules[key], true);\n      });\n      Object.keys(this.modules).forEach(function (key) {\n        _this.initializeModule(key);\n      });\n    }\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      var _this2 = this;\n\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        _this2.removeModule(key);\n      });\n      Object.keys(this.memos).forEach(function (key) {\n        _this2.removeMemo(key);\n      }); // trigger custom onDestroy callback\n\n      this.triggerEvent('destroy', this);\n    }\n  }, {\n    key: \"code\",\n    value: function code(html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.invoke('codeview.sync', html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n\n        this.$note.val(html);\n        this.triggerEvent('change', html, this.layoutInfo.editable);\n      }\n    }\n  }, {\n    key: \"isDisabled\",\n    value: function isDisabled() {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    }\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n      this.triggerEvent('disable', false);\n      this.options.editing = true;\n    }\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.options.editing = false;\n      this.invoke('toolbar.deactivate', true);\n      this.triggerEvent('disable', true);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n\n      if (callback) {\n        callback.apply(this.$note[0], args);\n      }\n\n      this.$note.trigger('summernote.' + namespace, args);\n    }\n  }, {\n    key: \"initializeModule\",\n    value: function initializeModule(key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n\n      if (!module.shouldInitialize()) {\n        return;\n      } // initialize module\n\n\n      if (module.initialize) {\n        module.initialize();\n      } // attach events\n\n\n      if (module.events) {\n        dom.attachEvents(this.$note, module.events);\n      }\n    }\n  }, {\n    key: \"module\",\n    value: function module(key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    }\n  }, {\n    key: \"removeModule\",\n    value: function removeModule(key) {\n      var module = this.modules[key];\n\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents(this.$note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    }\n  }, {\n    key: \"memo\",\n    value: function memo(key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n\n      this.memos[key] = obj;\n    }\n  }, {\n    key: \"removeMemo\",\n    value: function removeMemo(key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    }\n    /**\n     * Some buttons need to change their visual style immediately once they get pressed\n     */\n\n  }, {\n    key: \"createInvokeHandlerAndUpdateState\",\n    value: function createInvokeHandlerAndUpdateState(namespace, value) {\n      var _this3 = this;\n\n      return function (event) {\n        _this3.createInvokeHandler(namespace, value)(event);\n\n        _this3.invoke('buttons.updateCurrentStyle');\n      };\n    }\n  }, {\n    key: \"createInvokeHandler\",\n    value: function createInvokeHandler(namespace, value) {\n      var _this4 = this;\n\n      return function (event) {\n        event.preventDefault();\n        var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n\n        _this4.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n      };\n    }\n  }, {\n    key: \"invoke\",\n    value: function invoke() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && lists.head(splits);\n      var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n      var module = this.modules[moduleName || 'editor'];\n\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    }\n  }]);\n\n  return Context;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/summernote.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function summernote() {\n    var type = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.type(lists.head(arguments));\n    var isExternalAPICalled = type === 'string';\n    var hasInitOptions = type === 'object';\n    var options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options, hasInitOptions ? lists.head(arguments) : {}); // Update options\n\n    options.langInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'], external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang[options.lang]);\n    options.icons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n    this.each(function (idx, note) {\n      var $note = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(note);\n\n      if (!$note.data('summernote')) {\n        var context = new Context_Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n    var $note = this.first();\n\n    if ($note.length) {\n      var context = $note.data('summernote');\n\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/range.js\nfunction range_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction range_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction range_createClass(Constructor, protoProps, staticProps) { if (protoProps) range_defineProperties(Constructor.prototype, protoProps); if (staticProps) range_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\n\nfunction textRangeToPoint(textRange, isStart) {\n  var container = textRange.parentElement();\n  var offset;\n  var tester = document.body.createTextRange();\n  var prevContainer;\n  var childNodes = lists.from(container.childNodes);\n\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n\n    tester.moveToElementText(childNodes[offset]);\n\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    var textRangeStart = document.body.createTextRange();\n    var curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n    var pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    } // [workaround] enforce IE to re-reference curTextNode, hack\n\n\n    var dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\n\n\nfunction pointToTextRange(point) {\n  var textRangeInfo = function textRangeInfo(container, offset) {\n    var node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      var prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  var textRange = document.body.createTextRange();\n  var info = textRangeInfo(point.node, point.offset);\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\n\n\nvar range_WrappedRange = /*#__PURE__*/function () {\n  function WrappedRange(sc, so, ec, eo) {\n    range_classCallCheck(this, WrappedRange);\n\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo; // isOnEditable: judge whether range is on editable or not\n\n    this.isOnEditable = this.makeIsOn(dom.isEditable); // isOnList: judge whether range is on list node or not\n\n    this.isOnList = this.makeIsOn(dom.isList); // isOnAnchor: judge whether range is on anchor node or not\n\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor); // isOnCell: judge whether range is on cell node or not\n\n    this.isOnCell = this.makeIsOn(dom.isCell); // isOnData: judge whether range is on data node or not\n\n    this.isOnData = this.makeIsOn(dom.isData);\n  } // nativeRange: get nativeRange from sc, so, ec, eo\n\n\n  range_createClass(WrappedRange, [{\n    key: \"nativeRange\",\n    value: function nativeRange() {\n      if (env.isW3CRangeSupport) {\n        var w3cRange = document.createRange();\n        w3cRange.setStart(this.sc, this.so);\n        w3cRange.setEnd(this.ec, this.eo);\n        return w3cRange;\n      } else {\n        var textRange = pointToTextRange({\n          node: this.sc,\n          offset: this.so\n        });\n        textRange.setEndPoint('EndToEnd', pointToTextRange({\n          node: this.ec,\n          offset: this.eo\n        }));\n        return textRange;\n      }\n    }\n  }, {\n    key: \"getPoints\",\n    value: function getPoints() {\n      return {\n        sc: this.sc,\n        so: this.so,\n        ec: this.ec,\n        eo: this.eo\n      };\n    }\n  }, {\n    key: \"getStartPoint\",\n    value: function getStartPoint() {\n      return {\n        node: this.sc,\n        offset: this.so\n      };\n    }\n  }, {\n    key: \"getEndPoint\",\n    value: function getEndPoint() {\n      return {\n        node: this.ec,\n        offset: this.eo\n      };\n    }\n    /**\n     * select update visible range\n     */\n\n  }, {\n    key: \"select\",\n    value: function select() {\n      var nativeRng = this.nativeRange();\n\n      if (env.isW3CRangeSupport) {\n        var selection = document.getSelection();\n\n        if (selection.rangeCount > 0) {\n          selection.removeAllRanges();\n        }\n\n        selection.addRange(nativeRng);\n      } else {\n        nativeRng.select();\n      }\n\n      return this;\n    }\n    /**\n     * Moves the scrollbar to start container(sc) of current range\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"scrollIntoView\",\n    value: function scrollIntoView(container) {\n      var height = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(container).height();\n\n      if (container.scrollTop + height < this.sc.offsetTop) {\n        container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n      }\n\n      return this;\n    }\n    /**\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"normalize\",\n    value: function normalize() {\n      /**\n       * @param {BoundaryPoint} point\n       * @param {Boolean} isLeftToRight - true: prefer to choose right node\n       *                                - false: prefer to choose left node\n       * @return {BoundaryPoint}\n       */\n      var getVisiblePoint = function getVisiblePoint(point, isLeftToRight) {\n        if (!point) {\n          return point;\n        } // Just use the given point [XXX:Adhoc]\n        //  - case 01. if the point is on the middle of the node\n        //  - case 02. if the point is on the right edge and prefer to choose left node\n        //  - case 03. if the point is on the left edge and prefer to choose right node\n        //  - case 04. if the point is on the right edge and prefer to choose right node but the node is void\n        //  - case 05. if the point is on the left edge and prefer to choose left node but the node is void\n        //  - case 06. if the point is on the block node and there is no children\n\n\n        if (dom.isVisiblePoint(point)) {\n          if (!dom.isEdgePoint(point) || dom.isRightEdgePoint(point) && !isLeftToRight || dom.isLeftEdgePoint(point) && isLeftToRight || dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling) || dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling) || dom.isBlock(point.node) && dom.isEmpty(point.node)) {\n            return point;\n          }\n        } // point on block's edge\n\n\n        var block = dom.ancestor(point.node, dom.isBlock);\n        var hasRightNode = false;\n\n        if (!hasRightNode) {\n          var prevPoint = dom.prevPoint(point) || {\n            node: null\n          };\n          hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight;\n        }\n\n        var hasLeftNode = false;\n\n        if (!hasLeftNode) {\n          var _nextPoint = dom.nextPoint(point) || {\n            node: null\n          };\n\n          hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(_nextPoint.node)) && isLeftToRight;\n        }\n\n        if (hasRightNode || hasLeftNode) {\n          // returns point already on visible point\n          if (dom.isVisiblePoint(point)) {\n            return point;\n          } // reverse direction\n\n\n          isLeftToRight = !isLeftToRight;\n        }\n\n        var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n        return nextPoint || point;\n      };\n\n      var endPoint = getVisiblePoint(this.getEndPoint(), false);\n      var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns matched nodes on range\n     *\n     * @param {Function} [pred] - predicate function\n     * @param {Object} [options]\n     * @param {Boolean} [options.includeAncestor]\n     * @param {Boolean} [options.fullyContains]\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"nodes\",\n    value: function nodes(pred, options) {\n      pred = pred || func.ok;\n      var includeAncestor = options && options.includeAncestor;\n      var fullyContains = options && options.fullyContains; // TODO compare points and sort\n\n      var startPoint = this.getStartPoint();\n      var endPoint = this.getEndPoint();\n      var nodes = [];\n      var leftEdgeNodes = [];\n      dom.walkPoint(startPoint, endPoint, function (point) {\n        if (dom.isEditable(point.node)) {\n          return;\n        }\n\n        var node;\n\n        if (fullyContains) {\n          if (dom.isLeftEdgePoint(point)) {\n            leftEdgeNodes.push(point.node);\n          }\n\n          if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n            node = point.node;\n          }\n        } else if (includeAncestor) {\n          node = dom.ancestor(point.node, pred);\n        } else {\n          node = point.node;\n        }\n\n        if (node && pred(node)) {\n          nodes.push(node);\n        }\n      }, true);\n      return lists.unique(nodes);\n    }\n    /**\n     * returns commonAncestor of range\n     * @return {Element} - commonAncestor\n     */\n\n  }, {\n    key: \"commonAncestor\",\n    value: function commonAncestor() {\n      return dom.commonAncestor(this.sc, this.ec);\n    }\n    /**\n     * returns expanded range by pred\n     *\n     * @param {Function} pred - predicate function\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"expand\",\n    value: function expand(pred) {\n      var startAncestor = dom.ancestor(this.sc, pred);\n      var endAncestor = dom.ancestor(this.ec, pred);\n\n      if (!startAncestor && !endAncestor) {\n        return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n      }\n\n      var boundaryPoints = this.getPoints();\n\n      if (startAncestor) {\n        boundaryPoints.sc = startAncestor;\n        boundaryPoints.so = 0;\n      }\n\n      if (endAncestor) {\n        boundaryPoints.ec = endAncestor;\n        boundaryPoints.eo = dom.nodeLength(endAncestor);\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * @param {Boolean} isCollapseToStart\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"collapse\",\n    value: function collapse(isCollapseToStart) {\n      if (isCollapseToStart) {\n        return new WrappedRange(this.sc, this.so, this.sc, this.so);\n      } else {\n        return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n      }\n    }\n    /**\n     * splitText on range\n     */\n\n  }, {\n    key: \"splitText\",\n    value: function splitText() {\n      var isSameContainer = this.sc === this.ec;\n      var boundaryPoints = this.getPoints();\n\n      if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n        this.ec.splitText(this.eo);\n      }\n\n      if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n        boundaryPoints.sc = this.sc.splitText(this.so);\n        boundaryPoints.so = 0;\n\n        if (isSameContainer) {\n          boundaryPoints.ec = boundaryPoints.sc;\n          boundaryPoints.eo = this.eo - this.so;\n        }\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * delete contents on range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"deleteContents\",\n    value: function deleteContents() {\n      if (this.isCollapsed()) {\n        return this;\n      }\n\n      var rng = this.splitText();\n      var nodes = rng.nodes(null, {\n        fullyContains: true\n      }); // find new cursor point\n\n      var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n        return !lists.contains(nodes, point.node);\n      });\n      var emptyParents = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(nodes, function (idx, node) {\n        // find empty parents\n        var parent = node.parentNode;\n\n        if (point.node !== parent && dom.nodeLength(parent) === 1) {\n          emptyParents.push(parent);\n        }\n\n        dom.remove(node, false);\n      }); // remove empty parents\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyParents, function (idx, node) {\n        dom.remove(node, false);\n      });\n      return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();\n    }\n    /**\n     * makeIsOn: return isOn(pred) function\n     */\n\n  }, {\n    key: \"makeIsOn\",\n    value: function makeIsOn(pred) {\n      return function () {\n        var ancestor = dom.ancestor(this.sc, pred);\n        return !!ancestor && ancestor === dom.ancestor(this.ec, pred);\n      };\n    }\n    /**\n     * @param {Function} pred\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isLeftEdgeOf\",\n    value: function isLeftEdgeOf(pred) {\n      if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n        return false;\n      }\n\n      var node = dom.ancestor(this.sc, pred);\n      return node && dom.isLeftEdgeOf(this.sc, node);\n    }\n    /**\n     * returns whether range was collapsed or not\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    value: function isCollapsed() {\n      return this.sc === this.ec && this.so === this.eo;\n    }\n    /**\n     * wrap inline nodes which children of body with paragraph\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"wrapBodyInlineWithPara\",\n    value: function wrapBodyInlineWithPara() {\n      if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n        this.sc.innerHTML = dom.emptyPara;\n        return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n      }\n      /**\n       * [workaround] firefox often create range on not visible point. so normalize here.\n       *  - firefox: |<p>text</p>|\n       *  - chrome: <p>|text|</p>\n       */\n\n\n      var rng = this.normalize();\n\n      if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n        return rng;\n      } // find inline top ancestor\n\n\n      var topAncestor;\n\n      if (dom.isInline(rng.sc)) {\n        var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n        topAncestor = lists.last(ancestors);\n\n        if (!dom.isInline(topAncestor)) {\n          topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n        }\n      } else {\n        topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n      }\n\n      if (topAncestor) {\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); // wrap with paragraph\n\n        if (inlineSiblings.length) {\n          var para = dom.wrap(lists.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, lists.tail(inlineSiblings));\n        }\n      }\n\n      return this.normalize();\n    }\n    /**\n     * insert node at current cursor\n     *\n     * @param {Node} node\n     * @return {Node}\n     */\n\n  }, {\n    key: \"insertNode\",\n    value: function insertNode(node) {\n      var rng = this;\n\n      if (dom.isText(node) || dom.isInline(node)) {\n        rng = this.wrapBodyInlineWithPara().deleteContents();\n      }\n\n      var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n      if (info.rightNode) {\n        info.rightNode.parentNode.insertBefore(node, info.rightNode);\n\n        if (dom.isEmpty(info.rightNode) && dom.isPara(node)) {\n          info.rightNode.parentNode.removeChild(info.rightNode);\n        }\n      } else {\n        info.container.appendChild(node);\n      }\n\n      return node;\n    }\n    /**\n     * insert html at current cursor\n     */\n\n  }, {\n    key: \"pasteHTML\",\n    value: function pasteHTML(markup) {\n      markup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.trim(markup);\n      var contentsContainer = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').html(markup)[0];\n      var childNodes = lists.from(contentsContainer.childNodes); // const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n      var rng = this;\n      var reversed = false;\n\n      if (rng.so >= 0) {\n        childNodes = childNodes.reverse();\n        reversed = true;\n      }\n\n      childNodes = childNodes.map(function (childNode) {\n        return rng.insertNode(childNode);\n      });\n\n      if (reversed) {\n        childNodes = childNodes.reverse();\n      }\n\n      return childNodes;\n    }\n    /**\n     * returns text in range\n     *\n     * @return {String}\n     */\n\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var nativeRng = this.nativeRange();\n      return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n    }\n    /**\n     * returns range for word before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordRange\",\n    value: function getWordRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      if (!dom.isCharPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        return !dom.isCharPoint(point);\n      });\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordsRange\",\n    value: function getWordsRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      var isNotTextPoint = function isNotTextPoint(point) {\n        return !dom.isCharPoint(point) && !dom.isSpacePoint(point);\n      };\n\n      if (isNotTextPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint);\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, isNotTextPoint);\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor that match with a Regex\n     *\n     * example:\n     *  range: 'hi @Peter Pan'\n     *  regex: '/@[a-z ]+/i'\n     *  return range: '@Peter Pan'\n     *\n     * @param {RegExp} [regex]\n     * @return {WrappedRange|null}\n     */\n\n  }, {\n    key: \"getWordsMatchRange\",\n    value: function getWordsMatchRange(regex) {\n      var endPoint = this.getEndPoint();\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) {\n          return true;\n        }\n\n        var rng = new WrappedRange(point.node, point.offset, endPoint.node, endPoint.offset);\n        var result = regex.exec(rng.toString());\n        return result && result.index === 0;\n      });\n      var rng = new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n      var text = rng.toString();\n      var result = regex.exec(text);\n\n      if (result && result[0].length === text.length) {\n        return rng;\n      } else {\n        return null;\n      }\n    }\n    /**\n     * create offsetPath bookmark\n     *\n     * @param {Node} editable\n     */\n\n  }, {\n    key: \"bookmark\",\n    value: function bookmark(editable) {\n      return {\n        s: {\n          path: dom.makeOffsetPath(editable, this.sc),\n          offset: this.so\n        },\n        e: {\n          path: dom.makeOffsetPath(editable, this.ec),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * create offsetPath bookmark base on paragraph\n     *\n     * @param {Node[]} paras\n     */\n\n  }, {\n    key: \"paraBookmark\",\n    value: function paraBookmark(paras) {\n      return {\n        s: {\n          path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n          offset: this.so\n        },\n        e: {\n          path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * getClientRects\n     * @return {Rect[]}\n     */\n\n  }, {\n    key: \"getClientRects\",\n    value: function getClientRects() {\n      var nativeRng = this.nativeRange();\n      return nativeRng.getClientRects();\n    }\n  }]);\n\n  return WrappedRange;\n}();\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\n\n\n/* harmony default export */ var range = ({\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function create(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) {\n      // collapsed\n      ec = sc;\n      eo = so;\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else {\n      var wrappedRange = this.createFromSelection();\n\n      if (!wrappedRange && arguments.length === 1) {\n        var bodyElement = arguments[0];\n\n        if (dom.isEditable(bodyElement)) {\n          bodyElement = bodyElement.lastChild;\n        }\n\n        return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML);\n      }\n\n      return wrappedRange;\n    }\n  },\n  createFromBodyElement: function createFromBodyElement(bodyElement) {\n    var isCollapseToStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var wrappedRange = this.createFromNode(bodyElement);\n    return wrappedRange.collapse(isCollapseToStart);\n  },\n  createFromSelection: function createFromSelection() {\n    var sc, so, ec, eo;\n\n    if (env.isW3CRangeSupport) {\n      var selection = document.getSelection();\n\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      var nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else {\n      // IE8: TextRange\n      var textRange = document.selection.createRange();\n      var textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      var textRangeStart = textRange;\n      textRangeStart.collapse(true);\n      var startPoint = textRangeToPoint(textRangeStart, true);\n      var endPoint = textRangeToPoint(textRangeEnd, false); // same visible point case: range was collapsed.\n\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function createFromNode(node) {\n    var sc = node;\n    var so = 0;\n    var ec = node;\n    var eo = dom.nodeLength(ec); // browsers can't target a picture or void node\n\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function createFromNodeBefore(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function createFromNodeAfter(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function createFromBookmark(editable, bookmark) {\n    var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    var so = bookmark.s.offset;\n    var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    var eo = bookmark.e.offset;\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function createFromParaBookmark(bookmark, paras) {\n    var so = bookmark.s.offset;\n    var eo = bookmark.e.offset;\n    var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n    return new range_WrappedRange(sc, so, ec, eo);\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/key.js\n\n\nvar KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'ESCAPE': 27,\n  'SPACE': 32,\n  'DELETE': 46,\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221,\n  // Navigation\n  'HOME': 36,\n  'END': 35,\n  'PAGEUP': 33,\n  'PAGEDOWN': 34\n};\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\n\n/* harmony default export */ var core_key = ({\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: function isEdit(keyCode) {\n    return lists.contains([KEY_MAP.BACKSPACE, KEY_MAP.TAB, KEY_MAP.ENTER, KEY_MAP.SPACE, KEY_MAP.DELETE], keyCode);\n  },\n\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: function isMove(keyCode) {\n    return lists.contains([KEY_MAP.LEFT, KEY_MAP.UP, KEY_MAP.RIGHT, KEY_MAP.DOWN], keyCode);\n  },\n\n  /**\n   * @method isNavigation\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isNavigation: function isNavigation(keyCode) {\n    return lists.contains([KEY_MAP.HOME, KEY_MAP.END, KEY_MAP.PAGEUP, KEY_MAP.PAGEDOWN], keyCode);\n  },\n\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n});\n// CONCATENATED MODULE: ./src/js/base/core/async.js\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\n\nfunction readFileAsDataURL(file) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(new FileReader(), {\n      onload: function onload(e) {\n        var dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: function onerror(err) {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\n\nfunction createImage(url) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    var $img = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<img>');\n    $img.one('load', function () {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', function () {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n// CONCATENATED MODULE: ./src/js/base/editing/History.js\nfunction History_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction History_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction History_createClass(Constructor, protoProps, staticProps) { if (protoProps) History_defineProperties(Constructor.prototype, protoProps); if (staticProps) History_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar History_History = /*#__PURE__*/function () {\n  function History(context) {\n    History_classCallCheck(this, History);\n\n    this.stack = [];\n    this.stackOffset = -1;\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n    this.editable = this.$editable[0];\n  }\n\n  History_createClass(History, [{\n    key: \"makeSnapshot\",\n    value: function makeSnapshot() {\n      var rng = range.create(this.editable);\n      var emptyBookmark = {\n        s: {\n          path: [],\n          offset: 0\n        },\n        e: {\n          path: [],\n          offset: 0\n        }\n      };\n      return {\n        contents: this.$editable.html(),\n        bookmark: rng && rng.isOnEditable() ? rng.bookmark(this.editable) : emptyBookmark\n      };\n    }\n  }, {\n    key: \"applySnapshot\",\n    value: function applySnapshot(snapshot) {\n      if (snapshot.contents !== null) {\n        this.$editable.html(snapshot.contents);\n      }\n\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(this.editable, snapshot.bookmark).select();\n      }\n    }\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n\n  }, {\n    key: \"rewind\",\n    value: function rewind() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      } // Return to the first available snapshot.\n\n\n      this.stackOffset = 0; // Apply that snapshot.\n\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n    /**\n    *  @method commit\n    *  Resets history stack, but keeps current editor's content.\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Clear the editable area.\n\n      this.$editable.html(''); // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (this.stackOffset > 0) {\n        this.stackOffset--;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      if (this.stack.length - 1 > this.stackOffset) {\n        this.stackOffset++;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * recorded undo\n     */\n\n  }, {\n    key: \"recordUndo\",\n    value: function recordUndo() {\n      this.stackOffset++; // Wash out stack after stackOffset\n\n      if (this.stack.length > this.stackOffset) {\n        this.stack = this.stack.slice(0, this.stackOffset);\n      } // Create new snapshot and push it to the end\n\n\n      this.stack.push(this.makeSnapshot()); // If the stack size reachs to the limit, then slice it\n\n      if (this.stack.length > this.context.options.historyLimit) {\n        this.stack.shift();\n        this.stackOffset -= 1;\n      }\n    }\n  }]);\n\n  return History;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Style.js\nfunction Style_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Style_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Style_createClass(Constructor, protoProps, staticProps) { if (protoProps) Style_defineProperties(Constructor.prototype, protoProps); if (staticProps) Style_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Style_Style = /*#__PURE__*/function () {\n  function Style() {\n    Style_classCallCheck(this, Style);\n  }\n\n  Style_createClass(Style, [{\n    key: \"jQueryCSS\",\n\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    value: function jQueryCSS($obj, propertyNames) {\n      if (env.jqueryVersion < 1.9) {\n        var result = {};\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n\n      return $obj.css(propertyNames);\n    }\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"fromNode\",\n    value: function fromNode($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = this.jQueryCSS($node, properties) || {};\n      var fontSize = $node[0].style.fontSize || styleInfo['font-size'];\n      styleInfo['font-size'] = parseInt(fontSize, 10);\n      styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/);\n      return styleInfo;\n    }\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n\n  }, {\n    key: \"stylePara\",\n    value: function stylePara(rng, styleInfo) {\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css(styleInfo);\n      });\n    }\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"styleNodes\",\n    value: function styleNodes(rng, options) {\n      rng = rng.splitText();\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes(); // compose with partial contains predication\n\n          pred = func.and(pred, function (node) {\n            return lists.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = lists.head(siblings);\n          var tails = lists.tail(siblings);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return lists.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    }\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n\n  }, {\n    key: \"current\",\n    value: function current(rng) {\n      var $cont = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont); // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n\n      try {\n        styleInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n          'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n        });\n      } catch (e) {} // eslint-disable-next-line\n      // list-style-type to list-style(unordered, ordered)\n\n\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n      return styleInfo;\n    }\n  }]);\n\n  return Style;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Bullet.js\nfunction Bullet_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Bullet_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Bullet_createClass(Constructor, protoProps, staticProps) { if (protoProps) Bullet_defineProperties(Constructor.prototype, protoProps); if (staticProps) Bullet_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Bullet_Bullet = /*#__PURE__*/function () {\n  function Bullet() {\n    Bullet_classCallCheck(this, Bullet);\n  }\n\n  Bullet_createClass(Bullet, [{\n    key: \"insertOrderedList\",\n\n    /**\n     * toggle ordered list\n     */\n    value: function insertOrderedList(editable) {\n      this.toggleList('OL', editable);\n    }\n    /**\n     * toggle unordered list\n     */\n\n  }, {\n    key: \"insertUnorderedList\",\n    value: function insertUnorderedList(editable) {\n      this.toggleList('UL', editable);\n    }\n    /**\n     * indent\n     */\n\n  }, {\n    key: \"indent\",\n    value: function indent(editable) {\n      var _this = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          var previousList = _this.findList(head.previousSibling);\n\n          if (previousList) {\n            paras.map(function (para) {\n              return previousList.appendChild(para);\n            });\n          } else {\n            _this.wrapList(paras, head.parentNode.nodeName);\n\n            paras.map(function (para) {\n              return para.parentNode;\n            }).map(function (para) {\n              return _this.appendToPrevious(para);\n            });\n          }\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * outdent\n     */\n\n  }, {\n    key: \"outdent\",\n    value: function outdent(editable) {\n      var _this2 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          _this2.releaseList([paras]);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              val = parseInt(val, 10) || 0;\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n\n  }, {\n    key: \"toggleList\",\n    value: function toggleList(listName, editable) {\n      var _this3 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); // paragraph to list\n\n      if (lists.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(_this3.wrapList(paras, listName));\n        });\n        paras = wrappedParas; // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    }\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"wrapList\",\n    value: function wrapList(paras, listName) {\n      var head = lists.head(paras);\n      var last = lists.last(paras);\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); // P to LI\n\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      }); // append to list(<ul>, <ol>)\n\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    }\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"releaseList\",\n    value: function releaseList(clustereds, isEscapseToBody) {\n      var _this4 = this;\n\n      var releasedParas = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n        var last = lists.last(paras);\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n        var parentItem = headList.parentNode;\n\n        if (headList.parentNode.nodeName === 'LI') {\n          paras.map(function (para) {\n            var newList = _this4.findNextSiblings(para);\n\n            if (parentItem.nextSibling) {\n              parentItem.parentNode.insertBefore(para, parentItem.nextSibling);\n            } else {\n              parentItem.parentNode.appendChild(para);\n            }\n\n            if (newList.length) {\n              _this4.wrapList(newList, headList.nodeName);\n\n              para.appendChild(newList[0].parentNode);\n            }\n          });\n\n          if (headList.children.length === 0) {\n            parentItem.removeChild(headList);\n          }\n\n          if (parentItem.childNodes.length === 0) {\n            parentItem.parentNode.removeChild(parentItem);\n          }\n        } else {\n          var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n            node: last.parentNode,\n            offset: dom.position(last) + 1\n          }, {\n            isSkipPaddingBlankHTML: true\n          }) : null;\n          var middleList = dom.splitTree(headList, {\n            node: head.parentNode,\n            offset: dom.position(head)\n          }, {\n            isSkipPaddingBlankHTML: true\n          });\n          paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : lists.from(middleList.childNodes).filter(dom.isLi); // LI to P\n\n          if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n            paras = paras.map(function (para) {\n              return dom.replace(para, 'P');\n            });\n          }\n\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(lists.from(paras).reverse(), function (idx, para) {\n            dom.insertAfter(para, headList);\n          }); // remove empty lists\n\n          var rootLists = lists.compact([headList, middleList, lastList]);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rootLists, function (idx, rootList) {\n            var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(listNodes.reverse(), function (idx, listNode) {\n              if (!dom.nodeLength(listNode)) {\n                dom.remove(listNode, true);\n              }\n            });\n          });\n        }\n\n        releasedParas = releasedParas.concat(paras);\n      });\n      return releasedParas;\n    }\n    /**\n     * @method appendToPrevious\n     *\n     * Appends list to previous list item, if\n     * none exist it wraps the list in a new list item.\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"appendToPrevious\",\n    value: function appendToPrevious(node) {\n      return node.previousSibling ? dom.appendChildNodes(node.previousSibling, [node]) : this.wrapList([node], 'LI');\n    }\n    /**\n     * @method findList\n     *\n     * Finds an existing list in list item\n     *\n     * @param {HTMLNode} ListItem\n     * @return {Array[]}\n     */\n\n  }, {\n    key: \"findList\",\n    value: function findList(node) {\n      return node ? lists.find(node.children, function (child) {\n        return ['OL', 'UL'].indexOf(child.nodeName) > -1;\n      }) : null;\n    }\n    /**\n     * @method findNextSiblings\n     *\n     * Finds all list item siblings that follow it\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"findNextSiblings\",\n    value: function findNextSiblings(node) {\n      var siblings = [];\n\n      while (node.nextSibling) {\n        siblings.push(node.nextSibling);\n        node = node.nextSibling;\n      }\n\n      return siblings;\n    }\n  }]);\n\n  return Bullet;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Typing.js\nfunction Typing_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Typing_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Typing_createClass(Constructor, protoProps, staticProps) { if (protoProps) Typing_defineProperties(Constructor.prototype, protoProps); if (staticProps) Typing_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\n\nvar Typing_Typing = /*#__PURE__*/function () {\n  function Typing(context) {\n    Typing_classCallCheck(this, Typing);\n\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet_Bullet();\n    this.options = context.options;\n  }\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n\n\n  Typing_createClass(Typing, [{\n    key: \"insertTab\",\n    value: function insertTab(rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n      rng = range.create(tab, tabsize);\n      rng.select();\n    }\n    /**\n     * insert paragraph\n     *\n     * @param {jQuery} $editable\n     * @param {WrappedRange} rng Can be used in unit tests to \"mock\" the range\n     *\n     * blockquoteBreakingLevel\n     *   0 - No break, the new paragraph remains inside the quote\n     *   1 - Break the first blockquote in the ancestors list\n     *   2 - Break all blockquotes, so that the new paragraph is not quoted (this is the default)\n     */\n\n  }, {\n    key: \"insertParagraph\",\n    value: function insertParagraph(editable, rng) {\n      rng = rng || range.create(editable); // deleteContents on range.\n\n      rng = rng.deleteContents(); // Wrap range if it needs to be wrapped by paragraph\n\n      rng = rng.wrapBodyInlineWithPara(); // finding paragraph\n\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n      var nextPara; // on paragraph: split paragraph\n\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isLi(splitRoot) && (dom.isEmpty(splitRoot) || dom.deepestChildIsEmpty(splitRoot))) {\n          // toggle UL/OL and escape\n          this.bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        } else {\n          var blockquote = null;\n\n          if (this.options.blockquoteBreakingLevel === 1) {\n            blockquote = dom.ancestor(splitRoot, dom.isBlockquote);\n          } else if (this.options.blockquoteBreakingLevel === 2) {\n            blockquote = dom.lastAncestor(splitRoot, dom.isBlockquote);\n          }\n\n          if (blockquote) {\n            // We're inside a blockquote and options ask us to break it\n            nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0]; // If the split is right before a <br>, remove it so that there's no \"empty line\"\n            // after the split in the new blockquote created\n\n            if (dom.isRightEdgePoint(rng.getStartPoint()) && dom.isBR(rng.sc.nextSibling)) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(rng.sc.nextSibling).remove();\n            }\n\n            var split = dom.splitTree(blockquote, rng.getStartPoint(), {\n              isDiscardEmptySplits: true\n            });\n\n            if (split) {\n              split.parentNode.insertBefore(nextPara, split);\n            } else {\n              dom.insertAfter(nextPara, blockquote); // There's no split if we were at the end of the blockquote\n            }\n          } else {\n            nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); // not a blockquote, just insert the paragraph\n\n            var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n            emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyAnchors, function (idx, anchor) {\n              dom.remove(anchor);\n            }); // replace empty heading, pre or custom-made styleTag with P tag\n\n            if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n              nextPara = dom.replace(nextPara, 'p');\n            }\n          }\n        } // no paragraph: insert empty paragraph\n\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0];\n\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    }\n  }]);\n\n  return Typing;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Table.js\nfunction Table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Table_createClass(Constructor, protoProps, staticProps) { if (protoProps) Table_defineProperties(Constructor.prototype, protoProps); if (staticProps) Table_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\n\nvar TableResultAction = function TableResultAction(startPoint, where, action, domTable) {\n  var _startPoint = {\n    'colPos': 0,\n    'rowPos': 0\n  };\n  var _virtualTable = [];\n  var _actionCellList = []; /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th') {\n      // Impossible to identify start Cell point\n      return;\n    }\n\n    _startPoint.colPos = startPoint.cellIndex;\n\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      // Impossible to identify start Row point\n      return;\n    }\n\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n\n\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    var objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n\n\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n\n\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    var newCellIndex = cellIndex;\n\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n\n\n  function addCellInfoToVirtual(row, cell) {\n    var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    var cellHasColspan = cell.colSpan > 1;\n    var cellHasRowspan = cell.rowSpan > 1;\n    var isThisSelectedCell = row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos;\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false); // Add span rows to virtual Table.\n\n    var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n\n    if (rowspanNumber > 1) {\n      for (var rp = 1; rp < rowspanNumber; rp++) {\n        var rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    } // Add span cols to virtual table.\n\n\n    var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n\n    if (colspanNumber > 1) {\n      for (var cp = 1; cp < colspanNumber; cp++) {\n        var cellspanIndex = recoverCellIndex(row.rowIndex, cellIndex + cp);\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n\n\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n\n\n  function createVirtualTable() {\n    var rows = domTable.rows;\n\n    for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      var cells = rows[rowIndex].cells;\n\n      for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.RemoveCell;\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  } /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n\n\n  this.getActionList = function () {\n    var fixedRow = where === TableResultAction.where.Row ? _startPoint.rowPos : -1;\n    var fixedCol = where === TableResultAction.where.Column ? _startPoint.colPos : -1;\n    var actualPosition = 0;\n    var canContinue = true;\n\n    while (canContinue) {\n      var rowPosition = fixedRow >= 0 ? fixedRow : actualPosition;\n      var colPosition = fixedCol >= 0 ? fixedCol : actualPosition;\n      var row = _virtualTable[rowPosition];\n\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      var cell = row[colPosition];\n\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      } // Define action to be applied in this cell\n\n\n      var resultAction = TableResultAction.resultAction.Ignore;\n\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\n\n\nTableResultAction.where = {\n  'Row': 0,\n  'Column': 1\n};\n/**\n*\n* Requested action to apply enum.\n*/\n\nTableResultAction.requestAction = {\n  'Add': 0,\n  'Delete': 1\n};\n/**\n*\n* Result action to be executed enum.\n*/\n\nTableResultAction.resultAction = {\n  'Ignore': 0,\n  'SubtractSpanCount': 1,\n  'RemoveCell': 2,\n  'AddCell': 3,\n  'SumSpanCount': 4\n};\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\n\nvar Table_Table = /*#__PURE__*/function () {\n  function Table() {\n    Table_classCallCheck(this, Table);\n  }\n\n  Table_createClass(Table, [{\n    key: \"tab\",\n\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    value: function tab(rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n      var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    }\n    /**\n     * Add a new row\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (top/bottom)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addRow\",\n    value: function addRow(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var currentTr = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var trAttributes = this.recoverAttributes(currentTr);\n      var html = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<tr' + trAttributes + '></tr>');\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var idCell = 0; idCell < actions.length; idCell++) {\n        var currentCell = actions[idCell];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            {\n              if (position === 'top') {\n                var baseCellTr = currentCell.baseCell.parent;\n                var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n\n                if (isTopFromRowSpan) {\n                  var newTd = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n                  html.append(newTd);\n                  break;\n                }\n              }\n\n              var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n              rowspanNumber++;\n              currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n            }\n            break;\n        }\n      }\n\n      if (position === 'top') {\n        currentTr.before(html);\n      } else {\n        var cellHasRowspan = cell.rowSpan > 1;\n\n        if (cellHasRowspan) {\n          var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).parent().find('tr')[lastTrIndex]).after(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(html));\n          return;\n        }\n\n        currentTr.after(html);\n      }\n    }\n    /**\n     * Add a new col\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (left/right)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addCol\",\n    value: function addCol(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var rowsGroup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).siblings();\n      rowsGroup.push(row);\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        var currentCell = actions[actionIndex];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            if (position === 'right') {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            if (position === 'right') {\n              var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n              colspanNumber++;\n              currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n        }\n      }\n    }\n    /*\n    * Copy attributes from element.\n    *\n    * @param {object} Element to recover attributes.\n    * @return {string} Copied string elements.\n    */\n\n  }, {\n    key: \"recoverAttributes\",\n    value: function recoverAttributes(el) {\n      var resultStr = '';\n\n      if (!el) {\n        return resultStr;\n      }\n\n      var attrList = el.attributes || [];\n\n      for (var i = 0; i < attrList.length; i++) {\n        if (attrList[i].name.toLowerCase() === 'id') {\n          continue;\n        }\n\n        if (attrList[i].specified) {\n          resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n        }\n      }\n\n      return resultStr;\n    }\n    /**\n     * Delete current row\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var rowPos = row[0].rowIndex;\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        var baseCell = actions[actionIndex].baseCell;\n        var virtualPosition = actions[actionIndex].virtualTable;\n        var hasRowspan = baseCell.rowSpan && baseCell.rowSpan > 1;\n        var rowspanNumber = hasRowspan ? parseInt(baseCell.rowSpan, 10) : 0;\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.AddCell:\n            {\n              var nextRow = row.next('tr')[0];\n\n              if (!nextRow) {\n                continue;\n              }\n\n              var cloneRow = row[0].cells[cellPos];\n\n              if (hasRowspan) {\n                if (rowspanNumber > 2) {\n                  rowspanNumber--;\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n                  nextRow.cells[cellPos].innerHTML = '';\n                } else if (rowspanNumber === 2) {\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].removeAttribute('rowSpan');\n                  nextRow.cells[cellPos].innerHTML = '';\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            if (hasRowspan) {\n              if (rowspanNumber > 2) {\n                rowspanNumber--;\n                baseCell.setAttribute('rowSpan', rowspanNumber);\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              } else if (rowspanNumber === 2) {\n                baseCell.removeAttribute('rowSpan');\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              }\n            }\n\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            // Do not need remove cell because row will be deleted.\n            continue;\n        }\n      }\n\n      row.remove();\n    }\n    /**\n     * Delete current col\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            {\n              var baseCell = actions[actionIndex].baseCell;\n              var hasColspan = baseCell.colSpan && baseCell.colSpan > 1;\n\n              if (hasColspan) {\n                var colspanNumber = baseCell.colSpan ? parseInt(baseCell.colSpan, 10) : 0;\n\n                if (colspanNumber > 2) {\n                  colspanNumber--;\n                  baseCell.setAttribute('colSpan', colspanNumber);\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                } else if (colspanNumber === 2) {\n                  baseCell.removeAttribute('colSpan');\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            dom.remove(actions[actionIndex].baseCell, true);\n            continue;\n        }\n      }\n    }\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n\n  }, {\n    key: \"createTable\",\n    value: function createTable(colCount, rowCount, options) {\n      var tds = [];\n      var tdHTML;\n\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n\n      tdHTML = tds.join('');\n      var trs = [];\n      var trHTML;\n\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n\n      trHTML = trs.join('');\n      var $table = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<table>' + trHTML + '</table>');\n\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    }\n    /**\n     * Delete current table\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('table').remove();\n    }\n  }]);\n\n  return Table;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Editor.js\nfunction Editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) Editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) Editor_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar KEY_BOGUS = 'bogus';\n/**\n * @class Editor\n */\n\nvar Editor_Editor = /*#__PURE__*/function () {\n  function Editor(context) {\n    var _this = this;\n\n    Editor_classCallCheck(this, Editor);\n\n    this.context = context;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n    this.snapshot = null;\n    this.style = new Style_Style();\n    this.table = new Table_Table();\n    this.typing = new Typing_Typing(context);\n    this.bullet = new Bullet_Bullet();\n    this.history = new History_History(context);\n    this.context.memo('help.escape', this.lang.help.escape);\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName); // native commands(with execCommand), generate function for execCommand\n\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'formatBlock', 'removeFormat', 'backColor'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = function (sCmd) {\n        return function (value) {\n          _this.beforeCommand();\n\n          document.execCommand(sCmd, false, value);\n\n          _this.afterCommand(true);\n        };\n      }(commands[idx]);\n\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand(function (value) {\n      return _this.fontStyling('font-family', env.validFontName(value));\n    });\n    this.fontSize = this.wrapCommand(function (value) {\n      var unit = _this.currentStyle()['font-size-unit'];\n\n      return _this.fontStyling('font-size', value + unit);\n    });\n    this.fontSizeUnit = this.wrapCommand(function (value) {\n      var size = _this.currentStyle()['font-size'];\n\n      return _this.fontStyling('font-size', size + value);\n    });\n\n    for (var _idx = 1; _idx <= 6; _idx++) {\n      this['formatH' + _idx] = function (idx) {\n        return function () {\n          _this.formatBlock('H' + idx);\n        };\n      }(_idx);\n\n      this.context.memo('help.formatH' + _idx, this.lang.help['formatH' + _idx]);\n    }\n\n    this.insertParagraph = this.wrapCommand(function () {\n      _this.typing.insertParagraph(_this.editable);\n    });\n    this.insertOrderedList = this.wrapCommand(function () {\n      _this.bullet.insertOrderedList(_this.editable);\n    });\n    this.insertUnorderedList = this.wrapCommand(function () {\n      _this.bullet.insertUnorderedList(_this.editable);\n    });\n    this.indent = this.wrapCommand(function () {\n      _this.bullet.indent(_this.editable);\n    });\n    this.outdent = this.wrapCommand(function () {\n      _this.bullet.outdent(_this.editable);\n    });\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n\n    this.insertNode = this.wrapCommand(function (node) {\n      if (_this.isLimited(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).text().length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      rng.insertNode(node);\n\n      _this.setLastRange(range.createFromNodeAfter(node).select());\n    });\n    /**\n     * insert text\n     * @param {String} text\n     */\n\n    this.insertText = this.wrapCommand(function (text) {\n      if (_this.isLimited(text.length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      var textNode = rng.insertNode(dom.createText(text));\n\n      _this.setLastRange(range.create(textNode, dom.nodeLength(textNode)).select());\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      if (_this.isLimited(markup.length)) {\n        return;\n      }\n\n      markup = _this.context.invoke('codeview.purify', markup);\n\n      var contents = _this.getLastRange().pasteHTML(markup);\n\n      _this.setLastRange(range.createFromNodeAfter(lists.last(contents)).select());\n    });\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n\n    this.formatBlock = this.wrapCommand(function (tagName, $target) {\n      var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;\n\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);\n      } else {\n        _this.onFormatBlock(tagName, $target);\n      }\n    });\n    /**\n     * insert horizontal rule\n     */\n\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = _this.getLastRange().insertNode(dom.create('HR'));\n\n      if (hrNode.nextSibling) {\n        _this.setLastRange(range.create(hrNode.nextSibling, 0).normalize().select());\n      }\n    });\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n\n    this.lineHeight = this.wrapCommand(function (value) {\n      _this.style.stylePara(_this.getLastRange(), {\n        lineHeight: value\n      });\n    });\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var checkProtocol = linkInfo.checkProtocol;\n\n      var rng = linkInfo.range || _this.getLastRange();\n\n      var additionalTextLength = linkText.length - rng.toString().length;\n\n      if (additionalTextLength > 0 && _this.isLimited(additionalTextLength)) {\n        return;\n      }\n\n      var isTextChanged = rng.toString() !== linkText; // handle spaced urls from input\n\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (_this.options.onCreateLink) {\n        linkUrl = _this.options.onCreateLink(linkUrl);\n      } else if (checkProtocol) {\n        // if url doesn't have any protocol and not even a relative or a label, use http:// as default\n        linkUrl = /^([A-Za-z][A-Za-z0-9+-.]*\\:|#|\\/)/.test(linkUrl) ? linkUrl : _this.options.defaultProtocol + linkUrl;\n      }\n\n      var anchors = [];\n\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = _this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(anchors, function (idx, anchor) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href', linkUrl);\n\n        if (isNewWindow) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('target', '_blank');\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).removeAttr('target');\n        }\n      });\n\n      _this.setLastRange(_this.createRangeFromList(anchors).select());\n    });\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) {\n        document.execCommand('foreColor', false, foreColor);\n      }\n\n      if (backColor) {\n        document.execCommand('backColor', false, backColor);\n      }\n    });\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n\n    this.foreColor = this.wrapCommand(function (colorInfo) {\n      document.execCommand('foreColor', false, colorInfo);\n    });\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = _this.getLastRange().deleteContents();\n\n      rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));\n    });\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).parent();\n\n      if ($target.closest('figure').length) {\n        $target.closest('figure').remove();\n      } else {\n        $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).detach();\n      }\n\n      _this.context.triggerEvent('media.delete', $target, _this.$editable);\n    });\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value === 'none' ? '' : value);\n    });\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n\n    this.resize = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      value = parseFloat(value);\n\n      if (value === 0) {\n        $target.css('width', '');\n      } else {\n        $target.css({\n          width: value * 100 + '%',\n          height: ''\n        });\n      }\n    });\n  }\n\n  Editor_createClass(Editor, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      // bind custom events\n      this.$editable.on('keydown', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          _this2.context.triggerEvent('enter', event);\n        }\n\n        _this2.context.triggerEvent('keydown', event); // keep a snapshot to limit text on input event\n\n\n        _this2.snapshot = _this2.history.makeSnapshot();\n        _this2.hasKeyShortCut = false;\n\n        if (!event.isDefaultPrevented()) {\n          if (_this2.options.shortcuts) {\n            _this2.hasKeyShortCut = _this2.handleKeyMap(event);\n          } else {\n            _this2.preventDefaultEditableShortCuts(event);\n          }\n        }\n\n        if (_this2.isLimited(1, event)) {\n          var lastRange = _this2.getLastRange();\n\n          if (lastRange.eo - lastRange.so === 0) {\n            return false;\n          }\n        }\n\n        _this2.setLastRange(); // record undo in the key event except keyMap.\n\n\n        if (_this2.options.recordEveryKeystroke) {\n          if (_this2.hasKeyShortCut === false) {\n            _this2.history.recordUndo();\n          }\n        }\n      }).on('keyup', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        _this2.context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        _this2.context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        _this2.setLastRange();\n\n        _this2.history.recordUndo();\n\n        _this2.context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        _this2.context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('paste', event);\n      }).on('input', function () {\n        // To limit composition characters (e.g. Korean)\n        if (_this2.isLimited(0) && _this2.snapshot) {\n          _this2.history.applySnapshot(_this2.snapshot);\n        }\n      });\n      this.$editable.attr('spellcheck', this.options.spellCheck);\n      this.$editable.attr('autocorrect', this.options.spellCheck);\n\n      if (this.options.disableGrammar) {\n        this.$editable.attr('data-gramm', false);\n      } // init content before set event\n\n\n      this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n      this.$editable.on(env.inputEventName, func.debounce(function () {\n        _this2.context.triggerEvent('change', _this2.$editable.html(), _this2.$editable);\n      }, 10));\n      this.$editable.on('focusin', function (event) {\n        _this2.context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        _this2.context.triggerEvent('focusout', event);\n      });\n\n      if (this.options.airMode) {\n        if (this.options.overrideContextMenu) {\n          this.$editor.on('contextmenu', function (event) {\n            _this2.context.triggerEvent('contextmenu', event);\n\n            return false;\n          });\n        }\n      } else {\n        if (this.options.width) {\n          this.$editor.outerWidth(this.options.width);\n        }\n\n        if (this.options.height) {\n          this.$editable.outerHeight(this.options.height);\n        }\n\n        if (this.options.maxHeight) {\n          this.$editable.css('max-height', this.options.maxHeight);\n        }\n\n        if (this.options.minHeight) {\n          this.$editable.css('min-height', this.options.minHeight);\n        }\n      }\n\n      this.history.recordUndo();\n      this.setLastRange();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$editable.off();\n    }\n  }, {\n    key: \"handleKeyMap\",\n    value: function handleKeyMap(event) {\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) {\n        keys.push('CMD');\n      }\n\n      if (event.ctrlKey && !event.altKey) {\n        keys.push('CTRL');\n      }\n\n      if (event.shiftKey) {\n        keys.push('SHIFT');\n      }\n\n      var keyName = core_key.nameFromCode[event.keyCode];\n\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n\n      if (keyName === 'TAB' && !this.options.tabDisable) {\n        this.afterCommand();\n      } else if (eventName) {\n        if (this.context.invoke(eventName) !== false) {\n          event.preventDefault(); // if keyMap action was invoked\n\n          return true;\n        }\n      } else if (core_key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n\n      return false;\n    }\n  }, {\n    key: \"preventDefaultEditableShortCuts\",\n    value: function preventDefaultEditableShortCuts(event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) && lists.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"isLimited\",\n    value: function isLimited(pad, event) {\n      pad = pad || 0;\n\n      if (typeof event !== 'undefined') {\n        if (core_key.isMove(event.keyCode) || core_key.isNavigation(event.keyCode) || event.ctrlKey || event.metaKey || lists.contains([core_key.code.BACKSPACE, core_key.code.DELETE], event.keyCode)) {\n          return false;\n        }\n      }\n\n      if (this.options.maxTextLength > 0) {\n        if (this.$editable.text().length + pad > this.options.maxTextLength) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange() {\n      this.focus();\n      this.setLastRange();\n      return this.getLastRange();\n    }\n    /**\n     * create a new range from the list of elements\n     *\n     * @param {list} dom element list\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRangeFromList\",\n    value: function createRangeFromList(lst) {\n      var startRange = range.createFromNodeBefore(lists.head(lst));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(lists.last(lst));\n      var endPoint = endRange.getEndPoint();\n      return range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * set the last range\n     *\n     * if given rng is exist, set rng as the last range\n     * or create a new range at the end of the document\n     *\n     * @param {WrappedRange} rng\n     */\n\n  }, {\n    key: \"setLastRange\",\n    value: function setLastRange(rng) {\n      if (rng) {\n        this.lastRange = rng;\n      } else {\n        this.lastRange = range.create(this.editable);\n\n        if (external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.lastRange.sc).closest('.note-editable').length === 0) {\n          this.lastRange = range.createFromBodyElement(this.editable);\n        }\n      }\n    }\n    /**\n     * get the last range\n     *\n     * if there is a saved last range, return it\n     * or create a new range and return it\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      if (!this.lastRange) {\n        this.setLastRange();\n      }\n\n      return this.lastRange;\n    }\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n\n  }, {\n    key: \"saveRange\",\n    value: function saveRange(thenCollapse) {\n      if (thenCollapse) {\n        this.getLastRange().collapse().select();\n      }\n    }\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n\n  }, {\n    key: \"restoreRange\",\n    value: function restoreRange() {\n      if (this.lastRange) {\n        this.lastRange.select();\n        this.focus();\n      }\n    }\n  }, {\n    key: \"saveTarget\",\n    value: function saveTarget(node) {\n      this.$editable.data('target', node);\n    }\n  }, {\n    key: \"clearTarget\",\n    value: function clearTarget() {\n      this.$editable.removeData('target');\n    }\n  }, {\n    key: \"restoreTarget\",\n    value: function restoreTarget() {\n      return this.$editable.data('target');\n    }\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n\n  }, {\n    key: \"currentStyle\",\n    value: function currentStyle() {\n      var rng = range.create();\n\n      if (rng) {\n        rng = rng.normalize();\n      }\n\n      return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n    }\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"styleFromNode\",\n    value: function styleFromNode($node) {\n      return this.style.fromNode($node);\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.undo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /*\n    * commit\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.commit();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.redo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * before command\n     */\n\n  }, {\n    key: \"beforeCommand\",\n    value: function beforeCommand() {\n      this.context.triggerEvent('before.command', this.$editable.html()); // Set styleWithCSS before run a command\n\n      document.execCommand('styleWithCSS', false, this.options.styleWithCSS); // keep focus on editable before command execution\n\n      this.focus();\n    }\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n\n  }, {\n    key: \"afterCommand\",\n    value: function afterCommand(isPreventTrigger) {\n      this.normalizeContent();\n      this.history.recordUndo();\n\n      if (!isPreventTrigger) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n    }\n    /**\n     * handle tab key\n     */\n\n  }, {\n    key: \"tab\",\n    value: function tab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n\n        if (!this.isLimited(this.options.tabSize)) {\n          this.beforeCommand();\n          this.typing.insertTab(rng, this.options.tabSize);\n          this.afterCommand();\n        }\n      }\n    }\n    /**\n     * handle shift+tab key\n     */\n\n  }, {\n    key: \"untab\",\n    value: function untab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng, true);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n      }\n    }\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n\n  }, {\n    key: \"wrapCommand\",\n    value: function wrapCommand(fn) {\n      return function () {\n        this.beforeCommand();\n        fn.apply(this, arguments);\n        this.afterCommand();\n      };\n    }\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"insertImage\",\n    value: function insertImage(src, param) {\n      var _this3 = this;\n\n      return createImage(src, param).then(function ($image) {\n        _this3.beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n\n          $image.css('width', Math.min(_this3.$editable.width(), $image.width()));\n        }\n\n        $image.show();\n\n        _this3.getLastRange().insertNode($image[0]);\n\n        _this3.setLastRange(range.createFromNodeAfter($image[0]).select());\n\n        _this3.afterCommand();\n      }).fail(function (e) {\n        _this3.context.triggerEvent('image.upload.error', e);\n      });\n    }\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesAsDataURL\",\n    value: function insertImagesAsDataURL(files) {\n      var _this4 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(files, function (idx, file) {\n        var filename = file.name;\n\n        if (_this4.options.maximumImageFileSize && _this4.options.maximumImageFileSize < file.size) {\n          _this4.context.triggerEvent('image.upload.error', _this4.lang.image.maximumFileSizeError);\n        } else {\n          readFileAsDataURL(file).then(function (dataURL) {\n            return _this4.insertImage(dataURL, filename);\n          }).fail(function () {\n            _this4.context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    }\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesOrCallback\",\n    value: function insertImagesOrCallback(files) {\n      var callbacks = this.options.callbacks; // If onImageUpload set,\n\n      if (callbacks.onImageUpload) {\n        this.context.triggerEvent('image.upload', files); // else insert Image as dataURL\n      } else {\n        this.insertImagesAsDataURL(files);\n      }\n    }\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n\n  }, {\n    key: \"getSelectedText\",\n    value: function getSelectedText() {\n      var rng = this.getLastRange(); // if range on anchor, expand range with anchor\n\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    }\n  }, {\n    key: \"onFormatBlock\",\n    value: function onFormatBlock(tagName, $target) {\n      // [workaround] for MSIE, IE need `<`\n      document.execCommand('FormatBlock', false, env.isMSIE ? '<' + tagName + '>' : tagName); // support custom class\n\n      if ($target && $target.length) {\n        // find the exact element has given tagName\n        if ($target[0].tagName.toUpperCase() !== tagName.toUpperCase()) {\n          $target = $target.find(tagName);\n        }\n\n        if ($target && $target.length) {\n          var className = $target[0].className || '';\n\n          if (className) {\n            var currentRange = this.createRange();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()([currentRange.sc, currentRange.ec]).closest(tagName);\n            $parent.addClass(className);\n          }\n        }\n      }\n    }\n  }, {\n    key: \"formatPara\",\n    value: function formatPara() {\n      this.formatBlock('P');\n    }\n  }, {\n    key: \"fontStyling\",\n    value: function fontStyling(target, value) {\n      var rng = this.getLastRange();\n\n      if (rng !== '') {\n        var spans = this.style.styleNodes(rng);\n        this.$editor.find('.note-status-output').html('');\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(spans).css(target, value); // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n\n        if (rng.isCollapsed()) {\n          var firstSpan = lists.head(spans);\n\n          if (firstSpan && !dom.nodeLength(firstSpan)) {\n            firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n            range.createFromNode(firstSpan.firstChild).select();\n            this.setLastRange();\n            this.$editable.data(KEY_BOGUS, firstSpan);\n          }\n        } else {\n          this.setLastRange(this.createRangeFromList(spans).select());\n        }\n      } else {\n        var noteStatusOutput = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now();\n        this.$editor.find('.note-status-output').html('<div id=\"note-status-output-' + noteStatusOutput + '\" class=\"alert alert-info\">' + this.lang.output.noSelection + '</div>');\n        setTimeout(function () {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('#note-status-output-' + noteStatusOutput).remove();\n        }, 5000);\n      }\n    }\n    /**\n     * unlink\n     *\n     * @type command\n     */\n\n  }, {\n    key: \"unlink\",\n    value: function unlink() {\n      var rng = this.getLastRange();\n\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n        this.setLastRange();\n        this.beforeCommand();\n        document.execCommand('unlink');\n        this.afterCommand();\n      }\n    }\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n\n  }, {\n    key: \"getLinkInfo\",\n    value: function getLinkInfo() {\n      var rng = this.getLastRange().expand(dom.isAnchor); // Get the first anchor on range(for edit).\n\n      var $anchor = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(lists.head(rng.nodes(dom.isAnchor)));\n      var linkInfo = {\n        range: rng,\n        text: rng.toString(),\n        url: $anchor.length ? $anchor.attr('href') : ''\n      }; // When anchor exists,\n\n      if ($anchor.length) {\n        // Set isNewWindow by checking its target.\n        linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n      }\n\n      return linkInfo;\n    }\n  }, {\n    key: \"addRow\",\n    value: function addRow(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addRow(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"addCol\",\n    value: function addCol(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addCol(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteRow(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteCol(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteTable(rng);\n        this.afterCommand();\n      }\n    }\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n\n  }, {\n    key: \"resizeTo\",\n    value: function resizeTo(pos, $target, bKeepRatio) {\n      var imageSize;\n\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    }\n    /**\n     * returns whether editable area has focus or not.\n     */\n\n  }, {\n    key: \"hasFocus\",\n    value: function hasFocus() {\n      return this.$editable.is(':focus');\n    }\n    /**\n     * set focus\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        this.$editable.focus();\n      }\n    }\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    value: function isEmpty() {\n      return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n    }\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n\n  }, {\n    key: \"empty\",\n    value: function empty() {\n      this.context.invoke('code', dom.emptyPara);\n    }\n    /**\n     * normalize content\n     */\n\n  }, {\n    key: \"normalizeContent\",\n    value: function normalizeContent() {\n      this.$editable[0].normalize();\n    }\n  }]);\n\n  return Editor;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Clipboard.js\nfunction Clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) Clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) Clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Clipboard_Clipboard = /*#__PURE__*/function () {\n  function Clipboard(context) {\n    Clipboard_classCallCheck(this, Clipboard);\n\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  Clipboard_createClass(Clipboard, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.$editable.on('paste', this.pasteByEvent.bind(this));\n    }\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n\n  }, {\n    key: \"pasteByEvent\",\n    value: function pasteByEvent(event) {\n      var _this = this;\n\n      var clipboardData = event.originalEvent.clipboardData;\n\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = clipboardData.items.length > 1 ? clipboardData.items[1] : lists.head(clipboardData.items);\n\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          // paste img file\n          this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n          event.preventDefault();\n        } else if (item.kind === 'string') {\n          // paste text with maxTextLength check\n          if (this.context.invoke('editor.isLimited', clipboardData.getData('Text').length)) {\n            event.preventDefault();\n          }\n        }\n      } else if (window.clipboardData) {\n        // for IE\n        var text = window.clipboardData.getData('text');\n\n        if (this.context.invoke('editor.isLimited', text.length)) {\n          event.preventDefault();\n        }\n      } // Call editor.afterCommand after proceeding default event handler\n\n\n      setTimeout(function () {\n        _this.context.invoke('editor.afterCommand');\n      }, 10);\n    }\n  }]);\n\n  return Clipboard;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Dropzone.js\nfunction Dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) Dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) Dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Dropzone_Dropzone = /*#__PURE__*/function () {\n  function Dropzone(context) {\n    Dropzone_classCallCheck(this, Dropzone);\n\n    this.context = context;\n    this.$eventListener = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n    this.$dropzone = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-dropzone\">', '<div class=\"note-dropzone-message\"></div>', '</div>'].join('')).prependTo(this.$editor);\n  }\n  /**\n   * attach Drag and Drop Events\n   */\n\n\n  Dropzone_createClass(Dropzone, [{\n    key: \"initialize\",\n    value: function initialize() {\n      if (this.options.disableDragAndDrop) {\n        // prevent default drop event\n        this.documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        }; // do not consider outside of dropzone\n\n\n        this.$eventListener = this.$dropzone;\n        this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    }\n    /**\n     * attach Drag and Drop Events\n     */\n\n  }, {\n    key: \"attachDragAndDropEvent\",\n    value: function attachDragAndDropEvent() {\n      var _this = this;\n\n      var collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n      var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n      this.documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = _this.context.invoke('codeview.isActivated');\n\n        var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;\n\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          _this.$editor.addClass('dragover');\n\n          _this.$dropzone.width(_this.$editor.width());\n\n          _this.$dropzone.height(_this.$editor.height());\n\n          $dropzoneMessage.text(_this.lang.image.dragImageHere);\n        }\n\n        collection = collection.add(e.target);\n      };\n\n      this.documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target); // If nodeName is BODY, then just make it over (fix for IE)\n\n        if (!collection.length || e.target.nodeName === 'BODY') {\n          collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n          _this.$editor.removeClass('dragover');\n        }\n      };\n\n      this.documentEventHandlers.onDrop = function () {\n        collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n        _this.$editor.removeClass('dragover');\n      }; // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n\n\n      this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter).on('dragleave', this.documentEventHandlers.onDragleave).on('drop', this.documentEventHandlers.onDrop); // change dropzone's message on hover.\n\n      this.$dropzone.on('dragenter', function () {\n        _this.$dropzone.addClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dropImage);\n      }).on('dragleave', function () {\n        _this.$dropzone.removeClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dragImageHere);\n      }); // attach dropImage\n\n      this.$dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer; // stop the browser from opening the dropped content\n\n        event.preventDefault();\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          _this.$editable.focus();\n\n          _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(dataTransfer.types, function (idx, type) {\n            // skip moz-specific types\n            if (type.toLowerCase().indexOf('_moz_') > -1) {\n              return;\n            }\n\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              _this.context.invoke('editor.pasteHTML', content);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(content).each(function (idx, item) {\n                _this.context.invoke('editor.insertNode', item);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _this2 = this;\n\n      Object.keys(this.documentEventHandlers).forEach(function (key) {\n        _this2.$eventListener.off(key.substr(2).toLowerCase(), _this2.documentEventHandlers[key]);\n      });\n      this.documentEventHandlers = {};\n    }\n  }]);\n\n  return Dropzone;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Codeview.js\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Codeview_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Codeview_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Codeview_createClass(Constructor, protoProps, staticProps) { if (protoProps) Codeview_defineProperties(Constructor.prototype, protoProps); if (staticProps) Codeview_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n/**\n * @class Codeview\n */\n\nvar Codeview_CodeView = /*#__PURE__*/function () {\n  function CodeView(context) {\n    Codeview_classCallCheck(this, CodeView);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n    this.CodeMirrorConstructor = window.CodeMirror;\n\n    if (this.options.codemirror.CodeMirrorConstructor) {\n      this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor;\n    }\n  }\n\n  Codeview_createClass(CodeView, [{\n    key: \"sync\",\n    value: function sync(html) {\n      var isCodeview = this.isActivated();\n      var CodeMirror = this.CodeMirrorConstructor;\n\n      if (isCodeview) {\n        if (html) {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').getDoc().setValue(html);\n          } else {\n            this.$codable.val(html);\n          }\n        } else {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').save();\n          }\n        }\n      }\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.$codable.on('keyup', function (event) {\n        if (event.keyCode === core_key.code.ESCAPE) {\n          _this.deactivate();\n        }\n      });\n    }\n    /**\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isActivated\",\n    value: function isActivated() {\n      return this.$editor.hasClass('codeview');\n    }\n    /**\n     * toggle codeview\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n\n      this.context.triggerEvent('codeview.toggled');\n    }\n    /**\n     * purify input value\n     * @param value\n     * @returns {*}\n     */\n\n  }, {\n    key: \"purify\",\n    value: function purify(value) {\n      if (this.options.codeviewFilter) {\n        // filter code view regex\n        value = value.replace(this.options.codeviewFilterRegex, ''); // allow specific iframe tag\n\n        if (this.options.codeviewIframeFilter) {\n          var whitelist = this.options.codeviewIframeWhitelistSrc.concat(this.options.codeviewIframeWhitelistSrcBase);\n          value = value.replace(/(<iframe.*?>.*?(?:<\\/iframe>)?)/gi, function (tag) {\n            // remove if src attribute is duplicated\n            if (/<.+src(?==?('|\"|\\s)?)[\\s\\S]+src(?=('|\"|\\s)?)[^>]*?>/i.test(tag)) {\n              return '';\n            }\n\n            var _iterator = _createForOfIteratorHelper(whitelist),\n                _step;\n\n            try {\n              for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                var src = _step.value;\n\n                // pass if src is trusted\n                if (new RegExp('src=\"(https?:)?\\/\\/' + src.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') + '\\/(.+)\"').test(tag)) {\n                  return tag;\n                }\n              }\n            } catch (err) {\n              _iterator.e(err);\n            } finally {\n              _iterator.f();\n            }\n\n            return '';\n          });\n        }\n      }\n\n      return value;\n    }\n    /**\n     * activate code view\n     */\n\n  }, {\n    key: \"activate\",\n    value: function activate() {\n      var _this2 = this;\n\n      var CodeMirror = this.CodeMirrorConstructor;\n      this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n      this.$codable.height(this.$editable.height());\n      this.context.invoke('toolbar.updateCodeview', true);\n      this.context.invoke('airPopover.updateCodeview', true);\n      this.$editor.addClass('codeview');\n      this.$codable.focus(); // activate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror); // CodeMirror TernServer\n\n        if (this.options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(this.options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        cmEditor.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n        });\n        cmEditor.on('change', function () {\n          _this2.context.triggerEvent('change.codeview', cmEditor.getValue(), cmEditor);\n        }); // CodeMirror hasn't Padding.\n\n        cmEditor.setSize(null, this.$editable.outerHeight());\n        this.$codable.data('cmEditor', cmEditor);\n      } else {\n        this.$codable.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', _this2.$codable.val(), event);\n        });\n        this.$codable.on('input', function () {\n          _this2.context.triggerEvent('change.codeview', _this2.$codable.val(), _this2.$codable);\n        });\n      }\n    }\n    /**\n     * deactivate code view\n     */\n\n  }, {\n    key: \"deactivate\",\n    value: function deactivate() {\n      var CodeMirror = this.CodeMirrorConstructor; // deactivate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = this.$codable.data('cmEditor');\n        this.$codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = this.purify(dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara);\n      var isChange = this.$editable.html() !== value;\n      this.$editable.html(value);\n      this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n      this.$editor.removeClass('codeview');\n\n      if (isChange) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n\n      this.$editable.focus();\n      this.context.invoke('toolbar.updateCodeview', false);\n      this.context.invoke('airPopover.updateCodeview', false);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    }\n  }]);\n\n  return CodeView;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Statusbar.js\nfunction Statusbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Statusbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Statusbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Statusbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Statusbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar EDITABLE_PADDING = 24;\n\nvar Statusbar_Statusbar = /*#__PURE__*/function () {\n  function Statusbar(context) {\n    Statusbar_classCallCheck(this, Statusbar);\n\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  Statusbar_createClass(Statusbar, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      if (this.options.airMode || this.options.disableResizeEditor) {\n        this.destroy();\n        return;\n      }\n\n      this.$statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();\n\n        var onMouseMove = function onMouseMove(event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n          height = _this.options.minheight > 0 ? Math.max(height, _this.options.minheight) : height;\n          height = _this.options.maxHeight > 0 ? Math.min(height, _this.options.maxHeight) : height;\n\n          _this.$editable.height(height);\n        };\n\n        _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {\n          _this.$document.off('mousemove', onMouseMove);\n        });\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$statusbar.off();\n      this.$statusbar.addClass('locked');\n    }\n  }]);\n\n  return Statusbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Fullscreen.js\nfunction Fullscreen_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Fullscreen_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Fullscreen_createClass(Constructor, protoProps, staticProps) { if (protoProps) Fullscreen_defineProperties(Constructor.prototype, protoProps); if (staticProps) Fullscreen_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Fullscreen_Fullscreen = /*#__PURE__*/function () {\n  function Fullscreen(context) {\n    var _this = this;\n\n    Fullscreen_classCallCheck(this, Fullscreen);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$scrollbar = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('html, body');\n\n    this.onResize = function () {\n      _this.resizeTo({\n        h: _this.$window.height() - _this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  Fullscreen_createClass(Fullscreen, [{\n    key: \"resizeTo\",\n    value: function resizeTo(size) {\n      this.$editable.css('height', size.h);\n      this.$codable.css('height', size.h);\n\n      if (this.$codable.data('cmeditor')) {\n        this.$codable.data('cmeditor').setsize(null, size.h);\n      }\n    }\n    /**\n     * toggle fullscreen\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      this.$editor.toggleClass('fullscreen');\n\n      if (this.isFullscreen()) {\n        this.$editable.data('orgHeight', this.$editable.css('height'));\n        this.$editable.data('orgMaxHeight', this.$editable.css('maxHeight'));\n        this.$editable.css('maxHeight', '');\n        this.$window.on('resize', this.onResize).trigger('resize');\n        this.$scrollbar.css('overflow', 'hidden');\n      } else {\n        this.$window.off('resize', this.onResize);\n        this.resizeTo({\n          h: this.$editable.data('orgHeight')\n        });\n        this.$editable.css('maxHeight', this.$editable.css('orgMaxHeight'));\n        this.$scrollbar.css('overflow', 'visible');\n      }\n\n      this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    }\n  }, {\n    key: \"isFullscreen\",\n    value: function isFullscreen() {\n      return this.$editor.hasClass('fullscreen');\n    }\n  }]);\n\n  return Fullscreen;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Handle.js\nfunction Handle_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Handle_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Handle_createClass(Constructor, protoProps, staticProps) { if (protoProps) Handle_defineProperties(Constructor.prototype, protoProps); if (staticProps) Handle_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar Handle_Handle = /*#__PURE__*/function () {\n  function Handle(context) {\n    var _this = this;\n\n    Handle_classCallCheck(this, Handle);\n\n    this.context = context;\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        if (_this.update(e.target, e)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteScrollSummernoteChangeSummernoteDialogShown() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Handle_createClass(Handle, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$handle = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-handle\">', '<div class=\"note-control-selection\">', '<div class=\"note-control-selection-bg\"></div>', '<div class=\"note-control-holder note-control-nw\"></div>', '<div class=\"note-control-holder note-control-ne\"></div>', '<div class=\"note-control-holder note-control-sw\"></div>', '<div class=\"', this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing', ' note-control-se\"></div>', this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>', '</div>', '</div>'].join('')).prependTo(this.$editingArea);\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = _this2.$handle.find('.note-control-selection').data('target');\n\n          var posStart = $target.offset();\n\n          var scrollTop = _this2.$document.scrollTop();\n\n          var onMouseMove = function onMouseMove(event) {\n            _this2.context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            _this2.update($target[0], event);\n          };\n\n          _this2.$document.on('mousemove', onMouseMove).one('mouseup', function (e) {\n            e.preventDefault();\n\n            _this2.$document.off('mousemove', onMouseMove);\n\n            _this2.context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) {\n            // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      }); // Listen for scrolling on the handle overlay.\n\n      this.$handle.on('wheel', function (e) {\n        e.preventDefault();\n\n        _this2.update();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$handle.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n      this.context.invoke('imagePopover.update', target, event);\n\n      if (isImage) {\n        var $image = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target);\n        var position = $image.position();\n        var pos = {\n          left: position.left + parseInt($image.css('marginLeft'), 10),\n          top: position.top + parseInt($image.css('marginTop'), 10)\n        }; // exclude margin\n\n        var imageSize = {\n          w: $image.outerWidth(false),\n          h: $image.outerHeight(false)\n        };\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var origImageObj = new Image();\n        origImageObj.src = $image.attr('src');\n        var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n        $selection.find('.note-control-selection-info').text(sizingText);\n        this.context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    }\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    }\n  }]);\n\n  return Handle;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoLink.js\nfunction AutoLink_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoLink_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoLink_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoLink_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoLink_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar defaultScheme = 'http://';\nvar linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nvar AutoLink_AutoLink = /*#__PURE__*/function () {\n  function AutoLink(context) {\n    var _this = this;\n\n    AutoLink_classCallCheck(this, AutoLink);\n\n    this.context = context;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoLink_createClass(AutoLink, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var urlText = this.options.showDomainOnlyForAutolink ? keyword.replace(/^(?:https?:\\/\\/)?(?:tel?:?)?(?:mailto?:?)?(?:www\\.)?/i, '').split('/')[0] : keyword;\n        var node = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<a />').html(urlText).attr('href', link)[0];\n\n        if (this.context.options.linkTargetBlank) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).attr('target', '_blank');\n        }\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoLink;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoSync.js\nfunction AutoSync_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoSync_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoSync_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoSync_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoSync_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * textarea auto sync.\n */\n\nvar AutoSync_AutoSync = /*#__PURE__*/function () {\n  function AutoSync(context) {\n    var _this = this;\n\n    AutoSync_classCallCheck(this, AutoSync);\n\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': function summernoteChange() {\n        _this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  AutoSync_createClass(AutoSync, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return dom.isTextarea(this.$note[0]);\n    }\n  }]);\n\n  return AutoSync;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoReplace.js\nfunction AutoReplace_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoReplace_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoReplace_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoReplace_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoReplace_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar AutoReplace_AutoReplace = /*#__PURE__*/function () {\n  function AutoReplace(context) {\n    var _this = this;\n\n    AutoReplace_classCallCheck(this, AutoReplace);\n\n    this.context = context;\n    this.options = context.options.replace || {};\n    this.keys = [core_key.code.ENTER, core_key.code.SPACE, core_key.code.PERIOD, core_key.code.COMMA, core_key.code.SEMICOLON, core_key.code.SLASH];\n    this.previousKeydownCode = null;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoReplace_createClass(AutoReplace, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.match;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWord) {\n        return;\n      }\n\n      var self = this;\n      var keyword = this.lastWord.toString();\n      this.options.match(keyword, function (match) {\n        if (match) {\n          var node = '';\n\n          if (typeof match === 'string') {\n            node = dom.createText(match);\n          } else if (match instanceof jQuery) {\n            node = match[0];\n          } else if (match instanceof Node) {\n            node = match;\n          }\n\n          if (!node) return;\n          self.lastWord.insertNode(node);\n          self.lastWord = null;\n          self.context.invoke('editor.focus');\n        }\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      // this forces it to remember the last whole word, even if multiple termination keys are pressed\n      // before the previous key is let go.\n      if (this.previousKeydownCode && lists.contains(this.keys, this.previousKeydownCode)) {\n        this.previousKeydownCode = e.keyCode;\n        return;\n      }\n\n      if (lists.contains(this.keys, e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWord = wordRange;\n      }\n\n      this.previousKeydownCode = e.keyCode;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains(this.keys, e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoReplace;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Placeholder.js\nfunction Placeholder_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Placeholder_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Placeholder_createClass(Constructor, protoProps, staticProps) { if (protoProps) Placeholder_defineProperties(Constructor.prototype, protoProps); if (staticProps) Placeholder_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Placeholder_Placeholder = /*#__PURE__*/function () {\n  function Placeholder(context) {\n    var _this = this;\n\n    Placeholder_classCallCheck(this, Placeholder);\n\n    this.context = context;\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n\n    if (this.options.inheritPlaceholder === true) {\n      // get placeholder value from the original element\n      this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder;\n    }\n\n    this.events = {\n      'summernote.init summernote.change': function summernoteInitSummernoteChange() {\n        _this.update();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Placeholder_createClass(Placeholder, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.placeholder;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        _this2.context.invoke('focus');\n      }).html(this.options.placeholder).prependTo(this.$editingArea);\n      this.update();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$placeholder.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    }\n  }]);\n\n  return Placeholder;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Buttons.js\nfunction Buttons_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Buttons_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Buttons_createClass(Constructor, protoProps, staticProps) { if (protoProps) Buttons_defineProperties(Constructor.prototype, protoProps); if (staticProps) Buttons_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Buttons_Buttons = /*#__PURE__*/function () {\n  function Buttons(context) {\n    Buttons_classCallCheck(this, Buttons);\n\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);\n  }\n\n  Buttons_createClass(Buttons, [{\n    key: \"representShortcut\",\n    value: function representShortcut(editorMethod) {\n      var shortcut = this.invertedKeyMap[editorMethod];\n\n      if (!this.options.shortcuts || !shortcut) {\n        return '';\n      }\n\n      if (env.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\').replace('SLASH', '/').replace('LEFTBRACKET', '[').replace('RIGHTBRACKET', ']');\n      return ' (' + shortcut + ')';\n    }\n  }, {\n    key: \"button\",\n    value: function button(o) {\n      if (!this.options.tooltip && o.tooltip) {\n        delete o.tooltip;\n      }\n\n      o.container = this.options.container;\n      return this.ui.button(o);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.addTablePopoverButtons();\n      this.fontInstalledMap = {};\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      delete this.fontInstalledMap;\n    }\n  }, {\n    key: \"isFontInstalled\",\n    value: function isFontInstalled(name) {\n      if (!Object.prototype.hasOwnProperty.call(this.fontInstalledMap, name)) {\n        this.fontInstalledMap[name] = env.isFontInstalled(name) || lists.contains(this.options.fontNamesIgnoreCheck, name);\n      }\n\n      return this.fontInstalledMap[name];\n    }\n  }, {\n    key: \"isFontDeservedToAdd\",\n    value: function isFontDeservedToAdd(name) {\n      name = name.toLowerCase();\n      return name !== '' && this.isFontInstalled(name) && env.genericFontFamilies.indexOf(name) === -1;\n    }\n  }, {\n    key: \"colorPalette\",\n    value: function colorPalette(className, tooltip, backColor, foreColor) {\n      var _this = this;\n\n      return this.ui.buttonGroup({\n        className: 'note-color ' + className,\n        children: [this.button({\n          className: 'note-current-color-button',\n          contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n          tooltip: tooltip,\n          click: function click(e) {\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget);\n\n            if (backColor && foreColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            } else if (backColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor')\n              });\n            } else if (foreColor) {\n              _this.context.invoke('editor.color', {\n                foreColor: $button.attr('data-foreColor')\n              });\n            }\n          },\n          callback: function callback($button) {\n            var $recentColor = $button.find('.note-recent-color');\n\n            if (backColor) {\n              $recentColor.css('background-color', _this.options.colorButton.backColor);\n              $button.attr('data-backColor', _this.options.colorButton.backColor);\n            }\n\n            if (foreColor) {\n              $recentColor.css('color', _this.options.colorButton.foreColor);\n              $button.attr('data-foreColor', _this.options.colorButton.foreColor);\n            } else {\n              $recentColor.css('color', 'transparent');\n            }\n          }\n        }), this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('', this.options),\n          tooltip: this.lang.color.more,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), this.ui.dropdown({\n          items: (backColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.background + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"backColor\" data-value=\"transparent\">', this.lang.color.transparent, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"backColor\"><!-- back colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"backColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"backColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.backColor + '\" data-event=\"backColorPalette\">', '</div>', '<div class=\"note-holder-custom\" id=\"backColorPalette\" data-event=\"backColor\"></div>', '</div>'].join('') : '') + (foreColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">', this.lang.color.resetToDefault, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"foreColor\"><!-- fore colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"foreColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"foreColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.foreColor + '\" data-event=\"foreColorPalette\">', '</div>', // Fix missing Div, Commented to find easily if it's wrong\n          '<div class=\"note-holder-custom\" id=\"foreColorPalette\" data-event=\"foreColor\"></div>', '</div>'].join('') : ''),\n          callback: function callback($dropdown) {\n            $dropdown.find('.note-holder').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: _this.options.colors,\n                colorsName: _this.options.colorsName,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            /* TODO: do we have to record recent custom colors within cookies? */\n\n            var customColors = [['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF']];\n            $dropdown.find('.note-holder-custom').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: customColors,\n                colorsName: customColors,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            $dropdown.find('input[type=color]').each(function (idx, item) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).change(function () {\n                var $chip = $dropdown.find('#' + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this).data('event')).find('.note-color-btn').first();\n                var color = this.value.toUpperCase();\n                $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n                $chip.click();\n              });\n            });\n          },\n          click: function click(event) {\n            event.stopPropagation();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.' + className).find('.note-dropdown-menu');\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n            var eventName = $button.data('event');\n            var value = $button.attr('data-value');\n\n            if (eventName === 'openPalette') {\n              var $picker = $parent.find('#' + value);\n              var $palette = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()($parent.find('#' + $picker.data('event')).find('.note-color-row')[0]); // Shift palette chips\n\n              var $chip = $palette.find('.note-color-btn').last().detach(); // Set chip attributes\n\n              var color = $picker.val();\n              $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n              $palette.prepend($chip);\n              $picker.click();\n            } else {\n              if (lists.contains(['backColor', 'foreColor'], eventName)) {\n                var key = eventName === 'backColor' ? 'background-color' : 'color';\n                var $color = $button.closest('.note-color').find('.note-recent-color');\n                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n              }\n\n              _this.context.invoke('editor.' + eventName, value);\n            }\n          }\n        })]\n      }).render();\n    }\n  }, {\n    key: \"addToolbarButtons\",\n    value: function addToolbarButtons() {\n      var _this2 = this;\n\n      this.context.memo('button.style', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.magic), _this2.options),\n          tooltip: _this2.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          className: 'dropdown-style',\n          items: _this2.options.styleTags,\n          title: _this2.lang.style.style,\n          template: function template(item) {\n            // TBD: need to be simplified\n            if (typeof item === 'string') {\n              item = {\n                tag: item,\n                title: Object.prototype.hasOwnProperty.call(_this2.lang.style, item) ? _this2.lang.style[item] : item\n              };\n            }\n\n            var tag = item.tag;\n            var title = item.title;\n            var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            var className = item.className ? ' class=\"' + item.className + '\"' : '';\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: _this2.context.createInvokeHandler('editor.formatBlock')\n        })]).render();\n      });\n\n      var _loop = function _loop(styleIdx, styleLen) {\n        var item = _this2.options.styleTags[styleIdx];\n\n        _this2.context.memo('button.style.' + item, function () {\n          return _this2.button({\n            className: 'note-btn-style-' + item,\n            contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n            tooltip: _this2.lang.style[item],\n            click: _this2.context.createInvokeHandler('editor.formatBlock')\n          }).render();\n        });\n      };\n\n      for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n        _loop(styleIdx, styleLen);\n      }\n\n      this.context.memo('button.bold', function () {\n        return _this2.button({\n          className: 'note-btn-bold',\n          contents: _this2.ui.icon(_this2.options.icons.bold),\n          tooltip: _this2.lang.font.bold + _this2.representShortcut('bold'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.bold')\n        }).render();\n      });\n      this.context.memo('button.italic', function () {\n        return _this2.button({\n          className: 'note-btn-italic',\n          contents: _this2.ui.icon(_this2.options.icons.italic),\n          tooltip: _this2.lang.font.italic + _this2.representShortcut('italic'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.italic')\n        }).render();\n      });\n      this.context.memo('button.underline', function () {\n        return _this2.button({\n          className: 'note-btn-underline',\n          contents: _this2.ui.icon(_this2.options.icons.underline),\n          tooltip: _this2.lang.font.underline + _this2.representShortcut('underline'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.underline')\n        }).render();\n      });\n      this.context.memo('button.clear', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.eraser),\n          tooltip: _this2.lang.font.clear + _this2.representShortcut('removeFormat'),\n          click: _this2.context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n      this.context.memo('button.strikethrough', function () {\n        return _this2.button({\n          className: 'note-btn-strikethrough',\n          contents: _this2.ui.icon(_this2.options.icons.strikethrough),\n          tooltip: _this2.lang.font.strikethrough + _this2.representShortcut('strikethrough'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n        }).render();\n      });\n      this.context.memo('button.superscript', function () {\n        return _this2.button({\n          className: 'note-btn-superscript',\n          contents: _this2.ui.icon(_this2.options.icons.superscript),\n          tooltip: _this2.lang.font.superscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.superscript')\n        }).render();\n      });\n      this.context.memo('button.subscript', function () {\n        return _this2.button({\n          className: 'note-btn-subscript',\n          contents: _this2.ui.icon(_this2.options.icons.subscript),\n          tooltip: _this2.lang.font.subscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.subscript')\n        }).render();\n      });\n      this.context.memo('button.fontname', function () {\n        var styleInfo = _this2.context.invoke('editor.currentStyle');\n\n        if (_this2.options.addDefaultFonts) {\n          // Add 'default' fonts into the fontnames array if not exist\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(styleInfo['font-family'].split(','), function (idx, fontname) {\n            fontname = fontname.trim().replace(/['\"]+/g, '');\n\n            if (_this2.isFontDeservedToAdd(fontname)) {\n              if (_this2.options.fontNames.indexOf(fontname) === -1) {\n                _this2.options.fontNames.push(fontname);\n              }\n            }\n          });\n        }\n\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontname\"></span>', _this2.options),\n          tooltip: _this2.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontNames.filter(_this2.isFontInstalled.bind(_this2)),\n          title: _this2.lang.font.name,\n          template: function template(item) {\n            return '<span style=\"font-family: ' + env.validFontName(item) + '\">' + item + '</span>';\n          },\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })]).render();\n      });\n      this.context.memo('button.fontsize', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"></span>', _this2.options),\n          tooltip: _this2.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizes,\n          title: _this2.lang.font.size,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })]).render();\n      });\n      this.context.memo('button.fontsizeunit', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsizeunit\"></span>', _this2.options),\n          tooltip: _this2.lang.font.sizeunit,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsizeunit',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizeUnits,\n          title: _this2.lang.font.sizeunit,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSizeUnit')\n        })]).render();\n      });\n      this.context.memo('button.color', function () {\n        return _this2.colorPalette('note-color-all', _this2.lang.color.recent, true, true);\n      });\n      this.context.memo('button.forecolor', function () {\n        return _this2.colorPalette('note-color-fore', _this2.lang.color.foreground, false, true);\n      });\n      this.context.memo('button.backcolor', function () {\n        return _this2.colorPalette('note-color-back', _this2.lang.color.background, true, false);\n      });\n      this.context.memo('button.ul', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.unorderedlist),\n          tooltip: _this2.lang.lists.unordered + _this2.representShortcut('insertUnorderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n      this.context.memo('button.ol', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.orderedlist),\n          tooltip: _this2.lang.lists.ordered + _this2.representShortcut('insertOrderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n      var justifyLeft = this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n        click: this.context.createInvokeHandler('editor.justifyLeft')\n      });\n      var justifyCenter = this.button({\n        contents: this.ui.icon(this.options.icons.alignCenter),\n        tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n        click: this.context.createInvokeHandler('editor.justifyCenter')\n      });\n      var justifyRight = this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n        click: this.context.createInvokeHandler('editor.justifyRight')\n      });\n      var justifyFull = this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n        click: this.context.createInvokeHandler('editor.justifyFull')\n      });\n      var outdent = this.button({\n        contents: this.ui.icon(this.options.icons.outdent),\n        tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n        click: this.context.createInvokeHandler('editor.outdent')\n      });\n      var indent = this.button({\n        contents: this.ui.icon(this.options.icons.indent),\n        tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n        click: this.context.createInvokeHandler('editor.indent')\n      });\n      this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n      this.context.memo('button.indent', func.invoke(indent, 'render'));\n      this.context.memo('button.paragraph', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.alignLeft), _this2.options),\n          tooltip: _this2.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown([_this2.ui.buttonGroup({\n          className: 'note-align',\n          children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n        }), _this2.ui.buttonGroup({\n          className: 'note-list',\n          children: [outdent, indent]\n        })])]).render();\n      });\n      this.context.memo('button.height', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.textHeight), _this2.options),\n          tooltip: _this2.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          items: _this2.options.lineHeights,\n          checkClassName: _this2.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: _this2.lang.font.height,\n          click: _this2.context.createInvokeHandler('editor.lineHeight')\n        })]).render();\n      });\n      this.context.memo('button.table', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.table), _this2.options),\n          tooltip: _this2.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          title: _this2.lang.table.table,\n          className: 'note-table',\n          items: ['<div class=\"note-dimension-picker\">', '<div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"></div>', '<div class=\"note-dimension-picker-highlighted\"></div>', '<div class=\"note-dimension-picker-unhighlighted\"></div>', '</div>', '<div class=\"note-dimension-display\">1 x 1</div>'].join('')\n        })], {\n          callback: function callback($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: _this2.options.insertTableMaxSize.col + 'em',\n              height: _this2.options.insertTableMaxSize.row + 'em'\n            }).mousedown(_this2.context.createInvokeHandler('editor.insertTable')).on('mousemove', _this2.tableMoveHandler.bind(_this2));\n          }\n        }).render();\n      });\n      this.context.memo('button.link', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.link),\n          tooltip: _this2.lang.link.link + _this2.representShortcut('linkDialog.show'),\n          click: _this2.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.picture', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.picture),\n          tooltip: _this2.lang.image.image,\n          click: _this2.context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n      this.context.memo('button.video', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.video),\n          tooltip: _this2.lang.video.video,\n          click: _this2.context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n      this.context.memo('button.hr', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.minus),\n          tooltip: _this2.lang.hr.insert + _this2.representShortcut('insertHorizontalRule'),\n          click: _this2.context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n      this.context.memo('button.fullscreen', function () {\n        return _this2.button({\n          className: 'btn-fullscreen note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.arrowsAlt),\n          tooltip: _this2.lang.options.fullscreen,\n          click: _this2.context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n      this.context.memo('button.codeview', function () {\n        return _this2.button({\n          className: 'btn-codeview note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.code),\n          tooltip: _this2.lang.options.codeview,\n          click: _this2.context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n      this.context.memo('button.redo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.redo),\n          tooltip: _this2.lang.history.redo + _this2.representShortcut('redo'),\n          click: _this2.context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n      this.context.memo('button.undo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.undo),\n          tooltip: _this2.lang.history.undo + _this2.representShortcut('undo'),\n          click: _this2.context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n      this.context.memo('button.help', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.question),\n          tooltip: _this2.lang.options.help,\n          click: _this2.context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    }\n    /**\n     * image: [\n     *   ['imageResize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone']],\n     *   ['remove', ['removeMedia']],\n     * ],\n     */\n\n  }, {\n    key: \"addImagePopoverButtons\",\n    value: function addImagePopoverButtons() {\n      var _this3 = this;\n\n      // Image Size Buttons\n      this.context.memo('button.resizeFull', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: _this3.lang.image.resizeFull,\n          click: _this3.context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      this.context.memo('button.resizeHalf', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: _this3.lang.image.resizeHalf,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      this.context.memo('button.resizeQuarter', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: _this3.lang.image.resizeQuarter,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n      this.context.memo('button.resizeNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.resizeNone,\n          click: _this3.context.createInvokeHandler('editor.resize', '0')\n        }).render();\n      }); // Float Buttons\n\n      this.context.memo('button.floatLeft', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatLeft),\n          tooltip: _this3.lang.image.floatLeft,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n      this.context.memo('button.floatRight', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatRight),\n          tooltip: _this3.lang.image.floatRight,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n      this.context.memo('button.floatNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.floatNone,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      }); // Remove Buttons\n\n      this.context.memo('button.removeMedia', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.trash),\n          tooltip: _this3.lang.image.remove,\n          click: _this3.context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    }\n  }, {\n    key: \"addLinkPopoverButtons\",\n    value: function addLinkPopoverButtons() {\n      var _this4 = this;\n\n      this.context.memo('button.linkDialogShow', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.link),\n          tooltip: _this4.lang.link.edit,\n          click: _this4.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.unlink', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.unlink),\n          tooltip: _this4.lang.link.unlink,\n          click: _this4.context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    }\n    /**\n     * table : [\n     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n     * ],\n     */\n\n  }, {\n    key: \"addTablePopoverButtons\",\n    value: function addTablePopoverButtons() {\n      var _this5 = this;\n\n      this.context.memo('button.addRowUp', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowAbove),\n          tooltip: _this5.lang.table.addRowAbove,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'top')\n        }).render();\n      });\n      this.context.memo('button.addRowDown', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowBelow),\n          tooltip: _this5.lang.table.addRowBelow,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'bottom')\n        }).render();\n      });\n      this.context.memo('button.addColLeft', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colBefore),\n          tooltip: _this5.lang.table.addColLeft,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'left')\n        }).render();\n      });\n      this.context.memo('button.addColRight', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colAfter),\n          tooltip: _this5.lang.table.addColRight,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'right')\n        }).render();\n      });\n      this.context.memo('button.deleteRow', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowRemove),\n          tooltip: _this5.lang.table.delRow,\n          click: _this5.context.createInvokeHandler('editor.deleteRow')\n        }).render();\n      });\n      this.context.memo('button.deleteCol', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colRemove),\n          tooltip: _this5.lang.table.delCol,\n          click: _this5.context.createInvokeHandler('editor.deleteCol')\n        }).render();\n      });\n      this.context.memo('button.deleteTable', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.trash),\n          tooltip: _this5.lang.table.delTable,\n          click: _this5.context.createInvokeHandler('editor.deleteTable')\n        }).render();\n      });\n    }\n  }, {\n    key: \"build\",\n    value: function build($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = Array.isArray(group) ? group[0] : group;\n        var buttons = Array.isArray(group) ? group.length === 1 ? [group[0]] : group[1] : [group];\n        var $group = this.ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var btn = this.context.memo('button.' + buttons[idx]);\n\n          if (btn) {\n            $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n          }\n        }\n\n        $group.appendTo($container);\n      }\n    }\n    /**\n     * @param {jQuery} [$container]\n     */\n\n  }, {\n    key: \"updateCurrentStyle\",\n    value: function updateCurrentStyle($container) {\n      var _this6 = this;\n\n      var $cont = $container || this.$toolbar;\n      var styleInfo = this.context.invoke('editor.currentStyle');\n      this.updateBtnStates($cont, {\n        '.note-btn-bold': function noteBtnBold() {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function noteBtnItalic() {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function noteBtnUnderline() {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function noteBtnSubscript() {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function noteBtnSuperscript() {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function noteBtnStrikethrough() {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '').replace(/\\s+$/, '').replace(/^\\s+/, '');\n        });\n        var fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n        $cont.find('.dropdown-fontname a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontName + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $cont.find('.dropdown-fontsize a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare with string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontSize + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsize').text(fontSize);\n        var fontSizeUnit = styleInfo['font-size-unit'];\n        $cont.find('.dropdown-fontsizeunit a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n          var isChecked = $item.data('value') + '' === fontSizeUnit + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsizeunit').text(fontSizeUnit);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $cont.find('.dropdown-line-height li a').each(function (idx, item) {\n          // always compare with string to avoid creating another func.\n          var isChecked = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).data('value') + '' === lineHeight + '';\n          _this6.className = isChecked ? 'checked' : '';\n        });\n      }\n    }\n  }, {\n    key: \"updateBtnStates\",\n    value: function updateBtnStates($container, infos) {\n      var _this7 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(infos, function (selector, pred) {\n        _this7.ui.toggleBtnActive($container.find(selector), pred());\n      });\n    }\n  }, {\n    key: \"tableMoveHandler\",\n    value: function tableMoveHandler(event) {\n      var PX_PER_EM = 18;\n      var $picker = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target.parentNode); // target is mousecatcher\n\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n      var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox\n\n      if (event.offsetX === undefined) {\n        var posCatcher = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n      $highlighted.css({\n        width: dim.c + 'em',\n        height: dim.r + 'em'\n      });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n        $unhighlighted.css({\n          width: dim.c + 1 + 'em'\n        });\n      }\n\n      if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n        $unhighlighted.css({\n          height: dim.r + 1 + 'em'\n        });\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    }\n  }]);\n\n  return Buttons;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Toolbar.js\nfunction Toolbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Toolbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Toolbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Toolbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Toolbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Toolbar_Toolbar = /*#__PURE__*/function () {\n  function Toolbar(context) {\n    Toolbar_classCallCheck(this, Toolbar);\n\n    this.context = context;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.options = context.options;\n    this.isFollowing = false;\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  Toolbar_createClass(Toolbar, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !this.options.airMode;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.options.toolbar = this.options.toolbar || [];\n\n      if (!this.options.toolbar.length) {\n        this.$toolbar.hide();\n      } else {\n        this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n      }\n\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n\n      this.changeContainer(false);\n      this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        _this.context.invoke('buttons.updateCurrentStyle');\n      });\n      this.context.invoke('buttons.updateCurrentStyle');\n\n      if (this.options.followingToolbar) {\n        this.$window.on('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$toolbar.children().remove();\n\n      if (this.options.followingToolbar) {\n        this.$window.off('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"followScroll\",\n    value: function followScroll() {\n      if (this.$editor.hasClass('fullscreen')) {\n        return false;\n      }\n\n      var editorHeight = this.$editor.outerHeight();\n      var editorWidth = this.$editor.width();\n      var toolbarHeight = this.$toolbar.height();\n      var statusbarHeight = this.$statusbar.height(); // check if the web app is currently using another static bar\n\n      var otherBarHeight = 0;\n\n      if (this.options.otherStaticBar) {\n        otherBarHeight = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.otherStaticBar).outerHeight();\n      }\n\n      var currentOffset = this.$document.scrollTop();\n      var editorOffsetTop = this.$editor.offset().top;\n      var editorOffsetBottom = editorOffsetTop + editorHeight;\n      var activateOffset = editorOffsetTop - otherBarHeight;\n      var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight - statusbarHeight;\n\n      if (!this.isFollowing && currentOffset > activateOffset && currentOffset < deactivateOffsetBottom - toolbarHeight) {\n        this.isFollowing = true;\n        this.$editable.css({\n          marginTop: this.$toolbar.outerHeight()\n        });\n        this.$toolbar.css({\n          position: 'fixed',\n          top: otherBarHeight,\n          width: editorWidth,\n          zIndex: 1000\n        });\n      } else if (this.isFollowing && (currentOffset < activateOffset || currentOffset > deactivateOffsetBottom)) {\n        this.isFollowing = false;\n        this.$toolbar.css({\n          position: 'relative',\n          top: 0,\n          width: '100%',\n          zIndex: 'auto'\n        });\n        this.$editable.css({\n          marginTop: ''\n        });\n      }\n    }\n  }, {\n    key: \"changeContainer\",\n    value: function changeContainer(isFullscreen) {\n      if (isFullscreen) {\n        this.$toolbar.prependTo(this.$editor);\n      } else {\n        if (this.options.toolbarContainer) {\n          this.$toolbar.appendTo(this.options.toolbarContainer);\n        }\n      }\n\n      if (this.options.followingToolbar) {\n        this.followScroll();\n      }\n    }\n  }, {\n    key: \"updateFullscreen\",\n    value: function updateFullscreen(isFullscreen) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n      this.changeContainer(isFullscreen);\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    }\n  }, {\n    key: \"activate\",\n    value: function activate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, true);\n    }\n  }, {\n    key: \"deactivate\",\n    value: function deactivate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, false);\n    }\n  }]);\n\n  return Toolbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkDialog.js\nfunction LinkDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar LinkDialog_LinkDialog = /*#__PURE__*/function () {\n  function LinkDialog(context) {\n    LinkDialog_classCallCheck(this, LinkDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  LinkDialog_createClass(LinkDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.textToDisplay, \"</label>\"), \"<input id=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-link-text form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>', '<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.url, \"</label>\"), \"<input id=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-link-url form-control note-form-control note-input\\\" type=\\\"text\\\" value=\\\"http://\\\"/>\"), '</div>', !this.options.disableLinkTarget ? external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-open-in-new-window',\n        text: this.lang.link.openInNewWindow,\n        checked: true\n      }).render()).html() : '', external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-use-protocol',\n        text: this.lang.link.useProtocol,\n        checked: true\n      }).render()).html()].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.link.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        className: 'link-dialog',\n        title: this.lang.link.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n    /**\n     * toggle update button\n     */\n\n  }, {\n    key: \"toggleLinkBtn\",\n    value: function toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n      this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    }\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showLinkDialog\",\n    value: function showLinkDialog(linkInfo) {\n      var _this = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $linkText = _this.$dialog.find('.note-link-text');\n\n        var $linkUrl = _this.$dialog.find('.note-link-url');\n\n        var $linkBtn = _this.$dialog.find('.note-link-btn');\n\n        var $openInNewWindow = _this.$dialog.find('.sn-checkbox-open-in-new-window input[type=checkbox]');\n\n        var $useProtocol = _this.$dialog.find('.sn-checkbox-use-protocol input[type=checkbox]');\n\n        _this.ui.onDialogShown(_this.$dialog, function () {\n          _this.context.triggerEvent('dialog.shown'); // If no url was given and given text is valid URL then copy that into URL Field\n\n\n          if (!linkInfo.url && func.isValidUrl(linkInfo.text)) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.on('input paste propertychange', function () {\n            // If linktext was modified by input events,\n            // cloning text from linkUrl will be stopped.\n            linkInfo.text = $linkText.val();\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.text);\n          $linkUrl.on('input paste propertychange', function () {\n            // Display same text on `Text to display` as default\n            // when linktext has no text\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.url);\n\n          if (!env.isSupportTouch) {\n            $linkUrl.trigger('focus');\n          }\n\n          _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n\n          _this.bindEnterKey($linkUrl, $linkBtn);\n\n          _this.bindEnterKey($linkText, $linkBtn);\n\n          var isNewWindowChecked = linkInfo.isNewWindow !== undefined ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;\n          $openInNewWindow.prop('checked', isNewWindowChecked);\n          var useProtocolChecked = linkInfo.url ? false : _this.context.options.useProtocol;\n          $useProtocol.prop('checked', useProtocolChecked);\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked'),\n              checkProtocol: $useProtocol.is(':checked')\n            });\n\n            _this.ui.hideDialog(_this.$dialog);\n          });\n        });\n\n        _this.ui.onDialogHidden(_this.$dialog, function () {\n          // detach events\n          $linkText.off();\n          $linkUrl.off();\n          $linkBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this.ui.showDialog(_this.$dialog);\n      }).promise();\n    }\n    /**\n     * @param {Object} layoutInfo\n     */\n\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this2 = this;\n\n      var linkInfo = this.context.invoke('editor.getLinkInfo');\n      this.context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        _this2.context.invoke('editor.restoreRange');\n\n        _this2.context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        _this2.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return LinkDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkPopover.js\nfunction LinkPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar LinkPopover_LinkPopover = /*#__PURE__*/function () {\n  function LinkPopover(context) {\n    var _this = this;\n\n    LinkPopover_classCallCheck(this, LinkPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteChangeSummernoteScroll() {\n        _this.update();\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  LinkPopover_createClass(LinkPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.link);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-link-popover',\n        callback: function callback($node) {\n          var $content = $node.find('.popover-content,.note-popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.link);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!this.context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = this.context.invoke('editor.getLastRange');\n\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).text(href);\n        var pos = dom.posFromPlaceholder(anchor);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return LinkPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImageDialog.js\nfunction ImageDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImageDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImageDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar ImageDialog_ImageDialog = /*#__PURE__*/function () {\n  function ImageDialog(context) {\n    ImageDialog_classCallCheck(this, ImageDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  ImageDialog_createClass(ImageDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var imageLimitation = '';\n\n      if (this.options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = \"<small>\".concat(this.lang.image.maximumFileSize + ' : ' + readableSize, \"</small>\");\n      }\n\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group note-group-select-from-files\">', '<label for=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>', '<input id=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-image-input form-control-file note-form-control note-input\" ', ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\"/>', imageLimitation, '</div>', '<div class=\"form-group note-group-image-url\">', '<label for=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.url + '</label>', '<input id=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-image-url form-control note-form-control note-input\" type=\"text\"/>', '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.image.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.image.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') {\n          // image url\n          // If onImageLinkInsert set,\n          if (_this.options.callbacks.onImageLinkInsert) {\n            _this.context.triggerEvent('image.link.insert', data);\n          } else {\n            _this.context.invoke('editor.insertImage', data);\n          }\n        } else {\n          // array of files\n          _this.context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showImageDialog\",\n    value: function showImageDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $imageInput = _this2.$dialog.find('.note-image-input');\n\n        var $imageUrl = _this2.$dialog.find('.note-image-url');\n\n        var $imageBtn = _this2.$dialog.find('.note-image-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown'); // Cloning imageInput to clear element.\n\n\n          $imageInput.replaceWith($imageInput.clone().on('change', function (event) {\n            deferred.resolve(event.target.files || event.target.value);\n          }).val(''));\n          $imageUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($imageBtn, $imageUrl.val());\n          }).val('');\n\n          if (!env.isSupportTouch) {\n            $imageUrl.trigger('focus');\n          }\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($imageUrl.val());\n          });\n\n          _this2.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $imageInput.off();\n          $imageUrl.off();\n          $imageBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return ImageDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImagePopover.js\nfunction ImagePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImagePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImagePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImagePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImagePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\n\nvar ImagePopover_ImagePopover = /*#__PURE__*/function () {\n  function ImagePopover(context) {\n    var _this = this;\n\n    ImagePopover_classCallCheck(this, ImagePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n    this.events = {\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  ImagePopover_createClass(ImagePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.image);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.image);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (dom.isImg(target)) {\n        var position = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target).offset();\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        var pos = {};\n\n        if (this.options.popatmouse) {\n          pos.left = event.pageX - 20;\n          pos.top = event.pageY;\n        } else {\n          pos = position;\n        }\n\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return ImagePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/TablePopover.js\nfunction TablePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction TablePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction TablePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) TablePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) TablePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar TablePopover_TablePopover = /*#__PURE__*/function () {\n  function TablePopover(context) {\n    var _this = this;\n\n    TablePopover_classCallCheck(this, TablePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  TablePopover_createClass(TablePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.table);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-table-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.table); // [workaround] Disable Firefox's default table editor\n\n      if (env.isFF) {\n        document.execCommand('enableInlineTableEditing', false, false);\n      }\n\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isCell = dom.isCell(target);\n\n      if (isCell) {\n        var pos = dom.posFromPlaceholder(target);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n\n      return isCell;\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return TablePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/VideoDialog.js\nfunction VideoDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction VideoDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction VideoDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) VideoDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) VideoDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar VideoDialog_VideoDialog = /*#__PURE__*/function () {\n  function VideoDialog(context) {\n    VideoDialog_classCallCheck(this, VideoDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  VideoDialog_createClass(VideoDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group row-fluid\">', \"<label for=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.video.url, \" <small class=\\\"text-muted\\\">\").concat(this.lang.video.providers, \"</small></label>\"), \"<input id=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-video-url form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.video.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.video.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"createVideoNode\",\n    value: function createVideoNode(url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /\\/\\/(?:(?:www|m)\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))([\\w|-]{11})(?:(?:[\\?&]t=)(\\S+))?$/;\n      var ytRegExpForStart = /^(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?$/;\n      var ytMatch = url.match(ytRegExp);\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n      var qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n      var qqMatch = url.match(qqRegExp);\n      var qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n      var qqMatch2 = url.match(qqRegExp2);\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n      var fbRegExp = /(?:www\\.|\\/\\/)facebook\\.com\\/([^\\/]+)\\/videos\\/([0-9]+)/;\n      var fbMatch = url.match(fbRegExp);\n      var $video;\n\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        var start = 0;\n\n        if (typeof ytMatch[2] !== 'undefined') {\n          var ytMatchForStart = ytMatch[2].match(ytRegExpForStart);\n\n          if (ytMatchForStart) {\n            for (var n = [3600, 60, 1], i = 0, r = n.length; i < r; i++) {\n              start += typeof ytMatchForStart[i + 1] !== 'undefined' ? n[i] * parseInt(ytMatchForStart[i + 1], 10) : 0;\n            }\n          }\n        }\n\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.youtube.com/embed/' + youtubeId + (start > 0 ? '?start=' + start : '')).attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/').attr('width', '612').attr('height', '710').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', vMatch[0] + '/embed/simple').attr('width', '600').attr('height', '600').attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('src', '//player.vimeo.com/video/' + vimMatch[3]).attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2]).attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '498').attr('width', '510').attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (qqMatch && qqMatch[1].length || qqMatch2 && qqMatch2[2].length) {\n        var vid = qqMatch && qqMatch[1].length ? qqMatch[1] : qqMatch2[2];\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '310').attr('width', '500').attr('src', 'https://v.qq.com/txp/iframe/player.html?vid=' + vid + '&amp;auto=0');\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<video controls>').attr('src', url).attr('width', '640').attr('height', '360');\n      } else if (fbMatch && fbMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://www.facebook.com/plugins/video.php?href=' + encodeURIComponent(fbMatch[0]) + '&show_text=0&width=560').attr('width', '560').attr('height', '301').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n      return $video[0];\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      var text = this.context.invoke('editor.getSelectedText');\n      this.context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange'); // build node\n\n\n        var $node = _this.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          _this.context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show video dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showVideoDialog\",\n    value: function showVideoDialog()\n    /* text */\n    {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $videoUrl = _this2.$dialog.find('.note-video-url');\n\n        var $videoBtn = _this2.$dialog.find('.note-video-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          $videoUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($videoBtn, $videoUrl.val());\n          });\n\n          if (!env.isSupportTouch) {\n            $videoUrl.trigger('focus');\n          }\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($videoUrl.val());\n          });\n\n          _this2.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $videoUrl.off();\n          $videoBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return VideoDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HelpDialog.js\nfunction HelpDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HelpDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HelpDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) HelpDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) HelpDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar HelpDialog_HelpDialog = /*#__PURE__*/function () {\n  function HelpDialog(context) {\n    HelpDialog_classCallCheck(this, HelpDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  HelpDialog_createClass(HelpDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<p class=\"text-center\">', '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote 0.8.18</a> · ', '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ', '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>', '</p>'].join('');\n      this.$dialog = this.ui.dialog({\n        title: this.lang.options.help,\n        fade: this.options.dialogsFade,\n        body: this.createShortcutList(),\n        footer: body,\n        callback: function callback($node) {\n          $node.find('.modal-body,.note-modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"createShortcutList\",\n    value: function createShortcutList() {\n      var _this = this;\n\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div><div class=\"help-list-item\"></div></div>');\n        $row.append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<span/>').html(_this.context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    }\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showHelpDialog\",\n    value: function showHelpDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          deferred.resolve();\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      }).promise();\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this3 = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        _this3.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return HelpDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AirPopover.js\nfunction AirPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AirPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AirPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) AirPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) AirPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar AIRMODE_POPOVER_X_OFFSET = -5;\nvar AIRMODE_POPOVER_Y_OFFSET = 5;\n\nvar AirPopover_AirPopover = /*#__PURE__*/function () {\n  function AirPopover(context) {\n    var _this = this;\n\n    AirPopover_classCallCheck(this, AirPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.hidable = true;\n    this.onContextmenu = false;\n    this.pageX = null;\n    this.pageY = null;\n    this.events = {\n      'summernote.contextmenu': function summernoteContextmenu(e) {\n        if (_this.options.editing) {\n          e.preventDefault();\n          e.stopPropagation();\n          _this.onContextmenu = true;\n\n          _this.update(true);\n        }\n      },\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.pageX = e.pageX;\n        _this.pageY = e.pageY;\n      },\n      'summernote.keyup summernote.mouseup summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteScroll(we, e) {\n        if (_this.options.editing && !_this.onContextmenu) {\n          _this.pageX = e.pageX;\n          _this.pageY = e.pageY;\n\n          _this.update();\n        }\n\n        _this.onContextmenu = false;\n      },\n      'summernote.disable summernote.change summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteChangeSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.focusout': function summernoteFocusout() {\n        if (!_this.$popover.is(':active,:focus')) {\n          _this.hide();\n        }\n      }\n    };\n  }\n\n  AirPopover_createClass(AirPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$popover = this.ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.air); // disable hiding this popover preemptively by 'summernote.blur' event.\n\n      this.$popover.on('mousedown', function () {\n        _this2.hidable = false;\n      }); // (re-)enable hiding after 'summernote.blur' has been handled (aka. ignored).\n\n      this.$popover.on('mouseup', function () {\n        _this2.hidable = true;\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(forcelyOpen) {\n      var styleInfo = this.context.invoke('editor.currentStyle');\n\n      if (styleInfo.range && (!styleInfo.range.isCollapsed() || forcelyOpen)) {\n        var rect = {\n          left: this.pageX,\n          top: this.pageY\n        };\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        rect.top -= containerOffset.top;\n        rect.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(rect.left, 0) + AIRMODE_POPOVER_X_OFFSET,\n          top: rect.top + AIRMODE_POPOVER_Y_OFFSET\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$popover.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      if (this.hidable) {\n        this.$popover.hide();\n      }\n    }\n  }]);\n\n  return AirPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HintPopover.js\nfunction HintPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HintPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HintPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) HintPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) HintPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar POPOVER_DIST = 5;\n\nvar HintPopover_HintPopover = /*#__PURE__*/function () {\n  function HintPopover(context) {\n    var _this = this;\n\n    HintPopover_classCallCheck(this, HintPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = Array.isArray(this.hint) ? this.hint : [this.hint];\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  HintPopover_createClass(HintPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.hints.length > 0;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.lastWordRange = null;\n      this.matchingWord = null;\n      this.$popover = this.ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo(this.options.container);\n      this.$popover.hide();\n      this.$content = this.$popover.find('.popover-content,.note-popover-content');\n      this.$content.on('click', '.note-hint-item', function (e) {\n        _this2.$content.find('.active').removeClass('active');\n\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).addClass('active');\n\n        _this2.replace();\n      });\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"selectItem\",\n    value: function selectItem($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n      this.$content[0].scrollTop = $item[0].offsetTop - this.$content.innerHeight() / 2;\n    }\n  }, {\n    key: \"moveDown\",\n    value: function moveDown() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    }\n  }, {\n    key: \"moveUp\",\n    value: function moveUp() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item); // If matchingWord length = 0 -> capture OK / open hint / but as mention capture \"\" (\\w*)\n\n        if (this.matchingWord !== null && this.matchingWord.length === 0) {\n          this.lastWordRange.so = this.lastWordRange.eo; // Else si > 0 and normal case -> adjust range \"before\" for correct position of insertion\n        } else if (this.matchingWord !== null && this.matchingWord.length > 0 && !this.lastWordRange.isCollapsed()) {\n          var rangeCompute = this.lastWordRange.eo - this.lastWordRange.so - this.matchingWord.length;\n\n          if (rangeCompute > 0) {\n            this.lastWordRange.so += rangeCompute;\n          }\n        }\n\n        this.lastWordRange.insertNode(node);\n\n        if (this.options.hintSelect === 'next') {\n          var blank = document.createTextNode('');\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).after(blank);\n          range.createFromNodeBefore(blank).select();\n        } else {\n          range.createFromNodeAfter(node).select();\n        }\n\n        this.lastWordRange = null;\n        this.hide();\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"nodeFromItem\",\n    value: function nodeFromItem($item) {\n      var hint = this.hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n\n      return node;\n    }\n  }, {\n    key: \"createItemTemplates\",\n    value: function createItemTemplates(hintIdx, items) {\n      var hint = this.hints[hintIdx];\n      return items.map(function (item\n      /*, idx */\n      ) {\n        var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n        return $item;\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === core_key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === core_key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === core_key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    }\n  }, {\n    key: \"searchKeyword\",\n    value: function searchKeyword(index, keyword, callback) {\n      var hint = this.hints[index];\n\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        this.matchingWord = matches[0];\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    }\n  }, {\n    key: \"createGroup\",\n    value: function createGroup(idx, keyword) {\n      var _this3 = this;\n\n      var $group = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-group note-hint-group-' + idx + '\"></div>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n\n        if (items.length) {\n          $group.html(_this3.createItemTemplates(idx, items));\n\n          _this3.show();\n        }\n      });\n      return $group;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      var _this4 = this;\n\n      if (!lists.contains([core_key.code.ENTER, core_key.code.UP, core_key.code.DOWN], e.keyCode)) {\n        var _range = this.context.invoke('editor.getLastRange');\n\n        var wordRange, keyword;\n\n        if (this.options.hintMode === 'words') {\n          wordRange = _range.getWordsRange(_range);\n          keyword = wordRange.toString();\n          this.hints.forEach(function (hint) {\n            if (hint.match.test(keyword)) {\n              wordRange = _range.getWordsMatchRange(hint.match);\n              return false;\n            }\n          });\n\n          if (!wordRange) {\n            this.hide();\n            return;\n          }\n\n          keyword = wordRange.toString();\n        } else {\n          wordRange = _range.getWordRange();\n          keyword = wordRange.toString();\n        }\n\n        if (this.hints.length && keyword) {\n          this.$content.empty();\n          var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n          var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n\n          if (bnd) {\n            bnd.top -= containerOffset.top;\n            bnd.left -= containerOffset.left;\n            this.$popover.hide();\n            this.lastWordRange = wordRange;\n            this.hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                _this4.createGroup(idx, keyword).appendTo(_this4.$content);\n              }\n            }); // select first .note-hint-item\n\n            this.$content.find('.note-hint-item:first').addClass('active'); // set position for popover after group is created\n\n            if (this.direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n          }\n        } else {\n          this.hide();\n        }\n      }\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      this.$popover.show();\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return HintPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/settings.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  version: '0.8.18',\n  plugins: {},\n  dom: dom,\n  range: range,\n  lists: lists,\n  options: {\n    langInfo: external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'],\n    editing: true,\n    modules: {\n      'editor': Editor_Editor,\n      'clipboard': Clipboard_Clipboard,\n      'dropzone': Dropzone_Dropzone,\n      'codeview': Codeview_CodeView,\n      'statusbar': Statusbar_Statusbar,\n      'fullscreen': Fullscreen_Fullscreen,\n      'handle': Handle_Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover_HintPopover,\n      'autoLink': AutoLink_AutoLink,\n      'autoSync': AutoSync_AutoSync,\n      'autoReplace': AutoReplace_AutoReplace,\n      'placeholder': Placeholder_Placeholder,\n      'buttons': Buttons_Buttons,\n      'toolbar': Toolbar_Toolbar,\n      'linkDialog': LinkDialog_LinkDialog,\n      'linkPopover': LinkPopover_LinkPopover,\n      'imageDialog': ImageDialog_ImageDialog,\n      'imagePopover': ImagePopover_ImagePopover,\n      'tablePopover': TablePopover_TablePopover,\n      'videoDialog': VideoDialog_VideoDialog,\n      'helpDialog': HelpDialog_HelpDialog,\n      'airPopover': AirPopover_AirPopover\n    },\n    buttons: {},\n    lang: 'en-US',\n    followingToolbar: false,\n    toolbarPosition: 'top',\n    otherStaticBar: '',\n    // toolbar\n    codeviewKeepButton: false,\n    toolbar: [['style', ['style']], ['font', ['bold', 'underline', 'clear']], ['fontname', ['fontname']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']]],\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [['resize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], ['float', ['floatLeft', 'floatRight', 'floatNone']], ['remove', ['removeMedia']]],\n      link: [['link', ['linkDialogShow', 'unlink']]],\n      table: [['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]],\n      air: [['color', ['color']], ['font', ['bold', 'underline', 'clear']], ['para', ['ul', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture']], ['view', ['fullscreen', 'codeview']]]\n    },\n    // air mode: inline editor\n    airMode: false,\n    overrideContextMenu: false,\n    // TBD\n    width: null,\n    height: null,\n    linkTargetBlank: true,\n    useProtocol: true,\n    defaultProtocol: 'http://',\n    focus: false,\n    tabDisabled: false,\n    tabSize: 4,\n    styleWithCSS: false,\n    shortcuts: true,\n    textareaAutoSync: true,\n    tooltip: 'auto',\n    container: null,\n    maxTextLength: 0,\n    blockquoteBreakingLevel: 2,\n    spellCheck: true,\n    disableGrammar: false,\n    placeholder: null,\n    inheritPlaceholder: false,\n    // TODO: need to be documented\n    recordEveryKeystroke: false,\n    historyLimit: 200,\n    // TODO: need to be documented\n    showDomainOnlyForAutolink: false,\n    // TODO: need to be documented\n    hintMode: 'word',\n    hintSelect: 'after',\n    hintDirection: 'bottom',\n    styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n    fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana'],\n    fontNamesIgnoreCheck: [],\n    addDefaultFonts: true,\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n    fontSizeUnits: ['px', 'pt'],\n    // pallete colors(n x n)\n    colors: [['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'], ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'], ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'], ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'], ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'], ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'], ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'], ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']],\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'], ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'], ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'], ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'], ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'], ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'], ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'], ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']],\n    colorButton: {\n      foreColor: '#000000',\n      backColor: '#FFFF00'\n    },\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n    tableClassName: 'table table-bordered',\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n    // By default, dialogs are attached in container.\n    dialogsInBody: false,\n    dialogsFade: false,\n    maximumImageFileSize: null,\n    callbacks: {\n      onBeforeCommand: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onChange: null,\n      onChangeCodeview: null,\n      onDialogShown: null,\n      onEnter: null,\n      onFocus: null,\n      onImageLinkInsert: null,\n      onImageUpload: null,\n      onImageUploadError: null,\n      onInit: null,\n      onKeydown: null,\n      onKeyup: null,\n      onMousedown: null,\n      onMouseup: null,\n      onPaste: null,\n      onScroll: null\n    },\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n    codeviewFilter: false,\n    codeviewFilterRegex: /<\\/*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|ilayer|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|t(?:itle|extarea)|xml)[^>]*?>/gi,\n    codeviewIframeFilter: true,\n    codeviewIframeWhitelistSrc: [],\n    codeviewIframeWhitelistSrcBase: ['www.youtube.com', 'www.youtube-nocookie.com', 'www.facebook.com', 'vine.co', 'instagram.com', 'player.vimeo.com', 'www.dailymotion.com', 'player.youku.com', 'v.qq.com'],\n    keyMap: {\n      pc: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n      mac: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'floatLeft': 'note-icon-float-left',\n      'floatRight': 'note-icon-float-right',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'rollback': 'note-icon-rollback',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\n/***/ }),\n\n/***/ 51:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// EXTERNAL MODULE: ./src/js/base/renderer.js\nvar renderer = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./src/js/lite/ui/TooltipUI.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar TooltipUI_TooltipUI = /*#__PURE__*/function () {\n  function TooltipUI($node, options) {\n    _classCallCheck(this, TooltipUI);\n\n    this.$node = $node;\n    this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, {\n      title: '',\n      target: options.container,\n      trigger: 'hover focus',\n      placement: 'bottom'\n    }, options); // create tooltip node\n\n    this.$tooltip = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-tooltip\">', '<div class=\"note-tooltip-arrow\"></div>', '<div class=\"note-tooltip-content\"></div>', '</div>'].join('')); // define event\n\n    if (this.options.trigger !== 'manual') {\n      var showCallback = this.show.bind(this);\n      var hideCallback = this.hide.bind(this);\n      var toggleCallback = this.toggle.bind(this);\n      this.options.trigger.split(' ').forEach(function (eventName) {\n        if (eventName === 'hover') {\n          $node.off('mouseenter mouseleave');\n          $node.on('mouseenter', showCallback).on('mouseleave', hideCallback);\n        } else if (eventName === 'click') {\n          $node.on('click', toggleCallback);\n        } else if (eventName === 'focus') {\n          $node.on('focus', showCallback).on('blur', hideCallback);\n        }\n      });\n    }\n  }\n\n  _createClass(TooltipUI, [{\n    key: \"show\",\n    value: function show() {\n      var $node = this.$node;\n      var offset = $node.offset();\n      var targetOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.target).offset();\n      offset.top -= targetOffset.top;\n      offset.left -= targetOffset.left;\n      var $tooltip = this.$tooltip;\n      var title = this.options.title || $node.attr('title') || $node.data('title');\n      var placement = this.options.placement || $node.data('placement');\n      $tooltip.addClass(placement);\n      $tooltip.find('.note-tooltip-content').text(title);\n      $tooltip.appendTo(this.options.target);\n      var nodeWidth = $node.outerWidth();\n      var nodeHeight = $node.outerHeight();\n      var tooltipWidth = $tooltip.outerWidth();\n      var tooltipHeight = $tooltip.outerHeight();\n\n      if (placement === 'bottom') {\n        $tooltip.css({\n          top: offset.top + nodeHeight,\n          left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)\n        });\n      } else if (placement === 'top') {\n        $tooltip.css({\n          top: offset.top - tooltipHeight,\n          left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)\n        });\n      } else if (placement === 'left') {\n        $tooltip.css({\n          top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),\n          left: offset.left - tooltipWidth\n        });\n      } else if (placement === 'right') {\n        $tooltip.css({\n          top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),\n          left: offset.left + nodeWidth\n        });\n      }\n\n      $tooltip.addClass('in');\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this = this;\n\n      this.$tooltip.removeClass('in');\n      setTimeout(function () {\n        _this.$tooltip.remove();\n      }, 200);\n    }\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.$tooltip.hasClass('in')) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    }\n  }]);\n\n  return TooltipUI;\n}();\n\n/* harmony default export */ var ui_TooltipUI = (TooltipUI_TooltipUI);\n// CONCATENATED MODULE: ./src/js/lite/ui/DropdownUI.js\nfunction DropdownUI_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction DropdownUI_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction DropdownUI_createClass(Constructor, protoProps, staticProps) { if (protoProps) DropdownUI_defineProperties(Constructor.prototype, protoProps); if (staticProps) DropdownUI_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar DropdownUI_DropdownUI = /*#__PURE__*/function () {\n  function DropdownUI($node, options) {\n    DropdownUI_classCallCheck(this, DropdownUI);\n\n    this.$button = $node;\n    this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, {\n      target: options.container\n    }, options);\n    this.setEvent();\n  }\n\n  DropdownUI_createClass(DropdownUI, [{\n    key: \"setEvent\",\n    value: function setEvent() {\n      var _this = this;\n\n      this.$button.on('click', function (e) {\n        _this.toggle();\n\n        e.stopImmediatePropagation();\n      });\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.note-btn-group.open');\n      $parent.find('.note-btn.active').removeClass('active');\n      $parent.removeClass('open');\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      this.$button.addClass('active');\n      this.$button.parent().addClass('open');\n      var $dropdown = this.$button.next();\n      var offset = $dropdown.offset();\n      var width = $dropdown.outerWidth();\n      var windowWidth = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window).width();\n      var targetMarginRight = parseFloat(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.target).css('margin-right'));\n\n      if (offset.left + width > windowWidth - targetMarginRight) {\n        $dropdown.css('margin-left', windowWidth - targetMarginRight - (offset.left + width));\n      } else {\n        $dropdown.css('margin-left', '');\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$button.removeClass('active');\n      this.$button.parent().removeClass('open');\n    }\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      var isOpened = this.$button.parent().hasClass('open');\n      this.clear();\n\n      if (isOpened) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    }\n  }]);\n\n  return DropdownUI;\n}();\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document).on('click', function (e) {\n  if (!external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.target).closest('.note-btn-group').length) {\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.note-btn-group.open').removeClass('open');\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.note-btn-group .note-btn.active').removeClass('active');\n  }\n});\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document).on('click.note-dropdown-menu', function (e) {\n  external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.target).closest('.note-dropdown-menu').parent().removeClass('open');\n  external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.target).closest('.note-dropdown-menu').parent().find('.note-btn.active').removeClass('active');\n});\n/* harmony default export */ var ui_DropdownUI = (DropdownUI_DropdownUI);\n// CONCATENATED MODULE: ./src/js/lite/ui/ModalUI.js\nfunction ModalUI_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ModalUI_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ModalUI_createClass(Constructor, protoProps, staticProps) { if (protoProps) ModalUI_defineProperties(Constructor.prototype, protoProps); if (staticProps) ModalUI_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar ModalUI_ModalUI = /*#__PURE__*/function () {\n  function ModalUI($node\n  /*, options */\n  ) {\n    ModalUI_classCallCheck(this, ModalUI);\n\n    this.$modal = $node;\n    this.$backdrop = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-modal-backdrop\"/>');\n  }\n\n  ModalUI_createClass(ModalUI, [{\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      this.$backdrop.appendTo(document.body).show();\n      this.$modal.addClass('open').show();\n      this.$modal.trigger('note.modal.show');\n      this.$modal.off('click', '.close').on('click', '.close', this.hide.bind(this));\n      this.$modal.on('keydown', function (event) {\n        if (event.which === 27) {\n          event.preventDefault();\n\n          _this.hide();\n        }\n      });\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$modal.removeClass('open').hide();\n      this.$backdrop.hide();\n      this.$modal.trigger('note.modal.hide');\n      this.$modal.off('keydown');\n    }\n  }]);\n\n  return ModalUI;\n}();\n\n/* harmony default export */ var ui_ModalUI = (ModalUI_ModalUI);\n// CONCATENATED MODULE: ./src/js/lite/ui.js\n\n\n\n\n\nvar editor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-frame\"/>');\nvar toolbar = renderer[\"a\" /* default */].create('<div class=\"note-toolbar\" role=\"toolbar\"/>');\nvar editingArea = renderer[\"a\" /* default */].create('<div class=\"note-editing-area\"/>');\nvar codable = renderer[\"a\" /* default */].create('<textarea class=\"note-codable\" aria-multiline=\"true\"/>');\nvar editable = renderer[\"a\" /* default */].create('<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nvar statusbar = renderer[\"a\" /* default */].create(['<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>', '<div class=\"note-statusbar\" role=\"status\">', '<div class=\"note-resizebar\" aria-label=\"resize\">', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '</div>', '</div>'].join(''));\nvar airEditor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-airframe\"/>');\nvar airEditable = renderer[\"a\" /* default */].create(['<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"></div>', '<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>'].join(''));\nvar buttonGroup = renderer[\"a\" /* default */].create('<div class=\"note-btn-group\">');\nvar ui_button = renderer[\"a\" /* default */].create('<button type=\"button\" class=\"note-btn\" tabindex=\"-1\">', function ($node, options) {\n  // set button type\n  if (options && options.tooltip) {\n    $node.attr({\n      'aria-label': options.tooltip\n    });\n    $node.data('_lite_tooltip', new ui_TooltipUI($node, {\n      title: options.tooltip,\n      container: options.container\n    })).on('click', function (e) {\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).data('_lite_tooltip').hide();\n    });\n  }\n\n  if (options.contents) {\n    $node.html(options.contents);\n  }\n\n  if (options && options.data && options.data.toggle === 'dropdown') {\n    $node.data('_lite_dropdown', new ui_DropdownUI($node, {\n      container: options.container\n    }));\n  }\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\nvar dropdown = renderer[\"a\" /* default */].create('<div class=\"note-dropdown-menu\" role=\"list\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    var $temp = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<a class=\"note-dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + value + '\"></a>');\n    $temp.html(content).data('item', item);\n    return $temp;\n  }) : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n  $node.on('click', '> .note-dropdown-item', function (e) {\n    var $a = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this);\n    var item = $a.data('item');\n    var value = $a.data('value');\n\n    if (item.click) {\n      item.click($a);\n    } else if (options.itemClick) {\n      options.itemClick(e, item, value);\n    }\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\nvar dropdownCheck = renderer[\"a\" /* default */].create('<div class=\"note-dropdown-menu note-check\" role=\"list\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    var $temp = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<a class=\"note-dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + item + '\"></a>');\n    $temp.html([icon(options.checkClassName), ' ', content]).data('item', item);\n    return $temp;\n  }) : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n  $node.on('click', '> .note-dropdown-item', function (e) {\n    var $a = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this);\n    var item = $a.data('item');\n    var value = $a.data('value');\n\n    if (item.click) {\n      item.click($a);\n    } else if (options.itemClick) {\n      options.itemClick(e, item, value);\n    }\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\n\nvar dropdownButtonContents = function dropdownButtonContents(contents, options) {\n  return contents + ' ' + icon(options.icons.caret, 'span');\n};\n\nvar dropdownButton = function dropdownButton(opt, callback) {\n  return buttonGroup([ui_button({\n    className: 'dropdown-toggle',\n    contents: opt.title + ' ' + icon('note-icon-caret'),\n    tooltip: opt.tooltip,\n    data: {\n      toggle: 'dropdown'\n    }\n  }), dropdown({\n    className: opt.className,\n    items: opt.items,\n    template: opt.template,\n    itemClick: opt.itemClick\n  })], {\n    callback: callback\n  }).render();\n};\n\nvar dropdownCheckButton = function dropdownCheckButton(opt, callback) {\n  return buttonGroup([ui_button({\n    className: 'dropdown-toggle',\n    contents: opt.title + ' ' + icon('note-icon-caret'),\n    tooltip: opt.tooltip,\n    data: {\n      toggle: 'dropdown'\n    }\n  }), dropdownCheck({\n    className: opt.className,\n    checkClassName: opt.checkClassName,\n    items: opt.items,\n    template: opt.template,\n    itemClick: opt.itemClick\n  })], {\n    callback: callback\n  }).render();\n};\n\nvar paragraphDropdownButton = function paragraphDropdownButton(opt) {\n  return buttonGroup([ui_button({\n    className: 'dropdown-toggle',\n    contents: opt.title + ' ' + icon('note-icon-caret'),\n    tooltip: opt.tooltip,\n    data: {\n      toggle: 'dropdown'\n    }\n  }), dropdown([buttonGroup({\n    className: 'note-align',\n    children: opt.items[0]\n  }), buttonGroup({\n    className: 'note-list',\n    children: opt.items[1]\n  })])]).render();\n};\n\nvar ui_tableMoveHandler = function tableMoveHandler(event, col, row) {\n  var PX_PER_EM = 18;\n  var $picker = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target.parentNode); // target is mousecatcher\n\n  var $dimensionDisplay = $picker.next();\n  var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n  var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n  var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n  var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox\n\n  if (event.offsetX === undefined) {\n    var posCatcher = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target).offset();\n    posOffset = {\n      x: event.pageX - posCatcher.left,\n      y: event.pageY - posCatcher.top\n    };\n  } else {\n    posOffset = {\n      x: event.offsetX,\n      y: event.offsetY\n    };\n  }\n\n  var dim = {\n    c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n    r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n  };\n  $highlighted.css({\n    width: dim.c + 'em',\n    height: dim.r + 'em'\n  });\n  $catcher.data('value', dim.c + 'x' + dim.r);\n\n  if (dim.c > 3 && dim.c < col) {\n    $unhighlighted.css({\n      width: dim.c + 1 + 'em'\n    });\n  }\n\n  if (dim.r > 3 && dim.r < row) {\n    $unhighlighted.css({\n      height: dim.r + 1 + 'em'\n    });\n  }\n\n  $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n};\n\nvar tableDropdownButton = function tableDropdownButton(opt) {\n  return buttonGroup([ui_button({\n    className: 'dropdown-toggle',\n    contents: opt.title + ' ' + icon('note-icon-caret'),\n    tooltip: opt.tooltip,\n    data: {\n      toggle: 'dropdown'\n    }\n  }), dropdown({\n    className: 'note-table',\n    items: ['<div class=\"note-dimension-picker\">', '<div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"></div>', '<div class=\"note-dimension-picker-highlighted\"></div>', '<div class=\"note-dimension-picker-unhighlighted\"></div>', '</div>', '<div class=\"note-dimension-display\">1 x 1</div>'].join('')\n  })], {\n    callback: function callback($node) {\n      var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n      $catcher.css({\n        width: opt.col + 'em',\n        height: opt.row + 'em'\n      }).mousedown(opt.itemClick).mousemove(function (e) {\n        ui_tableMoveHandler(e, opt.col, opt.row);\n      });\n    }\n  }).render();\n};\n\nvar palette = renderer[\"a\" /* default */].create('<div class=\"note-color-palette\"/>', function ($node, options) {\n  var contents = [];\n\n  for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n    var eventName = options.eventName;\n    var colors = options.colors[row];\n    var colorsName = options.colorsName[row];\n    var buttons = [];\n\n    for (var col = 0, colSize = colors.length; col < colSize; col++) {\n      var color = colors[col];\n      var colorName = colorsName[col];\n      buttons.push(['<button type=\"button\" class=\"note-btn note-color-btn\"', 'style=\"background-color:', color, '\" ', 'data-event=\"', eventName, '\" ', 'data-value=\"', color, '\" ', 'data-title=\"', colorName, '\" ', 'aria-label=\"', colorName, '\" ', 'data-toggle=\"button\" tabindex=\"-1\"></button>'].join(''));\n    }\n\n    contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n  }\n\n  $node.html(contents.join(''));\n  $node.find('.note-color-btn').each(function () {\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this).data('_lite_tooltip', new ui_TooltipUI(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this), {\n      container: options.container\n    }));\n  });\n});\n\nvar ui_colorDropdownButton = function colorDropdownButton(opt, type) {\n  return buttonGroup({\n    className: 'note-color',\n    children: [ui_button({\n      className: 'note-current-color-button',\n      contents: opt.title,\n      tooltip: opt.lang.color.recent,\n      click: opt.currentClick,\n      callback: function callback($button) {\n        var $recentColor = $button.find('.note-recent-color');\n\n        if (type !== 'foreColor') {\n          $recentColor.css('background-color', '#FFFF00');\n          $button.attr('data-backColor', '#FFFF00');\n        }\n      }\n    }), ui_button({\n      className: 'dropdown-toggle',\n      contents: icon('note-icon-caret'),\n      tooltip: opt.lang.color.more,\n      data: {\n        toggle: 'dropdown'\n      }\n    }), dropdown({\n      items: ['<div>', '<div class=\"note-btn-group btn-background-color\">', '<div class=\"note-palette-title\">' + opt.lang.color.background + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset note-btn note-btn-block\" data-event=\"backColor\" data-value=\"transparent\">', opt.lang.color.transparent, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"backColor\"></div>', '<div class=\"btn-sm\">', '<input type=\"color\" id=\"html5bcp\" class=\"note-btn btn-default\" value=\"#21104A\" style=\"width:100%;\" data-value=\"cp\">', '<button type=\"button\" class=\"note-color-reset btn\" data-event=\"backColor\" data-value=\"cpbackColor\">', opt.lang.color.cpSelect, '</button>', '</div>', '</div>', '<div class=\"note-btn-group btn-foreground-color\">', '<div class=\"note-palette-title\">' + opt.lang.color.foreground + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset note-btn note-btn-block\" data-event=\"removeFormat\" data-value=\"foreColor\">', opt.lang.color.resetToDefault, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"foreColor\"></div>', '<div class=\"btn-sm\">', '<input type=\"color\" id=\"html5fcp\" class=\"note-btn btn-default\" value=\"#21104A\" style=\"width:100%;\" data-value=\"cp\">', '<button type=\"button\" class=\"note-color-reset btn\" data-event=\"foreColor\" data-value=\"cpforeColor\">', opt.lang.color.cpSelect, '</button>', '</div>', '</div>', '</div>'].join(''),\n      callback: function callback($dropdown) {\n        $dropdown.find('.note-holder').each(function () {\n          var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this);\n          $holder.append(palette({\n            colors: opt.colors,\n            eventName: $holder.data('event')\n          }).render());\n        });\n\n        if (type === 'fore') {\n          $dropdown.find('.btn-background-color').hide();\n          $dropdown.css({\n            'min-width': '210px'\n          });\n        } else if (type === 'back') {\n          $dropdown.find('.btn-foreground-color').hide();\n          $dropdown.css({\n            'min-width': '210px'\n          });\n        }\n      },\n      click: function click(event) {\n        var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n        var eventName = $button.data('event');\n        var value = $button.data('value');\n        var foreinput = document.getElementById('html5fcp').value;\n        var backinput = document.getElementById('html5bcp').value;\n\n        if (value === 'cp') {\n          event.stopPropagation();\n        } else if (value === 'cpbackColor') {\n          value = backinput;\n        } else if (value === 'cpforeColor') {\n          value = foreinput;\n        }\n\n        if (eventName && value) {\n          var key = eventName === 'backColor' ? 'background-color' : 'color';\n          var $color = $button.closest('.note-color').find('.note-recent-color');\n          var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n          $color.css(key, value);\n          $currentButton.attr('data-' + eventName, value);\n\n          if (type === 'fore') {\n            opt.itemClick('foreColor', value);\n          } else if (type === 'back') {\n            opt.itemClick('backColor', value);\n          } else {\n            opt.itemClick(eventName, value);\n          }\n        }\n      }\n    })]\n  }).render();\n};\n\nvar dialog = renderer[\"a\" /* default */].create('<div class=\"note-modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function ($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html(['<div class=\"note-modal-content\">', options.title ? '<div class=\"note-modal-header\"><button type=\"button\" class=\"close\" aria-label=\"Close\" aria-hidden=\"true\"><i class=\"note-icon-close\"></i></button><h4 class=\"note-modal-title\">' + options.title + '</h4></div>' : '', '<div class=\"note-modal-body\">' + options.body + '</div>', options.footer ? '<div class=\"note-modal-footer\">' + options.footer + '</div>' : '', '</div>'].join(''));\n  $node.data('modal', new ui_ModalUI($node, options));\n});\n\nvar videoDialog = function videoDialog(opt) {\n  var body = '<div class=\"note-form-group\">' + '<label for=\"note-dialog-video-url-' + opt.id + '\" class=\"note-form-label\">' + opt.lang.video.url + ' <small class=\"text-muted\">' + opt.lang.video.providers + '</small></label>' + '<input id=\"note-dialog-video-url-' + opt.id + '\" class=\"note-video-url note-input\" type=\"text\"/>' + '</div>';\n  var footer = ['<button type=\"button\" href=\"#\" class=\"note-btn note-btn-primary note-video-btn disabled\" disabled>', opt.lang.video.insert, '</button>'].join('');\n  return dialog({\n    title: opt.lang.video.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nvar imageDialog = function imageDialog(opt) {\n  var body = '<div class=\"note-form-group note-group-select-from-files\">' + '<label for=\"note-dialog-image-file-' + opt.id + '\" class=\"note-form-label\">' + opt.lang.image.selectFromFiles + '</label>' + '<input id=\"note-dialog-image-file-' + opt.id + '\" class=\"note-note-image-input note-input\" type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\"/>' + opt.imageLimitation + '</div>' + '<div class=\"note-form-group\">' + '<label for=\"note-dialog-image-url-' + opt.id + '\" class=\"note-form-label\">' + opt.lang.image.url + '</label>' + '<input id=\"note-dialog-image-url-' + opt.id + '\" class=\"note-image-url note-input\" type=\"text\"/>' + '</div>';\n  var footer = ['<button href=\"#\" type=\"button\" class=\"note-btn note-btn-primary note-btn-large note-image-btn disabled\" disabled>', opt.lang.image.insert, '</button>'].join('');\n  return dialog({\n    title: opt.lang.image.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nvar linkDialog = function linkDialog(opt) {\n  var body = '<div class=\"note-form-group\">' + '<label for=\"note-dialog-link-txt-' + opt.id + '\" class=\"note-form-label\">' + opt.lang.link.textToDisplay + '</label>' + '<input id=\"note-dialog-link-txt-' + opt.id + '\" class=\"note-link-text note-input\" type=\"text\"/>' + '</div>' + '<div class=\"note-form-group\">' + '<label for=\"note-dialog-link-url-' + opt.id + '\" class=\"note-form-label\">' + opt.lang.link.url + '</label>' + '<input id=\"note-dialog-link-url-' + opt.id + '\" class=\"note-link-url note-input\" type=\"text\" value=\"http://\"/>' + '</div>' + (!opt.disableLinkTarget ? '<div class=\"checkbox\"><label for=\"note-dialog-link-nw-' + opt.id + '\"><input id=\"note-dialog-link-nw-' + opt.id + '\" type=\"checkbox\" checked> ' + opt.lang.link.openInNewWindow + '</label></div>' : '') + '<div class=\"checkbox\"><label for=\"note-dialog-link-up-' + opt.id + '\"><input id=\"note-dialog-link-up-' + opt.id + '\" type=\"checkbox\" checked> ' + opt.lang.link.useProtocol + '</label></div>';\n  var footer = ['<button href=\"#\" type=\"button\" class=\"note-btn note-btn-primary note-link-btn disabled\" disabled>', opt.lang.link.insert, '</button>'].join('');\n  return dialog({\n    className: 'link-dialog',\n    title: opt.lang.link.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nvar popover = renderer[\"a\" /* default */].create(['<div class=\"note-popover bottom\">', '<div class=\"note-popover-arrow\"></div>', '<div class=\"popover-content note-children-container\"></div>', '</div>'].join(''), function ($node, options) {\n  var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n  $node.addClass(direction).hide();\n\n  if (options.hideArrow) {\n    $node.find('.note-popover-arrow').hide();\n  }\n});\nvar ui_checkbox = renderer[\"a\" /* default */].create('<div class=\"checkbox\"></div>', function ($node, options) {\n  $node.html(['<label' + (options.id ? ' for=\"note-' + options.id + '\"' : '') + '>', '<input role=\"checkbox\" type=\"checkbox\"' + (options.id ? ' id=\"note-' + options.id + '\"' : ''), options.checked ? ' checked' : '', ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>', options.text ? options.text : '', '</label>'].join(''));\n});\n\nvar icon = function icon(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n};\n\nvar ui = function ui(editorOptions) {\n  return {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    button: ui_button,\n    dropdown: dropdown,\n    dropdownCheck: dropdownCheck,\n    dropdownButton: dropdownButton,\n    dropdownButtonContents: dropdownButtonContents,\n    dropdownCheckButton: dropdownCheckButton,\n    paragraphDropdownButton: paragraphDropdownButton,\n    tableDropdownButton: tableDropdownButton,\n    colorDropdownButton: ui_colorDropdownButton,\n    palette: palette,\n    dialog: dialog,\n    videoDialog: videoDialog,\n    imageDialog: imageDialog,\n    linkDialog: linkDialog,\n    popover: popover,\n    checkbox: ui_checkbox,\n    icon: icon,\n    options: editorOptions,\n    toggleBtn: function toggleBtn($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n    toggleBtnActive: function toggleBtnActive($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n    check: function check($dom, value) {\n      $dom.find('.checked').removeClass('checked');\n      $dom.find('[data-value=\"' + value + '\"]').addClass('checked');\n    },\n    onDialogShown: function onDialogShown($dialog, handler) {\n      $dialog.one('note.modal.show', handler);\n    },\n    onDialogHidden: function onDialogHidden($dialog, handler) {\n      $dialog.one('note.modal.hide', handler);\n    },\n    showDialog: function showDialog($dialog) {\n      $dialog.data('modal').show();\n    },\n    hideDialog: function hideDialog($dialog) {\n      $dialog.data('modal').hide();\n    },\n\n    /**\n     * get popover content area\n     *\n     * @param $popover\n     * @returns {*}\n     */\n    getPopoverContent: function getPopoverContent($popover) {\n      return $popover.find('.note-popover-content');\n    },\n\n    /**\n     * get dialog's body area\n     *\n     * @param $dialog\n     * @returns {*}\n     */\n    getDialogBody: function getDialogBody($dialog) {\n      return $dialog.find('.note-modal-body');\n    },\n    createLayout: function createLayout($note) {\n      var $editor = (editorOptions.airMode ? airEditor([editingArea([codable(), airEditable()])]) : editorOptions.toolbarPosition === 'bottom' ? editor([editingArea([codable(), editable()]), toolbar(), statusbar()]) : editor([toolbar(), editingArea([codable(), editable()]), statusbar()])).render();\n      $editor.insertAfter($note);\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n    removeLayout: function removeLayout($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.off('summernote'); // remove summernote custom event\n\n      $note.show();\n    }\n  };\n};\n\n/* harmony default export */ var lite_ui = (ui);\n// EXTERNAL MODULE: ./src/js/base/settings.js + 37 modules\nvar settings = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./src/styles/summernote-lite.scss\nvar summernote_lite = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./src/js/lite/settings.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  ui_template: lite_ui,\n  \"interface\": 'lite'\n});\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=summernote-lite.js.map"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote-lite.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote.css",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n@font-face{font-family:\"summernote\";font-style:normal;font-weight:400;font-display:auto;src:url(font/summernote.eot);src:url(font/summernote.eot?#iefix) format(\"embedded-opentype\"),url(font/summernote.woff2) format(\"woff2\"),url(font/summernote.woff) format(\"woff\"),url(font/summernote.ttf) format(\"truetype\")}[class^=note-icon]:before,[class*=\" note-icon\"]:before{display:inline-block;font-family:summernote;font-style:normal;font-size:inherit;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.note-icon-fw{text-align:center;width:1.25em}.note-icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.note-icon-pull-left{float:left}.note-icon-pull-right{float:right}.note-icon.note-icon-pull-left{margin-right:.3em}.note-icon.note-icon-pull-right{margin-left:.3em}.note-icon-align::before{content:\"\"}.note-icon-align-center::before{content:\"\"}.note-icon-align-indent::before{content:\"\"}.note-icon-align-justify::before{content:\"\"}.note-icon-align-left::before{content:\"\"}.note-icon-align-outdent::before{content:\"\"}.note-icon-align-right::before{content:\"\"}.note-icon-arrow-circle-down::before{content:\"\"}.note-icon-arrow-circle-left::before{content:\"\"}.note-icon-arrow-circle-right::before{content:\"\"}.note-icon-arrow-circle-up::before{content:\"\"}.note-icon-arrows-alt::before{content:\"\"}.note-icon-arrows-h::before{content:\"\"}.note-icon-arrows-v::before{content:\"\"}.note-icon-bold::before{content:\"\"}.note-icon-caret::before{content:\"\"}.note-icon-chain-broken::before{content:\"\"}.note-icon-circle::before{content:\"\"}.note-icon-close::before{content:\"\"}.note-icon-code::before{content:\"\"}.note-icon-col-after::before{content:\"\"}.note-icon-col-before::before{content:\"\"}.note-icon-col-remove::before{content:\"\"}.note-icon-eraser::before{content:\"\"}.note-icon-float-left::before{content:\"\"}.note-icon-float-none::before{content:\"\"}.note-icon-float-right::before{content:\"\"}.note-icon-font::before{content:\"\"}.note-icon-frame::before{content:\"\"}.note-icon-italic::before{content:\"\"}.note-icon-link::before{content:\"\"}.note-icon-magic::before{content:\"\"}.note-icon-menu-check::before{content:\"\"}.note-icon-minus::before{content:\"\"}.note-icon-orderedlist::before{content:\"\"}.note-icon-pencil::before{content:\"\"}.note-icon-picture::before{content:\"\"}.note-icon-question::before{content:\"\"}.note-icon-redo::before{content:\"\"}.note-icon-rollback::before{content:\"\"}.note-icon-row-above::before{content:\"\"}.note-icon-row-below::before{content:\"\"}.note-icon-row-remove::before{content:\"\"}.note-icon-special-character::before{content:\"\"}.note-icon-square::before{content:\"\"}.note-icon-strikethrough::before{content:\"\"}.note-icon-subscript::before{content:\"\"}.note-icon-summernote::before{content:\"\"}.note-icon-superscript::before{content:\"\"}.note-icon-table::before{content:\"\"}.note-icon-text-height::before{content:\"\"}.note-icon-trash::before{content:\"\"}.note-icon-underline::before{content:\"\"}.note-icon-undo::before{content:\"\"}.note-icon-unorderedlist::before{content:\"\"}.note-icon-video::before{content:\"\"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;display:none;z-index:100;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;vertical-align:middle;text-align:center;font-size:28px;font-weight:700}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:none}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable img.note-float-left{margin-right:10px}.note-editor .note-editing-area .note-editable img.note-float-right{margin-left:10px}.note-editor.note-frame,.note-editor.note-airframe{border:1px solid #00000032}.note-editor.note-frame.codeview .note-editing-area .note-editable,.note-editor.note-airframe.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable,.note-editor.note-airframe.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area,.note-editor.note-airframe .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable,.note-editor.note-airframe .note-editing-area .note-editable{padding:10px;overflow:auto;word-wrap:break-word}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false],.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false]{background-color:#8080801d}.note-editor.note-frame .note-editing-area .note-codable,.note-editor.note-airframe .note-editing-area .note-codable{display:none;width:100%;padding:10px;border:none;box-shadow:none;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;resize:none;outline:none;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:0;margin-bottom:0}.note-editor.note-frame.fullscreen,.note-editor.note-airframe.fullscreen{position:fixed;top:0;left:0;width:100% !important;z-index:1050}.note-editor.note-frame.fullscreen .note-resizebar,.note-editor.note-airframe.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output,.note-editor.note-airframe .note-status-output{display:block;width:100%;font-size:14px;line-height:1.42857143;height:20px;margin-bottom:0;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty,.note-editor.note-airframe .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right,.note-editor.note-airframe .note-status-output .pull-right{float:right !important}.note-editor.note-frame .note-status-output .text-muted,.note-editor.note-airframe .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary,.note-editor.note-airframe .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success,.note-editor.note-airframe .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info,.note-editor.note-airframe .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning,.note-editor.note-airframe .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger,.note-editor.note-airframe .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert,.note-editor.note-airframe .note-status-output .alert{margin:-7px 0 0 0;padding:7px 10px 2px 10px;border-radius:0;color:#000;background-color:#f5f5f5}.note-editor.note-frame .note-status-output .alert .note-icon,.note-editor.note-airframe .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success,.note-editor.note-airframe .note-status-output .alert-success{color:#3c763d !important;background-color:#dff0d8 !important}.note-editor.note-frame .note-status-output .alert-info,.note-editor.note-airframe .note-status-output .alert-info{color:#31708f !important;background-color:#d9edf7 !important}.note-editor.note-frame .note-status-output .alert-warning,.note-editor.note-airframe .note-status-output .alert-warning{color:#8a6d3b !important;background-color:#fcf8e3 !important}.note-editor.note-frame .note-status-output .alert-danger,.note-editor.note-airframe .note-status-output .alert-danger{color:#a94442 !important;background-color:#f2dede !important}.note-editor.note-frame .note-statusbar,.note-editor.note-airframe .note-statusbar{background-color:#8080801d;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar .note-resizebar,.note-editor.note-airframe .note-statusbar .note-resizebar{padding-top:1px;height:9px;width:100%;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar.locked .note-resizebar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder,.note-editor.note-airframe .note-placeholder{padding:10px}.note-editor.note-airframe{border:0}.note-editor.note-airframe .note-editing-area .note-editable{padding:0}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative}.note-popover .popover-content,.note-editor .note-toolbar{margin:0;padding:0 0 5px 5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group{margin-top:5px;margin-left:0;margin-right:5px}.note-popover .popover-content .note-btn-group .note-table,.note-editor .note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC\") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-editor .note-toolbar .note-style .dropdown-style blockquote,.note-editor .note-toolbar .note-style .dropdown-style pre{margin:0;padding:5px 10px}.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-editor .note-toolbar .note-style .dropdown-style h1,.note-editor .note-toolbar .note-style .dropdown-style h2,.note-editor .note-toolbar .note-style .dropdown-style h3,.note-editor .note-toolbar .note-style .dropdown-style h4,.note-editor .note-toolbar .note-style .dropdown-style h5,.note-editor .note-toolbar .note-style .dropdown-style h6,.note-editor .note-toolbar .note-style .dropdown-style p{margin:0;padding:0}.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-editor .note-toolbar .note-color-all .note-dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-toggle,.note-editor .note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;margin:0;width:160px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{font-size:12px;margin:2px 7px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select{font-size:11px;margin:3px;padding:0 3px;cursor:pointer;width:100%;border-radius:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover{background:#eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn{display:none}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn{border:1px solid #eee}.note-popover .popover-content .note-para .note-dropdown-menu,.note-editor .note-toolbar .note-para .note-dropdown-menu{min-width:228px;padding:5px}.note-popover .popover-content .note-para .note-dropdown-menu>div+div,.note-editor .note-toolbar .note-para .note-dropdown-menu>div+div{margin-left:5px}.note-popover .popover-content .note-dropdown-menu,.note-editor .note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .popover-content .note-dropdown-menu.right,.note-editor .note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .note-dropdown-menu.right::before,.note-editor .note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.right::after,.note-editor .note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-editor .note-toolbar .note-dropdown-menu.note-check a i{color:#00bfff;visibility:hidden}.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.note-editor .note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.note-editor .note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.note-editor .note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:0;border-radius:0}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-editor .note-toolbar .note-color-palette div .note-color-btn:hover{transform:scale(1.2);transition:all .2s}.note-modal .modal-dialog{outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5)}.note-modal .form-group{margin-left:0;margin-right:0}.note-modal .note-modal-form{margin:0}.note-modal .note-image-dialog .note-dropzone{min-height:100px;font-size:30px;line-height:4;color:#d3d3d3;text-align:center;border:4px dashed #d3d3d3;margin-bottom:10px}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-sizing,.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{background-color:#000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:none;border-bottom:none}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:none;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:none;border-right:none}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:none;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;color:#fff;background-color:#000;font-size:12px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{padding:3px;max-height:150px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;white-space:nowrap;text-decoration:none;background-color:#428bca;outline:0;cursor:pointer}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote.js",
    "content": "/*!\n * \n * Super simple wysiwyg editor v0.8.18\n * https://summernote.org\n * \n * \n * Copyright 2013- Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license.\n * \n * Date: 2020-05-20T16:47Z\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 52);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Renderer = /*#__PURE__*/function () {\n  function Renderer(markup, children, options, callback) {\n    _classCallCheck(this, Renderer);\n\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  _createClass(Renderer, [{\n    key: \"render\",\n    value: function render($parent) {\n      var $node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.markup);\n\n      if (this.options && this.options.contents) {\n        $node.html(this.options.contents);\n      }\n\n      if (this.options && this.options.className) {\n        $node.addClass(this.options.className);\n      }\n\n      if (this.options && this.options.data) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (this.options && this.options.click) {\n        $node.on('click', this.options.click);\n      }\n\n      if (this.children) {\n        var $container = $node.find('.note-children-container');\n        this.children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (this.callback) {\n        this.callback($node, this.options);\n      }\n\n      if (this.options && this.options.callback) {\n        this.options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    }\n  }]);\n\n  return Renderer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  create: function create(markup, callback) {\n    return function () {\n      var options = _typeof(arguments[1]) === 'object' ? arguments[1] : arguments[0];\n      var children = Array.isArray(arguments[0]) ? arguments[0] : [];\n\n      if (options && options.children) {\n        children = options.children;\n      }\n\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n});\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// CONCATENATED MODULE: ./src/js/base/summernote-en-US.js\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote || {\n  lang: {}\n};\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size',\n      sizeunit: 'Font Size Unit'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize full',\n      resizeHalf: 'Resize half',\n      resizeQuarter: 'Resize quarter',\n      resizeNone: 'Original size',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Remove float',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window',\n      useProtocol: 'Use default protocol'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Text Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default',\n      cpSelect: 'Select'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'escape': 'Escape',\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undo the last command',\n      'redo': 'Redo the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    },\n    output: {\n      noSelection: 'No Selection Made!'\n    }\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/env.js\n\nvar isSupportAmd = typeof define === 'function' && __webpack_require__(2); // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\n\nvar genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n\nfunction validFontName(fontName) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.inArray(fontName.toLowerCase(), genericFontFamilies) === -1 ? \"'\".concat(fontName, \"'\") : fontName;\n}\n\nfunction env_isFontInstalled(fontName) {\n  var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  var testText = 'mmmmmmmmmmwwwww';\n  var testSize = '200px';\n  var canvas = document.createElement('canvas');\n  var context = canvas.getContext('2d');\n  context.font = testSize + \" '\" + testFontName + \"'\";\n  var originalWidth = context.measureText(testText).width;\n  context.font = testSize + ' ' + validFontName(fontName) + ', \"' + testFontName + '\"';\n  var width = context.measureText(testText).width;\n  return originalWidth !== width;\n}\n\nvar userAgent = navigator.userAgent;\nvar isMSIE = /MSIE|Trident/i.test(userAgent);\nvar browserVersion;\n\nif (isMSIE) {\n  var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nvar isEdge = /Edge\\/\\d+/.test(userAgent);\nvar isSupportTouch = 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; // [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\n\nvar inputEventName = isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\n\n/* harmony default export */ var env = ({\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE: isMSIE,\n  isEdge: isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent) && !/chrome/i.test(userAgent),\n  browserVersion: browserVersion,\n  jqueryVersion: parseFloat(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.jquery),\n  isSupportAmd: isSupportAmd,\n  isSupportTouch: isSupportTouch,\n  isFontInstalled: env_isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName: inputEventName,\n  genericFontFamilies: genericFontFamilies,\n  validFontName: validFontName\n});\n// CONCATENATED MODULE: ./src/js/base/core/func.js\n\n/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\n\nfunction eq(itemA) {\n  return function (itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function (itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return function () {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function (item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction func_self(a) {\n  return a;\n}\n\nfunction func_invoke(obj, method) {\n  return function () {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nvar idCounter = 0;\n/**\n * reset globally-unique id\n *\n */\n\nfunction resetUniqueId() {\n  idCounter = 0;\n}\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\n\n\nfunction uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\n\n\nfunction rect2bnd(rect) {\n  var $document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\n\n\nfunction invertObject(obj) {\n  var inverted = {};\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n\n  return inverted;\n}\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\n\n\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function (name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\n\n\nfunction debounce(func, wait, immediate) {\n  var timeout;\n  return function () {\n    var context = this;\n    var args = arguments;\n\n    var later = function later() {\n      timeout = null;\n\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n/**\n *\n * @param {String} url\n * @return {Boolean}\n */\n\n\nfunction isValidUrl(url) {\n  var expression = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/gi;\n  return expression.test(url);\n}\n\n/* harmony default export */ var func = ({\n  eq: eq,\n  eq2: eq2,\n  peq2: peq2,\n  ok: ok,\n  fail: fail,\n  self: func_self,\n  not: not,\n  and: and,\n  invoke: func_invoke,\n  resetUniqueId: resetUniqueId,\n  uniqueId: uniqueId,\n  rect2bnd: rect2bnd,\n  invertObject: invertObject,\n  namespaceToCamel: namespaceToCamel,\n  debounce: debounce,\n  isValidUrl: isValidUrl\n});\n// CONCATENATED MODULE: ./src/js/base/core/lists.js\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\n\nfunction lists_head(array) {\n  return array[0];\n}\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\n\n\nfunction lists_last(array) {\n  return array[array.length - 1];\n}\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\n\n\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\n\n\nfunction tail(array) {\n  return array.slice(1);\n}\n/**\n * returns item of array\n */\n\n\nfunction find(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    var item = array[idx];\n\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\n\n\nfunction lists_all(array, pred) {\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * returns true if the value is present in the list.\n */\n\n\nfunction contains(array, item) {\n  if (array && array.length && item) {\n    if (array.indexOf) {\n      return array.indexOf(item) !== -1;\n    } else if (array.contains) {\n      // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains`\n      return array.contains(item);\n    }\n  }\n\n  return false;\n}\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\n\n\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function (memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\n\n\nfunction from(collection) {\n  var result = [];\n  var length = collection.length;\n  var idx = -1;\n\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n\n  return result;\n}\n/**\n * returns whether list is empty or not\n */\n\n\nfunction lists_isEmpty(array) {\n  return !array || !array.length;\n}\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\n\n\nfunction clusterBy(array, fn) {\n  if (!array.length) {\n    return [];\n  }\n\n  var aTail = tail(array);\n  return aTail.reduce(function (memo, v) {\n    var aLast = lists_last(memo);\n\n    if (fn(lists_last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n\n    return memo;\n  }, [[lists_head(array)]]);\n}\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\n\n\nfunction compact(array) {\n  var aResult = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) {\n      aResult.push(array[idx]);\n    }\n  }\n\n  return aResult;\n}\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\n\n\nfunction unique(array) {\n  var results = [];\n\n  for (var idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n/**\n * returns next item.\n * @param {Array} array\n */\n\n\nfunction lists_next(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx + 1];\n  }\n\n  return null;\n}\n/**\n * returns prev item.\n * @param {Array} array\n */\n\n\nfunction prev(array, item) {\n  if (array && array.length && item) {\n    var idx = array.indexOf(item);\n    return idx === -1 ? null : array[idx - 1];\n  }\n\n  return null;\n}\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\n\n\n/* harmony default export */ var lists = ({\n  head: lists_head,\n  last: lists_last,\n  initial: initial,\n  tail: tail,\n  prev: prev,\n  next: lists_next,\n  find: find,\n  contains: contains,\n  all: lists_all,\n  sum: sum,\n  from: from,\n  isEmpty: lists_isEmpty,\n  clusterBy: clusterBy,\n  compact: compact,\n  unique: unique\n});\n// CONCATENATED MODULE: ./src/js/base/core/dom.js\n\n\n\n\nvar NBSP_CHAR = String.fromCharCode(160);\nvar ZERO_WIDTH_NBSP_CHAR = \"\\uFEFF\";\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\nfunction isEditable(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-editable');\n}\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction isControlSizing(node) {\n  return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-control-sizing');\n}\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\n\n\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function (node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\n\n\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\n\n\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\n\n\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  } // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n\n\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nvar isPre = makePredByNodeName('PRE');\nvar isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nvar isTable = makePredByNodeName('TABLE');\nvar isData = makePredByNodeName('DATA');\n\nfunction dom_isInline(node) {\n  return !isBodyContainer(node) && !isList(node) && !isHr(node) && !isPara(node) && !isTable(node) && !isBlockquote(node) && !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nvar isHr = makePredByNodeName('HR');\n\nfunction dom_isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nvar isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return dom_isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nvar isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return dom_isInline(node) && !!dom_ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return dom_isInline(node) && !dom_ancestor(node, isPara);\n}\n\nvar isBody = makePredByNodeName('BODY');\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\n\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB || nodeA.previousSibling === nodeB;\n}\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\n\n\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n  var siblings = [];\n\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n\n  siblings.push(node);\n\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n\n  return siblings;\n}\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\n\n\nvar blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\n\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n/**\n * returns whether deepest child node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction deepestChildIsEmpty(node) {\n  do {\n    if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break;\n  } while (node = node.firstElementChild);\n\n  return dom_isEmpty(node);\n}\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\n\n\nfunction dom_isEmpty(node) {\n  var len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\n\n\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction dom_ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\n\n\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) {\n      break;\n    }\n\n    if (pred(node)) {\n      return node;\n    }\n\n    if (isEditable(node)) {\n      break;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n  var ancestors = [];\n  dom_ancestor(node, function (el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n/**\n * find farthest ancestor predicate hit\n */\n\n\nfunction lastAncestor(node, pred) {\n  var ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\n\n\nfunction dom_commonAncestor(nodeA, nodeB) {\n  var ancestors = listAncestor(nodeA);\n\n  for (var n = nodeB; n; n = n.parentNode) {\n    if (ancestors.indexOf(n) > -1) return n;\n  }\n\n  return null; // difference document area\n}\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\n\n\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n  var nodes = [];\n\n  while (node) {\n    if (pred(node)) {\n      break;\n    }\n\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n\n  return nodes;\n}\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\n\n\nfunction listDescendant(node, pred) {\n  var descendants = [];\n  pred = pred || func.ok; // start DFS(depth first search) with node\n\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n\n    for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\n\n\nfunction wrap(node, wrapperName) {\n  var parent = node.parentNode;\n  var wrapper = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<' + wrapperName + '>')[0];\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n  return wrapper;\n}\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\n\n\nfunction insertAfter(node, preceding) {\n  var next = preceding.nextSibling;\n  var parent = preceding.parentNode;\n\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n\n  return node;\n}\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\n\n\nfunction appendChildNodes(node, aChild) {\n  external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(aChild, function (idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction dom_isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== 0) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n\n  while (node && node !== ancestor) {\n    if (dom_position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n\n    node = node.parentNode;\n  }\n\n  return true;\n}\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && dom_isLeftEdgeOf(point.node, ancestor);\n}\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\n\n\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\n\n\nfunction dom_position(node) {\n  var offset = 0;\n\n  while (node = node.previousSibling) {\n    offset += 1;\n  }\n\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_prevPoint(point, isSkipInnerOffset) {\n  var node;\n  var offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = dom_position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction dom_nextPoint(point, isSkipInnerOffset) {\n  var node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/**\n * returns next boundaryPoint with empty node\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointWithEmptyNode(point, isSkipInnerOffset) {\n  var node, offset; // if node is empty string node, return current node's sibling.\n\n  if (dom_isEmpty(point.node)) {\n    node = point.node.nextSibling;\n    offset = 0;\n    return {\n      node: node,\n      offset: offset\n    };\n  }\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    var nextTextNode = getNextTextNode(point.node);\n\n    if (nextTextNode) {\n      node = nextTextNode;\n      offset = 0;\n    } else {\n      node = point.node.parentNode;\n      offset = dom_position(point.node) + 1;\n    } // if next node is editable, return current node's sibling node.\n\n\n    if (isEditable(node)) {\n      node = point.node.nextSibling;\n      offset = 0;\n    }\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n\n    if (dom_isEmpty(node)) {\n      return null;\n    }\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n/*\n* returns the next Text node index or 0 if not found.\n*/\n\n\nfunction getNextTextNode(actual) {\n  if (!actual.nextSibling) return undefined;\n  if (actual.parent !== actual.nextSibling.parent) return undefined;\n  if (isText(actual.nextSibling)) return actual.nextSibling;\n  return getNextTextNode(actual.nextSibling);\n}\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\n\n\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\n\n\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || dom_isEmpty(point.node)) {\n    return true;\n  }\n\n  var leftNode = point.node.childNodes[point.offset - 1];\n  var rightNode = point.node.childNodes[point.offset];\n\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_prevPoint(point);\n  }\n\n  return null;\n}\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\n\n\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = dom_nextPoint(point);\n  }\n\n  return null;\n}\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && ch !== ' ' && ch !== NBSP_CHAR;\n}\n/**\n * returns whether point has space or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\n\n\nfunction isSpacePoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  var ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch === ' ' || ch === NBSP_CHAR;\n}\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\n\n\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  var point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    var isSkipOffset = isSkipInnerOffset && startPoint.node !== point.node && endPoint.node !== point.node;\n    point = nextPointWithEmptyNode(point, isSkipOffset);\n  }\n}\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\n\n\nfunction makeOffsetPath(ancestor, node) {\n  var ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(dom_position).reverse();\n}\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\n\n\nfunction fromOffsetPath(ancestor, offsets) {\n  var current = ancestor;\n\n  for (var i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n\n  return current;\n}\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @param {Boolean} [options.isDiscardEmptySplits] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitNode(point, options) {\n  var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n  var isDiscardEmptySplits = options && options.isDiscardEmptySplits;\n\n  if (isDiscardEmptySplits) {\n    isSkipPaddingBlankHTML = true;\n  } // edge case\n\n\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  } // split #text\n\n\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    var childNode = point.node.childNodes[point.offset];\n    var clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    if (isDiscardEmptySplits) {\n      if (dom_isEmpty(point.node)) {\n        remove(point.node);\n      }\n\n      if (dom_isEmpty(clone)) {\n        remove(clone);\n        return point.node.nextSibling;\n      }\n    }\n\n    return clone;\n  }\n}\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\n\n\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  var ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function (node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? dom_position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\n\n\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  var pred = isInline ? isPara : isBodyContainer;\n  var ancestors = listAncestor(point.node, pred);\n  var topAncestor = lists.last(ancestors) || point.node;\n  var splitRoot, container;\n\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  } // if splitRoot is exists, split with splitTree\n\n\n  var pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  }); // if container is point.node, find pivot with point.offset\n\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction dom_create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\n\n\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) {\n    return;\n  }\n\n  if (node.removeNode) {\n    return node.removeNode(isRemoveChild);\n  }\n\n  var parent = node.parentNode;\n\n  if (!isRemoveChild) {\n    var nodes = [];\n\n    for (var i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (var _i = 0, _len = nodes.length; _i < _len; _i++) {\n      parent.insertBefore(nodes[_i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\n\n\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    var parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\n\n\nfunction dom_replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  var newNode = dom_create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n  return newNode;\n}\n\nvar isTextarea = makePredByNodeName('TEXTAREA');\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\n\nfunction dom_value($node, stripLinebreaks) {\n  var val = isTextarea($node[0]) ? $node.val() : $node.html();\n\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n\n  return val;\n}\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\n\n\nfunction dom_html($node, isNewlineOnBlock) {\n  var markup = dom_value($node);\n\n  if (isNewlineOnBlock) {\n    var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function (match, endSlash, name) {\n      name = name.toUpperCase();\n      var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && !!endSlash;\n      var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n      return match + (isEndOfInlineContainer || isBlockNode ? '\\n' : '');\n    });\n    markup = markup.trim();\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  var $placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(placeholder);\n  var pos = $placeholder.offset();\n  var height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function (key) {\n    $node.off(key, events[key]);\n  });\n}\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\n\n\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\n/* harmony default export */ var dom = ({\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR: NBSP_CHAR,\n\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n\n  /** @property {String} blank */\n  blank: blankHTML,\n\n  /** @property {String} emptyPara */\n  emptyPara: \"<p>\".concat(blankHTML, \"</p>\"),\n  makePredByNodeName: makePredByNodeName,\n  isEditable: isEditable,\n  isControlSizing: isControlSizing,\n  isText: isText,\n  isElement: isElement,\n  isVoid: isVoid,\n  isPara: isPara,\n  isPurePara: isPurePara,\n  isHeading: isHeading,\n  isInline: dom_isInline,\n  isBlock: func.not(dom_isInline),\n  isBodyInline: isBodyInline,\n  isBody: isBody,\n  isParaInline: isParaInline,\n  isPre: isPre,\n  isList: isList,\n  isTable: isTable,\n  isData: isData,\n  isCell: dom_isCell,\n  isBlockquote: isBlockquote,\n  isBodyContainer: isBodyContainer,\n  isAnchor: isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi: isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea: isTextarea,\n  deepestChildIsEmpty: deepestChildIsEmpty,\n  isEmpty: dom_isEmpty,\n  isEmptyAnchor: func.and(isAnchor, dom_isEmpty),\n  isClosestSibling: isClosestSibling,\n  withClosestSiblings: withClosestSiblings,\n  nodeLength: nodeLength,\n  isLeftEdgePoint: isLeftEdgePoint,\n  isRightEdgePoint: isRightEdgePoint,\n  isEdgePoint: isEdgePoint,\n  isLeftEdgeOf: dom_isLeftEdgeOf,\n  isRightEdgeOf: isRightEdgeOf,\n  isLeftEdgePointOf: isLeftEdgePointOf,\n  isRightEdgePointOf: isRightEdgePointOf,\n  prevPoint: dom_prevPoint,\n  nextPoint: dom_nextPoint,\n  nextPointWithEmptyNode: nextPointWithEmptyNode,\n  isSamePoint: isSamePoint,\n  isVisiblePoint: isVisiblePoint,\n  prevPointUntil: prevPointUntil,\n  nextPointUntil: nextPointUntil,\n  isCharPoint: isCharPoint,\n  isSpacePoint: isSpacePoint,\n  walkPoint: walkPoint,\n  ancestor: dom_ancestor,\n  singleChildAncestor: singleChildAncestor,\n  listAncestor: listAncestor,\n  lastAncestor: lastAncestor,\n  listNext: listNext,\n  listPrev: listPrev,\n  listDescendant: listDescendant,\n  commonAncestor: dom_commonAncestor,\n  wrap: wrap,\n  insertAfter: insertAfter,\n  appendChildNodes: appendChildNodes,\n  position: dom_position,\n  hasChildren: hasChildren,\n  makeOffsetPath: makeOffsetPath,\n  fromOffsetPath: fromOffsetPath,\n  splitTree: splitTree,\n  splitPoint: splitPoint,\n  create: dom_create,\n  createText: createText,\n  remove: remove,\n  removeWhile: removeWhile,\n  replace: dom_replace,\n  html: dom_html,\n  value: dom_value,\n  posFromPlaceholder: posFromPlaceholder,\n  attachEvents: attachEvents,\n  detachEvents: detachEvents,\n  isCustomStyleTag: isCustomStyleTag\n});\n// CONCATENATED MODULE: ./src/js/base/Context.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Context_Context = /*#__PURE__*/function () {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  function Context($note, options) {\n    _classCallCheck(this, Context);\n\n    this.$note = $note;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, options); // init ui with options\n\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui_template(this.options);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.initialize();\n  }\n  /**\n   * create layout and initialize modules and other resources\n   */\n\n\n  _createClass(Context, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.layoutInfo = this.ui.createLayout(this.$note);\n\n      this._initialize();\n\n      this.$note.hide();\n      return this;\n    }\n    /**\n     * destroy modules and other resources and remove layout\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._destroy();\n\n      this.$note.removeData('summernote');\n      this.ui.removeLayout(this.$note, this.layoutInfo);\n    }\n    /**\n     * destory modules and other resources and initialize it again\n     */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var disabled = this.isDisabled();\n      this.code(dom.emptyPara);\n\n      this._destroy();\n\n      this._initialize();\n\n      if (disabled) {\n        this.disable();\n      }\n    }\n  }, {\n    key: \"_initialize\",\n    value: function _initialize() {\n      var _this = this;\n\n      // set own id\n      this.options.id = func.uniqueId(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now()); // set default container for tooltips, popovers, and dialogs\n\n      this.options.container = this.options.container || this.layoutInfo.editor; // add optional buttons\n\n      var buttons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        _this.memo('button.' + key, buttons[key]);\n      });\n      var modules = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.modules, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.plugins || {}); // add and initialize modules\n\n      Object.keys(modules).forEach(function (key) {\n        _this.module(key, modules[key], true);\n      });\n      Object.keys(this.modules).forEach(function (key) {\n        _this.initializeModule(key);\n      });\n    }\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      var _this2 = this;\n\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        _this2.removeModule(key);\n      });\n      Object.keys(this.memos).forEach(function (key) {\n        _this2.removeMemo(key);\n      }); // trigger custom onDestroy callback\n\n      this.triggerEvent('destroy', this);\n    }\n  }, {\n    key: \"code\",\n    value: function code(html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.invoke('codeview.sync', html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n\n        this.$note.val(html);\n        this.triggerEvent('change', html, this.layoutInfo.editable);\n      }\n    }\n  }, {\n    key: \"isDisabled\",\n    value: function isDisabled() {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    }\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n      this.triggerEvent('disable', false);\n      this.options.editing = true;\n    }\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.options.editing = false;\n      this.invoke('toolbar.deactivate', true);\n      this.triggerEvent('disable', true);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n\n      if (callback) {\n        callback.apply(this.$note[0], args);\n      }\n\n      this.$note.trigger('summernote.' + namespace, args);\n    }\n  }, {\n    key: \"initializeModule\",\n    value: function initializeModule(key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n\n      if (!module.shouldInitialize()) {\n        return;\n      } // initialize module\n\n\n      if (module.initialize) {\n        module.initialize();\n      } // attach events\n\n\n      if (module.events) {\n        dom.attachEvents(this.$note, module.events);\n      }\n    }\n  }, {\n    key: \"module\",\n    value: function module(key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    }\n  }, {\n    key: \"removeModule\",\n    value: function removeModule(key) {\n      var module = this.modules[key];\n\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents(this.$note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    }\n  }, {\n    key: \"memo\",\n    value: function memo(key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n\n      this.memos[key] = obj;\n    }\n  }, {\n    key: \"removeMemo\",\n    value: function removeMemo(key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    }\n    /**\n     * Some buttons need to change their visual style immediately once they get pressed\n     */\n\n  }, {\n    key: \"createInvokeHandlerAndUpdateState\",\n    value: function createInvokeHandlerAndUpdateState(namespace, value) {\n      var _this3 = this;\n\n      return function (event) {\n        _this3.createInvokeHandler(namespace, value)(event);\n\n        _this3.invoke('buttons.updateCurrentStyle');\n      };\n    }\n  }, {\n    key: \"createInvokeHandler\",\n    value: function createInvokeHandler(namespace, value) {\n      var _this4 = this;\n\n      return function (event) {\n        event.preventDefault();\n        var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n\n        _this4.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n      };\n    }\n  }, {\n    key: \"invoke\",\n    value: function invoke() {\n      var namespace = lists.head(arguments);\n      var args = lists.tail(lists.from(arguments));\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && lists.head(splits);\n      var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n      var module = this.modules[moduleName || 'editor'];\n\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    }\n  }]);\n\n  return Context;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/summernote.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function summernote() {\n    var type = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.type(lists.head(arguments));\n    var isExternalAPICalled = type === 'string';\n    var hasInitOptions = type === 'object';\n    var options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options, hasInitOptions ? lists.head(arguments) : {}); // Update options\n\n    options.langInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'], external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang[options.lang]);\n    options.icons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n    this.each(function (idx, note) {\n      var $note = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(note);\n\n      if (!$note.data('summernote')) {\n        var context = new Context_Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n    var $note = this.first();\n\n    if ($note.length) {\n      var context = $note.data('summernote');\n\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/range.js\nfunction range_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction range_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction range_createClass(Constructor, protoProps, staticProps) { if (protoProps) range_defineProperties(Constructor.prototype, protoProps); if (staticProps) range_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\n\nfunction textRangeToPoint(textRange, isStart) {\n  var container = textRange.parentElement();\n  var offset;\n  var tester = document.body.createTextRange();\n  var prevContainer;\n  var childNodes = lists.from(container.childNodes);\n\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n\n    tester.moveToElementText(childNodes[offset]);\n\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    var textRangeStart = document.body.createTextRange();\n    var curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n    var pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    } // [workaround] enforce IE to re-reference curTextNode, hack\n\n\n    var dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\n\n\nfunction pointToTextRange(point) {\n  var textRangeInfo = function textRangeInfo(container, offset) {\n    var node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      var prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  var textRange = document.body.createTextRange();\n  var info = textRangeInfo(point.node, point.offset);\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\n\n\nvar range_WrappedRange = /*#__PURE__*/function () {\n  function WrappedRange(sc, so, ec, eo) {\n    range_classCallCheck(this, WrappedRange);\n\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo; // isOnEditable: judge whether range is on editable or not\n\n    this.isOnEditable = this.makeIsOn(dom.isEditable); // isOnList: judge whether range is on list node or not\n\n    this.isOnList = this.makeIsOn(dom.isList); // isOnAnchor: judge whether range is on anchor node or not\n\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor); // isOnCell: judge whether range is on cell node or not\n\n    this.isOnCell = this.makeIsOn(dom.isCell); // isOnData: judge whether range is on data node or not\n\n    this.isOnData = this.makeIsOn(dom.isData);\n  } // nativeRange: get nativeRange from sc, so, ec, eo\n\n\n  range_createClass(WrappedRange, [{\n    key: \"nativeRange\",\n    value: function nativeRange() {\n      if (env.isW3CRangeSupport) {\n        var w3cRange = document.createRange();\n        w3cRange.setStart(this.sc, this.so);\n        w3cRange.setEnd(this.ec, this.eo);\n        return w3cRange;\n      } else {\n        var textRange = pointToTextRange({\n          node: this.sc,\n          offset: this.so\n        });\n        textRange.setEndPoint('EndToEnd', pointToTextRange({\n          node: this.ec,\n          offset: this.eo\n        }));\n        return textRange;\n      }\n    }\n  }, {\n    key: \"getPoints\",\n    value: function getPoints() {\n      return {\n        sc: this.sc,\n        so: this.so,\n        ec: this.ec,\n        eo: this.eo\n      };\n    }\n  }, {\n    key: \"getStartPoint\",\n    value: function getStartPoint() {\n      return {\n        node: this.sc,\n        offset: this.so\n      };\n    }\n  }, {\n    key: \"getEndPoint\",\n    value: function getEndPoint() {\n      return {\n        node: this.ec,\n        offset: this.eo\n      };\n    }\n    /**\n     * select update visible range\n     */\n\n  }, {\n    key: \"select\",\n    value: function select() {\n      var nativeRng = this.nativeRange();\n\n      if (env.isW3CRangeSupport) {\n        var selection = document.getSelection();\n\n        if (selection.rangeCount > 0) {\n          selection.removeAllRanges();\n        }\n\n        selection.addRange(nativeRng);\n      } else {\n        nativeRng.select();\n      }\n\n      return this;\n    }\n    /**\n     * Moves the scrollbar to start container(sc) of current range\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"scrollIntoView\",\n    value: function scrollIntoView(container) {\n      var height = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(container).height();\n\n      if (container.scrollTop + height < this.sc.offsetTop) {\n        container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n      }\n\n      return this;\n    }\n    /**\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"normalize\",\n    value: function normalize() {\n      /**\n       * @param {BoundaryPoint} point\n       * @param {Boolean} isLeftToRight - true: prefer to choose right node\n       *                                - false: prefer to choose left node\n       * @return {BoundaryPoint}\n       */\n      var getVisiblePoint = function getVisiblePoint(point, isLeftToRight) {\n        if (!point) {\n          return point;\n        } // Just use the given point [XXX:Adhoc]\n        //  - case 01. if the point is on the middle of the node\n        //  - case 02. if the point is on the right edge and prefer to choose left node\n        //  - case 03. if the point is on the left edge and prefer to choose right node\n        //  - case 04. if the point is on the right edge and prefer to choose right node but the node is void\n        //  - case 05. if the point is on the left edge and prefer to choose left node but the node is void\n        //  - case 06. if the point is on the block node and there is no children\n\n\n        if (dom.isVisiblePoint(point)) {\n          if (!dom.isEdgePoint(point) || dom.isRightEdgePoint(point) && !isLeftToRight || dom.isLeftEdgePoint(point) && isLeftToRight || dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling) || dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling) || dom.isBlock(point.node) && dom.isEmpty(point.node)) {\n            return point;\n          }\n        } // point on block's edge\n\n\n        var block = dom.ancestor(point.node, dom.isBlock);\n        var hasRightNode = false;\n\n        if (!hasRightNode) {\n          var prevPoint = dom.prevPoint(point) || {\n            node: null\n          };\n          hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight;\n        }\n\n        var hasLeftNode = false;\n\n        if (!hasLeftNode) {\n          var _nextPoint = dom.nextPoint(point) || {\n            node: null\n          };\n\n          hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(_nextPoint.node)) && isLeftToRight;\n        }\n\n        if (hasRightNode || hasLeftNode) {\n          // returns point already on visible point\n          if (dom.isVisiblePoint(point)) {\n            return point;\n          } // reverse direction\n\n\n          isLeftToRight = !isLeftToRight;\n        }\n\n        var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n        return nextPoint || point;\n      };\n\n      var endPoint = getVisiblePoint(this.getEndPoint(), false);\n      var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns matched nodes on range\n     *\n     * @param {Function} [pred] - predicate function\n     * @param {Object} [options]\n     * @param {Boolean} [options.includeAncestor]\n     * @param {Boolean} [options.fullyContains]\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"nodes\",\n    value: function nodes(pred, options) {\n      pred = pred || func.ok;\n      var includeAncestor = options && options.includeAncestor;\n      var fullyContains = options && options.fullyContains; // TODO compare points and sort\n\n      var startPoint = this.getStartPoint();\n      var endPoint = this.getEndPoint();\n      var nodes = [];\n      var leftEdgeNodes = [];\n      dom.walkPoint(startPoint, endPoint, function (point) {\n        if (dom.isEditable(point.node)) {\n          return;\n        }\n\n        var node;\n\n        if (fullyContains) {\n          if (dom.isLeftEdgePoint(point)) {\n            leftEdgeNodes.push(point.node);\n          }\n\n          if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n            node = point.node;\n          }\n        } else if (includeAncestor) {\n          node = dom.ancestor(point.node, pred);\n        } else {\n          node = point.node;\n        }\n\n        if (node && pred(node)) {\n          nodes.push(node);\n        }\n      }, true);\n      return lists.unique(nodes);\n    }\n    /**\n     * returns commonAncestor of range\n     * @return {Element} - commonAncestor\n     */\n\n  }, {\n    key: \"commonAncestor\",\n    value: function commonAncestor() {\n      return dom.commonAncestor(this.sc, this.ec);\n    }\n    /**\n     * returns expanded range by pred\n     *\n     * @param {Function} pred - predicate function\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"expand\",\n    value: function expand(pred) {\n      var startAncestor = dom.ancestor(this.sc, pred);\n      var endAncestor = dom.ancestor(this.ec, pred);\n\n      if (!startAncestor && !endAncestor) {\n        return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n      }\n\n      var boundaryPoints = this.getPoints();\n\n      if (startAncestor) {\n        boundaryPoints.sc = startAncestor;\n        boundaryPoints.so = 0;\n      }\n\n      if (endAncestor) {\n        boundaryPoints.ec = endAncestor;\n        boundaryPoints.eo = dom.nodeLength(endAncestor);\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * @param {Boolean} isCollapseToStart\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"collapse\",\n    value: function collapse(isCollapseToStart) {\n      if (isCollapseToStart) {\n        return new WrappedRange(this.sc, this.so, this.sc, this.so);\n      } else {\n        return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n      }\n    }\n    /**\n     * splitText on range\n     */\n\n  }, {\n    key: \"splitText\",\n    value: function splitText() {\n      var isSameContainer = this.sc === this.ec;\n      var boundaryPoints = this.getPoints();\n\n      if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n        this.ec.splitText(this.eo);\n      }\n\n      if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n        boundaryPoints.sc = this.sc.splitText(this.so);\n        boundaryPoints.so = 0;\n\n        if (isSameContainer) {\n          boundaryPoints.ec = boundaryPoints.sc;\n          boundaryPoints.eo = this.eo - this.so;\n        }\n      }\n\n      return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);\n    }\n    /**\n     * delete contents on range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"deleteContents\",\n    value: function deleteContents() {\n      if (this.isCollapsed()) {\n        return this;\n      }\n\n      var rng = this.splitText();\n      var nodes = rng.nodes(null, {\n        fullyContains: true\n      }); // find new cursor point\n\n      var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n        return !lists.contains(nodes, point.node);\n      });\n      var emptyParents = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(nodes, function (idx, node) {\n        // find empty parents\n        var parent = node.parentNode;\n\n        if (point.node !== parent && dom.nodeLength(parent) === 1) {\n          emptyParents.push(parent);\n        }\n\n        dom.remove(node, false);\n      }); // remove empty parents\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyParents, function (idx, node) {\n        dom.remove(node, false);\n      });\n      return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();\n    }\n    /**\n     * makeIsOn: return isOn(pred) function\n     */\n\n  }, {\n    key: \"makeIsOn\",\n    value: function makeIsOn(pred) {\n      return function () {\n        var ancestor = dom.ancestor(this.sc, pred);\n        return !!ancestor && ancestor === dom.ancestor(this.ec, pred);\n      };\n    }\n    /**\n     * @param {Function} pred\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isLeftEdgeOf\",\n    value: function isLeftEdgeOf(pred) {\n      if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n        return false;\n      }\n\n      var node = dom.ancestor(this.sc, pred);\n      return node && dom.isLeftEdgeOf(this.sc, node);\n    }\n    /**\n     * returns whether range was collapsed or not\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    value: function isCollapsed() {\n      return this.sc === this.ec && this.so === this.eo;\n    }\n    /**\n     * wrap inline nodes which children of body with paragraph\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"wrapBodyInlineWithPara\",\n    value: function wrapBodyInlineWithPara() {\n      if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n        this.sc.innerHTML = dom.emptyPara;\n        return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n      }\n      /**\n       * [workaround] firefox often create range on not visible point. so normalize here.\n       *  - firefox: |<p>text</p>|\n       *  - chrome: <p>|text|</p>\n       */\n\n\n      var rng = this.normalize();\n\n      if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n        return rng;\n      } // find inline top ancestor\n\n\n      var topAncestor;\n\n      if (dom.isInline(rng.sc)) {\n        var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n        topAncestor = lists.last(ancestors);\n\n        if (!dom.isInline(topAncestor)) {\n          topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n        }\n      } else {\n        topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n      }\n\n      if (topAncestor) {\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); // wrap with paragraph\n\n        if (inlineSiblings.length) {\n          var para = dom.wrap(lists.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, lists.tail(inlineSiblings));\n        }\n      }\n\n      return this.normalize();\n    }\n    /**\n     * insert node at current cursor\n     *\n     * @param {Node} node\n     * @return {Node}\n     */\n\n  }, {\n    key: \"insertNode\",\n    value: function insertNode(node) {\n      var rng = this;\n\n      if (dom.isText(node) || dom.isInline(node)) {\n        rng = this.wrapBodyInlineWithPara().deleteContents();\n      }\n\n      var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n      if (info.rightNode) {\n        info.rightNode.parentNode.insertBefore(node, info.rightNode);\n\n        if (dom.isEmpty(info.rightNode) && dom.isPara(node)) {\n          info.rightNode.parentNode.removeChild(info.rightNode);\n        }\n      } else {\n        info.container.appendChild(node);\n      }\n\n      return node;\n    }\n    /**\n     * insert html at current cursor\n     */\n\n  }, {\n    key: \"pasteHTML\",\n    value: function pasteHTML(markup) {\n      markup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.trim(markup);\n      var contentsContainer = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').html(markup)[0];\n      var childNodes = lists.from(contentsContainer.childNodes); // const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n      var rng = this;\n      var reversed = false;\n\n      if (rng.so >= 0) {\n        childNodes = childNodes.reverse();\n        reversed = true;\n      }\n\n      childNodes = childNodes.map(function (childNode) {\n        return rng.insertNode(childNode);\n      });\n\n      if (reversed) {\n        childNodes = childNodes.reverse();\n      }\n\n      return childNodes;\n    }\n    /**\n     * returns text in range\n     *\n     * @return {String}\n     */\n\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var nativeRng = this.nativeRange();\n      return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n    }\n    /**\n     * returns range for word before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordRange\",\n    value: function getWordRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      if (!dom.isCharPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        return !dom.isCharPoint(point);\n      });\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor\n     *\n     * @param {Boolean} [findAfter] - find after cursor, default: false\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getWordsRange\",\n    value: function getWordsRange(findAfter) {\n      var endPoint = this.getEndPoint();\n\n      var isNotTextPoint = function isNotTextPoint(point) {\n        return !dom.isCharPoint(point) && !dom.isSpacePoint(point);\n      };\n\n      if (isNotTextPoint(endPoint)) {\n        return this;\n      }\n\n      var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint);\n\n      if (findAfter) {\n        endPoint = dom.nextPointUntil(endPoint, isNotTextPoint);\n      }\n\n      return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * returns range for words before cursor that match with a Regex\n     *\n     * example:\n     *  range: 'hi @Peter Pan'\n     *  regex: '/@[a-z ]+/i'\n     *  return range: '@Peter Pan'\n     *\n     * @param {RegExp} [regex]\n     * @return {WrappedRange|null}\n     */\n\n  }, {\n    key: \"getWordsMatchRange\",\n    value: function getWordsMatchRange(regex) {\n      var endPoint = this.getEndPoint();\n      var startPoint = dom.prevPointUntil(endPoint, function (point) {\n        if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) {\n          return true;\n        }\n\n        var rng = new WrappedRange(point.node, point.offset, endPoint.node, endPoint.offset);\n        var result = regex.exec(rng.toString());\n        return result && result.index === 0;\n      });\n      var rng = new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n      var text = rng.toString();\n      var result = regex.exec(text);\n\n      if (result && result[0].length === text.length) {\n        return rng;\n      } else {\n        return null;\n      }\n    }\n    /**\n     * create offsetPath bookmark\n     *\n     * @param {Node} editable\n     */\n\n  }, {\n    key: \"bookmark\",\n    value: function bookmark(editable) {\n      return {\n        s: {\n          path: dom.makeOffsetPath(editable, this.sc),\n          offset: this.so\n        },\n        e: {\n          path: dom.makeOffsetPath(editable, this.ec),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * create offsetPath bookmark base on paragraph\n     *\n     * @param {Node[]} paras\n     */\n\n  }, {\n    key: \"paraBookmark\",\n    value: function paraBookmark(paras) {\n      return {\n        s: {\n          path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n          offset: this.so\n        },\n        e: {\n          path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n          offset: this.eo\n        }\n      };\n    }\n    /**\n     * getClientRects\n     * @return {Rect[]}\n     */\n\n  }, {\n    key: \"getClientRects\",\n    value: function getClientRects() {\n      var nativeRng = this.nativeRange();\n      return nativeRng.getClientRects();\n    }\n  }]);\n\n  return WrappedRange;\n}();\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\n\n\n/* harmony default export */ var range = ({\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function create(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) {\n      // collapsed\n      ec = sc;\n      eo = so;\n      return new range_WrappedRange(sc, so, ec, eo);\n    } else {\n      var wrappedRange = this.createFromSelection();\n\n      if (!wrappedRange && arguments.length === 1) {\n        var bodyElement = arguments[0];\n\n        if (dom.isEditable(bodyElement)) {\n          bodyElement = bodyElement.lastChild;\n        }\n\n        return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML);\n      }\n\n      return wrappedRange;\n    }\n  },\n  createFromBodyElement: function createFromBodyElement(bodyElement) {\n    var isCollapseToStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var wrappedRange = this.createFromNode(bodyElement);\n    return wrappedRange.collapse(isCollapseToStart);\n  },\n  createFromSelection: function createFromSelection() {\n    var sc, so, ec, eo;\n\n    if (env.isW3CRangeSupport) {\n      var selection = document.getSelection();\n\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      var nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else {\n      // IE8: TextRange\n      var textRange = document.selection.createRange();\n      var textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      var textRangeStart = textRange;\n      textRangeStart.collapse(true);\n      var startPoint = textRangeToPoint(textRangeStart, true);\n      var endPoint = textRangeToPoint(textRangeEnd, false); // same visible point case: range was collapsed.\n\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function createFromNode(node) {\n    var sc = node;\n    var so = 0;\n    var ec = node;\n    var eo = dom.nodeLength(ec); // browsers can't target a picture or void node\n\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function createFromNodeBefore(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function createFromNodeAfter(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function createFromBookmark(editable, bookmark) {\n    var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    var so = bookmark.s.offset;\n    var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    var eo = bookmark.e.offset;\n    return new range_WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function createFromParaBookmark(bookmark, paras) {\n    var so = bookmark.s.offset;\n    var eo = bookmark.e.offset;\n    var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n    return new range_WrappedRange(sc, so, ec, eo);\n  }\n});\n// CONCATENATED MODULE: ./src/js/base/core/key.js\n\n\nvar KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'ESCAPE': 27,\n  'SPACE': 32,\n  'DELETE': 46,\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221,\n  // Navigation\n  'HOME': 36,\n  'END': 35,\n  'PAGEUP': 33,\n  'PAGEDOWN': 34\n};\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\n\n/* harmony default export */ var core_key = ({\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: function isEdit(keyCode) {\n    return lists.contains([KEY_MAP.BACKSPACE, KEY_MAP.TAB, KEY_MAP.ENTER, KEY_MAP.SPACE, KEY_MAP.DELETE], keyCode);\n  },\n\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: function isMove(keyCode) {\n    return lists.contains([KEY_MAP.LEFT, KEY_MAP.UP, KEY_MAP.RIGHT, KEY_MAP.DOWN], keyCode);\n  },\n\n  /**\n   * @method isNavigation\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isNavigation: function isNavigation(keyCode) {\n    return lists.contains([KEY_MAP.HOME, KEY_MAP.END, KEY_MAP.PAGEUP, KEY_MAP.PAGEDOWN], keyCode);\n  },\n\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n});\n// CONCATENATED MODULE: ./src/js/base/core/async.js\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\n\nfunction readFileAsDataURL(file) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(new FileReader(), {\n      onload: function onload(e) {\n        var dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: function onerror(err) {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\n\nfunction createImage(url) {\n  return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n    var $img = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<img>');\n    $img.one('load', function () {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', function () {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n// CONCATENATED MODULE: ./src/js/base/editing/History.js\nfunction History_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction History_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction History_createClass(Constructor, protoProps, staticProps) { if (protoProps) History_defineProperties(Constructor.prototype, protoProps); if (staticProps) History_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar History_History = /*#__PURE__*/function () {\n  function History(context) {\n    History_classCallCheck(this, History);\n\n    this.stack = [];\n    this.stackOffset = -1;\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n    this.editable = this.$editable[0];\n  }\n\n  History_createClass(History, [{\n    key: \"makeSnapshot\",\n    value: function makeSnapshot() {\n      var rng = range.create(this.editable);\n      var emptyBookmark = {\n        s: {\n          path: [],\n          offset: 0\n        },\n        e: {\n          path: [],\n          offset: 0\n        }\n      };\n      return {\n        contents: this.$editable.html(),\n        bookmark: rng && rng.isOnEditable() ? rng.bookmark(this.editable) : emptyBookmark\n      };\n    }\n  }, {\n    key: \"applySnapshot\",\n    value: function applySnapshot(snapshot) {\n      if (snapshot.contents !== null) {\n        this.$editable.html(snapshot.contents);\n      }\n\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(this.editable, snapshot.bookmark).select();\n      }\n    }\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n\n  }, {\n    key: \"rewind\",\n    value: function rewind() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      } // Return to the first available snapshot.\n\n\n      this.stackOffset = 0; // Apply that snapshot.\n\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n    /**\n    *  @method commit\n    *  Resets history stack, but keeps current editor's content.\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      // Clear the stack.\n      this.stack = []; // Restore stackOffset to its original value.\n\n      this.stackOffset = -1; // Clear the editable area.\n\n      this.$editable.html(''); // Record our first snapshot (of nothing).\n\n      this.recordUndo();\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      // Create snap shot if not yet recorded\n      if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (this.stackOffset > 0) {\n        this.stackOffset--;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      if (this.stack.length - 1 > this.stackOffset) {\n        this.stackOffset++;\n        this.applySnapshot(this.stack[this.stackOffset]);\n      }\n    }\n    /**\n     * recorded undo\n     */\n\n  }, {\n    key: \"recordUndo\",\n    value: function recordUndo() {\n      this.stackOffset++; // Wash out stack after stackOffset\n\n      if (this.stack.length > this.stackOffset) {\n        this.stack = this.stack.slice(0, this.stackOffset);\n      } // Create new snapshot and push it to the end\n\n\n      this.stack.push(this.makeSnapshot()); // If the stack size reachs to the limit, then slice it\n\n      if (this.stack.length > this.context.options.historyLimit) {\n        this.stack.shift();\n        this.stackOffset -= 1;\n      }\n    }\n  }]);\n\n  return History;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Style.js\nfunction Style_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Style_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Style_createClass(Constructor, protoProps, staticProps) { if (protoProps) Style_defineProperties(Constructor.prototype, protoProps); if (staticProps) Style_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Style_Style = /*#__PURE__*/function () {\n  function Style() {\n    Style_classCallCheck(this, Style);\n  }\n\n  Style_createClass(Style, [{\n    key: \"jQueryCSS\",\n\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    value: function jQueryCSS($obj, propertyNames) {\n      if (env.jqueryVersion < 1.9) {\n        var result = {};\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n\n      return $obj.css(propertyNames);\n    }\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"fromNode\",\n    value: function fromNode($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = this.jQueryCSS($node, properties) || {};\n      var fontSize = $node[0].style.fontSize || styleInfo['font-size'];\n      styleInfo['font-size'] = parseInt(fontSize, 10);\n      styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/);\n      return styleInfo;\n    }\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n\n  }, {\n    key: \"stylePara\",\n    value: function stylePara(rng, styleInfo) {\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css(styleInfo);\n      });\n    }\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"styleNodes\",\n    value: function styleNodes(rng, options) {\n      rng = rng.splitText();\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes(); // compose with partial contains predication\n\n          pred = func.and(pred, function (node) {\n            return lists.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = lists.head(siblings);\n          var tails = lists.tail(siblings);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return lists.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    }\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n\n  }, {\n    key: \"current\",\n    value: function current(rng) {\n      var $cont = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont); // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n\n      try {\n        styleInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n          'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n        });\n      } catch (e) {} // eslint-disable-next-line\n      // list-style-type to list-style(unordered, ordered)\n\n\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n      return styleInfo;\n    }\n  }]);\n\n  return Style;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Bullet.js\nfunction Bullet_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Bullet_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Bullet_createClass(Constructor, protoProps, staticProps) { if (protoProps) Bullet_defineProperties(Constructor.prototype, protoProps); if (staticProps) Bullet_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar Bullet_Bullet = /*#__PURE__*/function () {\n  function Bullet() {\n    Bullet_classCallCheck(this, Bullet);\n  }\n\n  Bullet_createClass(Bullet, [{\n    key: \"insertOrderedList\",\n\n    /**\n     * toggle ordered list\n     */\n    value: function insertOrderedList(editable) {\n      this.toggleList('OL', editable);\n    }\n    /**\n     * toggle unordered list\n     */\n\n  }, {\n    key: \"insertUnorderedList\",\n    value: function insertUnorderedList(editable) {\n      this.toggleList('UL', editable);\n    }\n    /**\n     * indent\n     */\n\n  }, {\n    key: \"indent\",\n    value: function indent(editable) {\n      var _this = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          var previousList = _this.findList(head.previousSibling);\n\n          if (previousList) {\n            paras.map(function (para) {\n              return previousList.appendChild(para);\n            });\n          } else {\n            _this.wrapList(paras, head.parentNode.nodeName);\n\n            paras.map(function (para) {\n              return para.parentNode;\n            }).map(function (para) {\n              return _this.appendToPrevious(para);\n            });\n          }\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * outdent\n     */\n\n  }, {\n    key: \"outdent\",\n    value: function outdent(editable) {\n      var _this2 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n\n        if (dom.isLi(head)) {\n          _this2.releaseList([paras]);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) {\n              val = parseInt(val, 10) || 0;\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n      rng.select();\n    }\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n\n  }, {\n    key: \"toggleList\",\n    value: function toggleList(listName, editable) {\n      var _this3 = this;\n\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n      var paras = rng.nodes(dom.isPara, {\n        includeAncestor: true\n      });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); // paragraph to list\n\n      if (lists.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(_this3.wrapList(paras, listName));\n        });\n        paras = wrappedParas; // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    }\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"wrapList\",\n    value: function wrapList(paras, listName) {\n      var head = lists.head(paras);\n      var last = lists.last(paras);\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); // P to LI\n\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      }); // append to list(<ul>, <ol>)\n\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    }\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n\n  }, {\n    key: \"releaseList\",\n    value: function releaseList(clustereds, isEscapseToBody) {\n      var _this4 = this;\n\n      var releasedParas = [];\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) {\n        var head = lists.head(paras);\n        var last = lists.last(paras);\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n        var parentItem = headList.parentNode;\n\n        if (headList.parentNode.nodeName === 'LI') {\n          paras.map(function (para) {\n            var newList = _this4.findNextSiblings(para);\n\n            if (parentItem.nextSibling) {\n              parentItem.parentNode.insertBefore(para, parentItem.nextSibling);\n            } else {\n              parentItem.parentNode.appendChild(para);\n            }\n\n            if (newList.length) {\n              _this4.wrapList(newList, headList.nodeName);\n\n              para.appendChild(newList[0].parentNode);\n            }\n          });\n\n          if (headList.children.length === 0) {\n            parentItem.removeChild(headList);\n          }\n\n          if (parentItem.childNodes.length === 0) {\n            parentItem.parentNode.removeChild(parentItem);\n          }\n        } else {\n          var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n            node: last.parentNode,\n            offset: dom.position(last) + 1\n          }, {\n            isSkipPaddingBlankHTML: true\n          }) : null;\n          var middleList = dom.splitTree(headList, {\n            node: head.parentNode,\n            offset: dom.position(head)\n          }, {\n            isSkipPaddingBlankHTML: true\n          });\n          paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : lists.from(middleList.childNodes).filter(dom.isLi); // LI to P\n\n          if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n            paras = paras.map(function (para) {\n              return dom.replace(para, 'P');\n            });\n          }\n\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(lists.from(paras).reverse(), function (idx, para) {\n            dom.insertAfter(para, headList);\n          }); // remove empty lists\n\n          var rootLists = lists.compact([headList, middleList, lastList]);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rootLists, function (idx, rootList) {\n            var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(listNodes.reverse(), function (idx, listNode) {\n              if (!dom.nodeLength(listNode)) {\n                dom.remove(listNode, true);\n              }\n            });\n          });\n        }\n\n        releasedParas = releasedParas.concat(paras);\n      });\n      return releasedParas;\n    }\n    /**\n     * @method appendToPrevious\n     *\n     * Appends list to previous list item, if\n     * none exist it wraps the list in a new list item.\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"appendToPrevious\",\n    value: function appendToPrevious(node) {\n      return node.previousSibling ? dom.appendChildNodes(node.previousSibling, [node]) : this.wrapList([node], 'LI');\n    }\n    /**\n     * @method findList\n     *\n     * Finds an existing list in list item\n     *\n     * @param {HTMLNode} ListItem\n     * @return {Array[]}\n     */\n\n  }, {\n    key: \"findList\",\n    value: function findList(node) {\n      return node ? lists.find(node.children, function (child) {\n        return ['OL', 'UL'].indexOf(child.nodeName) > -1;\n      }) : null;\n    }\n    /**\n     * @method findNextSiblings\n     *\n     * Finds all list item siblings that follow it\n     *\n     * @param {HTMLNode} ListItem\n     * @return {HTMLNode}\n     */\n\n  }, {\n    key: \"findNextSiblings\",\n    value: function findNextSiblings(node) {\n      var siblings = [];\n\n      while (node.nextSibling) {\n        siblings.push(node.nextSibling);\n        node = node.nextSibling;\n      }\n\n      return siblings;\n    }\n  }]);\n\n  return Bullet;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Typing.js\nfunction Typing_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Typing_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Typing_createClass(Constructor, protoProps, staticProps) { if (protoProps) Typing_defineProperties(Constructor.prototype, protoProps); if (staticProps) Typing_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\n\nvar Typing_Typing = /*#__PURE__*/function () {\n  function Typing(context) {\n    Typing_classCallCheck(this, Typing);\n\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet_Bullet();\n    this.options = context.options;\n  }\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n\n\n  Typing_createClass(Typing, [{\n    key: \"insertTab\",\n    value: function insertTab(rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n      rng = range.create(tab, tabsize);\n      rng.select();\n    }\n    /**\n     * insert paragraph\n     *\n     * @param {jQuery} $editable\n     * @param {WrappedRange} rng Can be used in unit tests to \"mock\" the range\n     *\n     * blockquoteBreakingLevel\n     *   0 - No break, the new paragraph remains inside the quote\n     *   1 - Break the first blockquote in the ancestors list\n     *   2 - Break all blockquotes, so that the new paragraph is not quoted (this is the default)\n     */\n\n  }, {\n    key: \"insertParagraph\",\n    value: function insertParagraph(editable, rng) {\n      rng = rng || range.create(editable); // deleteContents on range.\n\n      rng = rng.deleteContents(); // Wrap range if it needs to be wrapped by paragraph\n\n      rng = rng.wrapBodyInlineWithPara(); // finding paragraph\n\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n      var nextPara; // on paragraph: split paragraph\n\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isLi(splitRoot) && (dom.isEmpty(splitRoot) || dom.deepestChildIsEmpty(splitRoot))) {\n          // toggle UL/OL and escape\n          this.bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        } else {\n          var blockquote = null;\n\n          if (this.options.blockquoteBreakingLevel === 1) {\n            blockquote = dom.ancestor(splitRoot, dom.isBlockquote);\n          } else if (this.options.blockquoteBreakingLevel === 2) {\n            blockquote = dom.lastAncestor(splitRoot, dom.isBlockquote);\n          }\n\n          if (blockquote) {\n            // We're inside a blockquote and options ask us to break it\n            nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0]; // If the split is right before a <br>, remove it so that there's no \"empty line\"\n            // after the split in the new blockquote created\n\n            if (dom.isRightEdgePoint(rng.getStartPoint()) && dom.isBR(rng.sc.nextSibling)) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(rng.sc.nextSibling).remove();\n            }\n\n            var split = dom.splitTree(blockquote, rng.getStartPoint(), {\n              isDiscardEmptySplits: true\n            });\n\n            if (split) {\n              split.parentNode.insertBefore(nextPara, split);\n            } else {\n              dom.insertAfter(nextPara, blockquote); // There's no split if we were at the end of the blockquote\n            }\n          } else {\n            nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); // not a blockquote, just insert the paragraph\n\n            var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n            emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyAnchors, function (idx, anchor) {\n              dom.remove(anchor);\n            }); // replace empty heading, pre or custom-made styleTag with P tag\n\n            if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n              nextPara = dom.replace(nextPara, 'p');\n            }\n          }\n        } // no paragraph: insert empty paragraph\n\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0];\n\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    }\n  }]);\n\n  return Typing;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/editing/Table.js\nfunction Table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Table_createClass(Constructor, protoProps, staticProps) { if (protoProps) Table_defineProperties(Constructor.prototype, protoProps); if (staticProps) Table_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\n\nvar TableResultAction = function TableResultAction(startPoint, where, action, domTable) {\n  var _startPoint = {\n    'colPos': 0,\n    'rowPos': 0\n  };\n  var _virtualTable = [];\n  var _actionCellList = []; /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th') {\n      // Impossible to identify start Cell point\n      return;\n    }\n\n    _startPoint.colPos = startPoint.cellIndex;\n\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      // Impossible to identify start Row point\n      return;\n    }\n\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n\n\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    var objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n\n\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n\n\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    var newCellIndex = cellIndex;\n\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n\n\n  function addCellInfoToVirtual(row, cell) {\n    var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    var cellHasColspan = cell.colSpan > 1;\n    var cellHasRowspan = cell.rowSpan > 1;\n    var isThisSelectedCell = row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos;\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false); // Add span rows to virtual Table.\n\n    var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n\n    if (rowspanNumber > 1) {\n      for (var rp = 1; rp < rowspanNumber; rp++) {\n        var rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    } // Add span cols to virtual table.\n\n\n    var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n\n    if (colspanNumber > 1) {\n      for (var cp = 1; cp < colspanNumber; cp++) {\n        var cellspanIndex = recoverCellIndex(row.rowIndex, cellIndex + cp);\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n\n\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n\n\n  function createVirtualTable() {\n    var rows = domTable.rows;\n\n    for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      var cells = rows[rowIndex].cells;\n\n      for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.RemoveCell;\n  }\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n\n\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n\n        break;\n    }\n\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  } /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n\n\n  this.getActionList = function () {\n    var fixedRow = where === TableResultAction.where.Row ? _startPoint.rowPos : -1;\n    var fixedCol = where === TableResultAction.where.Column ? _startPoint.colPos : -1;\n    var actualPosition = 0;\n    var canContinue = true;\n\n    while (canContinue) {\n      var rowPosition = fixedRow >= 0 ? fixedRow : actualPosition;\n      var colPosition = fixedCol >= 0 ? fixedCol : actualPosition;\n      var row = _virtualTable[rowPosition];\n\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      var cell = row[colPosition];\n\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      } // Define action to be applied in this cell\n\n\n      var resultAction = TableResultAction.resultAction.Ignore;\n\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\n\n\nTableResultAction.where = {\n  'Row': 0,\n  'Column': 1\n};\n/**\n*\n* Requested action to apply enum.\n*/\n\nTableResultAction.requestAction = {\n  'Add': 0,\n  'Delete': 1\n};\n/**\n*\n* Result action to be executed enum.\n*/\n\nTableResultAction.resultAction = {\n  'Ignore': 0,\n  'SubtractSpanCount': 1,\n  'RemoveCell': 2,\n  'AddCell': 3,\n  'SumSpanCount': 4\n};\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\n\nvar Table_Table = /*#__PURE__*/function () {\n  function Table() {\n    Table_classCallCheck(this, Table);\n  }\n\n  Table_createClass(Table, [{\n    key: \"tab\",\n\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    value: function tab(rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n      var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    }\n    /**\n     * Add a new row\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (top/bottom)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addRow\",\n    value: function addRow(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var currentTr = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var trAttributes = this.recoverAttributes(currentTr);\n      var html = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<tr' + trAttributes + '></tr>');\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var idCell = 0; idCell < actions.length; idCell++) {\n        var currentCell = actions[idCell];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            {\n              if (position === 'top') {\n                var baseCellTr = currentCell.baseCell.parent;\n                var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n\n                if (isTopFromRowSpan) {\n                  var newTd = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div></div>').append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n                  html.append(newTd);\n                  break;\n                }\n              }\n\n              var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n              rowspanNumber++;\n              currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n            }\n            break;\n        }\n      }\n\n      if (position === 'top') {\n        currentTr.before(html);\n      } else {\n        var cellHasRowspan = cell.rowSpan > 1;\n\n        if (cellHasRowspan) {\n          var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).parent().find('tr')[lastTrIndex]).after(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(html));\n          return;\n        }\n\n        currentTr.after(html);\n      }\n    }\n    /**\n     * Add a new col\n     *\n     * @param {WrappedRange} rng\n     * @param {String} position (left/right)\n     * @return {Node}\n     */\n\n  }, {\n    key: \"addCol\",\n    value: function addCol(rng, position) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var rowsGroup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).siblings();\n      rowsGroup.push(row);\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        var currentCell = actions[actionIndex];\n        var tdAttributes = this.recoverAttributes(currentCell.baseCell);\n\n        switch (currentCell.action) {\n          case TableResultAction.resultAction.AddCell:\n            if (position === 'right') {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n\n          case TableResultAction.resultAction.SumSpanCount:\n            if (position === 'right') {\n              var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n              colspanNumber++;\n              currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n            }\n\n            break;\n        }\n      }\n    }\n    /*\n    * Copy attributes from element.\n    *\n    * @param {object} Element to recover attributes.\n    * @return {string} Copied string elements.\n    */\n\n  }, {\n    key: \"recoverAttributes\",\n    value: function recoverAttributes(el) {\n      var resultStr = '';\n\n      if (!el) {\n        return resultStr;\n      }\n\n      var attrList = el.attributes || [];\n\n      for (var i = 0; i < attrList.length; i++) {\n        if (attrList[i].name.toLowerCase() === 'id') {\n          continue;\n        }\n\n        if (attrList[i].specified) {\n          resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n        }\n      }\n\n      return resultStr;\n    }\n    /**\n     * Delete current row\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var rowPos = row[0].rowIndex;\n      var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        var baseCell = actions[actionIndex].baseCell;\n        var virtualPosition = actions[actionIndex].virtualTable;\n        var hasRowspan = baseCell.rowSpan && baseCell.rowSpan > 1;\n        var rowspanNumber = hasRowspan ? parseInt(baseCell.rowSpan, 10) : 0;\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.AddCell:\n            {\n              var nextRow = row.next('tr')[0];\n\n              if (!nextRow) {\n                continue;\n              }\n\n              var cloneRow = row[0].cells[cellPos];\n\n              if (hasRowspan) {\n                if (rowspanNumber > 2) {\n                  rowspanNumber--;\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n                  nextRow.cells[cellPos].innerHTML = '';\n                } else if (rowspanNumber === 2) {\n                  nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n                  nextRow.cells[cellPos].removeAttribute('rowSpan');\n                  nextRow.cells[cellPos].innerHTML = '';\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            if (hasRowspan) {\n              if (rowspanNumber > 2) {\n                rowspanNumber--;\n                baseCell.setAttribute('rowSpan', rowspanNumber);\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              } else if (rowspanNumber === 2) {\n                baseCell.removeAttribute('rowSpan');\n\n                if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {\n                  baseCell.innerHTML = '';\n                }\n              }\n            }\n\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            // Do not need remove cell because row will be deleted.\n            continue;\n        }\n      }\n\n      row.remove();\n    }\n    /**\n     * Delete current col\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr');\n      var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell));\n      var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]);\n      var actions = vTable.getActionList();\n\n      for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n        if (!actions[actionIndex]) {\n          continue;\n        }\n\n        switch (actions[actionIndex].action) {\n          case TableResultAction.resultAction.Ignore:\n            continue;\n\n          case TableResultAction.resultAction.SubtractSpanCount:\n            {\n              var baseCell = actions[actionIndex].baseCell;\n              var hasColspan = baseCell.colSpan && baseCell.colSpan > 1;\n\n              if (hasColspan) {\n                var colspanNumber = baseCell.colSpan ? parseInt(baseCell.colSpan, 10) : 0;\n\n                if (colspanNumber > 2) {\n                  colspanNumber--;\n                  baseCell.setAttribute('colSpan', colspanNumber);\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                } else if (colspanNumber === 2) {\n                  baseCell.removeAttribute('colSpan');\n\n                  if (baseCell.cellIndex === cellPos) {\n                    baseCell.innerHTML = '';\n                  }\n                }\n              }\n            }\n            continue;\n\n          case TableResultAction.resultAction.RemoveCell:\n            dom.remove(actions[actionIndex].baseCell, true);\n            continue;\n        }\n      }\n    }\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n\n  }, {\n    key: \"createTable\",\n    value: function createTable(colCount, rowCount, options) {\n      var tds = [];\n      var tdHTML;\n\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n\n      tdHTML = tds.join('');\n      var trs = [];\n      var trHTML;\n\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n\n      trHTML = trs.join('');\n      var $table = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<table>' + trHTML + '</table>');\n\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    }\n    /**\n     * Delete current table\n     *\n     * @param {WrappedRange} rng\n     * @return {Node}\n     */\n\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable(rng) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('table').remove();\n    }\n  }]);\n\n  return Table;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Editor.js\nfunction Editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) Editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) Editor_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar KEY_BOGUS = 'bogus';\n/**\n * @class Editor\n */\n\nvar Editor_Editor = /*#__PURE__*/function () {\n  function Editor(context) {\n    var _this = this;\n\n    Editor_classCallCheck(this, Editor);\n\n    this.context = context;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n    this.snapshot = null;\n    this.style = new Style_Style();\n    this.table = new Table_Table();\n    this.typing = new Typing_Typing(context);\n    this.bullet = new Bullet_Bullet();\n    this.history = new History_History(context);\n    this.context.memo('help.escape', this.lang.help.escape);\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName); // native commands(with execCommand), generate function for execCommand\n\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'formatBlock', 'removeFormat', 'backColor'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = function (sCmd) {\n        return function (value) {\n          _this.beforeCommand();\n\n          document.execCommand(sCmd, false, value);\n\n          _this.afterCommand(true);\n        };\n      }(commands[idx]);\n\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand(function (value) {\n      return _this.fontStyling('font-family', env.validFontName(value));\n    });\n    this.fontSize = this.wrapCommand(function (value) {\n      var unit = _this.currentStyle()['font-size-unit'];\n\n      return _this.fontStyling('font-size', value + unit);\n    });\n    this.fontSizeUnit = this.wrapCommand(function (value) {\n      var size = _this.currentStyle()['font-size'];\n\n      return _this.fontStyling('font-size', size + value);\n    });\n\n    for (var _idx = 1; _idx <= 6; _idx++) {\n      this['formatH' + _idx] = function (idx) {\n        return function () {\n          _this.formatBlock('H' + idx);\n        };\n      }(_idx);\n\n      this.context.memo('help.formatH' + _idx, this.lang.help['formatH' + _idx]);\n    }\n\n    this.insertParagraph = this.wrapCommand(function () {\n      _this.typing.insertParagraph(_this.editable);\n    });\n    this.insertOrderedList = this.wrapCommand(function () {\n      _this.bullet.insertOrderedList(_this.editable);\n    });\n    this.insertUnorderedList = this.wrapCommand(function () {\n      _this.bullet.insertUnorderedList(_this.editable);\n    });\n    this.indent = this.wrapCommand(function () {\n      _this.bullet.indent(_this.editable);\n    });\n    this.outdent = this.wrapCommand(function () {\n      _this.bullet.outdent(_this.editable);\n    });\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n\n    this.insertNode = this.wrapCommand(function (node) {\n      if (_this.isLimited(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).text().length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      rng.insertNode(node);\n\n      _this.setLastRange(range.createFromNodeAfter(node).select());\n    });\n    /**\n     * insert text\n     * @param {String} text\n     */\n\n    this.insertText = this.wrapCommand(function (text) {\n      if (_this.isLimited(text.length)) {\n        return;\n      }\n\n      var rng = _this.getLastRange();\n\n      var textNode = rng.insertNode(dom.createText(text));\n\n      _this.setLastRange(range.create(textNode, dom.nodeLength(textNode)).select());\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      if (_this.isLimited(markup.length)) {\n        return;\n      }\n\n      markup = _this.context.invoke('codeview.purify', markup);\n\n      var contents = _this.getLastRange().pasteHTML(markup);\n\n      _this.setLastRange(range.createFromNodeAfter(lists.last(contents)).select());\n    });\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n\n    this.formatBlock = this.wrapCommand(function (tagName, $target) {\n      var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;\n\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);\n      } else {\n        _this.onFormatBlock(tagName, $target);\n      }\n    });\n    /**\n     * insert horizontal rule\n     */\n\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = _this.getLastRange().insertNode(dom.create('HR'));\n\n      if (hrNode.nextSibling) {\n        _this.setLastRange(range.create(hrNode.nextSibling, 0).normalize().select());\n      }\n    });\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n\n    this.lineHeight = this.wrapCommand(function (value) {\n      _this.style.stylePara(_this.getLastRange(), {\n        lineHeight: value\n      });\n    });\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var checkProtocol = linkInfo.checkProtocol;\n\n      var rng = linkInfo.range || _this.getLastRange();\n\n      var additionalTextLength = linkText.length - rng.toString().length;\n\n      if (additionalTextLength > 0 && _this.isLimited(additionalTextLength)) {\n        return;\n      }\n\n      var isTextChanged = rng.toString() !== linkText; // handle spaced urls from input\n\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (_this.options.onCreateLink) {\n        linkUrl = _this.options.onCreateLink(linkUrl);\n      } else if (checkProtocol) {\n        // if url doesn't have any protocol and not even a relative or a label, use http:// as default\n        linkUrl = /^([A-Za-z][A-Za-z0-9+-.]*\\:|#|\\/)/.test(linkUrl) ? linkUrl : _this.options.defaultProtocol + linkUrl;\n      }\n\n      var anchors = [];\n\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = _this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(anchors, function (idx, anchor) {\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href', linkUrl);\n\n        if (isNewWindow) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('target', '_blank');\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).removeAttr('target');\n        }\n      });\n\n      _this.setLastRange(_this.createRangeFromList(anchors).select());\n    });\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) {\n        document.execCommand('foreColor', false, foreColor);\n      }\n\n      if (backColor) {\n        document.execCommand('backColor', false, backColor);\n      }\n    });\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n\n    this.foreColor = this.wrapCommand(function (colorInfo) {\n      document.execCommand('foreColor', false, colorInfo);\n    });\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = _this.getLastRange().deleteContents();\n\n      rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));\n    });\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).parent();\n\n      if ($target.closest('figure').length) {\n        $target.closest('figure').remove();\n      } else {\n        $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).detach();\n      }\n\n      _this.context.triggerEvent('media.delete', $target, _this.$editable);\n    });\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value === 'none' ? '' : value);\n    });\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n\n    this.resize = this.wrapCommand(function (value) {\n      var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget());\n      value = parseFloat(value);\n\n      if (value === 0) {\n        $target.css('width', '');\n      } else {\n        $target.css({\n          width: value * 100 + '%',\n          height: ''\n        });\n      }\n    });\n  }\n\n  Editor_createClass(Editor, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      // bind custom events\n      this.$editable.on('keydown', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          _this2.context.triggerEvent('enter', event);\n        }\n\n        _this2.context.triggerEvent('keydown', event); // keep a snapshot to limit text on input event\n\n\n        _this2.snapshot = _this2.history.makeSnapshot();\n        _this2.hasKeyShortCut = false;\n\n        if (!event.isDefaultPrevented()) {\n          if (_this2.options.shortcuts) {\n            _this2.hasKeyShortCut = _this2.handleKeyMap(event);\n          } else {\n            _this2.preventDefaultEditableShortCuts(event);\n          }\n        }\n\n        if (_this2.isLimited(1, event)) {\n          var lastRange = _this2.getLastRange();\n\n          if (lastRange.eo - lastRange.so === 0) {\n            return false;\n          }\n        }\n\n        _this2.setLastRange(); // record undo in the key event except keyMap.\n\n\n        if (_this2.options.recordEveryKeystroke) {\n          if (_this2.hasKeyShortCut === false) {\n            _this2.history.recordUndo();\n          }\n        }\n      }).on('keyup', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        _this2.context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        _this2.context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        _this2.setLastRange();\n\n        _this2.history.recordUndo();\n\n        _this2.context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        _this2.context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        _this2.setLastRange();\n\n        _this2.context.triggerEvent('paste', event);\n      }).on('input', function () {\n        // To limit composition characters (e.g. Korean)\n        if (_this2.isLimited(0) && _this2.snapshot) {\n          _this2.history.applySnapshot(_this2.snapshot);\n        }\n      });\n      this.$editable.attr('spellcheck', this.options.spellCheck);\n      this.$editable.attr('autocorrect', this.options.spellCheck);\n\n      if (this.options.disableGrammar) {\n        this.$editable.attr('data-gramm', false);\n      } // init content before set event\n\n\n      this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n      this.$editable.on(env.inputEventName, func.debounce(function () {\n        _this2.context.triggerEvent('change', _this2.$editable.html(), _this2.$editable);\n      }, 10));\n      this.$editable.on('focusin', function (event) {\n        _this2.context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        _this2.context.triggerEvent('focusout', event);\n      });\n\n      if (this.options.airMode) {\n        if (this.options.overrideContextMenu) {\n          this.$editor.on('contextmenu', function (event) {\n            _this2.context.triggerEvent('contextmenu', event);\n\n            return false;\n          });\n        }\n      } else {\n        if (this.options.width) {\n          this.$editor.outerWidth(this.options.width);\n        }\n\n        if (this.options.height) {\n          this.$editable.outerHeight(this.options.height);\n        }\n\n        if (this.options.maxHeight) {\n          this.$editable.css('max-height', this.options.maxHeight);\n        }\n\n        if (this.options.minHeight) {\n          this.$editable.css('min-height', this.options.minHeight);\n        }\n      }\n\n      this.history.recordUndo();\n      this.setLastRange();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$editable.off();\n    }\n  }, {\n    key: \"handleKeyMap\",\n    value: function handleKeyMap(event) {\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) {\n        keys.push('CMD');\n      }\n\n      if (event.ctrlKey && !event.altKey) {\n        keys.push('CTRL');\n      }\n\n      if (event.shiftKey) {\n        keys.push('SHIFT');\n      }\n\n      var keyName = core_key.nameFromCode[event.keyCode];\n\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n\n      if (keyName === 'TAB' && !this.options.tabDisable) {\n        this.afterCommand();\n      } else if (eventName) {\n        if (this.context.invoke(eventName) !== false) {\n          event.preventDefault(); // if keyMap action was invoked\n\n          return true;\n        }\n      } else if (core_key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n\n      return false;\n    }\n  }, {\n    key: \"preventDefaultEditableShortCuts\",\n    value: function preventDefaultEditableShortCuts(event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) && lists.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"isLimited\",\n    value: function isLimited(pad, event) {\n      pad = pad || 0;\n\n      if (typeof event !== 'undefined') {\n        if (core_key.isMove(event.keyCode) || core_key.isNavigation(event.keyCode) || event.ctrlKey || event.metaKey || lists.contains([core_key.code.BACKSPACE, core_key.code.DELETE], event.keyCode)) {\n          return false;\n        }\n      }\n\n      if (this.options.maxTextLength > 0) {\n        if (this.$editable.text().length + pad > this.options.maxTextLength) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange() {\n      this.focus();\n      this.setLastRange();\n      return this.getLastRange();\n    }\n    /**\n     * create a new range from the list of elements\n     *\n     * @param {list} dom element list\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"createRangeFromList\",\n    value: function createRangeFromList(lst) {\n      var startRange = range.createFromNodeBefore(lists.head(lst));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(lists.last(lst));\n      var endPoint = endRange.getEndPoint();\n      return range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);\n    }\n    /**\n     * set the last range\n     *\n     * if given rng is exist, set rng as the last range\n     * or create a new range at the end of the document\n     *\n     * @param {WrappedRange} rng\n     */\n\n  }, {\n    key: \"setLastRange\",\n    value: function setLastRange(rng) {\n      if (rng) {\n        this.lastRange = rng;\n      } else {\n        this.lastRange = range.create(this.editable);\n\n        if (external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.lastRange.sc).closest('.note-editable').length === 0) {\n          this.lastRange = range.createFromBodyElement(this.editable);\n        }\n      }\n    }\n    /**\n     * get the last range\n     *\n     * if there is a saved last range, return it\n     * or create a new range and return it\n     *\n     * @return {WrappedRange}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      if (!this.lastRange) {\n        this.setLastRange();\n      }\n\n      return this.lastRange;\n    }\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n\n  }, {\n    key: \"saveRange\",\n    value: function saveRange(thenCollapse) {\n      if (thenCollapse) {\n        this.getLastRange().collapse().select();\n      }\n    }\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n\n  }, {\n    key: \"restoreRange\",\n    value: function restoreRange() {\n      if (this.lastRange) {\n        this.lastRange.select();\n        this.focus();\n      }\n    }\n  }, {\n    key: \"saveTarget\",\n    value: function saveTarget(node) {\n      this.$editable.data('target', node);\n    }\n  }, {\n    key: \"clearTarget\",\n    value: function clearTarget() {\n      this.$editable.removeData('target');\n    }\n  }, {\n    key: \"restoreTarget\",\n    value: function restoreTarget() {\n      return this.$editable.data('target');\n    }\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n\n  }, {\n    key: \"currentStyle\",\n    value: function currentStyle() {\n      var rng = range.create();\n\n      if (rng) {\n        rng = rng.normalize();\n      }\n\n      return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n    }\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n\n  }, {\n    key: \"styleFromNode\",\n    value: function styleFromNode($node) {\n      return this.style.fromNode($node);\n    }\n    /**\n     * undo\n     */\n\n  }, {\n    key: \"undo\",\n    value: function undo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.undo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /*\n    * commit\n    */\n\n  }, {\n    key: \"commit\",\n    value: function commit() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.commit();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * redo\n     */\n\n  }, {\n    key: \"redo\",\n    value: function redo() {\n      this.context.triggerEvent('before.command', this.$editable.html());\n      this.history.redo();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n    /**\n     * before command\n     */\n\n  }, {\n    key: \"beforeCommand\",\n    value: function beforeCommand() {\n      this.context.triggerEvent('before.command', this.$editable.html()); // Set styleWithCSS before run a command\n\n      document.execCommand('styleWithCSS', false, this.options.styleWithCSS); // keep focus on editable before command execution\n\n      this.focus();\n    }\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n\n  }, {\n    key: \"afterCommand\",\n    value: function afterCommand(isPreventTrigger) {\n      this.normalizeContent();\n      this.history.recordUndo();\n\n      if (!isPreventTrigger) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n    }\n    /**\n     * handle tab key\n     */\n\n  }, {\n    key: \"tab\",\n    value: function tab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n\n        if (!this.isLimited(this.options.tabSize)) {\n          this.beforeCommand();\n          this.typing.insertTab(rng, this.options.tabSize);\n          this.afterCommand();\n        }\n      }\n    }\n    /**\n     * handle shift+tab key\n     */\n\n  }, {\n    key: \"untab\",\n    value: function untab() {\n      var rng = this.getLastRange();\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.table.tab(rng, true);\n      } else {\n        if (this.options.tabSize === 0) {\n          return false;\n        }\n      }\n    }\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n\n  }, {\n    key: \"wrapCommand\",\n    value: function wrapCommand(fn) {\n      return function () {\n        this.beforeCommand();\n        fn.apply(this, arguments);\n        this.afterCommand();\n      };\n    }\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"insertImage\",\n    value: function insertImage(src, param) {\n      var _this3 = this;\n\n      return createImage(src, param).then(function ($image) {\n        _this3.beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n\n          $image.css('width', Math.min(_this3.$editable.width(), $image.width()));\n        }\n\n        $image.show();\n\n        _this3.getLastRange().insertNode($image[0]);\n\n        _this3.setLastRange(range.createFromNodeAfter($image[0]).select());\n\n        _this3.afterCommand();\n      }).fail(function (e) {\n        _this3.context.triggerEvent('image.upload.error', e);\n      });\n    }\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesAsDataURL\",\n    value: function insertImagesAsDataURL(files) {\n      var _this4 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(files, function (idx, file) {\n        var filename = file.name;\n\n        if (_this4.options.maximumImageFileSize && _this4.options.maximumImageFileSize < file.size) {\n          _this4.context.triggerEvent('image.upload.error', _this4.lang.image.maximumFileSizeError);\n        } else {\n          readFileAsDataURL(file).then(function (dataURL) {\n            return _this4.insertImage(dataURL, filename);\n          }).fail(function () {\n            _this4.context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    }\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n\n  }, {\n    key: \"insertImagesOrCallback\",\n    value: function insertImagesOrCallback(files) {\n      var callbacks = this.options.callbacks; // If onImageUpload set,\n\n      if (callbacks.onImageUpload) {\n        this.context.triggerEvent('image.upload', files); // else insert Image as dataURL\n      } else {\n        this.insertImagesAsDataURL(files);\n      }\n    }\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n\n  }, {\n    key: \"getSelectedText\",\n    value: function getSelectedText() {\n      var rng = this.getLastRange(); // if range on anchor, expand range with anchor\n\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    }\n  }, {\n    key: \"onFormatBlock\",\n    value: function onFormatBlock(tagName, $target) {\n      // [workaround] for MSIE, IE need `<`\n      document.execCommand('FormatBlock', false, env.isMSIE ? '<' + tagName + '>' : tagName); // support custom class\n\n      if ($target && $target.length) {\n        // find the exact element has given tagName\n        if ($target[0].tagName.toUpperCase() !== tagName.toUpperCase()) {\n          $target = $target.find(tagName);\n        }\n\n        if ($target && $target.length) {\n          var className = $target[0].className || '';\n\n          if (className) {\n            var currentRange = this.createRange();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()([currentRange.sc, currentRange.ec]).closest(tagName);\n            $parent.addClass(className);\n          }\n        }\n      }\n    }\n  }, {\n    key: \"formatPara\",\n    value: function formatPara() {\n      this.formatBlock('P');\n    }\n  }, {\n    key: \"fontStyling\",\n    value: function fontStyling(target, value) {\n      var rng = this.getLastRange();\n\n      if (rng !== '') {\n        var spans = this.style.styleNodes(rng);\n        this.$editor.find('.note-status-output').html('');\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(spans).css(target, value); // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n\n        if (rng.isCollapsed()) {\n          var firstSpan = lists.head(spans);\n\n          if (firstSpan && !dom.nodeLength(firstSpan)) {\n            firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n            range.createFromNode(firstSpan.firstChild).select();\n            this.setLastRange();\n            this.$editable.data(KEY_BOGUS, firstSpan);\n          }\n        } else {\n          this.setLastRange(this.createRangeFromList(spans).select());\n        }\n      } else {\n        var noteStatusOutput = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now();\n        this.$editor.find('.note-status-output').html('<div id=\"note-status-output-' + noteStatusOutput + '\" class=\"alert alert-info\">' + this.lang.output.noSelection + '</div>');\n        setTimeout(function () {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('#note-status-output-' + noteStatusOutput).remove();\n        }, 5000);\n      }\n    }\n    /**\n     * unlink\n     *\n     * @type command\n     */\n\n  }, {\n    key: \"unlink\",\n    value: function unlink() {\n      var rng = this.getLastRange();\n\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n        this.setLastRange();\n        this.beforeCommand();\n        document.execCommand('unlink');\n        this.afterCommand();\n      }\n    }\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n\n  }, {\n    key: \"getLinkInfo\",\n    value: function getLinkInfo() {\n      var rng = this.getLastRange().expand(dom.isAnchor); // Get the first anchor on range(for edit).\n\n      var $anchor = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(lists.head(rng.nodes(dom.isAnchor)));\n      var linkInfo = {\n        range: rng,\n        text: rng.toString(),\n        url: $anchor.length ? $anchor.attr('href') : ''\n      }; // When anchor exists,\n\n      if ($anchor.length) {\n        // Set isNewWindow by checking its target.\n        linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n      }\n\n      return linkInfo;\n    }\n  }, {\n    key: \"addRow\",\n    value: function addRow(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addRow(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"addCol\",\n    value: function addCol(position) {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.addCol(rng, position);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteRow\",\n    value: function deleteRow() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteRow(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteCol\",\n    value: function deleteCol() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteCol(rng);\n        this.afterCommand();\n      }\n    }\n  }, {\n    key: \"deleteTable\",\n    value: function deleteTable() {\n      var rng = this.getLastRange(this.$editable);\n\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        this.beforeCommand();\n        this.table.deleteTable(rng);\n        this.afterCommand();\n      }\n    }\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n\n  }, {\n    key: \"resizeTo\",\n    value: function resizeTo(pos, $target, bKeepRatio) {\n      var imageSize;\n\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    }\n    /**\n     * returns whether editable area has focus or not.\n     */\n\n  }, {\n    key: \"hasFocus\",\n    value: function hasFocus() {\n      return this.$editable.is(':focus');\n    }\n    /**\n     * set focus\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        this.$editable.focus();\n      }\n    }\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    value: function isEmpty() {\n      return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n    }\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n\n  }, {\n    key: \"empty\",\n    value: function empty() {\n      this.context.invoke('code', dom.emptyPara);\n    }\n    /**\n     * normalize content\n     */\n\n  }, {\n    key: \"normalizeContent\",\n    value: function normalizeContent() {\n      this.$editable[0].normalize();\n    }\n  }]);\n\n  return Editor;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Clipboard.js\nfunction Clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) Clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) Clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Clipboard_Clipboard = /*#__PURE__*/function () {\n  function Clipboard(context) {\n    Clipboard_classCallCheck(this, Clipboard);\n\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  Clipboard_createClass(Clipboard, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.$editable.on('paste', this.pasteByEvent.bind(this));\n    }\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n\n  }, {\n    key: \"pasteByEvent\",\n    value: function pasteByEvent(event) {\n      var _this = this;\n\n      var clipboardData = event.originalEvent.clipboardData;\n\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = clipboardData.items.length > 1 ? clipboardData.items[1] : lists.head(clipboardData.items);\n\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          // paste img file\n          this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n          event.preventDefault();\n        } else if (item.kind === 'string') {\n          // paste text with maxTextLength check\n          if (this.context.invoke('editor.isLimited', clipboardData.getData('Text').length)) {\n            event.preventDefault();\n          }\n        }\n      } else if (window.clipboardData) {\n        // for IE\n        var text = window.clipboardData.getData('text');\n\n        if (this.context.invoke('editor.isLimited', text.length)) {\n          event.preventDefault();\n        }\n      } // Call editor.afterCommand after proceeding default event handler\n\n\n      setTimeout(function () {\n        _this.context.invoke('editor.afterCommand');\n      }, 10);\n    }\n  }]);\n\n  return Clipboard;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Dropzone.js\nfunction Dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) Dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) Dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Dropzone_Dropzone = /*#__PURE__*/function () {\n  function Dropzone(context) {\n    Dropzone_classCallCheck(this, Dropzone);\n\n    this.context = context;\n    this.$eventListener = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n    this.$dropzone = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-dropzone\">', '<div class=\"note-dropzone-message\"></div>', '</div>'].join('')).prependTo(this.$editor);\n  }\n  /**\n   * attach Drag and Drop Events\n   */\n\n\n  Dropzone_createClass(Dropzone, [{\n    key: \"initialize\",\n    value: function initialize() {\n      if (this.options.disableDragAndDrop) {\n        // prevent default drop event\n        this.documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        }; // do not consider outside of dropzone\n\n\n        this.$eventListener = this.$dropzone;\n        this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    }\n    /**\n     * attach Drag and Drop Events\n     */\n\n  }, {\n    key: \"attachDragAndDropEvent\",\n    value: function attachDragAndDropEvent() {\n      var _this = this;\n\n      var collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n      var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n      this.documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = _this.context.invoke('codeview.isActivated');\n\n        var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;\n\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          _this.$editor.addClass('dragover');\n\n          _this.$dropzone.width(_this.$editor.width());\n\n          _this.$dropzone.height(_this.$editor.height());\n\n          $dropzoneMessage.text(_this.lang.image.dragImageHere);\n        }\n\n        collection = collection.add(e.target);\n      };\n\n      this.documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target); // If nodeName is BODY, then just make it over (fix for IE)\n\n        if (!collection.length || e.target.nodeName === 'BODY') {\n          collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n          _this.$editor.removeClass('dragover');\n        }\n      };\n\n      this.documentEventHandlers.onDrop = function () {\n        collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()();\n\n        _this.$editor.removeClass('dragover');\n      }; // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n\n\n      this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter).on('dragleave', this.documentEventHandlers.onDragleave).on('drop', this.documentEventHandlers.onDrop); // change dropzone's message on hover.\n\n      this.$dropzone.on('dragenter', function () {\n        _this.$dropzone.addClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dropImage);\n      }).on('dragleave', function () {\n        _this.$dropzone.removeClass('hover');\n\n        $dropzoneMessage.text(_this.lang.image.dragImageHere);\n      }); // attach dropImage\n\n      this.$dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer; // stop the browser from opening the dropped content\n\n        event.preventDefault();\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          _this.$editable.focus();\n\n          _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(dataTransfer.types, function (idx, type) {\n            // skip moz-specific types\n            if (type.toLowerCase().indexOf('_moz_') > -1) {\n              return;\n            }\n\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              _this.context.invoke('editor.pasteHTML', content);\n            } else {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(content).each(function (idx, item) {\n                _this.context.invoke('editor.insertNode', item);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _this2 = this;\n\n      Object.keys(this.documentEventHandlers).forEach(function (key) {\n        _this2.$eventListener.off(key.substr(2).toLowerCase(), _this2.documentEventHandlers[key]);\n      });\n      this.documentEventHandlers = {};\n    }\n  }]);\n\n  return Dropzone;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Codeview.js\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Codeview_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Codeview_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Codeview_createClass(Constructor, protoProps, staticProps) { if (protoProps) Codeview_defineProperties(Constructor.prototype, protoProps); if (staticProps) Codeview_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n/**\n * @class Codeview\n */\n\nvar Codeview_CodeView = /*#__PURE__*/function () {\n  function CodeView(context) {\n    Codeview_classCallCheck(this, CodeView);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n    this.CodeMirrorConstructor = window.CodeMirror;\n\n    if (this.options.codemirror.CodeMirrorConstructor) {\n      this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor;\n    }\n  }\n\n  Codeview_createClass(CodeView, [{\n    key: \"sync\",\n    value: function sync(html) {\n      var isCodeview = this.isActivated();\n      var CodeMirror = this.CodeMirrorConstructor;\n\n      if (isCodeview) {\n        if (html) {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').getDoc().setValue(html);\n          } else {\n            this.$codable.val(html);\n          }\n        } else {\n          if (CodeMirror) {\n            this.$codable.data('cmEditor').save();\n          }\n        }\n      }\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.$codable.on('keyup', function (event) {\n        if (event.keyCode === core_key.code.ESCAPE) {\n          _this.deactivate();\n        }\n      });\n    }\n    /**\n     * @return {Boolean}\n     */\n\n  }, {\n    key: \"isActivated\",\n    value: function isActivated() {\n      return this.$editor.hasClass('codeview');\n    }\n    /**\n     * toggle codeview\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n\n      this.context.triggerEvent('codeview.toggled');\n    }\n    /**\n     * purify input value\n     * @param value\n     * @returns {*}\n     */\n\n  }, {\n    key: \"purify\",\n    value: function purify(value) {\n      if (this.options.codeviewFilter) {\n        // filter code view regex\n        value = value.replace(this.options.codeviewFilterRegex, ''); // allow specific iframe tag\n\n        if (this.options.codeviewIframeFilter) {\n          var whitelist = this.options.codeviewIframeWhitelistSrc.concat(this.options.codeviewIframeWhitelistSrcBase);\n          value = value.replace(/(<iframe.*?>.*?(?:<\\/iframe>)?)/gi, function (tag) {\n            // remove if src attribute is duplicated\n            if (/<.+src(?==?('|\"|\\s)?)[\\s\\S]+src(?=('|\"|\\s)?)[^>]*?>/i.test(tag)) {\n              return '';\n            }\n\n            var _iterator = _createForOfIteratorHelper(whitelist),\n                _step;\n\n            try {\n              for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                var src = _step.value;\n\n                // pass if src is trusted\n                if (new RegExp('src=\"(https?:)?\\/\\/' + src.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') + '\\/(.+)\"').test(tag)) {\n                  return tag;\n                }\n              }\n            } catch (err) {\n              _iterator.e(err);\n            } finally {\n              _iterator.f();\n            }\n\n            return '';\n          });\n        }\n      }\n\n      return value;\n    }\n    /**\n     * activate code view\n     */\n\n  }, {\n    key: \"activate\",\n    value: function activate() {\n      var _this2 = this;\n\n      var CodeMirror = this.CodeMirrorConstructor;\n      this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n      this.$codable.height(this.$editable.height());\n      this.context.invoke('toolbar.updateCodeview', true);\n      this.context.invoke('airPopover.updateCodeview', true);\n      this.$editor.addClass('codeview');\n      this.$codable.focus(); // activate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror); // CodeMirror TernServer\n\n        if (this.options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(this.options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        cmEditor.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n        });\n        cmEditor.on('change', function () {\n          _this2.context.triggerEvent('change.codeview', cmEditor.getValue(), cmEditor);\n        }); // CodeMirror hasn't Padding.\n\n        cmEditor.setSize(null, this.$editable.outerHeight());\n        this.$codable.data('cmEditor', cmEditor);\n      } else {\n        this.$codable.on('blur', function (event) {\n          _this2.context.triggerEvent('blur.codeview', _this2.$codable.val(), event);\n        });\n        this.$codable.on('input', function () {\n          _this2.context.triggerEvent('change.codeview', _this2.$codable.val(), _this2.$codable);\n        });\n      }\n    }\n    /**\n     * deactivate code view\n     */\n\n  }, {\n    key: \"deactivate\",\n    value: function deactivate() {\n      var CodeMirror = this.CodeMirrorConstructor; // deactivate CodeMirror as codable\n\n      if (CodeMirror) {\n        var cmEditor = this.$codable.data('cmEditor');\n        this.$codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = this.purify(dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara);\n      var isChange = this.$editable.html() !== value;\n      this.$editable.html(value);\n      this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n      this.$editor.removeClass('codeview');\n\n      if (isChange) {\n        this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n      }\n\n      this.$editable.focus();\n      this.context.invoke('toolbar.updateCodeview', false);\n      this.context.invoke('airPopover.updateCodeview', false);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    }\n  }]);\n\n  return CodeView;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Statusbar.js\nfunction Statusbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Statusbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Statusbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Statusbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Statusbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar EDITABLE_PADDING = 24;\n\nvar Statusbar_Statusbar = /*#__PURE__*/function () {\n  function Statusbar(context) {\n    Statusbar_classCallCheck(this, Statusbar);\n\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  Statusbar_createClass(Statusbar, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      if (this.options.airMode || this.options.disableResizeEditor) {\n        this.destroy();\n        return;\n      }\n\n      this.$statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();\n\n        var onMouseMove = function onMouseMove(event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n          height = _this.options.minheight > 0 ? Math.max(height, _this.options.minheight) : height;\n          height = _this.options.maxHeight > 0 ? Math.min(height, _this.options.maxHeight) : height;\n\n          _this.$editable.height(height);\n        };\n\n        _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {\n          _this.$document.off('mousemove', onMouseMove);\n        });\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$statusbar.off();\n      this.$statusbar.addClass('locked');\n    }\n  }]);\n\n  return Statusbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Fullscreen.js\nfunction Fullscreen_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Fullscreen_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Fullscreen_createClass(Constructor, protoProps, staticProps) { if (protoProps) Fullscreen_defineProperties(Constructor.prototype, protoProps); if (staticProps) Fullscreen_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Fullscreen_Fullscreen = /*#__PURE__*/function () {\n  function Fullscreen(context) {\n    var _this = this;\n\n    Fullscreen_classCallCheck(this, Fullscreen);\n\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$scrollbar = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('html, body');\n\n    this.onResize = function () {\n      _this.resizeTo({\n        h: _this.$window.height() - _this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  Fullscreen_createClass(Fullscreen, [{\n    key: \"resizeTo\",\n    value: function resizeTo(size) {\n      this.$editable.css('height', size.h);\n      this.$codable.css('height', size.h);\n\n      if (this.$codable.data('cmeditor')) {\n        this.$codable.data('cmeditor').setsize(null, size.h);\n      }\n    }\n    /**\n     * toggle fullscreen\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      this.$editor.toggleClass('fullscreen');\n\n      if (this.isFullscreen()) {\n        this.$editable.data('orgHeight', this.$editable.css('height'));\n        this.$editable.data('orgMaxHeight', this.$editable.css('maxHeight'));\n        this.$editable.css('maxHeight', '');\n        this.$window.on('resize', this.onResize).trigger('resize');\n        this.$scrollbar.css('overflow', 'hidden');\n      } else {\n        this.$window.off('resize', this.onResize);\n        this.resizeTo({\n          h: this.$editable.data('orgHeight')\n        });\n        this.$editable.css('maxHeight', this.$editable.css('orgMaxHeight'));\n        this.$scrollbar.css('overflow', 'visible');\n      }\n\n      this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    }\n  }, {\n    key: \"isFullscreen\",\n    value: function isFullscreen() {\n      return this.$editor.hasClass('fullscreen');\n    }\n  }]);\n\n  return Fullscreen;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Handle.js\nfunction Handle_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Handle_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Handle_createClass(Constructor, protoProps, staticProps) { if (protoProps) Handle_defineProperties(Constructor.prototype, protoProps); if (staticProps) Handle_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar Handle_Handle = /*#__PURE__*/function () {\n  function Handle(context) {\n    var _this = this;\n\n    Handle_classCallCheck(this, Handle);\n\n    this.context = context;\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        if (_this.update(e.target, e)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteScrollSummernoteChangeSummernoteDialogShown() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Handle_createClass(Handle, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$handle = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['<div class=\"note-handle\">', '<div class=\"note-control-selection\">', '<div class=\"note-control-selection-bg\"></div>', '<div class=\"note-control-holder note-control-nw\"></div>', '<div class=\"note-control-holder note-control-ne\"></div>', '<div class=\"note-control-holder note-control-sw\"></div>', '<div class=\"', this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing', ' note-control-se\"></div>', this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>', '</div>', '</div>'].join('')).prependTo(this.$editingArea);\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = _this2.$handle.find('.note-control-selection').data('target');\n\n          var posStart = $target.offset();\n\n          var scrollTop = _this2.$document.scrollTop();\n\n          var onMouseMove = function onMouseMove(event) {\n            _this2.context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            _this2.update($target[0], event);\n          };\n\n          _this2.$document.on('mousemove', onMouseMove).one('mouseup', function (e) {\n            e.preventDefault();\n\n            _this2.$document.off('mousemove', onMouseMove);\n\n            _this2.context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) {\n            // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      }); // Listen for scrolling on the handle overlay.\n\n      this.$handle.on('wheel', function (e) {\n        e.preventDefault();\n\n        _this2.update();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$handle.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n      this.context.invoke('imagePopover.update', target, event);\n\n      if (isImage) {\n        var $image = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target);\n        var position = $image.position();\n        var pos = {\n          left: position.left + parseInt($image.css('marginLeft'), 10),\n          top: position.top + parseInt($image.css('marginTop'), 10)\n        }; // exclude margin\n\n        var imageSize = {\n          w: $image.outerWidth(false),\n          h: $image.outerHeight(false)\n        };\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var origImageObj = new Image();\n        origImageObj.src = $image.attr('src');\n        var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n        $selection.find('.note-control-selection-info').text(sizingText);\n        this.context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    }\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    }\n  }]);\n\n  return Handle;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoLink.js\nfunction AutoLink_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoLink_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoLink_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoLink_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoLink_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar defaultScheme = 'http://';\nvar linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nvar AutoLink_AutoLink = /*#__PURE__*/function () {\n  function AutoLink(context) {\n    var _this = this;\n\n    AutoLink_classCallCheck(this, AutoLink);\n\n    this.context = context;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoLink_createClass(AutoLink, [{\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWordRange = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var urlText = this.options.showDomainOnlyForAutolink ? keyword.replace(/^(?:https?:\\/\\/)?(?:tel?:?)?(?:mailto?:?)?(?:www\\.)?/i, '').split('/')[0] : keyword;\n        var node = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<a />').html(urlText).attr('href', link)[0];\n\n        if (this.context.options.linkTargetBlank) {\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).attr('target', '_blank');\n        }\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoLink;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoSync.js\nfunction AutoSync_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoSync_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoSync_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoSync_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoSync_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * textarea auto sync.\n */\n\nvar AutoSync_AutoSync = /*#__PURE__*/function () {\n  function AutoSync(context) {\n    var _this = this;\n\n    AutoSync_classCallCheck(this, AutoSync);\n\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': function summernoteChange() {\n        _this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  AutoSync_createClass(AutoSync, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return dom.isTextarea(this.$note[0]);\n    }\n  }]);\n\n  return AutoSync;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AutoReplace.js\nfunction AutoReplace_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AutoReplace_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AutoReplace_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoReplace_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoReplace_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar AutoReplace_AutoReplace = /*#__PURE__*/function () {\n  function AutoReplace(context) {\n    var _this = this;\n\n    AutoReplace_classCallCheck(this, AutoReplace);\n\n    this.context = context;\n    this.options = context.options.replace || {};\n    this.keys = [core_key.code.ENTER, core_key.code.SPACE, core_key.code.PERIOD, core_key.code.COMMA, core_key.code.SEMICOLON, core_key.code.SLASH];\n    this.previousKeydownCode = null;\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      }\n    };\n  }\n\n  AutoReplace_createClass(AutoReplace, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.match;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.lastWord = null;\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      if (!this.lastWord) {\n        return;\n      }\n\n      var self = this;\n      var keyword = this.lastWord.toString();\n      this.options.match(keyword, function (match) {\n        if (match) {\n          var node = '';\n\n          if (typeof match === 'string') {\n            node = dom.createText(match);\n          } else if (match instanceof jQuery) {\n            node = match[0];\n          } else if (match instanceof Node) {\n            node = match;\n          }\n\n          if (!node) return;\n          self.lastWord.insertNode(node);\n          self.lastWord = null;\n          self.context.invoke('editor.focus');\n        }\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      // this forces it to remember the last whole word, even if multiple termination keys are pressed\n      // before the previous key is let go.\n      if (this.previousKeydownCode && lists.contains(this.keys, this.previousKeydownCode)) {\n        this.previousKeydownCode = e.keyCode;\n        return;\n      }\n\n      if (lists.contains(this.keys, e.keyCode)) {\n        var wordRange = this.context.invoke('editor.createRange').getWordRange();\n        this.lastWord = wordRange;\n      }\n\n      this.previousKeydownCode = e.keyCode;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      if (lists.contains(this.keys, e.keyCode)) {\n        this.replace();\n      }\n    }\n  }]);\n\n  return AutoReplace;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Placeholder.js\nfunction Placeholder_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Placeholder_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Placeholder_createClass(Constructor, protoProps, staticProps) { if (protoProps) Placeholder_defineProperties(Constructor.prototype, protoProps); if (staticProps) Placeholder_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Placeholder_Placeholder = /*#__PURE__*/function () {\n  function Placeholder(context) {\n    var _this = this;\n\n    Placeholder_classCallCheck(this, Placeholder);\n\n    this.context = context;\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n\n    if (this.options.inheritPlaceholder === true) {\n      // get placeholder value from the original element\n      this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder;\n    }\n\n    this.events = {\n      'summernote.init summernote.change': function summernoteInitSummernoteChange() {\n        _this.update();\n      },\n      'summernote.codeview.toggled': function summernoteCodeviewToggled() {\n        _this.update();\n      }\n    };\n  }\n\n  Placeholder_createClass(Placeholder, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !!this.options.placeholder;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        _this2.context.invoke('focus');\n      }).html(this.options.placeholder).prependTo(this.$editingArea);\n      this.update();\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$placeholder.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    }\n  }]);\n\n  return Placeholder;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Buttons.js\nfunction Buttons_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Buttons_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Buttons_createClass(Constructor, protoProps, staticProps) { if (protoProps) Buttons_defineProperties(Constructor.prototype, protoProps); if (staticProps) Buttons_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar Buttons_Buttons = /*#__PURE__*/function () {\n  function Buttons(context) {\n    Buttons_classCallCheck(this, Buttons);\n\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);\n  }\n\n  Buttons_createClass(Buttons, [{\n    key: \"representShortcut\",\n    value: function representShortcut(editorMethod) {\n      var shortcut = this.invertedKeyMap[editorMethod];\n\n      if (!this.options.shortcuts || !shortcut) {\n        return '';\n      }\n\n      if (env.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\').replace('SLASH', '/').replace('LEFTBRACKET', '[').replace('RIGHTBRACKET', ']');\n      return ' (' + shortcut + ')';\n    }\n  }, {\n    key: \"button\",\n    value: function button(o) {\n      if (!this.options.tooltip && o.tooltip) {\n        delete o.tooltip;\n      }\n\n      o.container = this.options.container;\n      return this.ui.button(o);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.addTablePopoverButtons();\n      this.fontInstalledMap = {};\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      delete this.fontInstalledMap;\n    }\n  }, {\n    key: \"isFontInstalled\",\n    value: function isFontInstalled(name) {\n      if (!Object.prototype.hasOwnProperty.call(this.fontInstalledMap, name)) {\n        this.fontInstalledMap[name] = env.isFontInstalled(name) || lists.contains(this.options.fontNamesIgnoreCheck, name);\n      }\n\n      return this.fontInstalledMap[name];\n    }\n  }, {\n    key: \"isFontDeservedToAdd\",\n    value: function isFontDeservedToAdd(name) {\n      name = name.toLowerCase();\n      return name !== '' && this.isFontInstalled(name) && env.genericFontFamilies.indexOf(name) === -1;\n    }\n  }, {\n    key: \"colorPalette\",\n    value: function colorPalette(className, tooltip, backColor, foreColor) {\n      var _this = this;\n\n      return this.ui.buttonGroup({\n        className: 'note-color ' + className,\n        children: [this.button({\n          className: 'note-current-color-button',\n          contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n          tooltip: tooltip,\n          click: function click(e) {\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget);\n\n            if (backColor && foreColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            } else if (backColor) {\n              _this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor')\n              });\n            } else if (foreColor) {\n              _this.context.invoke('editor.color', {\n                foreColor: $button.attr('data-foreColor')\n              });\n            }\n          },\n          callback: function callback($button) {\n            var $recentColor = $button.find('.note-recent-color');\n\n            if (backColor) {\n              $recentColor.css('background-color', _this.options.colorButton.backColor);\n              $button.attr('data-backColor', _this.options.colorButton.backColor);\n            }\n\n            if (foreColor) {\n              $recentColor.css('color', _this.options.colorButton.foreColor);\n              $button.attr('data-foreColor', _this.options.colorButton.foreColor);\n            } else {\n              $recentColor.css('color', 'transparent');\n            }\n          }\n        }), this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('', this.options),\n          tooltip: this.lang.color.more,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), this.ui.dropdown({\n          items: (backColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.background + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"backColor\" data-value=\"transparent\">', this.lang.color.transparent, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"backColor\"><!-- back colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"backColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"backColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.backColor + '\" data-event=\"backColorPalette\">', '</div>', '<div class=\"note-holder-custom\" id=\"backColorPalette\" data-event=\"backColor\"></div>', '</div>'].join('') : '') + (foreColor ? ['<div class=\"note-palette\">', '<div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>', '<div>', '<button type=\"button\" class=\"note-color-reset btn btn-light btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">', this.lang.color.resetToDefault, '</button>', '</div>', '<div class=\"note-holder\" data-event=\"foreColor\"><!-- fore colors --></div>', '<div>', '<button type=\"button\" class=\"note-color-select btn btn-light btn-default\" data-event=\"openPalette\" data-value=\"foreColorPicker\">', this.lang.color.cpSelect, '</button>', '<input type=\"color\" id=\"foreColorPicker\" class=\"note-btn note-color-select-btn\" value=\"' + this.options.colorButton.foreColor + '\" data-event=\"foreColorPalette\">', '</div>', // Fix missing Div, Commented to find easily if it's wrong\n          '<div class=\"note-holder-custom\" id=\"foreColorPalette\" data-event=\"foreColor\"></div>', '</div>'].join('') : ''),\n          callback: function callback($dropdown) {\n            $dropdown.find('.note-holder').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: _this.options.colors,\n                colorsName: _this.options.colorsName,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            /* TODO: do we have to record recent custom colors within cookies? */\n\n            var customColors = [['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF']];\n            $dropdown.find('.note-holder-custom').each(function (idx, item) {\n              var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n              $holder.append(_this.ui.palette({\n                colors: customColors,\n                colorsName: customColors,\n                eventName: $holder.data('event'),\n                container: _this.options.container,\n                tooltip: _this.options.tooltip\n              }).render());\n            });\n            $dropdown.find('input[type=color]').each(function (idx, item) {\n              external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).change(function () {\n                var $chip = $dropdown.find('#' + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this).data('event')).find('.note-color-btn').first();\n                var color = this.value.toUpperCase();\n                $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n                $chip.click();\n              });\n            });\n          },\n          click: function click(event) {\n            event.stopPropagation();\n            var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.' + className).find('.note-dropdown-menu');\n            var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target);\n            var eventName = $button.data('event');\n            var value = $button.attr('data-value');\n\n            if (eventName === 'openPalette') {\n              var $picker = $parent.find('#' + value);\n              var $palette = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()($parent.find('#' + $picker.data('event')).find('.note-color-row')[0]); // Shift palette chips\n\n              var $chip = $palette.find('.note-color-btn').last().detach(); // Set chip attributes\n\n              var color = $picker.val();\n              $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color);\n              $palette.prepend($chip);\n              $picker.click();\n            } else {\n              if (lists.contains(['backColor', 'foreColor'], eventName)) {\n                var key = eventName === 'backColor' ? 'background-color' : 'color';\n                var $color = $button.closest('.note-color').find('.note-recent-color');\n                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n              }\n\n              _this.context.invoke('editor.' + eventName, value);\n            }\n          }\n        })]\n      }).render();\n    }\n  }, {\n    key: \"addToolbarButtons\",\n    value: function addToolbarButtons() {\n      var _this2 = this;\n\n      this.context.memo('button.style', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.magic), _this2.options),\n          tooltip: _this2.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          className: 'dropdown-style',\n          items: _this2.options.styleTags,\n          title: _this2.lang.style.style,\n          template: function template(item) {\n            // TBD: need to be simplified\n            if (typeof item === 'string') {\n              item = {\n                tag: item,\n                title: Object.prototype.hasOwnProperty.call(_this2.lang.style, item) ? _this2.lang.style[item] : item\n              };\n            }\n\n            var tag = item.tag;\n            var title = item.title;\n            var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            var className = item.className ? ' class=\"' + item.className + '\"' : '';\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: _this2.context.createInvokeHandler('editor.formatBlock')\n        })]).render();\n      });\n\n      var _loop = function _loop(styleIdx, styleLen) {\n        var item = _this2.options.styleTags[styleIdx];\n\n        _this2.context.memo('button.style.' + item, function () {\n          return _this2.button({\n            className: 'note-btn-style-' + item,\n            contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n            tooltip: _this2.lang.style[item],\n            click: _this2.context.createInvokeHandler('editor.formatBlock')\n          }).render();\n        });\n      };\n\n      for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n        _loop(styleIdx, styleLen);\n      }\n\n      this.context.memo('button.bold', function () {\n        return _this2.button({\n          className: 'note-btn-bold',\n          contents: _this2.ui.icon(_this2.options.icons.bold),\n          tooltip: _this2.lang.font.bold + _this2.representShortcut('bold'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.bold')\n        }).render();\n      });\n      this.context.memo('button.italic', function () {\n        return _this2.button({\n          className: 'note-btn-italic',\n          contents: _this2.ui.icon(_this2.options.icons.italic),\n          tooltip: _this2.lang.font.italic + _this2.representShortcut('italic'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.italic')\n        }).render();\n      });\n      this.context.memo('button.underline', function () {\n        return _this2.button({\n          className: 'note-btn-underline',\n          contents: _this2.ui.icon(_this2.options.icons.underline),\n          tooltip: _this2.lang.font.underline + _this2.representShortcut('underline'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.underline')\n        }).render();\n      });\n      this.context.memo('button.clear', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.eraser),\n          tooltip: _this2.lang.font.clear + _this2.representShortcut('removeFormat'),\n          click: _this2.context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n      this.context.memo('button.strikethrough', function () {\n        return _this2.button({\n          className: 'note-btn-strikethrough',\n          contents: _this2.ui.icon(_this2.options.icons.strikethrough),\n          tooltip: _this2.lang.font.strikethrough + _this2.representShortcut('strikethrough'),\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n        }).render();\n      });\n      this.context.memo('button.superscript', function () {\n        return _this2.button({\n          className: 'note-btn-superscript',\n          contents: _this2.ui.icon(_this2.options.icons.superscript),\n          tooltip: _this2.lang.font.superscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.superscript')\n        }).render();\n      });\n      this.context.memo('button.subscript', function () {\n        return _this2.button({\n          className: 'note-btn-subscript',\n          contents: _this2.ui.icon(_this2.options.icons.subscript),\n          tooltip: _this2.lang.font.subscript,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.subscript')\n        }).render();\n      });\n      this.context.memo('button.fontname', function () {\n        var styleInfo = _this2.context.invoke('editor.currentStyle');\n\n        if (_this2.options.addDefaultFonts) {\n          // Add 'default' fonts into the fontnames array if not exist\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(styleInfo['font-family'].split(','), function (idx, fontname) {\n            fontname = fontname.trim().replace(/['\"]+/g, '');\n\n            if (_this2.isFontDeservedToAdd(fontname)) {\n              if (_this2.options.fontNames.indexOf(fontname) === -1) {\n                _this2.options.fontNames.push(fontname);\n              }\n            }\n          });\n        }\n\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontname\"></span>', _this2.options),\n          tooltip: _this2.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontNames.filter(_this2.isFontInstalled.bind(_this2)),\n          title: _this2.lang.font.name,\n          template: function template(item) {\n            return '<span style=\"font-family: ' + env.validFontName(item) + '\">' + item + '</span>';\n          },\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })]).render();\n      });\n      this.context.memo('button.fontsize', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"></span>', _this2.options),\n          tooltip: _this2.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizes,\n          title: _this2.lang.font.size,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })]).render();\n      });\n      this.context.memo('button.fontsizeunit', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents('<span class=\"note-current-fontsizeunit\"></span>', _this2.options),\n          tooltip: _this2.lang.font.sizeunit,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          className: 'dropdown-fontsizeunit',\n          checkClassName: _this2.options.icons.menuCheck,\n          items: _this2.options.fontSizeUnits,\n          title: _this2.lang.font.sizeunit,\n          click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSizeUnit')\n        })]).render();\n      });\n      this.context.memo('button.color', function () {\n        return _this2.colorPalette('note-color-all', _this2.lang.color.recent, true, true);\n      });\n      this.context.memo('button.forecolor', function () {\n        return _this2.colorPalette('note-color-fore', _this2.lang.color.foreground, false, true);\n      });\n      this.context.memo('button.backcolor', function () {\n        return _this2.colorPalette('note-color-back', _this2.lang.color.background, true, false);\n      });\n      this.context.memo('button.ul', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.unorderedlist),\n          tooltip: _this2.lang.lists.unordered + _this2.representShortcut('insertUnorderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n      this.context.memo('button.ol', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.orderedlist),\n          tooltip: _this2.lang.lists.ordered + _this2.representShortcut('insertOrderedList'),\n          click: _this2.context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n      var justifyLeft = this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n        click: this.context.createInvokeHandler('editor.justifyLeft')\n      });\n      var justifyCenter = this.button({\n        contents: this.ui.icon(this.options.icons.alignCenter),\n        tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n        click: this.context.createInvokeHandler('editor.justifyCenter')\n      });\n      var justifyRight = this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n        click: this.context.createInvokeHandler('editor.justifyRight')\n      });\n      var justifyFull = this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n        click: this.context.createInvokeHandler('editor.justifyFull')\n      });\n      var outdent = this.button({\n        contents: this.ui.icon(this.options.icons.outdent),\n        tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n        click: this.context.createInvokeHandler('editor.outdent')\n      });\n      var indent = this.button({\n        contents: this.ui.icon(this.options.icons.indent),\n        tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n        click: this.context.createInvokeHandler('editor.indent')\n      });\n      this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n      this.context.memo('button.indent', func.invoke(indent, 'render'));\n      this.context.memo('button.paragraph', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.alignLeft), _this2.options),\n          tooltip: _this2.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown([_this2.ui.buttonGroup({\n          className: 'note-align',\n          children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n        }), _this2.ui.buttonGroup({\n          className: 'note-list',\n          children: [outdent, indent]\n        })])]).render();\n      });\n      this.context.memo('button.height', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.textHeight), _this2.options),\n          tooltip: _this2.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdownCheck({\n          items: _this2.options.lineHeights,\n          checkClassName: _this2.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: _this2.lang.font.height,\n          click: _this2.context.createInvokeHandler('editor.lineHeight')\n        })]).render();\n      });\n      this.context.memo('button.table', function () {\n        return _this2.ui.buttonGroup([_this2.button({\n          className: 'dropdown-toggle',\n          contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.table), _this2.options),\n          tooltip: _this2.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }), _this2.ui.dropdown({\n          title: _this2.lang.table.table,\n          className: 'note-table',\n          items: ['<div class=\"note-dimension-picker\">', '<div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"></div>', '<div class=\"note-dimension-picker-highlighted\"></div>', '<div class=\"note-dimension-picker-unhighlighted\"></div>', '</div>', '<div class=\"note-dimension-display\">1 x 1</div>'].join('')\n        })], {\n          callback: function callback($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: _this2.options.insertTableMaxSize.col + 'em',\n              height: _this2.options.insertTableMaxSize.row + 'em'\n            }).mousedown(_this2.context.createInvokeHandler('editor.insertTable')).on('mousemove', _this2.tableMoveHandler.bind(_this2));\n          }\n        }).render();\n      });\n      this.context.memo('button.link', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.link),\n          tooltip: _this2.lang.link.link + _this2.representShortcut('linkDialog.show'),\n          click: _this2.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.picture', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.picture),\n          tooltip: _this2.lang.image.image,\n          click: _this2.context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n      this.context.memo('button.video', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.video),\n          tooltip: _this2.lang.video.video,\n          click: _this2.context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n      this.context.memo('button.hr', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.minus),\n          tooltip: _this2.lang.hr.insert + _this2.representShortcut('insertHorizontalRule'),\n          click: _this2.context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n      this.context.memo('button.fullscreen', function () {\n        return _this2.button({\n          className: 'btn-fullscreen note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.arrowsAlt),\n          tooltip: _this2.lang.options.fullscreen,\n          click: _this2.context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n      this.context.memo('button.codeview', function () {\n        return _this2.button({\n          className: 'btn-codeview note-codeview-keep',\n          contents: _this2.ui.icon(_this2.options.icons.code),\n          tooltip: _this2.lang.options.codeview,\n          click: _this2.context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n      this.context.memo('button.redo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.redo),\n          tooltip: _this2.lang.history.redo + _this2.representShortcut('redo'),\n          click: _this2.context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n      this.context.memo('button.undo', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.undo),\n          tooltip: _this2.lang.history.undo + _this2.representShortcut('undo'),\n          click: _this2.context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n      this.context.memo('button.help', function () {\n        return _this2.button({\n          contents: _this2.ui.icon(_this2.options.icons.question),\n          tooltip: _this2.lang.options.help,\n          click: _this2.context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    }\n    /**\n     * image: [\n     *   ['imageResize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone']],\n     *   ['remove', ['removeMedia']],\n     * ],\n     */\n\n  }, {\n    key: \"addImagePopoverButtons\",\n    value: function addImagePopoverButtons() {\n      var _this3 = this;\n\n      // Image Size Buttons\n      this.context.memo('button.resizeFull', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: _this3.lang.image.resizeFull,\n          click: _this3.context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      this.context.memo('button.resizeHalf', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: _this3.lang.image.resizeHalf,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      this.context.memo('button.resizeQuarter', function () {\n        return _this3.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: _this3.lang.image.resizeQuarter,\n          click: _this3.context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n      this.context.memo('button.resizeNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.resizeNone,\n          click: _this3.context.createInvokeHandler('editor.resize', '0')\n        }).render();\n      }); // Float Buttons\n\n      this.context.memo('button.floatLeft', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatLeft),\n          tooltip: _this3.lang.image.floatLeft,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n      this.context.memo('button.floatRight', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.floatRight),\n          tooltip: _this3.lang.image.floatRight,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n      this.context.memo('button.floatNone', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.rollback),\n          tooltip: _this3.lang.image.floatNone,\n          click: _this3.context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      }); // Remove Buttons\n\n      this.context.memo('button.removeMedia', function () {\n        return _this3.button({\n          contents: _this3.ui.icon(_this3.options.icons.trash),\n          tooltip: _this3.lang.image.remove,\n          click: _this3.context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    }\n  }, {\n    key: \"addLinkPopoverButtons\",\n    value: function addLinkPopoverButtons() {\n      var _this4 = this;\n\n      this.context.memo('button.linkDialogShow', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.link),\n          tooltip: _this4.lang.link.edit,\n          click: _this4.context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n      this.context.memo('button.unlink', function () {\n        return _this4.button({\n          contents: _this4.ui.icon(_this4.options.icons.unlink),\n          tooltip: _this4.lang.link.unlink,\n          click: _this4.context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    }\n    /**\n     * table : [\n     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n     * ],\n     */\n\n  }, {\n    key: \"addTablePopoverButtons\",\n    value: function addTablePopoverButtons() {\n      var _this5 = this;\n\n      this.context.memo('button.addRowUp', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowAbove),\n          tooltip: _this5.lang.table.addRowAbove,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'top')\n        }).render();\n      });\n      this.context.memo('button.addRowDown', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowBelow),\n          tooltip: _this5.lang.table.addRowBelow,\n          click: _this5.context.createInvokeHandler('editor.addRow', 'bottom')\n        }).render();\n      });\n      this.context.memo('button.addColLeft', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colBefore),\n          tooltip: _this5.lang.table.addColLeft,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'left')\n        }).render();\n      });\n      this.context.memo('button.addColRight', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colAfter),\n          tooltip: _this5.lang.table.addColRight,\n          click: _this5.context.createInvokeHandler('editor.addCol', 'right')\n        }).render();\n      });\n      this.context.memo('button.deleteRow', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.rowRemove),\n          tooltip: _this5.lang.table.delRow,\n          click: _this5.context.createInvokeHandler('editor.deleteRow')\n        }).render();\n      });\n      this.context.memo('button.deleteCol', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.colRemove),\n          tooltip: _this5.lang.table.delCol,\n          click: _this5.context.createInvokeHandler('editor.deleteCol')\n        }).render();\n      });\n      this.context.memo('button.deleteTable', function () {\n        return _this5.button({\n          className: 'btn-md',\n          contents: _this5.ui.icon(_this5.options.icons.trash),\n          tooltip: _this5.lang.table.delTable,\n          click: _this5.context.createInvokeHandler('editor.deleteTable')\n        }).render();\n      });\n    }\n  }, {\n    key: \"build\",\n    value: function build($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = Array.isArray(group) ? group[0] : group;\n        var buttons = Array.isArray(group) ? group.length === 1 ? [group[0]] : group[1] : [group];\n        var $group = this.ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var btn = this.context.memo('button.' + buttons[idx]);\n\n          if (btn) {\n            $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n          }\n        }\n\n        $group.appendTo($container);\n      }\n    }\n    /**\n     * @param {jQuery} [$container]\n     */\n\n  }, {\n    key: \"updateCurrentStyle\",\n    value: function updateCurrentStyle($container) {\n      var _this6 = this;\n\n      var $cont = $container || this.$toolbar;\n      var styleInfo = this.context.invoke('editor.currentStyle');\n      this.updateBtnStates($cont, {\n        '.note-btn-bold': function noteBtnBold() {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function noteBtnItalic() {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function noteBtnUnderline() {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function noteBtnSubscript() {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function noteBtnSuperscript() {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function noteBtnStrikethrough() {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '').replace(/\\s+$/, '').replace(/^\\s+/, '');\n        });\n        var fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n        $cont.find('.dropdown-fontname a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontName + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $cont.find('.dropdown-fontsize a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare with string to avoid creating another func.\n\n          var isChecked = $item.data('value') + '' === fontSize + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsize').text(fontSize);\n        var fontSizeUnit = styleInfo['font-size-unit'];\n        $cont.find('.dropdown-fontsizeunit a').each(function (idx, item) {\n          var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item);\n          var isChecked = $item.data('value') + '' === fontSizeUnit + '';\n          $item.toggleClass('checked', isChecked);\n        });\n        $cont.find('.note-current-fontsizeunit').text(fontSizeUnit);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $cont.find('.dropdown-line-height li a').each(function (idx, item) {\n          // always compare with string to avoid creating another func.\n          var isChecked = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).data('value') + '' === lineHeight + '';\n          _this6.className = isChecked ? 'checked' : '';\n        });\n      }\n    }\n  }, {\n    key: \"updateBtnStates\",\n    value: function updateBtnStates($container, infos) {\n      var _this7 = this;\n\n      external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(infos, function (selector, pred) {\n        _this7.ui.toggleBtnActive($container.find(selector), pred());\n      });\n    }\n  }, {\n    key: \"tableMoveHandler\",\n    value: function tableMoveHandler(event) {\n      var PX_PER_EM = 18;\n      var $picker = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target.parentNode); // target is mousecatcher\n\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n      var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox\n\n      if (event.offsetX === undefined) {\n        var posCatcher = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n      $highlighted.css({\n        width: dim.c + 'em',\n        height: dim.r + 'em'\n      });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n        $unhighlighted.css({\n          width: dim.c + 1 + 'em'\n        });\n      }\n\n      if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n        $unhighlighted.css({\n          height: dim.r + 1 + 'em'\n        });\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    }\n  }]);\n\n  return Buttons;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/Toolbar.js\nfunction Toolbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Toolbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Toolbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Toolbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Toolbar_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar Toolbar_Toolbar = /*#__PURE__*/function () {\n  function Toolbar(context) {\n    Toolbar_classCallCheck(this, Toolbar);\n\n    this.context = context;\n    this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window);\n    this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document);\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.options = context.options;\n    this.isFollowing = false;\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  Toolbar_createClass(Toolbar, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !this.options.airMode;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this = this;\n\n      this.options.toolbar = this.options.toolbar || [];\n\n      if (!this.options.toolbar.length) {\n        this.$toolbar.hide();\n      } else {\n        this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n      }\n\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n\n      this.changeContainer(false);\n      this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        _this.context.invoke('buttons.updateCurrentStyle');\n      });\n      this.context.invoke('buttons.updateCurrentStyle');\n\n      if (this.options.followingToolbar) {\n        this.$window.on('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$toolbar.children().remove();\n\n      if (this.options.followingToolbar) {\n        this.$window.off('scroll resize', this.followScroll);\n      }\n    }\n  }, {\n    key: \"followScroll\",\n    value: function followScroll() {\n      if (this.$editor.hasClass('fullscreen')) {\n        return false;\n      }\n\n      var editorHeight = this.$editor.outerHeight();\n      var editorWidth = this.$editor.width();\n      var toolbarHeight = this.$toolbar.height();\n      var statusbarHeight = this.$statusbar.height(); // check if the web app is currently using another static bar\n\n      var otherBarHeight = 0;\n\n      if (this.options.otherStaticBar) {\n        otherBarHeight = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.otherStaticBar).outerHeight();\n      }\n\n      var currentOffset = this.$document.scrollTop();\n      var editorOffsetTop = this.$editor.offset().top;\n      var editorOffsetBottom = editorOffsetTop + editorHeight;\n      var activateOffset = editorOffsetTop - otherBarHeight;\n      var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight - statusbarHeight;\n\n      if (!this.isFollowing && currentOffset > activateOffset && currentOffset < deactivateOffsetBottom - toolbarHeight) {\n        this.isFollowing = true;\n        this.$editable.css({\n          marginTop: this.$toolbar.outerHeight()\n        });\n        this.$toolbar.css({\n          position: 'fixed',\n          top: otherBarHeight,\n          width: editorWidth,\n          zIndex: 1000\n        });\n      } else if (this.isFollowing && (currentOffset < activateOffset || currentOffset > deactivateOffsetBottom)) {\n        this.isFollowing = false;\n        this.$toolbar.css({\n          position: 'relative',\n          top: 0,\n          width: '100%',\n          zIndex: 'auto'\n        });\n        this.$editable.css({\n          marginTop: ''\n        });\n      }\n    }\n  }, {\n    key: \"changeContainer\",\n    value: function changeContainer(isFullscreen) {\n      if (isFullscreen) {\n        this.$toolbar.prependTo(this.$editor);\n      } else {\n        if (this.options.toolbarContainer) {\n          this.$toolbar.appendTo(this.options.toolbarContainer);\n        }\n      }\n\n      if (this.options.followingToolbar) {\n        this.followScroll();\n      }\n    }\n  }, {\n    key: \"updateFullscreen\",\n    value: function updateFullscreen(isFullscreen) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n      this.changeContainer(isFullscreen);\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    }\n  }, {\n    key: \"activate\",\n    value: function activate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, true);\n    }\n  }, {\n    key: \"deactivate\",\n    value: function deactivate(isIncludeCodeview) {\n      var $btn = this.$toolbar.find('button');\n\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.note-codeview-keep');\n      }\n\n      this.ui.toggleBtn($btn, false);\n    }\n  }]);\n\n  return Toolbar;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkDialog.js\nfunction LinkDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar LinkDialog_LinkDialog = /*#__PURE__*/function () {\n  function LinkDialog(context) {\n    LinkDialog_classCallCheck(this, LinkDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  LinkDialog_createClass(LinkDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.textToDisplay, \"</label>\"), \"<input id=\\\"note-dialog-link-txt-\".concat(this.options.id, \"\\\" class=\\\"note-link-text form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>', '<div class=\"form-group note-form-group\">', \"<label for=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.link.url, \"</label>\"), \"<input id=\\\"note-dialog-link-url-\".concat(this.options.id, \"\\\" class=\\\"note-link-url form-control note-form-control note-input\\\" type=\\\"text\\\" value=\\\"http://\\\"/>\"), '</div>', !this.options.disableLinkTarget ? external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-open-in-new-window',\n        text: this.lang.link.openInNewWindow,\n        checked: true\n      }).render()).html() : '', external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div/>').append(this.ui.checkbox({\n        className: 'sn-checkbox-use-protocol',\n        text: this.lang.link.useProtocol,\n        checked: true\n      }).render()).html()].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.link.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        className: 'link-dialog',\n        title: this.lang.link.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n    /**\n     * toggle update button\n     */\n\n  }, {\n    key: \"toggleLinkBtn\",\n    value: function toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n      this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    }\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showLinkDialog\",\n    value: function showLinkDialog(linkInfo) {\n      var _this = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $linkText = _this.$dialog.find('.note-link-text');\n\n        var $linkUrl = _this.$dialog.find('.note-link-url');\n\n        var $linkBtn = _this.$dialog.find('.note-link-btn');\n\n        var $openInNewWindow = _this.$dialog.find('.sn-checkbox-open-in-new-window input[type=checkbox]');\n\n        var $useProtocol = _this.$dialog.find('.sn-checkbox-use-protocol input[type=checkbox]');\n\n        _this.ui.onDialogShown(_this.$dialog, function () {\n          _this.context.triggerEvent('dialog.shown'); // If no url was given and given text is valid URL then copy that into URL Field\n\n\n          if (!linkInfo.url && func.isValidUrl(linkInfo.text)) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.on('input paste propertychange', function () {\n            // If linktext was modified by input events,\n            // cloning text from linkUrl will be stopped.\n            linkInfo.text = $linkText.val();\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.text);\n          $linkUrl.on('input paste propertychange', function () {\n            // Display same text on `Text to display` as default\n            // when linktext has no text\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n\n            _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          }).val(linkInfo.url);\n\n          if (!env.isSupportTouch) {\n            $linkUrl.trigger('focus');\n          }\n\n          _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n\n          _this.bindEnterKey($linkUrl, $linkBtn);\n\n          _this.bindEnterKey($linkText, $linkBtn);\n\n          var isNewWindowChecked = linkInfo.isNewWindow !== undefined ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;\n          $openInNewWindow.prop('checked', isNewWindowChecked);\n          var useProtocolChecked = linkInfo.url ? false : _this.context.options.useProtocol;\n          $useProtocol.prop('checked', useProtocolChecked);\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked'),\n              checkProtocol: $useProtocol.is(':checked')\n            });\n\n            _this.ui.hideDialog(_this.$dialog);\n          });\n        });\n\n        _this.ui.onDialogHidden(_this.$dialog, function () {\n          // detach events\n          $linkText.off();\n          $linkUrl.off();\n          $linkBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this.ui.showDialog(_this.$dialog);\n      }).promise();\n    }\n    /**\n     * @param {Object} layoutInfo\n     */\n\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this2 = this;\n\n      var linkInfo = this.context.invoke('editor.getLinkInfo');\n      this.context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        _this2.context.invoke('editor.restoreRange');\n\n        _this2.context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        _this2.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return LinkDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/LinkPopover.js\nfunction LinkPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction LinkPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction LinkPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar LinkPopover_LinkPopover = /*#__PURE__*/function () {\n  function LinkPopover(context) {\n    var _this = this;\n\n    LinkPopover_classCallCheck(this, LinkPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteChangeSummernoteScroll() {\n        _this.update();\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  LinkPopover_createClass(LinkPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.link);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-link-popover',\n        callback: function callback($node) {\n          var $content = $node.find('.popover-content,.note-popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.link);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!this.context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = this.context.invoke('editor.getLastRange');\n\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).text(href);\n        var pos = dom.posFromPlaceholder(anchor);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return LinkPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImageDialog.js\nfunction ImageDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImageDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImageDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar ImageDialog_ImageDialog = /*#__PURE__*/function () {\n  function ImageDialog(context) {\n    ImageDialog_classCallCheck(this, ImageDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  ImageDialog_createClass(ImageDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var imageLimitation = '';\n\n      if (this.options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = \"<small>\".concat(this.lang.image.maximumFileSize + ' : ' + readableSize, \"</small>\");\n      }\n\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group note-group-select-from-files\">', '<label for=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>', '<input id=\"note-dialog-image-file-' + this.options.id + '\" class=\"note-image-input form-control-file note-form-control note-input\" ', ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\"/>', imageLimitation, '</div>', '<div class=\"form-group note-group-image-url\">', '<label for=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-form-label\">' + this.lang.image.url + '</label>', '<input id=\"note-dialog-image-url-' + this.options.id + '\" class=\"note-image-url form-control note-form-control note-input\" type=\"text\"/>', '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.image.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.image.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') {\n          // image url\n          // If onImageLinkInsert set,\n          if (_this.options.callbacks.onImageLinkInsert) {\n            _this.context.triggerEvent('image.link.insert', data);\n          } else {\n            _this.context.invoke('editor.insertImage', data);\n          }\n        } else {\n          // array of files\n          _this.context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showImageDialog\",\n    value: function showImageDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $imageInput = _this2.$dialog.find('.note-image-input');\n\n        var $imageUrl = _this2.$dialog.find('.note-image-url');\n\n        var $imageBtn = _this2.$dialog.find('.note-image-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown'); // Cloning imageInput to clear element.\n\n\n          $imageInput.replaceWith($imageInput.clone().on('change', function (event) {\n            deferred.resolve(event.target.files || event.target.value);\n          }).val(''));\n          $imageUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($imageBtn, $imageUrl.val());\n          }).val('');\n\n          if (!env.isSupportTouch) {\n            $imageUrl.trigger('focus');\n          }\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($imageUrl.val());\n          });\n\n          _this2.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $imageInput.off();\n          $imageUrl.off();\n          $imageBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return ImageDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/ImagePopover.js\nfunction ImagePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction ImagePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction ImagePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImagePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImagePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\n\nvar ImagePopover_ImagePopover = /*#__PURE__*/function () {\n  function ImagePopover(context) {\n    var _this = this;\n\n    ImagePopover_classCallCheck(this, ImagePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n    this.events = {\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  ImagePopover_createClass(ImagePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.image);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.image);\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target, event) {\n      if (dom.isImg(target)) {\n        var position = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target).offset();\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        var pos = {};\n\n        if (this.options.popatmouse) {\n          pos.left = event.pageX - 20;\n          pos.top = event.pageY;\n        } else {\n          pos = position;\n        }\n\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return ImagePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/TablePopover.js\nfunction TablePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction TablePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction TablePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) TablePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) TablePopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\nvar TablePopover_TablePopover = /*#__PURE__*/function () {\n  function TablePopover(context) {\n    var _this = this;\n\n    TablePopover_classCallCheck(this, TablePopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange() {\n        _this.update();\n      },\n      'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  TablePopover_createClass(TablePopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return !lists.isEmpty(this.options.popover.table);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      this.$popover = this.ui.popover({\n        className: 'note-table-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content,.note-popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.table); // [workaround] Disable Firefox's default table editor\n\n      if (env.isFF) {\n        document.execCommand('enableInlineTableEditing', false, false);\n      }\n\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(target) {\n      if (this.context.isDisabled()) {\n        return false;\n      }\n\n      var isCell = dom.isCell(target);\n\n      if (isCell) {\n        var pos = dom.posFromPlaceholder(target);\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        pos.top -= containerOffset.top;\n        pos.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n\n      return isCell;\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return TablePopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/VideoDialog.js\nfunction VideoDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction VideoDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction VideoDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) VideoDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) VideoDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar VideoDialog_VideoDialog = /*#__PURE__*/function () {\n  function VideoDialog(context) {\n    VideoDialog_classCallCheck(this, VideoDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  VideoDialog_createClass(VideoDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<div class=\"form-group note-form-group row-fluid\">', \"<label for=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-form-label\\\">\").concat(this.lang.video.url, \" <small class=\\\"text-muted\\\">\").concat(this.lang.video.providers, \"</small></label>\"), \"<input id=\\\"note-dialog-video-url-\".concat(this.options.id, \"\\\" class=\\\"note-video-url form-control note-form-control note-input\\\" type=\\\"text\\\"/>\"), '</div>'].join('');\n      var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n      var footer = \"<input type=\\\"button\\\" href=\\\"#\\\" class=\\\"\".concat(buttonClass, \"\\\" value=\\\"\").concat(this.lang.video.insert, \"\\\" disabled>\");\n      this.$dialog = this.ui.dialog({\n        title: this.lang.video.insert,\n        fade: this.options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"bindEnterKey\",\n    value: function bindEnterKey($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === core_key.code.ENTER) {\n          event.preventDefault();\n          $btn.trigger('click');\n        }\n      });\n    }\n  }, {\n    key: \"createVideoNode\",\n    value: function createVideoNode(url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /\\/\\/(?:(?:www|m)\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))([\\w|-]{11})(?:(?:[\\?&]t=)(\\S+))?$/;\n      var ytRegExpForStart = /^(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?$/;\n      var ytMatch = url.match(ytRegExp);\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n      var qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n      var qqMatch = url.match(qqRegExp);\n      var qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n      var qqMatch2 = url.match(qqRegExp2);\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n      var fbRegExp = /(?:www\\.|\\/\\/)facebook\\.com\\/([^\\/]+)\\/videos\\/([0-9]+)/;\n      var fbMatch = url.match(fbRegExp);\n      var $video;\n\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        var start = 0;\n\n        if (typeof ytMatch[2] !== 'undefined') {\n          var ytMatchForStart = ytMatch[2].match(ytRegExpForStart);\n\n          if (ytMatchForStart) {\n            for (var n = [3600, 60, 1], i = 0, r = n.length; i < r; i++) {\n              start += typeof ytMatchForStart[i + 1] !== 'undefined' ? n[i] * parseInt(ytMatchForStart[i + 1], 10) : 0;\n            }\n          }\n        }\n\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.youtube.com/embed/' + youtubeId + (start > 0 ? '?start=' + start : '')).attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/').attr('width', '612').attr('height', '710').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', vMatch[0] + '/embed/simple').attr('width', '600').attr('height', '600').attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('src', '//player.vimeo.com/video/' + vimMatch[3]).attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2]).attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '498').attr('width', '510').attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (qqMatch && qqMatch[1].length || qqMatch2 && qqMatch2[2].length) {\n        var vid = qqMatch && qqMatch[1].length ? qqMatch[1] : qqMatch2[2];\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>').attr('frameborder', 0).attr('height', '310').attr('width', '500').attr('src', 'https://v.qq.com/txp/iframe/player.html?vid=' + vid + '&amp;auto=0');\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<video controls>').attr('src', url).attr('width', '640').attr('height', '360');\n      } else if (fbMatch && fbMatch[0].length) {\n        $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<iframe>').attr('frameborder', 0).attr('src', 'https://www.facebook.com/plugins/video.php?href=' + encodeURIComponent(fbMatch[0]) + '&show_text=0&width=560').attr('width', '560').attr('height', '301').attr('scrolling', 'no').attr('allowtransparency', 'true');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n      return $video[0];\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this = this;\n\n      var text = this.context.invoke('editor.getSelectedText');\n      this.context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        _this.ui.hideDialog(_this.$dialog);\n\n        _this.context.invoke('editor.restoreRange'); // build node\n\n\n        var $node = _this.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          _this.context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        _this.context.invoke('editor.restoreRange');\n      });\n    }\n    /**\n     * show video dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showVideoDialog\",\n    value: function showVideoDialog()\n    /* text */\n    {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        var $videoUrl = _this2.$dialog.find('.note-video-url');\n\n        var $videoBtn = _this2.$dialog.find('.note-video-btn');\n\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          $videoUrl.on('input paste propertychange', function () {\n            _this2.ui.toggleBtn($videoBtn, $videoUrl.val());\n          });\n\n          if (!env.isSupportTouch) {\n            $videoUrl.trigger('focus');\n          }\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n            deferred.resolve($videoUrl.val());\n          });\n\n          _this2.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        _this2.ui.onDialogHidden(_this2.$dialog, function () {\n          $videoUrl.off();\n          $videoBtn.off();\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      });\n    }\n  }]);\n\n  return VideoDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HelpDialog.js\nfunction HelpDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HelpDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HelpDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) HelpDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) HelpDialog_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\nvar HelpDialog_HelpDialog = /*#__PURE__*/function () {\n  function HelpDialog(context) {\n    HelpDialog_classCallCheck(this, HelpDialog);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  HelpDialog_createClass(HelpDialog, [{\n    key: \"initialize\",\n    value: function initialize() {\n      var $container = this.options.dialogsInBody ? this.$body : this.options.container;\n      var body = ['<p class=\"text-center\">', '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote 0.8.18</a> · ', '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ', '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>', '</p>'].join('');\n      this.$dialog = this.ui.dialog({\n        title: this.lang.options.help,\n        fade: this.options.dialogsFade,\n        body: this.createShortcutList(),\n        footer: body,\n        callback: function callback($node) {\n          $node.find('.modal-body,.note-modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    }\n  }, {\n    key: \"createShortcutList\",\n    value: function createShortcutList() {\n      var _this = this;\n\n      var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div><div class=\"help-list-item\"></div></div>');\n        $row.append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<span/>').html(_this.context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    }\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n\n  }, {\n    key: \"showHelpDialog\",\n    value: function showHelpDialog() {\n      var _this2 = this;\n\n      return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) {\n        _this2.ui.onDialogShown(_this2.$dialog, function () {\n          _this2.context.triggerEvent('dialog.shown');\n\n          deferred.resolve();\n        });\n\n        _this2.ui.showDialog(_this2.$dialog);\n      }).promise();\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      var _this3 = this;\n\n      this.context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        _this3.context.invoke('editor.restoreRange');\n      });\n    }\n  }]);\n\n  return HelpDialog;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/AirPopover.js\nfunction AirPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction AirPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction AirPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) AirPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) AirPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar AIRMODE_POPOVER_X_OFFSET = -5;\nvar AIRMODE_POPOVER_Y_OFFSET = 5;\n\nvar AirPopover_AirPopover = /*#__PURE__*/function () {\n  function AirPopover(context) {\n    var _this = this;\n\n    AirPopover_classCallCheck(this, AirPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.options = context.options;\n    this.hidable = true;\n    this.onContextmenu = false;\n    this.pageX = null;\n    this.pageY = null;\n    this.events = {\n      'summernote.contextmenu': function summernoteContextmenu(e) {\n        if (_this.options.editing) {\n          e.preventDefault();\n          e.stopPropagation();\n          _this.onContextmenu = true;\n\n          _this.update(true);\n        }\n      },\n      'summernote.mousedown': function summernoteMousedown(we, e) {\n        _this.pageX = e.pageX;\n        _this.pageY = e.pageY;\n      },\n      'summernote.keyup summernote.mouseup summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteScroll(we, e) {\n        if (_this.options.editing && !_this.onContextmenu) {\n          _this.pageX = e.pageX;\n          _this.pageY = e.pageY;\n\n          _this.update();\n        }\n\n        _this.onContextmenu = false;\n      },\n      'summernote.disable summernote.change summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteChangeSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      },\n      'summernote.focusout': function summernoteFocusout() {\n        if (!_this.$popover.is(':active,:focus')) {\n          _this.hide();\n        }\n      }\n    };\n  }\n\n  AirPopover_createClass(AirPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.$popover = this.ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo(this.options.container);\n      var $content = this.$popover.find('.popover-content');\n      this.context.invoke('buttons.build', $content, this.options.popover.air); // disable hiding this popover preemptively by 'summernote.blur' event.\n\n      this.$popover.on('mousedown', function () {\n        _this2.hidable = false;\n      }); // (re-)enable hiding after 'summernote.blur' has been handled (aka. ignored).\n\n      this.$popover.on('mouseup', function () {\n        _this2.hidable = true;\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"update\",\n    value: function update(forcelyOpen) {\n      var styleInfo = this.context.invoke('editor.currentStyle');\n\n      if (styleInfo.range && (!styleInfo.range.isCollapsed() || forcelyOpen)) {\n        var rect = {\n          left: this.pageX,\n          top: this.pageY\n        };\n        var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n        rect.top -= containerOffset.top;\n        rect.left -= containerOffset.left;\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(rect.left, 0) + AIRMODE_POPOVER_X_OFFSET,\n          top: rect.top + AIRMODE_POPOVER_Y_OFFSET\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      } else {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"updateCodeview\",\n    value: function updateCodeview(isCodeview) {\n      this.ui.toggleBtnActive(this.$popover.find('.btn-codeview'), isCodeview);\n\n      if (isCodeview) {\n        this.hide();\n      }\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      if (this.hidable) {\n        this.$popover.hide();\n      }\n    }\n  }]);\n\n  return AirPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/module/HintPopover.js\nfunction HintPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction HintPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction HintPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) HintPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) HintPopover_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\nvar POPOVER_DIST = 5;\n\nvar HintPopover_HintPopover = /*#__PURE__*/function () {\n  function HintPopover(context) {\n    var _this = this;\n\n    HintPopover_classCallCheck(this, HintPopover);\n\n    this.context = context;\n    this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = Array.isArray(this.hint) ? this.hint : [this.hint];\n    this.events = {\n      'summernote.keyup': function summernoteKeyup(we, e) {\n        if (!e.isDefaultPrevented()) {\n          _this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function summernoteKeydown(we, e) {\n        _this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() {\n        _this.hide();\n      }\n    };\n  }\n\n  HintPopover_createClass(HintPopover, [{\n    key: \"shouldInitialize\",\n    value: function shouldInitialize() {\n      return this.hints.length > 0;\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var _this2 = this;\n\n      this.lastWordRange = null;\n      this.matchingWord = null;\n      this.$popover = this.ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo(this.options.container);\n      this.$popover.hide();\n      this.$content = this.$popover.find('.popover-content,.note-popover-content');\n      this.$content.on('click', '.note-hint-item', function (e) {\n        _this2.$content.find('.active').removeClass('active');\n\n        external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).addClass('active');\n\n        _this2.replace();\n      });\n      this.$popover.on('mousedown', function (e) {\n        e.preventDefault();\n      });\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.$popover.remove();\n    }\n  }, {\n    key: \"selectItem\",\n    value: function selectItem($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n      this.$content[0].scrollTop = $item[0].offsetTop - this.$content.innerHeight() / 2;\n    }\n  }, {\n    key: \"moveDown\",\n    value: function moveDown() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    }\n  }, {\n    key: \"moveUp\",\n    value: function moveUp() {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    }\n  }, {\n    key: \"replace\",\n    value: function replace() {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item); // If matchingWord length = 0 -> capture OK / open hint / but as mention capture \"\" (\\w*)\n\n        if (this.matchingWord !== null && this.matchingWord.length === 0) {\n          this.lastWordRange.so = this.lastWordRange.eo; // Else si > 0 and normal case -> adjust range \"before\" for correct position of insertion\n        } else if (this.matchingWord !== null && this.matchingWord.length > 0 && !this.lastWordRange.isCollapsed()) {\n          var rangeCompute = this.lastWordRange.eo - this.lastWordRange.so - this.matchingWord.length;\n\n          if (rangeCompute > 0) {\n            this.lastWordRange.so += rangeCompute;\n          }\n        }\n\n        this.lastWordRange.insertNode(node);\n\n        if (this.options.hintSelect === 'next') {\n          var blank = document.createTextNode('');\n          external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).after(blank);\n          range.createFromNodeBefore(blank).select();\n        } else {\n          range.createFromNodeAfter(node).select();\n        }\n\n        this.lastWordRange = null;\n        this.hide();\n        this.context.invoke('editor.focus');\n      }\n    }\n  }, {\n    key: \"nodeFromItem\",\n    value: function nodeFromItem($item) {\n      var hint = this.hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n\n      return node;\n    }\n  }, {\n    key: \"createItemTemplates\",\n    value: function createItemTemplates(hintIdx, items) {\n      var hint = this.hints[hintIdx];\n      return items.map(function (item\n      /*, idx */\n      ) {\n        var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n        return $item;\n      });\n    }\n  }, {\n    key: \"handleKeydown\",\n    value: function handleKeydown(e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === core_key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === core_key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === core_key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    }\n  }, {\n    key: \"searchKeyword\",\n    value: function searchKeyword(index, keyword, callback) {\n      var hint = this.hints[index];\n\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        this.matchingWord = matches[0];\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    }\n  }, {\n    key: \"createGroup\",\n    value: function createGroup(idx, keyword) {\n      var _this3 = this;\n\n      var $group = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<div class=\"note-hint-group note-hint-group-' + idx + '\"></div>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n\n        if (items.length) {\n          $group.html(_this3.createItemTemplates(idx, items));\n\n          _this3.show();\n        }\n      });\n      return $group;\n    }\n  }, {\n    key: \"handleKeyup\",\n    value: function handleKeyup(e) {\n      var _this4 = this;\n\n      if (!lists.contains([core_key.code.ENTER, core_key.code.UP, core_key.code.DOWN], e.keyCode)) {\n        var _range = this.context.invoke('editor.getLastRange');\n\n        var wordRange, keyword;\n\n        if (this.options.hintMode === 'words') {\n          wordRange = _range.getWordsRange(_range);\n          keyword = wordRange.toString();\n          this.hints.forEach(function (hint) {\n            if (hint.match.test(keyword)) {\n              wordRange = _range.getWordsMatchRange(hint.match);\n              return false;\n            }\n          });\n\n          if (!wordRange) {\n            this.hide();\n            return;\n          }\n\n          keyword = wordRange.toString();\n        } else {\n          wordRange = _range.getWordRange();\n          keyword = wordRange.toString();\n        }\n\n        if (this.hints.length && keyword) {\n          this.$content.empty();\n          var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n          var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset();\n\n          if (bnd) {\n            bnd.top -= containerOffset.top;\n            bnd.left -= containerOffset.left;\n            this.$popover.hide();\n            this.lastWordRange = wordRange;\n            this.hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                _this4.createGroup(idx, keyword).appendTo(_this4.$content);\n              }\n            }); // select first .note-hint-item\n\n            this.$content.find('.note-hint-item:first').addClass('active'); // set position for popover after group is created\n\n            if (this.direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n          }\n        } else {\n          this.hide();\n        }\n      }\n    }\n  }, {\n    key: \"show\",\n    value: function show() {\n      this.$popover.show();\n    }\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.$popover.hide();\n    }\n  }]);\n\n  return HintPopover;\n}();\n\n\n// CONCATENATED MODULE: ./src/js/base/settings.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  version: '0.8.18',\n  plugins: {},\n  dom: dom,\n  range: range,\n  lists: lists,\n  options: {\n    langInfo: external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'],\n    editing: true,\n    modules: {\n      'editor': Editor_Editor,\n      'clipboard': Clipboard_Clipboard,\n      'dropzone': Dropzone_Dropzone,\n      'codeview': Codeview_CodeView,\n      'statusbar': Statusbar_Statusbar,\n      'fullscreen': Fullscreen_Fullscreen,\n      'handle': Handle_Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover_HintPopover,\n      'autoLink': AutoLink_AutoLink,\n      'autoSync': AutoSync_AutoSync,\n      'autoReplace': AutoReplace_AutoReplace,\n      'placeholder': Placeholder_Placeholder,\n      'buttons': Buttons_Buttons,\n      'toolbar': Toolbar_Toolbar,\n      'linkDialog': LinkDialog_LinkDialog,\n      'linkPopover': LinkPopover_LinkPopover,\n      'imageDialog': ImageDialog_ImageDialog,\n      'imagePopover': ImagePopover_ImagePopover,\n      'tablePopover': TablePopover_TablePopover,\n      'videoDialog': VideoDialog_VideoDialog,\n      'helpDialog': HelpDialog_HelpDialog,\n      'airPopover': AirPopover_AirPopover\n    },\n    buttons: {},\n    lang: 'en-US',\n    followingToolbar: false,\n    toolbarPosition: 'top',\n    otherStaticBar: '',\n    // toolbar\n    codeviewKeepButton: false,\n    toolbar: [['style', ['style']], ['font', ['bold', 'underline', 'clear']], ['fontname', ['fontname']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']]],\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [['resize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], ['float', ['floatLeft', 'floatRight', 'floatNone']], ['remove', ['removeMedia']]],\n      link: [['link', ['linkDialogShow', 'unlink']]],\n      table: [['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]],\n      air: [['color', ['color']], ['font', ['bold', 'underline', 'clear']], ['para', ['ul', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture']], ['view', ['fullscreen', 'codeview']]]\n    },\n    // air mode: inline editor\n    airMode: false,\n    overrideContextMenu: false,\n    // TBD\n    width: null,\n    height: null,\n    linkTargetBlank: true,\n    useProtocol: true,\n    defaultProtocol: 'http://',\n    focus: false,\n    tabDisabled: false,\n    tabSize: 4,\n    styleWithCSS: false,\n    shortcuts: true,\n    textareaAutoSync: true,\n    tooltip: 'auto',\n    container: null,\n    maxTextLength: 0,\n    blockquoteBreakingLevel: 2,\n    spellCheck: true,\n    disableGrammar: false,\n    placeholder: null,\n    inheritPlaceholder: false,\n    // TODO: need to be documented\n    recordEveryKeystroke: false,\n    historyLimit: 200,\n    // TODO: need to be documented\n    showDomainOnlyForAutolink: false,\n    // TODO: need to be documented\n    hintMode: 'word',\n    hintSelect: 'after',\n    hintDirection: 'bottom',\n    styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n    fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana'],\n    fontNamesIgnoreCheck: [],\n    addDefaultFonts: true,\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n    fontSizeUnits: ['px', 'pt'],\n    // pallete colors(n x n)\n    colors: [['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'], ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'], ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'], ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'], ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'], ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'], ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'], ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']],\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'], ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'], ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'], ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'], ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'], ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'], ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'], ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']],\n    colorButton: {\n      foreColor: '#000000',\n      backColor: '#FFFF00'\n    },\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n    tableClassName: 'table table-bordered',\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n    // By default, dialogs are attached in container.\n    dialogsInBody: false,\n    dialogsFade: false,\n    maximumImageFileSize: null,\n    callbacks: {\n      onBeforeCommand: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onChange: null,\n      onChangeCodeview: null,\n      onDialogShown: null,\n      onEnter: null,\n      onFocus: null,\n      onImageLinkInsert: null,\n      onImageUpload: null,\n      onImageUploadError: null,\n      onInit: null,\n      onKeydown: null,\n      onKeyup: null,\n      onMousedown: null,\n      onMouseup: null,\n      onPaste: null,\n      onScroll: null\n    },\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n    codeviewFilter: false,\n    codeviewFilterRegex: /<\\/*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|ilayer|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|t(?:itle|extarea)|xml)[^>]*?>/gi,\n    codeviewIframeFilter: true,\n    codeviewIframeWhitelistSrc: [],\n    codeviewIframeWhitelistSrcBase: ['www.youtube.com', 'www.youtube-nocookie.com', 'www.facebook.com', 'vine.co', 'instagram.com', 'player.vimeo.com', 'www.dailymotion.com', 'player.youku.com', 'v.qq.com'],\n    keyMap: {\n      pc: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n      mac: {\n        'ESC': 'escape',\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'floatLeft': 'note-icon-float-left',\n      'floatRight': 'note-icon-float-right',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'rollback': 'note-icon-rollback',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0);\nvar external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_);\n\n// EXTERNAL MODULE: ./src/js/base/renderer.js\nvar renderer = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./src/js/bs3/ui.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\nvar editor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-frame panel panel-default\"/>');\nvar toolbar = renderer[\"a\" /* default */].create('<div class=\"panel-heading note-toolbar\" role=\"toolbar\"/>');\nvar editingArea = renderer[\"a\" /* default */].create('<div class=\"note-editing-area\"/>');\nvar codable = renderer[\"a\" /* default */].create('<textarea class=\"note-codable\" aria-multiline=\"true\"/>');\nvar editable = renderer[\"a\" /* default */].create('<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nvar statusbar = renderer[\"a\" /* default */].create(['<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>', '<div class=\"note-statusbar\" role=\"status\">', '<div class=\"note-resizebar\" aria-label=\"Resize\">', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '<div class=\"note-icon-bar\"></div>', '</div>', '</div>'].join(''));\nvar airEditor = renderer[\"a\" /* default */].create('<div class=\"note-editor note-airframe\"/>');\nvar airEditable = renderer[\"a\" /* default */].create(['<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"></div>', '<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"></output>'].join(''));\nvar buttonGroup = renderer[\"a\" /* default */].create('<div class=\"note-btn-group btn-group\">');\nvar dropdown = renderer[\"a\" /* default */].create('<ul class=\"note-dropdown-menu dropdown-menu\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    var option = _typeof(item) === 'object' ? item.option : undefined;\n    var dataValue = 'data-value=\"' + value + '\"';\n    var dataOption = option !== undefined ? ' data-option=\"' + option + '\"' : '';\n    return '<li aria-label=\"' + value + '\"><a href=\"#\" ' + (dataValue + dataOption) + '>' + content + '</a></li>';\n  }).join('') : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\n\nvar dropdownButtonContents = function dropdownButtonContents(contents, options) {\n  return contents + ' ' + icon(options.icons.caret, 'span');\n};\n\nvar dropdownCheck = renderer[\"a\" /* default */].create('<ul class=\"note-dropdown-menu dropdown-menu note-check\">', function ($node, options) {\n  var markup = Array.isArray(options.items) ? options.items.map(function (item) {\n    var value = typeof item === 'string' ? item : item.value || '';\n    var content = options.template ? options.template(item) : item;\n    return '<li aria-label=\"' + item + '\"><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n  }).join('') : options.items;\n  $node.html(markup).attr({\n    'aria-label': options.title\n  });\n\n  if (options && options.codeviewKeepButton) {\n    $node.addClass('note-codeview-keep');\n  }\n});\nvar dialog = renderer[\"a\" /* default */].create('<div class=\"modal note-modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function ($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html(['<div class=\"modal-dialog\">', '<div class=\"modal-content\">', options.title ? '<div class=\"modal-header\">' + '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" aria-hidden=\"true\">&times;</button>' + '<h4 class=\"modal-title\">' + options.title + '</h4>' + '</div>' : '', '<div class=\"modal-body\">' + options.body + '</div>', options.footer ? '<div class=\"modal-footer\">' + options.footer + '</div>' : '', '</div>', '</div>'].join(''));\n});\nvar popover = renderer[\"a\" /* default */].create(['<div class=\"note-popover popover in\">', '<div class=\"arrow\"></div>', '<div class=\"popover-content note-children-container\"></div>', '</div>'].join(''), function ($node, options) {\n  var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n  $node.addClass(direction);\n\n  if (options.hideArrow) {\n    $node.find('.arrow').hide();\n  }\n});\nvar ui_checkbox = renderer[\"a\" /* default */].create('<div class=\"checkbox\"></div>', function ($node, options) {\n  $node.html(['<label' + (options.id ? ' for=\"note-' + options.id + '\"' : '') + '>', '<input type=\"checkbox\"' + (options.id ? ' id=\"note-' + options.id + '\"' : ''), options.checked ? ' checked' : '', ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>', options.text ? options.text : '', '</label>'].join(''));\n});\n\nvar icon = function icon(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"></' + tagName + '>';\n};\n\nvar ui_ui = function ui(editorOptions) {\n  return {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    dropdown: dropdown,\n    dropdownButtonContents: dropdownButtonContents,\n    dropdownCheck: dropdownCheck,\n    dialog: dialog,\n    popover: popover,\n    checkbox: ui_checkbox,\n    icon: icon,\n    options: editorOptions,\n    palette: function palette($node, options) {\n      return renderer[\"a\" /* default */].create('<div class=\"note-color-palette\"/>', function ($node, options) {\n        var contents = [];\n\n        for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n          var eventName = options.eventName;\n          var colors = options.colors[row];\n          var colorsName = options.colorsName[row];\n          var buttons = [];\n\n          for (var col = 0, colSize = colors.length; col < colSize; col++) {\n            var color = colors[col];\n            var colorName = colorsName[col];\n            buttons.push(['<button type=\"button\" class=\"note-color-btn\"', 'style=\"background-color:', color, '\" ', 'data-event=\"', eventName, '\" ', 'data-value=\"', color, '\" ', 'title=\"', colorName, '\" ', 'aria-label=\"', colorName, '\" ', 'data-toggle=\"button\" tabindex=\"-1\"></button>'].join(''));\n          }\n\n          contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n        }\n\n        $node.html(contents.join(''));\n\n        if (options.tooltip) {\n          $node.find('.note-color-btn').tooltip({\n            container: options.container || editorOptions.container,\n            trigger: 'hover',\n            placement: 'bottom'\n          });\n        }\n      })($node, options);\n    },\n    button: function button($node, options) {\n      return renderer[\"a\" /* default */].create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" tabindex=\"-1\">', function ($node, options) {\n        if (options && options.tooltip) {\n          $node.attr({\n            title: options.tooltip,\n            'aria-label': options.tooltip\n          }).tooltip({\n            container: options.container || editorOptions.container,\n            trigger: 'hover',\n            placement: 'bottom'\n          }).on('click', function (e) {\n            external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget).tooltip('hide');\n          });\n        }\n\n        if (options && options.codeviewButton) {\n          $node.addClass('note-codeview-keep');\n        }\n      })($node, options);\n    },\n    toggleBtn: function toggleBtn($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n    toggleBtnActive: function toggleBtnActive($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n    onDialogShown: function onDialogShown($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n    onDialogHidden: function onDialogHidden($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n    showDialog: function showDialog($dialog) {\n      $dialog.modal('show');\n    },\n    hideDialog: function hideDialog($dialog) {\n      $dialog.modal('hide');\n    },\n    createLayout: function createLayout($note) {\n      var $editor = (editorOptions.airMode ? airEditor([editingArea([codable(), airEditable()])]) : editorOptions.toolbarPosition === 'bottom' ? editor([editingArea([codable(), editable()]), toolbar(), statusbar()]) : editor([toolbar(), editingArea([codable(), editable()]), statusbar()])).render();\n      $editor.insertAfter($note);\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n    removeLayout: function removeLayout($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n};\n\n/* harmony default export */ var bs3_ui = (ui_ui);\n// EXTERNAL MODULE: ./src/js/base/settings.js + 37 modules\nvar settings = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./src/styles/summernote-bs3.scss\nvar summernote_bs3 = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./src/js/bs3/settings.js\n\n\n\n\nexternal_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote, {\n  ui_template: bs3_ui,\n  \"interface\": 'bs3'\n});\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=summernote.js.map"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/summernote/summernote.min.js.LICENSE.txt",
    "content": "/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sweetalert2/sweetalert2.all.js",
    "content": "/*!\n* sweetalert2 v10.15.6\n* Released under the MIT License.\n*/\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function (obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inherits(subClass, superClass) {\n    if (typeof superClass !== \"function\" && superClass !== null) {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) _setPrototypeOf(subClass, superClass);\n  }\n\n  function _getPrototypeOf(o) {\n    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n      return o.__proto__ || Object.getPrototypeOf(o);\n    };\n    return _getPrototypeOf(o);\n  }\n\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n\n    return _setPrototypeOf(o, p);\n  }\n\n  function _isNativeReflectConstruct() {\n    if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n    if (Reflect.construct.sham) return false;\n    if (typeof Proxy === \"function\") return true;\n\n    try {\n      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function _construct(Parent, args, Class) {\n    if (_isNativeReflectConstruct()) {\n      _construct = Reflect.construct;\n    } else {\n      _construct = function _construct(Parent, args, Class) {\n        var a = [null];\n        a.push.apply(a, args);\n        var Constructor = Function.bind.apply(Parent, a);\n        var instance = new Constructor();\n        if (Class) _setPrototypeOf(instance, Class.prototype);\n        return instance;\n      };\n    }\n\n    return _construct.apply(null, arguments);\n  }\n\n  function _assertThisInitialized(self) {\n    if (self === void 0) {\n      throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n    }\n\n    return self;\n  }\n\n  function _possibleConstructorReturn(self, call) {\n    if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n      return call;\n    }\n\n    return _assertThisInitialized(self);\n  }\n\n  function _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n    return function _createSuperInternal() {\n      var Super = _getPrototypeOf(Derived),\n          result;\n\n      if (hasNativeReflectConstruct) {\n        var NewTarget = _getPrototypeOf(this).constructor;\n\n        result = Reflect.construct(Super, arguments, NewTarget);\n      } else {\n        result = Super.apply(this, arguments);\n      }\n\n      return _possibleConstructorReturn(this, result);\n    };\n  }\n\n  function _superPropBase(object, property) {\n    while (!Object.prototype.hasOwnProperty.call(object, property)) {\n      object = _getPrototypeOf(object);\n      if (object === null) break;\n    }\n\n    return object;\n  }\n\n  function _get(target, property, receiver) {\n    if (typeof Reflect !== \"undefined\" && Reflect.get) {\n      _get = Reflect.get;\n    } else {\n      _get = function _get(target, property, receiver) {\n        var base = _superPropBase(target, property);\n\n        if (!base) return;\n        var desc = Object.getOwnPropertyDescriptor(base, property);\n\n        if (desc.get) {\n          return desc.get.call(receiver);\n        }\n\n        return desc.value;\n      };\n    }\n\n    return _get(target, property, receiver || target);\n  }\n\n  var consolePrefix = 'SweetAlert2:';\n  /**\n   * Filter the unique values into a new array\n   * @param arr\n   */\n\n  var uniqueArray = function uniqueArray(arr) {\n    var result = [];\n\n    for (var i = 0; i < arr.length; i++) {\n      if (result.indexOf(arr[i]) === -1) {\n        result.push(arr[i]);\n      }\n    }\n\n    return result;\n  };\n  /**\n   * Capitalize the first letter of a string\n   * @param str\n   */\n\n  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  };\n  /**\n   * Returns the array of object values (Object.values isn't supported in IE11)\n   * @param obj\n   */\n\n  var objectValues = function objectValues(obj) {\n    return Object.keys(obj).map(function (key) {\n      return obj[key];\n    });\n  };\n  /**\n   * Convert NodeList to Array\n   * @param nodeList\n   */\n\n  var toArray = function toArray(nodeList) {\n    return Array.prototype.slice.call(nodeList);\n  };\n  /**\n   * Standardise console warnings\n   * @param message\n   */\n\n  var warn = function warn(message) {\n    console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n  };\n  /**\n   * Standardise console errors\n   * @param message\n   */\n\n  var error = function error(message) {\n    console.error(\"\".concat(consolePrefix, \" \").concat(message));\n  };\n  /**\n   * Private global state for `warnOnce`\n   * @type {Array}\n   * @private\n   */\n\n  var previousWarnOnceMessages = [];\n  /**\n   * Show a console warning, but only if it hasn't already been shown\n   * @param message\n   */\n\n  var warnOnce = function warnOnce(message) {\n    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {\n      previousWarnOnceMessages.push(message);\n      warn(message);\n    }\n  };\n  /**\n   * Show a one-time console warning about deprecated params/methods\n   */\n\n  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n    warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n  };\n  /**\n   * If `arg` is a function, call it (with no arguments or context) and return the result.\n   * Otherwise, just pass the value through\n   * @param arg\n   */\n\n  var callIfFunction = function callIfFunction(arg) {\n    return typeof arg === 'function' ? arg() : arg;\n  };\n  var hasToPromiseFn = function hasToPromiseFn(arg) {\n    return arg && typeof arg.toPromise === 'function';\n  };\n  var asPromise = function asPromise(arg) {\n    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n  };\n  var isPromise = function isPromise(arg) {\n    return arg && Promise.resolve(arg) === arg;\n  };\n\n  var DismissReason = Object.freeze({\n    cancel: 'cancel',\n    backdrop: 'backdrop',\n    close: 'close',\n    esc: 'esc',\n    timer: 'timer'\n  });\n\n  var isJqueryElement = function isJqueryElement(elem) {\n    return _typeof(elem) === 'object' && elem.jquery;\n  };\n\n  var isElement = function isElement(elem) {\n    return elem instanceof Element || isJqueryElement(elem);\n  };\n\n  var argsToParams = function argsToParams(args) {\n    var params = {};\n\n    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n      _extends(params, args[0]);\n    } else {\n      ['title', 'html', 'icon'].forEach(function (name, index) {\n        var arg = args[index];\n\n        if (typeof arg === 'string' || isElement(arg)) {\n          params[name] = arg;\n        } else if (arg !== undefined) {\n          error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n        }\n      });\n    }\n\n    return params;\n  };\n\n  var swalPrefix = 'swal2-';\n  var prefix = function prefix(items) {\n    var result = {};\n\n    for (var i in items) {\n      result[items[i]] = swalPrefix + items[i];\n    }\n\n    return result;\n  };\n  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);\n  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n  var getContainer = function getContainer() {\n    return document.body.querySelector(\".\".concat(swalClasses.container));\n  };\n  var elementBySelector = function elementBySelector(selectorString) {\n    var container = getContainer();\n    return container ? container.querySelector(selectorString) : null;\n  };\n\n  var elementByClass = function elementByClass(className) {\n    return elementBySelector(\".\".concat(className));\n  };\n\n  var getPopup = function getPopup() {\n    return elementByClass(swalClasses.popup);\n  };\n  var getIcon = function getIcon() {\n    return elementByClass(swalClasses.icon);\n  };\n  var getTitle = function getTitle() {\n    return elementByClass(swalClasses.title);\n  };\n  var getContent = function getContent() {\n    return elementByClass(swalClasses.content);\n  };\n  var getHtmlContainer = function getHtmlContainer() {\n    return elementByClass(swalClasses['html-container']);\n  };\n  var getImage = function getImage() {\n    return elementByClass(swalClasses.image);\n  };\n  var getProgressSteps = function getProgressSteps() {\n    return elementByClass(swalClasses['progress-steps']);\n  };\n  var getValidationMessage = function getValidationMessage() {\n    return elementByClass(swalClasses['validation-message']);\n  };\n  var getConfirmButton = function getConfirmButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n  };\n  var getDenyButton = function getDenyButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n  };\n  var getInputLabel = function getInputLabel() {\n    return elementByClass(swalClasses['input-label']);\n  };\n  var getLoader = function getLoader() {\n    return elementBySelector(\".\".concat(swalClasses.loader));\n  };\n  var getCancelButton = function getCancelButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n  };\n  var getActions = function getActions() {\n    return elementByClass(swalClasses.actions);\n  };\n  var getHeader = function getHeader() {\n    return elementByClass(swalClasses.header);\n  };\n  var getFooter = function getFooter() {\n    return elementByClass(swalClasses.footer);\n  };\n  var getTimerProgressBar = function getTimerProgressBar() {\n    return elementByClass(swalClasses['timer-progress-bar']);\n  };\n  var getCloseButton = function getCloseButton() {\n    return elementByClass(swalClasses.close);\n  }; // https://github.com/jkup/focusable/blob/master/index.js\n\n  var focusable = \"\\n  a[href],\\n  area[href],\\n  input:not([disabled]),\\n  select:not([disabled]),\\n  textarea:not([disabled]),\\n  button:not([disabled]),\\n  iframe,\\n  object,\\n  embed,\\n  [tabindex=\\\"0\\\"],\\n  [contenteditable],\\n  audio[controls],\\n  video[controls],\\n  summary\\n\";\n  var getFocusableElements = function getFocusableElements() {\n    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n    .sort(function (a, b) {\n      a = parseInt(a.getAttribute('tabindex'));\n      b = parseInt(b.getAttribute('tabindex'));\n\n      if (a > b) {\n        return 1;\n      } else if (a < b) {\n        return -1;\n      }\n\n      return 0;\n    });\n    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {\n      return el.getAttribute('tabindex') !== '-1';\n    });\n    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {\n      return isVisible(el);\n    });\n  };\n  var isModal = function isModal() {\n    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);\n  };\n  var isToast = function isToast() {\n    return document.body.classList.contains(swalClasses['toast-shown']);\n  };\n  var isLoading = function isLoading() {\n    return getPopup().hasAttribute('data-loading');\n  };\n\n  var states = {\n    previousBodyPadding: null\n  };\n  var setInnerHtml = function setInnerHtml(elem, html) {\n    // #1926\n    elem.textContent = '';\n\n    if (html) {\n      var parser = new DOMParser();\n      var parsed = parser.parseFromString(html, \"text/html\");\n      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {\n        elem.appendChild(child);\n      });\n      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {\n        elem.appendChild(child);\n      });\n    }\n  };\n  var hasClass = function hasClass(elem, className) {\n    if (!className) {\n      return false;\n    }\n\n    var classList = className.split(/\\s+/);\n\n    for (var i = 0; i < classList.length; i++) {\n      if (!elem.classList.contains(classList[i])) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  var removeCustomClasses = function removeCustomClasses(elem, params) {\n    toArray(elem.classList).forEach(function (className) {\n      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {\n        elem.classList.remove(className);\n      }\n    });\n  };\n\n  var applyCustomClass = function applyCustomClass(elem, params, className) {\n    removeCustomClasses(elem, params);\n\n    if (params.customClass && params.customClass[className]) {\n      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n        return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n      }\n\n      addClass(elem, params.customClass[className]);\n    }\n  };\n  function getInput(content, inputType) {\n    if (!inputType) {\n      return null;\n    }\n\n    switch (inputType) {\n      case 'select':\n      case 'textarea':\n      case 'file':\n        return getChildByClass(content, swalClasses[inputType]);\n\n      case 'checkbox':\n        return content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n\n      case 'radio':\n        return content.querySelector(\".\".concat(swalClasses.radio, \" input:checked\")) || content.querySelector(\".\".concat(swalClasses.radio, \" input:first-child\"));\n\n      case 'range':\n        return content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n\n      default:\n        return getChildByClass(content, swalClasses.input);\n    }\n  }\n  var focusInput = function focusInput(input) {\n    input.focus(); // place cursor at end of text in text input\n\n    if (input.type !== 'file') {\n      // http://stackoverflow.com/a/2345915\n      var val = input.value;\n      input.value = '';\n      input.value = val;\n    }\n  };\n  var toggleClass = function toggleClass(target, classList, condition) {\n    if (!target || !classList) {\n      return;\n    }\n\n    if (typeof classList === 'string') {\n      classList = classList.split(/\\s+/).filter(Boolean);\n    }\n\n    classList.forEach(function (className) {\n      if (target.forEach) {\n        target.forEach(function (elem) {\n          condition ? elem.classList.add(className) : elem.classList.remove(className);\n        });\n      } else {\n        condition ? target.classList.add(className) : target.classList.remove(className);\n      }\n    });\n  };\n  var addClass = function addClass(target, classList) {\n    toggleClass(target, classList, true);\n  };\n  var removeClass = function removeClass(target, classList) {\n    toggleClass(target, classList, false);\n  };\n  var getChildByClass = function getChildByClass(elem, className) {\n    for (var i = 0; i < elem.childNodes.length; i++) {\n      if (hasClass(elem.childNodes[i], className)) {\n        return elem.childNodes[i];\n      }\n    }\n  };\n  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n    if (value === \"\".concat(parseInt(value))) {\n      value = parseInt(value);\n    }\n\n    if (value || parseInt(value) === 0) {\n      elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n    } else {\n      elem.style.removeProperty(property);\n    }\n  };\n  var show = function show(elem) {\n    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n    elem.style.display = display;\n  };\n  var hide = function hide(elem) {\n    elem.style.display = 'none';\n  };\n  var setStyle = function setStyle(parent, selector, property, value) {\n    var el = parent.querySelector(selector);\n\n    if (el) {\n      el.style[property] = value;\n    }\n  };\n  var toggle = function toggle(elem, condition, display) {\n    condition ? show(elem, display) : hide(elem);\n  }; // borrowed from jquery $(elem).is(':visible') implementation\n\n  var isVisible = function isVisible(elem) {\n    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n  };\n  var allButtonsAreHidden = function allButtonsAreHidden() {\n    return !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n  };\n  var isScrollable = function isScrollable(elem) {\n    return !!(elem.scrollHeight > elem.clientHeight);\n  }; // borrowed from https://stackoverflow.com/a/46352119\n\n  var hasCssAnimation = function hasCssAnimation(elem) {\n    var style = window.getComputedStyle(elem);\n    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n    return animDuration > 0 || transDuration > 0;\n  };\n  var contains = function contains(haystack, needle) {\n    if (typeof haystack.contains === 'function') {\n      return haystack.contains(needle);\n    }\n  };\n  var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var timerProgressBar = getTimerProgressBar();\n\n    if (isVisible(timerProgressBar)) {\n      if (reset) {\n        timerProgressBar.style.transition = 'none';\n        timerProgressBar.style.width = '100%';\n      }\n\n      setTimeout(function () {\n        timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n        timerProgressBar.style.width = '0%';\n      }, 10);\n    }\n  };\n  var stopTimerProgressBar = function stopTimerProgressBar() {\n    var timerProgressBar = getTimerProgressBar();\n    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    timerProgressBar.style.removeProperty('transition');\n    timerProgressBar.style.width = '100%';\n    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);\n    timerProgressBar.style.removeProperty('transition');\n    timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n  };\n\n  // Detect Node env\n  var isNodeEnv = function isNodeEnv() {\n    return typeof window === 'undefined' || typeof document === 'undefined';\n  };\n\n  var sweetHTML = \"\\n <div aria-labelledby=\\\"\".concat(swalClasses.title, \"\\\" aria-describedby=\\\"\").concat(swalClasses.content, \"\\\" class=\\\"\").concat(swalClasses.popup, \"\\\" tabindex=\\\"-1\\\">\\n   <div class=\\\"\").concat(swalClasses.header, \"\\\">\\n     <ul class=\\\"\").concat(swalClasses['progress-steps'], \"\\\"></ul>\\n     <div class=\\\"\").concat(swalClasses.icon, \"\\\"></div>\\n     <img class=\\\"\").concat(swalClasses.image, \"\\\" />\\n     <h2 class=\\\"\").concat(swalClasses.title, \"\\\" id=\\\"\").concat(swalClasses.title, \"\\\"></h2>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.close, \"\\\"></button>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.content, \"\\\">\\n     <div id=\\\"\").concat(swalClasses.content, \"\\\" class=\\\"\").concat(swalClasses['html-container'], \"\\\"></div>\\n     <input class=\\\"\").concat(swalClasses.input, \"\\\" />\\n     <input type=\\\"file\\\" class=\\\"\").concat(swalClasses.file, \"\\\" />\\n     <div class=\\\"\").concat(swalClasses.range, \"\\\">\\n       <input type=\\\"range\\\" />\\n       <output></output>\\n     </div>\\n     <select class=\\\"\").concat(swalClasses.select, \"\\\"></select>\\n     <div class=\\\"\").concat(swalClasses.radio, \"\\\"></div>\\n     <label for=\\\"\").concat(swalClasses.checkbox, \"\\\" class=\\\"\").concat(swalClasses.checkbox, \"\\\">\\n       <input type=\\\"checkbox\\\" />\\n       <span class=\\\"\").concat(swalClasses.label, \"\\\"></span>\\n     </label>\\n     <textarea class=\\\"\").concat(swalClasses.textarea, \"\\\"></textarea>\\n     <div class=\\\"\").concat(swalClasses['validation-message'], \"\\\" id=\\\"\").concat(swalClasses['validation-message'], \"\\\"></div>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.actions, \"\\\">\\n     <div class=\\\"\").concat(swalClasses.loader, \"\\\"></div>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.confirm, \"\\\"></button>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.deny, \"\\\"></button>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.cancel, \"\\\"></button>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.footer, \"\\\"></div>\\n   <div class=\\\"\").concat(swalClasses['timer-progress-bar-container'], \"\\\">\\n     <div class=\\\"\").concat(swalClasses['timer-progress-bar'], \"\\\"></div>\\n   </div>\\n </div>\\n\").replace(/(^|\\n)\\s*/g, '');\n\n  var resetOldContainer = function resetOldContainer() {\n    var oldContainer = getContainer();\n\n    if (!oldContainer) {\n      return false;\n    }\n\n    oldContainer.parentNode.removeChild(oldContainer);\n    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n    return true;\n  };\n\n  var oldInputVal; // IE11 workaround, see #1109 for details\n\n  var resetValidationMessage = function resetValidationMessage(e) {\n    if (Swal.isVisible() && oldInputVal !== e.target.value) {\n      Swal.resetValidationMessage();\n    }\n\n    oldInputVal = e.target.value;\n  };\n\n  var addInputChangeListeners = function addInputChangeListeners() {\n    var content = getContent();\n    var input = getChildByClass(content, swalClasses.input);\n    var file = getChildByClass(content, swalClasses.file);\n    var range = content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n    var rangeOutput = content.querySelector(\".\".concat(swalClasses.range, \" output\"));\n    var select = getChildByClass(content, swalClasses.select);\n    var checkbox = content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n    var textarea = getChildByClass(content, swalClasses.textarea);\n    input.oninput = resetValidationMessage;\n    file.onchange = resetValidationMessage;\n    select.onchange = resetValidationMessage;\n    checkbox.onchange = resetValidationMessage;\n    textarea.oninput = resetValidationMessage;\n\n    range.oninput = function (e) {\n      resetValidationMessage(e);\n      rangeOutput.value = range.value;\n    };\n\n    range.onchange = function (e) {\n      resetValidationMessage(e);\n      range.nextSibling.value = range.value;\n    };\n  };\n\n  var getTarget = function getTarget(target) {\n    return typeof target === 'string' ? document.querySelector(target) : target;\n  };\n\n  var setupAccessibility = function setupAccessibility(params) {\n    var popup = getPopup();\n    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n    if (!params.toast) {\n      popup.setAttribute('aria-modal', 'true');\n    }\n  };\n\n  var setupRTL = function setupRTL(targetElement) {\n    if (window.getComputedStyle(targetElement).direction === 'rtl') {\n      addClass(getContainer(), swalClasses.rtl);\n    }\n  };\n  /*\n   * Add modal + backdrop to DOM\n   */\n\n\n  var init = function init(params) {\n    // Clean up the old popup container if it exists\n    var oldContainerExisted = resetOldContainer();\n    /* istanbul ignore if */\n\n    if (isNodeEnv()) {\n      error('SweetAlert2 requires document to initialize');\n      return;\n    }\n\n    var container = document.createElement('div');\n    container.className = swalClasses.container;\n\n    if (oldContainerExisted) {\n      addClass(container, swalClasses['no-transition']);\n    }\n\n    setInnerHtml(container, sweetHTML);\n    var targetElement = getTarget(params.target);\n    targetElement.appendChild(container);\n    setupAccessibility(params);\n    setupRTL(targetElement);\n    addInputChangeListeners();\n  };\n\n  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n    // DOM element\n    if (param instanceof HTMLElement) {\n      target.appendChild(param); // Object\n    } else if (_typeof(param) === 'object') {\n      handleObject(param, target); // Plain string\n    } else if (param) {\n      setInnerHtml(target, param);\n    }\n  };\n\n  var handleObject = function handleObject(param, target) {\n    // JQuery element(s)\n    if (param.jquery) {\n      handleJqueryElem(target, param); // For other objects use their string representation\n    } else {\n      setInnerHtml(target, param.toString());\n    }\n  };\n\n  var handleJqueryElem = function handleJqueryElem(target, elem) {\n    target.textContent = '';\n\n    if (0 in elem) {\n      for (var i = 0; (i in elem); i++) {\n        target.appendChild(elem[i].cloneNode(true));\n      }\n    } else {\n      target.appendChild(elem.cloneNode(true));\n    }\n  };\n\n  var animationEndEvent = function () {\n    // Prevent run in Node env\n\n    /* istanbul ignore if */\n    if (isNodeEnv()) {\n      return false;\n    }\n\n    var testEl = document.createElement('div');\n    var transEndEventNames = {\n      WebkitAnimation: 'webkitAnimationEnd',\n      OAnimation: 'oAnimationEnd oanimationend',\n      animation: 'animationend'\n    };\n\n    for (var i in transEndEventNames) {\n      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n        return transEndEventNames[i];\n      }\n    }\n\n    return false;\n  }();\n\n  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\n  var measureScrollbar = function measureScrollbar() {\n    var scrollDiv = document.createElement('div');\n    scrollDiv.className = swalClasses['scrollbar-measure'];\n    document.body.appendChild(scrollDiv);\n    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n    document.body.removeChild(scrollDiv);\n    return scrollbarWidth;\n  };\n\n  var renderActions = function renderActions(instance, params) {\n    var actions = getActions();\n    var loader = getLoader();\n    var confirmButton = getConfirmButton();\n    var denyButton = getDenyButton();\n    var cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n      hide(actions);\n    } // Custom class\n\n\n    applyCustomClass(actions, params, 'actions'); // Render buttons\n\n    renderButton(confirmButton, 'confirm', params);\n    renderButton(denyButton, 'deny', params);\n    renderButton(cancelButton, 'cancel', params);\n    handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n    if (params.reverseButtons) {\n      actions.insertBefore(cancelButton, loader);\n      actions.insertBefore(denyButton, loader);\n      actions.insertBefore(confirmButton, loader);\n    } // Loader\n\n\n    setInnerHtml(loader, params.loaderHtml);\n    applyCustomClass(loader, params, 'loader');\n  };\n\n  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n    if (!params.buttonsStyling) {\n      return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n    }\n\n    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n    if (params.confirmButtonColor) {\n      confirmButton.style.backgroundColor = params.confirmButtonColor;\n    }\n\n    if (params.denyButtonColor) {\n      denyButton.style.backgroundColor = params.denyButtonColor;\n    }\n\n    if (params.cancelButtonColor) {\n      cancelButton.style.backgroundColor = params.cancelButtonColor;\n    }\n  }\n\n  function renderButton(button, buttonType, params) {\n    toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n    setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n    button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n    // Add buttons custom classes\n\n    button.className = swalClasses[buttonType];\n    applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n    addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n  }\n\n  function handleBackdropParam(container, backdrop) {\n    if (typeof backdrop === 'string') {\n      container.style.background = backdrop;\n    } else if (!backdrop) {\n      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n    }\n  }\n\n  function handlePositionParam(container, position) {\n    if (position in swalClasses) {\n      addClass(container, swalClasses[position]);\n    } else {\n      warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n      addClass(container, swalClasses.center);\n    }\n  }\n\n  function handleGrowParam(container, grow) {\n    if (grow && typeof grow === 'string') {\n      var growClass = \"grow-\".concat(grow);\n\n      if (growClass in swalClasses) {\n        addClass(container, swalClasses[growClass]);\n      }\n    }\n  }\n\n  var renderContainer = function renderContainer(instance, params) {\n    var container = getContainer();\n\n    if (!container) {\n      return;\n    }\n\n    handleBackdropParam(container, params.backdrop);\n\n    if (!params.backdrop && params.allowOutsideClick) {\n      warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n    }\n\n    handlePositionParam(container, params.position);\n    handleGrowParam(container, params.grow); // Custom class\n\n    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method\n\n    var queueStep = document.body.getAttribute('data-swal2-queue-step');\n\n    if (queueStep) {\n      container.setAttribute('data-queue-step', queueStep);\n      document.body.removeAttribute('data-swal2-queue-step');\n    }\n  };\n\n  /**\n   * This module containts `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n  var privateProps = {\n    promise: new WeakMap(),\n    innerParams: new WeakMap(),\n    domCache: new WeakMap()\n  };\n\n  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n  var renderInput = function renderInput(instance, params) {\n    var content = getContent();\n    var innerParams = privateProps.innerParams.get(instance);\n    var rerender = !innerParams || params.input !== innerParams.input;\n    inputTypes.forEach(function (inputType) {\n      var inputClass = swalClasses[inputType];\n      var inputContainer = getChildByClass(content, inputClass); // set attributes\n\n      setAttributes(inputType, params.inputAttributes); // set class\n\n      inputContainer.className = inputClass;\n\n      if (rerender) {\n        hide(inputContainer);\n      }\n    });\n\n    if (params.input) {\n      if (rerender) {\n        showInput(params);\n      } // set custom class\n\n\n      setCustomClass(params);\n    }\n  };\n\n  var showInput = function showInput(params) {\n    if (!renderInputType[params.input]) {\n      return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n    }\n\n    var inputContainer = getInputContainer(params.input);\n    var input = renderInputType[params.input](inputContainer, params);\n    show(input); // input autofocus\n\n    setTimeout(function () {\n      focusInput(input);\n    });\n  };\n\n  var removeAttributes = function removeAttributes(input) {\n    for (var i = 0; i < input.attributes.length; i++) {\n      var attrName = input.attributes[i].name;\n\n      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {\n        input.removeAttribute(attrName);\n      }\n    }\n  };\n\n  var setAttributes = function setAttributes(inputType, inputAttributes) {\n    var input = getInput(getContent(), inputType);\n\n    if (!input) {\n      return;\n    }\n\n    removeAttributes(input);\n\n    for (var attr in inputAttributes) {\n      // Do not set a placeholder for <input type=\"range\">\n      // it'll crash Edge, #1298\n      if (inputType === 'range' && attr === 'placeholder') {\n        continue;\n      }\n\n      input.setAttribute(attr, inputAttributes[attr]);\n    }\n  };\n\n  var setCustomClass = function setCustomClass(params) {\n    var inputContainer = getInputContainer(params.input);\n\n    if (params.customClass) {\n      addClass(inputContainer, params.customClass.input);\n    }\n  };\n\n  var setInputPlaceholder = function setInputPlaceholder(input, params) {\n    if (!input.placeholder || params.inputPlaceholder) {\n      input.placeholder = params.inputPlaceholder;\n    }\n  };\n\n  var setInputLabel = function setInputLabel(input, prependTo, params) {\n    if (params.inputLabel) {\n      input.id = swalClasses.input;\n      var label = document.createElement('label');\n      var labelClass = swalClasses['input-label'];\n      label.setAttribute('for', input.id);\n      label.className = labelClass;\n      addClass(label, params.customClass.inputLabel);\n      label.innerText = params.inputLabel;\n      prependTo.insertAdjacentElement('beforebegin', label);\n    }\n  };\n\n  var getInputContainer = function getInputContainer(inputType) {\n    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n    return getChildByClass(getContent(), inputClass);\n  };\n\n  var renderInputType = {};\n\n  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {\n    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n      input.value = params.inputValue;\n    } else if (!isPromise(params.inputValue)) {\n      warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(params.inputValue), \"\\\"\"));\n    }\n\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    input.type = params.input;\n    return input;\n  };\n\n  renderInputType.file = function (input, params) {\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    return input;\n  };\n\n  renderInputType.range = function (range, params) {\n    var rangeInput = range.querySelector('input');\n    var rangeOutput = range.querySelector('output');\n    rangeInput.value = params.inputValue;\n    rangeInput.type = params.input;\n    rangeOutput.value = params.inputValue;\n    setInputLabel(rangeInput, range, params);\n    return range;\n  };\n\n  renderInputType.select = function (select, params) {\n    select.textContent = '';\n\n    if (params.inputPlaceholder) {\n      var placeholder = document.createElement('option');\n      setInnerHtml(placeholder, params.inputPlaceholder);\n      placeholder.value = '';\n      placeholder.disabled = true;\n      placeholder.selected = true;\n      select.appendChild(placeholder);\n    }\n\n    setInputLabel(select, select, params);\n    return select;\n  };\n\n  renderInputType.radio = function (radio) {\n    radio.textContent = '';\n    return radio;\n  };\n\n  renderInputType.checkbox = function (checkboxContainer, params) {\n    var checkbox = getInput(getContent(), 'checkbox');\n    checkbox.value = 1;\n    checkbox.id = swalClasses.checkbox;\n    checkbox.checked = Boolean(params.inputValue);\n    var label = checkboxContainer.querySelector('span');\n    setInnerHtml(label, params.inputPlaceholder);\n    return checkboxContainer;\n  };\n\n  renderInputType.textarea = function (textarea, params) {\n    textarea.value = params.inputValue;\n    setInputPlaceholder(textarea, params);\n    setInputLabel(textarea, textarea, params);\n\n    var getPadding = function getPadding(el) {\n      return parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);\n    };\n\n    if ('MutationObserver' in window) {\n      // #1699\n      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n      var outputsize = function outputsize() {\n        var contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());\n\n        if (contentWidth > initialPopupWidth) {\n          getPopup().style.width = \"\".concat(contentWidth, \"px\");\n        } else {\n          getPopup().style.width = null;\n        }\n      };\n\n      new MutationObserver(outputsize).observe(textarea, {\n        attributes: true,\n        attributeFilter: ['style']\n      });\n    }\n\n    return textarea;\n  };\n\n  var renderContent = function renderContent(instance, params) {\n    var htmlContainer = getHtmlContainer();\n    applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n    if (params.html) {\n      parseHtmlToContainer(params.html, htmlContainer);\n      show(htmlContainer, 'block'); // Content as plain text\n    } else if (params.text) {\n      htmlContainer.textContent = params.text;\n      show(htmlContainer, 'block'); // No content\n    } else {\n      hide(htmlContainer);\n    }\n\n    renderInput(instance, params); // Custom class\n\n    applyCustomClass(getContent(), params, 'content');\n  };\n\n  var renderFooter = function renderFooter(instance, params) {\n    var footer = getFooter();\n    toggle(footer, params.footer);\n\n    if (params.footer) {\n      parseHtmlToContainer(params.footer, footer);\n    } // Custom class\n\n\n    applyCustomClass(footer, params, 'footer');\n  };\n\n  var renderCloseButton = function renderCloseButton(instance, params) {\n    var closeButton = getCloseButton();\n    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n    applyCustomClass(closeButton, params, 'closeButton');\n    toggle(closeButton, params.showCloseButton);\n    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n  };\n\n  var renderIcon = function renderIcon(instance, params) {\n    var innerParams = privateProps.innerParams.get(instance);\n    var icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n    if (innerParams && params.icon === innerParams.icon) {\n      // Custom or default content\n      setContent(icon, params);\n      applyStyles(icon, params);\n      return;\n    }\n\n    if (!params.icon && !params.iconHtml) {\n      return hide(icon);\n    }\n\n    if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n      error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n      return hide(icon);\n    }\n\n    show(icon); // Custom or default content\n\n    setContent(icon, params);\n    applyStyles(icon, params); // Animate icon\n\n    addClass(icon, params.showClass.icon);\n  };\n\n  var applyStyles = function applyStyles(icon, params) {\n    for (var iconType in iconTypes) {\n      if (params.icon !== iconType) {\n        removeClass(icon, iconTypes[iconType]);\n      }\n    }\n\n    addClass(icon, iconTypes[params.icon]); // Icon color\n\n    setColor(icon, params); // Success icon background color\n\n    adjustSuccessIconBackgoundColor(); // Custom class\n\n    applyCustomClass(icon, params, 'icon');\n  }; // Adjust success icon background color to match the popup background color\n\n\n  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {\n    var popup = getPopup();\n    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n    for (var i = 0; i < successIconParts.length; i++) {\n      successIconParts[i].style.backgroundColor = popupBackgroundColor;\n    }\n  };\n\n  var setContent = function setContent(icon, params) {\n    icon.textContent = '';\n\n    if (params.iconHtml) {\n      setInnerHtml(icon, iconContent(params.iconHtml));\n    } else if (params.icon === 'success') {\n      setInnerHtml(icon, \"\\n      <div class=\\\"swal2-success-circular-line-left\\\"></div>\\n      <span class=\\\"swal2-success-line-tip\\\"></span> <span class=\\\"swal2-success-line-long\\\"></span>\\n      <div class=\\\"swal2-success-ring\\\"></div> <div class=\\\"swal2-success-fix\\\"></div>\\n      <div class=\\\"swal2-success-circular-line-right\\\"></div>\\n    \");\n    } else if (params.icon === 'error') {\n      setInnerHtml(icon, \"\\n      <span class=\\\"swal2-x-mark\\\">\\n        <span class=\\\"swal2-x-mark-line-left\\\"></span>\\n        <span class=\\\"swal2-x-mark-line-right\\\"></span>\\n      </span>\\n    \");\n    } else {\n      var defaultIconHtml = {\n        question: '?',\n        warning: '!',\n        info: 'i'\n      };\n      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n    }\n  };\n\n  var setColor = function setColor(icon, params) {\n    if (!params.iconColor) {\n      return;\n    }\n\n    icon.style.color = params.iconColor;\n    icon.style.borderColor = params.iconColor;\n\n    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {\n      var sel = _arr[_i];\n      setStyle(icon, sel, 'backgroundColor', params.iconColor);\n    }\n\n    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n  };\n\n  var iconContent = function iconContent(content) {\n    return \"<div class=\\\"\".concat(swalClasses['icon-content'], \"\\\">\").concat(content, \"</div>\");\n  };\n\n  var renderImage = function renderImage(instance, params) {\n    var image = getImage();\n\n    if (!params.imageUrl) {\n      return hide(image);\n    }\n\n    show(image, ''); // Src, alt\n\n    image.setAttribute('src', params.imageUrl);\n    image.setAttribute('alt', params.imageAlt); // Width, height\n\n    applyNumericalStyle(image, 'width', params.imageWidth);\n    applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n    image.className = swalClasses.image;\n    applyCustomClass(image, params, 'image');\n  };\n\n  var currentSteps = [];\n  /*\n   * Global function for chaining sweetAlert popups\n   */\n\n  var queue = function queue(steps) {\n    var Swal = this;\n    currentSteps = steps;\n\n    var resetAndResolve = function resetAndResolve(resolve, value) {\n      currentSteps = [];\n      resolve(value);\n    };\n\n    var queueResult = [];\n    return new Promise(function (resolve) {\n      (function step(i, callback) {\n        if (i < currentSteps.length) {\n          document.body.setAttribute('data-swal2-queue-step', i);\n          Swal.fire(currentSteps[i]).then(function (result) {\n            if (typeof result.value !== 'undefined') {\n              queueResult.push(result.value);\n              step(i + 1, callback);\n            } else {\n              resetAndResolve(resolve, {\n                dismiss: result.dismiss\n              });\n            }\n          });\n        } else {\n          resetAndResolve(resolve, {\n            value: queueResult\n          });\n        }\n      })(0);\n    });\n  };\n  /*\n   * Global function for getting the index of current popup in queue\n   */\n\n  var getQueueStep = function getQueueStep() {\n    return getContainer() && getContainer().getAttribute('data-queue-step');\n  };\n  /*\n   * Global function for inserting a popup to the queue\n   */\n\n  var insertQueueStep = function insertQueueStep(step, index) {\n    if (index && index < currentSteps.length) {\n      return currentSteps.splice(index, 0, step);\n    }\n\n    return currentSteps.push(step);\n  };\n  /*\n   * Global function for deleting a popup from the queue\n   */\n\n  var deleteQueueStep = function deleteQueueStep(index) {\n    if (typeof currentSteps[index] !== 'undefined') {\n      currentSteps.splice(index, 1);\n    }\n  };\n\n  var createStepElement = function createStepElement(step) {\n    var stepEl = document.createElement('li');\n    addClass(stepEl, swalClasses['progress-step']);\n    setInnerHtml(stepEl, step);\n    return stepEl;\n  };\n\n  var createLineElement = function createLineElement(params) {\n    var lineEl = document.createElement('li');\n    addClass(lineEl, swalClasses['progress-step-line']);\n\n    if (params.progressStepsDistance) {\n      lineEl.style.width = params.progressStepsDistance;\n    }\n\n    return lineEl;\n  };\n\n  var renderProgressSteps = function renderProgressSteps(instance, params) {\n    var progressStepsContainer = getProgressSteps();\n\n    if (!params.progressSteps || params.progressSteps.length === 0) {\n      return hide(progressStepsContainer);\n    }\n\n    show(progressStepsContainer);\n    progressStepsContainer.textContent = '';\n    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);\n\n    if (currentProgressStep >= params.progressSteps.length) {\n      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n    }\n\n    params.progressSteps.forEach(function (step, index) {\n      var stepEl = createStepElement(step);\n      progressStepsContainer.appendChild(stepEl);\n\n      if (index === currentProgressStep) {\n        addClass(stepEl, swalClasses['active-progress-step']);\n      }\n\n      if (index !== params.progressSteps.length - 1) {\n        var lineEl = createLineElement(params);\n        progressStepsContainer.appendChild(lineEl);\n      }\n    });\n  };\n\n  var renderTitle = function renderTitle(instance, params) {\n    var title = getTitle();\n    toggle(title, params.title || params.titleText);\n\n    if (params.title) {\n      parseHtmlToContainer(params.title, title);\n    }\n\n    if (params.titleText) {\n      title.innerText = params.titleText;\n    } // Custom class\n\n\n    applyCustomClass(title, params, 'title');\n  };\n\n  var renderHeader = function renderHeader(instance, params) {\n    var header = getHeader(); // Custom class\n\n    applyCustomClass(header, params, 'header'); // Progress steps\n\n    renderProgressSteps(instance, params); // Icon\n\n    renderIcon(instance, params); // Image\n\n    renderImage(instance, params); // Title\n\n    renderTitle(instance, params); // Close button\n\n    renderCloseButton(instance, params);\n  };\n\n  var renderPopup = function renderPopup(instance, params) {\n    var container = getContainer();\n    var popup = getPopup(); // Width\n\n    if (params.toast) {\n      // #2170\n      applyNumericalStyle(container, 'width', params.width);\n      popup.style.width = '100%';\n    } else {\n      applyNumericalStyle(popup, 'width', params.width);\n    } // Padding\n\n\n    applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n    if (params.background) {\n      popup.style.background = params.background;\n    }\n\n    hide(getValidationMessage()); // Classes\n\n    addClasses(popup, params);\n  };\n\n  var addClasses = function addClasses(popup, params) {\n    // Default Class + showClass when updating Swal.update({})\n    popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n    if (params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n      addClass(popup, swalClasses.toast);\n    } else {\n      addClass(popup, swalClasses.modal);\n    } // Custom class\n\n\n    applyCustomClass(popup, params, 'popup');\n\n    if (typeof params.customClass === 'string') {\n      addClass(popup, params.customClass);\n    } // Icon class (#1842)\n\n\n    if (params.icon) {\n      addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n    }\n  };\n\n  var render = function render(instance, params) {\n    renderPopup(instance, params);\n    renderContainer(instance, params);\n    renderHeader(instance, params);\n    renderContent(instance, params);\n    renderActions(instance, params);\n    renderFooter(instance, params);\n\n    if (typeof params.didRender === 'function') {\n      params.didRender(getPopup());\n    } else if (typeof params.onRender === 'function') {\n      params.onRender(getPopup()); // @deprecated\n    }\n  };\n\n  /*\n   * Global function to determine if SweetAlert2 popup is shown\n   */\n\n  var isVisible$1 = function isVisible$$1() {\n    return isVisible(getPopup());\n  };\n  /*\n   * Global function to click 'Confirm' button\n   */\n\n  var clickConfirm = function clickConfirm() {\n    return getConfirmButton() && getConfirmButton().click();\n  };\n  /*\n   * Global function to click 'Deny' button\n   */\n\n  var clickDeny = function clickDeny() {\n    return getDenyButton() && getDenyButton().click();\n  };\n  /*\n   * Global function to click 'Cancel' button\n   */\n\n  var clickCancel = function clickCancel() {\n    return getCancelButton() && getCancelButton().click();\n  };\n\n  function fire() {\n    var Swal = this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _construct(Swal, args);\n  }\n\n  /**\n   * Returns an extended version of `Swal` containing `params` as defaults.\n   * Useful for reusing Swal configuration.\n   *\n   * For example:\n   *\n   * Before:\n   * const textPromptOptions = { input: 'text', showCancelButton: true }\n   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n   *\n   * After:\n   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n   * const {value: firstName} = await TextPrompt('What is your first name?')\n   * const {value: lastName} = await TextPrompt('What is your last name?')\n   *\n   * @param mixinParams\n   */\n  function mixin(mixinParams) {\n    var MixinSwal = /*#__PURE__*/function (_this) {\n      _inherits(MixinSwal, _this);\n\n      var _super = _createSuper(MixinSwal);\n\n      function MixinSwal() {\n        _classCallCheck(this, MixinSwal);\n\n        return _super.apply(this, arguments);\n      }\n\n      _createClass(MixinSwal, [{\n        key: \"_main\",\n        value: function _main(params, priorityMixinParams) {\n          return _get(_getPrototypeOf(MixinSwal.prototype), \"_main\", this).call(this, params, _extends({}, mixinParams, priorityMixinParams));\n        }\n      }]);\n\n      return MixinSwal;\n    }(this);\n\n    return MixinSwal;\n  }\n\n  /**\n   * Shows loader (spinner), this is useful with AJAX requests.\n   * By default the loader be shown instead of the \"Confirm\" button.\n   */\n\n  var showLoading = function showLoading(buttonToReplace) {\n    var popup = getPopup();\n\n    if (!popup) {\n      Swal.fire();\n    }\n\n    popup = getPopup();\n    var actions = getActions();\n    var loader = getLoader();\n\n    if (!buttonToReplace && isVisible(getConfirmButton())) {\n      buttonToReplace = getConfirmButton();\n    }\n\n    show(actions);\n\n    if (buttonToReplace) {\n      hide(buttonToReplace);\n      loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n    }\n\n    loader.parentNode.insertBefore(loader, buttonToReplace);\n    addClass([popup, actions], swalClasses.loading);\n    show(loader);\n    popup.setAttribute('data-loading', true);\n    popup.setAttribute('aria-busy', true);\n    popup.focus();\n  };\n\n  var RESTORE_FOCUS_TIMEOUT = 100;\n\n  var globalState = {};\n\n  var focusPreviousActiveElement = function focusPreviousActiveElement() {\n    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n      globalState.previousActiveElement.focus();\n      globalState.previousActiveElement = null;\n    } else if (document.body) {\n      document.body.focus();\n    }\n  }; // Restore previous active (focused) element\n\n\n  var restoreActiveElement = function restoreActiveElement() {\n    return new Promise(function (resolve) {\n      var x = window.scrollX;\n      var y = window.scrollY;\n      globalState.restoreFocusTimeout = setTimeout(function () {\n        focusPreviousActiveElement();\n        resolve();\n      }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n      /* istanbul ignore if */\n\n      if (typeof x !== 'undefined' && typeof y !== 'undefined') {\n        // IE doesn't have scrollX/scrollY support\n        window.scrollTo(x, y);\n      }\n    });\n  };\n\n  /**\n   * If `timer` parameter is set, returns number of milliseconds of timer remained.\n   * Otherwise, returns undefined.\n   */\n\n  var getTimerLeft = function getTimerLeft() {\n    return globalState.timeout && globalState.timeout.getTimerLeft();\n  };\n  /**\n   * Stop timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var stopTimer = function stopTimer() {\n    if (globalState.timeout) {\n      stopTimerProgressBar();\n      return globalState.timeout.stop();\n    }\n  };\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var resumeTimer = function resumeTimer() {\n    if (globalState.timeout) {\n      var remaining = globalState.timeout.start();\n      animateTimerProgressBar(remaining);\n      return remaining;\n    }\n  };\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var toggleTimer = function toggleTimer() {\n    var timer = globalState.timeout;\n    return timer && (timer.running ? stopTimer() : resumeTimer());\n  };\n  /**\n   * Increase timer. Returns number of milliseconds of an updated timer.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var increaseTimer = function increaseTimer(n) {\n    if (globalState.timeout) {\n      var remaining = globalState.timeout.increase(n);\n      animateTimerProgressBar(remaining, true);\n      return remaining;\n    }\n  };\n  /**\n   * Check if timer is running. Returns true if timer is running\n   * or false if timer is paused or stopped.\n   * If `timer` parameter isn't set, returns undefined\n   */\n\n  var isTimerRunning = function isTimerRunning() {\n    return globalState.timeout && globalState.timeout.isRunning();\n  };\n\n  var bodyClickListenerAdded = false;\n  var clickHandlers = {};\n  function bindClickHandler() {\n    var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n    clickHandlers[attr] = this;\n\n    if (!bodyClickListenerAdded) {\n      document.body.addEventListener('click', bodyClickListener);\n      bodyClickListenerAdded = true;\n    }\n  }\n\n  var bodyClickListener = function bodyClickListener(event) {\n    // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638\n    // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354\n    for (var el = event.target; el && el !== document; el = el.parentNode) {\n      for (var attr in clickHandlers) {\n        var template = el.getAttribute(attr);\n\n        if (template) {\n          clickHandlers[attr].fire({\n            template: template\n          });\n          return;\n        }\n      }\n    }\n  };\n\n  var defaultParams = {\n    title: '',\n    titleText: '',\n    text: '',\n    html: '',\n    footer: '',\n    icon: undefined,\n    iconColor: undefined,\n    iconHtml: undefined,\n    template: undefined,\n    toast: false,\n    animation: true,\n    showClass: {\n      popup: 'swal2-show',\n      backdrop: 'swal2-backdrop-show',\n      icon: 'swal2-icon-show'\n    },\n    hideClass: {\n      popup: 'swal2-hide',\n      backdrop: 'swal2-backdrop-hide',\n      icon: 'swal2-icon-hide'\n    },\n    customClass: {},\n    target: 'body',\n    backdrop: true,\n    heightAuto: true,\n    allowOutsideClick: true,\n    allowEscapeKey: true,\n    allowEnterKey: true,\n    stopKeydownPropagation: true,\n    keydownListenerCapture: false,\n    showConfirmButton: true,\n    showDenyButton: false,\n    showCancelButton: false,\n    preConfirm: undefined,\n    preDeny: undefined,\n    confirmButtonText: 'OK',\n    confirmButtonAriaLabel: '',\n    confirmButtonColor: undefined,\n    denyButtonText: 'No',\n    denyButtonAriaLabel: '',\n    denyButtonColor: undefined,\n    cancelButtonText: 'Cancel',\n    cancelButtonAriaLabel: '',\n    cancelButtonColor: undefined,\n    buttonsStyling: true,\n    reverseButtons: false,\n    focusConfirm: true,\n    focusDeny: false,\n    focusCancel: false,\n    showCloseButton: false,\n    closeButtonHtml: '&times;',\n    closeButtonAriaLabel: 'Close this dialog',\n    loaderHtml: '',\n    showLoaderOnConfirm: false,\n    showLoaderOnDeny: false,\n    imageUrl: undefined,\n    imageWidth: undefined,\n    imageHeight: undefined,\n    imageAlt: '',\n    timer: undefined,\n    timerProgressBar: false,\n    width: undefined,\n    padding: undefined,\n    background: undefined,\n    input: undefined,\n    inputPlaceholder: '',\n    inputLabel: '',\n    inputValue: '',\n    inputOptions: {},\n    inputAutoTrim: true,\n    inputAttributes: {},\n    inputValidator: undefined,\n    returnInputValueOnDeny: false,\n    validationMessage: undefined,\n    grow: false,\n    position: 'center',\n    progressSteps: [],\n    currentProgressStep: undefined,\n    progressStepsDistance: undefined,\n    onBeforeOpen: undefined,\n    onOpen: undefined,\n    willOpen: undefined,\n    didOpen: undefined,\n    onRender: undefined,\n    didRender: undefined,\n    onClose: undefined,\n    onAfterClose: undefined,\n    willClose: undefined,\n    didClose: undefined,\n    onDestroy: undefined,\n    didDestroy: undefined,\n    scrollbarPadding: true\n  };\n  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n  var deprecatedParams = {\n    animation: 'showClass\" and \"hideClass',\n    onBeforeOpen: 'willOpen',\n    onOpen: 'didOpen',\n    onRender: 'didRender',\n    onClose: 'willClose',\n    onAfterClose: 'didClose',\n    onDestroy: 'didDestroy'\n  };\n  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];\n  /**\n   * Is valid parameter\n   * @param {String} paramName\n   */\n\n  var isValidParameter = function isValidParameter(paramName) {\n    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n  };\n  /**\n   * Is valid parameter for Swal.update() method\n   * @param {String} paramName\n   */\n\n  var isUpdatableParameter = function isUpdatableParameter(paramName) {\n    return updatableParams.indexOf(paramName) !== -1;\n  };\n  /**\n   * Is deprecated parameter\n   * @param {String} paramName\n   */\n\n  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n    return deprecatedParams[paramName];\n  };\n\n  var checkIfParamIsValid = function checkIfParamIsValid(param) {\n    if (!isValidParameter(param)) {\n      warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n    }\n  };\n\n  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n    if (toastIncompatibleParams.indexOf(param) !== -1) {\n      warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n    }\n  };\n\n  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n    if (isDeprecatedParameter(param)) {\n      warnAboutDeprecation(param, isDeprecatedParameter(param));\n    }\n  };\n  /**\n   * Show relevant warnings for given params\n   *\n   * @param params\n   */\n\n\n  var showWarningsForParams = function showWarningsForParams(params) {\n    for (var param in params) {\n      checkIfParamIsValid(param);\n\n      if (params.toast) {\n        checkIfToastParamIsValid(param);\n      }\n\n      checkIfParamIsDeprecated(param);\n    }\n  };\n\n\n\n  var staticMethods = /*#__PURE__*/Object.freeze({\n    isValidParameter: isValidParameter,\n    isUpdatableParameter: isUpdatableParameter,\n    isDeprecatedParameter: isDeprecatedParameter,\n    argsToParams: argsToParams,\n    isVisible: isVisible$1,\n    clickConfirm: clickConfirm,\n    clickDeny: clickDeny,\n    clickCancel: clickCancel,\n    getContainer: getContainer,\n    getPopup: getPopup,\n    getTitle: getTitle,\n    getContent: getContent,\n    getHtmlContainer: getHtmlContainer,\n    getImage: getImage,\n    getIcon: getIcon,\n    getInputLabel: getInputLabel,\n    getCloseButton: getCloseButton,\n    getActions: getActions,\n    getConfirmButton: getConfirmButton,\n    getDenyButton: getDenyButton,\n    getCancelButton: getCancelButton,\n    getLoader: getLoader,\n    getHeader: getHeader,\n    getFooter: getFooter,\n    getTimerProgressBar: getTimerProgressBar,\n    getFocusableElements: getFocusableElements,\n    getValidationMessage: getValidationMessage,\n    isLoading: isLoading,\n    fire: fire,\n    mixin: mixin,\n    queue: queue,\n    getQueueStep: getQueueStep,\n    insertQueueStep: insertQueueStep,\n    deleteQueueStep: deleteQueueStep,\n    showLoading: showLoading,\n    enableLoading: showLoading,\n    getTimerLeft: getTimerLeft,\n    stopTimer: stopTimer,\n    resumeTimer: resumeTimer,\n    toggleTimer: toggleTimer,\n    increaseTimer: increaseTimer,\n    isTimerRunning: isTimerRunning,\n    bindClickHandler: bindClickHandler\n  });\n\n  /**\n   * Hides loader and shows back the button which was hidden by .showLoading()\n   */\n\n  function hideLoading() {\n    // do nothing if popup is closed\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams) {\n      return;\n    }\n\n    var domCache = privateProps.domCache.get(this);\n    hide(domCache.loader);\n    var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n    if (buttonToReplace.length) {\n      show(buttonToReplace[0], 'inline-block');\n    } else if (allButtonsAreHidden()) {\n      hide(domCache.actions);\n    }\n\n    removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n    domCache.popup.removeAttribute('aria-busy');\n    domCache.popup.removeAttribute('data-loading');\n    domCache.confirmButton.disabled = false;\n    domCache.denyButton.disabled = false;\n    domCache.cancelButton.disabled = false;\n  }\n\n  function getInput$1(instance) {\n    var innerParams = privateProps.innerParams.get(instance || this);\n    var domCache = privateProps.domCache.get(instance || this);\n\n    if (!domCache) {\n      return null;\n    }\n\n    return getInput(domCache.content, innerParams.input);\n  }\n\n  var fixScrollbar = function fixScrollbar() {\n    // for queues, do not do this more than once\n    if (states.previousBodyPadding !== null) {\n      return;\n    } // if the body has overflow\n\n\n    if (document.body.scrollHeight > window.innerHeight) {\n      // add padding so the content doesn't shift after removal of scrollbar\n      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n      document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n    }\n  };\n  var undoScrollbar = function undoScrollbar() {\n    if (states.previousBodyPadding !== null) {\n      document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n      states.previousBodyPadding = null;\n    }\n  };\n\n  /* istanbul ignore file */\n\n  var iOSfix = function iOSfix() {\n    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n      var offset = document.body.scrollTop;\n      document.body.style.top = \"\".concat(offset * -1, \"px\");\n      addClass(document.body, swalClasses.iosfix);\n      lockBodyScroll();\n      addBottomPaddingForTallPopups(); // #1948\n    }\n  };\n\n  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {\n    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);\n\n    if (safari) {\n      var bottomPanelHeight = 44;\n\n      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n        getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n      }\n    }\n  };\n\n  var lockBodyScroll = function lockBodyScroll() {\n    // #1246\n    var container = getContainer();\n    var preventTouchMove;\n\n    container.ontouchstart = function (e) {\n      preventTouchMove = shouldPreventTouchMove(e);\n    };\n\n    container.ontouchmove = function (e) {\n      if (preventTouchMove) {\n        e.preventDefault();\n        e.stopPropagation();\n      }\n    };\n  };\n\n  var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n    var target = event.target;\n    var container = getContainer();\n\n    if (isStylys(event) || isZoom(event)) {\n      return false;\n    }\n\n    if (target === container) {\n      return true;\n    }\n\n    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n    !(isScrollable(getContent()) && // #1944\n    getContent().contains(target))) {\n      return true;\n    }\n\n    return false;\n  };\n\n  var isStylys = function isStylys(event) {\n    // #1786\n    return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n  };\n\n  var isZoom = function isZoom(event) {\n    // #1891\n    return event.touches && event.touches.length > 1;\n  };\n\n  var undoIOSfix = function undoIOSfix() {\n    if (hasClass(document.body, swalClasses.iosfix)) {\n      var offset = parseInt(document.body.style.top, 10);\n      removeClass(document.body, swalClasses.iosfix);\n      document.body.style.top = '';\n      document.body.scrollTop = offset * -1;\n    }\n  };\n\n  /* istanbul ignore file */\n\n  var isIE11 = function isIE11() {\n    return !!window.MSInputMethodContext && !!document.documentMode;\n  }; // Fix IE11 centering sweetalert2/issues/933\n\n\n  var fixVerticalPositionIE = function fixVerticalPositionIE() {\n    var container = getContainer();\n    var popup = getPopup();\n    container.style.removeProperty('align-items');\n\n    if (popup.offsetTop < 0) {\n      container.style.alignItems = 'flex-start';\n    }\n  };\n\n  var IEfix = function IEfix() {\n    if (typeof window !== 'undefined' && isIE11()) {\n      fixVerticalPositionIE();\n      window.addEventListener('resize', fixVerticalPositionIE);\n    }\n  };\n  var undoIEfix = function undoIEfix() {\n    if (typeof window !== 'undefined' && isIE11()) {\n      window.removeEventListener('resize', fixVerticalPositionIE);\n    }\n  };\n\n  // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n  // elements not within the active modal dialog will not be surfaced if a user opens a screen\n  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n  var setAriaHidden = function setAriaHidden() {\n    var bodyChildren = toArray(document.body.children);\n    bodyChildren.forEach(function (el) {\n      if (el === getContainer() || contains(el, getContainer())) {\n        return;\n      }\n\n      if (el.hasAttribute('aria-hidden')) {\n        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n      }\n\n      el.setAttribute('aria-hidden', 'true');\n    });\n  };\n  var unsetAriaHidden = function unsetAriaHidden() {\n    var bodyChildren = toArray(document.body.children);\n    bodyChildren.forEach(function (el) {\n      if (el.hasAttribute('data-previous-aria-hidden')) {\n        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n        el.removeAttribute('data-previous-aria-hidden');\n      } else {\n        el.removeAttribute('aria-hidden');\n      }\n    });\n  };\n\n  /**\n   * This module containts `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n  var privateMethods = {\n    swalPromiseResolve: new WeakMap()\n  };\n\n  /*\n   * Instance method to close sweetAlert\n   */\n\n  function removePopupAndResetState(instance, container, isToast$$1, didClose) {\n    if (isToast$$1) {\n      triggerDidCloseAndDispose(instance, didClose);\n    } else {\n      restoreActiveElement().then(function () {\n        return triggerDidCloseAndDispose(instance, didClose);\n      });\n      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = false;\n    }\n\n    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {\n      container.parentNode.removeChild(container);\n    }\n\n    if (isModal()) {\n      undoScrollbar();\n      undoIOSfix();\n      undoIEfix();\n      unsetAriaHidden();\n    }\n\n    removeBodyClasses();\n  }\n\n  function removeBodyClasses() {\n    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);\n  }\n\n  function close(resolveValue) {\n    var popup = getPopup();\n\n    if (!popup) {\n      return;\n    }\n\n    resolveValue = prepareResolveValue(resolveValue);\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n      return;\n    }\n\n    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n    removeClass(popup, innerParams.showClass.popup);\n    addClass(popup, innerParams.hideClass.popup);\n    var backdrop = getContainer();\n    removeClass(backdrop, innerParams.showClass.backdrop);\n    addClass(backdrop, innerParams.hideClass.backdrop);\n    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise\n\n    swalPromiseResolve(resolveValue);\n  }\n\n  var prepareResolveValue = function prepareResolveValue(resolveValue) {\n    // When user calls Swal.close()\n    if (typeof resolveValue === 'undefined') {\n      return {\n        isConfirmed: false,\n        isDenied: false,\n        isDismissed: true\n      };\n    }\n\n    return _extends({\n      isConfirmed: false,\n      isDenied: false,\n      isDismissed: false\n    }, resolveValue);\n  };\n\n  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n    var container = getContainer(); // If animation is supported, animate\n\n    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n    var onClose = innerParams.onClose,\n        onAfterClose = innerParams.onAfterClose,\n        willClose = innerParams.willClose,\n        didClose = innerParams.didClose;\n    runDidClose(popup, willClose, onClose);\n\n    if (animationIsSupported) {\n      animatePopup(instance, popup, container, didClose || onAfterClose);\n    } else {\n      // Otherwise, remove immediately\n      removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);\n    }\n  };\n\n  var runDidClose = function runDidClose(popup, willClose, onClose) {\n    if (willClose !== null && typeof willClose === 'function') {\n      willClose(popup);\n    } else if (onClose !== null && typeof onClose === 'function') {\n      onClose(popup); // @deprecated\n    }\n  };\n\n  var animatePopup = function animatePopup(instance, popup, container, didClose) {\n    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);\n    popup.addEventListener(animationEndEvent, function (e) {\n      if (e.target === popup) {\n        globalState.swalCloseEventFinishedCallback();\n        delete globalState.swalCloseEventFinishedCallback;\n      }\n    });\n  };\n\n  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n    setTimeout(function () {\n      if (typeof didClose === 'function') {\n        didClose();\n      }\n\n      instance._destroy();\n    });\n  };\n\n  function setButtonsDisabled(instance, buttons, disabled) {\n    var domCache = privateProps.domCache.get(instance);\n    buttons.forEach(function (button) {\n      domCache[button].disabled = disabled;\n    });\n  }\n\n  function setInputDisabled(input, disabled) {\n    if (!input) {\n      return false;\n    }\n\n    if (input.type === 'radio') {\n      var radiosContainer = input.parentNode.parentNode;\n      var radios = radiosContainer.querySelectorAll('input');\n\n      for (var i = 0; i < radios.length; i++) {\n        radios[i].disabled = disabled;\n      }\n    } else {\n      input.disabled = disabled;\n    }\n  }\n\n  function enableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n  }\n  function disableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n  }\n  function enableInput() {\n    return setInputDisabled(this.getInput(), false);\n  }\n  function disableInput() {\n    return setInputDisabled(this.getInput(), true);\n  }\n\n  function showValidationMessage(error) {\n    var domCache = privateProps.domCache.get(this);\n    var params = privateProps.innerParams.get(this);\n    setInnerHtml(domCache.validationMessage, error);\n    domCache.validationMessage.className = swalClasses['validation-message'];\n\n    if (params.customClass && params.customClass.validationMessage) {\n      addClass(domCache.validationMessage, params.customClass.validationMessage);\n    }\n\n    show(domCache.validationMessage);\n    var input = this.getInput();\n\n    if (input) {\n      input.setAttribute('aria-invalid', true);\n      input.setAttribute('aria-describedBy', swalClasses['validation-message']);\n      focusInput(input);\n      addClass(input, swalClasses.inputerror);\n    }\n  } // Hide block with validation message\n\n  function resetValidationMessage$1() {\n    var domCache = privateProps.domCache.get(this);\n\n    if (domCache.validationMessage) {\n      hide(domCache.validationMessage);\n    }\n\n    var input = this.getInput();\n\n    if (input) {\n      input.removeAttribute('aria-invalid');\n      input.removeAttribute('aria-describedBy');\n      removeClass(input, swalClasses.inputerror);\n    }\n  }\n\n  function getProgressSteps$1() {\n    var domCache = privateProps.domCache.get(this);\n    return domCache.progressSteps;\n  }\n\n  var Timer = /*#__PURE__*/function () {\n    function Timer(callback, delay) {\n      _classCallCheck(this, Timer);\n\n      this.callback = callback;\n      this.remaining = delay;\n      this.running = false;\n      this.start();\n    }\n\n    _createClass(Timer, [{\n      key: \"start\",\n      value: function start() {\n        if (!this.running) {\n          this.running = true;\n          this.started = new Date();\n          this.id = setTimeout(this.callback, this.remaining);\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"stop\",\n      value: function stop() {\n        if (this.running) {\n          this.running = false;\n          clearTimeout(this.id);\n          this.remaining -= new Date() - this.started;\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"increase\",\n      value: function increase(n) {\n        var running = this.running;\n\n        if (running) {\n          this.stop();\n        }\n\n        this.remaining += n;\n\n        if (running) {\n          this.start();\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"getTimerLeft\",\n      value: function getTimerLeft() {\n        if (this.running) {\n          this.stop();\n          this.start();\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"isRunning\",\n      value: function isRunning() {\n        return this.running;\n      }\n    }]);\n\n    return Timer;\n  }();\n\n  var defaultInputValidators = {\n    email: function email(string, validationMessage) {\n      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n    },\n    url: function url(string, validationMessage) {\n      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n      return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n    }\n  };\n\n  function setDefaultInputValidators(params) {\n    // Use default `inputValidator` for supported input types if not provided\n    if (!params.inputValidator) {\n      Object.keys(defaultInputValidators).forEach(function (key) {\n        if (params.input === key) {\n          params.inputValidator = defaultInputValidators[key];\n        }\n      });\n    }\n  }\n\n  function validateCustomTargetElement(params) {\n    // Determine if the custom target element is valid\n    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n      warn('Target parameter is not valid, defaulting to \"body\"');\n      params.target = 'body';\n    }\n  }\n  /**\n   * Set type, text and actions on popup\n   *\n   * @param params\n   * @returns {boolean}\n   */\n\n\n  function setParameters(params) {\n    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n    if (params.showLoaderOnConfirm && !params.preConfirm) {\n      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n    } // params.animation will be actually used in renderPopup.js\n    // but in case when params.animation is a function, we need to call that function\n    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()\n    // inside the params.animation function\n\n\n    params.animation = callIfFunction(params.animation);\n    validateCustomTargetElement(params); // Replace newlines with <br> in title\n\n    if (typeof params.title === 'string') {\n      params.title = params.title.split('\\n').join('<br />');\n    }\n\n    init(params);\n  }\n\n  var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n  var getTemplateParams = function getTemplateParams(params) {\n    var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n    if (!template) {\n      return {};\n    }\n\n    var templateContent = template.content || template; // IE11\n\n    showWarningsForElements(templateContent);\n\n    var result = _extends(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n\n    return result;\n  };\n\n  var getSwalParams = function getSwalParams(templateContent) {\n    var result = {};\n    toArray(templateContent.querySelectorAll('swal-param')).forEach(function (param) {\n      showWarningsForAttributes(param, ['name', 'value']);\n      var paramName = param.getAttribute('name');\n      var value = param.getAttribute('value');\n\n      if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n        value = false;\n      }\n\n      if (_typeof(defaultParams[paramName]) === 'object') {\n        value = JSON.parse(value);\n      }\n\n      result[paramName] = value;\n    });\n    return result;\n  };\n\n  var getSwalButtons = function getSwalButtons(templateContent) {\n    var result = {};\n    toArray(templateContent.querySelectorAll('swal-button')).forEach(function (button) {\n      showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n      var type = button.getAttribute('type');\n      result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n      result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n      if (button.hasAttribute('color')) {\n        result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n      }\n\n      if (button.hasAttribute('aria-label')) {\n        result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n      }\n    });\n    return result;\n  };\n\n  var getSwalImage = function getSwalImage(templateContent) {\n    var result = {};\n    var image = templateContent.querySelector('swal-image');\n\n    if (image) {\n      showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n      if (image.hasAttribute('src')) {\n        result.imageUrl = image.getAttribute('src');\n      }\n\n      if (image.hasAttribute('width')) {\n        result.imageWidth = image.getAttribute('width');\n      }\n\n      if (image.hasAttribute('height')) {\n        result.imageHeight = image.getAttribute('height');\n      }\n\n      if (image.hasAttribute('alt')) {\n        result.imageAlt = image.getAttribute('alt');\n      }\n    }\n\n    return result;\n  };\n\n  var getSwalIcon = function getSwalIcon(templateContent) {\n    var result = {};\n    var icon = templateContent.querySelector('swal-icon');\n\n    if (icon) {\n      showWarningsForAttributes(icon, ['type', 'color']);\n\n      if (icon.hasAttribute('type')) {\n        result.icon = icon.getAttribute('type');\n      }\n\n      if (icon.hasAttribute('color')) {\n        result.iconColor = icon.getAttribute('color');\n      }\n\n      result.iconHtml = icon.innerHTML;\n    }\n\n    return result;\n  };\n\n  var getSwalInput = function getSwalInput(templateContent) {\n    var result = {};\n    var input = templateContent.querySelector('swal-input');\n\n    if (input) {\n      showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n      result.input = input.getAttribute('type') || 'text';\n\n      if (input.hasAttribute('label')) {\n        result.inputLabel = input.getAttribute('label');\n      }\n\n      if (input.hasAttribute('placeholder')) {\n        result.inputPlaceholder = input.getAttribute('placeholder');\n      }\n\n      if (input.hasAttribute('value')) {\n        result.inputValue = input.getAttribute('value');\n      }\n    }\n\n    var inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n    if (inputOptions.length) {\n      result.inputOptions = {};\n      toArray(inputOptions).forEach(function (option) {\n        showWarningsForAttributes(option, ['value']);\n        var optionValue = option.getAttribute('value');\n        var optionName = option.innerHTML;\n        result.inputOptions[optionValue] = optionName;\n      });\n    }\n\n    return result;\n  };\n\n  var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n    var result = {};\n\n    for (var i in paramNames) {\n      var paramName = paramNames[i];\n      var tag = templateContent.querySelector(paramName);\n\n      if (tag) {\n        showWarningsForAttributes(tag, []);\n        result[paramName.replace(/^swal-/, '')] = tag.innerHTML;\n      }\n    }\n\n    return result;\n  };\n\n  var showWarningsForElements = function showWarningsForElements(template) {\n    var allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n    toArray(template.querySelectorAll('*')).forEach(function (el) {\n      if (el.parentNode !== template) {\n        // can't use template.children because of IE11\n        return;\n      }\n\n      var tagName = el.tagName.toLowerCase();\n\n      if (allowedElements.indexOf(tagName) === -1) {\n        warn(\"Unrecognized element <\".concat(tagName, \">\"));\n      }\n    });\n  };\n\n  var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n    toArray(el.attributes).forEach(function (attribute) {\n      if (allowedAttributes.indexOf(attribute.name) === -1) {\n        warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n      }\n    });\n  };\n\n  var SHOW_CLASS_TIMEOUT = 10;\n  /**\n   * Open popup, add necessary classes and styles, fix scrollbar\n   *\n   * @param params\n   */\n\n  var openPopup = function openPopup(params) {\n    var container = getContainer();\n    var popup = getPopup();\n\n    if (typeof params.willOpen === 'function') {\n      params.willOpen(popup);\n    } else if (typeof params.onBeforeOpen === 'function') {\n      params.onBeforeOpen(popup); // @deprecated\n    }\n\n    var bodyStyles = window.getComputedStyle(document.body);\n    var initialBodyOverflow = bodyStyles.overflowY;\n    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n    setTimeout(function () {\n      setScrollingVisibility(container, popup);\n    }, SHOW_CLASS_TIMEOUT);\n\n    if (isModal()) {\n      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n      setAriaHidden();\n    }\n\n    if (!isToast() && !globalState.previousActiveElement) {\n      globalState.previousActiveElement = document.activeElement;\n    }\n\n    runDidOpen(popup, params);\n    removeClass(container, swalClasses['no-transition']);\n  };\n\n  var runDidOpen = function runDidOpen(popup, params) {\n    if (typeof params.didOpen === 'function') {\n      setTimeout(function () {\n        return params.didOpen(popup);\n      });\n    } else if (typeof params.onOpen === 'function') {\n      setTimeout(function () {\n        return params.onOpen(popup);\n      }); // @deprecated\n    }\n  };\n\n  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n    var popup = getPopup();\n\n    if (event.target !== popup) {\n      return;\n    }\n\n    var container = getContainer();\n    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n    container.style.overflowY = 'auto';\n  };\n\n  var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n    if (animationEndEvent && hasCssAnimation(popup)) {\n      container.style.overflowY = 'hidden';\n      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n    } else {\n      container.style.overflowY = 'auto';\n    }\n  };\n\n  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n    iOSfix();\n    IEfix();\n\n    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n      fixScrollbar();\n    } // sweetalert2/issues/1247\n\n\n    setTimeout(function () {\n      container.scrollTop = 0;\n    });\n  };\n\n  var addClasses$1 = function addClasses(container, popup, params) {\n    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059\n\n    popup.style.setProperty('opacity', '0', 'important');\n    show(popup);\n    setTimeout(function () {\n      // Animate popup right after showing it\n      addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n      popup.style.removeProperty('opacity');\n    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n    addClass([document.documentElement, document.body], swalClasses.shown);\n\n    if (params.heightAuto && params.backdrop && !params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['height-auto']);\n    }\n  };\n\n  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n    if (params.input === 'select' || params.input === 'radio') {\n      handleInputOptions(instance, params);\n    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n      handleInputValue(instance, params);\n    }\n  };\n  var getInputValue = function getInputValue(instance, innerParams) {\n    var input = instance.getInput();\n\n    if (!input) {\n      return null;\n    }\n\n    switch (innerParams.input) {\n      case 'checkbox':\n        return getCheckboxValue(input);\n\n      case 'radio':\n        return getRadioValue(input);\n\n      case 'file':\n        return getFileValue(input);\n\n      default:\n        return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n    }\n  };\n\n  var getCheckboxValue = function getCheckboxValue(input) {\n    return input.checked ? 1 : 0;\n  };\n\n  var getRadioValue = function getRadioValue(input) {\n    return input.checked ? input.value : null;\n  };\n\n  var getFileValue = function getFileValue(input) {\n    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n  };\n\n  var handleInputOptions = function handleInputOptions(instance, params) {\n    var content = getContent();\n\n    var processInputOptions = function processInputOptions(inputOptions) {\n      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);\n    };\n\n    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n      showLoading(getConfirmButton());\n      asPromise(params.inputOptions).then(function (inputOptions) {\n        instance.hideLoading();\n        processInputOptions(inputOptions);\n      });\n    } else if (_typeof(params.inputOptions) === 'object') {\n      processInputOptions(params.inputOptions);\n    } else {\n      error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n    }\n  };\n\n  var handleInputValue = function handleInputValue(instance, params) {\n    var input = instance.getInput();\n    hide(input);\n    asPromise(params.inputValue).then(function (inputValue) {\n      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    })[\"catch\"](function (err) {\n      error(\"Error in inputValue promise: \".concat(err));\n      input.value = '';\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    });\n  };\n\n  var populateInputOptions = {\n    select: function select(content, inputOptions, params) {\n      var select = getChildByClass(content, swalClasses.select);\n\n      var renderOption = function renderOption(parent, optionLabel, optionValue) {\n        var option = document.createElement('option');\n        option.value = optionValue;\n        setInnerHtml(option, optionLabel);\n        option.selected = isSelected(optionValue, params.inputValue);\n        parent.appendChild(option);\n      };\n\n      inputOptions.forEach(function (inputOption) {\n        var optionValue = inputOption[0];\n        var optionLabel = inputOption[1]; // <optgroup> spec:\n        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n        // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n        // check whether this is a <optgroup>\n\n        if (Array.isArray(optionLabel)) {\n          // if it is an array, then it is an <optgroup>\n          var optgroup = document.createElement('optgroup');\n          optgroup.label = optionValue;\n          optgroup.disabled = false; // not configurable for now\n\n          select.appendChild(optgroup);\n          optionLabel.forEach(function (o) {\n            return renderOption(optgroup, o[1], o[0]);\n          });\n        } else {\n          // case of <option>\n          renderOption(select, optionLabel, optionValue);\n        }\n      });\n      select.focus();\n    },\n    radio: function radio(content, inputOptions, params) {\n      var radio = getChildByClass(content, swalClasses.radio);\n      inputOptions.forEach(function (inputOption) {\n        var radioValue = inputOption[0];\n        var radioLabel = inputOption[1];\n        var radioInput = document.createElement('input');\n        var radioLabelElement = document.createElement('label');\n        radioInput.type = 'radio';\n        radioInput.name = swalClasses.radio;\n        radioInput.value = radioValue;\n\n        if (isSelected(radioValue, params.inputValue)) {\n          radioInput.checked = true;\n        }\n\n        var label = document.createElement('span');\n        setInnerHtml(label, radioLabel);\n        label.className = swalClasses.label;\n        radioLabelElement.appendChild(radioInput);\n        radioLabelElement.appendChild(label);\n        radio.appendChild(radioLabelElement);\n      });\n      var radios = radio.querySelectorAll('input');\n\n      if (radios.length) {\n        radios[0].focus();\n      }\n    }\n  };\n  /**\n   * Converts `inputOptions` into an array of `[value, label]`s\n   * @param inputOptions\n   */\n\n  var formatInputOptions = function formatInputOptions(inputOptions) {\n    var result = [];\n\n    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {\n      inputOptions.forEach(function (value, key) {\n        var valueFormatted = value;\n\n        if (_typeof(valueFormatted) === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n\n        result.push([key, valueFormatted]);\n      });\n    } else {\n      Object.keys(inputOptions).forEach(function (key) {\n        var valueFormatted = inputOptions[key];\n\n        if (_typeof(valueFormatted) === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n\n        result.push([key, valueFormatted]);\n      });\n    }\n\n    return result;\n  };\n\n  var isSelected = function isSelected(optionValue, inputValue) {\n    return inputValue && inputValue.toString() === optionValue.toString();\n  };\n\n  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {\n    instance.disableButtons();\n\n    if (innerParams.input) {\n      handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');\n    } else {\n      confirm(instance, innerParams, true);\n    }\n  };\n  var handleDenyButtonClick = function handleDenyButtonClick(instance, innerParams) {\n    instance.disableButtons();\n\n    if (innerParams.returnInputValueOnDeny) {\n      handleConfirmOrDenyWithInput(instance, innerParams, 'deny');\n    } else {\n      deny(instance, innerParams, false);\n    }\n  };\n  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n    instance.disableButtons();\n    dismissWith(DismissReason.cancel);\n  };\n\n  var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, innerParams, type\n  /* type is either 'confirm' or 'deny' */\n  ) {\n    var inputValue = getInputValue(instance, innerParams);\n\n    if (innerParams.inputValidator) {\n      handleInputValidator(instance, innerParams, inputValue);\n    } else if (!instance.getInput().checkValidity()) {\n      instance.enableButtons();\n      instance.showValidationMessage(innerParams.validationMessage);\n    } else if (type === 'deny') {\n      deny(instance, innerParams, inputValue);\n    } else {\n      confirm(instance, innerParams, inputValue);\n    }\n  };\n\n  var handleInputValidator = function handleInputValidator(instance, innerParams, inputValue) {\n    instance.disableInput();\n    var validationPromise = Promise.resolve().then(function () {\n      return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n    });\n    validationPromise.then(function (validationMessage) {\n      instance.enableButtons();\n      instance.enableInput();\n\n      if (validationMessage) {\n        instance.showValidationMessage(validationMessage);\n      } else {\n        confirm(instance, innerParams, inputValue);\n      }\n    });\n  };\n\n  var deny = function deny(instance, innerParams, value) {\n    if (innerParams.showLoaderOnDeny) {\n      showLoading(getDenyButton());\n    }\n\n    if (innerParams.preDeny) {\n      var preDenyPromise = Promise.resolve().then(function () {\n        return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n      });\n      preDenyPromise.then(function (preDenyValue) {\n        if (preDenyValue === false) {\n          instance.hideLoading();\n        } else {\n          instance.closePopup({\n            isDenied: true,\n            value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n          });\n        }\n      });\n    } else {\n      instance.closePopup({\n        isDenied: true,\n        value: value\n      });\n    }\n  };\n\n  var succeedWith = function succeedWith(instance, value) {\n    instance.closePopup({\n      isConfirmed: true,\n      value: value\n    });\n  };\n\n  var confirm = function confirm(instance, innerParams, value) {\n    if (innerParams.showLoaderOnConfirm) {\n      showLoading(); // TODO: make showLoading an *instance* method\n    }\n\n    if (innerParams.preConfirm) {\n      instance.resetValidationMessage();\n      var preConfirmPromise = Promise.resolve().then(function () {\n        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n      });\n      preConfirmPromise.then(function (preConfirmValue) {\n        if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n          instance.hideLoading();\n        } else {\n          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n        }\n      });\n    } else {\n      succeedWith(instance, value);\n    }\n  };\n\n  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {\n    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = false;\n    }\n\n    if (!innerParams.toast) {\n      globalState.keydownHandler = function (e) {\n        return keydownHandler(instance, e, dismissWith);\n      };\n\n      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = true;\n    }\n  }; // Focus handling\n\n  var setFocus = function setFocus(innerParams, index, increment) {\n    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n    if (focusableElements.length) {\n      index = index + increment; // rollover to first item\n\n      if (index === focusableElements.length) {\n        index = 0; // go to last item\n      } else if (index === -1) {\n        index = focusableElements.length - 1;\n      }\n\n      return focusableElements[index].focus();\n    } // no visible focusable elements, focus the popup\n\n\n    getPopup().focus();\n  };\n  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11\n  ];\n  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11\n  ];\n  var escKeys = ['Escape', 'Esc' // IE11\n  ];\n\n  var keydownHandler = function keydownHandler(instance, e, dismissWith) {\n    var innerParams = privateProps.innerParams.get(instance);\n\n    if (innerParams.stopKeydownPropagation) {\n      e.stopPropagation();\n    } // ENTER\n\n\n    if (e.key === 'Enter') {\n      handleEnter(instance, e, innerParams); // TAB\n    } else if (e.key === 'Tab') {\n      handleTab(e, innerParams); // ARROWS - switch focus between buttons\n    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {\n      handleArrows(e.key); // ESC\n    } else if (escKeys.indexOf(e.key) !== -1) {\n      handleEsc(e, innerParams, dismissWith);\n    }\n  };\n\n  var handleEnter = function handleEnter(instance, e, innerParams) {\n    // #720 #721\n    if (e.isComposing) {\n      return;\n    }\n\n    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {\n        return; // do not submit\n      }\n\n      clickConfirm();\n      e.preventDefault();\n    }\n  };\n\n  var handleTab = function handleTab(e, innerParams) {\n    var targetElement = e.target;\n    var focusableElements = getFocusableElements();\n    var btnIndex = -1;\n\n    for (var i = 0; i < focusableElements.length; i++) {\n      if (targetElement === focusableElements[i]) {\n        btnIndex = i;\n        break;\n      }\n    }\n\n    if (!e.shiftKey) {\n      // Cycle to the next button\n      setFocus(innerParams, btnIndex, 1);\n    } else {\n      // Cycle to the prev button\n      setFocus(innerParams, btnIndex, -1);\n    }\n\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  var handleArrows = function handleArrows(key) {\n    var confirmButton = getConfirmButton();\n    var denyButton = getDenyButton();\n    var cancelButton = getCancelButton();\n\n    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {\n      return;\n    }\n\n    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';\n    var buttonToFocus = document.activeElement[sibling];\n\n    if (buttonToFocus) {\n      buttonToFocus.focus();\n    }\n  };\n\n  var handleEsc = function handleEsc(e, innerParams, dismissWith) {\n    if (callIfFunction(innerParams.allowEscapeKey)) {\n      e.preventDefault();\n      dismissWith(DismissReason.esc);\n    }\n  };\n\n  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {\n    var innerParams = privateProps.innerParams.get(instance);\n\n    if (innerParams.toast) {\n      handleToastClick(instance, domCache, dismissWith);\n    } else {\n      // Ignore click events that had mousedown on the popup but mouseup on the container\n      // This can happen when the user drags a slider\n      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n      handleContainerMousedown(domCache);\n      handleModalClick(instance, domCache, dismissWith);\n    }\n  };\n\n  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {\n    // Closing toast by internal click\n    domCache.popup.onclick = function () {\n      var innerParams = privateProps.innerParams.get(instance);\n\n      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {\n        return;\n      }\n\n      dismissWith(DismissReason.close);\n    };\n  };\n\n  var ignoreOutsideClick = false;\n\n  var handleModalMousedown = function handleModalMousedown(domCache) {\n    domCache.popup.onmousedown = function () {\n      domCache.container.onmouseup = function (e) {\n        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n        // have any other direct children aside of the popup\n\n        if (e.target === domCache.container) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  var handleContainerMousedown = function handleContainerMousedown(domCache) {\n    domCache.container.onmousedown = function () {\n      domCache.popup.onmouseup = function (e) {\n        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {\n    domCache.container.onclick = function (e) {\n      var innerParams = privateProps.innerParams.get(instance);\n\n      if (ignoreOutsideClick) {\n        ignoreOutsideClick = false;\n        return;\n      }\n\n      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n        dismissWith(DismissReason.backdrop);\n      }\n    };\n  };\n\n  function _main(userParams) {\n    var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    showWarningsForParams(_extends({}, mixinParams, userParams));\n\n    if (globalState.currentInstance) {\n      globalState.currentInstance._destroy();\n    }\n\n    globalState.currentInstance = this;\n    var innerParams = prepareParams(userParams, mixinParams);\n    setParameters(innerParams);\n    Object.freeze(innerParams); // clear the previous timer\n\n    if (globalState.timeout) {\n      globalState.timeout.stop();\n      delete globalState.timeout;\n    } // clear the restore focus timeout\n\n\n    clearTimeout(globalState.restoreFocusTimeout);\n    var domCache = populateDomCache(this);\n    render(this, innerParams);\n    privateProps.innerParams.set(this, innerParams);\n    return swalPromise(this, domCache, innerParams);\n  }\n\n  var prepareParams = function prepareParams(userParams, mixinParams) {\n    var templateParams = getTemplateParams(userParams);\n\n    var showClass = _extends({}, defaultParams.showClass, mixinParams.showClass, templateParams.showClass, userParams.showClass);\n\n    var hideClass = _extends({}, defaultParams.hideClass, mixinParams.hideClass, templateParams.hideClass, userParams.hideClass);\n\n    var params = _extends({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n\n    params.showClass = showClass;\n    params.hideClass = hideClass; // @deprecated\n\n    if (userParams.animation === false) {\n      params.showClass = {\n        popup: 'swal2-noanimation',\n        backdrop: 'swal2-noanimation'\n      };\n      params.hideClass = {};\n    }\n\n    return params;\n  };\n\n  var swalPromise = function swalPromise(instance, domCache, innerParams) {\n    return new Promise(function (resolve) {\n      // functions to handle all closings/dismissals\n      var dismissWith = function dismissWith(dismiss) {\n        instance.closePopup({\n          isDismissed: true,\n          dismiss: dismiss\n        });\n      };\n\n      privateMethods.swalPromiseResolve.set(instance, resolve);\n\n      domCache.confirmButton.onclick = function () {\n        return handleConfirmButtonClick(instance, innerParams);\n      };\n\n      domCache.denyButton.onclick = function () {\n        return handleDenyButtonClick(instance, innerParams);\n      };\n\n      domCache.cancelButton.onclick = function () {\n        return handleCancelButtonClick(instance, dismissWith);\n      };\n\n      domCache.closeButton.onclick = function () {\n        return dismissWith(DismissReason.close);\n      };\n\n      handlePopupClick(instance, domCache, dismissWith);\n      addKeydownHandler(instance, globalState, innerParams, dismissWith);\n\n      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {\n        addClass(document.body, swalClasses['toast-column']);\n      } else {\n        removeClass(document.body, swalClasses['toast-column']);\n      }\n\n      handleInputOptionsAndValue(instance, innerParams);\n      openPopup(innerParams);\n      setupTimer(globalState, innerParams, dismissWith);\n      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n      setTimeout(function () {\n        domCache.container.scrollTop = 0;\n      });\n    });\n  };\n\n  var populateDomCache = function populateDomCache(instance) {\n    var domCache = {\n      popup: getPopup(),\n      container: getContainer(),\n      content: getContent(),\n      actions: getActions(),\n      confirmButton: getConfirmButton(),\n      denyButton: getDenyButton(),\n      cancelButton: getCancelButton(),\n      loader: getLoader(),\n      closeButton: getCloseButton(),\n      validationMessage: getValidationMessage(),\n      progressSteps: getProgressSteps()\n    };\n    privateProps.domCache.set(instance, domCache);\n    return domCache;\n  };\n\n  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {\n    var timerProgressBar = getTimerProgressBar();\n    hide(timerProgressBar);\n\n    if (innerParams.timer) {\n      globalState$$1.timeout = new Timer(function () {\n        dismissWith('timer');\n        delete globalState$$1.timeout;\n      }, innerParams.timer);\n\n      if (innerParams.timerProgressBar) {\n        show(timerProgressBar);\n        setTimeout(function () {\n          if (globalState$$1.timeout && globalState$$1.timeout.running) {\n            // timer can be already stopped or unset at this point\n            animateTimerProgressBar(innerParams.timer);\n          }\n        });\n      }\n    }\n  };\n\n  var initFocus = function initFocus(domCache, innerParams) {\n    if (innerParams.toast) {\n      return;\n    }\n\n    if (!callIfFunction(innerParams.allowEnterKey)) {\n      return blurActiveElement();\n    }\n\n    if (!focusButton(domCache, innerParams)) {\n      setFocus(innerParams, -1, 1);\n    }\n  };\n\n  var focusButton = function focusButton(domCache, innerParams) {\n    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n      domCache.denyButton.focus();\n      return true;\n    }\n\n    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n      domCache.cancelButton.focus();\n      return true;\n    }\n\n    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n      domCache.confirmButton.focus();\n      return true;\n    }\n\n    return false;\n  };\n\n  var blurActiveElement = function blurActiveElement() {\n    if (document.activeElement && typeof document.activeElement.blur === 'function') {\n      document.activeElement.blur();\n    }\n  };\n\n  /**\n   * Updates popup parameters.\n   */\n\n  function update(params) {\n    var popup = getPopup();\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n      return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n    }\n\n    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`\n\n    Object.keys(params).forEach(function (param) {\n      if (Swal.isUpdatableParameter(param)) {\n        validUpdatableParams[param] = params[param];\n      } else {\n        warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md\"));\n      }\n    });\n\n    var updatedParams = _extends({}, innerParams, validUpdatableParams);\n\n    render(this, updatedParams);\n    privateProps.innerParams.set(this, updatedParams);\n    Object.defineProperties(this, {\n      params: {\n        value: _extends({}, this.params, params),\n        writable: false,\n        enumerable: true\n      }\n    });\n  }\n\n  function _destroy() {\n    var domCache = privateProps.domCache.get(this);\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams) {\n      return; // This instance has already been destroyed\n    } // Check if there is another Swal closing\n\n\n    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n      globalState.swalCloseEventFinishedCallback();\n      delete globalState.swalCloseEventFinishedCallback;\n    } // Check if there is a swal disposal defer timer\n\n\n    if (globalState.deferDisposalTimer) {\n      clearTimeout(globalState.deferDisposalTimer);\n      delete globalState.deferDisposalTimer;\n    }\n\n    runDidDestroy(innerParams);\n    disposeSwal(this);\n  }\n\n  var runDidDestroy = function runDidDestroy(innerParams) {\n    if (typeof innerParams.didDestroy === 'function') {\n      innerParams.didDestroy();\n    } else if (typeof innerParams.onDestroy === 'function') {\n      innerParams.onDestroy(); // @deprecated\n    }\n  };\n\n  var disposeSwal = function disposeSwal(instance) {\n    // Unset this.params so GC will dispose it (#1569)\n    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n    delete globalState.keydownHandler;\n    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n    unsetWeakMaps(privateProps);\n    unsetWeakMaps(privateMethods);\n  };\n\n  var unsetWeakMaps = function unsetWeakMaps(obj) {\n    for (var i in obj) {\n      obj[i] = new WeakMap();\n    }\n  };\n\n\n\n  var instanceMethods = /*#__PURE__*/Object.freeze({\n    hideLoading: hideLoading,\n    disableLoading: hideLoading,\n    getInput: getInput$1,\n    close: close,\n    closePopup: close,\n    closeModal: close,\n    closeToast: close,\n    enableButtons: enableButtons,\n    disableButtons: disableButtons,\n    enableInput: enableInput,\n    disableInput: disableInput,\n    showValidationMessage: showValidationMessage,\n    resetValidationMessage: resetValidationMessage$1,\n    getProgressSteps: getProgressSteps$1,\n    _main: _main,\n    update: update,\n    _destroy: _destroy\n  });\n\n  var currentInstance;\n\n  var SweetAlert = /*#__PURE__*/function () {\n    function SweetAlert() {\n      _classCallCheck(this, SweetAlert);\n\n      // Prevent run in Node env\n      if (typeof window === 'undefined') {\n        return;\n      } // Check for the existence of Promise\n\n\n      if (typeof Promise === 'undefined') {\n        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');\n      }\n\n      currentInstance = this;\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var outerParams = Object.freeze(this.constructor.argsToParams(args));\n      Object.defineProperties(this, {\n        params: {\n          value: outerParams,\n          writable: false,\n          enumerable: true,\n          configurable: true\n        }\n      });\n\n      var promise = this._main(this.params);\n\n      privateProps.promise.set(this, promise);\n    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n    _createClass(SweetAlert, [{\n      key: \"then\",\n      value: function then(onFulfilled) {\n        var promise = privateProps.promise.get(this);\n        return promise.then(onFulfilled);\n      }\n    }, {\n      key: \"finally\",\n      value: function _finally(onFinally) {\n        var promise = privateProps.promise.get(this);\n        return promise[\"finally\"](onFinally);\n      }\n    }]);\n\n    return SweetAlert;\n  }(); // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n\n  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n\n  Object.keys(instanceMethods).forEach(function (key) {\n    SweetAlert[key] = function () {\n      if (currentInstance) {\n        var _currentInstance;\n\n        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n      }\n    };\n  });\n  SweetAlert.DismissReason = DismissReason;\n  SweetAlert.version = '10.15.6';\n\n  var Swal = SweetAlert;\n  Swal[\"default\"] = Swal;\n\n  return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}\");"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sweetalert2/sweetalert2.css",
    "content": ".swal2-popup.swal2-toast {\n  flex-direction: row;\n  align-items: center;\n  width: auto;\n  padding: 0.625em;\n  overflow-y: hidden;\n  background: #fff;\n  box-shadow: 0 0 0.625em #d9d9d9;\n}\n.swal2-popup.swal2-toast .swal2-header {\n  flex-direction: row;\n  padding: 0;\n}\n.swal2-popup.swal2-toast .swal2-title {\n  flex-grow: 1;\n  justify-content: flex-start;\n  margin: 0 0.6em;\n  font-size: 1em;\n}\n.swal2-popup.swal2-toast .swal2-footer {\n  margin: 0.5em 0 0;\n  padding: 0.5em 0 0;\n  font-size: 0.8em;\n}\n.swal2-popup.swal2-toast .swal2-close {\n  position: static;\n  width: 0.8em;\n  height: 0.8em;\n  line-height: 0.8;\n}\n.swal2-popup.swal2-toast .swal2-content {\n  justify-content: flex-start;\n  padding: 0;\n  font-size: 1em;\n}\n.swal2-popup.swal2-toast .swal2-icon {\n  width: 2em;\n  min-width: 2em;\n  height: 2em;\n  margin: 0;\n}\n.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n  display: flex;\n  align-items: center;\n  font-size: 1.8em;\n  font-weight: bold;\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n    font-size: 0.25em;\n  }\n}\n.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n  width: 2em;\n  height: 2em;\n}\n.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] {\n  top: 0.875em;\n  width: 1.375em;\n}\n.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {\n  left: 0.3125em;\n}\n.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {\n  right: 0.3125em;\n}\n.swal2-popup.swal2-toast .swal2-actions {\n  flex-basis: auto !important;\n  width: auto;\n  height: auto;\n  margin: 0 0.3125em;\n  padding: 0;\n}\n.swal2-popup.swal2-toast .swal2-styled {\n  margin: 0.125em 0.3125em;\n  padding: 0.3125em 0.625em;\n  font-size: 1em;\n}\n.swal2-popup.swal2-toast .swal2-styled:focus {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5);\n}\n.swal2-popup.swal2-toast .swal2-success {\n  border-color: #a5dc86;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] {\n  position: absolute;\n  width: 1.6em;\n  height: 3em;\n  transform: rotate(45deg);\n  border-radius: 50%;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] {\n  top: -0.8em;\n  left: -0.5em;\n  transform: rotate(-45deg);\n  transform-origin: 2em 2em;\n  border-radius: 4em 0 0 4em;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] {\n  top: -0.25em;\n  left: 0.9375em;\n  transform-origin: 0 1.5em;\n  border-radius: 0 4em 4em 0;\n}\n.swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n  width: 2em;\n  height: 2em;\n}\n.swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n  top: 0;\n  left: 0.4375em;\n  width: 0.4375em;\n  height: 2.6875em;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] {\n  height: 0.3125em;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] {\n  top: 1.125em;\n  left: 0.1875em;\n  width: 0.75em;\n}\n.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] {\n  top: 0.9375em;\n  right: 0.1875em;\n  width: 1.375em;\n}\n.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {\n  -webkit-animation: swal2-toast-animate-success-line-tip 0.75s;\n          animation: swal2-toast-animate-success-line-tip 0.75s;\n}\n.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {\n  -webkit-animation: swal2-toast-animate-success-line-long 0.75s;\n          animation: swal2-toast-animate-success-line-long 0.75s;\n}\n.swal2-popup.swal2-toast.swal2-show {\n  -webkit-animation: swal2-toast-show 0.5s;\n          animation: swal2-toast-show 0.5s;\n}\n.swal2-popup.swal2-toast.swal2-hide {\n  -webkit-animation: swal2-toast-hide 0.1s forwards;\n          animation: swal2-toast-hide 0.1s forwards;\n}\n\n.swal2-container {\n  display: flex;\n  position: fixed;\n  z-index: 1060;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  padding: 0.625em;\n  overflow-x: hidden;\n  transition: background-color 0.1s;\n  -webkit-overflow-scrolling: touch;\n}\n.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {\n  background: rgba(0, 0, 0, 0.4);\n}\n.swal2-container.swal2-backdrop-hide {\n  background: transparent !important;\n}\n.swal2-container.swal2-top {\n  align-items: flex-start;\n}\n.swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n  align-items: flex-start;\n  justify-content: flex-start;\n}\n.swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n  align-items: flex-start;\n  justify-content: flex-end;\n}\n.swal2-container.swal2-center {\n  align-items: center;\n}\n.swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n  align-items: center;\n  justify-content: flex-start;\n}\n.swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n  align-items: center;\n  justify-content: flex-end;\n}\n.swal2-container.swal2-bottom {\n  align-items: flex-end;\n}\n.swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n  align-items: flex-end;\n  justify-content: flex-start;\n}\n.swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n  align-items: flex-end;\n  justify-content: flex-end;\n}\n.swal2-container.swal2-bottom > :first-child, .swal2-container.swal2-bottom-start > :first-child, .swal2-container.swal2-bottom-left > :first-child, .swal2-container.swal2-bottom-end > :first-child, .swal2-container.swal2-bottom-right > :first-child {\n  margin-top: auto;\n}\n.swal2-container.swal2-grow-fullscreen > .swal2-modal {\n  display: flex !important;\n  flex: 1;\n  align-self: stretch;\n  justify-content: center;\n}\n.swal2-container.swal2-grow-row > .swal2-modal {\n  display: flex !important;\n  flex: 1;\n  align-content: center;\n  justify-content: center;\n}\n.swal2-container.swal2-grow-column {\n  flex: 1;\n  flex-direction: column;\n}\n.swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n  align-items: center;\n}\n.swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n  align-items: flex-start;\n}\n.swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n  align-items: flex-end;\n}\n.swal2-container.swal2-grow-column > .swal2-modal {\n  display: flex !important;\n  flex: 1;\n  align-content: center;\n  justify-content: center;\n}\n.swal2-container.swal2-no-transition {\n  transition: none !important;\n}\n.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {\n  margin: auto;\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-container .swal2-modal {\n    margin: 0 !important;\n  }\n}\n\n.swal2-popup {\n  display: none;\n  position: relative;\n  box-sizing: border-box;\n  flex-direction: column;\n  justify-content: center;\n  width: 32em;\n  max-width: 100%;\n  padding: 1.25em;\n  border: none;\n  border-radius: 5px;\n  background: #fff;\n  font-family: inherit;\n  font-size: 1rem;\n}\n.swal2-popup:focus {\n  outline: none;\n}\n.swal2-popup.swal2-loading {\n  overflow-y: hidden;\n}\n\n.swal2-header {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: 0 1.8em;\n}\n\n.swal2-title {\n  position: relative;\n  max-width: 100%;\n  margin: 0 0 0.4em;\n  padding: 0;\n  color: #595959;\n  font-size: 1.875em;\n  font-weight: 600;\n  text-align: center;\n  text-transform: none;\n  word-wrap: break-word;\n}\n\n.swal2-actions {\n  display: flex;\n  z-index: 1;\n  box-sizing: border-box;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  margin: 1.25em auto 0;\n  padding: 0 1.6em;\n}\n.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n  opacity: 0.4;\n}\n.swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n  background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1));\n}\n.swal2-actions:not(.swal2-loading) .swal2-styled:active {\n  background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));\n}\n\n.swal2-loader {\n  display: none;\n  align-items: center;\n  justify-content: center;\n  width: 2.2em;\n  height: 2.2em;\n  margin: 0 1.875em;\n  -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n          animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n  border-width: 0.25em;\n  border-style: solid;\n  border-radius: 100%;\n  border-color: #2778c4 transparent #2778c4 transparent;\n}\n\n.swal2-styled {\n  margin: 0.3125em;\n  padding: 0.625em 1.1em;\n  box-shadow: none;\n  font-weight: 500;\n}\n.swal2-styled:not([disabled]) {\n  cursor: pointer;\n}\n.swal2-styled.swal2-confirm {\n  border: 0;\n  border-radius: 0.25em;\n  background: initial;\n  background-color: #2778c4;\n  color: #fff;\n  font-size: 1.0625em;\n}\n.swal2-styled.swal2-deny {\n  border: 0;\n  border-radius: 0.25em;\n  background: initial;\n  background-color: #d14529;\n  color: #fff;\n  font-size: 1.0625em;\n}\n.swal2-styled.swal2-cancel {\n  border: 0;\n  border-radius: 0.25em;\n  background: initial;\n  background-color: #757575;\n  color: #fff;\n  font-size: 1.0625em;\n}\n.swal2-styled:focus {\n  outline: none;\n  box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5);\n}\n.swal2-styled::-moz-focus-inner {\n  border: 0;\n}\n\n.swal2-footer {\n  justify-content: center;\n  margin: 1.25em 0 0;\n  padding: 1em 0 0;\n  border-top: 1px solid #eee;\n  color: #545454;\n  font-size: 1em;\n}\n\n.swal2-timer-progress-bar-container {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  height: 0.25em;\n  overflow: hidden;\n  border-bottom-right-radius: 5px;\n  border-bottom-left-radius: 5px;\n}\n\n.swal2-timer-progress-bar {\n  width: 100%;\n  height: 0.25em;\n  background: rgba(0, 0, 0, 0.2);\n}\n\n.swal2-image {\n  max-width: 100%;\n  margin: 1.25em auto;\n}\n\n.swal2-close {\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  right: 0;\n  align-items: center;\n  justify-content: center;\n  width: 1.2em;\n  height: 1.2em;\n  padding: 0;\n  overflow: hidden;\n  transition: color 0.1s ease-out;\n  border: none;\n  border-radius: 5px;\n  background: transparent;\n  color: #cccccc;\n  font-family: serif;\n  font-size: 2.5em;\n  line-height: 1.2;\n  cursor: pointer;\n}\n.swal2-close:hover {\n  transform: none;\n  background: transparent;\n  color: #f27474;\n}\n.swal2-close:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5);\n}\n.swal2-close::-moz-focus-inner {\n  border: 0;\n}\n\n.swal2-content {\n  z-index: 1;\n  justify-content: center;\n  margin: 0;\n  padding: 0 1.6em;\n  color: #545454;\n  font-size: 1.125em;\n  font-weight: normal;\n  line-height: normal;\n  text-align: center;\n  word-wrap: break-word;\n}\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea,\n.swal2-select,\n.swal2-radio,\n.swal2-checkbox {\n  margin: 1em auto;\n}\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea {\n  box-sizing: border-box;\n  width: 100%;\n  transition: border-color 0.3s, box-shadow 0.3s;\n  border: 1px solid #d9d9d9;\n  border-radius: 0.1875em;\n  background: inherit;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n  color: inherit;\n  font-size: 1.125em;\n}\n.swal2-input.swal2-inputerror,\n.swal2-file.swal2-inputerror,\n.swal2-textarea.swal2-inputerror {\n  border-color: #f27474 !important;\n  box-shadow: 0 0 2px #f27474 !important;\n}\n.swal2-input:focus,\n.swal2-file:focus,\n.swal2-textarea:focus {\n  border: 1px solid #b4dbed;\n  outline: none;\n  box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5);\n}\n.swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder {\n  color: #cccccc;\n}\n.swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder {\n  color: #cccccc;\n}\n.swal2-input::placeholder,\n.swal2-file::placeholder,\n.swal2-textarea::placeholder {\n  color: #cccccc;\n}\n\n.swal2-range {\n  margin: 1em auto;\n  background: #fff;\n}\n.swal2-range input {\n  width: 80%;\n}\n.swal2-range output {\n  width: 20%;\n  color: inherit;\n  font-weight: 600;\n  text-align: center;\n}\n.swal2-range input,\n.swal2-range output {\n  height: 2.625em;\n  padding: 0;\n  font-size: 1.125em;\n  line-height: 2.625em;\n}\n\n.swal2-input {\n  height: 2.625em;\n  padding: 0 0.75em;\n}\n.swal2-input[type=number] {\n  max-width: 10em;\n}\n\n.swal2-file {\n  background: inherit;\n  font-size: 1.125em;\n}\n\n.swal2-textarea {\n  height: 6.75em;\n  padding: 0.75em;\n}\n\n.swal2-select {\n  min-width: 50%;\n  max-width: 100%;\n  padding: 0.375em 0.625em;\n  background: inherit;\n  color: inherit;\n  font-size: 1.125em;\n}\n\n.swal2-radio,\n.swal2-checkbox {\n  align-items: center;\n  justify-content: center;\n  background: #fff;\n  color: inherit;\n}\n.swal2-radio label,\n.swal2-checkbox label {\n  margin: 0 0.6em;\n  font-size: 1.125em;\n}\n.swal2-radio input,\n.swal2-checkbox input {\n  margin: 0 0.4em;\n}\n\n.swal2-input-label {\n  display: flex;\n  justify-content: center;\n  margin: 1em auto;\n}\n\n.swal2-validation-message {\n  align-items: center;\n  justify-content: center;\n  margin: 0 -2.7em;\n  padding: 0.625em;\n  overflow: hidden;\n  background: #f0f0f0;\n  color: #666666;\n  font-size: 1em;\n  font-weight: 300;\n}\n.swal2-validation-message::before {\n  content: \"!\";\n  display: inline-block;\n  width: 1.5em;\n  min-width: 1.5em;\n  height: 1.5em;\n  margin: 0 0.625em;\n  border-radius: 50%;\n  background-color: #f27474;\n  color: #fff;\n  font-weight: 600;\n  line-height: 1.5em;\n  text-align: center;\n}\n\n.swal2-icon {\n  position: relative;\n  box-sizing: content-box;\n  justify-content: center;\n  width: 5em;\n  height: 5em;\n  margin: 1.25em auto 1.875em;\n  border: 0.25em solid transparent;\n  border-radius: 50%;\n  border-color: #000;\n  font-family: inherit;\n  line-height: 5em;\n  cursor: default;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n}\n.swal2-icon .swal2-icon-content {\n  display: flex;\n  align-items: center;\n  font-size: 3.75em;\n}\n.swal2-icon.swal2-error {\n  border-color: #f27474;\n  color: #f27474;\n}\n.swal2-icon.swal2-error .swal2-x-mark {\n  position: relative;\n  flex-grow: 1;\n}\n.swal2-icon.swal2-error [class^=swal2-x-mark-line] {\n  display: block;\n  position: absolute;\n  top: 2.3125em;\n  width: 2.9375em;\n  height: 0.3125em;\n  border-radius: 0.125em;\n  background-color: #f27474;\n}\n.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {\n  left: 1.0625em;\n  transform: rotate(45deg);\n}\n.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {\n  right: 1em;\n  transform: rotate(-45deg);\n}\n.swal2-icon.swal2-error.swal2-icon-show {\n  -webkit-animation: swal2-animate-error-icon 0.5s;\n          animation: swal2-animate-error-icon 0.5s;\n}\n.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {\n  -webkit-animation: swal2-animate-error-x-mark 0.5s;\n          animation: swal2-animate-error-x-mark 0.5s;\n}\n.swal2-icon.swal2-warning {\n  border-color: #facea8;\n  color: #f8bb86;\n}\n.swal2-icon.swal2-info {\n  border-color: #9de0f6;\n  color: #3fc3ee;\n}\n.swal2-icon.swal2-question {\n  border-color: #c9dae1;\n  color: #87adbd;\n}\n.swal2-icon.swal2-success {\n  border-color: #a5dc86;\n  color: #a5dc86;\n}\n.swal2-icon.swal2-success [class^=swal2-success-circular-line] {\n  position: absolute;\n  width: 3.75em;\n  height: 7.5em;\n  transform: rotate(45deg);\n  border-radius: 50%;\n}\n.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {\n  top: -0.4375em;\n  left: -2.0635em;\n  transform: rotate(-45deg);\n  transform-origin: 3.75em 3.75em;\n  border-radius: 7.5em 0 0 7.5em;\n}\n.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {\n  top: -0.6875em;\n  left: 1.875em;\n  transform: rotate(-45deg);\n  transform-origin: 0 3.75em;\n  border-radius: 0 7.5em 7.5em 0;\n}\n.swal2-icon.swal2-success .swal2-success-ring {\n  position: absolute;\n  z-index: 2;\n  top: -0.25em;\n  left: -0.25em;\n  box-sizing: content-box;\n  width: 100%;\n  height: 100%;\n  border: 0.25em solid rgba(165, 220, 134, 0.3);\n  border-radius: 50%;\n}\n.swal2-icon.swal2-success .swal2-success-fix {\n  position: absolute;\n  z-index: 1;\n  top: 0.5em;\n  left: 1.625em;\n  width: 0.4375em;\n  height: 5.625em;\n  transform: rotate(-45deg);\n}\n.swal2-icon.swal2-success [class^=swal2-success-line] {\n  display: block;\n  position: absolute;\n  z-index: 2;\n  height: 0.3125em;\n  border-radius: 0.125em;\n  background-color: #a5dc86;\n}\n.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {\n  top: 2.875em;\n  left: 0.8125em;\n  width: 1.5625em;\n  transform: rotate(45deg);\n}\n.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {\n  top: 2.375em;\n  right: 0.5em;\n  width: 2.9375em;\n  transform: rotate(-45deg);\n}\n.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {\n  -webkit-animation: swal2-animate-success-line-tip 0.75s;\n          animation: swal2-animate-success-line-tip 0.75s;\n}\n.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {\n  -webkit-animation: swal2-animate-success-line-long 0.75s;\n          animation: swal2-animate-success-line-long 0.75s;\n}\n.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {\n  -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;\n          animation: swal2-rotate-success-circular-line 4.25s ease-in;\n}\n\n.swal2-progress-steps {\n  flex-wrap: wrap;\n  align-items: center;\n  max-width: 100%;\n  margin: 0 0 1.25em;\n  padding: 0;\n  background: inherit;\n  font-weight: 600;\n}\n.swal2-progress-steps li {\n  display: inline-block;\n  position: relative;\n}\n.swal2-progress-steps .swal2-progress-step {\n  z-index: 20;\n  flex-shrink: 0;\n  width: 2em;\n  height: 2em;\n  border-radius: 2em;\n  background: #2778c4;\n  color: #fff;\n  line-height: 2em;\n  text-align: center;\n}\n.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {\n  background: #2778c4;\n}\n.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {\n  background: #add8e6;\n  color: #fff;\n}\n.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {\n  background: #add8e6;\n}\n.swal2-progress-steps .swal2-progress-step-line {\n  z-index: 10;\n  flex-shrink: 0;\n  width: 2.5em;\n  height: 0.4em;\n  margin: 0 -1px;\n  background: #2778c4;\n}\n\n[class^=swal2] {\n  -webkit-tap-highlight-color: transparent;\n}\n\n.swal2-show {\n  -webkit-animation: swal2-show 0.3s;\n          animation: swal2-show 0.3s;\n}\n\n.swal2-hide {\n  -webkit-animation: swal2-hide 0.15s forwards;\n          animation: swal2-hide 0.15s forwards;\n}\n\n.swal2-noanimation {\n  transition: none;\n}\n\n.swal2-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n.swal2-rtl .swal2-close {\n  right: auto;\n  left: 0;\n}\n.swal2-rtl .swal2-timer-progress-bar {\n  right: 0;\n  left: auto;\n}\n\n@supports (-ms-accelerator: true) {\n  .swal2-range input {\n    width: 100% !important;\n  }\n  .swal2-range output {\n    display: none;\n  }\n}\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-range input {\n    width: 100% !important;\n  }\n  .swal2-range output {\n    display: none;\n  }\n}\n@-webkit-keyframes swal2-toast-show {\n  0% {\n    transform: translateY(-0.625em) rotateZ(2deg);\n  }\n  33% {\n    transform: translateY(0) rotateZ(-2deg);\n  }\n  66% {\n    transform: translateY(0.3125em) rotateZ(2deg);\n  }\n  100% {\n    transform: translateY(0) rotateZ(0deg);\n  }\n}\n@keyframes swal2-toast-show {\n  0% {\n    transform: translateY(-0.625em) rotateZ(2deg);\n  }\n  33% {\n    transform: translateY(0) rotateZ(-2deg);\n  }\n  66% {\n    transform: translateY(0.3125em) rotateZ(2deg);\n  }\n  100% {\n    transform: translateY(0) rotateZ(0deg);\n  }\n}\n@-webkit-keyframes swal2-toast-hide {\n  100% {\n    transform: rotateZ(1deg);\n    opacity: 0;\n  }\n}\n@keyframes swal2-toast-hide {\n  100% {\n    transform: rotateZ(1deg);\n    opacity: 0;\n  }\n}\n@-webkit-keyframes swal2-toast-animate-success-line-tip {\n  0% {\n    top: 0.5625em;\n    left: 0.0625em;\n    width: 0;\n  }\n  54% {\n    top: 0.125em;\n    left: 0.125em;\n    width: 0;\n  }\n  70% {\n    top: 0.625em;\n    left: -0.25em;\n    width: 1.625em;\n  }\n  84% {\n    top: 1.0625em;\n    left: 0.75em;\n    width: 0.5em;\n  }\n  100% {\n    top: 1.125em;\n    left: 0.1875em;\n    width: 0.75em;\n  }\n}\n@keyframes swal2-toast-animate-success-line-tip {\n  0% {\n    top: 0.5625em;\n    left: 0.0625em;\n    width: 0;\n  }\n  54% {\n    top: 0.125em;\n    left: 0.125em;\n    width: 0;\n  }\n  70% {\n    top: 0.625em;\n    left: -0.25em;\n    width: 1.625em;\n  }\n  84% {\n    top: 1.0625em;\n    left: 0.75em;\n    width: 0.5em;\n  }\n  100% {\n    top: 1.125em;\n    left: 0.1875em;\n    width: 0.75em;\n  }\n}\n@-webkit-keyframes swal2-toast-animate-success-line-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0;\n  }\n  65% {\n    top: 1.25em;\n    right: 0.9375em;\n    width: 0;\n  }\n  84% {\n    top: 0.9375em;\n    right: 0;\n    width: 1.125em;\n  }\n  100% {\n    top: 0.9375em;\n    right: 0.1875em;\n    width: 1.375em;\n  }\n}\n@keyframes swal2-toast-animate-success-line-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0;\n  }\n  65% {\n    top: 1.25em;\n    right: 0.9375em;\n    width: 0;\n  }\n  84% {\n    top: 0.9375em;\n    right: 0;\n    width: 1.125em;\n  }\n  100% {\n    top: 0.9375em;\n    right: 0.1875em;\n    width: 1.375em;\n  }\n}\n@-webkit-keyframes swal2-show {\n  0% {\n    transform: scale(0.7);\n  }\n  45% {\n    transform: scale(1.05);\n  }\n  80% {\n    transform: scale(0.95);\n  }\n  100% {\n    transform: scale(1);\n  }\n}\n@keyframes swal2-show {\n  0% {\n    transform: scale(0.7);\n  }\n  45% {\n    transform: scale(1.05);\n  }\n  80% {\n    transform: scale(0.95);\n  }\n  100% {\n    transform: scale(1);\n  }\n}\n@-webkit-keyframes swal2-hide {\n  0% {\n    transform: scale(1);\n    opacity: 1;\n  }\n  100% {\n    transform: scale(0.5);\n    opacity: 0;\n  }\n}\n@keyframes swal2-hide {\n  0% {\n    transform: scale(1);\n    opacity: 1;\n  }\n  100% {\n    transform: scale(0.5);\n    opacity: 0;\n  }\n}\n@-webkit-keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: 0.0625em;\n    width: 0;\n  }\n  54% {\n    top: 1.0625em;\n    left: 0.125em;\n    width: 0;\n  }\n  70% {\n    top: 2.1875em;\n    left: -0.375em;\n    width: 3.125em;\n  }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em;\n  }\n  100% {\n    top: 2.8125em;\n    left: 0.8125em;\n    width: 1.5625em;\n  }\n}\n@keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: 0.0625em;\n    width: 0;\n  }\n  54% {\n    top: 1.0625em;\n    left: 0.125em;\n    width: 0;\n  }\n  70% {\n    top: 2.1875em;\n    left: -0.375em;\n    width: 3.125em;\n  }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em;\n  }\n  100% {\n    top: 2.8125em;\n    left: 0.8125em;\n    width: 1.5625em;\n  }\n}\n@-webkit-keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0;\n  }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0;\n  }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em;\n  }\n  100% {\n    top: 2.375em;\n    right: 0.5em;\n    width: 2.9375em;\n  }\n}\n@keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0;\n  }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0;\n  }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em;\n  }\n  100% {\n    top: 2.375em;\n    right: 0.5em;\n    width: 2.9375em;\n  }\n}\n@-webkit-keyframes swal2-rotate-success-circular-line {\n  0% {\n    transform: rotate(-45deg);\n  }\n  5% {\n    transform: rotate(-45deg);\n  }\n  12% {\n    transform: rotate(-405deg);\n  }\n  100% {\n    transform: rotate(-405deg);\n  }\n}\n@keyframes swal2-rotate-success-circular-line {\n  0% {\n    transform: rotate(-45deg);\n  }\n  5% {\n    transform: rotate(-45deg);\n  }\n  12% {\n    transform: rotate(-405deg);\n  }\n  100% {\n    transform: rotate(-405deg);\n  }\n}\n@-webkit-keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0;\n  }\n  50% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0;\n  }\n  80% {\n    margin-top: -0.375em;\n    transform: scale(1.15);\n  }\n  100% {\n    margin-top: 0;\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n@keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0;\n  }\n  50% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0;\n  }\n  80% {\n    margin-top: -0.375em;\n    transform: scale(1.15);\n  }\n  100% {\n    margin-top: 0;\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n@-webkit-keyframes swal2-animate-error-icon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0;\n  }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1;\n  }\n}\n@keyframes swal2-animate-error-icon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0;\n  }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1;\n  }\n}\n@-webkit-keyframes swal2-rotate-loading {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n@keyframes swal2-rotate-loading {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n  overflow: hidden;\n}\nbody.swal2-height-auto {\n  height: auto !important;\n}\nbody.swal2-no-backdrop .swal2-container {\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  max-width: calc(100% - 0.625em * 2);\n  background-color: transparent !important;\n}\nbody.swal2-no-backdrop .swal2-container > .swal2-modal {\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-top {\n  top: 0;\n  left: 50%;\n  transform: translateX(-50%);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left {\n  top: 0;\n  left: 0;\n}\nbody.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right {\n  top: 0;\n  right: 0;\n}\nbody.swal2-no-backdrop .swal2-container.swal2-center {\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left {\n  top: 50%;\n  left: 0;\n  transform: translateY(-50%);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right {\n  top: 50%;\n  right: 0;\n  transform: translateY(-50%);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-bottom {\n  bottom: 0;\n  left: 50%;\n  transform: translateX(-50%);\n}\nbody.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left {\n  bottom: 0;\n  left: 0;\n}\nbody.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right {\n  right: 0;\n  bottom: 0;\n}\n@media print {\n  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n    overflow-y: scroll !important;\n  }\n  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] {\n    display: none;\n  }\n  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {\n    position: static !important;\n  }\n}\nbody.swal2-toast-shown .swal2-container {\n  background-color: transparent;\n}\nbody.swal2-toast-shown .swal2-container.swal2-top {\n  top: 0;\n  right: auto;\n  bottom: auto;\n  left: 50%;\n  transform: translateX(-50%);\n}\nbody.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {\n  top: 0;\n  right: 0;\n  bottom: auto;\n  left: auto;\n}\nbody.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {\n  top: 0;\n  right: auto;\n  bottom: auto;\n  left: 0;\n}\nbody.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {\n  top: 50%;\n  right: auto;\n  bottom: auto;\n  left: 0;\n  transform: translateY(-50%);\n}\nbody.swal2-toast-shown .swal2-container.swal2-center {\n  top: 50%;\n  right: auto;\n  bottom: auto;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\nbody.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {\n  top: 50%;\n  right: 0;\n  bottom: auto;\n  left: auto;\n  transform: translateY(-50%);\n}\nbody.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {\n  top: auto;\n  right: auto;\n  bottom: 0;\n  left: 0;\n}\nbody.swal2-toast-shown .swal2-container.swal2-bottom {\n  top: auto;\n  right: auto;\n  bottom: 0;\n  left: 50%;\n  transform: translateX(-50%);\n}\nbody.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {\n  top: auto;\n  right: 0;\n  bottom: 0;\n  left: auto;\n}\nbody.swal2-toast-column .swal2-toast {\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.swal2-toast-column .swal2-toast .swal2-actions {\n  flex: 1;\n  align-self: stretch;\n  height: 2.2em;\n  margin-top: 0.3125em;\n}\nbody.swal2-toast-column .swal2-toast .swal2-loading {\n  justify-content: center;\n}\nbody.swal2-toast-column .swal2-toast .swal2-input {\n  height: 2em;\n  margin: 0.3125em auto;\n  font-size: 1em;\n}\nbody.swal2-toast-column .swal2-toast .swal2-validation-message {\n  font-size: 1em;\n}"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sweetalert2/sweetalert2.js",
    "content": "/*!\n* sweetalert2 v10.15.6\n* Released under the MIT License.\n*/\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function (obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inherits(subClass, superClass) {\n    if (typeof superClass !== \"function\" && superClass !== null) {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) _setPrototypeOf(subClass, superClass);\n  }\n\n  function _getPrototypeOf(o) {\n    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n      return o.__proto__ || Object.getPrototypeOf(o);\n    };\n    return _getPrototypeOf(o);\n  }\n\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n\n    return _setPrototypeOf(o, p);\n  }\n\n  function _isNativeReflectConstruct() {\n    if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n    if (Reflect.construct.sham) return false;\n    if (typeof Proxy === \"function\") return true;\n\n    try {\n      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function _construct(Parent, args, Class) {\n    if (_isNativeReflectConstruct()) {\n      _construct = Reflect.construct;\n    } else {\n      _construct = function _construct(Parent, args, Class) {\n        var a = [null];\n        a.push.apply(a, args);\n        var Constructor = Function.bind.apply(Parent, a);\n        var instance = new Constructor();\n        if (Class) _setPrototypeOf(instance, Class.prototype);\n        return instance;\n      };\n    }\n\n    return _construct.apply(null, arguments);\n  }\n\n  function _assertThisInitialized(self) {\n    if (self === void 0) {\n      throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n    }\n\n    return self;\n  }\n\n  function _possibleConstructorReturn(self, call) {\n    if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n      return call;\n    }\n\n    return _assertThisInitialized(self);\n  }\n\n  function _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n    return function _createSuperInternal() {\n      var Super = _getPrototypeOf(Derived),\n          result;\n\n      if (hasNativeReflectConstruct) {\n        var NewTarget = _getPrototypeOf(this).constructor;\n\n        result = Reflect.construct(Super, arguments, NewTarget);\n      } else {\n        result = Super.apply(this, arguments);\n      }\n\n      return _possibleConstructorReturn(this, result);\n    };\n  }\n\n  function _superPropBase(object, property) {\n    while (!Object.prototype.hasOwnProperty.call(object, property)) {\n      object = _getPrototypeOf(object);\n      if (object === null) break;\n    }\n\n    return object;\n  }\n\n  function _get(target, property, receiver) {\n    if (typeof Reflect !== \"undefined\" && Reflect.get) {\n      _get = Reflect.get;\n    } else {\n      _get = function _get(target, property, receiver) {\n        var base = _superPropBase(target, property);\n\n        if (!base) return;\n        var desc = Object.getOwnPropertyDescriptor(base, property);\n\n        if (desc.get) {\n          return desc.get.call(receiver);\n        }\n\n        return desc.value;\n      };\n    }\n\n    return _get(target, property, receiver || target);\n  }\n\n  var consolePrefix = 'SweetAlert2:';\n  /**\n   * Filter the unique values into a new array\n   * @param arr\n   */\n\n  var uniqueArray = function uniqueArray(arr) {\n    var result = [];\n\n    for (var i = 0; i < arr.length; i++) {\n      if (result.indexOf(arr[i]) === -1) {\n        result.push(arr[i]);\n      }\n    }\n\n    return result;\n  };\n  /**\n   * Capitalize the first letter of a string\n   * @param str\n   */\n\n  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  };\n  /**\n   * Returns the array of object values (Object.values isn't supported in IE11)\n   * @param obj\n   */\n\n  var objectValues = function objectValues(obj) {\n    return Object.keys(obj).map(function (key) {\n      return obj[key];\n    });\n  };\n  /**\n   * Convert NodeList to Array\n   * @param nodeList\n   */\n\n  var toArray = function toArray(nodeList) {\n    return Array.prototype.slice.call(nodeList);\n  };\n  /**\n   * Standardise console warnings\n   * @param message\n   */\n\n  var warn = function warn(message) {\n    console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n  };\n  /**\n   * Standardise console errors\n   * @param message\n   */\n\n  var error = function error(message) {\n    console.error(\"\".concat(consolePrefix, \" \").concat(message));\n  };\n  /**\n   * Private global state for `warnOnce`\n   * @type {Array}\n   * @private\n   */\n\n  var previousWarnOnceMessages = [];\n  /**\n   * Show a console warning, but only if it hasn't already been shown\n   * @param message\n   */\n\n  var warnOnce = function warnOnce(message) {\n    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {\n      previousWarnOnceMessages.push(message);\n      warn(message);\n    }\n  };\n  /**\n   * Show a one-time console warning about deprecated params/methods\n   */\n\n  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n    warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n  };\n  /**\n   * If `arg` is a function, call it (with no arguments or context) and return the result.\n   * Otherwise, just pass the value through\n   * @param arg\n   */\n\n  var callIfFunction = function callIfFunction(arg) {\n    return typeof arg === 'function' ? arg() : arg;\n  };\n  var hasToPromiseFn = function hasToPromiseFn(arg) {\n    return arg && typeof arg.toPromise === 'function';\n  };\n  var asPromise = function asPromise(arg) {\n    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n  };\n  var isPromise = function isPromise(arg) {\n    return arg && Promise.resolve(arg) === arg;\n  };\n\n  var DismissReason = Object.freeze({\n    cancel: 'cancel',\n    backdrop: 'backdrop',\n    close: 'close',\n    esc: 'esc',\n    timer: 'timer'\n  });\n\n  var isJqueryElement = function isJqueryElement(elem) {\n    return _typeof(elem) === 'object' && elem.jquery;\n  };\n\n  var isElement = function isElement(elem) {\n    return elem instanceof Element || isJqueryElement(elem);\n  };\n\n  var argsToParams = function argsToParams(args) {\n    var params = {};\n\n    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n      _extends(params, args[0]);\n    } else {\n      ['title', 'html', 'icon'].forEach(function (name, index) {\n        var arg = args[index];\n\n        if (typeof arg === 'string' || isElement(arg)) {\n          params[name] = arg;\n        } else if (arg !== undefined) {\n          error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n        }\n      });\n    }\n\n    return params;\n  };\n\n  var swalPrefix = 'swal2-';\n  var prefix = function prefix(items) {\n    var result = {};\n\n    for (var i in items) {\n      result[items[i]] = swalPrefix + items[i];\n    }\n\n    return result;\n  };\n  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);\n  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n  var getContainer = function getContainer() {\n    return document.body.querySelector(\".\".concat(swalClasses.container));\n  };\n  var elementBySelector = function elementBySelector(selectorString) {\n    var container = getContainer();\n    return container ? container.querySelector(selectorString) : null;\n  };\n\n  var elementByClass = function elementByClass(className) {\n    return elementBySelector(\".\".concat(className));\n  };\n\n  var getPopup = function getPopup() {\n    return elementByClass(swalClasses.popup);\n  };\n  var getIcon = function getIcon() {\n    return elementByClass(swalClasses.icon);\n  };\n  var getTitle = function getTitle() {\n    return elementByClass(swalClasses.title);\n  };\n  var getContent = function getContent() {\n    return elementByClass(swalClasses.content);\n  };\n  var getHtmlContainer = function getHtmlContainer() {\n    return elementByClass(swalClasses['html-container']);\n  };\n  var getImage = function getImage() {\n    return elementByClass(swalClasses.image);\n  };\n  var getProgressSteps = function getProgressSteps() {\n    return elementByClass(swalClasses['progress-steps']);\n  };\n  var getValidationMessage = function getValidationMessage() {\n    return elementByClass(swalClasses['validation-message']);\n  };\n  var getConfirmButton = function getConfirmButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n  };\n  var getDenyButton = function getDenyButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n  };\n  var getInputLabel = function getInputLabel() {\n    return elementByClass(swalClasses['input-label']);\n  };\n  var getLoader = function getLoader() {\n    return elementBySelector(\".\".concat(swalClasses.loader));\n  };\n  var getCancelButton = function getCancelButton() {\n    return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n  };\n  var getActions = function getActions() {\n    return elementByClass(swalClasses.actions);\n  };\n  var getHeader = function getHeader() {\n    return elementByClass(swalClasses.header);\n  };\n  var getFooter = function getFooter() {\n    return elementByClass(swalClasses.footer);\n  };\n  var getTimerProgressBar = function getTimerProgressBar() {\n    return elementByClass(swalClasses['timer-progress-bar']);\n  };\n  var getCloseButton = function getCloseButton() {\n    return elementByClass(swalClasses.close);\n  }; // https://github.com/jkup/focusable/blob/master/index.js\n\n  var focusable = \"\\n  a[href],\\n  area[href],\\n  input:not([disabled]),\\n  select:not([disabled]),\\n  textarea:not([disabled]),\\n  button:not([disabled]),\\n  iframe,\\n  object,\\n  embed,\\n  [tabindex=\\\"0\\\"],\\n  [contenteditable],\\n  audio[controls],\\n  video[controls],\\n  summary\\n\";\n  var getFocusableElements = function getFocusableElements() {\n    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n    .sort(function (a, b) {\n      a = parseInt(a.getAttribute('tabindex'));\n      b = parseInt(b.getAttribute('tabindex'));\n\n      if (a > b) {\n        return 1;\n      } else if (a < b) {\n        return -1;\n      }\n\n      return 0;\n    });\n    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {\n      return el.getAttribute('tabindex') !== '-1';\n    });\n    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {\n      return isVisible(el);\n    });\n  };\n  var isModal = function isModal() {\n    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);\n  };\n  var isToast = function isToast() {\n    return document.body.classList.contains(swalClasses['toast-shown']);\n  };\n  var isLoading = function isLoading() {\n    return getPopup().hasAttribute('data-loading');\n  };\n\n  var states = {\n    previousBodyPadding: null\n  };\n  var setInnerHtml = function setInnerHtml(elem, html) {\n    // #1926\n    elem.textContent = '';\n\n    if (html) {\n      var parser = new DOMParser();\n      var parsed = parser.parseFromString(html, \"text/html\");\n      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {\n        elem.appendChild(child);\n      });\n      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {\n        elem.appendChild(child);\n      });\n    }\n  };\n  var hasClass = function hasClass(elem, className) {\n    if (!className) {\n      return false;\n    }\n\n    var classList = className.split(/\\s+/);\n\n    for (var i = 0; i < classList.length; i++) {\n      if (!elem.classList.contains(classList[i])) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  var removeCustomClasses = function removeCustomClasses(elem, params) {\n    toArray(elem.classList).forEach(function (className) {\n      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {\n        elem.classList.remove(className);\n      }\n    });\n  };\n\n  var applyCustomClass = function applyCustomClass(elem, params, className) {\n    removeCustomClasses(elem, params);\n\n    if (params.customClass && params.customClass[className]) {\n      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n        return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n      }\n\n      addClass(elem, params.customClass[className]);\n    }\n  };\n  function getInput(content, inputType) {\n    if (!inputType) {\n      return null;\n    }\n\n    switch (inputType) {\n      case 'select':\n      case 'textarea':\n      case 'file':\n        return getChildByClass(content, swalClasses[inputType]);\n\n      case 'checkbox':\n        return content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n\n      case 'radio':\n        return content.querySelector(\".\".concat(swalClasses.radio, \" input:checked\")) || content.querySelector(\".\".concat(swalClasses.radio, \" input:first-child\"));\n\n      case 'range':\n        return content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n\n      default:\n        return getChildByClass(content, swalClasses.input);\n    }\n  }\n  var focusInput = function focusInput(input) {\n    input.focus(); // place cursor at end of text in text input\n\n    if (input.type !== 'file') {\n      // http://stackoverflow.com/a/2345915\n      var val = input.value;\n      input.value = '';\n      input.value = val;\n    }\n  };\n  var toggleClass = function toggleClass(target, classList, condition) {\n    if (!target || !classList) {\n      return;\n    }\n\n    if (typeof classList === 'string') {\n      classList = classList.split(/\\s+/).filter(Boolean);\n    }\n\n    classList.forEach(function (className) {\n      if (target.forEach) {\n        target.forEach(function (elem) {\n          condition ? elem.classList.add(className) : elem.classList.remove(className);\n        });\n      } else {\n        condition ? target.classList.add(className) : target.classList.remove(className);\n      }\n    });\n  };\n  var addClass = function addClass(target, classList) {\n    toggleClass(target, classList, true);\n  };\n  var removeClass = function removeClass(target, classList) {\n    toggleClass(target, classList, false);\n  };\n  var getChildByClass = function getChildByClass(elem, className) {\n    for (var i = 0; i < elem.childNodes.length; i++) {\n      if (hasClass(elem.childNodes[i], className)) {\n        return elem.childNodes[i];\n      }\n    }\n  };\n  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n    if (value === \"\".concat(parseInt(value))) {\n      value = parseInt(value);\n    }\n\n    if (value || parseInt(value) === 0) {\n      elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n    } else {\n      elem.style.removeProperty(property);\n    }\n  };\n  var show = function show(elem) {\n    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n    elem.style.display = display;\n  };\n  var hide = function hide(elem) {\n    elem.style.display = 'none';\n  };\n  var setStyle = function setStyle(parent, selector, property, value) {\n    var el = parent.querySelector(selector);\n\n    if (el) {\n      el.style[property] = value;\n    }\n  };\n  var toggle = function toggle(elem, condition, display) {\n    condition ? show(elem, display) : hide(elem);\n  }; // borrowed from jquery $(elem).is(':visible') implementation\n\n  var isVisible = function isVisible(elem) {\n    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n  };\n  var allButtonsAreHidden = function allButtonsAreHidden() {\n    return !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n  };\n  var isScrollable = function isScrollable(elem) {\n    return !!(elem.scrollHeight > elem.clientHeight);\n  }; // borrowed from https://stackoverflow.com/a/46352119\n\n  var hasCssAnimation = function hasCssAnimation(elem) {\n    var style = window.getComputedStyle(elem);\n    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n    return animDuration > 0 || transDuration > 0;\n  };\n  var contains = function contains(haystack, needle) {\n    if (typeof haystack.contains === 'function') {\n      return haystack.contains(needle);\n    }\n  };\n  var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var timerProgressBar = getTimerProgressBar();\n\n    if (isVisible(timerProgressBar)) {\n      if (reset) {\n        timerProgressBar.style.transition = 'none';\n        timerProgressBar.style.width = '100%';\n      }\n\n      setTimeout(function () {\n        timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n        timerProgressBar.style.width = '0%';\n      }, 10);\n    }\n  };\n  var stopTimerProgressBar = function stopTimerProgressBar() {\n    var timerProgressBar = getTimerProgressBar();\n    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    timerProgressBar.style.removeProperty('transition');\n    timerProgressBar.style.width = '100%';\n    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);\n    timerProgressBar.style.removeProperty('transition');\n    timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n  };\n\n  // Detect Node env\n  var isNodeEnv = function isNodeEnv() {\n    return typeof window === 'undefined' || typeof document === 'undefined';\n  };\n\n  var sweetHTML = \"\\n <div aria-labelledby=\\\"\".concat(swalClasses.title, \"\\\" aria-describedby=\\\"\").concat(swalClasses.content, \"\\\" class=\\\"\").concat(swalClasses.popup, \"\\\" tabindex=\\\"-1\\\">\\n   <div class=\\\"\").concat(swalClasses.header, \"\\\">\\n     <ul class=\\\"\").concat(swalClasses['progress-steps'], \"\\\"></ul>\\n     <div class=\\\"\").concat(swalClasses.icon, \"\\\"></div>\\n     <img class=\\\"\").concat(swalClasses.image, \"\\\" />\\n     <h2 class=\\\"\").concat(swalClasses.title, \"\\\" id=\\\"\").concat(swalClasses.title, \"\\\"></h2>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.close, \"\\\"></button>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.content, \"\\\">\\n     <div id=\\\"\").concat(swalClasses.content, \"\\\" class=\\\"\").concat(swalClasses['html-container'], \"\\\"></div>\\n     <input class=\\\"\").concat(swalClasses.input, \"\\\" />\\n     <input type=\\\"file\\\" class=\\\"\").concat(swalClasses.file, \"\\\" />\\n     <div class=\\\"\").concat(swalClasses.range, \"\\\">\\n       <input type=\\\"range\\\" />\\n       <output></output>\\n     </div>\\n     <select class=\\\"\").concat(swalClasses.select, \"\\\"></select>\\n     <div class=\\\"\").concat(swalClasses.radio, \"\\\"></div>\\n     <label for=\\\"\").concat(swalClasses.checkbox, \"\\\" class=\\\"\").concat(swalClasses.checkbox, \"\\\">\\n       <input type=\\\"checkbox\\\" />\\n       <span class=\\\"\").concat(swalClasses.label, \"\\\"></span>\\n     </label>\\n     <textarea class=\\\"\").concat(swalClasses.textarea, \"\\\"></textarea>\\n     <div class=\\\"\").concat(swalClasses['validation-message'], \"\\\" id=\\\"\").concat(swalClasses['validation-message'], \"\\\"></div>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.actions, \"\\\">\\n     <div class=\\\"\").concat(swalClasses.loader, \"\\\"></div>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.confirm, \"\\\"></button>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.deny, \"\\\"></button>\\n     <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.cancel, \"\\\"></button>\\n   </div>\\n   <div class=\\\"\").concat(swalClasses.footer, \"\\\"></div>\\n   <div class=\\\"\").concat(swalClasses['timer-progress-bar-container'], \"\\\">\\n     <div class=\\\"\").concat(swalClasses['timer-progress-bar'], \"\\\"></div>\\n   </div>\\n </div>\\n\").replace(/(^|\\n)\\s*/g, '');\n\n  var resetOldContainer = function resetOldContainer() {\n    var oldContainer = getContainer();\n\n    if (!oldContainer) {\n      return false;\n    }\n\n    oldContainer.parentNode.removeChild(oldContainer);\n    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n    return true;\n  };\n\n  var oldInputVal; // IE11 workaround, see #1109 for details\n\n  var resetValidationMessage = function resetValidationMessage(e) {\n    if (Swal.isVisible() && oldInputVal !== e.target.value) {\n      Swal.resetValidationMessage();\n    }\n\n    oldInputVal = e.target.value;\n  };\n\n  var addInputChangeListeners = function addInputChangeListeners() {\n    var content = getContent();\n    var input = getChildByClass(content, swalClasses.input);\n    var file = getChildByClass(content, swalClasses.file);\n    var range = content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n    var rangeOutput = content.querySelector(\".\".concat(swalClasses.range, \" output\"));\n    var select = getChildByClass(content, swalClasses.select);\n    var checkbox = content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n    var textarea = getChildByClass(content, swalClasses.textarea);\n    input.oninput = resetValidationMessage;\n    file.onchange = resetValidationMessage;\n    select.onchange = resetValidationMessage;\n    checkbox.onchange = resetValidationMessage;\n    textarea.oninput = resetValidationMessage;\n\n    range.oninput = function (e) {\n      resetValidationMessage(e);\n      rangeOutput.value = range.value;\n    };\n\n    range.onchange = function (e) {\n      resetValidationMessage(e);\n      range.nextSibling.value = range.value;\n    };\n  };\n\n  var getTarget = function getTarget(target) {\n    return typeof target === 'string' ? document.querySelector(target) : target;\n  };\n\n  var setupAccessibility = function setupAccessibility(params) {\n    var popup = getPopup();\n    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n    if (!params.toast) {\n      popup.setAttribute('aria-modal', 'true');\n    }\n  };\n\n  var setupRTL = function setupRTL(targetElement) {\n    if (window.getComputedStyle(targetElement).direction === 'rtl') {\n      addClass(getContainer(), swalClasses.rtl);\n    }\n  };\n  /*\n   * Add modal + backdrop to DOM\n   */\n\n\n  var init = function init(params) {\n    // Clean up the old popup container if it exists\n    var oldContainerExisted = resetOldContainer();\n    /* istanbul ignore if */\n\n    if (isNodeEnv()) {\n      error('SweetAlert2 requires document to initialize');\n      return;\n    }\n\n    var container = document.createElement('div');\n    container.className = swalClasses.container;\n\n    if (oldContainerExisted) {\n      addClass(container, swalClasses['no-transition']);\n    }\n\n    setInnerHtml(container, sweetHTML);\n    var targetElement = getTarget(params.target);\n    targetElement.appendChild(container);\n    setupAccessibility(params);\n    setupRTL(targetElement);\n    addInputChangeListeners();\n  };\n\n  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n    // DOM element\n    if (param instanceof HTMLElement) {\n      target.appendChild(param); // Object\n    } else if (_typeof(param) === 'object') {\n      handleObject(param, target); // Plain string\n    } else if (param) {\n      setInnerHtml(target, param);\n    }\n  };\n\n  var handleObject = function handleObject(param, target) {\n    // JQuery element(s)\n    if (param.jquery) {\n      handleJqueryElem(target, param); // For other objects use their string representation\n    } else {\n      setInnerHtml(target, param.toString());\n    }\n  };\n\n  var handleJqueryElem = function handleJqueryElem(target, elem) {\n    target.textContent = '';\n\n    if (0 in elem) {\n      for (var i = 0; (i in elem); i++) {\n        target.appendChild(elem[i].cloneNode(true));\n      }\n    } else {\n      target.appendChild(elem.cloneNode(true));\n    }\n  };\n\n  var animationEndEvent = function () {\n    // Prevent run in Node env\n\n    /* istanbul ignore if */\n    if (isNodeEnv()) {\n      return false;\n    }\n\n    var testEl = document.createElement('div');\n    var transEndEventNames = {\n      WebkitAnimation: 'webkitAnimationEnd',\n      OAnimation: 'oAnimationEnd oanimationend',\n      animation: 'animationend'\n    };\n\n    for (var i in transEndEventNames) {\n      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n        return transEndEventNames[i];\n      }\n    }\n\n    return false;\n  }();\n\n  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\n  var measureScrollbar = function measureScrollbar() {\n    var scrollDiv = document.createElement('div');\n    scrollDiv.className = swalClasses['scrollbar-measure'];\n    document.body.appendChild(scrollDiv);\n    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n    document.body.removeChild(scrollDiv);\n    return scrollbarWidth;\n  };\n\n  var renderActions = function renderActions(instance, params) {\n    var actions = getActions();\n    var loader = getLoader();\n    var confirmButton = getConfirmButton();\n    var denyButton = getDenyButton();\n    var cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n      hide(actions);\n    } // Custom class\n\n\n    applyCustomClass(actions, params, 'actions'); // Render buttons\n\n    renderButton(confirmButton, 'confirm', params);\n    renderButton(denyButton, 'deny', params);\n    renderButton(cancelButton, 'cancel', params);\n    handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n    if (params.reverseButtons) {\n      actions.insertBefore(cancelButton, loader);\n      actions.insertBefore(denyButton, loader);\n      actions.insertBefore(confirmButton, loader);\n    } // Loader\n\n\n    setInnerHtml(loader, params.loaderHtml);\n    applyCustomClass(loader, params, 'loader');\n  };\n\n  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n    if (!params.buttonsStyling) {\n      return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n    }\n\n    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n    if (params.confirmButtonColor) {\n      confirmButton.style.backgroundColor = params.confirmButtonColor;\n    }\n\n    if (params.denyButtonColor) {\n      denyButton.style.backgroundColor = params.denyButtonColor;\n    }\n\n    if (params.cancelButtonColor) {\n      cancelButton.style.backgroundColor = params.cancelButtonColor;\n    }\n  }\n\n  function renderButton(button, buttonType, params) {\n    toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n    setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n    button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n    // Add buttons custom classes\n\n    button.className = swalClasses[buttonType];\n    applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n    addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n  }\n\n  function handleBackdropParam(container, backdrop) {\n    if (typeof backdrop === 'string') {\n      container.style.background = backdrop;\n    } else if (!backdrop) {\n      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n    }\n  }\n\n  function handlePositionParam(container, position) {\n    if (position in swalClasses) {\n      addClass(container, swalClasses[position]);\n    } else {\n      warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n      addClass(container, swalClasses.center);\n    }\n  }\n\n  function handleGrowParam(container, grow) {\n    if (grow && typeof grow === 'string') {\n      var growClass = \"grow-\".concat(grow);\n\n      if (growClass in swalClasses) {\n        addClass(container, swalClasses[growClass]);\n      }\n    }\n  }\n\n  var renderContainer = function renderContainer(instance, params) {\n    var container = getContainer();\n\n    if (!container) {\n      return;\n    }\n\n    handleBackdropParam(container, params.backdrop);\n\n    if (!params.backdrop && params.allowOutsideClick) {\n      warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n    }\n\n    handlePositionParam(container, params.position);\n    handleGrowParam(container, params.grow); // Custom class\n\n    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method\n\n    var queueStep = document.body.getAttribute('data-swal2-queue-step');\n\n    if (queueStep) {\n      container.setAttribute('data-queue-step', queueStep);\n      document.body.removeAttribute('data-swal2-queue-step');\n    }\n  };\n\n  /**\n   * This module containts `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n  var privateProps = {\n    promise: new WeakMap(),\n    innerParams: new WeakMap(),\n    domCache: new WeakMap()\n  };\n\n  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n  var renderInput = function renderInput(instance, params) {\n    var content = getContent();\n    var innerParams = privateProps.innerParams.get(instance);\n    var rerender = !innerParams || params.input !== innerParams.input;\n    inputTypes.forEach(function (inputType) {\n      var inputClass = swalClasses[inputType];\n      var inputContainer = getChildByClass(content, inputClass); // set attributes\n\n      setAttributes(inputType, params.inputAttributes); // set class\n\n      inputContainer.className = inputClass;\n\n      if (rerender) {\n        hide(inputContainer);\n      }\n    });\n\n    if (params.input) {\n      if (rerender) {\n        showInput(params);\n      } // set custom class\n\n\n      setCustomClass(params);\n    }\n  };\n\n  var showInput = function showInput(params) {\n    if (!renderInputType[params.input]) {\n      return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n    }\n\n    var inputContainer = getInputContainer(params.input);\n    var input = renderInputType[params.input](inputContainer, params);\n    show(input); // input autofocus\n\n    setTimeout(function () {\n      focusInput(input);\n    });\n  };\n\n  var removeAttributes = function removeAttributes(input) {\n    for (var i = 0; i < input.attributes.length; i++) {\n      var attrName = input.attributes[i].name;\n\n      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {\n        input.removeAttribute(attrName);\n      }\n    }\n  };\n\n  var setAttributes = function setAttributes(inputType, inputAttributes) {\n    var input = getInput(getContent(), inputType);\n\n    if (!input) {\n      return;\n    }\n\n    removeAttributes(input);\n\n    for (var attr in inputAttributes) {\n      // Do not set a placeholder for <input type=\"range\">\n      // it'll crash Edge, #1298\n      if (inputType === 'range' && attr === 'placeholder') {\n        continue;\n      }\n\n      input.setAttribute(attr, inputAttributes[attr]);\n    }\n  };\n\n  var setCustomClass = function setCustomClass(params) {\n    var inputContainer = getInputContainer(params.input);\n\n    if (params.customClass) {\n      addClass(inputContainer, params.customClass.input);\n    }\n  };\n\n  var setInputPlaceholder = function setInputPlaceholder(input, params) {\n    if (!input.placeholder || params.inputPlaceholder) {\n      input.placeholder = params.inputPlaceholder;\n    }\n  };\n\n  var setInputLabel = function setInputLabel(input, prependTo, params) {\n    if (params.inputLabel) {\n      input.id = swalClasses.input;\n      var label = document.createElement('label');\n      var labelClass = swalClasses['input-label'];\n      label.setAttribute('for', input.id);\n      label.className = labelClass;\n      addClass(label, params.customClass.inputLabel);\n      label.innerText = params.inputLabel;\n      prependTo.insertAdjacentElement('beforebegin', label);\n    }\n  };\n\n  var getInputContainer = function getInputContainer(inputType) {\n    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n    return getChildByClass(getContent(), inputClass);\n  };\n\n  var renderInputType = {};\n\n  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {\n    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n      input.value = params.inputValue;\n    } else if (!isPromise(params.inputValue)) {\n      warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(params.inputValue), \"\\\"\"));\n    }\n\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    input.type = params.input;\n    return input;\n  };\n\n  renderInputType.file = function (input, params) {\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    return input;\n  };\n\n  renderInputType.range = function (range, params) {\n    var rangeInput = range.querySelector('input');\n    var rangeOutput = range.querySelector('output');\n    rangeInput.value = params.inputValue;\n    rangeInput.type = params.input;\n    rangeOutput.value = params.inputValue;\n    setInputLabel(rangeInput, range, params);\n    return range;\n  };\n\n  renderInputType.select = function (select, params) {\n    select.textContent = '';\n\n    if (params.inputPlaceholder) {\n      var placeholder = document.createElement('option');\n      setInnerHtml(placeholder, params.inputPlaceholder);\n      placeholder.value = '';\n      placeholder.disabled = true;\n      placeholder.selected = true;\n      select.appendChild(placeholder);\n    }\n\n    setInputLabel(select, select, params);\n    return select;\n  };\n\n  renderInputType.radio = function (radio) {\n    radio.textContent = '';\n    return radio;\n  };\n\n  renderInputType.checkbox = function (checkboxContainer, params) {\n    var checkbox = getInput(getContent(), 'checkbox');\n    checkbox.value = 1;\n    checkbox.id = swalClasses.checkbox;\n    checkbox.checked = Boolean(params.inputValue);\n    var label = checkboxContainer.querySelector('span');\n    setInnerHtml(label, params.inputPlaceholder);\n    return checkboxContainer;\n  };\n\n  renderInputType.textarea = function (textarea, params) {\n    textarea.value = params.inputValue;\n    setInputPlaceholder(textarea, params);\n    setInputLabel(textarea, textarea, params);\n\n    var getPadding = function getPadding(el) {\n      return parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);\n    };\n\n    if ('MutationObserver' in window) {\n      // #1699\n      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n      var outputsize = function outputsize() {\n        var contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());\n\n        if (contentWidth > initialPopupWidth) {\n          getPopup().style.width = \"\".concat(contentWidth, \"px\");\n        } else {\n          getPopup().style.width = null;\n        }\n      };\n\n      new MutationObserver(outputsize).observe(textarea, {\n        attributes: true,\n        attributeFilter: ['style']\n      });\n    }\n\n    return textarea;\n  };\n\n  var renderContent = function renderContent(instance, params) {\n    var htmlContainer = getHtmlContainer();\n    applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n    if (params.html) {\n      parseHtmlToContainer(params.html, htmlContainer);\n      show(htmlContainer, 'block'); // Content as plain text\n    } else if (params.text) {\n      htmlContainer.textContent = params.text;\n      show(htmlContainer, 'block'); // No content\n    } else {\n      hide(htmlContainer);\n    }\n\n    renderInput(instance, params); // Custom class\n\n    applyCustomClass(getContent(), params, 'content');\n  };\n\n  var renderFooter = function renderFooter(instance, params) {\n    var footer = getFooter();\n    toggle(footer, params.footer);\n\n    if (params.footer) {\n      parseHtmlToContainer(params.footer, footer);\n    } // Custom class\n\n\n    applyCustomClass(footer, params, 'footer');\n  };\n\n  var renderCloseButton = function renderCloseButton(instance, params) {\n    var closeButton = getCloseButton();\n    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n    applyCustomClass(closeButton, params, 'closeButton');\n    toggle(closeButton, params.showCloseButton);\n    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n  };\n\n  var renderIcon = function renderIcon(instance, params) {\n    var innerParams = privateProps.innerParams.get(instance);\n    var icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n    if (innerParams && params.icon === innerParams.icon) {\n      // Custom or default content\n      setContent(icon, params);\n      applyStyles(icon, params);\n      return;\n    }\n\n    if (!params.icon && !params.iconHtml) {\n      return hide(icon);\n    }\n\n    if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n      error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n      return hide(icon);\n    }\n\n    show(icon); // Custom or default content\n\n    setContent(icon, params);\n    applyStyles(icon, params); // Animate icon\n\n    addClass(icon, params.showClass.icon);\n  };\n\n  var applyStyles = function applyStyles(icon, params) {\n    for (var iconType in iconTypes) {\n      if (params.icon !== iconType) {\n        removeClass(icon, iconTypes[iconType]);\n      }\n    }\n\n    addClass(icon, iconTypes[params.icon]); // Icon color\n\n    setColor(icon, params); // Success icon background color\n\n    adjustSuccessIconBackgoundColor(); // Custom class\n\n    applyCustomClass(icon, params, 'icon');\n  }; // Adjust success icon background color to match the popup background color\n\n\n  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {\n    var popup = getPopup();\n    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n    for (var i = 0; i < successIconParts.length; i++) {\n      successIconParts[i].style.backgroundColor = popupBackgroundColor;\n    }\n  };\n\n  var setContent = function setContent(icon, params) {\n    icon.textContent = '';\n\n    if (params.iconHtml) {\n      setInnerHtml(icon, iconContent(params.iconHtml));\n    } else if (params.icon === 'success') {\n      setInnerHtml(icon, \"\\n      <div class=\\\"swal2-success-circular-line-left\\\"></div>\\n      <span class=\\\"swal2-success-line-tip\\\"></span> <span class=\\\"swal2-success-line-long\\\"></span>\\n      <div class=\\\"swal2-success-ring\\\"></div> <div class=\\\"swal2-success-fix\\\"></div>\\n      <div class=\\\"swal2-success-circular-line-right\\\"></div>\\n    \");\n    } else if (params.icon === 'error') {\n      setInnerHtml(icon, \"\\n      <span class=\\\"swal2-x-mark\\\">\\n        <span class=\\\"swal2-x-mark-line-left\\\"></span>\\n        <span class=\\\"swal2-x-mark-line-right\\\"></span>\\n      </span>\\n    \");\n    } else {\n      var defaultIconHtml = {\n        question: '?',\n        warning: '!',\n        info: 'i'\n      };\n      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n    }\n  };\n\n  var setColor = function setColor(icon, params) {\n    if (!params.iconColor) {\n      return;\n    }\n\n    icon.style.color = params.iconColor;\n    icon.style.borderColor = params.iconColor;\n\n    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {\n      var sel = _arr[_i];\n      setStyle(icon, sel, 'backgroundColor', params.iconColor);\n    }\n\n    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n  };\n\n  var iconContent = function iconContent(content) {\n    return \"<div class=\\\"\".concat(swalClasses['icon-content'], \"\\\">\").concat(content, \"</div>\");\n  };\n\n  var renderImage = function renderImage(instance, params) {\n    var image = getImage();\n\n    if (!params.imageUrl) {\n      return hide(image);\n    }\n\n    show(image, ''); // Src, alt\n\n    image.setAttribute('src', params.imageUrl);\n    image.setAttribute('alt', params.imageAlt); // Width, height\n\n    applyNumericalStyle(image, 'width', params.imageWidth);\n    applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n    image.className = swalClasses.image;\n    applyCustomClass(image, params, 'image');\n  };\n\n  var currentSteps = [];\n  /*\n   * Global function for chaining sweetAlert popups\n   */\n\n  var queue = function queue(steps) {\n    var Swal = this;\n    currentSteps = steps;\n\n    var resetAndResolve = function resetAndResolve(resolve, value) {\n      currentSteps = [];\n      resolve(value);\n    };\n\n    var queueResult = [];\n    return new Promise(function (resolve) {\n      (function step(i, callback) {\n        if (i < currentSteps.length) {\n          document.body.setAttribute('data-swal2-queue-step', i);\n          Swal.fire(currentSteps[i]).then(function (result) {\n            if (typeof result.value !== 'undefined') {\n              queueResult.push(result.value);\n              step(i + 1, callback);\n            } else {\n              resetAndResolve(resolve, {\n                dismiss: result.dismiss\n              });\n            }\n          });\n        } else {\n          resetAndResolve(resolve, {\n            value: queueResult\n          });\n        }\n      })(0);\n    });\n  };\n  /*\n   * Global function for getting the index of current popup in queue\n   */\n\n  var getQueueStep = function getQueueStep() {\n    return getContainer() && getContainer().getAttribute('data-queue-step');\n  };\n  /*\n   * Global function for inserting a popup to the queue\n   */\n\n  var insertQueueStep = function insertQueueStep(step, index) {\n    if (index && index < currentSteps.length) {\n      return currentSteps.splice(index, 0, step);\n    }\n\n    return currentSteps.push(step);\n  };\n  /*\n   * Global function for deleting a popup from the queue\n   */\n\n  var deleteQueueStep = function deleteQueueStep(index) {\n    if (typeof currentSteps[index] !== 'undefined') {\n      currentSteps.splice(index, 1);\n    }\n  };\n\n  var createStepElement = function createStepElement(step) {\n    var stepEl = document.createElement('li');\n    addClass(stepEl, swalClasses['progress-step']);\n    setInnerHtml(stepEl, step);\n    return stepEl;\n  };\n\n  var createLineElement = function createLineElement(params) {\n    var lineEl = document.createElement('li');\n    addClass(lineEl, swalClasses['progress-step-line']);\n\n    if (params.progressStepsDistance) {\n      lineEl.style.width = params.progressStepsDistance;\n    }\n\n    return lineEl;\n  };\n\n  var renderProgressSteps = function renderProgressSteps(instance, params) {\n    var progressStepsContainer = getProgressSteps();\n\n    if (!params.progressSteps || params.progressSteps.length === 0) {\n      return hide(progressStepsContainer);\n    }\n\n    show(progressStepsContainer);\n    progressStepsContainer.textContent = '';\n    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);\n\n    if (currentProgressStep >= params.progressSteps.length) {\n      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n    }\n\n    params.progressSteps.forEach(function (step, index) {\n      var stepEl = createStepElement(step);\n      progressStepsContainer.appendChild(stepEl);\n\n      if (index === currentProgressStep) {\n        addClass(stepEl, swalClasses['active-progress-step']);\n      }\n\n      if (index !== params.progressSteps.length - 1) {\n        var lineEl = createLineElement(params);\n        progressStepsContainer.appendChild(lineEl);\n      }\n    });\n  };\n\n  var renderTitle = function renderTitle(instance, params) {\n    var title = getTitle();\n    toggle(title, params.title || params.titleText);\n\n    if (params.title) {\n      parseHtmlToContainer(params.title, title);\n    }\n\n    if (params.titleText) {\n      title.innerText = params.titleText;\n    } // Custom class\n\n\n    applyCustomClass(title, params, 'title');\n  };\n\n  var renderHeader = function renderHeader(instance, params) {\n    var header = getHeader(); // Custom class\n\n    applyCustomClass(header, params, 'header'); // Progress steps\n\n    renderProgressSteps(instance, params); // Icon\n\n    renderIcon(instance, params); // Image\n\n    renderImage(instance, params); // Title\n\n    renderTitle(instance, params); // Close button\n\n    renderCloseButton(instance, params);\n  };\n\n  var renderPopup = function renderPopup(instance, params) {\n    var container = getContainer();\n    var popup = getPopup(); // Width\n\n    if (params.toast) {\n      // #2170\n      applyNumericalStyle(container, 'width', params.width);\n      popup.style.width = '100%';\n    } else {\n      applyNumericalStyle(popup, 'width', params.width);\n    } // Padding\n\n\n    applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n    if (params.background) {\n      popup.style.background = params.background;\n    }\n\n    hide(getValidationMessage()); // Classes\n\n    addClasses(popup, params);\n  };\n\n  var addClasses = function addClasses(popup, params) {\n    // Default Class + showClass when updating Swal.update({})\n    popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n    if (params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n      addClass(popup, swalClasses.toast);\n    } else {\n      addClass(popup, swalClasses.modal);\n    } // Custom class\n\n\n    applyCustomClass(popup, params, 'popup');\n\n    if (typeof params.customClass === 'string') {\n      addClass(popup, params.customClass);\n    } // Icon class (#1842)\n\n\n    if (params.icon) {\n      addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n    }\n  };\n\n  var render = function render(instance, params) {\n    renderPopup(instance, params);\n    renderContainer(instance, params);\n    renderHeader(instance, params);\n    renderContent(instance, params);\n    renderActions(instance, params);\n    renderFooter(instance, params);\n\n    if (typeof params.didRender === 'function') {\n      params.didRender(getPopup());\n    } else if (typeof params.onRender === 'function') {\n      params.onRender(getPopup()); // @deprecated\n    }\n  };\n\n  /*\n   * Global function to determine if SweetAlert2 popup is shown\n   */\n\n  var isVisible$1 = function isVisible$$1() {\n    return isVisible(getPopup());\n  };\n  /*\n   * Global function to click 'Confirm' button\n   */\n\n  var clickConfirm = function clickConfirm() {\n    return getConfirmButton() && getConfirmButton().click();\n  };\n  /*\n   * Global function to click 'Deny' button\n   */\n\n  var clickDeny = function clickDeny() {\n    return getDenyButton() && getDenyButton().click();\n  };\n  /*\n   * Global function to click 'Cancel' button\n   */\n\n  var clickCancel = function clickCancel() {\n    return getCancelButton() && getCancelButton().click();\n  };\n\n  function fire() {\n    var Swal = this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _construct(Swal, args);\n  }\n\n  /**\n   * Returns an extended version of `Swal` containing `params` as defaults.\n   * Useful for reusing Swal configuration.\n   *\n   * For example:\n   *\n   * Before:\n   * const textPromptOptions = { input: 'text', showCancelButton: true }\n   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n   *\n   * After:\n   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n   * const {value: firstName} = await TextPrompt('What is your first name?')\n   * const {value: lastName} = await TextPrompt('What is your last name?')\n   *\n   * @param mixinParams\n   */\n  function mixin(mixinParams) {\n    var MixinSwal = /*#__PURE__*/function (_this) {\n      _inherits(MixinSwal, _this);\n\n      var _super = _createSuper(MixinSwal);\n\n      function MixinSwal() {\n        _classCallCheck(this, MixinSwal);\n\n        return _super.apply(this, arguments);\n      }\n\n      _createClass(MixinSwal, [{\n        key: \"_main\",\n        value: function _main(params, priorityMixinParams) {\n          return _get(_getPrototypeOf(MixinSwal.prototype), \"_main\", this).call(this, params, _extends({}, mixinParams, priorityMixinParams));\n        }\n      }]);\n\n      return MixinSwal;\n    }(this);\n\n    return MixinSwal;\n  }\n\n  /**\n   * Shows loader (spinner), this is useful with AJAX requests.\n   * By default the loader be shown instead of the \"Confirm\" button.\n   */\n\n  var showLoading = function showLoading(buttonToReplace) {\n    var popup = getPopup();\n\n    if (!popup) {\n      Swal.fire();\n    }\n\n    popup = getPopup();\n    var actions = getActions();\n    var loader = getLoader();\n\n    if (!buttonToReplace && isVisible(getConfirmButton())) {\n      buttonToReplace = getConfirmButton();\n    }\n\n    show(actions);\n\n    if (buttonToReplace) {\n      hide(buttonToReplace);\n      loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n    }\n\n    loader.parentNode.insertBefore(loader, buttonToReplace);\n    addClass([popup, actions], swalClasses.loading);\n    show(loader);\n    popup.setAttribute('data-loading', true);\n    popup.setAttribute('aria-busy', true);\n    popup.focus();\n  };\n\n  var RESTORE_FOCUS_TIMEOUT = 100;\n\n  var globalState = {};\n\n  var focusPreviousActiveElement = function focusPreviousActiveElement() {\n    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n      globalState.previousActiveElement.focus();\n      globalState.previousActiveElement = null;\n    } else if (document.body) {\n      document.body.focus();\n    }\n  }; // Restore previous active (focused) element\n\n\n  var restoreActiveElement = function restoreActiveElement() {\n    return new Promise(function (resolve) {\n      var x = window.scrollX;\n      var y = window.scrollY;\n      globalState.restoreFocusTimeout = setTimeout(function () {\n        focusPreviousActiveElement();\n        resolve();\n      }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n      /* istanbul ignore if */\n\n      if (typeof x !== 'undefined' && typeof y !== 'undefined') {\n        // IE doesn't have scrollX/scrollY support\n        window.scrollTo(x, y);\n      }\n    });\n  };\n\n  /**\n   * If `timer` parameter is set, returns number of milliseconds of timer remained.\n   * Otherwise, returns undefined.\n   */\n\n  var getTimerLeft = function getTimerLeft() {\n    return globalState.timeout && globalState.timeout.getTimerLeft();\n  };\n  /**\n   * Stop timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var stopTimer = function stopTimer() {\n    if (globalState.timeout) {\n      stopTimerProgressBar();\n      return globalState.timeout.stop();\n    }\n  };\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var resumeTimer = function resumeTimer() {\n    if (globalState.timeout) {\n      var remaining = globalState.timeout.start();\n      animateTimerProgressBar(remaining);\n      return remaining;\n    }\n  };\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var toggleTimer = function toggleTimer() {\n    var timer = globalState.timeout;\n    return timer && (timer.running ? stopTimer() : resumeTimer());\n  };\n  /**\n   * Increase timer. Returns number of milliseconds of an updated timer.\n   * If `timer` parameter isn't set, returns undefined.\n   */\n\n  var increaseTimer = function increaseTimer(n) {\n    if (globalState.timeout) {\n      var remaining = globalState.timeout.increase(n);\n      animateTimerProgressBar(remaining, true);\n      return remaining;\n    }\n  };\n  /**\n   * Check if timer is running. Returns true if timer is running\n   * or false if timer is paused or stopped.\n   * If `timer` parameter isn't set, returns undefined\n   */\n\n  var isTimerRunning = function isTimerRunning() {\n    return globalState.timeout && globalState.timeout.isRunning();\n  };\n\n  var bodyClickListenerAdded = false;\n  var clickHandlers = {};\n  function bindClickHandler() {\n    var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n    clickHandlers[attr] = this;\n\n    if (!bodyClickListenerAdded) {\n      document.body.addEventListener('click', bodyClickListener);\n      bodyClickListenerAdded = true;\n    }\n  }\n\n  var bodyClickListener = function bodyClickListener(event) {\n    // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638\n    // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354\n    for (var el = event.target; el && el !== document; el = el.parentNode) {\n      for (var attr in clickHandlers) {\n        var template = el.getAttribute(attr);\n\n        if (template) {\n          clickHandlers[attr].fire({\n            template: template\n          });\n          return;\n        }\n      }\n    }\n  };\n\n  var defaultParams = {\n    title: '',\n    titleText: '',\n    text: '',\n    html: '',\n    footer: '',\n    icon: undefined,\n    iconColor: undefined,\n    iconHtml: undefined,\n    template: undefined,\n    toast: false,\n    animation: true,\n    showClass: {\n      popup: 'swal2-show',\n      backdrop: 'swal2-backdrop-show',\n      icon: 'swal2-icon-show'\n    },\n    hideClass: {\n      popup: 'swal2-hide',\n      backdrop: 'swal2-backdrop-hide',\n      icon: 'swal2-icon-hide'\n    },\n    customClass: {},\n    target: 'body',\n    backdrop: true,\n    heightAuto: true,\n    allowOutsideClick: true,\n    allowEscapeKey: true,\n    allowEnterKey: true,\n    stopKeydownPropagation: true,\n    keydownListenerCapture: false,\n    showConfirmButton: true,\n    showDenyButton: false,\n    showCancelButton: false,\n    preConfirm: undefined,\n    preDeny: undefined,\n    confirmButtonText: 'OK',\n    confirmButtonAriaLabel: '',\n    confirmButtonColor: undefined,\n    denyButtonText: 'No',\n    denyButtonAriaLabel: '',\n    denyButtonColor: undefined,\n    cancelButtonText: 'Cancel',\n    cancelButtonAriaLabel: '',\n    cancelButtonColor: undefined,\n    buttonsStyling: true,\n    reverseButtons: false,\n    focusConfirm: true,\n    focusDeny: false,\n    focusCancel: false,\n    showCloseButton: false,\n    closeButtonHtml: '&times;',\n    closeButtonAriaLabel: 'Close this dialog',\n    loaderHtml: '',\n    showLoaderOnConfirm: false,\n    showLoaderOnDeny: false,\n    imageUrl: undefined,\n    imageWidth: undefined,\n    imageHeight: undefined,\n    imageAlt: '',\n    timer: undefined,\n    timerProgressBar: false,\n    width: undefined,\n    padding: undefined,\n    background: undefined,\n    input: undefined,\n    inputPlaceholder: '',\n    inputLabel: '',\n    inputValue: '',\n    inputOptions: {},\n    inputAutoTrim: true,\n    inputAttributes: {},\n    inputValidator: undefined,\n    returnInputValueOnDeny: false,\n    validationMessage: undefined,\n    grow: false,\n    position: 'center',\n    progressSteps: [],\n    currentProgressStep: undefined,\n    progressStepsDistance: undefined,\n    onBeforeOpen: undefined,\n    onOpen: undefined,\n    willOpen: undefined,\n    didOpen: undefined,\n    onRender: undefined,\n    didRender: undefined,\n    onClose: undefined,\n    onAfterClose: undefined,\n    willClose: undefined,\n    didClose: undefined,\n    onDestroy: undefined,\n    didDestroy: undefined,\n    scrollbarPadding: true\n  };\n  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n  var deprecatedParams = {\n    animation: 'showClass\" and \"hideClass',\n    onBeforeOpen: 'willOpen',\n    onOpen: 'didOpen',\n    onRender: 'didRender',\n    onClose: 'willClose',\n    onAfterClose: 'didClose',\n    onDestroy: 'didDestroy'\n  };\n  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];\n  /**\n   * Is valid parameter\n   * @param {String} paramName\n   */\n\n  var isValidParameter = function isValidParameter(paramName) {\n    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n  };\n  /**\n   * Is valid parameter for Swal.update() method\n   * @param {String} paramName\n   */\n\n  var isUpdatableParameter = function isUpdatableParameter(paramName) {\n    return updatableParams.indexOf(paramName) !== -1;\n  };\n  /**\n   * Is deprecated parameter\n   * @param {String} paramName\n   */\n\n  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n    return deprecatedParams[paramName];\n  };\n\n  var checkIfParamIsValid = function checkIfParamIsValid(param) {\n    if (!isValidParameter(param)) {\n      warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n    }\n  };\n\n  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n    if (toastIncompatibleParams.indexOf(param) !== -1) {\n      warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n    }\n  };\n\n  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n    if (isDeprecatedParameter(param)) {\n      warnAboutDeprecation(param, isDeprecatedParameter(param));\n    }\n  };\n  /**\n   * Show relevant warnings for given params\n   *\n   * @param params\n   */\n\n\n  var showWarningsForParams = function showWarningsForParams(params) {\n    for (var param in params) {\n      checkIfParamIsValid(param);\n\n      if (params.toast) {\n        checkIfToastParamIsValid(param);\n      }\n\n      checkIfParamIsDeprecated(param);\n    }\n  };\n\n\n\n  var staticMethods = /*#__PURE__*/Object.freeze({\n    isValidParameter: isValidParameter,\n    isUpdatableParameter: isUpdatableParameter,\n    isDeprecatedParameter: isDeprecatedParameter,\n    argsToParams: argsToParams,\n    isVisible: isVisible$1,\n    clickConfirm: clickConfirm,\n    clickDeny: clickDeny,\n    clickCancel: clickCancel,\n    getContainer: getContainer,\n    getPopup: getPopup,\n    getTitle: getTitle,\n    getContent: getContent,\n    getHtmlContainer: getHtmlContainer,\n    getImage: getImage,\n    getIcon: getIcon,\n    getInputLabel: getInputLabel,\n    getCloseButton: getCloseButton,\n    getActions: getActions,\n    getConfirmButton: getConfirmButton,\n    getDenyButton: getDenyButton,\n    getCancelButton: getCancelButton,\n    getLoader: getLoader,\n    getHeader: getHeader,\n    getFooter: getFooter,\n    getTimerProgressBar: getTimerProgressBar,\n    getFocusableElements: getFocusableElements,\n    getValidationMessage: getValidationMessage,\n    isLoading: isLoading,\n    fire: fire,\n    mixin: mixin,\n    queue: queue,\n    getQueueStep: getQueueStep,\n    insertQueueStep: insertQueueStep,\n    deleteQueueStep: deleteQueueStep,\n    showLoading: showLoading,\n    enableLoading: showLoading,\n    getTimerLeft: getTimerLeft,\n    stopTimer: stopTimer,\n    resumeTimer: resumeTimer,\n    toggleTimer: toggleTimer,\n    increaseTimer: increaseTimer,\n    isTimerRunning: isTimerRunning,\n    bindClickHandler: bindClickHandler\n  });\n\n  /**\n   * Hides loader and shows back the button which was hidden by .showLoading()\n   */\n\n  function hideLoading() {\n    // do nothing if popup is closed\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams) {\n      return;\n    }\n\n    var domCache = privateProps.domCache.get(this);\n    hide(domCache.loader);\n    var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n    if (buttonToReplace.length) {\n      show(buttonToReplace[0], 'inline-block');\n    } else if (allButtonsAreHidden()) {\n      hide(domCache.actions);\n    }\n\n    removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n    domCache.popup.removeAttribute('aria-busy');\n    domCache.popup.removeAttribute('data-loading');\n    domCache.confirmButton.disabled = false;\n    domCache.denyButton.disabled = false;\n    domCache.cancelButton.disabled = false;\n  }\n\n  function getInput$1(instance) {\n    var innerParams = privateProps.innerParams.get(instance || this);\n    var domCache = privateProps.domCache.get(instance || this);\n\n    if (!domCache) {\n      return null;\n    }\n\n    return getInput(domCache.content, innerParams.input);\n  }\n\n  var fixScrollbar = function fixScrollbar() {\n    // for queues, do not do this more than once\n    if (states.previousBodyPadding !== null) {\n      return;\n    } // if the body has overflow\n\n\n    if (document.body.scrollHeight > window.innerHeight) {\n      // add padding so the content doesn't shift after removal of scrollbar\n      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n      document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n    }\n  };\n  var undoScrollbar = function undoScrollbar() {\n    if (states.previousBodyPadding !== null) {\n      document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n      states.previousBodyPadding = null;\n    }\n  };\n\n  /* istanbul ignore file */\n\n  var iOSfix = function iOSfix() {\n    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n      var offset = document.body.scrollTop;\n      document.body.style.top = \"\".concat(offset * -1, \"px\");\n      addClass(document.body, swalClasses.iosfix);\n      lockBodyScroll();\n      addBottomPaddingForTallPopups(); // #1948\n    }\n  };\n\n  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {\n    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);\n\n    if (safari) {\n      var bottomPanelHeight = 44;\n\n      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n        getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n      }\n    }\n  };\n\n  var lockBodyScroll = function lockBodyScroll() {\n    // #1246\n    var container = getContainer();\n    var preventTouchMove;\n\n    container.ontouchstart = function (e) {\n      preventTouchMove = shouldPreventTouchMove(e);\n    };\n\n    container.ontouchmove = function (e) {\n      if (preventTouchMove) {\n        e.preventDefault();\n        e.stopPropagation();\n      }\n    };\n  };\n\n  var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n    var target = event.target;\n    var container = getContainer();\n\n    if (isStylys(event) || isZoom(event)) {\n      return false;\n    }\n\n    if (target === container) {\n      return true;\n    }\n\n    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n    !(isScrollable(getContent()) && // #1944\n    getContent().contains(target))) {\n      return true;\n    }\n\n    return false;\n  };\n\n  var isStylys = function isStylys(event) {\n    // #1786\n    return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n  };\n\n  var isZoom = function isZoom(event) {\n    // #1891\n    return event.touches && event.touches.length > 1;\n  };\n\n  var undoIOSfix = function undoIOSfix() {\n    if (hasClass(document.body, swalClasses.iosfix)) {\n      var offset = parseInt(document.body.style.top, 10);\n      removeClass(document.body, swalClasses.iosfix);\n      document.body.style.top = '';\n      document.body.scrollTop = offset * -1;\n    }\n  };\n\n  /* istanbul ignore file */\n\n  var isIE11 = function isIE11() {\n    return !!window.MSInputMethodContext && !!document.documentMode;\n  }; // Fix IE11 centering sweetalert2/issues/933\n\n\n  var fixVerticalPositionIE = function fixVerticalPositionIE() {\n    var container = getContainer();\n    var popup = getPopup();\n    container.style.removeProperty('align-items');\n\n    if (popup.offsetTop < 0) {\n      container.style.alignItems = 'flex-start';\n    }\n  };\n\n  var IEfix = function IEfix() {\n    if (typeof window !== 'undefined' && isIE11()) {\n      fixVerticalPositionIE();\n      window.addEventListener('resize', fixVerticalPositionIE);\n    }\n  };\n  var undoIEfix = function undoIEfix() {\n    if (typeof window !== 'undefined' && isIE11()) {\n      window.removeEventListener('resize', fixVerticalPositionIE);\n    }\n  };\n\n  // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n  // elements not within the active modal dialog will not be surfaced if a user opens a screen\n  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n  var setAriaHidden = function setAriaHidden() {\n    var bodyChildren = toArray(document.body.children);\n    bodyChildren.forEach(function (el) {\n      if (el === getContainer() || contains(el, getContainer())) {\n        return;\n      }\n\n      if (el.hasAttribute('aria-hidden')) {\n        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n      }\n\n      el.setAttribute('aria-hidden', 'true');\n    });\n  };\n  var unsetAriaHidden = function unsetAriaHidden() {\n    var bodyChildren = toArray(document.body.children);\n    bodyChildren.forEach(function (el) {\n      if (el.hasAttribute('data-previous-aria-hidden')) {\n        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n        el.removeAttribute('data-previous-aria-hidden');\n      } else {\n        el.removeAttribute('aria-hidden');\n      }\n    });\n  };\n\n  /**\n   * This module containts `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n  var privateMethods = {\n    swalPromiseResolve: new WeakMap()\n  };\n\n  /*\n   * Instance method to close sweetAlert\n   */\n\n  function removePopupAndResetState(instance, container, isToast$$1, didClose) {\n    if (isToast$$1) {\n      triggerDidCloseAndDispose(instance, didClose);\n    } else {\n      restoreActiveElement().then(function () {\n        return triggerDidCloseAndDispose(instance, didClose);\n      });\n      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = false;\n    }\n\n    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {\n      container.parentNode.removeChild(container);\n    }\n\n    if (isModal()) {\n      undoScrollbar();\n      undoIOSfix();\n      undoIEfix();\n      unsetAriaHidden();\n    }\n\n    removeBodyClasses();\n  }\n\n  function removeBodyClasses() {\n    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);\n  }\n\n  function close(resolveValue) {\n    var popup = getPopup();\n\n    if (!popup) {\n      return;\n    }\n\n    resolveValue = prepareResolveValue(resolveValue);\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n      return;\n    }\n\n    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n    removeClass(popup, innerParams.showClass.popup);\n    addClass(popup, innerParams.hideClass.popup);\n    var backdrop = getContainer();\n    removeClass(backdrop, innerParams.showClass.backdrop);\n    addClass(backdrop, innerParams.hideClass.backdrop);\n    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise\n\n    swalPromiseResolve(resolveValue);\n  }\n\n  var prepareResolveValue = function prepareResolveValue(resolveValue) {\n    // When user calls Swal.close()\n    if (typeof resolveValue === 'undefined') {\n      return {\n        isConfirmed: false,\n        isDenied: false,\n        isDismissed: true\n      };\n    }\n\n    return _extends({\n      isConfirmed: false,\n      isDenied: false,\n      isDismissed: false\n    }, resolveValue);\n  };\n\n  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n    var container = getContainer(); // If animation is supported, animate\n\n    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n    var onClose = innerParams.onClose,\n        onAfterClose = innerParams.onAfterClose,\n        willClose = innerParams.willClose,\n        didClose = innerParams.didClose;\n    runDidClose(popup, willClose, onClose);\n\n    if (animationIsSupported) {\n      animatePopup(instance, popup, container, didClose || onAfterClose);\n    } else {\n      // Otherwise, remove immediately\n      removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);\n    }\n  };\n\n  var runDidClose = function runDidClose(popup, willClose, onClose) {\n    if (willClose !== null && typeof willClose === 'function') {\n      willClose(popup);\n    } else if (onClose !== null && typeof onClose === 'function') {\n      onClose(popup); // @deprecated\n    }\n  };\n\n  var animatePopup = function animatePopup(instance, popup, container, didClose) {\n    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);\n    popup.addEventListener(animationEndEvent, function (e) {\n      if (e.target === popup) {\n        globalState.swalCloseEventFinishedCallback();\n        delete globalState.swalCloseEventFinishedCallback;\n      }\n    });\n  };\n\n  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n    setTimeout(function () {\n      if (typeof didClose === 'function') {\n        didClose();\n      }\n\n      instance._destroy();\n    });\n  };\n\n  function setButtonsDisabled(instance, buttons, disabled) {\n    var domCache = privateProps.domCache.get(instance);\n    buttons.forEach(function (button) {\n      domCache[button].disabled = disabled;\n    });\n  }\n\n  function setInputDisabled(input, disabled) {\n    if (!input) {\n      return false;\n    }\n\n    if (input.type === 'radio') {\n      var radiosContainer = input.parentNode.parentNode;\n      var radios = radiosContainer.querySelectorAll('input');\n\n      for (var i = 0; i < radios.length; i++) {\n        radios[i].disabled = disabled;\n      }\n    } else {\n      input.disabled = disabled;\n    }\n  }\n\n  function enableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n  }\n  function disableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n  }\n  function enableInput() {\n    return setInputDisabled(this.getInput(), false);\n  }\n  function disableInput() {\n    return setInputDisabled(this.getInput(), true);\n  }\n\n  function showValidationMessage(error) {\n    var domCache = privateProps.domCache.get(this);\n    var params = privateProps.innerParams.get(this);\n    setInnerHtml(domCache.validationMessage, error);\n    domCache.validationMessage.className = swalClasses['validation-message'];\n\n    if (params.customClass && params.customClass.validationMessage) {\n      addClass(domCache.validationMessage, params.customClass.validationMessage);\n    }\n\n    show(domCache.validationMessage);\n    var input = this.getInput();\n\n    if (input) {\n      input.setAttribute('aria-invalid', true);\n      input.setAttribute('aria-describedBy', swalClasses['validation-message']);\n      focusInput(input);\n      addClass(input, swalClasses.inputerror);\n    }\n  } // Hide block with validation message\n\n  function resetValidationMessage$1() {\n    var domCache = privateProps.domCache.get(this);\n\n    if (domCache.validationMessage) {\n      hide(domCache.validationMessage);\n    }\n\n    var input = this.getInput();\n\n    if (input) {\n      input.removeAttribute('aria-invalid');\n      input.removeAttribute('aria-describedBy');\n      removeClass(input, swalClasses.inputerror);\n    }\n  }\n\n  function getProgressSteps$1() {\n    var domCache = privateProps.domCache.get(this);\n    return domCache.progressSteps;\n  }\n\n  var Timer = /*#__PURE__*/function () {\n    function Timer(callback, delay) {\n      _classCallCheck(this, Timer);\n\n      this.callback = callback;\n      this.remaining = delay;\n      this.running = false;\n      this.start();\n    }\n\n    _createClass(Timer, [{\n      key: \"start\",\n      value: function start() {\n        if (!this.running) {\n          this.running = true;\n          this.started = new Date();\n          this.id = setTimeout(this.callback, this.remaining);\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"stop\",\n      value: function stop() {\n        if (this.running) {\n          this.running = false;\n          clearTimeout(this.id);\n          this.remaining -= new Date() - this.started;\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"increase\",\n      value: function increase(n) {\n        var running = this.running;\n\n        if (running) {\n          this.stop();\n        }\n\n        this.remaining += n;\n\n        if (running) {\n          this.start();\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"getTimerLeft\",\n      value: function getTimerLeft() {\n        if (this.running) {\n          this.stop();\n          this.start();\n        }\n\n        return this.remaining;\n      }\n    }, {\n      key: \"isRunning\",\n      value: function isRunning() {\n        return this.running;\n      }\n    }]);\n\n    return Timer;\n  }();\n\n  var defaultInputValidators = {\n    email: function email(string, validationMessage) {\n      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n    },\n    url: function url(string, validationMessage) {\n      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n      return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n    }\n  };\n\n  function setDefaultInputValidators(params) {\n    // Use default `inputValidator` for supported input types if not provided\n    if (!params.inputValidator) {\n      Object.keys(defaultInputValidators).forEach(function (key) {\n        if (params.input === key) {\n          params.inputValidator = defaultInputValidators[key];\n        }\n      });\n    }\n  }\n\n  function validateCustomTargetElement(params) {\n    // Determine if the custom target element is valid\n    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n      warn('Target parameter is not valid, defaulting to \"body\"');\n      params.target = 'body';\n    }\n  }\n  /**\n   * Set type, text and actions on popup\n   *\n   * @param params\n   * @returns {boolean}\n   */\n\n\n  function setParameters(params) {\n    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n    if (params.showLoaderOnConfirm && !params.preConfirm) {\n      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n    } // params.animation will be actually used in renderPopup.js\n    // but in case when params.animation is a function, we need to call that function\n    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()\n    // inside the params.animation function\n\n\n    params.animation = callIfFunction(params.animation);\n    validateCustomTargetElement(params); // Replace newlines with <br> in title\n\n    if (typeof params.title === 'string') {\n      params.title = params.title.split('\\n').join('<br />');\n    }\n\n    init(params);\n  }\n\n  var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n  var getTemplateParams = function getTemplateParams(params) {\n    var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n    if (!template) {\n      return {};\n    }\n\n    var templateContent = template.content || template; // IE11\n\n    showWarningsForElements(templateContent);\n\n    var result = _extends(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n\n    return result;\n  };\n\n  var getSwalParams = function getSwalParams(templateContent) {\n    var result = {};\n    toArray(templateContent.querySelectorAll('swal-param')).forEach(function (param) {\n      showWarningsForAttributes(param, ['name', 'value']);\n      var paramName = param.getAttribute('name');\n      var value = param.getAttribute('value');\n\n      if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n        value = false;\n      }\n\n      if (_typeof(defaultParams[paramName]) === 'object') {\n        value = JSON.parse(value);\n      }\n\n      result[paramName] = value;\n    });\n    return result;\n  };\n\n  var getSwalButtons = function getSwalButtons(templateContent) {\n    var result = {};\n    toArray(templateContent.querySelectorAll('swal-button')).forEach(function (button) {\n      showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n      var type = button.getAttribute('type');\n      result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n      result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n      if (button.hasAttribute('color')) {\n        result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n      }\n\n      if (button.hasAttribute('aria-label')) {\n        result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n      }\n    });\n    return result;\n  };\n\n  var getSwalImage = function getSwalImage(templateContent) {\n    var result = {};\n    var image = templateContent.querySelector('swal-image');\n\n    if (image) {\n      showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n      if (image.hasAttribute('src')) {\n        result.imageUrl = image.getAttribute('src');\n      }\n\n      if (image.hasAttribute('width')) {\n        result.imageWidth = image.getAttribute('width');\n      }\n\n      if (image.hasAttribute('height')) {\n        result.imageHeight = image.getAttribute('height');\n      }\n\n      if (image.hasAttribute('alt')) {\n        result.imageAlt = image.getAttribute('alt');\n      }\n    }\n\n    return result;\n  };\n\n  var getSwalIcon = function getSwalIcon(templateContent) {\n    var result = {};\n    var icon = templateContent.querySelector('swal-icon');\n\n    if (icon) {\n      showWarningsForAttributes(icon, ['type', 'color']);\n\n      if (icon.hasAttribute('type')) {\n        result.icon = icon.getAttribute('type');\n      }\n\n      if (icon.hasAttribute('color')) {\n        result.iconColor = icon.getAttribute('color');\n      }\n\n      result.iconHtml = icon.innerHTML;\n    }\n\n    return result;\n  };\n\n  var getSwalInput = function getSwalInput(templateContent) {\n    var result = {};\n    var input = templateContent.querySelector('swal-input');\n\n    if (input) {\n      showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n      result.input = input.getAttribute('type') || 'text';\n\n      if (input.hasAttribute('label')) {\n        result.inputLabel = input.getAttribute('label');\n      }\n\n      if (input.hasAttribute('placeholder')) {\n        result.inputPlaceholder = input.getAttribute('placeholder');\n      }\n\n      if (input.hasAttribute('value')) {\n        result.inputValue = input.getAttribute('value');\n      }\n    }\n\n    var inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n    if (inputOptions.length) {\n      result.inputOptions = {};\n      toArray(inputOptions).forEach(function (option) {\n        showWarningsForAttributes(option, ['value']);\n        var optionValue = option.getAttribute('value');\n        var optionName = option.innerHTML;\n        result.inputOptions[optionValue] = optionName;\n      });\n    }\n\n    return result;\n  };\n\n  var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n    var result = {};\n\n    for (var i in paramNames) {\n      var paramName = paramNames[i];\n      var tag = templateContent.querySelector(paramName);\n\n      if (tag) {\n        showWarningsForAttributes(tag, []);\n        result[paramName.replace(/^swal-/, '')] = tag.innerHTML;\n      }\n    }\n\n    return result;\n  };\n\n  var showWarningsForElements = function showWarningsForElements(template) {\n    var allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n    toArray(template.querySelectorAll('*')).forEach(function (el) {\n      if (el.parentNode !== template) {\n        // can't use template.children because of IE11\n        return;\n      }\n\n      var tagName = el.tagName.toLowerCase();\n\n      if (allowedElements.indexOf(tagName) === -1) {\n        warn(\"Unrecognized element <\".concat(tagName, \">\"));\n      }\n    });\n  };\n\n  var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n    toArray(el.attributes).forEach(function (attribute) {\n      if (allowedAttributes.indexOf(attribute.name) === -1) {\n        warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n      }\n    });\n  };\n\n  var SHOW_CLASS_TIMEOUT = 10;\n  /**\n   * Open popup, add necessary classes and styles, fix scrollbar\n   *\n   * @param params\n   */\n\n  var openPopup = function openPopup(params) {\n    var container = getContainer();\n    var popup = getPopup();\n\n    if (typeof params.willOpen === 'function') {\n      params.willOpen(popup);\n    } else if (typeof params.onBeforeOpen === 'function') {\n      params.onBeforeOpen(popup); // @deprecated\n    }\n\n    var bodyStyles = window.getComputedStyle(document.body);\n    var initialBodyOverflow = bodyStyles.overflowY;\n    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n    setTimeout(function () {\n      setScrollingVisibility(container, popup);\n    }, SHOW_CLASS_TIMEOUT);\n\n    if (isModal()) {\n      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n      setAriaHidden();\n    }\n\n    if (!isToast() && !globalState.previousActiveElement) {\n      globalState.previousActiveElement = document.activeElement;\n    }\n\n    runDidOpen(popup, params);\n    removeClass(container, swalClasses['no-transition']);\n  };\n\n  var runDidOpen = function runDidOpen(popup, params) {\n    if (typeof params.didOpen === 'function') {\n      setTimeout(function () {\n        return params.didOpen(popup);\n      });\n    } else if (typeof params.onOpen === 'function') {\n      setTimeout(function () {\n        return params.onOpen(popup);\n      }); // @deprecated\n    }\n  };\n\n  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n    var popup = getPopup();\n\n    if (event.target !== popup) {\n      return;\n    }\n\n    var container = getContainer();\n    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n    container.style.overflowY = 'auto';\n  };\n\n  var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n    if (animationEndEvent && hasCssAnimation(popup)) {\n      container.style.overflowY = 'hidden';\n      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n    } else {\n      container.style.overflowY = 'auto';\n    }\n  };\n\n  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n    iOSfix();\n    IEfix();\n\n    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n      fixScrollbar();\n    } // sweetalert2/issues/1247\n\n\n    setTimeout(function () {\n      container.scrollTop = 0;\n    });\n  };\n\n  var addClasses$1 = function addClasses(container, popup, params) {\n    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059\n\n    popup.style.setProperty('opacity', '0', 'important');\n    show(popup);\n    setTimeout(function () {\n      // Animate popup right after showing it\n      addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n      popup.style.removeProperty('opacity');\n    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n    addClass([document.documentElement, document.body], swalClasses.shown);\n\n    if (params.heightAuto && params.backdrop && !params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['height-auto']);\n    }\n  };\n\n  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n    if (params.input === 'select' || params.input === 'radio') {\n      handleInputOptions(instance, params);\n    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n      handleInputValue(instance, params);\n    }\n  };\n  var getInputValue = function getInputValue(instance, innerParams) {\n    var input = instance.getInput();\n\n    if (!input) {\n      return null;\n    }\n\n    switch (innerParams.input) {\n      case 'checkbox':\n        return getCheckboxValue(input);\n\n      case 'radio':\n        return getRadioValue(input);\n\n      case 'file':\n        return getFileValue(input);\n\n      default:\n        return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n    }\n  };\n\n  var getCheckboxValue = function getCheckboxValue(input) {\n    return input.checked ? 1 : 0;\n  };\n\n  var getRadioValue = function getRadioValue(input) {\n    return input.checked ? input.value : null;\n  };\n\n  var getFileValue = function getFileValue(input) {\n    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n  };\n\n  var handleInputOptions = function handleInputOptions(instance, params) {\n    var content = getContent();\n\n    var processInputOptions = function processInputOptions(inputOptions) {\n      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);\n    };\n\n    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n      showLoading(getConfirmButton());\n      asPromise(params.inputOptions).then(function (inputOptions) {\n        instance.hideLoading();\n        processInputOptions(inputOptions);\n      });\n    } else if (_typeof(params.inputOptions) === 'object') {\n      processInputOptions(params.inputOptions);\n    } else {\n      error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n    }\n  };\n\n  var handleInputValue = function handleInputValue(instance, params) {\n    var input = instance.getInput();\n    hide(input);\n    asPromise(params.inputValue).then(function (inputValue) {\n      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    })[\"catch\"](function (err) {\n      error(\"Error in inputValue promise: \".concat(err));\n      input.value = '';\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    });\n  };\n\n  var populateInputOptions = {\n    select: function select(content, inputOptions, params) {\n      var select = getChildByClass(content, swalClasses.select);\n\n      var renderOption = function renderOption(parent, optionLabel, optionValue) {\n        var option = document.createElement('option');\n        option.value = optionValue;\n        setInnerHtml(option, optionLabel);\n        option.selected = isSelected(optionValue, params.inputValue);\n        parent.appendChild(option);\n      };\n\n      inputOptions.forEach(function (inputOption) {\n        var optionValue = inputOption[0];\n        var optionLabel = inputOption[1]; // <optgroup> spec:\n        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n        // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n        // check whether this is a <optgroup>\n\n        if (Array.isArray(optionLabel)) {\n          // if it is an array, then it is an <optgroup>\n          var optgroup = document.createElement('optgroup');\n          optgroup.label = optionValue;\n          optgroup.disabled = false; // not configurable for now\n\n          select.appendChild(optgroup);\n          optionLabel.forEach(function (o) {\n            return renderOption(optgroup, o[1], o[0]);\n          });\n        } else {\n          // case of <option>\n          renderOption(select, optionLabel, optionValue);\n        }\n      });\n      select.focus();\n    },\n    radio: function radio(content, inputOptions, params) {\n      var radio = getChildByClass(content, swalClasses.radio);\n      inputOptions.forEach(function (inputOption) {\n        var radioValue = inputOption[0];\n        var radioLabel = inputOption[1];\n        var radioInput = document.createElement('input');\n        var radioLabelElement = document.createElement('label');\n        radioInput.type = 'radio';\n        radioInput.name = swalClasses.radio;\n        radioInput.value = radioValue;\n\n        if (isSelected(radioValue, params.inputValue)) {\n          radioInput.checked = true;\n        }\n\n        var label = document.createElement('span');\n        setInnerHtml(label, radioLabel);\n        label.className = swalClasses.label;\n        radioLabelElement.appendChild(radioInput);\n        radioLabelElement.appendChild(label);\n        radio.appendChild(radioLabelElement);\n      });\n      var radios = radio.querySelectorAll('input');\n\n      if (radios.length) {\n        radios[0].focus();\n      }\n    }\n  };\n  /**\n   * Converts `inputOptions` into an array of `[value, label]`s\n   * @param inputOptions\n   */\n\n  var formatInputOptions = function formatInputOptions(inputOptions) {\n    var result = [];\n\n    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {\n      inputOptions.forEach(function (value, key) {\n        var valueFormatted = value;\n\n        if (_typeof(valueFormatted) === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n\n        result.push([key, valueFormatted]);\n      });\n    } else {\n      Object.keys(inputOptions).forEach(function (key) {\n        var valueFormatted = inputOptions[key];\n\n        if (_typeof(valueFormatted) === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n\n        result.push([key, valueFormatted]);\n      });\n    }\n\n    return result;\n  };\n\n  var isSelected = function isSelected(optionValue, inputValue) {\n    return inputValue && inputValue.toString() === optionValue.toString();\n  };\n\n  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {\n    instance.disableButtons();\n\n    if (innerParams.input) {\n      handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');\n    } else {\n      confirm(instance, innerParams, true);\n    }\n  };\n  var handleDenyButtonClick = function handleDenyButtonClick(instance, innerParams) {\n    instance.disableButtons();\n\n    if (innerParams.returnInputValueOnDeny) {\n      handleConfirmOrDenyWithInput(instance, innerParams, 'deny');\n    } else {\n      deny(instance, innerParams, false);\n    }\n  };\n  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n    instance.disableButtons();\n    dismissWith(DismissReason.cancel);\n  };\n\n  var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, innerParams, type\n  /* type is either 'confirm' or 'deny' */\n  ) {\n    var inputValue = getInputValue(instance, innerParams);\n\n    if (innerParams.inputValidator) {\n      handleInputValidator(instance, innerParams, inputValue);\n    } else if (!instance.getInput().checkValidity()) {\n      instance.enableButtons();\n      instance.showValidationMessage(innerParams.validationMessage);\n    } else if (type === 'deny') {\n      deny(instance, innerParams, inputValue);\n    } else {\n      confirm(instance, innerParams, inputValue);\n    }\n  };\n\n  var handleInputValidator = function handleInputValidator(instance, innerParams, inputValue) {\n    instance.disableInput();\n    var validationPromise = Promise.resolve().then(function () {\n      return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n    });\n    validationPromise.then(function (validationMessage) {\n      instance.enableButtons();\n      instance.enableInput();\n\n      if (validationMessage) {\n        instance.showValidationMessage(validationMessage);\n      } else {\n        confirm(instance, innerParams, inputValue);\n      }\n    });\n  };\n\n  var deny = function deny(instance, innerParams, value) {\n    if (innerParams.showLoaderOnDeny) {\n      showLoading(getDenyButton());\n    }\n\n    if (innerParams.preDeny) {\n      var preDenyPromise = Promise.resolve().then(function () {\n        return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n      });\n      preDenyPromise.then(function (preDenyValue) {\n        if (preDenyValue === false) {\n          instance.hideLoading();\n        } else {\n          instance.closePopup({\n            isDenied: true,\n            value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n          });\n        }\n      });\n    } else {\n      instance.closePopup({\n        isDenied: true,\n        value: value\n      });\n    }\n  };\n\n  var succeedWith = function succeedWith(instance, value) {\n    instance.closePopup({\n      isConfirmed: true,\n      value: value\n    });\n  };\n\n  var confirm = function confirm(instance, innerParams, value) {\n    if (innerParams.showLoaderOnConfirm) {\n      showLoading(); // TODO: make showLoading an *instance* method\n    }\n\n    if (innerParams.preConfirm) {\n      instance.resetValidationMessage();\n      var preConfirmPromise = Promise.resolve().then(function () {\n        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n      });\n      preConfirmPromise.then(function (preConfirmValue) {\n        if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n          instance.hideLoading();\n        } else {\n          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n        }\n      });\n    } else {\n      succeedWith(instance, value);\n    }\n  };\n\n  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {\n    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = false;\n    }\n\n    if (!innerParams.toast) {\n      globalState.keydownHandler = function (e) {\n        return keydownHandler(instance, e, dismissWith);\n      };\n\n      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = true;\n    }\n  }; // Focus handling\n\n  var setFocus = function setFocus(innerParams, index, increment) {\n    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n    if (focusableElements.length) {\n      index = index + increment; // rollover to first item\n\n      if (index === focusableElements.length) {\n        index = 0; // go to last item\n      } else if (index === -1) {\n        index = focusableElements.length - 1;\n      }\n\n      return focusableElements[index].focus();\n    } // no visible focusable elements, focus the popup\n\n\n    getPopup().focus();\n  };\n  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11\n  ];\n  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11\n  ];\n  var escKeys = ['Escape', 'Esc' // IE11\n  ];\n\n  var keydownHandler = function keydownHandler(instance, e, dismissWith) {\n    var innerParams = privateProps.innerParams.get(instance);\n\n    if (innerParams.stopKeydownPropagation) {\n      e.stopPropagation();\n    } // ENTER\n\n\n    if (e.key === 'Enter') {\n      handleEnter(instance, e, innerParams); // TAB\n    } else if (e.key === 'Tab') {\n      handleTab(e, innerParams); // ARROWS - switch focus between buttons\n    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {\n      handleArrows(e.key); // ESC\n    } else if (escKeys.indexOf(e.key) !== -1) {\n      handleEsc(e, innerParams, dismissWith);\n    }\n  };\n\n  var handleEnter = function handleEnter(instance, e, innerParams) {\n    // #720 #721\n    if (e.isComposing) {\n      return;\n    }\n\n    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {\n        return; // do not submit\n      }\n\n      clickConfirm();\n      e.preventDefault();\n    }\n  };\n\n  var handleTab = function handleTab(e, innerParams) {\n    var targetElement = e.target;\n    var focusableElements = getFocusableElements();\n    var btnIndex = -1;\n\n    for (var i = 0; i < focusableElements.length; i++) {\n      if (targetElement === focusableElements[i]) {\n        btnIndex = i;\n        break;\n      }\n    }\n\n    if (!e.shiftKey) {\n      // Cycle to the next button\n      setFocus(innerParams, btnIndex, 1);\n    } else {\n      // Cycle to the prev button\n      setFocus(innerParams, btnIndex, -1);\n    }\n\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  var handleArrows = function handleArrows(key) {\n    var confirmButton = getConfirmButton();\n    var denyButton = getDenyButton();\n    var cancelButton = getCancelButton();\n\n    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {\n      return;\n    }\n\n    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';\n    var buttonToFocus = document.activeElement[sibling];\n\n    if (buttonToFocus) {\n      buttonToFocus.focus();\n    }\n  };\n\n  var handleEsc = function handleEsc(e, innerParams, dismissWith) {\n    if (callIfFunction(innerParams.allowEscapeKey)) {\n      e.preventDefault();\n      dismissWith(DismissReason.esc);\n    }\n  };\n\n  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {\n    var innerParams = privateProps.innerParams.get(instance);\n\n    if (innerParams.toast) {\n      handleToastClick(instance, domCache, dismissWith);\n    } else {\n      // Ignore click events that had mousedown on the popup but mouseup on the container\n      // This can happen when the user drags a slider\n      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n      handleContainerMousedown(domCache);\n      handleModalClick(instance, domCache, dismissWith);\n    }\n  };\n\n  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {\n    // Closing toast by internal click\n    domCache.popup.onclick = function () {\n      var innerParams = privateProps.innerParams.get(instance);\n\n      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {\n        return;\n      }\n\n      dismissWith(DismissReason.close);\n    };\n  };\n\n  var ignoreOutsideClick = false;\n\n  var handleModalMousedown = function handleModalMousedown(domCache) {\n    domCache.popup.onmousedown = function () {\n      domCache.container.onmouseup = function (e) {\n        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n        // have any other direct children aside of the popup\n\n        if (e.target === domCache.container) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  var handleContainerMousedown = function handleContainerMousedown(domCache) {\n    domCache.container.onmousedown = function () {\n      domCache.popup.onmouseup = function (e) {\n        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {\n    domCache.container.onclick = function (e) {\n      var innerParams = privateProps.innerParams.get(instance);\n\n      if (ignoreOutsideClick) {\n        ignoreOutsideClick = false;\n        return;\n      }\n\n      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n        dismissWith(DismissReason.backdrop);\n      }\n    };\n  };\n\n  function _main(userParams) {\n    var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    showWarningsForParams(_extends({}, mixinParams, userParams));\n\n    if (globalState.currentInstance) {\n      globalState.currentInstance._destroy();\n    }\n\n    globalState.currentInstance = this;\n    var innerParams = prepareParams(userParams, mixinParams);\n    setParameters(innerParams);\n    Object.freeze(innerParams); // clear the previous timer\n\n    if (globalState.timeout) {\n      globalState.timeout.stop();\n      delete globalState.timeout;\n    } // clear the restore focus timeout\n\n\n    clearTimeout(globalState.restoreFocusTimeout);\n    var domCache = populateDomCache(this);\n    render(this, innerParams);\n    privateProps.innerParams.set(this, innerParams);\n    return swalPromise(this, domCache, innerParams);\n  }\n\n  var prepareParams = function prepareParams(userParams, mixinParams) {\n    var templateParams = getTemplateParams(userParams);\n\n    var showClass = _extends({}, defaultParams.showClass, mixinParams.showClass, templateParams.showClass, userParams.showClass);\n\n    var hideClass = _extends({}, defaultParams.hideClass, mixinParams.hideClass, templateParams.hideClass, userParams.hideClass);\n\n    var params = _extends({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n\n    params.showClass = showClass;\n    params.hideClass = hideClass; // @deprecated\n\n    if (userParams.animation === false) {\n      params.showClass = {\n        popup: 'swal2-noanimation',\n        backdrop: 'swal2-noanimation'\n      };\n      params.hideClass = {};\n    }\n\n    return params;\n  };\n\n  var swalPromise = function swalPromise(instance, domCache, innerParams) {\n    return new Promise(function (resolve) {\n      // functions to handle all closings/dismissals\n      var dismissWith = function dismissWith(dismiss) {\n        instance.closePopup({\n          isDismissed: true,\n          dismiss: dismiss\n        });\n      };\n\n      privateMethods.swalPromiseResolve.set(instance, resolve);\n\n      domCache.confirmButton.onclick = function () {\n        return handleConfirmButtonClick(instance, innerParams);\n      };\n\n      domCache.denyButton.onclick = function () {\n        return handleDenyButtonClick(instance, innerParams);\n      };\n\n      domCache.cancelButton.onclick = function () {\n        return handleCancelButtonClick(instance, dismissWith);\n      };\n\n      domCache.closeButton.onclick = function () {\n        return dismissWith(DismissReason.close);\n      };\n\n      handlePopupClick(instance, domCache, dismissWith);\n      addKeydownHandler(instance, globalState, innerParams, dismissWith);\n\n      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {\n        addClass(document.body, swalClasses['toast-column']);\n      } else {\n        removeClass(document.body, swalClasses['toast-column']);\n      }\n\n      handleInputOptionsAndValue(instance, innerParams);\n      openPopup(innerParams);\n      setupTimer(globalState, innerParams, dismissWith);\n      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n      setTimeout(function () {\n        domCache.container.scrollTop = 0;\n      });\n    });\n  };\n\n  var populateDomCache = function populateDomCache(instance) {\n    var domCache = {\n      popup: getPopup(),\n      container: getContainer(),\n      content: getContent(),\n      actions: getActions(),\n      confirmButton: getConfirmButton(),\n      denyButton: getDenyButton(),\n      cancelButton: getCancelButton(),\n      loader: getLoader(),\n      closeButton: getCloseButton(),\n      validationMessage: getValidationMessage(),\n      progressSteps: getProgressSteps()\n    };\n    privateProps.domCache.set(instance, domCache);\n    return domCache;\n  };\n\n  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {\n    var timerProgressBar = getTimerProgressBar();\n    hide(timerProgressBar);\n\n    if (innerParams.timer) {\n      globalState$$1.timeout = new Timer(function () {\n        dismissWith('timer');\n        delete globalState$$1.timeout;\n      }, innerParams.timer);\n\n      if (innerParams.timerProgressBar) {\n        show(timerProgressBar);\n        setTimeout(function () {\n          if (globalState$$1.timeout && globalState$$1.timeout.running) {\n            // timer can be already stopped or unset at this point\n            animateTimerProgressBar(innerParams.timer);\n          }\n        });\n      }\n    }\n  };\n\n  var initFocus = function initFocus(domCache, innerParams) {\n    if (innerParams.toast) {\n      return;\n    }\n\n    if (!callIfFunction(innerParams.allowEnterKey)) {\n      return blurActiveElement();\n    }\n\n    if (!focusButton(domCache, innerParams)) {\n      setFocus(innerParams, -1, 1);\n    }\n  };\n\n  var focusButton = function focusButton(domCache, innerParams) {\n    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n      domCache.denyButton.focus();\n      return true;\n    }\n\n    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n      domCache.cancelButton.focus();\n      return true;\n    }\n\n    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n      domCache.confirmButton.focus();\n      return true;\n    }\n\n    return false;\n  };\n\n  var blurActiveElement = function blurActiveElement() {\n    if (document.activeElement && typeof document.activeElement.blur === 'function') {\n      document.activeElement.blur();\n    }\n  };\n\n  /**\n   * Updates popup parameters.\n   */\n\n  function update(params) {\n    var popup = getPopup();\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n      return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n    }\n\n    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`\n\n    Object.keys(params).forEach(function (param) {\n      if (Swal.isUpdatableParameter(param)) {\n        validUpdatableParams[param] = params[param];\n      } else {\n        warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md\"));\n      }\n    });\n\n    var updatedParams = _extends({}, innerParams, validUpdatableParams);\n\n    render(this, updatedParams);\n    privateProps.innerParams.set(this, updatedParams);\n    Object.defineProperties(this, {\n      params: {\n        value: _extends({}, this.params, params),\n        writable: false,\n        enumerable: true\n      }\n    });\n  }\n\n  function _destroy() {\n    var domCache = privateProps.domCache.get(this);\n    var innerParams = privateProps.innerParams.get(this);\n\n    if (!innerParams) {\n      return; // This instance has already been destroyed\n    } // Check if there is another Swal closing\n\n\n    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n      globalState.swalCloseEventFinishedCallback();\n      delete globalState.swalCloseEventFinishedCallback;\n    } // Check if there is a swal disposal defer timer\n\n\n    if (globalState.deferDisposalTimer) {\n      clearTimeout(globalState.deferDisposalTimer);\n      delete globalState.deferDisposalTimer;\n    }\n\n    runDidDestroy(innerParams);\n    disposeSwal(this);\n  }\n\n  var runDidDestroy = function runDidDestroy(innerParams) {\n    if (typeof innerParams.didDestroy === 'function') {\n      innerParams.didDestroy();\n    } else if (typeof innerParams.onDestroy === 'function') {\n      innerParams.onDestroy(); // @deprecated\n    }\n  };\n\n  var disposeSwal = function disposeSwal(instance) {\n    // Unset this.params so GC will dispose it (#1569)\n    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n    delete globalState.keydownHandler;\n    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n    unsetWeakMaps(privateProps);\n    unsetWeakMaps(privateMethods);\n  };\n\n  var unsetWeakMaps = function unsetWeakMaps(obj) {\n    for (var i in obj) {\n      obj[i] = new WeakMap();\n    }\n  };\n\n\n\n  var instanceMethods = /*#__PURE__*/Object.freeze({\n    hideLoading: hideLoading,\n    disableLoading: hideLoading,\n    getInput: getInput$1,\n    close: close,\n    closePopup: close,\n    closeModal: close,\n    closeToast: close,\n    enableButtons: enableButtons,\n    disableButtons: disableButtons,\n    enableInput: enableInput,\n    disableInput: disableInput,\n    showValidationMessage: showValidationMessage,\n    resetValidationMessage: resetValidationMessage$1,\n    getProgressSteps: getProgressSteps$1,\n    _main: _main,\n    update: update,\n    _destroy: _destroy\n  });\n\n  var currentInstance;\n\n  var SweetAlert = /*#__PURE__*/function () {\n    function SweetAlert() {\n      _classCallCheck(this, SweetAlert);\n\n      // Prevent run in Node env\n      if (typeof window === 'undefined') {\n        return;\n      } // Check for the existence of Promise\n\n\n      if (typeof Promise === 'undefined') {\n        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');\n      }\n\n      currentInstance = this;\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var outerParams = Object.freeze(this.constructor.argsToParams(args));\n      Object.defineProperties(this, {\n        params: {\n          value: outerParams,\n          writable: false,\n          enumerable: true,\n          configurable: true\n        }\n      });\n\n      var promise = this._main(this.params);\n\n      privateProps.promise.set(this, promise);\n    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n    _createClass(SweetAlert, [{\n      key: \"then\",\n      value: function then(onFulfilled) {\n        var promise = privateProps.promise.get(this);\n        return promise.then(onFulfilled);\n      }\n    }, {\n      key: \"finally\",\n      value: function _finally(onFinally) {\n        var promise = privateProps.promise.get(this);\n        return promise[\"finally\"](onFinally);\n      }\n    }]);\n\n    return SweetAlert;\n  }(); // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n\n  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n\n  Object.keys(instanceMethods).forEach(function (key) {\n    SweetAlert[key] = function () {\n      if (currentInstance) {\n        var _currentInstance;\n\n        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n      }\n    };\n  });\n  SweetAlert.DismissReason = DismissReason;\n  SweetAlert.version = '10.15.6';\n\n  var Swal = SweetAlert;\n  Swal[\"default\"] = Swal;\n\n  return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.css",
    "content": "/*\n* @sweetalert2/themes v4.0.3\n* Released under the MIT License.\n*/\n\n@-webkit-keyframes fadeInDown {\n  from {\n    transform: translate3d(0, -100%, 0);\n    opacity: 0; }\n  to {\n    transform: translate3d(0, 0, 0);\n    opacity: 1; } }\n\n@keyframes fadeInDown {\n  from {\n    transform: translate3d(0, -100%, 0);\n    opacity: 0; }\n  to {\n    transform: translate3d(0, 0, 0);\n    opacity: 1; } }\n\n@-webkit-keyframes fadeOutUp {\n  from {\n    opacity: 1; }\n  to {\n    transform: translate3d(0, -100%, 0);\n    opacity: 0; } }\n\n@keyframes fadeOutUp {\n  from {\n    opacity: 1; }\n  to {\n    transform: translate3d(0, -100%, 0);\n    opacity: 0; } }\n\n.swal2-popup.swal2-toast {\n  flex-direction: row;\n  align-items: center;\n  width: auto;\n  padding: 0.75rem 0.25rem;\n  overflow-y: hidden;\n  background: #fff;\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); }\n  .swal2-popup.swal2-toast .swal2-header {\n    flex-direction: row;\n    padding: 0; }\n  .swal2-popup.swal2-toast .swal2-title {\n    flex-grow: 1;\n    justify-content: flex-start;\n    margin: 0 0.6em;\n    font-size: 0.875rem; }\n  .swal2-popup.swal2-toast .swal2-footer {\n    margin: 0.5em 0 0;\n    padding: 0.5em 0 0;\n    font-size: 0.8em; }\n  .swal2-popup.swal2-toast .swal2-close {\n    position: static;\n    width: 0.8em;\n    height: 0.8em;\n    line-height: 0.8; }\n  .swal2-popup.swal2-toast .swal2-content {\n    justify-content: flex-start;\n    padding: 0;\n    font-size: 0.875rem; }\n  .swal2-popup.swal2-toast .swal2-icon {\n    width: 2em;\n    min-width: 2em;\n    height: 2em;\n    margin: 0; }\n    .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n      display: flex;\n      align-items: center;\n      font-size: 1.8em;\n      font-weight: bold; }\n      @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n        .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n          font-size: .25em; } }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n      width: 2em;\n      height: 2em; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      top: .875em;\n      width: 1.375em; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: .3125em; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: .3125em; }\n  .swal2-popup.swal2-toast .swal2-actions {\n    flex-basis: auto !important;\n    width: auto;\n    height: auto;\n    margin: 0 .3125em;\n    padding: 0; }\n  .swal2-popup.swal2-toast .swal2-styled {\n    margin: .125em .3125em;\n    padding: .3125em .625em;\n    font-size: 0.875rem; }\n    .swal2-popup.swal2-toast .swal2-styled:focus {\n      box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5); }\n  .swal2-popup.swal2-toast .swal2-success {\n    border-color: #28a745; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 1.6em;\n      height: 3em;\n      transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -.8em;\n        left: -.5em;\n        transform: rotate(-45deg);\n        transform-origin: 2em 2em;\n        border-radius: 4em 0 0 4em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -.25em;\n        left: .9375em;\n        transform-origin: 0 1.5em;\n        border-radius: 0 4em 4em 0; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n      width: 2em;\n      height: 2em; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n      top: 0;\n      left: .4375em;\n      width: .4375em;\n      height: 2.6875em; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n      height: .3125em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 1.125em;\n        left: .1875em;\n        width: .75em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: .9375em;\n        right: .1875em;\n        width: 1.375em; }\n    .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {\n      -webkit-animation: swal2-toast-animate-success-line-tip .75s;\n              animation: swal2-toast-animate-success-line-tip .75s; }\n    .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {\n      -webkit-animation: swal2-toast-animate-success-line-long .75s;\n              animation: swal2-toast-animate-success-line-long .75s; }\n  .swal2-popup.swal2-toast.swal2-show {\n    -webkit-animation: swal2-toast-show 0.5s;\n            animation: swal2-toast-show 0.5s; }\n  .swal2-popup.swal2-toast.swal2-hide {\n    -webkit-animation: swal2-toast-hide 0.1s forwards;\n            animation: swal2-toast-hide 0.1s forwards; }\n\n.swal2-container {\n  display: flex;\n  position: fixed;\n  z-index: 1060;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  padding: 0.625em;\n  overflow-x: hidden;\n  transition: background-color 0.5s;\n  -webkit-overflow-scrolling: touch; }\n  .swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {\n    background: rgba(0, 0, 0, 0.5); }\n  .swal2-container.swal2-backdrop-hide {\n    background: transparent !important; }\n  .swal2-container.swal2-top {\n    align-items: flex-start; }\n  .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n    align-items: flex-start;\n    justify-content: flex-start; }\n  .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n    align-items: flex-start;\n    justify-content: flex-end; }\n  .swal2-container.swal2-center {\n    align-items: center; }\n  .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n    align-items: center;\n    justify-content: flex-start; }\n  .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n    align-items: center;\n    justify-content: flex-end; }\n  .swal2-container.swal2-bottom {\n    align-items: flex-end; }\n  .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n    align-items: flex-end;\n    justify-content: flex-start; }\n  .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n    align-items: flex-end;\n    justify-content: flex-end; }\n  .swal2-container.swal2-bottom > :first-child,\n  .swal2-container.swal2-bottom-start > :first-child,\n  .swal2-container.swal2-bottom-left > :first-child,\n  .swal2-container.swal2-bottom-end > :first-child,\n  .swal2-container.swal2-bottom-right > :first-child {\n    margin-top: auto; }\n  .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n    display: flex !important;\n    flex: 1;\n    align-self: stretch;\n    justify-content: center; }\n  .swal2-container.swal2-grow-row > .swal2-modal {\n    display: flex !important;\n    flex: 1;\n    align-content: center;\n    justify-content: center; }\n  .swal2-container.swal2-grow-column {\n    flex: 1;\n    flex-direction: column; }\n    .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n      align-items: center; }\n    .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n      align-items: flex-start; }\n    .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n      align-items: flex-end; }\n    .swal2-container.swal2-grow-column > .swal2-modal {\n      display: flex !important;\n      flex: 1;\n      align-content: center;\n      justify-content: center; }\n  .swal2-container.swal2-no-transition {\n    transition: none !important; }\n  .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {\n    margin: auto; }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .swal2-container .swal2-modal {\n      margin: 0 !important; } }\n\n.swal2-popup {\n  display: none;\n  position: relative;\n  box-sizing: border-box;\n  flex-direction: column;\n  justify-content: center;\n  width: 32em;\n  max-width: 100%;\n  padding: 1rem;\n  border: none;\n  border-radius: 0.3rem;\n  background: #fff;\n  font-family: inherit;\n  font-size: 1rem; }\n  .swal2-popup:focus {\n    outline: none; }\n  .swal2-popup.swal2-loading {\n    overflow-y: hidden; }\n\n.swal2-header {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: 0 1.8em; }\n\n.swal2-title {\n  position: relative;\n  max-width: 100%;\n  margin: 0 0 0.4em;\n  padding: 0;\n  color: #595959;\n  font-size: 1.875em;\n  font-weight: 600;\n  text-align: center;\n  text-transform: none;\n  word-wrap: break-word; }\n\n.swal2-actions {\n  display: flex;\n  z-index: 1;\n  box-sizing: border-box;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  margin: 1.25em auto 0;\n  padding: 0 1.6em; }\n  .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n    opacity: .4; }\n  .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n    background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n  .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n    background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n\n.swal2-loader {\n  display: none;\n  align-items: center;\n  justify-content: center;\n  width: 2.2em;\n  height: 2.2em;\n  margin: 0 1.875em;\n  -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n          animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n  border-width: 0.25em;\n  border-style: solid;\n  border-radius: 100%;\n  border-color: #2778c4 transparent #2778c4 transparent; }\n\n.swal2-styled {\n  margin: 0.3125em;\n  padding: 0.625em 1.1em;\n  box-shadow: none;\n  font-weight: 500; }\n  .swal2-styled:not([disabled]) {\n    cursor: pointer; }\n  .swal2-styled.swal2-confirm {\n    border: 0;\n    border-radius: 0.25em;\n    background: initial;\n    background-color: #007bff;\n    color: #fff;\n    font-size: 1.0625em; }\n  .swal2-styled.swal2-deny {\n    border: 0;\n    border-radius: 0.25em;\n    background: initial;\n    background-color: #d14529;\n    color: #fff;\n    font-size: 1.0625em; }\n  .swal2-styled.swal2-cancel {\n    border: 0;\n    border-radius: 0.25em;\n    background: initial;\n    background-color: #6c757d;\n    color: #fff;\n    font-size: 1.0625em; }\n  .swal2-styled:focus {\n    outline: none;\n    box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n  .swal2-styled::-moz-focus-inner {\n    border: 0; }\n\n.swal2-footer {\n  justify-content: center;\n  margin: 1.25em 0 0;\n  padding: 1em 0 0;\n  border-top: 1px solid #eee;\n  color: #545454;\n  font-size: 1em; }\n\n.swal2-timer-progress-bar-container {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  height: 0.25em;\n  overflow: hidden;\n  border-bottom-right-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem; }\n\n.swal2-timer-progress-bar {\n  width: 100%;\n  height: 0.25em;\n  background: rgba(0, 0, 0, 0.2); }\n\n.swal2-image {\n  max-width: 100%;\n  margin: 1.25em auto; }\n\n.swal2-close {\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  right: 0;\n  align-items: center;\n  justify-content: center;\n  width: 2em;\n  height: 2em;\n  padding: 0;\n  overflow: hidden;\n  transition: color 0.1s ease-out;\n  border: none;\n  border-radius: 5px;\n  background: transparent;\n  color: rgba(0, 0, 0, 0.5);\n  font-family: serif;\n  font-size: 1.5rem;\n  line-height: 1;\n  cursor: pointer; }\n  .swal2-close:hover {\n    transform: none;\n    background: transparent;\n    color: #000; }\n  .swal2-close:focus {\n    outline: none;\n    box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); }\n  .swal2-close::-moz-focus-inner {\n    border: 0; }\n\n.swal2-content {\n  z-index: 1;\n  justify-content: center;\n  margin: 0;\n  padding: 0 1.6em;\n  color: #545454;\n  font-size: 1.125em;\n  font-weight: normal;\n  line-height: normal;\n  text-align: center;\n  word-wrap: break-word; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea,\n.swal2-select,\n.swal2-radio,\n.swal2-checkbox {\n  margin: 1em auto; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea {\n  box-sizing: border-box;\n  width: 100%;\n  transition: border-color 0.3s, box-shadow 0.3s;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  background: inherit;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n  color: inherit;\n  font-size: 1rem; }\n  .swal2-input.swal2-inputerror,\n  .swal2-file.swal2-inputerror,\n  .swal2-textarea.swal2-inputerror {\n    border-color: #dc3545 !important;\n    box-shadow: 0 0 2px #dc3545 !important; }\n  .swal2-input:focus,\n  .swal2-file:focus,\n  .swal2-textarea:focus {\n    border: 1px solid #b4dbed;\n    outline: none;\n    box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n  .swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder {\n    color: #cccccc; }\n  .swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder {\n    color: #cccccc; }\n  .swal2-input::placeholder,\n  .swal2-file::placeholder,\n  .swal2-textarea::placeholder {\n    color: #cccccc; }\n\n.swal2-range {\n  margin: 1em auto;\n  background: #fff; }\n  .swal2-range input {\n    width: 80%; }\n  .swal2-range output {\n    width: 20%;\n    color: inherit;\n    font-weight: 600;\n    text-align: center; }\n  .swal2-range input,\n  .swal2-range output {\n    height: 2.625em;\n    padding: 0;\n    font-size: 1rem;\n    line-height: 2.625em; }\n\n.swal2-input {\n  height: 2.625em;\n  padding: 0.375rem 0.75rem; }\n  .swal2-input[type='number'] {\n    max-width: 10em; }\n\n.swal2-file {\n  background: inherit;\n  font-size: 1rem; }\n\n.swal2-textarea {\n  height: 6.75em;\n  padding: 0.75em; }\n\n.swal2-select {\n  min-width: 50%;\n  max-width: 100%;\n  padding: .375em .625em;\n  background: inherit;\n  color: inherit;\n  font-size: 1rem; }\n\n.swal2-radio,\n.swal2-checkbox {\n  align-items: center;\n  justify-content: center;\n  background: #fff;\n  color: inherit; }\n  .swal2-radio label,\n  .swal2-checkbox label {\n    margin: 0 .6em;\n    font-size: 1rem; }\n  .swal2-radio input,\n  .swal2-checkbox input {\n    margin: 0 .4em; }\n\n.swal2-input-label {\n  display: flex;\n  justify-content: center;\n  margin: 1em auto; }\n\n.swal2-validation-message {\n  display: none;\n  align-items: center;\n  justify-content: center;\n  margin: 0 -2.7em;\n  padding: 0.625em;\n  overflow: hidden;\n  background: #f0f0f0;\n  color: #666666;\n  font-size: 1em;\n  font-weight: 300; }\n  .swal2-validation-message::before {\n    content: '!';\n    display: inline-block;\n    width: 1.5em;\n    min-width: 1.5em;\n    height: 1.5em;\n    margin: 0 .625em;\n    border-radius: 50%;\n    background-color: #f27474;\n    color: #fff;\n    font-weight: 600;\n    line-height: 1.5em;\n    text-align: center; }\n\n.swal2-icon {\n  position: relative;\n  box-sizing: content-box;\n  justify-content: center;\n  width: 5em;\n  height: 5em;\n  margin: 1.25em auto 1.875em;\n  border: 0.25em solid transparent;\n  border-radius: 50%;\n  font-family: inherit;\n  line-height: 5em;\n  cursor: default;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n  .swal2-icon .swal2-icon-content {\n    display: flex;\n    align-items: center;\n    font-size: 3.75em; }\n  .swal2-icon.swal2-error {\n    border-color: #dc3545;\n    color: #dc3545; }\n    .swal2-icon.swal2-error .swal2-x-mark {\n      position: relative;\n      flex-grow: 1; }\n    .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      display: block;\n      position: absolute;\n      top: 2.3125em;\n      width: 2.9375em;\n      height: .3125em;\n      border-radius: .125em;\n      background-color: #dc3545; }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: 1.0625em;\n        transform: rotate(45deg); }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: 1em;\n        transform: rotate(-45deg); }\n    .swal2-icon.swal2-error.swal2-icon-show {\n      -webkit-animation: swal2-animate-error-icon .5s;\n              animation: swal2-animate-error-icon .5s; }\n      .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {\n        -webkit-animation: swal2-animate-error-x-mark .5s;\n                animation: swal2-animate-error-x-mark .5s; }\n  .swal2-icon.swal2-warning {\n    border-color: #ffca2b;\n    color: #ffc107; }\n  .swal2-icon.swal2-info {\n    border-color: #4cd3e9;\n    color: #17a2b8; }\n  .swal2-icon.swal2-question {\n    border-color: #a1a8ae;\n    color: #6c757d; }\n  .swal2-icon.swal2-success {\n    border-color: #28a745;\n    color: #28a745; }\n    .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 3.75em;\n      height: 7.5em;\n      transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -.4375em;\n        left: -2.0635em;\n        transform: rotate(-45deg);\n        transform-origin: 3.75em 3.75em;\n        border-radius: 7.5em 0 0 7.5em; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -.6875em;\n        left: 1.875em;\n        transform: rotate(-45deg);\n        transform-origin: 0 3.75em;\n        border-radius: 0 7.5em 7.5em 0; }\n    .swal2-icon.swal2-success .swal2-success-ring {\n      position: absolute;\n      z-index: 2;\n      top: -.25em;\n      left: -.25em;\n      box-sizing: content-box;\n      width: 100%;\n      height: 100%;\n      border: 0.25em solid rgba(165, 220, 134, 0.3);\n      border-radius: 50%; }\n    .swal2-icon.swal2-success .swal2-success-fix {\n      position: absolute;\n      z-index: 1;\n      top: .5em;\n      left: 1.625em;\n      width: .4375em;\n      height: 5.625em;\n      transform: rotate(-45deg); }\n    .swal2-icon.swal2-success [class^='swal2-success-line'] {\n      display: block;\n      position: absolute;\n      z-index: 2;\n      height: .3125em;\n      border-radius: .125em;\n      background-color: #28a745; }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 2.875em;\n        left: .8125em;\n        width: 1.5625em;\n        transform: rotate(45deg); }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: 2.375em;\n        right: .5em;\n        width: 2.9375em;\n        transform: rotate(-45deg); }\n    .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {\n      -webkit-animation: swal2-animate-success-line-tip .75s;\n              animation: swal2-animate-success-line-tip .75s; }\n    .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {\n      -webkit-animation: swal2-animate-success-line-long .75s;\n              animation: swal2-animate-success-line-long .75s; }\n    .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {\n      -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;\n              animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n\n.swal2-progress-steps {\n  flex-wrap: wrap;\n  align-items: center;\n  max-width: 100%;\n  margin: 0 0 1.25em;\n  padding: 0;\n  background: inherit;\n  font-weight: 600; }\n  .swal2-progress-steps li {\n    display: inline-block;\n    position: relative; }\n  .swal2-progress-steps .swal2-progress-step {\n    z-index: 20;\n    flex-shrink: 0;\n    width: 2em;\n    height: 2em;\n    border-radius: 2em;\n    background: #2778c4;\n    color: #fff;\n    line-height: 2em;\n    text-align: center; }\n    .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {\n      background: #2778c4; }\n      .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {\n        background: #add8e6;\n        color: #fff; }\n      .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {\n        background: #add8e6; }\n  .swal2-progress-steps .swal2-progress-step-line {\n    z-index: 10;\n    flex-shrink: 0;\n    width: 2.5em;\n    height: .4em;\n    margin: 0 -1px;\n    background: #2778c4; }\n\n[class^='swal2'] {\n  -webkit-tap-highlight-color: transparent; }\n\n.swal2-show {\n  -webkit-animation: fadeInDown 0.5s;\n          animation: fadeInDown 0.5s; }\n\n.swal2-hide {\n  -webkit-animation: fadeOutUp 0.5s;\n          animation: fadeOutUp 0.5s; }\n\n.swal2-noanimation {\n  transition: none; }\n\n.swal2-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll; }\n\n.swal2-rtl .swal2-close {\n  right: auto;\n  left: 0; }\n\n.swal2-rtl .swal2-timer-progress-bar {\n  right: 0;\n  left: auto; }\n\n@supports (-ms-accelerator: true) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n@-webkit-keyframes swal2-toast-show {\n  0% {\n    transform: translateY(-0.625em) rotateZ(2deg); }\n  33% {\n    transform: translateY(0) rotateZ(-2deg); }\n  66% {\n    transform: translateY(0.3125em) rotateZ(2deg); }\n  100% {\n    transform: translateY(0) rotateZ(0deg); } }\n\n@keyframes swal2-toast-show {\n  0% {\n    transform: translateY(-0.625em) rotateZ(2deg); }\n  33% {\n    transform: translateY(0) rotateZ(-2deg); }\n  66% {\n    transform: translateY(0.3125em) rotateZ(2deg); }\n  100% {\n    transform: translateY(0) rotateZ(0deg); } }\n\n@-webkit-keyframes swal2-toast-hide {\n  100% {\n    transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@keyframes swal2-toast-hide {\n  100% {\n    transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@-webkit-keyframes swal2-toast-animate-success-line-tip {\n  0% {\n    top: .5625em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: .125em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: .625em;\n    left: -.25em;\n    width: 1.625em; }\n  84% {\n    top: 1.0625em;\n    left: .75em;\n    width: .5em; }\n  100% {\n    top: 1.125em;\n    left: .1875em;\n    width: .75em; } }\n\n@keyframes swal2-toast-animate-success-line-tip {\n  0% {\n    top: .5625em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: .125em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: .625em;\n    left: -.25em;\n    width: 1.625em; }\n  84% {\n    top: 1.0625em;\n    left: .75em;\n    width: .5em; }\n  100% {\n    top: 1.125em;\n    left: .1875em;\n    width: .75em; } }\n\n@-webkit-keyframes swal2-toast-animate-success-line-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0; }\n  65% {\n    top: 1.25em;\n    right: .9375em;\n    width: 0; }\n  84% {\n    top: .9375em;\n    right: 0;\n    width: 1.125em; }\n  100% {\n    top: .9375em;\n    right: .1875em;\n    width: 1.375em; } }\n\n@keyframes swal2-toast-animate-success-line-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0; }\n  65% {\n    top: 1.25em;\n    right: .9375em;\n    width: 0; }\n  84% {\n    top: .9375em;\n    right: 0;\n    width: 1.125em; }\n  100% {\n    top: .9375em;\n    right: .1875em;\n    width: 1.375em; } }\n\n@-webkit-keyframes swal2-show {\n  0% {\n    transform: scale(0.7); }\n  45% {\n    transform: scale(1.05); }\n  80% {\n    transform: scale(0.95); }\n  100% {\n    transform: scale(1); } }\n\n@keyframes swal2-show {\n  0% {\n    transform: scale(0.7); }\n  45% {\n    transform: scale(1.05); }\n  80% {\n    transform: scale(0.95); }\n  100% {\n    transform: scale(1); } }\n\n@-webkit-keyframes swal2-hide {\n  0% {\n    transform: scale(1);\n    opacity: 1; }\n  100% {\n    transform: scale(0.5);\n    opacity: 0; } }\n\n@keyframes swal2-hide {\n  0% {\n    transform: scale(1);\n    opacity: 1; }\n  100% {\n    transform: scale(0.5);\n    opacity: 0; } }\n\n@-webkit-keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: 1.0625em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: 2.1875em;\n    left: -.375em;\n    width: 3.125em; }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em; }\n  100% {\n    top: 2.8125em;\n    left: .8125em;\n    width: 1.5625em; } }\n\n@keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: 1.0625em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: 2.1875em;\n    left: -.375em;\n    width: 3.125em; }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em; }\n  100% {\n    top: 2.8125em;\n    left: .8125em;\n    width: 1.5625em; } }\n\n@-webkit-keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em; }\n  100% {\n    top: 2.375em;\n    right: .5em;\n    width: 2.9375em; } }\n\n@keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em; }\n  100% {\n    top: 2.375em;\n    right: .5em;\n    width: 2.9375em; } }\n\n@-webkit-keyframes swal2-rotate-success-circular-line {\n  0% {\n    transform: rotate(-45deg); }\n  5% {\n    transform: rotate(-45deg); }\n  12% {\n    transform: rotate(-405deg); }\n  100% {\n    transform: rotate(-405deg); } }\n\n@keyframes swal2-rotate-success-circular-line {\n  0% {\n    transform: rotate(-45deg); }\n  5% {\n    transform: rotate(-45deg); }\n  12% {\n    transform: rotate(-405deg); }\n  100% {\n    transform: rotate(-405deg); } }\n\n@-webkit-keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -.375em;\n    transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    transform: scale(1);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 1.625em;\n    transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -.375em;\n    transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    transform: scale(1);\n    opacity: 1; } }\n\n@-webkit-keyframes swal2-animate-error-icon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-icon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1; } }\n\n@-webkit-keyframes swal2-rotate-loading {\n  0% {\n    transform: rotate(0deg); }\n  100% {\n    transform: rotate(360deg); } }\n\n@keyframes swal2-rotate-loading {\n  0% {\n    transform: rotate(0deg); }\n  100% {\n    transform: rotate(360deg); } }\n\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n  overflow: hidden; }\n\nbody.swal2-height-auto {\n  height: auto !important; }\n\nbody.swal2-no-backdrop .swal2-container {\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  max-width: calc(100% - 0.625em * 2);\n  background-color: transparent !important; }\n  body.swal2-no-backdrop .swal2-container > .swal2-modal {\n    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); }\n  body.swal2-no-backdrop .swal2-container.swal2-top {\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left {\n    top: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right {\n    top: 0;\n    right: 0; }\n  body.swal2-no-backdrop .swal2-container.swal2-center {\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%); }\n  body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left {\n    top: 50%;\n    left: 0;\n    transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right {\n    top: 50%;\n    right: 0;\n    transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-container.swal2-bottom {\n    bottom: 0;\n    left: 50%;\n    transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left {\n    bottom: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right {\n    right: 0;\n    bottom: 0; }\n\n@media print {\n  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n    overflow-y: scroll !important; }\n    body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] {\n      display: none; }\n    body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {\n      position: static !important; } }\n\nbody.swal2-toast-shown .swal2-container {\n  background-color: transparent; }\n  body.swal2-toast-shown .swal2-container.swal2-top {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    transform: translateX(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {\n    top: 0;\n    right: 0;\n    bottom: auto;\n    left: auto; }\n  body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 0; }\n  body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 0;\n    transform: translateY(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-center {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    transform: translate(-50%, -50%); }\n  body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {\n    top: 50%;\n    right: 0;\n    bottom: auto;\n    left: auto;\n    transform: translateY(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 0; }\n  body.swal2-toast-shown .swal2-container.swal2-bottom {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 50%;\n    transform: translateX(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {\n    top: auto;\n    right: 0;\n    bottom: 0;\n    left: auto; }\n\nbody.swal2-toast-column .swal2-toast {\n  flex-direction: column;\n  align-items: stretch; }\n  body.swal2-toast-column .swal2-toast .swal2-actions {\n    flex: 1;\n    align-self: stretch;\n    height: 2.2em;\n    margin-top: .3125em; }\n  body.swal2-toast-column .swal2-toast .swal2-loading {\n    justify-content: center; }\n  body.swal2-toast-column .swal2-toast .swal2-input {\n    height: 2em;\n    margin: .3125em auto;\n    font-size: 0.875rem; }\n  body.swal2-toast-column .swal2-toast .swal2-validation-message {\n    font-size: 0.875rem; }\n\n.swal2-confirm,\n.swal2-cancel {\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n\n.swal2-popup {\n  border: 1px solid rgba(0, 0, 0, 0.2); }\n  .swal2-popup.swal2-toast {\n    padding: .25rem .75rem;\n    font-size: .875rem; }\n    .swal2-popup.swal2-toast .swal2-header {\n      padding: 0;\n      border-bottom: 0; }\n    .swal2-popup.swal2-toast .swal2-title {\n      margin: 0;\n      color: #6c757d; }\n    .swal2-popup.swal2-toast .swal2-content {\n      padding: 0 .5rem; }\n    .swal2-popup.swal2-toast .swal2-actions {\n      flex-basis: 0 !important;\n      margin: 0;\n      padding: 0; }\n    .swal2-popup.swal2-toast .swal2-styled {\n      margin: 0; }\n\n.swal2-title {\n  margin: 0;\n  font-size: 1.25rem; }\n\n.swal2-content {\n  padding: 1rem 1rem 0; }\n\n.swal2-actions {\n  border-radius: 0.25rem; }\n\n.swal2-footer {\n  padding: 1rem;\n  border-top: 1px solid #dee2e6; }\n\n.swal2-close {\n  height: auto;\n  padding: 1rem 1.2rem 1rem 1rem;\n  font-weight: 700; }\n\n.swal2-input,\n.swal2-textarea {\n  height: inherit;\n  padding: 0.375rem 0.75rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  line-height: 1.5; }\n  .swal2-input:focus,\n  .swal2-textarea:focus {\n    border: 1px solid #80bdff;\n    outline: 0;\n    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n    color: #495057; }\n  .swal2-input.swal2-inputerror,\n  .swal2-textarea.swal2-inputerror {\n    box-shadow: none !important; }\n    .swal2-input.swal2-inputerror:focus,\n    .swal2-textarea.swal2-inputerror:focus {\n      border-color: #dc3545;\n      box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important; }\n\n.swal2-styled.swal2-confirm {\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem; }\n  .swal2-styled.swal2-confirm:hover {\n    border-color: #0062cc;\n    background-color: #0069d9; }\n  .swal2-styled.swal2-confirm:focus {\n    outline: 0;\n    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n  .swal2-styled.swal2-confirm:active {\n    border-color: #005cbf;\n    background-color: #0062cc; }\n    .swal2-styled.swal2-confirm:active:focus {\n      box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n\n.swal2-styled.swal2-cancel {\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem; }\n  .swal2-styled.swal2-cancel:hover {\n    border-color: #545b62;\n    background-color: #5a6268; }\n  .swal2-styled.swal2-cancel:focus {\n    outline: 0;\n    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25); }\n  .swal2-styled.swal2-cancel:active {\n    border-color: #4e555b;\n    background-color: #545b62; }\n    .swal2-styled.swal2-cancel:active:focus {\n      box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25); }\n\n.swal2-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: .375rem 1.75rem .375rem .75rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  background: url('data:image/svg+xml,%3csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"%3e%3cpath fill=\"%23343a40\" d=\"M2 0L0 2h4zm0 5L0 3h4z\"/%3e%3c/svg%3e') no-repeat right 0.75rem center/8px 10px;\n  background-color: #fff;\n  color: #495057;\n  vertical-align: middle;\n  -webkit-appearance: none;\n     -moz-appearance: none;\n          appearance: none; }\n  .swal2-select:focus {\n    border: 1px solid #80bdff;\n    outline: 0;\n    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n    .swal2-select:focus::-ms-value {\n      background-color: #fff;\n      color: #495057; }\n  .swal2-select[multiple], .swal2-select[size]:not([size='1']) {\n    height: auto;\n    padding-right: 0.75rem;\n    background-image: none; }\n  .swal2-select:disabled {\n    background-color: #e9ecef;\n    color: #fff; }\n  .swal2-select::-ms-expand {\n    display: none; }\n\n.swal2-radio label {\n  position: relative;\n  margin-right: 1rem;\n  margin-left: 1.5rem; }\n  .swal2-radio label input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0; }\n    .swal2-radio label input:checked ~ .swal2-label::before {\n      border-color: #007bff;\n      background: #007bff;\n      color: #fff; }\n    .swal2-radio label input:focus ~ .swal2-label::before {\n      box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n    .swal2-radio label input:focus:not(:checked) ~ .swal2-label::before {\n      border-color: #80bdff; }\n    .swal2-radio label input:not(:disabled):active ~ .swal2-label::before {\n      border-color: #b3d7ff;\n      background-color: #b3d7ff;\n      color: #fff; }\n  .swal2-radio label input:checked ~ .swal2-label::after {\n    background-image: url('data:image/svg+xml,%3csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-4 -4 8 8\"%3e%3ccircle r=\"3\" fill=\"%23fff\"/%3e%3c/svg%3e'); }\n  .swal2-radio label input:disabled:checked ~ .swal2-label::before {\n    background-color: rgba(0, 123, 255, 0.5); }\n\n.swal2-radio .swal2-label::before {\n  content: '';\n  display: block;\n  position: absolute;\n  top: 0.08333rem;\n  left: -1.5rem;\n  width: 1rem;\n  height: 1rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  border: #adb5bd solid 1px;\n  border-radius: 50%;\n  background-color: #fff;\n  pointer-events: none; }\n\n.swal2-radio .swal2-label::after {\n  content: '';\n  display: block;\n  position: absolute;\n  top: 0.08333rem;\n  left: -1.5rem;\n  width: 1rem;\n  height: 1rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  border: transparent solid 1px;\n  background: no-repeat 50% / 50% 50%; }\n\n.swal2-checkbox {\n  margin-right: 1rem;\n  padding-left: 1.5rem; }\n  .swal2-checkbox input {\n    z-index: -1;\n    opacity: 0; }\n    .swal2-checkbox input:checked ~ .swal2-label::before {\n      border-color: #007bff;\n      background: #007bff;\n      color: #fff; }\n    .swal2-checkbox input:focus ~ .swal2-label::before {\n      box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n    .swal2-checkbox input:focus:not(:checked) ~ .swal2-label::before {\n      border-color: #80bdff; }\n    .swal2-checkbox input:not(:disabled):active ~ .swal2-label::before {\n      border-color: #b3d7ff;\n      background-color: #b3d7ff;\n      color: #fff; }\n  .swal2-checkbox input:checked ~ .swal2-label::after {\n    background-image: url('data:image/svg+xml,%3csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 8 8\"%3e%3cpath fill=\"%23fff\" d=\"M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\"/%3e%3c/svg%3e'); }\n  .swal2-checkbox input:disabled:checked ~ .swal2-label::before {\n    background-color: rgba(0, 123, 255, 0.5); }\n  .swal2-checkbox .swal2-label {\n    position: relative; }\n    .swal2-checkbox .swal2-label::before {\n      content: '';\n      display: block;\n      position: absolute;\n      top: 0.25rem;\n      left: -1.5rem;\n      width: 1rem;\n      height: 1rem;\n      transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      border: #adb5bd solid 1px;\n      background-color: #fff;\n      pointer-events: none; }\n    .swal2-checkbox .swal2-label::after {\n      content: '';\n      display: block;\n      position: absolute;\n      top: 0.25rem;\n      left: -1.5rem;\n      width: 1rem;\n      height: 1rem;\n      transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      border: transparent solid 1px;\n      background: no-repeat 50% / 50% 50%; }\n\n.swal2-range {\n  align-items: center; }\n  .swal2-range input {\n    width: 100%;\n    height: calc(1rem + 0.6rem);\n    padding: 0;\n    background-color: transparent;\n    -webkit-appearance: none;\n       -moz-appearance: none;\n            appearance: none; }\n    .swal2-range input:focus {\n      outline: none; }\n      .swal2-range input:focus::-webkit-slider-thumb {\n        box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n      .swal2-range input:focus::-moz-range-thumb {\n        box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n      .swal2-range input:focus::-ms-thumb {\n        box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }\n    .swal2-range input::-moz-focus-outer {\n      border: 0; }\n    .swal2-range input::-webkit-slider-thumb {\n      width: 1rem;\n      height: 1rem;\n      margin-top: -0.25rem;\n      -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      border: 0;\n      border-radius: 1rem;\n      background: #007bff;\n      box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n      -webkit-appearance: none;\n              appearance: none; }\n      .swal2-range input::-webkit-slider-thumb:active {\n        background: #b3d7ff; }\n    .swal2-range input::-webkit-slider-runnable-track {\n      width: 100%;\n      height: 0.5rem;\n      border-radius: 1rem;\n      border-color: transparent;\n      background-color: #dee2e6;\n      box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n      color: transparent;\n      cursor: pointer; }\n    .swal2-range input::-moz-range-thumb {\n      width: 1rem;\n      height: 1rem;\n      margin-top: 1rem;\n      -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      border: 0;\n      border-radius: 1rem;\n      background: #007bff;\n      box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n      -moz-appearance: none;\n           appearance: none; }\n      .swal2-range input::-moz-range-thumb:active {\n        background: #b3d7ff; }\n    .swal2-range input::-moz-range-track {\n      width: 100%;\n      height: 0.5rem;\n      border-radius: 1rem;\n      border-color: transparent;\n      background-color: #dee2e6;\n      box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n      color: transparent;\n      cursor: pointer; }\n    .swal2-range input::-ms-thumb {\n      width: 1rem;\n      height: 1rem;\n      margin-top: 0;\n      margin-right: 0.2rem;\n      margin-left: 0.2rem;\n      -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n      border: 0;\n      border-radius: 1rem;\n      background: #007bff;\n      box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n      appearance: none; }\n      .swal2-range input::-ms-thumb:active {\n        background: #b3d7ff; }\n    .swal2-range input::-ms-track {\n      width: 100%;\n      height: 0.5rem;\n      border-width: 0.5rem;\n      border-color: transparent;\n      background-color: transparent;\n      box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n      color: transparent;\n      cursor: pointer; }\n    .swal2-range input::-ms-fill-lower {\n      border-radius: 1rem;\n      background-color: #dee2e6; }\n    .swal2-range input::-ms-fill-upper {\n      margin-right: 15px;\n      border-radius: 1rem;\n      background-color: #dee2e6; }\n    .swal2-range input:disabled::-webkit-slider-thumb {\n      background-color: #adb5bd; }\n    .swal2-range input:disabled::-webkit-slider-runnable-track {\n      cursor: default; }\n    .swal2-range input:disabled::-moz-range-thumb {\n      background-color: #adb5bd; }\n    .swal2-range input:disabled::-moz-range-track {\n      cursor: default; }\n    .swal2-range input:disabled::-ms-thumb {\n      background-color: #adb5bd; }\n\n.swal2-validation-message {\n  position: relative;\n  margin-bottom: 1rem;\n  padding: 0.75rem 1.25rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n  border-color: #d6d8db;\n  background: #e2e3e5;\n  color: #383d41;\n  font-size: 1rem; }\n  .swal2-validation-message::before {\n    background-color: #e4606d; }\n\n.swal2-toast {\n  max-width: 350px;\n  border-radius: 0.25rem;\n  background-color: rgba(255, 255, 255, 0.85); }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.css",
    "content": "/*!@preserve\n * Tempus Dominus Bootstrap4 v5.39.0 (https://tempusdominus.github.io/bootstrap-4/)\n * Copyright 2016-2020 Jonathan Peterson and contributors\n * Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE)\n */\n\n.sr-only, .bootstrap-datetimepicker-widget table th.next::after, .bootstrap-datetimepicker-widget table th.prev::after, .bootstrap-datetimepicker-widget .picker-switch::after, .bootstrap-datetimepicker-widget .btn[data-action=today]::after, .bootstrap-datetimepicker-widget .btn[data-action=clear]::after, .bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]::after, .bootstrap-datetimepicker-widget .btn[data-action=showMinutes]::after, .bootstrap-datetimepicker-widget .btn[data-action=showHours]::after, .bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]::after, .bootstrap-datetimepicker-widget .btn[data-action=decrementHours]::after, .bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]::after, .bootstrap-datetimepicker-widget .btn[data-action=incrementHours]::after {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\nbody.tempusdominus-bootstrap-datetimepicker-widget-day-click,\nbody.tempusdominus-bootstrap-datetimepicker-widget-day-click * {\n  cursor: pointer !important;\n}\n\nbody.tempusdominus-bootstrap-datetimepicker-widget-day-click {\n  position: relative !important;\n}\n\n.tempusdominus-bootstrap-datetimepicker-widget-day-click-glass-panel {\n  position: absolute;\n  z-index: 999999999999;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  cursor: pointer !important;\n}\n\n.bootstrap-datetimepicker-widget .datepicker-days tbody td {\n  cursor: pointer;\n}\n\n.bootstrap-datetimepicker-widget {\n  list-style: none;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu {\n  display: block;\n  margin: 2px 0;\n  padding: 4px;\n  width: 14rem;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.tempusdominus-bootstrap-datetimepicker-widget-with-feather-icons {\n  width: 16rem;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.tempusdominus-bootstrap-datetimepicker-widget-with-calendar-weeks {\n  width: 16rem;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.tempusdominus-bootstrap-datetimepicker-widget-with-calendar-weeks.tempusdominus-bootstrap-datetimepicker-widget-with-feather-icons {\n  width: 17rem;\n}\n@media (min-width: 576px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n@media (min-width: 768px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n@media (min-width: 992px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n.bootstrap-datetimepicker-widget.dropdown-menu:before, .bootstrap-datetimepicker-widget.dropdown-menu:after {\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  top: -7px;\n  left: 7px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid white;\n  top: -6px;\n  left: 8px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top:before {\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-top: 7px solid #ccc;\n  border-top-color: rgba(0, 0, 0, 0.2);\n  bottom: -7px;\n  left: 6px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top:after {\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 6px solid white;\n  bottom: -6px;\n  left: 7px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.float-right:before {\n  left: auto;\n  right: 6px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.float-right:after {\n  left: auto;\n  right: 7px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.wider {\n  width: 16rem;\n}\n.bootstrap-datetimepicker-widget .list-unstyled {\n  margin: 0;\n}\n.bootstrap-datetimepicker-widget a[data-action] {\n  padding: 6px 0;\n}\n.bootstrap-datetimepicker-widget a[data-action]:active {\n  box-shadow: none;\n}\n.bootstrap-datetimepicker-widget .timepicker-hour, .bootstrap-datetimepicker-widget .timepicker-minute, .bootstrap-datetimepicker-widget .timepicker-second {\n  width: 54px;\n  font-weight: bold;\n  font-size: 1.2em;\n  margin: 0;\n}\n.bootstrap-datetimepicker-widget button[data-action] {\n  padding: 6px;\n}\n.bootstrap-datetimepicker-widget .btn[data-action=togglePeriod] {\n  text-align: center;\n  font-family: Arial, sans-serif, -apple-system, system-ui, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  width: 38px;\n  height: 38px;\n}\n.bootstrap-datetimepicker-widget .btn[data-action=incrementHours]::after {\n  content: \"Increment Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]::after {\n  content: \"Increment Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=decrementHours]::after {\n  content: \"Decrement Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]::after {\n  content: \"Decrement Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=showHours]::after {\n  content: \"Show Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=showMinutes]::after {\n  content: \"Show Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]::after {\n  content: \"Toggle AM/PM\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=clear]::after {\n  content: \"Clear the picker\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=today]::after {\n  content: \"Set the date to today\";\n}\n.bootstrap-datetimepicker-widget .picker-switch {\n  text-align: center;\n}\n.bootstrap-datetimepicker-widget .picker-switch::after {\n  content: \"Toggle Date and Time Screens\";\n}\n.bootstrap-datetimepicker-widget .picker-switch td {\n  padding: 0;\n  margin: 0;\n  height: auto;\n  width: auto;\n  line-height: inherit;\n}\n.bootstrap-datetimepicker-widget .picker-switch td span {\n  line-height: 2.5;\n  height: 2.5em;\n  width: 100%;\n}\n.bootstrap-datetimepicker-widget .picker-switch.picker-switch-with-feathers-icons td span {\n  line-height: 2.8;\n  height: 2.8em;\n}\n.bootstrap-datetimepicker-widget table {\n  width: 100%;\n  margin: 0;\n}\n.bootstrap-datetimepicker-widget table td, .bootstrap-datetimepicker-widget table th {\n  text-align: center;\n  border-radius: 0.25rem;\n}\n.bootstrap-datetimepicker-widget table th {\n  height: 20px;\n  line-height: 20px;\n  width: 20px;\n}\n.bootstrap-datetimepicker-widget table th.picker-switch {\n  width: 145px;\n}\n.bootstrap-datetimepicker-widget table th.disabled, .bootstrap-datetimepicker-widget table th.disabled:hover {\n  background: none;\n  color: #6c757d;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table th.prev::after {\n  content: \"Previous Month\";\n}\n.bootstrap-datetimepicker-widget table th.next::after {\n  content: \"Next Month\";\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th {\n  cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {\n  background: #e9ecef;\n}\n.bootstrap-datetimepicker-widget table td {\n  height: 54px;\n  line-height: 54px;\n  width: 54px;\n}\n.bootstrap-datetimepicker-widget table td.cw {\n  font-size: 0.8em;\n  height: 20px;\n  line-height: 20px;\n  color: #6c757d;\n  cursor: default;\n}\n.bootstrap-datetimepicker-widget table td.day {\n  height: 20px;\n  line-height: 20px;\n  width: 20px;\n}\n.bootstrap-datetimepicker-widget table td.day:hover, .bootstrap-datetimepicker-widget table td.hour:hover, .bootstrap-datetimepicker-widget table td.minute:hover, .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #e9ecef;\n  cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table td.old, .bootstrap-datetimepicker-widget table td.new {\n  color: #6c757d;\n}\n.bootstrap-datetimepicker-widget table td.today {\n  position: relative;\n}\n.bootstrap-datetimepicker-widget table td.today:before {\n  content: \"\";\n  display: inline-block;\n  border: solid transparent;\n  border-width: 0 0 7px 7px;\n  border-bottom-color: #007bff;\n  border-top-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n  bottom: 4px;\n  right: 4px;\n}\n.bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #007bff;\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.bootstrap-datetimepicker-widget table td.active.today:before {\n  border-bottom-color: #fff;\n}\n.bootstrap-datetimepicker-widget table td.disabled, .bootstrap-datetimepicker-widget table td.disabled:hover {\n  background: none;\n  color: #6c757d;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table td span {\n  display: inline-block;\n  width: 54px;\n  height: 54px;\n  line-height: 54px;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  cursor: pointer;\n  border-radius: 0.25rem;\n}\n.bootstrap-datetimepicker-widget table td span:hover {\n  background: #e9ecef;\n}\n.bootstrap-datetimepicker-widget table td span.active {\n  background-color: #007bff;\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.bootstrap-datetimepicker-widget table td span.old {\n  color: #6c757d;\n}\n.bootstrap-datetimepicker-widget table td span.disabled, .bootstrap-datetimepicker-widget table td span.disabled:hover {\n  background: none;\n  color: #6c757d;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget.usetwentyfour td.hour {\n  height: 27px;\n  line-height: 27px;\n}\n.bootstrap-datetimepicker-widget .timepicker .timepicker-picker a.btn {\n  color: #007bff;\n  color: var(--blue, #007bff);\n}\n.bootstrap-datetimepicker-widget .timepicker .timepicker-picker a.btn:hover {\n  color: #0056b3;\n}\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.day, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.hour, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.minute, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.second,\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementHours], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementMinutes], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementSeconds],\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementHours], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementMinutes], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementSeconds],\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showHours], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showMinutes], .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showSeconds],\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=togglePeriod] {\n  pointer-events: none;\n  cursor: default;\n}\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.day:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.hour:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.minute:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td.second:hover,\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementHours]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementMinutes]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=incrementSeconds]:hover,\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementHours]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementMinutes]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=decrementSeconds]:hover,\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showHours]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showMinutes]:hover, .bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=showSeconds]:hover,\n.bootstrap-datetimepicker-widget.bootstrap-datetimepicker-widget-readonly table td [data-action=togglePeriod]:hover {\n  background: none;\n}\n\n.input-group [data-toggle=datetimepicker] {\n  cursor: pointer;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.js",
    "content": "/*!@preserve\n * Tempus Dominus Bootstrap4 v5.39.0 (https://tempusdominus.github.io/bootstrap-4/)\n * Copyright 2016-2020 Jonathan Peterson and contributors\n * Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE)\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Tempus Dominus Bootstrap4\\'s requires jQuery. jQuery must be included before Tempus Dominus Bootstrap4\\'s JavaScript.');\n}\n\n+function ($) {\n  var version = $.fn.jquery.split(' ')[0].split('.');\n  if ((version[0] < 2 && version[1] < 9) || (version[0] === 1 && version[1] === 9 && version[2] < 1) || (version[0] >= 4)) {\n    throw new Error('Tempus Dominus Bootstrap4\\'s requires at least jQuery v3.0.0 but less than v4.0.0');\n  }\n}(jQuery);\n\n\nif (typeof moment === 'undefined') {\n  throw new Error('Tempus Dominus Bootstrap4\\'s requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4\\'s JavaScript.');\n}\n\nvar version = moment.version.split('.')\nif ((version[0] <= 2 && version[1] < 17) || (version[0] >= 3)) {\n  throw new Error('Tempus Dominus Bootstrap4\\'s requires at least moment.js v2.17.0 but less than v3.0.0');\n}\n\n+function () {\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// ReSharper disable once InconsistentNaming\nvar DateTimePicker = function ($, moment) {\n  function escapeRegExp(text) {\n    return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n  }\n\n  function isValidDate(date) {\n    return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n  }\n\n  function isValidDateTimeStr(str) {\n    return isValidDate(new Date(str));\n  } // ReSharper disable InconsistentNaming\n\n\n  var trim = function trim(str) {\n    return str.replace(/(^\\s+)|(\\s+$)/g, '');\n  },\n      NAME = 'datetimepicker',\n      DATA_KEY = \"\" + NAME,\n      EVENT_KEY = \".\" + DATA_KEY,\n      DATA_API_KEY = '.data-api',\n      Selector = {\n    DATA_TOGGLE: \"[data-toggle=\\\"\" + DATA_KEY + \"\\\"]\"\n  },\n      ClassName = {\n    INPUT: NAME + \"-input\"\n  },\n      Event = {\n    CHANGE: \"change\" + EVENT_KEY,\n    BLUR: \"blur\" + EVENT_KEY,\n    KEYUP: \"keyup\" + EVENT_KEY,\n    KEYDOWN: \"keydown\" + EVENT_KEY,\n    FOCUS: \"focus\" + EVENT_KEY,\n    CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\n    //emitted\n    UPDATE: \"update\" + EVENT_KEY,\n    ERROR: \"error\" + EVENT_KEY,\n    HIDE: \"hide\" + EVENT_KEY,\n    SHOW: \"show\" + EVENT_KEY\n  },\n      DatePickerModes = [{\n    CLASS_NAME: 'days',\n    NAV_FUNCTION: 'M',\n    NAV_STEP: 1\n  }, {\n    CLASS_NAME: 'months',\n    NAV_FUNCTION: 'y',\n    NAV_STEP: 1\n  }, {\n    CLASS_NAME: 'years',\n    NAV_FUNCTION: 'y',\n    NAV_STEP: 10\n  }, {\n    CLASS_NAME: 'decades',\n    NAV_FUNCTION: 'y',\n    NAV_STEP: 100\n  }],\n      KeyMap = {\n    'up': 38,\n    38: 'up',\n    'down': 40,\n    40: 'down',\n    'left': 37,\n    37: 'left',\n    'right': 39,\n    39: 'right',\n    'tab': 9,\n    9: 'tab',\n    'escape': 27,\n    27: 'escape',\n    'enter': 13,\n    13: 'enter',\n    'pageUp': 33,\n    33: 'pageUp',\n    'pageDown': 34,\n    34: 'pageDown',\n    'shift': 16,\n    16: 'shift',\n    'control': 17,\n    17: 'control',\n    'space': 32,\n    32: 'space',\n    't': 84,\n    84: 't',\n    'delete': 46,\n    46: 'delete'\n  },\n      ViewModes = ['times', 'days', 'months', 'years', 'decades'],\n      keyState = {},\n      keyPressHandled = {},\n      optionsSortMap = {\n    timeZone: -39,\n    format: -38,\n    dayViewHeaderFormat: -37,\n    extraFormats: -36,\n    stepping: -35,\n    minDate: -34,\n    maxDate: -33,\n    useCurrent: -32,\n    collapse: -31,\n    locale: -30,\n    defaultDate: -29,\n    disabledDates: -28,\n    enabledDates: -27,\n    icons: -26,\n    tooltips: -25,\n    useStrict: -24,\n    sideBySide: -23,\n    daysOfWeekDisabled: -22,\n    calendarWeeks: -21,\n    viewMode: -20,\n    toolbarPlacement: -19,\n    buttons: -18,\n    widgetPositioning: -17,\n    widgetParent: -16,\n    ignoreReadonly: -15,\n    keepOpen: -14,\n    focusOnShow: -13,\n    inline: -12,\n    keepInvalid: -11,\n    keyBinds: -10,\n    debug: -9,\n    allowInputToggle: -8,\n    disabledTimeIntervals: -7,\n    disabledHours: -6,\n    enabledHours: -5,\n    viewDate: -4,\n    allowMultidate: -3,\n    multidateSeparator: -2,\n    updateOnlyThroughDateOption: -1,\n    date: 1\n  },\n      defaultFeatherIcons = {\n    time: 'clock',\n    date: 'calendar',\n    up: 'arrow-up',\n    down: 'arrow-down',\n    previous: 'arrow-left',\n    next: 'arrow-right',\n    today: 'arrow-down-circle',\n    clear: 'trash-2',\n    close: 'x'\n  };\n\n  function optionsSortFn(optionKeyA, optionKeyB) {\n    if (optionsSortMap[optionKeyA] && optionsSortMap[optionKeyB]) {\n      if (optionsSortMap[optionKeyA] < 0 && optionsSortMap[optionKeyB] < 0) {\n        return Math.abs(optionsSortMap[optionKeyB]) - Math.abs(optionsSortMap[optionKeyA]);\n      } else if (optionsSortMap[optionKeyA] < 0) {\n        return -1;\n      } else if (optionsSortMap[optionKeyB] < 0) {\n        return 1;\n      }\n\n      return optionsSortMap[optionKeyA] - optionsSortMap[optionKeyB];\n    } else if (optionsSortMap[optionKeyA]) {\n      return optionsSortMap[optionKeyA];\n    } else if (optionsSortMap[optionKeyB]) {\n      return optionsSortMap[optionKeyB];\n    }\n\n    return 0;\n  }\n\n  var Default = {\n    timeZone: '',\n    format: false,\n    dayViewHeaderFormat: 'MMMM YYYY',\n    extraFormats: false,\n    stepping: 1,\n    minDate: false,\n    maxDate: false,\n    useCurrent: true,\n    collapse: true,\n    locale: moment.locale(),\n    defaultDate: false,\n    disabledDates: false,\n    enabledDates: false,\n    icons: {\n      type: 'class',\n      time: 'fa fa-clock-o',\n      date: 'fa fa-calendar',\n      up: 'fa fa-arrow-up',\n      down: 'fa fa-arrow-down',\n      previous: 'fa fa-chevron-left',\n      next: 'fa fa-chevron-right',\n      today: 'fa fa-calendar-check-o',\n      clear: 'fa fa-trash',\n      close: 'fa fa-times'\n    },\n    tooltips: {\n      today: 'Go to today',\n      clear: 'Clear selection',\n      close: 'Close the picker',\n      selectMonth: 'Select Month',\n      prevMonth: 'Previous Month',\n      nextMonth: 'Next Month',\n      selectYear: 'Select Year',\n      prevYear: 'Previous Year',\n      nextYear: 'Next Year',\n      selectDecade: 'Select Decade',\n      prevDecade: 'Previous Decade',\n      nextDecade: 'Next Decade',\n      prevCentury: 'Previous Century',\n      nextCentury: 'Next Century',\n      pickHour: 'Pick Hour',\n      incrementHour: 'Increment Hour',\n      decrementHour: 'Decrement Hour',\n      pickMinute: 'Pick Minute',\n      incrementMinute: 'Increment Minute',\n      decrementMinute: 'Decrement Minute',\n      pickSecond: 'Pick Second',\n      incrementSecond: 'Increment Second',\n      decrementSecond: 'Decrement Second',\n      togglePeriod: 'Toggle Period',\n      selectTime: 'Select Time',\n      selectDate: 'Select Date'\n    },\n    useStrict: false,\n    sideBySide: false,\n    daysOfWeekDisabled: false,\n    calendarWeeks: false,\n    viewMode: 'days',\n    toolbarPlacement: 'default',\n    buttons: {\n      showToday: false,\n      showClear: false,\n      showClose: false\n    },\n    widgetPositioning: {\n      horizontal: 'auto',\n      vertical: 'auto'\n    },\n    widgetParent: null,\n    readonly: false,\n    ignoreReadonly: false,\n    keepOpen: false,\n    focusOnShow: true,\n    inline: false,\n    keepInvalid: false,\n    keyBinds: {\n      up: function up() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(7, 'd'));\n        } else {\n          this.date(d.clone().add(this.stepping(), 'm'));\n        }\n\n        return true;\n      },\n      down: function down() {\n        if (!this.widget) {\n          this.show();\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(7, 'd'));\n        } else {\n          this.date(d.clone().subtract(this.stepping(), 'm'));\n        }\n\n        return true;\n      },\n      'control up': function controlUp() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'y'));\n        } else {\n          this.date(d.clone().add(1, 'h'));\n        }\n\n        return true;\n      },\n      'control down': function controlDown() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'y'));\n        } else {\n          this.date(d.clone().subtract(1, 'h'));\n        }\n\n        return true;\n      },\n      left: function left() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'd'));\n        }\n\n        return true;\n      },\n      right: function right() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'd'));\n        }\n\n        return true;\n      },\n      pageUp: function pageUp() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'M'));\n        }\n\n        return true;\n      },\n      pageDown: function pageDown() {\n        if (!this.widget) {\n          return false;\n        }\n\n        var d = this._dates[0] || this.getMoment();\n\n        if (this.widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'M'));\n        }\n\n        return true;\n      },\n      enter: function enter() {\n        if (!this.widget) {\n          return false;\n        }\n\n        this.hide();\n        return true;\n      },\n      escape: function escape() {\n        if (!this.widget) {\n          return false;\n        }\n\n        this.hide();\n        return true;\n      },\n      'control space': function controlSpace() {\n        if (!this.widget) {\n          return false;\n        }\n\n        if (this.widget.find('.timepicker').is(':visible')) {\n          this.widget.find('.btn[data-action=\"togglePeriod\"]').click();\n        }\n\n        return true;\n      },\n      t: function t() {\n        if (!this.widget) {\n          return false;\n        }\n\n        this.date(this.getMoment());\n        return true;\n      },\n      'delete': function _delete() {\n        if (!this.widget) {\n          return false;\n        }\n\n        this.clear();\n        return true;\n      }\n    },\n    debug: false,\n    allowInputToggle: false,\n    disabledTimeIntervals: false,\n    disabledHours: false,\n    enabledHours: false,\n    viewDate: false,\n    allowMultidate: false,\n    multidateSeparator: ', ',\n    updateOnlyThroughDateOption: false,\n    promptTimeOnDateChange: false,\n    promptTimeOnDateChangeTransitionDelay: 200\n  }; // ReSharper restore InconsistentNaming\n  // ReSharper disable once DeclarationHides\n  // ReSharper disable once InconsistentNaming\n\n  var DateTimePicker = /*#__PURE__*/function () {\n    /** @namespace eData.dateOptions */\n\n    /** @namespace moment.tz */\n    function DateTimePicker(element, options) {\n      this._options = this._getOptions(options);\n      this._element = element;\n      this._dates = [];\n      this._datesFormatted = [];\n      this._viewDate = null;\n      this.unset = true;\n      this.component = false;\n      this.widget = false;\n      this.use24Hours = null;\n      this.actualFormat = null;\n      this.parseFormats = null;\n      this.currentViewMode = null;\n      this.MinViewModeNumber = 0;\n      this.isInitFormatting = false;\n      this.isInit = false;\n      this.isDateUpdateThroughDateOptionFromClientCode = false;\n      this.hasInitDate = false;\n      this.initDate = void 0;\n      this._notifyChangeEventContext = void 0;\n      this._currentPromptTimeTimeout = null;\n\n      this._int();\n    }\n    /**\n     * @return {string}\n     */\n\n\n    var _proto = DateTimePicker.prototype;\n\n    //private\n    _proto._int = function _int() {\n      this.isInit = true;\n\n      var targetInput = this._element.data('target-input');\n\n      if (this._element.is('input')) {\n        this.input = this._element;\n      } else if (targetInput !== undefined) {\n        if (targetInput === 'nearest') {\n          this.input = this._element.find('input');\n        } else {\n          this.input = $(targetInput);\n        }\n      }\n\n      this._dates = [];\n      this._dates[0] = this.getMoment();\n      this._viewDate = this.getMoment().clone();\n      $.extend(true, this._options, this._dataToOptions());\n      this.hasInitDate = false;\n      this.initDate = void 0;\n      this.options(this._options);\n      this.isInitFormatting = true;\n\n      this._initFormatting();\n\n      this.isInitFormatting = false;\n\n      if (this.input !== undefined && this.input.is('input') && this.input.val().trim().length !== 0) {\n        this._setValue(this._parseInputDate(this.input.val().trim()), 0);\n      } else if (this._options.defaultDate && this.input !== undefined && this.input.attr('placeholder') === undefined) {\n        this._setValue(this._options.defaultDate, 0);\n      }\n\n      if (this.hasInitDate) {\n        this.date(this.initDate);\n      }\n\n      if (this._options.inline) {\n        this.show();\n      }\n\n      this.isInit = false;\n    };\n\n    _proto._update = function _update() {\n      if (!this.widget) {\n        return;\n      }\n\n      this._fillDate();\n\n      this._fillTime();\n    };\n\n    _proto._setValue = function _setValue(targetMoment, index) {\n      var noIndex = typeof index === 'undefined',\n          isClear = !targetMoment && noIndex,\n          isDateUpdateThroughDateOptionFromClientCode = this.isDateUpdateThroughDateOptionFromClientCode,\n          isNotAllowedProgrammaticUpdate = !this.isInit && this._options.updateOnlyThroughDateOption && !isDateUpdateThroughDateOptionFromClientCode;\n      var outpValue = '',\n          isInvalid = false,\n          oldDate = this.unset ? null : this._dates[index];\n\n      if (!oldDate && !this.unset && noIndex && isClear) {\n        oldDate = this._dates[this._dates.length - 1];\n      } // case of calling setValue(null or false)\n\n\n      if (!targetMoment) {\n        if (isNotAllowedProgrammaticUpdate) {\n          this._notifyEvent({\n            type: DateTimePicker.Event.CHANGE,\n            date: targetMoment,\n            oldDate: oldDate,\n            isClear: isClear,\n            isInvalid: isInvalid,\n            isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode,\n            isInit: this.isInit\n          });\n\n          return;\n        }\n\n        if (!this._options.allowMultidate || this._dates.length === 1 || isClear) {\n          this.unset = true;\n          this._dates = [];\n          this._datesFormatted = [];\n        } else {\n          outpValue = \"\" + this._element.data('date') + this._options.multidateSeparator;\n          outpValue = oldDate && outpValue.replace(\"\" + oldDate.format(this.actualFormat) + this._options.multidateSeparator, '').replace(\"\" + this._options.multidateSeparator + this._options.multidateSeparator, '').replace(new RegExp(escapeRegExp(this._options.multidateSeparator) + \"\\\\s*$\"), '') || '';\n\n          this._dates.splice(index, 1);\n\n          this._datesFormatted.splice(index, 1);\n        }\n\n        outpValue = trim(outpValue);\n\n        if (this.input !== undefined) {\n          this.input.val(outpValue);\n          this.input.trigger('input');\n        }\n\n        this._element.data('date', outpValue);\n\n        this._notifyEvent({\n          type: DateTimePicker.Event.CHANGE,\n          date: false,\n          oldDate: oldDate,\n          isClear: isClear,\n          isInvalid: isInvalid,\n          isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode,\n          isInit: this.isInit\n        });\n\n        this._update();\n\n        return;\n      }\n\n      targetMoment = targetMoment.clone().locale(this._options.locale);\n\n      if (this._hasTimeZone()) {\n        targetMoment.tz(this._options.timeZone);\n      }\n\n      if (this._options.stepping !== 1) {\n        targetMoment.minutes(Math.round(targetMoment.minutes() / this._options.stepping) * this._options.stepping).seconds(0);\n      }\n\n      if (this._isValid(targetMoment)) {\n        if (isNotAllowedProgrammaticUpdate) {\n          this._notifyEvent({\n            type: DateTimePicker.Event.CHANGE,\n            date: targetMoment.clone(),\n            oldDate: oldDate,\n            isClear: isClear,\n            isInvalid: isInvalid,\n            isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode,\n            isInit: this.isInit\n          });\n\n          return;\n        }\n\n        this._dates[index] = targetMoment;\n        this._datesFormatted[index] = targetMoment.format('YYYY-MM-DD');\n        this._viewDate = targetMoment.clone();\n\n        if (this._options.allowMultidate && this._dates.length > 1) {\n          for (var i = 0; i < this._dates.length; i++) {\n            outpValue += \"\" + this._dates[i].format(this.actualFormat) + this._options.multidateSeparator;\n          }\n\n          outpValue = outpValue.replace(new RegExp(this._options.multidateSeparator + \"\\\\s*$\"), '');\n        } else {\n          outpValue = this._dates[index].format(this.actualFormat);\n        }\n\n        outpValue = trim(outpValue);\n\n        if (this.input !== undefined) {\n          this.input.val(outpValue);\n          this.input.trigger('input');\n        }\n\n        this._element.data('date', outpValue);\n\n        this.unset = false;\n\n        this._update();\n\n        this._notifyEvent({\n          type: DateTimePicker.Event.CHANGE,\n          date: this._dates[index].clone(),\n          oldDate: oldDate,\n          isClear: isClear,\n          isInvalid: isInvalid,\n          isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode,\n          isInit: this.isInit\n        });\n      } else {\n        isInvalid = true;\n\n        if (!this._options.keepInvalid) {\n          if (this.input !== undefined) {\n            this.input.val(\"\" + (this.unset ? '' : this._dates[index].format(this.actualFormat)));\n            this.input.trigger('input');\n          }\n        } else {\n          this._notifyEvent({\n            type: DateTimePicker.Event.CHANGE,\n            date: targetMoment,\n            oldDate: oldDate,\n            isClear: isClear,\n            isInvalid: isInvalid,\n            isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode,\n            isInit: this.isInit\n          });\n        }\n\n        this._notifyEvent({\n          type: DateTimePicker.Event.ERROR,\n          date: targetMoment,\n          oldDate: oldDate\n        });\n      }\n    };\n\n    _proto._change = function _change(e) {\n      var val = $(e.target).val().trim(),\n          parsedDate = val ? this._parseInputDate(val) : null;\n\n      this._setValue(parsedDate, 0);\n\n      e.stopImmediatePropagation();\n      return false;\n    } //noinspection JSMethodCanBeStatic\n    ;\n\n    _proto._getOptions = function _getOptions(options) {\n      options = $.extend(true, {}, Default, options && options.icons && options.icons.type === 'feather' ? {\n        icons: defaultFeatherIcons\n      } : {}, options);\n      return options;\n    };\n\n    _proto._hasTimeZone = function _hasTimeZone() {\n      return moment.tz !== undefined && this._options.timeZone !== undefined && this._options.timeZone !== null && this._options.timeZone !== '';\n    };\n\n    _proto._isEnabled = function _isEnabled(granularity) {\n      if (typeof granularity !== 'string' || granularity.length > 1) {\n        throw new TypeError('isEnabled expects a single character string parameter');\n      }\n\n      switch (granularity) {\n        case 'y':\n          return this.actualFormat.indexOf('Y') !== -1;\n\n        case 'M':\n          return this.actualFormat.indexOf('M') !== -1;\n\n        case 'd':\n          return this.actualFormat.toLowerCase().indexOf('d') !== -1;\n\n        case 'h':\n        case 'H':\n          return this.actualFormat.toLowerCase().indexOf('h') !== -1;\n\n        case 'm':\n          return this.actualFormat.indexOf('m') !== -1;\n\n        case 's':\n          return this.actualFormat.indexOf('s') !== -1;\n\n        case 'a':\n        case 'A':\n          return this.actualFormat.toLowerCase().indexOf('a') !== -1;\n\n        default:\n          return false;\n      }\n    };\n\n    _proto._hasTime = function _hasTime() {\n      return this._isEnabled('h') || this._isEnabled('m') || this._isEnabled('s');\n    };\n\n    _proto._hasDate = function _hasDate() {\n      return this._isEnabled('y') || this._isEnabled('M') || this._isEnabled('d');\n    };\n\n    _proto._dataToOptions = function _dataToOptions() {\n      var eData = this._element.data();\n\n      var dataOptions = {};\n\n      if (eData.dateOptions && eData.dateOptions instanceof Object) {\n        dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n      }\n\n      $.each(this._options, function (key) {\n        var attributeName = \"date\" + key.charAt(0).toUpperCase() + key.slice(1); //todo data api key\n\n        if (eData[attributeName] !== undefined) {\n          dataOptions[key] = eData[attributeName];\n        } else {\n          delete dataOptions[key];\n        }\n      });\n      return dataOptions;\n    };\n\n    _proto._format = function _format() {\n      return this._options.format || 'YYYY-MM-DD HH:mm';\n    };\n\n    _proto._areSameDates = function _areSameDates(a, b) {\n      var format = this._format();\n\n      return a && b && (a.isSame(b) || moment(a.format(format), format).isSame(moment(b.format(format), format)));\n    };\n\n    _proto._notifyEvent = function _notifyEvent(e) {\n      if (e.type === DateTimePicker.Event.CHANGE) {\n        this._notifyChangeEventContext = this._notifyChangeEventContext || 0;\n        this._notifyChangeEventContext++;\n\n        if (e.date && this._areSameDates(e.date, e.oldDate) || !e.isClear && !e.date && !e.oldDate || this._notifyChangeEventContext > 1) {\n          this._notifyChangeEventContext = void 0;\n          return;\n        }\n\n        this._handlePromptTimeIfNeeded(e);\n      }\n\n      this._element.trigger(e);\n\n      this._notifyChangeEventContext = void 0;\n    };\n\n    _proto._handlePromptTimeIfNeeded = function _handlePromptTimeIfNeeded(e) {\n      if (this._options.promptTimeOnDateChange) {\n        if (!e.oldDate && this._options.useCurrent) {\n          // First time ever. If useCurrent option is set to true (default), do nothing\n          // because the first date is selected automatically.\n          return;\n        } else if (e.oldDate && e.date && (e.oldDate.format('YYYY-MM-DD') === e.date.format('YYYY-MM-DD') || e.oldDate.format('YYYY-MM-DD') !== e.date.format('YYYY-MM-DD') && e.oldDate.format('HH:mm:ss') !== e.date.format('HH:mm:ss'))) {\n          // Date didn't change (time did) or date changed because time did.\n          return;\n        }\n\n        var that = this;\n        clearTimeout(this._currentPromptTimeTimeout);\n        this._currentPromptTimeTimeout = setTimeout(function () {\n          if (that.widget) {\n            that.widget.find('[data-action=\"togglePicker\"]').click();\n          }\n        }, this._options.promptTimeOnDateChangeTransitionDelay);\n      }\n    };\n\n    _proto._viewUpdate = function _viewUpdate(e) {\n      if (e === 'y') {\n        e = 'YYYY';\n      }\n\n      this._notifyEvent({\n        type: DateTimePicker.Event.UPDATE,\n        change: e,\n        viewDate: this._viewDate.clone()\n      });\n    };\n\n    _proto._showMode = function _showMode(dir) {\n      if (!this.widget) {\n        return;\n      }\n\n      if (dir) {\n        this.currentViewMode = Math.max(this.MinViewModeNumber, Math.min(3, this.currentViewMode + dir));\n      }\n\n      this.widget.find('.datepicker > div').hide().filter(\".datepicker-\" + DatePickerModes[this.currentViewMode].CLASS_NAME).show();\n    };\n\n    _proto._isInDisabledDates = function _isInDisabledDates(testDate) {\n      return this._options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n    };\n\n    _proto._isInEnabledDates = function _isInEnabledDates(testDate) {\n      return this._options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n    };\n\n    _proto._isInDisabledHours = function _isInDisabledHours(testDate) {\n      return this._options.disabledHours[testDate.format('H')] === true;\n    };\n\n    _proto._isInEnabledHours = function _isInEnabledHours(testDate) {\n      return this._options.enabledHours[testDate.format('H')] === true;\n    };\n\n    _proto._isValid = function _isValid(targetMoment, granularity) {\n      if (!targetMoment || !targetMoment.isValid()) {\n        return false;\n      }\n\n      if (this._options.disabledDates && granularity === 'd' && this._isInDisabledDates(targetMoment)) {\n        return false;\n      }\n\n      if (this._options.enabledDates && granularity === 'd' && !this._isInEnabledDates(targetMoment)) {\n        return false;\n      }\n\n      if (this._options.minDate && targetMoment.isBefore(this._options.minDate, granularity)) {\n        return false;\n      }\n\n      if (this._options.maxDate && targetMoment.isAfter(this._options.maxDate, granularity)) {\n        return false;\n      }\n\n      if (this._options.daysOfWeekDisabled && granularity === 'd' && this._options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n        return false;\n      }\n\n      if (this._options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && this._isInDisabledHours(targetMoment)) {\n        return false;\n      }\n\n      if (this._options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !this._isInEnabledHours(targetMoment)) {\n        return false;\n      }\n\n      if (this._options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n        var found = false;\n        $.each(this._options.disabledTimeIntervals, function () {\n          if (targetMoment.isBetween(this[0], this[1])) {\n            found = true;\n            return false;\n          }\n        });\n\n        if (found) {\n          return false;\n        }\n      }\n\n      return true;\n    };\n\n    _proto._parseInputDate = function _parseInputDate(inputDate, _temp) {\n      var _ref = _temp === void 0 ? {} : _temp,\n          _ref$isPickerShow = _ref.isPickerShow,\n          isPickerShow = _ref$isPickerShow === void 0 ? false : _ref$isPickerShow;\n\n      if (this._options.parseInputDate === undefined || isPickerShow) {\n        if (!moment.isMoment(inputDate)) {\n          inputDate = this.getMoment(inputDate);\n        }\n      } else {\n        inputDate = this._options.parseInputDate(inputDate);\n      } //inputDate.locale(this.options.locale);\n\n\n      return inputDate;\n    };\n\n    _proto._keydown = function _keydown(e) {\n      var handler = null,\n          index,\n          index2,\n          keyBindKeys,\n          allModifiersPressed;\n      var pressedKeys = [],\n          pressedModifiers = {},\n          currentKey = e.which,\n          pressed = 'p';\n      keyState[currentKey] = pressed;\n\n      for (index in keyState) {\n        if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n          pressedKeys.push(index);\n\n          if (parseInt(index, 10) !== currentKey) {\n            pressedModifiers[index] = true;\n          }\n        }\n      }\n\n      for (index in this._options.keyBinds) {\n        if (this._options.keyBinds.hasOwnProperty(index) && typeof this._options.keyBinds[index] === 'function') {\n          keyBindKeys = index.split(' ');\n\n          if (keyBindKeys.length === pressedKeys.length && KeyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n            allModifiersPressed = true;\n\n            for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n              if (!(KeyMap[keyBindKeys[index2]] in pressedModifiers)) {\n                allModifiersPressed = false;\n                break;\n              }\n            }\n\n            if (allModifiersPressed) {\n              handler = this._options.keyBinds[index];\n              break;\n            }\n          }\n        }\n      }\n\n      if (handler) {\n        if (handler.call(this)) {\n          e.stopPropagation();\n          e.preventDefault();\n        }\n      }\n    } //noinspection JSMethodCanBeStatic,SpellCheckingInspection\n    ;\n\n    _proto._keyup = function _keyup(e) {\n      keyState[e.which] = 'r';\n\n      if (keyPressHandled[e.which]) {\n        keyPressHandled[e.which] = false;\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    };\n\n    _proto._indexGivenDates = function _indexGivenDates(givenDatesArray) {\n      // Store given enabledDates and disabledDates as keys.\n      // This way we can check their existence in O(1) time instead of looping through whole array.\n      // (for example: options.enabledDates['2014-02-27'] === true)\n      var givenDatesIndexed = {},\n          self = this;\n      $.each(givenDatesArray, function () {\n        var dDate = self._parseInputDate(this);\n\n        if (dDate.isValid()) {\n          givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n        }\n      });\n      return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\n    };\n\n    _proto._indexGivenHours = function _indexGivenHours(givenHoursArray) {\n      // Store given enabledHours and disabledHours as keys.\n      // This way we can check their existence in O(1) time instead of looping through whole array.\n      // (for example: options.enabledHours['2014-02-27'] === true)\n      var givenHoursIndexed = {};\n      $.each(givenHoursArray, function () {\n        givenHoursIndexed[this] = true;\n      });\n      return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\n    };\n\n    _proto._initFormatting = function _initFormatting() {\n      var format = this._options.format || 'L LT',\n          self = this;\n      this.actualFormat = format.replace(/(\\[[^\\[]*])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\n        return (self.isInitFormatting && self._options.date === null ? self.getMoment() : self._dates[0]).localeData().longDateFormat(formatInput) || formatInput; //todo taking the first date should be ok\n      });\n      this.parseFormats = this._options.extraFormats ? this._options.extraFormats.slice() : [];\n\n      if (this.parseFormats.indexOf(format) < 0 && this.parseFormats.indexOf(this.actualFormat) < 0) {\n        this.parseFormats.push(this.actualFormat);\n      }\n\n      this.use24Hours = this.actualFormat.toLowerCase().indexOf('a') < 1 && this.actualFormat.replace(/\\[.*?]/g, '').indexOf('h') < 1;\n\n      if (this._isEnabled('y')) {\n        this.MinViewModeNumber = 2;\n      }\n\n      if (this._isEnabled('M')) {\n        this.MinViewModeNumber = 1;\n      }\n\n      if (this._isEnabled('d')) {\n        this.MinViewModeNumber = 0;\n      }\n\n      this.currentViewMode = Math.max(this.MinViewModeNumber, this.currentViewMode);\n\n      if (!this.unset) {\n        this._setValue(this._dates[0], 0);\n      }\n    };\n\n    _proto._getLastPickedDate = function _getLastPickedDate() {\n      var lastPickedDate = this._dates[this._getLastPickedDateIndex()];\n\n      if (!lastPickedDate && this._options.allowMultidate) {\n        lastPickedDate = moment(new Date());\n      }\n\n      return lastPickedDate;\n    };\n\n    _proto._getLastPickedDateIndex = function _getLastPickedDateIndex() {\n      return this._dates.length - 1;\n    } //public\n    ;\n\n    _proto.getMoment = function getMoment(d) {\n      var returnMoment;\n\n      if (d === undefined || d === null) {\n        // TODO: Should this use format?\n        returnMoment = moment().clone().locale(this._options.locale);\n      } else if (this._hasTimeZone()) {\n        // There is a string to parse and a default time zone\n        // parse with the tz function which takes a default time zone if it is not in the format string\n        returnMoment = moment.tz(d, this.parseFormats, this._options.locale, this._options.useStrict, this._options.timeZone);\n      } else {\n        returnMoment = moment(d, this.parseFormats, this._options.locale, this._options.useStrict);\n      }\n\n      if (this._hasTimeZone()) {\n        returnMoment.tz(this._options.timeZone);\n      }\n\n      return returnMoment;\n    };\n\n    _proto.toggle = function toggle() {\n      return this.widget ? this.hide() : this.show();\n    };\n\n    _proto.readonly = function readonly(_readonly) {\n      if (arguments.length === 0) {\n        return this._options.readonly;\n      }\n\n      if (typeof _readonly !== 'boolean') {\n        throw new TypeError('readonly() expects a boolean parameter');\n      }\n\n      this._options.readonly = _readonly;\n\n      if (this.input !== undefined) {\n        this.input.prop('readonly', this._options.readonly);\n      }\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.ignoreReadonly = function ignoreReadonly(_ignoreReadonly) {\n      if (arguments.length === 0) {\n        return this._options.ignoreReadonly;\n      }\n\n      if (typeof _ignoreReadonly !== 'boolean') {\n        throw new TypeError('ignoreReadonly() expects a boolean parameter');\n      }\n\n      this._options.ignoreReadonly = _ignoreReadonly;\n    };\n\n    _proto.options = function options(newOptions) {\n      if (arguments.length === 0) {\n        return $.extend(true, {}, this._options);\n      }\n\n      if (!(newOptions instanceof Object)) {\n        throw new TypeError('options() this.options parameter should be an object');\n      }\n\n      $.extend(true, this._options, newOptions);\n      var self = this,\n          optionsKeys = Object.keys(this._options).sort(optionsSortFn);\n      $.each(optionsKeys, function (i, key) {\n        var value = self._options[key];\n\n        if (self[key] !== undefined) {\n          if (self.isInit && key === 'date') {\n            self.hasInitDate = true;\n            self.initDate = value;\n            return;\n          }\n\n          self[key](value);\n        }\n      });\n    };\n\n    _proto.date = function date(newDate, index) {\n      index = index || 0;\n\n      if (arguments.length === 0) {\n        if (this.unset) {\n          return null;\n        }\n\n        if (this._options.allowMultidate) {\n          return this._dates.join(this._options.multidateSeparator);\n        } else {\n          return this._dates[index].clone();\n        }\n      }\n\n      if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n        throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n      }\n\n      if (typeof newDate === 'string' && isValidDateTimeStr(newDate)) {\n        newDate = new Date(newDate);\n      }\n\n      this._setValue(newDate === null ? null : this._parseInputDate(newDate), index);\n    };\n\n    _proto.updateOnlyThroughDateOption = function updateOnlyThroughDateOption(_updateOnlyThroughDateOption) {\n      if (typeof _updateOnlyThroughDateOption !== 'boolean') {\n        throw new TypeError('updateOnlyThroughDateOption() expects a boolean parameter');\n      }\n\n      this._options.updateOnlyThroughDateOption = _updateOnlyThroughDateOption;\n    };\n\n    _proto.format = function format(newFormat) {\n      if (arguments.length === 0) {\n        return this._options.format;\n      }\n\n      if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\n        throw new TypeError(\"format() expects a string or boolean:false parameter \" + newFormat);\n      }\n\n      this._options.format = newFormat;\n\n      if (this.actualFormat) {\n        this._initFormatting(); // reinitialize formatting\n\n      }\n    };\n\n    _proto.timeZone = function timeZone(newZone) {\n      if (arguments.length === 0) {\n        return this._options.timeZone;\n      }\n\n      if (typeof newZone !== 'string') {\n        throw new TypeError('newZone() expects a string parameter');\n      }\n\n      this._options.timeZone = newZone;\n    };\n\n    _proto.dayViewHeaderFormat = function dayViewHeaderFormat(newFormat) {\n      if (arguments.length === 0) {\n        return this._options.dayViewHeaderFormat;\n      }\n\n      if (typeof newFormat !== 'string') {\n        throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n      }\n\n      this._options.dayViewHeaderFormat = newFormat;\n    };\n\n    _proto.extraFormats = function extraFormats(formats) {\n      if (arguments.length === 0) {\n        return this._options.extraFormats;\n      }\n\n      if (formats !== false && !(formats instanceof Array)) {\n        throw new TypeError('extraFormats() expects an array or false parameter');\n      }\n\n      this._options.extraFormats = formats;\n\n      if (this.parseFormats) {\n        this._initFormatting(); // reinit formatting\n\n      }\n    };\n\n    _proto.disabledDates = function disabledDates(dates) {\n      if (arguments.length === 0) {\n        return this._options.disabledDates ? $.extend({}, this._options.disabledDates) : this._options.disabledDates;\n      }\n\n      if (!dates) {\n        this._options.disabledDates = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(dates instanceof Array)) {\n        throw new TypeError('disabledDates() expects an array parameter');\n      }\n\n      this._options.disabledDates = this._indexGivenDates(dates);\n      this._options.enabledDates = false;\n\n      this._update();\n    };\n\n    _proto.enabledDates = function enabledDates(dates) {\n      if (arguments.length === 0) {\n        return this._options.enabledDates ? $.extend({}, this._options.enabledDates) : this._options.enabledDates;\n      }\n\n      if (!dates) {\n        this._options.enabledDates = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(dates instanceof Array)) {\n        throw new TypeError('enabledDates() expects an array parameter');\n      }\n\n      this._options.enabledDates = this._indexGivenDates(dates);\n      this._options.disabledDates = false;\n\n      this._update();\n    };\n\n    _proto.daysOfWeekDisabled = function daysOfWeekDisabled(_daysOfWeekDisabled) {\n      if (arguments.length === 0) {\n        return this._options.daysOfWeekDisabled.splice(0);\n      }\n\n      if (typeof _daysOfWeekDisabled === 'boolean' && !_daysOfWeekDisabled) {\n        this._options.daysOfWeekDisabled = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(_daysOfWeekDisabled instanceof Array)) {\n        throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n      }\n\n      this._options.daysOfWeekDisabled = _daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\n        currentValue = parseInt(currentValue, 10);\n\n        if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n          return previousValue;\n        }\n\n        if (previousValue.indexOf(currentValue) === -1) {\n          previousValue.push(currentValue);\n        }\n\n        return previousValue;\n      }, []).sort();\n\n      if (this._options.useCurrent && !this._options.keepInvalid) {\n        for (var i = 0; i < this._dates.length; i++) {\n          var tries = 0;\n\n          while (!this._isValid(this._dates[i], 'd')) {\n            this._dates[i].add(1, 'd');\n\n            if (tries === 31) {\n              throw 'Tried 31 times to find a valid date';\n            }\n\n            tries++;\n          }\n\n          this._setValue(this._dates[i], i);\n        }\n      }\n\n      this._update();\n    };\n\n    _proto.maxDate = function maxDate(_maxDate) {\n      if (arguments.length === 0) {\n        return this._options.maxDate ? this._options.maxDate.clone() : this._options.maxDate;\n      }\n\n      if (typeof _maxDate === 'boolean' && _maxDate === false) {\n        this._options.maxDate = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (typeof _maxDate === 'string') {\n        if (_maxDate === 'now' || _maxDate === 'moment') {\n          _maxDate = this.getMoment();\n        }\n      }\n\n      var parsedDate = this._parseInputDate(_maxDate);\n\n      if (!parsedDate.isValid()) {\n        throw new TypeError(\"maxDate() Could not parse date parameter: \" + _maxDate);\n      }\n\n      if (this._options.minDate && parsedDate.isBefore(this._options.minDate)) {\n        throw new TypeError(\"maxDate() date parameter is before this.options.minDate: \" + parsedDate.format(this.actualFormat));\n      }\n\n      this._options.maxDate = parsedDate;\n\n      for (var i = 0; i < this._dates.length; i++) {\n        if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isAfter(_maxDate)) {\n          this._setValue(this._options.maxDate, i);\n        }\n      }\n\n      if (this._viewDate.isAfter(parsedDate)) {\n        this._viewDate = parsedDate.clone().subtract(this._options.stepping, 'm');\n      }\n\n      this._update();\n    };\n\n    _proto.minDate = function minDate(_minDate) {\n      if (arguments.length === 0) {\n        return this._options.minDate ? this._options.minDate.clone() : this._options.minDate;\n      }\n\n      if (typeof _minDate === 'boolean' && _minDate === false) {\n        this._options.minDate = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (typeof _minDate === 'string') {\n        if (_minDate === 'now' || _minDate === 'moment') {\n          _minDate = this.getMoment();\n        }\n      }\n\n      var parsedDate = this._parseInputDate(_minDate);\n\n      if (!parsedDate.isValid()) {\n        throw new TypeError(\"minDate() Could not parse date parameter: \" + _minDate);\n      }\n\n      if (this._options.maxDate && parsedDate.isAfter(this._options.maxDate)) {\n        throw new TypeError(\"minDate() date parameter is after this.options.maxDate: \" + parsedDate.format(this.actualFormat));\n      }\n\n      this._options.minDate = parsedDate;\n\n      for (var i = 0; i < this._dates.length; i++) {\n        if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isBefore(_minDate)) {\n          this._setValue(this._options.minDate, i);\n        }\n      }\n\n      if (this._viewDate.isBefore(parsedDate)) {\n        this._viewDate = parsedDate.clone().add(this._options.stepping, 'm');\n      }\n\n      this._update();\n    };\n\n    _proto.defaultDate = function defaultDate(_defaultDate) {\n      if (arguments.length === 0) {\n        return this._options.defaultDate ? this._options.defaultDate.clone() : this._options.defaultDate;\n      }\n\n      if (!_defaultDate) {\n        this._options.defaultDate = false;\n        return true;\n      }\n\n      if (typeof _defaultDate === 'string') {\n        if (_defaultDate === 'now' || _defaultDate === 'moment') {\n          _defaultDate = this.getMoment();\n        } else {\n          _defaultDate = this.getMoment(_defaultDate);\n        }\n      }\n\n      var parsedDate = this._parseInputDate(_defaultDate);\n\n      if (!parsedDate.isValid()) {\n        throw new TypeError(\"defaultDate() Could not parse date parameter: \" + _defaultDate);\n      }\n\n      if (!this._isValid(parsedDate)) {\n        throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n      }\n\n      this._options.defaultDate = parsedDate;\n\n      if (this._options.defaultDate && this._options.inline || this.input !== undefined && this.input.val().trim() === '') {\n        this._setValue(this._options.defaultDate, 0);\n      }\n    };\n\n    _proto.locale = function locale(_locale) {\n      if (arguments.length === 0) {\n        return this._options.locale;\n      }\n\n      if (!moment.localeData(_locale)) {\n        throw new TypeError(\"locale() locale \" + _locale + \" is not loaded from moment locales!\");\n      }\n\n      this._options.locale = _locale;\n\n      for (var i = 0; i < this._dates.length; i++) {\n        this._dates[i].locale(this._options.locale);\n      }\n\n      this._viewDate.locale(this._options.locale);\n\n      if (this.actualFormat) {\n        this._initFormatting(); // reinitialize formatting\n\n      }\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.stepping = function stepping(_stepping) {\n      if (arguments.length === 0) {\n        return this._options.stepping;\n      }\n\n      _stepping = parseInt(_stepping, 10);\n\n      if (isNaN(_stepping) || _stepping < 1) {\n        _stepping = 1;\n      }\n\n      this._options.stepping = _stepping;\n    };\n\n    _proto.useCurrent = function useCurrent(_useCurrent) {\n      var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n\n      if (arguments.length === 0) {\n        return this._options.useCurrent;\n      }\n\n      if (typeof _useCurrent !== 'boolean' && typeof _useCurrent !== 'string') {\n        throw new TypeError('useCurrent() expects a boolean or string parameter');\n      }\n\n      if (typeof _useCurrent === 'string' && useCurrentOptions.indexOf(_useCurrent.toLowerCase()) === -1) {\n        throw new TypeError(\"useCurrent() expects a string parameter of \" + useCurrentOptions.join(', '));\n      }\n\n      this._options.useCurrent = _useCurrent;\n    };\n\n    _proto.collapse = function collapse(_collapse) {\n      if (arguments.length === 0) {\n        return this._options.collapse;\n      }\n\n      if (typeof _collapse !== 'boolean') {\n        throw new TypeError('collapse() expects a boolean parameter');\n      }\n\n      if (this._options.collapse === _collapse) {\n        return true;\n      }\n\n      this._options.collapse = _collapse;\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.icons = function icons(_icons) {\n      if (arguments.length === 0) {\n        return $.extend({}, this._options.icons);\n      }\n\n      if (!(_icons instanceof Object)) {\n        throw new TypeError('icons() expects parameter to be an Object');\n      }\n\n      $.extend(this._options.icons, _icons);\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.tooltips = function tooltips(_tooltips) {\n      if (arguments.length === 0) {\n        return $.extend({}, this._options.tooltips);\n      }\n\n      if (!(_tooltips instanceof Object)) {\n        throw new TypeError('tooltips() expects parameter to be an Object');\n      }\n\n      $.extend(this._options.tooltips, _tooltips);\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.useStrict = function useStrict(_useStrict) {\n      if (arguments.length === 0) {\n        return this._options.useStrict;\n      }\n\n      if (typeof _useStrict !== 'boolean') {\n        throw new TypeError('useStrict() expects a boolean parameter');\n      }\n\n      this._options.useStrict = _useStrict;\n    };\n\n    _proto.sideBySide = function sideBySide(_sideBySide) {\n      if (arguments.length === 0) {\n        return this._options.sideBySide;\n      }\n\n      if (typeof _sideBySide !== 'boolean') {\n        throw new TypeError('sideBySide() expects a boolean parameter');\n      }\n\n      this._options.sideBySide = _sideBySide;\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.viewMode = function viewMode(_viewMode) {\n      if (arguments.length === 0) {\n        return this._options.viewMode;\n      }\n\n      if (typeof _viewMode !== 'string') {\n        throw new TypeError('viewMode() expects a string parameter');\n      }\n\n      if (DateTimePicker.ViewModes.indexOf(_viewMode) === -1) {\n        throw new TypeError(\"viewMode() parameter must be one of (\" + DateTimePicker.ViewModes.join(', ') + \") value\");\n      }\n\n      this._options.viewMode = _viewMode;\n      this.currentViewMode = Math.max(DateTimePicker.ViewModes.indexOf(_viewMode) - 1, this.MinViewModeNumber);\n\n      this._showMode();\n    };\n\n    _proto.calendarWeeks = function calendarWeeks(_calendarWeeks) {\n      if (arguments.length === 0) {\n        return this._options.calendarWeeks;\n      }\n\n      if (typeof _calendarWeeks !== 'boolean') {\n        throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n      }\n\n      this._options.calendarWeeks = _calendarWeeks;\n\n      this._update();\n    };\n\n    _proto.buttons = function buttons(_buttons) {\n      if (arguments.length === 0) {\n        return $.extend({}, this._options.buttons);\n      }\n\n      if (!(_buttons instanceof Object)) {\n        throw new TypeError('buttons() expects parameter to be an Object');\n      }\n\n      $.extend(this._options.buttons, _buttons);\n\n      if (typeof this._options.buttons.showToday !== 'boolean') {\n        throw new TypeError('buttons.showToday expects a boolean parameter');\n      }\n\n      if (typeof this._options.buttons.showClear !== 'boolean') {\n        throw new TypeError('buttons.showClear expects a boolean parameter');\n      }\n\n      if (typeof this._options.buttons.showClose !== 'boolean') {\n        throw new TypeError('buttons.showClose expects a boolean parameter');\n      }\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto.keepOpen = function keepOpen(_keepOpen) {\n      if (arguments.length === 0) {\n        return this._options.keepOpen;\n      }\n\n      if (typeof _keepOpen !== 'boolean') {\n        throw new TypeError('keepOpen() expects a boolean parameter');\n      }\n\n      this._options.keepOpen = _keepOpen;\n    };\n\n    _proto.focusOnShow = function focusOnShow(_focusOnShow) {\n      if (arguments.length === 0) {\n        return this._options.focusOnShow;\n      }\n\n      if (typeof _focusOnShow !== 'boolean') {\n        throw new TypeError('focusOnShow() expects a boolean parameter');\n      }\n\n      this._options.focusOnShow = _focusOnShow;\n    };\n\n    _proto.inline = function inline(_inline) {\n      if (arguments.length === 0) {\n        return this._options.inline;\n      }\n\n      if (typeof _inline !== 'boolean') {\n        throw new TypeError('inline() expects a boolean parameter');\n      }\n\n      this._options.inline = _inline;\n    };\n\n    _proto.clear = function clear() {\n      this._setValue(null); //todo\n\n    };\n\n    _proto.keyBinds = function keyBinds(_keyBinds) {\n      if (arguments.length === 0) {\n        return this._options.keyBinds;\n      }\n\n      this._options.keyBinds = _keyBinds;\n    };\n\n    _proto.debug = function debug(_debug) {\n      if (typeof _debug !== 'boolean') {\n        throw new TypeError('debug() expects a boolean parameter');\n      }\n\n      this._options.debug = _debug;\n    };\n\n    _proto.allowInputToggle = function allowInputToggle(_allowInputToggle) {\n      if (arguments.length === 0) {\n        return this._options.allowInputToggle;\n      }\n\n      if (typeof _allowInputToggle !== 'boolean') {\n        throw new TypeError('allowInputToggle() expects a boolean parameter');\n      }\n\n      this._options.allowInputToggle = _allowInputToggle;\n    };\n\n    _proto.keepInvalid = function keepInvalid(_keepInvalid) {\n      if (arguments.length === 0) {\n        return this._options.keepInvalid;\n      }\n\n      if (typeof _keepInvalid !== 'boolean') {\n        throw new TypeError('keepInvalid() expects a boolean parameter');\n      }\n\n      this._options.keepInvalid = _keepInvalid;\n    };\n\n    _proto.datepickerInput = function datepickerInput(_datepickerInput) {\n      if (arguments.length === 0) {\n        return this._options.datepickerInput;\n      }\n\n      if (typeof _datepickerInput !== 'string') {\n        throw new TypeError('datepickerInput() expects a string parameter');\n      }\n\n      this._options.datepickerInput = _datepickerInput;\n    };\n\n    _proto.parseInputDate = function parseInputDate(_parseInputDate2) {\n      if (arguments.length === 0) {\n        return this._options.parseInputDate;\n      }\n\n      if (typeof _parseInputDate2 !== 'function') {\n        throw new TypeError('parseInputDate() should be as function');\n      }\n\n      this._options.parseInputDate = _parseInputDate2;\n    };\n\n    _proto.disabledTimeIntervals = function disabledTimeIntervals(_disabledTimeIntervals) {\n      if (arguments.length === 0) {\n        return this._options.disabledTimeIntervals ? $.extend({}, this._options.disabledTimeIntervals) : this._options.disabledTimeIntervals;\n      }\n\n      if (!_disabledTimeIntervals) {\n        this._options.disabledTimeIntervals = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(_disabledTimeIntervals instanceof Array)) {\n        throw new TypeError('disabledTimeIntervals() expects an array parameter');\n      }\n\n      this._options.disabledTimeIntervals = _disabledTimeIntervals;\n\n      this._update();\n    };\n\n    _proto.disabledHours = function disabledHours(hours) {\n      if (arguments.length === 0) {\n        return this._options.disabledHours ? $.extend({}, this._options.disabledHours) : this._options.disabledHours;\n      }\n\n      if (!hours) {\n        this._options.disabledHours = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(hours instanceof Array)) {\n        throw new TypeError('disabledHours() expects an array parameter');\n      }\n\n      this._options.disabledHours = this._indexGivenHours(hours);\n      this._options.enabledHours = false;\n\n      if (this._options.useCurrent && !this._options.keepInvalid) {\n        for (var i = 0; i < this._dates.length; i++) {\n          var tries = 0;\n\n          while (!this._isValid(this._dates[i], 'h')) {\n            this._dates[i].add(1, 'h');\n\n            if (tries === 24) {\n              throw 'Tried 24 times to find a valid date';\n            }\n\n            tries++;\n          }\n\n          this._setValue(this._dates[i], i);\n        }\n      }\n\n      this._update();\n    };\n\n    _proto.enabledHours = function enabledHours(hours) {\n      if (arguments.length === 0) {\n        return this._options.enabledHours ? $.extend({}, this._options.enabledHours) : this._options.enabledHours;\n      }\n\n      if (!hours) {\n        this._options.enabledHours = false;\n\n        this._update();\n\n        return true;\n      }\n\n      if (!(hours instanceof Array)) {\n        throw new TypeError('enabledHours() expects an array parameter');\n      }\n\n      this._options.enabledHours = this._indexGivenHours(hours);\n      this._options.disabledHours = false;\n\n      if (this._options.useCurrent && !this._options.keepInvalid) {\n        for (var i = 0; i < this._dates.length; i++) {\n          var tries = 0;\n\n          while (!this._isValid(this._dates[i], 'h')) {\n            this._dates[i].add(1, 'h');\n\n            if (tries === 24) {\n              throw 'Tried 24 times to find a valid date';\n            }\n\n            tries++;\n          }\n\n          this._setValue(this._dates[i], i);\n        }\n      }\n\n      this._update();\n    };\n\n    _proto.viewDate = function viewDate(newDate) {\n      if (arguments.length === 0) {\n        return this._viewDate.clone();\n      }\n\n      if (!newDate) {\n        this._viewDate = (this._dates[0] || this.getMoment()).clone();\n        return true;\n      }\n\n      if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n        throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n      }\n\n      this._viewDate = this._parseInputDate(newDate);\n\n      this._update();\n\n      this._viewUpdate(DatePickerModes[this.currentViewMode] && DatePickerModes[this.currentViewMode].NAV_FUNCTION);\n    };\n\n    _proto._fillDate = function _fillDate() {};\n\n    _proto._useFeatherIcons = function _useFeatherIcons() {\n      return this._options.icons.type === 'feather';\n    };\n\n    _proto.allowMultidate = function allowMultidate(_allowMultidate) {\n      if (typeof _allowMultidate !== 'boolean') {\n        throw new TypeError('allowMultidate() expects a boolean parameter');\n      }\n\n      this._options.allowMultidate = _allowMultidate;\n    };\n\n    _proto.multidateSeparator = function multidateSeparator(_multidateSeparator) {\n      if (arguments.length === 0) {\n        return this._options.multidateSeparator;\n      }\n\n      if (typeof _multidateSeparator !== 'string') {\n        throw new TypeError('multidateSeparator expects a string parameter');\n      }\n\n      this._options.multidateSeparator = _multidateSeparator;\n    };\n\n    _createClass(DateTimePicker, null, [{\n      key: \"NAME\",\n      get: function get() {\n        return NAME;\n      }\n      /**\n       * @return {string}\n       */\n\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY;\n      }\n      /**\n       * @return {string}\n       */\n\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY;\n      }\n      /**\n       * @return {string}\n       */\n\n    }, {\n      key: \"DATA_API_KEY\",\n      get: function get() {\n        return DATA_API_KEY;\n      }\n    }, {\n      key: \"DatePickerModes\",\n      get: function get() {\n        return DatePickerModes;\n      }\n    }, {\n      key: \"ViewModes\",\n      get: function get() {\n        return ViewModes;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"Selector\",\n      get: function get() {\n        return Selector;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      },\n      set: function set(value) {\n        Default = value;\n      }\n    }, {\n      key: \"ClassName\",\n      get: function get() {\n        return ClassName;\n      }\n    }]);\n\n    return DateTimePicker;\n  }();\n\n  return DateTimePicker;\n}(jQuery, moment); //noinspection JSUnusedGlobalSymbols\n\n/* global DateTimePicker */\n\n/* global feather */\n\n\nvar TempusDominusBootstrap4 = function ($) {\n  // eslint-disable-line no-unused-vars\n  // ReSharper disable once InconsistentNaming\n  var JQUERY_NO_CONFLICT = $.fn[DateTimePicker.NAME],\n      verticalModes = ['top', 'bottom', 'auto'],\n      horizontalModes = ['left', 'right', 'auto'],\n      toolbarPlacements = ['default', 'top', 'bottom'],\n      getSelectorFromElement = function getSelectorFromElement($element) {\n    var selector = $element.data('target'),\n        $selector;\n\n    if (!selector) {\n      selector = $element.attr('href') || '';\n      selector = /^#[a-z]/i.test(selector) ? selector : null;\n    }\n\n    $selector = $(selector);\n\n    if ($selector.length === 0) {\n      return $element;\n    }\n\n    if (!$selector.data(DateTimePicker.DATA_KEY)) {\n      $.extend({}, $selector.data(), $(this).data());\n    }\n\n    return $selector;\n  }; // ReSharper disable once InconsistentNaming\n\n\n  var TempusDominusBootstrap4 = /*#__PURE__*/function (_DateTimePicker) {\n    _inheritsLoose(TempusDominusBootstrap4, _DateTimePicker);\n\n    function TempusDominusBootstrap4(element, options) {\n      var _this;\n\n      _this = _DateTimePicker.call(this, element, options) || this;\n\n      _this._init();\n\n      return _this;\n    }\n\n    var _proto2 = TempusDominusBootstrap4.prototype;\n\n    _proto2._init = function _init() {\n      if (this._element.hasClass('input-group')) {\n        var datepickerButton = this._element.find('.datepickerbutton');\n\n        if (datepickerButton.length === 0) {\n          this.component = this._element.find('[data-toggle=\"datetimepicker\"]');\n        } else {\n          this.component = datepickerButton;\n        }\n      }\n    };\n\n    _proto2._iconTag = function _iconTag(iconName) {\n      if (typeof feather !== 'undefined' && this._useFeatherIcons() && feather.icons[iconName]) {\n        return $('<span>').html(feather.icons[iconName].toSvg());\n      } else {\n        return $('<span>').addClass(iconName);\n      }\n    };\n\n    _proto2._getDatePickerTemplate = function _getDatePickerTemplate() {\n      var headTemplate = $('<thead>').append($('<tr>').append($('<th>').addClass('prev').attr('data-action', 'previous').append(this._iconTag(this._options.icons.previous))).append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', \"\" + (this._options.calendarWeeks ? '6' : '5'))).append($('<th>').addClass('next').attr('data-action', 'next').append(this._iconTag(this._options.icons.next)))),\n          contTemplate = $('<tbody>').append($('<tr>').append($('<td>').attr('colspan', \"\" + (this._options.calendarWeeks ? '8' : '7'))));\n      return [$('<div>').addClass('datepicker-days').append($('<table>').addClass('table table-sm').append(headTemplate).append($('<tbody>'))), $('<div>').addClass('datepicker-months').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-years').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-decades').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\n    };\n\n    _proto2._getTimePickerMainTemplate = function _getTimePickerMainTemplate() {\n      var topRow = $('<tr>'),\n          middleRow = $('<tr>'),\n          bottomRow = $('<tr>');\n\n      if (this._isEnabled('h')) {\n        topRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.incrementHour\n        }).addClass('btn').attr('data-action', 'incrementHours').append(this._iconTag(this._options.icons.up))));\n        middleRow.append($('<td>').append($('<span>').addClass('timepicker-hour').attr({\n          'data-time-component': 'hours',\n          'title': this._options.tooltips.pickHour\n        }).attr('data-action', 'showHours')));\n        bottomRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.decrementHour\n        }).addClass('btn').attr('data-action', 'decrementHours').append(this._iconTag(this._options.icons.down))));\n      }\n\n      if (this._isEnabled('m')) {\n        if (this._isEnabled('h')) {\n          topRow.append($('<td>').addClass('separator'));\n          middleRow.append($('<td>').addClass('separator').html(':'));\n          bottomRow.append($('<td>').addClass('separator'));\n        }\n\n        topRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.incrementMinute\n        }).addClass('btn').attr('data-action', 'incrementMinutes').append(this._iconTag(this._options.icons.up))));\n        middleRow.append($('<td>').append($('<span>').addClass('timepicker-minute').attr({\n          'data-time-component': 'minutes',\n          'title': this._options.tooltips.pickMinute\n        }).attr('data-action', 'showMinutes')));\n        bottomRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.decrementMinute\n        }).addClass('btn').attr('data-action', 'decrementMinutes').append(this._iconTag(this._options.icons.down))));\n      }\n\n      if (this._isEnabled('s')) {\n        if (this._isEnabled('m')) {\n          topRow.append($('<td>').addClass('separator'));\n          middleRow.append($('<td>').addClass('separator').html(':'));\n          bottomRow.append($('<td>').addClass('separator'));\n        }\n\n        topRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.incrementSecond\n        }).addClass('btn').attr('data-action', 'incrementSeconds').append(this._iconTag(this._options.icons.up))));\n        middleRow.append($('<td>').append($('<span>').addClass('timepicker-second').attr({\n          'data-time-component': 'seconds',\n          'title': this._options.tooltips.pickSecond\n        }).attr('data-action', 'showSeconds')));\n        bottomRow.append($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'title': this._options.tooltips.decrementSecond\n        }).addClass('btn').attr('data-action', 'decrementSeconds').append(this._iconTag(this._options.icons.down))));\n      }\n\n      if (!this.use24Hours) {\n        topRow.append($('<td>').addClass('separator'));\n        middleRow.append($('<td>').append($('<button>').addClass('btn btn-primary').attr({\n          'data-action': 'togglePeriod',\n          tabindex: '-1',\n          'title': this._options.tooltips.togglePeriod\n        })));\n        bottomRow.append($('<td>').addClass('separator'));\n      }\n\n      return $('<div>').addClass('timepicker-picker').append($('<table>').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\n    };\n\n    _proto2._getTimePickerTemplate = function _getTimePickerTemplate() {\n      var hoursView = $('<div>').addClass('timepicker-hours').append($('<table>').addClass('table-condensed')),\n          minutesView = $('<div>').addClass('timepicker-minutes').append($('<table>').addClass('table-condensed')),\n          secondsView = $('<div>').addClass('timepicker-seconds').append($('<table>').addClass('table-condensed')),\n          ret = [this._getTimePickerMainTemplate()];\n\n      if (this._isEnabled('h')) {\n        ret.push(hoursView);\n      }\n\n      if (this._isEnabled('m')) {\n        ret.push(minutesView);\n      }\n\n      if (this._isEnabled('s')) {\n        ret.push(secondsView);\n      }\n\n      return ret;\n    };\n\n    _proto2._getToolbar = function _getToolbar() {\n      var row = [];\n\n      if (this._options.buttons.showToday) {\n        row.push($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'data-action': 'today',\n          'title': this._options.tooltips.today\n        }).append(this._iconTag(this._options.icons.today))));\n      }\n\n      if (!this._options.sideBySide && this._options.collapse && this._hasDate() && this._hasTime()) {\n        var title, icon;\n\n        if (this._options.viewMode === 'times') {\n          title = this._options.tooltips.selectDate;\n          icon = this._options.icons.date;\n        } else {\n          title = this._options.tooltips.selectTime;\n          icon = this._options.icons.time;\n        }\n\n        row.push($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'data-action': 'togglePicker',\n          'title': title\n        }).append(this._iconTag(icon))));\n      }\n\n      if (this._options.buttons.showClear) {\n        row.push($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'data-action': 'clear',\n          'title': this._options.tooltips.clear\n        }).append(this._iconTag(this._options.icons.clear))));\n      }\n\n      if (this._options.buttons.showClose) {\n        row.push($('<td>').append($('<a>').attr({\n          href: '#',\n          tabindex: '-1',\n          'data-action': 'close',\n          'title': this._options.tooltips.close\n        }).append(this._iconTag(this._options.icons.close))));\n      }\n\n      return row.length === 0 ? '' : $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row)));\n    };\n\n    _proto2._getTemplate = function _getTemplate() {\n      var template = $('<div>').addClass((\"bootstrap-datetimepicker-widget dropdown-menu \" + (this._options.calendarWeeks ? 'tempusdominus-bootstrap-datetimepicker-widget-with-calendar-weeks' : '') + \" \" + ((this._useFeatherIcons() ? 'tempusdominus-bootstrap-datetimepicker-widget-with-feather-icons' : '') + \" \")).trim()),\n          dateView = $('<div>').addClass('datepicker').append(this._getDatePickerTemplate()),\n          timeView = $('<div>').addClass('timepicker').append(this._getTimePickerTemplate()),\n          content = $('<ul>').addClass('list-unstyled'),\n          toolbar = $('<li>').addClass((\"picker-switch\" + (this._options.collapse ? ' accordion-toggle' : '') + \" \" + (\"\" + (this._useFeatherIcons() ? 'picker-switch-with-feathers-icons' : ''))).trim()).append(this._getToolbar());\n\n      if (this._options.inline) {\n        template.removeClass('dropdown-menu');\n      }\n\n      if (this.use24Hours) {\n        template.addClass('usetwentyfour');\n      }\n\n      if (this.input !== undefined && this.input.prop('readonly') || this._options.readonly) {\n        template.addClass('bootstrap-datetimepicker-widget-readonly');\n      }\n\n      if (this._isEnabled('s') && !this.use24Hours) {\n        template.addClass('wider');\n      }\n\n      if (this._options.sideBySide && this._hasDate() && this._hasTime()) {\n        template.addClass('timepicker-sbs');\n\n        if (this._options.toolbarPlacement === 'top') {\n          template.append(toolbar);\n        }\n\n        template.append($('<div>').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\n\n        if (this._options.toolbarPlacement === 'bottom' || this._options.toolbarPlacement === 'default') {\n          template.append(toolbar);\n        }\n\n        return template;\n      }\n\n      if (this._options.toolbarPlacement === 'top') {\n        content.append(toolbar);\n      }\n\n      if (this._hasDate()) {\n        content.append($('<li>').addClass(this._options.collapse && this._hasTime() ? 'collapse' : '').addClass(this._options.collapse && this._hasTime() && this._options.viewMode === 'times' ? '' : 'show').append(dateView));\n      }\n\n      if (this._options.toolbarPlacement === 'default') {\n        content.append(toolbar);\n      }\n\n      if (this._hasTime()) {\n        content.append($('<li>').addClass(this._options.collapse && this._hasDate() ? 'collapse' : '').addClass(this._options.collapse && this._hasDate() && this._options.viewMode === 'times' ? 'show' : '').append(timeView));\n      }\n\n      if (this._options.toolbarPlacement === 'bottom') {\n        content.append(toolbar);\n      }\n\n      return template.append(content);\n    };\n\n    _proto2._place = function _place(e) {\n      var self = e && e.data && e.data.picker || this,\n          vertical = self._options.widgetPositioning.vertical,\n          horizontal = self._options.widgetPositioning.horizontal,\n          parent;\n      var position = (self.component && self.component.length ? self.component : self._element).position(),\n          offset = (self.component && self.component.length ? self.component : self._element).offset();\n\n      if (self._options.widgetParent) {\n        parent = self._options.widgetParent.append(self.widget);\n      } else if (self._element.is('input')) {\n        parent = self._element.after(self.widget).parent();\n      } else if (self._options.inline) {\n        parent = self._element.append(self.widget);\n        return;\n      } else {\n        parent = self._element;\n\n        self._element.children().first().after(self.widget);\n      } // Top and bottom logic\n\n\n      if (vertical === 'auto') {\n        //noinspection JSValidateTypes\n        if (offset.top + self.widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && self.widget.height() + self._element.outerHeight() < offset.top) {\n          vertical = 'top';\n        } else {\n          vertical = 'bottom';\n        }\n      } // Left and right logic\n\n\n      if (horizontal === 'auto') {\n        if (parent.width() < offset.left + self.widget.outerWidth() / 2 && offset.left + self.widget.outerWidth() > $(window).width()) {\n          horizontal = 'right';\n        } else {\n          horizontal = 'left';\n        }\n      }\n\n      if (vertical === 'top') {\n        self.widget.addClass('top').removeClass('bottom');\n      } else {\n        self.widget.addClass('bottom').removeClass('top');\n      }\n\n      if (horizontal === 'right') {\n        self.widget.addClass('float-right');\n      } else {\n        self.widget.removeClass('float-right');\n      } // find the first parent element that has a relative css positioning\n\n\n      if (parent.css('position') !== 'relative') {\n        parent = parent.parents().filter(function () {\n          return $(this).css('position') === 'relative';\n        }).first();\n      }\n\n      if (parent.length === 0) {\n        throw new Error('datetimepicker component should be placed within a relative positioned container');\n      }\n\n      self.widget.css({\n        top: vertical === 'top' ? 'auto' : position.top + self._element.outerHeight() + 'px',\n        bottom: vertical === 'top' ? parent.outerHeight() - (parent === self._element ? 0 : position.top) + 'px' : 'auto',\n        left: horizontal === 'left' ? (parent === self._element ? 0 : position.left) + 'px' : 'auto',\n        right: horizontal === 'left' ? 'auto' : parent.outerWidth() - self._element.outerWidth() - (parent === self._element ? 0 : position.left) + 'px'\n      });\n    };\n\n    _proto2._fillDow = function _fillDow() {\n      var row = $('<tr>'),\n          currentDate = this._viewDate.clone().startOf('w').startOf('d');\n\n      if (this._options.calendarWeeks === true) {\n        row.append($('<th>').addClass('cw').text('#'));\n      }\n\n      while (currentDate.isBefore(this._viewDate.clone().endOf('w'))) {\n        row.append($('<th>').addClass('dow').text(currentDate.format('dd')));\n        currentDate.add(1, 'd');\n      }\n\n      this.widget.find('.datepicker-days thead').append(row);\n    };\n\n    _proto2._fillMonths = function _fillMonths() {\n      var spans = [],\n          monthsShort = this._viewDate.clone().startOf('y').startOf('d');\n\n      while (monthsShort.isSame(this._viewDate, 'y')) {\n        spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n        monthsShort.add(1, 'M');\n      }\n\n      this.widget.find('.datepicker-months td').empty().append(spans);\n    };\n\n    _proto2._updateMonths = function _updateMonths() {\n      var monthsView = this.widget.find('.datepicker-months'),\n          monthsViewHeader = monthsView.find('th'),\n          months = monthsView.find('tbody').find('span'),\n          self = this,\n          lastPickedDate = this._getLastPickedDate();\n\n      monthsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevYear);\n      monthsViewHeader.eq(1).attr('title', this._options.tooltips.selectYear);\n      monthsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextYear);\n      monthsView.find('.disabled').removeClass('disabled');\n\n      if (!this._isValid(this._viewDate.clone().subtract(1, 'y'), 'y')) {\n        monthsViewHeader.eq(0).addClass('disabled');\n      }\n\n      monthsViewHeader.eq(1).text(this._viewDate.year());\n\n      if (!this._isValid(this._viewDate.clone().add(1, 'y'), 'y')) {\n        monthsViewHeader.eq(2).addClass('disabled');\n      }\n\n      months.removeClass('active');\n\n      if (lastPickedDate && lastPickedDate.isSame(this._viewDate, 'y') && !this.unset) {\n        months.eq(lastPickedDate.month()).addClass('active');\n      }\n\n      months.each(function (index) {\n        if (!self._isValid(self._viewDate.clone().month(index), 'M')) {\n          $(this).addClass('disabled');\n        }\n      });\n    };\n\n    _proto2._getStartEndYear = function _getStartEndYear(factor, year) {\n      var step = factor / 10,\n          startYear = Math.floor(year / factor) * factor,\n          endYear = startYear + step * 9,\n          focusValue = Math.floor(year / step) * step;\n      return [startYear, endYear, focusValue];\n    };\n\n    _proto2._updateYears = function _updateYears() {\n      var yearsView = this.widget.find('.datepicker-years'),\n          yearsViewHeader = yearsView.find('th'),\n          yearCaps = this._getStartEndYear(10, this._viewDate.year()),\n          startYear = this._viewDate.clone().year(yearCaps[0]),\n          endYear = this._viewDate.clone().year(yearCaps[1]);\n\n      var html = '';\n      yearsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevDecade);\n      yearsViewHeader.eq(1).attr('title', this._options.tooltips.selectDecade);\n      yearsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextDecade);\n      yearsView.find('.disabled').removeClass('disabled');\n\n      if (this._options.minDate && this._options.minDate.isAfter(startYear, 'y')) {\n        yearsViewHeader.eq(0).addClass('disabled');\n      }\n\n      yearsViewHeader.eq(1).text(startYear.year() + \"-\" + endYear.year());\n\n      if (this._options.maxDate && this._options.maxDate.isBefore(endYear, 'y')) {\n        yearsViewHeader.eq(2).addClass('disabled');\n      }\n\n      html += \"<span data-action=\\\"selectYear\\\" class=\\\"year old\" + (!this._isValid(startYear, 'y') ? ' disabled' : '') + \"\\\">\" + (startYear.year() - 1) + \"</span>\";\n\n      while (!startYear.isAfter(endYear, 'y')) {\n        html += \"<span data-action=\\\"selectYear\\\" class=\\\"year\" + (startYear.isSame(this._getLastPickedDate(), 'y') && !this.unset ? ' active' : '') + (!this._isValid(startYear, 'y') ? ' disabled' : '') + \"\\\">\" + startYear.year() + \"</span>\";\n        startYear.add(1, 'y');\n      }\n\n      html += \"<span data-action=\\\"selectYear\\\" class=\\\"year old\" + (!this._isValid(startYear, 'y') ? ' disabled' : '') + \"\\\">\" + startYear.year() + \"</span>\";\n      yearsView.find('td').html(html);\n    };\n\n    _proto2._updateDecades = function _updateDecades() {\n      var decadesView = this.widget.find('.datepicker-decades'),\n          decadesViewHeader = decadesView.find('th'),\n          yearCaps = this._getStartEndYear(100, this._viewDate.year()),\n          startDecade = this._viewDate.clone().year(yearCaps[0]),\n          endDecade = this._viewDate.clone().year(yearCaps[1]),\n          lastPickedDate = this._getLastPickedDate();\n\n      var minDateDecade = false,\n          maxDateDecade = false,\n          endDecadeYear,\n          html = '';\n      decadesViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevCentury);\n      decadesViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextCentury);\n      decadesView.find('.disabled').removeClass('disabled');\n\n      if (startDecade.year() === 0 || this._options.minDate && this._options.minDate.isAfter(startDecade, 'y')) {\n        decadesViewHeader.eq(0).addClass('disabled');\n      }\n\n      decadesViewHeader.eq(1).text(startDecade.year() + \"-\" + endDecade.year());\n\n      if (this._options.maxDate && this._options.maxDate.isBefore(endDecade, 'y')) {\n        decadesViewHeader.eq(2).addClass('disabled');\n      }\n\n      if (startDecade.year() - 10 < 0) {\n        html += '<span>&nbsp;</span>';\n      } else {\n        html += \"<span data-action=\\\"selectDecade\\\" class=\\\"decade old\\\" data-selection=\\\"\" + (startDecade.year() + 6) + \"\\\">\" + (startDecade.year() - 10) + \"</span>\";\n      }\n\n      while (!startDecade.isAfter(endDecade, 'y')) {\n        endDecadeYear = startDecade.year() + 11;\n        minDateDecade = this._options.minDate && this._options.minDate.isAfter(startDecade, 'y') && this._options.minDate.year() <= endDecadeYear;\n        maxDateDecade = this._options.maxDate && this._options.maxDate.isAfter(startDecade, 'y') && this._options.maxDate.year() <= endDecadeYear;\n        html += \"<span data-action=\\\"selectDecade\\\" class=\\\"decade\" + (lastPickedDate && lastPickedDate.isAfter(startDecade) && lastPickedDate.year() <= endDecadeYear ? ' active' : '') + (!this._isValid(startDecade, 'y') && !minDateDecade && !maxDateDecade ? ' disabled' : '') + \"\\\" data-selection=\\\"\" + (startDecade.year() + 6) + \"\\\">\" + startDecade.year() + \"</span>\";\n        startDecade.add(10, 'y');\n      }\n\n      html += \"<span data-action=\\\"selectDecade\\\" class=\\\"decade old\\\" data-selection=\\\"\" + (startDecade.year() + 6) + \"\\\">\" + startDecade.year() + \"</span>\";\n      decadesView.find('td').html(html);\n    };\n\n    _proto2._fillDate = function _fillDate() {\n      _DateTimePicker.prototype._fillDate.call(this);\n\n      var daysView = this.widget.find('.datepicker-days'),\n          daysViewHeader = daysView.find('th'),\n          html = [];\n      var currentDate, row, clsName, i;\n\n      if (!this._hasDate()) {\n        return;\n      }\n\n      daysViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevMonth);\n      daysViewHeader.eq(1).attr('title', this._options.tooltips.selectMonth);\n      daysViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextMonth);\n      daysView.find('.disabled').removeClass('disabled');\n      daysViewHeader.eq(1).text(this._viewDate.format(this._options.dayViewHeaderFormat));\n\n      if (!this._isValid(this._viewDate.clone().subtract(1, 'M'), 'M')) {\n        daysViewHeader.eq(0).addClass('disabled');\n      }\n\n      if (!this._isValid(this._viewDate.clone().add(1, 'M'), 'M')) {\n        daysViewHeader.eq(2).addClass('disabled');\n      }\n\n      currentDate = this._viewDate.clone().startOf('M').startOf('w').startOf('d');\n\n      for (i = 0; i < 42; i++) {\n        //always display 42 days (should show 6 weeks)\n        if (currentDate.weekday() === 0) {\n          row = $('<tr>');\n\n          if (this._options.calendarWeeks) {\n            row.append(\"<td class=\\\"cw\\\">\" + currentDate.week() + \"</td>\");\n          }\n\n          html.push(row);\n        }\n\n        clsName = '';\n\n        if (currentDate.isBefore(this._viewDate, 'M')) {\n          clsName += ' old';\n        }\n\n        if (currentDate.isAfter(this._viewDate, 'M')) {\n          clsName += ' new';\n        }\n\n        if (this._options.allowMultidate) {\n          var index = this._datesFormatted.indexOf(currentDate.format('YYYY-MM-DD'));\n\n          if (index !== -1) {\n            if (currentDate.isSame(this._datesFormatted[index], 'd') && !this.unset) {\n              clsName += ' active';\n            }\n          }\n        } else {\n          if (currentDate.isSame(this._getLastPickedDate(), 'd') && !this.unset) {\n            clsName += ' active';\n          }\n        }\n\n        if (!this._isValid(currentDate, 'd')) {\n          clsName += ' disabled';\n        }\n\n        if (currentDate.isSame(this.getMoment(), 'd')) {\n          clsName += ' today';\n        }\n\n        if (currentDate.day() === 0 || currentDate.day() === 6) {\n          clsName += ' weekend';\n        }\n\n        row.append(\"<td data-action=\\\"selectDay\\\" data-day=\\\"\" + currentDate.format('L') + \"\\\" class=\\\"day\" + clsName + \"\\\">\" + currentDate.date() + \"</td>\");\n        currentDate.add(1, 'd');\n      }\n\n      $('body').addClass('tempusdominus-bootstrap-datetimepicker-widget-day-click');\n      $('body').append('<div class=\"tempusdominus-bootstrap-datetimepicker-widget-day-click-glass-panel\"></div>');\n      daysView.find('tbody').empty().append(html);\n      $('body').find('.tempusdominus-bootstrap-datetimepicker-widget-day-click-glass-panel').remove();\n      $('body').removeClass('tempusdominus-bootstrap-datetimepicker-widget-day-click');\n\n      this._updateMonths();\n\n      this._updateYears();\n\n      this._updateDecades();\n    };\n\n    _proto2._fillHours = function _fillHours() {\n      var table = this.widget.find('.timepicker-hours table'),\n          currentHour = this._viewDate.clone().startOf('d'),\n          html = [];\n\n      var row = $('<tr>');\n\n      if (this._viewDate.hour() > 11 && !this.use24Hours) {\n        currentHour.hour(12);\n      }\n\n      while (currentHour.isSame(this._viewDate, 'd') && (this.use24Hours || this._viewDate.hour() < 12 && currentHour.hour() < 12 || this._viewDate.hour() > 11)) {\n        if (currentHour.hour() % 4 === 0) {\n          row = $('<tr>');\n          html.push(row);\n        }\n\n        row.append(\"<td data-action=\\\"selectHour\\\" class=\\\"hour\" + (!this._isValid(currentHour, 'h') ? ' disabled' : '') + \"\\\">\" + currentHour.format(this.use24Hours ? 'HH' : 'hh') + \"</td>\");\n        currentHour.add(1, 'h');\n      }\n\n      table.empty().append(html);\n    };\n\n    _proto2._fillMinutes = function _fillMinutes() {\n      var table = this.widget.find('.timepicker-minutes table'),\n          currentMinute = this._viewDate.clone().startOf('h'),\n          html = [],\n          step = this._options.stepping === 1 ? 5 : this._options.stepping;\n\n      var row = $('<tr>');\n\n      while (this._viewDate.isSame(currentMinute, 'h')) {\n        if (currentMinute.minute() % (step * 4) === 0) {\n          row = $('<tr>');\n          html.push(row);\n        }\n\n        row.append(\"<td data-action=\\\"selectMinute\\\" class=\\\"minute\" + (!this._isValid(currentMinute, 'm') ? ' disabled' : '') + \"\\\">\" + currentMinute.format('mm') + \"</td>\");\n        currentMinute.add(step, 'm');\n      }\n\n      table.empty().append(html);\n    };\n\n    _proto2._fillSeconds = function _fillSeconds() {\n      var table = this.widget.find('.timepicker-seconds table'),\n          currentSecond = this._viewDate.clone().startOf('m'),\n          html = [];\n\n      var row = $('<tr>');\n\n      while (this._viewDate.isSame(currentSecond, 'm')) {\n        if (currentSecond.second() % 20 === 0) {\n          row = $('<tr>');\n          html.push(row);\n        }\n\n        row.append(\"<td data-action=\\\"selectSecond\\\" class=\\\"second\" + (!this._isValid(currentSecond, 's') ? ' disabled' : '') + \"\\\">\" + currentSecond.format('ss') + \"</td>\");\n        currentSecond.add(5, 's');\n      }\n\n      table.empty().append(html);\n    };\n\n    _proto2._fillTime = function _fillTime() {\n      var toggle, newDate;\n\n      var timeComponents = this.widget.find('.timepicker span[data-time-component]'),\n          lastPickedDate = this._getLastPickedDate();\n\n      if (!this.use24Hours) {\n        toggle = this.widget.find('.timepicker [data-action=togglePeriod]');\n        newDate = lastPickedDate ? lastPickedDate.clone().add(lastPickedDate.hours() >= 12 ? -12 : 12, 'h') : void 0;\n        lastPickedDate && toggle.text(lastPickedDate.format('A'));\n\n        if (this._isValid(newDate, 'h')) {\n          toggle.removeClass('disabled');\n        } else {\n          toggle.addClass('disabled');\n        }\n      }\n\n      lastPickedDate && timeComponents.filter('[data-time-component=hours]').text(lastPickedDate.format(\"\" + (this.use24Hours ? 'HH' : 'hh')));\n      lastPickedDate && timeComponents.filter('[data-time-component=minutes]').text(lastPickedDate.format('mm'));\n      lastPickedDate && timeComponents.filter('[data-time-component=seconds]').text(lastPickedDate.format('ss'));\n\n      this._fillHours();\n\n      this._fillMinutes();\n\n      this._fillSeconds();\n    };\n\n    _proto2._doAction = function _doAction(e, action) {\n      var lastPicked = this._getLastPickedDate();\n\n      if ($(e.currentTarget).is('.disabled')) {\n        return false;\n      }\n\n      action = action || $(e.currentTarget).data('action');\n\n      switch (action) {\n        case 'next':\n          {\n            var navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION;\n\n            this._viewDate.add(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, navFnc);\n\n            this._fillDate();\n\n            this._viewUpdate(navFnc);\n\n            break;\n          }\n\n        case 'previous':\n          {\n            var _navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION;\n\n            this._viewDate.subtract(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, _navFnc);\n\n            this._fillDate();\n\n            this._viewUpdate(_navFnc);\n\n            break;\n          }\n\n        case 'pickerSwitch':\n          this._showMode(1);\n\n          break;\n\n        case 'selectMonth':\n          {\n            var month = $(e.target).closest('tbody').find('span').index($(e.target));\n\n            this._viewDate.month(month);\n\n            if (this.currentViewMode === this.MinViewModeNumber) {\n              this._setValue(lastPicked.clone().year(this._viewDate.year()).month(this._viewDate.month()), this._getLastPickedDateIndex());\n\n              if (!this._options.inline) {\n                this.hide();\n              }\n            } else {\n              this._showMode(-1);\n\n              this._fillDate();\n            }\n\n            this._viewUpdate('M');\n\n            break;\n          }\n\n        case 'selectYear':\n          {\n            var year = parseInt($(e.target).text(), 10) || 0;\n\n            this._viewDate.year(year);\n\n            if (this.currentViewMode === this.MinViewModeNumber) {\n              this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex());\n\n              if (!this._options.inline) {\n                this.hide();\n              }\n            } else {\n              this._showMode(-1);\n\n              this._fillDate();\n            }\n\n            this._viewUpdate('YYYY');\n\n            break;\n          }\n\n        case 'selectDecade':\n          {\n            var _year = parseInt($(e.target).data('selection'), 10) || 0;\n\n            this._viewDate.year(_year);\n\n            if (this.currentViewMode === this.MinViewModeNumber) {\n              this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex());\n\n              if (!this._options.inline) {\n                this.hide();\n              }\n            } else {\n              this._showMode(-1);\n\n              this._fillDate();\n            }\n\n            this._viewUpdate('YYYY');\n\n            break;\n          }\n\n        case 'selectDay':\n          {\n            var day = this._viewDate.clone();\n\n            if ($(e.target).is('.old')) {\n              day.subtract(1, 'M');\n            }\n\n            if ($(e.target).is('.new')) {\n              day.add(1, 'M');\n            }\n\n            var selectDate = day.date(parseInt($(e.target).text(), 10)),\n                index = 0;\n\n            if (this._options.allowMultidate) {\n              index = this._datesFormatted.indexOf(selectDate.format('YYYY-MM-DD'));\n\n              if (index !== -1) {\n                this._setValue(null, index); //deselect multidate\n\n              } else {\n                this._setValue(selectDate, this._getLastPickedDateIndex() + 1);\n              }\n            } else {\n              this._setValue(selectDate, this._getLastPickedDateIndex());\n            }\n\n            if (!this._hasTime() && !this._options.keepOpen && !this._options.inline && !this._options.allowMultidate) {\n              this.hide();\n            }\n\n            break;\n          }\n\n        case 'incrementHours':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var newDate = lastPicked.clone().add(1, 'h');\n\n            if (this._isValid(newDate, 'h')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(newDate);\n              }\n\n              this._setValue(newDate, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'incrementMinutes':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var _newDate = lastPicked.clone().add(this._options.stepping, 'm');\n\n            if (this._isValid(_newDate, 'm')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(_newDate);\n              }\n\n              this._setValue(_newDate, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'incrementSeconds':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var _newDate2 = lastPicked.clone().add(1, 's');\n\n            if (this._isValid(_newDate2, 's')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(_newDate2);\n              }\n\n              this._setValue(_newDate2, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'decrementHours':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var _newDate3 = lastPicked.clone().subtract(1, 'h');\n\n            if (this._isValid(_newDate3, 'h')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(_newDate3);\n              }\n\n              this._setValue(_newDate3, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'decrementMinutes':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var _newDate4 = lastPicked.clone().subtract(this._options.stepping, 'm');\n\n            if (this._isValid(_newDate4, 'm')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(_newDate4);\n              }\n\n              this._setValue(_newDate4, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'decrementSeconds':\n          {\n            if (!lastPicked) {\n              break;\n            }\n\n            var _newDate5 = lastPicked.clone().subtract(1, 's');\n\n            if (this._isValid(_newDate5, 's')) {\n              if (this._getLastPickedDateIndex() < 0) {\n                this.date(_newDate5);\n              }\n\n              this._setValue(_newDate5, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n\n        case 'togglePeriod':\n          {\n            this._setValue(lastPicked.clone().add(lastPicked.hours() >= 12 ? -12 : 12, 'h'), this._getLastPickedDateIndex());\n\n            break;\n          }\n\n        case 'togglePicker':\n          {\n            var $this = $(e.target),\n                $link = $this.closest('a'),\n                $parent = $this.closest('ul'),\n                expanded = $parent.find('.show'),\n                closed = $parent.find('.collapse:not(.show)'),\n                $span = $this.is('span') ? $this : $this.find('span');\n            var collapseData, inactiveIcon, iconTest;\n\n            if (expanded && expanded.length) {\n              collapseData = expanded.data('collapse');\n\n              if (collapseData && collapseData.transitioning) {\n                return true;\n              }\n\n              if (expanded.collapse) {\n                // if collapse plugin is available through bootstrap.js then use it\n                expanded.collapse('hide');\n                closed.collapse('show');\n              } else {\n                // otherwise just toggle in class on the two views\n                expanded.removeClass('show');\n                closed.addClass('show');\n              }\n\n              if (this._useFeatherIcons()) {\n                $link.toggleClass(this._options.icons.time + ' ' + this._options.icons.date);\n                inactiveIcon = $link.hasClass(this._options.icons.time) ? this._options.icons.date : this._options.icons.time;\n                $link.html(this._iconTag(inactiveIcon));\n              } else {\n                $span.toggleClass(this._options.icons.time + ' ' + this._options.icons.date);\n              }\n\n              if (this._useFeatherIcons()) {\n                iconTest = $link.hasClass(this._options.icons.date);\n              } else {\n                iconTest = $span.hasClass(this._options.icons.date);\n              }\n\n              if (iconTest) {\n                $link.attr('title', this._options.tooltips.selectDate);\n              } else {\n                $link.attr('title', this._options.tooltips.selectTime);\n              }\n            }\n          }\n          break;\n\n        case 'showPicker':\n          this.widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n          this.widget.find('.timepicker .timepicker-picker').show();\n          break;\n\n        case 'showHours':\n          this.widget.find('.timepicker .timepicker-picker').hide();\n          this.widget.find('.timepicker .timepicker-hours').show();\n          break;\n\n        case 'showMinutes':\n          this.widget.find('.timepicker .timepicker-picker').hide();\n          this.widget.find('.timepicker .timepicker-minutes').show();\n          break;\n\n        case 'showSeconds':\n          this.widget.find('.timepicker .timepicker-picker').hide();\n          this.widget.find('.timepicker .timepicker-seconds').show();\n          break;\n\n        case 'selectHour':\n          {\n            var hour = parseInt($(e.target).text(), 10);\n\n            if (!this.use24Hours) {\n              if (lastPicked.hours() >= 12) {\n                if (hour !== 12) {\n                  hour += 12;\n                }\n              } else {\n                if (hour === 12) {\n                  hour = 0;\n                }\n              }\n            }\n\n            this._setValue(lastPicked.clone().hours(hour), this._getLastPickedDateIndex());\n\n            if (!this._isEnabled('a') && !this._isEnabled('m') && !this._options.keepOpen && !this._options.inline) {\n              this.hide();\n            } else {\n              this._doAction(e, 'showPicker');\n            }\n\n            break;\n          }\n\n        case 'selectMinute':\n          this._setValue(lastPicked.clone().minutes(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex());\n\n          if (!this._isEnabled('a') && !this._isEnabled('s') && !this._options.keepOpen && !this._options.inline) {\n            this.hide();\n          } else {\n            this._doAction(e, 'showPicker');\n          }\n\n          break;\n\n        case 'selectSecond':\n          this._setValue(lastPicked.clone().seconds(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex());\n\n          if (!this._isEnabled('a') && !this._options.keepOpen && !this._options.inline) {\n            this.hide();\n          } else {\n            this._doAction(e, 'showPicker');\n          }\n\n          break;\n\n        case 'clear':\n          this.clear();\n          break;\n\n        case 'close':\n          this.hide();\n          break;\n\n        case 'today':\n          {\n            var todaysDate = this.getMoment();\n\n            if (this._isValid(todaysDate, 'd')) {\n              this._setValue(todaysDate, this._getLastPickedDateIndex());\n            }\n\n            break;\n          }\n      }\n\n      return false;\n    } //public\n    ;\n\n    _proto2.hide = function hide() {\n      var transitioning = false;\n\n      if (!this.widget) {\n        return;\n      } // Ignore event if in the middle of a picker transition\n\n\n      this.widget.find('.collapse').each(function () {\n        var collapseData = $(this).data('collapse');\n\n        if (collapseData && collapseData.transitioning) {\n          transitioning = true;\n          return false;\n        }\n\n        return true;\n      });\n\n      if (transitioning) {\n        return;\n      }\n\n      if (this.component && this.component.hasClass('btn')) {\n        this.component.toggleClass('active');\n      }\n\n      this.widget.hide();\n      $(window).off('resize', this._place);\n      this.widget.off('click', '[data-action]');\n      this.widget.off('mousedown', false);\n      this.widget.remove();\n      this.widget = false;\n\n      if (this.input !== undefined && this.input.val() !== undefined && this.input.val().trim().length !== 0) {\n        this._setValue(this._parseInputDate(this.input.val().trim(), {\n          isPickerShow: false\n        }), 0);\n      }\n\n      var lastPickedDate = this._getLastPickedDate();\n\n      this._notifyEvent({\n        type: DateTimePicker.Event.HIDE,\n        date: this.unset ? null : lastPickedDate ? lastPickedDate.clone() : void 0\n      });\n\n      if (this.input !== undefined) {\n        this.input.blur();\n      }\n\n      this._viewDate = lastPickedDate ? lastPickedDate.clone() : this.getMoment();\n    };\n\n    _proto2.show = function show() {\n      var currentMoment,\n          shouldUseCurrentIfUnset = false;\n      var useCurrentGranularity = {\n        'year': function year(m) {\n          return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n        },\n        'month': function month(m) {\n          return m.date(1).hours(0).seconds(0).minutes(0);\n        },\n        'day': function day(m) {\n          return m.hours(0).seconds(0).minutes(0);\n        },\n        'hour': function hour(m) {\n          return m.seconds(0).minutes(0);\n        },\n        'minute': function minute(m) {\n          return m.seconds(0);\n        }\n      };\n\n      if (this.input !== undefined) {\n        if (this.input.prop('disabled') || !this._options.ignoreReadonly && this.input.prop('readonly') || this.widget) {\n          return;\n        }\n\n        if (this.input.val() !== undefined && this.input.val().trim().length !== 0) {\n          this._setValue(this._parseInputDate(this.input.val().trim(), {\n            isPickerShow: true\n          }), 0);\n        } else {\n          shouldUseCurrentIfUnset = true;\n        }\n      } else {\n        shouldUseCurrentIfUnset = true;\n      }\n\n      if (shouldUseCurrentIfUnset && this.unset && this._options.useCurrent) {\n        currentMoment = this.getMoment();\n\n        if (typeof this._options.useCurrent === 'string') {\n          currentMoment = useCurrentGranularity[this._options.useCurrent](currentMoment);\n        }\n\n        this._setValue(currentMoment, 0);\n      }\n\n      this.widget = this._getTemplate();\n\n      this._fillDow();\n\n      this._fillMonths();\n\n      this.widget.find('.timepicker-hours').hide();\n      this.widget.find('.timepicker-minutes').hide();\n      this.widget.find('.timepicker-seconds').hide();\n\n      this._update();\n\n      this._showMode();\n\n      $(window).on('resize', {\n        picker: this\n      }, this._place);\n      this.widget.on('click', '[data-action]', $.proxy(this._doAction, this)); // this handles clicks on the widget\n\n      this.widget.on('mousedown', false);\n\n      if (this.component && this.component.hasClass('btn')) {\n        this.component.toggleClass('active');\n      }\n\n      this._place();\n\n      this.widget.show();\n\n      if (this.input !== undefined && this._options.focusOnShow && !this.input.is(':focus')) {\n        this.input.focus();\n      }\n\n      this._notifyEvent({\n        type: DateTimePicker.Event.SHOW\n      });\n    };\n\n    _proto2.destroy = function destroy() {\n      this.hide(); //todo doc off?\n\n      this._element.removeData(DateTimePicker.DATA_KEY);\n\n      this._element.removeData('date');\n    };\n\n    _proto2.disable = function disable() {\n      this.hide();\n\n      if (this.component && this.component.hasClass('btn')) {\n        this.component.addClass('disabled');\n      }\n\n      if (this.input !== undefined) {\n        this.input.prop('disabled', true); //todo disable this/comp if input is null\n      }\n    };\n\n    _proto2.enable = function enable() {\n      if (this.component && this.component.hasClass('btn')) {\n        this.component.removeClass('disabled');\n      }\n\n      if (this.input !== undefined) {\n        this.input.prop('disabled', false); //todo enable comp/this if input is null\n      }\n    };\n\n    _proto2.toolbarPlacement = function toolbarPlacement(_toolbarPlacement) {\n      if (arguments.length === 0) {\n        return this._options.toolbarPlacement;\n      }\n\n      if (typeof _toolbarPlacement !== 'string') {\n        throw new TypeError('toolbarPlacement() expects a string parameter');\n      }\n\n      if (toolbarPlacements.indexOf(_toolbarPlacement) === -1) {\n        throw new TypeError(\"toolbarPlacement() parameter must be one of (\" + toolbarPlacements.join(', ') + \") value\");\n      }\n\n      this._options.toolbarPlacement = _toolbarPlacement;\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto2.widgetPositioning = function widgetPositioning(_widgetPositioning) {\n      if (arguments.length === 0) {\n        return $.extend({}, this._options.widgetPositioning);\n      }\n\n      if ({}.toString.call(_widgetPositioning) !== '[object Object]') {\n        throw new TypeError('widgetPositioning() expects an object variable');\n      }\n\n      if (_widgetPositioning.horizontal) {\n        if (typeof _widgetPositioning.horizontal !== 'string') {\n          throw new TypeError('widgetPositioning() horizontal variable must be a string');\n        }\n\n        _widgetPositioning.horizontal = _widgetPositioning.horizontal.toLowerCase();\n\n        if (horizontalModes.indexOf(_widgetPositioning.horizontal) === -1) {\n          throw new TypeError(\"widgetPositioning() expects horizontal parameter to be one of (\" + horizontalModes.join(', ') + \")\");\n        }\n\n        this._options.widgetPositioning.horizontal = _widgetPositioning.horizontal;\n      }\n\n      if (_widgetPositioning.vertical) {\n        if (typeof _widgetPositioning.vertical !== 'string') {\n          throw new TypeError('widgetPositioning() vertical variable must be a string');\n        }\n\n        _widgetPositioning.vertical = _widgetPositioning.vertical.toLowerCase();\n\n        if (verticalModes.indexOf(_widgetPositioning.vertical) === -1) {\n          throw new TypeError(\"widgetPositioning() expects vertical parameter to be one of (\" + verticalModes.join(', ') + \")\");\n        }\n\n        this._options.widgetPositioning.vertical = _widgetPositioning.vertical;\n      }\n\n      this._update();\n    };\n\n    _proto2.widgetParent = function widgetParent(_widgetParent) {\n      if (arguments.length === 0) {\n        return this._options.widgetParent;\n      }\n\n      if (typeof _widgetParent === 'string') {\n        _widgetParent = $(_widgetParent);\n      }\n\n      if (_widgetParent !== null && typeof _widgetParent !== 'string' && !(_widgetParent instanceof $)) {\n        throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n      }\n\n      this._options.widgetParent = _widgetParent;\n\n      if (this.widget) {\n        this.hide();\n        this.show();\n      }\n    };\n\n    _proto2.setMultiDate = function setMultiDate(multiDateArray) {\n      var dateFormat = this._options.format;\n      this.clear();\n\n      for (var index = 0; index < multiDateArray.length; index++) {\n        var date = moment(multiDateArray[index], dateFormat);\n\n        this._setValue(date, index);\n      }\n    } //static\n    ;\n\n    TempusDominusBootstrap4._jQueryHandleThis = function _jQueryHandleThis(me, option, argument) {\n      var data = $(me).data(DateTimePicker.DATA_KEY);\n\n      if (typeof option === 'object') {\n        $.extend({}, DateTimePicker.Default, option);\n      }\n\n      if (!data) {\n        data = new TempusDominusBootstrap4($(me), option);\n        $(me).data(DateTimePicker.DATA_KEY, data);\n      }\n\n      if (typeof option === 'string') {\n        if (data[option] === undefined) {\n          throw new Error(\"No method named \\\"\" + option + \"\\\"\");\n        }\n\n        if (argument === undefined) {\n          return data[option]();\n        } else {\n          if (option === 'date') {\n            data.isDateUpdateThroughDateOptionFromClientCode = true;\n          }\n\n          var ret = data[option](argument);\n          data.isDateUpdateThroughDateOptionFromClientCode = false;\n          return ret;\n        }\n      }\n    };\n\n    TempusDominusBootstrap4._jQueryInterface = function _jQueryInterface(option, argument) {\n      if (this.length === 1) {\n        return TempusDominusBootstrap4._jQueryHandleThis(this[0], option, argument);\n      }\n\n      return this.each(function () {\n        TempusDominusBootstrap4._jQueryHandleThis(this, option, argument);\n      });\n    };\n\n    return TempusDominusBootstrap4;\n  }(DateTimePicker);\n  /**\n  * ------------------------------------------------------------------------\n  * jQuery\n  * ------------------------------------------------------------------------\n  */\n\n\n  $(document).on(DateTimePicker.Event.CLICK_DATA_API, DateTimePicker.Selector.DATA_TOGGLE, function () {\n    var $originalTarget = $(this),\n        $target = getSelectorFromElement($originalTarget),\n        config = $target.data(DateTimePicker.DATA_KEY);\n\n    if ($target.length === 0) {\n      return;\n    }\n\n    if (config._options.allowInputToggle && $originalTarget.is('input[data-toggle=\"datetimepicker\"]')) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, 'toggle');\n  }).on(DateTimePicker.Event.CHANGE, \".\" + DateTimePicker.ClassName.INPUT, function (event) {\n    var $target = getSelectorFromElement($(this));\n\n    if ($target.length === 0 || event.isInit) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, '_change', event);\n  }).on(DateTimePicker.Event.BLUR, \".\" + DateTimePicker.ClassName.INPUT, function (event) {\n    var $target = getSelectorFromElement($(this)),\n        config = $target.data(DateTimePicker.DATA_KEY);\n\n    if ($target.length === 0) {\n      return;\n    }\n\n    if (config._options.debug || window.debug) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, 'hide', event);\n  }).on(DateTimePicker.Event.KEYDOWN, \".\" + DateTimePicker.ClassName.INPUT, function (event) {\n    var $target = getSelectorFromElement($(this));\n\n    if ($target.length === 0) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, '_keydown', event);\n  }).on(DateTimePicker.Event.KEYUP, \".\" + DateTimePicker.ClassName.INPUT, function (event) {\n    var $target = getSelectorFromElement($(this));\n\n    if ($target.length === 0) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, '_keyup', event);\n  }).on(DateTimePicker.Event.FOCUS, \".\" + DateTimePicker.ClassName.INPUT, function (event) {\n    var $target = getSelectorFromElement($(this)),\n        config = $target.data(DateTimePicker.DATA_KEY);\n\n    if ($target.length === 0) {\n      return;\n    }\n\n    if (!config._options.allowInputToggle) {\n      return;\n    }\n\n    TempusDominusBootstrap4._jQueryInterface.call($target, 'show', event);\n  });\n  $.fn[DateTimePicker.NAME] = TempusDominusBootstrap4._jQueryInterface;\n  $.fn[DateTimePicker.NAME].Constructor = TempusDominusBootstrap4;\n\n  $.fn[DateTimePicker.NAME].noConflict = function () {\n    $.fn[DateTimePicker.NAME] = JQUERY_NO_CONFLICT;\n    return TempusDominusBootstrap4._jQueryInterface;\n  };\n\n  return TempusDominusBootstrap4;\n}(jQuery);\n\n}();\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/toastr/toastr.css",
    "content": ".toast-title {\n  font-weight: bold;\n}\n.toast-message {\n  -ms-word-wrap: break-word;\n  word-wrap: break-word;\n}\n.toast-message a,\n.toast-message label {\n  color: #FFFFFF;\n}\n.toast-message a:hover {\n  color: #CCCCCC;\n  text-decoration: none;\n}\n.toast-close-button {\n  position: relative;\n  right: -0.3em;\n  top: -0.3em;\n  float: right;\n  font-size: 20px;\n  font-weight: bold;\n  color: #FFFFFF;\n  -webkit-text-shadow: 0 1px 0 #ffffff;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.8;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n  filter: alpha(opacity=80);\n  line-height: 1;\n}\n.toast-close-button:hover,\n.toast-close-button:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.4;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n  filter: alpha(opacity=40);\n}\n.rtl .toast-close-button {\n  left: -0.3em;\n  float: left;\n  right: 0.3em;\n}\n/*Additional properties for button version\n iOS requires the button element instead of an anchor tag.\n If you want the anchor version, it requires `href=\"#\"`.*/\nbutton.toast-close-button {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n.toast-top-center {\n  top: 0;\n  right: 0;\n  width: 100%;\n}\n.toast-bottom-center {\n  bottom: 0;\n  right: 0;\n  width: 100%;\n}\n.toast-top-full-width {\n  top: 0;\n  right: 0;\n  width: 100%;\n}\n.toast-bottom-full-width {\n  bottom: 0;\n  right: 0;\n  width: 100%;\n}\n.toast-top-left {\n  top: 12px;\n  left: 12px;\n}\n.toast-top-right {\n  top: 12px;\n  right: 12px;\n}\n.toast-bottom-right {\n  right: 12px;\n  bottom: 12px;\n}\n.toast-bottom-left {\n  bottom: 12px;\n  left: 12px;\n}\n#toast-container {\n  position: fixed;\n  z-index: 999999;\n  pointer-events: none;\n  /*overrides*/\n}\n#toast-container * {\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n}\n#toast-container > div {\n  position: relative;\n  pointer-events: auto;\n  overflow: hidden;\n  margin: 0 0 6px;\n  padding: 15px 15px 15px 50px;\n  width: 300px;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n  background-position: 15px center;\n  background-repeat: no-repeat;\n  -moz-box-shadow: 0 0 12px #999999;\n  -webkit-box-shadow: 0 0 12px #999999;\n  box-shadow: 0 0 12px #999999;\n  color: #FFFFFF;\n  opacity: 0.8;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n  filter: alpha(opacity=80);\n}\n#toast-container > div.rtl {\n  direction: rtl;\n  padding: 15px 50px 15px 15px;\n  background-position: right 15px center;\n}\n#toast-container > div:hover {\n  -moz-box-shadow: 0 0 12px #000000;\n  -webkit-box-shadow: 0 0 12px #000000;\n  box-shadow: 0 0 12px #000000;\n  opacity: 1;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n  filter: alpha(opacity=100);\n  cursor: pointer;\n}\n#toast-container > .toast-info {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=\") !important;\n}\n#toast-container > .toast-error {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=\") !important;\n}\n#toast-container > .toast-success {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==\") !important;\n}\n#toast-container > .toast-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=\") !important;\n}\n#toast-container.toast-top-center > div,\n#toast-container.toast-bottom-center > div {\n  width: 300px;\n  margin-left: auto;\n  margin-right: auto;\n}\n#toast-container.toast-top-full-width > div,\n#toast-container.toast-bottom-full-width > div {\n  width: 96%;\n  margin-left: auto;\n  margin-right: auto;\n}\n.toast {\n  background-color: #030303;\n}\n.toast-success {\n  background-color: #51A351;\n}\n.toast-error {\n  background-color: #BD362F;\n}\n.toast-info {\n  background-color: #2F96B4;\n}\n.toast-warning {\n  background-color: #F89406;\n}\n.toast-progress {\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  height: 4px;\n  background-color: #000000;\n  opacity: 0.4;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n  filter: alpha(opacity=40);\n}\n/*Responsive Design*/\n@media all and (max-width: 240px) {\n  #toast-container > div {\n    padding: 8px 8px 8px 50px;\n    width: 11em;\n  }\n  #toast-container > div.rtl {\n    padding: 8px 50px 8px 8px;\n  }\n  #toast-container .toast-close-button {\n    right: -0.2em;\n    top: -0.2em;\n  }\n  #toast-container .rtl .toast-close-button {\n    left: -0.2em;\n    right: 0.2em;\n  }\n}\n@media all and (min-width: 241px) and (max-width: 480px) {\n  #toast-container > div {\n    padding: 8px 8px 8px 50px;\n    width: 18em;\n  }\n  #toast-container > div.rtl {\n    padding: 8px 50px 8px 8px;\n  }\n  #toast-container .toast-close-button {\n    right: -0.2em;\n    top: -0.2em;\n  }\n  #toast-container .rtl .toast-close-button {\n    left: -0.2em;\n    right: 0.2em;\n  }\n}\n@media all and (min-width: 481px) and (max-width: 768px) {\n  #toast-container > div {\n    padding: 15px 15px 15px 50px;\n    width: 25em;\n  }\n  #toast-container > div.rtl {\n    padding: 15px 50px 15px 15px;\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/uplot/uPlot.cjs.js",
    "content": "/**\n* Copyright (c) 2021, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uPlot.js (μPlot)\n* A small, fast chart for time series, lines, areas, ohlc & bars\n* https://github.com/leeoniya/uPlot (v1.6.7)\n*/\n\n'use strict';\n\nconst FEAT_TIME          = true;\n\nfunction debounce(fn, time) {\n\tlet pending = null;\n\n\tfunction run() {\n\t\tpending = null;\n\t\tfn();\n\t}\n\n\treturn function() {\n\t\tclearTimeout(pending);\n\t\tpending = setTimeout(run, time);\n\t}\n}\n\n// binary search for index of closest value\nfunction closestIdx(num, arr, lo, hi) {\n\tlet mid;\n\tlo = lo || 0;\n\thi = hi || arr.length - 1;\n\tlet bitwise = hi <= 2147483647;\n\n\twhile (hi - lo > 1) {\n\t\tmid = bitwise ? (lo + hi) >> 1 : floor((lo + hi) / 2);\n\n\t\tif (arr[mid] < num)\n\t\t\tlo = mid;\n\t\telse\n\t\t\thi = mid;\n\t}\n\n\tif (num - arr[lo] <= arr[hi] - num)\n\t\treturn lo;\n\n\treturn hi;\n}\n\nfunction nonNullIdx(data, _i0, _i1, dir) {\n\tfor (let i = dir == 1 ? _i0 : _i1; i >= _i0 && i <= _i1; i += dir) {\n\t\tif (data[i] != null)\n\t\t\treturn i;\n\t}\n\n\treturn -1;\n}\n\nfunction getMinMax(data, _i0, _i1, sorted) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tif (sorted == 1) {\n\t\t_min = data[_i0];\n\t\t_max = data[_i1];\n\t}\n\telse if (sorted == -1) {\n\t\t_min = data[_i1];\n\t\t_max = data[_i0];\n\t}\n\telse {\n\t\tfor (let i = _i0; i <= _i1; i++) {\n\t\t\tif (data[i] != null) {\n\t\t\t\t_min = min(_min, data[i]);\n\t\t\t\t_max = max(_max, data[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [_min, _max];\n}\n\nfunction getMinMaxLog(data, _i0, _i1) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tfor (let i = _i0; i <= _i1; i++) {\n\t\tif (data[i] > 0) {\n\t\t\t_min = min(_min, data[i]);\n\t\t\t_max = max(_max, data[i]);\n\t\t}\n\t}\n\n\treturn [\n\t\t_min ==  inf ?  1 : _min,\n\t\t_max == -inf ? 10 : _max,\n\t];\n}\n\nconst _fixedTuple = [0, 0];\n\nfunction fixIncr(minIncr, maxIncr, minExp, maxExp) {\n\t_fixedTuple[0] = minExp < 0 ? roundDec(minIncr, -minExp) : minIncr;\n\t_fixedTuple[1] = maxExp < 0 ? roundDec(maxIncr, -maxExp) : maxIncr;\n\treturn _fixedTuple;\n}\n\nfunction rangeLog(min, max, base, fullMags) {\n\n\tlet logFn = base == 10 ? log10 : log2;\n\n\tif (min == max) {\n\t\tmin /= base;\n\t\tmax *= base;\n\t}\n\n\tlet minExp, maxExp, minMaxIncrs;\n\n\tif (fullMags) {\n\t\tminExp = floor(logFn(min));\n\t\tmaxExp =  ceil(logFn(max));\n\n\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\tmin = minMaxIncrs[0];\n\t\tmax = minMaxIncrs[1];\n\t}\n\telse {\n\t\tminExp = floor(logFn(abs(min)));\n\t\tmaxExp = floor(logFn(abs(max)));\n\n\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\tmin = incrRoundDn(min, minMaxIncrs[0]);\n\t\tmax = incrRoundUp(max, minMaxIncrs[1]);\n\t}\n\n\treturn [min, max];\n}\n\nfunction rangeAsinh(min, max, base, fullMags) {\n\tlet minMax = rangeLog(min, max, base, fullMags);\n\n\tif (min == 0)\n\t\tminMax[0] = 0;\n\n\tif (max == 0)\n\t\tminMax[1] = 0;\n\n\treturn minMax;\n}\n\nconst _eqRangePart = {\n\tpad:  0,\n\tsoft: null,\n\tmode: 0,\n};\n\nconst _eqRange = {\n\tmin: _eqRangePart,\n\tmax: _eqRangePart,\n};\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction rangeNum(_min, _max, mult, extra) {\n\tif (isObj(mult))\n\t\treturn _rangeNum(_min, _max, mult);\n\n\t_eqRangePart.pad  = mult;\n\t_eqRangePart.soft = extra ? 0 : null;\n\t_eqRangePart.mode = extra ? 3 : 0;\n\n\treturn _rangeNum(_min, _max, _eqRange);\n}\n\n// nullish coalesce\nfunction ifNull(lh, rh) {\n\treturn lh == null ? rh : lh;\n}\n\nfunction _rangeNum(_min, _max, cfg) {\n\tlet cmin = cfg.min;\n\tlet cmax = cfg.max;\n\n\tlet padMin = ifNull(cmin.pad, 0);\n\tlet padMax = ifNull(cmax.pad, 0);\n\n\tlet hardMin = ifNull(cmin.hard, -inf);\n\tlet hardMax = ifNull(cmax.hard,  inf);\n\n\tlet softMin = ifNull(cmin.soft,  inf);\n\tlet softMax = ifNull(cmax.soft, -inf);\n\n\tlet softMinMode = ifNull(cmin.mode, 0);\n\tlet softMaxMode = ifNull(cmax.mode, 0);\n\n\tlet delta        = _max - _min;\n\tlet nonZeroDelta = delta || abs(_max) || 1e3;\n\tlet mag          = log10(nonZeroDelta);\n\tlet base         = pow(10, floor(mag));\n\n\tlet _padMin  = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);\n\tlet _newMin  = roundDec(incrRoundDn(_min - _padMin, base/10), 6);\n\tlet _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;\n\tlet minLim   = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));\n\n\tlet _padMax  = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);\n\tlet _newMax  = roundDec(incrRoundUp(_max + _padMax, base/10), 6);\n\tlet _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;\n\tlet maxLim   = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));\n\n\tif (minLim == maxLim && minLim == 0)\n\t\tmaxLim = 100;\n\n\treturn [minLim, maxLim];\n}\n\n// alternative: https://stackoverflow.com/a/2254896\nconst fmtNum = new Intl.NumberFormat(navigator.language).format;\n\nconst M = Math;\n\nconst PI = M.PI;\nconst abs = M.abs;\nconst floor = M.floor;\nconst round = M.round;\nconst ceil = M.ceil;\nconst min = M.min;\nconst max = M.max;\nconst pow = M.pow;\nconst sqrt = M.sqrt;\nconst log10 = M.log10;\nconst log2 = M.log2;\nconst sinh =  (v, linthresh = 1) => M.sinh(v / linthresh);\nconst asinh = (v, linthresh = 1) => M.asinh(v / linthresh);\n\nconst inf = Infinity;\n\nfunction incrRound(num, incr) {\n\treturn round(num/incr)*incr;\n}\n\nfunction clamp(num, _min, _max) {\n\treturn min(max(num, _min), _max);\n}\n\nfunction fnOrSelf(v) {\n\treturn typeof v == \"function\" ? v : () => v;\n}\n\nconst retArg1 = (_0, _1) => _1;\n\nconst retNull = _ => null;\n\nconst retTrue = _ => true;\n\nfunction incrRoundUp(num, incr) {\n\treturn ceil(num/incr)*incr;\n}\n\nfunction incrRoundDn(num, incr) {\n\treturn floor(num/incr)*incr;\n}\n\nfunction roundDec(val, dec) {\n\treturn round(val * (dec = 10**dec)) / dec;\n}\n\nconst fixedDec = new Map();\n\nfunction guessDec(num) {\n\treturn ((\"\"+num).split(\".\")[1] || \"\").length;\n}\n\nfunction genIncrs(base, minExp, maxExp, mults) {\n\tlet incrs = [];\n\n\tlet multDec = mults.map(guessDec);\n\n\tfor (let exp = minExp; exp < maxExp; exp++) {\n\t\tlet expa = abs(exp);\n\t\tlet mag = roundDec(pow(base, exp), expa);\n\n\t\tfor (let i = 0; i < mults.length; i++) {\n\t\t\tlet _incr = mults[i] * mag;\n\t\t\tlet dec = (_incr >= 0 && exp >= 0 ? 0 : expa) + (exp >= multDec[i] ? 0 : multDec[i]);\n\t\t\tlet incr = roundDec(_incr, dec);\n\t\t\tincrs.push(incr);\n\t\t\tfixedDec.set(incr, dec);\n\t\t}\n\t}\n\n\treturn incrs;\n}\n\n//export const assign = Object.assign;\n\nconst EMPTY_OBJ = {};\n\nconst isArr = Array.isArray;\n\nfunction isStr(v) {\n\treturn typeof v == 'string';\n}\n\nfunction isObj(v) {\n\tlet is = false;\n\n\tif (v != null) {\n\t\tlet c = v.constructor;\n\t\tis = c == null || c == Object;\n\t}\n\n\treturn is;\n}\n\nfunction fastIsObj(v) {\n\treturn v != null && typeof v == 'object';\n}\n\nfunction copy(o, _isObj) {\n\t_isObj = _isObj || isObj;\n\n\tlet out;\n\n\tif (isArr(o))\n\t\tout = o.map(v => copy(v, _isObj));\n\telse if (_isObj(o)) {\n\t\tout = {};\n\t\tfor (var k in o)\n\t\t\tout[k] = copy(o[k], _isObj);\n\t}\n\telse\n\t\tout = o;\n\n\treturn out;\n}\n\nfunction assign(targ) {\n\tlet args = arguments;\n\n\tfor (let i = 1; i < args.length; i++) {\n\t\tlet src = args[i];\n\n\t\tfor (let key in src) {\n\t\t\tif (isObj(targ[key]))\n\t\t\t\tassign(targ[key], copy(src[key]));\n\t\t\telse\n\t\t\t\ttarg[key] = copy(src[key]);\n\t\t}\n\t}\n\n\treturn targ;\n}\n\n// nullModes\nconst NULL_REMOVE = 0;  // nulls are converted to undefined (e.g. for spanGaps: true)\nconst NULL_RETAIN = 1;  // nulls are retained, with alignment artifacts set to undefined (default)\nconst NULL_EXPAND = 2;  // nulls are expanded to include any adjacent alignment artifacts\n\n// sets undefined values to nulls when adjacent to existing nulls (minesweeper)\nfunction nullExpand(yVals, nullIdxs, alignedLen) {\n\tfor (let i = 0, xi, lastNullIdx = -1; i < nullIdxs.length; i++) {\n\t\tlet nullIdx = nullIdxs[i];\n\n\t\tif (nullIdx > lastNullIdx) {\n\t\t\txi = nullIdx - 1;\n\t\t\twhile (xi >= 0 && yVals[xi] == null)\n\t\t\t\tyVals[xi--] = null;\n\n\t\t\txi = nullIdx + 1;\n\t\t\twhile (xi < alignedLen && yVals[xi] == null)\n\t\t\t\tyVals[lastNullIdx = xi++] = null;\n\t\t}\n\t}\n}\n\n// nullModes is a tables-matched array indicating how to treat nulls in each series\n// output is sorted ASC on the joined field (table[0]) and duplicate join values are collapsed\nfunction join(tables, nullModes) {\n\tlet xVals = new Set();\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\t\tlet len = xs.length;\n\n\t\tfor (let i = 0; i < len; i++)\n\t\t\txVals.add(xs[i]);\n\t}\n\n\tlet data = [Array.from(xVals).sort((a, b) => a - b)];\n\n\tlet alignedLen = data[0].length;\n\n\tlet xIdxs = new Map();\n\n\tfor (let i = 0; i < alignedLen; i++)\n\t\txIdxs.set(data[0][i], i);\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\n\t\tfor (let si = 1; si < t.length; si++) {\n\t\t\tlet ys = t[si];\n\n\t\t\tlet yVals = Array(alignedLen).fill(undefined);\n\n\t\t\tlet nullMode = nullModes ? nullModes[ti][si] : NULL_RETAIN;\n\n\t\t\tlet nullIdxs = [];\n\n\t\t\tfor (let i = 0; i < ys.length; i++) {\n\t\t\t\tlet yVal = ys[i];\n\t\t\t\tlet alignedIdx = xIdxs.get(xs[i]);\n\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (nullMode != NULL_REMOVE) {\n\t\t\t\t\t\tyVals[alignedIdx] = yVal;\n\n\t\t\t\t\t\tif (nullMode == NULL_EXPAND)\n\t\t\t\t\t\t\tnullIdxs.push(alignedIdx);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tyVals[alignedIdx] = yVal;\n\t\t\t}\n\n\t\t\tnullExpand(yVals, nullIdxs, alignedLen);\n\n\t\t\tdata.push(yVals);\n\t\t}\n\t}\n\n\treturn data;\n}\n\nconst microTask = typeof queueMicrotask == \"undefined\" ? fn => Promise.resolve().then(fn) : queueMicrotask;\n\nconst WIDTH       = \"width\";\nconst HEIGHT      = \"height\";\nconst TOP         = \"top\";\nconst BOTTOM      = \"bottom\";\nconst LEFT        = \"left\";\nconst RIGHT       = \"right\";\nconst hexBlack    = \"#000\";\nconst transparent = hexBlack + \"0\";\n\nconst mousemove   = \"mousemove\";\nconst mousedown   = \"mousedown\";\nconst mouseup     = \"mouseup\";\nconst mouseenter  = \"mouseenter\";\nconst mouseleave  = \"mouseleave\";\nconst dblclick    = \"dblclick\";\nconst resize      = \"resize\";\nconst scroll      = \"scroll\";\n\nconst pre = \"u-\";\n\nconst UPLOT          =       \"uplot\";\nconst ORI_HZ         = pre + \"hz\";\nconst ORI_VT         = pre + \"vt\";\nconst TITLE          = pre + \"title\";\nconst WRAP           = pre + \"wrap\";\nconst UNDER          = pre + \"under\";\nconst OVER           = pre + \"over\";\nconst OFF            = pre + \"off\";\nconst SELECT         = pre + \"select\";\nconst CURSOR_X       = pre + \"cursor-x\";\nconst CURSOR_Y       = pre + \"cursor-y\";\nconst CURSOR_PT      = pre + \"cursor-pt\";\nconst LEGEND         = pre + \"legend\";\nconst LEGEND_LIVE    = pre + \"live\";\nconst LEGEND_INLINE  = pre + \"inline\";\nconst LEGEND_THEAD   = pre + \"thead\";\nconst LEGEND_SERIES  = pre + \"series\";\nconst LEGEND_MARKER  = pre + \"marker\";\nconst LEGEND_LABEL   = pre + \"label\";\nconst LEGEND_VALUE   = pre + \"value\";\n\nconst doc = document;\nconst win = window;\nconst pxRatio = devicePixelRatio;\n\nfunction addClass(el, c) {\n\tif (c != null) {\n\t\tlet cl = el.classList;\n\t\t!cl.contains(c) && cl.add(c);\n\t}\n}\n\nfunction remClass(el, c) {\n\tlet cl = el.classList;\n\tcl.contains(c) && cl.remove(c);\n}\n\nfunction setStylePx(el, name, value) {\n\tel.style[name] = value + \"px\";\n}\n\nfunction placeTag(tag, cls, targ, refEl) {\n\tlet el = doc.createElement(tag);\n\n\tif (cls != null)\n\t\taddClass(el, cls);\n\n\tif (targ != null)\n\t\ttarg.insertBefore(el, refEl);\n\n\treturn el;\n}\n\nfunction placeDiv(cls, targ) {\n\treturn placeTag(\"div\", cls, targ);\n}\n\nfunction trans(el, xPos, yPos, xMax, yMax) {\n\tel.style.transform = \"translate(\" + xPos + \"px,\" + yPos + \"px)\";\n\n\tif (xPos < 0 || yPos < 0 || xPos > xMax || yPos > yMax)\n\t\taddClass(el, OFF);\n\telse\n\t\tremClass(el, OFF);\n}\n\nconst evOpts = {passive: true};\n\nfunction on(ev, el, cb) {\n\tel.addEventListener(ev, cb, evOpts);\n}\n\nfunction off(ev, el, cb) {\n\tel.removeEventListener(ev, cb, evOpts);\n}\n\nconst months = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\",\n];\n\nconst days = [\n\t\"Sunday\",\n\t\"Monday\",\n\t\"Tuesday\",\n\t\"Wednesday\",\n\t\"Thursday\",\n\t\"Friday\",\n\t\"Saturday\",\n];\n\nfunction slice3(str) {\n\treturn str.slice(0, 3);\n}\n\nconst days3 = days.map(slice3);\n\nconst months3 = months.map(slice3);\n\nconst engNames = {\n\tMMMM: months,\n\tMMM:  months3,\n\tWWWW: days,\n\tWWW:  days3,\n};\n\nfunction zeroPad2(int) {\n\treturn (int < 10 ? '0' : '') + int;\n}\n\nfunction zeroPad3(int) {\n\treturn (int < 10 ? '00' : int < 100 ? '0' : '') + int;\n}\n\n/*\nfunction suffix(int) {\n\tlet mod10 = int % 10;\n\n\treturn int + (\n\t\tmod10 == 1 && int != 11 ? \"st\" :\n\t\tmod10 == 2 && int != 12 ? \"nd\" :\n\t\tmod10 == 3 && int != 13 ? \"rd\" : \"th\"\n\t);\n}\n*/\n\nconst subs = {\n\t// 2019\n\tYYYY:\td => d.getFullYear(),\n\t// 19\n\tYY:\t\td => (d.getFullYear()+'').slice(2),\n\t// July\n\tMMMM:\t(d, names) => names.MMMM[d.getMonth()],\n\t// Jul\n\tMMM:\t(d, names) => names.MMM[d.getMonth()],\n\t// 07\n\tMM:\t\td => zeroPad2(d.getMonth()+1),\n\t// 7\n\tM:\t\td => d.getMonth()+1,\n\t// 09\n\tDD:\t\td => zeroPad2(d.getDate()),\n\t// 9\n\tD:\t\td => d.getDate(),\n\t// Monday\n\tWWWW:\t(d, names) => names.WWWW[d.getDay()],\n\t// Mon\n\tWWW:\t(d, names) => names.WWW[d.getDay()],\n\t// 03\n\tHH:\t\td => zeroPad2(d.getHours()),\n\t// 3\n\tH:\t\td => d.getHours(),\n\t// 9 (12hr, unpadded)\n\th:\t\td => {let h = d.getHours(); return h == 0 ? 12 : h > 12 ? h - 12 : h;},\n\t// AM\n\tAA:\t\td => d.getHours() >= 12 ? 'PM' : 'AM',\n\t// am\n\taa:\t\td => d.getHours() >= 12 ? 'pm' : 'am',\n\t// a\n\ta:\t\td => d.getHours() >= 12 ? 'p' : 'a',\n\t// 09\n\tmm:\t\td => zeroPad2(d.getMinutes()),\n\t// 9\n\tm:\t\td => d.getMinutes(),\n\t// 09\n\tss:\t\td => zeroPad2(d.getSeconds()),\n\t// 9\n\ts:\t\td => d.getSeconds(),\n\t// 374\n\tfff:\td => zeroPad3(d.getMilliseconds()),\n};\n\nfunction fmtDate(tpl, names) {\n\tnames = names || engNames;\n\tlet parts = [];\n\n\tlet R = /\\{([a-z]+)\\}|[^{]+/gi, m;\n\n\twhile (m = R.exec(tpl))\n\t\tparts.push(m[0][0] == '{' ? subs[m[1]] : m[0]);\n\n\treturn d => {\n\t\tlet out = '';\n\n\t\tfor (let i = 0; i < parts.length; i++)\n\t\t\tout += typeof parts[i] == \"string\" ? parts[i] : parts[i](d, names);\n\n\t\treturn out;\n\t}\n}\n\nconst localTz = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone/53652131#53652131\nfunction tzDate(date, tz) {\n\tlet date2;\n\n\t// perf optimization\n\tif (tz == 'UTC' || tz == 'Etc/UTC')\n\t\tdate2 = new Date(+date + date.getTimezoneOffset() * 6e4);\n\telse if (tz == localTz)\n\t\tdate2 = date;\n\telse {\n\t\tdate2 = new Date(date.toLocaleString('en-US', {timeZone: tz}));\n\t\tdate2.setMilliseconds(date.getMilliseconds());\n\t}\n\n\treturn date2;\n}\n\n//export const series = [];\n\n// default formatters:\n\nconst onlyWhole = v => v % 1 == 0;\n\nconst allMults = [1,2,2.5,5];\n\n// ...0.01, 0.02, 0.025, 0.05, 0.1, 0.2, 0.25, 0.5\nconst decIncrs = genIncrs(10, -16, 0, allMults);\n\n// 1, 2, 2.5, 5, 10, 20, 25, 50...\nconst oneIncrs = genIncrs(10, 0, 16, allMults);\n\n// 1, 2,      5, 10, 20, 25, 50...\nconst wholeIncrs = oneIncrs.filter(onlyWhole);\n\nconst numIncrs = decIncrs.concat(oneIncrs);\n\nconst NL = \"\\n\";\n\nconst yyyy    = \"{YYYY}\";\nconst NLyyyy  = NL + yyyy;\nconst md      = \"{M}/{D}\";\nconst NLmd    = NL + md;\nconst NLmdyy  = NLmd + \"/{YY}\";\n\nconst aa      = \"{aa}\";\nconst hmm     = \"{h}:{mm}\";\nconst hmmaa   = hmm + aa;\nconst NLhmmaa = NL + hmmaa;\nconst ss      = \":{ss}\";\n\nconst _ = null;\n\nfunction genTimeStuffs(ms) {\n\tlet\ts  = ms * 1e3,\n\t\tm  = s  * 60,\n\t\th  = m  * 60,\n\t\td  = h  * 24,\n\t\tmo = d  * 30,\n\t\ty  = d  * 365;\n\n\t// min of 1e-3 prevents setting a temporal x ticks too small since Date objects cannot advance ticks smaller than 1ms\n\tlet subSecIncrs = ms == 1 ? genIncrs(10, 0, 3, allMults).filter(onlyWhole) : genIncrs(10, -3, 0, allMults);\n\n\tlet timeIncrs = subSecIncrs.concat([\n\t\t// minute divisors (# of secs)\n\t\ts,\n\t\ts * 5,\n\t\ts * 10,\n\t\ts * 15,\n\t\ts * 30,\n\t\t// hour divisors (# of mins)\n\t\tm,\n\t\tm * 5,\n\t\tm * 10,\n\t\tm * 15,\n\t\tm * 30,\n\t\t// day divisors (# of hrs)\n\t\th,\n\t\th * 2,\n\t\th * 3,\n\t\th * 4,\n\t\th * 6,\n\t\th * 8,\n\t\th * 12,\n\t\t// month divisors TODO: need more?\n\t\td,\n\t\td * 2,\n\t\td * 3,\n\t\td * 4,\n\t\td * 5,\n\t\td * 6,\n\t\td * 7,\n\t\td * 8,\n\t\td * 9,\n\t\td * 10,\n\t\td * 15,\n\t\t// year divisors (# months, approx)\n\t\tmo,\n\t\tmo * 2,\n\t\tmo * 3,\n\t\tmo * 4,\n\t\tmo * 6,\n\t\t// century divisors\n\t\ty,\n\t\ty * 2,\n\t\ty * 5,\n\t\ty * 10,\n\t\ty * 25,\n\t\ty * 50,\n\t\ty * 100,\n\t]);\n\n\t// [0]:   minimum num secs in the tick incr\n\t// [1]:   default tick format\n\t// [2-7]: rollover tick formats\n\t// [8]:   mode: 0: replace [1] -> [2-7], 1: concat [1] + [2-7]\n\tconst _timeAxisStamps = [\n\t//   tick incr    default          year                    month   day                   hour    min       sec   mode\n\t\t[y,           yyyy,            _,                      _,      _,                    _,      _,        _,       1],\n\t\t[d * 28,      \"{MMM}\",         NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t[d,           md,              NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t[h,           \"{h}\" + aa,      NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t[m,           hmmaa,           NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t[s,           ss,              NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1],\n\t\t[ms,          ss + \".{fff}\",   NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1],\n\t];\n\n\t// the ensures that axis ticks, values & grid are aligned to logical temporal breakpoints and not an arbitrary timestamp\n\t// https://www.timeanddate.com/time/dst/\n\t// https://www.timeanddate.com/time/dst/2019.html\n\t// https://www.epochconverter.com/timezones\n\tfunction timeAxisSplits(tzDate) {\n\t\treturn (self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace) => {\n\t\t\tlet splits = [];\n\t\t\tlet isYr = foundIncr >= y;\n\t\t\tlet isMo = foundIncr >= mo && foundIncr < y;\n\n\t\t\t// get the timezone-adjusted date\n\t\t\tlet minDate = tzDate(scaleMin);\n\t\t\tlet minDateTs = minDate * ms;\n\n\t\t\t// get ts of 12am (this lands us at or before the original scaleMin)\n\t\t\tlet minMin = mkDate(minDate.getFullYear(), isYr ? 0 : minDate.getMonth(), isMo || isYr ? 1 : minDate.getDate());\n\t\t\tlet minMinTs = minMin * ms;\n\n\t\t\tif (isMo || isYr) {\n\t\t\t\tlet moIncr = isMo ? foundIncr / mo : 0;\n\t\t\t\tlet yrIncr = isYr ? foundIncr / y  : 0;\n\t\t\t//\tlet tzOffset = scaleMin - minDateTs;\t\t// needed?\n\t\t\t\tlet split = minDateTs == minMinTs ? minDateTs : mkDate(minMin.getFullYear() + yrIncr, minMin.getMonth() + moIncr, 1) * ms;\n\t\t\t\tlet splitDate = new Date(split / ms);\n\t\t\t\tlet baseYear = splitDate.getFullYear();\n\t\t\t\tlet baseMonth = splitDate.getMonth();\n\n\t\t\t\tfor (let i = 0; split <= scaleMax; i++) {\n\t\t\t\t\tlet next = mkDate(baseYear + yrIncr * i, baseMonth + moIncr * i, 1);\n\t\t\t\t\tlet offs = next - tzDate(next * ms);\n\n\t\t\t\t\tsplit = (+next + offs) * ms;\n\n\t\t\t\t\tif (split <= scaleMax)\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet incr0 = foundIncr >= d ? d : foundIncr;\n\t\t\t\tlet tzOffset = floor(scaleMin) - floor(minDateTs);\n\t\t\t\tlet split = minMinTs + tzOffset + incrRoundUp(minDateTs - minMinTs, incr0);\n\t\t\t\tsplits.push(split);\n\n\t\t\t\tlet date0 = tzDate(split);\n\n\t\t\t\tlet prevHour = date0.getHours() + (date0.getMinutes() / m) + (date0.getSeconds() / h);\n\t\t\t\tlet incrHours = foundIncr / h;\n\n\t\t\t\tlet minSpace = self.axes[axisIdx]._space;\n\t\t\t\tlet pctSpace = foundSpace / minSpace;\n\n\t\t\t\twhile (1) {\n\t\t\t\t\tsplit = roundDec(split + foundIncr, ms == 1 ? 0 : 3);\n\n\t\t\t\t\tif (split > scaleMax)\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tif (incrHours > 1) {\n\t\t\t\t\t\tlet expectedHour = floor(roundDec(prevHour + incrHours, 6)) % 24;\n\t\t\t\t\t\tlet splitDate = tzDate(split);\n\t\t\t\t\t\tlet actualHour = splitDate.getHours();\n\n\t\t\t\t\t\tlet dstShift = actualHour - expectedHour;\n\n\t\t\t\t\t\tif (dstShift > 1)\n\t\t\t\t\t\t\tdstShift = -1;\n\n\t\t\t\t\t\tsplit -= dstShift * h;\n\n\t\t\t\t\t\tprevHour = (prevHour + incrHours) % 24;\n\n\t\t\t\t\t\t// add a tick only if it's further than 70% of the min allowed label spacing\n\t\t\t\t\t\tlet prevSplit = splits[splits.length - 1];\n\t\t\t\t\t\tlet pctIncr = roundDec((split - prevSplit) / foundIncr, 3);\n\n\t\t\t\t\t\tif (pctIncr * pctSpace >= .7)\n\t\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn splits;\n\t\t}\n\t}\n\n\treturn [\n\t\ttimeIncrs,\n\t\t_timeAxisStamps,\n\t\ttimeAxisSplits,\n\t];\n}\n\nconst [ timeIncrsMs, _timeAxisStampsMs, timeAxisSplitsMs ] = genTimeStuffs(1);\nconst [ timeIncrsS,  _timeAxisStampsS,  timeAxisSplitsS  ] = genTimeStuffs(1e-3);\n\n// base 2\ngenIncrs(2, -53, 53, [1]);\n\n/*\nconsole.log({\n\tdecIncrs,\n\toneIncrs,\n\twholeIncrs,\n\tnumIncrs,\n\ttimeIncrs,\n\tfixedDec,\n});\n*/\n\nfunction timeAxisStamps(stampCfg, fmtDate) {\n\treturn stampCfg.map(s => s.map((v, i) =>\n\t\ti == 0 || i == 8 || v == null ? v : fmtDate(i == 1 || s[8] == 0 ? v : s[1] + v)\n\t));\n}\n\n// TODO: will need to accept spaces[] and pull incr into the loop when grid will be non-uniform, eg for log scales.\n// currently we ignore this for months since they're *nearly* uniform and the added complexity is not worth it\nfunction timeAxisVals(tzDate, stamps) {\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => {\n\t\tlet s = stamps.find(s => foundIncr >= s[0]) || stamps[stamps.length - 1];\n\n\t\t// these track boundaries when a full label is needed again\n\t\tlet prevYear;\n\t\tlet prevMnth;\n\t\tlet prevDate;\n\t\tlet prevHour;\n\t\tlet prevMins;\n\t\tlet prevSecs;\n\n\t\treturn splits.map(split => {\n\t\t\tlet date = tzDate(split);\n\n\t\t\tlet newYear = date.getFullYear();\n\t\t\tlet newMnth = date.getMonth();\n\t\t\tlet newDate = date.getDate();\n\t\t\tlet newHour = date.getHours();\n\t\t\tlet newMins = date.getMinutes();\n\t\t\tlet newSecs = date.getSeconds();\n\n\t\t\tlet stamp = (\n\t\t\t\tnewYear != prevYear && s[2] ||\n\t\t\t\tnewMnth != prevMnth && s[3] ||\n\t\t\t\tnewDate != prevDate && s[4] ||\n\t\t\t\tnewHour != prevHour && s[5] ||\n\t\t\t\tnewMins != prevMins && s[6] ||\n\t\t\t\tnewSecs != prevSecs && s[7] ||\n\t\t\t\t                       s[1]\n\t\t\t);\n\n\t\t\tprevYear = newYear;\n\t\t\tprevMnth = newMnth;\n\t\t\tprevDate = newDate;\n\t\t\tprevHour = newHour;\n\t\t\tprevMins = newMins;\n\t\t\tprevSecs = newSecs;\n\n\t\t\treturn stamp(date);\n\t\t});\n\t}\n}\n\n// for when axis.values is defined as a static fmtDate template string\nfunction timeAxisVal(tzDate, dateTpl) {\n\tlet stamp = fmtDate(dateTpl);\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => splits.map(split => stamp(tzDate(split)));\n}\n\nfunction mkDate(y, m, d) {\n\treturn new Date(y, m, d);\n}\n\nfunction timeSeriesStamp(stampCfg, fmtDate) {\n\treturn fmtDate(stampCfg);\n}\nconst _timeSeriesStamp = '{YYYY}-{MM}-{DD} {h}:{mm}{aa}';\n\nfunction timeSeriesVal(tzDate, stamp) {\n\treturn (self, val) => stamp(tzDate(val));\n}\n\nconst legendWidth = 2;\n\nconst legendDash = \"solid\";\n\nfunction legendStroke(self, seriesIdx) {\n\tlet s = self.series[seriesIdx];\n\treturn s.width ? s.stroke(self, seriesIdx) : s.points.width ? s.points.stroke(self, seriesIdx) : null;\n}\n\nfunction legendFill(self, seriesIdx) {\n\treturn self.series[seriesIdx].fill(self, seriesIdx);\n}\n\nfunction cursorPointShow(self, si) {\n\tlet o = self.cursor.points;\n\n\tlet pt = placeDiv();\n\n\tlet stroke = o.stroke(self, si);\n\tlet fill = o.fill(self, si);\n\n\tpt.style.background = fill || stroke;\n\n\tlet size = o.size(self, si);\n\tlet width = o.width(self, si, size);\n\n\tif (width)\n\t\tpt.style.border = width + \"px solid \" + stroke;\n\n\tlet mar = size / -2;\n\n\tsetStylePx(pt, WIDTH, size);\n\tsetStylePx(pt, HEIGHT, size);\n\tsetStylePx(pt, \"marginLeft\", mar);\n\tsetStylePx(pt, \"marginTop\", mar);\n\n\treturn pt;\n}\n\nfunction cursorPointFill(self, si) {\n\tlet s = self.series[si];\n\treturn s.stroke(self, si);\n}\n\nfunction cursorPointStroke(self, si) {\n\tlet s = self.series[si];\n\treturn s.stroke(self, si);\n}\n\nfunction cursorPointSize(self, si) {\n\tlet s = self.series[si];\n\treturn ptDia(s.width, 1);\n}\n\nfunction dataIdx(self, seriesIdx, cursorIdx) {\n\treturn cursorIdx;\n}\n\nconst moveTuple = [0,0];\n\nfunction cursorMove(self, mouseLeft1, mouseTop1) {\n\tmoveTuple[0] = mouseLeft1;\n\tmoveTuple[1] = mouseTop1;\n\treturn moveTuple;\n}\n\nfunction filtBtn0(self, targ, handle) {\n\treturn e => {\n\t\te.button == 0 && handle(e);\n\t};\n}\n\nfunction passThru(self, targ, handle) {\n\treturn handle;\n}\n\nconst cursorOpts = {\n\tshow: true,\n\tx: true,\n\ty: true,\n\tlock: false,\n\tmove: cursorMove,\n\tpoints: {\n\t\tshow:   cursorPointShow,\n\t\tsize:   cursorPointSize,\n\t\twidth:  0,\n\t\tstroke: cursorPointStroke,\n\t\tfill:   cursorPointFill,\n\t},\n\n\tbind: {\n\t\tmousedown:   filtBtn0,\n\t\tmouseup:     filtBtn0,\n\t\tclick:       filtBtn0,\n\t\tdblclick:    filtBtn0,\n\n\t\tmousemove:   passThru,\n\t\tmouseleave:  passThru,\n\t\tmouseenter:  passThru,\n\t},\n\n\tdrag: {\n\t\tsetScale: true,\n\t\tx: true,\n\t\ty: false,\n\t\tdist: 0,\n\t\tuni: null,\n\t\t_x: false,\n\t\t_y: false,\n\t},\n\n\tfocus: {\n\t\tprox: -1,\n\t},\n\n\tleft: -10,\n\ttop: -10,\n\tidx: null,\n\tdataIdx,\n};\n\nconst grid = {\n\tshow: true,\n\tstroke: \"rgba(0,0,0,0.07)\",\n\twidth: 2,\n//\tdash: [],\n\tfilter: retArg1,\n};\n\nconst ticks = assign({}, grid, {size: 10});\n\nconst font      = '12px system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\nconst labelFont = \"bold \" + font;\nconst lineMult = 1.5;\t\t// font-size multiplier\n\nconst xAxisOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tstroke: hexBlack,\n\tspace: 50,\n\tgap: 5,\n\tsize: 50,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 2,\n//\tclass: \"x-vals\",\n//\tincrs: timeIncrs,\n//\tvalues: timeVals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tfont,\n\trotate: 0,\n};\n\nconst numSeriesLabel = \"Value\";\nconst timeSeriesLabel = \"Time\";\n\nconst xSeriesOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tauto: false,\n\tsorted: 1,\n//\tlabel: \"Time\",\n//\tvalue: v => stamp(new Date(v * 1e3)),\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n};\n\nfunction numAxisVals(self, splits, axisIdx, foundSpace, foundIncr) {\n\treturn splits.map(v => v == null ? \"\" : fmtNum(v));\n}\n\nfunction numAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet splits = [];\n\n\tlet numDec = fixedDec.get(foundIncr) || 0;\n\n\tscaleMin = forceMin ? scaleMin : roundDec(incrRoundUp(scaleMin, foundIncr), numDec);\n\n\tfor (let val = scaleMin; val <= scaleMax; val = roundDec(val + foundIncr, numDec))\n\t\tsplits.push(Object.is(val, -0) ? 0 : val);\t\t// coalesces -0\n\n\treturn splits;\n}\n\n// this doesnt work for sin, which needs to come off from 0 independently in pos and neg dirs\nfunction logAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tconst splits = [];\n\n\tconst logBase = self.scales[self.axes[axisIdx].scale].log;\n\n\tconst logFn = logBase == 10 ? log10 : log2;\n\n\tconst exp = floor(logFn(scaleMin));\n\n\tfoundIncr = pow(logBase, exp);\n\n\tif (exp < 0)\n\t\tfoundIncr = roundDec(foundIncr, -exp);\n\n\tlet split = scaleMin;\n\n\tdo {\n\t\tsplits.push(split);\n\t\tsplit = roundDec(split + foundIncr, fixedDec.get(foundIncr));\n\n\t\tif (split >= foundIncr * logBase)\n\t\t\tfoundIncr = split;\n\n\t} while (split <= scaleMax);\n\n\treturn splits;\n}\n\nfunction asinhAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet sc = self.scales[self.axes[axisIdx].scale];\n\n\tlet linthresh = sc.asinh;\n\n\tlet posSplits = scaleMax > linthresh ? logAxisSplits(self, axisIdx, max(linthresh, scaleMin), scaleMax, foundIncr) : [linthresh];\n\tlet zero = scaleMax >= 0 && scaleMin <= 0 ? [0] : [];\n\tlet negSplits = scaleMin < -linthresh ? logAxisSplits(self, axisIdx, max(linthresh, -scaleMax), -scaleMin, foundIncr): [linthresh];\n\n\treturn negSplits.reverse().map(v => -v).concat(zero, posSplits);\n}\n\nconst RE_ALL   = /./;\nconst RE_12357 = /[12357]/;\nconst RE_125   = /[125]/;\nconst RE_1     = /1/;\n\nfunction logAxisValsFilt(self, splits, axisIdx, foundSpace, foundIncr) {\n\tlet axis = self.axes[axisIdx];\n\tlet scaleKey = axis.scale;\n\tlet sc = self.scales[scaleKey];\n\n\tif (sc.distr == 3 && sc.log == 2)\n\t\treturn splits;\n\n\tlet valToPos = self.valToPos;\n\n\tlet minSpace = axis._space;\n\n\tlet _10 = valToPos(10, scaleKey);\n\n\tlet re = (\n\t\tvalToPos(9, scaleKey) - _10 >= minSpace ? RE_ALL :\n\t\tvalToPos(7, scaleKey) - _10 >= minSpace ? RE_12357 :\n\t\tvalToPos(5, scaleKey) - _10 >= minSpace ? RE_125 :\n\t\tRE_1\n\t);\n\n\treturn splits.map(v => ((sc.distr == 4 && v == 0) || re.test(v)) ? v : null);\n}\n\nfunction numSeriesVal(self, val) {\n\treturn val == null ? \"\" : fmtNum(val);\n}\n\nconst yAxisOpts = {\n\tshow: true,\n\tscale: \"y\",\n\tstroke: hexBlack,\n\tspace: 30,\n\tgap: 5,\n\tsize: 50,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 3,\n//\tclass: \"y-vals\",\n//\tincrs: numIncrs,\n//\tvalues: (vals, space) => vals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tfont,\n\trotate: 0,\n};\n\n// takes stroke width\nfunction ptDia(width, mult) {\n\tlet dia = 3 + (width || 1) * 2;\n\treturn roundDec(dia * mult, 3);\n}\n\nfunction seriesPoints(self, si) {\n\tconst xsc = self.scales[self.series[0].scale];\n\tconst dim = xsc.ori == 0 ? self.bbox.width : self.bbox.height;\n\tconst s = self.series[si];\n//\tconst dia = ptDia(s.width, pxRatio);\n\tlet maxPts = dim / (s.points.space * pxRatio);\n\tlet idxs = self.series[0].idxs;\n\treturn idxs[1] - idxs[0] <= maxPts;\n}\n\nfunction seriesFillTo(self, seriesIdx, dataMin, dataMax) {\n\tlet scale = self.scales[self.series[seriesIdx].scale];\n\tlet isUpperBandEdge = self.bands && self.bands.some(b => b.series[0] == seriesIdx);\n\treturn scale.distr == 3 || isUpperBandEdge ? scale.min : 0;\n}\n\nconst ySeriesOpts = {\n\tscale: \"y\",\n\tauto: true,\n\tsorted: 0,\n\tshow: true,\n\tband: false,\n\tspanGaps: false,\n\talpha: 1,\n\tpoints: {\n\t\tshow: seriesPoints,\n\t//\tstroke: \"#000\",\n\t//\tfill: \"#fff\",\n\t//\twidth: 1,\n\t//\tsize: 10,\n\t},\n//\tlabel: \"Value\",\n//\tvalue: v => v,\n\tvalues: null,\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n\n\tpath: null,\n\tclip: null,\n};\n\nfunction clampScale(self, val, scaleMin, scaleMax, scaleKey) {\n/*\n\tif (val < 0) {\n\t\tlet cssHgt = self.bbox.height / pxRatio;\n\t\tlet absPos = self.valToPos(abs(val), scaleKey);\n\t\tlet fromBtm = cssHgt - absPos;\n\t\treturn self.posToVal(cssHgt + fromBtm, scaleKey);\n\t}\n*/\n\treturn scaleMin / 10;\n}\n\nconst xScaleOpts = {\n\ttime: FEAT_TIME,\n\tauto: true,\n\tdistr: 1,\n\tlog: 10,\n\tasinh: 1,\n\tmin: null,\n\tmax: null,\n\tdir: 1,\n\tori: 0,\n};\n\nconst yScaleOpts = assign({}, xScaleOpts, {\n\ttime: false,\n\tori: 1,\n});\n\nconst syncs = {};\n\nfunction _sync(key, opts) {\n\tlet s = syncs[key];\n\n\tif (!s) {\n\t\tlet clients = [];\n\n\t\ts = {\n\t\t\tkey,\n\t\t\tsub(client) {\n\t\t\t\tclients.push(client);\n\t\t\t},\n\t\t\tunsub(client) {\n\t\t\t\tclients = clients.filter(c => c != client);\n\t\t\t},\n\t\t\tpub(type, self, x, y, w, h, i) {\n\t\t\t\tfor (let i = 0; i < clients.length; i++)\n\t\t\t\t\tclients[i] != self && clients[i].pub(type, self, x, y, w, h, i);\n\t\t\t}\n\t\t};\n\n\t\tif (key != null)\n\t\t\tsyncs[key] = s;\n\t}\n\n\treturn s;\n}\n\nfunction orient(u, seriesIdx, cb) {\n\tconst series = u.series[seriesIdx];\n\tconst scales = u.scales;\n\tconst bbox   = u.bbox;\n\tconst scaleX = scales[u.series[0].scale];\n\n\tlet dx = u._data[0],\n\t\tdy = u._data[seriesIdx],\n\t\tsx = scaleX,\n\t\tsy = scales[series.scale],\n\t\tl = bbox.left,\n\t\tt = bbox.top,\n\t\tw = bbox.width,\n\t\th = bbox.height,\n\t\tH = u.valToPosH,\n\t\tV = u.valToPosV;\n\n\treturn (sx.ori == 0\n\t\t? cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tH,\n\t\t\tV,\n\t\t\tl,\n\t\t\tt,\n\t\t\tw,\n\t\t\th,\n\t\t\tmoveToH,\n\t\t\tlineToH,\n\t\t\trectH,\n\t\t\tarcH,\n\t\t\tbezierCurveToH,\n\t\t)\n\t\t: cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tV,\n\t\t\tH,\n\t\t\tt,\n\t\t\tl,\n\t\t\th,\n\t\t\tw,\n\t\t\tmoveToV,\n\t\t\tlineToV,\n\t\t\trectV,\n\t\t\tarcV,\n\t\t\tbezierCurveToV,\n\t\t)\n\t);\n}\n\n// creates inverted band clip path (towards from stroke path -> yMax)\nfunction clipBandLine(self, seriesIdx, idx0, idx1, strokePath) {\n\treturn orient(self, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\t\tconst lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\tlet frIdx, toIdx;\n\n\t\tif (dir == 1) {\n\t\t\tfrIdx = idx0;\n\t\t\ttoIdx = idx1;\n\t\t}\n\t\telse {\n\t\t\tfrIdx = idx1;\n\t\t\ttoIdx = idx0;\n\t\t}\n\n\t\t// path start\n\t\tlet x0 = incrRound(valToPosX(dataX[frIdx], scaleX, xDim, xOff), 0.5);\n\t\tlet y0 = incrRound(valToPosY(dataY[frIdx], scaleY, yDim, yOff), 0.5);\n\t\t// path end x\n\t\tlet x1 = incrRound(valToPosX(dataX[toIdx], scaleX, xDim, xOff), 0.5);\n\t\t// upper y limit\n\t\tlet yLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\n\t\tlet clip = new Path2D(strokePath);\n\n\t\tlineTo(clip, x1, yLimit);\n\t\tlineTo(clip, x0, yLimit);\n\t\tlineTo(clip, x0, y0);\n\n\t\treturn clip;\n\t});\n}\n\nfunction clipGaps(gaps, ori, plotLft, plotTop, plotWid, plotHgt) {\n\tlet clip = null;\n\n\t// create clip path (invert gaps and non-gaps)\n\tif (gaps.length > 0) {\n\t\tclip = new Path2D();\n\n\t\tconst rect = ori == 0 ? rectH : rectV;\n\n\t\tlet prevGapEnd = plotLft;\n\n\t\tfor (let i = 0; i < gaps.length; i++) {\n\t\t\tlet g = gaps[i];\n\n\t\t\trect(clip, prevGapEnd, plotTop, g[0] - prevGapEnd, plotTop + plotHgt);\n\n\t\t\tprevGapEnd = g[1];\n\t\t}\n\n\t\trect(clip, prevGapEnd, plotTop, plotLft + plotWid - prevGapEnd, plotTop + plotHgt);\n\t}\n\n\treturn clip;\n}\n\nfunction addGap(gaps, fromX, toX) {\n\tif (toX > fromX) {\n\t\tlet prevGap = gaps[gaps.length - 1];\n\n\t\tif (prevGap && prevGap[0] == fromX)\t\t\t// TODO: gaps must be encoded at stroke widths?\n\t\t\tprevGap[1] = toX;\n\t\telse\n\t\t\tgaps.push([fromX, toX]);\n\t}\n}\n\n// orientation-inverting canvas functions\nfunction moveToH(p, x, y) { p.moveTo(x, y); }\nfunction moveToV(p, y, x) { p.moveTo(x, y); }\nfunction lineToH(p, x, y) { p.lineTo(x, y); }\nfunction lineToV(p, y, x) { p.lineTo(x, y); }\nfunction rectH(p, x, y, w, h) { p.rect(x, y, w, h); }\nfunction rectV(p, y, x, h, w) { p.rect(x, y, w, h); }\nfunction arcH(p, x, y, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\nfunction arcV(p, y, x, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\nfunction bezierCurveToH(p, bp1x, bp1y, bp2x, bp2y, p2x, p2y) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }function bezierCurveToV(p, bp1y, bp1x, bp2y, bp2x, p2y, p2x) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }\n\nfunction _drawAcc(lineTo) {\n\treturn (stroke, accX, minY, maxY, outY) => {\n\t\tif (minY != maxY) {\n\t\t\tlineTo(stroke, accX, minY);\n\t\t\tlineTo(stroke, accX, maxY);\n\t\t\tlineTo(stroke, accX, outY);\n\t\t}\n\t};\n}\n\nconst drawAccH = _drawAcc(lineToH);\nconst drawAccV = _drawAcc(lineToV);\n\nfunction linear() {\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet lineTo, drawAcc;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tdrawAcc = drawAccH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tdrawAcc = drawAccV;\n\t\t\t}\n\n\t\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tlet minY = inf,\n\t\t\t\tmaxY = -inf,\n\t\t\t\toutY, outX, drawnAtX;\n\n\t\t\tlet gaps = [];\n\n\t\t\tlet accX = round(valToPosX(dataX[dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet accGaps = false;\n\n\t\t\t// data edges\n\t\t\tlet lftIdx = nonNullIdx(dataY, idx0, idx1,  1 * dir);\n\t\t\tlet rgtIdx = nonNullIdx(dataY, idx0, idx1, -1 * dir);\n\t\t\tlet lftX = incrRound(valToPosX(dataX[lftIdx], scaleX, xDim, xOff), 0.5);\n\t\t\tlet rgtX = incrRound(valToPosX(dataX[rgtIdx], scaleX, xDim, xOff), 0.5);\n\n\t\t\tif (lftX > xOff)\n\t\t\t\taddGap(gaps, xOff, lftX);\n\n\t\t\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\tlet x = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\tif (x == accX) {\n\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\n\t\t\t\t\t\tif (minY == inf)\n\t\t\t\t\t\t\tlineTo(stroke, x, outY);\n\n\t\t\t\t\t\tminY = min(outY, minY);\n\t\t\t\t\t\tmaxY = max(outY, maxY);\n\t\t\t\t\t}\n\t\t\t\t\telse if (!accGaps && dataY[i] === null)\n\t\t\t\t\t\taccGaps = true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet _addGap = false;\n\n\t\t\t\t\tif (minY != inf) {\n\t\t\t\t\t\tdrawAcc(stroke, accX, minY, maxY, outY);\n\t\t\t\t\t\toutX = drawnAtX = accX;\n\t\t\t\t\t}\n\t\t\t\t\telse if (accGaps) {\n\t\t\t\t\t\t_addGap = true;\n\t\t\t\t\t\taccGaps = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t\t\tlineTo(stroke, x, outY);\n\t\t\t\t\t\tminY = maxY = outY;\n\n\t\t\t\t\t\t// prior pixel can have data but still start a gap if ends with null\n\t\t\t\t\t\tif (x - accX > 1 && dataY[i - dir] === null)\n\t\t\t\t\t\t\t_addGap = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tminY = inf;\n\t\t\t\t\t\tmaxY = -inf;\n\n\t\t\t\t\t\tif (!accGaps && dataY[i] === null)\n\t\t\t\t\t\t\taccGaps = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t_addGap && addGap(gaps, outX, x);\n\n\t\t\t\t\taccX = x;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (minY != inf && minY != maxY && drawnAtX != accX)\n\t\t\t\tdrawAcc(stroke, accX, minY, maxY, outY);\n\n\t\t\tif (rgtX < xOff + xDim)\n\t\t\t\taddGap(gaps, rgtX, xOff + xDim);\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = round(valToPosY(series.fillTo(u, seriesIdx, series.min, series.max), scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, rgtX, fillTo);\n\t\t\t\tlineTo(fill, lftX, fillTo);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction spline(opts) {\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet moveTo, bezierCurveTo, lineTo;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tmoveTo = moveToH;\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tbezierCurveTo = bezierCurveToH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmoveTo = moveToV;\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tbezierCurveTo = bezierCurveToV;\n\t\t\t}\n\n\t\t\tconst _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet gaps = [];\n\t\t\tlet inGap = false;\n\t\t\tlet firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlet xCoords = [];\n\t\t\tlet yCoords = [];\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal = dataY[i];\n\t\t\t\tlet xVal = dataX[i];\n\t\t\t\tlet xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (yVal === null) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (inGap) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\tinGap = false;\n\t\t\t\t\t}\n\n\t\t\t\t\txCoords.push((prevXPos = xPos));\n\t\t\t\t\tyCoords.push(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _paths = {stroke: catmullRomFitting(xCoords, yCoords, 0.5, moveTo, bezierCurveTo), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\tlet minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\n\t\t\t//  if FEAT_PATHS: false in rollup.config.js\n\t\t\t//\tu.ctx.save();\n\t\t\t//\tu.ctx.beginPath();\n\t\t\t//\tu.ctx.rect(u.bbox.left, u.bbox.top, u.bbox.width, u.bbox.height);\n\t\t\t//\tu.ctx.clip();\n\t\t\t//\tu.ctx.strokeStyle = u.series[sidx].stroke;\n\t\t\t//\tu.ctx.stroke(stroke);\n\t\t\t//\tu.ctx.fillStyle = u.series[sidx].fill;\n\t\t\t//\tu.ctx.fill(fill);\n\t\t\t//\tu.ctx.restore();\n\t\t\t//\treturn null;\n\t\t});\n\t};\n}\n\n// adapted from https://gist.github.com/nicholaswmin/c2661eb11cad5671d816 (MIT)\n/**\n * Interpolates a Catmull-Rom Spline through a series of x/y points\n * Converts the CR Spline to Cubic Beziers for use with SVG items\n *\n * If 'alpha' is 0.5 then the 'Centripetal' variant is used\n * If 'alpha' is 1 then the 'Chordal' variant is used\n *\n */\nfunction catmullRomFitting(xCoords, yCoords, alpha, moveTo, bezierCurveTo) {\n\tconst path = new Path2D();\n\n\tconst dataLen = xCoords.length;\n\n\tlet p0x,\n\t\tp0y,\n\t\tp1x,\n\t\tp1y,\n\t\tp2x,\n\t\tp2y,\n\t\tp3x,\n\t\tp3y,\n\t\tbp1x,\n\t\tbp1y,\n\t\tbp2x,\n\t\tbp2y,\n\t\td1,\n\t\td2,\n\t\td3,\n\t\tA,\n\t\tB,\n\t\tN,\n\t\tM,\n\t\td3powA,\n\t\td2powA,\n\t\td3pow2A,\n\t\td2pow2A,\n\t\td1pow2A,\n\t\td1powA;\n\n\tmoveTo(path, round(xCoords[0]), round(yCoords[0]));\n\n\tfor (let i = 0; i < dataLen - 1; i++) {\n\t\tlet p0i = i == 0 ? 0 : i - 1;\n\n\t\tp0x = xCoords[p0i];\n\t\tp0y = yCoords[p0i];\n\n\t\tp1x = xCoords[i];\n\t\tp1y = yCoords[i];\n\n\t\tp2x = xCoords[i + 1];\n\t\tp2y = yCoords[i + 1];\n\n\t\tif (i + 2 < dataLen) {\n\t\t\tp3x = xCoords[i + 2];\n\t\t\tp3y = yCoords[i + 2];\n\t\t} else {\n\t\t\tp3x = p2x;\n\t\t\tp3y = p2y;\n\t\t}\n\n\t\td1 = sqrt(pow(p0x - p1x, 2) + pow(p0y - p1y, 2));\n\t\td2 = sqrt(pow(p1x - p2x, 2) + pow(p1y - p2y, 2));\n\t\td3 = sqrt(pow(p2x - p3x, 2) + pow(p2y - p3y, 2));\n\n\t\t// Catmull-Rom to Cubic Bezier conversion matrix\n\n\t\t// A = 2d1^2a + 3d1^a * d2^a + d3^2a\n\t\t// B = 2d3^2a + 3d3^a * d2^a + d2^2a\n\n\t\t// [   0\t\t\t 1\t\t\t0\t\t  0\t\t  ]\n\t\t// [   -d2^2a /N\t A/N\t\t  d1^2a /N   0\t\t  ]\n\t\t// [   0\t\t\t d3^2a /M\t B/M\t\t-d2^2a /M  ]\n\t\t// [   0\t\t\t 0\t\t\t1\t\t  0\t\t  ]\n\n\t\td3powA  = pow(d3, alpha);\n\t\td3pow2A = pow(d3, alpha * 2);\n\t\td2powA  = pow(d2, alpha);\n\t\td2pow2A = pow(d2, alpha * 2);\n\t\td1powA  = pow(d1, alpha);\n\t\td1pow2A = pow(d1, alpha * 2);\n\n\t\tA = 2 * d1pow2A + 3 * d1powA * d2powA + d2pow2A;\n\t\tB = 2 * d3pow2A + 3 * d3powA * d2powA + d2pow2A;\n\t\tN = 3 * d1powA * (d1powA + d2powA);\n\n\t\tif (N > 0)\n\t\t\tN = 1 / N;\n\n\t\tM = 3 * d3powA * (d3powA + d2powA);\n\n\t\tif (M > 0)\n\t\t\tM = 1 / M;\n\n\t\tbp1x = (-d2pow2A * p0x + A * p1x + d1pow2A * p2x) * N;\n\t\tbp1y = (-d2pow2A * p0y + A * p1y + d1pow2A * p2y) * N;\n\n\t\tbp2x = (d3pow2A * p1x + B * p2x - d2pow2A * p3x) * M;\n\t\tbp2y = (d3pow2A * p1y + B * p2y - d2pow2A * p3y) * M;\n\n\t\tif (bp1x == 0 && bp1y == 0) {\n\t\t\tbp1x = p1x;\n\t\t\tbp1y = p1y;\n\t\t}\n\n\t\tif (bp2x == 0 && bp2y == 0) {\n\t\t\tbp2x = p2x;\n\t\t\tbp2y = p2y;\n\t\t}\n\n\t\tbezierCurveTo(path, bp1x, bp1y, bp2x, bp2y, p2x, p2y);\n\t}\n\n\treturn path;\n}\n\nfunction stepped(opts) {\n\tconst align = ifNull(opts.align, 1);\n\t// whether to draw ascenders/descenders at null/gap bondaries\n\tconst ascDesc = ifNull(opts.ascDesc, false);\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tconst _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet gaps = [];\n\t\t\tlet inGap = false;\n\t\t\tlet prevYPos  = round(valToPosY(dataY[_dir == 1 ? idx0 : idx1], scaleY, yDim, yOff));\n\t\t\tlet firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlineTo(stroke, firstXPos, prevYPos);\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal1 = dataY[i];\n\n\t\t\t\tlet x1 = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\tif (yVal1 == null) {\n\t\t\t\t\tif (yVal1 === null) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet y1 = round(valToPosY(yVal1, scaleY, yDim, yOff));\n\n\t\t\t\tif (inGap) {\n\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\n\t\t\t\t\t// don't clip vertical extenders\n\t\t\t\t\tif (prevYPos != y1) {\n\t\t\t\t\t\tlet halfStroke = (series.width * pxRatio) / 2;\n\n\t\t\t\t\t\tlet lastGap = gaps[gaps.length - 1];\n\n\t\t\t\t\t\tlastGap[0] += (ascDesc || align ==  1) ? halfStroke : -halfStroke;\n\t\t\t\t\t\tlastGap[1] -= (ascDesc || align == -1) ? halfStroke : -halfStroke;\n\t\t\t\t\t}\n\n\t\t\t\t\tinGap = false;\n\t\t\t\t}\n\n\t\t\t\tif (align == 1)\n\t\t\t\t\tlineTo(stroke, x1, prevYPos);\n\t\t\t\telse\n\t\t\t\t\tlineTo(stroke, prevXPos, y1);\n\n\t\t\t\tlineTo(stroke, x1, y1);\n\n\t\t\t\tprevYPos = y1;\n\t\t\t\tprevXPos = x1;\n\t\t\t}\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\tlet minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction bars(opts) {\n\topts = opts || EMPTY_OBJ;\n\tconst size = ifNull(opts.size, [0.6, inf]);\n\tconst align = opts.align || 0;\n\n\tconst gapFactor = 1 - size[0];\n\tconst maxWidth  = ifNull(size[1], inf) * pxRatio;\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet rect = scaleX.ori == 0 ? rectH : rectV;\n\n\t\t\tlet colWid = valToPosX(dataX[1], scaleX, xDim, xOff) - valToPosX(dataX[0], scaleX, xDim, xOff);\n\n\t\t\tlet gapWid = colWid * gapFactor;\n\n\t\t\tlet fillToY = series.fillTo(u, seriesIdx, series.min, series.max);\n\n\t\t\tlet y0Pos = valToPosY(fillToY, scaleY, yDim, yOff);\n\n\t\t\tlet strokeWidth = round(series.width * pxRatio);\n\n\t\t\tlet barWid = round(min(maxWidth, colWid - gapWid) - strokeWidth);\n\n\t\t\tlet xShift = align == 1 ? 0 : align == -1 ? barWid : barWid / 2;\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\n\t\t\tconst hasBands = u.bands.length > 0;\n\t\t\tlet yLimit;\n\n\t\t\tif (hasBands) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = new Path2D();\n\t\t\t\tyLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\t\t\t}\n\n\t\t\tconst stroke = _paths.stroke;\n\t\t\tconst band = _paths.band;\n\n\t\t\tconst _dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal = dataY[i];\n\n\t\t\t\t// interpolate upwards band clips\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (hasBands) {\n\t\t\t\t\t\t// simple, but inefficient bi-directinal linear scans on each iteration\n\t\t\t\t\t\tlet prevNonNull = nonNullIdx(dataY, _dir == 1 ? idx0 : idx1, i, -_dir);\n\t\t\t\t\t\tlet nextNonNull = nonNullIdx(dataY, i, _dir == 1 ? idx1 : idx0,  _dir);\n\n\t\t\t\t\t\tlet prevVal = dataY[prevNonNull];\n\t\t\t\t\t\tlet nextVal = dataY[nextNonNull];\n\n\t\t\t\t\t\tyVal = prevVal + (i - prevNonNull) / (nextNonNull - prevNonNull) * (nextVal - prevVal);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet xVal = scaleX.distr == 2 ? i : dataX[i];\n\n\t\t\t\t// TODO: all xPos can be pre-computed once for all series in aligned set\n\t\t\t\tlet xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\t\t\t\tlet yPos = valToPosY(yVal, scaleY, yDim, yOff);\n\n\t\t\t\tlet lft = round(xPos - xShift);\n\t\t\t\tlet btm = round(max(yPos, y0Pos));\n\t\t\t\tlet top = round(min(yPos, y0Pos));\n\t\t\t\tlet barHgt = btm - top;\n\n\t\t\t\tdataY[i] != null && rect(stroke, lft, top, barWid, barHgt);\n\n\t\t\t\tif (hasBands) {\n\t\t\t\t\tbtm = top;\n\t\t\t\t\ttop = yLimit;\n\t\t\t\t\tbarHgt = btm - top;\n\t\t\t\t\trect(band, lft, top, barWid, barHgt);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (series.fill != null)\n\t\t\t\t_paths.fill = new Path2D(stroke);\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nconst linearPath = linear() ;\n\nfunction setDefaults(d, xo, yo, initY) {\n\tlet d2 = initY ? [d[0], d[1]].concat(d.slice(2)) : [d[0]].concat(d.slice(1));\n\treturn d2.map((o, i) => setDefault(o, i, xo, yo));\n}\n\nfunction setDefault(o, i, xo, yo) {\n\treturn assign({}, (i == 0 ? xo : yo), o);\n}\n\nconst nullMinMax = [null, null];\n\nfunction snapNumX(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullMinMax : [dataMin, dataMax];\n}\n\nconst snapTimeX = snapNumX;\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction snapNumY(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, 0.1, true);\n}\n\nfunction snapLogY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullMinMax : rangeLog(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapLogX = snapLogY;\n\nfunction snapAsinhY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullMinMax : rangeAsinh(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapAsinhX = snapAsinhY;\n\n// dim is logical (getClientBoundingRect) pixels, not canvas pixels\nfunction findIncr(min, max, incrs, dim, minSpace) {\n\tlet pxPerUnit = dim / (max - min);\n\n\tlet minDec = (\"\"+floor(min)).length;\n\n\tfor (var i = 0; i < incrs.length; i++) {\n\t\tlet space = incrs[i] * pxPerUnit;\n\n\t\tlet incrDec = incrs[i] < 10 ? fixedDec.get(incrs[i]) : 0;\n\n\t\tif (space >= minSpace && minDec + incrDec < 17)\n\t\t\treturn [incrs[i], space];\n\t}\n\n\treturn [0, 0];\n}\n\nfunction pxRatioFont(font) {\n\tlet fontSize;\n\tfont = font.replace(/(\\d+)px/, (m, p1) => (fontSize = round(p1 * pxRatio)) + 'px');\n\treturn [font, fontSize];\n}\n\nfunction uPlot(opts, data, then) {\n\tconst self = {};\n\n\t// TODO: cache denoms & mins scale.cache = {r, min, }\n\tfunction getValPct(val, scale) {\n\t\tlet _val = (\n\t\t\tscale.distr == 3 ? log10(val > 0 ? val : scale.clamp(self, val, scale.min, scale.max, scale.key)) :\n\t\t\tscale.distr == 4 ? asinh(val, scale.asinh) :\n\t\t\tval\n\t\t);\n\n\t\treturn (_val - scale._min) / (scale._max - scale._min);\n\t}\n\n\tfunction getHPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? (1 - pct) : pct);\n\t}\n\n\tfunction getVPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? pct : (1 - pct));\n\t}\n\n\tfunction getPos(val, scale, dim, off) {\n\t\treturn scale.ori == 0 ? getHPos(val, scale, dim, off) : getVPos(val, scale, dim, off);\n\t}\n\n\tself.valToPosH = getHPos;\n\tself.valToPosV = getVPos;\n\n\tlet ready = false;\n\tself.status = 0;\n\n\tconst root = self.root = placeDiv(UPLOT);\n\n\tif (opts.id != null)\n\t\troot.id = opts.id;\n\n\taddClass(root, opts.class);\n\n\tif (opts.title) {\n\t\tlet title = placeDiv(TITLE, root);\n\t\ttitle.textContent = opts.title;\n\t}\n\n\tconst can = placeTag(\"canvas\");\n\tconst ctx = self.ctx = can.getContext(\"2d\");\n\n\tconst wrap = placeDiv(WRAP, root);\n\tconst under = placeDiv(UNDER, wrap);\n\twrap.appendChild(can);\n\tconst over = placeDiv(OVER, wrap);\n\n\topts = copy(opts);\n\n\tconst pxAlign = ifNull(opts.pxAlign, true);\n\n\t(opts.plugins || []).forEach(p => {\n\t\tif (p.opts)\n\t\t\topts = p.opts(self, opts) || opts;\n\t});\n\n\tconst ms = opts.ms || 1e-3;\n\n\tconst series  = self.series = setDefaults(opts.series || [], xSeriesOpts, ySeriesOpts, false);\n\tconst axes    = self.axes   = setDefaults(opts.axes   || [], xAxisOpts,   yAxisOpts,    true);\n\tconst scales  = self.scales = {};\n\tconst bands   = self.bands  = opts.bands || [];\n\n\tbands.forEach(b => {\n\t\tb.fill = fnOrSelf(b.fill || null);\n\t});\n\n\tconst xScaleKey = series[0].scale;\n\n\tconst drawOrderMap = {\n\t\taxes: drawAxesGrid,\n\t\tseries: drawSeries,\n\t};\n\n\tconst drawOrder = (opts.drawOrder || [\"axes\", \"series\"]).map(key => drawOrderMap[key]);\n\n\tfunction initScale(scaleKey) {\n\t\tlet sc = scales[scaleKey];\n\n\t\tif (sc == null) {\n\t\t\tlet scaleOpts = (opts.scales || EMPTY_OBJ)[scaleKey] || EMPTY_OBJ;\n\n\t\t\tif (scaleOpts.from != null) {\n\t\t\t\t// ensure parent is initialized\n\t\t\t\tinitScale(scaleOpts.from);\n\t\t\t\t// dependent scales inherit\n\t\t\t\tscales[scaleKey] = assign({}, scales[scaleOpts.from], scaleOpts);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsc = scales[scaleKey] = assign({}, (scaleKey == xScaleKey ? xScaleOpts : yScaleOpts), scaleOpts);\n\n\t\t\t\tsc.key = scaleKey;\n\n\t\t\t\tlet isTime = sc.time;\n\n\t\t\t\tlet rn = sc.range;\n\n\t\t\t\tlet rangeIsArr = isArr(rn);\n\n\t\t\t\tif (scaleKey != xScaleKey && !rangeIsArr && isObj(rn)) {\n\t\t\t\t\tlet cfg = rn;\n\t\t\t\t\t// this is similar to snapNumY\n\t\t\t\t\trn = (self, dataMin, dataMax) => dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, cfg);\n\t\t\t\t}\n\n\t\t\t\tsc.range = fnOrSelf(rn || (isTime ? snapTimeX : scaleKey == xScaleKey ?\n\t\t\t\t\t(sc.distr == 3 ? snapLogX : sc.distr == 4 ? snapAsinhX : snapNumX) :\n\t\t\t\t\t(sc.distr == 3 ? snapLogY : sc.distr == 4 ? snapAsinhY : snapNumY)\n\t\t\t\t));\n\n\t\t\t\tsc.auto = fnOrSelf(rangeIsArr ? false : sc.auto);\n\n\t\t\t\tsc.clamp = fnOrSelf(sc.clamp || clampScale);\n\n\t\t\t\t// caches for expensive ops like asinh() & log()\n\t\t\t\tsc._min = sc._max = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tinitScale(\"x\");\n\tinitScale(\"y\");\n\n\tseries.forEach(s => {\n\t\tinitScale(s.scale);\n\t});\n\n\taxes.forEach(a => {\n\t\tinitScale(a.scale);\n\t});\n\n\tfor (let k in opts.scales)\n\t\tinitScale(k);\n\n\tconst scaleX = scales[xScaleKey];\n\n\tconst xScaleDistr = scaleX.distr;\n\n\tlet valToPosX, valToPosY, moveTo, arc;\n\n\tif (scaleX.ori == 0) {\n\t\taddClass(root, ORI_HZ);\n\t\tvalToPosX = getHPos;\n\t\tvalToPosY = getVPos;\n\t\tmoveTo    = moveToH;\n\t\tarc       = arcH;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotWid;\n\t\t\txOffCan = plotLft;\n\t\t\tyDimCan = plotHgt;\n\t\t\tyOffCan = plotTop;\n\n\t\t\txDimCss = plotWidCss;\n\t\t\txOffCss = plotLftCss;\n\t\t\tyDimCss = plotHgtCss;\n\t\t\tyOffCss = plotTopCss;\n\t\t};\n\t\t*/\n\t}\n\telse {\n\t\taddClass(root, ORI_VT);\n\t\tvalToPosX = getVPos;\n\t\tvalToPosY = getHPos;\n\t\tmoveTo    = moveToV;\n\t\tarc       = arcV;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotHgt;\n\t\t\txOffCan = plotTop;\n\t\t\tyDimCan = plotWid;\n\t\t\tyOffCan = plotLft;\n\n\t\t\txDimCss = plotHgtCss;\n\t\t\txOffCss = plotTopCss;\n\t\t\tyDimCss = plotWidCss;\n\t\t\tyOffCss = plotLftCss;\n\t\t};\n\t\t*/\n\t}\n\n\tconst pendScales = {};\n\n\t// explicitly-set initial scales\n\tfor (let k in scales) {\n\t\tlet sc = scales[k];\n\n\t\tif (sc.min != null || sc.max != null) {\n\t\t\tpendScales[k] = {min: sc.min, max: sc.max};\n\t\t\tsc.min = sc.max = null;\n\t\t}\n\t}\n\n//\tself.tz = opts.tz || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\tconst _tzDate  = (opts.tzDate || (ts => new Date(ts / ms)));\n\tconst _fmtDate = (opts.fmtDate || fmtDate);\n\n\tconst _timeAxisSplits = (ms == 1 ? timeAxisSplitsMs(_tzDate) : timeAxisSplitsS(_tzDate));\n\tconst _timeAxisVals   = timeAxisVals(_tzDate, timeAxisStamps((ms == 1 ? _timeAxisStampsMs : _timeAxisStampsS), _fmtDate));\n\tconst _timeSeriesVal  = timeSeriesVal(_tzDate, timeSeriesStamp(_timeSeriesStamp, _fmtDate));\n\n\tconst legend     = assign({show: true, live: true}, opts.legend);\n\tconst showLegend = legend.show;\n\n\t{\n\t\tlegend.width  = fnOrSelf(ifNull(legend.width, legendWidth));\n\t\tlegend.dash   = fnOrSelf(legend.dash   || legendDash);\n\t\tlegend.stroke = fnOrSelf(legend.stroke || legendStroke);\n\t\tlegend.fill   = fnOrSelf(legend.fill   || legendFill);\n\t}\n\n\tlet legendEl;\n\tlet legendRows = [];\n\tlet legendCols;\n\tlet multiValLegend = false;\n\n\tif (showLegend) {\n\t\tlegendEl = placeTag(\"table\", LEGEND, root);\n\n\t\tconst getMultiVals = series[1] ? series[1].values : null;\n\t\tmultiValLegend = getMultiVals != null;\n\n\t\tif (multiValLegend) {\n\t\t\tlet head = placeTag(\"tr\", LEGEND_THEAD, legendEl);\n\t\t\tplaceTag(\"th\", null, head);\n\t\t\tlegendCols = getMultiVals(self, 1, 0);\n\n\t\t\tfor (var key in legendCols)\n\t\t\t\tplaceTag(\"th\", LEGEND_LABEL, head).textContent = key;\n\t\t}\n\t\telse {\n\t\t\tlegendCols = {_: 0};\n\t\t\taddClass(legendEl, LEGEND_INLINE);\n\t\t\tlegend.live && addClass(legendEl, LEGEND_LIVE);\n\t\t}\n\t}\n\n\tfunction initLegendRow(s, i) {\n\t\tif (i == 0 && (multiValLegend || !legend.live))\n\t\t\treturn null;\n\n\t\tlet _row = [];\n\n\t\tlet row = placeTag(\"tr\", LEGEND_SERIES, legendEl, legendEl.childNodes[i]);\n\n\t\taddClass(row, s.class);\n\n\t\tif (!s.show)\n\t\t\taddClass(row, OFF);\n\n\t\tlet label = placeTag(\"th\", null, row);\n\n\t\tlet indic = placeDiv(LEGEND_MARKER, label);\n\n\t\tif (i > 0) {\n\t\t\tlet width  = legend.width(self, i);\n\n\t\t\tif (width)\n\t\t\t\tindic.style.border = width + \"px \" + legend.dash(self, i) + \" \" + legend.stroke(self, i);\n\n\t\t\tindic.style.background = legend.fill(self, i);\n\t\t}\n\n\t\tlet text = placeDiv(LEGEND_LABEL, label);\n\t\ttext.textContent = s.label;\n\n\t\tif (i > 0) {\n\t\t\tonMouse(\"click\", label, e => {\n\t\t\t\tif (cursor._lock)\n\t\t\t\t\treturn;\n\n\t\t\t\tsetSeries(series.indexOf(s), {show: !s.show}, syncOpts.setSeries);\n\t\t\t});\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tonMouse(mouseenter, label, e => {\n\t\t\t\t\tif (cursor._lock)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\tsetSeries(series.indexOf(s), FOCUS_TRUE, syncOpts.setSeries);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (var key in legendCols) {\n\t\t\tlet v = placeTag(\"td\", LEGEND_VALUE, row);\n\t\t\tv.textContent = \"--\";\n\t\t\t_row.push(v);\n\t\t}\n\n\t\treturn _row;\n\t}\n\n\tconst mouseListeners = new Map();\n\n\tfunction onMouse(ev, targ, fn) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\t\tconst listener = cursor.bind[ev](self, targ, fn);\n\n\t\tif (listener) {\n\t\t\ton(ev, targ, targListeners[ev] = listener);\n\t\t\tmouseListeners.set(targ, targListeners);\n\t\t}\n\t}\n\n\tfunction offMouse(ev, targ, fn) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\t\toff(ev, targ, targListeners[ev]);\n\t\ttargListeners[ev] = null;\n\t}\n\n\tlet fullWidCss = 0;\n\tlet fullHgtCss = 0;\n\n\tlet plotWidCss = 0;\n\tlet plotHgtCss = 0;\n\n\t// plot margins to account for axes\n\tlet plotLftCss = 0;\n\tlet plotTopCss = 0;\n\n\tlet plotLft = 0;\n\tlet plotTop = 0;\n\tlet plotWid = 0;\n\tlet plotHgt = 0;\n\n\tself.bbox = {};\n\n\tlet shouldSetScales = false;\n\tlet shouldSetSize = false;\n\tlet shouldConvergeSize = false;\n\tlet shouldSetCursor = false;\n\tlet shouldSetLegend = false;\n\n\tfunction _setSize(width, height) {\n\t\tif (width != self.width || height != self.height)\n\t\t\tcalcSize(width, height);\n\n\t\tresetYSeries(false);\n\n\t\tshouldConvergeSize = true;\n\t\tshouldSetSize = true;\n\t\tshouldSetCursor = true;\n\t\tshouldSetLegend = true;\n\t\tcommit();\n\t}\n\n\tfunction calcSize(width, height) {\n\t//\tlog(\"calcSize()\", arguments);\n\n\t\tself.width  = fullWidCss = plotWidCss = width;\n\t\tself.height = fullHgtCss = plotHgtCss = height;\n\t\tplotLftCss  = plotTopCss = 0;\n\n\t\tcalcPlotRect();\n\t\tcalcAxesRects();\n\n\t\tlet bb = self.bbox;\n\n\t\tplotLft = bb.left   = incrRound(plotLftCss * pxRatio, 0.5);\n\t\tplotTop = bb.top    = incrRound(plotTopCss * pxRatio, 0.5);\n\t\tplotWid = bb.width  = incrRound(plotWidCss * pxRatio, 0.5);\n\t\tplotHgt = bb.height = incrRound(plotHgtCss * pxRatio, 0.5);\n\n\t//\tupdOriDims();\n\t}\n\n\tfunction convergeSize() {\n\t\tlet converged = false;\n\n\t\tlet cycleNum = 0;\n\n\t\twhile (!converged) {\n\t\t\tcycleNum++;\n\n\t\t\tlet axesConverged = axesCalc(cycleNum);\n\t\t\tlet paddingConverged = paddingCalc(cycleNum);\n\n\t\t\tconverged = axesConverged && paddingConverged;\n\n\t\t\tif (!converged) {\n\t\t\t\tcalcSize(self.width, self.height);\n\t\t\t\tshouldSetSize = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setSize({width, height}) {\n\t\t_setSize(width, height);\n\t}\n\n\tself.setSize = setSize;\n\n\t// accumulate axis offsets, reduce canvas width\n\tfunction calcPlotRect() {\n\t\t// easements for edge labels\n\t\tlet hasTopAxis = false;\n\t\tlet hasBtmAxis = false;\n\t\tlet hasRgtAxis = false;\n\t\tlet hasLftAxis = false;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet {side, _size} = axis;\n\t\t\t\tlet isVt = side % 2;\n\t\t\t\tlet labelSize = axis.labelSize = (axis.label != null ? (axis.labelSize || 30) : 0);\n\n\t\t\t\tlet fullSize = _size + labelSize;\n\n\t\t\t\tif (fullSize > 0) {\n\t\t\t\t\tif (isVt) {\n\t\t\t\t\t\tplotWidCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 3) {\n\t\t\t\t\t\t\tplotLftCss += fullSize;\n\t\t\t\t\t\t\thasLftAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasRgtAxis = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tplotHgtCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 0) {\n\t\t\t\t\t\t\tplotTopCss += fullSize;\n\t\t\t\t\t\t\thasTopAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasBtmAxis = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsidesWithAxes[0] = hasTopAxis;\n\t\tsidesWithAxes[1] = hasRgtAxis;\n\t\tsidesWithAxes[2] = hasBtmAxis;\n\t\tsidesWithAxes[3] = hasLftAxis;\n\n\t\t// hz padding\n\t\tplotWidCss -= _padding[1] + _padding[3];\n\t\tplotLftCss += _padding[3];\n\n\t\t// vt padding\n\t\tplotHgtCss -= _padding[2] + _padding[0];\n\t\tplotTopCss += _padding[0];\n\t}\n\n\tfunction calcAxesRects() {\n\t\t// will accum +\n\t\tlet off1 = plotLftCss + plotWidCss;\n\t\tlet off2 = plotTopCss + plotHgtCss;\n\t\t// will accum -\n\t\tlet off3 = plotLftCss;\n\t\tlet off0 = plotTopCss;\n\n\t\tfunction incrOffset(side, size) {\n\n\t\t\tswitch (side) {\n\t\t\t\tcase 1: off1 += size; return off1 - size;\n\t\t\t\tcase 2: off2 += size; return off2 - size;\n\t\t\t\tcase 3: off3 -= size; return off3 + size;\n\t\t\t\tcase 0: off0 -= size; return off0 + size;\n\t\t\t}\n\t\t}\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet side = axis.side;\n\n\t\t\t\taxis._pos = incrOffset(side, axis._size);\n\n\t\t\t\tif (axis.label != null)\n\t\t\t\t\taxis._lpos = incrOffset(side, axis.labelSize);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst cursor = (self.cursor = assign({}, cursorOpts, opts.cursor));\n\n\t{\n\t\tcursor._lock = false;\n\n\t\tlet points = cursor.points;\n\n\t\tpoints.show   = fnOrSelf(points.show);\n\t\tpoints.size   = fnOrSelf(points.size);\n\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\tpoints.width  = fnOrSelf(points.width);\n\t\tpoints.fill   = fnOrSelf(points.fill);\n\t}\n\n\tconst focus = self.focus = assign({}, opts.focus || {alpha: 0.3}, cursor.focus);\n\tconst cursorFocus = focus.prox >= 0;\n\n\t// series-intersection markers\n\tlet cursorPts = [null];\n\n\tfunction initCursorPt(s, si) {\n\t\tif (si > 0) {\n\t\t\tlet pt = cursor.points.show(self, si);\n\n\t\t\tif (pt) {\n\t\t\t\taddClass(pt, CURSOR_PT);\n\t\t\t\taddClass(pt, s.class);\n\t\t\t\ttrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\tover.insertBefore(pt, cursorPts[si]);\n\n\t\t\t\treturn pt;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction initSeries(s, i) {\n\t\tlet isTime = scales[s.scale].time;\n\n\t\tlet sv = s.value;\n\t\ts.value = isTime ? (isStr(sv) ? timeSeriesVal(_tzDate, timeSeriesStamp(sv, _fmtDate)) : sv || _timeSeriesVal) : sv || numSeriesVal;\n\t\ts.label = s.label || (isTime ? timeSeriesLabel : numSeriesLabel);\n\n\t\tif (i > 0) {\n\t\t\ts.width  = s.width == null ? 1 : s.width;\n\t\t\ts.paths  = s.paths || linearPath || retNull;\n\t\t\ts.fillTo = fnOrSelf(s.fillTo || seriesFillTo);\n\t\t\ts.pxAlign = ifNull(s.pxAlign, true);\n\n\t\t\ts.stroke = fnOrSelf(s.stroke || null);\n\t\t\ts.fill   = fnOrSelf(s.fill || null);\n\t\t\ts._stroke = s._fill = s._paths = s._focus = null;\n\n\t\t\tlet _ptDia = ptDia(s.width, 1);\n\t\t\tlet points = s.points = assign({}, {\n\t\t\t\tsize: _ptDia,\n\t\t\t\twidth: max(1, _ptDia * .2),\n\t\t\t\tstroke: s.stroke,\n\t\t\t\tspace: _ptDia * 2,\n\t\t\t\t_stroke: null,\n\t\t\t\t_fill: null,\n\t\t\t}, s.points);\n\t\t\tpoints.show   = fnOrSelf(points.show);\n\t\t\tpoints.fill   = fnOrSelf(points.fill);\n\t\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\t}\n\n\t\tif (showLegend)\n\t\t\tlegendRows.splice(i, 0, initLegendRow(s, i));\n\n\t\tif (cursor.show) {\n\t\t\tlet pt = initCursorPt(s, i);\n\t\t\tpt && cursorPts.splice(i, 0, pt);\n\t\t}\n\t}\n\n\tfunction addSeries(opts, si) {\n\t\tsi = si == null ? series.length : si;\n\n\t\topts = setDefault(opts, si, xSeriesOpts, ySeriesOpts);\n\t\tseries.splice(si, 0, opts);\n\t\tinitSeries(series[si], si);\n\t}\n\n\tself.addSeries = addSeries;\n\n\tfunction delSeries(i) {\n\t\tseries.splice(i, 1);\n\t\tshowLegend && legendRows.splice(i, 1)[0][0].parentNode.remove();\n\t\tcursorPts.length > 1 && cursorPts.splice(i, 1)[0].remove();\n\n\t\t// TODO: de-init no-longer-needed scales?\n\t}\n\n\tself.delSeries = delSeries;\n\n\tseries.forEach(initSeries);\n\n\tconst sidesWithAxes = [false, false, false, false];\n\n\tfunction initAxis(axis, i) {\n\t\taxis._show = axis.show;\n\n\t\tif (axis.show) {\n\t\t\tlet isVt = axis.side % 2;\n\n\t\t\tlet sc = scales[axis.scale];\n\n\t\t\t// this can occur if all series specify non-default scales\n\t\t\tif (sc == null) {\n\t\t\t\taxis.scale = isVt ? series[1].scale : xScaleKey;\n\t\t\t\tsc = scales[axis.scale];\n\t\t\t}\n\n\t\t\t// also set defaults for incrs & values based on axis distr\n\t\t\tlet isTime = sc.time;\n\n\t\t\taxis.size   = fnOrSelf(axis.size);\n\t\t\taxis.space  = fnOrSelf(axis.space);\n\t\t\taxis.rotate = fnOrSelf(axis.rotate);\n\t\t\taxis.incrs  = fnOrSelf(axis.incrs  || (          sc.distr == 2 ? wholeIncrs : (isTime ? (ms == 1 ? timeIncrsMs : timeIncrsS) : numIncrs)));\n\t\t\taxis.splits = fnOrSelf(axis.splits || (isTime && sc.distr == 1 ? _timeAxisSplits : sc.distr == 3 ? logAxisSplits : sc.distr == 4 ? asinhAxisSplits : numAxisSplits));\n\n\t\t\taxis.stroke       = fnOrSelf(axis.stroke);\n\t\t\taxis.grid.stroke  = fnOrSelf(axis.grid.stroke);\n\t\t\taxis.ticks.stroke = fnOrSelf(axis.ticks.stroke);\n\n\t\t\tlet av = axis.values;\n\n\t\t\taxis.values = (\n\t\t\t\tisTime ? (\n\t\t\t\t\tisArr(av) ?\n\t\t\t\t\t\ttimeAxisVals(_tzDate, timeAxisStamps(av, _fmtDate)) :\n\t\t\t\t\tisStr(av) ?\n\t\t\t\t\t\ttimeAxisVal(_tzDate, av) :\n\t\t\t\t\tav || _timeAxisVals\n\t\t\t\t) : av || numAxisVals\n\t\t\t);\n\n\t\t\taxis.filter = fnOrSelf(axis.filter || (          sc.distr >= 3 ? logAxisValsFilt : retArg1));\n\n\t\t\taxis.font      = pxRatioFont(axis.font);\n\t\t\taxis.labelFont = pxRatioFont(axis.labelFont);\n\n\t\t\taxis._size   = axis.size(self, null, i, 0);\n\n\t\t\taxis._space  =\n\t\t\taxis._rotate =\n\t\t\taxis._incrs  =\n\t\t\taxis._found  =\t// foundIncrSpace\n\t\t\taxis._splits =\n\t\t\taxis._values = null;\n\n\t\t\tif (axis._size > 0)\n\t\t\t\tsidesWithAxes[i] = true;\n\t\t}\n\t}\n\n\t// set axis defaults\n\taxes.forEach(initAxis);\n\n\tfunction autoPadSide(self, side, sidesWithAxes, cycleNum) {\n\t\tlet [hasTopAxis, hasRgtAxis, hasBtmAxis, hasLftAxis] = sidesWithAxes;\n\n\t\tlet ori = side % 2;\n\t\tlet size = 0;\n\n\t\tif (ori == 0 && (hasLftAxis || hasRgtAxis))\n\t\t\tsize = (side == 0 && !hasTopAxis || side == 2 && !hasBtmAxis ? round(xAxisOpts.size / 3) : 0);\n\t\tif (ori == 1 && (hasTopAxis || hasBtmAxis))\n\t\t\tsize = (side == 1 && !hasRgtAxis || side == 3 && !hasLftAxis ? round(yAxisOpts.size / 2) : 0);\n\n\t\treturn size;\n\t}\n\n\tconst padding = self.padding = (opts.padding || [autoPadSide,autoPadSide,autoPadSide,autoPadSide]).map(p => fnOrSelf(ifNull(p, autoPadSide)));\n\tconst _padding = self._padding = padding.map((p, i) => p(self, i, sidesWithAxes, 0));\n\n\tlet dataLen;\n\n\t// rendered data window\n\tlet i0 = null;\n\tlet i1 = null;\n\tconst idxs = series[0].idxs;\n\n\tlet data0 = null;\n\n\tlet viaAutoScaleX = false;\n\n\tfunction setData(_data, _resetScales) {\n\t\t_data = _data || [];\n\t\t_data[0] = _data[0] || [];\n\n\t\tself.data = _data;\n\t\tdata = _data.slice();\n\t\tdata0 = data[0];\n\t\tdataLen = data0.length;\n\n\t\tif (xScaleDistr == 2)\n\t\t\tdata[0] = data0.map((v, i) => i);\n\n\t\tself._data = data;\n\n\t\tresetYSeries(true);\n\n\t\tfire(\"setData\");\n\n\t\tif (_resetScales !== false) {\n\t\t\tlet xsc = scaleX;\n\n\t\t\tif (xsc.auto(self, viaAutoScaleX))\n\t\t\t\tautoScaleX();\n\t\t\telse\n\t\t\t\t_setScale(xScaleKey, xsc.min, xsc.max);\n\n\t\t\tshouldSetCursor = cursor.left >= 0;\n\t\t\tshouldSetLegend = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setData = setData;\n\n\tfunction autoScaleX() {\n\t\tviaAutoScaleX = true;\n\n\t\tlet _min, _max;\n\n\t\tif (dataLen > 0) {\n\t\t\ti0 = idxs[0] = 0;\n\t\t\ti1 = idxs[1] = dataLen - 1;\n\n\t\t\t_min = data[0][i0];\n\t\t\t_max = data[0][i1];\n\n\t\t\tif (xScaleDistr == 2) {\n\t\t\t\t_min = i0;\n\t\t\t\t_max = i1;\n\t\t\t}\n\t\t\telse if (dataLen == 1) {\n\t\t\t\tif (xScaleDistr == 3)\n\t\t\t\t\t[_min, _max] = rangeLog(_min, _min, scaleX.log, false);\n\t\t\t\telse if (xScaleDistr == 4)\n\t\t\t\t\t[_min, _max] = rangeAsinh(_min, _min, scaleX.log, false);\n\t\t\t\telse if (scaleX.time)\n\t\t\t\t\t_max = _min + 86400 / ms;\n\t\t\t\telse\n\t\t\t\t\t[_min, _max] = rangeNum(_min, _max, 0.1, true);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\ti0 = idxs[0] = _min = null;\n\t\t\ti1 = idxs[1] = _max = null;\n\t\t}\n\n\t\t_setScale(xScaleKey, _min, _max);\n\t}\n\n\tfunction setCtxStyle(stroke, width, dash, cap, fill) {\n\t\tctx.strokeStyle = stroke || transparent;\n\t\tctx.lineWidth = width;\n\t\tctx.lineJoin = \"round\";\n\t\tctx.lineCap = cap || \"butt\"; // (‿|‿)\n\t\tctx.setLineDash(dash || []);\n\t\tctx.fillStyle = fill || transparent;\n\t}\n\n\tfunction setScales() {\n\t//\tlog(\"setScales()\", arguments);\n\n\t\t// wip scales\n\t\tlet wipScales = copy(scales, fastIsObj);\n\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\t\t\tlet psc = pendScales[k];\n\n\t\t\tif (psc != null && psc.min != null) {\n\t\t\t\tassign(wsc, psc);\n\n\t\t\t\t// explicitly setting the x-scale invalidates everything (acts as redraw)\n\t\t\t\tif (k == xScaleKey)\n\t\t\t\t\tresetYSeries(true);\n\t\t\t}\n\t\t\telse if (k != xScaleKey) {\n\t\t\t\tif (dataLen == 0 && wsc.from == null) {\n\t\t\t\t\tlet minMax = wsc.range(self, null, null, k);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\twsc.min = inf;\n\t\t\t\t\twsc.max = -inf;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dataLen > 0) {\n\t\t\t// pre-range y-scales from y series' data values\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tlet k = s.scale;\n\t\t\t\tlet wsc = wipScales[k];\n\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\tif (i == 0) {\n\t\t\t\t\tlet minMax = wsc.range(self, wsc.min, wsc.max, k);\n\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\n\t\t\t\t\ti0 = closestIdx(wsc.min, data[0]);\n\t\t\t\t\ti1 = closestIdx(wsc.max, data[0]);\n\n\t\t\t\t\t// closest indices can be outside of view\n\t\t\t\t\tif (data[0][i0] < wsc.min)\n\t\t\t\t\t\ti0++;\n\t\t\t\t\tif (data[0][i1] > wsc.max)\n\t\t\t\t\t\ti1--;\n\n\t\t\t\t\ts.min = data0[i0];\n\t\t\t\t\ts.max = data0[i1];\n\t\t\t\t}\n\t\t\t\telse if (s.show && s.auto && wsc.auto(self, viaAutoScaleX) && (psc == null || psc.min == null)) {\n\t\t\t\t\t// only run getMinMax() for invalidated series data, else reuse\n\t\t\t\t\tlet minMax = s.min == null ? (wsc.distr == 3 ? getMinMaxLog(data[i], i0, i1) : getMinMax(data[i], i0, i1, s.sorted)) : [s.min, s.max];\n\n\t\t\t\t\t// initial min/max\n\t\t\t\t\twsc.min = min(wsc.min, s.min = minMax[0]);\n\t\t\t\t\twsc.max = max(wsc.max, s.max = minMax[1]);\n\t\t\t\t}\n\n\t\t\t\ts.idxs[0] = i0;\n\t\t\t\ts.idxs[1] = i1;\n\t\t\t});\n\n\t\t\t// range independent scales\n\t\t\tfor (let k in wipScales) {\n\t\t\t\tlet wsc = wipScales[k];\n\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\tif (wsc.from == null && (psc == null || psc.min == null)) {\n\t\t\t\t\tlet minMax = wsc.range(\n\t\t\t\t\t\tself,\n\t\t\t\t\t\twsc.min ==  inf ? null : wsc.min,\n\t\t\t\t\t\twsc.max == -inf ? null : wsc.max,\n\t\t\t\t\t\tk\n\t\t\t\t\t);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// range dependent scales\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\n\t\t\tif (wsc.from != null) {\n\t\t\t\tlet base = wipScales[wsc.from];\n\t\t\t\tlet minMax = wsc.range(self, base.min, base.max, k);\n\t\t\t\twsc.min = minMax[0];\n\t\t\t\twsc.max = minMax[1];\n\t\t\t}\n\t\t}\n\n\t\tlet changed = {};\n\t\tlet anyChanged = false;\n\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\t\t\tlet sc = scales[k];\n\n\t\t\tif (sc.min != wsc.min || sc.max != wsc.max) {\n\t\t\t\tsc.min = wsc.min;\n\t\t\t\tsc.max = wsc.max;\n\n\t\t\t\tlet distr = sc.distr;\n\n\t\t\t\tsc._min = distr == 3 ? log10(sc.min) : distr == 4 ? asinh(sc.min, sc.asinh) : sc.min;\n\t\t\t\tsc._max = distr == 3 ? log10(sc.max) : distr == 4 ? asinh(sc.max, sc.asinh) : sc.max;\n\n\t\t\t\tchanged[k] = anyChanged = true;\n\t\t\t}\n\t\t}\n\n\t\tif (anyChanged) {\n\t\t\t// invalidate paths of all series on changed scales\n\t\t\tseries.forEach(s => {\n\t\t\t\tif (changed[s.scale])\n\t\t\t\t\ts._paths = null;\n\t\t\t});\n\n\t\t\tfor (let k in changed) {\n\t\t\t\tshouldConvergeSize = true;\n\t\t\t\tfire(\"setScale\", k);\n\t\t\t}\n\n\t\t\tif (cursor.show)\n\t\t\t\tshouldSetCursor = cursor.left >= 0;\n\t\t}\n\n\t\tfor (let k in pendScales)\n\t\t\tpendScales[k] = null;\n\t}\n\n\t// TODO: drawWrap(si, drawPoints) (save, restore, translate, clip)\n\tfunction drawPoints(si) {\n\t//\tlog(\"drawPoints()\", arguments);\n\n\t\tlet s = series[si];\n\t\tlet p = s.points;\n\n\t\tconst width = roundDec(p.width * pxRatio, 3);\n\t\tconst offset = (width % 2) / 2;\n\t\tconst isStroked = p.width > 0;\n\n\t\tlet rad = (p.size - p.width) / 2 * pxRatio;\n\t\tlet dia = roundDec(rad * 2, 3);\n\n\t\tconst _pxAlign = pxAlign && s.pxAlign;\n\n\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\tctx.save();\n\n\t\tctx.beginPath();\n\t\tctx.rect(\n\t\t\tplotLft - dia,\n\t\t\tplotTop - dia,\n\t\t\tplotWid + dia * 2,\n\t\t\tplotHgt + dia * 2,\n\t\t);\n\t\tctx.clip();\n\n\t\tctx.globalAlpha = s.alpha;\n\n\t\tconst path = new Path2D();\n\n\t\tconst scaleY = scales[s.scale];\n\n\t\tlet xDim, xOff, yDim, yOff;\n\n\t\tif (scaleX.ori == 0) {\n\t\t\txDim = plotWid;\n\t\t\txOff = plotLft;\n\t\t\tyDim = plotHgt;\n\t\t\tyOff = plotTop;\n\t\t}\n\t\telse {\n\t\t\txDim = plotHgt;\n\t\t\txOff = plotTop;\n\t\t\tyDim = plotWid;\n\t\t\tyOff = plotLft;\n\t\t}\n\n\t\tfor (let pi = i0; pi <= i1; pi++) {\n\t\t\tif (data[si][pi] != null) {\n\t\t\t\tlet x = round(valToPosX(data[0][pi],  scaleX, xDim, xOff));\n\t\t\t\tlet y = round(valToPosY(data[si][pi], scaleY, yDim, yOff));\n\n\t\t\t\tmoveTo(path, x + rad, y);\n\t\t\t\tarc(path, x, y, rad, 0, PI * 2);\n\t\t\t}\n\t\t}\n\n\t\tconst _stroke = p._stroke = p.stroke(self, si);\n\t\tconst _fill   = p._fill   = p.fill(self, si);\n\n\t\tsetCtxStyle(\n\t\t\t_stroke,\n\t\t\twidth,\n\t\t\tp.dash,\n\t\t\tp.cap,\n\t\t\t_fill || (isStroked ? \"#fff\" : s._stroke),\n\t\t);\n\n\t\tctx.fill(path);\n\t\tisStroked && ctx.stroke(path);\n\n\t\tctx.globalAlpha = 1;\n\n\t\tctx.restore();\n\n\t\t_pxAlign && ctx.translate(-offset, -offset);\n\t}\n\n\t// grabs the nearest indices with y data outside of x-scale limits\n\tfunction getOuterIdxs(ydata) {\n\t\tlet _i0 = clamp(i0 - 1, 0, dataLen - 1);\n\t\tlet _i1 = clamp(i1 + 1, 0, dataLen - 1);\n\n\t\twhile (ydata[_i0] == null && _i0 > 0)\n\t\t\t_i0--;\n\n\t\twhile (ydata[_i1] == null && _i1 < dataLen - 1)\n\t\t\t_i1++;\n\n\t\treturn [_i0, _i1];\n\t}\n\n\tfunction drawSeries() {\n\t\tif (dataLen > 0) {\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show && s._paths == null) {\n\t\t\t\t\tlet _idxs = getOuterIdxs(data[i]);\n\t\t\t\t\ts._paths = s.paths(self, i, _idxs[0], _idxs[1]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tif (s._paths)\n\t\t\t\t\t\tdrawPath(i);\n\n\t\t\t\t\tif (s.points.show(self, i, i0, i1))\n\t\t\t\t\t\tdrawPoints(i);\n\n\t\t\t\t\tfire(\"drawSeries\", i);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction drawPath(si) {\n\t\tconst s = series[si];\n\n\t\tconst { stroke, fill, clip } = s._paths;\n\t\tconst width = roundDec(s.width * pxRatio, 3);\n\t\tconst offset = (width % 2) / 2;\n\n\t\tconst strokeStyle = s._stroke = s.stroke(self, si);\n\t\tconst fillStyle   = s._fill   = s.fill(self, si);\n\n\t\tctx.globalAlpha = s.alpha;\n\n\t\tconst _pxAlign = pxAlign && s.pxAlign;\n\n\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\tctx.save();\n\n\t\tlet lft = plotLft,\n\t\t\ttop = plotTop,\n\t\t\twid = plotWid,\n\t\t\thgt = plotHgt;\n\n\t\tlet halfWid = width * pxRatio / 2;\n\n\t\tif (s.min == 0)\n\t\t\thgt += halfWid;\n\n\t\tif (s.max == 0) {\n\t\t\ttop -= halfWid;\n\t\t\thgt += halfWid;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.rect(lft, top, wid, hgt);\n\t\tctx.clip();\n\n\t\tclip && ctx.clip(clip);\n\n\t\tfillStroke(si, strokeStyle, width, s.dash, s.cap, fillStyle, stroke, fill);\n\n\t\tctx.restore();\n\n\t\t_pxAlign && ctx.translate(-offset, -offset);\n\n\t\tctx.globalAlpha = 1;\n\t}\n\n\tfunction fillStroke(si, strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\tlet didStrokeFill = false;\n\n\t\t// for all bands where this series is the top edge, create upwards clips using the bottom edges\n\t\t// and apply clips + fill with band fill or dfltFill\n\t\tbands.forEach((b, bi) => {\n\t\t\t// isUpperEdge?\n\t\t\tif (b.series[0] == si) {\n\t\t\t\tlet lowerEdge = series[b.series[1]];\n\n\t\t\t\tlet clip = (lowerEdge._paths || EMPTY_OBJ).band;\n\n\t\t\t\tctx.save();\n\n\t\t\t\tlet _fillStyle = null;\n\n\t\t\t\t// hasLowerEdge?\n\t\t\t\tif (lowerEdge.show && clip) {\n\t\t\t\t\t_fillStyle = b.fill(self, bi) || fillStyle;\n\t\t\t\t\tctx.clip(clip);\n\t\t\t\t}\n\n\t\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, _fillStyle, strokePath, fillPath);\n\n\t\t\t\tctx.restore();\n\n\t\t\t\tdidStrokeFill = true;\n\t\t\t}\n\t\t});\n\n\t\tif (!didStrokeFill)\n\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath);\n\t}\n\n\tfunction strokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\tsetCtxStyle(strokeStyle, lineWidth, lineDash, lineCap, fillStyle);\n\t\tfillStyle   && fillPath                && ctx.fill(fillPath);\n\t\tstrokeStyle && strokePath && lineWidth && ctx.stroke(strokePath);\n\t}\n\n\tfunction getIncrSpace(axisIdx, min, max, fullDim) {\n\t\tlet axis = axes[axisIdx];\n\n\t\tlet incrSpace;\n\n\t\tif (fullDim <= 0)\n\t\t\tincrSpace = [0, 0];\n\t\telse {\n\t\t\tlet minSpace = axis._space = axis.space(self, axisIdx, min, max, fullDim);\n\t\t\tlet incrs    = axis._incrs = axis.incrs(self, axisIdx, min, max, fullDim, minSpace);\n\t\t\tincrSpace    = axis._found = findIncr(min, max, incrs, fullDim, minSpace);\n\t\t}\n\n\t\treturn incrSpace;\n\t}\n\n\tfunction drawOrthoLines(offs, filts, ori, side, pos0, len, width, stroke, dash, cap) {\n\t\tlet offset = (width % 2) / 2;\n\n\t\tpxAlign && ctx.translate(offset, offset);\n\n\t\tsetCtxStyle(stroke, width, dash, cap);\n\n\t\tctx.beginPath();\n\n\t\tlet x0, y0, x1, y1, pos1 = pos0 + (side == 0 || side == 3 ? -len : len);\n\n\t\tif (ori == 0) {\n\t\t\ty0 = pos0;\n\t\t\ty1 = pos1;\n\t\t}\n\t\telse {\n\t\t\tx0 = pos0;\n\t\t\tx1 = pos1;\n\t\t}\n\n\t\toffs.forEach((off, i) => {\n\t\t\tif (filts[i] == null)\n\t\t\t\treturn;\n\n\t\t\tif (ori == 0)\n\t\t\t\tx0 = x1 = off;\n\t\t\telse\n\t\t\t\ty0 = y1 = off;\n\n\t\t\tctx.moveTo(x0, y0);\n\t\t\tctx.lineTo(x1, y1);\n\t\t});\n\n\t\tctx.stroke();\n\n\t\tpxAlign && ctx.translate(-offset, -offset);\n\t}\n\n\tfunction axesCalc(cycleNum) {\n\t//\tlog(\"axesCalc()\", arguments);\n\n\t\tlet converged = true;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (!axis.show)\n\t\t\t\treturn;\n\n\t\t\tlet scale = scales[axis.scale];\n\n\t\t\tif (scale.min == null) {\n\t\t\t\tif (axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = false;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = true;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet {min, max} = scale;\t\t// \t\t// should this toggle them ._show = false\n\n\t\t\tlet [_incr, _space] = getIncrSpace(i, min, max, ori == 0 ? plotWidCss : plotHgtCss);\n\n\t\t\tif (_space == 0)\n\t\t\t\treturn;\n\n\t\t\t// if we're using index positions, force first tick to match passed index\n\t\t\tlet forceMin = scale.distr == 2;\n\n\t\t\tlet _splits = axis._splits = axis.splits(self, i, min, max, _incr, _space, forceMin);\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\tlet values = axis._values = axis.values(self, axis.filter(self, splits, i, _space, incr), i, _space, incr);\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\taxis._rotate = side == 2 ? axis.rotate(self, values, i, _space) : 0;\n\n\t\t\tlet oldSize = axis._size;\n\n\t\t\taxis._size = ceil(axis.size(self, values, i, cycleNum));\n\n\t\t\tif (oldSize != null && axis._size != oldSize)\t\t\t// ready && ?\n\t\t\t\tconverged = false;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction paddingCalc(cycleNum) {\n\t\tlet converged = true;\n\n\t\tpadding.forEach((p, i) => {\n\t\t\tlet _p = p(self, i, sidesWithAxes, cycleNum);\n\n\t\t\tif (_p != _padding[i])\n\t\t\t\tconverged = false;\n\n\t\t\t_padding[i] = _p;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction drawAxesGrid() {\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (!axis.show || !axis._show)\n\t\t\t\treturn;\n\n\t\t\tlet scale = scales[axis.scale];\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet plotDim = ori == 0 ? plotWid : plotHgt;\n\t\t\tlet plotOff = ori == 0 ? plotLft : plotTop;\n\n\t\t\tlet axisGap = round(axis.gap * pxRatio);\n\n\t\t\tlet ticks = axis.ticks;\n\t\t\tlet tickSize = ticks.show ? round(ticks.size * pxRatio) : 0;\n\n\t\t\tlet [_incr, _space] = axis._found;\n\t\t\tlet _splits = axis._splits;\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\tlet angle = axis._rotate * -PI/180;\n\n\t\t\tlet basePos  = round(axis._pos * pxRatio);\n\t\t\tlet shiftAmt = tickSize + axisGap;\n\t\t\tlet shiftDir = ori == 0 && side == 0 || ori == 1 && side == 3 ? -1 : 1;\n\t\t\tlet finalPos = basePos + shiftAmt * shiftDir;\n\t\t\tlet y        = ori == 0 ? finalPos : 0;\n\t\t\tlet x        = ori == 1 ? finalPos : 0;\n\n\t\t\tctx.font         = axis.font[0];\n\t\t\tctx.fillStyle    = axis.stroke(self, i);\t\t\t\t\t\t\t\t\t// rgba?\n\t\t\tctx.textAlign    = axis.align == 1 ? LEFT :\n\t\t\t                   axis.align == 2 ? RIGHT :\n\t\t\t                   angle > 0 ? LEFT :\n\t\t\t                   angle < 0 ? RIGHT :\n\t\t\t                   ori == 0 ? \"center\" : side == 3 ? RIGHT : LEFT;\n\t\t\tctx.textBaseline = angle ||\n\t\t\t                   ori == 1 ? \"middle\" : side == 2 ? TOP   : BOTTOM;\n\n\t\t\tlet lineHeight = axis.font[1] * lineMult;\n\n\t\t\tlet canOffs = _splits.map(val => round(getPos(val, scale, plotDim, plotOff)));\n\n\t\t\taxis._values.forEach((val, i) => {\n\t\t\t\tif (val == null)\n\t\t\t\t\treturn;\n\n\t\t\t\tif (ori == 0)\n\t\t\t\t\tx = canOffs[i];\n\t\t\t\telse\n\t\t\t\t\ty = canOffs[i];\n\n\t\t\t\t(\"\"+val).split(/\\n/gm).forEach((text, j) => {\n\t\t\t\t\tif (angle) {\n\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\tctx.translate(x, y + j * lineHeight);\n\t\t\t\t\t\tctx.rotate(angle);\n\t\t\t\t\t\tctx.fillText(text, 0, 0);\n\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tctx.fillText(text, x, y + j * lineHeight);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// axis label\n\t\t\tif (axis.label) {\n\t\t\t\tctx.save();\n\n\t\t\t\tlet baseLpos = round(axis._lpos * pxRatio);\n\n\t\t\t\tif (ori == 1) {\n\t\t\t\t\tx = y = 0;\n\n\t\t\t\t\tctx.translate(\n\t\t\t\t\t\tbaseLpos,\n\t\t\t\t\t\tround(plotTop + plotHgt / 2),\n\t\t\t\t\t);\n\t\t\t\t\tctx.rotate((side == 3 ? -PI : PI) / 2);\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = round(plotLft + plotWid / 2);\n\t\t\t\t\ty = baseLpos;\n\t\t\t\t}\n\n\t\t\t\tctx.font         = axis.labelFont[0];\n\t\t\t//\tctx.fillStyle    = axis.labelStroke || hexBlack;\t\t\t\t\t\t// rgba?\n\t\t\t\tctx.textAlign    = \"center\";\n\t\t\t\tctx.textBaseline = side == 2 ? TOP : BOTTOM;\n\n\t\t\t\tctx.fillText(axis.label, x, y);\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\n\t\t\t// ticks\n\t\t\tif (ticks.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tticks.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tside,\n\t\t\t\t\tbasePos,\n\t\t\t\t\ttickSize,\n\t\t\t\t\troundDec(ticks.width * pxRatio, 3),\n\t\t\t\t\tticks.stroke(self, i),\n\t\t\t\t\tticks.dash,\n\t\t\t\t\tticks.cap,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// grid\n\t\t\tlet grid = axis.grid;\n\n\t\t\tif (grid.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tgrid.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tori == 0 ? 2 : 1,\n\t\t\t\t\tori == 0 ? plotTop : plotLft,\n\t\t\t\t\tori == 0 ? plotHgt : plotWid,\n\t\t\t\t\troundDec(grid.width * pxRatio, 3),\n\t\t\t\t\tgrid.stroke(self, i),\n\t\t\t\t\tgrid.dash,\n\t\t\t\t\tgrid.cap,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tfire(\"drawAxes\");\n\t}\n\n\tfunction resetYSeries(minMax) {\n\t//\tlog(\"resetYSeries()\", arguments);\n\n\t\tseries.forEach((s, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\ts._paths = null;\n\n\t\t\t\tif (minMax) {\n\t\t\t\t\ts.min = null;\n\t\t\t\t\ts.max = null;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tlet queuedCommit = false;\n\n\tfunction commit() {\n\t\tif (!queuedCommit) {\n\t\t\tmicroTask(_commit);\n\t\t\tqueuedCommit = true;\n\t\t}\n\t}\n\n\tfunction _commit() {\n\t//\tlog(\"_commit()\", arguments);\n\n\t\tif (shouldSetScales) {\n\t\t\tsetScales();\n\t\t\tshouldSetScales = false;\n\t\t}\n\n\t\tif (shouldConvergeSize) {\n\t\t\tconvergeSize();\n\t\t\tshouldConvergeSize = false;\n\t\t}\n\n\t\tif (shouldSetSize) {\n\t\t\tsetStylePx(under, LEFT,   plotLftCss);\n\t\t\tsetStylePx(under, TOP,    plotTopCss);\n\t\t\tsetStylePx(under, WIDTH,  plotWidCss);\n\t\t\tsetStylePx(under, HEIGHT, plotHgtCss);\n\n\t\t\tsetStylePx(over, LEFT,    plotLftCss);\n\t\t\tsetStylePx(over, TOP,     plotTopCss);\n\t\t\tsetStylePx(over, WIDTH,   plotWidCss);\n\t\t\tsetStylePx(over, HEIGHT,  plotHgtCss);\n\n\t\t\tsetStylePx(wrap, WIDTH,   fullWidCss);\n\t\t\tsetStylePx(wrap, HEIGHT,  fullHgtCss);\n\n\t\t\tcan.width  = round(fullWidCss * pxRatio);\n\t\t\tcan.height = round(fullHgtCss * pxRatio);\n\n\t\t\tsyncRect();\n\n\t\t\tfire(\"setSize\");\n\n\t\t\tshouldSetSize = false;\n\t\t}\n\n\t\tif (fullWidCss > 0 && fullHgtCss > 0) {\n\t\t\tctx.clearRect(0, 0, can.width, can.height);\n\t\t\tfire(\"drawClear\");\n\t\t\tdrawOrder.forEach(fn => fn());\n\t\t\tfire(\"draw\");\n\t\t}\n\n\t//\tif (shouldSetSelect) {\n\t\t// TODO: update .u-select metrics (if visible)\n\t\t//\tsetStylePx(selectDiv, TOP, select.top = 0);\n\t\t//\tsetStylePx(selectDiv, LEFT, select.left = 0);\n\t\t//\tsetStylePx(selectDiv, WIDTH, select.width = 0);\n\t\t//\tsetStylePx(selectDiv, HEIGHT, select.height = 0);\n\t\t//\tshouldSetSelect = false;\n\t//\t}\n\n\t\tif (cursor.show && shouldSetCursor) {\n\t\t\tupdateCursor();\n\t\t\tshouldSetCursor = false;\n\t\t}\n\n\t//\tif (FEAT_LEGEND && legend.show && legend.live && shouldSetLegend) {}\n\n\t\tif (!ready) {\n\t\t\tready = true;\n\t\t\tself.status = 1;\n\n\t\t\tfire(\"ready\");\n\t\t}\n\n\t\tviaAutoScaleX = false;\n\n\t\tqueuedCommit = false;\n\t}\n\n\tself.redraw = (rebuildPaths, recalcAxes) => {\n\t\tshouldConvergeSize = recalcAxes || false;\n\n\t\tif (rebuildPaths !== false)\n\t\t\t_setScale(xScaleKey, scaleX.min, scaleX.max);\n\t\telse\n\t\t\tcommit();\n\t};\n\n\t// redraw() => setScale('x', scales.x.min, scales.x.max);\n\n\t// explicit, never re-ranged (is this actually true? for x and y)\n\tfunction setScale(key, opts) {\n\t\tlet sc = scales[key];\n\n\t\tif (sc.from == null) {\n\t\t\tif (dataLen == 0) {\n\t\t\t\tlet minMax = sc.range(self, opts.min, opts.max, key);\n\t\t\t\topts.min = minMax[0];\n\t\t\t\topts.max = minMax[1];\n\t\t\t}\n\n\t\t\tif (opts.min > opts.max) {\n\t\t\t\tlet _min = opts.min;\n\t\t\t\topts.min = opts.max;\n\t\t\t\topts.max = _min;\n\t\t\t}\n\n\t\t\tif (dataLen > 1 && opts.min != null && opts.max != null && opts.max - opts.min < 1e-16)\n\t\t\t\treturn;\n\n\t\t\tif (key == xScaleKey) {\n\t\t\t\tif (sc.distr == 2 && dataLen > 0) {\n\t\t\t\t\topts.min = closestIdx(opts.min, data[0]);\n\t\t\t\t\topts.max = closestIdx(opts.max, data[0]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t//\tlog(\"setScale()\", arguments);\n\n\t\t\tpendScales[key] = opts;\n\n\t\t\tshouldSetScales = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setScale = setScale;\n\n//\tINTERACTION\n\n\tlet xCursor;\n\tlet yCursor;\n\tlet vCursor;\n\tlet hCursor;\n\n\t// starting position before cursor.move\n\tlet rawMouseLeft0;\n\tlet rawMouseTop0;\n\n\t// starting position\n\tlet mouseLeft0;\n\tlet mouseTop0;\n\n\t// current position before cursor.move\n\tlet rawMouseLeft1;\n\tlet rawMouseTop1;\n\n\t// current position\n\tlet mouseLeft1;\n\tlet mouseTop1;\n\n\tlet dragging = false;\n\n\tconst drag = cursor.drag;\n\n\tlet dragX = drag.x;\n\tlet dragY = drag.y;\n\n\tif (cursor.show) {\n\t\tif (cursor.x)\n\t\t\txCursor = placeDiv(CURSOR_X, over);\n\t\tif (cursor.y)\n\t\t\tyCursor = placeDiv(CURSOR_Y, over);\n\n\t\tif (scaleX.ori == 0) {\n\t\t\tvCursor = xCursor;\n\t\t\thCursor = yCursor;\n\t\t}\n\t\telse {\n\t\t\tvCursor = yCursor;\n\t\t\thCursor = xCursor;\n\t\t}\n\n\t\tmouseLeft1 = cursor.left;\n\t\tmouseTop1 = cursor.top;\n\t}\n\n\tconst select = self.select = assign({\n\t\tshow:   true,\n\t\tover:   true,\n\t\tleft:   0,\n\t\twidth:  0,\n\t\ttop:    0,\n\t\theight: 0,\n\t}, opts.select);\n\n\tconst selectDiv = select.show ? placeDiv(SELECT, select.over ? over : under) : null;\n\n\tfunction setSelect(opts, _fire) {\n\t\tif (select.show) {\n\t\t\tfor (let prop in opts)\n\t\t\t\tsetStylePx(selectDiv, prop, select[prop] = opts[prop]);\n\n\t\t\t_fire !== false && fire(\"setSelect\");\n\t\t}\n\t}\n\n\tself.setSelect = setSelect;\n\n\tfunction toggleDOM(i, onOff) {\n\t\tlet s = series[i];\n\t\tlet label = showLegend ? legendRows[i][0].parentNode : null;\n\n\t\tif (s.show)\n\t\t\tlabel && remClass(label, OFF);\n\t\telse {\n\t\t\tlabel && addClass(label, OFF);\n\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t}\n\t}\n\n\tfunction _setScale(key, min, max) {\n\t\tsetScale(key, {min, max});\n\t}\n\n\tfunction setSeries(i, opts, pub) {\n\t//\tlog(\"setSeries()\", arguments);\n\n\t\tlet s = series[i];\n\n\t\tif (opts.focus != null)\n\t\t\tsetFocus(i);\n\n\t\tif (opts.show != null) {\n\t\t\ts.show = opts.show;\n\t\t\ttoggleDOM(i, opts.show);\n\n\t\t\t_setScale(s.scale, null, null);\n\t\t\tcommit();\n\t\t}\n\n\t\tfire(\"setSeries\", i, opts);\n\n\t\tpub && pubSync(\"setSeries\", self, i, opts);\n\t}\n\n\tself.setSeries = setSeries;\n\n\tfunction setAlpha(i, value) {\n\t\tseries[i].alpha = value;\n\n\t\tif (cursor.show && cursorPts[i])\n\t\t\tcursorPts[i].style.opacity = value;\n\n\t\tif (showLegend && legendRows[i])\n\t\t\tlegendRows[i][0].parentNode.style.opacity = value;\n\t}\n\n\t// y-distance\n\tlet closestDist;\n\tlet closestSeries;\n\tlet focusedSeries;\n\tconst FOCUS_TRUE  = {focus: true};\n\tconst FOCUS_FALSE = {focus: false};\n\n\tfunction setFocus(i) {\n\t\tif (i != focusedSeries) {\n\t\t//\tlog(\"setFocus()\", arguments);\n\n\t\t\tlet allFocused = i == null;\n\n\t\t\tlet _setAlpha = focus.alpha != 1;\n\n\t\t\tseries.forEach((s, i2) => {\n\t\t\t\tlet isFocused = allFocused || i2 == 0 || i2 == i;\n\t\t\t\ts._focus = allFocused ? null : isFocused;\n\t\t\t\t_setAlpha && setAlpha(i2, isFocused ? 1 : focus.alpha);\n\t\t\t});\n\n\t\t\tfocusedSeries = i;\n\t\t\t_setAlpha && commit();\n\t\t}\n\t}\n\n\tif (showLegend && cursorFocus) {\n\t\ton(mouseleave, legendEl, e => {\n\t\t\tif (cursor._lock)\n\t\t\t\treturn;\n\t\t\tsetSeries(null, FOCUS_FALSE, syncOpts.setSeries);\n\t\t\tupdateCursor();\n\t\t});\n\t}\n\n\tfunction posToVal(pos, scale) {\n\t\tlet sc = scales[scale];\n\n\t\tlet dim = plotWidCss;\n\n\t\tif (sc.ori == 1) {\n\t\t\tdim = plotHgtCss;\n\t\t\tpos = dim - pos;\n\t\t}\n\n\t\tif (sc.dir == -1)\n\t\t\tpos = dim - pos;\n\n\t\tlet _min = sc._min,\n\t\t\t_max = sc._max,\n\t\t\tpct = pos / dim;\n\n\t\tlet sv = _min + (_max - _min) * pct;\n\n\t\tlet distr = sc.distr;\n\n\t\treturn (\n\t\t\tdistr == 3 ? pow(10, sv) :\n\t\t\tdistr == 4 ? sinh(sv, sc.asinh) :\n\t\t\tsv\n\t\t);\n\t}\n\n\tfunction closestIdxFromXpos(pos) {\n\t\tlet v = posToVal(pos, xScaleKey);\n\t\treturn closestIdx(v, data[0], i0, i1);\n\t}\n\n\tself.valToIdx = val => closestIdx(val, data[0]);\n\tself.posToIdx = closestIdxFromXpos;\n\tself.posToVal = posToVal;\n\tself.valToPos = (val, scale, can) => (\n\t\tscales[scale].ori == 0 ?\n\t\tgetHPos(val, scales[scale],\n\t\t\tcan ? plotWid : plotWidCss,\n\t\t\tcan ? plotLft : 0,\n\t\t) :\n\t\tgetVPos(val, scales[scale],\n\t\t\tcan ? plotHgt : plotHgtCss,\n\t\t\tcan ? plotTop : 0,\n\t\t)\n\t);\n\n\t// defers calling expensive functions\n\tfunction batch(fn) {\n\t\tfn(self);\n\t\tcommit();\n\t}\n\n\tself.batch = batch;\n\n\t(self.setCursor = opts => {\n\t\tmouseLeft1 = opts.left;\n\t\tmouseTop1 = opts.top;\n\t//\tassign(cursor, opts);\n\t\tupdateCursor();\n\t});\n\n\tfunction setSelH(off, dim) {\n\t\tsetStylePx(selectDiv, LEFT,  select.left = off);\n\t\tsetStylePx(selectDiv, WIDTH, select.width = dim);\n\t}\n\n\tfunction setSelV(off, dim) {\n\t\tsetStylePx(selectDiv, TOP,    select.top = off);\n\t\tsetStylePx(selectDiv, HEIGHT, select.height = dim);\n\t}\n\n\tlet setSelX = scaleX.ori == 0 ? setSelH : setSelV;\n\tlet setSelY = scaleX.ori == 1 ? setSelH : setSelV;\n\n\tfunction updateCursor(ts, src) {\n\t//\tts == null && log(\"updateCursor()\", arguments);\n\n\t\trawMouseLeft1 = mouseLeft1;\n\t\trawMouseTop1 = mouseTop1;\n\n\t\t[mouseLeft1, mouseTop1] = cursor.move(self, mouseLeft1, mouseTop1);\n\n\t\tif (cursor.show) {\n\t\t\tvCursor && trans(vCursor, round(mouseLeft1), 0, plotWidCss, plotHgtCss);\n\t\t\thCursor && trans(hCursor, 0, round(mouseTop1), plotWidCss, plotHgtCss);\n\t\t}\n\n\t\tlet idx;\n\n\t\t// when zooming to an x scale range between datapoints the binary search\n\t\t// for nearest min/max indices results in this condition. cheap hack :D\n\t\tlet noDataInRange = i0 > i1;\n\n\t\tclosestDist = inf;\n\n\t\t// TODO: extract\n\t\tlet xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss;\n\t\tlet yDim = scaleX.ori == 1 ? plotWidCss : plotHgtCss;\n\n\t\t// if cursor hidden, hide points & clear legend vals\n\t\tif (mouseLeft1 < 0 || dataLen == 0 || noDataInRange) {\n\t\t\tidx = null;\n\n\t\t\tfor (let i = 0; i < series.length; i++) {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\t}\n\n\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\tif (i == 0 && multiValLegend)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tfor (let j = 0; j < legendRows[i].length; j++)\n\t\t\t\t\t\tlegendRows[i][j].firstChild.nodeValue = '--';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cursorFocus)\n\t\t\t\tsetSeries(null, FOCUS_TRUE, syncOpts.setSeries);\n\t\t}\n\t\telse {\n\t\t//\tlet pctY = 1 - (y / rect.height);\n\n\t\t\tlet mouseXPos = scaleX.ori == 0 ? mouseLeft1 : mouseTop1;\n\n\t\t\tlet valAtPosX = posToVal(mouseXPos, xScaleKey);\n\n\t\t\tidx = closestIdx(valAtPosX, data[0], i0, i1);\n\n\t\t\tlet xPos = incrRoundUp(valToPosX(data[0][idx], scaleX, xDim, 0), 0.5);\n\n\t\t\tfor (let i = 0; i < series.length; i++) {\n\t\t\t\tlet s = series[i];\n\n\t\t\t\tlet idx2  = cursor.dataIdx(self, i, idx, valAtPosX);\n\t\t\t\tlet xPos2 = idx2 == idx ? xPos : incrRoundUp(valToPosX(data[0][idx2], scaleX, xDim, 0), 0.5);\n\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tlet valAtIdx = data[i][idx2];\n\n\t\t\t\t\tlet yPos = valAtIdx == null ? -10 : incrRoundUp(valToPosY(valAtIdx, scales[s.scale], yDim, 0), 0.5);\n\n\t\t\t\t\tif (yPos > 0) {\n\t\t\t\t\t\tlet dist = abs(yPos - mouseTop1);\n\n\t\t\t\t\t\tif (dist <= closestDist) {\n\t\t\t\t\t\t\tclosestDist = dist;\n\t\t\t\t\t\t\tclosestSeries = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet hPos, vPos;\n\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\thPos = xPos2;\n\t\t\t\t\t\tvPos = yPos;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\thPos = yPos;\n\t\t\t\t\t\tvPos = xPos2;\n\t\t\t\t\t}\n\n\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], hPos, vPos, plotWidCss, plotHgtCss);\n\t\t\t\t}\n\n\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\tif ((idx2 == cursor.idx && !shouldSetLegend) || i == 0 && multiValLegend)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tlet src = i == 0 && xScaleDistr == 2 ? data0 : data[i];\n\n\t\t\t\t\tlet vals = multiValLegend ? s.values(self, i, idx2) : {_: s.value(self, src[idx2], i, idx2)};\n\n\t\t\t\t\tlet j = 0;\n\n\t\t\t\t\tfor (let k in vals)\n\t\t\t\t\t\tlegendRows[i][j++].firstChild.nodeValue = vals[k];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshouldSetLegend = false;\n\t\t}\n\n\t\t// nit: cursor.drag.setSelect is assumed always true\n\t\tif (select.show && dragging) {\n\t\t\tif (src != null) {\n\t\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\n\t\t\t\t// match the dragX/dragY implicitness/explicitness of src\n\t\t\t\tlet sdrag = src.cursor.drag;\n\t\t\t\tdragX = sdrag._x;\n\t\t\t\tdragY = sdrag._y;\n\n\t\t\t\tlet { left, top, width, height } = src.select;\n\n\t\t\t\tlet sori = src.scales[xKey].ori;\n\t\t\t\tlet sPosToVal = src.posToVal;\n\n\t\t\t\tlet sOff, sDim, sc, a, b;\n\n\t\t\t\tif (xKey) {\n\t\t\t\t\tif (sori == 0) {\n\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tsc = scales[xKey];\n\n\t\t\t\t\ta = valToPosX(sPosToVal(sOff, xKey),        sc, xDim, 0);\n\t\t\t\t\tb = valToPosX(sPosToVal(sOff + sDim, xKey), sc, xDim, 0);\n\n\t\t\t\t\tsetSelX(min(a,b), abs(b-a));\n\n\t\t\t\t\tif (!yKey)\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\n\t\t\t\tif (yKey) {\n\t\t\t\t\tif (sori == 1) {\n\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tsc = scales[yKey];\n\n\t\t\t\t\ta = valToPosY(sPosToVal(sOff, yKey),        sc, yDim, 0);\n\t\t\t\t\tb = valToPosY(sPosToVal(sOff + sDim, yKey), sc, yDim, 0);\n\n\t\t\t\t\tsetSelY(min(a,b), abs(b-a));\n\n\t\t\t\t\tif (!xKey)\n\t\t\t\t\t\tsetSelX(0, xDim);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet rawDX = abs(rawMouseLeft1 - rawMouseLeft0);\n\t\t\t\tlet rawDY = abs(rawMouseTop1 - rawMouseTop0);\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\tlet _rawDX = rawDX;\n\t\t\t\t\trawDX = rawDY;\n\t\t\t\t\trawDY = _rawDX;\n\t\t\t\t}\n\n\t\t\t\tdragX = drag.x && rawDX >= drag.dist;\n\t\t\t\tdragY = drag.y && rawDY >= drag.dist;\n\n\t\t\t\tlet uni = drag.uni;\n\n\t\t\t\tif (uni != null) {\n\t\t\t\t\t// only calc drag status if they pass the dist thresh\n\t\t\t\t\tif (dragX && dragY) {\n\t\t\t\t\t\tdragX = rawDX >= uni;\n\t\t\t\t\t\tdragY = rawDY >= uni;\n\n\t\t\t\t\t\t// force unidirectionality when both are under uni limit\n\t\t\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\t\t\tif (rawDY > rawDX)\n\t\t\t\t\t\t\t\tdragY = true;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdragX = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (drag.x && drag.y && (dragX || dragY))\n\t\t\t\t\t// if omni with no uni then both dragX / dragY should be true if either is true\n\t\t\t\t\tdragX = dragY = true;\n\n\t\t\t\tlet p0, p1;\n\n\t\t\t\tif (dragX) {\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelX(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragY)\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\n\t\t\t\tif (dragY) {\n\t\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelY(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragX)\n\t\t\t\t\t\tsetSelX(0, xDim);\n\t\t\t\t}\n\n\t\t\t\t// the drag didn't pass the dist requirement\n\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\tsetSelX(0, 0);\n\t\t\t\t\tsetSelY(0, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcursor.idx = idx;\n\t\tcursor.left = mouseLeft1;\n\t\tcursor.top = mouseTop1;\n\t\tdrag._x = dragX;\n\t\tdrag._y = dragY;\n\n\t\t// if ts is present, means we're implicitly syncing own cursor\n\t\tif (ts != null) {\n\t\t\t// this is not technically a \"mousemove\" event, since it's debounced, rename to setCursor?\n\t\t\t// since this is internal, we can tweak it later\n\t\t\tpubSync(mousemove, self, mouseLeft1, mouseTop1, xDim, yDim, idx);\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tlet o = syncOpts.setSeries;\n\t\t\t\tlet p = focus.prox;\n\n\t\t\t\tif (focusedSeries == null) {\n\t\t\t\t\tif (closestDist <= p)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, o);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (closestDist > p)\n\t\t\t\t\t\tsetSeries(null, FOCUS_TRUE, o);\n\t\t\t\t\telse if (closestSeries != focusedSeries)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, o);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tready && fire(\"setCursor\");\n\t}\n\n\tlet rect = null;\n\n\tfunction syncRect() {\n\t\trect = over.getBoundingClientRect();\n\t}\n\n\tfunction mouseMove(e, src, _l, _t, _w, _h, _i) {\n\t\tif (cursor._lock)\n\t\t\treturn;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, e != null);\n\n\t\tif (e != null)\n\t\t\tupdateCursor(1);\n\t\telse\n\t\t\tupdateCursor(null, src);\n\t}\n\n\tfunction cacheMouse(e, src, _l, _t, _w, _h, _i, initial, snap) {\n\t\tif (e != null) {\n\t\t\t_l = e.clientX - rect.left;\n\t\t\t_t = e.clientY - rect.top;\n\t\t}\n\t\telse {\n\t\t\tif (_l < 0 || _t < 0) {\n\t\t\t\tmouseLeft1 = -10;\n\t\t\t\tmouseTop1 = -10;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet xDim = plotWidCss,\n\t\t\t\tyDim = plotHgtCss,\n\t\t\t\t_xDim = _w,\n\t\t\t\t_yDim = _h,\n\t\t\t\t_xPos = _l,\n\t\t\t\t_yPos = _t;\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\txDim = plotHgtCss;\n\t\t\t\tyDim = plotWidCss;\n\t\t\t}\n\n\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\n\t\t\tif (src.scales[xKey].ori == 1) {\n\t\t\t\t_xDim = _h;\n\t\t\t\t_yDim = _w;\n\t\t\t\t_xPos = _t;\n\t\t\t\t_yPos = _l;\n\t\t\t}\n\n\t\t\tif (xKey != null)\n\t\t\t\t_l = getPos(src.posToVal(_xPos, xKey), scales[xKey], xDim, 0);\n\t\t\telse\n\t\t\t\t_l = xDim * (_xPos/_xDim);\n\n\t\t\tif (yKey != null)\n\t\t\t\t_t = getPos(src.posToVal(_yPos, yKey), scales[yKey], yDim, 0);\n\t\t\telse\n\t\t\t\t_t = yDim * (_yPos/_yDim);\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\tlet __l = _l;\n\t\t\t\t_l = _t;\n\t\t\t\t_t = __l;\n\t\t\t}\n\t\t}\n\n\t\tif (snap) {\n\t\t\tif (_l <= 1 || _l >= plotWidCss - 1)\n\t\t\t\t_l = incrRound(_l, plotWidCss);\n\n\t\t\tif (_t <= 1 || _t >= plotHgtCss - 1)\n\t\t\t\t_t = incrRound(_t, plotHgtCss);\n\t\t}\n\n\t\tif (initial) {\n\t\t\trawMouseLeft0 = _l;\n\t\t\trawMouseTop0 = _t;\n\n\t\t\t[mouseLeft0, mouseTop0] = cursor.move(self, _l, _t);\n\t\t}\n\t\telse {\n\t\t\tmouseLeft1 = _l;\n\t\t\tmouseTop1 = _t;\n\t\t}\n\t}\n\n\tfunction hideSelect() {\n\t\tsetSelect({\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t}, false);\n\t}\n\n\tfunction mouseDown(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = true;\n\t\tdragX = dragY = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, true, false);\n\n\t\tif (e != null) {\n\t\t\tonMouse(mouseup, doc, mouseUp);\n\t\t\tpubSync(mousedown, self, mouseLeft0, mouseTop0, plotWidCss, plotHgtCss, null);\n\t\t}\n\t}\n\n\tfunction mouseUp(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, true);\n\n\t\tlet { left, top, width, height } = select;\n\n\t\tlet hasSelect = width > 0 || height > 0;\n\n\t\thasSelect && setSelect(select);\n\n\t\tif (drag.setScale && hasSelect) {\n\t\t//\tif (syncKey != null) {\n\t\t//\t\tdragX = drag.x;\n\t\t//\t\tdragY = drag.y;\n\t\t//\t}\n\n\t\t\tlet xOff = left,\n\t\t\t\txDim = width,\n\t\t\t\tyOff = top,\n\t\t\t\tyDim = height;\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\txOff = top,\n\t\t\t\txDim = height,\n\t\t\t\tyOff = left,\n\t\t\t\tyDim = width;\n\t\t\t}\n\n\t\t\tif (dragX) {\n\t\t\t\t_setScale(xScaleKey,\n\t\t\t\t\tposToVal(xOff, xScaleKey),\n\t\t\t\t\tposToVal(xOff + xDim, xScaleKey)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (dragY) {\n\t\t\t\tfor (let k in scales) {\n\t\t\t\t\tlet sc = scales[k];\n\n\t\t\t\t\tif (k != xScaleKey && sc.from == null && sc.min != inf) {\n\t\t\t\t\t\t_setScale(k,\n\t\t\t\t\t\t\tposToVal(yOff + yDim, k),\n\t\t\t\t\t\t\tposToVal(yOff, k)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thideSelect();\n\t\t}\n\t\telse if (cursor.lock) {\n\t\t\tcursor._lock = !cursor._lock;\n\n\t\t\tif (!cursor._lock)\n\t\t\t\tupdateCursor();\n\t\t}\n\n\t\tif (e != null) {\n\t\t\toffMouse(mouseup, doc);\n\t\t\tpubSync(mouseup, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t\t}\n\t}\n\n\tfunction mouseLeave(e, src, _l, _t, _w, _h, _i) {\n\t\tif (!cursor._lock) {\n\t\t\tlet _dragging = dragging;\n\n\t\t\tif (dragging) {\n\t\t\t\t// handle case when mousemove aren't fired all the way to edges by browser\n\t\t\t\tlet snapH = true;\n\t\t\t\tlet snapV = true;\n\t\t\t\tlet snapProx = 10;\n\n\t\t\t\tlet dragH, dragV;\n\n\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\tdragH = dragX;\n\t\t\t\t\tdragV = dragY;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdragH = dragY;\n\t\t\t\t\tdragV = dragX;\n\t\t\t\t}\n\n\t\t\t\tif (dragH && dragV) {\n\t\t\t\t\t// maybe omni corner snap\n\t\t\t\t\tsnapH = mouseLeft1 <= snapProx || mouseLeft1 >= plotWidCss - snapProx;\n\t\t\t\t\tsnapV = mouseTop1  <= snapProx || mouseTop1  >= plotHgtCss - snapProx;\n\t\t\t\t}\n\n\t\t\t\tif (dragH && snapH)\n\t\t\t\t\tmouseLeft1 = mouseLeft1 < mouseLeft0 ? 0 : plotWidCss;\n\n\t\t\t\tif (dragV && snapV)\n\t\t\t\t\tmouseTop1 = mouseTop1 < mouseTop0 ? 0 : plotHgtCss;\n\n\t\t\t\tupdateCursor(1);\n\n\t\t\t\tdragging = false;\n\t\t\t}\n\n\t\t\tmouseLeft1 = -10;\n\t\t\tmouseTop1 = -10;\n\n\t\t\t// passing a non-null timestamp to force sync/mousemove event\n\t\t\tupdateCursor(1);\n\n\t\t\tif (_dragging)\n\t\t\t\tdragging = _dragging;\n\t\t}\n\t}\n\n\tfunction dblClick(e, src, _l, _t, _w, _h, _i) {\n\t\tautoScaleX();\n\n\t\thideSelect();\n\n\t\tif (e != null)\n\t\t\tpubSync(dblclick, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t}\n\n\t// internal pub/sub\n\tconst events = {};\n\n\tevents.mousedown = mouseDown;\n\tevents.mousemove = mouseMove;\n\tevents.mouseup = mouseUp;\n\tevents.dblclick = dblClick;\n\tevents[\"setSeries\"] = (e, src, idx, opts) => {\n\t\tsetSeries(idx, opts);\n\t};\n\n\tlet deb;\n\n\tif (cursor.show) {\n\t\tonMouse(mousedown,  over, mouseDown);\n\t\tonMouse(mousemove,  over, mouseMove);\n\t\tonMouse(mouseenter, over, syncRect);\n\t\tonMouse(mouseleave, over, mouseLeave);\n\n\t\tonMouse(dblclick, over, dblClick);\n\n\t\tdeb = debounce(syncRect, 100);\n\n\t\ton(resize, win, deb);\n\t\ton(scroll, win, deb);\n\n\t\tself.syncRect = syncRect;\n\t}\n\n\t// external on/off\n\tconst hooks = self.hooks = opts.hooks || {};\n\n\tfunction fire(evName, a1, a2) {\n\t\tif (evName in hooks) {\n\t\t\thooks[evName].forEach(fn => {\n\t\t\t\tfn.call(null, self, a1, a2);\n\t\t\t});\n\t\t}\n\t}\n\n\t(opts.plugins || []).forEach(p => {\n\t\tfor (let evName in p.hooks)\n\t\t\thooks[evName] = (hooks[evName] || []).concat(p.hooks[evName]);\n\t});\n\n\tconst syncOpts = assign({\n\t\tkey: null,\n\t\tsetSeries: false,\n\t\tfilters: {\n\t\t\tpub: retTrue,\n\t\t\tsub: retTrue,\n\t\t},\n\t\tscales: [xScaleKey, null]\n\t}, cursor.sync);\n\n\tconst syncKey = syncOpts.key;\n\n\tconst sync = _sync(syncKey);\n\n\tfunction pubSync(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.pub(type, src, x, y, w, h, i))\n\t\t\tsync.pub(type, src, x, y, w, h, i);\n\t}\n\n\tsync.sub(self);\n\n\tfunction pub(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.sub(type, src, x, y, w, h, i))\n\t\t\tevents[type](null, src, x, y, w, h, i);\n\t}\n\n\t(self.pub = pub);\n\n\tfunction destroy() {\n\t\tsync.unsub(self);\n\t\toff(resize, win, deb);\n\t\toff(scroll, win, deb);\n\t\troot.remove();\n\t\tfire(\"destroy\");\n\t}\n\n\tself.destroy = destroy;\n\n\tfunction _init() {\n\t\tfire(\"init\", opts, data);\n\n\t\tsetData(data || opts.data, false);\n\n\t\tif (pendScales[xScaleKey])\n\t\t\tsetScale(xScaleKey, pendScales[xScaleKey]);\n\t\telse\n\t\t\tautoScaleX();\n\n\t\t_setSize(opts.width, opts.height);\n\n\t\tupdateCursor();\n\n\t\tsetSelect(select, false);\n\t}\n\n\tif (then) {\n\t\tif (then instanceof HTMLElement) {\n\t\t\tthen.appendChild(root);\n\t\t\t_init();\n\t\t}\n\t\telse\n\t\t\tthen(self, _init);\n\t}\n\telse\n\t\t_init();\n\n\treturn self;\n}\n\nuPlot.assign = assign;\nuPlot.fmtNum = fmtNum;\nuPlot.rangeNum = rangeNum;\nuPlot.rangeLog = rangeLog;\nuPlot.rangeAsinh = rangeAsinh;\nuPlot.orient   = orient;\n\n{\n\tuPlot.join = join;\n}\n\n{\n\tuPlot.fmtDate = fmtDate;\n\tuPlot.tzDate  = tzDate;\n}\n\n{\n\tuPlot.sync = _sync;\n}\n\n{\n\tuPlot.addGap = addGap;\n\tuPlot.clipGaps = clipGaps;\n\n\tlet paths = uPlot.paths = {};\n\n\t(paths.linear  = linear);\n\t(paths.spline  = spline);\n\t(paths.stepped = stepped);\n\t(paths.bars    = bars);\n}\n\nmodule.exports = uPlot;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/uplot/uPlot.esm.js",
    "content": "/**\n* Copyright (c) 2021, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uPlot.js (μPlot)\n* A small, fast chart for time series, lines, areas, ohlc & bars\n* https://github.com/leeoniya/uPlot (v1.6.7)\n*/\n\nconst FEAT_TIME          = true;\n\nfunction debounce(fn, time) {\n\tlet pending = null;\n\n\tfunction run() {\n\t\tpending = null;\n\t\tfn();\n\t}\n\n\treturn function() {\n\t\tclearTimeout(pending);\n\t\tpending = setTimeout(run, time);\n\t}\n}\n\n// binary search for index of closest value\nfunction closestIdx(num, arr, lo, hi) {\n\tlet mid;\n\tlo = lo || 0;\n\thi = hi || arr.length - 1;\n\tlet bitwise = hi <= 2147483647;\n\n\twhile (hi - lo > 1) {\n\t\tmid = bitwise ? (lo + hi) >> 1 : floor((lo + hi) / 2);\n\n\t\tif (arr[mid] < num)\n\t\t\tlo = mid;\n\t\telse\n\t\t\thi = mid;\n\t}\n\n\tif (num - arr[lo] <= arr[hi] - num)\n\t\treturn lo;\n\n\treturn hi;\n}\n\nfunction nonNullIdx(data, _i0, _i1, dir) {\n\tfor (let i = dir == 1 ? _i0 : _i1; i >= _i0 && i <= _i1; i += dir) {\n\t\tif (data[i] != null)\n\t\t\treturn i;\n\t}\n\n\treturn -1;\n}\n\nfunction getMinMax(data, _i0, _i1, sorted) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tif (sorted == 1) {\n\t\t_min = data[_i0];\n\t\t_max = data[_i1];\n\t}\n\telse if (sorted == -1) {\n\t\t_min = data[_i1];\n\t\t_max = data[_i0];\n\t}\n\telse {\n\t\tfor (let i = _i0; i <= _i1; i++) {\n\t\t\tif (data[i] != null) {\n\t\t\t\t_min = min(_min, data[i]);\n\t\t\t\t_max = max(_max, data[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [_min, _max];\n}\n\nfunction getMinMaxLog(data, _i0, _i1) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tfor (let i = _i0; i <= _i1; i++) {\n\t\tif (data[i] > 0) {\n\t\t\t_min = min(_min, data[i]);\n\t\t\t_max = max(_max, data[i]);\n\t\t}\n\t}\n\n\treturn [\n\t\t_min ==  inf ?  1 : _min,\n\t\t_max == -inf ? 10 : _max,\n\t];\n}\n\nconst _fixedTuple = [0, 0];\n\nfunction fixIncr(minIncr, maxIncr, minExp, maxExp) {\n\t_fixedTuple[0] = minExp < 0 ? roundDec(minIncr, -minExp) : minIncr;\n\t_fixedTuple[1] = maxExp < 0 ? roundDec(maxIncr, -maxExp) : maxIncr;\n\treturn _fixedTuple;\n}\n\nfunction rangeLog(min, max, base, fullMags) {\n\n\tlet logFn = base == 10 ? log10 : log2;\n\n\tif (min == max) {\n\t\tmin /= base;\n\t\tmax *= base;\n\t}\n\n\tlet minExp, maxExp, minMaxIncrs;\n\n\tif (fullMags) {\n\t\tminExp = floor(logFn(min));\n\t\tmaxExp =  ceil(logFn(max));\n\n\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\tmin = minMaxIncrs[0];\n\t\tmax = minMaxIncrs[1];\n\t}\n\telse {\n\t\tminExp = floor(logFn(abs(min)));\n\t\tmaxExp = floor(logFn(abs(max)));\n\n\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\tmin = incrRoundDn(min, minMaxIncrs[0]);\n\t\tmax = incrRoundUp(max, minMaxIncrs[1]);\n\t}\n\n\treturn [min, max];\n}\n\nfunction rangeAsinh(min, max, base, fullMags) {\n\tlet minMax = rangeLog(min, max, base, fullMags);\n\n\tif (min == 0)\n\t\tminMax[0] = 0;\n\n\tif (max == 0)\n\t\tminMax[1] = 0;\n\n\treturn minMax;\n}\n\nconst _eqRangePart = {\n\tpad:  0,\n\tsoft: null,\n\tmode: 0,\n};\n\nconst _eqRange = {\n\tmin: _eqRangePart,\n\tmax: _eqRangePart,\n};\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction rangeNum(_min, _max, mult, extra) {\n\tif (isObj(mult))\n\t\treturn _rangeNum(_min, _max, mult);\n\n\t_eqRangePart.pad  = mult;\n\t_eqRangePart.soft = extra ? 0 : null;\n\t_eqRangePart.mode = extra ? 3 : 0;\n\n\treturn _rangeNum(_min, _max, _eqRange);\n}\n\n// nullish coalesce\nfunction ifNull(lh, rh) {\n\treturn lh == null ? rh : lh;\n}\n\nfunction _rangeNum(_min, _max, cfg) {\n\tlet cmin = cfg.min;\n\tlet cmax = cfg.max;\n\n\tlet padMin = ifNull(cmin.pad, 0);\n\tlet padMax = ifNull(cmax.pad, 0);\n\n\tlet hardMin = ifNull(cmin.hard, -inf);\n\tlet hardMax = ifNull(cmax.hard,  inf);\n\n\tlet softMin = ifNull(cmin.soft,  inf);\n\tlet softMax = ifNull(cmax.soft, -inf);\n\n\tlet softMinMode = ifNull(cmin.mode, 0);\n\tlet softMaxMode = ifNull(cmax.mode, 0);\n\n\tlet delta        = _max - _min;\n\tlet nonZeroDelta = delta || abs(_max) || 1e3;\n\tlet mag          = log10(nonZeroDelta);\n\tlet base         = pow(10, floor(mag));\n\n\tlet _padMin  = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);\n\tlet _newMin  = roundDec(incrRoundDn(_min - _padMin, base/10), 6);\n\tlet _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;\n\tlet minLim   = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));\n\n\tlet _padMax  = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);\n\tlet _newMax  = roundDec(incrRoundUp(_max + _padMax, base/10), 6);\n\tlet _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;\n\tlet maxLim   = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));\n\n\tif (minLim == maxLim && minLim == 0)\n\t\tmaxLim = 100;\n\n\treturn [minLim, maxLim];\n}\n\n// alternative: https://stackoverflow.com/a/2254896\nconst fmtNum = new Intl.NumberFormat(navigator.language).format;\n\nconst M = Math;\n\nconst PI = M.PI;\nconst abs = M.abs;\nconst floor = M.floor;\nconst round = M.round;\nconst ceil = M.ceil;\nconst min = M.min;\nconst max = M.max;\nconst pow = M.pow;\nconst sqrt = M.sqrt;\nconst log10 = M.log10;\nconst log2 = M.log2;\nconst sinh =  (v, linthresh = 1) => M.sinh(v / linthresh);\nconst asinh = (v, linthresh = 1) => M.asinh(v / linthresh);\n\nconst inf = Infinity;\n\nfunction incrRound(num, incr) {\n\treturn round(num/incr)*incr;\n}\n\nfunction clamp(num, _min, _max) {\n\treturn min(max(num, _min), _max);\n}\n\nfunction fnOrSelf(v) {\n\treturn typeof v == \"function\" ? v : () => v;\n}\n\nconst retArg1 = (_0, _1) => _1;\n\nconst retNull = _ => null;\n\nconst retTrue = _ => true;\n\nfunction incrRoundUp(num, incr) {\n\treturn ceil(num/incr)*incr;\n}\n\nfunction incrRoundDn(num, incr) {\n\treturn floor(num/incr)*incr;\n}\n\nfunction roundDec(val, dec) {\n\treturn round(val * (dec = 10**dec)) / dec;\n}\n\nconst fixedDec = new Map();\n\nfunction guessDec(num) {\n\treturn ((\"\"+num).split(\".\")[1] || \"\").length;\n}\n\nfunction genIncrs(base, minExp, maxExp, mults) {\n\tlet incrs = [];\n\n\tlet multDec = mults.map(guessDec);\n\n\tfor (let exp = minExp; exp < maxExp; exp++) {\n\t\tlet expa = abs(exp);\n\t\tlet mag = roundDec(pow(base, exp), expa);\n\n\t\tfor (let i = 0; i < mults.length; i++) {\n\t\t\tlet _incr = mults[i] * mag;\n\t\t\tlet dec = (_incr >= 0 && exp >= 0 ? 0 : expa) + (exp >= multDec[i] ? 0 : multDec[i]);\n\t\t\tlet incr = roundDec(_incr, dec);\n\t\t\tincrs.push(incr);\n\t\t\tfixedDec.set(incr, dec);\n\t\t}\n\t}\n\n\treturn incrs;\n}\n\n//export const assign = Object.assign;\n\nconst EMPTY_OBJ = {};\n\nconst isArr = Array.isArray;\n\nfunction isStr(v) {\n\treturn typeof v == 'string';\n}\n\nfunction isObj(v) {\n\tlet is = false;\n\n\tif (v != null) {\n\t\tlet c = v.constructor;\n\t\tis = c == null || c == Object;\n\t}\n\n\treturn is;\n}\n\nfunction fastIsObj(v) {\n\treturn v != null && typeof v == 'object';\n}\n\nfunction copy(o, _isObj) {\n\t_isObj = _isObj || isObj;\n\n\tlet out;\n\n\tif (isArr(o))\n\t\tout = o.map(v => copy(v, _isObj));\n\telse if (_isObj(o)) {\n\t\tout = {};\n\t\tfor (var k in o)\n\t\t\tout[k] = copy(o[k], _isObj);\n\t}\n\telse\n\t\tout = o;\n\n\treturn out;\n}\n\nfunction assign(targ) {\n\tlet args = arguments;\n\n\tfor (let i = 1; i < args.length; i++) {\n\t\tlet src = args[i];\n\n\t\tfor (let key in src) {\n\t\t\tif (isObj(targ[key]))\n\t\t\t\tassign(targ[key], copy(src[key]));\n\t\t\telse\n\t\t\t\ttarg[key] = copy(src[key]);\n\t\t}\n\t}\n\n\treturn targ;\n}\n\n// nullModes\nconst NULL_REMOVE = 0;  // nulls are converted to undefined (e.g. for spanGaps: true)\nconst NULL_RETAIN = 1;  // nulls are retained, with alignment artifacts set to undefined (default)\nconst NULL_EXPAND = 2;  // nulls are expanded to include any adjacent alignment artifacts\n\n// sets undefined values to nulls when adjacent to existing nulls (minesweeper)\nfunction nullExpand(yVals, nullIdxs, alignedLen) {\n\tfor (let i = 0, xi, lastNullIdx = -1; i < nullIdxs.length; i++) {\n\t\tlet nullIdx = nullIdxs[i];\n\n\t\tif (nullIdx > lastNullIdx) {\n\t\t\txi = nullIdx - 1;\n\t\t\twhile (xi >= 0 && yVals[xi] == null)\n\t\t\t\tyVals[xi--] = null;\n\n\t\t\txi = nullIdx + 1;\n\t\t\twhile (xi < alignedLen && yVals[xi] == null)\n\t\t\t\tyVals[lastNullIdx = xi++] = null;\n\t\t}\n\t}\n}\n\n// nullModes is a tables-matched array indicating how to treat nulls in each series\n// output is sorted ASC on the joined field (table[0]) and duplicate join values are collapsed\nfunction join(tables, nullModes) {\n\tlet xVals = new Set();\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\t\tlet len = xs.length;\n\n\t\tfor (let i = 0; i < len; i++)\n\t\t\txVals.add(xs[i]);\n\t}\n\n\tlet data = [Array.from(xVals).sort((a, b) => a - b)];\n\n\tlet alignedLen = data[0].length;\n\n\tlet xIdxs = new Map();\n\n\tfor (let i = 0; i < alignedLen; i++)\n\t\txIdxs.set(data[0][i], i);\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\n\t\tfor (let si = 1; si < t.length; si++) {\n\t\t\tlet ys = t[si];\n\n\t\t\tlet yVals = Array(alignedLen).fill(undefined);\n\n\t\t\tlet nullMode = nullModes ? nullModes[ti][si] : NULL_RETAIN;\n\n\t\t\tlet nullIdxs = [];\n\n\t\t\tfor (let i = 0; i < ys.length; i++) {\n\t\t\t\tlet yVal = ys[i];\n\t\t\t\tlet alignedIdx = xIdxs.get(xs[i]);\n\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (nullMode != NULL_REMOVE) {\n\t\t\t\t\t\tyVals[alignedIdx] = yVal;\n\n\t\t\t\t\t\tif (nullMode == NULL_EXPAND)\n\t\t\t\t\t\t\tnullIdxs.push(alignedIdx);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tyVals[alignedIdx] = yVal;\n\t\t\t}\n\n\t\t\tnullExpand(yVals, nullIdxs, alignedLen);\n\n\t\t\tdata.push(yVals);\n\t\t}\n\t}\n\n\treturn data;\n}\n\nconst microTask = typeof queueMicrotask == \"undefined\" ? fn => Promise.resolve().then(fn) : queueMicrotask;\n\nconst WIDTH       = \"width\";\nconst HEIGHT      = \"height\";\nconst TOP         = \"top\";\nconst BOTTOM      = \"bottom\";\nconst LEFT        = \"left\";\nconst RIGHT       = \"right\";\nconst hexBlack    = \"#000\";\nconst transparent = hexBlack + \"0\";\n\nconst mousemove   = \"mousemove\";\nconst mousedown   = \"mousedown\";\nconst mouseup     = \"mouseup\";\nconst mouseenter  = \"mouseenter\";\nconst mouseleave  = \"mouseleave\";\nconst dblclick    = \"dblclick\";\nconst resize      = \"resize\";\nconst scroll      = \"scroll\";\n\nconst pre = \"u-\";\n\nconst UPLOT          =       \"uplot\";\nconst ORI_HZ         = pre + \"hz\";\nconst ORI_VT         = pre + \"vt\";\nconst TITLE          = pre + \"title\";\nconst WRAP           = pre + \"wrap\";\nconst UNDER          = pre + \"under\";\nconst OVER           = pre + \"over\";\nconst OFF            = pre + \"off\";\nconst SELECT         = pre + \"select\";\nconst CURSOR_X       = pre + \"cursor-x\";\nconst CURSOR_Y       = pre + \"cursor-y\";\nconst CURSOR_PT      = pre + \"cursor-pt\";\nconst LEGEND         = pre + \"legend\";\nconst LEGEND_LIVE    = pre + \"live\";\nconst LEGEND_INLINE  = pre + \"inline\";\nconst LEGEND_THEAD   = pre + \"thead\";\nconst LEGEND_SERIES  = pre + \"series\";\nconst LEGEND_MARKER  = pre + \"marker\";\nconst LEGEND_LABEL   = pre + \"label\";\nconst LEGEND_VALUE   = pre + \"value\";\n\nconst doc = document;\nconst win = window;\nconst pxRatio = devicePixelRatio;\n\nfunction addClass(el, c) {\n\tif (c != null) {\n\t\tlet cl = el.classList;\n\t\t!cl.contains(c) && cl.add(c);\n\t}\n}\n\nfunction remClass(el, c) {\n\tlet cl = el.classList;\n\tcl.contains(c) && cl.remove(c);\n}\n\nfunction setStylePx(el, name, value) {\n\tel.style[name] = value + \"px\";\n}\n\nfunction placeTag(tag, cls, targ, refEl) {\n\tlet el = doc.createElement(tag);\n\n\tif (cls != null)\n\t\taddClass(el, cls);\n\n\tif (targ != null)\n\t\ttarg.insertBefore(el, refEl);\n\n\treturn el;\n}\n\nfunction placeDiv(cls, targ) {\n\treturn placeTag(\"div\", cls, targ);\n}\n\nfunction trans(el, xPos, yPos, xMax, yMax) {\n\tel.style.transform = \"translate(\" + xPos + \"px,\" + yPos + \"px)\";\n\n\tif (xPos < 0 || yPos < 0 || xPos > xMax || yPos > yMax)\n\t\taddClass(el, OFF);\n\telse\n\t\tremClass(el, OFF);\n}\n\nconst evOpts = {passive: true};\n\nfunction on(ev, el, cb) {\n\tel.addEventListener(ev, cb, evOpts);\n}\n\nfunction off(ev, el, cb) {\n\tel.removeEventListener(ev, cb, evOpts);\n}\n\nconst months = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\",\n];\n\nconst days = [\n\t\"Sunday\",\n\t\"Monday\",\n\t\"Tuesday\",\n\t\"Wednesday\",\n\t\"Thursday\",\n\t\"Friday\",\n\t\"Saturday\",\n];\n\nfunction slice3(str) {\n\treturn str.slice(0, 3);\n}\n\nconst days3 = days.map(slice3);\n\nconst months3 = months.map(slice3);\n\nconst engNames = {\n\tMMMM: months,\n\tMMM:  months3,\n\tWWWW: days,\n\tWWW:  days3,\n};\n\nfunction zeroPad2(int) {\n\treturn (int < 10 ? '0' : '') + int;\n}\n\nfunction zeroPad3(int) {\n\treturn (int < 10 ? '00' : int < 100 ? '0' : '') + int;\n}\n\n/*\nfunction suffix(int) {\n\tlet mod10 = int % 10;\n\n\treturn int + (\n\t\tmod10 == 1 && int != 11 ? \"st\" :\n\t\tmod10 == 2 && int != 12 ? \"nd\" :\n\t\tmod10 == 3 && int != 13 ? \"rd\" : \"th\"\n\t);\n}\n*/\n\nconst subs = {\n\t// 2019\n\tYYYY:\td => d.getFullYear(),\n\t// 19\n\tYY:\t\td => (d.getFullYear()+'').slice(2),\n\t// July\n\tMMMM:\t(d, names) => names.MMMM[d.getMonth()],\n\t// Jul\n\tMMM:\t(d, names) => names.MMM[d.getMonth()],\n\t// 07\n\tMM:\t\td => zeroPad2(d.getMonth()+1),\n\t// 7\n\tM:\t\td => d.getMonth()+1,\n\t// 09\n\tDD:\t\td => zeroPad2(d.getDate()),\n\t// 9\n\tD:\t\td => d.getDate(),\n\t// Monday\n\tWWWW:\t(d, names) => names.WWWW[d.getDay()],\n\t// Mon\n\tWWW:\t(d, names) => names.WWW[d.getDay()],\n\t// 03\n\tHH:\t\td => zeroPad2(d.getHours()),\n\t// 3\n\tH:\t\td => d.getHours(),\n\t// 9 (12hr, unpadded)\n\th:\t\td => {let h = d.getHours(); return h == 0 ? 12 : h > 12 ? h - 12 : h;},\n\t// AM\n\tAA:\t\td => d.getHours() >= 12 ? 'PM' : 'AM',\n\t// am\n\taa:\t\td => d.getHours() >= 12 ? 'pm' : 'am',\n\t// a\n\ta:\t\td => d.getHours() >= 12 ? 'p' : 'a',\n\t// 09\n\tmm:\t\td => zeroPad2(d.getMinutes()),\n\t// 9\n\tm:\t\td => d.getMinutes(),\n\t// 09\n\tss:\t\td => zeroPad2(d.getSeconds()),\n\t// 9\n\ts:\t\td => d.getSeconds(),\n\t// 374\n\tfff:\td => zeroPad3(d.getMilliseconds()),\n};\n\nfunction fmtDate(tpl, names) {\n\tnames = names || engNames;\n\tlet parts = [];\n\n\tlet R = /\\{([a-z]+)\\}|[^{]+/gi, m;\n\n\twhile (m = R.exec(tpl))\n\t\tparts.push(m[0][0] == '{' ? subs[m[1]] : m[0]);\n\n\treturn d => {\n\t\tlet out = '';\n\n\t\tfor (let i = 0; i < parts.length; i++)\n\t\t\tout += typeof parts[i] == \"string\" ? parts[i] : parts[i](d, names);\n\n\t\treturn out;\n\t}\n}\n\nconst localTz = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone/53652131#53652131\nfunction tzDate(date, tz) {\n\tlet date2;\n\n\t// perf optimization\n\tif (tz == 'UTC' || tz == 'Etc/UTC')\n\t\tdate2 = new Date(+date + date.getTimezoneOffset() * 6e4);\n\telse if (tz == localTz)\n\t\tdate2 = date;\n\telse {\n\t\tdate2 = new Date(date.toLocaleString('en-US', {timeZone: tz}));\n\t\tdate2.setMilliseconds(date.getMilliseconds());\n\t}\n\n\treturn date2;\n}\n\n//export const series = [];\n\n// default formatters:\n\nconst onlyWhole = v => v % 1 == 0;\n\nconst allMults = [1,2,2.5,5];\n\n// ...0.01, 0.02, 0.025, 0.05, 0.1, 0.2, 0.25, 0.5\nconst decIncrs = genIncrs(10, -16, 0, allMults);\n\n// 1, 2, 2.5, 5, 10, 20, 25, 50...\nconst oneIncrs = genIncrs(10, 0, 16, allMults);\n\n// 1, 2,      5, 10, 20, 25, 50...\nconst wholeIncrs = oneIncrs.filter(onlyWhole);\n\nconst numIncrs = decIncrs.concat(oneIncrs);\n\nconst NL = \"\\n\";\n\nconst yyyy    = \"{YYYY}\";\nconst NLyyyy  = NL + yyyy;\nconst md      = \"{M}/{D}\";\nconst NLmd    = NL + md;\nconst NLmdyy  = NLmd + \"/{YY}\";\n\nconst aa      = \"{aa}\";\nconst hmm     = \"{h}:{mm}\";\nconst hmmaa   = hmm + aa;\nconst NLhmmaa = NL + hmmaa;\nconst ss      = \":{ss}\";\n\nconst _ = null;\n\nfunction genTimeStuffs(ms) {\n\tlet\ts  = ms * 1e3,\n\t\tm  = s  * 60,\n\t\th  = m  * 60,\n\t\td  = h  * 24,\n\t\tmo = d  * 30,\n\t\ty  = d  * 365;\n\n\t// min of 1e-3 prevents setting a temporal x ticks too small since Date objects cannot advance ticks smaller than 1ms\n\tlet subSecIncrs = ms == 1 ? genIncrs(10, 0, 3, allMults).filter(onlyWhole) : genIncrs(10, -3, 0, allMults);\n\n\tlet timeIncrs = subSecIncrs.concat([\n\t\t// minute divisors (# of secs)\n\t\ts,\n\t\ts * 5,\n\t\ts * 10,\n\t\ts * 15,\n\t\ts * 30,\n\t\t// hour divisors (# of mins)\n\t\tm,\n\t\tm * 5,\n\t\tm * 10,\n\t\tm * 15,\n\t\tm * 30,\n\t\t// day divisors (# of hrs)\n\t\th,\n\t\th * 2,\n\t\th * 3,\n\t\th * 4,\n\t\th * 6,\n\t\th * 8,\n\t\th * 12,\n\t\t// month divisors TODO: need more?\n\t\td,\n\t\td * 2,\n\t\td * 3,\n\t\td * 4,\n\t\td * 5,\n\t\td * 6,\n\t\td * 7,\n\t\td * 8,\n\t\td * 9,\n\t\td * 10,\n\t\td * 15,\n\t\t// year divisors (# months, approx)\n\t\tmo,\n\t\tmo * 2,\n\t\tmo * 3,\n\t\tmo * 4,\n\t\tmo * 6,\n\t\t// century divisors\n\t\ty,\n\t\ty * 2,\n\t\ty * 5,\n\t\ty * 10,\n\t\ty * 25,\n\t\ty * 50,\n\t\ty * 100,\n\t]);\n\n\t// [0]:   minimum num secs in the tick incr\n\t// [1]:   default tick format\n\t// [2-7]: rollover tick formats\n\t// [8]:   mode: 0: replace [1] -> [2-7], 1: concat [1] + [2-7]\n\tconst _timeAxisStamps = [\n\t//   tick incr    default          year                    month   day                   hour    min       sec   mode\n\t\t[y,           yyyy,            _,                      _,      _,                    _,      _,        _,       1],\n\t\t[d * 28,      \"{MMM}\",         NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t[d,           md,              NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t[h,           \"{h}\" + aa,      NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t[m,           hmmaa,           NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t[s,           ss,              NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1],\n\t\t[ms,          ss + \".{fff}\",   NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1],\n\t];\n\n\t// the ensures that axis ticks, values & grid are aligned to logical temporal breakpoints and not an arbitrary timestamp\n\t// https://www.timeanddate.com/time/dst/\n\t// https://www.timeanddate.com/time/dst/2019.html\n\t// https://www.epochconverter.com/timezones\n\tfunction timeAxisSplits(tzDate) {\n\t\treturn (self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace) => {\n\t\t\tlet splits = [];\n\t\t\tlet isYr = foundIncr >= y;\n\t\t\tlet isMo = foundIncr >= mo && foundIncr < y;\n\n\t\t\t// get the timezone-adjusted date\n\t\t\tlet minDate = tzDate(scaleMin);\n\t\t\tlet minDateTs = minDate * ms;\n\n\t\t\t// get ts of 12am (this lands us at or before the original scaleMin)\n\t\t\tlet minMin = mkDate(minDate.getFullYear(), isYr ? 0 : minDate.getMonth(), isMo || isYr ? 1 : minDate.getDate());\n\t\t\tlet minMinTs = minMin * ms;\n\n\t\t\tif (isMo || isYr) {\n\t\t\t\tlet moIncr = isMo ? foundIncr / mo : 0;\n\t\t\t\tlet yrIncr = isYr ? foundIncr / y  : 0;\n\t\t\t//\tlet tzOffset = scaleMin - minDateTs;\t\t// needed?\n\t\t\t\tlet split = minDateTs == minMinTs ? minDateTs : mkDate(minMin.getFullYear() + yrIncr, minMin.getMonth() + moIncr, 1) * ms;\n\t\t\t\tlet splitDate = new Date(split / ms);\n\t\t\t\tlet baseYear = splitDate.getFullYear();\n\t\t\t\tlet baseMonth = splitDate.getMonth();\n\n\t\t\t\tfor (let i = 0; split <= scaleMax; i++) {\n\t\t\t\t\tlet next = mkDate(baseYear + yrIncr * i, baseMonth + moIncr * i, 1);\n\t\t\t\t\tlet offs = next - tzDate(next * ms);\n\n\t\t\t\t\tsplit = (+next + offs) * ms;\n\n\t\t\t\t\tif (split <= scaleMax)\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet incr0 = foundIncr >= d ? d : foundIncr;\n\t\t\t\tlet tzOffset = floor(scaleMin) - floor(minDateTs);\n\t\t\t\tlet split = minMinTs + tzOffset + incrRoundUp(minDateTs - minMinTs, incr0);\n\t\t\t\tsplits.push(split);\n\n\t\t\t\tlet date0 = tzDate(split);\n\n\t\t\t\tlet prevHour = date0.getHours() + (date0.getMinutes() / m) + (date0.getSeconds() / h);\n\t\t\t\tlet incrHours = foundIncr / h;\n\n\t\t\t\tlet minSpace = self.axes[axisIdx]._space;\n\t\t\t\tlet pctSpace = foundSpace / minSpace;\n\n\t\t\t\twhile (1) {\n\t\t\t\t\tsplit = roundDec(split + foundIncr, ms == 1 ? 0 : 3);\n\n\t\t\t\t\tif (split > scaleMax)\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tif (incrHours > 1) {\n\t\t\t\t\t\tlet expectedHour = floor(roundDec(prevHour + incrHours, 6)) % 24;\n\t\t\t\t\t\tlet splitDate = tzDate(split);\n\t\t\t\t\t\tlet actualHour = splitDate.getHours();\n\n\t\t\t\t\t\tlet dstShift = actualHour - expectedHour;\n\n\t\t\t\t\t\tif (dstShift > 1)\n\t\t\t\t\t\t\tdstShift = -1;\n\n\t\t\t\t\t\tsplit -= dstShift * h;\n\n\t\t\t\t\t\tprevHour = (prevHour + incrHours) % 24;\n\n\t\t\t\t\t\t// add a tick only if it's further than 70% of the min allowed label spacing\n\t\t\t\t\t\tlet prevSplit = splits[splits.length - 1];\n\t\t\t\t\t\tlet pctIncr = roundDec((split - prevSplit) / foundIncr, 3);\n\n\t\t\t\t\t\tif (pctIncr * pctSpace >= .7)\n\t\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn splits;\n\t\t}\n\t}\n\n\treturn [\n\t\ttimeIncrs,\n\t\t_timeAxisStamps,\n\t\ttimeAxisSplits,\n\t];\n}\n\nconst [ timeIncrsMs, _timeAxisStampsMs, timeAxisSplitsMs ] = genTimeStuffs(1);\nconst [ timeIncrsS,  _timeAxisStampsS,  timeAxisSplitsS  ] = genTimeStuffs(1e-3);\n\n// base 2\ngenIncrs(2, -53, 53, [1]);\n\n/*\nconsole.log({\n\tdecIncrs,\n\toneIncrs,\n\twholeIncrs,\n\tnumIncrs,\n\ttimeIncrs,\n\tfixedDec,\n});\n*/\n\nfunction timeAxisStamps(stampCfg, fmtDate) {\n\treturn stampCfg.map(s => s.map((v, i) =>\n\t\ti == 0 || i == 8 || v == null ? v : fmtDate(i == 1 || s[8] == 0 ? v : s[1] + v)\n\t));\n}\n\n// TODO: will need to accept spaces[] and pull incr into the loop when grid will be non-uniform, eg for log scales.\n// currently we ignore this for months since they're *nearly* uniform and the added complexity is not worth it\nfunction timeAxisVals(tzDate, stamps) {\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => {\n\t\tlet s = stamps.find(s => foundIncr >= s[0]) || stamps[stamps.length - 1];\n\n\t\t// these track boundaries when a full label is needed again\n\t\tlet prevYear;\n\t\tlet prevMnth;\n\t\tlet prevDate;\n\t\tlet prevHour;\n\t\tlet prevMins;\n\t\tlet prevSecs;\n\n\t\treturn splits.map(split => {\n\t\t\tlet date = tzDate(split);\n\n\t\t\tlet newYear = date.getFullYear();\n\t\t\tlet newMnth = date.getMonth();\n\t\t\tlet newDate = date.getDate();\n\t\t\tlet newHour = date.getHours();\n\t\t\tlet newMins = date.getMinutes();\n\t\t\tlet newSecs = date.getSeconds();\n\n\t\t\tlet stamp = (\n\t\t\t\tnewYear != prevYear && s[2] ||\n\t\t\t\tnewMnth != prevMnth && s[3] ||\n\t\t\t\tnewDate != prevDate && s[4] ||\n\t\t\t\tnewHour != prevHour && s[5] ||\n\t\t\t\tnewMins != prevMins && s[6] ||\n\t\t\t\tnewSecs != prevSecs && s[7] ||\n\t\t\t\t                       s[1]\n\t\t\t);\n\n\t\t\tprevYear = newYear;\n\t\t\tprevMnth = newMnth;\n\t\t\tprevDate = newDate;\n\t\t\tprevHour = newHour;\n\t\t\tprevMins = newMins;\n\t\t\tprevSecs = newSecs;\n\n\t\t\treturn stamp(date);\n\t\t});\n\t}\n}\n\n// for when axis.values is defined as a static fmtDate template string\nfunction timeAxisVal(tzDate, dateTpl) {\n\tlet stamp = fmtDate(dateTpl);\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => splits.map(split => stamp(tzDate(split)));\n}\n\nfunction mkDate(y, m, d) {\n\treturn new Date(y, m, d);\n}\n\nfunction timeSeriesStamp(stampCfg, fmtDate) {\n\treturn fmtDate(stampCfg);\n}\nconst _timeSeriesStamp = '{YYYY}-{MM}-{DD} {h}:{mm}{aa}';\n\nfunction timeSeriesVal(tzDate, stamp) {\n\treturn (self, val) => stamp(tzDate(val));\n}\n\nconst legendWidth = 2;\n\nconst legendDash = \"solid\";\n\nfunction legendStroke(self, seriesIdx) {\n\tlet s = self.series[seriesIdx];\n\treturn s.width ? s.stroke(self, seriesIdx) : s.points.width ? s.points.stroke(self, seriesIdx) : null;\n}\n\nfunction legendFill(self, seriesIdx) {\n\treturn self.series[seriesIdx].fill(self, seriesIdx);\n}\n\nfunction cursorPointShow(self, si) {\n\tlet o = self.cursor.points;\n\n\tlet pt = placeDiv();\n\n\tlet stroke = o.stroke(self, si);\n\tlet fill = o.fill(self, si);\n\n\tpt.style.background = fill || stroke;\n\n\tlet size = o.size(self, si);\n\tlet width = o.width(self, si, size);\n\n\tif (width)\n\t\tpt.style.border = width + \"px solid \" + stroke;\n\n\tlet mar = size / -2;\n\n\tsetStylePx(pt, WIDTH, size);\n\tsetStylePx(pt, HEIGHT, size);\n\tsetStylePx(pt, \"marginLeft\", mar);\n\tsetStylePx(pt, \"marginTop\", mar);\n\n\treturn pt;\n}\n\nfunction cursorPointFill(self, si) {\n\tlet s = self.series[si];\n\treturn s.stroke(self, si);\n}\n\nfunction cursorPointStroke(self, si) {\n\tlet s = self.series[si];\n\treturn s.stroke(self, si);\n}\n\nfunction cursorPointSize(self, si) {\n\tlet s = self.series[si];\n\treturn ptDia(s.width, 1);\n}\n\nfunction dataIdx(self, seriesIdx, cursorIdx) {\n\treturn cursorIdx;\n}\n\nconst moveTuple = [0,0];\n\nfunction cursorMove(self, mouseLeft1, mouseTop1) {\n\tmoveTuple[0] = mouseLeft1;\n\tmoveTuple[1] = mouseTop1;\n\treturn moveTuple;\n}\n\nfunction filtBtn0(self, targ, handle) {\n\treturn e => {\n\t\te.button == 0 && handle(e);\n\t};\n}\n\nfunction passThru(self, targ, handle) {\n\treturn handle;\n}\n\nconst cursorOpts = {\n\tshow: true,\n\tx: true,\n\ty: true,\n\tlock: false,\n\tmove: cursorMove,\n\tpoints: {\n\t\tshow:   cursorPointShow,\n\t\tsize:   cursorPointSize,\n\t\twidth:  0,\n\t\tstroke: cursorPointStroke,\n\t\tfill:   cursorPointFill,\n\t},\n\n\tbind: {\n\t\tmousedown:   filtBtn0,\n\t\tmouseup:     filtBtn0,\n\t\tclick:       filtBtn0,\n\t\tdblclick:    filtBtn0,\n\n\t\tmousemove:   passThru,\n\t\tmouseleave:  passThru,\n\t\tmouseenter:  passThru,\n\t},\n\n\tdrag: {\n\t\tsetScale: true,\n\t\tx: true,\n\t\ty: false,\n\t\tdist: 0,\n\t\tuni: null,\n\t\t_x: false,\n\t\t_y: false,\n\t},\n\n\tfocus: {\n\t\tprox: -1,\n\t},\n\n\tleft: -10,\n\ttop: -10,\n\tidx: null,\n\tdataIdx,\n};\n\nconst grid = {\n\tshow: true,\n\tstroke: \"rgba(0,0,0,0.07)\",\n\twidth: 2,\n//\tdash: [],\n\tfilter: retArg1,\n};\n\nconst ticks = assign({}, grid, {size: 10});\n\nconst font      = '12px system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\nconst labelFont = \"bold \" + font;\nconst lineMult = 1.5;\t\t// font-size multiplier\n\nconst xAxisOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tstroke: hexBlack,\n\tspace: 50,\n\tgap: 5,\n\tsize: 50,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 2,\n//\tclass: \"x-vals\",\n//\tincrs: timeIncrs,\n//\tvalues: timeVals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tfont,\n\trotate: 0,\n};\n\nconst numSeriesLabel = \"Value\";\nconst timeSeriesLabel = \"Time\";\n\nconst xSeriesOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tauto: false,\n\tsorted: 1,\n//\tlabel: \"Time\",\n//\tvalue: v => stamp(new Date(v * 1e3)),\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n};\n\nfunction numAxisVals(self, splits, axisIdx, foundSpace, foundIncr) {\n\treturn splits.map(v => v == null ? \"\" : fmtNum(v));\n}\n\nfunction numAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet splits = [];\n\n\tlet numDec = fixedDec.get(foundIncr) || 0;\n\n\tscaleMin = forceMin ? scaleMin : roundDec(incrRoundUp(scaleMin, foundIncr), numDec);\n\n\tfor (let val = scaleMin; val <= scaleMax; val = roundDec(val + foundIncr, numDec))\n\t\tsplits.push(Object.is(val, -0) ? 0 : val);\t\t// coalesces -0\n\n\treturn splits;\n}\n\n// this doesnt work for sin, which needs to come off from 0 independently in pos and neg dirs\nfunction logAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tconst splits = [];\n\n\tconst logBase = self.scales[self.axes[axisIdx].scale].log;\n\n\tconst logFn = logBase == 10 ? log10 : log2;\n\n\tconst exp = floor(logFn(scaleMin));\n\n\tfoundIncr = pow(logBase, exp);\n\n\tif (exp < 0)\n\t\tfoundIncr = roundDec(foundIncr, -exp);\n\n\tlet split = scaleMin;\n\n\tdo {\n\t\tsplits.push(split);\n\t\tsplit = roundDec(split + foundIncr, fixedDec.get(foundIncr));\n\n\t\tif (split >= foundIncr * logBase)\n\t\t\tfoundIncr = split;\n\n\t} while (split <= scaleMax);\n\n\treturn splits;\n}\n\nfunction asinhAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet sc = self.scales[self.axes[axisIdx].scale];\n\n\tlet linthresh = sc.asinh;\n\n\tlet posSplits = scaleMax > linthresh ? logAxisSplits(self, axisIdx, max(linthresh, scaleMin), scaleMax, foundIncr) : [linthresh];\n\tlet zero = scaleMax >= 0 && scaleMin <= 0 ? [0] : [];\n\tlet negSplits = scaleMin < -linthresh ? logAxisSplits(self, axisIdx, max(linthresh, -scaleMax), -scaleMin, foundIncr): [linthresh];\n\n\treturn negSplits.reverse().map(v => -v).concat(zero, posSplits);\n}\n\nconst RE_ALL   = /./;\nconst RE_12357 = /[12357]/;\nconst RE_125   = /[125]/;\nconst RE_1     = /1/;\n\nfunction logAxisValsFilt(self, splits, axisIdx, foundSpace, foundIncr) {\n\tlet axis = self.axes[axisIdx];\n\tlet scaleKey = axis.scale;\n\tlet sc = self.scales[scaleKey];\n\n\tif (sc.distr == 3 && sc.log == 2)\n\t\treturn splits;\n\n\tlet valToPos = self.valToPos;\n\n\tlet minSpace = axis._space;\n\n\tlet _10 = valToPos(10, scaleKey);\n\n\tlet re = (\n\t\tvalToPos(9, scaleKey) - _10 >= minSpace ? RE_ALL :\n\t\tvalToPos(7, scaleKey) - _10 >= minSpace ? RE_12357 :\n\t\tvalToPos(5, scaleKey) - _10 >= minSpace ? RE_125 :\n\t\tRE_1\n\t);\n\n\treturn splits.map(v => ((sc.distr == 4 && v == 0) || re.test(v)) ? v : null);\n}\n\nfunction numSeriesVal(self, val) {\n\treturn val == null ? \"\" : fmtNum(val);\n}\n\nconst yAxisOpts = {\n\tshow: true,\n\tscale: \"y\",\n\tstroke: hexBlack,\n\tspace: 30,\n\tgap: 5,\n\tsize: 50,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 3,\n//\tclass: \"y-vals\",\n//\tincrs: numIncrs,\n//\tvalues: (vals, space) => vals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tfont,\n\trotate: 0,\n};\n\n// takes stroke width\nfunction ptDia(width, mult) {\n\tlet dia = 3 + (width || 1) * 2;\n\treturn roundDec(dia * mult, 3);\n}\n\nfunction seriesPoints(self, si) {\n\tconst xsc = self.scales[self.series[0].scale];\n\tconst dim = xsc.ori == 0 ? self.bbox.width : self.bbox.height;\n\tconst s = self.series[si];\n//\tconst dia = ptDia(s.width, pxRatio);\n\tlet maxPts = dim / (s.points.space * pxRatio);\n\tlet idxs = self.series[0].idxs;\n\treturn idxs[1] - idxs[0] <= maxPts;\n}\n\nfunction seriesFillTo(self, seriesIdx, dataMin, dataMax) {\n\tlet scale = self.scales[self.series[seriesIdx].scale];\n\tlet isUpperBandEdge = self.bands && self.bands.some(b => b.series[0] == seriesIdx);\n\treturn scale.distr == 3 || isUpperBandEdge ? scale.min : 0;\n}\n\nconst ySeriesOpts = {\n\tscale: \"y\",\n\tauto: true,\n\tsorted: 0,\n\tshow: true,\n\tband: false,\n\tspanGaps: false,\n\talpha: 1,\n\tpoints: {\n\t\tshow: seriesPoints,\n\t//\tstroke: \"#000\",\n\t//\tfill: \"#fff\",\n\t//\twidth: 1,\n\t//\tsize: 10,\n\t},\n//\tlabel: \"Value\",\n//\tvalue: v => v,\n\tvalues: null,\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n\n\tpath: null,\n\tclip: null,\n};\n\nfunction clampScale(self, val, scaleMin, scaleMax, scaleKey) {\n/*\n\tif (val < 0) {\n\t\tlet cssHgt = self.bbox.height / pxRatio;\n\t\tlet absPos = self.valToPos(abs(val), scaleKey);\n\t\tlet fromBtm = cssHgt - absPos;\n\t\treturn self.posToVal(cssHgt + fromBtm, scaleKey);\n\t}\n*/\n\treturn scaleMin / 10;\n}\n\nconst xScaleOpts = {\n\ttime: FEAT_TIME,\n\tauto: true,\n\tdistr: 1,\n\tlog: 10,\n\tasinh: 1,\n\tmin: null,\n\tmax: null,\n\tdir: 1,\n\tori: 0,\n};\n\nconst yScaleOpts = assign({}, xScaleOpts, {\n\ttime: false,\n\tori: 1,\n});\n\nconst syncs = {};\n\nfunction _sync(key, opts) {\n\tlet s = syncs[key];\n\n\tif (!s) {\n\t\tlet clients = [];\n\n\t\ts = {\n\t\t\tkey,\n\t\t\tsub(client) {\n\t\t\t\tclients.push(client);\n\t\t\t},\n\t\t\tunsub(client) {\n\t\t\t\tclients = clients.filter(c => c != client);\n\t\t\t},\n\t\t\tpub(type, self, x, y, w, h, i) {\n\t\t\t\tfor (let i = 0; i < clients.length; i++)\n\t\t\t\t\tclients[i] != self && clients[i].pub(type, self, x, y, w, h, i);\n\t\t\t}\n\t\t};\n\n\t\tif (key != null)\n\t\t\tsyncs[key] = s;\n\t}\n\n\treturn s;\n}\n\nfunction orient(u, seriesIdx, cb) {\n\tconst series = u.series[seriesIdx];\n\tconst scales = u.scales;\n\tconst bbox   = u.bbox;\n\tconst scaleX = scales[u.series[0].scale];\n\n\tlet dx = u._data[0],\n\t\tdy = u._data[seriesIdx],\n\t\tsx = scaleX,\n\t\tsy = scales[series.scale],\n\t\tl = bbox.left,\n\t\tt = bbox.top,\n\t\tw = bbox.width,\n\t\th = bbox.height,\n\t\tH = u.valToPosH,\n\t\tV = u.valToPosV;\n\n\treturn (sx.ori == 0\n\t\t? cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tH,\n\t\t\tV,\n\t\t\tl,\n\t\t\tt,\n\t\t\tw,\n\t\t\th,\n\t\t\tmoveToH,\n\t\t\tlineToH,\n\t\t\trectH,\n\t\t\tarcH,\n\t\t\tbezierCurveToH,\n\t\t)\n\t\t: cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tV,\n\t\t\tH,\n\t\t\tt,\n\t\t\tl,\n\t\t\th,\n\t\t\tw,\n\t\t\tmoveToV,\n\t\t\tlineToV,\n\t\t\trectV,\n\t\t\tarcV,\n\t\t\tbezierCurveToV,\n\t\t)\n\t);\n}\n\n// creates inverted band clip path (towards from stroke path -> yMax)\nfunction clipBandLine(self, seriesIdx, idx0, idx1, strokePath) {\n\treturn orient(self, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\t\tconst lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\tlet frIdx, toIdx;\n\n\t\tif (dir == 1) {\n\t\t\tfrIdx = idx0;\n\t\t\ttoIdx = idx1;\n\t\t}\n\t\telse {\n\t\t\tfrIdx = idx1;\n\t\t\ttoIdx = idx0;\n\t\t}\n\n\t\t// path start\n\t\tlet x0 = incrRound(valToPosX(dataX[frIdx], scaleX, xDim, xOff), 0.5);\n\t\tlet y0 = incrRound(valToPosY(dataY[frIdx], scaleY, yDim, yOff), 0.5);\n\t\t// path end x\n\t\tlet x1 = incrRound(valToPosX(dataX[toIdx], scaleX, xDim, xOff), 0.5);\n\t\t// upper y limit\n\t\tlet yLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\n\t\tlet clip = new Path2D(strokePath);\n\n\t\tlineTo(clip, x1, yLimit);\n\t\tlineTo(clip, x0, yLimit);\n\t\tlineTo(clip, x0, y0);\n\n\t\treturn clip;\n\t});\n}\n\nfunction clipGaps(gaps, ori, plotLft, plotTop, plotWid, plotHgt) {\n\tlet clip = null;\n\n\t// create clip path (invert gaps and non-gaps)\n\tif (gaps.length > 0) {\n\t\tclip = new Path2D();\n\n\t\tconst rect = ori == 0 ? rectH : rectV;\n\n\t\tlet prevGapEnd = plotLft;\n\n\t\tfor (let i = 0; i < gaps.length; i++) {\n\t\t\tlet g = gaps[i];\n\n\t\t\trect(clip, prevGapEnd, plotTop, g[0] - prevGapEnd, plotTop + plotHgt);\n\n\t\t\tprevGapEnd = g[1];\n\t\t}\n\n\t\trect(clip, prevGapEnd, plotTop, plotLft + plotWid - prevGapEnd, plotTop + plotHgt);\n\t}\n\n\treturn clip;\n}\n\nfunction addGap(gaps, fromX, toX) {\n\tif (toX > fromX) {\n\t\tlet prevGap = gaps[gaps.length - 1];\n\n\t\tif (prevGap && prevGap[0] == fromX)\t\t\t// TODO: gaps must be encoded at stroke widths?\n\t\t\tprevGap[1] = toX;\n\t\telse\n\t\t\tgaps.push([fromX, toX]);\n\t}\n}\n\n// orientation-inverting canvas functions\nfunction moveToH(p, x, y) { p.moveTo(x, y); }\nfunction moveToV(p, y, x) { p.moveTo(x, y); }\nfunction lineToH(p, x, y) { p.lineTo(x, y); }\nfunction lineToV(p, y, x) { p.lineTo(x, y); }\nfunction rectH(p, x, y, w, h) { p.rect(x, y, w, h); }\nfunction rectV(p, y, x, h, w) { p.rect(x, y, w, h); }\nfunction arcH(p, x, y, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\nfunction arcV(p, y, x, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\nfunction bezierCurveToH(p, bp1x, bp1y, bp2x, bp2y, p2x, p2y) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }function bezierCurveToV(p, bp1y, bp1x, bp2y, bp2x, p2y, p2x) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }\n\nfunction _drawAcc(lineTo) {\n\treturn (stroke, accX, minY, maxY, outY) => {\n\t\tif (minY != maxY) {\n\t\t\tlineTo(stroke, accX, minY);\n\t\t\tlineTo(stroke, accX, maxY);\n\t\t\tlineTo(stroke, accX, outY);\n\t\t}\n\t};\n}\n\nconst drawAccH = _drawAcc(lineToH);\nconst drawAccV = _drawAcc(lineToV);\n\nfunction linear() {\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet lineTo, drawAcc;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tdrawAcc = drawAccH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tdrawAcc = drawAccV;\n\t\t\t}\n\n\t\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tlet minY = inf,\n\t\t\t\tmaxY = -inf,\n\t\t\t\toutY, outX, drawnAtX;\n\n\t\t\tlet gaps = [];\n\n\t\t\tlet accX = round(valToPosX(dataX[dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet accGaps = false;\n\n\t\t\t// data edges\n\t\t\tlet lftIdx = nonNullIdx(dataY, idx0, idx1,  1 * dir);\n\t\t\tlet rgtIdx = nonNullIdx(dataY, idx0, idx1, -1 * dir);\n\t\t\tlet lftX = incrRound(valToPosX(dataX[lftIdx], scaleX, xDim, xOff), 0.5);\n\t\t\tlet rgtX = incrRound(valToPosX(dataX[rgtIdx], scaleX, xDim, xOff), 0.5);\n\n\t\t\tif (lftX > xOff)\n\t\t\t\taddGap(gaps, xOff, lftX);\n\n\t\t\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\tlet x = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\tif (x == accX) {\n\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\n\t\t\t\t\t\tif (minY == inf)\n\t\t\t\t\t\t\tlineTo(stroke, x, outY);\n\n\t\t\t\t\t\tminY = min(outY, minY);\n\t\t\t\t\t\tmaxY = max(outY, maxY);\n\t\t\t\t\t}\n\t\t\t\t\telse if (!accGaps && dataY[i] === null)\n\t\t\t\t\t\taccGaps = true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet _addGap = false;\n\n\t\t\t\t\tif (minY != inf) {\n\t\t\t\t\t\tdrawAcc(stroke, accX, minY, maxY, outY);\n\t\t\t\t\t\toutX = drawnAtX = accX;\n\t\t\t\t\t}\n\t\t\t\t\telse if (accGaps) {\n\t\t\t\t\t\t_addGap = true;\n\t\t\t\t\t\taccGaps = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t\t\tlineTo(stroke, x, outY);\n\t\t\t\t\t\tminY = maxY = outY;\n\n\t\t\t\t\t\t// prior pixel can have data but still start a gap if ends with null\n\t\t\t\t\t\tif (x - accX > 1 && dataY[i - dir] === null)\n\t\t\t\t\t\t\t_addGap = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tminY = inf;\n\t\t\t\t\t\tmaxY = -inf;\n\n\t\t\t\t\t\tif (!accGaps && dataY[i] === null)\n\t\t\t\t\t\t\taccGaps = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t_addGap && addGap(gaps, outX, x);\n\n\t\t\t\t\taccX = x;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (minY != inf && minY != maxY && drawnAtX != accX)\n\t\t\t\tdrawAcc(stroke, accX, minY, maxY, outY);\n\n\t\t\tif (rgtX < xOff + xDim)\n\t\t\t\taddGap(gaps, rgtX, xOff + xDim);\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = round(valToPosY(series.fillTo(u, seriesIdx, series.min, series.max), scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, rgtX, fillTo);\n\t\t\t\tlineTo(fill, lftX, fillTo);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction spline(opts) {\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet moveTo, bezierCurveTo, lineTo;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tmoveTo = moveToH;\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tbezierCurveTo = bezierCurveToH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmoveTo = moveToV;\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tbezierCurveTo = bezierCurveToV;\n\t\t\t}\n\n\t\t\tconst _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet gaps = [];\n\t\t\tlet inGap = false;\n\t\t\tlet firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlet xCoords = [];\n\t\t\tlet yCoords = [];\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal = dataY[i];\n\t\t\t\tlet xVal = dataX[i];\n\t\t\t\tlet xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (yVal === null) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (inGap) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\tinGap = false;\n\t\t\t\t\t}\n\n\t\t\t\t\txCoords.push((prevXPos = xPos));\n\t\t\t\t\tyCoords.push(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _paths = {stroke: catmullRomFitting(xCoords, yCoords, 0.5, moveTo, bezierCurveTo), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\tlet minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\n\t\t\t//  if FEAT_PATHS: false in rollup.config.js\n\t\t\t//\tu.ctx.save();\n\t\t\t//\tu.ctx.beginPath();\n\t\t\t//\tu.ctx.rect(u.bbox.left, u.bbox.top, u.bbox.width, u.bbox.height);\n\t\t\t//\tu.ctx.clip();\n\t\t\t//\tu.ctx.strokeStyle = u.series[sidx].stroke;\n\t\t\t//\tu.ctx.stroke(stroke);\n\t\t\t//\tu.ctx.fillStyle = u.series[sidx].fill;\n\t\t\t//\tu.ctx.fill(fill);\n\t\t\t//\tu.ctx.restore();\n\t\t\t//\treturn null;\n\t\t});\n\t};\n}\n\n// adapted from https://gist.github.com/nicholaswmin/c2661eb11cad5671d816 (MIT)\n/**\n * Interpolates a Catmull-Rom Spline through a series of x/y points\n * Converts the CR Spline to Cubic Beziers for use with SVG items\n *\n * If 'alpha' is 0.5 then the 'Centripetal' variant is used\n * If 'alpha' is 1 then the 'Chordal' variant is used\n *\n */\nfunction catmullRomFitting(xCoords, yCoords, alpha, moveTo, bezierCurveTo) {\n\tconst path = new Path2D();\n\n\tconst dataLen = xCoords.length;\n\n\tlet p0x,\n\t\tp0y,\n\t\tp1x,\n\t\tp1y,\n\t\tp2x,\n\t\tp2y,\n\t\tp3x,\n\t\tp3y,\n\t\tbp1x,\n\t\tbp1y,\n\t\tbp2x,\n\t\tbp2y,\n\t\td1,\n\t\td2,\n\t\td3,\n\t\tA,\n\t\tB,\n\t\tN,\n\t\tM,\n\t\td3powA,\n\t\td2powA,\n\t\td3pow2A,\n\t\td2pow2A,\n\t\td1pow2A,\n\t\td1powA;\n\n\tmoveTo(path, round(xCoords[0]), round(yCoords[0]));\n\n\tfor (let i = 0; i < dataLen - 1; i++) {\n\t\tlet p0i = i == 0 ? 0 : i - 1;\n\n\t\tp0x = xCoords[p0i];\n\t\tp0y = yCoords[p0i];\n\n\t\tp1x = xCoords[i];\n\t\tp1y = yCoords[i];\n\n\t\tp2x = xCoords[i + 1];\n\t\tp2y = yCoords[i + 1];\n\n\t\tif (i + 2 < dataLen) {\n\t\t\tp3x = xCoords[i + 2];\n\t\t\tp3y = yCoords[i + 2];\n\t\t} else {\n\t\t\tp3x = p2x;\n\t\t\tp3y = p2y;\n\t\t}\n\n\t\td1 = sqrt(pow(p0x - p1x, 2) + pow(p0y - p1y, 2));\n\t\td2 = sqrt(pow(p1x - p2x, 2) + pow(p1y - p2y, 2));\n\t\td3 = sqrt(pow(p2x - p3x, 2) + pow(p2y - p3y, 2));\n\n\t\t// Catmull-Rom to Cubic Bezier conversion matrix\n\n\t\t// A = 2d1^2a + 3d1^a * d2^a + d3^2a\n\t\t// B = 2d3^2a + 3d3^a * d2^a + d2^2a\n\n\t\t// [   0\t\t\t 1\t\t\t0\t\t  0\t\t  ]\n\t\t// [   -d2^2a /N\t A/N\t\t  d1^2a /N   0\t\t  ]\n\t\t// [   0\t\t\t d3^2a /M\t B/M\t\t-d2^2a /M  ]\n\t\t// [   0\t\t\t 0\t\t\t1\t\t  0\t\t  ]\n\n\t\td3powA  = pow(d3, alpha);\n\t\td3pow2A = pow(d3, alpha * 2);\n\t\td2powA  = pow(d2, alpha);\n\t\td2pow2A = pow(d2, alpha * 2);\n\t\td1powA  = pow(d1, alpha);\n\t\td1pow2A = pow(d1, alpha * 2);\n\n\t\tA = 2 * d1pow2A + 3 * d1powA * d2powA + d2pow2A;\n\t\tB = 2 * d3pow2A + 3 * d3powA * d2powA + d2pow2A;\n\t\tN = 3 * d1powA * (d1powA + d2powA);\n\n\t\tif (N > 0)\n\t\t\tN = 1 / N;\n\n\t\tM = 3 * d3powA * (d3powA + d2powA);\n\n\t\tif (M > 0)\n\t\t\tM = 1 / M;\n\n\t\tbp1x = (-d2pow2A * p0x + A * p1x + d1pow2A * p2x) * N;\n\t\tbp1y = (-d2pow2A * p0y + A * p1y + d1pow2A * p2y) * N;\n\n\t\tbp2x = (d3pow2A * p1x + B * p2x - d2pow2A * p3x) * M;\n\t\tbp2y = (d3pow2A * p1y + B * p2y - d2pow2A * p3y) * M;\n\n\t\tif (bp1x == 0 && bp1y == 0) {\n\t\t\tbp1x = p1x;\n\t\t\tbp1y = p1y;\n\t\t}\n\n\t\tif (bp2x == 0 && bp2y == 0) {\n\t\t\tbp2x = p2x;\n\t\t\tbp2y = p2y;\n\t\t}\n\n\t\tbezierCurveTo(path, bp1x, bp1y, bp2x, bp2y, p2x, p2y);\n\t}\n\n\treturn path;\n}\n\nfunction stepped(opts) {\n\tconst align = ifNull(opts.align, 1);\n\t// whether to draw ascenders/descenders at null/gap bondaries\n\tconst ascDesc = ifNull(opts.ascDesc, false);\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tconst _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet gaps = [];\n\t\t\tlet inGap = false;\n\t\t\tlet prevYPos  = round(valToPosY(dataY[_dir == 1 ? idx0 : idx1], scaleY, yDim, yOff));\n\t\t\tlet firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlineTo(stroke, firstXPos, prevYPos);\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal1 = dataY[i];\n\n\t\t\t\tlet x1 = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\tif (yVal1 == null) {\n\t\t\t\t\tif (yVal1 === null) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet y1 = round(valToPosY(yVal1, scaleY, yDim, yOff));\n\n\t\t\t\tif (inGap) {\n\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\n\t\t\t\t\t// don't clip vertical extenders\n\t\t\t\t\tif (prevYPos != y1) {\n\t\t\t\t\t\tlet halfStroke = (series.width * pxRatio) / 2;\n\n\t\t\t\t\t\tlet lastGap = gaps[gaps.length - 1];\n\n\t\t\t\t\t\tlastGap[0] += (ascDesc || align ==  1) ? halfStroke : -halfStroke;\n\t\t\t\t\t\tlastGap[1] -= (ascDesc || align == -1) ? halfStroke : -halfStroke;\n\t\t\t\t\t}\n\n\t\t\t\t\tinGap = false;\n\t\t\t\t}\n\n\t\t\t\tif (align == 1)\n\t\t\t\t\tlineTo(stroke, x1, prevYPos);\n\t\t\t\telse\n\t\t\t\t\tlineTo(stroke, prevXPos, y1);\n\n\t\t\t\tlineTo(stroke, x1, y1);\n\n\t\t\t\tprevYPos = y1;\n\t\t\t\tprevXPos = x1;\n\t\t\t}\n\n\t\t\tif (series.fill != null) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\tlet minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps)\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\n\t\t\tif (u.bands.length > 0) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction bars(opts) {\n\topts = opts || EMPTY_OBJ;\n\tconst size = ifNull(opts.size, [0.6, inf]);\n\tconst align = opts.align || 0;\n\n\tconst gapFactor = 1 - size[0];\n\tconst maxWidth  = ifNull(size[1], inf) * pxRatio;\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet rect = scaleX.ori == 0 ? rectH : rectV;\n\n\t\t\tlet colWid = valToPosX(dataX[1], scaleX, xDim, xOff) - valToPosX(dataX[0], scaleX, xDim, xOff);\n\n\t\t\tlet gapWid = colWid * gapFactor;\n\n\t\t\tlet fillToY = series.fillTo(u, seriesIdx, series.min, series.max);\n\n\t\t\tlet y0Pos = valToPosY(fillToY, scaleY, yDim, yOff);\n\n\t\t\tlet strokeWidth = round(series.width * pxRatio);\n\n\t\t\tlet barWid = round(min(maxWidth, colWid - gapWid) - strokeWidth);\n\n\t\t\tlet xShift = align == 1 ? 0 : align == -1 ? barWid : barWid / 2;\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\n\t\t\tconst hasBands = u.bands.length > 0;\n\t\t\tlet yLimit;\n\n\t\t\tif (hasBands) {\n\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t_paths.band = new Path2D();\n\t\t\t\tyLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\t\t\t}\n\n\t\t\tconst stroke = _paths.stroke;\n\t\t\tconst band = _paths.band;\n\n\t\t\tconst _dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tfor (let i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\tlet yVal = dataY[i];\n\n\t\t\t\t// interpolate upwards band clips\n\t\t\t\tif (yVal == null) {\n\t\t\t\t\tif (hasBands) {\n\t\t\t\t\t\t// simple, but inefficient bi-directinal linear scans on each iteration\n\t\t\t\t\t\tlet prevNonNull = nonNullIdx(dataY, _dir == 1 ? idx0 : idx1, i, -_dir);\n\t\t\t\t\t\tlet nextNonNull = nonNullIdx(dataY, i, _dir == 1 ? idx1 : idx0,  _dir);\n\n\t\t\t\t\t\tlet prevVal = dataY[prevNonNull];\n\t\t\t\t\t\tlet nextVal = dataY[nextNonNull];\n\n\t\t\t\t\t\tyVal = prevVal + (i - prevNonNull) / (nextNonNull - prevNonNull) * (nextVal - prevVal);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet xVal = scaleX.distr == 2 ? i : dataX[i];\n\n\t\t\t\t// TODO: all xPos can be pre-computed once for all series in aligned set\n\t\t\t\tlet xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\t\t\t\tlet yPos = valToPosY(yVal, scaleY, yDim, yOff);\n\n\t\t\t\tlet lft = round(xPos - xShift);\n\t\t\t\tlet btm = round(max(yPos, y0Pos));\n\t\t\t\tlet top = round(min(yPos, y0Pos));\n\t\t\t\tlet barHgt = btm - top;\n\n\t\t\t\tdataY[i] != null && rect(stroke, lft, top, barWid, barHgt);\n\n\t\t\t\tif (hasBands) {\n\t\t\t\t\tbtm = top;\n\t\t\t\t\ttop = yLimit;\n\t\t\t\t\tbarHgt = btm - top;\n\t\t\t\t\trect(band, lft, top, barWid, barHgt);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (series.fill != null)\n\t\t\t\t_paths.fill = new Path2D(stroke);\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nconst linearPath = linear() ;\n\nfunction setDefaults(d, xo, yo, initY) {\n\tlet d2 = initY ? [d[0], d[1]].concat(d.slice(2)) : [d[0]].concat(d.slice(1));\n\treturn d2.map((o, i) => setDefault(o, i, xo, yo));\n}\n\nfunction setDefault(o, i, xo, yo) {\n\treturn assign({}, (i == 0 ? xo : yo), o);\n}\n\nconst nullMinMax = [null, null];\n\nfunction snapNumX(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullMinMax : [dataMin, dataMax];\n}\n\nconst snapTimeX = snapNumX;\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction snapNumY(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, 0.1, true);\n}\n\nfunction snapLogY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullMinMax : rangeLog(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapLogX = snapLogY;\n\nfunction snapAsinhY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullMinMax : rangeAsinh(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapAsinhX = snapAsinhY;\n\n// dim is logical (getClientBoundingRect) pixels, not canvas pixels\nfunction findIncr(min, max, incrs, dim, minSpace) {\n\tlet pxPerUnit = dim / (max - min);\n\n\tlet minDec = (\"\"+floor(min)).length;\n\n\tfor (var i = 0; i < incrs.length; i++) {\n\t\tlet space = incrs[i] * pxPerUnit;\n\n\t\tlet incrDec = incrs[i] < 10 ? fixedDec.get(incrs[i]) : 0;\n\n\t\tif (space >= minSpace && minDec + incrDec < 17)\n\t\t\treturn [incrs[i], space];\n\t}\n\n\treturn [0, 0];\n}\n\nfunction pxRatioFont(font) {\n\tlet fontSize;\n\tfont = font.replace(/(\\d+)px/, (m, p1) => (fontSize = round(p1 * pxRatio)) + 'px');\n\treturn [font, fontSize];\n}\n\nfunction uPlot(opts, data, then) {\n\tconst self = {};\n\n\t// TODO: cache denoms & mins scale.cache = {r, min, }\n\tfunction getValPct(val, scale) {\n\t\tlet _val = (\n\t\t\tscale.distr == 3 ? log10(val > 0 ? val : scale.clamp(self, val, scale.min, scale.max, scale.key)) :\n\t\t\tscale.distr == 4 ? asinh(val, scale.asinh) :\n\t\t\tval\n\t\t);\n\n\t\treturn (_val - scale._min) / (scale._max - scale._min);\n\t}\n\n\tfunction getHPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? (1 - pct) : pct);\n\t}\n\n\tfunction getVPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? pct : (1 - pct));\n\t}\n\n\tfunction getPos(val, scale, dim, off) {\n\t\treturn scale.ori == 0 ? getHPos(val, scale, dim, off) : getVPos(val, scale, dim, off);\n\t}\n\n\tself.valToPosH = getHPos;\n\tself.valToPosV = getVPos;\n\n\tlet ready = false;\n\tself.status = 0;\n\n\tconst root = self.root = placeDiv(UPLOT);\n\n\tif (opts.id != null)\n\t\troot.id = opts.id;\n\n\taddClass(root, opts.class);\n\n\tif (opts.title) {\n\t\tlet title = placeDiv(TITLE, root);\n\t\ttitle.textContent = opts.title;\n\t}\n\n\tconst can = placeTag(\"canvas\");\n\tconst ctx = self.ctx = can.getContext(\"2d\");\n\n\tconst wrap = placeDiv(WRAP, root);\n\tconst under = placeDiv(UNDER, wrap);\n\twrap.appendChild(can);\n\tconst over = placeDiv(OVER, wrap);\n\n\topts = copy(opts);\n\n\tconst pxAlign = ifNull(opts.pxAlign, true);\n\n\t(opts.plugins || []).forEach(p => {\n\t\tif (p.opts)\n\t\t\topts = p.opts(self, opts) || opts;\n\t});\n\n\tconst ms = opts.ms || 1e-3;\n\n\tconst series  = self.series = setDefaults(opts.series || [], xSeriesOpts, ySeriesOpts, false);\n\tconst axes    = self.axes   = setDefaults(opts.axes   || [], xAxisOpts,   yAxisOpts,    true);\n\tconst scales  = self.scales = {};\n\tconst bands   = self.bands  = opts.bands || [];\n\n\tbands.forEach(b => {\n\t\tb.fill = fnOrSelf(b.fill || null);\n\t});\n\n\tconst xScaleKey = series[0].scale;\n\n\tconst drawOrderMap = {\n\t\taxes: drawAxesGrid,\n\t\tseries: drawSeries,\n\t};\n\n\tconst drawOrder = (opts.drawOrder || [\"axes\", \"series\"]).map(key => drawOrderMap[key]);\n\n\tfunction initScale(scaleKey) {\n\t\tlet sc = scales[scaleKey];\n\n\t\tif (sc == null) {\n\t\t\tlet scaleOpts = (opts.scales || EMPTY_OBJ)[scaleKey] || EMPTY_OBJ;\n\n\t\t\tif (scaleOpts.from != null) {\n\t\t\t\t// ensure parent is initialized\n\t\t\t\tinitScale(scaleOpts.from);\n\t\t\t\t// dependent scales inherit\n\t\t\t\tscales[scaleKey] = assign({}, scales[scaleOpts.from], scaleOpts);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsc = scales[scaleKey] = assign({}, (scaleKey == xScaleKey ? xScaleOpts : yScaleOpts), scaleOpts);\n\n\t\t\t\tsc.key = scaleKey;\n\n\t\t\t\tlet isTime = sc.time;\n\n\t\t\t\tlet rn = sc.range;\n\n\t\t\t\tlet rangeIsArr = isArr(rn);\n\n\t\t\t\tif (scaleKey != xScaleKey && !rangeIsArr && isObj(rn)) {\n\t\t\t\t\tlet cfg = rn;\n\t\t\t\t\t// this is similar to snapNumY\n\t\t\t\t\trn = (self, dataMin, dataMax) => dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, cfg);\n\t\t\t\t}\n\n\t\t\t\tsc.range = fnOrSelf(rn || (isTime ? snapTimeX : scaleKey == xScaleKey ?\n\t\t\t\t\t(sc.distr == 3 ? snapLogX : sc.distr == 4 ? snapAsinhX : snapNumX) :\n\t\t\t\t\t(sc.distr == 3 ? snapLogY : sc.distr == 4 ? snapAsinhY : snapNumY)\n\t\t\t\t));\n\n\t\t\t\tsc.auto = fnOrSelf(rangeIsArr ? false : sc.auto);\n\n\t\t\t\tsc.clamp = fnOrSelf(sc.clamp || clampScale);\n\n\t\t\t\t// caches for expensive ops like asinh() & log()\n\t\t\t\tsc._min = sc._max = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tinitScale(\"x\");\n\tinitScale(\"y\");\n\n\tseries.forEach(s => {\n\t\tinitScale(s.scale);\n\t});\n\n\taxes.forEach(a => {\n\t\tinitScale(a.scale);\n\t});\n\n\tfor (let k in opts.scales)\n\t\tinitScale(k);\n\n\tconst scaleX = scales[xScaleKey];\n\n\tconst xScaleDistr = scaleX.distr;\n\n\tlet valToPosX, valToPosY, moveTo, arc;\n\n\tif (scaleX.ori == 0) {\n\t\taddClass(root, ORI_HZ);\n\t\tvalToPosX = getHPos;\n\t\tvalToPosY = getVPos;\n\t\tmoveTo    = moveToH;\n\t\tarc       = arcH;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotWid;\n\t\t\txOffCan = plotLft;\n\t\t\tyDimCan = plotHgt;\n\t\t\tyOffCan = plotTop;\n\n\t\t\txDimCss = plotWidCss;\n\t\t\txOffCss = plotLftCss;\n\t\t\tyDimCss = plotHgtCss;\n\t\t\tyOffCss = plotTopCss;\n\t\t};\n\t\t*/\n\t}\n\telse {\n\t\taddClass(root, ORI_VT);\n\t\tvalToPosX = getVPos;\n\t\tvalToPosY = getHPos;\n\t\tmoveTo    = moveToV;\n\t\tarc       = arcV;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotHgt;\n\t\t\txOffCan = plotTop;\n\t\t\tyDimCan = plotWid;\n\t\t\tyOffCan = plotLft;\n\n\t\t\txDimCss = plotHgtCss;\n\t\t\txOffCss = plotTopCss;\n\t\t\tyDimCss = plotWidCss;\n\t\t\tyOffCss = plotLftCss;\n\t\t};\n\t\t*/\n\t}\n\n\tconst pendScales = {};\n\n\t// explicitly-set initial scales\n\tfor (let k in scales) {\n\t\tlet sc = scales[k];\n\n\t\tif (sc.min != null || sc.max != null) {\n\t\t\tpendScales[k] = {min: sc.min, max: sc.max};\n\t\t\tsc.min = sc.max = null;\n\t\t}\n\t}\n\n//\tself.tz = opts.tz || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\tconst _tzDate  = (opts.tzDate || (ts => new Date(ts / ms)));\n\tconst _fmtDate = (opts.fmtDate || fmtDate);\n\n\tconst _timeAxisSplits = (ms == 1 ? timeAxisSplitsMs(_tzDate) : timeAxisSplitsS(_tzDate));\n\tconst _timeAxisVals   = timeAxisVals(_tzDate, timeAxisStamps((ms == 1 ? _timeAxisStampsMs : _timeAxisStampsS), _fmtDate));\n\tconst _timeSeriesVal  = timeSeriesVal(_tzDate, timeSeriesStamp(_timeSeriesStamp, _fmtDate));\n\n\tconst legend     = assign({show: true, live: true}, opts.legend);\n\tconst showLegend = legend.show;\n\n\t{\n\t\tlegend.width  = fnOrSelf(ifNull(legend.width, legendWidth));\n\t\tlegend.dash   = fnOrSelf(legend.dash   || legendDash);\n\t\tlegend.stroke = fnOrSelf(legend.stroke || legendStroke);\n\t\tlegend.fill   = fnOrSelf(legend.fill   || legendFill);\n\t}\n\n\tlet legendEl;\n\tlet legendRows = [];\n\tlet legendCols;\n\tlet multiValLegend = false;\n\n\tif (showLegend) {\n\t\tlegendEl = placeTag(\"table\", LEGEND, root);\n\n\t\tconst getMultiVals = series[1] ? series[1].values : null;\n\t\tmultiValLegend = getMultiVals != null;\n\n\t\tif (multiValLegend) {\n\t\t\tlet head = placeTag(\"tr\", LEGEND_THEAD, legendEl);\n\t\t\tplaceTag(\"th\", null, head);\n\t\t\tlegendCols = getMultiVals(self, 1, 0);\n\n\t\t\tfor (var key in legendCols)\n\t\t\t\tplaceTag(\"th\", LEGEND_LABEL, head).textContent = key;\n\t\t}\n\t\telse {\n\t\t\tlegendCols = {_: 0};\n\t\t\taddClass(legendEl, LEGEND_INLINE);\n\t\t\tlegend.live && addClass(legendEl, LEGEND_LIVE);\n\t\t}\n\t}\n\n\tfunction initLegendRow(s, i) {\n\t\tif (i == 0 && (multiValLegend || !legend.live))\n\t\t\treturn null;\n\n\t\tlet _row = [];\n\n\t\tlet row = placeTag(\"tr\", LEGEND_SERIES, legendEl, legendEl.childNodes[i]);\n\n\t\taddClass(row, s.class);\n\n\t\tif (!s.show)\n\t\t\taddClass(row, OFF);\n\n\t\tlet label = placeTag(\"th\", null, row);\n\n\t\tlet indic = placeDiv(LEGEND_MARKER, label);\n\n\t\tif (i > 0) {\n\t\t\tlet width  = legend.width(self, i);\n\n\t\t\tif (width)\n\t\t\t\tindic.style.border = width + \"px \" + legend.dash(self, i) + \" \" + legend.stroke(self, i);\n\n\t\t\tindic.style.background = legend.fill(self, i);\n\t\t}\n\n\t\tlet text = placeDiv(LEGEND_LABEL, label);\n\t\ttext.textContent = s.label;\n\n\t\tif (i > 0) {\n\t\t\tonMouse(\"click\", label, e => {\n\t\t\t\tif (cursor._lock)\n\t\t\t\t\treturn;\n\n\t\t\t\tsetSeries(series.indexOf(s), {show: !s.show}, syncOpts.setSeries);\n\t\t\t});\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tonMouse(mouseenter, label, e => {\n\t\t\t\t\tif (cursor._lock)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\tsetSeries(series.indexOf(s), FOCUS_TRUE, syncOpts.setSeries);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (var key in legendCols) {\n\t\t\tlet v = placeTag(\"td\", LEGEND_VALUE, row);\n\t\t\tv.textContent = \"--\";\n\t\t\t_row.push(v);\n\t\t}\n\n\t\treturn _row;\n\t}\n\n\tconst mouseListeners = new Map();\n\n\tfunction onMouse(ev, targ, fn) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\t\tconst listener = cursor.bind[ev](self, targ, fn);\n\n\t\tif (listener) {\n\t\t\ton(ev, targ, targListeners[ev] = listener);\n\t\t\tmouseListeners.set(targ, targListeners);\n\t\t}\n\t}\n\n\tfunction offMouse(ev, targ, fn) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\t\toff(ev, targ, targListeners[ev]);\n\t\ttargListeners[ev] = null;\n\t}\n\n\tlet fullWidCss = 0;\n\tlet fullHgtCss = 0;\n\n\tlet plotWidCss = 0;\n\tlet plotHgtCss = 0;\n\n\t// plot margins to account for axes\n\tlet plotLftCss = 0;\n\tlet plotTopCss = 0;\n\n\tlet plotLft = 0;\n\tlet plotTop = 0;\n\tlet plotWid = 0;\n\tlet plotHgt = 0;\n\n\tself.bbox = {};\n\n\tlet shouldSetScales = false;\n\tlet shouldSetSize = false;\n\tlet shouldConvergeSize = false;\n\tlet shouldSetCursor = false;\n\tlet shouldSetLegend = false;\n\n\tfunction _setSize(width, height) {\n\t\tif (width != self.width || height != self.height)\n\t\t\tcalcSize(width, height);\n\n\t\tresetYSeries(false);\n\n\t\tshouldConvergeSize = true;\n\t\tshouldSetSize = true;\n\t\tshouldSetCursor = true;\n\t\tshouldSetLegend = true;\n\t\tcommit();\n\t}\n\n\tfunction calcSize(width, height) {\n\t//\tlog(\"calcSize()\", arguments);\n\n\t\tself.width  = fullWidCss = plotWidCss = width;\n\t\tself.height = fullHgtCss = plotHgtCss = height;\n\t\tplotLftCss  = plotTopCss = 0;\n\n\t\tcalcPlotRect();\n\t\tcalcAxesRects();\n\n\t\tlet bb = self.bbox;\n\n\t\tplotLft = bb.left   = incrRound(plotLftCss * pxRatio, 0.5);\n\t\tplotTop = bb.top    = incrRound(plotTopCss * pxRatio, 0.5);\n\t\tplotWid = bb.width  = incrRound(plotWidCss * pxRatio, 0.5);\n\t\tplotHgt = bb.height = incrRound(plotHgtCss * pxRatio, 0.5);\n\n\t//\tupdOriDims();\n\t}\n\n\tfunction convergeSize() {\n\t\tlet converged = false;\n\n\t\tlet cycleNum = 0;\n\n\t\twhile (!converged) {\n\t\t\tcycleNum++;\n\n\t\t\tlet axesConverged = axesCalc(cycleNum);\n\t\t\tlet paddingConverged = paddingCalc(cycleNum);\n\n\t\t\tconverged = axesConverged && paddingConverged;\n\n\t\t\tif (!converged) {\n\t\t\t\tcalcSize(self.width, self.height);\n\t\t\t\tshouldSetSize = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setSize({width, height}) {\n\t\t_setSize(width, height);\n\t}\n\n\tself.setSize = setSize;\n\n\t// accumulate axis offsets, reduce canvas width\n\tfunction calcPlotRect() {\n\t\t// easements for edge labels\n\t\tlet hasTopAxis = false;\n\t\tlet hasBtmAxis = false;\n\t\tlet hasRgtAxis = false;\n\t\tlet hasLftAxis = false;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet {side, _size} = axis;\n\t\t\t\tlet isVt = side % 2;\n\t\t\t\tlet labelSize = axis.labelSize = (axis.label != null ? (axis.labelSize || 30) : 0);\n\n\t\t\t\tlet fullSize = _size + labelSize;\n\n\t\t\t\tif (fullSize > 0) {\n\t\t\t\t\tif (isVt) {\n\t\t\t\t\t\tplotWidCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 3) {\n\t\t\t\t\t\t\tplotLftCss += fullSize;\n\t\t\t\t\t\t\thasLftAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasRgtAxis = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tplotHgtCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 0) {\n\t\t\t\t\t\t\tplotTopCss += fullSize;\n\t\t\t\t\t\t\thasTopAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasBtmAxis = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsidesWithAxes[0] = hasTopAxis;\n\t\tsidesWithAxes[1] = hasRgtAxis;\n\t\tsidesWithAxes[2] = hasBtmAxis;\n\t\tsidesWithAxes[3] = hasLftAxis;\n\n\t\t// hz padding\n\t\tplotWidCss -= _padding[1] + _padding[3];\n\t\tplotLftCss += _padding[3];\n\n\t\t// vt padding\n\t\tplotHgtCss -= _padding[2] + _padding[0];\n\t\tplotTopCss += _padding[0];\n\t}\n\n\tfunction calcAxesRects() {\n\t\t// will accum +\n\t\tlet off1 = plotLftCss + plotWidCss;\n\t\tlet off2 = plotTopCss + plotHgtCss;\n\t\t// will accum -\n\t\tlet off3 = plotLftCss;\n\t\tlet off0 = plotTopCss;\n\n\t\tfunction incrOffset(side, size) {\n\n\t\t\tswitch (side) {\n\t\t\t\tcase 1: off1 += size; return off1 - size;\n\t\t\t\tcase 2: off2 += size; return off2 - size;\n\t\t\t\tcase 3: off3 -= size; return off3 + size;\n\t\t\t\tcase 0: off0 -= size; return off0 + size;\n\t\t\t}\n\t\t}\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet side = axis.side;\n\n\t\t\t\taxis._pos = incrOffset(side, axis._size);\n\n\t\t\t\tif (axis.label != null)\n\t\t\t\t\taxis._lpos = incrOffset(side, axis.labelSize);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst cursor = (self.cursor = assign({}, cursorOpts, opts.cursor));\n\n\t{\n\t\tcursor._lock = false;\n\n\t\tlet points = cursor.points;\n\n\t\tpoints.show   = fnOrSelf(points.show);\n\t\tpoints.size   = fnOrSelf(points.size);\n\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\tpoints.width  = fnOrSelf(points.width);\n\t\tpoints.fill   = fnOrSelf(points.fill);\n\t}\n\n\tconst focus = self.focus = assign({}, opts.focus || {alpha: 0.3}, cursor.focus);\n\tconst cursorFocus = focus.prox >= 0;\n\n\t// series-intersection markers\n\tlet cursorPts = [null];\n\n\tfunction initCursorPt(s, si) {\n\t\tif (si > 0) {\n\t\t\tlet pt = cursor.points.show(self, si);\n\n\t\t\tif (pt) {\n\t\t\t\taddClass(pt, CURSOR_PT);\n\t\t\t\taddClass(pt, s.class);\n\t\t\t\ttrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\tover.insertBefore(pt, cursorPts[si]);\n\n\t\t\t\treturn pt;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction initSeries(s, i) {\n\t\tlet isTime = scales[s.scale].time;\n\n\t\tlet sv = s.value;\n\t\ts.value = isTime ? (isStr(sv) ? timeSeriesVal(_tzDate, timeSeriesStamp(sv, _fmtDate)) : sv || _timeSeriesVal) : sv || numSeriesVal;\n\t\ts.label = s.label || (isTime ? timeSeriesLabel : numSeriesLabel);\n\n\t\tif (i > 0) {\n\t\t\ts.width  = s.width == null ? 1 : s.width;\n\t\t\ts.paths  = s.paths || linearPath || retNull;\n\t\t\ts.fillTo = fnOrSelf(s.fillTo || seriesFillTo);\n\t\t\ts.pxAlign = ifNull(s.pxAlign, true);\n\n\t\t\ts.stroke = fnOrSelf(s.stroke || null);\n\t\t\ts.fill   = fnOrSelf(s.fill || null);\n\t\t\ts._stroke = s._fill = s._paths = s._focus = null;\n\n\t\t\tlet _ptDia = ptDia(s.width, 1);\n\t\t\tlet points = s.points = assign({}, {\n\t\t\t\tsize: _ptDia,\n\t\t\t\twidth: max(1, _ptDia * .2),\n\t\t\t\tstroke: s.stroke,\n\t\t\t\tspace: _ptDia * 2,\n\t\t\t\t_stroke: null,\n\t\t\t\t_fill: null,\n\t\t\t}, s.points);\n\t\t\tpoints.show   = fnOrSelf(points.show);\n\t\t\tpoints.fill   = fnOrSelf(points.fill);\n\t\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\t}\n\n\t\tif (showLegend)\n\t\t\tlegendRows.splice(i, 0, initLegendRow(s, i));\n\n\t\tif (cursor.show) {\n\t\t\tlet pt = initCursorPt(s, i);\n\t\t\tpt && cursorPts.splice(i, 0, pt);\n\t\t}\n\t}\n\n\tfunction addSeries(opts, si) {\n\t\tsi = si == null ? series.length : si;\n\n\t\topts = setDefault(opts, si, xSeriesOpts, ySeriesOpts);\n\t\tseries.splice(si, 0, opts);\n\t\tinitSeries(series[si], si);\n\t}\n\n\tself.addSeries = addSeries;\n\n\tfunction delSeries(i) {\n\t\tseries.splice(i, 1);\n\t\tshowLegend && legendRows.splice(i, 1)[0][0].parentNode.remove();\n\t\tcursorPts.length > 1 && cursorPts.splice(i, 1)[0].remove();\n\n\t\t// TODO: de-init no-longer-needed scales?\n\t}\n\n\tself.delSeries = delSeries;\n\n\tseries.forEach(initSeries);\n\n\tconst sidesWithAxes = [false, false, false, false];\n\n\tfunction initAxis(axis, i) {\n\t\taxis._show = axis.show;\n\n\t\tif (axis.show) {\n\t\t\tlet isVt = axis.side % 2;\n\n\t\t\tlet sc = scales[axis.scale];\n\n\t\t\t// this can occur if all series specify non-default scales\n\t\t\tif (sc == null) {\n\t\t\t\taxis.scale = isVt ? series[1].scale : xScaleKey;\n\t\t\t\tsc = scales[axis.scale];\n\t\t\t}\n\n\t\t\t// also set defaults for incrs & values based on axis distr\n\t\t\tlet isTime = sc.time;\n\n\t\t\taxis.size   = fnOrSelf(axis.size);\n\t\t\taxis.space  = fnOrSelf(axis.space);\n\t\t\taxis.rotate = fnOrSelf(axis.rotate);\n\t\t\taxis.incrs  = fnOrSelf(axis.incrs  || (          sc.distr == 2 ? wholeIncrs : (isTime ? (ms == 1 ? timeIncrsMs : timeIncrsS) : numIncrs)));\n\t\t\taxis.splits = fnOrSelf(axis.splits || (isTime && sc.distr == 1 ? _timeAxisSplits : sc.distr == 3 ? logAxisSplits : sc.distr == 4 ? asinhAxisSplits : numAxisSplits));\n\n\t\t\taxis.stroke       = fnOrSelf(axis.stroke);\n\t\t\taxis.grid.stroke  = fnOrSelf(axis.grid.stroke);\n\t\t\taxis.ticks.stroke = fnOrSelf(axis.ticks.stroke);\n\n\t\t\tlet av = axis.values;\n\n\t\t\taxis.values = (\n\t\t\t\tisTime ? (\n\t\t\t\t\tisArr(av) ?\n\t\t\t\t\t\ttimeAxisVals(_tzDate, timeAxisStamps(av, _fmtDate)) :\n\t\t\t\t\tisStr(av) ?\n\t\t\t\t\t\ttimeAxisVal(_tzDate, av) :\n\t\t\t\t\tav || _timeAxisVals\n\t\t\t\t) : av || numAxisVals\n\t\t\t);\n\n\t\t\taxis.filter = fnOrSelf(axis.filter || (          sc.distr >= 3 ? logAxisValsFilt : retArg1));\n\n\t\t\taxis.font      = pxRatioFont(axis.font);\n\t\t\taxis.labelFont = pxRatioFont(axis.labelFont);\n\n\t\t\taxis._size   = axis.size(self, null, i, 0);\n\n\t\t\taxis._space  =\n\t\t\taxis._rotate =\n\t\t\taxis._incrs  =\n\t\t\taxis._found  =\t// foundIncrSpace\n\t\t\taxis._splits =\n\t\t\taxis._values = null;\n\n\t\t\tif (axis._size > 0)\n\t\t\t\tsidesWithAxes[i] = true;\n\t\t}\n\t}\n\n\t// set axis defaults\n\taxes.forEach(initAxis);\n\n\tfunction autoPadSide(self, side, sidesWithAxes, cycleNum) {\n\t\tlet [hasTopAxis, hasRgtAxis, hasBtmAxis, hasLftAxis] = sidesWithAxes;\n\n\t\tlet ori = side % 2;\n\t\tlet size = 0;\n\n\t\tif (ori == 0 && (hasLftAxis || hasRgtAxis))\n\t\t\tsize = (side == 0 && !hasTopAxis || side == 2 && !hasBtmAxis ? round(xAxisOpts.size / 3) : 0);\n\t\tif (ori == 1 && (hasTopAxis || hasBtmAxis))\n\t\t\tsize = (side == 1 && !hasRgtAxis || side == 3 && !hasLftAxis ? round(yAxisOpts.size / 2) : 0);\n\n\t\treturn size;\n\t}\n\n\tconst padding = self.padding = (opts.padding || [autoPadSide,autoPadSide,autoPadSide,autoPadSide]).map(p => fnOrSelf(ifNull(p, autoPadSide)));\n\tconst _padding = self._padding = padding.map((p, i) => p(self, i, sidesWithAxes, 0));\n\n\tlet dataLen;\n\n\t// rendered data window\n\tlet i0 = null;\n\tlet i1 = null;\n\tconst idxs = series[0].idxs;\n\n\tlet data0 = null;\n\n\tlet viaAutoScaleX = false;\n\n\tfunction setData(_data, _resetScales) {\n\t\t_data = _data || [];\n\t\t_data[0] = _data[0] || [];\n\n\t\tself.data = _data;\n\t\tdata = _data.slice();\n\t\tdata0 = data[0];\n\t\tdataLen = data0.length;\n\n\t\tif (xScaleDistr == 2)\n\t\t\tdata[0] = data0.map((v, i) => i);\n\n\t\tself._data = data;\n\n\t\tresetYSeries(true);\n\n\t\tfire(\"setData\");\n\n\t\tif (_resetScales !== false) {\n\t\t\tlet xsc = scaleX;\n\n\t\t\tif (xsc.auto(self, viaAutoScaleX))\n\t\t\t\tautoScaleX();\n\t\t\telse\n\t\t\t\t_setScale(xScaleKey, xsc.min, xsc.max);\n\n\t\t\tshouldSetCursor = cursor.left >= 0;\n\t\t\tshouldSetLegend = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setData = setData;\n\n\tfunction autoScaleX() {\n\t\tviaAutoScaleX = true;\n\n\t\tlet _min, _max;\n\n\t\tif (dataLen > 0) {\n\t\t\ti0 = idxs[0] = 0;\n\t\t\ti1 = idxs[1] = dataLen - 1;\n\n\t\t\t_min = data[0][i0];\n\t\t\t_max = data[0][i1];\n\n\t\t\tif (xScaleDistr == 2) {\n\t\t\t\t_min = i0;\n\t\t\t\t_max = i1;\n\t\t\t}\n\t\t\telse if (dataLen == 1) {\n\t\t\t\tif (xScaleDistr == 3)\n\t\t\t\t\t[_min, _max] = rangeLog(_min, _min, scaleX.log, false);\n\t\t\t\telse if (xScaleDistr == 4)\n\t\t\t\t\t[_min, _max] = rangeAsinh(_min, _min, scaleX.log, false);\n\t\t\t\telse if (scaleX.time)\n\t\t\t\t\t_max = _min + 86400 / ms;\n\t\t\t\telse\n\t\t\t\t\t[_min, _max] = rangeNum(_min, _max, 0.1, true);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\ti0 = idxs[0] = _min = null;\n\t\t\ti1 = idxs[1] = _max = null;\n\t\t}\n\n\t\t_setScale(xScaleKey, _min, _max);\n\t}\n\n\tfunction setCtxStyle(stroke, width, dash, cap, fill) {\n\t\tctx.strokeStyle = stroke || transparent;\n\t\tctx.lineWidth = width;\n\t\tctx.lineJoin = \"round\";\n\t\tctx.lineCap = cap || \"butt\"; // (‿|‿)\n\t\tctx.setLineDash(dash || []);\n\t\tctx.fillStyle = fill || transparent;\n\t}\n\n\tfunction setScales() {\n\t//\tlog(\"setScales()\", arguments);\n\n\t\t// wip scales\n\t\tlet wipScales = copy(scales, fastIsObj);\n\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\t\t\tlet psc = pendScales[k];\n\n\t\t\tif (psc != null && psc.min != null) {\n\t\t\t\tassign(wsc, psc);\n\n\t\t\t\t// explicitly setting the x-scale invalidates everything (acts as redraw)\n\t\t\t\tif (k == xScaleKey)\n\t\t\t\t\tresetYSeries(true);\n\t\t\t}\n\t\t\telse if (k != xScaleKey) {\n\t\t\t\tif (dataLen == 0 && wsc.from == null) {\n\t\t\t\t\tlet minMax = wsc.range(self, null, null, k);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\twsc.min = inf;\n\t\t\t\t\twsc.max = -inf;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dataLen > 0) {\n\t\t\t// pre-range y-scales from y series' data values\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tlet k = s.scale;\n\t\t\t\tlet wsc = wipScales[k];\n\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\tif (i == 0) {\n\t\t\t\t\tlet minMax = wsc.range(self, wsc.min, wsc.max, k);\n\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\n\t\t\t\t\ti0 = closestIdx(wsc.min, data[0]);\n\t\t\t\t\ti1 = closestIdx(wsc.max, data[0]);\n\n\t\t\t\t\t// closest indices can be outside of view\n\t\t\t\t\tif (data[0][i0] < wsc.min)\n\t\t\t\t\t\ti0++;\n\t\t\t\t\tif (data[0][i1] > wsc.max)\n\t\t\t\t\t\ti1--;\n\n\t\t\t\t\ts.min = data0[i0];\n\t\t\t\t\ts.max = data0[i1];\n\t\t\t\t}\n\t\t\t\telse if (s.show && s.auto && wsc.auto(self, viaAutoScaleX) && (psc == null || psc.min == null)) {\n\t\t\t\t\t// only run getMinMax() for invalidated series data, else reuse\n\t\t\t\t\tlet minMax = s.min == null ? (wsc.distr == 3 ? getMinMaxLog(data[i], i0, i1) : getMinMax(data[i], i0, i1, s.sorted)) : [s.min, s.max];\n\n\t\t\t\t\t// initial min/max\n\t\t\t\t\twsc.min = min(wsc.min, s.min = minMax[0]);\n\t\t\t\t\twsc.max = max(wsc.max, s.max = minMax[1]);\n\t\t\t\t}\n\n\t\t\t\ts.idxs[0] = i0;\n\t\t\t\ts.idxs[1] = i1;\n\t\t\t});\n\n\t\t\t// range independent scales\n\t\t\tfor (let k in wipScales) {\n\t\t\t\tlet wsc = wipScales[k];\n\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\tif (wsc.from == null && (psc == null || psc.min == null)) {\n\t\t\t\t\tlet minMax = wsc.range(\n\t\t\t\t\t\tself,\n\t\t\t\t\t\twsc.min ==  inf ? null : wsc.min,\n\t\t\t\t\t\twsc.max == -inf ? null : wsc.max,\n\t\t\t\t\t\tk\n\t\t\t\t\t);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// range dependent scales\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\n\t\t\tif (wsc.from != null) {\n\t\t\t\tlet base = wipScales[wsc.from];\n\t\t\t\tlet minMax = wsc.range(self, base.min, base.max, k);\n\t\t\t\twsc.min = minMax[0];\n\t\t\t\twsc.max = minMax[1];\n\t\t\t}\n\t\t}\n\n\t\tlet changed = {};\n\t\tlet anyChanged = false;\n\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\t\t\tlet sc = scales[k];\n\n\t\t\tif (sc.min != wsc.min || sc.max != wsc.max) {\n\t\t\t\tsc.min = wsc.min;\n\t\t\t\tsc.max = wsc.max;\n\n\t\t\t\tlet distr = sc.distr;\n\n\t\t\t\tsc._min = distr == 3 ? log10(sc.min) : distr == 4 ? asinh(sc.min, sc.asinh) : sc.min;\n\t\t\t\tsc._max = distr == 3 ? log10(sc.max) : distr == 4 ? asinh(sc.max, sc.asinh) : sc.max;\n\n\t\t\t\tchanged[k] = anyChanged = true;\n\t\t\t}\n\t\t}\n\n\t\tif (anyChanged) {\n\t\t\t// invalidate paths of all series on changed scales\n\t\t\tseries.forEach(s => {\n\t\t\t\tif (changed[s.scale])\n\t\t\t\t\ts._paths = null;\n\t\t\t});\n\n\t\t\tfor (let k in changed) {\n\t\t\t\tshouldConvergeSize = true;\n\t\t\t\tfire(\"setScale\", k);\n\t\t\t}\n\n\t\t\tif (cursor.show)\n\t\t\t\tshouldSetCursor = cursor.left >= 0;\n\t\t}\n\n\t\tfor (let k in pendScales)\n\t\t\tpendScales[k] = null;\n\t}\n\n\t// TODO: drawWrap(si, drawPoints) (save, restore, translate, clip)\n\tfunction drawPoints(si) {\n\t//\tlog(\"drawPoints()\", arguments);\n\n\t\tlet s = series[si];\n\t\tlet p = s.points;\n\n\t\tconst width = roundDec(p.width * pxRatio, 3);\n\t\tconst offset = (width % 2) / 2;\n\t\tconst isStroked = p.width > 0;\n\n\t\tlet rad = (p.size - p.width) / 2 * pxRatio;\n\t\tlet dia = roundDec(rad * 2, 3);\n\n\t\tconst _pxAlign = pxAlign && s.pxAlign;\n\n\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\tctx.save();\n\n\t\tctx.beginPath();\n\t\tctx.rect(\n\t\t\tplotLft - dia,\n\t\t\tplotTop - dia,\n\t\t\tplotWid + dia * 2,\n\t\t\tplotHgt + dia * 2,\n\t\t);\n\t\tctx.clip();\n\n\t\tctx.globalAlpha = s.alpha;\n\n\t\tconst path = new Path2D();\n\n\t\tconst scaleY = scales[s.scale];\n\n\t\tlet xDim, xOff, yDim, yOff;\n\n\t\tif (scaleX.ori == 0) {\n\t\t\txDim = plotWid;\n\t\t\txOff = plotLft;\n\t\t\tyDim = plotHgt;\n\t\t\tyOff = plotTop;\n\t\t}\n\t\telse {\n\t\t\txDim = plotHgt;\n\t\t\txOff = plotTop;\n\t\t\tyDim = plotWid;\n\t\t\tyOff = plotLft;\n\t\t}\n\n\t\tfor (let pi = i0; pi <= i1; pi++) {\n\t\t\tif (data[si][pi] != null) {\n\t\t\t\tlet x = round(valToPosX(data[0][pi],  scaleX, xDim, xOff));\n\t\t\t\tlet y = round(valToPosY(data[si][pi], scaleY, yDim, yOff));\n\n\t\t\t\tmoveTo(path, x + rad, y);\n\t\t\t\tarc(path, x, y, rad, 0, PI * 2);\n\t\t\t}\n\t\t}\n\n\t\tconst _stroke = p._stroke = p.stroke(self, si);\n\t\tconst _fill   = p._fill   = p.fill(self, si);\n\n\t\tsetCtxStyle(\n\t\t\t_stroke,\n\t\t\twidth,\n\t\t\tp.dash,\n\t\t\tp.cap,\n\t\t\t_fill || (isStroked ? \"#fff\" : s._stroke),\n\t\t);\n\n\t\tctx.fill(path);\n\t\tisStroked && ctx.stroke(path);\n\n\t\tctx.globalAlpha = 1;\n\n\t\tctx.restore();\n\n\t\t_pxAlign && ctx.translate(-offset, -offset);\n\t}\n\n\t// grabs the nearest indices with y data outside of x-scale limits\n\tfunction getOuterIdxs(ydata) {\n\t\tlet _i0 = clamp(i0 - 1, 0, dataLen - 1);\n\t\tlet _i1 = clamp(i1 + 1, 0, dataLen - 1);\n\n\t\twhile (ydata[_i0] == null && _i0 > 0)\n\t\t\t_i0--;\n\n\t\twhile (ydata[_i1] == null && _i1 < dataLen - 1)\n\t\t\t_i1++;\n\n\t\treturn [_i0, _i1];\n\t}\n\n\tfunction drawSeries() {\n\t\tif (dataLen > 0) {\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show && s._paths == null) {\n\t\t\t\t\tlet _idxs = getOuterIdxs(data[i]);\n\t\t\t\t\ts._paths = s.paths(self, i, _idxs[0], _idxs[1]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tif (s._paths)\n\t\t\t\t\t\tdrawPath(i);\n\n\t\t\t\t\tif (s.points.show(self, i, i0, i1))\n\t\t\t\t\t\tdrawPoints(i);\n\n\t\t\t\t\tfire(\"drawSeries\", i);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction drawPath(si) {\n\t\tconst s = series[si];\n\n\t\tconst { stroke, fill, clip } = s._paths;\n\t\tconst width = roundDec(s.width * pxRatio, 3);\n\t\tconst offset = (width % 2) / 2;\n\n\t\tconst strokeStyle = s._stroke = s.stroke(self, si);\n\t\tconst fillStyle   = s._fill   = s.fill(self, si);\n\n\t\tctx.globalAlpha = s.alpha;\n\n\t\tconst _pxAlign = pxAlign && s.pxAlign;\n\n\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\tctx.save();\n\n\t\tlet lft = plotLft,\n\t\t\ttop = plotTop,\n\t\t\twid = plotWid,\n\t\t\thgt = plotHgt;\n\n\t\tlet halfWid = width * pxRatio / 2;\n\n\t\tif (s.min == 0)\n\t\t\thgt += halfWid;\n\n\t\tif (s.max == 0) {\n\t\t\ttop -= halfWid;\n\t\t\thgt += halfWid;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.rect(lft, top, wid, hgt);\n\t\tctx.clip();\n\n\t\tclip && ctx.clip(clip);\n\n\t\tfillStroke(si, strokeStyle, width, s.dash, s.cap, fillStyle, stroke, fill);\n\n\t\tctx.restore();\n\n\t\t_pxAlign && ctx.translate(-offset, -offset);\n\n\t\tctx.globalAlpha = 1;\n\t}\n\n\tfunction fillStroke(si, strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\tlet didStrokeFill = false;\n\n\t\t// for all bands where this series is the top edge, create upwards clips using the bottom edges\n\t\t// and apply clips + fill with band fill or dfltFill\n\t\tbands.forEach((b, bi) => {\n\t\t\t// isUpperEdge?\n\t\t\tif (b.series[0] == si) {\n\t\t\t\tlet lowerEdge = series[b.series[1]];\n\n\t\t\t\tlet clip = (lowerEdge._paths || EMPTY_OBJ).band;\n\n\t\t\t\tctx.save();\n\n\t\t\t\tlet _fillStyle = null;\n\n\t\t\t\t// hasLowerEdge?\n\t\t\t\tif (lowerEdge.show && clip) {\n\t\t\t\t\t_fillStyle = b.fill(self, bi) || fillStyle;\n\t\t\t\t\tctx.clip(clip);\n\t\t\t\t}\n\n\t\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, _fillStyle, strokePath, fillPath);\n\n\t\t\t\tctx.restore();\n\n\t\t\t\tdidStrokeFill = true;\n\t\t\t}\n\t\t});\n\n\t\tif (!didStrokeFill)\n\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath);\n\t}\n\n\tfunction strokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\tsetCtxStyle(strokeStyle, lineWidth, lineDash, lineCap, fillStyle);\n\t\tfillStyle   && fillPath                && ctx.fill(fillPath);\n\t\tstrokeStyle && strokePath && lineWidth && ctx.stroke(strokePath);\n\t}\n\n\tfunction getIncrSpace(axisIdx, min, max, fullDim) {\n\t\tlet axis = axes[axisIdx];\n\n\t\tlet incrSpace;\n\n\t\tif (fullDim <= 0)\n\t\t\tincrSpace = [0, 0];\n\t\telse {\n\t\t\tlet minSpace = axis._space = axis.space(self, axisIdx, min, max, fullDim);\n\t\t\tlet incrs    = axis._incrs = axis.incrs(self, axisIdx, min, max, fullDim, minSpace);\n\t\t\tincrSpace    = axis._found = findIncr(min, max, incrs, fullDim, minSpace);\n\t\t}\n\n\t\treturn incrSpace;\n\t}\n\n\tfunction drawOrthoLines(offs, filts, ori, side, pos0, len, width, stroke, dash, cap) {\n\t\tlet offset = (width % 2) / 2;\n\n\t\tpxAlign && ctx.translate(offset, offset);\n\n\t\tsetCtxStyle(stroke, width, dash, cap);\n\n\t\tctx.beginPath();\n\n\t\tlet x0, y0, x1, y1, pos1 = pos0 + (side == 0 || side == 3 ? -len : len);\n\n\t\tif (ori == 0) {\n\t\t\ty0 = pos0;\n\t\t\ty1 = pos1;\n\t\t}\n\t\telse {\n\t\t\tx0 = pos0;\n\t\t\tx1 = pos1;\n\t\t}\n\n\t\toffs.forEach((off, i) => {\n\t\t\tif (filts[i] == null)\n\t\t\t\treturn;\n\n\t\t\tif (ori == 0)\n\t\t\t\tx0 = x1 = off;\n\t\t\telse\n\t\t\t\ty0 = y1 = off;\n\n\t\t\tctx.moveTo(x0, y0);\n\t\t\tctx.lineTo(x1, y1);\n\t\t});\n\n\t\tctx.stroke();\n\n\t\tpxAlign && ctx.translate(-offset, -offset);\n\t}\n\n\tfunction axesCalc(cycleNum) {\n\t//\tlog(\"axesCalc()\", arguments);\n\n\t\tlet converged = true;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (!axis.show)\n\t\t\t\treturn;\n\n\t\t\tlet scale = scales[axis.scale];\n\n\t\t\tif (scale.min == null) {\n\t\t\t\tif (axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = false;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = true;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet {min, max} = scale;\t\t// \t\t// should this toggle them ._show = false\n\n\t\t\tlet [_incr, _space] = getIncrSpace(i, min, max, ori == 0 ? plotWidCss : plotHgtCss);\n\n\t\t\tif (_space == 0)\n\t\t\t\treturn;\n\n\t\t\t// if we're using index positions, force first tick to match passed index\n\t\t\tlet forceMin = scale.distr == 2;\n\n\t\t\tlet _splits = axis._splits = axis.splits(self, i, min, max, _incr, _space, forceMin);\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\tlet values = axis._values = axis.values(self, axis.filter(self, splits, i, _space, incr), i, _space, incr);\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\taxis._rotate = side == 2 ? axis.rotate(self, values, i, _space) : 0;\n\n\t\t\tlet oldSize = axis._size;\n\n\t\t\taxis._size = ceil(axis.size(self, values, i, cycleNum));\n\n\t\t\tif (oldSize != null && axis._size != oldSize)\t\t\t// ready && ?\n\t\t\t\tconverged = false;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction paddingCalc(cycleNum) {\n\t\tlet converged = true;\n\n\t\tpadding.forEach((p, i) => {\n\t\t\tlet _p = p(self, i, sidesWithAxes, cycleNum);\n\n\t\t\tif (_p != _padding[i])\n\t\t\t\tconverged = false;\n\n\t\t\t_padding[i] = _p;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction drawAxesGrid() {\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (!axis.show || !axis._show)\n\t\t\t\treturn;\n\n\t\t\tlet scale = scales[axis.scale];\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet plotDim = ori == 0 ? plotWid : plotHgt;\n\t\t\tlet plotOff = ori == 0 ? plotLft : plotTop;\n\n\t\t\tlet axisGap = round(axis.gap * pxRatio);\n\n\t\t\tlet ticks = axis.ticks;\n\t\t\tlet tickSize = ticks.show ? round(ticks.size * pxRatio) : 0;\n\n\t\t\tlet [_incr, _space] = axis._found;\n\t\t\tlet _splits = axis._splits;\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\tlet angle = axis._rotate * -PI/180;\n\n\t\t\tlet basePos  = round(axis._pos * pxRatio);\n\t\t\tlet shiftAmt = tickSize + axisGap;\n\t\t\tlet shiftDir = ori == 0 && side == 0 || ori == 1 && side == 3 ? -1 : 1;\n\t\t\tlet finalPos = basePos + shiftAmt * shiftDir;\n\t\t\tlet y        = ori == 0 ? finalPos : 0;\n\t\t\tlet x        = ori == 1 ? finalPos : 0;\n\n\t\t\tctx.font         = axis.font[0];\n\t\t\tctx.fillStyle    = axis.stroke(self, i);\t\t\t\t\t\t\t\t\t// rgba?\n\t\t\tctx.textAlign    = axis.align == 1 ? LEFT :\n\t\t\t                   axis.align == 2 ? RIGHT :\n\t\t\t                   angle > 0 ? LEFT :\n\t\t\t                   angle < 0 ? RIGHT :\n\t\t\t                   ori == 0 ? \"center\" : side == 3 ? RIGHT : LEFT;\n\t\t\tctx.textBaseline = angle ||\n\t\t\t                   ori == 1 ? \"middle\" : side == 2 ? TOP   : BOTTOM;\n\n\t\t\tlet lineHeight = axis.font[1] * lineMult;\n\n\t\t\tlet canOffs = _splits.map(val => round(getPos(val, scale, plotDim, plotOff)));\n\n\t\t\taxis._values.forEach((val, i) => {\n\t\t\t\tif (val == null)\n\t\t\t\t\treturn;\n\n\t\t\t\tif (ori == 0)\n\t\t\t\t\tx = canOffs[i];\n\t\t\t\telse\n\t\t\t\t\ty = canOffs[i];\n\n\t\t\t\t(\"\"+val).split(/\\n/gm).forEach((text, j) => {\n\t\t\t\t\tif (angle) {\n\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\tctx.translate(x, y + j * lineHeight);\n\t\t\t\t\t\tctx.rotate(angle);\n\t\t\t\t\t\tctx.fillText(text, 0, 0);\n\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tctx.fillText(text, x, y + j * lineHeight);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// axis label\n\t\t\tif (axis.label) {\n\t\t\t\tctx.save();\n\n\t\t\t\tlet baseLpos = round(axis._lpos * pxRatio);\n\n\t\t\t\tif (ori == 1) {\n\t\t\t\t\tx = y = 0;\n\n\t\t\t\t\tctx.translate(\n\t\t\t\t\t\tbaseLpos,\n\t\t\t\t\t\tround(plotTop + plotHgt / 2),\n\t\t\t\t\t);\n\t\t\t\t\tctx.rotate((side == 3 ? -PI : PI) / 2);\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = round(plotLft + plotWid / 2);\n\t\t\t\t\ty = baseLpos;\n\t\t\t\t}\n\n\t\t\t\tctx.font         = axis.labelFont[0];\n\t\t\t//\tctx.fillStyle    = axis.labelStroke || hexBlack;\t\t\t\t\t\t// rgba?\n\t\t\t\tctx.textAlign    = \"center\";\n\t\t\t\tctx.textBaseline = side == 2 ? TOP : BOTTOM;\n\n\t\t\t\tctx.fillText(axis.label, x, y);\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\n\t\t\t// ticks\n\t\t\tif (ticks.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tticks.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tside,\n\t\t\t\t\tbasePos,\n\t\t\t\t\ttickSize,\n\t\t\t\t\troundDec(ticks.width * pxRatio, 3),\n\t\t\t\t\tticks.stroke(self, i),\n\t\t\t\t\tticks.dash,\n\t\t\t\t\tticks.cap,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// grid\n\t\t\tlet grid = axis.grid;\n\n\t\t\tif (grid.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tgrid.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tori == 0 ? 2 : 1,\n\t\t\t\t\tori == 0 ? plotTop : plotLft,\n\t\t\t\t\tori == 0 ? plotHgt : plotWid,\n\t\t\t\t\troundDec(grid.width * pxRatio, 3),\n\t\t\t\t\tgrid.stroke(self, i),\n\t\t\t\t\tgrid.dash,\n\t\t\t\t\tgrid.cap,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tfire(\"drawAxes\");\n\t}\n\n\tfunction resetYSeries(minMax) {\n\t//\tlog(\"resetYSeries()\", arguments);\n\n\t\tseries.forEach((s, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\ts._paths = null;\n\n\t\t\t\tif (minMax) {\n\t\t\t\t\ts.min = null;\n\t\t\t\t\ts.max = null;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tlet queuedCommit = false;\n\n\tfunction commit() {\n\t\tif (!queuedCommit) {\n\t\t\tmicroTask(_commit);\n\t\t\tqueuedCommit = true;\n\t\t}\n\t}\n\n\tfunction _commit() {\n\t//\tlog(\"_commit()\", arguments);\n\n\t\tif (shouldSetScales) {\n\t\t\tsetScales();\n\t\t\tshouldSetScales = false;\n\t\t}\n\n\t\tif (shouldConvergeSize) {\n\t\t\tconvergeSize();\n\t\t\tshouldConvergeSize = false;\n\t\t}\n\n\t\tif (shouldSetSize) {\n\t\t\tsetStylePx(under, LEFT,   plotLftCss);\n\t\t\tsetStylePx(under, TOP,    plotTopCss);\n\t\t\tsetStylePx(under, WIDTH,  plotWidCss);\n\t\t\tsetStylePx(under, HEIGHT, plotHgtCss);\n\n\t\t\tsetStylePx(over, LEFT,    plotLftCss);\n\t\t\tsetStylePx(over, TOP,     plotTopCss);\n\t\t\tsetStylePx(over, WIDTH,   plotWidCss);\n\t\t\tsetStylePx(over, HEIGHT,  plotHgtCss);\n\n\t\t\tsetStylePx(wrap, WIDTH,   fullWidCss);\n\t\t\tsetStylePx(wrap, HEIGHT,  fullHgtCss);\n\n\t\t\tcan.width  = round(fullWidCss * pxRatio);\n\t\t\tcan.height = round(fullHgtCss * pxRatio);\n\n\t\t\tsyncRect();\n\n\t\t\tfire(\"setSize\");\n\n\t\t\tshouldSetSize = false;\n\t\t}\n\n\t\tif (fullWidCss > 0 && fullHgtCss > 0) {\n\t\t\tctx.clearRect(0, 0, can.width, can.height);\n\t\t\tfire(\"drawClear\");\n\t\t\tdrawOrder.forEach(fn => fn());\n\t\t\tfire(\"draw\");\n\t\t}\n\n\t//\tif (shouldSetSelect) {\n\t\t// TODO: update .u-select metrics (if visible)\n\t\t//\tsetStylePx(selectDiv, TOP, select.top = 0);\n\t\t//\tsetStylePx(selectDiv, LEFT, select.left = 0);\n\t\t//\tsetStylePx(selectDiv, WIDTH, select.width = 0);\n\t\t//\tsetStylePx(selectDiv, HEIGHT, select.height = 0);\n\t\t//\tshouldSetSelect = false;\n\t//\t}\n\n\t\tif (cursor.show && shouldSetCursor) {\n\t\t\tupdateCursor();\n\t\t\tshouldSetCursor = false;\n\t\t}\n\n\t//\tif (FEAT_LEGEND && legend.show && legend.live && shouldSetLegend) {}\n\n\t\tif (!ready) {\n\t\t\tready = true;\n\t\t\tself.status = 1;\n\n\t\t\tfire(\"ready\");\n\t\t}\n\n\t\tviaAutoScaleX = false;\n\n\t\tqueuedCommit = false;\n\t}\n\n\tself.redraw = (rebuildPaths, recalcAxes) => {\n\t\tshouldConvergeSize = recalcAxes || false;\n\n\t\tif (rebuildPaths !== false)\n\t\t\t_setScale(xScaleKey, scaleX.min, scaleX.max);\n\t\telse\n\t\t\tcommit();\n\t};\n\n\t// redraw() => setScale('x', scales.x.min, scales.x.max);\n\n\t// explicit, never re-ranged (is this actually true? for x and y)\n\tfunction setScale(key, opts) {\n\t\tlet sc = scales[key];\n\n\t\tif (sc.from == null) {\n\t\t\tif (dataLen == 0) {\n\t\t\t\tlet minMax = sc.range(self, opts.min, opts.max, key);\n\t\t\t\topts.min = minMax[0];\n\t\t\t\topts.max = minMax[1];\n\t\t\t}\n\n\t\t\tif (opts.min > opts.max) {\n\t\t\t\tlet _min = opts.min;\n\t\t\t\topts.min = opts.max;\n\t\t\t\topts.max = _min;\n\t\t\t}\n\n\t\t\tif (dataLen > 1 && opts.min != null && opts.max != null && opts.max - opts.min < 1e-16)\n\t\t\t\treturn;\n\n\t\t\tif (key == xScaleKey) {\n\t\t\t\tif (sc.distr == 2 && dataLen > 0) {\n\t\t\t\t\topts.min = closestIdx(opts.min, data[0]);\n\t\t\t\t\topts.max = closestIdx(opts.max, data[0]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t//\tlog(\"setScale()\", arguments);\n\n\t\t\tpendScales[key] = opts;\n\n\t\t\tshouldSetScales = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setScale = setScale;\n\n//\tINTERACTION\n\n\tlet xCursor;\n\tlet yCursor;\n\tlet vCursor;\n\tlet hCursor;\n\n\t// starting position before cursor.move\n\tlet rawMouseLeft0;\n\tlet rawMouseTop0;\n\n\t// starting position\n\tlet mouseLeft0;\n\tlet mouseTop0;\n\n\t// current position before cursor.move\n\tlet rawMouseLeft1;\n\tlet rawMouseTop1;\n\n\t// current position\n\tlet mouseLeft1;\n\tlet mouseTop1;\n\n\tlet dragging = false;\n\n\tconst drag = cursor.drag;\n\n\tlet dragX = drag.x;\n\tlet dragY = drag.y;\n\n\tif (cursor.show) {\n\t\tif (cursor.x)\n\t\t\txCursor = placeDiv(CURSOR_X, over);\n\t\tif (cursor.y)\n\t\t\tyCursor = placeDiv(CURSOR_Y, over);\n\n\t\tif (scaleX.ori == 0) {\n\t\t\tvCursor = xCursor;\n\t\t\thCursor = yCursor;\n\t\t}\n\t\telse {\n\t\t\tvCursor = yCursor;\n\t\t\thCursor = xCursor;\n\t\t}\n\n\t\tmouseLeft1 = cursor.left;\n\t\tmouseTop1 = cursor.top;\n\t}\n\n\tconst select = self.select = assign({\n\t\tshow:   true,\n\t\tover:   true,\n\t\tleft:   0,\n\t\twidth:  0,\n\t\ttop:    0,\n\t\theight: 0,\n\t}, opts.select);\n\n\tconst selectDiv = select.show ? placeDiv(SELECT, select.over ? over : under) : null;\n\n\tfunction setSelect(opts, _fire) {\n\t\tif (select.show) {\n\t\t\tfor (let prop in opts)\n\t\t\t\tsetStylePx(selectDiv, prop, select[prop] = opts[prop]);\n\n\t\t\t_fire !== false && fire(\"setSelect\");\n\t\t}\n\t}\n\n\tself.setSelect = setSelect;\n\n\tfunction toggleDOM(i, onOff) {\n\t\tlet s = series[i];\n\t\tlet label = showLegend ? legendRows[i][0].parentNode : null;\n\n\t\tif (s.show)\n\t\t\tlabel && remClass(label, OFF);\n\t\telse {\n\t\t\tlabel && addClass(label, OFF);\n\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t}\n\t}\n\n\tfunction _setScale(key, min, max) {\n\t\tsetScale(key, {min, max});\n\t}\n\n\tfunction setSeries(i, opts, pub) {\n\t//\tlog(\"setSeries()\", arguments);\n\n\t\tlet s = series[i];\n\n\t\tif (opts.focus != null)\n\t\t\tsetFocus(i);\n\n\t\tif (opts.show != null) {\n\t\t\ts.show = opts.show;\n\t\t\ttoggleDOM(i, opts.show);\n\n\t\t\t_setScale(s.scale, null, null);\n\t\t\tcommit();\n\t\t}\n\n\t\tfire(\"setSeries\", i, opts);\n\n\t\tpub && pubSync(\"setSeries\", self, i, opts);\n\t}\n\n\tself.setSeries = setSeries;\n\n\tfunction setAlpha(i, value) {\n\t\tseries[i].alpha = value;\n\n\t\tif (cursor.show && cursorPts[i])\n\t\t\tcursorPts[i].style.opacity = value;\n\n\t\tif (showLegend && legendRows[i])\n\t\t\tlegendRows[i][0].parentNode.style.opacity = value;\n\t}\n\n\t// y-distance\n\tlet closestDist;\n\tlet closestSeries;\n\tlet focusedSeries;\n\tconst FOCUS_TRUE  = {focus: true};\n\tconst FOCUS_FALSE = {focus: false};\n\n\tfunction setFocus(i) {\n\t\tif (i != focusedSeries) {\n\t\t//\tlog(\"setFocus()\", arguments);\n\n\t\t\tlet allFocused = i == null;\n\n\t\t\tlet _setAlpha = focus.alpha != 1;\n\n\t\t\tseries.forEach((s, i2) => {\n\t\t\t\tlet isFocused = allFocused || i2 == 0 || i2 == i;\n\t\t\t\ts._focus = allFocused ? null : isFocused;\n\t\t\t\t_setAlpha && setAlpha(i2, isFocused ? 1 : focus.alpha);\n\t\t\t});\n\n\t\t\tfocusedSeries = i;\n\t\t\t_setAlpha && commit();\n\t\t}\n\t}\n\n\tif (showLegend && cursorFocus) {\n\t\ton(mouseleave, legendEl, e => {\n\t\t\tif (cursor._lock)\n\t\t\t\treturn;\n\t\t\tsetSeries(null, FOCUS_FALSE, syncOpts.setSeries);\n\t\t\tupdateCursor();\n\t\t});\n\t}\n\n\tfunction posToVal(pos, scale) {\n\t\tlet sc = scales[scale];\n\n\t\tlet dim = plotWidCss;\n\n\t\tif (sc.ori == 1) {\n\t\t\tdim = plotHgtCss;\n\t\t\tpos = dim - pos;\n\t\t}\n\n\t\tif (sc.dir == -1)\n\t\t\tpos = dim - pos;\n\n\t\tlet _min = sc._min,\n\t\t\t_max = sc._max,\n\t\t\tpct = pos / dim;\n\n\t\tlet sv = _min + (_max - _min) * pct;\n\n\t\tlet distr = sc.distr;\n\n\t\treturn (\n\t\t\tdistr == 3 ? pow(10, sv) :\n\t\t\tdistr == 4 ? sinh(sv, sc.asinh) :\n\t\t\tsv\n\t\t);\n\t}\n\n\tfunction closestIdxFromXpos(pos) {\n\t\tlet v = posToVal(pos, xScaleKey);\n\t\treturn closestIdx(v, data[0], i0, i1);\n\t}\n\n\tself.valToIdx = val => closestIdx(val, data[0]);\n\tself.posToIdx = closestIdxFromXpos;\n\tself.posToVal = posToVal;\n\tself.valToPos = (val, scale, can) => (\n\t\tscales[scale].ori == 0 ?\n\t\tgetHPos(val, scales[scale],\n\t\t\tcan ? plotWid : plotWidCss,\n\t\t\tcan ? plotLft : 0,\n\t\t) :\n\t\tgetVPos(val, scales[scale],\n\t\t\tcan ? plotHgt : plotHgtCss,\n\t\t\tcan ? plotTop : 0,\n\t\t)\n\t);\n\n\t// defers calling expensive functions\n\tfunction batch(fn) {\n\t\tfn(self);\n\t\tcommit();\n\t}\n\n\tself.batch = batch;\n\n\t(self.setCursor = opts => {\n\t\tmouseLeft1 = opts.left;\n\t\tmouseTop1 = opts.top;\n\t//\tassign(cursor, opts);\n\t\tupdateCursor();\n\t});\n\n\tfunction setSelH(off, dim) {\n\t\tsetStylePx(selectDiv, LEFT,  select.left = off);\n\t\tsetStylePx(selectDiv, WIDTH, select.width = dim);\n\t}\n\n\tfunction setSelV(off, dim) {\n\t\tsetStylePx(selectDiv, TOP,    select.top = off);\n\t\tsetStylePx(selectDiv, HEIGHT, select.height = dim);\n\t}\n\n\tlet setSelX = scaleX.ori == 0 ? setSelH : setSelV;\n\tlet setSelY = scaleX.ori == 1 ? setSelH : setSelV;\n\n\tfunction updateCursor(ts, src) {\n\t//\tts == null && log(\"updateCursor()\", arguments);\n\n\t\trawMouseLeft1 = mouseLeft1;\n\t\trawMouseTop1 = mouseTop1;\n\n\t\t[mouseLeft1, mouseTop1] = cursor.move(self, mouseLeft1, mouseTop1);\n\n\t\tif (cursor.show) {\n\t\t\tvCursor && trans(vCursor, round(mouseLeft1), 0, plotWidCss, plotHgtCss);\n\t\t\thCursor && trans(hCursor, 0, round(mouseTop1), plotWidCss, plotHgtCss);\n\t\t}\n\n\t\tlet idx;\n\n\t\t// when zooming to an x scale range between datapoints the binary search\n\t\t// for nearest min/max indices results in this condition. cheap hack :D\n\t\tlet noDataInRange = i0 > i1;\n\n\t\tclosestDist = inf;\n\n\t\t// TODO: extract\n\t\tlet xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss;\n\t\tlet yDim = scaleX.ori == 1 ? plotWidCss : plotHgtCss;\n\n\t\t// if cursor hidden, hide points & clear legend vals\n\t\tif (mouseLeft1 < 0 || dataLen == 0 || noDataInRange) {\n\t\t\tidx = null;\n\n\t\t\tfor (let i = 0; i < series.length; i++) {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\t}\n\n\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\tif (i == 0 && multiValLegend)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tfor (let j = 0; j < legendRows[i].length; j++)\n\t\t\t\t\t\tlegendRows[i][j].firstChild.nodeValue = '--';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cursorFocus)\n\t\t\t\tsetSeries(null, FOCUS_TRUE, syncOpts.setSeries);\n\t\t}\n\t\telse {\n\t\t//\tlet pctY = 1 - (y / rect.height);\n\n\t\t\tlet mouseXPos = scaleX.ori == 0 ? mouseLeft1 : mouseTop1;\n\n\t\t\tlet valAtPosX = posToVal(mouseXPos, xScaleKey);\n\n\t\t\tidx = closestIdx(valAtPosX, data[0], i0, i1);\n\n\t\t\tlet xPos = incrRoundUp(valToPosX(data[0][idx], scaleX, xDim, 0), 0.5);\n\n\t\t\tfor (let i = 0; i < series.length; i++) {\n\t\t\t\tlet s = series[i];\n\n\t\t\t\tlet idx2  = cursor.dataIdx(self, i, idx, valAtPosX);\n\t\t\t\tlet xPos2 = idx2 == idx ? xPos : incrRoundUp(valToPosX(data[0][idx2], scaleX, xDim, 0), 0.5);\n\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tlet valAtIdx = data[i][idx2];\n\n\t\t\t\t\tlet yPos = valAtIdx == null ? -10 : incrRoundUp(valToPosY(valAtIdx, scales[s.scale], yDim, 0), 0.5);\n\n\t\t\t\t\tif (yPos > 0) {\n\t\t\t\t\t\tlet dist = abs(yPos - mouseTop1);\n\n\t\t\t\t\t\tif (dist <= closestDist) {\n\t\t\t\t\t\t\tclosestDist = dist;\n\t\t\t\t\t\t\tclosestSeries = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet hPos, vPos;\n\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\thPos = xPos2;\n\t\t\t\t\t\tvPos = yPos;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\thPos = yPos;\n\t\t\t\t\t\tvPos = xPos2;\n\t\t\t\t\t}\n\n\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], hPos, vPos, plotWidCss, plotHgtCss);\n\t\t\t\t}\n\n\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\tif ((idx2 == cursor.idx && !shouldSetLegend) || i == 0 && multiValLegend)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tlet src = i == 0 && xScaleDistr == 2 ? data0 : data[i];\n\n\t\t\t\t\tlet vals = multiValLegend ? s.values(self, i, idx2) : {_: s.value(self, src[idx2], i, idx2)};\n\n\t\t\t\t\tlet j = 0;\n\n\t\t\t\t\tfor (let k in vals)\n\t\t\t\t\t\tlegendRows[i][j++].firstChild.nodeValue = vals[k];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshouldSetLegend = false;\n\t\t}\n\n\t\t// nit: cursor.drag.setSelect is assumed always true\n\t\tif (select.show && dragging) {\n\t\t\tif (src != null) {\n\t\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\n\t\t\t\t// match the dragX/dragY implicitness/explicitness of src\n\t\t\t\tlet sdrag = src.cursor.drag;\n\t\t\t\tdragX = sdrag._x;\n\t\t\t\tdragY = sdrag._y;\n\n\t\t\t\tlet { left, top, width, height } = src.select;\n\n\t\t\t\tlet sori = src.scales[xKey].ori;\n\t\t\t\tlet sPosToVal = src.posToVal;\n\n\t\t\t\tlet sOff, sDim, sc, a, b;\n\n\t\t\t\tif (xKey) {\n\t\t\t\t\tif (sori == 0) {\n\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tsc = scales[xKey];\n\n\t\t\t\t\ta = valToPosX(sPosToVal(sOff, xKey),        sc, xDim, 0);\n\t\t\t\t\tb = valToPosX(sPosToVal(sOff + sDim, xKey), sc, xDim, 0);\n\n\t\t\t\t\tsetSelX(min(a,b), abs(b-a));\n\n\t\t\t\t\tif (!yKey)\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\n\t\t\t\tif (yKey) {\n\t\t\t\t\tif (sori == 1) {\n\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tsc = scales[yKey];\n\n\t\t\t\t\ta = valToPosY(sPosToVal(sOff, yKey),        sc, yDim, 0);\n\t\t\t\t\tb = valToPosY(sPosToVal(sOff + sDim, yKey), sc, yDim, 0);\n\n\t\t\t\t\tsetSelY(min(a,b), abs(b-a));\n\n\t\t\t\t\tif (!xKey)\n\t\t\t\t\t\tsetSelX(0, xDim);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet rawDX = abs(rawMouseLeft1 - rawMouseLeft0);\n\t\t\t\tlet rawDY = abs(rawMouseTop1 - rawMouseTop0);\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\tlet _rawDX = rawDX;\n\t\t\t\t\trawDX = rawDY;\n\t\t\t\t\trawDY = _rawDX;\n\t\t\t\t}\n\n\t\t\t\tdragX = drag.x && rawDX >= drag.dist;\n\t\t\t\tdragY = drag.y && rawDY >= drag.dist;\n\n\t\t\t\tlet uni = drag.uni;\n\n\t\t\t\tif (uni != null) {\n\t\t\t\t\t// only calc drag status if they pass the dist thresh\n\t\t\t\t\tif (dragX && dragY) {\n\t\t\t\t\t\tdragX = rawDX >= uni;\n\t\t\t\t\t\tdragY = rawDY >= uni;\n\n\t\t\t\t\t\t// force unidirectionality when both are under uni limit\n\t\t\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\t\t\tif (rawDY > rawDX)\n\t\t\t\t\t\t\t\tdragY = true;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdragX = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (drag.x && drag.y && (dragX || dragY))\n\t\t\t\t\t// if omni with no uni then both dragX / dragY should be true if either is true\n\t\t\t\t\tdragX = dragY = true;\n\n\t\t\t\tlet p0, p1;\n\n\t\t\t\tif (dragX) {\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelX(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragY)\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\n\t\t\t\tif (dragY) {\n\t\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelY(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragX)\n\t\t\t\t\t\tsetSelX(0, xDim);\n\t\t\t\t}\n\n\t\t\t\t// the drag didn't pass the dist requirement\n\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\tsetSelX(0, 0);\n\t\t\t\t\tsetSelY(0, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcursor.idx = idx;\n\t\tcursor.left = mouseLeft1;\n\t\tcursor.top = mouseTop1;\n\t\tdrag._x = dragX;\n\t\tdrag._y = dragY;\n\n\t\t// if ts is present, means we're implicitly syncing own cursor\n\t\tif (ts != null) {\n\t\t\t// this is not technically a \"mousemove\" event, since it's debounced, rename to setCursor?\n\t\t\t// since this is internal, we can tweak it later\n\t\t\tpubSync(mousemove, self, mouseLeft1, mouseTop1, xDim, yDim, idx);\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tlet o = syncOpts.setSeries;\n\t\t\t\tlet p = focus.prox;\n\n\t\t\t\tif (focusedSeries == null) {\n\t\t\t\t\tif (closestDist <= p)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, o);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (closestDist > p)\n\t\t\t\t\t\tsetSeries(null, FOCUS_TRUE, o);\n\t\t\t\t\telse if (closestSeries != focusedSeries)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, o);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tready && fire(\"setCursor\");\n\t}\n\n\tlet rect = null;\n\n\tfunction syncRect() {\n\t\trect = over.getBoundingClientRect();\n\t}\n\n\tfunction mouseMove(e, src, _l, _t, _w, _h, _i) {\n\t\tif (cursor._lock)\n\t\t\treturn;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, e != null);\n\n\t\tif (e != null)\n\t\t\tupdateCursor(1);\n\t\telse\n\t\t\tupdateCursor(null, src);\n\t}\n\n\tfunction cacheMouse(e, src, _l, _t, _w, _h, _i, initial, snap) {\n\t\tif (e != null) {\n\t\t\t_l = e.clientX - rect.left;\n\t\t\t_t = e.clientY - rect.top;\n\t\t}\n\t\telse {\n\t\t\tif (_l < 0 || _t < 0) {\n\t\t\t\tmouseLeft1 = -10;\n\t\t\t\tmouseTop1 = -10;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet xDim = plotWidCss,\n\t\t\t\tyDim = plotHgtCss,\n\t\t\t\t_xDim = _w,\n\t\t\t\t_yDim = _h,\n\t\t\t\t_xPos = _l,\n\t\t\t\t_yPos = _t;\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\txDim = plotHgtCss;\n\t\t\t\tyDim = plotWidCss;\n\t\t\t}\n\n\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\n\t\t\tif (src.scales[xKey].ori == 1) {\n\t\t\t\t_xDim = _h;\n\t\t\t\t_yDim = _w;\n\t\t\t\t_xPos = _t;\n\t\t\t\t_yPos = _l;\n\t\t\t}\n\n\t\t\tif (xKey != null)\n\t\t\t\t_l = getPos(src.posToVal(_xPos, xKey), scales[xKey], xDim, 0);\n\t\t\telse\n\t\t\t\t_l = xDim * (_xPos/_xDim);\n\n\t\t\tif (yKey != null)\n\t\t\t\t_t = getPos(src.posToVal(_yPos, yKey), scales[yKey], yDim, 0);\n\t\t\telse\n\t\t\t\t_t = yDim * (_yPos/_yDim);\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\tlet __l = _l;\n\t\t\t\t_l = _t;\n\t\t\t\t_t = __l;\n\t\t\t}\n\t\t}\n\n\t\tif (snap) {\n\t\t\tif (_l <= 1 || _l >= plotWidCss - 1)\n\t\t\t\t_l = incrRound(_l, plotWidCss);\n\n\t\t\tif (_t <= 1 || _t >= plotHgtCss - 1)\n\t\t\t\t_t = incrRound(_t, plotHgtCss);\n\t\t}\n\n\t\tif (initial) {\n\t\t\trawMouseLeft0 = _l;\n\t\t\trawMouseTop0 = _t;\n\n\t\t\t[mouseLeft0, mouseTop0] = cursor.move(self, _l, _t);\n\t\t}\n\t\telse {\n\t\t\tmouseLeft1 = _l;\n\t\t\tmouseTop1 = _t;\n\t\t}\n\t}\n\n\tfunction hideSelect() {\n\t\tsetSelect({\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t}, false);\n\t}\n\n\tfunction mouseDown(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = true;\n\t\tdragX = dragY = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, true, false);\n\n\t\tif (e != null) {\n\t\t\tonMouse(mouseup, doc, mouseUp);\n\t\t\tpubSync(mousedown, self, mouseLeft0, mouseTop0, plotWidCss, plotHgtCss, null);\n\t\t}\n\t}\n\n\tfunction mouseUp(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, true);\n\n\t\tlet { left, top, width, height } = select;\n\n\t\tlet hasSelect = width > 0 || height > 0;\n\n\t\thasSelect && setSelect(select);\n\n\t\tif (drag.setScale && hasSelect) {\n\t\t//\tif (syncKey != null) {\n\t\t//\t\tdragX = drag.x;\n\t\t//\t\tdragY = drag.y;\n\t\t//\t}\n\n\t\t\tlet xOff = left,\n\t\t\t\txDim = width,\n\t\t\t\tyOff = top,\n\t\t\t\tyDim = height;\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\txOff = top,\n\t\t\t\txDim = height,\n\t\t\t\tyOff = left,\n\t\t\t\tyDim = width;\n\t\t\t}\n\n\t\t\tif (dragX) {\n\t\t\t\t_setScale(xScaleKey,\n\t\t\t\t\tposToVal(xOff, xScaleKey),\n\t\t\t\t\tposToVal(xOff + xDim, xScaleKey)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (dragY) {\n\t\t\t\tfor (let k in scales) {\n\t\t\t\t\tlet sc = scales[k];\n\n\t\t\t\t\tif (k != xScaleKey && sc.from == null && sc.min != inf) {\n\t\t\t\t\t\t_setScale(k,\n\t\t\t\t\t\t\tposToVal(yOff + yDim, k),\n\t\t\t\t\t\t\tposToVal(yOff, k)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thideSelect();\n\t\t}\n\t\telse if (cursor.lock) {\n\t\t\tcursor._lock = !cursor._lock;\n\n\t\t\tif (!cursor._lock)\n\t\t\t\tupdateCursor();\n\t\t}\n\n\t\tif (e != null) {\n\t\t\toffMouse(mouseup, doc);\n\t\t\tpubSync(mouseup, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t\t}\n\t}\n\n\tfunction mouseLeave(e, src, _l, _t, _w, _h, _i) {\n\t\tif (!cursor._lock) {\n\t\t\tlet _dragging = dragging;\n\n\t\t\tif (dragging) {\n\t\t\t\t// handle case when mousemove aren't fired all the way to edges by browser\n\t\t\t\tlet snapH = true;\n\t\t\t\tlet snapV = true;\n\t\t\t\tlet snapProx = 10;\n\n\t\t\t\tlet dragH, dragV;\n\n\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\tdragH = dragX;\n\t\t\t\t\tdragV = dragY;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdragH = dragY;\n\t\t\t\t\tdragV = dragX;\n\t\t\t\t}\n\n\t\t\t\tif (dragH && dragV) {\n\t\t\t\t\t// maybe omni corner snap\n\t\t\t\t\tsnapH = mouseLeft1 <= snapProx || mouseLeft1 >= plotWidCss - snapProx;\n\t\t\t\t\tsnapV = mouseTop1  <= snapProx || mouseTop1  >= plotHgtCss - snapProx;\n\t\t\t\t}\n\n\t\t\t\tif (dragH && snapH)\n\t\t\t\t\tmouseLeft1 = mouseLeft1 < mouseLeft0 ? 0 : plotWidCss;\n\n\t\t\t\tif (dragV && snapV)\n\t\t\t\t\tmouseTop1 = mouseTop1 < mouseTop0 ? 0 : plotHgtCss;\n\n\t\t\t\tupdateCursor(1);\n\n\t\t\t\tdragging = false;\n\t\t\t}\n\n\t\t\tmouseLeft1 = -10;\n\t\t\tmouseTop1 = -10;\n\n\t\t\t// passing a non-null timestamp to force sync/mousemove event\n\t\t\tupdateCursor(1);\n\n\t\t\tif (_dragging)\n\t\t\t\tdragging = _dragging;\n\t\t}\n\t}\n\n\tfunction dblClick(e, src, _l, _t, _w, _h, _i) {\n\t\tautoScaleX();\n\n\t\thideSelect();\n\n\t\tif (e != null)\n\t\t\tpubSync(dblclick, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t}\n\n\t// internal pub/sub\n\tconst events = {};\n\n\tevents.mousedown = mouseDown;\n\tevents.mousemove = mouseMove;\n\tevents.mouseup = mouseUp;\n\tevents.dblclick = dblClick;\n\tevents[\"setSeries\"] = (e, src, idx, opts) => {\n\t\tsetSeries(idx, opts);\n\t};\n\n\tlet deb;\n\n\tif (cursor.show) {\n\t\tonMouse(mousedown,  over, mouseDown);\n\t\tonMouse(mousemove,  over, mouseMove);\n\t\tonMouse(mouseenter, over, syncRect);\n\t\tonMouse(mouseleave, over, mouseLeave);\n\n\t\tonMouse(dblclick, over, dblClick);\n\n\t\tdeb = debounce(syncRect, 100);\n\n\t\ton(resize, win, deb);\n\t\ton(scroll, win, deb);\n\n\t\tself.syncRect = syncRect;\n\t}\n\n\t// external on/off\n\tconst hooks = self.hooks = opts.hooks || {};\n\n\tfunction fire(evName, a1, a2) {\n\t\tif (evName in hooks) {\n\t\t\thooks[evName].forEach(fn => {\n\t\t\t\tfn.call(null, self, a1, a2);\n\t\t\t});\n\t\t}\n\t}\n\n\t(opts.plugins || []).forEach(p => {\n\t\tfor (let evName in p.hooks)\n\t\t\thooks[evName] = (hooks[evName] || []).concat(p.hooks[evName]);\n\t});\n\n\tconst syncOpts = assign({\n\t\tkey: null,\n\t\tsetSeries: false,\n\t\tfilters: {\n\t\t\tpub: retTrue,\n\t\t\tsub: retTrue,\n\t\t},\n\t\tscales: [xScaleKey, null]\n\t}, cursor.sync);\n\n\tconst syncKey = syncOpts.key;\n\n\tconst sync = _sync(syncKey);\n\n\tfunction pubSync(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.pub(type, src, x, y, w, h, i))\n\t\t\tsync.pub(type, src, x, y, w, h, i);\n\t}\n\n\tsync.sub(self);\n\n\tfunction pub(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.sub(type, src, x, y, w, h, i))\n\t\t\tevents[type](null, src, x, y, w, h, i);\n\t}\n\n\t(self.pub = pub);\n\n\tfunction destroy() {\n\t\tsync.unsub(self);\n\t\toff(resize, win, deb);\n\t\toff(scroll, win, deb);\n\t\troot.remove();\n\t\tfire(\"destroy\");\n\t}\n\n\tself.destroy = destroy;\n\n\tfunction _init() {\n\t\tfire(\"init\", opts, data);\n\n\t\tsetData(data || opts.data, false);\n\n\t\tif (pendScales[xScaleKey])\n\t\t\tsetScale(xScaleKey, pendScales[xScaleKey]);\n\t\telse\n\t\t\tautoScaleX();\n\n\t\t_setSize(opts.width, opts.height);\n\n\t\tupdateCursor();\n\n\t\tsetSelect(select, false);\n\t}\n\n\tif (then) {\n\t\tif (then instanceof HTMLElement) {\n\t\t\tthen.appendChild(root);\n\t\t\t_init();\n\t\t}\n\t\telse\n\t\t\tthen(self, _init);\n\t}\n\telse\n\t\t_init();\n\n\treturn self;\n}\n\nuPlot.assign = assign;\nuPlot.fmtNum = fmtNum;\nuPlot.rangeNum = rangeNum;\nuPlot.rangeLog = rangeLog;\nuPlot.rangeAsinh = rangeAsinh;\nuPlot.orient   = orient;\n\n{\n\tuPlot.join = join;\n}\n\n{\n\tuPlot.fmtDate = fmtDate;\n\tuPlot.tzDate  = tzDate;\n}\n\n{\n\tuPlot.sync = _sync;\n}\n\n{\n\tuPlot.addGap = addGap;\n\tuPlot.clipGaps = clipGaps;\n\n\tlet paths = uPlot.paths = {};\n\n\t(paths.linear  = linear);\n\t(paths.spline  = spline);\n\t(paths.stepped = stepped);\n\t(paths.bars    = bars);\n}\n\nexport default uPlot;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/plugins/uplot/uPlot.iife.js",
    "content": "/**\n* Copyright (c) 2021, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uPlot.js (μPlot)\n* A small, fast chart for time series, lines, areas, ohlc & bars\n* https://github.com/leeoniya/uPlot (v1.6.7)\n*/\n\nvar uPlot = (function () {\n\t'use strict';\n\n\tvar FEAT_TIME          = true;\n\n\tfunction debounce(fn, time) {\n\t\tvar pending = null;\n\n\t\tfunction run() {\n\t\t\tpending = null;\n\t\t\tfn();\n\t\t}\n\n\t\treturn function() {\n\t\t\tclearTimeout(pending);\n\t\t\tpending = setTimeout(run, time);\n\t\t}\n\t}\n\n\t// binary search for index of closest value\n\tfunction closestIdx(num, arr, lo, hi) {\n\t\tvar mid;\n\t\tlo = lo || 0;\n\t\thi = hi || arr.length - 1;\n\t\tvar bitwise = hi <= 2147483647;\n\n\t\twhile (hi - lo > 1) {\n\t\t\tmid = bitwise ? (lo + hi) >> 1 : floor((lo + hi) / 2);\n\n\t\t\tif (arr[mid] < num)\n\t\t\t\t{ lo = mid; }\n\t\t\telse\n\t\t\t\t{ hi = mid; }\n\t\t}\n\n\t\tif (num - arr[lo] <= arr[hi] - num)\n\t\t\t{ return lo; }\n\n\t\treturn hi;\n\t}\n\n\tfunction nonNullIdx(data, _i0, _i1, dir) {\n\t\tfor (var i = dir == 1 ? _i0 : _i1; i >= _i0 && i <= _i1; i += dir) {\n\t\t\tif (data[i] != null)\n\t\t\t\t{ return i; }\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\tfunction getMinMax(data, _i0, _i1, sorted) {\n\t//\tconsole.log(\"getMinMax()\");\n\n\t\tvar _min = inf;\n\t\tvar _max = -inf;\n\n\t\tif (sorted == 1) {\n\t\t\t_min = data[_i0];\n\t\t\t_max = data[_i1];\n\t\t}\n\t\telse if (sorted == -1) {\n\t\t\t_min = data[_i1];\n\t\t\t_max = data[_i0];\n\t\t}\n\t\telse {\n\t\t\tfor (var i = _i0; i <= _i1; i++) {\n\t\t\t\tif (data[i] != null) {\n\t\t\t\t\t_min = min(_min, data[i]);\n\t\t\t\t\t_max = max(_max, data[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn [_min, _max];\n\t}\n\n\tfunction getMinMaxLog(data, _i0, _i1) {\n\t//\tconsole.log(\"getMinMax()\");\n\n\t\tvar _min = inf;\n\t\tvar _max = -inf;\n\n\t\tfor (var i = _i0; i <= _i1; i++) {\n\t\t\tif (data[i] > 0) {\n\t\t\t\t_min = min(_min, data[i]);\n\t\t\t\t_max = max(_max, data[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t_min ==  inf ?  1 : _min,\n\t\t\t_max == -inf ? 10 : _max ];\n\t}\n\n\tvar _fixedTuple = [0, 0];\n\n\tfunction fixIncr(minIncr, maxIncr, minExp, maxExp) {\n\t\t_fixedTuple[0] = minExp < 0 ? roundDec(minIncr, -minExp) : minIncr;\n\t\t_fixedTuple[1] = maxExp < 0 ? roundDec(maxIncr, -maxExp) : maxIncr;\n\t\treturn _fixedTuple;\n\t}\n\n\tfunction rangeLog(min, max, base, fullMags) {\n\n\t\tvar logFn = base == 10 ? log10 : log2;\n\n\t\tif (min == max) {\n\t\t\tmin /= base;\n\t\t\tmax *= base;\n\t\t}\n\n\t\tvar minExp, maxExp, minMaxIncrs;\n\n\t\tif (fullMags) {\n\t\t\tminExp = floor(logFn(min));\n\t\t\tmaxExp =  ceil(logFn(max));\n\n\t\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\t\tmin = minMaxIncrs[0];\n\t\t\tmax = minMaxIncrs[1];\n\t\t}\n\t\telse {\n\t\t\tminExp = floor(logFn(abs(min)));\n\t\t\tmaxExp = floor(logFn(abs(max)));\n\n\t\t\tminMaxIncrs = fixIncr(pow(base, minExp), pow(base, maxExp), minExp, maxExp);\n\n\t\t\tmin = incrRoundDn(min, minMaxIncrs[0]);\n\t\t\tmax = incrRoundUp(max, minMaxIncrs[1]);\n\t\t}\n\n\t\treturn [min, max];\n\t}\n\n\tfunction rangeAsinh(min, max, base, fullMags) {\n\t\tvar minMax = rangeLog(min, max, base, fullMags);\n\n\t\tif (min == 0)\n\t\t\t{ minMax[0] = 0; }\n\n\t\tif (max == 0)\n\t\t\t{ minMax[1] = 0; }\n\n\t\treturn minMax;\n\t}\n\n\tvar _eqRangePart = {\n\t\tpad:  0,\n\t\tsoft: null,\n\t\tmode: 0,\n\t};\n\n\tvar _eqRange = {\n\t\tmin: _eqRangePart,\n\t\tmax: _eqRangePart,\n\t};\n\n\t// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n\t// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\n\tfunction rangeNum(_min, _max, mult, extra) {\n\t\tif (isObj(mult))\n\t\t\t{ return _rangeNum(_min, _max, mult); }\n\n\t\t_eqRangePart.pad  = mult;\n\t\t_eqRangePart.soft = extra ? 0 : null;\n\t\t_eqRangePart.mode = extra ? 3 : 0;\n\n\t\treturn _rangeNum(_min, _max, _eqRange);\n\t}\n\n\t// nullish coalesce\n\tfunction ifNull(lh, rh) {\n\t\treturn lh == null ? rh : lh;\n\t}\n\n\tfunction _rangeNum(_min, _max, cfg) {\n\t\tvar cmin = cfg.min;\n\t\tvar cmax = cfg.max;\n\n\t\tvar padMin = ifNull(cmin.pad, 0);\n\t\tvar padMax = ifNull(cmax.pad, 0);\n\n\t\tvar hardMin = ifNull(cmin.hard, -inf);\n\t\tvar hardMax = ifNull(cmax.hard,  inf);\n\n\t\tvar softMin = ifNull(cmin.soft,  inf);\n\t\tvar softMax = ifNull(cmax.soft, -inf);\n\n\t\tvar softMinMode = ifNull(cmin.mode, 0);\n\t\tvar softMaxMode = ifNull(cmax.mode, 0);\n\n\t\tvar delta        = _max - _min;\n\t\tvar nonZeroDelta = delta || abs(_max) || 1e3;\n\t\tvar mag          = log10(nonZeroDelta);\n\t\tvar base         = pow(10, floor(mag));\n\n\t\tvar _padMin  = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);\n\t\tvar _newMin  = roundDec(incrRoundDn(_min - _padMin, base/10), 6);\n\t\tvar _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;\n\t\tvar minLim   = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));\n\n\t\tvar _padMax  = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);\n\t\tvar _newMax  = roundDec(incrRoundUp(_max + _padMax, base/10), 6);\n\t\tvar _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;\n\t\tvar maxLim   = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));\n\n\t\tif (minLim == maxLim && minLim == 0)\n\t\t\t{ maxLim = 100; }\n\n\t\treturn [minLim, maxLim];\n\t}\n\n\t// alternative: https://stackoverflow.com/a/2254896\n\tvar fmtNum = new Intl.NumberFormat(navigator.language).format;\n\n\tvar M = Math;\n\n\tvar PI = M.PI;\n\tvar abs = M.abs;\n\tvar floor = M.floor;\n\tvar round = M.round;\n\tvar ceil = M.ceil;\n\tvar min = M.min;\n\tvar max = M.max;\n\tvar pow = M.pow;\n\tvar sqrt = M.sqrt;\n\tvar log10 = M.log10;\n\tvar log2 = M.log2;\n\tvar sinh =  (v, linthresh) => {\n\t\tif ( linthresh === void 0 ) linthresh = 1;\n\n\t\treturn M.sinh(v / linthresh);\n\t};\n\tvar asinh = (v, linthresh) => {\n\t\tif ( linthresh === void 0 ) linthresh = 1;\n\n\t\treturn M.asinh(v / linthresh);\n\t};\n\n\tvar inf = Infinity;\n\n\tfunction incrRound(num, incr) {\n\t\treturn round(num/incr)*incr;\n\t}\n\n\tfunction clamp(num, _min, _max) {\n\t\treturn min(max(num, _min), _max);\n\t}\n\n\tfunction fnOrSelf(v) {\n\t\treturn typeof v == \"function\" ? v : () => v;\n\t}\n\n\tvar retArg1 = (_0, _1) => _1;\n\n\tvar retNull = _ => null;\n\n\tvar retTrue = _ => true;\n\n\tfunction incrRoundUp(num, incr) {\n\t\treturn ceil(num/incr)*incr;\n\t}\n\n\tfunction incrRoundDn(num, incr) {\n\t\treturn floor(num/incr)*incr;\n\t}\n\n\tfunction roundDec(val, dec) {\n\t\treturn round(val * (dec = Math.pow( 10, dec ))) / dec;\n\t}\n\n\tvar fixedDec = new Map();\n\n\tfunction guessDec(num) {\n\t\treturn ((\"\"+num).split(\".\")[1] || \"\").length;\n\t}\n\n\tfunction genIncrs(base, minExp, maxExp, mults) {\n\t\tvar incrs = [];\n\n\t\tvar multDec = mults.map(guessDec);\n\n\t\tfor (var exp = minExp; exp < maxExp; exp++) {\n\t\t\tvar expa = abs(exp);\n\t\t\tvar mag = roundDec(pow(base, exp), expa);\n\n\t\t\tfor (var i = 0; i < mults.length; i++) {\n\t\t\t\tvar _incr = mults[i] * mag;\n\t\t\t\tvar dec = (_incr >= 0 && exp >= 0 ? 0 : expa) + (exp >= multDec[i] ? 0 : multDec[i]);\n\t\t\t\tvar incr = roundDec(_incr, dec);\n\t\t\t\tincrs.push(incr);\n\t\t\t\tfixedDec.set(incr, dec);\n\t\t\t}\n\t\t}\n\n\t\treturn incrs;\n\t}\n\n\t//export const assign = Object.assign;\n\n\tvar EMPTY_OBJ = {};\n\n\tvar isArr = Array.isArray;\n\n\tfunction isStr(v) {\n\t\treturn typeof v == 'string';\n\t}\n\n\tfunction isObj(v) {\n\t\tvar is = false;\n\n\t\tif (v != null) {\n\t\t\tvar c = v.constructor;\n\t\t\tis = c == null || c == Object;\n\t\t}\n\n\t\treturn is;\n\t}\n\n\tfunction fastIsObj(v) {\n\t\treturn v != null && typeof v == 'object';\n\t}\n\n\tfunction copy(o, _isObj) {\n\t\t_isObj = _isObj || isObj;\n\n\t\tvar out;\n\n\t\tif (isArr(o))\n\t\t\t{ out = o.map(v => copy(v, _isObj)); }\n\t\telse if (_isObj(o)) {\n\t\t\tout = {};\n\t\t\tfor (var k in o)\n\t\t\t\t{ out[k] = copy(o[k], _isObj); }\n\t\t}\n\t\telse\n\t\t\t{ out = o; }\n\n\t\treturn out;\n\t}\n\n\tfunction assign(targ) {\n\t\tvar args = arguments;\n\n\t\tfor (var i = 1; i < args.length; i++) {\n\t\t\tvar src = args[i];\n\n\t\t\tfor (var key in src) {\n\t\t\t\tif (isObj(targ[key]))\n\t\t\t\t\t{ assign(targ[key], copy(src[key])); }\n\t\t\t\telse\n\t\t\t\t\t{ targ[key] = copy(src[key]); }\n\t\t\t}\n\t\t}\n\n\t\treturn targ;\n\t}\n\n\t// nullModes\n\tvar NULL_REMOVE = 0;  // nulls are converted to undefined (e.g. for spanGaps: true)\n\tvar NULL_RETAIN = 1;  // nulls are retained, with alignment artifacts set to undefined (default)\n\tvar NULL_EXPAND = 2;  // nulls are expanded to include any adjacent alignment artifacts\n\n\t// sets undefined values to nulls when adjacent to existing nulls (minesweeper)\n\tfunction nullExpand(yVals, nullIdxs, alignedLen) {\n\t\tfor (var i = 0, xi = (void 0), lastNullIdx = -1; i < nullIdxs.length; i++) {\n\t\t\tvar nullIdx = nullIdxs[i];\n\n\t\t\tif (nullIdx > lastNullIdx) {\n\t\t\t\txi = nullIdx - 1;\n\t\t\t\twhile (xi >= 0 && yVals[xi] == null)\n\t\t\t\t\t{ yVals[xi--] = null; }\n\n\t\t\t\txi = nullIdx + 1;\n\t\t\t\twhile (xi < alignedLen && yVals[xi] == null)\n\t\t\t\t\t{ yVals[lastNullIdx = xi++] = null; }\n\t\t\t}\n\t\t}\n\t}\n\n\t// nullModes is a tables-matched array indicating how to treat nulls in each series\n\t// output is sorted ASC on the joined field (table[0]) and duplicate join values are collapsed\n\tfunction join(tables, nullModes) {\n\t\tvar xVals = new Set();\n\n\t\tfor (var ti = 0; ti < tables.length; ti++) {\n\t\t\tvar t = tables[ti];\n\t\t\tvar xs = t[0];\n\t\t\tvar len = xs.length;\n\n\t\t\tfor (var i = 0; i < len; i++)\n\t\t\t\t{ xVals.add(xs[i]); }\n\t\t}\n\n\t\tvar data = [Array.from(xVals).sort((a, b) => a - b)];\n\n\t\tvar alignedLen = data[0].length;\n\n\t\tvar xIdxs = new Map();\n\n\t\tfor (var i$1 = 0; i$1 < alignedLen; i$1++)\n\t\t\t{ xIdxs.set(data[0][i$1], i$1); }\n\n\t\tfor (var ti$1 = 0; ti$1 < tables.length; ti$1++) {\n\t\t\tvar t$1 = tables[ti$1];\n\t\t\tvar xs$1 = t$1[0];\n\n\t\t\tfor (var si = 1; si < t$1.length; si++) {\n\t\t\t\tvar ys = t$1[si];\n\n\t\t\t\tvar yVals = Array(alignedLen).fill(undefined);\n\n\t\t\t\tvar nullMode = nullModes ? nullModes[ti$1][si] : NULL_RETAIN;\n\n\t\t\t\tvar nullIdxs = [];\n\n\t\t\t\tfor (var i$2 = 0; i$2 < ys.length; i$2++) {\n\t\t\t\t\tvar yVal = ys[i$2];\n\t\t\t\t\tvar alignedIdx = xIdxs.get(xs$1[i$2]);\n\n\t\t\t\t\tif (yVal == null) {\n\t\t\t\t\t\tif (nullMode != NULL_REMOVE) {\n\t\t\t\t\t\t\tyVals[alignedIdx] = yVal;\n\n\t\t\t\t\t\t\tif (nullMode == NULL_EXPAND)\n\t\t\t\t\t\t\t\t{ nullIdxs.push(alignedIdx); }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\t{ yVals[alignedIdx] = yVal; }\n\t\t\t\t}\n\n\t\t\t\tnullExpand(yVals, nullIdxs, alignedLen);\n\n\t\t\t\tdata.push(yVals);\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tvar microTask = typeof queueMicrotask == \"undefined\" ? fn => Promise.resolve().then(fn) : queueMicrotask;\n\n\tvar WIDTH       = \"width\";\n\tvar HEIGHT      = \"height\";\n\tvar TOP         = \"top\";\n\tvar BOTTOM      = \"bottom\";\n\tvar LEFT        = \"left\";\n\tvar RIGHT       = \"right\";\n\tvar hexBlack    = \"#000\";\n\tvar transparent = hexBlack + \"0\";\n\n\tvar mousemove   = \"mousemove\";\n\tvar mousedown   = \"mousedown\";\n\tvar mouseup     = \"mouseup\";\n\tvar mouseenter  = \"mouseenter\";\n\tvar mouseleave  = \"mouseleave\";\n\tvar dblclick    = \"dblclick\";\n\tvar resize      = \"resize\";\n\tvar scroll      = \"scroll\";\n\n\tvar pre = \"u-\";\n\n\tvar UPLOT          =       \"uplot\";\n\tvar ORI_HZ         = pre + \"hz\";\n\tvar ORI_VT         = pre + \"vt\";\n\tvar TITLE          = pre + \"title\";\n\tvar WRAP           = pre + \"wrap\";\n\tvar UNDER          = pre + \"under\";\n\tvar OVER           = pre + \"over\";\n\tvar OFF            = pre + \"off\";\n\tvar SELECT         = pre + \"select\";\n\tvar CURSOR_X       = pre + \"cursor-x\";\n\tvar CURSOR_Y       = pre + \"cursor-y\";\n\tvar CURSOR_PT      = pre + \"cursor-pt\";\n\tvar LEGEND         = pre + \"legend\";\n\tvar LEGEND_LIVE    = pre + \"live\";\n\tvar LEGEND_INLINE  = pre + \"inline\";\n\tvar LEGEND_THEAD   = pre + \"thead\";\n\tvar LEGEND_SERIES  = pre + \"series\";\n\tvar LEGEND_MARKER  = pre + \"marker\";\n\tvar LEGEND_LABEL   = pre + \"label\";\n\tvar LEGEND_VALUE   = pre + \"value\";\n\n\tvar doc = document;\n\tvar win = window;\n\tvar pxRatio = devicePixelRatio;\n\n\tfunction addClass(el, c) {\n\t\tif (c != null) {\n\t\t\tvar cl = el.classList;\n\t\t\t!cl.contains(c) && cl.add(c);\n\t\t}\n\t}\n\n\tfunction remClass(el, c) {\n\t\tvar cl = el.classList;\n\t\tcl.contains(c) && cl.remove(c);\n\t}\n\n\tfunction setStylePx(el, name, value) {\n\t\tel.style[name] = value + \"px\";\n\t}\n\n\tfunction placeTag(tag, cls, targ, refEl) {\n\t\tvar el = doc.createElement(tag);\n\n\t\tif (cls != null)\n\t\t\t{ addClass(el, cls); }\n\n\t\tif (targ != null)\n\t\t\t{ targ.insertBefore(el, refEl); }\n\n\t\treturn el;\n\t}\n\n\tfunction placeDiv(cls, targ) {\n\t\treturn placeTag(\"div\", cls, targ);\n\t}\n\n\tfunction trans(el, xPos, yPos, xMax, yMax) {\n\t\tel.style.transform = \"translate(\" + xPos + \"px,\" + yPos + \"px)\";\n\n\t\tif (xPos < 0 || yPos < 0 || xPos > xMax || yPos > yMax)\n\t\t\t{ addClass(el, OFF); }\n\t\telse\n\t\t\t{ remClass(el, OFF); }\n\t}\n\n\tvar evOpts = {passive: true};\n\n\tfunction on(ev, el, cb) {\n\t\tel.addEventListener(ev, cb, evOpts);\n\t}\n\n\tfunction off(ev, el, cb) {\n\t\tel.removeEventListener(ev, cb, evOpts);\n\t}\n\n\tvar months = [\n\t\t\"January\",\n\t\t\"February\",\n\t\t\"March\",\n\t\t\"April\",\n\t\t\"May\",\n\t\t\"June\",\n\t\t\"July\",\n\t\t\"August\",\n\t\t\"September\",\n\t\t\"October\",\n\t\t\"November\",\n\t\t\"December\" ];\n\n\tvar days = [\n\t\t\"Sunday\",\n\t\t\"Monday\",\n\t\t\"Tuesday\",\n\t\t\"Wednesday\",\n\t\t\"Thursday\",\n\t\t\"Friday\",\n\t\t\"Saturday\" ];\n\n\tfunction slice3(str) {\n\t\treturn str.slice(0, 3);\n\t}\n\n\tvar days3 = days.map(slice3);\n\n\tvar months3 = months.map(slice3);\n\n\tvar engNames = {\n\t\tMMMM: months,\n\t\tMMM:  months3,\n\t\tWWWW: days,\n\t\tWWW:  days3,\n\t};\n\n\tfunction zeroPad2(int) {\n\t\treturn (int < 10 ? '0' : '') + int;\n\t}\n\n\tfunction zeroPad3(int) {\n\t\treturn (int < 10 ? '00' : int < 100 ? '0' : '') + int;\n\t}\n\n\t/*\n\tfunction suffix(int) {\n\t\tlet mod10 = int % 10;\n\n\t\treturn int + (\n\t\t\tmod10 == 1 && int != 11 ? \"st\" :\n\t\t\tmod10 == 2 && int != 12 ? \"nd\" :\n\t\t\tmod10 == 3 && int != 13 ? \"rd\" : \"th\"\n\t\t);\n\t}\n\t*/\n\n\tvar subs = {\n\t\t// 2019\n\t\tYYYY:\td => d.getFullYear(),\n\t\t// 19\n\t\tYY:\t\td => (d.getFullYear()+'').slice(2),\n\t\t// July\n\t\tMMMM:\t(d, names) => names.MMMM[d.getMonth()],\n\t\t// Jul\n\t\tMMM:\t(d, names) => names.MMM[d.getMonth()],\n\t\t// 07\n\t\tMM:\t\td => zeroPad2(d.getMonth()+1),\n\t\t// 7\n\t\tM:\t\td => d.getMonth()+1,\n\t\t// 09\n\t\tDD:\t\td => zeroPad2(d.getDate()),\n\t\t// 9\n\t\tD:\t\td => d.getDate(),\n\t\t// Monday\n\t\tWWWW:\t(d, names) => names.WWWW[d.getDay()],\n\t\t// Mon\n\t\tWWW:\t(d, names) => names.WWW[d.getDay()],\n\t\t// 03\n\t\tHH:\t\td => zeroPad2(d.getHours()),\n\t\t// 3\n\t\tH:\t\td => d.getHours(),\n\t\t// 9 (12hr, unpadded)\n\t\th:\t\td => {var h = d.getHours(); return h == 0 ? 12 : h > 12 ? h - 12 : h;},\n\t\t// AM\n\t\tAA:\t\td => d.getHours() >= 12 ? 'PM' : 'AM',\n\t\t// am\n\t\taa:\t\td => d.getHours() >= 12 ? 'pm' : 'am',\n\t\t// a\n\t\ta:\t\td => d.getHours() >= 12 ? 'p' : 'a',\n\t\t// 09\n\t\tmm:\t\td => zeroPad2(d.getMinutes()),\n\t\t// 9\n\t\tm:\t\td => d.getMinutes(),\n\t\t// 09\n\t\tss:\t\td => zeroPad2(d.getSeconds()),\n\t\t// 9\n\t\ts:\t\td => d.getSeconds(),\n\t\t// 374\n\t\tfff:\td => zeroPad3(d.getMilliseconds()),\n\t};\n\n\tfunction fmtDate(tpl, names) {\n\t\tnames = names || engNames;\n\t\tvar parts = [];\n\n\t\tvar R = /\\{([a-z]+)\\}|[^{]+/gi, m;\n\n\t\twhile (m = R.exec(tpl))\n\t\t\t{ parts.push(m[0][0] == '{' ? subs[m[1]] : m[0]); }\n\n\t\treturn d => {\n\t\t\tvar out = '';\n\n\t\t\tfor (var i = 0; i < parts.length; i++)\n\t\t\t\t{ out += typeof parts[i] == \"string\" ? parts[i] : parts[i](d, names); }\n\n\t\t\treturn out;\n\t\t}\n\t}\n\n\tvar localTz = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n\t// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone/53652131#53652131\n\tfunction tzDate(date, tz) {\n\t\tvar date2;\n\n\t\t// perf optimization\n\t\tif (tz == 'UTC' || tz == 'Etc/UTC')\n\t\t\t{ date2 = new Date(+date + date.getTimezoneOffset() * 6e4); }\n\t\telse if (tz == localTz)\n\t\t\t{ date2 = date; }\n\t\telse {\n\t\t\tdate2 = new Date(date.toLocaleString('en-US', {timeZone: tz}));\n\t\t\tdate2.setMilliseconds(date.getMilliseconds());\n\t\t}\n\n\t\treturn date2;\n\t}\n\n\t//export const series = [];\n\n\t// default formatters:\n\n\tvar onlyWhole = v => v % 1 == 0;\n\n\tvar allMults = [1,2,2.5,5];\n\n\t// ...0.01, 0.02, 0.025, 0.05, 0.1, 0.2, 0.25, 0.5\n\tvar decIncrs = genIncrs(10, -16, 0, allMults);\n\n\t// 1, 2, 2.5, 5, 10, 20, 25, 50...\n\tvar oneIncrs = genIncrs(10, 0, 16, allMults);\n\n\t// 1, 2,      5, 10, 20, 25, 50...\n\tvar wholeIncrs = oneIncrs.filter(onlyWhole);\n\n\tvar numIncrs = decIncrs.concat(oneIncrs);\n\n\tvar NL = \"\\n\";\n\n\tvar yyyy    = \"{YYYY}\";\n\tvar NLyyyy  = NL + yyyy;\n\tvar md      = \"{M}/{D}\";\n\tvar NLmd    = NL + md;\n\tvar NLmdyy  = NLmd + \"/{YY}\";\n\n\tvar aa      = \"{aa}\";\n\tvar hmm     = \"{h}:{mm}\";\n\tvar hmmaa   = hmm + aa;\n\tvar NLhmmaa = NL + hmmaa;\n\tvar ss      = \":{ss}\";\n\n\tvar _ = null;\n\n\tfunction genTimeStuffs(ms) {\n\t\tvar\ts  = ms * 1e3,\n\t\t\tm  = s  * 60,\n\t\t\th  = m  * 60,\n\t\t\td  = h  * 24,\n\t\t\tmo = d  * 30,\n\t\t\ty  = d  * 365;\n\n\t\t// min of 1e-3 prevents setting a temporal x ticks too small since Date objects cannot advance ticks smaller than 1ms\n\t\tvar subSecIncrs = ms == 1 ? genIncrs(10, 0, 3, allMults).filter(onlyWhole) : genIncrs(10, -3, 0, allMults);\n\n\t\tvar timeIncrs = subSecIncrs.concat([\n\t\t\t// minute divisors (# of secs)\n\t\t\ts,\n\t\t\ts * 5,\n\t\t\ts * 10,\n\t\t\ts * 15,\n\t\t\ts * 30,\n\t\t\t// hour divisors (# of mins)\n\t\t\tm,\n\t\t\tm * 5,\n\t\t\tm * 10,\n\t\t\tm * 15,\n\t\t\tm * 30,\n\t\t\t// day divisors (# of hrs)\n\t\t\th,\n\t\t\th * 2,\n\t\t\th * 3,\n\t\t\th * 4,\n\t\t\th * 6,\n\t\t\th * 8,\n\t\t\th * 12,\n\t\t\t// month divisors TODO: need more?\n\t\t\td,\n\t\t\td * 2,\n\t\t\td * 3,\n\t\t\td * 4,\n\t\t\td * 5,\n\t\t\td * 6,\n\t\t\td * 7,\n\t\t\td * 8,\n\t\t\td * 9,\n\t\t\td * 10,\n\t\t\td * 15,\n\t\t\t// year divisors (# months, approx)\n\t\t\tmo,\n\t\t\tmo * 2,\n\t\t\tmo * 3,\n\t\t\tmo * 4,\n\t\t\tmo * 6,\n\t\t\t// century divisors\n\t\t\ty,\n\t\t\ty * 2,\n\t\t\ty * 5,\n\t\t\ty * 10,\n\t\t\ty * 25,\n\t\t\ty * 50,\n\t\t\ty * 100 ]);\n\n\t\t// [0]:   minimum num secs in the tick incr\n\t\t// [1]:   default tick format\n\t\t// [2-7]: rollover tick formats\n\t\t// [8]:   mode: 0: replace [1] -> [2-7], 1: concat [1] + [2-7]\n\t\tvar _timeAxisStamps = [\n\t\t//   tick incr    default          year                    month   day                   hour    min       sec   mode\n\t\t\t[y,           yyyy,            _,                      _,      _,                    _,      _,        _,       1],\n\t\t\t[d * 28,      \"{MMM}\",         NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t\t[d,           md,              NLyyyy,                 _,      _,                    _,      _,        _,       1],\n\t\t\t[h,           \"{h}\" + aa,      NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t\t[m,           hmmaa,           NLmdyy,                 _,      NLmd,                 _,      _,        _,       1],\n\t\t\t[s,           ss,              NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1],\n\t\t\t[ms,          ss + \".{fff}\",   NLmdyy + \" \" + hmmaa,   _,      NLmd + \" \" + hmmaa,   _,      NLhmmaa,  _,       1] ];\n\n\t\t// the ensures that axis ticks, values & grid are aligned to logical temporal breakpoints and not an arbitrary timestamp\n\t\t// https://www.timeanddate.com/time/dst/\n\t\t// https://www.timeanddate.com/time/dst/2019.html\n\t\t// https://www.epochconverter.com/timezones\n\t\tfunction timeAxisSplits(tzDate) {\n\t\t\treturn (self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace) => {\n\t\t\t\tvar splits = [];\n\t\t\t\tvar isYr = foundIncr >= y;\n\t\t\t\tvar isMo = foundIncr >= mo && foundIncr < y;\n\n\t\t\t\t// get the timezone-adjusted date\n\t\t\t\tvar minDate = tzDate(scaleMin);\n\t\t\t\tvar minDateTs = minDate * ms;\n\n\t\t\t\t// get ts of 12am (this lands us at or before the original scaleMin)\n\t\t\t\tvar minMin = mkDate(minDate.getFullYear(), isYr ? 0 : minDate.getMonth(), isMo || isYr ? 1 : minDate.getDate());\n\t\t\t\tvar minMinTs = minMin * ms;\n\n\t\t\t\tif (isMo || isYr) {\n\t\t\t\t\tvar moIncr = isMo ? foundIncr / mo : 0;\n\t\t\t\t\tvar yrIncr = isYr ? foundIncr / y  : 0;\n\t\t\t\t//\tlet tzOffset = scaleMin - minDateTs;\t\t// needed?\n\t\t\t\t\tvar split = minDateTs == minMinTs ? minDateTs : mkDate(minMin.getFullYear() + yrIncr, minMin.getMonth() + moIncr, 1) * ms;\n\t\t\t\t\tvar splitDate = new Date(split / ms);\n\t\t\t\t\tvar baseYear = splitDate.getFullYear();\n\t\t\t\t\tvar baseMonth = splitDate.getMonth();\n\n\t\t\t\t\tfor (var i = 0; split <= scaleMax; i++) {\n\t\t\t\t\t\tvar next = mkDate(baseYear + yrIncr * i, baseMonth + moIncr * i, 1);\n\t\t\t\t\t\tvar offs = next - tzDate(next * ms);\n\n\t\t\t\t\t\tsplit = (+next + offs) * ms;\n\n\t\t\t\t\t\tif (split <= scaleMax)\n\t\t\t\t\t\t\t{ splits.push(split); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar incr0 = foundIncr >= d ? d : foundIncr;\n\t\t\t\t\tvar tzOffset = floor(scaleMin) - floor(minDateTs);\n\t\t\t\t\tvar split$1 = minMinTs + tzOffset + incrRoundUp(minDateTs - minMinTs, incr0);\n\t\t\t\t\tsplits.push(split$1);\n\n\t\t\t\t\tvar date0 = tzDate(split$1);\n\n\t\t\t\t\tvar prevHour = date0.getHours() + (date0.getMinutes() / m) + (date0.getSeconds() / h);\n\t\t\t\t\tvar incrHours = foundIncr / h;\n\n\t\t\t\t\tvar minSpace = self.axes[axisIdx]._space;\n\t\t\t\t\tvar pctSpace = foundSpace / minSpace;\n\n\t\t\t\t\twhile (1) {\n\t\t\t\t\t\tsplit$1 = roundDec(split$1 + foundIncr, ms == 1 ? 0 : 3);\n\n\t\t\t\t\t\tif (split$1 > scaleMax)\n\t\t\t\t\t\t\t{ break; }\n\n\t\t\t\t\t\tif (incrHours > 1) {\n\t\t\t\t\t\t\tvar expectedHour = floor(roundDec(prevHour + incrHours, 6)) % 24;\n\t\t\t\t\t\t\tvar splitDate$1 = tzDate(split$1);\n\t\t\t\t\t\t\tvar actualHour = splitDate$1.getHours();\n\n\t\t\t\t\t\t\tvar dstShift = actualHour - expectedHour;\n\n\t\t\t\t\t\t\tif (dstShift > 1)\n\t\t\t\t\t\t\t\t{ dstShift = -1; }\n\n\t\t\t\t\t\t\tsplit$1 -= dstShift * h;\n\n\t\t\t\t\t\t\tprevHour = (prevHour + incrHours) % 24;\n\n\t\t\t\t\t\t\t// add a tick only if it's further than 70% of the min allowed label spacing\n\t\t\t\t\t\t\tvar prevSplit = splits[splits.length - 1];\n\t\t\t\t\t\t\tvar pctIncr = roundDec((split$1 - prevSplit) / foundIncr, 3);\n\n\t\t\t\t\t\t\tif (pctIncr * pctSpace >= .7)\n\t\t\t\t\t\t\t\t{ splits.push(split$1); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{ splits.push(split$1); }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn splits;\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\ttimeIncrs,\n\t\t\t_timeAxisStamps,\n\t\t\ttimeAxisSplits ];\n\t}\n\n\tvar ref = genTimeStuffs(1);\n\tvar timeIncrsMs = ref[0];\n\tvar _timeAxisStampsMs = ref[1];\n\tvar timeAxisSplitsMs = ref[2];\n\tvar ref$1 = genTimeStuffs(1e-3);\n\tvar timeIncrsS = ref$1[0];\n\tvar _timeAxisStampsS = ref$1[1];\n\tvar timeAxisSplitsS = ref$1[2];\n\n\t// base 2\n\tgenIncrs(2, -53, 53, [1]);\n\n\t/*\n\tconsole.log({\n\t\tdecIncrs,\n\t\toneIncrs,\n\t\twholeIncrs,\n\t\tnumIncrs,\n\t\ttimeIncrs,\n\t\tfixedDec,\n\t});\n\t*/\n\n\tfunction timeAxisStamps(stampCfg, fmtDate) {\n\t\treturn stampCfg.map(s => s.map((v, i) =>\n\t\t\ti == 0 || i == 8 || v == null ? v : fmtDate(i == 1 || s[8] == 0 ? v : s[1] + v)\n\t\t));\n\t}\n\n\t// TODO: will need to accept spaces[] and pull incr into the loop when grid will be non-uniform, eg for log scales.\n\t// currently we ignore this for months since they're *nearly* uniform and the added complexity is not worth it\n\tfunction timeAxisVals(tzDate, stamps) {\n\t\treturn (self, splits, axisIdx, foundSpace, foundIncr) => {\n\t\t\tvar s = stamps.find(s => foundIncr >= s[0]) || stamps[stamps.length - 1];\n\n\t\t\t// these track boundaries when a full label is needed again\n\t\t\tvar prevYear;\n\t\t\tvar prevMnth;\n\t\t\tvar prevDate;\n\t\t\tvar prevHour;\n\t\t\tvar prevMins;\n\t\t\tvar prevSecs;\n\n\t\t\treturn splits.map(split => {\n\t\t\t\tvar date = tzDate(split);\n\n\t\t\t\tvar newYear = date.getFullYear();\n\t\t\t\tvar newMnth = date.getMonth();\n\t\t\t\tvar newDate = date.getDate();\n\t\t\t\tvar newHour = date.getHours();\n\t\t\t\tvar newMins = date.getMinutes();\n\t\t\t\tvar newSecs = date.getSeconds();\n\n\t\t\t\tvar stamp = (\n\t\t\t\t\tnewYear != prevYear && s[2] ||\n\t\t\t\t\tnewMnth != prevMnth && s[3] ||\n\t\t\t\t\tnewDate != prevDate && s[4] ||\n\t\t\t\t\tnewHour != prevHour && s[5] ||\n\t\t\t\t\tnewMins != prevMins && s[6] ||\n\t\t\t\t\tnewSecs != prevSecs && s[7] ||\n\t\t\t\t\t                       s[1]\n\t\t\t\t);\n\n\t\t\t\tprevYear = newYear;\n\t\t\t\tprevMnth = newMnth;\n\t\t\t\tprevDate = newDate;\n\t\t\t\tprevHour = newHour;\n\t\t\t\tprevMins = newMins;\n\t\t\t\tprevSecs = newSecs;\n\n\t\t\t\treturn stamp(date);\n\t\t\t});\n\t\t}\n\t}\n\n\t// for when axis.values is defined as a static fmtDate template string\n\tfunction timeAxisVal(tzDate, dateTpl) {\n\t\tvar stamp = fmtDate(dateTpl);\n\t\treturn (self, splits, axisIdx, foundSpace, foundIncr) => splits.map(split => stamp(tzDate(split)));\n\t}\n\n\tfunction mkDate(y, m, d) {\n\t\treturn new Date(y, m, d);\n\t}\n\n\tfunction timeSeriesStamp(stampCfg, fmtDate) {\n\t\treturn fmtDate(stampCfg);\n\t}\n\tvar _timeSeriesStamp = '{YYYY}-{MM}-{DD} {h}:{mm}{aa}';\n\n\tfunction timeSeriesVal(tzDate, stamp) {\n\t\treturn (self, val) => stamp(tzDate(val));\n\t}\n\n\tvar legendWidth = 2;\n\n\tvar legendDash = \"solid\";\n\n\tfunction legendStroke(self, seriesIdx) {\n\t\tvar s = self.series[seriesIdx];\n\t\treturn s.width ? s.stroke(self, seriesIdx) : s.points.width ? s.points.stroke(self, seriesIdx) : null;\n\t}\n\n\tfunction legendFill(self, seriesIdx) {\n\t\treturn self.series[seriesIdx].fill(self, seriesIdx);\n\t}\n\n\tfunction cursorPointShow(self, si) {\n\t\tvar o = self.cursor.points;\n\n\t\tvar pt = placeDiv();\n\n\t\tvar stroke = o.stroke(self, si);\n\t\tvar fill = o.fill(self, si);\n\n\t\tpt.style.background = fill || stroke;\n\n\t\tvar size = o.size(self, si);\n\t\tvar width = o.width(self, si, size);\n\n\t\tif (width)\n\t\t\t{ pt.style.border = width + \"px solid \" + stroke; }\n\n\t\tvar mar = size / -2;\n\n\t\tsetStylePx(pt, WIDTH, size);\n\t\tsetStylePx(pt, HEIGHT, size);\n\t\tsetStylePx(pt, \"marginLeft\", mar);\n\t\tsetStylePx(pt, \"marginTop\", mar);\n\n\t\treturn pt;\n\t}\n\n\tfunction cursorPointFill(self, si) {\n\t\tvar s = self.series[si];\n\t\treturn s.stroke(self, si);\n\t}\n\n\tfunction cursorPointStroke(self, si) {\n\t\tvar s = self.series[si];\n\t\treturn s.stroke(self, si);\n\t}\n\n\tfunction cursorPointSize(self, si) {\n\t\tvar s = self.series[si];\n\t\treturn ptDia(s.width, 1);\n\t}\n\n\tfunction dataIdx(self, seriesIdx, cursorIdx) {\n\t\treturn cursorIdx;\n\t}\n\n\tvar moveTuple = [0,0];\n\n\tfunction cursorMove(self, mouseLeft1, mouseTop1) {\n\t\tmoveTuple[0] = mouseLeft1;\n\t\tmoveTuple[1] = mouseTop1;\n\t\treturn moveTuple;\n\t}\n\n\tfunction filtBtn0(self, targ, handle) {\n\t\treturn e => {\n\t\t\te.button == 0 && handle(e);\n\t\t};\n\t}\n\n\tfunction passThru(self, targ, handle) {\n\t\treturn handle;\n\t}\n\n\tvar cursorOpts = {\n\t\tshow: true,\n\t\tx: true,\n\t\ty: true,\n\t\tlock: false,\n\t\tmove: cursorMove,\n\t\tpoints: {\n\t\t\tshow:   cursorPointShow,\n\t\t\tsize:   cursorPointSize,\n\t\t\twidth:  0,\n\t\t\tstroke: cursorPointStroke,\n\t\t\tfill:   cursorPointFill,\n\t\t},\n\n\t\tbind: {\n\t\t\tmousedown:   filtBtn0,\n\t\t\tmouseup:     filtBtn0,\n\t\t\tclick:       filtBtn0,\n\t\t\tdblclick:    filtBtn0,\n\n\t\t\tmousemove:   passThru,\n\t\t\tmouseleave:  passThru,\n\t\t\tmouseenter:  passThru,\n\t\t},\n\n\t\tdrag: {\n\t\t\tsetScale: true,\n\t\t\tx: true,\n\t\t\ty: false,\n\t\t\tdist: 0,\n\t\t\tuni: null,\n\t\t\t_x: false,\n\t\t\t_y: false,\n\t\t},\n\n\t\tfocus: {\n\t\t\tprox: -1,\n\t\t},\n\n\t\tleft: -10,\n\t\ttop: -10,\n\t\tidx: null,\n\t\tdataIdx: dataIdx,\n\t};\n\n\tvar grid = {\n\t\tshow: true,\n\t\tstroke: \"rgba(0,0,0,0.07)\",\n\t\twidth: 2,\n\t//\tdash: [],\n\t\tfilter: retArg1,\n\t};\n\n\tvar ticks = assign({}, grid, {size: 10});\n\n\tvar font      = '12px system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\n\tvar labelFont = \"bold \" + font;\n\tvar lineMult = 1.5;\t\t// font-size multiplier\n\n\tvar xAxisOpts = {\n\t\tshow: true,\n\t\tscale: \"x\",\n\t\tstroke: hexBlack,\n\t\tspace: 50,\n\t\tgap: 5,\n\t\tsize: 50,\n\t\tlabelSize: 30,\n\t\tlabelFont: labelFont,\n\t\tside: 2,\n\t//\tclass: \"x-vals\",\n\t//\tincrs: timeIncrs,\n\t//\tvalues: timeVals,\n\t//\tfilter: retArg1,\n\t\tgrid: grid,\n\t\tticks: ticks,\n\t\tfont: font,\n\t\trotate: 0,\n\t};\n\n\tvar numSeriesLabel = \"Value\";\n\tvar timeSeriesLabel = \"Time\";\n\n\tvar xSeriesOpts = {\n\t\tshow: true,\n\t\tscale: \"x\",\n\t\tauto: false,\n\t\tsorted: 1,\n\t//\tlabel: \"Time\",\n\t//\tvalue: v => stamp(new Date(v * 1e3)),\n\n\t\t// internal caches\n\t\tmin: inf,\n\t\tmax: -inf,\n\t\tidxs: [],\n\t};\n\n\tfunction numAxisVals(self, splits, axisIdx, foundSpace, foundIncr) {\n\t\treturn splits.map(v => v == null ? \"\" : fmtNum(v));\n\t}\n\n\tfunction numAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\t\tvar splits = [];\n\n\t\tvar numDec = fixedDec.get(foundIncr) || 0;\n\n\t\tscaleMin = forceMin ? scaleMin : roundDec(incrRoundUp(scaleMin, foundIncr), numDec);\n\n\t\tfor (var val = scaleMin; val <= scaleMax; val = roundDec(val + foundIncr, numDec))\n\t\t\t{ splits.push(Object.is(val, -0) ? 0 : val); }\t\t// coalesces -0\n\n\t\treturn splits;\n\t}\n\n\t// this doesnt work for sin, which needs to come off from 0 independently in pos and neg dirs\n\tfunction logAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\t\tvar splits = [];\n\n\t\tvar logBase = self.scales[self.axes[axisIdx].scale].log;\n\n\t\tvar logFn = logBase == 10 ? log10 : log2;\n\n\t\tvar exp = floor(logFn(scaleMin));\n\n\t\tfoundIncr = pow(logBase, exp);\n\n\t\tif (exp < 0)\n\t\t\t{ foundIncr = roundDec(foundIncr, -exp); }\n\n\t\tvar split = scaleMin;\n\n\t\tdo {\n\t\t\tsplits.push(split);\n\t\t\tsplit = roundDec(split + foundIncr, fixedDec.get(foundIncr));\n\n\t\t\tif (split >= foundIncr * logBase)\n\t\t\t\t{ foundIncr = split; }\n\n\t\t} while (split <= scaleMax);\n\n\t\treturn splits;\n\t}\n\n\tfunction asinhAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\t\tvar sc = self.scales[self.axes[axisIdx].scale];\n\n\t\tvar linthresh = sc.asinh;\n\n\t\tvar posSplits = scaleMax > linthresh ? logAxisSplits(self, axisIdx, max(linthresh, scaleMin), scaleMax, foundIncr) : [linthresh];\n\t\tvar zero = scaleMax >= 0 && scaleMin <= 0 ? [0] : [];\n\t\tvar negSplits = scaleMin < -linthresh ? logAxisSplits(self, axisIdx, max(linthresh, -scaleMax), -scaleMin, foundIncr): [linthresh];\n\n\t\treturn negSplits.reverse().map(v => -v).concat(zero, posSplits);\n\t}\n\n\tvar RE_ALL   = /./;\n\tvar RE_12357 = /[12357]/;\n\tvar RE_125   = /[125]/;\n\tvar RE_1     = /1/;\n\n\tfunction logAxisValsFilt(self, splits, axisIdx, foundSpace, foundIncr) {\n\t\tvar axis = self.axes[axisIdx];\n\t\tvar scaleKey = axis.scale;\n\t\tvar sc = self.scales[scaleKey];\n\n\t\tif (sc.distr == 3 && sc.log == 2)\n\t\t\t{ return splits; }\n\n\t\tvar valToPos = self.valToPos;\n\n\t\tvar minSpace = axis._space;\n\n\t\tvar _10 = valToPos(10, scaleKey);\n\n\t\tvar re = (\n\t\t\tvalToPos(9, scaleKey) - _10 >= minSpace ? RE_ALL :\n\t\t\tvalToPos(7, scaleKey) - _10 >= minSpace ? RE_12357 :\n\t\t\tvalToPos(5, scaleKey) - _10 >= minSpace ? RE_125 :\n\t\t\tRE_1\n\t\t);\n\n\t\treturn splits.map(v => ((sc.distr == 4 && v == 0) || re.test(v)) ? v : null);\n\t}\n\n\tfunction numSeriesVal(self, val) {\n\t\treturn val == null ? \"\" : fmtNum(val);\n\t}\n\n\tvar yAxisOpts = {\n\t\tshow: true,\n\t\tscale: \"y\",\n\t\tstroke: hexBlack,\n\t\tspace: 30,\n\t\tgap: 5,\n\t\tsize: 50,\n\t\tlabelSize: 30,\n\t\tlabelFont: labelFont,\n\t\tside: 3,\n\t//\tclass: \"y-vals\",\n\t//\tincrs: numIncrs,\n\t//\tvalues: (vals, space) => vals,\n\t//\tfilter: retArg1,\n\t\tgrid: grid,\n\t\tticks: ticks,\n\t\tfont: font,\n\t\trotate: 0,\n\t};\n\n\t// takes stroke width\n\tfunction ptDia(width, mult) {\n\t\tvar dia = 3 + (width || 1) * 2;\n\t\treturn roundDec(dia * mult, 3);\n\t}\n\n\tfunction seriesPoints(self, si) {\n\t\tvar xsc = self.scales[self.series[0].scale];\n\t\tvar dim = xsc.ori == 0 ? self.bbox.width : self.bbox.height;\n\t\tvar s = self.series[si];\n\t//\tconst dia = ptDia(s.width, pxRatio);\n\t\tvar maxPts = dim / (s.points.space * pxRatio);\n\t\tvar idxs = self.series[0].idxs;\n\t\treturn idxs[1] - idxs[0] <= maxPts;\n\t}\n\n\tfunction seriesFillTo(self, seriesIdx, dataMin, dataMax) {\n\t\tvar scale = self.scales[self.series[seriesIdx].scale];\n\t\tvar isUpperBandEdge = self.bands && self.bands.some(b => b.series[0] == seriesIdx);\n\t\treturn scale.distr == 3 || isUpperBandEdge ? scale.min : 0;\n\t}\n\n\tvar ySeriesOpts = {\n\t\tscale: \"y\",\n\t\tauto: true,\n\t\tsorted: 0,\n\t\tshow: true,\n\t\tband: false,\n\t\tspanGaps: false,\n\t\talpha: 1,\n\t\tpoints: {\n\t\t\tshow: seriesPoints,\n\t\t//\tstroke: \"#000\",\n\t\t//\tfill: \"#fff\",\n\t\t//\twidth: 1,\n\t\t//\tsize: 10,\n\t\t},\n\t//\tlabel: \"Value\",\n\t//\tvalue: v => v,\n\t\tvalues: null,\n\n\t\t// internal caches\n\t\tmin: inf,\n\t\tmax: -inf,\n\t\tidxs: [],\n\n\t\tpath: null,\n\t\tclip: null,\n\t};\n\n\tfunction clampScale(self, val, scaleMin, scaleMax, scaleKey) {\n\t/*\n\t\tif (val < 0) {\n\t\t\tlet cssHgt = self.bbox.height / pxRatio;\n\t\t\tlet absPos = self.valToPos(abs(val), scaleKey);\n\t\t\tlet fromBtm = cssHgt - absPos;\n\t\t\treturn self.posToVal(cssHgt + fromBtm, scaleKey);\n\t\t}\n\t*/\n\t\treturn scaleMin / 10;\n\t}\n\n\tvar xScaleOpts = {\n\t\ttime: FEAT_TIME,\n\t\tauto: true,\n\t\tdistr: 1,\n\t\tlog: 10,\n\t\tasinh: 1,\n\t\tmin: null,\n\t\tmax: null,\n\t\tdir: 1,\n\t\tori: 0,\n\t};\n\n\tvar yScaleOpts = assign({}, xScaleOpts, {\n\t\ttime: false,\n\t\tori: 1,\n\t});\n\n\tvar syncs = {};\n\n\tfunction _sync(key, opts) {\n\t\tvar s = syncs[key];\n\n\t\tif (!s) {\n\t\t\tvar clients = [];\n\n\t\t\ts = {\n\t\t\t\tkey: key,\n\t\t\t\tsub: function sub(client) {\n\t\t\t\t\tclients.push(client);\n\t\t\t\t},\n\t\t\t\tunsub: function unsub(client) {\n\t\t\t\t\tclients = clients.filter(c => c != client);\n\t\t\t\t},\n\t\t\t\tpub: function pub(type, self, x, y, w, h, i) {\n\t\t\t\t\tfor (var i$1 = 0; i$1 < clients.length; i$1++)\n\t\t\t\t\t\t{ clients[i$1] != self && clients[i$1].pub(type, self, x, y, w, h, i$1); }\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (key != null)\n\t\t\t\t{ syncs[key] = s; }\n\t\t}\n\n\t\treturn s;\n\t}\n\n\tfunction orient(u, seriesIdx, cb) {\n\t\tvar series = u.series[seriesIdx];\n\t\tvar scales = u.scales;\n\t\tvar bbox   = u.bbox;\n\t\tvar scaleX = scales[u.series[0].scale];\n\n\t\tvar dx = u._data[0],\n\t\t\tdy = u._data[seriesIdx],\n\t\t\tsx = scaleX,\n\t\t\tsy = scales[series.scale],\n\t\t\tl = bbox.left,\n\t\t\tt = bbox.top,\n\t\t\tw = bbox.width,\n\t\t\th = bbox.height,\n\t\t\tH = u.valToPosH,\n\t\t\tV = u.valToPosV;\n\n\t\treturn (sx.ori == 0\n\t\t\t? cb(\n\t\t\t\tseries,\n\t\t\t\tdx,\n\t\t\t\tdy,\n\t\t\t\tsx,\n\t\t\t\tsy,\n\t\t\t\tH,\n\t\t\t\tV,\n\t\t\t\tl,\n\t\t\t\tt,\n\t\t\t\tw,\n\t\t\t\th,\n\t\t\t\tmoveToH,\n\t\t\t\tlineToH,\n\t\t\t\trectH,\n\t\t\t\tarcH,\n\t\t\t\tbezierCurveToH\n\t\t\t)\n\t\t\t: cb(\n\t\t\t\tseries,\n\t\t\t\tdx,\n\t\t\t\tdy,\n\t\t\t\tsx,\n\t\t\t\tsy,\n\t\t\t\tV,\n\t\t\t\tH,\n\t\t\t\tt,\n\t\t\t\tl,\n\t\t\t\th,\n\t\t\t\tw,\n\t\t\t\tmoveToV,\n\t\t\t\tlineToV,\n\t\t\t\trectV,\n\t\t\t\tarcV,\n\t\t\t\tbezierCurveToV\n\t\t\t)\n\t\t);\n\t}\n\n\t// creates inverted band clip path (towards from stroke path -> yMax)\n\tfunction clipBandLine(self, seriesIdx, idx0, idx1, strokePath) {\n\t\treturn orient(self, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tvar dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\t\t\tvar lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\t\tvar frIdx, toIdx;\n\n\t\t\tif (dir == 1) {\n\t\t\t\tfrIdx = idx0;\n\t\t\t\ttoIdx = idx1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfrIdx = idx1;\n\t\t\t\ttoIdx = idx0;\n\t\t\t}\n\n\t\t\t// path start\n\t\t\tvar x0 = incrRound(valToPosX(dataX[frIdx], scaleX, xDim, xOff), 0.5);\n\t\t\tvar y0 = incrRound(valToPosY(dataY[frIdx], scaleY, yDim, yOff), 0.5);\n\t\t\t// path end x\n\t\t\tvar x1 = incrRound(valToPosX(dataX[toIdx], scaleX, xDim, xOff), 0.5);\n\t\t\t// upper y limit\n\t\t\tvar yLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\n\t\t\tvar clip = new Path2D(strokePath);\n\n\t\t\tlineTo(clip, x1, yLimit);\n\t\t\tlineTo(clip, x0, yLimit);\n\t\t\tlineTo(clip, x0, y0);\n\n\t\t\treturn clip;\n\t\t});\n\t}\n\n\tfunction clipGaps(gaps, ori, plotLft, plotTop, plotWid, plotHgt) {\n\t\tvar clip = null;\n\n\t\t// create clip path (invert gaps and non-gaps)\n\t\tif (gaps.length > 0) {\n\t\t\tclip = new Path2D();\n\n\t\t\tvar rect = ori == 0 ? rectH : rectV;\n\n\t\t\tvar prevGapEnd = plotLft;\n\n\t\t\tfor (var i = 0; i < gaps.length; i++) {\n\t\t\t\tvar g = gaps[i];\n\n\t\t\t\trect(clip, prevGapEnd, plotTop, g[0] - prevGapEnd, plotTop + plotHgt);\n\n\t\t\t\tprevGapEnd = g[1];\n\t\t\t}\n\n\t\t\trect(clip, prevGapEnd, plotTop, plotLft + plotWid - prevGapEnd, plotTop + plotHgt);\n\t\t}\n\n\t\treturn clip;\n\t}\n\n\tfunction addGap(gaps, fromX, toX) {\n\t\tif (toX > fromX) {\n\t\t\tvar prevGap = gaps[gaps.length - 1];\n\n\t\t\tif (prevGap && prevGap[0] == fromX)\t\t\t// TODO: gaps must be encoded at stroke widths?\n\t\t\t\t{ prevGap[1] = toX; }\n\t\t\telse\n\t\t\t\t{ gaps.push([fromX, toX]); }\n\t\t}\n\t}\n\n\t// orientation-inverting canvas functions\n\tfunction moveToH(p, x, y) { p.moveTo(x, y); }\n\tfunction moveToV(p, y, x) { p.moveTo(x, y); }\n\tfunction lineToH(p, x, y) { p.lineTo(x, y); }\n\tfunction lineToV(p, y, x) { p.lineTo(x, y); }\n\tfunction rectH(p, x, y, w, h) { p.rect(x, y, w, h); }\n\tfunction rectV(p, y, x, h, w) { p.rect(x, y, w, h); }\n\tfunction arcH(p, x, y, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\n\tfunction arcV(p, y, x, r, startAngle, endAngle) { p.arc(x, y, r, startAngle, endAngle); }\n\tfunction bezierCurveToH(p, bp1x, bp1y, bp2x, bp2y, p2x, p2y) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }function bezierCurveToV(p, bp1y, bp1x, bp2y, bp2x, p2y, p2x) { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); }\n\n\tfunction _drawAcc(lineTo) {\n\t\treturn (stroke, accX, minY, maxY, outY) => {\n\t\t\tif (minY != maxY) {\n\t\t\t\tlineTo(stroke, accX, minY);\n\t\t\t\tlineTo(stroke, accX, maxY);\n\t\t\t\tlineTo(stroke, accX, outY);\n\t\t\t}\n\t\t};\n\t}\n\n\tvar drawAccH = _drawAcc(lineToH);\n\tvar drawAccV = _drawAcc(lineToV);\n\n\tfunction linear() {\n\t\treturn (u, seriesIdx, idx0, idx1) => {\n\t\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\t\tvar lineTo, drawAcc;\n\n\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\tlineTo = lineToH;\n\t\t\t\t\tdrawAcc = drawAccH;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlineTo = lineToV;\n\t\t\t\t\tdrawAcc = drawAccV;\n\t\t\t\t}\n\n\t\t\t\tvar dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\t\tvar _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\t\tvar stroke = _paths.stroke;\n\n\t\t\t\tvar minY = inf,\n\t\t\t\t\tmaxY = -inf,\n\t\t\t\t\toutY, outX, drawnAtX;\n\n\t\t\t\tvar gaps = [];\n\n\t\t\t\tvar accX = round(valToPosX(dataX[dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\t\tvar accGaps = false;\n\n\t\t\t\t// data edges\n\t\t\t\tvar lftIdx = nonNullIdx(dataY, idx0, idx1,  1 * dir);\n\t\t\t\tvar rgtIdx = nonNullIdx(dataY, idx0, idx1, -1 * dir);\n\t\t\t\tvar lftX = incrRound(valToPosX(dataX[lftIdx], scaleX, xDim, xOff), 0.5);\n\t\t\t\tvar rgtX = incrRound(valToPosX(dataX[rgtIdx], scaleX, xDim, xOff), 0.5);\n\n\t\t\t\tif (lftX > xOff)\n\t\t\t\t\t{ addGap(gaps, xOff, lftX); }\n\n\t\t\t\tfor (var i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\t\tvar x = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\t\tif (x == accX) {\n\t\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\n\t\t\t\t\t\t\tif (minY == inf)\n\t\t\t\t\t\t\t\t{ lineTo(stroke, x, outY); }\n\n\t\t\t\t\t\t\tminY = min(outY, minY);\n\t\t\t\t\t\t\tmaxY = max(outY, maxY);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (!accGaps && dataY[i] === null)\n\t\t\t\t\t\t\t{ accGaps = true; }\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar _addGap = false;\n\n\t\t\t\t\t\tif (minY != inf) {\n\t\t\t\t\t\t\tdrawAcc(stroke, accX, minY, maxY, outY);\n\t\t\t\t\t\t\toutX = drawnAtX = accX;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (accGaps) {\n\t\t\t\t\t\t\t_addGap = true;\n\t\t\t\t\t\t\taccGaps = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (dataY[i] != null) {\n\t\t\t\t\t\t\toutY = round(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t\t\t\tlineTo(stroke, x, outY);\n\t\t\t\t\t\t\tminY = maxY = outY;\n\n\t\t\t\t\t\t\t// prior pixel can have data but still start a gap if ends with null\n\t\t\t\t\t\t\tif (x - accX > 1 && dataY[i - dir] === null)\n\t\t\t\t\t\t\t\t{ _addGap = true; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminY = inf;\n\t\t\t\t\t\t\tmaxY = -inf;\n\n\t\t\t\t\t\t\tif (!accGaps && dataY[i] === null)\n\t\t\t\t\t\t\t\t{ accGaps = true; }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_addGap && addGap(gaps, outX, x);\n\n\t\t\t\t\t\taccX = x;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (minY != inf && minY != maxY && drawnAtX != accX)\n\t\t\t\t\t{ drawAcc(stroke, accX, minY, maxY, outY); }\n\n\t\t\t\tif (rgtX < xOff + xDim)\n\t\t\t\t\t{ addGap(gaps, rgtX, xOff + xDim); }\n\n\t\t\t\tif (series.fill != null) {\n\t\t\t\t\tvar fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\t\tvar fillTo = round(valToPosY(series.fillTo(u, seriesIdx, series.min, series.max), scaleY, yDim, yOff));\n\n\t\t\t\t\tlineTo(fill, rgtX, fillTo);\n\t\t\t\t\tlineTo(fill, lftX, fillTo);\n\t\t\t\t}\n\n\t\t\t\tif (!series.spanGaps)\n\t\t\t\t\t{ _paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim); }\n\n\t\t\t\tif (u.bands.length > 0) {\n\t\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t\t}\n\n\t\t\t\treturn _paths;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction spline(opts) {\n\t\treturn (u, seriesIdx, idx0, idx1) => {\n\t\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\t\tvar moveTo, bezierCurveTo, lineTo;\n\n\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\tmoveTo = moveToH;\n\t\t\t\t\tlineTo = lineToH;\n\t\t\t\t\tbezierCurveTo = bezierCurveToH;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmoveTo = moveToV;\n\t\t\t\t\tlineTo = lineToV;\n\t\t\t\t\tbezierCurveTo = bezierCurveToV;\n\t\t\t\t}\n\n\t\t\t\tvar _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\t\tvar gaps = [];\n\t\t\t\tvar inGap = false;\n\t\t\t\tvar firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\t\tvar prevXPos = firstXPos;\n\n\t\t\t\tvar xCoords = [];\n\t\t\t\tvar yCoords = [];\n\n\t\t\t\tfor (var i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\t\tvar yVal = dataY[i];\n\t\t\t\t\tvar xVal = dataX[i];\n\t\t\t\t\tvar xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\n\t\t\t\t\tif (yVal == null) {\n\t\t\t\t\t\tif (yVal === null) {\n\t\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (inGap) {\n\t\t\t\t\t\t\taddGap(gaps, prevXPos, xPos);\n\t\t\t\t\t\t\tinGap = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\txCoords.push((prevXPos = xPos));\n\t\t\t\t\t\tyCoords.push(valToPosY(dataY[i], scaleY, yDim, yOff));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar _paths = {stroke: catmullRomFitting(xCoords, yCoords, 0.5, moveTo, bezierCurveTo), fill: null, clip: null, band: null};\n\t\t\t\tvar stroke = _paths.stroke;\n\n\t\t\t\tif (series.fill != null) {\n\t\t\t\t\tvar fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\t\tvar fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\t\tvar minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t\t}\n\n\t\t\t\tif (!series.spanGaps)\n\t\t\t\t\t{ _paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim); }\n\n\t\t\t\tif (u.bands.length > 0) {\n\t\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t\t}\n\n\t\t\t\treturn _paths;\n\n\t\t\t\t//  if FEAT_PATHS: false in rollup.config.js\n\t\t\t\t//\tu.ctx.save();\n\t\t\t\t//\tu.ctx.beginPath();\n\t\t\t\t//\tu.ctx.rect(u.bbox.left, u.bbox.top, u.bbox.width, u.bbox.height);\n\t\t\t\t//\tu.ctx.clip();\n\t\t\t\t//\tu.ctx.strokeStyle = u.series[sidx].stroke;\n\t\t\t\t//\tu.ctx.stroke(stroke);\n\t\t\t\t//\tu.ctx.fillStyle = u.series[sidx].fill;\n\t\t\t\t//\tu.ctx.fill(fill);\n\t\t\t\t//\tu.ctx.restore();\n\t\t\t\t//\treturn null;\n\t\t\t});\n\t\t};\n\t}\n\n\t// adapted from https://gist.github.com/nicholaswmin/c2661eb11cad5671d816 (MIT)\n\n\tfunction catmullRomFitting(xCoords, yCoords, alpha, moveTo, bezierCurveTo) {\n\t\tvar path = new Path2D();\n\n\t\tvar dataLen = xCoords.length;\n\n\t\tvar p0x,\n\t\t\tp0y,\n\t\t\tp1x,\n\t\t\tp1y,\n\t\t\tp2x,\n\t\t\tp2y,\n\t\t\tp3x,\n\t\t\tp3y,\n\t\t\tbp1x,\n\t\t\tbp1y,\n\t\t\tbp2x,\n\t\t\tbp2y,\n\t\t\td1,\n\t\t\td2,\n\t\t\td3,\n\t\t\tA,\n\t\t\tB,\n\t\t\tN,\n\t\t\tM,\n\t\t\td3powA,\n\t\t\td2powA,\n\t\t\td3pow2A,\n\t\t\td2pow2A,\n\t\t\td1pow2A,\n\t\t\td1powA;\n\n\t\tmoveTo(path, round(xCoords[0]), round(yCoords[0]));\n\n\t\tfor (var i = 0; i < dataLen - 1; i++) {\n\t\t\tvar p0i = i == 0 ? 0 : i - 1;\n\n\t\t\tp0x = xCoords[p0i];\n\t\t\tp0y = yCoords[p0i];\n\n\t\t\tp1x = xCoords[i];\n\t\t\tp1y = yCoords[i];\n\n\t\t\tp2x = xCoords[i + 1];\n\t\t\tp2y = yCoords[i + 1];\n\n\t\t\tif (i + 2 < dataLen) {\n\t\t\t\tp3x = xCoords[i + 2];\n\t\t\t\tp3y = yCoords[i + 2];\n\t\t\t} else {\n\t\t\t\tp3x = p2x;\n\t\t\t\tp3y = p2y;\n\t\t\t}\n\n\t\t\td1 = sqrt(pow(p0x - p1x, 2) + pow(p0y - p1y, 2));\n\t\t\td2 = sqrt(pow(p1x - p2x, 2) + pow(p1y - p2y, 2));\n\t\t\td3 = sqrt(pow(p2x - p3x, 2) + pow(p2y - p3y, 2));\n\n\t\t\t// Catmull-Rom to Cubic Bezier conversion matrix\n\n\t\t\t// A = 2d1^2a + 3d1^a * d2^a + d3^2a\n\t\t\t// B = 2d3^2a + 3d3^a * d2^a + d2^2a\n\n\t\t\t// [   0\t\t\t 1\t\t\t0\t\t  0\t\t  ]\n\t\t\t// [   -d2^2a /N\t A/N\t\t  d1^2a /N   0\t\t  ]\n\t\t\t// [   0\t\t\t d3^2a /M\t B/M\t\t-d2^2a /M  ]\n\t\t\t// [   0\t\t\t 0\t\t\t1\t\t  0\t\t  ]\n\n\t\t\td3powA  = pow(d3, alpha);\n\t\t\td3pow2A = pow(d3, alpha * 2);\n\t\t\td2powA  = pow(d2, alpha);\n\t\t\td2pow2A = pow(d2, alpha * 2);\n\t\t\td1powA  = pow(d1, alpha);\n\t\t\td1pow2A = pow(d1, alpha * 2);\n\n\t\t\tA = 2 * d1pow2A + 3 * d1powA * d2powA + d2pow2A;\n\t\t\tB = 2 * d3pow2A + 3 * d3powA * d2powA + d2pow2A;\n\t\t\tN = 3 * d1powA * (d1powA + d2powA);\n\n\t\t\tif (N > 0)\n\t\t\t\t{ N = 1 / N; }\n\n\t\t\tM = 3 * d3powA * (d3powA + d2powA);\n\n\t\t\tif (M > 0)\n\t\t\t\t{ M = 1 / M; }\n\n\t\t\tbp1x = (-d2pow2A * p0x + A * p1x + d1pow2A * p2x) * N;\n\t\t\tbp1y = (-d2pow2A * p0y + A * p1y + d1pow2A * p2y) * N;\n\n\t\t\tbp2x = (d3pow2A * p1x + B * p2x - d2pow2A * p3x) * M;\n\t\t\tbp2y = (d3pow2A * p1y + B * p2y - d2pow2A * p3y) * M;\n\n\t\t\tif (bp1x == 0 && bp1y == 0) {\n\t\t\t\tbp1x = p1x;\n\t\t\t\tbp1y = p1y;\n\t\t\t}\n\n\t\t\tif (bp2x == 0 && bp2y == 0) {\n\t\t\t\tbp2x = p2x;\n\t\t\t\tbp2y = p2y;\n\t\t\t}\n\n\t\t\tbezierCurveTo(path, bp1x, bp1y, bp2x, bp2y, p2x, p2y);\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tfunction stepped(opts) {\n\t\tvar align = ifNull(opts.align, 1);\n\t\t// whether to draw ascenders/descenders at null/gap bondaries\n\t\tvar ascDesc = ifNull(opts.ascDesc, false);\n\n\t\treturn (u, seriesIdx, idx0, idx1) => {\n\t\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\t\tvar lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\t\t\tvar _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\t\t\t\tvar stroke = _paths.stroke;\n\n\t\t\t\tvar _dir = 1 * scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1,  1);\n\t\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\t\tvar gaps = [];\n\t\t\t\tvar inGap = false;\n\t\t\t\tvar prevYPos  = round(valToPosY(dataY[_dir == 1 ? idx0 : idx1], scaleY, yDim, yOff));\n\t\t\t\tvar firstXPos = round(valToPosX(dataX[_dir == 1 ? idx0 : idx1], scaleX, xDim, xOff));\n\t\t\t\tvar prevXPos = firstXPos;\n\n\t\t\t\tlineTo(stroke, firstXPos, prevYPos);\n\n\t\t\t\tfor (var i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\t\tvar yVal1 = dataY[i];\n\n\t\t\t\t\tvar x1 = round(valToPosX(dataX[i], scaleX, xDim, xOff));\n\n\t\t\t\t\tif (yVal1 == null) {\n\t\t\t\t\t\tif (yVal1 === null) {\n\t\t\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\t\t\t\t\t\t\tinGap = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar y1 = round(valToPosY(yVal1, scaleY, yDim, yOff));\n\n\t\t\t\t\tif (inGap) {\n\t\t\t\t\t\taddGap(gaps, prevXPos, x1);\n\n\t\t\t\t\t\t// don't clip vertical extenders\n\t\t\t\t\t\tif (prevYPos != y1) {\n\t\t\t\t\t\t\tvar halfStroke = (series.width * pxRatio) / 2;\n\n\t\t\t\t\t\t\tvar lastGap = gaps[gaps.length - 1];\n\n\t\t\t\t\t\t\tlastGap[0] += (ascDesc || align ==  1) ? halfStroke : -halfStroke;\n\t\t\t\t\t\t\tlastGap[1] -= (ascDesc || align == -1) ? halfStroke : -halfStroke;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tinGap = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (align == 1)\n\t\t\t\t\t\t{ lineTo(stroke, x1, prevYPos); }\n\t\t\t\t\telse\n\t\t\t\t\t\t{ lineTo(stroke, prevXPos, y1); }\n\n\t\t\t\t\tlineTo(stroke, x1, y1);\n\n\t\t\t\t\tprevYPos = y1;\n\t\t\t\t\tprevXPos = x1;\n\t\t\t\t}\n\n\t\t\t\tif (series.fill != null) {\n\t\t\t\t\tvar fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\t\tvar fillTo = series.fillTo(u, seriesIdx, series.min, series.max);\n\t\t\t\t\tvar minY = round(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t\t\tlineTo(fill, prevXPos, minY);\n\t\t\t\t\tlineTo(fill, firstXPos, minY);\n\t\t\t\t}\n\n\t\t\t\tif (!series.spanGaps)\n\t\t\t\t\t{ _paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim); }\n\n\t\t\t\tif (u.bands.length > 0) {\n\t\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t\t_paths.band = clipBandLine(u, seriesIdx, idx0, idx1, stroke);\n\t\t\t\t}\n\n\t\t\t\treturn _paths;\n\t\t\t});\n\t\t};\n\t}\n\n\tfunction bars(opts) {\n\t\topts = opts || EMPTY_OBJ;\n\t\tvar size = ifNull(opts.size, [0.6, inf]);\n\t\tvar align = opts.align || 0;\n\n\t\tvar gapFactor = 1 - size[0];\n\t\tvar maxWidth  = ifNull(size[1], inf) * pxRatio;\n\n\t\treturn (u, seriesIdx, idx0, idx1) => {\n\t\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\t\tvar rect = scaleX.ori == 0 ? rectH : rectV;\n\n\t\t\t\tvar colWid = valToPosX(dataX[1], scaleX, xDim, xOff) - valToPosX(dataX[0], scaleX, xDim, xOff);\n\n\t\t\t\tvar gapWid = colWid * gapFactor;\n\n\t\t\t\tvar fillToY = series.fillTo(u, seriesIdx, series.min, series.max);\n\n\t\t\t\tvar y0Pos = valToPosY(fillToY, scaleY, yDim, yOff);\n\n\t\t\t\tvar strokeWidth = round(series.width * pxRatio);\n\n\t\t\t\tvar barWid = round(min(maxWidth, colWid - gapWid) - strokeWidth);\n\n\t\t\t\tvar xShift = align == 1 ? 0 : align == -1 ? barWid : barWid / 2;\n\n\t\t\t\tvar _paths = {stroke: new Path2D(), fill: null, clip: null, band: null};\n\n\t\t\t\tvar hasBands = u.bands.length > 0;\n\t\t\t\tvar yLimit;\n\n\t\t\t\tif (hasBands) {\n\t\t\t\t\t// ADDL OPT: only create band clips for series that are band lower edges\n\t\t\t\t\t// if (b.series[1] == i && _paths.band == null)\n\t\t\t\t\t_paths.band = new Path2D();\n\t\t\t\t\tyLimit = incrRound(valToPosY(scaleY.max, scaleY, yDim, yOff), 0.5);\n\t\t\t\t}\n\n\t\t\t\tvar stroke = _paths.stroke;\n\t\t\t\tvar band = _paths.band;\n\n\t\t\t\tvar _dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\t\tfor (var i = _dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dir) {\n\t\t\t\t\tvar yVal = dataY[i];\n\n\t\t\t\t\t// interpolate upwards band clips\n\t\t\t\t\tif (yVal == null) {\n\t\t\t\t\t\tif (hasBands) {\n\t\t\t\t\t\t\t// simple, but inefficient bi-directinal linear scans on each iteration\n\t\t\t\t\t\t\tvar prevNonNull = nonNullIdx(dataY, _dir == 1 ? idx0 : idx1, i, -_dir);\n\t\t\t\t\t\t\tvar nextNonNull = nonNullIdx(dataY, i, _dir == 1 ? idx1 : idx0,  _dir);\n\n\t\t\t\t\t\t\tvar prevVal = dataY[prevNonNull];\n\t\t\t\t\t\t\tvar nextVal = dataY[nextNonNull];\n\n\t\t\t\t\t\t\tyVal = prevVal + (i - prevNonNull) / (nextNonNull - prevNonNull) * (nextVal - prevVal);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{ continue; }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar xVal = scaleX.distr == 2 ? i : dataX[i];\n\n\t\t\t\t\t// TODO: all xPos can be pre-computed once for all series in aligned set\n\t\t\t\t\tvar xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\t\t\t\t\tvar yPos = valToPosY(yVal, scaleY, yDim, yOff);\n\n\t\t\t\t\tvar lft = round(xPos - xShift);\n\t\t\t\t\tvar btm = round(max(yPos, y0Pos));\n\t\t\t\t\tvar top = round(min(yPos, y0Pos));\n\t\t\t\t\tvar barHgt = btm - top;\n\n\t\t\t\t\tdataY[i] != null && rect(stroke, lft, top, barWid, barHgt);\n\n\t\t\t\t\tif (hasBands) {\n\t\t\t\t\t\tbtm = top;\n\t\t\t\t\t\ttop = yLimit;\n\t\t\t\t\t\tbarHgt = btm - top;\n\t\t\t\t\t\trect(band, lft, top, barWid, barHgt);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (series.fill != null)\n\t\t\t\t\t{ _paths.fill = new Path2D(stroke); }\n\n\t\t\t\treturn _paths;\n\t\t\t});\n\t\t};\n\t}\n\n\tvar linearPath = linear() ;\n\n\tfunction setDefaults(d, xo, yo, initY) {\n\t\tvar d2 = initY ? [d[0], d[1]].concat(d.slice(2)) : [d[0]].concat(d.slice(1));\n\t\treturn d2.map((o, i) => setDefault(o, i, xo, yo));\n\t}\n\n\tfunction setDefault(o, i, xo, yo) {\n\t\treturn assign({}, (i == 0 ? xo : yo), o);\n\t}\n\n\tvar nullMinMax = [null, null];\n\n\tfunction snapNumX(self, dataMin, dataMax) {\n\t\treturn dataMin == null ? nullMinMax : [dataMin, dataMax];\n\t}\n\n\tvar snapTimeX = snapNumX;\n\n\t// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n\t// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\n\tfunction snapNumY(self, dataMin, dataMax) {\n\t\treturn dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, 0.1, true);\n\t}\n\n\tfunction snapLogY(self, dataMin, dataMax, scale) {\n\t\treturn dataMin == null ? nullMinMax : rangeLog(dataMin, dataMax, self.scales[scale].log, false);\n\t}\n\n\tvar snapLogX = snapLogY;\n\n\tfunction snapAsinhY(self, dataMin, dataMax, scale) {\n\t\treturn dataMin == null ? nullMinMax : rangeAsinh(dataMin, dataMax, self.scales[scale].log, false);\n\t}\n\n\tvar snapAsinhX = snapAsinhY;\n\n\t// dim is logical (getClientBoundingRect) pixels, not canvas pixels\n\tfunction findIncr(min, max, incrs, dim, minSpace) {\n\t\tvar pxPerUnit = dim / (max - min);\n\n\t\tvar minDec = (\"\"+floor(min)).length;\n\n\t\tfor (var i = 0; i < incrs.length; i++) {\n\t\t\tvar space = incrs[i] * pxPerUnit;\n\n\t\t\tvar incrDec = incrs[i] < 10 ? fixedDec.get(incrs[i]) : 0;\n\n\t\t\tif (space >= minSpace && minDec + incrDec < 17)\n\t\t\t\t{ return [incrs[i], space]; }\n\t\t}\n\n\t\treturn [0, 0];\n\t}\n\n\tfunction pxRatioFont(font) {\n\t\tvar fontSize;\n\t\tfont = font.replace(/(\\d+)px/, (m, p1) => (fontSize = round(p1 * pxRatio)) + 'px');\n\t\treturn [font, fontSize];\n\t}\n\n\tfunction uPlot(opts, data, then) {\n\t\tvar self = {};\n\n\t\t// TODO: cache denoms & mins scale.cache = {r, min, }\n\t\tfunction getValPct(val, scale) {\n\t\t\tvar _val = (\n\t\t\t\tscale.distr == 3 ? log10(val > 0 ? val : scale.clamp(self, val, scale.min, scale.max, scale.key)) :\n\t\t\t\tscale.distr == 4 ? asinh(val, scale.asinh) :\n\t\t\t\tval\n\t\t\t);\n\n\t\t\treturn (_val - scale._min) / (scale._max - scale._min);\n\t\t}\n\n\t\tfunction getHPos(val, scale, dim, off) {\n\t\t\tvar pct = getValPct(val, scale);\n\t\t\treturn off + dim * (scale.dir == -1 ? (1 - pct) : pct);\n\t\t}\n\n\t\tfunction getVPos(val, scale, dim, off) {\n\t\t\tvar pct = getValPct(val, scale);\n\t\t\treturn off + dim * (scale.dir == -1 ? pct : (1 - pct));\n\t\t}\n\n\t\tfunction getPos(val, scale, dim, off) {\n\t\t\treturn scale.ori == 0 ? getHPos(val, scale, dim, off) : getVPos(val, scale, dim, off);\n\t\t}\n\n\t\tself.valToPosH = getHPos;\n\t\tself.valToPosV = getVPos;\n\n\t\tvar ready = false;\n\t\tself.status = 0;\n\n\t\tvar root = self.root = placeDiv(UPLOT);\n\n\t\tif (opts.id != null)\n\t\t\t{ root.id = opts.id; }\n\n\t\taddClass(root, opts.class);\n\n\t\tif (opts.title) {\n\t\t\tvar title = placeDiv(TITLE, root);\n\t\t\ttitle.textContent = opts.title;\n\t\t}\n\n\t\tvar can = placeTag(\"canvas\");\n\t\tvar ctx = self.ctx = can.getContext(\"2d\");\n\n\t\tvar wrap = placeDiv(WRAP, root);\n\t\tvar under = placeDiv(UNDER, wrap);\n\t\twrap.appendChild(can);\n\t\tvar over = placeDiv(OVER, wrap);\n\n\t\topts = copy(opts);\n\n\t\tvar pxAlign = ifNull(opts.pxAlign, true);\n\n\t\t(opts.plugins || []).forEach(p => {\n\t\t\tif (p.opts)\n\t\t\t\t{ opts = p.opts(self, opts) || opts; }\n\t\t});\n\n\t\tvar ms = opts.ms || 1e-3;\n\n\t\tvar series  = self.series = setDefaults(opts.series || [], xSeriesOpts, ySeriesOpts, false);\n\t\tvar axes    = self.axes   = setDefaults(opts.axes   || [], xAxisOpts,   yAxisOpts,    true);\n\t\tvar scales  = self.scales = {};\n\t\tvar bands   = self.bands  = opts.bands || [];\n\n\t\tbands.forEach(b => {\n\t\t\tb.fill = fnOrSelf(b.fill || null);\n\t\t});\n\n\t\tvar xScaleKey = series[0].scale;\n\n\t\tvar drawOrderMap = {\n\t\t\taxes: drawAxesGrid,\n\t\t\tseries: drawSeries,\n\t\t};\n\n\t\tvar drawOrder = (opts.drawOrder || [\"axes\", \"series\"]).map(key => drawOrderMap[key]);\n\n\t\tfunction initScale(scaleKey) {\n\t\t\tvar sc = scales[scaleKey];\n\n\t\t\tif (sc == null) {\n\t\t\t\tvar scaleOpts = (opts.scales || EMPTY_OBJ)[scaleKey] || EMPTY_OBJ;\n\n\t\t\t\tif (scaleOpts.from != null) {\n\t\t\t\t\t// ensure parent is initialized\n\t\t\t\t\tinitScale(scaleOpts.from);\n\t\t\t\t\t// dependent scales inherit\n\t\t\t\t\tscales[scaleKey] = assign({}, scales[scaleOpts.from], scaleOpts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tsc = scales[scaleKey] = assign({}, (scaleKey == xScaleKey ? xScaleOpts : yScaleOpts), scaleOpts);\n\n\t\t\t\t\tsc.key = scaleKey;\n\n\t\t\t\t\tvar isTime = sc.time;\n\n\t\t\t\t\tvar rn = sc.range;\n\n\t\t\t\t\tvar rangeIsArr = isArr(rn);\n\n\t\t\t\t\tif (scaleKey != xScaleKey && !rangeIsArr && isObj(rn)) {\n\t\t\t\t\t\tvar cfg = rn;\n\t\t\t\t\t\t// this is similar to snapNumY\n\t\t\t\t\t\trn = (self, dataMin, dataMax) => dataMin == null ? nullMinMax : rangeNum(dataMin, dataMax, cfg);\n\t\t\t\t\t}\n\n\t\t\t\t\tsc.range = fnOrSelf(rn || (isTime ? snapTimeX : scaleKey == xScaleKey ?\n\t\t\t\t\t\t(sc.distr == 3 ? snapLogX : sc.distr == 4 ? snapAsinhX : snapNumX) :\n\t\t\t\t\t\t(sc.distr == 3 ? snapLogY : sc.distr == 4 ? snapAsinhY : snapNumY)\n\t\t\t\t\t));\n\n\t\t\t\t\tsc.auto = fnOrSelf(rangeIsArr ? false : sc.auto);\n\n\t\t\t\t\tsc.clamp = fnOrSelf(sc.clamp || clampScale);\n\n\t\t\t\t\t// caches for expensive ops like asinh() & log()\n\t\t\t\t\tsc._min = sc._max = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tinitScale(\"x\");\n\t\tinitScale(\"y\");\n\n\t\tseries.forEach(s => {\n\t\t\tinitScale(s.scale);\n\t\t});\n\n\t\taxes.forEach(a => {\n\t\t\tinitScale(a.scale);\n\t\t});\n\n\t\tfor (var k in opts.scales)\n\t\t\t{ initScale(k); }\n\n\t\tvar scaleX = scales[xScaleKey];\n\n\t\tvar xScaleDistr = scaleX.distr;\n\n\t\tvar valToPosX, valToPosY, moveTo, arc;\n\n\t\tif (scaleX.ori == 0) {\n\t\t\taddClass(root, ORI_HZ);\n\t\t\tvalToPosX = getHPos;\n\t\t\tvalToPosY = getVPos;\n\t\t\tmoveTo    = moveToH;\n\t\t\tarc       = arcH;\n\t\t\t/*\n\t\t\tupdOriDims = () => {\n\t\t\t\txDimCan = plotWid;\n\t\t\t\txOffCan = plotLft;\n\t\t\t\tyDimCan = plotHgt;\n\t\t\t\tyOffCan = plotTop;\n\n\t\t\t\txDimCss = plotWidCss;\n\t\t\t\txOffCss = plotLftCss;\n\t\t\t\tyDimCss = plotHgtCss;\n\t\t\t\tyOffCss = plotTopCss;\n\t\t\t};\n\t\t\t*/\n\t\t}\n\t\telse {\n\t\t\taddClass(root, ORI_VT);\n\t\t\tvalToPosX = getVPos;\n\t\t\tvalToPosY = getHPos;\n\t\t\tmoveTo    = moveToV;\n\t\t\tarc       = arcV;\n\t\t\t/*\n\t\t\tupdOriDims = () => {\n\t\t\t\txDimCan = plotHgt;\n\t\t\t\txOffCan = plotTop;\n\t\t\t\tyDimCan = plotWid;\n\t\t\t\tyOffCan = plotLft;\n\n\t\t\t\txDimCss = plotHgtCss;\n\t\t\t\txOffCss = plotTopCss;\n\t\t\t\tyDimCss = plotWidCss;\n\t\t\t\tyOffCss = plotLftCss;\n\t\t\t};\n\t\t\t*/\n\t\t}\n\n\t\tvar pendScales = {};\n\n\t\t// explicitly-set initial scales\n\t\tfor (var k$1 in scales) {\n\t\t\tvar sc = scales[k$1];\n\n\t\t\tif (sc.min != null || sc.max != null) {\n\t\t\t\tpendScales[k$1] = {min: sc.min, max: sc.max};\n\t\t\t\tsc.min = sc.max = null;\n\t\t\t}\n\t\t}\n\n\t//\tself.tz = opts.tz || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\tvar _tzDate  = (opts.tzDate || (ts => new Date(ts / ms)));\n\t\tvar _fmtDate = (opts.fmtDate || fmtDate);\n\n\t\tvar _timeAxisSplits = (ms == 1 ? timeAxisSplitsMs(_tzDate) : timeAxisSplitsS(_tzDate));\n\t\tvar _timeAxisVals   = timeAxisVals(_tzDate, timeAxisStamps((ms == 1 ? _timeAxisStampsMs : _timeAxisStampsS), _fmtDate));\n\t\tvar _timeSeriesVal  = timeSeriesVal(_tzDate, timeSeriesStamp(_timeSeriesStamp, _fmtDate));\n\n\t\tvar legend     = assign({show: true, live: true}, opts.legend);\n\t\tvar showLegend = legend.show;\n\n\t\t{\n\t\t\tlegend.width  = fnOrSelf(ifNull(legend.width, legendWidth));\n\t\t\tlegend.dash   = fnOrSelf(legend.dash   || legendDash);\n\t\t\tlegend.stroke = fnOrSelf(legend.stroke || legendStroke);\n\t\t\tlegend.fill   = fnOrSelf(legend.fill   || legendFill);\n\t\t}\n\n\t\tvar legendEl;\n\t\tvar legendRows = [];\n\t\tvar legendCols;\n\t\tvar multiValLegend = false;\n\n\t\tif (showLegend) {\n\t\t\tlegendEl = placeTag(\"table\", LEGEND, root);\n\n\t\t\tvar getMultiVals = series[1] ? series[1].values : null;\n\t\t\tmultiValLegend = getMultiVals != null;\n\n\t\t\tif (multiValLegend) {\n\t\t\t\tvar head = placeTag(\"tr\", LEGEND_THEAD, legendEl);\n\t\t\t\tplaceTag(\"th\", null, head);\n\t\t\t\tlegendCols = getMultiVals(self, 1, 0);\n\n\t\t\t\tfor (var key in legendCols)\n\t\t\t\t\t{ placeTag(\"th\", LEGEND_LABEL, head).textContent = key; }\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlegendCols = {_: 0};\n\t\t\t\taddClass(legendEl, LEGEND_INLINE);\n\t\t\t\tlegend.live && addClass(legendEl, LEGEND_LIVE);\n\t\t\t}\n\t\t}\n\n\t\tfunction initLegendRow(s, i) {\n\t\t\tif (i == 0 && (multiValLegend || !legend.live))\n\t\t\t\t{ return null; }\n\n\t\t\tvar _row = [];\n\n\t\t\tvar row = placeTag(\"tr\", LEGEND_SERIES, legendEl, legendEl.childNodes[i]);\n\n\t\t\taddClass(row, s.class);\n\n\t\t\tif (!s.show)\n\t\t\t\t{ addClass(row, OFF); }\n\n\t\t\tvar label = placeTag(\"th\", null, row);\n\n\t\t\tvar indic = placeDiv(LEGEND_MARKER, label);\n\n\t\t\tif (i > 0) {\n\t\t\t\tvar width  = legend.width(self, i);\n\n\t\t\t\tif (width)\n\t\t\t\t\t{ indic.style.border = width + \"px \" + legend.dash(self, i) + \" \" + legend.stroke(self, i); }\n\n\t\t\t\tindic.style.background = legend.fill(self, i);\n\t\t\t}\n\n\t\t\tvar text = placeDiv(LEGEND_LABEL, label);\n\t\t\ttext.textContent = s.label;\n\n\t\t\tif (i > 0) {\n\t\t\t\tonMouse(\"click\", label, e => {\n\t\t\t\t\tif (cursor._lock)\n\t\t\t\t\t\t{ return; }\n\n\t\t\t\t\tsetSeries(series.indexOf(s), {show: !s.show}, syncOpts.setSeries);\n\t\t\t\t});\n\n\t\t\t\tif (cursorFocus) {\n\t\t\t\t\tonMouse(mouseenter, label, e => {\n\t\t\t\t\t\tif (cursor._lock)\n\t\t\t\t\t\t\t{ return; }\n\n\t\t\t\t\t\tsetSeries(series.indexOf(s), FOCUS_TRUE, syncOpts.setSeries);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var key in legendCols) {\n\t\t\t\tvar v = placeTag(\"td\", LEGEND_VALUE, row);\n\t\t\t\tv.textContent = \"--\";\n\t\t\t\t_row.push(v);\n\t\t\t}\n\n\t\t\treturn _row;\n\t\t}\n\n\t\tvar mouseListeners = new Map();\n\n\t\tfunction onMouse(ev, targ, fn) {\n\t\t\tvar targListeners = mouseListeners.get(targ) || {};\n\t\t\tvar listener = cursor.bind[ev](self, targ, fn);\n\n\t\t\tif (listener) {\n\t\t\t\ton(ev, targ, targListeners[ev] = listener);\n\t\t\t\tmouseListeners.set(targ, targListeners);\n\t\t\t}\n\t\t}\n\n\t\tfunction offMouse(ev, targ, fn) {\n\t\t\tvar targListeners = mouseListeners.get(targ) || {};\n\t\t\toff(ev, targ, targListeners[ev]);\n\t\t\ttargListeners[ev] = null;\n\t\t}\n\n\t\tvar fullWidCss = 0;\n\t\tvar fullHgtCss = 0;\n\n\t\tvar plotWidCss = 0;\n\t\tvar plotHgtCss = 0;\n\n\t\t// plot margins to account for axes\n\t\tvar plotLftCss = 0;\n\t\tvar plotTopCss = 0;\n\n\t\tvar plotLft = 0;\n\t\tvar plotTop = 0;\n\t\tvar plotWid = 0;\n\t\tvar plotHgt = 0;\n\n\t\tself.bbox = {};\n\n\t\tvar shouldSetScales = false;\n\t\tvar shouldSetSize = false;\n\t\tvar shouldConvergeSize = false;\n\t\tvar shouldSetCursor = false;\n\t\tvar shouldSetLegend = false;\n\n\t\tfunction _setSize(width, height) {\n\t\t\tif (width != self.width || height != self.height)\n\t\t\t\t{ calcSize(width, height); }\n\n\t\t\tresetYSeries(false);\n\n\t\t\tshouldConvergeSize = true;\n\t\t\tshouldSetSize = true;\n\t\t\tshouldSetCursor = true;\n\t\t\tshouldSetLegend = true;\n\t\t\tcommit();\n\t\t}\n\n\t\tfunction calcSize(width, height) {\n\t\t//\tlog(\"calcSize()\", arguments);\n\n\t\t\tself.width  = fullWidCss = plotWidCss = width;\n\t\t\tself.height = fullHgtCss = plotHgtCss = height;\n\t\t\tplotLftCss  = plotTopCss = 0;\n\n\t\t\tcalcPlotRect();\n\t\t\tcalcAxesRects();\n\n\t\t\tvar bb = self.bbox;\n\n\t\t\tplotLft = bb.left   = incrRound(plotLftCss * pxRatio, 0.5);\n\t\t\tplotTop = bb.top    = incrRound(plotTopCss * pxRatio, 0.5);\n\t\t\tplotWid = bb.width  = incrRound(plotWidCss * pxRatio, 0.5);\n\t\t\tplotHgt = bb.height = incrRound(plotHgtCss * pxRatio, 0.5);\n\n\t\t//\tupdOriDims();\n\t\t}\n\n\t\tfunction convergeSize() {\n\t\t\tvar converged = false;\n\n\t\t\tvar cycleNum = 0;\n\n\t\t\twhile (!converged) {\n\t\t\t\tcycleNum++;\n\n\t\t\t\tvar axesConverged = axesCalc(cycleNum);\n\t\t\t\tvar paddingConverged = paddingCalc(cycleNum);\n\n\t\t\t\tconverged = axesConverged && paddingConverged;\n\n\t\t\t\tif (!converged) {\n\t\t\t\t\tcalcSize(self.width, self.height);\n\t\t\t\t\tshouldSetSize = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction setSize(ref) {\n\t\t\tvar width = ref.width;\n\t\t\tvar height = ref.height;\n\n\t\t\t_setSize(width, height);\n\t\t}\n\n\t\tself.setSize = setSize;\n\n\t\t// accumulate axis offsets, reduce canvas width\n\t\tfunction calcPlotRect() {\n\t\t\t// easements for edge labels\n\t\t\tvar hasTopAxis = false;\n\t\t\tvar hasBtmAxis = false;\n\t\t\tvar hasRgtAxis = false;\n\t\t\tvar hasLftAxis = false;\n\n\t\t\taxes.forEach((axis, i) => {\n\t\t\t\tif (axis.show && axis._show) {\n\t\t\t\t\tvar side = axis.side;\n\t\t\t\t\tvar _size = axis._size;\n\t\t\t\t\tvar isVt = side % 2;\n\t\t\t\t\tvar labelSize = axis.labelSize = (axis.label != null ? (axis.labelSize || 30) : 0);\n\n\t\t\t\t\tvar fullSize = _size + labelSize;\n\n\t\t\t\t\tif (fullSize > 0) {\n\t\t\t\t\t\tif (isVt) {\n\t\t\t\t\t\t\tplotWidCss -= fullSize;\n\n\t\t\t\t\t\t\tif (side == 3) {\n\t\t\t\t\t\t\t\tplotLftCss += fullSize;\n\t\t\t\t\t\t\t\thasLftAxis = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{ hasRgtAxis = true; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tplotHgtCss -= fullSize;\n\n\t\t\t\t\t\t\tif (side == 0) {\n\t\t\t\t\t\t\t\tplotTopCss += fullSize;\n\t\t\t\t\t\t\t\thasTopAxis = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{ hasBtmAxis = true; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsidesWithAxes[0] = hasTopAxis;\n\t\t\tsidesWithAxes[1] = hasRgtAxis;\n\t\t\tsidesWithAxes[2] = hasBtmAxis;\n\t\t\tsidesWithAxes[3] = hasLftAxis;\n\n\t\t\t// hz padding\n\t\t\tplotWidCss -= _padding[1] + _padding[3];\n\t\t\tplotLftCss += _padding[3];\n\n\t\t\t// vt padding\n\t\t\tplotHgtCss -= _padding[2] + _padding[0];\n\t\t\tplotTopCss += _padding[0];\n\t\t}\n\n\t\tfunction calcAxesRects() {\n\t\t\t// will accum +\n\t\t\tvar off1 = plotLftCss + plotWidCss;\n\t\t\tvar off2 = plotTopCss + plotHgtCss;\n\t\t\t// will accum -\n\t\t\tvar off3 = plotLftCss;\n\t\t\tvar off0 = plotTopCss;\n\n\t\t\tfunction incrOffset(side, size) {\n\n\t\t\t\tswitch (side) {\n\t\t\t\t\tcase 1: off1 += size; return off1 - size;\n\t\t\t\t\tcase 2: off2 += size; return off2 - size;\n\t\t\t\t\tcase 3: off3 -= size; return off3 + size;\n\t\t\t\t\tcase 0: off0 -= size; return off0 + size;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taxes.forEach((axis, i) => {\n\t\t\t\tif (axis.show && axis._show) {\n\t\t\t\t\tvar side = axis.side;\n\n\t\t\t\t\taxis._pos = incrOffset(side, axis._size);\n\n\t\t\t\t\tif (axis.label != null)\n\t\t\t\t\t\t{ axis._lpos = incrOffset(side, axis.labelSize); }\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar cursor = (self.cursor = assign({}, cursorOpts, opts.cursor));\n\n\t\t{\n\t\t\tcursor._lock = false;\n\n\t\t\tvar points = cursor.points;\n\n\t\t\tpoints.show   = fnOrSelf(points.show);\n\t\t\tpoints.size   = fnOrSelf(points.size);\n\t\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\t\tpoints.width  = fnOrSelf(points.width);\n\t\t\tpoints.fill   = fnOrSelf(points.fill);\n\t\t}\n\n\t\tvar focus = self.focus = assign({}, opts.focus || {alpha: 0.3}, cursor.focus);\n\t\tvar cursorFocus = focus.prox >= 0;\n\n\t\t// series-intersection markers\n\t\tvar cursorPts = [null];\n\n\t\tfunction initCursorPt(s, si) {\n\t\t\tif (si > 0) {\n\t\t\t\tvar pt = cursor.points.show(self, si);\n\n\t\t\t\tif (pt) {\n\t\t\t\t\taddClass(pt, CURSOR_PT);\n\t\t\t\t\taddClass(pt, s.class);\n\t\t\t\t\ttrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\t\tover.insertBefore(pt, cursorPts[si]);\n\n\t\t\t\t\treturn pt;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction initSeries(s, i) {\n\t\t\tvar isTime = scales[s.scale].time;\n\n\t\t\tvar sv = s.value;\n\t\t\ts.value = isTime ? (isStr(sv) ? timeSeriesVal(_tzDate, timeSeriesStamp(sv, _fmtDate)) : sv || _timeSeriesVal) : sv || numSeriesVal;\n\t\t\ts.label = s.label || (isTime ? timeSeriesLabel : numSeriesLabel);\n\n\t\t\tif (i > 0) {\n\t\t\t\ts.width  = s.width == null ? 1 : s.width;\n\t\t\t\ts.paths  = s.paths || linearPath || retNull;\n\t\t\t\ts.fillTo = fnOrSelf(s.fillTo || seriesFillTo);\n\t\t\t\ts.pxAlign = ifNull(s.pxAlign, true);\n\n\t\t\t\ts.stroke = fnOrSelf(s.stroke || null);\n\t\t\t\ts.fill   = fnOrSelf(s.fill || null);\n\t\t\t\ts._stroke = s._fill = s._paths = s._focus = null;\n\n\t\t\t\tvar _ptDia = ptDia(s.width, 1);\n\t\t\t\tvar points = s.points = assign({}, {\n\t\t\t\t\tsize: _ptDia,\n\t\t\t\t\twidth: max(1, _ptDia * .2),\n\t\t\t\t\tstroke: s.stroke,\n\t\t\t\t\tspace: _ptDia * 2,\n\t\t\t\t\t_stroke: null,\n\t\t\t\t\t_fill: null,\n\t\t\t\t}, s.points);\n\t\t\t\tpoints.show   = fnOrSelf(points.show);\n\t\t\t\tpoints.fill   = fnOrSelf(points.fill);\n\t\t\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\t\t}\n\n\t\t\tif (showLegend)\n\t\t\t\t{ legendRows.splice(i, 0, initLegendRow(s, i)); }\n\n\t\t\tif (cursor.show) {\n\t\t\t\tvar pt = initCursorPt(s, i);\n\t\t\t\tpt && cursorPts.splice(i, 0, pt);\n\t\t\t}\n\t\t}\n\n\t\tfunction addSeries(opts, si) {\n\t\t\tsi = si == null ? series.length : si;\n\n\t\t\topts = setDefault(opts, si, xSeriesOpts, ySeriesOpts);\n\t\t\tseries.splice(si, 0, opts);\n\t\t\tinitSeries(series[si], si);\n\t\t}\n\n\t\tself.addSeries = addSeries;\n\n\t\tfunction delSeries(i) {\n\t\t\tseries.splice(i, 1);\n\t\t\tshowLegend && legendRows.splice(i, 1)[0][0].parentNode.remove();\n\t\t\tcursorPts.length > 1 && cursorPts.splice(i, 1)[0].remove();\n\n\t\t\t// TODO: de-init no-longer-needed scales?\n\t\t}\n\n\t\tself.delSeries = delSeries;\n\n\t\tseries.forEach(initSeries);\n\n\t\tvar sidesWithAxes = [false, false, false, false];\n\n\t\tfunction initAxis(axis, i) {\n\t\t\taxis._show = axis.show;\n\n\t\t\tif (axis.show) {\n\t\t\t\tvar isVt = axis.side % 2;\n\n\t\t\t\tvar sc = scales[axis.scale];\n\n\t\t\t\t// this can occur if all series specify non-default scales\n\t\t\t\tif (sc == null) {\n\t\t\t\t\taxis.scale = isVt ? series[1].scale : xScaleKey;\n\t\t\t\t\tsc = scales[axis.scale];\n\t\t\t\t}\n\n\t\t\t\t// also set defaults for incrs & values based on axis distr\n\t\t\t\tvar isTime = sc.time;\n\n\t\t\t\taxis.size   = fnOrSelf(axis.size);\n\t\t\t\taxis.space  = fnOrSelf(axis.space);\n\t\t\t\taxis.rotate = fnOrSelf(axis.rotate);\n\t\t\t\taxis.incrs  = fnOrSelf(axis.incrs  || (          sc.distr == 2 ? wholeIncrs : (isTime ? (ms == 1 ? timeIncrsMs : timeIncrsS) : numIncrs)));\n\t\t\t\taxis.splits = fnOrSelf(axis.splits || (isTime && sc.distr == 1 ? _timeAxisSplits : sc.distr == 3 ? logAxisSplits : sc.distr == 4 ? asinhAxisSplits : numAxisSplits));\n\n\t\t\t\taxis.stroke       = fnOrSelf(axis.stroke);\n\t\t\t\taxis.grid.stroke  = fnOrSelf(axis.grid.stroke);\n\t\t\t\taxis.ticks.stroke = fnOrSelf(axis.ticks.stroke);\n\n\t\t\t\tvar av = axis.values;\n\n\t\t\t\taxis.values = (\n\t\t\t\t\tisTime ? (\n\t\t\t\t\t\tisArr(av) ?\n\t\t\t\t\t\t\ttimeAxisVals(_tzDate, timeAxisStamps(av, _fmtDate)) :\n\t\t\t\t\t\tisStr(av) ?\n\t\t\t\t\t\t\ttimeAxisVal(_tzDate, av) :\n\t\t\t\t\t\tav || _timeAxisVals\n\t\t\t\t\t) : av || numAxisVals\n\t\t\t\t);\n\n\t\t\t\taxis.filter = fnOrSelf(axis.filter || (          sc.distr >= 3 ? logAxisValsFilt : retArg1));\n\n\t\t\t\taxis.font      = pxRatioFont(axis.font);\n\t\t\t\taxis.labelFont = pxRatioFont(axis.labelFont);\n\n\t\t\t\taxis._size   = axis.size(self, null, i, 0);\n\n\t\t\t\taxis._space  =\n\t\t\t\taxis._rotate =\n\t\t\t\taxis._incrs  =\n\t\t\t\taxis._found  =\t// foundIncrSpace\n\t\t\t\taxis._splits =\n\t\t\t\taxis._values = null;\n\n\t\t\t\tif (axis._size > 0)\n\t\t\t\t\t{ sidesWithAxes[i] = true; }\n\t\t\t}\n\t\t}\n\n\t\t// set axis defaults\n\t\taxes.forEach(initAxis);\n\n\t\tfunction autoPadSide(self, side, sidesWithAxes, cycleNum) {\n\t\t\tvar hasTopAxis = sidesWithAxes[0];\n\t\t\tvar hasRgtAxis = sidesWithAxes[1];\n\t\t\tvar hasBtmAxis = sidesWithAxes[2];\n\t\t\tvar hasLftAxis = sidesWithAxes[3];\n\n\t\t\tvar ori = side % 2;\n\t\t\tvar size = 0;\n\n\t\t\tif (ori == 0 && (hasLftAxis || hasRgtAxis))\n\t\t\t\t{ size = (side == 0 && !hasTopAxis || side == 2 && !hasBtmAxis ? round(xAxisOpts.size / 3) : 0); }\n\t\t\tif (ori == 1 && (hasTopAxis || hasBtmAxis))\n\t\t\t\t{ size = (side == 1 && !hasRgtAxis || side == 3 && !hasLftAxis ? round(yAxisOpts.size / 2) : 0); }\n\n\t\t\treturn size;\n\t\t}\n\n\t\tvar padding = self.padding = (opts.padding || [autoPadSide,autoPadSide,autoPadSide,autoPadSide]).map(p => fnOrSelf(ifNull(p, autoPadSide)));\n\t\tvar _padding = self._padding = padding.map((p, i) => p(self, i, sidesWithAxes, 0));\n\n\t\tvar dataLen;\n\n\t\t// rendered data window\n\t\tvar i0 = null;\n\t\tvar i1 = null;\n\t\tvar idxs = series[0].idxs;\n\n\t\tvar data0 = null;\n\n\t\tvar viaAutoScaleX = false;\n\n\t\tfunction setData(_data, _resetScales) {\n\t\t\t_data = _data || [];\n\t\t\t_data[0] = _data[0] || [];\n\n\t\t\tself.data = _data;\n\t\t\tdata = _data.slice();\n\t\t\tdata0 = data[0];\n\t\t\tdataLen = data0.length;\n\n\t\t\tif (xScaleDistr == 2)\n\t\t\t\t{ data[0] = data0.map((v, i) => i); }\n\n\t\t\tself._data = data;\n\n\t\t\tresetYSeries(true);\n\n\t\t\tfire(\"setData\");\n\n\t\t\tif (_resetScales !== false) {\n\t\t\t\tvar xsc = scaleX;\n\n\t\t\t\tif (xsc.auto(self, viaAutoScaleX))\n\t\t\t\t\t{ autoScaleX(); }\n\t\t\t\telse\n\t\t\t\t\t{ _setScale(xScaleKey, xsc.min, xsc.max); }\n\n\t\t\t\tshouldSetCursor = cursor.left >= 0;\n\t\t\t\tshouldSetLegend = true;\n\t\t\t\tcommit();\n\t\t\t}\n\t\t}\n\n\t\tself.setData = setData;\n\n\t\tfunction autoScaleX() {\n\t\t\tvar assign, assign$1, assign$2;\n\n\t\t\tviaAutoScaleX = true;\n\n\t\t\tvar _min, _max;\n\n\t\t\tif (dataLen > 0) {\n\t\t\t\ti0 = idxs[0] = 0;\n\t\t\t\ti1 = idxs[1] = dataLen - 1;\n\n\t\t\t\t_min = data[0][i0];\n\t\t\t\t_max = data[0][i1];\n\n\t\t\t\tif (xScaleDistr == 2) {\n\t\t\t\t\t_min = i0;\n\t\t\t\t\t_max = i1;\n\t\t\t\t}\n\t\t\t\telse if (dataLen == 1) {\n\t\t\t\t\tif (xScaleDistr == 3)\n\t\t\t\t\t\t{ (assign = rangeLog(_min, _min, scaleX.log, false), _min = assign[0], _max = assign[1]); }\n\t\t\t\t\telse if (xScaleDistr == 4)\n\t\t\t\t\t\t{ (assign$1 = rangeAsinh(_min, _min, scaleX.log, false), _min = assign$1[0], _max = assign$1[1]); }\n\t\t\t\t\telse if (scaleX.time)\n\t\t\t\t\t\t{ _max = _min + 86400 / ms; }\n\t\t\t\t\telse\n\t\t\t\t\t\t{ (assign$2 = rangeNum(_min, _max, 0.1, true), _min = assign$2[0], _max = assign$2[1]); }\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\ti0 = idxs[0] = _min = null;\n\t\t\t\ti1 = idxs[1] = _max = null;\n\t\t\t}\n\n\t\t\t_setScale(xScaleKey, _min, _max);\n\t\t}\n\n\t\tfunction setCtxStyle(stroke, width, dash, cap, fill) {\n\t\t\tctx.strokeStyle = stroke || transparent;\n\t\t\tctx.lineWidth = width;\n\t\t\tctx.lineJoin = \"round\";\n\t\t\tctx.lineCap = cap || \"butt\"; // (‿|‿)\n\t\t\tctx.setLineDash(dash || []);\n\t\t\tctx.fillStyle = fill || transparent;\n\t\t}\n\n\t\tfunction setScales() {\n\t\t//\tlog(\"setScales()\", arguments);\n\n\t\t\t// wip scales\n\t\t\tvar wipScales = copy(scales, fastIsObj);\n\n\t\t\tfor (var k in wipScales) {\n\t\t\t\tvar wsc = wipScales[k];\n\t\t\t\tvar psc = pendScales[k];\n\n\t\t\t\tif (psc != null && psc.min != null) {\n\t\t\t\t\tassign(wsc, psc);\n\n\t\t\t\t\t// explicitly setting the x-scale invalidates everything (acts as redraw)\n\t\t\t\t\tif (k == xScaleKey)\n\t\t\t\t\t\t{ resetYSeries(true); }\n\t\t\t\t}\n\t\t\t\telse if (k != xScaleKey) {\n\t\t\t\t\tif (dataLen == 0 && wsc.from == null) {\n\t\t\t\t\t\tvar minMax = wsc.range(self, null, null, k);\n\t\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\twsc.min = inf;\n\t\t\t\t\t\twsc.max = -inf;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dataLen > 0) {\n\t\t\t\t// pre-range y-scales from y series' data values\n\t\t\t\tseries.forEach((s, i) => {\n\t\t\t\t\tvar k = s.scale;\n\t\t\t\t\tvar wsc = wipScales[k];\n\t\t\t\t\tvar psc = pendScales[k];\n\n\t\t\t\t\tif (i == 0) {\n\t\t\t\t\t\tvar minMax = wsc.range(self, wsc.min, wsc.max, k);\n\n\t\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\t\twsc.max = minMax[1];\n\n\t\t\t\t\t\ti0 = closestIdx(wsc.min, data[0]);\n\t\t\t\t\t\ti1 = closestIdx(wsc.max, data[0]);\n\n\t\t\t\t\t\t// closest indices can be outside of view\n\t\t\t\t\t\tif (data[0][i0] < wsc.min)\n\t\t\t\t\t\t\t{ i0++; }\n\t\t\t\t\t\tif (data[0][i1] > wsc.max)\n\t\t\t\t\t\t\t{ i1--; }\n\n\t\t\t\t\t\ts.min = data0[i0];\n\t\t\t\t\t\ts.max = data0[i1];\n\t\t\t\t\t}\n\t\t\t\t\telse if (s.show && s.auto && wsc.auto(self, viaAutoScaleX) && (psc == null || psc.min == null)) {\n\t\t\t\t\t\t// only run getMinMax() for invalidated series data, else reuse\n\t\t\t\t\t\tvar minMax$1 = s.min == null ? (wsc.distr == 3 ? getMinMaxLog(data[i], i0, i1) : getMinMax(data[i], i0, i1, s.sorted)) : [s.min, s.max];\n\n\t\t\t\t\t\t// initial min/max\n\t\t\t\t\t\twsc.min = min(wsc.min, s.min = minMax$1[0]);\n\t\t\t\t\t\twsc.max = max(wsc.max, s.max = minMax$1[1]);\n\t\t\t\t\t}\n\n\t\t\t\t\ts.idxs[0] = i0;\n\t\t\t\t\ts.idxs[1] = i1;\n\t\t\t\t});\n\n\t\t\t\t// range independent scales\n\t\t\t\tfor (var k$1 in wipScales) {\n\t\t\t\t\tvar wsc$1 = wipScales[k$1];\n\t\t\t\t\tvar psc$1 = pendScales[k$1];\n\n\t\t\t\t\tif (wsc$1.from == null && (psc$1 == null || psc$1.min == null)) {\n\t\t\t\t\t\tvar minMax$1 = wsc$1.range(\n\t\t\t\t\t\t\tself,\n\t\t\t\t\t\t\twsc$1.min ==  inf ? null : wsc$1.min,\n\t\t\t\t\t\t\twsc$1.max == -inf ? null : wsc$1.max,\n\t\t\t\t\t\t\tk$1\n\t\t\t\t\t\t);\n\t\t\t\t\t\twsc$1.min = minMax$1[0];\n\t\t\t\t\t\twsc$1.max = minMax$1[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// range dependent scales\n\t\t\tfor (var k$2 in wipScales) {\n\t\t\t\tvar wsc$2 = wipScales[k$2];\n\n\t\t\t\tif (wsc$2.from != null) {\n\t\t\t\t\tvar base = wipScales[wsc$2.from];\n\t\t\t\t\tvar minMax$2 = wsc$2.range(self, base.min, base.max, k$2);\n\t\t\t\t\twsc$2.min = minMax$2[0];\n\t\t\t\t\twsc$2.max = minMax$2[1];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar changed = {};\n\t\t\tvar anyChanged = false;\n\n\t\t\tfor (var k$3 in wipScales) {\n\t\t\t\tvar wsc$3 = wipScales[k$3];\n\t\t\t\tvar sc = scales[k$3];\n\n\t\t\t\tif (sc.min != wsc$3.min || sc.max != wsc$3.max) {\n\t\t\t\t\tsc.min = wsc$3.min;\n\t\t\t\t\tsc.max = wsc$3.max;\n\n\t\t\t\t\tvar distr = sc.distr;\n\n\t\t\t\t\tsc._min = distr == 3 ? log10(sc.min) : distr == 4 ? asinh(sc.min, sc.asinh) : sc.min;\n\t\t\t\t\tsc._max = distr == 3 ? log10(sc.max) : distr == 4 ? asinh(sc.max, sc.asinh) : sc.max;\n\n\t\t\t\t\tchanged[k$3] = anyChanged = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (anyChanged) {\n\t\t\t\t// invalidate paths of all series on changed scales\n\t\t\t\tseries.forEach(s => {\n\t\t\t\t\tif (changed[s.scale])\n\t\t\t\t\t\t{ s._paths = null; }\n\t\t\t\t});\n\n\t\t\t\tfor (var k$4 in changed) {\n\t\t\t\t\tshouldConvergeSize = true;\n\t\t\t\t\tfire(\"setScale\", k$4);\n\t\t\t\t}\n\n\t\t\t\tif (cursor.show)\n\t\t\t\t\t{ shouldSetCursor = cursor.left >= 0; }\n\t\t\t}\n\n\t\t\tfor (var k$5 in pendScales)\n\t\t\t\t{ pendScales[k$5] = null; }\n\t\t}\n\n\t\t// TODO: drawWrap(si, drawPoints) (save, restore, translate, clip)\n\t\tfunction drawPoints(si) {\n\t\t//\tlog(\"drawPoints()\", arguments);\n\n\t\t\tvar s = series[si];\n\t\t\tvar p = s.points;\n\n\t\t\tvar width = roundDec(p.width * pxRatio, 3);\n\t\t\tvar offset = (width % 2) / 2;\n\t\t\tvar isStroked = p.width > 0;\n\n\t\t\tvar rad = (p.size - p.width) / 2 * pxRatio;\n\t\t\tvar dia = roundDec(rad * 2, 3);\n\n\t\t\tvar _pxAlign = pxAlign && s.pxAlign;\n\n\t\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\t\tctx.save();\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(\n\t\t\t\tplotLft - dia,\n\t\t\t\tplotTop - dia,\n\t\t\t\tplotWid + dia * 2,\n\t\t\t\tplotHgt + dia * 2\n\t\t\t);\n\t\t\tctx.clip();\n\n\t\t\tctx.globalAlpha = s.alpha;\n\n\t\t\tvar path = new Path2D();\n\n\t\t\tvar scaleY = scales[s.scale];\n\n\t\t\tvar xDim, xOff, yDim, yOff;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\txDim = plotWid;\n\t\t\t\txOff = plotLft;\n\t\t\t\tyDim = plotHgt;\n\t\t\t\tyOff = plotTop;\n\t\t\t}\n\t\t\telse {\n\t\t\t\txDim = plotHgt;\n\t\t\t\txOff = plotTop;\n\t\t\t\tyDim = plotWid;\n\t\t\t\tyOff = plotLft;\n\t\t\t}\n\n\t\t\tfor (var pi = i0; pi <= i1; pi++) {\n\t\t\t\tif (data[si][pi] != null) {\n\t\t\t\t\tvar x = round(valToPosX(data[0][pi],  scaleX, xDim, xOff));\n\t\t\t\t\tvar y = round(valToPosY(data[si][pi], scaleY, yDim, yOff));\n\n\t\t\t\t\tmoveTo(path, x + rad, y);\n\t\t\t\t\tarc(path, x, y, rad, 0, PI * 2);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _stroke = p._stroke = p.stroke(self, si);\n\t\t\tvar _fill   = p._fill   = p.fill(self, si);\n\n\t\t\tsetCtxStyle(\n\t\t\t\t_stroke,\n\t\t\t\twidth,\n\t\t\t\tp.dash,\n\t\t\t\tp.cap,\n\t\t\t\t_fill || (isStroked ? \"#fff\" : s._stroke)\n\t\t\t);\n\n\t\t\tctx.fill(path);\n\t\t\tisStroked && ctx.stroke(path);\n\n\t\t\tctx.globalAlpha = 1;\n\n\t\t\tctx.restore();\n\n\t\t\t_pxAlign && ctx.translate(-offset, -offset);\n\t\t}\n\n\t\t// grabs the nearest indices with y data outside of x-scale limits\n\t\tfunction getOuterIdxs(ydata) {\n\t\t\tvar _i0 = clamp(i0 - 1, 0, dataLen - 1);\n\t\t\tvar _i1 = clamp(i1 + 1, 0, dataLen - 1);\n\n\t\t\twhile (ydata[_i0] == null && _i0 > 0)\n\t\t\t\t{ _i0--; }\n\n\t\t\twhile (ydata[_i1] == null && _i1 < dataLen - 1)\n\t\t\t\t{ _i1++; }\n\n\t\t\treturn [_i0, _i1];\n\t\t}\n\n\t\tfunction drawSeries() {\n\t\t\tif (dataLen > 0) {\n\t\t\t\tseries.forEach((s, i) => {\n\t\t\t\t\tif (i > 0 && s.show && s._paths == null) {\n\t\t\t\t\t\tvar _idxs = getOuterIdxs(data[i]);\n\t\t\t\t\t\ts._paths = s.paths(self, i, _idxs[0], _idxs[1]);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tseries.forEach((s, i) => {\n\t\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\t\tif (s._paths)\n\t\t\t\t\t\t\t{ drawPath(i); }\n\n\t\t\t\t\t\tif (s.points.show(self, i, i0, i1))\n\t\t\t\t\t\t\t{ drawPoints(i); }\n\n\t\t\t\t\t\tfire(\"drawSeries\", i);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction drawPath(si) {\n\t\t\tvar s = series[si];\n\n\t\t\tvar ref = s._paths;\n\t\t\tvar stroke = ref.stroke;\n\t\t\tvar fill = ref.fill;\n\t\t\tvar clip = ref.clip;\n\t\t\tvar width = roundDec(s.width * pxRatio, 3);\n\t\t\tvar offset = (width % 2) / 2;\n\n\t\t\tvar strokeStyle = s._stroke = s.stroke(self, si);\n\t\t\tvar fillStyle   = s._fill   = s.fill(self, si);\n\n\t\t\tctx.globalAlpha = s.alpha;\n\n\t\t\tvar _pxAlign = pxAlign && s.pxAlign;\n\n\t\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\t\tctx.save();\n\n\t\t\tvar lft = plotLft,\n\t\t\t\ttop = plotTop,\n\t\t\t\twid = plotWid,\n\t\t\t\thgt = plotHgt;\n\n\t\t\tvar halfWid = width * pxRatio / 2;\n\n\t\t\tif (s.min == 0)\n\t\t\t\t{ hgt += halfWid; }\n\n\t\t\tif (s.max == 0) {\n\t\t\t\ttop -= halfWid;\n\t\t\t\thgt += halfWid;\n\t\t\t}\n\n\t\t\tctx.beginPath();\n\t\t\tctx.rect(lft, top, wid, hgt);\n\t\t\tctx.clip();\n\n\t\t\tclip && ctx.clip(clip);\n\n\t\t\tfillStroke(si, strokeStyle, width, s.dash, s.cap, fillStyle, stroke, fill);\n\n\t\t\tctx.restore();\n\n\t\t\t_pxAlign && ctx.translate(-offset, -offset);\n\n\t\t\tctx.globalAlpha = 1;\n\t\t}\n\n\t\tfunction fillStroke(si, strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\t\tvar didStrokeFill = false;\n\n\t\t\t// for all bands where this series is the top edge, create upwards clips using the bottom edges\n\t\t\t// and apply clips + fill with band fill or dfltFill\n\t\t\tbands.forEach((b, bi) => {\n\t\t\t\t// isUpperEdge?\n\t\t\t\tif (b.series[0] == si) {\n\t\t\t\t\tvar lowerEdge = series[b.series[1]];\n\n\t\t\t\t\tvar clip = (lowerEdge._paths || EMPTY_OBJ).band;\n\n\t\t\t\t\tctx.save();\n\n\t\t\t\t\tvar _fillStyle = null;\n\n\t\t\t\t\t// hasLowerEdge?\n\t\t\t\t\tif (lowerEdge.show && clip) {\n\t\t\t\t\t\t_fillStyle = b.fill(self, bi) || fillStyle;\n\t\t\t\t\t\tctx.clip(clip);\n\t\t\t\t\t}\n\n\t\t\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, _fillStyle, strokePath, fillPath);\n\n\t\t\t\t\tctx.restore();\n\n\t\t\t\t\tdidStrokeFill = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!didStrokeFill)\n\t\t\t\t{ strokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath); }\n\t\t}\n\n\t\tfunction strokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath) {\n\t\t\tsetCtxStyle(strokeStyle, lineWidth, lineDash, lineCap, fillStyle);\n\t\t\tfillStyle   && fillPath                && ctx.fill(fillPath);\n\t\t\tstrokeStyle && strokePath && lineWidth && ctx.stroke(strokePath);\n\t\t}\n\n\t\tfunction getIncrSpace(axisIdx, min, max, fullDim) {\n\t\t\tvar axis = axes[axisIdx];\n\n\t\t\tvar incrSpace;\n\n\t\t\tif (fullDim <= 0)\n\t\t\t\t{ incrSpace = [0, 0]; }\n\t\t\telse {\n\t\t\t\tvar minSpace = axis._space = axis.space(self, axisIdx, min, max, fullDim);\n\t\t\t\tvar incrs    = axis._incrs = axis.incrs(self, axisIdx, min, max, fullDim, minSpace);\n\t\t\t\tincrSpace    = axis._found = findIncr(min, max, incrs, fullDim, minSpace);\n\t\t\t}\n\n\t\t\treturn incrSpace;\n\t\t}\n\n\t\tfunction drawOrthoLines(offs, filts, ori, side, pos0, len, width, stroke, dash, cap) {\n\t\t\tvar offset = (width % 2) / 2;\n\n\t\t\tpxAlign && ctx.translate(offset, offset);\n\n\t\t\tsetCtxStyle(stroke, width, dash, cap);\n\n\t\t\tctx.beginPath();\n\n\t\t\tvar x0, y0, x1, y1, pos1 = pos0 + (side == 0 || side == 3 ? -len : len);\n\n\t\t\tif (ori == 0) {\n\t\t\t\ty0 = pos0;\n\t\t\t\ty1 = pos1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tx0 = pos0;\n\t\t\t\tx1 = pos1;\n\t\t\t}\n\n\t\t\toffs.forEach((off, i) => {\n\t\t\t\tif (filts[i] == null)\n\t\t\t\t\t{ return; }\n\n\t\t\t\tif (ori == 0)\n\t\t\t\t\t{ x0 = x1 = off; }\n\t\t\t\telse\n\t\t\t\t\t{ y0 = y1 = off; }\n\n\t\t\t\tctx.moveTo(x0, y0);\n\t\t\t\tctx.lineTo(x1, y1);\n\t\t\t});\n\n\t\t\tctx.stroke();\n\n\t\t\tpxAlign && ctx.translate(-offset, -offset);\n\t\t}\n\n\t\tfunction axesCalc(cycleNum) {\n\t\t//\tlog(\"axesCalc()\", arguments);\n\n\t\t\tvar converged = true;\n\n\t\t\taxes.forEach((axis, i) => {\n\t\t\t\tif (!axis.show)\n\t\t\t\t\t{ return; }\n\n\t\t\t\tvar scale = scales[axis.scale];\n\n\t\t\t\tif (scale.min == null) {\n\t\t\t\t\tif (axis._show) {\n\t\t\t\t\t\tconverged = false;\n\t\t\t\t\t\taxis._show = false;\n\t\t\t\t\t\tresetYSeries(false);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!axis._show) {\n\t\t\t\t\t\tconverged = false;\n\t\t\t\t\t\taxis._show = true;\n\t\t\t\t\t\tresetYSeries(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar side = axis.side;\n\t\t\t\tvar ori = side % 2;\n\n\t\t\t\tvar min = scale.min;\n\t\t\t\tvar max = scale.max;\t\t// \t\t// should this toggle them ._show = false\n\n\t\t\t\tvar ref = getIncrSpace(i, min, max, ori == 0 ? plotWidCss : plotHgtCss);\n\t\t\t\tvar _incr = ref[0];\n\t\t\t\tvar _space = ref[1];\n\n\t\t\t\tif (_space == 0)\n\t\t\t\t\t{ return; }\n\n\t\t\t\t// if we're using index positions, force first tick to match passed index\n\t\t\t\tvar forceMin = scale.distr == 2;\n\n\t\t\t\tvar _splits = axis._splits = axis.splits(self, i, min, max, _incr, _space, forceMin);\n\n\t\t\t\t// tick labels\n\t\t\t\t// BOO this assumes a specific data/series\n\t\t\t\tvar splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\t\tvar incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\t\tvar values = axis._values = axis.values(self, axis.filter(self, splits, i, _space, incr), i, _space, incr);\n\n\t\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\t\taxis._rotate = side == 2 ? axis.rotate(self, values, i, _space) : 0;\n\n\t\t\t\tvar oldSize = axis._size;\n\n\t\t\t\taxis._size = ceil(axis.size(self, values, i, cycleNum));\n\n\t\t\t\tif (oldSize != null && axis._size != oldSize)\t\t\t// ready && ?\n\t\t\t\t\t{ converged = false; }\n\t\t\t});\n\n\t\t\treturn converged;\n\t\t}\n\n\t\tfunction paddingCalc(cycleNum) {\n\t\t\tvar converged = true;\n\n\t\t\tpadding.forEach((p, i) => {\n\t\t\t\tvar _p = p(self, i, sidesWithAxes, cycleNum);\n\n\t\t\t\tif (_p != _padding[i])\n\t\t\t\t\t{ converged = false; }\n\n\t\t\t\t_padding[i] = _p;\n\t\t\t});\n\n\t\t\treturn converged;\n\t\t}\n\n\t\tfunction drawAxesGrid() {\n\t\t\taxes.forEach((axis, i) => {\n\t\t\t\tif (!axis.show || !axis._show)\n\t\t\t\t\t{ return; }\n\n\t\t\t\tvar scale = scales[axis.scale];\n\t\t\t\tvar side = axis.side;\n\t\t\t\tvar ori = side % 2;\n\n\t\t\t\tvar plotDim = ori == 0 ? plotWid : plotHgt;\n\t\t\t\tvar plotOff = ori == 0 ? plotLft : plotTop;\n\n\t\t\t\tvar axisGap = round(axis.gap * pxRatio);\n\n\t\t\t\tvar ticks = axis.ticks;\n\t\t\t\tvar tickSize = ticks.show ? round(ticks.size * pxRatio) : 0;\n\n\t\t\t\tvar ref = axis._found;\n\t\t\t\tvar _incr = ref[0];\n\t\t\t\tvar _space = ref[1];\n\t\t\t\tvar _splits = axis._splits;\n\n\t\t\t\t// tick labels\n\t\t\t\t// BOO this assumes a specific data/series\n\t\t\t\tvar splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\t\tvar incr   = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\t\tvar angle = axis._rotate * -PI/180;\n\n\t\t\t\tvar basePos  = round(axis._pos * pxRatio);\n\t\t\t\tvar shiftAmt = tickSize + axisGap;\n\t\t\t\tvar shiftDir = ori == 0 && side == 0 || ori == 1 && side == 3 ? -1 : 1;\n\t\t\t\tvar finalPos = basePos + shiftAmt * shiftDir;\n\t\t\t\tvar y        = ori == 0 ? finalPos : 0;\n\t\t\t\tvar x        = ori == 1 ? finalPos : 0;\n\n\t\t\t\tctx.font         = axis.font[0];\n\t\t\t\tctx.fillStyle    = axis.stroke(self, i);\t\t\t\t\t\t\t\t\t// rgba?\n\t\t\t\tctx.textAlign    = axis.align == 1 ? LEFT :\n\t\t\t\t                   axis.align == 2 ? RIGHT :\n\t\t\t\t                   angle > 0 ? LEFT :\n\t\t\t\t                   angle < 0 ? RIGHT :\n\t\t\t\t                   ori == 0 ? \"center\" : side == 3 ? RIGHT : LEFT;\n\t\t\t\tctx.textBaseline = angle ||\n\t\t\t\t                   ori == 1 ? \"middle\" : side == 2 ? TOP   : BOTTOM;\n\n\t\t\t\tvar lineHeight = axis.font[1] * lineMult;\n\n\t\t\t\tvar canOffs = _splits.map(val => round(getPos(val, scale, plotDim, plotOff)));\n\n\t\t\t\taxis._values.forEach((val, i) => {\n\t\t\t\t\tif (val == null)\n\t\t\t\t\t\t{ return; }\n\n\t\t\t\t\tif (ori == 0)\n\t\t\t\t\t\t{ x = canOffs[i]; }\n\t\t\t\t\telse\n\t\t\t\t\t\t{ y = canOffs[i]; }\n\n\t\t\t\t\t(\"\"+val).split(/\\n/gm).forEach((text, j) => {\n\t\t\t\t\t\tif (angle) {\n\t\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\t\tctx.translate(x, y + j * lineHeight);\n\t\t\t\t\t\t\tctx.rotate(angle);\n\t\t\t\t\t\t\tctx.fillText(text, 0, 0);\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{ ctx.fillText(text, x, y + j * lineHeight); }\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// axis label\n\t\t\t\tif (axis.label) {\n\t\t\t\t\tctx.save();\n\n\t\t\t\t\tvar baseLpos = round(axis._lpos * pxRatio);\n\n\t\t\t\t\tif (ori == 1) {\n\t\t\t\t\t\tx = y = 0;\n\n\t\t\t\t\t\tctx.translate(\n\t\t\t\t\t\t\tbaseLpos,\n\t\t\t\t\t\t\tround(plotTop + plotHgt / 2)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tctx.rotate((side == 3 ? -PI : PI) / 2);\n\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tx = round(plotLft + plotWid / 2);\n\t\t\t\t\t\ty = baseLpos;\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.font         = axis.labelFont[0];\n\t\t\t\t//\tctx.fillStyle    = axis.labelStroke || hexBlack;\t\t\t\t\t\t// rgba?\n\t\t\t\t\tctx.textAlign    = \"center\";\n\t\t\t\t\tctx.textBaseline = side == 2 ? TOP : BOTTOM;\n\n\t\t\t\t\tctx.fillText(axis.label, x, y);\n\n\t\t\t\t\tctx.restore();\n\t\t\t\t}\n\n\t\t\t\t// ticks\n\t\t\t\tif (ticks.show) {\n\t\t\t\t\tdrawOrthoLines(\n\t\t\t\t\t\tcanOffs,\n\t\t\t\t\t\tticks.filter(self, splits, i, _space, incr),\n\t\t\t\t\t\tori,\n\t\t\t\t\t\tside,\n\t\t\t\t\t\tbasePos,\n\t\t\t\t\t\ttickSize,\n\t\t\t\t\t\troundDec(ticks.width * pxRatio, 3),\n\t\t\t\t\t\tticks.stroke(self, i),\n\t\t\t\t\t\tticks.dash,\n\t\t\t\t\t\tticks.cap\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// grid\n\t\t\t\tvar grid = axis.grid;\n\n\t\t\t\tif (grid.show) {\n\t\t\t\t\tdrawOrthoLines(\n\t\t\t\t\t\tcanOffs,\n\t\t\t\t\t\tgrid.filter(self, splits, i, _space, incr),\n\t\t\t\t\t\tori,\n\t\t\t\t\t\tori == 0 ? 2 : 1,\n\t\t\t\t\t\tori == 0 ? plotTop : plotLft,\n\t\t\t\t\t\tori == 0 ? plotHgt : plotWid,\n\t\t\t\t\t\troundDec(grid.width * pxRatio, 3),\n\t\t\t\t\t\tgrid.stroke(self, i),\n\t\t\t\t\t\tgrid.dash,\n\t\t\t\t\t\tgrid.cap\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfire(\"drawAxes\");\n\t\t}\n\n\t\tfunction resetYSeries(minMax) {\n\t\t//\tlog(\"resetYSeries()\", arguments);\n\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\ts._paths = null;\n\n\t\t\t\t\tif (minMax) {\n\t\t\t\t\t\ts.min = null;\n\t\t\t\t\t\ts.max = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar queuedCommit = false;\n\n\t\tfunction commit() {\n\t\t\tif (!queuedCommit) {\n\t\t\t\tmicroTask(_commit);\n\t\t\t\tqueuedCommit = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction _commit() {\n\t\t//\tlog(\"_commit()\", arguments);\n\n\t\t\tif (shouldSetScales) {\n\t\t\t\tsetScales();\n\t\t\t\tshouldSetScales = false;\n\t\t\t}\n\n\t\t\tif (shouldConvergeSize) {\n\t\t\t\tconvergeSize();\n\t\t\t\tshouldConvergeSize = false;\n\t\t\t}\n\n\t\t\tif (shouldSetSize) {\n\t\t\t\tsetStylePx(under, LEFT,   plotLftCss);\n\t\t\t\tsetStylePx(under, TOP,    plotTopCss);\n\t\t\t\tsetStylePx(under, WIDTH,  plotWidCss);\n\t\t\t\tsetStylePx(under, HEIGHT, plotHgtCss);\n\n\t\t\t\tsetStylePx(over, LEFT,    plotLftCss);\n\t\t\t\tsetStylePx(over, TOP,     plotTopCss);\n\t\t\t\tsetStylePx(over, WIDTH,   plotWidCss);\n\t\t\t\tsetStylePx(over, HEIGHT,  plotHgtCss);\n\n\t\t\t\tsetStylePx(wrap, WIDTH,   fullWidCss);\n\t\t\t\tsetStylePx(wrap, HEIGHT,  fullHgtCss);\n\n\t\t\t\tcan.width  = round(fullWidCss * pxRatio);\n\t\t\t\tcan.height = round(fullHgtCss * pxRatio);\n\n\t\t\t\tsyncRect();\n\n\t\t\t\tfire(\"setSize\");\n\n\t\t\t\tshouldSetSize = false;\n\t\t\t}\n\n\t\t\tif (fullWidCss > 0 && fullHgtCss > 0) {\n\t\t\t\tctx.clearRect(0, 0, can.width, can.height);\n\t\t\t\tfire(\"drawClear\");\n\t\t\t\tdrawOrder.forEach(fn => fn());\n\t\t\t\tfire(\"draw\");\n\t\t\t}\n\n\t\t//\tif (shouldSetSelect) {\n\t\t\t// TODO: update .u-select metrics (if visible)\n\t\t\t//\tsetStylePx(selectDiv, TOP, select.top = 0);\n\t\t\t//\tsetStylePx(selectDiv, LEFT, select.left = 0);\n\t\t\t//\tsetStylePx(selectDiv, WIDTH, select.width = 0);\n\t\t\t//\tsetStylePx(selectDiv, HEIGHT, select.height = 0);\n\t\t\t//\tshouldSetSelect = false;\n\t\t//\t}\n\n\t\t\tif (cursor.show && shouldSetCursor) {\n\t\t\t\tupdateCursor();\n\t\t\t\tshouldSetCursor = false;\n\t\t\t}\n\n\t\t//\tif (FEAT_LEGEND && legend.show && legend.live && shouldSetLegend) {}\n\n\t\t\tif (!ready) {\n\t\t\t\tready = true;\n\t\t\t\tself.status = 1;\n\n\t\t\t\tfire(\"ready\");\n\t\t\t}\n\n\t\t\tviaAutoScaleX = false;\n\n\t\t\tqueuedCommit = false;\n\t\t}\n\n\t\tself.redraw = (rebuildPaths, recalcAxes) => {\n\t\t\tshouldConvergeSize = recalcAxes || false;\n\n\t\t\tif (rebuildPaths !== false)\n\t\t\t\t{ _setScale(xScaleKey, scaleX.min, scaleX.max); }\n\t\t\telse\n\t\t\t\t{ commit(); }\n\t\t};\n\n\t\t// redraw() => setScale('x', scales.x.min, scales.x.max);\n\n\t\t// explicit, never re-ranged (is this actually true? for x and y)\n\t\tfunction setScale(key, opts) {\n\t\t\tvar sc = scales[key];\n\n\t\t\tif (sc.from == null) {\n\t\t\t\tif (dataLen == 0) {\n\t\t\t\t\tvar minMax = sc.range(self, opts.min, opts.max, key);\n\t\t\t\t\topts.min = minMax[0];\n\t\t\t\t\topts.max = minMax[1];\n\t\t\t\t}\n\n\t\t\t\tif (opts.min > opts.max) {\n\t\t\t\t\tvar _min = opts.min;\n\t\t\t\t\topts.min = opts.max;\n\t\t\t\t\topts.max = _min;\n\t\t\t\t}\n\n\t\t\t\tif (dataLen > 1 && opts.min != null && opts.max != null && opts.max - opts.min < 1e-16)\n\t\t\t\t\t{ return; }\n\n\t\t\t\tif (key == xScaleKey) {\n\t\t\t\t\tif (sc.distr == 2 && dataLen > 0) {\n\t\t\t\t\t\topts.min = closestIdx(opts.min, data[0]);\n\t\t\t\t\t\topts.max = closestIdx(opts.max, data[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t//\tlog(\"setScale()\", arguments);\n\n\t\t\t\tpendScales[key] = opts;\n\n\t\t\t\tshouldSetScales = true;\n\t\t\t\tcommit();\n\t\t\t}\n\t\t}\n\n\t\tself.setScale = setScale;\n\n\t//\tINTERACTION\n\n\t\tvar xCursor;\n\t\tvar yCursor;\n\t\tvar vCursor;\n\t\tvar hCursor;\n\n\t\t// starting position before cursor.move\n\t\tvar rawMouseLeft0;\n\t\tvar rawMouseTop0;\n\n\t\t// starting position\n\t\tvar mouseLeft0;\n\t\tvar mouseTop0;\n\n\t\t// current position before cursor.move\n\t\tvar rawMouseLeft1;\n\t\tvar rawMouseTop1;\n\n\t\t// current position\n\t\tvar mouseLeft1;\n\t\tvar mouseTop1;\n\n\t\tvar dragging = false;\n\n\t\tvar drag = cursor.drag;\n\n\t\tvar dragX = drag.x;\n\t\tvar dragY = drag.y;\n\n\t\tif (cursor.show) {\n\t\t\tif (cursor.x)\n\t\t\t\t{ xCursor = placeDiv(CURSOR_X, over); }\n\t\t\tif (cursor.y)\n\t\t\t\t{ yCursor = placeDiv(CURSOR_Y, over); }\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tvCursor = xCursor;\n\t\t\t\thCursor = yCursor;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvCursor = yCursor;\n\t\t\t\thCursor = xCursor;\n\t\t\t}\n\n\t\t\tmouseLeft1 = cursor.left;\n\t\t\tmouseTop1 = cursor.top;\n\t\t}\n\n\t\tvar select = self.select = assign({\n\t\t\tshow:   true,\n\t\t\tover:   true,\n\t\t\tleft:   0,\n\t\t\twidth:  0,\n\t\t\ttop:    0,\n\t\t\theight: 0,\n\t\t}, opts.select);\n\n\t\tvar selectDiv = select.show ? placeDiv(SELECT, select.over ? over : under) : null;\n\n\t\tfunction setSelect(opts, _fire) {\n\t\t\tif (select.show) {\n\t\t\t\tfor (var prop in opts)\n\t\t\t\t\t{ setStylePx(selectDiv, prop, select[prop] = opts[prop]); }\n\n\t\t\t\t_fire !== false && fire(\"setSelect\");\n\t\t\t}\n\t\t}\n\n\t\tself.setSelect = setSelect;\n\n\t\tfunction toggleDOM(i, onOff) {\n\t\t\tvar s = series[i];\n\t\t\tvar label = showLegend ? legendRows[i][0].parentNode : null;\n\n\t\t\tif (s.show)\n\t\t\t\t{ label && remClass(label, OFF); }\n\t\t\telse {\n\t\t\t\tlabel && addClass(label, OFF);\n\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t\t}\n\t\t}\n\n\t\tfunction _setScale(key, min, max) {\n\t\t\tsetScale(key, {min: min, max: max});\n\t\t}\n\n\t\tfunction setSeries(i, opts, pub) {\n\t\t//\tlog(\"setSeries()\", arguments);\n\n\t\t\tvar s = series[i];\n\n\t\t\tif (opts.focus != null)\n\t\t\t\t{ setFocus(i); }\n\n\t\t\tif (opts.show != null) {\n\t\t\t\ts.show = opts.show;\n\t\t\t\ttoggleDOM(i, opts.show);\n\n\t\t\t\t_setScale(s.scale, null, null);\n\t\t\t\tcommit();\n\t\t\t}\n\n\t\t\tfire(\"setSeries\", i, opts);\n\n\t\t\tpub && pubSync(\"setSeries\", self, i, opts);\n\t\t}\n\n\t\tself.setSeries = setSeries;\n\n\t\tfunction setAlpha(i, value) {\n\t\t\tseries[i].alpha = value;\n\n\t\t\tif (cursor.show && cursorPts[i])\n\t\t\t\t{ cursorPts[i].style.opacity = value; }\n\n\t\t\tif (showLegend && legendRows[i])\n\t\t\t\t{ legendRows[i][0].parentNode.style.opacity = value; }\n\t\t}\n\n\t\t// y-distance\n\t\tvar closestDist;\n\t\tvar closestSeries;\n\t\tvar focusedSeries;\n\t\tvar FOCUS_TRUE  = {focus: true};\n\t\tvar FOCUS_FALSE = {focus: false};\n\n\t\tfunction setFocus(i) {\n\t\t\tif (i != focusedSeries) {\n\t\t\t//\tlog(\"setFocus()\", arguments);\n\n\t\t\t\tvar allFocused = i == null;\n\n\t\t\t\tvar _setAlpha = focus.alpha != 1;\n\n\t\t\t\tseries.forEach((s, i2) => {\n\t\t\t\t\tvar isFocused = allFocused || i2 == 0 || i2 == i;\n\t\t\t\t\ts._focus = allFocused ? null : isFocused;\n\t\t\t\t\t_setAlpha && setAlpha(i2, isFocused ? 1 : focus.alpha);\n\t\t\t\t});\n\n\t\t\t\tfocusedSeries = i;\n\t\t\t\t_setAlpha && commit();\n\t\t\t}\n\t\t}\n\n\t\tif (showLegend && cursorFocus) {\n\t\t\ton(mouseleave, legendEl, e => {\n\t\t\t\tif (cursor._lock)\n\t\t\t\t\t{ return; }\n\t\t\t\tsetSeries(null, FOCUS_FALSE, syncOpts.setSeries);\n\t\t\t\tupdateCursor();\n\t\t\t});\n\t\t}\n\n\t\tfunction posToVal(pos, scale) {\n\t\t\tvar sc = scales[scale];\n\n\t\t\tvar dim = plotWidCss;\n\n\t\t\tif (sc.ori == 1) {\n\t\t\t\tdim = plotHgtCss;\n\t\t\t\tpos = dim - pos;\n\t\t\t}\n\n\t\t\tif (sc.dir == -1)\n\t\t\t\t{ pos = dim - pos; }\n\n\t\t\tvar _min = sc._min,\n\t\t\t\t_max = sc._max,\n\t\t\t\tpct = pos / dim;\n\n\t\t\tvar sv = _min + (_max - _min) * pct;\n\n\t\t\tvar distr = sc.distr;\n\n\t\t\treturn (\n\t\t\t\tdistr == 3 ? pow(10, sv) :\n\t\t\t\tdistr == 4 ? sinh(sv, sc.asinh) :\n\t\t\t\tsv\n\t\t\t);\n\t\t}\n\n\t\tfunction closestIdxFromXpos(pos) {\n\t\t\tvar v = posToVal(pos, xScaleKey);\n\t\t\treturn closestIdx(v, data[0], i0, i1);\n\t\t}\n\n\t\tself.valToIdx = val => closestIdx(val, data[0]);\n\t\tself.posToIdx = closestIdxFromXpos;\n\t\tself.posToVal = posToVal;\n\t\tself.valToPos = (val, scale, can) => (\n\t\t\tscales[scale].ori == 0 ?\n\t\t\tgetHPos(val, scales[scale],\n\t\t\t\tcan ? plotWid : plotWidCss,\n\t\t\t\tcan ? plotLft : 0\n\t\t\t) :\n\t\t\tgetVPos(val, scales[scale],\n\t\t\t\tcan ? plotHgt : plotHgtCss,\n\t\t\t\tcan ? plotTop : 0\n\t\t\t)\n\t\t);\n\n\t\t// defers calling expensive functions\n\t\tfunction batch(fn) {\n\t\t\tfn(self);\n\t\t\tcommit();\n\t\t}\n\n\t\tself.batch = batch;\n\n\t\t(self.setCursor = opts => {\n\t\t\tmouseLeft1 = opts.left;\n\t\t\tmouseTop1 = opts.top;\n\t\t//\tassign(cursor, opts);\n\t\t\tupdateCursor();\n\t\t});\n\n\t\tfunction setSelH(off, dim) {\n\t\t\tsetStylePx(selectDiv, LEFT,  select.left = off);\n\t\t\tsetStylePx(selectDiv, WIDTH, select.width = dim);\n\t\t}\n\n\t\tfunction setSelV(off, dim) {\n\t\t\tsetStylePx(selectDiv, TOP,    select.top = off);\n\t\t\tsetStylePx(selectDiv, HEIGHT, select.height = dim);\n\t\t}\n\n\t\tvar setSelX = scaleX.ori == 0 ? setSelH : setSelV;\n\t\tvar setSelY = scaleX.ori == 1 ? setSelH : setSelV;\n\n\t\tfunction updateCursor(ts, src) {\n\t\t\tvar assign;\n\n\t\t//\tts == null && log(\"updateCursor()\", arguments);\n\n\t\t\trawMouseLeft1 = mouseLeft1;\n\t\t\trawMouseTop1 = mouseTop1;\n\n\t\t\t(assign = cursor.move(self, mouseLeft1, mouseTop1), mouseLeft1 = assign[0], mouseTop1 = assign[1]);\n\n\t\t\tif (cursor.show) {\n\t\t\t\tvCursor && trans(vCursor, round(mouseLeft1), 0, plotWidCss, plotHgtCss);\n\t\t\t\thCursor && trans(hCursor, 0, round(mouseTop1), plotWidCss, plotHgtCss);\n\t\t\t}\n\n\t\t\tvar idx;\n\n\t\t\t// when zooming to an x scale range between datapoints the binary search\n\t\t\t// for nearest min/max indices results in this condition. cheap hack :D\n\t\t\tvar noDataInRange = i0 > i1;\n\n\t\t\tclosestDist = inf;\n\n\t\t\t// TODO: extract\n\t\t\tvar xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss;\n\t\t\tvar yDim = scaleX.ori == 1 ? plotWidCss : plotHgtCss;\n\n\t\t\t// if cursor hidden, hide points & clear legend vals\n\t\t\tif (mouseLeft1 < 0 || dataLen == 0 || noDataInRange) {\n\t\t\t\tidx = null;\n\n\t\t\t\tfor (var i = 0; i < series.length; i++) {\n\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i], -10, -10, plotWidCss, plotHgtCss);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\t\tif (i == 0 && multiValLegend)\n\t\t\t\t\t\t\t{ continue; }\n\n\t\t\t\t\t\tfor (var j = 0; j < legendRows[i].length; j++)\n\t\t\t\t\t\t\t{ legendRows[i][j].firstChild.nodeValue = '--'; }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (cursorFocus)\n\t\t\t\t\t{ setSeries(null, FOCUS_TRUE, syncOpts.setSeries); }\n\t\t\t}\n\t\t\telse {\n\t\t\t//\tlet pctY = 1 - (y / rect.height);\n\n\t\t\t\tvar mouseXPos = scaleX.ori == 0 ? mouseLeft1 : mouseTop1;\n\n\t\t\t\tvar valAtPosX = posToVal(mouseXPos, xScaleKey);\n\n\t\t\t\tidx = closestIdx(valAtPosX, data[0], i0, i1);\n\n\t\t\t\tvar xPos = incrRoundUp(valToPosX(data[0][idx], scaleX, xDim, 0), 0.5);\n\n\t\t\t\tfor (var i$1 = 0; i$1 < series.length; i$1++) {\n\t\t\t\t\tvar s = series[i$1];\n\n\t\t\t\t\tvar idx2  = cursor.dataIdx(self, i$1, idx, valAtPosX);\n\t\t\t\t\tvar xPos2 = idx2 == idx ? xPos : incrRoundUp(valToPosX(data[0][idx2], scaleX, xDim, 0), 0.5);\n\n\t\t\t\t\tif (i$1 > 0 && s.show) {\n\t\t\t\t\t\tvar valAtIdx = data[i$1][idx2];\n\n\t\t\t\t\t\tvar yPos = valAtIdx == null ? -10 : incrRoundUp(valToPosY(valAtIdx, scales[s.scale], yDim, 0), 0.5);\n\n\t\t\t\t\t\tif (yPos > 0) {\n\t\t\t\t\t\t\tvar dist = abs(yPos - mouseTop1);\n\n\t\t\t\t\t\t\tif (dist <= closestDist) {\n\t\t\t\t\t\t\t\tclosestDist = dist;\n\t\t\t\t\t\t\t\tclosestSeries = i$1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar hPos = (void 0), vPos = (void 0);\n\n\t\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\t\thPos = xPos2;\n\t\t\t\t\t\t\tvPos = yPos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thPos = yPos;\n\t\t\t\t\t\t\tvPos = xPos2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcursorPts.length > 1 && trans(cursorPts[i$1], hPos, vPos, plotWidCss, plotHgtCss);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showLegend && legend.live) {\n\t\t\t\t\t\tif ((idx2 == cursor.idx && !shouldSetLegend) || i$1 == 0 && multiValLegend)\n\t\t\t\t\t\t\t{ continue; }\n\n\t\t\t\t\t\tvar src$1 = i$1 == 0 && xScaleDistr == 2 ? data0 : data[i$1];\n\n\t\t\t\t\t\tvar vals = multiValLegend ? s.values(self, i$1, idx2) : {_: s.value(self, src$1[idx2], i$1, idx2)};\n\n\t\t\t\t\t\tvar j$1 = 0;\n\n\t\t\t\t\t\tfor (var k in vals)\n\t\t\t\t\t\t\t{ legendRows[i$1][j$1++].firstChild.nodeValue = vals[k]; }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tshouldSetLegend = false;\n\t\t\t}\n\n\t\t\t// nit: cursor.drag.setSelect is assumed always true\n\t\t\tif (select.show && dragging) {\n\t\t\t\tif (src != null) {\n\t\t\t\t\tvar ref = syncOpts.scales;\n\t\t\t\t\tvar xKey = ref[0];\n\t\t\t\t\tvar yKey = ref[1];\n\n\t\t\t\t\t// match the dragX/dragY implicitness/explicitness of src\n\t\t\t\t\tvar sdrag = src.cursor.drag;\n\t\t\t\t\tdragX = sdrag._x;\n\t\t\t\t\tdragY = sdrag._y;\n\n\t\t\t\t\tvar ref$1 = src.select;\n\t\t\t\t\tvar left = ref$1.left;\n\t\t\t\t\tvar top = ref$1.top;\n\t\t\t\t\tvar width = ref$1.width;\n\t\t\t\t\tvar height = ref$1.height;\n\n\t\t\t\t\tvar sori = src.scales[xKey].ori;\n\t\t\t\t\tvar sPosToVal = src.posToVal;\n\n\t\t\t\t\tvar sOff, sDim, sc, a, b;\n\n\t\t\t\t\tif (xKey) {\n\t\t\t\t\t\tif (sori == 0) {\n\t\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsc = scales[xKey];\n\n\t\t\t\t\t\ta = valToPosX(sPosToVal(sOff, xKey),        sc, xDim, 0);\n\t\t\t\t\t\tb = valToPosX(sPosToVal(sOff + sDim, xKey), sc, xDim, 0);\n\n\t\t\t\t\t\tsetSelX(min(a,b), abs(b-a));\n\n\t\t\t\t\t\tif (!yKey)\n\t\t\t\t\t\t\t{ setSelY(0, yDim); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif (yKey) {\n\t\t\t\t\t\tif (sori == 1) {\n\t\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsc = scales[yKey];\n\n\t\t\t\t\t\ta = valToPosY(sPosToVal(sOff, yKey),        sc, yDim, 0);\n\t\t\t\t\t\tb = valToPosY(sPosToVal(sOff + sDim, yKey), sc, yDim, 0);\n\n\t\t\t\t\t\tsetSelY(min(a,b), abs(b-a));\n\n\t\t\t\t\t\tif (!xKey)\n\t\t\t\t\t\t\t{ setSelX(0, xDim); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar rawDX = abs(rawMouseLeft1 - rawMouseLeft0);\n\t\t\t\t\tvar rawDY = abs(rawMouseTop1 - rawMouseTop0);\n\n\t\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\t\tvar _rawDX = rawDX;\n\t\t\t\t\t\trawDX = rawDY;\n\t\t\t\t\t\trawDY = _rawDX;\n\t\t\t\t\t}\n\n\t\t\t\t\tdragX = drag.x && rawDX >= drag.dist;\n\t\t\t\t\tdragY = drag.y && rawDY >= drag.dist;\n\n\t\t\t\t\tvar uni = drag.uni;\n\n\t\t\t\t\tif (uni != null) {\n\t\t\t\t\t\t// only calc drag status if they pass the dist thresh\n\t\t\t\t\t\tif (dragX && dragY) {\n\t\t\t\t\t\t\tdragX = rawDX >= uni;\n\t\t\t\t\t\t\tdragY = rawDY >= uni;\n\n\t\t\t\t\t\t\t// force unidirectionality when both are under uni limit\n\t\t\t\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\t\t\t\tif (rawDY > rawDX)\n\t\t\t\t\t\t\t\t\t{ dragY = true; }\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{ dragX = true; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (drag.x && drag.y && (dragX || dragY))\n\t\t\t\t\t\t// if omni with no uni then both dragX / dragY should be true if either is true\n\t\t\t\t\t\t{ dragX = dragY = true; }\n\n\t\t\t\t\tvar p0, p1;\n\n\t\t\t\t\tif (dragX) {\n\t\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetSelX(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\t\tif (!dragY)\n\t\t\t\t\t\t\t{ setSelY(0, yDim); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragY) {\n\t\t\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetSelY(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\t\tif (!dragX)\n\t\t\t\t\t\t\t{ setSelX(0, xDim); }\n\t\t\t\t\t}\n\n\t\t\t\t\t// the drag didn't pass the dist requirement\n\t\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\t\tsetSelX(0, 0);\n\t\t\t\t\t\tsetSelY(0, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcursor.idx = idx;\n\t\t\tcursor.left = mouseLeft1;\n\t\t\tcursor.top = mouseTop1;\n\t\t\tdrag._x = dragX;\n\t\t\tdrag._y = dragY;\n\n\t\t\t// if ts is present, means we're implicitly syncing own cursor\n\t\t\tif (ts != null) {\n\t\t\t\t// this is not technically a \"mousemove\" event, since it's debounced, rename to setCursor?\n\t\t\t\t// since this is internal, we can tweak it later\n\t\t\t\tpubSync(mousemove, self, mouseLeft1, mouseTop1, xDim, yDim, idx);\n\n\t\t\t\tif (cursorFocus) {\n\t\t\t\t\tvar o = syncOpts.setSeries;\n\t\t\t\t\tvar p = focus.prox;\n\n\t\t\t\t\tif (focusedSeries == null) {\n\t\t\t\t\t\tif (closestDist <= p)\n\t\t\t\t\t\t\t{ setSeries(closestSeries, FOCUS_TRUE, o); }\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (closestDist > p)\n\t\t\t\t\t\t\t{ setSeries(null, FOCUS_TRUE, o); }\n\t\t\t\t\t\telse if (closestSeries != focusedSeries)\n\t\t\t\t\t\t\t{ setSeries(closestSeries, FOCUS_TRUE, o); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tready && fire(\"setCursor\");\n\t\t}\n\n\t\tvar rect = null;\n\n\t\tfunction syncRect() {\n\t\t\trect = over.getBoundingClientRect();\n\t\t}\n\n\t\tfunction mouseMove(e, src, _l, _t, _w, _h, _i) {\n\t\t\tif (cursor._lock)\n\t\t\t\t{ return; }\n\n\t\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, e != null);\n\n\t\t\tif (e != null)\n\t\t\t\t{ updateCursor(1); }\n\t\t\telse\n\t\t\t\t{ updateCursor(null, src); }\n\t\t}\n\n\t\tfunction cacheMouse(e, src, _l, _t, _w, _h, _i, initial, snap) {\n\t\t\tvar assign;\n\n\t\t\tif (e != null) {\n\t\t\t\t_l = e.clientX - rect.left;\n\t\t\t\t_t = e.clientY - rect.top;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (_l < 0 || _t < 0) {\n\t\t\t\t\tmouseLeft1 = -10;\n\t\t\t\t\tmouseTop1 = -10;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar xDim = plotWidCss,\n\t\t\t\t\tyDim = plotHgtCss,\n\t\t\t\t\t_xDim = _w,\n\t\t\t\t\t_yDim = _h,\n\t\t\t\t\t_xPos = _l,\n\t\t\t\t\t_yPos = _t;\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\txDim = plotHgtCss;\n\t\t\t\t\tyDim = plotWidCss;\n\t\t\t\t}\n\n\t\t\t\tvar ref = syncOpts.scales;\n\t\t\t\tvar xKey = ref[0];\n\t\t\t\tvar yKey = ref[1];\n\n\t\t\t\tif (src.scales[xKey].ori == 1) {\n\t\t\t\t\t_xDim = _h;\n\t\t\t\t\t_yDim = _w;\n\t\t\t\t\t_xPos = _t;\n\t\t\t\t\t_yPos = _l;\n\t\t\t\t}\n\n\t\t\t\tif (xKey != null)\n\t\t\t\t\t{ _l = getPos(src.posToVal(_xPos, xKey), scales[xKey], xDim, 0); }\n\t\t\t\telse\n\t\t\t\t\t{ _l = xDim * (_xPos/_xDim); }\n\n\t\t\t\tif (yKey != null)\n\t\t\t\t\t{ _t = getPos(src.posToVal(_yPos, yKey), scales[yKey], yDim, 0); }\n\t\t\t\telse\n\t\t\t\t\t{ _t = yDim * (_yPos/_yDim); }\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\tvar _l$1 = _l;\n\t\t\t\t\t_l = _t;\n\t\t\t\t\t_t = _l$1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (snap) {\n\t\t\t\tif (_l <= 1 || _l >= plotWidCss - 1)\n\t\t\t\t\t{ _l = incrRound(_l, plotWidCss); }\n\n\t\t\t\tif (_t <= 1 || _t >= plotHgtCss - 1)\n\t\t\t\t\t{ _t = incrRound(_t, plotHgtCss); }\n\t\t\t}\n\n\t\t\tif (initial) {\n\t\t\t\trawMouseLeft0 = _l;\n\t\t\t\trawMouseTop0 = _t;\n\n\t\t\t\t(assign = cursor.move(self, _l, _t), mouseLeft0 = assign[0], mouseTop0 = assign[1]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmouseLeft1 = _l;\n\t\t\t\tmouseTop1 = _t;\n\t\t\t}\n\t\t}\n\n\t\tfunction hideSelect() {\n\t\t\tsetSelect({\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t}, false);\n\t\t}\n\n\t\tfunction mouseDown(e, src, _l, _t, _w, _h, _i) {\n\t\t\tdragging = true;\n\t\t\tdragX = dragY = drag._x = drag._y = false;\n\n\t\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, true, false);\n\n\t\t\tif (e != null) {\n\t\t\t\tonMouse(mouseup, doc, mouseUp);\n\t\t\t\tpubSync(mousedown, self, mouseLeft0, mouseTop0, plotWidCss, plotHgtCss, null);\n\t\t\t}\n\t\t}\n\n\t\tfunction mouseUp(e, src, _l, _t, _w, _h, _i) {\n\t\t\tdragging = drag._x = drag._y = false;\n\n\t\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, true);\n\n\t\t\tvar left = select.left;\n\t\t\tvar top = select.top;\n\t\t\tvar width = select.width;\n\t\t\tvar height = select.height;\n\n\t\t\tvar hasSelect = width > 0 || height > 0;\n\n\t\t\thasSelect && setSelect(select);\n\n\t\t\tif (drag.setScale && hasSelect) {\n\t\t\t//\tif (syncKey != null) {\n\t\t\t//\t\tdragX = drag.x;\n\t\t\t//\t\tdragY = drag.y;\n\t\t\t//\t}\n\n\t\t\t\tvar xOff = left,\n\t\t\t\t\txDim = width,\n\t\t\t\t\tyOff = top,\n\t\t\t\t\tyDim = height;\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\txOff = top,\n\t\t\t\t\txDim = height,\n\t\t\t\t\tyOff = left,\n\t\t\t\t\tyDim = width;\n\t\t\t\t}\n\n\t\t\t\tif (dragX) {\n\t\t\t\t\t_setScale(xScaleKey,\n\t\t\t\t\t\tposToVal(xOff, xScaleKey),\n\t\t\t\t\t\tposToVal(xOff + xDim, xScaleKey)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (dragY) {\n\t\t\t\t\tfor (var k in scales) {\n\t\t\t\t\t\tvar sc = scales[k];\n\n\t\t\t\t\t\tif (k != xScaleKey && sc.from == null && sc.min != inf) {\n\t\t\t\t\t\t\t_setScale(k,\n\t\t\t\t\t\t\t\tposToVal(yOff + yDim, k),\n\t\t\t\t\t\t\t\tposToVal(yOff, k)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\thideSelect();\n\t\t\t}\n\t\t\telse if (cursor.lock) {\n\t\t\t\tcursor._lock = !cursor._lock;\n\n\t\t\t\tif (!cursor._lock)\n\t\t\t\t\t{ updateCursor(); }\n\t\t\t}\n\n\t\t\tif (e != null) {\n\t\t\t\toffMouse(mouseup, doc);\n\t\t\t\tpubSync(mouseup, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t\t\t}\n\t\t}\n\n\t\tfunction mouseLeave(e, src, _l, _t, _w, _h, _i) {\n\t\t\tif (!cursor._lock) {\n\t\t\t\tvar _dragging = dragging;\n\n\t\t\t\tif (dragging) {\n\t\t\t\t\t// handle case when mousemove aren't fired all the way to edges by browser\n\t\t\t\t\tvar snapH = true;\n\t\t\t\t\tvar snapV = true;\n\t\t\t\t\tvar snapProx = 10;\n\n\t\t\t\t\tvar dragH, dragV;\n\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\tdragH = dragX;\n\t\t\t\t\t\tdragV = dragY;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tdragH = dragY;\n\t\t\t\t\t\tdragV = dragX;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragH && dragV) {\n\t\t\t\t\t\t// maybe omni corner snap\n\t\t\t\t\t\tsnapH = mouseLeft1 <= snapProx || mouseLeft1 >= plotWidCss - snapProx;\n\t\t\t\t\t\tsnapV = mouseTop1  <= snapProx || mouseTop1  >= plotHgtCss - snapProx;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragH && snapH)\n\t\t\t\t\t\t{ mouseLeft1 = mouseLeft1 < mouseLeft0 ? 0 : plotWidCss; }\n\n\t\t\t\t\tif (dragV && snapV)\n\t\t\t\t\t\t{ mouseTop1 = mouseTop1 < mouseTop0 ? 0 : plotHgtCss; }\n\n\t\t\t\t\tupdateCursor(1);\n\n\t\t\t\t\tdragging = false;\n\t\t\t\t}\n\n\t\t\t\tmouseLeft1 = -10;\n\t\t\t\tmouseTop1 = -10;\n\n\t\t\t\t// passing a non-null timestamp to force sync/mousemove event\n\t\t\t\tupdateCursor(1);\n\n\t\t\t\tif (_dragging)\n\t\t\t\t\t{ dragging = _dragging; }\n\t\t\t}\n\t\t}\n\n\t\tfunction dblClick(e, src, _l, _t, _w, _h, _i) {\n\t\t\tautoScaleX();\n\n\t\t\thideSelect();\n\n\t\t\tif (e != null)\n\t\t\t\t{ pubSync(dblclick, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null); }\n\t\t}\n\n\t\t// internal pub/sub\n\t\tvar events = {};\n\n\t\tevents.mousedown = mouseDown;\n\t\tevents.mousemove = mouseMove;\n\t\tevents.mouseup = mouseUp;\n\t\tevents.dblclick = dblClick;\n\t\tevents[\"setSeries\"] = (e, src, idx, opts) => {\n\t\t\tsetSeries(idx, opts);\n\t\t};\n\n\t\tvar deb;\n\n\t\tif (cursor.show) {\n\t\t\tonMouse(mousedown,  over, mouseDown);\n\t\t\tonMouse(mousemove,  over, mouseMove);\n\t\t\tonMouse(mouseenter, over, syncRect);\n\t\t\tonMouse(mouseleave, over, mouseLeave);\n\n\t\t\tonMouse(dblclick, over, dblClick);\n\n\t\t\tdeb = debounce(syncRect, 100);\n\n\t\t\ton(resize, win, deb);\n\t\t\ton(scroll, win, deb);\n\n\t\t\tself.syncRect = syncRect;\n\t\t}\n\n\t\t// external on/off\n\t\tvar hooks = self.hooks = opts.hooks || {};\n\n\t\tfunction fire(evName, a1, a2) {\n\t\t\tif (evName in hooks) {\n\t\t\t\thooks[evName].forEach(fn => {\n\t\t\t\t\tfn.call(null, self, a1, a2);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t(opts.plugins || []).forEach(p => {\n\t\t\tfor (var evName in p.hooks)\n\t\t\t\t{ hooks[evName] = (hooks[evName] || []).concat(p.hooks[evName]); }\n\t\t});\n\n\t\tvar syncOpts = assign({\n\t\t\tkey: null,\n\t\t\tsetSeries: false,\n\t\t\tfilters: {\n\t\t\t\tpub: retTrue,\n\t\t\t\tsub: retTrue,\n\t\t\t},\n\t\t\tscales: [xScaleKey, null]\n\t\t}, cursor.sync);\n\n\t\tvar syncKey = syncOpts.key;\n\n\t\tvar sync = _sync(syncKey);\n\n\t\tfunction pubSync(type, src, x, y, w, h, i) {\n\t\t\tif (syncOpts.filters.pub(type, src, x, y, w, h, i))\n\t\t\t\t{ sync.pub(type, src, x, y, w, h, i); }\n\t\t}\n\n\t\tsync.sub(self);\n\n\t\tfunction pub(type, src, x, y, w, h, i) {\n\t\t\tif (syncOpts.filters.sub(type, src, x, y, w, h, i))\n\t\t\t\t{ events[type](null, src, x, y, w, h, i); }\n\t\t}\n\n\t\t(self.pub = pub);\n\n\t\tfunction destroy() {\n\t\t\tsync.unsub(self);\n\t\t\toff(resize, win, deb);\n\t\t\toff(scroll, win, deb);\n\t\t\troot.remove();\n\t\t\tfire(\"destroy\");\n\t\t}\n\n\t\tself.destroy = destroy;\n\n\t\tfunction _init() {\n\t\t\tfire(\"init\", opts, data);\n\n\t\t\tsetData(data || opts.data, false);\n\n\t\t\tif (pendScales[xScaleKey])\n\t\t\t\t{ setScale(xScaleKey, pendScales[xScaleKey]); }\n\t\t\telse\n\t\t\t\t{ autoScaleX(); }\n\n\t\t\t_setSize(opts.width, opts.height);\n\n\t\t\tupdateCursor();\n\n\t\t\tsetSelect(select, false);\n\t\t}\n\n\t\tif (then) {\n\t\t\tif (then instanceof HTMLElement) {\n\t\t\t\tthen.appendChild(root);\n\t\t\t\t_init();\n\t\t\t}\n\t\t\telse\n\t\t\t\t{ then(self, _init); }\n\t\t}\n\t\telse\n\t\t\t{ _init(); }\n\n\t\treturn self;\n\t}\n\n\tuPlot.assign = assign;\n\tuPlot.fmtNum = fmtNum;\n\tuPlot.rangeNum = rangeNum;\n\tuPlot.rangeLog = rangeLog;\n\tuPlot.rangeAsinh = rangeAsinh;\n\tuPlot.orient   = orient;\n\n\t{\n\t\tuPlot.join = join;\n\t}\n\n\t{\n\t\tuPlot.fmtDate = fmtDate;\n\t\tuPlot.tzDate  = tzDate;\n\t}\n\n\t{\n\t\tuPlot.sync = _sync;\n\t}\n\n\t{\n\t\tuPlot.addGap = addGap;\n\t\tuPlot.clipGaps = clipGaps;\n\n\t\tvar paths = uPlot.paths = {};\n\n\t\t(paths.linear  = linear);\n\t\t(paths.spline  = spline);\n\t\t(paths.stepped = stepped);\n\t\t(paths.bars    = bars);\n\t}\n\n\treturn uPlot;\n\n}());\n"
  },
  {
    "path": "thisMyPCWeb/react_js/AdminLTE-3.1.0/starter.html",
    "content": "<!DOCTYPE html>\n<!--\nThis is a starter template page. Use this page to start your new project from\nscratch. This page gets rid of all links and provides the needed markup only.\n-->\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>AdminLTE 3 | Starter</title>\n\n  <!-- Google Font: Source Sans Pro -->\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback\">\n  <!-- Font Awesome Icons -->\n  <link rel=\"stylesheet\" href=\"plugins/fontawesome-free/css/all.min.css\">\n  <!-- Theme style -->\n  <link rel=\"stylesheet\" href=\"dist/css/adminlte.min.css\">\n</head>\n<body class=\"hold-transition sidebar-mini\">\n<div class=\"wrapper\">\n\n  <!-- Navbar -->\n  <nav class=\"main-header navbar navbar-expand navbar-white navbar-light\">\n    <!-- Left navbar links -->\n    <ul class=\"navbar-nav\">\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"pushmenu\" href=\"#\" role=\"button\"><i class=\"fas fa-bars\"></i></a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"index3.html\" class=\"nav-link\">Home</a>\n      </li>\n      <li class=\"nav-item d-none d-sm-inline-block\">\n        <a href=\"#\" class=\"nav-link\">Contact</a>\n      </li>\n    </ul>\n\n    <!-- Right navbar links -->\n    <ul class=\"navbar-nav ml-auto\">\n      <!-- Navbar Search -->\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"navbar-search\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-search\"></i>\n        </a>\n        <div class=\"navbar-search-block\">\n          <form class=\"form-inline\">\n            <div class=\"input-group input-group-sm\">\n              <input class=\"form-control form-control-navbar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n              <div class=\"input-group-append\">\n                <button class=\"btn btn-navbar\" type=\"submit\">\n                  <i class=\"fas fa-search\"></i>\n                </button>\n                <button class=\"btn btn-navbar\" type=\"button\" data-widget=\"navbar-search\">\n                  <i class=\"fas fa-times\"></i>\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </li>\n\n      <!-- Messages Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-comments\"></i>\n          <span class=\"badge badge-danger navbar-badge\">3</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user1-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 mr-3 img-circle\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Brad Diesel\n                  <span class=\"float-right text-sm text-danger\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">Call me whenever you can...</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user8-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  John Pierce\n                  <span class=\"float-right text-sm text-muted\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">I got your message bro</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <!-- Message Start -->\n            <div class=\"media\">\n              <img src=\"dist/img/user3-128x128.jpg\" alt=\"User Avatar\" class=\"img-size-50 img-circle mr-3\">\n              <div class=\"media-body\">\n                <h3 class=\"dropdown-item-title\">\n                  Nora Silvester\n                  <span class=\"float-right text-sm text-warning\"><i class=\"fas fa-star\"></i></span>\n                </h3>\n                <p class=\"text-sm\">The subject goes here</p>\n                <p class=\"text-sm text-muted\"><i class=\"far fa-clock mr-1\"></i> 4 Hours Ago</p>\n              </div>\n            </div>\n            <!-- Message End -->\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Messages</a>\n        </div>\n      </li>\n      <!-- Notifications Dropdown Menu -->\n      <li class=\"nav-item dropdown\">\n        <a class=\"nav-link\" data-toggle=\"dropdown\" href=\"#\">\n          <i class=\"far fa-bell\"></i>\n          <span class=\"badge badge-warning navbar-badge\">15</span>\n        </a>\n        <div class=\"dropdown-menu dropdown-menu-lg dropdown-menu-right\">\n          <span class=\"dropdown-header\">15 Notifications</span>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-envelope mr-2\"></i> 4 new messages\n            <span class=\"float-right text-muted text-sm\">3 mins</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-users mr-2\"></i> 8 friend requests\n            <span class=\"float-right text-muted text-sm\">12 hours</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item\">\n            <i class=\"fas fa-file mr-2\"></i> 3 new reports\n            <span class=\"float-right text-muted text-sm\">2 days</span>\n          </a>\n          <div class=\"dropdown-divider\"></div>\n          <a href=\"#\" class=\"dropdown-item dropdown-footer\">See All Notifications</a>\n        </div>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"fullscreen\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-expand-arrows-alt\"></i>\n        </a>\n      </li>\n      <li class=\"nav-item\">\n        <a class=\"nav-link\" data-widget=\"control-sidebar\" data-slide=\"true\" href=\"#\" role=\"button\">\n          <i class=\"fas fa-th-large\"></i>\n        </a>\n      </li>\n    </ul>\n  </nav>\n  <!-- /.navbar -->\n\n  <!-- Main Sidebar Container -->\n  <aside class=\"main-sidebar sidebar-dark-primary elevation-4\">\n    <!-- Brand Logo -->\n    <a href=\"index3.html\" class=\"brand-link\">\n      <img src=\"dist/img/AdminLTELogo.png\" alt=\"AdminLTE Logo\" class=\"brand-image img-circle elevation-3\" style=\"opacity: .8\">\n      <span class=\"brand-text font-weight-light\">AdminLTE 3</span>\n    </a>\n\n    <!-- Sidebar -->\n    <div class=\"sidebar\">\n      <!-- Sidebar user panel (optional) -->\n      <div class=\"user-panel mt-3 pb-3 mb-3 d-flex\">\n        <div class=\"image\">\n          <img src=\"dist/img/user2-160x160.jpg\" class=\"img-circle elevation-2\" alt=\"User Image\">\n        </div>\n        <div class=\"info\">\n          <a href=\"#\" class=\"d-block\">Alexander Pierce</a>\n        </div>\n      </div>\n\n      <!-- SidebarSearch Form -->\n      <div class=\"form-inline\">\n        <div class=\"input-group\" data-widget=\"sidebar-search\">\n          <input class=\"form-control form-control-sidebar\" type=\"search\" placeholder=\"Search\" aria-label=\"Search\">\n          <div class=\"input-group-append\">\n            <button class=\"btn btn-sidebar\">\n              <i class=\"fas fa-search fa-fw\"></i>\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <!-- Sidebar Menu -->\n      <nav class=\"mt-2\">\n        <ul class=\"nav nav-pills nav-sidebar flex-column\" data-widget=\"treeview\" role=\"menu\" data-accordion=\"false\">\n          <!-- Add icons to the links using the .nav-icon class\n               with font-awesome or any other icon font library -->\n          <li class=\"nav-item menu-open\">\n            <a href=\"#\" class=\"nav-link active\">\n              <i class=\"nav-icon fas fa-tachometer-alt\"></i>\n              <p>\n                Starter Pages\n                <i class=\"right fas fa-angle-left\"></i>\n              </p>\n            </a>\n            <ul class=\"nav nav-treeview\">\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link active\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Active Page</p>\n                </a>\n              </li>\n              <li class=\"nav-item\">\n                <a href=\"#\" class=\"nav-link\">\n                  <i class=\"far fa-circle nav-icon\"></i>\n                  <p>Inactive Page</p>\n                </a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"#\" class=\"nav-link\">\n              <i class=\"nav-icon fas fa-th\"></i>\n              <p>\n                Simple Link\n                <span class=\"right badge badge-danger\">New</span>\n              </p>\n            </a>\n          </li>\n        </ul>\n      </nav>\n      <!-- /.sidebar-menu -->\n    </div>\n    <!-- /.sidebar -->\n  </aside>\n\n  <!-- Content Wrapper. Contains page content -->\n  <div class=\"content-wrapper\">\n    <!-- Content Header (Page header) -->\n    <div class=\"content-header\">\n      <div class=\"container-fluid\">\n        <div class=\"row mb-2\">\n          <div class=\"col-sm-6\">\n            <h1 class=\"m-0\">Starter Page</h1>\n          </div><!-- /.col -->\n          <div class=\"col-sm-6\">\n            <ol class=\"breadcrumb float-sm-right\">\n              <li class=\"breadcrumb-item\"><a href=\"#\">Home</a></li>\n              <li class=\"breadcrumb-item active\">Starter Page</li>\n            </ol>\n          </div><!-- /.col -->\n        </div><!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content-header -->\n\n    <!-- Main content -->\n    <div class=\"content\">\n      <div class=\"container-fluid\">\n        <div class=\"row\">\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-body\">\n                <h5 class=\"card-title\">Card title</h5>\n\n                <p class=\"card-text\">\n                  Some quick example text to build on the card title and make up the bulk of the card's\n                  content.\n                </p>\n                <a href=\"#\" class=\"card-link\">Card link</a>\n                <a href=\"#\" class=\"card-link\">Another link</a>\n              </div>\n            </div><!-- /.card -->\n          </div>\n          <!-- /.col-md-6 -->\n          <div class=\"col-lg-6\">\n            <div class=\"card\">\n              <div class=\"card-header\">\n                <h5 class=\"m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n\n            <div class=\"card card-primary card-outline\">\n              <div class=\"card-header\">\n                <h5 class=\"m-0\">Featured</h5>\n              </div>\n              <div class=\"card-body\">\n                <h6 class=\"card-title\">Special title treatment</h6>\n\n                <p class=\"card-text\">With supporting text below as a natural lead-in to additional content.</p>\n                <a href=\"#\" class=\"btn btn-primary\">Go somewhere</a>\n              </div>\n            </div>\n          </div>\n          <!-- /.col-md-6 -->\n        </div>\n        <!-- /.row -->\n      </div><!-- /.container-fluid -->\n    </div>\n    <!-- /.content -->\n  </div>\n  <!-- /.content-wrapper -->\n\n  <!-- Control Sidebar -->\n  <aside class=\"control-sidebar control-sidebar-dark\">\n    <!-- Control sidebar content goes here -->\n    <div class=\"p-3\">\n      <h5>Title</h5>\n      <p>Sidebar content</p>\n    </div>\n  </aside>\n  <!-- /.control-sidebar -->\n\n  <!-- Main Footer -->\n  <footer class=\"main-footer\">\n    <!-- To the right -->\n    <div class=\"float-right d-none d-sm-inline\">\n      Anything you want\n    </div>\n    <!-- Default to the left -->\n    <strong>Copyright &copy; 2014-2021 <a href=\"https://adminlte.io\">AdminLTE.io</a>.</strong> All rights reserved.\n  </footer>\n</div>\n<!-- ./wrapper -->\n\n<!-- REQUIRED SCRIPTS -->\n\n<!-- jQuery -->\n<script src=\"plugins/jquery/jquery.min.js\"></script>\n<!-- Bootstrap 4 -->\n<script src=\"plugins/bootstrap/js/bootstrap.bundle.min.js\"></script>\n<!-- AdminLTE App -->\n<script src=\"dist/js/adminlte.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/README.md",
    "content": "# Getting Started with Create React App\n\nThis project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).\n\n## Available Scripts\n\nIn the project directory, you can run:\n\n### `yarn start`\n\nRuns the app in the development mode.\\\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `yarn test`\n\nLaunches the test runner in the interactive watch mode.\\\nSee the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.\n\n### `yarn build`\n\nBuilds the app for production to the `build` folder.\\\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\\\nYour app is ready to be deployed!\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n\n### `yarn eject`\n\n**Note: this is a one-way operation. Once you `eject`, you can’t go back!**\n\nIf you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.\n\nInstead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.\n\nYou don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.\n\n## Learn More\n\nYou can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).\n\nTo learn React, check out the [React documentation](https://reactjs.org/).\n"
  },
  {
    "path": "thisMyPCWeb/react_js/package.json",
    "content": "{\n  \"name\": \"react_js\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"dependencies\": {\n    \"@testing-library/jest-dom\": \"^5.11.4\",\n    \"@testing-library/react\": \"^11.1.0\",\n    \"@testing-library/user-event\": \"^12.1.10\",\n    \"@types/jest\": \"^26.0.15\",\n    \"@types/node\": \"^12.0.0\",\n    \"@types/react\": \"^17.0.0\",\n    \"@types/react-dom\": \"^17.0.0\",\n    \"@types/react-router-dom\": \"^5.1.8\",\n    \"@types/redux-promise\": \"^0.5.29\",\n    \"axios\": \"^0.20.0\",\n    \"bootstrap\": \"^5.1.0\",\n    \"node-sass\": \"^6.0.1\",\n    \"react\": \"^17.0.2\",\n    \"react-dom\": \"^17.0.2\",\n    \"react-redux\": \"^7.2.4\",\n    \"react-router-dom\": \"^5.2.0\",\n    \"react-scripts\": \"4.0.3\",\n    \"redux-logger\": \"^3.0.6\",\n    \"redux-persist\": \"^6.0.0\",\n    \"redux-promise\": \"^0.6.0\",\n    \"redux-thunk\": \"^2.3.0\",\n    \"sass\": \"^1.38.0\",\n    \"typescript\": \"^4.1.2\",\n    \"web-vitals\": \"^1.0.1\"\n  },\n  \"scripts\": {\n    \"start\": \"react-scripts start\",\n    \"build\": \"react-scripts build\",\n    \"test\": \"react-scripts test\",\n    \"eject\": \"react-scripts eject\",\n    \"storybook\": \"start-storybook -p 6006 -s public\",\n    \"build-storybook\": \"build-storybook -s public\"\n  },\n  \"eslintConfig\": {\n    \"extends\": [\n      \"react-app\",\n      \"react-app/jest\"\n    ],\n    \"overrides\": [\n      {\n        \"files\": [\n          \"**/*.stories.*\"\n        ],\n        \"rules\": {\n          \"import/no-anonymous-default-export\": \"off\"\n        }\n      }\n    ]\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.2%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  },\n  \"devDependencies\": {\n    \"@storybook/addon-actions\": \"^6.3.7\",\n    \"@storybook/addon-essentials\": \"^6.3.7\",\n    \"@storybook/addon-links\": \"^6.3.7\",\n    \"@storybook/node-logger\": \"^6.3.7\",\n    \"@storybook/preset-create-react-app\": \"^3.2.0\",\n    \"@storybook/react\": \"^6.3.7\"\n  },\n  \"resolutions\": {\n    \"babel-loader\": \"8.1.0\"\n  }\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"%PUBLIC_URL%/favicon.ico\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n    <meta name=\"theme-color\" content=\"#000000\" />\n    <meta\n      name=\"description\"\n      content=\"Web site created using create-react-app\"\n    />\n    <link rel=\"apple-touch-icon\" href=\"%PUBLIC_URL%/logo192.png\" />\n    <!--\n      manifest.json provides metadata used when your web app is installed on a\n      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/\n    -->\n    <link rel=\"manifest\" href=\"%PUBLIC_URL%/manifest.json\" />\n    <!--\n      Notice the use of %PUBLIC_URL% in the tags above.\n      It will be replaced with the URL of the `public` folder during the build.\n      Only files inside the `public` folder can be referenced from the HTML.\n\n      Unlike \"/favicon.ico\" or \"favicon.ico\", \"%PUBLIC_URL%/favicon.ico\" will\n      work correctly both with client-side routing and a non-root public URL.\n      Learn how to configure a non-root public URL by running `npm run build`.\n    -->\n    <title>React App</title>\n  </head>\n  <body>\n    <noscript>You need to enable JavaScript to run this app.</noscript>\n    <div id=\"root\"></div>\n    <!--\n      This HTML file is a template.\n      If you open it directly in the browser, you will see an empty page.\n\n      You can add webfonts, meta tags, or analytics to this file.\n      The build step will place the bundled scripts into the <body> tag.\n\n      To begin the development, run `npm start` or `yarn start`.\n      To create a production bundle, use `npm run build` or `yarn build`.\n    -->\n  </body>\n</html>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/public/manifest.json",
    "content": "{\n  \"short_name\": \"React App\",\n  \"name\": \"Create React App Sample\",\n  \"icons\": [\n    {\n      \"src\": \"favicon.ico\",\n      \"sizes\": \"64x64 32x32 24x24 16x16\",\n      \"type\": \"image/x-icon\"\n    },\n    {\n      \"src\": \"logo192.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"192x192\"\n    },\n    {\n      \"src\": \"logo512.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"start_url\": \".\",\n  \"display\": \"standalone\",\n  \"theme_color\": \"#000000\",\n  \"background_color\": \"#ffffff\"\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/public/robots.txt",
    "content": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/App.test.tsx",
    "content": "import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport App from './App';\n\ntest('renders learn react link', () => {\n  render(<App />);\n  const linkElement = screen.getByText(/learn react/i);\n  expect(linkElement).toBeInTheDocument();\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/App.tsx",
    "content": "import React from \"react\";\nimport Routes from \"./routes\";\nimport './assets/css/adminlte.css';\nimport './assets/plugins/fontawesome-free/css/all.min.css'\n\nconst App = () => {\n  return <Routes />;\n};\n\nexport default App;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/Helper/index.ts",
    "content": ""
  },
  {
    "path": "thisMyPCWeb/react_js/src/Hooks/useApi.ts",
    "content": "import { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { deleteRequest, get, post, put } from \"../api/commonApi\";\n\nfunction useApi() {\n  const dispatch = useDispatch();\n  const [actions, setActions] = useState<any>({});\n  const [baseUrl, setBaseUrl] = useState(\"\");\n  const [customInput, setCustomInput] = useState({});\n  const [isEnCoded, setEnCoded] = useState(false);\n  const [method, setMethod] = useState(\"POST\");\n  const [portType, setPortType] = useState(\"\");\n  const [postValues, setPostValues] = useState({});\n\n  const requestAPI = () => {\n    switch (method) {\n      case \"POST\":\n        return post();\n\n      case \"GET\":\n        return get();\n\n      case \"PUT\":\n        return put();\n\n      case \"DELETE\":\n        return deleteRequest();\n\n      default:\n        return get();\n    }\n  };\n\n  useEffect(() => {\n    if (baseUrl && baseUrl != \"\") {\n      const requestAPICall = () => {\n        actions.request &&\n          dispatch({\n            type: actions.request,\n            payload: { customInput },\n          });\n        const result = requestAPI();\n\n        result\n          .then((response: { status: any; data: any }) => {\n            switch (response.status) {\n              case 200:\n                dispatch({\n                  type: actions.success,\n                  payload: { customInput, dataWrapper: response.data },\n                });\n                break;\n\n              default:\n                dispatch({\n                  type: actions.fail,\n                  payload: { customInput, dataWrapper: response.data },\n                });\n\n                break;\n            }\n          })\n          .catch((error: any) => {\n            dispatch({\n              type: actions.fail,\n              payload: error,\n              customInput,\n            });\n          });\n\n        setBaseUrl(\"\");\n      };\n\n      requestAPICall();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [baseUrl]);\n\n  const submitForm = (\n    fail: string,\n    isEnCoded: boolean = false,\n    method: string,\n    portType: string,\n    postValues: object | null,\n    request: string,\n    success: string,\n    url: string,\n    customInput?: object\n  ) => {\n    const newActions = { request, success, fail };\n    const mergedActions = { ...actions, ...newActions };\n\n    customInput && setCustomInput(customInput);\n\n    setMethod(method);\n    setActions(mergedActions);\n    setPostValues(postValues || {});\n    setEnCoded(isEnCoded);\n    setPortType(portType);\n    setBaseUrl(url);\n  };\n\n  return [submitForm];\n}\n\nexport default useApi;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/api/commonApi.ts",
    "content": "import axios from \"axios\";\nexport const get = () => {\n  return axios.get(\"url\");\n};\nexport const post = () => {\n  return axios.post(\"url\");\n};\nexport const put = () => {\n  return axios.put(\"url\");\n};\nexport const deleteRequest = () => {\n  return axios.delete(\"url\");\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/adminlte.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-weight: 500;\n  line-height: 1.2;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #454d55;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: calc(1.5em + 0.75rem);\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: calc(1.5em + 0.75rem);\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(1.5em + 0.75rem);\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: calc(1.5em + 0.75rem);\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #e9ecef;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #adb5bd;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #fff;\n  border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fff;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 0.875rem;\n}\n\n.custom-select-lg {\n  height: calc(1.5em + 1rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 1.25rem;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: calc(1.5em + 0.75rem);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1.4rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0.2rem;\n  margin-left: 0.2rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: -1px;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #212529;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #212529;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close, .alert-dismissible .mailbox-attachment-close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem 1rem;\n  border-bottom: 1px solid #dee2e6;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close, .modal-header .mailbox-attachment-close {\n  padding: 1rem 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #dee2e6;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease-in-out;\n  transition: transform 0.6s ease-in-out;\n  transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 1rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 1rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 1rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #212529;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #212529;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #212529;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #212529;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1.5rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1.5rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1.5rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #212529;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #212529;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #212529;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #212529;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #212529;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #212529;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #212529;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #212529;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(1.5em + 0.75rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(1.5em + 1rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(1.5em + 1rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.5em + 0.5rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.5em + 0.5rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #212529;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: calc(1.5em + 0.75rem);\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #212529;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #212529;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #212529;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #212529;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #212529;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #212529;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #212529;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #212529;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #212529;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #212529;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #212529;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #212529;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #212529;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #212529;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #212529;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #212529;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #212529;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #212529;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #212529;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #212529;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #212529;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #212529;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #212529;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #212529;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #212529;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #212529;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #212529;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #212529;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #212529;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #212529;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #212529;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(33, 37, 41, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #212529;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #212529;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #212529;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #212529;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #212529;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-primary .mailbox-attachment-close, .modal-content.bg-secondary .close, .modal-content.bg-secondary .mailbox-attachment-close, .modal-content.bg-info .close, .modal-content.bg-info .mailbox-attachment-close, .modal-content.bg-danger .close, .modal-content.bg-danger .mailbox-attachment-close, .modal-content.bg-success .close, .modal-content.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close, .dark-mode .modal-content.bg-warning .mailbox-attachment-close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close, .dark-mode .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close, .dark-mode .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close, .dark-mode .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close, .dark-mode .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close, .dark-mode .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close, .dark-mode .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close, .dark-mode .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close, .dark-mode .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close, .dark-mode .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close, .dark-mode .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close, .dark-mode .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close, .dark-mode .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close, .dark-mode .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close, .dark-mode .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close, .dark-mode .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #212529;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close, .dark-mode .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close, .dark-mode .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close, .toast.bg-primary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close, .toast.bg-secondary .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close, .toast.bg-success .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close, .toast.bg-info .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #212529;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close, .toast.bg-danger .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #212529;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close, .toast.bg-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close, .toast.bg-lightblue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close, .toast.bg-navy .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close, .toast.bg-olive .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #212529;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close, .toast.bg-fuchsia .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close, .toast.bg-maroon .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close, .toast.bg-blue .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close, .toast.bg-indigo .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close, .toast.bg-purple .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close, .toast.bg-pink .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close, .toast.bg-red .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #212529;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #212529;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close, .toast.bg-green .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close, .toast.bg-teal .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close, .toast.bg-cyan .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #212529;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close, .toast.bg-gray .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close, .toast.bg-gray-dark .mailbox-attachment-close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0.2rem rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #212529;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0.2rem rgba(212, 138, 21, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #212529;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(212, 138, 21, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #212529;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  border: 1px solid #dee2e6;\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close, .alert .mailbox-attachment-close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover, .alert .mailbox-attachment-close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #212529;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #343a40;\n  box-shadow: inset 0 1px 0 #454d55, inset 0 -1px 0 #454d55;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus, .mailbox-attachment-close:focus {\n  outline: none;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #212529;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #212529;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #212529;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #212529;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #212529;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #212529;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #212529;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #212529;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #383f45;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #212529;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #212529;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #212529;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #212529;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #212529;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #212529;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #212529;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid,\n.content-wrapper.kanban .content .container-sm,\n.content-wrapper.kanban .content .container-md,\n.content-wrapper.kanban .content .container-lg,\n.content-wrapper.kanban .content .container-xl {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(1.5em + 0.75rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(1.5em + 0.75rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.5em + 0.5rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.5em + 0.5rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #212529;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #212529;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #212529;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #212529;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #212529;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #212529;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #212529;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #212529;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #212529;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #212529;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #212529;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #212529;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #212529;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(33, 37, 41, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #212529;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #212529;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #212529;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #212529;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #212529;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #212529;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #212529;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(33, 37, 41, 0.2) 25%, transparent 25%, transparent 50%, rgba(33, 37, 41, 0.2) 50%, rgba(33, 37, 41, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #212529;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #212529;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #212529;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #212529;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #212529, 240px 0 #212529;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #212529;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(33, 37, 41, 0.5), inset 0 6px rgba(33, 37, 41, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(33, 37, 41, 0.65) 0%, rgba(33, 37, 41, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #212529;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #212529;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close, .dark-mode .mailbox-attachment-close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #212529 !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #101214;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #212529;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #212529 !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #101214;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #212529;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #212529 !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #101214;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #212529 !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #101214;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #212529 !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #101214;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #212529;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #212529 !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #101214;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #212529;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #212529;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #212529 !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #212529 !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #101214;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #212529;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #101214;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #212529;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #101214;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #101214;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #101214;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #212529;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #212529;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #101214;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #212529;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #212529;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #212529;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #212529;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #212529;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #212529;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #101214;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #101214;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #212529;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #101214;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #101214;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #101214;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #212529;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #101214;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #101214;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #101214;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #101214;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #212529 !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #101214;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #212529;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #101214;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #212529;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #212529;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #212529;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #212529;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #212529;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #212529;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #212529;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #212529;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #212529;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #212529;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #212529;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #212529;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/alt/adminlte.components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.fal, .form-control-feedback.fad, .form-control-feedback.svg-inline--fa, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.fal, .input-lg + .form-control-feedback.fad, .input-lg + .form-control-feedback.svg-inline--fa, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.fal,\n.input-group-lg + .form-control-feedback.fad,\n.input-group-lg + .form-control-feedback.svg-inline--fa,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.fal, .form-group-lg .form-control + .form-control-feedback.fad, .form-group-lg .form-control + .form-control-feedback.svg-inline--fa, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.fal, .input-sm + .form-control-feedback.fad, .input-sm + .form-control-feedback.svg-inline--fa, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.fal,\n.input-group-sm + .form-control-feedback.fad,\n.input-group-sm + .form-control-feedback.svg-inline--fa,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.fal, .form-group-sm .form-control + .form-control-feedback.fad, .form-group-sm .form-control + .form-control-feedback.svg-inline--fa, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1f2d3d;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\nbody.text-sm .input-group-text {\n  font-size: 0.875rem;\n}\n\n.form-control.form-control-border,\n.custom-select.form-control-border {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-radius: 0;\n  box-shadow: inherit;\n}\n\n.form-control.form-control-border.border-width-2,\n.custom-select.form-control-border.border-width-2 {\n  border-bottom-width: 2px;\n}\n\n.form-control.form-control-border.border-width-3,\n.custom-select.form-control-border.border-width-3 {\n  border-bottom-width: 3px;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #1d455b;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #acd0e5;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(60, 141, 188, 0.25);\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #3c8dbc;\n}\n\n.custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: #c0dbeb;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #3c8dbc;\n  background-color: #3c8dbc;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(60, 141, 188, 0.25);\n}\n\n.custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #99c5de;\n}\n\n.custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #c0dbeb;\n  border-color: #c0dbeb;\n}\n\n.custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #001f3f;\n  background-color: #001f3f;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #005ebf;\n}\n\n.custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0077f2;\n  border-color: #0077f2;\n}\n\n.custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #3d9970;\n  background-color: #3d9970;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #87cfaf;\n}\n\n.custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #abdec7;\n  border-color: #abdec7;\n}\n\n.custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #01ff70;\n  background-color: #01ff70;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #81ffb8;\n}\n\n.custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b4ffd4;\n  border-color: #b4ffd4;\n}\n\n.custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f012be;\n  background-color: #f012be;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f88adf;\n}\n\n.custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbbaec;\n  border-color: #fbbaec;\n}\n\n.custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #d81b60;\n  background-color: #d81b60;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f083ab;\n}\n\n.custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f5b0c9;\n  border-color: #f5b0c9;\n}\n\n.custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #dc3545;\n  background-color: #dc3545;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #efa2a9;\n}\n\n.custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f6cdd1;\n  border-color: #f6cdd1;\n}\n\n.custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #ffc107;\n  background-color: #ffc107;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffe187;\n}\n\n.custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffeeba;\n  border-color: #ffeeba;\n}\n\n.custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #28a745;\n  background-color: #28a745;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #71dd8a;\n}\n\n.custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #9be7ac;\n  border-color: #9be7ac;\n}\n\n.custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #17a2b8;\n  background-color: #17a2b8;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #63d9ec;\n}\n\n.custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #90e4f1;\n  border-color: #90e4f1;\n}\n\n.custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.custom-control-input-outline ~ .custom-control-label::before {\n  background-color: transparent !important;\n  box-shadow: none;\n}\n\n.custom-control-input-outline:checked ~ .custom-control-label::before {\n  background-color: transparent;\n}\n\n.navbar-dark .btn-navbar,\n.navbar-dark .form-control-navbar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n.navbar-dark .btn-navbar:hover {\n  background-color: #454d55;\n}\n\n.navbar-dark .btn-navbar:focus {\n  background-color: #4b545c;\n}\n\n.navbar-dark .form-control-navbar + .input-group-prepend > .btn-navbar,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3f474e;\n  color: #fff;\n  border: 1px solid #56606a;\n  border-left: none;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),\n.dark-mode .custom-select,\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after,\n.dark-mode .custom-control-label::before,\n.dark-mode .input-group-text {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),\n.dark-mode .custom-file-label,\n.dark-mode .custom-file-label::after {\n  border-color: #6c757d;\n}\n\n.dark-mode select {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .input-group-text {\n  border-color: #6c757d;\n}\n\n.dark-mode .custom-control-input:disabled ~ .custom-control-label::before,\n.dark-mode .custom-control-input[disabled] ~ .custom-control-label::before {\n  background-color: #3f474e;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .custom-range::-webkit-slider-runnable-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-moz-range-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range::-ms-track {\n  background-color: #454d55;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb {\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb {\n  background-color: #002c59;\n}\n\n.dark-mode .custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0c84ff;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb {\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #f4fbf8;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb {\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb {\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #a9c1da;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.dark-mode .custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb {\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #fbdedb;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #fce3bc;\n}\n\n.dark-mode .custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb {\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #70ffda;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.dark-mode .custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #3498db;\n}\n\n.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #cce5f6;\n}\n\n.dark-mode .custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb {\n  background-color: #fff;\n}\n\n.dark-mode .custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background-color: #aeb9c5;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input ~ .custom-control-label::after {\n  background-color: #367fa9;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fafcfd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #0077f2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background-color: #368763;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #e2f3eb;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background-color: #00e765;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background-color: #db0ead;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background-color: #c11856;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fef4f8;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background-color: #182838;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #97b4d2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background-color: #33077c;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c3a1fa;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background-color: #382063;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #c7b5e7;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background-color: #95124e;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c7dd;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background-color: #921e12;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #f8c9c4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background-color: #904201;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fed1ac;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background-color: #7f5006;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fad9a4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background-color: #003d2d;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #56ffd4;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background-color: #0e5b44;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #94eed3;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background-color: #16527a;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #b6daf2;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background-color: #bfbfbf;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: white;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background-color: #313539;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #bcc1c6;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background-color: black;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #7a8793;\n}\n\n.dark-mode .custom-control-input-primary:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-primary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-primary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-primary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-secondary:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-secondary:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-secondary:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-secondary:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-success:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-success:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-success:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-success:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-info:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-info:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-info:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-info:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-warning:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-warning:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-warning:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-danger:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-danger:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-danger:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-danger:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-light:checked ~ .custom-control-label::before {\n  border-color: #f8f9fa;\n  background-color: #f8f9fa;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-light:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.dark-mode .custom-control-input-light:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-light:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.dark-mode .custom-control-input-lightblue:checked ~ .custom-control-label::before {\n  border-color: #86bad8;\n  background-color: #86bad8;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lightblue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(134, 186, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-lightblue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .custom-control-input-lightblue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-navy:checked ~ .custom-control-label::before {\n  border-color: #002c59;\n  background-color: #002c59;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-navy:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 44, 89, 0.25);\n}\n\n.dark-mode .custom-control-input-navy:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #006ad8;\n}\n\n.dark-mode .custom-control-input-navy:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #0c84ff;\n  border-color: #0c84ff;\n}\n\n.dark-mode .custom-control-input-olive:checked ~ .custom-control-label::before {\n  border-color: #74c8a3;\n  background-color: #74c8a3;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-olive:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(116, 200, 163, 0.25);\n}\n\n.dark-mode .custom-control-input-olive:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #cfecdf;\n}\n\n.dark-mode .custom-control-input-olive:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #f4fbf8;\n  border-color: #f4fbf8;\n}\n\n.dark-mode .custom-control-input-lime:checked ~ .custom-control-label::before {\n  border-color: #67ffa9;\n  background-color: #67ffa9;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-lime:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(103, 255, 169, 0.25);\n}\n\n.dark-mode .custom-control-input-lime:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #e7fff1;\n}\n\n.dark-mode .custom-control-input-lime:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-fuchsia:checked ~ .custom-control-label::before {\n  border-color: #f672d8;\n  background-color: #f672d8;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-fuchsia:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(246, 114, 216, 0.25);\n}\n\n.dark-mode .custom-control-input-fuchsia:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #feeaf9;\n}\n\n.dark-mode .custom-control-input-fuchsia:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-maroon:checked ~ .custom-control-label::before {\n  border-color: #ed6c9b;\n  background-color: #ed6c9b;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-maroon:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(237, 108, 155, 0.25);\n}\n\n.dark-mode .custom-control-input-maroon:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fbdee8;\n}\n\n.dark-mode .custom-control-input-maroon:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-blue:checked ~ .custom-control-label::before {\n  border-color: #3f6791;\n  background-color: #3f6791;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-blue:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(63, 103, 145, 0.25);\n}\n\n.dark-mode .custom-control-input-blue:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #85a7ca;\n}\n\n.dark-mode .custom-control-input-blue:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #a9c1da;\n  border-color: #a9c1da;\n}\n\n.dark-mode .custom-control-input-indigo:checked ~ .custom-control-label::before {\n  border-color: #6610f2;\n  background-color: #6610f2;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-indigo:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.dark-mode .custom-control-input-indigo:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b389f9;\n}\n\n.dark-mode .custom-control-input-indigo:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d2b9fb;\n  border-color: #d2b9fb;\n}\n\n.dark-mode .custom-control-input-purple:checked ~ .custom-control-label::before {\n  border-color: #6f42c1;\n  background-color: #6f42c1;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-purple:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.dark-mode .custom-control-input-purple:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .custom-control-input-purple:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #d5c8ed;\n  border-color: #d5c8ed;\n}\n\n.dark-mode .custom-control-input-pink:checked ~ .custom-control-label::before {\n  border-color: #e83e8c;\n  background-color: #e83e8c;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-pink:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-pink:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .custom-control-input-pink:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbddeb;\n  border-color: #fbddeb;\n}\n\n.dark-mode .custom-control-input-red:checked ~ .custom-control-label::before {\n  border-color: #e74c3c;\n  background-color: #e74c3c;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-red:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(231, 76, 60, 0.25);\n}\n\n.dark-mode .custom-control-input-red:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .custom-control-input-red:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fbdedb;\n  border-color: #fbdedb;\n}\n\n.dark-mode .custom-control-input-orange:checked ~ .custom-control-label::before {\n  border-color: #fd7e14;\n  background-color: #fd7e14;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-orange:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.dark-mode .custom-control-input-orange:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #fec392;\n}\n\n.dark-mode .custom-control-input-orange:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #ffdfc5;\n  border-color: #ffdfc5;\n}\n\n.dark-mode .custom-control-input-yellow:checked ~ .custom-control-label::before {\n  border-color: #f39c12;\n  background-color: #f39c12;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-yellow:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(243, 156, 18, 0.25);\n}\n\n.dark-mode .custom-control-input-yellow:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .custom-control-input-yellow:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #fce3bc;\n  border-color: #fce3bc;\n}\n\n.dark-mode .custom-control-input-green:checked ~ .custom-control-label::before {\n  border-color: #00bc8c;\n  background-color: #00bc8c;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-green:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(0, 188, 140, 0.25);\n}\n\n.dark-mode .custom-control-input-green:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #3dffcd;\n}\n\n.dark-mode .custom-control-input-green:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #70ffda;\n  border-color: #70ffda;\n}\n\n.dark-mode .custom-control-input-teal:checked ~ .custom-control-label::before {\n  border-color: #20c997;\n  background-color: #20c997;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-teal:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.dark-mode .custom-control-input-teal:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #7eeaca;\n}\n\n.dark-mode .custom-control-input-teal:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #aaf1dc;\n  border-color: #aaf1dc;\n}\n\n.dark-mode .custom-control-input-cyan:checked ~ .custom-control-label::before {\n  border-color: #3498db;\n  background-color: #3498db;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-cyan:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\n}\n\n.dark-mode .custom-control-input-cyan:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #a0cfee;\n}\n\n.dark-mode .custom-control-input-cyan:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #cce5f6;\n  border-color: #cce5f6;\n}\n\n.dark-mode .custom-control-input-white:checked ~ .custom-control-label::before {\n  border-color: #fff;\n  background-color: #fff;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-white:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.dark-mode .custom-control-input-white:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-white:not(:disabled):active ~ .custom-control-label::before {\n  background-color: white;\n  border-color: white;\n}\n\n.dark-mode .custom-control-input-gray:checked ~ .custom-control-label::before {\n  border-color: #6c757d;\n  background-color: #6c757d;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.dark-mode .custom-control-input-gray:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #afb5ba;\n}\n\n.dark-mode .custom-control-input-gray:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #caced1;\n  border-color: #caced1;\n}\n\n.dark-mode .custom-control-input-gray-dark:checked ~ .custom-control-label::before {\n  border-color: #343a40;\n  background-color: #343a40;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"checkbox\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=\"radio\"] ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E\") !important;\n}\n\n.dark-mode .custom-control-input-gray-dark:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.dark-mode .custom-control-input-gray-dark:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #6d7a86;\n}\n\n.dark-mode .custom-control-input-gray-dark:not(:disabled):active ~ .custom-control-label::before {\n  background-color: #88939e;\n  border-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-group {\n  margin-bottom: 0.5rem;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.dark-mode .progress {\n  background: #454d55;\n}\n\n.card-primary:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-primary:not(.card-outline) > .card-header,\n.card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary > .card-header .btn-tool,\n.bg-gradient-primary > .card-header .btn-tool,\n.card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary > .card-header .btn-tool:hover,\n.bg-gradient-primary > .card-header .btn-tool:hover,\n.card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-secondary:not(.card-outline) > .card-header,\n.card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary > .card-header .btn-tool,\n.bg-gradient-secondary > .card-header .btn-tool,\n.card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary > .card-header .btn-tool:hover,\n.bg-gradient-secondary > .card-header .btn-tool:hover,\n.card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-success:not(.card-outline) > .card-header,\n.card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success > .card-header .btn-tool,\n.bg-gradient-success > .card-header .btn-tool,\n.card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success > .card-header .btn-tool:hover,\n.bg-gradient-success > .card-header .btn-tool:hover,\n.card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-info:not(.card-outline) > .card-header,\n.card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info > .card-header .btn-tool,\n.bg-gradient-info > .card-header .btn-tool,\n.card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info > .card-header .btn-tool:hover,\n.bg-gradient-info > .card-header .btn-tool:hover,\n.card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-warning:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-warning:not(.card-outline) > .card-header,\n.card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning > .card-header .btn-tool,\n.bg-gradient-warning > .card-header .btn-tool,\n.card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning > .card-header .btn-tool:hover,\n.bg-gradient-warning > .card-header .btn-tool:hover,\n.card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-danger:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-danger:not(.card-outline) > .card-header,\n.card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger > .card-header .btn-tool,\n.bg-gradient-danger > .card-header .btn-tool,\n.card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger > .card-header .btn-tool:hover,\n.bg-gradient-danger > .card-header .btn-tool:hover,\n.card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.card-light:not(.card-outline) > .card-header,\n.card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light > .card-header .btn-tool,\n.bg-gradient-light > .card-header .btn-tool,\n.card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light > .card-header .btn-tool:hover,\n.bg-gradient-light > .card-header .btn-tool:hover,\n.card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-dark:not(.card-outline) > .card-header,\n.card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark > .card-header .btn-tool,\n.bg-gradient-dark > .card-header .btn-tool,\n.card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark > .card-header .btn-tool:hover,\n.bg-gradient-dark > .card-header .btn-tool:hover,\n.card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header {\n  background-color: #3c8dbc;\n}\n\n.card-lightblue:not(.card-outline) > .card-header,\n.card-lightblue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lightblue.card-outline {\n  border-top: 3px solid #3c8dbc;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3c8dbc;\n}\n\n.bg-lightblue > .card-header .btn-tool,\n.bg-gradient-lightblue > .card-header .btn-tool,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-lightblue > .card-header .btn-tool:hover,\n.bg-gradient-lightblue > .card-header .btn-tool:hover,\n.card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #32769d;\n  color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5fa4cc;\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header {\n  background-color: #001f3f;\n}\n\n.card-navy:not(.card-outline) > .card-header,\n.card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy > .card-header .btn-tool,\n.bg-gradient-navy > .card-header .btn-tool,\n.card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy > .card-header .btn-tool:hover,\n.bg-gradient-navy > .card-header .btn-tool:hover,\n.card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #000b16;\n  color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #003872;\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header {\n  background-color: #3d9970;\n}\n\n.card-olive:not(.card-outline) > .card-header,\n.card-olive:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive > .card-header .btn-tool,\n.bg-gradient-olive > .card-header .btn-tool,\n.card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive > .card-header .btn-tool:hover,\n.bg-gradient-olive > .card-header .btn-tool:hover,\n.card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #317c5b;\n  color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #50b98a;\n  color: #fff;\n}\n\n.card-lime:not(.card-outline) > .card-header {\n  background-color: #01ff70;\n}\n\n.card-lime:not(.card-outline) > .card-header,\n.card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime > .card-header .btn-tool,\n.bg-gradient-lime > .card-header .btn-tool,\n.card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime > .card-header .btn-tool:hover,\n.bg-gradient-lime > .card-header .btn-tool:hover,\n.card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00d75e;\n  color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ff8d;\n  color: #1f2d3d;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f012be;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header,\n.card-fuchsia:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia > .card-header .btn-tool,\n.bg-gradient-fuchsia > .card-header .btn-tool,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia > .card-header .btn-tool:hover,\n.bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #cc0da1;\n  color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f342cb;\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header {\n  background-color: #d81b60;\n}\n\n.card-maroon:not(.card-outline) > .card-header,\n.card-maroon:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon > .card-header .btn-tool,\n.bg-gradient-maroon > .card-header .btn-tool,\n.card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon > .card-header .btn-tool:hover,\n.bg-gradient-maroon > .card-header .btn-tool:hover,\n.card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #b41650;\n  color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e73f7c;\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header {\n  background-color: #007bff;\n}\n\n.card-blue:not(.card-outline) > .card-header,\n.card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue > .card-header .btn-tool,\n.bg-gradient-blue > .card-header .btn-tool,\n.card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue > .card-header .btn-tool:hover,\n.bg-gradient-blue > .card-header .btn-tool:hover,\n.card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #0067d6;\n  color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3395ff;\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.card-indigo:not(.card-outline) > .card-header,\n.card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo > .card-header .btn-tool,\n.bg-gradient-indigo > .card-header .btn-tool,\n.card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo > .card-header .btn-tool:hover,\n.bg-gradient-indigo > .card-header .btn-tool:hover,\n.card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.card-purple:not(.card-outline) > .card-header,\n.card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple > .card-header .btn-tool,\n.bg-gradient-purple > .card-header .btn-tool,\n.card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple > .card-header .btn-tool:hover,\n.bg-gradient-purple > .card-header .btn-tool:hover,\n.card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.card-pink:not(.card-outline) > .card-header,\n.card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink > .card-header .btn-tool,\n.bg-gradient-pink > .card-header .btn-tool,\n.card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink > .card-header .btn-tool:hover,\n.bg-gradient-pink > .card-header .btn-tool:hover,\n.card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header {\n  background-color: #dc3545;\n}\n\n.card-red:not(.card-outline) > .card-header,\n.card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red > .card-header .btn-tool,\n.bg-gradient-red > .card-header .btn-tool,\n.card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red > .card-header .btn-tool:hover,\n.bg-gradient-red > .card-header .btn-tool:hover,\n.card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #c62232;\n  color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #e4606d;\n  color: #fff;\n}\n\n.card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.card-orange:not(.card-outline) > .card-header,\n.card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange > .card-header .btn-tool,\n.bg-gradient-orange > .card-header .btn-tool,\n.card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange > .card-header .btn-tool:hover,\n.bg-gradient-orange > .card-header .btn-tool:hover,\n.card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header {\n  background-color: #ffc107;\n}\n\n.card-yellow:not(.card-outline) > .card-header,\n.card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow > .card-header .btn-tool,\n.bg-gradient-yellow > .card-header .btn-tool,\n.card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow > .card-header .btn-tool:hover,\n.bg-gradient-yellow > .card-header .btn-tool:hover,\n.card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #dda600;\n  color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ffce3a;\n  color: #1f2d3d;\n}\n\n.card-green:not(.card-outline) > .card-header {\n  background-color: #28a745;\n}\n\n.card-green:not(.card-outline) > .card-header,\n.card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green > .card-header .btn-tool,\n.bg-gradient-green > .card-header .btn-tool,\n.card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green > .card-header .btn-tool:hover,\n.bg-gradient-green > .card-header .btn-tool:hover,\n.card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #208637;\n  color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #34ce57;\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.card-teal:not(.card-outline) > .card-header,\n.card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal > .card-header .btn-tool,\n.bg-gradient-teal > .card-header .btn-tool,\n.card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal > .card-header .btn-tool:hover,\n.bg-gradient-teal > .card-header .btn-tool:hover,\n.card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header {\n  background-color: #17a2b8;\n}\n\n.card-cyan:not(.card-outline) > .card-header,\n.card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan > .card-header .btn-tool,\n.bg-gradient-cyan > .card-header .btn-tool,\n.card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan > .card-header .btn-tool:hover,\n.bg-gradient-cyan > .card-header .btn-tool:hover,\n.card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #128294;\n  color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #1fc8e3;\n  color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.card-white:not(.card-outline) > .card-header,\n.card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.bg-white > .card-header .btn-tool,\n.bg-gradient-white > .card-header .btn-tool,\n.card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white > .card-header .btn-tool:hover,\n.bg-gradient-white > .card-header .btn-tool:hover,\n.card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.card-gray:not(.card-outline) > .card-header,\n.card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray > .card-header .btn-tool,\n.bg-gradient-gray > .card-header .btn-tool,\n.card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray > .card-header .btn-tool:hover,\n.bg-gradient-gray > .card-header .btn-tool:hover,\n.card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header,\n.card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark > .card-header .btn-tool,\n.bg-gradient-gray-dark > .card-header .btn-tool,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark > .card-header .btn-tool:hover,\n.bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  margin-bottom: 1rem;\n}\n\n.card.bg-dark .card-header {\n  border-color: #383f45;\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #fff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 1040;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card .card-body {\n  overflow: auto;\n}\n\n.card.maximized-card [data-card-widgett=\"collapse\"] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card.card-tabs:not(.card-outline) > .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link {\n  border-left-color: transparent;\n}\n\n.card.card-tabs.card-outline .nav-item {\n  border-bottom: 0;\n}\n\n.card.card-tabs.card-outline .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-tabs .card-tools {\n  margin: .3rem .5rem;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.card.card-outline-tabs {\n  border-top: 0;\n}\n\n.card.card-outline-tabs .card-header .nav-item:first-child .nav-link {\n  border-left: 0;\n  margin-left: 0;\n}\n\n.card.card-outline-tabs .card-header a {\n  border-top: 3px solid transparent;\n}\n\n.card.card-outline-tabs .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.card.card-outline-tabs .card-header a.active:hover {\n  margin-top: 0;\n}\n\n.card.card-outline-tabs .card-tools {\n  margin: .5rem .5rem .3rem;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs {\n  border-bottom: 0;\n}\n\n.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item {\n  margin-bottom: 0;\n}\n\n.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 0.75rem 1.25rem;\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  float: right;\n  margin-right: -0.625rem;\n}\n\n.card-header > .card-tools .input-group,\n.card-header > .card-tools .nav,\n.card-header > .card-tools .pagination {\n  margin-bottom: -0.3rem;\n  margin-top: -0.3rem;\n}\n\n.card-header > .card-tools [data-toggle=\"tooltip\"] {\n  position: relative;\n}\n\n.card-title {\n  float: left;\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.card-text {\n  clear: both;\n}\n\n.btn-tool {\n  background-color: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  margin: -0.75rem 0;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.text-sm .card-title {\n  font-size: 1rem;\n}\n\n.text-sm .nav-link {\n  padding: 0.4rem 0.8rem;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  padding-left: 0;\n  list-style: none;\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background-color: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  height: 1.875rem;\n  width: 1.875rem;\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background-color: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type=\"checkbox\"] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .fal,\n.todo-list > li .tools > .fad,\n.todo-list > li .tools > .svg-inline--fa,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background-color: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .lightblue {\n  border-left-color: #3c8dbc;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #fff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-default .nav-item:first-child .nav-link {\n  border-left: 0;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header,\n.dark-mode .card-primary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-primary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-primary.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-primary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-primary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-primary > .card-header .btn-tool:hover,\n.dark-mode .card-primary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header,\n.dark-mode .card-secondary:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-secondary:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-secondary.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-secondary > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-secondary > .card-header .btn-tool:hover,\n.dark-mode .card-secondary:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header,\n.dark-mode .card-success:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-success:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-success.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-success.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-success > .card-header .btn-tool,\n.dark-mode .bg-gradient-success > .card-header .btn-tool,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-success > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-success > .card-header .btn-tool:hover,\n.dark-mode .card-success:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header,\n.dark-mode .card-info:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-info:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-info.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-info.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-info > .card-header .btn-tool,\n.dark-mode .bg-gradient-info > .card-header .btn-tool,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-info > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-info > .card-header .btn-tool:hover,\n.dark-mode .card-info:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header,\n.dark-mode .card-warning:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-warning.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-warning.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-warning > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-warning > .card-header .btn-tool:hover,\n.dark-mode .card-warning:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header,\n.dark-mode .card-danger:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-danger:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-danger.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-danger.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-danger > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-danger > .card-header .btn-tool:hover,\n.dark-mode .card-danger:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header,\n.dark-mode .card-light:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-light.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f8f9fa;\n}\n\n.dark-mode .bg-light > .card-header .btn-tool,\n.dark-mode .bg-gradient-light > .card-header .btn-tool,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-light > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-light > .card-header .btn-tool:hover,\n.dark-mode .card-light:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e0e5e9;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header,\n.dark-mode .card-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-dark > .card-header .btn-tool:hover,\n.dark-mode .card-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header {\n  background-color: #86bad8;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lightblue.card-outline {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lightblue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #86bad8;\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lightblue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lightblue > .card-header .btn-tool:hover,\n.dark-mode .card-lightblue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #67a8ce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #acd0e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header {\n  background-color: #002c59;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header,\n.dark-mode .card-navy:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-navy:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-navy.card-outline {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-navy.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #002c59;\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-navy > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-navy > .card-header .btn-tool:hover,\n.dark-mode .card-navy:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00458c;\n  color: #fff;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header {\n  background-color: #74c8a3;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header,\n.dark-mode .card-olive:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-olive.card-outline {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-olive.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #74c8a3;\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-olive > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-olive > .card-header .btn-tool:hover,\n.dark-mode .card-olive:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #57bc8f;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #99d6bb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header {\n  background-color: #67ffa9;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header,\n.dark-mode .card-lime:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-lime.card-outline {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-lime.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #67ffa9;\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-lime > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-lime > .card-header .btn-tool:hover,\n.dark-mode .card-lime:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #3eff92;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #9affc6;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header {\n  background-color: #f672d8;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-fuchsia.card-outline {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-fuchsia.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f672d8;\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-fuchsia > .card-header .btn-tool:hover,\n.dark-mode .card-fuchsia:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #f44cce;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f9a2e5;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header {\n  background-color: #ed6c9b;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header,\n.dark-mode .card-maroon:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-maroon.card-outline {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-maroon.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #ed6c9b;\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-maroon > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-maroon > .card-header .btn-tool:hover,\n.dark-mode .card-maroon:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e84883;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f29aba;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header {\n  background-color: #3f6791;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header,\n.dark-mode .card-blue:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-blue:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-blue.card-outline {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-blue.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3f6791;\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-blue > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-blue > .card-header .btn-tool:hover,\n.dark-mode .card-blue:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #335375;\n  color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5080b3;\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header {\n  background-color: #6610f2;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header,\n.dark-mode .card-indigo:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-indigo:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-indigo.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6610f2;\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-indigo > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-indigo > .card-header .btn-tool:hover,\n.dark-mode .card-indigo:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #550bce;\n  color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8540f5;\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header {\n  background-color: #6f42c1;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header,\n.dark-mode .card-purple:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-purple:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-purple.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6f42c1;\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-purple > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-purple > .card-header .btn-tool:hover,\n.dark-mode .card-purple:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #5d36a4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #8c68ce;\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header {\n  background-color: #e83e8c;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header,\n.dark-mode .card-pink:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-pink:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-pink.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e83e8c;\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-pink > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-pink > .card-header .btn-tool:hover,\n.dark-mode .card-pink:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e21b76;\n  color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed6ca7;\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header {\n  background-color: #e74c3c;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header,\n.dark-mode .card-red:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-red:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-red.card-outline {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-red.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #e74c3c;\n}\n\n.dark-mode .bg-red > .card-header .btn-tool,\n.dark-mode .bg-gradient-red > .card-header .btn-tool,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-red > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-red > .card-header .btn-tool:hover,\n.dark-mode .card-red:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #df2e1b;\n  color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #ed7669;\n  color: #fff;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header {\n  background-color: #fd7e14;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header,\n.dark-mode .card-orange:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-orange.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fd7e14;\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-orange > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-orange > .card-header .btn-tool:hover,\n.dark-mode .card-orange:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #e66a02;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #fd9a47;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header {\n  background-color: #f39c12;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header,\n.dark-mode .card-yellow:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-yellow.card-outline {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-yellow.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #f39c12;\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-yellow > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-yellow > .card-header .btn-tool:hover,\n.dark-mode .card-yellow:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #d2850b;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #f5b043;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header {\n  background-color: #00bc8c;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header,\n.dark-mode .card-green:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-green:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-green.card-outline {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-green.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #00bc8c;\n}\n\n.dark-mode .bg-green > .card-header .btn-tool,\n.dark-mode .bg-gradient-green > .card-header .btn-tool,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-green > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-green > .card-header .btn-tool:hover,\n.dark-mode .card-green:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #00936e;\n  color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #00efb2;\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header {\n  background-color: #20c997;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header,\n.dark-mode .card-teal:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-teal:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-teal.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #20c997;\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-teal > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-teal > .card-header .btn-tool:hover,\n.dark-mode .card-teal:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #1aa67d;\n  color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #3ce0af;\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header {\n  background-color: #3498db;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header,\n.dark-mode .card-cyan:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-cyan:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-cyan.card-outline {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-cyan.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #3498db;\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-cyan > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-cyan > .card-header .btn-tool:hover,\n.dark-mode .card-cyan:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #2383c4;\n  color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #5faee3;\n  color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header {\n  background-color: #fff;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header,\n.dark-mode .card-white:not(.card-outline) > .card-header a {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-white.card-outline {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-white.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #fff;\n}\n\n.dark-mode .bg-white > .card-header .btn-tool,\n.dark-mode .bg-gradient-white > .card-header .btn-tool,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.dark-mode .bg-white > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-white > .card-header .btn-tool:hover,\n.dark-mode .card-white:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #ebebeb;\n  color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #1f2d3d;\n}\n\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: white;\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header {\n  background-color: #6c757d;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header,\n.dark-mode .card-gray:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #6c757d;\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray > .card-header .btn-tool:hover,\n.dark-mode .card-gray:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #596167;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #868e96;\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header {\n  background-color: #343a40;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a {\n  color: #fff;\n}\n\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header a.active {\n  color: #1f2d3d;\n}\n\n.dark-mode .card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a:hover {\n  border-top: 3px solid #dee2e6;\n}\n\n.dark-mode .card-gray-dark.card-outline-tabs > .card-header a.active {\n  border-top: 3px solid #343a40;\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .bg-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .bg-gradient-gray-dark > .card-header .btn-tool:hover,\n.dark-mode .card-gray-dark:not(.card-outline) > .card-header .btn-tool:hover {\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover {\n  background-color: #222629;\n  color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before {\n  border-bottom-color: #fff;\n}\n\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover {\n  background-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .card {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .card .card {\n  background-color: #3f474e;\n  color: #fff;\n}\n\n.dark-mode .card .nav.flex-column > li {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .card .card-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n.dark-mode .card.card-outline-tabs .card-header a:hover {\n  border-color: #6c757d;\n  border-bottom-color: transparent;\n}\n\n.dark-mode .card:not(.card-outline) > .card-header a.active {\n  color: #fff;\n}\n\n.dark-mode .card-comments {\n  background-color: #373d44;\n}\n\n.dark-mode .card-comments .username {\n  color: #ced4da;\n}\n\n.dark-mode .card-comments .card-comment {\n  border-bottom-color: #454d55;\n}\n\n.dark-mode .todo-list > li {\n  background-color: #3f474e;\n  border-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .todo-list .primary {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .success {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .info {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .warning {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .danger {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.dark-mode .todo-list .lightblue {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .todo-list .navy {\n  border-left-color: #002c59;\n}\n\n.dark-mode .todo-list .olive {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .todo-list .lime {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .todo-list .fuchsia {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .todo-list .maroon {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .todo-list .blue {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .todo-list .red {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .todo-list .yellow {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .todo-list .green {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.dark-mode .todo-list .cyan {\n  border-left-color: #3498db;\n}\n\n.dark-mode .todo-list .white {\n  border-left-color: #fff;\n}\n\n.dark-mode .todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.modal-dialog .overlay {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  margin: -1px;\n  z-index: 1052;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(0, 0, 0, 0.7);\n  color: #666f76;\n  border-radius: 0.3rem;\n}\n\n.modal-content.bg-warning .modal-header,\n.modal-content.bg-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.bg-secondary .close, .modal-content.bg-info .close, .modal-content.bg-danger .close, .modal-content.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .modal-header,\n.dark-mode .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content {\n  background-color: #343a40;\n}\n\n.dark-mode .modal-content.bg-warning .modal-header,\n.dark-mode .modal-content.bg-warning .modal-footer {\n  border-color: #6c757d;\n}\n\n.dark-mode .modal-content.bg-warning .close {\n  color: #343a40 !important;\n  text-shadow: 0 1px 0 #495057 !important;\n}\n\n.dark-mode .modal-content.bg-primary .modal-header,\n.dark-mode .modal-content.bg-primary .modal-footer, .dark-mode .modal-content.bg-secondary .modal-header,\n.dark-mode .modal-content.bg-secondary .modal-footer, .dark-mode .modal-content.bg-info .modal-header,\n.dark-mode .modal-content.bg-info .modal-footer, .dark-mode .modal-content.bg-danger .modal-header,\n.dark-mode .modal-content.bg-danger .modal-footer, .dark-mode .modal-content.bg-success .modal-header,\n.dark-mode .modal-content.bg-success .modal-footer {\n  border-color: #fff;\n}\n\n.toasts-top-right {\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-right.fixed {\n  position: fixed;\n}\n\n.toasts-top-left {\n  left: 0;\n  position: absolute;\n  top: 0;\n  z-index: 1040;\n}\n\n.toasts-top-left.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-right {\n  bottom: 0;\n  position: absolute;\n  right: 0;\n  z-index: 1040;\n}\n\n.toasts-bottom-right.fixed {\n  position: fixed;\n}\n\n.toasts-bottom-left {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n  z-index: 1040;\n}\n\n.toasts-bottom-left.fixed {\n  position: fixed;\n}\n\n.dark-mode .toast {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast .toast-header {\n  background-color: rgba(52, 58, 64, 0.7);\n  color: #f8f9fa;\n}\n\n.dark-mode .toast.bg-primary {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-primary .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-success {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-success .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-info {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-info .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-warning {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-warning .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-danger {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-danger .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.dark-mode .toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-lightblue {\n  background-color: rgba(134, 186, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lightblue .toast-header {\n  background-color: rgba(134, 186, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-navy {\n  background-color: rgba(0, 44, 89, 0.9) !important;\n}\n\n.dark-mode .toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-navy .toast-header {\n  background-color: rgba(0, 44, 89, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-olive {\n  background-color: rgba(116, 200, 163, 0.9) !important;\n}\n\n.dark-mode .toast.bg-olive .toast-header {\n  background-color: rgba(116, 200, 163, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-lime {\n  background-color: rgba(103, 255, 169, 0.9) !important;\n}\n\n.dark-mode .toast.bg-lime .toast-header {\n  background-color: rgba(103, 255, 169, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-fuchsia {\n  background-color: rgba(246, 114, 216, 0.9) !important;\n}\n\n.dark-mode .toast.bg-fuchsia .toast-header {\n  background-color: rgba(246, 114, 216, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-maroon {\n  background-color: rgba(237, 108, 155, 0.9) !important;\n}\n\n.dark-mode .toast.bg-maroon .toast-header {\n  background-color: rgba(237, 108, 155, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-blue {\n  background-color: rgba(63, 103, 145, 0.9) !important;\n}\n\n.dark-mode .toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-blue .toast-header {\n  background-color: rgba(63, 103, 145, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.dark-mode .toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.dark-mode .toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-red {\n  background-color: rgba(231, 76, 60, 0.9) !important;\n}\n\n.dark-mode .toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-red .toast-header {\n  background-color: rgba(231, 76, 60, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.dark-mode .toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-yellow {\n  background-color: rgba(243, 156, 18, 0.9) !important;\n}\n\n.dark-mode .toast.bg-yellow .toast-header {\n  background-color: rgba(243, 156, 18, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-green {\n  background-color: rgba(0, 188, 140, 0.9) !important;\n}\n\n.dark-mode .toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-green .toast-header {\n  background-color: rgba(0, 188, 140, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.dark-mode .toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-cyan {\n  background-color: rgba(52, 152, 219, 0.9) !important;\n}\n\n.dark-mode .toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-cyan .toast-header {\n  background-color: rgba(52, 152, 219, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.dark-mode .toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.dark-mode .toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.dark-mode .toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.dark-mode .toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.dark-mode .toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-primary {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-primary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-primary .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-secondary {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-secondary .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-secondary .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-success {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-success .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-success .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-info {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-info .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-info .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-warning {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-warning .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-danger {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-danger .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-danger .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-light {\n  background-color: rgba(248, 249, 250, 0.9) !important;\n}\n\n.toast.bg-light .toast-header {\n  background-color: rgba(248, 249, 250, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lightblue {\n  background-color: rgba(60, 141, 188, 0.9) !important;\n}\n\n.toast.bg-lightblue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-lightblue .toast-header {\n  background-color: rgba(60, 141, 188, 0.85);\n  color: #fff;\n}\n\n.toast.bg-navy {\n  background-color: rgba(0, 31, 63, 0.9) !important;\n}\n\n.toast.bg-navy .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-navy .toast-header {\n  background-color: rgba(0, 31, 63, 0.85);\n  color: #fff;\n}\n\n.toast.bg-olive {\n  background-color: rgba(61, 153, 112, 0.9) !important;\n}\n\n.toast.bg-olive .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-olive .toast-header {\n  background-color: rgba(61, 153, 112, 0.85);\n  color: #fff;\n}\n\n.toast.bg-lime {\n  background-color: rgba(1, 255, 112, 0.9) !important;\n}\n\n.toast.bg-lime .toast-header {\n  background-color: rgba(1, 255, 112, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-fuchsia {\n  background-color: rgba(240, 18, 190, 0.9) !important;\n}\n\n.toast.bg-fuchsia .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-fuchsia .toast-header {\n  background-color: rgba(240, 18, 190, 0.85);\n  color: #fff;\n}\n\n.toast.bg-maroon {\n  background-color: rgba(216, 27, 96, 0.9) !important;\n}\n\n.toast.bg-maroon .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-maroon .toast-header {\n  background-color: rgba(216, 27, 96, 0.85);\n  color: #fff;\n}\n\n.toast.bg-blue {\n  background-color: rgba(0, 123, 255, 0.9) !important;\n}\n\n.toast.bg-blue .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-blue .toast-header {\n  background-color: rgba(0, 123, 255, 0.85);\n  color: #fff;\n}\n\n.toast.bg-indigo {\n  background-color: rgba(102, 16, 242, 0.9) !important;\n}\n\n.toast.bg-indigo .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-indigo .toast-header {\n  background-color: rgba(102, 16, 242, 0.85);\n  color: #fff;\n}\n\n.toast.bg-purple {\n  background-color: rgba(111, 66, 193, 0.9) !important;\n}\n\n.toast.bg-purple .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-purple .toast-header {\n  background-color: rgba(111, 66, 193, 0.85);\n  color: #fff;\n}\n\n.toast.bg-pink {\n  background-color: rgba(232, 62, 140, 0.9) !important;\n}\n\n.toast.bg-pink .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-pink .toast-header {\n  background-color: rgba(232, 62, 140, 0.85);\n  color: #fff;\n}\n\n.toast.bg-red {\n  background-color: rgba(220, 53, 69, 0.9) !important;\n}\n\n.toast.bg-red .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-red .toast-header {\n  background-color: rgba(220, 53, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-orange {\n  background-color: rgba(253, 126, 20, 0.9) !important;\n}\n\n.toast.bg-orange .toast-header {\n  background-color: rgba(253, 126, 20, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-yellow {\n  background-color: rgba(255, 193, 7, 0.9) !important;\n}\n\n.toast.bg-yellow .toast-header {\n  background-color: rgba(255, 193, 7, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-green {\n  background-color: rgba(40, 167, 69, 0.9) !important;\n}\n\n.toast.bg-green .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-green .toast-header {\n  background-color: rgba(40, 167, 69, 0.85);\n  color: #fff;\n}\n\n.toast.bg-teal {\n  background-color: rgba(32, 201, 151, 0.9) !important;\n}\n\n.toast.bg-teal .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-teal .toast-header {\n  background-color: rgba(32, 201, 151, 0.85);\n  color: #fff;\n}\n\n.toast.bg-cyan {\n  background-color: rgba(23, 162, 184, 0.9) !important;\n}\n\n.toast.bg-cyan .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-cyan .toast-header {\n  background-color: rgba(23, 162, 184, 0.85);\n  color: #fff;\n}\n\n.toast.bg-white {\n  background-color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.toast.bg-white .toast-header {\n  background-color: rgba(255, 255, 255, 0.85);\n  color: #1f2d3d;\n}\n\n.toast.bg-gray {\n  background-color: rgba(108, 117, 125, 0.9) !important;\n}\n\n.toast.bg-gray .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray .toast-header {\n  background-color: rgba(108, 117, 125, 0.85);\n  color: #fff;\n}\n\n.toast.bg-gray-dark {\n  background-color: rgba(52, 58, 64, 0.9) !important;\n}\n\n.toast.bg-gray-dark .close {\n  color: #fff;\n  text-shadow: 0 1px 0 #000;\n}\n\n.toast.bg-gray-dark .toast-header {\n  background-color: rgba(52, 58, 64, 0.85);\n  color: #fff;\n}\n\n.btn.disabled, .btn:disabled {\n  cursor: not-allowed;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type=\"file\"] {\n  background-color: #fff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.text-sm .btn {\n  font-size: 0.875rem !important;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .fal,\n.btn-app > .fad,\n.btn-app > .svg-inline--fa,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app > .svg-inline--fa {\n  margin: 0 auto;\n}\n\n.btn-app:hover {\n  background-color: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.btn-xs {\n  padding: 0.125rem 0.25rem;\n  font-size: 0.75rem;\n  line-height: 1.5;\n  border-radius: 0.15rem;\n}\n\n.dark-mode .btn-default,\n.dark-mode .btn-app {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-default:hover, .dark-mode .btn-default:focus,\n.dark-mode .btn-app:hover,\n.dark-mode .btn-app:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n  border-color: #727b84;\n}\n\n.dark-mode .btn-light {\n  background-color: #454d55;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-light:hover, .dark-mode .btn-light:focus {\n  background-color: #4b545c;\n  color: #dee2e6;\n  border-color: #78828a;\n}\n\n.dark-mode .btn-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n  box-shadow: none;\n}\n\n.dark-mode .btn-primary:hover {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n}\n\n.dark-mode .btn-primary:focus, .dark-mode .btn-primary.focus {\n  color: #fff;\n  background-color: #335476;\n  border-color: #304e6d;\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-primary.disabled, .dark-mode .btn-primary:disabled {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #304e6d;\n  border-color: #2c4765;\n}\n\n.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(92, 126, 162, 0.5);\n}\n\n.dark-mode .btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.dark-mode .btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.dark-mode .btn-secondary:focus, .dark-mode .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-secondary.disabled, .dark-mode .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.dark-mode .btn-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-success:hover {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n}\n\n.dark-mode .btn-success:focus, .dark-mode .btn-success.focus {\n  color: #fff;\n  background-color: #009670;\n  border-color: #008966;\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-success.disabled, .dark-mode .btn-success:disabled {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active, .dark-mode .btn-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #008966;\n  border-color: #007c5d;\n}\n\n.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 198, 157, 0.5);\n}\n\n.dark-mode .btn-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n  box-shadow: none;\n}\n\n.dark-mode .btn-info:hover {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n}\n\n.dark-mode .btn-info:focus, .dark-mode .btn-info.focus {\n  color: #fff;\n  background-color: #2384c6;\n  border-color: #217dbb;\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-info.disabled, .dark-mode .btn-info:disabled {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active, .dark-mode .btn-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #217dbb;\n  border-color: #1f76b0;\n}\n\n.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 167, 224, 0.5);\n}\n\n.dark-mode .btn-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n  box-shadow: none;\n}\n\n.dark-mode .btn-warning:hover {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n}\n\n.dark-mode .btn-warning:focus, .dark-mode .btn-warning.focus {\n  color: #fff;\n  background-color: #d4860b;\n  border-color: #c87f0a;\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-warning.disabled, .dark-mode .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-warning.dropdown-toggle {\n  color: #fff;\n  background-color: #c87f0a;\n  border-color: #bc770a;\n}\n\n.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(211, 139, 24, 0.5);\n}\n\n.dark-mode .btn-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  box-shadow: none;\n}\n\n.dark-mode .btn-danger:hover {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n}\n\n.dark-mode .btn-danger:focus, .dark-mode .btn-danger.focus {\n  color: #fff;\n  background-color: #e12e1c;\n  border-color: #d62c1a;\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-danger.disabled, .dark-mode .btn-danger:disabled {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #d62c1a;\n  border-color: #ca2a19;\n}\n\n.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(235, 103, 89, 0.5);\n}\n\n.dark-mode .btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.dark-mode .btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.dark-mode .btn-light:focus, .dark-mode .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-light.disabled, .dark-mode .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active, .dark-mode .btn-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.dark-mode .btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.dark-mode .btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.dark-mode .btn-dark:focus, .dark-mode .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-dark.disabled, .dark-mode .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.dark-mode .btn-outline-primary {\n  color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:hover {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:focus, .dark-mode .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-primary.disabled, .dark-mode .btn-outline-primary:disabled {\n  color: #3f6791;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(63, 103, 145, 0.5);\n}\n\n.dark-mode .btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:focus, .dark-mode .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-secondary.disabled, .dark-mode .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.dark-mode .btn-outline-success {\n  color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:hover {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:focus, .dark-mode .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-success.disabled, .dark-mode .btn-outline-success:disabled {\n  color: #00bc8c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 188, 140, 0.5);\n}\n\n.dark-mode .btn-outline-info {\n  color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:hover {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:focus, .dark-mode .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-info.disabled, .dark-mode .btn-outline-info:disabled {\n  color: #3498db;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 152, 219, 0.5);\n}\n\n.dark-mode .btn-outline-warning {\n  color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:focus, .dark-mode .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-warning.disabled, .dark-mode .btn-outline-warning:disabled {\n  color: #f39c12;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.5);\n}\n\n.dark-mode .btn-outline-danger {\n  color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:hover {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:focus, .dark-mode .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-danger.disabled, .dark-mode .btn-outline-danger:disabled {\n  color: #e74c3c;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.5);\n}\n\n.dark-mode .btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:focus, .dark-mode .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-light.disabled, .dark-mode .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.dark-mode .btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:focus, .dark-mode .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.dark-mode .btn-outline-dark.disabled, .dark-mode .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .dark-mode .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.callout {\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n  background-color: #fff;\n  border-left: 5px solid #e9ecef;\n  margin-bottom: 1rem;\n  padding: 1rem;\n}\n\n.callout a {\n  color: #495057;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.dark-mode .callout {\n  background-color: #3f474e;\n}\n\n.dark-mode .callout.callout-danger {\n  border-left-color: #ed7669;\n}\n\n.dark-mode .callout.callout-warning {\n  border-left-color: #f5b043;\n}\n\n.dark-mode .callout.callout-info {\n  border-left-color: #5faee3;\n}\n\n.dark-mode .callout.callout-success {\n  border-left-color: #00efb2;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #fff;\n  text-decoration: underline;\n}\n\n.alert-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #006fe6;\n}\n\n.alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #23923d;\n}\n\n.alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #148ea1;\n}\n\n.alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #edb100;\n}\n\n.alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #d32535;\n}\n\n.alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-default-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.dark-mode .alert-primary {\n  color: #fff;\n  background-color: #3f6791;\n  border-color: #375a7f;\n}\n\n.dark-mode .alert-default-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.dark-mode .alert-default-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.dark-mode .alert-default-primary .alert-link {\n  color: #002752;\n}\n\n.dark-mode .alert-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #60686f;\n}\n\n.dark-mode .alert-default-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.dark-mode .alert-default-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.dark-mode .alert-default-secondary .alert-link {\n  color: #202326;\n}\n\n.dark-mode .alert-success {\n  color: #fff;\n  background-color: #00bc8c;\n  border-color: #00a379;\n}\n\n.dark-mode .alert-default-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.dark-mode .alert-default-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.dark-mode .alert-default-success .alert-link {\n  color: #0b2e13;\n}\n\n.dark-mode .alert-info {\n  color: #fff;\n  background-color: #3498db;\n  border-color: #258cd1;\n}\n\n.dark-mode .alert-default-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.dark-mode .alert-default-info hr {\n  border-top-color: #abdde5;\n}\n\n.dark-mode .alert-default-info .alert-link {\n  color: #062c33;\n}\n\n.dark-mode .alert-warning {\n  color: #1f2d3d;\n  background-color: #f39c12;\n  border-color: #e08e0b;\n}\n\n.dark-mode .alert-default-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.dark-mode .alert-default-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.dark-mode .alert-default-warning .alert-link {\n  color: #533f03;\n}\n\n.dark-mode .alert-danger {\n  color: #fff;\n  background-color: #e74c3c;\n  border-color: #e43725;\n}\n\n.dark-mode .alert-default-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.dark-mode .alert-default-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.dark-mode .alert-default-danger .alert-link {\n  color: #491217;\n}\n\n.dark-mode .alert-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n}\n\n.dark-mode .alert-default-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.dark-mode .alert-default-light hr {\n  border-top-color: #ececf6;\n}\n\n.dark-mode .alert-default-light .alert-link {\n  color: #686868;\n}\n\n.dark-mode .alert-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #292d32;\n}\n\n.dark-mode .alert-default-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.dark-mode .alert-default-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.dark-mode .alert-default-dark .alert-link {\n  color: #040505;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #fff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #383f45, inset 0 -1px 0 #383f45;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table.table-valign-middle thead > tr > th,\n.table.table-valign-middle thead > tr > td,\n.table.table-valign-middle tbody > tr > th,\n.table.table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tfoot > tr > th:first-of-type,\n.card-body.p-0 .table tfoot > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type {\n  padding-left: 1.5rem;\n}\n\n.card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tfoot > tr > th:last-of-type,\n.card-body.p-0 .table tfoot > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type {\n  padding-right: 1.5rem;\n}\n\n.table-hover tbody tr.expandable-body:hover {\n  background-color: inherit !important;\n}\n\n[data-widget=\"expandable-table\"] {\n  cursor: pointer;\n}\n\n[data-widget=\"expandable-table\"] i.expandable-table-caret {\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"right\"] {\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n[data-widget=\"expandable-table\"][aria-expanded=\"true\"] td i.expandable-table-caret[class*=\"left\"] {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.expandable-body > td {\n  padding: 0 !important;\n  width: 100%;\n}\n\n.expandable-body > td > div,\n.expandable-body > td > p {\n  padding: 0.75rem;\n}\n\n.expandable-body .table {\n  width: calc(100% - 0.75rem);\n  margin: 0 0 0 0.75rem;\n}\n\n.expandable-body .table tr:first-child td,\n.expandable-body .table tr:first-child th {\n  border-top: none;\n}\n\n.dark-mode .table-bordered,\n.dark-mode .table-bordered td,\n.dark-mode .table-bordered th {\n  border-color: #6c757d;\n}\n\n.dark-mode .table-hover tbody tr:hover {\n  color: #dee2e6;\n  background-color: #3a4047;\n  border-color: #6c757d;\n}\n\n.dark-mode .table thead th {\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .table th,\n.dark-mode .table td {\n  border-top-color: #6c757d;\n}\n\n.dark-mode .table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #3f474e;\n}\n\n.carousel-control-prev .carousel-control-custom-icon {\n  margin-left: -20px;\n}\n\n.carousel-control-next .carousel-control-custom-icon {\n  margin-right: 20px;\n}\n\n.carousel-control-custom-icon > .fa,\n.carousel-control-custom-icon > .fas,\n.carousel-control-custom-icon > .far,\n.carousel-control-custom-icon > .fab,\n.carousel-control-custom-icon > .fal,\n.carousel-control-custom-icon > .fad,\n.carousel-control-custom-icon > .svg-inline--fa,\n.carousel-control-custom-icon > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\n.close:focus {\n  outline: none;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n/*# sourceMappingURL=adminlte.components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/alt/adminlte.core.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Core\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n  text-align: -webkit-match-parent;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-wrap: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  -webkit-flex: 0 0 20%;\n  -ms-flex: 0 0 20%;\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-auto {\n  -webkit-flex: 0 0 auto;\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -webkit-flex: 0 0 8.333333%;\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -webkit-flex: 0 0 16.666667%;\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -webkit-flex: 0 0 25%;\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -webkit-flex: 0 0 33.333333%;\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -webkit-flex: 0 0 41.666667%;\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -webkit-flex: 0 0 50%;\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -webkit-flex: 0 0 58.333333%;\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -webkit-flex: 0 0 66.666667%;\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -webkit-flex: 0 0 75%;\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -webkit-flex: 0 0 83.333333%;\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -webkit-flex: 0 0 91.666667%;\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -webkit-flex: 0 0 100%;\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -webkit-order: -1;\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -webkit-order: 13;\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -webkit-order: 0;\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -webkit-order: 1;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -webkit-order: 2;\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -webkit-order: 3;\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -webkit-order: 4;\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -webkit-order: 5;\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -webkit-order: 6;\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -webkit-order: 7;\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -webkit-order: 8;\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -webkit-order: 9;\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -webkit-order: 10;\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -webkit-order: 11;\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -webkit-order: 12;\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-sm-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-md-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-lg-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -webkit-flex-basis: 0;\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -webkit-flex-grow: 1;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .row-cols-xl-4 > * {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    -webkit-flex: 0 0 20%;\n    -ms-flex: 0 0 20%;\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-auto {\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -webkit-flex: 0 0 8.333333%;\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -webkit-flex: 0 0 16.666667%;\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -webkit-flex: 0 0 25%;\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -webkit-flex: 0 0 33.333333%;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -webkit-flex: 0 0 41.666667%;\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -webkit-flex: 0 0 50%;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -webkit-flex: 0 0 58.333333%;\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -webkit-flex: 0 0 66.666667%;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -webkit-flex: 0 0 75%;\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -webkit-flex: 0 0 83.333333%;\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -webkit-flex: 0 0 91.666667%;\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -webkit-flex: 0 0 100%;\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -webkit-order: -1;\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -webkit-order: 13;\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -webkit-order: 3;\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -webkit-order: 4;\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -webkit-order: 5;\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -webkit-order: 6;\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -webkit-order: 7;\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -webkit-order: 8;\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -webkit-order: 9;\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -webkit-order: 10;\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -webkit-order: 11;\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -webkit-order: 12;\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #212529;\n  border-color: #383f45;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #383f45;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #939ba2;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.375rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n  left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n  left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.1875rem) center;\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.3125rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-flow: row wrap;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex: 0 0 auto;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -webkit-flex-shrink: 0;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -webkit-align-items: center;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-justify-content: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #1f2d3d;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #1f2d3d;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  min-width: 0;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n  -webkit-print-color-adjust: exact;\n  color-adjust: exact;\n}\n\n.custom-control-inline {\n  display: -webkit-inline-flex;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") right 0.75rem center/8px 10px no-repeat;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: none;\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  overflow: hidden;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: none;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    -webkit-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    -moz-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    -ms-transition: none;\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n  margin-bottom: -1px;\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n  -webkit-flex-basis: 0;\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -webkit-flex-basis: 100%;\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -webkit-flex-grow: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: 75vh;\n  overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -webkit-flex-flow: row nowrap;\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -webkit-justify-content: flex-start;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n    -webkit-flex-wrap: nowrap;\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-nav-scroll {\n    overflow: visible;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-flex-basis: auto;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -webkit-flex-flow: row nowrap;\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -webkit-justify-content: flex-start;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n  overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -webkit-flex-basis: auto;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n  border-top-width: 0;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card > .list-group:last-child {\n  border-bottom-width: 0;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n  border-top: 0;\n}\n\n.card-body {\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n  width: 100%;\n}\n\n.card-img,\n.card-img-top {\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img,\n.card-img-bottom {\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -webkit-flex: 1 0 0%;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion {\n  overflow-anchor: none;\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  float: left;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1f2d3d;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1f2d3d;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1f2d3d;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1f2d3d;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  overflow: hidden;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: 1s linear infinite progress-bar-stripes;\n  animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -webkit-flex-direction: row;\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n\n.toast {\n  -webkit-flex-basis: 350px;\n  -ms-flex-preferred-size: 350px;\n  flex-basis: 350px;\n  max-width: 350px;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  -webkit-transform: scale(1.02);\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -webkit-flex-shrink: 0;\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: -webkit-min-content;\n  height: -moz-min-content;\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -webkit-flex: 1 1 auto;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: flex-end;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 0.75rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: -webkit-min-content;\n    height: -moz-min-content;\n    height: min-content;\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc(-0.5rem - 1px);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -webkit-flex: 0 1 auto;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: .75s linear infinite spinner-border;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: .75s linear infinite spinner-grow;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .spinner-border,\n  .spinner-grow {\n    -webkit-animation-duration: 1.5s;\n    animation-duration: 1.5s;\n  }\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -webkit-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -webkit-inline-flex !important;\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -webkit-flex !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -webkit-inline-flex !important;\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -webkit-flex-direction: row !important;\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -webkit-flex-direction: column !important;\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -webkit-flex-direction: row-reverse !important;\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -webkit-flex-direction: column-reverse !important;\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -webkit-flex-wrap: wrap !important;\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -webkit-flex-wrap: nowrap !important;\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -webkit-flex-wrap: wrap-reverse !important;\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -webkit-flex: 1 1 auto !important;\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -webkit-flex-grow: 0 !important;\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -webkit-flex-grow: 1 !important;\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -webkit-flex-shrink: 0 !important;\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -webkit-flex-shrink: 1 !important;\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -webkit-justify-content: flex-start !important;\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -webkit-justify-content: flex-end !important;\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -webkit-justify-content: center !important;\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -webkit-justify-content: space-between !important;\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -webkit-justify-content: space-around !important;\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -webkit-align-items: flex-start !important;\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -webkit-align-items: flex-end !important;\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -webkit-align-items: center !important;\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -webkit-align-items: baseline !important;\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -webkit-align-items: stretch !important;\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -webkit-align-content: flex-start !important;\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -webkit-align-content: flex-end !important;\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -webkit-align-content: center !important;\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -webkit-align-content: space-between !important;\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -webkit-align-content: space-around !important;\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -webkit-align-content: stretch !important;\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -webkit-align-self: auto !important;\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -webkit-align-self: flex-start !important;\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -webkit-align-self: flex-end !important;\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -webkit-align-self: center !important;\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -webkit-align-self: baseline !important;\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -webkit-align-self: stretch !important;\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -webkit-flex-direction: row !important;\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -webkit-flex-direction: column !important;\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -webkit-flex-direction: row-reverse !important;\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -webkit-flex-direction: column-reverse !important;\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -webkit-flex-wrap: wrap !important;\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -webkit-flex-wrap: nowrap !important;\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -webkit-flex-wrap: wrap-reverse !important;\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -webkit-flex: 1 1 auto !important;\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -webkit-flex-grow: 0 !important;\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -webkit-flex-grow: 1 !important;\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -webkit-flex-shrink: 0 !important;\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -webkit-flex-shrink: 1 !important;\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -webkit-justify-content: flex-start !important;\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -webkit-justify-content: flex-end !important;\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -webkit-justify-content: center !important;\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -webkit-justify-content: space-between !important;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -webkit-justify-content: space-around !important;\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -webkit-align-items: flex-start !important;\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -webkit-align-items: flex-end !important;\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -webkit-align-items: center !important;\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -webkit-align-items: baseline !important;\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -webkit-align-items: stretch !important;\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -webkit-align-content: flex-start !important;\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -webkit-align-content: flex-end !important;\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -webkit-align-content: center !important;\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -webkit-align-content: space-between !important;\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -webkit-align-content: space-around !important;\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -webkit-align-content: stretch !important;\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -webkit-align-self: auto !important;\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -webkit-align-self: flex-start !important;\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -webkit-align-self: flex-end !important;\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -webkit-align-self: center !important;\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -webkit-align-self: baseline !important;\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -webkit-align-self: stretch !important;\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  -webkit-user-select: all !important;\n  -moz-user-select: all !important;\n  user-select: all !important;\n}\n\n.user-select-auto {\n  -webkit-user-select: auto !important;\n  -moz-user-select: auto !important;\n  -ms-user-select: auto !important;\n  user-select: auto !important;\n}\n\n.user-select-none {\n  -webkit-user-select: none !important;\n  -moz-user-select: none !important;\n  -ms-user-select: none !important;\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.dark-mode :root {\n  --lightblue: #86bad8;\n  --navy: #002c59;\n  --olive: #74c8a3;\n  --lime: #67ffa9;\n  --fuchsia: #f672d8;\n  --maroon: #ed6c9b;\n  --blue: #3f6791;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #e74c3c;\n  --orange: #fd7e14;\n  --yellow: #f39c12;\n  --green: #00bc8c;\n  --teal: #20c997;\n  --cyan: #3498db;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #3f6791;\n  --secondary: #6c757d;\n  --success: #00bc8c;\n  --info: #3498db;\n  --warning: #f39c12;\n  --danger: #e74c3c;\n  --light: #f8f9fa;\n  --dark: #343a40;\n}\n\n.animation__shake {\n  -webkit-animation: shake 1500ms;\n  animation: shake 1500ms;\n}\n\n.animation__wobble {\n  -webkit-animation: wobble 1500ms;\n  animation: wobble 1500ms;\n}\n\n.preloader {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background-color: #f4f6f9;\n  height: 100vh;\n  width: 100%;\n  transition: height 200ms linear;\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 9999;\n}\n\n.dark-mode .preloader {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\nhtml.scroll-smooth {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n@supports not (-webkit-touch-callout: none) {\n  .layout-fixed .wrapper .sidebar {\n    height: calc(100vh - (3.5rem + 1px));\n  }\n  .layout-fixed.text-sm .wrapper .sidebar {\n    height: calc(100vh - (2.93725rem + 1px));\n  }\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,\n.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link {\n  height: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1033;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n  top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .control-sidebar {\n  top: 0;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n  height: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1035;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.text-sm .layout-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n.layout-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed.text-sm .wrapper .content-wrapper {\n  margin-top: calc(2.93725rem + 1px);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar {\n  margin-top: calc(calc(2.93725rem + 1px) / -1);\n}\n\nbody:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n  margin-top: calc(2.93725rem + 1px);\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: 0;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-sm-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-sm-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-md-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-md-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-lg-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-lg-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar {\n    top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header ~ .control-sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm ~ .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link ~ .sidebar,\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm ~ .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar {\n    top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .control-sidebar {\n    top: 0;\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link, .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm {\n    height: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .text-sm .layout-xl-navbar-fixed .wrapper .main-header ~ .content-wrapper,\n  .layout-xl-navbar-fixed .wrapper .main-header.text-sm ~ .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar {\n    margin-top: calc(calc(2.93725rem + 1px) / -1);\n  }\n  body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar {\n    margin-top: calc(2.93725rem + 1px);\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: 0;\n  }\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .control-sidebar {\n  bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1032;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  padding-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .control-sidebar {\n    bottom: 0;\n  }\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1032;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    padding-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-header .brand-image {\n  margin-top: -.5rem;\n  margin-right: .2rem;\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper, body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,\nbody.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer, .sidebar-collapse\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,\n  body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-md .content-wrapper, .sidebar-collapse\n  .sidebar-mini-md .main-footer, .sidebar-collapse\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md .content-wrapper,\n  .sidebar-mini-md .main-footer,\n  .sidebar-mini-md .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n  }\n}\n\n@media (min-width: 768px) and (prefers-reduced-motion: reduce) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-collapse .sidebar-mini-xs .content-wrapper, .sidebar-collapse\n  .sidebar-mini-xs .main-footer, .sidebar-collapse\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini-xs .content-wrapper,\n  .sidebar-mini-xs .main-footer,\n  .sidebar-mini-xs .main-header {\n    margin-left: 4.6rem;\n  }\n}\n\n.content-wrapper {\n  background-color: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar, .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before {\n  box-shadow: none !important;\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview {\n  padding: 0;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\nbody:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\nbody:not(.layout-fixed) .main-sidebar .sidebar {\n  overflow-y: auto;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar {\n  bottom: 0;\n  float: none;\n  position: fixed;\n  top: 0;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.layout-fixed .control-sidebar .control-sidebar-content {\n  height: calc(100vh - calc(3.5rem + 1px));\n  overflow-y: auto;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n@supports (-webkit-touch-callout: none) {\n  .layout-fixed .main-sidebar {\n    height: inherit;\n  }\n}\n\n.main-footer {\n  background-color: #fff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.text-sm .main-footer, .main-footer.text-sm {\n  padding: 0.812rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.text-sm .content-header {\n  padding: 10px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.text-sm .content-header h1 {\n  font-size: 1.5rem;\n}\n\n.content-header .breadcrumb {\n  background-color: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.text-sm .content-header .breadcrumb {\n  line-height: 1.5rem;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-sidebar,\n.hold-transition .main-sidebar *,\n.hold-transition .control-sidebar,\n.hold-transition .control-sidebar *,\n.hold-transition .main-footer {\n  transition: none !important;\n  -webkit-animation-duration: 0s !important;\n  animation-duration: 0s !important;\n}\n\n.dark-mode {\n  background-color: #454d55 !important;\n  color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n  background-color: #fff;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=\"navbar\"]) {\n    background-color: #fff;\n  }\n}\n\n.dark-mode .breadcrumb-item.active,\n.dark-mode .breadcrumb-item + .breadcrumb-item::before {\n  color: #adb5bd;\n}\n\n.dark-mode .main-footer {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .content-wrapper {\n  background-color: #454d55;\n  color: #fff;\n}\n\n.dark-mode .content-wrapper .content-header {\n  color: #fff;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1034;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.text-sm .main-header .nav-link, .main-header.text-sm .nav-link {\n  height: 1.93725rem;\n  padding: 0.35rem 1rem;\n}\n\n.text-sm .main-header .nav-link > .fa,\n.text-sm .main-header .nav-link > .fas,\n.text-sm .main-header .nav-link > .far,\n.text-sm .main-header .nav-link > .fab,\n.text-sm .main-header .nav-link > .fal,\n.text-sm .main-header .nav-link > .fad,\n.text-sm .main-header .nav-link > .svg-inline--fa,\n.text-sm .main-header .nav-link > .ion, .main-header.text-sm .nav-link > .fa,\n.main-header.text-sm .nav-link > .fas,\n.main-header.text-sm .nav-link > .far,\n.main-header.text-sm .nav-link > .fab,\n.main-header.text-sm .nav-link > .fal,\n.main-header.text-sm .nav-link > .fad,\n.main-header.text-sm .nav-link > .svg-inline--fa,\n.main-header.text-sm .nav-link > .ion {\n  font-size: 0.875rem;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*=\"-right\"] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.main-header.dropdown-legacy .dropdown-menu {\n  top: 3rem;\n  margin-top: 0;\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #495057;\n  border-color: #6c757d !important;\n  color: #ced4da;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #dadfe4;\n  border-color: #ced4da;\n}\n\n.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar::placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d3d9df;\n  border-color: #c7ced5 !important;\n  color: #ced4da;\n}\n\n.navbar-light .navbar-search-block .form-control-navbar:focus,\n.navbar-light .navbar-search-block .form-control-navbar:focus + .input-group-append .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-search-block {\n  position: absolute;\n  padding: 0 1rem;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 10;\n  display: none;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  background-color: initial;\n}\n\n.navbar-search-block.navbar-search-open {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.navbar-search-block .input-group {\n  width: 100%;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #fff;\n  text-decoration: none;\n}\n\n.text-sm .brand-link {\n  font-size: inherit;\n}\n\n[class*=\"sidebar-dark\"] .brand-link {\n  border-bottom: 1px solid #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .brand-link,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*=\"sidebar-dark\"] .brand-link:hover,\n[class*=\"sidebar-dark\"] .brand-link .pushmenu:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n}\n\n[class*=\"sidebar-light\"] .brand-link,\n[class*=\"sidebar-light\"] .brand-link .pushmenu {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n[class*=\"sidebar-light\"] .brand-link:hover,\n[class*=\"sidebar-light\"] .brand-link .pushmenu:hover {\n  color: #000;\n}\n\n.brand-link .pushmenu {\n  margin-right: 0.5rem;\n  font-size: 1rem;\n}\n\n.brand-link .brand-link {\n  padding: 0;\n  border-bottom: none;\n}\n\n.brand-link .brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-top: -.1rem;\n  max-height: 33px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl {\n  line-height: .8;\n  max-height: 40px;\n  width: auto;\n}\n\n.brand-link .brand-image-xl.single {\n  margin-top: -.3rem;\n}\n\n.brand-link.text-sm .brand-image,\n.text-sm .brand-link .brand-image {\n  height: 29px;\n  margin-bottom: -.25rem;\n  margin-left: .95rem;\n  margin-top: -.25rem;\n}\n\n.brand-link.text-sm .brand-image-xs,\n.text-sm .brand-link .brand-image-xs {\n  margin-top: -.2rem;\n  max-height: 29px;\n}\n\n.brand-link.text-sm .brand-image-xl,\n.text-sm .brand-link .brand-image-xl {\n  margin-top: -.225rem;\n  max-height: 38px;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1038;\n}\n\n.main-sidebar a:-moz-focusring {\n  border: 0;\n  outline: none;\n}\n\n.sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar {\n  height: calc(100% - (3.5rem + 1px));\n  overflow-x: none;\n  overflow-y: initial;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*=\"sidebar-dark\"] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > .right,\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: .7rem;\n}\n\n.nav-sidebar .nav-link > .right i,\n.nav-sidebar .nav-link > .right span,\n.nav-sidebar .nav-link > p > .right i,\n.nav-sidebar .nav-link > p > .right span {\n  margin-left: .5rem;\n}\n\n.nav-sidebar .nav-link > .right:nth-child(2),\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.2rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right,\n.nav-sidebar .menu-is-opening > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  margin-left: .05rem;\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.fal, .nav-sidebar > .nav-item .nav-icon.fad, .nav-sidebar > .nav-item .nav-icon.svg-inline--fa, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  transition: padding 0.3s ease-in-out;\n  padding-left: 1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem 0.75rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline;\n  margin: 0;\n  white-space: normal;\n}\n\n.sidebar-is-opening .nav-sidebar .nav-link p {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1037;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*=\"sidebar-light-\"] {\n  background-color: #fff;\n}\n\n[class*=\"sidebar-light-\"] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .status:hover, [class*=\"sidebar-light-\"] .user-panel .status:focus, [class*=\"sidebar-light-\"] .user-panel .status:active {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:active, [class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-light-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-light-\"] .nav-header {\n  background-color: inherit;\n  color: #292d32;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n[class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #000;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: #212529;\n}\n\n[class*=\"sidebar-light-\"] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-light-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] {\n  background-color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel a:hover {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .status:hover, [class*=\"sidebar-dark-\"] .user-panel .status:focus, [class*=\"sidebar-dark-\"] .user-panel .status:active {\n  background-color: rgba(247, 247, 247, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*=\"sidebar-dark-\"] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n}\n\n[class*=\"sidebar-dark-\"] .nav-sidebar > .nav-item > .nav-treeview {\n  background-color: transparent;\n}\n\n[class*=\"sidebar-dark-\"] .nav-header {\n  background-color: inherit;\n  color: #d0d4db;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .sidebar a:hover, [class*=\"sidebar-dark-\"] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link {\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #fff;\n}\n\n[class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:hover, [class*=\"sidebar-dark-\"] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview .nav-treeview {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n[class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link, [class*=\"sidebar-dark-\"] .nav-flat .nav-item .nav-treeview > .nav-item > .nav-link.active {\n  border-color: rgba(255, 255, 255, 0.9);\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3c8dbc;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #001f3f;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3d9970;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #01ff70;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f012be;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #d81b60;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #007bff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #dc3545;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ffc107;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #28a745;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #17a2b8;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.nav-flat {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-flat .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-flat .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: .4rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview {\n  border-left: .2rem solid;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  padding-left: calc(1rem - .2rem);\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .35rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: .15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.15rem;\n}\n\n.sidebar-collapse .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: -.35rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon {\n  margin-left: .4rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon {\n  margin-left: .85rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.15rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.45rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 1.75rem;\n}\n\n.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,\n.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon {\n  margin-left: 2.05rem;\n}\n\n.nav-flat .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-flat .nav-icon {\n    transition: none;\n  }\n}\n\n.nav-flat .nav-treeview .nav-icon {\n  margin-left: -.2rem;\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.nav-flat.nav-sidebar > .nav-item .nav-treeview .nav-item > .nav-link,\n.nav-flat.nav-sidebar > .nav-item > .nav-treeview .nav-item > .nav-link {\n  border-left: .2rem solid;\n}\n\n.nav-legacy {\n  margin: -0.25rem -0.5rem 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link {\n  border-radius: 0;\n  margin-bottom: 0;\n}\n\n.nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .55rem;\n}\n\n.text-sm .nav-legacy.nav-sidebar .nav-item > .nav-link > .nav-icon {\n  margin-left: .75rem;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  background-color: inherit;\n  border-left: 3px solid transparent;\n  box-shadow: none;\n}\n\n.nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.55rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item > .nav-link > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n.sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n.sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n  transition: margin-left ease-in-out 0.3s;\n  margin-left: .6rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-md .nav-legacy > .nav-item .nav-link .nav-icon,\n  .sidebar-mini-xs .nav-legacy > .nav-item .nav-link .nav-icon {\n    transition: none;\n  }\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 2rem;\n  margin-left: -1rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview {\n  padding-left: .5rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 1rem;\n  margin-left: -.5rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .55rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: .36rem;\n}\n\n.sidebar-mini.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .nav-legacy.nav-child-indent .nav-treeview .nav-treeview {\n  padding-left: 0;\n  margin-left: 0;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link .nav-icon {\n  margin-left: .75rem;\n}\n\n.sidebar-mini.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon,\n.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy > .nav-item > .nav-link.active > .nav-icon {\n  margin-left: calc(.75rem - 3px);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #fff;\n}\n\n[class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-dark\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #fff;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item .nav-treeview,\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-treeview {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n[class*=\"sidebar-light\"] .nav-legacy.nav-sidebar > .nav-item > .nav-link.active {\n  color: #000;\n}\n\n[class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link.active, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:focus, [class*=\"sidebar-light\"] .nav-legacy .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: transparent;\n  color: #000;\n}\n\n.nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-collapse .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: 0;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-collapse-hide-child .menu-open > .nav-treeview,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .menu-open > .nav-treeview {\n  max-height: -webkit-min-content;\n  max-height: -moz-min-content;\n  max-height: min-content;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n}\n\n.nav-compact .nav-link,\n.nav-compact .nav-header {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-header:not(:first-of-type) {\n  padding-top: 0.75rem;\n  padding-bottom: 0.25rem;\n}\n\n.nav-compact .nav-link > .right,\n.nav-compact .nav-link > p > .right {\n  top: .465rem;\n}\n\n.text-sm .nav-compact .nav-link > .right,\n.text-sm .nav-compact .nav-link > p > .right {\n  top: .7rem;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar,\n[class*=\"sidebar-dark\"] .btn-sidebar {\n  background-color: #3f474e;\n  border: 1px solid #56606a;\n  color: white;\n}\n\n[class*=\"sidebar-dark\"] .form-control-sidebar:focus,\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  border: 1px solid #7a8793;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:hover {\n  background-color: #454d55;\n}\n\n[class*=\"sidebar-dark\"] .btn-sidebar:focus {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item {\n  background-color: #454d55;\n  border-color: #56606a;\n  color: #c2c7d0;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:hover {\n  background-color: #4b545c;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item:focus {\n  background-color: #515a63;\n}\n\n[class*=\"sidebar-dark\"] .list-group-item .search-path {\n  color: #adb5bd;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar,\n[class*=\"sidebar-light\"] .btn-sidebar {\n  background-color: #f2f2f2;\n  border: 1px solid #d9d9d9;\n  color: #1f2d3d;\n}\n\n[class*=\"sidebar-light\"] .form-control-sidebar:focus,\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  border: 1px solid #b3b3b3;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .btn-sidebar:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item {\n  border-color: #d9d9d9;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:hover {\n  background-color: #ececec;\n}\n\n[class*=\"sidebar-light\"] .list-group-item:focus {\n  background-color: #e6e6e6;\n}\n\n[class*=\"sidebar-light\"] .list-group-item .search-path {\n  color: #6c757d;\n}\n\n.sidebar .form-inline .input-group {\n  width: 100%;\n  -webkit-flex-wrap: nowrap;\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.sidebar nav .form-inline {\n  margin-bottom: .2rem;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar {\n  margin-left: 0;\n}\n\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header,\n.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer {\n  z-index: 9999;\n  position: relative;\n}\n\n.sidebar-collapse .form-control-sidebar,\n.sidebar-collapse .form-control-sidebar ~ .input-group-append,\n.sidebar-collapse .sidebar-search-results {\n  display: none;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-clear, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-ms-reveal {\n  display: none;\n  width: 0;\n  height: 0;\n}\n\n[data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-cancel-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-decoration, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-button, [data-widget=\"sidebar-search\"] input[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.sidebar-search-results {\n  position: relative;\n  display: none;\n  width: 100%;\n}\n\n.sidebar-search-open .sidebar-search-results {\n  display: inline-block;\n}\n\n.sidebar-search-results .search-title {\n  margin-bottom: -.1rem;\n}\n\n.sidebar-search-results .list-group {\n  position: absolute;\n  width: 100%;\n  z-index: 1039;\n}\n\n.sidebar-search-results .list-group > .list-group-item {\n  padding: 0.375rem 0.75rem;\n}\n\n.sidebar-search-results .list-group > .list-group-item:-moz-focusring {\n  margin-top: 0;\n  border-left: 1px solid transparent;\n  border-top: 0;\n  border-bottom: 1px solid transparent;\n}\n\n.sidebar-search-results .list-group > .list-group-item:first-child {\n  margin-top: 0;\n  border-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.sidebar-search-results .search-path {\n  font-size: 80%;\n}\n\n.sidebar-search-open .btn,\n.sidebar-search-open .form-control {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n[class*=\"sidebar-dark\"] .sidebar-custom {\n  border-top: 1px solid #4f5962;\n}\n\n[class*=\"sidebar-light\"] .sidebar-custom {\n  border-top: 1px solid #dee2e6;\n}\n\n.layout-fixed.sidebar-collapse .hide-on-collapse {\n  display: none;\n}\n\n.layout-fixed.sidebar-collapse:hover .hide-on-collapse {\n  display: block;\n}\n\n.layout-fixed .main-sidebar-custom .sidebar {\n  height: calc(100% - ((3.5rem + 4rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom .sidebar-custom {\n  height: 4rem;\n  padding: 0.85rem 0.5rem;\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar {\n  height: calc(100% - ((3.5rem + 6rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-lg .sidebar-custom {\n  height: 6rem;\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar {\n  height: calc(100% - ((3.5rem + 8rem) + 1px));\n}\n\n.layout-fixed .main-sidebar-custom-xl .sidebar-custom {\n  height: 8rem;\n}\n\n.layout-fixed .main-sidebar-custom .pos-right,\n.layout-fixed .main-sidebar-custom-lg .pos-right,\n.layout-fixed .main-sidebar-custom-xl .pos-right {\n  position: absolute;\n  right: .5rem;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #86bad8;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #002c59;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #74c8a3;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #67ffa9;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f672d8;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3f6791;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6610f2;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6f42c1;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e83e8c;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #e74c3c;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fd7e14;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #f39c12;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #00bc8c;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #20c997;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #3498db;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #6c757d;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active,\n.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy > .nav-item > .nav-link.active {\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a {\n  color: #343a40;\n}\n\n.dark-mode [class*=\"sidebar-light-\"] .sidebar a:hover {\n  text-decoration: none;\n}\n\n.logo-xs,\n.logo-xl {\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: \"\\00a0\";\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n    white-space: nowrap;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    -webkit-animation-name: fadeOut;\n    animation-name: fadeOut;\n    -webkit-animation-duration: 0.3s;\n    animation-duration: 0.3s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n    transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    box-shadow: none !important;\n  }\n}\n\n.sidebar-mini-xs .nav-sidebar,\n.sidebar-mini-xs .nav-sidebar > .nav-header,\n.sidebar-mini-xs .nav-sidebar .nav-link {\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .d-hidden-mini {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .content-wrapper,\n.sidebar-mini-xs.sidebar-collapse .main-footer,\n.sidebar-mini-xs.sidebar-collapse .main-header {\n  margin-left: 4.6rem !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header {\n  display: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p {\n  width: 0;\n  white-space: nowrap;\n}\n\n.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .brand-text {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .logo-xs {\n  display: inline-block;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar {\n  overflow-x: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar, .sidebar-mini-xs.sidebar-collapse .main-sidebar::before {\n  margin-left: 0;\n  width: 4.6rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image {\n  float: none;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n  text-align: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n  float: left;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n  display: inline-block;\n  margin-left: 0;\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n  margin-right: .5rem;\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n  display: block !important;\n  -webkit-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n  display: inline-block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini {\n  display: block !important;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n  width: 250px;\n}\n\n.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link {\n  width: 4.6rem;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 1.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 0.5rem * 2 - 2.5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-mini .main-sidebar .nav-link,\n.sidebar-mini-md .main-sidebar .nav-link,\n.sidebar-mini-xs .main-sidebar .nav-link {\n  width: calc(250px - 0.5rem * 2);\n  transition: width ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar-mini .main-sidebar .nav-link,\n  .sidebar-mini-md .main-sidebar .nav-link,\n  .sidebar-mini-xs .main-sidebar .nav-link {\n    transition: none;\n  }\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {\n  width: 3.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview {\n  padding-left: 0 !important;\n  margin-left: 0 !important;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link {\n  width: calc(4.6rem - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-header, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-header {\n  display: inline-block;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 1rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 3rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - 1rem - 4rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link {\n  width: calc(250px);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .2rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link {\n  width: calc(250px - 0.5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link {\n  width: 250px;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link {\n  width: calc(250px - .5rem);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 2);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 3);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 4);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link {\n  width: calc(250px - .5rem * 5);\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar {\n  width: 0.5rem;\n  height: 0.5rem;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-thumb, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-thumb {\n  background-color: #a9a9a9;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-track, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-track {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar::-webkit-scrollbar-corner, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar::-webkit-scrollbar-corner {\n  background-color: transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar:hover .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: thin;\n  scrollbar-color: #a9a9a9 transparent;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar::-webkit-scrollbar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n.sidebar-collapse.sidebar-mini .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar, .sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar {\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n  scrollbar-width: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover {\n  width: 4.6rem;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header {\n  display: none;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link {\n  width: 4.6rem !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image {\n  float: none !important;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl {\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-text,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel > .info,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar .nav-link p {\n  margin-left: -10px;\n  -webkit-animation-name: fadeOut;\n  animation-name: fadeOut;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: hidden;\n  width: 0;\n}\n\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon, .sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar > .nav-item .nav-icon,\n.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar > .nav-item .nav-icon {\n  margin-right: 0;\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  bottom: calc(3.5rem + 1px);\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 1031;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: calc(3.5rem + 1px);\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \"\";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\nbody.text-sm .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n  top: calc(2.93725rem + 1px);\n}\n\n.main-header.text-sm ~ .control-sidebar {\n  top: calc(2.93725rem + 1px);\n}\n\n.main-footer.text-sm ~ .control-sidebar {\n  bottom: calc(2.9365rem + 1px);\n}\n\n.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-push-slide .main-footer {\n  transition: margin-right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-push-slide .content-wrapper,\n  .control-sidebar-push-slide .main-footer {\n    transition: none;\n  }\n}\n\n.control-sidebar-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-open.control-sidebar-push .content-wrapper,\n.control-sidebar-open.control-sidebar-push .main-footer, .control-sidebar-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n  transition: right 0.3s ease-in-out, display 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar-slide-open.control-sidebar-push .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push .main-footer, .control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,\n.control-sidebar-slide-open.control-sidebar-push-slide .main-footer {\n  margin-right: 250px;\n}\n\n.control-sidebar-dark {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #c2c7d0;\n}\n\n.control-sidebar-dark a:hover {\n  color: #fff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #fff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n  background-color: #fff;\n  border-left: 1px solid #dee2e6;\n}\n\n.text-sm .dropdown-menu {\n  font-size: 0.875rem !important;\n}\n\n.text-sm .dropdown-toggle::after {\n  vertical-align: .2rem;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-icon::after {\n  margin-left: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > a::after {\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n  float: right;\n  margin-left: .5rem;\n  margin-top: .5rem;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  left: 100%;\n  margin-left: 0;\n  margin-top: 0;\n  top: 0;\n}\n\n.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu,\n.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background-color: #fff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link::after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background-color: #fff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 2.1rem;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 2.1rem;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: .4rem;\n    margin-top: -8px;\n  }\n}\n\n.dark-mode .dropdown-menu {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .dropdown-item {\n  color: #fff;\n}\n\n.dark-mode .dropdown-item:focus, .dark-mode .dropdown-item:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .dropdown-divider {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #3a4047;\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #fff;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #3f474e;\n  color: #dee2e6;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:focus {\n  background-color: #454d55;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-color: #6c757d;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n  background-color: transparent !important;\n  color: #fff !important;\n}\n\n.dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:hover, .dark-mode .navbar-nav > .user-menu > .dropdown-menu > .user-body a:focus {\n  color: #ced4da !important;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #fff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef transparent #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 transparent #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0.25rem;\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef transparent;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 transparent;\n}\n\n.navbar-no-expand {\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-no-expand .nav-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.navbar-no-expand .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar,\n.navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-primary.navbar-light .form-control-navbar:focus,\n.navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar,\n.navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-primary.navbar-dark .form-control-navbar:focus,\n.navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar,\n.navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-light .form-control-navbar:focus,\n.navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar,\n.navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-secondary.navbar-dark .form-control-navbar:focus,\n.navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-success {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar,\n.navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-success.navbar-light .form-control-navbar:focus,\n.navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar,\n.navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-success.navbar-dark .form-control-navbar:focus,\n.navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar,\n.navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-info.navbar-light .form-control-navbar:focus,\n.navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar,\n.navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-info.navbar-dark .form-control-navbar:focus,\n.navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar,\n.navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-warning.navbar-light .form-control-navbar:focus,\n.navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar,\n.navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-warning.navbar-dark .form-control-navbar:focus,\n.navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar,\n.navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-danger.navbar-light .form-control-navbar:focus,\n.navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar,\n.navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-danger.navbar-dark .form-control-navbar:focus,\n.navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-lightblue {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar,\n.navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3781ad;\n  border-color: #317399;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-light .form-control-navbar:focus,\n.navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #367fa9;\n  border-color: #317399 !important;\n  color: #343a40;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar,\n.navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #4897c5;\n  border-color: #5ba2cb;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4c99c6;\n  border-color: #5ba2cb !important;\n  color: #fff;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar,\n.navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00152b;\n  border-color: #000811;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-navy.navbar-light .form-control-navbar:focus,\n.navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001226;\n  border-color: #000811 !important;\n  color: #343a40;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar,\n.navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002953;\n  border-color: #00366d;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-navy.navbar-dark .form-control-navbar:focus,\n.navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #002c59;\n  border-color: #00366d !important;\n  color: #fff;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar,\n.navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #378a65;\n  border-color: #307858;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-olive.navbar-light .form-control-navbar:focus,\n.navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #368763;\n  border-color: #307858 !important;\n  color: #343a40;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar,\n.navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #43a87b;\n  border-color: #4cb888;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-olive.navbar-dark .form-control-navbar:focus,\n.navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #44ab7d;\n  border-color: #4cb888 !important;\n  color: #fff;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar,\n.navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00ec67;\n  border-color: #00d25c;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-lime.navbar-light .form-control-navbar:focus,\n.navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00e765;\n  border-color: #00d25c !important;\n  color: #343a40;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar,\n.navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #15ff7b;\n  border-color: #2fff8a;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-lime.navbar-dark .form-control-navbar:focus,\n.navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1bff7e;\n  border-color: #2fff8a !important;\n  color: #fff;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar,\n.navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df0eb0;\n  border-color: #c70d9d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #db0ead;\n  border-color: #c70d9d !important;\n  color: #343a40;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar,\n.navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f125c3;\n  border-color: #f33dca;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f22ac5;\n  border-color: #f33dca !important;\n  color: #fff;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar,\n.navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #c61958;\n  border-color: #af164e;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-light .form-control-navbar:focus,\n.navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #c11856;\n  border-color: #af164e !important;\n  color: #343a40;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar,\n.navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e4246a;\n  border-color: #e63a79;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-maroon.navbar-dark .form-control-navbar:focus,\n.navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e4286d;\n  border-color: #e63a79 !important;\n  color: #fff;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar,\n.navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #0071eb;\n  border-color: #0065d1;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-blue.navbar-light .form-control-navbar:focus,\n.navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #006fe6;\n  border-color: #0065d1 !important;\n  color: #343a40;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar,\n.navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1486ff;\n  border-color: #2e93ff;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-blue.navbar-dark .form-control-navbar:focus,\n.navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1a88ff;\n  border-color: #2e93ff !important;\n  color: #fff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar,\n.navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-light .form-control-navbar:focus,\n.navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar,\n.navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-indigo.navbar-dark .form-control-navbar:focus,\n.navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar,\n.navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-purple.navbar-light .form-control-navbar:focus,\n.navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar,\n.navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-purple.navbar-dark .form-control-navbar:focus,\n.navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar,\n.navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-pink.navbar-light .form-control-navbar:focus,\n.navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar,\n.navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-pink.navbar-dark .form-control-navbar:focus,\n.navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar,\n.navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #d72536;\n  border-color: #c22231;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-red.navbar-light .form-control-navbar:focus,\n.navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #d32535;\n  border-color: #c22231 !important;\n  color: #343a40;\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar,\n.navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #df4655;\n  border-color: #e35c69;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-red.navbar-dark .form-control-navbar:focus,\n.navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e04b59;\n  border-color: #e35c69 !important;\n  color: #fff;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar,\n.navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-orange.navbar-light .form-control-navbar:focus,\n.navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar,\n.navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-orange.navbar-dark .form-control-navbar:focus,\n.navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar,\n.navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f2b500;\n  border-color: #d8a200;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-light .form-control-navbar:focus,\n.navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #edb100;\n  border-color: #d8a200 !important;\n  color: #343a40;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar,\n.navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ffc61b;\n  border-color: #ffcc35;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-yellow.navbar-dark .form-control-navbar:focus,\n.navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ffc721;\n  border-color: #ffcc35 !important;\n  color: #fff;\n}\n\n.navbar-green {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar,\n.navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #24973e;\n  border-color: #1f8236;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-green.navbar-light .form-control-navbar:focus,\n.navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #23923d;\n  border-color: #1f8236 !important;\n  color: #343a40;\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar,\n.navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2cb74c;\n  border-color: #31cc54;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-green.navbar-dark .form-control-navbar:focus,\n.navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #2dbc4e;\n  border-color: #31cc54 !important;\n  color: #fff;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar,\n.navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-teal.navbar-light .form-control-navbar:focus,\n.navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar,\n.navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-teal.navbar-dark .form-control-navbar:focus,\n.navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar,\n.navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1592a6;\n  border-color: #127e8f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-light .form-control-navbar:focus,\n.navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #148ea1;\n  border-color: #127e8f !important;\n  color: #343a40;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar,\n.navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #19b2ca;\n  border-color: #1cc6e1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-cyan.navbar-dark .form-control-navbar:focus,\n.navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1ab6cf;\n  border-color: #1cc6e1 !important;\n  color: #fff;\n}\n\n.navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar,\n.navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-white.navbar-light .form-control-navbar:focus,\n.navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar,\n.navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-white.navbar-dark .form-control-navbar:focus,\n.navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar,\n.navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray.navbar-light .form-control-navbar:focus,\n.navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar,\n.navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray.navbar-dark .form-control-navbar:focus,\n.navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar,\n.navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar,\n.navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.dark-mode .nav-pills .nav-link {\n  color: #ced4da;\n}\n\n.dark-mode .nav-tabs {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-link:focus,\n.dark-mode .nav-tabs .nav-link:hover {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs .nav-item.show .nav-link,\n.dark-mode .nav-tabs .nav-link.active {\n  background-color: #343a40;\n  border-color: #56606a #56606a transparent #56606a;\n  color: #fff;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link.active,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  border-color: #56606a transparent #56606a #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus, .dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,\n.dark-mode .nav-tabs.flex-column .nav-link:focus,\n.dark-mode .nav-tabs.flex-column .nav-link:hover {\n  background-color: #3f474e;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right {\n  border-color: #56606a;\n}\n\n.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus, .dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover {\n  border-color: #56606a #56606a #56606a transparent;\n}\n\n.dark-mode .navbar-light {\n  background-color: #f8f9fa;\n}\n\n.dark-mode .navbar-dark {\n  background-color: #343a40;\n  border-color: #4b545c;\n}\n\n.dark-mode .navbar-primary {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-success {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar,\n.dark-mode .navbar-success.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-info {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar,\n.dark-mode .navbar-info.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-warning {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #76b1d3;\n  border-color: #63a6cd;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #72afd2;\n  border-color: #63a6cd !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #95c3dd;\n  border-color: #a9cee3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #99c5de;\n  border-color: #a9cee3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #002244;\n  border-color: #00152b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #001f3f;\n  border-color: #00152b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00366d;\n  border-color: #004286;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #003872;\n  border-color: #004286 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-olive {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #66c299;\n  border-color: #53bb8d;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #62c096;\n  border-color: #53bb8d !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #83ceac;\n  border-color: #95d5b8;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #87cfaf;\n  border-color: #95d5b8 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-lime {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #53ff9e;\n  border-color: #39ff90;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4eff9b;\n  border-color: #39ff90 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7bffb5;\n  border-color: #95ffc3;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #81ffb8;\n  border-color: #95ffc3 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f55fd3;\n  border-color: #f347cc;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f55ad2;\n  border-color: #f347cc !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f785de;\n  border-color: #f99de4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f88adf;\n  border-color: #f99de4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5a8f;\n  border-color: #e8447f;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea568c;\n  border-color: #e8447f !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ef7ea8;\n  border-color: #f295b7;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f083ab;\n  border-color: #f295b7 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #395d83;\n  border-color: #315071;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #375a7f;\n  border-color: #315071 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45719f;\n  border-color: #4d7eb1;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4774a3;\n  border-color: #4d7eb1 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #5d0ce1;\n  border-color: #530bc9;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #5b0cdd;\n  border-color: #530bc9 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7223f3;\n  border-color: #823cf4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7528f3;\n  border-color: #823cf4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #663bb4;\n  border-color: #5b35a0;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #643ab0;\n  border-color: #5b35a0 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #7b51c6;\n  border-color: #8965cc;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #7e55c7;\n  border-color: #8965cc !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e62c81;\n  border-color: #de1a74;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e5277e;\n  border-color: #de1a74 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #ea5097;\n  border-color: #ed67a4;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #eb559a;\n  border-color: #ed67a4 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-red {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar,\n.dark-mode .navbar-red.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e53b2a;\n  border-color: #da2d1b;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e43725;\n  border-color: #da2d1b !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e95d4e;\n  border-color: #ec7265;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #ea6153;\n  border-color: #ec7265 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-orange {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fa7302;\n  border-color: #e16702;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f57102;\n  border-color: #e16702 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #fd8928;\n  border-color: #fd9742;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #fd8c2d;\n  border-color: #fd9742 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #e5910c;\n  border-color: #cd820a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e08e0b;\n  border-color: #cd820a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #f4a425;\n  border-color: #f5ae3e;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f4a62a;\n  border-color: #f5ae3e !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-green {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar,\n.dark-mode .navbar-green.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00a87d;\n  border-color: #008e6a;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00a379;\n  border-color: #008e6a !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #00d09b;\n  border-color: #00eaae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #00d69f;\n  border-color: #00eaae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #1db78a;\n  border-color: #1aa179;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #1cb386;\n  border-color: #1aa179 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #23dba4;\n  border-color: #38dfae;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #26dca6;\n  border-color: #38dfae !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #268fd5;\n  border-color: #2280bf;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #258cd1;\n  border-color: #2280bf !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #45a1de;\n  border-color: #5bace2;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #4aa3df;\n  border-color: #5bace2 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-white {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar,\n.dark-mode .navbar-white.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: whitesmoke;\n  border-color: #e8e8e8;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #f2f2f2;\n  border-color: #e8e8e8 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: white;\n  border-color: white;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: white;\n  border-color: white !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #636b72;\n  border-color: #575e64;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #60686f;\n  border-color: #575e64 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #757f88;\n  border-color: #838c94;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #78828a;\n  border-color: #838c94 !important;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder {\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #2b3035;\n  border-color: #1f2327;\n  color: rgba(52, 58, 64, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder {\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #292d32;\n  border-color: #1f2327 !important;\n  color: #343a40;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  background-color: #3d444b;\n  border-color: #495159;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder {\n  color: #fff;\n}\n\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,\n.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #3f474e;\n  border-color: #495159 !important;\n  color: #fff;\n}\n\n.pagination-month .page-item {\n  justify-self: stretch;\n}\n\n.pagination-month .page-item .page-link {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  box-shadow: none;\n}\n\n.pagination-month .page-item:first-child .page-link, .pagination-month .page-item:last-child .page-link {\n  height: 100%;\n  font-size: 1.25rem;\n}\n\n.pagination-month .page-item .page-month {\n  margin-bottom: 0;\n  font-size: 1.25rem;\n  font-weight: 700;\n}\n\n.pagination-month .page-item .page-year {\n  margin-bottom: 0;\n}\n\n.pagination-month.pagination-lg .page-month {\n  font-size: 1.5625rem;\n}\n\n.pagination-month.pagination-sm .page-month {\n  font-size: 1rem;\n}\n\n.dark-mode .page-item.disabled a,\n.dark-mode .page-item.disabled .page-link {\n  background-color: #3a4047 !important;\n  border-color: #6c757d !important;\n  color: #6c757d;\n}\n\n.dark-mode .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .page-item.active .page-link {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .page-item.active .page-link:hover, .dark-mode .page-item.active .page-link:focus {\n  color: #ced4da !important;\n}\n\n.dark-mode .page-item:not(.active) .page-link {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .page-item:not(.active) .page-link:hover, .dark-mode .page-item:not(.active) .page-link:focus {\n  color: #4774a3;\n  background-color: #3f474e;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block {\n  float: left;\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n  margin-top: -1px;\n}\n\n.user-block .description {\n  color: #6c757d;\n  font-size: 13px;\n  margin-top: -3px;\n}\n\n.user-block.user-block-sm img {\n  width: 1.875rem;\n  height: 1.875rem;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm {\n  height: 1.875rem;\n  width: 1.875rem;\n}\n\n.img-sm + .img-push {\n  margin-left: 2.5rem;\n}\n\n.img-md {\n  width: 3.75rem;\n  height: 3.75rem;\n}\n\n.img-md + .img-push {\n  margin-left: 4.375rem;\n}\n\n.img-lg {\n  width: 6.25rem;\n  height: 6.25rem;\n}\n\n.img-lg + .img-push {\n  margin-left: 6.875rem;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background-color: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.7);\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .fal,\n.card .overlay > .fad,\n.card .overlay > .svg-inline--fa,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .fal,\n.overlay-wrapper .overlay > .fad,\n.overlay-wrapper .overlay > .svg-inline--fa,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .fal,\n.info-box .overlay > .fad,\n.info-box .overlay > .svg-inline--fa,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .fal,\n.small-box .overlay > .fad,\n.small-box .overlay > .svg-inline--fa,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background-color: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .fal,\n.card .overlay.dark > .fad,\n.card .overlay.dark > .svg-inline--fa,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .fal,\n.overlay-wrapper .overlay.dark > .fad,\n.overlay-wrapper .overlay.dark > .svg-inline--fa,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .fal,\n.info-box .overlay.dark > .fad,\n.info-box .overlay.dark > .svg-inline--fa,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .fal,\n.small-box .overlay.dark > .fad,\n.small-box .overlay.dark > .svg-inline--fa,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.tab-pane > .overlay-wrapper {\n  position: relative;\n}\n\n.tab-pane > .overlay-wrapper > .overlay {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  margin-top: -1.25rem;\n  margin-left: -1.25rem;\n  height: calc(100% + 2 * 1.25rem);\n  width: calc(100% + 2 * 1.25rem);\n}\n\n.tab-pane > .overlay-wrapper > .overlay.dark {\n  color: #fff;\n}\n\n.ribbon-wrapper {\n  height: 70px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 70px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 120px;\n  width: 120px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: 0;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: 4px;\n  top: 47px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -2px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 10px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 90px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: \"\";\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n  z-index: 1032;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background-color: #fff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: .5em .7rem;\n}\n\n.box blockquote {\n  background-color: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\nblockquote.quote-lightblue h1,\nblockquote.quote-lightblue h2,\nblockquote.quote-lightblue h3,\nblockquote.quote-lightblue h4,\nblockquote.quote-lightblue h5,\nblockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #fff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #fff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n.badge-btn {\n  border-radius: 0.15rem;\n  font-size: 0.75rem;\n  font-weight: 400;\n  padding: 0.25rem 0.5rem;\n}\n\n.badge-btn.badge-pill {\n  padding: .375rem .6rem;\n}\n\n.dark-mode a:not(.btn):hover {\n  color: #3395ff;\n}\n\n.dark-mode .attachment-block {\n  background-color: #3d444b;\n}\n\n.dark-mode .attachment-block .attachment-text {\n  color: #ced4da;\n}\n\n.dark-mode blockquote {\n  background-color: #3f474e;\n}\n\n.dark-mode blockquote.quote-primary {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-primary h1,\n.dark-mode blockquote.quote-primary h2,\n.dark-mode blockquote.quote-primary h3,\n.dark-mode blockquote.quote-primary h4,\n.dark-mode blockquote.quote-primary h5,\n.dark-mode blockquote.quote-primary h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-secondary h1,\n.dark-mode blockquote.quote-secondary h2,\n.dark-mode blockquote.quote-secondary h3,\n.dark-mode blockquote.quote-secondary h4,\n.dark-mode blockquote.quote-secondary h5,\n.dark-mode blockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-success {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-success h1,\n.dark-mode blockquote.quote-success h2,\n.dark-mode blockquote.quote-success h3,\n.dark-mode blockquote.quote-success h4,\n.dark-mode blockquote.quote-success h5,\n.dark-mode blockquote.quote-success h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-info {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-info h1,\n.dark-mode blockquote.quote-info h2,\n.dark-mode blockquote.quote-info h3,\n.dark-mode blockquote.quote-info h4,\n.dark-mode blockquote.quote-info h5,\n.dark-mode blockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-warning {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-warning h1,\n.dark-mode blockquote.quote-warning h2,\n.dark-mode blockquote.quote-warning h3,\n.dark-mode blockquote.quote-warning h4,\n.dark-mode blockquote.quote-warning h5,\n.dark-mode blockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-danger {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-danger h1,\n.dark-mode blockquote.quote-danger h2,\n.dark-mode blockquote.quote-danger h3,\n.dark-mode blockquote.quote-danger h4,\n.dark-mode blockquote.quote-danger h5,\n.dark-mode blockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-light h1,\n.dark-mode blockquote.quote-light h2,\n.dark-mode blockquote.quote-light h3,\n.dark-mode blockquote.quote-light h4,\n.dark-mode blockquote.quote-light h5,\n.dark-mode blockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\n.dark-mode blockquote.quote-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-dark h1,\n.dark-mode blockquote.quote-dark h2,\n.dark-mode blockquote.quote-dark h3,\n.dark-mode blockquote.quote-dark h4,\n.dark-mode blockquote.quote-dark h5,\n.dark-mode blockquote.quote-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode blockquote.quote-lightblue {\n  border-color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-lightblue h1,\n.dark-mode blockquote.quote-lightblue h2,\n.dark-mode blockquote.quote-lightblue h3,\n.dark-mode blockquote.quote-lightblue h4,\n.dark-mode blockquote.quote-lightblue h5,\n.dark-mode blockquote.quote-lightblue h6 {\n  color: #3c8dbc;\n}\n\n.dark-mode blockquote.quote-navy {\n  border-color: #001f3f;\n}\n\n.dark-mode blockquote.quote-navy h1,\n.dark-mode blockquote.quote-navy h2,\n.dark-mode blockquote.quote-navy h3,\n.dark-mode blockquote.quote-navy h4,\n.dark-mode blockquote.quote-navy h5,\n.dark-mode blockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\n.dark-mode blockquote.quote-olive {\n  border-color: #3d9970;\n}\n\n.dark-mode blockquote.quote-olive h1,\n.dark-mode blockquote.quote-olive h2,\n.dark-mode blockquote.quote-olive h3,\n.dark-mode blockquote.quote-olive h4,\n.dark-mode blockquote.quote-olive h5,\n.dark-mode blockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\n.dark-mode blockquote.quote-lime {\n  border-color: #01ff70;\n}\n\n.dark-mode blockquote.quote-lime h1,\n.dark-mode blockquote.quote-lime h2,\n.dark-mode blockquote.quote-lime h3,\n.dark-mode blockquote.quote-lime h4,\n.dark-mode blockquote.quote-lime h5,\n.dark-mode blockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\n.dark-mode blockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\n.dark-mode blockquote.quote-fuchsia h1,\n.dark-mode blockquote.quote-fuchsia h2,\n.dark-mode blockquote.quote-fuchsia h3,\n.dark-mode blockquote.quote-fuchsia h4,\n.dark-mode blockquote.quote-fuchsia h5,\n.dark-mode blockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\n.dark-mode blockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\n.dark-mode blockquote.quote-maroon h1,\n.dark-mode blockquote.quote-maroon h2,\n.dark-mode blockquote.quote-maroon h3,\n.dark-mode blockquote.quote-maroon h4,\n.dark-mode blockquote.quote-maroon h5,\n.dark-mode blockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\n.dark-mode blockquote.quote-blue {\n  border-color: #007bff;\n}\n\n.dark-mode blockquote.quote-blue h1,\n.dark-mode blockquote.quote-blue h2,\n.dark-mode blockquote.quote-blue h3,\n.dark-mode blockquote.quote-blue h4,\n.dark-mode blockquote.quote-blue h5,\n.dark-mode blockquote.quote-blue h6 {\n  color: #007bff;\n}\n\n.dark-mode blockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\n.dark-mode blockquote.quote-indigo h1,\n.dark-mode blockquote.quote-indigo h2,\n.dark-mode blockquote.quote-indigo h3,\n.dark-mode blockquote.quote-indigo h4,\n.dark-mode blockquote.quote-indigo h5,\n.dark-mode blockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\n.dark-mode blockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-purple h1,\n.dark-mode blockquote.quote-purple h2,\n.dark-mode blockquote.quote-purple h3,\n.dark-mode blockquote.quote-purple h4,\n.dark-mode blockquote.quote-purple h5,\n.dark-mode blockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\n.dark-mode blockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-pink h1,\n.dark-mode blockquote.quote-pink h2,\n.dark-mode blockquote.quote-pink h3,\n.dark-mode blockquote.quote-pink h4,\n.dark-mode blockquote.quote-pink h5,\n.dark-mode blockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\n.dark-mode blockquote.quote-red {\n  border-color: #dc3545;\n}\n\n.dark-mode blockquote.quote-red h1,\n.dark-mode blockquote.quote-red h2,\n.dark-mode blockquote.quote-red h3,\n.dark-mode blockquote.quote-red h4,\n.dark-mode blockquote.quote-red h5,\n.dark-mode blockquote.quote-red h6 {\n  color: #dc3545;\n}\n\n.dark-mode blockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-orange h1,\n.dark-mode blockquote.quote-orange h2,\n.dark-mode blockquote.quote-orange h3,\n.dark-mode blockquote.quote-orange h4,\n.dark-mode blockquote.quote-orange h5,\n.dark-mode blockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\n.dark-mode blockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\n.dark-mode blockquote.quote-yellow h1,\n.dark-mode blockquote.quote-yellow h2,\n.dark-mode blockquote.quote-yellow h3,\n.dark-mode blockquote.quote-yellow h4,\n.dark-mode blockquote.quote-yellow h5,\n.dark-mode blockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\n.dark-mode blockquote.quote-green {\n  border-color: #28a745;\n}\n\n.dark-mode blockquote.quote-green h1,\n.dark-mode blockquote.quote-green h2,\n.dark-mode blockquote.quote-green h3,\n.dark-mode blockquote.quote-green h4,\n.dark-mode blockquote.quote-green h5,\n.dark-mode blockquote.quote-green h6 {\n  color: #28a745;\n}\n\n.dark-mode blockquote.quote-teal {\n  border-color: #20c997;\n}\n\n.dark-mode blockquote.quote-teal h1,\n.dark-mode blockquote.quote-teal h2,\n.dark-mode blockquote.quote-teal h3,\n.dark-mode blockquote.quote-teal h4,\n.dark-mode blockquote.quote-teal h5,\n.dark-mode blockquote.quote-teal h6 {\n  color: #20c997;\n}\n\n.dark-mode blockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-cyan h1,\n.dark-mode blockquote.quote-cyan h2,\n.dark-mode blockquote.quote-cyan h3,\n.dark-mode blockquote.quote-cyan h4,\n.dark-mode blockquote.quote-cyan h5,\n.dark-mode blockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\n.dark-mode blockquote.quote-white {\n  border-color: #fff;\n}\n\n.dark-mode blockquote.quote-white h1,\n.dark-mode blockquote.quote-white h2,\n.dark-mode blockquote.quote-white h3,\n.dark-mode blockquote.quote-white h4,\n.dark-mode blockquote.quote-white h5,\n.dark-mode blockquote.quote-white h6 {\n  color: #fff;\n}\n\n.dark-mode blockquote.quote-gray {\n  border-color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray h1,\n.dark-mode blockquote.quote-gray h2,\n.dark-mode blockquote.quote-gray h3,\n.dark-mode blockquote.quote-gray h4,\n.dark-mode blockquote.quote-gray h5,\n.dark-mode blockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\n.dark-mode blockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\n.dark-mode blockquote.quote-gray-dark h1,\n.dark-mode blockquote.quote-gray-dark h2,\n.dark-mode blockquote.quote-gray-dark h3,\n.dark-mode blockquote.quote-gray-dark h4,\n.dark-mode blockquote.quote-gray-dark h5,\n.dark-mode blockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.dark-mode .close,\n.dark-mode .mailbox-attachment-close {\n  color: #adb5bd;\n  text-shadow: 0 1px 0 #495057;\n}\n\n.dark-mode .tab-custom-content {\n  border-color: #6c757d;\n}\n\n.dark-mode .list-group-item {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold,\n.text-bold.table td,\n.text-bold.table th {\n  font-weight: 700;\n}\n\n.text-xs {\n  font-size: 0.75rem !important;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-md {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-lightblue {\n  color: #3c8dbc !important;\n}\n\n.text-navy {\n  color: #001f3f !important;\n}\n\n.text-olive {\n  color: #3d9970 !important;\n}\n\n.text-lime {\n  color: #01ff70 !important;\n}\n\n.text-fuchsia {\n  color: #f012be !important;\n}\n\n.text-maroon {\n  color: #d81b60 !important;\n}\n\n.text-blue {\n  color: #007bff !important;\n}\n\n.text-indigo {\n  color: #6610f2 !important;\n}\n\n.text-purple {\n  color: #6f42c1 !important;\n}\n\n.text-pink {\n  color: #e83e8c !important;\n}\n\n.text-red {\n  color: #dc3545 !important;\n}\n\n.text-orange {\n  color: #fd7e14 !important;\n}\n\n.text-yellow {\n  color: #ffc107 !important;\n}\n\n.text-green {\n  color: #28a745 !important;\n}\n\n.text-teal {\n  color: #20c997 !important;\n}\n\n.text-cyan {\n  color: #17a2b8 !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-gray {\n  color: #6c757d !important;\n}\n\n.text-gray-dark {\n  color: #343a40 !important;\n}\n\n.dark-mode .text-muted {\n  color: #adb5bd !important;\n}\n\n.dark-mode .text-lightblue {\n  color: #86bad8 !important;\n}\n\n.dark-mode .text-navy {\n  color: #002c59 !important;\n}\n\n.dark-mode .text-olive {\n  color: #74c8a3 !important;\n}\n\n.dark-mode .text-lime {\n  color: #67ffa9 !important;\n}\n\n.dark-mode .text-fuchsia {\n  color: #f672d8 !important;\n}\n\n.dark-mode .text-maroon {\n  color: #ed6c9b !important;\n}\n\n.dark-mode .text-blue {\n  color: #3f6791 !important;\n}\n\n.dark-mode .text-indigo {\n  color: #6610f2 !important;\n}\n\n.dark-mode .text-purple {\n  color: #6f42c1 !important;\n}\n\n.dark-mode .text-pink {\n  color: #e83e8c !important;\n}\n\n.dark-mode .text-red {\n  color: #e74c3c !important;\n}\n\n.dark-mode .text-orange {\n  color: #fd7e14 !important;\n}\n\n.dark-mode .text-yellow {\n  color: #f39c12 !important;\n}\n\n.dark-mode .text-green {\n  color: #00bc8c !important;\n}\n\n.dark-mode .text-teal {\n  color: #20c997 !important;\n}\n\n.dark-mode .text-cyan {\n  color: #3498db !important;\n}\n\n.dark-mode .text-white {\n  color: #fff !important;\n}\n\n.dark-mode .text-gray {\n  color: #6c757d !important;\n}\n\n.dark-mode .text-gray-dark {\n  color: #343a40 !important;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\n.bg-primary,\n.bg-primary > a {\n  color: #fff !important;\n}\n\n.bg-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #fff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\n.bg-success,\n.bg-success > a {\n  color: #fff !important;\n}\n\n.bg-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\n.bg-info,\n.bg-info > a {\n  color: #fff !important;\n}\n\n.bg-info.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\n.bg-warning,\n.bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.bg-warning.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\n.bg-danger,\n.bg-danger > a {\n  color: #fff !important;\n}\n\n.bg-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #fff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-lightblue {\n  background-color: #3c8dbc !important;\n}\n\n.bg-lightblue,\n.bg-lightblue > a {\n  color: #fff !important;\n}\n\n.bg-lightblue.btn:hover {\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {\n  background-color: #307095 !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-navy {\n  background-color: #001f3f !important;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #fff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {\n  background-color: #00060c !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-olive {\n  background-color: #3d9970 !important;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #fff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {\n  background-color: #2e7555 !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-lime {\n  background-color: #01ff70 !important;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {\n  background-color: #00cd5a !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be !important;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #fff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  background-color: #c30c9a !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-maroon {\n  background-color: #d81b60 !important;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #fff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {\n  background-color: #ab154c !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-blue {\n  background-color: #007bff !important;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #fff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {\n  background-color: #0062cc !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #fff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #fff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #fff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-red {\n  background-color: #dc3545 !important;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #fff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {\n  background-color: #bd2130 !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-yellow {\n  background-color: #ffc107 !important;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {\n  background-color: #d39e00 !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-green {\n  background-color: #28a745 !important;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #fff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {\n  background-color: #1e7e34 !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-teal {\n  background-color: #20c997 !important;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #fff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8 !important;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #fff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {\n  background-color: #117a8b !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gray {\n  background-color: #6c757d !important;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #fff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1f2d3d;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1f2d3d !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #fff !important;\n}\n\n.bg-white {\n  background-color: #fff;\n  color: #1f2d3d !important;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.bg-gradient-lightblue {\n  background: #3c8dbc linear-gradient(180deg, #599ec6, #3c8dbc) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-lightblue.btn.disabled, .bg-gradient-lightblue.btn:disabled, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lightblue.btn:hover {\n  background: #3c8dbc linear-gradient(180deg, #518cad, #33779f) repeat-x !important;\n  border-color: #307095;\n  color: #ececec;\n}\n\n.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .bg-gradient-lightblue.btn:active, .bg-gradient-lightblue.btn.active {\n  background: #3c8dbc linear-gradient(180deg, #4f85a5, #307095) repeat-x !important;\n  border-color: #2d698c;\n  color: #fff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #001f3f linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n  border-color: #00060c;\n  color: #ececec;\n}\n\n.bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #001f3f linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n  border-color: black;\n  color: #fff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #3d9970 linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n  border-color: #2e7555;\n  color: #ececec;\n}\n\n.bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #3d9970 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n  border-color: #2b6b4f;\n  color: #fff;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #01ff70 linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n  border-color: #00cd5a;\n  color: #121a24;\n}\n\n.bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #01ff70 linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n  border-color: #00c054;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #f012be linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n  border-color: #c30c9a;\n  color: #ececec;\n}\n\n.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #f012be linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n  border-color: #b70c90;\n  color: #fff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #d81b60 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n  border-color: #ab154c;\n  color: #ececec;\n}\n\n.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #d81b60 linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n  border-color: #9f1447;\n  color: #fff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #007bff linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n  border-color: #0062cc;\n  color: #ececec;\n}\n\n.bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #007bff linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n  border-color: #005cbf;\n  color: #fff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #dc3545 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n  border-color: #bd2130;\n  color: #ececec;\n}\n\n.bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #dc3545 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n  border-color: #b21f2d;\n  color: #fff;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #ffc107 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n  border-color: #d39e00;\n  color: #121a24;\n}\n\n.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #ffc107 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n  border-color: #c69500;\n  color: #1f2d3d;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #28a745 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n  border-color: #1e7e34;\n  color: #ececec;\n}\n\n.bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #28a745 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n  border-color: #1c7430;\n  color: #fff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #17a2b8 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n  border-color: #117a8b;\n  color: #ececec;\n}\n\n.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #17a2b8 linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n  border-color: #10707f;\n  color: #fff;\n}\n\n.bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n[class^=\"bg-\"].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n\n.accent-primary .btn-link,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-primary .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-primary .btn-link:hover,\n.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-primary .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-primary .dropdown-item:active, .accent-primary .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-primary .custom-select:focus,\n.accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-primary .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-primary .page-item.active a,\n.accent-primary .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-primary .page-item.disabled a,\n.accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-primary .page-item .page-link:hover, .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-secondary .btn-link,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-secondary .btn-link:hover,\n.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-secondary .dropdown-item:active, .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-secondary .custom-select:focus,\n.accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-secondary .page-item.active a,\n.accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-secondary .page-item.disabled a,\n.accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-success .btn-link,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-success .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-success .btn-link:hover,\n.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-success .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-success .dropdown-item:active, .accent-success .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-success .custom-select:focus,\n.accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-success .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-success .page-item.active a,\n.accent-success .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-success .page-item.disabled a,\n.accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-success .page-item .page-link:hover, .dark-mode.accent-success .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-info .btn-link,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-info .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-info .btn-link:hover,\n.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-info .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-info .dropdown-item:active, .accent-info .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-info .custom-select:focus,\n.accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-info .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-info .page-item.active a,\n.accent-info .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-info .page-item.disabled a,\n.accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-info .page-item .page-link:hover, .dark-mode.accent-info .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-warning .btn-link,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-warning .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-warning .btn-link:hover,\n.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-warning .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-warning .dropdown-item:active, .accent-warning .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-warning .custom-select:focus,\n.accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-warning .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-warning .page-item.active a,\n.accent-warning .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-warning .page-item.disabled a,\n.accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-warning .page-item .page-link:hover, .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-danger .btn-link,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-danger .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-danger .btn-link:hover,\n.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-danger .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-danger .dropdown-item:active, .accent-danger .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-danger .custom-select:focus,\n.accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-danger .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-danger .page-item.active a,\n.accent-danger .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-danger .page-item.disabled a,\n.accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-danger .page-item .page-link:hover, .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-light .btn-link,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.accent-light .btn-link:hover,\n.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.accent-light .dropdown-item:active, .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-light .custom-select:focus,\n.accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.accent-light .page-item.active a,\n.accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.accent-light .page-item.disabled a,\n.accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-light .page-item .page-link:hover, .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-dark .btn-link,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-dark .btn-link:hover,\n.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-dark .dropdown-item:active, .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-dark .custom-select:focus,\n.accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-dark .page-item.active a,\n.accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-dark .page-item.disabled a,\n.accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-dark .page-item .page-link:hover, .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.accent-lightblue .btn-link,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lightblue .nav-tabs .nav-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .btn-link:hover,\n.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lightblue .nav-tabs .nav-link:hover {\n  color: #296282;\n}\n\n.accent-lightblue .dropdown-item:active, .accent-lightblue .dropdown-item.active {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3c8dbc;\n  border-color: #23536f;\n}\n\n.accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lightblue .custom-select:focus,\n.accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #99c5de;\n}\n\n.accent-lightblue .page-item .page-link {\n  color: #3c8dbc;\n}\n\n.accent-lightblue .page-item.active a,\n.accent-lightblue .page-item.active .page-link {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.accent-lightblue .page-item.disabled a,\n.accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #4c99c6;\n}\n\n.accent-navy .btn-link,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-navy .nav-tabs .nav-link {\n  color: #001f3f;\n}\n\n.accent-navy .btn-link:hover,\n.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-navy .nav-tabs .nav-link:hover {\n  color: black;\n}\n\n.accent-navy .dropdown-item:active, .accent-navy .dropdown-item.active {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #001f3f;\n  border-color: black;\n}\n\n.accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-navy .custom-select:focus,\n.accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #005ebf;\n}\n\n.accent-navy .page-item .page-link {\n  color: #001f3f;\n}\n\n.accent-navy .page-item.active a,\n.accent-navy .page-item.active .page-link {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.accent-navy .page-item.disabled a,\n.accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-navy .page-item .page-link:hover, .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #002c59;\n}\n\n.accent-olive .btn-link,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-olive .nav-tabs .nav-link {\n  color: #3d9970;\n}\n\n.accent-olive .btn-link:hover,\n.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-olive .nav-tabs .nav-link:hover {\n  color: #276248;\n}\n\n.accent-olive .dropdown-item:active, .accent-olive .dropdown-item.active {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3d9970;\n  border-color: #20503b;\n}\n\n.accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-olive .custom-select:focus,\n.accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #87cfaf;\n}\n\n.accent-olive .page-item .page-link {\n  color: #3d9970;\n}\n\n.accent-olive .page-item.active a,\n.accent-olive .page-item.active .page-link {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.accent-olive .page-item.disabled a,\n.accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-olive .page-item .page-link:hover, .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #44ab7d;\n}\n\n.accent-lime .btn-link,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-lime .nav-tabs .nav-link {\n  color: #01ff70;\n}\n\n.accent-lime .btn-link:hover,\n.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-lime .nav-tabs .nav-link:hover {\n  color: #00b44e;\n}\n\n.accent-lime .dropdown-item:active, .accent-lime .dropdown-item.active {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #01ff70;\n  border-color: #009a43;\n}\n\n.accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-lime .custom-select:focus,\n.accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #81ffb8;\n}\n\n.accent-lime .page-item .page-link {\n  color: #01ff70;\n}\n\n.accent-lime .page-item.active a,\n.accent-lime .page-item.active .page-link {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #fff;\n}\n\n.accent-lime .page-item.disabled a,\n.accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-lime .page-item .page-link:hover, .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #1bff7e;\n}\n\n.accent-fuchsia .btn-link,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-fuchsia .nav-tabs .nav-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .btn-link:hover,\n.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #ab0b87;\n}\n\n.accent-fuchsia .dropdown-item:active, .accent-fuchsia .dropdown-item.active {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f012be;\n  border-color: #930974;\n}\n\n.accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-fuchsia .custom-select:focus,\n.accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f88adf;\n}\n\n.accent-fuchsia .page-item .page-link {\n  color: #f012be;\n}\n\n.accent-fuchsia .page-item.active a,\n.accent-fuchsia .page-item.active .page-link {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.accent-fuchsia .page-item.disabled a,\n.accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f22ac5;\n}\n\n.accent-maroon .btn-link,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-maroon .nav-tabs .nav-link {\n  color: #d81b60;\n}\n\n.accent-maroon .btn-link:hover,\n.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-maroon .nav-tabs .nav-link:hover {\n  color: #941342;\n}\n\n.accent-maroon .dropdown-item:active, .accent-maroon .dropdown-item.active {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #d81b60;\n  border-color: #7d1038;\n}\n\n.accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-maroon .custom-select:focus,\n.accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f083ab;\n}\n\n.accent-maroon .page-item .page-link {\n  color: #d81b60;\n}\n\n.accent-maroon .page-item.active a,\n.accent-maroon .page-item.active .page-link {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.accent-maroon .page-item.disabled a,\n.accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #e4286d;\n}\n\n.accent-blue .btn-link,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-blue .nav-tabs .nav-link {\n  color: #007bff;\n}\n\n.accent-blue .btn-link:hover,\n.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-blue .nav-tabs .nav-link:hover {\n  color: #0056b3;\n}\n\n.accent-blue .dropdown-item:active, .accent-blue .dropdown-item.active {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #007bff;\n  border-color: #004a99;\n}\n\n.accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-blue .custom-select:focus,\n.accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n}\n\n.accent-blue .page-item .page-link {\n  color: #007bff;\n}\n\n.accent-blue .page-item.active a,\n.accent-blue .page-item.active .page-link {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.accent-blue .page-item.disabled a,\n.accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-blue .page-item .page-link:hover, .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #1a88ff;\n}\n\n.accent-indigo .btn-link,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.accent-indigo .btn-link:hover,\n.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.accent-indigo .dropdown-item:active, .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-indigo .custom-select:focus,\n.accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.accent-indigo .page-item.active a,\n.accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.accent-indigo .page-item.disabled a,\n.accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.accent-purple .btn-link,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.accent-purple .btn-link:hover,\n.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.accent-purple .dropdown-item:active, .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-purple .custom-select:focus,\n.accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.accent-purple .page-item.active a,\n.accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.accent-purple .page-item.disabled a,\n.accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-purple .page-item .page-link:hover, .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.accent-pink .btn-link,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.accent-pink .btn-link:hover,\n.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.accent-pink .dropdown-item:active, .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-pink .custom-select:focus,\n.accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.accent-pink .page-item.active a,\n.accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.accent-pink .page-item.disabled a,\n.accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-pink .page-item .page-link:hover, .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.accent-red .btn-link,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-red .nav-tabs .nav-link {\n  color: #dc3545;\n}\n\n.accent-red .btn-link:hover,\n.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-red .nav-tabs .nav-link:hover {\n  color: #a71d2a;\n}\n\n.accent-red .dropdown-item:active, .accent-red .dropdown-item.active {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #dc3545;\n  border-color: #921925;\n}\n\n.accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-red .custom-select:focus,\n.accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #efa2a9;\n}\n\n.accent-red .page-item .page-link {\n  color: #dc3545;\n}\n\n.accent-red .page-item.active a,\n.accent-red .page-item.active .page-link {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.accent-red .page-item.disabled a,\n.accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-red .page-item .page-link:hover, .dark-mode.accent-red .page-item .page-link:focus {\n  color: #e04b59;\n}\n\n.accent-orange .btn-link,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.accent-orange .btn-link:hover,\n.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.accent-orange .dropdown-item:active, .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-orange .custom-select:focus,\n.accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.accent-orange .page-item.active a,\n.accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.accent-orange .page-item.disabled a,\n.accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-orange .page-item .page-link:hover, .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.accent-yellow .btn-link,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-yellow .nav-tabs .nav-link {\n  color: #ffc107;\n}\n\n.accent-yellow .btn-link:hover,\n.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-yellow .nav-tabs .nav-link:hover {\n  color: #ba8b00;\n}\n\n.accent-yellow .dropdown-item:active, .accent-yellow .dropdown-item.active {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ffc107;\n  border-color: #a07800;\n}\n\n.accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-yellow .custom-select:focus,\n.accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #ffe187;\n}\n\n.accent-yellow .page-item .page-link {\n  color: #ffc107;\n}\n\n.accent-yellow .page-item.active a,\n.accent-yellow .page-item.active .page-link {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #fff;\n}\n\n.accent-yellow .page-item.disabled a,\n.accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #ffc721;\n}\n\n.accent-green .btn-link,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-green .nav-tabs .nav-link {\n  color: #28a745;\n}\n\n.accent-green .btn-link:hover,\n.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-green .nav-tabs .nav-link:hover {\n  color: #19692c;\n}\n\n.accent-green .dropdown-item:active, .accent-green .dropdown-item.active {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #28a745;\n  border-color: #145523;\n}\n\n.accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-green .custom-select:focus,\n.accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #71dd8a;\n}\n\n.accent-green .page-item .page-link {\n  color: #28a745;\n}\n\n.accent-green .page-item.active a,\n.accent-green .page-item.active .page-link {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.accent-green .page-item.disabled a,\n.accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-green .page-item .page-link:hover, .dark-mode.accent-green .page-item .page-link:focus {\n  color: #2dbc4e;\n}\n\n.accent-teal .btn-link,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.accent-teal .btn-link:hover,\n.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.accent-teal .dropdown-item:active, .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-teal .custom-select:focus,\n.accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.accent-teal .page-item.active a,\n.accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.accent-teal .page-item.disabled a,\n.accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-teal .page-item .page-link:hover, .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.accent-cyan .btn-link,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-cyan .nav-tabs .nav-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .btn-link:hover,\n.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-cyan .nav-tabs .nav-link:hover {\n  color: #0f6674;\n}\n\n.accent-cyan .dropdown-item:active, .accent-cyan .dropdown-item.active {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #17a2b8;\n  border-color: #0c525d;\n}\n\n.accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-cyan .custom-select:focus,\n.accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #63d9ec;\n}\n\n.accent-cyan .page-item .page-link {\n  color: #17a2b8;\n}\n\n.accent-cyan .page-item.active a,\n.accent-cyan .page-item.active .page-link {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.accent-cyan .page-item.disabled a,\n.accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #1ab6cf;\n}\n\n.accent-white .btn-link,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.accent-white .btn-link:hover,\n.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.accent-white .dropdown-item:active, .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-white .custom-select:focus,\n.accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.accent-white .page-item.active a,\n.accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.accent-white .page-item.disabled a,\n.accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-white .page-item .page-link:hover, .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.accent-gray .btn-link,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.accent-gray .btn-link:hover,\n.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.accent-gray .dropdown-item:active, .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray .custom-select:focus,\n.accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.accent-gray .page-item.active a,\n.accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.accent-gray .page-item.disabled a,\n.accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray .page-item .page-link:hover, .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.accent-gray-dark .btn-link,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .btn-link:hover,\n.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.accent-gray-dark .dropdown-item:active, .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.accent-gray-dark .custom-select:focus,\n.accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.accent-gray-dark .page-item.active a,\n.accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.accent-gray-dark .page-item.disabled a,\n.accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n[class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n[class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n[class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #454d55 !important;\n  color: #fff !important;\n}\n\n.dark-mode .text-black,\n.dark-mode .text-dark,\n.dark-mode .link-black,\n.dark-mode .link-dark {\n  color: #ced4da;\n}\n\n.dark-mode .bg-primary {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-primary,\n.dark-mode .bg-primary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-primary.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-primary.btn:active, .dark-mode .bg-primary.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-secondary {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-secondary,\n.dark-mode .bg-secondary > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-secondary.btn:active, .dark-mode .bg-secondary.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-success {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-success,\n.dark-mode .bg-success > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-success.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-success.btn:active, .dark-mode .bg-success.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-info {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-info,\n.dark-mode .bg-info > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-info.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-info.btn:active, .dark-mode .bg-info.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-warning {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-warning,\n.dark-mode .bg-warning > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-warning.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-warning.btn:active, .dark-mode .bg-warning.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-danger {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-danger,\n.dark-mode .bg-danger > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-danger.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-danger.btn:active, .dark-mode .bg-danger.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-light {\n  background-color: #f8f9fa !important;\n}\n\n.dark-mode .bg-light,\n.dark-mode .bg-light > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-light.btn:active, .dark-mode .bg-light.btn.active {\n  background-color: #dae0e5 !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-dark,\n.dark-mode .bg-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-dark.btn:active, .dark-mode .bg-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-lightblue {\n  background-color: #86bad8 !important;\n}\n\n.dark-mode .bg-lightblue,\n.dark-mode .bg-lightblue > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lightblue.btn:hover {\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lightblue.btn:active, .dark-mode .bg-lightblue.btn.active {\n  background-color: #5fa4cc !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-navy {\n  background-color: #002c59 !important;\n}\n\n.dark-mode .bg-navy,\n.dark-mode .bg-navy > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-navy.btn:hover {\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-navy.btn:active, .dark-mode .bg-navy.btn.active {\n  background-color: #001226 !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-olive {\n  background-color: #74c8a3 !important;\n}\n\n.dark-mode .bg-olive,\n.dark-mode .bg-olive > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-olive.btn:hover {\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-olive.btn:active, .dark-mode .bg-olive.btn.active {\n  background-color: #50b98a !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-lime {\n  background-color: #67ffa9 !important;\n}\n\n.dark-mode .bg-lime,\n.dark-mode .bg-lime > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-lime.btn:hover {\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-lime.btn:active, .dark-mode .bg-lime.btn.active {\n  background-color: #34ff8d !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-fuchsia {\n  background-color: #f672d8 !important;\n}\n\n.dark-mode .bg-fuchsia,\n.dark-mode .bg-fuchsia > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-fuchsia.btn:hover {\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-fuchsia.btn:active, .dark-mode .bg-fuchsia.btn.active {\n  background-color: #f342cb !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-maroon {\n  background-color: #ed6c9b !important;\n}\n\n.dark-mode .bg-maroon,\n.dark-mode .bg-maroon > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-maroon.btn:hover {\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-maroon.btn:active, .dark-mode .bg-maroon.btn.active {\n  background-color: #e73f7c !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-blue {\n  background-color: #3f6791 !important;\n}\n\n.dark-mode .bg-blue,\n.dark-mode .bg-blue > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-blue.btn:hover {\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-blue.btn:active, .dark-mode .bg-blue.btn.active {\n  background-color: #304e6d !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-indigo {\n  background-color: #6610f2 !important;\n}\n\n.dark-mode .bg-indigo,\n.dark-mode .bg-indigo > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-indigo.btn:active, .dark-mode .bg-indigo.btn.active {\n  background-color: #510bc4 !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-purple {\n  background-color: #6f42c1 !important;\n}\n\n.dark-mode .bg-purple,\n.dark-mode .bg-purple > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-purple.btn:active, .dark-mode .bg-purple.btn.active {\n  background-color: #59339d !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-pink {\n  background-color: #e83e8c !important;\n}\n\n.dark-mode .bg-pink,\n.dark-mode .bg-pink > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-pink.btn:active, .dark-mode .bg-pink.btn.active {\n  background-color: #d91a72 !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-red {\n  background-color: #e74c3c !important;\n}\n\n.dark-mode .bg-red,\n.dark-mode .bg-red > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-red.btn:hover {\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-red.btn:active, .dark-mode .bg-red.btn.active {\n  background-color: #d62c1a !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-orange {\n  background-color: #fd7e14 !important;\n}\n\n.dark-mode .bg-orange,\n.dark-mode .bg-orange > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-orange.btn:active, .dark-mode .bg-orange.btn.active {\n  background-color: #dc6502 !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-yellow {\n  background-color: #f39c12 !important;\n}\n\n.dark-mode .bg-yellow,\n.dark-mode .bg-yellow > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-yellow.btn:hover {\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-yellow.btn:active, .dark-mode .bg-yellow.btn.active {\n  background-color: #c87f0a !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-green {\n  background-color: #00bc8c !important;\n}\n\n.dark-mode .bg-green,\n.dark-mode .bg-green > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-green.btn:hover {\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-green.btn:active, .dark-mode .bg-green.btn.active {\n  background-color: #008966 !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-teal {\n  background-color: #20c997 !important;\n}\n\n.dark-mode .bg-teal,\n.dark-mode .bg-teal > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-teal.btn:active, .dark-mode .bg-teal.btn.active {\n  background-color: #199d76 !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-cyan {\n  background-color: #3498db !important;\n}\n\n.dark-mode .bg-cyan,\n.dark-mode .bg-cyan > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-cyan.btn:hover {\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-cyan.btn:active, .dark-mode .bg-cyan.btn.active {\n  background-color: #217dbb !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-white {\n  background-color: #fff !important;\n}\n\n.dark-mode .bg-white,\n.dark-mode .bg-white > a {\n  color: #1f2d3d !important;\n}\n\n.dark-mode .bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-white.btn:active, .dark-mode .bg-white.btn.active {\n  background-color: #e6e6e6 !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gray {\n  background-color: #6c757d !important;\n}\n\n.dark-mode .bg-gray,\n.dark-mode .bg-gray > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray.btn:active, .dark-mode .bg-gray.btn.active {\n  background-color: #545b62 !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gray-dark {\n  background-color: #343a40 !important;\n}\n\n.dark-mode .bg-gray-dark,\n.dark-mode .bg-gray-dark > a {\n  color: #fff !important;\n}\n\n.dark-mode .bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gray-dark.btn:active, .dark-mode .bg-gray-dark.btn.active {\n  background-color: #1d2124 !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-primary.btn.disabled, .dark-mode .bg-gradient-primary.btn:disabled, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-primary.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-primary.btn:active, .dark-mode .bg-gradient-primary.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-secondary.btn.disabled, .dark-mode .bg-gradient-secondary.btn:disabled, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-secondary.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-secondary.btn:active, .dark-mode .bg-gradient-secondary.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-success.btn.disabled, .dark-mode .bg-gradient-success.btn:disabled, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-success.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-success.btn:active, .dark-mode .bg-gradient-success.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-info.btn.disabled, .dark-mode .bg-gradient-info.btn:disabled, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-info.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-info.btn:active, .dark-mode .bg-gradient-info.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-warning {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-warning.btn.disabled, .dark-mode .bg-gradient-warning.btn:disabled, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-warning.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-warning.btn:active, .dark-mode .bg-gradient-warning.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-danger.btn.disabled, .dark-mode .bg-gradient-danger.btn:disabled, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-danger.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-danger.btn:active, .dark-mode .bg-gradient-danger.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-light.btn.disabled, .dark-mode .bg-gradient-light.btn:disabled, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-light.btn:hover {\n  background: #f8f9fa linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n  border-color: #dae0e5;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-light.btn:active, .dark-mode .bg-gradient-light.btn.active {\n  background: #f8f9fa linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n  border-color: #d3d9df;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-dark.btn.disabled, .dark-mode .bg-gradient-dark.btn:disabled, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-dark.btn:active, .dark-mode .bg-gradient-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lightblue {\n  background: #86bad8 linear-gradient(180deg, #98c4de, #86bad8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lightblue.btn.disabled, .dark-mode .bg-gradient-lightblue.btn:disabled, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lightblue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:hover {\n  background: #86bad8 linear-gradient(180deg, #7fb6d6, #69a9cf) repeat-x !important;\n  border-color: #5fa4cc;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lightblue.btn:active, .dark-mode .bg-gradient-lightblue.btn.active {\n  background: #86bad8 linear-gradient(180deg, #77b2d4, #5fa4cc) repeat-x !important;\n  border-color: #559ec9;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy {\n  background: #002c59 linear-gradient(180deg, #264b71, #002c59) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-navy.btn.disabled, .dark-mode .bg-gradient-navy.btn:disabled, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-navy.btn:hover {\n  background: #002c59 linear-gradient(180deg, #263b51, #001932) repeat-x !important;\n  border-color: #001226;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-navy.btn:active, .dark-mode .bg-gradient-navy.btn.active {\n  background: #002c59 linear-gradient(180deg, #263646, #001226) repeat-x !important;\n  border-color: #000c19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-olive {\n  background: #74c8a3 linear-gradient(180deg, #89d0b0, #74c8a3) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-olive.btn.disabled, .dark-mode .bg-gradient-olive.btn:disabled, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-olive.btn:hover {\n  background: #74c8a3 linear-gradient(180deg, #72c7a1, #59bd90) repeat-x !important;\n  border-color: #50b98a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-olive.btn:active, .dark-mode .bg-gradient-olive.btn.active {\n  background: #74c8a3 linear-gradient(180deg, #6ac49c, #50b98a) repeat-x !important;\n  border-color: #48b484;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-lime {\n  background: #67ffa9 linear-gradient(180deg, #7effb6, #67ffa9) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-lime.btn.disabled, .dark-mode .bg-gradient-lime.btn:disabled, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-lime.btn:hover {\n  background: #67ffa9 linear-gradient(180deg, #5dffa4, #41ff94) repeat-x !important;\n  border-color: #34ff8d;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-lime.btn:active, .dark-mode .bg-gradient-lime.btn.active {\n  background: #67ffa9 linear-gradient(180deg, #52ff9e, #34ff8d) repeat-x !important;\n  border-color: #27ff86;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia {\n  background: #f672d8 linear-gradient(180deg, #f787de, #f672d8) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn.disabled, .dark-mode .bg-gradient-fuchsia.btn:disabled, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:hover {\n  background: #f672d8 linear-gradient(180deg, #f569d6, #f44ece) repeat-x !important;\n  border-color: #f342cb;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-fuchsia.btn:active, .dark-mode .bg-gradient-fuchsia.btn.active {\n  background: #f672d8 linear-gradient(180deg, #f55ed3, #f342cb) repeat-x !important;\n  border-color: #f236c8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-maroon {\n  background: #ed6c9b linear-gradient(180deg, #ef82aa, #ed6c9b) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-maroon.btn.disabled, .dark-mode .bg-gradient-maroon.btn:disabled, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-maroon.btn:hover {\n  background: #ed6c9b linear-gradient(180deg, #ec6596, #e84a84) repeat-x !important;\n  border-color: #e73f7c;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-maroon.btn:active, .dark-mode .bg-gradient-maroon.btn.active {\n  background: #ed6c9b linear-gradient(180deg, #eb5c90, #e73f7c) repeat-x !important;\n  border-color: #e63475;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue {\n  background: #3f6791 linear-gradient(180deg, #5c7ea2, #3f6791) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-blue.btn.disabled, .dark-mode .bg-gradient-blue.btn:disabled, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-blue.btn:hover {\n  background: #3f6791 linear-gradient(180deg, #526e8b, #335476) repeat-x !important;\n  border-color: #304e6d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-blue.btn:active, .dark-mode .bg-gradient-blue.btn.active {\n  background: #3f6791 linear-gradient(180deg, #4f6883, #304e6d) repeat-x !important;\n  border-color: #2c4765;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-indigo.btn.disabled, .dark-mode .bg-gradient-indigo.btn:disabled, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-indigo.btn:hover {\n  background: #6610f2 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n  border-color: #510bc4;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-indigo.btn:active, .dark-mode .bg-gradient-indigo.btn.active {\n  background: #6610f2 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n  border-color: #4c0ab8;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-purple.btn.disabled, .dark-mode .bg-gradient-purple.btn:disabled, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-purple.btn:hover {\n  background: #6f42c1 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n  border-color: #59339d;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-purple.btn:active, .dark-mode .bg-gradient-purple.btn.active {\n  background: #6f42c1 linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n  border-color: #533093;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-pink.btn.disabled, .dark-mode .bg-gradient-pink.btn:disabled, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-pink.btn:hover {\n  background: #e83e8c linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n  border-color: #d91a72;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-pink.btn:active, .dark-mode .bg-gradient-pink.btn.active {\n  background: #e83e8c linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n  border-color: #ce196c;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red {\n  background: #e74c3c linear-gradient(180deg, #eb6759, #e74c3c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-red.btn.disabled, .dark-mode .bg-gradient-red.btn:disabled, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-red.btn:hover {\n  background: #e74c3c linear-gradient(180deg, #e64d3e, #e12e1c) repeat-x !important;\n  border-color: #d62c1a;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-red.btn:active, .dark-mode .bg-gradient-red.btn.active {\n  background: #e74c3c linear-gradient(180deg, #dc4c3d, #d62c1a) repeat-x !important;\n  border-color: #ca2a19;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-orange.btn.disabled, .dark-mode .bg-gradient-orange.btn:disabled, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-orange.btn:hover {\n  background: #fd7e14 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n  border-color: #dc6502;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-orange.btn:active, .dark-mode .bg-gradient-orange.btn.active {\n  background: #fd7e14 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n  border-color: #cf5f02;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-yellow {\n  background: #f39c12 linear-gradient(180deg, #f5ab36, #f39c12) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-yellow.btn.disabled, .dark-mode .bg-gradient-yellow.btn:disabled, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-yellow.btn:hover {\n  background: #f39c12 linear-gradient(180deg, #da982f, #d4860b) repeat-x !important;\n  border-color: #c87f0a;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-yellow.btn:active, .dark-mode .bg-gradient-yellow.btn.active {\n  background: #f39c12 linear-gradient(180deg, #d0922f, #c87f0a) repeat-x !important;\n  border-color: #bc770a;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green {\n  background: #00bc8c linear-gradient(180deg, #26c69d, #00bc8c) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-green.btn.disabled, .dark-mode .bg-gradient-green.btn:disabled, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-green.btn:hover {\n  background: #00bc8c linear-gradient(180deg, #26a685, #009670) repeat-x !important;\n  border-color: #008966;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-green.btn:active, .dark-mode .bg-gradient-green.btn.active {\n  background: #00bc8c linear-gradient(180deg, #269b7d, #008966) repeat-x !important;\n  border-color: #007c5d;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-teal.btn.disabled, .dark-mode .bg-gradient-teal.btn:disabled, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-teal.btn:hover {\n  background: #20c997 linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n  border-color: #199d76;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-teal.btn:active, .dark-mode .bg-gradient-teal.btn.active {\n  background: #20c997 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n  border-color: #17926e;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan {\n  background: #3498db linear-gradient(180deg, #52a7e0, #3498db) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-cyan.btn.disabled, .dark-mode .bg-gradient-cyan.btn:disabled, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-cyan.btn:hover {\n  background: #3498db linear-gradient(180deg, #4497ce, #2384c6) repeat-x !important;\n  border-color: #217dbb;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-cyan.btn:active, .dark-mode .bg-gradient-cyan.btn.active {\n  background: #3498db linear-gradient(180deg, #4291c5, #217dbb) repeat-x !important;\n  border-color: #1f76b0;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-white {\n  background: #fff linear-gradient(180deg, white, #fff) repeat-x !important;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-white.btn.disabled, .dark-mode .bg-gradient-white.btn:disabled, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-white.btn:hover {\n  background: #fff linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n  border-color: #e6e6e6;\n  color: #121a24;\n}\n\n.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-white.btn:active, .dark-mode .bg-gradient-white.btn.active {\n  background: #fff linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n  border-color: #dfdfdf;\n  color: #1f2d3d;\n}\n\n.dark-mode .bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray.btn.disabled, .dark-mode .bg-gradient-gray.btn:disabled, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray.btn:hover {\n  background: #6c757d linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n  border-color: #545b62;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray.btn:active, .dark-mode .bg-gradient-gray.btn.active {\n  background: #6c757d linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n  border-color: #4e555b;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n  color: #fff;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn.disabled, .dark-mode .bg-gradient-gray-dark.btn:disabled, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:hover {\n  background: #343a40 linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n  border-color: #1d2124;\n  color: #ececec;\n}\n\n.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active, .dark-mode .bg-gradient-gray-dark.btn:active, .dark-mode .bg-gradient-gray-dark.btn.active {\n  background: #343a40 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n  border-color: #171a1d;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .btn-link,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-primary .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .btn-link:hover,\n.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-primary .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-primary .dropdown-item:active, .dark-mode .accent-primary .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-primary .custom-select:focus,\n.dark-mode .accent-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-primary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-primary .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-primary .page-item.active a,\n.dark-mode .accent-primary .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-primary .page-item.disabled a,\n.dark-mode .accent-primary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-primary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-primary .page-item .page-link:hover, .dark-mode .dark-mode.accent-primary .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-secondary .btn-link,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-secondary .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .btn-link:hover,\n.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-secondary .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-secondary .dropdown-item:active, .dark-mode .accent-secondary .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-secondary .custom-select:focus,\n.dark-mode .accent-secondary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-secondary .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-secondary .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary .page-item.active a,\n.dark-mode .accent-secondary .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-secondary .page-item.disabled a,\n.dark-mode .accent-secondary .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-secondary [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover, .dark-mode .dark-mode.accent-secondary .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-success .btn-link,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-success .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .btn-link:hover,\n.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-success .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-success .dropdown-item:active, .dark-mode .accent-success .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-success .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-success .custom-select:focus,\n.dark-mode .accent-success .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-success .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-success .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-success .page-item.active a,\n.dark-mode .accent-success .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-success .page-item.disabled a,\n.dark-mode .accent-success .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-success [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-success .page-item .page-link:hover, .dark-mode .dark-mode.accent-success .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-info .btn-link,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-info .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .btn-link:hover,\n.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-info .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-info .dropdown-item:active, .dark-mode .accent-info .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-info .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-info .custom-select:focus,\n.dark-mode .accent-info .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-info .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-info .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-info .page-item.active a,\n.dark-mode .accent-info .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-info .page-item.disabled a,\n.dark-mode .accent-info .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-info [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-info .page-item .page-link:hover, .dark-mode .dark-mode.accent-info .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-warning .btn-link,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-warning .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .btn-link:hover,\n.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-warning .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-warning .dropdown-item:active, .dark-mode .accent-warning .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-warning .custom-select:focus,\n.dark-mode .accent-warning .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-warning .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-warning .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-warning .page-item.active a,\n.dark-mode .accent-warning .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-warning .page-item.disabled a,\n.dark-mode .accent-warning .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-warning [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-warning .page-item .page-link:hover, .dark-mode .dark-mode.accent-warning .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-danger .btn-link,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-danger .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .btn-link:hover,\n.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-danger .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-danger .dropdown-item:active, .dark-mode .accent-danger .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-danger .custom-select:focus,\n.dark-mode .accent-danger .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-danger .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-danger .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-danger .page-item.active a,\n.dark-mode .accent-danger .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-danger .page-item.disabled a,\n.dark-mode .accent-danger .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-danger [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-danger .page-item .page-link:hover, .dark-mode .dark-mode.accent-danger .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-light .btn-link,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-light .nav-tabs .nav-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .btn-link:hover,\n.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-light .nav-tabs .nav-link:hover {\n  color: #cbd3da;\n}\n\n.dark-mode .accent-light .dropdown-item:active, .dark-mode .accent-light .dropdown-item.active {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.dark-mode .accent-light .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-light .custom-select:focus,\n.dark-mode .accent-light .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-light .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-light .page-item .page-link {\n  color: #f8f9fa;\n}\n\n.dark-mode .accent-light .page-item.active a,\n.dark-mode .accent-light .page-item.active .page-link {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #fff;\n}\n\n.dark-mode .accent-light .page-item.disabled a,\n.dark-mode .accent-light .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-light [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-light .page-item .page-link:hover, .dark-mode .dark-mode.accent-light .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-dark .btn-link,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .btn-link:hover,\n.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-dark .dropdown-item:active, .dark-mode .accent-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-dark .custom-select:focus,\n.dark-mode .accent-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark .page-item.active a,\n.dark-mode .accent-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-dark .page-item.disabled a,\n.dark-mode .accent-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-primary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-secondary {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-success {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-info {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-danger {\n  color: #fff;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-light {\n  color: #1f2d3d;\n}\n\n.dark-mode [class*=\"accent-\"] a.btn-dark {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .btn-link,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lightblue .nav-tabs .nav-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .btn-link:hover,\n.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lightblue .nav-tabs .nav-link:hover {\n  color: #4c99c6;\n}\n\n.dark-mode .accent-lightblue .dropdown-item:active, .dark-mode .accent-lightblue .dropdown-item.active {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #86bad8;\n  border-color: #3c8dbc;\n}\n\n.dark-mode .accent-lightblue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lightblue .custom-select:focus,\n.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lightblue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .accent-lightblue .page-item .page-link {\n  color: #86bad8;\n}\n\n.dark-mode .accent-lightblue .page-item.active a,\n.dark-mode .accent-lightblue .page-item.active .page-link {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue .page-item.disabled a,\n.dark-mode .accent-lightblue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lightblue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover, .dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus {\n  color: #99c5de;\n}\n\n.dark-mode .accent-navy .btn-link,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-navy .nav-tabs .nav-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .btn-link:hover,\n.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-navy .nav-tabs .nav-link:hover {\n  color: #00060c;\n}\n\n.dark-mode .accent-navy .dropdown-item:active, .dark-mode .accent-navy .dropdown-item.active {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #002c59;\n  border-color: black;\n}\n\n.dark-mode .accent-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-navy .custom-select:focus,\n.dark-mode .accent-navy .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-navy .custom-file-input:focus ~ .custom-file-label {\n  border-color: #006ad8;\n}\n\n.dark-mode .accent-navy .page-item .page-link {\n  color: #002c59;\n}\n\n.dark-mode .accent-navy .page-item.active a,\n.dark-mode .accent-navy .page-item.active .page-link {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .accent-navy .page-item.disabled a,\n.dark-mode .accent-navy .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-navy [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-navy .page-item .page-link:hover, .dark-mode .dark-mode.accent-navy .page-item .page-link:focus {\n  color: #003872;\n}\n\n.dark-mode .accent-olive .btn-link,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-olive .nav-tabs .nav-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .btn-link:hover,\n.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-olive .nav-tabs .nav-link:hover {\n  color: #44ab7d;\n}\n\n.dark-mode .accent-olive .dropdown-item:active, .dark-mode .accent-olive .dropdown-item.active {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #74c8a3;\n  border-color: #3d9970;\n}\n\n.dark-mode .accent-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-olive .custom-select:focus,\n.dark-mode .accent-olive .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-olive .custom-file-input:focus ~ .custom-file-label {\n  border-color: #cfecdf;\n}\n\n.dark-mode .accent-olive .page-item .page-link {\n  color: #74c8a3;\n}\n\n.dark-mode .accent-olive .page-item.active a,\n.dark-mode .accent-olive .page-item.active .page-link {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #fff;\n}\n\n.dark-mode .accent-olive .page-item.disabled a,\n.dark-mode .accent-olive .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-olive [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-olive .page-item .page-link:hover, .dark-mode .dark-mode.accent-olive .page-item .page-link:focus {\n  color: #87cfaf;\n}\n\n.dark-mode .accent-lime .btn-link,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-lime .nav-tabs .nav-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .btn-link:hover,\n.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-lime .nav-tabs .nav-link:hover {\n  color: #1bff7e;\n}\n\n.dark-mode .accent-lime .dropdown-item:active, .dark-mode .accent-lime .dropdown-item.active {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #67ffa9;\n  border-color: #01ff70;\n}\n\n.dark-mode .accent-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-lime .custom-select:focus,\n.dark-mode .accent-lime .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-lime .custom-file-input:focus ~ .custom-file-label {\n  border-color: #e7fff1;\n}\n\n.dark-mode .accent-lime .page-item .page-link {\n  color: #67ffa9;\n}\n\n.dark-mode .accent-lime .page-item.active a,\n.dark-mode .accent-lime .page-item.active .page-link {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #fff;\n}\n\n.dark-mode .accent-lime .page-item.disabled a,\n.dark-mode .accent-lime .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-lime [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-lime .page-item .page-link:hover, .dark-mode .dark-mode.accent-lime .page-item .page-link:focus {\n  color: #81ffb8;\n}\n\n.dark-mode .accent-fuchsia .btn-link,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-fuchsia .nav-tabs .nav-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .btn-link:hover,\n.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover {\n  color: #f22ac5;\n}\n\n.dark-mode .accent-fuchsia .dropdown-item:active, .dark-mode .accent-fuchsia .dropdown-item.active {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f672d8;\n  border-color: #f012be;\n}\n\n.dark-mode .accent-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-fuchsia .custom-select:focus,\n.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-fuchsia .custom-file-input:focus ~ .custom-file-label {\n  border-color: #feeaf9;\n}\n\n.dark-mode .accent-fuchsia .page-item .page-link {\n  color: #f672d8;\n}\n\n.dark-mode .accent-fuchsia .page-item.active a,\n.dark-mode .accent-fuchsia .page-item.active .page-link {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia .page-item.disabled a,\n.dark-mode .accent-fuchsia .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-fuchsia [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover, .dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus {\n  color: #f88adf;\n}\n\n.dark-mode .accent-maroon .btn-link,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-maroon .nav-tabs .nav-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .btn-link:hover,\n.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-maroon .nav-tabs .nav-link:hover {\n  color: #e4286d;\n}\n\n.dark-mode .accent-maroon .dropdown-item:active, .dark-mode .accent-maroon .dropdown-item.active {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #ed6c9b;\n  border-color: #d81b60;\n}\n\n.dark-mode .accent-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-maroon .custom-select:focus,\n.dark-mode .accent-maroon .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-maroon .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fbdee8;\n}\n\n.dark-mode .accent-maroon .page-item .page-link {\n  color: #ed6c9b;\n}\n\n.dark-mode .accent-maroon .page-item.active a,\n.dark-mode .accent-maroon .page-item.active .page-link {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #fff;\n}\n\n.dark-mode .accent-maroon .page-item.disabled a,\n.dark-mode .accent-maroon .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-maroon [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover, .dark-mode .dark-mode.accent-maroon .page-item .page-link:focus {\n  color: #f083ab;\n}\n\n.dark-mode .accent-blue .btn-link,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-blue .nav-tabs .nav-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .btn-link:hover,\n.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-blue .nav-tabs .nav-link:hover {\n  color: #28415c;\n}\n\n.dark-mode .accent-blue .dropdown-item:active, .dark-mode .accent-blue .dropdown-item.active {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3f6791;\n  border-color: #20344a;\n}\n\n.dark-mode .accent-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-blue .custom-select:focus,\n.dark-mode .accent-blue .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-blue .custom-file-input:focus ~ .custom-file-label {\n  border-color: #85a7ca;\n}\n\n.dark-mode .accent-blue .page-item .page-link {\n  color: #3f6791;\n}\n\n.dark-mode .accent-blue .page-item.active a,\n.dark-mode .accent-blue .page-item.active .page-link {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .accent-blue .page-item.disabled a,\n.dark-mode .accent-blue .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-blue [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-blue .page-item .page-link:hover, .dark-mode .dark-mode.accent-blue .page-item .page-link:focus {\n  color: #4774a3;\n}\n\n.dark-mode .accent-indigo .btn-link,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-indigo .nav-tabs .nav-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .btn-link:hover,\n.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-indigo .nav-tabs .nav-link:hover {\n  color: #4709ac;\n}\n\n.dark-mode .accent-indigo .dropdown-item:active, .dark-mode .accent-indigo .dropdown-item.active {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6610f2;\n  border-color: #3d0894;\n}\n\n.dark-mode .accent-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-indigo .custom-select:focus,\n.dark-mode .accent-indigo .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-indigo .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b389f9;\n}\n\n.dark-mode .accent-indigo .page-item .page-link {\n  color: #6610f2;\n}\n\n.dark-mode .accent-indigo .page-item.active a,\n.dark-mode .accent-indigo .page-item.active .page-link {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .accent-indigo .page-item.disabled a,\n.dark-mode .accent-indigo .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-indigo [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover, .dark-mode .dark-mode.accent-indigo .page-item .page-link:focus {\n  color: #7528f3;\n}\n\n.dark-mode .accent-purple .btn-link,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-purple .nav-tabs .nav-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .btn-link:hover,\n.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-purple .nav-tabs .nav-link:hover {\n  color: #4e2d89;\n}\n\n.dark-mode .accent-purple .dropdown-item:active, .dark-mode .accent-purple .dropdown-item.active {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6f42c1;\n  border-color: #432776;\n}\n\n.dark-mode .accent-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-purple .custom-select:focus,\n.dark-mode .accent-purple .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-purple .custom-file-input:focus ~ .custom-file-label {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .accent-purple .page-item .page-link {\n  color: #6f42c1;\n}\n\n.dark-mode .accent-purple .page-item.active a,\n.dark-mode .accent-purple .page-item.active .page-link {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .accent-purple .page-item.disabled a,\n.dark-mode .accent-purple .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-purple [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-purple .page-item .page-link:hover, .dark-mode .dark-mode.accent-purple .page-item .page-link:focus {\n  color: #7e55c7;\n}\n\n.dark-mode .accent-pink .btn-link,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-pink .nav-tabs .nav-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .btn-link:hover,\n.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-pink .nav-tabs .nav-link:hover {\n  color: #c21766;\n}\n\n.dark-mode .accent-pink .dropdown-item:active, .dark-mode .accent-pink .dropdown-item.active {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e83e8c;\n  border-color: #ac145a;\n}\n\n.dark-mode .accent-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-pink .custom-select:focus,\n.dark-mode .accent-pink .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-pink .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .accent-pink .page-item .page-link {\n  color: #e83e8c;\n}\n\n.dark-mode .accent-pink .page-item.active a,\n.dark-mode .accent-pink .page-item.active .page-link {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .accent-pink .page-item.disabled a,\n.dark-mode .accent-pink .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-pink [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-pink .page-item .page-link:hover, .dark-mode .dark-mode.accent-pink .page-item .page-link:focus {\n  color: #eb559a;\n}\n\n.dark-mode .accent-red .btn-link,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-red .nav-tabs .nav-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .btn-link:hover,\n.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-red .nav-tabs .nav-link:hover {\n  color: #bf2718;\n}\n\n.dark-mode .accent-red .dropdown-item:active, .dark-mode .accent-red .dropdown-item.active {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #e74c3c;\n  border-color: #a82315;\n}\n\n.dark-mode .accent-red .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-red .custom-select:focus,\n.dark-mode .accent-red .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-red .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .accent-red .page-item .page-link {\n  color: #e74c3c;\n}\n\n.dark-mode .accent-red .page-item.active a,\n.dark-mode .accent-red .page-item.active .page-link {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .accent-red .page-item.disabled a,\n.dark-mode .accent-red .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-red [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-red .page-item .page-link:hover, .dark-mode .dark-mode.accent-red .page-item .page-link:focus {\n  color: #ea6153;\n}\n\n.dark-mode .accent-orange .btn-link,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-orange .nav-tabs .nav-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .btn-link:hover,\n.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-orange .nav-tabs .nav-link:hover {\n  color: #c35a02;\n}\n\n.dark-mode .accent-orange .dropdown-item:active, .dark-mode .accent-orange .dropdown-item.active {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.dark-mode .accent-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-orange .custom-select:focus,\n.dark-mode .accent-orange .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-orange .custom-file-input:focus ~ .custom-file-label {\n  border-color: #fec392;\n}\n\n.dark-mode .accent-orange .page-item .page-link {\n  color: #fd7e14;\n}\n\n.dark-mode .accent-orange .page-item.active a,\n.dark-mode .accent-orange .page-item.active .page-link {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #fff;\n}\n\n.dark-mode .accent-orange .page-item.disabled a,\n.dark-mode .accent-orange .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-orange [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-orange .page-item .page-link:hover, .dark-mode .dark-mode.accent-orange .page-item .page-link:focus {\n  color: #fd8c2d;\n}\n\n.dark-mode .accent-yellow .btn-link,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-yellow .nav-tabs .nav-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .btn-link:hover,\n.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-yellow .nav-tabs .nav-link:hover {\n  color: #b06f09;\n}\n\n.dark-mode .accent-yellow .dropdown-item:active, .dark-mode .accent-yellow .dropdown-item.active {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #f39c12;\n  border-color: #976008;\n}\n\n.dark-mode .accent-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-yellow .custom-select:focus,\n.dark-mode .accent-yellow .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-yellow .custom-file-input:focus ~ .custom-file-label {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .accent-yellow .page-item .page-link {\n  color: #f39c12;\n}\n\n.dark-mode .accent-yellow .page-item.active a,\n.dark-mode .accent-yellow .page-item.active .page-link {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #fff;\n}\n\n.dark-mode .accent-yellow .page-item.disabled a,\n.dark-mode .accent-yellow .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-yellow [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover, .dark-mode .dark-mode.accent-yellow .page-item .page-link:focus {\n  color: #f4a62a;\n}\n\n.dark-mode .accent-green .btn-link,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-green .nav-tabs .nav-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .btn-link:hover,\n.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-green .nav-tabs .nav-link:hover {\n  color: #007053;\n}\n\n.dark-mode .accent-green .dropdown-item:active, .dark-mode .accent-green .dropdown-item.active {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #00bc8c;\n  border-color: #005640;\n}\n\n.dark-mode .accent-green .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-green .custom-select:focus,\n.dark-mode .accent-green .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-green .custom-file-input:focus ~ .custom-file-label {\n  border-color: #3dffcd;\n}\n\n.dark-mode .accent-green .page-item .page-link {\n  color: #00bc8c;\n}\n\n.dark-mode .accent-green .page-item.active a,\n.dark-mode .accent-green .page-item.active .page-link {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .accent-green .page-item.disabled a,\n.dark-mode .accent-green .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-green [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-green .page-item .page-link:hover, .dark-mode .dark-mode.accent-green .page-item .page-link:focus {\n  color: #00d69f;\n}\n\n.dark-mode .accent-teal .btn-link,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-teal .nav-tabs .nav-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .btn-link:hover,\n.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-teal .nav-tabs .nav-link:hover {\n  color: #158765;\n}\n\n.dark-mode .accent-teal .dropdown-item:active, .dark-mode .accent-teal .dropdown-item.active {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #20c997;\n  border-color: #127155;\n}\n\n.dark-mode .accent-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-teal .custom-select:focus,\n.dark-mode .accent-teal .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-teal .custom-file-input:focus ~ .custom-file-label {\n  border-color: #7eeaca;\n}\n\n.dark-mode .accent-teal .page-item .page-link {\n  color: #20c997;\n}\n\n.dark-mode .accent-teal .page-item.active a,\n.dark-mode .accent-teal .page-item.active .page-link {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .accent-teal .page-item.disabled a,\n.dark-mode .accent-teal .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-teal [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-teal .page-item .page-link:hover, .dark-mode .dark-mode.accent-teal .page-item .page-link:focus {\n  color: #26dca6;\n}\n\n.dark-mode .accent-cyan .btn-link,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-cyan .nav-tabs .nav-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .btn-link:hover,\n.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-cyan .nav-tabs .nav-link:hover {\n  color: #1d6fa5;\n}\n\n.dark-mode .accent-cyan .dropdown-item:active, .dark-mode .accent-cyan .dropdown-item.active {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #3498db;\n  border-color: #196090;\n}\n\n.dark-mode .accent-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-cyan .custom-select:focus,\n.dark-mode .accent-cyan .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-cyan .custom-file-input:focus ~ .custom-file-label {\n  border-color: #a0cfee;\n}\n\n.dark-mode .accent-cyan .page-item .page-link {\n  color: #3498db;\n}\n\n.dark-mode .accent-cyan .page-item.active a,\n.dark-mode .accent-cyan .page-item.active .page-link {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .accent-cyan .page-item.disabled a,\n.dark-mode .accent-cyan .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-cyan [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover, .dark-mode .dark-mode.accent-cyan .page-item .page-link:focus {\n  color: #4aa3df;\n}\n\n.dark-mode .accent-white .btn-link,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-white .nav-tabs .nav-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .btn-link:hover,\n.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-white .nav-tabs .nav-link:hover {\n  color: #d9d9d9;\n}\n\n.dark-mode .accent-white .dropdown-item:active, .dark-mode .accent-white .dropdown-item.active {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #fff;\n  border-color: #cccccc;\n}\n\n.dark-mode .accent-white .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-white .custom-select:focus,\n.dark-mode .accent-white .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-white .custom-file-input:focus ~ .custom-file-label {\n  border-color: white;\n}\n\n.dark-mode .accent-white .page-item .page-link {\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.active a,\n.dark-mode .accent-white .page-item.active .page-link {\n  background-color: #fff;\n  border-color: #fff;\n  color: #fff;\n}\n\n.dark-mode .accent-white .page-item.disabled a,\n.dark-mode .accent-white .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-white [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-white .page-item .page-link:hover, .dark-mode .dark-mode.accent-white .page-item .page-link:focus {\n  color: white;\n}\n\n.dark-mode .accent-gray .btn-link,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray .nav-tabs .nav-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .btn-link:hover,\n.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray .nav-tabs .nav-link:hover {\n  color: #494f54;\n}\n\n.dark-mode .accent-gray .dropdown-item:active, .dark-mode .accent-gray .dropdown-item.active {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #6c757d;\n  border-color: #3d4246;\n}\n\n.dark-mode .accent-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray .custom-select:focus,\n.dark-mode .accent-gray .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray .custom-file-input:focus ~ .custom-file-label {\n  border-color: #afb5ba;\n}\n\n.dark-mode .accent-gray .page-item .page-link {\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray .page-item.active a,\n.dark-mode .accent-gray .page-item.active .page-link {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .accent-gray .page-item.disabled a,\n.dark-mode .accent-gray .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray .page-item .page-link:focus {\n  color: #78828a;\n}\n\n.dark-mode .accent-gray-dark .btn-link,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn),\n.dark-mode .accent-gray-dark .nav-tabs .nav-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .btn-link:hover,\n.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.btn):hover,\n.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover {\n  color: #121416;\n}\n\n.dark-mode .accent-gray-dark .dropdown-item:active, .dark-mode .accent-gray-dark .dropdown-item.active {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background-color: #343a40;\n  border-color: #060708;\n}\n\n.dark-mode .accent-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),\n.dark-mode .accent-gray-dark .custom-select:focus,\n.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked) ~ .custom-control-label::before,\n.dark-mode .accent-gray-dark .custom-file-input:focus ~ .custom-file-label {\n  border-color: #6d7a86;\n}\n\n.dark-mode .accent-gray-dark .page-item .page-link {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark .page-item.active a,\n.dark-mode .accent-gray-dark .page-item.active .page-link {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark .page-item.disabled a,\n.dark-mode .accent-gray-dark .page-item.disabled .page-link {\n  background-color: #fff;\n  border-color: #dee2e6;\n  color: #6c757d;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #c2c7d0;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-dark-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #fff;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {\n  color: #343a40;\n}\n\n.dark-mode .accent-gray-dark [class*=\"sidebar-light-\"] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover {\n  color: #212529;\n}\n\n.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover, .dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus {\n  color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.core.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/alt/adminlte.extra-components.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Extra Components\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background-color: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background-color: rgba(0, 0, 0, 0.15);\n  color: #fff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: 700;\n  margin: 0 0 10px;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: .9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box .icon svg {\n  font-size: 70px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: -webkit-transform 0.3s linear;\n  transition: transform 0.3s linear;\n  transition: transform 0.3s linear, -webkit-transform 0.3s linear;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n.small-box:hover .icon > svg {\n  -webkit-transform: scale(1.1);\n  transform: scale(1.1);\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-bottom: 1rem;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n  width: 100%;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 1.875rem;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 1.8;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  padding: 0 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  margin-top: .25rem;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-success,\n.info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.info-box .info-box .bg-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-info,\n.info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.info-box .info-box .bg-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-danger,\n.info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.info-box .info-box .bg-danger .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.dark-mode .info-box {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary,\n.dark-mode .info-box .info-box .bg-gradient-primary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-primary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary,\n.dark-mode .info-box .info-box .bg-gradient-secondary {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-secondary .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success,\n.dark-mode .info-box .info-box .bg-gradient-success {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-success .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info,\n.dark-mode .info-box .info-box .bg-gradient-info {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-info .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-warning,\n.dark-mode .info-box .info-box .bg-gradient-warning {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-warning .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-danger,\n.dark-mode .info-box .info-box .bg-gradient-danger {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-danger .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-light,\n.dark-mode .info-box .info-box .bg-gradient-light {\n  color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-light .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1f2d3d;\n}\n\n.dark-mode .info-box .info-box .bg-dark,\n.dark-mode .info-box .info-box .bg-gradient-dark {\n  color: #fff;\n}\n\n.dark-mode .info-box .info-box .bg-dark .progress-bar,\n.dark-mode .info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #fff;\n}\n\n.timeline {\n  margin: 0 0 45px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background-color: #dee2e6;\n  bottom: 0;\n  content: \"\";\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > div {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > div::before, .timeline > div::after {\n  content: \"\";\n  display: table;\n}\n\n.timeline > div > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > div > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > div > .timeline-item > .timeline-body,\n.timeline > div > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > img {\n  margin: 10px;\n}\n\n.timeline > div > .timeline-item > .timeline-body > dl,\n.timeline > div > .timeline-item > .timeline-body ol,\n.timeline > div > .timeline-item > .timeline-body ul {\n  margin: 0;\n}\n\n.timeline > div > .timeline-item > .timeline-footer > a {\n  color: #fff;\n}\n\n.timeline > div > .fa,\n.timeline > div > .fas,\n.timeline > div > .far,\n.timeline > div > .fab,\n.timeline > div > .fal,\n.timeline > div > .fad,\n.timeline > div > .svg-inline--fa,\n.timeline > div > .ion {\n  background-color: #adb5bd;\n  border-radius: 50%;\n  font-size: 16px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > div > .svg-inline--fa {\n  padding: 7px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #fff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > div > .timeline-item {\n  box-shadow: none;\n  background-color: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > div > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.dark-mode .timeline::before {\n  background-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item {\n  background-color: #343a40;\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .timeline-header {\n  color: #ced4da;\n  border-color: #6c757d;\n}\n\n.dark-mode .timeline > div > .timeline-item > .time {\n  color: #ced4da;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background-color: #fff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.dark-mode .products-list > .item {\n  background-color: #343a40;\n  color: #fff;\n  border-bottom-color: #6c757d;\n}\n\n.dark-mode .product-description {\n  color: #ced4da;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat.timestamp-light .direct-chat-timestamp {\n  color: #30465f;\n}\n\n.direct-chat.timestamp-dark .direct-chat-timestamp {\n  color: #cccccc;\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background-color: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: \" \";\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background-color: #343a40;\n  bottom: 0;\n  color: #fff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.direct-chat-contacts-light {\n  background-color: #f8f9fa;\n}\n\n.direct-chat-contacts-light .contacts-list-name {\n  color: #495057;\n}\n\n.direct-chat-contacts-light .contacts-list-date {\n  color: #6c757d;\n}\n\n.direct-chat-contacts-light .contacts-list-msg {\n  color: #545b62;\n}\n\n.contacts-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #fff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #ced4da;\n  font-weight: 400;\n}\n\n.contacts-list-msg {\n  color: #b1bbc4;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n  color: #fff;\n}\n\n.direct-chat-lightblue .right > .direct-chat-text::after, .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #3c8dbc;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background-color: #001f3f;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background-color: #3d9970;\n  border-color: #3d9970;\n  color: #fff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background-color: #01ff70;\n  border-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f012be;\n  border-color: #f012be;\n  color: #fff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background-color: #d81b60;\n  border-color: #d81b60;\n  color: #fff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background-color: #007bff;\n  border-color: #007bff;\n  color: #fff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background-color: #dc3545;\n  border-color: #dc3545;\n  color: #fff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background-color: #ffc107;\n  border-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background-color: #28a745;\n  border-color: #28a745;\n  color: #fff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  color: #fff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-text {\n  background-color: #454d55;\n  border-color: #4b545c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-text::after, .dark-mode .direct-chat-text::before {\n  border-right-color: #4b545c;\n}\n\n.dark-mode .direct-chat-timestamp {\n  color: #adb5bd;\n}\n\n.dark-mode .right > .direct-chat-text::after, .dark-mode .right > .direct-chat-text::before {\n  border-right-color: transparent;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-primary .right > .direct-chat-text::after, .dark-mode .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-secondary .right > .direct-chat-text::after, .dark-mode .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-success .right > .direct-chat-text::after, .dark-mode .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-info .right > .direct-chat-text::after, .dark-mode .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-warning .right > .direct-chat-text::after, .dark-mode .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-danger .right > .direct-chat-text::after, .dark-mode .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-light .right > .direct-chat-text::after, .dark-mode .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text {\n  background-color: #86bad8;\n  border-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lightblue .right > .direct-chat-text::after, .dark-mode .direct-chat-lightblue .right > .direct-chat-text::before {\n  border-left-color: #86bad8;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text {\n  background-color: #002c59;\n  border-color: #002c59;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-navy .right > .direct-chat-text::after, .dark-mode .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #002c59;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-olive .right > .direct-chat-text::after, .dark-mode .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #74c8a3;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-lime .right > .direct-chat-text::after, .dark-mode .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #67ffa9;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text {\n  background-color: #f672d8;\n  border-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-fuchsia .right > .direct-chat-text::after, .dark-mode .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f672d8;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-maroon .right > .direct-chat-text::after, .dark-mode .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #ed6c9b;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text {\n  background-color: #3f6791;\n  border-color: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-blue .right > .direct-chat-text::after, .dark-mode .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #3f6791;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text {\n  background-color: #6610f2;\n  border-color: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-indigo .right > .direct-chat-text::after, .dark-mode .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-purple .right > .direct-chat-text::after, .dark-mode .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-pink .right > .direct-chat-text::after, .dark-mode .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-red .right > .direct-chat-text::after, .dark-mode .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #e74c3c;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-orange .right > .direct-chat-text::after, .dark-mode .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text {\n  background-color: #f39c12;\n  border-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-yellow .right > .direct-chat-text::after, .dark-mode .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #f39c12;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-green .right > .direct-chat-text::after, .dark-mode .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #00bc8c;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text {\n  background-color: #20c997;\n  border-color: #20c997;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-teal .right > .direct-chat-text::after, .dark-mode .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text {\n  background-color: #3498db;\n  border-color: #3498db;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-cyan .right > .direct-chat-text::after, .dark-mode .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #3498db;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text {\n  background-color: #fff;\n  border-color: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .direct-chat-white .right > .direct-chat-text::after, .dark-mode .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text {\n  background-color: #6c757d;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray .right > .direct-chat-text::after, .dark-mode .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text {\n  background-color: #343a40;\n  border-color: #343a40;\n  color: #fff;\n}\n\n.dark-mode .direct-chat-gray-dark .right > .direct-chat-text::after, .dark-mode .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.dark-mode .users-list-name {\n  color: #ced4da;\n}\n\n.dark-mode .users-list-date {\n  color: #adb5bd;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 135px;\n  padding: 1rem;\n  text-align: center;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 0;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 80px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #fff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 50px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n/*# sourceMappingURL=adminlte.extra-components.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/alt/adminlte.pages.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Pages\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: 700;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: .75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background-color: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background-color: #fff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background-color: #fff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #fff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.dark-mode .lockscreen-item {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-logo a {\n  color: #fff;\n}\n\n.dark-mode .lockscreen-credentials .btn {\n  background-color: #343a40;\n}\n\n.dark-mode .lockscreen-image {\n  background-color: #6c757d;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 2.1rem;\n  font-weight: 300;\n  margin-bottom: .9rem;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  background-color: #e9ecef;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  height: 100vh;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.login-box,\n.register-box {\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: .5rem;\n    width: 90%;\n  }\n}\n\n.login-box .card,\n.register-box .card {\n  margin-bottom: 0;\n}\n\n.login-card-body,\n.register-card-body {\n  background-color: #fff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem;\n  border-left: 0;\n  border-top-right-radius: 0.25rem;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.dark-mode .login-card-body,\n.dark-mode .register-card-body {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .login-logo a,\n.dark-mode .register-logo a {\n  color: #fff;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.dark-mode .invoice {\n  background-color: #343a40;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n  width: 100%;\n}\n\n.post .row {\n  width: 100%;\n}\n\n.dark-mode .post {\n  color: #fff;\n  border-color: #6c757d;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: .5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\nbody.iframe-mode .main-sidebar {\n  display: none;\n}\n\nbody.iframe-mode .content-wrapper {\n  margin-left: 0 !important;\n  margin-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode .main-header,\nbody.iframe-mode .main-footer {\n  display: none;\n}\n\nbody.iframe-mode-fullscreen {\n  overflow: hidden;\n}\n\n.content-wrapper {\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close {\n  color: #dc3545;\n  position: absolute;\n  line-height: 1;\n  right: .125rem;\n  top: .125rem;\n  z-index: 10;\n  visibility: hidden;\n}\n\n.content-wrapper.iframe-mode .btn-iframe-close:hover, .content-wrapper.iframe-mode .btn-iframe-close:focus {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .navbar-nav {\n  overflow-y: auto;\n  width: 100%;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-link {\n  white-space: nowrap;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n  -webkit-animation-name: fadeIn;\n  animation-name: fadeIn;\n  -webkit-animation-duration: 0.3s;\n  animation-duration: 0.3s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  visibility: visible;\n}\n\n@media (hover: none) and (pointer: coarse) {\n  .content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close, .content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close {\n    visibility: visible;\n  }\n}\n\n.content-wrapper.iframe-mode .tab-content {\n  position: relative;\n}\n\n.content-wrapper.iframe-mode .tab-pane + .tab-empty {\n  display: none;\n}\n\n.content-wrapper.iframe-mode .tab-empty {\n  width: 100%;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.content-wrapper.iframe-mode .tab-loading {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  display: none;\n  background-color: #f4f6f9;\n}\n\n.content-wrapper.iframe-mode .tab-loading > div {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n\n.content-wrapper.iframe-mode iframe {\n  border: 0;\n  width: 100%;\n  height: 100%;\n  margin-bottom: -8px;\n}\n\n.content-wrapper.iframe-mode iframe .content-wrapper {\n  padding-bottom: 0 !important;\n}\n\nbody.iframe-mode-fullscreen .content-wrapper.iframe-mode {\n  position: absolute;\n  left: 0;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  margin-left: 0 !important;\n  height: 100%;\n  min-height: 100%;\n  z-index: 1048;\n}\n\n.permanent-btn-iframe-close .btn-iframe-close {\n  -webkit-animation: none !important;\n  animation: none !important;\n  visibility: visible !important;\n  opacity: 1;\n}\n\n.content-wrapper.kanban {\n  height: 1px;\n}\n\n.content-wrapper.kanban .content {\n  height: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.content-wrapper.kanban .content .container,\n.content-wrapper.kanban .content .container-fluid {\n  width: -webkit-max-content;\n  width: -moz-max-content;\n  width: max-content;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-align-items: stretch;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n}\n\n.content-wrapper.kanban .content-header + .content {\n  height: calc(100% - ((2 * 15px) + (1.8rem * 1.2)));\n}\n\n.content-wrapper.kanban .card .card-body {\n  padding: .5rem;\n}\n\n.content-wrapper.kanban .card.card-row {\n  width: 340px;\n  display: inline-block;\n  margin: 0 .5rem;\n}\n\n.content-wrapper.kanban .card.card-row:first-child {\n  margin-left: 0;\n}\n\n.content-wrapper.kanban .card.card-row .card-body {\n  height: calc(100% - (12px + (1.8rem * 1.2) + .5rem));\n  overflow-y: auto;\n}\n\n.content-wrapper.kanban .card.card-row .card:last-child {\n  margin-bottom: 0;\n  border-bottom-width: 1px;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-header {\n  padding: .5rem .75rem;\n}\n\n.content-wrapper.kanban .card.card-row .card .card-body {\n  padding: .75rem;\n}\n\n.content-wrapper.kanban .btn-tool.btn-link {\n  text-decoration: underline;\n  padding-left: 0;\n  padding-right: 0;\n}\n/*# sourceMappingURL=adminlte.pages.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/css/alt/adminlte.plugins.css",
    "content": "/*!\n *   AdminLTE v3.1.0\n *     Only Plugins\n *   Author: Colorlib\n *   Website: AdminLTE.io <https://adminlte.io>\n *   License: Open source - MIT <https://opensource.org/licenses/MIT>\n */\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n@-webkit-keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@keyframes shake {\n  0% {\n    -webkit-transform: translate(2px, 1px) rotate(0deg);\n    transform: translate(2px, 1px) rotate(0deg);\n  }\n  10% {\n    -webkit-transform: translate(-1px, -2px) rotate(-2deg);\n    transform: translate(-1px, -2px) rotate(-2deg);\n  }\n  20% {\n    -webkit-transform: translate(-3px, 0) rotate(3deg);\n    transform: translate(-3px, 0) rotate(3deg);\n  }\n  30% {\n    -webkit-transform: translate(0, 2px) rotate(0deg);\n    transform: translate(0, 2px) rotate(0deg);\n  }\n  40% {\n    -webkit-transform: translate(1px, -1px) rotate(1deg);\n    transform: translate(1px, -1px) rotate(1deg);\n  }\n  50% {\n    -webkit-transform: translate(-1px, 2px) rotate(-1deg);\n    transform: translate(-1px, 2px) rotate(-1deg);\n  }\n  60% {\n    -webkit-transform: translate(-3px, 1px) rotate(0deg);\n    transform: translate(-3px, 1px) rotate(0deg);\n  }\n  70% {\n    -webkit-transform: translate(2px, 1px) rotate(-2deg);\n    transform: translate(2px, 1px) rotate(-2deg);\n  }\n  80% {\n    -webkit-transform: translate(-1px, -1px) rotate(4deg);\n    transform: translate(-1px, -1px) rotate(4deg);\n  }\n  90% {\n    -webkit-transform: translate(2px, 2px) rotate(0deg);\n    transform: translate(2px, 2px) rotate(0deg);\n  }\n  100% {\n    -webkit-transform: translate(1px, -2px) rotate(-1deg);\n    transform: translate(1px, -2px) rotate(-1deg);\n  }\n}\n\n@-webkit-keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n@keyframes wobble {\n  0% {\n    -webkit-transform: none;\n    transform: none;\n  }\n  15% {\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n  }\n  30% {\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n  }\n  45% {\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n  }\n  60% {\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n  }\n  75% {\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n  }\n  100% {\n    -webkit-transform: none;\n    transform: none;\n  }\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar,\n.fc-toolbar.fc-header-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n@media (max-width: 575.98px) {\n  .fc-toolbar {\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .fc-toolbar .fc-left {\n    -webkit-order: 1;\n    -ms-flex-order: 1;\n    order: 1;\n    margin-bottom: .5rem;\n  }\n  .fc-toolbar .fc-center {\n    -webkit-order: 0;\n    -ms-flex-order: 0;\n    order: 0;\n    margin-bottom: .375rem;\n  }\n  .fc-toolbar .fc-right {\n    -webkit-order: 2;\n    -ms-flex-order: 2;\n    order: 2;\n  }\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .fal,\n.fc-color-picker > li .fad,\n.fc-color-picker > li .svg-inline--fa,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .fal:hover,\n.fc-color-picker > li .fad:hover,\n.fc-color-picker > li .svg-inline--fa:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: 700;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default .select2-selection--single {\n  border: 1px solid #ced4da;\n  padding: 0.46875rem 0.75rem;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-dropdown {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-results__option {\n  padding: 6px 12px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field,\n.select2-container--default .select2-search--inline .select2-search__field {\n  border: 1px solid #ced4da;\n}\n\n.select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--below {\n  border-top: 0;\n}\n\n.select2-container--default .select2-dropdown.select2-dropdown--above {\n  border-bottom: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled='true'] {\n  color: #6c757d;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'] {\n  background-color: #dee2e6;\n}\n\n.select2-container--default .select2-results__option[aria-selected='true'], .select2-container--default .select2-results__option[aria-selected='true']:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-selection--multiple {\n  border: 1px solid #ced4da;\n  min-height: calc(2.25rem + 2px);\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.375rem 0.375rem;\n  margin-bottom: -0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n  margin-left: 0.375rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  border: 0;\n  margin-top: 6px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n  padding: 0 10px;\n  margin-top: .31rem;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n  float: right;\n  margin-left: 5px;\n  margin-right: -2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-search.select2-search--inline .select2-search__field, .select2-container--default .select2-selection--multiple.text-sm .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 8px;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple.text-sm .select2-selection__choice {\n  margin-top: .4rem;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--single,\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-container--default.select2-container--focus .select2-search__field {\n  border: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.input-group-prepend ~ .select2-container--default .select2-selection {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group > .select2-container--default:not(:last-child) .select2-selection {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.select2-container--bootstrap4.select2-container--focus .select2-selection {\n  box-shadow: none;\n}\n\nselect.form-control-sm ~ .select2-container--default {\n  font-size: 0.875rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single {\n  height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__rendered {\n  margin-top: -.4rem;\n}\n\n.text-sm .select2-container--default .select2-selection--single .select2-selection__arrow,\nselect.form-control-sm ~ .select2-container--default .select2-selection--single .select2-selection__arrow {\n  top: -.12rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple {\n  min-height: calc(1.8125rem + 2px);\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n  padding: 0 0.25rem 0.25rem;\n  margin-top: -0.1rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  margin-left: 0.25rem;\n}\n\n.text-sm .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field,\nselect.form-control-sm ~ .select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-search.select2-search--inline .select2-search__field {\n  margin-top: 6px;\n}\n\n.maximized-card .select2-dropdown {\n  z-index: 9999;\n}\n\n.select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-primary .select2-search--inline .select2-search__field:focus,\n.select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted,\n.select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple:focus,\n.select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-primary.select2-container--focus .select2-selection--multiple,\n.select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-secondary .select2-search--inline .select2-search__field:focus,\n.select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted,\n.select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple:focus,\n.select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-secondary.select2-container--focus .select2-selection--multiple,\n.select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-success .select2-search--inline .select2-search__field:focus,\n.select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted,\n.select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple:focus,\n.select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-success.select2-container--focus .select2-selection--multiple,\n.select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-info .select2-search--inline .select2-search__field:focus,\n.select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted,\n.select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple:focus,\n.select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-info.select2-container--focus .select2-selection--multiple,\n.select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-warning .select2-search--inline .select2-search__field:focus,\n.select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted,\n.select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple:focus,\n.select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-warning.select2-container--focus .select2-selection--multiple,\n.select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-danger .select2-search--inline .select2-search__field:focus,\n.select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted,\n.select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple:focus,\n.select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-danger.select2-container--focus .select2-selection--multiple,\n.select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-light .select2-search--inline .select2-search__field:focus,\n.select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted,\n.select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple:focus,\n.select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-light.select2-container--focus .select2-selection--multiple,\n.select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-dark .select2-search--inline .select2-search__field:focus,\n.select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted,\n.select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple:focus,\n.select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-dark.select2-container--focus .select2-selection--multiple,\n.select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3c8dbc;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3884b0;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple:focus,\n.select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #99c5de;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3c8dbc;\n  border-color: #367fa9;\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #99c5de;\n}\n\n.select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-navy .select2-search--inline .select2-search__field:focus,\n.select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted,\n.select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #001730;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple:focus,\n.select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #005ebf;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #001f3f;\n  border-color: #001226;\n  color: #fff;\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-navy.select2-container--focus .select2-selection--multiple,\n.select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #005ebf;\n}\n\n.select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-olive .select2-search--inline .select2-search__field:focus,\n.select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted,\n.select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #3d9970;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #398e68;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple:focus,\n.select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #87cfaf;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3d9970;\n  border-color: #368763;\n  color: #fff;\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-olive.select2-container--focus .select2-selection--multiple,\n.select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #87cfaf;\n}\n\n.select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-lime .select2-search--inline .select2-search__field:focus,\n.select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted,\n.select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #01ff70;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00f169;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple:focus,\n.select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #81ffb8;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #01ff70;\n  border-color: #00e765;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-lime.select2-container--focus .select2-selection--multiple,\n.select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #81ffb8;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f012be;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e40eb4;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple:focus,\n.select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f88adf;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f012be;\n  border-color: #db0ead;\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f88adf;\n}\n\n.select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-maroon .select2-search--inline .select2-search__field:focus,\n.select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted,\n.select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #d81b60;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ca195a;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple:focus,\n.select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f083ab;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #d81b60;\n  border-color: #c11856;\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-maroon.select2-container--focus .select2-selection--multiple,\n.select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f083ab;\n}\n\n.select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-blue .select2-search--inline .select2-search__field:focus,\n.select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted,\n.select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #007bff;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #0074f0;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple:focus,\n.select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #80bdff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  color: #fff;\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-blue.select2-container--focus .select2-selection--multiple,\n.select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #80bdff;\n}\n\n.select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-indigo .select2-search--inline .select2-search__field:focus,\n.select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted,\n.select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple:focus,\n.select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-indigo.select2-container--focus .select2-selection--multiple,\n.select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-purple .select2-search--inline .select2-search__field:focus,\n.select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted,\n.select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple:focus,\n.select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-purple.select2-container--focus .select2-selection--multiple,\n.select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-pink .select2-search--inline .select2-search__field:focus,\n.select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted,\n.select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple:focus,\n.select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-pink.select2-container--focus .select2-selection--multiple,\n.select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-red .select2-search--inline .select2-search__field:focus,\n.select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted,\n.select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #dc3545;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #da2839;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple:focus,\n.select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #efa2a9;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #dc3545;\n  border-color: #d32535;\n  color: #fff;\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-red.select2-container--focus .select2-selection--multiple,\n.select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #efa2a9;\n}\n\n.select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-orange .select2-search--inline .select2-search__field:focus,\n.select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted,\n.select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple:focus,\n.select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-orange.select2-container--focus .select2-selection--multiple,\n.select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-yellow .select2-search--inline .select2-search__field:focus,\n.select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted,\n.select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #ffc107;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7b900;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple:focus,\n.select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #ffe187;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ffc107;\n  border-color: #edb100;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-yellow.select2-container--focus .select2-selection--multiple,\n.select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #ffe187;\n}\n\n.select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-green .select2-search--inline .select2-search__field:focus,\n.select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted,\n.select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #28a745;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #259b40;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple:focus,\n.select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #71dd8a;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #28a745;\n  border-color: #23923d;\n  color: #fff;\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-green.select2-container--focus .select2-selection--multiple,\n.select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #71dd8a;\n}\n\n.select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-teal .select2-search--inline .select2-search__field:focus,\n.select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted,\n.select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple:focus,\n.select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-teal.select2-container--focus .select2-selection--multiple,\n.select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-cyan .select2-search--inline .select2-search__field:focus,\n.select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted,\n.select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #17a2b8;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1596aa;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple:focus,\n.select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #63d9ec;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #17a2b8;\n  border-color: #148ea1;\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-cyan.select2-container--focus .select2-selection--multiple,\n.select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #63d9ec;\n}\n\n.select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-white .select2-search--inline .select2-search__field:focus,\n.select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted,\n.select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple:focus,\n.select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .select2-white.select2-container--focus .select2-selection--multiple,\n.select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray .select2-search--inline .select2-search__field:focus,\n.select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted,\n.select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple:focus,\n.select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray.select2-container--focus .select2-selection--multiple,\n.select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple:focus,\n.select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-selection {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-container--disabled .select2-selection--single {\n  background-color: #454d55;\n}\n\n.dark-mode .select2-selection--single {\n  background-color: #343a40;\n  border-color: #6c757d;\n}\n\n.dark-mode .select2-selection--single .select2-selection__rendered {\n  color: #fff;\n}\n\n.dark-mode .select2-dropdown .select2-search__field,\n.dark-mode .select2-search--inline .select2-search__field {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-dropdown {\n  background-color: #343a40;\n  border-color: #6c757d;\n  color: white;\n}\n\n.dark-mode .select2-results__option[aria-selected=\"true\"] {\n  background-color: #3f474e !important;\n  color: #dee2e6;\n}\n\n.dark-mode .select2-container .select2-search--inline .select2-search__field {\n  background-color: transparent;\n  color: #fff;\n}\n\n.dark-mode .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {\n  color: #fff;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-primary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-primary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-primary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-primary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-primary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple:focus,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-primary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-primary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-primary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-secondary + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-secondary .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-secondary .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-secondary .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple:focus,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-secondary .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-secondary .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-secondary.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-secondary .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-success + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-success .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-success .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-success .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-success .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple:focus,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-success .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-success .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-success.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-success .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-info + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-info .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-info .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-info .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-info .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple:focus,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-info .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-info .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-info.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-info .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-warning + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-warning .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-warning .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-warning .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-warning .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple:focus,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-warning .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-warning .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-warning.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-warning .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-danger + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-danger .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-danger .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-danger .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-danger .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple:focus,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-danger .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-danger .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-danger.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-danger .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-light + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-light .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-light .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted {\n  background-color: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-light .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-light .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eff1f4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple:focus,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f8f9fa;\n  border-color: #e9ecef;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-light .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-light .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-light.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-light .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple:focus,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-lightblue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lightblue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted {\n  background-color: #86bad8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lightblue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lightblue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #7ab3d5;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple:focus,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e6f1f7;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #86bad8;\n  border-color: #72afd2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lightblue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lightblue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lightblue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lightblue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e6f1f7;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-navy + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-navy .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-navy .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted {\n  background-color: #002c59;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-navy .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-navy .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #002449;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple:focus,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple:focus {\n  border-color: #006ad8;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #002c59;\n  border-color: #001f3f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-navy .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-navy .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-navy.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-navy .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #006ad8;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-olive + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-olive .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-olive .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted {\n  background-color: #74c8a3;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-olive .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-olive .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #69c39b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple:focus,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple:focus {\n  border-color: #cfecdf;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #74c8a3;\n  border-color: #62c096;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-olive .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-olive .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-olive.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-olive .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #cfecdf;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-lime + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-lime .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-lime .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted {\n  background-color: #67ffa9;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-lime .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-lime .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #58ffa1;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple:focus,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple:focus {\n  border-color: #e7fff1;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #67ffa9;\n  border-color: #4eff9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-lime .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-lime .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-lime.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-lime .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #e7fff1;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-fuchsia + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-fuchsia .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted {\n  background-color: #f672d8;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-fuchsia .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-fuchsia .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f564d4;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple:focus,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple:focus {\n  border-color: #feeaf9;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f672d8;\n  border-color: #f55ad2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-fuchsia .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-fuchsia .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-fuchsia.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-fuchsia .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #feeaf9;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-maroon + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-maroon .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted {\n  background-color: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-maroon .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-maroon .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #eb5f92;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple:focus,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fbdee8;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #ed6c9b;\n  border-color: #ea568c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-maroon .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-maroon .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-maroon.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-maroon .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fbdee8;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-blue + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-blue .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-blue .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted {\n  background-color: #3f6791;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-blue .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-blue .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #3a5f86;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple:focus,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple:focus {\n  border-color: #85a7ca;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3f6791;\n  border-color: #375a7f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-blue .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-blue .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-blue.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-blue .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #85a7ca;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-indigo + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-indigo .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted {\n  background-color: #6610f2;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-indigo .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-indigo .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #5f0de6;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple:focus,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b389f9;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6610f2;\n  border-color: #5b0cdd;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-indigo .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-indigo .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-indigo.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-indigo .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b389f9;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-purple + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-purple .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-purple .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted {\n  background-color: #6f42c1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-purple .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-purple .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #683cb8;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple:focus,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple:focus {\n  border-color: #b8a2e0;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6f42c1;\n  border-color: #643ab0;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-purple .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-purple .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-purple.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-purple .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #b8a2e0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-pink + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-pink .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-pink .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted {\n  background-color: #e83e8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-pink .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-pink .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e63084;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple:focus,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f6b0d0;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e83e8c;\n  border-color: #e5277e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-pink .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-pink .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-pink.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-pink .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f6b0d0;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-red + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-red .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-red .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted {\n  background-color: #e74c3c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-red .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-red .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #e53f2e;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple:focus,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f5b4ae;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #e74c3c;\n  border-color: #e43725;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-red .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-red .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-red.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-red .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f5b4ae;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-orange + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-orange .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-orange .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted {\n  background-color: #fd7e14;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-orange .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-orange .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #fd7605;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple:focus,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple:focus {\n  border-color: #fec392;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fd7e14;\n  border-color: #f57102;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-orange .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-orange .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-orange.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-orange .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #fec392;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-yellow + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-yellow .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted {\n  background-color: #f39c12;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-yellow .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-yellow .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #ea940c;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple:focus,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple:focus {\n  border-color: #f9cf8b;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #f39c12;\n  border-color: #e08e0b;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-yellow .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-yellow .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-yellow.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-yellow .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #f9cf8b;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-green + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-green .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-green .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted {\n  background-color: #00bc8c;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-green .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-green .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #00ad81;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple:focus,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple:focus {\n  border-color: #3dffcd;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #00bc8c;\n  border-color: #00a379;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-green .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-green .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-green.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-green .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #3dffcd;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-teal + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-teal .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-teal .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted {\n  background-color: #20c997;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-teal .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-teal .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #1ebc8d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple:focus,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple:focus {\n  border-color: #7eeaca;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #20c997;\n  border-color: #1cb386;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-teal .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-teal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-teal.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-teal .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #7eeaca;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-cyan + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-cyan .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted {\n  background-color: #3498db;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-cyan .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-cyan .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2791d9;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple:focus,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple:focus {\n  border-color: #a0cfee;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #3498db;\n  border-color: #258cd1;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-cyan .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-cyan .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-cyan.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-cyan .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #a0cfee;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: white;\n}\n\n.dark-mode .select2-white + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-white .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-white .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted {\n  background-color: #fff;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-white .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-white .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #f7f7f7;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple:focus,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple:focus {\n  border-color: white;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #fff;\n  border-color: #f2f2f2;\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(31, 45, 61, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-white .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-white .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #1f2d3d;\n}\n\n.select2-container--default .dark-mode .select2-white.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-white .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: white;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted {\n  background-color: #6c757d;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #656d75;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple:focus,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple:focus {\n  border-color: #afb5ba;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #6c757d;\n  border-color: #60686f;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #afb5ba;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--open .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.dark-mode .select2-gray-dark + .select2-container--default.select2-container--focus .select2-selection--single {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-dropdown .select2-search__field:focus,\n.select2-container--default .dark-mode .select2-gray-dark .select2-search--inline .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default.select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-dropdown .select2-search__field:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-search--inline .select2-search__field:focus {\n  border: 1px solid #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted {\n  background-color: #343a40;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected], .select2-container--default .dark-mode .select2-gray-dark .select2-results__option--highlighted[aria-selected]:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected],\n.dark-mode .select2-gray-dark .select2-container--default .select2-results__option--highlighted[aria-selected]:hover {\n  background-color: #2d3238;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple:focus,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple:focus {\n  border-color: #6d7a86;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #343a40;\n  border-color: #292d32;\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .dark-mode .select2-gray-dark .select2-selection--multiple .select2-selection__choice__remove:hover,\n.dark-mode .select2-gray-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #fff;\n}\n\n.select2-container--default .dark-mode .select2-gray-dark.select2-container--focus .select2-selection--multiple,\n.dark-mode .select2-gray-dark .select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #6d7a86;\n}\n\n.slider .tooltip.in {\n  opacity: 0.9;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-lightblue .slider .slider-selection {\n  background: #3c8dbc;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-track {\n  background-color: #4b545c;\n  background-image: none;\n}\n\n.dark-mode .slider-primary .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-success .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-info .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-warning .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-danger .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.dark-mode .slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.dark-mode .slider-lightblue .slider .slider-selection {\n  background: #86bad8;\n}\n\n.dark-mode .slider-navy .slider .slider-selection {\n  background: #002c59;\n}\n\n.dark-mode .slider-olive .slider .slider-selection {\n  background: #74c8a3;\n}\n\n.dark-mode .slider-lime .slider .slider-selection {\n  background: #67ffa9;\n}\n\n.dark-mode .slider-fuchsia .slider .slider-selection {\n  background: #f672d8;\n}\n\n.dark-mode .slider-maroon .slider .slider-selection {\n  background: #ed6c9b;\n}\n\n.dark-mode .slider-blue .slider .slider-selection {\n  background: #3f6791;\n}\n\n.dark-mode .slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.dark-mode .slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.dark-mode .slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.dark-mode .slider-red .slider .slider-selection {\n  background: #e74c3c;\n}\n\n.dark-mode .slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.dark-mode .slider-yellow .slider .slider-selection {\n  background: #f39c12;\n}\n\n.dark-mode .slider-green .slider .slider-selection {\n  background: #00bc8c;\n}\n\n.dark-mode .slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.dark-mode .slider-cyan .slider .slider-selection {\n  background: #3498db;\n}\n\n.dark-mode .slider-white .slider .slider-selection {\n  background: #fff;\n}\n\n.dark-mode .slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.dark-mode .slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3c8dbc;\n}\n\n.icheck-lightblue > input:first-child:checked + label::before,\n.icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3c8dbc;\n  border-color: #3c8dbc;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + input[type=\"hidden\"] + label::before,\n.dark-mode [class*=\"icheck-\"] > input:first-child:not(:checked) + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-primary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-primary > input:first-child:checked + label::before,\n.dark-mode .icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-secondary > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-secondary > input:first-child:checked + label::before,\n.dark-mode .icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-success > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-success > input:first-child:checked + label::before,\n.dark-mode .icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-info > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-info > input:first-child:checked + label::before,\n.dark-mode .icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-warning > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-warning > input:first-child:checked + label::before,\n.dark-mode .icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-danger > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-danger > input:first-child:checked + label::before,\n.dark-mode .icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-light > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-light > input:first-child:checked + label::before,\n.dark-mode .icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lightblue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-lightblue > input:first-child:checked + label::before,\n.dark-mode .icheck-lightblue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #86bad8;\n  border-color: #86bad8;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-navy > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-navy > input:first-child:checked + label::before,\n.dark-mode .icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #002c59;\n  border-color: #002c59;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-olive > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-olive > input:first-child:checked + label::before,\n.dark-mode .icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #74c8a3;\n  border-color: #74c8a3;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-lime > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-lime > input:first-child:checked + label::before,\n.dark-mode .icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #67ffa9;\n  border-color: #67ffa9;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-fuchsia > input:first-child:checked + label::before,\n.dark-mode .icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f672d8;\n  border-color: #f672d8;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-maroon > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-maroon > input:first-child:checked + label::before,\n.dark-mode .icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ed6c9b;\n  border-color: #ed6c9b;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-blue > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-blue > input:first-child:checked + label::before,\n.dark-mode .icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3f6791;\n  border-color: #3f6791;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-indigo > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-indigo > input:first-child:checked + label::before,\n.dark-mode .icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-purple > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-purple > input:first-child:checked + label::before,\n.dark-mode .icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-pink > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-pink > input:first-child:checked + label::before,\n.dark-mode .icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-red > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-red > input:first-child:checked + label::before,\n.dark-mode .icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e74c3c;\n  border-color: #e74c3c;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-orange > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-orange > input:first-child:checked + label::before,\n.dark-mode .icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-yellow > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-yellow > input:first-child:checked + label::before,\n.dark-mode .icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f39c12;\n  border-color: #f39c12;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-green > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-green > input:first-child:checked + label::before,\n.dark-mode .icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #00bc8c;\n  border-color: #00bc8c;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-teal > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-teal > input:first-child:checked + label::before,\n.dark-mode .icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-cyan > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-cyan > input:first-child:checked + label::before,\n.dark-mode .icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3498db;\n  border-color: #3498db;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-white > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #fff;\n}\n\n.dark-mode .icheck-white > input:first-child:checked + label::before,\n.dark-mode .icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fff;\n  border-color: #fff;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray > input:first-child:checked + label::before,\n.dark-mode .icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:not(:checked):not(:disabled):focus + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.dark-mode .icheck-gray-dark > input:first-child:checked + label::before,\n.dark-mode .icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #fff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: 700;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.dark-mode .swal2-popup {\n  background-color: #343a40;\n  color: #e9ecef;\n}\n\n.dark-mode .swal2-popup .swal2-content,\n.dark-mode .swal2-popup .swal2-title {\n  color: #e9ecef;\n}\n\n#toast-container .toast {\n  background-color: #007bff;\n}\n\n#toast-container .toast-success {\n  background-color: #28a745;\n}\n\n#toast-container .toast-error {\n  background-color: #dc3545;\n}\n\n#toast-container .toast-info {\n  background-color: #17a2b8;\n}\n\n#toast-container .toast-warning {\n  background-color: #ffc107;\n}\n\n.toast-bottom-full-width .toast,\n.toast-top-full-width .toast {\n  max-width: inherit;\n}\n\n.pace {\n  z-index: 1048;\n}\n\n.pace .pace-progress {\n  z-index: 1049;\n}\n\n.pace .pace-activity {\n  z-index: 1050;\n}\n\n.pace-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-primary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-primary .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-primary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-primary .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-primary .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-primary .pace-activity::after, .pace-center-atom-primary .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-primary .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-primary .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-primary .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-primary .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-primary .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after,\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-primary .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-primary .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-primary .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-primary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-primary .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-primary .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-primary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-primary .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-primary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-primary .pace-progress {\n  color: #007bff;\n}\n\n.pace-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-secondary .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-secondary .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-secondary .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-secondary .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-secondary .pace-activity::after, .pace-center-atom-secondary .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-secondary .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-secondary .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-secondary .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-secondary .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-secondary .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after,\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-secondary .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-secondary .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-secondary .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-secondary .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-secondary .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-secondary .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-secondary .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-secondary .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-secondary .pace-progress {\n  color: #6c757d;\n}\n\n.pace-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-success .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-success .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-success .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-success .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-success .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-success .pace-activity::after, .pace-center-atom-success .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-success .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-success .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-success .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-success .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-success .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after,\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-success .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-success .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-success .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-success .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-success .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-success .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-success .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-success .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-success .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-success .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-success .pace-progress {\n  color: #28a745;\n}\n\n.pace-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-info .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-info .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-info .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-info .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-info .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-info .pace-activity::after, .pace-center-atom-info .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-info .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-info .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-info .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-info .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-info .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after,\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-info .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-info .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-info .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-info .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-info .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-info .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-info .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-info .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-info .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-info .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-info .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-warning .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-warning .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-warning .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-warning .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-warning .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-warning .pace-activity::after, .pace-center-atom-warning .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-warning .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-warning .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-warning .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-warning .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-warning .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after,\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-warning .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-warning .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-warning .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-warning .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-warning .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-warning .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-warning .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-warning .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-warning .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-warning .pace-progress {\n  color: #ffc107;\n}\n\n.pace-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-danger .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-danger .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-danger .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-danger .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-danger .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-danger .pace-activity::after, .pace-center-atom-danger .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-danger .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-danger .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-danger .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-danger .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-danger .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after,\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-danger .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-danger .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-danger .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-danger .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-danger .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-danger .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-danger .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-danger .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-danger .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-danger .pace-progress {\n  color: #dc3545;\n}\n\n.pace-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-barber-shop-light .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-light .pace .pace-progress::after {\n  color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-bounce-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-light .pace-progress::before {\n  background: #f8f9fa;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-light .pace-activity {\n  border-color: #f8f9fa;\n}\n\n.pace-center-atom-light .pace-activity::after, .pace-center-atom-light .pace-activity::before {\n  border-color: #f8f9fa;\n}\n\n.pace-center-circle-light .pace .pace-progress {\n  background: rgba(248, 249, 250, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-light .pace .pace-activity {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-radar-light .pace .pace-activity::before {\n  border-color: #f8f9fa transparent transparent;\n}\n\n.pace-center-simple-light .pace {\n  background: #1f2d3d;\n  border-color: #f8f9fa;\n}\n\n.pace-center-simple-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-material-light .pace {\n  color: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity {\n  background: #f8f9fa;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after,\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-light .pace .pace-activity::before {\n  border-right-color: rgba(248, 249, 250, 0.2);\n  border-left-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-corner-indicator-light .pace .pace-activity::after {\n  border-top-color: rgba(248, 249, 250, 0.2);\n  border-bottom-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-fill-left-light .pace .pace-progress {\n  background-color: rgba(248, 249, 250, 0.2);\n}\n\n.pace-flash-light .pace .pace-progress {\n  background: #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f8f9fa, 0 0 5px #f8f9fa;\n}\n\n.pace-flash-light .pace .pace-activity {\n  border-top-color: #f8f9fa;\n  border-left-color: #f8f9fa;\n}\n\n.pace-loading-bar-light .pace .pace-progress {\n  background: #f8f9fa;\n  color: #f8f9fa;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-light .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f8f9fa, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-light .pace .pace-progress {\n  background-color: #f8f9fa;\n  box-shadow: inset -1px 0 #f8f9fa, inset 0 -1px #f8f9fa, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-light .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-light .pace-progress {\n  color: #f8f9fa;\n}\n\n.pace-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-dark .pace-activity::after, .pace-center-atom-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after,\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-dark .pace-progress {\n  color: #343a40;\n}\n\n.pace-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-barber-shop-lightblue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lightblue .pace .pace-progress::after {\n  color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-bounce-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lightblue .pace-progress::before {\n  background: #3c8dbc;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lightblue .pace-activity {\n  border-color: #3c8dbc;\n}\n\n.pace-center-atom-lightblue .pace-activity::after, .pace-center-atom-lightblue .pace-activity::before {\n  border-color: #3c8dbc;\n}\n\n.pace-center-circle-lightblue .pace .pace-progress {\n  background: rgba(60, 141, 188, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-radar-lightblue .pace .pace-activity::before {\n  border-color: #3c8dbc transparent transparent;\n}\n\n.pace-center-simple-lightblue .pace {\n  background: #fff;\n  border-color: #3c8dbc;\n}\n\n.pace-center-simple-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-material-lightblue .pace {\n  color: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity {\n  background: #3c8dbc;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after,\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::before {\n  border-right-color: rgba(60, 141, 188, 0.2);\n  border-left-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-corner-indicator-lightblue .pace .pace-activity::after {\n  border-top-color: rgba(60, 141, 188, 0.2);\n  border-bottom-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-fill-left-lightblue .pace .pace-progress {\n  background-color: rgba(60, 141, 188, 0.2);\n}\n\n.pace-flash-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3c8dbc, 0 0 5px #3c8dbc;\n}\n\n.pace-flash-lightblue .pace .pace-activity {\n  border-top-color: #3c8dbc;\n  border-left-color: #3c8dbc;\n}\n\n.pace-loading-bar-lightblue .pace .pace-progress {\n  background: #3c8dbc;\n  color: #3c8dbc;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-lightblue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3c8dbc, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-lightblue .pace .pace-progress {\n  background-color: #3c8dbc;\n  box-shadow: inset -1px 0 #3c8dbc, inset 0 -1px #3c8dbc, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-lightblue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lightblue .pace-progress {\n  color: #3c8dbc;\n}\n\n.pace-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-barber-shop-navy .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-navy .pace .pace-progress::after {\n  color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-bounce-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-center-atom-navy .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-navy .pace-progress::before {\n  background: #001f3f;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-navy .pace-activity {\n  border-color: #001f3f;\n}\n\n.pace-center-atom-navy .pace-activity::after, .pace-center-atom-navy .pace-activity::before {\n  border-color: #001f3f;\n}\n\n.pace-center-circle-navy .pace .pace-progress {\n  background: rgba(0, 31, 63, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-navy .pace .pace-activity {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-radar-navy .pace .pace-activity::before {\n  border-color: #001f3f transparent transparent;\n}\n\n.pace-center-simple-navy .pace {\n  background: #fff;\n  border-color: #001f3f;\n}\n\n.pace-center-simple-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-material-navy .pace {\n  color: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity {\n  background: #001f3f;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after,\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::before {\n  border-right-color: rgba(0, 31, 63, 0.2);\n  border-left-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-corner-indicator-navy .pace .pace-activity::after {\n  border-top-color: rgba(0, 31, 63, 0.2);\n  border-bottom-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-fill-left-navy .pace .pace-progress {\n  background-color: rgba(0, 31, 63, 0.2);\n}\n\n.pace-flash-navy .pace .pace-progress {\n  background: #001f3f;\n}\n\n.pace-flash-navy .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #001f3f, 0 0 5px #001f3f;\n}\n\n.pace-flash-navy .pace .pace-activity {\n  border-top-color: #001f3f;\n  border-left-color: #001f3f;\n}\n\n.pace-loading-bar-navy .pace .pace-progress {\n  background: #001f3f;\n  color: #001f3f;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-navy .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #001f3f, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-navy .pace .pace-progress {\n  background-color: #001f3f;\n  box-shadow: inset -1px 0 #001f3f, inset 0 -1px #001f3f, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-navy .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-navy .pace-progress {\n  color: #001f3f;\n}\n\n.pace-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-barber-shop-olive .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-olive .pace .pace-progress::after {\n  color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-bounce-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-center-atom-olive .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-olive .pace-progress::before {\n  background: #3d9970;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-olive .pace-activity {\n  border-color: #3d9970;\n}\n\n.pace-center-atom-olive .pace-activity::after, .pace-center-atom-olive .pace-activity::before {\n  border-color: #3d9970;\n}\n\n.pace-center-circle-olive .pace .pace-progress {\n  background: rgba(61, 153, 112, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-olive .pace .pace-activity {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-radar-olive .pace .pace-activity::before {\n  border-color: #3d9970 transparent transparent;\n}\n\n.pace-center-simple-olive .pace {\n  background: #fff;\n  border-color: #3d9970;\n}\n\n.pace-center-simple-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-material-olive .pace {\n  color: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity {\n  background: #3d9970;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after,\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::before {\n  border-right-color: rgba(61, 153, 112, 0.2);\n  border-left-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-corner-indicator-olive .pace .pace-activity::after {\n  border-top-color: rgba(61, 153, 112, 0.2);\n  border-bottom-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-fill-left-olive .pace .pace-progress {\n  background-color: rgba(61, 153, 112, 0.2);\n}\n\n.pace-flash-olive .pace .pace-progress {\n  background: #3d9970;\n}\n\n.pace-flash-olive .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #3d9970, 0 0 5px #3d9970;\n}\n\n.pace-flash-olive .pace .pace-activity {\n  border-top-color: #3d9970;\n  border-left-color: #3d9970;\n}\n\n.pace-loading-bar-olive .pace .pace-progress {\n  background: #3d9970;\n  color: #3d9970;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-olive .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #3d9970, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-olive .pace .pace-progress {\n  background-color: #3d9970;\n  box-shadow: inset -1px 0 #3d9970, inset 0 -1px #3d9970, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-olive .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-olive .pace-progress {\n  color: #3d9970;\n}\n\n.pace-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-barber-shop-lime .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-lime .pace .pace-progress::after {\n  color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-bounce-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-center-atom-lime .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-lime .pace-progress::before {\n  background: #01ff70;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-lime .pace-activity {\n  border-color: #01ff70;\n}\n\n.pace-center-atom-lime .pace-activity::after, .pace-center-atom-lime .pace-activity::before {\n  border-color: #01ff70;\n}\n\n.pace-center-circle-lime .pace .pace-progress {\n  background: rgba(1, 255, 112, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-lime .pace .pace-activity {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-radar-lime .pace .pace-activity::before {\n  border-color: #01ff70 transparent transparent;\n}\n\n.pace-center-simple-lime .pace {\n  background: #1f2d3d;\n  border-color: #01ff70;\n}\n\n.pace-center-simple-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-material-lime .pace {\n  color: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity {\n  background: #01ff70;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after,\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::before {\n  border-right-color: rgba(1, 255, 112, 0.2);\n  border-left-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-corner-indicator-lime .pace .pace-activity::after {\n  border-top-color: rgba(1, 255, 112, 0.2);\n  border-bottom-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-fill-left-lime .pace .pace-progress {\n  background-color: rgba(1, 255, 112, 0.2);\n}\n\n.pace-flash-lime .pace .pace-progress {\n  background: #01ff70;\n}\n\n.pace-flash-lime .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #01ff70, 0 0 5px #01ff70;\n}\n\n.pace-flash-lime .pace .pace-activity {\n  border-top-color: #01ff70;\n  border-left-color: #01ff70;\n}\n\n.pace-loading-bar-lime .pace .pace-progress {\n  background: #01ff70;\n  color: #01ff70;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-lime .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #01ff70, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-lime .pace .pace-progress {\n  background-color: #01ff70;\n  box-shadow: inset -1px 0 #01ff70, inset 0 -1px #01ff70, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-lime .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-lime .pace-progress {\n  color: #01ff70;\n}\n\n.pace-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-barber-shop-fuchsia .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-fuchsia .pace .pace-progress::after {\n  color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-bounce-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-fuchsia .pace-progress::before {\n  background: #f012be;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-fuchsia .pace-activity {\n  border-color: #f012be;\n}\n\n.pace-center-atom-fuchsia .pace-activity::after, .pace-center-atom-fuchsia .pace-activity::before {\n  border-color: #f012be;\n}\n\n.pace-center-circle-fuchsia .pace .pace-progress {\n  background: rgba(240, 18, 190, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-radar-fuchsia .pace .pace-activity::before {\n  border-color: #f012be transparent transparent;\n}\n\n.pace-center-simple-fuchsia .pace {\n  background: #fff;\n  border-color: #f012be;\n}\n\n.pace-center-simple-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-material-fuchsia .pace {\n  color: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity {\n  background: #f012be;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after,\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::before {\n  border-right-color: rgba(240, 18, 190, 0.2);\n  border-left-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-corner-indicator-fuchsia .pace .pace-activity::after {\n  border-top-color: rgba(240, 18, 190, 0.2);\n  border-bottom-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-fill-left-fuchsia .pace .pace-progress {\n  background-color: rgba(240, 18, 190, 0.2);\n}\n\n.pace-flash-fuchsia .pace .pace-progress {\n  background: #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #f012be, 0 0 5px #f012be;\n}\n\n.pace-flash-fuchsia .pace .pace-activity {\n  border-top-color: #f012be;\n  border-left-color: #f012be;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-progress {\n  background: #f012be;\n  color: #f012be;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-fuchsia .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #f012be, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-fuchsia .pace .pace-progress {\n  background-color: #f012be;\n  box-shadow: inset -1px 0 #f012be, inset 0 -1px #f012be, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-fuchsia .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-fuchsia .pace-progress {\n  color: #f012be;\n}\n\n.pace-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-barber-shop-maroon .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-maroon .pace .pace-progress::after {\n  color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-bounce-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-maroon .pace-progress::before {\n  background: #d81b60;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-maroon .pace-activity {\n  border-color: #d81b60;\n}\n\n.pace-center-atom-maroon .pace-activity::after, .pace-center-atom-maroon .pace-activity::before {\n  border-color: #d81b60;\n}\n\n.pace-center-circle-maroon .pace .pace-progress {\n  background: rgba(216, 27, 96, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-maroon .pace .pace-activity {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-radar-maroon .pace .pace-activity::before {\n  border-color: #d81b60 transparent transparent;\n}\n\n.pace-center-simple-maroon .pace {\n  background: #fff;\n  border-color: #d81b60;\n}\n\n.pace-center-simple-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-material-maroon .pace {\n  color: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity {\n  background: #d81b60;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after,\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::before {\n  border-right-color: rgba(216, 27, 96, 0.2);\n  border-left-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-corner-indicator-maroon .pace .pace-activity::after {\n  border-top-color: rgba(216, 27, 96, 0.2);\n  border-bottom-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-fill-left-maroon .pace .pace-progress {\n  background-color: rgba(216, 27, 96, 0.2);\n}\n\n.pace-flash-maroon .pace .pace-progress {\n  background: #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #d81b60, 0 0 5px #d81b60;\n}\n\n.pace-flash-maroon .pace .pace-activity {\n  border-top-color: #d81b60;\n  border-left-color: #d81b60;\n}\n\n.pace-loading-bar-maroon .pace .pace-progress {\n  background: #d81b60;\n  color: #d81b60;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-maroon .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #d81b60, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-maroon .pace .pace-progress {\n  background-color: #d81b60;\n  box-shadow: inset -1px 0 #d81b60, inset 0 -1px #d81b60, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-maroon .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-maroon .pace-progress {\n  color: #d81b60;\n}\n\n.pace-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-barber-shop-blue .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-blue .pace .pace-progress::after {\n  color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-bounce-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-center-atom-blue .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-blue .pace-progress::before {\n  background: #007bff;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-blue .pace-activity {\n  border-color: #007bff;\n}\n\n.pace-center-atom-blue .pace-activity::after, .pace-center-atom-blue .pace-activity::before {\n  border-color: #007bff;\n}\n\n.pace-center-circle-blue .pace .pace-progress {\n  background: rgba(0, 123, 255, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-blue .pace .pace-activity {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-radar-blue .pace .pace-activity::before {\n  border-color: #007bff transparent transparent;\n}\n\n.pace-center-simple-blue .pace {\n  background: #fff;\n  border-color: #007bff;\n}\n\n.pace-center-simple-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-material-blue .pace {\n  color: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity {\n  background: #007bff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after,\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::before {\n  border-right-color: rgba(0, 123, 255, 0.2);\n  border-left-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-corner-indicator-blue .pace .pace-activity::after {\n  border-top-color: rgba(0, 123, 255, 0.2);\n  border-bottom-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-fill-left-blue .pace .pace-progress {\n  background-color: rgba(0, 123, 255, 0.2);\n}\n\n.pace-flash-blue .pace .pace-progress {\n  background: #007bff;\n}\n\n.pace-flash-blue .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #007bff, 0 0 5px #007bff;\n}\n\n.pace-flash-blue .pace .pace-activity {\n  border-top-color: #007bff;\n  border-left-color: #007bff;\n}\n\n.pace-loading-bar-blue .pace .pace-progress {\n  background: #007bff;\n  color: #007bff;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-blue .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #007bff, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-blue .pace .pace-progress {\n  background-color: #007bff;\n  box-shadow: inset -1px 0 #007bff, inset 0 -1px #007bff, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-blue .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-blue .pace-progress {\n  color: #007bff;\n}\n\n.pace-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-barber-shop-indigo .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-indigo .pace .pace-progress::after {\n  color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-bounce-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-indigo .pace-progress::before {\n  background: #6610f2;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-indigo .pace-activity {\n  border-color: #6610f2;\n}\n\n.pace-center-atom-indigo .pace-activity::after, .pace-center-atom-indigo .pace-activity::before {\n  border-color: #6610f2;\n}\n\n.pace-center-circle-indigo .pace .pace-progress {\n  background: rgba(102, 16, 242, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-indigo .pace .pace-activity {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-radar-indigo .pace .pace-activity::before {\n  border-color: #6610f2 transparent transparent;\n}\n\n.pace-center-simple-indigo .pace {\n  background: #fff;\n  border-color: #6610f2;\n}\n\n.pace-center-simple-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-material-indigo .pace {\n  color: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity {\n  background: #6610f2;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after,\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::before {\n  border-right-color: rgba(102, 16, 242, 0.2);\n  border-left-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-corner-indicator-indigo .pace .pace-activity::after {\n  border-top-color: rgba(102, 16, 242, 0.2);\n  border-bottom-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-fill-left-indigo .pace .pace-progress {\n  background-color: rgba(102, 16, 242, 0.2);\n}\n\n.pace-flash-indigo .pace .pace-progress {\n  background: #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6610f2, 0 0 5px #6610f2;\n}\n\n.pace-flash-indigo .pace .pace-activity {\n  border-top-color: #6610f2;\n  border-left-color: #6610f2;\n}\n\n.pace-loading-bar-indigo .pace .pace-progress {\n  background: #6610f2;\n  color: #6610f2;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-indigo .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6610f2, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-indigo .pace .pace-progress {\n  background-color: #6610f2;\n  box-shadow: inset -1px 0 #6610f2, inset 0 -1px #6610f2, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-indigo .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-indigo .pace-progress {\n  color: #6610f2;\n}\n\n.pace-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-barber-shop-purple .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-purple .pace .pace-progress::after {\n  color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-bounce-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-purple .pace-progress::before {\n  background: #6f42c1;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-purple .pace-activity {\n  border-color: #6f42c1;\n}\n\n.pace-center-atom-purple .pace-activity::after, .pace-center-atom-purple .pace-activity::before {\n  border-color: #6f42c1;\n}\n\n.pace-center-circle-purple .pace .pace-progress {\n  background: rgba(111, 66, 193, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-purple .pace .pace-activity {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-radar-purple .pace .pace-activity::before {\n  border-color: #6f42c1 transparent transparent;\n}\n\n.pace-center-simple-purple .pace {\n  background: #fff;\n  border-color: #6f42c1;\n}\n\n.pace-center-simple-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-material-purple .pace {\n  color: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity {\n  background: #6f42c1;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after,\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::before {\n  border-right-color: rgba(111, 66, 193, 0.2);\n  border-left-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-corner-indicator-purple .pace .pace-activity::after {\n  border-top-color: rgba(111, 66, 193, 0.2);\n  border-bottom-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-fill-left-purple .pace .pace-progress {\n  background-color: rgba(111, 66, 193, 0.2);\n}\n\n.pace-flash-purple .pace .pace-progress {\n  background: #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6f42c1, 0 0 5px #6f42c1;\n}\n\n.pace-flash-purple .pace .pace-activity {\n  border-top-color: #6f42c1;\n  border-left-color: #6f42c1;\n}\n\n.pace-loading-bar-purple .pace .pace-progress {\n  background: #6f42c1;\n  color: #6f42c1;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-purple .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6f42c1, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-purple .pace .pace-progress {\n  background-color: #6f42c1;\n  box-shadow: inset -1px 0 #6f42c1, inset 0 -1px #6f42c1, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-purple .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-purple .pace-progress {\n  color: #6f42c1;\n}\n\n.pace-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-barber-shop-pink .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-pink .pace .pace-progress::after {\n  color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-bounce-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-pink .pace-progress::before {\n  background: #e83e8c;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-pink .pace-activity {\n  border-color: #e83e8c;\n}\n\n.pace-center-atom-pink .pace-activity::after, .pace-center-atom-pink .pace-activity::before {\n  border-color: #e83e8c;\n}\n\n.pace-center-circle-pink .pace .pace-progress {\n  background: rgba(232, 62, 140, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-pink .pace .pace-activity {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-radar-pink .pace .pace-activity::before {\n  border-color: #e83e8c transparent transparent;\n}\n\n.pace-center-simple-pink .pace {\n  background: #fff;\n  border-color: #e83e8c;\n}\n\n.pace-center-simple-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-material-pink .pace {\n  color: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity {\n  background: #e83e8c;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after,\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::before {\n  border-right-color: rgba(232, 62, 140, 0.2);\n  border-left-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-corner-indicator-pink .pace .pace-activity::after {\n  border-top-color: rgba(232, 62, 140, 0.2);\n  border-bottom-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-fill-left-pink .pace .pace-progress {\n  background-color: rgba(232, 62, 140, 0.2);\n}\n\n.pace-flash-pink .pace .pace-progress {\n  background: #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #e83e8c, 0 0 5px #e83e8c;\n}\n\n.pace-flash-pink .pace .pace-activity {\n  border-top-color: #e83e8c;\n  border-left-color: #e83e8c;\n}\n\n.pace-loading-bar-pink .pace .pace-progress {\n  background: #e83e8c;\n  color: #e83e8c;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-pink .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #e83e8c, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-pink .pace .pace-progress {\n  background-color: #e83e8c;\n  box-shadow: inset -1px 0 #e83e8c, inset 0 -1px #e83e8c, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-pink .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-pink .pace-progress {\n  color: #e83e8c;\n}\n\n.pace-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-barber-shop-red .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-red .pace .pace-progress::after {\n  color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-bounce-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-center-atom-red .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-red .pace-progress::before {\n  background: #dc3545;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-red .pace-activity {\n  border-color: #dc3545;\n}\n\n.pace-center-atom-red .pace-activity::after, .pace-center-atom-red .pace-activity::before {\n  border-color: #dc3545;\n}\n\n.pace-center-circle-red .pace .pace-progress {\n  background: rgba(220, 53, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-red .pace .pace-activity {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-radar-red .pace .pace-activity::before {\n  border-color: #dc3545 transparent transparent;\n}\n\n.pace-center-simple-red .pace {\n  background: #fff;\n  border-color: #dc3545;\n}\n\n.pace-center-simple-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-material-red .pace {\n  color: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity {\n  background: #dc3545;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after,\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-red .pace .pace-activity::before {\n  border-right-color: rgba(220, 53, 69, 0.2);\n  border-left-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-corner-indicator-red .pace .pace-activity::after {\n  border-top-color: rgba(220, 53, 69, 0.2);\n  border-bottom-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-fill-left-red .pace .pace-progress {\n  background-color: rgba(220, 53, 69, 0.2);\n}\n\n.pace-flash-red .pace .pace-progress {\n  background: #dc3545;\n}\n\n.pace-flash-red .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #dc3545, 0 0 5px #dc3545;\n}\n\n.pace-flash-red .pace .pace-activity {\n  border-top-color: #dc3545;\n  border-left-color: #dc3545;\n}\n\n.pace-loading-bar-red .pace .pace-progress {\n  background: #dc3545;\n  color: #dc3545;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-red .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #dc3545, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-red .pace .pace-progress {\n  background-color: #dc3545;\n  box-shadow: inset -1px 0 #dc3545, inset 0 -1px #dc3545, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-red .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-red .pace-progress {\n  color: #dc3545;\n}\n\n.pace-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-barber-shop-orange .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-orange .pace .pace-progress::after {\n  color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-bounce-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-orange .pace-progress::before {\n  background: #fd7e14;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-orange .pace-activity {\n  border-color: #fd7e14;\n}\n\n.pace-center-atom-orange .pace-activity::after, .pace-center-atom-orange .pace-activity::before {\n  border-color: #fd7e14;\n}\n\n.pace-center-circle-orange .pace .pace-progress {\n  background: rgba(253, 126, 20, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-orange .pace .pace-activity {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-radar-orange .pace .pace-activity::before {\n  border-color: #fd7e14 transparent transparent;\n}\n\n.pace-center-simple-orange .pace {\n  background: #1f2d3d;\n  border-color: #fd7e14;\n}\n\n.pace-center-simple-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-material-orange .pace {\n  color: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity {\n  background: #fd7e14;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after,\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::before {\n  border-right-color: rgba(253, 126, 20, 0.2);\n  border-left-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-corner-indicator-orange .pace .pace-activity::after {\n  border-top-color: rgba(253, 126, 20, 0.2);\n  border-bottom-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-fill-left-orange .pace .pace-progress {\n  background-color: rgba(253, 126, 20, 0.2);\n}\n\n.pace-flash-orange .pace .pace-progress {\n  background: #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fd7e14, 0 0 5px #fd7e14;\n}\n\n.pace-flash-orange .pace .pace-activity {\n  border-top-color: #fd7e14;\n  border-left-color: #fd7e14;\n}\n\n.pace-loading-bar-orange .pace .pace-progress {\n  background: #fd7e14;\n  color: #fd7e14;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-orange .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fd7e14, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-orange .pace .pace-progress {\n  background-color: #fd7e14;\n  box-shadow: inset -1px 0 #fd7e14, inset 0 -1px #fd7e14, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-orange .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-orange .pace-progress {\n  color: #fd7e14;\n}\n\n.pace-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-barber-shop-yellow .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-yellow .pace .pace-progress::after {\n  color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-bounce-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-yellow .pace-progress::before {\n  background: #ffc107;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-yellow .pace-activity {\n  border-color: #ffc107;\n}\n\n.pace-center-atom-yellow .pace-activity::after, .pace-center-atom-yellow .pace-activity::before {\n  border-color: #ffc107;\n}\n\n.pace-center-circle-yellow .pace .pace-progress {\n  background: rgba(255, 193, 7, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-yellow .pace .pace-activity {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-radar-yellow .pace .pace-activity::before {\n  border-color: #ffc107 transparent transparent;\n}\n\n.pace-center-simple-yellow .pace {\n  background: #1f2d3d;\n  border-color: #ffc107;\n}\n\n.pace-center-simple-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-material-yellow .pace {\n  color: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity {\n  background: #ffc107;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after,\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::before {\n  border-right-color: rgba(255, 193, 7, 0.2);\n  border-left-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-corner-indicator-yellow .pace .pace-activity::after {\n  border-top-color: rgba(255, 193, 7, 0.2);\n  border-bottom-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-fill-left-yellow .pace .pace-progress {\n  background-color: rgba(255, 193, 7, 0.2);\n}\n\n.pace-flash-yellow .pace .pace-progress {\n  background: #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #ffc107, 0 0 5px #ffc107;\n}\n\n.pace-flash-yellow .pace .pace-activity {\n  border-top-color: #ffc107;\n  border-left-color: #ffc107;\n}\n\n.pace-loading-bar-yellow .pace .pace-progress {\n  background: #ffc107;\n  color: #ffc107;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-yellow .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #ffc107, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-yellow .pace .pace-progress {\n  background-color: #ffc107;\n  box-shadow: inset -1px 0 #ffc107, inset 0 -1px #ffc107, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-yellow .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-yellow .pace-progress {\n  color: #ffc107;\n}\n\n.pace-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-barber-shop-green .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-green .pace .pace-progress::after {\n  color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-bounce-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-center-atom-green .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-green .pace-progress::before {\n  background: #28a745;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-green .pace-activity {\n  border-color: #28a745;\n}\n\n.pace-center-atom-green .pace-activity::after, .pace-center-atom-green .pace-activity::before {\n  border-color: #28a745;\n}\n\n.pace-center-circle-green .pace .pace-progress {\n  background: rgba(40, 167, 69, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-green .pace .pace-activity {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-radar-green .pace .pace-activity::before {\n  border-color: #28a745 transparent transparent;\n}\n\n.pace-center-simple-green .pace {\n  background: #fff;\n  border-color: #28a745;\n}\n\n.pace-center-simple-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-material-green .pace {\n  color: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity {\n  background: #28a745;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after,\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-green .pace .pace-activity::before {\n  border-right-color: rgba(40, 167, 69, 0.2);\n  border-left-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-corner-indicator-green .pace .pace-activity::after {\n  border-top-color: rgba(40, 167, 69, 0.2);\n  border-bottom-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-fill-left-green .pace .pace-progress {\n  background-color: rgba(40, 167, 69, 0.2);\n}\n\n.pace-flash-green .pace .pace-progress {\n  background: #28a745;\n}\n\n.pace-flash-green .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #28a745, 0 0 5px #28a745;\n}\n\n.pace-flash-green .pace .pace-activity {\n  border-top-color: #28a745;\n  border-left-color: #28a745;\n}\n\n.pace-loading-bar-green .pace .pace-progress {\n  background: #28a745;\n  color: #28a745;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-green .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #28a745, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-green .pace .pace-progress {\n  background-color: #28a745;\n  box-shadow: inset -1px 0 #28a745, inset 0 -1px #28a745, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-green .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-green .pace-progress {\n  color: #28a745;\n}\n\n.pace-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-barber-shop-teal .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-teal .pace .pace-progress::after {\n  color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-bounce-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-center-atom-teal .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-teal .pace-progress::before {\n  background: #20c997;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-teal .pace-activity {\n  border-color: #20c997;\n}\n\n.pace-center-atom-teal .pace-activity::after, .pace-center-atom-teal .pace-activity::before {\n  border-color: #20c997;\n}\n\n.pace-center-circle-teal .pace .pace-progress {\n  background: rgba(32, 201, 151, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-teal .pace .pace-activity {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-radar-teal .pace .pace-activity::before {\n  border-color: #20c997 transparent transparent;\n}\n\n.pace-center-simple-teal .pace {\n  background: #fff;\n  border-color: #20c997;\n}\n\n.pace-center-simple-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-material-teal .pace {\n  color: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity {\n  background: #20c997;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after,\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::before {\n  border-right-color: rgba(32, 201, 151, 0.2);\n  border-left-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-corner-indicator-teal .pace .pace-activity::after {\n  border-top-color: rgba(32, 201, 151, 0.2);\n  border-bottom-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-fill-left-teal .pace .pace-progress {\n  background-color: rgba(32, 201, 151, 0.2);\n}\n\n.pace-flash-teal .pace .pace-progress {\n  background: #20c997;\n}\n\n.pace-flash-teal .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #20c997, 0 0 5px #20c997;\n}\n\n.pace-flash-teal .pace .pace-activity {\n  border-top-color: #20c997;\n  border-left-color: #20c997;\n}\n\n.pace-loading-bar-teal .pace .pace-progress {\n  background: #20c997;\n  color: #20c997;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-teal .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #20c997, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-teal .pace .pace-progress {\n  background-color: #20c997;\n  box-shadow: inset -1px 0 #20c997, inset 0 -1px #20c997, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-teal .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-teal .pace-progress {\n  color: #20c997;\n}\n\n.pace-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-barber-shop-cyan .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-cyan .pace .pace-progress::after {\n  color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-bounce-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-cyan .pace-progress::before {\n  background: #17a2b8;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-cyan .pace-activity {\n  border-color: #17a2b8;\n}\n\n.pace-center-atom-cyan .pace-activity::after, .pace-center-atom-cyan .pace-activity::before {\n  border-color: #17a2b8;\n}\n\n.pace-center-circle-cyan .pace .pace-progress {\n  background: rgba(23, 162, 184, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-cyan .pace .pace-activity {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-radar-cyan .pace .pace-activity::before {\n  border-color: #17a2b8 transparent transparent;\n}\n\n.pace-center-simple-cyan .pace {\n  background: #fff;\n  border-color: #17a2b8;\n}\n\n.pace-center-simple-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-material-cyan .pace {\n  color: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity {\n  background: #17a2b8;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after,\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::before {\n  border-right-color: rgba(23, 162, 184, 0.2);\n  border-left-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-corner-indicator-cyan .pace .pace-activity::after {\n  border-top-color: rgba(23, 162, 184, 0.2);\n  border-bottom-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-fill-left-cyan .pace .pace-progress {\n  background-color: rgba(23, 162, 184, 0.2);\n}\n\n.pace-flash-cyan .pace .pace-progress {\n  background: #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #17a2b8, 0 0 5px #17a2b8;\n}\n\n.pace-flash-cyan .pace .pace-activity {\n  border-top-color: #17a2b8;\n  border-left-color: #17a2b8;\n}\n\n.pace-loading-bar-cyan .pace .pace-progress {\n  background: #17a2b8;\n  color: #17a2b8;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-cyan .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #17a2b8, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-cyan .pace .pace-progress {\n  background-color: #17a2b8;\n  box-shadow: inset -1px 0 #17a2b8, inset 0 -1px #17a2b8, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-cyan .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-cyan .pace-progress {\n  color: #17a2b8;\n}\n\n.pace-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace {\n  background: #1f2d3d;\n}\n\n.pace-barber-shop-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-barber-shop-white .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(31, 45, 61, 0.2) 25%, transparent 25%, transparent 50%, rgba(31, 45, 61, 0.2) 50%, rgba(31, 45, 61, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-white .pace .pace-progress::after {\n  color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-bounce-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-center-atom-white .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-white .pace-progress::before {\n  background: #fff;\n  color: #1f2d3d;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-white .pace-activity {\n  border-color: #fff;\n}\n\n.pace-center-atom-white .pace-activity::after, .pace-center-atom-white .pace-activity::before {\n  border-color: #fff;\n}\n\n.pace-center-circle-white .pace .pace-progress {\n  background: rgba(255, 255, 255, 0.8);\n  color: #1f2d3d;\n}\n\n.pace-center-radar-white .pace .pace-activity {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-radar-white .pace .pace-activity::before {\n  border-color: #fff transparent transparent;\n}\n\n.pace-center-simple-white .pace {\n  background: #1f2d3d;\n  border-color: #fff;\n}\n\n.pace-center-simple-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-material-white .pace {\n  color: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity {\n  background: #fff;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after,\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border: 5px solid #1f2d3d;\n}\n\n.pace-corner-indicator-white .pace .pace-activity::before {\n  border-right-color: rgba(255, 255, 255, 0.2);\n  border-left-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-corner-indicator-white .pace .pace-activity::after {\n  border-top-color: rgba(255, 255, 255, 0.2);\n  border-bottom-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-fill-left-white .pace .pace-progress {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.pace-flash-white .pace .pace-progress {\n  background: #fff;\n}\n\n.pace-flash-white .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #fff, 0 0 5px #fff;\n}\n\n.pace-flash-white .pace .pace-activity {\n  border-top-color: #fff;\n  border-left-color: #fff;\n}\n\n.pace-loading-bar-white .pace .pace-progress {\n  background: #fff;\n  color: #fff;\n  box-shadow: 120px 0 #1f2d3d, 240px 0 #1f2d3d;\n}\n\n.pace-loading-bar-white .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 7px #1f2d3d;\n}\n\n.pace-mac-osx-white .pace .pace-progress {\n  background-color: #fff;\n  box-shadow: inset -1px 0 #fff, inset 0 -1px #fff, inset 0 2px rgba(31, 45, 61, 0.5), inset 0 6px rgba(31, 45, 61, 0.3);\n}\n\n.pace-mac-osx-white .pace .pace-activity {\n  background-image: radial-gradient(rgba(31, 45, 61, 0.65) 0%, rgba(31, 45, 61, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-white .pace-progress {\n  color: #fff;\n}\n\n.pace-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-barber-shop-gray .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray .pace .pace-progress::after {\n  color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-bounce-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-center-atom-gray .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray .pace-progress::before {\n  background: #6c757d;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray .pace-activity {\n  border-color: #6c757d;\n}\n\n.pace-center-atom-gray .pace-activity::after, .pace-center-atom-gray .pace-activity::before {\n  border-color: #6c757d;\n}\n\n.pace-center-circle-gray .pace .pace-progress {\n  background: rgba(108, 117, 125, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray .pace .pace-activity {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-radar-gray .pace .pace-activity::before {\n  border-color: #6c757d transparent transparent;\n}\n\n.pace-center-simple-gray .pace {\n  background: #fff;\n  border-color: #6c757d;\n}\n\n.pace-center-simple-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-material-gray .pace {\n  color: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity {\n  background: #6c757d;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after,\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::before {\n  border-right-color: rgba(108, 117, 125, 0.2);\n  border-left-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-corner-indicator-gray .pace .pace-activity::after {\n  border-top-color: rgba(108, 117, 125, 0.2);\n  border-bottom-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-fill-left-gray .pace .pace-progress {\n  background-color: rgba(108, 117, 125, 0.2);\n}\n\n.pace-flash-gray .pace .pace-progress {\n  background: #6c757d;\n}\n\n.pace-flash-gray .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #6c757d, 0 0 5px #6c757d;\n}\n\n.pace-flash-gray .pace .pace-activity {\n  border-top-color: #6c757d;\n  border-left-color: #6c757d;\n}\n\n.pace-loading-bar-gray .pace .pace-progress {\n  background: #6c757d;\n  color: #6c757d;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #6c757d, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray .pace .pace-progress {\n  background-color: #6c757d;\n  box-shadow: inset -1px 0 #6c757d, inset 0 -1px #6c757d, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray .pace-progress {\n  color: #6c757d;\n}\n\n.pace-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace {\n  background: #fff;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-barber-shop-gray-dark .pace .pace-activity {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);\n}\n\n.pace-big-counter-gray-dark .pace .pace-progress::after {\n  color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-bounce-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-progress {\n  height: 100px;\n  width: 80px;\n}\n\n.pace-center-atom-gray-dark .pace-progress::before {\n  background: #343a40;\n  color: #fff;\n  font-size: .8rem;\n  line-height: .7rem;\n  padding-top: 17%;\n}\n\n.pace-center-atom-gray-dark .pace-activity {\n  border-color: #343a40;\n}\n\n.pace-center-atom-gray-dark .pace-activity::after, .pace-center-atom-gray-dark .pace-activity::before {\n  border-color: #343a40;\n}\n\n.pace-center-circle-gray-dark .pace .pace-progress {\n  background: rgba(52, 58, 64, 0.8);\n  color: #fff;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-radar-gray-dark .pace .pace-activity::before {\n  border-color: #343a40 transparent transparent;\n}\n\n.pace-center-simple-gray-dark .pace {\n  background: #fff;\n  border-color: #343a40;\n}\n\n.pace-center-simple-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-material-gray-dark .pace {\n  color: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity {\n  background: #343a40;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after,\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border: 5px solid #fff;\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::before {\n  border-right-color: rgba(52, 58, 64, 0.2);\n  border-left-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-corner-indicator-gray-dark .pace .pace-activity::after {\n  border-top-color: rgba(52, 58, 64, 0.2);\n  border-bottom-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-fill-left-gray-dark .pace .pace-progress {\n  background-color: rgba(52, 58, 64, 0.2);\n}\n\n.pace-flash-gray-dark .pace .pace-progress {\n  background: #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-progress-inner {\n  box-shadow: 0 0 10px #343a40, 0 0 5px #343a40;\n}\n\n.pace-flash-gray-dark .pace .pace-activity {\n  border-top-color: #343a40;\n  border-left-color: #343a40;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-progress {\n  background: #343a40;\n  color: #343a40;\n  box-shadow: 120px 0 #fff, 240px 0 #fff;\n}\n\n.pace-loading-bar-gray-dark .pace .pace-activity {\n  box-shadow: inset 0 0 0 2px #343a40, inset 0 0 0 7px #fff;\n}\n\n.pace-mac-osx-gray-dark .pace .pace-progress {\n  background-color: #343a40;\n  box-shadow: inset -1px 0 #343a40, inset 0 -1px #343a40, inset 0 2px rgba(255, 255, 255, 0.5), inset 0 6px rgba(255, 255, 255, 0.3);\n}\n\n.pace-mac-osx-gray-dark .pace .pace-activity {\n  background-image: radial-gradient(rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.15) 100%);\n  height: 12px;\n}\n\n.pace-progress-color-gray-dark .pace-progress {\n  color: #343a40;\n}\n\n/**\n  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n  *\n  * @version v3.4 (MODDED)\n  * @homepage https://bttstrp.github.io/bootstrap-switch\n  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n  * @license MIT\n  */\n.bootstrap-switch {\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  direction: ltr;\n  display: inline-block;\n  line-height: .5rem;\n  overflow: hidden;\n  position: relative;\n  text-align: left;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  z-index: 0;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  border-radius: 0.25rem;\n  display: inline-block;\n  top: 0;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n.bootstrap-switch:focus-within {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  box-sizing: border-box;\n  cursor: pointer;\n  display: table-cell;\n  font-size: 1rem;\n  font-weight: 500;\n  line-height: 1.2rem;\n  padding: .25rem .5rem;\n  vertical-align: middle;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  background: #e9ecef;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #3c8dbc;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #001f3f;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #3d9970;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #01ff70;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f012be;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #d81b60;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #007bff;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #dc3545;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #ffc107;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #28a745;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #17a2b8;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  filter: alpha(opacity=0);\n  left: 0;\n  margin: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  visibility: hidden;\n  z-index: -1;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .1rem .3rem;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  font-size: .875rem;\n  line-height: 1.5;\n  padding: .2rem .4rem;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  font-size: 1.25rem;\n  line-height: 1.3333333rem;\n  padding: .3rem .5rem;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly, .bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  cursor: default;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  transition: margin-left .5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-radius: 0 0.1rem 0.1rem 0;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-radius: 0.1rem 0 0 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 0.1rem;\n  border-top-right-radius: 0.1rem;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 0.1rem;\n  border-top-left-radius: 0.1rem;\n}\n\n.dark-mode .bootstrap-switch {\n  border-color: #6c757d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default {\n  background-color: #3a4047;\n  color: #fff;\n  border-color: #454d55;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-secondary,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-secondary {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-light,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-light {\n  background: #f8f9fa;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lightblue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lightblue {\n  background: #86bad8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-navy,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-navy {\n  background: #002c59;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-olive,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-olive {\n  background: #74c8a3;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-lime,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-lime {\n  background: #67ffa9;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-fuchsia,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-fuchsia {\n  background: #f672d8;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-maroon,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-maroon {\n  background: #ed6c9b;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-blue,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-blue {\n  background: #3f6791;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-indigo,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-indigo {\n  background: #6610f2;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-purple,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-purple {\n  background: #6f42c1;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-pink,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-pink {\n  background: #e83e8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-red,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-red {\n  background: #e74c3c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-orange,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-orange {\n  background: #fd7e14;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-yellow,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-yellow {\n  background: #f39c12;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-green,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-green {\n  background: #00bc8c;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-teal,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-teal {\n  background: #20c997;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-cyan,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-cyan {\n  background: #3498db;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-white,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-white {\n  background: #fff;\n  color: #1f2d3d;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray {\n  background: #6c757d;\n  color: #fff;\n}\n\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-gray-dark,\n.dark-mode .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-gray-dark {\n  background: #343a40;\n  color: #fff;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.dark-mode .irs--flat .irs-line {\n  background-color: #4b545c;\n}\n\n.dark-mode .jsgrid-edit-row > .jsgrid-cell,\n.dark-mode .jsgrid-filter-row > .jsgrid-cell,\n.dark-mode .jsgrid-grid-body, .dark-mode .jsgrid-grid-header,\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-insert-row > .jsgrid-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell,\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  border-color: #6c757d;\n}\n\n.dark-mode .jsgrid-header-row > .jsgrid-header-cell,\n.dark-mode .jsgrid-row > .jsgrid-cell {\n  background-color: #343a40;\n}\n\n.dark-mode .jsgrid-alt-row > .jsgrid-cell {\n  background-color: #3a4047;\n}\n\n.dark-mode .jsgrid-selected-row > .jsgrid-cell {\n  background-color: #3f474e;\n}\n/*# sourceMappingURL=adminlte.plugins.css.map */"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/all.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/brands.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/fontawesome.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-bacteria:before {\n  content: \"\\e059\"; }\n\n.fa-bacterium:before {\n  content: \"\\e05a\"; }\n\n.fa-bahai:before {\n  content: \"\\f666\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-box-tissue:before {\n  content: \"\\e05b\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buy-n-large:before {\n  content: \"\\f8a6\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caravan:before {\n  content: \"\\f8ff\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudflare:before {\n  content: \"\\e07d\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-alt:before {\n  content: \"\\f422\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dailymotion:before {\n  content: \"\\e052\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-deezer:before {\n  content: \"\\e077\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-disease:before {\n  content: \"\\f7fa\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edge-legacy:before {\n  content: \"\\e078\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-alt:before {\n  content: \"\\f424\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-faucet:before {\n  content: \"\\e005\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-firefox-browser:before {\n  content: \"\\e007\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-pay:before {\n  content: \"\\e079\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guilded:before {\n  content: \"\\e07e\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-medical:before {\n  content: \"\\e05c\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-holding-water:before {\n  content: \"\\f4c1\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-sparkles:before {\n  content: \"\\e05d\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-hands-wash:before {\n  content: \"\\e05e\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-handshake-alt-slash:before {\n  content: \"\\e05f\"; }\n\n.fa-handshake-slash:before {\n  content: \"\\e060\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-cowboy:before {\n  content: \"\\f8c0\"; }\n\n.fa-hat-cowboy-side:before {\n  content: \"\\f8c1\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-head-side-cough:before {\n  content: \"\\e061\"; }\n\n.fa-head-side-cough-slash:before {\n  content: \"\\e062\"; }\n\n.fa-head-side-mask:before {\n  content: \"\\e063\"; }\n\n.fa-head-side-virus:before {\n  content: \"\\e064\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hive:before {\n  content: \"\\e07f\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hospital-user:before {\n  content: \"\\f80d\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-house-user:before {\n  content: \"\\e065\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-ideal:before {\n  content: \"\\e013\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-innosoft:before {\n  content: \"\\e080\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-instagram-square:before {\n  content: \"\\e055\"; }\n\n.fa-instalod:before {\n  content: \"\\e081\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-house:before {\n  content: \"\\e066\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lungs:before {\n  content: \"\\f604\"; }\n\n.fa-lungs-virus:before {\n  content: \"\\e067\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-mdb:before {\n  content: \"\\f8ca\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microblog:before {\n  content: \"\\e01a\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mixer:before {\n  content: \"\\e056\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse:before {\n  content: \"\\f8cc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-octopus-deploy:before {\n  content: \"\\e082\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-orcid:before {\n  content: \"\\f8d2\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-arrows:before {\n  content: \"\\e068\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-perbyte:before {\n  content: \"\\e083\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-pied-piper-square:before {\n  content: \"\\e01e\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-plane-slash:before {\n  content: \"\\e069\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pump-medical:before {\n  content: \"\\e06a\"; }\n\n.fa-pump-soap:before {\n  content: \"\\e06b\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-record-vinyl:before {\n  content: \"\\f8d9\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-rust:before {\n  content: \"\\e07a\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-shield-virus:before {\n  content: \"\\e06c\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopify:before {\n  content: \"\\e057\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sink:before {\n  content: \"\\e06d\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-soap:before {\n  content: \"\\e06e\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-stopwatch-20:before {\n  content: \"\\e06f\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-store-alt-slash:before {\n  content: \"\\e070\"; }\n\n.fa-store-slash:before {\n  content: \"\\e071\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swift:before {\n  content: \"\\f8e1\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-tiktok:before {\n  content: \"\\e07b\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toilet-paper-slash:before {\n  content: \"\\e072\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-trailer:before {\n  content: \"\\e041\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbraco:before {\n  content: \"\\f8e8\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-uncharted:before {\n  content: \"\\e084\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-unity:before {\n  content: \"\\e049\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-unsplash:before {\n  content: \"\\e07c\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-users-slash:before {\n  content: \"\\e073\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-vest:before {\n  content: \"\\e085\"; }\n\n.fa-vest-patches:before {\n  content: \"\\e086\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-virus:before {\n  content: \"\\e074\"; }\n\n.fa-virus-slash:before {\n  content: \"\\e075\"; }\n\n.fa-viruses:before {\n  content: \"\\e076\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-watchman-monitoring:before {\n  content: \"\\e087\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wodu:before {\n  content: \"\\e088\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/regular.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: block;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/solid.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: block;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/svg-with-js.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nsvg:not(:root).svg-inline--fa {\n  overflow: visible; }\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -.125em; }\n  .svg-inline--fa.fa-lg {\n    vertical-align: -.225em; }\n  .svg-inline--fa.fa-w-1 {\n    width: 0.0625em; }\n  .svg-inline--fa.fa-w-2 {\n    width: 0.125em; }\n  .svg-inline--fa.fa-w-3 {\n    width: 0.1875em; }\n  .svg-inline--fa.fa-w-4 {\n    width: 0.25em; }\n  .svg-inline--fa.fa-w-5 {\n    width: 0.3125em; }\n  .svg-inline--fa.fa-w-6 {\n    width: 0.375em; }\n  .svg-inline--fa.fa-w-7 {\n    width: 0.4375em; }\n  .svg-inline--fa.fa-w-8 {\n    width: 0.5em; }\n  .svg-inline--fa.fa-w-9 {\n    width: 0.5625em; }\n  .svg-inline--fa.fa-w-10 {\n    width: 0.625em; }\n  .svg-inline--fa.fa-w-11 {\n    width: 0.6875em; }\n  .svg-inline--fa.fa-w-12 {\n    width: 0.75em; }\n  .svg-inline--fa.fa-w-13 {\n    width: 0.8125em; }\n  .svg-inline--fa.fa-w-14 {\n    width: 0.875em; }\n  .svg-inline--fa.fa-w-15 {\n    width: 0.9375em; }\n  .svg-inline--fa.fa-w-16 {\n    width: 1em; }\n  .svg-inline--fa.fa-w-17 {\n    width: 1.0625em; }\n  .svg-inline--fa.fa-w-18 {\n    width: 1.125em; }\n  .svg-inline--fa.fa-w-19 {\n    width: 1.1875em; }\n  .svg-inline--fa.fa-w-20 {\n    width: 1.25em; }\n  .svg-inline--fa.fa-pull-left {\n    margin-right: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-pull-right {\n    margin-left: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-border {\n    height: 1.5em; }\n  .svg-inline--fa.fa-li {\n    width: 2em; }\n  .svg-inline--fa.fa-fw {\n    width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -.125em;\n  width: 1em; }\n  .fa-layers svg.svg-inline--fa {\n    -webkit-transform-origin: center center;\n            transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n  display: inline-block;\n  position: absolute;\n  text-align: center; }\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center; }\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  line-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: .25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left; }\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-top-left {\n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em; }\n\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em; }\n\n.fa-inverse {\n  color: #fff; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black; }\n\n.fad.fa-inverse {\n  color: #fff; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/assets/plugins/fontawesome-free/css/v4-shims.css",
    "content": "/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa.fa-glass:before {\n  content: \"\\f000\"; }\n\n.fa.fa-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-o:before {\n  content: \"\\f005\"; }\n\n.fa.fa-remove:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-close:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-gear:before {\n  content: \"\\f013\"; }\n\n.fa.fa-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-trash-o:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-o:before {\n  content: \"\\f15b\"; }\n\n.fa.fa-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-clock-o:before {\n  content: \"\\f017\"; }\n\n.fa.fa-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-down:before {\n  content: \"\\f358\"; }\n\n.fa.fa-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-up:before {\n  content: \"\\f35b\"; }\n\n.fa.fa-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-play-circle-o:before {\n  content: \"\\f144\"; }\n\n.fa.fa-repeat:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-rotate-right:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-refresh:before {\n  content: \"\\f021\"; }\n\n.fa.fa-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dedent:before {\n  content: \"\\f03b\"; }\n\n.fa.fa-video-camera:before {\n  content: \"\\f03d\"; }\n\n.fa.fa-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-picture-o:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-photo:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-pencil:before {\n  content: \"\\f303\"; }\n\n.fa.fa-map-marker:before {\n  content: \"\\f3c5\"; }\n\n.fa.fa-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pencil-square-o:before {\n  content: \"\\f044\"; }\n\n.fa.fa-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-share-square-o:before {\n  content: \"\\f14d\"; }\n\n.fa.fa-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-square-o:before {\n  content: \"\\f14a\"; }\n\n.fa.fa-arrows:before {\n  content: \"\\f0b2\"; }\n\n.fa.fa-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-circle-o:before {\n  content: \"\\f057\"; }\n\n.fa.fa-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-circle-o:before {\n  content: \"\\f058\"; }\n\n.fa.fa-mail-forward:before {\n  content: \"\\f064\"; }\n\n.fa.fa-expand:before {\n  content: \"\\f424\"; }\n\n.fa.fa-compress:before {\n  content: \"\\f422\"; }\n\n.fa.fa-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-warning:before {\n  content: \"\\f071\"; }\n\n.fa.fa-calendar:before {\n  content: \"\\f073\"; }\n\n.fa.fa-arrows-v:before {\n  content: \"\\f338\"; }\n\n.fa.fa-arrows-h:before {\n  content: \"\\f337\"; }\n\n.fa.fa-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart:before {\n  content: \"\\f080\"; }\n\n.fa.fa-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart-o:before {\n  content: \"\\f080\"; }\n\n.fa.fa-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gears:before {\n  content: \"\\f085\"; }\n\n.fa.fa-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-up:before {\n  content: \"\\f164\"; }\n\n.fa.fa-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-down:before {\n  content: \"\\f165\"; }\n\n.fa.fa-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-heart-o:before {\n  content: \"\\f004\"; }\n\n.fa.fa-sign-out:before {\n  content: \"\\f2f5\"; }\n\n.fa.fa-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin-square:before {\n  content: \"\\f08c\"; }\n\n.fa.fa-thumb-tack:before {\n  content: \"\\f08d\"; }\n\n.fa.fa-external-link:before {\n  content: \"\\f35d\"; }\n\n.fa.fa-sign-in:before {\n  content: \"\\f2f6\"; }\n\n.fa.fa-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lemon-o:before {\n  content: \"\\f094\"; }\n\n.fa.fa-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-square-o:before {\n  content: \"\\f0c8\"; }\n\n.fa.fa-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bookmark-o:before {\n  content: \"\\f02e\"; }\n\n.fa.fa-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-feed:before {\n  content: \"\\f09e\"; }\n\n.fa.fa-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hdd-o:before {\n  content: \"\\f0a0\"; }\n\n.fa.fa-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-right:before {\n  content: \"\\f0a4\"; }\n\n.fa.fa-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-left:before {\n  content: \"\\f0a5\"; }\n\n.fa.fa-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-up:before {\n  content: \"\\f0a6\"; }\n\n.fa.fa-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-down:before {\n  content: \"\\f0a7\"; }\n\n.fa.fa-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa.fa-group:before {\n  content: \"\\f0c0\"; }\n\n.fa.fa-chain:before {\n  content: \"\\f0c1\"; }\n\n.fa.fa-scissors:before {\n  content: \"\\f0c4\"; }\n\n.fa.fa-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-files-o:before {\n  content: \"\\f0c5\"; }\n\n.fa.fa-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-floppy-o:before {\n  content: \"\\f0c7\"; }\n\n.fa.fa-navicon:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-reorder:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus:before {\n  content: \"\\f0d5\"; }\n\n.fa.fa-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-money:before {\n  content: \"\\f3d1\"; }\n\n.fa.fa-unsorted:before {\n  content: \"\\f0dc\"; }\n\n.fa.fa-sort-desc:before {\n  content: \"\\f0dd\"; }\n\n.fa.fa-sort-asc:before {\n  content: \"\\f0de\"; }\n\n.fa.fa-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin:before {\n  content: \"\\f0e1\"; }\n\n.fa.fa-rotate-left:before {\n  content: \"\\f0e2\"; }\n\n.fa.fa-legal:before {\n  content: \"\\f0e3\"; }\n\n.fa.fa-tachometer:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-dashboard:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comment-o:before {\n  content: \"\\f075\"; }\n\n.fa.fa-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comments-o:before {\n  content: \"\\f086\"; }\n\n.fa.fa-flash:before {\n  content: \"\\f0e7\"; }\n\n.fa.fa-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste:before {\n  content: \"\\f328\"; }\n\n.fa.fa-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lightbulb-o:before {\n  content: \"\\f0eb\"; }\n\n.fa.fa-exchange:before {\n  content: \"\\f362\"; }\n\n.fa.fa-cloud-download:before {\n  content: \"\\f381\"; }\n\n.fa.fa-cloud-upload:before {\n  content: \"\\f382\"; }\n\n.fa.fa-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-o:before {\n  content: \"\\f0f3\"; }\n\n.fa.fa-cutlery:before {\n  content: \"\\f2e7\"; }\n\n.fa.fa-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-text-o:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-building-o:before {\n  content: \"\\f1ad\"; }\n\n.fa.fa-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hospital-o:before {\n  content: \"\\f0f8\"; }\n\n.fa.fa-tablet:before {\n  content: \"\\f3fa\"; }\n\n.fa.fa-mobile:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-mobile-phone:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-o:before {\n  content: \"\\f111\"; }\n\n.fa.fa-mail-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa.fa-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-o:before {\n  content: \"\\f07b\"; }\n\n.fa.fa-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-open-o:before {\n  content: \"\\f07c\"; }\n\n.fa.fa-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-smile-o:before {\n  content: \"\\f118\"; }\n\n.fa.fa-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-frown-o:before {\n  content: \"\\f119\"; }\n\n.fa.fa-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-meh-o:before {\n  content: \"\\f11a\"; }\n\n.fa.fa-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-keyboard-o:before {\n  content: \"\\f11c\"; }\n\n.fa.fa-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-flag-o:before {\n  content: \"\\f024\"; }\n\n.fa.fa-mail-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa.fa-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-o:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-empty:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-full:before {\n  content: \"\\f089\"; }\n\n.fa.fa-code-fork:before {\n  content: \"\\f126\"; }\n\n.fa.fa-chain-broken:before {\n  content: \"\\f127\"; }\n\n.fa.fa-shield:before {\n  content: \"\\f3ed\"; }\n\n.fa.fa-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-o:before {\n  content: \"\\f133\"; }\n\n.fa.fa-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ticket:before {\n  content: \"\\f3ff\"; }\n\n.fa.fa-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-minus-square-o:before {\n  content: \"\\f146\"; }\n\n.fa.fa-level-up:before {\n  content: \"\\f3bf\"; }\n\n.fa.fa-level-down:before {\n  content: \"\\f3be\"; }\n\n.fa.fa-pencil-square:before {\n  content: \"\\f14b\"; }\n\n.fa.fa-external-link-square:before {\n  content: \"\\f360\"; }\n\n.fa.fa-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-eur:before {\n  content: \"\\f153\"; }\n\n.fa.fa-euro:before {\n  content: \"\\f153\"; }\n\n.fa.fa-gbp:before {\n  content: \"\\f154\"; }\n\n.fa.fa-usd:before {\n  content: \"\\f155\"; }\n\n.fa.fa-dollar:before {\n  content: \"\\f155\"; }\n\n.fa.fa-inr:before {\n  content: \"\\f156\"; }\n\n.fa.fa-rupee:before {\n  content: \"\\f156\"; }\n\n.fa.fa-jpy:before {\n  content: \"\\f157\"; }\n\n.fa.fa-cny:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rmb:before {\n  content: \"\\f157\"; }\n\n.fa.fa-yen:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rub:before {\n  content: \"\\f158\"; }\n\n.fa.fa-ruble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-rouble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-krw:before {\n  content: \"\\f159\"; }\n\n.fa.fa-won:before {\n  content: \"\\f159\"; }\n\n.fa.fa-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin:before {\n  content: \"\\f15a\"; }\n\n.fa.fa-file-text:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-sort-alpha-asc:before {\n  content: \"\\f15d\"; }\n\n.fa.fa-sort-alpha-desc:before {\n  content: \"\\f881\"; }\n\n.fa.fa-sort-amount-asc:before {\n  content: \"\\f160\"; }\n\n.fa.fa-sort-amount-desc:before {\n  content: \"\\f884\"; }\n\n.fa.fa-sort-numeric-asc:before {\n  content: \"\\f162\"; }\n\n.fa.fa-sort-numeric-desc:before {\n  content: \"\\f886\"; }\n\n.fa.fa-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play:before {\n  content: \"\\f167\"; }\n\n.fa.fa-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square:before {\n  content: \"\\f171\"; }\n\n.fa.fa-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-long-arrow-down:before {\n  content: \"\\f309\"; }\n\n.fa.fa-long-arrow-up:before {\n  content: \"\\f30c\"; }\n\n.fa.fa-long-arrow-left:before {\n  content: \"\\f30a\"; }\n\n.fa.fa-long-arrow-right:before {\n  content: \"\\f30b\"; }\n\n.fa.fa-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip:before {\n  content: \"\\f184\"; }\n\n.fa.fa-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sun-o:before {\n  content: \"\\f185\"; }\n\n.fa.fa-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-moon-o:before {\n  content: \"\\f186\"; }\n\n.fa.fa-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right:before {\n  content: \"\\f35a\"; }\n\n.fa.fa-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-left:before {\n  content: \"\\f359\"; }\n\n.fa.fa-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dot-circle-o:before {\n  content: \"\\f192\"; }\n\n.fa.fa-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-try:before {\n  content: \"\\f195\"; }\n\n.fa.fa-turkish-lira:before {\n  content: \"\\f195\"; }\n\n.fa.fa-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-plus-square-o:before {\n  content: \"\\f0fe\"; }\n\n.fa.fa-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-institution:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-bank:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-mortar-board:before {\n  content: \"\\f19d\"; }\n\n.fa.fa-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa.fa-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-automobile:before {\n  content: \"\\f1b9\"; }\n\n.fa.fa-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-o:before {\n  content: \"\\f0e0\"; }\n\n.fa.fa-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o:before {\n  content: \"\\f1c1\"; }\n\n.fa.fa-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-word-o:before {\n  content: \"\\f1c2\"; }\n\n.fa.fa-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-excel-o:before {\n  content: \"\\f1c3\"; }\n\n.fa.fa-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\"; }\n\n.fa.fa-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-image-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-photo-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-picture-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-archive-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-zip-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-audio-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-sound-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-video-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-movie-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-code-o:before {\n  content: \"\\f1c9\"; }\n\n.fa.fa-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-buoy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-saver:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-support:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-circle-o-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa.fa-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-resistance:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge:before {\n  content: \"\\f1d1\"; }\n\n.fa.fa-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat:before {\n  content: \"\\f1d7\"; }\n\n.fa.fa-send:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paper-plane-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-send-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-thin:before {\n  content: \"\\f111\"; }\n\n.fa.fa-header:before {\n  content: \"\\f1dc\"; }\n\n.fa.fa-sliders:before {\n  content: \"\\f1de\"; }\n\n.fa.fa-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-futbol-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-soccer-ball-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o:before {\n  content: \"\\f1ea\"; }\n\n.fa.fa-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o:before {\n  content: \"\\f1f6\"; }\n\n.fa.fa-trash:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eyedropper:before {\n  content: \"\\f1fb\"; }\n\n.fa.fa-area-chart:before {\n  content: \"\\f1fe\"; }\n\n.fa.fa-pie-chart:before {\n  content: \"\\f200\"; }\n\n.fa.fa-line-chart:before {\n  content: \"\\f201\"; }\n\n.fa.fa-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-cc:before {\n  content: \"\\f20a\"; }\n\n.fa.fa-ils:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-shekel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-sheqel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-meanpath:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-diamond:before {\n  content: \"\\f3a5\"; }\n\n.fa.fa-intersex:before {\n  content: \"\\f224\"; }\n\n.fa.fa-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-official:before {\n  content: \"\\f09a\"; }\n\n.fa.fa-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hotel:before {\n  content: \"\\f236\"; }\n\n.fa.fa-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc:before {\n  content: \"\\f23b\"; }\n\n.fa.fa-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-battery-4:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery-3:before {\n  content: \"\\f241\"; }\n\n.fa.fa-battery-2:before {\n  content: \"\\f242\"; }\n\n.fa.fa-battery-1:before {\n  content: \"\\f243\"; }\n\n.fa.fa-battery-0:before {\n  content: \"\\f244\"; }\n\n.fa.fa-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o:before {\n  content: \"\\f249\"; }\n\n.fa.fa-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o:before {\n  content: \"\\f254\"; }\n\n.fa.fa-hourglass-1:before {\n  content: \"\\f251\"; }\n\n.fa.fa-hourglass-2:before {\n  content: \"\\f252\"; }\n\n.fa.fa-hourglass-3:before {\n  content: \"\\f253\"; }\n\n.fa.fa-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-rock-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-grab-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-paper-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-stop-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-scissors-o:before {\n  content: \"\\f257\"; }\n\n.fa.fa-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-lizard-o:before {\n  content: \"\\f258\"; }\n\n.fa.fa-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-spock-o:before {\n  content: \"\\f259\"; }\n\n.fa.fa-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-pointer-o:before {\n  content: \"\\f25a\"; }\n\n.fa.fa-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-peace-o:before {\n  content: \"\\f25b\"; }\n\n.fa.fa-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-television:before {\n  content: \"\\f26c\"; }\n\n.fa.fa-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o:before {\n  content: \"\\f271\"; }\n\n.fa.fa-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-minus-o:before {\n  content: \"\\f272\"; }\n\n.fa.fa-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-times-o:before {\n  content: \"\\f273\"; }\n\n.fa.fa-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-check-o:before {\n  content: \"\\f274\"; }\n\n.fa.fa-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-map-o:before {\n  content: \"\\f279\"; }\n\n.fa.fa-commenting:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-commenting-o:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo:before {\n  content: \"\\f27d\"; }\n\n.fa.fa-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card-alt:before {\n  content: \"\\f09d\"; }\n\n.fa.fa-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o:before {\n  content: \"\\f28b\"; }\n\n.fa.fa-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-stop-circle-o:before {\n  content: \"\\f28d\"; }\n\n.fa.fa-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt:before {\n  content: \"\\f368\"; }\n\n.fa.fa-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-question-circle-o:before {\n  content: \"\\f059\"; }\n\n.fa.fa-volume-control-phone:before {\n  content: \"\\f2a0\"; }\n\n.fa.fa-asl-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa.fa-deafness:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-hard-of-hearing:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-signing:before {\n  content: \"\\f2a7\"; }\n\n.fa.fa-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-circle:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-handshake-o:before {\n  content: \"\\f2b5\"; }\n\n.fa.fa-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-open-o:before {\n  content: \"\\f2b6\"; }\n\n.fa.fa-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-book-o:before {\n  content: \"\\f2b9\"; }\n\n.fa.fa-vcard:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-card-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-vcard-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-circle-o:before {\n  content: \"\\f2bd\"; }\n\n.fa.fa-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-o:before {\n  content: \"\\f007\"; }\n\n.fa.fa-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-id-card-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-thermometer-4:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer-3:before {\n  content: \"\\f2c8\"; }\n\n.fa.fa-thermometer-2:before {\n  content: \"\\f2c9\"; }\n\n.fa.fa-thermometer-1:before {\n  content: \"\\f2ca\"; }\n\n.fa.fa-thermometer-0:before {\n  content: \"\\f2cb\"; }\n\n.fa.fa-bathtub:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-s15:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle:before {\n  content: \"\\f410\"; }\n\n.fa.fa-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-close-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast:before {\n  content: \"\\f2da\"; }\n\n.fa.fa-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-snowflake-o:before {\n  content: \"\\f2dc\"; }\n\n.fa.fa-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cab:before {\n  content: \"\\f1ba\"; }\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/index.tsx",
    "content": "import { default as React } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { PersistGate } from \"redux-persist/integration/react\";\nimport App from \"./App\";\nimport { persistor, store } from \"./redux/store\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nReactDOM.render(\n  <Provider store={store}>\n    <PersistGate persistor={persistor}>\n      <React.StrictMode>\n        <App />\n      </React.StrictMode>\n    </PersistGate>\n  </Provider>,\n  document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/pages/ErrorPage/Error404.tsx",
    "content": "const Error404 = () => {\n  return (\n    <div className=\"content-wrapper\">\n      <section className=\"content-header\">\n        <div className=\"container-fluid\">\n          <div className=\"row mb-2\">\n            <div className=\"col-sm-6\">\n              <h1>404 Error Page</h1>\n            </div>\n            <div className=\"col-sm-6\">\n              <ol className=\"breadcrumb float-sm-right\">\n                <li className=\"breadcrumb-item\">\n                  <a href=\"#\">Home</a>\n                </li>\n                <li className=\"breadcrumb-item active\">404 Error Page</li>\n              </ol>\n            </div>\n          </div>\n        </div>\n      </section>\n\n      <section className=\"content\">\n        <div className=\"error-page\">\n          <h2 className=\"headline text-warning\"> 404</h2>\n\n          <div className=\"error-content\">\n            <h3>\n              <i className=\"fas fa-exclamation-triangle text-warning\"></i> Oops!\n              Page not found.\n            </h3>\n\n            <p>\n              We could not find the page you were looking for. Meanwhile, you\n              may <a href=\"../../index.html\">return to dashboard</a> or try\n              using the search form.\n            </p>\n\n            <form className=\"search-form\">\n              <div className=\"input-group\">\n                <input type=\"text\" name=\"search\" className=\"form-control\" placeholder=\"Search\"/>\n\n                <div className=\"input-group-append\">\n                  <button\n                    type=\"submit\"\n                    name=\"submit\"\n                    className=\"btn btn-warning\"\n                  >\n                    <i className=\"fas fa-search\"></i>\n                  </button>\n                </div>\n              </div>\n            </form>\n          </div>\n        </div>\n      </section>\n    </div>\n  );\n};\n\nexport default Error404;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/pages/Register/Register.tsx",
    "content": "import Logo from \"../../assets/img/logo/logo-mini.png\";\n\nconst Register = () => {\n  return (\n    <div className=\"register-box\">\n      <div className=\"register-logo\">\n        <img src={Logo} />\n      </div>\n\n      <div className=\"card\">\n        <div className=\"card-body register-card-body\">\n          <p className=\"login-box-msg\">Register a new membership</p>\n\n          <form action=\"../../index.html\" method=\"post\">\n            <div className=\"input-group mb-3\">\n              <input\n                type=\"text\"\n                className=\"form-control\"\n                placeholder=\"Full name\"\n              />\n              <div className=\"input-group-append\">\n                <div className=\"input-group-text\">\n                  <span className=\"fas fa-user\"></span>\n                </div>\n              </div>\n            </div>\n            <div className=\"input-group mb-3\">\n              <input\n                type=\"email\"\n                className=\"form-control\"\n                placeholder=\"Email\"\n              />\n              <div className=\"input-group-append\">\n                <div className=\"input-group-text\">\n                  <span className=\"fas fa-envelope\"></span>\n                </div>\n              </div>\n            </div>\n            <div className=\"input-group mb-3\">\n              <input\n                type=\"password\"\n                className=\"form-control\"\n                placeholder=\"Password\"\n              />\n              <div className=\"input-group-append\">\n                <div className=\"input-group-text\">\n                  <span className=\"fas fa-lock\"></span>\n                </div>\n              </div>\n            </div>\n            <div className=\"input-group mb-3\">\n              <input\n                type=\"password\"\n                className=\"form-control\"\n                placeholder=\"Retype password\"\n              />\n              <div className=\"input-group-append\">\n                <div className=\"input-group-text\">\n                  <span className=\"fas fa-lock\"></span>\n                </div>\n              </div>\n            </div>\n            <div className=\"row\">\n              <div className=\"col-8\"></div>\n\n              <div className=\"col-4\">\n                <button type=\"submit\" className=\"btn btn-primary btn-block\">\n                  Register\n                </button>\n              </div>\n            </div>\n          </form>\n\n          <a href=\"login.html\" className=\"text-center\">\n            I already have a membership\n          </a>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default Register;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/react-app-env.d.ts",
    "content": "/// <reference types=\"react-scripts\" />\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/redux/auth/authReducer.ts",
    "content": "export interface AuthTypes {\n  userID: string | null;\n  firstName: string | null;\n  lastName: string | null;\n  email: string | null;\n  authentication_key: string | null;\n}\n\nconst INITIAL_STATE: AuthTypes = {\n  userID: null,\n  firstName: null,\n  lastName: null,\n  email: null,\n  authentication_key: null,\n};\n\ntype Action = { type: string; payload: any };\n\nconst auth = (state: AuthTypes = INITIAL_STATE, action: Action): AuthTypes => {\n  switch (action.type) {\n    default:\n      return state;\n  }\n};\n\nexport default auth;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/redux/auth/authTypes.ts",
    "content": "export const LOGIN_REQUEST = \"LOGIN_REQUEST\";\nexport const LOGIN_SUCCESS = \"LOGIN_SUCCESS\";\nexport const LOGIN_FAILED = \"LOGIN_FAILED\";\n\nexport const REGISTER_REQUEST = \"REGISTER_REQUEST\";\nexport const REGISTER_SUCCESS = \"REGISTER_SUCCESS\";\nexport const REGISTER_FAILED = \"REGISTER_FAILED\";\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/redux/root-reducer.ts",
    "content": "import { combineReducers } from \"redux\";\nimport auth from \"./auth/authReducer\";\n\nexport default combineReducers({\n  auth,\n});\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/redux/store.ts",
    "content": "import { applyMiddleware, compose, createStore } from \"redux\";\nimport { persistReducer, persistStore } from \"redux-persist\";\nimport storage from \"redux-persist/lib/storage\";\nimport promiseMiddleware from \"redux-promise\";\nimport reduxThunk from \"redux-thunk\";\nimport rootReducer from \"./root-reducer\";\n\ndeclare global {\n  interface Window {\n    __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;\n  }\n}\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst persistConfig = {\n  key: \"auth\",\n  storage,\n  whitelist: [\"auth\"],\n};\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\n\nconst middleware = [reduxThunk, promiseMiddleware];\n\nconst store = createStore(\n  persistedReducer,\n  composeEnhancers(applyMiddleware(...middleware))\n);\n\nconst persistor = persistStore(store);\n\nexport type RootStore = ReturnType<typeof rootReducer>;\n\nexport { persistor, store };\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/reportWebVitals.ts",
    "content": "import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n  if (onPerfEntry && onPerfEntry instanceof Function) {\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n      getCLS(onPerfEntry);\n      getFID(onPerfEntry);\n      getFCP(onPerfEntry);\n      getLCP(onPerfEntry);\n      getTTFB(onPerfEntry);\n    });\n  }\n};\n\nexport default reportWebVitals;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/routes/index.tsx",
    "content": "import React from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport Error404 from \"../pages/ErrorPage/Error404\";\nimport Register from \"../pages/Register/Register\";\n\nconst Routes = () => (\n  <Router>\n    <Switch>\n      <Route path=\"/register\" component={Register} />\n      <Route component={Error404} />\n    </Switch>\n  </Router>\n);\n\nexport default Routes;\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/setupTests.ts",
    "content": "// jest-dom adds custom jest matchers for asserting on DOM nodes.\n// allows you to do things like:\n// expect(element).toHaveTextContent(/react/i)\n// learn more: https://github.com/testing-library/jest-dom\nimport '@testing-library/jest-dom';\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Button.stories.tsx",
    "content": "import React from 'react';\nimport { ComponentStory, ComponentMeta } from '@storybook/react';\n\nimport { Button } from './Button';\n\nexport default {\n  title: 'Example/Button',\n  component: Button,\n  argTypes: {\n    backgroundColor: { control: 'color' },\n  },\n} as ComponentMeta<typeof Button>;\n\nconst Template: ComponentStory<typeof Button> = (args) => <Button {...args} />;\n\nexport const Primary = Template.bind({});\nPrimary.args = {\n  primary: true,\n  label: 'Button',\n};\n\nexport const Secondary = Template.bind({});\nSecondary.args = {\n  label: 'Button',\n};\n\nexport const Large = Template.bind({});\nLarge.args = {\n  size: 'large',\n  label: 'Button',\n};\n\nexport const Small = Template.bind({});\nSmall.args = {\n  size: 'small',\n  label: 'Button',\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Button.tsx",
    "content": "import React from 'react';\nimport './button.css';\n\ninterface ButtonProps {\n  /**\n   * Is this the principal call to action on the page?\n   */\n  primary?: boolean;\n  /**\n   * What background color to use\n   */\n  backgroundColor?: string;\n  /**\n   * How large should the button be?\n   */\n  size?: 'small' | 'medium' | 'large';\n  /**\n   * Button contents\n   */\n  label: string;\n  /**\n   * Optional click handler\n   */\n  onClick?: () => void;\n}\n\n/**\n * Primary UI component for user interaction\n */\nexport const Button = ({\n  primary = false,\n  size = 'medium',\n  backgroundColor,\n  label,\n  ...props\n}: ButtonProps) => {\n  const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';\n  return (\n    <button\n      type=\"button\"\n      className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}\n      style={{ backgroundColor }}\n      {...props}\n    >\n      {label}\n    </button>\n  );\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Header.stories.tsx",
    "content": "import React from 'react';\nimport { ComponentStory, ComponentMeta } from '@storybook/react';\n\nimport { Header } from './Header';\n\nexport default {\n  title: 'Example/Header',\n  component: Header,\n} as ComponentMeta<typeof Header>;\n\nconst Template: ComponentStory<typeof Header> = (args) => <Header {...args} />;\n\nexport const LoggedIn = Template.bind({});\nLoggedIn.args = {\n  user: {},\n};\n\nexport const LoggedOut = Template.bind({});\nLoggedOut.args = {};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Header.tsx",
    "content": "import React from 'react';\n\nimport { Button } from './Button';\nimport './header.css';\n\ninterface HeaderProps {\n  user?: {};\n  onLogin: () => void;\n  onLogout: () => void;\n  onCreateAccount: () => void;\n}\n\nexport const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => (\n  <header>\n    <div className=\"wrapper\">\n      <div>\n        <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <path\n              d=\"M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z\"\n              fill=\"#FFF\"\n            />\n            <path\n              d=\"M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z\"\n              fill=\"#555AB9\"\n            />\n            <path\n              d=\"M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z\"\n              fill=\"#91BAF8\"\n            />\n          </g>\n        </svg>\n        <h1>Acme</h1>\n      </div>\n      <div>\n        {user ? (\n          <Button size=\"small\" onClick={onLogout} label=\"Log out\" />\n        ) : (\n          <>\n            <Button size=\"small\" onClick={onLogin} label=\"Log in\" />\n            <Button primary size=\"small\" onClick={onCreateAccount} label=\"Sign up\" />\n          </>\n        )}\n      </div>\n    </div>\n  </header>\n);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Introduction.stories.mdx",
    "content": "import { Meta } from '@storybook/addon-docs';\nimport Code from './assets/code-brackets.svg';\nimport Colors from './assets/colors.svg';\nimport Comments from './assets/comments.svg';\nimport Direction from './assets/direction.svg';\nimport Flow from './assets/flow.svg';\nimport Plugin from './assets/plugin.svg';\nimport Repo from './assets/repo.svg';\nimport StackAlt from './assets/stackalt.svg';\n\n<Meta title=\"Example/Introduction\" />\n\n<style>{`\n  .subheading {\n    --mediumdark: '#999999';\n    font-weight: 900;\n    font-size: 13px;\n    color: #999;\n    letter-spacing: 6px;\n    line-height: 24px;\n    text-transform: uppercase;\n    margin-bottom: 12px;\n    margin-top: 40px;\n  }\n\n  .link-list {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: 1fr 1fr;\n    row-gap: 10px;\n  }\n\n  @media (min-width: 620px) {\n    .link-list {\n      row-gap: 20px;\n      column-gap: 20px;\n      grid-template-columns: 1fr 1fr;\n    }\n  }\n\n  @media all and (-ms-high-contrast:none) {\n  .link-list {\n      display: -ms-grid;\n      -ms-grid-columns: 1fr 1fr;\n      -ms-grid-rows: 1fr 1fr;\n    }\n  }\n\n  .link-item {\n    display: block;\n    padding: 20px 30px 20px 15px;\n    border: 1px solid #00000010;\n    border-radius: 5px;\n    transition: background 150ms ease-out, border 150ms ease-out, transform 150ms ease-out;\n    color: #333333;\n    display: flex;\n    align-items: flex-start;\n  }\n\n  .link-item:hover {\n    border-color: #1EA7FD50;\n    transform: translate3d(0, -3px, 0);\n    box-shadow: rgba(0, 0, 0, 0.08) 0 3px 10px 0;\n  }\n\n  .link-item:active {\n    border-color: #1EA7FD;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .link-item strong {\n    font-weight: 700;\n    display: block;\n    margin-bottom: 2px;\n  }\n  \n  .link-item img {\n    height: 40px;\n    width: 40px;\n    margin-right: 15px;\n    flex: none;\n  }\n\n  .link-item span {\n    font-size: 14px;\n    line-height: 20px;\n  }\n\n  .tip {\n    display: inline-block;\n    border-radius: 1em;\n    font-size: 11px;\n    line-height: 12px;\n    font-weight: 700;\n    background: #E7FDD8;\n    color: #66BF3C;\n    padding: 4px 12px;\n    margin-right: 10px;\n    vertical-align: top;\n  }\n\n  .tip-wrapper {\n    font-size: 13px;\n    line-height: 20px;\n    margin-top: 40px;\n    margin-bottom: 40px;\n  }\n\n  .tip-wrapper code {\n    font-size: 12px;\n    display: inline-block;\n  }\n\n  \n`}</style>\n\n# Welcome to Storybook\n\nStorybook helps you build UI components in isolation from your app's business logic, data, and context.\nThat makes it easy to develop hard-to-reach states. Save these UI states as **stories** to revisit during development, testing, or QA.\n\nBrowse example stories now by navigating to them in the sidebar.\nView their code in the `src/stories` directory to learn how they work.\nWe recommend building UIs with a [**component-driven**](https://componentdriven.org) process starting with atomic components and ending with pages.\n\n<div className=\"subheading\">Configure</div>\n\n<div className=\"link-list\">\n  <a\n    className=\"link-item\"\n    href=\"https://storybook.js.org/docs/react/addons/addon-types\"\n    target=\"_blank\"\n  >\n    <img src={Plugin} alt=\"plugin\" />\n    <span>\n      <strong>Presets for popular tools</strong>\n      Easy setup for TypeScript, SCSS and more.\n    </span>\n  </a>\n  <a\n    className=\"link-item\"\n    href=\"https://storybook.js.org/docs/react/configure/webpack\"\n    target=\"_blank\"\n  >\n    <img src={StackAlt} alt=\"Build\" />\n    <span>\n      <strong>Build configuration</strong>\n      How to customize webpack and Babel\n    </span>\n  </a>\n  <a\n    className=\"link-item\"\n    href=\"https://storybook.js.org/docs/react/configure/styling-and-css\"\n    target=\"_blank\"\n  >\n    <img src={Colors} alt=\"colors\" />\n    <span>\n      <strong>Styling</strong>\n      How to load and configure CSS libraries\n    </span>\n  </a>\n  <a\n    className=\"link-item\"\n    href=\"https://storybook.js.org/docs/react/get-started/setup#configure-storybook-for-your-stack\"\n    target=\"_blank\"\n  >\n    <img src={Flow} alt=\"flow\" />\n    <span>\n      <strong>Data</strong>\n      Providers and mocking for data libraries\n    </span>\n  </a>\n</div>\n\n<div className=\"subheading\">Learn</div>\n\n<div className=\"link-list\">\n  <a className=\"link-item\" href=\"https://storybook.js.org/docs\" target=\"_blank\">\n    <img src={Repo} alt=\"repo\" />\n    <span>\n      <strong>Storybook documentation</strong>\n      Configure, customize, and extend\n    </span>\n  </a>\n  <a className=\"link-item\" href=\"https://storybook.js.org/tutorials/\" target=\"_blank\">\n    <img src={Direction} alt=\"direction\" />\n    <span>\n      <strong>In-depth guides</strong>\n      Best practices from leading teams\n    </span>\n  </a>\n  <a className=\"link-item\" href=\"https://github.com/storybookjs/storybook\" target=\"_blank\">\n    <img src={Code} alt=\"code\" />\n    <span>\n      <strong>GitHub project</strong>\n      View the source and add issues\n    </span>\n  </a>\n  <a className=\"link-item\" href=\"https://discord.gg/storybook\" target=\"_blank\">\n    <img src={Comments} alt=\"comments\" />\n    <span>\n      <strong>Discord chat</strong>\n      Chat with maintainers and the community\n    </span>\n  </a>\n</div>\n\n<div className=\"tip-wrapper\">\n  <span className=\"tip\">Tip</span>Edit the Markdown in{' '}\n  <code>src/stories/Introduction.stories.mdx</code>\n</div>\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Page.stories.tsx",
    "content": "import React from 'react';\nimport { ComponentStory, ComponentMeta } from '@storybook/react';\n\nimport { Page } from './Page';\nimport * as HeaderStories from './Header.stories';\n\nexport default {\n  title: 'Example/Page',\n  component: Page,\n} as ComponentMeta<typeof Page>;\n\nconst Template: ComponentStory<typeof Page> = (args) => <Page {...args} />;\n\nexport const LoggedIn = Template.bind({});\nLoggedIn.args = {\n  ...HeaderStories.LoggedIn.args,\n};\n\nexport const LoggedOut = Template.bind({});\nLoggedOut.args = {\n  ...HeaderStories.LoggedOut.args,\n};\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/Page.tsx",
    "content": "import React from 'react';\n\nimport { Header } from './Header';\nimport './page.css';\n\ninterface PageProps {\n  user?: {};\n  onLogin: () => void;\n  onLogout: () => void;\n  onCreateAccount: () => void;\n}\n\nexport const Page = ({ user, onLogin, onLogout, onCreateAccount }: PageProps) => (\n  <article>\n    <Header user={user} onLogin={onLogin} onLogout={onLogout} onCreateAccount={onCreateAccount} />\n\n    <section>\n      <h2>Pages in Storybook</h2>\n      <p>\n        We recommend building UIs with a{' '}\n        <a href=\"https://componentdriven.org\" target=\"_blank\" rel=\"noopener noreferrer\">\n          <strong>component-driven</strong>\n        </a>{' '}\n        process starting with atomic components and ending with pages.\n      </p>\n      <p>\n        Render pages with mock data. This makes it easy to build and review page states without\n        needing to navigate to them in your app. Here are some handy patterns for managing page data\n        in Storybook:\n      </p>\n      <ul>\n        <li>\n          Use a higher-level connected component. Storybook helps you compose such data from the\n          \"args\" of child component stories\n        </li>\n        <li>\n          Assemble data in the page component from your services. You can mock these services out\n          using Storybook.\n        </li>\n      </ul>\n      <p>\n        Get a guided tutorial on component-driven development at{' '}\n        <a href=\"https://storybook.js.org/tutorials/\" target=\"_blank\" rel=\"noopener noreferrer\">\n          Storybook tutorials\n        </a>\n        . Read more in the{' '}\n        <a href=\"https://storybook.js.org/docs\" target=\"_blank\" rel=\"noopener noreferrer\">\n          docs\n        </a>\n        .\n      </p>\n      <div className=\"tip-wrapper\">\n        <span className=\"tip\">Tip</span> Adjust the width of the canvas with the{' '}\n        <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\">\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <path\n              d=\"M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z\"\n              id=\"a\"\n              fill=\"#999\"\n            />\n          </g>\n        </svg>\n        Viewports addon in the toolbar\n      </div>\n    </section>\n  </article>\n);\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/button.css",
    "content": ".storybook-button {\n  font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-weight: 700;\n  border: 0;\n  border-radius: 3em;\n  cursor: pointer;\n  display: inline-block;\n  line-height: 1;\n}\n.storybook-button--primary {\n  color: white;\n  background-color: #1ea7fd;\n}\n.storybook-button--secondary {\n  color: #333;\n  background-color: transparent;\n  box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;\n}\n.storybook-button--small {\n  font-size: 12px;\n  padding: 10px 16px;\n}\n.storybook-button--medium {\n  font-size: 14px;\n  padding: 11px 20px;\n}\n.storybook-button--large {\n  font-size: 16px;\n  padding: 12px 24px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/header.css",
    "content": ".wrapper {\n  font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n  padding: 15px 20px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\nsvg {\n  display: inline-block;\n  vertical-align: top;\n}\n\nh1 {\n  font-weight: 900;\n  font-size: 20px;\n  line-height: 1;\n  margin: 6px 0 6px 10px;\n  display: inline-block;\n  vertical-align: top;\n}\n\nbutton + button {\n  margin-left: 10px;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/src/stories/page.css",
    "content": "section {\n  font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 24px;\n  padding: 48px 20px;\n  margin: 0 auto;\n  max-width: 600px;\n  color: #333;\n}\n\nh2 {\n  font-weight: 900;\n  font-size: 32px;\n  line-height: 1;\n  margin: 0 0 4px;\n  display: inline-block;\n  vertical-align: top;\n}\n\np {\n  margin: 1em 0;\n}\n\na {\n  text-decoration: none;\n  color: #1ea7fd;\n}\n\nul {\n  padding-left: 30px;\n  margin: 1em 0;\n}\n\nli {\n  margin-bottom: 8px;\n}\n\n.tip {\n  display: inline-block;\n  border-radius: 1em;\n  font-size: 11px;\n  line-height: 12px;\n  font-weight: 700;\n  background: #e7fdd8;\n  color: #66bf3c;\n  padding: 4px 12px;\n  margin-right: 10px;\n  vertical-align: top;\n}\n\n.tip-wrapper {\n  font-size: 13px;\n  line-height: 20px;\n  margin-top: 40px;\n  margin-bottom: 40px;\n}\n\n.tip-wrapper svg {\n  display: inline-block;\n  height: 12px;\n  width: 12px;\n  margin-right: 4px;\n  vertical-align: top;\n  margin-top: 3px;\n}\n\n.tip-wrapper svg path {\n  fill: #1ea7fd;\n}\n"
  },
  {
    "path": "thisMyPCWeb/react_js/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"esModuleInterop\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"noEmit\": true,\n    \"jsx\": \"react-jsx\"\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "web-and-server/.eslintrc.json",
    "content": "{\n  \"extends\": \"next/core-web-vitals\"\n}\n"
  },
  {
    "path": "web-and-server/.gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n\n# testing\n/coverage\n\n# next.js\n/.next/\n/out/\n\n# production\n/build\n\n# misc\n.DS_Store\n*.pem\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n.pnpm-debug.log*\n\n# local env files\n.env*.local\n\n# vercel\n.vercel\n\n# typescript\n*.tsbuildinfo\nnext-env.d.ts\n"
  },
  {
    "path": "web-and-server/README.md",
    "content": "This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.\n\n[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.\n\nThis project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.\n- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!\n\n## Deploy on Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.\n"
  },
  {
    "path": "web-and-server/next.config.js",
    "content": "/** @type {import('next').NextConfig} */\nconst nextConfig = {\n  reactStrictMode: true,\n}\n\nmodule.exports = nextConfig\n"
  },
  {
    "path": "web-and-server/package.json",
    "content": "{\n  \"name\": \"web-and-server\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next build\",\n    \"start\": \"next start\",\n    \"lint\": \"next lint\"\n  },\n  \"dependencies\": {\n    \"@next/font\": \"13.1.1\",\n    \"@types/node\": \"18.11.18\",\n    \"@types/react\": \"18.0.26\",\n    \"@types/react-dom\": \"18.0.10\",\n    \"eslint\": \"8.31.0\",\n    \"eslint-config-next\": \"13.1.1\",\n    \"next\": \"13.1.1\",\n    \"react\": \"18.2.0\",\n    \"react-dom\": \"18.2.0\",\n    \"typescript\": \"4.9.4\"\n  }\n}\n"
  },
  {
    "path": "web-and-server/pages/_app.tsx",
    "content": "import '../styles/globals.css'\nimport type { AppProps } from 'next/app'\n\nexport default function App({ Component, pageProps }: AppProps) {\n  return <Component {...pageProps} />\n}\n"
  },
  {
    "path": "web-and-server/pages/_document.tsx",
    "content": "import { Html, Head, Main, NextScript } from 'next/document'\n\nexport default function Document() {\n  return (\n    <Html lang=\"en\">\n      <Head />\n      <body>\n        <Main />\n        <NextScript />\n      </body>\n    </Html>\n  )\n}\n"
  },
  {
    "path": "web-and-server/pages/api/hello.ts",
    "content": "// Next.js API route support: https://nextjs.org/docs/api-routes/introduction\nimport type { NextApiRequest, NextApiResponse } from 'next'\n\ntype Data = {\n  name: string\n}\n\nexport default function handler(\n  req: NextApiRequest,\n  res: NextApiResponse<Data>\n) {\n  res.status(200).json({ name: 'John Doe' })\n}\n"
  },
  {
    "path": "web-and-server/pages/index.tsx",
    "content": "import Head from 'next/head'\nimport Image from 'next/image'\nimport { Inter } from '@next/font/google'\nimport styles from '../styles/Home.module.css'\n\nconst inter = Inter({ subsets: ['latin'] })\n\nexport default function Home() {\n  return (\n    <>\n      <Head>\n        <title>Create Next App</title>\n        <meta name=\"description\" content=\"Generated by create next app\" />\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n        <link rel=\"icon\" href=\"/favicon.ico\" />\n      </Head>\n      <main className={styles.main}>\n        <div className={styles.description}>\n          <p>\n            Get started by editing&nbsp;\n            <code className={styles.code}>pages/index.tsx</code>\n          </p>\n          <div>\n            <a\n              href=\"https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              By{' '}\n              <Image\n                src=\"/vercel.svg\"\n                alt=\"Vercel Logo\"\n                className={styles.vercelLogo}\n                width={100}\n                height={24}\n                priority\n              />\n            </a>\n          </div>\n        </div>\n\n        <div className={styles.center}>\n          <Image\n            className={styles.logo}\n            src=\"/next.svg\"\n            alt=\"Next.js Logo\"\n            width={180}\n            height={37}\n            priority\n          />\n          <div className={styles.thirteen}>\n            <Image\n              src=\"/thirteen.svg\"\n              alt=\"13\"\n              width={40}\n              height={31}\n              priority\n            />\n          </div>\n        </div>\n\n        <div className={styles.grid}>\n          <a\n            href=\"https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app\"\n            className={styles.card}\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            <h2 className={inter.className}>\n              Docs <span>-&gt;</span>\n            </h2>\n            <p className={inter.className}>\n              Find in-depth information about Next.js features and&nbsp;API.\n            </p>\n          </a>\n\n          <a\n            href=\"https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app\"\n            className={styles.card}\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            <h2 className={inter.className}>\n              Learn <span>-&gt;</span>\n            </h2>\n            <p className={inter.className}>\n              Learn about Next.js in an interactive course with&nbsp;quizzes!\n            </p>\n          </a>\n\n          <a\n            href=\"https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app\"\n            className={styles.card}\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            <h2 className={inter.className}>\n              Templates <span>-&gt;</span>\n            </h2>\n            <p className={inter.className}>\n              Discover and deploy boilerplate example Next.js&nbsp;projects.\n            </p>\n          </a>\n\n          <a\n            href=\"https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app\"\n            className={styles.card}\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            <h2 className={inter.className}>\n              Deploy <span>-&gt;</span>\n            </h2>\n            <p className={inter.className}>\n              Instantly deploy your Next.js site to a shareable URL\n              with&nbsp;Vercel.\n            </p>\n          </a>\n        </div>\n      </main>\n    </>\n  )\n}\n"
  },
  {
    "path": "web-and-server/styles/Home.module.css",
    "content": ".main {\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n  align-items: center;\n  padding: 6rem;\n  min-height: 100vh;\n}\n\n.description {\n  display: inherit;\n  justify-content: inherit;\n  align-items: inherit;\n  font-size: 0.85rem;\n  max-width: var(--max-width);\n  width: 100%;\n  z-index: 2;\n  font-family: var(--font-mono);\n}\n\n.description a {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  gap: 0.5rem;\n}\n\n.description p {\n  position: relative;\n  margin: 0;\n  padding: 1rem;\n  background-color: rgba(var(--callout-rgb), 0.5);\n  border: 1px solid rgba(var(--callout-border-rgb), 0.3);\n  border-radius: var(--border-radius);\n}\n\n.code {\n  font-weight: 700;\n  font-family: var(--font-mono);\n}\n\n.grid {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(25%, auto));\n  width: var(--max-width);\n  max-width: 100%;\n}\n\n.card {\n  padding: 1rem 1.2rem;\n  border-radius: var(--border-radius);\n  background: rgba(var(--card-rgb), 0);\n  border: 1px solid rgba(var(--card-border-rgb), 0);\n  transition: background 200ms, border 200ms;\n}\n\n.card span {\n  display: inline-block;\n  transition: transform 200ms;\n}\n\n.card h2 {\n  font-weight: 600;\n  margin-bottom: 0.7rem;\n}\n\n.card p {\n  margin: 0;\n  opacity: 0.6;\n  font-size: 0.9rem;\n  line-height: 1.5;\n  max-width: 30ch;\n}\n\n.center {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  position: relative;\n  padding: 4rem 0;\n}\n\n.center::before {\n  background: var(--secondary-glow);\n  border-radius: 50%;\n  width: 480px;\n  height: 360px;\n  margin-left: -400px;\n}\n\n.center::after {\n  background: var(--primary-glow);\n  width: 240px;\n  height: 180px;\n  z-index: -1;\n}\n\n.center::before,\n.center::after {\n  content: '';\n  left: 50%;\n  position: absolute;\n  filter: blur(45px);\n  transform: translateZ(0);\n}\n\n.logo,\n.thirteen {\n  position: relative;\n}\n\n.thirteen {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 75px;\n  height: 75px;\n  padding: 25px 10px;\n  margin-left: 16px;\n  transform: translateZ(0);\n  border-radius: var(--border-radius);\n  overflow: hidden;\n  box-shadow: 0px 2px 8px -1px #0000001a;\n}\n\n.thirteen::before,\n.thirteen::after {\n  content: '';\n  position: absolute;\n  z-index: -1;\n}\n\n/* Conic Gradient Animation */\n.thirteen::before {\n  animation: 6s rotate linear infinite;\n  width: 200%;\n  height: 200%;\n  background: var(--tile-border);\n}\n\n/* Inner Square */\n.thirteen::after {\n  inset: 0;\n  padding: 1px;\n  border-radius: var(--border-radius);\n  background: linear-gradient(\n    to bottom right,\n    rgba(var(--tile-start-rgb), 1),\n    rgba(var(--tile-end-rgb), 1)\n  );\n  background-clip: content-box;\n}\n\n/* Enable hover only on non-touch devices */\n@media (hover: hover) and (pointer: fine) {\n  .card:hover {\n    background: rgba(var(--card-rgb), 0.1);\n    border: 1px solid rgba(var(--card-border-rgb), 0.15);\n  }\n\n  .card:hover span {\n    transform: translateX(4px);\n  }\n}\n\n@media (prefers-reduced-motion) {\n  .thirteen::before {\n    animation: none;\n  }\n\n  .card:hover span {\n    transform: none;\n  }\n}\n\n/* Mobile */\n@media (max-width: 700px) {\n  .content {\n    padding: 4rem;\n  }\n\n  .grid {\n    grid-template-columns: 1fr;\n    margin-bottom: 120px;\n    max-width: 320px;\n    text-align: center;\n  }\n\n  .card {\n    padding: 1rem 2.5rem;\n  }\n\n  .card h2 {\n    margin-bottom: 0.5rem;\n  }\n\n  .center {\n    padding: 8rem 0 6rem;\n  }\n\n  .center::before {\n    transform: none;\n    height: 300px;\n  }\n\n  .description {\n    font-size: 0.8rem;\n  }\n\n  .description a {\n    padding: 1rem;\n  }\n\n  .description p,\n  .description div {\n    display: flex;\n    justify-content: center;\n    position: fixed;\n    width: 100%;\n  }\n\n  .description p {\n    align-items: center;\n    inset: 0 0 auto;\n    padding: 2rem 1rem 1.4rem;\n    border-radius: 0;\n    border: none;\n    border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);\n    background: linear-gradient(\n      to bottom,\n      rgba(var(--background-start-rgb), 1),\n      rgba(var(--callout-rgb), 0.5)\n    );\n    background-clip: padding-box;\n    backdrop-filter: blur(24px);\n  }\n\n  .description div {\n    align-items: flex-end;\n    pointer-events: none;\n    inset: auto 0 0;\n    padding: 2rem;\n    height: 200px;\n    background: linear-gradient(\n      to bottom,\n      transparent 0%,\n      rgb(var(--background-end-rgb)) 40%\n    );\n    z-index: 1;\n  }\n}\n\n/* Tablet and Smaller Desktop */\n@media (min-width: 701px) and (max-width: 1120px) {\n  .grid {\n    grid-template-columns: repeat(2, 50%);\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  .vercelLogo {\n    filter: invert(1);\n  }\n\n  .logo,\n  .thirteen img {\n    filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);\n  }\n}\n\n@keyframes rotate {\n  from {\n    transform: rotate(360deg);\n  }\n  to {\n    transform: rotate(0deg);\n  }\n}\n"
  },
  {
    "path": "web-and-server/styles/globals.css",
    "content": ":root {\n  --max-width: 1100px;\n  --border-radius: 12px;\n  --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',\n    'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',\n    'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;\n\n  --foreground-rgb: 0, 0, 0;\n  --background-start-rgb: 214, 219, 220;\n  --background-end-rgb: 255, 255, 255;\n\n  --primary-glow: conic-gradient(\n    from 180deg at 50% 50%,\n    #16abff33 0deg,\n    #0885ff33 55deg,\n    #54d6ff33 120deg,\n    #0071ff33 160deg,\n    transparent 360deg\n  );\n  --secondary-glow: radial-gradient(\n    rgba(255, 255, 255, 1),\n    rgba(255, 255, 255, 0)\n  );\n\n  --tile-start-rgb: 239, 245, 249;\n  --tile-end-rgb: 228, 232, 233;\n  --tile-border: conic-gradient(\n    #00000080,\n    #00000040,\n    #00000030,\n    #00000020,\n    #00000010,\n    #00000010,\n    #00000080\n  );\n\n  --callout-rgb: 238, 240, 241;\n  --callout-border-rgb: 172, 175, 176;\n  --card-rgb: 180, 185, 188;\n  --card-border-rgb: 131, 134, 135;\n}\n\n@media (prefers-color-scheme: dark) {\n  :root {\n    --foreground-rgb: 255, 255, 255;\n    --background-start-rgb: 0, 0, 0;\n    --background-end-rgb: 0, 0, 0;\n\n    --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));\n    --secondary-glow: linear-gradient(\n      to bottom right,\n      rgba(1, 65, 255, 0),\n      rgba(1, 65, 255, 0),\n      rgba(1, 65, 255, 0.3)\n    );\n\n    --tile-start-rgb: 2, 13, 46;\n    --tile-end-rgb: 2, 5, 19;\n    --tile-border: conic-gradient(\n      #ffffff80,\n      #ffffff40,\n      #ffffff30,\n      #ffffff20,\n      #ffffff10,\n      #ffffff10,\n      #ffffff80\n    );\n\n    --callout-rgb: 20, 20, 20;\n    --callout-border-rgb: 108, 108, 108;\n    --card-rgb: 100, 100, 100;\n    --card-border-rgb: 200, 200, 200;\n  }\n}\n\n* {\n  box-sizing: border-box;\n  padding: 0;\n  margin: 0;\n}\n\nhtml,\nbody {\n  max-width: 100vw;\n  overflow-x: hidden;\n}\n\nbody {\n  color: rgb(var(--foreground-rgb));\n  background: linear-gradient(\n      to bottom,\n      transparent,\n      rgb(var(--background-end-rgb))\n    )\n    rgb(var(--background-start-rgb));\n}\n\na {\n  color: inherit;\n  text-decoration: none;\n}\n\n@media (prefers-color-scheme: dark) {\n  html {\n    color-scheme: dark;\n  }\n}\n"
  },
  {
    "path": "web-and-server/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"noEmit\": true,\n    \"esModuleInterop\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"jsx\": \"preserve\",\n    \"incremental\": true\n  },\n  \"include\": [\"next-env.d.ts\", \"**/*.ts\", \"**/*.tsx\"],\n  \"exclude\": [\"node_modules\"]\n}\n"
  }
]